summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChunseok Lee <chunseok.lee@samsung.com>2018-05-04 17:57:16 +0900
committerChunseok Lee <chunseok.lee@samsung.com>2018-05-04 17:57:16 +0900
commit07659ccd9fe7b1cf1547cc6cad78bcf489f0a361 (patch)
treecf3a123812b7f1ad8b50d7d0ace891e0c03c6110
parentda6f7a3e8360a49fd073a6e0031a4da134d9d984 (diff)
downloadnnfw-07659ccd9fe7b1cf1547cc6cad78bcf489f0a361.tar.gz
nnfw-07659ccd9fe7b1cf1547cc6cad78bcf489f0a361.tar.bz2
nnfw-07659ccd9fe7b1cf1547cc6cad78bcf489f0a361.zip
Imported Upstream version 0.1upstream/0.1submit/tizen/20180504.091146
-rw-r--r--.clang-format90
-rw-r--r--.gitignore72
-rw-r--r--.gitmodules8
-rw-r--r--CMakeLists.txt181
-rw-r--r--LICENSE613
-rw-r--r--Makefile233
-rw-r--r--README.md16
-rw-r--r--cmake/config/config_aarch64-linux.cmake33
-rw-r--r--cmake/config/config_aarch64-tizen.cmake56
-rw-r--r--cmake/config/config_arm64-android.cmake44
-rw-r--r--cmake/config/config_armv7l-linux.cmake33
-rw-r--r--cmake/config/config_armv7l-tizen.cmake61
-rw-r--r--cmake/config/config_x86_64-linux.cmake7
-rw-r--r--cmake/option/option_aarch64-linux.cmake16
-rw-r--r--cmake/option/option_aarch64-tizen.cmake15
-rw-r--r--cmake/option/option_arm64-android.cmake4
-rw-r--r--cmake/option/option_armv7l-linux.cmake21
-rw-r--r--cmake/option/option_armv7l-tizen.cmake20
-rw-r--r--cmake/option/option_linux.cmake9
-rw-r--r--cmake/option/option_x86_64-linux.cmake12
-rw-r--r--docs/howto/HowToAddUnittest.md27
-rw-r--r--externals/CMakeLists.txt42
-rw-r--r--externals/acl.cmake150
-rw-r--r--externals/eigen3.cmake12
-rw-r--r--include/NeuralNetworks.h1929
-rw-r--r--include/kernel/acl/Concatenation.h42
-rw-r--r--include/kernel/acl/Conv2D.h52
-rw-r--r--include/kernel/acl/DepthwiseConv2D.h52
-rw-r--r--include/kernel/acl/FullyConnected.h45
-rw-r--r--include/kernel/acl/Pooling.h66
-rw-r--r--include/kernel/acl/Reshape.h37
-rw-r--r--include/kernel/acl/Softmax.h42
-rw-r--r--include/kernel/acl/nnfw_kernel_acl.h30
-rw-r--r--include/support/nnapi/feature/Reader.h61
-rw-r--r--include/support/nnapi/feature/Utils.h40
-rw-r--r--include/support/tflite/Diff.h119
-rw-r--r--include/support/tflite/FeatureView.h69
-rw-r--r--include/support/tflite/InputIndex.h46
-rw-r--r--include/support/tflite/OutputIndex.h46
-rw-r--r--include/support/tflite/TensorUtils.h43
-rw-r--r--include/support/tflite/TensorView.h64
-rw-r--r--include/support/tflite/interp/Builder.h43
-rw-r--r--include/support/tflite/interp/FlatBufferBuilder.h53
-rw-r--r--include/support/tflite/interp/FunctionBuilder.h56
-rw-r--r--libs/CMakeLists.txt5
-rw-r--r--libs/kernel/CMakeLists.txt3
-rw-r--r--libs/kernel/acl/CMakeLists.txt94
-rw-r--r--libs/kernel/acl/src/CLUniqueTensor.h63
-rw-r--r--libs/kernel/acl/src/DepthwiseConv2D.h98
-rw-r--r--libs/kernel/acl/src/DepthwiseConv2D.test.h245
-rw-r--r--libs/kernel/acl/src/FullyConnected.h149
-rw-r--r--libs/kernel/acl/src/FullyConnected.test.h266
-rw-r--r--libs/kernel/acl/src/IO_accessor.cpp310
-rw-r--r--libs/kernel/acl/src/IO_accessor.h196
-rw-r--r--libs/kernel/acl/src/Init_acl.cpp32
-rw-r--r--libs/kernel/acl/src/NEUniqueTensor.h64
-rw-r--r--libs/kernel/acl/src/Reshape.h70
-rw-r--r--libs/kernel/acl/src/Reshape.test.h51
-rw-r--r--libs/kernel/acl/src/cl/Concatenation.cpp104
-rw-r--r--libs/kernel/acl/src/cl/Concatenation.test.cpp62
-rw-r--r--libs/kernel/acl/src/cl/Conv2D.cpp113
-rw-r--r--libs/kernel/acl/src/cl/Conv2D.test.cpp202
-rw-r--r--libs/kernel/acl/src/cl/DepthwiseConv2D.cpp60
-rw-r--r--libs/kernel/acl/src/cl/DepthwiseConv2D.test.cpp20
-rw-r--r--libs/kernel/acl/src/cl/FullyConnected.cpp53
-rw-r--r--libs/kernel/acl/src/cl/FullyConnected.test.cpp20
-rw-r--r--libs/kernel/acl/src/cl/Pooling.cpp130
-rw-r--r--libs/kernel/acl/src/cl/Pooling.test.cpp482
-rw-r--r--libs/kernel/acl/src/cl/Reshape.cpp43
-rw-r--r--libs/kernel/acl/src/cl/Reshape.test.cpp20
-rw-r--r--libs/kernel/acl/src/cl/Softmax.cpp78
-rw-r--r--libs/kernel/acl/src/cl/Softmax.test.cpp105
-rw-r--r--libs/kernel/acl/src/gtest_env.cpp37
-rw-r--r--libs/kernel/acl/src/neon/Concatenation.cpp105
-rw-r--r--libs/kernel/acl/src/neon/Concatenation.test.cpp62
-rw-r--r--libs/kernel/acl/src/neon/Conv2D.cpp111
-rw-r--r--libs/kernel/acl/src/neon/Conv2D.test.cpp202
-rw-r--r--libs/kernel/acl/src/neon/DepthwiseConv2D.cpp61
-rw-r--r--libs/kernel/acl/src/neon/DepthwiseConv2D.test.cpp20
-rw-r--r--libs/kernel/acl/src/neon/FullyConnected.cpp58
-rw-r--r--libs/kernel/acl/src/neon/FullyConnected.test.cpp21
-rw-r--r--libs/kernel/acl/src/neon/Pooling.cpp128
-rw-r--r--libs/kernel/acl/src/neon/Pooling.test.cpp436
-rw-r--r--libs/kernel/acl/src/neon/Reshape.cpp48
-rw-r--r--libs/kernel/acl/src/neon/Reshape.test.cpp20
-rw-r--r--libs/kernel/acl/src/neon/Softmax.cpp77
-rw-r--r--libs/kernel/acl/src/neon/Softmax.test.cpp105
-rw-r--r--libs/kernel/acl/src/shape.cpp89
-rw-r--r--libs/kernel/acl/src/shape.h93
-rw-r--r--libs/kernel/acl/src/support.cpp51
-rw-r--r--libs/kernel/acl/src/support.h93
-rw-r--r--libs/kernel/acl/src/util.cpp108
-rw-r--r--libs/kernel/acl/src/util.h193
-rw-r--r--libs/support/CMakeLists.txt2
-rw-r--r--libs/support/nnapi/CMakeLists.txt6
-rw-r--r--libs/support/nnapi/src/feature/Utils.cpp43
-rw-r--r--libs/support/tflite/CMakeLists.txt10
-rw-r--r--libs/support/tflite/src/Diff.cpp262
-rw-r--r--libs/support/tflite/src/FeatureView.cpp76
-rw-r--r--libs/support/tflite/src/TensorView.cpp69
-rw-r--r--libs/support/tflite/src/TensorView.test.cpp36
-rw-r--r--libs/support/tflite/src/interp/FlatBufferBuilder.cpp46
-rw-r--r--libs/support/tflite/src/interp/FunctionBuilder.cpp40
-rw-r--r--libs/util/CMakeLists.txt17
-rw-r--r--libs/util/examples/tensor_index_iterator.cpp38
-rw-r--r--libs/util/include/util/benchmark.h66
-rw-r--r--libs/util/include/util/environment.h63
-rw-r--r--libs/util/include/util/feature/Index.h60
-rw-r--r--libs/util/include/util/feature/IndexIterator.h69
-rw-r--r--libs/util/include/util/feature/Object.h79
-rw-r--r--libs/util/include/util/feature/Reader.h40
-rw-r--r--libs/util/include/util/feature/Shape.h47
-rw-r--r--libs/util/include/util/feature/TextFormatter.h84
-rw-r--r--libs/util/include/util/fp32.h71
-rw-r--r--libs/util/include/util/kernel/IndexIterator.h72
-rw-r--r--libs/util/include/util/kernel/RandomObject.h71
-rw-r--r--libs/util/include/util/kernel/Reader.h40
-rw-r--r--libs/util/include/util/kernel/Shape.h48
-rw-r--r--libs/util/include/util/tensor/Index.h62
-rw-r--r--libs/util/include/util/tensor/IndexFormatter.h52
-rw-r--r--libs/util/include/util/tensor/IndexIterator.h104
-rw-r--r--libs/util/include/util/tensor/NonIncreasingStride.h61
-rw-r--r--libs/util/include/util/tensor/Object.h77
-rw-r--r--libs/util/include/util/tensor/Reader.h40
-rw-r--r--libs/util/include/util/tensor/Shape.h63
-rw-r--r--libs/util/include/util/tensor/Zipper.h72
-rw-r--r--libs/util/include/util/vector.h41
-rw-r--r--libs/util/include/util/vector/Object.h63
-rw-r--r--libs/util/include/util/vector/Reader.h40
-rw-r--r--libs/util/src/environment.cpp79
-rw-r--r--libs/util/src/tensor/IndexFormatter.cpp49
-rw-r--r--libs/util/src/tensor/NonIncreasingStride.cpp46
-rw-r--r--libs/util/src/tensor/Shape.cpp46
-rw-r--r--packaging/nnfw.manifest7
-rw-r--r--packaging/nnfw.spec105
-rwxr-xr-xrun22
-rw-r--r--runtimes/CMakeLists.txt5
-rw-r--r--runtimes/nn/CMakeLists.txt27
-rw-r--r--runtimes/nn/README.md54
-rw-r--r--runtimes/nn/common/CMakeLists.txt31
-rw-r--r--runtimes/nn/common/CpuExecutor.cpp1324
-rw-r--r--runtimes/nn/common/Logging.cpp51
-rw-r--r--runtimes/nn/common/NNFWKernels.cpp72
-rw-r--r--runtimes/nn/common/NNFWKernels.h41
-rw-r--r--runtimes/nn/common/NNFWKernels.lst80
-rw-r--r--runtimes/nn/common/OperationsUtils.cpp565
-rw-r--r--runtimes/nn/common/Utils.cpp397
-rw-r--r--runtimes/nn/common/include/ActivationFunctor.h70
-rw-r--r--runtimes/nn/common/include/CpuExecutor.h165
-rw-r--r--runtimes/nn/common/include/HalInterfaces.h82
-rw-r--r--runtimes/nn/common/include/Logging.h61
-rw-r--r--runtimes/nn/common/include/Operations.h203
-rw-r--r--runtimes/nn/common/include/OperationsUtils.h247
-rw-r--r--runtimes/nn/common/include/Utils.h128
-rw-r--r--runtimes/nn/common/operations/Activation.cpp211
-rw-r--r--runtimes/nn/common/operations/Concatenation.cpp64
-rw-r--r--runtimes/nn/common/operations/Conv2D.cpp154
-rw-r--r--runtimes/nn/common/operations/DepthwiseConv2D.cpp119
-rw-r--r--runtimes/nn/common/operations/FullyConnected.cpp87
-rw-r--r--runtimes/nn/common/operations/Pooling.cpp163
-rw-r--r--runtimes/nn/common/operations/Reshape.cpp103
-rw-r--r--runtimes/nn/common/operations/SimpleMath.cpp217
-rw-r--r--runtimes/nn/common/operations/internal/common.h80
-rw-r--r--runtimes/nn/common/operations/internal/compatibility.h57
-rw-r--r--runtimes/nn/common/operations/internal/optimized/cpu_check.h28
-rw-r--r--runtimes/nn/common/operations/internal/optimized/depthwiseconv_float.h792
-rw-r--r--runtimes/nn/common/operations/internal/optimized/depthwiseconv_uint8.h1606
-rw-r--r--runtimes/nn/common/operations/internal/optimized/neon_tensor_utils.cc217
-rw-r--r--runtimes/nn/common/operations/internal/optimized/neon_tensor_utils.h119
-rw-r--r--runtimes/nn/common/operations/internal/optimized/optimized_ops.h2717
-rw-r--r--runtimes/nn/common/operations/internal/optimized/tensor_utils_impl.h133
-rw-r--r--runtimes/nn/common/operations/internal/tensor_utils.cc29
-rw-r--r--runtimes/nn/common/operations/internal/tensor_utils.h123
-rw-r--r--runtimes/nn/common/operations/internal/tensor_utils_test.cc198
-rw-r--r--runtimes/nn/common/operations/internal/types.h112
-rw-r--r--runtimes/nn/depend/CMakeLists.txt21
-rw-r--r--runtimes/nn/depend/external/CMakeLists.txt13
-rw-r--r--runtimes/nn/depend/external/eigen/CMakeLists.txt10
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/CMakeLists.txt19
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/Cholesky41
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/CholmodSupport48
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/Core516
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/Dense7
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/Eigen2
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/Eigenvalues57
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/Geometry62
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/Householder30
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/IterativeLinearSolvers48
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/Jacobi33
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/LU46
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/MetisSupport35
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/OrderingMethods73
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/PaStiXSupport48
-rwxr-xr-xruntimes/nn/depend/external/eigen/Eigen/PardisoSupport35
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/QR47
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/QtAlignedMalloc40
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/SPQRSupport34
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/SVD47
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/Sparse36
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/SparseCholesky45
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/SparseCore69
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/SparseLU46
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/SparseQR37
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/StdDeque27
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/StdList26
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/StdVector27
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/SuperLUSupport64
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/UmfPackSupport40
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Cholesky/LDLT.h669
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Cholesky/LLT.h534
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h99
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/CholmodSupport/CholmodSupport.h639
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Array.h331
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/ArrayBase.h226
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/ArrayWrapper.h209
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Assign.h90
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/AssignEvaluator.h935
-rwxr-xr-xruntimes/nn/depend/external/eigen/Eigen/src/Core/Assign_MKL.h176
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/BandMatrix.h353
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Block.h452
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/BooleanRedux.h164
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/CommaInitializer.h160
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/ConditionEstimator.h175
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/CoreEvaluators.h1671
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/CoreIterators.h127
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/CwiseBinaryOp.h184
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/CwiseNullaryOp.h866
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/CwiseTernaryOp.h197
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/CwiseUnaryOp.h103
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/CwiseUnaryView.h128
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/DenseBase.h611
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/DenseCoeffsBase.h681
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/DenseStorage.h570
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Diagonal.h257
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/DiagonalMatrix.h343
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/DiagonalProduct.h28
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Dot.h315
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/EigenBase.h159
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/ForceAlignedAccess.h146
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Fuzzy.h155
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/GeneralProduct.h454
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/GenericPacketMath.h593
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/GlobalFunctions.h187
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/IO.h225
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Inverse.h118
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Map.h164
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/MapBase.h299
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/MathFunctions.h1431
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/MathFunctionsImpl.h78
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Matrix.h461
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/MatrixBase.h530
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/NestByValue.h110
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/NoAlias.h108
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/NumTraits.h248
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/PermutationMatrix.h633
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/PlainObjectBase.h1031
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Product.h186
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/ProductEvaluators.h1105
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Random.h182
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Redux.h505
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Ref.h281
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Replicate.h142
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/ReturnByValue.h117
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Reverse.h211
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Select.h162
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/SelfAdjointView.h350
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h51
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Solve.h188
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/SolveTriangular.h232
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/SolverBase.h130
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/StableNorm.h221
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Stride.h111
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Swap.h67
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Transpose.h403
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Transpositions.h407
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/TriangularMatrix.h983
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/VectorBlock.h96
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/VectorwiseOp.h695
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/Visitor.h273
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX/Complex.h483
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h439
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX/PacketMath.h633
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h51
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h396
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h1316
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AltiVec/Complex.h461
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h322
-rwxr-xr-xruntimes/nn/depend/external/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h1033
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/Complex.h103
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/Half.h635
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h91
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h333
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h1123
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h212
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/Default/Settings.h49
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/NEON/Complex.h486
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h91
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/NEON/PacketMath.h729
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/SSE/Complex.h503
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h562
-rwxr-xr-xruntimes/nn/depend/external/eigen/Eigen/src/Core/arch/SSE/PacketMath.h879
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h77
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/ZVector/Complex.h394
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h137
-rwxr-xr-xruntimes/nn/depend/external/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h945
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/AssignmentFunctors.h168
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/BinaryFunctors.h482
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/NullaryFunctors.h188
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/StlFunctors.h132
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/TernaryFunctors.h25
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/UnaryFunctors.h823
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h2149
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h492
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h311
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h141
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h115
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixVector.h619
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h129
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/Parallelizer.h163
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h521
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h275
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h260
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h111
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointProduct.h133
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h93
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h441
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h302
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularMatrixVector.h336
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h241
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h335
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h151
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularSolverVector.h145
-rwxr-xr-xruntimes/nn/depend/external/eigen/Eigen/src/Core/util/BlasUtil.h398
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/util/Constants.h547
-rwxr-xr-xruntimes/nn/depend/external/eigen/Eigen/src/Core/util/DisableStupidWarnings.h75
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/util/ForwardDeclarations.h302
-rwxr-xr-xruntimes/nn/depend/external/eigen/Eigen/src/Core/util/MKL_support.h128
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/util/Macros.h992
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/util/Memory.h977
-rwxr-xr-xruntimes/nn/depend/external/eigen/Eigen/src/Core/util/Meta.h492
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/util/NonMPL2.h3
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h27
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/util/StaticAssert.h216
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Core/util/XprHelper.h821
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h346
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/ComplexSchur.h459
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h91
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/EigenSolver.h622
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h419
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h226
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h374
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h160
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/RealQZ.h654
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/RealSchur.h546
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h77
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h870
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h90
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h556
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Geometry/AlignedBox.h392
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Geometry/AngleAxis.h247
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Geometry/EulerAngles.h114
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Homogeneous.h497
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Hyperplane.h282
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Geometry/OrthoMethods.h234
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Geometry/ParametrizedLine.h195
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Quaternion.h809
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Rotation2D.h199
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Geometry/RotationBase.h206
-rwxr-xr-xruntimes/nn/depend/external/eigen/Eigen/src/Geometry/Scaling.h170
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Transform.h1542
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Translation.h208
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Umeyama.h166
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h161
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Householder/BlockHouseholder.h103
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Householder/Householder.h172
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Householder/HouseholderSequence.h470
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h226
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h228
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h245
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h400
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h462
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h394
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h216
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h115
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/Jacobi/Jacobi.h441
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/LU/Determinant.h101
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/LU/FullPivLU.h891
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/LU/InverseImpl.h415
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/LU/PartialPivLU.h611
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h83
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/LU/arch/Inverse_SSE.h338
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/MetisSupport/MetisSupport.h137
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h1843
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/OrderingMethods/Ordering.h157
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h678
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/PardisoSupport/PardisoSupport.h543
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/QR/ColPivHouseholderQR.h653
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h97
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h562
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/QR/FullPivHouseholderQR.h676
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/QR/HouseholderQR.h409
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h68
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h313
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SVD/BDCSVD.h1231
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SVD/JacobiSVD.h804
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h90
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SVD/SVDBase.h313
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SVD/UpperBidiagonalization.h414
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h689
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/AmbiVector.h377
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/CompressedStorage.h258
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h345
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h67
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseAssign.h216
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseBlock.h603
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseColEtree.h206
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseCompressedBase.h341
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h726
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h148
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseDenseProduct.h320
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h138
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseDot.h98
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseFuzzy.h29
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseMap.h305
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseMatrix.h1403
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseMatrixBase.h405
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparsePermutation.h178
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseProduct.h169
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseRedux.h49
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseRef.h397
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h656
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseSolverBase.h124
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h198
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseTranspose.h92
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseTriangularView.h189
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseUtil.h178
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseVector.h478
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseView.h253
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/TriangularSolver.h315
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU.h775
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLUImpl.h66
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_Memory.h226
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_Structs.h110
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h301
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_Utils.h80
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h181
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h179
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h107
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h280
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h126
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h130
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h223
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h258
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h137
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h136
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h83
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SparseQR/SparseQR.h739
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/StlSupport/StdDeque.h126
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/StlSupport/StdList.h106
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/StlSupport/StdVector.h131
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/StlSupport/details.h84
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h1027
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h506
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/misc/Image.h82
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/misc/Kernel.h79
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/misc/RealSvd2x2.h55
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/misc/blas.h440
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/misc/lapack.h152
-rwxr-xr-xruntimes/nn/depend/external/eigen/Eigen/src/misc/lapacke.h16291
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/misc/lapacke_mangling.h17
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h332
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h552
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/plugins/BlockMethods.h1058
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h115
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h163
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h152
-rw-r--r--runtimes/nn/depend/external/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h85
-rw-r--r--runtimes/nn/depend/external/gemmlowp/CMakeLists.txt11
-rw-r--r--runtimes/nn/depend/external/gemmlowp/fixedpoint/fixedpoint.h779
-rw-r--r--runtimes/nn/depend/external/gemmlowp/fixedpoint/fixedpoint_neon.h175
-rw-r--r--runtimes/nn/depend/external/gemmlowp/fixedpoint/fixedpoint_sse.h218
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/allocator.h220
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/block_params.h174
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/common.h256
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/compute.h104
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/dispatch_gemm_shape.h189
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/kernel.h234
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/kernel_default.h109
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/kernel_neon.h1619
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/kernel_reference.h118
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/kernel_sse.h517
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/multi_thread_gemm.h701
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/output.h435
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/output_neon.h432
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/output_sse.h354
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/pack.h435
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/pack_neon.h320
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/pack_sse.h128
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/simd_wrappers.h508
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/simd_wrappers_common_neon_sse.h646
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/simd_wrappers_neon.h150
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/simd_wrappers_sse.h123
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/single_thread_gemm.h158
-rw-r--r--runtimes/nn/depend/external/gemmlowp/internal/unpack.h278
-rw-r--r--runtimes/nn/depend/external/gemmlowp/profiling/instrumentation.h244
-rw-r--r--runtimes/nn/depend/external/gemmlowp/profiling/profiler.h373
-rw-r--r--runtimes/nn/depend/external/gemmlowp/public/bit_depth.h62
-rw-r--r--runtimes/nn/depend/external/gemmlowp/public/gemmlowp.h87
-rw-r--r--runtimes/nn/depend/external/gemmlowp/public/map.h140
-rw-r--r--runtimes/nn/depend/external/gemmlowp/public/output_stages.h185
-rw-r--r--runtimes/nn/depend/hal/CMakeLists.txt10
-rw-r--r--runtimes/nn/depend/hal/include/android/hardware/neuralnetworks/1.0/types.h493
-rw-r--r--runtimes/nn/depend/libcutils/CMakeLists.txt22
-rw-r--r--runtimes/nn/depend/libcutils/ashmem-host.c97
-rw-r--r--runtimes/nn/depend/libcutils/include/cutils/ashmem.h34
-rw-r--r--runtimes/nn/depend/libcutils/include/cutils/native_handle.h102
-rw-r--r--runtimes/nn/depend/libcutils/native_handle.c95
-rw-r--r--runtimes/nn/depend/libhidl/CMakeLists.txt11
-rw-r--r--runtimes/nn/depend/libhidl/base/CMakeLists.txt22
-rw-r--r--runtimes/nn/depend/libhidl/base/HidlSupport.cpp283
-rw-r--r--runtimes/nn/depend/libhidl/base/Status.cpp166
-rw-r--r--runtimes/nn/depend/libhidl/base/include/hidl/HidlInternal.h193
-rw-r--r--runtimes/nn/depend/libhidl/base/include/hidl/HidlSupport.h989
-rw-r--r--runtimes/nn/depend/libhidl/base/include/hidl/Status.h273
-rw-r--r--runtimes/nn/depend/libutils/CMakeLists.txt22
-rw-r--r--runtimes/nn/depend/libutils/RefBase.cpp809
-rw-r--r--runtimes/nn/depend/libutils/StrongPointer.cpp29
-rw-r--r--runtimes/nn/depend/libutils/include/utils/Compat.h87
-rw-r--r--runtimes/nn/depend/libutils/include/utils/Errors.h88
-rw-r--r--runtimes/nn/depend/libutils/include/utils/LightRefBase.h72
-rw-r--r--runtimes/nn/depend/libutils/include/utils/RefBase.h690
-rw-r--r--runtimes/nn/depend/libutils/include/utils/StrongPointer.h245
-rw-r--r--runtimes/nn/depend/libutils/include/utils/TypeHelpers.h336
-rw-r--r--runtimes/nn/runtime/CMakeLists.txt29
-rw-r--r--runtimes/nn/runtime/Callbacks.cpp115
-rw-r--r--runtimes/nn/runtime/Callbacks.h249
-rw-r--r--runtimes/nn/runtime/CompilationBuilder.cpp68
-rw-r--r--runtimes/nn/runtime/CompilationBuilder.h55
-rw-r--r--runtimes/nn/runtime/ExecutionBuilder.cpp293
-rw-r--r--runtimes/nn/runtime/ExecutionBuilder.h147
-rw-r--r--runtimes/nn/runtime/Memory.cpp199
-rw-r--r--runtimes/nn/runtime/Memory.h122
-rw-r--r--runtimes/nn/runtime/ModelBuilder.cpp386
-rw-r--r--runtimes/nn/runtime/ModelBuilder.h129
-rw-r--r--runtimes/nn/runtime/NeuralNetworks.cpp489
-rw-r--r--runtimes/tests/CMakeLists.txt8
-rw-r--r--runtimes/tests/bring_up_test/CMakeLists.txt22
-rw-r--r--runtimes/tests/bring_up_test/add_main.cpp117
-rw-r--r--runtimes/tests/bring_up_test/cplusplus_main.cpp16
-rw-r--r--runtimes/tests/bring_up_test/simple_model.cpp469
-rw-r--r--runtimes/tests/bring_up_test/simple_model.h63
-rw-r--r--runtimes/tests/bring_up_test/simple_model_main.cpp35
-rw-r--r--runtimes/tests/include/NeuralNetworksWrapper.h344
-rw-r--r--runtimes/tests/neural_networks_test/CMakeLists.txt34
-rw-r--r--runtimes/tests/neural_networks_test/TestGenerated.cpp139
-rw-r--r--runtimes/tests/neural_networks_test/TestMain.cpp31
-rw-r--r--runtimes/tests/neural_networks_test/TestTrivialModel.cpp221
-rw-r--r--runtimes/tests/neural_networks_test/TestValidation.cpp489
-rw-r--r--runtimes/tests/neural_networks_test/generated/all_generated_tests.cpp1025
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/add.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/add_broadcast_quant8.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/add_quant8.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/avg_pool_float_1.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/avg_pool_float_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/avg_pool_float_3.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/avg_pool_float_4.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/avg_pool_float_5.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/avg_pool_quant8_1.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/avg_pool_quant8_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/avg_pool_quant8_3.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/avg_pool_quant8_4.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/avg_pool_quant8_5.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/concat_float_1.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/concat_float_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/concat_float_3.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/concat_quant8_1.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/concat_quant8_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/concat_quant8_3.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/conv_1_h3_w2_SAME.example.cpp43
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/conv_1_h3_w2_VALID.example.cpp43
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/conv_3_h3_w2_SAME.example.cpp43
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/conv_3_h3_w2_VALID.example.cpp43
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/conv_float.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/conv_float_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/conv_float_channels.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/conv_float_channels_weights_as_inputs.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/conv_float_large.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/conv_float_large_weights_as_inputs.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/conv_float_weights_as_inputs.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/conv_quant8.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/conv_quant8_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/conv_quant8_channels.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/conv_quant8_channels_weights_as_inputs.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/conv_quant8_large.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/conv_quant8_large_weights_as_inputs.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/conv_quant8_overflow.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/conv_quant8_overflow_weights_as_inputs.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/conv_quant8_weights_as_inputs.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/depth_to_space_float_1.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/depth_to_space_float_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/depth_to_space_float_3.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/depth_to_space_quant8_1.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/depth_to_space_quant8_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/depthwise_conv.example.cpp43
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_large.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_large_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_large_2_weights_as_inputs.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_large_weights_as_inputs.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_weights_as_inputs.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_quant8.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_quant8_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_quant8_large.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_quant8_large_weights_as_inputs.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_quant8_weights_as_inputs.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/dequantize.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/embedding_lookup.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/floor.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/fully_connected_float.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/fully_connected_float_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/fully_connected_float_large.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/fully_connected_float_large_weights_as_inputs.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/fully_connected_float_weights_as_inputs.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/fully_connected_quant8.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/fully_connected_quant8_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/fully_connected_quant8_large.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/fully_connected_quant8_large_weights_as_inputs.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/fully_connected_quant8_weights_as_inputs.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/hashtable_lookup_float.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/hashtable_lookup_quant8.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/l2_normalization.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/l2_normalization_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/l2_normalization_large.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/l2_pool_float.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/l2_pool_float_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/l2_pool_float_large.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/local_response_norm_float_1.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/local_response_norm_float_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/local_response_norm_float_3.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/local_response_norm_float_4.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/logistic_float_1.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/logistic_float_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/logistic_quant8_1.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/logistic_quant8_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/lsh_projection.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/lsh_projection_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/lsh_projection_weights_as_inputs.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/lstm.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/lstm2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/lstm2_state.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/lstm2_state2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/lstm3.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/lstm3_state.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/lstm3_state2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/lstm3_state3.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/lstm_state.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/lstm_state2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/max_pool_float_1.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/max_pool_float_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/max_pool_float_3.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/max_pool_float_4.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/max_pool_quant8_1.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/max_pool_quant8_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/max_pool_quant8_3.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/max_pool_quant8_4.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/mobilenet_224_gender_basic_fixed.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/mobilenet_quantized.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/mul.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/mul_broadcast_quant8.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/mul_quant8.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/mul_relu.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/relu1_float_1.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/relu1_float_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/relu1_quant8_1.example.cpp43
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/relu1_quant8_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/relu6_float_1.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/relu6_float_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/relu6_quant8_1.example.cpp43
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/relu6_quant8_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/relu_float_1.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/relu_float_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/relu_quant8_1.example.cpp43
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/relu_quant8_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/reshape.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/reshape_quant8.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/reshape_quant8_weights_as_inputs.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/reshape_weights_as_inputs.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/resize_bilinear.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/resize_bilinear_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/rnn.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/rnn_state.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/softmax_float_1.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/softmax_float_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/softmax_quant8_1.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/softmax_quant8_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/space_to_depth_float_1.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/space_to_depth_float_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/space_to_depth_float_3.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/space_to_depth_quant8_1.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/space_to_depth_quant8_2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/svdf.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/svdf2.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/svdf_state.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/examples/tanh.example.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/add.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/add_broadcast_quant8.model.cpp25
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/add_quant8.model.cpp25
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/avg_pool_float_1.model.cpp29
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/avg_pool_float_2.model.cpp33
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/avg_pool_float_3.model.cpp33
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/avg_pool_float_4.model.cpp33
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/avg_pool_float_5.model.cpp30
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/avg_pool_quant8_1.model.cpp29
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/avg_pool_quant8_2.model.cpp33
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/avg_pool_quant8_3.model.cpp33
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/avg_pool_quant8_4.model.cpp29
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/avg_pool_quant8_5.model.cpp30
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/concat_float_1.model.cpp25
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/concat_float_2.model.cpp26
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/concat_float_3.model.cpp26
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/concat_quant8_1.model.cpp25
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/concat_quant8_2.model.cpp26
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/concat_quant8_3.model.cpp26
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/conv_1_h3_w2_SAME.model.cpp41
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/conv_1_h3_w2_VALID.model.cpp41
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/conv_3_h3_w2_SAME.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/conv_3_h3_w2_VALID.model.cpp41
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/conv_float.model.cpp37
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/conv_float_2.model.cpp37
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/conv_float_channels.model.cpp37
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/conv_float_channels_weights_as_inputs.model.cpp33
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/conv_float_large.model.cpp37
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/conv_float_large_weights_as_inputs.model.cpp33
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/conv_float_weights_as_inputs.model.cpp33
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/conv_quant8.model.cpp38
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/conv_quant8_2.model.cpp41
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/conv_quant8_channels.model.cpp38
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/conv_quant8_channels_weights_as_inputs.model.cpp34
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/conv_quant8_large.model.cpp38
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/conv_quant8_large_weights_as_inputs.model.cpp34
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/conv_quant8_overflow.model.cpp38
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/conv_quant8_overflow_weights_as_inputs.model.cpp34
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/conv_quant8_weights_as_inputs.model.cpp34
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/depth_to_space_float_1.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/depth_to_space_float_2.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/depth_to_space_float_3.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/depth_to_space_quant8_1.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/depth_to_space_quant8_2.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/depthwise_conv.model.cpp43
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_2.model.cpp41
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large_2.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large_2_weights_as_inputs.model.cpp37
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large_weights_as_inputs.model.cpp36
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_weights_as_inputs.model.cpp36
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_quant8.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_quant8_2.model.cpp41
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_quant8_large.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_quant8_large_weights_as_inputs.model.cpp36
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_quant8_weights_as_inputs.model.cpp36
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/dequantize.model.cpp20
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/embedding_lookup.model.cpp21
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/floor.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/fully_connected_float.model.cpp31
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/fully_connected_float_2.model.cpp32
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/fully_connected_float_large.model.cpp31
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/fully_connected_float_large_weights_as_inputs.model.cpp27
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/fully_connected_float_weights_as_inputs.model.cpp27
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/fully_connected_quant8.model.cpp32
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/fully_connected_quant8_2.model.cpp32
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/fully_connected_quant8_large.model.cpp31
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/fully_connected_quant8_large_weights_as_inputs.model.cpp27
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/fully_connected_quant8_weights_as_inputs.model.cpp28
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/hashtable_lookup_float.model.cpp26
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/hashtable_lookup_quant8.model.cpp26
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/l2_normalization.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/l2_normalization_2.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/l2_normalization_large.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/l2_pool_float.model.cpp29
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/l2_pool_float_2.model.cpp30
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/l2_pool_float_large.model.cpp39
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/local_response_norm_float_1.model.cpp33
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/local_response_norm_float_2.model.cpp33
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/local_response_norm_float_3.model.cpp33
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/local_response_norm_float_4.model.cpp33
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/logistic_float_1.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/logistic_float_2.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/logistic_quant8_1.model.cpp20
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/logistic_quant8_2.model.cpp20
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/lsh_projection.model.cpp30
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/lsh_projection_2.model.cpp30
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/lsh_projection_weights_as_inputs.model.cpp28
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/lstm.model.cpp59
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/lstm2.model.cpp59
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/lstm2_state.model.cpp59
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/lstm2_state2.model.cpp59
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/lstm3.model.cpp60
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/lstm3_state.model.cpp60
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/lstm3_state2.model.cpp60
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/lstm3_state3.model.cpp60
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/lstm_state.model.cpp59
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/lstm_state2.model.cpp59
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/max_pool_float_1.model.cpp29
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/max_pool_float_2.model.cpp33
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/max_pool_float_3.model.cpp33
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/max_pool_float_4.model.cpp30
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/max_pool_quant8_1.model.cpp29
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/max_pool_quant8_2.model.cpp33
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/max_pool_quant8_3.model.cpp33
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/max_pool_quant8_4.model.cpp30
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/mobilenet_224_gender_basic_fixed.model.cpp672
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/mobilenet_quantized.model.cpp719
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/mul.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/mul_broadcast_quant8.model.cpp26
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/mul_quant8.model.cpp25
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/mul_relu.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/relu1_float_1.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/relu1_float_2.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/relu1_quant8_1.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/relu1_quant8_2.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/relu6_float_1.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/relu6_float_2.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/relu6_quant8_1.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/relu6_quant8_2.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/relu_float_1.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/relu_float_2.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/relu_quant8_1.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/relu_quant8_2.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/reshape.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/reshape_quant8.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/reshape_quant8_weights_as_inputs.model.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/reshape_weights_as_inputs.model.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/resize_bilinear.model.cpp27
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/resize_bilinear_2.model.cpp27
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/rnn.model.cpp32
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/rnn_state.model.cpp32
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/softmax_float_1.model.cpp23
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/softmax_float_2.model.cpp23
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/softmax_quant8_1.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/softmax_quant8_2.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/space_to_depth_float_1.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/space_to_depth_float_2.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/space_to_depth_float_3.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/space_to_depth_quant8_1.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/space_to_depth_quant8_2.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/svdf.model.cpp36
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/svdf2.model.cpp36
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/svdf_state.model.cpp36
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/tanh.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/include/TestHarness.h209
-rw-r--r--scripts/command/build7
-rwxr-xr-xscripts/command/common.sh2
-rwxr-xr-xscripts/command/docker_build.sh10
-rwxr-xr-xscripts/command/docker_build_cross_arm_ubuntu.sh38
-rwxr-xr-xscripts/command/docker_build_cross_arm_ubuntu_without_aclbuild.sh62
-rwxr-xr-xscripts/command/docker_build_tizen_cross.sh48
-rwxr-xr-xscripts/command/docker_build_ubuntu_svace.sh87
-rwxr-xr-xscripts/command/docker_coverage_report.sh38
-rwxr-xr-xscripts/command/docker_cross_test_coverage_build.sh63
-rwxr-xr-xscripts/command/docker_gbs_build.sh36
-rwxr-xr-xscripts/command/docker_run.sh24
-rwxr-xr-xscripts/command/docker_run_test.sh50
-rwxr-xr-xscripts/command/format-checker.sh89
-rw-r--r--scripts/command/gbs.conf21
-rwxr-xr-xscripts/command/gen_coverage_report.sh56
-rw-r--r--scripts/command/imported_url.txt3
-rwxr-xr-xscripts/command/lcov-to-covertura-xml.sh414
-rwxr-xr-xscripts/command/tizen_xu4_test.sh135
-rw-r--r--scripts/docker/Dockerfile14
-rw-r--r--scripts/docker/Dockerfile_tizen8
-rwxr-xr-xtests/framework/run_test.sh228
-rw-r--r--tests/framework/tests/inceptionv3/inception_nonslim/config.sh9
-rw-r--r--tests/framework/tests/inceptionv3/inception_slim/config.sh9
-rw-r--r--tools/.FORMATCHECKED0
-rw-r--r--tools/CMakeLists.txt1
-rw-r--r--tools/cross/apt_proxy0
-rw-r--r--tools/cross/arm/sources.list.trusty11
-rw-r--r--tools/cross/arm/sources.list.xenial11
-rw-r--r--tools/cross/arm64/sources.list.trusty11
-rw-r--r--tools/cross/arm64/sources.list.xenial11
-rwxr-xr-xtools/cross/armel/tizen-build-rootfs.sh43
-rwxr-xr-xtools/cross/armel/tizen-fetch.sh169
-rw-r--r--tools/cross/armel/tizen.patch18
-rwxr-xr-xtools/cross/build_android_rootfs.sh62
-rwxr-xr-xtools/cross/build_rootfs.sh122
-rw-r--r--tools/nnapi_test/CMakeLists.txt5
-rw-r--r--tools/nnapi_test/src/nnapi_test.cc59
-rw-r--r--tools/test_driver/nnfw_kernel_env_list.txt7
-rwxr-xr-xtools/test_driver/print_to_json.sh152
-rwxr-xr-xtools/test_driver/test_driver.sh417
892 files changed, 171789 insertions, 0 deletions
diff --git a/.clang-format b/.clang-format
new file mode 100644
index 000000000..7dcf11cad
--- /dev/null
+++ b/.clang-format
@@ -0,0 +1,90 @@
+---
+Language: Cpp
+BasedOnStyle: Google
+AccessModifierOffset: -2
+AlignAfterOpenBracket: Align
+AlignEscapedNewlinesLeft: true
+AlignConsecutiveAssignments: false
+AlignConsecutiveDeclarations: false
+AlignOperands: true
+AlignTrailingComments: true
+AllowAllParametersOfDeclarationOnNextLine: true
+AllowShortBlocksOnASingleLine: false
+AllowShortCaseLabelsOnASingleLine: false
+AllowShortFunctionsOnASingleLine: All
+AllowShortIfStatementsOnASingleLine: false
+AllowShortLoopsOnASingleLine: false
+AlwaysBreakAfterDefinitionReturnType: None
+AlwaysBreakAfterReturnType: None
+AlwaysBreakBeforeMultilineStrings: false
+AlwaysBreakTemplateDeclarations: false
+BinPackArguments: true
+BinPackParameters: true
+BraceWrapping:
+ AfterClass: true
+ AfterControlStatement: true
+ AfterEnum: false
+ AfterFunction: true
+ AfterNamespace: false
+ AfterObjCDeclaration: false
+ AfterStruct: true
+ AfterUnion: true
+ BeforeCatch: true
+ BeforeElse: true
+ IndentBraces: false
+BreakBeforeBraces: Allman
+BreakBeforeTernaryOperators: true
+BreakConstructorInitializersBeforeComma: false
+BreakAfterJavaFieldAnnotations: false
+BreakStringLiterals: true
+ColumnLimit: 100
+CommentPragmas: '^ IWYU pragma:'
+ConstructorInitializerAllOnOneLineOrOnePerLine: false
+ConstructorInitializerIndentWidth: 4
+ContinuationIndentWidth: 4
+Cpp11BracedListStyle: true
+DerivePointerAlignment: false
+DisableFormat: false
+ExperimentalAutoDetectBinPacking: false
+IncludeCategories:
+ - Regex: '^"(llvm|llvm-c|clang|clang-c)/'
+ Priority: 2
+ - Regex: '^(<|"(gtest|isl|json)/)'
+ Priority: 3
+ - Regex: '.*'
+ Priority: 1
+IndentCaseLabels: true
+IndentWidth: 2
+IndentWrappedFunctionNames: false
+JavaScriptQuotes: Leave
+JavaScriptWrapImports: true
+KeepEmptyLinesAtTheStartOfBlocks: true
+MacroBlockBegin: ''
+MacroBlockEnd: ''
+MaxEmptyLinesToKeep: 1
+NamespaceIndentation: None
+ObjCBlockIndentWidth: 2
+ObjCSpaceAfterProperty: false
+ObjCSpaceBeforeProtocolList: true
+PenaltyBreakBeforeFirstCallParameter: 19
+PenaltyBreakComment: 300
+PenaltyBreakFirstLessLess: 120
+PenaltyBreakString: 1000
+PenaltyExcessCharacter: 1000000
+PenaltyReturnTypeOnItsOwnLine: 60
+PointerAlignment: Right
+ReflowComments: true
+SortIncludes: false
+SpaceAfterCStyleCast: false
+SpaceBeforeAssignmentOperators: true
+SpaceBeforeParens: ControlStatements
+SpaceInEmptyParentheses: false
+SpacesBeforeTrailingComments: 1
+SpacesInAngles: false
+SpacesInContainerLiterals: true
+SpacesInCStyleCastParentheses: false
+SpacesInParentheses: false
+SpacesInSquareBrackets: false
+Standard: Cpp11
+TabWidth: 4
+UseTab: Never
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..ddba013ae
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,72 @@
+# Prerequisites
+*.d
+
+# Compiled Object files
+*.slo
+*.lo
+*.o
+*.obj
+
+# Precompiled Headers
+*.gch
+*.pch
+
+# Compiled Dynamic libraries
+*.so
+*.dylib
+*.dll
+
+# Fortran module files
+*.mod
+*.smod
+
+# Compiled Static libraries
+*.lai
+*.la
+*.a
+*.lib
+
+# Executables
+*.exe
+*.out
+*.app
+
+# Working Path
+/Product
+/tools/cross/rootfs
+
+# Tools
+/.vscode
+/.svace-dir
+
+# Compiled python3 code cache
+**/__pycache__
+*.pyc
+
+# vim temp files
+.*.sw*
+
+# ctags files
+tags
+
+# gnu-global files
+GPATH
+GTAGS
+GRTAGS
+
+# acl build outputs
+/externals/acl/..dblite
+/externals/acl/build
+/externals/acl/src/acl-stamp
+/externals/acl/tmp
+
+# Test cache for model download
+/tests/framework/cache
+
+# external libs
+/externals/absl/
+/externals/eigen/
+/externals/farmhash/
+/externals/flatbuffers/
+/externals/gemmlowp/
+/externals/neon_2_sse/
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 000000000..a82b4eac5
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,8 @@
+[submodule "tensorflow"]
+ path = externals/tensorflow
+ url = git://git.tizen.org/platform/upstream/tensorflow
+ branch = tizen
+[submodule "acl"]
+ path = externals/acl
+ url = git://git.tizen.org/platform/upstream/armcl
+ branch = master
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 000000000..faf88ef6d
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,181 @@
+cmake_minimum_required(VERSION 2.8.12)
+
+project(nnfw)
+
+if(CMAKE_VERSION VERSION_LESS 3.1.0)
+ set(CMAKE_CXX_FLAGS "-std=c++11")
+else(CMAKE_VERSION VERSION_LESS 3.1.0)
+ set(CMAKE_CXX_STANDARD 11)
+endif(CMAKE_VERSION VERSION_LESS 3.1.0)
+
+# set host platform to build
+if(NOT HOST_ARCH OR "${HOST_ARCH}" STREQUAL "")
+ set(HOST_ARCH ${CMAKE_HOST_SYSTEM_PROCESSOR})
+endif()
+
+# set target platform to run
+if(NOT TARGET_ARCH OR "${TARGET_ARCH}" STREQUAL "")
+ set(TARGET_ARCH "${HOST_ARCH}")
+endif()
+
+if(NOT DEFINED TARGET_OS)
+ set(TARGET_OS "${HOST_OS}")
+endif()
+
+if("${HOST_ARCH}" STREQUAL "x86_64")
+ set(HOST_ARCH_BASE ${HOST_ARCH})
+elseif("${HOST_ARCH}" STREQUAL "armv7l")
+ set(HOST_ARCH_BASE "arm")
+elseif("${HOST_ARCH}" STREQUAL "arm64")
+ set(HOST_ARCH_BASE "arm64")
+elseif("${HOST_ARCH}" STREQUAL "aarch64")
+ set(HOST_ARCH_BASE "aarch64")
+else()
+ message(FATAL_ERROR "'${HOST_ARCH}' architecture is not supported")
+endif()
+
+if("${TARGET_ARCH}" STREQUAL "x86_64")
+ set(TARGET_ARCH_BASE ${TARGET_ARCH})
+elseif("${TARGET_ARCH}" STREQUAL "armv7l")
+ set(TARGET_ARCH_BASE "arm")
+elseif("${TARGET_ARCH}" STREQUAL "arm64")
+ set(TARGET_ARCH_BASE "arm64")
+elseif("${TARGET_ARCH}" STREQUAL "aarch64")
+ set(TARGET_ARCH_BASE "aarch64")
+else()
+ message(FATAL_ERROR "'${TARGET_ARCH}' architecture is not supported")
+endif()
+
+# Determine native or cross build
+if("${HOST_ARCH}" STREQUAL "${TARGET_ARCH}")
+ set(BUILD_IS_NATIVE True)
+else()
+ set(BUILD_IS_NATIVE False)
+endif()
+
+# host & target platform name
+set(HOST_PLATFORM "${HOST_ARCH}-${HOST_OS}")
+set(TARGET_PLATFORM "${TARGET_ARCH}-${TARGET_OS}")
+
+# lib pthread as a variable (pthread must be disabled on android)
+set(LIB_PTHREAD pthread)
+
+# platform specific options
+include("cmake/option/option_${TARGET_PLATFORM}.cmake")
+
+# test-coverage build flag
+if("${COVERAGE_BUILD}" STREQUAL "1")
+ set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE ON)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
+ set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
+ set(CMAKE_EXE_LINKER_FLAGS
+ "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage")
+endif()
+
+# add common flags
+foreach(FLAG ${FLAGS_COMMON})
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAG}")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAG}")
+endforeach()
+
+# add c flags
+foreach(FLAG ${FLAGS_CONLY})
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAG}")
+endforeach()
+
+# add cxx flags
+foreach(FLAG ${FLAGS_CXXONLY})
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAG}")
+endforeach()
+
+#
+# Configuration flags
+#
+option(BUILD_ACL "Build ARM Compute Library" OFF)
+option(BUILD_ACL_STATIC_LIB "Build ARM Comput Static Library" OFF)
+option(BUILD_BENCHMARK_ACL "Build ARM Compute Library Benchmarks" OFF)
+option(BUILD_NN_RUNTIME "Build NN Runtime" ON)
+option(BUILD_LABS "Build lab projects" ON)
+option(BUILD_ANDROID_NN_RUNTIME_TEST "Build Android NN Runtime Test" ON)
+
+#
+# Common variables
+#
+set(NNFW_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include)
+
+if(NOT "${TARGET_OS}" STREQUAL "tizen" AND NOT "${TARGET_OS}" STREQUAL "android")
+ set(NNFW_ACL_FOLDER ${CMAKE_SOURCE_DIR}/externals/acl)
+ set(NNFW_ACL_INCLUDES ${NNFW_ACL_FOLDER}
+ ${NNFW_ACL_FOLDER}/include)
+else()
+ set(NNFW_ACL_FOLDER "")
+ set(NNFW_ACL_INCLUDES "")
+endif()
+set(NNFW_ACL_LIBS arm_compute_graph arm_compute arm_compute_core)
+set(NNFW_NN_RUNTIME_ROOT ${CMAKE_SOURCE_DIR}/runtimes/nn)
+
+# NOTE '${CMAKE_INSTALL_PREFIX}/lib' should be added as a link directory as
+# CI server places pre-built ARM compute libraries on this directory.
+link_directories(${CMAKE_INSTALL_PREFIX}/lib)
+
+#
+# GTest support
+#
+if("${TARGET_OS}" STREQUAL "tizen" AND NOT "${TARGET_OS}" STREQUAL "android")
+ enable_testing()
+ find_package(GTest REQUIRED)
+ include_directories(${GTEST_INCLUDE_DIR})
+else()
+ include(ExternalProject)
+ # Download and install GoogleTest
+ ExternalProject_Add(
+ googletest
+ URL https://github.com/google/googletest/archive/release-1.8.0.zip
+ PREFIX ${CMAKE_CURRENT_BINARY_DIR}/googletest
+ # Disable install step
+ INSTALL_COMMAND ""
+ LOG_DOWNLOAD 1
+ LOG_BUILD 1
+ LOG_CONFIGURE 1
+ CMAKE_ARGS
+ -DCMAKE_TOOLCHAIN_FILE=${PROJECT_SOURCE_DIR}/cmake/config/config_${TARGET_ARCH}-${TARGET_OS}.cmake
+ )
+ ExternalProject_Get_Property(googletest source_dir binary_dir)
+
+ # include and link path for all sub project
+ include_directories(${source_dir}/googletest/include/)
+ link_directories(${binary_dir}/googlemock/gtest/)
+endif()
+
+# gtest libs
+set(NNFW_GTEST_LIBS libgtest.a libgtest_main.a ${LIB_PTHREAD})
+
+# TODO For now Android build is being enabled incrementally so not all subdirectories are added yet.
+# However we are going to have the same subdirectories with other OS eventually.
+if("${TARGET_OS}" STREQUAL "android")
+
+ include_directories(externals/tensorflow)
+ include_directories(externals/flatbuffers/include)
+ include_directories(include)
+
+ add_subdirectory(libs)
+ add_subdirectory(externals)
+ add_subdirectory(tools/nnapi_test)
+
+ if(BUILD_NN_RUNTIME)
+ add_subdirectory(runtimes/nn)
+ endif(BUILD_NN_RUNTIME)
+ add_subdirectory(src/support/tflite)
+
+else("${TARGET_OS}" STREQUAL "android") # General case (non-android build)
+
+# TODO Fix indentation
+
+if (NOT ${TARGET_OS} STREQUAL "tizen")
+ add_subdirectory(externals)
+endif()
+add_subdirectory(libs)
+add_subdirectory(tools)
+add_subdirectory(runtimes)
+
+endif("${TARGET_OS}" STREQUAL "android")
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 000000000..eb1c3bbc1
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,613 @@
+This file provides full text of licenses used in this project
+
+- Apache Licence 2.0
+- Mozilla Public License 2.0
+- 3-Clause BSD License
+
+...............................................................................
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+...............................................................................
+
+Mozilla Public License Version 2.0
+==================================
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+ means each individual or legal entity that creates, contributes to
+ the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+ means the combination of the Contributions of others (if any) used
+ by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+ means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+ means Source Code Form to which the initial Contributor has attached
+ the notice in Exhibit A, the Executable Form of such Source Code
+ Form, and Modifications of such Source Code Form, in each case
+ including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+ means
+
+ (a) that the initial Contributor has attached the notice described
+ in Exhibit B to the Covered Software; or
+
+ (b) that the Covered Software was made available under the terms of
+ version 1.1 or earlier of the License, but not also under the
+ terms of a Secondary License.
+
+1.6. "Executable Form"
+ means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+ means a work that combines Covered Software with other material, in
+ a separate file or files, that is not Covered Software.
+
+1.8. "License"
+ means this document.
+
+1.9. "Licensable"
+ means having the right to grant, to the maximum extent possible,
+ whether at the time of the initial grant or subsequently, any and
+ all of the rights conveyed by this License.
+
+1.10. "Modifications"
+ means any of the following:
+
+ (a) any file in Source Code Form that results from an addition to,
+ deletion from, or modification of the contents of Covered
+ Software; or
+
+ (b) any new file in Source Code Form that contains any Covered
+ Software.
+
+1.11. "Patent Claims" of a Contributor
+ means any patent claim(s), including without limitation, method,
+ process, and apparatus claims, in any patent Licensable by such
+ Contributor that would be infringed, but for the grant of the
+ License, by the making, using, selling, offering for sale, having
+ made, import, or transfer of either its Contributions or its
+ Contributor Version.
+
+1.12. "Secondary License"
+ means either the GNU General Public License, Version 2.0, the GNU
+ Lesser General Public License, Version 2.1, the GNU Affero General
+ Public License, Version 3.0, or any later versions of those
+ licenses.
+
+1.13. "Source Code Form"
+ means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+ means an individual or a legal entity exercising rights under this
+ License. For legal entities, "You" includes any entity that
+ controls, is controlled by, or is under common control with You. For
+ purposes of this definition, "control" means (a) the power, direct
+ or indirect, to cause the direction or management of such entity,
+ whether by contract or otherwise, or (b) ownership of more than
+ fifty percent (50%) of the outstanding shares or beneficial
+ ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+ Licensable by such Contributor to use, reproduce, make available,
+ modify, display, perform, distribute, and otherwise exploit its
+ Contributions, either on an unmodified basis, with Modifications, or
+ as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+ for sale, have made, import, and otherwise transfer either its
+ Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+ or
+
+(b) for infringements caused by: (i) Your and any other third party's
+ modifications of Covered Software, or (ii) the combination of its
+ Contributions with other software (except as part of its Contributor
+ Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+ its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+ Form, as described in Section 3.1, and You must inform recipients of
+ the Executable Form how they can obtain a copy of such Source Code
+ Form by reasonable means in a timely manner, at a charge no more
+ than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+ License, or sublicense it under different terms, provided that the
+ license for the Executable Form does not attempt to limit or alter
+ the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+* *
+* 6. Disclaimer of Warranty *
+* ------------------------- *
+* *
+* Covered Software is provided under this License on an "as is" *
+* basis, without warranty of any kind, either expressed, implied, or *
+* statutory, including, without limitation, warranties that the *
+* Covered Software is free of defects, merchantable, fit for a *
+* particular purpose or non-infringing. The entire risk as to the *
+* quality and performance of the Covered Software is with You. *
+* Should any Covered Software prove defective in any respect, You *
+* (not any Contributor) assume the cost of any necessary servicing, *
+* repair, or correction. This disclaimer of warranty constitutes an *
+* essential part of this License. No use of any Covered Software is *
+* authorized under this License except under this disclaimer. *
+* *
+************************************************************************
+
+************************************************************************
+* *
+* 7. Limitation of Liability *
+* -------------------------- *
+* *
+* Under no circumstances and under no legal theory, whether tort *
+* (including negligence), contract, or otherwise, shall any *
+* Contributor, or anyone who distributes Covered Software as *
+* permitted above, be liable to You for any direct, indirect, *
+* special, incidental, or consequential damages of any character *
+* including, without limitation, damages for lost profits, loss of *
+* goodwill, work stoppage, computer failure or malfunction, or any *
+* and all other commercial damages or losses, even if such party *
+* shall have been informed of the possibility of such damages. This *
+* limitation of liability shall not apply to liability for death or *
+* personal injury resulting from such party's negligence to the *
+* extent applicable law prohibits such limitation. Some *
+* jurisdictions do not allow the exclusion or limitation of *
+* incidental or consequential damages, so this exclusion and *
+* limitation may not apply to You. *
+* *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - "Incompatible With Secondary Licenses" Notice
+---------------------------------------------------------
+
+ This Source Code Form is "Incompatible With Secondary Licenses", as
+ defined by the Mozilla Public License, v. 2.0.
+
+...............................................................................
+
+Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+* Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Makefile b/Makefile
new file mode 100644
index 000000000..63b172973
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,233 @@
+TARGET_ARCH?=$(shell uname -p)
+BUILD_TYPE?=Debug
+CROSS_BUILD?=0
+HOST_OS?=linux
+TARGET_OS?=linux
+NPROCS:=1
+OBS_BUILD?=0
+COVERAGE_BUILD?=0
+BENCHMARK_ACL_BUILD?=0
+OPTIONS?=
+
+# make TARGET and TYPE to lowercase
+TARGET_ARCH_LC=$(shell echo $(TARGET_ARCH) | tr A-Z a-z)
+BUILD_TYPE_LC=$(shell echo $(BUILD_TYPE) | tr A-Z a-z)
+# we need base name 'arm` for all arm arch
+TARGET_ARCH_BASE=$(TARGET_ARCH_LC)
+ifneq (,$(findstring arm64,$(TARGET_ARCH_BASE)))
+ # arm64 as target-arch comes from Android
+ TARGET_ARCH_BASE=arm64
+ ifdef ROOTFS_DIR
+ ROOTFS_ARM64=$(ROOTFS_DIR)
+ export ROOTFS_ARM64
+ endif
+ # For now Android is the only option for arm64
+ TARGET_OS:=android
+else ifneq (,$(findstring arm,$(TARGET_ARCH_BASE)))
+ TARGET_ARCH_BASE=arm
+ ifdef ROOTFS_DIR
+ ROOTFS_ARM=$(ROOTFS_DIR)
+ export ROOTFS_ARM
+ endif
+else ifneq (,$(findstring aarch64,$(TARGET_ARCH_BASE)))
+ # aarch64 as target-arch comes from all except for Android
+ TARGET_ARCH_BASE=aarch64
+ ifdef ROOTFS_DIR
+ ROOTFS_ARM64=$(ROOTFS_DIR)
+ export ROOTFS_ARM64
+ endif
+endif
+# Todo: we may set CROSS_BUILD=1 when ROOTFS_DIR is given
+# the toolchain file, only for cross build
+ifeq ($(CROSS_BUILD),1)
+ TOOLCHAIN_FILE=cmake/config/config_$(TARGET_ARCH_LC)-$(TARGET_OS).cmake
+ OPTION_TOOLCHAIN=-DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN_FILE)
+else
+ OPTION_TOOLCHAIN=
+endif
+
+ifeq ($(COVERAGE_BUILD),1)
+ OPTIONS+= -DCOVERAGE_BUILD=1
+else
+ OPTIONS+= -DCOVERAGE_BUILD=0
+endif
+
+ifeq ($(BENCHMARK_ACL_BUILD),1)
+ OPTIONS+= -DBUILD_BENCHMARK_ACL=1
+endif
+
+# Get number of processors (linux only for now)
+ifeq ($(HOST_OS),linux)
+ NPROCS:=$(shell grep -c ^processor /proc/cpuinfo)
+endif
+
+WORKHOME=Product
+WORKFOLDER=$(TARGET_ARCH_LC)-$(TARGET_OS).$(BUILD_TYPE_LC)
+WORKDIR=$(WORKHOME)/$(WORKFOLDER)
+
+BUILD_ROOT=$(WORKDIR)/obj
+INSTALL_ROOT=$(WORKDIR)/out
+
+BUILD_FOLDER=$(WORKFOLDER)/obj
+INSTALL_FOLDER=$(WORKFOLDER)/out
+BUILD_ALIAS=$(WORKHOME)/obj
+INSTALL_ALIAS=$(WORKHOME)/out
+
+INSTALL_PATH?=$(CURDIR)/$(WORKDIR)/out
+
+TIMESTAMP_CONFIGURE=$(WORKDIR)/CONFIGURE
+TIMESTAMP_BUILD=$(WORKDIR)/BUILD
+TIMESTAMP_INSTALL=$(WORKDIR)/INSTALL
+
+ACL_FOLDER=externals/acl
+ACL_COMMAND=scons -j${NPROCS} Werror=1 neon=1 opencl=1 os=linux examples=0 embed_kernels=1
+ifeq ($(TARGET_ARCH_LC),armv7l)
+ ACL_COMMAND+= arch=armv7a
+else ifeq ($(TARGET_ARCH_LC),aarch64)
+ ACL_COMMAND+= arch=arm64-v8a
+endif
+ifeq ($(BUILD_TYPE_LC),debug)
+ ACL_COMMAND+=debug=1 asserts=1 build_dir=debug
+ ACL_FOLDER_BUILD=$(ACL_FOLDER)/build/debug
+else
+ ACL_COMMAND+=build_dir=release
+ ACL_FOLDER_BUILD=$(ACL_FOLDER)/build/release
+endif
+
+all: build
+
+###
+### Command (public)
+###
+configure: configure_internal
+
+build: build_internal
+
+install: $(TIMESTAMP_INSTALL)
+
+clean:
+ rm -rf $(WORKDIR)
+
+acl: internal_acl_build internal_acl_install
+
+check: check_internal
+
+runtime: runtime_build_internal
+
+testbuild: test_build_internal
+
+tflite: tflite_build_internal
+
+###
+### Command (internal)
+###
+configure_internal:
+ifneq ($(TARGET_OS),tizen)
+ git submodule update --init --recursive
+endif
+
+ mkdir -p $(BUILD_ROOT)
+ cmake -B$(CURDIR)/$(BUILD_ROOT) -H$(CURDIR) \
+ -DCMAKE_INSTALL_PREFIX=$(INSTALL_PATH) \
+ -DCMAKE_BUILD_TYPE=$(BUILD_TYPE_LC) -DTARGET_ARCH=$(TARGET_ARCH_LC) \
+ -DHOST_OS=$(HOST_OS) \
+ -DTARGET_OS=$(TARGET_OS) \
+ $(OPTION_TOOLCHAIN) \
+ $(OPTIONS)
+ touch $(TIMESTAMP_CONFIGURE)
+
+build_internal: $(BUILD_ROOT)
+ cd $(BUILD_ROOT) && make -j $(NPROCS) all
+ rm -rf $(BUILD_ALIAS)
+ ln -s $(BUILD_FOLDER) $(BUILD_ALIAS)
+ touch $(TIMESTAMP_BUILD)
+
+install_internal:
+ cd $(BUILD_ROOT) && make install
+ rm -rf $(INSTALL_ALIAS)
+ ln -s $(INSTALL_FOLDER) $(INSTALL_ALIAS)
+ touch $(TIMESTAMP_INSTALL)
+
+internal_acl_build:
+ cd $(ACL_FOLDER) && $(ACL_COMMAND)
+
+internal_acl_install:
+ @mkdir -vp $(INSTALL_PATH)/lib
+ @cp -v $(ACL_FOLDER_BUILD)/libarm_compute_core.so $(INSTALL_PATH)/lib/.
+ @cp -v $(ACL_FOLDER_BUILD)/libarm_compute_graph.so $(INSTALL_PATH)/lib/.
+ @cp -v $(ACL_FOLDER_BUILD)/libarm_compute.so $(INSTALL_PATH)/lib/.
+
+external_acl:
+ifneq ($(EXT_ACL_FOLDER),"")
+ @mkdir -vp $(INSTALL_PATH)/lib
+ @cp -v $(EXT_ACL_FOLDER)/libarm_compute_core.so $(INSTALL_PATH)/lib/.
+ @cp -v $(EXT_ACL_FOLDER)/libarm_compute_graph.so $(INSTALL_PATH)/lib/.
+ @cp -v $(EXT_ACL_FOLDER)/libarm_compute.so $(INSTALL_PATH)/lib/.
+endif
+
+ifeq ($(CROSS_BUILD),1)
+check_internal: test_internal_cross
+else
+check_internal: test_internal
+endif
+
+# TODO: Enable tests on cross build
+test_internal_cross:
+ @echo "Can't do tests on cross build"
+
+test_internal:
+ tools/test_driver/test_driver.sh .
+
+build_test_suite: install_internal
+ @echo "packaging test suite"
+ @rm -rf $(INSTALL_ROOT)/test-suite.tar.gz
+ @tar -zcf test-suite.tar.gz tests/ tools/test_driver $(INSTALL_ALIAS) --dereference
+ @mv test-suite.tar.gz $(INSTALL_ROOT)/.
+
+build_coverage_suite: install_internal
+ @echo "packaging test-coverage suite"
+ @rm -rf $(INSTALL_ROOT)/coverage-suite.tar.gz
+ @find Product -name "*.gcno" > include_lists.txt
+ @tar -zcf coverage-suite.tar.gz tests/ tools/test_driver $(INSTALL_ALIAS) --dereference -T include_lists.txt
+ @rm -rf include_lists.txt
+ @mv coverage-suite.tar.gz $(INSTALL_ROOT)/.
+
+runtime_build_internal: $(BUILD_ROOT)
+ cd $(BUILD_ROOT) && make -j $(NPROCS) runtime
+ rm -rf $(BUILD_ALIAS)
+ ln -s $(BUILD_FOLDER) $(BUILD_ALIAS)
+ touch $(TIMESTAMP_BUILD)
+
+test_build_internal: $(BUILD_ROOT)
+ # Build test
+ cd $(BUILD_ROOT) && make -j $(NPROCS) nnapi_test
+ # Build unittest
+ cd $(BUILD_ROOT) && make -j $(NPROCS) kernelacl_test runtime_run_android_nn_test
+ rm -rf $(BUILD_ALIAS)
+ ln -s $(BUILD_FOLDER) $(BUILD_ALIAS)
+ touch $(TIMESTAMP_BUILD)
+
+tflite_build_internal: $(BUILD_ROOT)
+ # Build test
+ cd $(BUILD_ROOT) && make -j $(NPROCS) tensorflow-lite
+ rm -rf $(BUILD_ALIAS)
+ ln -s $(BUILD_FOLDER) $(BUILD_ALIAS)
+ touch $(TIMESTAMP_BUILD)
+
+###
+### Timestamps
+###
+$(WORKDIR):
+ mkdir -p $@
+
+$(BUILD_ROOT): $(WORKDIR)
+ make configure_internal
+
+$(TIMESTAMP_CONFIGURE):
+ make configure_internal
+
+$(TIMESTAMP_BUILD): $(TIMESTAMP_CONFIGURE)
+ make build_internal
+
+$(TIMESTAMP_INSTALL): $(TIMESTAMP_BUILD)
+ make install_internal
diff --git a/README.md b/README.md
new file mode 100644
index 000000000..3d2a1f451
--- /dev/null
+++ b/README.md
@@ -0,0 +1,16 @@
+# nnfw
+
+A high-performance, on-device neural network inference framework
+
+## Goal
+This project _nnfw_ aims at providing a high-performance, on-device neural network (NN) inference
+framework that performs inference of a given NN model on processors, such as CPU, GPU, or NPU, in
+the target platform, such as Tizen and Smart Machine Platform (SMP).
+
+## About this _experimental_ release
+_Experimental_ means the Tizen M1 release of _nnfw_ has very limited capability, which could only
+run InceptionV3, and would have very limited support from the developers. And, the backward
+compatibility in the future release, e.g., one planned in October, might not be guaranteed.
+
+## How-to documents
+- [How to add unittest using gtest](docs/howto/HowToAddUnittest.md)
diff --git a/cmake/config/config_aarch64-linux.cmake b/cmake/config/config_aarch64-linux.cmake
new file mode 100644
index 000000000..b13a8b02f
--- /dev/null
+++ b/cmake/config/config_aarch64-linux.cmake
@@ -0,0 +1,33 @@
+#
+# config for aarch64-linux
+#
+include(CMakeForceCompiler)
+
+set(CMAKE_SYSTEM_NAME Linux)
+set(CMAKE_SYSTEM_PROCESSOR aarch64)
+
+set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc-5)
+set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++-5)
+
+# where is the target environment
+set(ROOTFS_ARM64 $ENV{ROOTFS_ARM64})
+if(NOT EXISTS "${ROOTFS_ARM64}/lib/aarch64-linux-gnu")
+ set(ROOTFS_ARM64 "${CMAKE_SOURCE_DIR}/tools/cross/rootfs/arm64")
+endif()
+
+set(CMAKE_SYSROOT ${ROOTFS_ARM64})
+set(CMAKE_FIND_ROOT_PATH ${ROOTFS_ARM64})
+set(CMAKE_SHARED_LINKER_FLAGS
+ "${CMAKE_SHARED_LINKER_FLAGS} --sysroot=${ROOTFS_ARM64}"
+ CACHE INTERNAL "" FORCE)
+set(CMAKE_EXE_LINKER_FLAGS
+ "${CMAKE_EXE_LINKER_FLAGS} --sysroot=${ROOTFS_ARM64}"
+ CACHE INTERNAL "" FORCE)
+
+# search for programs in the build host directories
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+
+# for libraries and headers in the target directories
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
diff --git a/cmake/config/config_aarch64-tizen.cmake b/cmake/config/config_aarch64-tizen.cmake
new file mode 100644
index 000000000..e76ad219b
--- /dev/null
+++ b/cmake/config/config_aarch64-tizen.cmake
@@ -0,0 +1,56 @@
+#
+# config for aarch64-linux
+#
+include(CMakeForceCompiler)
+
+set(CMAKE_SYSTEM_NAME Linux)
+set(CMAKE_SYSTEM_PROCESSOR aarch64)
+
+set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc-5)
+set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++-5)
+
+set(TIZEN_TOOLCHAIN "aarch64-tizen-linux-gnu/6.2.1")
+
+# where is the target environment
+set(ROOTFS_ARM64 $ENV{ROOTFS_ARM64})
+if(NOT EXISTS "${ROOTFS_ARM64}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
+ set(ROOTFS_ARM64 "${CMAKE_SOURCE_DIR}/tools/cross/rootfs/arm64")
+endif()
+
+set(CMAKE_SYSROOT ${ROOTFS_ARM64})
+set(CMAKE_FIND_ROOT_PATH ${ROOTFS_ARM64})
+set(CMAKE_SHARED_LINKER_FLAGS
+ "${CMAKE_SHARED_LINKER_FLAGS} --sysroot=${ROOTFS_ARM64}"
+ CACHE INTERNAL "" FORCE)
+set(CMAKE_EXE_LINKER_FLAGS
+ "${CMAKE_EXE_LINKER_FLAGS} --sysroot=${ROOTFS_ARM64}"
+ CACHE INTERNAL "" FORCE)
+
+# search for programs in the build host directories
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+
+# for libraries and headers in the target directories
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
+
+add_compile_options(--sysroot=${ROOTFS_ARM64})
+
+set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --sysroot=${ROOTFS_ARM64}")
+
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --sysroot=${ROOTFS_ARM64}")
+
+include_directories(SYSTEM ${ROOTFS_ARM64}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}/include/c++/)
+include_directories(SYSTEM ${ROOTFS_ARM64}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}/include/c++/aarch64-tizen-linux-gnu)
+add_compile_options(-Wno-deprecated-declarations) # compile-time option
+add_compile_options(-D__extern_always_inline=inline) # compile-time option
+
+set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -B${ROOTFS_ARM64}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
+set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -L${ROOTFS_ARM64}/lib64")
+set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -L${ROOTFS_ARM64}/usr/lib64")
+set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -L${ROOTFS_ARM64}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
+
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -B${ROOTFS_ARM64}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${ROOTFS_ARM64}/lib64")
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${ROOTFS_ARM64}/usr/lib64")
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${ROOTFS_ARM64}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
diff --git a/cmake/config/config_arm64-android.cmake b/cmake/config/config_arm64-android.cmake
new file mode 100644
index 000000000..1c096b583
--- /dev/null
+++ b/cmake/config/config_arm64-android.cmake
@@ -0,0 +1,44 @@
+set(ANDROID_STANDALONE $ENV{ROOTFS_ARM64})
+set(CROSS_NDK_TOOLCHAIN ${ANDROID_STANDALONE}/bin)
+set(CROSS_ROOTFS ${ANDROID_STANDALONE}/sysroot)
+
+set(CMAKE_SYSTEM_NAME Linux)
+set(CMAKE_SYSTEM_VERSION 1)
+set(CMAKE_SYSTEM_PROCESSOR aarch64)
+
+## Specify the toolchain
+set(TOOLCHAIN "aarch64-linux-android")
+set(CMAKE_PREFIX_PATH ${CROSS_NDK_TOOLCHAIN})
+set(TOOLCHAIN_PREFIX ${TOOLCHAIN}-)
+
+find_program(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}clang)
+find_program(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}clang++)
+find_program(CMAKE_ASM_COMPILER ${TOOLCHAIN_PREFIX}clang)
+find_program(CMAKE_AR ${TOOLCHAIN_PREFIX}ar)
+find_program(CMAKE_LD ${TOOLCHAIN_PREFIX}ar)
+find_program(CMAKE_OBJCOPY ${TOOLCHAIN_PREFIX}objcopy)
+find_program(CMAKE_OBJDUMP ${TOOLCHAIN_PREFIX}objdump)
+
+add_compile_options(--sysroot=${CROSS_ROOTFS})
+add_compile_options(-fPIE)
+
+## Needed for Android or bionic specific conditionals
+#add_compile_options(-D__ANDROID__)
+#add_compile_options(-D__BIONIC__)
+
+## NOTE Not sure this is safe. This may cause side effects.
+## Without this, it cannot find `std::stol`, `std::stoi` and so on, with android toolchain
+add_compile_options(-D_GLIBCXX_USE_C99=1)
+
+set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -B${CROSS_ROOTFS}/usr/lib/gcc/${TOOLCHAIN}")
+set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -L${CROSS_ROOTFS}/lib/${TOOLCHAIN}")
+set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} --sysroot=${CROSS_ROOTFS}")
+set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -fPIE -pie")
+
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE)
+set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE)
+set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE)
+
+set(CMAKE_FIND_ROOT_PATH "${CROSS_ROOTFS}")
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
diff --git a/cmake/config/config_armv7l-linux.cmake b/cmake/config/config_armv7l-linux.cmake
new file mode 100644
index 000000000..01d3df937
--- /dev/null
+++ b/cmake/config/config_armv7l-linux.cmake
@@ -0,0 +1,33 @@
+#
+# config for arm-linux
+#
+include(CMakeForceCompiler)
+
+set(CMAKE_SYSTEM_NAME Linux)
+set(CMAKE_SYSTEM_PROCESSOR armv7l)
+
+set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
+set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)
+
+# where is the target environment
+set(ROOTFS_ARM $ENV{ROOTFS_ARM})
+if(NOT EXISTS "${ROOTFS_ARM}/lib/arm-linux-gnueabihf")
+ set(ROOTFS_ARM "${CMAKE_SOURCE_DIR}/tools/cross/rootfs/arm")
+endif()
+
+set(CMAKE_SYSROOT ${ROOTFS_ARM})
+set(CMAKE_FIND_ROOT_PATH ${ROOTFS_ARM})
+set(CMAKE_SHARED_LINKER_FLAGS
+ "${CMAKE_SHARED_LINKER_FLAGS} --sysroot=${ROOTFS_ARM}"
+ CACHE INTERNAL "" FORCE)
+set(CMAKE_EXE_LINKER_FLAGS
+ "${CMAKE_EXE_LINKER_FLAGS} --sysroot=${ROOTFS_ARM}"
+ CACHE INTERNAL "" FORCE)
+
+# search for programs in the build host directories
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+
+# for libraries and headers in the target directories
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
diff --git a/cmake/config/config_armv7l-tizen.cmake b/cmake/config/config_armv7l-tizen.cmake
new file mode 100644
index 000000000..3d49492cd
--- /dev/null
+++ b/cmake/config/config_armv7l-tizen.cmake
@@ -0,0 +1,61 @@
+#
+# config for arm-linux
+#
+include(CMakeForceCompiler)
+
+set(CMAKE_SYSTEM_NAME Linux)
+set(CMAKE_SYSTEM_PROCESSOR armv7l)
+
+set(CMAKE_C_COMPILER arm-linux-gnueabi-gcc-5)
+set(CMAKE_CXX_COMPILER arm-linux-gnueabi-g++-5)
+
+set(TIZEN_TOOLCHAIN "armv7l-tizen-linux-gnueabi/6.2.1")
+
+# where is the target environment
+set(ROOTFS_ARM $ENV{ROOTFS_ARM})
+if(NOT EXISTS "${ROOTFS_ARM}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
+ set(ROOTFS_ARM "${CMAKE_SOURCE_DIR}/tools/cross/rootfs/armel")
+endif()
+
+set(CMAKE_SYSROOT ${ROOTFS_ARM})
+set(CMAKE_FIND_ROOT_PATH ${ROOTFS_ARM})
+set(CMAKE_SHARED_LINKER_FLAGS
+ "${CMAKE_SHARED_LINKER_FLAGS} --sysroot=${ROOTFS_ARM}"
+ CACHE INTERNAL "" FORCE)
+set(CMAKE_EXE_LINKER_FLAGS
+ "${CMAKE_EXE_LINKER_FLAGS} --sysroot=${ROOTFS_ARM}"
+ CACHE INTERNAL "" FORCE)
+
+# search for programs in the build host directories
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+
+# for libraries and headers in the target directories
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
+
+
+
+add_compile_options(-mthumb)
+add_compile_options(-mfpu=neon-vfpv4)
+add_compile_options(-mfloat-abi=softfp)
+add_compile_options(--sysroot=${ROOTFS_ARM})
+
+set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --sysroot=${ROOTFS_ARM}")
+
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --sysroot=${ROOTFS_ARM}")
+
+include_directories(SYSTEM ${ROOTFS_ARM}/usr/lib/gcc/${TIZEN_TOOLCHAIN}/include/c++/)
+include_directories(SYSTEM ${ROOTFS_ARM}/usr/lib/gcc/${TIZEN_TOOLCHAIN}/include/c++/armv7l-tizen-linux-gnueabi)
+add_compile_options(-Wno-deprecated-declarations) # compile-time option
+add_compile_options(-D__extern_always_inline=inline) # compile-time option
+
+set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -B${ROOTFS_ARM}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
+set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -L${ROOTFS_ARM}/lib")
+set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -L${ROOTFS_ARM}/usr/lib")
+set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -L${ROOTFS_ARM}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
+
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -B${ROOTFS_ARM}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${ROOTFS_ARM}/lib")
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${ROOTFS_ARM}/usr/lib")
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${ROOTFS_ARM}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
diff --git a/cmake/config/config_x86_64-linux.cmake b/cmake/config/config_x86_64-linux.cmake
new file mode 100644
index 000000000..3dee8766c
--- /dev/null
+++ b/cmake/config/config_x86_64-linux.cmake
@@ -0,0 +1,7 @@
+#
+# config for x86_64-linux
+#
+include(CMakeForceCompiler)
+
+set(CMAKE_SYSTEM_NAME Linux)
+set(CMAKE_SYSTEM_PROCESSOR x86_64)
diff --git a/cmake/option/option_aarch64-linux.cmake b/cmake/option/option_aarch64-linux.cmake
new file mode 100644
index 000000000..fa5c9205c
--- /dev/null
+++ b/cmake/option/option_aarch64-linux.cmake
@@ -0,0 +1,16 @@
+#
+# aarch64 linux compile options
+#
+
+message(STATUS "Building for AARCH64 Linux")
+
+# include linux common
+include("cmake/option/option_linux.cmake")
+
+if(NOT EXISTS "${ROOTFS_ARM64}/lib/aarch64-linux-gnu")
+ message(FATAL_ERROR "Please prepare RootFS for ARM64")
+endif()
+
+# addition for aarch64-linux
+set(FLAGS_COMMON ${FLAGS_COMMON}
+ )
diff --git a/cmake/option/option_aarch64-tizen.cmake b/cmake/option/option_aarch64-tizen.cmake
new file mode 100644
index 000000000..5e37f35a9
--- /dev/null
+++ b/cmake/option/option_aarch64-tizen.cmake
@@ -0,0 +1,15 @@
+#
+# aarch64 tizen compile options
+#
+
+message(STATUS "Building for AARCH64 Tizen")
+
+# TODO : add and use option_tizen if something uncommon comes up
+# include linux common
+include("cmake/option/option_linux.cmake")
+
+# TODO : support rootfs setting for tizen cross-build
+
+# addition for aarch64-tizen
+set(FLAGS_COMMON ${FLAGS_COMMON}
+ )
diff --git a/cmake/option/option_arm64-android.cmake b/cmake/option/option_arm64-android.cmake
new file mode 100644
index 000000000..42e504afe
--- /dev/null
+++ b/cmake/option/option_arm64-android.cmake
@@ -0,0 +1,4 @@
+include("cmake/option/option_linux.cmake")
+
+# On Android, pthread is contained in bionic(libc)
+set(LIB_PTHREAD "")
diff --git a/cmake/option/option_armv7l-linux.cmake b/cmake/option/option_armv7l-linux.cmake
new file mode 100644
index 000000000..d4505ce1b
--- /dev/null
+++ b/cmake/option/option_armv7l-linux.cmake
@@ -0,0 +1,21 @@
+#
+# armv7l linux compile options
+#
+
+message(STATUS "Building for ARMv7l Linux")
+
+# include linux common
+include("cmake/option/option_linux.cmake")
+
+if(NOT EXISTS "${ROOTFS_ARM}/lib/arm-linux-gnueabihf")
+ message(FATAL_ERROR "Please prepare RootFS for ARM")
+endif()
+
+# addition for arm-linux
+set(FLAGS_COMMON ${FLAGS_COMMON}
+ "-mcpu=cortex-a7"
+ "-mfloat-abi=hard"
+ "-mfpu=neon-vfpv4"
+ "-funsafe-math-optimizations"
+ "-ftree-vectorize"
+ )
diff --git a/cmake/option/option_armv7l-tizen.cmake b/cmake/option/option_armv7l-tizen.cmake
new file mode 100644
index 000000000..6040eb6b8
--- /dev/null
+++ b/cmake/option/option_armv7l-tizen.cmake
@@ -0,0 +1,20 @@
+#
+# armv7l tizen compile options
+#
+
+message(STATUS "Building for ARMv7l(softfp) Tizen")
+
+# TODO : add and use option_tizen if something uncommon comes up
+# include linux common
+include("cmake/option/option_linux.cmake")
+
+# TODO : support rootfs setting for tizen cross-build
+
+# addition for arm-linux
+set(FLAGS_COMMON ${FLAGS_COMMON}
+ "-mcpu=cortex-a8"
+ "-mfloat-abi=softfp"
+ "-mfpu=neon-vfpv4"
+ "-funsafe-math-optimizations"
+ "-ftree-vectorize"
+ )
diff --git a/cmake/option/option_linux.cmake b/cmake/option/option_linux.cmake
new file mode 100644
index 000000000..ea533ec36
--- /dev/null
+++ b/cmake/option/option_linux.cmake
@@ -0,0 +1,9 @@
+#
+# linux common compile options
+#
+
+# flags for build type: debug, release
+set(CMAKE_C_FLAGS_DEBUG "-O0 -g -DDEBUG")
+set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -DDEBUG")
+set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG")
+set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
diff --git a/cmake/option/option_x86_64-linux.cmake b/cmake/option/option_x86_64-linux.cmake
new file mode 100644
index 000000000..6f4d0ebfc
--- /dev/null
+++ b/cmake/option/option_x86_64-linux.cmake
@@ -0,0 +1,12 @@
+#
+# x86_64 linux compile options
+#
+message(STATUS "Building for x86-64 Linux")
+
+# include linux common
+include("cmake/option/option_linux.cmake")
+
+# SIMD for x86
+set(FLAGS_COMMON ${FLAGS_COMMON}
+ "-msse4"
+ )
diff --git a/docs/howto/HowToAddUnittest.md b/docs/howto/HowToAddUnittest.md
new file mode 100644
index 000000000..6612f153d
--- /dev/null
+++ b/docs/howto/HowToAddUnittest.md
@@ -0,0 +1,27 @@
+# How to Add Unittest using gtest(googletest)
+
+### 1. make own test code
+```
+#include "gtest/gtest.h"
+
+TEST(TFLite_test_case, simple_test)
+{
+ EXPECT_EQ(1, 1);
+}
+```
+
+### 2. Add dependancy on `googletest` to your test executable
+```
+add_executable($YOURTEST_TARGET yourtest1.cc yourtest2.cc)
+add_dependencies($YOURTEST_TARGET googletest)
+```
+
+### 3. Link test executable against libgtest.a and libgtest_main.a (+ pthread)
+```
+target_link_libraries($YOURTEST_TARGET libgtest.a libgtest_main.a pthread)
+```
+
+### 4. Install test executable into Product/out/unittest
+```
+install(TARGETS $YOURTEST_TARGET DESTINATION unittest)
+```
diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt
new file mode 100644
index 000000000..0d8579e48
--- /dev/null
+++ b/externals/CMakeLists.txt
@@ -0,0 +1,42 @@
+set(TENSORFLOW_BASE ${CMAKE_CURRENT_SOURCE_DIR}/tensorflow)
+set(TENSORFLOW_LITE_BASE ${TENSORFLOW_BASE}/tensorflow/contrib/lite)
+set(EXTERNAL_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tensorflow/tensorflow/contrib/lite/downloads")
+
+include(eigen3.cmake)
+
+if(BUILD_IS_NATIVE AND NOT HOST_ARCH_BASE STREQUAL "arm")
+ add_subdirectory(${EXTERNAL_SRC_DIR}/flatbuffers)
+endif()
+
+#
+# Tensorflow Lite library
+#
+file(GLOB TFLITE_CORE_SRCS "${TENSORFLOW_LITE_BASE}/*.c" "${TENSORFLOW_LITE_BASE}/*.cc")
+file(GLOB TFLITE_CORE_TESTS "${TENSORFLOW_LITE_BASE}/*test*.cc")
+list(REMOVE_ITEM TFLITE_CORE_SRCS ${TFLITE_CORE_TESTS})
+
+file(GLOB_RECURSE TFLITE_KERNEL_SRCS "${TENSORFLOW_LITE_BASE}/kernels/*.cc")
+file(GLOB_RECURSE TFLITE_KERNEL_TESTS "${TENSORFLOW_LITE_BASE}/kernels/*test*.cc")
+list(REMOVE_ITEM TFLITE_KERNEL_SRCS ${TFLITE_KERNEL_TESTS})
+
+list(APPEND TFLITE_SRCS ${TFLITE_CORE_SRCS})
+list(APPEND TFLITE_SRCS ${TFLITE_KERNEL_SRCS})
+list(APPEND TFLITE_SRCS "${EXTERNAL_SRC_DIR}/farmhash/src/farmhash.cc")
+
+list(APPEND TFLITE_INCLUDES "${EXTERNAL_SRC_DIR}/")
+list(APPEND TFLITE_INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/tensorflow")
+list(APPEND TFLITE_INCLUDES "${EXTERNAL_SRC_DIR}/gemmlowp")
+list(APPEND TFLITE_INCLUDES "${EXTERNAL_SRC_DIR}/neon_2_sse")
+list(APPEND TFLITE_INCLUDES "${EXTERNAL_SRC_DIR}/farmhash/src")
+list(APPEND TFLITE_INCLUDES "${EXTERNAL_SRC_DIR}/flatbuffers/include")
+
+add_library(tensorflow-lite ${TFLITE_SRCS})
+target_include_directories(tensorflow-lite PUBLIC ${TFLITE_INCLUDES})
+target_compile_definitions(tensorflow-lite PUBLIC "GEMMLOWP_ALLOW_SLOW_SCALAR_FALLBACK")
+target_link_libraries(tensorflow-lite eigen3 ${LIB_PTHREAD} dl)
+
+install(TARGETS tensorflow-lite ARCHIVE DESTINATION lib)
+
+if(BUILD_ACL)
+ include(acl.cmake)
+endif(BUILD_ACL)
diff --git a/externals/acl.cmake b/externals/acl.cmake
new file mode 100644
index 000000000..206ada650
--- /dev/null
+++ b/externals/acl.cmake
@@ -0,0 +1,150 @@
+###
+### ARM Compute Library
+###
+set(ACL_BASE ${CMAKE_CURRENT_SOURCE_DIR}/acl)
+set(ACL_GENERATED ${CMAKE_CURRENT_BINARY_DIR}/acl_generated)
+set(ACL_VERSION_TAG "${ACL_GENERATED}/arm_compute_version.embed")
+
+# Create 'arm_compute_version.embed'
+add_custom_command(OUTPUT ${ACL_VERSION_TAG}
+ COMMAND mkdir -p "${ACL_GENERATED}"
+ COMMAND echo '"unknown"' > "${ACL_VERSION_TAG}")
+
+file(GLOB_RECURSE ACL_UTIL_SRCS "${ACL_BASE}/src/core/utils/*.cpp")
+
+### ARM Compute Library - Foundation library (such as I/O and logging)
+if(BUILD_ACL_STATIC_LIB)
+ add_library(acl_foundation ${ACL_UTIL_SRCS})
+ target_include_directories(acl_foundation PUBLIC "${ACL_BASE}")
+ target_include_directories(acl_foundation PUBLIC "${ACL_BASE}/include")
+ target_link_libraries(acl_foundation dl pthread)
+endif(BUILD_ACL_STATIC_LIB)
+
+###
+### ARM Compute Library Common (Core & Runtime)
+###
+file(GLOB ACL_CORE_COMMON_SRCS "${ACL_BASE}/src/core/*.cpp")
+list(APPEND ACL_CORE_COMMON_SRCS ${ACL_VERSION_TAG})
+# Both CL & NEON runtime funtions use these CPP kernels
+list(APPEND ACL_CORE_COMMON_SRCS "${ACL_BASE}/src/core/CPP/kernels/CPPCornerCandidatesKernel.cpp")
+list(APPEND ACL_CORE_COMMON_SRCS "${ACL_BASE}/src/core/CPP/kernels/CPPDetectionWindowNonMaximaSuppressionKernel.cpp")
+list(APPEND ACL_CORE_COMMON_SRCS "${ACL_BASE}/src/core/CPP/kernels/CPPSortEuclideanDistanceKernel.cpp")
+
+if(BUILD_ACL_STATIC_LIB)
+ add_library(acl_core_common ${ACL_CORE_COMMON_SRCS})
+ target_include_directories(acl_core_common PUBLIC "${ACL_GENERATED}")
+ target_link_libraries(acl_core_common acl_foundation)
+endif(BUILD_ACL_STATIC_LIB)
+
+file(GLOB ACL_RUNTIME_COMMON_SRCS "${ACL_BASE}/src/runtime/*.cpp")
+# src/runtime/Scheduler.cpp depends on this scheduler
+list(APPEND ACL_RUNTIME_COMMON_SRCS "${ACL_BASE}/src/runtime/CPP/SingleThreadScheduler.cpp")
+
+if(BUILD_ACL_STATIC_LIB)
+ add_library(acl_core_opencl ${ACL_CORE_OPENCL_SRCS})
+ target_link_libraries(acl_core_opencl acl_core_common OpenCL)
+endif(BUILD_ACL_STATIC_LIB)
+
+###
+### ARM Compute Library Open CL (Core & Runtime & Example)
+###
+file(GLOB ACL_CORE_OPENCL_SRCS "${ACL_BASE}/src/core/CL/*.cpp")
+file(GLOB ACL_CORE_OPENCL_KERNEL_SRCS "${ACL_BASE}/src/core/CL/kernels/*.cpp")
+list(APPEND ACL_CORE_OPENCL_SRCS ${ACL_CORE_OPENCL_KERNEL_SRCS})
+
+if(BUILD_ACL_STATIC_LIB)
+ add_library(acl_runtime_opencl ${ACL_RUNTIME_OPENCL_SRCS})
+ target_link_libraries(acl_runtime_opencl acl_runtime_common acl_core_opencl)
+endif(BUILD_ACL_STATIC_LIB)
+
+file(GLOB_RECURSE ACL_RUNTIME_OPENCL_SRCS "${ACL_BASE}/src/runtime/CL/*.cpp")
+
+if(BUILD_ACL_STATIC_LIB)
+ add_library(acl_core_neon ${ACL_CORE_NEON_SRCS})
+ target_include_directories(acl_core_neon PUBLIC "${ACL_BASE}/arm_compute/core/NEON/kernels/assembly")
+ target_link_libraries(acl_core_neon acl_core_common)
+endif(BUILD_ACL_STATIC_LIB)
+
+###
+### ARM Compute Library NEON (Core & Runtime & Example)
+###
+file(GLOB ACL_CORE_NEON_SRCS "${ACL_BASE}/src/core/NEON/kernels/*.cpp" "${ACL_BASE}/src/core/NEON/kernels/arm32/*.cpp")
+file(GLOB_RECURSE ACL_CORE_NEON_CONVOLUTION_SRCS "${ACL_BASE}/src/core/NEON/kernels/convolution/winograd/*.cpp" "${ACL_BASE}/src/core/NEON/kernels/convolution/depthwise/*.cpp")
+list(APPEND ACL_CORE_NEON_SRCS ${ACL_CORE_NEON_CONVOLUTION_SRCS})
+list(APPEND ACL_CORE_NEON_SRCS "${ACL_BASE}/src/core/CPP/ICPPSimpleKernel.cpp")
+list(APPEND ACL_CORE_NEON_SRCS "${ACL_BASE}/src/core/CPP/kernels/CPPPermuteKernel.cpp")
+
+if(BUILD_ACL_STATIC_LIB)
+ add_library(acl_runtime_neon ${ACL_RUNTIME_NEON_SRCS})
+ target_link_libraries(acl_runtime_neon acl_runtime_common acl_core_neon)
+endif(BUILD_ACL_STATIC_LIB)
+
+file(GLOB_RECURSE ACL_RUNTIME_NEON_SRCS "${ACL_BASE}/src/runtime/NEON/*.cpp")
+# runtime/NEON/functions/NEWinogradLayer.h use this implementation
+list(APPEND ACL_RUNTIME_NEON_SRCS "${ACL_BASE}/src/runtime/CPP/ICPPSimpleFunction.cpp")
+list(APPEND ACL_RUNTIME_NEON_SRCS "${ACL_BASE}/src/runtime/CPP/functions/CPPPermute.cpp")
+
+if(BUILD_ACL_STATIC_LIB)
+ add_library(acl_graph ${ACL_GRAPH_SRCS})
+ target_link_libraries(acl_graph acl_runtime_opencl acl_runtime_neon)
+endif(BUILD_ACL_STATIC_LIB)
+
+# TODO Support Open MP core(?)
+# TODO Support Open GLES core(?)
+
+###
+### ARM Compute Library (Graph & Example)
+###
+file(GLOB ACL_GRAPH_COMMON_SRCS "${ACL_BASE}/src/graph/*.cpp" "${ACL_BASE}/src/graph/nodes/*.cpp")
+file(GLOB ACL_GRAPH_OPENCL_SRCS "${ACL_BASE}/src/graph/CL/*.cpp" "${ACL_BASE}/src/graph/operations/CL*.cpp")
+file(GLOB ACL_GRAPH_NEON_SRCS "${ACL_BASE}/src/graph/NE/*.cpp" "${ACL_BASE}/src/graph/operations/NE*.cpp")
+
+list(APPEND ACL_GRAPH_SRCS ${ACL_GRAPH_COMMON_SRCS})
+list(APPEND ACL_GRAPH_SRCS ${ACL_GRAPH_OPENCL_SRCS})
+list(APPEND ACL_GRAPH_SRCS ${ACL_GRAPH_NEON_SRCS})
+
+if(BUILD_ACL_STATIC_LIB)
+ add_library(acl_graph ${ACL_GRAPH_SRCS})
+ target_link_libraries(acl_graph acl_runtime_opencl acl_runtime_neon)
+endif(BUILD_ACL_STATIC_LIB)
+
+###
+### ARM Compute Shared Libraries
+###
+list(APPEND ACL_CORE_SRCS ${ACL_UTIL_SRCS})
+list(APPEND ACL_CORE_SRCS ${ACL_CORE_COMMON_SRCS})
+list(APPEND ACL_CORE_SRCS ${ACL_CORE_OPENCL_SRCS})
+list(APPEND ACL_CORE_SRCS ${ACL_CORE_NEON_SRCS})
+
+add_library(arm_compute_core SHARED ${ACL_CORE_SRCS})
+target_include_directories(arm_compute_core PUBLIC "${ACL_GENERATED}")
+target_include_directories(arm_compute_core PUBLIC "${ACL_BASE}")
+target_include_directories(arm_compute_core PUBLIC "${ACL_BASE}/include")
+target_include_directories(arm_compute_core PUBLIC "${ACL_BASE}/arm_compute/core/NEON/kernels/assembly")
+target_link_libraries(arm_compute_core dl pthread)
+
+list(APPEND ACL_RUNTIME_SRCS ${ACL_RUNTIME_COMMON_SRCS})
+list(APPEND ACL_RUNTIME_SRCS ${ACL_RUNTIME_OPENCL_SRCS})
+list(APPEND ACL_RUNTIME_SRCS ${ACL_RUNTIME_NEON_SRCS})
+
+add_library(arm_compute SHARED ${ACL_RUNTIME_SRCS})
+target_link_libraries(arm_compute arm_compute_core OpenCL)
+
+add_library(arm_compute_graph SHARED ${ACL_GRAPH_SRCS})
+target_link_libraries(arm_compute_graph arm_compute)
+
+add_library(arm_compute_test SHARED "${ACL_BASE}/utils/Utils.cpp")
+target_link_libraries(arm_compute_test arm_compute)
+
+add_library(arm_compute_graph_test SHARED "${ACL_BASE}/utils/GraphUtils.cpp")
+target_link_libraries(arm_compute_graph_test arm_compute_graph arm_compute_test)
+
+add_executable(cl_convolution "${ACL_BASE}/examples/cl_convolution.cpp")
+target_compile_definitions(cl_convolution PRIVATE ARM_COMPUTE_CL)
+target_link_libraries(cl_convolution arm_compute_test)
+
+add_executable(neon_convolution "${ACL_BASE}/examples/neon_convolution.cpp")
+target_link_libraries(neon_convolution arm_compute_test)
+
+add_executable(graph_lenet "${ACL_BASE}/examples/graph_lenet.cpp")
+target_link_libraries(graph_lenet arm_compute_graph_test)
diff --git a/externals/eigen3.cmake b/externals/eigen3.cmake
new file mode 100644
index 000000000..bc8bf59fd
--- /dev/null
+++ b/externals/eigen3.cmake
@@ -0,0 +1,12 @@
+#
+# Eigen 3
+#
+set(EIGEN_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tensorflow/tensorflow/contrib/lite/downloads/eigen")
+file(GLOB_RECURSE EIGEN3_HDRS "${EIGEN_DIR}/*.h")
+
+# NOTE From 3.x, CMake supports INTERFACE library feature. Unfortunately,
+# CMake 2.8.12 (which Ubuntu 14.04 provides) does not support this
+# library feature.
+add_library(eigen3 STATIC ${EIGEN3_HDRS})
+set_target_properties(eigen3 PROPERTIES LINKER_LANGUAGE CXX)
+target_include_directories(eigen3 PUBLIC "${EIGEN_DIR}")
diff --git a/include/NeuralNetworks.h b/include/NeuralNetworks.h
new file mode 100644
index 000000000..beaf6befc
--- /dev/null
+++ b/include/NeuralNetworks.h
@@ -0,0 +1,1929 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @addtogroup NeuralNetworks
+ * @{
+ */
+
+/**
+ * @file NeuralNetworks.h
+ */
+
+#ifndef ANDROID_ML_NN_RUNTIME_NEURAL_NETWORKS_H
+#define ANDROID_ML_NN_RUNTIME_NEURAL_NETWORKS_H
+
+/******************************************************************
+ *
+ * IMPORTANT NOTICE:
+ *
+ * This file is part of Android's set of stable system headers
+ * exposed by the Android NDK (Native Development Kit).
+ *
+ * Third-party source AND binary code relies on the definitions
+ * here to be FROZEN ON ALL UPCOMING PLATFORM RELEASES.
+ *
+ * - DO NOT MODIFY ENUMS (EXCEPT IF YOU ADD NEW 32-BIT VALUES)
+ * - DO NOT MODIFY CONSTANTS OR FUNCTIONAL MACROS
+ * - DO NOT CHANGE THE SIGNATURE OF FUNCTIONS IN ANY WAY
+ * - DO NOT CHANGE THE LAYOUT OR SIZE OF STRUCTURES
+ */
+
+#if __ANDROID_API__ >= __ANDROID_API_O_MR1__
+
+#include <stddef.h>
+#include <stdint.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
+/**
+ * Operand types.
+ *
+ * The type of operands that can be added to a model.
+ *
+ * Although we define many types, most operators accept just a few
+ * types. Most used are {@link ANEURALNETWORKS_TENSOR_FLOAT32},
+ * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM},
+ * and {@link ANEURALNETWORKS_INT32}.
+ */
+typedef enum {
+ /** The following entries are used to declare scalars. */
+
+ /** A 32 bit floating point scalar value. */
+ ANEURALNETWORKS_FLOAT32 = 0,
+ /** A signed 32 bit integer scalar value. */
+ ANEURALNETWORKS_INT32 = 1,
+ /** An unsigned 32 bit integer scalar value. */
+ ANEURALNETWORKS_UINT32 = 2,
+
+ /** The following entries are used to declare tensors. */
+
+ /** A tensor of 32 bit floating point values. */
+ ANEURALNETWORKS_TENSOR_FLOAT32 = 3,
+ /** A tensor of 32 bit integer values. */
+ ANEURALNETWORKS_TENSOR_INT32 = 4,
+ /** A tensor of 8 bit integers that represent real numbers.
+ *
+ * Attached to this tensor are two numbers that can be used to convert
+ * the 8 bit integer to the real value and vice versa. These two numbers are:
+ * - scale: a 32 bit non-negative floating point value.
+ * - zeroPoint: an 32 bit integer, in range [0, 255].
+ *
+ * The formula is:
+ * real_value = (integer_value - zeroPoint) * scale.
+ */
+ ANEURALNETWORKS_TENSOR_QUANT8_ASYMM = 5,
+} OperandCode;
+
+/**
+ * Operation types.
+ *
+ * The type of operations that can be added to a model.
+ */
+typedef enum {
+ /** Adds two tensors, element-wise.
+ *
+ * Takes two input tensors of identical type and compatible dimensions. The output
+ * is the sum of both input tensors, optionally modified by an activation function.
+ *
+ * Two dimensions are compatible when:
+ * 1. they are equal, or
+ * 2. one of them is 1
+ *
+ * The size of the output is the maximum size along each dimension of the input operands.
+ * It starts with the trailing dimensions, and works its way forward.
+ *
+ * Example:
+ *
+ * input1.dimension = {4, 1, 2}
+ * input2.dimension = {5, 4, 3, 1}
+ * output.dimension = {5, 4, 3, 2}
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4
+ *
+ * Inputs:
+ * * 0: A tensor.
+ * * 1: A tensor of the same type, and compatible dimensions as input0.
+ * * 2: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Outputs:
+ * * 0: The sum, a tensor of the same type as input0.
+ */
+ ANEURALNETWORKS_ADD = 0,
+
+ /** Performs a 2-D average pooling operation.
+ *
+ * The output dimensions are functions of the filter dimensions, stride, and padding.
+ *
+ * The values in the output tensor are computed as:
+ *
+ * output[batch, row, col, channel] =
+ * sum_{i, j}(input[batch, row + i, col + j, channel]) / sum(1)
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: 4, with "NHWC" (i.e., Num_samples, Height, Width, and Channels)
+ * data layout.
+ *
+ * Both explicit padding and implicit padding are supported.
+ *
+ * Inputs (explicit padding):
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth], specifying the input.
+ * * 1: An INT32 value, specifying the padding on the left, in the ‘width’ dimension.
+ * * 2: An INT32 value, specifying the padding on the right,in the ‘width’ dimension.
+ * * 3: An INT32 value, specifying the padding on the top, in the ‘height’ dimension.
+ * * 4: An INT32 value, specifying the padding on the bottom, in the ‘height’ dimension.
+ * * 5: An INT32 value, specifying the stride when walking through input
+ * in the ‘width’ dimension.
+ * * 6: An INT32 value, specifying the stride when walking through input
+ * in the ‘height’ dimension.
+ * * 7: An INT32 value, specifying the filter width.
+ * * 8: An INT32 value, specifying the filter height.
+ * * 9: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Inputs (implicit padding):
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth], specifying the input.
+ * * 1: An INT32 value, specifying the implicit padding scheme, has to be one of the
+ * {@link PaddingCode} values.
+ * * 2: An INT32 value, specifying the stride when walking through input
+ * in the ‘width’ dimension.
+ * * 3: An INT32 value, specifying the stride when walking through input
+ * in the ‘height’ dimension.
+ * * 4: An INT32 value, specifying the filter width.
+ * * 5: An INT32 value, specifying the filter height.
+ * * 6: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Outputs:
+ * * 0: The output 4-D tensor, of shape [batches, out_height, out_width, depth].
+ */
+ ANEURALNETWORKS_AVERAGE_POOL_2D = 1,
+
+ /** Concatenates the input tensors along the given dimension.
+ *
+ * The input tensors must have identical type and the same dimensions except the
+ * dimension along the concatenation axis.
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4
+ *
+ * Inputs:
+ * * 0 ~ n-1: The list of n input tensors, of shape [D0, D1, ..., Daxis(i), ..., Dm].
+ * For inputs of {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type, all
+ * input tensors must have the same scale and zeroPoint.
+ * * n: An INT32 value, specifying the concatenation axis.
+ *
+ * Outputs:
+ * * 0: The output, a tensor of the same type as the input tensors.
+ * The output shape is [D0, D1, ..., sum(Daxis(i)), ..., Dm].
+ */
+ ANEURALNETWORKS_CONCATENATION = 2,
+
+ /** Performs an 2-D convolution operation.
+ *
+ * The CONV_2D op sweeps a 2-D filter that can mix channels together over a batch of
+ * images, applying the filter to each window of each image of the appropriate size.
+ *
+ * The output dimensions are functions of the filter dimensions, stride, and padding.
+ *
+ * The values in the output tensor are computed as:
+ *
+ * output[batch, row, col, channel] =
+ * sum_{i, j} (
+ * input[batch, row + i, col + j, k] *
+ * filter[channel, row + i, col + j, k] +
+ * bias[channel]
+ * )
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: 4, with "NHWC" data layout.
+ *
+ * Both explicit padding and implicit padding are supported.
+ *
+ * Inputs (explicit padding):
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth_in], specifying the input.
+ * * 1: A 4-D tensor, of shape [depth_out, filter_height, filter_width, depth_in],
+ * specifying the filter.
+ * * 2: A 1-D tensor, of shape [depth_out], specifying the bias.
+ * For input tensor of {@link ANEURALNETWORKS_TENSOR_FLOAT32} type, the bias should
+ * also be of {@link ANEURALNETWORKS_TENSOR_FLOAT32}.
+ * For input tensor of {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type, the bias
+ * should be of {@link ANEURALNETWORKS_TENSOR_INT32}, with zeroPoint of 0 and
+ * bias_scale == input_scale * filter_scale.
+ * * 3: An INT32 value, specifying the padding on the left, in the ‘width’ dimension.
+ * * 4: An INT32 value, specifying the padding on the right,in the ‘width’ dimension.
+ * * 5: An INT32 value, specifying the padding on the top, in the ‘height’ dimension.
+ * * 6: An INT32 value, specifying the padding on the bottom, in the ‘height’ dimension.
+ * * 7: An INT32 value, specifying the stride when walking through input
+ * in the ‘width’ dimension.
+ * * 8: An INT32 value, specifying the stride when walking through input
+ * in the ‘height’ dimension.
+ * * 9: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Inputs (implicit padding):
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth_in], specifying the input.
+ * * 1: A 4-D tensor, of shape [depth_out, filter_height, filter_width, depth_in],
+ * specifying the filter.
+ * * 2: A 1-D tensor, of shape [depth_out], specifying the bias.
+ * For input tensor of {@link ANEURALNETWORKS_TENSOR_FLOAT32} type, the bias should
+ * also be of {@link ANEURALNETWORKS_TENSOR_FLOAT32}.
+ * For input tensor of {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type, the bias
+ * should be of {@link ANEURALNETWORKS_TENSOR_INT32}, with zeroPoint of 0 and
+ * bias_scale == input_scale * filter_scale.
+ * * 3: An INT32 value, specifying the implicit padding scheme, has to be one of the
+ * {@link PaddingCode} values.
+ * * 4: An INT32 value, specifying the stride when walking through input
+ * in the ‘width’ dimension.
+ * * 5: An INT32 value, specifying the stride when walking through input
+ * in the ‘height’ dimension.
+ * * 6: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Outputs:
+ * * 0: The output 4-D tensor, of shape [batches, out_height, out_width, depth_out].
+ * For output tensor of {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type, the following
+ * condition must be satisfied: output_scale > input_scale * filter_scale.
+ */
+ ANEURALNETWORKS_CONV_2D = 3,
+
+ /** Performs a depthwise 2-D convolution operation.
+ *
+ * Given an input tensor of shape [batches, height, width, depth_in] and a filter
+ * tensor of shape [1, filter_height, filter_width, depth_out] containing
+ * depth_out convolutional filters of depth 1, DEPTHWISE_CONV applies a different
+ * filter to each input channel (expanding from 1 channel to channel_multiplier channels
+ * for each), then concatenates the results together.
+ *
+ * The output has depth_out = depth_in * depth_multiplier channels.
+ * The output dimensions are functions of the filter dimensions, stride, and padding.
+ *
+ * The values in the output tensor are computed as:
+ *
+ * output[b, i, j, k * channel_multiplier + q] =
+ * sum_{di, dj} (
+ * input[b, strides[1] * i + di, strides[2] * j + dj, k] *
+ * filter[1, di, dj, k * channel_multiplier + q]
+ * )
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: 4, with "NHWC" data layout.
+ *
+ * Both explicit padding and implicit padding are supported.
+ *
+ * Inputs (explicit padding):
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth_in], specifying the input.
+ * * 1: A 4-D tensor, of shape [1, filter_height, filter_width, depth_out],
+ * specifying the filter.
+ * * 2: A 1-D tensor, of shape [depth_out], specifying the bias.
+ * For input tensor of {@link ANEURALNETWORKS_TENSOR_FLOAT32} type, the bias should
+ * also be of {@link ANEURALNETWORKS_TENSOR_FLOAT32}.
+ * For input tensor of {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type, the bias
+ * should be of {@link ANEURALNETWORKS_TENSOR_INT32}, with zeroPoint of 0 and
+ * bias_scale == input_scale * filter_scale.
+ * * 3: An INT32 value, specifying the padding on the left, in the ‘width’ dimension.
+ * * 4: An INT32 value, specifying the padding on the right,in the ‘width’ dimension.
+ * * 5: An INT32 value, specifying the padding on the top, in the ‘height’ dimension.
+ * * 6: An INT32 value, specifying the padding on the bottom, in the ‘height’ dimension.
+ * * 7: An INT32 value, specifying the stride when walking through input
+ * in the ‘width’ dimension.
+ * * 8: An INT32 value, specifying the stride when walking through input
+ * in the ‘height’ dimension.
+ * * 9: An INT32 value, specifying the depthwise multiplier.
+ * * 10: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Inputs (explicit padding):
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth_in], specifying the input.
+ * * 1: A 4-D tensor, of shape [1, filter_height, filter_width, depth_out],
+ * specifying the filter.
+ * * 2: A 1-D tensor, of shape [depth_out], specifying the bias.
+ * For input tensor of {@link ANEURALNETWORKS_TENSOR_FLOAT32} type, the bias should
+ * also be of {@link ANEURALNETWORKS_TENSOR_FLOAT32}.
+ * For input tensor of {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type, the bias
+ * should be of {@link ANEURALNETWORKS_TENSOR_INT32}, with zeroPoint of 0 and
+ * bias_scale == input_scale * filter_scale.
+ * * 3: An INT32 value, specifying the implicit padding scheme, has to be one of the
+ * {@link PaddingCode} values.
+ * * 4: An INT32 value, specifying the stride when walking through input
+ * in the ‘width’ dimension.
+ * * 5: An INT32 value, specifying the stride when walking through input
+ * in the ‘height’ dimension.
+ * * 6: An INT32 value, specifying the depthwise multiplier.
+ * * 7: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Outputs:
+ * * 0: The output 4-D tensor, of shape [batches, out_height, out_width, depth_out].
+ * For output tensor of {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type, the following
+ * condition must be satisfied: output_scale > input_scale * filter_scale.
+ */
+ ANEURALNETWORKS_DEPTHWISE_CONV_2D = 4,
+
+ /** Rearranges data from depth into blocks of spatial data.
+ *
+ * More specifically, this op outputs a copy of the input tensor where values from
+ * the depth dimension are moved in spatial blocks to the height and width dimensions.
+ * The value block_size indicates the input block size and how the data is moved.
+ *
+ * Chunks of data of size block_size * block_size from depth are rearranged into
+ * non-overlapping blocks of size block_size x block_size.
+ *
+ * The width of the output tensor is input_depth * block_size, whereas the height is
+ * input_height * block_size.
+ * The depth of the input tensor must be divisible by block_size * block_size
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: 4, with "NHWC" data layout.
+ *
+ * Inputs:
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth_in], specifying the input.
+ * * 1: An INT32 value, specifying the block_size. block_size must be >=1 and
+ * block_size * block_size must be a divisor of the input depth.
+ *
+ * Outputs:
+ * * 0: The output 4-D tensor, of shape [batch, height*block_size, width*block_size,
+ * depth/(block_size*block_size)].
+ */
+ ANEURALNETWORKS_DEPTH_TO_SPACE = 5,
+
+ /** Dequantizes the input tensor.
+ *
+ * The formula is:
+ *
+ * output = (input - zeroPoint) * scale.
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4
+ *
+ * Inputs:
+ * * 0: A tensor of type {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}.
+ *
+ * Outputs:
+ * * 0: The output tensor of same shape as input0, but with type
+ * {@link ANEURALNETWORKS_TENSOR_FLOAT32}.
+ */
+ ANEURALNETWORKS_DEQUANTIZE = 6,
+
+ /** Looks up sub-tensors in the input tensor.
+ *
+ * This operator takes for input a tensor of values (Values) and
+ * a one-dimensional tensor of selection indices (Lookups).
+ * The output tensor is the concatenation of sub-tensors of Values as
+ * selected by Lookups.
+ *
+ * Think of Values as being sliced along its first dimension:
+ * The entries in Lookups select which slices are concatenated together
+ * to create the output tensor.
+ *
+ * For example, if Values has shape of [40, 200, 300] and
+ * Lookups has shape of [3], we would expect all three values
+ * found in Lookups to be between 0 and 39. The resulting tensor will
+ * have shape of [3, 200, 300].
+ *
+ * If a value in Lookups is out of bounds, the operation will fail
+ * and an error will be reported.
+ *
+ * Inputs:
+ * * 0: Lookups. A 1-D tensor of {@link ANEURALNETWORKS_TENSOR_INT32} type.
+ * The values are indices into the first dimension of Values.
+ * * 1: Values. An n-D tensor, where n >= 2, from which sub-tensors are
+ * extracted.
+ *
+ * Output:
+ * * 0: A n-D tensor with the same rank and shape as the Values
+ * tensor, except for the first dimension which has the same size
+ * as Lookups' only dimension.
+ */
+ ANEURALNETWORKS_EMBEDDING_LOOKUP = 7,
+
+ /** Computes element-wise floor() on the input tensor.
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ *
+ * Supported tensor rank: up to 4
+ *
+ * Inputs:
+ * * 0: A tensor.
+ *
+ * Outputs:
+ * * 0: The output tensor, of the same type and dimensions as the input tensor.
+ */
+ ANEURALNETWORKS_FLOOR = 8,
+
+ /** Denotes a fully (densely) connected layer, which connects all elements in the input
+ * tensor with each element in the output tensor.
+ *
+ * This layer implements the operation:
+ *
+ * outputs = activation(inputs * weights’ + bias)
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4.
+ *
+ * Inputs:
+ * * 0: A tensor, specifying the input. If rank is greater than 2, then it gets flattened to
+ * a 2-D Tensor. The 2-D Tensor is handled as if dimensions corresponded to shape
+ * [batch_size, input_size], where “batch_size” corresponds to the batching dimension,
+ * and “input_size” is the size of the input.
+ * * 1: A 2-D tensor, specifying the weights, of shape [num_units, input_size], where
+ * "num_units" corresponds to the number of output nodes.
+ * * 2: A 1-D tensor, of shape [num_units], specifying the bias.
+ * For input tensor of {@link ANEURALNETWORKS_TENSOR_FLOAT32} type, the bias should
+ * also be of {@link ANEURALNETWORKS_TENSOR_FLOAT32}.
+ * For input tensor of {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type, the bias
+ * should be of {@link ANEURALNETWORKS_TENSOR_INT32}, with zeroPoint of 0 and
+ * bias_scale == input_scale * filter_scale.
+ * * 3: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Outputs:
+ * * 0: The output tensor, of shape [batch_size, num_units].
+ * For output tensor of {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type, the following
+ * condition must be satisfied: output_scale > input_scale * filter_scale.
+ */
+ ANEURALNETWORKS_FULLY_CONNECTED = 9,
+
+ /** Looks up sub-tensors in the input tensor using a key-value map.
+ *
+ * This operator takes for input a tensor of values (Values),
+ * a one-dimensional tensor of selection values (Lookups) and
+ * a one-dimensional tensor that maps these values to Values
+ * indexes. The output tensor is the concatenation of sub-tensors of
+ * Values as selected by Lookups via Keys.
+ *
+ * Think of Values as being sliced along its outer-most dimension.
+ * The output is a concatenation of selected slices, with one slice
+ * for each entry of Lookups. The slice selected is the one at the
+ * same index as the Maps entry that matches the value in Lookups.
+ *
+ * For a hit, the corresponding sub-tensor of Values is included
+ * in the Output tensor. For a miss, the corresponding sub-tensor in
+ * Output will have zero values.
+ *
+ * For example, if Values has shape of [40, 200, 300],
+ * Keys should have a shape of [40]. If Lookups tensor has shape
+ * of [3], we're concatenating three slices, so the resulting tensor
+ * will have the shape of [3, 200, 300]. If the first entry in
+ * Lookups has the value 123456, we'll look for that value in Keys tensor.
+ * If the sixth entry of Keys contains 123456, we'll select the sixth
+ * slice of Values. If no entry in Keys has 123456, a slice of zeroes
+ * will be concatenated.
+ *
+ * Inputs:
+ * * 0: Lookups. A 1-D {@link ANEURALNETWORKS_TENSOR_INT32} tensor with shape [ k ].
+ * * 1: Keys. A 1-D {@link ANEURALNETWORKS_TENSOR_INT32} tensor with shape [ n ];
+ * Keys and Values pair represent a map, i.e., the ith element
+ * in Keys (Keys[i]) is the key to select the ith sub-tensor
+ * in Values (Values[i]), where 0 <= i <= n-1.
+ * Keys tensor *MUST* be sorted in ascending order.
+ * * 2: Values. A tensor with shape of [ n, … ]; i.e., the first dimension must be n.
+ *
+ * Outputs:
+ * * 0: Output. A tensor with shape [ k …].
+ * * 1: Hits. A boolean tensor with shape [ k ] indicates whether the lookup
+ * hits (True) or not (False).
+ * Stored as {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} with offset 0 and scale 1.0f.
+ * A non-zero byte represents True, a hit. A zero indicates otherwise.
+ */
+ ANEURALNETWORKS_HASHTABLE_LOOKUP = 10,
+
+ /** Applies L2 normalization along the depth dimension.
+ *
+ * The values in the output tensor are computed as:
+ *
+ * output[batch, row, col, channel] =
+ * input[batch, row, col, channel] /
+ * sqrt(sum_{c} pow(input[batch, row, col, c], 2))
+ *
+ * For input tensor with more dimensions, independently normalizes each 1-D slice along dimension dim.
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ *
+ * Supported tensor rank: 4, with "NHWC" data layout (i.e., Num_samples, Height, Width, and Channels).
+ *
+ * Inputs:
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth].
+ *
+ * Outputs:
+ * * 0: The output 4-D tensor, of shape [batches, out_height, out_width, depth].
+ */
+ ANEURALNETWORKS_L2_NORMALIZATION = 11,
+
+ /** Performs an 2-D L2 pooling operation.
+ *
+ * The output dimensions are functions of the filter dimensions, stride, and padding.
+ *
+ * The values in the output tensor are computed as:
+ *
+ * output[batch, row, col, channel] =
+ * sqrt(sum_{i, j} pow(input[batch, row + i, col + j, channel], 2) / sum(1))
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ *
+ * Supported tensor rank: 4, with "NHWC" data layout.
+ *
+ * Both explicit padding and implicit padding are supported.
+ *
+ * Inputs (explicit padding):
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth], specifying the input.
+ * * 1: An INT32 value, specifying the padding on the left, in the ‘width’ dimension.
+ * * 2: An INT32 value, specifying the padding on the right,in the ‘width’ dimension.
+ * * 3: An INT32 value, specifying the padding on the top, in the ‘height’ dimension.
+ * * 4: An INT32 value, specifying the padding on the bottom, in the ‘height’ dimension.
+ * * 5: An INT32 value, specifying the stride when walking through input
+ * in the ‘width’ dimension.
+ * * 6: An INT32 value, specifying the stride when walking through input
+ * in the ‘height’ dimension.
+ * * 7: An INT32 value, specifying the filter width.
+ * * 8: An INT32 value, specifying the filter height.
+ * * 9: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Inputs (implicit padding):
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth], specifying the input.
+ * * 1: An INT32 value, specifying the implicit padding scheme, has to be one of the
+ * {@link PaddingCode} values.
+ * * 2: An INT32 value, specifying the stride when walking through input
+ * in the ‘width’ dimension.
+ * * 3: An INT32 value, specifying the stride when walking through input
+ * in the ‘height’ dimension.
+ * * 4: An INT32 value, specifying the filter width.
+ * * 5: An INT32 value, specifying the filter height.
+ * * 6: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Outputs:
+ * * 0: The output 4-D tensor, of shape [batches, out_height, out_width, depth].
+ */
+ ANEURALNETWORKS_L2_POOL_2D = 12,
+
+ /** Applies Local Response Normalization along the depth dimension.
+ *
+ * The 4-D input tensor is treated as a 3-D array of 1-D vectors (along the last
+ * dimension), and each vector is normalized independently. Within a given vector,
+ * each component is divided by the weighted, squared sum of inputs within depth_radius.
+ *
+ * The output is calculated using this formula:
+ *
+ * sqr_sum[a, b, c, d] =
+ * sum(pow(input[a, b, c, d - depth_radius : d + depth_radius + 1], 2)
+ * output = input / pow((bias + alpha * sqr_sum), beta)
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ *
+ * Supported tensor rank: 4, with "NHWC" data layout.
+ *
+ * Inputs:
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth], specifying the input.
+ * * 1: An INT32 value, specifying the radius of the normalization window.
+ * * 2: A FLOAT32 value, specifying the bias, must not be zero.
+ * * 3: A FLOAT32 value, specifying the scale factor, alpha.
+ * * 4: A FLOAT32 value, specifying the exponent, beta.
+ *
+ * Outputs:
+ * * 0: The output tensor of same shape as input0.
+ */
+ ANEURALNETWORKS_LOCAL_RESPONSE_NORMALIZATION = 13,
+
+ /** Computes sigmoid activation on the input tensor element-wise.
+ *
+ * The output is calculated using this formula:
+ *
+ * output = 1 / (1 + exp(-input))
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4.
+ *
+ * Inputs:
+ * * 0: A tensor, specifying the input.
+ *
+ * Outputs:
+ * * 0: The output tensor of same shape as input0.
+ * For {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type,
+ * the scale must be 1.f / 256 and the zeroPoint must be 0.
+ */
+ ANEURALNETWORKS_LOGISTIC = 14,
+
+ /**
+ * Projects an input to a bit vector via locality senstive hashing.
+ *
+ * Inputs:
+ * * 0: Hash functions. Dim.size == 2, DataType: Float.
+ * Tensor[0].Dim[0]: Number of hash functions.
+ * Tensor[0].Dim[1]: Number of seeds per hash functions.
+ * Tensor[0].Dim[1] <= 32 in sparse case.
+ *
+ * * 1: Input. Dim.size >= 1, no restriction on DataType.
+ * * 2: Weight. Optional. Dim.size == 1, DataType: Float.
+ * If not set, each input element is considered to have the same weight of
+ * 1.0.
+ * Tensor[1].Dim[0] == Tensor[2].Dim[0]
+ * * 3: Type:
+ * Sparse: Value LSHProjectionType_SPARSE(=1).
+ * Computed bit vector is considered to be sparse.
+ * Each output element is an int32 made up of multiple bits computed from
+ * hash functions.
+ *
+ * Dense: Value LSHProjectionType_DENSE(=2).
+ * Computed bit vector is considered to be dense. Each output element
+ * represents a bit and can take the value of either 0 or 1.
+ *
+ * Outputs:
+ * * 0: If the projection type is sparse:
+ * Output.Dim == { Tensor[0].Dim[0] }
+ * A tensor of int32 that represents hash signatures.
+ * If the projection type is Dense:
+ * Output.Dim == { Tensor[0].Dim[0] * Tensor[0].Dim[1] }
+ * A flattened tensor that represents projected bit vectors.
+ */
+ ANEURALNETWORKS_LSH_PROJECTION = 15,
+
+ /**
+ * Long short-term memory unit (LSTM) recurrent network layer.
+ *
+ * The default non-peephole implementation is based on:
+ * http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf
+ * S. Hochreiter and J. Schmidhuber. "Long Short-Term Memory". Neural
+ * Computation, 9(8):1735-1780, 1997.
+ *
+ * The peephole implementation is based on:
+ * https://research.google.com/pubs/archive/43905.pdf
+ * Hasim Sak, Andrew Senior, and Francoise Beaufays. "Long short-term memory
+ * recurrent neural network architectures for large scale acoustic modeling."
+ * INTERSPEECH, 2014.
+ *
+ * The coupling of input and forget gate (CIFG) is based on:
+ * http://arxiv.org/pdf/1503.04069.pdf
+ * Greff et al. "LSTM: A Search Space Odyssey"
+ *
+ * The class has the following independently optional inputs:
+ * * If input gate (if CIFG): “input_to_forget_weights”,
+ * “recurrent_to_input_weights”, “cell_to_input_weights”, “input_gate_bias”.
+ * * If no peephole connections: “cell_to_input_weights”,
+ * “cell_to_forget_weights”, “cell_to_output_weights”.
+ * * If no projection layer: “projection_weights” and “projection_bias”.
+ * * If no projection bias: “projection_bias”.
+ *
+ * Supported tensor types (type T):
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ *
+ * Inputs:
+ * * 0: Input.
+ * A 2-D tensor of type T, of shape [batch_size, input_size], where
+ * “batch_size” corresponds to the batching dimension, and “input_size”
+ * is the size of the input.
+ * * 1: input_to_input_weights.
+ * A 2-D tensor of type T, of shape [num_units, input_size], where
+ * “num_units” corresponds to the number of cell units.
+ * * 2: input_to_forget_weights.
+ * A 2-D tensor of type T, of shape [num_units, input_size].
+ * * 3: input_to_cell_weights.
+ * A 2-D tensor of type T, of shape [num_units, input_size].
+ * * 4: input_to_output_weights.
+ * A 2-D tensor of type T, of shape [num_units, input_size].
+ * * 5: recurrent_to_input_weights.
+ * A 2-D tensor of type T, of shape [num_units, output_size], where
+ * “output_size” corresponds to either the number of cell units (i.e.,
+ * “num_units”), or the second dimension of the “projection_weights”, if
+ * defined.
+ * * 6: recurrent_to_forget_weights.
+ * A 2-D tensor of type T, of shape [num_units, output_size].
+ * * 7: recurrent_to_cell_weights.
+ * A 2-D tensor of type T, of shape [num_units, output_size].
+ * * 8: recurrent_to_output_weights.
+ * A 2-D tensor of type T, of shape [num_units, output_size].
+ * * 9: cell_to_input_weights.
+ * A 1-D tensor of type T, of shape [num_units].
+ * * 10:cell_to_forget_weights.
+ * A 1-D tensor of type T, of shape [num_units].
+ * * 11:cell_to_output_weights.
+ * A 1-D tensor of type T, of shape [num_units].
+ * * 12:input_gate_bias.
+ * A 1-D tensor of type T, of shape [num_units].
+ * * 13:forget_gate_bias.
+ * A 1-D tensor of type T, of shape [num_units].
+ * * 14:cell_bias.
+ * A 1-D tensor of type T, of shape [num_units].
+ * * 15:output_gate_bias.
+ * A 1-D tensor of type T, of shape [num_units].
+ * * 16:projection_weights.
+ * A 2-D tensor of type T, of shape [output_size, num_units].
+ * * 17:projection_bias.
+ * A 1-D tensor of type T, of shape [output_size].
+ * * 18: output_state (in).
+ * A 2-D tensor of type T, of shape [batch_size, output_size].
+ * * 19: cell_state (in).
+ * A 2-D tensor of type T, of shape [batch_size, num_units].
+ * * 20:fused_activation_function.
+ * An optional {@link FuseCode} value indicating the activation
+ * function.
+ * If “NONE” is specified then it results in a linear activation.
+ * * 21:cell_clip.
+ * A clipping threshold for the cell state, such that values are bound
+ * within [-cell_clip, cell_clip]. If set to 0.0 then clipping is
+ * disabled.
+ * * 22:proj_clip.
+ * A clipping threshold for the output from the projection layer, such
+ * that values are bound within [-proj_clip, proj_clip]. If set to 0.0
+ * then clipping is disabled.
+ *
+ * Outputs:
+ * * 0: scratch_buffer.
+ * A 3-D tensor of type T, of shape [batch_size, num_cell, 4].
+ * * 1: output_state (out).
+ * A 2-D tensor of type T, of shape [batch_size, output_size].
+ * * 2: cell_state (out).
+ * A 2-D tensor of type T, of shape [batch_size, num_units].
+ * * 3: output.
+ * A 2-D tensor of type T, of shape [batch_size, output_size]. This is
+ * effectively the same as the current “output_state” value.
+ */
+ ANEURALNETWORKS_LSTM = 16,
+
+ /** Performs an 2-D max pooling operation.
+ *
+ * The output dimensions are functions of the filter dimensions, stride, and padding.
+ *
+ * The values in the output tensor are computed as:
+ *
+ * output[batch, row, col, channel] =
+ * max_{i, j} (input[batch, row + i, col + j, channel])
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: 4, with "NHWC" data layout.
+ *
+ * Both explicit padding and implicit padding are supported.
+ *
+ * Inputs (explicit padding):
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth], specifying the input.
+ * * 1: An INT32 value, specifying the padding on the left, in the ‘width’ dimension.
+ * * 2: An INT32 value, specifying the padding on the right,in the ‘width’ dimension.
+ * * 3: An INT32 value, specifying the padding on the top, in the ‘height’ dimension.
+ * * 4: An INT32 value, specifying the padding on the bottom, in the ‘height’ dimension.
+ * * 5: An INT32 value, specifying the stride when walking through input
+ * in the ‘width’ dimension.
+ * * 6: An INT32 value, specifying the stride when walking through input
+ * in the ‘height’ dimension.
+ * * 7: An INT32 value, specifying the filter width.
+ * * 8: An INT32 value, specifying the filter height.
+ * * 9: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Inputs (implicit padding):
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth], specifying the input.
+ * * 1: An INT32 value, specifying the implicit padding scheme, has to be one of the
+ * {@link PaddingCode} values.
+ * * 2: An INT32 value, specifying the stride when walking through input
+ * in the ‘width’ dimension.
+ * * 3: An INT32 value, specifying the stride when walking through input
+ * in the ‘height’ dimension.
+ * * 4: An INT32 value, specifying the filter width.
+ * * 5: An INT32 value, specifying the filter height.
+ * * 6: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Outputs:
+ * * 0: The output 4-D tensor, of shape [batches, out_height, out_width, depth].
+ */
+ ANEURALNETWORKS_MAX_POOL_2D = 17,
+
+ /** Multiplies two tensors, element-wise.
+ *
+ * Takes two input tensors of identical type and compatible dimensions. The output
+ * is the product of both input tensors, optionally modified by an activation function.
+ *
+ * Two dimensions are compatible when:
+ * 1. they are equal, or
+ * 2. one of them is 1
+ *
+ * The size of the resulting output is the maximum size along each dimension of the
+ * input operands. It starts with the trailing dimensions, and works its way forward.
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4
+ *
+ * Inputs:
+ * * 0: A tensor.
+ * * 1: A tensor of the same type, and compatible dimensions as input0.
+ * * 2: An INT32 value, and has to be one of the {@link FuseCode} values.
+ * Specifies the activation to invoke on the result of each addition.
+ *
+ * Outputs:
+ * * 0: The product, a tensor of the same type as input0.
+ * For output tensor of {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type, the following
+ * condition must be satisfied: output_scale > input1_scale * input2_scale.
+ */
+ ANEURALNETWORKS_MUL = 18,
+
+ /** Computes rectified linear activation on the input tensor element-wise.
+ *
+ * The output is calculated using this formula:
+ *
+ * output = max(0, input)
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4.
+ *
+ * Inputs:
+ * * 0: A tensor, specifying the input.
+ *
+ * Outputs:
+ * * 0: The output tensor of same shape as input0.
+ */
+ ANEURALNETWORKS_RELU = 19,
+
+ /** Computes rectified linear 1 activation on the input tensor element-wise.
+ *
+ * The output is calculated using this formula:
+ *
+ * output = min(1.f, max(-1.f, input))
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4.
+ *
+ * Inputs:
+ * * 0: A tensor, specifying the input.
+ *
+ * Outputs:
+ * * 0: The output tensor of same shape as input0.
+ */
+ ANEURALNETWORKS_RELU1 = 20,
+
+ /** Computes rectified linear 6 activation on the input tensor element-wise.
+ *
+ * The output is calculated using this formula:
+ *
+ * output = min(6, max(0, input))
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4.
+ *
+ * Inputs:
+ * * 0: A tensor, specifying the input.
+ *
+ * Outputs:
+ * * 0: The output tensor of same shape as input0.
+ */
+ ANEURALNETWORKS_RELU6 = 21,
+
+ /** Reshapes a tensor.
+ *
+ * Given tensor, this operation returns a tensor that has the same values as tensor,
+ * but with a newly specified shape.
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: up to 4.
+ *
+ * Inputs:
+ * * 0: A tensor, specifying the tensor to be reshaped.
+ * * 1: A 1-D tensor of type {@link ANEURALNETWORKS_TENSOR_INT32}, defining the shape
+ * of the output tensor. The number of elements implied by shape must be the same
+ * as the number of elements in the input tensor.
+ *
+ * Outputs:
+ * * 0: The output tensor, of shape specified by the input shape.
+ */
+ ANEURALNETWORKS_RESHAPE = 22,
+
+ /** Resizes images to given size using the bilinear interpretation.
+ *
+ * Resized images will be distorted if their output aspect ratio is not the same as
+ * input aspect ratio.
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ *
+ * Supported tensor rank: 4, with "NHWC" data layout.
+ *
+ * Inputs:
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth], specifying the input.
+ * * 1: An INT32 value, specifying the output height of the output tensor.
+ * * 2: An INT32 value, specifying the output width of the output tensor.
+ *
+ * Outputs:
+ * * 0: The output 4-D tensor, of shape [batches, new_height, new_width, depth].
+ */
+ ANEURALNETWORKS_RESIZE_BILINEAR = 23,
+
+ /**
+ * A basic recurrent neural network layer.
+ *
+ * This layer implements the operation:
+ * outputs = state = activation(inputs * input_weights + state * recurrent_weights + bias)
+ *
+ * Where:
+ * * “input_weights” is a weight matrix that multiplies the inputs;
+ * * “recurrent_weights” is a weight matrix that multiplies the current
+ * “state” which itself is the output from the previous time step
+ * computation;
+ * * “bias” is a bias vector (added to each output vector in the batch);
+ * * “activation” is the function passed as the “fused_activation_function”
+ * argument (if not “NONE”).
+ *
+ * Supported tensor types (Type T):
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ *
+ * Inputs:
+ * * 0: input.
+ * A 2-D tensor of type T, of shape [batch_size, input_size], where
+ * “batch_size” corresponds to the batching dimension, and “input_size” is
+ * the size of the input.
+ * * 1: weights.
+ * A 2-D tensor of type T, of shape [num_units, input_size], where
+ * “num_units” corresponds to the number of units.
+ * * 2: recurrent_weights.
+ * A 2-D tensor of type T, of shape [num_units, num_units], with columns
+ * corresponding to the weights from each unit.
+ * * 3: bias.
+ * A 1-D tensor of type T, of shape [num_units].
+ * * 4: hidden state (in).
+ * A 2-D tensor of type T, of shape [batch_size, num_units].
+ * * 5: fused_activation_function.
+ * An optional {@link FuseCode} value indicating the activation
+ * function. If “NONE” is specified then it results in a linear
+ * activation.
+ *
+ * Outputs:
+ * * 0: hidden state (out).
+ * A 2-D tensor of type T, of shape [batch_size, num_units].
+ *
+ * * 1: output.
+ * A 2-D tensor of type T, of shape [batch_size, num_units]. This is
+ * effectively the same as the current state value.
+ */
+ ANEURALNETWORKS_RNN = 24,
+
+ /** Computes the softmax activation on the input tensor element-wise, per batch, by
+ * normalizing the input vector so the maximum coefficient is zero.
+ *
+ * The output is calculated using this formula:
+ *
+ * output[batch, i] =
+ * exp((input[batch, i] - max(input[batch, :])) * beta) /
+ * sum_{k}{exp((input[batch, k] - max(input[batch, :])) * beta)}
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: 2 or 4.
+ *
+ * Inputs:
+ * * 0: A 2-D or 4-D tensor, specifying the tensor to be reshaped.
+ * * 1: A FLOAT32 value, specifying the positive scaling factor for the exponent, beta.
+ *
+ * Outputs:
+ * * 0: The output tensor of same shape as input0.
+ * For {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM} type,
+ * the scale must be 1.f / 256 and the zeroPoint must be 0.
+ */
+ ANEURALNETWORKS_SOFTMAX = 25,
+
+ /** Rearranges blocks of spatial data, into depth.
+ *
+ * More specifically, this op outputs a copy of the input tensor where values from
+ * the height and width dimensions are moved to the depth dimension.
+ * The value block_size indicates the input block size and how the data is moved.
+ *
+ * Chunks of data of size block_size * block_size from depth are rearranged into
+ * non-overlapping blocks of size block_size x block_size.
+ *
+ * The depth of the output tensor is input_depth * block_size * block_size.
+ * The input tensor's height and width must be divisible by block_size.
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ * * {@link ANEURALNETWORKS_TENSOR_QUANT8_ASYMM}
+ *
+ * Supported tensor rank: 4, with "NHWC" data layout.
+ *
+ * Inputs:
+ * * 0: A 4-D tensor, of shape [batches, height, width, depth_in], specifying the input.
+ * * 1: An INT32 value, specifying the block_size. block_size must be >=1 and
+ * block_size must be a divisor of both the input height and width.
+ *
+ * Outputs:
+ * * 0: The output 4-D tensor, of shape [batch, height/block_size, width/block_size,
+ * depth*block_size*block_size].
+ */
+ ANEURALNETWORKS_SPACE_TO_DEPTH = 26,
+
+ /**
+ * SVDF op is a kind of stateful layer derived from the notion that a
+ * densely connected layer that's processing a sequence of input frames can
+ * be approximated by using a singular value decomposition of each of its
+ * nodes. The implementation is based on:
+ *
+ * https://research.google.com/pubs/archive/43813.pdf
+ *
+ * P. Nakkiran, R. Alvarez, R. Prabhavalkar, C. Parada.
+ * “Compressing Deep Neural Networks using a Rank-Constrained Topology”.
+ * INTERSPEECH, 2015.
+ *
+ * It processes the incoming input using a 2-stage filtering mechanism:
+ * * stage 1 performs filtering on the "features" dimension, whose outputs get
+ * pushed into a memory of fixed-size memory_size.
+ * * stage 2 performs filtering on the "time" dimension of the memory_size
+ * memoized outputs of stage 1.
+ *
+ * Specifically, for rank 1, this layer implements the operation:
+ *
+ * memory = push(conv1d(inputs, weights_feature, feature_dim,
+ * "ANEURALNETWORKS_PADDING_VALID"));
+ * outputs = activation(memory * weights_time + bias);
+ *
+ * Where:
+ * * “weights_feature” is a weights matrix that processes the inputs (by
+ * convolving the input with every “feature filter”), and whose outputs get
+ * pushed, stacked in order, into the fixed-size “memory” (the oldest entry
+ * gets dropped);
+ * * “weights_time” is a weights matrix that processes the “memory” (by a
+ * batched matrix multiplication on the num_units);
+ * * “bias” is an optional bias vector (added to each output vector in the
+ * batch); and
+ * * “activation” is the function passed as the “fused_activation_function”
+ * argument (if not “NONE”).
+ *
+ * Each rank adds a dimension to the weights matrices by means of stacking
+ * the filters.
+ *
+ * Supported tensor types (type T):
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ *
+ * Inputs:
+ * * 0: input.
+ * A 2-D tensor of type T, of shape [batch_size, input_size], where
+ * “batch_size” corresponds to the batching dimension, and “input_size” is
+ * the size of the input.
+ * * 1: weights_feature.
+ * A 2-D tensor of type T, of shape [num_units, input_size], where
+ * “num_units” corresponds to the number of units.
+ * * 2: weights_time.
+ * A 2-D tensor of type T, of shape [num_units, memory_size], where
+ * “memory_size” corresponds to the fixed-size of the memory.
+ * * 3: bias.
+ * An optional 1-D tensor of type T, of shape [num_units].
+ * * 4: state (in).
+ * A 2-D tensor of type T, of shape [batch_size, (memory_size - 1) * num_units * rank].
+ * * 5: rank.
+ * The rank of the SVD approximation.
+ * * 6: fused_activation_function.
+ * An optional {@link FuseCode} value indicating the activation function.
+ * If “NONE” is specified then it results in a linear activation.
+ *
+ * Outputs:
+ * * 0: state (out).
+ * A 2-D tensor of type T, of shape [batch_size, (memory_size - 1) * num_units * rank].
+ * * 1: output.
+ * A 2-D tensor of type T, of shape [batch_size, num_units].
+ */
+ ANEURALNETWORKS_SVDF = 27,
+
+ /** Computes hyperbolic tangent of input tensor element-wise.
+ *
+ * The output is calculated using this formula:
+ *
+ * output = tanh(input)
+ *
+ * Supported tensor types:
+ * * {@link ANEURALNETWORKS_TENSOR_FLOAT32}
+ *
+ * Supported tensor rank: up to 4.
+ *
+ * Inputs:
+ * * 0: A tensor, specifying the input.
+ *
+ * Outputs:
+ * * 0: The output tensor of same shape as input0.
+ */
+ ANEURALNETWORKS_TANH = 28,
+} OperationCode;
+
+/**
+ * Fused activation function types.
+ *
+ */
+typedef enum {
+ /** NO fused activation function. */
+ ANEURALNETWORKS_FUSED_NONE = 0,
+ /** Fused ReLU activation function. */
+ ANEURALNETWORKS_FUSED_RELU = 1,
+ /** Fused ReLU1 activation function. */
+ ANEURALNETWORKS_FUSED_RELU1 = 2,
+ /** Fused ReLU6 activation function. */
+ ANEURALNETWORKS_FUSED_RELU6 = 3,
+} FuseCode;
+
+/**
+ * Implicit padding algorithms.
+ *
+ */
+typedef enum {
+ /**
+ * SAME padding.
+ * Padding on both ends are the "same":
+ * padding_to_beginning = total_padding / 2
+ * padding_to_end = (total_padding + 1)/2.
+ * i.e., for even number of padding, padding to both ends are exactly
+ * the same; for odd number of padding, padding to the ending is bigger
+ * than the padding to the beginning by 1.
+ *
+ * total_padding is a function of input, stride and filter size.
+ * It could be computed as follows:
+ * out_size = (input + stride - 1) / stride;
+ * needed_input = (out_size - 1) * stride + filter_size
+ * total_padding = max(0, needed_input - output_size)
+ * The computation is the same for the horizontal and vertical directions.
+ */
+ ANEURALNETWORKS_PADDING_SAME = 1,
+
+ /**
+ * VALID padding.
+ * No padding. When the input size is not evenly divisible by
+ * the filter size, the input at the end that could not fill
+ * the whole filter tile will simply be ignored.
+ */
+ ANEURALNETWORKS_PADDING_VALID = 2,
+} PaddingCode;
+
+/**
+ * Execution preferences.
+ */
+typedef enum {
+ /**
+ * Prefer executing in a way that minimizes battery drain.
+ * This is desirable for compilations that will be executed often.
+ */
+ ANEURALNETWORKS_PREFER_LOW_POWER = 0,
+ /**
+ * Prefer returning a single answer as fast as possible, even if this causes
+ * more power consumption.
+ */
+ ANEURALNETWORKS_PREFER_FAST_SINGLE_ANSWER = 1,
+ /**
+ * Prefer maximizing the throughput of successive frames, for example when
+ * processing successive frames coming from the camera.
+ */
+ ANEURALNETWORKS_PREFER_SUSTAINED_SPEED = 2,
+} PreferenceCode;
+
+/**
+ * Result codes.
+ */
+typedef enum {
+ ANEURALNETWORKS_NO_ERROR = 0,
+ ANEURALNETWORKS_OUT_OF_MEMORY = 1,
+ ANEURALNETWORKS_INCOMPLETE = 2,
+ ANEURALNETWORKS_UNEXPECTED_NULL = 3,
+ ANEURALNETWORKS_BAD_DATA = 4,
+ ANEURALNETWORKS_OP_FAILED = 5,
+ ANEURALNETWORKS_UNMAPPABLE = 5,
+ ANEURALNETWORKS_BAD_STATE = 6,
+} ResultCode;
+
+/**
+ * For {@link ANeuralNetworksModel_setOperandValue}, values with a
+ * length smaller or equal to this will be immediately copied into
+ * the model. The size is in bytes.
+ */
+enum {
+ ANEURALNETWORKS_MAX_SIZE_OF_IMMEDIATELY_COPIED_VALUES = 128
+};
+
+/**
+ * ANeuralNetworksMemory is an opaque type that represents memory.
+ *
+ * This type is used to represent shared memory, memory mapped files,
+ * and similar memories.
+ *
+ * By using shared memory, a program can efficiently communicate to the
+ * runtime and drivers the tensors that define a model. See
+ * {@link ANeuralNetworksModel_setOperandValueFromMemory}. An application
+ * should typically create one shared memory object that contains every tensor
+ * needed to define a model. {@link ANeuralNetworksMemory_createFromFd} can be
+ * used to create shared memory from a file handle. {@link ANeuralNetworksMemory_createShared}
+ * can be used to directly created shared memory.
+ *
+ * Memory objects can also be used to specify the input and output arguments of
+ * an execution. See {@link ANeuralNetworksExecution_setInputFromMemory}
+ * and {@link ANeuralNetworksExecution_setOutputFromMemory}.
+ */
+typedef struct ANeuralNetworksMemory ANeuralNetworksMemory;
+
+/**
+ * ANeuralNetworksModel is an opaque type that contains a description of the
+ * mathematical operations that constitute the model.
+ *
+ * <p>The model will be built by calling<ul>
+ * <li>{@link ANeuralNetworksModel_create},</li>
+ * <li>{@link ANeuralNetworksModel_addOperation},</li>
+ * <li>{@link ANeuralNetworksModel_addOperand},</li>
+ * </ul>
+ *
+ * A model is completed by calling {@link ANeuralNetworksModel_finish}.
+ * A model is destroyed by calling {@link ANeuralNetworksModel_free}.
+ *
+ * <p>A model cannot be modified once {@link ANeuralNetworksModel_finish}
+ * has been called on it.</p>
+ *
+ * <p>It is the application's responsibility to make sure that only one thread
+ * modifies a model at a given time. It is however safe for more than one
+ * thread to use the model once {@link ANeuralNetworksModel_finish} has returned.</p>
+ *
+ * <p>It is also the application's responsibility to ensure that there are no other
+ * uses of the model after calling {@link ANeuralNetworksModel_free}.
+ * This includes any compilation or execution object created using the model.</p>
+ */
+typedef struct ANeuralNetworksModel ANeuralNetworksModel;
+
+/**
+ * ANeuralNetworksCompilation is an opaque type that can be used to compile
+ * a machine learning model.
+ *
+ * <p>To use:<ul>
+ * <li>Create a new compilation instance by calling the
+ * {@link ANeuralNetworksCompilation_create} function.</li>
+ * <li>Set any desired properties on the compilation (for example,
+ * {@link ANeuralNetworksCompilation_setPreference}).</li>
+ * <li>Complete the compilation with {@link ANeuralNetworksCompilation_finish}.</li>
+ * <li>Use the compilation as many times as needed
+ * with {@link ANeuralNetworksExecution_create}.</li>
+ * <li>Destroy the compilation with {@link ANeuralNetworksCompilation_free}
+ * once all executions using the compilation have completed.</li></ul></p>
+ *
+ * A compilation is completed by calling {@link ANeuralNetworksCompilation_finish}.
+ * A compilation is destroyed by calling {@link ANeuralNetworksCompilation_free}.
+ *
+ * <p>A compilation cannot be modified once {@link ANeuralNetworksCompilation_finish}
+ * has been called on it.</p>
+ *
+ * <p>It is the application's responsibility to make sure that only
+ * one thread modifies a compilation at a given time. It is however
+ * safe for more than one thread to use the compilation once
+ * {@link ANeuralNetworksCompilation_finish} has returned.</p>
+ *
+ * <p>It is also the application's responsibility to ensure that there are no other
+ * uses of the compilation after calling {@link ANeuralNetworksCompilation_free}.
+ * This includes any execution object created using the compilation.</p>
+ */
+typedef struct ANeuralNetworksCompilation ANeuralNetworksCompilation;
+
+/**
+ * ANeuralNetworksExecution is an opaque type that can be used to apply a machine
+ * learning model to a set of inputs.
+ *
+ * <p>To use:<ul>
+ * <li>Create a new execution instance by calling the
+ * {@link ANeuralNetworksExecution_create} function.</li>
+ * <li>Associate data to the model inputs with
+ * {@link ANeuralNetworksExecution_setInput} or
+ * {@link ANeuralNetworksExecution_setInputFromMemory}.</li>
+ * <li>Associate output buffers to the model outputs with
+ * {@link ANeuralNetworksExecution_setOutput} or
+ * {@link ANeuralNetworksExecution_setOutputFromMemory}.</li>
+ * <li>Apply the model with {@link ANeuralNetworksExecution_startCompute}.</li>
+ * <li>Wait for the execution to complete with {@link
+ * ANeuralNetworksEvent_wait}.</li>
+ * <li>Destroy the execution with
+ * {@link ANeuralNetworksExecution_free}.</li></ul></p>
+ *
+ * <p>An execution cannot be modified once {@link ANeuralNetworksExecution_startCompute}
+ * has been called on it.</p>
+ *
+ * <p>An execution can be applied to a model with
+ * {@link ANeuralNetworksExecution_startCompute} only once. Create new executions
+ * to do new evaluations of the model.</p>
+ *
+ * <p>It is the application's responsibility to make sure that only one thread
+ * modifies an execution at a given time. It is however safe for more than one
+ * thread to use {@link ANeuralNetworksEvent_wait} at the same time.</p>
+ *
+ * <p>It is also the application's responsibility to ensure that there are no other
+ * uses of the request after calling {@link ANeuralNetworksExecution_free}.</p>
+ */
+typedef struct ANeuralNetworksExecution ANeuralNetworksExecution;
+
+/**
+ * ANeuralNetworksOperandType describes the type of an operand.
+ * This structure is used to describe both scalars and tensors.
+ */
+typedef struct ANeuralNetworksOperandType {
+ /** The data type, e.g ANEURALNETWORKS_INT8. */
+ int32_t type;
+ /** The number of dimensions. It should be 0 for scalars. */
+ uint32_t dimensionCount;
+ /** The dimensions of the tensor. It should be nullptr for scalars. */
+ const uint32_t* dimensions;
+ /** These two fields are only used for quantized tensors.
+ * They should be zero for scalars and non-fixed point tensors.
+ * The dequantized value of each entry is (value - zeroPoint) * scale.
+ */
+ float scale;
+ int32_t zeroPoint;
+} ANeuralNetworksOperandType;
+
+typedef int32_t ANeuralNetworksOperationType;
+
+/**
+ * ANeuralNetworksEvent is an opaque type that represents an event
+ * that will be signaled once an execution completes.
+ */
+typedef struct ANeuralNetworksEvent ANeuralNetworksEvent;
+
+
+/**
+ * Creates a shared memory object from a file descriptor.
+ *
+ * The shared memory is backed by a file descriptor via mmap.
+ * See {@link ANeuralNetworksMemory} for a description on how to use
+ * this shared memory.
+ *
+ * @param size The requested size in bytes.
+ * Must not be larger than the file size.
+ * @param prot The desired memory protection for the mapping.
+ * It is either PROT_NONE or the bitwise OR of one or
+ * more of the following flags: PROT_READ, PROT_WRITE.
+ * @param fd The requested file descriptor.
+ * The file descriptor has to be mmap-able. The file
+ * descriptor will be duplicated.
+ * @param offset The offset to the beginning of the file of the area to map.
+ * The offset has to be aligned to a page size.
+ * @param memory The memory object to be created.
+ * Set to NULL if unsuccessful.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if the request completed normally.
+ */
+int ANeuralNetworksMemory_createFromFd(size_t size, int protect, int fd, size_t offset,
+ ANeuralNetworksMemory** memory);
+
+/**
+ * Delete a memory object.
+ *
+ * Destroys the object used by the run time to keep track of the memory.
+ * This will free the underlying actual memory if no other code has open
+ * handles to this memory.
+ *
+ * @param memory The memory object to be freed.
+ */
+void ANeuralNetworksMemory_free(ANeuralNetworksMemory* memory);
+
+/**
+ * Create an empty {@link ANeuralNetworksModel}.
+ *
+ * <p>This only creates the object. Computation is performed once
+ * {@link ANeuralNetworksExecution_startCompute} is invoked.
+ *
+ * The model should be constructed with calls to
+ * {@link ANeuralNetworksModel_addOperation} and
+ * {@link ANeuralNetworksModel_addOperand}
+ *
+ * <p>{@link ANeuralNetworksModel_finish} should be called once the model
+ * has been fully constructed.</p>
+ *
+ * <p>{@link ANeuralNetworksModel_free} should be called once the model
+ * is no longer needed.</p>
+ *
+ * @param model The {@link ANeuralNetworksModel} to be created.
+ * Set to NULL if unsuccessful.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful.
+ */
+int ANeuralNetworksModel_create(ANeuralNetworksModel** model);
+
+/**
+ * Destroy a model.
+ *
+ * The model need not have been finished by a call to
+ * {@link ANeuralNetworksModel_finish}.
+ *
+ * See {@link ANeuralNetworksModel} for information on multithreaded usage.
+ *
+ * @param model The model to be destroyed. Passing NULL is acceptable and
+ * results in no operation.
+ */
+void ANeuralNetworksModel_free(ANeuralNetworksModel* model);
+
+/**
+ * Indicate that we have finished modifying a model. Required before
+ * calling {@link ANeuralNetworksCompilation_create}.
+ *
+ * An application is responsible to make sure that no other thread uses
+ * the model at the same time.
+ *
+ * This function must only be called once for a given model.
+ *
+ * See {@link ANeuralNetworksModel} for information on multithreaded usage.
+ *
+ * @param model The model to be finished.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful.
+ */
+int ANeuralNetworksModel_finish(ANeuralNetworksModel* model);
+
+/**
+ * Add an operand to a model.
+ *
+ * The order in which the operands are added is important. The first one added
+ * to a model will have the index value 0, the second 1, etc. These indexes are
+ * used as operand identifiers in {@link ANeuralNetworksModel_addOperation},
+ * {@link ANeuralNetworksExecution_setInput},
+ * {@link ANeuralNetworksExecution_setInputFromMemory},
+ * {@link ANeuralNetworksExecution_setOutput},
+ * {@link ANeuralNetworksExecution_setOutputFromMemory} and
+ * {@link ANeuralNetworksExecution_setOperandValue}.
+ *
+ * To build a model that can accomodate inputs of various sizes, as you may want
+ * to do for a CNN, set the size of the dimensions that will vary at run time to 0.
+ * If you do so, provide the full dimensions when calling
+ * {@link ANeuralNetworksExecution_setInput} or {@link ANeuralNetworksExecution_setInputFromMemory}.
+ *
+ * Attempting to modify a model once {@link ANeuralNetworksModel_finish} has been
+ * called will return an error.
+ *
+ * See {@link ANeuralNetworksModel} for information on multithreaded usage.
+ *
+ * @param model The model to be modified.
+ * @param type The {@link ANeuralNetworksOperandType} that describes the shape
+ * of the operand.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful.
+ */
+int ANeuralNetworksModel_addOperand(ANeuralNetworksModel* model,
+ const ANeuralNetworksOperandType* type);
+
+/**
+ * Sets an operand to a constant value.
+ *
+ * Values of length smaller or equal to
+ * {@link ANEURALNETWORKS_MAX_SIZE_OF_IMMEDIATELY_COPIED_VALUES}
+ * are immediately copied into the model.
+ *
+ * For values of length greater than {@link ANEURALNETWORKS_MAX_SIZE_OF_IMMEDIATELY_COPIED_VALUES},
+ * a pointer to the buffer is stored within the model. The application is responsible
+ * for not changing the content of this region until all executions using this model
+ * have completed. As the data may be copied during processing, modifying the data
+ * after this call yields undefined results.
+ *
+ * For large tensors, using {@link ANeuralNetworksModel_setOperandValueFromMemory}
+ * is likely to be more efficient.
+ *
+ * To indicate that an optional operand should be considered missing,
+ * pass nullptr for buffer and 0 for length.
+ *
+ * Attempting to modify a model once {@link ANeuralNetworksModel_finish} has been
+ * called will return an error.
+ *
+ * See {@link ANeuralNetworksModel} for information on multithreaded usage.
+ *
+ * @param model The model to be modified.
+ * @param index The index of the model operand we're setting.
+ * @param buffer A pointer to the data to use.
+ * @param length The size in bytes of the data value.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful.
+ */
+int ANeuralNetworksModel_setOperandValue(ANeuralNetworksModel* model, int32_t index,
+ const void* buffer, size_t length);
+
+/**
+ * Sets an operand to a value stored in a memory object.
+ *
+ * The content of the memory is not copied. A reference to that memory is stored
+ * inside the model. The application is responsible for not changing the content
+ * of the memory region until all executions using this model have completed.
+ * As the data may be copied during processing, modifying the data after this call
+ * yields undefined results.
+ *
+ * To indicate that an optional operand should be considered missing,
+ * use {@link ANeuralNetworksModel_setOperandValue} instead, passing nullptr for buffer.
+ *
+ * Attempting to modify a model once {@link ANeuralNetworksModel_finish} has been
+ * called will return an error.
+ *
+ * See {@link ANeuralNetworksModel} for information on multithreaded usage.
+ *
+ * @param model The model to be modified.
+ * @param index The index of the model operand we're setting.
+ * @param buffer A pointer to the data to use.
+ * @param memory The memory containing the data.
+ * @param offset This specifies the location of the data within the memory.
+ * The offset is in bytes from the start of memory.
+ * @param length The size in bytes of the data value.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful.
+ */
+int ANeuralNetworksModel_setOperandValueFromMemory(ANeuralNetworksModel* model, int32_t index,
+ const ANeuralNetworksMemory* memory,
+ size_t offset, size_t length);
+
+/**
+ * Add an operation to a model.
+ *
+ * @param model The model to be modified.
+ * @param type The type of the operation.
+ * @param inputCount The number of entries in the inputs array.
+ * @param inputs An array of indexes identifying each operand.
+ * @param outputCount The number of entries in the outputs array.
+ * @param outputs An array of indexes identifying each operand.
+ *
+ * The operands specified by inputs and outputs must have been
+ * previously added by calls to {@link ANeuralNetworksModel_addOperand}.
+ *
+ * Attempting to modify a model once {@link ANeuralNetworksModel_finish} has been
+ * called will return an error.
+ *
+ * See {@link ANeuralNetworksModel} for information on multithreaded usage.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful.
+ */
+int ANeuralNetworksModel_addOperation(ANeuralNetworksModel* model,
+ ANeuralNetworksOperationType type, uint32_t inputCount,
+ const uint32_t* inputs, uint32_t outputCount,
+ const uint32_t* outputs);
+
+/**
+ * Specfifies which operands will be the model's inputs and outputs.
+ *
+ * An operand cannot be used for both input and output. Doing so will
+ * return an error.
+ *
+ * @param model The model to be modified.
+ * @param inputCount The number of entries in the inputs array.
+ * @param inputs An array of indexes identifying the input operands.
+ * @param outputCount The number of entries in the outputs array.
+ * @param outputs An array of indexes identifying the output operands.
+ *
+ * The operands specified by inputs and outputs must have been
+ * previously added by calls to {@link ANeuralNetworksModel_addOperand}.
+ *
+ * Attempting to modify a model once {@link ANeuralNetworksModel_finish} has been
+ * called will return an error.
+ *
+ * See {@link ANeuralNetworksModel} for information on multithreaded usage.
+ *
+ */
+int ANeuralNetworksModel_identifyInputsAndOutputs(ANeuralNetworksModel* model, uint32_t inputCount,
+ const uint32_t* inputs, uint32_t outputCount,
+ const uint32_t* outputs);
+
+/**
+ * Create a {@link ANeuralNetworksCompilation} to compile the given model.
+ *
+ * <p>This only creates the object. Compilation is only performed once
+ * {@link ANeuralNetworksCompilation_finish} is invoked.</p>
+ *
+ * <p>{@link ANeuralNetworksCompilation_finish} should be called once
+ * all desired properties have been set on the compilation.</p>
+ *
+ * <p>{@link ANeuralNetworksModel_free} should be called once the compilation
+ * is no longer needed.</p>
+ *
+ * <p>The provided model must outlive the compilation.</p>
+ *
+ * The model must already have been finished by a call to
+ * {@link ANeuralNetworksModel_finish}.
+ *
+ * See {@link ANeuralNetworksCompilation} for information on multithreaded usage.
+ *
+ * @param model The {@link ANeuralNetworksModel} to be compiled.
+ * @param compilation The newly created object or NULL if unsuccessful.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful, ANEURALNETWORKS_BAD_DATA
+ * if the model is invalid.
+ */
+int ANeuralNetworksCompilation_create(ANeuralNetworksModel* model,
+ ANeuralNetworksCompilation** compilation);
+
+/**
+ * Destroy a compilation.
+ *
+ * The compilation need not have been finished by a call to
+ * {@link ANeuralNetworksModel_finish}.
+ *
+ * See {@link ANeuralNetworksCompilation} for information on multithreaded usage.
+ *
+ * @param compilation The compilation to be destroyed. Passing NULL is acceptable and
+ * results in no operation.
+ */
+void ANeuralNetworksCompilation_free(ANeuralNetworksCompilation* compilation);
+
+/**
+ * Sets the execution preference.
+ *
+ * <p>Provides guidance to the runtime when trade-offs are possible.</p>
+ *
+ * See {@link ANeuralNetworksCompilation} for information on multithreaded usage.
+ *
+ * @param compilation The compilation to be modified.
+ * @param preference Either {@link PREFER_LOW_POWER},
+ * {@link PREFER_SINGLE_FAST_ANSWER}, or
+ * {@link PREFER_SUSTAINED_SPEED}.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful.
+ */
+int ANeuralNetworksCompilation_setPreference(ANeuralNetworksCompilation* compilation,
+ int32_t preference);
+
+/**
+ * Indicate that we have finished modifying a compilation. Required before
+ * calling {@link ANeuralNetworksExecution_create}.
+ *
+ * An application is responsible to make sure that no other thread uses
+ * the compilation at the same time.
+ *
+ * This function must only be called once for a given compilation.
+ *
+ * See {@link ANeuralNetworksCompilation} for information on multithreaded usage.
+ *
+ * @param compilation The compilation to be finished.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful.
+ */
+int ANeuralNetworksCompilation_finish(ANeuralNetworksCompilation* compilation);
+
+/**
+ * Create a {@link ANeuralNetworksExecution} to apply the given compilation.
+ * This only creates the object. Computation is only performed once
+ * {@link ANeuralNetworksExecution_startCompute} is invoked.
+ *
+ * <p>The provided compilation must outlive the execution.</p>
+ *
+ * See {@link ANeuralNetworksExecution} for information on multithreaded usage.
+ *
+ * @param compilation The {@link ANeuralNetworksCompilation} to be evaluated.
+ * @param execution The newly created object or NULL if unsuccessful.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful, ANEURALNETWORKS_BAD_DATA
+ * if the compilation is invalid.
+ */
+int ANeuralNetworksExecution_create(ANeuralNetworksCompilation* compilation,
+ ANeuralNetworksExecution** execution);
+
+/**
+ * Destroy an execution.
+ *
+ * <p>If called on an execution for which
+ * {@link ANeuralNetworksExecution_startCompute} has been called, the
+ * function will return immediately but will mark the execution to be deleted
+ * once the computation completes. The related {@link ANeuralNetworksEvent}
+ * will be signaled and the {@link ANeuralNetworksEvent_wait} will return
+ * ANEURALNETWORKS_ERROR_DELETED.
+ *
+ * See {@link ANeuralNetworksExecution} for information on multithreaded usage.
+ *
+ * @param execution The execution to be destroyed. Passing NULL is acceptable and
+ * results in no operation.
+ */
+void ANeuralNetworksExecution_free(ANeuralNetworksExecution* execution);
+
+/**
+ * Associate a user buffer with an input of the model of the
+ * {@link ANeuralNetworksExecution}.
+ *
+ * <p>The provided buffer must outlive the execution.</p>
+ *
+ * If the input is optional, you can indicate that it is omitted by
+ * passing nullptr for buffer and 0 for length.
+ *
+ * See {@link ANeuralNetworksExecution} for information on multithreaded usage.
+ *
+ * @param execution The execution to be modified.
+ * @param index The index of the input argument we are setting. It is
+ * an index into the lists passed to
+ * {@link ANeuralNetworksModel_identifyInputsAndOutputs}. It is not
+ * the index associated with {@link ANeuralNetworksModel_addOperand}.
+ * @param type The type of the operand. This should be used to specify the
+ * dimensions that were set to 0 when the operand was added to the
+ * model. All other properties of the type must be the same as
+ * specified in the model. If the type is the same as specified
+ * when the model was built, NULL can be passed.
+ * @param buffer The buffer containing the data.
+ * @param length The length in bytes of the buffer.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful, ANEURALNETWORKS_BAD_DATA if the
+ * name is not recognized or the buffer is too small for the input.
+ */
+int ANeuralNetworksExecution_setInput(ANeuralNetworksExecution* execution, int32_t index,
+ const ANeuralNetworksOperandType* type, const void* buffer,
+ size_t length);
+
+/**
+ * Associate part of a memory object with an input of the model of the
+ * {@link ANeuralNetworksExecution}.
+ *
+ * <p>The provided memory must outlive the execution.</p>
+ *
+ * If the input is optional, you can indicate that it is omitted by
+ * using @{Link ANeuralNetworks_setInput} instead, passing nullptr for buffer
+ * and 0 for length.
+ *
+ * See {@link ANeuralNetworksExecution} for information on multithreaded usage.
+ *
+ * @param execution The execution to be modified.
+ * @param index The index of the input argument we are setting. It is
+ * an index into the lists passed to
+ * {@link ANeuralNetworksModel_identifyInputsAndOutputs}. It is not
+ * the index associated with {@link ANeuralNetworksModel_addOperand}.
+ * @param type The type of the operand. This can be used to specify the
+ * dimensions that were set to 0 when the operand was added to the
+ * model. All other values must be the same as specified in the
+ * model. If the type is the same as specified when the model
+ * was built, NULL can be passed.
+ * @param memory The memory containing the data.
+ * @param offset This specifies the location of the data whithin the memory.
+ * The offset is in bytes from the start of memory.
+ * @param length The size in bytes of the data value.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful, ANEURALNETWORKS_BAD_DATA if the
+ * name is not recognized or the buffer is too small for the input.
+ */
+int ANeuralNetworksExecution_setInputFromMemory(ANeuralNetworksExecution* execution, int32_t index,
+ const ANeuralNetworksOperandType* type,
+ const ANeuralNetworksMemory* memory, size_t offset,
+ size_t length);
+
+/**
+ * Associate a user buffer with an output of the model of the
+ * {@link ANeuralNetworksExecution}.
+ *
+ * If the output is optional, you can indicate that it is omitted by
+ * passing nullptr for buffer and 0 for length.
+ *
+ * <p>The provided buffer must outlive the execution.</p>
+ *
+ * See {@link ANeuralNetworksExecution} for information on multithreaded usage.
+ *
+ * @param execution The execution to be modified.
+ * @param index The index of the output argument we are setting. It is
+ * an index into the lists passed to
+ * {@link ANeuralNetworksModel_identifyInputsAndOutputs}. It is not
+ * the index associated with {@link ANeuralNetworksModel_addOperand}.
+ * @param type The type of the operand. This can be used to specify the
+ * dimensions that were set to 0 when the operand was added to the
+ * model. All other values must be the same as specified in the
+ * model. If the type is the same as specified when the model
+ * was built, NULL can be passed.
+ * @param buffer The buffer where the data is to be written.
+ * @param length The length in bytes of the buffer.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful, ANEURALNETWORKS_BAD_DATA if the
+ * name is not recognized or the buffer is too small for the output.
+ */
+int ANeuralNetworksExecution_setOutput(ANeuralNetworksExecution* execution, int32_t index,
+ const ANeuralNetworksOperandType* type, void* buffer,
+ size_t length);
+
+/**
+ * Associate part of a memory object with an output of the model of the
+ * {@link ANeuralNetworksExecution}.
+ *
+ * If the output is optional, you can indicate that it is omitted by
+ * using @{Link ANeuralNetworks_setOutput} instead, passing nullptr for buffer
+ * and 0 for length.
+ *
+ * <p>The provided memory must outlive the execution.</p>
+ *
+ * See {@link ANeuralNetworksExecution} for information on multithreaded usage.
+ *
+ * @param execution The execution to be modified.
+ * @param index The index of the output argument we are setting. It is
+ * an index into the lists passed to
+ * {@link ANeuralNetworksModel_identifyInputsAndOutputs}. It is not
+ * the index associated with {@link ANeuralNetworksModel_addOperand}.
+ * @param type The type of the operand. This can be used to specify the
+ * dimensions that were set to 0 when the operand was added to the
+ * model. All other values must be the same as specified in the
+ * model. If the type is the same as specified when the model
+ * was built, NULL can be passed.
+ * @param memory The memory where the data is to be stored.
+ * @param offset This specifies the location of the data whithin the memory.
+ * The offset is in bytes from the start of memory.
+ * @param length The length in bytes of the data value.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful, ANEURALNETWORKS_BAD_DATA if the
+ * name is not recognized or the buffer is too small for the output.
+ */
+int ANeuralNetworksExecution_setOutputFromMemory(ANeuralNetworksExecution* execution, int32_t index,
+ const ANeuralNetworksOperandType* type,
+ const ANeuralNetworksMemory* memory, size_t offset,
+ size_t length);
+
+/**
+ * Schedule evaluation of the execution.
+ *
+ * <p>Schedules evaluation of the execution. Once the model has been
+ * applied and the outputs are ready to be consumed, the returned event will be
+ * signaled. Use {@link ANeuralNetworksEvent_wait} to wait for that event.
+ * </p>
+ *
+ * Multiple executions can be scheduled and evaluated concurrently. The
+ * runtime makes no guarantee on the ordering of completion of
+ * executions. If it's important to the application, the application
+ * should enforce the ordering by using
+ * {@link ANeuralNetworksEvent_wait}.
+ *
+ * ANeuralNetworksEvent_wait must be called to recuperate the resources used
+ * by the execution.
+ *
+ * See {@link ANeuralNetworksExecution} for information on multithreaded usage.
+ *
+ * @param execution The execution to be scheduled and executed.
+ * @param event The event that will be signaled on completion. event is set to
+ * NULL if there's an error.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if successful.
+ */
+int ANeuralNetworksExecution_startCompute(ANeuralNetworksExecution* execution,
+ ANeuralNetworksEvent** event);
+
+/**
+ * Waits until the execution completes.
+ *
+ * More than one thread can wait on an event. When the execution completes,
+ * all threads will be released.
+ *
+ * See {@link ANeuralNetworksExecution} for information on multithreaded usage.
+ *
+ * @return ANEURALNETWORKS_NO_ERROR if the execution completed normally.
+ */
+int ANeuralNetworksEvent_wait(ANeuralNetworksEvent* event);
+
+/**
+ * Destroys the event.
+ *
+ * See {@link ANeuralNetworksExecution} for information on multithreaded usage.
+ */
+void ANeuralNetworksEvent_free(ANeuralNetworksEvent* event);
+
+__END_DECLS
+
+#endif // __ANDROID_API__ >= 27
+
+#endif // ANDROID_ML_NN_RUNTIME_NEURAL_NETWORKS_H
+
+/** @} */
diff --git a/include/kernel/acl/Concatenation.h b/include/kernel/acl/Concatenation.h
new file mode 100644
index 000000000..3e5185102
--- /dev/null
+++ b/include/kernel/acl/Concatenation.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_KERNEL_ACL_CONCATENATION_H__
+#define __NNFW_KERNEL_ACL_CONCATENATION_H__
+
+#include <OperationsUtils.h>
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+bool concatenationFloat32(const std::vector<const float*>& inputDataPtrs,
+ const std::vector<nnfw::rt::Shape>& inputShapes, int32_t axis,
+ float* outputData, const nnfw::rt::Shape& outputShape);
+
+namespace neon {
+
+bool concatenationFloat32(const std::vector<const float*>& inputDataPtrs,
+ const std::vector<nnfw::rt::Shape>& inputShapes, int32_t axis,
+ float* outputData, const nnfw::rt::Shape& outputShape);
+
+} // namespace neon
+
+} // namespace acl
+} // namespace kernal
+} // namespace nnfw
+
+#endif // __NNFW_KERNEL_ACL_CONCATENATION_H__
diff --git a/include/kernel/acl/Conv2D.h b/include/kernel/acl/Conv2D.h
new file mode 100644
index 000000000..5f2cd4d06
--- /dev/null
+++ b/include/kernel/acl/Conv2D.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_KERNEL_ACL_CONV2D_H__
+#define __NNFW_KERNEL_ACL_CONV2D_H__
+
+#include <OperationsUtils.h>
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+bool convFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ const float* filterData, const nnfw::rt::Shape& filterShape,
+ const float* biasData, const nnfw::rt::Shape& biasShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape);
+
+namespace neon {
+
+bool convFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ const float* filterData, const nnfw::rt::Shape& filterShape,
+ const float* biasData, const nnfw::rt::Shape& biasShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape);
+
+} // namespace neon
+
+} // namespace acl
+} // namespace kernal
+} // namespace nnfw
+
+#endif // __NNFW_KERNEL_ACL_CONV2D_H__
diff --git a/include/kernel/acl/DepthwiseConv2D.h b/include/kernel/acl/DepthwiseConv2D.h
new file mode 100644
index 000000000..b6576d206
--- /dev/null
+++ b/include/kernel/acl/DepthwiseConv2D.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_KERNEL_ACL_DEPTHWISECONV2D_H__
+#define __NNFW_KERNEL_ACL_DEPTHWISECONV2D_H__
+
+#include <OperationsUtils.h>
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+bool depthwiseConvFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ const float* filterData, const nnfw::rt::Shape& filterShape,
+ const float* biasData, const nnfw::rt::Shape& biasShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t depth_multiplier, int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape);
+
+namespace neon {
+
+bool depthwiseConvFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ const float* filterData, const nnfw::rt::Shape& filterShape,
+ const float* biasData, const nnfw::rt::Shape& biasShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t depth_multiplier, int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape);
+
+} // namespace neon
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
+
+#endif // __NNFW_KERNEL_ACL_DEPTHWISECONV2D_H__
diff --git a/include/kernel/acl/FullyConnected.h b/include/kernel/acl/FullyConnected.h
new file mode 100644
index 000000000..9695d638a
--- /dev/null
+++ b/include/kernel/acl/FullyConnected.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_KERNEL_ACL_FULLYCONNECTED_H__
+#define __NNFW_KERNEL_ACL_FULLYCONNECTED_H__
+
+#include <OperationsUtils.h>
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+bool fullyConnectedFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ const float* weightsData, const nnfw::rt::Shape& weightsShape,
+ const float* biasData, const nnfw::rt::Shape& biasShape,
+ int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape);
+
+namespace neon {
+
+bool fullyConnectedFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ const float* weightsData, const nnfw::rt::Shape& weightsShape,
+ const float* biasData, const nnfw::rt::Shape& biasShape,
+ int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape);
+} // namespace neon
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
+
+#endif // __NNFW_KERNEL_ACL_FULLYCONNECTED_H__
diff --git a/include/kernel/acl/Pooling.h b/include/kernel/acl/Pooling.h
new file mode 100644
index 000000000..0205f9989
--- /dev/null
+++ b/include/kernel/acl/Pooling.h
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_KERNEL_ACL_POOLING_H__
+#define __NNFW_KERNEL_ACL_POOLING_H__
+
+#include <OperationsUtils.h>
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+bool maxPoolFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height,
+ int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape);
+
+bool averagePoolFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height,
+ int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape);
+
+namespace neon {
+
+bool maxPoolFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height,
+ int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape);
+
+bool averagePoolFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height,
+ int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape);
+
+} // namespace neon
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
+
+#endif // __NNFW_KERNEL_ACL_POOLING_H__
diff --git a/include/kernel/acl/Reshape.h b/include/kernel/acl/Reshape.h
new file mode 100644
index 000000000..418db7374
--- /dev/null
+++ b/include/kernel/acl/Reshape.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_KERNEL_ACL_RESHAPE_H__
+#define __NNFW_KERNEL_ACL_RESHAPE_H__
+
+#include <OperationsUtils.h>
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+bool reshapeGeneric(const void* inputData, const nnfw::rt::Shape& inputShape,
+ void* outputData, const nnfw::rt::Shape& outputShape);
+namespace neon {
+bool reshapeGeneric(const void* inputData, const nnfw::rt::Shape& inputShape,
+ void* outputData, const nnfw::rt::Shape& outputShape);
+} // namespace neon
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
+
+#endif // __NNFW_KERNEL_ACL_RESHAPE_H__
diff --git a/include/kernel/acl/Softmax.h b/include/kernel/acl/Softmax.h
new file mode 100644
index 000000000..d1f7dafb3
--- /dev/null
+++ b/include/kernel/acl/Softmax.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_KERNEL_ACL_SOFTMAX_H__
+#define __NNFW_KERNEL_ACL_SOFTMAX_H__
+
+#include <OperationsUtils.h>
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+bool softmaxFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ const float beta,
+ float* outputData, const nnfw::rt::Shape& outputShape);
+
+namespace neon {
+
+bool softmaxFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ const float beta,
+ float* outputData, const nnfw::rt::Shape& outputShape);
+
+} // namespace neon
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
+
+#endif // __NNFW_KERNEL_ACL_SOFTMAX_H__
diff --git a/include/kernel/acl/nnfw_kernel_acl.h b/include/kernel/acl/nnfw_kernel_acl.h
new file mode 100644
index 000000000..71975029e
--- /dev/null
+++ b/include/kernel/acl/nnfw_kernel_acl.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_KERNEL_ACL_H__
+#define __NNFW_KERNEL_ACL_H__
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+void Initialize(void);
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
+
+#endif // __NNFW_KERNEL_ACL_H__
diff --git a/include/support/nnapi/feature/Reader.h b/include/support/nnapi/feature/Reader.h
new file mode 100644
index 000000000..bf632f29d
--- /dev/null
+++ b/include/support/nnapi/feature/Reader.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_SUPPORT_NNAPI_FEATURE_READER_H__
+#define __NNFW_SUPPORT_NNAPI_FEATURE_READER_H__
+
+#include "support/nnapi/feature/Utils.h"
+
+#include "util/feature/Shape.h"
+#include "util/feature/Reader.h"
+
+namespace nnfw
+{
+namespace support
+{
+namespace nnapi
+{
+namespace feature
+{
+
+template<typename T> class Reader;
+
+template<> class Reader<float> : public nnfw::util::feature::Reader<float>
+{
+public:
+ Reader(const nnfw::util::feature::Shape &shape, const float *base)
+ : _shape{shape}, _base{base}
+ {
+ // DO NOTHING
+ }
+
+public:
+ float at(uint32_t ch, uint32_t row, uint32_t col) const override
+ {
+ return *(_base + indexOf(_shape, ch, row, col));
+ }
+
+private:
+ nnfw::util::feature::Shape _shape;
+ const float *_base;
+};
+
+} // namespace feature
+} // namespace nnapi
+} // namespace support
+} // namespace nnfw
+
+#endif // __NNFW_SUPPORT_NNAPI_FEATURE_READER_H__
diff --git a/include/support/nnapi/feature/Utils.h b/include/support/nnapi/feature/Utils.h
new file mode 100644
index 000000000..e666f54b3
--- /dev/null
+++ b/include/support/nnapi/feature/Utils.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_SUPPORT_NNAPI_FEATURE_UTILS_H__
+#define __NNFW_SUPPORT_NNAPI_FEATURE_UTILS_H__
+
+#include "util/feature/Shape.h"
+
+#include <cstdint>
+
+namespace nnfw
+{
+namespace support
+{
+namespace nnapi
+{
+namespace feature
+{
+
+uint32_t indexOf(const nnfw::util::feature::Shape &shape, uint32_t ch, uint32_t row, uint32_t col);
+
+} // namespace feature
+} // namespace nnapi
+} // namespace support
+} // namespace nnfw
+
+#endif // __NNFW_SUPPORT_NNAPI_FEATURE_UTILS_H__
diff --git a/include/support/tflite/Diff.h b/include/support/tflite/Diff.h
new file mode 100644
index 000000000..b17c9313c
--- /dev/null
+++ b/include/support/tflite/Diff.h
@@ -0,0 +1,119 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_SUPPORT_TFLITE_COMPARE_H__
+#define __NNFW_SUPPORT_TFLITE_COMPARE_H__
+
+#include "tensorflow/contrib/lite/interpreter.h"
+
+#include "util/tensor/Index.h"
+
+#include "support/tflite/TensorView.h"
+
+#include <functional>
+#include <vector>
+
+// NOTE The code below is subject to change.
+// TODO Introduce namespaces
+struct TfLiteTensorDiff
+{
+ nnfw::util::tensor::Index index;
+ float expected;
+ float obtained;
+
+ TfLiteTensorDiff(const nnfw::util::tensor::Index &i) : index(i)
+ {
+ // DO NOTHING
+ }
+};
+
+class TfLiteTensorComparator
+{
+public:
+ TfLiteTensorComparator(const std::function<bool (float lhs, float rhs)> &fn) : _compare_fn{fn}
+ {
+ // DO NOTHING
+ }
+
+public:
+ struct Observer
+ {
+ virtual void notify(const nnfw::util::tensor::Index &index, float expected, float obtained) = 0;
+ };
+
+public:
+ // NOTE Observer should live longer than comparator
+ std::vector<TfLiteTensorDiff> compare(const nnfw::support::tflite::TensorView<float> &expected,
+ const nnfw::support::tflite::TensorView<float> &obtained,
+ Observer *observer = nullptr) const;
+
+private:
+ std::function<bool (float lhs, float rhs)> _compare_fn;
+};
+
+class TfLiteInterpMatchApp
+{
+public:
+ TfLiteInterpMatchApp(const TfLiteTensorComparator &comparator)
+ : _verbose{false}, _comparator(comparator)
+ {
+ // DO NOTHING
+ }
+
+public:
+ int &verbose(void) { return _verbose; }
+
+private:
+ int _verbose;
+
+public:
+ bool run(::tflite::Interpreter &pure, ::tflite::Interpreter &nnapi) const;
+
+private:
+ const TfLiteTensorComparator &_comparator;
+};
+
+#include "support/tflite/interp/Builder.h"
+
+#include <random>
+
+// For NNAPI testing
+struct RandomTestParam
+{
+ int verbose;
+ int tolerance;
+};
+
+class RandomTestRunner
+{
+public:
+ RandomTestRunner(int seed, const RandomTestParam &param)
+ : _rand{seed}, _param{param}
+ {
+ // DO NOTHING
+ }
+
+public:
+ // NOTE this method updates '_rand'
+ // Return 0 if test succeeds
+ int run(const nnfw::support::tflite::interp::Builder &builder);
+
+private:
+ std::minstd_rand _rand;
+ const RandomTestParam _param;
+};
+
+#endif // __NNFW_SUPPORT_TFLITE_COMPARE_H__
diff --git a/include/support/tflite/FeatureView.h b/include/support/tflite/FeatureView.h
new file mode 100644
index 000000000..3a7d75ec4
--- /dev/null
+++ b/include/support/tflite/FeatureView.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_SUPPORT_TFLITE_FEATURE_VIEW_H__
+#define __NNFW_SUPPORT_TFLITE_FEATURE_VIEW_H__
+
+#include "tensorflow/contrib/lite/interpreter.h"
+
+#include "support/tflite/InputIndex.h"
+#include "support/tflite/OutputIndex.h"
+
+#include "util/feature/Shape.h"
+#include "util/feature/Reader.h"
+
+namespace nnfw
+{
+namespace support
+{
+namespace tflite
+{
+
+template<typename T> class FeatureView;
+
+template<> class FeatureView<float> : public nnfw::util::feature::Reader<float>
+{
+public:
+ FeatureView(::tflite::Interpreter &interp, const InputIndex &index);
+ FeatureView(::tflite::Interpreter &interp, const OutputIndex &index);
+
+public:
+ float at(uint32_t ch, uint32_t row, uint32_t col) const;
+ float &at(uint32_t ch, uint32_t row, uint32_t col);
+
+private:
+ uint32_t getElementOffset(uint32_t ch, uint32_t row, uint32_t col) const
+ {
+ uint32_t res = 0;
+
+ // TensorFlow Lite assumes that NHWC ordering for tessor
+ res += row * _shape.W * _shape.C;
+ res += col * _shape.C;
+ res += ch;
+
+ return res;
+ }
+
+private:
+ nnfw::util::feature::Shape _shape;
+ float *_base;
+};
+
+} // namespace tflite
+} // namespace support
+} // namespace nnfw
+
+#endif // __NNFW_SUPPORT_TFLITE_FEATURE_VIEW_H__
diff --git a/include/support/tflite/InputIndex.h b/include/support/tflite/InputIndex.h
new file mode 100644
index 000000000..c3ed891fe
--- /dev/null
+++ b/include/support/tflite/InputIndex.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_SUPPORT_TFLITE_INPUT_INDEX_H__
+#define __NNFW_SUPPORT_TFLITE_INPUT_INDEX_H__
+
+namespace nnfw
+{
+namespace support
+{
+namespace tflite
+{
+
+class InputIndex
+{
+public:
+ InputIndex(int index) : _index(index)
+ {
+ // DO NOTHING
+ }
+
+public:
+ int asInt(void) const { return _index; }
+
+private:
+ int _index;
+};
+
+} // namespace tflite
+} // namespace support
+} // namespace nnfw
+
+#endif // __NNFW_SUPPORT_TFLITE_INPUT_INDEX_H__
diff --git a/include/support/tflite/OutputIndex.h b/include/support/tflite/OutputIndex.h
new file mode 100644
index 000000000..be6556ce7
--- /dev/null
+++ b/include/support/tflite/OutputIndex.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_SUPPORT_TFLITE_OUTPUT_INDEX_H__
+#define __NNFW_SUPPORT_TFLITE_OUTPUT_INDEX_H__
+
+namespace nnfw
+{
+namespace support
+{
+namespace tflite
+{
+
+class OutputIndex
+{
+public:
+ OutputIndex(int index) : _index(index)
+ {
+ // DO NOTHING
+ }
+
+public:
+ int asInt(void) const { return _index; }
+
+private:
+ int _index;
+};
+
+} // namespace tflite
+} // namespace support
+} // namespace nnfw
+
+#endif // __NNFW_SUPPORT_TFLITE_OUTPUT_INDEX_H__
diff --git a/include/support/tflite/TensorUtils.h b/include/support/tflite/TensorUtils.h
new file mode 100644
index 000000000..815cfcd29
--- /dev/null
+++ b/include/support/tflite/TensorUtils.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_SUPPORT_TFLITE_TENSOR_UTILS_H__
+#define __NNFW_SUPPORT_TFLITE_TENSOR_UTILS_H__
+
+#include <tensorflow/contrib/lite/context.h>
+
+namespace nnfw
+{
+namespace support
+{
+namespace tflite
+{
+
+inline bool isFloatTensor(const TfLiteTensor *tensor)
+{
+ return tensor->type == kTfLiteFloat32;
+}
+
+inline bool isFeatureTensor(const TfLiteTensor *tensor)
+{
+ return (tensor->dims->size == 4) && (tensor->dims->data[0] == 1);
+}
+
+} // namespace tflite
+} // namespace support
+} // namespace nnfw
+
+#endif // __NNFW_SUPPORT_TFLITE_TENSOR_UTILS_H__
diff --git a/include/support/tflite/TensorView.h b/include/support/tflite/TensorView.h
new file mode 100644
index 000000000..35c90a372
--- /dev/null
+++ b/include/support/tflite/TensorView.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_SUPPORT_TFLITE_TENSOR_VIEW_H__
+#define __NNFW_SUPPORT_TFLITE_TENSOR_VIEW_H__
+
+#include "tensorflow/contrib/lite/interpreter.h"
+
+#include "util/tensor/Shape.h"
+#include "util/tensor/Index.h"
+#include "util/tensor/Reader.h"
+#include "util/tensor/NonIncreasingStride.h"
+
+namespace nnfw
+{
+namespace support
+{
+namespace tflite
+{
+
+template<typename T> class TensorView;
+
+template<> class TensorView<float> final : public nnfw::util::tensor::Reader<float>
+{
+public:
+ TensorView(const nnfw::util::tensor::Shape &shape, float *base);
+
+public:
+ const nnfw::util::tensor::Shape &shape(void) const { return _shape; }
+
+public:
+ float at(const nnfw::util::tensor::Index &index) const override;
+ float &at(const nnfw::util::tensor::Index &index);
+
+private:
+ nnfw::util::tensor::Shape _shape;
+
+public:
+ float *_base;
+ nnfw::util::tensor::NonIncreasingStride _stride;
+
+public:
+ // TODO Introduce Operand ID class
+ static TensorView<float> make(::tflite::Interpreter &interp, int operand_id);
+};
+
+} // namespace tflite
+} // namespace support
+} // namespace nnfw
+
+#endif // __NNFW_SUPPORT_TFLITE_TENSOR_VIEW_H__
diff --git a/include/support/tflite/interp/Builder.h b/include/support/tflite/interp/Builder.h
new file mode 100644
index 000000000..4a5a2f26f
--- /dev/null
+++ b/include/support/tflite/interp/Builder.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_SUPPORT_TFLITE_INTERP_BUILDER_H__
+#define __NNFW_SUPPORT_TFLITE_INTERP_BUILDER_H__
+
+#include <tensorflow/contrib/lite/interpreter.h>
+
+namespace nnfw
+{
+namespace support
+{
+namespace tflite
+{
+namespace interp
+{
+
+struct Builder
+{
+ virtual ~Builder() = default;
+
+ virtual std::unique_ptr<::tflite::Interpreter> build(void) const = 0;
+};
+
+} // namespace interp
+} // namespace tflite
+} // namespace support
+} // namespace nnfw
+
+#endif // __NNFW_SUPPORT_TFLITE_INTERP_BUILDER_H__
diff --git a/include/support/tflite/interp/FlatBufferBuilder.h b/include/support/tflite/interp/FlatBufferBuilder.h
new file mode 100644
index 000000000..dab151dcf
--- /dev/null
+++ b/include/support/tflite/interp/FlatBufferBuilder.h
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_SUPPORT_TFLITE_INTERP_FLAT_BUFFER_BUILDER_H__
+#define __NNFW_SUPPORT_TFLITE_INTERP_FLAT_BUFFER_BUILDER_H__
+
+#include <tensorflow/contrib/lite/model.h>
+
+#include "support/tflite/interp/Builder.h"
+
+namespace nnfw
+{
+namespace support
+{
+namespace tflite
+{
+namespace interp
+{
+
+class FlatBufferBuilder final : public Builder
+{
+public:
+ FlatBufferBuilder(const ::tflite::FlatBufferModel &model) : _model{model}
+ {
+ // DO NOTHING
+ }
+
+public:
+ std::unique_ptr<::tflite::Interpreter> build(void) const override;
+
+private:
+ const ::tflite::FlatBufferModel &_model;
+};
+
+} // namespace interp
+} // namespace tflite
+} // namespace support
+} // namespace nnfw
+
+#endif // __NNFW_SUPPORT_TFLITE_INTERP_FLAT_BUFFER_BUILDER_H__
diff --git a/include/support/tflite/interp/FunctionBuilder.h b/include/support/tflite/interp/FunctionBuilder.h
new file mode 100644
index 000000000..1ac5918e8
--- /dev/null
+++ b/include/support/tflite/interp/FunctionBuilder.h
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_SUPPORT_TFLITE_INTERP_FUNCTION_BUILDER_H__
+#define __NNFW_SUPPORT_TFLITE_INTERP_FUNCTION_BUILDER_H__
+
+#include <tensorflow/contrib/lite/model.h>
+
+#include "support/tflite/interp/Builder.h"
+
+namespace nnfw
+{
+namespace support
+{
+namespace tflite
+{
+namespace interp
+{
+
+class FunctionBuilder final : public Builder
+{
+public:
+ using SetupFunc = std::function<void (::tflite::Interpreter &)>;
+
+public:
+ FunctionBuilder(const SetupFunc &fn) : _fn{fn}
+ {
+ // DO NOTHING
+ }
+
+public:
+ std::unique_ptr<::tflite::Interpreter> build(void) const override;
+
+private:
+ SetupFunc _fn;
+};
+
+} // namespace interp
+} // namespace tflite
+} // namespace support
+} // namespace nnfw
+
+#endif // __NNFW_SUPPORT_TFLITE_INTERP_FUNCTION_BUILDER_H__
diff --git a/libs/CMakeLists.txt b/libs/CMakeLists.txt
new file mode 100644
index 000000000..8865a92be
--- /dev/null
+++ b/libs/CMakeLists.txt
@@ -0,0 +1,5 @@
+add_subdirectory(util)
+if(BUILD_NN_RUNTIME)
+ add_subdirectory(kernel)
+endif(BUILD_NN_RUNTIME)
+add_subdirectory(support)
diff --git a/libs/kernel/CMakeLists.txt b/libs/kernel/CMakeLists.txt
new file mode 100644
index 000000000..7da54604d
--- /dev/null
+++ b/libs/kernel/CMakeLists.txt
@@ -0,0 +1,3 @@
+if(${TARGET_ARCH_BASE} STREQUAL "arm" OR ${TARGET_ARCH_BASE} STREQUAL "aarch64")
+ add_subdirectory(acl)
+endif()
diff --git a/libs/kernel/acl/CMakeLists.txt b/libs/kernel/acl/CMakeLists.txt
new file mode 100644
index 000000000..8f0486e56
--- /dev/null
+++ b/libs/kernel/acl/CMakeLists.txt
@@ -0,0 +1,94 @@
+set(LIB_KERNELACL kernelacl)
+set(LIB_KERNELACL_TEST kernelacl_test)
+
+# TODO remove this when default goes to c++14
+if(CMAKE_VERSION VERSION_LESS 3.1.0)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
+else(CMAKE_VERSION VERSION_LESS 3.1.0)
+ set(CMAKE_CXX_STANDARD 14)
+endif(CMAKE_VERSION VERSION_LESS 3.1.0)
+
+# runtime information
+set(PATH_RUNTIME_NN ${CMAKE_SOURCE_DIR}/runtimes/nn)
+SET(RUNTIME_INCLUDES ${PATH_RUNTIME_NN}/common/include
+ ${PATH_RUNTIME_NN}/runtime/include
+ ${PATH_RUNTIME_NN}/depend/hal/include
+ ${PATH_RUNTIME_NN}/depend/libhidl/base/include
+ ${PATH_RUNTIME_NN}/depend/libcutils/include
+ ${PATH_RUNTIME_NN}/depend/libutils/include
+ ${PATH_RUNTIME_NN}/depend/android-base/include
+ )
+
+# common
+link_directories(${CMAKE_INSTALL_PREFIX}/lib)
+
+# kernel library
+set(KERNELACL_SRCS "src/Init_acl.cpp"
+ "src/IO_accessor.cpp"
+ "src/shape.cpp"
+ "src/support.cpp"
+ "src/cl/Conv2D.cpp"
+ "src/cl/DepthwiseConv2D.cpp"
+ "src/cl/FullyConnected.cpp"
+ "src/cl/Pooling.cpp"
+ "src/cl/Reshape.cpp"
+ "src/cl/Softmax.cpp"
+ "src/cl/Concatenation.cpp"
+ "src/neon/Conv2D.cpp"
+ "src/neon/DepthwiseConv2D.cpp"
+ "src/neon/FullyConnected.cpp"
+ "src/neon/Pooling.cpp"
+ "src/neon/Softmax.cpp"
+ "src/neon/Reshape.cpp"
+ "src/neon/Concatenation.cpp"
+ )
+
+add_library(${LIB_KERNELACL} SHARED ${KERNELACL_SRCS})
+target_include_directories(${LIB_KERNELACL} PUBLIC
+ ${NNFW_INCLUDE_DIR}
+ ${RUNTIME_INCLUDES}
+ ${NNFW_ACL_INCLUDES}
+ ${CMAKE_SOURCE_DIR}/include
+ )
+target_link_libraries(${LIB_KERNELACL} nnfw_support_nnapi)
+if (${TARGET_OS} STREQUAL "tizen")
+ target_link_libraries(${LIB_KERNELACL} nnfw_util ${NNFW_ACL_LIBS} OpenCL)
+else()
+ target_link_libraries(${LIB_KERNELACL} nnfw_util ${NNFW_ACL_LIBS})
+endif()
+install(TARGETS ${LIB_KERNELACL} DESTINATION lib)
+
+# kernel test executable
+set(KERNELACL_TEST_SRCS "src/util.cpp"
+ "src/gtest_env.cpp"
+ "src/cl/Conv2D.test.cpp"
+ "src/cl/DepthwiseConv2D.test.cpp"
+ "src/cl/FullyConnected.test.cpp"
+ "src/cl/Pooling.test.cpp"
+ "src/cl/Reshape.test.cpp"
+ "src/cl/Softmax.test.cpp"
+ "src/cl/Concatenation.test.cpp"
+ "src/neon/Conv2D.test.cpp"
+ "src/neon/DepthwiseConv2D.test.cpp"
+ "src/neon/FullyConnected.test.cpp"
+ "src/neon/Pooling.test.cpp"
+ "src/neon/Softmax.test.cpp"
+ "src/neon/Reshape.test.cpp"
+ "src/neon/Concatenation.test.cpp"
+ )
+
+add_executable(${LIB_KERNELACL_TEST} ${KERNELACL_TEST_SRCS})
+target_include_directories(${LIB_KERNELACL_TEST} PUBLIC
+ ${NNFW_INCLUDE_DIR}
+ ${RUNTIME_INCLUDES}
+ ${NNFW_ACL_INCLUDES}
+ )
+if (NOT ${TARGET_OS} STREQUAL "tizen")
+ add_dependencies(${LIB_KERNELACL_TEST} googletest)
+endif()
+target_link_libraries(${LIB_KERNELACL_TEST}
+ ${LIB_KERNELACL}
+ nnfw_util ${NNFW_ACL_LIBS}
+ ${NNFW_GTEST_LIBS}
+ )
+install(TARGETS ${LIB_KERNELACL_TEST} DESTINATION unittest)
diff --git a/libs/kernel/acl/src/CLUniqueTensor.h b/libs/kernel/acl/src/CLUniqueTensor.h
new file mode 100644
index 000000000..6844e4565
--- /dev/null
+++ b/libs/kernel/acl/src/CLUniqueTensor.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_KERNEL_ACL_CLUNIQUETENSOR_H__
+#define __NNFW_KERNEL_ACL_CLUNIQUETENSOR_H__
+
+#include <arm_compute/runtime/CL/CLTensor.h>
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+class CLUniqueTensor
+{
+public:
+ CLUniqueTensor(const ::arm_compute::TensorInfo &info)
+ {
+ _tensor.allocator()->init(info);
+ }
+
+public:
+ // Both copy and move are not allowed
+ CLUniqueTensor(const CLUniqueTensor &) = delete;
+ CLUniqueTensor(CLUniqueTensor &&) = delete;
+
+public:
+ ~CLUniqueTensor()
+ {
+ _tensor.allocator()->free();
+ }
+
+public:
+ void allocate()
+ {
+ _tensor.allocator()->allocate();
+ }
+
+public:
+ ::arm_compute::CLTensor &ref(void) { return _tensor; }
+ ::arm_compute::CLTensor *ptr(void) { return &_tensor; }
+
+private:
+ ::arm_compute::CLTensor _tensor;
+};
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
+
+#endif //__NNFW_KERNEL_ACL_CLUNIQUETENSOR_H__
diff --git a/libs/kernel/acl/src/DepthwiseConv2D.h b/libs/kernel/acl/src/DepthwiseConv2D.h
new file mode 100644
index 000000000..8af8d4fd0
--- /dev/null
+++ b/libs/kernel/acl/src/DepthwiseConv2D.h
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_KERNEL_ACL_DEPTHWISECONV2D_COMMON_H__
+#define __NNFW_KERNEL_ACL_DEPTHWISECONV2D_COMMON_H__
+
+#include <OperationsUtils.h>
+#include <arm_compute/core/TensorShape.h>
+#include <arm_compute/core/TensorInfo.h>
+#include <arm_compute/runtime/IFunction.h>
+
+#include "shape.h"
+#include "IO_accessor.h"
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+namespace common {
+
+typedef std::function<void (void)> sync_scheduler_f;
+
+template<class TensorT, class LayerT, class ActT>
+bool depthwiseConvFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ const float* filterData, const nnfw::rt::Shape& filterShape,
+ const float* biasData, const nnfw::rt::Shape& biasShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t depth_multiplier, int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape,
+ sync_scheduler_f sync_scheduler) {
+ auto inputShapeACL = util::fromNNShape(inputShape);
+ auto weightsShapeACL = util::fromNNShape(filterShape);
+ auto biasShapeACL = util::fromNNShape(biasShape);
+ auto outputShapeACL = util::fromNNShape(outputShape);
+
+ TensorT input(arm_compute::TensorInfo(inputShapeACL, arm_compute::Format::F32));
+ TensorT weights(arm_compute::TensorInfo(weightsShapeACL, arm_compute::Format::F32));
+ TensorT bias(arm_compute::TensorInfo(biasShapeACL, arm_compute::Format::F32));
+ TensorT output(arm_compute::TensorInfo(outputShapeACL, arm_compute::Format::F32));
+
+ arm_compute::PadStrideInfo psinfo = arm_compute::PadStrideInfo(stride_width, stride_height,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ arm_compute::DimensionRoundingType::FLOOR);
+
+ auto l = std::make_shared<LayerT>();
+ l->configure(input.ptr(), weights.ptr(), bias.ptr(), output.ptr(), psinfo);
+
+ std::vector<std::shared_ptr<arm_compute::IFunction>> fns;
+
+ fns.emplace_back(l);
+
+ util::insertFusedActivationLayer<TensorT, ActT>(output, activation, fns);
+
+ input.allocate();
+ output.allocate();
+ bias.allocate();
+ weights.allocate();
+
+ // TODO: Do we need 2D tensor accessor for the input feature?
+ TensorAccess<InputAccessor>(input.ref(), inputData, inputShape);
+ TensorAccess<BiasAccessor>(bias.ref(), biasData, biasShape);
+ TensorAccess<WeightAccessor>(weights.ref(), filterData, filterShape);
+
+ for (const auto &fn : fns)
+ {
+ fn->run();
+ }
+
+ sync_scheduler();
+
+ TensorAccess<OutputAccessor>(output.ref(), outputData, outputShape);
+
+ return true;
+}
+
+} // namespace common
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
+
+#endif // __NNFW_KERNEL_ACL_DEPTHWISECONV2D_COMMON_H__
diff --git a/libs/kernel/acl/src/DepthwiseConv2D.test.h b/libs/kernel/acl/src/DepthwiseConv2D.test.h
new file mode 100644
index 000000000..b2c8592ee
--- /dev/null
+++ b/libs/kernel/acl/src/DepthwiseConv2D.test.h
@@ -0,0 +1,245 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <gtest/gtest.h>
+#include <OperationsUtils.h>
+#include <kernel/acl/nnfw_kernel_acl.h>
+#include <kernel/acl/DepthwiseConv2D.h>
+
+// TODO: fix include path in CMakeFiles
+#include "util.h"
+
+#ifndef ACL_TEST
+#error "ACL_TEST should be defined first!"
+#endif // ACL_TEST
+
+#ifndef ACL_CORE_FUNC_NAME
+#error "ACL_CORE_FUNC_NAME should be defined first!"
+#endif // ACL_CORE_FUNC_NAME
+
+using namespace nnfw::kernel::acl;
+
+ACL_TEST(KernelACL_TC, dwise_conv2d_1) {
+ uint32_t input_n = 1;
+ uint32_t input_h = 3;
+ uint32_t input_w = 3;
+ uint32_t input_c = 1;
+ uint32_t filter_h = 3;
+ uint32_t filter_w = 3;
+ uint32_t filter_c = 1;
+ uint32_t out_h = 1;
+ uint32_t out_w = 1;
+
+ int32_t padding_left = 0;
+ int32_t padding_right = 0;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 0;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t depth_multiplier = 1;
+
+ util::TensorWrapper input({input_n, input_h, input_w, input_c});
+ util::TensorWrapper weights({1, filter_h, filter_w, filter_c});
+ util::TensorWrapper bias({filter_c});
+ util::TensorWrapper output({1, out_h, out_w, filter_c});
+
+ int32_t activation = static_cast<int32_t>(FusedActivationFunc::RELU);
+
+ input.initValue([&](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ uint32_t N = input_n;
+ uint32_t H = input_h;
+ uint32_t W = input_w;
+ uint32_t C = input_c;
+
+ return n*H*W*C + h*W*C + w*C + c;
+ });
+ weights.initValue([&](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ uint32_t N = 1;
+ uint32_t H = filter_h;
+ uint32_t W = filter_w;
+ uint32_t C = filter_c;
+
+ return n*H*W*C + h*W*C + w*C + c;
+ });
+ bias.initValue([](uint32_t w) {
+ return 0.f;
+ });
+ output.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 0.f;
+ });
+
+ bool bret = ACL_CORE_FUNC_NAME(input.ptr<float>(), input.shape(),
+ weights.ptr<float>(), weights.shape(),
+ bias.ptr<float>(), bias.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ depth_multiplier, activation,
+ output.ptr<float>(), output.shape());
+
+ EXPECT_EQ(bret, true);
+
+ util::TensorWrapper expected({1, out_h, out_w, filter_c});
+ expected.initValue([&](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 204.f;
+ });
+
+ EXPECT_EQ(output, expected);
+}
+
+ACL_TEST(KernelACL_TC, dwise_conv2d_multi_channel) {
+ uint32_t input_n = 1;
+ uint32_t input_h = 3;
+ uint32_t input_w = 3;
+ uint32_t input_c = 3;
+ uint32_t filter_h = 3;
+ uint32_t filter_w = 3;
+ uint32_t filter_c = input_c;
+ uint32_t out_h = 1;
+ uint32_t out_w = 1;
+
+ int32_t padding_left = 0;
+ int32_t padding_right = 0;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 0;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t depth_multiplier = 1;
+
+ util::TensorWrapper input({input_n, input_h, input_w, input_c});
+ util::TensorWrapper weights({1, filter_h, filter_w, filter_c});
+ util::TensorWrapper bias({filter_c});
+ util::TensorWrapper output({1, out_h, out_w, filter_c});
+
+ int32_t activation = static_cast<int32_t>(FusedActivationFunc::RELU);
+
+ input.initValue([&](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ uint32_t N = input_n;
+ uint32_t H = input_h;
+ uint32_t W = input_w;
+ uint32_t C = input_c;
+
+ return n*H*W*C + h*W*C + w*C + c;
+ });
+ weights.initValue([&](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ uint32_t N = 1;
+ uint32_t H = filter_h;
+ uint32_t W = filter_w;
+ uint32_t C = filter_c;
+
+ return n*H*W*C + h*W*C + w*C + c;
+ });
+ bias.initValue([](uint32_t w) {
+ return 0.f;
+ });
+ output.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 0.f;
+ });
+
+ bool bret = ACL_CORE_FUNC_NAME(input.ptr<float>(), input.shape(),
+ weights.ptr<float>(), weights.shape(),
+ bias.ptr<float>(), bias.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ depth_multiplier, activation,
+ output.ptr<float>(), output.shape());
+
+ EXPECT_EQ(bret, true);
+
+ util::TensorWrapper expected({1, out_h, out_w, filter_c});
+ expected.initValue({
+ 1836.f,
+ 2061.f,
+ 2304.f
+ });
+
+ EXPECT_EQ(output, expected);
+}
+
+ACL_TEST(KernelACL_TC, dwise_conv2d_inception_1) {
+ uint32_t input_n = 1;
+ uint32_t input_h = 112;
+ uint32_t input_w = 112;
+ uint32_t input_c = 32;
+ uint32_t filter_h = 3;
+ uint32_t filter_w = 3;
+ uint32_t filter_c = input_c;
+ uint32_t out_h = 112;
+ uint32_t out_w = 112;
+
+ int32_t padding_left = 1;
+ int32_t padding_right = 1;
+ int32_t padding_top = 1;
+ int32_t padding_bottom = 1;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t depth_multiplier = 1;
+
+ util::TensorWrapper input({input_n, input_h, input_w, input_c});
+ util::TensorWrapper weights({1, filter_h, filter_w, filter_c});
+ util::TensorWrapper bias({filter_c});
+ util::TensorWrapper output({1, out_h, out_w, filter_c});
+
+ int32_t activation = static_cast<int32_t>(FusedActivationFunc::RELU6);
+
+ input.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return c;
+ });
+ weights.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return c;
+ });
+ bias.initValue([](uint32_t w) {
+ return 0.f;
+ });
+ output.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 0.f;
+ });
+
+ bool bret = ACL_CORE_FUNC_NAME(input.ptr<float>(), input.shape(),
+ weights.ptr<float>(), weights.shape(),
+ bias.ptr<float>(), bias.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ depth_multiplier, activation,
+ output.ptr<float>(), output.shape());
+
+ EXPECT_EQ(bret, true);
+
+ util::TensorWrapper expected({1, out_h, out_w, filter_c});
+ expected.initValue([&](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ float v = 9.f;
+ if( h == 0 || h == out_h-1 )
+ v -= 3.f;
+ if( w == 0 || w == out_w-1 )
+ v -= 3.f;
+
+ // four corners
+ if( (w == 0 && h == 0)
+ || (w == 0 && h == out_h-1)
+ || (w == out_w-1 && h == 0)
+ || (w == out_w-1 && h == out_h-1) )
+ v += 1.f;
+
+ // Assumption: negative numbers cannot appear because
+ // only positive numbers exist in the input and weights.
+ float ret = c*c*v;
+ return std::min(ret, 6.f);
+ });
+
+ EXPECT_EQ(output, expected);
+}
diff --git a/libs/kernel/acl/src/FullyConnected.h b/libs/kernel/acl/src/FullyConnected.h
new file mode 100644
index 000000000..5030a8548
--- /dev/null
+++ b/libs/kernel/acl/src/FullyConnected.h
@@ -0,0 +1,149 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_KERNEL_ACL_FULLYCONNECTED_COMMON_H__
+#define __NNFW_KERNEL_ACL_FULLYCONNECTED_COMMON_H__
+
+#include <OperationsUtils.h>
+#include <arm_compute/core/TensorShape.h>
+#include <arm_compute/core/TensorInfo.h>
+#include <arm_compute/runtime/IFunction.h>
+
+#include "shape.h"
+#include "IO_accessor.h"
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+namespace common {
+
+typedef std::function<void (void)> sync_scheduler_f;
+
+template<class TensorT, class LayerT, class ActT>
+bool fullyConnectedFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ const float* weightsData, const nnfw::rt::Shape& weightsShape,
+ const float* biasData, const nnfw::rt::Shape& biasShape,
+ int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape,
+ sync_scheduler_f sync_scheduler) {
+
+ // NNAPI specification: https://developer.android.com/ndk/reference/group___neural_networks.html#ggaabbe492c60331b13038e39d4207940e0aaada7a3dbaf4676aba560c933ff610c5
+
+ // According to the NNAPI Specification,
+ // INPUT
+ // 1. input rank is up to 4.
+ // 2. if input rank > 2, it is flattened to rank 2 [batch_size, input_size]
+ nnfw::rt::Shape flattenedInputShape = inputShape;
+ switch(inputShape.dimensions.size()) {
+ case 1:
+ {
+ assert("Need to be implemented." && 0);
+ break;
+ }
+ case 2:
+ {
+ // DO NOTHING.
+ break;
+ }
+ case 3:
+ {
+ assert("Need to be implemented." && 0);
+ break;
+ }
+ case 4:
+ {
+ auto N = inputShape.dimensions[0];
+ auto H = inputShape.dimensions[1];
+ auto W = inputShape.dimensions[2];
+ auto C = inputShape.dimensions[3];
+ flattenedInputShape.dimensions = {N, H*W*C};
+ break;
+ }
+ default:
+ assert(inputShape.dimensions.size() <= 4);
+ }
+ // Finally, flattenedInputShape is a 2D tensor.
+
+ // WEIGHTS is a 2D tensor
+ assert(weightsShape.dimensions.size() == 2);
+
+ // BIAS is a 1D tensor
+ assert(biasShape.dimensions.size() == 1);
+
+ // OUTPUT is a 2D tensor.
+ assert(outputShape.dimensions.size() == 2);
+
+ auto input_shape = util::fromNNShape(flattenedInputShape);
+ auto weights_shape = util::fromNNShape(weightsShape);
+ auto bias_shape = util::fromNNShape(biasShape);
+ auto output_shape = util::fromNNShape(outputShape);
+
+ assert(activation == ANEURALNETWORKS_FUSED_NONE || activation == ANEURALNETWORKS_FUSED_RELU);
+
+ std::vector<std::shared_ptr<arm_compute::IFunction>> fns;
+
+ TensorT input(arm_compute::TensorInfo(input_shape, arm_compute::Format::F32));
+ TensorT output(arm_compute::TensorInfo(output_shape, arm_compute::Format::F32));
+ TensorT bias(arm_compute::TensorInfo(bias_shape, arm_compute::Format::F32));
+ TensorT weights(arm_compute::TensorInfo(weights_shape, arm_compute::Format::F32));
+
+ auto fc = std::make_shared<LayerT>();
+ fc->configure(input.ptr(), weights.ptr(), bias.ptr(), output.ptr());
+
+ fns.emplace_back(fc);
+
+ if (ANEURALNETWORKS_FUSED_RELU == activation)
+ {
+ auto relu_f = std::make_shared<ActT>();
+
+ const arm_compute::ActivationLayerInfo relu_info{arm_compute::ActivationLayerInfo::ActivationFunction::RELU};
+
+ // Do in-place update
+ relu_f->configure(output.ptr(), nullptr, relu_info);
+
+ fns.emplace_back(relu_f);
+ }
+
+ input.allocate();
+ output.allocate();
+ bias.allocate();
+ weights.allocate();
+
+ // TODO: Do we need 2D tensor accessor for the input feature?
+ TensorAccess<MatrixWeightAccessor>(input.ref(), inputData, inputShape);
+ TensorAccess<BiasAccessor>(bias.ref(), biasData, biasShape);
+ TensorAccess<MatrixWeightAccessor>(weights.ref(), weightsData, weightsShape);
+
+ for (const auto &fn : fns)
+ {
+ fn->run();
+ }
+
+ sync_scheduler();
+
+ TensorAccess<MatrixOutputAccessor>(output.ref(), outputData, outputShape);
+
+ return true;
+}
+
+} // namespace common
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
+
+#endif // __NNFW_KERNEL_ACL_FULLYCONNECTED_COMMON_H__
diff --git a/libs/kernel/acl/src/FullyConnected.test.h b/libs/kernel/acl/src/FullyConnected.test.h
new file mode 100644
index 000000000..01bbff802
--- /dev/null
+++ b/libs/kernel/acl/src/FullyConnected.test.h
@@ -0,0 +1,266 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <gtest/gtest.h>
+#include <OperationsUtils.h>
+#include <kernel/acl/nnfw_kernel_acl.h>
+#include <kernel/acl/FullyConnected.h>
+
+// TODO: fix include path in CMakeFiles
+#include "util.h"
+
+#ifndef ACL_TEST
+#error "ACL_TEST should be defined first!"
+#endif // ACL_TEST
+
+#ifndef ACL_CORE_FUNC_NAME
+#error "ACL_CORE_FUNC_NAME should be defined first!"
+#endif // ACL_CORE_FUNC_NAME
+
+using namespace nnfw::kernel::acl;
+using fullyConnectedFloat32T = bool (*)(const float* inputData, const nnfw::rt::Shape& inputShape,
+ const float* weightsData, const nnfw::rt::Shape& weightsShape,
+ const float* biasData, const nnfw::rt::Shape& biasShape,
+ int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape);
+
+ACL_TEST(KernelACL_TC, fcFloat32_1) {
+
+ util::TensorWrapper input({1,1,1,100});
+ util::TensorWrapper weights({1,100});
+ util::TensorWrapper bias({1});
+ util::TensorWrapper output({1,1});
+
+ int32_t activation = static_cast<int32_t>(FusedActivationFunc::RELU);
+
+ input.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 1.f;
+ });
+ weights.initValue([](uint32_t h, uint32_t w) {
+ return 1.f;
+ });
+ bias.initValue([](uint32_t w) {
+ return 0.f;
+ });
+ output.initValue([](uint32_t h, uint32_t w) {
+ return 0.f;
+ });
+
+ bool bret = ACL_CORE_FUNC_NAME(input.ptr<float>(), input.shape(),
+ weights.ptr<float>(), weights.shape(),
+ bias.ptr<float>(), bias.shape(),
+ activation,
+ output.ptr<float>(), output.shape());
+
+ EXPECT_EQ(bret, true);
+
+ util::TensorWrapper expected({1,1});
+ expected.initValue([](uint32_t h, uint32_t w) {
+ return 100.f;
+ });
+
+ EXPECT_EQ(output, expected);
+}
+
+ACL_TEST(KernelACL_TC, fcFloat32_relu) {
+
+ util::TensorWrapper input({1,1,1,100});
+ util::TensorWrapper weights({1,100});
+ util::TensorWrapper bias({1});
+ util::TensorWrapper output({1,1});
+
+ int32_t activation = static_cast<int32_t>(FusedActivationFunc::RELU);
+
+ input.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 1.f;
+ });
+ weights.initValue([](uint32_t h, uint32_t w) {
+ return -1.f;
+ });
+ bias.initValue([](uint32_t w) {
+ return 0.f;
+ });
+ output.initValue([](uint32_t h, uint32_t w) {
+ return 0.f;
+ });
+
+ bool bret = ACL_CORE_FUNC_NAME(input.ptr<float>(), input.shape(),
+ weights.ptr<float>(), weights.shape(),
+ bias.ptr<float>(), bias.shape(),
+ activation,
+ output.ptr<float>(), output.shape());
+
+ EXPECT_EQ(bret, true);
+
+ util::TensorWrapper expected({1,1});
+ expected.initValue([](uint32_t h, uint32_t w) {
+ return 0.f;
+ });
+
+ EXPECT_EQ(output, expected);
+}
+
+ACL_TEST(KernelACL_TC, fcFloat32_conv_fc) {
+ uint32_t input_n = 1;
+ uint32_t input_c = 5;
+ uint32_t input_h = 4;
+ uint32_t input_w = 4;
+ uint32_t weight_n = 6;
+
+ int32_t activation = static_cast<int32_t>(FusedActivationFunc::RELU);
+
+ util::TensorWrapper input({input_n, input_h, input_w, input_c});
+ util::TensorWrapper weight({weight_n, input_c*input_h*input_w});
+ util::TensorWrapper bias({weight_n});
+ util::TensorWrapper output({1, weight_n});
+
+ input.initValue([&](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ uint32_t N = input_n;
+ uint32_t H = input_h;
+ uint32_t W = input_w;
+ uint32_t C = input_c;
+
+ return n*H*W*C + h*W*C + w*C + c;
+ });
+
+ weight.initValue([&](uint32_t h, uint32_t w) {
+ uint32_t H = weight_n;
+ uint32_t W = input_c*input_h*input_w;
+
+ return h*W + w;
+ });
+
+ bias.initValue([](uint32_t w) {
+ return 0.f;
+ });
+
+ output.initValue([](uint32_t h, uint32_t w) {
+ return 0.f;
+ });
+
+ bool bret = ACL_CORE_FUNC_NAME(input.ptr<float>(), input.shape(),
+ weight.ptr<float>(), weight.shape(),
+ bias.ptr<float>(), bias.shape(),
+ activation,
+ output.ptr<float>(), output.shape());
+
+ EXPECT_EQ(bret, true);
+
+ util::TensorWrapper expected({1, weight_n});
+ expected.initValue({
+ 167480.f,
+ 420280.f,
+ 673080.f,
+ 925880.f,
+ 1178680.f,
+ 1431480.f});
+
+ EXPECT_EQ(output, expected);
+}
+
+ACL_TEST(KernelACL_TC, fcFloat32_fc_fc) {
+ uint32_t input_n = 6;
+ uint32_t weight_n = 6;
+
+ int32_t activation = static_cast<int32_t>(FusedActivationFunc::RELU);
+
+ util::TensorWrapper input({1, input_n});
+ util::TensorWrapper weight({weight_n, input_n});
+ util::TensorWrapper bias({weight_n});
+ util::TensorWrapper output({1, weight_n});
+
+ input.initValue([&](uint32_t h, uint32_t w) {
+ // not use h because h = 0.
+ return (float)w;
+ });
+
+ weight.initValue([&](uint32_t h, uint32_t w) {
+ uint32_t H = weight_n;
+ uint32_t W = input_n;
+
+ return (float)(h*W + w);
+ });
+
+ bias.initValue([](uint32_t w) {
+ return 0.f;
+ });
+
+ output.initValue([](uint32_t h, uint32_t w) {
+ return 0.f;
+ });
+
+ bool bret = ACL_CORE_FUNC_NAME(input.ptr<float>(), input.shape(),
+ weight.ptr<float>(), weight.shape(),
+ bias.ptr<float>(), bias.shape(),
+ activation,
+ output.ptr<float>(), output.shape());
+
+ EXPECT_EQ(bret, true);
+
+ util::TensorWrapper expected({1, weight_n});
+ expected.initValue({
+ 55.f,
+ 145.f,
+ 235.f,
+ 325.f,
+ 415.f,
+ 505.f,
+ });
+
+ EXPECT_EQ(output, expected);
+}
+
+ACL_TEST(KernelACL_TC, fcFloat32_inceptionv3) {
+
+ uint32_t input_c = 2048;
+ uint32_t weight_n = 1008;
+
+ util::TensorWrapper input({1,1,1,input_c});
+ util::TensorWrapper weight({weight_n,input_c});
+ util::TensorWrapper bias({weight_n});
+ util::TensorWrapper output({1, weight_n});
+
+ int32_t activation = static_cast<int32_t>(FusedActivationFunc::RELU);
+
+ input.initValue([&](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 1.f;
+ });
+ weight.initValue([&](uint32_t h, uint32_t w) {
+ return (float)h;
+ });
+ bias.initValue([](uint32_t w) {
+ return 0.f;
+ });
+ output.initValue([](uint32_t h, uint32_t w) {
+ return 0.f;
+ });
+
+ bool bret = ACL_CORE_FUNC_NAME(input.ptr<float>(), input.shape(),
+ weight.ptr<float>(), weight.shape(),
+ bias.ptr<float>(), bias.shape(),
+ activation,
+ output.ptr<float>(), output.shape());
+
+ EXPECT_EQ(bret, true);
+
+ util::TensorWrapper expected({1, weight_n});
+ expected.initValue([&](uint32_t h, uint32_t w) {
+ return w*input_c;
+ });
+
+ EXPECT_EQ(output, expected);
+}
+
diff --git a/libs/kernel/acl/src/IO_accessor.cpp b/libs/kernel/acl/src/IO_accessor.cpp
new file mode 100644
index 000000000..410fb8ea5
--- /dev/null
+++ b/libs/kernel/acl/src/IO_accessor.cpp
@@ -0,0 +1,310 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "IO_accessor.h"
+
+#include <cassert>
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+InputAccessor::InputAccessor(const float* inputData, const nnfw::rt::Shape& inputShape)
+ : _inputData(inputData)
+ , _inputShape(inputShape)
+{
+}
+
+MatrixInputAccessor::MatrixInputAccessor(const float* inputData, const nnfw::rt::Shape& inputShape)
+ : _inputData(inputData)
+ , _inputShape(inputShape)
+{
+}
+
+VectorInputAccessor::VectorInputAccessor(const float* inputData, const nnfw::rt::Shape& inputShape)
+ : _inputData(inputData)
+ , _inputShape(inputShape)
+{
+}
+
+WeightAccessor::WeightAccessor(const float* filterData, const nnfw::rt::Shape& filterShape)
+ : _filterData(filterData)
+ , _filterShape(filterShape)
+{
+}
+
+MatrixWeightAccessor::MatrixWeightAccessor(const float* filterData, const nnfw::rt::Shape& filterShape)
+ : _filterData(filterData)
+ , _filterShape(filterShape)
+{
+}
+
+BiasAccessor::BiasAccessor(const float* biasData, const nnfw::rt::Shape& biasShape)
+ : _biasData(biasData)
+ , _biasShape(biasShape)
+{
+}
+
+OutputAccessor::OutputAccessor(float* outputData, const nnfw::rt::Shape& outputShape)
+ : _outputData(outputData)
+ , _outputShape(outputShape)
+{
+}
+
+MatrixOutputAccessor::MatrixOutputAccessor(float* outputData, const nnfw::rt::Shape& outputShape)
+ : _outputData(outputData)
+ , _outputShape(outputShape)
+{
+}
+
+VectorOutputAccessor::VectorOutputAccessor(float* outputData, const nnfw::rt::Shape& outputShape)
+ : _outputData(outputData)
+ , _outputShape(outputShape)
+{
+}
+
+static uint32_t getOffsetNCHW(const nnfw::rt::Shape& shape, const arm_compute::Coordinates& id)
+{
+ // get offset for ACL(NCHW) from data of NNAPI(NHWC)
+ uint32_t num = getSizeOfDimension(shape, 0);
+ uint32_t height = getSizeOfDimension(shape, 1);
+ uint32_t width = getSizeOfDimension(shape, 2);
+ uint32_t chann = getSizeOfDimension(shape, 3);
+ uint32_t stride = 1;
+ uint32_t offset = 0;
+ uint32_t numdim = id.num_dimensions();
+ offset += numdim > 0 ? id[0] * stride : 0; stride *= width;
+ offset += numdim > 1 ? id[1] * stride : 0; stride *= height;
+ offset += numdim > 2 ? id[2] * stride : 0; stride *= chann;
+ offset += numdim > 3 ? id[3] * stride : 0; stride *= num;
+ return offset;
+}
+
+static uint32_t getElementOffset(const nnfw::rt::Shape& shape,
+ uint32_t ch, uint32_t row, uint32_t col)
+{
+ assert(getSizeOfDimension(shape, 0) == 1);
+ assert(shape.dimensions.size() == 4);
+
+ // TODO Optimize this!
+ const uint32_t W = getSizeOfDimension(shape, 2);
+ const uint32_t C = getSizeOfDimension(shape, 3);
+
+ int offset = 0;
+
+ // NNAPI uses NHWC ordering
+ offset += row * W * C;
+ offset += col * C;
+ offset += ch;
+
+ return offset;
+}
+
+static uint32_t getElementOffset(const nnfw::rt::Shape& shape,
+ uint32_t nth, uint32_t ch, uint32_t row, uint32_t col)
+{
+ assert(shape.dimensions.size() == 4);
+
+ // TODO Optimize this!
+ const uint32_t H = getSizeOfDimension(shape, 1);
+ const uint32_t W = getSizeOfDimension(shape, 2);
+ const uint32_t C = getSizeOfDimension(shape, 3);
+
+ int offset = 0;
+
+ // NNAPI uses NHWC ordering
+ offset += nth * H * W * C;
+ offset += row * W * C;
+ offset += col * C;
+ offset += ch;
+
+ return offset;
+}
+
+bool InputAccessor::access_tensor(arm_compute::ITensor &tensor)
+{
+ arm_compute::Window window;
+ window.use_tensor_dimensions(tensor.info()->tensor_shape());
+
+ execute_window_loop(window, [&](const arm_compute::Coordinates& id)
+ {
+ const uint32_t ch = id[2];
+ const uint32_t row = id[1];
+ const uint32_t col = id[0];
+
+ uint32_t offset = getElementOffset(_inputShape, ch, row, col);
+
+ *reinterpret_cast<float *>(tensor.ptr_to_element(id)) =
+ *(_inputData + offset);
+ });
+ return true;
+}
+
+bool MatrixInputAccessor::access_tensor(arm_compute::ITensor &tensor)
+{
+ arm_compute::Window window;
+ window.use_tensor_dimensions(tensor.info()->tensor_shape());
+
+ assert(tensor.info()->tensor_shape().num_dimensions() <= 2);
+
+ execute_window_loop(window, [&](const arm_compute::Coordinates& id)
+ {
+ const auto row = id[1];
+ const auto col = id[0];
+ const auto W = tensor.info()->tensor_shape().x();
+
+ const auto offset = row * W + col;
+
+ *reinterpret_cast<float *>(tensor.ptr_to_element(id)) =
+ *(_inputData + offset);
+ });
+ return true;
+}
+
+bool VectorInputAccessor::access_tensor(arm_compute::ITensor &tensor)
+{
+ arm_compute::Window window;
+ window.use_tensor_dimensions(tensor.info()->tensor_shape());
+
+ assert(tensor.info()->tensor_shape().num_dimensions() == 1);
+
+ execute_window_loop(window, [&](const arm_compute::Coordinates& id)
+ {
+ uint32_t offset = id[0];
+
+ *reinterpret_cast<float *>(tensor.ptr_to_element(id)) =
+ *(_inputData + offset);
+ });
+ return true;
+}
+
+bool WeightAccessor::access_tensor(arm_compute::ITensor &tensor)
+{
+ arm_compute::Window window;
+ window.use_tensor_dimensions(tensor.info()->tensor_shape());
+
+ execute_window_loop(window, [&](const arm_compute::Coordinates& id)
+ {
+ const uint32_t nth = id[3];
+ const uint32_t ch = id[2];
+ const uint32_t row = id[1];
+ const uint32_t col = id[0];
+
+ uint32_t offset = getElementOffset(_filterShape, nth, ch, row, col);
+
+ *reinterpret_cast<float *>(tensor.ptr_to_element(id)) =
+ *(_filterData + offset);
+ });
+ return true;
+}
+
+bool MatrixWeightAccessor::access_tensor(arm_compute::ITensor &tensor)
+{
+ arm_compute::Window window;
+ window.use_tensor_dimensions(tensor.info()->tensor_shape());
+
+ assert(tensor.info()->tensor_shape().num_dimensions() <= 2);
+
+ execute_window_loop(window, [&](const arm_compute::Coordinates& id)
+ {
+ const auto row = id[1];
+ const auto col = id[0];
+ const auto W = tensor.info()->tensor_shape().x();
+
+ uint32_t offset = row * W + col;
+
+ *reinterpret_cast<float *>(tensor.ptr_to_element(id)) =
+ *(_filterData + offset);
+ });
+ return true;
+}
+
+bool BiasAccessor::access_tensor(arm_compute::ITensor &tensor)
+{
+ arm_compute::Window window;
+ window.use_tensor_dimensions(tensor.info()->tensor_shape());
+
+ execute_window_loop(window, [&](const arm_compute::Coordinates& id)
+ {
+ uint32_t offset = getOffsetNCHW(_biasShape, id);
+ *reinterpret_cast<float *>(tensor.ptr_to_element(id)) =
+ *(_biasData + offset);
+ });
+ return true;
+}
+
+bool OutputAccessor::access_tensor(arm_compute::ITensor &tensor)
+{
+ arm_compute::Window window;
+ window.use_tensor_dimensions(tensor.info()->tensor_shape());
+
+ execute_window_loop(window, [&](const arm_compute::Coordinates& id)
+ {
+ const uint32_t ch = id[2];
+ const uint32_t row = id[1];
+ const uint32_t col = id[0];
+
+ uint32_t offset = getElementOffset(_outputShape, ch, row, col);
+
+ *(_outputData + offset) =
+ *reinterpret_cast<float *>(tensor.ptr_to_element(id));
+ });
+ return false; // end the network
+}
+
+bool VectorOutputAccessor::access_tensor(arm_compute::ITensor &tensor)
+{
+ arm_compute::Window window;
+ window.use_tensor_dimensions(tensor.info()->tensor_shape());
+
+ assert(tensor.info()->tensor_shape().num_dimensions() == 1);
+
+ execute_window_loop(window, [&](const arm_compute::Coordinates& id)
+ {
+ const uint32_t x = id[0];
+
+ uint32_t offset = x;
+
+ *(_outputData + offset) =
+ *reinterpret_cast<float *>(tensor.ptr_to_element(id));
+ });
+ return false; // end the network
+}
+
+bool MatrixOutputAccessor::access_tensor(arm_compute::ITensor &tensor)
+{
+ arm_compute::Window window;
+ window.use_tensor_dimensions(tensor.info()->tensor_shape());
+
+ assert(tensor.info()->tensor_shape().num_dimensions() <= 2);
+
+ execute_window_loop(window, [&](const arm_compute::Coordinates& id)
+ {
+ const auto row = id[1];
+ const auto col = id[0];
+ const auto W = tensor.info()->tensor_shape().x();
+
+ const auto offset = row * W + col;
+
+ *(_outputData + offset) =
+ *reinterpret_cast<float *>(tensor.ptr_to_element(id));
+ });
+ return false; // end the network
+}
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
diff --git a/libs/kernel/acl/src/IO_accessor.h b/libs/kernel/acl/src/IO_accessor.h
new file mode 100644
index 000000000..e7670f15c
--- /dev/null
+++ b/libs/kernel/acl/src/IO_accessor.h
@@ -0,0 +1,196 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_KERNEL_ACL_IO_ACCESSOR_H__
+#define __NNFW_KERNEL_ACL_IO_ACCESSOR_H__
+
+#include <arm_compute/graph/ITensorAccessor.h>
+#include <arm_compute/runtime/CL/CLFunctions.h>
+#include <arm_compute/runtime/NEON/NEFunctions.h>
+
+#include <OperationsUtils.h> // for nnfw::rt::Shape
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+class InputAccessor : public arm_compute::graph::ITensorAccessor
+{
+public:
+ InputAccessor(const float* inputData, const nnfw::rt::Shape& inputShape);
+ InputAccessor(InputAccessor&&) = default;
+
+ // Inherited methods overriden:
+ bool access_tensor(arm_compute::ITensor& tensor) override;
+
+private:
+ const float* _inputData;
+ const nnfw::rt::Shape& _inputShape;
+};
+
+class MatrixInputAccessor : public arm_compute::graph::ITensorAccessor
+{
+public:
+ MatrixInputAccessor(const float* inputData, const nnfw::rt::Shape& inputShape);
+ MatrixInputAccessor(MatrixInputAccessor&&) = default;
+
+ // Inherited methods overriden:
+ bool access_tensor(arm_compute::ITensor& tensor) override;
+
+private:
+ const float* _inputData;
+ const nnfw::rt::Shape& _inputShape;
+};
+
+class VectorInputAccessor : public arm_compute::graph::ITensorAccessor
+{
+public:
+ VectorInputAccessor(const float* inputData, const nnfw::rt::Shape& inputShape);
+ VectorInputAccessor(VectorInputAccessor&&) = default;
+
+ // Inherited methods overriden:
+ bool access_tensor(arm_compute::ITensor& tensor) override;
+
+private:
+ const float* _inputData;
+ const nnfw::rt::Shape& _inputShape;
+};
+
+class WeightAccessor : public arm_compute::graph::ITensorAccessor
+{
+public:
+ WeightAccessor(const float* filterData, const nnfw::rt::Shape& filterShape);
+ WeightAccessor(WeightAccessor&&) = default;
+
+ // Inherited methods overriden:
+ bool access_tensor(arm_compute::ITensor& tensor) override;
+
+private:
+ const float* _filterData;
+ const nnfw::rt::Shape& _filterShape;
+};
+
+class MatrixWeightAccessor : public arm_compute::graph::ITensorAccessor
+{
+public:
+ MatrixWeightAccessor(const float* filterData, const nnfw::rt::Shape& filterShape);
+ MatrixWeightAccessor(MatrixWeightAccessor&&) = default;
+
+ // Inherited methods overriden:
+ bool access_tensor(arm_compute::ITensor& tensor) override;
+
+private:
+ const float* _filterData;
+ const nnfw::rt::Shape& _filterShape;
+};
+
+class BiasAccessor : public arm_compute::graph::ITensorAccessor
+{
+public:
+ BiasAccessor(const float* biasData, const nnfw::rt::Shape& biasShape);
+ BiasAccessor(BiasAccessor&&) = default;
+
+ // Inherited methods overriden:
+ bool access_tensor(arm_compute::ITensor& tensor) override;
+
+private:
+ const float* _biasData;
+ const nnfw::rt::Shape& _biasShape;
+};
+
+class OutputAccessor : public arm_compute::graph::ITensorAccessor
+{
+public:
+ OutputAccessor(float* outputData, const nnfw::rt::Shape& outputShape);
+ OutputAccessor(OutputAccessor&&) = default;
+
+ // Inherited methods overriden:
+ bool access_tensor(arm_compute::ITensor& tensor) override;
+
+private:
+ float* _outputData;
+ const nnfw::rt::Shape& _outputShape;
+};
+
+class MatrixOutputAccessor : public arm_compute::graph::ITensorAccessor
+{
+public:
+ MatrixOutputAccessor(float* outputData, const nnfw::rt::Shape& outputShape);
+ MatrixOutputAccessor(MatrixOutputAccessor&&) = default;
+
+ // Inherited methods overriden:
+ bool access_tensor(arm_compute::ITensor& tensor) override;
+
+private:
+ float* _outputData;
+ const nnfw::rt::Shape& _outputShape;
+};
+
+class VectorOutputAccessor : public arm_compute::graph::ITensorAccessor
+{
+public:
+ VectorOutputAccessor(float* outputData, const nnfw::rt::Shape& outputShape);
+ VectorOutputAccessor(VectorOutputAccessor&&) = default;
+
+ // Inherited methods overriden:
+ bool access_tensor(arm_compute::ITensor& tensor) override;
+
+private:
+ float* _outputData;
+ const nnfw::rt::Shape& _outputShape;
+};
+
+template<typename AccessorType>
+inline void TensorAccess(arm_compute::CLTensor& tensor, const float* data,
+ const nnfw::rt::Shape& shape)
+{
+ tensor.map();
+ AccessorType accessor(data, shape);
+ accessor.access_tensor(tensor);
+ tensor.unmap();
+}
+
+template<typename AccessorType>
+inline void TensorAccess(arm_compute::CLTensor& tensor, float* data,
+ const nnfw::rt::Shape& shape)
+{
+ tensor.map();
+ AccessorType accessor(data, shape);
+ accessor.access_tensor(tensor);
+ tensor.unmap();
+}
+
+template<typename AccessorType>
+inline void TensorAccess(arm_compute::Tensor& tensor, const float* data,
+ const nnfw::rt::Shape& shape)
+{
+ AccessorType accessor(data, shape);
+ accessor.access_tensor(tensor);
+}
+
+template<typename AccessorType>
+inline void TensorAccess(arm_compute::Tensor& tensor, float* data,
+ const nnfw::rt::Shape& shape)
+{
+ AccessorType accessor(data, shape);
+ accessor.access_tensor(tensor);
+}
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
+
+#endif // __NNFW_KERNEL_ACL_IO_ACCESSOR_H__
diff --git a/libs/kernel/acl/src/Init_acl.cpp b/libs/kernel/acl/src/Init_acl.cpp
new file mode 100644
index 000000000..cabf079fa
--- /dev/null
+++ b/libs/kernel/acl/src/Init_acl.cpp
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <arm_compute/runtime/CL/CLScheduler.h>
+#include <kernel/acl/nnfw_kernel_acl.h>
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+// This will do one time initialization but can be called multiple times
+void Initialize(void)
+{
+ arm_compute::CLScheduler::get().default_init();
+}
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
diff --git a/libs/kernel/acl/src/NEUniqueTensor.h b/libs/kernel/acl/src/NEUniqueTensor.h
new file mode 100644
index 000000000..34412f9e3
--- /dev/null
+++ b/libs/kernel/acl/src/NEUniqueTensor.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_KERNEL_ACL_NEUNIQUETENSOR_H__
+#define __NNFW_KERNEL_ACL_NEUNIQUETENSOR_H__
+
+#include <arm_compute/runtime/Tensor.h>
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+// TODO: find a way to merge CLUniqueTensor and NEUniqueTensor.
+class NEUniqueTensor
+{
+public:
+ NEUniqueTensor(const ::arm_compute::TensorInfo &info)
+ {
+ _tensor.allocator()->init(info);
+ }
+
+public:
+ // Both copy and move are not allowed
+ NEUniqueTensor(const NEUniqueTensor &) = delete;
+ NEUniqueTensor(NEUniqueTensor &&) = delete;
+
+public:
+ ~NEUniqueTensor()
+ {
+ _tensor.allocator()->free();
+ }
+
+public:
+ void allocate()
+ {
+ _tensor.allocator()->allocate();
+ }
+
+public:
+ ::arm_compute::Tensor &ref(void) { return _tensor; }
+ ::arm_compute::Tensor *ptr(void) { return &_tensor; }
+
+private:
+ ::arm_compute::Tensor _tensor;
+};
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
+
+#endif //__NNFW_KERNEL_ACL_NEUNIQUETENSOR_H__
diff --git a/libs/kernel/acl/src/Reshape.h b/libs/kernel/acl/src/Reshape.h
new file mode 100644
index 000000000..ebd82477d
--- /dev/null
+++ b/libs/kernel/acl/src/Reshape.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_KERNEL_ACL_RESHAPE_COMMON_H__
+#define __NNFW_KERNEL_ACL_RESHAPE_COMMON_H__
+#include <OperationsUtils.h>
+#include <arm_compute/core/TensorShape.h>
+#include <arm_compute/core/TensorInfo.h>
+
+// TODO: fix include path in CMakeFiles
+#include "IO_accessor.h"
+#include "shape.h"
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+namespace common {
+
+typedef std::function<void (void)> sync_scheduler_f;
+
+template<class TensorT, class LayerT>
+bool reshapeGeneric(const void* inputData, const nnfw::rt::Shape& inputShape,
+ void* outputData, const nnfw::rt::Shape& outputShape,
+ sync_scheduler_f sync_scheduler) {
+
+ auto input_shape = util::fromNNShape(inputShape);
+ auto output_shape = util::fromNNShape(outputShape);
+
+ TensorT input(arm_compute::TensorInfo(input_shape, arm_compute::Format::F32));
+ TensorT output(arm_compute::TensorInfo(output_shape, arm_compute::Format::F32));
+
+ LayerT l;
+
+ l.configure(input.ptr(), output.ptr());
+
+ input.allocate();
+ output.allocate();
+
+ TensorAccess<InputAccessor>(input.ref(), (float*)inputData, inputShape);
+
+ l.run();
+
+ sync_scheduler();
+
+ TensorAccess<OutputAccessor>(output.ref(), (float*)outputData, outputShape);
+
+ return true;
+}
+
+} // namespace common
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
+
+#endif // __NNFW_KERNEL_ACL_RESHAPE_COMMON_H__
diff --git a/libs/kernel/acl/src/Reshape.test.h b/libs/kernel/acl/src/Reshape.test.h
new file mode 100644
index 000000000..a96a896a6
--- /dev/null
+++ b/libs/kernel/acl/src/Reshape.test.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <gtest/gtest.h>
+#include <OperationsUtils.h>
+#include <kernel/acl/nnfw_kernel_acl.h>
+#include <kernel/acl/Reshape.h>
+
+// TODO: fix include path in CMakeFiles
+#include "util.h"
+
+#ifndef ACL_TEST
+#error "ACL_TEST should be defined first!"
+#endif // ACL_TEST
+
+#ifndef ACL_CORE_FUNC_NAME
+#error "ACL_CORE_FUNC_NAME should be defined first!"
+#endif // ACL_CORE_FUNC_NAME
+
+using namespace nnfw::kernel::acl;
+
+ACL_TEST(KernelACL_TC, reshape_1) {
+ const nnfw::rt::Shape inputShape = {OperandType::FLOAT32, {1,1,9,1}, 1.0, 0};
+ float inputData[9] = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f};
+
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ float outputData[9] = {0};
+
+ bool bret = ACL_CORE_FUNC_NAME(inputData, inputShape,
+ outputData, outputShape);
+
+ EXPECT_EQ(bret, true);
+
+ float expectData[9] = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f};
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+
+}
diff --git a/libs/kernel/acl/src/cl/Concatenation.cpp b/libs/kernel/acl/src/cl/Concatenation.cpp
new file mode 100644
index 000000000..9376006ca
--- /dev/null
+++ b/libs/kernel/acl/src/cl/Concatenation.cpp
@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <OperationsUtils.h>
+#include <arm_compute/core/TensorShape.h>
+#include <arm_compute/core/TensorInfo.h>
+
+#include <cassert>
+
+// TODO: fix include path in CMakeFiles
+#include "../IO_accessor.h"
+#include "../shape.h"
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+bool concatenationFloat32(const std::vector<const float*>& inputDataPtrs,
+ const std::vector<nnfw::rt::Shape>& inputShapes, int32_t axis,
+ float* outputData, const nnfw::rt::Shape& outputShape)
+{
+ if (axis != 3)
+ {
+ assert("Only support axis=3 for ACL" && 0);
+ return false;
+ }
+ assert(inputDataPtrs.size() == inputShapes.size());
+
+ std::vector<arm_compute::CLTensor*> inputPtrs;
+ std::vector<arm_compute::ICLTensor*> inputIptrs;
+ arm_compute::CLTensor output;
+
+ // init Tensors
+ std::vector<nnfw::rt::Shape>::const_iterator it_inputShape = inputShapes.begin();
+ for (auto inputData : inputDataPtrs)
+ {
+ const nnfw::rt::Shape& inputShape = *it_inputShape;
+ arm_compute::TensorShape input_shape = util::fromNNShape(inputShape);
+ arm_compute::CLTensor* inputPtr = new arm_compute::CLTensor();
+
+ inputPtr->allocator()->init(arm_compute::TensorInfo(input_shape, arm_compute::Format::F32));
+ inputPtrs.push_back(inputPtr);
+ inputIptrs.push_back(inputPtr);
+
+ it_inputShape++;
+ }
+ arm_compute::TensorShape output_shape = util::fromNNShape(outputShape);
+ output.allocator()->init(arm_compute::TensorInfo(output_shape, arm_compute::Format::F32));
+
+ // prepare ACL Concatenate and configure tensors
+ auto concat = std::make_shared<arm_compute::CLDepthConcatenateLayer>();
+ concat->configure(inputIptrs, &output);
+
+ // allocate Tensors
+ it_inputShape = inputShapes.begin();
+ std::vector<const float*>::const_iterator it_inputData = inputDataPtrs.begin();
+ for (auto inputPtr : inputPtrs)
+ {
+ inputPtr->allocator()->allocate();
+
+ const float* inputData = *it_inputData;
+ const nnfw::rt::Shape& inputShape = *it_inputShape;
+
+ TensorAccess<InputAccessor>(*inputPtr, inputData, inputShape);
+
+ it_inputShape++;
+ it_inputData++;
+ }
+ output.allocator()->allocate();
+
+ // run
+ concat->run();
+ arm_compute::CLScheduler::get().sync();
+
+ // get output
+ TensorAccess<OutputAccessor>(output, outputData, outputShape);
+
+ // cleanup
+ for (auto inputPtr : inputPtrs)
+ {
+ inputPtr->allocator()->free();
+ delete inputPtr;
+ }
+ output.allocator()->free();
+
+ return true;
+}
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
diff --git a/libs/kernel/acl/src/cl/Concatenation.test.cpp b/libs/kernel/acl/src/cl/Concatenation.test.cpp
new file mode 100644
index 000000000..b2c5a5891
--- /dev/null
+++ b/libs/kernel/acl/src/cl/Concatenation.test.cpp
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <gtest/gtest.h>
+#include <OperationsUtils.h>
+#include <kernel/acl/nnfw_kernel_acl.h>
+#include <kernel/acl/Concatenation.h>
+
+// TODO: fix include path in CMakeFiles
+#include "../util.h"
+
+using namespace nnfw::kernel::acl;
+
+TEST(KernelACL_TC, concatFloat32_1)
+{
+ float inputData_1[6] = {
+ 1, 2, 3, 4, 5, 6 // [ [ [1],[2],[3] ], [ [4],[5],[6] ] ]
+ };
+ float inputData_2[6] = {
+ 7, 8, 9, 10, 11, 12 // [ [ [7],[8],[9] ], [ [10],[11],[12] ] ]
+ };
+ const nnfw::rt::Shape inputShape_1 = { OperandType::FLOAT32, {1,2,3,1}, 1.0, 0 };
+ const nnfw::rt::Shape inputShape_2 = { OperandType::FLOAT32, {1,2,3,1}, 1.0, 0 };
+ std::vector<const float*> inputDataPtrs;
+ std::vector<nnfw::rt::Shape> inputShapes;
+ float outputData[12];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,2,3,2}, 1.0, 0 };
+ bool bret;
+
+ inputDataPtrs.push_back(inputData_1);
+ inputDataPtrs.push_back(inputData_2);
+ inputShapes.push_back(inputShape_1);
+ inputShapes.push_back(inputShape_2);
+
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ bret = concatenationFloat32(inputDataPtrs, inputShapes, 3,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectNCHW[] = {
+ 1, 2, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, 12
+ };
+ float expectData[12]; // [ [ [1,7],[2,8],[3,9] ], [ [4,10],[5,11],[6,12] ] ]
+ util::NCHW2NHWC(expectNCHW, expectData, outputShape);
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
diff --git a/libs/kernel/acl/src/cl/Conv2D.cpp b/libs/kernel/acl/src/cl/Conv2D.cpp
new file mode 100644
index 000000000..4783bdc1d
--- /dev/null
+++ b/libs/kernel/acl/src/cl/Conv2D.cpp
@@ -0,0 +1,113 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <OperationsUtils.h>
+#include <NeuralNetworks.h>
+
+#include <arm_compute/core/TensorShape.h>
+#include <arm_compute/core/TensorInfo.h>
+
+#include <util/environment.h>
+
+#include "../IO_accessor.h"
+#include "../util.h"
+#include "../shape.h"
+#include "../CLUniqueTensor.h"
+#include "../support.h"
+
+#include "util/feature/TextFormatter.h"
+
+#include "support/nnapi/feature/Reader.h"
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+static int verbose = 0;
+
+bool convFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ const float* filterData, const nnfw::rt::Shape& filterShape,
+ const float* biasData, const nnfw::rt::Shape& biasShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape)
+{
+ arm_compute::TensorShape input_shape = util::fromNNShape(inputShape);
+ arm_compute::TensorShape filter_shape = util::fromNNShape(filterShape);
+ arm_compute::TensorShape bias_shape = util::fromVectorNNShape(biasShape);
+ arm_compute::TensorShape output_shape = util::fromNNShape(outputShape);
+ arm_compute::PadStrideInfo conv_info = arm_compute::PadStrideInfo(stride_width, stride_height,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ arm_compute::DimensionRoundingType::FLOOR);
+
+ CLUniqueTensor input(arm_compute::TensorInfo(input_shape, arm_compute::Format::F32));
+ CLUniqueTensor output(arm_compute::TensorInfo(output_shape, arm_compute::Format::F32));
+ CLUniqueTensor bias(arm_compute::TensorInfo(bias_shape, arm_compute::Format::F32));
+ CLUniqueTensor filter(arm_compute::TensorInfo(filter_shape, arm_compute::Format::F32));
+
+ std::vector<std::shared_ptr<arm_compute::IFunction>> fns;
+
+ auto conv_f = std::make_shared<arm_compute::CLConvolutionLayer>();
+
+ conv_f->configure(input.ptr(), filter.ptr(), bias.ptr(), output.ptr(), conv_info);
+
+ fns.emplace_back(conv_f);
+
+ util::insertFusedActivationLayer<CLUniqueTensor, arm_compute::CLActivationLayer>(output, activation, fns);
+
+ input.allocate();
+ output.allocate();
+ bias.allocate();
+ filter.allocate();
+
+ TensorAccess<InputAccessor>(input.ref(), inputData, inputShape);
+ TensorAccess<BiasAccessor>(bias.ref(), biasData, biasShape);
+ TensorAccess<WeightAccessor>(filter.ref(), filterData, filterShape);
+
+ nnfw::util::env::IntAccessor("CONV2D_VERBOSE").access(verbose);
+ if (verbose)
+ {
+ input.ref().map();
+ auto ifm_shape = nnfw::support::nnapi::feature::asFeatureShape(inputShape);
+ nnfw::support::nnapi::feature::Reader<float> nnapi_ifm_reader{ifm_shape, inputData};
+ nnfw::support::acl::feature::Reader<float> acl_ifm_reader{input.ptr()};
+
+ std::cout << "NNAPI IFM:" << std::endl;
+ std::cout << nnfw::util::feature::TextFormatter<float>{ifm_shape, nnapi_ifm_reader} << std::endl;
+
+ std::cout << "ARM Compute IFM:" << std::endl;
+ std::cout << nnfw::util::feature::TextFormatter<float>{ifm_shape, acl_ifm_reader} << std::endl;
+ input.ref().unmap();
+ }
+
+ for (const auto &fn : fns)
+ {
+ fn->run();
+ }
+
+ arm_compute::CLScheduler::get().sync();
+
+ TensorAccess<OutputAccessor>(output.ref(), outputData, outputShape);
+
+ return true;
+}
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
diff --git a/libs/kernel/acl/src/cl/Conv2D.test.cpp b/libs/kernel/acl/src/cl/Conv2D.test.cpp
new file mode 100644
index 000000000..e34cdeea5
--- /dev/null
+++ b/libs/kernel/acl/src/cl/Conv2D.test.cpp
@@ -0,0 +1,202 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <gtest/gtest.h>
+#include <OperationsUtils.h>
+#include <kernel/acl/nnfw_kernel_acl.h>
+#include <kernel/acl/Conv2D.h>
+
+// TODO: fix include path in CMakeFiles
+#include "../util.h"
+
+using namespace nnfw::kernel::acl;
+
+TEST(KernelACL_TC, convFloat32_3x3to1x1)
+{
+ float inputData[9];
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ float filterData[9];
+ const nnfw::rt::Shape filterShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ float biasData[1] = { 1.0 };
+ const nnfw::rt::Shape biasShape = { OperandType::FLOAT32, {1}, 1.0, 0 };
+ int32_t padding_left = 0;
+ int32_t padding_right = 0;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 0;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t activation = static_cast<int32_t>(FusedActivationFunc::RELU);
+ float outputData[1];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,1,1,1}, 1.0, 0 };
+ bool bret;
+
+ util::initData(inputData, sizeof(inputData) / sizeof(inputData[0]), 1.0);
+ util::initData(filterData, sizeof(filterData) / sizeof(filterData[0]), 1.0);
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ bret = convFloat32(inputData, inputShape,
+ filterData, filterShape,
+ biasData, biasShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ activation,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = { 10.0f };
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, convFloat32_3x3to3x3)
+{
+ float inputData[9];
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ float filterData[9];
+ const nnfw::rt::Shape filterShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ float biasData[1] = { 1.0 };
+ const nnfw::rt::Shape biasShape = { OperandType::FLOAT32, {1}, 1.0, 0 };
+ int32_t padding_left = 1;
+ int32_t padding_right = 1;
+ int32_t padding_top = 1;
+ int32_t padding_bottom = 1;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t activation = static_cast<int32_t>(FusedActivationFunc::RELU);
+ float outputData[9];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ bool bret;
+
+ util::initData(inputData, sizeof(inputData) / sizeof(inputData[0]), 1.0);
+ util::initData(filterData, sizeof(filterData) / sizeof(filterData[0]), 1.0);
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ bret = convFloat32(inputData, inputShape,
+ filterData, filterShape,
+ biasData, biasShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ activation,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = {
+ 5.0f, 7.0f, 5.0f,
+ 7.0f, 10.0f, 7.0f,
+ 5.0f, 7.0f, 5.0f
+ };
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, convFloat32_3x3to3x3_RELU)
+{
+ float inputData[9];
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ float filterData[9];
+ const nnfw::rt::Shape filterShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ float biasData[1] = { -5.0f };
+ const nnfw::rt::Shape biasShape = { OperandType::FLOAT32, {1}, 1.0, 0 };
+ int32_t padding_left = 1;
+ int32_t padding_right = 1;
+ int32_t padding_top = 1;
+ int32_t padding_bottom = 1;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t activation = static_cast<int32_t>(FusedActivationFunc::RELU);
+ float outputData[9];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ bool bret;
+
+ util::initData(inputData, sizeof(inputData) / sizeof(inputData[0]), 1.0);
+ util::initData(filterData, sizeof(filterData) / sizeof(filterData[0]), 1.0);
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ bret = convFloat32(inputData, inputShape,
+ filterData, filterShape,
+ biasData, biasShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ activation,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] =
+ {
+ 0.0f, 1.0f, 0.0f,
+ 1.0f, 4.0f, 1.0f,
+ 0.0f, 1.0f, 0.0f
+ };
+
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, convFloat32_3x5to3x3)
+{
+ float inputData[15] = {
+ 1,2,3,4,5,
+ 6,7,8,9,10,
+ 11,12,13,14,15
+ };
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,3,5,1}, 1.0, 0 };
+ float filterData[18] = {
+ 1,1,1, 1,1,1, 1,1,1,
+ 2,2,2, 2,2,2, 2,2,2
+ };
+ const nnfw::rt::Shape filterShape = { OperandType::FLOAT32, {2,3,3,1}, 1.0, 0 };
+ float biasData[2] = { 1.0, 1.0 };
+ const nnfw::rt::Shape biasShape = { OperandType::FLOAT32, {2}, 1.0, 0 };
+ int32_t padding_left = 1;
+ int32_t padding_right = 1;
+ int32_t padding_top = 1;
+ int32_t padding_bottom = 1;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t activation = static_cast<int32_t>(FusedActivationFunc::RELU);
+ float outputData[30];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,3,5,2}, 1.0, 0 };
+ bool bret;
+
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ bret = convFloat32(inputData, inputShape,
+ filterData, filterShape,
+ biasData, biasShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ activation,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectNCHW[] = {
+ 17.0f, 28.0f, 34.0f, 40.0f, 29.0f,
+ 40.0f, 64.0f, 73.0f, 82.0f, 58.0f,
+ 37.0f, 58.0f, 64.0f, 70.0f, 49.0f,
+
+ 33.0f, 55.0f, 67.0f, 79.0f, 57.0f,
+ 79.0f, 127.0f, 145.0f, 163.0f, 115.0f,
+ 73.0f, 115.0f, 127.0f, 139.0f, 97.0f
+ };
+ float expectData[30];
+ util::NCHW2NHWC(expectNCHW, expectData, outputShape);
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
diff --git a/libs/kernel/acl/src/cl/DepthwiseConv2D.cpp b/libs/kernel/acl/src/cl/DepthwiseConv2D.cpp
new file mode 100644
index 000000000..7593a99f4
--- /dev/null
+++ b/libs/kernel/acl/src/cl/DepthwiseConv2D.cpp
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <OperationsUtils.h>
+#include <arm_compute/core/TensorShape.h>
+#include <arm_compute/core/TensorInfo.h>
+
+#include <cassert>
+
+// TODO: fix include path in CMakeFiles
+#include "../IO_accessor.h"
+#include "../shape.h"
+#include "../CLUniqueTensor.h"
+#include "../DepthwiseConv2D.h"
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+static void sync_scheduler() {
+ arm_compute::CLScheduler::get().sync();
+}
+
+bool depthwiseConvFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ const float* filterData, const nnfw::rt::Shape& filterShape,
+ const float* biasData, const nnfw::rt::Shape& biasShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t depth_multiplier, int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape) {
+ return common::depthwiseConvFloat32<CLUniqueTensor, arm_compute::CLDepthwiseConvolutionLayer,
+ arm_compute::CLActivationLayer>(inputData, inputShape,
+ filterData, filterShape,
+ biasData, biasShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ depth_multiplier, activation,
+ outputData, outputShape,
+ sync_scheduler);
+}
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
+
diff --git a/libs/kernel/acl/src/cl/DepthwiseConv2D.test.cpp b/libs/kernel/acl/src/cl/DepthwiseConv2D.test.cpp
new file mode 100644
index 000000000..695563383
--- /dev/null
+++ b/libs/kernel/acl/src/cl/DepthwiseConv2D.test.cpp
@@ -0,0 +1,20 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define ACL_CORE_FUNC_NAME depthwiseConvFloat32
+#define ACL_TEST(tc, t) TEST(tc, cl_##t)
+
+#include "../DepthwiseConv2D.test.h"
diff --git a/libs/kernel/acl/src/cl/FullyConnected.cpp b/libs/kernel/acl/src/cl/FullyConnected.cpp
new file mode 100644
index 000000000..7513355ab
--- /dev/null
+++ b/libs/kernel/acl/src/cl/FullyConnected.cpp
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <OperationsUtils.h>
+#include <arm_compute/core/TensorShape.h>
+#include <arm_compute/core/TensorInfo.h>
+
+#include <cassert>
+
+// TODO: fix include path in CMakeFiles
+#include "../IO_accessor.h"
+#include "../shape.h"
+#include "../CLUniqueTensor.h"
+#include "../FullyConnected.h"
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+void sync_scheduler() {
+ arm_compute::CLScheduler::get().sync();
+}
+
+bool fullyConnectedFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ const float* weightsData, const nnfw::rt::Shape& weightsShape,
+ const float* biasData, const nnfw::rt::Shape& biasShape,
+ int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape) {
+ return common::fullyConnectedFloat32<CLUniqueTensor, arm_compute::CLFullyConnectedLayer,
+ arm_compute::CLActivationLayer>(inputData, inputShape,
+ weightsData, weightsShape,
+ biasData, biasShape,
+ activation,
+ outputData, outputShape,
+ sync_scheduler);
+}
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
diff --git a/libs/kernel/acl/src/cl/FullyConnected.test.cpp b/libs/kernel/acl/src/cl/FullyConnected.test.cpp
new file mode 100644
index 000000000..b1f5a095f
--- /dev/null
+++ b/libs/kernel/acl/src/cl/FullyConnected.test.cpp
@@ -0,0 +1,20 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define ACL_CORE_FUNC_NAME fullyConnectedFloat32
+#define ACL_TEST(tc, t) TEST(tc, cl_##t)
+
+#include "../FullyConnected.test.h"
diff --git a/libs/kernel/acl/src/cl/Pooling.cpp b/libs/kernel/acl/src/cl/Pooling.cpp
new file mode 100644
index 000000000..e22eacccc
--- /dev/null
+++ b/libs/kernel/acl/src/cl/Pooling.cpp
@@ -0,0 +1,130 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <OperationsUtils.h>
+#include <arm_compute/core/TensorShape.h>
+#include <arm_compute/core/TensorInfo.h>
+#include "../IO_accessor.h"
+#include "../shape.h"
+#include "../CLUniqueTensor.h"
+
+#include <cassert>
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+bool maxPoolFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height,
+ int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape)
+{
+ arm_compute::TensorShape input_shape = util::fromNNShape(inputShape);
+ arm_compute::TensorShape output_shape = util::fromNNShape(outputShape);
+
+ std::vector<std::shared_ptr<arm_compute::IFunction>> fns;
+
+ arm_compute::PadStrideInfo pad_info = arm_compute::PadStrideInfo(stride_width, stride_height,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ arm_compute::DimensionRoundingType::FLOOR);
+
+ arm_compute::PoolingLayerInfo maxpool_info = arm_compute::PoolingLayerInfo(arm_compute::PoolingType::MAX,
+ arm_compute::Size2D(filter_width,filter_height),
+ pad_info, false);
+
+ CLUniqueTensor input(arm_compute::TensorInfo(input_shape, arm_compute::Format::F32));
+ CLUniqueTensor output(arm_compute::TensorInfo(output_shape, arm_compute::Format::F32));
+
+ auto pool_f = std::make_shared<arm_compute::CLPoolingLayer>();
+ pool_f->configure(input.ptr(), output.ptr(), maxpool_info);
+
+ fns.emplace_back(pool_f);
+
+ input.allocate();
+ output.allocate();
+
+ util::insertFusedActivationLayer<CLUniqueTensor, arm_compute::CLActivationLayer>(output, activation, fns);
+
+ TensorAccess<InputAccessor>(input.ref(), inputData, inputShape);
+
+ for (const auto &fn : fns)
+ {
+ fn->run();
+ }
+
+ arm_compute::CLScheduler::get().sync();
+
+ TensorAccess<OutputAccessor>(output.ref(), outputData, outputShape);
+
+ return true;
+}
+
+bool averagePoolFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height,
+ int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape)
+{
+ arm_compute::TensorShape input_shape = util::fromNNShape(inputShape);
+ arm_compute::TensorShape output_shape = util::fromNNShape(outputShape);
+
+ std::vector<std::shared_ptr<arm_compute::IFunction>> fns;
+
+ arm_compute::PadStrideInfo pad_info = arm_compute::PadStrideInfo(stride_width, stride_height,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ arm_compute::DimensionRoundingType::FLOOR);
+
+ arm_compute::PoolingLayerInfo pool_info = arm_compute::PoolingLayerInfo(arm_compute::PoolingType::AVG,
+ arm_compute::Size2D(filter_width,filter_height),
+ pad_info, true);
+
+ CLUniqueTensor input(arm_compute::TensorInfo(input_shape, arm_compute::Format::F32));
+ CLUniqueTensor output(arm_compute::TensorInfo(output_shape, arm_compute::Format::F32));
+
+ auto pool_f = std::make_shared<arm_compute::CLPoolingLayer>();
+ pool_f->configure(input.ptr(), output.ptr(), pool_info);
+
+ fns.emplace_back(pool_f);
+
+ input.allocate();
+ output.allocate();
+
+ util::insertFusedActivationLayer<CLUniqueTensor, arm_compute::CLActivationLayer>(output, activation, fns);
+
+ TensorAccess<InputAccessor>(input.ref(), inputData, inputShape);
+
+ for (const auto &fn : fns)
+ {
+ fn->run();
+ }
+
+ arm_compute::CLScheduler::get().sync();
+
+ TensorAccess<OutputAccessor>(output.ref(), outputData, outputShape);
+
+ return true;
+}
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
diff --git a/libs/kernel/acl/src/cl/Pooling.test.cpp b/libs/kernel/acl/src/cl/Pooling.test.cpp
new file mode 100644
index 000000000..8112e7a45
--- /dev/null
+++ b/libs/kernel/acl/src/cl/Pooling.test.cpp
@@ -0,0 +1,482 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <gtest/gtest.h>
+#include <OperationsUtils.h>
+#include <kernel/acl/nnfw_kernel_acl.h>
+#include <arm_compute/core/Types.h>
+#include <kernel/acl/Pooling.h>
+
+#include "../util.h"
+
+using namespace nnfw::kernel::acl;
+
+TEST(KernelACL_TC, maxPoolFloat32_3x3to1x1)
+{
+ util::TensorWrapper input({1,3,3,1});
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ int32_t padding_left = 0;
+ int32_t padding_right = 0;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 0;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t filter_width = 3;
+ int32_t filter_height = 3;
+
+ float outputData[1];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,1,1,1}, 1.0, 0 };
+ bool bret;
+
+ float value = 1.0f;
+ input.initValue([&value](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return value++;
+ });
+
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ int32_t activation = ANEURALNETWORKS_FUSED_NONE;
+
+ bret = maxPoolFloat32(input.ptr<float>(), inputShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = { 9.0f };
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, maxPoolFloat32_3x3to1x1_RELU)
+{
+ util::TensorWrapper input({1,3,3,1});
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ int32_t padding_left = 0;
+ int32_t padding_right = 0;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 0;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t filter_width = 3;
+ int32_t filter_height = 3;
+
+ float outputData[1];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,1,1,1}, 1.0, 0 };
+ bool bret;
+
+ float value = -1.0f;
+ input.initValue([&value](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return value--;
+ });
+
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ int32_t activation = ANEURALNETWORKS_FUSED_RELU;
+
+ bret = maxPoolFloat32(input.ptr<float>(), inputShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = { 0.0f };
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, maxPoolFloat32_3x3to2x2)
+{
+ util::TensorWrapper input({1,3,3,1});
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ int32_t padding_left = 0;
+ int32_t padding_right = 1;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 1;
+ int32_t stride_width = 2;
+ int32_t stride_height = 2;
+ int32_t filter_width = 2;
+ int32_t filter_height = 2;
+
+ float outputData[4];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,2,2,1}, 1.0, 0 };
+ bool bret;
+
+ float value = 1.0f;
+ input.initValue([&value](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return value++;
+ });
+
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ int32_t activation = ANEURALNETWORKS_FUSED_NONE;
+
+ bret = maxPoolFloat32(input.ptr<float>(), inputShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = {
+ 5.0f, 6.0f,
+ 8.0f, 9.0f
+ };
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, maxPoolFloat32_147x147to73x73)
+{
+ util::TensorWrapper input({1,147,147,64});
+ util::TensorWrapper output({1,73,73,64});
+
+ int32_t padding_left = 0;
+ int32_t padding_right = 0;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 0;
+ int32_t stride_width = 2;
+ int32_t stride_height = 2;
+ int32_t filter_width = 3;
+ int32_t filter_height = 3;
+
+ input.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 1.0f;
+ });
+
+ output.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 0.f;
+ });
+
+ int32_t activation = ANEURALNETWORKS_FUSED_NONE;
+
+ bool bret = maxPoolFloat32(input.ptr<float>(), input.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ output.ptr<float>(), output.shape());
+ EXPECT_EQ(bret, true);
+
+ util::TensorWrapper expected({1,73,73,64});
+ expected.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 1.0f;
+ });
+
+ EXPECT_EQ(output, expected);
+}
+
+TEST(KernelACL_TC, maxPoolFloat32_71x71to35x35)
+{
+ util::TensorWrapper input({1,71,71,192});
+ util::TensorWrapper output({1,35,35,192});
+
+ int32_t padding_left = 0;
+ int32_t padding_right = 0;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 0;
+ int32_t stride_width = 2;
+ int32_t stride_height = 2;
+ int32_t filter_width = 3;
+ int32_t filter_height = 3;
+
+ input.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 1.0f;
+ });
+
+ output.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 0.f;
+ });
+
+ int32_t activation = ANEURALNETWORKS_FUSED_NONE;
+
+ bool bret = maxPoolFloat32(input.ptr<float>(), input.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ output.ptr<float>(), output.shape());
+ EXPECT_EQ(bret, true);
+
+ util::TensorWrapper expected({1,35,35,192});
+ expected.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 1.0f;
+ });
+
+ EXPECT_EQ(output, expected);
+}
+
+TEST(KernelACL_TC, averagePoolFloat32_3x3to1x1)
+{
+ util::TensorWrapper input({1,3,3,1});
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ int32_t padding_left = 0;
+ int32_t padding_right = 0;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 0;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t filter_width = 3;
+ int32_t filter_height = 3;
+
+ float outputData[1];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,1,1,1}, 1.0, 0 };
+ bool bret;
+
+ float value = 1.0f;
+ input.initValue([&value](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return value++;
+ });
+
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ int32_t activation = ANEURALNETWORKS_FUSED_NONE;
+
+ bret = averagePoolFloat32(input.ptr<float>(), inputShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = { 5.0f };
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, averagePoolFloat32_3x3to1x1_RELU)
+{
+ util::TensorWrapper input({1,3,3,1});
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ int32_t padding_left = 0;
+ int32_t padding_right = 0;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 0;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t filter_width = 3;
+ int32_t filter_height = 3;
+
+ float outputData[1];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,1,1,1}, 1.0, 0 };
+ bool bret;
+
+ float value = 3.0f;
+ input.initValue([&value](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return value--;
+ });
+
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ int32_t activation = ANEURALNETWORKS_FUSED_RELU;
+
+ bret = averagePoolFloat32(input.ptr<float>(), inputShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = { 0.0f };
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, averagePoolFloat32_3x3to2x2)
+{
+ util::TensorWrapper input({1,3,3,1});
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ int32_t padding_left = 0;
+ int32_t padding_right = 0;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 0;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t filter_width = 2;
+ int32_t filter_height = 2;
+
+ float outputData[4];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,2,2,1}, 1.0, 0 };
+ bool bret;
+
+ float value = 1.0f;
+ input.initValue([&value](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return value++;
+ });
+
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ int32_t activation = ANEURALNETWORKS_FUSED_NONE;
+
+ bret = averagePoolFloat32(input.ptr<float>(), inputShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = {
+ 3.0f, 4.0f,
+ 6.0f, 7.0f
+ };
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, averagePoolFloat32_3x3to3x3)
+{
+ std::vector<uint32_t> dims = {1,3,3,1};
+ util::TensorWrapper input(dims);
+ util::TensorWrapper output(dims);
+
+ int32_t padding_left = 1;
+ int32_t padding_right = 1;
+ int32_t padding_top = 1;
+ int32_t padding_bottom = 1;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t filter_width = 3;
+ int32_t filter_height = 3;
+
+ int32_t value=1.0f;
+ input.initValue([&value](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return value++;
+ });
+
+ output.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 0.f;
+ });
+
+ int32_t activation = ANEURALNETWORKS_FUSED_NONE;
+
+ bool bret = averagePoolFloat32(input.ptr<float>(), input.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ output.ptr<float>(), output.shape());
+ EXPECT_EQ(bret, true);
+
+ util::TensorWrapper expected(dims);
+ float v=2.5f;
+ expected.initValue([&v](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ v = v + 0.5f;
+ return v;
+ });
+
+ EXPECT_EQ(output, expected);
+}
+
+TEST(KernelACL_TC, averagePoolFloat32_35x35to35x35)
+{
+ int32_t N=35;
+ std::vector<uint32_t> dims = {1,35,35,768};
+ util::TensorWrapper input(dims);
+ util::TensorWrapper output(dims);
+
+ int32_t padding_left = 1;
+ int32_t padding_right = 1;
+ int32_t padding_top = 1;
+ int32_t padding_bottom = 1;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t filter_width = 3;
+ int32_t filter_height = 3;
+
+ input.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 1.0f;
+ });
+
+ output.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 0.f;
+ });
+
+ int32_t activation = ANEURALNETWORKS_FUSED_NONE;
+
+ bool bret = averagePoolFloat32(input.ptr<float>(), input.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ output.ptr<float>(), output.shape());
+ EXPECT_EQ(bret, true);
+
+ util::TensorWrapper expected(dims);
+ expected.initValue([&N](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 1.0f;
+ });
+
+ EXPECT_EQ(output, expected);
+}
+
+TEST(KernelACL_TC, averagePoolFloat32_8x8to1x1)
+{
+ util::TensorWrapper input({1,8,8,2048});
+ util::TensorWrapper output({1,1,1,2048});
+
+ int32_t padding_left = 0;
+ int32_t padding_right = 0;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 0;
+ int32_t stride_width = 2;
+ int32_t stride_height = 2;
+ int32_t filter_width = 8;
+ int32_t filter_height = 8;
+
+ input.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 1.0f;
+ });
+
+ output.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 0.f;
+ });
+
+ int32_t activation = ANEURALNETWORKS_FUSED_NONE;
+
+ bool bret = averagePoolFloat32(input.ptr<float>(), input.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ output.ptr<float>(), output.shape());
+ EXPECT_EQ(bret, true);
+
+ util::TensorWrapper expected({1,1,1,2048});
+ expected.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 1.0f;
+ });
+
+ EXPECT_EQ(output, expected);
+}
diff --git a/libs/kernel/acl/src/cl/Reshape.cpp b/libs/kernel/acl/src/cl/Reshape.cpp
new file mode 100644
index 000000000..e420ab92b
--- /dev/null
+++ b/libs/kernel/acl/src/cl/Reshape.cpp
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <OperationsUtils.h>
+#include <arm_compute/core/TensorShape.h>
+#include <arm_compute/core/TensorInfo.h>
+
+// TODO: fix include path in CMakeFiles
+#include "../IO_accessor.h"
+#include "../shape.h"
+#include "../CLUniqueTensor.h"
+#include "../Reshape.h"
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+static void sync_scheduler() {
+ arm_compute::CLScheduler::get().sync();
+}
+
+bool reshapeGeneric(const void* inputData, const nnfw::rt::Shape& inputShape,
+ void* outputData, const nnfw::rt::Shape& outputShape) {
+ return common::reshapeGeneric<CLUniqueTensor, arm_compute::CLReshapeLayer>
+ (inputData, inputShape, outputData, outputShape, sync_scheduler);
+}
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
diff --git a/libs/kernel/acl/src/cl/Reshape.test.cpp b/libs/kernel/acl/src/cl/Reshape.test.cpp
new file mode 100644
index 000000000..db23a6d3d
--- /dev/null
+++ b/libs/kernel/acl/src/cl/Reshape.test.cpp
@@ -0,0 +1,20 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define ACL_CORE_FUNC_NAME reshapeGeneric
+#define ACL_TEST(tc, t) TEST(tc, cl_##t)
+
+#include "../Reshape.test.h"
diff --git a/libs/kernel/acl/src/cl/Softmax.cpp b/libs/kernel/acl/src/cl/Softmax.cpp
new file mode 100644
index 000000000..a628f05fe
--- /dev/null
+++ b/libs/kernel/acl/src/cl/Softmax.cpp
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <OperationsUtils.h>
+#include <NeuralNetworks.h>
+
+#include <arm_compute/core/TensorShape.h>
+#include <arm_compute/core/TensorInfo.h>
+#include "../IO_accessor.h"
+#include "../shape.h"
+#include "../CLUniqueTensor.h"
+#include "../util.h"
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+bool softmaxFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ const float beta,
+ float* outputData, const nnfw::rt::Shape& outputShape)
+{
+ arm_compute::TensorShape input_shape = util::fromNNShape(inputShape);
+ arm_compute::TensorShape output_shape = util::fromNNShape(outputShape);
+
+ CLUniqueTensor input(arm_compute::TensorInfo(input_shape, arm_compute::Format::F32));
+ CLUniqueTensor output(arm_compute::TensorInfo(output_shape, arm_compute::Format::F32));
+
+ auto softmax_f = std::make_shared<arm_compute::CLSoftmaxLayer>();
+ softmax_f->configure(input.ptr(), output.ptr(), beta);
+
+ input.allocate();
+ output.allocate();
+
+ if (inputShape.dimensions.size() == 4)
+ {
+ TensorAccess<InputAccessor>(input.ref(), inputData, inputShape);
+
+ softmax_f->run();
+
+ arm_compute::CLScheduler::get().sync();
+
+ TensorAccess<OutputAccessor>(output.ref(), outputData, outputShape);
+ }
+ else if (inputShape.dimensions.size() == 2)
+ {
+ TensorAccess<MatrixInputAccessor>(input.ref(), inputData, inputShape);
+
+ softmax_f->run();
+
+ arm_compute::CLScheduler::get().sync();
+
+ TensorAccess<MatrixOutputAccessor>(output.ref(), outputData, outputShape);
+ }
+ else
+ {
+ assert("undefined dimension of input" && 0);
+ return false;
+ }
+
+ return true;
+}
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
diff --git a/libs/kernel/acl/src/cl/Softmax.test.cpp b/libs/kernel/acl/src/cl/Softmax.test.cpp
new file mode 100644
index 000000000..8ee8b41e2
--- /dev/null
+++ b/libs/kernel/acl/src/cl/Softmax.test.cpp
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <gtest/gtest.h>
+#include <OperationsUtils.h>
+#include <kernel/acl/nnfw_kernel_acl.h>
+#include <arm_compute/core/Types.h>
+#include <kernel/acl/Softmax.h>
+
+#include "../util.h"
+
+using namespace nnfw::kernel::acl;
+
+TEST(KernelACL_TC, softmaxFloat32_1xn)
+{
+ float inputData[4];
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,4}, 1.0, 0 };
+ float outputData[4];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,4}, 1.0, 0 };
+ const float beta = 1.0f;
+ bool bret;
+
+ util::initData(inputData, sizeof(inputData) / sizeof(inputData[0]), 1.0);
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ bret = softmaxFloat32(inputData, inputShape, beta, outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = { 0.25f, 0.25f, 0.25f, 0.25f };
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, softmaxFloat32_4d)
+{
+ float inputData[4];
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,1,4,1}, 1.0, 0 };
+ float outputData[4];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,1,4,1}, 1.0, 0 };
+ const float beta = 1.0f;
+ bool bret;
+
+ util::initData(inputData, sizeof(inputData) / sizeof(inputData[0]), 1.0);
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ bret = softmaxFloat32(inputData, inputShape, beta, outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = { 0.25f, 0.25f, 0.25f, 0.25f };
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, softmaxFloat32_1xn_seq)
+{
+ float inputData[4];
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,4}, 1.0, 0 };
+ float outputData[4];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,4}, 1.0, 0 };
+ const float beta = 1.0f;
+ bool bret;
+
+ util::initData_Increasing(inputData, sizeof(inputData) / sizeof(inputData[0]), 1.0);
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ bret = softmaxFloat32(inputData, inputShape, beta, outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = {0.032058603280085, 0.0871443187420326, 0.23688281808991, 0.643914259887972};
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, softmaxFloat32_4d_seq)
+{
+ float inputData[4];
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,1,4,1}, 1.0, 0 };
+ float outputData[4];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,1,4,1}, 1.0, 0 };
+ const float beta = 1.0f;
+ bool bret;
+
+ util::initData_Increasing(inputData, sizeof(inputData) / sizeof(inputData[0]), 1.0);
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ bret = softmaxFloat32(inputData, inputShape, beta, outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = {0.032058603280085, 0.0871443187420326, 0.23688281808991, 0.643914259887972};
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
diff --git a/libs/kernel/acl/src/gtest_env.cpp b/libs/kernel/acl/src/gtest_env.cpp
new file mode 100644
index 000000000..f6fc52f7a
--- /dev/null
+++ b/libs/kernel/acl/src/gtest_env.cpp
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <gtest/gtest.h>
+#include <kernel/acl/nnfw_kernel_acl.h>
+
+class TestEnvironment : public ::testing::Environment
+{
+public:
+ virtual ~TestEnvironment() = default;
+
+ virtual void SetUp()
+ {
+ nnfw::kernel::acl::Initialize();
+ }
+
+ virtual void TearDown()
+ {
+ // DO NOTHING
+ }
+};
+
+static ::testing::Environment* const testingenv =
+ ::testing::AddGlobalTestEnvironment(new TestEnvironment);
diff --git a/libs/kernel/acl/src/neon/Concatenation.cpp b/libs/kernel/acl/src/neon/Concatenation.cpp
new file mode 100644
index 000000000..8738a9d12
--- /dev/null
+++ b/libs/kernel/acl/src/neon/Concatenation.cpp
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <OperationsUtils.h>
+#include <arm_compute/core/TensorShape.h>
+#include <arm_compute/core/TensorInfo.h>
+
+#include <cassert>
+
+// TODO: fix include path in CMakeFiles
+#include "../IO_accessor.h"
+#include "../shape.h"
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+namespace neon {
+
+bool concatenationFloat32(const std::vector<const float*>& inputDataPtrs,
+ const std::vector<nnfw::rt::Shape>& inputShapes, int32_t axis,
+ float* outputData, const nnfw::rt::Shape& outputShape)
+{
+ if (axis != 3)
+ {
+ assert("Only support axis=3 for ACL" && 0);
+ return false;
+ }
+ assert(inputDataPtrs.size() == inputShapes.size());
+
+ std::vector<arm_compute::Tensor*> inputPtrs;
+ std::vector<arm_compute::ITensor*> inputIptrs;
+ arm_compute::Tensor output;
+
+ // init Tensors
+ std::vector<nnfw::rt::Shape>::const_iterator it_inputShape = inputShapes.begin();
+ for (auto inputData : inputDataPtrs)
+ {
+ const nnfw::rt::Shape& inputShape = *it_inputShape;
+ arm_compute::TensorShape input_shape = util::fromNNShape(inputShape);
+ arm_compute::Tensor* inputPtr = new arm_compute::Tensor();
+
+ inputPtr->allocator()->init(arm_compute::TensorInfo(input_shape, arm_compute::Format::F32));
+ inputPtrs.push_back(inputPtr);
+ inputIptrs.push_back(inputPtr);
+
+ it_inputShape++;
+ }
+ arm_compute::TensorShape output_shape = util::fromNNShape(outputShape);
+ output.allocator()->init(arm_compute::TensorInfo(output_shape, arm_compute::Format::F32));
+
+ // prepare ACL Concatenate and configure tensors
+ auto concat = std::make_shared<arm_compute::NEDepthConcatenateLayer>();
+ concat->configure(inputIptrs, &output);
+
+ // allocate Tensors
+ it_inputShape = inputShapes.begin();
+ std::vector<const float*>::const_iterator it_inputData = inputDataPtrs.begin();
+ for (auto inputPtr : inputPtrs)
+ {
+ inputPtr->allocator()->allocate();
+
+ const float* inputData = *it_inputData;
+ const nnfw::rt::Shape& inputShape = *it_inputShape;
+
+ TensorAccess<InputAccessor>(*inputPtr, inputData, inputShape);
+
+ it_inputShape++;
+ it_inputData++;
+ }
+ output.allocator()->allocate();
+
+ // run
+ concat->run();
+
+ // get output
+ TensorAccess<OutputAccessor>(output, outputData, outputShape);
+
+ // cleanup
+ for (auto inputPtr : inputPtrs)
+ {
+ inputPtr->allocator()->free();
+ delete inputPtr;
+ }
+ output.allocator()->free();
+
+ return true;
+}
+
+} // namespace neon
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
diff --git a/libs/kernel/acl/src/neon/Concatenation.test.cpp b/libs/kernel/acl/src/neon/Concatenation.test.cpp
new file mode 100644
index 000000000..03b05bd24
--- /dev/null
+++ b/libs/kernel/acl/src/neon/Concatenation.test.cpp
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <gtest/gtest.h>
+#include <OperationsUtils.h>
+#include <kernel/acl/nnfw_kernel_acl.h>
+#include <kernel/acl/Concatenation.h>
+
+// TODO: fix include path in CMakeFiles
+#include "../util.h"
+
+using namespace nnfw::kernel::acl;
+
+TEST(KernelACL_TC, neon_concatFloat32_1)
+{
+ float inputData_1[6] = {
+ 1, 2, 3, 4, 5, 6 // [ [ [1],[2],[3] ], [ [4],[5],[6] ] ]
+ };
+ float inputData_2[6] = {
+ 7, 8, 9, 10, 11, 12 // [ [ [7],[8],[9] ], [ [10],[11],[12] ] ]
+ };
+ const nnfw::rt::Shape inputShape_1 = { OperandType::FLOAT32, {1,2,3,1}, 1.0, 0 };
+ const nnfw::rt::Shape inputShape_2 = { OperandType::FLOAT32, {1,2,3,1}, 1.0, 0 };
+ std::vector<const float*> inputDataPtrs;
+ std::vector<nnfw::rt::Shape> inputShapes;
+ float outputData[12];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,2,3,2}, 1.0, 0 };
+ bool bret;
+
+ inputDataPtrs.push_back(inputData_1);
+ inputDataPtrs.push_back(inputData_2);
+ inputShapes.push_back(inputShape_1);
+ inputShapes.push_back(inputShape_2);
+
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ bret = neon::concatenationFloat32(inputDataPtrs, inputShapes, 3,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectNCHW[] = {
+ 1, 2, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, 12
+ };
+ float expectData[12]; // [ [ [1,7],[2,8],[3,9] ], [ [4,10],[5,11],[6,12] ] ]
+ util::NCHW2NHWC(expectNCHW, expectData, outputShape);
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
diff --git a/libs/kernel/acl/src/neon/Conv2D.cpp b/libs/kernel/acl/src/neon/Conv2D.cpp
new file mode 100644
index 000000000..679ecfced
--- /dev/null
+++ b/libs/kernel/acl/src/neon/Conv2D.cpp
@@ -0,0 +1,111 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <OperationsUtils.h>
+#include <NeuralNetworks.h>
+
+#include <arm_compute/core/TensorShape.h>
+#include <arm_compute/core/TensorInfo.h>
+
+#include <util/environment.h>
+
+#include "../IO_accessor.h"
+#include "../util.h"
+#include "../shape.h"
+#include "../NEUniqueTensor.h"
+#include "../support.h"
+
+#include "util/feature/TextFormatter.h"
+
+#include "support/nnapi/feature/Reader.h"
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+namespace neon {
+
+static int verbose = 0;
+
+bool convFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ const float* filterData, const nnfw::rt::Shape& filterShape,
+ const float* biasData, const nnfw::rt::Shape& biasShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape)
+{
+ arm_compute::TensorShape input_shape = util::fromNNShape(inputShape);
+ arm_compute::TensorShape filter_shape = util::fromNNShape(filterShape);
+ arm_compute::TensorShape bias_shape = util::fromVectorNNShape(biasShape);
+ arm_compute::TensorShape output_shape = util::fromNNShape(outputShape);
+ arm_compute::PadStrideInfo conv_info = arm_compute::PadStrideInfo(stride_width, stride_height,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ arm_compute::DimensionRoundingType::FLOOR);
+
+ NEUniqueTensor input(arm_compute::TensorInfo(input_shape, arm_compute::Format::F32));
+ NEUniqueTensor output(arm_compute::TensorInfo(output_shape, arm_compute::Format::F32));
+ NEUniqueTensor bias(arm_compute::TensorInfo(bias_shape, arm_compute::Format::F32));
+ NEUniqueTensor filter(arm_compute::TensorInfo(filter_shape, arm_compute::Format::F32));
+
+ std::vector<std::shared_ptr<arm_compute::IFunction>> fns;
+
+ auto conv_f = std::make_shared<arm_compute::NEConvolutionLayer>();
+
+ conv_f->configure(input.ptr(), filter.ptr(), bias.ptr(), output.ptr(), conv_info);
+
+ fns.emplace_back(conv_f);
+
+ util::insertFusedActivationLayer<NEUniqueTensor, arm_compute::NEActivationLayer>(output, activation, fns);
+
+ input.allocate();
+ output.allocate();
+ bias.allocate();
+ filter.allocate();
+
+ TensorAccess<InputAccessor>(input.ref(), inputData, inputShape);
+ TensorAccess<BiasAccessor>(bias.ref(), biasData, biasShape);
+ TensorAccess<WeightAccessor>(filter.ref(), filterData, filterShape);
+
+ nnfw::util::env::IntAccessor("CONV2D_VERBOSE").access(verbose);
+ if (verbose)
+ {
+ auto ifm_shape = nnfw::support::nnapi::feature::asFeatureShape(inputShape);
+ nnfw::support::nnapi::feature::Reader<float> nnapi_ifm_reader{ifm_shape, inputData};
+ nnfw::support::acl::feature::Reader<float> acl_ifm_reader{ input.ptr() };
+
+ std::cout << "NNAPI IFM:" << std::endl;
+ std::cout << nnfw::util::feature::TextFormatter<float>{ifm_shape, nnapi_ifm_reader} << std::endl;
+
+ std::cout << "ARM Compute IFM:" << std::endl;
+ std::cout << nnfw::util::feature::TextFormatter<float>{ifm_shape, acl_ifm_reader} << std::endl;
+ }
+
+ for (const auto &fn : fns)
+ {
+ fn->run();
+ }
+
+ TensorAccess<OutputAccessor>(output.ref(), outputData, outputShape);
+
+ return true;
+}
+
+} // namespace neon
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
diff --git a/libs/kernel/acl/src/neon/Conv2D.test.cpp b/libs/kernel/acl/src/neon/Conv2D.test.cpp
new file mode 100644
index 000000000..6a3de1c43
--- /dev/null
+++ b/libs/kernel/acl/src/neon/Conv2D.test.cpp
@@ -0,0 +1,202 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <gtest/gtest.h>
+#include <OperationsUtils.h>
+#include <kernel/acl/nnfw_kernel_acl.h>
+#include <kernel/acl/Conv2D.h>
+
+// TODO: fix include path in CMakeFiles
+#include "../util.h"
+
+using namespace nnfw::kernel::acl;
+
+TEST(KernelACL_TC, neon_convFloat32_3x3to1x1)
+{
+ float inputData[9];
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ float filterData[9];
+ const nnfw::rt::Shape filterShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ float biasData[1] = { 1.0 };
+ const nnfw::rt::Shape biasShape = { OperandType::FLOAT32, {1}, 1.0, 0 };
+ int32_t padding_left = 0;
+ int32_t padding_right = 0;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 0;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t activation = static_cast<int32_t>(FusedActivationFunc::RELU);
+ float outputData[1];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,1,1,1}, 1.0, 0 };
+ bool bret;
+
+ util::initData(inputData, sizeof(inputData) / sizeof(inputData[0]), 1.0);
+ util::initData(filterData, sizeof(filterData) / sizeof(filterData[0]), 1.0);
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ bret = neon::convFloat32(inputData, inputShape,
+ filterData, filterShape,
+ biasData, biasShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ activation,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = { 10.0f };
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, neon_convFloat32_3x3to3x3)
+{
+ float inputData[9];
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ float filterData[9];
+ const nnfw::rt::Shape filterShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ float biasData[1] = { 1.0 };
+ const nnfw::rt::Shape biasShape = { OperandType::FLOAT32, {1}, 1.0, 0 };
+ int32_t padding_left = 1;
+ int32_t padding_right = 1;
+ int32_t padding_top = 1;
+ int32_t padding_bottom = 1;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t activation = static_cast<int32_t>(FusedActivationFunc::RELU);
+ float outputData[9];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ bool bret;
+
+ util::initData(inputData, sizeof(inputData) / sizeof(inputData[0]), 1.0);
+ util::initData(filterData, sizeof(filterData) / sizeof(filterData[0]), 1.0);
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ bret = neon::convFloat32(inputData, inputShape,
+ filterData, filterShape,
+ biasData, biasShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ activation,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = {
+ 5.0f, 7.0f, 5.0f,
+ 7.0f, 10.0f, 7.0f,
+ 5.0f, 7.0f, 5.0f
+ };
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, neon_convFloat32_3x3to3x3_RELU)
+{
+ float inputData[9];
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ float filterData[9];
+ const nnfw::rt::Shape filterShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ float biasData[1] = { -5.0f };
+ const nnfw::rt::Shape biasShape = { OperandType::FLOAT32, {1}, 1.0, 0 };
+ int32_t padding_left = 1;
+ int32_t padding_right = 1;
+ int32_t padding_top = 1;
+ int32_t padding_bottom = 1;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t activation = static_cast<int32_t>(FusedActivationFunc::RELU);
+ float outputData[9];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ bool bret;
+
+ util::initData(inputData, sizeof(inputData) / sizeof(inputData[0]), 1.0);
+ util::initData(filterData, sizeof(filterData) / sizeof(filterData[0]), 1.0);
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ bret = neon::convFloat32(inputData, inputShape,
+ filterData, filterShape,
+ biasData, biasShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ activation,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] =
+ {
+ 0.0f, 1.0f, 0.0f,
+ 1.0f, 4.0f, 1.0f,
+ 0.0f, 1.0f, 0.0f
+ };
+
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, neon_convFloat32_3x5to3x3)
+{
+ float inputData[15] = {
+ 1,2,3,4,5,
+ 6,7,8,9,10,
+ 11,12,13,14,15
+ };
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,3,5,1}, 1.0, 0 };
+ float filterData[18] = {
+ 1,1,1, 1,1,1, 1,1,1,
+ 2,2,2, 2,2,2, 2,2,2
+ };
+ const nnfw::rt::Shape filterShape = { OperandType::FLOAT32, {2,3,3,1}, 1.0, 0 };
+ float biasData[2] = { 1.0, 1.0 };
+ const nnfw::rt::Shape biasShape = { OperandType::FLOAT32, {2}, 1.0, 0 };
+ int32_t padding_left = 1;
+ int32_t padding_right = 1;
+ int32_t padding_top = 1;
+ int32_t padding_bottom = 1;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t activation = static_cast<int32_t>(FusedActivationFunc::RELU);
+ float outputData[30];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,3,5,2}, 1.0, 0 };
+ bool bret;
+
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ bret = neon::convFloat32(inputData, inputShape,
+ filterData, filterShape,
+ biasData, biasShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ activation,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectNCHW[] = {
+ 17.0f, 28.0f, 34.0f, 40.0f, 29.0f,
+ 40.0f, 64.0f, 73.0f, 82.0f, 58.0f,
+ 37.0f, 58.0f, 64.0f, 70.0f, 49.0f,
+
+ 33.0f, 55.0f, 67.0f, 79.0f, 57.0f,
+ 79.0f, 127.0f, 145.0f, 163.0f, 115.0f,
+ 73.0f, 115.0f, 127.0f, 139.0f, 97.0f
+ };
+ float expectData[30];
+ util::NCHW2NHWC(expectNCHW, expectData, outputShape);
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
diff --git a/libs/kernel/acl/src/neon/DepthwiseConv2D.cpp b/libs/kernel/acl/src/neon/DepthwiseConv2D.cpp
new file mode 100644
index 000000000..bcf56c667
--- /dev/null
+++ b/libs/kernel/acl/src/neon/DepthwiseConv2D.cpp
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <OperationsUtils.h>
+#include <arm_compute/core/TensorShape.h>
+#include <arm_compute/core/TensorInfo.h>
+#include <arm_compute/runtime/NEON/NEScheduler.h>
+
+#include <cassert>
+
+// TODO: fix include path in CMakeFiles
+#include "../IO_accessor.h"
+#include "../shape.h"
+#include "../NEUniqueTensor.h"
+#include "../DepthwiseConv2D.h"
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+namespace neon {
+static void sync_scheduler() {
+}
+
+bool depthwiseConvFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ const float* filterData, const nnfw::rt::Shape& filterShape,
+ const float* biasData, const nnfw::rt::Shape& biasShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t depth_multiplier, int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape) {
+ return common::depthwiseConvFloat32<NEUniqueTensor, arm_compute::NEDepthwiseConvolutionLayer,
+ arm_compute::NEActivationLayer>(inputData, inputShape,
+ filterData, filterShape,
+ biasData, biasShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ depth_multiplier, activation,
+ outputData, outputShape,
+ sync_scheduler);
+}
+
+} // namespace neon
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
diff --git a/libs/kernel/acl/src/neon/DepthwiseConv2D.test.cpp b/libs/kernel/acl/src/neon/DepthwiseConv2D.test.cpp
new file mode 100644
index 000000000..d729d538e
--- /dev/null
+++ b/libs/kernel/acl/src/neon/DepthwiseConv2D.test.cpp
@@ -0,0 +1,20 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define ACL_CORE_FUNC_NAME neon::depthwiseConvFloat32
+#define ACL_TEST(tc, t) TEST(tc, neon_##t)
+
+#include "../DepthwiseConv2D.test.h"
diff --git a/libs/kernel/acl/src/neon/FullyConnected.cpp b/libs/kernel/acl/src/neon/FullyConnected.cpp
new file mode 100644
index 000000000..86229cbf2
--- /dev/null
+++ b/libs/kernel/acl/src/neon/FullyConnected.cpp
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <OperationsUtils.h>
+#include <arm_compute/core/TensorShape.h>
+#include <arm_compute/core/TensorInfo.h>
+#include <arm_compute/runtime/NEON/NEScheduler.h>
+
+#include <cassert>
+
+// TODO: fix include path in CMakeFiles
+#include "../IO_accessor.h"
+#include "../shape.h"
+#include "../NEUniqueTensor.h"
+#include "../FullyConnected.h"
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+namespace neon {
+
+void sync_scheduler() {
+}
+
+bool fullyConnectedFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ const float* weightsData, const nnfw::rt::Shape& weightsShape,
+ const float* biasData, const nnfw::rt::Shape& biasShape,
+ int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape) {
+
+ return common::fullyConnectedFloat32<NEUniqueTensor, arm_compute::NEFullyConnectedLayer,
+ arm_compute::NEActivationLayer>(inputData, inputShape,
+ weightsData, weightsShape,
+ biasData, biasShape,
+ activation,
+ outputData, outputShape,
+ sync_scheduler);
+}
+
+} // namespace neon
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
+
diff --git a/libs/kernel/acl/src/neon/FullyConnected.test.cpp b/libs/kernel/acl/src/neon/FullyConnected.test.cpp
new file mode 100644
index 000000000..d4c95e4cb
--- /dev/null
+++ b/libs/kernel/acl/src/neon/FullyConnected.test.cpp
@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define ACL_CORE_FUNC_NAME neon::fullyConnectedFloat32
+#define ACL_TEST(tc, t) TEST(tc, neon_##t)
+
+#include "../FullyConnected.test.h"
+
diff --git a/libs/kernel/acl/src/neon/Pooling.cpp b/libs/kernel/acl/src/neon/Pooling.cpp
new file mode 100644
index 000000000..5c58ae0b5
--- /dev/null
+++ b/libs/kernel/acl/src/neon/Pooling.cpp
@@ -0,0 +1,128 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <OperationsUtils.h>
+#include <arm_compute/core/TensorShape.h>
+#include <arm_compute/core/TensorInfo.h>
+#include "../IO_accessor.h"
+#include "../shape.h"
+#include "../NEUniqueTensor.h"
+
+#include <cassert>
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+namespace neon {
+
+bool maxPoolFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height,
+ int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape)
+{
+ arm_compute::TensorShape input_shape = util::fromNNShape(inputShape);
+ arm_compute::TensorShape output_shape = util::fromNNShape(outputShape);
+
+ std::vector<std::shared_ptr<arm_compute::IFunction>> fns;
+
+ arm_compute::PadStrideInfo pad_info = arm_compute::PadStrideInfo(stride_width, stride_height,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ arm_compute::DimensionRoundingType::FLOOR);
+
+ arm_compute::PoolingLayerInfo maxpool_info = arm_compute::PoolingLayerInfo(arm_compute::PoolingType::MAX,
+ arm_compute::Size2D(filter_width,filter_height),
+ pad_info, false);
+
+ NEUniqueTensor input(arm_compute::TensorInfo(input_shape, arm_compute::Format::F32));
+ NEUniqueTensor output(arm_compute::TensorInfo(output_shape, arm_compute::Format::F32));
+
+ auto pool_f = std::make_shared<arm_compute::NEPoolingLayer>();
+ pool_f->configure(input.ptr(), output.ptr(), maxpool_info);
+
+ fns.emplace_back(pool_f);
+
+ util::insertFusedActivationLayer<NEUniqueTensor, arm_compute::NEActivationLayer>(output, activation, fns);
+
+ input.allocate();
+ output.allocate();
+
+ TensorAccess<InputAccessor>(input.ref(), inputData, inputShape);
+
+ for (const auto &fn : fns)
+ {
+ fn->run();
+ }
+
+ TensorAccess<OutputAccessor>(output.ref(), outputData, outputShape);
+
+ return true;
+}
+
+bool averagePoolFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height,
+ int32_t activation,
+ float* outputData, const nnfw::rt::Shape& outputShape)
+{
+ arm_compute::TensorShape input_shape = util::fromNNShape(inputShape);
+ arm_compute::TensorShape output_shape = util::fromNNShape(outputShape);
+
+ std::vector<std::shared_ptr<arm_compute::IFunction>> fns;
+
+ arm_compute::PadStrideInfo pad_info = arm_compute::PadStrideInfo(stride_width, stride_height,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ arm_compute::DimensionRoundingType::FLOOR);
+
+ arm_compute::PoolingLayerInfo pool_info = arm_compute::PoolingLayerInfo(arm_compute::PoolingType::AVG,
+ arm_compute::Size2D(filter_width,filter_height),
+ pad_info, true);
+
+ NEUniqueTensor input(arm_compute::TensorInfo(input_shape, arm_compute::Format::F32));
+ NEUniqueTensor output(arm_compute::TensorInfo(output_shape, arm_compute::Format::F32));
+
+ auto pool_f = std::make_shared<arm_compute::NEPoolingLayer>();
+ pool_f->configure(input.ptr(), output.ptr(), pool_info);
+
+ fns.emplace_back(pool_f);
+
+ util::insertFusedActivationLayer<NEUniqueTensor, arm_compute::NEActivationLayer>(output, activation, fns);
+
+ input.allocate();
+ output.allocate();
+
+ TensorAccess<InputAccessor>(input.ref(), inputData, inputShape);
+
+ for (const auto &fn : fns)
+ {
+ fn->run();
+ }
+
+ TensorAccess<OutputAccessor>(output.ref(), outputData, outputShape);
+
+ return true;
+}
+
+} // namespace neon
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
diff --git a/libs/kernel/acl/src/neon/Pooling.test.cpp b/libs/kernel/acl/src/neon/Pooling.test.cpp
new file mode 100644
index 000000000..4e6593921
--- /dev/null
+++ b/libs/kernel/acl/src/neon/Pooling.test.cpp
@@ -0,0 +1,436 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <gtest/gtest.h>
+#include <OperationsUtils.h>
+#include <kernel/acl/nnfw_kernel_acl.h>
+#include <arm_compute/core/Types.h>
+#include <kernel/acl/Pooling.h>
+
+#include "../util.h"
+
+using namespace nnfw::kernel::acl;
+
+TEST(KernelACL_TC, neon_maxPoolFloat32_3x3to1x1)
+{
+ util::TensorWrapper input({1,3,3,1});
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ int32_t padding_left = 0;
+ int32_t padding_right = 0;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 0;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t filter_width = 3;
+ int32_t filter_height = 3;
+
+ float outputData[1];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,1,1,1}, 1.0, 0 };
+ bool bret;
+
+ float value = 1.0f;
+ input.initValue([&value](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return value++;
+ });
+
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ int32_t activation = ANEURALNETWORKS_FUSED_NONE;
+
+ bret = neon::maxPoolFloat32(input.ptr<float>(), inputShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = { 9.0f };
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, neon_maxPoolFloat32_3x3to1x1_RELU)
+{
+ util::TensorWrapper input({1,3,3,1});
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ int32_t padding_left = 0;
+ int32_t padding_right = 0;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 0;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t filter_width = 3;
+ int32_t filter_height = 3;
+
+ float outputData[1];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,1,1,1}, 1.0, 0 };
+ bool bret;
+
+ float value = -1.0f;
+ input.initValue([&value](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return value--;
+ });
+
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ int32_t activation = ANEURALNETWORKS_FUSED_RELU;
+
+ bret = neon::maxPoolFloat32(input.ptr<float>(), inputShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = { 0.0f };
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, neon_maxPoolFloat32_3x3to2x2)
+{
+ util::TensorWrapper input({1,3,3,1});
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ int32_t padding_left = 0;
+ int32_t padding_right = 1;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 1;
+ int32_t stride_width = 2;
+ int32_t stride_height = 2;
+ int32_t filter_width = 2;
+ int32_t filter_height = 2;
+
+ float outputData[4];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,2,2,1}, 1.0, 0 };
+ bool bret;
+
+ float value = 1.0f;
+ input.initValue([&value](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return value++;
+ });
+
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ int32_t activation = ANEURALNETWORKS_FUSED_NONE;
+
+ bret = neon::maxPoolFloat32(input.ptr<float>(), inputShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = {
+ 5.0f, 6.0f,
+ 8.0f, 9.0f
+ };
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, neon_maxPoolFloat32_147x147to73x73)
+{
+ util::TensorWrapper input({1,147,147,64});
+ util::TensorWrapper output({1,73,73,64});
+
+ int32_t padding_left = 0;
+ int32_t padding_right = 0;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 0;
+ int32_t stride_width = 2;
+ int32_t stride_height = 2;
+ int32_t filter_width = 3;
+ int32_t filter_height = 3;
+
+ input.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 1.0f;
+ });
+
+ output.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 0.f;
+ });
+
+ int32_t activation = ANEURALNETWORKS_FUSED_NONE;
+
+ bool bret = neon::maxPoolFloat32(input.ptr<float>(), input.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ output.ptr<float>(), output.shape());
+ EXPECT_EQ(bret, true);
+
+ util::TensorWrapper expected({1,73,73,64});
+ expected.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 1.0f;
+ });
+
+ EXPECT_EQ(output, expected);
+}
+
+TEST(KernelACL_TC, neon_maxPoolFloat32_71x71to35x35)
+{
+ util::TensorWrapper input({1,71,71,192});
+ util::TensorWrapper output({1,35,35,192});
+
+ int32_t padding_left = 0;
+ int32_t padding_right = 0;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 0;
+ int32_t stride_width = 2;
+ int32_t stride_height = 2;
+ int32_t filter_width = 3;
+ int32_t filter_height = 3;
+
+ input.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 1.0f;
+ });
+
+ output.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 0.f;
+ });
+
+ int32_t activation = ANEURALNETWORKS_FUSED_NONE;
+
+ bool bret = neon::maxPoolFloat32(input.ptr<float>(), input.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ output.ptr<float>(), output.shape());
+ EXPECT_EQ(bret, true);
+
+ util::TensorWrapper expected({1,35,35,192});
+ expected.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 1.0f;
+ });
+
+ EXPECT_EQ(output, expected);
+}
+
+TEST(KernelACL_TC, neon_averagePoolFloat32_3x3to1x1)
+{
+ util::TensorWrapper input({1,3,3,1});
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ int32_t padding_left = 0;
+ int32_t padding_right = 0;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 0;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t filter_width = 3;
+ int32_t filter_height = 3;
+
+ float outputData[1];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,1,1,1}, 1.0, 0 };
+ bool bret;
+
+ float value = 1.0f;
+ input.initValue([&value](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return value++;
+ });
+
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ int32_t activation = ANEURALNETWORKS_FUSED_NONE;
+
+ bret = neon::averagePoolFloat32(input.ptr<float>(), inputShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = { 5.0f };
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, neon_averagePoolFloat32_3x3to1x1_RELU)
+{
+ util::TensorWrapper input({1,3,3,1});
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ int32_t padding_left = 0;
+ int32_t padding_right = 0;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 0;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t filter_width = 3;
+ int32_t filter_height = 3;
+
+ float outputData[1];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,1,1,1}, 1.0, 0 };
+ bool bret;
+
+ float value = 3.0f;
+ input.initValue([&value](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return value--;
+ });
+
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ int32_t activation = ANEURALNETWORKS_FUSED_RELU;
+
+ bret = neon::averagePoolFloat32(input.ptr<float>(), inputShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = { 0.0f };
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, neon_averagePoolFloat32_3x3to2x2)
+{
+ util::TensorWrapper input({1,3,3,1});
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 };
+ int32_t padding_left = 0;
+ int32_t padding_right = 0;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 0;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t filter_width = 2;
+ int32_t filter_height = 2;
+
+ float outputData[4];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,2,2,1}, 1.0, 0 };
+ bool bret;
+
+ float value = 1.0f;
+ input.initValue([&value](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return value++;
+ });
+
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ int32_t activation = ANEURALNETWORKS_FUSED_NONE;
+
+ bret = neon::averagePoolFloat32(input.ptr<float>(), inputShape,
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = {
+ 3.0f, 4.0f,
+ 6.0f, 7.0f
+ };
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, neon_averagePoolFloat32_35x35to35x35)
+{
+ std::vector<uint32_t> dims = {1,35,35,192};
+ util::TensorWrapper input(dims);
+ util::TensorWrapper output(dims);
+
+ int32_t padding_left = 1;
+ int32_t padding_right = 1;
+ int32_t padding_top = 1;
+ int32_t padding_bottom = 1;
+ int32_t stride_width = 1;
+ int32_t stride_height = 1;
+ int32_t filter_width = 3;
+ int32_t filter_height = 3;
+
+ input.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 1.0f;
+ });
+
+ output.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 0.f;
+ });
+
+ int32_t activation = ANEURALNETWORKS_FUSED_NONE;
+
+ bool bret = neon::averagePoolFloat32(input.ptr<float>(), input.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ output.ptr<float>(), output.shape());
+ EXPECT_EQ(bret, true);
+
+ util::TensorWrapper expected(dims);
+ expected.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 1.0f;
+ });
+
+ EXPECT_EQ(output, expected);
+}
+
+TEST(KernelACL_TC, neon_averagePoolFloat32_8x8to1x1)
+{
+ util::TensorWrapper input({1,8,8,2048});
+ util::TensorWrapper output({1,1,1,2048});
+
+ int32_t padding_left = 0;
+ int32_t padding_right = 0;
+ int32_t padding_top = 0;
+ int32_t padding_bottom = 0;
+ int32_t stride_width = 2;
+ int32_t stride_height = 2;
+ int32_t filter_width = 8;
+ int32_t filter_height = 8;
+
+ input.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 1.0f;
+ });
+
+ output.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 0.f;
+ });
+
+ int32_t activation = ANEURALNETWORKS_FUSED_NONE;
+
+ bool bret = neon::averagePoolFloat32(input.ptr<float>(), input.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ activation,
+ output.ptr<float>(), output.shape());
+ EXPECT_EQ(bret, true);
+
+ util::TensorWrapper expected({1,1,1,2048});
+ expected.initValue([](uint32_t n, uint32_t c, uint32_t h, uint32_t w) {
+ return 1.0f;
+ });
+
+ EXPECT_EQ(output, expected);
+}
diff --git a/libs/kernel/acl/src/neon/Reshape.cpp b/libs/kernel/acl/src/neon/Reshape.cpp
new file mode 100644
index 000000000..cef84c7f3
--- /dev/null
+++ b/libs/kernel/acl/src/neon/Reshape.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <OperationsUtils.h>
+#include <arm_compute/core/TensorShape.h>
+#include <arm_compute/core/TensorInfo.h>
+
+// TODO: fix include path in CMakeFiles
+#include "../IO_accessor.h"
+#include "../shape.h"
+#include "../NEUniqueTensor.h"
+#include "../Reshape.h"
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+
+namespace neon {
+
+static void sync_scheduler() {
+ arm_compute::CLScheduler::get().sync();
+}
+
+bool reshapeGeneric(const void* inputData, const nnfw::rt::Shape& inputShape,
+ void* outputData, const nnfw::rt::Shape& outputShape) {
+ return common::reshapeGeneric<NEUniqueTensor, arm_compute::NEReshapeLayer>
+ (inputData, inputShape, outputData, outputShape, sync_scheduler);
+}
+
+} // namespace neon
+
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
+
diff --git a/libs/kernel/acl/src/neon/Reshape.test.cpp b/libs/kernel/acl/src/neon/Reshape.test.cpp
new file mode 100644
index 000000000..9aca45e7e
--- /dev/null
+++ b/libs/kernel/acl/src/neon/Reshape.test.cpp
@@ -0,0 +1,20 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define ACL_CORE_FUNC_NAME neon::reshapeGeneric
+#define ACL_TEST(tc, t) TEST(tc, neon_##t)
+
+#include "../Reshape.test.h"
diff --git a/libs/kernel/acl/src/neon/Softmax.cpp b/libs/kernel/acl/src/neon/Softmax.cpp
new file mode 100644
index 000000000..79d614418
--- /dev/null
+++ b/libs/kernel/acl/src/neon/Softmax.cpp
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <OperationsUtils.h>
+#include <NeuralNetworks.h>
+
+#include <arm_compute/core/TensorShape.h>
+#include <arm_compute/core/TensorInfo.h>
+#include "../IO_accessor.h"
+#include "../shape.h"
+#include "../util.h"
+#include "../NEUniqueTensor.h"
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+namespace neon {
+
+bool softmaxFloat32(const float* inputData, const nnfw::rt::Shape& inputShape,
+ const float beta,
+ float* outputData, const nnfw::rt::Shape& outputShape)
+{
+ arm_compute::TensorShape input_shape = util::fromNNShape(inputShape);
+ arm_compute::TensorShape output_shape = util::fromNNShape(outputShape);
+
+ NEUniqueTensor input(arm_compute::TensorInfo(input_shape, arm_compute::Format::F32));
+ NEUniqueTensor output(arm_compute::TensorInfo(output_shape, arm_compute::Format::F32));
+
+ auto softmax_f = std::make_shared<arm_compute::NESoftmaxLayer>();
+ softmax_f->configure(input.ptr(), output.ptr(), beta);
+
+ input.allocate();
+ output.allocate();
+
+ if (inputShape.dimensions.size() == 4)
+ {
+ TensorAccess<InputAccessor>(input.ref(), inputData, inputShape);
+
+ softmax_f->run();
+
+ TensorAccess<OutputAccessor>(output.ref(), outputData, outputShape);
+ }
+ else if (inputShape.dimensions.size() == 2)
+ {
+ // Softmax comes with 1xN matrix and this is translated to N vector in arm_compute::TensorShape
+ TensorAccess<VectorInputAccessor>(input.ref(), inputData, inputShape);
+
+ softmax_f->run();
+
+ TensorAccess<VectorOutputAccessor>(output.ref(), outputData, outputShape);
+ }
+ else
+ {
+ assert("undefined dimension of input" && 0);
+ return false;
+ }
+
+ return true;
+}
+
+} // namespace neon
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
diff --git a/libs/kernel/acl/src/neon/Softmax.test.cpp b/libs/kernel/acl/src/neon/Softmax.test.cpp
new file mode 100644
index 000000000..988f55078
--- /dev/null
+++ b/libs/kernel/acl/src/neon/Softmax.test.cpp
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <gtest/gtest.h>
+#include <OperationsUtils.h>
+#include <kernel/acl/nnfw_kernel_acl.h>
+#include <arm_compute/core/Types.h>
+#include <kernel/acl/Softmax.h>
+
+#include "../util.h"
+
+using namespace nnfw::kernel::acl;
+
+TEST(KernelACL_TC, neon_softmaxFloat32_1xn)
+{
+ float inputData[4];
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,4}, 1.0, 0 };
+ float outputData[4];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,4}, 1.0, 0 };
+ const float beta = 1.0f;
+ bool bret;
+
+ util::initData(inputData, sizeof(inputData) / sizeof(inputData[0]), 1.0);
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ bret = neon::softmaxFloat32(inputData, inputShape, beta, outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = { 0.25f, 0.25f, 0.25f, 0.25f };
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, neon_softmaxFloat32_4d)
+{
+ float inputData[4];
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,1,4,1}, 1.0, 0 };
+ float outputData[4];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,1,4,1}, 1.0, 0 };
+ const float beta = 1.0f;
+ bool bret;
+
+ util::initData(inputData, sizeof(inputData) / sizeof(inputData[0]), 1.0);
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ bret = neon::softmaxFloat32(inputData, inputShape, beta, outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = { 0.25f, 0.25f, 0.25f, 0.25f };
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, neon_softmaxFloat32_1xn_seq)
+{
+ float inputData[4];
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,1,4,1}, 1.0, 0 };
+ float outputData[4];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,1,4,1}, 1.0, 0 };
+ const float beta = 1.0f;
+ bool bret;
+
+ util::initData_Increasing(inputData, sizeof(inputData) / sizeof(inputData[0]), 1.0);
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ bret = neon::softmaxFloat32(inputData, inputShape, beta, outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = {0.032058603280085, 0.0871443187420326, 0.23688281808991, 0.643914259887972};
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
+
+TEST(KernelACL_TC, neon_softmaxFloat32_4d_seq)
+{
+ float inputData[4];
+ const nnfw::rt::Shape inputShape = { OperandType::FLOAT32, {1,1,4,1}, 1.0, 0 };
+ float outputData[4];
+ const nnfw::rt::Shape outputShape = { OperandType::FLOAT32, {1,1,4,1}, 1.0, 0 };
+ const float beta = 1.0f;
+ bool bret;
+
+ util::initData_Increasing(inputData, sizeof(inputData) / sizeof(inputData[0]), 1.0);
+ util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0);
+
+ bret = neon::softmaxFloat32(inputData, inputShape, beta, outputData, outputShape);
+ EXPECT_EQ(bret, true);
+
+ float expectData[] = {0.032058603280085, 0.0871443187420326, 0.23688281808991, 0.643914259887972};
+ bret = util::compareData(outputData, expectData, outputShape);
+ EXPECT_EQ(bret, true);
+}
diff --git a/libs/kernel/acl/src/shape.cpp b/libs/kernel/acl/src/shape.cpp
new file mode 100644
index 000000000..3c976ae94
--- /dev/null
+++ b/libs/kernel/acl/src/shape.cpp
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <cassert>
+
+#include "shape.h"
+
+namespace nnfw {
+namespace rt {
+
+// TODO remove from this source and use it from runtime
+uint32_t getSizeOfDimension(const Shape& shape, uint32_t dimensionIdx) {
+ if (dimensionIdx >= shape.dimensions.size()) {
+ // TODO, log the error
+ return 0;
+ }
+ return shape.dimensions[dimensionIdx];
+}
+
+} // namespace rt
+} // namespace nnfw
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+namespace util {
+
+arm_compute::TensorShape fromVectorNNShape(const nnfw::rt::Shape& shape)
+{
+ assert(shape.dimensions.size() == 1);
+
+ const uint32_t len = nnfw::rt::getSizeOfDimension(shape, 0);
+
+ return arm_compute::TensorShape(len);
+}
+
+arm_compute::TensorShape fromMatrixNNShape(const nnfw::rt::Shape& shape)
+{
+ assert(shape.dimensions.size() == 2);
+
+ const uint32_t n = nnfw::rt::getSizeOfDimension(shape, 0);
+ const uint32_t c = nnfw::rt::getSizeOfDimension(shape, 1);
+
+ return arm_compute::TensorShape(c, n);
+}
+
+arm_compute::TensorShape fromNNShape(const nnfw::rt::Shape& shape)
+{
+ if( shape.dimensions.size() == 1 )
+ return fromVectorNNShape(shape);
+ else if( shape.dimensions.size() == 2 )
+ return fromMatrixNNShape(shape);
+
+ // TODO: need to treat 3D tensors.
+
+ assert(shape.dimensions.size() == 4);
+
+ // NNAPI assumes the following ordering:
+ //
+ // dim(0) -> N
+ // dim(1) -> H
+ // dim(2) -> W
+ // dim(3) -> C
+ //
+ uint32_t c = nnfw::rt::getSizeOfDimension(shape, 3);
+ uint32_t h = nnfw::rt::getSizeOfDimension(shape, 1);
+ uint32_t w = nnfw::rt::getSizeOfDimension(shape, 2);
+ uint32_t n = nnfw::rt::getSizeOfDimension(shape, 0);
+
+ return arm_compute::TensorShape(w, h, c, n);
+}
+
+} // namespace util
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
diff --git a/libs/kernel/acl/src/shape.h b/libs/kernel/acl/src/shape.h
new file mode 100644
index 000000000..902115ebd
--- /dev/null
+++ b/libs/kernel/acl/src/shape.h
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_KERNEL_ACL_SHAPE_H__
+#define __NNFW_KERNEL_ACL_SHAPE_H__
+
+#include <OperationsUtils.h>
+#include <arm_compute/core/TensorShape.h>
+#include <arm_compute/core/TensorInfo.h>
+#include <arm_compute/runtime/IFunction.h>
+#include <cassert>
+
+namespace nnfw {
+namespace rt {
+
+// TODO remove from this source and use it from runtime
+uint32_t getSizeOfDimension(const Shape& shape, uint32_t dimensionIdx);
+
+} // namespace rt
+} // namespace nnfw
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+namespace util {
+
+arm_compute::TensorShape fromVectorNNShape(const nnfw::rt::Shape& shape);
+arm_compute::TensorShape fromNNShape(const nnfw::rt::Shape& shape);
+
+template<class TensorT, class ActT>
+void insertFusedActivationLayer(TensorT& out, int activation,
+ std::vector<std::shared_ptr<arm_compute::IFunction>>& fns) {
+ auto relu_f = std::make_shared<ActT>();
+
+ switch(activation) {
+ case ANEURALNETWORKS_FUSED_NONE:
+ // DO NOTHING
+ return;
+
+ case ANEURALNETWORKS_FUSED_RELU:
+ {
+ const arm_compute::ActivationLayerInfo relu_info(arm_compute::ActivationLayerInfo::ActivationFunction::RELU);
+
+ // Do in-place update
+ relu_f->configure(out.ptr(), nullptr, relu_info);
+ }
+ break;
+
+ case ANEURALNETWORKS_FUSED_RELU1:
+ {
+ const arm_compute::ActivationLayerInfo relu_info(arm_compute::ActivationLayerInfo::ActivationFunction::BOUNDED_RELU, 1.f);
+
+ // Do in-place update
+ relu_f->configure(out.ptr(), nullptr, relu_info);
+ }
+ break;
+
+ case ANEURALNETWORKS_FUSED_RELU6:
+ {
+ const arm_compute::ActivationLayerInfo relu_info(arm_compute::ActivationLayerInfo::ActivationFunction::BOUNDED_RELU, 6.f);
+
+ // Do in-place update
+ relu_f->configure(out.ptr(), nullptr, relu_info);
+ }
+ break;
+
+ default:
+ assert("Undefined activation type." && 0);
+ break;
+ }
+
+ fns.emplace_back(relu_f);
+}
+
+} // namespace util
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
+
+#endif // __NNFW_KERNEL_ACL_SHAPE_H__
diff --git a/libs/kernel/acl/src/support.cpp b/libs/kernel/acl/src/support.cpp
new file mode 100644
index 000000000..d04aef59e
--- /dev/null
+++ b/libs/kernel/acl/src/support.cpp
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "support.h"
+
+namespace nnfw
+{
+namespace support
+{
+namespace nnapi
+{
+namespace feature
+{
+
+// TODO Extract this function as utility function
+// NOTE It is not a good design to access nnfw::rt::Shape nnfw_support_nnapi lib
+nnfw::util::feature::Shape asFeatureShape(const nnfw::rt::Shape& shape)
+{
+ // NNAPI assumes the following ordering:
+ //
+ // dim(0) -> N
+ // dim(1) -> H
+ // dim(2) -> W
+ // dim(3) -> C
+ //
+ int32_t c = nnfw::rt::getSizeOfDimension(shape, 3);
+ int32_t h = nnfw::rt::getSizeOfDimension(shape, 1);
+ int32_t w = nnfw::rt::getSizeOfDimension(shape, 2);
+
+ assert(nnfw::rt::getSizeOfDimension(shape, 0) == 1);
+
+ return nnfw::util::feature::Shape{c, h, w};
+}
+
+} // namespace feature
+} // namespace nnapi
+} // namespace support
+} // namespace nnfw
diff --git a/libs/kernel/acl/src/support.h b/libs/kernel/acl/src/support.h
new file mode 100644
index 000000000..751d2c6cb
--- /dev/null
+++ b/libs/kernel/acl/src/support.h
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_KERNEL_SUPPORT_H_TEMPORARY__
+#define __NNFW_KERNEL_SUPPORT_H_TEMPORARY__
+
+// NOTE these are not decided yet but need to be moved out from Conv2D
+// to separate NEON implementation to it's folder
+// TODO move to some folder where it should be
+
+#include <cassert>
+
+#include "util/feature/Shape.h"
+
+#include <OperationsUtils.h>
+
+namespace nnfw
+{
+namespace support
+{
+namespace nnapi
+{
+namespace feature
+{
+
+// TODO Extract this function as utility function
+// NOTE It is not a good design to access nnfw::rt::Shape nnfw_support_nnapi lib
+nnfw::util::feature::Shape asFeatureShape(const nnfw::rt::Shape& shape);
+
+} // namespace feature
+} // namespace nnapi
+} // namespace support
+} // namespace nnfw
+
+#include <arm_compute/core/ITensor.h>
+
+#include "util/feature/Reader.h"
+
+namespace nnfw
+{
+namespace support
+{
+namespace acl
+{
+namespace feature
+{
+
+template<typename T> class Reader;
+
+template<> class Reader<float> final : public nnfw::util::feature::Reader<float>
+{
+public:
+ Reader(arm_compute::ITensor *tensor) : _tensor{tensor}
+ {
+ assert(tensor->info()->data_type() == arm_compute::DataType::F32);
+ }
+
+public:
+ float at(uint32_t ch, uint32_t row, uint32_t col) const override
+ {
+ return *ptr_to_element(ch, row, col);
+ }
+
+private:
+ float *ptr_to_element(uint32_t ch, uint32_t row, uint32_t col) const
+ {
+ // ARM Compute uses CHW ordering
+ return reinterpret_cast<float *>(_tensor->ptr_to_element(arm_compute::Coordinates{col, row, ch}));
+ }
+
+private:
+ arm_compute::ITensor *_tensor;
+};
+
+} // namespace feature
+} // namespace acl
+} // namespace support
+} // namespace nnfw
+
+#endif // __NNFW_KERNEL_SUPPORT_H_TEMPORARY__
diff --git a/libs/kernel/acl/src/util.cpp b/libs/kernel/acl/src/util.cpp
new file mode 100644
index 000000000..7e5df534e
--- /dev/null
+++ b/libs/kernel/acl/src/util.cpp
@@ -0,0 +1,108 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <util/fp32.h>
+
+#include "util.h"
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+namespace util {
+
+void initData(float* data, int num, float value)
+{
+ for (int i = 0; i < num; i++) {
+ *(data + i) = value;
+ }
+}
+
+void initData_Increasing(float* data, int num, float value)
+{
+ for (int i = 0; i < num; i++) {
+ *(data + i) = value;
+ value++;
+ }
+}
+
+// compareData
+// return true if result == expected with the shape info,
+// otherwise false
+bool compareData(const float* result, const float* expected, const nnfw::rt::Shape& shape)
+{
+ if (shape.dimensions.size() == 4)
+ {
+ // TODO fix indentation
+ uint32_t height = nnfw::rt::getSizeOfDimension(shape, 1);
+ uint32_t width = nnfw::rt::getSizeOfDimension(shape, 2);
+ uint32_t numitems = height * width;
+ for (int item = 0; item < numitems; item++) {
+ if (!::nnfw::util::fp32::epsilon_equal(*(result + item), *(expected + item), 1)) {
+ LOG(ERROR) << "compareData failed: result " << *(result + item)
+ << ", expected " << *(expected + item)
+ << ", diff " << ::nnfw::util::fp32::relative_diff(*(result + item), *(expected + item))
+ << std::endl;
+ return false;
+ }
+ }
+ }
+ else if (shape.dimensions.size() == 2)
+ {
+ uint32_t height = nnfw::rt::getSizeOfDimension(shape, 0);
+ uint32_t width = nnfw::rt::getSizeOfDimension(shape, 1);
+ uint32_t numitems = height * width;
+ for (int item = 0; item < numitems; item++) {
+ if (!::nnfw::util::fp32::epsilon_equal(*(result + item), *(expected + item), 1)) {
+ LOG(ERROR) << "compareData failed: result " << *(result + item)
+ << ", expected " << *(expected + item)
+ << ", diff " << ::nnfw::util::fp32::relative_diff(*(result + item), *(expected + item))
+ << std::endl;
+ return false;
+ }
+ }
+ }
+ else
+ {
+ // TODO: add a handler for rank 1 and 3
+ LOG(ERROR) << "Unhandled shape: " << shape.dimensions.size() << std::endl;
+ }
+ return true;
+}
+
+void NCHW2NHWC(const float* nchw, float* nhwc, const nnfw::rt::Shape& shape)
+{
+ uint32_t N = nnfw::rt::getSizeOfDimension(shape, 0);
+ uint32_t H = nnfw::rt::getSizeOfDimension(shape, 1);
+ uint32_t W = nnfw::rt::getSizeOfDimension(shape, 2);
+ uint32_t C = nnfw::rt::getSizeOfDimension(shape, 3);
+
+ for (uint32_t n = 0; n < N; n++) {
+ for (uint32_t c = 0; c < C; c++) {
+ for (uint32_t h = 0; h < H; h++) {
+ for (uint32_t w = 0; w < W; w++) {
+ uint32_t soffset = w + (h * W) + (c * W * H) + (n * W * H * C);
+ uint32_t doffset = c + (w * C) + (h * C * W) + (n * C * W * H);
+ *(nhwc + doffset) = *(nchw + soffset);
+ }
+ }
+ }
+ }
+}
+
+} // namespace util
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
diff --git a/libs/kernel/acl/src/util.h b/libs/kernel/acl/src/util.h
new file mode 100644
index 000000000..48ed02783
--- /dev/null
+++ b/libs/kernel/acl/src/util.h
@@ -0,0 +1,193 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_KERNEL_ACL_UTIL_H__
+#define __NNFW_KERNEL_ACL_UTIL_H__
+#include <OperationsUtils.h>
+
+#include <cmath>
+#include <cassert>
+#include <functional>
+
+namespace nnfw {
+namespace kernel {
+namespace acl {
+namespace util {
+
+// TODO: make a separate module.
+class TensorWrapper {
+public:
+ TensorWrapper(std::vector<uint32_t> dims,
+ OperandType type = OperandType::FLOAT32,
+ float scale = 1.0,
+ int32_t offset = 0)
+ :_shape{type, dims, scale, offset}
+ {
+
+ // currently, we support only FLOAT32 for now.
+ assert( type == OperandType::FLOAT32);
+
+ uint32_t size_bytes = sizeof(float);
+
+ _num_elems = 1;
+ for( auto& d: dims ) {
+ _num_elems *= d;
+ }
+
+ _data = new uint8_t[_num_elems * size_bytes];
+ }
+
+ ~TensorWrapper() {
+ delete [] _data;
+ }
+
+ const nnfw::rt::Shape shape() const {
+ return _shape;
+ }
+
+ uint32_t num_elems() const { return _num_elems; }
+
+ template<class T>
+ T at(const uint32_t& idx) const {
+ return reinterpret_cast<T*>(_data)[idx];
+ }
+
+ template<class T>
+ T& at(const uint32_t& idx) {
+ return reinterpret_cast<T*>(_data)[idx];
+ }
+
+ template<class T>
+ T* ptr() { return reinterpret_cast<T*>(_data); }
+
+ void initValue(float f) {
+ for( uint32_t i = 0; i < _num_elems; ++i ) {
+ at<float>(i) = f;
+ }
+ }
+
+ typedef std::function<float(uint32_t n, uint32_t c, uint32_t h, uint32_t w)> funcInit4;
+ void initValue(funcInit4 f) {
+ assert(_shape.dimensions.size() == 4);
+
+ int N = _shape.dimensions[0];
+ int H = _shape.dimensions[1];
+ int W = _shape.dimensions[2];
+ int C = _shape.dimensions[3];
+
+ for(int n = 0; n < N; ++n) {
+ for(int h = 0; h < H; ++h) {
+ for(int w = 0; w < W; ++w) {
+ for(int c = 0; c < C; ++c) {
+ uint32_t offset = n*H*W*C + h*W*C + w*C + c;
+ at<float>(offset) = f(n,c,h,w);
+ }
+ }
+ }
+ }
+ }
+
+ typedef std::function<float(uint32_t c, uint32_t h, uint32_t w)> funcInit3;
+ void initValue(funcInit3 f) {
+ assert(_shape.dimensions.size() == 3);
+
+ int C = _shape.dimensions[0];
+ int H = _shape.dimensions[1];
+ int W = _shape.dimensions[2];
+
+ for(int h = 0; h < H; ++h) {
+ for(int w = 0; w < W; ++w) {
+ for(int c = 0; c < C; ++c) {
+ uint32_t offset = h*W*C + w*C + c;
+ at<float>(offset) = f(c,h,w);
+ }
+ }
+ }
+ }
+
+ typedef std::function<float(uint32_t h, uint32_t w)> funcInit2;
+ void initValue(funcInit2 f) {
+ assert(_shape.dimensions.size() == 2);
+
+ int H = _shape.dimensions[0];
+ int W = _shape.dimensions[1];
+
+ for(int h = 0; h < H; ++h) {
+ for(int w = 0; w < W; ++w) {
+ uint32_t offset = h*W + w;
+ at<float>(offset) = f(h,w);
+ }
+ }
+ }
+
+ typedef std::function<float(uint32_t w)> funcInit1;
+ void initValue(funcInit1 f) {
+ assert(_shape.dimensions.size() == 1);
+
+ int W = _shape.dimensions[0];
+
+ for(int w = 0; w < W; ++w) {
+ uint32_t offset = w;
+ at<float>(offset) = f(w);
+ }
+ }
+
+ void initValue(std::vector<float> v) {
+ assert(v.size() == _num_elems);
+ for( uint32_t i = 0; i < _num_elems; ++i ) {
+ at<float>(i) = v[i];
+ }
+ }
+
+ bool operator==(const TensorWrapper &t) const {
+ // compare the shape
+ assert(num_elems() == t.num_elems());
+ assert(_shape.type == t.shape().type);
+ assert(_shape.scale == t.shape().scale);
+ assert(_shape.offset == t.shape().offset);
+ assert(_shape.dimensions == t.shape().dimensions);
+
+ // currently, we support only FLOAT32.
+ assert(_shape.type == OperandType::FLOAT32);
+
+ for( uint32_t i = 0; i < _num_elems; ++i ) {
+ if( std::fabs(static_cast<float>(at<float>(i) - t.at<float>(i))) > 0.001f ) {
+ std::cout << "Comparing [" << i << "] " << at<float>(i) << "," << t.at<float>(i) << std::endl;
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+private:
+ nnfw::rt::Shape _shape;
+ uint32_t _num_elems;
+ uint8_t* _data;
+};
+
+void initData(float* data, int num, float value);
+bool compareData(const float* result, const float* expected, const nnfw::rt::Shape& shape);
+void initData_Increasing(float* data, int num, float value);
+
+void NCHW2NHWC(const float* nchw, float* nhwc, const nnfw::rt::Shape& shape);
+
+} // namespace util
+} // namespace acl
+} // namespace kernel
+} // namespace nnfw
+
+#endif // __NNFW_KERNEL_ACL_UTIL_H__
diff --git a/libs/support/CMakeLists.txt b/libs/support/CMakeLists.txt
new file mode 100644
index 000000000..c91677266
--- /dev/null
+++ b/libs/support/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_subdirectory(tflite)
+add_subdirectory(nnapi)
diff --git a/libs/support/nnapi/CMakeLists.txt b/libs/support/nnapi/CMakeLists.txt
new file mode 100644
index 000000000..cd1f365cf
--- /dev/null
+++ b/libs/support/nnapi/CMakeLists.txt
@@ -0,0 +1,6 @@
+file(GLOB_RECURSE SOURCES "src/*.cpp")
+
+add_library(nnfw_support_nnapi ${SOURCES})
+set_property(TARGET nnfw_support_nnapi PROPERTY POSITION_INDEPENDENT_CODE ON)
+target_include_directories(nnfw_support_nnapi PUBLIC ${CMAKE_SOURCE_DIR}/include)
+target_link_libraries(nnfw_support_nnapi nnfw_util)
diff --git a/libs/support/nnapi/src/feature/Utils.cpp b/libs/support/nnapi/src/feature/Utils.cpp
new file mode 100644
index 000000000..62939ff4a
--- /dev/null
+++ b/libs/support/nnapi/src/feature/Utils.cpp
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "support/nnapi/feature/Utils.h"
+
+namespace nnfw
+{
+namespace support
+{
+namespace nnapi
+{
+namespace feature
+{
+
+uint32_t indexOf(const nnfw::util::feature::Shape &shape, uint32_t ch, uint32_t row, uint32_t col)
+{
+ uint32_t res = 0;
+
+ // NNAPI assumes that NHWC ordering for feature map
+ res += row * shape.W * shape.C;
+ res += col * shape.C;
+ res += ch;
+
+ return res;
+}
+
+} // namespace feature
+} // namespace nnapi
+} // namespace support
+} // namespace nnfw
diff --git a/libs/support/tflite/CMakeLists.txt b/libs/support/tflite/CMakeLists.txt
new file mode 100644
index 000000000..cccc7de3d
--- /dev/null
+++ b/libs/support/tflite/CMakeLists.txt
@@ -0,0 +1,10 @@
+file(GLOB_RECURSE SOURCES "src/*.cpp")
+file(GLOB_RECURSE TESTS "src/*.test.cpp")
+list(REMOVE_ITEM SOURCES ${TESTS})
+
+add_library(nnfw_support_tflite ${SOURCES})
+target_include_directories(nnfw_support_tflite PUBLIC ${CMAKE_SOURCE_DIR}/include)
+target_link_libraries(nnfw_support_tflite nnfw_util tensorflow-lite ${LIB_PTHREAD} dl)
+
+add_executable(nnfw_support_tflite_test_TensorView src/TensorView.test.cpp)
+target_link_libraries(nnfw_support_tflite_test_TensorView nnfw_support_tflite)
diff --git a/libs/support/tflite/src/Diff.cpp b/libs/support/tflite/src/Diff.cpp
new file mode 100644
index 000000000..f382df2d6
--- /dev/null
+++ b/libs/support/tflite/src/Diff.cpp
@@ -0,0 +1,262 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "support/tflite/Diff.h"
+
+#include "util/fp32.h"
+
+#include "util/tensor/IndexIterator.h"
+#include "util/tensor/IndexFormatter.h"
+#include "util/tensor/Zipper.h"
+
+#include <iostream>
+
+class DiffSummary : public TfLiteTensorComparator::Observer
+{
+public:
+ DiffSummary()
+ : max_abs_diff_index(0), max_abs_diff_value{0.0f},
+ max_rel_diff_index(0), max_rel_diff_value{0.0f}
+ {
+ // DO NOTHING
+ }
+public:
+ void notify(const nnfw::util::tensor::Index &index, float expected, float obtained) override;
+
+public:
+ nnfw::util::tensor::Index max_abs_diff_index;
+ float max_abs_diff_expected;
+ float max_abs_diff_obtained;
+ float max_abs_diff_value;
+
+ nnfw::util::tensor::Index max_rel_diff_index;
+ float max_rel_diff_expected;
+ float max_rel_diff_obtained;
+ float max_rel_diff_value;
+};
+
+void DiffSummary::notify(const nnfw::util::tensor::Index &index, float expected, float obtained)
+{
+ const auto abs_diff_value = std::fabs(expected - obtained);
+
+ if (max_abs_diff_value < abs_diff_value)
+ {
+ max_abs_diff_index = index;
+ max_abs_diff_value = abs_diff_value;
+ max_abs_diff_expected = expected;
+ max_abs_diff_obtained = obtained;
+ }
+
+ const auto rel_diff_value = nnfw::util::fp32::relative_diff(expected, obtained);
+
+ if (max_rel_diff_value < rel_diff_value)
+ {
+ max_rel_diff_index = index;
+ max_rel_diff_value = rel_diff_value;
+ max_rel_diff_expected = expected;
+ max_rel_diff_obtained = obtained;
+ }
+}
+
+std::vector<TfLiteTensorDiff>
+TfLiteTensorComparator::compare(const nnfw::support::tflite::TensorView<float> &expected,
+ const nnfw::support::tflite::TensorView<float> &obtained,
+ Observer *observer) const
+{
+ std::vector<TfLiteTensorDiff> res;
+
+ assert(expected.shape() == obtained.shape());
+
+ nnfw::util::tensor::zip(expected.shape(), expected, obtained) <<
+ [&] (const nnfw::util::tensor::Index &index, float expected_value, float obtained_value)
+ {
+ const auto relative_diff = nnfw::util::fp32::relative_diff(expected_value, obtained_value);
+
+ if (!_compare_fn(expected_value, obtained_value))
+ {
+ TfLiteTensorDiff diff(index);
+
+ diff.expected = expected_value;
+ diff.obtained = obtained_value;
+
+ res.emplace_back(diff);
+ }
+
+ // Update max_diff_index, if necessary
+ if (observer != nullptr)
+ {
+ observer->notify(index, expected_value, obtained_value);
+ }
+ };
+
+ return res;
+}
+
+bool TfLiteInterpMatchApp::run(::tflite::Interpreter &interp, ::tflite::Interpreter &nnapi) const
+{
+ assert(interp.outputs() == nnapi.outputs());
+
+ for (const auto &id : interp.outputs())
+ {
+ const auto expected = nnfw::support::tflite::TensorView<float>::make(interp, id);
+ const auto obtained = nnfw::support::tflite::TensorView<float>::make(nnapi, id);
+
+ DiffSummary summary;
+
+ auto diffs = _comparator.compare(expected, obtained, &summary);
+
+ if (diffs.size() == 0)
+ {
+ std::cout << " Tensor #" << id << ": MATCHED" << std::endl;
+ }
+ else
+ {
+ std::cout << " Tensor #" << id << ": UNMATCHED" << std::endl;
+ std::cout << " " << diffs.size() << " diffs are detected" << std::endl;
+ }
+
+ // Print out max_diff
+ if (summary.max_abs_diff_value > 0)
+ {
+ std::cout << " Max absolute diff at [" << nnfw::util::tensor::IndexFormatter(summary.max_abs_diff_index) << "]" << std::endl;
+ std::cout << " expected: " << summary.max_abs_diff_expected << std::endl;
+ std::cout << " obtained: " << summary.max_abs_diff_obtained << std::endl;
+ std::cout << " absolute diff: " << summary.max_abs_diff_value << std::endl;
+ }
+
+ if (summary.max_rel_diff_value > 0)
+ {
+ const auto tolerance_level = summary.max_rel_diff_value / FLT_EPSILON;
+
+ std::cout << " Max relative diff at [" << nnfw::util::tensor::IndexFormatter(summary.max_rel_diff_index) << "]" << std::endl;
+ std::cout << " expected: " << summary.max_rel_diff_expected << std::endl;
+ std::cout << " obtained: " << summary.max_rel_diff_obtained << std::endl;
+ std::cout << " relative diff: " << summary.max_rel_diff_value << std::endl;
+ std::cout << " (tolerance level = " << tolerance_level << ")" << std::endl;
+ }
+
+ if (diffs.size() > 0)
+ {
+ if (_verbose != 0)
+ {
+ std::cout << " ---- Details ---" << std::endl;
+ for (const auto &diff : diffs)
+ {
+ const auto absolute_diff = std::fabs(diff.expected - diff.obtained);
+ const auto relative_diff = nnfw::util::fp32::relative_diff(diff.expected, diff.obtained);
+ const auto tolerance_level = relative_diff / FLT_EPSILON;
+
+ std::cout << " Diff at [" << nnfw::util::tensor::IndexFormatter(diff.index) << "]" << std::endl;
+ std::cout << " expected: " << diff.expected << std::endl;
+ std::cout << " obtained: " << diff.obtained << std::endl;
+ std::cout << " absolute diff: " << absolute_diff << std::endl;
+ std::cout << " relative diff: " << relative_diff << std::endl;
+ std::cout << " (tolerance level = " << tolerance_level << ")" << std::endl;
+ }
+ }
+
+ return false;
+ }
+ }
+
+ return true;
+}
+
+#include "util/tensor/Object.h"
+
+//
+// Random Test Runner
+//
+int RandomTestRunner::run(const nnfw::support::tflite::interp::Builder &builder)
+{
+ auto pure = builder.build();
+ auto nnapi = builder.build();
+
+ pure->UseNNAPI(false);
+ nnapi->UseNNAPI(true);
+
+ // Allocate Tensors
+ pure->AllocateTensors();
+ nnapi->AllocateTensors();
+
+ assert(pure->inputs() == nnapi->inputs());
+
+ // Fill IFM with random numbers
+ auto ifm_gen = [this] (const nnfw::util::tensor::Shape &, const nnfw::util::tensor::Index &)
+ {
+ // TODO Allow users to set min/max and distribution
+ std::normal_distribution<float> dist(0.0f, 2.0f);
+ return dist(_rand);
+ };
+
+ for (const auto id : pure->inputs())
+ {
+ auto pure_view = nnfw::support::tflite::TensorView<float>::make(*pure, id);
+ auto nnapi_view = nnfw::support::tflite::TensorView<float>::make(*nnapi, id);
+
+ assert(pure_view.shape() == nnapi_view.shape());
+
+ const nnfw::util::tensor::Object<float> data(pure_view.shape(), ifm_gen);
+
+ assert(pure_view.shape() == data.shape());
+
+ nnfw::util::tensor::iterate(pure_view.shape()) << [&] (const nnfw::util::tensor::Index &ind)
+ {
+ const auto value = data.at(ind);
+
+ pure_view.at(ind) = value;
+ nnapi_view.at(ind) = value;
+ };
+ }
+
+ std::cout << "[NNAPI TEST] Run T/F Lite Interpreter without NNAPI" << std::endl;
+ pure->Invoke();
+
+ std::cout << "[NNAPI TEST] Run T/F Lite Interpreter with NNAPI" << std::endl;
+ nnapi->Invoke();
+
+ // Compare OFM
+ std::cout << "[NNAPI TEST] Compare the result" << std::endl;
+
+ const auto tolerance = _param.tolerance;
+
+ auto equals = [tolerance] (float lhs, float rhs)
+ {
+ // NOTE Hybrid approach
+ // TODO Allow users to set tolerance for absolute_epsilon_equal
+ if (nnfw::util::fp32::absolute_epsilon_equal(lhs, rhs))
+ {
+ return true;
+ }
+
+ return nnfw::util::fp32::epsilon_equal(lhs, rhs, tolerance);
+ };
+
+ TfLiteTensorComparator comparator(equals);
+ TfLiteInterpMatchApp app(comparator);
+
+ app.verbose() = _param.verbose;
+
+ bool res = app.run(*pure, *nnapi);
+
+ if (!res)
+ {
+ return 255;
+ }
+
+ std::cout << "[NNAPI TEST] PASSED" << std::endl;
+ return 0;
+}
diff --git a/libs/support/tflite/src/FeatureView.cpp b/libs/support/tflite/src/FeatureView.cpp
new file mode 100644
index 000000000..50f599d2e
--- /dev/null
+++ b/libs/support/tflite/src/FeatureView.cpp
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "support/tflite/FeatureView.h"
+#include "support/tflite/TensorUtils.h"
+
+#include <cassert>
+
+namespace nnfw
+{
+namespace support
+{
+namespace tflite
+{
+
+nnfw::util::feature::Shape getFeatureShape(const TfLiteTensor *tensor)
+{
+ nnfw::util::feature::Shape shape;
+
+ shape.C = tensor->dims->data[3];
+ shape.H = tensor->dims->data[1];
+ shape.W = tensor->dims->data[2];
+
+ return shape;
+}
+
+FeatureView<float>::FeatureView(::tflite::Interpreter &interp, const InputIndex &index)
+{
+ const auto tensor_index = interp.inputs().at(index.asInt());
+ auto tensor_ptr = interp.tensor(tensor_index);
+
+ assert(isFloatTensor(tensor_ptr));
+ assert(isFeatureTensor(tensor_ptr));
+
+ _shape = getFeatureShape(tensor_ptr);
+ _base = interp.typed_tensor<float>(tensor_index);
+}
+
+FeatureView<float>::FeatureView(::tflite::Interpreter &interp, const OutputIndex &index)
+{
+ const auto tensor_index = interp.outputs().at(index.asInt());
+ auto tensor_ptr = interp.tensor(tensor_index);
+
+ assert(isFloatTensor(tensor_ptr));
+ assert(isFeatureTensor(tensor_ptr));
+
+ _shape = getFeatureShape(tensor_ptr);
+ _base = interp.typed_tensor<float>(tensor_index);
+}
+
+float FeatureView<float>::at(uint32_t ch, uint32_t row, uint32_t col) const
+{
+ return *(_base + getElementOffset(ch, row, col));
+}
+
+float &FeatureView<float>::at(uint32_t ch, uint32_t row, uint32_t col)
+{
+ return *(_base + getElementOffset(ch, row, col));
+}
+
+} // namespace tflite
+} // namespace support
+} // namespace nnfw
diff --git a/libs/support/tflite/src/TensorView.cpp b/libs/support/tflite/src/TensorView.cpp
new file mode 100644
index 000000000..9e164acc2
--- /dev/null
+++ b/libs/support/tflite/src/TensorView.cpp
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "support/tflite/TensorView.h"
+
+#include <cassert>
+
+namespace nnfw
+{
+namespace support
+{
+namespace tflite
+{
+
+TensorView<float>::TensorView(const nnfw::util::tensor::Shape &shape, float *base) : _shape{shape}, _base{base}
+{
+ // Set 'stride'
+ _stride.init(_shape);
+}
+
+float TensorView<float>::at(const nnfw::util::tensor::Index &index) const
+{
+ const auto offset = _stride.offset(index);
+
+ return *(_base + offset);
+}
+
+float &TensorView<float>::at(const nnfw::util::tensor::Index &index)
+{
+ const auto offset = _stride.offset(index);
+
+ return *(_base + offset);
+}
+
+TensorView<float> TensorView<float>::make(::tflite::Interpreter &interp, int tensor_index)
+{
+ auto tensor_ptr = interp.tensor(tensor_index);
+
+ // TODO Enable the following assets
+ // assert(isFloatTensor(tensor_ptr));
+ // assert(isFeatureTensor(tensor_ptr));
+
+ // Set 'shape'
+ nnfw::util::tensor::Shape shape(tensor_ptr->dims->size);
+
+ for (uint32_t axis = 0; axis < shape.rank(); ++axis)
+ {
+ shape.dim(axis) = tensor_ptr->dims->data[axis];
+ }
+
+ return TensorView<float>(shape, interp.typed_tensor<float>(tensor_index));
+}
+
+} // namespace tflite
+} // namespace support
+} // namespace nnfw
diff --git a/libs/support/tflite/src/TensorView.test.cpp b/libs/support/tflite/src/TensorView.test.cpp
new file mode 100644
index 000000000..75993a6da
--- /dev/null
+++ b/libs/support/tflite/src/TensorView.test.cpp
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "support/tflite/TensorView.h"
+
+#include <cassert>
+
+int main(int argc, char **argv)
+{
+ float value[6] = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f };
+
+ const nnfw::util::tensor::Shape shape{2, 3};
+ const nnfw::support::tflite::TensorView<float> view{shape, value};
+
+ assert(view.at(nnfw::util::tensor::Index{0, 0}) == 1.0f);
+ assert(view.at(nnfw::util::tensor::Index{0, 1}) == 2.0f);
+ assert(view.at(nnfw::util::tensor::Index{0, 2}) == 3.0f);
+ assert(view.at(nnfw::util::tensor::Index{1, 0}) == 4.0f);
+ assert(view.at(nnfw::util::tensor::Index{1, 1}) == 5.0f);
+ assert(view.at(nnfw::util::tensor::Index{1, 2}) == 6.0f);
+
+ return 0;
+}
diff --git a/libs/support/tflite/src/interp/FlatBufferBuilder.cpp b/libs/support/tflite/src/interp/FlatBufferBuilder.cpp
new file mode 100644
index 000000000..f46c74652
--- /dev/null
+++ b/libs/support/tflite/src/interp/FlatBufferBuilder.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "support/tflite/interp/FlatBufferBuilder.h"
+
+#include <tensorflow/contrib/lite/kernels/register.h>
+
+namespace nnfw
+{
+namespace support
+{
+namespace tflite
+{
+namespace interp
+{
+
+std::unique_ptr<::tflite::Interpreter> FlatBufferBuilder::build(void) const
+{
+ std::unique_ptr<::tflite::Interpreter> interpreter;
+
+ ::tflite::ops::builtin::BuiltinOpResolver resolver;
+
+ ::tflite::InterpreterBuilder builder(_model, resolver);
+
+ builder(&interpreter);
+
+ return std::move(interpreter);
+}
+
+} // namespace interp
+} // namespace tflite
+} // namespace support
+} // namespace nnfw
diff --git a/libs/support/tflite/src/interp/FunctionBuilder.cpp b/libs/support/tflite/src/interp/FunctionBuilder.cpp
new file mode 100644
index 000000000..65783bd37
--- /dev/null
+++ b/libs/support/tflite/src/interp/FunctionBuilder.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "support/tflite/interp/FunctionBuilder.h"
+
+namespace nnfw
+{
+namespace support
+{
+namespace tflite
+{
+namespace interp
+{
+
+std::unique_ptr<::tflite::Interpreter> FunctionBuilder::build(void) const
+{
+ auto res = std::unique_ptr<::tflite::Interpreter>{new ::tflite::Interpreter};
+
+ _fn(*res);
+
+ return std::move(res);
+}
+
+} // namespace interp
+} // namespace tflite
+} // namespace support
+} // namespace nnfw
diff --git a/libs/util/CMakeLists.txt b/libs/util/CMakeLists.txt
new file mode 100644
index 000000000..565aaf75e
--- /dev/null
+++ b/libs/util/CMakeLists.txt
@@ -0,0 +1,17 @@
+# Library `nnfw_util`
+set(NNFW_UTILITY_SRCS src/environment.cpp)
+list(APPEND NNFW_UTILITY_SRCS src/tensor/Shape.cpp)
+list(APPEND NNFW_UTILITY_SRCS src/tensor/NonIncreasingStride.cpp)
+list(APPEND NNFW_UTILITY_SRCS src/tensor/IndexFormatter.cpp)
+
+set(NNFW_INCLUDE_DIR include)
+
+add_library(nnfw_util SHARED ${NNFW_UTILITY_SRCS})
+target_include_directories(nnfw_util PUBLIC ${NNFW_INCLUDE_DIR})
+
+install(TARGETS nnfw_util
+ RUNTIME DESTINATION bin COMPONENT libraries
+ LIBRARY DESTINATION lib COMPONENT libraries)
+
+add_executable(nnfw_util_tensor_index_iterator "examples/tensor_index_iterator.cpp")
+target_link_libraries(nnfw_util_tensor_index_iterator nnfw_util)
diff --git a/libs/util/examples/tensor_index_iterator.cpp b/libs/util/examples/tensor_index_iterator.cpp
new file mode 100644
index 000000000..a05d78dc4
--- /dev/null
+++ b/libs/util/examples/tensor_index_iterator.cpp
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "util/tensor/IndexIterator.h"
+
+#include <iostream>
+
+int main(int argc, char **argv)
+{
+ nnfw::util::tensor::Shape shape{3, 4, 3, 4};
+
+ std::cout << "Iterate over tensor{3, 4, 3, 4}" << std::endl;
+
+ nnfw::util::tensor::iterate(shape) << [] (const nnfw::util::tensor::Index &index)
+ {
+ std::cout << "rank: " << index.rank() << std::endl;
+
+ for (size_t d = 0; d < index.rank(); ++d)
+ {
+ std::cout << " offset(" << d << ") = " << index.at(d) << std::endl;
+ }
+ };
+
+ return 0;
+}
diff --git a/libs/util/include/util/benchmark.h b/libs/util/include/util/benchmark.h
new file mode 100644
index 000000000..c451eddec
--- /dev/null
+++ b/libs/util/include/util/benchmark.h
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_BENCHMARK_H__
+#define __NNFW_UTIL_BENCHMARK_H__
+
+#include <chrono>
+
+namespace nnfw
+{
+namespace util
+{
+// Benckmark support
+namespace benchmark
+{
+
+template <typename T> class Accumulator
+{
+public:
+ Accumulator(T &ref) : _ref(ref)
+ {
+ // DO NOTHING
+ }
+
+public:
+ T &operator()(void) { return _ref; }
+
+private:
+ T &_ref;
+};
+
+template <typename T, typename Callable>
+Accumulator<T> &operator<<(Accumulator<T> &&acc, Callable cb)
+{
+ auto begin = std::chrono::steady_clock::now();
+ cb();
+ auto end = std::chrono::steady_clock::now();
+
+ acc() += std::chrono::duration_cast<T>(end - begin);
+
+ return acc;
+}
+
+template <typename T> Accumulator<T> measure(T &out)
+{
+ return Accumulator<T>(out);
+}
+
+} // namespace benchmark
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_BENCHMARK_H__
diff --git a/libs/util/include/util/environment.h b/libs/util/include/util/environment.h
new file mode 100644
index 000000000..fa9dd519d
--- /dev/null
+++ b/libs/util/include/util/environment.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __UTIL_ENVIRONMENT_H__
+#define __UTIL_ENVIRONMENT_H__
+
+namespace nnfw
+{
+namespace util
+{
+
+int get_env_int(const char* name);
+bool get_env_bool(const char* name);
+
+}
+}
+
+#include <string>
+
+namespace nnfw
+{
+namespace util
+{
+namespace env
+{
+
+template <typename T> struct Accessor
+{
+ virtual ~Accessor() = default;
+
+ virtual bool access(T &out) const = 0;
+};
+
+class IntAccessor : public Accessor<int>
+{
+public:
+ IntAccessor(const std::string &tag);
+
+public:
+ bool access(int &out) const override;
+
+private:
+ std::string _tag;
+};
+
+} // namespace env
+} // namespace util
+} // namespace nnfw
+
+#endif // __UTIL_ENVIRONMENT_H__
diff --git a/libs/util/include/util/feature/Index.h b/libs/util/include/util/feature/Index.h
new file mode 100644
index 000000000..e77816669
--- /dev/null
+++ b/libs/util/include/util/feature/Index.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_FEATURE_INDEX_H__
+#define __NNFW_UTIL_FEATURE_INDEX_H__
+
+#include <cstdint>
+
+namespace nnfw
+{
+namespace util
+{
+namespace feature
+{
+
+class Index
+{
+public:
+ Index() = default;
+
+public:
+ Index(int32_t ch, int32_t row, int32_t col) : _ch{ch}, _row{row}, _col{col}
+ {
+ // DO NOTHING
+ }
+
+public:
+ int32_t ch(void) const { return _ch; }
+ int32_t row(void) const { return _row; }
+ int32_t col(void) const { return _col; }
+
+public:
+ int32_t &ch(void) { return _ch; }
+ int32_t &row(void) { return _row; }
+ int32_t &col(void) { return _col; }
+
+private:
+ int32_t _ch;
+ int32_t _row;
+ int32_t _col;
+};
+
+} // namespace feature
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_FEATURE_INDEX_H__
diff --git a/libs/util/include/util/feature/IndexIterator.h b/libs/util/include/util/feature/IndexIterator.h
new file mode 100644
index 000000000..dd029f4b6
--- /dev/null
+++ b/libs/util/include/util/feature/IndexIterator.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_FEATURE_INDEX_ITERATOR_H__
+#define __NNFW_UTIL_FEATURE_INDEX_ITERATOR_H__
+
+#include "util/feature/Shape.h"
+
+namespace nnfw
+{
+namespace util
+{
+namespace feature
+{
+
+class IndexIterator
+{
+public:
+ IndexIterator(const Shape &shape) : _shape{shape}
+ {
+ // DO NOTHING
+ }
+
+public:
+ template <typename Callable> IndexIterator &iter(Callable cb)
+ {
+ for (uint32_t ch = 0; ch < _shape.C; ++ch)
+ {
+ for (uint32_t row = 0; row < _shape.H; ++row)
+ {
+ for (uint32_t col = 0; col < _shape.W; ++col)
+ {
+ cb(ch, row, col);
+ }
+ }
+ }
+
+ return (*this);
+ }
+
+private:
+ const Shape _shape;
+};
+
+IndexIterator iterate(const Shape &shape) { return IndexIterator{shape}; }
+
+template <typename Callable> IndexIterator &operator<<(IndexIterator &&it, Callable cb)
+{
+ return it.iter(cb);
+}
+
+} // namespace feature
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_FEATURE_INDEX_ITERATOR_H__
diff --git a/libs/util/include/util/feature/Object.h b/libs/util/include/util/feature/Object.h
new file mode 100644
index 000000000..ca217b4a8
--- /dev/null
+++ b/libs/util/include/util/feature/Object.h
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_FEATURE_OBJECT_H__
+#define __NNFW_UTIL_FEATURE_OBJECT_H__
+
+#include "util/feature/Shape.h"
+#include "util/feature/Index.h"
+#include "util/feature/Reader.h"
+
+#include <vector>
+
+namespace nnfw
+{
+namespace util
+{
+namespace feature
+{
+
+template<typename T> class Object final : public Reader<T>
+{
+public:
+ using Generator = std::function<T (const Shape &shape, const Index &index)>;
+
+public:
+ Object(const Shape &shape, const Generator &fn) : _shape{shape}
+ {
+ _value.resize(_shape.C * _shape.H * _shape.W);
+
+ for (int32_t ch = 0; ch < _shape.C; ++ch)
+ {
+ for (int32_t row = 0; row < _shape.H; ++row)
+ {
+ for (int32_t col = 0; col < _shape.W; ++col)
+ {
+ _value.at(offsetOf(ch, row, col)) = fn(_shape, Index{ch, row, col});
+ }
+ }
+ }
+ }
+
+public:
+ const Shape &shape(void) const { return _shape; }
+
+public:
+ T at(uint32_t ch, uint32_t row, uint32_t col) const override
+ {
+ return _value.at(offsetOf(ch, row, col));
+ }
+
+private:
+ uint32_t offsetOf(uint32_t ch, uint32_t row, uint32_t col) const
+ {
+ return ch * _shape.H * _shape.W + row * _shape.W + col;
+ }
+
+private:
+ Shape _shape;
+ std::vector<T> _value;
+};
+
+} // namespace feature
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_FEATURE_OBJECT_H__
diff --git a/libs/util/include/util/feature/Reader.h b/libs/util/include/util/feature/Reader.h
new file mode 100644
index 000000000..112503d80
--- /dev/null
+++ b/libs/util/include/util/feature/Reader.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_FEATURE_READER_H__
+#define __NNFW_UTIL_FEATURE_READER_H__
+
+#include <cstdint>
+
+namespace nnfw
+{
+namespace util
+{
+namespace feature
+{
+
+template <typename T> struct Reader
+{
+ virtual ~Reader() = default;
+
+ virtual T at(uint32_t ch, uint32_t row, uint32_t col) const = 0;
+};
+
+} // namespace feature
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_FEATURE_READER_H__
diff --git a/libs/util/include/util/feature/Shape.h b/libs/util/include/util/feature/Shape.h
new file mode 100644
index 000000000..e05c97f51
--- /dev/null
+++ b/libs/util/include/util/feature/Shape.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_FEATURE_SHAPE_H__
+#define __NNFW_UTIL_FEATURE_SHAPE_H__
+
+#include <cstdint>
+
+namespace nnfw
+{
+namespace util
+{
+namespace feature
+{
+
+struct Shape
+{
+ int32_t C; // Depth
+ int32_t H; // Height
+ int32_t W; // Width
+
+ Shape() = default;
+ Shape(int32_t depth, int32_t height, int32_t width) : C{depth}, H{height}, W{width}
+ {
+ // DO NOTHING
+ }
+
+};
+
+} // namespace feature
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_FEATURE_H__
diff --git a/libs/util/include/util/feature/TextFormatter.h b/libs/util/include/util/feature/TextFormatter.h
new file mode 100644
index 000000000..91b4c9fff
--- /dev/null
+++ b/libs/util/include/util/feature/TextFormatter.h
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_FEATURE_TEXT_FORMATTER_H__
+#define __NNFW_UTIL_FEATURE_TEXT_FORMATTER_H__
+
+#include "util/feature/Shape.h"
+#include "util/feature/Reader.h"
+
+#include <ostream>
+#include <iomanip>
+#include <limits>
+
+namespace nnfw
+{
+namespace util
+{
+namespace feature
+{
+
+template <typename T> class TextFormatter
+{
+public:
+ TextFormatter(const Shape &shape, const Reader<T> &data)
+ : _shape(shape), _data(data)
+ {
+ // DO NOTHING
+ }
+
+public:
+ const Shape &shape(void) const { return _shape; }
+ const Reader<T> &data(void) const { return _data; }
+
+private:
+ const Shape &_shape;
+ const Reader<T> &_data;
+};
+
+template <typename T>
+std::ostream &operator<<(std::ostream &os, const TextFormatter<T> &fmt)
+{
+ const auto &shape = fmt.shape();
+
+ for (uint32_t ch = 0; ch < shape.C; ++ch)
+ {
+ os << " Channel " << ch << ":" << std::endl;
+ for (uint32_t row = 0; row < shape.H; ++row)
+ {
+ os << " ";
+ for (uint32_t col = 0; col < shape.W; ++col)
+ {
+ const auto value = fmt.data().at(ch, row, col);
+ os << std::right;
+ os << std::fixed;
+ os << std::setw(std::numeric_limits<T>::digits10 + 2);
+ os << std::setprecision(5);
+ os << value;
+ os << " ";
+ }
+ os << std::endl;
+ }
+ }
+
+ return os;
+}
+
+} // namespace feature
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_FEATURE_TEXT_FORMATTER_H__
diff --git a/libs/util/include/util/fp32.h b/libs/util/include/util/fp32.h
new file mode 100644
index 000000000..604435470
--- /dev/null
+++ b/libs/util/include/util/fp32.h
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_FP32_H__
+#define __NNFW_UTIL_FP32_H__
+
+#include <cmath>
+#include <cfloat>
+#include <algorithm>
+#include <cstdint>
+
+namespace nnfw
+{
+namespace util
+{
+namespace fp32
+{
+
+inline float relative_diff(float lhs, float rhs)
+{
+ const auto diff = std::fabs(lhs - rhs);
+ const auto base = std::max(std::fabs(lhs), std::fabs(rhs));
+
+ return diff / base;
+}
+
+inline bool epsilon_equal(float expected, float obtained, uint32_t tolerance = 1)
+{
+ if (std::isnan(expected) && std::isnan(obtained))
+ {
+ return true;
+ }
+
+ // Let's use relative epsilon comparision
+ const auto diff = std::fabs(expected - obtained);
+ const auto max = std::max(std::fabs(expected), std::fabs(obtained));
+
+ return diff <= (max * FLT_EPSILON * tolerance);
+}
+
+inline bool absolute_epsilon_equal(float expected, float obtained, float tolerance = 0.001)
+{
+ if (std::isnan(expected) && std::isnan(obtained))
+ {
+ return true;
+ }
+
+ // Let's use absolute epsilon comparision
+ const auto diff = std::fabs(expected - obtained);
+
+ return diff <= tolerance;
+}
+
+} // namespace fp32
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_FP32_H__
diff --git a/libs/util/include/util/kernel/IndexIterator.h b/libs/util/include/util/kernel/IndexIterator.h
new file mode 100644
index 000000000..ea6b48826
--- /dev/null
+++ b/libs/util/include/util/kernel/IndexIterator.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_KERNEL_INDEX_ITERATOR_H__
+#define __NNFW_UTIL_KERNEL_INDEX_ITERATOR_H__
+
+#include "util/kernel/Shape.h"
+
+namespace nnfw
+{
+namespace util
+{
+namespace kernel
+{
+
+class IndexIterator
+{
+public:
+ IndexIterator(const Shape &shape) : _shape{shape}
+ {
+ // DO NOTHING
+ }
+
+public:
+ template <typename Callable> IndexIterator &iter(Callable cb)
+ {
+ for (uint32_t nth = 0; nth < _shape.N; ++nth)
+ {
+ for (uint32_t ch = 0; ch < _shape.C; ++ch)
+ {
+ for (uint32_t row = 0; row < _shape.H; ++row)
+ {
+ for (uint32_t col = 0; col < _shape.W; ++col)
+ {
+ cb(nth, ch, row, col);
+ }
+ }
+ }
+ }
+
+ return (*this);
+ }
+
+private:
+ const Shape _shape;
+};
+
+IndexIterator iterate(const Shape &shape) { return IndexIterator{shape}; }
+
+template <typename Callable> IndexIterator &operator<<(IndexIterator &&it, Callable cb)
+{
+ return it.iter(cb);
+}
+
+} // namespace kernel
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_FEATURE_INDEX_ITERATOR_H__
diff --git a/libs/util/include/util/kernel/RandomObject.h b/libs/util/include/util/kernel/RandomObject.h
new file mode 100644
index 000000000..ceed7a0b0
--- /dev/null
+++ b/libs/util/include/util/kernel/RandomObject.h
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_KERNEL_RANDOM_OBJECT_H__
+#define __NNFW_UTIL_KERNEL_RANDOM_OBJECT_H__
+
+#include "util/kernel/Shape.h"
+#include "util/kernel/Reader.h"
+
+#include <vector>
+
+namespace nnfw
+{
+namespace util
+{
+namespace kernel
+{
+
+template<typename T> class RandomObject final : public Reader<T>
+{
+public:
+ RandomObject(const Shape &shape) : _shape{shape}
+ {
+ const uint32_t size = _shape.N * _shape.C * _shape.H * _shape.W;
+
+ // TODO Use random number
+ for (uint32_t off = 0; off < size; ++off)
+ {
+ _value.emplace_back(static_cast<float>(off));
+ }
+ }
+
+public:
+ const Shape &shape(void) const { return _shape; }
+
+public:
+ T at(uint32_t nth, uint32_t ch, uint32_t row, uint32_t col) const override
+ {
+ uint32_t index = 0;
+
+ index += nth * _shape.C * _shape.H * _shape.W;
+ index += ch * _shape.H * _shape.W;
+ index += row * _shape.W;
+ index += col;
+
+ return _value.at(index);
+ }
+
+private:
+ const Shape _shape;
+ std::vector<T> _value;
+};
+
+} // namespace kernel
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_KERNEL_RANDOM_OBJECT_H__
diff --git a/libs/util/include/util/kernel/Reader.h b/libs/util/include/util/kernel/Reader.h
new file mode 100644
index 000000000..9d8f33ad6
--- /dev/null
+++ b/libs/util/include/util/kernel/Reader.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_KERNEL_READER_H__
+#define __NNFW_UTIL_KERNEL_READER_H__
+
+#include <cstdint>
+
+namespace nnfw
+{
+namespace util
+{
+namespace kernel
+{
+
+template <typename T> struct Reader
+{
+ virtual ~Reader() = default;
+
+ virtual T at(uint32_t nth, uint32_t ch, uint32_t row, uint32_t col) const = 0;
+};
+
+} // namespace kernel
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_KERNEL_READER_H__
diff --git a/libs/util/include/util/kernel/Shape.h b/libs/util/include/util/kernel/Shape.h
new file mode 100644
index 000000000..bd2332989
--- /dev/null
+++ b/libs/util/include/util/kernel/Shape.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_KERNEL_SHAPE_H__
+#define __NNFW_UTIL_KERNEL_SHAPE_H__
+
+#include <cstdint>
+
+namespace nnfw
+{
+namespace util
+{
+namespace kernel
+{
+
+struct Shape
+{
+ int32_t N;
+ int32_t C;
+ int32_t H;
+ int32_t W;
+
+ Shape() = default;
+ Shape(int32_t count, int32_t depth, int32_t height, int32_t width)
+ : N{count}, C{depth}, H{height}, W{width}
+ {
+ // DO NOTHING
+ }
+};
+
+} // namespace kernel
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_KERNEL_SHAPE_H__
diff --git a/libs/util/include/util/tensor/Index.h b/libs/util/include/util/tensor/Index.h
new file mode 100644
index 000000000..e74b09229
--- /dev/null
+++ b/libs/util/include/util/tensor/Index.h
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_TENSOR_INDEX_H__
+#define __NNFW_UTIL_TENSOR_INDEX_H__
+
+#include <cstdint>
+#include <cstddef>
+
+#include <vector>
+#include <initializer_list>
+
+namespace nnfw
+{
+namespace util
+{
+namespace tensor
+{
+
+struct Index
+{
+public:
+ Index(size_t rank)
+ {
+ _offsets.resize(rank);
+ }
+
+public:
+ Index(std::initializer_list<int32_t> offsets) : _offsets{offsets}
+ {
+ // DO NOTHING
+ }
+
+public:
+ size_t rank(void) const { return _offsets.size(); }
+
+public:
+ int32_t at(size_t n) const { return _offsets.at(n); }
+ int32_t &at(size_t n) { return _offsets.at(n); }
+
+private:
+ std::vector<int32_t> _offsets;
+};
+
+} // namespace tensor
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_TENSOR_INDEX_H__
diff --git a/libs/util/include/util/tensor/IndexFormatter.h b/libs/util/include/util/tensor/IndexFormatter.h
new file mode 100644
index 000000000..8014a42b6
--- /dev/null
+++ b/libs/util/include/util/tensor/IndexFormatter.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_TENSOR_INDEX_FORMATTER_H__
+#define __NNFW_UTIL_TENSOR_INDEX_FORMATTER_H__
+
+#include "util/tensor/Index.h"
+
+#include <ostream>
+
+namespace nnfw
+{
+namespace util
+{
+namespace tensor
+{
+
+class IndexFormatter
+{
+public:
+ IndexFormatter(const nnfw::util::tensor::Index &index) : _index(index)
+ {
+ // DO NOTHING
+ }
+
+public:
+ const nnfw::util::tensor::Index &index(void) const { return _index; }
+
+private:
+ const nnfw::util::tensor::Index &_index;
+};
+
+std::ostream &operator<<(std::ostream &os, const IndexFormatter &fmt);
+
+} // namespace tensor
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_TENSOR_INDEX_FORMATTER_H__
diff --git a/libs/util/include/util/tensor/IndexIterator.h b/libs/util/include/util/tensor/IndexIterator.h
new file mode 100644
index 000000000..56a8c7dd2
--- /dev/null
+++ b/libs/util/include/util/tensor/IndexIterator.h
@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_TENSOR_INDEX_ITERATOR_H__
+#define __NNFW_UTIL_TENSOR_INDEX_ITERATOR_H__
+
+#include "util/tensor/Shape.h"
+#include "util/tensor/Index.h"
+
+namespace nnfw
+{
+namespace util
+{
+namespace tensor
+{
+
+class IndexIterator
+{
+public:
+ IndexIterator(const Shape &shape) : _shape(shape)
+ {
+ // DO NOTHING
+ }
+
+public:
+ // Allow move, but disallow copy
+ IndexIterator(IndexIterator &&) = default;
+ IndexIterator(const IndexIterator &) = delete;
+
+public:
+ template <typename Callable> IndexIterator &iter(Callable fn)
+ {
+ Index index(_shape.rank());
+
+ for (size_t d = 0; d < _shape.rank(); ++d)
+ {
+ index.at(d) = 0;
+ }
+
+ size_t cursor = 0;
+
+ while (cursor < _shape.rank())
+ {
+ fn(index);
+
+ if (index.at(cursor) + 1 < _shape.dim(cursor))
+ {
+ index.at(cursor) += 1;
+ }
+ else
+ {
+ while ((cursor < _shape.rank()) && (index.at(cursor) + 1 == _shape.dim(cursor)))
+ {
+ ++cursor;
+ }
+
+ if (cursor == _shape.rank())
+ {
+ break;
+ }
+
+ index.at(cursor) += 1;
+
+ for (size_t d = 0; d < cursor; ++d)
+ {
+ index.at(d) = 0;
+ }
+
+ cursor = 0;
+ }
+ }
+
+ return (*this);
+ }
+
+private:
+ const Shape &_shape;
+};
+
+inline IndexIterator iterate(const Shape &shape) { return IndexIterator{shape}; }
+
+template <typename Callable> IndexIterator &operator<<(IndexIterator &&it, Callable cb)
+{
+ return it.iter(cb);
+}
+
+} // namespace tensor
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_TENSOR_INDEX_ITERATOR_H__
diff --git a/libs/util/include/util/tensor/NonIncreasingStride.h b/libs/util/include/util/tensor/NonIncreasingStride.h
new file mode 100644
index 000000000..ff013ffa2
--- /dev/null
+++ b/libs/util/include/util/tensor/NonIncreasingStride.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_TENSOR_NON_INCREASING_STRIDE_H__
+#define __NNFW_UTIL_TENSOR_NON_INCREASING_STRIDE_H__
+
+#include "util/tensor/Shape.h"
+#include "util/tensor/Index.h"
+
+#include <vector>
+
+namespace nnfw
+{
+namespace util
+{
+namespace tensor
+{
+
+// As its name suggests, stride[N-1] >= stride[N] holds for all N < rank in NonIncreasingStride.
+class NonIncreasingStride
+{
+public:
+ void init(const Shape &shape)
+ {
+ _stride.resize(shape.rank());
+ _stride.at(shape.rank() - 1) = 1;
+
+ for (uint32_t axis = shape.rank() - 1; axis > 0; --axis)
+ {
+ _stride.at(axis - 1) = _stride.at(axis) * shape.dim(axis);
+ }
+ }
+
+public:
+ uint32_t at(uint32_t axis) const { return _stride.at(axis); }
+
+public:
+ uint32_t offset(const Index &index) const;
+
+private:
+ std::vector<uint32_t> _stride;
+};
+
+} // namespace tensor
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_TENSOR_NON_INCREASING_STRIDE_H__
diff --git a/libs/util/include/util/tensor/Object.h b/libs/util/include/util/tensor/Object.h
new file mode 100644
index 000000000..839bce236
--- /dev/null
+++ b/libs/util/include/util/tensor/Object.h
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_TENSOR_OBJECT_H__
+#define __NNFW_UTIL_TENSOR_OBJECT_H__
+
+#include "util/tensor/Shape.h"
+#include "util/tensor/Index.h"
+#include "util/tensor/IndexIterator.h"
+#include "util/tensor/NonIncreasingStride.h"
+#include "util/tensor/Reader.h"
+
+#include <vector>
+
+namespace nnfw
+{
+namespace util
+{
+namespace tensor
+{
+
+template<typename T> class Object final : public Reader<T>
+{
+public:
+ using Generator = std::function<T (const Shape &shape, const Index &index)>;
+
+public:
+ Object(const Shape &shape, const Generator &fn) : _shape{shape}
+ {
+ // Set 'stride'
+ _stride.init(shape);
+
+ // Pre-allocate buffer
+ _values.resize(_shape.dim(0) * _stride.at(0));
+
+ // Set 'value'
+ iterate(_shape) << [this, &fn] (const Index &index)
+ {
+ _values.at(_stride.offset(index)) = fn(_shape, index);
+ };
+ }
+
+public:
+ const Shape &shape(void) const { return _shape; }
+
+public:
+ T at(const Index &index) const override
+ {
+ return _values.at(_stride.offset(index));
+ }
+
+private:
+ Shape _shape;
+ NonIncreasingStride _stride;
+
+private:
+ std::vector<T> _values;
+};
+
+} // namespace tensor
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_FEATURE_OBJECT_H__
diff --git a/libs/util/include/util/tensor/Reader.h b/libs/util/include/util/tensor/Reader.h
new file mode 100644
index 000000000..654214880
--- /dev/null
+++ b/libs/util/include/util/tensor/Reader.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_TENSOR_READER_H__
+#define __NNFW_UTIL_TENSOR_READER_H__
+
+#include "util/tensor/Index.h"
+
+namespace nnfw
+{
+namespace util
+{
+namespace tensor
+{
+
+template <typename T> struct Reader
+{
+ virtual ~Reader() = default;
+
+ virtual T at(const Index &index) const = 0;
+};
+
+} // namespace tensor
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_TENSOR_READER_H__
diff --git a/libs/util/include/util/tensor/Shape.h b/libs/util/include/util/tensor/Shape.h
new file mode 100644
index 000000000..d4edeaada
--- /dev/null
+++ b/libs/util/include/util/tensor/Shape.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_TENSOR_SHAPE_H__
+#define __NNFW_UTIL_TENSOR_SHAPE_H__
+
+#include <cstdint>
+#include <cstddef>
+#include <vector>
+#include <initializer_list>
+
+namespace nnfw
+{
+namespace util
+{
+namespace tensor
+{
+
+class Shape
+{
+public:
+ Shape(size_t rank)
+ {
+ _dimensions.resize(rank);
+ }
+
+public:
+ Shape(const std::initializer_list<int32_t> &dimensions) : _dimensions{dimensions}
+ {
+ // DO NOTHING
+ }
+
+public:
+ size_t rank(void) const { return _dimensions.size(); }
+
+public:
+ int32_t dim(size_t n) const { return _dimensions.at(n); }
+ int32_t &dim(size_t n) { return _dimensions.at(n); }
+
+private:
+ std::vector<int32_t> _dimensions;
+};
+
+bool operator==(const Shape &, const Shape &);
+
+} // namespace tensor
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_TENSOR_SHAPE_H__
diff --git a/libs/util/include/util/tensor/Zipper.h b/libs/util/include/util/tensor/Zipper.h
new file mode 100644
index 000000000..fc2d94e57
--- /dev/null
+++ b/libs/util/include/util/tensor/Zipper.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_TENSOR_ZIPPER_H__
+#define __NNFW_UTIL_TENSOR_ZIPPER_H__
+
+#include "util/tensor/Index.h"
+#include "util/tensor/IndexIterator.h"
+#include "util/tensor/Reader.h"
+
+namespace nnfw
+{
+namespace util
+{
+namespace tensor
+{
+
+template <typename T> class Zipper
+{
+public:
+ Zipper(const Shape &shape, const Reader<T> &lhs, const Reader<T> &rhs)
+ : _shape{shape}, _lhs{lhs}, _rhs{rhs}
+ {
+ // DO NOTHING
+ }
+
+public:
+ template <typename Callable> void zip(Callable cb) const
+ {
+ iterate(_shape) << [this, &cb] (const Index &index)
+ {
+ cb(index, _lhs.at(index), _rhs.at(index));
+ };
+ }
+
+private:
+ const Shape &_shape;
+ const Reader<T> &_lhs;
+ const Reader<T> &_rhs;
+};
+
+template<typename T, typename Callable>
+const Zipper<T> &operator<<(const Zipper<T> &zipper, Callable cb)
+{
+ zipper.zip(cb);
+ return zipper;
+}
+
+template<typename T>
+Zipper<T> zip(const Shape &shape, const Reader<T> &lhs, const Reader<T> &rhs)
+{
+ return Zipper<T>{shape, lhs, rhs};
+}
+
+} // namespace tensor
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_TENSOR_ZIPPER_H__
diff --git a/libs/util/include/util/vector.h b/libs/util/include/util/vector.h
new file mode 100644
index 000000000..49a58a41e
--- /dev/null
+++ b/libs/util/include/util/vector.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_VECTOR_H__
+#define __NNFW_UTIL_VECTOR_H__
+
+#include <vector>
+
+template <typename T>
+bool operator==(const std::vector<T> &lhs, const std::vector<T> &rhs)
+{
+ if (lhs.size() != rhs.size())
+ {
+ return false;
+ }
+
+ for (size_t ind = 0; ind < lhs.size(); ++ind)
+ {
+ if (lhs.at(ind) != rhs.at(ind))
+ {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+#endif // __NNFW_UTIL_VECTOR_H__
diff --git a/libs/util/include/util/vector/Object.h b/libs/util/include/util/vector/Object.h
new file mode 100644
index 000000000..b1bc521da
--- /dev/null
+++ b/libs/util/include/util/vector/Object.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_VECTOR_OBJECT_H__
+#define __NNFW_UTIL_VECTOR_OBJECT_H__
+
+#include "util/vector/Reader.h"
+
+#include <vector>
+#include <functional>
+
+namespace nnfw
+{
+namespace util
+{
+namespace vector
+{
+
+template<typename T> class Object final : public Reader<T>
+{
+public:
+ using Generator = std::function<T (int32_t size, int32_t offset)>;
+
+public:
+ Object(int32_t size, const Generator &gen) : _size{size}
+ {
+ _value.resize(_size);
+
+ for (int32_t offset = 0; offset < size; ++offset)
+ {
+ _value.at(offset) = gen(size, offset);
+ }
+ }
+
+public:
+ int32_t size(void) const { return _size; }
+
+public:
+ T at(uint32_t nth) const override { return _value.at(nth); }
+
+private:
+ const int32_t _size;
+ std::vector<T> _value;
+};
+
+} // namespace vector
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_VECTOR_OBJECT_H__
diff --git a/libs/util/include/util/vector/Reader.h b/libs/util/include/util/vector/Reader.h
new file mode 100644
index 000000000..a3c5cb359
--- /dev/null
+++ b/libs/util/include/util/vector/Reader.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_UTIL_VECTOR_READER_H__
+#define __NNFW_UTIL_VECTOR_READER_H__
+
+#include <cstdint>
+
+namespace nnfw
+{
+namespace util
+{
+namespace vector
+{
+
+template <typename T> struct Reader
+{
+ virtual ~Reader() = default;
+
+ virtual T at(uint32_t nth) const = 0;
+};
+
+} // namespace vector
+} // namespace util
+} // namespace nnfw
+
+#endif // __NNFW_UTIL_VECTOR_READER_H__
diff --git a/libs/util/src/environment.cpp b/libs/util/src/environment.cpp
new file mode 100644
index 000000000..dca6c5c55
--- /dev/null
+++ b/libs/util/src/environment.cpp
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <string.h>
+#include <cstdlib>
+#include <string>
+
+#include "util/environment.h"
+
+namespace nnfw
+{
+namespace util
+{
+
+int get_env_int(const char* name)
+{
+ const char *value = std::getenv(name);
+ if (value != nullptr)
+ return std::stoi(value);
+ return 0;
+}
+
+bool get_env_bool(const char* name)
+{
+ const char *value = std::getenv(name);
+ if (value != nullptr)
+ {
+ if (std::stoi(value))
+ return true;
+ if (!strcasecmp(value, "true"))
+ return true;
+ }
+ return false;
+}
+
+} // namespace util
+} // namespace nnfw
+
+namespace nnfw
+{
+namespace util
+{
+namespace env
+{
+
+IntAccessor::IntAccessor(const std::string &tag) : _tag{tag}
+{
+ // DO NOTHING
+}
+
+bool IntAccessor::access(int &out) const
+{
+ auto value = std::getenv(_tag.c_str());
+
+ if (value == nullptr)
+ {
+ return false;
+ }
+
+ out = std::stoi(value);
+ return true;
+}
+
+} // namespace env
+} // namespace util
+} // namespace nnfw
diff --git a/libs/util/src/tensor/IndexFormatter.cpp b/libs/util/src/tensor/IndexFormatter.cpp
new file mode 100644
index 000000000..66ff80771
--- /dev/null
+++ b/libs/util/src/tensor/IndexFormatter.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "util/tensor/IndexFormatter.h"
+
+#include <cassert>
+
+namespace nnfw
+{
+namespace util
+{
+namespace tensor
+{
+
+std::ostream &operator<<(std::ostream &os, const IndexFormatter &fmt)
+{
+ const auto rank = fmt.index().rank();
+
+ assert(rank > 0);
+
+ os << fmt.index().at(0);
+
+ if (rank > 1)
+ {
+ for (uint32_t axis = 1; axis < rank; ++axis)
+ {
+ os << ", " << fmt.index().at(axis);
+ }
+ }
+
+ return os;
+}
+
+} // namespace tensor
+} // namespace util
+} // namespace nnfw
diff --git a/libs/util/src/tensor/NonIncreasingStride.cpp b/libs/util/src/tensor/NonIncreasingStride.cpp
new file mode 100644
index 000000000..3774ded83
--- /dev/null
+++ b/libs/util/src/tensor/NonIncreasingStride.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "util/tensor/NonIncreasingStride.h"
+
+#include <cassert>
+
+namespace nnfw
+{
+namespace util
+{
+namespace tensor
+{
+
+uint32_t NonIncreasingStride::offset(const Index &index) const
+{
+ const size_t rank = _stride.size();
+
+ assert(index.rank() == rank);
+
+ uint32_t offset = 0;
+
+ for (size_t axis = 0; axis < rank; ++axis)
+ {
+ offset += _stride.at(axis) * index.at(axis);
+ }
+
+ return offset;
+}
+
+} // namespace tensor
+} // namespace util
+} // namespace nnfw
diff --git a/libs/util/src/tensor/Shape.cpp b/libs/util/src/tensor/Shape.cpp
new file mode 100644
index 000000000..d177d1382
--- /dev/null
+++ b/libs/util/src/tensor/Shape.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "util/tensor/Shape.h"
+
+namespace nnfw
+{
+namespace util
+{
+namespace tensor
+{
+
+bool operator==(const Shape &lhs, const Shape &rhs)
+{
+ if (lhs.rank() != rhs.rank())
+ {
+ return false;
+ }
+
+ for (size_t axis = 0; axis < lhs.rank(); ++axis)
+ {
+ if(lhs.dim(axis) != rhs.dim(axis))
+ {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+} // namespace tensor
+} // namespace util
+} // namespace nnfw
diff --git a/packaging/nnfw.manifest b/packaging/nnfw.manifest
new file mode 100644
index 000000000..e66acbe98
--- /dev/null
+++ b/packaging/nnfw.manifest
@@ -0,0 +1,7 @@
+<manifest>
+ <assign>
+ </assign>
+ <request>
+ <domain name="_"/>
+ </request>
+</manifest>
diff --git a/packaging/nnfw.spec b/packaging/nnfw.spec
new file mode 100644
index 000000000..1f31af014
--- /dev/null
+++ b/packaging/nnfw.spec
@@ -0,0 +1,105 @@
+Name: nnfw
+Summary: nnfw
+Version: 0.1
+Release: 1
+Group: Development
+License: Apache-2.0 and MPL-2.0 and BSD-3-Clause
+
+Source0: %{name}-%{version}.tar.gz
+Source1: %{name}.manifest
+
+BuildRequires: cmake
+BuildRequires: boost-devel
+BuildRequires: gtest-devel
+BuildRequires: tensorflow-lite-devel
+
+%ifarch aarch64
+BuildRequires: libarmcl-devel-aarch64
+%endif
+%ifarch %{arm}
+BuildRequires: libarmcl-devel
+%endif
+
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description
+nnfw is a high-performance, on-device neural network framework for Tizen
+
+%{!?build_type: %define build_type Release}
+
+%package test
+Summary: NNFW Test
+Requires: nnfw
+
+%description test
+NNFW test rpm. It does not depends on nnfw rpm since it contains nnfw runtime.
+
+%define install_prefix /usr
+%define test_install_prefix /opt/usr/nnfw-test
+
+%ifarch %{arm}
+%define target_arch armv7l
+%endif
+%ifarch x86_64
+%define target_arch x86_64
+%endif
+%ifarch aarch64
+%define target_arch aarch64
+%endif
+
+%{!?coverage_build: %define coverage_build 0}
+%if %{coverage_build} == 1
+%define build_options COVERAGE_BUILD=1 OBS_BUILD=1 BUILD_TYPE=Debug TARGET_ARCH=%{target_arch} TARGET_OS=tizen
+%else
+%define build_options OBS_BUILD=1 BUILD_TYPE=%{build_type} INSTALL_PATH=%{buildroot}%{install_prefix} TARGET_ARCH=%{target_arch} TARGET_OS=tizen
+%endif
+
+%prep
+%setup -q
+cp %{SOURCE1} .
+
+%build
+%{build_options} make %{?jobs:-j%jobs}
+
+%install
+%{build_options} make install
+
+%if %{coverage_build} == 0
+# nnfw-test rpm(like test-suite on cross build)
+## install Product
+mkdir -p %{buildroot}%{test_install_prefix}/Product/out
+mv %{buildroot}%{install_prefix}/unittest %{buildroot}%{test_install_prefix}/Product/out
+mv %{buildroot}%{install_prefix}/bin %{buildroot}%{test_install_prefix}/Product/out
+mv %{buildroot}%{install_prefix}/lib %{buildroot}%{test_install_prefix}/Product/out
+## install tests
+cp -rf ./tests %{buildroot}%{test_install_prefix}/.
+## install tools
+mkdir -p %{buildroot}%{test_install_prefix}/tools
+cp -rf ./tools/test_driver %{buildroot}%{test_install_prefix}/tools
+%else
+%{build_options} make build_coverage_suite
+mkdir -p %{buildroot}%{test_install_prefix}
+cp -rf Product/out/coverage-suite.tar.gz %{buildroot}%{test_install_prefix}/.
+tar -zxf %{buildroot}%{test_install_prefix}/coverage-suite.tar.gz -C %{buildroot}%{test_install_prefix}
+rm -rf %{buildroot}%{test_install_prefix}/coverage-suite.tar.gz
+%endif
+
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
+
+%files
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
+%{install_prefix}/lib/*
+%exclude %{install_prefix}/bin/*
+%exclude %{install_prefix}/unittest/*
+
+%files test
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
+%{test_install_prefix}/*
+
+%changelog
+* Thu Mar 15 2018 Chunseok Lee <chunseok.lee@samsung.com>
+- Initial spec file for nnfw
diff --git a/run b/run
new file mode 100755
index 000000000..2fe577b3d
--- /dev/null
+++ b/run
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+COMMAND=$1; shift
+
+if [[ -z "${COMMAND}" ]]; then
+ echo "USAGE: $0 [COMMAND] ..."
+ exit 255
+fi
+
+NNFW_PROJECT_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+NNFW_COMMAND_RPATH="scripts/command"
+
+NNFW_COMMAND_FILE="${NNFW_PROJECT_PATH}/${NNFW_COMMAND_RPATH}/${COMMAND}"
+
+if [[ ! -f "${NNFW_COMMAND_FILE}" ]]; then
+ echo "ERROR: '${COMMAND}' is not supported"
+ exit 255
+fi
+
+export NNFW_PROJECT_PATH
+
+source "${NNFW_COMMAND_FILE}" "$@"
diff --git a/runtimes/CMakeLists.txt b/runtimes/CMakeLists.txt
new file mode 100644
index 000000000..938752f23
--- /dev/null
+++ b/runtimes/CMakeLists.txt
@@ -0,0 +1,5 @@
+if(BUILD_NN_RUNTIME)
+ set(LIB_RUNTIME runtime)
+ add_subdirectory(nn)
+ add_subdirectory(tests)
+endif(BUILD_NN_RUNTIME)
diff --git a/runtimes/nn/CMakeLists.txt b/runtimes/nn/CMakeLists.txt
new file mode 100644
index 000000000..7834594c3
--- /dev/null
+++ b/runtimes/nn/CMakeLists.txt
@@ -0,0 +1,27 @@
+# Library `runtime` which is actually libneuralnetworks.so
+if(CMAKE_VERSION VERSION_LESS 3.1.0)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
+else(CMAKE_VERSION VERSION_LESS 3.1.0)
+ set(CMAKE_CXX_STANDARD 14)
+endif(CMAKE_VERSION VERSION_LESS 3.1.0)
+
+SET(SRCS)
+SET(INC_DIRS ${NNFW_INCLUDE_DIR})
+
+add_subdirectory(depend)
+add_subdirectory(runtime)
+add_subdirectory(common)
+
+SET(INC_DIRS ${INC_DIRS} include)
+
+include_directories(${LIB_RUNTIME} PRIVATE ${INC_DIRS})
+
+add_library(${LIB_RUNTIME} SHARED ${SRCS})
+if(TARGET kernelacl)
+ target_compile_definitions(${LIB_RUNTIME} PRIVATE USE_NNFW_ACL_KERNELS)
+ target_link_libraries(${LIB_RUNTIME} kernelacl)
+endif(TARGET kernelacl)
+# we need the library name to be 'neuralnetworks' and this will do the trick
+set_target_properties(${LIB_RUNTIME} PROPERTIES OUTPUT_NAME neuralnetworks)
+
+install(TARGETS ${LIB_RUNTIME} DESTINATION lib)
diff --git a/runtimes/nn/README.md b/runtimes/nn/README.md
new file mode 100644
index 000000000..84498642c
--- /dev/null
+++ b/runtimes/nn/README.md
@@ -0,0 +1,54 @@
+# Reference implementation of NN runtime
+
+This directory will host a reference implementation of NN runtime.
+
+## What is a reference NN runtime ?
+
+A reference NN runtime is the first PoC (Proof of Concept) implementation of NN runtime for quick development without concrete design.
+
+At the time of decision for this reference NN runtime, we don't have much time to bring up NN runtime. Precisely, by the first milestone, it would be great to have a naive but working SW stack. This is our main goal of this reference NN runtime.
+
+There will be various approaches to implement NN runtime and this reference NN runtime is designed from three possible approaches.
+ - (Plan A) Implement by importing Android NN components as needed
+ - (Plan B) Import and migrate Android NN to our environment and objectives, (i.e. porting and refactoring Android NN)
+ - (Plan C) Implement from scratch (with knowledge from Android NN after analysis)
+
+Considering given restrictions, Plan C might not be feasible for us right now, because it requires correct and time consuming analysis. Drop Plan C. And Plan B might not be easy to be worked by several developers in parallel.
+Therefore, we decide to take below two approaches in parallel.
+ - (1) start to implement NN runtime with Plan A by developers in parallel
+ - (2) make use of knowledge and result from Plan B. Of course, it would be great if we can successfully port Android NN in time, i.e. Plan B. Then we can make use of Android NN itself for our purpose for later milestones.
+
+Therefore we decide to implement a reference NN runtime with Plan A for quick development without concrete design.
+We will follow below philosophies to achieve a main goal.
+
+## Philosophies of a reference NN runtime
+
+We will follow below philosophies until we have a working stack of NN runtime.
+
+- Basically we are going to import necessary code from `experiments/android_nn`
+- And we will remove unnecessary code and modify of `experiments/android_nn`.
+- Keep same structure and name of directory/file with `experiments/android_nn` when importing `experiments/android_nn`
+- Keep same name of type, variable, function, namespace and etc. of C++ source code with `experiments/android_nn`
+- Introduce a new file if we have to introduce and define our own type, variable, function, namespace and etc. of C++ source code.
+ - Don't share existing file of `experiments/android_nn` for our own implementation.
+
+Simply keep as much as possible the code of `experiments/android_nn` when importing and introduce new files for our own implementation.
+
+## Coding Guidelines
+
+We will use following two comment styles for our conveniences.
+
+For those code copied from Android NN but not used yet, use `#if 0 // REF-ANN` to exclude from source code.
+Later you can just remove above `#if 0`, `#endif` and comments when we decide to compile/update it in our reference NN runtime.
+```
+#if 0 // REF-ANN
+ original code from Android NN without any modification and not used yet
+#endif
+```
+
+If you want to leave `TODO` comment, let's use `TODO-NNRT` to distinguish from other `TODO`.
+
+```
+ // TODO-NNRT : Todo for a NN runtime implemenation
+```
+
diff --git a/runtimes/nn/common/CMakeLists.txt b/runtimes/nn/common/CMakeLists.txt
new file mode 100644
index 000000000..31d2d8086
--- /dev/null
+++ b/runtimes/nn/common/CMakeLists.txt
@@ -0,0 +1,31 @@
+SET (CUR_INCS
+ ${CMAKE_CURRENT_SOURCE_DIR}/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/operations
+ ${CMAKE_CURRENT_SOURCE_DIR}
+)
+SET (INC_DIRS
+ ${INC_DIRS}
+ ${CUR_INCS}
+ PARENT_SCOPE
+)
+
+SET (CUR_SRCS
+ ${CMAKE_CURRENT_SOURCE_DIR}/CpuExecutor.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/OperationsUtils.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/Utils.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/NNFWKernels.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/operations/Activation.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/operations/Conv2D.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/operations/Concatenation.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/operations/FullyConnected.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/operations/Pooling.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/operations/SimpleMath.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/operations/Reshape.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/Logging.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/operations/DepthwiseConv2D.cpp
+)
+SET (SRCS
+ ${SRCS}
+ ${CUR_SRCS}
+ PARENT_SCOPE
+)
diff --git a/runtimes/nn/common/CpuExecutor.cpp b/runtimes/nn/common/CpuExecutor.cpp
new file mode 100644
index 000000000..5a8f6f18b
--- /dev/null
+++ b/runtimes/nn/common/CpuExecutor.cpp
@@ -0,0 +1,1324 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "CpuExecutor"
+
+#include "CpuExecutor.h"
+
+#include "NeuralNetworks.h"
+#include "Operations.h"
+
+#include "NNFWKernels.h"
+
+#include <sys/mman.h>
+
+namespace nnfw {
+namespace rt {
+
+// TODO: short term, make share memory mapping and updating a utility function.
+// TODO: long term, implement mmap_fd as a hidl IMemory service.
+bool RunTimePoolInfo::set(const hidl_memory& hidlMemory) {
+ this->hidlMemory = hidlMemory;
+ auto memType = hidlMemory.name();
+ if (memType == "ashmem") {
+#if 0 // REF-ANN Enable if ashmem type and IMemory are use
+ memory = mapMemory(hidlMemory);
+ if (memory == nullptr) {
+ LOG(ERROR) << "Can't map shared memory.";
+ return false;
+ }
+ memory->update();
+ buffer = reinterpret_cast<uint8_t*>(static_cast<void*>(memory->getPointer()));
+ if (buffer == nullptr) {
+ LOG(ERROR) << "Can't access shared memory.";
+ return false;
+ }
+ return true;
+#endif
+ LOG(ERROR) << "Currently, Not Support \"ashmem\" type";
+ return false;
+ } else if (memType == "mmap_fd") {
+ size_t size = hidlMemory.size();
+ int fd = hidlMemory.handle()->data[0];
+ int prot = hidlMemory.handle()->data[1];
+ size_t offset = getSizeFromInts(hidlMemory.handle()->data[2],
+ hidlMemory.handle()->data[3]);
+ buffer = static_cast<uint8_t*>(mmap(nullptr, size, prot, MAP_SHARED, fd, offset));
+ if (buffer == MAP_FAILED) {
+ LOG(ERROR) << "Can't mmap the file descriptor.";
+ return false;
+ }
+ return true;
+ } else {
+ LOG(ERROR) << "unsupported hidl_memory type";
+ return false;
+ }
+}
+
+// Making sure the output data are correctly updated after execution.
+bool RunTimePoolInfo::update() {
+ auto memType = hidlMemory.name();
+ if (memType == "ashmem") {
+#if 0 // REF-ANN Enable if ashmem type and IMemory are use
+ memory->commit();
+ return true;
+#endif
+ LOG(ERROR) << "Currently, Not Support \"ashmem\" type";
+ return false;
+ } else if (memType == "mmap_fd") {
+ int prot = hidlMemory.handle()->data[1];
+ if (prot & PROT_WRITE) {
+ size_t size = hidlMemory.size();
+ return msync(buffer, size, MS_SYNC) == 0;
+ }
+ }
+ // No-op for other types of memory.
+ return true;
+}
+
+bool setRunTimePoolInfosFromHidlMemories(std::vector<RunTimePoolInfo>* poolInfos,
+ const hidl_vec<hidl_memory>& pools) {
+ poolInfos->resize(pools.size());
+ for (size_t i = 0; i < pools.size(); i++) {
+ auto& poolInfo = (*poolInfos)[i];
+ if (!poolInfo.set(pools[i])) {
+ LOG(ERROR) << "Could not map pool";
+ return false;
+ }
+ }
+ return true;
+}
+
+// Updates the RunTimeOperandInfo with the newly calculated shape.
+// Allocate the buffer if we need to.
+static bool setInfoAndAllocateIfNeeded(RunTimeOperandInfo* info, const Shape& shape) {
+ // For user-provided model output operands, the parameters must match the Shape
+ // calculated from the preparation step.
+ if (info->lifetime == OperandLifeTime::MODEL_OUTPUT) {
+ if (info->type != shape.type ||
+ info->dimensions != shape.dimensions) {
+ LOG(ERROR) << "Invalid type or dimensions for model output";
+ return false;
+ }
+ if (info->type == OperandType::TENSOR_QUANT8_ASYMM &&
+ (info->scale != shape.scale || info->zeroPoint != shape.offset)) {
+ LOG(ERROR) << "Invalid scale or zeroPoint for model output";
+ return false;
+ }
+ }
+ info->type = shape.type;
+ info->dimensions = shape.dimensions;
+ info->scale = shape.scale;
+ info->zeroPoint = shape.offset;
+ if (info->lifetime == OperandLifeTime::TEMPORARY_VARIABLE && info->buffer == nullptr) {
+ uint32_t length = sizeOfData(info->type, info->dimensions);
+ info->buffer = new uint8_t[length];
+ if (info->buffer == nullptr) {
+ return false;
+ }
+ }
+ return true;
+}
+
+// Ignore the .pools entry in model and request. This will have been taken care of
+// by the caller.
+int CpuExecutor::run(const Model& model, const Request& request,
+ const std::vector<RunTimePoolInfo>& modelPoolInfos,
+ const std::vector<RunTimePoolInfo>& requestPoolInfos) {
+ VLOG(CPUEXE) << "CpuExecutor::run()";
+ // VLOG(CPUEXE) << "model: " << toString(model);
+#if 0 // REF-ANN
+ VLOG(CPUEXE) << "request: " << toString(request);
+#endif
+
+ // Prepare NNFW_KERNELS
+ nnfw::rt::init_nnfw_kernels();
+
+ mModel = &model;
+ mRequest = &request; // TODO check if mRequest is needed
+ initializeRunTimeInfo(modelPoolInfos, requestPoolInfos);
+ // The model has serialized the operation in execution order.
+ for (const auto& operation : model.operations) {
+ int n = executeOperation(operation);
+ if (n != ANEURALNETWORKS_NO_ERROR) {
+ return n;
+ }
+ }
+ for (auto runtimeInfo : modelPoolInfos) {
+ runtimeInfo.update();
+ }
+ for (auto runtimeInfo : requestPoolInfos) {
+ runtimeInfo.update();
+ }
+ mModel = nullptr;
+ mRequest = nullptr;
+ VLOG(CPUEXE) << "Completed run normally";
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+bool CpuExecutor::initializeRunTimeInfo(const std::vector<RunTimePoolInfo>& modelPoolInfos,
+ const std::vector<RunTimePoolInfo>& requestPoolInfos) {
+ VLOG(CPUEXE) << "CpuExecutor::initializeRunTimeInfo";
+ const size_t count = mModel->operands.size();
+ mOperands.resize(count);
+
+ // Start by setting the runtime info to what's in the model.
+ for (size_t i = 0; i < count; i++) {
+ const Operand& from = mModel->operands[i];
+ RunTimeOperandInfo& to = mOperands[i];
+ to.type = from.type;
+ to.dimensions = from.dimensions;
+ to.scale = from.scale;
+ to.zeroPoint = from.zeroPoint;
+ to.length = from.location.length;
+ to.lifetime = from.lifetime;
+ switch (from.lifetime) {
+ case OperandLifeTime::TEMPORARY_VARIABLE:
+ to.buffer = nullptr;
+ to.numberOfUsesLeft = from.numberOfConsumers;
+ break;
+ case OperandLifeTime::CONSTANT_COPY:
+ to.buffer = const_cast<uint8_t*>(&mModel->operandValues[from.location.offset]);
+ to.numberOfUsesLeft = 0;
+ break;
+ case OperandLifeTime::CONSTANT_REFERENCE: {
+ auto poolIndex = from.location.poolIndex;
+ nnAssert(poolIndex < modelPoolInfos.size());
+ auto& r = modelPoolInfos[poolIndex];
+ to.buffer = r.buffer + from.location.offset;
+ to.numberOfUsesLeft = 0;
+ break;
+ }
+ case OperandLifeTime::MODEL_INPUT:
+ case OperandLifeTime::MODEL_OUTPUT:
+ case OperandLifeTime::NO_VALUE:
+ to.buffer = nullptr;
+ to.numberOfUsesLeft = 0;
+ break;
+ default:
+ nnAssert(false);
+ break;
+ }
+ }
+
+ // Adjust the runtime info for the arguments passed to the model,
+ // modifying the buffer location, and possibly the dimensions.
+ auto updateForArguments = [this, &requestPoolInfos](const std::vector<uint32_t>& indexes,
+ const hidl_vec<RequestArgument>& arguments) {
+ nnAssert(indexes.size() == arguments.size());
+ for (size_t i = 0; i < indexes.size(); i++) {
+ const uint32_t operandIndex = indexes[i];
+ const RequestArgument& from = arguments[i];
+ RunTimeOperandInfo& to = mOperands[operandIndex];
+ if (from.dimensions.size() > 0) {
+ // It's the responsibility of the caller to validate that
+ // from.dimensions only modifies the dimensions that were
+ // unspecified in the model. That's the case in SampleDriver.cpp
+ // with the call to validateRequest().
+ // TODO make sure that's the case for the default CPU path.
+ to.dimensions = from.dimensions;
+ }
+ if (from.hasNoValue) {
+ to.lifetime = OperandLifeTime::NO_VALUE;
+ nnAssert(to.buffer == nullptr);
+ } else {
+ auto poolIndex = from.location.poolIndex;
+ nnAssert(poolIndex < requestPoolInfos.size());
+ auto& r = requestPoolInfos[poolIndex];
+ to.buffer = r.buffer + from.location.offset;
+ }
+ }
+ };
+ updateForArguments(mModel->inputIndexes, mRequest->inputs);
+ updateForArguments(mModel->outputIndexes, mRequest->outputs);
+
+ return true;
+}
+
+void CpuExecutor::freeNoLongerUsedOperands(const std::vector<uint32_t>& inputs) {
+ for (uint32_t i : inputs) {
+ auto& info = mOperands[i];
+ // Check if it's a static or model input/output.
+ if (info.numberOfUsesLeft == 0) {
+ continue;
+ }
+ info.numberOfUsesLeft--;
+ if (info.numberOfUsesLeft == 0) {
+ nnAssert(info.buffer != nullptr);
+ delete[] info.buffer;
+ info.buffer = nullptr;
+ }
+ }
+}
+
+#ifdef NNFW_KERNEL
+#error NNFW_KERNEL should not be defined elsewhere.
+#else
+#define NNFW_KERNEL(_func_name_, _kernel_name_) \
+ auto _func_name_ = _kernel_name_; \
+ { \
+ auto target = std::getenv("NNFW_KERNEL_" #_kernel_name_); \
+ if (target != nullptr) \
+ { \
+ auto it = nnfw_kernels_##_kernel_name_.find(target); \
+ if (it != nnfw_kernels_##_kernel_name_.end()) \
+ { \
+ _func_name_ = it->second; \
+ } \
+ } \
+ }
+#endif
+
+int CpuExecutor::executeOperation(const Operation& operation) {
+ // VLOG(CPUEXE) << "CpuExecutor::executeOperation(" << toString(operation) << ")";
+ const hidl_vec<uint32_t>& ins = operation.inputs;
+ const hidl_vec<uint32_t>& outs = operation.outputs;
+ bool success = false;
+
+ // Function to verify that the number of input and output parameters
+ // matches what is expected. Also checks that all the parameters have
+ // values. This function is to be used only for operations that do not
+ // accept optional arguments.
+ // TODO Have a version that works for optional arguments.
+ auto allParametersPresent = [&operation, &ins, &outs, this](size_t requiredIns,
+ size_t requiredOuts) -> bool {
+ auto verify = [&operation, this](size_t requiredCount, const hidl_vec<uint32_t>& indexes,
+ const char* type) -> bool {
+ size_t actualCount = indexes.size();
+ if (actualCount != requiredCount) {
+ LOG(ERROR) << getOperationName(operation.type)
+ << ": Invalid number of " << type << " operands. Got " << actualCount
+ << " of " << requiredCount;
+ return false;
+ }
+ for (size_t i = 0; i < actualCount; i++) {
+ if (mOperands[indexes[i]].lifetime == OperandLifeTime::NO_VALUE) {
+ LOG(ERROR) << getOperationName(operation.type) << " " << type
+ << " operand " << i << " is required but missing.";
+ return false;
+ }
+ }
+ return true;
+ };
+ return verify(requiredIns, ins, "in") && verify(requiredOuts, outs, "out");
+ };
+
+ switch (operation.type) {
+#if 0 // REF-ANN
+ case OperationType::OEM_OPERATION: {
+ LOG(ERROR) << "OEM operation not supported for CPU execution";
+ success = false;
+ } break;
+#endif
+ case OperationType::ADD: {
+ if (!allParametersPresent(3, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& in1 = mOperands[ins[0]];
+ const RunTimeOperandInfo& in2 = mOperands[ins[1]];
+ int32_t activation = getScalarData<int32_t>(mOperands[ins[2]]);
+
+ RunTimeOperandInfo& out = mOperands[outs[0]];
+ Shape outShape = out.shape();
+
+ if (in1.type == OperandType::TENSOR_FLOAT32) {
+ success = addMulPrepare(in1.shape(), in2.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&out, outShape) &&
+ addFloat32(reinterpret_cast<const float*>(in1.buffer),
+ in1.shape(),
+ reinterpret_cast<const float*>(in2.buffer),
+ in2.shape(),
+ activation,
+ reinterpret_cast<float*>(out.buffer),
+ outShape);
+ } else if (in1.type == OperandType::TENSOR_QUANT8_ASYMM) {
+ success = addMulPrepare(in1.shape(), in2.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&out, outShape) &&
+ addQuant8(reinterpret_cast<const uint8_t*>(in1.buffer),
+ in1.shape(),
+ reinterpret_cast<const uint8_t*>(in2.buffer),
+ in2.shape(),
+ activation,
+ reinterpret_cast<uint8_t*>(out.buffer),
+ outShape);
+ }
+ } break;
+ case OperationType::MUL: {
+ if (!allParametersPresent(3, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& in1 = mOperands[ins[0]];
+ const RunTimeOperandInfo& in2 = mOperands[ins[1]];
+ int32_t activation = getScalarData<int32_t>(mOperands[ins[2]]);
+
+ RunTimeOperandInfo& out = mOperands[outs[0]];
+ Shape outShape = out.shape();
+
+ if (in1.type == OperandType::TENSOR_FLOAT32) {
+ success = addMulPrepare(in1.shape(), in2.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&out, outShape) &&
+ mulFloat32(reinterpret_cast<const float*>(in1.buffer),
+ in1.shape(),
+ reinterpret_cast<const float*>(in2.buffer),
+ in2.shape(),
+ activation,
+ reinterpret_cast<float*>(out.buffer),
+ outShape);
+ } else if (in1.type == OperandType::TENSOR_QUANT8_ASYMM) {
+ success = addMulPrepare(in1.shape(), in2.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&out, outShape) &&
+ mulQuant8(reinterpret_cast<const uint8_t*>(in1.buffer),
+ in1.shape(),
+ reinterpret_cast<const uint8_t*>(in2.buffer),
+ in2.shape(),
+ activation,
+ reinterpret_cast<uint8_t*>(out.buffer),
+ outShape);
+ }
+ } break;
+#if 0 // REF-ANN
+ case OperationType::FLOOR: {
+ if (!allParametersPresent(1, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& input = mOperands[ins[0]];
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ if (input.type == OperandType::TENSOR_FLOAT32) {
+ success = floorPrepare(input.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ floorFloat32(reinterpret_cast<const float*>(input.buffer),
+ reinterpret_cast<float*>(output.buffer),
+ outShape);
+ }
+ } break;
+ case OperationType::DEQUANTIZE: {
+ if (!allParametersPresent(1, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& input = mOperands[ins[0]];
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ if (input.type == OperandType::TENSOR_QUANT8_ASYMM) {
+ success = dequantizePrepare(input.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ dequantizeQuant8ToFloat32(
+ reinterpret_cast<const uint8_t*>(input.buffer),
+ reinterpret_cast<float*>(output.buffer),
+ input.shape());
+ }
+ } break;
+#endif
+ case OperationType::DEPTHWISE_CONV_2D: {
+ const size_t inCount = ins.size();
+ if ((inCount != 11 && inCount != 8) ||
+ !allParametersPresent(inCount, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& input = mOperands[ins[0]];
+ const RunTimeOperandInfo& filter = mOperands[ins[1]];
+ const RunTimeOperandInfo& bias = mOperands[ins[2]];
+
+ int32_t padding_left, padding_right;
+ int32_t padding_top, padding_bottom;
+ int32_t stride_width, stride_height;
+ int32_t depth_multiplier;
+ int32_t activation;
+
+ if (inCount == 11) {
+ padding_left = getScalarData<int32_t>(mOperands[ins[3]]);
+ padding_right = getScalarData<int32_t>(mOperands[ins[4]]);
+ padding_top = getScalarData<int32_t>(mOperands[ins[5]]);
+ padding_bottom = getScalarData<int32_t>(mOperands[ins[6]]);
+ stride_width = getScalarData<int32_t>(mOperands[ins[7]]);
+ stride_height = getScalarData<int32_t>(mOperands[ins[8]]);
+ depth_multiplier = getScalarData<int32_t>(mOperands[ins[9]]);
+ activation = getScalarData<int32_t>(mOperands[ins[10]]);
+ } else {
+ int32_t padding_implicit = getScalarData<int32_t>(mOperands[ins[3]]);
+ stride_width = getScalarData<int32_t>(mOperands[ins[4]]);
+ stride_height = getScalarData<int32_t>(mOperands[ins[5]]);
+ depth_multiplier = getScalarData<int32_t>(mOperands[ins[6]]);
+ activation = getScalarData<int32_t>(mOperands[ins[7]]);
+
+ Shape inputShape = input.shape();
+ Shape filterShape = filter.shape();
+ int32_t input_width = getSizeOfDimension(inputShape, 2);
+ int32_t input_height = getSizeOfDimension(inputShape, 1);
+ int32_t filter_width = getSizeOfDimension(filterShape, 2);
+ int32_t filter_height = getSizeOfDimension(filterShape, 1);
+ calculateExplicitPadding(input_width, stride_width,
+ filter_width, padding_implicit,
+ &padding_left, &padding_right);
+ calculateExplicitPadding(input_height, stride_height,
+ filter_height, padding_implicit,
+ &padding_top, &padding_bottom);
+ }
+
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ if (input.type == OperandType::TENSOR_FLOAT32) {
+ NNFW_KERNEL(func, depthwiseConvFloat32);
+ success = depthwiseConvPrepare(input.shape(), filter.shape(), bias.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ func(reinterpret_cast<const float*>(input.buffer),
+ input.shape(),
+ reinterpret_cast<const float*>(filter.buffer),
+ filter.shape(),
+ reinterpret_cast<const float*>(bias.buffer),
+ bias.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ depth_multiplier, activation,
+ reinterpret_cast<float*>(output.buffer),
+ outShape);
+ } else if (input.type == OperandType::TENSOR_QUANT8_ASYMM) {
+#if 0 // REF-ANN We don't support depthwiseConvQuant8 yet
+ success = depthwiseConvPrepare(input.shape(), filter.shape(), bias.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ depthwiseConvQuant8(reinterpret_cast<const uint8_t*>(input.buffer),
+ input.shape(),
+ reinterpret_cast<const uint8_t*>(filter.buffer),
+ filter.shape(),
+ reinterpret_cast<const int32_t*>(bias.buffer),
+ bias.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ depth_multiplier, activation,
+ reinterpret_cast<uint8_t*>(output.buffer),
+ outShape);
+#else // REF-ANN
+ LOG(ERROR) << getOperationName(operation.type) << " failed.";
+ NYI("We dont' support TENSOR_QUANT8_ASYMM yet.");
+#endif // REF-ANN
+ }
+
+ } break;
+ case OperationType::CONV_2D: {
+ const size_t inCount = ins.size();
+ if ((inCount != 10 && inCount != 7) ||
+ !allParametersPresent(inCount, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& input = mOperands[ins[0]];
+ const RunTimeOperandInfo& filter = mOperands[ins[1]];
+ const RunTimeOperandInfo& bias = mOperands[ins[2]];
+
+ int32_t padding_left, padding_right;
+ int32_t padding_top, padding_bottom;
+ int32_t stride_width, stride_height;
+ int32_t activation;
+
+ if (inCount == 10) {
+ padding_left = getScalarData<int32_t>(mOperands[ins[3]]);
+ padding_right = getScalarData<int32_t>(mOperands[ins[4]]);
+ padding_top = getScalarData<int32_t>(mOperands[ins[5]]);
+ padding_bottom = getScalarData<int32_t>(mOperands[ins[6]]);
+ stride_width = getScalarData<int32_t>(mOperands[ins[7]]);
+ stride_height = getScalarData<int32_t>(mOperands[ins[8]]);
+ activation = getScalarData<int32_t>(mOperands[ins[9]]);
+ } else {
+ int32_t padding_implicit = getScalarData<int32_t>(mOperands[ins[3]]);
+ stride_width = getScalarData<int32_t>(mOperands[ins[4]]);
+ stride_height = getScalarData<int32_t>(mOperands[ins[5]]);
+ activation = getScalarData<int32_t>(mOperands[ins[6]]);
+
+ Shape inputShape = input.shape();
+ Shape filterShape = filter.shape();
+ int32_t input_width = getSizeOfDimension(inputShape, 2);
+ int32_t input_height = getSizeOfDimension(inputShape, 1);
+ int32_t filter_width = getSizeOfDimension(filterShape, 2);
+ int32_t filter_height = getSizeOfDimension(filterShape, 1);
+ calculateExplicitPadding(input_width, stride_width,
+ filter_width, padding_implicit,
+ &padding_left, &padding_right);
+ calculateExplicitPadding(input_height, stride_height,
+ filter_height, padding_implicit,
+ &padding_top, &padding_bottom);
+ }
+
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ if (input.type == OperandType::TENSOR_FLOAT32) {
+ NNFW_KERNEL(func, convFloat32);
+ success = convPrepare(input.shape(), filter.shape(), bias.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ func(reinterpret_cast<const float*>(input.buffer), input.shape(),
+ reinterpret_cast<const float*>(filter.buffer), filter.shape(),
+ reinterpret_cast<const float*>(bias.buffer), bias.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height, activation,
+ reinterpret_cast<float*>(output.buffer), outShape);
+ } else if (input.type == OperandType::TENSOR_QUANT8_ASYMM) {
+ success = convPrepare(input.shape(), filter.shape(), bias.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ convQuant8(reinterpret_cast<const uint8_t*>(input.buffer),
+ input.shape(),
+ reinterpret_cast<const uint8_t*>(filter.buffer),
+ filter.shape(),
+ reinterpret_cast<const int32_t*>(bias.buffer),
+ bias.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height, activation,
+ reinterpret_cast<uint8_t*>(output.buffer),
+ outShape);
+ }
+ } break;
+ case OperationType::AVERAGE_POOL_2D: {
+ const size_t inCount = ins.size();
+ if ((inCount != 10 && inCount != 7) ||
+ !allParametersPresent(inCount, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& input = mOperands[ins[0]];
+
+ int32_t padding_left, padding_right;
+ int32_t padding_top, padding_bottom;
+ int32_t stride_width, stride_height;
+ int32_t filter_width, filter_height;
+ int32_t activation;
+
+ if (inCount == 10) {
+ padding_left = getScalarData<int32_t>(mOperands[ins[1]]);
+ padding_right = getScalarData<int32_t>(mOperands[ins[2]]);
+ padding_top = getScalarData<int32_t>(mOperands[ins[3]]);
+ padding_bottom = getScalarData<int32_t>(mOperands[ins[4]]);
+ stride_width = getScalarData<int32_t>(mOperands[ins[5]]);
+ stride_height = getScalarData<int32_t>(mOperands[ins[6]]);
+ filter_width = getScalarData<int32_t>(mOperands[ins[7]]);
+ filter_height = getScalarData<int32_t>(mOperands[ins[8]]);
+ activation = getScalarData<int32_t>(mOperands[ins[9]]);
+ } else {
+ int32_t padding_implicit = getScalarData<int32_t>(mOperands[ins[1]]);
+ stride_width = getScalarData<int32_t>(mOperands[ins[2]]);
+ stride_height = getScalarData<int32_t>(mOperands[ins[3]]);
+ filter_width = getScalarData<int32_t>(mOperands[ins[4]]);
+ filter_height = getScalarData<int32_t>(mOperands[ins[5]]);
+ activation = getScalarData<int32_t>(mOperands[ins[6]]);
+
+ Shape inputShape = input.shape();
+ int32_t input_width = getSizeOfDimension(inputShape, 2);
+ int32_t input_height = getSizeOfDimension(inputShape, 1);
+ calculateExplicitPadding(input_width, stride_width,
+ filter_width, padding_implicit,
+ &padding_left, &padding_right);
+ calculateExplicitPadding(input_height, stride_height,
+ filter_height, padding_implicit,
+ &padding_top, &padding_bottom);
+ }
+
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ if (input.type == OperandType::TENSOR_FLOAT32) {
+ NNFW_KERNEL(func, averagePoolFloat32);
+ success = genericPoolingPrepare(input.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ func(reinterpret_cast<const float*>(input.buffer),
+ input.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height, activation,
+ reinterpret_cast<float*>(output.buffer),
+ outShape);
+ } else if (input.type == OperandType::TENSOR_QUANT8_ASYMM) {
+ success = genericPoolingPrepare(input.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ averagePoolQuant8(reinterpret_cast<const uint8_t*>(input.buffer),
+ input.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height, activation,
+ reinterpret_cast<uint8_t*>(output.buffer),
+ outShape);
+ }
+ } break;
+#if 0 // REF-ANN
+ case OperationType::L2_POOL_2D: {
+ const size_t inCount = ins.size();
+ if ((inCount != 10 && inCount != 7) ||
+ !allParametersPresent(inCount, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& input = mOperands[ins[0]];
+
+ int32_t padding_left, padding_right;
+ int32_t padding_top, padding_bottom;
+ int32_t stride_width, stride_height;
+ int32_t filter_width, filter_height;
+ int32_t activation;
+
+ if (inCount == 10) {
+ padding_left = getScalarData<int32_t>(mOperands[ins[1]]);
+ padding_right = getScalarData<int32_t>(mOperands[ins[2]]);
+ padding_top = getScalarData<int32_t>(mOperands[ins[3]]);
+ padding_bottom = getScalarData<int32_t>(mOperands[ins[4]]);
+ stride_width = getScalarData<int32_t>(mOperands[ins[5]]);
+ stride_height = getScalarData<int32_t>(mOperands[ins[6]]);
+ filter_width = getScalarData<int32_t>(mOperands[ins[7]]);
+ filter_height = getScalarData<int32_t>(mOperands[ins[8]]);
+ activation = getScalarData<int32_t>(mOperands[ins[9]]);
+ } else {
+ int32_t padding_implicit = getScalarData<int32_t>(mOperands[ins[1]]);
+ stride_width = getScalarData<int32_t>(mOperands[ins[2]]);
+ stride_height = getScalarData<int32_t>(mOperands[ins[3]]);
+ filter_width = getScalarData<int32_t>(mOperands[ins[4]]);
+ filter_height = getScalarData<int32_t>(mOperands[ins[5]]);
+ activation = getScalarData<int32_t>(mOperands[ins[6]]);
+
+ Shape inputShape = input.shape();
+ int32_t input_width = getSizeOfDimension(inputShape, 2);
+ int32_t input_height = getSizeOfDimension(inputShape, 1);
+ calculateExplicitPadding(input_width, stride_width,
+ filter_width, padding_implicit,
+ &padding_left, &padding_right);
+ calculateExplicitPadding(input_height, stride_height,
+ filter_height, padding_implicit,
+ &padding_top, &padding_bottom);
+ }
+
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ if (input.type == OperandType::TENSOR_FLOAT32) {
+ success = genericPoolingPrepare(input.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ l2PoolFloat32(reinterpret_cast<const float*>(input.buffer),
+ input.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height, activation,
+ reinterpret_cast<float*>(output.buffer),
+ outShape);
+ }
+ } break;
+#endif // REF-ANN
+ case OperationType::MAX_POOL_2D: {
+ const size_t inCount = ins.size();
+ if ((inCount != 10 && inCount != 7) ||
+ !allParametersPresent(inCount, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& input = mOperands[ins[0]];
+
+ int32_t padding_left, padding_right;
+ int32_t padding_top, padding_bottom;
+ int32_t stride_width, stride_height;
+ int32_t filter_width, filter_height;
+ int32_t activation;
+
+ if (inCount == 10) {
+ padding_left = getScalarData<int32_t>(mOperands[ins[1]]);
+ padding_right = getScalarData<int32_t>(mOperands[ins[2]]);
+ padding_top = getScalarData<int32_t>(mOperands[ins[3]]);
+ padding_bottom = getScalarData<int32_t>(mOperands[ins[4]]);
+ stride_width = getScalarData<int32_t>(mOperands[ins[5]]);
+ stride_height = getScalarData<int32_t>(mOperands[ins[6]]);
+ filter_width = getScalarData<int32_t>(mOperands[ins[7]]);
+ filter_height = getScalarData<int32_t>(mOperands[ins[8]]);
+ activation = getScalarData<int32_t>(mOperands[ins[9]]);
+ } else {
+ int32_t padding_implicit = getScalarData<int32_t>(mOperands[ins[1]]);
+ stride_width = getScalarData<int32_t>(mOperands[ins[2]]);
+ stride_height = getScalarData<int32_t>(mOperands[ins[3]]);
+ filter_width = getScalarData<int32_t>(mOperands[ins[4]]);
+ filter_height = getScalarData<int32_t>(mOperands[ins[5]]);
+ activation = getScalarData<int32_t>(mOperands[ins[6]]);
+
+ Shape inputShape = input.shape();
+ int32_t input_width = getSizeOfDimension(inputShape, 2);
+ int32_t input_height = getSizeOfDimension(inputShape, 1);
+ calculateExplicitPadding(input_width, stride_width,
+ filter_width, padding_implicit,
+ &padding_left, &padding_right);
+ calculateExplicitPadding(input_height, stride_height,
+ filter_height, padding_implicit,
+ &padding_top, &padding_bottom);
+ }
+
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ if (input.type == OperandType::TENSOR_FLOAT32) {
+ NNFW_KERNEL(func, maxPoolFloat32);
+ success = genericPoolingPrepare(input.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ func(reinterpret_cast<const float*>(input.buffer),
+ input.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height, activation,
+ reinterpret_cast<float*>(output.buffer),
+ outShape);
+ } else if (input.type == OperandType::TENSOR_QUANT8_ASYMM) {
+ success = genericPoolingPrepare(input.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height,
+ &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ maxPoolQuant8(reinterpret_cast<const uint8_t*>(input.buffer),
+ input.shape(),
+ padding_left, padding_right,
+ padding_top, padding_bottom,
+ stride_width, stride_height,
+ filter_width, filter_height, activation,
+ reinterpret_cast<uint8_t*>(output.buffer),
+ outShape);
+ }
+
+ } break;
+ case OperationType::RELU: {
+ if (!allParametersPresent(1, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& input = mOperands[ins[0]];
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ if (input.type == OperandType::TENSOR_FLOAT32) {
+ success = genericActivationPrepare(input.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ reluFloat32(reinterpret_cast<const float*>(input.buffer),
+ input.shape(),
+ reinterpret_cast<float*>(output.buffer),
+ outShape);
+ } else if (input.type == OperandType::TENSOR_QUANT8_ASYMM) {
+ success = genericActivationPrepare(input.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ reluQuant8(reinterpret_cast<const uint8_t*>(input.buffer),
+ input.shape(),
+ reinterpret_cast<uint8_t*>(output.buffer),
+ outShape);
+ }
+ } break;
+#if 0 // REF-ANN
+ case OperationType::RELU1: {
+ if (!allParametersPresent(1, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& input = mOperands[ins[0]];
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ if (input.type == OperandType::TENSOR_FLOAT32) {
+ success = genericActivationPrepare(input.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ relu1Float32(reinterpret_cast<const float*>(input.buffer),
+ input.shape(),
+ reinterpret_cast<float*>(output.buffer),
+ outShape);
+ } else if (input.type == OperandType::TENSOR_QUANT8_ASYMM) {
+ success = genericActivationPrepare(input.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ relu1Quant8(reinterpret_cast<const uint8_t*>(input.buffer),
+ input.shape(),
+ reinterpret_cast<uint8_t*>(output.buffer),
+ outShape);
+ }
+ } break;
+#endif // REF-ANN
+ case OperationType::RELU6: {
+ if (!allParametersPresent(1, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& input = mOperands[ins[0]];
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ if (input.type == OperandType::TENSOR_FLOAT32) {
+ success = genericActivationPrepare(input.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ relu6Float32(reinterpret_cast<const float*>(input.buffer),
+ input.shape(),
+ reinterpret_cast<float*>(output.buffer),
+ outShape);
+ } else if (input.type == OperandType::TENSOR_QUANT8_ASYMM) {
+ success = genericActivationPrepare(input.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ relu6Quant8(reinterpret_cast<const uint8_t*>(input.buffer),
+ input.shape(),
+ reinterpret_cast<uint8_t*>(output.buffer),
+ outShape);
+ }
+ } break;
+#if 0 // REF-ANN
+ case OperationType::TANH: {
+ if (!allParametersPresent(1, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& input = mOperands[ins[0]];
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ if (input.type == OperandType::TENSOR_FLOAT32) {
+ success = genericActivationPrepare(input.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ tanhFloat32(reinterpret_cast<const float*>(input.buffer),
+ input.shape(),
+ reinterpret_cast<float*>(output.buffer),
+ outShape);
+ }
+ } break;
+ case OperationType::LOGISTIC: {
+ if (!allParametersPresent(1, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& input = mOperands[ins[0]];
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ if (input.type == OperandType::TENSOR_FLOAT32) {
+ success = genericActivationPrepare(input.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ logisticFloat32(reinterpret_cast<const float*>(input.buffer),
+ input.shape(),
+ reinterpret_cast<float*>(output.buffer),
+ outShape);
+ } else if (input.type == OperandType::TENSOR_QUANT8_ASYMM) {
+ success = genericActivationPrepare(input.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ logisticQuant8(reinterpret_cast<const uint8_t*>(input.buffer),
+ input.shape(),
+ reinterpret_cast<uint8_t*>(output.buffer),
+ outShape);
+ }
+ } break;
+#endif // REF-ANN
+ case OperationType::SOFTMAX: {
+ if (!allParametersPresent(2, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ RunTimeOperandInfo& input = mOperands[ins[0]];
+ float beta = getScalarData<float>(mOperands[ins[1]]);
+ if (beta <= 0.0f) {
+ LOG(ERROR) << "beta must be positive for softmax";
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ if (input.type == OperandType::TENSOR_FLOAT32) {
+ NNFW_KERNEL(func, softmaxFloat32);
+ success = genericActivationPrepare(input.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ func(reinterpret_cast<const float*>(input.buffer),
+ input.shape(),
+ beta,
+ reinterpret_cast<float*>(output.buffer),
+ output.shape());
+ } else if (input.type == OperandType::TENSOR_QUANT8_ASYMM) {
+ success = genericActivationPrepare(input.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ softmaxQuant8(reinterpret_cast<const uint8_t*>(input.buffer),
+ input.shape(),
+ beta,
+ reinterpret_cast<uint8_t*>(output.buffer),
+ output.shape());
+ }
+ } break;
+ case OperationType::FULLY_CONNECTED: {
+ if (!allParametersPresent(4, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ RunTimeOperandInfo& input = mOperands[ins[0]];
+ RunTimeOperandInfo& weights = mOperands[ins[1]];
+ RunTimeOperandInfo& bias = mOperands[ins[2]];
+
+ int32_t activation = getScalarData<int32_t>(mOperands[ins[3]]);
+
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ if (input.type == OperandType::TENSOR_FLOAT32) {
+ NNFW_KERNEL(func, fullyConnectedFloat32);
+ success = fullyConnectedPrepare(input.shape(), weights.shape(), bias.shape(),
+ &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ func(reinterpret_cast<const float*>(input.buffer),
+ input.shape(),
+ reinterpret_cast<const float*>(weights.buffer),
+ weights.shape(),
+ reinterpret_cast<const float*>(bias.buffer),
+ bias.shape(),
+ activation,
+ reinterpret_cast<float*>(output.buffer),
+ outShape);
+ } else if (input.type == OperandType::TENSOR_QUANT8_ASYMM) {
+ success = fullyConnectedPrepare(input.shape(), weights.shape(), bias.shape(),
+ &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ fullyConnectedQuant8(reinterpret_cast<const uint8_t*>(input.buffer),
+ input.shape(),
+ reinterpret_cast<const uint8_t*>(weights.buffer),
+ weights.shape(),
+ reinterpret_cast<const int32_t*>(bias.buffer),
+ bias.shape(),
+ activation,
+ reinterpret_cast<uint8_t*>(output.buffer),
+ outShape);
+ }
+ } break;
+ case OperationType::CONCATENATION: {
+ if (outs.size() != 1 || ins.size() < 2) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ int numInputTensors = ins.size() - 1;
+ int32_t axis = getScalarData<int32_t>(mOperands[ins[numInputTensors]]);
+
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ const RunTimeOperandInfo& firstInput = mOperands[ins[0]];
+ if (firstInput.type == OperandType::TENSOR_FLOAT32) {
+ std::vector<Shape> inputShapes(numInputTensors);
+ std::vector<const float*> inputDataPtrs(numInputTensors);
+
+ for (int i=0; i<numInputTensors; i++) {
+ RunTimeOperandInfo& input = mOperands[ins[i]];
+ inputShapes[i] = input.shape();
+ inputDataPtrs[i] = reinterpret_cast<const float*>(input.buffer);
+ }
+ NNFW_KERNEL(func, concatenationFloat32);
+ success = concatenationPrepare(inputShapes, axis, &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ func(inputDataPtrs, inputShapes, axis,
+ reinterpret_cast<float*>(output.buffer), outShape);
+ } else if (firstInput.type == OperandType::TENSOR_QUANT8_ASYMM) {
+ std::vector<Shape> inputShapes(numInputTensors);
+ std::vector<const uint8_t*> inputDataPtrs(numInputTensors);
+
+ for (int i=0; i<numInputTensors; i++) {
+ RunTimeOperandInfo& input = mOperands[ins[i]];
+ inputShapes[i] = input.shape();
+ inputDataPtrs[i] = reinterpret_cast<const uint8_t*>(input.buffer);
+ }
+ success = concatenationPrepare(inputShapes, axis, &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ concatenationQuant8(inputDataPtrs, inputShapes, axis,
+ reinterpret_cast<uint8_t*>(output.buffer),
+ outShape);
+ }
+ } break;
+#if 0 // REF-ANN
+ case OperationType::L2_NORMALIZATION: {
+ if (!allParametersPresent(1, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& input = mOperands[ins[0]];
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ if (input.type == OperandType::TENSOR_FLOAT32) {
+ success = genericNormalizationPrepare(input.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ l2normFloat32(reinterpret_cast<const float*>(input.buffer),
+ input.shape(),
+ reinterpret_cast<float*>(output.buffer),
+ outShape);
+ } else if (input.type == OperandType::TENSOR_QUANT8_ASYMM) {
+ success = genericNormalizationPrepare(input.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ l2normQuant8(reinterpret_cast<const uint8_t*>(input.buffer),
+ input.shape(),
+ reinterpret_cast<uint8_t*>(output.buffer),
+ outShape);
+ }
+ } break;
+ case OperationType::LOCAL_RESPONSE_NORMALIZATION: {
+ if (!allParametersPresent(5, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& input = mOperands[ins[0]];
+ int32_t radius = getScalarData<int32_t>(mOperands[ins[1]]);
+ float bias = getScalarData<float>(mOperands[ins[2]]);
+ float alpha = getScalarData<float>(mOperands[ins[3]]);
+ float beta = getScalarData<float>(mOperands[ins[4]]);
+
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ if (input.type == OperandType::TENSOR_FLOAT32) {
+ success = genericNormalizationPrepare(input.shape(), &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ localResponseNormFloat32(reinterpret_cast<const float*>(input.buffer),
+ input.shape(),
+ radius, bias, alpha, beta,
+ reinterpret_cast<float*>(output.buffer),
+ outShape);
+ }
+ } break;
+#endif //REF_ANN
+ case OperationType::RESHAPE: {
+ if (!allParametersPresent(2, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& input = mOperands[ins[0]];
+ const RunTimeOperandInfo& targetShape = mOperands[ins[1]];
+
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ success = reshapePrepare(input.shape(),
+ reinterpret_cast<const int32_t*>(targetShape.buffer),
+ getNumberOfElements(targetShape.shape()),
+ &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ reshapeGeneric(reinterpret_cast<const void*>(input.buffer),
+ input.shape(),
+ reinterpret_cast<void*>(output.buffer),
+ outShape);
+ } break;
+#if 0 //REF-ANN
+ case OperationType::RESIZE_BILINEAR: {
+ if (!allParametersPresent(3, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& input = mOperands[ins[0]];
+ int32_t width = getScalarData<int32_t>(mOperands[ins[1]]);
+ int32_t height = getScalarData<int32_t>(mOperands[ins[2]]);
+
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ if (input.type == OperandType::TENSOR_FLOAT32) {
+ success = resizeBilinearPrepare(input.shape(),
+ width, height,
+ &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ resizeBilinearFloat32(reinterpret_cast<const float*>(input.buffer),
+ input.shape(),
+ reinterpret_cast<float*>(output.buffer),
+ outShape);
+ }
+ } break;
+ case OperationType::DEPTH_TO_SPACE: {
+ if (!allParametersPresent(2, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& input = mOperands[ins[0]];
+ int32_t blockSize = getScalarData<int32_t>(mOperands[ins[1]]);
+
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ success = depthToSpacePrepare(input.shape(),
+ blockSize,
+ &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ depthToSpaceGeneric(input.buffer,
+ input.shape(),
+ blockSize,
+ output.buffer,
+ outShape);
+ } break;
+ case OperationType::SPACE_TO_DEPTH: {
+ if (!allParametersPresent(2, 1)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ const RunTimeOperandInfo& input = mOperands[ins[0]];
+ int32_t blockSize = getScalarData<int32_t>(mOperands[ins[1]]);
+
+ RunTimeOperandInfo& output = mOperands[outs[0]];
+ Shape outShape = output.shape();
+
+ success = spaceToDepthPrepare(input.shape(),
+ blockSize,
+ &outShape) &&
+ setInfoAndAllocateIfNeeded(&output, outShape) &&
+ spaceToDepthGeneric(input.buffer,
+ input.shape(),
+ blockSize,
+ output.buffer,
+ outShape);
+ } break;
+ case OperationType::EMBEDDING_LOOKUP: {
+ const RunTimeOperandInfo &values =
+ mOperands[ins[EmbeddingLookup::kValueTensor]];
+ const RunTimeOperandInfo &lookups =
+ mOperands[ins[EmbeddingLookup::kLookupTensor]];
+ RunTimeOperandInfo &output =
+ mOperands[outs[EmbeddingLookup::kOutputTensor]];
+
+ Shape outputShape;
+ EmbeddingLookup lookup(operation, mOperands);
+
+ success = embeddingLookupPrepare(values.shape(), lookups.shape(), &outputShape) &&
+ setInfoAndAllocateIfNeeded(&output, outputShape) &&
+ lookup.Eval();
+ } break;
+ case OperationType::HASHTABLE_LOOKUP: {
+ const RunTimeOperandInfo &lookups =
+ mOperands[ins[HashtableLookup::kLookupTensor]];
+ const RunTimeOperandInfo &keys =
+ mOperands[ins[HashtableLookup::kKeyTensor]];
+ const RunTimeOperandInfo &values =
+ mOperands[ins[HashtableLookup::kValueTensor]];
+
+ RunTimeOperandInfo &output =
+ mOperands[outs[HashtableLookup::kOutputTensor]];
+ RunTimeOperandInfo &hits =
+ mOperands[outs[HashtableLookup::kHitsTensor]];
+
+ Shape outputShape, hitShape;
+ HashtableLookup lookup(operation, mOperands);
+
+ success = hashtableLookupPrepare(lookups.shape(), keys.shape(), values.shape(),
+ &outputShape, &hitShape) &&
+ setInfoAndAllocateIfNeeded(&output, outputShape) &&
+ setInfoAndAllocateIfNeeded(&hits, hitShape) &&
+ lookup.Eval();
+ } break;
+ case OperationType::LSH_PROJECTION: {
+ RunTimeOperandInfo &output =
+ mOperands[outs[LSHProjection::kOutputTensor]];
+
+ Shape outputShape;
+ LSHProjection lsh(operation, mOperands);
+
+ success = LSHProjection::Prepare(operation, mOperands,
+ &outputShape) &&
+ setInfoAndAllocateIfNeeded(&output, outputShape) &&
+ lsh.Eval();
+ } break;
+ case OperationType::LSTM: {
+ RunTimeOperandInfo &scratch =
+ mOperands[outs[LSTMCell::kScratchBufferTensor]];
+ RunTimeOperandInfo &outputStateOut =
+ mOperands[outs[LSTMCell::kOutputStateOutTensor]];
+ RunTimeOperandInfo &cellStateOut =
+ mOperands[outs[LSTMCell::kCellStateOutTensor]];
+ RunTimeOperandInfo &output =
+ mOperands[outs[LSTMCell::kOutputTensor]];
+
+ Shape scratchShape, outputStateShape, cellStateShape, outputShape;
+ LSTMCell lstm_cell(operation, mOperands);
+
+ success = LSTMCell::Prepare(operation, mOperands,
+ &scratchShape, &outputStateShape,
+ &cellStateShape, &outputShape) &&
+ setInfoAndAllocateIfNeeded(&scratch, scratchShape) &&
+ setInfoAndAllocateIfNeeded(&outputStateOut, outputStateShape) &&
+ setInfoAndAllocateIfNeeded(&cellStateOut, cellStateShape) &&
+ setInfoAndAllocateIfNeeded(&output, outputShape) &&
+ lstm_cell.Eval();
+ } break;
+ case OperationType::RNN: {
+ RunTimeOperandInfo &hiddenStateOut =
+ mOperands[outs[RNN::kHiddenStateOutTensor]];
+ RunTimeOperandInfo &output =
+ mOperands[outs[RNN::kOutputTensor]];
+
+ Shape hiddenStateShape, outputShape;
+ RNN rnn_cell(operation, mOperands);
+
+ success = RNN::Prepare(operation, mOperands,
+ &hiddenStateShape, &outputShape) &&
+ setInfoAndAllocateIfNeeded(&hiddenStateOut, hiddenStateShape) &&
+ setInfoAndAllocateIfNeeded(&output, outputShape) &&
+ rnn_cell.Eval();
+ } break;
+ case OperationType::SVDF: {
+ RunTimeOperandInfo &stateOut =
+ mOperands[outs[SVDF::kStateOutTensor]];
+ RunTimeOperandInfo &output =
+ mOperands[outs[SVDF::kOutputTensor]];
+
+ Shape stateShape, outputShape;
+ SVDF svdf(operation, mOperands);
+
+ success = SVDF::Prepare(operation, mOperands,
+ &stateShape, &outputShape) &&
+ setInfoAndAllocateIfNeeded(&stateOut, stateShape) &&
+ setInfoAndAllocateIfNeeded(&output, outputShape) &&
+ svdf.Eval();
+ } break;
+#endif // REF-ANN
+ default:
+#if 0 // TODO-NNRT : Enable if it is needed.
+ nnAssert(false);
+#endif
+ NYI(getOperationName(operation.type));
+ break;
+ }
+ if (!success) {
+ LOG(ERROR) << getOperationName(operation.type) << " failed.";
+ return ANEURALNETWORKS_OP_FAILED;
+ }
+
+ freeNoLongerUsedOperands(ins);
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+#ifdef NNFW_KERNEL
+#undef NNFW_KERNEL
+#else
+#error NNFW_KERNEL should be defined
+#endif
+
+} // namespace rt
+} // namespace nnfw
diff --git a/runtimes/nn/common/Logging.cpp b/runtimes/nn/common/Logging.cpp
new file mode 100644
index 000000000..21107bcf9
--- /dev/null
+++ b/runtimes/nn/common/Logging.cpp
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "Logging.h"
+
+namespace nnfw {
+namespace rt{
+
+BoolConfig::BoolConfig(const std::string &tag, bool default_value) : _value(default_value)
+{
+ const char *str = getenv(tag.c_str());
+
+ if (str != nullptr)
+ {
+ std::string s = std::string(str);
+ _value = ((s != "0") && (s != "false") && (s != "FALSE"));
+ }
+}
+
+VLogging::VLogging()
+{
+ BoolConfig vlog_enabled("VLOG", false);
+ _enabled = vlog_enabled.value();
+}
+
+VLogging& VLogging::access()
+{
+ static VLogging instance;
+ return instance;
+}
+
+std::ostream& VLogging::stream()
+{
+ return std::cout;
+}
+
+} // namespace rt
+} // namespace nnfw
diff --git a/runtimes/nn/common/NNFWKernels.cpp b/runtimes/nn/common/NNFWKernels.cpp
new file mode 100644
index 000000000..dd5c2d2bc
--- /dev/null
+++ b/runtimes/nn/common/NNFWKernels.cpp
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "CpuExecutor.h"
+#include "NeuralNetworks.h"
+#include "Operations.h"
+
+#include "NNFWKernels.h"
+
+#ifdef USE_NNFW_ACL_KERNELS
+#include "kernel/acl/Conv2D.h"
+#include "kernel/acl/DepthwiseConv2D.h"
+#include "kernel/acl/Pooling.h"
+#include "kernel/acl/Softmax.h"
+#include "kernel/acl/FullyConnected.h"
+#include "kernel/acl/Concatenation.h"
+#include "kernel/acl/Reshape.h"
+#include "kernel/acl/nnfw_kernel_acl.h"
+#endif // USE_NNFW_ACL_KERNELS
+
+#include <map>
+
+namespace nnfw {
+namespace rt {
+
+#define NNFW_KERNEL(Name, Ret, Params) \
+ NNFW_KERNELS_##Name nnfw_kernels_##Name;
+
+#include "NNFWKernels.lst"
+#undef NNFW_KERNEL
+
+void init_nnfw_kernels()
+{
+#ifdef USE_NNFW_ACL_KERNELS
+ nnfw::kernel::acl::Initialize();
+
+ nnfw_kernels_convFloat32["acl"] = nnfw::kernel::acl::convFloat32;
+ nnfw_kernels_depthwiseConvFloat32["acl"] = nnfw::kernel::acl::depthwiseConvFloat32;
+ nnfw_kernels_averagePoolFloat32["acl"] = nnfw::kernel::acl::averagePoolFloat32;
+ nnfw_kernels_maxPoolFloat32["acl"] = nnfw::kernel::acl::maxPoolFloat32;
+ nnfw_kernels_softmaxFloat32["acl"] = nnfw::kernel::acl::softmaxFloat32;
+ nnfw_kernels_fullyConnectedFloat32["acl"] = nnfw::kernel::acl::fullyConnectedFloat32;
+ nnfw_kernels_concatenationFloat32["acl"] = nnfw::kernel::acl::concatenationFloat32;
+ nnfw_kernels_reshapeGeneric["acl"] = nnfw::kernel::acl::reshapeGeneric;
+
+ nnfw_kernels_convFloat32["neon"] = nnfw::kernel::acl::neon::convFloat32;
+ nnfw_kernels_depthwiseConvFloat32["neon"] = nnfw::kernel::acl::neon::depthwiseConvFloat32;
+ nnfw_kernels_averagePoolFloat32["neon"] = nnfw::kernel::acl::neon::averagePoolFloat32;
+ nnfw_kernels_maxPoolFloat32["neon"] = nnfw::kernel::acl::neon::maxPoolFloat32;
+ nnfw_kernels_softmaxFloat32["neon"] = nnfw::kernel::acl::neon::softmaxFloat32;
+ nnfw_kernels_fullyConnectedFloat32["neon"] = nnfw::kernel::acl::neon::fullyConnectedFloat32;
+ nnfw_kernels_concatenationFloat32["neon"] = nnfw::kernel::acl::neon::concatenationFloat32;
+ nnfw_kernels_reshapeGeneric["neon"] = nnfw::kernel::acl::reshapeGeneric;
+#endif // USE_NNFW_ACL_KERNELS
+ return;
+}
+
+} // namespace rt
+} // namespace nnfw
diff --git a/runtimes/nn/common/NNFWKernels.h b/runtimes/nn/common/NNFWKernels.h
new file mode 100644
index 000000000..f38431d15
--- /dev/null
+++ b/runtimes/nn/common/NNFWKernels.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_NNFW_KERNELS_H__
+#define __NNFW_RT_NNFW_KERNELS_H__
+
+#include "CpuExecutor.h"
+#include "NeuralNetworks.h"
+#include "Operations.h"
+
+#include <map>
+
+namespace nnfw {
+namespace rt {
+
+#define NNFW_KERNEL(Name, Ret, Params) \
+ typedef Ret (*KERNEL_##Name) Params; \
+ typedef std::map<std::string, KERNEL_##Name> NNFW_KERNELS_##Name; \
+ extern NNFW_KERNELS_##Name nnfw_kernels_##Name;
+
+#include "NNFWKernels.lst"
+#undef NNFW_KERNEL
+
+void init_nnfw_kernels();
+
+} // namespace rt
+} // namespace nnfw
+#endif // __NNFW_RT_NNFW_KERNELS_H__
diff --git a/runtimes/nn/common/NNFWKernels.lst b/runtimes/nn/common/NNFWKernels.lst
new file mode 100644
index 000000000..2a60e0120
--- /dev/null
+++ b/runtimes/nn/common/NNFWKernels.lst
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+NNFW_KERNEL(convFloat32, bool,
+ (const float* inputData, const Shape& inputShape,
+ const float* filterData, const Shape& filterShape,
+ const float* biasData, const Shape& biasShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t activation,
+ float* outputData, const Shape& outputShape)
+ );
+
+NNFW_KERNEL(depthwiseConvFloat32, bool,
+ (const float* inputData, const Shape& inputShape,
+ const float* filterData, const Shape& filterShape,
+ const float* biasData, const Shape& biasShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t depth_multiplier, int32_t activation,
+ float* outputData, const Shape& outputShape)
+ );
+
+NNFW_KERNEL(averagePoolFloat32, bool,
+ (const float* inputData, const Shape& inputShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height, int32_t activation,
+ float* outputData, const Shape& outputShape)
+ );
+
+NNFW_KERNEL(maxPoolFloat32, bool,
+ (const float* inputData, const Shape& inputShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height, int32_t activation,
+ float* outputData, const Shape& outputShape)
+ );
+
+NNFW_KERNEL(softmaxFloat32, bool,
+ (const float* inputData, const Shape& inputShape,
+ const float beta,
+ float* outputData, const Shape& outputShape)
+ );
+
+NNFW_KERNEL(fullyConnectedFloat32, bool,
+ (const float* inputData, const Shape& inputShape,
+ const float* weights, const Shape& weightsShape,
+ const float* biasData, const Shape& biasShape,
+ int32_t activation,
+ float* outputData, const Shape& outputShape)
+ );
+
+NNFW_KERNEL(concatenationFloat32, bool,
+ (const std::vector<const float*>& inputDataPtrs,
+ const std::vector<Shape>& inputShapes, int32_t axis,
+ float* outputData, const Shape& outputShape)
+ );
+
+NNFW_KERNEL(reshapeGeneric, bool,
+ (const void* inputData, const Shape& inputShape,
+ void* outputData, const Shape& outputShape)
+ );
diff --git a/runtimes/nn/common/OperationsUtils.cpp b/runtimes/nn/common/OperationsUtils.cpp
new file mode 100644
index 000000000..04e54d0f3
--- /dev/null
+++ b/runtimes/nn/common/OperationsUtils.cpp
@@ -0,0 +1,565 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "OperationsUtils"
+
+#include "OperationsUtils.h"
+#include "Operations.h"
+#include "Utils.h"
+
+// TODO-NNRT In Android NN, ActivationFunctor.h is included from Utils.h through RNN.h
+// Remove this when Utils.h includes RNN.h
+#include "ActivationFunctor.h"
+
+#include <cmath>
+
+namespace nnfw {
+namespace rt {
+
+bool SameShape(const Shape& in1, const Shape& in2) {
+ if (in1.type != in2.type || in1.dimensions.size() != in2.dimensions.size()) {
+ return false;
+ }
+ for (size_t i = 0; i < in1.dimensions.size(); i++) {
+ if (in1.dimensions[i] != in2.dimensions[i]) {
+ return false;
+ }
+ }
+ return true;
+}
+
+bool SetShape(const Shape& in, Shape* out) {
+ if (in.type != out->type || in.dimensions.size() != out->dimensions.size()) {
+ return false;
+ }
+ out->dimensions = in.dimensions;
+ return true;
+}
+
+uint32_t getNumberOfElements(const Shape& shape) {
+ uint32_t count = 1;
+ for (size_t i = 0; i < shape.dimensions.size(); i++) {
+ count *= shape.dimensions[i];
+ }
+ return count;
+}
+
+uint32_t getNumberOfDimensions(const Shape& shape) {
+ return shape.dimensions.size();
+}
+
+uint32_t getSizeOfDimension(const Shape& shape, uint32_t dimensionIdx) {
+ if (dimensionIdx >= shape.dimensions.size()) {
+ // TODO, log the error
+ return 0;
+ }
+ return shape.dimensions[dimensionIdx];
+}
+
+bool QuantizeMultiplierSmallerThanOne(double double_multiplier,
+ int32_t* quantized_multiplier,
+ int32_t* right_shift) {
+ NN_OPS_CHECK(double_multiplier >= 0.);
+ NN_OPS_CHECK(double_multiplier < 1.);
+ if (double_multiplier == 0.) {
+ *quantized_multiplier = 0;
+ *right_shift = 0;
+ return true;
+ }
+ NN_OPS_CHECK(double_multiplier > 0.);
+ const double q = std::frexp(double_multiplier, right_shift);
+ *right_shift *= -1;
+ int64_t q_fixed = static_cast<int64_t>(std::round(q * (1ll << 31)));
+ NN_OPS_CHECK(q_fixed <= (1ll << 31));
+ if (q_fixed == (1ll << 31)) {
+ q_fixed /= 2;
+ --*right_shift;
+ }
+ NN_OPS_CHECK(*right_shift >= 0);
+ NN_OPS_CHECK(q_fixed <= std::numeric_limits<int32_t>::max());
+ *quantized_multiplier = static_cast<int32_t>(q_fixed);
+ return true;
+}
+
+bool QuantizeMultiplierGreaterThanOne(double double_multiplier,
+ int32_t* quantized_multiplier,
+ int* left_shift) {
+ NN_OPS_CHECK(double_multiplier > 1.);
+ const double q = std::frexp(double_multiplier, left_shift);
+ int64_t q_fixed = static_cast<int64_t>(std::round(q * (1ll << 31)));
+ NN_OPS_CHECK(q_fixed <= (1ll << 31));
+ if (q_fixed == (1ll << 31)) {
+ q_fixed /= 2;
+ ++*left_shift;
+ }
+ NN_OPS_CHECK(*left_shift >= 0);
+ NN_OPS_CHECK(q_fixed <= std::numeric_limits<int32_t>::max());
+ *quantized_multiplier = static_cast<int32_t>(q_fixed);
+ return true;
+}
+
+bool GetQuantizedConvolutionMultipler(const Shape& inputShape,
+ const Shape& filterShape,
+ const Shape& biasShape,
+ const Shape& outputShape,
+ float* multiplier) {
+ const float input_product_scale = inputShape.scale * filterShape.scale;
+ const float bias_scale = biasShape.scale;
+ const float output_scale = outputShape.scale;
+
+ // The following conditions must be guaranteed by the training pipeline.
+ NN_OPS_CHECK(std::abs(input_product_scale - bias_scale) <=
+ 1e-6 * std::min(input_product_scale, bias_scale));
+ NN_OPS_CHECK(input_product_scale >= 0);
+ NN_OPS_CHECK(input_product_scale < output_scale);
+ *multiplier = input_product_scale / output_scale;
+ return true;
+}
+
+void CalculateActivationRangeUint8(int32_t activation,
+ const Shape& outputShape,
+ int32_t* act_min,
+ int32_t* act_max) {
+ const int32_t qmin = std::numeric_limits<uint8_t>::min();
+ const int32_t qmax = std::numeric_limits<uint8_t>::max();
+
+ const auto scale = outputShape.scale;
+ const auto zero_point = outputShape.offset;
+
+ auto quantize = [scale, zero_point](float f) {
+ return zero_point + static_cast<int32_t>(std::round(f / scale));
+ };
+
+ if (activation == kActivationRelu) {
+ *act_min = std::max(qmin, quantize(0.0));
+ *act_max = qmax;
+ } else if (activation == kActivationRelu6) {
+ *act_min = std::max(qmin, quantize(0.0));
+ *act_max = std::min(qmax, quantize(6.0));
+ } else if (activation == kActivationRelu1) {
+ *act_min = std::max(qmin, quantize(-1.0));
+ *act_max = std::min(qmax, quantize(1.0));
+ } else {
+ *act_min = qmin;
+ *act_max = qmax;
+ }
+}
+
+int32_t CalculateInputRadius(int input_integer_bits, int input_left_shift) {
+ const double max_input_rescaled = 1.0 * ((1 << input_integer_bits) - 1) *
+ (1ll << (31 - input_integer_bits)) /
+ (1ll << input_left_shift);
+ // Tighten bound using floor. Suppose that we could use the exact value.
+ // After scaling the difference, the result would be at the maximum. Thus we
+ // must ensure that our value has lower magnitude.
+ return static_cast<int32_t>(std::floor(max_input_rescaled));
+}
+
+bool addMulPrepare(const Shape& in1, const Shape& in2, Shape* out) {
+ NN_OPS_CHECK(getNumberOfDimensions(in1) <= 4 && getNumberOfDimensions(in2) <= 4);
+ NN_OPS_CHECK(in1.type == in2.type);
+ if (SameShape(in1, in2)) {
+ return SetShape(in1, out);
+ } else {
+ // BroadcastAdd needed
+ uint32_t numberOfDims1 = getNumberOfDimensions(in1);
+ uint32_t numberOfDims2 = getNumberOfDimensions(in2);
+ uint32_t maxDims = std::max(numberOfDims1, numberOfDims2);
+ out->dimensions = std::vector<uint32_t>(maxDims);
+ for (uint32_t i = 1; i <= maxDims; i++) {
+ uint32_t dim1 = 1;
+ if (i <= numberOfDims1) {
+ dim1 = getSizeOfDimension(in1, numberOfDims1 - i);
+ }
+ uint32_t dim2 = 1;
+ if (i <= numberOfDims2) {
+ dim2 = getSizeOfDimension(in2, numberOfDims2 - i);
+ }
+ if (dim1 != dim2 && dim1 != 1 && dim2 != 1) {
+ LOG(ERROR) << "Dimensions mismatch for BroadcastAdd";
+ return false;
+ }
+ out->dimensions[maxDims - i] = std::max(dim1, dim2);
+ }
+ }
+ return true;
+}
+
+bool floorPrepare(const Shape& input, Shape* output) {
+ return SetShape(input, output);
+}
+
+bool dequantizePrepare(const Shape& input, Shape* output) {
+ if (input.type != OperandType::TENSOR_QUANT8_ASYMM ||
+ output->type != OperandType::TENSOR_FLOAT32) {
+ LOG(ERROR) << "bad input / output operand type.";
+ return false;
+ }
+ if (input.dimensions.size() != output->dimensions.size()) {
+ LOG(ERROR) << "input and output tensors don't have the same rank.";
+ return false;
+ }
+ output->dimensions = input.dimensions;
+ return true;
+}
+
+bool convPrepare(const Shape& input,
+ const Shape& filter,
+ const Shape& bias,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ Shape* output) {
+ NN_OPS_CHECK(input.type == filter.type);
+ if (input.type == OperandType::TENSOR_QUANT8_ASYMM) {
+ NN_OPS_CHECK(bias.type == OperandType::TENSOR_INT32);
+ } else {
+ NN_OPS_CHECK(input.type == bias.type);
+ }
+ NN_OPS_CHECK(getNumberOfDimensions(input) == 4);
+ NN_OPS_CHECK(getNumberOfDimensions(filter) == 4);
+ NN_OPS_CHECK(getNumberOfDimensions(bias) == 1);
+
+ NN_OPS_CHECK(getSizeOfDimension(filter, 0) == getSizeOfDimension(bias, 0));
+ NN_OPS_CHECK(getSizeOfDimension(filter, 3) == getSizeOfDimension(input, 3));
+
+ uint32_t channels_out = getSizeOfDimension(filter, 0);
+ uint32_t width = getSizeOfDimension(input, 2);
+ uint32_t height = getSizeOfDimension(input, 1);
+ uint32_t filterWidth = getSizeOfDimension(filter, 2);
+ uint32_t filterHeight = getSizeOfDimension(filter, 1);
+ uint32_t batches = getSizeOfDimension(input, 0);
+
+ uint32_t outWidth = computeOutSize(width, filterWidth, stride_width,
+ padding_left, padding_right);
+ uint32_t outHeight = computeOutSize(height, filterHeight, stride_height,
+ padding_top, padding_bottom);
+
+ output->type = input.type;
+ output->dimensions = {batches, outHeight, outWidth, channels_out};
+ return true;
+}
+
+bool depthwiseConvPrepare(const Shape& input,
+ const Shape& filter,
+ const Shape& bias,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ Shape* output) {
+ NN_OPS_CHECK(input.type == filter.type);
+ if (input.type == OperandType::TENSOR_QUANT8_ASYMM) {
+ NN_OPS_CHECK(bias.type == OperandType::TENSOR_INT32);
+ } else {
+ NN_OPS_CHECK(input.type == bias.type);
+ }
+ NN_OPS_CHECK(getNumberOfDimensions(input) == 4);
+ NN_OPS_CHECK(getNumberOfDimensions(filter) == 4);
+ NN_OPS_CHECK(getNumberOfDimensions(bias) == 1);
+
+ NN_OPS_CHECK(getSizeOfDimension(filter, 3) == getSizeOfDimension(bias, 0));
+
+ uint32_t channels_out = getSizeOfDimension(filter, 3);
+ uint32_t width = getSizeOfDimension(input, 2);
+ uint32_t height = getSizeOfDimension(input, 1);
+ uint32_t filterWidth = getSizeOfDimension(filter, 2);
+ uint32_t filterHeight = getSizeOfDimension(filter, 1);
+ uint32_t batches = getSizeOfDimension(input, 0);
+
+ uint32_t outWidth = computeOutSize(width, filterWidth, stride_width,
+ padding_left, padding_right);
+ uint32_t outHeight = computeOutSize(height, filterHeight, stride_height,
+ padding_top, padding_bottom);
+
+ output->type = input.type;
+ output->dimensions = {batches, outHeight, outWidth, channels_out};
+ return true;
+}
+
+
+bool genericPoolingPrepare(const Shape& input,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height,
+ Shape* output) {
+ NN_OPS_CHECK(getNumberOfDimensions(input) == 4);
+
+ uint32_t batches = getSizeOfDimension(input, 0);
+ uint32_t width = getSizeOfDimension(input, 2);
+ uint32_t height = getSizeOfDimension(input, 1);
+ uint32_t channels_out = getSizeOfDimension(input, 3);
+
+ uint32_t outWidth = computeOutSize(width, filter_width, stride_width,
+ padding_left, padding_right);
+ uint32_t outHeight = computeOutSize(height, filter_height, stride_height,
+ padding_top, padding_bottom);
+
+ output->type = input.type;
+ output->dimensions = {batches, outHeight, outWidth, channels_out};
+ return true;
+}
+
+
+bool genericActivationPrepare(const Shape& input,
+ Shape* output) {
+ NN_OPS_CHECK(getNumberOfDimensions(input) <= 4);
+ return SetShape(input, output);
+}
+
+bool fullyConnectedPrepare(const Shape& input,
+ const Shape& weights,
+ const Shape& bias,
+ Shape* output) {
+ // Check all the parameters of tensor match within themselves and match the
+ // input configuration.
+ NN_OPS_CHECK(input.type == weights.type);
+ if (input.type == OperandType::TENSOR_QUANT8_ASYMM) {
+ NN_OPS_CHECK(bias.type == OperandType::TENSOR_INT32);
+ } else {
+ NN_OPS_CHECK(input.type == bias.type);
+ }
+ NN_OPS_CHECK(getNumberOfDimensions(input) >= 2);
+ uint32_t input_size = getNumberOfElements(input);
+ uint32_t num_units = getSizeOfDimension(weights, 0);
+
+ // modified to resolve Coverity 118949 (Apr 25, 2018) by hyunsik.yoon
+ // Original Code:
+ // uint32_t batch_size = input_size / getSizeOfDimension(weights, 1);
+ //
+ // Coverity Detection: Division by zero
+ //
+ // Code below is modified code
+
+ uint32_t shape_size = getSizeOfDimension(weights, 1);
+ if (shape_size == 0)
+ {
+ return false;
+ }
+
+ uint32_t batch_size = input_size / shape_size;
+
+ NN_OPS_CHECK(getSizeOfDimension(bias, 0) == num_units);
+ NN_OPS_CHECK(getSizeOfDimension(weights, 1) * batch_size == input_size);
+ NN_OPS_CHECK(getNumberOfDimensions(weights) == 2);
+
+ output->type = input.type;
+ output->dimensions = {batch_size, num_units};
+
+ return true;
+}
+
+bool concatenationPrepare(const std::vector<Shape>& inputShapes,
+ int32_t axis,
+ Shape* output) {
+
+ int num_inputs = inputShapes.size();
+ OperandType input_type = inputShapes[0].type;
+ uint32_t num_dimensions = getNumberOfDimensions(inputShapes[0]);
+
+ NN_OPS_CHECK(axis >= 0);
+ NN_OPS_CHECK(axis < (int32_t)num_dimensions);
+
+ int sum_axis = getSizeOfDimension(inputShapes[0], axis);
+ for (int i = 1; i < num_inputs; ++i) {
+ NN_OPS_CHECK(getNumberOfDimensions(inputShapes[i]) == num_dimensions);
+ NN_OPS_CHECK(inputShapes[i].type == inputShapes[0].type);
+ if (input_type == OperandType::TENSOR_QUANT8_ASYMM) {
+ NN_OPS_CHECK(inputShapes[0].offset == inputShapes[i].offset);
+ NN_OPS_CHECK(inputShapes[0].scale == inputShapes[i].scale);
+ }
+ for (int d = 0; d < (int32_t)num_dimensions; ++d) {
+ if (d == axis) {
+ sum_axis += getSizeOfDimension(inputShapes[i], axis);
+ } else {
+ NN_OPS_CHECK(getSizeOfDimension(inputShapes[0], d) ==
+ getSizeOfDimension(inputShapes[i], d));
+ }
+ }
+ }
+
+ output->type = input_type;
+ output->dimensions = inputShapes[0].dimensions;
+ output->dimensions[axis] = sum_axis;
+
+ if (input_type == OperandType::TENSOR_QUANT8_ASYMM) {
+ NN_OPS_CHECK(inputShapes[0].offset == output->offset);
+ NN_OPS_CHECK(inputShapes[0].scale == output->scale);
+ }
+
+ return true;
+}
+
+
+bool genericNormalizationPrepare(const Shape& input, Shape* output) {
+ NN_OPS_CHECK(getNumberOfDimensions(input) == 4);
+ return SetShape(input, output);
+}
+
+bool reshapePrepare(const Shape& input,
+ const int32_t* targetDims,
+ const int32_t targetDimsSize,
+ Shape* output) {
+ // Reshape allows one of the targetDims components to have the
+ // special -1 value, meaning it will be calculated automatically based on the
+ // input. Here we calculate what that dimension should be so that the number
+ // of output elements in the same as the number of input elements.
+ int32_t numInputElements = (int32_t) getNumberOfElements(input);
+
+ std::vector<uint32_t> outDims(targetDimsSize);
+ int32_t numOutputElements = 1;
+ int32_t strechDim = -1;
+ for (int32_t i = 0; i < targetDimsSize; ++i) {
+ int32_t value = targetDims[i];
+ if (value == -1) {
+ NN_OPS_CHECK(strechDim == -1);
+ strechDim = i;
+ } else {
+ numOutputElements *= value;
+ outDims[i] = (uint32_t)value;
+ }
+ }
+ if (strechDim != -1) {
+ int32_t strechValue = numInputElements / numOutputElements;
+ outDims[strechDim] = (uint32_t) strechValue;
+ numOutputElements *= strechValue;
+ }
+
+ NN_OPS_CHECK(numInputElements == numOutputElements);
+
+ output->type = input.type;
+ output->dimensions = outDims;
+ output->offset = input.offset;
+ output->scale = input.scale;
+
+ return true;
+}
+
+bool resizeBilinearPrepare(const Shape& input,
+ int32_t width,
+ int32_t height,
+ Shape* output) {
+ NN_OPS_CHECK(getNumberOfDimensions(input) == 4);
+ uint32_t batches = getSizeOfDimension(input, 0);
+ uint32_t channels = getSizeOfDimension(input, 3);
+
+ output->type = input.type;
+ output->dimensions = {batches, (uint32_t)height, (uint32_t)width, channels};
+
+ return true;
+}
+
+bool depthToSpacePrepare(const Shape& input,
+ int32_t blockSize,
+ Shape* output) {
+ NN_OPS_CHECK(getNumberOfDimensions(input) == 4);
+ NN_OPS_CHECK(blockSize > 0);
+
+ uint32_t batches = getSizeOfDimension(input, 0);
+ uint32_t height = getSizeOfDimension(input, 1);
+ uint32_t width = getSizeOfDimension(input, 2);
+ uint32_t channels = getSizeOfDimension(input, 3);
+
+ NN_OPS_CHECK(channels % (blockSize * blockSize) == 0);
+ output->type = input.type;
+ output->dimensions = {batches,
+ height * blockSize,
+ width * blockSize,
+ channels / (blockSize * blockSize)};
+ output->offset = input.offset;
+ output->scale = input.scale;
+
+ return true;
+}
+
+bool spaceToDepthPrepare(const Shape& input,
+ int32_t blockSize,
+ Shape* output) {
+ NN_OPS_CHECK(getNumberOfDimensions(input) == 4);
+ NN_OPS_CHECK(blockSize > 0);
+
+ uint32_t batches = getSizeOfDimension(input, 0);
+ uint32_t height = getSizeOfDimension(input, 1);
+ uint32_t width = getSizeOfDimension(input, 2);
+ uint32_t channels = getSizeOfDimension(input, 3);
+
+ NN_OPS_CHECK(height % blockSize == 0);
+ NN_OPS_CHECK(width % blockSize == 0);
+
+ output->type = input.type;
+ output->dimensions = {batches,
+ height / blockSize,
+ width / blockSize,
+ channels * (blockSize * blockSize)};
+ output->offset = input.offset;
+ output->scale = input.scale;
+
+ return true;
+}
+
+bool embeddingLookupPrepare(const Shape &valueShape,
+ const Shape &lookupShape,
+ Shape *outputShape) {
+ NN_OPS_CHECK(getNumberOfDimensions(valueShape) >= 2);
+ NN_OPS_CHECK(getNumberOfDimensions(lookupShape) == 1);
+
+ const uint32_t rows = getSizeOfDimension(valueShape, 0);
+ const uint32_t columns = getSizeOfDimension(valueShape, 1);
+
+ const uint32_t lookups = getSizeOfDimension(lookupShape, 0);
+
+ outputShape->type = valueShape.type;
+ outputShape->dimensions = { lookups, columns };
+ for (uint32_t i = 2; i < getNumberOfDimensions(valueShape); i++) {
+ outputShape->dimensions.push_back(getSizeOfDimension(valueShape, i));
+ }
+ outputShape->offset = valueShape.offset;
+ outputShape->scale = valueShape.scale;
+
+ return true;
+}
+
+bool hashtableLookupPrepare(const Shape &lookupShape,
+ const Shape &keyShape,
+ const Shape &valueShape,
+ Shape *outputShape,
+ Shape *hitShape) {
+ NN_OPS_CHECK(getNumberOfDimensions(lookupShape) == 1);
+ NN_OPS_CHECK(getNumberOfDimensions(keyShape) == 1);
+ NN_OPS_CHECK(getNumberOfDimensions(valueShape) >= 1);
+
+ const uint32_t lookups = getSizeOfDimension(lookupShape, 0);
+ const uint32_t keys = getSizeOfDimension(keyShape, 0);
+ const uint32_t rows = getSizeOfDimension(valueShape, 0);
+ outputShape->type = valueShape.type;
+ outputShape->dimensions = { lookups };
+ for (uint32_t i = 1; i < getNumberOfDimensions(valueShape); i++) {
+ outputShape->dimensions.push_back(getSizeOfDimension(valueShape, i));
+ }
+ outputShape->offset = valueShape.offset;
+ outputShape->scale = valueShape.scale;
+
+ hitShape->type = OperandType::TENSOR_QUANT8_ASYMM;
+ hitShape->dimensions = { lookups };
+ hitShape->offset = 0;
+ hitShape->scale = 1.f;
+
+ return true;
+}
+
+} // namespace rt
+} // namespace nnfw
diff --git a/runtimes/nn/common/Utils.cpp b/runtimes/nn/common/Utils.cpp
new file mode 100644
index 000000000..7f0adea8e
--- /dev/null
+++ b/runtimes/nn/common/Utils.cpp
@@ -0,0 +1,397 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "Utils.h"
+#include "NeuralNetworks.h"
+
+namespace nnfw {
+namespace rt {
+
+#define COUNT(X) (sizeof(X) / sizeof(X[0]))
+
+const char* kTypeNames[kNumberOfDataTypes] = {
+ "FLOAT32", "INT32", "UINT32",
+ "TENSOR_FLOAT32", "TENSOR_INT32", "TENSOR_QUANT8_ASYMM",
+};
+
+static_assert(COUNT(kTypeNames) == kNumberOfDataTypes, "kTypeNames is incorrect");
+
+const char* kTypeNamesOEM[kNumberOfDataTypesOEM] = {
+ "OEM", "TENSOR_OEM_BYTE",
+};
+
+static_assert(COUNT(kTypeNamesOEM) == kNumberOfDataTypesOEM, "kTypeNamesOEM is incorrect");
+
+// TODO Check if this useful
+const char* kErrorNames[] = {
+ "NO_ERROR", "OUT_OF_MEMORY", "INCOMPLETE", "NULL", "BAD_DATA",
+};
+
+namespace {
+
+template <typename EntryType, uint32_t entryCount, uint32_t entryCountOEM>
+EntryType tableLookup(const EntryType (&table)[entryCount],
+ const EntryType (&tableOEM)[entryCountOEM],
+ uint32_t code) {
+ if (code < entryCount) {
+ return table[code];
+ } else if (code >= kOEMCodeBase && (code - kOEMCodeBase) < entryCountOEM) {
+ return tableOEM[code - kOEMCodeBase];
+ } else {
+ nnAssert(!"tableLookup: bad code");
+ return EntryType();
+ }
+}
+
+}; // anonymous namespace
+
+const char* kOperationNames[kNumberOfOperationTypes] = {
+ "ADD",
+ "AVERAGE_POOL",
+ "CONCATENATION",
+ "CONV",
+ "DEPTHWISE_CONV",
+ "DEPTH_TO_SPACE",
+ "DEQUANTIZE",
+ "EMBEDDING_LOOKUP",
+ "FLOOR",
+ "FULLY_CONNECTED",
+ "HASHTABLE_LOOKUP",
+ "L2_NORMALIZATION",
+ "L2_POOL",
+ "LOCAL_RESPONSE_NORMALIZATION",
+ "LOGISTIC",
+ "LSH_PROJECTION",
+ "LSTM",
+ "MAX_POOL",
+ "MUL",
+ "RELU",
+ "RELU1",
+ "RELU6",
+ "RESHAPE",
+ "RESIZE_BILINEAR",
+ "RNN",
+ "SOFTMAX",
+ "SPACE_TO_DEPTH",
+ "SVDF",
+ "TANH",
+};
+
+static_assert(COUNT(kOperationNames) == kNumberOfOperationTypes, "kOperationNames is incorrect");
+
+const char* kOperationNamesOEM[kNumberOfOperationTypesOEM] = {
+ "OEM_OPERATION",
+};
+
+static_assert(COUNT(kOperationNamesOEM) == kNumberOfOperationTypesOEM,
+ "kOperationNamesOEM is incorrect");
+
+const char* getOperationName(OperationType type) {
+ uint32_t n = static_cast<uint32_t>(type);
+ return tableLookup(kOperationNames, kOperationNamesOEM, n);
+}
+
+const uint32_t kSizeOfDataType[]{
+ 4, // ANEURALNETWORKS_FLOAT32
+ 4, // ANEURALNETWORKS_INT32
+ 4, // ANEURALNETWORKS_UINT32
+ 4, // ANEURALNETWORKS_TENSOR_FLOAT32
+ 4, // ANEURALNETWORKS_TENSOR_INT32
+ 1 // ANEURALNETWORKS_TENSOR_SYMMETRICAL_QUANT8
+};
+
+static_assert(COUNT(kSizeOfDataType) == kNumberOfDataTypes, "kSizeOfDataType is incorrect");
+
+const bool kScalarDataType[]{
+ true, // ANEURALNETWORKS_FLOAT32
+ true, // ANEURALNETWORKS_INT32
+ true, // ANEURALNETWORKS_UINT32
+ false, // ANEURALNETWORKS_TENSOR_FLOAT32
+ false, // ANEURALNETWORKS_TENSOR_INT32
+ false, // ANEURALNETWORKS_TENSOR_SYMMETRICAL_QUANT8
+};
+
+static_assert(COUNT(kScalarDataType) == kNumberOfDataTypes, "kScalarDataType is incorrect");
+
+const uint32_t kSizeOfDataTypeOEM[]{
+ 0, // ANEURALNETWORKS_OEM
+ 1, // ANEURALNETWORKS_TENSOR_OEM_BYTE
+};
+
+static_assert(COUNT(kSizeOfDataTypeOEM) == kNumberOfDataTypesOEM,
+ "kSizeOfDataTypeOEM is incorrect");
+
+const bool kScalarDataTypeOEM[]{
+ true, // ANEURALNETWORKS_OEM
+ false, // ANEURALNETWORKS_TENSOR_OEM_BYTE
+};
+
+static_assert(COUNT(kScalarDataTypeOEM) == kNumberOfDataTypesOEM,
+ "kScalarDataTypeOEM is incorrect");
+
+uint32_t sizeOfData(OperandType type, const std::vector<uint32_t>& dimensions) {
+ int n = static_cast<int>(type);
+
+ uint32_t size = tableLookup(kSizeOfDataType, kSizeOfDataTypeOEM, n);
+
+ if (tableLookup(kScalarDataType, kScalarDataTypeOEM, n) == true) {
+ return size;
+ }
+
+ for (auto d : dimensions) {
+ size *= d;
+ }
+ return size;
+}
+
+// TODO-NNRT : Should be changed to allocate hidl_memory using Allocator.
+// And Should change naming to "allocateMemory".
+hidl_memory allocateSharedMemory(int64_t size) {
+ hidl_memory memory;
+#if 0 // TODO-NNRT : Use shared memory or hidl memory
+
+ // TODO: should we align memory size to nearest page? doesn't seem necessary...
+ const std::string& type = "ashmem";
+ sp<IAllocator> allocator = IAllocator::getService(type);
+ allocator->allocate(size, [&](bool success, const hidl_memory& mem) {
+ if (!success) {
+ LOG(ERROR) << "unable to allocate " << size << " bytes of " << type;
+ } else {
+ memory = mem;
+ }
+ });
+#endif
+ LOG(ERROR) << "Not support to allocate shared memory now.";
+ return memory;
+}
+
+uint32_t alignBytesNeeded(uint32_t index, size_t length) {
+ uint32_t pattern;
+ if (length < 2) {
+ pattern = 0; // No alignment necessary
+ } else if (length < 4) {
+ pattern = 1; // Align on 2-byte boundary
+ } else {
+ pattern = 3; // Align on 4-byte boundary
+ }
+ uint32_t extra = (~(index - 1)) & pattern;
+ return extra;
+}
+
+// Validates the type. The used dimensions can be underspecified.
+int validateOperandType(const ANeuralNetworksOperandType& type, const char* tag,
+ bool allowPartial) {
+ if (!allowPartial) {
+ for (uint32_t i = 0; i < type.dimensionCount; i++) {
+ if (type.dimensions[i] == 0) {
+ LOG(ERROR) << tag << " OperandType invalid dimensions[" << i
+ << "] = " << type.dimensions[i];
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ }
+ }
+ if (!validCode(kNumberOfDataTypes, kNumberOfDataTypesOEM, type.type)) {
+ LOG(ERROR) << tag << " OperandType invalid type " << type.type;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ if (type.type == ANEURALNETWORKS_TENSOR_QUANT8_ASYMM) {
+ if (type.zeroPoint < 0 || type.zeroPoint > 255) {
+ LOG(ERROR) << tag << " OperandType invalid zeroPoint " << type.zeroPoint;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ if (type.scale < 0.f) {
+ LOG(ERROR) << tag << " OperandType invalid scale " << type.scale;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ }
+
+ // TODO-NNRT : add 'type.type == ANEURALNETWORKS_OEM_SCALAR' later.
+ // OEM operaters are not supported now.
+ if (type.type == ANEURALNETWORKS_FLOAT32 ||
+ type.type == ANEURALNETWORKS_INT32 ||
+ type.type == ANEURALNETWORKS_UINT32) {
+ if (type.dimensionCount != 0 || type.dimensions != nullptr) {
+ LOG(ERROR) << tag << " Invalid dimensions for scalar type";
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ }
+
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+int validateOperandList(uint32_t count, const uint32_t* list, uint32_t operandCount,
+ const char* tag) {
+ for (uint32_t i = 0; i < count; i++) {
+ if (list[i] >= operandCount) {
+ LOG(ERROR) << tag << " invalid operand index at " << i << " = " << list[i]
+ << ", operandCount " << operandCount;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ }
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+static bool validOperandIndexes(const hidl_vec<uint32_t> indexes, size_t operandCount) {
+ for (uint32_t i : indexes) {
+ if (i >= operandCount) {
+ LOG(ERROR) << "Index out of range " << i << "/" << operandCount;
+ return false;
+ }
+ }
+ return true;
+}
+
+static bool validOperands(const hidl_vec<Operand>& operands, const hidl_vec<uint8_t>& operandValues,
+ size_t poolCount) {
+ for (auto& operand : operands) {
+ if (!validCode(kNumberOfDataTypes, kNumberOfDataTypesOEM,
+ static_cast<uint32_t>(operand.type))) {
+ LOG(ERROR) << "Invalid operand type ";
+ return false;
+ }
+ /* TODO validate dim with type
+ if (!validOperandIndexes(operand.dimensions, mDimensions)) {
+ return false;
+ }
+ */
+ switch (operand.lifetime) {
+ case OperandLifeTime::CONSTANT_COPY:
+ if (operand.location.offset + operand.location.length > operandValues.size()) {
+ LOG(ERROR) << "OperandValue location out of range. Starts at "
+ << operand.location.offset << ", length " << operand.location.length
+ << ", max " << operandValues.size();
+ return false;
+ }
+ break;
+ case OperandLifeTime::TEMPORARY_VARIABLE:
+ case OperandLifeTime::MODEL_INPUT:
+ case OperandLifeTime::MODEL_OUTPUT:
+ case OperandLifeTime::NO_VALUE:
+ if (operand.location.offset != 0 || operand.location.length != 0) {
+ LOG(ERROR) << "Unexpected offset " << operand.location.offset << " or length "
+ << operand.location.length << " for runtime location.";
+ return false;
+ }
+ break;
+ case OperandLifeTime::CONSTANT_REFERENCE:
+ if (operand.location.poolIndex >= poolCount) {
+ LOG(ERROR) << "Invalid poolIndex " << operand.location.poolIndex << "/"
+ << poolCount;
+ return false;
+ }
+ break;
+ // TODO: Validate that we are within the pool.
+ default:
+ LOG(ERROR) << "Invalid lifetime";
+ return false;
+ }
+ }
+ return true;
+}
+
+static bool validOperations(const hidl_vec<Operation>& operations, size_t operandCount) {
+ for (auto& op : operations) {
+ if (!validCode(kNumberOfOperationTypes, kNumberOfOperationTypesOEM,
+ static_cast<uint32_t>(op.type))) {
+ LOG(ERROR) << "Invalid operation type ";
+ return false;
+ }
+ if (!validOperandIndexes(op.inputs, operandCount) ||
+ !validOperandIndexes(op.outputs, operandCount)) {
+ return false;
+ }
+ }
+ return true;
+}
+
+// TODO doublecheck
+bool validateModel(const Model& model) {
+ const size_t operandCount = model.operands.size();
+ return (validOperands(model.operands, model.operandValues, model.pools.size()) &&
+ validOperations(model.operations, operandCount) &&
+ validOperandIndexes(model.inputIndexes, operandCount) &&
+ validOperandIndexes(model.outputIndexes, operandCount));
+}
+
+bool validRequestArguments(const hidl_vec<RequestArgument>& arguments,
+ const hidl_vec<uint32_t>& operandIndexes,
+ const hidl_vec<Operand>& operands, size_t poolCount,
+ const char* type) {
+ const size_t argumentCount = arguments.size();
+ if (argumentCount != operandIndexes.size()) {
+ LOG(ERROR) << "Request specifies " << argumentCount << " " << type << "s but the model has "
+ << operandIndexes.size();
+ return false;
+ }
+ for (size_t argumentIndex = 0; argumentIndex < argumentCount; argumentIndex++) {
+ const RequestArgument& argument = arguments[argumentIndex];
+ const uint32_t operandIndex = operandIndexes[argumentIndex];
+ const Operand& operand = operands[operandIndex];
+ if (argument.hasNoValue) {
+ if (argument.location.poolIndex != 0 ||
+ argument.location.offset != 0 ||
+ argument.location.length != 0 ||
+ argument.dimensions.size() != 0) {
+ LOG(ERROR) << "Request " << type << " " << argumentIndex
+ << " has no value yet has details.";
+ return false;
+ }
+ }
+ if (argument.location.poolIndex >= poolCount) {
+ LOG(ERROR) << "Request " << type << " " << argumentIndex << " has an invalid poolIndex "
+ << argument.location.poolIndex << "/" << poolCount;
+ return false;
+ }
+ // TODO: Validate that we are within the pool.
+ uint32_t rank = argument.dimensions.size();
+ if (rank > 0) {
+ if (rank != operand.dimensions.size()) {
+ LOG(ERROR) << "Request " << type << " " << argumentIndex
+ << " has number of dimensions (" << rank
+ << ") different than the model's (" << operand.dimensions.size() << ")";
+ return false;
+ }
+ for (size_t i = 0; i < rank; i++) {
+ if (argument.dimensions[i] != operand.dimensions[i] &&
+ operand.dimensions[i] != 0) {
+ LOG(ERROR) << "Request " << type << " " << argumentIndex
+ << " has dimension " << i << " of " << operand.dimensions[i]
+ << " different than the model's " << operand.dimensions[i];
+ return false;
+ }
+ if (argument.dimensions[i] == 0) {
+ LOG(ERROR) << "Request " << type << " " << argumentIndex
+ << " has dimension " << i << " of zero";
+ return false;
+ }
+ }
+ }
+ }
+ return true;
+}
+
+// TODO doublecheck
+bool validateRequest(const Request& request, const Model& model) {
+ const size_t poolCount = request.pools.size();
+ return (validRequestArguments(request.inputs, model.inputIndexes, model.operands, poolCount,
+ "input") &&
+ validRequestArguments(request.outputs, model.outputIndexes, model.operands, poolCount,
+ "output"));
+}
+
+} // namespace rt
+} // namespace nnfw
diff --git a/runtimes/nn/common/include/ActivationFunctor.h b/runtimes/nn/common/include/ActivationFunctor.h
new file mode 100644
index 000000000..788962e4c
--- /dev/null
+++ b/runtimes/nn/common/include/ActivationFunctor.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_ACTIVATION_FUNCTOR_H__
+#define __NNFW_RT_ACTIVATION_FUNCTOR_H__
+
+#if 0 // REF-ANN
+#include "android/log.h"
+#endif
+
+#include <algorithm>
+#include <cmath>
+#include <vector>
+#include <cstdint>
+
+enum ActivationFn {
+ kActivationNone = 0,
+ kActivationRelu,
+ kActivationRelu1,
+ kActivationRelu6,
+ kActivationTanh,
+ kActivationSignBit,
+ kActivationSigmoid,
+};
+
+class ActivationFunctor {
+ public:
+ explicit ActivationFunctor(ActivationFn act) : act_(act) {}
+
+ float operator()(float a) const {
+ switch (act_) {
+ case kActivationNone:
+ return a;
+ case kActivationRelu:
+ return a < 0.f ? 0.f : a;
+ case kActivationRelu6:
+ return std::max(0.f, std::min(a, 6.f));
+ case kActivationTanh:
+ return std::tanh(a);
+ case kActivationSigmoid:
+ return 1.0f / (1.0f + std::exp(-a));
+ default:
+#if 0 // REF-ANN
+ __android_log_print(ANDROID_LOG_ERROR, "NN API",
+ "Invalid enum value for activation function: 0x%0X",
+ act_);
+#endif
+ exit(1);
+ }
+ }
+
+ private:
+ ActivationFn act_;
+};
+
+#endif // __NNFW_RT_ACTIVATION_FUNCTOR_H__
diff --git a/runtimes/nn/common/include/CpuExecutor.h b/runtimes/nn/common/include/CpuExecutor.h
new file mode 100644
index 000000000..385a461de
--- /dev/null
+++ b/runtimes/nn/common/include/CpuExecutor.h
@@ -0,0 +1,165 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_CPU_EXECUTOR_H__
+#define __NNFW_RT_CPU_EXECUTOR_H__
+
+#include "HalInterfaces.h"
+#include "OperationsUtils.h"
+#include "Utils.h"
+
+#include <algorithm>
+#include <vector>
+
+namespace nnfw {
+namespace rt {
+
+// Information we maintain about each operand during execution that
+// may change during execution.
+struct RunTimeOperandInfo {
+ // TODO Storing the type here is redundant, as it won't change during execution.
+ OperandType type;
+ // The type and dimensions of the operand. The dimensions can
+ // change at runtime. We include the type because it's useful
+ // to pass together with the dimension to the functions implementing
+ // the operators.
+ std::vector<uint32_t> dimensions;
+
+ float scale;
+ int32_t zeroPoint;
+ // Where the operand's data is stored. Check the corresponding
+ // location information in the model to figure out if this points
+ // to memory we have allocated for an temporary operand.
+ uint8_t* buffer;
+ // The length of the buffer.
+ uint32_t length;
+ // Whether this is a temporary variable, a model input, a constant, etc.
+ OperandLifeTime lifetime;
+ // Keeps track of how many operations have yet to make use
+ // of this temporary variable. When the count is decremented to 0,
+ // we free the buffer. For non-temporary variables, this count is
+ // always 0.
+ uint32_t numberOfUsesLeft;
+
+ Shape shape() const {
+ return Shape{.type = type, .dimensions = dimensions, .scale = scale, .offset = zeroPoint};
+ }
+};
+
+// Used to keep a pointer to each of the memory pools.
+struct RunTimePoolInfo {
+#if 0 // REF-ANN
+ sp<IMemory> memory;
+#endif
+ hidl_memory hidlMemory;
+ uint8_t* buffer;
+
+ bool set(const hidl_memory& hidlMemory);
+ bool update();
+};
+
+bool setRunTimePoolInfosFromHidlMemories(std::vector<RunTimePoolInfo>* poolInfos,
+ const hidl_vec<hidl_memory>& pools);
+
+// This class is used to execute a model on the CPU.
+class CpuExecutor {
+public:
+ // Executes the model. The results will be stored at the locations
+ // specified in the constructor.
+ // The model must outlive the executor. We prevent it from being modified
+ // while this is executing.
+ int run(const Model& model, const Request& request,
+ const std::vector<RunTimePoolInfo>& modelPoolInfos,
+ const std::vector<RunTimePoolInfo>& requestPoolInfos);
+
+private:
+ bool initializeRunTimeInfo(const std::vector<RunTimePoolInfo>& modelPoolInfos,
+ const std::vector<RunTimePoolInfo>& requestPoolInfos);
+ // Runs one operation of the graph.
+ int executeOperation(const Operation& entry);
+ // Decrement the usage count for the operands listed. Frees the memory
+ // allocated for any temporary variable with a count of zero.
+ void freeNoLongerUsedOperands(const std::vector<uint32_t>& inputs);
+
+ // The model and the request that we'll execute. Only valid while run()
+ // is being executed.
+ const Model* mModel = nullptr;
+ const Request* mRequest = nullptr;
+
+ // We're copying the list of all the dimensions from the model, as
+ // these may be modified when we run the operatins. Since we're
+ // making a full copy, the indexes used in the operand description
+ // stay valid.
+ // std::vector<uint32_t> mDimensions;
+ // Runtime information about all the operands.
+ std::vector<RunTimeOperandInfo> mOperands;
+};
+
+namespace {
+
+template <typename T>
+T getScalarData(const RunTimeOperandInfo& info) {
+ // TODO: Check buffer is at least as long as size of data.
+ T* data = reinterpret_cast<T*>(info.buffer);
+ return data[0];
+}
+
+inline bool IsNullInput(const RunTimeOperandInfo *input) {
+ return input->lifetime == OperandLifeTime::NO_VALUE;
+}
+
+#if 0 // REF-ANN
+inline int NumInputsWithValues(const Operation &operation,
+ std::vector<RunTimeOperandInfo> &operands) {
+ const std::vector<uint32_t> &inputs = operation.inputs;
+ return std::count_if(inputs.begin(), inputs.end(),
+ [&operands](uint32_t i) {
+ return !IsNullInput(&operands[i]);
+ });
+}
+
+inline int NumOutputs(const Operation &operation) {
+ return operation.outputs.size();
+}
+
+inline size_t NumDimensions(const RunTimeOperandInfo *operand) {
+ return operand->shape().dimensions.size();
+}
+
+inline uint32_t SizeOfDimension(const RunTimeOperandInfo *operand, int i) {
+ return operand->shape().dimensions[i];
+}
+
+inline RunTimeOperandInfo *GetInput(const Operation &operation,
+ std::vector<RunTimeOperandInfo> &operands,
+ int index) {
+ return &operands[operation.inputs[index]];
+}
+
+inline RunTimeOperandInfo *GetOutput(const Operation &operation,
+ std::vector<RunTimeOperandInfo> &operands,
+ int index) {
+ return &operands[operation.outputs[index]];
+}
+#endif
+
+} // anonymous namespace
+
+} // namespace rt
+} // namespace nnfw
+
+#endif // __NNFW_RT_CPU_EXECUTOR_H__
diff --git a/runtimes/nn/common/include/HalInterfaces.h b/runtimes/nn/common/include/HalInterfaces.h
new file mode 100644
index 000000000..9a086c09d
--- /dev/null
+++ b/runtimes/nn/common/include/HalInterfaces.h
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_HAL_INTERFACES_H__
+#define __NNFW_RT_HAL_INTERFACES_H__
+
+#if 0 // REF-ANN
+#include <android/hardware/neuralnetworks/1.0/IDevice.h>
+#include <android/hardware/neuralnetworks/1.0/IExecutionCallback.h>
+#include <android/hardware/neuralnetworks/1.0/IPreparedModel.h>
+#include <android/hardware/neuralnetworks/1.0/IPreparedModelCallback.h>
+#endif
+#include <android/hardware/neuralnetworks/1.0/types.h>
+
+#if 0 // REF-ANN
+#include <android/hidl/allocator/1.0/IAllocator.h>
+#include <android/hidl/memory/1.0/IMemory.h>
+#include <hidlmemory/mapping.h>
+#endif
+
+using ::android::hardware::hidl_memory;
+using ::android::hardware::hidl_vec;
+using ::android::hardware::neuralnetworks::V1_0::DataLocation;
+using ::android::hardware::neuralnetworks::V1_0::ErrorStatus;
+using ::android::hardware::neuralnetworks::V1_0::FusedActivationFunc;
+using ::android::hardware::neuralnetworks::V1_0::Model;
+using ::android::hardware::neuralnetworks::V1_0::Operand;
+using ::android::hardware::neuralnetworks::V1_0::OperandLifeTime;
+using ::android::hardware::neuralnetworks::V1_0::OperandType;
+using ::android::hardware::neuralnetworks::V1_0::Operation;
+using ::android::hardware::neuralnetworks::V1_0::OperationType;
+using ::android::hardware::neuralnetworks::V1_0::PerformanceInfo;
+using ::android::hardware::neuralnetworks::V1_0::Request;
+using ::android::hardware::neuralnetworks::V1_0::RequestArgument;
+#if 0 // REF-ANN
+using ::android::hardware::Return;
+using ::android::hardware::Void;
+using ::android::hardware::hidl_memory;
+using ::android::hardware::hidl_string;
+using ::android::hardware::hidl_vec;
+using ::android::hardware::neuralnetworks::V1_0::Capabilities;
+using ::android::hardware::neuralnetworks::V1_0::DataLocation;
+using ::android::hardware::neuralnetworks::V1_0::DeviceStatus;
+using ::android::hardware::neuralnetworks::V1_0::FusedActivationFunc;
+using ::android::hardware::neuralnetworks::V1_0::IDevice;
+using ::android::hardware::neuralnetworks::V1_0::IExecutionCallback;
+using ::android::hardware::neuralnetworks::V1_0::IPreparedModel;
+using ::android::hardware::neuralnetworks::V1_0::IPreparedModelCallback;
+using ::android::hardware::neuralnetworks::V1_0::Model;
+using ::android::hardware::neuralnetworks::V1_0::Operand;
+using ::android::hardware::neuralnetworks::V1_0::OperandLifeTime;
+using ::android::hardware::neuralnetworks::V1_0::OperandType;
+using ::android::hardware::neuralnetworks::V1_0::Operation;
+using ::android::hardware::neuralnetworks::V1_0::OperationType;
+using ::android::hardware::neuralnetworks::V1_0::PerformanceInfo;
+using ::android::hardware::neuralnetworks::V1_0::Request;
+using ::android::hardware::neuralnetworks::V1_0::RequestArgument;
+using ::android::hidl::allocator::V1_0::IAllocator;
+using ::android::hidl::memory::V1_0::IMemory;
+#endif
+
+namespace nnfw {
+namespace rt {
+
+} // namespace rt
+} // namespace nnfw
+
+#endif // __NNFW_RT_HAL_INTERFACES_H__
diff --git a/runtimes/nn/common/include/Logging.h b/runtimes/nn/common/include/Logging.h
new file mode 100644
index 000000000..060458b85
--- /dev/null
+++ b/runtimes/nn/common/include/Logging.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_LOGGING_H__
+#define __NNFW_RT_LOGGING_H__
+
+#include <iostream>
+
+namespace nnfw {
+namespace rt {
+
+// TODO-NNRT Move this to proper place
+class BoolConfig
+{
+public:
+ BoolConfig(const std::string &tag, bool default_value);
+
+public:
+ bool value(void) const { return _value; }
+
+private:
+ bool _value;
+};
+
+class VLogging
+{
+public:
+ static VLogging& access(void);
+ bool enabled() const { return _enabled; }
+ std::ostream& stream(void);
+
+private:
+ VLogging();
+
+private:
+ bool _enabled;
+};
+
+#define LOG(...) std::cout << std::endl
+#define VLOG(...) if (VLogging::access().enabled()) \
+ (VLogging::access().stream() << std::endl)
+#define PLOG(...) LOG(...)
+#define NYI(module) std::cout << "NYI : '" << module << "' is not supported now." << std::endl;
+
+} // namespace rt
+} // namespace nnfw
+
+#endif // __NNFW_RT_LOGGING_H__
diff --git a/runtimes/nn/common/include/Operations.h b/runtimes/nn/common/include/Operations.h
new file mode 100644
index 000000000..33730ea17
--- /dev/null
+++ b/runtimes/nn/common/include/Operations.h
@@ -0,0 +1,203 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_OPERATIONS_H__
+#define __NNFW_RT_OPERATIONS_H__
+
+#if 0 // REF-ANN
+#include "operations/EmbeddingLookup.h"
+#include "operations/HashtableLookup.h"
+#include "operations/LSHProjection.h"
+#include "operations/LSTM.h"
+#include "operations/RNN.h"
+#include "operations/SVDF.h"
+#endif
+
+#include <stddef.h>
+
+#include <cstdint>
+#include <vector>
+
+namespace nnfw {
+namespace rt {
+
+struct Shape;
+
+bool addFloat32(const float* in1, const Shape& shape1,
+ const float* in2, const Shape& shape2,
+ int32_t activation,
+ float* out, const Shape& shapeOut);
+bool addQuant8(const uint8_t* in1, const Shape& shape1,
+ const uint8_t* in2, const Shape& shape2,
+ int32_t activation,
+ uint8_t* out, const Shape& shapeOut);
+
+bool mulFloat32(const float* in1, const Shape& shape1,
+ const float* in2, const Shape& shape2,
+ int32_t activation,
+ float* out, const Shape& shapeOut);
+bool mulQuant8(const uint8_t* in1, const Shape& shape1,
+ const uint8_t* in2, const Shape& shape2,
+ int32_t activation,
+ uint8_t* out, const Shape& shapeOut);
+
+bool floorFloat32(const float* inputData,
+ float* outputData,
+ const Shape& shape);
+
+bool dequantizeQuant8ToFloat32(const uint8_t* inputData,
+ float* outputData,
+ const Shape& shape);
+
+bool depthwiseConvFloat32(const float* inputData, const Shape& inputShape,
+ const float* filterData, const Shape& filterShape,
+ const float* biasData, const Shape& biasShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t depth_multiplier, int32_t activation,
+ float* outputData, const Shape& outputShape);
+#if 0 // REF-ANN We don't support depthwiseConvQuant8 yet
+bool depthwiseConvQuant8(const uint8_t* inputData, const Shape& inputShape,
+ const uint8_t* filterData, const Shape& filterShape,
+ const int32_t* biasData, const Shape& biasShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t depth_multiplier, int32_t activation,
+ uint8_t* outputData, const Shape& outputShape);
+#endif // REF-ANN
+
+bool convFloat32(const float* inputData, const Shape& inputShape,
+ const float* filterData, const Shape& filterShape,
+ const float* biasData, const Shape& biasShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t activation,
+ float* outputData, const Shape& outputShape);
+bool convQuant8(const uint8_t* inputData, const Shape& inputShape,
+ const uint8_t* filterData, const Shape& filterShape,
+ const int32_t* biasData, const Shape& biasShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t activation,
+ uint8_t* outputData, const Shape& outputShape);
+
+bool averagePoolFloat32(const float* inputData, const Shape& inputShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height, int32_t activation,
+ float* outputData, const Shape& outputShape);
+bool averagePoolQuant8(const uint8_t* inputData, const Shape& inputShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height, int32_t activation,
+ uint8_t* outputData, const Shape& outputShape);
+bool l2PoolFloat32(const float* inputData, const Shape& inputShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height, int32_t activation,
+ float* outputData, const Shape& outputShape);
+bool maxPoolFloat32(const float* inputData, const Shape& inputShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height, int32_t activation,
+ float* outputData, const Shape& outputShape);
+bool maxPoolQuant8(const uint8_t* inputData, const Shape& inputShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height, int32_t activation,
+ uint8_t* outputData, const Shape& outputShape);
+
+bool reluFloat32(const float* inputData, const Shape& inputShape,
+ float* outputData, const Shape& outputShape);
+bool relu1Float32(const float* inputData, const Shape& inputShape,
+ float* outputData, const Shape& outputShape);
+bool relu6Float32(const float* inputData, const Shape& inputShape,
+ float* outputData, const Shape& outputShape);
+bool tanhFloat32(const float* inputData, const Shape& inputShape,
+ float* outputData, const Shape& outputShape);
+bool logisticFloat32(const float* inputData, const Shape& inputShape,
+ float* outputData, const Shape& outputShape);
+bool softmaxFloat32(const float* inputData, const Shape& inputShape,
+ const float beta,
+ float* outputData, const Shape& outputShape);
+bool reluQuant8(const uint8_t* inputData, const Shape& inputShape,
+ uint8_t* outputData, const Shape& outputShape);
+bool relu1Quant8(const uint8_t* inputData, const Shape& inputShape,
+ uint8_t* outputData, const Shape& outputShape);
+bool relu6Quant8(const uint8_t* inputData, const Shape& inputShape,
+ uint8_t* outputData, const Shape& outputShape);
+bool logisticQuant8(const uint8_t* inputData, const Shape& inputShape,
+ uint8_t* outputData, const Shape& outputShape);
+bool softmaxQuant8(const uint8_t* inputData, const Shape& inputShape,
+ const float beta,
+ uint8_t* outputData, const Shape& outputShape);
+
+bool fullyConnectedFloat32(const float* inputData, const Shape& inputShape,
+ const float* weights, const Shape& weightsShape,
+ const float* biasData, const Shape& biasShape,
+ int32_t activation,
+ float* outputData, const Shape& outputShape);
+bool fullyConnectedQuant8(const uint8_t* inputData, const Shape& inputShape,
+ const uint8_t* weights, const Shape& weightsShape,
+ const int32_t* biasData, const Shape& biasShape,
+ int32_t activation,
+ uint8_t* outputData, const Shape& outputShape);
+
+bool concatenationFloat32(const std::vector<const float*>& inputDataPtrs,
+ const std::vector<Shape>& inputShapes, int32_t axis,
+ float* outputData, const Shape& outputShape);
+bool concatenationQuant8(const std::vector<const uint8_t*>& inputDataPtrs,
+ const std::vector<Shape>& inputShapes, int32_t axis,
+ uint8_t* outputData, const Shape& outputShape);
+
+bool l2normFloat32(const float* inputData, const Shape& inputShape,
+ float* outputData, const Shape& outputShape);
+bool l2normQuant8(const uint8_t* inputData, const Shape& inputShape,
+ uint8_t* outputData, const Shape& outputShape);
+bool localResponseNormFloat32(const float* inputData, const Shape& inputShape,
+ int32_t radius, float bias, float alpha, float beta,
+ float* outputData, const Shape& outputShape);
+
+bool reshapeGeneric(const void* inputData, const Shape& inputShape,
+ void* outputData, const Shape& outputShape);
+
+bool resizeBilinearFloat32(const float* inputData,
+ const Shape& inputShape,
+ float* outputData,
+ const Shape& outputShape);
+
+bool depthToSpaceGeneric(const uint8_t* inputData, const Shape& inputShape,
+ int32_t blockSize,
+ uint8_t* outputData, const Shape& outputShape);
+
+bool spaceToDepthGeneric(const uint8_t* inputData, const Shape& inputShape,
+ int32_t blockSize,
+ uint8_t* outputData, const Shape& outputShape);
+
+} // namespace rt
+} // namespace nnfw
+
+#endif // __NNFW_RT_OPERATIONS_H__
diff --git a/runtimes/nn/common/include/OperationsUtils.h b/runtimes/nn/common/include/OperationsUtils.h
new file mode 100644
index 000000000..c66ad891b
--- /dev/null
+++ b/runtimes/nn/common/include/OperationsUtils.h
@@ -0,0 +1,247 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_OPERATIONS_UTILS_H__
+#define __NNFW_RT_OPERATIONS_UTILS_H__
+
+#include "Utils.h"
+
+#include <cstdint>
+#include <vector>
+
+// Macro to check if the input parameters for operation are valid or not.
+#define NN_CHECK(v) \
+ do { \
+ if (!(v)) { \
+ LOG(ERROR) << "NN_CHECK failed: " << #v << "'\n"; \
+ return false; \
+ } \
+ } while(0);
+
+#define NN_CHECK_EQ(actual, expected) \
+ NN_CHECK((actual) == (expected))
+
+#define NN_OPS_CHECK NN_CHECK
+
+namespace nnfw {
+namespace rt {
+
+enum PaddingScheme {
+ kPaddingUnknown = 0,
+ kPaddingSame = 1,
+ kPaddingValid = 2,
+};
+
+// The type and dimensions of an operand.
+struct Shape {
+ OperandType type;
+ std::vector<uint32_t> dimensions;
+ float scale;
+ int32_t offset;
+};
+
+// Verifies that the two shapes are the same.
+bool SameShape(const Shape& in1, const Shape& in2);
+
+// Sets out to the same shape as in.
+bool SetShape(const Shape& in, Shape* out);
+
+// Return the total number of elements, i.e. all the dimensions multiplied
+// together. For a scalar, returns one.
+uint32_t getNumberOfElements(const Shape& shape);
+
+uint32_t getNumberOfDimensions(const Shape& shape);
+
+uint32_t getSizeOfDimension(const Shape& shape, uint32_t dimensionIdx);
+
+inline uint32_t computeOutSize(uint32_t imageSize, uint32_t filterSize, uint32_t stride,
+ uint32_t paddingHead, uint32_t paddingTail) {
+ return (imageSize - filterSize + stride + paddingHead + paddingTail) / stride;
+}
+
+__wur
+bool QuantizeMultiplierSmallerThanOne(double double_multiplier,
+ int32_t* quantized_multiplier,
+ int32_t* right_shift);
+
+__wur
+bool QuantizeMultiplierGreaterThanOne(double double_multiplier,
+ int32_t* quantized_multiplier,
+ int* left_shift);
+
+__wur
+bool GetQuantizedConvolutionMultipler(const Shape& inputShape,
+ const Shape& filterShape,
+ const Shape& biasShape,
+ const Shape& outputShape,
+ float* multiplier);
+
+void CalculateActivationRangeUint8(int32_t activation,
+ const Shape& outputShape,
+ int32_t* act_min,
+ int32_t* act_max);
+
+int32_t CalculateInputRadius(int input_integer_bits, int input_left_shift);
+
+inline void calculateExplicitPadding(int32_t in_size, int32_t stride,
+ int32_t filter_size, int32_t padding_implicit,
+ int32_t* padding_head, int32_t* padding_tail) {
+ *padding_head = 0;
+ *padding_tail = 0;
+
+ if (padding_implicit == kPaddingSame) {
+ int32_t out_size = (in_size + stride - 1) / stride;
+ int32_t tmp = (out_size - 1) * stride + filter_size;
+ if (tmp > in_size) {
+ *padding_head = (tmp - in_size) / 2;
+ *padding_tail = (tmp - in_size) - *padding_head;
+ }
+ }
+}
+
+inline PaddingScheme getPaddingScheme(int32_t inWidth, int32_t inHeight,
+ int32_t strideWidth, int32_t strideHeight,
+ int32_t filterWidth, int32_t filterHeight,
+ int32_t paddingLeft, int32_t paddingRight,
+ int32_t paddingTop, int32_t paddingBottom) {
+ if (paddingLeft == 0 && paddingRight == 0 && paddingTop == 0 && paddingBottom == 0) {
+ return kPaddingValid;
+ }
+
+ int32_t expectedPaddingLeft, expectedPaddingRight;
+ int32_t expectedPaddingTop, expectedPaddingBottom;
+
+ calculateExplicitPadding(inWidth, strideWidth, filterWidth, kPaddingSame,
+ &expectedPaddingLeft, &expectedPaddingRight);
+ calculateExplicitPadding(inHeight, strideHeight, filterHeight, kPaddingSame,
+ &expectedPaddingTop, &expectedPaddingBottom);
+ if (expectedPaddingLeft == paddingLeft && expectedPaddingRight == paddingRight &&
+ expectedPaddingTop == paddingTop && expectedPaddingBottom == paddingBottom) {
+ return kPaddingSame;
+ } else {
+ return kPaddingUnknown;
+ }
+}
+
+// Preparation functions for the corresponding ops
+bool addMulPrepare(const Shape& in1, const Shape& in2, Shape* out1);
+
+bool floorPrepare(const Shape& input, Shape* output);
+
+bool dequantizePrepare(const Shape& input, Shape* output);
+
+bool depthwiseConvPrepare(const Shape& input,
+ const Shape& filter,
+ const Shape& bias,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ Shape* output);
+
+bool convPrepare(const Shape& input,
+ const Shape& filter,
+ const Shape& bias,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ Shape* output);
+
+bool genericPoolingPrepare(const Shape& input,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height,
+ Shape* output);
+
+bool genericActivationPrepare(const Shape& input, Shape* output);
+
+bool fullyConnectedPrepare(const Shape& input,
+ const Shape& weights,
+ const Shape& bias,
+ Shape* output);
+
+bool concatenationPrepare(const std::vector<Shape>& inputShapes,
+ int32_t axis,
+ Shape* output);
+
+bool genericNormalizationPrepare(const Shape& input, Shape* output);
+
+bool reshapePrepare(const Shape& input,
+ const int32_t* targetDims,
+ const int32_t targetDimsSize,
+ Shape* output);
+
+bool resizeBilinearPrepare(const Shape& input,
+ int32_t height,
+ int32_t width,
+ Shape* output);
+
+bool depthToSpacePrepare(const Shape& input,
+ int32_t blockSize,
+ Shape* output);
+
+bool spaceToDepthPrepare(const Shape& input,
+ int32_t blockSize,
+ Shape* output);
+
+bool embeddingLookupPrepare(const Shape &valueShape,
+ const Shape &lookupShape,
+ Shape *outputShape);
+
+bool hashtableLookupPrepare(const Shape &lookupShape,
+ const Shape &keyShape,
+ const Shape &valueShape,
+ Shape *outputShape,
+ Shape *hitShape);
+
+#define ANDROID_NN_MACRO_DISPATCH_INTERNAL(macro) \
+ case (int32_t) FusedActivationFunc::NONE: \
+ macro(kNone); \
+ break; \
+ case (int32_t) FusedActivationFunc::RELU: \
+ macro(kRelu); \
+ break; \
+ case (int32_t) FusedActivationFunc::RELU1: \
+ macro(kRelu1); \
+ break; \
+ case (int32_t) FusedActivationFunc::RELU6: \
+ macro(kRelu6); \
+ break;
+
+#define ANDROID_NN_MACRO_DISPATCH(macro) \
+ switch (activation) { \
+ ANDROID_NN_MACRO_DISPATCH_INTERNAL(macro) \
+ default: \
+ LOG(ERROR) << "Unsupported fused activation function type"; \
+ return false; \
+ }
+
+#define ANDROID_NN_MACRO_DISPATCH_WITH_DELETE(macro) \
+ switch (activation) { \
+ ANDROID_NN_MACRO_DISPATCH_INTERNAL(macro) \
+ default: \
+ LOG(ERROR) << "Unsupported fused activation function type"; \
+ if (im2colByteSize > kStaticBufferSize) { \
+ delete[] im2colData; \
+ } \
+ return false; \
+ }
+
+} // namespace rt
+} // namespace nnfw
+
+#endif // __NNFW_RT_OPERATIONS_UTILS_H__
diff --git a/runtimes/nn/common/include/Utils.h b/runtimes/nn/common/include/Utils.h
new file mode 100644
index 000000000..aae4cff90
--- /dev/null
+++ b/runtimes/nn/common/include/Utils.h
@@ -0,0 +1,128 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_UTILS_H__
+#define __NNFW_RT_UTILS_H__
+
+#include "HalInterfaces.h"
+#include "NeuralNetworks.h"
+#include "Logging.h"
+
+#include <vector>
+
+namespace nnfw {
+namespace rt {
+
+// The number of data types (OperandCode) defined in NeuralNetworks.h.
+const int kNumberOfDataTypes = 6;
+
+// The number of operation types (OperationCode) defined in NeuralNetworks.h.
+const int kNumberOfOperationTypes = 30;
+
+// The number of execution preferences defined in NeuralNetworks.h.
+const int kNumberOfPreferences = 3;
+
+// The number of data types (OperandCode) defined in NeuralNetworksOEM.h.
+const int kNumberOfDataTypesOEM = 2;
+
+// The number of operation types (OperationCode) defined in NeuralNetworksOEM.h.
+const int kNumberOfOperationTypesOEM = 1;
+
+// The lowest number assigned to any OEM Code in NeuralNetworksOEM.h.
+const int kOEMCodeBase = 10000;
+
+// Assert macro, as Android does not generally support assert.
+#define nnAssert(v) \
+ do { \
+ if (!(v)) { \
+ LOG(ERROR) << "nnAssert failed at " << __FILE__ << ":" << __LINE__ << " - '" << #v \
+ << "'\n"; \
+ abort(); \
+ } \
+ } while (0)
+// Returns the amount of space needed to store a value of the specified
+// dimensions and type.
+uint32_t sizeOfData(OperandType type, const std::vector<uint32_t>& dimensions);
+
+// Returns the amount of space needed to store a value of the dimensions and
+// type of this operand.
+inline uint32_t sizeOfData(const Operand& operand) {
+ return sizeOfData(operand.type, operand.dimensions);
+}
+
+// Returns the name of the operation in ASCII.
+const char* getOperationName(OperationType opCode);
+// Memory is unmapped.
+// Memory is reference counted by hidl_memory instances, and is deallocated
+// once there are no more references.
+hidl_memory allocateSharedMemory(int64_t size);
+
+// Returns the number of padding bytes needed to align data of the
+// specified length. It aligns object of length:
+// 2, 3 on a 2 byte boundary,
+// 4+ on a 4 byte boundary.
+// We may want to have different alignments for tensors.
+// TODO: This is arbitrary, more a proof of concept. We need
+// to determine what this should be.
+uint32_t alignBytesNeeded(uint32_t index, size_t length);
+
+inline void setFromIntList(hidl_vec<uint32_t>* vec, uint32_t count, const uint32_t* data) {
+ vec->resize(count);
+ for (uint32_t i = 0; i < count; i++) {
+ (*vec)[i] = data[i];
+ }
+}
+
+inline void setFromIntList(std::vector<uint32_t>* vec, uint32_t count, const uint32_t* data) {
+ vec->resize(count);
+ for (uint32_t i = 0; i < count; i++) {
+ (*vec)[i] = data[i];
+ }
+}
+
+inline std::string toString(uint32_t obj) {
+ return std::to_string(obj);
+}
+
+template <typename Type>
+std::string toString(const std::vector<Type>& range) {
+ std::string os = "[";
+ for (size_t i = 0; i < range.size(); ++i) {
+ os += (i == 0 ? "" : ", ") + toString(range[i]);
+ }
+ return os += "]";
+}
+
+inline bool validCode(uint32_t codeCount, uint32_t codeCountOEM, uint32_t code) {
+ return (code < codeCount) || (code >= kOEMCodeBase && (code - kOEMCodeBase) < codeCountOEM);
+}
+
+int validateOperandType(const ANeuralNetworksOperandType& type, const char* tag, bool allowPartial);
+int validateOperandList(uint32_t count, const uint32_t* list, uint32_t operandCount,
+ const char* tag);
+
+bool validateModel(const Model& model);
+bool validateRequest(const Request& request, const Model& model);
+
+inline size_t getSizeFromInts(int lower, int higher) {
+ return (uint32_t)(lower) + ((uint64_t)(uint32_t)(higher) << 32);
+}
+
+} // namespace rt
+} // namespace nnfw
+
+#endif // __NNFW_RT_UTILS_H__
diff --git a/runtimes/nn/common/operations/Activation.cpp b/runtimes/nn/common/operations/Activation.cpp
new file mode 100644
index 000000000..091ffabb3
--- /dev/null
+++ b/runtimes/nn/common/operations/Activation.cpp
@@ -0,0 +1,211 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "Operations.h"
+#include "OperationsUtils.h"
+
+#include "internal/optimized/optimized_ops.h"
+
+// TODO-NNRT: There was no inlcude "ActivationFunctor.h" in Android NN.
+// This may be included from some other header files.
+#include "ActivationFunctor.h"
+
+namespace nnfw {
+namespace rt {
+
+bool reluFloat32(const float* inputData, const Shape& inputShape,
+ float* outputData, const Shape& outputShape) {
+ int numElements = getNumberOfElements(inputShape);
+ for (int i=0; i<numElements; i++, inputData++, outputData++) {
+ *outputData = std::max(0.f, *inputData);
+ }
+ return true;
+}
+
+bool relu1Float32(const float* inputData, const Shape& inputShape,
+ float* outputData, const Shape& outputShape) {
+ int numElements = getNumberOfElements(inputShape);
+ for (int i=0; i<numElements; i++, inputData++, outputData++) {
+ *outputData = std::min(std::max(-1.f, *inputData), 1.f);
+ }
+ return true;
+}
+
+bool relu6Float32(const float* inputData, const Shape& inputShape,
+ float* outputData, const Shape& outputShape) {
+ int numElements = getNumberOfElements(inputShape);
+ for (int i=0; i<numElements; i++, inputData++, outputData++) {
+ *outputData = std::min(std::max(0.f, *inputData), 6.f);
+ }
+ return true;
+}
+
+bool tanhFloat32(const float* inputData, const Shape& inputShape,
+ float* outputData, const Shape& outputShape) {
+ int numElements = getNumberOfElements(inputShape);
+ for (int i=0; i<numElements; i++, inputData++, outputData++) {
+ *outputData = std::tanh(*inputData);
+ }
+ return true;
+}
+
+bool logisticFloat32(const float* inputData, const Shape& inputShape,
+ float* outputData, const Shape& outputShape) {
+ int numElements = getNumberOfElements(inputShape);
+ for (int i=0; i<numElements; i++, inputData++, outputData++) {
+ *outputData = 1.f / (1.f + std::exp(-*inputData));
+ }
+ return true;
+}
+
+bool softmaxFloat32(const float* inputData, const Shape& inputShape,
+ const float beta,
+ float* outputData, const Shape& outputShape) {
+ Dims<4> dim;
+ if (getNumberOfDimensions(inputShape) == 2) {
+ uint32_t batch_size = getSizeOfDimension(inputShape, 0);
+ uint32_t input_size = getNumberOfElements(inputShape) / batch_size;
+
+ Shape shapeIn4D;
+ shapeIn4D.dimensions = {batch_size, 1, 1, input_size};
+ dim = convertShapeToDims(shapeIn4D);
+ } else if (getNumberOfDimensions(inputShape) == 4) {
+ dim = convertShapeToDims(inputShape);
+ } else {
+ LOG(ERROR) << "only 2D and 4D tensors supported";
+ return false;
+ }
+
+ optimized_ops::Softmax(inputData, dim, beta,
+ outputData, dim);
+ return true;
+}
+
+#define ANDROID_NN_RELUX_QUANT8(activation) \
+ int numElements = getNumberOfElements(inputShape); \
+ int32_t output_activation_min = 0; \
+ int32_t output_activation_max = 0; \
+ \
+ CalculateActivationRangeUint8(activation, inputShape, \
+ &output_activation_min, \
+ &output_activation_max); \
+ \
+ for (int i=0; i<numElements; i++, inputData++, outputData++) { \
+ *outputData = std::min((uint8_t)output_activation_max, \
+ std::max((uint8_t)output_activation_min, *inputData)); \
+ }
+
+
+bool reluQuant8(const uint8_t* inputData, const Shape& inputShape,
+ uint8_t* outputData, const Shape& outputShape) {
+ ANDROID_NN_RELUX_QUANT8(kActivationRelu)
+ return true;
+}
+
+bool relu1Quant8(const uint8_t* inputData, const Shape& inputShape,
+ uint8_t* outputData, const Shape& outputShape) {
+ ANDROID_NN_RELUX_QUANT8(kActivationRelu1)
+ return true;
+}
+
+bool relu6Quant8(const uint8_t* inputData, const Shape& inputShape,
+ uint8_t* outputData, const Shape& outputShape) {
+ ANDROID_NN_RELUX_QUANT8(kActivationRelu6)
+ return true;
+}
+
+#undef ANDROID_NN_RELUX_QUANT8
+
+bool logisticQuant8(const uint8_t* inputData, const Shape& inputShape,
+ uint8_t* outputData, const Shape& outputShape) {
+ if (outputShape.offset != 0 || outputShape.scale != 1.f / 256) {
+ LOG(ERROR) << "incorrect scale / offset for output";
+ return false;
+ }
+
+ static constexpr int kInputIntegerBits = 4;
+
+ const double input_real_multiplier =
+ inputShape.scale *
+ static_cast<double>(1 << (31 - kInputIntegerBits));
+
+ int32_t input_multiplier = 0;
+ int32_t input_left_shift = 0;
+ if (!QuantizeMultiplierGreaterThanOne(input_real_multiplier,
+ &input_multiplier,
+ &input_left_shift)) {
+ return false;
+ }
+ int32_t input_range_radius =
+ CalculateInputRadius(kInputIntegerBits, input_left_shift);
+
+ optimized_ops::Logistic(
+ inputData, convertShapeToDims(inputShape),
+ inputShape.offset, input_range_radius,
+ input_multiplier, input_left_shift,
+ outputData, convertShapeToDims(outputShape));
+
+ return true;
+}
+
+bool softmaxQuant8(const uint8_t* inputData, const Shape& inputShape,
+ const float beta,
+ uint8_t* outputData, const Shape& outputShape) {
+ Dims<4> dim;
+ if (getNumberOfDimensions(inputShape) == 2) {
+ uint32_t batch_size = getSizeOfDimension(inputShape, 0);
+ uint32_t input_size = getNumberOfElements(inputShape) / batch_size;
+
+ Shape shapeIn4D;
+ shapeIn4D.dimensions = {batch_size, 1, 1, input_size};
+ dim = convertShapeToDims(shapeIn4D);
+ } else if (getNumberOfDimensions(inputShape) == 4) {
+ dim = convertShapeToDims(inputShape);
+ } else {
+ LOG(ERROR) << "only 2D and 4D tensors supported";
+ return false;
+ }
+
+ if (outputShape.offset != 0 || outputShape.scale != 1.f / 256) {
+ LOG(ERROR) << "incorrect scale / offset for output";
+ return false;
+ }
+
+ static const int32_t kScaledDiffIntegerBits = 5;
+ const double input_beta_real_multiplier = std::min(
+ 1.0 * beta * inputShape.scale * (1 << (31 - kScaledDiffIntegerBits)),
+ (1ll << 31) - 1.0);
+
+ int32_t input_multiplier = 0;
+ int32_t input_left_shift = 0;
+ if (!QuantizeMultiplierGreaterThanOne(input_beta_real_multiplier,
+ &input_multiplier,
+ &input_left_shift)) {
+ return false;
+ }
+ float diff_min = -1.0f * CalculateInputRadius(kScaledDiffIntegerBits,
+ input_left_shift);
+
+ optimized_ops::Softmax(inputData, dim, input_multiplier,
+ input_left_shift, diff_min,
+ outputData, dim);
+ return true;
+}
+
+
+} // namespace rt
+} // namespace nnfw
diff --git a/runtimes/nn/common/operations/Concatenation.cpp b/runtimes/nn/common/operations/Concatenation.cpp
new file mode 100644
index 000000000..55de24d4d
--- /dev/null
+++ b/runtimes/nn/common/operations/Concatenation.cpp
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "Operations.h"
+#include "OperationsUtils.h"
+
+#include "internal/optimized/optimized_ops.h"
+
+namespace nnfw {
+namespace rt {
+
+bool concatenationFloat32(const std::vector<const float*>& inputDataPtrs,
+ const std::vector<Shape>& inputShapes, int32_t axis,
+ float* outputData, const Shape& outputShape) {
+ int num_inputs = inputShapes.size();
+ std::vector<Dims<4>*> inputDimsPtr(num_inputs);
+ std::vector<Dims<4> > inputDims(num_inputs);
+ for (int i=0; i<num_inputs; i++) {
+ inputDims[i] = convertShapeToDims(inputShapes[i]);
+ inputDimsPtr[i] = &inputDims[i];
+ }
+
+ optimized_ops::Concatenation<FusedActivationFunctionType::kNone, float>(
+ getNumberOfDimensions(outputShape) - axis - 1,
+ inputDataPtrs.data(), inputDimsPtr.data(), num_inputs,
+ outputData, convertShapeToDims(outputShape));
+
+ return true;
+}
+
+bool concatenationQuant8(const std::vector<const uint8_t*>& inputDataPtrs,
+ const std::vector<Shape>& inputShapes, int32_t axis,
+ uint8_t* outputData, const Shape& outputShape) {
+ int num_inputs = inputShapes.size();
+ std::vector<Dims<4>*> inputDimsPtr(num_inputs);
+ std::vector<Dims<4> > inputDims(num_inputs);
+ for (int i=0; i<num_inputs; i++) {
+ inputDims[i] = convertShapeToDims(inputShapes[i]);
+ inputDimsPtr[i] = &inputDims[i];
+ }
+
+ optimized_ops::Concatenation<FusedActivationFunctionType::kNone, uint8_t>(
+ getNumberOfDimensions(outputShape) - axis - 1,
+ inputDataPtrs.data(), inputDimsPtr.data(), num_inputs,
+ outputData, convertShapeToDims(outputShape));
+
+ return true;
+}
+} // namespace rt
+} // namespace nnfw
diff --git a/runtimes/nn/common/operations/Conv2D.cpp b/runtimes/nn/common/operations/Conv2D.cpp
new file mode 100644
index 000000000..01f6797e3
--- /dev/null
+++ b/runtimes/nn/common/operations/Conv2D.cpp
@@ -0,0 +1,154 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "Operations.h"
+#include "OperationsUtils.h"
+
+#include "internal/optimized/optimized_ops.h"
+
+namespace nnfw {
+namespace rt {
+
+// If possible we will use this static buffer for the tensor.
+static constexpr int kStaticBufferSize = 1605632;
+static char static_scratch_buffer[kStaticBufferSize];
+
+#define ANDROID_NN_CONV_PARAMETERS(Type) \
+ uint32_t height = getSizeOfDimension(inputShape, 1); \
+ uint32_t width = getSizeOfDimension(inputShape, 2); \
+ uint32_t filterHeight = getSizeOfDimension(filterShape, 1); \
+ uint32_t filterWidth = getSizeOfDimension(filterShape, 2); \
+ uint32_t outHeight = getSizeOfDimension(outputShape, 1); \
+ uint32_t outWidth = getSizeOfDimension(outputShape, 2); \
+ uint32_t inDepth = getSizeOfDimension(inputShape, 3); \
+ \
+ uint32_t paddingHeight = (uint32_t)padding_top; \
+ uint32_t paddingWidth = (uint32_t)padding_left; \
+ \
+ Dims<4> im2colDim; \
+ im2colDim.sizes[3] = (int)getSizeOfDimension(outputShape, 0); \
+ im2colDim.sizes[2] = (int)getSizeOfDimension(outputShape, 1); \
+ im2colDim.sizes[1] = (int)getSizeOfDimension(outputShape, 2); \
+ im2colDim.sizes[0] = (int)inDepth * filterHeight * filterWidth; \
+ \
+ im2colDim.strides[0] = 1; \
+ for (int i=1; i<4; i++) { \
+ im2colDim.strides[i] = im2colDim.strides[i-1] * im2colDim.sizes[i-1]; \
+ } \
+ \
+ Type* im2colData = nullptr; \
+ int im2colByteSize = sizeof(Type); \
+ for (int i=0; i<4; i++) { \
+ im2colByteSize *= im2colDim.sizes[i]; \
+ } \
+ if (im2colByteSize <= kStaticBufferSize) { \
+ im2colData = reinterpret_cast<Type *>(static_scratch_buffer); \
+ } else { \
+ im2colData = new (std::nothrow) Type[im2colByteSize / sizeof(Type)]; \
+ }
+
+bool convFloat32(const float* inputData, const Shape& inputShape,
+ const float* filterData, const Shape& filterShape,
+ const float* biasData, const Shape& biasShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t activation,
+ float* outputData, const Shape& outputShape) {
+
+ ANDROID_NN_CONV_PARAMETERS(float)
+
+ #define ANDROID_NN_CONV(activation) \
+ optimized_ops::Conv<FusedActivationFunctionType::activation>( \
+ inputData, convertShapeToDims(inputShape), \
+ filterData, convertShapeToDims(filterShape), \
+ biasData, convertShapeToDims(biasShape), \
+ stride_width, stride_height, paddingWidth, paddingHeight, \
+ outputData, convertShapeToDims(outputShape), \
+ im2colData, im2colDim)
+
+ ANDROID_NN_MACRO_DISPATCH_WITH_DELETE(ANDROID_NN_CONV)
+ #undef ANDROID_NN_CONV
+
+ if (im2colByteSize > kStaticBufferSize) {
+ delete[] im2colData;
+ }
+ return true;
+}
+
+bool convQuant8(const uint8_t* inputData, const Shape& inputShape,
+ const uint8_t* filterData, const Shape& filterShape,
+ const int32_t* biasData, const Shape& biasShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t activation,
+ uint8_t* outputData, const Shape& outputShape) {
+
+ ANDROID_NN_CONV_PARAMETERS(uint8_t)
+
+ int32_t inputOffset = -inputShape.offset;
+ int32_t filterOffset = -filterShape.offset;
+ int32_t outputOffset = outputShape.offset;
+
+ float real_multiplier = 0.0;
+ int32_t output_multiplier = 0;
+ int32_t output_shift = 0;
+ int32_t output_activation_min = 0;
+ int32_t output_activation_max = 0;
+
+ if (!GetQuantizedConvolutionMultipler(inputShape, filterShape, biasShape,
+ outputShape, &real_multiplier) ||
+ !QuantizeMultiplierSmallerThanOne(real_multiplier, &output_multiplier,
+ &output_shift)){
+ // Following code inserted to resolve Coverity (118950 Resource leak)
+ if (im2colByteSize > kStaticBufferSize) {
+ delete[] im2colData;
+ }
+ return false;
+ }
+ CalculateActivationRangeUint8(activation, outputShape,
+ &output_activation_min,
+ &output_activation_max);
+
+ static gemmlowp::GemmContext gemm_context;
+ // Alow gemmlowp automatcally decide how many threads to use.
+ gemm_context.set_max_num_threads(0);
+
+ #define ANDROID_NN_CONV(activation) \
+ optimized_ops::Conv<FusedActivationFunctionType::activation>( \
+ inputData, convertShapeToDims(inputShape), inputOffset, \
+ filterData, convertShapeToDims(filterShape), filterOffset, \
+ biasData, convertShapeToDims(biasShape), \
+ stride_width, stride_height, paddingWidth, paddingHeight, \
+ outputOffset, output_multiplier, output_shift, \
+ output_activation_min, output_activation_max, \
+ outputData, convertShapeToDims(outputShape), \
+ im2colData, im2colDim, &gemm_context)
+
+ ANDROID_NN_MACRO_DISPATCH_WITH_DELETE(ANDROID_NN_CONV)
+ #undef ANDROID_NN_CONV
+
+ if (im2colByteSize > kStaticBufferSize) {
+ delete[] im2colData;
+ }
+ return true;
+}
+
+#undef ANDROID_NN_CONV_PARAMETERS
+} // namespace rt
+} // namespace nnfw
diff --git a/runtimes/nn/common/operations/DepthwiseConv2D.cpp b/runtimes/nn/common/operations/DepthwiseConv2D.cpp
new file mode 100644
index 000000000..94a78f942
--- /dev/null
+++ b/runtimes/nn/common/operations/DepthwiseConv2D.cpp
@@ -0,0 +1,119 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "Operations.h"
+#include "OperationsUtils.h"
+
+#include "internal/optimized/depthwiseconv_float.h"
+#if 0 // REF-ANN We don't support depthwiseConvQuant8 yet
+#include "internal/optimized/depthwiseconv_uint8.h"
+#endif
+
+namespace nnfw {
+namespace rt {
+
+#define ANDROID_NN_DEPTHWISE_CONV_PARAMETERS \
+ uint32_t height = getSizeOfDimension(inputShape, 1); \
+ uint32_t width = getSizeOfDimension(inputShape, 2); \
+ uint32_t filterHeight = getSizeOfDimension(filterShape, 1); \
+ uint32_t filterWidth = getSizeOfDimension(filterShape, 2); \
+ uint32_t outHeight = getSizeOfDimension(outputShape, 1); \
+ uint32_t outWidth = getSizeOfDimension(outputShape, 2); \
+ \
+ uint32_t paddingHeight = (uint32_t)padding_top; \
+ uint32_t paddingWidth = (uint32_t)padding_left;
+
+bool depthwiseConvFloat32(const float* inputData, const Shape& inputShape,
+ const float* filterData, const Shape& filterShape,
+ const float* biasData, const Shape& biasShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t depth_multiplier, int32_t activation,
+ float* outputData, const Shape& outputShape) {
+
+ ANDROID_NN_DEPTHWISE_CONV_PARAMETERS
+
+ #define ANDROID_NN_DEPTHWISE_CONV(activation) \
+ optimized_ops::DepthwiseConv<FusedActivationFunctionType::activation>( \
+ inputData, convertShapeToDims(inputShape), \
+ filterData, convertShapeToDims(filterShape), \
+ biasData, convertShapeToDims(biasShape), \
+ stride_width, stride_height, \
+ paddingWidth, paddingHeight, depth_multiplier, \
+ outputData, convertShapeToDims(outputShape))
+
+ ANDROID_NN_MACRO_DISPATCH(ANDROID_NN_DEPTHWISE_CONV)
+ #undef ANDROID_NN_DEPTHWISE_CONV
+
+ return true;
+}
+
+
+#if 0 // REF-ANN We don't support depthwiseConvQuant8 yet
+bool depthwiseConvQuant8(const uint8_t* inputData, const Shape& inputShape,
+ const uint8_t* filterData, const Shape& filterShape,
+ const int32_t* biasData, const Shape& biasShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t depth_multiplier, int32_t activation,
+ uint8_t* outputData, const Shape& outputShape) {
+
+ ANDROID_NN_DEPTHWISE_CONV_PARAMETERS
+
+ float real_multiplier = 0.0;
+ int32_t output_multiplier = 0;
+ int32_t output_shift = 0;
+ int32_t output_activation_min = 0;
+ int32_t output_activation_max = 0;
+
+
+ if (!GetQuantizedConvolutionMultipler(inputShape, filterShape, biasShape,
+ outputShape, &real_multiplier) ||
+ !QuantizeMultiplierSmallerThanOne(real_multiplier, &output_multiplier,
+ &output_shift)) {
+ return false;
+ }
+ CalculateActivationRangeUint8(activation, outputShape,
+ &output_activation_min,
+ &output_activation_max);
+
+ uint32_t inputOffset = -inputShape.offset;
+ uint32_t filterOffset = -filterShape.offset;
+ uint32_t outputOffset = outputShape.offset;
+ #define ANDROID_NN_DEPTHWISE_CONV(activation) \
+ optimized_ops::DepthwiseConv<FusedActivationFunctionType::activation>( \
+ inputData, convertShapeToDims(inputShape), inputOffset, \
+ filterData, convertShapeToDims(filterShape), filterOffset, \
+ biasData, convertShapeToDims(biasShape), \
+ stride_width, stride_height, \
+ paddingWidth, paddingHeight, depth_multiplier, \
+ outputOffset, output_multiplier, output_shift, \
+ output_activation_min, output_activation_max, \
+ outputData, convertShapeToDims(outputShape))
+
+ ANDROID_NN_MACRO_DISPATCH(ANDROID_NN_DEPTHWISE_CONV)
+ #undef ANDROID_NN_DEPTHWISE_CONV
+
+ return true;
+}
+#endif // REF-ANN
+
+#undef ANDROID_NN_DEPTHWISE_CONV_PARAMETERS
+} // namespace rt
+} // namespace nnfw
diff --git a/runtimes/nn/common/operations/FullyConnected.cpp b/runtimes/nn/common/operations/FullyConnected.cpp
new file mode 100644
index 000000000..393d0ff9e
--- /dev/null
+++ b/runtimes/nn/common/operations/FullyConnected.cpp
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "Operations.h"
+#include "OperationsUtils.h"
+
+#include "internal/optimized/optimized_ops.h"
+
+namespace nnfw {
+namespace rt {
+
+bool fullyConnectedFloat32(const float* inputData, const Shape& inputShape,
+ const float* weightsData, const Shape& weightsShape,
+ const float* biasData, const Shape& biasShape,
+ int32_t activation,
+ float* outputData, const Shape& outputShape) {
+
+ #define ANDROID_NN_FULLY_CONNECTED(activation) \
+ optimized_ops::FullyConnected<FusedActivationFunctionType::activation>( \
+ inputData, convertShapeToDims(inputShape), \
+ weightsData, convertShapeToDims(weightsShape), \
+ biasData, convertShapeToDims(biasShape), \
+ outputData, convertShapeToDims(outputShape))
+
+ ANDROID_NN_MACRO_DISPATCH(ANDROID_NN_FULLY_CONNECTED)
+ #undef ANDROID_NN_FULLY_CONNECTED
+ return true;
+}
+
+bool fullyConnectedQuant8(const uint8_t* inputData, const Shape& inputShape,
+ const uint8_t* weightsData, const Shape& weightsShape,
+ const int32_t* biasData, const Shape& biasShape,
+ int32_t activation,
+ uint8_t* outputData, const Shape& outputShape) {
+ int32_t inputOffset = -inputShape.offset;
+ int32_t weightsOffset = -weightsShape.offset;
+ int32_t outputOffset = outputShape.offset;
+
+ float real_multiplier = 0.0;
+ int32_t output_multiplier = 0;
+ int32_t output_shift = 0;
+ int32_t output_activation_min = 0;
+ int32_t output_activation_max = 0;
+
+ if (!GetQuantizedConvolutionMultipler(inputShape, weightsShape, biasShape,
+ outputShape, &real_multiplier) ||
+ !QuantizeMultiplierSmallerThanOne(real_multiplier, &output_multiplier,
+ &output_shift)) {
+ return false;
+ }
+ CalculateActivationRangeUint8(activation, outputShape,
+ &output_activation_min,
+ &output_activation_max);
+
+ static gemmlowp::GemmContext gemm_context;
+ // Alow gemmlowp automatcally decide how many threads to use.
+ gemm_context.set_max_num_threads(0);
+
+ #define ANDROID_NN_FULLY_CONNECTED(activation) \
+ optimized_ops::FullyConnected<FusedActivationFunctionType::activation>( \
+ inputData, convertShapeToDims(inputShape), inputOffset, \
+ weightsData, convertShapeToDims(weightsShape), weightsOffset, \
+ biasData, convertShapeToDims(biasShape), \
+ outputOffset, output_multiplier, output_shift, \
+ output_activation_min, output_activation_max, \
+ outputData, convertShapeToDims(outputShape), &gemm_context)
+
+ ANDROID_NN_MACRO_DISPATCH(ANDROID_NN_FULLY_CONNECTED)
+ #undef ANDROID_NN_FULLY_CONNECTED
+ return true;
+}
+} // namespace rt
+} // namespace nnfw
diff --git a/runtimes/nn/common/operations/Pooling.cpp b/runtimes/nn/common/operations/Pooling.cpp
new file mode 100644
index 000000000..958164c1b
--- /dev/null
+++ b/runtimes/nn/common/operations/Pooling.cpp
@@ -0,0 +1,163 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "Operations.h"
+#include "OperationsUtils.h"
+
+#include "internal/optimized/optimized_ops.h"
+
+namespace nnfw {
+namespace rt {
+
+#define ANDROID_NN_POOLING_PARAMETERS \
+ uint32_t height = getSizeOfDimension(inputShape, 1); \
+ uint32_t width = getSizeOfDimension(inputShape, 2); \
+ uint32_t outHeight = getSizeOfDimension(outputShape, 1); \
+ uint32_t outWidth = getSizeOfDimension(outputShape, 2); \
+ \
+ uint32_t paddingHeight = (uint32_t)padding_top; \
+ uint32_t paddingWidth = (uint32_t)padding_left;
+
+bool averagePoolFloat32(const float* inputData, const Shape& inputShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height, int32_t activation,
+ float* outputData, const Shape& outputShape) {
+
+ ANDROID_NN_POOLING_PARAMETERS
+
+ #define ANDROID_NN_AVERAGE_POOL(activation) \
+ optimized_ops::AveragePool<FusedActivationFunctionType::activation>( \
+ inputData, convertShapeToDims(inputShape), \
+ stride_width, stride_height, paddingWidth, paddingHeight, \
+ filter_width, filter_height, \
+ outputData, convertShapeToDims(outputShape))
+
+ ANDROID_NN_MACRO_DISPATCH(ANDROID_NN_AVERAGE_POOL)
+ #undef ANDROID_NN_AVERAGE_POOL
+
+ return true;
+}
+
+bool averagePoolQuant8(const uint8_t* inputData, const Shape& inputShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height, int32_t activation,
+ uint8_t* outputData, const Shape& outputShape) {
+
+ ANDROID_NN_POOLING_PARAMETERS
+
+ int32_t output_activation_min = 0;
+ int32_t output_activation_max = 0;
+
+ CalculateActivationRangeUint8(activation, outputShape,
+ &output_activation_min,
+ &output_activation_max);
+
+ #define ANDROID_NN_AVERAGE_POOL(activation) \
+ optimized_ops::AveragePool<FusedActivationFunctionType::activation>( \
+ inputData, convertShapeToDims(inputShape), \
+ stride_width, stride_height, paddingWidth, paddingHeight, \
+ filter_width, filter_height, \
+ output_activation_min, output_activation_max, \
+ outputData, convertShapeToDims(outputShape))
+
+ ANDROID_NN_MACRO_DISPATCH(ANDROID_NN_AVERAGE_POOL)
+ #undef ANDROID_NN_AVERAGE_POOL
+
+ return true;
+}
+
+bool l2PoolFloat32(const float* inputData, const Shape& inputShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height, int32_t activation,
+ float* outputData, const Shape& outputShape) {
+
+ ANDROID_NN_POOLING_PARAMETERS
+
+ #define ANDROID_NN_L2_POOL(activation) \
+ optimized_ops::L2Pool<FusedActivationFunctionType::activation>( \
+ inputData, convertShapeToDims(inputShape), \
+ stride_width, stride_height, paddingWidth, paddingHeight, \
+ filter_width, filter_height, \
+ outputData, convertShapeToDims(outputShape))
+
+ ANDROID_NN_MACRO_DISPATCH(ANDROID_NN_L2_POOL)
+ #undef ANDROID_NN_L2_POOL
+
+ return true;
+}
+
+bool maxPoolFloat32(const float* inputData, const Shape& inputShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height, int32_t activation,
+ float* outputData, const Shape& outputShape) {
+
+ ANDROID_NN_POOLING_PARAMETERS
+
+ #define ANDROID_NN_MAX_POOL(activation) \
+ optimized_ops::MaxPool<FusedActivationFunctionType::activation>( \
+ inputData, convertShapeToDims(inputShape), \
+ stride_width, stride_height, paddingWidth, paddingHeight, \
+ filter_width, filter_height, \
+ outputData, convertShapeToDims(outputShape))
+
+ ANDROID_NN_MACRO_DISPATCH(ANDROID_NN_MAX_POOL)
+ #undef ANDROID_NN_MAX_POOL
+
+ return true;
+}
+
+bool maxPoolQuant8(const uint8_t* inputData, const Shape& inputShape,
+ int32_t padding_left, int32_t padding_right,
+ int32_t padding_top, int32_t padding_bottom,
+ int32_t stride_width, int32_t stride_height,
+ int32_t filter_width, int32_t filter_height, int32_t activation,
+ uint8_t* outputData, const Shape& outputShape) {
+
+ ANDROID_NN_POOLING_PARAMETERS
+
+ int32_t output_activation_min = 0;
+ int32_t output_activation_max = 0;
+
+ CalculateActivationRangeUint8(activation, outputShape,
+ &output_activation_min,
+ &output_activation_max);
+
+ #define ANDROID_NN_MAX_POOL(activation) \
+ optimized_ops::MaxPool<FusedActivationFunctionType::activation>( \
+ inputData, convertShapeToDims(inputShape), \
+ stride_width, stride_height, paddingWidth, paddingHeight, \
+ filter_width, filter_height, \
+ output_activation_min, output_activation_max, \
+ outputData, convertShapeToDims(outputShape))
+
+ ANDROID_NN_MACRO_DISPATCH(ANDROID_NN_MAX_POOL)
+ #undef ANDROID_NN_MAX_POOL
+
+ return true;
+}
+
+#undef ANDROID_NN_POOLING_PARAMETERS
+} // namespace rt
+} // namespace nnfw
diff --git a/runtimes/nn/common/operations/Reshape.cpp b/runtimes/nn/common/operations/Reshape.cpp
new file mode 100644
index 000000000..120918b0d
--- /dev/null
+++ b/runtimes/nn/common/operations/Reshape.cpp
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// Contains the implementation of the operations.
+
+#define LOG_TAG "Operations"
+
+#include "Operations.h"
+#include "OperationsUtils.h"
+
+#include "internal/optimized/optimized_ops.h"
+
+namespace nnfw {
+namespace rt {
+
+bool reshapeGeneric(const void* inputData, const Shape& inputShape,
+ void* outputData, const Shape& outputShape) {
+ size_t count = sizeOfData(inputShape.type, inputShape.dimensions);
+ memcpy(outputData, inputData, count);
+ return true;
+}
+
+bool resizeBilinearFloat32(const float* inputData, const Shape& inputShape,
+ float* outputData, const Shape& outputShape) {
+ int32_t height = (int32_t) getSizeOfDimension(outputShape, 1);
+ int32_t width = (int32_t) getSizeOfDimension(outputShape, 2);
+
+ int32_t outDimData[2] = {height, width};
+ // We have to fake a tensor here, to satisfy ResizeBilinear().
+ Shape outDimShape;
+ outDimShape.dimensions = {1, 1, 1, 2};
+
+ optimized_ops::ResizeBilinear(
+ inputData, convertShapeToDims(inputShape),
+ outDimData, convertShapeToDims(outDimShape),
+ outputData, convertShapeToDims(outputShape));
+ return true;
+}
+
+bool depthToSpaceGeneric(const uint8_t* inputData, const Shape& inputShape,
+ int32_t blockSize,
+ uint8_t* outputData, const Shape& outputShape) {
+ if (inputShape.type == OperandType::TENSOR_FLOAT32) {
+ optimized_ops::DepthToSpace(
+ reinterpret_cast<const float*>(inputData),
+ convertShapeToDims(inputShape),
+ blockSize,
+ reinterpret_cast<float*>(outputData),
+ convertShapeToDims(outputShape));
+ } else if (inputShape.type == OperandType::TENSOR_QUANT8_ASYMM) {
+ optimized_ops::DepthToSpace(
+ reinterpret_cast<const uint8_t*>(inputData),
+ convertShapeToDims(inputShape),
+ blockSize,
+ reinterpret_cast<uint8_t*>(outputData),
+ convertShapeToDims(outputShape));
+ } else {
+ LOG(ERROR) << "Unsupported data type";
+ return false;
+ }
+ return true;
+}
+
+bool spaceToDepthGeneric(const uint8_t* inputData, const Shape& inputShape,
+ int32_t blockSize,
+ uint8_t* outputData, const Shape& outputShape) {
+ if (inputShape.type == OperandType::TENSOR_FLOAT32) {
+ optimized_ops::SpaceToDepth(
+ reinterpret_cast<const float*>(inputData),
+ convertShapeToDims(inputShape),
+ blockSize,
+ reinterpret_cast<float*>(outputData),
+ convertShapeToDims(outputShape));
+ } else if (inputShape.type == OperandType::TENSOR_QUANT8_ASYMM) {
+ optimized_ops::SpaceToDepth(
+ reinterpret_cast<const uint8_t*>(inputData),
+ convertShapeToDims(inputShape),
+ blockSize,
+ reinterpret_cast<uint8_t*>(outputData),
+ convertShapeToDims(outputShape));
+ } else {
+ LOG(ERROR) << "Unsupported data type";
+ return false;
+ }
+ return true;
+}
+
+} // namespace rt
+} // namespace nnfw
diff --git a/runtimes/nn/common/operations/SimpleMath.cpp b/runtimes/nn/common/operations/SimpleMath.cpp
new file mode 100644
index 000000000..79b1175c0
--- /dev/null
+++ b/runtimes/nn/common/operations/SimpleMath.cpp
@@ -0,0 +1,217 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// Contains the implementation of the operations.
+
+#define LOG_TAG "Operations"
+
+#include "Operations.h"
+#include "OperationsUtils.h"
+
+#include "internal/optimized/optimized_ops.h"
+
+namespace nnfw {
+namespace rt {
+bool addFloat32(const float* in1, const Shape& shape1,
+ const float* in2, const Shape& shape2,
+ int32_t activation,
+ float* out, const Shape& shapeOut) {
+ bool needBroadcast = !SameShape(shape1, shape2);
+
+ #define ANDROID_NN_NORMAL_ADD(activation) \
+ optimized_ops::Add<FusedActivationFunctionType::activation>( \
+ in1, convertShapeToDims(shape1), \
+ in2, convertShapeToDims(shape2), \
+ out, convertShapeToDims(shapeOut))
+
+ #define ANDROID_NN_BROADCAST_ADD(activation) \
+ optimized_ops::BroadcastAdd<FusedActivationFunctionType::activation>( \
+ in1, convertShapeToDims(shape1), \
+ in2, convertShapeToDims(shape2), \
+ out, convertShapeToDims(shapeOut))
+
+ if (needBroadcast) {
+ ANDROID_NN_MACRO_DISPATCH(ANDROID_NN_BROADCAST_ADD)
+ } else {
+ ANDROID_NN_MACRO_DISPATCH(ANDROID_NN_NORMAL_ADD)
+ }
+
+ #undef ANDROID_NN_NORMAL_ADD
+ #undef ANDROID_NN_BROADCAST_ADD
+ return true;
+}
+
+bool addQuant8(const uint8_t* in1, const Shape& shape1,
+ const uint8_t* in2, const Shape& shape2,
+ int32_t activation,
+ uint8_t* out, const Shape& shapeOut) {
+ bool needBroadcast = !SameShape(shape1, shape2);
+
+ const int32_t input1_offset = -shape1.offset;
+ const int32_t input2_offset = -shape2.offset;
+ const int32_t output_offset = shapeOut.offset;
+ const int left_shift = 20;
+ const double twice_max_input_scale = 2 * std::max(shape1.scale, shape2.scale);
+ const double real_input1_multiplier = shape1.scale / twice_max_input_scale;
+ const double real_input2_multiplier = shape2.scale / twice_max_input_scale;
+ const double real_output_multiplier =
+ twice_max_input_scale /
+ ((1 << left_shift) * shapeOut.scale);
+
+ int32_t input1_multiplier;
+ int32_t input1_shift;
+ if (!QuantizeMultiplierSmallerThanOne(real_input1_multiplier,
+ &input1_multiplier, &input1_shift)) {
+ return false;
+ }
+ int32_t input2_multiplier;
+ int32_t input2_shift;
+ if (!QuantizeMultiplierSmallerThanOne(real_input2_multiplier,
+ &input2_multiplier, &input2_shift)) {
+ return false;
+ }
+ int32_t output_multiplier;
+ int32_t output_shift;
+ if (!QuantizeMultiplierSmallerThanOne(real_output_multiplier,
+ &output_multiplier, &output_shift)) {
+ return false;
+ }
+ int32_t output_activation_min;
+ int32_t output_activation_max;
+ CalculateActivationRangeUint8(activation, shapeOut,
+ &output_activation_min,
+ &output_activation_max);
+
+ #define ANDROID_NN_NORMAL_ADD(activation) \
+ optimized_ops::Add<FusedActivationFunctionType::activation>( \
+ left_shift, \
+ in1, convertShapeToDims(shape1), \
+ input1_offset, input1_multiplier, input1_shift, \
+ in2, convertShapeToDims(shape2), \
+ input2_offset, input2_multiplier, input2_shift, \
+ output_offset, output_multiplier, output_shift, \
+ output_activation_min, output_activation_max, \
+ out, convertShapeToDims(shapeOut))
+
+ #define ANDROID_NN_BROADCAST_ADD(activation) \
+ optimized_ops::BroadcastAdd<FusedActivationFunctionType::activation>( \
+ left_shift, \
+ in1, convertShapeToDims(shape1), \
+ input1_offset, input1_multiplier, input1_shift, \
+ in2, convertShapeToDims(shape2), \
+ input2_offset, input2_multiplier, input2_shift, \
+ output_offset, output_multiplier, output_shift, \
+ output_activation_min, output_activation_max, \
+ out, convertShapeToDims(shapeOut))
+
+ if (needBroadcast) {
+ ANDROID_NN_MACRO_DISPATCH(ANDROID_NN_BROADCAST_ADD)
+ } else {
+ ANDROID_NN_MACRO_DISPATCH(ANDROID_NN_NORMAL_ADD)
+ }
+
+ #undef ANDROID_NN_NORMAL_ADD
+ #undef ANDROID_NN_BROADCAST_ADD
+ return true;
+}
+
+bool mulFloat32(const float* in1, const Shape& shape1,
+ const float* in2, const Shape& shape2,
+ int32_t activation,
+ float* out, const Shape& shapeOut) {
+ bool needBroadcast = !SameShape(shape1, shape2);
+
+ #define ANDROID_NN_NORMAL_MUL(activation) \
+ optimized_ops::Mul<FusedActivationFunctionType::activation>( \
+ in1, convertShapeToDims(shape1), \
+ in2, convertShapeToDims(shape2), \
+ out, convertShapeToDims(shapeOut))
+
+ #define ANDROID_NN_BROADCAST_MUL(activation) \
+ optimized_ops::BroadcastMul<FusedActivationFunctionType::activation>( \
+ in1, convertShapeToDims(shape1), \
+ in2, convertShapeToDims(shape2), \
+ out, convertShapeToDims(shapeOut))
+
+ if (needBroadcast) {
+ ANDROID_NN_MACRO_DISPATCH(ANDROID_NN_BROADCAST_MUL)
+ } else {
+ ANDROID_NN_MACRO_DISPATCH(ANDROID_NN_NORMAL_MUL)
+ }
+
+ #undef ANDROID_NN_NORMAL_MUL
+ #undef ANDROID_NN_BROADCAST_MUL
+ return true;
+}
+
+bool mulQuant8(const uint8_t* in1, const Shape& shape1,
+ const uint8_t* in2, const Shape& shape2,
+ int32_t activation,
+ uint8_t* out, const Shape& shapeOut) {
+ const int32_t input1_offset = -shape1.offset;
+ const int32_t input2_offset = -shape2.offset;
+ const int32_t output_offset = shapeOut.offset;
+ const double input_product_scale = shape1.scale * shape2.scale;
+ const double real_multiplier = input_product_scale / shapeOut.scale;
+ int32 output_multiplier;
+ int output_shift;
+ if (!QuantizeMultiplierSmallerThanOne(real_multiplier, &output_multiplier,
+ &output_shift)) {
+ return false;
+ }
+ int32_t output_activation_min;
+ int32_t output_activation_max;
+ CalculateActivationRangeUint8(activation, shapeOut,
+ &output_activation_min,
+ &output_activation_max);
+
+ // Use BROADCAST version to handle the normal case until we have a optimized Mul.
+ #define ANDROID_NN_BROADCAST_MUL(activation) \
+ optimized_ops::BroadcastMul<FusedActivationFunctionType::activation>( \
+ in1, convertShapeToDims(shape1), input1_offset, \
+ in2, convertShapeToDims(shape2), input2_offset, \
+ output_offset, output_multiplier, output_shift, \
+ output_activation_min, output_activation_max, \
+ out, convertShapeToDims(shapeOut))
+
+ ANDROID_NN_MACRO_DISPATCH(ANDROID_NN_BROADCAST_MUL)
+
+ #undef ANDROID_NN_NORMAL_MUL
+ #undef ANDROID_NN_BROADCAST_MUL
+ return true;
+}
+
+bool floorFloat32(const float* inputData,
+ float* outputData,
+ const Shape& shape) {
+ Dims<4> dim = convertShapeToDims(shape);
+ optimized_ops::Floor(inputData, dim, outputData, dim);
+ return true;
+}
+
+bool dequantizeQuant8ToFloat32(const uint8_t* inputData,
+ float* outputData,
+ const Shape& shape) {
+ Dims<4> dim = convertShapeToDims(shape);
+ optimized_ops::Dequantize(inputData, dim,
+ shape.offset, shape.scale,
+ outputData, dim);
+ return true;
+}
+
+} // namespace rt
+} // namespace nnfw
diff --git a/runtimes/nn/common/operations/internal/common.h b/runtimes/nn/common/operations/internal/common.h
new file mode 100644
index 000000000..1bf1050fd
--- /dev/null
+++ b/runtimes/nn/common/operations/internal/common.h
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_COMMON_H__
+#define __NNFW_RT_COMMON_H__
+
+#ifndef USE_NEON
+#if defined(__ARM_NEON__) || defined(__ARM_NEON)
+#define USE_NEON
+#include <arm_neon.h>
+#endif
+#endif
+
+#include "gemmlowp.h"
+#include "types.h"
+
+namespace nnfw {
+namespace rt {
+
+template <FusedActivationFunctionType Ac>
+struct ActivationFunctionImpl {};
+
+template <>
+struct ActivationFunctionImpl<FusedActivationFunctionType::kNone> {
+ static float Eval(float x) { return x; }
+};
+
+template <>
+struct ActivationFunctionImpl<FusedActivationFunctionType::kRelu> {
+ static float Eval(float x) { return x < 0.f ? 0.f : x; }
+};
+
+template <>
+struct ActivationFunctionImpl<FusedActivationFunctionType::kRelu1> {
+ static float Eval(float x) { return x > 1.f ? 1.f : x < -1.f ? -1.f : x; }
+};
+
+template <>
+struct ActivationFunctionImpl<FusedActivationFunctionType::kRelu6> {
+ static float Eval(float x) { return x > 6.f ? 6.f : x < 0.f ? 0.f : x; }
+};
+
+template <FusedActivationFunctionType Ac>
+float ActivationFunction(float x) {
+ return ActivationFunctionImpl<Ac>::Eval(x);
+}
+
+inline int32 MultiplyByQuantizedMultiplierSmallerThanOne(
+ int32 x, int32 quantized_multiplier, int right_shift) {
+ using gemmlowp::RoundingDivideByPOT;
+ using gemmlowp::SaturatingRoundingDoublingHighMul;
+ return RoundingDivideByPOT(
+ SaturatingRoundingDoublingHighMul(x, quantized_multiplier), right_shift);
+}
+
+inline int32 MultiplyByQuantizedMultiplierGreaterThanOne(
+ int32 x, int32 quantized_multiplier, int left_shift) {
+ using gemmlowp::SaturatingRoundingDoublingHighMul;
+ return SaturatingRoundingDoublingHighMul(x * (1 << left_shift),
+ quantized_multiplier);
+}
+
+} // namespace rt
+} // namespace nnfw
+
+#endif // __NNFW_RT_COMMON_H__
diff --git a/runtimes/nn/common/operations/internal/compatibility.h b/runtimes/nn/common/operations/internal/compatibility.h
new file mode 100644
index 000000000..fd33cbd97
--- /dev/null
+++ b/runtimes/nn/common/operations/internal/compatibility.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_COMPATIBILITY_H__
+#define __NNFW_RT_COMPATIBILITY_H__
+
+#include <cassert>
+#include <cstdint>
+
+#ifndef DCHECK
+#define DCHECK(condition) (condition) ? (void)0 : assert(false)
+#endif
+
+#ifndef DCHECK_EQ
+#define DCHECK_EQ(x, y) ((x) == (y)) ? (void)0 : assert(false)
+#endif
+
+#ifndef DCHECK_GE
+#define DCHECK_GE(x, y) ((x) >= (y)) ? (void)0 : assert(false)
+#endif
+
+#ifndef DCHECK_GT
+#define DCHECK_GT(x, y) ((x) > (y)) ? (void)0 : assert(false)
+#endif
+
+#ifndef DCHECK_LE
+#define DCHECK_LE(x, y) ((x) <= (y)) ? (void)0 : assert(false)
+#endif
+
+#ifndef DCHECK_LT
+#define DCHECK_LT(x, y) ((x) < (y)) ? (void)0 : assert(false)
+#endif
+
+#ifndef CHECK_EQ
+#define CHECK_EQ(x, y) ((x) == (y)) ? (void)0 : assert(false)
+#endif
+
+using uint8 = std::uint8_t;
+using int16 = std::int16_t;
+using uint16 = std::uint16_t;
+using int32 = std::int32_t;
+using uint32 = std::uint32_t;
+
+#endif // __NNFW_RT_COMPATIBILITY_H__
diff --git a/runtimes/nn/common/operations/internal/optimized/cpu_check.h b/runtimes/nn/common/operations/internal/optimized/cpu_check.h
new file mode 100644
index 000000000..02f42fd42
--- /dev/null
+++ b/runtimes/nn/common/operations/internal/optimized/cpu_check.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef FRAMEWORKS_ML_NN_COMMON_OPERATIONS_INTERNAL_OPTIMIZED_CPU_CHECK_
+#define FRAMEWORKS_ML_NN_COMMON_OPERATIONS_INTERNAL_OPTIMIZED_CPU_CHECK_
+
+// NEON_OR_PORTABLE(SomeFunc, arcs) calls NeonSomeFunc(args) if NEON is
+// enabled at build time, or PortableSomeFunc(args) otherwise.
+#if defined(__ARM_NEON__) || defined(__ARM_NEON)
+#define NEON_OR_PORTABLE(funcname, ...) Neon##funcname(__VA_ARGS__)
+#else
+#define NEON_OR_PORTABLE(funcname, ...) Portable##funcname(__VA_ARGS__)
+#endif
+
+#endif // FRAMEWORKS_ML_NN_COMMON_OPERATIONS_INTERNAL_OPTIMIZED_CPU_CHECK_
diff --git a/runtimes/nn/common/operations/internal/optimized/depthwiseconv_float.h b/runtimes/nn/common/operations/internal/optimized/depthwiseconv_float.h
new file mode 100644
index 000000000..5c05bf20f
--- /dev/null
+++ b/runtimes/nn/common/operations/internal/optimized/depthwiseconv_float.h
@@ -0,0 +1,792 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_OPTIMIZED_OPS_DEPTHWISECONV_FLOAT_H__
+#define __NNFW_RT_OPTIMIZED_OPS_DEPTHWISECONV_FLOAT_H__
+
+#include "gemmlowp.h"
+#include "../common.h"
+#include "../types.h"
+
+namespace nnfw {
+namespace rt {
+namespace optimized_ops {
+
+// Implementation of float DepthwiseConv
+
+template <bool kAllowStrided, int kFixedInputDepth, int kFixedDepthMultiplier>
+struct FloatDepthwiseConvKernel {};
+
+#ifdef USE_NEON
+
+template <>
+struct FloatDepthwiseConvKernel<false, 8, 1> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const float* input_ptr, int input_ptr_increment,
+ const float* filter_ptr, float* acc_buffer_ptr) {
+ // Load the filters
+ float32x4_t filter[2];
+ for (int i = 0; i < 2; i++) {
+ filter[i] = vld1q_f32(filter_ptr + 4 * i);
+ }
+ int outp = 0;
+ // Handle 2 output pixels at a time.
+ for (; outp <= num_output_pixels - 2; outp += 2) {
+ // Load the inputs
+ float32x4_t input[4];
+ for (int i = 0; i < 4; i++) {
+ input[i] = vld1q_f32(input_ptr + 4 * i);
+ }
+ input_ptr += 16;
+ // Load the accumulators from acc_buffer
+ float32x4_t acc[4];
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vld1q_f32(acc_buffer_ptr + 4 * i);
+ }
+ // Multiply-accumulate
+ acc[0] = vmlaq_f32(acc[0], input[0], filter[0]);
+ acc[1] = vmlaq_f32(acc[1], input[1], filter[1]);
+ acc[2] = vmlaq_f32(acc[2], input[2], filter[0]);
+ acc[3] = vmlaq_f32(acc[3], input[3], filter[1]);
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 4; i++) {
+ vst1q_f32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 16;
+ }
+ // Handle one output pixel at a time.
+ for (; outp < num_output_pixels; outp++) {
+ // Load the inputs
+ float32x4_t input[2];
+ for (int i = 0; i < 2; i++) {
+ input[i] = vld1q_f32(input_ptr + 4 * i);
+ }
+ input_ptr += 8;
+ // Load the accumulators from acc_buffer
+ float32x4_t acc[2];
+ for (int i = 0; i < 2; i++) {
+ acc[i] = vld1q_f32(acc_buffer_ptr + 4 * i);
+ }
+ // Multiply-accumulate
+ for (int i = 0; i < 2; i++) {
+ acc[i] = vmlaq_f32(acc[i], input[i], filter[i]);
+ }
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 2; i++) {
+ vst1q_f32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 8;
+ }
+ }
+};
+
+template <>
+struct FloatDepthwiseConvKernel<false, 2, 1> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const float* input_ptr, int input_ptr_increment,
+ const float* filter_ptr, float* acc_buffer_ptr) {
+ const float32x2_t filters = vld1_f32(filter_ptr);
+ const float32x4_t filters_dup2 = vcombine_f32(filters, filters);
+ int outp = 0;
+ // Handle 8 output pixels at a time.
+ for (; outp <= num_output_pixels - 8; outp += 8) {
+ // Load the inputs
+ float32x4_t input[4];
+ for (int i = 0; i < 4; i++) {
+ input[i] = vld1q_f32(input_ptr + 4 * i);
+ }
+ input_ptr += 16;
+ // Load the accumulators from acc_buffer
+ float32x4_t acc[4];
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vld1q_f32(acc_buffer_ptr + 4 * i);
+ }
+ // Multiply-accumulate
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vmlaq_f32(acc[i], input[i], filters_dup2);
+ }
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 4; i++) {
+ vst1q_f32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 16;
+ }
+ // Handle 4 output pixels at a time.
+ for (; outp <= num_output_pixels - 4; outp += 4) {
+ // Load the inputs
+ float32x4_t input[2];
+ for (int i = 0; i < 2; i++) {
+ input[i] = vld1q_f32(input_ptr + 4 * i);
+ }
+ input_ptr += 8;
+ // Load the accumulators from acc_buffer
+ float32x4_t acc[2];
+ for (int i = 0; i < 2; i++) {
+ acc[i] = vld1q_f32(acc_buffer_ptr + 4 * i);
+ }
+ // Multiply-accumulate
+ for (int i = 0; i < 2; i++) {
+ acc[i] = vmlaq_f32(acc[i], input[i], filters_dup2);
+ }
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 2; i++) {
+ vst1q_f32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 8;
+ }
+ // Handle 2 output pixels at a time.
+ for (; outp <= num_output_pixels - 2; outp += 2) {
+ // Load the inputs
+ const float32x4_t input = vld1q_f32(input_ptr);
+ input_ptr += 4;
+ // Load the accumulators from acc_buffer
+ float32x4_t acc = vld1q_f32(acc_buffer_ptr);
+ // Multiply-accumulate
+ acc = vmlaq_f32(acc, input, filters_dup2);
+ // Store the accumulators back to acc_buffer
+ vst1q_f32(acc_buffer_ptr, acc);
+ acc_buffer_ptr += 4;
+ }
+ // Handle 1 output pixel at a time
+ for (; outp < num_output_pixels; outp++) {
+ // Load the inputs
+ const float32x2_t input = vld1_f32(input_ptr);
+ input_ptr += 2;
+ // Load the accumulators from acc_buffer
+ float32x2_t acc = vld1_f32(acc_buffer_ptr);
+ // Multiply-accumulate
+ acc = vmla_f32(acc, input, filters);
+ // Store the accumulators back to acc_buffer
+ vst1_f32(acc_buffer_ptr, acc);
+ acc_buffer_ptr += 2;
+ }
+ }
+};
+
+template <>
+struct FloatDepthwiseConvKernel<true, 0, 1> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const float* input_ptr, int input_ptr_increment,
+ const float* filter_ptr, float* acc_buffer_ptr) {
+ // Handle one output pixel at a time.
+ for (int outp = 0; outp < num_output_pixels; outp++) {
+ const float* local_filter_ptr = filter_ptr;
+ const float* local_input_ptr = input_ptr;
+ int ic = 0;
+ // Handle 16 input channels at a time.
+ for (; ic <= input_depth - 16; ic += 16) {
+ // Load the filters
+ float32x4_t filter[4];
+ for (int i = 0; i < 4; i++) {
+ filter[i] = vld1q_f32(local_filter_ptr + 4 * i);
+ }
+ local_filter_ptr += 16;
+ // Load the inputs
+ float32x4_t input[4];
+ for (int i = 0; i < 4; i++) {
+ input[i] = vld1q_f32(local_input_ptr + 4 * i);
+ }
+ local_input_ptr += 16;
+ // Load the accumulators from acc_buffer
+ float32x4_t acc[4];
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vld1q_f32(acc_buffer_ptr + 4 * i);
+ }
+ // Multiply-accumulate
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vmlaq_f32(acc[i], input[i], filter[i]);
+ }
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 4; i++) {
+ vst1q_f32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 16;
+ }
+ // Handle 4 input channels at a time.
+ for (; ic <= input_depth - 4; ic += 4) {
+ // Load the filters
+ float32x4_t filter;
+ filter = vld1q_f32(local_filter_ptr);
+ local_filter_ptr += 4;
+ // Load the inputs
+ float32x4_t input;
+ input = vld1q_f32(local_input_ptr);
+ local_input_ptr += 4;
+ // Load the accumulators from acc_buffer
+ float32x4_t acc;
+ acc = vld1q_f32(acc_buffer_ptr);
+ // Multiply-accumulate
+ acc = vmlaq_f32(acc, input, filter);
+ // Store the accumulators back to acc_buffer
+ vst1q_f32(acc_buffer_ptr, acc);
+ acc_buffer_ptr += 4;
+ }
+ // Handle one input channel at a time.
+ for (; ic < input_depth; ic++) {
+ const float input_val = *local_input_ptr++;
+ const float filter_val = *local_filter_ptr++;
+ *acc_buffer_ptr++ += filter_val * input_val;
+ }
+ input_ptr += input_ptr_increment;
+ }
+ }
+};
+
+template <>
+struct FloatDepthwiseConvKernel<true, 0, 8> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const float* input_ptr, int input_ptr_increment,
+ const float* filter_ptr, float* acc_buffer_ptr) {
+ // Handle one output pixel at a time.
+ for (int outp = 0; outp < num_output_pixels; outp++) {
+ const float* local_filter_ptr = filter_ptr;
+ const float* local_input_ptr = input_ptr;
+ int ic = 0;
+ // Handle 2 input channels at a time.
+ for (; ic <= input_depth - 2; ic += 2) {
+ // Load the filters
+ float32x4_t filter[4];
+ for (int i = 0; i < 4; i++) {
+ filter[i] = vld1q_f32(local_filter_ptr + 4 * i);
+ }
+ local_filter_ptr += 16;
+ // Load the inputs
+ const float32x2_t input = vld1_f32(local_input_ptr);
+ local_input_ptr += 2;
+ // Load the accumulators from acc_buffer
+ float32x4_t acc[4];
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vld1q_f32(acc_buffer_ptr + 4 * i);
+ }
+ // Multiply-accumulate
+ acc[0] = vmlaq_lane_f32(acc[0], filter[0], input, 0);
+ acc[1] = vmlaq_lane_f32(acc[1], filter[1], input, 0);
+ acc[2] = vmlaq_lane_f32(acc[2], filter[2], input, 1);
+ acc[3] = vmlaq_lane_f32(acc[3], filter[3], input, 1);
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 4; i++) {
+ vst1q_f32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 16;
+ }
+ // Handle one input channel at a time.
+ for (; ic < input_depth; ic++) {
+ // Load the filters
+ float32x4_t filter[2];
+ for (int i = 0; i < 2; i++) {
+ filter[i] = vld1q_f32(local_filter_ptr + 4 * i);
+ }
+ local_filter_ptr += 8;
+ // Load the inputs
+ const float input_val = *local_input_ptr++;
+ // Load the accumulators from acc_buffer
+ float32x4_t acc[2];
+ for (int i = 0; i < 2; i++) {
+ acc[i] = vld1q_f32(acc_buffer_ptr + 4 * i);
+ }
+ // Multiply-accumulate
+ for (int i = 0; i < 2; i++) {
+ acc[i] = vmlaq_n_f32(acc[i], filter[i], input_val);
+ }
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 2; i++) {
+ vst1q_f32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 8;
+ }
+ input_ptr += input_ptr_increment;
+ }
+ }
+};
+
+template <>
+struct FloatDepthwiseConvKernel<true, 0, 2> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const float* input_ptr, int input_ptr_increment,
+ const float* filter_ptr, float* acc_buffer_ptr) {
+ // Handle one output pixel at a time.
+ for (int outp = 0; outp < num_output_pixels; outp++) {
+ const float* local_filter_ptr = filter_ptr;
+ const float* local_input_ptr = input_ptr;
+ int ic = 0;
+ // Handle 8 input channels at a time.
+ for (; ic <= input_depth - 8; ic += 8) {
+ // Load the filters
+ float32x4_t filter[4];
+ for (int i = 0; i < 4; i++) {
+ filter[i] = vld1q_f32(local_filter_ptr + 4 * i);
+ }
+ local_filter_ptr += 16;
+ // Load the inputs
+ float32x4x2_t input_dup2[2];
+ for (int i = 0; i < 2; i++) {
+ const float32x4_t input = vld1q_f32(local_input_ptr + 4 * i);
+ input_dup2[i] = vzipq_f32(input, input);
+ }
+ local_input_ptr += 8;
+ // Load the accumulators from acc_buffer
+ float32x4_t acc[4];
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vld1q_f32(acc_buffer_ptr + 4 * i);
+ }
+ // Multiply-accumulate
+ acc[0] = vmlaq_f32(acc[0], filter[0], input_dup2[0].val[0]);
+ acc[1] = vmlaq_f32(acc[1], filter[1], input_dup2[0].val[1]);
+ acc[2] = vmlaq_f32(acc[2], filter[2], input_dup2[1].val[0]);
+ acc[3] = vmlaq_f32(acc[3], filter[3], input_dup2[1].val[1]);
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 4; i++) {
+ vst1q_f32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 16;
+ }
+ // Handle 4 input channels at a time.
+ for (; ic <= input_depth - 4; ic += 4) {
+ // Load the filters
+ float32x2_t filter[4];
+ for (int i = 0; i < 4; i++) {
+ filter[i] = vld1_f32(local_filter_ptr + 2 * i);
+ }
+ local_filter_ptr += 8;
+ // Load the inputs
+ const float32x4_t input = vld1q_f32(local_input_ptr);
+ local_input_ptr += 4;
+ // Load the accumulators from acc_buffer
+ float32x2_t acc[4];
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vld1_f32(acc_buffer_ptr + 2 * i);
+ }
+ // Multiply-accumulate
+ acc[0] = vmla_lane_f32(acc[0], filter[0], vget_low_f32(input), 0);
+ acc[1] = vmla_lane_f32(acc[1], filter[1], vget_low_f32(input), 1);
+ acc[2] = vmla_lane_f32(acc[2], filter[2], vget_high_f32(input), 0);
+ acc[3] = vmla_lane_f32(acc[3], filter[3], vget_high_f32(input), 1);
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 4; i++) {
+ vst1_f32(acc_buffer_ptr + 2 * i, acc[i]);
+ }
+ acc_buffer_ptr += 8;
+ }
+ // Handle 2 input channels at a time.
+ for (; ic <= input_depth - 2; ic += 2) {
+ // Load the filters
+ const float32x4_t filter = vld1q_f32(local_filter_ptr);
+ local_filter_ptr += 4;
+ // Load the inputs
+ const float32x2_t input = vld1_f32(local_input_ptr);
+ local_input_ptr += 2;
+ // Load the accumulators from acc_buffer
+ float32x2_t acc[2];
+ for (int i = 0; i < 2; i++) {
+ acc[i] = vld1_f32(acc_buffer_ptr + 2 * i);
+ }
+ // Multiply-accumulate
+ acc[0] = vmla_lane_f32(acc[0], vget_low_f32(filter), input, 0);
+ acc[1] = vmla_lane_f32(acc[1], vget_high_f32(filter), input, 1);
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 2; i++) {
+ vst1_f32(acc_buffer_ptr + 2 * i, acc[i]);
+ }
+ acc_buffer_ptr += 4;
+ }
+ // Handle one input channel at a time.
+ for (; ic < input_depth; ic++) {
+ // Load the inputs
+ const float input_val = *local_input_ptr++;
+ // Multiply-accumulate
+ for (int i = 0; i < 2; i++) {
+ acc_buffer_ptr[i] += local_filter_ptr[i] * input_val;
+ }
+ local_filter_ptr += 2;
+ acc_buffer_ptr += 2;
+ }
+ input_ptr += input_ptr_increment;
+ }
+ }
+};
+
+template <>
+struct FloatDepthwiseConvKernel<true, 1, 8> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const float* input_ptr, int input_ptr_increment,
+ const float* filter_ptr, float* acc_buffer_ptr) {
+ // Handle one output pixel at a time.
+ for (int outp = 0; outp < num_output_pixels; outp++) {
+ // Load the filters
+ float32x4_t filter[2];
+ for (int i = 0; i < 2; i++) {
+ filter[i] = vld1q_f32(filter_ptr + 4 * i);
+ }
+ // Load the inputs
+ const float input_val = *input_ptr;
+ input_ptr += input_ptr_increment;
+ // Load the accumulators from acc_buffer
+ float32x4_t acc[2];
+ for (int i = 0; i < 2; i++) {
+ acc[i] = vld1q_f32(acc_buffer_ptr + 4 * i);
+ }
+ // Multiply-accumulate
+ for (int i = 0; i < 2; i++) {
+ acc[i] = vmlaq_n_f32(acc[i], filter[i], input_val);
+ }
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 2; i++) {
+ vst1q_f32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 8;
+ }
+ }
+};
+
+template <>
+struct FloatDepthwiseConvKernel<true, 0, 16> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const float* input_ptr, int input_ptr_increment,
+ const float* filter_ptr, float* acc_buffer_ptr) {
+ // Handle one output pixel at a time.
+ for (int outp = 0; outp < num_output_pixels; outp++) {
+ const float* local_filter_ptr = filter_ptr;
+ const float* local_input_ptr = input_ptr;
+ for (int ic = 0; ic < input_depth; ic++) {
+ // Load the filters
+ float32x4_t filter[4];
+ for (int i = 0; i < 4; i++) {
+ filter[i] = vld1q_f32(local_filter_ptr + 4 * i);
+ }
+ local_filter_ptr += 16;
+ // Load the inputs
+ const float input_val = *local_input_ptr++;
+ // Load the accumulators from acc_buffer
+ float32x4_t acc[4];
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vld1q_f32(acc_buffer_ptr + 4 * i);
+ }
+ // Multiply-accumulate
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vmlaq_n_f32(acc[i], filter[i], input_val);
+ }
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 4; i++) {
+ vst1q_f32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 16;
+ }
+ input_ptr += input_ptr_increment;
+ }
+ }
+};
+#endif
+
+// Accumulates the effect of one row of the filter, on a segment of one row
+// of the output, accessing the corresponding one row of the input.
+template <bool kAllowStrided, int kFixedInputDepth, int kFixedDepthMultiplier>
+void FloatDepthwiseConvAccumRow(int stride, int input_depth, int input_width,
+ const float* input_data, int pad_width,
+ int depth_multiplier, int filter_width,
+ const float* filter_data,
+ int out_x_buffer_start, int out_x_buffer_end,
+ int output_depth, float* acc_buffer) {
+#ifdef GEMMLOWP_PROFILING
+ gemmlowp::ScopedProfilingLabel label(__PRETTY_FUNCTION__);
+#endif
+ // Sanity check parameters. This is important in particular to ensure
+ // that we keep the number of template instantiations minimal, so we don't
+ // increase binary size unnecessarily.
+ static_assert(kFixedDepthMultiplier || !kFixedInputDepth, "");
+ static_assert(kFixedInputDepth || kAllowStrided, "");
+ DCHECK(stride == 1 || kAllowStrided);
+ if (kFixedInputDepth) {
+ DCHECK_EQ(input_depth, kFixedInputDepth);
+ }
+ if (kFixedDepthMultiplier) {
+ DCHECK_EQ(depth_multiplier, kFixedDepthMultiplier);
+ }
+ DCHECK_EQ(output_depth, input_depth * depth_multiplier);
+ const int input_ptr_increment = stride * input_depth;
+ const float* filter_base_ptr = filter_data;
+ for (int filter_x = 0; filter_x < filter_width; ++filter_x) {
+ // For the current (filter_x, filter_y) point in the filter,
+ // compute the boundaries of the corresponding output row segment.
+ int out_x_loop_start_unclampled = 0;
+ int out_x_loop_end_unclampled = 0;
+ if (kAllowStrided) {
+ if (stride == 2) {
+ out_x_loop_start_unclampled = (pad_width - filter_x + 1) / 2;
+ out_x_loop_end_unclampled =
+ (pad_width + input_width - filter_x + 1) / 2;
+ } else if (stride == 4) {
+ out_x_loop_start_unclampled = (pad_width - filter_x + 3) / 4;
+ out_x_loop_end_unclampled =
+ (pad_width + input_width - filter_x + 3) / 4;
+ } else {
+ out_x_loop_start_unclampled =
+ (pad_width - filter_x + stride - 1) / stride;
+ out_x_loop_end_unclampled =
+ (pad_width + input_width - filter_x + stride - 1) / stride;
+ }
+ } else {
+ out_x_loop_start_unclampled = pad_width - filter_x;
+ out_x_loop_end_unclampled = pad_width + input_width - filter_x;
+ }
+ // The kernel will have to iterate on the segment of the
+ // output row that starts at out_x_loop_start and out_x_loop_end.
+ const int out_x_loop_start =
+ std::max(out_x_buffer_start, out_x_loop_start_unclampled);
+ const int out_x_loop_end =
+ std::min(out_x_buffer_end, out_x_loop_end_unclampled);
+
+ float* acc_buffer_ptr =
+ acc_buffer + (out_x_loop_start - out_x_buffer_start) * output_depth;
+ const int in_x_origin = (out_x_loop_start * stride) - pad_width + filter_x;
+ const float* input_ptr = input_data + in_x_origin * input_depth;
+ const int num_output_pixels = out_x_loop_end - out_x_loop_start;
+ FloatDepthwiseConvKernel<kAllowStrided, kFixedInputDepth,
+ kFixedDepthMultiplier>::Run(num_output_pixels,
+ input_depth,
+ depth_multiplier,
+ input_ptr,
+ input_ptr_increment,
+ filter_base_ptr,
+ acc_buffer_ptr);
+ filter_base_ptr += output_depth;
+ }
+}
+
+// generic fallback of FloatDepthwiseConvAccumRow, portable, non-templatized.
+inline void FloatDepthwiseConvAccumRowGeneric(
+ int stride, int input_depth, int input_width, const float* input_data,
+ int pad_width, int depth_multiplier, int filter_width,
+ const float* filter_data, int out_x_buffer_start, int out_x_buffer_end,
+ int output_depth, float* acc_buffer) {
+ gemmlowp::ScopedProfilingLabel label("DepthwiseConvAccumRowGeneric (slow)");
+ const float* filter_base_ptr = filter_data;
+ for (int filter_x = 0; filter_x < filter_width; ++filter_x) {
+ const int out_x_loop_start = std::max(
+ out_x_buffer_start, (pad_width - filter_x + stride - 1) / stride);
+ const int out_x_loop_end =
+ std::min(out_x_buffer_end,
+ (pad_width + input_width - filter_x + stride - 1) / stride);
+
+ float* acc_buffer_ptr =
+ acc_buffer + (out_x_loop_start - out_x_buffer_start) * output_depth;
+ const int in_x_origin = (out_x_loop_start * stride) - pad_width + filter_x;
+ const float* input_ptr = input_data + in_x_origin * input_depth;
+ const int input_ptr_increment = (stride - 1) * input_depth;
+ for (int out_x = out_x_loop_start; out_x < out_x_loop_end; out_x++) {
+ const float* filter_ptr = filter_base_ptr;
+ for (int ic = 0; ic < input_depth; ++ic) {
+ const float input_val = *input_ptr++;
+ for (int m = 0; m < depth_multiplier; m++) {
+ const float filter_val = *filter_ptr++;
+ *acc_buffer_ptr++ += filter_val * input_val;
+ }
+ }
+ input_ptr += input_ptr_increment;
+ }
+ filter_base_ptr += output_depth;
+ }
+}
+
+// Initializes the accumulator buffer with bias values.
+inline void DepthwiseConvInitAccBuffer(int num_output_pixels, int output_depth,
+ const float* bias_data,
+ float* acc_buffer) {
+ for (int i = 0; i < num_output_pixels; i++) {
+ memcpy(acc_buffer + i * output_depth, bias_data,
+ sizeof(acc_buffer[0]) * output_depth);
+ }
+}
+
+template <FusedActivationFunctionType Ac>
+void DepthwiseConv(const float* input_data, const Dims<4>& input_dims,
+ const float* filter_data, const Dims<4>& filter_dims,
+ const float* bias_data, const Dims<4>& bias_dims,
+ int stride_width, int stride_height,
+ int pad_width, int pad_height, int depth_multiplier,
+ float* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("DepthwiseConv");
+ static_assert(Ac == FusedActivationFunctionType::kNone ||
+ Ac == FusedActivationFunctionType::kRelu ||
+ Ac == FusedActivationFunctionType::kRelu6 ||
+ Ac == FusedActivationFunctionType::kRelu1,
+ "");
+ const int batches = MatchingArraySize(input_dims, 3, output_dims, 3);
+ const int output_depth = MatchingArraySize(filter_dims, 0, output_dims, 0);
+ const int input_height = ArraySize(input_dims, 2);
+ const int input_width = ArraySize(input_dims, 1);
+ const int input_depth = ArraySize(input_dims, 0);
+ const int filter_height = ArraySize(filter_dims, 2);
+ const int filter_width = ArraySize(filter_dims, 1);
+ const int output_height = ArraySize(output_dims, 2);
+ const int output_width = ArraySize(output_dims, 1);
+#if 0 // TODO-NNRT : Check if assertion is needed, output depth some times not equal to input * depthmultiplier
+ DCHECK(output_depth == input_depth * depth_multiplier);
+#endif
+
+ static const int kAccBufferMaxSize = 1024;
+ float acc_buffer[kAccBufferMaxSize];
+ DCHECK_GE(kAccBufferMaxSize, output_depth);
+ const int kOutputPixelsInAccBuffer = kAccBufferMaxSize / output_depth;
+ const int kAccBufferActualSize = kOutputPixelsInAccBuffer * output_depth;
+ DCHECK_LE(kOutputPixelsInAccBuffer * output_depth, kAccBufferActualSize);
+ DCHECK_LE(kAccBufferActualSize, kAccBufferMaxSize);
+ DCHECK_GE(kOutputPixelsInAccBuffer, 1);
+
+ // row_accum_func will point to the core accumulation function to be used
+ // for this DepthwiseConv op.
+ auto* row_accum_func = FloatDepthwiseConvAccumRowGeneric;
+
+ const int kMaxFixedDepthMultiplier = 16;
+ int fixed_depth_multiplier = 0;
+ if (depth_multiplier <= kMaxFixedDepthMultiplier) {
+ fixed_depth_multiplier = depth_multiplier;
+ }
+ // kMaxUnrolling is the max number of output values that we aim to handle
+ // in one unrolled iteration of the inner loop. For practical performance
+ // reasons, it is limited by the number of available registers. We could
+ // fine-tune it depending on the architecture, but that's not worth doing
+ // since this whole code is not very optimized to begin with. The
+ // present value reflects what's realistic on ARM 32bit NEON with 16 128-bit
+ // vector registers.
+ const int kMaxUnrolling = 8;
+ int fixed_input_depth = 0;
+ if (fixed_depth_multiplier &&
+ input_depth * fixed_depth_multiplier <= kMaxUnrolling) {
+ fixed_input_depth = input_depth;
+ }
+#define TFMINI_USE_DEPTHWISECONV_KERNEL(ALLOW_STRIDED, FIXED_INPUT_DEPTH, \
+ FIXED_DEPTH_MULTIPLIER) \
+ if ((stride_width == 1 || ALLOW_STRIDED) && \
+ fixed_input_depth == FIXED_INPUT_DEPTH && \
+ fixed_depth_multiplier == FIXED_DEPTH_MULTIPLIER) { \
+ row_accum_func = \
+ FloatDepthwiseConvAccumRow<ALLOW_STRIDED, FIXED_INPUT_DEPTH, \
+ FIXED_DEPTH_MULTIPLIER>; \
+ }
+
+#ifdef USE_NEON
+ TFMINI_USE_DEPTHWISECONV_KERNEL(true, 0, 1)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(true, 0, 8)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(true, 0, 2)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(false, 8, 1)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(false, 2, 1)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(true, 0, 16)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(true, 1, 8)
+#endif // USE_NEON
+
+#undef TFMINI_USE_DEPTHWISECONV_KERNEL
+
+ // Now that we have determined row_accum_func, we can start work.
+ float* output_ptr = output_data;
+ for (int b = 0; b < batches; ++b) {
+ for (int out_y = 0; out_y < output_height; ++out_y) {
+ const int in_y_origin = (out_y * stride_height) - pad_height;
+ const int filter_y_start = std::max(0, -in_y_origin);
+ const int filter_y_end =
+ std::min(filter_height, input_height - in_y_origin);
+ for (int out_x_buffer_start = 0; out_x_buffer_start < output_width;
+ out_x_buffer_start += kOutputPixelsInAccBuffer) {
+ const int out_x_buffer_end = std::min(
+ output_width, out_x_buffer_start + kOutputPixelsInAccBuffer);
+ // We call a 'pixel' a group of activation that share all but the
+ // 'depth'/'channel' coordinate. num_output_pixels is the number of
+ // output pixels that we will accumulate in this loop iteration.
+ const int num_output_pixels = out_x_buffer_end - out_x_buffer_start;
+ // Initialize our local accumulator with the bias values, so we don't
+ // have to add them later.
+ DepthwiseConvInitAccBuffer(num_output_pixels, output_depth, bias_data,
+ acc_buffer);
+ // Accumulation loop. Most of the time should be spent in here.
+ for (int filter_y = filter_y_start; filter_y < filter_y_end;
+ ++filter_y) {
+ const int in_y = in_y_origin + filter_y;
+ row_accum_func(stride_width, input_depth, input_width,
+ input_data + in_y * input_dims.strides[2] +
+ b * input_dims.strides[3],
+ pad_width, depth_multiplier, filter_width,
+ filter_data + filter_y * filter_dims.strides[2],
+ out_x_buffer_start, out_x_buffer_end, output_depth,
+ acc_buffer);
+ }
+ // Finished accumulating. Now store to destination.
+ const int num_output_values = output_depth * num_output_pixels;
+ int i = 0;
+#ifdef USE_NEON
+ // Handle 16 values at a time
+ for (; i <= num_output_values - 16; i += 16) {
+ float32x4_t acc[4];
+ for (int k = 0; k < 4; k++) {
+ acc[k] = vld1q_f32(acc_buffer + i + 4 * k);
+ }
+ if (Ac == FusedActivationFunctionType::kRelu) {
+ for (int k = 0; k < 4; k++) {
+ acc[k] = vmaxq_f32(vdupq_n_f32(0.f), acc[k]);
+ }
+ } else if (Ac == FusedActivationFunctionType::kRelu6) {
+ for (int k = 0; k < 4; k++) {
+ acc[k] = vmaxq_f32(vdupq_n_f32(0.f),
+ vminq_f32(vdupq_n_f32(6.f), acc[k]));
+ }
+ } else if (Ac == FusedActivationFunctionType::kRelu1) {
+ for (int k = 0; k < 4; k++) {
+ acc[k] = vmaxq_f32(vdupq_n_f32(-1.f),
+ vminq_f32(vdupq_n_f32(1.f), acc[k]));
+ }
+ }
+ for (int k = 0; k < 4; k++) {
+ vst1q_f32(output_ptr + 4 * k, acc[k]);
+ }
+ output_ptr += 16;
+ }
+ // Handle 4 values at a time
+ for (; i <= num_output_values - 4; i += 4) {
+ float32x4_t acc = vld1q_f32(acc_buffer + i);
+ if (Ac == FusedActivationFunctionType::kRelu) {
+ acc = vmaxq_f32(vdupq_n_f32(0.f), acc);
+ } else if (Ac == FusedActivationFunctionType::kRelu6) {
+ acc = vmaxq_f32(vdupq_n_f32(0.f), vminq_f32(vdupq_n_f32(6.f), acc));
+ } else if (Ac == FusedActivationFunctionType::kRelu1) {
+ acc =
+ vmaxq_f32(vdupq_n_f32(-1.f), vminq_f32(vdupq_n_f32(1.f), acc));
+ }
+ vst1q_f32(output_ptr, acc);
+ output_ptr += 4;
+ }
+#endif
+ // Handle leftover values, one by one. This is very slow.
+ for (; i < num_output_values; i++) {
+ float acc = acc_buffer[i];
+ if (Ac == FusedActivationFunctionType::kRelu) {
+ acc = std::max(0.f, acc);
+ } else if (Ac == FusedActivationFunctionType::kRelu6) {
+ acc = std::max(0.f, std::min(6.f, acc));
+ } else if (Ac == FusedActivationFunctionType::kRelu1) {
+ acc = std::max(-1.f, std::min(1.f, acc));
+ }
+ *output_ptr++ = acc;
+ }
+ }
+ }
+ }
+}
+
+} // namespace optimized_ops
+} // namespace rt
+} // namespace nnfw
+
+
+#endif // __NNFW_RT_OPTIMIZED_OPS_DEPTHWISECONV_FLOAT_H__
diff --git a/runtimes/nn/common/operations/internal/optimized/depthwiseconv_uint8.h b/runtimes/nn/common/operations/internal/optimized/depthwiseconv_uint8.h
new file mode 100644
index 000000000..220f8793e
--- /dev/null
+++ b/runtimes/nn/common/operations/internal/optimized/depthwiseconv_uint8.h
@@ -0,0 +1,1606 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_OPTIMIZED_OPS_DEPTHWISECONV_UINT8_H__
+#define __NNFW_RT_OPTIMIZED_OPS_DEPTHWISECONV_UINT8_H__
+
+#include "fixedpoint.h"
+#include "gemmlowp.h"
+#include "../common.h"
+#include "../types.h"
+
+namespace nnfw {
+namespace rt {
+namespace optimized_ops {
+
+// Implementation of quantized DepthwiseConv
+
+template <bool kAllowStrided, int kFixedInputDepth, int kFixedDepthMultiplier>
+struct QuantizedDepthwiseConvKernel {};
+
+#ifdef USE_NEON
+template <>
+struct QuantizedDepthwiseConvKernel<true, 8, 2> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const uint8* input_ptr, int16 input_offset,
+ int input_ptr_increment, const uint8* filter_ptr,
+ int16 filter_offset, int32* acc_buffer_ptr) {
+ // Load the filters, add filter_offset.
+ uint8x8x2_t filter_u8;
+ filter_u8.val[0] = vld1_u8(filter_ptr);
+ filter_u8.val[1] = vld1_u8(filter_ptr + 8);
+ int16x8_t filter[2];
+ for (int i = 0; i < 2; i++) {
+ filter[i] = vaddq_s16(vreinterpretq_s16_u16(vmovl_u8(filter_u8.val[i])),
+ vdupq_n_s16(filter_offset));
+ }
+ // Handle one output pixel at a time.
+ for (int outp = 0; outp < num_output_pixels; outp++) {
+ // Load the accumulators from acc_buffer
+ int32x4x2_t acc[2];
+ for (int i = 0; i < 2; i++) {
+ acc[i].val[0] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ acc[i].val[1] = vld1q_s32(acc_buffer_ptr + 4 * i + 8);
+ }
+ // Load the inputs, add input_offset.
+ const uint8x8_t input_u8 = vld1_u8(input_ptr);
+ input_ptr += input_ptr_increment;
+ const int16x8_t input_s16 = vreinterpretq_s16_u16(vmovl_u8(input_u8));
+ const int16x8_t input = vaddq_s16(input_s16, vdupq_n_s16(input_offset));
+ // Duplicate the input values, 2-fold
+ const int16x8x2_t input_dup2 = vzipq_s16(input, input);
+ // Multiply-accumulate
+ for (int i = 0; i < 2; i++) {
+ acc[0].val[i] = vmlal_s16(acc[0].val[i], vget_low_s16(filter[i]),
+ vget_low_s16(input_dup2.val[i]));
+ acc[1].val[i] = vmlal_s16(acc[1].val[i], vget_high_s16(filter[i]),
+ vget_high_s16(input_dup2.val[i]));
+ }
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 2; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i].val[0]);
+ vst1q_s32(acc_buffer_ptr + 4 * i + 8, acc[i].val[1]);
+ }
+ acc_buffer_ptr += 16;
+ }
+ }
+};
+
+template <>
+struct QuantizedDepthwiseConvKernel<false, 8, 1> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const uint8* input_ptr, int16 input_offset,
+ int input_ptr_increment, const uint8* filter_ptr,
+ int16 filter_offset, int32* acc_buffer_ptr) {
+ // Load the filters, add filter_offset.
+ const uint8x8_t filter_u8 = vld1_u8(filter_ptr);
+ const int16x8_t filter_s16 = vreinterpretq_s16_u16(vmovl_u8(filter_u8));
+ const int16x8_t filter = vaddq_s16(filter_s16, vdupq_n_s16(filter_offset));
+
+ int outp = 0;
+ // Handle 2 output pixels at a time.
+ for (; outp <= num_output_pixels - 2; outp += 2) {
+ // Load the accumulators from acc_buffer.
+ int32x4_t acc[4];
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ }
+ // Load the inputs, add input_offset.
+ uint8x8_t input_u8[2];
+ for (int i = 0; i < 2; i++) {
+ input_u8[i] = vld1_u8(input_ptr + 8 * i);
+ }
+ input_ptr += 16;
+ int16x8_t input[2];
+ for (int i = 0; i < 2; i++) {
+ input[i] = vreinterpretq_s16_u16(vmovl_u8(input_u8[i]));
+ }
+ for (int i = 0; i < 2; i++) {
+ input[i] = vaddq_s16(input[i], vdupq_n_s16(input_offset));
+ }
+ // Multiply-accumulate.
+ acc[0] = vmlal_s16(acc[0], vget_low_s16(filter), vget_low_s16(input[0]));
+ acc[1] =
+ vmlal_s16(acc[1], vget_high_s16(filter), vget_high_s16(input[0]));
+ acc[2] = vmlal_s16(acc[2], vget_low_s16(filter), vget_low_s16(input[1]));
+ acc[3] =
+ vmlal_s16(acc[3], vget_high_s16(filter), vget_high_s16(input[1]));
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 4; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 16;
+ }
+ // Handle 1 output pixel at a time.
+ for (; outp < num_output_pixels; outp++) {
+ // Load the accumulators from acc_buffer.
+ int32x4_t acc[2];
+ acc[0] = vld1q_s32(acc_buffer_ptr);
+ acc[1] = vld1q_s32(acc_buffer_ptr + 4);
+
+ // Load the inputs, add input_offset.
+ const uint8x8_t input_u8 = vld1_u8(input_ptr);
+ input_ptr += 8;
+ const int16x8_t input_s16 = vreinterpretq_s16_u16(vmovl_u8(input_u8));
+ const int16x8_t input = vaddq_s16(input_s16, vdupq_n_s16(input_offset));
+ // Multiply-accumulate.
+ acc[0] = vmlal_s16(acc[0], vget_low_s16(filter), vget_low_s16(input));
+ acc[1] = vmlal_s16(acc[1], vget_high_s16(filter), vget_high_s16(input));
+ // Store the accumulators back to acc_buffer
+ vst1q_s32(acc_buffer_ptr, acc[0]);
+ vst1q_s32(acc_buffer_ptr + 4, acc[1]);
+ acc_buffer_ptr += 8;
+ }
+ }
+};
+
+template <>
+struct QuantizedDepthwiseConvKernel<false, 4, 2> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const uint8* input_ptr, int16 input_offset,
+ int input_ptr_increment, const uint8* filter_ptr,
+ int16 filter_offset, int32* acc_buffer_ptr) {
+ // Load the filters, add filter_offset.
+ const uint8x8_t filter_u8 = vld1_u8(filter_ptr);
+ const int16x8_t filter_s16 = vreinterpretq_s16_u16(vmovl_u8(filter_u8));
+ const int16x8_t filter = vaddq_s16(filter_s16, vdupq_n_s16(filter_offset));
+
+ int outp = 0;
+ // Handle 2 output pixels at a time.
+ for (; outp <= num_output_pixels - 2; outp += 2) {
+ // Load the accumulators from acc_buffer
+ int32x4_t acc[4];
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ }
+ // Load the inputs, add input_offset.
+ const uint8x8_t input_u8 = vld1_u8(input_ptr);
+ input_ptr += 8;
+ const int16x8_t input_s16 = vreinterpretq_s16_u16(vmovl_u8(input_u8));
+ const int16x8_t input = vaddq_s16(input_s16, vdupq_n_s16(input_offset));
+ // Duplicate the input values, 2-fold
+ const int16x8x2_t input_dup2 = vzipq_s16(input, input);
+ // Multiply-accumulate
+ for (int i = 0; i < 2; i++) {
+ acc[2 * i + 0] = vmlal_s16(acc[2 * i + 0], vget_low_s16(filter),
+ vget_low_s16(input_dup2.val[i]));
+ acc[2 * i + 1] = vmlal_s16(acc[2 * i + 1], vget_high_s16(filter),
+ vget_high_s16(input_dup2.val[i]));
+ }
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 4; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 16;
+ }
+ // Handle one output pixel at a time.
+ for (; outp < num_output_pixels; outp++) {
+ // Load the accumulators from acc_buffer
+ int32x4_t acc[2];
+ for (int i = 0; i < 2; i++) {
+ acc[i] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ }
+ // Load the inputs, add input_offset.
+ uint8x8_t input_u8 = vdup_n_u8(0);
+ input_u8 = vset_lane_u8(input_ptr[0], input_u8, 0);
+ input_u8 = vset_lane_u8(input_ptr[1], input_u8, 1);
+ input_u8 = vset_lane_u8(input_ptr[2], input_u8, 2);
+ input_u8 = vset_lane_u8(input_ptr[3], input_u8, 3);
+ input_ptr += 4;
+ const int16x4_t input_s16 =
+ vreinterpret_s16_u16(vget_low_u16(vmovl_u8(input_u8)));
+ const int16x4_t input = vadd_s16(input_s16, vdup_n_s16(input_offset));
+ // Duplicate the input values, 2-fold
+ const int16x4x2_t input_dup2 = vzip_s16(input, input);
+ // Multiply-accumulate
+ acc[0] = vmlal_s16(acc[0], vget_low_s16(filter), input_dup2.val[0]);
+ acc[1] = vmlal_s16(acc[1], vget_high_s16(filter), input_dup2.val[1]);
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 2; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 8;
+ }
+ }
+};
+
+template <>
+struct QuantizedDepthwiseConvKernel<false, 2, 8> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const uint8* input_ptr, int16 input_offset,
+ int input_ptr_increment, const uint8* filter_ptr,
+ int16 filter_offset, int32* acc_buffer_ptr) {
+ // Load the filters, add filter_offset.
+ int16x8_t filter[2];
+ for (int i = 0; i < 2; i++) {
+ const uint8x8_t filter_u8 = vld1_u8(filter_ptr + 8 * i);
+ const int16x8_t filter_s16 = vreinterpretq_s16_u16(vmovl_u8(filter_u8));
+ filter[i] = vaddq_s16(filter_s16, vdupq_n_s16(filter_offset));
+ }
+ int outp = 0;
+ // Handle two output pixels at a time.
+ for (; outp <= num_output_pixels - 2; outp += 2) {
+ // Load the accumulators from acc_buffer.
+ int32x4_t acc[8];
+ for (int i = 0; i < 8; i++) {
+ acc[i] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ }
+ // Load the inputs, add input_offset.
+ uint8x8_t input_u8 = vdup_n_u8(0);
+ input_u8 = vset_lane_u8(input_ptr[0], input_u8, 0);
+ input_u8 = vset_lane_u8(input_ptr[1], input_u8, 1);
+ input_u8 = vset_lane_u8(input_ptr[2], input_u8, 2);
+ input_u8 = vset_lane_u8(input_ptr[3], input_u8, 3);
+ input_ptr += 4;
+ const int16x4_t input_s16 =
+ vreinterpret_s16_u16(vget_low_u16(vmovl_u8(input_u8)));
+ const int16x4_t input = vadd_s16(input_s16, vdup_n_s16(input_offset));
+ // Multiply-accumulate.
+ acc[0] = vmlal_lane_s16(acc[0], vget_low_s16(filter[0]), input, 0);
+ acc[1] = vmlal_lane_s16(acc[1], vget_high_s16(filter[0]), input, 0);
+ acc[2] = vmlal_lane_s16(acc[2], vget_low_s16(filter[1]), input, 1);
+ acc[3] = vmlal_lane_s16(acc[3], vget_high_s16(filter[1]), input, 1);
+ acc[4] = vmlal_lane_s16(acc[4], vget_low_s16(filter[0]), input, 2);
+ acc[5] = vmlal_lane_s16(acc[5], vget_high_s16(filter[0]), input, 2);
+ acc[6] = vmlal_lane_s16(acc[6], vget_low_s16(filter[1]), input, 3);
+ acc[7] = vmlal_lane_s16(acc[7], vget_high_s16(filter[1]), input, 3);
+ // Store the accumulators back to acc_buffer.
+ for (int i = 0; i < 8; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 32;
+ }
+ // Handle one output pixel at a time.
+ for (; outp < num_output_pixels; outp++) {
+ // Load the accumulators from acc_buffer.
+ int32x4_t acc[4];
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ }
+ // Load the inputs, add input_offset.
+ uint8x8_t input_u8 = vdup_n_u8(0);
+ input_u8 = vset_lane_u8(input_ptr[0], input_u8, 0);
+ input_u8 = vset_lane_u8(input_ptr[1], input_u8, 1);
+ input_ptr += 2;
+ const int16x4_t input_s16 =
+ vreinterpret_s16_u16(vget_low_u16(vmovl_u8(input_u8)));
+ const int16x4_t input = vadd_s16(input_s16, vdup_n_s16(input_offset));
+
+ // Multiply-accumulate.
+ acc[0] = vmlal_lane_s16(acc[0], vget_low_s16(filter[0]), input, 0);
+ acc[1] = vmlal_lane_s16(acc[1], vget_high_s16(filter[0]), input, 0);
+ acc[2] = vmlal_lane_s16(acc[2], vget_low_s16(filter[1]), input, 1);
+ acc[3] = vmlal_lane_s16(acc[3], vget_high_s16(filter[1]), input, 1);
+
+ // Store the accumulators back to acc_buffer.
+ for (int i = 0; i < 4; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 16;
+ }
+ }
+};
+
+template <>
+struct QuantizedDepthwiseConvKernel<false, 2, 2> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const uint8* input_ptr, int16 input_offset,
+ int input_ptr_increment, const uint8* filter_ptr,
+ int16 filter_offset, int32* acc_buffer_ptr) {
+ // Load the filters, add filter_offset.
+ uint8x8_t filter_u8 = vdup_n_u8(0);
+ filter_u8 = vset_lane_u8(filter_ptr[0], filter_u8, 0);
+ filter_u8 = vset_lane_u8(filter_ptr[1], filter_u8, 1);
+ filter_u8 = vset_lane_u8(filter_ptr[2], filter_u8, 2);
+ filter_u8 = vset_lane_u8(filter_ptr[3], filter_u8, 3);
+ const int16x4_t filter_s16 =
+ vreinterpret_s16_u16(vget_low_u16(vmovl_u8(filter_u8)));
+ const int16x4_t filter = vadd_s16(filter_s16, vdup_n_s16(filter_offset));
+
+ int outp = 0;
+ // Handle 4 output pixels at a time.
+ for (; outp <= num_output_pixels - 4; outp += 4) {
+ // Load the accumulators from acc_buffer
+ int32x4_t acc[4];
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ }
+
+ // Load the inputs, add input_offset.
+ const uint8x8_t input_u8 = vld1_u8(input_ptr);
+ input_ptr += 8;
+ const int16x8_t input_s16 = vreinterpretq_s16_u16(vmovl_u8(input_u8));
+ const int16x8_t input = vaddq_s16(input_s16, vdupq_n_s16(input_offset));
+ // Duplicate the input values, 2-fold
+ const int16x8x2_t input_dup2 = vzipq_s16(input, input);
+ // Multiply-accumulate
+ acc[0] = vmlal_s16(acc[0], filter, vget_low_s16(input_dup2.val[0]));
+ acc[1] = vmlal_s16(acc[1], filter, vget_high_s16(input_dup2.val[0]));
+ acc[2] = vmlal_s16(acc[2], filter, vget_low_s16(input_dup2.val[1]));
+ acc[3] = vmlal_s16(acc[3], filter, vget_high_s16(input_dup2.val[1]));
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 4; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 16;
+ }
+ // Handle one output pixel at a time.
+ for (; outp < num_output_pixels; outp++) {
+ // Load the accumulators from acc_buffer
+ int32x4_t acc = vld1q_s32(acc_buffer_ptr);
+
+ uint8x8_t input_u8 = vdup_n_u8(0);
+ input_u8 = vset_lane_u8(input_ptr[0], input_u8, 0);
+ input_u8 = vset_lane_u8(input_ptr[1], input_u8, 1);
+ input_ptr += 2;
+ const int16x4_t input_s16 =
+ vreinterpret_s16_u16(vget_low_u16(vmovl_u8(input_u8)));
+ const int16x4_t input = vadd_s16(input_s16, vdup_n_s16(input_offset));
+ // Duplicate the input values, 2-fold
+ const int16x4_t input_dup2 = vzip_s16(input, input).val[0];
+ // Multiply-accumulate
+ acc = vmlal_s16(acc, filter, input_dup2);
+ // Store the accumulators back to acc_buffer
+ vst1q_s32(acc_buffer_ptr, acc);
+ acc_buffer_ptr += 4;
+ }
+ }
+};
+
+template <>
+struct QuantizedDepthwiseConvKernel<false, 2, 1> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const uint8* input_ptr, int16 input_offset,
+ int input_ptr_increment, const uint8* filter_ptr,
+ int16 filter_offset, int32* acc_buffer_ptr) {
+ // Load the filters, add filter_offset.
+ uint8x8_t filter_u8 = vdup_n_u8(0);
+ filter_u8 = vset_lane_u8(filter_ptr[0], filter_u8, 0);
+ filter_u8 = vset_lane_u8(filter_ptr[1], filter_u8, 1);
+ filter_u8 = vset_lane_u8(filter_ptr[0], filter_u8, 2);
+ filter_u8 = vset_lane_u8(filter_ptr[1], filter_u8, 3);
+ const int16x4_t filter_s16 =
+ vreinterpret_s16_u16(vget_low_u16(vmovl_u8(filter_u8)));
+ const int16x4_t filter = vadd_s16(filter_s16, vdup_n_s16(filter_offset));
+
+ int outp = 0;
+ // Handle 8 output pixels at a time.
+ for (; outp <= num_output_pixels - 8; outp += 8) {
+ // Load the accumulators from acc_buffer.
+ int32x4_t acc[4];
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ }
+ // Load the inputs, add input_offset.
+ uint8x8_t input_u8[2];
+ for (int i = 0; i < 2; i++) {
+ input_u8[i] = vld1_u8(input_ptr + 8 * i);
+ }
+ input_ptr += 16;
+ int16x8_t input[2];
+ for (int i = 0; i < 2; i++) {
+ input[i] = vreinterpretq_s16_u16(vmovl_u8(input_u8[i]));
+ }
+ for (int i = 0; i < 2; i++) {
+ input[i] = vaddq_s16(input[i], vdupq_n_s16(input_offset));
+ }
+
+ // Multiply-accumulate.
+ acc[0] = vmlal_s16(acc[0], filter, vget_low_s16(input[0]));
+ acc[1] = vmlal_s16(acc[1], filter, vget_high_s16(input[0]));
+ acc[2] = vmlal_s16(acc[2], filter, vget_low_s16(input[1]));
+ acc[3] = vmlal_s16(acc[3], filter, vget_high_s16(input[1]));
+ // Store the accumulators back to acc_buffer.
+ for (int i = 0; i < 4; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 16;
+ }
+ // Handle 4 output pixels at a time.
+ for (; outp <= num_output_pixels - 4; outp += 4) {
+ // Load the accumulators from acc_buffer.
+ int32x4_t acc[2];
+ for (int i = 0; i < 2; i++) {
+ acc[i] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ }
+ // Load the inputs, add input_offset.
+ const uint8x8_t input_u8 = vld1_u8(input_ptr);
+ input_ptr += 8;
+ const int16x8_t input_s16 = vreinterpretq_s16_u16(vmovl_u8(input_u8));
+ const int16x8_t input = vaddq_s16(input_s16, vdupq_n_s16(input_offset));
+
+ // Multiply-accumulate.
+ acc[0] = vmlal_s16(acc[0], filter, vget_low_s16(input));
+ acc[1] = vmlal_s16(acc[1], filter, vget_high_s16(input));
+ // Store the accumulators back to acc_buffer.
+ for (int i = 0; i < 2; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 8;
+ }
+ // Handle 2 output pixels at a time.
+ for (; outp <= num_output_pixels - 2; outp += 2) {
+ // Load the accumulators from acc_buffer.
+ int32x4_t acc = vld1q_s32(acc_buffer_ptr);
+ // Load the inputs, add input_offset.
+ uint8x8_t input_u8 = vdup_n_u8(0);
+ input_u8 = vset_lane_u8(input_ptr[0], input_u8, 0);
+ input_u8 = vset_lane_u8(input_ptr[1], input_u8, 1);
+ input_u8 = vset_lane_u8(input_ptr[2], input_u8, 2);
+ input_u8 = vset_lane_u8(input_ptr[3], input_u8, 3);
+ input_ptr += 4;
+ const int16x4_t input_s16 =
+ vreinterpret_s16_u16(vget_low_u16(vmovl_u8(input_u8)));
+ const int16x4_t input = vadd_s16(input_s16, vdup_n_s16(input_offset));
+
+ // Multiply-accumulate.
+ acc = vmlal_s16(acc, filter, input);
+ // Store the accumulators back to acc_buffer.
+ vst1q_s32(acc_buffer_ptr, acc);
+ acc_buffer_ptr += 4;
+ }
+ // Handle 1 output pixel at a time.
+ for (; outp < num_output_pixels; outp++) {
+ // Load the accumulators from acc_buffer.
+ int32x2_t acc = vld1_s32(acc_buffer_ptr);
+ // Load the inputs, add input_offset.
+ uint8x8_t input_u8 = vdup_n_u8(0);
+ input_u8 = vset_lane_u8(input_ptr[0], input_u8, 0);
+ input_u8 = vset_lane_u8(input_ptr[1], input_u8, 1);
+ input_ptr += 2;
+ const int16x4_t input_s16 =
+ vreinterpret_s16_u16(vget_low_u16(vmovl_u8(input_u8)));
+ const int16x4_t input = vadd_s16(input_s16, vdup_n_s16(input_offset));
+
+ // Multiply-accumulate.
+ acc = vget_low_s32(vmlal_s16(vcombine_s32(acc, acc), filter, input));
+ // Store the accumulators back to acc_buffer.
+ vst1_s32(acc_buffer_ptr, acc);
+ acc_buffer_ptr += 2;
+ }
+ }
+};
+
+template <>
+struct QuantizedDepthwiseConvKernel<false, 1, 2> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const uint8* input_ptr, int16 input_offset,
+ int input_ptr_increment, const uint8* filter_ptr,
+ int16 filter_offset, int32* acc_buffer_ptr) {
+ // Load the filters, add filter_offset.
+ uint8x8_t filter_u8 = vdup_n_u8(0);
+ filter_u8 = vset_lane_u8(filter_ptr[0], filter_u8, 0);
+ filter_u8 = vset_lane_u8(filter_ptr[1], filter_u8, 1);
+ filter_u8 = vset_lane_u8(filter_ptr[0], filter_u8, 2);
+ filter_u8 = vset_lane_u8(filter_ptr[1], filter_u8, 3);
+ const int16x4_t filter_s16 =
+ vreinterpret_s16_u16(vget_low_u16(vmovl_u8(filter_u8)));
+ const int16x4_t filter = vadd_s16(filter_s16, vdup_n_s16(filter_offset));
+
+ int outp = 0;
+ // Handle 8 output pixels at a time.
+ for (; outp <= num_output_pixels - 8; outp += 8) {
+ // Load the accumulators from acc_buffer
+ int32x4_t acc[4];
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ }
+
+ // Load the inputs, add input_offset.
+ const uint8x8_t input_u8 = vld1_u8(input_ptr);
+ input_ptr += 8;
+ const int16x8_t input_s16 = vreinterpretq_s16_u16(vmovl_u8(input_u8));
+ const int16x8_t input = vaddq_s16(input_s16, vdupq_n_s16(input_offset));
+ // Duplicate the input values, 2-fold
+ const int16x8x2_t input_dup2 = vzipq_s16(input, input);
+ // Multiply-accumulate
+ acc[0] = vmlal_s16(acc[0], filter, vget_low_s16(input_dup2.val[0]));
+ acc[1] = vmlal_s16(acc[1], filter, vget_high_s16(input_dup2.val[0]));
+ acc[2] = vmlal_s16(acc[2], filter, vget_low_s16(input_dup2.val[1]));
+ acc[3] = vmlal_s16(acc[3], filter, vget_high_s16(input_dup2.val[1]));
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 4; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 16;
+ }
+ // Handle one output pixel at a time.
+ for (; outp < num_output_pixels; outp++) {
+ // Load the accumulators from acc_buffer
+ int32x2_t acc = vld1_s32(acc_buffer_ptr);
+
+ // Load the inputs, add input_offset.
+ const uint32 input = *input_ptr++ + input_offset;
+
+ // Multiply-accumulate
+ acc = vget_low_s32(vmlal_n_s16(vcombine_s32(acc, acc), filter, input));
+ // Store the accumulators back to acc_buffer
+ vst1_s32(acc_buffer_ptr, acc);
+ acc_buffer_ptr += 2;
+ }
+ }
+};
+
+template <>
+struct QuantizedDepthwiseConvKernel<false, 1, 4> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const uint8* input_ptr, int16 input_offset,
+ int input_ptr_increment, const uint8* filter_ptr,
+ int16 filter_offset, int32* acc_buffer_ptr) {
+ // Load the filters, add filter_offset.
+ uint8x8_t filter_u8 = vdup_n_u8(0);
+ filter_u8 = vset_lane_u8(filter_ptr[0], filter_u8, 0);
+ filter_u8 = vset_lane_u8(filter_ptr[1], filter_u8, 1);
+ filter_u8 = vset_lane_u8(filter_ptr[2], filter_u8, 2);
+ filter_u8 = vset_lane_u8(filter_ptr[3], filter_u8, 3);
+ const int16x4_t filter_s16 =
+ vreinterpret_s16_u16(vget_low_u16(vmovl_u8(filter_u8)));
+ const int16x4_t filter = vadd_s16(filter_s16, vdup_n_s16(filter_offset));
+
+ int outp = 0;
+ // Handle 8 output pixels at a time.
+ for (; outp <= num_output_pixels - 8; outp += 8) {
+ // Load the accumulators from acc_buffer
+ int32x4_t acc[8];
+ for (int i = 0; i < 8; i++) {
+ acc[i] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ }
+
+ // Load the inputs, add input_offset.
+ uint8x8_t input_u8 = vld1_u8(input_ptr);
+ input_ptr += 8;
+ const int16x8_t input_s16 = vreinterpretq_s16_u16(vmovl_u8(input_u8));
+ const int16x8_t input = vaddq_s16(input_s16, vdupq_n_s16(input_offset));
+
+ // Multiply-accumulate
+ acc[0] = vmlal_lane_s16(acc[0], filter, vget_low_s16(input), 0);
+ acc[1] = vmlal_lane_s16(acc[1], filter, vget_low_s16(input), 1);
+ acc[2] = vmlal_lane_s16(acc[2], filter, vget_low_s16(input), 2);
+ acc[3] = vmlal_lane_s16(acc[3], filter, vget_low_s16(input), 3);
+ acc[4] = vmlal_lane_s16(acc[4], filter, vget_high_s16(input), 0);
+ acc[5] = vmlal_lane_s16(acc[5], filter, vget_high_s16(input), 1);
+ acc[6] = vmlal_lane_s16(acc[6], filter, vget_high_s16(input), 2);
+ acc[7] = vmlal_lane_s16(acc[7], filter, vget_high_s16(input), 3);
+
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 8; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 32;
+ }
+ // Handle 4 output pixels at a time.
+ for (; outp <= num_output_pixels - 4; outp += 4) {
+ // Load the accumulators from acc_buffer
+ int32x4_t acc[4];
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ }
+
+ // Load the inputs, add input_offset.
+ uint8x8_t input_u8 = vdup_n_u8(0);
+ input_u8 = vset_lane_u8(input_ptr[0], input_u8, 0);
+ input_u8 = vset_lane_u8(input_ptr[1], input_u8, 1);
+ input_u8 = vset_lane_u8(input_ptr[2], input_u8, 2);
+ input_u8 = vset_lane_u8(input_ptr[3], input_u8, 3);
+ input_ptr += 4;
+ const int16x4_t input_s16 =
+ vreinterpret_s16_u16(vget_low_u16(vmovl_u8(input_u8)));
+ const int16x4_t input = vadd_s16(input_s16, vdup_n_s16(input_offset));
+
+ // Multiply-accumulate
+ acc[0] = vmlal_lane_s16(acc[0], filter, input, 0);
+ acc[1] = vmlal_lane_s16(acc[1], filter, input, 1);
+ acc[2] = vmlal_lane_s16(acc[2], filter, input, 2);
+ acc[3] = vmlal_lane_s16(acc[3], filter, input, 3);
+
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 4; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 16;
+ }
+ // Handle one output pixel at a time.
+ for (; outp < num_output_pixels; outp++) {
+ // Load the accumulators from acc_buffer
+ int32x4_t acc = vld1q_s32(acc_buffer_ptr);
+
+ // Load the inputs, add input_offset.
+ const uint32 input = *input_ptr++ + input_offset;
+
+ // Multiply-accumulate
+ acc = vmlal_n_s16(acc, filter, input);
+ // Store the accumulators back to acc_buffer
+ vst1q_s32(acc_buffer_ptr, acc);
+ acc_buffer_ptr += 4;
+ }
+ }
+};
+
+template <>
+struct QuantizedDepthwiseConvKernel<false, 4, 1> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const uint8* input_ptr, int16 input_offset,
+ int input_ptr_increment, const uint8* filter_ptr,
+ int16 filter_offset, int32* acc_buffer_ptr) {
+ // Load the filters, add filter_offset.
+ uint8x8_t filter_u8 = vdup_n_u8(0);
+ filter_u8 = vset_lane_u8(filter_ptr[0], filter_u8, 0);
+ filter_u8 = vset_lane_u8(filter_ptr[1], filter_u8, 1);
+ filter_u8 = vset_lane_u8(filter_ptr[2], filter_u8, 2);
+ filter_u8 = vset_lane_u8(filter_ptr[3], filter_u8, 3);
+ const int16x4_t filter_s16 =
+ vreinterpret_s16_u16(vget_low_u16(vmovl_u8(filter_u8)));
+ const int16x4_t filter = vadd_s16(filter_s16, vdup_n_s16(filter_offset));
+
+ int outp = 0;
+ // Handle 4 output pixels at a time.
+ for (; outp <= num_output_pixels - 4; outp += 4) {
+ // Load the accumulators from acc_buffer
+ int32x4_t acc[4];
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ }
+ // Load the inputs, add input_offset.
+ int16x8_t input[2];
+ for (int i = 0; i < 2; i++) {
+ const uint8x8_t input_u8 = vld1_u8(input_ptr + 8 * i);
+ const int16x8_t input_s16 = vreinterpretq_s16_u16(vmovl_u8(input_u8));
+ input[i] = vaddq_s16(input_s16, vdupq_n_s16(input_offset));
+ }
+ input_ptr += 16;
+ // Multiply-accumulate
+ for (int i = 0; i < 2; i++) {
+ acc[2 * i + 0] =
+ vmlal_s16(acc[2 * i + 0], filter, vget_low_s16(input[i]));
+ acc[2 * i + 1] =
+ vmlal_s16(acc[2 * i + 1], filter, vget_high_s16(input[i]));
+ }
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 4; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 16;
+ }
+ // Handle one output pixel at a time.
+ for (; outp < num_output_pixels; outp++) {
+ // Load the accumulators from acc_buffer
+ int32x4_t acc;
+ acc = vld1q_s32(acc_buffer_ptr);
+
+ // Load the inputs, add input_offset.
+ uint8x8_t input_u8 = vdup_n_u8(0);
+ input_u8 = vset_lane_u8(input_ptr[0], input_u8, 0);
+ input_u8 = vset_lane_u8(input_ptr[1], input_u8, 1);
+ input_u8 = vset_lane_u8(input_ptr[2], input_u8, 2);
+ input_u8 = vset_lane_u8(input_ptr[3], input_u8, 3);
+ input_ptr += 4;
+ const int16x4_t input_s16 =
+ vreinterpret_s16_u16(vget_low_u16(vmovl_u8(input_u8)));
+ const int16x4_t input = vadd_s16(input_s16, vdup_n_s16(input_offset));
+ // Multiply-accumulate
+ acc = vmlal_s16(acc, filter, input);
+ // Store the accumulators back to acc_buffer
+ vst1q_s32(acc_buffer_ptr, acc);
+ acc_buffer_ptr += 4;
+ }
+ }
+};
+
+template <>
+struct QuantizedDepthwiseConvKernel<false, 4, 4> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const uint8* input_ptr, int16 input_offset,
+ int input_ptr_increment, const uint8* filter_ptr,
+ int16 filter_offset, int32* acc_buffer_ptr) {
+ // Load the filters, add filter_offset.
+ int16x8_t filter[2];
+ for (int i = 0; i < 2; i++) {
+ const uint8x8_t filter_u8 = vld1_u8(filter_ptr + 8 * i);
+ const int16x8_t filter_s16 = vreinterpretq_s16_u16(vmovl_u8(filter_u8));
+ filter[i] = vaddq_s16(filter_s16, vdupq_n_s16(filter_offset));
+ }
+
+ int outp = 0;
+ // Handle 2 output pixels at a time.
+ for (; outp <= num_output_pixels - 2; outp += 2) {
+ // Load the accumulators from acc_buffer
+ int32x4_t acc[8];
+ for (int i = 0; i < 8; i++) {
+ acc[i] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ }
+
+ // Load the inputs, add input_offset.
+ uint8x8_t input_u8 = vld1_u8(input_ptr);
+ input_ptr += 8;
+ const int16x8_t input_s16 = vreinterpretq_s16_u16(vmovl_u8(input_u8));
+ const int16x8_t input = vaddq_s16(input_s16, vdupq_n_s16(input_offset));
+
+ // Multiply-accumulate
+ acc[0] = vmlal_lane_s16(acc[0], vget_low_s16(filter[0]),
+ vget_low_s16(input), 0);
+ acc[1] = vmlal_lane_s16(acc[1], vget_high_s16(filter[0]),
+ vget_low_s16(input), 1);
+ acc[2] = vmlal_lane_s16(acc[2], vget_low_s16(filter[1]),
+ vget_low_s16(input), 2);
+ acc[3] = vmlal_lane_s16(acc[3], vget_high_s16(filter[1]),
+ vget_low_s16(input), 3);
+ acc[4] = vmlal_lane_s16(acc[4], vget_low_s16(filter[0]),
+ vget_high_s16(input), 0);
+ acc[5] = vmlal_lane_s16(acc[5], vget_high_s16(filter[0]),
+ vget_high_s16(input), 1);
+ acc[6] = vmlal_lane_s16(acc[6], vget_low_s16(filter[1]),
+ vget_high_s16(input), 2);
+ acc[7] = vmlal_lane_s16(acc[7], vget_high_s16(filter[1]),
+ vget_high_s16(input), 3);
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 8; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 32;
+ }
+ // Handle one output pixel at a time.
+ for (; outp < num_output_pixels; outp++) {
+ // Load the accumulators from acc_buffer
+ int32x4_t acc[4];
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ }
+
+ // Load the inputs, add input_offset.
+ uint8x8_t input_u8 = vdup_n_u8(0);
+ input_u8 = vset_lane_u8(input_ptr[0], input_u8, 0);
+ input_u8 = vset_lane_u8(input_ptr[1], input_u8, 1);
+ input_u8 = vset_lane_u8(input_ptr[2], input_u8, 2);
+ input_u8 = vset_lane_u8(input_ptr[3], input_u8, 3);
+ input_ptr += 4;
+ const int16x4_t input_s16 =
+ vreinterpret_s16_u16(vget_low_u16(vmovl_u8(input_u8)));
+ const int16x4_t input = vadd_s16(input_s16, vdup_n_s16(input_offset));
+
+ // Multiply-accumulate
+ acc[0] = vmlal_lane_s16(acc[0], vget_low_s16(filter[0]), input, 0);
+ acc[1] = vmlal_lane_s16(acc[1], vget_high_s16(filter[0]), input, 1);
+ acc[2] = vmlal_lane_s16(acc[2], vget_low_s16(filter[1]), input, 2);
+ acc[3] = vmlal_lane_s16(acc[3], vget_high_s16(filter[1]), input, 3);
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 4; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 16;
+ }
+ }
+};
+
+template <>
+struct QuantizedDepthwiseConvKernel<true, 0, 3> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const uint8* input_ptr, int16 input_offset,
+ int input_ptr_increment, const uint8* filter_ptr,
+ int16 filter_offset, int32* acc_buffer_ptr) {
+ // We will have to duplicate bytes in a NEON register, 3-fold.
+ // We will do that by register-level table-look-up using VTBL instructions.
+ // Here we prepare the registers containing the table-lookup indices.
+ static const uint8 dup3_indices_array[3][8] = {{0, 0, 0, 1, 1, 1, 2, 2},
+ {2, 3, 3, 3, 4, 4, 4, 5},
+ {5, 5, 6, 6, 6, 7, 7, 7}};
+ uint8x8_t dup3_indices[3];
+ for (int i = 0; i < 3; i++) {
+ dup3_indices[i] = vld1_u8(dup3_indices_array[i]);
+ }
+
+ // Handle one output pixel at a time.
+ for (int outp = 0; outp < num_output_pixels; outp++) {
+ const uint8* local_filter_ptr = filter_ptr;
+ const uint8* local_input_ptr = input_ptr;
+ int ic = 0;
+ // Handle 8 input channels at a time.
+ for (; ic <= input_depth - 8; ic += 8) {
+ // Load the filters, add filter_offset.
+ int16x8_t filter[3];
+ uint8x8x3_t filter_u8;
+ filter_u8.val[0] = vld1_u8(local_filter_ptr);
+ filter_u8.val[1] = vld1_u8(local_filter_ptr + 8);
+ filter_u8.val[2] = vld1_u8(local_filter_ptr + 16);
+ local_filter_ptr += 24;
+ for (int i = 0; i < 3; i++) {
+ const int16x8_t filter_s16 =
+ vreinterpretq_s16_u16(vmovl_u8(filter_u8.val[i]));
+ filter[i] = vaddq_s16(filter_s16, vdupq_n_s16(filter_offset));
+ }
+ // Load the inputs, duplicate 3-fold, add input_offset.
+ const uint8x8_t input_u8 = vld1_u8(local_input_ptr);
+ local_input_ptr += 8;
+
+ uint8x8_t input_u8_dup3[3];
+ for (int i = 0; i < 3; i++) {
+ input_u8_dup3[i] = vtbl1_u8(input_u8, dup3_indices[i]);
+ }
+ int16x8_t input_dup3[3];
+ for (int i = 0; i < 3; i++) {
+ const int16x8_t input_s16_dup3 =
+ vreinterpretq_s16_u16(vmovl_u8(input_u8_dup3[i]));
+ input_dup3[i] = vaddq_s16(input_s16_dup3, vdupq_n_s16(input_offset));
+ }
+ // Load the accumulators from acc_buffer
+ int32x4x3_t acc[2];
+ for (int i = 0; i < 2; i++) {
+ acc[i].val[0] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ acc[i].val[1] = vld1q_s32(acc_buffer_ptr + 4 * i + 8);
+ acc[i].val[2] = vld1q_s32(acc_buffer_ptr + 4 * i + 16);
+ }
+ // Multiply-accumulate
+ for (int j = 0; j < 3; j++) {
+ acc[0].val[j] = vmlal_s16(acc[0].val[j], vget_low_s16(input_dup3[j]),
+ vget_low_s16(filter[j]));
+ acc[1].val[j] = vmlal_s16(acc[1].val[j], vget_high_s16(input_dup3[j]),
+ vget_high_s16(filter[j]));
+ }
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 2; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i].val[0]);
+ vst1q_s32(acc_buffer_ptr + 4 * i + 8, acc[i].val[1]);
+ vst1q_s32(acc_buffer_ptr + 4 * i + 16, acc[i].val[2]);
+ }
+ acc_buffer_ptr += 24;
+ }
+ // Handle one input channel at a time.
+ for (; ic < input_depth; ic++) {
+ const int16 input_val = *local_input_ptr++ + input_offset;
+ for (int i = 0; i < 3; i++) {
+ const int16 filter_val = local_filter_ptr[i] + filter_offset;
+ *acc_buffer_ptr++ += static_cast<int32>(filter_val) * input_val;
+ }
+ local_filter_ptr += 3;
+ }
+ input_ptr += input_ptr_increment;
+ }
+ }
+};
+
+template <>
+struct QuantizedDepthwiseConvKernel<true, 0, 2> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const uint8* input_ptr, int16 input_offset,
+ int input_ptr_increment, const uint8* filter_ptr,
+ int16 filter_offset, int32* acc_buffer_ptr) {
+ // Handle one output pixel at a time.
+ for (int outp = 0; outp < num_output_pixels; outp++) {
+ const uint8* local_filter_ptr = filter_ptr;
+ const uint8* local_input_ptr = input_ptr;
+ int ic = 0;
+ // Handle 8 input channels at a time.
+ for (; ic <= input_depth - 8; ic += 8) {
+ // Load the filters, add filter_offset.
+ int16x8_t filter[2];
+ uint8x8x2_t filter_u8;
+ filter_u8.val[0] = vld1_u8(local_filter_ptr);
+ filter_u8.val[1] = vld1_u8(local_filter_ptr + 8);
+ local_filter_ptr += 16;
+ for (int i = 0; i < 2; i++) {
+ const int16x8_t filter_s16 =
+ vreinterpretq_s16_u16(vmovl_u8(filter_u8.val[i]));
+ filter[i] = vaddq_s16(filter_s16, vdupq_n_s16(filter_offset));
+ }
+ // Load the inputs, add input_offset, duplicate 2-fold.
+ const uint8x8_t input_u8 = vld1_u8(local_input_ptr);
+ local_input_ptr += 8;
+ const int16x8_t input_s16 = vreinterpretq_s16_u16(vmovl_u8(input_u8));
+ const int16x8_t input = vaddq_s16(input_s16, vdupq_n_s16(input_offset));
+ const int16x8x2_t input_dup2 = vzipq_s16(input, input);
+ // Load the accumulators from acc_buffer.
+ int32x4x2_t acc[2];
+ for (int i = 0; i < 2; i++) {
+ acc[i].val[0] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ acc[i].val[1] = vld1q_s32(acc_buffer_ptr + 4 * i + 8);
+ }
+ // Multiply-accumulate.
+ for (int j = 0; j < 2; j++) {
+ acc[0].val[j] = vmlal_s16(acc[0].val[j], vget_low_s16(filter[j]),
+ vget_low_s16(input_dup2.val[j]));
+ acc[1].val[j] = vmlal_s16(acc[1].val[j], vget_high_s16(filter[j]),
+ vget_high_s16(input_dup2.val[j]));
+ }
+ // Store the accumulators back to acc_buffer.
+ for (int i = 0; i < 2; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i].val[0]);
+ vst1q_s32(acc_buffer_ptr + 4 * i + 8, acc[i].val[1]);
+ }
+ acc_buffer_ptr += 16;
+ }
+ // Handle one input channel at a time.
+ for (; ic < input_depth; ic++) {
+ // Load the inputs.
+ const int16 input_val = *local_input_ptr++ + input_offset;
+ for (int i = 0; i < 2; i++) {
+ const int16 filter_val = local_filter_ptr[i] + filter_offset;
+ *acc_buffer_ptr++ += static_cast<int32>(filter_val) * input_val;
+ }
+ local_filter_ptr += 2;
+ }
+ input_ptr += input_ptr_increment;
+ }
+ }
+};
+
+template <>
+struct QuantizedDepthwiseConvKernel<true, 0, 1> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const uint8* input_ptr, int16 input_offset,
+ int input_ptr_increment, const uint8* filter_ptr,
+ int16 filter_offset, int32* acc_buffer_ptr) {
+ // Handle one output pixel at a time.
+ for (int outp = 0; outp < num_output_pixels; outp++) {
+ const uint8* local_filter_ptr = filter_ptr;
+ const uint8* local_input_ptr = input_ptr;
+ int ic = 0;
+ // Handle 16 input channels at a time.
+ for (; ic <= input_depth - 16; ic += 16) {
+ // Load the filters, add filter_offset.
+ uint8x8_t filter_u8[2];
+ for (int i = 0; i < 2; i++) {
+ filter_u8[i] = vld1_u8(local_filter_ptr + 8 * i);
+ }
+ local_filter_ptr += 16;
+ int16x8_t filter[2];
+ for (int i = 0; i < 2; i++) {
+ filter[i] = vreinterpretq_s16_u16(vmovl_u8(filter_u8[i]));
+ }
+ for (int i = 0; i < 2; i++) {
+ filter[i] = vaddq_s16(filter[i], vdupq_n_s16(filter_offset));
+ }
+ // Load the inputs, add input_offset.
+ uint8x8_t input_u8[2];
+ for (int i = 0; i < 2; i++) {
+ input_u8[i] = vld1_u8(local_input_ptr + 8 * i);
+ }
+ local_input_ptr += 16;
+ int16x8_t input[2];
+ for (int i = 0; i < 2; i++) {
+ input[i] = vreinterpretq_s16_u16(vmovl_u8(input_u8[i]));
+ }
+ for (int i = 0; i < 2; i++) {
+ input[i] = vaddq_s16(input[i], vdupq_n_s16(input_offset));
+ }
+ // Load the accumulators from acc_buffer
+ int32x4_t acc[4];
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ }
+ // Multiply-accumulate
+ for (int i = 0; i < 2; i++) {
+ acc[2 * i + 0] = vmlal_s16(acc[2 * i + 0], vget_low_s16(input[i]),
+ vget_low_s16(filter[i]));
+ acc[2 * i + 1] = vmlal_s16(acc[2 * i + 1], vget_high_s16(input[i]),
+ vget_high_s16(filter[i]));
+ }
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 4; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 16;
+ }
+ // Handle 8 input channels at a time.
+ for (; ic <= input_depth - 8; ic += 8) {
+ // Load the filters, add filter_offset.
+ const uint8x8_t filter_u8 = vld1_u8(local_filter_ptr);
+ local_filter_ptr += 8;
+ const int16x8_t filter_s16 = vreinterpretq_s16_u16(vmovl_u8(filter_u8));
+ const int16x8_t filter =
+ vaddq_s16(filter_s16, vdupq_n_s16(filter_offset));
+ // Load the inputs, add input_offset.
+ const uint8x8_t input_u8 = vld1_u8(local_input_ptr);
+ local_input_ptr += 8;
+ const int16x8_t input_s16 = vreinterpretq_s16_u16(vmovl_u8(input_u8));
+ const int16x8_t input = vaddq_s16(input_s16, vdupq_n_s16(input_offset));
+ // Load the accumulators from acc_buffer
+ int32x4_t acc[2];
+ for (int i = 0; i < 2; i++) {
+ acc[i] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ }
+ // Multiply-accumulate
+ acc[0] = vmlal_s16(acc[0], vget_low_s16(input), vget_low_s16(filter));
+ acc[1] = vmlal_s16(acc[1], vget_high_s16(input), vget_high_s16(filter));
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 2; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 8;
+ }
+ // Handle one input channel at a time.
+ for (; ic < input_depth; ic++) {
+ const int16 input_val = *local_input_ptr++ + input_offset;
+ const int16 filter_val = *local_filter_ptr++ + filter_offset;
+ *acc_buffer_ptr++ += static_cast<int32>(filter_val) * input_val;
+ }
+ input_ptr += input_ptr_increment;
+ }
+ }
+};
+
+template <>
+struct QuantizedDepthwiseConvKernel<true, 16, 1> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const uint8* input_ptr, int16 input_offset,
+ int input_ptr_increment, const uint8* filter_ptr,
+ int16 filter_offset, int32* acc_buffer_ptr) {
+ // Load the filters, add filter_offset.
+ uint8x8_t filter_u8[2];
+ for (int i = 0; i < 2; i++) {
+ filter_u8[i] = vld1_u8(filter_ptr + 8 * i);
+ }
+ int16x8_t filter[2];
+ for (int i = 0; i < 2; i++) {
+ filter[i] = vreinterpretq_s16_u16(vmovl_u8(filter_u8[i]));
+ }
+ for (int i = 0; i < 2; i++) {
+ filter[i] = vaddq_s16(filter[i], vdupq_n_s16(filter_offset));
+ }
+ // Handle one output pixel at a time.
+ for (int outp = 0; outp < num_output_pixels; outp++) {
+ // Load the inputs, add input_offset.
+ uint8x8_t input_u8[2];
+ for (int i = 0; i < 2; i++) {
+ input_u8[i] = vld1_u8(input_ptr + 8 * i);
+ }
+ input_ptr += input_ptr_increment;
+ int16x8_t input[2];
+ for (int i = 0; i < 2; i++) {
+ input[i] = vreinterpretq_s16_u16(vmovl_u8(input_u8[i]));
+ }
+ for (int i = 0; i < 2; i++) {
+ input[i] = vaddq_s16(input[i], vdupq_n_s16(input_offset));
+ }
+ // Load the accumulators from acc_buffer
+ int32x4_t acc[4];
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ }
+ // Multiply-accumulate
+ for (int i = 0; i < 2; i++) {
+ acc[2 * i + 0] = vmlal_s16(acc[2 * i + 0], vget_low_s16(input[i]),
+ vget_low_s16(filter[i]));
+ acc[2 * i + 1] = vmlal_s16(acc[2 * i + 1], vget_high_s16(input[i]),
+ vget_high_s16(filter[i]));
+ }
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 4; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 16;
+ }
+ }
+};
+
+template <>
+struct QuantizedDepthwiseConvKernel<true, 1, 16> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const uint8* input_ptr, int16 input_offset,
+ int input_ptr_increment, const uint8* filter_ptr,
+ int16 filter_offset, int32* acc_buffer_ptr) {
+ // Load the filters, add filter_offset.
+ uint8x8_t filter_u8[2];
+ for (int i = 0; i < 2; i++) {
+ filter_u8[i] = vld1_u8(filter_ptr + 8 * i);
+ }
+ int16x8_t filter[2];
+ for (int i = 0; i < 2; i++) {
+ filter[i] = vreinterpretq_s16_u16(vmovl_u8(filter_u8[i]));
+ }
+ for (int i = 0; i < 2; i++) {
+ filter[i] = vaddq_s16(filter[i], vdupq_n_s16(filter_offset));
+ }
+ // Handle one output pixel at a time.
+ for (int outp = 0; outp < num_output_pixels; outp++) {
+ uint8 input_u8 = *input_ptr;
+ input_ptr += input_ptr_increment;
+ int16 input = static_cast<int16>(input_u8 + input_offset);
+ // Load the accumulators from acc_buffer
+ int32x4_t acc[4];
+ for (int i = 0; i < 4; i++) {
+ acc[i] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ }
+ // Multiply-accumulate
+ for (int i = 0; i < 2; i++) {
+ acc[2 * i + 0] =
+ vmlal_n_s16(acc[2 * i + 0], vget_low_s16(filter[i]), input);
+ acc[2 * i + 1] =
+ vmlal_n_s16(acc[2 * i + 1], vget_high_s16(filter[i]), input);
+ }
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 4; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 16;
+ }
+ }
+};
+
+template <>
+struct QuantizedDepthwiseConvKernel<true, 1, 8> {
+ static void Run(int num_output_pixels, int input_depth, int depth_multiplier,
+ const uint8* input_ptr, int16 input_offset,
+ int input_ptr_increment, const uint8* filter_ptr,
+ int16 filter_offset, int32* acc_buffer_ptr) {
+ // Load the filters, add filter_offset.
+ const uint8x8_t filter_u8 = vld1_u8(filter_ptr);
+ const int16x8_t filter = vaddq_s16(
+ vreinterpretq_s16_u16(vmovl_u8(filter_u8)), vdupq_n_s16(filter_offset));
+ // Handle one output pixel at a time.
+ for (int outp = 0; outp < num_output_pixels; outp++) {
+ uint8 input_u8 = *input_ptr;
+ input_ptr += input_ptr_increment;
+ int16 input = static_cast<int16>(input_u8 + input_offset);
+ // Load the accumulators from acc_buffer
+ int32x4_t acc[2];
+ for (int i = 0; i < 2; i++) {
+ acc[i] = vld1q_s32(acc_buffer_ptr + 4 * i);
+ }
+ // Multiply-accumulate
+ acc[0] = vmlal_n_s16(acc[0], vget_low_s16(filter), input);
+ acc[1] = vmlal_n_s16(acc[1], vget_high_s16(filter), input);
+ // Store the accumulators back to acc_buffer
+ for (int i = 0; i < 2; i++) {
+ vst1q_s32(acc_buffer_ptr + 4 * i, acc[i]);
+ }
+ acc_buffer_ptr += 8;
+ }
+ }
+};
+#endif
+
+// Accumulates the effect of one row of the filter, on a segment of one row
+// of the output, accessing the corresponding one row of the input.
+template <bool kAllowStrided, int kFixedInputDepth, int kFixedDepthMultiplier>
+void QuantizedDepthwiseConvAccumRow(
+ int stride, int input_depth, int input_width, const uint8* input_data,
+ int16 input_offset, int pad_width, int depth_multiplier, int filter_width,
+ const uint8* filter_data, int16 filter_offset, int out_x_buffer_start,
+ int out_x_buffer_end, int output_depth, int32* acc_buffer) {
+#ifdef GEMMLOWP_PROFILING
+ gemmlowp::ScopedProfilingLabel label(__PRETTY_FUNCTION__);
+#endif
+ // Sanity check parameters. This is important in particular to ensure
+ // that we keep the number of template instantiations minimal, so we don't
+ // increase binary size unnecessarily.
+ static_assert(kFixedDepthMultiplier || !kFixedInputDepth, "");
+ static_assert(kFixedInputDepth || kAllowStrided, "");
+ DCHECK(stride == 1 || kAllowStrided);
+ if (kFixedInputDepth) {
+ DCHECK_EQ(input_depth, kFixedInputDepth);
+ }
+ if (kFixedDepthMultiplier) {
+ DCHECK_EQ(depth_multiplier, kFixedDepthMultiplier);
+ }
+ DCHECK_EQ(output_depth, input_depth * depth_multiplier);
+ const int input_ptr_increment = stride * input_depth;
+ const uint8* filter_base_ptr = filter_data;
+ for (int filter_x = 0; filter_x < filter_width; ++filter_x) {
+ // For the current (filter_x, filter_y) point in the filter,
+ // compute the boundaries of the corresponding output row segment.
+ int out_x_loop_start_unclampled = 0;
+ int out_x_loop_end_unclampled = 0;
+ if (kAllowStrided) {
+ if (stride == 2) {
+ out_x_loop_start_unclampled = (pad_width - filter_x + 1) / 2;
+ out_x_loop_end_unclampled =
+ (pad_width + input_width - filter_x + 1) / 2;
+ } else if (stride == 4) {
+ out_x_loop_start_unclampled = (pad_width - filter_x + 3) / 4;
+ out_x_loop_end_unclampled =
+ (pad_width + input_width - filter_x + 3) / 4;
+ } else {
+ out_x_loop_start_unclampled =
+ (pad_width - filter_x + stride - 1) / stride;
+ out_x_loop_end_unclampled =
+ (pad_width + input_width - filter_x + stride - 1) / stride;
+ }
+ } else {
+ out_x_loop_start_unclampled = pad_width - filter_x;
+ out_x_loop_end_unclampled = pad_width + input_width - filter_x;
+ }
+ // The kernel will have to iterate on the segment of the
+ // output row that starts at out_x_loop_start and out_x_loop_end.
+ const int out_x_loop_start =
+ std::max(out_x_buffer_start, out_x_loop_start_unclampled);
+ const int out_x_loop_end =
+ std::min(out_x_buffer_end, out_x_loop_end_unclampled);
+
+ int32* acc_buffer_ptr =
+ acc_buffer + (out_x_loop_start - out_x_buffer_start) * output_depth;
+ const int in_x_origin = (out_x_loop_start * stride) - pad_width + filter_x;
+ const uint8* input_ptr = input_data + in_x_origin * input_depth;
+ const int num_output_pixels = out_x_loop_end - out_x_loop_start;
+ QuantizedDepthwiseConvKernel<
+ kAllowStrided, kFixedInputDepth,
+ kFixedDepthMultiplier>::Run(num_output_pixels, input_depth,
+ depth_multiplier, input_ptr, input_offset,
+ input_ptr_increment, filter_base_ptr,
+ filter_offset, acc_buffer_ptr);
+ filter_base_ptr += output_depth;
+ }
+}
+
+// generic fallback of DepthwiseConvAccumRow, portable, non-templatized.
+inline void QuantizedDepthwiseConvAccumRowGeneric(
+ int stride, int input_depth, int input_width, const uint8* input_data,
+ int16 input_offset, int pad_width, int depth_multiplier, int filter_width,
+ const uint8* filter_data, int16 filter_offset, int out_x_buffer_start,
+ int out_x_buffer_end, int output_depth, int32* acc_buffer) {
+ gemmlowp::ScopedProfilingLabel label("DepthwiseConvAccumRowGeneric (slow)");
+ const uint8* filter_base_ptr = filter_data;
+ for (int filter_x = 0; filter_x < filter_width; ++filter_x) {
+ const int out_x_loop_start = std::max(
+ out_x_buffer_start, (pad_width - filter_x + stride - 1) / stride);
+ const int out_x_loop_end =
+ std::min(out_x_buffer_end,
+ (pad_width + input_width - filter_x + stride - 1) / stride);
+
+ int32* acc_buffer_ptr =
+ acc_buffer + (out_x_loop_start - out_x_buffer_start) * output_depth;
+ const int in_x_origin = (out_x_loop_start * stride) - pad_width + filter_x;
+ const uint8* input_ptr = input_data + in_x_origin * input_depth;
+ const int input_ptr_increment = (stride - 1) * input_depth;
+ for (int out_x = out_x_loop_start; out_x < out_x_loop_end; out_x++) {
+ const uint8* filter_ptr = filter_base_ptr;
+ for (int ic = 0; ic < input_depth; ++ic) {
+ const int16 input_val = *input_ptr++ + input_offset;
+ for (int m = 0; m < depth_multiplier; m++) {
+ const int16 filter_val = *filter_ptr++ + filter_offset;
+ *acc_buffer_ptr++ += static_cast<int32>(filter_val) * input_val;
+ }
+ }
+ input_ptr += input_ptr_increment;
+ }
+ filter_base_ptr += output_depth;
+ }
+}
+
+// Initializes the accumulator buffer with bias values.
+inline void DepthwiseConvInitAccBuffer(int num_output_pixels, int output_depth,
+ const int32* bias_data,
+ int32* acc_buffer) {
+ int i = 0;
+#ifdef USE_NEON
+ if (output_depth == 1) {
+ const int32x4_t b = vdupq_n_s32(bias_data[0]);
+ for (; i <= num_output_pixels - 16; i += 16) {
+ vst1q_s32(acc_buffer + i + 0, b);
+ vst1q_s32(acc_buffer + i + 4, b);
+ vst1q_s32(acc_buffer + i + 8, b);
+ vst1q_s32(acc_buffer + i + 12, b);
+ }
+ for (; i <= num_output_pixels - 4; i += 4) {
+ vst1q_s32(acc_buffer + i, b);
+ }
+ } else if (output_depth == 2) {
+ int32x4_t b = vdupq_n_s32(bias_data[0]);
+ b = vsetq_lane_s32(bias_data[1], b, 1);
+ b = vsetq_lane_s32(bias_data[1], b, 3);
+ for (; i <= num_output_pixels - 8; i += 8) {
+ vst1q_s32(acc_buffer + 2 * i + 0, b);
+ vst1q_s32(acc_buffer + 2 * i + 4, b);
+ vst1q_s32(acc_buffer + 2 * i + 8, b);
+ vst1q_s32(acc_buffer + 2 * i + 12, b);
+ }
+ for (; i <= num_output_pixels - 2; i += 2) {
+ vst1q_s32(acc_buffer + 2 * i, b);
+ }
+ } else if (output_depth == 4) {
+ const int32x4_t b = vld1q_s32(bias_data);
+ for (; i <= num_output_pixels - 4; i += 4) {
+ vst1q_s32(acc_buffer + 4 * i + 0, b);
+ vst1q_s32(acc_buffer + 4 * i + 4, b);
+ vst1q_s32(acc_buffer + 4 * i + 8, b);
+ vst1q_s32(acc_buffer + 4 * i + 12, b);
+ }
+ for (; i < num_output_pixels; i++) {
+ vst1q_s32(acc_buffer + 4 * i, b);
+ }
+ } else if (output_depth == 8) {
+ const int32x4_t b0 = vld1q_s32(bias_data);
+ const int32x4_t b1 = vld1q_s32(bias_data + 4);
+ for (; i <= num_output_pixels - 2; i += 2) {
+ vst1q_s32(acc_buffer + 8 * i + 0, b0);
+ vst1q_s32(acc_buffer + 8 * i + 4, b1);
+ vst1q_s32(acc_buffer + 8 * i + 8, b0);
+ vst1q_s32(acc_buffer + 8 * i + 12, b1);
+ }
+ for (; i < num_output_pixels; i++) {
+ vst1q_s32(acc_buffer + 8 * i + 0, b0);
+ vst1q_s32(acc_buffer + 8 * i + 4, b1);
+ }
+ } else if (output_depth == 16) {
+ const int32x4_t b0 = vld1q_s32(bias_data);
+ const int32x4_t b1 = vld1q_s32(bias_data + 4);
+ const int32x4_t b2 = vld1q_s32(bias_data + 8);
+ const int32x4_t b3 = vld1q_s32(bias_data + 12);
+ for (; i < num_output_pixels; i++) {
+ vst1q_s32(acc_buffer + 16 * i + 0, b0);
+ vst1q_s32(acc_buffer + 16 * i + 4, b1);
+ vst1q_s32(acc_buffer + 16 * i + 8, b2);
+ vst1q_s32(acc_buffer + 16 * i + 12, b3);
+ }
+ }
+#endif
+ for (; i < num_output_pixels; i++) {
+ memcpy(acc_buffer + i * output_depth, bias_data,
+ sizeof(acc_buffer[0]) * output_depth);
+ }
+}
+
+template <FusedActivationFunctionType Ac>
+void DepthwiseConv(const uint8* input_data, const Dims<4>& input_dims,
+ int32 input_offset, const uint8* filter_data,
+ const Dims<4>& filter_dims, int32 filter_offset,
+ const int32* bias_data, const Dims<4>& bias_dims,
+ int stride_width, int stride_height,
+ int pad_width, int pad_height, int depth_multiplier,
+ int32 output_offset, int32 output_multiplier,
+ int output_shift, int32 output_activation_min,
+ int32 output_activation_max, uint8* output_data,
+ const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("DepthwiseConv/8bit");
+ static_assert(Ac == FusedActivationFunctionType::kNone ||
+ Ac == FusedActivationFunctionType::kRelu ||
+ Ac == FusedActivationFunctionType::kRelu6 ||
+ Ac == FusedActivationFunctionType::kRelu1,
+ "");
+ DCHECK_LE(output_activation_min, output_activation_max);
+ if (Ac == FusedActivationFunctionType::kNone) {
+ DCHECK_EQ(output_activation_min, 0);
+ DCHECK_EQ(output_activation_max, 255);
+ }
+ const int batches = MatchingArraySize(input_dims, 3, output_dims, 3);
+ const int output_depth = MatchingArraySize(filter_dims, 0, output_dims, 0);
+ const int input_height = ArraySize(input_dims, 2);
+ const int input_width = ArraySize(input_dims, 1);
+ const int input_depth = ArraySize(input_dims, 0);
+ const int filter_height = ArraySize(filter_dims, 2);
+ const int filter_width = ArraySize(filter_dims, 1);
+ const int output_height = ArraySize(output_dims, 2);
+ const int output_width = ArraySize(output_dims, 1);
+ DCHECK(output_depth == input_depth * depth_multiplier);
+
+ static const int kAccBufferMaxSize = 1024;
+ int32 acc_buffer[kAccBufferMaxSize];
+ DCHECK_GE(kAccBufferMaxSize, output_depth);
+ const int kOutputPixelsInAccBuffer = kAccBufferMaxSize / output_depth;
+ const int kAccBufferActualSize = kOutputPixelsInAccBuffer * output_depth;
+ DCHECK_LE(kOutputPixelsInAccBuffer * output_depth, kAccBufferActualSize);
+ DCHECK_LE(kAccBufferActualSize, kAccBufferMaxSize);
+ DCHECK_GE(kOutputPixelsInAccBuffer, 1);
+
+ // row_accum_func will point to the core accumulation function to be used
+ // for this DepthwiseConv op.
+ auto* row_accum_func = QuantizedDepthwiseConvAccumRowGeneric;
+
+ const int kMaxFixedDepthMultiplier = 16;
+ int fixed_depth_multiplier = 0;
+ if (depth_multiplier <= kMaxFixedDepthMultiplier) {
+ fixed_depth_multiplier = depth_multiplier;
+ }
+ // kMaxUnrolling is the max number of output values that we aim to handle
+ // in one unrolled iteration of the inner loop. For practical performance
+ // reasons, it is limited by the number of available registers. We could
+ // fine-tune it depending on the architecture, but that's not worth doing
+ // since this whole code is not very optimized to begin with. The
+ // present value reflects what's realistic on ARM 32bit NEON with 16 128-bit
+ // vector registers.
+ const int kMaxUnrolling = 16;
+ int fixed_input_depth = 0;
+ if (fixed_depth_multiplier &&
+ input_depth * fixed_depth_multiplier <= kMaxUnrolling) {
+ fixed_input_depth = input_depth;
+ }
+#define TFMINI_USE_DEPTHWISECONV_KERNEL(ALLOW_STRIDED, FIXED_INPUT_DEPTH, \
+ FIXED_DEPTH_MULTIPLIER) \
+ if ((stride_width == 1 || ALLOW_STRIDED) && \
+ fixed_input_depth == FIXED_INPUT_DEPTH && \
+ fixed_depth_multiplier == FIXED_DEPTH_MULTIPLIER) { \
+ row_accum_func = \
+ QuantizedDepthwiseConvAccumRow<ALLOW_STRIDED, FIXED_INPUT_DEPTH, \
+ FIXED_DEPTH_MULTIPLIER>; \
+ }
+
+#ifdef USE_NEON
+ TFMINI_USE_DEPTHWISECONV_KERNEL(true, 0, 1)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(true, 0, 2)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(true, 0, 3)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(false, 1, 2)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(false, 2, 2)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(false, 4, 2)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(true, 8, 2)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(false, 1, 4)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(false, 4, 1)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(false, 4, 4)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(true, 16, 1)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(true, 1, 16)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(false, 8, 1)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(false, 2, 8)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(false, 2, 1)
+ TFMINI_USE_DEPTHWISECONV_KERNEL(true, 1, 8)
+#endif // USE_NEON
+
+#undef TFMINI_USE_DEPTHWISECONV_KERNEL
+
+ // Now that we have determined row_accum_func, we can start work.
+ uint8* output_ptr = output_data;
+ for (int b = 0; b < batches; ++b) {
+ for (int out_y = 0; out_y < output_height; ++out_y) {
+ const int in_y_origin = (out_y * stride_height) - pad_height;
+ const int filter_y_start = std::max(0, -in_y_origin);
+ const int filter_y_end =
+ std::min(filter_height, input_height - in_y_origin);
+ for (int out_x_buffer_start = 0; out_x_buffer_start < output_width;
+ out_x_buffer_start += kOutputPixelsInAccBuffer) {
+ const int out_x_buffer_end = std::min(
+ output_width, out_x_buffer_start + kOutputPixelsInAccBuffer);
+ // We call a 'pixel' a group of activation that share all but the
+ // 'depth'/'channel' coordinate. num_output_pixels is the number of
+ // output pixels that we will accumulate in this loop iteration.
+ const int num_output_pixels = out_x_buffer_end - out_x_buffer_start;
+ // Initialize our local accumulator with the bias values, so we don't
+ // have to add them later.
+ DepthwiseConvInitAccBuffer(num_output_pixels, output_depth, bias_data,
+ acc_buffer);
+ // Accumulation loop. Most of the time should be spent in here.
+ for (int filter_y = filter_y_start; filter_y < filter_y_end;
+ ++filter_y) {
+ const int in_y = in_y_origin + filter_y;
+ row_accum_func(
+ stride_width, input_depth, input_width,
+ input_data + in_y * input_dims.strides[2] +
+ b * input_dims.strides[3],
+ input_offset, pad_width, depth_multiplier, filter_width,
+ filter_data + filter_y * filter_dims.strides[2], filter_offset,
+ out_x_buffer_start, out_x_buffer_end, output_depth, acc_buffer);
+ }
+ // Finished accumulating int32 values. Now need to convert them to
+ // the final 8bit form and store them.
+ gemmlowp::ScopedProfilingLabel label("downquantize+store");
+ const int num_output_values = output_depth * num_output_pixels;
+ int i = 0;
+#ifdef USE_NEON
+ using gemmlowp::RoundingDivideByPOT;
+ const int32x4_t output_offset_vec = vdupq_n_s32(output_offset);
+ const int32x4_t output_activation_min_vec =
+ vdupq_n_s32(output_activation_min);
+ const int32x4_t output_activation_max_vec =
+ vdupq_n_s32(output_activation_max);
+ // Handle 16 values at once.
+ // This allows us to issue 4 mutually independent int32
+ // multiplications (vqrdmulh), which should alleviate most of their
+ // high latency.
+ for (; i <= num_output_values - 16; i += 16) {
+ int32x4_t acc[4];
+ for (int j = 0; j < 4; j++) {
+ acc[j] = vld1q_s32(acc_buffer + i + 4 * j);
+ }
+
+ // Fixed-point multiplication.
+ for (int j = 0; j < 4; j++) {
+ acc[j] = vqrdmulhq_n_s32(acc[j], output_multiplier);
+ }
+ for (int j = 0; j < 4; j++) {
+ acc[j] = RoundingDivideByPOT(acc[j], output_shift);
+ }
+ // Add the output offset.
+ for (int j = 0; j < 4; j++) {
+ acc[j] = vaddq_s32(acc[j], output_offset_vec);
+ }
+ // Apply the activation function.
+ if (Ac != FusedActivationFunctionType::kNone) {
+ for (int j = 0; j < 4; j++) {
+ acc[j] = vmaxq_s32(acc[j], output_activation_min_vec);
+ }
+ for (int j = 0; j < 4; j++) {
+ acc[j] = vminq_s32(acc[j], output_activation_max_vec);
+ }
+ }
+ // Saturating cast to uint8 and store to destination.
+ int16x4_t acc_s16[4];
+ for (int j = 0; j < 4; j++) {
+ acc_s16[j] = vqmovn_s32(acc[j]);
+ }
+ const int16x8_t res_s16_0 = vcombine_s16(acc_s16[0], acc_s16[1]);
+ const int16x8_t res_s16_1 = vcombine_s16(acc_s16[2], acc_s16[3]);
+ const uint8x8_t res_u8_0 = vqmovun_s16(res_s16_0);
+ const uint8x8_t res_u8_1 = vqmovun_s16(res_s16_1);
+ vst1q_u8(output_ptr, vcombine_u8(res_u8_0, res_u8_1));
+ output_ptr += 16;
+ }
+ // Handle 8 values at once.
+ // Not as good as 16 (now we're only issuing 2 mutually independent
+ // vqrdmulh instructions, so we're probably paying for their high
+ // latency).
+ for (; i <= num_output_values - 8; i += 8) {
+ int32x4_t acc0 = vld1q_s32(acc_buffer + i);
+ int32x4_t acc1 = vld1q_s32(acc_buffer + i + 4);
+ // Fixed-point multiplication.
+ acc0 = vqrdmulhq_n_s32(acc0, output_multiplier);
+ acc1 = vqrdmulhq_n_s32(acc1, output_multiplier);
+ // Rounding right shift.
+ acc0 = RoundingDivideByPOT(acc0, output_shift);
+ acc1 = RoundingDivideByPOT(acc1, output_shift);
+ // Add the output offset.
+ acc0 = vaddq_s32(acc0, output_offset_vec);
+ acc1 = vaddq_s32(acc1, output_offset_vec);
+ // Apply the activation function.
+ if (Ac != FusedActivationFunctionType::kNone) {
+ acc0 = vmaxq_s32(acc0, output_activation_min_vec);
+ acc1 = vmaxq_s32(acc1, output_activation_min_vec);
+ acc0 = vminq_s32(acc0, output_activation_max_vec);
+ acc1 = vminq_s32(acc1, output_activation_max_vec);
+ }
+ // Saturating cast to uint8 and store to destination.
+ const int16x4_t acc0_s16 = vqmovn_s32(acc0);
+ const int16x4_t acc1_s16 = vqmovn_s32(acc1);
+ const int16x8_t res_s16 = vcombine_s16(acc0_s16, acc1_s16);
+ const uint8x8_t res_u8 = vqmovun_s16(res_s16);
+ vst1_u8(output_ptr, res_u8);
+ output_ptr += 8;
+ }
+ // Handle 4 values at once. Now we're paying the full price of the
+ // high latency of vqrdmulh. Also, storing only 4 bytes at the end
+ // (without any alignment) can only be done 1 byte at a time.
+ // Yet, that is still worth doing to minimize the amount of leftover
+ // that will have to go through the very slow scalar code.
+ for (; i <= num_output_values - 4; i += 4) {
+ int32x4_t acc = vld1q_s32(acc_buffer + i);
+ // Fixed-point multiplication.
+ acc = vqrdmulhq_n_s32(acc, output_multiplier);
+ // Rounding right shift.
+ acc = RoundingDivideByPOT(acc, output_shift);
+ // Add the output offset.
+ acc = vaddq_s32(acc, output_offset_vec);
+ // Apply the activation function.
+ if (Ac != FusedActivationFunctionType::kNone) {
+ acc = vmaxq_s32(acc, output_activation_min_vec);
+ acc = vminq_s32(acc, output_activation_max_vec);
+ }
+ // Saturating cast to uint8 and store to destination.
+ const int16x4_t acc_s16 = vqmovn_s32(acc);
+ const int16x8_t res_s16 = vcombine_s16(acc_s16, acc_s16);
+ const uint8x8_t res_u8 = vqmovun_s16(res_s16);
+ vst1_lane_u8(output_ptr + 0, res_u8, 0);
+ vst1_lane_u8(output_ptr + 1, res_u8, 1);
+ vst1_lane_u8(output_ptr + 2, res_u8, 2);
+ vst1_lane_u8(output_ptr + 3, res_u8, 3);
+ output_ptr += 4;
+ }
+#endif // USE_NEON
+
+ // Handle leftover values, one by one. This is very slow.
+ for (; i < num_output_values; i++) {
+ int32 acc = acc_buffer[i];
+ acc = MultiplyByQuantizedMultiplierSmallerThanOne(
+ acc, output_multiplier, output_shift);
+ acc += output_offset;
+ acc = std::max(acc, output_activation_min);
+ acc = std::min(acc, output_activation_max);
+ *output_ptr++ = static_cast<uint8>(acc);
+ }
+ }
+ }
+ }
+}
+
+} // namespace optimized_ops
+} // namespace rt
+} // namespace nnfw
+
+#endif // __NNFW_RT_OPTIMIZED_OPS_DEPTHWISECONV_UINT8_H__
diff --git a/runtimes/nn/common/operations/internal/optimized/neon_tensor_utils.cc b/runtimes/nn/common/operations/internal/optimized/neon_tensor_utils.cc
new file mode 100644
index 000000000..7af122517
--- /dev/null
+++ b/runtimes/nn/common/operations/internal/optimized/neon_tensor_utils.cc
@@ -0,0 +1,217 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <string.h>
+
+#include "ActivationFunctor.h"
+#include "tensor_utils_impl.h"
+
+#ifdef USE_NEON
+
+#include <arm_neon.h>
+#define kFloatWeightsPerNeonLane 4
+
+namespace nnfw {
+namespace rt {
+namespace tensor_utils {
+
+void NeonMatrixBatchVectorMultiplyAccumulate(const float* matrix, int m_rows,
+ int m_cols, const float* vector,
+ int n_batch, float* result,
+ int result_stride) {
+ // If v_size is not divisible by kWeightsPerNeonLane, we cannot use the main
+ // vectorized loop, and we need to process sequentially. postamble_start shows
+ // the start index where this should happen.
+ const int postamble_start =
+ m_cols - (m_cols & (kFloatWeightsPerNeonLane - 1));
+
+ // The arrays used to cache the vector.
+ float32x4_t* vector_cache_float32x4 =
+ new float32x4_t[(m_cols / kFloatWeightsPerNeonLane) *
+ sizeof(float32x4_t)];
+
+ for (int b = 0; b < n_batch; b++) {
+ float* result_in_batch = result + b * m_rows;
+ const float* vector_in_batch = vector + b * m_cols;
+ const float* matrix_ptr = matrix;
+ for (int c = 0; c < postamble_start; c += kFloatWeightsPerNeonLane) {
+ vector_cache_float32x4[c >> 2] = vld1q_f32(vector_in_batch + c);
+ }
+ for (int r = 0; r < m_rows; r++) {
+ float32x4_t acc_32x4 = vmovq_n_f32(0.0);
+ for (int c = 0; c < postamble_start; c += kFloatWeightsPerNeonLane) {
+ float32x4_t temp = vector_cache_float32x4[c >> 2];
+ // Load 4 float values from vector1 and vector2 and accumulator.
+ float32x4_t v1_f32x4 = vld1q_f32(matrix_ptr + c);
+ // Vector multiply-accumulate 4 float
+ acc_32x4 = vmlaq_f32(acc_32x4, v1_f32x4, temp);
+ }
+ // Add the 4 intermediate sum values to get the final dot-prod value for
+ // this column.
+ *result_in_batch +=
+ (vgetq_lane_f32(acc_32x4, 0) + vgetq_lane_f32(acc_32x4, 1) +
+ vgetq_lane_f32(acc_32x4, 2) + vgetq_lane_f32(acc_32x4, 3));
+ for (int c = postamble_start; c < m_cols; c++) {
+ *result_in_batch += matrix_ptr[c] * vector_in_batch[c];
+ }
+ matrix_ptr += m_cols;
+ result_in_batch += result_stride;
+ }
+ }
+ delete[] vector_cache_float32x4;
+}
+
+void NeonVectorVectorCwiseProduct(const float* vector1, const float* vector2,
+ int v_size, float* result) {
+ // If v_size is not divisible by kWeightsPerNeonLane, we cannot use the main
+ // vectorized loop, and we need to process sequentially. postamble_start shows
+ // the start index where this should happen.
+ const int postamble_start =
+ v_size - (v_size & (kFloatWeightsPerNeonLane - 1));
+ for (int v = 0; v < postamble_start; v += kFloatWeightsPerNeonLane) {
+ // Load 4 float values from vector1 and vector2.
+ float32x4_t v1_f32x4 = vld1q_f32(vector1 + v);
+ float32x4_t v2_f32x4 = vld1q_f32(vector2 + v);
+ // Vector multiply 4 float
+ float32x4_t mul_32x4 = vmulq_f32(v1_f32x4, v2_f32x4);
+ // Save to result array.
+ vst1q_f32(&result[v], mul_32x4);
+ }
+ for (int v = postamble_start; v < v_size; v++) {
+ result[v] = vector1[v] * vector2[v];
+ }
+}
+
+void NeonVectorVectorCwiseProductAccumulate(const float* vector1,
+ const float* vector2, int v_size,
+ float* result) {
+ // If v_size is not divisible by kWeightsPerNeonLane, we cannot use the main
+ // vectorized loop, and we need to process sequentially. postamble_start shows
+ // the start index where this should happen.
+ const int postamble_start =
+ v_size - (v_size & (kFloatWeightsPerNeonLane - 1));
+ for (int v = 0; v < postamble_start; v += kFloatWeightsPerNeonLane) {
+ // Load 4 float values from vector1 and vector2 and accumulator.
+ float32x4_t v1_f32x4 = vld1q_f32(vector1 + v);
+ float32x4_t v2_f32x4 = vld1q_f32(vector2 + v);
+ float32x4_t acc_32x4 = vld1q_f32(result + v);
+ // Vector multiply-accumulate 4 float
+ acc_32x4 = vmlaq_f32(acc_32x4, v1_f32x4, v2_f32x4);
+ // Save to result array.
+ vst1q_f32(&result[v], acc_32x4);
+ }
+ for (int v = postamble_start; v < v_size; v++) {
+ result[v] += vector1[v] * vector2[v];
+ }
+}
+
+void NeonVectorBatchVectorCwiseProductAccumulate(const float* vector,
+ int v_size,
+ const float* batch_vector,
+ int n_batch, float* result) {
+ // If v_size is not divisible by kWeightsPerNeonLane, we cannot use the main
+ // vectorized loop, and we need to process sequentially. postamble_start shows
+ // the start index where this should happen.
+ const int postamble_start =
+ v_size - (v_size & (kFloatWeightsPerNeonLane - 1));
+
+ // The arrays used to cache the vector.
+ float32x4_t* vector_cache_float32x4 =
+ new float32x4_t[(v_size / kFloatWeightsPerNeonLane) *
+ sizeof(float32x4_t)];
+ for (int v = 0; v < postamble_start; v += kFloatWeightsPerNeonLane) {
+ vector_cache_float32x4[v >> 2] = vld1q_f32(vector + v);
+ }
+
+ float* result_ptr = result;
+ const float* batch_vector_ptr = batch_vector;
+ for (int b = 0; b < n_batch; b++) {
+ for (int v = 0; v < postamble_start; v += kFloatWeightsPerNeonLane) {
+ // Load from memory to vectors.
+ float32x4_t result_f32x4 = vld1q_f32(result_ptr + v);
+ float32x4_t batch_vector_f32x4 = vld1q_f32(batch_vector_ptr + v);
+ // Multiply-accumulate.
+ result_f32x4 = vmlaq_f32(result_f32x4, batch_vector_f32x4,
+ vector_cache_float32x4[v >> 2]);
+ // Store.
+ vst1q_f32(result_ptr + v, result_f32x4);
+ }
+ // Postamble loop
+ for (int v = postamble_start; v < v_size; v++) {
+ result_ptr[v] += vector[v] * batch_vector_ptr[v];
+ }
+ // Update the pointers.
+ result_ptr += v_size;
+ batch_vector_ptr += v_size;
+ }
+ delete[] vector_cache_float32x4;
+}
+
+void NeonSub1Vector(const float* vector, int v_size, float* result) {
+ // If v_size is not divisible by kWeightsPerNeonLane, we cannot use the main
+ // vectorized loop, and we need to process sequentially. postamble_start shows
+ // the start index where this should happen.
+ const int postamble_start =
+ v_size - (v_size & (kFloatWeightsPerNeonLane - 1));
+
+ float32x4_t one_f32x4 = vmovq_n_f32(1.0);
+ for (int v = 0; v < postamble_start; v += kFloatWeightsPerNeonLane) {
+ // Load 4 float values from the current pointers of the input column and
+ // subtract from 1.
+ float32x4_t v_f32x4 = vld1q_f32(vector + v);
+ float32x4_t result_f32x4 = vsubq_f32(one_f32x4, v_f32x4);
+ // Save to output.
+ vst1q_f32(result + v, result_f32x4);
+ }
+ for (int v = postamble_start; v < v_size; v++) {
+ result[v] = 1.0f - vector[v];
+ }
+}
+
+void NeonClipVector(const float* vector, int v_size, float abs_limit,
+ float* result) {
+ // If v_size is not divisible by kWeightsPerNeonLane, we cannot use the main
+ // vectorized loop, and we need to process sequentially. postamble_start shows
+ // the start index where this should happen.
+ const int postamble_start =
+ v_size - (v_size & (kFloatWeightsPerNeonLane - 1));
+
+ // Replicate abs_limit and -abs_limit in two vectors.
+ const float32x4_t abs_limit_f32x4 = vmovq_n_f32(abs_limit);
+ const float32x4_t neg_abs_limit_f32x4 = vmovq_n_f32(-abs_limit);
+
+ for (int v = 0; v < postamble_start; v += kFloatWeightsPerNeonLane) {
+ // Load from memory to vector.
+ float32x4_t v_f32x4 = vld1q_f32(vector + v);
+ // Clip between abs_limit and -abs_limit.
+ float32x4_t result_f32x4 = vminq_f32(abs_limit_f32x4, v_f32x4);
+ result_f32x4 = vmaxq_f32(neg_abs_limit_f32x4, result_f32x4);
+ // Save to output.
+ vst1q_f32(result + v, result_f32x4);
+ }
+ // Postamble loop.
+ for (int v = postamble_start; v < v_size; v++) {
+ result[v] = (abs_limit < vector[v]) ? abs_limit : vector[v];
+ result[v] = (-abs_limit > result[v]) ? -abs_limit : result[v];
+ }
+}
+
+} // namespace tensor_utils
+} // namespace rt
+} // namespace nnfw
+
+#endif // USE_NEON
diff --git a/runtimes/nn/common/operations/internal/optimized/neon_tensor_utils.h b/runtimes/nn/common/operations/internal/optimized/neon_tensor_utils.h
new file mode 100644
index 000000000..2a6f31572
--- /dev/null
+++ b/runtimes/nn/common/operations/internal/optimized/neon_tensor_utils.h
@@ -0,0 +1,119 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_NEON_TENSOR_UTILS_H__
+#define __NNFW_RT_NEON_TENSOR_UTILS_H__
+
+#include "ActivationFunctor.h"
+#include "cpu_check.h"
+#include "tensor_utils_impl.h"
+
+namespace nnfw {
+namespace rt {
+namespace tensor_utils {
+
+void MatrixBatchVectorMultiplyAccumulate(const float* matrix, int m_rows,
+ int m_cols, const float* vector,
+ int n_batch, float* result,
+ int result_stride) {
+ NEON_OR_PORTABLE(MatrixBatchVectorMultiplyAccumulate, matrix, m_rows, m_cols,
+ vector, n_batch, result, result_stride);
+}
+
+void VectorVectorCwiseProduct(const float* vector1, const float* vector2,
+ int v_size, float* result) {
+ NEON_OR_PORTABLE(VectorVectorCwiseProduct, vector1, vector2, v_size, result);
+}
+
+void VectorVectorCwiseProductAccumulate(const float* vector1,
+ const float* vector2, int v_size,
+ float* result) {
+ NEON_OR_PORTABLE(VectorVectorCwiseProductAccumulate, vector1, vector2, v_size,
+ result);
+}
+
+void VectorBatchVectorCwiseProductAccumulate(const float* vector, int v_size,
+ const float* batch_vector,
+ int n_batch, float* result) {
+ NEON_OR_PORTABLE(VectorBatchVectorCwiseProductAccumulate, vector, v_size,
+ batch_vector, n_batch, result);
+}
+
+float VectorVectorDotProduct(const float* vector1, const float* vector2,
+ int v_size) {
+ return PortableVectorVectorDotProduct(vector1, vector2, v_size);
+}
+
+void BatchVectorBatchVectorDotProduct(const float* vector1,
+ const float* vector2, int v_size,
+ int n_batch, float* result,
+ int result_stride) {
+ PortableBatchVectorBatchVectorDotProduct(vector1, vector2, v_size, n_batch,
+ result, result_stride);
+}
+
+void VectorBatchVectorAssign(const float* vector, int v_size, int n_batch,
+ float* batch_vector) {
+ PortableVectorBatchVectorAssign(vector, v_size, n_batch, batch_vector);
+}
+
+void ApplySigmoidToVector(const float* vector, int v_size, float* result) {
+ PortableApplySigmoidToVector(vector, v_size, result);
+}
+
+void ApplyActivationToVector(const float* vector, int v_size,
+ ActivationFn activation, float* result) {
+ PortableApplyActivationToVector(vector, v_size, activation, result);
+}
+
+void CopyVector(const float* vector, int v_size, float* result) {
+ PortableCopyVector(vector, v_size, result);
+}
+
+void Sub1Vector(const float* vector, int v_size, float* result) {
+ NEON_OR_PORTABLE(Sub1Vector, vector, v_size, result);
+}
+
+void ZeroVector(float* vector, int v_size) {
+ PortableZeroVector(vector, v_size);
+}
+
+float Clip(float f, float abs_limit) { return PortableClip(f, abs_limit); }
+
+void ClipVector(const float* vector, int v_size, float abs_limit,
+ float* result) {
+ NEON_OR_PORTABLE(ClipVector, vector, v_size, abs_limit, result);
+}
+
+// TODO(ghodrat): Implement Neon version.
+void VectorShiftLeft(float* vector, int v_size, float shift_value) {
+ PortableVectorShiftLeft(vector, v_size, shift_value);
+}
+
+// TODO(ghodrat): Implement Neon version.
+void ReductionSumVector(const float* input_vector, int input_stride,
+ float* output_vector, int output_size,
+ int reduction_size) {
+ PortableReductionSumVector(input_vector, input_stride, output_vector,
+ output_size, reduction_size);
+}
+
+} // namespace tensor_utils
+} // namespace rt
+} // namespace nnfw
+
+#endif // __NNFW_RT_NEON_TENSOR_UTILS_H__
diff --git a/runtimes/nn/common/operations/internal/optimized/optimized_ops.h b/runtimes/nn/common/operations/internal/optimized/optimized_ops.h
new file mode 100644
index 000000000..33862a0d7
--- /dev/null
+++ b/runtimes/nn/common/operations/internal/optimized/optimized_ops.h
@@ -0,0 +1,2717 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_OPTIMIZED_OPS_H__
+#define __NNFW_RT_OPTIMIZED_OPS_H__
+
+#include <assert.h>
+#include <stdint.h>
+#include <sys/types.h>
+#include <algorithm>
+#include <cmath>
+#include <limits>
+#include <memory>
+#include <tuple>
+#include <type_traits>
+
+#include "Eigen/Core"
+#include "fixedpoint.h"
+#include "gemmlowp.h"
+#include "../common.h"
+#include "../types.h"
+
+namespace nnfw {
+namespace rt {
+namespace optimized_ops {
+
+// Make a local VectorMap typedef allowing to map a float array
+// as a Eigen vector expression. The std::conditional here is to
+// construct the suitable Eigen type for the constness of the
+// data. Indeed, for const data, we need to produce
+// Eigen::Map<const Eigen::Matrix<float, ...>>
+// and not the more straightforward
+// Eigen::Map<Eigen::Matrix<const float, ...>>
+template <typename Scalar>
+using VectorMap = typename std::conditional<
+ std::is_const<Scalar>::value,
+ Eigen::Map<const Eigen::Matrix<typename std::remove_const<Scalar>::type,
+ Eigen::Dynamic, 1>>,
+ Eigen::Map<Eigen::Matrix<Scalar, Eigen::Dynamic, 1>>>::type;
+
+template <typename Scalar, int N>
+VectorMap<Scalar> MapAsVector(Scalar* data, const Dims<N>& dims) {
+ const int size = RequiredBufferSizeForDims(dims);
+ return VectorMap<Scalar>(data, size, 1);
+}
+
+// Make a local VectorMap typedef allowing to map a float array
+// as a Eigen matrix expression. The same explanation as for VectorMap
+// above also applies here.
+template <typename Scalar>
+using MatrixMap = typename std::conditional<
+ std::is_const<Scalar>::value,
+ Eigen::Map<const Eigen::Matrix<typename std::remove_const<Scalar>::type,
+ Eigen::Dynamic, Eigen::Dynamic>>,
+ Eigen::Map<Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic>>>::type;
+
+template <typename Scalar, int N>
+MatrixMap<Scalar> MapAsMatrixWithFirstDimAsRows(Scalar* data,
+ const Dims<N>& dims) {
+ const int rows = dims.sizes[0];
+ int cols = 1;
+ for (int d = 1; d < N; d++) {
+ cols *= dims.sizes[d];
+ }
+ return MatrixMap<Scalar>(data, rows, cols);
+}
+
+template <typename Scalar, int N>
+MatrixMap<Scalar> MapAsMatrixWithLastDimAsCols(Scalar* data,
+ const Dims<N>& dims) {
+ const int cols = dims.sizes[N - 1];
+ int rows = 1;
+ for (int d = 0; d < N - 1; d++) {
+ rows *= dims.sizes[d];
+ }
+ return MatrixMap<Scalar>(data, rows, cols);
+}
+
+template <typename Scalar>
+using ArrayMap = typename std::conditional<
+ std::is_const<Scalar>::value,
+ Eigen::Map<const Eigen::Array<typename std::remove_const<Scalar>::type,
+ Eigen::Dynamic, Eigen::Dynamic>>,
+ Eigen::Map<Eigen::Array<Scalar, Eigen::Dynamic, Eigen::Dynamic>>>::type;
+
+template <typename Scalar, int N>
+ArrayMap<Scalar> MapAsArrayWithFirstDimAsRows(Scalar* data,
+ const Dims<N>& dims) {
+ const int rows = dims.sizes[0];
+ int cols = 1;
+ for (int d = 1; d < N; d++) {
+ cols *= dims.sizes[d];
+ }
+ return ArrayMap<Scalar>(data, rows, cols);
+}
+
+// TODO(b/62193649): this function is only needed as long
+// as we have the --variable_batch hack.
+template <typename Scalar, int N>
+MatrixMap<Scalar> MapAsMatrixWithGivenNumberOfRows(Scalar* data,
+ const Dims<N>& dims,
+ int rows) {
+ int cols = 1;
+ bool matched_rows = false;
+ for (int d = 0; d < N; d++) {
+ cols *= dims.sizes[d];
+ if (cols == rows) {
+ matched_rows = true;
+ cols = 1;
+ }
+ }
+ DCHECK(matched_rows);
+ return MatrixMap<Scalar>(data, rows, cols);
+}
+
+// DO NOT USE THIS STRUCT FOR NEW FUNCTIONALITY BEYOND IMPLEMENTING ELEMENT-WISE
+// BROADCASTING.
+//
+// NdArrayDesc<N> describes the shape and memory layout of an N-dimensional
+// rectangular array of numbers.
+//
+// NdArrayDesc<N> is basically identical to Dims<N> defined in types.h.
+// However, as Dims<N> is to be deprecated, this class exists as an adaptor
+// to enable simple unoptimized implementations of element-wise broadcasting
+// operations.
+template<int N>
+struct NdArrayDesc {
+ // The "extent" of each dimension. Indices along dimension d must be in the
+ // half-open interval [0, extents[d]).
+ int extents[N];
+
+ // The number of *elements* (not bytes) between consecutive indices of each
+ // dimension.
+ int strides[N];
+};
+
+// DO NOT USE THIS FUNCTION FOR NEW FUNCTIONALITY BEYOND IMPLEMENTING
+// ELEMENT-WISE BROADCASTING.
+//
+// Same as Offset(), except takes as NdArrayDesc<N> instead of Dims<N>.
+inline int SubscriptToIndex(const NdArrayDesc<4>& desc, int i0, int i1, int i2,
+ int i3) {
+ DCHECK(i0 >= 0 && i0 < desc.extents[0]);
+ DCHECK(i1 >= 0 && i1 < desc.extents[1]);
+ DCHECK(i2 >= 0 && i2 < desc.extents[2]);
+ DCHECK(i3 >= 0 && i3 < desc.extents[3]);
+ return i0 * desc.strides[0] + i1 * desc.strides[1] + i2 * desc.strides[2] +
+ i3 * desc.strides[3];
+}
+
+// Given the dimensions of the operands for an element-wise binary broadcast,
+// adjusts them so that they can be directly iterated over with simple loops.
+// Returns the adjusted dims as instances of NdArrayDesc in 'desc0_out' and
+// 'desc1_out'. 'desc0_out' and 'desc1_out' cannot be nullptr.
+//
+// This function assumes that the two input shapes are compatible up to
+// broadcasting and the shorter one has already been prepended with 1s to be the
+// same length. E.g., if shape0 is (1, 16, 16, 64) and shape1 is (1, 64),
+// shape1 must already have been prepended to be (1, 1, 1, 64). Recall that
+// Dims<N> refer to shapes in reverse order. In this case, input0_dims will be
+// (64, 16, 16, 1) and input1_dims will be (64, 1, 1, 1).
+//
+// When two shapes are compatible up to broadcasting, for each dimension d,
+// the input extents are either equal, or one of them is 1.
+//
+// This function performs the following for each dimension d:
+// - If the extents are equal, then do nothing since the loop that walks over
+// both of the input arrays is correct.
+// - Otherwise, one (and only one) of the extents must be 1. Say extent0 is 1
+// and extent1 is e1. Then set extent0 to e1 and stride0 *to 0*. This allows
+// array0 to be referenced *at any index* in dimension d and still access the
+// same slice.
+template <int N>
+inline void NdArrayDescsForElementwiseBroadcast(const Dims<N>& input0_dims,
+ const Dims<N>& input1_dims,
+ NdArrayDesc<N>* desc0_out,
+ NdArrayDesc<N>* desc1_out) {
+ DCHECK(desc0_out != nullptr);
+ DCHECK(desc1_out != nullptr);
+
+ // Copy dims to desc.
+ for (int i = 0; i < N; ++i) {
+ desc0_out->extents[i] = input0_dims.sizes[i];
+ desc0_out->strides[i] = input0_dims.strides[i];
+ desc1_out->extents[i] = input1_dims.sizes[i];
+ desc1_out->strides[i] = input1_dims.strides[i];
+ }
+
+ // Walk over each dimension. If the extents are equal do nothing.
+ // Otherwise, set the desc with extent 1 to have extent equal to the other and
+ // stride 0.
+ for (int i = 0; i < N; ++i) {
+ const int extent0 = ArraySize(input0_dims, i);
+ const int extent1 = ArraySize(input1_dims, i);
+ if (extent0 != extent1) {
+ if (extent0 == 1) {
+ desc0_out->strides[i] = 0;
+ desc0_out->extents[i] = extent1;
+ } else {
+ DCHECK_EQ(extent1, 1);
+ desc1_out->strides[i] = 0;
+ desc1_out->extents[i] = extent0;
+ }
+ }
+ }
+}
+
+#ifdef USE_NEON
+template <FusedActivationFunctionType Ac>
+void AddBiasAndEvalActivationFunction(const float* bias_data,
+ const Dims<4>& bias_dims,
+ float* array_data,
+ const Dims<4>& array_dims) {
+ gemmlowp::ScopedProfilingLabel label("AddBiasAndEvalActivationFunction");
+ const int bias_size = bias_dims.sizes[3] * bias_dims.strides[3];
+ const int array_size = array_dims.sizes[3] * array_dims.strides[3];
+ DCHECK_EQ((array_size % bias_size), 0);
+ float* array_ptr = array_data;
+ float* array_end_ptr = array_ptr + array_size;
+ const auto zero = vdupq_n_f32(0);
+ const auto six = vdupq_n_f32(6);
+ const auto neg_one = vdupq_n_f32(-1);
+ const auto one = vdupq_n_f32(1);
+ for (; array_ptr != array_end_ptr; array_ptr += bias_size) {
+ int i = 0;
+ for (; i <= bias_size - 16; i += 16) {
+ auto b0 = vld1q_f32(bias_data + i);
+ auto b1 = vld1q_f32(bias_data + i + 4);
+ auto b2 = vld1q_f32(bias_data + i + 8);
+ auto b3 = vld1q_f32(bias_data + i + 12);
+ auto a0 = vld1q_f32(array_ptr + i);
+ auto a1 = vld1q_f32(array_ptr + i + 4);
+ auto a2 = vld1q_f32(array_ptr + i + 8);
+ auto a3 = vld1q_f32(array_ptr + i + 12);
+ auto x0 = vaddq_f32(a0, b0);
+ auto x1 = vaddq_f32(a1, b1);
+ auto x2 = vaddq_f32(a2, b2);
+ auto x3 = vaddq_f32(a3, b3);
+ if (Ac == FusedActivationFunctionType::kRelu ||
+ Ac == FusedActivationFunctionType::kRelu6) {
+ x0 = vmaxq_f32(zero, x0);
+ x1 = vmaxq_f32(zero, x1);
+ x2 = vmaxq_f32(zero, x2);
+ x3 = vmaxq_f32(zero, x3);
+ if (Ac == FusedActivationFunctionType::kRelu6) {
+ x0 = vminq_f32(six, x0);
+ x1 = vminq_f32(six, x1);
+ x2 = vminq_f32(six, x2);
+ x3 = vminq_f32(six, x3);
+ }
+ } else if (Ac == FusedActivationFunctionType::kRelu1) {
+ x0 = vmaxq_f32(neg_one, x0);
+ x1 = vmaxq_f32(neg_one, x1);
+ x2 = vmaxq_f32(neg_one, x2);
+ x3 = vmaxq_f32(neg_one, x3);
+ x0 = vminq_f32(one, x0);
+ x1 = vminq_f32(one, x1);
+ x2 = vminq_f32(one, x2);
+ x3 = vminq_f32(one, x3);
+ }
+ vst1q_f32(array_ptr + i, x0);
+ vst1q_f32(array_ptr + i + 4, x1);
+ vst1q_f32(array_ptr + i + 8, x2);
+ vst1q_f32(array_ptr + i + 12, x3);
+ }
+ for (; i <= bias_size - 4; i += 4) {
+ auto b = vld1q_f32(bias_data + i);
+ auto a = vld1q_f32(array_ptr + i);
+ auto x = vaddq_f32(a, b);
+ if (Ac == FusedActivationFunctionType::kRelu ||
+ Ac == FusedActivationFunctionType::kRelu6) {
+ x = vmaxq_f32(zero, x);
+ if (Ac == FusedActivationFunctionType::kRelu6) {
+ x = vminq_f32(six, x);
+ }
+ } else if (Ac == FusedActivationFunctionType::kRelu1) {
+ x = vmaxq_f32(neg_one, x);
+ x = vminq_f32(one, x);
+ }
+ vst1q_f32(array_ptr + i, x);
+ }
+ for (; i < bias_size; i++) {
+ array_ptr[i] = ActivationFunction<Ac>(array_ptr[i] + bias_data[i]);
+ }
+ }
+}
+#else // not NEON
+template <FusedActivationFunctionType Ac>
+void AddBiasAndEvalActivationFunction(const float* bias_data,
+ const Dims<4>& bias_dims,
+ float* array_data,
+ const Dims<4>& array_dims) {
+ gemmlowp::ScopedProfilingLabel label("AddBiasAndEvalActivationFunction");
+ const int bias_size = bias_dims.sizes[3] * bias_dims.strides[3];
+ const int array_size = array_dims.sizes[3] * array_dims.strides[3];
+ DCHECK_EQ((array_size % bias_size), 0);
+ for (int array_offset = 0; array_offset < array_size;
+ array_offset += bias_size) {
+ for (int i = 0; i < bias_size; i++) {
+ array_data[array_offset + i] =
+ ActivationFunction<Ac>(array_data[array_offset + i] + bias_data[i]);
+ }
+ }
+}
+#endif
+
+template <typename Lhs, typename Rhs, typename Result>
+void Gemm(const Eigen::MatrixBase<Lhs>& lhs, const Eigen::MatrixBase<Rhs>& rhs,
+ Eigen::MatrixBase<Result>* result) {
+ if (rhs.cols() == 1) {
+ gemmlowp::ScopedProfilingLabel label("GEMV");
+ result->col(0).noalias() = lhs * rhs.col(0);
+ } else {
+ gemmlowp::ScopedProfilingLabel label("GEMM");
+ result->noalias() = lhs * rhs;
+ }
+}
+
+template <FusedActivationFunctionType Ac>
+void FullyConnected(const float* input_data, const Dims<4>& input_dims,
+ const float* weights_data, const Dims<4>& weights_dims,
+ const float* bias_data, const Dims<4>& bias_dims,
+ float* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("FullyConnected");
+ // TODO(b/62193649): this convoluted shape computation (determining
+ // input_rows from the weights_dims, then MapAsMatrixWithGivenNumberOfRows)
+ // is because the current --variable_batch hack consists in overwriting the
+ // 3rd dimension with the runtime batch size, as we don't keep track for each
+ // array of which dimension is the batch dimension in it.
+ // When that is fixed, this should become:
+ // const auto input_matrix_map =
+ // MapAsMatrixWithFirstDimAsRows(input_data, input_dims);
+ const int input_rows = ArraySize(weights_dims, 0);
+ const auto input_matrix_map =
+ MapAsMatrixWithGivenNumberOfRows(input_data, input_dims, input_rows);
+ const auto filter_matrix_map =
+ MapAsMatrixWithFirstDimAsRows(weights_data, weights_dims);
+ auto output_matrix_map =
+ MapAsMatrixWithFirstDimAsRows(output_data, output_dims);
+
+ Gemm(filter_matrix_map.transpose(), input_matrix_map, &output_matrix_map);
+ AddBiasAndEvalActivationFunction<Ac>(bias_data, bias_dims, output_data,
+ output_dims);
+}
+
+inline void preload_l1_stream(const uint8* ptr) {
+#ifdef GEMMLOWP_ARM_64
+ asm volatile("prfm pldl1strm, [%[ptr]]\n" ::[ptr] "r"(ptr) :);
+#else
+ gemmlowp::Prefetch(ptr);
+#endif
+}
+
+#ifdef USE_NEON
+template <FusedActivationFunctionType Ac>
+void FullyConnectedAsGEMV(const uint8* input_data, const Dims<4>& input_dims,
+ int32 input_offset, const uint8* filter_data,
+ const Dims<4>& filter_dims, int32 filter_offset,
+ const int32* bias_data, const Dims<4>& bias_dims,
+ int32 output_offset, int32 output_multiplier,
+ int output_shift, int32 output_activation_min,
+ int32 output_activation_max, uint8* output_data,
+ const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("FullyConnectedAsGEMV/8bit");
+ static_assert(Ac == FusedActivationFunctionType::kNone ||
+ Ac == FusedActivationFunctionType::kRelu ||
+ Ac == FusedActivationFunctionType::kRelu6 ||
+ Ac == FusedActivationFunctionType::kRelu1,
+ "");
+ DCHECK(IsPackedWithoutStrides(input_dims));
+ DCHECK(IsPackedWithoutStrides(filter_dims));
+ DCHECK(IsPackedWithoutStrides(bias_dims));
+ DCHECK(IsPackedWithoutStrides(output_dims));
+ DCHECK_EQ(ArraySize(output_dims, 1) * ArraySize(output_dims, 2) *
+ ArraySize(output_dims, 3),
+ 1);
+ const int input_size = input_dims.strides[3];
+ const int output_size = MatchingArraySize(filter_dims, 1, output_dims, 0);
+ static constexpr int kPeel = 4;
+ for (int k = 0; k < input_size; k += 64) {
+ preload_l1_stream(input_data + k);
+ }
+ for (int k = 0; k < kPeel * input_size; k += 64) {
+ preload_l1_stream(filter_data + k);
+ }
+ DCHECK(!(output_size % kPeel));
+ const int32* bias_ptr = bias_data;
+ uint8* output_ptr = output_data;
+ for (int out = 0; out < output_size; out += kPeel) {
+ int32x4_t acc[kPeel];
+ for (int k = 0; k < kPeel; k++) {
+ acc[k] = vdupq_n_s32(0);
+ }
+ const int16x8_t input_offset_vec = vdupq_n_s16(input_offset);
+ const int16x8_t filter_offset_vec = vdupq_n_s16(filter_offset);
+ int in = 0;
+ for (; in <= input_size - 16; in += 16) {
+ const uint8x16_t input_val_u8 = vld1q_u8(input_data + in);
+ uint8x16_t filter_val_u8[kPeel];
+ for (int k = 0; k < kPeel; k++) {
+ const uint8* filter_ptr = filter_data + in + (out + k) * input_size;
+ filter_val_u8[k] = vld1q_u8(filter_ptr);
+ preload_l1_stream(filter_ptr + 64);
+ }
+ int16x8_t input_val[2];
+ const uint8x8_t low = vget_low_u8(input_val_u8);
+ const uint8x8_t high = vget_high_u8(input_val_u8);
+ input_val[0] = vreinterpretq_s16_u16(vmovl_u8(low));
+ input_val[1] = vreinterpretq_s16_u16(vmovl_u8(high));
+ input_val[0] = vaddq_s16(input_val[0], input_offset_vec);
+ input_val[1] = vaddq_s16(input_val[1], input_offset_vec);
+ int16x8_t filter_val[kPeel][2];
+ for (int k = 0; k < kPeel; k++) {
+ const uint8x8_t low = vget_low_u8(filter_val_u8[k]);
+ const uint8x8_t high = vget_high_u8(filter_val_u8[k]);
+ filter_val[k][0] = vreinterpretq_s16_u16(vmovl_u8(low));
+ filter_val[k][1] = vreinterpretq_s16_u16(vmovl_u8(high));
+ filter_val[k][0] = vaddq_s16(filter_val[k][0], filter_offset_vec);
+ filter_val[k][1] = vaddq_s16(filter_val[k][1], filter_offset_vec);
+ }
+ for (int p = 0; p < 2; p++) {
+ for (int k = 0; k < kPeel; k++) {
+ acc[k] = vmlal_s16(acc[k], vget_low_s16(filter_val[k][p]),
+ vget_low_s16(input_val[p]));
+ }
+ for (int k = 0; k < kPeel; k++) {
+ acc[k] = vmlal_s16(acc[k], vget_high_s16(filter_val[k][p]),
+ vget_high_s16(input_val[p]));
+ }
+ }
+ }
+ for (; in <= input_size - 8; in += 8) {
+ const uint8x8_t input_val_u8 = vld1_u8(input_data + in);
+ uint8x8_t filter_val_u8[kPeel];
+ for (int k = 0; k < kPeel; k++) {
+ const uint8* filter_ptr = filter_data + in + (out + k) * input_size;
+ filter_val_u8[k] = vld1_u8(filter_ptr);
+ }
+ int16x8_t input_val;
+ input_val = vreinterpretq_s16_u16(vmovl_u8(input_val_u8));
+ input_val = vaddq_s16(input_val, input_offset_vec);
+ int16x8_t filter_val[kPeel];
+ for (int k = 0; k < kPeel; k++) {
+ filter_val[k] = vreinterpretq_s16_u16(vmovl_u8(filter_val_u8[k]));
+ filter_val[k] = vaddq_s16(filter_val[k], filter_offset_vec);
+ }
+ for (int k = 0; k < kPeel; k++) {
+ acc[k] = vmlal_s16(acc[k], vget_low_s16(filter_val[k]),
+ vget_low_s16(input_val));
+ }
+ for (int k = 0; k < kPeel; k++) {
+ acc[k] = vmlal_s16(acc[k], vget_high_s16(filter_val[k]),
+ vget_high_s16(input_val));
+ }
+ }
+ if (in < input_size) {
+ int32 buf[4 * kPeel];
+ for (int k = 0; k < 4; k++) {
+ vst1q_s32(buf + 4 * k, acc[k]);
+ }
+ for (; in < input_size; in++) {
+ int lane = (in + 8 - input_size) % 4;
+ const int32 input_val = input_data[in] + input_offset;
+ for (int k = 0; k < kPeel; k++) {
+ int32 filter_val =
+ filter_data[in + (out + k) * input_size] + filter_offset;
+ buf[lane + 4 * k] += filter_val * input_val;
+ }
+ }
+ for (int k = 0; k < 4; k++) {
+ acc[k] = vld1q_s32(buf + 4 * k);
+ }
+ }
+
+ // Horizontally reduce accumulators
+ int32x2_t pairwise_reduced_acc[kPeel];
+ for (int k = 0; k < kPeel; k++) {
+ pairwise_reduced_acc[k] =
+ vpadd_s32(vget_low_s32(acc[k]), vget_high_s32(acc[k]));
+ }
+ static_assert(kPeel == 4, "the code below currently assumes kPeel = 4");
+ const int32x2_t reduced_lo =
+ vpadd_s32(pairwise_reduced_acc[0], pairwise_reduced_acc[1]);
+ const int32x2_t reduced_hi =
+ vpadd_s32(pairwise_reduced_acc[2], pairwise_reduced_acc[3]);
+ int32x4_t reduced = vcombine_s32(reduced_lo, reduced_hi);
+ // Add bias values.
+ int32x4_t bias_vec = vld1q_s32(bias_ptr);
+ bias_ptr += 4;
+ reduced = vaddq_s32(reduced, bias_vec);
+ // Multiply by the fixed-point multiplier.
+ reduced = vqrdmulhq_n_s32(reduced, output_multiplier);
+ // Rounding-shift-right.
+ using gemmlowp::RoundingDivideByPOT;
+ reduced = RoundingDivideByPOT(reduced, output_shift);
+ // Add the output offset.
+ const int32x4_t output_offset_vec = vdupq_n_s32(output_offset);
+ reduced = vaddq_s32(reduced, output_offset_vec);
+ // Narrow values down to 16 bit signed.
+ const int16x4_t res16 = vqmovn_s32(reduced);
+ // Narrow values down to 8 bit unsigned, saturating.
+ uint8x8_t res8 = vqmovun_s16(vcombine_s16(res16, res16));
+ if (Ac != FusedActivationFunctionType::kNone) {
+ // Apply the clamping from the activation function
+ res8 = vmax_u8(res8, vdup_n_u8(output_activation_min));
+ res8 = vmin_u8(res8, vdup_n_u8(output_activation_max));
+ }
+ // Store results to destination. Assumes 32bit alignment.
+ vst1_lane_u32(reinterpret_cast<uint32*>(output_ptr),
+ vreinterpret_u32_u8(res8), 0);
+ output_ptr += kPeel;
+ }
+}
+#endif // USE_NEON
+
+template <FusedActivationFunctionType Ac>
+struct GemmlowpOutputPipeline {
+ typedef gemmlowp::VectorMap<const int32, gemmlowp::VectorShape::Col>
+ ColVectorMap;
+ typedef std::tuple<
+ gemmlowp::OutputStageBiasAddition<ColVectorMap>,
+ gemmlowp::OutputStageQuantizeDownInt32ToUint8ScaleByFixedPoint,
+ gemmlowp::OutputStageClamp, gemmlowp::OutputStageSaturatingCastToUint8>
+ Pipeline;
+ static Pipeline Make(const int32* bias_data, int output_rows,
+ int32 output_offset, int32 output_multiplier,
+ int output_shift, int32 output_activation_min,
+ int32 output_activation_max) {
+ ColVectorMap bias_vector(bias_data, output_rows);
+ gemmlowp::OutputStageBiasAddition<ColVectorMap> bias_addition_stage;
+ bias_addition_stage.bias_vector = bias_vector;
+ gemmlowp::OutputStageQuantizeDownInt32ToUint8ScaleByFixedPoint
+ quantize_down_stage;
+ quantize_down_stage.result_offset_after_shift = output_offset;
+ quantize_down_stage.result_fixedpoint_multiplier = output_multiplier;
+ quantize_down_stage.result_shift = output_shift;
+ gemmlowp::OutputStageClamp clamp_stage;
+ clamp_stage.min = output_activation_min;
+ clamp_stage.max = output_activation_max;
+ gemmlowp::OutputStageSaturatingCastToUint8 saturating_cast_stage;
+ return std::make_tuple(bias_addition_stage, quantize_down_stage,
+ clamp_stage, saturating_cast_stage);
+ }
+};
+
+template <>
+struct GemmlowpOutputPipeline<FusedActivationFunctionType::kNone> {
+ typedef gemmlowp::VectorMap<const int32, gemmlowp::VectorShape::Col>
+ ColVectorMap;
+ typedef std::tuple<
+ gemmlowp::OutputStageBiasAddition<ColVectorMap>,
+ gemmlowp::OutputStageQuantizeDownInt32ToUint8ScaleByFixedPoint,
+ gemmlowp::OutputStageSaturatingCastToUint8>
+ Pipeline;
+ static Pipeline Make(const int32* bias_data, int output_rows,
+ int32 output_offset, int32 output_multiplier,
+ int output_shift, int32 output_activation_min,
+ int32 output_activation_max) {
+ DCHECK_EQ(output_activation_min, 0);
+ DCHECK_EQ(output_activation_max, 255);
+ ColVectorMap bias_vector(bias_data, output_rows);
+ gemmlowp::OutputStageBiasAddition<ColVectorMap> bias_addition_stage;
+ bias_addition_stage.bias_vector = bias_vector;
+ gemmlowp::OutputStageQuantizeDownInt32ToUint8ScaleByFixedPoint
+ quantize_down_stage;
+ quantize_down_stage.result_offset_after_shift = output_offset;
+ quantize_down_stage.result_fixedpoint_multiplier = output_multiplier;
+ quantize_down_stage.result_shift = output_shift;
+ gemmlowp::OutputStageSaturatingCastToUint8 saturating_cast_stage;
+ return std::make_tuple(bias_addition_stage, quantize_down_stage,
+ saturating_cast_stage);
+ }
+};
+
+template <FusedActivationFunctionType Ac>
+void FullyConnected(const uint8* input_data, const Dims<4>& input_dims,
+ int32 input_offset, const uint8* filter_data,
+ const Dims<4>& filter_dims, int32 filter_offset,
+ const int32* bias_data, const Dims<4>& bias_dims,
+ int32 output_offset, int32 output_multiplier,
+ int output_shift, int32 output_activation_min,
+ int32 output_activation_max, uint8* output_data,
+ const Dims<4>& output_dims,
+ gemmlowp::GemmContext* gemm_context) {
+ gemmlowp::ScopedProfilingLabel label("FullyConnected/8bit");
+ static_assert(Ac == FusedActivationFunctionType::kNone ||
+ Ac == FusedActivationFunctionType::kRelu ||
+ Ac == FusedActivationFunctionType::kRelu6 ||
+ Ac == FusedActivationFunctionType::kRelu1,
+ "");
+ // TODO: This really should be:
+ // const int batches = ArraySize(output_dims, 1);
+ // but the current --variable_batch hack consists in overwriting the 3rd
+ // dimension with the runtime batch size, as we don't keep track for each
+ // array of which dimension is the batch dimension in it.
+ const int batches = ArraySize(output_dims, 1) * ArraySize(output_dims, 2) *
+ ArraySize(output_dims, 3);
+#ifdef USE_NEON
+ const int output_size = MatchingArraySize(filter_dims, 1, output_dims, 0);
+ if (batches == 1 && !(output_size % 4)) {
+ return FullyConnectedAsGEMV<Ac>(
+ input_data, input_dims, input_offset, filter_data, filter_dims,
+ filter_offset, bias_data, bias_dims, output_offset, output_multiplier,
+ output_shift, output_activation_min, output_activation_max, output_data,
+ output_dims);
+ }
+#endif // USE_NEON
+ const int filter_rows = filter_dims.sizes[1];
+ const int filter_cols = filter_dims.sizes[0];
+ DCHECK_EQ(filter_dims.sizes[2], 1);
+ DCHECK_EQ(filter_dims.sizes[3], 1);
+ const int output_rows = output_dims.sizes[0];
+ DCHECK_EQ(output_rows, filter_rows);
+ DCHECK_EQ(bias_dims.sizes[0], output_rows);
+ DCHECK_EQ(bias_dims.sizes[1], 1);
+ DCHECK_EQ(bias_dims.sizes[2], 1);
+ DCHECK_EQ(bias_dims.sizes[3], 1);
+
+ gemmlowp::MatrixMap<const uint8, gemmlowp::MapOrder::RowMajor> filter_matrix(
+ filter_data, output_rows, filter_cols, filter_cols);
+ gemmlowp::MatrixMap<const uint8, gemmlowp::MapOrder::ColMajor> input_matrix(
+ input_data, filter_cols, batches, filter_cols);
+ gemmlowp::MatrixMap<uint8, gemmlowp::MapOrder::ColMajor> output_matrix(
+ output_data, output_rows, batches, output_rows);
+ const auto& output_pipeline = GemmlowpOutputPipeline<Ac>::Make(
+ bias_data, output_rows, output_offset, output_multiplier, output_shift,
+ output_activation_min, output_activation_max);
+ gemmlowp::GemmWithOutputPipeline<uint8, uint8,
+ gemmlowp::L8R8WithLhsNonzeroBitDepthParams>(
+ gemm_context, filter_matrix, input_matrix, &output_matrix, filter_offset,
+ input_offset, output_pipeline);
+}
+
+template <typename T>
+inline void ExtractPatchIntoBufferColumn(
+ const Dims<4>& input_dims, int w, int h, int b, int kheight, int kwidth,
+ int stride_width, int stride_height, int pad_width, int pad_height,
+ int in_width, int in_height, int in_depth, int single_buffer_length,
+ int buffer_id, const T* in_data, T* conv_buffer_data, uint8 byte_zero) {
+ gemmlowp::ScopedProfilingLabel label("ExtractPatchIntoBufferColumn");
+ // This chunk of code reshapes all the inputs corresponding to
+ // output (b, h, w) to a column vector in conv_buffer(:, buffer_id).
+ const int kwidth_times_indepth = kwidth * in_depth;
+ const int inwidth_times_indepth = in_width * in_depth;
+ const int ih_ungated_start = h * stride_height - pad_height;
+ const int ih_ungated_end = (ih_ungated_start + kheight);
+ const int ih_end = std::min(ih_ungated_end, in_height);
+ const int iw_ungated_start = w * stride_width - pad_width;
+ const int iw_ungated_end = (iw_ungated_start + kwidth);
+ const int iw_end = std::min(iw_ungated_end, in_width);
+ // If the patch is off the edge of the input image, skip writing those rows
+ // and columns from the patch into the output array.
+ const int h_offset = std::max(0, -ih_ungated_start);
+ const int w_offset = std::max(0, -iw_ungated_start);
+ const int ih_start = std::max(0, ih_ungated_start);
+ const int iw_start = std::max(0, iw_ungated_start);
+ const int single_row_num =
+ std::min(kwidth - w_offset, in_width - iw_start) * in_depth;
+ const int output_row_offset = (buffer_id * single_buffer_length);
+ int out_offset =
+ output_row_offset + (h_offset * kwidth + w_offset) * in_depth;
+ int in_offset = Offset(input_dims, 0, iw_start, ih_start, b);
+
+ // Express all of the calculations as padding around the input patch.
+ const int top_padding = h_offset;
+ const int bottom_padding = (ih_ungated_end - ih_end);
+ const int left_padding = w_offset;
+ const int right_padding = (iw_ungated_end - iw_end);
+ assert(single_row_num ==
+ ((kwidth - (left_padding + right_padding)) * in_depth));
+
+ // Write out zeroes to the elements representing the top rows of the input
+ // patch that are off the edge of the input image.
+ if (top_padding > 0) {
+ const int top_row_elements = (top_padding * kwidth * in_depth);
+ memset(conv_buffer_data + output_row_offset, byte_zero,
+ (top_row_elements * sizeof(T)));
+ }
+
+ // If the patch is on the interior of the input image horizontally, just copy
+ // over the rows sequentially, otherwise add zero padding at the start or end.
+ if ((left_padding == 0) && (right_padding == 0)) {
+ for (int ih = ih_start; ih < ih_end; ++ih) {
+ memcpy(conv_buffer_data + out_offset, in_data + in_offset,
+ single_row_num * sizeof(T));
+ out_offset += kwidth_times_indepth;
+ in_offset += inwidth_times_indepth;
+ }
+ } else {
+ for (int ih = ih_start; ih < ih_end; ++ih) {
+ if (left_padding > 0) {
+ const int left_start = (out_offset - (left_padding * in_depth));
+ memset(conv_buffer_data + left_start, byte_zero,
+ (left_padding * in_depth * sizeof(T)));
+ }
+ memcpy(conv_buffer_data + out_offset, in_data + in_offset,
+ single_row_num * sizeof(T));
+ if (right_padding > 0) {
+ const int right_start = (out_offset + single_row_num);
+ memset(conv_buffer_data + right_start, byte_zero,
+ (right_padding * in_depth * sizeof(T)));
+ }
+ out_offset += kwidth_times_indepth;
+ in_offset += inwidth_times_indepth;
+ }
+ }
+
+ // If the bottom of the patch falls off the input image, pad the values
+ // representing those input rows with zeroes.
+ if (bottom_padding > 0) {
+ const int bottom_row_elements = (bottom_padding * kwidth * in_depth);
+ const int bottom_start =
+ output_row_offset +
+ ((top_padding + (ih_end - ih_start)) * kwidth * in_depth);
+ memset(conv_buffer_data + bottom_start, byte_zero,
+ (bottom_row_elements * sizeof(T)));
+ }
+}
+
+template <typename T>
+void Im2col(const T* input_data, const Dims<4>& input_dims, int stride_width,
+ int stride_height, int pad_width, int pad_height, int kheight,
+ int kwidth, uint8 byte_zero, T* output_data,
+ const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("Im2col");
+ DCHECK(IsPackedWithoutStrides(input_dims));
+ DCHECK(IsPackedWithoutStrides(output_dims));
+ const int batches = MatchingArraySize(input_dims, 3, output_dims, 3);
+ const int input_depth = ArraySize(input_dims, 0);
+ const int input_width = ArraySize(input_dims, 1);
+ const int input_height = ArraySize(input_dims, 2);
+ const int output_depth = ArraySize(output_dims, 0);
+ const int output_width = ArraySize(output_dims, 1);
+ const int output_height = ArraySize(output_dims, 2);
+
+ int buffer_id = 0;
+ // Loop over the output nodes.
+ for (int b = 0; b < batches; ++b) {
+ for (int h = 0; h < output_height; ++h) {
+ for (int w = 0; w < output_width; ++w) {
+ ExtractPatchIntoBufferColumn(
+ input_dims, w, h, b, kheight, kwidth, stride_width, stride_height,
+ pad_width, pad_height, input_width, input_height, input_depth,
+ output_depth, buffer_id, input_data, output_data, byte_zero);
+ ++buffer_id;
+ }
+ }
+ }
+}
+
+template <FusedActivationFunctionType Ac>
+void Conv(const float* input_data, const Dims<4>& input_dims,
+ const float* filter_data, const Dims<4>& filter_dims,
+ const float* bias_data, const Dims<4>& bias_dims, int stride_width,
+ int stride_height, int pad_width, int pad_height, float* output_data,
+ const Dims<4>& output_dims, float* im2col_data,
+ const Dims<4>& im2col_dims) {
+ (void)im2col_data;
+ (void)im2col_dims;
+ gemmlowp::ScopedProfilingLabel label("Conv");
+
+ const float* gemm_input_data = nullptr;
+ const Dims<4>* gemm_input_dims = nullptr;
+ const int filter_width = ArraySize(filter_dims, 1);
+ const int filter_height = ArraySize(filter_dims, 2);
+ const bool need_im2col = stride_width != 1 || stride_height != 1 ||
+ filter_width != 1 || filter_height != 1;
+ if (need_im2col) {
+ DCHECK(im2col_data);
+ Im2col(input_data, input_dims, stride_width, stride_height, pad_width,
+ pad_height, filter_height, filter_width, 0, im2col_data,
+ im2col_dims);
+ gemm_input_data = im2col_data;
+ gemm_input_dims = &im2col_dims;
+ } else {
+#if 0 // TODO-NNRT : Check if it needs, 'im2col_data' seems to be always not null.
+ DCHECK(!im2col_data);
+#endif
+ gemm_input_data = input_data;
+ gemm_input_dims = &input_dims;
+ }
+
+ const auto im2col_matrix_map =
+ MapAsMatrixWithFirstDimAsRows(gemm_input_data, *gemm_input_dims);
+ const auto filter_matrix_map =
+ MapAsMatrixWithLastDimAsCols(filter_data, filter_dims);
+ auto output_matrix_map =
+ MapAsMatrixWithFirstDimAsRows(output_data, output_dims);
+
+ Gemm(filter_matrix_map.transpose(), im2col_matrix_map, &output_matrix_map);
+
+ AddBiasAndEvalActivationFunction<Ac>(bias_data, bias_dims, output_data,
+ output_dims);
+}
+
+template <FusedActivationFunctionType Ac>
+void Conv(const uint8* input_data, const Dims<4>& input_dims,
+ int32 input_offset, const uint8* filter_data,
+ const Dims<4>& filter_dims, int32 filter_offset,
+ const int32* bias_data, const Dims<4>& bias_dims, int stride_width,
+ int stride_height, int pad_width, int pad_height, int32 output_offset,
+ int32 output_multiplier, int output_shift,
+ int32 output_activation_min, int32 output_activation_max,
+ uint8* output_data, const Dims<4>& output_dims, uint8* im2col_data,
+ const Dims<4>& im2col_dims, gemmlowp::GemmContext* gemm_context) {
+ gemmlowp::ScopedProfilingLabel label("Conv/8bit");
+
+ DCHECK(IsPackedWithoutStrides(input_dims));
+ DCHECK(IsPackedWithoutStrides(filter_dims));
+ DCHECK(IsPackedWithoutStrides(output_dims));
+
+ static_assert(Ac == FusedActivationFunctionType::kNone ||
+ Ac == FusedActivationFunctionType::kRelu ||
+ Ac == FusedActivationFunctionType::kRelu6 ||
+ Ac == FusedActivationFunctionType::kRelu1,
+ "");
+
+ const uint8* gemm_input_data = nullptr;
+ const Dims<4>* gemm_input_dims = nullptr;
+ const int filter_width = ArraySize(filter_dims, 1);
+ const int filter_height = ArraySize(filter_dims, 2);
+ const bool need_im2col = stride_width != 1 || stride_height != 1 ||
+ filter_width != 1 || filter_height != 1;
+ if (need_im2col) {
+ DCHECK(im2col_data);
+ const int input_zero_point = -input_offset;
+ DCHECK_GE(input_zero_point, 0);
+ DCHECK_LE(input_zero_point, 255);
+ Im2col(input_data, input_dims, stride_width, stride_height, pad_width,
+ pad_height, filter_height, filter_width, input_zero_point,
+ im2col_data, im2col_dims);
+ gemm_input_data = im2col_data;
+ gemm_input_dims = &im2col_dims;
+ } else {
+#if 0 // TODO-NNRT : Check if it needs, 'im2col_data' seems to be always not null.
+ DCHECK(!im2col_data);
+#endif
+ gemm_input_data = input_data;
+ gemm_input_dims = &input_dims;
+ }
+
+ const int gemm_input_rows = gemm_input_dims->sizes[0];
+ const int gemm_input_cols = gemm_input_dims->sizes[1] *
+ gemm_input_dims->sizes[2] *
+ gemm_input_dims->sizes[3];
+ const int filter_rows = filter_dims.sizes[3];
+ const int filter_cols =
+ filter_dims.sizes[0] * filter_dims.sizes[1] * filter_dims.sizes[2];
+ const int output_rows = output_dims.sizes[0];
+ const int output_cols =
+ output_dims.sizes[1] * output_dims.sizes[2] * output_dims.sizes[3];
+ DCHECK_EQ(output_rows, filter_rows);
+ DCHECK_EQ(output_cols, gemm_input_cols);
+ DCHECK_EQ(filter_cols, gemm_input_rows);
+ DCHECK_EQ(bias_dims.sizes[0], output_rows);
+ DCHECK_EQ(bias_dims.sizes[1], 1);
+ DCHECK_EQ(bias_dims.sizes[2], 1);
+ DCHECK_EQ(bias_dims.sizes[3], 1);
+ gemmlowp::MatrixMap<const uint8, gemmlowp::MapOrder::RowMajor> filter_matrix(
+ filter_data, filter_rows, filter_cols);
+ gemmlowp::MatrixMap<const uint8, gemmlowp::MapOrder::ColMajor> input_matrix(
+ gemm_input_data, gemm_input_rows, gemm_input_cols);
+ gemmlowp::MatrixMap<uint8, gemmlowp::MapOrder::ColMajor> output_matrix(
+ output_data, output_rows, output_cols);
+ const auto& output_pipeline = GemmlowpOutputPipeline<Ac>::Make(
+ bias_data, output_rows, output_offset, output_multiplier, output_shift,
+ output_activation_min, output_activation_max);
+ gemmlowp::GemmWithOutputPipeline<uint8, uint8,
+ gemmlowp::L8R8WithLhsNonzeroBitDepthParams>(
+ gemm_context, filter_matrix, input_matrix, &output_matrix, filter_offset,
+ input_offset, output_pipeline);
+}
+
+template <typename T>
+inline void DepthToSpace(const T* input_data, const Dims<4>& input_dims,
+ int block_size, T* output_data,
+ const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("DepthToSpace");
+
+ const int input_depth = ArraySize(input_dims, 0);
+ const int input_width = ArraySize(input_dims, 1);
+ const int input_height = ArraySize(input_dims, 2);
+
+ const int output_depth = ArraySize(output_dims, 0);
+ const int batch_size = ArraySize(output_dims, 3);
+
+ // Number of continuous values that we can copy in one interation.
+ const int stride = block_size * output_depth;
+
+ for (int batch = 0; batch < batch_size; ++batch) {
+ for (int in_h = 0; in_h < input_height; ++in_h) {
+ const T* input_ptr = input_data + Offset(input_dims, 0, 0, in_h, batch);
+ for (int offset_h = 0; offset_h < block_size; ++offset_h) {
+ const T* src = input_ptr;
+ for (int in_w = 0; in_w < input_width; ++in_w) {
+ memcpy(output_data, src, stride * sizeof(T));
+ output_data += stride;
+ src += input_depth;
+ }
+ input_ptr += stride;
+ }
+ }
+ }
+}
+
+// legacy, for compatibility with old checked-in code
+template <FusedActivationFunctionType Ac, typename T>
+void Im2col(const T* input_data, const Dims<4>& input_dims, int stride,
+ int pad_width, int pad_height, int kheight, int kwidth,
+ uint8 byte_zero, T* output_data, const Dims<4>& output_dims) {
+ Im2col(input_data, input_dims, stride, stride, pad_width, pad_height, kheight,
+ kwidth, byte_zero, output_data, output_dims);
+}
+
+// legacy, for compatibility with old checked-in code
+template <FusedActivationFunctionType Ac>
+void ConvAsGemm(const float* input_data, const Dims<4>& input_dims,
+ const float* filter_data, const Dims<4>& filter_dims,
+ const float* bias_data, const Dims<4>& bias_dims,
+ float* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("ConvAsGemm");
+
+ const auto input_matrix_map =
+ MapAsMatrixWithFirstDimAsRows(input_data, input_dims);
+ const auto filter_matrix_map =
+ MapAsMatrixWithLastDimAsCols(filter_data, filter_dims);
+ auto output_matrix_map =
+ MapAsMatrixWithFirstDimAsRows(output_data, output_dims);
+
+ Gemm(filter_matrix_map.transpose(), input_matrix_map, &output_matrix_map);
+
+ AddBiasAndEvalActivationFunction<Ac>(bias_data, bias_dims, output_data,
+ output_dims);
+}
+
+// legacy, for compatibility with old checked-in code
+template <FusedActivationFunctionType Ac>
+void ConvAsGemm(const uint8* input_data, const Dims<4>& input_dims,
+ int32 input_offset, const uint8* filter_data,
+ const Dims<4>& filter_dims, int32 filter_offset,
+ const int32* bias_data, const Dims<4>& bias_dims,
+ int32 output_offset, int32 output_multiplier, int output_shift,
+ int32 output_activation_min, int32 output_activation_max,
+ uint8* output_data, const Dims<4>& output_dims,
+ gemmlowp::GemmContext* gemm_context) {
+ gemmlowp::ScopedProfilingLabel label("ConvAsGemm/8bit");
+ static_assert(Ac == FusedActivationFunctionType::kNone ||
+ Ac == FusedActivationFunctionType::kRelu ||
+ Ac == FusedActivationFunctionType::kRelu6 ||
+ Ac == FusedActivationFunctionType::kRelu1,
+ "");
+ const int input_rows = input_dims.sizes[0];
+ const int input_cols =
+ input_dims.sizes[1] * input_dims.sizes[2] * input_dims.sizes[3];
+ const int filter_rows = filter_dims.sizes[3];
+ const int filter_cols =
+ filter_dims.sizes[0] * filter_dims.sizes[1] * filter_dims.sizes[2];
+ const int output_rows = output_dims.sizes[0];
+ const int output_cols =
+ output_dims.sizes[1] * output_dims.sizes[2] * output_dims.sizes[3];
+ DCHECK_EQ(output_rows, filter_rows);
+ DCHECK_EQ(output_cols, input_cols);
+ DCHECK_EQ(filter_cols, input_rows);
+ DCHECK_EQ(bias_dims.sizes[0], output_rows);
+ DCHECK_EQ(bias_dims.sizes[1], 1);
+ DCHECK_EQ(bias_dims.sizes[2], 1);
+ DCHECK_EQ(bias_dims.sizes[3], 1);
+ gemmlowp::MatrixMap<const uint8, gemmlowp::MapOrder::RowMajor> filter_matrix(
+ filter_data, output_rows, filter_cols, filter_cols);
+ gemmlowp::MatrixMap<const uint8, gemmlowp::MapOrder::ColMajor> input_matrix(
+ input_data, filter_cols, output_cols, filter_cols);
+ gemmlowp::MatrixMap<uint8, gemmlowp::MapOrder::ColMajor> output_matrix(
+ output_data, output_rows, output_cols, output_rows);
+ const auto& output_pipeline = GemmlowpOutputPipeline<Ac>::Make(
+ bias_data, output_rows, output_offset, output_multiplier, output_shift,
+ output_activation_min, output_activation_max);
+ gemmlowp::GemmWithOutputPipeline<uint8, uint8,
+ gemmlowp::L8R8WithLhsNonzeroBitDepthParams>(
+ gemm_context, filter_matrix, input_matrix, &output_matrix, filter_offset,
+ input_offset, output_pipeline);
+}
+
+template <typename T>
+inline void SpaceToDepth(const T* input_data, const Dims<4>& input_dims,
+ int block_size, T* output_data,
+ const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("SpaceToDepth");
+
+ const int output_depth = ArraySize(output_dims, 0);
+ const int output_width = ArraySize(output_dims, 1);
+ const int output_height = ArraySize(output_dims, 2);
+
+ const int input_depth = ArraySize(input_dims, 0);
+ const int batch_size = ArraySize(input_dims, 3);
+
+ // Number of continuous values that we can copy in one interation.
+ const int stride = block_size * input_depth;
+
+ for (int batch = 0; batch < batch_size; ++batch) {
+ for (int out_h = 0; out_h < output_height; ++out_h) {
+ T* output_ptr = output_data + Offset(output_dims, 0, 0, out_h, batch);
+ for (int offset_h = 0; offset_h < block_size; ++offset_h) {
+ T* dst = output_ptr;
+ for (int out_w = 0; out_w < output_width; ++out_w) {
+ memcpy(dst, input_data, stride * sizeof(T));
+ input_data += stride;
+ dst += output_depth;
+ }
+ output_ptr += stride;
+ }
+ }
+ }
+}
+
+template <FusedActivationFunctionType Ac>
+void NonGlobalBatchNormalization(
+ const float* input_data, const Dims<4>& input_dims, const float* mean_data,
+ const Dims<4>& mean_dims, const float* multiplier_data,
+ const Dims<4>& multiplier_dims, const float* offset_data,
+ const Dims<4>& offset_dims, float* output_data,
+ const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("NonGlobalBatchNormalization");
+ const int batches = MatchingArraySize(input_dims, 3, output_dims, 3);
+ const int height =
+ MatchingArraySize(input_dims, 2, mean_dims, 2, multiplier_dims, 2,
+ offset_dims, 2, output_dims, 2);
+ const int width =
+ MatchingArraySize(input_dims, 1, mean_dims, 1, multiplier_dims, 1,
+ offset_dims, 1, output_dims, 1);
+ const int depth =
+ MatchingArraySize(input_dims, 0, mean_dims, 0, multiplier_dims, 0,
+ offset_dims, 0, output_dims, 0);
+
+ for (int b = 0; b < batches; ++b) {
+ for (int y = 0; y < height; ++y) {
+ for (int x = 0; x < width; ++x) {
+ for (int c = 0; c < depth; ++c) {
+ output_data[Offset(output_dims, c, x, y, b)] = ActivationFunction<Ac>(
+ (input_data[Offset(input_dims, c, x, y, b)] -
+ mean_data[Offset(mean_dims, c, x, y, 0)]) *
+ multiplier_data[Offset(multiplier_dims, c, x, y, 0)] +
+ offset_data[Offset(offset_dims, c, x, y, 0)]);
+ }
+ }
+ }
+ }
+}
+
+template <FusedActivationFunctionType Ac>
+void GlobalBatchNormalization(const float* input_data,
+ const Dims<4>& input_dims, const float* mean_data,
+ const Dims<4>& mean_dims,
+ const float* multiplier_data,
+ const Dims<4>& multiplier_dims,
+ const float* offset_data,
+ const Dims<4>& offset_dims, float* output_data,
+ const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("GlobalBatchNormalization");
+ const int batches = MatchingArraySize(input_dims, 3, output_dims, 3);
+ const int height = MatchingArraySize(input_dims, 2, output_dims, 2);
+ const int width = MatchingArraySize(input_dims, 1, output_dims, 1);
+ const int depth =
+ MatchingArraySize(input_dims, 0, mean_dims, 0, multiplier_dims, 0,
+ offset_dims, 0, output_dims, 0);
+
+ for (int b = 0; b < batches; ++b) {
+ for (int y = 0; y < height; ++y) {
+ for (int x = 0; x < width; ++x) {
+ for (int c = 0; c < depth; ++c) {
+ output_data[Offset(output_dims, c, x, y, b)] = ActivationFunction<Ac>(
+ (input_data[Offset(input_dims, c, x, y, b)] -
+ mean_data[Offset(mean_dims, c, 0, 0, 0)]) *
+ multiplier_data[Offset(multiplier_dims, c, 0, 0, 0)] +
+ offset_data[Offset(offset_dims, c, 0, 0, 0)]);
+ }
+ }
+ }
+ }
+}
+
+inline void Relu(const float* input_data, const Dims<4>& input_dims,
+ float* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("Relu (not fused)");
+ const int batches = MatchingArraySize(input_dims, 3, output_dims, 3);
+ const int height = MatchingArraySize(input_dims, 2, output_dims, 2);
+ const int width = MatchingArraySize(input_dims, 1, output_dims, 1);
+ const int depth = MatchingArraySize(input_dims, 0, output_dims, 0);
+ for (int b = 0; b < batches; ++b) {
+ for (int y = 0; y < height; ++y) {
+ for (int x = 0; x < width; ++x) {
+ for (int c = 0; c < depth; ++c) {
+ float val = input_data[Offset(input_dims, c, x, y, b)];
+ const float lower = 0;
+ float clamped = val < lower ? lower : val;
+ output_data[Offset(output_dims, c, x, y, b)] = clamped;
+ }
+ }
+ }
+ }
+}
+
+inline void Relu1(const float* input_data, const Dims<4>& input_dims,
+ float* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("Relu1 (not fused)");
+ const int batches = MatchingArraySize(input_dims, 3, output_dims, 3);
+ const int height = MatchingArraySize(input_dims, 2, output_dims, 2);
+ const int width = MatchingArraySize(input_dims, 1, output_dims, 1);
+ const int depth = MatchingArraySize(input_dims, 0, output_dims, 0);
+ for (int b = 0; b < batches; ++b) {
+ for (int y = 0; y < height; ++y) {
+ for (int x = 0; x < width; ++x) {
+ for (int c = 0; c < depth; ++c) {
+ float val = input_data[Offset(input_dims, c, x, y, b)];
+ const float upper = 1;
+ const float lower = -1;
+ float clamped = val > upper ? upper : val < lower ? lower : val;
+ output_data[Offset(output_dims, c, x, y, b)] = clamped;
+ }
+ }
+ }
+ }
+}
+
+inline void Relu6(const float* input_data, const Dims<4>& input_dims,
+ float* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("Relu6 (not fused)");
+ const int batches = MatchingArraySize(input_dims, 3, output_dims, 3);
+ const int height = MatchingArraySize(input_dims, 2, output_dims, 2);
+ const int width = MatchingArraySize(input_dims, 1, output_dims, 1);
+ const int depth = MatchingArraySize(input_dims, 0, output_dims, 0);
+ for (int b = 0; b < batches; ++b) {
+ for (int y = 0; y < height; ++y) {
+ for (int x = 0; x < width; ++x) {
+ for (int c = 0; c < depth; ++c) {
+ float val = input_data[Offset(input_dims, c, x, y, b)];
+ const float upper = 6;
+ const float lower = 0;
+ float clamped = val > upper ? upper : val < lower ? lower : val;
+ output_data[Offset(output_dims, c, x, y, b)] = clamped;
+ }
+ }
+ }
+ }
+}
+
+template <FusedActivationFunctionType Ac>
+void L2Normalization(const float* input_data, const Dims<4>& input_dims,
+ float* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("L2Normalization");
+ static_assert(Ac == FusedActivationFunctionType::kNone, "");
+ const int batches = MatchingArraySize(input_dims, 3, output_dims, 3);
+ const int height = MatchingArraySize(input_dims, 2, output_dims, 2);
+ const int width = MatchingArraySize(input_dims, 1, output_dims, 1);
+ const int depth = MatchingArraySize(input_dims, 0, output_dims, 0);
+ for (int b = 0; b < batches; ++b) {
+ for (int y = 0; y < height; ++y) {
+ for (int x = 0; x < width; ++x) {
+ float squared_l2_norm = 0;
+ for (int c = 0; c < depth; ++c) {
+ float val = input_data[Offset(input_dims, c, x, y, b)];
+ squared_l2_norm += val * val;
+ }
+ float inverse_l2_norm = 1.0f / std::sqrt(squared_l2_norm);
+ for (int c = 0; c < depth; ++c) {
+ output_data[Offset(output_dims, c, x, y, b)] =
+ input_data[Offset(input_dims, c, x, y, b)] * inverse_l2_norm;
+ }
+ }
+ }
+ }
+}
+
+inline void GetInvSqrtQuantizedMultiplier(int32 input, int32* output_inv_sqrt,
+ int* output_shift) {
+ *output_shift = 11;
+ while (input >= (1 << 29)) {
+ input /= 4;
+ ++*output_shift;
+ }
+ DCHECK_GT(input, 0);
+ const unsigned max_left_shift_bits = __builtin_clz(input) - 1;
+ const unsigned max_left_shift_bit_pairs = max_left_shift_bits / 2;
+ const unsigned left_shift_bit_pairs = max_left_shift_bit_pairs - 1;
+ *output_shift -= left_shift_bit_pairs;
+ input <<= 2 * left_shift_bit_pairs;
+ DCHECK_GE(input, (1 << 27));
+ DCHECK_LT(input, (1 << 29));
+ using gemmlowp::FixedPoint;
+ using gemmlowp::Rescale;
+ using gemmlowp::SaturatingRoundingMultiplyByPOT;
+ // Using 3 integer bits gives us enough room for the internal arithmetic in
+ // this Newton-Raphson iteration.
+ using F3 = FixedPoint<int32, 3>;
+ using F0 = FixedPoint<int32, 0>;
+ const F3 fixedpoint_input = F3::FromRaw(input >> 1);
+ const F3 fixedpoint_half_input =
+ SaturatingRoundingMultiplyByPOT<-1>(fixedpoint_input);
+ const F3 fixedpoint_half_three =
+ GEMMLOWP_CHECKED_FIXEDPOINT_CONSTANT(F3, (1 << 28) + (1 << 27), 1.5);
+ // Newton-Raphson iteration
+ // Naive unoptimized starting guess: x = 1
+ F3 x = F3::One();
+ // Naive unoptimized number of iterations: 5
+ for (int i = 0; i < 5; i++) {
+ const F3 x3 = Rescale<3>(x * x * x);
+ x = Rescale<3>(fixedpoint_half_three * x - fixedpoint_half_input * x3);
+ }
+ const F0 fixedpoint_half_sqrt_2 =
+ GEMMLOWP_CHECKED_FIXEDPOINT_CONSTANT(F0, 1518500250, std::sqrt(2.) / 2.);
+ x = x * fixedpoint_half_sqrt_2;
+ *output_inv_sqrt = x.raw();
+ if (*output_shift < 0) {
+ *output_inv_sqrt <<= -*output_shift;
+ *output_shift = 0;
+ }
+}
+
+inline void L2Normalization(const uint8* input_data, const Dims<4>& input_dims,
+ int32 input_zero_point, uint8* output_data,
+ const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("L2Normalization/8bit");
+ const int batches = MatchingArraySize(input_dims, 3, output_dims, 3);
+ const int height = MatchingArraySize(input_dims, 2, output_dims, 2);
+ const int width = MatchingArraySize(input_dims, 1, output_dims, 1);
+ const int depth = MatchingArraySize(input_dims, 0, output_dims, 0);
+ DCHECK(IsPackedWithoutStrides(input_dims));
+ DCHECK(IsPackedWithoutStrides(output_dims));
+ DCHECK_EQ(batches, 1);
+ DCHECK_EQ(height, 1);
+ DCHECK_EQ(width, 1);
+ int32 square_l2_norm = 0;
+ for (int i = 0; i < depth; i++) {
+ int32 diff = input_data[i] - input_zero_point;
+ square_l2_norm += diff * diff;
+ }
+ int32 inv_l2norm_multiplier;
+ int inv_l2norm_shift;
+ GetInvSqrtQuantizedMultiplier(square_l2_norm, &inv_l2norm_multiplier,
+ &inv_l2norm_shift);
+
+ for (int i = 0; i < depth; i++) {
+ int32 diff = input_data[i] - input_zero_point;
+ int32 rescaled_diff = MultiplyByQuantizedMultiplierSmallerThanOne(
+ 128 * diff, inv_l2norm_multiplier, inv_l2norm_shift);
+ int32 unclamped_output_val = 128 + rescaled_diff;
+ int32 output_val = std::min(255, std::max(0, unclamped_output_val));
+ output_data[i] = static_cast<uint8>(output_val);
+ }
+}
+
+template <FusedActivationFunctionType Ac>
+void Add(const float* input1_data, const Dims<4>& input1_dims,
+ const float* input2_data, const Dims<4>& input2_dims,
+ float* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("Add");
+ /* const int batches = */ MatchingArraySize(input1_dims, 3, input2_dims, 3,
+ output_dims, 3);
+ /* const int height = */ MatchingArraySize(input1_dims, 2, input2_dims, 2,
+ output_dims, 2);
+ /* const int width = */ MatchingArraySize(input1_dims, 1, input2_dims, 1,
+ output_dims, 1);
+ /* const int depth = */ MatchingArraySize(input1_dims, 0, input2_dims, 0,
+ output_dims, 0);
+ DCHECK(IsPackedWithoutStrides(input1_dims));
+ DCHECK(IsPackedWithoutStrides(input2_dims));
+ DCHECK(IsPackedWithoutStrides(output_dims));
+
+ int i = 0;
+ const int size = input1_dims.sizes[3] * input1_dims.strides[3];
+#ifdef USE_NEON
+ const auto zero = vdupq_n_f32(0);
+ const auto six = vdupq_n_f32(6);
+ const auto neg_one = vdupq_n_f32(-1);
+ const auto one = vdupq_n_f32(1);
+ for (; i <= size - 16; i += 16) {
+ auto a10 = vld1q_f32(input1_data + i);
+ auto a11 = vld1q_f32(input1_data + i + 4);
+ auto a12 = vld1q_f32(input1_data + i + 8);
+ auto a13 = vld1q_f32(input1_data + i + 12);
+ auto a20 = vld1q_f32(input2_data + i);
+ auto a21 = vld1q_f32(input2_data + i + 4);
+ auto a22 = vld1q_f32(input2_data + i + 8);
+ auto a23 = vld1q_f32(input2_data + i + 12);
+ auto x0 = vaddq_f32(a10, a20);
+ auto x1 = vaddq_f32(a11, a21);
+ auto x2 = vaddq_f32(a12, a22);
+ auto x3 = vaddq_f32(a13, a23);
+ if (Ac == FusedActivationFunctionType::kRelu ||
+ Ac == FusedActivationFunctionType::kRelu6) {
+ x0 = vmaxq_f32(zero, x0);
+ x1 = vmaxq_f32(zero, x1);
+ x2 = vmaxq_f32(zero, x2);
+ x3 = vmaxq_f32(zero, x3);
+ if (Ac == FusedActivationFunctionType::kRelu6) {
+ x0 = vminq_f32(six, x0);
+ x1 = vminq_f32(six, x1);
+ x2 = vminq_f32(six, x2);
+ x3 = vminq_f32(six, x3);
+ }
+ } else if (Ac == FusedActivationFunctionType::kRelu1) {
+ x0 = vmaxq_f32(neg_one, x0);
+ x1 = vmaxq_f32(neg_one, x1);
+ x2 = vmaxq_f32(neg_one, x2);
+ x3 = vmaxq_f32(neg_one, x3);
+ x0 = vminq_f32(one, x0);
+ x1 = vminq_f32(one, x1);
+ x2 = vminq_f32(one, x2);
+ x3 = vminq_f32(one, x3);
+ }
+ vst1q_f32(output_data + i, x0);
+ vst1q_f32(output_data + i + 4, x1);
+ vst1q_f32(output_data + i + 8, x2);
+ vst1q_f32(output_data + i + 12, x3);
+ }
+ for (; i <= size - 4; i += 4) {
+ auto a1 = vld1q_f32(input1_data + i);
+ auto a2 = vld1q_f32(input2_data + i);
+ auto x = vaddq_f32(a1, a2);
+ if (Ac == FusedActivationFunctionType::kRelu ||
+ Ac == FusedActivationFunctionType::kRelu6) {
+ x = vmaxq_f32(zero, x);
+ if (Ac == FusedActivationFunctionType::kRelu6) {
+ x = vminq_f32(six, x);
+ }
+ } else if (Ac == FusedActivationFunctionType::kRelu1) {
+ x = vmaxq_f32(neg_one, x);
+ x = vminq_f32(one, x);
+ }
+ vst1q_f32(output_data + i, x);
+ }
+#endif // NEON
+
+ for (; i < size; i++) {
+ auto x = input1_data[i] + input2_data[i];
+ output_data[i] = ActivationFunction<Ac>(x);
+ }
+}
+
+template <FusedActivationFunctionType Ac>
+inline void Add(int left_shift, const uint8* input1_data,
+ const Dims<4>& input1_dims, int32 input1_offset,
+ int32 input1_multiplier, int input1_shift,
+ const uint8* input2_data, const Dims<4>& input2_dims,
+ int32 input2_offset, int32 input2_multiplier, int input2_shift,
+ int32 output_offset, int32 output_multiplier, int output_shift,
+ int32 output_activation_min, int32 output_activation_max,
+ uint8* output_data, const Dims<4>& output_dims) {
+ static_assert(Ac == FusedActivationFunctionType::kNone ||
+ Ac == FusedActivationFunctionType::kRelu ||
+ Ac == FusedActivationFunctionType::kRelu6 ||
+ Ac == FusedActivationFunctionType::kRelu1,
+ "");
+ DCHECK_LE(output_activation_min, output_activation_max);
+ if (Ac == FusedActivationFunctionType::kNone) {
+ DCHECK_EQ(output_activation_min, 0);
+ DCHECK_EQ(output_activation_max, 255);
+ }
+ gemmlowp::ScopedProfilingLabel label("Add/8bit");
+ /* const int batches = */ MatchingArraySize(input1_dims, 3, input2_dims, 3,
+ output_dims, 3);
+ /* const int height = */ MatchingArraySize(input1_dims, 2, input2_dims, 2,
+ output_dims, 2);
+ /* const int width = */ MatchingArraySize(input1_dims, 1, input2_dims, 1,
+ output_dims, 1);
+ /* const int depth = */ MatchingArraySize(input1_dims, 0, input2_dims, 0,
+ output_dims, 0);
+ DCHECK(IsPackedWithoutStrides(input1_dims));
+ DCHECK(IsPackedWithoutStrides(input2_dims));
+ DCHECK(IsPackedWithoutStrides(output_dims));
+
+ int i = 0;
+ const int size = input1_dims.sizes[3] * input1_dims.strides[3];
+ DCHECK_GT(input1_offset, -256);
+ DCHECK_GT(input2_offset, -256);
+ DCHECK_LT(input1_offset, 256);
+ DCHECK_LT(input2_offset, 256);
+#ifdef USE_NEON
+ for (; i <= size - 8; i += 8) {
+ const auto input1_val_original = vld1_u8(input1_data + i);
+ const auto input2_val_original = vld1_u8(input2_data + i);
+ const auto input1_val_s16 =
+ vreinterpretq_s16_u16(vmovl_u8(input1_val_original));
+ const auto input2_val_s16 =
+ vreinterpretq_s16_u16(vmovl_u8(input2_val_original));
+ const auto input1_val =
+ vaddq_s16(input1_val_s16, vdupq_n_s16(input1_offset));
+ const auto input2_val =
+ vaddq_s16(input2_val_s16, vdupq_n_s16(input2_offset));
+ const auto input1_val_high = vget_high_s16(input1_val);
+ const auto input1_val_low = vget_low_s16(input1_val);
+ const auto input2_val_high = vget_high_s16(input2_val);
+ const auto input2_val_low = vget_low_s16(input2_val);
+ auto x11 = vmovl_s16(input1_val_low);
+ auto x12 = vmovl_s16(input1_val_high);
+ auto x21 = vmovl_s16(input2_val_low);
+ auto x22 = vmovl_s16(input2_val_high);
+ const auto left_shift_dup = vdupq_n_s32(left_shift);
+ x11 = vshlq_s32(x11, left_shift_dup);
+ x12 = vshlq_s32(x12, left_shift_dup);
+ x21 = vshlq_s32(x21, left_shift_dup);
+ x22 = vshlq_s32(x22, left_shift_dup);
+ x11 = vqrdmulhq_n_s32(x11, input1_multiplier);
+ x12 = vqrdmulhq_n_s32(x12, input1_multiplier);
+ x21 = vqrdmulhq_n_s32(x21, input2_multiplier);
+ x22 = vqrdmulhq_n_s32(x22, input2_multiplier);
+ const auto input1_shift_dup = vdupq_n_s32(-input1_shift);
+ const auto input2_shift_dup = vdupq_n_s32(-input2_shift);
+ x11 = vshlq_s32(x11, input1_shift_dup);
+ x12 = vshlq_s32(x12, input1_shift_dup);
+ x21 = vshlq_s32(x21, input2_shift_dup);
+ x22 = vshlq_s32(x22, input2_shift_dup);
+ auto s1 = vaddq_s32(x11, x21);
+ auto s2 = vaddq_s32(x12, x22);
+ s1 = vqrdmulhq_n_s32(s1, output_multiplier);
+ s2 = vqrdmulhq_n_s32(s2, output_multiplier);
+ using gemmlowp::RoundingDivideByPOT;
+ s1 = RoundingDivideByPOT(s1, output_shift);
+ s2 = RoundingDivideByPOT(s2, output_shift);
+ const auto s1_narrowed = vmovn_s32(s1);
+ const auto s2_narrowed = vmovn_s32(s2);
+ const auto s = vaddq_s16(vcombine_s16(s1_narrowed, s2_narrowed),
+ vdupq_n_s16(output_offset));
+ vst1_u8(output_data + i, vqmovun_s16(s));
+ }
+#endif // NEON
+
+ for (; i < size; i++) {
+ const int32 input1_val = input1_offset + input1_data[i];
+ const int32 input2_val = input2_offset + input2_data[i];
+ const int32 shifted_input1_val = input1_val * (1 << left_shift);
+ const int32 shifted_input2_val = input2_val * (1 << left_shift);
+ const int32 scaled_input1_val = MultiplyByQuantizedMultiplierSmallerThanOne(
+ shifted_input1_val, input1_multiplier, input1_shift);
+ const int32 scaled_input2_val = MultiplyByQuantizedMultiplierSmallerThanOne(
+ shifted_input2_val, input2_multiplier, input2_shift);
+ const int32 raw_sum = scaled_input1_val + scaled_input2_val;
+ const int32 raw_output = MultiplyByQuantizedMultiplierSmallerThanOne(
+ raw_sum, output_multiplier, output_shift) +
+ output_offset;
+ const int32 clamped_output = std::min(
+ output_activation_max, std::max(output_activation_min, raw_output));
+ output_data[i] = static_cast<uint8>(clamped_output);
+ }
+}
+
+
+// TODO: We can implement BroadcastAdd on buffers of arbitrary
+// dimensionality if the runtime code does a single loop over one dimension
+// that handles broadcasting as the base case. The code generator would then
+// generate max(D1, D2) nested for loops.
+// TODO: BroadcastAdd is intentionally duplicated from
+// reference_ops.h. Once an optimized version is implemented and NdArrayDesc<T>
+// is no longer referenced in this file, move NdArrayDesc<T> from types.h to
+// reference_ops.h.
+template <FusedActivationFunctionType Ac>
+void BroadcastAdd(const float* input1_data, const Dims<4>& input1_dims,
+ const float* input2_data, const Dims<4>& input2_dims,
+ float* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("BroadcastAdd");
+
+ NdArrayDesc<4> desc1;
+ NdArrayDesc<4> desc2;
+ NdArrayDescsForElementwiseBroadcast(input1_dims, input2_dims, &desc1, &desc2);
+
+ // In Tensorflow, the dimensions are canonically named (batch_number, row,
+ // col, channel), with extents (batches, height, width, depth), with the
+ // trailing dimension changing most rapidly (channels has the smallest stride,
+ // typically 1 element).
+ //
+ // In generated C code, we store arrays with the dimensions reversed. The
+ // first dimension has smallest stride.
+ //
+ // We name our variables by their Tensorflow convention, but generate C code
+ // nesting loops such that the innermost loop has the smallest stride for the
+ // best cache behavior.
+ for (int b = 0; b < ArraySize(output_dims, 3); ++b) {
+ for (int y = 0; y < ArraySize(output_dims, 2); ++y) {
+ for (int x = 0; x < ArraySize(output_dims, 1); ++x) {
+ for (int c = 0; c < ArraySize(output_dims, 0); ++c) {
+ output_data[Offset(output_dims, c, x, y, b)] = ActivationFunction<Ac>(
+ input1_data[SubscriptToIndex(desc1, c, x, y, b)] +
+ input2_data[SubscriptToIndex(desc2, c, x, y, b)]);
+ }
+ }
+ }
+ }
+}
+
+template <FusedActivationFunctionType Ac>
+inline void BroadcastAdd(int left_shift, const uint8* input1_data,
+ const Dims<4>& input1_dims, int32 input1_offset,
+ int32 input1_multiplier, int input1_shift,
+ const uint8* input2_data, const Dims<4>& input2_dims,
+ int32 input2_offset, int32 input2_multiplier,
+ int input2_shift, int32 output_offset,
+ int32 output_multiplier, int output_shift,
+ int32 output_activation_min,
+ int32 output_activation_max, uint8* output_data,
+ const Dims<4>& output_dims) {
+ static_assert(Ac == FusedActivationFunctionType::kNone ||
+ Ac == FusedActivationFunctionType::kRelu ||
+ Ac == FusedActivationFunctionType::kRelu6 ||
+ Ac == FusedActivationFunctionType::kRelu1,
+ "");
+ DCHECK_LE(output_activation_min, output_activation_max);
+ if (Ac == FusedActivationFunctionType::kNone) {
+ DCHECK_EQ(output_activation_min, 0);
+ DCHECK_EQ(output_activation_max, 255);
+ }
+ gemmlowp::ScopedProfilingLabel label("BroadcastAdd/8bit");
+
+ NdArrayDesc<4> desc1;
+ NdArrayDesc<4> desc2;
+ NdArrayDescsForElementwiseBroadcast(input1_dims, input2_dims, &desc1, &desc2);
+
+ // In Tensorflow, the dimensions are canonically named (batch_number, row,
+ // col, channel), with extents (batches, height, width, depth), with the
+ // trailing dimension changing most rapidly (channels has the smallest stride,
+ // typically 1 element).
+ //
+ // In generated C code, we store arrays with the dimensions reversed. The
+ // first dimension has smallest stride.
+ //
+ // We name our variables by their Tensorflow convention, but generate C code
+ // nesting loops such that the innermost loop has the smallest stride for the
+ // best cache behavior.
+ for (int b = 0; b < ArraySize(output_dims, 3); ++b) {
+ for (int y = 0; y < ArraySize(output_dims, 2); ++y) {
+ for (int x = 0; x < ArraySize(output_dims, 1); ++x) {
+ for (int c = 0; c < ArraySize(output_dims, 0); ++c) {
+ const int32 input1_val =
+ input1_offset + input1_data[SubscriptToIndex(desc1, c, x, y, b)];
+ const int32 input2_val =
+ input2_offset + input2_data[SubscriptToIndex(desc2, c, x, y, b)];
+ const int32 shifted_input1_val = input1_val * (1 << left_shift);
+ const int32 shifted_input2_val = input2_val * (1 << left_shift);
+ const int32 scaled_input1_val =
+ MultiplyByQuantizedMultiplierSmallerThanOne(
+ shifted_input1_val, input1_multiplier, input1_shift);
+ const int32 scaled_input2_val =
+ MultiplyByQuantizedMultiplierSmallerThanOne(
+ shifted_input2_val, input2_multiplier, input2_shift);
+ const int32 raw_sum = scaled_input1_val + scaled_input2_val;
+ const int32 raw_output =
+ MultiplyByQuantizedMultiplierSmallerThanOne(
+ raw_sum, output_multiplier, output_shift) +
+ output_offset;
+ const int32 clamped_output =
+ std::min(output_activation_max,
+ std::max(output_activation_min, raw_output));
+ output_data[Offset(output_dims, c, x, y, b)] =
+ static_cast<uint8>(clamped_output);
+ }
+ }
+ }
+ }
+}
+
+template <FusedActivationFunctionType Ac>
+void Mul(const float* input1_data, const Dims<4>& input1_dims,
+ const float* input2_data, const Dims<4>& input2_dims,
+ float* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("Mul");
+ /* const int batches = */ MatchingArraySize(input1_dims, 3, input2_dims, 3,
+ output_dims, 3);
+ /* const int height = */ MatchingArraySize(input1_dims, 2, input2_dims, 2,
+ output_dims, 2);
+ /* const int width = */ MatchingArraySize(input1_dims, 1, input2_dims, 1,
+ output_dims, 1);
+ /* const int depth = */ MatchingArraySize(input1_dims, 0, input2_dims, 0,
+ output_dims, 0);
+ DCHECK(IsPackedWithoutStrides(input1_dims));
+ DCHECK(IsPackedWithoutStrides(input2_dims));
+ DCHECK(IsPackedWithoutStrides(output_dims));
+
+ int i = 0;
+ const int size = input1_dims.sizes[3] * input1_dims.strides[3];
+#ifdef USE_NEON
+ const auto zero = vdupq_n_f32(0);
+ const auto six = vdupq_n_f32(6);
+ const auto neg_one = vdupq_n_f32(-1);
+ const auto one = vdupq_n_f32(1);
+ for (; i <= size - 16; i += 16) {
+ auto a10 = vld1q_f32(input1_data + i);
+ auto a11 = vld1q_f32(input1_data + i + 4);
+ auto a12 = vld1q_f32(input1_data + i + 8);
+ auto a13 = vld1q_f32(input1_data + i + 12);
+ auto a20 = vld1q_f32(input2_data + i);
+ auto a21 = vld1q_f32(input2_data + i + 4);
+ auto a22 = vld1q_f32(input2_data + i + 8);
+ auto a23 = vld1q_f32(input2_data + i + 12);
+ auto x0 = vmulq_f32(a10, a20);
+ auto x1 = vmulq_f32(a11, a21);
+ auto x2 = vmulq_f32(a12, a22);
+ auto x3 = vmulq_f32(a13, a23);
+ if (Ac == FusedActivationFunctionType::kRelu ||
+ Ac == FusedActivationFunctionType::kRelu6) {
+ x0 = vmaxq_f32(zero, x0);
+ x1 = vmaxq_f32(zero, x1);
+ x2 = vmaxq_f32(zero, x2);
+ x3 = vmaxq_f32(zero, x3);
+ if (Ac == FusedActivationFunctionType::kRelu6) {
+ x0 = vminq_f32(six, x0);
+ x1 = vminq_f32(six, x1);
+ x2 = vminq_f32(six, x2);
+ x3 = vminq_f32(six, x3);
+ }
+ } else if (Ac == FusedActivationFunctionType::kRelu1) {
+ x0 = vmaxq_f32(neg_one, x0);
+ x1 = vmaxq_f32(neg_one, x1);
+ x2 = vmaxq_f32(neg_one, x2);
+ x3 = vmaxq_f32(neg_one, x3);
+ x0 = vminq_f32(one, x0);
+ x1 = vminq_f32(one, x1);
+ x2 = vminq_f32(one, x2);
+ x3 = vminq_f32(one, x3);
+ }
+ vst1q_f32(output_data + i, x0);
+ vst1q_f32(output_data + i + 4, x1);
+ vst1q_f32(output_data + i + 8, x2);
+ vst1q_f32(output_data + i + 12, x3);
+ }
+ for (; i <= size - 4; i += 4) {
+ auto a1 = vld1q_f32(input1_data + i);
+ auto a2 = vld1q_f32(input2_data + i);
+ auto x = vmulq_f32(a1, a2);
+ if (Ac == FusedActivationFunctionType::kRelu ||
+ Ac == FusedActivationFunctionType::kRelu6) {
+ x = vmaxq_f32(zero, x);
+ if (Ac == FusedActivationFunctionType::kRelu6) {
+ x = vminq_f32(six, x);
+ }
+ } else if (Ac == FusedActivationFunctionType::kRelu1) {
+ x = vmaxq_f32(neg_one, x);
+ x = vminq_f32(one, x);
+ }
+ vst1q_f32(output_data + i, x);
+ }
+#endif // NEON
+
+ for (; i < size; i++) {
+ auto x = input1_data[i] * input2_data[i];
+ output_data[i] = ActivationFunction<Ac>(x);
+ }
+}
+
+// TODO: We can implement BroadcastMul on buffers of arbitrary
+// dimensionality if the runtime code does a single loop over one dimension
+// that handles broadcasting as the base case. The code generator would then
+// generate max(D1, D2) nested for loops.
+// TODO: BroadcastMul is intentionally duplicated from
+// reference_ops.h. Once an optimized version is implemented and NdArrayDesc<T>
+// is no longer referenced in this file, move NdArrayDesc<T> from types.h to
+// reference_ops.h.
+template <FusedActivationFunctionType Ac>
+void BroadcastMul(const float* input1_data, const Dims<4>& input1_dims,
+ const float* input2_data, const Dims<4>& input2_dims,
+ float* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("BroadcastMul");
+
+ NdArrayDesc<4> desc1;
+ NdArrayDesc<4> desc2;
+ NdArrayDescsForElementwiseBroadcast(input1_dims, input2_dims, &desc1, &desc2);
+
+ // In Tensorflow, the dimensions are canonically named (batch_number, row,
+ // col, channel), with extents (batches, height, width, depth), with the
+ // trailing dimension changing most rapidly (channels has the smallest stride,
+ // typically 1 element).
+ //
+ // In generated C code, we store arrays with the dimensions reversed. The
+ // first dimension has smallest stride.
+ //
+ // We name our variables by their Tensorflow convention, but generate C code
+ // nesting loops such that the innermost loop has the smallest stride for the
+ // best cache behavior.
+ for (int b = 0; b < ArraySize(output_dims, 3); ++b) {
+ for (int y = 0; y < ArraySize(output_dims, 2); ++y) {
+ for (int x = 0; x < ArraySize(output_dims, 1); ++x) {
+ for (int c = 0; c < ArraySize(output_dims, 0); ++c) {
+ output_data[Offset(output_dims, c, x, y, b)] = ActivationFunction<Ac>(
+ input1_data[SubscriptToIndex(desc1, c, x, y, b)] *
+ input2_data[SubscriptToIndex(desc2, c, x, y, b)]);
+ }
+ }
+ }
+ }
+}
+
+template <FusedActivationFunctionType Ac>
+inline void BroadcastMul(const uint8* input1_data, const Dims<4>& input1_dims,
+ int32 input1_offset, const uint8* input2_data,
+ const Dims<4>& input2_dims, int32 input2_offset,
+ int32 output_offset, int32 output_multiplier,
+ int output_shift, int32 output_activation_min,
+ int32 output_activation_max, uint8* output_data,
+ const Dims<4>& output_dims) {
+ static_assert(Ac == FusedActivationFunctionType::kNone ||
+ Ac == FusedActivationFunctionType::kRelu ||
+ Ac == FusedActivationFunctionType::kRelu6 ||
+ Ac == FusedActivationFunctionType::kRelu1,
+ "");
+ DCHECK_LE(output_activation_min, output_activation_max);
+ if (Ac == FusedActivationFunctionType::kNone) {
+ DCHECK_EQ(output_activation_min, 0);
+ DCHECK_EQ(output_activation_max, 255);
+ }
+ gemmlowp::ScopedProfilingLabel label("BroadcastMul/8bit");
+
+ NdArrayDesc<4> desc1;
+ NdArrayDesc<4> desc2;
+ NdArrayDescsForElementwiseBroadcast(input1_dims, input2_dims, &desc1, &desc2);
+
+ // In Tensorflow, the dimensions are canonically named (batch_number, row,
+ // col, channel), with extents (batches, height, width, depth), with the
+ // trailing dimension changing most rapidly (channels has the smallest stride,
+ // typically 1 element).
+ //
+ // In generated C code, we store arrays with the dimensions reversed. The
+ // first dimension has smallest stride.
+ //
+ // We name our variables by their Tensorflow convention, but generate C code
+ // nesting loops such that the innermost loop has the smallest stride for the
+ // best cache behavior.
+ for (int b = 0; b < ArraySize(output_dims, 3); ++b) {
+ for (int y = 0; y < ArraySize(output_dims, 2); ++y) {
+ for (int x = 0; x < ArraySize(output_dims, 1); ++x) {
+ for (int c = 0; c < ArraySize(output_dims, 0); ++c) {
+ const int32 input1_val =
+ input1_offset + input1_data[SubscriptToIndex(desc1, c, x, y, b)];
+ const int32 input2_val =
+ input2_offset + input2_data[SubscriptToIndex(desc2, c, x, y, b)];
+ const int32 unclamped_result =
+ output_offset +
+ MultiplyByQuantizedMultiplierSmallerThanOne(
+ input1_val * input2_val, output_multiplier, output_shift);
+ const int32 clamped_output =
+ std::min(output_activation_max,
+ std::max(output_activation_min, unclamped_result));
+ output_data[Offset(output_dims, c, x, y, b)] =
+ static_cast<uint8>(clamped_output);
+ }
+ }
+ }
+ }
+}
+
+template <FusedActivationFunctionType Ac, typename Scalar>
+void Concatenation(int concat_dim, const Scalar* const* input_data,
+ const Dims<4>* const* input_dims, int inputs_count,
+ Scalar* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("Concatenation");
+ DCHECK_GT(inputs_count, 1);
+ int concat_size = 0;
+ for (int i = 0; i < inputs_count; i++) {
+ for (int j = 0; j < 4; j++) {
+ if (j != concat_dim) {
+ MatchingArraySize(*input_dims[i], j, output_dims, j);
+ }
+ }
+ concat_size += ArraySize(*input_dims[i], concat_dim);
+ }
+ DCHECK_EQ(concat_size, ArraySize(output_dims, concat_dim));
+ DCHECK(IsPackedWithoutStrides(output_dims));
+ // for now we dont have a model with a Concatenation
+ // with fused activation function.
+ DCHECK(Ac == FusedActivationFunctionType::kNone);
+ int outer_size = 1;
+ for (int i = concat_dim + 1; i < 4; i++) {
+ outer_size *= output_dims.sizes[i];
+ }
+ Scalar* output_ptr = output_data;
+ for (int k = 0; k < outer_size; k++) {
+ for (int i = 0; i < inputs_count; ++i) {
+ const int copy_size =
+ input_dims[i]->sizes[concat_dim] * input_dims[i]->strides[concat_dim];
+ memcpy(output_ptr, input_data[i] + k * copy_size,
+ copy_size * sizeof(Scalar));
+ output_ptr += copy_size;
+ }
+ }
+}
+
+template <FusedActivationFunctionType Ac, typename Scalar>
+void DepthConcatenation(const Scalar* const* input_data,
+ const Dims<4>* const* input_dims, int inputs_count,
+ Scalar* output_data, const Dims<4>& output_dims) {
+ Concatenation<Ac, Scalar>(0, input_data, input_dims, inputs_count,
+ output_data, output_dims);
+}
+
+inline void LstmCell(const float* input_data, const Dims<4>& input_dims,
+ const float* prev_activ_data,
+ const Dims<4>& prev_activ_dims, const float* weights_data,
+ const Dims<4>& weights_dims, const float* bias_data,
+ const Dims<4>& bias_dims, const float* prev_state_data,
+ const Dims<4>& prev_state_dims, float* output_state_data,
+ const Dims<4>& output_state_dims, float* output_activ_data,
+ const Dims<4>& output_activ_dims, float* concat_temp_data,
+ const Dims<4>& concat_temp_dims, float* activ_temp_data,
+ const Dims<4>& activ_temp_dims) {
+ gemmlowp::ScopedProfilingLabel label("LstmCell");
+ MatchingArraySize( // batches
+ input_dims, 3, prev_activ_dims, 3, prev_state_dims, 3, output_state_dims,
+ 3, output_activ_dims, 3);
+ MatchingArraySize( // height
+ input_dims, 2, prev_activ_dims, 2, prev_state_dims, 2, output_state_dims,
+ 2, output_activ_dims, 2);
+ MatchingArraySize( // width
+ input_dims, 1, prev_activ_dims, 1, prev_state_dims, 1, output_state_dims,
+ 1, output_activ_dims, 1);
+ CHECK_EQ(ArraySize(weights_dims, 2), 1);
+ CHECK_EQ(ArraySize(weights_dims, 3), 1);
+ const int input_depth = ArraySize(input_dims, 0);
+ const int prev_activ_depth = ArraySize(prev_activ_dims, 0);
+ const int total_input_depth = prev_activ_depth + input_depth;
+ CHECK_EQ(ArraySize(weights_dims, 0), total_input_depth);
+ CHECK_EQ(MatchingArraySize(bias_dims, 1, bias_dims, 2, bias_dims, 3), 1);
+ const int intern_activ_depth = MatchingArraySize(
+ weights_dims, 1,
+ bias_dims, 0);
+ CHECK_EQ(intern_activ_depth % 4, 0);
+ const int output_depth = MatchingArraySize(
+ prev_state_dims, 0,
+ prev_activ_dims, 0,
+ output_state_dims, 0,
+ output_activ_dims, 0);
+ CHECK_EQ(output_depth, intern_activ_depth / 4);
+
+ // Concatenate prev_activ and input data together
+ std::vector<float const*> concat_input_arrays_data;
+ std::vector<Dims<4> const*> concat_input_arrays_dims;
+ concat_input_arrays_data.push_back(input_data);
+ concat_input_arrays_data.push_back(prev_activ_data);
+ concat_input_arrays_dims.push_back(&input_dims);
+ concat_input_arrays_dims.push_back(&prev_activ_dims);
+ Concatenation<FusedActivationFunctionType::kNone, float>(
+ 0, &(concat_input_arrays_data[0]), &(concat_input_arrays_dims[0]),
+ concat_input_arrays_data.size(), concat_temp_data, concat_temp_dims);
+
+ // Fully connected
+ FullyConnected<FusedActivationFunctionType::kNone>(
+ concat_temp_data, concat_temp_dims, weights_data, weights_dims, bias_data,
+ bias_dims, activ_temp_data, activ_temp_dims);
+
+ // Map raw arrays to Eigen arrays so we can use Eigen's optimized array
+ // operations.
+ ArrayMap<float> activ_temp_map =
+ MapAsArrayWithFirstDimAsRows(activ_temp_data, activ_temp_dims);
+ auto input_gate_sm = activ_temp_map.block(0 * output_depth, 0, output_depth,
+ activ_temp_map.cols());
+ auto new_input_sm = activ_temp_map.block(1 * output_depth, 0, output_depth,
+ activ_temp_map.cols());
+ auto forget_gate_sm = activ_temp_map.block(2 * output_depth, 0, output_depth,
+ activ_temp_map.cols());
+ auto output_gate_sm = activ_temp_map.block(3 * output_depth, 0, output_depth,
+ activ_temp_map.cols());
+ ArrayMap<const float> prev_state_map =
+ MapAsArrayWithFirstDimAsRows(prev_state_data, prev_state_dims);
+ ArrayMap<float> output_state_map =
+ MapAsArrayWithFirstDimAsRows(output_state_data, output_state_dims);
+ ArrayMap<float> output_activ_map =
+ MapAsArrayWithFirstDimAsRows(output_activ_data, output_activ_dims);
+
+ // Combined memory state and final output calculation
+ gemmlowp::ScopedProfilingLabel label2("MemoryStateAndFinalOutput");
+ output_state_map =
+ input_gate_sm.unaryExpr(Eigen::internal::scalar_sigmoid_op<float>()) *
+ new_input_sm.tanh() +
+ forget_gate_sm.unaryExpr(Eigen::internal::scalar_sigmoid_op<float>()) *
+ prev_state_map;
+ output_activ_map =
+ output_gate_sm.unaryExpr(Eigen::internal::scalar_sigmoid_op<float>()) *
+ output_state_map.tanh();
+}
+
+template <FusedActivationFunctionType Ac, typename Scalar>
+void TensorFlowSplit(const Scalar* input_data, const Dims<4>& input_dims,
+ int outputs_count, Scalar* const* output_data,
+ const Dims<4>* const* output_dims) {
+ gemmlowp::ScopedProfilingLabel label("TensorFlowSplit");
+ DCHECK_GE(outputs_count, 1);
+ for (int i = 0; i < outputs_count; i++) {
+ /* batches = */ MatchingArraySize(*output_dims[i], 3, input_dims, 3);
+ /* height = */ MatchingArraySize(*output_dims[i], 2, input_dims, 2);
+ /* width = */ MatchingArraySize(*output_dims[i], 1, input_dims, 1);
+ }
+ const int batches = MatchingArraySize(*output_dims[0], 3, input_dims, 3);
+ const int height = MatchingArraySize(*output_dims[0], 2, input_dims, 2);
+ const int width = MatchingArraySize(*output_dims[0], 1, input_dims, 1);
+ DCHECK(IsPackedWithoutStrides(input_dims));
+ // for now we dont have a model with a TensorFlowSplit
+ // with fused activation function.
+ DCHECK(Ac == FusedActivationFunctionType::kNone);
+ const int whb = width * height * batches;
+ const Scalar* input_ptr = input_data;
+ for (int k = 0; k < whb; k++) {
+ for (int i = 0; i < outputs_count; ++i) {
+ memcpy(output_data[i] + k * output_dims[i]->sizes[0], input_ptr,
+ output_dims[i]->sizes[0] * sizeof(Scalar));
+ input_ptr += output_dims[i]->sizes[0];
+ }
+ }
+}
+
+inline int NodeOffset(int b, int h, int w, int height, int width) {
+ return (b * height + h) * width + w;
+}
+
+template <FusedActivationFunctionType Ac>
+void AveragePool(const float* input_data, const Dims<4>& input_dims,
+ int stride_width, int stride_height,
+ int pad_width, int pad_height, int kwidth, int kheight,
+ float* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("AveragePool");
+ const int batches = MatchingArraySize(input_dims, 3, output_dims, 3);
+ const int input_height = ArraySize(input_dims, 2);
+ const int input_width = ArraySize(input_dims, 1);
+ const int output_height = ArraySize(output_dims, 2);
+ const int output_width = ArraySize(output_dims, 1);
+ const int depth = MatchingArraySize(input_dims, 0, output_dims, 0);
+
+ const auto in_mat = MapAsMatrixWithFirstDimAsRows(input_data, input_dims);
+ auto out_mat = MapAsMatrixWithFirstDimAsRows(output_data, output_dims);
+ // TODO: get rid of the dynamic memory allocation here!
+ Eigen::VectorXf out_count(out_mat.cols());
+ out_count.setZero();
+ // Prefill the output to 0.
+ out_mat.setZero();
+ for (int b = 0; b < batches; ++b) {
+ for (int h = 0; h < input_height; ++h) {
+ for (int w = 0; w < input_width; ++w) {
+ // (h_start, h_end) * (w_start, w_end) is the range that the input
+ // vector projects to.
+ int hpad = h + pad_height;
+ int wpad = w + pad_width;
+ int h_start = (hpad < kheight) ? 0 : (hpad - kheight) / stride_height + 1;
+ int h_end = std::min(hpad / stride_height + 1, output_height);
+ int w_start = (wpad < kwidth) ? 0 : (wpad - kwidth) / stride_width + 1;
+ int w_end = std::min(wpad / stride_width + 1, output_width);
+ // compute elementwise sum
+ for (int ph = h_start; ph < h_end; ++ph) {
+ for (int pw = w_start; pw < w_end; ++pw) {
+ int out_offset = NodeOffset(b, ph, pw, output_height, output_width);
+ out_mat.col(out_offset) +=
+ in_mat.col(NodeOffset(b, h, w, input_height, input_width));
+ out_count(out_offset)++;
+ }
+ }
+ }
+ }
+ }
+ // Divide the output by the actual number of elements being averaged over
+ DCHECK_GT(out_count.minCoeff(), 0);
+ out_mat.array().rowwise() /= out_count.transpose().array();
+
+ for (int b = 0; b < batches; ++b) {
+ for (int y = 0; y < output_height; ++y) {
+ for (int x = 0; x < output_width; ++x) {
+ for (int c = 0; c < depth; ++c) {
+ output_data[Offset(output_dims, c, x, y, b)] = ActivationFunction<Ac>(
+ output_data[Offset(output_dims, c, x, y, b)]);
+ }
+ }
+ }
+ }
+}
+
+template <FusedActivationFunctionType Ac>
+void AveragePool(const uint8* input_data, const Dims<4>& input_dims,
+ int stride_width, int stride_height,
+ int pad_width, int pad_height, int filter_width,
+ int filter_height, int32 output_activation_min,
+ int32 output_activation_max, uint8* output_data,
+ const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("AveragePool/8bit");
+ static_assert(Ac == FusedActivationFunctionType::kNone ||
+ Ac == FusedActivationFunctionType::kRelu ||
+ Ac == FusedActivationFunctionType::kRelu6 ||
+ Ac == FusedActivationFunctionType::kRelu1,
+ "");
+ DCHECK_LE(output_activation_min, output_activation_max);
+ if (Ac == FusedActivationFunctionType::kNone) {
+ DCHECK_EQ(output_activation_min, 0);
+ DCHECK_EQ(output_activation_max, 255);
+ }
+ const int batches = MatchingArraySize(input_dims, 3, output_dims, 3);
+ const int depth = MatchingArraySize(input_dims, 0, output_dims, 0);
+ const int input_height = ArraySize(input_dims, 2);
+ const int input_width = ArraySize(input_dims, 1);
+ const int output_height = ArraySize(output_dims, 2);
+ const int output_width = ArraySize(output_dims, 1);
+ for (int batch = 0; batch < batches; ++batch) {
+ for (int out_y = 0; out_y < output_height; ++out_y) {
+ for (int out_x = 0; out_x < output_width; ++out_x) {
+ const int in_x_origin = (out_x * stride_width) - pad_width;
+ const int in_y_origin = (out_y * stride_height) - pad_height;
+ const int filter_x_start = std::max(0, -in_x_origin);
+ const int filter_x_end =
+ std::min(filter_width, input_width - in_x_origin);
+ const int filter_y_start = std::max(0, -in_y_origin);
+ const int filter_y_end =
+ std::min(filter_height, input_height - in_y_origin);
+ const int filter_count =
+ (filter_x_end - filter_x_start) * (filter_y_end - filter_y_start);
+ // TODO: Add a dynamic buffer allocation path instead of hardcoded size.
+ static constexpr int kAccBufferMaxSize = 2048;
+ DCHECK_LE(depth, kAccBufferMaxSize);
+ uint16 acc[kAccBufferMaxSize];
+ memset(acc, 0, depth * sizeof(acc[0]));
+ const uint8* input_ptr =
+ input_data + input_dims.strides[1] * in_x_origin +
+ input_dims.strides[2] * in_y_origin + input_dims.strides[3] * batch;
+ for (int fy = filter_y_start; fy < filter_y_end; fy++) {
+ const uint8* input_row_ptr = input_ptr + fy * input_dims.strides[2] +
+ filter_x_start * input_dims.strides[1];
+ for (int fx = filter_x_start; fx < filter_x_end; fx++) {
+ int channel = 0;
+#ifdef USE_NEON
+ for (; channel <= depth - 16; channel += 16) {
+ uint16x8_t acc_reg[2];
+ for (int i = 0; i < 2; i++) {
+ acc_reg[i] = vld1q_u16(acc + channel + 8 * i);
+ }
+ uint8x16_t input_reg = vld1q_u8(input_row_ptr);
+ input_row_ptr += 16;
+ acc_reg[0] = vaddw_u8(acc_reg[0], vget_low_u8(input_reg));
+ acc_reg[1] = vaddw_u8(acc_reg[1], vget_high_u8(input_reg));
+ for (int i = 0; i < 2; i++) {
+ vst1q_u16(acc + channel + 8 * i, acc_reg[i]);
+ }
+ }
+ for (; channel <= depth - 8; channel += 8) {
+ uint16x8_t acc_reg = vld1q_u16(acc + channel);
+ uint8x8_t input_reg = vld1_u8(input_row_ptr);
+ input_row_ptr += 8;
+ acc_reg = vaddw_u8(acc_reg, input_reg);
+ vst1q_u16(acc + channel, acc_reg);
+ }
+#endif
+ for (; channel < depth; ++channel) {
+ acc[channel] += *input_row_ptr++;
+ }
+ }
+ }
+ uint8* output_ptr =
+ output_data + Offset(output_dims, 0, out_x, out_y, batch);
+ int channel = 0;
+#ifdef USE_NEON
+#define AVGPOOL_DIVIDING_BY(FILTER_COUNT) \
+ if (filter_count == FILTER_COUNT) { \
+ for (; channel <= depth - 8; channel += 8) { \
+ uint16 buf[8]; \
+ for (int i = 0; i < 8; i++) { \
+ buf[i] = (acc[channel + i] + FILTER_COUNT / 2) / FILTER_COUNT; \
+ } \
+ uint8x8_t buf8 = vqmovn_u16(vld1q_u16(buf)); \
+ buf8 = vmin_u8(buf8, vdup_n_u8(output_activation_max)); \
+ buf8 = vmax_u8(buf8, vdup_n_u8(output_activation_min)); \
+ vst1_u8(output_ptr + channel, buf8); \
+ } \
+ }
+ AVGPOOL_DIVIDING_BY(9)
+ AVGPOOL_DIVIDING_BY(15)
+#undef AVGPOOL_DIVIDING_BY
+ for (; channel <= depth - 8; channel += 8) {
+ uint16 buf[8];
+ for (int i = 0; i < 8; i++) {
+ buf[i] = (acc[channel + i] + filter_count / 2) / filter_count;
+ }
+ uint8x8_t buf8 = vqmovn_u16(vld1q_u16(buf));
+ buf8 = vmin_u8(buf8, vdup_n_u8(output_activation_max));
+ buf8 = vmax_u8(buf8, vdup_n_u8(output_activation_min));
+ vst1_u8(output_ptr + channel, buf8);
+ }
+#endif
+ for (; channel < depth; ++channel) {
+ uint16 a = (acc[channel] + filter_count / 2) / filter_count;
+ a = std::max<uint16>(a, output_activation_min);
+ a = std::min<uint16>(a, output_activation_max);
+ output_ptr[channel] = static_cast<uint8>(a);
+ }
+ }
+ }
+ }
+}
+
+template <FusedActivationFunctionType Ac>
+void MaxPool(const float* input_data, const Dims<4>& input_dims,
+ int stride_width, int stride_height,
+ int pad_width, int pad_height, int kwidth, int kheight,
+ float* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("MaxPool");
+ const int batches = MatchingArraySize(input_dims, 3, output_dims, 3);
+ const int input_height = ArraySize(input_dims, 2);
+ const int input_width = ArraySize(input_dims, 1);
+ const int output_height = ArraySize(output_dims, 2);
+ const int output_width = ArraySize(output_dims, 1);
+ const int depth = MatchingArraySize(input_dims, 0, output_dims, 0);
+
+ const auto in_mat = MapAsMatrixWithFirstDimAsRows(input_data, input_dims);
+ auto out_mat = MapAsMatrixWithFirstDimAsRows(output_data, output_dims);
+ // Prefill the output to minimum representable float value
+ out_mat.setConstant(std::numeric_limits<float>::lowest());
+ for (int b = 0; b < batches; ++b) {
+ for (int h = 0; h < input_height; ++h) {
+ for (int w = 0; w < input_width; ++w) {
+ // (h_start, h_end) * (w_start, w_end) is the range that the input
+ // vector projects to.
+ int hpad = h + pad_height;
+ int wpad = w + pad_width;
+ int h_start = (hpad < kheight) ? 0 : (hpad - kheight) / stride_height + 1;
+ int h_end = std::min(hpad / stride_height + 1, output_height);
+ int w_start = (wpad < kwidth) ? 0 : (wpad - kwidth) / stride_width + 1;
+ int w_end = std::min(wpad / stride_width + 1, output_width);
+ // compute elementwise sum
+ for (int ph = h_start; ph < h_end; ++ph) {
+ for (int pw = w_start; pw < w_end; ++pw) {
+ int out_offset = NodeOffset(b, ph, pw, output_height, output_width);
+ out_mat.col(out_offset) =
+ out_mat.col(out_offset)
+ .cwiseMax(in_mat.col(
+ NodeOffset(b, h, w, input_height, input_width)));
+ }
+ }
+ }
+ }
+ }
+
+ for (int b = 0; b < batches; ++b) {
+ for (int y = 0; y < output_height; ++y) {
+ for (int x = 0; x < output_width; ++x) {
+ for (int c = 0; c < depth; ++c) {
+ output_data[Offset(output_dims, c, x, y, b)] = ActivationFunction<Ac>(
+ output_data[Offset(output_dims, c, x, y, b)]);
+ }
+ }
+ }
+ }
+}
+
+template <FusedActivationFunctionType Ac>
+void MaxPool(const uint8* input_data, const Dims<4>& input_dims,
+ int stride_width, int stride_height,
+ int pad_width, int pad_height, int filter_width, int filter_height,
+ int32 output_activation_min, int32 output_activation_max,
+ uint8* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("MaxPool/8bit");
+ static_assert(Ac == FusedActivationFunctionType::kNone ||
+ Ac == FusedActivationFunctionType::kRelu ||
+ Ac == FusedActivationFunctionType::kRelu6 ||
+ Ac == FusedActivationFunctionType::kRelu1,
+ "");
+ DCHECK_LE(output_activation_min, output_activation_max);
+ if (Ac == FusedActivationFunctionType::kNone) {
+ DCHECK_EQ(output_activation_min, 0);
+ DCHECK_EQ(output_activation_max, 255);
+ }
+ const int batches = MatchingArraySize(input_dims, 3, output_dims, 3);
+ const int depth = MatchingArraySize(input_dims, 0, output_dims, 0);
+ const int input_height = ArraySize(input_dims, 2);
+ const int input_width = ArraySize(input_dims, 1);
+ const int output_height = ArraySize(output_dims, 2);
+ const int output_width = ArraySize(output_dims, 1);
+ for (int batch = 0; batch < batches; ++batch) {
+ for (int out_y = 0; out_y < output_height; ++out_y) {
+ for (int out_x = 0; out_x < output_width; ++out_x) {
+ const int in_x_origin = (out_x * stride_width) - pad_width;
+ const int in_y_origin = (out_y * stride_height) - pad_height;
+ const int filter_x_start = std::max(0, -in_x_origin);
+ const int filter_x_end =
+ std::min(filter_width, input_width - in_x_origin);
+ const int filter_y_start = std::max(0, -in_y_origin);
+ const int filter_y_end =
+ std::min(filter_height, input_height - in_y_origin);
+ // TODO: Add a dynamic buffer allocation path instead of hardcoded size.
+ static constexpr int kAccBufferMaxSize = 2048;
+ DCHECK_LE(depth, kAccBufferMaxSize);
+ uint8 acc[kAccBufferMaxSize];
+ memset(acc, 0, depth * sizeof(acc[0]));
+ const uint8* input_ptr =
+ input_data + input_dims.strides[1] * in_x_origin +
+ input_dims.strides[2] * in_y_origin + input_dims.strides[3] * batch;
+ for (int fy = filter_y_start; fy < filter_y_end; fy++) {
+ const uint8* input_row_ptr = input_ptr + fy * input_dims.strides[2] +
+ filter_x_start * input_dims.strides[1];
+ for (int fx = filter_x_start; fx < filter_x_end; fx++) {
+ int channel = 0;
+#ifdef USE_NEON
+ for (; channel <= depth - 16; channel += 16) {
+ uint8x16_t acc_reg = vld1q_u8(acc + channel);
+ uint8x16_t input_reg = vld1q_u8(input_row_ptr);
+ input_row_ptr += 16;
+ acc_reg = vmaxq_u8(acc_reg, input_reg);
+ vst1q_u8(acc + channel, acc_reg);
+ }
+
+ for (; channel <= depth - 8; channel += 8) {
+ uint8x8_t acc_reg = vld1_u8(acc + channel);
+ uint8x8_t input_reg = vld1_u8(input_row_ptr);
+ input_row_ptr += 8;
+ acc_reg = vmax_u8(acc_reg, input_reg);
+ vst1_u8(acc + channel, acc_reg);
+ }
+#endif
+ for (; channel < depth; ++channel) {
+ acc[channel] = std::max(acc[channel], *input_row_ptr++);
+ }
+ }
+ }
+ uint8* output_ptr =
+ output_data + Offset(output_dims, 0, out_x, out_y, batch);
+ int channel = 0;
+#ifdef USE_NEON
+ for (; channel <= depth - 16; channel += 16) {
+ uint8x16_t a = vld1q_u8(acc + channel);
+ a = vminq_u8(a, vdupq_n_u8(output_activation_max));
+ a = vmaxq_u8(a, vdupq_n_u8(output_activation_min));
+ vst1q_u8(output_ptr + channel, a);
+ }
+ for (; channel <= depth - 8; channel += 8) {
+ uint8x8_t a = vld1_u8(acc + channel);
+ a = vmin_u8(a, vdup_n_u8(output_activation_max));
+ a = vmax_u8(a, vdup_n_u8(output_activation_min));
+ vst1_u8(output_ptr + channel, a);
+ }
+#endif
+ for (; channel < depth; ++channel) {
+ uint8 a = acc[channel];
+ a = std::max<uint8>(a, output_activation_min);
+ a = std::min<uint8>(a, output_activation_max);
+ output_ptr[channel] = static_cast<uint8>(a);
+ }
+ }
+ }
+ }
+}
+
+template <FusedActivationFunctionType Ac>
+void L2Pool(const float* input_data, const Dims<4>& input_dims,
+ int stride_width, int stride_height,
+ int pad_width, int pad_height, int filter_width, int filter_height,
+ float* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("L2Pool");
+ const int batches = MatchingArraySize(input_dims, 3, output_dims, 3);
+ const int input_height = ArraySize(input_dims, 2);
+ const int input_width = ArraySize(input_dims, 1);
+ const int output_height = ArraySize(output_dims, 2);
+ const int output_width = ArraySize(output_dims, 1);
+ // Actually carry out L2 Pool. Code is written in forward mode: we go through
+ // the input values once, and write to all the pooled regions that it maps to.
+ const auto in_mat = MapAsMatrixWithFirstDimAsRows(input_data, input_dims);
+ auto out_mat = MapAsMatrixWithFirstDimAsRows(output_data, output_dims);
+ Eigen::VectorXf in_square(in_mat.rows());
+ Eigen::VectorXf out_count(out_mat.cols());
+ out_count.setZero();
+ // Prefill the output to 0.
+ out_mat.setZero();
+ for (int b = 0; b < batches; ++b) {
+ for (int h = 0; h < input_height; ++h) {
+ for (int w = 0; w < input_width; ++w) {
+ // (h_start, h_end) * (w_start, w_end) is the range that the input
+ // vector projects to.
+ const int hpad = h + pad_height;
+ const int wpad = w + pad_width;
+ const int h_start =
+ (hpad < filter_height) ? 0 : (hpad - filter_height) / stride_height + 1;
+ const int h_end = std::min(hpad / stride_height + 1, output_height);
+ const int w_start =
+ (wpad < filter_width) ? 0 : (wpad - filter_width) / stride_width + 1;
+ const int w_end = std::min(wpad / stride_width + 1, output_width);
+ // pre-compute square
+ const int in_offset = w + input_width * (h + input_height * b);
+ in_square =
+ in_mat.col(in_offset).array() * in_mat.col(in_offset).array();
+ // compute elementwise sum of squares
+ for (int ph = h_start; ph < h_end; ++ph) {
+ for (int pw = w_start; pw < w_end; ++pw) {
+ const int out_offset = pw + output_width * (ph + output_height * b);
+ out_mat.col(out_offset) += in_square;
+ out_count(out_offset)++;
+ }
+ }
+ }
+ }
+ }
+
+ out_count = out_count.array().inverse();
+ out_mat =
+ (out_mat.array().rowwise() * out_count.transpose().array()).cwiseSqrt();
+}
+
+inline void LocalResponseNormalization(const float* input_data,
+ const Dims<4>& input_dims, int range,
+ float bias, float alpha, float beta,
+ float* output_data,
+ const Dims<4>& output_dims) {
+ /* const int batches = */ MatchingArraySize(input_dims, 3, output_dims, 3);
+ /* const int height = */ MatchingArraySize(input_dims, 2, output_dims, 2);
+ /* const int width = */ MatchingArraySize(input_dims, 1, output_dims, 1);
+ /* const int depth = */ MatchingArraySize(input_dims, 0, output_dims, 0);
+
+ const auto data_in = MapAsMatrixWithFirstDimAsRows(input_data, input_dims);
+ auto data_out = MapAsMatrixWithFirstDimAsRows(output_data, output_dims);
+
+ // Carry out local response normalization, vector by vector.
+ // Since the data are stored column major, making row-wise operation
+ // probably not memory efficient anyway, we do an explicit for loop over
+ // the columns.
+ const int double_range = range * 2;
+ Eigen::VectorXf padded_square(data_in.rows() + double_range);
+ padded_square.setZero();
+ for (int r = 0; r < data_in.cols(); ++r) {
+ // Do local response normalization for data_in(:, r)
+ // first, compute the square and store them in buffer for repeated use
+ padded_square.block(range, 0, data_in.rows(), 1) =
+ data_in.col(r).cwiseProduct(data_in.col(r)) * alpha;
+ // Then, compute the scale and writes them to data_out
+ float accumulated_scale = 0;
+ for (int i = 0; i < double_range; ++i) {
+ accumulated_scale += padded_square(i);
+ }
+ for (int i = 0; i < data_in.rows(); ++i) {
+ accumulated_scale += padded_square(i + double_range);
+ data_out(i, r) = bias + accumulated_scale;
+ accumulated_scale -= padded_square(i);
+ }
+ }
+
+ // In a few cases, the pow computation could benefit from speedups.
+ if (beta == 1) {
+ data_out.array() = data_in.array() * data_out.array().inverse();
+ } else if (beta == 0.5) {
+ data_out.array() = data_in.array() * data_out.array().sqrt().inverse();
+ } else {
+ data_out.array() = data_in.array() * data_out.array().pow(-beta);
+ }
+}
+
+inline void Softmax(const float* input_data, const Dims<4>& input_dims,
+ float beta, float* output_data,
+ const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("Softmax");
+ /* const int batches = */ MatchingArraySize(input_dims, 3, output_dims, 3);
+ /* const int height = */ MatchingArraySize(input_dims, 2, output_dims, 2);
+ /* const int width = */ MatchingArraySize(input_dims, 1, output_dims, 1);
+ /* const int depth = */ MatchingArraySize(input_dims, 0, output_dims, 0);
+
+ const auto in_mat = MapAsMatrixWithFirstDimAsRows(input_data, input_dims);
+ auto out_mat = MapAsMatrixWithFirstDimAsRows(output_data, output_dims);
+ // Compute the exponential first, removing the max coefficient for numerical
+ // stability.
+ out_mat = (in_mat.rowwise() - in_mat.colwise().maxCoeff()).array() * beta;
+ // We are separating out the exp function so that exp can be vectorized.
+ out_mat = out_mat.array().exp();
+ // Normalize to get the activations.
+ Eigen::Array<float, 1, Eigen::Dynamic> scale =
+ out_mat.array().colwise().sum().inverse();
+ out_mat.array().rowwise() *= scale;
+}
+
+inline void Softmax(const uint8* input_data, const Dims<4>& input_dims,
+ int32 input_beta_multiplier, int32 input_beta_left_shift,
+ int diff_min, uint8* output_data,
+ const Dims<4>& output_dims) {
+ // The representation chosen for the input to the exp() function is Q5.26.
+ // We need to leave extra space since values that we skip might be as large as
+ // -32 before multiplying by input_beta_multiplier, and therefore as large as
+ // -16 afterwards. Note that exp(-8) is definitely not insignificant to
+ // accumulation, but exp(-16) definitely is.
+ static const int kScaledDiffIntegerBits = 5;
+ static const int kAccumulationIntegerBits = 12;
+ using FixedPointScaledDiff =
+ gemmlowp::FixedPoint<int32, kScaledDiffIntegerBits>;
+ using FixedPointAccum = gemmlowp::FixedPoint<int32, kAccumulationIntegerBits>;
+ using FixedPoint0 = gemmlowp::FixedPoint<int32, 0>;
+
+ gemmlowp::ScopedProfilingLabel label("Softmax");
+ const int batches = MatchingArraySize(input_dims, 3, output_dims, 3);
+ const int height = MatchingArraySize(input_dims, 2, output_dims, 2);
+ const int width = MatchingArraySize(input_dims, 1, output_dims, 1);
+ const int depth = MatchingArraySize(input_dims, 0, output_dims, 0);
+
+ for (int b = 0; b < batches; ++b) {
+ for (int x = 0; x < width; ++x) {
+ for (int y = 0; y < height; ++y) {
+ uint8 max_in_row = 0;
+ for (int c = 0; c < depth; ++c) {
+ max_in_row =
+ std::max(max_in_row, input_data[Offset(input_dims, c, x, y, b)]);
+ }
+
+ FixedPointAccum sum_of_exps = FixedPointAccum::Zero();
+ for (int c = 0; c < depth; ++c) {
+ int32 input_diff =
+ static_cast<int32>(input_data[Offset(input_dims, c, x, y, b)]) -
+ max_in_row;
+ if (input_diff >= diff_min) {
+ const int32 input_diff_rescaled =
+ MultiplyByQuantizedMultiplierGreaterThanOne(
+ input_diff, input_beta_multiplier, input_beta_left_shift);
+ const FixedPointScaledDiff scaled_diff_f8 =
+ FixedPointScaledDiff::FromRaw(input_diff_rescaled);
+ sum_of_exps =
+ sum_of_exps + gemmlowp::Rescale<kAccumulationIntegerBits>(
+ exp_on_negative_values(scaled_diff_f8));
+ }
+ }
+
+ int32 fixed_sum_of_exps = sum_of_exps.raw();
+ // TODO: Use a NEON intrinsic like vclzq_u32 instead.
+ int headroom_plus_one =
+ __builtin_clz(static_cast<uint32>(fixed_sum_of_exps));
+ // This is the number of bits to the left of the binary point above 1.0.
+ // Consider fixed_sum_of_exps=1.25. In that case shifted_scale=0.8 and
+ // no later adjustment will be needed.
+ int num_bits_over_unit = kAccumulationIntegerBits - headroom_plus_one;
+ int32 shifted_sum_minus_one = static_cast<int32>(
+ (static_cast<uint32>(fixed_sum_of_exps) << headroom_plus_one) -
+ (static_cast<uint32>(1) << 31));
+
+ FixedPoint0 shifted_scale = gemmlowp::one_over_one_plus_x_for_x_in_0_1(
+ FixedPoint0::FromRaw(shifted_sum_minus_one));
+
+ for (int c = 0; c < depth; ++c) {
+ int32 input_diff =
+ static_cast<int32>(input_data[Offset(input_dims, c, x, y, b)]) -
+ max_in_row;
+ if (input_diff >= diff_min) {
+ const int32 input_diff_rescaled =
+ MultiplyByQuantizedMultiplierGreaterThanOne(
+ input_diff, input_beta_multiplier, input_beta_left_shift);
+ const FixedPointScaledDiff scaled_diff_f8 =
+ FixedPointScaledDiff::FromRaw(input_diff_rescaled);
+
+ FixedPoint0 exp_in_0 = exp_on_negative_values(scaled_diff_f8);
+ int32 unsat_output = gemmlowp::RoundingDivideByPOT(
+ (shifted_scale * exp_in_0).raw(), num_bits_over_unit + 31 - 8);
+
+ output_data[Offset(output_dims, c, x, y, b)] =
+ std::max(std::min(unsat_output, 255), 0);
+
+ } else {
+ output_data[Offset(output_dims, c, x, y, b)] = 0;
+ }
+ }
+ }
+ }
+ }
+}
+
+inline void Logistic(const float* input_data, const Dims<4>& input_dims,
+ float* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("Logistic");
+ auto input_map = MapAsVector(input_data, input_dims);
+ auto output_map = MapAsVector(output_data, output_dims);
+ output_map.array() =
+ input_map.array().unaryExpr(Eigen::internal::scalar_sigmoid_op<float>());
+}
+
+inline void Logistic(const uint8* input_data, const Dims<4>& input_dims,
+ int32 input_zero_point, int32 input_range_radius,
+ int32 input_multiplier, int input_left_shift,
+ uint8* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("Logistic");
+ const int batches = MatchingArraySize(input_dims, 3, output_dims, 3);
+ const int height = MatchingArraySize(input_dims, 2, output_dims, 2);
+ const int width = MatchingArraySize(input_dims, 1, output_dims, 1);
+ const int depth = MatchingArraySize(input_dims, 0, output_dims, 0);
+ for (int b = 0; b < batches; ++b) {
+ for (int y = 0; y < height; ++y) {
+ for (int x = 0; x < width; ++x) {
+ for (int c = 0; c < depth; ++c) {
+ const uint8 input_val_u8 = input_data[Offset(input_dims, c, x, y, b)];
+ const int32 input_val_centered =
+ static_cast<int32>(input_val_u8) - input_zero_point;
+ uint8 output_val;
+ if (input_val_centered < -input_range_radius) {
+ output_val = 0;
+ } else if (input_val_centered > input_range_radius) {
+ output_val = 255;
+ } else {
+ const int32 input_val_rescaled =
+ MultiplyByQuantizedMultiplierGreaterThanOne(
+ input_val_centered, input_multiplier, input_left_shift);
+ using FixedPoint4 = gemmlowp::FixedPoint<int32, 4>;
+ using FixedPoint0 = gemmlowp::FixedPoint<int32, 0>;
+ const FixedPoint4 input_val_f4 =
+ FixedPoint4::FromRaw(input_val_rescaled);
+ const FixedPoint0 output_val_f0 = gemmlowp::logistic(input_val_f4);
+ using gemmlowp::RoundingDivideByPOT;
+ int32 output_val_s32 = RoundingDivideByPOT(output_val_f0.raw(), 23);
+ if (output_val_s32 == 256) {
+ output_val_s32 = 255;
+ }
+ DCHECK_GE(output_val_s32, 0);
+ DCHECK_LE(output_val_s32, 255);
+ output_val = static_cast<uint8>(output_val_s32);
+ }
+ output_data[Offset(output_dims, c, x, y, b)] = output_val;
+ }
+ }
+ }
+ }
+}
+
+inline void Tanh(const float* input_data, const Dims<4>& input_dims,
+ float* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("Tanh");
+ auto input_map = MapAsVector(input_data, input_dims);
+ auto output_map = MapAsVector(output_data, output_dims);
+ output_map.array() = input_map.array().tanh();
+}
+
+inline void Dequantize(const uint8* input_data, const Dims<4>& input_dims,
+ int32 zero_point, double scale, float* output_data,
+ const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("Dequantize");
+ const int batches = MatchingArraySize(input_dims, 3, output_dims, 3);
+ const int height = MatchingArraySize(input_dims, 2, output_dims, 2);
+ const int width = MatchingArraySize(input_dims, 1, output_dims, 1);
+ const int depth = MatchingArraySize(input_dims, 0, output_dims, 0);
+ for (int b = 0; b < batches; ++b) {
+ for (int y = 0; y < height; ++y) {
+ for (int x = 0; x < width; ++x) {
+ for (int c = 0; c < depth; ++c) {
+ int32 val = input_data[Offset(input_dims, c, x, y, b)];
+ float result = static_cast<float>(scale * (val - zero_point));
+ output_data[Offset(output_dims, c, x, y, b)] = result;
+ }
+ }
+ }
+ }
+}
+
+inline void FakeQuant(const float* input_data, const Dims<4>& input_dims,
+ float rmin, float rmax, float* output_data,
+ const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("FakeQuant");
+
+ // 0 should always be a representable value. Let's assume that the initial
+ // min,max range contains 0.
+ DCHECK_LE(rmin, 0.);
+ DCHECK_GE(rmax, 0.);
+
+ // Determine quantization parameters: zero_point, scale.
+ using Integer = uint8;
+ const Integer qmin = std::numeric_limits<Integer>::min();
+ const Integer qmax = std::numeric_limits<Integer>::max();
+ const float qmin_float = qmin;
+ const float qmax_float = qmax;
+ int32 zero_point = 0;
+ float scale = 0.f;
+ // If rmin==rmax, both must be zero per the above assertion,
+ // so we are done.
+ if (rmin != rmax) {
+ // First determine the scale.
+ scale = (rmax - rmin) / (qmax_float - qmin_float);
+
+ // Zero-point computation.
+ // First the initial floating-point computation. The zero-point can be
+ // determined from solving an affine equation for any known pair
+ // (real value, corresponding quantized value).
+ // We know two such pairs: (rmin, qmin) and (rmax, qmax).
+ // The arithmetic error on the zero point computed from either pair
+ // will be roughly machine_epsilon * (sum of absolute values of terms)
+ // so we want to use the variant that adds the smaller terms.
+ const float zero_point_from_min = qmin_float - rmin / scale;
+ const float zero_point_from_max = qmax_float - rmax / scale;
+ const float zero_point_from_min_error =
+ std::abs(qmin_float) + std::abs(rmin / scale);
+ const float zero_point_from_max_error =
+ std::abs(qmax_float) + std::abs(rmax / scale);
+
+ const float zero_point_float =
+ zero_point_from_min_error < zero_point_from_max_error
+ ? zero_point_from_min
+ : zero_point_from_max;
+
+ // Now we need to nudge the zero point to be an integer
+ // (our zero points are integer, and this is motivated by the requirement
+ // to be able to represent the real value "0" exactly as a quantized value,
+ // which is required in multiple places, for example in Im2col with SAME
+ // padding).
+ if (zero_point_float < qmin_float) {
+ zero_point = qmin;
+ } else if (zero_point_float > qmax_float) {
+ zero_point = qmax;
+ } else {
+ zero_point = static_cast<int32>(std::round(zero_point_float));
+ }
+ // The zero point should always be in the range of quantized value,
+ // [qmin, qmax].
+ DCHECK_GE(zero_point, qmin);
+ DCHECK_LE(zero_point, qmax);
+ }
+
+ const int batches = MatchingArraySize(input_dims, 3, output_dims, 3);
+ const int height = MatchingArraySize(input_dims, 2, output_dims, 2);
+ const int width = MatchingArraySize(input_dims, 1, output_dims, 1);
+ const int depth = MatchingArraySize(input_dims, 0, output_dims, 0);
+ for (int b = 0; b < batches; ++b) {
+ for (int y = 0; y < height; ++y) {
+ for (int x = 0; x < width; ++x) {
+ for (int c = 0; c < depth; ++c) {
+ const float src_val = input_data[Offset(input_dims, c, x, y, b)];
+ const float unclamped_quantized_val =
+ std::round(zero_point + src_val / scale);
+ const float quantized_val = std::min(
+ qmax_float, std::max(qmin_float, unclamped_quantized_val));
+ const float dst_val = scale * (quantized_val - zero_point);
+ output_data[Offset(output_dims, c, x, y, b)] = dst_val;
+ }
+ }
+ }
+ }
+}
+
+template <typename SrcT, typename DstT>
+inline void Cast(const SrcT* input_data, const Dims<4>& input_dims,
+ DstT* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("Cast");
+ auto input_map = MapAsVector(input_data, input_dims);
+ auto output_map = MapAsVector(output_data, output_dims);
+ output_map.array() = input_map.array().template cast<DstT>();
+}
+
+inline void Floor(const float* input_data, const Dims<4>& input_dims,
+ float* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("Floor");
+ auto input_map = MapAsVector(input_data, input_dims);
+ auto output_map = MapAsVector(output_data, output_dims);
+ output_map.array() = Eigen::floor(input_map.array());
+}
+
+template <typename T>
+inline void Gather(const T* input_data, const Dims<4>& input_dims,
+ const int32* coords_data, const Dims<4>& coords_dims,
+ T* output_data, const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("Gather");
+ DCHECK_EQ(RequiredBufferSizeForDims(output_dims),
+ RequiredBufferSizeForDims(coords_dims));
+ for (int i = 0; i < RequiredBufferSizeForDims(coords_dims); i++) {
+ DCHECK_GE(coords_data[i], 0);
+ DCHECK_LT(coords_data[i], RequiredBufferSizeForDims(input_dims));
+ output_data[i] = input_data[coords_data[i]];
+ }
+}
+
+inline void ResizeBilinear(const float* input_data, const Dims<4>& input_dims,
+ const int32* output_size_data,
+ const Dims<4>& output_size_dims, float* output_data,
+ const Dims<4>& output_dims) {
+ gemmlowp::ScopedProfilingLabel label("ResizeBilinear");
+ int32 batches = MatchingArraySize(input_dims, 3, output_dims, 3);
+ int32 input_height = ArraySize(input_dims, 2);
+ int32 input_width = ArraySize(input_dims, 1);
+ int32 depth = MatchingArraySize(input_dims, 0, output_dims, 0);
+
+ DCHECK_EQ(ArraySize(output_size_dims, 3), 1);
+ DCHECK_EQ(ArraySize(output_size_dims, 2), 1);
+ DCHECK_EQ(ArraySize(output_size_dims, 1), 1);
+ DCHECK_EQ(ArraySize(output_size_dims, 0), 2);
+ int32 output_height = output_size_data[Offset(output_size_dims, 0, 0, 0, 0)];
+ int32 output_width = output_size_data[Offset(output_size_dims, 1, 0, 0, 0)];
+ float height_scale = static_cast<float>(input_height) / output_height;
+ float width_scale = static_cast<float>(input_width) / output_width;
+
+ for (int b = 0; b < batches; ++b) {
+ for (int y = 0; y < output_height; ++y) {
+ float input_y = y * height_scale;
+ int32 y0 = static_cast<int32>(input_y);
+ int32 y1 = std::min(y0 + 1, input_height - 1);
+ for (int x = 0; x < output_width; ++x) {
+ float input_x = x * width_scale;
+ int32 x0 = static_cast<int32>(input_x);
+ int32 x1 = std::min(x0 + 1, input_width - 1);
+ for (int c = 0; c < depth; ++c) {
+ float interpolation = input_data[Offset(input_dims, c, x0, y0, b)] *
+ (1 - (input_y - y0)) *
+ (1 - (input_x - x0)) +
+ input_data[Offset(input_dims, c, x0, y1, b)] *
+ (input_y - y0) * (1 - (input_x - x0)) +
+ input_data[Offset(input_dims, c, x1, y0, b)] *
+ (1 - (input_y - y0)) * (input_x - x0) +
+ input_data[Offset(input_dims, c, x1, y1, b)] *
+ (input_y - y0) * (input_x - x0);
+ output_data[Offset(output_dims, c, x, y, b)] = interpolation;
+ }
+ }
+ }
+ }
+}
+
+} // namespace optimized_ops
+} // namespace rt
+} // namespace nnfw
+
+#if defined OPTIMIZED_OPS_H__IGNORE_DEPRECATED_DECLARATIONS
+#undef OPTIMIZED_OPS_H__IGNORE_DEPRECATED_DECLARATIONS
+#pragma GCC diagnostic pop
+#endif
+
+#endif // __NNFW_RT_OPTIMIZED_OPS_H__
diff --git a/runtimes/nn/common/operations/internal/optimized/tensor_utils_impl.h b/runtimes/nn/common/operations/internal/optimized/tensor_utils_impl.h
new file mode 100644
index 000000000..bf659d0a3
--- /dev/null
+++ b/runtimes/nn/common/operations/internal/optimized/tensor_utils_impl.h
@@ -0,0 +1,133 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_TENSOR_UTILS_IMPL_H__
+#define __NNFW_RT_TENSOR_UTILS_IMPL_H__
+
+#include "ActivationFunctor.h"
+
+#ifndef USE_NEON
+#if defined(__ARM_NEON__) || defined(__ARM_NEON)
+#define USE_NEON
+#endif // defined(__ARM_NEON__) || defined(__ARM_NEON)
+#endif // USE_NEON
+
+namespace nnfw {
+namespace rt {
+namespace tensor_utils {
+
+// Multiply a matrix by a batch vector, and store results in a batch-size
+// vector.
+void PortableMatrixBatchVectorMultiplyAccumulate(const float* matrix,
+ int m_rows, int m_cols,
+ const float* vector,
+ int n_batch, float* result,
+ int result_stride);
+void NeonMatrixBatchVectorMultiplyAccumulate(const float* matrix, int m_rows,
+ int m_cols, const float* vector,
+ int n_batch, float* result,
+ int result_stride);
+
+// Cwise product of two vectors.
+void PortableVectorVectorCwiseProduct(const float* vector1,
+ const float* vector2, int v_size,
+ float* result);
+void NeonVectorVectorCwiseProduct(const float* vector1, const float* vector2,
+ int v_size, float* result);
+
+// Cwise product and accumulate of two vectors. Since it's a MAC operation, the
+// assumption here is that result array is initialized to valid values.
+void PortableVectorVectorCwiseProductAccumulate(const float* vector1,
+ const float* vector2,
+ int v_size, float* result);
+void NeonVectorVectorCwiseProductAccumulate(const float* vector1,
+ const float* vector2, int v_size,
+ float* result);
+
+// Dot product of two vectors.
+float PortableVectorVectorDotProduct(const float* vector1, const float* vector2,
+ int v_size);
+
+// Dot product of two batch vectors.
+void PortableBatchVectorBatchVectorDotProduct(const float* vector1,
+ const float* vector2, int v_size,
+ int n_batch, float* result,
+ int result_stride);
+
+// Cwise product and accumulate of a vector and a batch-vector. Since it's a MAC
+// operation, the assumption here is that result array is initialized to valid
+// values.
+void PortableVectorBatchVectorCwiseProductAccumulate(const float* vector,
+ int v_size,
+ const float* batch_vector,
+ int n_batch,
+ float* result);
+void NeonVectorBatchVectorCwiseProductAccumulate(const float* vector,
+ int v_size,
+ const float* batch_vector,
+ int n_batch, float* result);
+
+// Compute "1.0f - elements of vector" (used in CIFG).
+void PortableSub1Vector(const float* vector, int v_size, float* result);
+void NeonSub1Vector(const float* vector, int v_size, float* result);
+
+// Clip elements of a vector using a abs_limit value.
+void PortableClipVector(const float* vector, int v_size, float abs_limit,
+ float* result);
+void NeonClipVector(const float* vector, int v_size, float abs_limit,
+ float* result);
+
+// Batch vector initialization with another vector.
+void PortableVectorBatchVectorAssign(const float* vector, int v_size,
+ int n_batch, float* batch_vector);
+
+// Apply sigmoid to elements of a vector.
+void PortableApplySigmoidToVector(const float* vector, int v_size,
+ float* result);
+
+// Apply activation function to elements of a vector.
+void PortableApplyActivationToVector(const float* vector, int v_size,
+ ActivationFn activation,
+ float* result);
+
+// Copy vector to another vector.
+void PortableCopyVector(const float* vector, int v_size, float* result);
+
+// Fill vector with 0.f.
+void PortableZeroVector(float* vector, int v_size);
+
+// Limit a float input f between +abs_limit and -abs_limit.
+float PortableClip(float f, float abs_limit);
+
+// Shift left a vector in place with v_size size.
+void PortableVectorShiftLeft(float* vector, int v_size, float shift_value);
+
+// Reduce-sum on a float input vector:
+// input_vector: float pointer to input vector.
+// input_stride: input vector stride.
+// output_vector: float pointer to vector.
+// output_size: output vector size.
+// reduction_size: number of consecutive elements from input vector which are
+// added to get one element of output.
+void PortableReductionSumVector(const float* input_vector, int input_stride,
+ float* output_vector, int output_size,
+ int reduction_size);
+} // namespace tensor_utils
+} // namespace rt
+} // namespace nnfw
+
+#endif // __NNFW_RT_TENSOR_UTILS_IMPL_H__
diff --git a/runtimes/nn/common/operations/internal/tensor_utils.cc b/runtimes/nn/common/operations/internal/tensor_utils.cc
new file mode 100644
index 000000000..78275bb29
--- /dev/null
+++ b/runtimes/nn/common/operations/internal/tensor_utils.cc
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "tensor_utils.h"
+
+#ifndef USE_NEON
+#if defined(__ARM_NEON__) || defined(__ARM_NEON)
+#define USE_NEON
+#endif // defined(__ARM_NEON__) || defined(__ARM_NEON)
+#endif // USE_NEON
+
+#ifdef USE_NEON
+#include "optimized/neon_tensor_utils.h"
+#else
+#include "reference/portable_tensor_utils.h"
+#endif // USE_NEON
diff --git a/runtimes/nn/common/operations/internal/tensor_utils.h b/runtimes/nn/common/operations/internal/tensor_utils.h
new file mode 100644
index 000000000..df3d4e27b
--- /dev/null
+++ b/runtimes/nn/common/operations/internal/tensor_utils.h
@@ -0,0 +1,123 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_TENSOR_UTILS_H__
+#define __NNFW_RT_TENSOR_UTILS_H__
+
+#include "ActivationFunctor.h"
+
+namespace nnfw {
+namespace rt {
+namespace tensor_utils {
+
+// Limit a float input f betweeen +abs_limit and -abs_limit.
+float Clip(float f, float abs_limit);
+
+// Multiply a matrix by a batch vector, and store results in a batch-size
+// vector using a stride value provided in result_stride. 'result_stride' shows
+// how the number of elements between consecutive result values. For example
+// result_stride = 1, will cause the output to look like this:
+// [O_1, 0_2, ... O_rows] in memory, but result_stride = 3, will cause it to be
+// arranged like this in memory: [O_1, x, x, 0_2, x, x, ..., O_rows]
+void MatrixBatchVectorMultiplyAccumulate(const float* matrix, int m_rows,
+ int m_cols, const float* vector,
+ int n_batch, float* result,
+ int result_stride);
+
+// Cwise product of two vectors.
+void VectorVectorCwiseProduct(const float* vector1, const float* vector2,
+ int v_size, float* result);
+
+// Cwise product and accumulate of two vectors. Since it's a MAC opertation, the
+// assumption here is that result array is initialized to valid values.
+void VectorVectorCwiseProductAccumulate(const float* vector1,
+ const float* vector2, int v_size,
+ float* result);
+
+// Dot product of two vectors.
+float VectorVectorDotProduct(const float* vector1, const float* vector2,
+ int v_size);
+
+// Dot product of two batch vectors of size n_batch * v_size:
+// vector1 = [x_1_1, x_1_2, ..., x_1_vsize,
+// x_2_1, x_2_2, ..., x_2_vsize,
+// ...
+// x_nbatch_1,..., x_nbatch_vsize]
+// vector2 = [y_1_1, y_1_2, ..., y_1_vsize,
+// y_2_1, y_2_2, ..., y_2_vsize,
+// ...
+// y_nbatch_1,..., y_nbatch_vsize]
+// Then result will be a vector of n_batch size which will be saved with a
+// stride of result_stride in memory starting from 'result':
+// [x_1_1 * y_1_1 + x_1_2 * y_1_2 + ... + x_1_vsize * y_1_vsize,
+// x_2_1 * y_2_1 + x_2_2 * y_2_2 + ... + x_2_vsize * y_2_vsize,
+// ...
+// x_nbatch_1 * y_nbatch_1 + ... + x_nbatch_vsize * y_nbatch_vsize]
+void BatchVectorBatchVectorDotProduct(const float* vector1,
+ const float* vector2, int v_size,
+ int n_batch, float* result,
+ int result_stride);
+
+// Cwise product and accumulate of a vector and a batch-vector. Since it's a MAC
+// operation, the assumption here is that result array is initialized to valid
+// values.
+void VectorBatchVectorCwiseProductAccumulate(const float* vector, int v_size,
+ const float* batch_vector,
+ int n_batch, float* result);
+
+// Batch vector initialization with another vector.
+void VectorBatchVectorAssign(const float* vector, int v_size, int n_batch,
+ float* batch_vector);
+
+// Apply sigmoid to elements of a vector.
+void ApplySigmoidToVector(const float* vector, int v_size, float* result);
+
+// Apply activation function to elements of a vector.
+void ApplyActivationToVector(const float* vector, int v_size,
+ ActivationFn activation, float* result);
+
+// Copy vector to another vector.
+void CopyVector(const float* vector, int v_size, float* result);
+
+// Compute "1.0f - elements of vector" (used in CIFG).
+void Sub1Vector(const float* vector, int v_size, float* result);
+
+// Fill vector with 0.f.
+void ZeroVector(float* vector, int v_size);
+
+// Clip elements of a vector using a abs_limit value.
+void ClipVector(const float* vector, int v_size, float abs_limit,
+ float* result);
+
+// Shift left a vector in place with v_size size.
+void VectorShiftLeft(float* vector, int v_size, float shift_value);
+
+// Reduce-sum on a float input vector:
+// input_vector: float pointer to input vector.
+// input_stride: input vector stride.
+// output_vector: float pointer to vector.
+// output_size: output vector size.
+// reduction_size: number of consecutive elements from input vector which are
+// added to get one element of output.
+void ReductionSumVector(const float* input_vector, int input_stride,
+ float* output_vector, int output_size,
+ int reduction_size);
+} // namespace tensor_utils
+} // namespace rt
+} // namespace nnfw
+
+#endif // __NNFW_RT_TENSOR_UTILS_H__
diff --git a/runtimes/nn/common/operations/internal/tensor_utils_test.cc b/runtimes/nn/common/operations/internal/tensor_utils_test.cc
new file mode 100644
index 000000000..b68982164
--- /dev/null
+++ b/runtimes/nn/common/operations/internal/tensor_utils_test.cc
@@ -0,0 +1,198 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "gmock/gmock-matchers.h"
+#include "gtest/gtest.h"
+#include "tensor_utils.h"
+
+namespace nnfw {
+namespace rt {
+namespace tensor_utils {
+
+namespace {
+
+using ::testing::FloatNear;
+using ::testing::Matcher;
+
+std::vector<Matcher<float>> ArrayFloatNear(const std::vector<float>& values,
+ float max_abs_error=1.e-6) {
+ std::vector<Matcher<float>> matchers;
+ matchers.reserve(values.size());
+ for (const float& v : values) {
+ matchers.emplace_back(FloatNear(v, max_abs_error));
+ }
+ return matchers;
+}
+
+} // anonymous namespace
+
+TEST(uKernels, ClipTest) {
+ constexpr int kVectorSize = 10;
+ constexpr float kAbsLimit = 2.0;
+ static float input[kVectorSize] = {0.0, -0.5, 1.0, -1.5, 2.0,
+ -2.5, 3.0, -3.5, 4.0, -4.5};
+ std::vector<float> output(kVectorSize);
+ ClipVector(input, kVectorSize, kAbsLimit, output.data());
+ EXPECT_THAT(output,
+ ElementsAreArray(ArrayFloatNear(
+ {0.0, -0.5, 1.0, -1.5, 2.0, -2.0, 2.0, -2.0, 2.0, -2.0})));
+}
+
+TEST(uKernels, MatrixBatchVectorMultiplyAccumulateTest) {
+ constexpr int kRow = 3;
+ constexpr int kCol = 4;
+ constexpr int kBatch = 2;
+ static float matrix[kRow * kCol] = {1.0, 2.0, 3.0, 4.0, //
+ -1.0, -2.0, -3.0, -4.0, //
+ 1.0, -2.0, 3.0, -4.0};
+ static float vector[kCol * kBatch] = {1.0, -1.0, 1.0, -1.0, //
+ 2.0, -2.0, 2.0, -2.0};
+ std::vector<float> output(kRow * kBatch);
+ std::fill(output.begin(), output.end(), 3.0);
+ MatrixBatchVectorMultiplyAccumulate(matrix, kRow, kCol, vector, kBatch,
+ output.data(), /*result_stride=*/1);
+ EXPECT_THAT(output, ElementsAreArray(ArrayFloatNear({1., 5., 13., //
+ -1., 7., 23.})));
+}
+
+TEST(uKernels, VectorVectorCwiseProductTest) {
+ constexpr int kVectorSize = 10;
+ static float input1[kVectorSize] = {0.0, -0.5, 1.0, -1.5, 2.0,
+ -2.5, 3.0, -3.5, 4.0, -4.5};
+ static float input2[kVectorSize] = {0.1, -0.1, 0.1, -0.1, 0.1,
+ -0.1, 0.1, -0.1, 0.1, -0.1};
+ std::vector<float> output(kVectorSize);
+ VectorVectorCwiseProduct(input1, input2, kVectorSize, output.data());
+ EXPECT_THAT(output,
+ ElementsAreArray(ArrayFloatNear(
+ {0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45})));
+}
+
+TEST(uKernels, VectorVectorCwiseProductAccumulateTest) {
+ constexpr int kVectorSize = 10;
+ static float input1[kVectorSize] = {0.0, -0.5, 1.0, -1.5, 2.0,
+ -2.5, 3.0, -3.5, 4.0, -4.5};
+ static float input2[kVectorSize] = {0.1, -0.1, 0.1, -0.1, 0.1,
+ -0.1, 0.1, -0.1, 0.1, -0.1};
+ std::vector<float> output(kVectorSize);
+ std::fill(output.begin(), output.end(), 1.0);
+ VectorVectorCwiseProductAccumulate(input1, input2, kVectorSize,
+ output.data());
+ EXPECT_THAT(output,
+ ElementsAreArray(ArrayFloatNear(
+ {1.0, 1.05, 1.1, 1.15, 1.2, 1.25, 1.3, 1.35, 1.4, 1.45})));
+}
+
+TEST(uKernels, VectorBatchVectorAssignTest) {
+ constexpr int kVectorSize = 5;
+ constexpr int kBatchSize = 3;
+ static float input[kVectorSize] = {0.0, -0.5, 1.0, -1.5, 2.0};
+ std::vector<float> output(kVectorSize * kBatchSize);
+ VectorBatchVectorAssign(input, kVectorSize, kBatchSize, output.data());
+ EXPECT_THAT(output, ElementsAreArray(ArrayFloatNear(
+ {0.0, -0.5, 1.0, -1.5, 2.0, 0.0, -0.5, 1.0, -1.5, 2.0,
+ 0.0, -0.5, 1.0, -1.5, 2.0})));
+}
+
+TEST(uKernels, ApplySigmoidToVectorTest) {
+ constexpr int kVectorSize = 5;
+ static float input[kVectorSize] = {0.0, -0.5, 1.0, -1.5, 2.0};
+ std::vector<float> output(kVectorSize);
+ ApplySigmoidToVector(input, kVectorSize, output.data());
+ EXPECT_THAT(output, ElementsAreArray(ArrayFloatNear(
+ {0.5, 0.377541, 0.731059, 0.182426, 0.880797})));
+}
+
+TEST(uKernels, ApplyActivationToVectorTest) {
+ constexpr int kVectorSize = 5;
+ static float input[kVectorSize] = {0.0, -0.5, 1.0, -1.5, 2.0};
+ std::vector<float> output(kVectorSize);
+ ApplyActivationToVector(input, kVectorSize, kActivationRelu, output.data());
+ EXPECT_THAT(output,
+ ElementsAreArray(ArrayFloatNear({0.0, 0.0, 1.0, 0.0, 2.0})));
+
+ ApplyActivationToVector(input, kVectorSize, kActivationTanh, output.data());
+ EXPECT_THAT(output, ElementsAreArray(ArrayFloatNear(
+ {0.0, -0.462117, 0.761594, -0.905148, 0.964028})));
+}
+
+TEST(uKernels, CopyVectorTest) {
+ constexpr int kVectorSize = 5;
+ static float input[kVectorSize] = {0.0, -0.5, 1.0, -1.5, 2.0};
+ std::vector<float> output(kVectorSize);
+ CopyVector(input, kVectorSize, output.data());
+ EXPECT_THAT(output,
+ ElementsAreArray(ArrayFloatNear({0.0, -0.5, 1.0, -1.5, 2.0})));
+}
+
+TEST(uKernels, Sub1VectorTest) {
+ constexpr int kVectorSize = 5;
+ static float input[kVectorSize] = {0.0, -0.5, 1.0, -1.5, 2.0};
+ std::vector<float> output(kVectorSize);
+ Sub1Vector(input, kVectorSize, output.data());
+ EXPECT_THAT(output,
+ ElementsAreArray(ArrayFloatNear({1.0, 1.5, 0.0, 2.5, -1.0})));
+}
+
+TEST(uKernels, ZeroVectorTest) {
+ constexpr int kVectorSize = 5;
+ std::vector<float> output(kVectorSize);
+ ZeroVector(output.data(), kVectorSize);
+ EXPECT_THAT(output,
+ ElementsAreArray(ArrayFloatNear({0.0, 0.0, 0.0, 0.0, 0.0})));
+}
+
+TEST(uKernels, BatchVectorBatchVectorDotProductTest) {
+ constexpr int kVectorSize = 5;
+ constexpr int kBatch = 2;
+ static float input1[kVectorSize * kBatch] = {0.0, -0.5, 1.0, -1.5, 2.0,
+ -2.5, 3.0, -3.5, 4.0, -4.5};
+ static float input2[kVectorSize * kBatch] = {0.1, -0.1, 0.1, -0.1, 0.1,
+ -0.1, 0.1, -0.1, 0.1, -0.1};
+ std::vector<float> output(kBatch);
+ BatchVectorBatchVectorDotProduct(input1, input2, kVectorSize, kBatch,
+ output.data(), /*result_stride=*/1);
+ EXPECT_THAT(output, ElementsAreArray(ArrayFloatNear({0.5, 1.75})));
+}
+
+TEST(uKernels, VectorShiftLeftTest) {
+ constexpr int kVectorSize = 5;
+ static float input[kVectorSize] = {0.0, -0.5, 1.0, -1.5, 2.0};
+ std::vector<float> result(kVectorSize);
+ VectorShiftLeft(input, kVectorSize, 3.0);
+ result.assign(input, input + kVectorSize);
+ EXPECT_THAT(result,
+ ElementsAreArray(ArrayFloatNear({-0.5, 1.0, -1.5, 2.0, 3.0})));
+}
+
+TEST(uKernels, ReductionSumVectorTest) {
+ constexpr int kInputVectorSize = 10;
+ constexpr int kOutputVectorSize = 5;
+ constexpr int kReductionSize = 2;
+ static float input[kInputVectorSize] = {0.0, -0.5, 1.0, -1.5, 2.0,
+ 0.0, -0.5, 1.0, 1.0, 2.0};
+ std::vector<float> result(kOutputVectorSize);
+ ReductionSumVector(input,
+ /*input_stride=*/1, result.data(), kOutputVectorSize,
+ kReductionSize);
+ EXPECT_THAT(result,
+ ElementsAreArray(ArrayFloatNear({-0.5, -0.5, 2.0, 0.5, 3.0})));
+}
+
+} // namespace tensor_utils
+} // namespace rt
+} // namespace nnfw
diff --git a/runtimes/nn/common/operations/internal/types.h b/runtimes/nn/common/operations/internal/types.h
new file mode 100644
index 000000000..bd5880edd
--- /dev/null
+++ b/runtimes/nn/common/operations/internal/types.h
@@ -0,0 +1,112 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_TYPES_H__
+#define __NNFW_RT_TYPES_H__
+
+#include "compatibility.h"
+
+namespace nnfw {
+namespace rt {
+
+enum class FusedActivationFunctionType { kNone, kRelu6, kRelu1, kRelu };
+
+template <int N>
+struct Dims {
+ int sizes[N];
+ int strides[N];
+};
+
+struct Shape;
+
+inline Dims<4> convertShapeToDims(const Shape& shape) {
+ Dims<4> dims;
+ for (int i=0; i<4; i++) {
+ dims.sizes[i] = 1;
+ }
+
+ if (shape.dimensions.size() == 1) {
+ dims.sizes[0] = (int)getSizeOfDimension(shape, 0);
+ } else {
+ for (int i=0; i<4; i++) {
+ int src = (int)shape.dimensions.size()-i-1;
+ if (src >= 0) {
+ dims.sizes[i] = (int)getSizeOfDimension(shape, src);
+ }
+ }
+ }
+
+ dims.strides[0] = 1;
+ for (int i = 1; i<4; i++) {
+ dims.strides[i] = dims.strides[i-1] * dims.sizes[i-1];
+ }
+ return dims;
+}
+
+inline int Offset(const Dims<4>& dims, int i0, int i1, int i2, int i3) {
+ DCHECK(i0 >= 0 && i0 < dims.sizes[0]);
+ DCHECK(i1 >= 0 && i1 < dims.sizes[1]);
+ DCHECK(i2 >= 0 && i2 < dims.sizes[2]);
+ DCHECK(i3 >= 0 && i3 < dims.sizes[3]);
+ return i0 * dims.strides[0] + i1 * dims.strides[1] + i2 * dims.strides[2] +
+ i3 * dims.strides[3];
+}
+
+// Get array size, DCHECKing that the dim index is in range.
+template <int N>
+int ArraySize(const Dims<N>& array, int index) {
+ DCHECK(index >= 0 && index < N);
+ return array.sizes[index];
+}
+
+// Get common array size, DCHECKing that they all agree.
+template <typename ArrayType1, typename ArrayType2>
+int MatchingArraySize(const ArrayType1& array1, int index1,
+ const ArrayType2& array2, int index2) {
+ DCHECK_EQ(ArraySize(array1, index1), ArraySize(array2, index2));
+ return ArraySize(array1, index1);
+}
+
+template <typename ArrayType1, typename ArrayType2, typename... Args>
+int MatchingArraySize(const ArrayType1& array1, int index1,
+ const ArrayType2& array2, int index2, Args... args) {
+ DCHECK_EQ(ArraySize(array1, index1), ArraySize(array2, index2));
+ return MatchingArraySize(array1, index1, args...);
+}
+
+inline int RequiredBufferSizeForDims(const Dims<4>& dims) {
+ int max_offset = 0;
+ for (int i = 0; i < 4; i++) {
+ max_offset += (dims.sizes[i] - 1) * dims.strides[i];
+ }
+ return max_offset + 1;
+}
+
+template <int N>
+bool IsPackedWithoutStrides(const Dims<N>& dims) {
+ int expected_stride = 1;
+ for (int d = 0; d < N; d++) {
+ if (dims.strides[d] != expected_stride) return false;
+ expected_stride *= dims.sizes[d];
+ }
+ return true;
+}
+
+} // namespace rt
+} // namespace nnfw
+
+#endif // __NNFW_RT_TYPES_H__
diff --git a/runtimes/nn/depend/CMakeLists.txt b/runtimes/nn/depend/CMakeLists.txt
new file mode 100644
index 000000000..6fe4cbdba
--- /dev/null
+++ b/runtimes/nn/depend/CMakeLists.txt
@@ -0,0 +1,21 @@
+#ADD_SUBDIRECTORY(android-base)
+ADD_SUBDIRECTORY(external)
+ADD_SUBDIRECTORY(hal)
+#ADD_SUBDIRECTORY(libc)
+ADD_SUBDIRECTORY(libcutils)
+ADD_SUBDIRECTORY(libhidl)
+#ADD_SUBDIRECTORY(libhwbinder)
+#ADD_SUBDIRECTORY(liblog)
+#ADD_SUBDIRECTORY(libsystem)
+ADD_SUBDIRECTORY(libutils)
+#ADD_SUBDIRECTORY(libvndksupport)
+
+SET(INC_DIRS
+ ${INC_DIRS}
+ PARENT_SCOPE
+)
+
+SET(SRCS
+ ${SRCS}
+ PARENT_SCOPE
+)
diff --git a/runtimes/nn/depend/external/CMakeLists.txt b/runtimes/nn/depend/external/CMakeLists.txt
new file mode 100644
index 000000000..3b679b0b4
--- /dev/null
+++ b/runtimes/nn/depend/external/CMakeLists.txt
@@ -0,0 +1,13 @@
+ADD_SUBDIRECTORY(eigen)
+ADD_SUBDIRECTORY(gemmlowp)
+
+SET(INC_DIRS
+ ${INC_DIRS}
+ PARENT_SCOPE
+)
+
+SET(SRCS
+ ${SRCS}
+ PARENT_SCOPE
+)
+
diff --git a/runtimes/nn/depend/external/eigen/CMakeLists.txt b/runtimes/nn/depend/external/eigen/CMakeLists.txt
new file mode 100644
index 000000000..b76ac5a5b
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/CMakeLists.txt
@@ -0,0 +1,10 @@
+
+SET(CUR_INCS
+ ${CMAKE_CURRENT_SOURCE_DIR}
+)
+
+SET(INC_DIRS
+ ${INC_DIRS}
+ ${CUR_INCS}
+ PARENT_SCOPE
+)
diff --git a/runtimes/nn/depend/external/eigen/Eigen/CMakeLists.txt b/runtimes/nn/depend/external/eigen/Eigen/CMakeLists.txt
new file mode 100644
index 000000000..9eb502b79
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/CMakeLists.txt
@@ -0,0 +1,19 @@
+include(RegexUtils)
+test_escape_string_as_regex()
+
+file(GLOB Eigen_directory_files "*")
+
+escape_string_as_regex(ESCAPED_CMAKE_CURRENT_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
+
+foreach(f ${Eigen_directory_files})
+ if(NOT f MATCHES "\\.txt" AND NOT f MATCHES "${ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/[.].+" AND NOT f MATCHES "${ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/src")
+ list(APPEND Eigen_directory_files_to_install ${f})
+ endif()
+endforeach(f ${Eigen_directory_files})
+
+install(FILES
+ ${Eigen_directory_files_to_install}
+ DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen COMPONENT Devel
+ )
+
+install(DIRECTORY src DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen COMPONENT Devel FILES_MATCHING PATTERN "*.h")
diff --git a/runtimes/nn/depend/external/eigen/Eigen/Cholesky b/runtimes/nn/depend/external/eigen/Eigen/Cholesky
new file mode 100644
index 000000000..369d1f5ec
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/Cholesky
@@ -0,0 +1,41 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CHOLESKY_MODULE_H
+#define EIGEN_CHOLESKY_MODULE_H
+
+#include "Core"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/** \defgroup Cholesky_Module Cholesky module
+ *
+ *
+ *
+ * This module provides two variants of the Cholesky decomposition for selfadjoint (hermitian) matrices.
+ * Those decompositions are also accessible via the following methods:
+ * - MatrixBase::llt()
+ * - MatrixBase::ldlt()
+ * - SelfAdjointView::llt()
+ * - SelfAdjointView::ldlt()
+ *
+ * \code
+ * #include <Eigen/Cholesky>
+ * \endcode
+ */
+
+#include "src/Cholesky/LLT.h"
+#include "src/Cholesky/LDLT.h"
+#ifdef EIGEN_USE_LAPACKE
+#include "src/misc/lapacke.h"
+#include "src/Cholesky/LLT_LAPACKE.h"
+#endif
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_CHOLESKY_MODULE_H
+/* vim: set filetype=cpp et sw=2 ts=2 ai: */
diff --git a/runtimes/nn/depend/external/eigen/Eigen/CholmodSupport b/runtimes/nn/depend/external/eigen/Eigen/CholmodSupport
new file mode 100644
index 000000000..bed8924d3
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/CholmodSupport
@@ -0,0 +1,48 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CHOLMODSUPPORT_MODULE_H
+#define EIGEN_CHOLMODSUPPORT_MODULE_H
+
+#include "SparseCore"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+extern "C" {
+ #include <cholmod.h>
+}
+
+/** \ingroup Support_modules
+ * \defgroup CholmodSupport_Module CholmodSupport module
+ *
+ * This module provides an interface to the Cholmod library which is part of the <a href="http://www.suitesparse.com">suitesparse</a> package.
+ * It provides the two following main factorization classes:
+ * - class CholmodSupernodalLLT: a supernodal LLT Cholesky factorization.
+ * - class CholmodDecomposiiton: a general L(D)LT Cholesky factorization with automatic or explicit runtime selection of the underlying factorization method (supernodal or simplicial).
+ *
+ * For the sake of completeness, this module also propose the two following classes:
+ * - class CholmodSimplicialLLT
+ * - class CholmodSimplicialLDLT
+ * Note that these classes does not bring any particular advantage compared to the built-in
+ * SimplicialLLT and SimplicialLDLT factorization classes.
+ *
+ * \code
+ * #include <Eigen/CholmodSupport>
+ * \endcode
+ *
+ * In order to use this module, the cholmod headers must be accessible from the include paths, and your binary must be linked to the cholmod library and its dependencies.
+ * The dependencies depend on how cholmod has been compiled.
+ * For a cmake based project, you can use our FindCholmod.cmake module to help you in this task.
+ *
+ */
+
+#include "src/CholmodSupport/CholmodSupport.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_CHOLMODSUPPORT_MODULE_H
+
diff --git a/runtimes/nn/depend/external/eigen/Eigen/Core b/runtimes/nn/depend/external/eigen/Eigen/Core
new file mode 100644
index 000000000..0f7fa630d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/Core
@@ -0,0 +1,516 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2007-2011 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CORE_H
+#define EIGEN_CORE_H
+
+// first thing Eigen does: stop the compiler from committing suicide
+#include "src/Core/util/DisableStupidWarnings.h"
+
+// Handle NVCC/CUDA/SYCL
+#if defined(__CUDACC__) || defined(__SYCL_DEVICE_ONLY__)
+ // Do not try asserts on CUDA and SYCL!
+ #ifndef EIGEN_NO_DEBUG
+ #define EIGEN_NO_DEBUG
+ #endif
+
+ #ifdef EIGEN_INTERNAL_DEBUGGING
+ #undef EIGEN_INTERNAL_DEBUGGING
+ #endif
+
+ #ifdef EIGEN_EXCEPTIONS
+ #undef EIGEN_EXCEPTIONS
+ #endif
+
+ // All functions callable from CUDA code must be qualified with __device__
+ #ifdef __CUDACC__
+ // Do not try to vectorize on CUDA and SYCL!
+ #ifndef EIGEN_DONT_VECTORIZE
+ #define EIGEN_DONT_VECTORIZE
+ #endif
+
+ #define EIGEN_DEVICE_FUNC __host__ __device__
+ // We need math_functions.hpp to ensure that that EIGEN_USING_STD_MATH macro
+ // works properly on the device side
+ #include <math_functions.hpp>
+ #else
+ #define EIGEN_DEVICE_FUNC
+ #endif
+
+#else
+ #define EIGEN_DEVICE_FUNC
+
+#endif
+
+// When compiling CUDA device code with NVCC, pull in math functions from the
+// global namespace. In host mode, and when device doee with clang, use the
+// std versions.
+#if defined(__CUDA_ARCH__) && defined(__NVCC__)
+ #define EIGEN_USING_STD_MATH(FUNC) using ::FUNC;
+#else
+ #define EIGEN_USING_STD_MATH(FUNC) using std::FUNC;
+#endif
+
+#if (defined(_CPPUNWIND) || defined(__EXCEPTIONS)) && !defined(__CUDA_ARCH__) && !defined(EIGEN_EXCEPTIONS) && !defined(EIGEN_USE_SYCL)
+ #define EIGEN_EXCEPTIONS
+#endif
+
+#ifdef EIGEN_EXCEPTIONS
+ #include <new>
+#endif
+
+// then include this file where all our macros are defined. It's really important to do it first because
+// it's where we do all the alignment settings (platform detection and honoring the user's will if he
+// defined e.g. EIGEN_DONT_ALIGN) so it needs to be done before we do anything with vectorization.
+#include "src/Core/util/Macros.h"
+
+// Disable the ipa-cp-clone optimization flag with MinGW 6.x or newer (enabled by default with -O3)
+// See http://eigen.tuxfamily.org/bz/show_bug.cgi?id=556 for details.
+#if EIGEN_COMP_MINGW && EIGEN_GNUC_AT_LEAST(4,6)
+ #pragma GCC optimize ("-fno-ipa-cp-clone")
+#endif
+
+#include <complex>
+
+// this include file manages BLAS and MKL related macros
+// and inclusion of their respective header files
+#include "src/Core/util/MKL_support.h"
+
+// if alignment is disabled, then disable vectorization. Note: EIGEN_MAX_ALIGN_BYTES is the proper check, it takes into
+// account both the user's will (EIGEN_MAX_ALIGN_BYTES,EIGEN_DONT_ALIGN) and our own platform checks
+#if EIGEN_MAX_ALIGN_BYTES==0
+ #ifndef EIGEN_DONT_VECTORIZE
+ #define EIGEN_DONT_VECTORIZE
+ #endif
+#endif
+
+#if EIGEN_COMP_MSVC
+ #include <malloc.h> // for _aligned_malloc -- need it regardless of whether vectorization is enabled
+ #if (EIGEN_COMP_MSVC >= 1500) // 2008 or later
+ // Remember that usage of defined() in a #define is undefined by the standard.
+ // a user reported that in 64-bit mode, MSVC doesn't care to define _M_IX86_FP.
+ #if (defined(_M_IX86_FP) && (_M_IX86_FP >= 2)) || EIGEN_ARCH_x86_64
+ #define EIGEN_SSE2_ON_MSVC_2008_OR_LATER
+ #endif
+ #endif
+#else
+ // Remember that usage of defined() in a #define is undefined by the standard
+ #if (defined __SSE2__) && ( (!EIGEN_COMP_GNUC) || EIGEN_COMP_ICC || EIGEN_GNUC_AT_LEAST(4,2) )
+ #define EIGEN_SSE2_ON_NON_MSVC_BUT_NOT_OLD_GCC
+ #endif
+#endif
+
+#ifndef EIGEN_DONT_VECTORIZE
+
+ #if defined (EIGEN_SSE2_ON_NON_MSVC_BUT_NOT_OLD_GCC) || defined(EIGEN_SSE2_ON_MSVC_2008_OR_LATER)
+
+ // Defines symbols for compile-time detection of which instructions are
+ // used.
+ // EIGEN_VECTORIZE_YY is defined if and only if the instruction set YY is used
+ #define EIGEN_VECTORIZE
+ #define EIGEN_VECTORIZE_SSE
+ #define EIGEN_VECTORIZE_SSE2
+
+ // Detect sse3/ssse3/sse4:
+ // gcc and icc defines __SSE3__, ...
+ // there is no way to know about this on msvc. You can define EIGEN_VECTORIZE_SSE* if you
+ // want to force the use of those instructions with msvc.
+ #ifdef __SSE3__
+ #define EIGEN_VECTORIZE_SSE3
+ #endif
+ #ifdef __SSSE3__
+ #define EIGEN_VECTORIZE_SSSE3
+ #endif
+ #ifdef __SSE4_1__
+ #define EIGEN_VECTORIZE_SSE4_1
+ #endif
+ #ifdef __SSE4_2__
+ #define EIGEN_VECTORIZE_SSE4_2
+ #endif
+ #ifdef __AVX__
+ #define EIGEN_VECTORIZE_AVX
+ #define EIGEN_VECTORIZE_SSE3
+ #define EIGEN_VECTORIZE_SSSE3
+ #define EIGEN_VECTORIZE_SSE4_1
+ #define EIGEN_VECTORIZE_SSE4_2
+ #endif
+ #ifdef __AVX2__
+ #define EIGEN_VECTORIZE_AVX2
+ #endif
+ #ifdef __FMA__
+ #define EIGEN_VECTORIZE_FMA
+ #endif
+ #if defined(__AVX512F__) && defined(EIGEN_ENABLE_AVX512)
+ #define EIGEN_VECTORIZE_AVX512
+ #define EIGEN_VECTORIZE_AVX2
+ #define EIGEN_VECTORIZE_AVX
+ #define EIGEN_VECTORIZE_FMA
+ #ifdef __AVX512DQ__
+ #define EIGEN_VECTORIZE_AVX512DQ
+ #endif
+ #endif
+
+ // include files
+
+ // This extern "C" works around a MINGW-w64 compilation issue
+ // https://sourceforge.net/tracker/index.php?func=detail&aid=3018394&group_id=202880&atid=983354
+ // In essence, intrin.h is included by windows.h and also declares intrinsics (just as emmintrin.h etc. below do).
+ // However, intrin.h uses an extern "C" declaration, and g++ thus complains of duplicate declarations
+ // with conflicting linkage. The linkage for intrinsics doesn't matter, but at that stage the compiler doesn't know;
+ // so, to avoid compile errors when windows.h is included after Eigen/Core, ensure intrinsics are extern "C" here too.
+ // notice that since these are C headers, the extern "C" is theoretically needed anyways.
+ extern "C" {
+ // In theory we should only include immintrin.h and not the other *mmintrin.h header files directly.
+ // Doing so triggers some issues with ICC. However old gcc versions seems to not have this file, thus:
+ #if EIGEN_COMP_ICC >= 1110
+ #include <immintrin.h>
+ #else
+ #include <mmintrin.h>
+ #include <emmintrin.h>
+ #include <xmmintrin.h>
+ #ifdef EIGEN_VECTORIZE_SSE3
+ #include <pmmintrin.h>
+ #endif
+ #ifdef EIGEN_VECTORIZE_SSSE3
+ #include <tmmintrin.h>
+ #endif
+ #ifdef EIGEN_VECTORIZE_SSE4_1
+ #include <smmintrin.h>
+ #endif
+ #ifdef EIGEN_VECTORIZE_SSE4_2
+ #include <nmmintrin.h>
+ #endif
+ #if defined(EIGEN_VECTORIZE_AVX) || defined(EIGEN_VECTORIZE_AVX512)
+ #include <immintrin.h>
+ #endif
+ #endif
+ } // end extern "C"
+ #elif defined __VSX__
+ #define EIGEN_VECTORIZE
+ #define EIGEN_VECTORIZE_VSX
+ #include <altivec.h>
+ // We need to #undef all these ugly tokens defined in <altivec.h>
+ // => use __vector instead of vector
+ #undef bool
+ #undef vector
+ #undef pixel
+ #elif defined __ALTIVEC__
+ #define EIGEN_VECTORIZE
+ #define EIGEN_VECTORIZE_ALTIVEC
+ #include <altivec.h>
+ // We need to #undef all these ugly tokens defined in <altivec.h>
+ // => use __vector instead of vector
+ #undef bool
+ #undef vector
+ #undef pixel
+ #elif (defined __ARM_NEON) || (defined __ARM_NEON__)
+ #define EIGEN_VECTORIZE
+ #define EIGEN_VECTORIZE_NEON
+ #include <arm_neon.h>
+ #elif (defined __s390x__ && defined __VEC__)
+ #define EIGEN_VECTORIZE
+ #define EIGEN_VECTORIZE_ZVECTOR
+ #include <vecintrin.h>
+ #endif
+#endif
+
+#if defined(__F16C__) && !defined(EIGEN_COMP_CLANG)
+ // We can use the optimized fp16 to float and float to fp16 conversion routines
+ #define EIGEN_HAS_FP16_C
+#endif
+
+#if defined __CUDACC__
+ #define EIGEN_VECTORIZE_CUDA
+ #include <vector_types.h>
+ #if defined __CUDACC_VER__ && __CUDACC_VER__ >= 70500
+ #define EIGEN_HAS_CUDA_FP16
+ #endif
+#endif
+
+#if defined EIGEN_HAS_CUDA_FP16
+ #include <host_defines.h>
+ #include <cuda_fp16.h>
+#endif
+
+#if (defined _OPENMP) && (!defined EIGEN_DONT_PARALLELIZE)
+ #define EIGEN_HAS_OPENMP
+#endif
+
+#ifdef EIGEN_HAS_OPENMP
+#include <omp.h>
+#endif
+
+// MSVC for windows mobile does not have the errno.h file
+#if !(EIGEN_COMP_MSVC && EIGEN_OS_WINCE) && !EIGEN_COMP_ARM
+#define EIGEN_HAS_ERRNO
+#endif
+
+#ifdef EIGEN_HAS_ERRNO
+#include <cerrno>
+#endif
+#include <cstddef>
+#include <cstdlib>
+#include <cmath>
+#include <cassert>
+#include <functional>
+#include <iosfwd>
+#include <cstring>
+#include <string>
+#include <limits>
+#include <climits> // for CHAR_BIT
+// for min/max:
+#include <algorithm>
+
+// for std::is_nothrow_move_assignable
+#ifdef EIGEN_INCLUDE_TYPE_TRAITS
+#include <type_traits>
+#endif
+
+// for outputting debug info
+#ifdef EIGEN_DEBUG_ASSIGN
+#include <iostream>
+#endif
+
+// required for __cpuid, needs to be included after cmath
+#if EIGEN_COMP_MSVC && EIGEN_ARCH_i386_OR_x86_64 && !EIGEN_OS_WINCE
+ #include <intrin.h>
+#endif
+
+/** \brief Namespace containing all symbols from the %Eigen library. */
+namespace Eigen {
+
+inline static const char *SimdInstructionSetsInUse(void) {
+#if defined(EIGEN_VECTORIZE_AVX512)
+ return "AVX512, FMA, AVX2, AVX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2";
+#elif defined(EIGEN_VECTORIZE_AVX)
+ return "AVX SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2";
+#elif defined(EIGEN_VECTORIZE_SSE4_2)
+ return "SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2";
+#elif defined(EIGEN_VECTORIZE_SSE4_1)
+ return "SSE, SSE2, SSE3, SSSE3, SSE4.1";
+#elif defined(EIGEN_VECTORIZE_SSSE3)
+ return "SSE, SSE2, SSE3, SSSE3";
+#elif defined(EIGEN_VECTORIZE_SSE3)
+ return "SSE, SSE2, SSE3";
+#elif defined(EIGEN_VECTORIZE_SSE2)
+ return "SSE, SSE2";
+#elif defined(EIGEN_VECTORIZE_ALTIVEC)
+ return "AltiVec";
+#elif defined(EIGEN_VECTORIZE_VSX)
+ return "VSX";
+#elif defined(EIGEN_VECTORIZE_NEON)
+ return "ARM NEON";
+#elif defined(EIGEN_VECTORIZE_ZVECTOR)
+ return "S390X ZVECTOR";
+#else
+ return "None";
+#endif
+}
+
+} // end namespace Eigen
+
+#if defined EIGEN2_SUPPORT_STAGE40_FULL_EIGEN3_STRICTNESS || defined EIGEN2_SUPPORT_STAGE30_FULL_EIGEN3_API || defined EIGEN2_SUPPORT_STAGE20_RESOLVE_API_CONFLICTS || defined EIGEN2_SUPPORT_STAGE10_FULL_EIGEN2_API || defined EIGEN2_SUPPORT
+// This will generate an error message:
+#error Eigen2-support is only available up to version 3.2. Please go to "http://eigen.tuxfamily.org/index.php?title=Eigen2" for further information
+#endif
+
+namespace Eigen {
+
+// we use size_t frequently and we'll never remember to prepend it with std:: everytime just to
+// ensure QNX/QCC support
+using std::size_t;
+// gcc 4.6.0 wants std:: for ptrdiff_t
+using std::ptrdiff_t;
+
+}
+
+/** \defgroup Core_Module Core module
+ * This is the main module of Eigen providing dense matrix and vector support
+ * (both fixed and dynamic size) with all the features corresponding to a BLAS library
+ * and much more...
+ *
+ * \code
+ * #include <Eigen/Core>
+ * \endcode
+ */
+
+#include "src/Core/util/Constants.h"
+#include "src/Core/util/Meta.h"
+#include "src/Core/util/ForwardDeclarations.h"
+#include "src/Core/util/StaticAssert.h"
+#include "src/Core/util/XprHelper.h"
+#include "src/Core/util/Memory.h"
+
+#include "src/Core/NumTraits.h"
+#include "src/Core/MathFunctions.h"
+#include "src/Core/GenericPacketMath.h"
+#include "src/Core/MathFunctionsImpl.h"
+
+#if defined EIGEN_VECTORIZE_AVX512
+ #include "src/Core/arch/SSE/PacketMath.h"
+ #include "src/Core/arch/AVX/PacketMath.h"
+ #include "src/Core/arch/AVX512/PacketMath.h"
+ #include "src/Core/arch/AVX512/MathFunctions.h"
+#elif defined EIGEN_VECTORIZE_AVX
+ // Use AVX for floats and doubles, SSE for integers
+ #include "src/Core/arch/SSE/PacketMath.h"
+ #include "src/Core/arch/SSE/Complex.h"
+ #include "src/Core/arch/SSE/MathFunctions.h"
+ #include "src/Core/arch/AVX/PacketMath.h"
+ #include "src/Core/arch/AVX/MathFunctions.h"
+ #include "src/Core/arch/AVX/Complex.h"
+ #include "src/Core/arch/AVX/TypeCasting.h"
+#elif defined EIGEN_VECTORIZE_SSE
+ #include "src/Core/arch/SSE/PacketMath.h"
+ #include "src/Core/arch/SSE/MathFunctions.h"
+ #include "src/Core/arch/SSE/Complex.h"
+ #include "src/Core/arch/SSE/TypeCasting.h"
+#elif defined(EIGEN_VECTORIZE_ALTIVEC) || defined(EIGEN_VECTORIZE_VSX)
+ #include "src/Core/arch/AltiVec/PacketMath.h"
+ #include "src/Core/arch/AltiVec/MathFunctions.h"
+ #include "src/Core/arch/AltiVec/Complex.h"
+#elif defined EIGEN_VECTORIZE_NEON
+ #include "src/Core/arch/NEON/PacketMath.h"
+ #include "src/Core/arch/NEON/MathFunctions.h"
+ #include "src/Core/arch/NEON/Complex.h"
+#elif defined EIGEN_VECTORIZE_ZVECTOR
+ #include "src/Core/arch/ZVector/PacketMath.h"
+ #include "src/Core/arch/ZVector/MathFunctions.h"
+ #include "src/Core/arch/ZVector/Complex.h"
+#endif
+
+// Half float support
+#include "src/Core/arch/CUDA/Half.h"
+#include "src/Core/arch/CUDA/PacketMathHalf.h"
+#include "src/Core/arch/CUDA/TypeCasting.h"
+
+#if defined EIGEN_VECTORIZE_CUDA
+ #include "src/Core/arch/CUDA/PacketMath.h"
+ #include "src/Core/arch/CUDA/MathFunctions.h"
+#endif
+
+#include "src/Core/arch/Default/Settings.h"
+
+#include "src/Core/functors/TernaryFunctors.h"
+#include "src/Core/functors/BinaryFunctors.h"
+#include "src/Core/functors/UnaryFunctors.h"
+#include "src/Core/functors/NullaryFunctors.h"
+#include "src/Core/functors/StlFunctors.h"
+#include "src/Core/functors/AssignmentFunctors.h"
+
+// Specialized functors to enable the processing of complex numbers
+// on CUDA devices
+#include "src/Core/arch/CUDA/Complex.h"
+
+#include "src/Core/IO.h"
+#include "src/Core/DenseCoeffsBase.h"
+#include "src/Core/DenseBase.h"
+#include "src/Core/MatrixBase.h"
+#include "src/Core/EigenBase.h"
+
+#include "src/Core/Product.h"
+#include "src/Core/CoreEvaluators.h"
+#include "src/Core/AssignEvaluator.h"
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN // work around Doxygen bug triggered by Assign.h r814874
+ // at least confirmed with Doxygen 1.5.5 and 1.5.6
+ #include "src/Core/Assign.h"
+#endif
+
+#include "src/Core/ArrayBase.h"
+#include "src/Core/util/BlasUtil.h"
+#include "src/Core/DenseStorage.h"
+#include "src/Core/NestByValue.h"
+
+// #include "src/Core/ForceAlignedAccess.h"
+
+#include "src/Core/ReturnByValue.h"
+#include "src/Core/NoAlias.h"
+#include "src/Core/PlainObjectBase.h"
+#include "src/Core/Matrix.h"
+#include "src/Core/Array.h"
+#include "src/Core/CwiseTernaryOp.h"
+#include "src/Core/CwiseBinaryOp.h"
+#include "src/Core/CwiseUnaryOp.h"
+#include "src/Core/CwiseNullaryOp.h"
+#include "src/Core/CwiseUnaryView.h"
+#include "src/Core/SelfCwiseBinaryOp.h"
+#include "src/Core/Dot.h"
+#include "src/Core/StableNorm.h"
+#include "src/Core/Stride.h"
+#include "src/Core/MapBase.h"
+#include "src/Core/Map.h"
+#include "src/Core/Ref.h"
+#include "src/Core/Block.h"
+#include "src/Core/VectorBlock.h"
+#include "src/Core/Transpose.h"
+#include "src/Core/DiagonalMatrix.h"
+#include "src/Core/Diagonal.h"
+#include "src/Core/DiagonalProduct.h"
+#include "src/Core/Redux.h"
+#include "src/Core/Visitor.h"
+#include "src/Core/Fuzzy.h"
+#include "src/Core/Swap.h"
+#include "src/Core/CommaInitializer.h"
+#include "src/Core/GeneralProduct.h"
+#include "src/Core/Solve.h"
+#include "src/Core/Inverse.h"
+#include "src/Core/SolverBase.h"
+#include "src/Core/PermutationMatrix.h"
+#include "src/Core/Transpositions.h"
+#include "src/Core/TriangularMatrix.h"
+#include "src/Core/SelfAdjointView.h"
+#include "src/Core/products/GeneralBlockPanelKernel.h"
+#include "src/Core/products/Parallelizer.h"
+#include "src/Core/ProductEvaluators.h"
+#include "src/Core/products/GeneralMatrixVector.h"
+#include "src/Core/products/GeneralMatrixMatrix.h"
+#include "src/Core/SolveTriangular.h"
+#include "src/Core/products/GeneralMatrixMatrixTriangular.h"
+#include "src/Core/products/SelfadjointMatrixVector.h"
+#include "src/Core/products/SelfadjointMatrixMatrix.h"
+#include "src/Core/products/SelfadjointProduct.h"
+#include "src/Core/products/SelfadjointRank2Update.h"
+#include "src/Core/products/TriangularMatrixVector.h"
+#include "src/Core/products/TriangularMatrixMatrix.h"
+#include "src/Core/products/TriangularSolverMatrix.h"
+#include "src/Core/products/TriangularSolverVector.h"
+#include "src/Core/BandMatrix.h"
+#include "src/Core/CoreIterators.h"
+#include "src/Core/ConditionEstimator.h"
+
+#include "src/Core/BooleanRedux.h"
+#include "src/Core/Select.h"
+#include "src/Core/VectorwiseOp.h"
+#include "src/Core/Random.h"
+#include "src/Core/Replicate.h"
+#include "src/Core/Reverse.h"
+#include "src/Core/ArrayWrapper.h"
+
+#ifdef EIGEN_USE_BLAS
+#include "src/Core/products/GeneralMatrixMatrix_BLAS.h"
+#include "src/Core/products/GeneralMatrixVector_BLAS.h"
+#include "src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h"
+#include "src/Core/products/SelfadjointMatrixMatrix_BLAS.h"
+#include "src/Core/products/SelfadjointMatrixVector_BLAS.h"
+#include "src/Core/products/TriangularMatrixMatrix_BLAS.h"
+#include "src/Core/products/TriangularMatrixVector_BLAS.h"
+#include "src/Core/products/TriangularSolverMatrix_BLAS.h"
+#endif // EIGEN_USE_BLAS
+
+#ifdef EIGEN_USE_MKL_VML
+#include "src/Core/Assign_MKL.h"
+#endif
+
+#include "src/Core/GlobalFunctions.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_CORE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/Dense b/runtimes/nn/depend/external/eigen/Eigen/Dense
new file mode 100644
index 000000000..5768910bd
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/Dense
@@ -0,0 +1,7 @@
+#include "Core"
+#include "LU"
+#include "Cholesky"
+#include "QR"
+#include "SVD"
+#include "Geometry"
+#include "Eigenvalues"
diff --git a/runtimes/nn/depend/external/eigen/Eigen/Eigen b/runtimes/nn/depend/external/eigen/Eigen/Eigen
new file mode 100644
index 000000000..654c8dc63
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/Eigen
@@ -0,0 +1,2 @@
+#include "Dense"
+#include "Sparse"
diff --git a/runtimes/nn/depend/external/eigen/Eigen/Eigenvalues b/runtimes/nn/depend/external/eigen/Eigen/Eigenvalues
new file mode 100644
index 000000000..009e529e1
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/Eigenvalues
@@ -0,0 +1,57 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_EIGENVALUES_MODULE_H
+#define EIGEN_EIGENVALUES_MODULE_H
+
+#include "Core"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+#include "Cholesky"
+#include "Jacobi"
+#include "Householder"
+#include "LU"
+#include "Geometry"
+
+/** \defgroup Eigenvalues_Module Eigenvalues module
+ *
+ *
+ *
+ * This module mainly provides various eigenvalue solvers.
+ * This module also provides some MatrixBase methods, including:
+ * - MatrixBase::eigenvalues(),
+ * - MatrixBase::operatorNorm()
+ *
+ * \code
+ * #include <Eigen/Eigenvalues>
+ * \endcode
+ */
+
+#include "src/misc/RealSvd2x2.h"
+#include "src/Eigenvalues/Tridiagonalization.h"
+#include "src/Eigenvalues/RealSchur.h"
+#include "src/Eigenvalues/EigenSolver.h"
+#include "src/Eigenvalues/SelfAdjointEigenSolver.h"
+#include "src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h"
+#include "src/Eigenvalues/HessenbergDecomposition.h"
+#include "src/Eigenvalues/ComplexSchur.h"
+#include "src/Eigenvalues/ComplexEigenSolver.h"
+#include "src/Eigenvalues/RealQZ.h"
+#include "src/Eigenvalues/GeneralizedEigenSolver.h"
+#include "src/Eigenvalues/MatrixBaseEigenvalues.h"
+#ifdef EIGEN_USE_LAPACKE
+#include "src/misc/lapacke.h"
+#include "src/Eigenvalues/RealSchur_LAPACKE.h"
+#include "src/Eigenvalues/ComplexSchur_LAPACKE.h"
+#include "src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h"
+#endif
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_EIGENVALUES_MODULE_H
+/* vim: set filetype=cpp et sw=2 ts=2 ai: */
diff --git a/runtimes/nn/depend/external/eigen/Eigen/Geometry b/runtimes/nn/depend/external/eigen/Eigen/Geometry
new file mode 100644
index 000000000..716d52952
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/Geometry
@@ -0,0 +1,62 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GEOMETRY_MODULE_H
+#define EIGEN_GEOMETRY_MODULE_H
+
+#include "Core"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+#include "SVD"
+#include "LU"
+#include <limits>
+
+/** \defgroup Geometry_Module Geometry module
+ *
+ * This module provides support for:
+ * - fixed-size homogeneous transformations
+ * - translation, scaling, 2D and 3D rotations
+ * - \link Quaternion quaternions \endlink
+ * - cross products (\ref MatrixBase::cross, \ref MatrixBase::cross3)
+ * - orthognal vector generation (\ref MatrixBase::unitOrthogonal)
+ * - some linear components: \link ParametrizedLine parametrized-lines \endlink and \link Hyperplane hyperplanes \endlink
+ * - \link AlignedBox axis aligned bounding boxes \endlink
+ * - \link umeyama least-square transformation fitting \endlink
+ *
+ * \code
+ * #include <Eigen/Geometry>
+ * \endcode
+ */
+
+#include "src/Geometry/OrthoMethods.h"
+#include "src/Geometry/EulerAngles.h"
+
+#include "src/Geometry/Homogeneous.h"
+#include "src/Geometry/RotationBase.h"
+#include "src/Geometry/Rotation2D.h"
+#include "src/Geometry/Quaternion.h"
+#include "src/Geometry/AngleAxis.h"
+#include "src/Geometry/Transform.h"
+#include "src/Geometry/Translation.h"
+#include "src/Geometry/Scaling.h"
+#include "src/Geometry/Hyperplane.h"
+#include "src/Geometry/ParametrizedLine.h"
+#include "src/Geometry/AlignedBox.h"
+#include "src/Geometry/Umeyama.h"
+
+// Use the SSE optimized version whenever possible. At the moment the
+// SSE version doesn't compile when AVX is enabled
+#if defined EIGEN_VECTORIZE_SSE && !defined EIGEN_VECTORIZE_AVX
+#include "src/Geometry/arch/Geometry_SSE.h"
+#endif
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_GEOMETRY_MODULE_H
+/* vim: set filetype=cpp et sw=2 ts=2 ai: */
+
diff --git a/runtimes/nn/depend/external/eigen/Eigen/Householder b/runtimes/nn/depend/external/eigen/Eigen/Householder
new file mode 100644
index 000000000..89cd81b1a
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/Householder
@@ -0,0 +1,30 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_HOUSEHOLDER_MODULE_H
+#define EIGEN_HOUSEHOLDER_MODULE_H
+
+#include "Core"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/** \defgroup Householder_Module Householder module
+ * This module provides Householder transformations.
+ *
+ * \code
+ * #include <Eigen/Householder>
+ * \endcode
+ */
+
+#include "src/Householder/Householder.h"
+#include "src/Householder/HouseholderSequence.h"
+#include "src/Householder/BlockHouseholder.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_HOUSEHOLDER_MODULE_H
+/* vim: set filetype=cpp et sw=2 ts=2 ai: */
diff --git a/runtimes/nn/depend/external/eigen/Eigen/IterativeLinearSolvers b/runtimes/nn/depend/external/eigen/Eigen/IterativeLinearSolvers
new file mode 100644
index 000000000..957d5750b
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/IterativeLinearSolvers
@@ -0,0 +1,48 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ITERATIVELINEARSOLVERS_MODULE_H
+#define EIGEN_ITERATIVELINEARSOLVERS_MODULE_H
+
+#include "SparseCore"
+#include "OrderingMethods"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/**
+ * \defgroup IterativeLinearSolvers_Module IterativeLinearSolvers module
+ *
+ * This module currently provides iterative methods to solve problems of the form \c A \c x = \c b, where \c A is a squared matrix, usually very large and sparse.
+ * Those solvers are accessible via the following classes:
+ * - ConjugateGradient for selfadjoint (hermitian) matrices,
+ * - LeastSquaresConjugateGradient for rectangular least-square problems,
+ * - BiCGSTAB for general square matrices.
+ *
+ * These iterative solvers are associated with some preconditioners:
+ * - IdentityPreconditioner - not really useful
+ * - DiagonalPreconditioner - also called Jacobi preconditioner, work very well on diagonal dominant matrices.
+ * - IncompleteLUT - incomplete LU factorization with dual thresholding
+ *
+ * Such problems can also be solved using the direct sparse decomposition modules: SparseCholesky, CholmodSupport, UmfPackSupport, SuperLUSupport.
+ *
+ \code
+ #include <Eigen/IterativeLinearSolvers>
+ \endcode
+ */
+
+#include "src/IterativeLinearSolvers/SolveWithGuess.h"
+#include "src/IterativeLinearSolvers/IterativeSolverBase.h"
+#include "src/IterativeLinearSolvers/BasicPreconditioners.h"
+#include "src/IterativeLinearSolvers/ConjugateGradient.h"
+#include "src/IterativeLinearSolvers/LeastSquareConjugateGradient.h"
+#include "src/IterativeLinearSolvers/BiCGSTAB.h"
+#include "src/IterativeLinearSolvers/IncompleteLUT.h"
+#include "src/IterativeLinearSolvers/IncompleteCholesky.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_ITERATIVELINEARSOLVERS_MODULE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/Jacobi b/runtimes/nn/depend/external/eigen/Eigen/Jacobi
new file mode 100644
index 000000000..17c1d785a
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/Jacobi
@@ -0,0 +1,33 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_JACOBI_MODULE_H
+#define EIGEN_JACOBI_MODULE_H
+
+#include "Core"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/** \defgroup Jacobi_Module Jacobi module
+ * This module provides Jacobi and Givens rotations.
+ *
+ * \code
+ * #include <Eigen/Jacobi>
+ * \endcode
+ *
+ * In addition to listed classes, it defines the two following MatrixBase methods to apply a Jacobi or Givens rotation:
+ * - MatrixBase::applyOnTheLeft()
+ * - MatrixBase::applyOnTheRight().
+ */
+
+#include "src/Jacobi/Jacobi.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_JACOBI_MODULE_H
+/* vim: set filetype=cpp et sw=2 ts=2 ai: */
+
diff --git a/runtimes/nn/depend/external/eigen/Eigen/LU b/runtimes/nn/depend/external/eigen/Eigen/LU
new file mode 100644
index 000000000..6f6c55629
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/LU
@@ -0,0 +1,46 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_LU_MODULE_H
+#define EIGEN_LU_MODULE_H
+
+#include "Core"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/** \defgroup LU_Module LU module
+ * This module includes %LU decomposition and related notions such as matrix inversion and determinant.
+ * This module defines the following MatrixBase methods:
+ * - MatrixBase::inverse()
+ * - MatrixBase::determinant()
+ *
+ * \code
+ * #include <Eigen/LU>
+ * \endcode
+ */
+
+#include "src/misc/Kernel.h"
+#include "src/misc/Image.h"
+#include "src/LU/FullPivLU.h"
+#include "src/LU/PartialPivLU.h"
+#ifdef EIGEN_USE_LAPACKE
+#include "src/misc/lapacke.h"
+#include "src/LU/PartialPivLU_LAPACKE.h"
+#endif
+#include "src/LU/Determinant.h"
+#include "src/LU/InverseImpl.h"
+
+// Use the SSE optimized version whenever possible. At the moment the
+// SSE version doesn't compile when AVX is enabled
+#if defined EIGEN_VECTORIZE_SSE && !defined EIGEN_VECTORIZE_AVX
+ #include "src/LU/arch/Inverse_SSE.h"
+#endif
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_LU_MODULE_H
+/* vim: set filetype=cpp et sw=2 ts=2 ai: */
diff --git a/runtimes/nn/depend/external/eigen/Eigen/MetisSupport b/runtimes/nn/depend/external/eigen/Eigen/MetisSupport
new file mode 100644
index 000000000..85c41bf34
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/MetisSupport
@@ -0,0 +1,35 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_METISSUPPORT_MODULE_H
+#define EIGEN_METISSUPPORT_MODULE_H
+
+#include "SparseCore"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+extern "C" {
+#include <metis.h>
+}
+
+
+/** \ingroup Support_modules
+ * \defgroup MetisSupport_Module MetisSupport module
+ *
+ * \code
+ * #include <Eigen/MetisSupport>
+ * \endcode
+ * This module defines an interface to the METIS reordering package (http://glaros.dtc.umn.edu/gkhome/views/metis).
+ * It can be used just as any other built-in method as explained in \link OrderingMethods_Module here. \endlink
+ */
+
+
+#include "src/MetisSupport/MetisSupport.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_METISSUPPORT_MODULE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/OrderingMethods b/runtimes/nn/depend/external/eigen/Eigen/OrderingMethods
new file mode 100644
index 000000000..d8ea36193
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/OrderingMethods
@@ -0,0 +1,73 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ORDERINGMETHODS_MODULE_H
+#define EIGEN_ORDERINGMETHODS_MODULE_H
+
+#include "SparseCore"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/**
+ * \defgroup OrderingMethods_Module OrderingMethods module
+ *
+ * This module is currently for internal use only
+ *
+ * It defines various built-in and external ordering methods for sparse matrices.
+ * They are typically used to reduce the number of elements during
+ * the sparse matrix decomposition (LLT, LU, QR).
+ * Precisely, in a preprocessing step, a permutation matrix P is computed using
+ * those ordering methods and applied to the columns of the matrix.
+ * Using for instance the sparse Cholesky decomposition, it is expected that
+ * the nonzeros elements in LLT(A*P) will be much smaller than that in LLT(A).
+ *
+ *
+ * Usage :
+ * \code
+ * #include <Eigen/OrderingMethods>
+ * \endcode
+ *
+ * A simple usage is as a template parameter in the sparse decomposition classes :
+ *
+ * \code
+ * SparseLU<MatrixType, COLAMDOrdering<int> > solver;
+ * \endcode
+ *
+ * \code
+ * SparseQR<MatrixType, COLAMDOrdering<int> > solver;
+ * \endcode
+ *
+ * It is possible as well to call directly a particular ordering method for your own purpose,
+ * \code
+ * AMDOrdering<int> ordering;
+ * PermutationMatrix<Dynamic, Dynamic, int> perm;
+ * SparseMatrix<double> A;
+ * //Fill the matrix ...
+ *
+ * ordering(A, perm); // Call AMD
+ * \endcode
+ *
+ * \note Some of these methods (like AMD or METIS), need the sparsity pattern
+ * of the input matrix to be symmetric. When the matrix is structurally unsymmetric,
+ * Eigen computes internally the pattern of \f$A^T*A\f$ before calling the method.
+ * If your matrix is already symmetric (at leat in structure), you can avoid that
+ * by calling the method with a SelfAdjointView type.
+ *
+ * \code
+ * // Call the ordering on the pattern of the lower triangular matrix A
+ * ordering(A.selfadjointView<Lower>(), perm);
+ * \endcode
+ */
+
+#ifndef EIGEN_MPL2_ONLY
+#include "src/OrderingMethods/Amd.h"
+#endif
+
+#include "src/OrderingMethods/Ordering.h"
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_ORDERINGMETHODS_MODULE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/PaStiXSupport b/runtimes/nn/depend/external/eigen/Eigen/PaStiXSupport
new file mode 100644
index 000000000..de3a63b4d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/PaStiXSupport
@@ -0,0 +1,48 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PASTIXSUPPORT_MODULE_H
+#define EIGEN_PASTIXSUPPORT_MODULE_H
+
+#include "SparseCore"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+extern "C" {
+#include <pastix_nompi.h>
+#include <pastix.h>
+}
+
+#ifdef complex
+#undef complex
+#endif
+
+/** \ingroup Support_modules
+ * \defgroup PaStiXSupport_Module PaStiXSupport module
+ *
+ * This module provides an interface to the <a href="http://pastix.gforge.inria.fr/">PaSTiX</a> library.
+ * PaSTiX is a general \b supernodal, \b parallel and \b opensource sparse solver.
+ * It provides the two following main factorization classes:
+ * - class PastixLLT : a supernodal, parallel LLt Cholesky factorization.
+ * - class PastixLDLT: a supernodal, parallel LDLt Cholesky factorization.
+ * - class PastixLU : a supernodal, parallel LU factorization (optimized for a symmetric pattern).
+ *
+ * \code
+ * #include <Eigen/PaStiXSupport>
+ * \endcode
+ *
+ * In order to use this module, the PaSTiX headers must be accessible from the include paths, and your binary must be linked to the PaSTiX library and its dependencies.
+ * The dependencies depend on how PaSTiX has been compiled.
+ * For a cmake based project, you can use our FindPaSTiX.cmake module to help you in this task.
+ *
+ */
+
+#include "src/PaStiXSupport/PaStiXSupport.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_PASTIXSUPPORT_MODULE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/PardisoSupport b/runtimes/nn/depend/external/eigen/Eigen/PardisoSupport
new file mode 100755
index 000000000..340edf51f
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/PardisoSupport
@@ -0,0 +1,35 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PARDISOSUPPORT_MODULE_H
+#define EIGEN_PARDISOSUPPORT_MODULE_H
+
+#include "SparseCore"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+#include <mkl_pardiso.h>
+
+/** \ingroup Support_modules
+ * \defgroup PardisoSupport_Module PardisoSupport module
+ *
+ * This module brings support for the Intel(R) MKL PARDISO direct sparse solvers.
+ *
+ * \code
+ * #include <Eigen/PardisoSupport>
+ * \endcode
+ *
+ * In order to use this module, the MKL headers must be accessible from the include paths, and your binary must be linked to the MKL library and its dependencies.
+ * See this \ref TopicUsingIntelMKL "page" for more information on MKL-Eigen integration.
+ *
+ */
+
+#include "src/PardisoSupport/PardisoSupport.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_PARDISOSUPPORT_MODULE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/QR b/runtimes/nn/depend/external/eigen/Eigen/QR
new file mode 100644
index 000000000..80838e3bd
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/QR
@@ -0,0 +1,47 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_QR_MODULE_H
+#define EIGEN_QR_MODULE_H
+
+#include "Core"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+#include "Cholesky"
+#include "Jacobi"
+#include "Householder"
+
+/** \defgroup QR_Module QR module
+ *
+ *
+ *
+ * This module provides various QR decompositions
+ * This module also provides some MatrixBase methods, including:
+ * - MatrixBase::householderQr()
+ * - MatrixBase::colPivHouseholderQr()
+ * - MatrixBase::fullPivHouseholderQr()
+ *
+ * \code
+ * #include <Eigen/QR>
+ * \endcode
+ */
+
+#include "src/QR/HouseholderQR.h"
+#include "src/QR/FullPivHouseholderQR.h"
+#include "src/QR/ColPivHouseholderQR.h"
+#include "src/QR/CompleteOrthogonalDecomposition.h"
+#ifdef EIGEN_USE_LAPACKE
+#include "src/misc/lapacke.h"
+#include "src/QR/HouseholderQR_LAPACKE.h"
+#include "src/QR/ColPivHouseholderQR_LAPACKE.h"
+#endif
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_QR_MODULE_H
+/* vim: set filetype=cpp et sw=2 ts=2 ai: */
diff --git a/runtimes/nn/depend/external/eigen/Eigen/QtAlignedMalloc b/runtimes/nn/depend/external/eigen/Eigen/QtAlignedMalloc
new file mode 100644
index 000000000..c6571f129
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/QtAlignedMalloc
@@ -0,0 +1,40 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_QTMALLOC_MODULE_H
+#define EIGEN_QTMALLOC_MODULE_H
+
+#include "Core"
+
+#if (!EIGEN_MALLOC_ALREADY_ALIGNED)
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+void *qMalloc(std::size_t size)
+{
+ return Eigen::internal::aligned_malloc(size);
+}
+
+void qFree(void *ptr)
+{
+ Eigen::internal::aligned_free(ptr);
+}
+
+void *qRealloc(void *ptr, std::size_t size)
+{
+ void* newPtr = Eigen::internal::aligned_malloc(size);
+ memcpy(newPtr, ptr, size);
+ Eigen::internal::aligned_free(ptr);
+ return newPtr;
+}
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif
+
+#endif // EIGEN_QTMALLOC_MODULE_H
+/* vim: set filetype=cpp et sw=2 ts=2 ai: */
diff --git a/runtimes/nn/depend/external/eigen/Eigen/SPQRSupport b/runtimes/nn/depend/external/eigen/Eigen/SPQRSupport
new file mode 100644
index 000000000..f70390c17
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/SPQRSupport
@@ -0,0 +1,34 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPQRSUPPORT_MODULE_H
+#define EIGEN_SPQRSUPPORT_MODULE_H
+
+#include "SparseCore"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+#include "SuiteSparseQR.hpp"
+
+/** \ingroup Support_modules
+ * \defgroup SPQRSupport_Module SuiteSparseQR module
+ *
+ * This module provides an interface to the SPQR library, which is part of the <a href="http://www.suitesparse.com">suitesparse</a> package.
+ *
+ * \code
+ * #include <Eigen/SPQRSupport>
+ * \endcode
+ *
+ * In order to use this module, the SPQR headers must be accessible from the include paths, and your binary must be linked to the SPQR library and its dependencies (Cholmod, AMD, COLAMD,...).
+ * For a cmake based project, you can use our FindSPQR.cmake and FindCholmod.Cmake modules
+ *
+ */
+
+#include "src/CholmodSupport/CholmodSupport.h"
+#include "src/SPQRSupport/SuiteSparseQRSupport.h"
+
+#endif
diff --git a/runtimes/nn/depend/external/eigen/Eigen/SVD b/runtimes/nn/depend/external/eigen/Eigen/SVD
new file mode 100644
index 000000000..86143c23d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/SVD
@@ -0,0 +1,47 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SVD_MODULE_H
+#define EIGEN_SVD_MODULE_H
+
+#include "QR"
+#include "Householder"
+#include "Jacobi"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/** \defgroup SVD_Module SVD module
+ *
+ *
+ *
+ * This module provides SVD decomposition for matrices (both real and complex).
+ * Two decomposition algorithms are provided:
+ * - JacobiSVD implementing two-sided Jacobi iterations is numerically very accurate, fast for small matrices, but very slow for larger ones.
+ * - BDCSVD implementing a recursive divide & conquer strategy on top of an upper-bidiagonalization which remains fast for large problems.
+ * These decompositions are accessible via the respective classes and following MatrixBase methods:
+ * - MatrixBase::jacobiSvd()
+ * - MatrixBase::bdcSvd()
+ *
+ * \code
+ * #include <Eigen/SVD>
+ * \endcode
+ */
+
+#include "src/misc/RealSvd2x2.h"
+#include "src/SVD/UpperBidiagonalization.h"
+#include "src/SVD/SVDBase.h"
+#include "src/SVD/JacobiSVD.h"
+#include "src/SVD/BDCSVD.h"
+#if defined(EIGEN_USE_LAPACKE) && !defined(EIGEN_USE_LAPACKE_STRICT)
+#include "src/misc/lapacke.h"
+#include "src/SVD/JacobiSVD_LAPACKE.h"
+#endif
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_SVD_MODULE_H
+/* vim: set filetype=cpp et sw=2 ts=2 ai: */
diff --git a/runtimes/nn/depend/external/eigen/Eigen/Sparse b/runtimes/nn/depend/external/eigen/Eigen/Sparse
new file mode 100644
index 000000000..136e681a1
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/Sparse
@@ -0,0 +1,36 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_MODULE_H
+#define EIGEN_SPARSE_MODULE_H
+
+/** \defgroup Sparse_Module Sparse meta-module
+ *
+ * Meta-module including all related modules:
+ * - \ref SparseCore_Module
+ * - \ref OrderingMethods_Module
+ * - \ref SparseCholesky_Module
+ * - \ref SparseLU_Module
+ * - \ref SparseQR_Module
+ * - \ref IterativeLinearSolvers_Module
+ *
+ \code
+ #include <Eigen/Sparse>
+ \endcode
+ */
+
+#include "SparseCore"
+#include "OrderingMethods"
+#ifndef EIGEN_MPL2_ONLY
+#include "SparseCholesky"
+#endif
+#include "SparseLU"
+#include "SparseQR"
+#include "IterativeLinearSolvers"
+
+#endif // EIGEN_SPARSE_MODULE_H
+
diff --git a/runtimes/nn/depend/external/eigen/Eigen/SparseCholesky b/runtimes/nn/depend/external/eigen/Eigen/SparseCholesky
new file mode 100644
index 000000000..b6a320c40
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/SparseCholesky
@@ -0,0 +1,45 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2013 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSECHOLESKY_MODULE_H
+#define EIGEN_SPARSECHOLESKY_MODULE_H
+
+#include "SparseCore"
+#include "OrderingMethods"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/**
+ * \defgroup SparseCholesky_Module SparseCholesky module
+ *
+ * This module currently provides two variants of the direct sparse Cholesky decomposition for selfadjoint (hermitian) matrices.
+ * Those decompositions are accessible via the following classes:
+ * - SimplicialLLt,
+ * - SimplicialLDLt
+ *
+ * Such problems can also be solved using the ConjugateGradient solver from the IterativeLinearSolvers module.
+ *
+ * \code
+ * #include <Eigen/SparseCholesky>
+ * \endcode
+ */
+
+#ifdef EIGEN_MPL2_ONLY
+#error The SparseCholesky module has nothing to offer in MPL2 only mode
+#endif
+
+#include "src/SparseCholesky/SimplicialCholesky.h"
+
+#ifndef EIGEN_MPL2_ONLY
+#include "src/SparseCholesky/SimplicialCholesky_impl.h"
+#endif
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_SPARSECHOLESKY_MODULE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/SparseCore b/runtimes/nn/depend/external/eigen/Eigen/SparseCore
new file mode 100644
index 000000000..76966c4c4
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/SparseCore
@@ -0,0 +1,69 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSECORE_MODULE_H
+#define EIGEN_SPARSECORE_MODULE_H
+
+#include "Core"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+#include <vector>
+#include <map>
+#include <cstdlib>
+#include <cstring>
+#include <algorithm>
+
+/**
+ * \defgroup SparseCore_Module SparseCore module
+ *
+ * This module provides a sparse matrix representation, and basic associated matrix manipulations
+ * and operations.
+ *
+ * See the \ref TutorialSparse "Sparse tutorial"
+ *
+ * \code
+ * #include <Eigen/SparseCore>
+ * \endcode
+ *
+ * This module depends on: Core.
+ */
+
+#include "src/SparseCore/SparseUtil.h"
+#include "src/SparseCore/SparseMatrixBase.h"
+#include "src/SparseCore/SparseAssign.h"
+#include "src/SparseCore/CompressedStorage.h"
+#include "src/SparseCore/AmbiVector.h"
+#include "src/SparseCore/SparseCompressedBase.h"
+#include "src/SparseCore/SparseMatrix.h"
+#include "src/SparseCore/SparseMap.h"
+#include "src/SparseCore/MappedSparseMatrix.h"
+#include "src/SparseCore/SparseVector.h"
+#include "src/SparseCore/SparseRef.h"
+#include "src/SparseCore/SparseCwiseUnaryOp.h"
+#include "src/SparseCore/SparseCwiseBinaryOp.h"
+#include "src/SparseCore/SparseTranspose.h"
+#include "src/SparseCore/SparseBlock.h"
+#include "src/SparseCore/SparseDot.h"
+#include "src/SparseCore/SparseRedux.h"
+#include "src/SparseCore/SparseView.h"
+#include "src/SparseCore/SparseDiagonalProduct.h"
+#include "src/SparseCore/ConservativeSparseSparseProduct.h"
+#include "src/SparseCore/SparseSparseProductWithPruning.h"
+#include "src/SparseCore/SparseProduct.h"
+#include "src/SparseCore/SparseDenseProduct.h"
+#include "src/SparseCore/SparseSelfAdjointView.h"
+#include "src/SparseCore/SparseTriangularView.h"
+#include "src/SparseCore/TriangularSolver.h"
+#include "src/SparseCore/SparsePermutation.h"
+#include "src/SparseCore/SparseFuzzy.h"
+#include "src/SparseCore/SparseSolverBase.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_SPARSECORE_MODULE_H
+
diff --git a/runtimes/nn/depend/external/eigen/Eigen/SparseLU b/runtimes/nn/depend/external/eigen/Eigen/SparseLU
new file mode 100644
index 000000000..38b38b531
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/SparseLU
@@ -0,0 +1,46 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSELU_MODULE_H
+#define EIGEN_SPARSELU_MODULE_H
+
+#include "SparseCore"
+
+/**
+ * \defgroup SparseLU_Module SparseLU module
+ * This module defines a supernodal factorization of general sparse matrices.
+ * The code is fully optimized for supernode-panel updates with specialized kernels.
+ * Please, see the documentation of the SparseLU class for more details.
+ */
+
+// Ordering interface
+#include "OrderingMethods"
+
+#include "src/SparseLU/SparseLU_gemm_kernel.h"
+
+#include "src/SparseLU/SparseLU_Structs.h"
+#include "src/SparseLU/SparseLU_SupernodalMatrix.h"
+#include "src/SparseLU/SparseLUImpl.h"
+#include "src/SparseCore/SparseColEtree.h"
+#include "src/SparseLU/SparseLU_Memory.h"
+#include "src/SparseLU/SparseLU_heap_relax_snode.h"
+#include "src/SparseLU/SparseLU_relax_snode.h"
+#include "src/SparseLU/SparseLU_pivotL.h"
+#include "src/SparseLU/SparseLU_panel_dfs.h"
+#include "src/SparseLU/SparseLU_kernel_bmod.h"
+#include "src/SparseLU/SparseLU_panel_bmod.h"
+#include "src/SparseLU/SparseLU_column_dfs.h"
+#include "src/SparseLU/SparseLU_column_bmod.h"
+#include "src/SparseLU/SparseLU_copy_to_ucol.h"
+#include "src/SparseLU/SparseLU_pruneL.h"
+#include "src/SparseLU/SparseLU_Utils.h"
+#include "src/SparseLU/SparseLU.h"
+
+#endif // EIGEN_SPARSELU_MODULE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/SparseQR b/runtimes/nn/depend/external/eigen/Eigen/SparseQR
new file mode 100644
index 000000000..a6f3b7f7d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/SparseQR
@@ -0,0 +1,37 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEQR_MODULE_H
+#define EIGEN_SPARSEQR_MODULE_H
+
+#include "SparseCore"
+#include "OrderingMethods"
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/** \defgroup SparseQR_Module SparseQR module
+ * \brief Provides QR decomposition for sparse matrices
+ *
+ * This module provides a simplicial version of the left-looking Sparse QR decomposition.
+ * The columns of the input matrix should be reordered to limit the fill-in during the
+ * decomposition. Built-in methods (COLAMD, AMD) or external methods (METIS) can be used to this end.
+ * See the \link OrderingMethods_Module OrderingMethods\endlink module for the list
+ * of built-in and external ordering methods.
+ *
+ * \code
+ * #include <Eigen/SparseQR>
+ * \endcode
+ *
+ *
+ */
+
+#include "OrderingMethods"
+#include "src/SparseCore/SparseColEtree.h"
+#include "src/SparseQR/SparseQR.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif
diff --git a/runtimes/nn/depend/external/eigen/Eigen/StdDeque b/runtimes/nn/depend/external/eigen/Eigen/StdDeque
new file mode 100644
index 000000000..bc68397be
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/StdDeque
@@ -0,0 +1,27 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Hauke Heibel <hauke.heibel@googlemail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STDDEQUE_MODULE_H
+#define EIGEN_STDDEQUE_MODULE_H
+
+#include "Core"
+#include <deque>
+
+#if EIGEN_COMP_MSVC && EIGEN_OS_WIN64 && (EIGEN_MAX_STATIC_ALIGN_BYTES<=16) /* MSVC auto aligns up to 16 bytes in 64 bit builds */
+
+#define EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(...)
+
+#else
+
+#include "src/StlSupport/StdDeque.h"
+
+#endif
+
+#endif // EIGEN_STDDEQUE_MODULE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/StdList b/runtimes/nn/depend/external/eigen/Eigen/StdList
new file mode 100644
index 000000000..4c6262c08
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/StdList
@@ -0,0 +1,26 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Hauke Heibel <hauke.heibel@googlemail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STDLIST_MODULE_H
+#define EIGEN_STDLIST_MODULE_H
+
+#include "Core"
+#include <list>
+
+#if EIGEN_COMP_MSVC && EIGEN_OS_WIN64 && (EIGEN_MAX_STATIC_ALIGN_BYTES<=16) /* MSVC auto aligns up to 16 bytes in 64 bit builds */
+
+#define EIGEN_DEFINE_STL_LIST_SPECIALIZATION(...)
+
+#else
+
+#include "src/StlSupport/StdList.h"
+
+#endif
+
+#endif // EIGEN_STDLIST_MODULE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/StdVector b/runtimes/nn/depend/external/eigen/Eigen/StdVector
new file mode 100644
index 000000000..0c4697ad5
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/StdVector
@@ -0,0 +1,27 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Hauke Heibel <hauke.heibel@googlemail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STDVECTOR_MODULE_H
+#define EIGEN_STDVECTOR_MODULE_H
+
+#include "Core"
+#include <vector>
+
+#if EIGEN_COMP_MSVC && EIGEN_OS_WIN64 && (EIGEN_MAX_STATIC_ALIGN_BYTES<=16) /* MSVC auto aligns up to 16 bytes in 64 bit builds */
+
+#define EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION(...)
+
+#else
+
+#include "src/StlSupport/StdVector.h"
+
+#endif
+
+#endif // EIGEN_STDVECTOR_MODULE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/SuperLUSupport b/runtimes/nn/depend/external/eigen/Eigen/SuperLUSupport
new file mode 100644
index 000000000..59312a82d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/SuperLUSupport
@@ -0,0 +1,64 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SUPERLUSUPPORT_MODULE_H
+#define EIGEN_SUPERLUSUPPORT_MODULE_H
+
+#include "SparseCore"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+#ifdef EMPTY
+#define EIGEN_EMPTY_WAS_ALREADY_DEFINED
+#endif
+
+typedef int int_t;
+#include <slu_Cnames.h>
+#include <supermatrix.h>
+#include <slu_util.h>
+
+// slu_util.h defines a preprocessor token named EMPTY which is really polluting,
+// so we remove it in favor of a SUPERLU_EMPTY token.
+// If EMPTY was already defined then we don't undef it.
+
+#if defined(EIGEN_EMPTY_WAS_ALREADY_DEFINED)
+# undef EIGEN_EMPTY_WAS_ALREADY_DEFINED
+#elif defined(EMPTY)
+# undef EMPTY
+#endif
+
+#define SUPERLU_EMPTY (-1)
+
+namespace Eigen { struct SluMatrix; }
+
+/** \ingroup Support_modules
+ * \defgroup SuperLUSupport_Module SuperLUSupport module
+ *
+ * This module provides an interface to the <a href="http://crd-legacy.lbl.gov/~xiaoye/SuperLU/">SuperLU</a> library.
+ * It provides the following factorization class:
+ * - class SuperLU: a supernodal sequential LU factorization.
+ * - class SuperILU: a supernodal sequential incomplete LU factorization (to be used as a preconditioner for iterative methods).
+ *
+ * \warning This wrapper requires at least versions 4.0 of SuperLU. The 3.x versions are not supported.
+ *
+ * \warning When including this module, you have to use SUPERLU_EMPTY instead of EMPTY which is no longer defined because it is too polluting.
+ *
+ * \code
+ * #include <Eigen/SuperLUSupport>
+ * \endcode
+ *
+ * In order to use this module, the superlu headers must be accessible from the include paths, and your binary must be linked to the superlu library and its dependencies.
+ * The dependencies depend on how superlu has been compiled.
+ * For a cmake based project, you can use our FindSuperLU.cmake module to help you in this task.
+ *
+ */
+
+#include "src/SuperLUSupport/SuperLUSupport.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_SUPERLUSUPPORT_MODULE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/UmfPackSupport b/runtimes/nn/depend/external/eigen/Eigen/UmfPackSupport
new file mode 100644
index 000000000..00eec8087
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/UmfPackSupport
@@ -0,0 +1,40 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_UMFPACKSUPPORT_MODULE_H
+#define EIGEN_UMFPACKSUPPORT_MODULE_H
+
+#include "SparseCore"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+extern "C" {
+#include <umfpack.h>
+}
+
+/** \ingroup Support_modules
+ * \defgroup UmfPackSupport_Module UmfPackSupport module
+ *
+ * This module provides an interface to the UmfPack library which is part of the <a href="http://www.suitesparse.com">suitesparse</a> package.
+ * It provides the following factorization class:
+ * - class UmfPackLU: a multifrontal sequential LU factorization.
+ *
+ * \code
+ * #include <Eigen/UmfPackSupport>
+ * \endcode
+ *
+ * In order to use this module, the umfpack headers must be accessible from the include paths, and your binary must be linked to the umfpack library and its dependencies.
+ * The dependencies depend on how umfpack has been compiled.
+ * For a cmake based project, you can use our FindUmfPack.cmake module to help you in this task.
+ *
+ */
+
+#include "src/UmfPackSupport/UmfPackSupport.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_UMFPACKSUPPORT_MODULE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Cholesky/LDLT.h b/runtimes/nn/depend/external/eigen/Eigen/src/Cholesky/LDLT.h
new file mode 100644
index 000000000..fcee7b2e3
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Cholesky/LDLT.h
@@ -0,0 +1,669 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Keir Mierle <mierle@gmail.com>
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2011 Timothy E. Holy <tim.holy@gmail.com >
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_LDLT_H
+#define EIGEN_LDLT_H
+
+namespace Eigen {
+
+namespace internal {
+ template<typename MatrixType, int UpLo> struct LDLT_Traits;
+
+ // PositiveSemiDef means positive semi-definite and non-zero; same for NegativeSemiDef
+ enum SignMatrix { PositiveSemiDef, NegativeSemiDef, ZeroSign, Indefinite };
+}
+
+/** \ingroup Cholesky_Module
+ *
+ * \class LDLT
+ *
+ * \brief Robust Cholesky decomposition of a matrix with pivoting
+ *
+ * \tparam _MatrixType the type of the matrix of which to compute the LDL^T Cholesky decomposition
+ * \tparam _UpLo the triangular part that will be used for the decompositon: Lower (default) or Upper.
+ * The other triangular part won't be read.
+ *
+ * Perform a robust Cholesky decomposition of a positive semidefinite or negative semidefinite
+ * matrix \f$ A \f$ such that \f$ A = P^TLDL^*P \f$, where P is a permutation matrix, L
+ * is lower triangular with a unit diagonal and D is a diagonal matrix.
+ *
+ * The decomposition uses pivoting to ensure stability, so that L will have
+ * zeros in the bottom right rank(A) - n submatrix. Avoiding the square root
+ * on D also stabilizes the computation.
+ *
+ * Remember that Cholesky decompositions are not rank-revealing. Also, do not use a Cholesky
+ * decomposition to determine whether a system of equations has a solution.
+ *
+ * This class supports the \link InplaceDecomposition inplace decomposition \endlink mechanism.
+ *
+ * \sa MatrixBase::ldlt(), SelfAdjointView::ldlt(), class LLT
+ */
+template<typename _MatrixType, int _UpLo> class LDLT
+{
+ public:
+ typedef _MatrixType MatrixType;
+ enum {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+ UpLo = _UpLo
+ };
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef Matrix<Scalar, RowsAtCompileTime, 1, 0, MaxRowsAtCompileTime, 1> TmpMatrixType;
+
+ typedef Transpositions<RowsAtCompileTime, MaxRowsAtCompileTime> TranspositionType;
+ typedef PermutationMatrix<RowsAtCompileTime, MaxRowsAtCompileTime> PermutationType;
+
+ typedef internal::LDLT_Traits<MatrixType,UpLo> Traits;
+
+ /** \brief Default Constructor.
+ *
+ * The default constructor is useful in cases in which the user intends to
+ * perform decompositions via LDLT::compute(const MatrixType&).
+ */
+ LDLT()
+ : m_matrix(),
+ m_transpositions(),
+ m_sign(internal::ZeroSign),
+ m_isInitialized(false)
+ {}
+
+ /** \brief Default Constructor with memory preallocation
+ *
+ * Like the default constructor but with preallocation of the internal data
+ * according to the specified problem \a size.
+ * \sa LDLT()
+ */
+ explicit LDLT(Index size)
+ : m_matrix(size, size),
+ m_transpositions(size),
+ m_temporary(size),
+ m_sign(internal::ZeroSign),
+ m_isInitialized(false)
+ {}
+
+ /** \brief Constructor with decomposition
+ *
+ * This calculates the decomposition for the input \a matrix.
+ *
+ * \sa LDLT(Index size)
+ */
+ template<typename InputType>
+ explicit LDLT(const EigenBase<InputType>& matrix)
+ : m_matrix(matrix.rows(), matrix.cols()),
+ m_transpositions(matrix.rows()),
+ m_temporary(matrix.rows()),
+ m_sign(internal::ZeroSign),
+ m_isInitialized(false)
+ {
+ compute(matrix.derived());
+ }
+
+ /** \brief Constructs a LDLT factorization from a given matrix
+ *
+ * This overloaded constructor is provided for \link InplaceDecomposition inplace decomposition \endlink when \c MatrixType is a Eigen::Ref.
+ *
+ * \sa LDLT(const EigenBase&)
+ */
+ template<typename InputType>
+ explicit LDLT(EigenBase<InputType>& matrix)
+ : m_matrix(matrix.derived()),
+ m_transpositions(matrix.rows()),
+ m_temporary(matrix.rows()),
+ m_sign(internal::ZeroSign),
+ m_isInitialized(false)
+ {
+ compute(matrix.derived());
+ }
+
+ /** Clear any existing decomposition
+ * \sa rankUpdate(w,sigma)
+ */
+ void setZero()
+ {
+ m_isInitialized = false;
+ }
+
+ /** \returns a view of the upper triangular matrix U */
+ inline typename Traits::MatrixU matrixU() const
+ {
+ eigen_assert(m_isInitialized && "LDLT is not initialized.");
+ return Traits::getU(m_matrix);
+ }
+
+ /** \returns a view of the lower triangular matrix L */
+ inline typename Traits::MatrixL matrixL() const
+ {
+ eigen_assert(m_isInitialized && "LDLT is not initialized.");
+ return Traits::getL(m_matrix);
+ }
+
+ /** \returns the permutation matrix P as a transposition sequence.
+ */
+ inline const TranspositionType& transpositionsP() const
+ {
+ eigen_assert(m_isInitialized && "LDLT is not initialized.");
+ return m_transpositions;
+ }
+
+ /** \returns the coefficients of the diagonal matrix D */
+ inline Diagonal<const MatrixType> vectorD() const
+ {
+ eigen_assert(m_isInitialized && "LDLT is not initialized.");
+ return m_matrix.diagonal();
+ }
+
+ /** \returns true if the matrix is positive (semidefinite) */
+ inline bool isPositive() const
+ {
+ eigen_assert(m_isInitialized && "LDLT is not initialized.");
+ return m_sign == internal::PositiveSemiDef || m_sign == internal::ZeroSign;
+ }
+
+ /** \returns true if the matrix is negative (semidefinite) */
+ inline bool isNegative(void) const
+ {
+ eigen_assert(m_isInitialized && "LDLT is not initialized.");
+ return m_sign == internal::NegativeSemiDef || m_sign == internal::ZeroSign;
+ }
+
+ /** \returns a solution x of \f$ A x = b \f$ using the current decomposition of A.
+ *
+ * This function also supports in-place solves using the syntax <tt>x = decompositionObject.solve(x)</tt> .
+ *
+ * \note_about_checking_solutions
+ *
+ * More precisely, this method solves \f$ A x = b \f$ using the decomposition \f$ A = P^T L D L^* P \f$
+ * by solving the systems \f$ P^T y_1 = b \f$, \f$ L y_2 = y_1 \f$, \f$ D y_3 = y_2 \f$,
+ * \f$ L^* y_4 = y_3 \f$ and \f$ P x = y_4 \f$ in succession. If the matrix \f$ A \f$ is singular, then
+ * \f$ D \f$ will also be singular (all the other matrices are invertible). In that case, the
+ * least-square solution of \f$ D y_3 = y_2 \f$ is computed. This does not mean that this function
+ * computes the least-square solution of \f$ A x = b \f$ is \f$ A \f$ is singular.
+ *
+ * \sa MatrixBase::ldlt(), SelfAdjointView::ldlt()
+ */
+ template<typename Rhs>
+ inline const Solve<LDLT, Rhs>
+ solve(const MatrixBase<Rhs>& b) const
+ {
+ eigen_assert(m_isInitialized && "LDLT is not initialized.");
+ eigen_assert(m_matrix.rows()==b.rows()
+ && "LDLT::solve(): invalid number of rows of the right hand side matrix b");
+ return Solve<LDLT, Rhs>(*this, b.derived());
+ }
+
+ template<typename Derived>
+ bool solveInPlace(MatrixBase<Derived> &bAndX) const;
+
+ template<typename InputType>
+ LDLT& compute(const EigenBase<InputType>& matrix);
+
+ /** \returns an estimate of the reciprocal condition number of the matrix of
+ * which \c *this is the LDLT decomposition.
+ */
+ RealScalar rcond() const
+ {
+ eigen_assert(m_isInitialized && "LDLT is not initialized.");
+ return internal::rcond_estimate_helper(m_l1_norm, *this);
+ }
+
+ template <typename Derived>
+ LDLT& rankUpdate(const MatrixBase<Derived>& w, const RealScalar& alpha=1);
+
+ /** \returns the internal LDLT decomposition matrix
+ *
+ * TODO: document the storage layout
+ */
+ inline const MatrixType& matrixLDLT() const
+ {
+ eigen_assert(m_isInitialized && "LDLT is not initialized.");
+ return m_matrix;
+ }
+
+ MatrixType reconstructedMatrix() const;
+
+ /** \returns the adjoint of \c *this, that is, a const reference to the decomposition itself as the underlying matrix is self-adjoint.
+ *
+ * This method is provided for compatibility with other matrix decompositions, thus enabling generic code such as:
+ * \code x = decomposition.adjoint().solve(b) \endcode
+ */
+ const LDLT& adjoint() const { return *this; };
+
+ inline Index rows() const { return m_matrix.rows(); }
+ inline Index cols() const { return m_matrix.cols(); }
+
+ /** \brief Reports whether previous computation was successful.
+ *
+ * \returns \c Success if computation was succesful,
+ * \c NumericalIssue if the matrix.appears to be negative.
+ */
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "LDLT is not initialized.");
+ return m_info;
+ }
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ template<typename RhsType, typename DstType>
+ EIGEN_DEVICE_FUNC
+ void _solve_impl(const RhsType &rhs, DstType &dst) const;
+ #endif
+
+ protected:
+
+ static void check_template_parameters()
+ {
+ EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+ }
+
+ /** \internal
+ * Used to compute and store the Cholesky decomposition A = L D L^* = U^* D U.
+ * The strict upper part is used during the decomposition, the strict lower
+ * part correspond to the coefficients of L (its diagonal is equal to 1 and
+ * is not stored), and the diagonal entries correspond to D.
+ */
+ MatrixType m_matrix;
+ RealScalar m_l1_norm;
+ TranspositionType m_transpositions;
+ TmpMatrixType m_temporary;
+ internal::SignMatrix m_sign;
+ bool m_isInitialized;
+ ComputationInfo m_info;
+};
+
+namespace internal {
+
+template<int UpLo> struct ldlt_inplace;
+
+template<> struct ldlt_inplace<Lower>
+{
+ template<typename MatrixType, typename TranspositionType, typename Workspace>
+ static bool unblocked(MatrixType& mat, TranspositionType& transpositions, Workspace& temp, SignMatrix& sign)
+ {
+ using std::abs;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ typedef typename TranspositionType::StorageIndex IndexType;
+ eigen_assert(mat.rows()==mat.cols());
+ const Index size = mat.rows();
+ bool found_zero_pivot = false;
+ bool ret = true;
+
+ if (size <= 1)
+ {
+ transpositions.setIdentity();
+ if (numext::real(mat.coeff(0,0)) > static_cast<RealScalar>(0) ) sign = PositiveSemiDef;
+ else if (numext::real(mat.coeff(0,0)) < static_cast<RealScalar>(0)) sign = NegativeSemiDef;
+ else sign = ZeroSign;
+ return true;
+ }
+
+ for (Index k = 0; k < size; ++k)
+ {
+ // Find largest diagonal element
+ Index index_of_biggest_in_corner;
+ mat.diagonal().tail(size-k).cwiseAbs().maxCoeff(&index_of_biggest_in_corner);
+ index_of_biggest_in_corner += k;
+
+ transpositions.coeffRef(k) = IndexType(index_of_biggest_in_corner);
+ if(k != index_of_biggest_in_corner)
+ {
+ // apply the transposition while taking care to consider only
+ // the lower triangular part
+ Index s = size-index_of_biggest_in_corner-1; // trailing size after the biggest element
+ mat.row(k).head(k).swap(mat.row(index_of_biggest_in_corner).head(k));
+ mat.col(k).tail(s).swap(mat.col(index_of_biggest_in_corner).tail(s));
+ std::swap(mat.coeffRef(k,k),mat.coeffRef(index_of_biggest_in_corner,index_of_biggest_in_corner));
+ for(Index i=k+1;i<index_of_biggest_in_corner;++i)
+ {
+ Scalar tmp = mat.coeffRef(i,k);
+ mat.coeffRef(i,k) = numext::conj(mat.coeffRef(index_of_biggest_in_corner,i));
+ mat.coeffRef(index_of_biggest_in_corner,i) = numext::conj(tmp);
+ }
+ if(NumTraits<Scalar>::IsComplex)
+ mat.coeffRef(index_of_biggest_in_corner,k) = numext::conj(mat.coeff(index_of_biggest_in_corner,k));
+ }
+
+ // partition the matrix:
+ // A00 | - | -
+ // lu = A10 | A11 | -
+ // A20 | A21 | A22
+ Index rs = size - k - 1;
+ Block<MatrixType,Dynamic,1> A21(mat,k+1,k,rs,1);
+ Block<MatrixType,1,Dynamic> A10(mat,k,0,1,k);
+ Block<MatrixType,Dynamic,Dynamic> A20(mat,k+1,0,rs,k);
+
+ if(k>0)
+ {
+ temp.head(k) = mat.diagonal().real().head(k).asDiagonal() * A10.adjoint();
+ mat.coeffRef(k,k) -= (A10 * temp.head(k)).value();
+ if(rs>0)
+ A21.noalias() -= A20 * temp.head(k);
+ }
+
+ // In some previous versions of Eigen (e.g., 3.2.1), the scaling was omitted if the pivot
+ // was smaller than the cutoff value. However, since LDLT is not rank-revealing
+ // we should only make sure that we do not introduce INF or NaN values.
+ // Remark that LAPACK also uses 0 as the cutoff value.
+ RealScalar realAkk = numext::real(mat.coeffRef(k,k));
+ bool pivot_is_valid = (abs(realAkk) > RealScalar(0));
+
+ if(k==0 && !pivot_is_valid)
+ {
+ // The entire diagonal is zero, there is nothing more to do
+ // except filling the transpositions, and checking whether the matrix is zero.
+ sign = ZeroSign;
+ for(Index j = 0; j<size; ++j)
+ {
+ transpositions.coeffRef(j) = IndexType(j);
+ ret = ret && (mat.col(j).tail(size-j-1).array()==Scalar(0)).all();
+ }
+ return ret;
+ }
+
+ if((rs>0) && pivot_is_valid)
+ A21 /= realAkk;
+
+ if(found_zero_pivot && pivot_is_valid) ret = false; // factorization failed
+ else if(!pivot_is_valid) found_zero_pivot = true;
+
+ if (sign == PositiveSemiDef) {
+ if (realAkk < static_cast<RealScalar>(0)) sign = Indefinite;
+ } else if (sign == NegativeSemiDef) {
+ if (realAkk > static_cast<RealScalar>(0)) sign = Indefinite;
+ } else if (sign == ZeroSign) {
+ if (realAkk > static_cast<RealScalar>(0)) sign = PositiveSemiDef;
+ else if (realAkk < static_cast<RealScalar>(0)) sign = NegativeSemiDef;
+ }
+ }
+
+ return ret;
+ }
+
+ // Reference for the algorithm: Davis and Hager, "Multiple Rank
+ // Modifications of a Sparse Cholesky Factorization" (Algorithm 1)
+ // Trivial rearrangements of their computations (Timothy E. Holy)
+ // allow their algorithm to work for rank-1 updates even if the
+ // original matrix is not of full rank.
+ // Here only rank-1 updates are implemented, to reduce the
+ // requirement for intermediate storage and improve accuracy
+ template<typename MatrixType, typename WDerived>
+ static bool updateInPlace(MatrixType& mat, MatrixBase<WDerived>& w, const typename MatrixType::RealScalar& sigma=1)
+ {
+ using numext::isfinite;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+
+ const Index size = mat.rows();
+ eigen_assert(mat.cols() == size && w.size()==size);
+
+ RealScalar alpha = 1;
+
+ // Apply the update
+ for (Index j = 0; j < size; j++)
+ {
+ // Check for termination due to an original decomposition of low-rank
+ if (!(isfinite)(alpha))
+ break;
+
+ // Update the diagonal terms
+ RealScalar dj = numext::real(mat.coeff(j,j));
+ Scalar wj = w.coeff(j);
+ RealScalar swj2 = sigma*numext::abs2(wj);
+ RealScalar gamma = dj*alpha + swj2;
+
+ mat.coeffRef(j,j) += swj2/alpha;
+ alpha += swj2/dj;
+
+
+ // Update the terms of L
+ Index rs = size-j-1;
+ w.tail(rs) -= wj * mat.col(j).tail(rs);
+ if(gamma != 0)
+ mat.col(j).tail(rs) += (sigma*numext::conj(wj)/gamma)*w.tail(rs);
+ }
+ return true;
+ }
+
+ template<typename MatrixType, typename TranspositionType, typename Workspace, typename WType>
+ static bool update(MatrixType& mat, const TranspositionType& transpositions, Workspace& tmp, const WType& w, const typename MatrixType::RealScalar& sigma=1)
+ {
+ // Apply the permutation to the input w
+ tmp = transpositions * w;
+
+ return ldlt_inplace<Lower>::updateInPlace(mat,tmp,sigma);
+ }
+};
+
+template<> struct ldlt_inplace<Upper>
+{
+ template<typename MatrixType, typename TranspositionType, typename Workspace>
+ static EIGEN_STRONG_INLINE bool unblocked(MatrixType& mat, TranspositionType& transpositions, Workspace& temp, SignMatrix& sign)
+ {
+ Transpose<MatrixType> matt(mat);
+ return ldlt_inplace<Lower>::unblocked(matt, transpositions, temp, sign);
+ }
+
+ template<typename MatrixType, typename TranspositionType, typename Workspace, typename WType>
+ static EIGEN_STRONG_INLINE bool update(MatrixType& mat, TranspositionType& transpositions, Workspace& tmp, WType& w, const typename MatrixType::RealScalar& sigma=1)
+ {
+ Transpose<MatrixType> matt(mat);
+ return ldlt_inplace<Lower>::update(matt, transpositions, tmp, w.conjugate(), sigma);
+ }
+};
+
+template<typename MatrixType> struct LDLT_Traits<MatrixType,Lower>
+{
+ typedef const TriangularView<const MatrixType, UnitLower> MatrixL;
+ typedef const TriangularView<const typename MatrixType::AdjointReturnType, UnitUpper> MatrixU;
+ static inline MatrixL getL(const MatrixType& m) { return MatrixL(m); }
+ static inline MatrixU getU(const MatrixType& m) { return MatrixU(m.adjoint()); }
+};
+
+template<typename MatrixType> struct LDLT_Traits<MatrixType,Upper>
+{
+ typedef const TriangularView<const typename MatrixType::AdjointReturnType, UnitLower> MatrixL;
+ typedef const TriangularView<const MatrixType, UnitUpper> MatrixU;
+ static inline MatrixL getL(const MatrixType& m) { return MatrixL(m.adjoint()); }
+ static inline MatrixU getU(const MatrixType& m) { return MatrixU(m); }
+};
+
+} // end namespace internal
+
+/** Compute / recompute the LDLT decomposition A = L D L^* = U^* D U of \a matrix
+ */
+template<typename MatrixType, int _UpLo>
+template<typename InputType>
+LDLT<MatrixType,_UpLo>& LDLT<MatrixType,_UpLo>::compute(const EigenBase<InputType>& a)
+{
+ check_template_parameters();
+
+ eigen_assert(a.rows()==a.cols());
+ const Index size = a.rows();
+
+ m_matrix = a.derived();
+
+ // Compute matrix L1 norm = max abs column sum.
+ m_l1_norm = RealScalar(0);
+ // TODO move this code to SelfAdjointView
+ for (Index col = 0; col < size; ++col) {
+ RealScalar abs_col_sum;
+ if (_UpLo == Lower)
+ abs_col_sum = m_matrix.col(col).tail(size - col).template lpNorm<1>() + m_matrix.row(col).head(col).template lpNorm<1>();
+ else
+ abs_col_sum = m_matrix.col(col).head(col).template lpNorm<1>() + m_matrix.row(col).tail(size - col).template lpNorm<1>();
+ if (abs_col_sum > m_l1_norm)
+ m_l1_norm = abs_col_sum;
+ }
+
+ m_transpositions.resize(size);
+ m_isInitialized = false;
+ m_temporary.resize(size);
+ m_sign = internal::ZeroSign;
+
+ m_info = internal::ldlt_inplace<UpLo>::unblocked(m_matrix, m_transpositions, m_temporary, m_sign) ? Success : NumericalIssue;
+
+ m_isInitialized = true;
+ return *this;
+}
+
+/** Update the LDLT decomposition: given A = L D L^T, efficiently compute the decomposition of A + sigma w w^T.
+ * \param w a vector to be incorporated into the decomposition.
+ * \param sigma a scalar, +1 for updates and -1 for "downdates," which correspond to removing previously-added column vectors. Optional; default value is +1.
+ * \sa setZero()
+ */
+template<typename MatrixType, int _UpLo>
+template<typename Derived>
+LDLT<MatrixType,_UpLo>& LDLT<MatrixType,_UpLo>::rankUpdate(const MatrixBase<Derived>& w, const typename LDLT<MatrixType,_UpLo>::RealScalar& sigma)
+{
+ typedef typename TranspositionType::StorageIndex IndexType;
+ const Index size = w.rows();
+ if (m_isInitialized)
+ {
+ eigen_assert(m_matrix.rows()==size);
+ }
+ else
+ {
+ m_matrix.resize(size,size);
+ m_matrix.setZero();
+ m_transpositions.resize(size);
+ for (Index i = 0; i < size; i++)
+ m_transpositions.coeffRef(i) = IndexType(i);
+ m_temporary.resize(size);
+ m_sign = sigma>=0 ? internal::PositiveSemiDef : internal::NegativeSemiDef;
+ m_isInitialized = true;
+ }
+
+ internal::ldlt_inplace<UpLo>::update(m_matrix, m_transpositions, m_temporary, w, sigma);
+
+ return *this;
+}
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+template<typename _MatrixType, int _UpLo>
+template<typename RhsType, typename DstType>
+void LDLT<_MatrixType,_UpLo>::_solve_impl(const RhsType &rhs, DstType &dst) const
+{
+ eigen_assert(rhs.rows() == rows());
+ // dst = P b
+ dst = m_transpositions * rhs;
+
+ // dst = L^-1 (P b)
+ matrixL().solveInPlace(dst);
+
+ // dst = D^-1 (L^-1 P b)
+ // more precisely, use pseudo-inverse of D (see bug 241)
+ using std::abs;
+ const typename Diagonal<const MatrixType>::RealReturnType vecD(vectorD());
+ // In some previous versions, tolerance was set to the max of 1/highest and the maximal diagonal entry * epsilon
+ // as motivated by LAPACK's xGELSS:
+ // RealScalar tolerance = numext::maxi(vecD.array().abs().maxCoeff() * NumTraits<RealScalar>::epsilon(),RealScalar(1) / NumTraits<RealScalar>::highest());
+ // However, LDLT is not rank revealing, and so adjusting the tolerance wrt to the highest
+ // diagonal element is not well justified and leads to numerical issues in some cases.
+ // Moreover, Lapack's xSYTRS routines use 0 for the tolerance.
+ RealScalar tolerance = RealScalar(1) / NumTraits<RealScalar>::highest();
+
+ for (Index i = 0; i < vecD.size(); ++i)
+ {
+ if(abs(vecD(i)) > tolerance)
+ dst.row(i) /= vecD(i);
+ else
+ dst.row(i).setZero();
+ }
+
+ // dst = L^-T (D^-1 L^-1 P b)
+ matrixU().solveInPlace(dst);
+
+ // dst = P^-1 (L^-T D^-1 L^-1 P b) = A^-1 b
+ dst = m_transpositions.transpose() * dst;
+}
+#endif
+
+/** \internal use x = ldlt_object.solve(x);
+ *
+ * This is the \em in-place version of solve().
+ *
+ * \param bAndX represents both the right-hand side matrix b and result x.
+ *
+ * \returns true always! If you need to check for existence of solutions, use another decomposition like LU, QR, or SVD.
+ *
+ * This version avoids a copy when the right hand side matrix b is not
+ * needed anymore.
+ *
+ * \sa LDLT::solve(), MatrixBase::ldlt()
+ */
+template<typename MatrixType,int _UpLo>
+template<typename Derived>
+bool LDLT<MatrixType,_UpLo>::solveInPlace(MatrixBase<Derived> &bAndX) const
+{
+ eigen_assert(m_isInitialized && "LDLT is not initialized.");
+ eigen_assert(m_matrix.rows() == bAndX.rows());
+
+ bAndX = this->solve(bAndX);
+
+ return true;
+}
+
+/** \returns the matrix represented by the decomposition,
+ * i.e., it returns the product: P^T L D L^* P.
+ * This function is provided for debug purpose. */
+template<typename MatrixType, int _UpLo>
+MatrixType LDLT<MatrixType,_UpLo>::reconstructedMatrix() const
+{
+ eigen_assert(m_isInitialized && "LDLT is not initialized.");
+ const Index size = m_matrix.rows();
+ MatrixType res(size,size);
+
+ // P
+ res.setIdentity();
+ res = transpositionsP() * res;
+ // L^* P
+ res = matrixU() * res;
+ // D(L^*P)
+ res = vectorD().real().asDiagonal() * res;
+ // L(DL^*P)
+ res = matrixL() * res;
+ // P^T (LDL^*P)
+ res = transpositionsP().transpose() * res;
+
+ return res;
+}
+
+/** \cholesky_module
+ * \returns the Cholesky decomposition with full pivoting without square root of \c *this
+ * \sa MatrixBase::ldlt()
+ */
+template<typename MatrixType, unsigned int UpLo>
+inline const LDLT<typename SelfAdjointView<MatrixType, UpLo>::PlainObject, UpLo>
+SelfAdjointView<MatrixType, UpLo>::ldlt() const
+{
+ return LDLT<PlainObject,UpLo>(m_matrix);
+}
+
+/** \cholesky_module
+ * \returns the Cholesky decomposition with full pivoting without square root of \c *this
+ * \sa SelfAdjointView::ldlt()
+ */
+template<typename Derived>
+inline const LDLT<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::ldlt() const
+{
+ return LDLT<PlainObject>(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_LDLT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Cholesky/LLT.h b/runtimes/nn/depend/external/eigen/Eigen/src/Cholesky/LLT.h
new file mode 100644
index 000000000..87ca8d423
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Cholesky/LLT.h
@@ -0,0 +1,534 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_LLT_H
+#define EIGEN_LLT_H
+
+namespace Eigen {
+
+namespace internal{
+template<typename MatrixType, int UpLo> struct LLT_Traits;
+}
+
+/** \ingroup Cholesky_Module
+ *
+ * \class LLT
+ *
+ * \brief Standard Cholesky decomposition (LL^T) of a matrix and associated features
+ *
+ * \tparam _MatrixType the type of the matrix of which we are computing the LL^T Cholesky decomposition
+ * \tparam _UpLo the triangular part that will be used for the decompositon: Lower (default) or Upper.
+ * The other triangular part won't be read.
+ *
+ * This class performs a LL^T Cholesky decomposition of a symmetric, positive definite
+ * matrix A such that A = LL^* = U^*U, where L is lower triangular.
+ *
+ * While the Cholesky decomposition is particularly useful to solve selfadjoint problems like D^*D x = b,
+ * for that purpose, we recommend the Cholesky decomposition without square root which is more stable
+ * and even faster. Nevertheless, this standard Cholesky decomposition remains useful in many other
+ * situations like generalised eigen problems with hermitian matrices.
+ *
+ * Remember that Cholesky decompositions are not rank-revealing. This LLT decomposition is only stable on positive definite matrices,
+ * use LDLT instead for the semidefinite case. Also, do not use a Cholesky decomposition to determine whether a system of equations
+ * has a solution.
+ *
+ * Example: \include LLT_example.cpp
+ * Output: \verbinclude LLT_example.out
+ *
+ * This class supports the \link InplaceDecomposition inplace decomposition \endlink mechanism.
+ *
+ * \sa MatrixBase::llt(), SelfAdjointView::llt(), class LDLT
+ */
+ /* HEY THIS DOX IS DISABLED BECAUSE THERE's A BUG EITHER HERE OR IN LDLT ABOUT THAT (OR BOTH)
+ * Note that during the decomposition, only the upper triangular part of A is considered. Therefore,
+ * the strict lower part does not have to store correct values.
+ */
+template<typename _MatrixType, int _UpLo> class LLT
+{
+ public:
+ typedef _MatrixType MatrixType;
+ enum {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
+ typedef typename MatrixType::StorageIndex StorageIndex;
+
+ enum {
+ PacketSize = internal::packet_traits<Scalar>::size,
+ AlignmentMask = int(PacketSize)-1,
+ UpLo = _UpLo
+ };
+
+ typedef internal::LLT_Traits<MatrixType,UpLo> Traits;
+
+ /**
+ * \brief Default Constructor.
+ *
+ * The default constructor is useful in cases in which the user intends to
+ * perform decompositions via LLT::compute(const MatrixType&).
+ */
+ LLT() : m_matrix(), m_isInitialized(false) {}
+
+ /** \brief Default Constructor with memory preallocation
+ *
+ * Like the default constructor but with preallocation of the internal data
+ * according to the specified problem \a size.
+ * \sa LLT()
+ */
+ explicit LLT(Index size) : m_matrix(size, size),
+ m_isInitialized(false) {}
+
+ template<typename InputType>
+ explicit LLT(const EigenBase<InputType>& matrix)
+ : m_matrix(matrix.rows(), matrix.cols()),
+ m_isInitialized(false)
+ {
+ compute(matrix.derived());
+ }
+
+ /** \brief Constructs a LDLT factorization from a given matrix
+ *
+ * This overloaded constructor is provided for \link InplaceDecomposition inplace decomposition \endlink when
+ * \c MatrixType is a Eigen::Ref.
+ *
+ * \sa LLT(const EigenBase&)
+ */
+ template<typename InputType>
+ explicit LLT(EigenBase<InputType>& matrix)
+ : m_matrix(matrix.derived()),
+ m_isInitialized(false)
+ {
+ compute(matrix.derived());
+ }
+
+ /** \returns a view of the upper triangular matrix U */
+ inline typename Traits::MatrixU matrixU() const
+ {
+ eigen_assert(m_isInitialized && "LLT is not initialized.");
+ return Traits::getU(m_matrix);
+ }
+
+ /** \returns a view of the lower triangular matrix L */
+ inline typename Traits::MatrixL matrixL() const
+ {
+ eigen_assert(m_isInitialized && "LLT is not initialized.");
+ return Traits::getL(m_matrix);
+ }
+
+ /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+ *
+ * Since this LLT class assumes anyway that the matrix A is invertible, the solution
+ * theoretically exists and is unique regardless of b.
+ *
+ * Example: \include LLT_solve.cpp
+ * Output: \verbinclude LLT_solve.out
+ *
+ * \sa solveInPlace(), MatrixBase::llt(), SelfAdjointView::llt()
+ */
+ template<typename Rhs>
+ inline const Solve<LLT, Rhs>
+ solve(const MatrixBase<Rhs>& b) const
+ {
+ eigen_assert(m_isInitialized && "LLT is not initialized.");
+ eigen_assert(m_matrix.rows()==b.rows()
+ && "LLT::solve(): invalid number of rows of the right hand side matrix b");
+ return Solve<LLT, Rhs>(*this, b.derived());
+ }
+
+ template<typename Derived>
+ void solveInPlace(MatrixBase<Derived> &bAndX) const;
+
+ template<typename InputType>
+ LLT& compute(const EigenBase<InputType>& matrix);
+
+ /** \returns an estimate of the reciprocal condition number of the matrix of
+ * which \c *this is the Cholesky decomposition.
+ */
+ RealScalar rcond() const
+ {
+ eigen_assert(m_isInitialized && "LLT is not initialized.");
+ eigen_assert(m_info == Success && "LLT failed because matrix appears to be negative");
+ return internal::rcond_estimate_helper(m_l1_norm, *this);
+ }
+
+ /** \returns the LLT decomposition matrix
+ *
+ * TODO: document the storage layout
+ */
+ inline const MatrixType& matrixLLT() const
+ {
+ eigen_assert(m_isInitialized && "LLT is not initialized.");
+ return m_matrix;
+ }
+
+ MatrixType reconstructedMatrix() const;
+
+
+ /** \brief Reports whether previous computation was successful.
+ *
+ * \returns \c Success if computation was succesful,
+ * \c NumericalIssue if the matrix.appears to be negative.
+ */
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "LLT is not initialized.");
+ return m_info;
+ }
+
+ /** \returns the adjoint of \c *this, that is, a const reference to the decomposition itself as the underlying matrix is self-adjoint.
+ *
+ * This method is provided for compatibility with other matrix decompositions, thus enabling generic code such as:
+ * \code x = decomposition.adjoint().solve(b) \endcode
+ */
+ const LLT& adjoint() const { return *this; };
+
+ inline Index rows() const { return m_matrix.rows(); }
+ inline Index cols() const { return m_matrix.cols(); }
+
+ template<typename VectorType>
+ LLT rankUpdate(const VectorType& vec, const RealScalar& sigma = 1);
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ template<typename RhsType, typename DstType>
+ EIGEN_DEVICE_FUNC
+ void _solve_impl(const RhsType &rhs, DstType &dst) const;
+ #endif
+
+ protected:
+
+ static void check_template_parameters()
+ {
+ EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+ }
+
+ /** \internal
+ * Used to compute and store L
+ * The strict upper part is not used and even not initialized.
+ */
+ MatrixType m_matrix;
+ RealScalar m_l1_norm;
+ bool m_isInitialized;
+ ComputationInfo m_info;
+};
+
+namespace internal {
+
+template<typename Scalar, int UpLo> struct llt_inplace;
+
+template<typename MatrixType, typename VectorType>
+static Index llt_rank_update_lower(MatrixType& mat, const VectorType& vec, const typename MatrixType::RealScalar& sigma)
+{
+ using std::sqrt;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ typedef typename MatrixType::ColXpr ColXpr;
+ typedef typename internal::remove_all<ColXpr>::type ColXprCleaned;
+ typedef typename ColXprCleaned::SegmentReturnType ColXprSegment;
+ typedef Matrix<Scalar,Dynamic,1> TempVectorType;
+ typedef typename TempVectorType::SegmentReturnType TempVecSegment;
+
+ Index n = mat.cols();
+ eigen_assert(mat.rows()==n && vec.size()==n);
+
+ TempVectorType temp;
+
+ if(sigma>0)
+ {
+ // This version is based on Givens rotations.
+ // It is faster than the other one below, but only works for updates,
+ // i.e., for sigma > 0
+ temp = sqrt(sigma) * vec;
+
+ for(Index i=0; i<n; ++i)
+ {
+ JacobiRotation<Scalar> g;
+ g.makeGivens(mat(i,i), -temp(i), &mat(i,i));
+
+ Index rs = n-i-1;
+ if(rs>0)
+ {
+ ColXprSegment x(mat.col(i).tail(rs));
+ TempVecSegment y(temp.tail(rs));
+ apply_rotation_in_the_plane(x, y, g);
+ }
+ }
+ }
+ else
+ {
+ temp = vec;
+ RealScalar beta = 1;
+ for(Index j=0; j<n; ++j)
+ {
+ RealScalar Ljj = numext::real(mat.coeff(j,j));
+ RealScalar dj = numext::abs2(Ljj);
+ Scalar wj = temp.coeff(j);
+ RealScalar swj2 = sigma*numext::abs2(wj);
+ RealScalar gamma = dj*beta + swj2;
+
+ RealScalar x = dj + swj2/beta;
+ if (x<=RealScalar(0))
+ return j;
+ RealScalar nLjj = sqrt(x);
+ mat.coeffRef(j,j) = nLjj;
+ beta += swj2/dj;
+
+ // Update the terms of L
+ Index rs = n-j-1;
+ if(rs)
+ {
+ temp.tail(rs) -= (wj/Ljj) * mat.col(j).tail(rs);
+ if(gamma != 0)
+ mat.col(j).tail(rs) = (nLjj/Ljj) * mat.col(j).tail(rs) + (nLjj * sigma*numext::conj(wj)/gamma)*temp.tail(rs);
+ }
+ }
+ }
+ return -1;
+}
+
+template<typename Scalar> struct llt_inplace<Scalar, Lower>
+{
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ template<typename MatrixType>
+ static Index unblocked(MatrixType& mat)
+ {
+ using std::sqrt;
+
+ eigen_assert(mat.rows()==mat.cols());
+ const Index size = mat.rows();
+ for(Index k = 0; k < size; ++k)
+ {
+ Index rs = size-k-1; // remaining size
+
+ Block<MatrixType,Dynamic,1> A21(mat,k+1,k,rs,1);
+ Block<MatrixType,1,Dynamic> A10(mat,k,0,1,k);
+ Block<MatrixType,Dynamic,Dynamic> A20(mat,k+1,0,rs,k);
+
+ RealScalar x = numext::real(mat.coeff(k,k));
+ if (k>0) x -= A10.squaredNorm();
+ if (x<=RealScalar(0))
+ return k;
+ mat.coeffRef(k,k) = x = sqrt(x);
+ if (k>0 && rs>0) A21.noalias() -= A20 * A10.adjoint();
+ if (rs>0) A21 /= x;
+ }
+ return -1;
+ }
+
+ template<typename MatrixType>
+ static Index blocked(MatrixType& m)
+ {
+ eigen_assert(m.rows()==m.cols());
+ Index size = m.rows();
+ if(size<32)
+ return unblocked(m);
+
+ Index blockSize = size/8;
+ blockSize = (blockSize/16)*16;
+ blockSize = (std::min)((std::max)(blockSize,Index(8)), Index(128));
+
+ for (Index k=0; k<size; k+=blockSize)
+ {
+ // partition the matrix:
+ // A00 | - | -
+ // lu = A10 | A11 | -
+ // A20 | A21 | A22
+ Index bs = (std::min)(blockSize, size-k);
+ Index rs = size - k - bs;
+ Block<MatrixType,Dynamic,Dynamic> A11(m,k, k, bs,bs);
+ Block<MatrixType,Dynamic,Dynamic> A21(m,k+bs,k, rs,bs);
+ Block<MatrixType,Dynamic,Dynamic> A22(m,k+bs,k+bs,rs,rs);
+
+ Index ret;
+ if((ret=unblocked(A11))>=0) return k+ret;
+ if(rs>0) A11.adjoint().template triangularView<Upper>().template solveInPlace<OnTheRight>(A21);
+ if(rs>0) A22.template selfadjointView<Lower>().rankUpdate(A21,typename NumTraits<RealScalar>::Literal(-1)); // bottleneck
+ }
+ return -1;
+ }
+
+ template<typename MatrixType, typename VectorType>
+ static Index rankUpdate(MatrixType& mat, const VectorType& vec, const RealScalar& sigma)
+ {
+ return Eigen::internal::llt_rank_update_lower(mat, vec, sigma);
+ }
+};
+
+template<typename Scalar> struct llt_inplace<Scalar, Upper>
+{
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+
+ template<typename MatrixType>
+ static EIGEN_STRONG_INLINE Index unblocked(MatrixType& mat)
+ {
+ Transpose<MatrixType> matt(mat);
+ return llt_inplace<Scalar, Lower>::unblocked(matt);
+ }
+ template<typename MatrixType>
+ static EIGEN_STRONG_INLINE Index blocked(MatrixType& mat)
+ {
+ Transpose<MatrixType> matt(mat);
+ return llt_inplace<Scalar, Lower>::blocked(matt);
+ }
+ template<typename MatrixType, typename VectorType>
+ static Index rankUpdate(MatrixType& mat, const VectorType& vec, const RealScalar& sigma)
+ {
+ Transpose<MatrixType> matt(mat);
+ return llt_inplace<Scalar, Lower>::rankUpdate(matt, vec.conjugate(), sigma);
+ }
+};
+
+template<typename MatrixType> struct LLT_Traits<MatrixType,Lower>
+{
+ typedef const TriangularView<const MatrixType, Lower> MatrixL;
+ typedef const TriangularView<const typename MatrixType::AdjointReturnType, Upper> MatrixU;
+ static inline MatrixL getL(const MatrixType& m) { return MatrixL(m); }
+ static inline MatrixU getU(const MatrixType& m) { return MatrixU(m.adjoint()); }
+ static bool inplace_decomposition(MatrixType& m)
+ { return llt_inplace<typename MatrixType::Scalar, Lower>::blocked(m)==-1; }
+};
+
+template<typename MatrixType> struct LLT_Traits<MatrixType,Upper>
+{
+ typedef const TriangularView<const typename MatrixType::AdjointReturnType, Lower> MatrixL;
+ typedef const TriangularView<const MatrixType, Upper> MatrixU;
+ static inline MatrixL getL(const MatrixType& m) { return MatrixL(m.adjoint()); }
+ static inline MatrixU getU(const MatrixType& m) { return MatrixU(m); }
+ static bool inplace_decomposition(MatrixType& m)
+ { return llt_inplace<typename MatrixType::Scalar, Upper>::blocked(m)==-1; }
+};
+
+} // end namespace internal
+
+/** Computes / recomputes the Cholesky decomposition A = LL^* = U^*U of \a matrix
+ *
+ * \returns a reference to *this
+ *
+ * Example: \include TutorialLinAlgComputeTwice.cpp
+ * Output: \verbinclude TutorialLinAlgComputeTwice.out
+ */
+template<typename MatrixType, int _UpLo>
+template<typename InputType>
+LLT<MatrixType,_UpLo>& LLT<MatrixType,_UpLo>::compute(const EigenBase<InputType>& a)
+{
+ check_template_parameters();
+
+ eigen_assert(a.rows()==a.cols());
+ const Index size = a.rows();
+ m_matrix.resize(size, size);
+ m_matrix = a.derived();
+
+ // Compute matrix L1 norm = max abs column sum.
+ m_l1_norm = RealScalar(0);
+ // TODO move this code to SelfAdjointView
+ for (Index col = 0; col < size; ++col) {
+ RealScalar abs_col_sum;
+ if (_UpLo == Lower)
+ abs_col_sum = m_matrix.col(col).tail(size - col).template lpNorm<1>() + m_matrix.row(col).head(col).template lpNorm<1>();
+ else
+ abs_col_sum = m_matrix.col(col).head(col).template lpNorm<1>() + m_matrix.row(col).tail(size - col).template lpNorm<1>();
+ if (abs_col_sum > m_l1_norm)
+ m_l1_norm = abs_col_sum;
+ }
+
+ m_isInitialized = true;
+ bool ok = Traits::inplace_decomposition(m_matrix);
+ m_info = ok ? Success : NumericalIssue;
+
+ return *this;
+}
+
+/** Performs a rank one update (or dowdate) of the current decomposition.
+ * If A = LL^* before the rank one update,
+ * then after it we have LL^* = A + sigma * v v^* where \a v must be a vector
+ * of same dimension.
+ */
+template<typename _MatrixType, int _UpLo>
+template<typename VectorType>
+LLT<_MatrixType,_UpLo> LLT<_MatrixType,_UpLo>::rankUpdate(const VectorType& v, const RealScalar& sigma)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(VectorType);
+ eigen_assert(v.size()==m_matrix.cols());
+ eigen_assert(m_isInitialized);
+ if(internal::llt_inplace<typename MatrixType::Scalar, UpLo>::rankUpdate(m_matrix,v,sigma)>=0)
+ m_info = NumericalIssue;
+ else
+ m_info = Success;
+
+ return *this;
+}
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+template<typename _MatrixType,int _UpLo>
+template<typename RhsType, typename DstType>
+void LLT<_MatrixType,_UpLo>::_solve_impl(const RhsType &rhs, DstType &dst) const
+{
+ dst = rhs;
+ solveInPlace(dst);
+}
+#endif
+
+/** \internal use x = llt_object.solve(x);
+ *
+ * This is the \em in-place version of solve().
+ *
+ * \param bAndX represents both the right-hand side matrix b and result x.
+ *
+ * This version avoids a copy when the right hand side matrix b is not needed anymore.
+ *
+ * \sa LLT::solve(), MatrixBase::llt()
+ */
+template<typename MatrixType, int _UpLo>
+template<typename Derived>
+void LLT<MatrixType,_UpLo>::solveInPlace(MatrixBase<Derived> &bAndX) const
+{
+ eigen_assert(m_isInitialized && "LLT is not initialized.");
+ eigen_assert(m_matrix.rows()==bAndX.rows());
+ matrixL().solveInPlace(bAndX);
+ matrixU().solveInPlace(bAndX);
+}
+
+/** \returns the matrix represented by the decomposition,
+ * i.e., it returns the product: L L^*.
+ * This function is provided for debug purpose. */
+template<typename MatrixType, int _UpLo>
+MatrixType LLT<MatrixType,_UpLo>::reconstructedMatrix() const
+{
+ eigen_assert(m_isInitialized && "LLT is not initialized.");
+ return matrixL() * matrixL().adjoint().toDenseMatrix();
+}
+
+/** \cholesky_module
+ * \returns the LLT decomposition of \c *this
+ * \sa SelfAdjointView::llt()
+ */
+template<typename Derived>
+inline const LLT<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::llt() const
+{
+ return LLT<PlainObject>(derived());
+}
+
+/** \cholesky_module
+ * \returns the LLT decomposition of \c *this
+ * \sa SelfAdjointView::llt()
+ */
+template<typename MatrixType, unsigned int UpLo>
+inline const LLT<typename SelfAdjointView<MatrixType, UpLo>::PlainObject, UpLo>
+SelfAdjointView<MatrixType, UpLo>::llt() const
+{
+ return LLT<PlainObject,UpLo>(m_matrix);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_LLT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h b/runtimes/nn/depend/external/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h
new file mode 100644
index 000000000..bc6489e69
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h
@@ -0,0 +1,99 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ * Content : Eigen bindings to LAPACKe
+ * LLt decomposition based on LAPACKE_?potrf function.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_LLT_LAPACKE_H
+#define EIGEN_LLT_LAPACKE_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename Scalar> struct lapacke_llt;
+
+#define EIGEN_LAPACKE_LLT(EIGTYPE, BLASTYPE, LAPACKE_PREFIX) \
+template<> struct lapacke_llt<EIGTYPE> \
+{ \
+ template<typename MatrixType> \
+ static inline Index potrf(MatrixType& m, char uplo) \
+ { \
+ lapack_int matrix_order; \
+ lapack_int size, lda, info, StorageOrder; \
+ EIGTYPE* a; \
+ eigen_assert(m.rows()==m.cols()); \
+ /* Set up parameters for ?potrf */ \
+ size = convert_index<lapack_int>(m.rows()); \
+ StorageOrder = MatrixType::Flags&RowMajorBit?RowMajor:ColMajor; \
+ matrix_order = StorageOrder==RowMajor ? LAPACK_ROW_MAJOR : LAPACK_COL_MAJOR; \
+ a = &(m.coeffRef(0,0)); \
+ lda = convert_index<lapack_int>(m.outerStride()); \
+\
+ info = LAPACKE_##LAPACKE_PREFIX##potrf( matrix_order, uplo, size, (BLASTYPE*)a, lda ); \
+ info = (info==0) ? -1 : info>0 ? info-1 : size; \
+ return info; \
+ } \
+}; \
+template<> struct llt_inplace<EIGTYPE, Lower> \
+{ \
+ template<typename MatrixType> \
+ static Index blocked(MatrixType& m) \
+ { \
+ return lapacke_llt<EIGTYPE>::potrf(m, 'L'); \
+ } \
+ template<typename MatrixType, typename VectorType> \
+ static Index rankUpdate(MatrixType& mat, const VectorType& vec, const typename MatrixType::RealScalar& sigma) \
+ { return Eigen::internal::llt_rank_update_lower(mat, vec, sigma); } \
+}; \
+template<> struct llt_inplace<EIGTYPE, Upper> \
+{ \
+ template<typename MatrixType> \
+ static Index blocked(MatrixType& m) \
+ { \
+ return lapacke_llt<EIGTYPE>::potrf(m, 'U'); \
+ } \
+ template<typename MatrixType, typename VectorType> \
+ static Index rankUpdate(MatrixType& mat, const VectorType& vec, const typename MatrixType::RealScalar& sigma) \
+ { \
+ Transpose<MatrixType> matt(mat); \
+ return llt_inplace<EIGTYPE, Lower>::rankUpdate(matt, vec.conjugate(), sigma); \
+ } \
+};
+
+EIGEN_LAPACKE_LLT(double, double, d)
+EIGEN_LAPACKE_LLT(float, float, s)
+EIGEN_LAPACKE_LLT(dcomplex, lapack_complex_double, z)
+EIGEN_LAPACKE_LLT(scomplex, lapack_complex_float, c)
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_LLT_LAPACKE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/CholmodSupport/CholmodSupport.h b/runtimes/nn/depend/external/eigen/Eigen/src/CholmodSupport/CholmodSupport.h
new file mode 100644
index 000000000..571972023
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/CholmodSupport/CholmodSupport.h
@@ -0,0 +1,639 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CHOLMODSUPPORT_H
+#define EIGEN_CHOLMODSUPPORT_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename Scalar> struct cholmod_configure_matrix;
+
+template<> struct cholmod_configure_matrix<double> {
+ template<typename CholmodType>
+ static void run(CholmodType& mat) {
+ mat.xtype = CHOLMOD_REAL;
+ mat.dtype = CHOLMOD_DOUBLE;
+ }
+};
+
+template<> struct cholmod_configure_matrix<std::complex<double> > {
+ template<typename CholmodType>
+ static void run(CholmodType& mat) {
+ mat.xtype = CHOLMOD_COMPLEX;
+ mat.dtype = CHOLMOD_DOUBLE;
+ }
+};
+
+// Other scalar types are not yet suppotred by Cholmod
+// template<> struct cholmod_configure_matrix<float> {
+// template<typename CholmodType>
+// static void run(CholmodType& mat) {
+// mat.xtype = CHOLMOD_REAL;
+// mat.dtype = CHOLMOD_SINGLE;
+// }
+// };
+//
+// template<> struct cholmod_configure_matrix<std::complex<float> > {
+// template<typename CholmodType>
+// static void run(CholmodType& mat) {
+// mat.xtype = CHOLMOD_COMPLEX;
+// mat.dtype = CHOLMOD_SINGLE;
+// }
+// };
+
+} // namespace internal
+
+/** Wraps the Eigen sparse matrix \a mat into a Cholmod sparse matrix object.
+ * Note that the data are shared.
+ */
+template<typename _Scalar, int _Options, typename _StorageIndex>
+cholmod_sparse viewAsCholmod(Ref<SparseMatrix<_Scalar,_Options,_StorageIndex> > mat)
+{
+ cholmod_sparse res;
+ res.nzmax = mat.nonZeros();
+ res.nrow = mat.rows();
+ res.ncol = mat.cols();
+ res.p = mat.outerIndexPtr();
+ res.i = mat.innerIndexPtr();
+ res.x = mat.valuePtr();
+ res.z = 0;
+ res.sorted = 1;
+ if(mat.isCompressed())
+ {
+ res.packed = 1;
+ res.nz = 0;
+ }
+ else
+ {
+ res.packed = 0;
+ res.nz = mat.innerNonZeroPtr();
+ }
+
+ res.dtype = 0;
+ res.stype = -1;
+
+ if (internal::is_same<_StorageIndex,int>::value)
+ {
+ res.itype = CHOLMOD_INT;
+ }
+ else if (internal::is_same<_StorageIndex,long>::value)
+ {
+ res.itype = CHOLMOD_LONG;
+ }
+ else
+ {
+ eigen_assert(false && "Index type not supported yet");
+ }
+
+ // setup res.xtype
+ internal::cholmod_configure_matrix<_Scalar>::run(res);
+
+ res.stype = 0;
+
+ return res;
+}
+
+template<typename _Scalar, int _Options, typename _Index>
+const cholmod_sparse viewAsCholmod(const SparseMatrix<_Scalar,_Options,_Index>& mat)
+{
+ cholmod_sparse res = viewAsCholmod(Ref<SparseMatrix<_Scalar,_Options,_Index> >(mat.const_cast_derived()));
+ return res;
+}
+
+template<typename _Scalar, int _Options, typename _Index>
+const cholmod_sparse viewAsCholmod(const SparseVector<_Scalar,_Options,_Index>& mat)
+{
+ cholmod_sparse res = viewAsCholmod(Ref<SparseMatrix<_Scalar,_Options,_Index> >(mat.const_cast_derived()));
+ return res;
+}
+
+/** Returns a view of the Eigen sparse matrix \a mat as Cholmod sparse matrix.
+ * The data are not copied but shared. */
+template<typename _Scalar, int _Options, typename _Index, unsigned int UpLo>
+cholmod_sparse viewAsCholmod(const SparseSelfAdjointView<const SparseMatrix<_Scalar,_Options,_Index>, UpLo>& mat)
+{
+ cholmod_sparse res = viewAsCholmod(Ref<SparseMatrix<_Scalar,_Options,_Index> >(mat.matrix().const_cast_derived()));
+
+ if(UpLo==Upper) res.stype = 1;
+ if(UpLo==Lower) res.stype = -1;
+
+ return res;
+}
+
+/** Returns a view of the Eigen \b dense matrix \a mat as Cholmod dense matrix.
+ * The data are not copied but shared. */
+template<typename Derived>
+cholmod_dense viewAsCholmod(MatrixBase<Derived>& mat)
+{
+ EIGEN_STATIC_ASSERT((internal::traits<Derived>::Flags&RowMajorBit)==0,THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES);
+ typedef typename Derived::Scalar Scalar;
+
+ cholmod_dense res;
+ res.nrow = mat.rows();
+ res.ncol = mat.cols();
+ res.nzmax = res.nrow * res.ncol;
+ res.d = Derived::IsVectorAtCompileTime ? mat.derived().size() : mat.derived().outerStride();
+ res.x = (void*)(mat.derived().data());
+ res.z = 0;
+
+ internal::cholmod_configure_matrix<Scalar>::run(res);
+
+ return res;
+}
+
+/** Returns a view of the Cholmod sparse matrix \a cm as an Eigen sparse matrix.
+ * The data are not copied but shared. */
+template<typename Scalar, int Flags, typename StorageIndex>
+MappedSparseMatrix<Scalar,Flags,StorageIndex> viewAsEigen(cholmod_sparse& cm)
+{
+ return MappedSparseMatrix<Scalar,Flags,StorageIndex>
+ (cm.nrow, cm.ncol, static_cast<StorageIndex*>(cm.p)[cm.ncol],
+ static_cast<StorageIndex*>(cm.p), static_cast<StorageIndex*>(cm.i),static_cast<Scalar*>(cm.x) );
+}
+
+enum CholmodMode {
+ CholmodAuto, CholmodSimplicialLLt, CholmodSupernodalLLt, CholmodLDLt
+};
+
+
+/** \ingroup CholmodSupport_Module
+ * \class CholmodBase
+ * \brief The base class for the direct Cholesky factorization of Cholmod
+ * \sa class CholmodSupernodalLLT, class CholmodSimplicialLDLT, class CholmodSimplicialLLT
+ */
+template<typename _MatrixType, int _UpLo, typename Derived>
+class CholmodBase : public SparseSolverBase<Derived>
+{
+ protected:
+ typedef SparseSolverBase<Derived> Base;
+ using Base::derived;
+ using Base::m_isInitialized;
+ public:
+ typedef _MatrixType MatrixType;
+ enum { UpLo = _UpLo };
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ typedef MatrixType CholMatrixType;
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ enum {
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+
+ public:
+
+ CholmodBase()
+ : m_cholmodFactor(0), m_info(Success), m_factorizationIsOk(false), m_analysisIsOk(false)
+ {
+ EIGEN_STATIC_ASSERT((internal::is_same<double,RealScalar>::value), CHOLMOD_SUPPORTS_DOUBLE_PRECISION_ONLY);
+ m_shiftOffset[0] = m_shiftOffset[1] = 0.0;
+ cholmod_start(&m_cholmod);
+ }
+
+ explicit CholmodBase(const MatrixType& matrix)
+ : m_cholmodFactor(0), m_info(Success), m_factorizationIsOk(false), m_analysisIsOk(false)
+ {
+ EIGEN_STATIC_ASSERT((internal::is_same<double,RealScalar>::value), CHOLMOD_SUPPORTS_DOUBLE_PRECISION_ONLY);
+ m_shiftOffset[0] = m_shiftOffset[1] = 0.0;
+ cholmod_start(&m_cholmod);
+ compute(matrix);
+ }
+
+ ~CholmodBase()
+ {
+ if(m_cholmodFactor)
+ cholmod_free_factor(&m_cholmodFactor, &m_cholmod);
+ cholmod_finish(&m_cholmod);
+ }
+
+ inline StorageIndex cols() const { return internal::convert_index<StorageIndex, Index>(m_cholmodFactor->n); }
+ inline StorageIndex rows() const { return internal::convert_index<StorageIndex, Index>(m_cholmodFactor->n); }
+
+ /** \brief Reports whether previous computation was successful.
+ *
+ * \returns \c Success if computation was succesful,
+ * \c NumericalIssue if the matrix.appears to be negative.
+ */
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+ return m_info;
+ }
+
+ /** Computes the sparse Cholesky decomposition of \a matrix */
+ Derived& compute(const MatrixType& matrix)
+ {
+ analyzePattern(matrix);
+ factorize(matrix);
+ return derived();
+ }
+
+ /** Performs a symbolic decomposition on the sparsity pattern of \a matrix.
+ *
+ * This function is particularly useful when solving for several problems having the same structure.
+ *
+ * \sa factorize()
+ */
+ void analyzePattern(const MatrixType& matrix)
+ {
+ if(m_cholmodFactor)
+ {
+ cholmod_free_factor(&m_cholmodFactor, &m_cholmod);
+ m_cholmodFactor = 0;
+ }
+ cholmod_sparse A = viewAsCholmod(matrix.template selfadjointView<UpLo>());
+ m_cholmodFactor = cholmod_analyze(&A, &m_cholmod);
+
+ this->m_isInitialized = true;
+ this->m_info = Success;
+ m_analysisIsOk = true;
+ m_factorizationIsOk = false;
+ }
+
+ /** Performs a numeric decomposition of \a matrix
+ *
+ * The given matrix must have the same sparsity pattern as the matrix on which the symbolic decomposition has been performed.
+ *
+ * \sa analyzePattern()
+ */
+ void factorize(const MatrixType& matrix)
+ {
+ eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
+ cholmod_sparse A = viewAsCholmod(matrix.template selfadjointView<UpLo>());
+ cholmod_factorize_p(&A, m_shiftOffset, 0, 0, m_cholmodFactor, &m_cholmod);
+
+ // If the factorization failed, minor is the column at which it did. On success minor == n.
+ this->m_info = (m_cholmodFactor->minor == m_cholmodFactor->n ? Success : NumericalIssue);
+ m_factorizationIsOk = true;
+ }
+
+ /** Returns a reference to the Cholmod's configuration structure to get a full control over the performed operations.
+ * See the Cholmod user guide for details. */
+ cholmod_common& cholmod() { return m_cholmod; }
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** \internal */
+ template<typename Rhs,typename Dest>
+ void _solve_impl(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const
+ {
+ eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
+ const Index size = m_cholmodFactor->n;
+ EIGEN_UNUSED_VARIABLE(size);
+ eigen_assert(size==b.rows());
+
+ // Cholmod needs column-major stoarge without inner-stride, which corresponds to the default behavior of Ref.
+ Ref<const Matrix<typename Rhs::Scalar,Dynamic,Dynamic,ColMajor> > b_ref(b.derived());
+
+ cholmod_dense b_cd = viewAsCholmod(b_ref);
+ cholmod_dense* x_cd = cholmod_solve(CHOLMOD_A, m_cholmodFactor, &b_cd, &m_cholmod);
+ if(!x_cd)
+ {
+ this->m_info = NumericalIssue;
+ return;
+ }
+ // TODO optimize this copy by swapping when possible (be careful with alignment, etc.)
+ dest = Matrix<Scalar,Dest::RowsAtCompileTime,Dest::ColsAtCompileTime>::Map(reinterpret_cast<Scalar*>(x_cd->x),b.rows(),b.cols());
+ cholmod_free_dense(&x_cd, &m_cholmod);
+ }
+
+ /** \internal */
+ template<typename RhsDerived, typename DestDerived>
+ void _solve_impl(const SparseMatrixBase<RhsDerived> &b, SparseMatrixBase<DestDerived> &dest) const
+ {
+ eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
+ const Index size = m_cholmodFactor->n;
+ EIGEN_UNUSED_VARIABLE(size);
+ eigen_assert(size==b.rows());
+
+ // note: cs stands for Cholmod Sparse
+ Ref<SparseMatrix<typename RhsDerived::Scalar,ColMajor,typename RhsDerived::StorageIndex> > b_ref(b.const_cast_derived());
+ cholmod_sparse b_cs = viewAsCholmod(b_ref);
+ cholmod_sparse* x_cs = cholmod_spsolve(CHOLMOD_A, m_cholmodFactor, &b_cs, &m_cholmod);
+ if(!x_cs)
+ {
+ this->m_info = NumericalIssue;
+ return;
+ }
+ // TODO optimize this copy by swapping when possible (be careful with alignment, etc.)
+ dest.derived() = viewAsEigen<typename DestDerived::Scalar,ColMajor,typename DestDerived::StorageIndex>(*x_cs);
+ cholmod_free_sparse(&x_cs, &m_cholmod);
+ }
+ #endif // EIGEN_PARSED_BY_DOXYGEN
+
+
+ /** Sets the shift parameter that will be used to adjust the diagonal coefficients during the numerical factorization.
+ *
+ * During the numerical factorization, an offset term is added to the diagonal coefficients:\n
+ * \c d_ii = \a offset + \c d_ii
+ *
+ * The default is \a offset=0.
+ *
+ * \returns a reference to \c *this.
+ */
+ Derived& setShift(const RealScalar& offset)
+ {
+ m_shiftOffset[0] = double(offset);
+ return derived();
+ }
+
+ /** \returns the determinant of the underlying matrix from the current factorization */
+ Scalar determinant() const
+ {
+ using std::exp;
+ return exp(logDeterminant());
+ }
+
+ /** \returns the log determinant of the underlying matrix from the current factorization */
+ Scalar logDeterminant() const
+ {
+ using std::log;
+ using numext::real;
+ eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
+
+ RealScalar logDet = 0;
+ Scalar *x = static_cast<Scalar*>(m_cholmodFactor->x);
+ if (m_cholmodFactor->is_super)
+ {
+ // Supernodal factorization stored as a packed list of dense column-major blocs,
+ // as described by the following structure:
+
+ // super[k] == index of the first column of the j-th super node
+ StorageIndex *super = static_cast<StorageIndex*>(m_cholmodFactor->super);
+ // pi[k] == offset to the description of row indices
+ StorageIndex *pi = static_cast<StorageIndex*>(m_cholmodFactor->pi);
+ // px[k] == offset to the respective dense block
+ StorageIndex *px = static_cast<StorageIndex*>(m_cholmodFactor->px);
+
+ Index nb_super_nodes = m_cholmodFactor->nsuper;
+ for (Index k=0; k < nb_super_nodes; ++k)
+ {
+ StorageIndex ncols = super[k + 1] - super[k];
+ StorageIndex nrows = pi[k + 1] - pi[k];
+
+ Map<const Array<Scalar,1,Dynamic>, 0, InnerStride<> > sk(x + px[k], ncols, InnerStride<>(nrows+1));
+ logDet += sk.real().log().sum();
+ }
+ }
+ else
+ {
+ // Simplicial factorization stored as standard CSC matrix.
+ StorageIndex *p = static_cast<StorageIndex*>(m_cholmodFactor->p);
+ Index size = m_cholmodFactor->n;
+ for (Index k=0; k<size; ++k)
+ logDet += log(real( x[p[k]] ));
+ }
+ if (m_cholmodFactor->is_ll)
+ logDet *= 2.0;
+ return logDet;
+ };
+
+ template<typename Stream>
+ void dumpMemory(Stream& /*s*/)
+ {}
+
+ protected:
+ mutable cholmod_common m_cholmod;
+ cholmod_factor* m_cholmodFactor;
+ double m_shiftOffset[2];
+ mutable ComputationInfo m_info;
+ int m_factorizationIsOk;
+ int m_analysisIsOk;
+};
+
+/** \ingroup CholmodSupport_Module
+ * \class CholmodSimplicialLLT
+ * \brief A simplicial direct Cholesky (LLT) factorization and solver based on Cholmod
+ *
+ * This class allows to solve for A.X = B sparse linear problems via a simplicial LL^T Cholesky factorization
+ * using the Cholmod library.
+ * This simplicial variant is equivalent to Eigen's built-in SimplicialLLT class. Therefore, it has little practical interest.
+ * The sparse matrix A must be selfadjoint and positive definite. The vectors or matrices
+ * X and B can be either dense or sparse.
+ *
+ * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+ * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+ * or Upper. Default is Lower.
+ *
+ * \implsparsesolverconcept
+ *
+ * This class supports all kind of SparseMatrix<>: row or column major; upper, lower, or both; compressed or non compressed.
+ *
+ * \warning Only double precision real and complex scalar types are supported by Cholmod.
+ *
+ * \sa \ref TutorialSparseSolverConcept, class CholmodSupernodalLLT, class SimplicialLLT
+ */
+template<typename _MatrixType, int _UpLo = Lower>
+class CholmodSimplicialLLT : public CholmodBase<_MatrixType, _UpLo, CholmodSimplicialLLT<_MatrixType, _UpLo> >
+{
+ typedef CholmodBase<_MatrixType, _UpLo, CholmodSimplicialLLT> Base;
+ using Base::m_cholmod;
+
+ public:
+
+ typedef _MatrixType MatrixType;
+
+ CholmodSimplicialLLT() : Base() { init(); }
+
+ CholmodSimplicialLLT(const MatrixType& matrix) : Base()
+ {
+ init();
+ this->compute(matrix);
+ }
+
+ ~CholmodSimplicialLLT() {}
+ protected:
+ void init()
+ {
+ m_cholmod.final_asis = 0;
+ m_cholmod.supernodal = CHOLMOD_SIMPLICIAL;
+ m_cholmod.final_ll = 1;
+ }
+};
+
+
+/** \ingroup CholmodSupport_Module
+ * \class CholmodSimplicialLDLT
+ * \brief A simplicial direct Cholesky (LDLT) factorization and solver based on Cholmod
+ *
+ * This class allows to solve for A.X = B sparse linear problems via a simplicial LDL^T Cholesky factorization
+ * using the Cholmod library.
+ * This simplicial variant is equivalent to Eigen's built-in SimplicialLDLT class. Therefore, it has little practical interest.
+ * The sparse matrix A must be selfadjoint and positive definite. The vectors or matrices
+ * X and B can be either dense or sparse.
+ *
+ * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+ * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+ * or Upper. Default is Lower.
+ *
+ * \implsparsesolverconcept
+ *
+ * This class supports all kind of SparseMatrix<>: row or column major; upper, lower, or both; compressed or non compressed.
+ *
+ * \warning Only double precision real and complex scalar types are supported by Cholmod.
+ *
+ * \sa \ref TutorialSparseSolverConcept, class CholmodSupernodalLLT, class SimplicialLDLT
+ */
+template<typename _MatrixType, int _UpLo = Lower>
+class CholmodSimplicialLDLT : public CholmodBase<_MatrixType, _UpLo, CholmodSimplicialLDLT<_MatrixType, _UpLo> >
+{
+ typedef CholmodBase<_MatrixType, _UpLo, CholmodSimplicialLDLT> Base;
+ using Base::m_cholmod;
+
+ public:
+
+ typedef _MatrixType MatrixType;
+
+ CholmodSimplicialLDLT() : Base() { init(); }
+
+ CholmodSimplicialLDLT(const MatrixType& matrix) : Base()
+ {
+ init();
+ this->compute(matrix);
+ }
+
+ ~CholmodSimplicialLDLT() {}
+ protected:
+ void init()
+ {
+ m_cholmod.final_asis = 1;
+ m_cholmod.supernodal = CHOLMOD_SIMPLICIAL;
+ }
+};
+
+/** \ingroup CholmodSupport_Module
+ * \class CholmodSupernodalLLT
+ * \brief A supernodal Cholesky (LLT) factorization and solver based on Cholmod
+ *
+ * This class allows to solve for A.X = B sparse linear problems via a supernodal LL^T Cholesky factorization
+ * using the Cholmod library.
+ * This supernodal variant performs best on dense enough problems, e.g., 3D FEM, or very high order 2D FEM.
+ * The sparse matrix A must be selfadjoint and positive definite. The vectors or matrices
+ * X and B can be either dense or sparse.
+ *
+ * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+ * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+ * or Upper. Default is Lower.
+ *
+ * \implsparsesolverconcept
+ *
+ * This class supports all kind of SparseMatrix<>: row or column major; upper, lower, or both; compressed or non compressed.
+ *
+ * \warning Only double precision real and complex scalar types are supported by Cholmod.
+ *
+ * \sa \ref TutorialSparseSolverConcept
+ */
+template<typename _MatrixType, int _UpLo = Lower>
+class CholmodSupernodalLLT : public CholmodBase<_MatrixType, _UpLo, CholmodSupernodalLLT<_MatrixType, _UpLo> >
+{
+ typedef CholmodBase<_MatrixType, _UpLo, CholmodSupernodalLLT> Base;
+ using Base::m_cholmod;
+
+ public:
+
+ typedef _MatrixType MatrixType;
+
+ CholmodSupernodalLLT() : Base() { init(); }
+
+ CholmodSupernodalLLT(const MatrixType& matrix) : Base()
+ {
+ init();
+ this->compute(matrix);
+ }
+
+ ~CholmodSupernodalLLT() {}
+ protected:
+ void init()
+ {
+ m_cholmod.final_asis = 1;
+ m_cholmod.supernodal = CHOLMOD_SUPERNODAL;
+ }
+};
+
+/** \ingroup CholmodSupport_Module
+ * \class CholmodDecomposition
+ * \brief A general Cholesky factorization and solver based on Cholmod
+ *
+ * This class allows to solve for A.X = B sparse linear problems via a LL^T or LDL^T Cholesky factorization
+ * using the Cholmod library. The sparse matrix A must be selfadjoint and positive definite. The vectors or matrices
+ * X and B can be either dense or sparse.
+ *
+ * This variant permits to change the underlying Cholesky method at runtime.
+ * On the other hand, it does not provide access to the result of the factorization.
+ * The default is to let Cholmod automatically choose between a simplicial and supernodal factorization.
+ *
+ * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+ * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+ * or Upper. Default is Lower.
+ *
+ * \implsparsesolverconcept
+ *
+ * This class supports all kind of SparseMatrix<>: row or column major; upper, lower, or both; compressed or non compressed.
+ *
+ * \warning Only double precision real and complex scalar types are supported by Cholmod.
+ *
+ * \sa \ref TutorialSparseSolverConcept
+ */
+template<typename _MatrixType, int _UpLo = Lower>
+class CholmodDecomposition : public CholmodBase<_MatrixType, _UpLo, CholmodDecomposition<_MatrixType, _UpLo> >
+{
+ typedef CholmodBase<_MatrixType, _UpLo, CholmodDecomposition> Base;
+ using Base::m_cholmod;
+
+ public:
+
+ typedef _MatrixType MatrixType;
+
+ CholmodDecomposition() : Base() { init(); }
+
+ CholmodDecomposition(const MatrixType& matrix) : Base()
+ {
+ init();
+ this->compute(matrix);
+ }
+
+ ~CholmodDecomposition() {}
+
+ void setMode(CholmodMode mode)
+ {
+ switch(mode)
+ {
+ case CholmodAuto:
+ m_cholmod.final_asis = 1;
+ m_cholmod.supernodal = CHOLMOD_AUTO;
+ break;
+ case CholmodSimplicialLLt:
+ m_cholmod.final_asis = 0;
+ m_cholmod.supernodal = CHOLMOD_SIMPLICIAL;
+ m_cholmod.final_ll = 1;
+ break;
+ case CholmodSupernodalLLt:
+ m_cholmod.final_asis = 1;
+ m_cholmod.supernodal = CHOLMOD_SUPERNODAL;
+ break;
+ case CholmodLDLt:
+ m_cholmod.final_asis = 1;
+ m_cholmod.supernodal = CHOLMOD_SIMPLICIAL;
+ break;
+ default:
+ break;
+ }
+ }
+ protected:
+ void init()
+ {
+ m_cholmod.final_asis = 1;
+ m_cholmod.supernodal = CHOLMOD_AUTO;
+ }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_CHOLMODSUPPORT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Array.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Array.h
new file mode 100644
index 000000000..e10020d4f
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Array.h
@@ -0,0 +1,331 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ARRAY_H
+#define EIGEN_ARRAY_H
+
+namespace Eigen {
+
+namespace internal {
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+struct traits<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> > : traits<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
+{
+ typedef ArrayXpr XprKind;
+ typedef ArrayBase<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> > XprBase;
+};
+}
+
+/** \class Array
+ * \ingroup Core_Module
+ *
+ * \brief General-purpose arrays with easy API for coefficient-wise operations
+ *
+ * The %Array class is very similar to the Matrix class. It provides
+ * general-purpose one- and two-dimensional arrays. The difference between the
+ * %Array and the %Matrix class is primarily in the API: the API for the
+ * %Array class provides easy access to coefficient-wise operations, while the
+ * API for the %Matrix class provides easy access to linear-algebra
+ * operations.
+ *
+ * See documentation of class Matrix for detailed information on the template parameters
+ * storage layout.
+ *
+ * This class can be extended with the help of the plugin mechanism described on the page
+ * \ref TopicCustomizing_Plugins by defining the preprocessor symbol \c EIGEN_ARRAY_PLUGIN.
+ *
+ * \sa \blank \ref TutorialArrayClass, \ref TopicClassHierarchy
+ */
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+class Array
+ : public PlainObjectBase<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
+{
+ public:
+
+ typedef PlainObjectBase<Array> Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(Array)
+
+ enum { Options = _Options };
+ typedef typename Base::PlainObject PlainObject;
+
+ protected:
+ template <typename Derived, typename OtherDerived, bool IsVector>
+ friend struct internal::conservative_resize_like_impl;
+
+ using Base::m_storage;
+
+ public:
+
+ using Base::base;
+ using Base::coeff;
+ using Base::coeffRef;
+
+ /**
+ * The usage of
+ * using Base::operator=;
+ * fails on MSVC. Since the code below is working with GCC and MSVC, we skipped
+ * the usage of 'using'. This should be done only for operator=.
+ */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Array& operator=(const EigenBase<OtherDerived> &other)
+ {
+ return Base::operator=(other);
+ }
+
+ /** Set all the entries to \a value.
+ * \sa DenseBase::setConstant(), DenseBase::fill()
+ */
+ /* This overload is needed because the usage of
+ * using Base::operator=;
+ * fails on MSVC. Since the code below is working with GCC and MSVC, we skipped
+ * the usage of 'using'. This should be done only for operator=.
+ */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Array& operator=(const Scalar &value)
+ {
+ Base::setConstant(value);
+ return *this;
+ }
+
+ /** Copies the value of the expression \a other into \c *this with automatic resizing.
+ *
+ * *this might be resized to match the dimensions of \a other. If *this was a null matrix (not already initialized),
+ * it will be initialized.
+ *
+ * Note that copying a row-vector into a vector (and conversely) is allowed.
+ * The resizing, if any, is then done in the appropriate way so that row-vectors
+ * remain row-vectors and vectors remain vectors.
+ */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Array& operator=(const DenseBase<OtherDerived>& other)
+ {
+ return Base::_set(other);
+ }
+
+ /** This is a special case of the templated operator=. Its purpose is to
+ * prevent a default operator= from hiding the templated operator=.
+ */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Array& operator=(const Array& other)
+ {
+ return Base::_set(other);
+ }
+
+ /** Default constructor.
+ *
+ * For fixed-size matrices, does nothing.
+ *
+ * For dynamic-size matrices, creates an empty matrix of size 0. Does not allocate any array. Such a matrix
+ * is called a null matrix. This constructor is the unique way to create null matrices: resizing
+ * a matrix to 0 is not supported.
+ *
+ * \sa resize(Index,Index)
+ */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Array() : Base()
+ {
+ Base::_check_template_params();
+ EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+ }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ // FIXME is it still needed ??
+ /** \internal */
+ EIGEN_DEVICE_FUNC
+ Array(internal::constructor_without_unaligned_array_assert)
+ : Base(internal::constructor_without_unaligned_array_assert())
+ {
+ Base::_check_template_params();
+ EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+ }
+#endif
+
+#if EIGEN_HAS_RVALUE_REFERENCES
+ EIGEN_DEVICE_FUNC
+ Array(Array&& other) EIGEN_NOEXCEPT_IF(std::is_nothrow_move_constructible<Scalar>::value)
+ : Base(std::move(other))
+ {
+ Base::_check_template_params();
+ if (RowsAtCompileTime!=Dynamic && ColsAtCompileTime!=Dynamic)
+ Base::_set_noalias(other);
+ }
+ EIGEN_DEVICE_FUNC
+ Array& operator=(Array&& other) EIGEN_NOEXCEPT_IF(std::is_nothrow_move_assignable<Scalar>::value)
+ {
+ other.swap(*this);
+ return *this;
+ }
+#endif
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ template<typename T>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE explicit Array(const T& x)
+ {
+ Base::_check_template_params();
+ Base::template _init1<T>(x);
+ }
+
+ template<typename T0, typename T1>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Array(const T0& val0, const T1& val1)
+ {
+ Base::_check_template_params();
+ this->template _init2<T0,T1>(val0, val1);
+ }
+ #else
+ /** \brief Constructs a fixed-sized array initialized with coefficients starting at \a data */
+ EIGEN_DEVICE_FUNC explicit Array(const Scalar *data);
+ /** Constructs a vector or row-vector with given dimension. \only_for_vectors
+ *
+ * Note that this is only useful for dynamic-size vectors. For fixed-size vectors,
+ * it is redundant to pass the dimension here, so it makes more sense to use the default
+ * constructor Array() instead.
+ */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE explicit Array(Index dim);
+ /** constructs an initialized 1x1 Array with the given coefficient */
+ Array(const Scalar& value);
+ /** constructs an uninitialized array with \a rows rows and \a cols columns.
+ *
+ * This is useful for dynamic-size arrays. For fixed-size arrays,
+ * it is redundant to pass these parameters, so one should use the default constructor
+ * Array() instead. */
+ Array(Index rows, Index cols);
+ /** constructs an initialized 2D vector with given coefficients */
+ Array(const Scalar& val0, const Scalar& val1);
+ #endif
+
+ /** constructs an initialized 3D vector with given coefficients */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Array(const Scalar& val0, const Scalar& val1, const Scalar& val2)
+ {
+ Base::_check_template_params();
+ EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Array, 3)
+ m_storage.data()[0] = val0;
+ m_storage.data()[1] = val1;
+ m_storage.data()[2] = val2;
+ }
+ /** constructs an initialized 4D vector with given coefficients */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Array(const Scalar& val0, const Scalar& val1, const Scalar& val2, const Scalar& val3)
+ {
+ Base::_check_template_params();
+ EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Array, 4)
+ m_storage.data()[0] = val0;
+ m_storage.data()[1] = val1;
+ m_storage.data()[2] = val2;
+ m_storage.data()[3] = val3;
+ }
+
+ /** Copy constructor */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Array(const Array& other)
+ : Base(other)
+ { }
+
+ private:
+ struct PrivateType {};
+ public:
+
+ /** \sa MatrixBase::operator=(const EigenBase<OtherDerived>&) */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Array(const EigenBase<OtherDerived> &other,
+ typename internal::enable_if<internal::is_convertible<typename OtherDerived::Scalar,Scalar>::value,
+ PrivateType>::type = PrivateType())
+ : Base(other.derived())
+ { }
+
+ EIGEN_DEVICE_FUNC inline Index innerStride() const { return 1; }
+ EIGEN_DEVICE_FUNC inline Index outerStride() const { return this->innerSize(); }
+
+ #ifdef EIGEN_ARRAY_PLUGIN
+ #include EIGEN_ARRAY_PLUGIN
+ #endif
+
+ private:
+
+ template<typename MatrixType, typename OtherDerived, bool SwapPointers>
+ friend struct internal::matrix_swap_impl;
+};
+
+/** \defgroup arraytypedefs Global array typedefs
+ * \ingroup Core_Module
+ *
+ * Eigen defines several typedef shortcuts for most common 1D and 2D array types.
+ *
+ * The general patterns are the following:
+ *
+ * \c ArrayRowsColsType where \c Rows and \c Cols can be \c 2,\c 3,\c 4 for fixed size square matrices or \c X for dynamic size,
+ * and where \c Type can be \c i for integer, \c f for float, \c d for double, \c cf for complex float, \c cd
+ * for complex double.
+ *
+ * For example, \c Array33d is a fixed-size 3x3 array type of doubles, and \c ArrayXXf is a dynamic-size matrix of floats.
+ *
+ * There are also \c ArraySizeType which are self-explanatory. For example, \c Array4cf is
+ * a fixed-size 1D array of 4 complex floats.
+ *
+ * \sa class Array
+ */
+
+#define EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix) \
+/** \ingroup arraytypedefs */ \
+typedef Array<Type, Size, Size> Array##SizeSuffix##SizeSuffix##TypeSuffix; \
+/** \ingroup arraytypedefs */ \
+typedef Array<Type, Size, 1> Array##SizeSuffix##TypeSuffix;
+
+#define EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, Size) \
+/** \ingroup arraytypedefs */ \
+typedef Array<Type, Size, Dynamic> Array##Size##X##TypeSuffix; \
+/** \ingroup arraytypedefs */ \
+typedef Array<Type, Dynamic, Size> Array##X##Size##TypeSuffix;
+
+#define EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(Type, TypeSuffix) \
+EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 2, 2) \
+EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 3, 3) \
+EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 4, 4) \
+EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, Dynamic, X) \
+EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 2) \
+EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 3) \
+EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 4)
+
+EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(int, i)
+EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(float, f)
+EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(double, d)
+EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(std::complex<float>, cf)
+EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(std::complex<double>, cd)
+
+#undef EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES
+#undef EIGEN_MAKE_ARRAY_TYPEDEFS
+
+#undef EIGEN_MAKE_ARRAY_TYPEDEFS_LARGE
+
+#define EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, SizeSuffix) \
+using Eigen::Matrix##SizeSuffix##TypeSuffix; \
+using Eigen::Vector##SizeSuffix##TypeSuffix; \
+using Eigen::RowVector##SizeSuffix##TypeSuffix;
+
+#define EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(TypeSuffix) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 2) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 3) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 4) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, X) \
+
+#define EIGEN_USING_ARRAY_TYPEDEFS \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(i) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(f) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(d) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(cf) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(cd)
+
+} // end namespace Eigen
+
+#endif // EIGEN_ARRAY_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/ArrayBase.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/ArrayBase.h
new file mode 100644
index 000000000..3dbc7084c
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/ArrayBase.h
@@ -0,0 +1,226 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ARRAYBASE_H
+#define EIGEN_ARRAYBASE_H
+
+namespace Eigen {
+
+template<typename ExpressionType> class MatrixWrapper;
+
+/** \class ArrayBase
+ * \ingroup Core_Module
+ *
+ * \brief Base class for all 1D and 2D array, and related expressions
+ *
+ * An array is similar to a dense vector or matrix. While matrices are mathematical
+ * objects with well defined linear algebra operators, an array is just a collection
+ * of scalar values arranged in a one or two dimensionnal fashion. As the main consequence,
+ * all operations applied to an array are performed coefficient wise. Furthermore,
+ * arrays support scalar math functions of the c++ standard library (e.g., std::sin(x)), and convenient
+ * constructors allowing to easily write generic code working for both scalar values
+ * and arrays.
+ *
+ * This class is the base that is inherited by all array expression types.
+ *
+ * \tparam Derived is the derived type, e.g., an array or an expression type.
+ *
+ * This class can be extended with the help of the plugin mechanism described on the page
+ * \ref TopicCustomizing_Plugins by defining the preprocessor symbol \c EIGEN_ARRAYBASE_PLUGIN.
+ *
+ * \sa class MatrixBase, \ref TopicClassHierarchy
+ */
+template<typename Derived> class ArrayBase
+ : public DenseBase<Derived>
+{
+ public:
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** The base class for a given storage type. */
+ typedef ArrayBase StorageBaseType;
+
+ typedef ArrayBase Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl;
+
+ typedef typename internal::traits<Derived>::StorageKind StorageKind;
+ typedef typename internal::traits<Derived>::Scalar Scalar;
+ typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+
+ typedef DenseBase<Derived> Base;
+ using Base::RowsAtCompileTime;
+ using Base::ColsAtCompileTime;
+ using Base::SizeAtCompileTime;
+ using Base::MaxRowsAtCompileTime;
+ using Base::MaxColsAtCompileTime;
+ using Base::MaxSizeAtCompileTime;
+ using Base::IsVectorAtCompileTime;
+ using Base::Flags;
+
+ using Base::derived;
+ using Base::const_cast_derived;
+ using Base::rows;
+ using Base::cols;
+ using Base::size;
+ using Base::coeff;
+ using Base::coeffRef;
+ using Base::lazyAssign;
+ using Base::operator=;
+ using Base::operator+=;
+ using Base::operator-=;
+ using Base::operator*=;
+ using Base::operator/=;
+
+ typedef typename Base::CoeffReturnType CoeffReturnType;
+
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ typedef typename Base::PlainObject PlainObject;
+
+ /** \internal Represents a matrix with all coefficients equal to one another*/
+ typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,PlainObject> ConstantReturnType;
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+#define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::ArrayBase
+#define EIGEN_DOC_UNARY_ADDONS(X,Y)
+# include "../plugins/CommonCwiseUnaryOps.h"
+# include "../plugins/MatrixCwiseUnaryOps.h"
+# include "../plugins/ArrayCwiseUnaryOps.h"
+# include "../plugins/CommonCwiseBinaryOps.h"
+# include "../plugins/MatrixCwiseBinaryOps.h"
+# include "../plugins/ArrayCwiseBinaryOps.h"
+# ifdef EIGEN_ARRAYBASE_PLUGIN
+# include EIGEN_ARRAYBASE_PLUGIN
+# endif
+#undef EIGEN_CURRENT_STORAGE_BASE_CLASS
+#undef EIGEN_DOC_UNARY_ADDONS
+
+ /** Special case of the template operator=, in order to prevent the compiler
+ * from generating a default operator= (issue hit with g++ 4.1)
+ */
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Derived& operator=(const ArrayBase& other)
+ {
+ internal::call_assignment(derived(), other.derived());
+ return derived();
+ }
+
+ /** Set all the entries to \a value.
+ * \sa DenseBase::setConstant(), DenseBase::fill() */
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Derived& operator=(const Scalar &value)
+ { Base::setConstant(value); return derived(); }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Derived& operator+=(const Scalar& scalar);
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Derived& operator-=(const Scalar& scalar);
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Derived& operator+=(const ArrayBase<OtherDerived>& other);
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Derived& operator-=(const ArrayBase<OtherDerived>& other);
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Derived& operator*=(const ArrayBase<OtherDerived>& other);
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Derived& operator/=(const ArrayBase<OtherDerived>& other);
+
+ public:
+ EIGEN_DEVICE_FUNC
+ ArrayBase<Derived>& array() { return *this; }
+ EIGEN_DEVICE_FUNC
+ const ArrayBase<Derived>& array() const { return *this; }
+
+ /** \returns an \link Eigen::MatrixBase Matrix \endlink expression of this array
+ * \sa MatrixBase::array() */
+ EIGEN_DEVICE_FUNC
+ MatrixWrapper<Derived> matrix() { return MatrixWrapper<Derived>(derived()); }
+ EIGEN_DEVICE_FUNC
+ const MatrixWrapper<const Derived> matrix() const { return MatrixWrapper<const Derived>(derived()); }
+
+// template<typename Dest>
+// inline void evalTo(Dest& dst) const { dst = matrix(); }
+
+ protected:
+ EIGEN_DEVICE_FUNC
+ ArrayBase() : Base() {}
+
+ private:
+ explicit ArrayBase(Index);
+ ArrayBase(Index,Index);
+ template<typename OtherDerived> explicit ArrayBase(const ArrayBase<OtherDerived>&);
+ protected:
+ // mixing arrays and matrices is not legal
+ template<typename OtherDerived> Derived& operator+=(const MatrixBase<OtherDerived>& )
+ {EIGEN_STATIC_ASSERT(std::ptrdiff_t(sizeof(typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES); return *this;}
+ // mixing arrays and matrices is not legal
+ template<typename OtherDerived> Derived& operator-=(const MatrixBase<OtherDerived>& )
+ {EIGEN_STATIC_ASSERT(std::ptrdiff_t(sizeof(typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES); return *this;}
+};
+
+/** replaces \c *this by \c *this - \a other.
+ *
+ * \returns a reference to \c *this
+ */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived &
+ArrayBase<Derived>::operator-=(const ArrayBase<OtherDerived> &other)
+{
+ call_assignment(derived(), other.derived(), internal::sub_assign_op<Scalar,typename OtherDerived::Scalar>());
+ return derived();
+}
+
+/** replaces \c *this by \c *this + \a other.
+ *
+ * \returns a reference to \c *this
+ */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived &
+ArrayBase<Derived>::operator+=(const ArrayBase<OtherDerived>& other)
+{
+ call_assignment(derived(), other.derived(), internal::add_assign_op<Scalar,typename OtherDerived::Scalar>());
+ return derived();
+}
+
+/** replaces \c *this by \c *this * \a other coefficient wise.
+ *
+ * \returns a reference to \c *this
+ */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived &
+ArrayBase<Derived>::operator*=(const ArrayBase<OtherDerived>& other)
+{
+ call_assignment(derived(), other.derived(), internal::mul_assign_op<Scalar,typename OtherDerived::Scalar>());
+ return derived();
+}
+
+/** replaces \c *this by \c *this / \a other coefficient wise.
+ *
+ * \returns a reference to \c *this
+ */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived &
+ArrayBase<Derived>::operator/=(const ArrayBase<OtherDerived>& other)
+{
+ call_assignment(derived(), other.derived(), internal::div_assign_op<Scalar,typename OtherDerived::Scalar>());
+ return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_ARRAYBASE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/ArrayWrapper.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/ArrayWrapper.h
new file mode 100644
index 000000000..688aadd62
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/ArrayWrapper.h
@@ -0,0 +1,209 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ARRAYWRAPPER_H
+#define EIGEN_ARRAYWRAPPER_H
+
+namespace Eigen {
+
+/** \class ArrayWrapper
+ * \ingroup Core_Module
+ *
+ * \brief Expression of a mathematical vector or matrix as an array object
+ *
+ * This class is the return type of MatrixBase::array(), and most of the time
+ * this is the only way it is use.
+ *
+ * \sa MatrixBase::array(), class MatrixWrapper
+ */
+
+namespace internal {
+template<typename ExpressionType>
+struct traits<ArrayWrapper<ExpressionType> >
+ : public traits<typename remove_all<typename ExpressionType::Nested>::type >
+{
+ typedef ArrayXpr XprKind;
+ // Let's remove NestByRefBit
+ enum {
+ Flags0 = traits<typename remove_all<typename ExpressionType::Nested>::type >::Flags,
+ LvalueBitFlag = is_lvalue<ExpressionType>::value ? LvalueBit : 0,
+ Flags = (Flags0 & ~(NestByRefBit | LvalueBit)) | LvalueBitFlag
+ };
+};
+}
+
+template<typename ExpressionType>
+class ArrayWrapper : public ArrayBase<ArrayWrapper<ExpressionType> >
+{
+ public:
+ typedef ArrayBase<ArrayWrapper> Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(ArrayWrapper)
+ EIGEN_INHERIT_ASSIGNMENT_OPERATORS(ArrayWrapper)
+ typedef typename internal::remove_all<ExpressionType>::type NestedExpression;
+
+ typedef typename internal::conditional<
+ internal::is_lvalue<ExpressionType>::value,
+ Scalar,
+ const Scalar
+ >::type ScalarWithConstIfNotLvalue;
+
+ typedef typename internal::ref_selector<ExpressionType>::non_const_type NestedExpressionType;
+
+ using Base::coeffRef;
+
+ EIGEN_DEVICE_FUNC
+ explicit EIGEN_STRONG_INLINE ArrayWrapper(ExpressionType& matrix) : m_expression(matrix) {}
+
+ EIGEN_DEVICE_FUNC
+ inline Index rows() const { return m_expression.rows(); }
+ EIGEN_DEVICE_FUNC
+ inline Index cols() const { return m_expression.cols(); }
+ EIGEN_DEVICE_FUNC
+ inline Index outerStride() const { return m_expression.outerStride(); }
+ EIGEN_DEVICE_FUNC
+ inline Index innerStride() const { return m_expression.innerStride(); }
+
+ EIGEN_DEVICE_FUNC
+ inline ScalarWithConstIfNotLvalue* data() { return m_expression.data(); }
+ EIGEN_DEVICE_FUNC
+ inline const Scalar* data() const { return m_expression.data(); }
+
+ EIGEN_DEVICE_FUNC
+ inline const Scalar& coeffRef(Index rowId, Index colId) const
+ {
+ return m_expression.coeffRef(rowId, colId);
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline const Scalar& coeffRef(Index index) const
+ {
+ return m_expression.coeffRef(index);
+ }
+
+ template<typename Dest>
+ EIGEN_DEVICE_FUNC
+ inline void evalTo(Dest& dst) const { dst = m_expression; }
+
+ const typename internal::remove_all<NestedExpressionType>::type&
+ EIGEN_DEVICE_FUNC
+ nestedExpression() const
+ {
+ return m_expression;
+ }
+
+ /** Forwards the resizing request to the nested expression
+ * \sa DenseBase::resize(Index) */
+ EIGEN_DEVICE_FUNC
+ void resize(Index newSize) { m_expression.resize(newSize); }
+ /** Forwards the resizing request to the nested expression
+ * \sa DenseBase::resize(Index,Index)*/
+ EIGEN_DEVICE_FUNC
+ void resize(Index rows, Index cols) { m_expression.resize(rows,cols); }
+
+ protected:
+ NestedExpressionType m_expression;
+};
+
+/** \class MatrixWrapper
+ * \ingroup Core_Module
+ *
+ * \brief Expression of an array as a mathematical vector or matrix
+ *
+ * This class is the return type of ArrayBase::matrix(), and most of the time
+ * this is the only way it is use.
+ *
+ * \sa MatrixBase::matrix(), class ArrayWrapper
+ */
+
+namespace internal {
+template<typename ExpressionType>
+struct traits<MatrixWrapper<ExpressionType> >
+ : public traits<typename remove_all<typename ExpressionType::Nested>::type >
+{
+ typedef MatrixXpr XprKind;
+ // Let's remove NestByRefBit
+ enum {
+ Flags0 = traits<typename remove_all<typename ExpressionType::Nested>::type >::Flags,
+ LvalueBitFlag = is_lvalue<ExpressionType>::value ? LvalueBit : 0,
+ Flags = (Flags0 & ~(NestByRefBit | LvalueBit)) | LvalueBitFlag
+ };
+};
+}
+
+template<typename ExpressionType>
+class MatrixWrapper : public MatrixBase<MatrixWrapper<ExpressionType> >
+{
+ public:
+ typedef MatrixBase<MatrixWrapper<ExpressionType> > Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(MatrixWrapper)
+ EIGEN_INHERIT_ASSIGNMENT_OPERATORS(MatrixWrapper)
+ typedef typename internal::remove_all<ExpressionType>::type NestedExpression;
+
+ typedef typename internal::conditional<
+ internal::is_lvalue<ExpressionType>::value,
+ Scalar,
+ const Scalar
+ >::type ScalarWithConstIfNotLvalue;
+
+ typedef typename internal::ref_selector<ExpressionType>::non_const_type NestedExpressionType;
+
+ using Base::coeffRef;
+
+ EIGEN_DEVICE_FUNC
+ explicit inline MatrixWrapper(ExpressionType& matrix) : m_expression(matrix) {}
+
+ EIGEN_DEVICE_FUNC
+ inline Index rows() const { return m_expression.rows(); }
+ EIGEN_DEVICE_FUNC
+ inline Index cols() const { return m_expression.cols(); }
+ EIGEN_DEVICE_FUNC
+ inline Index outerStride() const { return m_expression.outerStride(); }
+ EIGEN_DEVICE_FUNC
+ inline Index innerStride() const { return m_expression.innerStride(); }
+
+ EIGEN_DEVICE_FUNC
+ inline ScalarWithConstIfNotLvalue* data() { return m_expression.data(); }
+ EIGEN_DEVICE_FUNC
+ inline const Scalar* data() const { return m_expression.data(); }
+
+ EIGEN_DEVICE_FUNC
+ inline const Scalar& coeffRef(Index rowId, Index colId) const
+ {
+ return m_expression.derived().coeffRef(rowId, colId);
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline const Scalar& coeffRef(Index index) const
+ {
+ return m_expression.coeffRef(index);
+ }
+
+ EIGEN_DEVICE_FUNC
+ const typename internal::remove_all<NestedExpressionType>::type&
+ nestedExpression() const
+ {
+ return m_expression;
+ }
+
+ /** Forwards the resizing request to the nested expression
+ * \sa DenseBase::resize(Index) */
+ EIGEN_DEVICE_FUNC
+ void resize(Index newSize) { m_expression.resize(newSize); }
+ /** Forwards the resizing request to the nested expression
+ * \sa DenseBase::resize(Index,Index)*/
+ EIGEN_DEVICE_FUNC
+ void resize(Index rows, Index cols) { m_expression.resize(rows,cols); }
+
+ protected:
+ NestedExpressionType m_expression;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_ARRAYWRAPPER_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Assign.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Assign.h
new file mode 100644
index 000000000..53806ba33
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Assign.h
@@ -0,0 +1,90 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007 Michael Olbrich <michael.olbrich@gmx.net>
+// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ASSIGN_H
+#define EIGEN_ASSIGN_H
+
+namespace Eigen {
+
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived& DenseBase<Derived>
+ ::lazyAssign(const DenseBase<OtherDerived>& other)
+{
+ enum{
+ SameType = internal::is_same<typename Derived::Scalar,typename OtherDerived::Scalar>::value
+ };
+
+ EIGEN_STATIC_ASSERT_LVALUE(Derived)
+ EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Derived,OtherDerived)
+ EIGEN_STATIC_ASSERT(SameType,YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+ eigen_assert(rows() == other.rows() && cols() == other.cols());
+ internal::call_assignment_no_alias(derived(),other.derived());
+
+ return derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::operator=(const DenseBase<OtherDerived>& other)
+{
+ internal::call_assignment(derived(), other.derived());
+ return derived();
+}
+
+template<typename Derived>
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::operator=(const DenseBase& other)
+{
+ internal::call_assignment(derived(), other.derived());
+ return derived();
+}
+
+template<typename Derived>
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const MatrixBase& other)
+{
+ internal::call_assignment(derived(), other.derived());
+ return derived();
+}
+
+template<typename Derived>
+template <typename OtherDerived>
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const DenseBase<OtherDerived>& other)
+{
+ internal::call_assignment(derived(), other.derived());
+ return derived();
+}
+
+template<typename Derived>
+template <typename OtherDerived>
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const EigenBase<OtherDerived>& other)
+{
+ internal::call_assignment(derived(), other.derived());
+ return derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const ReturnByValue<OtherDerived>& other)
+{
+ other.derived().evalTo(derived());
+ return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_ASSIGN_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/AssignEvaluator.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/AssignEvaluator.h
new file mode 100644
index 000000000..b0ec7b7ca
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/AssignEvaluator.h
@@ -0,0 +1,935 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2011-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2011-2012 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ASSIGN_EVALUATOR_H
+#define EIGEN_ASSIGN_EVALUATOR_H
+
+namespace Eigen {
+
+// This implementation is based on Assign.h
+
+namespace internal {
+
+/***************************************************************************
+* Part 1 : the logic deciding a strategy for traversal and unrolling *
+***************************************************************************/
+
+// copy_using_evaluator_traits is based on assign_traits
+
+template <typename DstEvaluator, typename SrcEvaluator, typename AssignFunc>
+struct copy_using_evaluator_traits
+{
+ typedef typename DstEvaluator::XprType Dst;
+ typedef typename Dst::Scalar DstScalar;
+
+ enum {
+ DstFlags = DstEvaluator::Flags,
+ SrcFlags = SrcEvaluator::Flags
+ };
+
+public:
+ enum {
+ DstAlignment = DstEvaluator::Alignment,
+ SrcAlignment = SrcEvaluator::Alignment,
+ DstHasDirectAccess = DstFlags & DirectAccessBit,
+ JointAlignment = EIGEN_PLAIN_ENUM_MIN(DstAlignment,SrcAlignment)
+ };
+
+private:
+ enum {
+ InnerSize = int(Dst::IsVectorAtCompileTime) ? int(Dst::SizeAtCompileTime)
+ : int(DstFlags)&RowMajorBit ? int(Dst::ColsAtCompileTime)
+ : int(Dst::RowsAtCompileTime),
+ InnerMaxSize = int(Dst::IsVectorAtCompileTime) ? int(Dst::MaxSizeAtCompileTime)
+ : int(DstFlags)&RowMajorBit ? int(Dst::MaxColsAtCompileTime)
+ : int(Dst::MaxRowsAtCompileTime),
+ OuterStride = int(outer_stride_at_compile_time<Dst>::ret),
+ MaxSizeAtCompileTime = Dst::SizeAtCompileTime
+ };
+
+ // TODO distinguish between linear traversal and inner-traversals
+ typedef typename find_best_packet<DstScalar,Dst::SizeAtCompileTime>::type LinearPacketType;
+ typedef typename find_best_packet<DstScalar,InnerSize>::type InnerPacketType;
+
+ enum {
+ LinearPacketSize = unpacket_traits<LinearPacketType>::size,
+ InnerPacketSize = unpacket_traits<InnerPacketType>::size
+ };
+
+public:
+ enum {
+ LinearRequiredAlignment = unpacket_traits<LinearPacketType>::alignment,
+ InnerRequiredAlignment = unpacket_traits<InnerPacketType>::alignment
+ };
+
+private:
+ enum {
+ DstIsRowMajor = DstFlags&RowMajorBit,
+ SrcIsRowMajor = SrcFlags&RowMajorBit,
+ StorageOrdersAgree = (int(DstIsRowMajor) == int(SrcIsRowMajor)),
+ MightVectorize = bool(StorageOrdersAgree)
+ && (int(DstFlags) & int(SrcFlags) & ActualPacketAccessBit)
+ && bool(functor_traits<AssignFunc>::PacketAccess),
+ MayInnerVectorize = MightVectorize
+ && int(InnerSize)!=Dynamic && int(InnerSize)%int(InnerPacketSize)==0
+ && int(OuterStride)!=Dynamic && int(OuterStride)%int(InnerPacketSize)==0
+ && (EIGEN_UNALIGNED_VECTORIZE || int(JointAlignment)>=int(InnerRequiredAlignment)),
+ MayLinearize = bool(StorageOrdersAgree) && (int(DstFlags) & int(SrcFlags) & LinearAccessBit),
+ MayLinearVectorize = bool(MightVectorize) && MayLinearize && DstHasDirectAccess
+ && (EIGEN_UNALIGNED_VECTORIZE || (int(DstAlignment)>=int(LinearRequiredAlignment)) || MaxSizeAtCompileTime == Dynamic),
+ /* If the destination isn't aligned, we have to do runtime checks and we don't unroll,
+ so it's only good for large enough sizes. */
+ MaySliceVectorize = bool(MightVectorize) && bool(DstHasDirectAccess)
+ && (int(InnerMaxSize)==Dynamic || int(InnerMaxSize)>=(EIGEN_UNALIGNED_VECTORIZE?InnerPacketSize:(3*InnerPacketSize)))
+ /* slice vectorization can be slow, so we only want it if the slices are big, which is
+ indicated by InnerMaxSize rather than InnerSize, think of the case of a dynamic block
+ in a fixed-size matrix
+ However, with EIGEN_UNALIGNED_VECTORIZE and unrolling, slice vectorization is still worth it */
+ };
+
+public:
+ enum {
+ Traversal = int(MayLinearVectorize) && (LinearPacketSize>InnerPacketSize) ? int(LinearVectorizedTraversal)
+ : int(MayInnerVectorize) ? int(InnerVectorizedTraversal)
+ : int(MayLinearVectorize) ? int(LinearVectorizedTraversal)
+ : int(MaySliceVectorize) ? int(SliceVectorizedTraversal)
+ : int(MayLinearize) ? int(LinearTraversal)
+ : int(DefaultTraversal),
+ Vectorized = int(Traversal) == InnerVectorizedTraversal
+ || int(Traversal) == LinearVectorizedTraversal
+ || int(Traversal) == SliceVectorizedTraversal
+ };
+
+ typedef typename conditional<int(Traversal)==LinearVectorizedTraversal, LinearPacketType, InnerPacketType>::type PacketType;
+
+private:
+ enum {
+ ActualPacketSize = int(Traversal)==LinearVectorizedTraversal ? LinearPacketSize
+ : Vectorized ? InnerPacketSize
+ : 1,
+ UnrollingLimit = EIGEN_UNROLLING_LIMIT * ActualPacketSize,
+ MayUnrollCompletely = int(Dst::SizeAtCompileTime) != Dynamic
+ && int(Dst::SizeAtCompileTime) * (int(DstEvaluator::CoeffReadCost)+int(SrcEvaluator::CoeffReadCost)) <= int(UnrollingLimit),
+ MayUnrollInner = int(InnerSize) != Dynamic
+ && int(InnerSize) * (int(DstEvaluator::CoeffReadCost)+int(SrcEvaluator::CoeffReadCost)) <= int(UnrollingLimit)
+ };
+
+public:
+ enum {
+ Unrolling = (int(Traversal) == int(InnerVectorizedTraversal) || int(Traversal) == int(DefaultTraversal))
+ ? (
+ int(MayUnrollCompletely) ? int(CompleteUnrolling)
+ : int(MayUnrollInner) ? int(InnerUnrolling)
+ : int(NoUnrolling)
+ )
+ : int(Traversal) == int(LinearVectorizedTraversal)
+ ? ( bool(MayUnrollCompletely) && ( EIGEN_UNALIGNED_VECTORIZE || (int(DstAlignment)>=int(LinearRequiredAlignment)))
+ ? int(CompleteUnrolling)
+ : int(NoUnrolling) )
+ : int(Traversal) == int(LinearTraversal)
+ ? ( bool(MayUnrollCompletely) ? int(CompleteUnrolling)
+ : int(NoUnrolling) )
+#if EIGEN_UNALIGNED_VECTORIZE
+ : int(Traversal) == int(SliceVectorizedTraversal)
+ ? ( bool(MayUnrollInner) ? int(InnerUnrolling)
+ : int(NoUnrolling) )
+#endif
+ : int(NoUnrolling)
+ };
+
+#ifdef EIGEN_DEBUG_ASSIGN
+ static void debug()
+ {
+ std::cerr << "DstXpr: " << typeid(typename DstEvaluator::XprType).name() << std::endl;
+ std::cerr << "SrcXpr: " << typeid(typename SrcEvaluator::XprType).name() << std::endl;
+ std::cerr.setf(std::ios::hex, std::ios::basefield);
+ std::cerr << "DstFlags" << " = " << DstFlags << " (" << demangle_flags(DstFlags) << " )" << std::endl;
+ std::cerr << "SrcFlags" << " = " << SrcFlags << " (" << demangle_flags(SrcFlags) << " )" << std::endl;
+ std::cerr.unsetf(std::ios::hex);
+ EIGEN_DEBUG_VAR(DstAlignment)
+ EIGEN_DEBUG_VAR(SrcAlignment)
+ EIGEN_DEBUG_VAR(LinearRequiredAlignment)
+ EIGEN_DEBUG_VAR(InnerRequiredAlignment)
+ EIGEN_DEBUG_VAR(JointAlignment)
+ EIGEN_DEBUG_VAR(InnerSize)
+ EIGEN_DEBUG_VAR(InnerMaxSize)
+ EIGEN_DEBUG_VAR(LinearPacketSize)
+ EIGEN_DEBUG_VAR(InnerPacketSize)
+ EIGEN_DEBUG_VAR(ActualPacketSize)
+ EIGEN_DEBUG_VAR(StorageOrdersAgree)
+ EIGEN_DEBUG_VAR(MightVectorize)
+ EIGEN_DEBUG_VAR(MayLinearize)
+ EIGEN_DEBUG_VAR(MayInnerVectorize)
+ EIGEN_DEBUG_VAR(MayLinearVectorize)
+ EIGEN_DEBUG_VAR(MaySliceVectorize)
+ std::cerr << "Traversal" << " = " << Traversal << " (" << demangle_traversal(Traversal) << ")" << std::endl;
+ EIGEN_DEBUG_VAR(SrcEvaluator::CoeffReadCost)
+ EIGEN_DEBUG_VAR(UnrollingLimit)
+ EIGEN_DEBUG_VAR(MayUnrollCompletely)
+ EIGEN_DEBUG_VAR(MayUnrollInner)
+ std::cerr << "Unrolling" << " = " << Unrolling << " (" << demangle_unrolling(Unrolling) << ")" << std::endl;
+ std::cerr << std::endl;
+ }
+#endif
+};
+
+/***************************************************************************
+* Part 2 : meta-unrollers
+***************************************************************************/
+
+/************************
+*** Default traversal ***
+************************/
+
+template<typename Kernel, int Index, int Stop>
+struct copy_using_evaluator_DefaultTraversal_CompleteUnrolling
+{
+ // FIXME: this is not very clean, perhaps this information should be provided by the kernel?
+ typedef typename Kernel::DstEvaluatorType DstEvaluatorType;
+ typedef typename DstEvaluatorType::XprType DstXprType;
+
+ enum {
+ outer = Index / DstXprType::InnerSizeAtCompileTime,
+ inner = Index % DstXprType::InnerSizeAtCompileTime
+ };
+
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel &kernel)
+ {
+ kernel.assignCoeffByOuterInner(outer, inner);
+ copy_using_evaluator_DefaultTraversal_CompleteUnrolling<Kernel, Index+1, Stop>::run(kernel);
+ }
+};
+
+template<typename Kernel, int Stop>
+struct copy_using_evaluator_DefaultTraversal_CompleteUnrolling<Kernel, Stop, Stop>
+{
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel&) { }
+};
+
+template<typename Kernel, int Index_, int Stop>
+struct copy_using_evaluator_DefaultTraversal_InnerUnrolling
+{
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel &kernel, Index outer)
+ {
+ kernel.assignCoeffByOuterInner(outer, Index_);
+ copy_using_evaluator_DefaultTraversal_InnerUnrolling<Kernel, Index_+1, Stop>::run(kernel, outer);
+ }
+};
+
+template<typename Kernel, int Stop>
+struct copy_using_evaluator_DefaultTraversal_InnerUnrolling<Kernel, Stop, Stop>
+{
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel&, Index) { }
+};
+
+/***********************
+*** Linear traversal ***
+***********************/
+
+template<typename Kernel, int Index, int Stop>
+struct copy_using_evaluator_LinearTraversal_CompleteUnrolling
+{
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel& kernel)
+ {
+ kernel.assignCoeff(Index);
+ copy_using_evaluator_LinearTraversal_CompleteUnrolling<Kernel, Index+1, Stop>::run(kernel);
+ }
+};
+
+template<typename Kernel, int Stop>
+struct copy_using_evaluator_LinearTraversal_CompleteUnrolling<Kernel, Stop, Stop>
+{
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel&) { }
+};
+
+/**************************
+*** Inner vectorization ***
+**************************/
+
+template<typename Kernel, int Index, int Stop>
+struct copy_using_evaluator_innervec_CompleteUnrolling
+{
+ // FIXME: this is not very clean, perhaps this information should be provided by the kernel?
+ typedef typename Kernel::DstEvaluatorType DstEvaluatorType;
+ typedef typename DstEvaluatorType::XprType DstXprType;
+ typedef typename Kernel::PacketType PacketType;
+
+ enum {
+ outer = Index / DstXprType::InnerSizeAtCompileTime,
+ inner = Index % DstXprType::InnerSizeAtCompileTime,
+ SrcAlignment = Kernel::AssignmentTraits::SrcAlignment,
+ DstAlignment = Kernel::AssignmentTraits::DstAlignment
+ };
+
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel &kernel)
+ {
+ kernel.template assignPacketByOuterInner<DstAlignment, SrcAlignment, PacketType>(outer, inner);
+ enum { NextIndex = Index + unpacket_traits<PacketType>::size };
+ copy_using_evaluator_innervec_CompleteUnrolling<Kernel, NextIndex, Stop>::run(kernel);
+ }
+};
+
+template<typename Kernel, int Stop>
+struct copy_using_evaluator_innervec_CompleteUnrolling<Kernel, Stop, Stop>
+{
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel&) { }
+};
+
+template<typename Kernel, int Index_, int Stop, int SrcAlignment, int DstAlignment>
+struct copy_using_evaluator_innervec_InnerUnrolling
+{
+ typedef typename Kernel::PacketType PacketType;
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel &kernel, Index outer)
+ {
+ kernel.template assignPacketByOuterInner<DstAlignment, SrcAlignment, PacketType>(outer, Index_);
+ enum { NextIndex = Index_ + unpacket_traits<PacketType>::size };
+ copy_using_evaluator_innervec_InnerUnrolling<Kernel, NextIndex, Stop, SrcAlignment, DstAlignment>::run(kernel, outer);
+ }
+};
+
+template<typename Kernel, int Stop, int SrcAlignment, int DstAlignment>
+struct copy_using_evaluator_innervec_InnerUnrolling<Kernel, Stop, Stop, SrcAlignment, DstAlignment>
+{
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel &, Index) { }
+};
+
+/***************************************************************************
+* Part 3 : implementation of all cases
+***************************************************************************/
+
+// dense_assignment_loop is based on assign_impl
+
+template<typename Kernel,
+ int Traversal = Kernel::AssignmentTraits::Traversal,
+ int Unrolling = Kernel::AssignmentTraits::Unrolling>
+struct dense_assignment_loop;
+
+/************************
+*** Default traversal ***
+************************/
+
+template<typename Kernel>
+struct dense_assignment_loop<Kernel, DefaultTraversal, NoUnrolling>
+{
+ EIGEN_DEVICE_FUNC static void EIGEN_STRONG_INLINE run(Kernel &kernel)
+ {
+ for(Index outer = 0; outer < kernel.outerSize(); ++outer) {
+ for(Index inner = 0; inner < kernel.innerSize(); ++inner) {
+ kernel.assignCoeffByOuterInner(outer, inner);
+ }
+ }
+ }
+};
+
+template<typename Kernel>
+struct dense_assignment_loop<Kernel, DefaultTraversal, CompleteUnrolling>
+{
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel &kernel)
+ {
+ typedef typename Kernel::DstEvaluatorType::XprType DstXprType;
+ copy_using_evaluator_DefaultTraversal_CompleteUnrolling<Kernel, 0, DstXprType::SizeAtCompileTime>::run(kernel);
+ }
+};
+
+template<typename Kernel>
+struct dense_assignment_loop<Kernel, DefaultTraversal, InnerUnrolling>
+{
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel &kernel)
+ {
+ typedef typename Kernel::DstEvaluatorType::XprType DstXprType;
+
+ const Index outerSize = kernel.outerSize();
+ for(Index outer = 0; outer < outerSize; ++outer)
+ copy_using_evaluator_DefaultTraversal_InnerUnrolling<Kernel, 0, DstXprType::InnerSizeAtCompileTime>::run(kernel, outer);
+ }
+};
+
+/***************************
+*** Linear vectorization ***
+***************************/
+
+
+// The goal of unaligned_dense_assignment_loop is simply to factorize the handling
+// of the non vectorizable beginning and ending parts
+
+template <bool IsAligned = false>
+struct unaligned_dense_assignment_loop
+{
+ // if IsAligned = true, then do nothing
+ template <typename Kernel>
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel&, Index, Index) {}
+};
+
+template <>
+struct unaligned_dense_assignment_loop<false>
+{
+ // MSVC must not inline this functions. If it does, it fails to optimize the
+ // packet access path.
+ // FIXME check which version exhibits this issue
+#if EIGEN_COMP_MSVC
+ template <typename Kernel>
+ static EIGEN_DONT_INLINE void run(Kernel &kernel,
+ Index start,
+ Index end)
+#else
+ template <typename Kernel>
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel &kernel,
+ Index start,
+ Index end)
+#endif
+ {
+ for (Index index = start; index < end; ++index)
+ kernel.assignCoeff(index);
+ }
+};
+
+template<typename Kernel>
+struct dense_assignment_loop<Kernel, LinearVectorizedTraversal, NoUnrolling>
+{
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel &kernel)
+ {
+ const Index size = kernel.size();
+ typedef typename Kernel::Scalar Scalar;
+ typedef typename Kernel::PacketType PacketType;
+ enum {
+ requestedAlignment = Kernel::AssignmentTraits::LinearRequiredAlignment,
+ packetSize = unpacket_traits<PacketType>::size,
+ dstIsAligned = int(Kernel::AssignmentTraits::DstAlignment)>=int(requestedAlignment),
+ dstAlignment = packet_traits<Scalar>::AlignedOnScalar ? int(requestedAlignment)
+ : int(Kernel::AssignmentTraits::DstAlignment),
+ srcAlignment = Kernel::AssignmentTraits::JointAlignment
+ };
+ const Index alignedStart = dstIsAligned ? 0 : internal::first_aligned<requestedAlignment>(kernel.dstDataPtr(), size);
+ const Index alignedEnd = alignedStart + ((size-alignedStart)/packetSize)*packetSize;
+
+ unaligned_dense_assignment_loop<dstIsAligned!=0>::run(kernel, 0, alignedStart);
+
+ for(Index index = alignedStart; index < alignedEnd; index += packetSize)
+ kernel.template assignPacket<dstAlignment, srcAlignment, PacketType>(index);
+
+ unaligned_dense_assignment_loop<>::run(kernel, alignedEnd, size);
+ }
+};
+
+template<typename Kernel>
+struct dense_assignment_loop<Kernel, LinearVectorizedTraversal, CompleteUnrolling>
+{
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel &kernel)
+ {
+ typedef typename Kernel::DstEvaluatorType::XprType DstXprType;
+ typedef typename Kernel::PacketType PacketType;
+
+ enum { size = DstXprType::SizeAtCompileTime,
+ packetSize =unpacket_traits<PacketType>::size,
+ alignedSize = (size/packetSize)*packetSize };
+
+ copy_using_evaluator_innervec_CompleteUnrolling<Kernel, 0, alignedSize>::run(kernel);
+ copy_using_evaluator_DefaultTraversal_CompleteUnrolling<Kernel, alignedSize, size>::run(kernel);
+ }
+};
+
+/**************************
+*** Inner vectorization ***
+**************************/
+
+template<typename Kernel>
+struct dense_assignment_loop<Kernel, InnerVectorizedTraversal, NoUnrolling>
+{
+ typedef typename Kernel::PacketType PacketType;
+ enum {
+ SrcAlignment = Kernel::AssignmentTraits::SrcAlignment,
+ DstAlignment = Kernel::AssignmentTraits::DstAlignment
+ };
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel &kernel)
+ {
+ const Index innerSize = kernel.innerSize();
+ const Index outerSize = kernel.outerSize();
+ const Index packetSize = unpacket_traits<PacketType>::size;
+ for(Index outer = 0; outer < outerSize; ++outer)
+ for(Index inner = 0; inner < innerSize; inner+=packetSize)
+ kernel.template assignPacketByOuterInner<DstAlignment, SrcAlignment, PacketType>(outer, inner);
+ }
+};
+
+template<typename Kernel>
+struct dense_assignment_loop<Kernel, InnerVectorizedTraversal, CompleteUnrolling>
+{
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel &kernel)
+ {
+ typedef typename Kernel::DstEvaluatorType::XprType DstXprType;
+ copy_using_evaluator_innervec_CompleteUnrolling<Kernel, 0, DstXprType::SizeAtCompileTime>::run(kernel);
+ }
+};
+
+template<typename Kernel>
+struct dense_assignment_loop<Kernel, InnerVectorizedTraversal, InnerUnrolling>
+{
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel &kernel)
+ {
+ typedef typename Kernel::DstEvaluatorType::XprType DstXprType;
+ typedef typename Kernel::AssignmentTraits Traits;
+ const Index outerSize = kernel.outerSize();
+ for(Index outer = 0; outer < outerSize; ++outer)
+ copy_using_evaluator_innervec_InnerUnrolling<Kernel, 0, DstXprType::InnerSizeAtCompileTime,
+ Traits::SrcAlignment, Traits::DstAlignment>::run(kernel, outer);
+ }
+};
+
+/***********************
+*** Linear traversal ***
+***********************/
+
+template<typename Kernel>
+struct dense_assignment_loop<Kernel, LinearTraversal, NoUnrolling>
+{
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel &kernel)
+ {
+ const Index size = kernel.size();
+ for(Index i = 0; i < size; ++i)
+ kernel.assignCoeff(i);
+ }
+};
+
+template<typename Kernel>
+struct dense_assignment_loop<Kernel, LinearTraversal, CompleteUnrolling>
+{
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel &kernel)
+ {
+ typedef typename Kernel::DstEvaluatorType::XprType DstXprType;
+ copy_using_evaluator_LinearTraversal_CompleteUnrolling<Kernel, 0, DstXprType::SizeAtCompileTime>::run(kernel);
+ }
+};
+
+/**************************
+*** Slice vectorization ***
+***************************/
+
+template<typename Kernel>
+struct dense_assignment_loop<Kernel, SliceVectorizedTraversal, NoUnrolling>
+{
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel &kernel)
+ {
+ typedef typename Kernel::Scalar Scalar;
+ typedef typename Kernel::PacketType PacketType;
+ enum {
+ packetSize = unpacket_traits<PacketType>::size,
+ requestedAlignment = int(Kernel::AssignmentTraits::InnerRequiredAlignment),
+ alignable = packet_traits<Scalar>::AlignedOnScalar || int(Kernel::AssignmentTraits::DstAlignment)>=sizeof(Scalar),
+ dstIsAligned = int(Kernel::AssignmentTraits::DstAlignment)>=int(requestedAlignment),
+ dstAlignment = alignable ? int(requestedAlignment)
+ : int(Kernel::AssignmentTraits::DstAlignment)
+ };
+ const Scalar *dst_ptr = kernel.dstDataPtr();
+ if((!bool(dstIsAligned)) && (UIntPtr(dst_ptr) % sizeof(Scalar))>0)
+ {
+ // the pointer is not aligend-on scalar, so alignment is not possible
+ return dense_assignment_loop<Kernel,DefaultTraversal,NoUnrolling>::run(kernel);
+ }
+ const Index packetAlignedMask = packetSize - 1;
+ const Index innerSize = kernel.innerSize();
+ const Index outerSize = kernel.outerSize();
+ const Index alignedStep = alignable ? (packetSize - kernel.outerStride() % packetSize) & packetAlignedMask : 0;
+ Index alignedStart = ((!alignable) || bool(dstIsAligned)) ? 0 : internal::first_aligned<requestedAlignment>(dst_ptr, innerSize);
+
+ for(Index outer = 0; outer < outerSize; ++outer)
+ {
+ const Index alignedEnd = alignedStart + ((innerSize-alignedStart) & ~packetAlignedMask);
+ // do the non-vectorizable part of the assignment
+ for(Index inner = 0; inner<alignedStart ; ++inner)
+ kernel.assignCoeffByOuterInner(outer, inner);
+
+ // do the vectorizable part of the assignment
+ for(Index inner = alignedStart; inner<alignedEnd; inner+=packetSize)
+ kernel.template assignPacketByOuterInner<dstAlignment, Unaligned, PacketType>(outer, inner);
+
+ // do the non-vectorizable part of the assignment
+ for(Index inner = alignedEnd; inner<innerSize ; ++inner)
+ kernel.assignCoeffByOuterInner(outer, inner);
+
+ alignedStart = numext::mini((alignedStart+alignedStep)%packetSize, innerSize);
+ }
+ }
+};
+
+#if EIGEN_UNALIGNED_VECTORIZE
+template<typename Kernel>
+struct dense_assignment_loop<Kernel, SliceVectorizedTraversal, InnerUnrolling>
+{
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void run(Kernel &kernel)
+ {
+ typedef typename Kernel::DstEvaluatorType::XprType DstXprType;
+ typedef typename Kernel::PacketType PacketType;
+
+ enum { size = DstXprType::InnerSizeAtCompileTime,
+ packetSize =unpacket_traits<PacketType>::size,
+ vectorizableSize = (size/packetSize)*packetSize };
+
+ for(Index outer = 0; outer < kernel.outerSize(); ++outer)
+ {
+ copy_using_evaluator_innervec_InnerUnrolling<Kernel, 0, vectorizableSize, 0, 0>::run(kernel, outer);
+ copy_using_evaluator_DefaultTraversal_InnerUnrolling<Kernel, vectorizableSize, size>::run(kernel, outer);
+ }
+ }
+};
+#endif
+
+
+/***************************************************************************
+* Part 4 : Generic dense assignment kernel
+***************************************************************************/
+
+// This class generalize the assignment of a coefficient (or packet) from one dense evaluator
+// to another dense writable evaluator.
+// It is parametrized by the two evaluators, and the actual assignment functor.
+// This abstraction level permits to keep the evaluation loops as simple and as generic as possible.
+// One can customize the assignment using this generic dense_assignment_kernel with different
+// functors, or by completely overloading it, by-passing a functor.
+template<typename DstEvaluatorTypeT, typename SrcEvaluatorTypeT, typename Functor, int Version = Specialized>
+class generic_dense_assignment_kernel
+{
+protected:
+ typedef typename DstEvaluatorTypeT::XprType DstXprType;
+ typedef typename SrcEvaluatorTypeT::XprType SrcXprType;
+public:
+
+ typedef DstEvaluatorTypeT DstEvaluatorType;
+ typedef SrcEvaluatorTypeT SrcEvaluatorType;
+ typedef typename DstEvaluatorType::Scalar Scalar;
+ typedef copy_using_evaluator_traits<DstEvaluatorTypeT, SrcEvaluatorTypeT, Functor> AssignmentTraits;
+ typedef typename AssignmentTraits::PacketType PacketType;
+
+
+ EIGEN_DEVICE_FUNC generic_dense_assignment_kernel(DstEvaluatorType &dst, const SrcEvaluatorType &src, const Functor &func, DstXprType& dstExpr)
+ : m_dst(dst), m_src(src), m_functor(func), m_dstExpr(dstExpr)
+ {
+ #ifdef EIGEN_DEBUG_ASSIGN
+ AssignmentTraits::debug();
+ #endif
+ }
+
+ EIGEN_DEVICE_FUNC Index size() const { return m_dstExpr.size(); }
+ EIGEN_DEVICE_FUNC Index innerSize() const { return m_dstExpr.innerSize(); }
+ EIGEN_DEVICE_FUNC Index outerSize() const { return m_dstExpr.outerSize(); }
+ EIGEN_DEVICE_FUNC Index rows() const { return m_dstExpr.rows(); }
+ EIGEN_DEVICE_FUNC Index cols() const { return m_dstExpr.cols(); }
+ EIGEN_DEVICE_FUNC Index outerStride() const { return m_dstExpr.outerStride(); }
+
+ EIGEN_DEVICE_FUNC DstEvaluatorType& dstEvaluator() { return m_dst; }
+ EIGEN_DEVICE_FUNC const SrcEvaluatorType& srcEvaluator() const { return m_src; }
+
+ /// Assign src(row,col) to dst(row,col) through the assignment functor.
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void assignCoeff(Index row, Index col)
+ {
+ m_functor.assignCoeff(m_dst.coeffRef(row,col), m_src.coeff(row,col));
+ }
+
+ /// \sa assignCoeff(Index,Index)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void assignCoeff(Index index)
+ {
+ m_functor.assignCoeff(m_dst.coeffRef(index), m_src.coeff(index));
+ }
+
+ /// \sa assignCoeff(Index,Index)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void assignCoeffByOuterInner(Index outer, Index inner)
+ {
+ Index row = rowIndexByOuterInner(outer, inner);
+ Index col = colIndexByOuterInner(outer, inner);
+ assignCoeff(row, col);
+ }
+
+
+ template<int StoreMode, int LoadMode, typename PacketType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void assignPacket(Index row, Index col)
+ {
+ m_functor.template assignPacket<StoreMode>(&m_dst.coeffRef(row,col), m_src.template packet<LoadMode,PacketType>(row,col));
+ }
+
+ template<int StoreMode, int LoadMode, typename PacketType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void assignPacket(Index index)
+ {
+ m_functor.template assignPacket<StoreMode>(&m_dst.coeffRef(index), m_src.template packet<LoadMode,PacketType>(index));
+ }
+
+ template<int StoreMode, int LoadMode, typename PacketType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void assignPacketByOuterInner(Index outer, Index inner)
+ {
+ Index row = rowIndexByOuterInner(outer, inner);
+ Index col = colIndexByOuterInner(outer, inner);
+ assignPacket<StoreMode,LoadMode,PacketType>(row, col);
+ }
+
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE Index rowIndexByOuterInner(Index outer, Index inner)
+ {
+ typedef typename DstEvaluatorType::ExpressionTraits Traits;
+ return int(Traits::RowsAtCompileTime) == 1 ? 0
+ : int(Traits::ColsAtCompileTime) == 1 ? inner
+ : int(DstEvaluatorType::Flags)&RowMajorBit ? outer
+ : inner;
+ }
+
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE Index colIndexByOuterInner(Index outer, Index inner)
+ {
+ typedef typename DstEvaluatorType::ExpressionTraits Traits;
+ return int(Traits::ColsAtCompileTime) == 1 ? 0
+ : int(Traits::RowsAtCompileTime) == 1 ? inner
+ : int(DstEvaluatorType::Flags)&RowMajorBit ? inner
+ : outer;
+ }
+
+ EIGEN_DEVICE_FUNC const Scalar* dstDataPtr() const
+ {
+ return m_dstExpr.data();
+ }
+
+protected:
+ DstEvaluatorType& m_dst;
+ const SrcEvaluatorType& m_src;
+ const Functor &m_functor;
+ // TODO find a way to avoid the needs of the original expression
+ DstXprType& m_dstExpr;
+};
+
+/***************************************************************************
+* Part 5 : Entry point for dense rectangular assignment
+***************************************************************************/
+
+template<typename DstXprType,typename SrcXprType, typename Functor>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+void resize_if_allowed(DstXprType &dst, const SrcXprType& src, const Functor &/*func*/)
+{
+ EIGEN_ONLY_USED_FOR_DEBUG(dst);
+ EIGEN_ONLY_USED_FOR_DEBUG(src);
+ eigen_assert(dst.rows() == src.rows() && dst.cols() == src.cols());
+}
+
+template<typename DstXprType,typename SrcXprType, typename T1, typename T2>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+void resize_if_allowed(DstXprType &dst, const SrcXprType& src, const internal::assign_op<T1,T2> &/*func*/)
+{
+ Index dstRows = src.rows();
+ Index dstCols = src.cols();
+ if(((dst.rows()!=dstRows) || (dst.cols()!=dstCols)))
+ dst.resize(dstRows, dstCols);
+ eigen_assert(dst.rows() == dstRows && dst.cols() == dstCols);
+}
+
+template<typename DstXprType, typename SrcXprType, typename Functor>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void call_dense_assignment_loop(DstXprType& dst, const SrcXprType& src, const Functor &func)
+{
+ typedef evaluator<DstXprType> DstEvaluatorType;
+ typedef evaluator<SrcXprType> SrcEvaluatorType;
+
+ SrcEvaluatorType srcEvaluator(src);
+
+ // NOTE To properly handle A = (A*A.transpose())/s with A rectangular,
+ // we need to resize the destination after the source evaluator has been created.
+ resize_if_allowed(dst, src, func);
+
+ DstEvaluatorType dstEvaluator(dst);
+
+ typedef generic_dense_assignment_kernel<DstEvaluatorType,SrcEvaluatorType,Functor> Kernel;
+ Kernel kernel(dstEvaluator, srcEvaluator, func, dst.const_cast_derived());
+
+ dense_assignment_loop<Kernel>::run(kernel);
+}
+
+template<typename DstXprType, typename SrcXprType>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void call_dense_assignment_loop(DstXprType& dst, const SrcXprType& src)
+{
+ call_dense_assignment_loop(dst, src, internal::assign_op<typename DstXprType::Scalar,typename SrcXprType::Scalar>());
+}
+
+/***************************************************************************
+* Part 6 : Generic assignment
+***************************************************************************/
+
+// Based on the respective shapes of the destination and source,
+// the class AssignmentKind determine the kind of assignment mechanism.
+// AssignmentKind must define a Kind typedef.
+template<typename DstShape, typename SrcShape> struct AssignmentKind;
+
+// Assignement kind defined in this file:
+struct Dense2Dense {};
+struct EigenBase2EigenBase {};
+
+template<typename,typename> struct AssignmentKind { typedef EigenBase2EigenBase Kind; };
+template<> struct AssignmentKind<DenseShape,DenseShape> { typedef Dense2Dense Kind; };
+
+// This is the main assignment class
+template< typename DstXprType, typename SrcXprType, typename Functor,
+ typename Kind = typename AssignmentKind< typename evaluator_traits<DstXprType>::Shape , typename evaluator_traits<SrcXprType>::Shape >::Kind,
+ typename EnableIf = void>
+struct Assignment;
+
+
+// The only purpose of this call_assignment() function is to deal with noalias() / "assume-aliasing" and automatic transposition.
+// Indeed, I (Gael) think that this concept of "assume-aliasing" was a mistake, and it makes thing quite complicated.
+// So this intermediate function removes everything related to "assume-aliasing" such that Assignment
+// does not has to bother about these annoying details.
+
+template<typename Dst, typename Src>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+void call_assignment(Dst& dst, const Src& src)
+{
+ call_assignment(dst, src, internal::assign_op<typename Dst::Scalar,typename Src::Scalar>());
+}
+template<typename Dst, typename Src>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+void call_assignment(const Dst& dst, const Src& src)
+{
+ call_assignment(dst, src, internal::assign_op<typename Dst::Scalar,typename Src::Scalar>());
+}
+
+// Deal with "assume-aliasing"
+template<typename Dst, typename Src, typename Func>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+void call_assignment(Dst& dst, const Src& src, const Func& func, typename enable_if< evaluator_assume_aliasing<Src>::value, void*>::type = 0)
+{
+ typename plain_matrix_type<Src>::type tmp(src);
+ call_assignment_no_alias(dst, tmp, func);
+}
+
+template<typename Dst, typename Src, typename Func>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+void call_assignment(Dst& dst, const Src& src, const Func& func, typename enable_if<!evaluator_assume_aliasing<Src>::value, void*>::type = 0)
+{
+ call_assignment_no_alias(dst, src, func);
+}
+
+// by-pass "assume-aliasing"
+// When there is no aliasing, we require that 'dst' has been properly resized
+template<typename Dst, template <typename> class StorageBase, typename Src, typename Func>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+void call_assignment(NoAlias<Dst,StorageBase>& dst, const Src& src, const Func& func)
+{
+ call_assignment_no_alias(dst.expression(), src, func);
+}
+
+
+template<typename Dst, typename Src, typename Func>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+void call_assignment_no_alias(Dst& dst, const Src& src, const Func& func)
+{
+ enum {
+ NeedToTranspose = ( (int(Dst::RowsAtCompileTime) == 1 && int(Src::ColsAtCompileTime) == 1)
+ || (int(Dst::ColsAtCompileTime) == 1 && int(Src::RowsAtCompileTime) == 1)
+ ) && int(Dst::SizeAtCompileTime) != 1
+ };
+
+ typedef typename internal::conditional<NeedToTranspose, Transpose<Dst>, Dst>::type ActualDstTypeCleaned;
+ typedef typename internal::conditional<NeedToTranspose, Transpose<Dst>, Dst&>::type ActualDstType;
+ ActualDstType actualDst(dst);
+
+ // TODO check whether this is the right place to perform these checks:
+ EIGEN_STATIC_ASSERT_LVALUE(Dst)
+ EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(ActualDstTypeCleaned,Src)
+ EIGEN_CHECK_BINARY_COMPATIBILIY(Func,typename ActualDstTypeCleaned::Scalar,typename Src::Scalar);
+
+ Assignment<ActualDstTypeCleaned,Src,Func>::run(actualDst, src, func);
+}
+template<typename Dst, typename Src>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+void call_assignment_no_alias(Dst& dst, const Src& src)
+{
+ call_assignment_no_alias(dst, src, internal::assign_op<typename Dst::Scalar,typename Src::Scalar>());
+}
+
+template<typename Dst, typename Src, typename Func>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+void call_assignment_no_alias_no_transpose(Dst& dst, const Src& src, const Func& func)
+{
+ // TODO check whether this is the right place to perform these checks:
+ EIGEN_STATIC_ASSERT_LVALUE(Dst)
+ EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Dst,Src)
+ EIGEN_CHECK_BINARY_COMPATIBILIY(Func,typename Dst::Scalar,typename Src::Scalar);
+
+ Assignment<Dst,Src,Func>::run(dst, src, func);
+}
+template<typename Dst, typename Src>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+void call_assignment_no_alias_no_transpose(Dst& dst, const Src& src)
+{
+ call_assignment_no_alias_no_transpose(dst, src, internal::assign_op<typename Dst::Scalar,typename Src::Scalar>());
+}
+
+// forward declaration
+template<typename Dst, typename Src> void check_for_aliasing(const Dst &dst, const Src &src);
+
+// Generic Dense to Dense assignment
+// Note that the last template argument "Weak" is needed to make it possible to perform
+// both partial specialization+SFINAE without ambiguous specialization
+template< typename DstXprType, typename SrcXprType, typename Functor, typename Weak>
+struct Assignment<DstXprType, SrcXprType, Functor, Dense2Dense, Weak>
+{
+ EIGEN_DEVICE_FUNC
+ static EIGEN_STRONG_INLINE void run(DstXprType &dst, const SrcXprType &src, const Functor &func)
+ {
+#ifndef EIGEN_NO_DEBUG
+ internal::check_for_aliasing(dst, src);
+#endif
+
+ call_dense_assignment_loop(dst, src, func);
+ }
+};
+
+// Generic assignment through evalTo.
+// TODO: not sure we have to keep that one, but it helps porting current code to new evaluator mechanism.
+// Note that the last template argument "Weak" is needed to make it possible to perform
+// both partial specialization+SFINAE without ambiguous specialization
+template< typename DstXprType, typename SrcXprType, typename Functor, typename Weak>
+struct Assignment<DstXprType, SrcXprType, Functor, EigenBase2EigenBase, Weak>
+{
+ EIGEN_DEVICE_FUNC
+ static EIGEN_STRONG_INLINE void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<typename DstXprType::Scalar,typename SrcXprType::Scalar> &/*func*/)
+ {
+ Index dstRows = src.rows();
+ Index dstCols = src.cols();
+ if((dst.rows()!=dstRows) || (dst.cols()!=dstCols))
+ dst.resize(dstRows, dstCols);
+
+ eigen_assert(dst.rows() == src.rows() && dst.cols() == src.cols());
+ src.evalTo(dst);
+ }
+
+ // NOTE The following two functions are templated to avoid their instanciation if not needed
+ // This is needed because some expressions supports evalTo only and/or have 'void' as scalar type.
+ template<typename SrcScalarType>
+ EIGEN_DEVICE_FUNC
+ static EIGEN_STRONG_INLINE void run(DstXprType &dst, const SrcXprType &src, const internal::add_assign_op<typename DstXprType::Scalar,SrcScalarType> &/*func*/)
+ {
+ Index dstRows = src.rows();
+ Index dstCols = src.cols();
+ if((dst.rows()!=dstRows) || (dst.cols()!=dstCols))
+ dst.resize(dstRows, dstCols);
+
+ eigen_assert(dst.rows() == src.rows() && dst.cols() == src.cols());
+ src.addTo(dst);
+ }
+
+ template<typename SrcScalarType>
+ EIGEN_DEVICE_FUNC
+ static EIGEN_STRONG_INLINE void run(DstXprType &dst, const SrcXprType &src, const internal::sub_assign_op<typename DstXprType::Scalar,SrcScalarType> &/*func*/)
+ {
+ Index dstRows = src.rows();
+ Index dstCols = src.cols();
+ if((dst.rows()!=dstRows) || (dst.cols()!=dstCols))
+ dst.resize(dstRows, dstCols);
+
+ eigen_assert(dst.rows() == src.rows() && dst.cols() == src.cols());
+ src.subTo(dst);
+ }
+};
+
+} // namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_ASSIGN_EVALUATOR_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Assign_MKL.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Assign_MKL.h
new file mode 100755
index 000000000..6c2ab9264
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Assign_MKL.h
@@ -0,0 +1,176 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+ Copyright (C) 2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ * Content : Eigen bindings to Intel(R) MKL
+ * MKL VML support for coefficient-wise unary Eigen expressions like a=b.sin()
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_ASSIGN_VML_H
+#define EIGEN_ASSIGN_VML_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename Dst, typename Src>
+class vml_assign_traits
+{
+ private:
+ enum {
+ DstHasDirectAccess = Dst::Flags & DirectAccessBit,
+ SrcHasDirectAccess = Src::Flags & DirectAccessBit,
+ StorageOrdersAgree = (int(Dst::IsRowMajor) == int(Src::IsRowMajor)),
+ InnerSize = int(Dst::IsVectorAtCompileTime) ? int(Dst::SizeAtCompileTime)
+ : int(Dst::Flags)&RowMajorBit ? int(Dst::ColsAtCompileTime)
+ : int(Dst::RowsAtCompileTime),
+ InnerMaxSize = int(Dst::IsVectorAtCompileTime) ? int(Dst::MaxSizeAtCompileTime)
+ : int(Dst::Flags)&RowMajorBit ? int(Dst::MaxColsAtCompileTime)
+ : int(Dst::MaxRowsAtCompileTime),
+ MaxSizeAtCompileTime = Dst::SizeAtCompileTime,
+
+ MightEnableVml = StorageOrdersAgree && DstHasDirectAccess && SrcHasDirectAccess && Src::InnerStrideAtCompileTime==1 && Dst::InnerStrideAtCompileTime==1,
+ MightLinearize = MightEnableVml && (int(Dst::Flags) & int(Src::Flags) & LinearAccessBit),
+ VmlSize = MightLinearize ? MaxSizeAtCompileTime : InnerMaxSize,
+ LargeEnough = VmlSize==Dynamic || VmlSize>=EIGEN_MKL_VML_THRESHOLD
+ };
+ public:
+ enum {
+ EnableVml = MightEnableVml && LargeEnough,
+ Traversal = MightLinearize ? LinearTraversal : DefaultTraversal
+ };
+};
+
+#define EIGEN_PP_EXPAND(ARG) ARG
+#if !defined (EIGEN_FAST_MATH) || (EIGEN_FAST_MATH != 1)
+#define EIGEN_VMLMODE_EXPAND_LA , VML_HA
+#else
+#define EIGEN_VMLMODE_EXPAND_LA , VML_LA
+#endif
+
+#define EIGEN_VMLMODE_EXPAND__
+
+#define EIGEN_VMLMODE_PREFIX_LA vm
+#define EIGEN_VMLMODE_PREFIX__ v
+#define EIGEN_VMLMODE_PREFIX(VMLMODE) EIGEN_CAT(EIGEN_VMLMODE_PREFIX_,VMLMODE)
+
+#define EIGEN_MKL_VML_DECLARE_UNARY_CALL(EIGENOP, VMLOP, EIGENTYPE, VMLTYPE, VMLMODE) \
+ template< typename DstXprType, typename SrcXprNested> \
+ struct Assignment<DstXprType, CwiseUnaryOp<scalar_##EIGENOP##_op<EIGENTYPE>, SrcXprNested>, assign_op<EIGENTYPE,EIGENTYPE>, \
+ Dense2Dense, typename enable_if<vml_assign_traits<DstXprType,SrcXprNested>::EnableVml>::type> { \
+ typedef CwiseUnaryOp<scalar_##EIGENOP##_op<EIGENTYPE>, SrcXprNested> SrcXprType; \
+ static void run(DstXprType &dst, const SrcXprType &src, const assign_op<EIGENTYPE,EIGENTYPE> &/*func*/) { \
+ eigen_assert(dst.rows() == src.rows() && dst.cols() == src.cols()); \
+ if(vml_assign_traits<DstXprType,SrcXprNested>::Traversal==LinearTraversal) { \
+ VMLOP(dst.size(), (const VMLTYPE*)src.nestedExpression().data(), \
+ (VMLTYPE*)dst.data() EIGEN_PP_EXPAND(EIGEN_VMLMODE_EXPAND_##VMLMODE) ); \
+ } else { \
+ const Index outerSize = dst.outerSize(); \
+ for(Index outer = 0; outer < outerSize; ++outer) { \
+ const EIGENTYPE *src_ptr = src.IsRowMajor ? &(src.nestedExpression().coeffRef(outer,0)) : \
+ &(src.nestedExpression().coeffRef(0, outer)); \
+ EIGENTYPE *dst_ptr = dst.IsRowMajor ? &(dst.coeffRef(outer,0)) : &(dst.coeffRef(0, outer)); \
+ VMLOP( dst.innerSize(), (const VMLTYPE*)src_ptr, \
+ (VMLTYPE*)dst_ptr EIGEN_PP_EXPAND(EIGEN_VMLMODE_EXPAND_##VMLMODE)); \
+ } \
+ } \
+ } \
+ }; \
+
+
+#define EIGEN_MKL_VML_DECLARE_UNARY_CALLS_REAL(EIGENOP, VMLOP, VMLMODE) \
+ EIGEN_MKL_VML_DECLARE_UNARY_CALL(EIGENOP, EIGEN_CAT(EIGEN_VMLMODE_PREFIX(VMLMODE),s##VMLOP), float, float, VMLMODE) \
+ EIGEN_MKL_VML_DECLARE_UNARY_CALL(EIGENOP, EIGEN_CAT(EIGEN_VMLMODE_PREFIX(VMLMODE),d##VMLOP), double, double, VMLMODE)
+
+#define EIGEN_MKL_VML_DECLARE_UNARY_CALLS_CPLX(EIGENOP, VMLOP, VMLMODE) \
+ EIGEN_MKL_VML_DECLARE_UNARY_CALL(EIGENOP, EIGEN_CAT(EIGEN_VMLMODE_PREFIX(VMLMODE),c##VMLOP), scomplex, MKL_Complex8, VMLMODE) \
+ EIGEN_MKL_VML_DECLARE_UNARY_CALL(EIGENOP, EIGEN_CAT(EIGEN_VMLMODE_PREFIX(VMLMODE),z##VMLOP), dcomplex, MKL_Complex16, VMLMODE)
+
+#define EIGEN_MKL_VML_DECLARE_UNARY_CALLS(EIGENOP, VMLOP, VMLMODE) \
+ EIGEN_MKL_VML_DECLARE_UNARY_CALLS_REAL(EIGENOP, VMLOP, VMLMODE) \
+ EIGEN_MKL_VML_DECLARE_UNARY_CALLS_CPLX(EIGENOP, VMLOP, VMLMODE)
+
+
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS(sin, Sin, LA)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS(asin, Asin, LA)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS(sinh, Sinh, LA)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS(cos, Cos, LA)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS(acos, Acos, LA)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS(cosh, Cosh, LA)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS(tan, Tan, LA)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS(atan, Atan, LA)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS(tanh, Tanh, LA)
+// EIGEN_MKL_VML_DECLARE_UNARY_CALLS(abs, Abs, _)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS(exp, Exp, LA)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS(log, Ln, LA)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS(log10, Log10, LA)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS(sqrt, Sqrt, _)
+
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS_REAL(square, Sqr, _)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS_CPLX(arg, Arg, _)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS_REAL(round, Round, _)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS_REAL(floor, Floor, _)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS_REAL(ceil, Ceil, _)
+
+#define EIGEN_MKL_VML_DECLARE_POW_CALL(EIGENOP, VMLOP, EIGENTYPE, VMLTYPE, VMLMODE) \
+ template< typename DstXprType, typename SrcXprNested, typename Plain> \
+ struct Assignment<DstXprType, CwiseBinaryOp<scalar_##EIGENOP##_op<EIGENTYPE,EIGENTYPE>, SrcXprNested, \
+ const CwiseNullaryOp<internal::scalar_constant_op<EIGENTYPE>,Plain> >, assign_op<EIGENTYPE,EIGENTYPE>, \
+ Dense2Dense, typename enable_if<vml_assign_traits<DstXprType,SrcXprNested>::EnableVml>::type> { \
+ typedef CwiseBinaryOp<scalar_##EIGENOP##_op<EIGENTYPE,EIGENTYPE>, SrcXprNested, \
+ const CwiseNullaryOp<internal::scalar_constant_op<EIGENTYPE>,Plain> > SrcXprType; \
+ static void run(DstXprType &dst, const SrcXprType &src, const assign_op<EIGENTYPE,EIGENTYPE> &/*func*/) { \
+ eigen_assert(dst.rows() == src.rows() && dst.cols() == src.cols()); \
+ VMLTYPE exponent = reinterpret_cast<const VMLTYPE&>(src.rhs().functor().m_other); \
+ if(vml_assign_traits<DstXprType,SrcXprNested>::Traversal==LinearTraversal) \
+ { \
+ VMLOP( dst.size(), (const VMLTYPE*)src.lhs().data(), exponent, \
+ (VMLTYPE*)dst.data() EIGEN_PP_EXPAND(EIGEN_VMLMODE_EXPAND_##VMLMODE) ); \
+ } else { \
+ const Index outerSize = dst.outerSize(); \
+ for(Index outer = 0; outer < outerSize; ++outer) { \
+ const EIGENTYPE *src_ptr = src.IsRowMajor ? &(src.lhs().coeffRef(outer,0)) : \
+ &(src.lhs().coeffRef(0, outer)); \
+ EIGENTYPE *dst_ptr = dst.IsRowMajor ? &(dst.coeffRef(outer,0)) : &(dst.coeffRef(0, outer)); \
+ VMLOP( dst.innerSize(), (const VMLTYPE*)src_ptr, exponent, \
+ (VMLTYPE*)dst_ptr EIGEN_PP_EXPAND(EIGEN_VMLMODE_EXPAND_##VMLMODE)); \
+ } \
+ } \
+ } \
+ };
+
+EIGEN_MKL_VML_DECLARE_POW_CALL(pow, vmsPowx, float, float, LA)
+EIGEN_MKL_VML_DECLARE_POW_CALL(pow, vmdPowx, double, double, LA)
+EIGEN_MKL_VML_DECLARE_POW_CALL(pow, vmcPowx, scomplex, MKL_Complex8, LA)
+EIGEN_MKL_VML_DECLARE_POW_CALL(pow, vmzPowx, dcomplex, MKL_Complex16, LA)
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_ASSIGN_VML_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/BandMatrix.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/BandMatrix.h
new file mode 100644
index 000000000..4978c9140
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/BandMatrix.h
@@ -0,0 +1,353 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BANDMATRIX_H
+#define EIGEN_BANDMATRIX_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename Derived>
+class BandMatrixBase : public EigenBase<Derived>
+{
+ public:
+
+ enum {
+ Flags = internal::traits<Derived>::Flags,
+ CoeffReadCost = internal::traits<Derived>::CoeffReadCost,
+ RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
+ ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
+ MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime,
+ Supers = internal::traits<Derived>::Supers,
+ Subs = internal::traits<Derived>::Subs,
+ Options = internal::traits<Derived>::Options
+ };
+ typedef typename internal::traits<Derived>::Scalar Scalar;
+ typedef Matrix<Scalar,RowsAtCompileTime,ColsAtCompileTime> DenseMatrixType;
+ typedef typename DenseMatrixType::StorageIndex StorageIndex;
+ typedef typename internal::traits<Derived>::CoefficientsType CoefficientsType;
+ typedef EigenBase<Derived> Base;
+
+ protected:
+ enum {
+ DataRowsAtCompileTime = ((Supers!=Dynamic) && (Subs!=Dynamic))
+ ? 1 + Supers + Subs
+ : Dynamic,
+ SizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_DYNAMIC(RowsAtCompileTime,ColsAtCompileTime)
+ };
+
+ public:
+
+ using Base::derived;
+ using Base::rows;
+ using Base::cols;
+
+ /** \returns the number of super diagonals */
+ inline Index supers() const { return derived().supers(); }
+
+ /** \returns the number of sub diagonals */
+ inline Index subs() const { return derived().subs(); }
+
+ /** \returns an expression of the underlying coefficient matrix */
+ inline const CoefficientsType& coeffs() const { return derived().coeffs(); }
+
+ /** \returns an expression of the underlying coefficient matrix */
+ inline CoefficientsType& coeffs() { return derived().coeffs(); }
+
+ /** \returns a vector expression of the \a i -th column,
+ * only the meaningful part is returned.
+ * \warning the internal storage must be column major. */
+ inline Block<CoefficientsType,Dynamic,1> col(Index i)
+ {
+ EIGEN_STATIC_ASSERT((Options&RowMajor)==0,THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES);
+ Index start = 0;
+ Index len = coeffs().rows();
+ if (i<=supers())
+ {
+ start = supers()-i;
+ len = (std::min)(rows(),std::max<Index>(0,coeffs().rows() - (supers()-i)));
+ }
+ else if (i>=rows()-subs())
+ len = std::max<Index>(0,coeffs().rows() - (i + 1 - rows() + subs()));
+ return Block<CoefficientsType,Dynamic,1>(coeffs(), start, i, len, 1);
+ }
+
+ /** \returns a vector expression of the main diagonal */
+ inline Block<CoefficientsType,1,SizeAtCompileTime> diagonal()
+ { return Block<CoefficientsType,1,SizeAtCompileTime>(coeffs(),supers(),0,1,(std::min)(rows(),cols())); }
+
+ /** \returns a vector expression of the main diagonal (const version) */
+ inline const Block<const CoefficientsType,1,SizeAtCompileTime> diagonal() const
+ { return Block<const CoefficientsType,1,SizeAtCompileTime>(coeffs(),supers(),0,1,(std::min)(rows(),cols())); }
+
+ template<int Index> struct DiagonalIntReturnType {
+ enum {
+ ReturnOpposite = (Options&SelfAdjoint) && (((Index)>0 && Supers==0) || ((Index)<0 && Subs==0)),
+ Conjugate = ReturnOpposite && NumTraits<Scalar>::IsComplex,
+ ActualIndex = ReturnOpposite ? -Index : Index,
+ DiagonalSize = (RowsAtCompileTime==Dynamic || ColsAtCompileTime==Dynamic)
+ ? Dynamic
+ : (ActualIndex<0
+ ? EIGEN_SIZE_MIN_PREFER_DYNAMIC(ColsAtCompileTime, RowsAtCompileTime + ActualIndex)
+ : EIGEN_SIZE_MIN_PREFER_DYNAMIC(RowsAtCompileTime, ColsAtCompileTime - ActualIndex))
+ };
+ typedef Block<CoefficientsType,1, DiagonalSize> BuildType;
+ typedef typename internal::conditional<Conjugate,
+ CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>,BuildType >,
+ BuildType>::type Type;
+ };
+
+ /** \returns a vector expression of the \a N -th sub or super diagonal */
+ template<int N> inline typename DiagonalIntReturnType<N>::Type diagonal()
+ {
+ return typename DiagonalIntReturnType<N>::BuildType(coeffs(), supers()-N, (std::max)(0,N), 1, diagonalLength(N));
+ }
+
+ /** \returns a vector expression of the \a N -th sub or super diagonal */
+ template<int N> inline const typename DiagonalIntReturnType<N>::Type diagonal() const
+ {
+ return typename DiagonalIntReturnType<N>::BuildType(coeffs(), supers()-N, (std::max)(0,N), 1, diagonalLength(N));
+ }
+
+ /** \returns a vector expression of the \a i -th sub or super diagonal */
+ inline Block<CoefficientsType,1,Dynamic> diagonal(Index i)
+ {
+ eigen_assert((i<0 && -i<=subs()) || (i>=0 && i<=supers()));
+ return Block<CoefficientsType,1,Dynamic>(coeffs(), supers()-i, std::max<Index>(0,i), 1, diagonalLength(i));
+ }
+
+ /** \returns a vector expression of the \a i -th sub or super diagonal */
+ inline const Block<const CoefficientsType,1,Dynamic> diagonal(Index i) const
+ {
+ eigen_assert((i<0 && -i<=subs()) || (i>=0 && i<=supers()));
+ return Block<const CoefficientsType,1,Dynamic>(coeffs(), supers()-i, std::max<Index>(0,i), 1, diagonalLength(i));
+ }
+
+ template<typename Dest> inline void evalTo(Dest& dst) const
+ {
+ dst.resize(rows(),cols());
+ dst.setZero();
+ dst.diagonal() = diagonal();
+ for (Index i=1; i<=supers();++i)
+ dst.diagonal(i) = diagonal(i);
+ for (Index i=1; i<=subs();++i)
+ dst.diagonal(-i) = diagonal(-i);
+ }
+
+ DenseMatrixType toDenseMatrix() const
+ {
+ DenseMatrixType res(rows(),cols());
+ evalTo(res);
+ return res;
+ }
+
+ protected:
+
+ inline Index diagonalLength(Index i) const
+ { return i<0 ? (std::min)(cols(),rows()+i) : (std::min)(rows(),cols()-i); }
+};
+
+/**
+ * \class BandMatrix
+ * \ingroup Core_Module
+ *
+ * \brief Represents a rectangular matrix with a banded storage
+ *
+ * \tparam _Scalar Numeric type, i.e. float, double, int
+ * \tparam _Rows Number of rows, or \b Dynamic
+ * \tparam _Cols Number of columns, or \b Dynamic
+ * \tparam _Supers Number of super diagonal
+ * \tparam _Subs Number of sub diagonal
+ * \tparam _Options A combination of either \b #RowMajor or \b #ColMajor, and of \b #SelfAdjoint
+ * The former controls \ref TopicStorageOrders "storage order", and defaults to
+ * column-major. The latter controls whether the matrix represents a selfadjoint
+ * matrix in which case either Supers of Subs have to be null.
+ *
+ * \sa class TridiagonalMatrix
+ */
+
+template<typename _Scalar, int _Rows, int _Cols, int _Supers, int _Subs, int _Options>
+struct traits<BandMatrix<_Scalar,_Rows,_Cols,_Supers,_Subs,_Options> >
+{
+ typedef _Scalar Scalar;
+ typedef Dense StorageKind;
+ typedef Eigen::Index StorageIndex;
+ enum {
+ CoeffReadCost = NumTraits<Scalar>::ReadCost,
+ RowsAtCompileTime = _Rows,
+ ColsAtCompileTime = _Cols,
+ MaxRowsAtCompileTime = _Rows,
+ MaxColsAtCompileTime = _Cols,
+ Flags = LvalueBit,
+ Supers = _Supers,
+ Subs = _Subs,
+ Options = _Options,
+ DataRowsAtCompileTime = ((Supers!=Dynamic) && (Subs!=Dynamic)) ? 1 + Supers + Subs : Dynamic
+ };
+ typedef Matrix<Scalar,DataRowsAtCompileTime,ColsAtCompileTime,Options&RowMajor?RowMajor:ColMajor> CoefficientsType;
+};
+
+template<typename _Scalar, int Rows, int Cols, int Supers, int Subs, int Options>
+class BandMatrix : public BandMatrixBase<BandMatrix<_Scalar,Rows,Cols,Supers,Subs,Options> >
+{
+ public:
+
+ typedef typename internal::traits<BandMatrix>::Scalar Scalar;
+ typedef typename internal::traits<BandMatrix>::StorageIndex StorageIndex;
+ typedef typename internal::traits<BandMatrix>::CoefficientsType CoefficientsType;
+
+ explicit inline BandMatrix(Index rows=Rows, Index cols=Cols, Index supers=Supers, Index subs=Subs)
+ : m_coeffs(1+supers+subs,cols),
+ m_rows(rows), m_supers(supers), m_subs(subs)
+ {
+ }
+
+ /** \returns the number of columns */
+ inline Index rows() const { return m_rows.value(); }
+
+ /** \returns the number of rows */
+ inline Index cols() const { return m_coeffs.cols(); }
+
+ /** \returns the number of super diagonals */
+ inline Index supers() const { return m_supers.value(); }
+
+ /** \returns the number of sub diagonals */
+ inline Index subs() const { return m_subs.value(); }
+
+ inline const CoefficientsType& coeffs() const { return m_coeffs; }
+ inline CoefficientsType& coeffs() { return m_coeffs; }
+
+ protected:
+
+ CoefficientsType m_coeffs;
+ internal::variable_if_dynamic<Index, Rows> m_rows;
+ internal::variable_if_dynamic<Index, Supers> m_supers;
+ internal::variable_if_dynamic<Index, Subs> m_subs;
+};
+
+template<typename _CoefficientsType,int _Rows, int _Cols, int _Supers, int _Subs,int _Options>
+class BandMatrixWrapper;
+
+template<typename _CoefficientsType,int _Rows, int _Cols, int _Supers, int _Subs,int _Options>
+struct traits<BandMatrixWrapper<_CoefficientsType,_Rows,_Cols,_Supers,_Subs,_Options> >
+{
+ typedef typename _CoefficientsType::Scalar Scalar;
+ typedef typename _CoefficientsType::StorageKind StorageKind;
+ typedef typename _CoefficientsType::StorageIndex StorageIndex;
+ enum {
+ CoeffReadCost = internal::traits<_CoefficientsType>::CoeffReadCost,
+ RowsAtCompileTime = _Rows,
+ ColsAtCompileTime = _Cols,
+ MaxRowsAtCompileTime = _Rows,
+ MaxColsAtCompileTime = _Cols,
+ Flags = LvalueBit,
+ Supers = _Supers,
+ Subs = _Subs,
+ Options = _Options,
+ DataRowsAtCompileTime = ((Supers!=Dynamic) && (Subs!=Dynamic)) ? 1 + Supers + Subs : Dynamic
+ };
+ typedef _CoefficientsType CoefficientsType;
+};
+
+template<typename _CoefficientsType,int _Rows, int _Cols, int _Supers, int _Subs,int _Options>
+class BandMatrixWrapper : public BandMatrixBase<BandMatrixWrapper<_CoefficientsType,_Rows,_Cols,_Supers,_Subs,_Options> >
+{
+ public:
+
+ typedef typename internal::traits<BandMatrixWrapper>::Scalar Scalar;
+ typedef typename internal::traits<BandMatrixWrapper>::CoefficientsType CoefficientsType;
+ typedef typename internal::traits<BandMatrixWrapper>::StorageIndex StorageIndex;
+
+ explicit inline BandMatrixWrapper(const CoefficientsType& coeffs, Index rows=_Rows, Index cols=_Cols, Index supers=_Supers, Index subs=_Subs)
+ : m_coeffs(coeffs),
+ m_rows(rows), m_supers(supers), m_subs(subs)
+ {
+ EIGEN_UNUSED_VARIABLE(cols);
+ //internal::assert(coeffs.cols()==cols() && (supers()+subs()+1)==coeffs.rows());
+ }
+
+ /** \returns the number of columns */
+ inline Index rows() const { return m_rows.value(); }
+
+ /** \returns the number of rows */
+ inline Index cols() const { return m_coeffs.cols(); }
+
+ /** \returns the number of super diagonals */
+ inline Index supers() const { return m_supers.value(); }
+
+ /** \returns the number of sub diagonals */
+ inline Index subs() const { return m_subs.value(); }
+
+ inline const CoefficientsType& coeffs() const { return m_coeffs; }
+
+ protected:
+
+ const CoefficientsType& m_coeffs;
+ internal::variable_if_dynamic<Index, _Rows> m_rows;
+ internal::variable_if_dynamic<Index, _Supers> m_supers;
+ internal::variable_if_dynamic<Index, _Subs> m_subs;
+};
+
+/**
+ * \class TridiagonalMatrix
+ * \ingroup Core_Module
+ *
+ * \brief Represents a tridiagonal matrix with a compact banded storage
+ *
+ * \tparam Scalar Numeric type, i.e. float, double, int
+ * \tparam Size Number of rows and cols, or \b Dynamic
+ * \tparam Options Can be 0 or \b SelfAdjoint
+ *
+ * \sa class BandMatrix
+ */
+template<typename Scalar, int Size, int Options>
+class TridiagonalMatrix : public BandMatrix<Scalar,Size,Size,Options&SelfAdjoint?0:1,1,Options|RowMajor>
+{
+ typedef BandMatrix<Scalar,Size,Size,Options&SelfAdjoint?0:1,1,Options|RowMajor> Base;
+ typedef typename Base::StorageIndex StorageIndex;
+ public:
+ explicit TridiagonalMatrix(Index size = Size) : Base(size,size,Options&SelfAdjoint?0:1,1) {}
+
+ inline typename Base::template DiagonalIntReturnType<1>::Type super()
+ { return Base::template diagonal<1>(); }
+ inline const typename Base::template DiagonalIntReturnType<1>::Type super() const
+ { return Base::template diagonal<1>(); }
+ inline typename Base::template DiagonalIntReturnType<-1>::Type sub()
+ { return Base::template diagonal<-1>(); }
+ inline const typename Base::template DiagonalIntReturnType<-1>::Type sub() const
+ { return Base::template diagonal<-1>(); }
+ protected:
+};
+
+
+struct BandShape {};
+
+template<typename _Scalar, int _Rows, int _Cols, int _Supers, int _Subs, int _Options>
+struct evaluator_traits<BandMatrix<_Scalar,_Rows,_Cols,_Supers,_Subs,_Options> >
+ : public evaluator_traits_base<BandMatrix<_Scalar,_Rows,_Cols,_Supers,_Subs,_Options> >
+{
+ typedef BandShape Shape;
+};
+
+template<typename _CoefficientsType,int _Rows, int _Cols, int _Supers, int _Subs,int _Options>
+struct evaluator_traits<BandMatrixWrapper<_CoefficientsType,_Rows,_Cols,_Supers,_Subs,_Options> >
+ : public evaluator_traits_base<BandMatrixWrapper<_CoefficientsType,_Rows,_Cols,_Supers,_Subs,_Options> >
+{
+ typedef BandShape Shape;
+};
+
+template<> struct AssignmentKind<DenseShape,BandShape> { typedef EigenBase2EigenBase Kind; };
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_BANDMATRIX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Block.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Block.h
new file mode 100644
index 000000000..11de45c2e
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Block.h
@@ -0,0 +1,452 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BLOCK_H
+#define EIGEN_BLOCK_H
+
+namespace Eigen {
+
+namespace internal {
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel>
+struct traits<Block<XprType, BlockRows, BlockCols, InnerPanel> > : traits<XprType>
+{
+ typedef typename traits<XprType>::Scalar Scalar;
+ typedef typename traits<XprType>::StorageKind StorageKind;
+ typedef typename traits<XprType>::XprKind XprKind;
+ typedef typename ref_selector<XprType>::type XprTypeNested;
+ typedef typename remove_reference<XprTypeNested>::type _XprTypeNested;
+ enum{
+ MatrixRows = traits<XprType>::RowsAtCompileTime,
+ MatrixCols = traits<XprType>::ColsAtCompileTime,
+ RowsAtCompileTime = MatrixRows == 0 ? 0 : BlockRows,
+ ColsAtCompileTime = MatrixCols == 0 ? 0 : BlockCols,
+ MaxRowsAtCompileTime = BlockRows==0 ? 0
+ : RowsAtCompileTime != Dynamic ? int(RowsAtCompileTime)
+ : int(traits<XprType>::MaxRowsAtCompileTime),
+ MaxColsAtCompileTime = BlockCols==0 ? 0
+ : ColsAtCompileTime != Dynamic ? int(ColsAtCompileTime)
+ : int(traits<XprType>::MaxColsAtCompileTime),
+
+ XprTypeIsRowMajor = (int(traits<XprType>::Flags)&RowMajorBit) != 0,
+ IsRowMajor = (MaxRowsAtCompileTime==1&&MaxColsAtCompileTime!=1) ? 1
+ : (MaxColsAtCompileTime==1&&MaxRowsAtCompileTime!=1) ? 0
+ : XprTypeIsRowMajor,
+ HasSameStorageOrderAsXprType = (IsRowMajor == XprTypeIsRowMajor),
+ InnerSize = IsRowMajor ? int(ColsAtCompileTime) : int(RowsAtCompileTime),
+ InnerStrideAtCompileTime = HasSameStorageOrderAsXprType
+ ? int(inner_stride_at_compile_time<XprType>::ret)
+ : int(outer_stride_at_compile_time<XprType>::ret),
+ OuterStrideAtCompileTime = HasSameStorageOrderAsXprType
+ ? int(outer_stride_at_compile_time<XprType>::ret)
+ : int(inner_stride_at_compile_time<XprType>::ret),
+
+ // FIXME, this traits is rather specialized for dense object and it needs to be cleaned further
+ FlagsLvalueBit = is_lvalue<XprType>::value ? LvalueBit : 0,
+ FlagsRowMajorBit = IsRowMajor ? RowMajorBit : 0,
+ Flags = (traits<XprType>::Flags & (DirectAccessBit | (InnerPanel?CompressedAccessBit:0))) | FlagsLvalueBit | FlagsRowMajorBit,
+ // FIXME DirectAccessBit should not be handled by expressions
+ //
+ // Alignment is needed by MapBase's assertions
+ // We can sefely set it to false here. Internal alignment errors will be detected by an eigen_internal_assert in the respective evaluator
+ Alignment = 0
+ };
+};
+
+template<typename XprType, int BlockRows=Dynamic, int BlockCols=Dynamic, bool InnerPanel = false,
+ bool HasDirectAccess = internal::has_direct_access<XprType>::ret> class BlockImpl_dense;
+
+} // end namespace internal
+
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel, typename StorageKind> class BlockImpl;
+
+/** \class Block
+ * \ingroup Core_Module
+ *
+ * \brief Expression of a fixed-size or dynamic-size block
+ *
+ * \tparam XprType the type of the expression in which we are taking a block
+ * \tparam BlockRows the number of rows of the block we are taking at compile time (optional)
+ * \tparam BlockCols the number of columns of the block we are taking at compile time (optional)
+ * \tparam InnerPanel is true, if the block maps to a set of rows of a row major matrix or
+ * to set of columns of a column major matrix (optional). The parameter allows to determine
+ * at compile time whether aligned access is possible on the block expression.
+ *
+ * This class represents an expression of either a fixed-size or dynamic-size block. It is the return
+ * type of DenseBase::block(Index,Index,Index,Index) and DenseBase::block<int,int>(Index,Index) and
+ * most of the time this is the only way it is used.
+ *
+ * However, if you want to directly maniputate block expressions,
+ * for instance if you want to write a function returning such an expression, you
+ * will need to use this class.
+ *
+ * Here is an example illustrating the dynamic case:
+ * \include class_Block.cpp
+ * Output: \verbinclude class_Block.out
+ *
+ * \note Even though this expression has dynamic size, in the case where \a XprType
+ * has fixed size, this expression inherits a fixed maximal size which means that evaluating
+ * it does not cause a dynamic memory allocation.
+ *
+ * Here is an example illustrating the fixed-size case:
+ * \include class_FixedBlock.cpp
+ * Output: \verbinclude class_FixedBlock.out
+ *
+ * \sa DenseBase::block(Index,Index,Index,Index), DenseBase::block(Index,Index), class VectorBlock
+ */
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel> class Block
+ : public BlockImpl<XprType, BlockRows, BlockCols, InnerPanel, typename internal::traits<XprType>::StorageKind>
+{
+ typedef BlockImpl<XprType, BlockRows, BlockCols, InnerPanel, typename internal::traits<XprType>::StorageKind> Impl;
+ public:
+ //typedef typename Impl::Base Base;
+ typedef Impl Base;
+ EIGEN_GENERIC_PUBLIC_INTERFACE(Block)
+ EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Block)
+
+ typedef typename internal::remove_all<XprType>::type NestedExpression;
+
+ /** Column or Row constructor
+ */
+ EIGEN_DEVICE_FUNC
+ inline Block(XprType& xpr, Index i) : Impl(xpr,i)
+ {
+ eigen_assert( (i>=0) && (
+ ((BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) && i<xpr.rows())
+ ||((BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) && i<xpr.cols())));
+ }
+
+ /** Fixed-size constructor
+ */
+ EIGEN_DEVICE_FUNC
+ inline Block(XprType& xpr, Index startRow, Index startCol)
+ : Impl(xpr, startRow, startCol)
+ {
+ EIGEN_STATIC_ASSERT(RowsAtCompileTime!=Dynamic && ColsAtCompileTime!=Dynamic,THIS_METHOD_IS_ONLY_FOR_FIXED_SIZE)
+ eigen_assert(startRow >= 0 && BlockRows >= 0 && startRow + BlockRows <= xpr.rows()
+ && startCol >= 0 && BlockCols >= 0 && startCol + BlockCols <= xpr.cols());
+ }
+
+ /** Dynamic-size constructor
+ */
+ EIGEN_DEVICE_FUNC
+ inline Block(XprType& xpr,
+ Index startRow, Index startCol,
+ Index blockRows, Index blockCols)
+ : Impl(xpr, startRow, startCol, blockRows, blockCols)
+ {
+ eigen_assert((RowsAtCompileTime==Dynamic || RowsAtCompileTime==blockRows)
+ && (ColsAtCompileTime==Dynamic || ColsAtCompileTime==blockCols));
+ eigen_assert(startRow >= 0 && blockRows >= 0 && startRow <= xpr.rows() - blockRows
+ && startCol >= 0 && blockCols >= 0 && startCol <= xpr.cols() - blockCols);
+ }
+};
+
+// The generic default implementation for dense block simplu forward to the internal::BlockImpl_dense
+// that must be specialized for direct and non-direct access...
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel>
+class BlockImpl<XprType, BlockRows, BlockCols, InnerPanel, Dense>
+ : public internal::BlockImpl_dense<XprType, BlockRows, BlockCols, InnerPanel>
+{
+ typedef internal::BlockImpl_dense<XprType, BlockRows, BlockCols, InnerPanel> Impl;
+ typedef typename XprType::StorageIndex StorageIndex;
+ public:
+ typedef Impl Base;
+ EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl)
+ EIGEN_DEVICE_FUNC inline BlockImpl(XprType& xpr, Index i) : Impl(xpr,i) {}
+ EIGEN_DEVICE_FUNC inline BlockImpl(XprType& xpr, Index startRow, Index startCol) : Impl(xpr, startRow, startCol) {}
+ EIGEN_DEVICE_FUNC
+ inline BlockImpl(XprType& xpr, Index startRow, Index startCol, Index blockRows, Index blockCols)
+ : Impl(xpr, startRow, startCol, blockRows, blockCols) {}
+};
+
+namespace internal {
+
+/** \internal Internal implementation of dense Blocks in the general case. */
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess> class BlockImpl_dense
+ : public internal::dense_xpr_base<Block<XprType, BlockRows, BlockCols, InnerPanel> >::type
+{
+ typedef Block<XprType, BlockRows, BlockCols, InnerPanel> BlockType;
+ typedef typename internal::ref_selector<XprType>::non_const_type XprTypeNested;
+ public:
+
+ typedef typename internal::dense_xpr_base<BlockType>::type Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(BlockType)
+ EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl_dense)
+
+ // class InnerIterator; // FIXME apparently never used
+
+ /** Column or Row constructor
+ */
+ EIGEN_DEVICE_FUNC
+ inline BlockImpl_dense(XprType& xpr, Index i)
+ : m_xpr(xpr),
+ // It is a row if and only if BlockRows==1 and BlockCols==XprType::ColsAtCompileTime,
+ // and it is a column if and only if BlockRows==XprType::RowsAtCompileTime and BlockCols==1,
+ // all other cases are invalid.
+ // The case a 1x1 matrix seems ambiguous, but the result is the same anyway.
+ m_startRow( (BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) ? i : 0),
+ m_startCol( (BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) ? i : 0),
+ m_blockRows(BlockRows==1 ? 1 : xpr.rows()),
+ m_blockCols(BlockCols==1 ? 1 : xpr.cols())
+ {}
+
+ /** Fixed-size constructor
+ */
+ EIGEN_DEVICE_FUNC
+ inline BlockImpl_dense(XprType& xpr, Index startRow, Index startCol)
+ : m_xpr(xpr), m_startRow(startRow), m_startCol(startCol),
+ m_blockRows(BlockRows), m_blockCols(BlockCols)
+ {}
+
+ /** Dynamic-size constructor
+ */
+ EIGEN_DEVICE_FUNC
+ inline BlockImpl_dense(XprType& xpr,
+ Index startRow, Index startCol,
+ Index blockRows, Index blockCols)
+ : m_xpr(xpr), m_startRow(startRow), m_startCol(startCol),
+ m_blockRows(blockRows), m_blockCols(blockCols)
+ {}
+
+ EIGEN_DEVICE_FUNC inline Index rows() const { return m_blockRows.value(); }
+ EIGEN_DEVICE_FUNC inline Index cols() const { return m_blockCols.value(); }
+
+ EIGEN_DEVICE_FUNC
+ inline Scalar& coeffRef(Index rowId, Index colId)
+ {
+ EIGEN_STATIC_ASSERT_LVALUE(XprType)
+ return m_xpr.coeffRef(rowId + m_startRow.value(), colId + m_startCol.value());
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline const Scalar& coeffRef(Index rowId, Index colId) const
+ {
+ return m_xpr.derived().coeffRef(rowId + m_startRow.value(), colId + m_startCol.value());
+ }
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE const CoeffReturnType coeff(Index rowId, Index colId) const
+ {
+ return m_xpr.coeff(rowId + m_startRow.value(), colId + m_startCol.value());
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline Scalar& coeffRef(Index index)
+ {
+ EIGEN_STATIC_ASSERT_LVALUE(XprType)
+ return m_xpr.coeffRef(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+ m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline const Scalar& coeffRef(Index index) const
+ {
+ return m_xpr.coeffRef(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+ m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline const CoeffReturnType coeff(Index index) const
+ {
+ return m_xpr.coeff(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+ m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
+ }
+
+ template<int LoadMode>
+ inline PacketScalar packet(Index rowId, Index colId) const
+ {
+ return m_xpr.template packet<Unaligned>(rowId + m_startRow.value(), colId + m_startCol.value());
+ }
+
+ template<int LoadMode>
+ inline void writePacket(Index rowId, Index colId, const PacketScalar& val)
+ {
+ m_xpr.template writePacket<Unaligned>(rowId + m_startRow.value(), colId + m_startCol.value(), val);
+ }
+
+ template<int LoadMode>
+ inline PacketScalar packet(Index index) const
+ {
+ return m_xpr.template packet<Unaligned>
+ (m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+ m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
+ }
+
+ template<int LoadMode>
+ inline void writePacket(Index index, const PacketScalar& val)
+ {
+ m_xpr.template writePacket<Unaligned>
+ (m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+ m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0), val);
+ }
+
+ #ifdef EIGEN_PARSED_BY_DOXYGEN
+ /** \sa MapBase::data() */
+ EIGEN_DEVICE_FUNC inline const Scalar* data() const;
+ EIGEN_DEVICE_FUNC inline Index innerStride() const;
+ EIGEN_DEVICE_FUNC inline Index outerStride() const;
+ #endif
+
+ EIGEN_DEVICE_FUNC
+ const typename internal::remove_all<XprTypeNested>::type& nestedExpression() const
+ {
+ return m_xpr;
+ }
+
+ EIGEN_DEVICE_FUNC
+ XprType& nestedExpression() { return m_xpr; }
+
+ EIGEN_DEVICE_FUNC
+ StorageIndex startRow() const
+ {
+ return m_startRow.value();
+ }
+
+ EIGEN_DEVICE_FUNC
+ StorageIndex startCol() const
+ {
+ return m_startCol.value();
+ }
+
+ protected:
+
+ XprTypeNested m_xpr;
+ const internal::variable_if_dynamic<StorageIndex, (XprType::RowsAtCompileTime == 1 && BlockRows==1) ? 0 : Dynamic> m_startRow;
+ const internal::variable_if_dynamic<StorageIndex, (XprType::ColsAtCompileTime == 1 && BlockCols==1) ? 0 : Dynamic> m_startCol;
+ const internal::variable_if_dynamic<StorageIndex, RowsAtCompileTime> m_blockRows;
+ const internal::variable_if_dynamic<StorageIndex, ColsAtCompileTime> m_blockCols;
+};
+
+/** \internal Internal implementation of dense Blocks in the direct access case.*/
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel>
+class BlockImpl_dense<XprType,BlockRows,BlockCols, InnerPanel,true>
+ : public MapBase<Block<XprType, BlockRows, BlockCols, InnerPanel> >
+{
+ typedef Block<XprType, BlockRows, BlockCols, InnerPanel> BlockType;
+ typedef typename internal::ref_selector<XprType>::non_const_type XprTypeNested;
+ enum {
+ XprTypeIsRowMajor = (int(traits<XprType>::Flags)&RowMajorBit) != 0
+ };
+ public:
+
+ typedef MapBase<BlockType> Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(BlockType)
+ EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl_dense)
+
+ /** Column or Row constructor
+ */
+ EIGEN_DEVICE_FUNC
+ inline BlockImpl_dense(XprType& xpr, Index i)
+ : Base(xpr.data() + i * ( ((BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) && (!XprTypeIsRowMajor))
+ || ((BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) && ( XprTypeIsRowMajor)) ? xpr.innerStride() : xpr.outerStride()),
+ BlockRows==1 ? 1 : xpr.rows(),
+ BlockCols==1 ? 1 : xpr.cols()),
+ m_xpr(xpr),
+ m_startRow( (BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) ? i : 0),
+ m_startCol( (BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) ? i : 0)
+ {
+ init();
+ }
+
+ /** Fixed-size constructor
+ */
+ EIGEN_DEVICE_FUNC
+ inline BlockImpl_dense(XprType& xpr, Index startRow, Index startCol)
+ : Base(xpr.data()+xpr.innerStride()*(XprTypeIsRowMajor?startCol:startRow) + xpr.outerStride()*(XprTypeIsRowMajor?startRow:startCol)),
+ m_xpr(xpr), m_startRow(startRow), m_startCol(startCol)
+ {
+ init();
+ }
+
+ /** Dynamic-size constructor
+ */
+ EIGEN_DEVICE_FUNC
+ inline BlockImpl_dense(XprType& xpr,
+ Index startRow, Index startCol,
+ Index blockRows, Index blockCols)
+ : Base(xpr.data()+xpr.innerStride()*(XprTypeIsRowMajor?startCol:startRow) + xpr.outerStride()*(XprTypeIsRowMajor?startRow:startCol), blockRows, blockCols),
+ m_xpr(xpr), m_startRow(startRow), m_startCol(startCol)
+ {
+ init();
+ }
+
+ EIGEN_DEVICE_FUNC
+ const typename internal::remove_all<XprTypeNested>::type& nestedExpression() const
+ {
+ return m_xpr;
+ }
+
+ EIGEN_DEVICE_FUNC
+ XprType& nestedExpression() { return m_xpr; }
+
+ /** \sa MapBase::innerStride() */
+ EIGEN_DEVICE_FUNC
+ inline Index innerStride() const
+ {
+ return internal::traits<BlockType>::HasSameStorageOrderAsXprType
+ ? m_xpr.innerStride()
+ : m_xpr.outerStride();
+ }
+
+ /** \sa MapBase::outerStride() */
+ EIGEN_DEVICE_FUNC
+ inline Index outerStride() const
+ {
+ return m_outerStride;
+ }
+
+ EIGEN_DEVICE_FUNC
+ StorageIndex startRow() const
+ {
+ return m_startRow.value();
+ }
+
+ EIGEN_DEVICE_FUNC
+ StorageIndex startCol() const
+ {
+ return m_startCol.value();
+ }
+
+ #ifndef __SUNPRO_CC
+ // FIXME sunstudio is not friendly with the above friend...
+ // META-FIXME there is no 'friend' keyword around here. Is this obsolete?
+ protected:
+ #endif
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** \internal used by allowAligned() */
+ EIGEN_DEVICE_FUNC
+ inline BlockImpl_dense(XprType& xpr, const Scalar* data, Index blockRows, Index blockCols)
+ : Base(data, blockRows, blockCols), m_xpr(xpr)
+ {
+ init();
+ }
+ #endif
+
+ protected:
+ EIGEN_DEVICE_FUNC
+ void init()
+ {
+ m_outerStride = internal::traits<BlockType>::HasSameStorageOrderAsXprType
+ ? m_xpr.outerStride()
+ : m_xpr.innerStride();
+ }
+
+ XprTypeNested m_xpr;
+ const internal::variable_if_dynamic<StorageIndex, (XprType::RowsAtCompileTime == 1 && BlockRows==1) ? 0 : Dynamic> m_startRow;
+ const internal::variable_if_dynamic<StorageIndex, (XprType::ColsAtCompileTime == 1 && BlockCols==1) ? 0 : Dynamic> m_startCol;
+ Index m_outerStride;
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_BLOCK_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/BooleanRedux.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/BooleanRedux.h
new file mode 100644
index 000000000..8409d8749
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/BooleanRedux.h
@@ -0,0 +1,164 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ALLANDANY_H
+#define EIGEN_ALLANDANY_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename Derived, int UnrollCount>
+struct all_unroller
+{
+ typedef typename Derived::ExpressionTraits Traits;
+ enum {
+ col = (UnrollCount-1) / Traits::RowsAtCompileTime,
+ row = (UnrollCount-1) % Traits::RowsAtCompileTime
+ };
+
+ static inline bool run(const Derived &mat)
+ {
+ return all_unroller<Derived, UnrollCount-1>::run(mat) && mat.coeff(row, col);
+ }
+};
+
+template<typename Derived>
+struct all_unroller<Derived, 0>
+{
+ static inline bool run(const Derived &/*mat*/) { return true; }
+};
+
+template<typename Derived>
+struct all_unroller<Derived, Dynamic>
+{
+ static inline bool run(const Derived &) { return false; }
+};
+
+template<typename Derived, int UnrollCount>
+struct any_unroller
+{
+ typedef typename Derived::ExpressionTraits Traits;
+ enum {
+ col = (UnrollCount-1) / Traits::RowsAtCompileTime,
+ row = (UnrollCount-1) % Traits::RowsAtCompileTime
+ };
+
+ static inline bool run(const Derived &mat)
+ {
+ return any_unroller<Derived, UnrollCount-1>::run(mat) || mat.coeff(row, col);
+ }
+};
+
+template<typename Derived>
+struct any_unroller<Derived, 0>
+{
+ static inline bool run(const Derived & /*mat*/) { return false; }
+};
+
+template<typename Derived>
+struct any_unroller<Derived, Dynamic>
+{
+ static inline bool run(const Derived &) { return false; }
+};
+
+} // end namespace internal
+
+/** \returns true if all coefficients are true
+ *
+ * Example: \include MatrixBase_all.cpp
+ * Output: \verbinclude MatrixBase_all.out
+ *
+ * \sa any(), Cwise::operator<()
+ */
+template<typename Derived>
+inline bool DenseBase<Derived>::all() const
+{
+ typedef internal::evaluator<Derived> Evaluator;
+ enum {
+ unroll = SizeAtCompileTime != Dynamic
+ && SizeAtCompileTime * (Evaluator::CoeffReadCost + NumTraits<Scalar>::AddCost) <= EIGEN_UNROLLING_LIMIT
+ };
+ Evaluator evaluator(derived());
+ if(unroll)
+ return internal::all_unroller<Evaluator, unroll ? int(SizeAtCompileTime) : Dynamic>::run(evaluator);
+ else
+ {
+ for(Index j = 0; j < cols(); ++j)
+ for(Index i = 0; i < rows(); ++i)
+ if (!evaluator.coeff(i, j)) return false;
+ return true;
+ }
+}
+
+/** \returns true if at least one coefficient is true
+ *
+ * \sa all()
+ */
+template<typename Derived>
+inline bool DenseBase<Derived>::any() const
+{
+ typedef internal::evaluator<Derived> Evaluator;
+ enum {
+ unroll = SizeAtCompileTime != Dynamic
+ && SizeAtCompileTime * (Evaluator::CoeffReadCost + NumTraits<Scalar>::AddCost) <= EIGEN_UNROLLING_LIMIT
+ };
+ Evaluator evaluator(derived());
+ if(unroll)
+ return internal::any_unroller<Evaluator, unroll ? int(SizeAtCompileTime) : Dynamic>::run(evaluator);
+ else
+ {
+ for(Index j = 0; j < cols(); ++j)
+ for(Index i = 0; i < rows(); ++i)
+ if (evaluator.coeff(i, j)) return true;
+ return false;
+ }
+}
+
+/** \returns the number of coefficients which evaluate to true
+ *
+ * \sa all(), any()
+ */
+template<typename Derived>
+inline Eigen::Index DenseBase<Derived>::count() const
+{
+ return derived().template cast<bool>().template cast<Index>().sum();
+}
+
+/** \returns true is \c *this contains at least one Not A Number (NaN).
+ *
+ * \sa allFinite()
+ */
+template<typename Derived>
+inline bool DenseBase<Derived>::hasNaN() const
+{
+#if EIGEN_COMP_MSVC || (defined __FAST_MATH__)
+ return derived().array().isNaN().any();
+#else
+ return !((derived().array()==derived().array()).all());
+#endif
+}
+
+/** \returns true if \c *this contains only finite numbers, i.e., no NaN and no +/-INF values.
+ *
+ * \sa hasNaN()
+ */
+template<typename Derived>
+inline bool DenseBase<Derived>::allFinite() const
+{
+#if EIGEN_COMP_MSVC || (defined __FAST_MATH__)
+ return derived().array().isFinite().all();
+#else
+ return !((derived()-derived()).hasNaN());
+#endif
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_ALLANDANY_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/CommaInitializer.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/CommaInitializer.h
new file mode 100644
index 000000000..d218e9814
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/CommaInitializer.h
@@ -0,0 +1,160 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMMAINITIALIZER_H
+#define EIGEN_COMMAINITIALIZER_H
+
+namespace Eigen {
+
+/** \class CommaInitializer
+ * \ingroup Core_Module
+ *
+ * \brief Helper class used by the comma initializer operator
+ *
+ * This class is internally used to implement the comma initializer feature. It is
+ * the return type of MatrixBase::operator<<, and most of the time this is the only
+ * way it is used.
+ *
+ * \sa \blank \ref MatrixBaseCommaInitRef "MatrixBase::operator<<", CommaInitializer::finished()
+ */
+template<typename XprType>
+struct CommaInitializer
+{
+ typedef typename XprType::Scalar Scalar;
+
+ EIGEN_DEVICE_FUNC
+ inline CommaInitializer(XprType& xpr, const Scalar& s)
+ : m_xpr(xpr), m_row(0), m_col(1), m_currentBlockRows(1)
+ {
+ m_xpr.coeffRef(0,0) = s;
+ }
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ inline CommaInitializer(XprType& xpr, const DenseBase<OtherDerived>& other)
+ : m_xpr(xpr), m_row(0), m_col(other.cols()), m_currentBlockRows(other.rows())
+ {
+ m_xpr.block(0, 0, other.rows(), other.cols()) = other;
+ }
+
+ /* Copy/Move constructor which transfers ownership. This is crucial in
+ * absence of return value optimization to avoid assertions during destruction. */
+ // FIXME in C++11 mode this could be replaced by a proper RValue constructor
+ EIGEN_DEVICE_FUNC
+ inline CommaInitializer(const CommaInitializer& o)
+ : m_xpr(o.m_xpr), m_row(o.m_row), m_col(o.m_col), m_currentBlockRows(o.m_currentBlockRows) {
+ // Mark original object as finished. In absence of R-value references we need to const_cast:
+ const_cast<CommaInitializer&>(o).m_row = m_xpr.rows();
+ const_cast<CommaInitializer&>(o).m_col = m_xpr.cols();
+ const_cast<CommaInitializer&>(o).m_currentBlockRows = 0;
+ }
+
+ /* inserts a scalar value in the target matrix */
+ EIGEN_DEVICE_FUNC
+ CommaInitializer& operator,(const Scalar& s)
+ {
+ if (m_col==m_xpr.cols())
+ {
+ m_row+=m_currentBlockRows;
+ m_col = 0;
+ m_currentBlockRows = 1;
+ eigen_assert(m_row<m_xpr.rows()
+ && "Too many rows passed to comma initializer (operator<<)");
+ }
+ eigen_assert(m_col<m_xpr.cols()
+ && "Too many coefficients passed to comma initializer (operator<<)");
+ eigen_assert(m_currentBlockRows==1);
+ m_xpr.coeffRef(m_row, m_col++) = s;
+ return *this;
+ }
+
+ /* inserts a matrix expression in the target matrix */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ CommaInitializer& operator,(const DenseBase<OtherDerived>& other)
+ {
+ if (m_col==m_xpr.cols() && (other.cols()!=0 || other.rows()!=m_currentBlockRows))
+ {
+ m_row+=m_currentBlockRows;
+ m_col = 0;
+ m_currentBlockRows = other.rows();
+ eigen_assert(m_row+m_currentBlockRows<=m_xpr.rows()
+ && "Too many rows passed to comma initializer (operator<<)");
+ }
+ eigen_assert((m_col + other.cols() <= m_xpr.cols())
+ && "Too many coefficients passed to comma initializer (operator<<)");
+ eigen_assert(m_currentBlockRows==other.rows());
+ m_xpr.template block<OtherDerived::RowsAtCompileTime, OtherDerived::ColsAtCompileTime>
+ (m_row, m_col, other.rows(), other.cols()) = other;
+ m_col += other.cols();
+ return *this;
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline ~CommaInitializer()
+#if defined VERIFY_RAISES_ASSERT && (!defined EIGEN_NO_ASSERTION_CHECKING) && defined EIGEN_EXCEPTIONS
+ EIGEN_EXCEPTION_SPEC(Eigen::eigen_assert_exception)
+#endif
+ {
+ finished();
+ }
+
+ /** \returns the built matrix once all its coefficients have been set.
+ * Calling finished is 100% optional. Its purpose is to write expressions
+ * like this:
+ * \code
+ * quaternion.fromRotationMatrix((Matrix3f() << axis0, axis1, axis2).finished());
+ * \endcode
+ */
+ EIGEN_DEVICE_FUNC
+ inline XprType& finished() {
+ eigen_assert(((m_row+m_currentBlockRows) == m_xpr.rows() || m_xpr.cols() == 0)
+ && m_col == m_xpr.cols()
+ && "Too few coefficients passed to comma initializer (operator<<)");
+ return m_xpr;
+ }
+
+ XprType& m_xpr; // target expression
+ Index m_row; // current row id
+ Index m_col; // current col id
+ Index m_currentBlockRows; // current block height
+};
+
+/** \anchor MatrixBaseCommaInitRef
+ * Convenient operator to set the coefficients of a matrix.
+ *
+ * The coefficients must be provided in a row major order and exactly match
+ * the size of the matrix. Otherwise an assertion is raised.
+ *
+ * Example: \include MatrixBase_set.cpp
+ * Output: \verbinclude MatrixBase_set.out
+ *
+ * \note According the c++ standard, the argument expressions of this comma initializer are evaluated in arbitrary order.
+ *
+ * \sa CommaInitializer::finished(), class CommaInitializer
+ */
+template<typename Derived>
+inline CommaInitializer<Derived> DenseBase<Derived>::operator<< (const Scalar& s)
+{
+ return CommaInitializer<Derived>(*static_cast<Derived*>(this), s);
+}
+
+/** \sa operator<<(const Scalar&) */
+template<typename Derived>
+template<typename OtherDerived>
+inline CommaInitializer<Derived>
+DenseBase<Derived>::operator<<(const DenseBase<OtherDerived>& other)
+{
+ return CommaInitializer<Derived>(*static_cast<Derived *>(this), other);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMMAINITIALIZER_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/ConditionEstimator.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/ConditionEstimator.h
new file mode 100644
index 000000000..aa7efdc76
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/ConditionEstimator.h
@@ -0,0 +1,175 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2016 Rasmus Munk Larsen (rmlarsen@google.com)
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CONDITIONESTIMATOR_H
+#define EIGEN_CONDITIONESTIMATOR_H
+
+namespace Eigen {
+
+namespace internal {
+
+template <typename Vector, typename RealVector, bool IsComplex>
+struct rcond_compute_sign {
+ static inline Vector run(const Vector& v) {
+ const RealVector v_abs = v.cwiseAbs();
+ return (v_abs.array() == static_cast<typename Vector::RealScalar>(0))
+ .select(Vector::Ones(v.size()), v.cwiseQuotient(v_abs));
+ }
+};
+
+// Partial specialization to avoid elementwise division for real vectors.
+template <typename Vector>
+struct rcond_compute_sign<Vector, Vector, false> {
+ static inline Vector run(const Vector& v) {
+ return (v.array() < static_cast<typename Vector::RealScalar>(0))
+ .select(-Vector::Ones(v.size()), Vector::Ones(v.size()));
+ }
+};
+
+/**
+ * \returns an estimate of ||inv(matrix)||_1 given a decomposition of
+ * \a matrix that implements .solve() and .adjoint().solve() methods.
+ *
+ * This function implements Algorithms 4.1 and 5.1 from
+ * http://www.maths.manchester.ac.uk/~higham/narep/narep135.pdf
+ * which also forms the basis for the condition number estimators in
+ * LAPACK. Since at most 10 calls to the solve method of dec are
+ * performed, the total cost is O(dims^2), as opposed to O(dims^3)
+ * needed to compute the inverse matrix explicitly.
+ *
+ * The most common usage is in estimating the condition number
+ * ||matrix||_1 * ||inv(matrix)||_1. The first term ||matrix||_1 can be
+ * computed directly in O(n^2) operations.
+ *
+ * Supports the following decompositions: FullPivLU, PartialPivLU, LDLT, and
+ * LLT.
+ *
+ * \sa FullPivLU, PartialPivLU, LDLT, LLT.
+ */
+template <typename Decomposition>
+typename Decomposition::RealScalar rcond_invmatrix_L1_norm_estimate(const Decomposition& dec)
+{
+ typedef typename Decomposition::MatrixType MatrixType;
+ typedef typename Decomposition::Scalar Scalar;
+ typedef typename Decomposition::RealScalar RealScalar;
+ typedef typename internal::plain_col_type<MatrixType>::type Vector;
+ typedef typename internal::plain_col_type<MatrixType, RealScalar>::type RealVector;
+ const bool is_complex = (NumTraits<Scalar>::IsComplex != 0);
+
+ eigen_assert(dec.rows() == dec.cols());
+ const Index n = dec.rows();
+ if (n == 0)
+ return 0;
+
+ // Disable Index to float conversion warning
+#ifdef __INTEL_COMPILER
+ #pragma warning push
+ #pragma warning ( disable : 2259 )
+#endif
+ Vector v = dec.solve(Vector::Ones(n) / Scalar(n));
+#ifdef __INTEL_COMPILER
+ #pragma warning pop
+#endif
+
+ // lower_bound is a lower bound on
+ // ||inv(matrix)||_1 = sup_v ||inv(matrix) v||_1 / ||v||_1
+ // and is the objective maximized by the ("super-") gradient ascent
+ // algorithm below.
+ RealScalar lower_bound = v.template lpNorm<1>();
+ if (n == 1)
+ return lower_bound;
+
+ // Gradient ascent algorithm follows: We know that the optimum is achieved at
+ // one of the simplices v = e_i, so in each iteration we follow a
+ // super-gradient to move towards the optimal one.
+ RealScalar old_lower_bound = lower_bound;
+ Vector sign_vector(n);
+ Vector old_sign_vector;
+ Index v_max_abs_index = -1;
+ Index old_v_max_abs_index = v_max_abs_index;
+ for (int k = 0; k < 4; ++k)
+ {
+ sign_vector = internal::rcond_compute_sign<Vector, RealVector, is_complex>::run(v);
+ if (k > 0 && !is_complex && sign_vector == old_sign_vector) {
+ // Break if the solution stagnated.
+ break;
+ }
+ // v_max_abs_index = argmax |real( inv(matrix)^T * sign_vector )|
+ v = dec.adjoint().solve(sign_vector);
+ v.real().cwiseAbs().maxCoeff(&v_max_abs_index);
+ if (v_max_abs_index == old_v_max_abs_index) {
+ // Break if the solution stagnated.
+ break;
+ }
+ // Move to the new simplex e_j, where j = v_max_abs_index.
+ v = dec.solve(Vector::Unit(n, v_max_abs_index)); // v = inv(matrix) * e_j.
+ lower_bound = v.template lpNorm<1>();
+ if (lower_bound <= old_lower_bound) {
+ // Break if the gradient step did not increase the lower_bound.
+ break;
+ }
+ if (!is_complex) {
+ old_sign_vector = sign_vector;
+ }
+ old_v_max_abs_index = v_max_abs_index;
+ old_lower_bound = lower_bound;
+ }
+ // The following calculates an independent estimate of ||matrix||_1 by
+ // multiplying matrix by a vector with entries of slowly increasing
+ // magnitude and alternating sign:
+ // v_i = (-1)^{i} (1 + (i / (dim-1))), i = 0,...,dim-1.
+ // This improvement to Hager's algorithm above is due to Higham. It was
+ // added to make the algorithm more robust in certain corner cases where
+ // large elements in the matrix might otherwise escape detection due to
+ // exact cancellation (especially when op and op_adjoint correspond to a
+ // sequence of backsubstitutions and permutations), which could cause
+ // Hager's algorithm to vastly underestimate ||matrix||_1.
+ Scalar alternating_sign(RealScalar(1));
+ for (Index i = 0; i < n; ++i) {
+ // The static_cast is needed when Scalar is a complex and RealScalar implements expression templates
+ v[i] = alternating_sign * static_cast<RealScalar>(RealScalar(1) + (RealScalar(i) / (RealScalar(n - 1))));
+ alternating_sign = -alternating_sign;
+ }
+ v = dec.solve(v);
+ const RealScalar alternate_lower_bound = (2 * v.template lpNorm<1>()) / (3 * RealScalar(n));
+ return numext::maxi(lower_bound, alternate_lower_bound);
+}
+
+/** \brief Reciprocal condition number estimator.
+ *
+ * Computing a decomposition of a dense matrix takes O(n^3) operations, while
+ * this method estimates the condition number quickly and reliably in O(n^2)
+ * operations.
+ *
+ * \returns an estimate of the reciprocal condition number
+ * (1 / (||matrix||_1 * ||inv(matrix)||_1)) of matrix, given ||matrix||_1 and
+ * its decomposition. Supports the following decompositions: FullPivLU,
+ * PartialPivLU, LDLT, and LLT.
+ *
+ * \sa FullPivLU, PartialPivLU, LDLT, LLT.
+ */
+template <typename Decomposition>
+typename Decomposition::RealScalar
+rcond_estimate_helper(typename Decomposition::RealScalar matrix_norm, const Decomposition& dec)
+{
+ typedef typename Decomposition::RealScalar RealScalar;
+ eigen_assert(dec.rows() == dec.cols());
+ if (dec.rows() == 0) return RealScalar(1);
+ if (matrix_norm == RealScalar(0)) return RealScalar(0);
+ if (dec.rows() == 1) return RealScalar(1);
+ const RealScalar inverse_matrix_norm = rcond_invmatrix_L1_norm_estimate(dec);
+ return (inverse_matrix_norm == RealScalar(0) ? RealScalar(0)
+ : (RealScalar(1) / inverse_matrix_norm) / matrix_norm);
+}
+
+} // namespace internal
+
+} // namespace Eigen
+
+#endif
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/CoreEvaluators.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/CoreEvaluators.h
new file mode 100644
index 000000000..f7c1effca
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/CoreEvaluators.h
@@ -0,0 +1,1671 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2011-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2011-2012 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+#ifndef EIGEN_COREEVALUATORS_H
+#define EIGEN_COREEVALUATORS_H
+
+namespace Eigen {
+
+namespace internal {
+
+// This class returns the evaluator kind from the expression storage kind.
+// Default assumes index based accessors
+template<typename StorageKind>
+struct storage_kind_to_evaluator_kind {
+ typedef IndexBased Kind;
+};
+
+// This class returns the evaluator shape from the expression storage kind.
+// It can be Dense, Sparse, Triangular, Diagonal, SelfAdjoint, Band, etc.
+template<typename StorageKind> struct storage_kind_to_shape;
+
+template<> struct storage_kind_to_shape<Dense> { typedef DenseShape Shape; };
+template<> struct storage_kind_to_shape<SolverStorage> { typedef SolverShape Shape; };
+template<> struct storage_kind_to_shape<PermutationStorage> { typedef PermutationShape Shape; };
+template<> struct storage_kind_to_shape<TranspositionsStorage> { typedef TranspositionsShape Shape; };
+
+// Evaluators have to be specialized with respect to various criteria such as:
+// - storage/structure/shape
+// - scalar type
+// - etc.
+// Therefore, we need specialization of evaluator providing additional template arguments for each kind of evaluators.
+// We currently distinguish the following kind of evaluators:
+// - unary_evaluator for expressions taking only one arguments (CwiseUnaryOp, CwiseUnaryView, Transpose, MatrixWrapper, ArrayWrapper, Reverse, Replicate)
+// - binary_evaluator for expression taking two arguments (CwiseBinaryOp)
+// - ternary_evaluator for expression taking three arguments (CwiseTernaryOp)
+// - product_evaluator for linear algebra products (Product); special case of binary_evaluator because it requires additional tags for dispatching.
+// - mapbase_evaluator for Map, Block, Ref
+// - block_evaluator for Block (special dispatching to a mapbase_evaluator or unary_evaluator)
+
+template< typename T,
+ typename Arg1Kind = typename evaluator_traits<typename T::Arg1>::Kind,
+ typename Arg2Kind = typename evaluator_traits<typename T::Arg2>::Kind,
+ typename Arg3Kind = typename evaluator_traits<typename T::Arg3>::Kind,
+ typename Arg1Scalar = typename traits<typename T::Arg1>::Scalar,
+ typename Arg2Scalar = typename traits<typename T::Arg2>::Scalar,
+ typename Arg3Scalar = typename traits<typename T::Arg3>::Scalar> struct ternary_evaluator;
+
+template< typename T,
+ typename LhsKind = typename evaluator_traits<typename T::Lhs>::Kind,
+ typename RhsKind = typename evaluator_traits<typename T::Rhs>::Kind,
+ typename LhsScalar = typename traits<typename T::Lhs>::Scalar,
+ typename RhsScalar = typename traits<typename T::Rhs>::Scalar> struct binary_evaluator;
+
+template< typename T,
+ typename Kind = typename evaluator_traits<typename T::NestedExpression>::Kind,
+ typename Scalar = typename T::Scalar> struct unary_evaluator;
+
+// evaluator_traits<T> contains traits for evaluator<T>
+
+template<typename T>
+struct evaluator_traits_base
+{
+ // by default, get evaluator kind and shape from storage
+ typedef typename storage_kind_to_evaluator_kind<typename traits<T>::StorageKind>::Kind Kind;
+ typedef typename storage_kind_to_shape<typename traits<T>::StorageKind>::Shape Shape;
+};
+
+// Default evaluator traits
+template<typename T>
+struct evaluator_traits : public evaluator_traits_base<T>
+{
+};
+
+template<typename T, typename Shape = typename evaluator_traits<T>::Shape >
+struct evaluator_assume_aliasing {
+ static const bool value = false;
+};
+
+// By default, we assume a unary expression:
+template<typename T>
+struct evaluator : public unary_evaluator<T>
+{
+ typedef unary_evaluator<T> Base;
+ EIGEN_DEVICE_FUNC explicit evaluator(const T& xpr) : Base(xpr) {}
+};
+
+
+// TODO: Think about const-correctness
+template<typename T>
+struct evaluator<const T>
+ : evaluator<T>
+{
+ EIGEN_DEVICE_FUNC
+ explicit evaluator(const T& xpr) : evaluator<T>(xpr) {}
+};
+
+// ---------- base class for all evaluators ----------
+
+template<typename ExpressionType>
+struct evaluator_base : public noncopyable
+{
+ // TODO that's not very nice to have to propagate all these traits. They are currently only needed to handle outer,inner indices.
+ typedef traits<ExpressionType> ExpressionTraits;
+
+ enum {
+ Alignment = 0
+ };
+};
+
+// -------------------- Matrix and Array --------------------
+//
+// evaluator<PlainObjectBase> is a common base class for the
+// Matrix and Array evaluators.
+// Here we directly specialize evaluator. This is not really a unary expression, and it is, by definition, dense,
+// so no need for more sophisticated dispatching.
+
+template<typename Derived>
+struct evaluator<PlainObjectBase<Derived> >
+ : evaluator_base<Derived>
+{
+ typedef PlainObjectBase<Derived> PlainObjectType;
+ typedef typename PlainObjectType::Scalar Scalar;
+ typedef typename PlainObjectType::CoeffReturnType CoeffReturnType;
+
+ enum {
+ IsRowMajor = PlainObjectType::IsRowMajor,
+ IsVectorAtCompileTime = PlainObjectType::IsVectorAtCompileTime,
+ RowsAtCompileTime = PlainObjectType::RowsAtCompileTime,
+ ColsAtCompileTime = PlainObjectType::ColsAtCompileTime,
+
+ CoeffReadCost = NumTraits<Scalar>::ReadCost,
+ Flags = traits<Derived>::EvaluatorFlags,
+ Alignment = traits<Derived>::Alignment
+ };
+
+ EIGEN_DEVICE_FUNC evaluator()
+ : m_data(0),
+ m_outerStride(IsVectorAtCompileTime ? 0
+ : int(IsRowMajor) ? ColsAtCompileTime
+ : RowsAtCompileTime)
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ EIGEN_DEVICE_FUNC explicit evaluator(const PlainObjectType& m)
+ : m_data(m.data()), m_outerStride(IsVectorAtCompileTime ? 0 : m.outerStride())
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index row, Index col) const
+ {
+ if (IsRowMajor)
+ return m_data[row * m_outerStride.value() + col];
+ else
+ return m_data[row + col * m_outerStride.value()];
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index index) const
+ {
+ return m_data[index];
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Scalar& coeffRef(Index row, Index col)
+ {
+ if (IsRowMajor)
+ return const_cast<Scalar*>(m_data)[row * m_outerStride.value() + col];
+ else
+ return const_cast<Scalar*>(m_data)[row + col * m_outerStride.value()];
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Scalar& coeffRef(Index index)
+ {
+ return const_cast<Scalar*>(m_data)[index];
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(Index row, Index col) const
+ {
+ if (IsRowMajor)
+ return ploadt<PacketType, LoadMode>(m_data + row * m_outerStride.value() + col);
+ else
+ return ploadt<PacketType, LoadMode>(m_data + row + col * m_outerStride.value());
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(Index index) const
+ {
+ return ploadt<PacketType, LoadMode>(m_data + index);
+ }
+
+ template<int StoreMode,typename PacketType>
+ EIGEN_STRONG_INLINE
+ void writePacket(Index row, Index col, const PacketType& x)
+ {
+ if (IsRowMajor)
+ return pstoret<Scalar, PacketType, StoreMode>
+ (const_cast<Scalar*>(m_data) + row * m_outerStride.value() + col, x);
+ else
+ return pstoret<Scalar, PacketType, StoreMode>
+ (const_cast<Scalar*>(m_data) + row + col * m_outerStride.value(), x);
+ }
+
+ template<int StoreMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ void writePacket(Index index, const PacketType& x)
+ {
+ return pstoret<Scalar, PacketType, StoreMode>(const_cast<Scalar*>(m_data) + index, x);
+ }
+
+protected:
+ const Scalar *m_data;
+
+ // We do not need to know the outer stride for vectors
+ variable_if_dynamic<Index, IsVectorAtCompileTime ? 0
+ : int(IsRowMajor) ? ColsAtCompileTime
+ : RowsAtCompileTime> m_outerStride;
+};
+
+template<typename Scalar, int Rows, int Cols, int Options, int MaxRows, int MaxCols>
+struct evaluator<Matrix<Scalar, Rows, Cols, Options, MaxRows, MaxCols> >
+ : evaluator<PlainObjectBase<Matrix<Scalar, Rows, Cols, Options, MaxRows, MaxCols> > >
+{
+ typedef Matrix<Scalar, Rows, Cols, Options, MaxRows, MaxCols> XprType;
+
+ EIGEN_DEVICE_FUNC evaluator() {}
+
+ EIGEN_DEVICE_FUNC explicit evaluator(const XprType& m)
+ : evaluator<PlainObjectBase<XprType> >(m)
+ { }
+};
+
+template<typename Scalar, int Rows, int Cols, int Options, int MaxRows, int MaxCols>
+struct evaluator<Array<Scalar, Rows, Cols, Options, MaxRows, MaxCols> >
+ : evaluator<PlainObjectBase<Array<Scalar, Rows, Cols, Options, MaxRows, MaxCols> > >
+{
+ typedef Array<Scalar, Rows, Cols, Options, MaxRows, MaxCols> XprType;
+
+ EIGEN_DEVICE_FUNC evaluator() {}
+
+ EIGEN_DEVICE_FUNC explicit evaluator(const XprType& m)
+ : evaluator<PlainObjectBase<XprType> >(m)
+ { }
+};
+
+// -------------------- Transpose --------------------
+
+template<typename ArgType>
+struct unary_evaluator<Transpose<ArgType>, IndexBased>
+ : evaluator_base<Transpose<ArgType> >
+{
+ typedef Transpose<ArgType> XprType;
+
+ enum {
+ CoeffReadCost = evaluator<ArgType>::CoeffReadCost,
+ Flags = evaluator<ArgType>::Flags ^ RowMajorBit,
+ Alignment = evaluator<ArgType>::Alignment
+ };
+
+ EIGEN_DEVICE_FUNC explicit unary_evaluator(const XprType& t) : m_argImpl(t.nestedExpression()) {}
+
+ typedef typename XprType::Scalar Scalar;
+ typedef typename XprType::CoeffReturnType CoeffReturnType;
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index row, Index col) const
+ {
+ return m_argImpl.coeff(col, row);
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index index) const
+ {
+ return m_argImpl.coeff(index);
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Scalar& coeffRef(Index row, Index col)
+ {
+ return m_argImpl.coeffRef(col, row);
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ typename XprType::Scalar& coeffRef(Index index)
+ {
+ return m_argImpl.coeffRef(index);
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(Index row, Index col) const
+ {
+ return m_argImpl.template packet<LoadMode,PacketType>(col, row);
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(Index index) const
+ {
+ return m_argImpl.template packet<LoadMode,PacketType>(index);
+ }
+
+ template<int StoreMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ void writePacket(Index row, Index col, const PacketType& x)
+ {
+ m_argImpl.template writePacket<StoreMode,PacketType>(col, row, x);
+ }
+
+ template<int StoreMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ void writePacket(Index index, const PacketType& x)
+ {
+ m_argImpl.template writePacket<StoreMode,PacketType>(index, x);
+ }
+
+protected:
+ evaluator<ArgType> m_argImpl;
+};
+
+// -------------------- CwiseNullaryOp --------------------
+// Like Matrix and Array, this is not really a unary expression, so we directly specialize evaluator.
+// Likewise, there is not need to more sophisticated dispatching here.
+
+template<typename Scalar,typename NullaryOp,
+ bool has_nullary = has_nullary_operator<NullaryOp>::value,
+ bool has_unary = has_unary_operator<NullaryOp>::value,
+ bool has_binary = has_binary_operator<NullaryOp>::value>
+struct nullary_wrapper
+{
+ template <typename IndexType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, IndexType i, IndexType j) const { return op(i,j); }
+ template <typename IndexType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, IndexType i) const { return op(i); }
+
+ template <typename T, typename IndexType> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i, IndexType j) const { return op.template packetOp<T>(i,j); }
+ template <typename T, typename IndexType> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i) const { return op.template packetOp<T>(i); }
+};
+
+template<typename Scalar,typename NullaryOp>
+struct nullary_wrapper<Scalar,NullaryOp,true,false,false>
+{
+ template <typename IndexType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, IndexType=0, IndexType=0) const { return op(); }
+ template <typename T, typename IndexType> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType=0, IndexType=0) const { return op.template packetOp<T>(); }
+};
+
+template<typename Scalar,typename NullaryOp>
+struct nullary_wrapper<Scalar,NullaryOp,false,false,true>
+{
+ template <typename IndexType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, IndexType i, IndexType j=0) const { return op(i,j); }
+ template <typename T, typename IndexType> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i, IndexType j=0) const { return op.template packetOp<T>(i,j); }
+};
+
+// We need the following specialization for vector-only functors assigned to a runtime vector,
+// for instance, using linspace and assigning a RowVectorXd to a MatrixXd or even a row of a MatrixXd.
+// In this case, i==0 and j is used for the actual iteration.
+template<typename Scalar,typename NullaryOp>
+struct nullary_wrapper<Scalar,NullaryOp,false,true,false>
+{
+ template <typename IndexType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, IndexType i, IndexType j) const {
+ eigen_assert(i==0 || j==0);
+ return op(i+j);
+ }
+ template <typename T, typename IndexType> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i, IndexType j) const {
+ eigen_assert(i==0 || j==0);
+ return op.template packetOp<T>(i+j);
+ }
+
+ template <typename IndexType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, IndexType i) const { return op(i); }
+ template <typename T, typename IndexType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i) const { return op.template packetOp<T>(i); }
+};
+
+template<typename Scalar,typename NullaryOp>
+struct nullary_wrapper<Scalar,NullaryOp,false,false,false> {};
+
+#if 0 && EIGEN_COMP_MSVC>0
+// Disable this ugly workaround. This is now handled in traits<Ref>::match,
+// but this piece of code might still become handly if some other weird compilation
+// erros pop up again.
+
+// MSVC exhibits a weird compilation error when
+// compiling:
+// Eigen::MatrixXf A = MatrixXf::Random(3,3);
+// Ref<const MatrixXf> R = 2.f*A;
+// and that has_*ary_operator<scalar_constant_op<float>> have not been instantiated yet.
+// The "problem" is that evaluator<2.f*A> is instantiated by traits<Ref>::match<2.f*A>
+// and at that time has_*ary_operator<T> returns true regardless of T.
+// Then nullary_wrapper is badly instantiated as nullary_wrapper<.,.,true,true,true>.
+// The trick is thus to defer the proper instantiation of nullary_wrapper when coeff(),
+// and packet() are really instantiated as implemented below:
+
+// This is a simple wrapper around Index to enforce the re-instantiation of
+// has_*ary_operator when needed.
+template<typename T> struct nullary_wrapper_workaround_msvc {
+ nullary_wrapper_workaround_msvc(const T&);
+ operator T()const;
+};
+
+template<typename Scalar,typename NullaryOp>
+struct nullary_wrapper<Scalar,NullaryOp,true,true,true>
+{
+ template <typename IndexType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, IndexType i, IndexType j) const {
+ return nullary_wrapper<Scalar,NullaryOp,
+ has_nullary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >::value,
+ has_unary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >::value,
+ has_binary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >::value>().operator()(op,i,j);
+ }
+ template <typename IndexType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const NullaryOp& op, IndexType i) const {
+ return nullary_wrapper<Scalar,NullaryOp,
+ has_nullary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >::value,
+ has_unary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >::value,
+ has_binary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >::value>().operator()(op,i);
+ }
+
+ template <typename T, typename IndexType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i, IndexType j) const {
+ return nullary_wrapper<Scalar,NullaryOp,
+ has_nullary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >::value,
+ has_unary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >::value,
+ has_binary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >::value>().template packetOp<T>(op,i,j);
+ }
+ template <typename T, typename IndexType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T packetOp(const NullaryOp& op, IndexType i) const {
+ return nullary_wrapper<Scalar,NullaryOp,
+ has_nullary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >::value,
+ has_unary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >::value,
+ has_binary_operator<NullaryOp,nullary_wrapper_workaround_msvc<IndexType> >::value>().template packetOp<T>(op,i);
+ }
+};
+#endif // MSVC workaround
+
+template<typename NullaryOp, typename PlainObjectType>
+struct evaluator<CwiseNullaryOp<NullaryOp,PlainObjectType> >
+ : evaluator_base<CwiseNullaryOp<NullaryOp,PlainObjectType> >
+{
+ typedef CwiseNullaryOp<NullaryOp,PlainObjectType> XprType;
+ typedef typename internal::remove_all<PlainObjectType>::type PlainObjectTypeCleaned;
+
+ enum {
+ CoeffReadCost = internal::functor_traits<NullaryOp>::Cost,
+
+ Flags = (evaluator<PlainObjectTypeCleaned>::Flags
+ & ( HereditaryBits
+ | (functor_has_linear_access<NullaryOp>::ret ? LinearAccessBit : 0)
+ | (functor_traits<NullaryOp>::PacketAccess ? PacketAccessBit : 0)))
+ | (functor_traits<NullaryOp>::IsRepeatable ? 0 : EvalBeforeNestingBit),
+ Alignment = AlignedMax
+ };
+
+ EIGEN_DEVICE_FUNC explicit evaluator(const XprType& n)
+ : m_functor(n.functor()), m_wrapper()
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ typedef typename XprType::CoeffReturnType CoeffReturnType;
+
+ template <typename IndexType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(IndexType row, IndexType col) const
+ {
+ return m_wrapper(m_functor, row, col);
+ }
+
+ template <typename IndexType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(IndexType index) const
+ {
+ return m_wrapper(m_functor,index);
+ }
+
+ template<int LoadMode, typename PacketType, typename IndexType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(IndexType row, IndexType col) const
+ {
+ return m_wrapper.template packetOp<PacketType>(m_functor, row, col);
+ }
+
+ template<int LoadMode, typename PacketType, typename IndexType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(IndexType index) const
+ {
+ return m_wrapper.template packetOp<PacketType>(m_functor, index);
+ }
+
+protected:
+ const NullaryOp m_functor;
+ const internal::nullary_wrapper<CoeffReturnType,NullaryOp> m_wrapper;
+};
+
+// -------------------- CwiseUnaryOp --------------------
+
+template<typename UnaryOp, typename ArgType>
+struct unary_evaluator<CwiseUnaryOp<UnaryOp, ArgType>, IndexBased >
+ : evaluator_base<CwiseUnaryOp<UnaryOp, ArgType> >
+{
+ typedef CwiseUnaryOp<UnaryOp, ArgType> XprType;
+
+ enum {
+ CoeffReadCost = evaluator<ArgType>::CoeffReadCost + functor_traits<UnaryOp>::Cost,
+
+ Flags = evaluator<ArgType>::Flags
+ & (HereditaryBits | LinearAccessBit | (functor_traits<UnaryOp>::PacketAccess ? PacketAccessBit : 0)),
+ Alignment = evaluator<ArgType>::Alignment
+ };
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ explicit unary_evaluator(const XprType& op)
+ : m_functor(op.functor()),
+ m_argImpl(op.nestedExpression())
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(functor_traits<UnaryOp>::Cost);
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ typedef typename XprType::CoeffReturnType CoeffReturnType;
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index row, Index col) const
+ {
+ return m_functor(m_argImpl.coeff(row, col));
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index index) const
+ {
+ return m_functor(m_argImpl.coeff(index));
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(Index row, Index col) const
+ {
+ return m_functor.packetOp(m_argImpl.template packet<LoadMode, PacketType>(row, col));
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(Index index) const
+ {
+ return m_functor.packetOp(m_argImpl.template packet<LoadMode, PacketType>(index));
+ }
+
+protected:
+ const UnaryOp m_functor;
+ evaluator<ArgType> m_argImpl;
+};
+
+// -------------------- CwiseTernaryOp --------------------
+
+// this is a ternary expression
+template<typename TernaryOp, typename Arg1, typename Arg2, typename Arg3>
+struct evaluator<CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3> >
+ : public ternary_evaluator<CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3> >
+{
+ typedef CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3> XprType;
+ typedef ternary_evaluator<CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3> > Base;
+
+ EIGEN_DEVICE_FUNC explicit evaluator(const XprType& xpr) : Base(xpr) {}
+};
+
+template<typename TernaryOp, typename Arg1, typename Arg2, typename Arg3>
+struct ternary_evaluator<CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3>, IndexBased, IndexBased>
+ : evaluator_base<CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3> >
+{
+ typedef CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3> XprType;
+
+ enum {
+ CoeffReadCost = evaluator<Arg1>::CoeffReadCost + evaluator<Arg2>::CoeffReadCost + evaluator<Arg3>::CoeffReadCost + functor_traits<TernaryOp>::Cost,
+
+ Arg1Flags = evaluator<Arg1>::Flags,
+ Arg2Flags = evaluator<Arg2>::Flags,
+ Arg3Flags = evaluator<Arg3>::Flags,
+ SameType = is_same<typename Arg1::Scalar,typename Arg2::Scalar>::value && is_same<typename Arg1::Scalar,typename Arg3::Scalar>::value,
+ StorageOrdersAgree = (int(Arg1Flags)&RowMajorBit)==(int(Arg2Flags)&RowMajorBit) && (int(Arg1Flags)&RowMajorBit)==(int(Arg3Flags)&RowMajorBit),
+ Flags0 = (int(Arg1Flags) | int(Arg2Flags) | int(Arg3Flags)) & (
+ HereditaryBits
+ | (int(Arg1Flags) & int(Arg2Flags) & int(Arg3Flags) &
+ ( (StorageOrdersAgree ? LinearAccessBit : 0)
+ | (functor_traits<TernaryOp>::PacketAccess && StorageOrdersAgree && SameType ? PacketAccessBit : 0)
+ )
+ )
+ ),
+ Flags = (Flags0 & ~RowMajorBit) | (Arg1Flags & RowMajorBit),
+ Alignment = EIGEN_PLAIN_ENUM_MIN(
+ EIGEN_PLAIN_ENUM_MIN(evaluator<Arg1>::Alignment, evaluator<Arg2>::Alignment),
+ evaluator<Arg3>::Alignment)
+ };
+
+ EIGEN_DEVICE_FUNC explicit ternary_evaluator(const XprType& xpr)
+ : m_functor(xpr.functor()),
+ m_arg1Impl(xpr.arg1()),
+ m_arg2Impl(xpr.arg2()),
+ m_arg3Impl(xpr.arg3())
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(functor_traits<TernaryOp>::Cost);
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ typedef typename XprType::CoeffReturnType CoeffReturnType;
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index row, Index col) const
+ {
+ return m_functor(m_arg1Impl.coeff(row, col), m_arg2Impl.coeff(row, col), m_arg3Impl.coeff(row, col));
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index index) const
+ {
+ return m_functor(m_arg1Impl.coeff(index), m_arg2Impl.coeff(index), m_arg3Impl.coeff(index));
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(Index row, Index col) const
+ {
+ return m_functor.packetOp(m_arg1Impl.template packet<LoadMode,PacketType>(row, col),
+ m_arg2Impl.template packet<LoadMode,PacketType>(row, col),
+ m_arg3Impl.template packet<LoadMode,PacketType>(row, col));
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(Index index) const
+ {
+ return m_functor.packetOp(m_arg1Impl.template packet<LoadMode,PacketType>(index),
+ m_arg2Impl.template packet<LoadMode,PacketType>(index),
+ m_arg3Impl.template packet<LoadMode,PacketType>(index));
+ }
+
+protected:
+ const TernaryOp m_functor;
+ evaluator<Arg1> m_arg1Impl;
+ evaluator<Arg2> m_arg2Impl;
+ evaluator<Arg3> m_arg3Impl;
+};
+
+// -------------------- CwiseBinaryOp --------------------
+
+// this is a binary expression
+template<typename BinaryOp, typename Lhs, typename Rhs>
+struct evaluator<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >
+ : public binary_evaluator<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >
+{
+ typedef CwiseBinaryOp<BinaryOp, Lhs, Rhs> XprType;
+ typedef binary_evaluator<CwiseBinaryOp<BinaryOp, Lhs, Rhs> > Base;
+
+ EIGEN_DEVICE_FUNC explicit evaluator(const XprType& xpr) : Base(xpr) {}
+};
+
+template<typename BinaryOp, typename Lhs, typename Rhs>
+struct binary_evaluator<CwiseBinaryOp<BinaryOp, Lhs, Rhs>, IndexBased, IndexBased>
+ : evaluator_base<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >
+{
+ typedef CwiseBinaryOp<BinaryOp, Lhs, Rhs> XprType;
+
+ enum {
+ CoeffReadCost = evaluator<Lhs>::CoeffReadCost + evaluator<Rhs>::CoeffReadCost + functor_traits<BinaryOp>::Cost,
+
+ LhsFlags = evaluator<Lhs>::Flags,
+ RhsFlags = evaluator<Rhs>::Flags,
+ SameType = is_same<typename Lhs::Scalar,typename Rhs::Scalar>::value,
+ StorageOrdersAgree = (int(LhsFlags)&RowMajorBit)==(int(RhsFlags)&RowMajorBit),
+ Flags0 = (int(LhsFlags) | int(RhsFlags)) & (
+ HereditaryBits
+ | (int(LhsFlags) & int(RhsFlags) &
+ ( (StorageOrdersAgree ? LinearAccessBit : 0)
+ | (functor_traits<BinaryOp>::PacketAccess && StorageOrdersAgree && SameType ? PacketAccessBit : 0)
+ )
+ )
+ ),
+ Flags = (Flags0 & ~RowMajorBit) | (LhsFlags & RowMajorBit),
+ Alignment = EIGEN_PLAIN_ENUM_MIN(evaluator<Lhs>::Alignment,evaluator<Rhs>::Alignment)
+ };
+
+ EIGEN_DEVICE_FUNC explicit binary_evaluator(const XprType& xpr)
+ : m_functor(xpr.functor()),
+ m_lhsImpl(xpr.lhs()),
+ m_rhsImpl(xpr.rhs())
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(functor_traits<BinaryOp>::Cost);
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ typedef typename XprType::CoeffReturnType CoeffReturnType;
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index row, Index col) const
+ {
+ return m_functor(m_lhsImpl.coeff(row, col), m_rhsImpl.coeff(row, col));
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index index) const
+ {
+ return m_functor(m_lhsImpl.coeff(index), m_rhsImpl.coeff(index));
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(Index row, Index col) const
+ {
+ return m_functor.packetOp(m_lhsImpl.template packet<LoadMode,PacketType>(row, col),
+ m_rhsImpl.template packet<LoadMode,PacketType>(row, col));
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(Index index) const
+ {
+ return m_functor.packetOp(m_lhsImpl.template packet<LoadMode,PacketType>(index),
+ m_rhsImpl.template packet<LoadMode,PacketType>(index));
+ }
+
+protected:
+ const BinaryOp m_functor;
+ evaluator<Lhs> m_lhsImpl;
+ evaluator<Rhs> m_rhsImpl;
+};
+
+// -------------------- CwiseUnaryView --------------------
+
+template<typename UnaryOp, typename ArgType>
+struct unary_evaluator<CwiseUnaryView<UnaryOp, ArgType>, IndexBased>
+ : evaluator_base<CwiseUnaryView<UnaryOp, ArgType> >
+{
+ typedef CwiseUnaryView<UnaryOp, ArgType> XprType;
+
+ enum {
+ CoeffReadCost = evaluator<ArgType>::CoeffReadCost + functor_traits<UnaryOp>::Cost,
+
+ Flags = (evaluator<ArgType>::Flags & (HereditaryBits | LinearAccessBit | DirectAccessBit)),
+
+ Alignment = 0 // FIXME it is not very clear why alignment is necessarily lost...
+ };
+
+ EIGEN_DEVICE_FUNC explicit unary_evaluator(const XprType& op)
+ : m_unaryOp(op.functor()),
+ m_argImpl(op.nestedExpression())
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(functor_traits<UnaryOp>::Cost);
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ typedef typename XprType::Scalar Scalar;
+ typedef typename XprType::CoeffReturnType CoeffReturnType;
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index row, Index col) const
+ {
+ return m_unaryOp(m_argImpl.coeff(row, col));
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index index) const
+ {
+ return m_unaryOp(m_argImpl.coeff(index));
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Scalar& coeffRef(Index row, Index col)
+ {
+ return m_unaryOp(m_argImpl.coeffRef(row, col));
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Scalar& coeffRef(Index index)
+ {
+ return m_unaryOp(m_argImpl.coeffRef(index));
+ }
+
+protected:
+ const UnaryOp m_unaryOp;
+ evaluator<ArgType> m_argImpl;
+};
+
+// -------------------- Map --------------------
+
+// FIXME perhaps the PlainObjectType could be provided by Derived::PlainObject ?
+// but that might complicate template specialization
+template<typename Derived, typename PlainObjectType>
+struct mapbase_evaluator;
+
+template<typename Derived, typename PlainObjectType>
+struct mapbase_evaluator : evaluator_base<Derived>
+{
+ typedef Derived XprType;
+ typedef typename XprType::PointerType PointerType;
+ typedef typename XprType::Scalar Scalar;
+ typedef typename XprType::CoeffReturnType CoeffReturnType;
+
+ enum {
+ IsRowMajor = XprType::RowsAtCompileTime,
+ ColsAtCompileTime = XprType::ColsAtCompileTime,
+ CoeffReadCost = NumTraits<Scalar>::ReadCost
+ };
+
+ EIGEN_DEVICE_FUNC explicit mapbase_evaluator(const XprType& map)
+ : m_data(const_cast<PointerType>(map.data())),
+ m_innerStride(map.innerStride()),
+ m_outerStride(map.outerStride())
+ {
+ EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(evaluator<Derived>::Flags&PacketAccessBit, internal::inner_stride_at_compile_time<Derived>::ret==1),
+ PACKET_ACCESS_REQUIRES_TO_HAVE_INNER_STRIDE_FIXED_TO_1);
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index row, Index col) const
+ {
+ return m_data[col * colStride() + row * rowStride()];
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index index) const
+ {
+ return m_data[index * m_innerStride.value()];
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Scalar& coeffRef(Index row, Index col)
+ {
+ return m_data[col * colStride() + row * rowStride()];
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Scalar& coeffRef(Index index)
+ {
+ return m_data[index * m_innerStride.value()];
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(Index row, Index col) const
+ {
+ PointerType ptr = m_data + row * rowStride() + col * colStride();
+ return internal::ploadt<PacketType, LoadMode>(ptr);
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(Index index) const
+ {
+ return internal::ploadt<PacketType, LoadMode>(m_data + index * m_innerStride.value());
+ }
+
+ template<int StoreMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ void writePacket(Index row, Index col, const PacketType& x)
+ {
+ PointerType ptr = m_data + row * rowStride() + col * colStride();
+ return internal::pstoret<Scalar, PacketType, StoreMode>(ptr, x);
+ }
+
+ template<int StoreMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ void writePacket(Index index, const PacketType& x)
+ {
+ internal::pstoret<Scalar, PacketType, StoreMode>(m_data + index * m_innerStride.value(), x);
+ }
+protected:
+ EIGEN_DEVICE_FUNC
+ inline Index rowStride() const { return XprType::IsRowMajor ? m_outerStride.value() : m_innerStride.value(); }
+ EIGEN_DEVICE_FUNC
+ inline Index colStride() const { return XprType::IsRowMajor ? m_innerStride.value() : m_outerStride.value(); }
+
+ PointerType m_data;
+ const internal::variable_if_dynamic<Index, XprType::InnerStrideAtCompileTime> m_innerStride;
+ const internal::variable_if_dynamic<Index, XprType::OuterStrideAtCompileTime> m_outerStride;
+};
+
+template<typename PlainObjectType, int MapOptions, typename StrideType>
+struct evaluator<Map<PlainObjectType, MapOptions, StrideType> >
+ : public mapbase_evaluator<Map<PlainObjectType, MapOptions, StrideType>, PlainObjectType>
+{
+ typedef Map<PlainObjectType, MapOptions, StrideType> XprType;
+ typedef typename XprType::Scalar Scalar;
+ // TODO: should check for smaller packet types once we can handle multi-sized packet types
+ typedef typename packet_traits<Scalar>::type PacketScalar;
+
+ enum {
+ InnerStrideAtCompileTime = StrideType::InnerStrideAtCompileTime == 0
+ ? int(PlainObjectType::InnerStrideAtCompileTime)
+ : int(StrideType::InnerStrideAtCompileTime),
+ OuterStrideAtCompileTime = StrideType::OuterStrideAtCompileTime == 0
+ ? int(PlainObjectType::OuterStrideAtCompileTime)
+ : int(StrideType::OuterStrideAtCompileTime),
+ HasNoInnerStride = InnerStrideAtCompileTime == 1,
+ HasNoOuterStride = StrideType::OuterStrideAtCompileTime == 0,
+ HasNoStride = HasNoInnerStride && HasNoOuterStride,
+ IsDynamicSize = PlainObjectType::SizeAtCompileTime==Dynamic,
+
+ PacketAccessMask = bool(HasNoInnerStride) ? ~int(0) : ~int(PacketAccessBit),
+ LinearAccessMask = bool(HasNoStride) || bool(PlainObjectType::IsVectorAtCompileTime) ? ~int(0) : ~int(LinearAccessBit),
+ Flags = int( evaluator<PlainObjectType>::Flags) & (LinearAccessMask&PacketAccessMask),
+
+ Alignment = int(MapOptions)&int(AlignedMask)
+ };
+
+ EIGEN_DEVICE_FUNC explicit evaluator(const XprType& map)
+ : mapbase_evaluator<XprType, PlainObjectType>(map)
+ { }
+};
+
+// -------------------- Ref --------------------
+
+template<typename PlainObjectType, int RefOptions, typename StrideType>
+struct evaluator<Ref<PlainObjectType, RefOptions, StrideType> >
+ : public mapbase_evaluator<Ref<PlainObjectType, RefOptions, StrideType>, PlainObjectType>
+{
+ typedef Ref<PlainObjectType, RefOptions, StrideType> XprType;
+
+ enum {
+ Flags = evaluator<Map<PlainObjectType, RefOptions, StrideType> >::Flags,
+ Alignment = evaluator<Map<PlainObjectType, RefOptions, StrideType> >::Alignment
+ };
+
+ EIGEN_DEVICE_FUNC explicit evaluator(const XprType& ref)
+ : mapbase_evaluator<XprType, PlainObjectType>(ref)
+ { }
+};
+
+// -------------------- Block --------------------
+
+template<typename ArgType, int BlockRows, int BlockCols, bool InnerPanel,
+ bool HasDirectAccess = internal::has_direct_access<ArgType>::ret> struct block_evaluator;
+
+template<typename ArgType, int BlockRows, int BlockCols, bool InnerPanel>
+struct evaluator<Block<ArgType, BlockRows, BlockCols, InnerPanel> >
+ : block_evaluator<ArgType, BlockRows, BlockCols, InnerPanel>
+{
+ typedef Block<ArgType, BlockRows, BlockCols, InnerPanel> XprType;
+ typedef typename XprType::Scalar Scalar;
+ // TODO: should check for smaller packet types once we can handle multi-sized packet types
+ typedef typename packet_traits<Scalar>::type PacketScalar;
+
+ enum {
+ CoeffReadCost = evaluator<ArgType>::CoeffReadCost,
+
+ RowsAtCompileTime = traits<XprType>::RowsAtCompileTime,
+ ColsAtCompileTime = traits<XprType>::ColsAtCompileTime,
+ MaxRowsAtCompileTime = traits<XprType>::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = traits<XprType>::MaxColsAtCompileTime,
+
+ ArgTypeIsRowMajor = (int(evaluator<ArgType>::Flags)&RowMajorBit) != 0,
+ IsRowMajor = (MaxRowsAtCompileTime==1 && MaxColsAtCompileTime!=1) ? 1
+ : (MaxColsAtCompileTime==1 && MaxRowsAtCompileTime!=1) ? 0
+ : ArgTypeIsRowMajor,
+ HasSameStorageOrderAsArgType = (IsRowMajor == ArgTypeIsRowMajor),
+ InnerSize = IsRowMajor ? int(ColsAtCompileTime) : int(RowsAtCompileTime),
+ InnerStrideAtCompileTime = HasSameStorageOrderAsArgType
+ ? int(inner_stride_at_compile_time<ArgType>::ret)
+ : int(outer_stride_at_compile_time<ArgType>::ret),
+ OuterStrideAtCompileTime = HasSameStorageOrderAsArgType
+ ? int(outer_stride_at_compile_time<ArgType>::ret)
+ : int(inner_stride_at_compile_time<ArgType>::ret),
+ MaskPacketAccessBit = (InnerStrideAtCompileTime == 1) ? PacketAccessBit : 0,
+
+ FlagsLinearAccessBit = (RowsAtCompileTime == 1 || ColsAtCompileTime == 1 || (InnerPanel && (evaluator<ArgType>::Flags&LinearAccessBit))) ? LinearAccessBit : 0,
+ FlagsRowMajorBit = XprType::Flags&RowMajorBit,
+ Flags0 = evaluator<ArgType>::Flags & ( (HereditaryBits & ~RowMajorBit) |
+ DirectAccessBit |
+ MaskPacketAccessBit),
+ Flags = Flags0 | FlagsLinearAccessBit | FlagsRowMajorBit,
+
+ PacketAlignment = unpacket_traits<PacketScalar>::alignment,
+ Alignment0 = (InnerPanel && (OuterStrideAtCompileTime!=Dynamic) && (((OuterStrideAtCompileTime * int(sizeof(Scalar))) % int(PacketAlignment)) == 0)) ? int(PacketAlignment) : 0,
+ Alignment = EIGEN_PLAIN_ENUM_MIN(evaluator<ArgType>::Alignment, Alignment0)
+ };
+ typedef block_evaluator<ArgType, BlockRows, BlockCols, InnerPanel> block_evaluator_type;
+ EIGEN_DEVICE_FUNC explicit evaluator(const XprType& block) : block_evaluator_type(block)
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+};
+
+// no direct-access => dispatch to a unary evaluator
+template<typename ArgType, int BlockRows, int BlockCols, bool InnerPanel>
+struct block_evaluator<ArgType, BlockRows, BlockCols, InnerPanel, /*HasDirectAccess*/ false>
+ : unary_evaluator<Block<ArgType, BlockRows, BlockCols, InnerPanel> >
+{
+ typedef Block<ArgType, BlockRows, BlockCols, InnerPanel> XprType;
+
+ EIGEN_DEVICE_FUNC explicit block_evaluator(const XprType& block)
+ : unary_evaluator<XprType>(block)
+ {}
+};
+
+template<typename ArgType, int BlockRows, int BlockCols, bool InnerPanel>
+struct unary_evaluator<Block<ArgType, BlockRows, BlockCols, InnerPanel>, IndexBased>
+ : evaluator_base<Block<ArgType, BlockRows, BlockCols, InnerPanel> >
+{
+ typedef Block<ArgType, BlockRows, BlockCols, InnerPanel> XprType;
+
+ EIGEN_DEVICE_FUNC explicit unary_evaluator(const XprType& block)
+ : m_argImpl(block.nestedExpression()),
+ m_startRow(block.startRow()),
+ m_startCol(block.startCol())
+ { }
+
+ typedef typename XprType::Scalar Scalar;
+ typedef typename XprType::CoeffReturnType CoeffReturnType;
+
+ enum {
+ RowsAtCompileTime = XprType::RowsAtCompileTime
+ };
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index row, Index col) const
+ {
+ return m_argImpl.coeff(m_startRow.value() + row, m_startCol.value() + col);
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index index) const
+ {
+ return coeff(RowsAtCompileTime == 1 ? 0 : index, RowsAtCompileTime == 1 ? index : 0);
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Scalar& coeffRef(Index row, Index col)
+ {
+ return m_argImpl.coeffRef(m_startRow.value() + row, m_startCol.value() + col);
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Scalar& coeffRef(Index index)
+ {
+ return coeffRef(RowsAtCompileTime == 1 ? 0 : index, RowsAtCompileTime == 1 ? index : 0);
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(Index row, Index col) const
+ {
+ return m_argImpl.template packet<LoadMode,PacketType>(m_startRow.value() + row, m_startCol.value() + col);
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(Index index) const
+ {
+ return packet<LoadMode,PacketType>(RowsAtCompileTime == 1 ? 0 : index,
+ RowsAtCompileTime == 1 ? index : 0);
+ }
+
+ template<int StoreMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ void writePacket(Index row, Index col, const PacketType& x)
+ {
+ return m_argImpl.template writePacket<StoreMode,PacketType>(m_startRow.value() + row, m_startCol.value() + col, x);
+ }
+
+ template<int StoreMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ void writePacket(Index index, const PacketType& x)
+ {
+ return writePacket<StoreMode,PacketType>(RowsAtCompileTime == 1 ? 0 : index,
+ RowsAtCompileTime == 1 ? index : 0,
+ x);
+ }
+
+protected:
+ evaluator<ArgType> m_argImpl;
+ const variable_if_dynamic<Index, (ArgType::RowsAtCompileTime == 1 && BlockRows==1) ? 0 : Dynamic> m_startRow;
+ const variable_if_dynamic<Index, (ArgType::ColsAtCompileTime == 1 && BlockCols==1) ? 0 : Dynamic> m_startCol;
+};
+
+// TODO: This evaluator does not actually use the child evaluator;
+// all action is via the data() as returned by the Block expression.
+
+template<typename ArgType, int BlockRows, int BlockCols, bool InnerPanel>
+struct block_evaluator<ArgType, BlockRows, BlockCols, InnerPanel, /* HasDirectAccess */ true>
+ : mapbase_evaluator<Block<ArgType, BlockRows, BlockCols, InnerPanel>,
+ typename Block<ArgType, BlockRows, BlockCols, InnerPanel>::PlainObject>
+{
+ typedef Block<ArgType, BlockRows, BlockCols, InnerPanel> XprType;
+ typedef typename XprType::Scalar Scalar;
+
+ EIGEN_DEVICE_FUNC explicit block_evaluator(const XprType& block)
+ : mapbase_evaluator<XprType, typename XprType::PlainObject>(block)
+ {
+ // TODO: for the 3.3 release, this should be turned to an internal assertion, but let's keep it as is for the beta lifetime
+ eigen_assert(((internal::UIntPtr(block.data()) % EIGEN_PLAIN_ENUM_MAX(1,evaluator<XprType>::Alignment)) == 0) && "data is not aligned");
+ }
+};
+
+
+// -------------------- Select --------------------
+// NOTE shall we introduce a ternary_evaluator?
+
+// TODO enable vectorization for Select
+template<typename ConditionMatrixType, typename ThenMatrixType, typename ElseMatrixType>
+struct evaluator<Select<ConditionMatrixType, ThenMatrixType, ElseMatrixType> >
+ : evaluator_base<Select<ConditionMatrixType, ThenMatrixType, ElseMatrixType> >
+{
+ typedef Select<ConditionMatrixType, ThenMatrixType, ElseMatrixType> XprType;
+ enum {
+ CoeffReadCost = evaluator<ConditionMatrixType>::CoeffReadCost
+ + EIGEN_PLAIN_ENUM_MAX(evaluator<ThenMatrixType>::CoeffReadCost,
+ evaluator<ElseMatrixType>::CoeffReadCost),
+
+ Flags = (unsigned int)evaluator<ThenMatrixType>::Flags & evaluator<ElseMatrixType>::Flags & HereditaryBits,
+
+ Alignment = EIGEN_PLAIN_ENUM_MIN(evaluator<ThenMatrixType>::Alignment, evaluator<ElseMatrixType>::Alignment)
+ };
+
+ EIGEN_DEVICE_FUNC explicit evaluator(const XprType& select)
+ : m_conditionImpl(select.conditionMatrix()),
+ m_thenImpl(select.thenMatrix()),
+ m_elseImpl(select.elseMatrix())
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ typedef typename XprType::CoeffReturnType CoeffReturnType;
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index row, Index col) const
+ {
+ if (m_conditionImpl.coeff(row, col))
+ return m_thenImpl.coeff(row, col);
+ else
+ return m_elseImpl.coeff(row, col);
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index index) const
+ {
+ if (m_conditionImpl.coeff(index))
+ return m_thenImpl.coeff(index);
+ else
+ return m_elseImpl.coeff(index);
+ }
+
+protected:
+ evaluator<ConditionMatrixType> m_conditionImpl;
+ evaluator<ThenMatrixType> m_thenImpl;
+ evaluator<ElseMatrixType> m_elseImpl;
+};
+
+
+// -------------------- Replicate --------------------
+
+template<typename ArgType, int RowFactor, int ColFactor>
+struct unary_evaluator<Replicate<ArgType, RowFactor, ColFactor> >
+ : evaluator_base<Replicate<ArgType, RowFactor, ColFactor> >
+{
+ typedef Replicate<ArgType, RowFactor, ColFactor> XprType;
+ typedef typename XprType::CoeffReturnType CoeffReturnType;
+ enum {
+ Factor = (RowFactor==Dynamic || ColFactor==Dynamic) ? Dynamic : RowFactor*ColFactor
+ };
+ typedef typename internal::nested_eval<ArgType,Factor>::type ArgTypeNested;
+ typedef typename internal::remove_all<ArgTypeNested>::type ArgTypeNestedCleaned;
+
+ enum {
+ CoeffReadCost = evaluator<ArgTypeNestedCleaned>::CoeffReadCost,
+ LinearAccessMask = XprType::IsVectorAtCompileTime ? LinearAccessBit : 0,
+ Flags = (evaluator<ArgTypeNestedCleaned>::Flags & (HereditaryBits|LinearAccessMask) & ~RowMajorBit) | (traits<XprType>::Flags & RowMajorBit),
+
+ Alignment = evaluator<ArgTypeNestedCleaned>::Alignment
+ };
+
+ EIGEN_DEVICE_FUNC explicit unary_evaluator(const XprType& replicate)
+ : m_arg(replicate.nestedExpression()),
+ m_argImpl(m_arg),
+ m_rows(replicate.nestedExpression().rows()),
+ m_cols(replicate.nestedExpression().cols())
+ {}
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index row, Index col) const
+ {
+ // try to avoid using modulo; this is a pure optimization strategy
+ const Index actual_row = internal::traits<XprType>::RowsAtCompileTime==1 ? 0
+ : RowFactor==1 ? row
+ : row % m_rows.value();
+ const Index actual_col = internal::traits<XprType>::ColsAtCompileTime==1 ? 0
+ : ColFactor==1 ? col
+ : col % m_cols.value();
+
+ return m_argImpl.coeff(actual_row, actual_col);
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index index) const
+ {
+ // try to avoid using modulo; this is a pure optimization strategy
+ const Index actual_index = internal::traits<XprType>::RowsAtCompileTime==1
+ ? (ColFactor==1 ? index : index%m_cols.value())
+ : (RowFactor==1 ? index : index%m_rows.value());
+
+ return m_argImpl.coeff(actual_index);
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(Index row, Index col) const
+ {
+ const Index actual_row = internal::traits<XprType>::RowsAtCompileTime==1 ? 0
+ : RowFactor==1 ? row
+ : row % m_rows.value();
+ const Index actual_col = internal::traits<XprType>::ColsAtCompileTime==1 ? 0
+ : ColFactor==1 ? col
+ : col % m_cols.value();
+
+ return m_argImpl.template packet<LoadMode,PacketType>(actual_row, actual_col);
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(Index index) const
+ {
+ const Index actual_index = internal::traits<XprType>::RowsAtCompileTime==1
+ ? (ColFactor==1 ? index : index%m_cols.value())
+ : (RowFactor==1 ? index : index%m_rows.value());
+
+ return m_argImpl.template packet<LoadMode,PacketType>(actual_index);
+ }
+
+protected:
+ const ArgTypeNested m_arg;
+ evaluator<ArgTypeNestedCleaned> m_argImpl;
+ const variable_if_dynamic<Index, ArgType::RowsAtCompileTime> m_rows;
+ const variable_if_dynamic<Index, ArgType::ColsAtCompileTime> m_cols;
+};
+
+
+// -------------------- PartialReduxExpr --------------------
+
+template< typename ArgType, typename MemberOp, int Direction>
+struct evaluator<PartialReduxExpr<ArgType, MemberOp, Direction> >
+ : evaluator_base<PartialReduxExpr<ArgType, MemberOp, Direction> >
+{
+ typedef PartialReduxExpr<ArgType, MemberOp, Direction> XprType;
+ typedef typename internal::nested_eval<ArgType,1>::type ArgTypeNested;
+ typedef typename internal::remove_all<ArgTypeNested>::type ArgTypeNestedCleaned;
+ typedef typename ArgType::Scalar InputScalar;
+ typedef typename XprType::Scalar Scalar;
+ enum {
+ TraversalSize = Direction==int(Vertical) ? int(ArgType::RowsAtCompileTime) : int(ArgType::ColsAtCompileTime)
+ };
+ typedef typename MemberOp::template Cost<InputScalar,int(TraversalSize)> CostOpType;
+ enum {
+ CoeffReadCost = TraversalSize==Dynamic ? HugeCost
+ : TraversalSize * evaluator<ArgType>::CoeffReadCost + int(CostOpType::value),
+
+ Flags = (traits<XprType>::Flags&RowMajorBit) | (evaluator<ArgType>::Flags&(HereditaryBits&(~RowMajorBit))) | LinearAccessBit,
+
+ Alignment = 0 // FIXME this will need to be improved once PartialReduxExpr is vectorized
+ };
+
+ EIGEN_DEVICE_FUNC explicit evaluator(const XprType xpr)
+ : m_arg(xpr.nestedExpression()), m_functor(xpr.functor())
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(TraversalSize==Dynamic ? HugeCost : int(CostOpType::value));
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ typedef typename XprType::CoeffReturnType CoeffReturnType;
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ const Scalar coeff(Index i, Index j) const
+ {
+ if (Direction==Vertical)
+ return m_functor(m_arg.col(j));
+ else
+ return m_functor(m_arg.row(i));
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ const Scalar coeff(Index index) const
+ {
+ if (Direction==Vertical)
+ return m_functor(m_arg.col(index));
+ else
+ return m_functor(m_arg.row(index));
+ }
+
+protected:
+ typename internal::add_const_on_value_type<ArgTypeNested>::type m_arg;
+ const MemberOp m_functor;
+};
+
+
+// -------------------- MatrixWrapper and ArrayWrapper --------------------
+//
+// evaluator_wrapper_base<T> is a common base class for the
+// MatrixWrapper and ArrayWrapper evaluators.
+
+template<typename XprType>
+struct evaluator_wrapper_base
+ : evaluator_base<XprType>
+{
+ typedef typename remove_all<typename XprType::NestedExpressionType>::type ArgType;
+ enum {
+ CoeffReadCost = evaluator<ArgType>::CoeffReadCost,
+ Flags = evaluator<ArgType>::Flags,
+ Alignment = evaluator<ArgType>::Alignment
+ };
+
+ EIGEN_DEVICE_FUNC explicit evaluator_wrapper_base(const ArgType& arg) : m_argImpl(arg) {}
+
+ typedef typename ArgType::Scalar Scalar;
+ typedef typename ArgType::CoeffReturnType CoeffReturnType;
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index row, Index col) const
+ {
+ return m_argImpl.coeff(row, col);
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index index) const
+ {
+ return m_argImpl.coeff(index);
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Scalar& coeffRef(Index row, Index col)
+ {
+ return m_argImpl.coeffRef(row, col);
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Scalar& coeffRef(Index index)
+ {
+ return m_argImpl.coeffRef(index);
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(Index row, Index col) const
+ {
+ return m_argImpl.template packet<LoadMode,PacketType>(row, col);
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(Index index) const
+ {
+ return m_argImpl.template packet<LoadMode,PacketType>(index);
+ }
+
+ template<int StoreMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ void writePacket(Index row, Index col, const PacketType& x)
+ {
+ m_argImpl.template writePacket<StoreMode>(row, col, x);
+ }
+
+ template<int StoreMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ void writePacket(Index index, const PacketType& x)
+ {
+ m_argImpl.template writePacket<StoreMode>(index, x);
+ }
+
+protected:
+ evaluator<ArgType> m_argImpl;
+};
+
+template<typename TArgType>
+struct unary_evaluator<MatrixWrapper<TArgType> >
+ : evaluator_wrapper_base<MatrixWrapper<TArgType> >
+{
+ typedef MatrixWrapper<TArgType> XprType;
+
+ EIGEN_DEVICE_FUNC explicit unary_evaluator(const XprType& wrapper)
+ : evaluator_wrapper_base<MatrixWrapper<TArgType> >(wrapper.nestedExpression())
+ { }
+};
+
+template<typename TArgType>
+struct unary_evaluator<ArrayWrapper<TArgType> >
+ : evaluator_wrapper_base<ArrayWrapper<TArgType> >
+{
+ typedef ArrayWrapper<TArgType> XprType;
+
+ EIGEN_DEVICE_FUNC explicit unary_evaluator(const XprType& wrapper)
+ : evaluator_wrapper_base<ArrayWrapper<TArgType> >(wrapper.nestedExpression())
+ { }
+};
+
+
+// -------------------- Reverse --------------------
+
+// defined in Reverse.h:
+template<typename PacketType, bool ReversePacket> struct reverse_packet_cond;
+
+template<typename ArgType, int Direction>
+struct unary_evaluator<Reverse<ArgType, Direction> >
+ : evaluator_base<Reverse<ArgType, Direction> >
+{
+ typedef Reverse<ArgType, Direction> XprType;
+ typedef typename XprType::Scalar Scalar;
+ typedef typename XprType::CoeffReturnType CoeffReturnType;
+
+ enum {
+ IsRowMajor = XprType::IsRowMajor,
+ IsColMajor = !IsRowMajor,
+ ReverseRow = (Direction == Vertical) || (Direction == BothDirections),
+ ReverseCol = (Direction == Horizontal) || (Direction == BothDirections),
+ ReversePacket = (Direction == BothDirections)
+ || ((Direction == Vertical) && IsColMajor)
+ || ((Direction == Horizontal) && IsRowMajor),
+
+ CoeffReadCost = evaluator<ArgType>::CoeffReadCost,
+
+ // let's enable LinearAccess only with vectorization because of the product overhead
+ // FIXME enable DirectAccess with negative strides?
+ Flags0 = evaluator<ArgType>::Flags,
+ LinearAccess = ( (Direction==BothDirections) && (int(Flags0)&PacketAccessBit) )
+ || ((ReverseRow && XprType::ColsAtCompileTime==1) || (ReverseCol && XprType::RowsAtCompileTime==1))
+ ? LinearAccessBit : 0,
+
+ Flags = int(Flags0) & (HereditaryBits | PacketAccessBit | LinearAccess),
+
+ Alignment = 0 // FIXME in some rare cases, Alignment could be preserved, like a Vector4f.
+ };
+
+ EIGEN_DEVICE_FUNC explicit unary_evaluator(const XprType& reverse)
+ : m_argImpl(reverse.nestedExpression()),
+ m_rows(ReverseRow ? reverse.nestedExpression().rows() : 1),
+ m_cols(ReverseCol ? reverse.nestedExpression().cols() : 1)
+ { }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index row, Index col) const
+ {
+ return m_argImpl.coeff(ReverseRow ? m_rows.value() - row - 1 : row,
+ ReverseCol ? m_cols.value() - col - 1 : col);
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index index) const
+ {
+ return m_argImpl.coeff(m_rows.value() * m_cols.value() - index - 1);
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Scalar& coeffRef(Index row, Index col)
+ {
+ return m_argImpl.coeffRef(ReverseRow ? m_rows.value() - row - 1 : row,
+ ReverseCol ? m_cols.value() - col - 1 : col);
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Scalar& coeffRef(Index index)
+ {
+ return m_argImpl.coeffRef(m_rows.value() * m_cols.value() - index - 1);
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(Index row, Index col) const
+ {
+ enum {
+ PacketSize = unpacket_traits<PacketType>::size,
+ OffsetRow = ReverseRow && IsColMajor ? PacketSize : 1,
+ OffsetCol = ReverseCol && IsRowMajor ? PacketSize : 1
+ };
+ typedef internal::reverse_packet_cond<PacketType,ReversePacket> reverse_packet;
+ return reverse_packet::run(m_argImpl.template packet<LoadMode,PacketType>(
+ ReverseRow ? m_rows.value() - row - OffsetRow : row,
+ ReverseCol ? m_cols.value() - col - OffsetCol : col));
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ PacketType packet(Index index) const
+ {
+ enum { PacketSize = unpacket_traits<PacketType>::size };
+ return preverse(m_argImpl.template packet<LoadMode,PacketType>(m_rows.value() * m_cols.value() - index - PacketSize));
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ void writePacket(Index row, Index col, const PacketType& x)
+ {
+ // FIXME we could factorize some code with packet(i,j)
+ enum {
+ PacketSize = unpacket_traits<PacketType>::size,
+ OffsetRow = ReverseRow && IsColMajor ? PacketSize : 1,
+ OffsetCol = ReverseCol && IsRowMajor ? PacketSize : 1
+ };
+ typedef internal::reverse_packet_cond<PacketType,ReversePacket> reverse_packet;
+ m_argImpl.template writePacket<LoadMode>(
+ ReverseRow ? m_rows.value() - row - OffsetRow : row,
+ ReverseCol ? m_cols.value() - col - OffsetCol : col,
+ reverse_packet::run(x));
+ }
+
+ template<int LoadMode, typename PacketType>
+ EIGEN_STRONG_INLINE
+ void writePacket(Index index, const PacketType& x)
+ {
+ enum { PacketSize = unpacket_traits<PacketType>::size };
+ m_argImpl.template writePacket<LoadMode>
+ (m_rows.value() * m_cols.value() - index - PacketSize, preverse(x));
+ }
+
+protected:
+ evaluator<ArgType> m_argImpl;
+
+ // If we do not reverse rows, then we do not need to know the number of rows; same for columns
+ // Nonetheless, in this case it is important to set to 1 such that the coeff(index) method works fine for vectors.
+ const variable_if_dynamic<Index, ReverseRow ? ArgType::RowsAtCompileTime : 1> m_rows;
+ const variable_if_dynamic<Index, ReverseCol ? ArgType::ColsAtCompileTime : 1> m_cols;
+};
+
+
+// -------------------- Diagonal --------------------
+
+template<typename ArgType, int DiagIndex>
+struct evaluator<Diagonal<ArgType, DiagIndex> >
+ : evaluator_base<Diagonal<ArgType, DiagIndex> >
+{
+ typedef Diagonal<ArgType, DiagIndex> XprType;
+
+ enum {
+ CoeffReadCost = evaluator<ArgType>::CoeffReadCost,
+
+ Flags = (unsigned int)(evaluator<ArgType>::Flags & (HereditaryBits | DirectAccessBit) & ~RowMajorBit) | LinearAccessBit,
+
+ Alignment = 0
+ };
+
+ EIGEN_DEVICE_FUNC explicit evaluator(const XprType& diagonal)
+ : m_argImpl(diagonal.nestedExpression()),
+ m_index(diagonal.index())
+ { }
+
+ typedef typename XprType::Scalar Scalar;
+ typedef typename XprType::CoeffReturnType CoeffReturnType;
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index row, Index) const
+ {
+ return m_argImpl.coeff(row + rowOffset(), row + colOffset());
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ CoeffReturnType coeff(Index index) const
+ {
+ return m_argImpl.coeff(index + rowOffset(), index + colOffset());
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Scalar& coeffRef(Index row, Index)
+ {
+ return m_argImpl.coeffRef(row + rowOffset(), row + colOffset());
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Scalar& coeffRef(Index index)
+ {
+ return m_argImpl.coeffRef(index + rowOffset(), index + colOffset());
+ }
+
+protected:
+ evaluator<ArgType> m_argImpl;
+ const internal::variable_if_dynamicindex<Index, XprType::DiagIndex> m_index;
+
+private:
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index rowOffset() const { return m_index.value() > 0 ? 0 : -m_index.value(); }
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index colOffset() const { return m_index.value() > 0 ? m_index.value() : 0; }
+};
+
+
+//----------------------------------------------------------------------
+// deprecated code
+//----------------------------------------------------------------------
+
+// -------------------- EvalToTemp --------------------
+
+// expression class for evaluating nested expression to a temporary
+
+template<typename ArgType> class EvalToTemp;
+
+template<typename ArgType>
+struct traits<EvalToTemp<ArgType> >
+ : public traits<ArgType>
+{ };
+
+template<typename ArgType>
+class EvalToTemp
+ : public dense_xpr_base<EvalToTemp<ArgType> >::type
+{
+ public:
+
+ typedef typename dense_xpr_base<EvalToTemp>::type Base;
+ EIGEN_GENERIC_PUBLIC_INTERFACE(EvalToTemp)
+
+ explicit EvalToTemp(const ArgType& arg)
+ : m_arg(arg)
+ { }
+
+ const ArgType& arg() const
+ {
+ return m_arg;
+ }
+
+ Index rows() const
+ {
+ return m_arg.rows();
+ }
+
+ Index cols() const
+ {
+ return m_arg.cols();
+ }
+
+ private:
+ const ArgType& m_arg;
+};
+
+template<typename ArgType>
+struct evaluator<EvalToTemp<ArgType> >
+ : public evaluator<typename ArgType::PlainObject>
+{
+ typedef EvalToTemp<ArgType> XprType;
+ typedef typename ArgType::PlainObject PlainObject;
+ typedef evaluator<PlainObject> Base;
+
+ EIGEN_DEVICE_FUNC explicit evaluator(const XprType& xpr)
+ : m_result(xpr.arg())
+ {
+ ::new (static_cast<Base*>(this)) Base(m_result);
+ }
+
+ // This constructor is used when nesting an EvalTo evaluator in another evaluator
+ EIGEN_DEVICE_FUNC evaluator(const ArgType& arg)
+ : m_result(arg)
+ {
+ ::new (static_cast<Base*>(this)) Base(m_result);
+ }
+
+protected:
+ PlainObject m_result;
+};
+
+} // namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_COREEVALUATORS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/CoreIterators.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/CoreIterators.h
new file mode 100644
index 000000000..4eb42b93a
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/CoreIterators.h
@@ -0,0 +1,127 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COREITERATORS_H
+#define EIGEN_COREITERATORS_H
+
+namespace Eigen {
+
+/* This file contains the respective InnerIterator definition of the expressions defined in Eigen/Core
+ */
+
+namespace internal {
+
+template<typename XprType, typename EvaluatorKind>
+class inner_iterator_selector;
+
+}
+
+/** \class InnerIterator
+ * \brief An InnerIterator allows to loop over the element of any matrix expression.
+ *
+ * \warning To be used with care because an evaluator is constructed every time an InnerIterator iterator is constructed.
+ *
+ * TODO: add a usage example
+ */
+template<typename XprType>
+class InnerIterator
+{
+protected:
+ typedef internal::inner_iterator_selector<XprType, typename internal::evaluator_traits<XprType>::Kind> IteratorType;
+ typedef internal::evaluator<XprType> EvaluatorType;
+ typedef typename internal::traits<XprType>::Scalar Scalar;
+public:
+ /** Construct an iterator over the \a outerId -th row or column of \a xpr */
+ InnerIterator(const XprType &xpr, const Index &outerId)
+ : m_eval(xpr), m_iter(m_eval, outerId, xpr.innerSize())
+ {}
+
+ /// \returns the value of the current coefficient.
+ EIGEN_STRONG_INLINE Scalar value() const { return m_iter.value(); }
+ /** Increment the iterator \c *this to the next non-zero coefficient.
+ * Explicit zeros are not skipped over. To skip explicit zeros, see class SparseView
+ */
+ EIGEN_STRONG_INLINE InnerIterator& operator++() { m_iter.operator++(); return *this; }
+ /// \returns the column or row index of the current coefficient.
+ EIGEN_STRONG_INLINE Index index() const { return m_iter.index(); }
+ /// \returns the row index of the current coefficient.
+ EIGEN_STRONG_INLINE Index row() const { return m_iter.row(); }
+ /// \returns the column index of the current coefficient.
+ EIGEN_STRONG_INLINE Index col() const { return m_iter.col(); }
+ /// \returns \c true if the iterator \c *this still references a valid coefficient.
+ EIGEN_STRONG_INLINE operator bool() const { return m_iter; }
+
+protected:
+ EvaluatorType m_eval;
+ IteratorType m_iter;
+private:
+ // If you get here, then you're not using the right InnerIterator type, e.g.:
+ // SparseMatrix<double,RowMajor> A;
+ // SparseMatrix<double>::InnerIterator it(A,0);
+ template<typename T> InnerIterator(const EigenBase<T>&,Index outer);
+};
+
+namespace internal {
+
+// Generic inner iterator implementation for dense objects
+template<typename XprType>
+class inner_iterator_selector<XprType, IndexBased>
+{
+protected:
+ typedef evaluator<XprType> EvaluatorType;
+ typedef typename traits<XprType>::Scalar Scalar;
+ enum { IsRowMajor = (XprType::Flags&RowMajorBit)==RowMajorBit };
+
+public:
+ EIGEN_STRONG_INLINE inner_iterator_selector(const EvaluatorType &eval, const Index &outerId, const Index &innerSize)
+ : m_eval(eval), m_inner(0), m_outer(outerId), m_end(innerSize)
+ {}
+
+ EIGEN_STRONG_INLINE Scalar value() const
+ {
+ return (IsRowMajor) ? m_eval.coeff(m_outer, m_inner)
+ : m_eval.coeff(m_inner, m_outer);
+ }
+
+ EIGEN_STRONG_INLINE inner_iterator_selector& operator++() { m_inner++; return *this; }
+
+ EIGEN_STRONG_INLINE Index index() const { return m_inner; }
+ inline Index row() const { return IsRowMajor ? m_outer : index(); }
+ inline Index col() const { return IsRowMajor ? index() : m_outer; }
+
+ EIGEN_STRONG_INLINE operator bool() const { return m_inner < m_end && m_inner>=0; }
+
+protected:
+ const EvaluatorType& m_eval;
+ Index m_inner;
+ const Index m_outer;
+ const Index m_end;
+};
+
+// For iterator-based evaluator, inner-iterator is already implemented as
+// evaluator<>::InnerIterator
+template<typename XprType>
+class inner_iterator_selector<XprType, IteratorBased>
+ : public evaluator<XprType>::InnerIterator
+{
+protected:
+ typedef typename evaluator<XprType>::InnerIterator Base;
+ typedef evaluator<XprType> EvaluatorType;
+
+public:
+ EIGEN_STRONG_INLINE inner_iterator_selector(const EvaluatorType &eval, const Index &outerId, const Index &/*innerSize*/)
+ : Base(eval, outerId)
+ {}
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_COREITERATORS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/CwiseBinaryOp.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/CwiseBinaryOp.h
new file mode 100644
index 000000000..a36765e39
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/CwiseBinaryOp.h
@@ -0,0 +1,184 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CWISE_BINARY_OP_H
+#define EIGEN_CWISE_BINARY_OP_H
+
+namespace Eigen {
+
+namespace internal {
+template<typename BinaryOp, typename Lhs, typename Rhs>
+struct traits<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >
+{
+ // we must not inherit from traits<Lhs> since it has
+ // the potential to cause problems with MSVC
+ typedef typename remove_all<Lhs>::type Ancestor;
+ typedef typename traits<Ancestor>::XprKind XprKind;
+ enum {
+ RowsAtCompileTime = traits<Ancestor>::RowsAtCompileTime,
+ ColsAtCompileTime = traits<Ancestor>::ColsAtCompileTime,
+ MaxRowsAtCompileTime = traits<Ancestor>::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = traits<Ancestor>::MaxColsAtCompileTime
+ };
+
+ // even though we require Lhs and Rhs to have the same scalar type (see CwiseBinaryOp constructor),
+ // we still want to handle the case when the result type is different.
+ typedef typename result_of<
+ BinaryOp(
+ const typename Lhs::Scalar&,
+ const typename Rhs::Scalar&
+ )
+ >::type Scalar;
+ typedef typename cwise_promote_storage_type<typename traits<Lhs>::StorageKind,
+ typename traits<Rhs>::StorageKind,
+ BinaryOp>::ret StorageKind;
+ typedef typename promote_index_type<typename traits<Lhs>::StorageIndex,
+ typename traits<Rhs>::StorageIndex>::type StorageIndex;
+ typedef typename Lhs::Nested LhsNested;
+ typedef typename Rhs::Nested RhsNested;
+ typedef typename remove_reference<LhsNested>::type _LhsNested;
+ typedef typename remove_reference<RhsNested>::type _RhsNested;
+ enum {
+ Flags = cwise_promote_storage_order<typename traits<Lhs>::StorageKind,typename traits<Rhs>::StorageKind,_LhsNested::Flags & RowMajorBit,_RhsNested::Flags & RowMajorBit>::value
+ };
+};
+} // end namespace internal
+
+template<typename BinaryOp, typename Lhs, typename Rhs, typename StorageKind>
+class CwiseBinaryOpImpl;
+
+/** \class CwiseBinaryOp
+ * \ingroup Core_Module
+ *
+ * \brief Generic expression where a coefficient-wise binary operator is applied to two expressions
+ *
+ * \tparam BinaryOp template functor implementing the operator
+ * \tparam LhsType the type of the left-hand side
+ * \tparam RhsType the type of the right-hand side
+ *
+ * This class represents an expression where a coefficient-wise binary operator is applied to two expressions.
+ * It is the return type of binary operators, by which we mean only those binary operators where
+ * both the left-hand side and the right-hand side are Eigen expressions.
+ * For example, the return type of matrix1+matrix2 is a CwiseBinaryOp.
+ *
+ * Most of the time, this is the only way that it is used, so you typically don't have to name
+ * CwiseBinaryOp types explicitly.
+ *
+ * \sa MatrixBase::binaryExpr(const MatrixBase<OtherDerived> &,const CustomBinaryOp &) const, class CwiseUnaryOp, class CwiseNullaryOp
+ */
+template<typename BinaryOp, typename LhsType, typename RhsType>
+class CwiseBinaryOp :
+ public CwiseBinaryOpImpl<
+ BinaryOp, LhsType, RhsType,
+ typename internal::cwise_promote_storage_type<typename internal::traits<LhsType>::StorageKind,
+ typename internal::traits<RhsType>::StorageKind,
+ BinaryOp>::ret>,
+ internal::no_assignment_operator
+{
+ public:
+
+ typedef typename internal::remove_all<BinaryOp>::type Functor;
+ typedef typename internal::remove_all<LhsType>::type Lhs;
+ typedef typename internal::remove_all<RhsType>::type Rhs;
+
+ typedef typename CwiseBinaryOpImpl<
+ BinaryOp, LhsType, RhsType,
+ typename internal::cwise_promote_storage_type<typename internal::traits<LhsType>::StorageKind,
+ typename internal::traits<Rhs>::StorageKind,
+ BinaryOp>::ret>::Base Base;
+ EIGEN_GENERIC_PUBLIC_INTERFACE(CwiseBinaryOp)
+
+ typedef typename internal::ref_selector<LhsType>::type LhsNested;
+ typedef typename internal::ref_selector<RhsType>::type RhsNested;
+ typedef typename internal::remove_reference<LhsNested>::type _LhsNested;
+ typedef typename internal::remove_reference<RhsNested>::type _RhsNested;
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE CwiseBinaryOp(const Lhs& aLhs, const Rhs& aRhs, const BinaryOp& func = BinaryOp())
+ : m_lhs(aLhs), m_rhs(aRhs), m_functor(func)
+ {
+ EIGEN_CHECK_BINARY_COMPATIBILIY(BinaryOp,typename Lhs::Scalar,typename Rhs::Scalar);
+ // require the sizes to match
+ EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Lhs, Rhs)
+ eigen_assert(aLhs.rows() == aRhs.rows() && aLhs.cols() == aRhs.cols());
+ }
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Index rows() const {
+ // return the fixed size type if available to enable compile time optimizations
+ if (internal::traits<typename internal::remove_all<LhsNested>::type>::RowsAtCompileTime==Dynamic)
+ return m_rhs.rows();
+ else
+ return m_lhs.rows();
+ }
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Index cols() const {
+ // return the fixed size type if available to enable compile time optimizations
+ if (internal::traits<typename internal::remove_all<LhsNested>::type>::ColsAtCompileTime==Dynamic)
+ return m_rhs.cols();
+ else
+ return m_lhs.cols();
+ }
+
+ /** \returns the left hand side nested expression */
+ EIGEN_DEVICE_FUNC
+ const _LhsNested& lhs() const { return m_lhs; }
+ /** \returns the right hand side nested expression */
+ EIGEN_DEVICE_FUNC
+ const _RhsNested& rhs() const { return m_rhs; }
+ /** \returns the functor representing the binary operation */
+ EIGEN_DEVICE_FUNC
+ const BinaryOp& functor() const { return m_functor; }
+
+ protected:
+ LhsNested m_lhs;
+ RhsNested m_rhs;
+ const BinaryOp m_functor;
+};
+
+// Generic API dispatcher
+template<typename BinaryOp, typename Lhs, typename Rhs, typename StorageKind>
+class CwiseBinaryOpImpl
+ : public internal::generic_xpr_base<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >::type
+{
+public:
+ typedef typename internal::generic_xpr_base<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >::type Base;
+};
+
+/** replaces \c *this by \c *this - \a other.
+ *
+ * \returns a reference to \c *this
+ */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived &
+MatrixBase<Derived>::operator-=(const MatrixBase<OtherDerived> &other)
+{
+ call_assignment(derived(), other.derived(), internal::sub_assign_op<Scalar,typename OtherDerived::Scalar>());
+ return derived();
+}
+
+/** replaces \c *this by \c *this + \a other.
+ *
+ * \returns a reference to \c *this
+ */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived &
+MatrixBase<Derived>::operator+=(const MatrixBase<OtherDerived>& other)
+{
+ call_assignment(derived(), other.derived(), internal::add_assign_op<Scalar,typename OtherDerived::Scalar>());
+ return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_CWISE_BINARY_OP_H
+
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/CwiseNullaryOp.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/CwiseNullaryOp.h
new file mode 100644
index 000000000..ddd607e38
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/CwiseNullaryOp.h
@@ -0,0 +1,866 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CWISE_NULLARY_OP_H
+#define EIGEN_CWISE_NULLARY_OP_H
+
+namespace Eigen {
+
+namespace internal {
+template<typename NullaryOp, typename PlainObjectType>
+struct traits<CwiseNullaryOp<NullaryOp, PlainObjectType> > : traits<PlainObjectType>
+{
+ enum {
+ Flags = traits<PlainObjectType>::Flags & RowMajorBit
+ };
+};
+
+} // namespace internal
+
+/** \class CwiseNullaryOp
+ * \ingroup Core_Module
+ *
+ * \brief Generic expression of a matrix where all coefficients are defined by a functor
+ *
+ * \tparam NullaryOp template functor implementing the operator
+ * \tparam PlainObjectType the underlying plain matrix/array type
+ *
+ * This class represents an expression of a generic nullary operator.
+ * It is the return type of the Ones(), Zero(), Constant(), Identity() and Random() methods,
+ * and most of the time this is the only way it is used.
+ *
+ * However, if you want to write a function returning such an expression, you
+ * will need to use this class.
+ *
+ * The functor NullaryOp must expose one of the following method:
+ <table class="manual">
+ <tr ><td>\c operator()() </td><td>if the procedural generation does not depend on the coefficient entries (e.g., random numbers)</td></tr>
+ <tr class="alt"><td>\c operator()(Index i)</td><td>if the procedural generation makes sense for vectors only and that it depends on the coefficient index \c i (e.g., linspace) </td></tr>
+ <tr ><td>\c operator()(Index i,Index j)</td><td>if the procedural generation depends on the matrix coordinates \c i, \c j (e.g., to generate a checkerboard with 0 and 1)</td></tr>
+ </table>
+ * It is also possible to expose the last two operators if the generation makes sense for matrices but can be optimized for vectors.
+ *
+ * See DenseBase::NullaryExpr(Index,const CustomNullaryOp&) for an example binding
+ * C++11 random number generators.
+ *
+ * A nullary expression can also be used to implement custom sophisticated matrix manipulations
+ * that cannot be covered by the existing set of natively supported matrix manipulations.
+ * See this \ref TopicCustomizing_NullaryExpr "page" for some examples and additional explanations
+ * on the behavior of CwiseNullaryOp.
+ *
+ * \sa class CwiseUnaryOp, class CwiseBinaryOp, DenseBase::NullaryExpr
+ */
+template<typename NullaryOp, typename PlainObjectType>
+class CwiseNullaryOp : public internal::dense_xpr_base< CwiseNullaryOp<NullaryOp, PlainObjectType> >::type, internal::no_assignment_operator
+{
+ public:
+
+ typedef typename internal::dense_xpr_base<CwiseNullaryOp>::type Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(CwiseNullaryOp)
+
+ EIGEN_DEVICE_FUNC
+ CwiseNullaryOp(Index rows, Index cols, const NullaryOp& func = NullaryOp())
+ : m_rows(rows), m_cols(cols), m_functor(func)
+ {
+ eigen_assert(rows >= 0
+ && (RowsAtCompileTime == Dynamic || RowsAtCompileTime == rows)
+ && cols >= 0
+ && (ColsAtCompileTime == Dynamic || ColsAtCompileTime == cols));
+ }
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Index rows() const { return m_rows.value(); }
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Index cols() const { return m_cols.value(); }
+
+ /** \returns the functor representing the nullary operation */
+ EIGEN_DEVICE_FUNC
+ const NullaryOp& functor() const { return m_functor; }
+
+ protected:
+ const internal::variable_if_dynamic<Index, RowsAtCompileTime> m_rows;
+ const internal::variable_if_dynamic<Index, ColsAtCompileTime> m_cols;
+ const NullaryOp m_functor;
+};
+
+
+/** \returns an expression of a matrix defined by a custom functor \a func
+ *
+ * The parameters \a rows and \a cols are the number of rows and of columns of
+ * the returned matrix. Must be compatible with this MatrixBase type.
+ *
+ * This variant is meant to be used for dynamic-size matrix types. For fixed-size types,
+ * it is redundant to pass \a rows and \a cols as arguments, so Zero() should be used
+ * instead.
+ *
+ * The template parameter \a CustomNullaryOp is the type of the functor.
+ *
+ * \sa class CwiseNullaryOp
+ */
+template<typename Derived>
+template<typename CustomNullaryOp>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CwiseNullaryOp<CustomNullaryOp, typename DenseBase<Derived>::PlainObject>
+DenseBase<Derived>::NullaryExpr(Index rows, Index cols, const CustomNullaryOp& func)
+{
+ return CwiseNullaryOp<CustomNullaryOp, PlainObject>(rows, cols, func);
+}
+
+/** \returns an expression of a matrix defined by a custom functor \a func
+ *
+ * The parameter \a size is the size of the returned vector.
+ * Must be compatible with this MatrixBase type.
+ *
+ * \only_for_vectors
+ *
+ * This variant is meant to be used for dynamic-size vector types. For fixed-size types,
+ * it is redundant to pass \a size as argument, so Zero() should be used
+ * instead.
+ *
+ * The template parameter \a CustomNullaryOp is the type of the functor.
+ *
+ * Here is an example with C++11 random generators: \include random_cpp11.cpp
+ * Output: \verbinclude random_cpp11.out
+ *
+ * \sa class CwiseNullaryOp
+ */
+template<typename Derived>
+template<typename CustomNullaryOp>
+EIGEN_STRONG_INLINE const CwiseNullaryOp<CustomNullaryOp, typename DenseBase<Derived>::PlainObject>
+DenseBase<Derived>::NullaryExpr(Index size, const CustomNullaryOp& func)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ if(RowsAtCompileTime == 1) return CwiseNullaryOp<CustomNullaryOp, PlainObject>(1, size, func);
+ else return CwiseNullaryOp<CustomNullaryOp, PlainObject>(size, 1, func);
+}
+
+/** \returns an expression of a matrix defined by a custom functor \a func
+ *
+ * This variant is only for fixed-size DenseBase types. For dynamic-size types, you
+ * need to use the variants taking size arguments.
+ *
+ * The template parameter \a CustomNullaryOp is the type of the functor.
+ *
+ * \sa class CwiseNullaryOp
+ */
+template<typename Derived>
+template<typename CustomNullaryOp>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CwiseNullaryOp<CustomNullaryOp, typename DenseBase<Derived>::PlainObject>
+DenseBase<Derived>::NullaryExpr(const CustomNullaryOp& func)
+{
+ return CwiseNullaryOp<CustomNullaryOp, PlainObject>(RowsAtCompileTime, ColsAtCompileTime, func);
+}
+
+/** \returns an expression of a constant matrix of value \a value
+ *
+ * The parameters \a rows and \a cols are the number of rows and of columns of
+ * the returned matrix. Must be compatible with this DenseBase type.
+ *
+ * This variant is meant to be used for dynamic-size matrix types. For fixed-size types,
+ * it is redundant to pass \a rows and \a cols as arguments, so Zero() should be used
+ * instead.
+ *
+ * The template parameter \a CustomNullaryOp is the type of the functor.
+ *
+ * \sa class CwiseNullaryOp
+ */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename DenseBase<Derived>::ConstantReturnType
+DenseBase<Derived>::Constant(Index rows, Index cols, const Scalar& value)
+{
+ return DenseBase<Derived>::NullaryExpr(rows, cols, internal::scalar_constant_op<Scalar>(value));
+}
+
+/** \returns an expression of a constant matrix of value \a value
+ *
+ * The parameter \a size is the size of the returned vector.
+ * Must be compatible with this DenseBase type.
+ *
+ * \only_for_vectors
+ *
+ * This variant is meant to be used for dynamic-size vector types. For fixed-size types,
+ * it is redundant to pass \a size as argument, so Zero() should be used
+ * instead.
+ *
+ * The template parameter \a CustomNullaryOp is the type of the functor.
+ *
+ * \sa class CwiseNullaryOp
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename DenseBase<Derived>::ConstantReturnType
+DenseBase<Derived>::Constant(Index size, const Scalar& value)
+{
+ return DenseBase<Derived>::NullaryExpr(size, internal::scalar_constant_op<Scalar>(value));
+}
+
+/** \returns an expression of a constant matrix of value \a value
+ *
+ * This variant is only for fixed-size DenseBase types. For dynamic-size types, you
+ * need to use the variants taking size arguments.
+ *
+ * The template parameter \a CustomNullaryOp is the type of the functor.
+ *
+ * \sa class CwiseNullaryOp
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename DenseBase<Derived>::ConstantReturnType
+DenseBase<Derived>::Constant(const Scalar& value)
+{
+ EIGEN_STATIC_ASSERT_FIXED_SIZE(Derived)
+ return DenseBase<Derived>::NullaryExpr(RowsAtCompileTime, ColsAtCompileTime, internal::scalar_constant_op<Scalar>(value));
+}
+
+/** \deprecated because of accuracy loss. In Eigen 3.3, it is an alias for LinSpaced(Index,const Scalar&,const Scalar&)
+ *
+ * \sa LinSpaced(Index,Scalar,Scalar), setLinSpaced(Index,const Scalar&,const Scalar&)
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename DenseBase<Derived>::RandomAccessLinSpacedReturnType
+DenseBase<Derived>::LinSpaced(Sequential_t, Index size, const Scalar& low, const Scalar& high)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ return DenseBase<Derived>::NullaryExpr(size, internal::linspaced_op<Scalar,PacketScalar>(low,high,size));
+}
+
+/** \deprecated because of accuracy loss. In Eigen 3.3, it is an alias for LinSpaced(const Scalar&,const Scalar&)
+ *
+ * \sa LinSpaced(Scalar,Scalar)
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename DenseBase<Derived>::RandomAccessLinSpacedReturnType
+DenseBase<Derived>::LinSpaced(Sequential_t, const Scalar& low, const Scalar& high)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ EIGEN_STATIC_ASSERT_FIXED_SIZE(Derived)
+ return DenseBase<Derived>::NullaryExpr(Derived::SizeAtCompileTime, internal::linspaced_op<Scalar,PacketScalar>(low,high,Derived::SizeAtCompileTime));
+}
+
+/**
+ * \brief Sets a linearly spaced vector.
+ *
+ * The function generates 'size' equally spaced values in the closed interval [low,high].
+ * When size is set to 1, a vector of length 1 containing 'high' is returned.
+ *
+ * \only_for_vectors
+ *
+ * Example: \include DenseBase_LinSpaced.cpp
+ * Output: \verbinclude DenseBase_LinSpaced.out
+ *
+ * For integer scalar types, an even spacing is possible if and only if the length of the range,
+ * i.e., \c high-low is a scalar multiple of \c size-1, or if \c size is a scalar multiple of the
+ * number of values \c high-low+1 (meaning each value can be repeated the same number of time).
+ * If one of these two considions is not satisfied, then \c high is lowered to the largest value
+ * satisfying one of this constraint.
+ * Here are some examples:
+ *
+ * Example: \include DenseBase_LinSpacedInt.cpp
+ * Output: \verbinclude DenseBase_LinSpacedInt.out
+ *
+ * \sa setLinSpaced(Index,const Scalar&,const Scalar&), CwiseNullaryOp
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename DenseBase<Derived>::RandomAccessLinSpacedReturnType
+DenseBase<Derived>::LinSpaced(Index size, const Scalar& low, const Scalar& high)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ return DenseBase<Derived>::NullaryExpr(size, internal::linspaced_op<Scalar,PacketScalar>(low,high,size));
+}
+
+/**
+ * \copydoc DenseBase::LinSpaced(Index, const Scalar&, const Scalar&)
+ * Special version for fixed size types which does not require the size parameter.
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename DenseBase<Derived>::RandomAccessLinSpacedReturnType
+DenseBase<Derived>::LinSpaced(const Scalar& low, const Scalar& high)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ EIGEN_STATIC_ASSERT_FIXED_SIZE(Derived)
+ return DenseBase<Derived>::NullaryExpr(Derived::SizeAtCompileTime, internal::linspaced_op<Scalar,PacketScalar>(low,high,Derived::SizeAtCompileTime));
+}
+
+/** \returns true if all coefficients in this matrix are approximately equal to \a val, to within precision \a prec */
+template<typename Derived>
+EIGEN_DEVICE_FUNC bool DenseBase<Derived>::isApproxToConstant
+(const Scalar& val, const RealScalar& prec) const
+{
+ typename internal::nested_eval<Derived,1>::type self(derived());
+ for(Index j = 0; j < cols(); ++j)
+ for(Index i = 0; i < rows(); ++i)
+ if(!internal::isApprox(self.coeff(i, j), val, prec))
+ return false;
+ return true;
+}
+
+/** This is just an alias for isApproxToConstant().
+ *
+ * \returns true if all coefficients in this matrix are approximately equal to \a value, to within precision \a prec */
+template<typename Derived>
+EIGEN_DEVICE_FUNC bool DenseBase<Derived>::isConstant
+(const Scalar& val, const RealScalar& prec) const
+{
+ return isApproxToConstant(val, prec);
+}
+
+/** Alias for setConstant(): sets all coefficients in this expression to \a val.
+ *
+ * \sa setConstant(), Constant(), class CwiseNullaryOp
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void DenseBase<Derived>::fill(const Scalar& val)
+{
+ setConstant(val);
+}
+
+/** Sets all coefficients in this expression to value \a val.
+ *
+ * \sa fill(), setConstant(Index,const Scalar&), setConstant(Index,Index,const Scalar&), setZero(), setOnes(), Constant(), class CwiseNullaryOp, setZero(), setOnes()
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::setConstant(const Scalar& val)
+{
+ return derived() = Constant(rows(), cols(), val);
+}
+
+/** Resizes to the given \a size, and sets all coefficients in this expression to the given value \a val.
+ *
+ * \only_for_vectors
+ *
+ * Example: \include Matrix_setConstant_int.cpp
+ * Output: \verbinclude Matrix_setConstant_int.out
+ *
+ * \sa MatrixBase::setConstant(const Scalar&), setConstant(Index,Index,const Scalar&), class CwiseNullaryOp, MatrixBase::Constant(const Scalar&)
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived&
+PlainObjectBase<Derived>::setConstant(Index size, const Scalar& val)
+{
+ resize(size);
+ return setConstant(val);
+}
+
+/** Resizes to the given size, and sets all coefficients in this expression to the given value \a val.
+ *
+ * \param rows the new number of rows
+ * \param cols the new number of columns
+ * \param val the value to which all coefficients are set
+ *
+ * Example: \include Matrix_setConstant_int_int.cpp
+ * Output: \verbinclude Matrix_setConstant_int_int.out
+ *
+ * \sa MatrixBase::setConstant(const Scalar&), setConstant(Index,const Scalar&), class CwiseNullaryOp, MatrixBase::Constant(const Scalar&)
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived&
+PlainObjectBase<Derived>::setConstant(Index rows, Index cols, const Scalar& val)
+{
+ resize(rows, cols);
+ return setConstant(val);
+}
+
+/**
+ * \brief Sets a linearly spaced vector.
+ *
+ * The function generates 'size' equally spaced values in the closed interval [low,high].
+ * When size is set to 1, a vector of length 1 containing 'high' is returned.
+ *
+ * \only_for_vectors
+ *
+ * Example: \include DenseBase_setLinSpaced.cpp
+ * Output: \verbinclude DenseBase_setLinSpaced.out
+ *
+ * For integer scalar types, do not miss the explanations on the definition
+ * of \link LinSpaced(Index,const Scalar&,const Scalar&) even spacing \endlink.
+ *
+ * \sa LinSpaced(Index,const Scalar&,const Scalar&), CwiseNullaryOp
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::setLinSpaced(Index newSize, const Scalar& low, const Scalar& high)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ return derived() = Derived::NullaryExpr(newSize, internal::linspaced_op<Scalar,PacketScalar>(low,high,newSize));
+}
+
+/**
+ * \brief Sets a linearly spaced vector.
+ *
+ * The function fills \c *this with equally spaced values in the closed interval [low,high].
+ * When size is set to 1, a vector of length 1 containing 'high' is returned.
+ *
+ * \only_for_vectors
+ *
+ * For integer scalar types, do not miss the explanations on the definition
+ * of \link LinSpaced(Index,const Scalar&,const Scalar&) even spacing \endlink.
+ *
+ * \sa LinSpaced(Index,const Scalar&,const Scalar&), setLinSpaced(Index, const Scalar&, const Scalar&), CwiseNullaryOp
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::setLinSpaced(const Scalar& low, const Scalar& high)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ return setLinSpaced(size(), low, high);
+}
+
+// zero:
+
+/** \returns an expression of a zero matrix.
+ *
+ * The parameters \a rows and \a cols are the number of rows and of columns of
+ * the returned matrix. Must be compatible with this MatrixBase type.
+ *
+ * This variant is meant to be used for dynamic-size matrix types. For fixed-size types,
+ * it is redundant to pass \a rows and \a cols as arguments, so Zero() should be used
+ * instead.
+ *
+ * Example: \include MatrixBase_zero_int_int.cpp
+ * Output: \verbinclude MatrixBase_zero_int_int.out
+ *
+ * \sa Zero(), Zero(Index)
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename DenseBase<Derived>::ConstantReturnType
+DenseBase<Derived>::Zero(Index rows, Index cols)
+{
+ return Constant(rows, cols, Scalar(0));
+}
+
+/** \returns an expression of a zero vector.
+ *
+ * The parameter \a size is the size of the returned vector.
+ * Must be compatible with this MatrixBase type.
+ *
+ * \only_for_vectors
+ *
+ * This variant is meant to be used for dynamic-size vector types. For fixed-size types,
+ * it is redundant to pass \a size as argument, so Zero() should be used
+ * instead.
+ *
+ * Example: \include MatrixBase_zero_int.cpp
+ * Output: \verbinclude MatrixBase_zero_int.out
+ *
+ * \sa Zero(), Zero(Index,Index)
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename DenseBase<Derived>::ConstantReturnType
+DenseBase<Derived>::Zero(Index size)
+{
+ return Constant(size, Scalar(0));
+}
+
+/** \returns an expression of a fixed-size zero matrix or vector.
+ *
+ * This variant is only for fixed-size MatrixBase types. For dynamic-size types, you
+ * need to use the variants taking size arguments.
+ *
+ * Example: \include MatrixBase_zero.cpp
+ * Output: \verbinclude MatrixBase_zero.out
+ *
+ * \sa Zero(Index), Zero(Index,Index)
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename DenseBase<Derived>::ConstantReturnType
+DenseBase<Derived>::Zero()
+{
+ return Constant(Scalar(0));
+}
+
+/** \returns true if *this is approximately equal to the zero matrix,
+ * within the precision given by \a prec.
+ *
+ * Example: \include MatrixBase_isZero.cpp
+ * Output: \verbinclude MatrixBase_isZero.out
+ *
+ * \sa class CwiseNullaryOp, Zero()
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC bool DenseBase<Derived>::isZero(const RealScalar& prec) const
+{
+ typename internal::nested_eval<Derived,1>::type self(derived());
+ for(Index j = 0; j < cols(); ++j)
+ for(Index i = 0; i < rows(); ++i)
+ if(!internal::isMuchSmallerThan(self.coeff(i, j), static_cast<Scalar>(1), prec))
+ return false;
+ return true;
+}
+
+/** Sets all coefficients in this expression to zero.
+ *
+ * Example: \include MatrixBase_setZero.cpp
+ * Output: \verbinclude MatrixBase_setZero.out
+ *
+ * \sa class CwiseNullaryOp, Zero()
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::setZero()
+{
+ return setConstant(Scalar(0));
+}
+
+/** Resizes to the given \a size, and sets all coefficients in this expression to zero.
+ *
+ * \only_for_vectors
+ *
+ * Example: \include Matrix_setZero_int.cpp
+ * Output: \verbinclude Matrix_setZero_int.out
+ *
+ * \sa DenseBase::setZero(), setZero(Index,Index), class CwiseNullaryOp, DenseBase::Zero()
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived&
+PlainObjectBase<Derived>::setZero(Index newSize)
+{
+ resize(newSize);
+ return setConstant(Scalar(0));
+}
+
+/** Resizes to the given size, and sets all coefficients in this expression to zero.
+ *
+ * \param rows the new number of rows
+ * \param cols the new number of columns
+ *
+ * Example: \include Matrix_setZero_int_int.cpp
+ * Output: \verbinclude Matrix_setZero_int_int.out
+ *
+ * \sa DenseBase::setZero(), setZero(Index), class CwiseNullaryOp, DenseBase::Zero()
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived&
+PlainObjectBase<Derived>::setZero(Index rows, Index cols)
+{
+ resize(rows, cols);
+ return setConstant(Scalar(0));
+}
+
+// ones:
+
+/** \returns an expression of a matrix where all coefficients equal one.
+ *
+ * The parameters \a rows and \a cols are the number of rows and of columns of
+ * the returned matrix. Must be compatible with this MatrixBase type.
+ *
+ * This variant is meant to be used for dynamic-size matrix types. For fixed-size types,
+ * it is redundant to pass \a rows and \a cols as arguments, so Ones() should be used
+ * instead.
+ *
+ * Example: \include MatrixBase_ones_int_int.cpp
+ * Output: \verbinclude MatrixBase_ones_int_int.out
+ *
+ * \sa Ones(), Ones(Index), isOnes(), class Ones
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename DenseBase<Derived>::ConstantReturnType
+DenseBase<Derived>::Ones(Index rows, Index cols)
+{
+ return Constant(rows, cols, Scalar(1));
+}
+
+/** \returns an expression of a vector where all coefficients equal one.
+ *
+ * The parameter \a newSize is the size of the returned vector.
+ * Must be compatible with this MatrixBase type.
+ *
+ * \only_for_vectors
+ *
+ * This variant is meant to be used for dynamic-size vector types. For fixed-size types,
+ * it is redundant to pass \a size as argument, so Ones() should be used
+ * instead.
+ *
+ * Example: \include MatrixBase_ones_int.cpp
+ * Output: \verbinclude MatrixBase_ones_int.out
+ *
+ * \sa Ones(), Ones(Index,Index), isOnes(), class Ones
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename DenseBase<Derived>::ConstantReturnType
+DenseBase<Derived>::Ones(Index newSize)
+{
+ return Constant(newSize, Scalar(1));
+}
+
+/** \returns an expression of a fixed-size matrix or vector where all coefficients equal one.
+ *
+ * This variant is only for fixed-size MatrixBase types. For dynamic-size types, you
+ * need to use the variants taking size arguments.
+ *
+ * Example: \include MatrixBase_ones.cpp
+ * Output: \verbinclude MatrixBase_ones.out
+ *
+ * \sa Ones(Index), Ones(Index,Index), isOnes(), class Ones
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename DenseBase<Derived>::ConstantReturnType
+DenseBase<Derived>::Ones()
+{
+ return Constant(Scalar(1));
+}
+
+/** \returns true if *this is approximately equal to the matrix where all coefficients
+ * are equal to 1, within the precision given by \a prec.
+ *
+ * Example: \include MatrixBase_isOnes.cpp
+ * Output: \verbinclude MatrixBase_isOnes.out
+ *
+ * \sa class CwiseNullaryOp, Ones()
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC bool DenseBase<Derived>::isOnes
+(const RealScalar& prec) const
+{
+ return isApproxToConstant(Scalar(1), prec);
+}
+
+/** Sets all coefficients in this expression to one.
+ *
+ * Example: \include MatrixBase_setOnes.cpp
+ * Output: \verbinclude MatrixBase_setOnes.out
+ *
+ * \sa class CwiseNullaryOp, Ones()
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::setOnes()
+{
+ return setConstant(Scalar(1));
+}
+
+/** Resizes to the given \a newSize, and sets all coefficients in this expression to one.
+ *
+ * \only_for_vectors
+ *
+ * Example: \include Matrix_setOnes_int.cpp
+ * Output: \verbinclude Matrix_setOnes_int.out
+ *
+ * \sa MatrixBase::setOnes(), setOnes(Index,Index), class CwiseNullaryOp, MatrixBase::Ones()
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived&
+PlainObjectBase<Derived>::setOnes(Index newSize)
+{
+ resize(newSize);
+ return setConstant(Scalar(1));
+}
+
+/** Resizes to the given size, and sets all coefficients in this expression to one.
+ *
+ * \param rows the new number of rows
+ * \param cols the new number of columns
+ *
+ * Example: \include Matrix_setOnes_int_int.cpp
+ * Output: \verbinclude Matrix_setOnes_int_int.out
+ *
+ * \sa MatrixBase::setOnes(), setOnes(Index), class CwiseNullaryOp, MatrixBase::Ones()
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived&
+PlainObjectBase<Derived>::setOnes(Index rows, Index cols)
+{
+ resize(rows, cols);
+ return setConstant(Scalar(1));
+}
+
+// Identity:
+
+/** \returns an expression of the identity matrix (not necessarily square).
+ *
+ * The parameters \a rows and \a cols are the number of rows and of columns of
+ * the returned matrix. Must be compatible with this MatrixBase type.
+ *
+ * This variant is meant to be used for dynamic-size matrix types. For fixed-size types,
+ * it is redundant to pass \a rows and \a cols as arguments, so Identity() should be used
+ * instead.
+ *
+ * Example: \include MatrixBase_identity_int_int.cpp
+ * Output: \verbinclude MatrixBase_identity_int_int.out
+ *
+ * \sa Identity(), setIdentity(), isIdentity()
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename MatrixBase<Derived>::IdentityReturnType
+MatrixBase<Derived>::Identity(Index rows, Index cols)
+{
+ return DenseBase<Derived>::NullaryExpr(rows, cols, internal::scalar_identity_op<Scalar>());
+}
+
+/** \returns an expression of the identity matrix (not necessarily square).
+ *
+ * This variant is only for fixed-size MatrixBase types. For dynamic-size types, you
+ * need to use the variant taking size arguments.
+ *
+ * Example: \include MatrixBase_identity.cpp
+ * Output: \verbinclude MatrixBase_identity.out
+ *
+ * \sa Identity(Index,Index), setIdentity(), isIdentity()
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename MatrixBase<Derived>::IdentityReturnType
+MatrixBase<Derived>::Identity()
+{
+ EIGEN_STATIC_ASSERT_FIXED_SIZE(Derived)
+ return MatrixBase<Derived>::NullaryExpr(RowsAtCompileTime, ColsAtCompileTime, internal::scalar_identity_op<Scalar>());
+}
+
+/** \returns true if *this is approximately equal to the identity matrix
+ * (not necessarily square),
+ * within the precision given by \a prec.
+ *
+ * Example: \include MatrixBase_isIdentity.cpp
+ * Output: \verbinclude MatrixBase_isIdentity.out
+ *
+ * \sa class CwiseNullaryOp, Identity(), Identity(Index,Index), setIdentity()
+ */
+template<typename Derived>
+bool MatrixBase<Derived>::isIdentity
+(const RealScalar& prec) const
+{
+ typename internal::nested_eval<Derived,1>::type self(derived());
+ for(Index j = 0; j < cols(); ++j)
+ {
+ for(Index i = 0; i < rows(); ++i)
+ {
+ if(i == j)
+ {
+ if(!internal::isApprox(self.coeff(i, j), static_cast<Scalar>(1), prec))
+ return false;
+ }
+ else
+ {
+ if(!internal::isMuchSmallerThan(self.coeff(i, j), static_cast<RealScalar>(1), prec))
+ return false;
+ }
+ }
+ }
+ return true;
+}
+
+namespace internal {
+
+template<typename Derived, bool Big = (Derived::SizeAtCompileTime>=16)>
+struct setIdentity_impl
+{
+ EIGEN_DEVICE_FUNC
+ static EIGEN_STRONG_INLINE Derived& run(Derived& m)
+ {
+ return m = Derived::Identity(m.rows(), m.cols());
+ }
+};
+
+template<typename Derived>
+struct setIdentity_impl<Derived, true>
+{
+ EIGEN_DEVICE_FUNC
+ static EIGEN_STRONG_INLINE Derived& run(Derived& m)
+ {
+ m.setZero();
+ const Index size = numext::mini(m.rows(), m.cols());
+ for(Index i = 0; i < size; ++i) m.coeffRef(i,i) = typename Derived::Scalar(1);
+ return m;
+ }
+};
+
+} // end namespace internal
+
+/** Writes the identity expression (not necessarily square) into *this.
+ *
+ * Example: \include MatrixBase_setIdentity.cpp
+ * Output: \verbinclude MatrixBase_setIdentity.out
+ *
+ * \sa class CwiseNullaryOp, Identity(), Identity(Index,Index), isIdentity()
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::setIdentity()
+{
+ return internal::setIdentity_impl<Derived>::run(derived());
+}
+
+/** \brief Resizes to the given size, and writes the identity expression (not necessarily square) into *this.
+ *
+ * \param rows the new number of rows
+ * \param cols the new number of columns
+ *
+ * Example: \include Matrix_setIdentity_int_int.cpp
+ * Output: \verbinclude Matrix_setIdentity_int_int.out
+ *
+ * \sa MatrixBase::setIdentity(), class CwiseNullaryOp, MatrixBase::Identity()
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::setIdentity(Index rows, Index cols)
+{
+ derived().resize(rows, cols);
+ return setIdentity();
+}
+
+/** \returns an expression of the i-th unit (basis) vector.
+ *
+ * \only_for_vectors
+ *
+ * \sa MatrixBase::Unit(Index), MatrixBase::UnitX(), MatrixBase::UnitY(), MatrixBase::UnitZ(), MatrixBase::UnitW()
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename MatrixBase<Derived>::BasisReturnType MatrixBase<Derived>::Unit(Index newSize, Index i)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ return BasisReturnType(SquareMatrixType::Identity(newSize,newSize), i);
+}
+
+/** \returns an expression of the i-th unit (basis) vector.
+ *
+ * \only_for_vectors
+ *
+ * This variant is for fixed-size vector only.
+ *
+ * \sa MatrixBase::Unit(Index,Index), MatrixBase::UnitX(), MatrixBase::UnitY(), MatrixBase::UnitZ(), MatrixBase::UnitW()
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename MatrixBase<Derived>::BasisReturnType MatrixBase<Derived>::Unit(Index i)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ return BasisReturnType(SquareMatrixType::Identity(),i);
+}
+
+/** \returns an expression of the X axis unit vector (1{,0}^*)
+ *
+ * \only_for_vectors
+ *
+ * \sa MatrixBase::Unit(Index,Index), MatrixBase::Unit(Index), MatrixBase::UnitY(), MatrixBase::UnitZ(), MatrixBase::UnitW()
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename MatrixBase<Derived>::BasisReturnType MatrixBase<Derived>::UnitX()
+{ return Derived::Unit(0); }
+
+/** \returns an expression of the Y axis unit vector (0,1{,0}^*)
+ *
+ * \only_for_vectors
+ *
+ * \sa MatrixBase::Unit(Index,Index), MatrixBase::Unit(Index), MatrixBase::UnitY(), MatrixBase::UnitZ(), MatrixBase::UnitW()
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename MatrixBase<Derived>::BasisReturnType MatrixBase<Derived>::UnitY()
+{ return Derived::Unit(1); }
+
+/** \returns an expression of the Z axis unit vector (0,0,1{,0}^*)
+ *
+ * \only_for_vectors
+ *
+ * \sa MatrixBase::Unit(Index,Index), MatrixBase::Unit(Index), MatrixBase::UnitY(), MatrixBase::UnitZ(), MatrixBase::UnitW()
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename MatrixBase<Derived>::BasisReturnType MatrixBase<Derived>::UnitZ()
+{ return Derived::Unit(2); }
+
+/** \returns an expression of the W axis unit vector (0,0,0,1)
+ *
+ * \only_for_vectors
+ *
+ * \sa MatrixBase::Unit(Index,Index), MatrixBase::Unit(Index), MatrixBase::UnitY(), MatrixBase::UnitZ(), MatrixBase::UnitW()
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename MatrixBase<Derived>::BasisReturnType MatrixBase<Derived>::UnitW()
+{ return Derived::Unit(3); }
+
+} // end namespace Eigen
+
+#endif // EIGEN_CWISE_NULLARY_OP_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/CwiseTernaryOp.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/CwiseTernaryOp.h
new file mode 100644
index 000000000..9f3576fec
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/CwiseTernaryOp.h
@@ -0,0 +1,197 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2016 Eugene Brevdo <ebrevdo@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CWISE_TERNARY_OP_H
+#define EIGEN_CWISE_TERNARY_OP_H
+
+namespace Eigen {
+
+namespace internal {
+template <typename TernaryOp, typename Arg1, typename Arg2, typename Arg3>
+struct traits<CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3> > {
+ // we must not inherit from traits<Arg1> since it has
+ // the potential to cause problems with MSVC
+ typedef typename remove_all<Arg1>::type Ancestor;
+ typedef typename traits<Ancestor>::XprKind XprKind;
+ enum {
+ RowsAtCompileTime = traits<Ancestor>::RowsAtCompileTime,
+ ColsAtCompileTime = traits<Ancestor>::ColsAtCompileTime,
+ MaxRowsAtCompileTime = traits<Ancestor>::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = traits<Ancestor>::MaxColsAtCompileTime
+ };
+
+ // even though we require Arg1, Arg2, and Arg3 to have the same scalar type
+ // (see CwiseTernaryOp constructor),
+ // we still want to handle the case when the result type is different.
+ typedef typename result_of<TernaryOp(
+ const typename Arg1::Scalar&, const typename Arg2::Scalar&,
+ const typename Arg3::Scalar&)>::type Scalar;
+
+ typedef typename internal::traits<Arg1>::StorageKind StorageKind;
+ typedef typename internal::traits<Arg1>::StorageIndex StorageIndex;
+
+ typedef typename Arg1::Nested Arg1Nested;
+ typedef typename Arg2::Nested Arg2Nested;
+ typedef typename Arg3::Nested Arg3Nested;
+ typedef typename remove_reference<Arg1Nested>::type _Arg1Nested;
+ typedef typename remove_reference<Arg2Nested>::type _Arg2Nested;
+ typedef typename remove_reference<Arg3Nested>::type _Arg3Nested;
+ enum { Flags = _Arg1Nested::Flags & RowMajorBit };
+};
+} // end namespace internal
+
+template <typename TernaryOp, typename Arg1, typename Arg2, typename Arg3,
+ typename StorageKind>
+class CwiseTernaryOpImpl;
+
+/** \class CwiseTernaryOp
+ * \ingroup Core_Module
+ *
+ * \brief Generic expression where a coefficient-wise ternary operator is
+ * applied to two expressions
+ *
+ * \tparam TernaryOp template functor implementing the operator
+ * \tparam Arg1Type the type of the first argument
+ * \tparam Arg2Type the type of the second argument
+ * \tparam Arg3Type the type of the third argument
+ *
+ * This class represents an expression where a coefficient-wise ternary
+ * operator is applied to three expressions.
+ * It is the return type of ternary operators, by which we mean only those
+ * ternary operators where
+ * all three arguments are Eigen expressions.
+ * For example, the return type of betainc(matrix1, matrix2, matrix3) is a
+ * CwiseTernaryOp.
+ *
+ * Most of the time, this is the only way that it is used, so you typically
+ * don't have to name
+ * CwiseTernaryOp types explicitly.
+ *
+ * \sa MatrixBase::ternaryExpr(const MatrixBase<Argument2> &, const
+ * MatrixBase<Argument3> &, const CustomTernaryOp &) const, class CwiseBinaryOp,
+ * class CwiseUnaryOp, class CwiseNullaryOp
+ */
+template <typename TernaryOp, typename Arg1Type, typename Arg2Type,
+ typename Arg3Type>
+class CwiseTernaryOp : public CwiseTernaryOpImpl<
+ TernaryOp, Arg1Type, Arg2Type, Arg3Type,
+ typename internal::traits<Arg1Type>::StorageKind>,
+ internal::no_assignment_operator
+{
+ public:
+ typedef typename internal::remove_all<Arg1Type>::type Arg1;
+ typedef typename internal::remove_all<Arg2Type>::type Arg2;
+ typedef typename internal::remove_all<Arg3Type>::type Arg3;
+
+ typedef typename CwiseTernaryOpImpl<
+ TernaryOp, Arg1Type, Arg2Type, Arg3Type,
+ typename internal::traits<Arg1Type>::StorageKind>::Base Base;
+ EIGEN_GENERIC_PUBLIC_INTERFACE(CwiseTernaryOp)
+
+ typedef typename internal::ref_selector<Arg1Type>::type Arg1Nested;
+ typedef typename internal::ref_selector<Arg2Type>::type Arg2Nested;
+ typedef typename internal::ref_selector<Arg3Type>::type Arg3Nested;
+ typedef typename internal::remove_reference<Arg1Nested>::type _Arg1Nested;
+ typedef typename internal::remove_reference<Arg2Nested>::type _Arg2Nested;
+ typedef typename internal::remove_reference<Arg3Nested>::type _Arg3Nested;
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE CwiseTernaryOp(const Arg1& a1, const Arg2& a2,
+ const Arg3& a3,
+ const TernaryOp& func = TernaryOp())
+ : m_arg1(a1), m_arg2(a2), m_arg3(a3), m_functor(func) {
+ // require the sizes to match
+ EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Arg1, Arg2)
+ EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Arg1, Arg3)
+
+ // The index types should match
+ EIGEN_STATIC_ASSERT((internal::is_same<
+ typename internal::traits<Arg1Type>::StorageKind,
+ typename internal::traits<Arg2Type>::StorageKind>::value),
+ STORAGE_KIND_MUST_MATCH)
+ EIGEN_STATIC_ASSERT((internal::is_same<
+ typename internal::traits<Arg1Type>::StorageKind,
+ typename internal::traits<Arg3Type>::StorageKind>::value),
+ STORAGE_KIND_MUST_MATCH)
+
+ eigen_assert(a1.rows() == a2.rows() && a1.cols() == a2.cols() &&
+ a1.rows() == a3.rows() && a1.cols() == a3.cols());
+ }
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Index rows() const {
+ // return the fixed size type if available to enable compile time
+ // optimizations
+ if (internal::traits<typename internal::remove_all<Arg1Nested>::type>::
+ RowsAtCompileTime == Dynamic &&
+ internal::traits<typename internal::remove_all<Arg2Nested>::type>::
+ RowsAtCompileTime == Dynamic)
+ return m_arg3.rows();
+ else if (internal::traits<typename internal::remove_all<Arg1Nested>::type>::
+ RowsAtCompileTime == Dynamic &&
+ internal::traits<typename internal::remove_all<Arg3Nested>::type>::
+ RowsAtCompileTime == Dynamic)
+ return m_arg2.rows();
+ else
+ return m_arg1.rows();
+ }
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Index cols() const {
+ // return the fixed size type if available to enable compile time
+ // optimizations
+ if (internal::traits<typename internal::remove_all<Arg1Nested>::type>::
+ ColsAtCompileTime == Dynamic &&
+ internal::traits<typename internal::remove_all<Arg2Nested>::type>::
+ ColsAtCompileTime == Dynamic)
+ return m_arg3.cols();
+ else if (internal::traits<typename internal::remove_all<Arg1Nested>::type>::
+ ColsAtCompileTime == Dynamic &&
+ internal::traits<typename internal::remove_all<Arg3Nested>::type>::
+ ColsAtCompileTime == Dynamic)
+ return m_arg2.cols();
+ else
+ return m_arg1.cols();
+ }
+
+ /** \returns the first argument nested expression */
+ EIGEN_DEVICE_FUNC
+ const _Arg1Nested& arg1() const { return m_arg1; }
+ /** \returns the first argument nested expression */
+ EIGEN_DEVICE_FUNC
+ const _Arg2Nested& arg2() const { return m_arg2; }
+ /** \returns the third argument nested expression */
+ EIGEN_DEVICE_FUNC
+ const _Arg3Nested& arg3() const { return m_arg3; }
+ /** \returns the functor representing the ternary operation */
+ EIGEN_DEVICE_FUNC
+ const TernaryOp& functor() const { return m_functor; }
+
+ protected:
+ Arg1Nested m_arg1;
+ Arg2Nested m_arg2;
+ Arg3Nested m_arg3;
+ const TernaryOp m_functor;
+};
+
+// Generic API dispatcher
+template <typename TernaryOp, typename Arg1, typename Arg2, typename Arg3,
+ typename StorageKind>
+class CwiseTernaryOpImpl
+ : public internal::generic_xpr_base<
+ CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3> >::type {
+ public:
+ typedef typename internal::generic_xpr_base<
+ CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3> >::type Base;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_CWISE_TERNARY_OP_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/CwiseUnaryOp.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/CwiseUnaryOp.h
new file mode 100644
index 000000000..1d2dd19f2
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/CwiseUnaryOp.h
@@ -0,0 +1,103 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CWISE_UNARY_OP_H
+#define EIGEN_CWISE_UNARY_OP_H
+
+namespace Eigen {
+
+namespace internal {
+template<typename UnaryOp, typename XprType>
+struct traits<CwiseUnaryOp<UnaryOp, XprType> >
+ : traits<XprType>
+{
+ typedef typename result_of<
+ UnaryOp(const typename XprType::Scalar&)
+ >::type Scalar;
+ typedef typename XprType::Nested XprTypeNested;
+ typedef typename remove_reference<XprTypeNested>::type _XprTypeNested;
+ enum {
+ Flags = _XprTypeNested::Flags & RowMajorBit
+ };
+};
+}
+
+template<typename UnaryOp, typename XprType, typename StorageKind>
+class CwiseUnaryOpImpl;
+
+/** \class CwiseUnaryOp
+ * \ingroup Core_Module
+ *
+ * \brief Generic expression where a coefficient-wise unary operator is applied to an expression
+ *
+ * \tparam UnaryOp template functor implementing the operator
+ * \tparam XprType the type of the expression to which we are applying the unary operator
+ *
+ * This class represents an expression where a unary operator is applied to an expression.
+ * It is the return type of all operations taking exactly 1 input expression, regardless of the
+ * presence of other inputs such as scalars. For example, the operator* in the expression 3*matrix
+ * is considered unary, because only the right-hand side is an expression, and its
+ * return type is a specialization of CwiseUnaryOp.
+ *
+ * Most of the time, this is the only way that it is used, so you typically don't have to name
+ * CwiseUnaryOp types explicitly.
+ *
+ * \sa MatrixBase::unaryExpr(const CustomUnaryOp &) const, class CwiseBinaryOp, class CwiseNullaryOp
+ */
+template<typename UnaryOp, typename XprType>
+class CwiseUnaryOp : public CwiseUnaryOpImpl<UnaryOp, XprType, typename internal::traits<XprType>::StorageKind>, internal::no_assignment_operator
+{
+ public:
+
+ typedef typename CwiseUnaryOpImpl<UnaryOp, XprType,typename internal::traits<XprType>::StorageKind>::Base Base;
+ EIGEN_GENERIC_PUBLIC_INTERFACE(CwiseUnaryOp)
+ typedef typename internal::ref_selector<XprType>::type XprTypeNested;
+ typedef typename internal::remove_all<XprType>::type NestedExpression;
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ explicit CwiseUnaryOp(const XprType& xpr, const UnaryOp& func = UnaryOp())
+ : m_xpr(xpr), m_functor(func) {}
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Index rows() const { return m_xpr.rows(); }
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Index cols() const { return m_xpr.cols(); }
+
+ /** \returns the functor representing the unary operation */
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ const UnaryOp& functor() const { return m_functor; }
+
+ /** \returns the nested expression */
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ const typename internal::remove_all<XprTypeNested>::type&
+ nestedExpression() const { return m_xpr; }
+
+ /** \returns the nested expression */
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ typename internal::remove_all<XprTypeNested>::type&
+ nestedExpression() { return m_xpr; }
+
+ protected:
+ XprTypeNested m_xpr;
+ const UnaryOp m_functor;
+};
+
+// Generic API dispatcher
+template<typename UnaryOp, typename XprType, typename StorageKind>
+class CwiseUnaryOpImpl
+ : public internal::generic_xpr_base<CwiseUnaryOp<UnaryOp, XprType> >::type
+{
+public:
+ typedef typename internal::generic_xpr_base<CwiseUnaryOp<UnaryOp, XprType> >::type Base;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_CWISE_UNARY_OP_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/CwiseUnaryView.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/CwiseUnaryView.h
new file mode 100644
index 000000000..271033056
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/CwiseUnaryView.h
@@ -0,0 +1,128 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CWISE_UNARY_VIEW_H
+#define EIGEN_CWISE_UNARY_VIEW_H
+
+namespace Eigen {
+
+namespace internal {
+template<typename ViewOp, typename MatrixType>
+struct traits<CwiseUnaryView<ViewOp, MatrixType> >
+ : traits<MatrixType>
+{
+ typedef typename result_of<
+ ViewOp(const typename traits<MatrixType>::Scalar&)
+ >::type Scalar;
+ typedef typename MatrixType::Nested MatrixTypeNested;
+ typedef typename remove_all<MatrixTypeNested>::type _MatrixTypeNested;
+ enum {
+ FlagsLvalueBit = is_lvalue<MatrixType>::value ? LvalueBit : 0,
+ Flags = traits<_MatrixTypeNested>::Flags & (RowMajorBit | FlagsLvalueBit | DirectAccessBit), // FIXME DirectAccessBit should not be handled by expressions
+ MatrixTypeInnerStride = inner_stride_at_compile_time<MatrixType>::ret,
+ // need to cast the sizeof's from size_t to int explicitly, otherwise:
+ // "error: no integral type can represent all of the enumerator values
+ InnerStrideAtCompileTime = MatrixTypeInnerStride == Dynamic
+ ? int(Dynamic)
+ : int(MatrixTypeInnerStride) * int(sizeof(typename traits<MatrixType>::Scalar) / sizeof(Scalar)),
+ OuterStrideAtCompileTime = outer_stride_at_compile_time<MatrixType>::ret == Dynamic
+ ? int(Dynamic)
+ : outer_stride_at_compile_time<MatrixType>::ret * int(sizeof(typename traits<MatrixType>::Scalar) / sizeof(Scalar))
+ };
+};
+}
+
+template<typename ViewOp, typename MatrixType, typename StorageKind>
+class CwiseUnaryViewImpl;
+
+/** \class CwiseUnaryView
+ * \ingroup Core_Module
+ *
+ * \brief Generic lvalue expression of a coefficient-wise unary operator of a matrix or a vector
+ *
+ * \tparam ViewOp template functor implementing the view
+ * \tparam MatrixType the type of the matrix we are applying the unary operator
+ *
+ * This class represents a lvalue expression of a generic unary view operator of a matrix or a vector.
+ * It is the return type of real() and imag(), and most of the time this is the only way it is used.
+ *
+ * \sa MatrixBase::unaryViewExpr(const CustomUnaryOp &) const, class CwiseUnaryOp
+ */
+template<typename ViewOp, typename MatrixType>
+class CwiseUnaryView : public CwiseUnaryViewImpl<ViewOp, MatrixType, typename internal::traits<MatrixType>::StorageKind>
+{
+ public:
+
+ typedef typename CwiseUnaryViewImpl<ViewOp, MatrixType,typename internal::traits<MatrixType>::StorageKind>::Base Base;
+ EIGEN_GENERIC_PUBLIC_INTERFACE(CwiseUnaryView)
+ typedef typename internal::ref_selector<MatrixType>::non_const_type MatrixTypeNested;
+ typedef typename internal::remove_all<MatrixType>::type NestedExpression;
+
+ explicit inline CwiseUnaryView(MatrixType& mat, const ViewOp& func = ViewOp())
+ : m_matrix(mat), m_functor(func) {}
+
+ EIGEN_INHERIT_ASSIGNMENT_OPERATORS(CwiseUnaryView)
+
+ EIGEN_STRONG_INLINE Index rows() const { return m_matrix.rows(); }
+ EIGEN_STRONG_INLINE Index cols() const { return m_matrix.cols(); }
+
+ /** \returns the functor representing unary operation */
+ const ViewOp& functor() const { return m_functor; }
+
+ /** \returns the nested expression */
+ const typename internal::remove_all<MatrixTypeNested>::type&
+ nestedExpression() const { return m_matrix; }
+
+ /** \returns the nested expression */
+ typename internal::remove_reference<MatrixTypeNested>::type&
+ nestedExpression() { return m_matrix.const_cast_derived(); }
+
+ protected:
+ MatrixTypeNested m_matrix;
+ ViewOp m_functor;
+};
+
+// Generic API dispatcher
+template<typename ViewOp, typename XprType, typename StorageKind>
+class CwiseUnaryViewImpl
+ : public internal::generic_xpr_base<CwiseUnaryView<ViewOp, XprType> >::type
+{
+public:
+ typedef typename internal::generic_xpr_base<CwiseUnaryView<ViewOp, XprType> >::type Base;
+};
+
+template<typename ViewOp, typename MatrixType>
+class CwiseUnaryViewImpl<ViewOp,MatrixType,Dense>
+ : public internal::dense_xpr_base< CwiseUnaryView<ViewOp, MatrixType> >::type
+{
+ public:
+
+ typedef CwiseUnaryView<ViewOp, MatrixType> Derived;
+ typedef typename internal::dense_xpr_base< CwiseUnaryView<ViewOp, MatrixType> >::type Base;
+
+ EIGEN_DENSE_PUBLIC_INTERFACE(Derived)
+ EIGEN_INHERIT_ASSIGNMENT_OPERATORS(CwiseUnaryViewImpl)
+
+ EIGEN_DEVICE_FUNC inline Scalar* data() { return &(this->coeffRef(0)); }
+ EIGEN_DEVICE_FUNC inline const Scalar* data() const { return &(this->coeff(0)); }
+
+ EIGEN_DEVICE_FUNC inline Index innerStride() const
+ {
+ return derived().nestedExpression().innerStride() * sizeof(typename internal::traits<MatrixType>::Scalar) / sizeof(Scalar);
+ }
+
+ EIGEN_DEVICE_FUNC inline Index outerStride() const
+ {
+ return derived().nestedExpression().outerStride() * sizeof(typename internal::traits<MatrixType>::Scalar) / sizeof(Scalar);
+ }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_CWISE_UNARY_VIEW_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/DenseBase.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/DenseBase.h
new file mode 100644
index 000000000..90066ae73
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/DenseBase.h
@@ -0,0 +1,611 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DENSEBASE_H
+#define EIGEN_DENSEBASE_H
+
+namespace Eigen {
+
+namespace internal {
+
+// The index type defined by EIGEN_DEFAULT_DENSE_INDEX_TYPE must be a signed type.
+// This dummy function simply aims at checking that at compile time.
+static inline void check_DenseIndex_is_signed() {
+ EIGEN_STATIC_ASSERT(NumTraits<DenseIndex>::IsSigned,THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE);
+}
+
+} // end namespace internal
+
+/** \class DenseBase
+ * \ingroup Core_Module
+ *
+ * \brief Base class for all dense matrices, vectors, and arrays
+ *
+ * This class is the base that is inherited by all dense objects (matrix, vector, arrays,
+ * and related expression types). The common Eigen API for dense objects is contained in this class.
+ *
+ * \tparam Derived is the derived type, e.g., a matrix type or an expression.
+ *
+ * This class can be extended with the help of the plugin mechanism described on the page
+ * \ref TopicCustomizing_Plugins by defining the preprocessor symbol \c EIGEN_DENSEBASE_PLUGIN.
+ *
+ * \sa \blank \ref TopicClassHierarchy
+ */
+template<typename Derived> class DenseBase
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ : public DenseCoeffsBase<Derived>
+#else
+ : public DenseCoeffsBase<Derived,DirectWriteAccessors>
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+{
+ public:
+
+ /** Inner iterator type to iterate over the coefficients of a row or column.
+ * \sa class InnerIterator
+ */
+ typedef Eigen::InnerIterator<Derived> InnerIterator;
+
+ typedef typename internal::traits<Derived>::StorageKind StorageKind;
+
+ /**
+ * \brief The type used to store indices
+ * \details This typedef is relevant for types that store multiple indices such as
+ * PermutationMatrix or Transpositions, otherwise it defaults to Eigen::Index
+ * \sa \blank \ref TopicPreprocessorDirectives, Eigen::Index, SparseMatrixBase.
+ */
+ typedef typename internal::traits<Derived>::StorageIndex StorageIndex;
+
+ /** The numeric type of the expression' coefficients, e.g. float, double, int or std::complex<float>, etc. */
+ typedef typename internal::traits<Derived>::Scalar Scalar;
+
+ /** The numeric type of the expression' coefficients, e.g. float, double, int or std::complex<float>, etc.
+ *
+ * It is an alias for the Scalar type */
+ typedef Scalar value_type;
+
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ typedef DenseCoeffsBase<Derived> Base;
+
+ using Base::derived;
+ using Base::const_cast_derived;
+ using Base::rows;
+ using Base::cols;
+ using Base::size;
+ using Base::rowIndexByOuterInner;
+ using Base::colIndexByOuterInner;
+ using Base::coeff;
+ using Base::coeffByOuterInner;
+ using Base::operator();
+ using Base::operator[];
+ using Base::x;
+ using Base::y;
+ using Base::z;
+ using Base::w;
+ using Base::stride;
+ using Base::innerStride;
+ using Base::outerStride;
+ using Base::rowStride;
+ using Base::colStride;
+ typedef typename Base::CoeffReturnType CoeffReturnType;
+
+ enum {
+
+ RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
+ /**< The number of rows at compile-time. This is just a copy of the value provided
+ * by the \a Derived type. If a value is not known at compile-time,
+ * it is set to the \a Dynamic constant.
+ * \sa MatrixBase::rows(), MatrixBase::cols(), ColsAtCompileTime, SizeAtCompileTime */
+
+ ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
+ /**< The number of columns at compile-time. This is just a copy of the value provided
+ * by the \a Derived type. If a value is not known at compile-time,
+ * it is set to the \a Dynamic constant.
+ * \sa MatrixBase::rows(), MatrixBase::cols(), RowsAtCompileTime, SizeAtCompileTime */
+
+
+ SizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::RowsAtCompileTime,
+ internal::traits<Derived>::ColsAtCompileTime>::ret),
+ /**< This is equal to the number of coefficients, i.e. the number of
+ * rows times the number of columns, or to \a Dynamic if this is not
+ * known at compile-time. \sa RowsAtCompileTime, ColsAtCompileTime */
+
+ MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
+ /**< This value is equal to the maximum possible number of rows that this expression
+ * might have. If this expression might have an arbitrarily high number of rows,
+ * this value is set to \a Dynamic.
+ *
+ * This value is useful to know when evaluating an expression, in order to determine
+ * whether it is possible to avoid doing a dynamic memory allocation.
+ *
+ * \sa RowsAtCompileTime, MaxColsAtCompileTime, MaxSizeAtCompileTime
+ */
+
+ MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime,
+ /**< This value is equal to the maximum possible number of columns that this expression
+ * might have. If this expression might have an arbitrarily high number of columns,
+ * this value is set to \a Dynamic.
+ *
+ * This value is useful to know when evaluating an expression, in order to determine
+ * whether it is possible to avoid doing a dynamic memory allocation.
+ *
+ * \sa ColsAtCompileTime, MaxRowsAtCompileTime, MaxSizeAtCompileTime
+ */
+
+ MaxSizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::MaxRowsAtCompileTime,
+ internal::traits<Derived>::MaxColsAtCompileTime>::ret),
+ /**< This value is equal to the maximum possible number of coefficients that this expression
+ * might have. If this expression might have an arbitrarily high number of coefficients,
+ * this value is set to \a Dynamic.
+ *
+ * This value is useful to know when evaluating an expression, in order to determine
+ * whether it is possible to avoid doing a dynamic memory allocation.
+ *
+ * \sa SizeAtCompileTime, MaxRowsAtCompileTime, MaxColsAtCompileTime
+ */
+
+ IsVectorAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime == 1
+ || internal::traits<Derived>::MaxColsAtCompileTime == 1,
+ /**< This is set to true if either the number of rows or the number of
+ * columns is known at compile-time to be equal to 1. Indeed, in that case,
+ * we are dealing with a column-vector (if there is only one column) or with
+ * a row-vector (if there is only one row). */
+
+ Flags = internal::traits<Derived>::Flags,
+ /**< This stores expression \ref flags flags which may or may not be inherited by new expressions
+ * constructed from this one. See the \ref flags "list of flags".
+ */
+
+ IsRowMajor = int(Flags) & RowMajorBit, /**< True if this expression has row-major storage order. */
+
+ InnerSizeAtCompileTime = int(IsVectorAtCompileTime) ? int(SizeAtCompileTime)
+ : int(IsRowMajor) ? int(ColsAtCompileTime) : int(RowsAtCompileTime),
+
+ InnerStrideAtCompileTime = internal::inner_stride_at_compile_time<Derived>::ret,
+ OuterStrideAtCompileTime = internal::outer_stride_at_compile_time<Derived>::ret
+ };
+
+ typedef typename internal::find_best_packet<Scalar,SizeAtCompileTime>::type PacketScalar;
+
+ enum { IsPlainObjectBase = 0 };
+
+ /** The plain matrix type corresponding to this expression.
+ * \sa PlainObject */
+ typedef Matrix<typename internal::traits<Derived>::Scalar,
+ internal::traits<Derived>::RowsAtCompileTime,
+ internal::traits<Derived>::ColsAtCompileTime,
+ AutoAlign | (internal::traits<Derived>::Flags&RowMajorBit ? RowMajor : ColMajor),
+ internal::traits<Derived>::MaxRowsAtCompileTime,
+ internal::traits<Derived>::MaxColsAtCompileTime
+ > PlainMatrix;
+
+ /** The plain array type corresponding to this expression.
+ * \sa PlainObject */
+ typedef Array<typename internal::traits<Derived>::Scalar,
+ internal::traits<Derived>::RowsAtCompileTime,
+ internal::traits<Derived>::ColsAtCompileTime,
+ AutoAlign | (internal::traits<Derived>::Flags&RowMajorBit ? RowMajor : ColMajor),
+ internal::traits<Derived>::MaxRowsAtCompileTime,
+ internal::traits<Derived>::MaxColsAtCompileTime
+ > PlainArray;
+
+ /** \brief The plain matrix or array type corresponding to this expression.
+ *
+ * This is not necessarily exactly the return type of eval(). In the case of plain matrices,
+ * the return type of eval() is a const reference to a matrix, not a matrix! It is however guaranteed
+ * that the return type of eval() is either PlainObject or const PlainObject&.
+ */
+ typedef typename internal::conditional<internal::is_same<typename internal::traits<Derived>::XprKind,MatrixXpr >::value,
+ PlainMatrix, PlainArray>::type PlainObject;
+
+ /** \returns the number of nonzero coefficients which is in practice the number
+ * of stored coefficients. */
+ EIGEN_DEVICE_FUNC
+ inline Index nonZeros() const { return size(); }
+
+ /** \returns the outer size.
+ *
+ * \note For a vector, this returns just 1. For a matrix (non-vector), this is the major dimension
+ * with respect to the \ref TopicStorageOrders "storage order", i.e., the number of columns for a
+ * column-major matrix, and the number of rows for a row-major matrix. */
+ EIGEN_DEVICE_FUNC
+ Index outerSize() const
+ {
+ return IsVectorAtCompileTime ? 1
+ : int(IsRowMajor) ? this->rows() : this->cols();
+ }
+
+ /** \returns the inner size.
+ *
+ * \note For a vector, this is just the size. For a matrix (non-vector), this is the minor dimension
+ * with respect to the \ref TopicStorageOrders "storage order", i.e., the number of rows for a
+ * column-major matrix, and the number of columns for a row-major matrix. */
+ EIGEN_DEVICE_FUNC
+ Index innerSize() const
+ {
+ return IsVectorAtCompileTime ? this->size()
+ : int(IsRowMajor) ? this->cols() : this->rows();
+ }
+
+ /** Only plain matrices/arrays, not expressions, may be resized; therefore the only useful resize methods are
+ * Matrix::resize() and Array::resize(). The present method only asserts that the new size equals the old size, and does
+ * nothing else.
+ */
+ EIGEN_DEVICE_FUNC
+ void resize(Index newSize)
+ {
+ EIGEN_ONLY_USED_FOR_DEBUG(newSize);
+ eigen_assert(newSize == this->size()
+ && "DenseBase::resize() does not actually allow to resize.");
+ }
+ /** Only plain matrices/arrays, not expressions, may be resized; therefore the only useful resize methods are
+ * Matrix::resize() and Array::resize(). The present method only asserts that the new size equals the old size, and does
+ * nothing else.
+ */
+ EIGEN_DEVICE_FUNC
+ void resize(Index rows, Index cols)
+ {
+ EIGEN_ONLY_USED_FOR_DEBUG(rows);
+ EIGEN_ONLY_USED_FOR_DEBUG(cols);
+ eigen_assert(rows == this->rows() && cols == this->cols()
+ && "DenseBase::resize() does not actually allow to resize.");
+ }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** \internal Represents a matrix with all coefficients equal to one another*/
+ typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,PlainObject> ConstantReturnType;
+ /** \internal \deprecated Represents a vector with linearly spaced coefficients that allows sequential access only. */
+ typedef CwiseNullaryOp<internal::linspaced_op<Scalar,PacketScalar>,PlainObject> SequentialLinSpacedReturnType;
+ /** \internal Represents a vector with linearly spaced coefficients that allows random access. */
+ typedef CwiseNullaryOp<internal::linspaced_op<Scalar,PacketScalar>,PlainObject> RandomAccessLinSpacedReturnType;
+ /** \internal the return type of MatrixBase::eigenvalues() */
+ typedef Matrix<typename NumTraits<typename internal::traits<Derived>::Scalar>::Real, internal::traits<Derived>::ColsAtCompileTime, 1> EigenvaluesReturnType;
+
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+ /** Copies \a other into *this. \returns a reference to *this. */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Derived& operator=(const DenseBase<OtherDerived>& other);
+
+ /** Special case of the template operator=, in order to prevent the compiler
+ * from generating a default operator= (issue hit with g++ 4.1)
+ */
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Derived& operator=(const DenseBase& other);
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ Derived& operator=(const EigenBase<OtherDerived> &other);
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ Derived& operator+=(const EigenBase<OtherDerived> &other);
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ Derived& operator-=(const EigenBase<OtherDerived> &other);
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ Derived& operator=(const ReturnByValue<OtherDerived>& func);
+
+ /** \internal
+ * Copies \a other into *this without evaluating other. \returns a reference to *this.
+ * \deprecated */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ Derived& lazyAssign(const DenseBase<OtherDerived>& other);
+
+ EIGEN_DEVICE_FUNC
+ CommaInitializer<Derived> operator<< (const Scalar& s);
+
+ /** \deprecated it now returns \c *this */
+ template<unsigned int Added,unsigned int Removed>
+ EIGEN_DEPRECATED
+ const Derived& flagged() const
+ { return derived(); }
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ CommaInitializer<Derived> operator<< (const DenseBase<OtherDerived>& other);
+
+ typedef Transpose<Derived> TransposeReturnType;
+ EIGEN_DEVICE_FUNC
+ TransposeReturnType transpose();
+ typedef typename internal::add_const<Transpose<const Derived> >::type ConstTransposeReturnType;
+ EIGEN_DEVICE_FUNC
+ ConstTransposeReturnType transpose() const;
+ EIGEN_DEVICE_FUNC
+ void transposeInPlace();
+
+ EIGEN_DEVICE_FUNC static const ConstantReturnType
+ Constant(Index rows, Index cols, const Scalar& value);
+ EIGEN_DEVICE_FUNC static const ConstantReturnType
+ Constant(Index size, const Scalar& value);
+ EIGEN_DEVICE_FUNC static const ConstantReturnType
+ Constant(const Scalar& value);
+
+ EIGEN_DEVICE_FUNC static const SequentialLinSpacedReturnType
+ LinSpaced(Sequential_t, Index size, const Scalar& low, const Scalar& high);
+ EIGEN_DEVICE_FUNC static const RandomAccessLinSpacedReturnType
+ LinSpaced(Index size, const Scalar& low, const Scalar& high);
+ EIGEN_DEVICE_FUNC static const SequentialLinSpacedReturnType
+ LinSpaced(Sequential_t, const Scalar& low, const Scalar& high);
+ EIGEN_DEVICE_FUNC static const RandomAccessLinSpacedReturnType
+ LinSpaced(const Scalar& low, const Scalar& high);
+
+ template<typename CustomNullaryOp> EIGEN_DEVICE_FUNC
+ static const CwiseNullaryOp<CustomNullaryOp, PlainObject>
+ NullaryExpr(Index rows, Index cols, const CustomNullaryOp& func);
+ template<typename CustomNullaryOp> EIGEN_DEVICE_FUNC
+ static const CwiseNullaryOp<CustomNullaryOp, PlainObject>
+ NullaryExpr(Index size, const CustomNullaryOp& func);
+ template<typename CustomNullaryOp> EIGEN_DEVICE_FUNC
+ static const CwiseNullaryOp<CustomNullaryOp, PlainObject>
+ NullaryExpr(const CustomNullaryOp& func);
+
+ EIGEN_DEVICE_FUNC static const ConstantReturnType Zero(Index rows, Index cols);
+ EIGEN_DEVICE_FUNC static const ConstantReturnType Zero(Index size);
+ EIGEN_DEVICE_FUNC static const ConstantReturnType Zero();
+ EIGEN_DEVICE_FUNC static const ConstantReturnType Ones(Index rows, Index cols);
+ EIGEN_DEVICE_FUNC static const ConstantReturnType Ones(Index size);
+ EIGEN_DEVICE_FUNC static const ConstantReturnType Ones();
+
+ EIGEN_DEVICE_FUNC void fill(const Scalar& value);
+ EIGEN_DEVICE_FUNC Derived& setConstant(const Scalar& value);
+ EIGEN_DEVICE_FUNC Derived& setLinSpaced(Index size, const Scalar& low, const Scalar& high);
+ EIGEN_DEVICE_FUNC Derived& setLinSpaced(const Scalar& low, const Scalar& high);
+ EIGEN_DEVICE_FUNC Derived& setZero();
+ EIGEN_DEVICE_FUNC Derived& setOnes();
+ EIGEN_DEVICE_FUNC Derived& setRandom();
+
+ template<typename OtherDerived> EIGEN_DEVICE_FUNC
+ bool isApprox(const DenseBase<OtherDerived>& other,
+ const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+ EIGEN_DEVICE_FUNC
+ bool isMuchSmallerThan(const RealScalar& other,
+ const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+ template<typename OtherDerived> EIGEN_DEVICE_FUNC
+ bool isMuchSmallerThan(const DenseBase<OtherDerived>& other,
+ const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+
+ EIGEN_DEVICE_FUNC bool isApproxToConstant(const Scalar& value, const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+ EIGEN_DEVICE_FUNC bool isConstant(const Scalar& value, const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+ EIGEN_DEVICE_FUNC bool isZero(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+ EIGEN_DEVICE_FUNC bool isOnes(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+
+ inline bool hasNaN() const;
+ inline bool allFinite() const;
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Derived& operator*=(const Scalar& other);
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Derived& operator/=(const Scalar& other);
+
+ typedef typename internal::add_const_on_value_type<typename internal::eval<Derived>::type>::type EvalReturnType;
+ /** \returns the matrix or vector obtained by evaluating this expression.
+ *
+ * Notice that in the case of a plain matrix or vector (not an expression) this function just returns
+ * a const reference, in order to avoid a useless copy.
+ *
+ * \warning Be carefull with eval() and the auto C++ keyword, as detailed in this \link TopicPitfalls_auto_keyword page \endlink.
+ */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE EvalReturnType eval() const
+ {
+ // Even though MSVC does not honor strong inlining when the return type
+ // is a dynamic matrix, we desperately need strong inlining for fixed
+ // size types on MSVC.
+ return typename internal::eval<Derived>::type(derived());
+ }
+
+ /** swaps *this with the expression \a other.
+ *
+ */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ void swap(const DenseBase<OtherDerived>& other)
+ {
+ EIGEN_STATIC_ASSERT(!OtherDerived::IsPlainObjectBase,THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY);
+ eigen_assert(rows()==other.rows() && cols()==other.cols());
+ call_assignment(derived(), other.const_cast_derived(), internal::swap_assign_op<Scalar>());
+ }
+
+ /** swaps *this with the matrix or array \a other.
+ *
+ */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ void swap(PlainObjectBase<OtherDerived>& other)
+ {
+ eigen_assert(rows()==other.rows() && cols()==other.cols());
+ call_assignment(derived(), other.derived(), internal::swap_assign_op<Scalar>());
+ }
+
+ EIGEN_DEVICE_FUNC inline const NestByValue<Derived> nestByValue() const;
+ EIGEN_DEVICE_FUNC inline const ForceAlignedAccess<Derived> forceAlignedAccess() const;
+ EIGEN_DEVICE_FUNC inline ForceAlignedAccess<Derived> forceAlignedAccess();
+ template<bool Enable> EIGEN_DEVICE_FUNC
+ inline const typename internal::conditional<Enable,ForceAlignedAccess<Derived>,Derived&>::type forceAlignedAccessIf() const;
+ template<bool Enable> EIGEN_DEVICE_FUNC
+ inline typename internal::conditional<Enable,ForceAlignedAccess<Derived>,Derived&>::type forceAlignedAccessIf();
+
+ EIGEN_DEVICE_FUNC Scalar sum() const;
+ EIGEN_DEVICE_FUNC Scalar mean() const;
+ EIGEN_DEVICE_FUNC Scalar trace() const;
+
+ EIGEN_DEVICE_FUNC Scalar prod() const;
+
+ EIGEN_DEVICE_FUNC typename internal::traits<Derived>::Scalar minCoeff() const;
+ EIGEN_DEVICE_FUNC typename internal::traits<Derived>::Scalar maxCoeff() const;
+
+ template<typename IndexType> EIGEN_DEVICE_FUNC
+ typename internal::traits<Derived>::Scalar minCoeff(IndexType* row, IndexType* col) const;
+ template<typename IndexType> EIGEN_DEVICE_FUNC
+ typename internal::traits<Derived>::Scalar maxCoeff(IndexType* row, IndexType* col) const;
+ template<typename IndexType> EIGEN_DEVICE_FUNC
+ typename internal::traits<Derived>::Scalar minCoeff(IndexType* index) const;
+ template<typename IndexType> EIGEN_DEVICE_FUNC
+ typename internal::traits<Derived>::Scalar maxCoeff(IndexType* index) const;
+
+ template<typename BinaryOp>
+ EIGEN_DEVICE_FUNC
+ Scalar redux(const BinaryOp& func) const;
+
+ template<typename Visitor>
+ EIGEN_DEVICE_FUNC
+ void visit(Visitor& func) const;
+
+ /** \returns a WithFormat proxy object allowing to print a matrix the with given
+ * format \a fmt.
+ *
+ * See class IOFormat for some examples.
+ *
+ * \sa class IOFormat, class WithFormat
+ */
+ inline const WithFormat<Derived> format(const IOFormat& fmt) const
+ {
+ return WithFormat<Derived>(derived(), fmt);
+ }
+
+ /** \returns the unique coefficient of a 1x1 expression */
+ EIGEN_DEVICE_FUNC
+ CoeffReturnType value() const
+ {
+ EIGEN_STATIC_ASSERT_SIZE_1x1(Derived)
+ eigen_assert(this->rows() == 1 && this->cols() == 1);
+ return derived().coeff(0,0);
+ }
+
+ EIGEN_DEVICE_FUNC bool all() const;
+ EIGEN_DEVICE_FUNC bool any() const;
+ EIGEN_DEVICE_FUNC Index count() const;
+
+ typedef VectorwiseOp<Derived, Horizontal> RowwiseReturnType;
+ typedef const VectorwiseOp<const Derived, Horizontal> ConstRowwiseReturnType;
+ typedef VectorwiseOp<Derived, Vertical> ColwiseReturnType;
+ typedef const VectorwiseOp<const Derived, Vertical> ConstColwiseReturnType;
+
+ /** \returns a VectorwiseOp wrapper of *this providing additional partial reduction operations
+ *
+ * Example: \include MatrixBase_rowwise.cpp
+ * Output: \verbinclude MatrixBase_rowwise.out
+ *
+ * \sa colwise(), class VectorwiseOp, \ref TutorialReductionsVisitorsBroadcasting
+ */
+ //Code moved here due to a CUDA compiler bug
+ EIGEN_DEVICE_FUNC inline ConstRowwiseReturnType rowwise() const {
+ return ConstRowwiseReturnType(derived());
+ }
+ EIGEN_DEVICE_FUNC RowwiseReturnType rowwise();
+
+ /** \returns a VectorwiseOp wrapper of *this providing additional partial reduction operations
+ *
+ * Example: \include MatrixBase_colwise.cpp
+ * Output: \verbinclude MatrixBase_colwise.out
+ *
+ * \sa rowwise(), class VectorwiseOp, \ref TutorialReductionsVisitorsBroadcasting
+ */
+ EIGEN_DEVICE_FUNC inline ConstColwiseReturnType colwise() const {
+ return ConstColwiseReturnType(derived());
+ }
+ EIGEN_DEVICE_FUNC ColwiseReturnType colwise();
+
+ typedef CwiseNullaryOp<internal::scalar_random_op<Scalar>,PlainObject> RandomReturnType;
+ static const RandomReturnType Random(Index rows, Index cols);
+ static const RandomReturnType Random(Index size);
+ static const RandomReturnType Random();
+
+ template<typename ThenDerived,typename ElseDerived>
+ const Select<Derived,ThenDerived,ElseDerived>
+ select(const DenseBase<ThenDerived>& thenMatrix,
+ const DenseBase<ElseDerived>& elseMatrix) const;
+
+ template<typename ThenDerived>
+ inline const Select<Derived,ThenDerived, typename ThenDerived::ConstantReturnType>
+ select(const DenseBase<ThenDerived>& thenMatrix, const typename ThenDerived::Scalar& elseScalar) const;
+
+ template<typename ElseDerived>
+ inline const Select<Derived, typename ElseDerived::ConstantReturnType, ElseDerived >
+ select(const typename ElseDerived::Scalar& thenScalar, const DenseBase<ElseDerived>& elseMatrix) const;
+
+ template<int p> RealScalar lpNorm() const;
+
+ template<int RowFactor, int ColFactor>
+ EIGEN_DEVICE_FUNC
+ const Replicate<Derived,RowFactor,ColFactor> replicate() const;
+ /**
+ * \return an expression of the replication of \c *this
+ *
+ * Example: \include MatrixBase_replicate_int_int.cpp
+ * Output: \verbinclude MatrixBase_replicate_int_int.out
+ *
+ * \sa VectorwiseOp::replicate(), DenseBase::replicate<int,int>(), class Replicate
+ */
+ //Code moved here due to a CUDA compiler bug
+ EIGEN_DEVICE_FUNC
+ const Replicate<Derived, Dynamic, Dynamic> replicate(Index rowFactor, Index colFactor) const
+ {
+ return Replicate<Derived, Dynamic, Dynamic>(derived(), rowFactor, colFactor);
+ }
+
+ typedef Reverse<Derived, BothDirections> ReverseReturnType;
+ typedef const Reverse<const Derived, BothDirections> ConstReverseReturnType;
+ EIGEN_DEVICE_FUNC ReverseReturnType reverse();
+ /** This is the const version of reverse(). */
+ //Code moved here due to a CUDA compiler bug
+ EIGEN_DEVICE_FUNC ConstReverseReturnType reverse() const
+ {
+ return ConstReverseReturnType(derived());
+ }
+ EIGEN_DEVICE_FUNC void reverseInPlace();
+
+#define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::DenseBase
+#define EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
+#define EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(COND)
+# include "../plugins/BlockMethods.h"
+# ifdef EIGEN_DENSEBASE_PLUGIN
+# include EIGEN_DENSEBASE_PLUGIN
+# endif
+#undef EIGEN_CURRENT_STORAGE_BASE_CLASS
+#undef EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
+#undef EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF
+
+ // disable the use of evalTo for dense objects with a nice compilation error
+ template<typename Dest>
+ EIGEN_DEVICE_FUNC
+ inline void evalTo(Dest& ) const
+ {
+ EIGEN_STATIC_ASSERT((internal::is_same<Dest,void>::value),THE_EVAL_EVALTO_FUNCTION_SHOULD_NEVER_BE_CALLED_FOR_DENSE_OBJECTS);
+ }
+
+ protected:
+ /** Default constructor. Do nothing. */
+ EIGEN_DEVICE_FUNC DenseBase()
+ {
+ /* Just checks for self-consistency of the flags.
+ * Only do it when debugging Eigen, as this borders on paranoiac and could slow compilation down
+ */
+#ifdef EIGEN_INTERNAL_DEBUGGING
+ EIGEN_STATIC_ASSERT((EIGEN_IMPLIES(MaxRowsAtCompileTime==1 && MaxColsAtCompileTime!=1, int(IsRowMajor))
+ && EIGEN_IMPLIES(MaxColsAtCompileTime==1 && MaxRowsAtCompileTime!=1, int(!IsRowMajor))),
+ INVALID_STORAGE_ORDER_FOR_THIS_VECTOR_EXPRESSION)
+#endif
+ }
+
+ private:
+ EIGEN_DEVICE_FUNC explicit DenseBase(int);
+ EIGEN_DEVICE_FUNC DenseBase(int,int);
+ template<typename OtherDerived> EIGEN_DEVICE_FUNC explicit DenseBase(const DenseBase<OtherDerived>&);
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_DENSEBASE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/DenseCoeffsBase.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/DenseCoeffsBase.h
new file mode 100644
index 000000000..c4af48ab6
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/DenseCoeffsBase.h
@@ -0,0 +1,681 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DENSECOEFFSBASE_H
+#define EIGEN_DENSECOEFFSBASE_H
+
+namespace Eigen {
+
+namespace internal {
+template<typename T> struct add_const_on_value_type_if_arithmetic
+{
+ typedef typename conditional<is_arithmetic<T>::value, T, typename add_const_on_value_type<T>::type>::type type;
+};
+}
+
+/** \brief Base class providing read-only coefficient access to matrices and arrays.
+ * \ingroup Core_Module
+ * \tparam Derived Type of the derived class
+ * \tparam #ReadOnlyAccessors Constant indicating read-only access
+ *
+ * This class defines the \c operator() \c const function and friends, which can be used to read specific
+ * entries of a matrix or array.
+ *
+ * \sa DenseCoeffsBase<Derived, WriteAccessors>, DenseCoeffsBase<Derived, DirectAccessors>,
+ * \ref TopicClassHierarchy
+ */
+template<typename Derived>
+class DenseCoeffsBase<Derived,ReadOnlyAccessors> : public EigenBase<Derived>
+{
+ public:
+ typedef typename internal::traits<Derived>::StorageKind StorageKind;
+ typedef typename internal::traits<Derived>::Scalar Scalar;
+ typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+
+ // Explanation for this CoeffReturnType typedef.
+ // - This is the return type of the coeff() method.
+ // - The LvalueBit means exactly that we can offer a coeffRef() method, which means exactly that we can get references
+ // to coeffs, which means exactly that we can have coeff() return a const reference (as opposed to returning a value).
+ // - The is_artihmetic check is required since "const int", "const double", etc. will cause warnings on some systems
+ // while the declaration of "const T", where T is a non arithmetic type does not. Always returning "const Scalar&" is
+ // not possible, since the underlying expressions might not offer a valid address the reference could be referring to.
+ typedef typename internal::conditional<bool(internal::traits<Derived>::Flags&LvalueBit),
+ const Scalar&,
+ typename internal::conditional<internal::is_arithmetic<Scalar>::value, Scalar, const Scalar>::type
+ >::type CoeffReturnType;
+
+ typedef typename internal::add_const_on_value_type_if_arithmetic<
+ typename internal::packet_traits<Scalar>::type
+ >::type PacketReturnType;
+
+ typedef EigenBase<Derived> Base;
+ using Base::rows;
+ using Base::cols;
+ using Base::size;
+ using Base::derived;
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Index rowIndexByOuterInner(Index outer, Index inner) const
+ {
+ return int(Derived::RowsAtCompileTime) == 1 ? 0
+ : int(Derived::ColsAtCompileTime) == 1 ? inner
+ : int(Derived::Flags)&RowMajorBit ? outer
+ : inner;
+ }
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Index colIndexByOuterInner(Index outer, Index inner) const
+ {
+ return int(Derived::ColsAtCompileTime) == 1 ? 0
+ : int(Derived::RowsAtCompileTime) == 1 ? inner
+ : int(Derived::Flags)&RowMajorBit ? inner
+ : outer;
+ }
+
+ /** Short version: don't use this function, use
+ * \link operator()(Index,Index) const \endlink instead.
+ *
+ * Long version: this function is similar to
+ * \link operator()(Index,Index) const \endlink, but without the assertion.
+ * Use this for limiting the performance cost of debugging code when doing
+ * repeated coefficient access. Only use this when it is guaranteed that the
+ * parameters \a row and \a col are in range.
+ *
+ * If EIGEN_INTERNAL_DEBUGGING is defined, an assertion will be made, making this
+ * function equivalent to \link operator()(Index,Index) const \endlink.
+ *
+ * \sa operator()(Index,Index) const, coeffRef(Index,Index), coeff(Index) const
+ */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
+ {
+ eigen_internal_assert(row >= 0 && row < rows()
+ && col >= 0 && col < cols());
+ return internal::evaluator<Derived>(derived()).coeff(row,col);
+ }
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE CoeffReturnType coeffByOuterInner(Index outer, Index inner) const
+ {
+ return coeff(rowIndexByOuterInner(outer, inner),
+ colIndexByOuterInner(outer, inner));
+ }
+
+ /** \returns the coefficient at given the given row and column.
+ *
+ * \sa operator()(Index,Index), operator[](Index)
+ */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE CoeffReturnType operator()(Index row, Index col) const
+ {
+ eigen_assert(row >= 0 && row < rows()
+ && col >= 0 && col < cols());
+ return coeff(row, col);
+ }
+
+ /** Short version: don't use this function, use
+ * \link operator[](Index) const \endlink instead.
+ *
+ * Long version: this function is similar to
+ * \link operator[](Index) const \endlink, but without the assertion.
+ * Use this for limiting the performance cost of debugging code when doing
+ * repeated coefficient access. Only use this when it is guaranteed that the
+ * parameter \a index is in range.
+ *
+ * If EIGEN_INTERNAL_DEBUGGING is defined, an assertion will be made, making this
+ * function equivalent to \link operator[](Index) const \endlink.
+ *
+ * \sa operator[](Index) const, coeffRef(Index), coeff(Index,Index) const
+ */
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE CoeffReturnType
+ coeff(Index index) const
+ {
+ EIGEN_STATIC_ASSERT(internal::evaluator<Derived>::Flags & LinearAccessBit,
+ THIS_COEFFICIENT_ACCESSOR_TAKING_ONE_ACCESS_IS_ONLY_FOR_EXPRESSIONS_ALLOWING_LINEAR_ACCESS)
+ eigen_internal_assert(index >= 0 && index < size());
+ return internal::evaluator<Derived>(derived()).coeff(index);
+ }
+
+
+ /** \returns the coefficient at given index.
+ *
+ * This method is allowed only for vector expressions, and for matrix expressions having the LinearAccessBit.
+ *
+ * \sa operator[](Index), operator()(Index,Index) const, x() const, y() const,
+ * z() const, w() const
+ */
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE CoeffReturnType
+ operator[](Index index) const
+ {
+ EIGEN_STATIC_ASSERT(Derived::IsVectorAtCompileTime,
+ THE_BRACKET_OPERATOR_IS_ONLY_FOR_VECTORS__USE_THE_PARENTHESIS_OPERATOR_INSTEAD)
+ eigen_assert(index >= 0 && index < size());
+ return coeff(index);
+ }
+
+ /** \returns the coefficient at given index.
+ *
+ * This is synonymous to operator[](Index) const.
+ *
+ * This method is allowed only for vector expressions, and for matrix expressions having the LinearAccessBit.
+ *
+ * \sa operator[](Index), operator()(Index,Index) const, x() const, y() const,
+ * z() const, w() const
+ */
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE CoeffReturnType
+ operator()(Index index) const
+ {
+ eigen_assert(index >= 0 && index < size());
+ return coeff(index);
+ }
+
+ /** equivalent to operator[](0). */
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE CoeffReturnType
+ x() const { return (*this)[0]; }
+
+ /** equivalent to operator[](1). */
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE CoeffReturnType
+ y() const
+ {
+ EIGEN_STATIC_ASSERT(Derived::SizeAtCompileTime==-1 || Derived::SizeAtCompileTime>=2, OUT_OF_RANGE_ACCESS);
+ return (*this)[1];
+ }
+
+ /** equivalent to operator[](2). */
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE CoeffReturnType
+ z() const
+ {
+ EIGEN_STATIC_ASSERT(Derived::SizeAtCompileTime==-1 || Derived::SizeAtCompileTime>=3, OUT_OF_RANGE_ACCESS);
+ return (*this)[2];
+ }
+
+ /** equivalent to operator[](3). */
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE CoeffReturnType
+ w() const
+ {
+ EIGEN_STATIC_ASSERT(Derived::SizeAtCompileTime==-1 || Derived::SizeAtCompileTime>=4, OUT_OF_RANGE_ACCESS);
+ return (*this)[3];
+ }
+
+ /** \internal
+ * \returns the packet of coefficients starting at the given row and column. It is your responsibility
+ * to ensure that a packet really starts there. This method is only available on expressions having the
+ * PacketAccessBit.
+ *
+ * The \a LoadMode parameter may have the value \a #Aligned or \a #Unaligned. Its effect is to select
+ * the appropriate vectorization instruction. Aligned access is faster, but is only possible for packets
+ * starting at an address which is a multiple of the packet size.
+ */
+
+ template<int LoadMode>
+ EIGEN_STRONG_INLINE PacketReturnType packet(Index row, Index col) const
+ {
+ typedef typename internal::packet_traits<Scalar>::type DefaultPacketType;
+ eigen_internal_assert(row >= 0 && row < rows() && col >= 0 && col < cols());
+ return internal::evaluator<Derived>(derived()).template packet<LoadMode,DefaultPacketType>(row,col);
+ }
+
+
+ /** \internal */
+ template<int LoadMode>
+ EIGEN_STRONG_INLINE PacketReturnType packetByOuterInner(Index outer, Index inner) const
+ {
+ return packet<LoadMode>(rowIndexByOuterInner(outer, inner),
+ colIndexByOuterInner(outer, inner));
+ }
+
+ /** \internal
+ * \returns the packet of coefficients starting at the given index. It is your responsibility
+ * to ensure that a packet really starts there. This method is only available on expressions having the
+ * PacketAccessBit and the LinearAccessBit.
+ *
+ * The \a LoadMode parameter may have the value \a #Aligned or \a #Unaligned. Its effect is to select
+ * the appropriate vectorization instruction. Aligned access is faster, but is only possible for packets
+ * starting at an address which is a multiple of the packet size.
+ */
+
+ template<int LoadMode>
+ EIGEN_STRONG_INLINE PacketReturnType packet(Index index) const
+ {
+ EIGEN_STATIC_ASSERT(internal::evaluator<Derived>::Flags & LinearAccessBit,
+ THIS_COEFFICIENT_ACCESSOR_TAKING_ONE_ACCESS_IS_ONLY_FOR_EXPRESSIONS_ALLOWING_LINEAR_ACCESS)
+ typedef typename internal::packet_traits<Scalar>::type DefaultPacketType;
+ eigen_internal_assert(index >= 0 && index < size());
+ return internal::evaluator<Derived>(derived()).template packet<LoadMode,DefaultPacketType>(index);
+ }
+
+ protected:
+ // explanation: DenseBase is doing "using ..." on the methods from DenseCoeffsBase.
+ // But some methods are only available in the DirectAccess case.
+ // So we add dummy methods here with these names, so that "using... " doesn't fail.
+ // It's not private so that the child class DenseBase can access them, and it's not public
+ // either since it's an implementation detail, so has to be protected.
+ void coeffRef();
+ void coeffRefByOuterInner();
+ void writePacket();
+ void writePacketByOuterInner();
+ void copyCoeff();
+ void copyCoeffByOuterInner();
+ void copyPacket();
+ void copyPacketByOuterInner();
+ void stride();
+ void innerStride();
+ void outerStride();
+ void rowStride();
+ void colStride();
+};
+
+/** \brief Base class providing read/write coefficient access to matrices and arrays.
+ * \ingroup Core_Module
+ * \tparam Derived Type of the derived class
+ * \tparam #WriteAccessors Constant indicating read/write access
+ *
+ * This class defines the non-const \c operator() function and friends, which can be used to write specific
+ * entries of a matrix or array. This class inherits DenseCoeffsBase<Derived, ReadOnlyAccessors> which
+ * defines the const variant for reading specific entries.
+ *
+ * \sa DenseCoeffsBase<Derived, DirectAccessors>, \ref TopicClassHierarchy
+ */
+template<typename Derived>
+class DenseCoeffsBase<Derived, WriteAccessors> : public DenseCoeffsBase<Derived, ReadOnlyAccessors>
+{
+ public:
+
+ typedef DenseCoeffsBase<Derived, ReadOnlyAccessors> Base;
+
+ typedef typename internal::traits<Derived>::StorageKind StorageKind;
+ typedef typename internal::traits<Derived>::Scalar Scalar;
+ typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+
+ using Base::coeff;
+ using Base::rows;
+ using Base::cols;
+ using Base::size;
+ using Base::derived;
+ using Base::rowIndexByOuterInner;
+ using Base::colIndexByOuterInner;
+ using Base::operator[];
+ using Base::operator();
+ using Base::x;
+ using Base::y;
+ using Base::z;
+ using Base::w;
+
+ /** Short version: don't use this function, use
+ * \link operator()(Index,Index) \endlink instead.
+ *
+ * Long version: this function is similar to
+ * \link operator()(Index,Index) \endlink, but without the assertion.
+ * Use this for limiting the performance cost of debugging code when doing
+ * repeated coefficient access. Only use this when it is guaranteed that the
+ * parameters \a row and \a col are in range.
+ *
+ * If EIGEN_INTERNAL_DEBUGGING is defined, an assertion will be made, making this
+ * function equivalent to \link operator()(Index,Index) \endlink.
+ *
+ * \sa operator()(Index,Index), coeff(Index, Index) const, coeffRef(Index)
+ */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Scalar& coeffRef(Index row, Index col)
+ {
+ eigen_internal_assert(row >= 0 && row < rows()
+ && col >= 0 && col < cols());
+ return internal::evaluator<Derived>(derived()).coeffRef(row,col);
+ }
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Scalar&
+ coeffRefByOuterInner(Index outer, Index inner)
+ {
+ return coeffRef(rowIndexByOuterInner(outer, inner),
+ colIndexByOuterInner(outer, inner));
+ }
+
+ /** \returns a reference to the coefficient at given the given row and column.
+ *
+ * \sa operator[](Index)
+ */
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Scalar&
+ operator()(Index row, Index col)
+ {
+ eigen_assert(row >= 0 && row < rows()
+ && col >= 0 && col < cols());
+ return coeffRef(row, col);
+ }
+
+
+ /** Short version: don't use this function, use
+ * \link operator[](Index) \endlink instead.
+ *
+ * Long version: this function is similar to
+ * \link operator[](Index) \endlink, but without the assertion.
+ * Use this for limiting the performance cost of debugging code when doing
+ * repeated coefficient access. Only use this when it is guaranteed that the
+ * parameters \a row and \a col are in range.
+ *
+ * If EIGEN_INTERNAL_DEBUGGING is defined, an assertion will be made, making this
+ * function equivalent to \link operator[](Index) \endlink.
+ *
+ * \sa operator[](Index), coeff(Index) const, coeffRef(Index,Index)
+ */
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Scalar&
+ coeffRef(Index index)
+ {
+ EIGEN_STATIC_ASSERT(internal::evaluator<Derived>::Flags & LinearAccessBit,
+ THIS_COEFFICIENT_ACCESSOR_TAKING_ONE_ACCESS_IS_ONLY_FOR_EXPRESSIONS_ALLOWING_LINEAR_ACCESS)
+ eigen_internal_assert(index >= 0 && index < size());
+ return internal::evaluator<Derived>(derived()).coeffRef(index);
+ }
+
+ /** \returns a reference to the coefficient at given index.
+ *
+ * This method is allowed only for vector expressions, and for matrix expressions having the LinearAccessBit.
+ *
+ * \sa operator[](Index) const, operator()(Index,Index), x(), y(), z(), w()
+ */
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Scalar&
+ operator[](Index index)
+ {
+ EIGEN_STATIC_ASSERT(Derived::IsVectorAtCompileTime,
+ THE_BRACKET_OPERATOR_IS_ONLY_FOR_VECTORS__USE_THE_PARENTHESIS_OPERATOR_INSTEAD)
+ eigen_assert(index >= 0 && index < size());
+ return coeffRef(index);
+ }
+
+ /** \returns a reference to the coefficient at given index.
+ *
+ * This is synonymous to operator[](Index).
+ *
+ * This method is allowed only for vector expressions, and for matrix expressions having the LinearAccessBit.
+ *
+ * \sa operator[](Index) const, operator()(Index,Index), x(), y(), z(), w()
+ */
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Scalar&
+ operator()(Index index)
+ {
+ eigen_assert(index >= 0 && index < size());
+ return coeffRef(index);
+ }
+
+ /** equivalent to operator[](0). */
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Scalar&
+ x() { return (*this)[0]; }
+
+ /** equivalent to operator[](1). */
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Scalar&
+ y()
+ {
+ EIGEN_STATIC_ASSERT(Derived::SizeAtCompileTime==-1 || Derived::SizeAtCompileTime>=2, OUT_OF_RANGE_ACCESS);
+ return (*this)[1];
+ }
+
+ /** equivalent to operator[](2). */
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Scalar&
+ z()
+ {
+ EIGEN_STATIC_ASSERT(Derived::SizeAtCompileTime==-1 || Derived::SizeAtCompileTime>=3, OUT_OF_RANGE_ACCESS);
+ return (*this)[2];
+ }
+
+ /** equivalent to operator[](3). */
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Scalar&
+ w()
+ {
+ EIGEN_STATIC_ASSERT(Derived::SizeAtCompileTime==-1 || Derived::SizeAtCompileTime>=4, OUT_OF_RANGE_ACCESS);
+ return (*this)[3];
+ }
+};
+
+/** \brief Base class providing direct read-only coefficient access to matrices and arrays.
+ * \ingroup Core_Module
+ * \tparam Derived Type of the derived class
+ * \tparam #DirectAccessors Constant indicating direct access
+ *
+ * This class defines functions to work with strides which can be used to access entries directly. This class
+ * inherits DenseCoeffsBase<Derived, ReadOnlyAccessors> which defines functions to access entries read-only using
+ * \c operator() .
+ *
+ * \sa \blank \ref TopicClassHierarchy
+ */
+template<typename Derived>
+class DenseCoeffsBase<Derived, DirectAccessors> : public DenseCoeffsBase<Derived, ReadOnlyAccessors>
+{
+ public:
+
+ typedef DenseCoeffsBase<Derived, ReadOnlyAccessors> Base;
+ typedef typename internal::traits<Derived>::Scalar Scalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+
+ using Base::rows;
+ using Base::cols;
+ using Base::size;
+ using Base::derived;
+
+ /** \returns the pointer increment between two consecutive elements within a slice in the inner direction.
+ *
+ * \sa outerStride(), rowStride(), colStride()
+ */
+ EIGEN_DEVICE_FUNC
+ inline Index innerStride() const
+ {
+ return derived().innerStride();
+ }
+
+ /** \returns the pointer increment between two consecutive inner slices (for example, between two consecutive columns
+ * in a column-major matrix).
+ *
+ * \sa innerStride(), rowStride(), colStride()
+ */
+ EIGEN_DEVICE_FUNC
+ inline Index outerStride() const
+ {
+ return derived().outerStride();
+ }
+
+ // FIXME shall we remove it ?
+ inline Index stride() const
+ {
+ return Derived::IsVectorAtCompileTime ? innerStride() : outerStride();
+ }
+
+ /** \returns the pointer increment between two consecutive rows.
+ *
+ * \sa innerStride(), outerStride(), colStride()
+ */
+ EIGEN_DEVICE_FUNC
+ inline Index rowStride() const
+ {
+ return Derived::IsRowMajor ? outerStride() : innerStride();
+ }
+
+ /** \returns the pointer increment between two consecutive columns.
+ *
+ * \sa innerStride(), outerStride(), rowStride()
+ */
+ EIGEN_DEVICE_FUNC
+ inline Index colStride() const
+ {
+ return Derived::IsRowMajor ? innerStride() : outerStride();
+ }
+};
+
+/** \brief Base class providing direct read/write coefficient access to matrices and arrays.
+ * \ingroup Core_Module
+ * \tparam Derived Type of the derived class
+ * \tparam #DirectWriteAccessors Constant indicating direct access
+ *
+ * This class defines functions to work with strides which can be used to access entries directly. This class
+ * inherits DenseCoeffsBase<Derived, WriteAccessors> which defines functions to access entries read/write using
+ * \c operator().
+ *
+ * \sa \blank \ref TopicClassHierarchy
+ */
+template<typename Derived>
+class DenseCoeffsBase<Derived, DirectWriteAccessors>
+ : public DenseCoeffsBase<Derived, WriteAccessors>
+{
+ public:
+
+ typedef DenseCoeffsBase<Derived, WriteAccessors> Base;
+ typedef typename internal::traits<Derived>::Scalar Scalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+
+ using Base::rows;
+ using Base::cols;
+ using Base::size;
+ using Base::derived;
+
+ /** \returns the pointer increment between two consecutive elements within a slice in the inner direction.
+ *
+ * \sa outerStride(), rowStride(), colStride()
+ */
+ EIGEN_DEVICE_FUNC
+ inline Index innerStride() const
+ {
+ return derived().innerStride();
+ }
+
+ /** \returns the pointer increment between two consecutive inner slices (for example, between two consecutive columns
+ * in a column-major matrix).
+ *
+ * \sa innerStride(), rowStride(), colStride()
+ */
+ EIGEN_DEVICE_FUNC
+ inline Index outerStride() const
+ {
+ return derived().outerStride();
+ }
+
+ // FIXME shall we remove it ?
+ inline Index stride() const
+ {
+ return Derived::IsVectorAtCompileTime ? innerStride() : outerStride();
+ }
+
+ /** \returns the pointer increment between two consecutive rows.
+ *
+ * \sa innerStride(), outerStride(), colStride()
+ */
+ EIGEN_DEVICE_FUNC
+ inline Index rowStride() const
+ {
+ return Derived::IsRowMajor ? outerStride() : innerStride();
+ }
+
+ /** \returns the pointer increment between two consecutive columns.
+ *
+ * \sa innerStride(), outerStride(), rowStride()
+ */
+ EIGEN_DEVICE_FUNC
+ inline Index colStride() const
+ {
+ return Derived::IsRowMajor ? innerStride() : outerStride();
+ }
+};
+
+namespace internal {
+
+template<int Alignment, typename Derived, bool JustReturnZero>
+struct first_aligned_impl
+{
+ static inline Index run(const Derived&)
+ { return 0; }
+};
+
+template<int Alignment, typename Derived>
+struct first_aligned_impl<Alignment, Derived, false>
+{
+ static inline Index run(const Derived& m)
+ {
+ return internal::first_aligned<Alignment>(m.data(), m.size());
+ }
+};
+
+/** \internal \returns the index of the first element of the array stored by \a m that is properly aligned with respect to \a Alignment for vectorization.
+ *
+ * \tparam Alignment requested alignment in Bytes.
+ *
+ * There is also the variant first_aligned(const Scalar*, Integer) defined in Memory.h. See it for more
+ * documentation.
+ */
+template<int Alignment, typename Derived>
+static inline Index first_aligned(const DenseBase<Derived>& m)
+{
+ enum { ReturnZero = (int(evaluator<Derived>::Alignment) >= Alignment) || !(Derived::Flags & DirectAccessBit) };
+ return first_aligned_impl<Alignment, Derived, ReturnZero>::run(m.derived());
+}
+
+template<typename Derived>
+static inline Index first_default_aligned(const DenseBase<Derived>& m)
+{
+ typedef typename Derived::Scalar Scalar;
+ typedef typename packet_traits<Scalar>::type DefaultPacketType;
+ return internal::first_aligned<int(unpacket_traits<DefaultPacketType>::alignment),Derived>(m);
+}
+
+template<typename Derived, bool HasDirectAccess = has_direct_access<Derived>::ret>
+struct inner_stride_at_compile_time
+{
+ enum { ret = traits<Derived>::InnerStrideAtCompileTime };
+};
+
+template<typename Derived>
+struct inner_stride_at_compile_time<Derived, false>
+{
+ enum { ret = 0 };
+};
+
+template<typename Derived, bool HasDirectAccess = has_direct_access<Derived>::ret>
+struct outer_stride_at_compile_time
+{
+ enum { ret = traits<Derived>::OuterStrideAtCompileTime };
+};
+
+template<typename Derived>
+struct outer_stride_at_compile_time<Derived, false>
+{
+ enum { ret = 0 };
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_DENSECOEFFSBASE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/DenseStorage.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/DenseStorage.h
new file mode 100644
index 000000000..7958feeb9
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/DenseStorage.h
@@ -0,0 +1,570 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2010-2013 Hauke Heibel <hauke.heibel@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATRIXSTORAGE_H
+#define EIGEN_MATRIXSTORAGE_H
+
+#ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+ #define EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN(X) X; EIGEN_DENSE_STORAGE_CTOR_PLUGIN;
+#else
+ #define EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN(X)
+#endif
+
+namespace Eigen {
+
+namespace internal {
+
+struct constructor_without_unaligned_array_assert {};
+
+template<typename T, int Size>
+EIGEN_DEVICE_FUNC
+void check_static_allocation_size()
+{
+ // if EIGEN_STACK_ALLOCATION_LIMIT is defined to 0, then no limit
+ #if EIGEN_STACK_ALLOCATION_LIMIT
+ EIGEN_STATIC_ASSERT(Size * sizeof(T) <= EIGEN_STACK_ALLOCATION_LIMIT, OBJECT_ALLOCATED_ON_STACK_IS_TOO_BIG);
+ #endif
+}
+
+/** \internal
+ * Static array. If the MatrixOrArrayOptions require auto-alignment, the array will be automatically aligned:
+ * to 16 bytes boundary if the total size is a multiple of 16 bytes.
+ */
+template <typename T, int Size, int MatrixOrArrayOptions,
+ int Alignment = (MatrixOrArrayOptions&DontAlign) ? 0
+ : compute_default_alignment<T,Size>::value >
+struct plain_array
+{
+ T array[Size];
+
+ EIGEN_DEVICE_FUNC
+ plain_array()
+ {
+ check_static_allocation_size<T,Size>();
+ }
+
+ EIGEN_DEVICE_FUNC
+ plain_array(constructor_without_unaligned_array_assert)
+ {
+ check_static_allocation_size<T,Size>();
+ }
+};
+
+#if defined(EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT)
+ #define EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT(sizemask)
+#elif EIGEN_GNUC_AT_LEAST(4,7)
+ // GCC 4.7 is too aggressive in its optimizations and remove the alignement test based on the fact the array is declared to be aligned.
+ // See this bug report: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53900
+ // Hiding the origin of the array pointer behind a function argument seems to do the trick even if the function is inlined:
+ template<typename PtrType>
+ EIGEN_ALWAYS_INLINE PtrType eigen_unaligned_array_assert_workaround_gcc47(PtrType array) { return array; }
+ #define EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT(sizemask) \
+ eigen_assert((internal::UIntPtr(eigen_unaligned_array_assert_workaround_gcc47(array)) & (sizemask)) == 0 \
+ && "this assertion is explained here: " \
+ "http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html" \
+ " **** READ THIS WEB PAGE !!! ****");
+#else
+ #define EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT(sizemask) \
+ eigen_assert((internal::UIntPtr(array) & (sizemask)) == 0 \
+ && "this assertion is explained here: " \
+ "http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html" \
+ " **** READ THIS WEB PAGE !!! ****");
+#endif
+
+template <typename T, int Size, int MatrixOrArrayOptions>
+struct plain_array<T, Size, MatrixOrArrayOptions, 8>
+{
+ EIGEN_ALIGN_TO_BOUNDARY(8) T array[Size];
+
+ EIGEN_DEVICE_FUNC
+ plain_array()
+ {
+ EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT(7);
+ check_static_allocation_size<T,Size>();
+ }
+
+ EIGEN_DEVICE_FUNC
+ plain_array(constructor_without_unaligned_array_assert)
+ {
+ check_static_allocation_size<T,Size>();
+ }
+};
+
+template <typename T, int Size, int MatrixOrArrayOptions>
+struct plain_array<T, Size, MatrixOrArrayOptions, 16>
+{
+ EIGEN_ALIGN_TO_BOUNDARY(16) T array[Size];
+
+ EIGEN_DEVICE_FUNC
+ plain_array()
+ {
+ EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT(15);
+ check_static_allocation_size<T,Size>();
+ }
+
+ EIGEN_DEVICE_FUNC
+ plain_array(constructor_without_unaligned_array_assert)
+ {
+ check_static_allocation_size<T,Size>();
+ }
+};
+
+template <typename T, int Size, int MatrixOrArrayOptions>
+struct plain_array<T, Size, MatrixOrArrayOptions, 32>
+{
+ EIGEN_ALIGN_TO_BOUNDARY(32) T array[Size];
+
+ EIGEN_DEVICE_FUNC
+ plain_array()
+ {
+ EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT(31);
+ check_static_allocation_size<T,Size>();
+ }
+
+ EIGEN_DEVICE_FUNC
+ plain_array(constructor_without_unaligned_array_assert)
+ {
+ check_static_allocation_size<T,Size>();
+ }
+};
+
+template <typename T, int Size, int MatrixOrArrayOptions>
+struct plain_array<T, Size, MatrixOrArrayOptions, 64>
+{
+ EIGEN_ALIGN_TO_BOUNDARY(64) T array[Size];
+
+ EIGEN_DEVICE_FUNC
+ plain_array()
+ {
+ EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT(63);
+ check_static_allocation_size<T,Size>();
+ }
+
+ EIGEN_DEVICE_FUNC
+ plain_array(constructor_without_unaligned_array_assert)
+ {
+ check_static_allocation_size<T,Size>();
+ }
+};
+
+template <typename T, int MatrixOrArrayOptions, int Alignment>
+struct plain_array<T, 0, MatrixOrArrayOptions, Alignment>
+{
+ T array[1];
+ EIGEN_DEVICE_FUNC plain_array() {}
+ EIGEN_DEVICE_FUNC plain_array(constructor_without_unaligned_array_assert) {}
+};
+
+} // end namespace internal
+
+/** \internal
+ *
+ * \class DenseStorage
+ * \ingroup Core_Module
+ *
+ * \brief Stores the data of a matrix
+ *
+ * This class stores the data of fixed-size, dynamic-size or mixed matrices
+ * in a way as compact as possible.
+ *
+ * \sa Matrix
+ */
+template<typename T, int Size, int _Rows, int _Cols, int _Options> class DenseStorage;
+
+// purely fixed-size matrix
+template<typename T, int Size, int _Rows, int _Cols, int _Options> class DenseStorage
+{
+ internal::plain_array<T,Size,_Options> m_data;
+ public:
+ EIGEN_DEVICE_FUNC DenseStorage() {
+ EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN(Index size = Size)
+ }
+ EIGEN_DEVICE_FUNC
+ explicit DenseStorage(internal::constructor_without_unaligned_array_assert)
+ : m_data(internal::constructor_without_unaligned_array_assert()) {}
+ EIGEN_DEVICE_FUNC
+ DenseStorage(const DenseStorage& other) : m_data(other.m_data) {
+ EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN(Index size = Size)
+ }
+ EIGEN_DEVICE_FUNC
+ DenseStorage& operator=(const DenseStorage& other)
+ {
+ if (this != &other) m_data = other.m_data;
+ return *this;
+ }
+ EIGEN_DEVICE_FUNC DenseStorage(Index size, Index rows, Index cols) {
+ EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN({})
+ eigen_internal_assert(size==rows*cols && rows==_Rows && cols==_Cols);
+ EIGEN_UNUSED_VARIABLE(size);
+ EIGEN_UNUSED_VARIABLE(rows);
+ EIGEN_UNUSED_VARIABLE(cols);
+ }
+ EIGEN_DEVICE_FUNC void swap(DenseStorage& other) { std::swap(m_data,other.m_data); }
+ EIGEN_DEVICE_FUNC static Index rows(void) {return _Rows;}
+ EIGEN_DEVICE_FUNC static Index cols(void) {return _Cols;}
+ EIGEN_DEVICE_FUNC void conservativeResize(Index,Index,Index) {}
+ EIGEN_DEVICE_FUNC void resize(Index,Index,Index) {}
+ EIGEN_DEVICE_FUNC const T *data() const { return m_data.array; }
+ EIGEN_DEVICE_FUNC T *data() { return m_data.array; }
+};
+
+// null matrix
+template<typename T, int _Rows, int _Cols, int _Options> class DenseStorage<T, 0, _Rows, _Cols, _Options>
+{
+ public:
+ EIGEN_DEVICE_FUNC DenseStorage() {}
+ EIGEN_DEVICE_FUNC explicit DenseStorage(internal::constructor_without_unaligned_array_assert) {}
+ EIGEN_DEVICE_FUNC DenseStorage(const DenseStorage&) {}
+ EIGEN_DEVICE_FUNC DenseStorage& operator=(const DenseStorage&) { return *this; }
+ EIGEN_DEVICE_FUNC DenseStorage(Index,Index,Index) {}
+ EIGEN_DEVICE_FUNC void swap(DenseStorage& ) {}
+ EIGEN_DEVICE_FUNC static Index rows(void) {return _Rows;}
+ EIGEN_DEVICE_FUNC static Index cols(void) {return _Cols;}
+ EIGEN_DEVICE_FUNC void conservativeResize(Index,Index,Index) {}
+ EIGEN_DEVICE_FUNC void resize(Index,Index,Index) {}
+ EIGEN_DEVICE_FUNC const T *data() const { return 0; }
+ EIGEN_DEVICE_FUNC T *data() { return 0; }
+};
+
+// more specializations for null matrices; these are necessary to resolve ambiguities
+template<typename T, int _Options> class DenseStorage<T, 0, Dynamic, Dynamic, _Options>
+: public DenseStorage<T, 0, 0, 0, _Options> { };
+
+template<typename T, int _Rows, int _Options> class DenseStorage<T, 0, _Rows, Dynamic, _Options>
+: public DenseStorage<T, 0, 0, 0, _Options> { };
+
+template<typename T, int _Cols, int _Options> class DenseStorage<T, 0, Dynamic, _Cols, _Options>
+: public DenseStorage<T, 0, 0, 0, _Options> { };
+
+// dynamic-size matrix with fixed-size storage
+template<typename T, int Size, int _Options> class DenseStorage<T, Size, Dynamic, Dynamic, _Options>
+{
+ internal::plain_array<T,Size,_Options> m_data;
+ Index m_rows;
+ Index m_cols;
+ public:
+ EIGEN_DEVICE_FUNC DenseStorage() : m_rows(0), m_cols(0) {}
+ EIGEN_DEVICE_FUNC explicit DenseStorage(internal::constructor_without_unaligned_array_assert)
+ : m_data(internal::constructor_without_unaligned_array_assert()), m_rows(0), m_cols(0) {}
+ EIGEN_DEVICE_FUNC DenseStorage(const DenseStorage& other) : m_data(other.m_data), m_rows(other.m_rows), m_cols(other.m_cols) {}
+ EIGEN_DEVICE_FUNC DenseStorage& operator=(const DenseStorage& other)
+ {
+ if (this != &other)
+ {
+ m_data = other.m_data;
+ m_rows = other.m_rows;
+ m_cols = other.m_cols;
+ }
+ return *this;
+ }
+ EIGEN_DEVICE_FUNC DenseStorage(Index, Index rows, Index cols) : m_rows(rows), m_cols(cols) {}
+ EIGEN_DEVICE_FUNC void swap(DenseStorage& other)
+ { std::swap(m_data,other.m_data); std::swap(m_rows,other.m_rows); std::swap(m_cols,other.m_cols); }
+ EIGEN_DEVICE_FUNC Index rows() const {return m_rows;}
+ EIGEN_DEVICE_FUNC Index cols() const {return m_cols;}
+ EIGEN_DEVICE_FUNC void conservativeResize(Index, Index rows, Index cols) { m_rows = rows; m_cols = cols; }
+ EIGEN_DEVICE_FUNC void resize(Index, Index rows, Index cols) { m_rows = rows; m_cols = cols; }
+ EIGEN_DEVICE_FUNC const T *data() const { return m_data.array; }
+ EIGEN_DEVICE_FUNC T *data() { return m_data.array; }
+};
+
+// dynamic-size matrix with fixed-size storage and fixed width
+template<typename T, int Size, int _Cols, int _Options> class DenseStorage<T, Size, Dynamic, _Cols, _Options>
+{
+ internal::plain_array<T,Size,_Options> m_data;
+ Index m_rows;
+ public:
+ EIGEN_DEVICE_FUNC DenseStorage() : m_rows(0) {}
+ EIGEN_DEVICE_FUNC explicit DenseStorage(internal::constructor_without_unaligned_array_assert)
+ : m_data(internal::constructor_without_unaligned_array_assert()), m_rows(0) {}
+ EIGEN_DEVICE_FUNC DenseStorage(const DenseStorage& other) : m_data(other.m_data), m_rows(other.m_rows) {}
+ EIGEN_DEVICE_FUNC DenseStorage& operator=(const DenseStorage& other)
+ {
+ if (this != &other)
+ {
+ m_data = other.m_data;
+ m_rows = other.m_rows;
+ }
+ return *this;
+ }
+ EIGEN_DEVICE_FUNC DenseStorage(Index, Index rows, Index) : m_rows(rows) {}
+ EIGEN_DEVICE_FUNC void swap(DenseStorage& other) { std::swap(m_data,other.m_data); std::swap(m_rows,other.m_rows); }
+ EIGEN_DEVICE_FUNC Index rows(void) const {return m_rows;}
+ EIGEN_DEVICE_FUNC Index cols(void) const {return _Cols;}
+ EIGEN_DEVICE_FUNC void conservativeResize(Index, Index rows, Index) { m_rows = rows; }
+ EIGEN_DEVICE_FUNC void resize(Index, Index rows, Index) { m_rows = rows; }
+ EIGEN_DEVICE_FUNC const T *data() const { return m_data.array; }
+ EIGEN_DEVICE_FUNC T *data() { return m_data.array; }
+};
+
+// dynamic-size matrix with fixed-size storage and fixed height
+template<typename T, int Size, int _Rows, int _Options> class DenseStorage<T, Size, _Rows, Dynamic, _Options>
+{
+ internal::plain_array<T,Size,_Options> m_data;
+ Index m_cols;
+ public:
+ EIGEN_DEVICE_FUNC DenseStorage() : m_cols(0) {}
+ EIGEN_DEVICE_FUNC explicit DenseStorage(internal::constructor_without_unaligned_array_assert)
+ : m_data(internal::constructor_without_unaligned_array_assert()), m_cols(0) {}
+ EIGEN_DEVICE_FUNC DenseStorage(const DenseStorage& other) : m_data(other.m_data), m_cols(other.m_cols) {}
+ EIGEN_DEVICE_FUNC DenseStorage& operator=(const DenseStorage& other)
+ {
+ if (this != &other)
+ {
+ m_data = other.m_data;
+ m_cols = other.m_cols;
+ }
+ return *this;
+ }
+ EIGEN_DEVICE_FUNC DenseStorage(Index, Index, Index cols) : m_cols(cols) {}
+ EIGEN_DEVICE_FUNC void swap(DenseStorage& other) { std::swap(m_data,other.m_data); std::swap(m_cols,other.m_cols); }
+ EIGEN_DEVICE_FUNC Index rows(void) const {return _Rows;}
+ EIGEN_DEVICE_FUNC Index cols(void) const {return m_cols;}
+ void conservativeResize(Index, Index, Index cols) { m_cols = cols; }
+ void resize(Index, Index, Index cols) { m_cols = cols; }
+ EIGEN_DEVICE_FUNC const T *data() const { return m_data.array; }
+ EIGEN_DEVICE_FUNC T *data() { return m_data.array; }
+};
+
+// purely dynamic matrix.
+template<typename T, int _Options> class DenseStorage<T, Dynamic, Dynamic, Dynamic, _Options>
+{
+ T *m_data;
+ Index m_rows;
+ Index m_cols;
+ public:
+ EIGEN_DEVICE_FUNC DenseStorage() : m_data(0), m_rows(0), m_cols(0) {}
+ EIGEN_DEVICE_FUNC explicit DenseStorage(internal::constructor_without_unaligned_array_assert)
+ : m_data(0), m_rows(0), m_cols(0) {}
+ EIGEN_DEVICE_FUNC DenseStorage(Index size, Index rows, Index cols)
+ : m_data(internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size)), m_rows(rows), m_cols(cols)
+ {
+ EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN({})
+ eigen_internal_assert(size==rows*cols && rows>=0 && cols >=0);
+ }
+ EIGEN_DEVICE_FUNC DenseStorage(const DenseStorage& other)
+ : m_data(internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(other.m_rows*other.m_cols))
+ , m_rows(other.m_rows)
+ , m_cols(other.m_cols)
+ {
+ EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN(Index size = m_rows*m_cols)
+ internal::smart_copy(other.m_data, other.m_data+other.m_rows*other.m_cols, m_data);
+ }
+ EIGEN_DEVICE_FUNC DenseStorage& operator=(const DenseStorage& other)
+ {
+ if (this != &other)
+ {
+ DenseStorage tmp(other);
+ this->swap(tmp);
+ }
+ return *this;
+ }
+#if EIGEN_HAS_RVALUE_REFERENCES
+ EIGEN_DEVICE_FUNC
+ DenseStorage(DenseStorage&& other) EIGEN_NOEXCEPT
+ : m_data(std::move(other.m_data))
+ , m_rows(std::move(other.m_rows))
+ , m_cols(std::move(other.m_cols))
+ {
+ other.m_data = nullptr;
+ other.m_rows = 0;
+ other.m_cols = 0;
+ }
+ EIGEN_DEVICE_FUNC
+ DenseStorage& operator=(DenseStorage&& other) EIGEN_NOEXCEPT
+ {
+ using std::swap;
+ swap(m_data, other.m_data);
+ swap(m_rows, other.m_rows);
+ swap(m_cols, other.m_cols);
+ return *this;
+ }
+#endif
+ EIGEN_DEVICE_FUNC ~DenseStorage() { internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, m_rows*m_cols); }
+ EIGEN_DEVICE_FUNC void swap(DenseStorage& other)
+ { std::swap(m_data,other.m_data); std::swap(m_rows,other.m_rows); std::swap(m_cols,other.m_cols); }
+ EIGEN_DEVICE_FUNC Index rows(void) const {return m_rows;}
+ EIGEN_DEVICE_FUNC Index cols(void) const {return m_cols;}
+ void conservativeResize(Index size, Index rows, Index cols)
+ {
+ m_data = internal::conditional_aligned_realloc_new_auto<T,(_Options&DontAlign)==0>(m_data, size, m_rows*m_cols);
+ m_rows = rows;
+ m_cols = cols;
+ }
+ EIGEN_DEVICE_FUNC void resize(Index size, Index rows, Index cols)
+ {
+ if(size != m_rows*m_cols)
+ {
+ internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, m_rows*m_cols);
+ if (size)
+ m_data = internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size);
+ else
+ m_data = 0;
+ EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN({})
+ }
+ m_rows = rows;
+ m_cols = cols;
+ }
+ EIGEN_DEVICE_FUNC const T *data() const { return m_data; }
+ EIGEN_DEVICE_FUNC T *data() { return m_data; }
+};
+
+// matrix with dynamic width and fixed height (so that matrix has dynamic size).
+template<typename T, int _Rows, int _Options> class DenseStorage<T, Dynamic, _Rows, Dynamic, _Options>
+{
+ T *m_data;
+ Index m_cols;
+ public:
+ EIGEN_DEVICE_FUNC DenseStorage() : m_data(0), m_cols(0) {}
+ explicit DenseStorage(internal::constructor_without_unaligned_array_assert) : m_data(0), m_cols(0) {}
+ EIGEN_DEVICE_FUNC DenseStorage(Index size, Index rows, Index cols) : m_data(internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size)), m_cols(cols)
+ {
+ EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN({})
+ eigen_internal_assert(size==rows*cols && rows==_Rows && cols >=0);
+ EIGEN_UNUSED_VARIABLE(rows);
+ }
+ EIGEN_DEVICE_FUNC DenseStorage(const DenseStorage& other)
+ : m_data(internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(_Rows*other.m_cols))
+ , m_cols(other.m_cols)
+ {
+ EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN(Index size = m_cols*_Rows)
+ internal::smart_copy(other.m_data, other.m_data+_Rows*m_cols, m_data);
+ }
+ EIGEN_DEVICE_FUNC DenseStorage& operator=(const DenseStorage& other)
+ {
+ if (this != &other)
+ {
+ DenseStorage tmp(other);
+ this->swap(tmp);
+ }
+ return *this;
+ }
+#if EIGEN_HAS_RVALUE_REFERENCES
+ EIGEN_DEVICE_FUNC
+ DenseStorage(DenseStorage&& other) EIGEN_NOEXCEPT
+ : m_data(std::move(other.m_data))
+ , m_cols(std::move(other.m_cols))
+ {
+ other.m_data = nullptr;
+ other.m_cols = 0;
+ }
+ EIGEN_DEVICE_FUNC
+ DenseStorage& operator=(DenseStorage&& other) EIGEN_NOEXCEPT
+ {
+ using std::swap;
+ swap(m_data, other.m_data);
+ swap(m_cols, other.m_cols);
+ return *this;
+ }
+#endif
+ EIGEN_DEVICE_FUNC ~DenseStorage() { internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, _Rows*m_cols); }
+ EIGEN_DEVICE_FUNC void swap(DenseStorage& other) { std::swap(m_data,other.m_data); std::swap(m_cols,other.m_cols); }
+ EIGEN_DEVICE_FUNC static Index rows(void) {return _Rows;}
+ EIGEN_DEVICE_FUNC Index cols(void) const {return m_cols;}
+ EIGEN_DEVICE_FUNC void conservativeResize(Index size, Index, Index cols)
+ {
+ m_data = internal::conditional_aligned_realloc_new_auto<T,(_Options&DontAlign)==0>(m_data, size, _Rows*m_cols);
+ m_cols = cols;
+ }
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void resize(Index size, Index, Index cols)
+ {
+ if(size != _Rows*m_cols)
+ {
+ internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, _Rows*m_cols);
+ if (size)
+ m_data = internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size);
+ else
+ m_data = 0;
+ EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN({})
+ }
+ m_cols = cols;
+ }
+ EIGEN_DEVICE_FUNC const T *data() const { return m_data; }
+ EIGEN_DEVICE_FUNC T *data() { return m_data; }
+};
+
+// matrix with dynamic height and fixed width (so that matrix has dynamic size).
+template<typename T, int _Cols, int _Options> class DenseStorage<T, Dynamic, Dynamic, _Cols, _Options>
+{
+ T *m_data;
+ Index m_rows;
+ public:
+ EIGEN_DEVICE_FUNC DenseStorage() : m_data(0), m_rows(0) {}
+ explicit DenseStorage(internal::constructor_without_unaligned_array_assert) : m_data(0), m_rows(0) {}
+ EIGEN_DEVICE_FUNC DenseStorage(Index size, Index rows, Index cols) : m_data(internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size)), m_rows(rows)
+ {
+ EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN({})
+ eigen_internal_assert(size==rows*cols && rows>=0 && cols == _Cols);
+ EIGEN_UNUSED_VARIABLE(cols);
+ }
+ EIGEN_DEVICE_FUNC DenseStorage(const DenseStorage& other)
+ : m_data(internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(other.m_rows*_Cols))
+ , m_rows(other.m_rows)
+ {
+ EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN(Index size = m_rows*_Cols)
+ internal::smart_copy(other.m_data, other.m_data+other.m_rows*_Cols, m_data);
+ }
+ EIGEN_DEVICE_FUNC DenseStorage& operator=(const DenseStorage& other)
+ {
+ if (this != &other)
+ {
+ DenseStorage tmp(other);
+ this->swap(tmp);
+ }
+ return *this;
+ }
+#if EIGEN_HAS_RVALUE_REFERENCES
+ EIGEN_DEVICE_FUNC
+ DenseStorage(DenseStorage&& other) EIGEN_NOEXCEPT
+ : m_data(std::move(other.m_data))
+ , m_rows(std::move(other.m_rows))
+ {
+ other.m_data = nullptr;
+ other.m_rows = 0;
+ }
+ EIGEN_DEVICE_FUNC
+ DenseStorage& operator=(DenseStorage&& other) EIGEN_NOEXCEPT
+ {
+ using std::swap;
+ swap(m_data, other.m_data);
+ swap(m_rows, other.m_rows);
+ return *this;
+ }
+#endif
+ EIGEN_DEVICE_FUNC ~DenseStorage() { internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, _Cols*m_rows); }
+ EIGEN_DEVICE_FUNC void swap(DenseStorage& other) { std::swap(m_data,other.m_data); std::swap(m_rows,other.m_rows); }
+ EIGEN_DEVICE_FUNC Index rows(void) const {return m_rows;}
+ EIGEN_DEVICE_FUNC static Index cols(void) {return _Cols;}
+ void conservativeResize(Index size, Index rows, Index)
+ {
+ m_data = internal::conditional_aligned_realloc_new_auto<T,(_Options&DontAlign)==0>(m_data, size, m_rows*_Cols);
+ m_rows = rows;
+ }
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void resize(Index size, Index rows, Index)
+ {
+ if(size != m_rows*_Cols)
+ {
+ internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, _Cols*m_rows);
+ if (size)
+ m_data = internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size);
+ else
+ m_data = 0;
+ EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN({})
+ }
+ m_rows = rows;
+ }
+ EIGEN_DEVICE_FUNC const T *data() const { return m_data; }
+ EIGEN_DEVICE_FUNC T *data() { return m_data; }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATRIX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Diagonal.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Diagonal.h
new file mode 100644
index 000000000..49e711257
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Diagonal.h
@@ -0,0 +1,257 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DIAGONAL_H
+#define EIGEN_DIAGONAL_H
+
+namespace Eigen {
+
+/** \class Diagonal
+ * \ingroup Core_Module
+ *
+ * \brief Expression of a diagonal/subdiagonal/superdiagonal in a matrix
+ *
+ * \param MatrixType the type of the object in which we are taking a sub/main/super diagonal
+ * \param DiagIndex the index of the sub/super diagonal. The default is 0 and it means the main diagonal.
+ * A positive value means a superdiagonal, a negative value means a subdiagonal.
+ * You can also use DynamicIndex so the index can be set at runtime.
+ *
+ * The matrix is not required to be square.
+ *
+ * This class represents an expression of the main diagonal, or any sub/super diagonal
+ * of a square matrix. It is the return type of MatrixBase::diagonal() and MatrixBase::diagonal(Index) and most of the
+ * time this is the only way it is used.
+ *
+ * \sa MatrixBase::diagonal(), MatrixBase::diagonal(Index)
+ */
+
+namespace internal {
+template<typename MatrixType, int DiagIndex>
+struct traits<Diagonal<MatrixType,DiagIndex> >
+ : traits<MatrixType>
+{
+ typedef typename ref_selector<MatrixType>::type MatrixTypeNested;
+ typedef typename remove_reference<MatrixTypeNested>::type _MatrixTypeNested;
+ typedef typename MatrixType::StorageKind StorageKind;
+ enum {
+ RowsAtCompileTime = (int(DiagIndex) == DynamicIndex || int(MatrixType::SizeAtCompileTime) == Dynamic) ? Dynamic
+ : (EIGEN_PLAIN_ENUM_MIN(MatrixType::RowsAtCompileTime - EIGEN_PLAIN_ENUM_MAX(-DiagIndex, 0),
+ MatrixType::ColsAtCompileTime - EIGEN_PLAIN_ENUM_MAX( DiagIndex, 0))),
+ ColsAtCompileTime = 1,
+ MaxRowsAtCompileTime = int(MatrixType::MaxSizeAtCompileTime) == Dynamic ? Dynamic
+ : DiagIndex == DynamicIndex ? EIGEN_SIZE_MIN_PREFER_FIXED(MatrixType::MaxRowsAtCompileTime,
+ MatrixType::MaxColsAtCompileTime)
+ : (EIGEN_PLAIN_ENUM_MIN(MatrixType::MaxRowsAtCompileTime - EIGEN_PLAIN_ENUM_MAX(-DiagIndex, 0),
+ MatrixType::MaxColsAtCompileTime - EIGEN_PLAIN_ENUM_MAX( DiagIndex, 0))),
+ MaxColsAtCompileTime = 1,
+ MaskLvalueBit = is_lvalue<MatrixType>::value ? LvalueBit : 0,
+ Flags = (unsigned int)_MatrixTypeNested::Flags & (RowMajorBit | MaskLvalueBit | DirectAccessBit) & ~RowMajorBit, // FIXME DirectAccessBit should not be handled by expressions
+ MatrixTypeOuterStride = outer_stride_at_compile_time<MatrixType>::ret,
+ InnerStrideAtCompileTime = MatrixTypeOuterStride == Dynamic ? Dynamic : MatrixTypeOuterStride+1,
+ OuterStrideAtCompileTime = 0
+ };
+};
+}
+
+template<typename MatrixType, int _DiagIndex> class Diagonal
+ : public internal::dense_xpr_base< Diagonal<MatrixType,_DiagIndex> >::type
+{
+ public:
+
+ enum { DiagIndex = _DiagIndex };
+ typedef typename internal::dense_xpr_base<Diagonal>::type Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(Diagonal)
+
+ EIGEN_DEVICE_FUNC
+ explicit inline Diagonal(MatrixType& matrix, Index a_index = DiagIndex) : m_matrix(matrix), m_index(a_index) {}
+
+ EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Diagonal)
+
+ EIGEN_DEVICE_FUNC
+ inline Index rows() const
+ {
+ return m_index.value()<0 ? numext::mini<Index>(m_matrix.cols(),m_matrix.rows()+m_index.value())
+ : numext::mini<Index>(m_matrix.rows(),m_matrix.cols()-m_index.value());
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline Index cols() const { return 1; }
+
+ EIGEN_DEVICE_FUNC
+ inline Index innerStride() const
+ {
+ return m_matrix.outerStride() + 1;
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline Index outerStride() const
+ {
+ return 0;
+ }
+
+ typedef typename internal::conditional<
+ internal::is_lvalue<MatrixType>::value,
+ Scalar,
+ const Scalar
+ >::type ScalarWithConstIfNotLvalue;
+
+ EIGEN_DEVICE_FUNC
+ inline ScalarWithConstIfNotLvalue* data() { return &(m_matrix.coeffRef(rowOffset(), colOffset())); }
+ EIGEN_DEVICE_FUNC
+ inline const Scalar* data() const { return &(m_matrix.coeffRef(rowOffset(), colOffset())); }
+
+ EIGEN_DEVICE_FUNC
+ inline Scalar& coeffRef(Index row, Index)
+ {
+ EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
+ return m_matrix.coeffRef(row+rowOffset(), row+colOffset());
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline const Scalar& coeffRef(Index row, Index) const
+ {
+ return m_matrix.coeffRef(row+rowOffset(), row+colOffset());
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline CoeffReturnType coeff(Index row, Index) const
+ {
+ return m_matrix.coeff(row+rowOffset(), row+colOffset());
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline Scalar& coeffRef(Index idx)
+ {
+ EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
+ return m_matrix.coeffRef(idx+rowOffset(), idx+colOffset());
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline const Scalar& coeffRef(Index idx) const
+ {
+ return m_matrix.coeffRef(idx+rowOffset(), idx+colOffset());
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline CoeffReturnType coeff(Index idx) const
+ {
+ return m_matrix.coeff(idx+rowOffset(), idx+colOffset());
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline const typename internal::remove_all<typename MatrixType::Nested>::type&
+ nestedExpression() const
+ {
+ return m_matrix;
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline Index index() const
+ {
+ return m_index.value();
+ }
+
+ protected:
+ typename internal::ref_selector<MatrixType>::non_const_type m_matrix;
+ const internal::variable_if_dynamicindex<Index, DiagIndex> m_index;
+
+ private:
+ // some compilers may fail to optimize std::max etc in case of compile-time constants...
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Index absDiagIndex() const { return m_index.value()>0 ? m_index.value() : -m_index.value(); }
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Index rowOffset() const { return m_index.value()>0 ? 0 : -m_index.value(); }
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Index colOffset() const { return m_index.value()>0 ? m_index.value() : 0; }
+ // trigger a compile-time error if someone try to call packet
+ template<int LoadMode> typename MatrixType::PacketReturnType packet(Index) const;
+ template<int LoadMode> typename MatrixType::PacketReturnType packet(Index,Index) const;
+};
+
+/** \returns an expression of the main diagonal of the matrix \c *this
+ *
+ * \c *this is not required to be square.
+ *
+ * Example: \include MatrixBase_diagonal.cpp
+ * Output: \verbinclude MatrixBase_diagonal.out
+ *
+ * \sa class Diagonal */
+template<typename Derived>
+inline typename MatrixBase<Derived>::DiagonalReturnType
+MatrixBase<Derived>::diagonal()
+{
+ return DiagonalReturnType(derived());
+}
+
+/** This is the const version of diagonal(). */
+template<typename Derived>
+inline typename MatrixBase<Derived>::ConstDiagonalReturnType
+MatrixBase<Derived>::diagonal() const
+{
+ return ConstDiagonalReturnType(derived());
+}
+
+/** \returns an expression of the \a DiagIndex-th sub or super diagonal of the matrix \c *this
+ *
+ * \c *this is not required to be square.
+ *
+ * The template parameter \a DiagIndex represent a super diagonal if \a DiagIndex > 0
+ * and a sub diagonal otherwise. \a DiagIndex == 0 is equivalent to the main diagonal.
+ *
+ * Example: \include MatrixBase_diagonal_int.cpp
+ * Output: \verbinclude MatrixBase_diagonal_int.out
+ *
+ * \sa MatrixBase::diagonal(), class Diagonal */
+template<typename Derived>
+inline typename MatrixBase<Derived>::DiagonalDynamicIndexReturnType
+MatrixBase<Derived>::diagonal(Index index)
+{
+ return DiagonalDynamicIndexReturnType(derived(), index);
+}
+
+/** This is the const version of diagonal(Index). */
+template<typename Derived>
+inline typename MatrixBase<Derived>::ConstDiagonalDynamicIndexReturnType
+MatrixBase<Derived>::diagonal(Index index) const
+{
+ return ConstDiagonalDynamicIndexReturnType(derived(), index);
+}
+
+/** \returns an expression of the \a DiagIndex-th sub or super diagonal of the matrix \c *this
+ *
+ * \c *this is not required to be square.
+ *
+ * The template parameter \a DiagIndex represent a super diagonal if \a DiagIndex > 0
+ * and a sub diagonal otherwise. \a DiagIndex == 0 is equivalent to the main diagonal.
+ *
+ * Example: \include MatrixBase_diagonal_template_int.cpp
+ * Output: \verbinclude MatrixBase_diagonal_template_int.out
+ *
+ * \sa MatrixBase::diagonal(), class Diagonal */
+template<typename Derived>
+template<int Index_>
+inline typename MatrixBase<Derived>::template DiagonalIndexReturnType<Index_>::Type
+MatrixBase<Derived>::diagonal()
+{
+ return typename DiagonalIndexReturnType<Index_>::Type(derived());
+}
+
+/** This is the const version of diagonal<int>(). */
+template<typename Derived>
+template<int Index_>
+inline typename MatrixBase<Derived>::template ConstDiagonalIndexReturnType<Index_>::Type
+MatrixBase<Derived>::diagonal() const
+{
+ return typename ConstDiagonalIndexReturnType<Index_>::Type(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_DIAGONAL_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/DiagonalMatrix.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/DiagonalMatrix.h
new file mode 100644
index 000000000..ecfdce8ef
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/DiagonalMatrix.h
@@ -0,0 +1,343 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2007-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DIAGONALMATRIX_H
+#define EIGEN_DIAGONALMATRIX_H
+
+namespace Eigen {
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+template<typename Derived>
+class DiagonalBase : public EigenBase<Derived>
+{
+ public:
+ typedef typename internal::traits<Derived>::DiagonalVectorType DiagonalVectorType;
+ typedef typename DiagonalVectorType::Scalar Scalar;
+ typedef typename DiagonalVectorType::RealScalar RealScalar;
+ typedef typename internal::traits<Derived>::StorageKind StorageKind;
+ typedef typename internal::traits<Derived>::StorageIndex StorageIndex;
+
+ enum {
+ RowsAtCompileTime = DiagonalVectorType::SizeAtCompileTime,
+ ColsAtCompileTime = DiagonalVectorType::SizeAtCompileTime,
+ MaxRowsAtCompileTime = DiagonalVectorType::MaxSizeAtCompileTime,
+ MaxColsAtCompileTime = DiagonalVectorType::MaxSizeAtCompileTime,
+ IsVectorAtCompileTime = 0,
+ Flags = NoPreferredStorageOrderBit
+ };
+
+ typedef Matrix<Scalar, RowsAtCompileTime, ColsAtCompileTime, 0, MaxRowsAtCompileTime, MaxColsAtCompileTime> DenseMatrixType;
+ typedef DenseMatrixType DenseType;
+ typedef DiagonalMatrix<Scalar,DiagonalVectorType::SizeAtCompileTime,DiagonalVectorType::MaxSizeAtCompileTime> PlainObject;
+
+ EIGEN_DEVICE_FUNC
+ inline const Derived& derived() const { return *static_cast<const Derived*>(this); }
+ EIGEN_DEVICE_FUNC
+ inline Derived& derived() { return *static_cast<Derived*>(this); }
+
+ EIGEN_DEVICE_FUNC
+ DenseMatrixType toDenseMatrix() const { return derived(); }
+
+ EIGEN_DEVICE_FUNC
+ inline const DiagonalVectorType& diagonal() const { return derived().diagonal(); }
+ EIGEN_DEVICE_FUNC
+ inline DiagonalVectorType& diagonal() { return derived().diagonal(); }
+
+ EIGEN_DEVICE_FUNC
+ inline Index rows() const { return diagonal().size(); }
+ EIGEN_DEVICE_FUNC
+ inline Index cols() const { return diagonal().size(); }
+
+ template<typename MatrixDerived>
+ EIGEN_DEVICE_FUNC
+ const Product<Derived,MatrixDerived,LazyProduct>
+ operator*(const MatrixBase<MatrixDerived> &matrix) const
+ {
+ return Product<Derived, MatrixDerived, LazyProduct>(derived(),matrix.derived());
+ }
+
+ typedef DiagonalWrapper<const CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const DiagonalVectorType> > InverseReturnType;
+ EIGEN_DEVICE_FUNC
+ inline const InverseReturnType
+ inverse() const
+ {
+ return InverseReturnType(diagonal().cwiseInverse());
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline const DiagonalWrapper<const EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(DiagonalVectorType,Scalar,product) >
+ operator*(const Scalar& scalar) const
+ {
+ return DiagonalWrapper<const EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(DiagonalVectorType,Scalar,product) >(diagonal() * scalar);
+ }
+ EIGEN_DEVICE_FUNC
+ friend inline const DiagonalWrapper<const EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(Scalar,DiagonalVectorType,product) >
+ operator*(const Scalar& scalar, const DiagonalBase& other)
+ {
+ return DiagonalWrapper<const EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(Scalar,DiagonalVectorType,product) >(scalar * other.diagonal());
+ }
+};
+
+#endif
+
+/** \class DiagonalMatrix
+ * \ingroup Core_Module
+ *
+ * \brief Represents a diagonal matrix with its storage
+ *
+ * \param _Scalar the type of coefficients
+ * \param SizeAtCompileTime the dimension of the matrix, or Dynamic
+ * \param MaxSizeAtCompileTime the dimension of the matrix, or Dynamic. This parameter is optional and defaults
+ * to SizeAtCompileTime. Most of the time, you do not need to specify it.
+ *
+ * \sa class DiagonalWrapper
+ */
+
+namespace internal {
+template<typename _Scalar, int SizeAtCompileTime, int MaxSizeAtCompileTime>
+struct traits<DiagonalMatrix<_Scalar,SizeAtCompileTime,MaxSizeAtCompileTime> >
+ : traits<Matrix<_Scalar,SizeAtCompileTime,SizeAtCompileTime,0,MaxSizeAtCompileTime,MaxSizeAtCompileTime> >
+{
+ typedef Matrix<_Scalar,SizeAtCompileTime,1,0,MaxSizeAtCompileTime,1> DiagonalVectorType;
+ typedef DiagonalShape StorageKind;
+ enum {
+ Flags = LvalueBit | NoPreferredStorageOrderBit
+ };
+};
+}
+template<typename _Scalar, int SizeAtCompileTime, int MaxSizeAtCompileTime>
+class DiagonalMatrix
+ : public DiagonalBase<DiagonalMatrix<_Scalar,SizeAtCompileTime,MaxSizeAtCompileTime> >
+{
+ public:
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ typedef typename internal::traits<DiagonalMatrix>::DiagonalVectorType DiagonalVectorType;
+ typedef const DiagonalMatrix& Nested;
+ typedef _Scalar Scalar;
+ typedef typename internal::traits<DiagonalMatrix>::StorageKind StorageKind;
+ typedef typename internal::traits<DiagonalMatrix>::StorageIndex StorageIndex;
+ #endif
+
+ protected:
+
+ DiagonalVectorType m_diagonal;
+
+ public:
+
+ /** const version of diagonal(). */
+ EIGEN_DEVICE_FUNC
+ inline const DiagonalVectorType& diagonal() const { return m_diagonal; }
+ /** \returns a reference to the stored vector of diagonal coefficients. */
+ EIGEN_DEVICE_FUNC
+ inline DiagonalVectorType& diagonal() { return m_diagonal; }
+
+ /** Default constructor without initialization */
+ EIGEN_DEVICE_FUNC
+ inline DiagonalMatrix() {}
+
+ /** Constructs a diagonal matrix with given dimension */
+ EIGEN_DEVICE_FUNC
+ explicit inline DiagonalMatrix(Index dim) : m_diagonal(dim) {}
+
+ /** 2D constructor. */
+ EIGEN_DEVICE_FUNC
+ inline DiagonalMatrix(const Scalar& x, const Scalar& y) : m_diagonal(x,y) {}
+
+ /** 3D constructor. */
+ EIGEN_DEVICE_FUNC
+ inline DiagonalMatrix(const Scalar& x, const Scalar& y, const Scalar& z) : m_diagonal(x,y,z) {}
+
+ /** Copy constructor. */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ inline DiagonalMatrix(const DiagonalBase<OtherDerived>& other) : m_diagonal(other.diagonal()) {}
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** copy constructor. prevent a default copy constructor from hiding the other templated constructor */
+ inline DiagonalMatrix(const DiagonalMatrix& other) : m_diagonal(other.diagonal()) {}
+ #endif
+
+ /** generic constructor from expression of the diagonal coefficients */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ explicit inline DiagonalMatrix(const MatrixBase<OtherDerived>& other) : m_diagonal(other)
+ {}
+
+ /** Copy operator. */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ DiagonalMatrix& operator=(const DiagonalBase<OtherDerived>& other)
+ {
+ m_diagonal = other.diagonal();
+ return *this;
+ }
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** This is a special case of the templated operator=. Its purpose is to
+ * prevent a default operator= from hiding the templated operator=.
+ */
+ EIGEN_DEVICE_FUNC
+ DiagonalMatrix& operator=(const DiagonalMatrix& other)
+ {
+ m_diagonal = other.diagonal();
+ return *this;
+ }
+ #endif
+
+ /** Resizes to given size. */
+ EIGEN_DEVICE_FUNC
+ inline void resize(Index size) { m_diagonal.resize(size); }
+ /** Sets all coefficients to zero. */
+ EIGEN_DEVICE_FUNC
+ inline void setZero() { m_diagonal.setZero(); }
+ /** Resizes and sets all coefficients to zero. */
+ EIGEN_DEVICE_FUNC
+ inline void setZero(Index size) { m_diagonal.setZero(size); }
+ /** Sets this matrix to be the identity matrix of the current size. */
+ EIGEN_DEVICE_FUNC
+ inline void setIdentity() { m_diagonal.setOnes(); }
+ /** Sets this matrix to be the identity matrix of the given size. */
+ EIGEN_DEVICE_FUNC
+ inline void setIdentity(Index size) { m_diagonal.setOnes(size); }
+};
+
+/** \class DiagonalWrapper
+ * \ingroup Core_Module
+ *
+ * \brief Expression of a diagonal matrix
+ *
+ * \param _DiagonalVectorType the type of the vector of diagonal coefficients
+ *
+ * This class is an expression of a diagonal matrix, but not storing its own vector of diagonal coefficients,
+ * instead wrapping an existing vector expression. It is the return type of MatrixBase::asDiagonal()
+ * and most of the time this is the only way that it is used.
+ *
+ * \sa class DiagonalMatrix, class DiagonalBase, MatrixBase::asDiagonal()
+ */
+
+namespace internal {
+template<typename _DiagonalVectorType>
+struct traits<DiagonalWrapper<_DiagonalVectorType> >
+{
+ typedef _DiagonalVectorType DiagonalVectorType;
+ typedef typename DiagonalVectorType::Scalar Scalar;
+ typedef typename DiagonalVectorType::StorageIndex StorageIndex;
+ typedef DiagonalShape StorageKind;
+ typedef typename traits<DiagonalVectorType>::XprKind XprKind;
+ enum {
+ RowsAtCompileTime = DiagonalVectorType::SizeAtCompileTime,
+ ColsAtCompileTime = DiagonalVectorType::SizeAtCompileTime,
+ MaxRowsAtCompileTime = DiagonalVectorType::MaxSizeAtCompileTime,
+ MaxColsAtCompileTime = DiagonalVectorType::MaxSizeAtCompileTime,
+ Flags = (traits<DiagonalVectorType>::Flags & LvalueBit) | NoPreferredStorageOrderBit
+ };
+};
+}
+
+template<typename _DiagonalVectorType>
+class DiagonalWrapper
+ : public DiagonalBase<DiagonalWrapper<_DiagonalVectorType> >, internal::no_assignment_operator
+{
+ public:
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ typedef _DiagonalVectorType DiagonalVectorType;
+ typedef DiagonalWrapper Nested;
+ #endif
+
+ /** Constructor from expression of diagonal coefficients to wrap. */
+ EIGEN_DEVICE_FUNC
+ explicit inline DiagonalWrapper(DiagonalVectorType& a_diagonal) : m_diagonal(a_diagonal) {}
+
+ /** \returns a const reference to the wrapped expression of diagonal coefficients. */
+ EIGEN_DEVICE_FUNC
+ const DiagonalVectorType& diagonal() const { return m_diagonal; }
+
+ protected:
+ typename DiagonalVectorType::Nested m_diagonal;
+};
+
+/** \returns a pseudo-expression of a diagonal matrix with *this as vector of diagonal coefficients
+ *
+ * \only_for_vectors
+ *
+ * Example: \include MatrixBase_asDiagonal.cpp
+ * Output: \verbinclude MatrixBase_asDiagonal.out
+ *
+ * \sa class DiagonalWrapper, class DiagonalMatrix, diagonal(), isDiagonal()
+ **/
+template<typename Derived>
+inline const DiagonalWrapper<const Derived>
+MatrixBase<Derived>::asDiagonal() const
+{
+ return DiagonalWrapper<const Derived>(derived());
+}
+
+/** \returns true if *this is approximately equal to a diagonal matrix,
+ * within the precision given by \a prec.
+ *
+ * Example: \include MatrixBase_isDiagonal.cpp
+ * Output: \verbinclude MatrixBase_isDiagonal.out
+ *
+ * \sa asDiagonal()
+ */
+template<typename Derived>
+bool MatrixBase<Derived>::isDiagonal(const RealScalar& prec) const
+{
+ if(cols() != rows()) return false;
+ RealScalar maxAbsOnDiagonal = static_cast<RealScalar>(-1);
+ for(Index j = 0; j < cols(); ++j)
+ {
+ RealScalar absOnDiagonal = numext::abs(coeff(j,j));
+ if(absOnDiagonal > maxAbsOnDiagonal) maxAbsOnDiagonal = absOnDiagonal;
+ }
+ for(Index j = 0; j < cols(); ++j)
+ for(Index i = 0; i < j; ++i)
+ {
+ if(!internal::isMuchSmallerThan(coeff(i, j), maxAbsOnDiagonal, prec)) return false;
+ if(!internal::isMuchSmallerThan(coeff(j, i), maxAbsOnDiagonal, prec)) return false;
+ }
+ return true;
+}
+
+namespace internal {
+
+template<> struct storage_kind_to_shape<DiagonalShape> { typedef DiagonalShape Shape; };
+
+struct Diagonal2Dense {};
+
+template<> struct AssignmentKind<DenseShape,DiagonalShape> { typedef Diagonal2Dense Kind; };
+
+// Diagonal matrix to Dense assignment
+template< typename DstXprType, typename SrcXprType, typename Functor>
+struct Assignment<DstXprType, SrcXprType, Functor, Diagonal2Dense>
+{
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<typename DstXprType::Scalar,typename SrcXprType::Scalar> &/*func*/)
+ {
+ Index dstRows = src.rows();
+ Index dstCols = src.cols();
+ if((dst.rows()!=dstRows) || (dst.cols()!=dstCols))
+ dst.resize(dstRows, dstCols);
+
+ dst.setZero();
+ dst.diagonal() = src.diagonal();
+ }
+
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::add_assign_op<typename DstXprType::Scalar,typename SrcXprType::Scalar> &/*func*/)
+ { dst.diagonal() += src.diagonal(); }
+
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::sub_assign_op<typename DstXprType::Scalar,typename SrcXprType::Scalar> &/*func*/)
+ { dst.diagonal() -= src.diagonal(); }
+};
+
+} // namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_DIAGONALMATRIX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/DiagonalProduct.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/DiagonalProduct.h
new file mode 100644
index 000000000..d372b938f
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/DiagonalProduct.h
@@ -0,0 +1,28 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2007-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DIAGONALPRODUCT_H
+#define EIGEN_DIAGONALPRODUCT_H
+
+namespace Eigen {
+
+/** \returns the diagonal matrix product of \c *this by the diagonal matrix \a diagonal.
+ */
+template<typename Derived>
+template<typename DiagonalDerived>
+inline const Product<Derived, DiagonalDerived, LazyProduct>
+MatrixBase<Derived>::operator*(const DiagonalBase<DiagonalDerived> &a_diagonal) const
+{
+ return Product<Derived, DiagonalDerived, LazyProduct>(derived(),a_diagonal.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_DIAGONALPRODUCT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Dot.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Dot.h
new file mode 100644
index 000000000..06ef18b8b
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Dot.h
@@ -0,0 +1,315 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008, 2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DOT_H
+#define EIGEN_DOT_H
+
+namespace Eigen {
+
+namespace internal {
+
+// helper function for dot(). The problem is that if we put that in the body of dot(), then upon calling dot
+// with mismatched types, the compiler emits errors about failing to instantiate cwiseProduct BEFORE
+// looking at the static assertions. Thus this is a trick to get better compile errors.
+template<typename T, typename U,
+// the NeedToTranspose condition here is taken straight from Assign.h
+ bool NeedToTranspose = T::IsVectorAtCompileTime
+ && U::IsVectorAtCompileTime
+ && ((int(T::RowsAtCompileTime) == 1 && int(U::ColsAtCompileTime) == 1)
+ | // FIXME | instead of || to please GCC 4.4.0 stupid warning "suggest parentheses around &&".
+ // revert to || as soon as not needed anymore.
+ (int(T::ColsAtCompileTime) == 1 && int(U::RowsAtCompileTime) == 1))
+>
+struct dot_nocheck
+{
+ typedef scalar_conj_product_op<typename traits<T>::Scalar,typename traits<U>::Scalar> conj_prod;
+ typedef typename conj_prod::result_type ResScalar;
+ EIGEN_DEVICE_FUNC
+ static inline ResScalar run(const MatrixBase<T>& a, const MatrixBase<U>& b)
+ {
+ return a.template binaryExpr<conj_prod>(b).sum();
+ }
+};
+
+template<typename T, typename U>
+struct dot_nocheck<T, U, true>
+{
+ typedef scalar_conj_product_op<typename traits<T>::Scalar,typename traits<U>::Scalar> conj_prod;
+ typedef typename conj_prod::result_type ResScalar;
+ EIGEN_DEVICE_FUNC
+ static inline ResScalar run(const MatrixBase<T>& a, const MatrixBase<U>& b)
+ {
+ return a.transpose().template binaryExpr<conj_prod>(b).sum();
+ }
+};
+
+} // end namespace internal
+
+/** \fn MatrixBase::dot
+ * \returns the dot product of *this with other.
+ *
+ * \only_for_vectors
+ *
+ * \note If the scalar type is complex numbers, then this function returns the hermitian
+ * (sesquilinear) dot product, conjugate-linear in the first variable and linear in the
+ * second variable.
+ *
+ * \sa squaredNorm(), norm()
+ */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC
+typename ScalarBinaryOpTraits<typename internal::traits<Derived>::Scalar,typename internal::traits<OtherDerived>::Scalar>::ReturnType
+MatrixBase<Derived>::dot(const MatrixBase<OtherDerived>& other) const
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+ EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived)
+#if !(defined(EIGEN_NO_STATIC_ASSERT) && defined(EIGEN_NO_DEBUG))
+ typedef internal::scalar_conj_product_op<Scalar,typename OtherDerived::Scalar> func;
+ EIGEN_CHECK_BINARY_COMPATIBILIY(func,Scalar,typename OtherDerived::Scalar);
+#endif
+
+ eigen_assert(size() == other.size());
+
+ return internal::dot_nocheck<Derived,OtherDerived>::run(*this, other);
+}
+
+//---------- implementation of L2 norm and related functions ----------
+
+/** \returns, for vectors, the squared \em l2 norm of \c *this, and for matrices the Frobenius norm.
+ * In both cases, it consists in the sum of the square of all the matrix entries.
+ * For vectors, this is also equals to the dot product of \c *this with itself.
+ *
+ * \sa dot(), norm(), lpNorm()
+ */
+template<typename Derived>
+EIGEN_STRONG_INLINE typename NumTraits<typename internal::traits<Derived>::Scalar>::Real MatrixBase<Derived>::squaredNorm() const
+{
+ return numext::real((*this).cwiseAbs2().sum());
+}
+
+/** \returns, for vectors, the \em l2 norm of \c *this, and for matrices the Frobenius norm.
+ * In both cases, it consists in the square root of the sum of the square of all the matrix entries.
+ * For vectors, this is also equals to the square root of the dot product of \c *this with itself.
+ *
+ * \sa lpNorm(), dot(), squaredNorm()
+ */
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real MatrixBase<Derived>::norm() const
+{
+ return numext::sqrt(squaredNorm());
+}
+
+/** \returns an expression of the quotient of \c *this by its own norm.
+ *
+ * \warning If the input vector is too small (i.e., this->norm()==0),
+ * then this function returns a copy of the input.
+ *
+ * \only_for_vectors
+ *
+ * \sa norm(), normalize()
+ */
+template<typename Derived>
+inline const typename MatrixBase<Derived>::PlainObject
+MatrixBase<Derived>::normalized() const
+{
+ typedef typename internal::nested_eval<Derived,2>::type _Nested;
+ _Nested n(derived());
+ RealScalar z = n.squaredNorm();
+ // NOTE: after extensive benchmarking, this conditional does not impact performance, at least on recent x86 CPU
+ if(z>RealScalar(0))
+ return n / numext::sqrt(z);
+ else
+ return n;
+}
+
+/** Normalizes the vector, i.e. divides it by its own norm.
+ *
+ * \only_for_vectors
+ *
+ * \warning If the input vector is too small (i.e., this->norm()==0), then \c *this is left unchanged.
+ *
+ * \sa norm(), normalized()
+ */
+template<typename Derived>
+inline void MatrixBase<Derived>::normalize()
+{
+ RealScalar z = squaredNorm();
+ // NOTE: after extensive benchmarking, this conditional does not impact performance, at least on recent x86 CPU
+ if(z>RealScalar(0))
+ derived() /= numext::sqrt(z);
+}
+
+/** \returns an expression of the quotient of \c *this by its own norm while avoiding underflow and overflow.
+ *
+ * \only_for_vectors
+ *
+ * This method is analogue to the normalized() method, but it reduces the risk of
+ * underflow and overflow when computing the norm.
+ *
+ * \warning If the input vector is too small (i.e., this->norm()==0),
+ * then this function returns a copy of the input.
+ *
+ * \sa stableNorm(), stableNormalize(), normalized()
+ */
+template<typename Derived>
+inline const typename MatrixBase<Derived>::PlainObject
+MatrixBase<Derived>::stableNormalized() const
+{
+ typedef typename internal::nested_eval<Derived,3>::type _Nested;
+ _Nested n(derived());
+ RealScalar w = n.cwiseAbs().maxCoeff();
+ RealScalar z = (n/w).squaredNorm();
+ if(z>RealScalar(0))
+ return n / (numext::sqrt(z)*w);
+ else
+ return n;
+}
+
+/** Normalizes the vector while avoid underflow and overflow
+ *
+ * \only_for_vectors
+ *
+ * This method is analogue to the normalize() method, but it reduces the risk of
+ * underflow and overflow when computing the norm.
+ *
+ * \warning If the input vector is too small (i.e., this->norm()==0), then \c *this is left unchanged.
+ *
+ * \sa stableNorm(), stableNormalized(), normalize()
+ */
+template<typename Derived>
+inline void MatrixBase<Derived>::stableNormalize()
+{
+ RealScalar w = cwiseAbs().maxCoeff();
+ RealScalar z = (derived()/w).squaredNorm();
+ if(z>RealScalar(0))
+ derived() /= numext::sqrt(z)*w;
+}
+
+//---------- implementation of other norms ----------
+
+namespace internal {
+
+template<typename Derived, int p>
+struct lpNorm_selector
+{
+ typedef typename NumTraits<typename traits<Derived>::Scalar>::Real RealScalar;
+ EIGEN_DEVICE_FUNC
+ static inline RealScalar run(const MatrixBase<Derived>& m)
+ {
+ EIGEN_USING_STD_MATH(pow)
+ return pow(m.cwiseAbs().array().pow(p).sum(), RealScalar(1)/p);
+ }
+};
+
+template<typename Derived>
+struct lpNorm_selector<Derived, 1>
+{
+ EIGEN_DEVICE_FUNC
+ static inline typename NumTraits<typename traits<Derived>::Scalar>::Real run(const MatrixBase<Derived>& m)
+ {
+ return m.cwiseAbs().sum();
+ }
+};
+
+template<typename Derived>
+struct lpNorm_selector<Derived, 2>
+{
+ EIGEN_DEVICE_FUNC
+ static inline typename NumTraits<typename traits<Derived>::Scalar>::Real run(const MatrixBase<Derived>& m)
+ {
+ return m.norm();
+ }
+};
+
+template<typename Derived>
+struct lpNorm_selector<Derived, Infinity>
+{
+ typedef typename NumTraits<typename traits<Derived>::Scalar>::Real RealScalar;
+ EIGEN_DEVICE_FUNC
+ static inline RealScalar run(const MatrixBase<Derived>& m)
+ {
+ if(Derived::SizeAtCompileTime==0 || (Derived::SizeAtCompileTime==Dynamic && m.size()==0))
+ return RealScalar(0);
+ return m.cwiseAbs().maxCoeff();
+ }
+};
+
+} // end namespace internal
+
+/** \returns the \b coefficient-wise \f$ \ell^p \f$ norm of \c *this, that is, returns the p-th root of the sum of the p-th powers of the absolute values
+ * of the coefficients of \c *this. If \a p is the special value \a Eigen::Infinity, this function returns the \f$ \ell^\infty \f$
+ * norm, that is the maximum of the absolute values of the coefficients of \c *this.
+ *
+ * In all cases, if \c *this is empty, then the value 0 is returned.
+ *
+ * \note For matrices, this function does not compute the <a href="https://en.wikipedia.org/wiki/Operator_norm">operator-norm</a>. That is, if \c *this is a matrix, then its coefficients are interpreted as a 1D vector. Nonetheless, you can easily compute the 1-norm and \f$\infty\f$-norm matrix operator norms using \link TutorialReductionsVisitorsBroadcastingReductionsNorm partial reductions \endlink.
+ *
+ * \sa norm()
+ */
+template<typename Derived>
+template<int p>
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+#else
+MatrixBase<Derived>::RealScalar
+#endif
+MatrixBase<Derived>::lpNorm() const
+{
+ return internal::lpNorm_selector<Derived, p>::run(*this);
+}
+
+//---------- implementation of isOrthogonal / isUnitary ----------
+
+/** \returns true if *this is approximately orthogonal to \a other,
+ * within the precision given by \a prec.
+ *
+ * Example: \include MatrixBase_isOrthogonal.cpp
+ * Output: \verbinclude MatrixBase_isOrthogonal.out
+ */
+template<typename Derived>
+template<typename OtherDerived>
+bool MatrixBase<Derived>::isOrthogonal
+(const MatrixBase<OtherDerived>& other, const RealScalar& prec) const
+{
+ typename internal::nested_eval<Derived,2>::type nested(derived());
+ typename internal::nested_eval<OtherDerived,2>::type otherNested(other.derived());
+ return numext::abs2(nested.dot(otherNested)) <= prec * prec * nested.squaredNorm() * otherNested.squaredNorm();
+}
+
+/** \returns true if *this is approximately an unitary matrix,
+ * within the precision given by \a prec. In the case where the \a Scalar
+ * type is real numbers, a unitary matrix is an orthogonal matrix, whence the name.
+ *
+ * \note This can be used to check whether a family of vectors forms an orthonormal basis.
+ * Indeed, \c m.isUnitary() returns true if and only if the columns (equivalently, the rows) of m form an
+ * orthonormal basis.
+ *
+ * Example: \include MatrixBase_isUnitary.cpp
+ * Output: \verbinclude MatrixBase_isUnitary.out
+ */
+template<typename Derived>
+bool MatrixBase<Derived>::isUnitary(const RealScalar& prec) const
+{
+ typename internal::nested_eval<Derived,1>::type self(derived());
+ for(Index i = 0; i < cols(); ++i)
+ {
+ if(!internal::isApprox(self.col(i).squaredNorm(), static_cast<RealScalar>(1), prec))
+ return false;
+ for(Index j = 0; j < i; ++j)
+ if(!internal::isMuchSmallerThan(self.col(i).dot(self.col(j)), static_cast<Scalar>(1), prec))
+ return false;
+ }
+ return true;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_DOT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/EigenBase.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/EigenBase.h
new file mode 100644
index 000000000..b195506a9
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/EigenBase.h
@@ -0,0 +1,159 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_EIGENBASE_H
+#define EIGEN_EIGENBASE_H
+
+namespace Eigen {
+
+/** \class EigenBase
+ * \ingroup Core_Module
+ *
+ * Common base class for all classes T such that MatrixBase has an operator=(T) and a constructor MatrixBase(T).
+ *
+ * In other words, an EigenBase object is an object that can be copied into a MatrixBase.
+ *
+ * Besides MatrixBase-derived classes, this also includes special matrix classes such as diagonal matrices, etc.
+ *
+ * Notice that this class is trivial, it is only used to disambiguate overloaded functions.
+ *
+ * \sa \blank \ref TopicClassHierarchy
+ */
+template<typename Derived> struct EigenBase
+{
+// typedef typename internal::plain_matrix_type<Derived>::type PlainObject;
+
+ /** \brief The interface type of indices
+ * \details To change this, \c \#define the preprocessor symbol \c EIGEN_DEFAULT_DENSE_INDEX_TYPE.
+ * \deprecated Since Eigen 3.3, its usage is deprecated. Use Eigen::Index instead.
+ * \sa StorageIndex, \ref TopicPreprocessorDirectives.
+ */
+ typedef Eigen::Index Index;
+
+ // FIXME is it needed?
+ typedef typename internal::traits<Derived>::StorageKind StorageKind;
+
+ /** \returns a reference to the derived object */
+ EIGEN_DEVICE_FUNC
+ Derived& derived() { return *static_cast<Derived*>(this); }
+ /** \returns a const reference to the derived object */
+ EIGEN_DEVICE_FUNC
+ const Derived& derived() const { return *static_cast<const Derived*>(this); }
+
+ EIGEN_DEVICE_FUNC
+ inline Derived& const_cast_derived() const
+ { return *static_cast<Derived*>(const_cast<EigenBase*>(this)); }
+ EIGEN_DEVICE_FUNC
+ inline const Derived& const_derived() const
+ { return *static_cast<const Derived*>(this); }
+
+ /** \returns the number of rows. \sa cols(), RowsAtCompileTime */
+ EIGEN_DEVICE_FUNC
+ inline Index rows() const { return derived().rows(); }
+ /** \returns the number of columns. \sa rows(), ColsAtCompileTime*/
+ EIGEN_DEVICE_FUNC
+ inline Index cols() const { return derived().cols(); }
+ /** \returns the number of coefficients, which is rows()*cols().
+ * \sa rows(), cols(), SizeAtCompileTime. */
+ EIGEN_DEVICE_FUNC
+ inline Index size() const { return rows() * cols(); }
+
+ /** \internal Don't use it, but do the equivalent: \code dst = *this; \endcode */
+ template<typename Dest>
+ EIGEN_DEVICE_FUNC
+ inline void evalTo(Dest& dst) const
+ { derived().evalTo(dst); }
+
+ /** \internal Don't use it, but do the equivalent: \code dst += *this; \endcode */
+ template<typename Dest>
+ EIGEN_DEVICE_FUNC
+ inline void addTo(Dest& dst) const
+ {
+ // This is the default implementation,
+ // derived class can reimplement it in a more optimized way.
+ typename Dest::PlainObject res(rows(),cols());
+ evalTo(res);
+ dst += res;
+ }
+
+ /** \internal Don't use it, but do the equivalent: \code dst -= *this; \endcode */
+ template<typename Dest>
+ EIGEN_DEVICE_FUNC
+ inline void subTo(Dest& dst) const
+ {
+ // This is the default implementation,
+ // derived class can reimplement it in a more optimized way.
+ typename Dest::PlainObject res(rows(),cols());
+ evalTo(res);
+ dst -= res;
+ }
+
+ /** \internal Don't use it, but do the equivalent: \code dst.applyOnTheRight(*this); \endcode */
+ template<typename Dest>
+ EIGEN_DEVICE_FUNC inline void applyThisOnTheRight(Dest& dst) const
+ {
+ // This is the default implementation,
+ // derived class can reimplement it in a more optimized way.
+ dst = dst * this->derived();
+ }
+
+ /** \internal Don't use it, but do the equivalent: \code dst.applyOnTheLeft(*this); \endcode */
+ template<typename Dest>
+ EIGEN_DEVICE_FUNC inline void applyThisOnTheLeft(Dest& dst) const
+ {
+ // This is the default implementation,
+ // derived class can reimplement it in a more optimized way.
+ dst = this->derived() * dst;
+ }
+
+};
+
+/***************************************************************************
+* Implementation of matrix base methods
+***************************************************************************/
+
+/** \brief Copies the generic expression \a other into *this.
+ *
+ * \details The expression must provide a (templated) evalTo(Derived& dst) const
+ * function which does the actual job. In practice, this allows any user to write
+ * its own special matrix without having to modify MatrixBase
+ *
+ * \returns a reference to *this.
+ */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC
+Derived& DenseBase<Derived>::operator=(const EigenBase<OtherDerived> &other)
+{
+ call_assignment(derived(), other.derived());
+ return derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC
+Derived& DenseBase<Derived>::operator+=(const EigenBase<OtherDerived> &other)
+{
+ call_assignment(derived(), other.derived(), internal::add_assign_op<Scalar,typename OtherDerived::Scalar>());
+ return derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC
+Derived& DenseBase<Derived>::operator-=(const EigenBase<OtherDerived> &other)
+{
+ call_assignment(derived(), other.derived(), internal::sub_assign_op<Scalar,typename OtherDerived::Scalar>());
+ return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_EIGENBASE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/ForceAlignedAccess.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/ForceAlignedAccess.h
new file mode 100644
index 000000000..7b08b45e6
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/ForceAlignedAccess.h
@@ -0,0 +1,146 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_FORCEALIGNEDACCESS_H
+#define EIGEN_FORCEALIGNEDACCESS_H
+
+namespace Eigen {
+
+/** \class ForceAlignedAccess
+ * \ingroup Core_Module
+ *
+ * \brief Enforce aligned packet loads and stores regardless of what is requested
+ *
+ * \param ExpressionType the type of the object of which we are forcing aligned packet access
+ *
+ * This class is the return type of MatrixBase::forceAlignedAccess()
+ * and most of the time this is the only way it is used.
+ *
+ * \sa MatrixBase::forceAlignedAccess()
+ */
+
+namespace internal {
+template<typename ExpressionType>
+struct traits<ForceAlignedAccess<ExpressionType> > : public traits<ExpressionType>
+{};
+}
+
+template<typename ExpressionType> class ForceAlignedAccess
+ : public internal::dense_xpr_base< ForceAlignedAccess<ExpressionType> >::type
+{
+ public:
+
+ typedef typename internal::dense_xpr_base<ForceAlignedAccess>::type Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(ForceAlignedAccess)
+
+ EIGEN_DEVICE_FUNC explicit inline ForceAlignedAccess(const ExpressionType& matrix) : m_expression(matrix) {}
+
+ EIGEN_DEVICE_FUNC inline Index rows() const { return m_expression.rows(); }
+ EIGEN_DEVICE_FUNC inline Index cols() const { return m_expression.cols(); }
+ EIGEN_DEVICE_FUNC inline Index outerStride() const { return m_expression.outerStride(); }
+ EIGEN_DEVICE_FUNC inline Index innerStride() const { return m_expression.innerStride(); }
+
+ EIGEN_DEVICE_FUNC inline const CoeffReturnType coeff(Index row, Index col) const
+ {
+ return m_expression.coeff(row, col);
+ }
+
+ EIGEN_DEVICE_FUNC inline Scalar& coeffRef(Index row, Index col)
+ {
+ return m_expression.const_cast_derived().coeffRef(row, col);
+ }
+
+ EIGEN_DEVICE_FUNC inline const CoeffReturnType coeff(Index index) const
+ {
+ return m_expression.coeff(index);
+ }
+
+ EIGEN_DEVICE_FUNC inline Scalar& coeffRef(Index index)
+ {
+ return m_expression.const_cast_derived().coeffRef(index);
+ }
+
+ template<int LoadMode>
+ inline const PacketScalar packet(Index row, Index col) const
+ {
+ return m_expression.template packet<Aligned>(row, col);
+ }
+
+ template<int LoadMode>
+ inline void writePacket(Index row, Index col, const PacketScalar& x)
+ {
+ m_expression.const_cast_derived().template writePacket<Aligned>(row, col, x);
+ }
+
+ template<int LoadMode>
+ inline const PacketScalar packet(Index index) const
+ {
+ return m_expression.template packet<Aligned>(index);
+ }
+
+ template<int LoadMode>
+ inline void writePacket(Index index, const PacketScalar& x)
+ {
+ m_expression.const_cast_derived().template writePacket<Aligned>(index, x);
+ }
+
+ EIGEN_DEVICE_FUNC operator const ExpressionType&() const { return m_expression; }
+
+ protected:
+ const ExpressionType& m_expression;
+
+ private:
+ ForceAlignedAccess& operator=(const ForceAlignedAccess&);
+};
+
+/** \returns an expression of *this with forced aligned access
+ * \sa forceAlignedAccessIf(),class ForceAlignedAccess
+ */
+template<typename Derived>
+inline const ForceAlignedAccess<Derived>
+MatrixBase<Derived>::forceAlignedAccess() const
+{
+ return ForceAlignedAccess<Derived>(derived());
+}
+
+/** \returns an expression of *this with forced aligned access
+ * \sa forceAlignedAccessIf(), class ForceAlignedAccess
+ */
+template<typename Derived>
+inline ForceAlignedAccess<Derived>
+MatrixBase<Derived>::forceAlignedAccess()
+{
+ return ForceAlignedAccess<Derived>(derived());
+}
+
+/** \returns an expression of *this with forced aligned access if \a Enable is true.
+ * \sa forceAlignedAccess(), class ForceAlignedAccess
+ */
+template<typename Derived>
+template<bool Enable>
+inline typename internal::add_const_on_value_type<typename internal::conditional<Enable,ForceAlignedAccess<Derived>,Derived&>::type>::type
+MatrixBase<Derived>::forceAlignedAccessIf() const
+{
+ return derived(); // FIXME This should not work but apparently is never used
+}
+
+/** \returns an expression of *this with forced aligned access if \a Enable is true.
+ * \sa forceAlignedAccess(), class ForceAlignedAccess
+ */
+template<typename Derived>
+template<bool Enable>
+inline typename internal::conditional<Enable,ForceAlignedAccess<Derived>,Derived&>::type
+MatrixBase<Derived>::forceAlignedAccessIf()
+{
+ return derived(); // FIXME This should not work but apparently is never used
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_FORCEALIGNEDACCESS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Fuzzy.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Fuzzy.h
new file mode 100644
index 000000000..3e403a09d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Fuzzy.h
@@ -0,0 +1,155 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_FUZZY_H
+#define EIGEN_FUZZY_H
+
+namespace Eigen {
+
+namespace internal
+{
+
+template<typename Derived, typename OtherDerived, bool is_integer = NumTraits<typename Derived::Scalar>::IsInteger>
+struct isApprox_selector
+{
+ EIGEN_DEVICE_FUNC
+ static bool run(const Derived& x, const OtherDerived& y, const typename Derived::RealScalar& prec)
+ {
+ typename internal::nested_eval<Derived,2>::type nested(x);
+ typename internal::nested_eval<OtherDerived,2>::type otherNested(y);
+ return (nested - otherNested).cwiseAbs2().sum() <= prec * prec * numext::mini(nested.cwiseAbs2().sum(), otherNested.cwiseAbs2().sum());
+ }
+};
+
+template<typename Derived, typename OtherDerived>
+struct isApprox_selector<Derived, OtherDerived, true>
+{
+ EIGEN_DEVICE_FUNC
+ static bool run(const Derived& x, const OtherDerived& y, const typename Derived::RealScalar&)
+ {
+ return x.matrix() == y.matrix();
+ }
+};
+
+template<typename Derived, typename OtherDerived, bool is_integer = NumTraits<typename Derived::Scalar>::IsInteger>
+struct isMuchSmallerThan_object_selector
+{
+ EIGEN_DEVICE_FUNC
+ static bool run(const Derived& x, const OtherDerived& y, const typename Derived::RealScalar& prec)
+ {
+ return x.cwiseAbs2().sum() <= numext::abs2(prec) * y.cwiseAbs2().sum();
+ }
+};
+
+template<typename Derived, typename OtherDerived>
+struct isMuchSmallerThan_object_selector<Derived, OtherDerived, true>
+{
+ EIGEN_DEVICE_FUNC
+ static bool run(const Derived& x, const OtherDerived&, const typename Derived::RealScalar&)
+ {
+ return x.matrix() == Derived::Zero(x.rows(), x.cols()).matrix();
+ }
+};
+
+template<typename Derived, bool is_integer = NumTraits<typename Derived::Scalar>::IsInteger>
+struct isMuchSmallerThan_scalar_selector
+{
+ EIGEN_DEVICE_FUNC
+ static bool run(const Derived& x, const typename Derived::RealScalar& y, const typename Derived::RealScalar& prec)
+ {
+ return x.cwiseAbs2().sum() <= numext::abs2(prec * y);
+ }
+};
+
+template<typename Derived>
+struct isMuchSmallerThan_scalar_selector<Derived, true>
+{
+ EIGEN_DEVICE_FUNC
+ static bool run(const Derived& x, const typename Derived::RealScalar&, const typename Derived::RealScalar&)
+ {
+ return x.matrix() == Derived::Zero(x.rows(), x.cols()).matrix();
+ }
+};
+
+} // end namespace internal
+
+
+/** \returns \c true if \c *this is approximately equal to \a other, within the precision
+ * determined by \a prec.
+ *
+ * \note The fuzzy compares are done multiplicatively. Two vectors \f$ v \f$ and \f$ w \f$
+ * are considered to be approximately equal within precision \f$ p \f$ if
+ * \f[ \Vert v - w \Vert \leqslant p\,\min(\Vert v\Vert, \Vert w\Vert). \f]
+ * For matrices, the comparison is done using the Hilbert-Schmidt norm (aka Frobenius norm
+ * L2 norm).
+ *
+ * \note Because of the multiplicativeness of this comparison, one can't use this function
+ * to check whether \c *this is approximately equal to the zero matrix or vector.
+ * Indeed, \c isApprox(zero) returns false unless \c *this itself is exactly the zero matrix
+ * or vector. If you want to test whether \c *this is zero, use internal::isMuchSmallerThan(const
+ * RealScalar&, RealScalar) instead.
+ *
+ * \sa internal::isMuchSmallerThan(const RealScalar&, RealScalar) const
+ */
+template<typename Derived>
+template<typename OtherDerived>
+bool DenseBase<Derived>::isApprox(
+ const DenseBase<OtherDerived>& other,
+ const RealScalar& prec
+) const
+{
+ return internal::isApprox_selector<Derived, OtherDerived>::run(derived(), other.derived(), prec);
+}
+
+/** \returns \c true if the norm of \c *this is much smaller than \a other,
+ * within the precision determined by \a prec.
+ *
+ * \note The fuzzy compares are done multiplicatively. A vector \f$ v \f$ is
+ * considered to be much smaller than \f$ x \f$ within precision \f$ p \f$ if
+ * \f[ \Vert v \Vert \leqslant p\,\vert x\vert. \f]
+ *
+ * For matrices, the comparison is done using the Hilbert-Schmidt norm. For this reason,
+ * the value of the reference scalar \a other should come from the Hilbert-Schmidt norm
+ * of a reference matrix of same dimensions.
+ *
+ * \sa isApprox(), isMuchSmallerThan(const DenseBase<OtherDerived>&, RealScalar) const
+ */
+template<typename Derived>
+bool DenseBase<Derived>::isMuchSmallerThan(
+ const typename NumTraits<Scalar>::Real& other,
+ const RealScalar& prec
+) const
+{
+ return internal::isMuchSmallerThan_scalar_selector<Derived>::run(derived(), other, prec);
+}
+
+/** \returns \c true if the norm of \c *this is much smaller than the norm of \a other,
+ * within the precision determined by \a prec.
+ *
+ * \note The fuzzy compares are done multiplicatively. A vector \f$ v \f$ is
+ * considered to be much smaller than a vector \f$ w \f$ within precision \f$ p \f$ if
+ * \f[ \Vert v \Vert \leqslant p\,\Vert w\Vert. \f]
+ * For matrices, the comparison is done using the Hilbert-Schmidt norm.
+ *
+ * \sa isApprox(), isMuchSmallerThan(const RealScalar&, RealScalar) const
+ */
+template<typename Derived>
+template<typename OtherDerived>
+bool DenseBase<Derived>::isMuchSmallerThan(
+ const DenseBase<OtherDerived>& other,
+ const RealScalar& prec
+) const
+{
+ return internal::isMuchSmallerThan_object_selector<Derived, OtherDerived>::run(derived(), other.derived(), prec);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_FUZZY_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/GeneralProduct.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/GeneralProduct.h
new file mode 100644
index 000000000..0f16cd8e3
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/GeneralProduct.h
@@ -0,0 +1,454 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERAL_PRODUCT_H
+#define EIGEN_GENERAL_PRODUCT_H
+
+namespace Eigen {
+
+enum {
+ Large = 2,
+ Small = 3
+};
+
+namespace internal {
+
+template<int Rows, int Cols, int Depth> struct product_type_selector;
+
+template<int Size, int MaxSize> struct product_size_category
+{
+ enum { is_large = MaxSize == Dynamic ||
+ Size >= EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD ||
+ (Size==Dynamic && MaxSize>=EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD),
+ value = is_large ? Large
+ : Size == 1 ? 1
+ : Small
+ };
+};
+
+template<typename Lhs, typename Rhs> struct product_type
+{
+ typedef typename remove_all<Lhs>::type _Lhs;
+ typedef typename remove_all<Rhs>::type _Rhs;
+ enum {
+ MaxRows = traits<_Lhs>::MaxRowsAtCompileTime,
+ Rows = traits<_Lhs>::RowsAtCompileTime,
+ MaxCols = traits<_Rhs>::MaxColsAtCompileTime,
+ Cols = traits<_Rhs>::ColsAtCompileTime,
+ MaxDepth = EIGEN_SIZE_MIN_PREFER_FIXED(traits<_Lhs>::MaxColsAtCompileTime,
+ traits<_Rhs>::MaxRowsAtCompileTime),
+ Depth = EIGEN_SIZE_MIN_PREFER_FIXED(traits<_Lhs>::ColsAtCompileTime,
+ traits<_Rhs>::RowsAtCompileTime)
+ };
+
+ // the splitting into different lines of code here, introducing the _select enums and the typedef below,
+ // is to work around an internal compiler error with gcc 4.1 and 4.2.
+private:
+ enum {
+ rows_select = product_size_category<Rows,MaxRows>::value,
+ cols_select = product_size_category<Cols,MaxCols>::value,
+ depth_select = product_size_category<Depth,MaxDepth>::value
+ };
+ typedef product_type_selector<rows_select, cols_select, depth_select> selector;
+
+public:
+ enum {
+ value = selector::ret,
+ ret = selector::ret
+ };
+#ifdef EIGEN_DEBUG_PRODUCT
+ static void debug()
+ {
+ EIGEN_DEBUG_VAR(Rows);
+ EIGEN_DEBUG_VAR(Cols);
+ EIGEN_DEBUG_VAR(Depth);
+ EIGEN_DEBUG_VAR(rows_select);
+ EIGEN_DEBUG_VAR(cols_select);
+ EIGEN_DEBUG_VAR(depth_select);
+ EIGEN_DEBUG_VAR(value);
+ }
+#endif
+};
+
+/* The following allows to select the kind of product at compile time
+ * based on the three dimensions of the product.
+ * This is a compile time mapping from {1,Small,Large}^3 -> {product types} */
+// FIXME I'm not sure the current mapping is the ideal one.
+template<int M, int N> struct product_type_selector<M,N,1> { enum { ret = OuterProduct }; };
+template<int M> struct product_type_selector<M, 1, 1> { enum { ret = LazyCoeffBasedProductMode }; };
+template<int N> struct product_type_selector<1, N, 1> { enum { ret = LazyCoeffBasedProductMode }; };
+template<int Depth> struct product_type_selector<1, 1, Depth> { enum { ret = InnerProduct }; };
+template<> struct product_type_selector<1, 1, 1> { enum { ret = InnerProduct }; };
+template<> struct product_type_selector<Small,1, Small> { enum { ret = CoeffBasedProductMode }; };
+template<> struct product_type_selector<1, Small,Small> { enum { ret = CoeffBasedProductMode }; };
+template<> struct product_type_selector<Small,Small,Small> { enum { ret = CoeffBasedProductMode }; };
+template<> struct product_type_selector<Small, Small, 1> { enum { ret = LazyCoeffBasedProductMode }; };
+template<> struct product_type_selector<Small, Large, 1> { enum { ret = LazyCoeffBasedProductMode }; };
+template<> struct product_type_selector<Large, Small, 1> { enum { ret = LazyCoeffBasedProductMode }; };
+template<> struct product_type_selector<1, Large,Small> { enum { ret = CoeffBasedProductMode }; };
+template<> struct product_type_selector<1, Large,Large> { enum { ret = GemvProduct }; };
+template<> struct product_type_selector<1, Small,Large> { enum { ret = CoeffBasedProductMode }; };
+template<> struct product_type_selector<Large,1, Small> { enum { ret = CoeffBasedProductMode }; };
+template<> struct product_type_selector<Large,1, Large> { enum { ret = GemvProduct }; };
+template<> struct product_type_selector<Small,1, Large> { enum { ret = CoeffBasedProductMode }; };
+template<> struct product_type_selector<Small,Small,Large> { enum { ret = GemmProduct }; };
+template<> struct product_type_selector<Large,Small,Large> { enum { ret = GemmProduct }; };
+template<> struct product_type_selector<Small,Large,Large> { enum { ret = GemmProduct }; };
+template<> struct product_type_selector<Large,Large,Large> { enum { ret = GemmProduct }; };
+template<> struct product_type_selector<Large,Small,Small> { enum { ret = CoeffBasedProductMode }; };
+template<> struct product_type_selector<Small,Large,Small> { enum { ret = CoeffBasedProductMode }; };
+template<> struct product_type_selector<Large,Large,Small> { enum { ret = GemmProduct }; };
+
+} // end namespace internal
+
+/***********************************************************************
+* Implementation of Inner Vector Vector Product
+***********************************************************************/
+
+// FIXME : maybe the "inner product" could return a Scalar
+// instead of a 1x1 matrix ??
+// Pro: more natural for the user
+// Cons: this could be a problem if in a meta unrolled algorithm a matrix-matrix
+// product ends up to a row-vector times col-vector product... To tackle this use
+// case, we could have a specialization for Block<MatrixType,1,1> with: operator=(Scalar x);
+
+/***********************************************************************
+* Implementation of Outer Vector Vector Product
+***********************************************************************/
+
+/***********************************************************************
+* Implementation of General Matrix Vector Product
+***********************************************************************/
+
+/* According to the shape/flags of the matrix we have to distinghish 3 different cases:
+ * 1 - the matrix is col-major, BLAS compatible and M is large => call fast BLAS-like colmajor routine
+ * 2 - the matrix is row-major, BLAS compatible and N is large => call fast BLAS-like rowmajor routine
+ * 3 - all other cases are handled using a simple loop along the outer-storage direction.
+ * Therefore we need a lower level meta selector.
+ * Furthermore, if the matrix is the rhs, then the product has to be transposed.
+ */
+namespace internal {
+
+template<int Side, int StorageOrder, bool BlasCompatible>
+struct gemv_dense_selector;
+
+} // end namespace internal
+
+namespace internal {
+
+template<typename Scalar,int Size,int MaxSize,bool Cond> struct gemv_static_vector_if;
+
+template<typename Scalar,int Size,int MaxSize>
+struct gemv_static_vector_if<Scalar,Size,MaxSize,false>
+{
+ EIGEN_STRONG_INLINE Scalar* data() { eigen_internal_assert(false && "should never be called"); return 0; }
+};
+
+template<typename Scalar,int Size>
+struct gemv_static_vector_if<Scalar,Size,Dynamic,true>
+{
+ EIGEN_STRONG_INLINE Scalar* data() { return 0; }
+};
+
+template<typename Scalar,int Size,int MaxSize>
+struct gemv_static_vector_if<Scalar,Size,MaxSize,true>
+{
+ enum {
+ ForceAlignment = internal::packet_traits<Scalar>::Vectorizable,
+ PacketSize = internal::packet_traits<Scalar>::size
+ };
+ #if EIGEN_MAX_STATIC_ALIGN_BYTES!=0
+ internal::plain_array<Scalar,EIGEN_SIZE_MIN_PREFER_FIXED(Size,MaxSize),0,EIGEN_PLAIN_ENUM_MIN(AlignedMax,PacketSize)> m_data;
+ EIGEN_STRONG_INLINE Scalar* data() { return m_data.array; }
+ #else
+ // Some architectures cannot align on the stack,
+ // => let's manually enforce alignment by allocating more data and return the address of the first aligned element.
+ internal::plain_array<Scalar,EIGEN_SIZE_MIN_PREFER_FIXED(Size,MaxSize)+(ForceAlignment?EIGEN_MAX_ALIGN_BYTES:0),0> m_data;
+ EIGEN_STRONG_INLINE Scalar* data() {
+ return ForceAlignment
+ ? reinterpret_cast<Scalar*>((internal::UIntPtr(m_data.array) & ~(std::size_t(EIGEN_MAX_ALIGN_BYTES-1))) + EIGEN_MAX_ALIGN_BYTES)
+ : m_data.array;
+ }
+ #endif
+};
+
+// The vector is on the left => transposition
+template<int StorageOrder, bool BlasCompatible>
+struct gemv_dense_selector<OnTheLeft,StorageOrder,BlasCompatible>
+{
+ template<typename Lhs, typename Rhs, typename Dest>
+ static void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typename Dest::Scalar& alpha)
+ {
+ Transpose<Dest> destT(dest);
+ enum { OtherStorageOrder = StorageOrder == RowMajor ? ColMajor : RowMajor };
+ gemv_dense_selector<OnTheRight,OtherStorageOrder,BlasCompatible>
+ ::run(rhs.transpose(), lhs.transpose(), destT, alpha);
+ }
+};
+
+template<> struct gemv_dense_selector<OnTheRight,ColMajor,true>
+{
+ template<typename Lhs, typename Rhs, typename Dest>
+ static inline void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typename Dest::Scalar& alpha)
+ {
+ typedef typename Lhs::Scalar LhsScalar;
+ typedef typename Rhs::Scalar RhsScalar;
+ typedef typename Dest::Scalar ResScalar;
+ typedef typename Dest::RealScalar RealScalar;
+
+ typedef internal::blas_traits<Lhs> LhsBlasTraits;
+ typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhsType;
+ typedef internal::blas_traits<Rhs> RhsBlasTraits;
+ typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhsType;
+
+ typedef Map<Matrix<ResScalar,Dynamic,1>, EIGEN_PLAIN_ENUM_MIN(AlignedMax,internal::packet_traits<ResScalar>::size)> MappedDest;
+
+ ActualLhsType actualLhs = LhsBlasTraits::extract(lhs);
+ ActualRhsType actualRhs = RhsBlasTraits::extract(rhs);
+
+ ResScalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(lhs)
+ * RhsBlasTraits::extractScalarFactor(rhs);
+
+ // make sure Dest is a compile-time vector type (bug 1166)
+ typedef typename conditional<Dest::IsVectorAtCompileTime, Dest, typename Dest::ColXpr>::type ActualDest;
+
+ enum {
+ // FIXME find a way to allow an inner stride on the result if packet_traits<Scalar>::size==1
+ // on, the other hand it is good for the cache to pack the vector anyways...
+ EvalToDestAtCompileTime = (ActualDest::InnerStrideAtCompileTime==1),
+ ComplexByReal = (NumTraits<LhsScalar>::IsComplex) && (!NumTraits<RhsScalar>::IsComplex),
+ MightCannotUseDest = (!EvalToDestAtCompileTime) || ComplexByReal
+ };
+
+ typedef const_blas_data_mapper<LhsScalar,Index,ColMajor> LhsMapper;
+ typedef const_blas_data_mapper<RhsScalar,Index,RowMajor> RhsMapper;
+ RhsScalar compatibleAlpha = get_factor<ResScalar,RhsScalar>::run(actualAlpha);
+
+ if(!MightCannotUseDest)
+ {
+ // shortcut if we are sure to be able to use dest directly,
+ // this ease the compiler to generate cleaner and more optimzized code for most common cases
+ general_matrix_vector_product
+ <Index,LhsScalar,LhsMapper,ColMajor,LhsBlasTraits::NeedToConjugate,RhsScalar,RhsMapper,RhsBlasTraits::NeedToConjugate>::run(
+ actualLhs.rows(), actualLhs.cols(),
+ LhsMapper(actualLhs.data(), actualLhs.outerStride()),
+ RhsMapper(actualRhs.data(), actualRhs.innerStride()),
+ dest.data(), 1,
+ compatibleAlpha);
+ }
+ else
+ {
+ gemv_static_vector_if<ResScalar,ActualDest::SizeAtCompileTime,ActualDest::MaxSizeAtCompileTime,MightCannotUseDest> static_dest;
+
+ const bool alphaIsCompatible = (!ComplexByReal) || (numext::imag(actualAlpha)==RealScalar(0));
+ const bool evalToDest = EvalToDestAtCompileTime && alphaIsCompatible;
+
+ ei_declare_aligned_stack_constructed_variable(ResScalar,actualDestPtr,dest.size(),
+ evalToDest ? dest.data() : static_dest.data());
+
+ if(!evalToDest)
+ {
+ #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+ Index size = dest.size();
+ EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+ #endif
+ if(!alphaIsCompatible)
+ {
+ MappedDest(actualDestPtr, dest.size()).setZero();
+ compatibleAlpha = RhsScalar(1);
+ }
+ else
+ MappedDest(actualDestPtr, dest.size()) = dest;
+ }
+
+ general_matrix_vector_product
+ <Index,LhsScalar,LhsMapper,ColMajor,LhsBlasTraits::NeedToConjugate,RhsScalar,RhsMapper,RhsBlasTraits::NeedToConjugate>::run(
+ actualLhs.rows(), actualLhs.cols(),
+ LhsMapper(actualLhs.data(), actualLhs.outerStride()),
+ RhsMapper(actualRhs.data(), actualRhs.innerStride()),
+ actualDestPtr, 1,
+ compatibleAlpha);
+
+ if (!evalToDest)
+ {
+ if(!alphaIsCompatible)
+ dest.matrix() += actualAlpha * MappedDest(actualDestPtr, dest.size());
+ else
+ dest = MappedDest(actualDestPtr, dest.size());
+ }
+ }
+ }
+};
+
+template<> struct gemv_dense_selector<OnTheRight,RowMajor,true>
+{
+ template<typename Lhs, typename Rhs, typename Dest>
+ static void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typename Dest::Scalar& alpha)
+ {
+ typedef typename Lhs::Scalar LhsScalar;
+ typedef typename Rhs::Scalar RhsScalar;
+ typedef typename Dest::Scalar ResScalar;
+
+ typedef internal::blas_traits<Lhs> LhsBlasTraits;
+ typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhsType;
+ typedef internal::blas_traits<Rhs> RhsBlasTraits;
+ typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhsType;
+ typedef typename internal::remove_all<ActualRhsType>::type ActualRhsTypeCleaned;
+
+ typename add_const<ActualLhsType>::type actualLhs = LhsBlasTraits::extract(lhs);
+ typename add_const<ActualRhsType>::type actualRhs = RhsBlasTraits::extract(rhs);
+
+ ResScalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(lhs)
+ * RhsBlasTraits::extractScalarFactor(rhs);
+
+ enum {
+ // FIXME find a way to allow an inner stride on the result if packet_traits<Scalar>::size==1
+ // on, the other hand it is good for the cache to pack the vector anyways...
+ DirectlyUseRhs = ActualRhsTypeCleaned::InnerStrideAtCompileTime==1
+ };
+
+ gemv_static_vector_if<RhsScalar,ActualRhsTypeCleaned::SizeAtCompileTime,ActualRhsTypeCleaned::MaxSizeAtCompileTime,!DirectlyUseRhs> static_rhs;
+
+ ei_declare_aligned_stack_constructed_variable(RhsScalar,actualRhsPtr,actualRhs.size(),
+ DirectlyUseRhs ? const_cast<RhsScalar*>(actualRhs.data()) : static_rhs.data());
+
+ if(!DirectlyUseRhs)
+ {
+ #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+ Index size = actualRhs.size();
+ EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+ #endif
+ Map<typename ActualRhsTypeCleaned::PlainObject>(actualRhsPtr, actualRhs.size()) = actualRhs;
+ }
+
+ typedef const_blas_data_mapper<LhsScalar,Index,RowMajor> LhsMapper;
+ typedef const_blas_data_mapper<RhsScalar,Index,ColMajor> RhsMapper;
+ general_matrix_vector_product
+ <Index,LhsScalar,LhsMapper,RowMajor,LhsBlasTraits::NeedToConjugate,RhsScalar,RhsMapper,RhsBlasTraits::NeedToConjugate>::run(
+ actualLhs.rows(), actualLhs.cols(),
+ LhsMapper(actualLhs.data(), actualLhs.outerStride()),
+ RhsMapper(actualRhsPtr, 1),
+ dest.data(), dest.col(0).innerStride(), //NOTE if dest is not a vector at compile-time, then dest.innerStride() might be wrong. (bug 1166)
+ actualAlpha);
+ }
+};
+
+template<> struct gemv_dense_selector<OnTheRight,ColMajor,false>
+{
+ template<typename Lhs, typename Rhs, typename Dest>
+ static void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typename Dest::Scalar& alpha)
+ {
+ EIGEN_STATIC_ASSERT((!nested_eval<Lhs,1>::Evaluate),EIGEN_INTERNAL_COMPILATION_ERROR_OR_YOU_MADE_A_PROGRAMMING_MISTAKE);
+ // TODO if rhs is large enough it might be beneficial to make sure that dest is sequentially stored in memory, otherwise use a temp
+ typename nested_eval<Rhs,1>::type actual_rhs(rhs);
+ const Index size = rhs.rows();
+ for(Index k=0; k<size; ++k)
+ dest += (alpha*actual_rhs.coeff(k)) * lhs.col(k);
+ }
+};
+
+template<> struct gemv_dense_selector<OnTheRight,RowMajor,false>
+{
+ template<typename Lhs, typename Rhs, typename Dest>
+ static void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typename Dest::Scalar& alpha)
+ {
+ EIGEN_STATIC_ASSERT((!nested_eval<Lhs,1>::Evaluate),EIGEN_INTERNAL_COMPILATION_ERROR_OR_YOU_MADE_A_PROGRAMMING_MISTAKE);
+ typename nested_eval<Rhs,Lhs::RowsAtCompileTime>::type actual_rhs(rhs);
+ const Index rows = dest.rows();
+ for(Index i=0; i<rows; ++i)
+ dest.coeffRef(i) += alpha * (lhs.row(i).cwiseProduct(actual_rhs.transpose())).sum();
+ }
+};
+
+} // end namespace internal
+
+/***************************************************************************
+* Implementation of matrix base methods
+***************************************************************************/
+
+/** \returns the matrix product of \c *this and \a other.
+ *
+ * \note If instead of the matrix product you want the coefficient-wise product, see Cwise::operator*().
+ *
+ * \sa lazyProduct(), operator*=(const MatrixBase&), Cwise::operator*()
+ */
+#ifndef __CUDACC__
+
+template<typename Derived>
+template<typename OtherDerived>
+inline const Product<Derived, OtherDerived>
+MatrixBase<Derived>::operator*(const MatrixBase<OtherDerived> &other) const
+{
+ // A note regarding the function declaration: In MSVC, this function will sometimes
+ // not be inlined since DenseStorage is an unwindable object for dynamic
+ // matrices and product types are holding a member to store the result.
+ // Thus it does not help tagging this function with EIGEN_STRONG_INLINE.
+ enum {
+ ProductIsValid = Derived::ColsAtCompileTime==Dynamic
+ || OtherDerived::RowsAtCompileTime==Dynamic
+ || int(Derived::ColsAtCompileTime)==int(OtherDerived::RowsAtCompileTime),
+ AreVectors = Derived::IsVectorAtCompileTime && OtherDerived::IsVectorAtCompileTime,
+ SameSizes = EIGEN_PREDICATE_SAME_MATRIX_SIZE(Derived,OtherDerived)
+ };
+ // note to the lost user:
+ // * for a dot product use: v1.dot(v2)
+ // * for a coeff-wise product use: v1.cwiseProduct(v2)
+ EIGEN_STATIC_ASSERT(ProductIsValid || !(AreVectors && SameSizes),
+ INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS)
+ EIGEN_STATIC_ASSERT(ProductIsValid || !(SameSizes && !AreVectors),
+ INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION)
+ EIGEN_STATIC_ASSERT(ProductIsValid || SameSizes, INVALID_MATRIX_PRODUCT)
+#ifdef EIGEN_DEBUG_PRODUCT
+ internal::product_type<Derived,OtherDerived>::debug();
+#endif
+
+ return Product<Derived, OtherDerived>(derived(), other.derived());
+}
+
+#endif // __CUDACC__
+
+/** \returns an expression of the matrix product of \c *this and \a other without implicit evaluation.
+ *
+ * The returned product will behave like any other expressions: the coefficients of the product will be
+ * computed once at a time as requested. This might be useful in some extremely rare cases when only
+ * a small and no coherent fraction of the result's coefficients have to be computed.
+ *
+ * \warning This version of the matrix product can be much much slower. So use it only if you know
+ * what you are doing and that you measured a true speed improvement.
+ *
+ * \sa operator*(const MatrixBase&)
+ */
+template<typename Derived>
+template<typename OtherDerived>
+const Product<Derived,OtherDerived,LazyProduct>
+MatrixBase<Derived>::lazyProduct(const MatrixBase<OtherDerived> &other) const
+{
+ enum {
+ ProductIsValid = Derived::ColsAtCompileTime==Dynamic
+ || OtherDerived::RowsAtCompileTime==Dynamic
+ || int(Derived::ColsAtCompileTime)==int(OtherDerived::RowsAtCompileTime),
+ AreVectors = Derived::IsVectorAtCompileTime && OtherDerived::IsVectorAtCompileTime,
+ SameSizes = EIGEN_PREDICATE_SAME_MATRIX_SIZE(Derived,OtherDerived)
+ };
+ // note to the lost user:
+ // * for a dot product use: v1.dot(v2)
+ // * for a coeff-wise product use: v1.cwiseProduct(v2)
+ EIGEN_STATIC_ASSERT(ProductIsValid || !(AreVectors && SameSizes),
+ INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS)
+ EIGEN_STATIC_ASSERT(ProductIsValid || !(SameSizes && !AreVectors),
+ INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION)
+ EIGEN_STATIC_ASSERT(ProductIsValid || SameSizes, INVALID_MATRIX_PRODUCT)
+
+ return Product<Derived,OtherDerived,LazyProduct>(derived(), other.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_PRODUCT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/GenericPacketMath.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/GenericPacketMath.h
new file mode 100644
index 000000000..029f8ac36
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/GenericPacketMath.h
@@ -0,0 +1,593 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERIC_PACKET_MATH_H
+#define EIGEN_GENERIC_PACKET_MATH_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** \internal
+ * \file GenericPacketMath.h
+ *
+ * Default implementation for types not supported by the vectorization.
+ * In practice these functions are provided to make easier the writing
+ * of generic vectorized code.
+ */
+
+#ifndef EIGEN_DEBUG_ALIGNED_LOAD
+#define EIGEN_DEBUG_ALIGNED_LOAD
+#endif
+
+#ifndef EIGEN_DEBUG_UNALIGNED_LOAD
+#define EIGEN_DEBUG_UNALIGNED_LOAD
+#endif
+
+#ifndef EIGEN_DEBUG_ALIGNED_STORE
+#define EIGEN_DEBUG_ALIGNED_STORE
+#endif
+
+#ifndef EIGEN_DEBUG_UNALIGNED_STORE
+#define EIGEN_DEBUG_UNALIGNED_STORE
+#endif
+
+struct default_packet_traits
+{
+ enum {
+ HasHalfPacket = 0,
+
+ HasAdd = 1,
+ HasSub = 1,
+ HasMul = 1,
+ HasNegate = 1,
+ HasAbs = 1,
+ HasArg = 0,
+ HasAbs2 = 1,
+ HasMin = 1,
+ HasMax = 1,
+ HasConj = 1,
+ HasSetLinear = 1,
+ HasBlend = 0,
+
+ HasDiv = 0,
+ HasSqrt = 0,
+ HasRsqrt = 0,
+ HasExp = 0,
+ HasLog = 0,
+ HasLog1p = 0,
+ HasLog10 = 0,
+ HasPow = 0,
+
+ HasSin = 0,
+ HasCos = 0,
+ HasTan = 0,
+ HasASin = 0,
+ HasACos = 0,
+ HasATan = 0,
+ HasSinh = 0,
+ HasCosh = 0,
+ HasTanh = 0,
+ HasLGamma = 0,
+ HasDiGamma = 0,
+ HasZeta = 0,
+ HasPolygamma = 0,
+ HasErf = 0,
+ HasErfc = 0,
+ HasIGamma = 0,
+ HasIGammac = 0,
+ HasBetaInc = 0,
+
+ HasRound = 0,
+ HasFloor = 0,
+ HasCeil = 0,
+
+ HasSign = 0
+ };
+};
+
+template<typename T> struct packet_traits : default_packet_traits
+{
+ typedef T type;
+ typedef T half;
+ enum {
+ Vectorizable = 0,
+ size = 1,
+ AlignedOnScalar = 0,
+ HasHalfPacket = 0
+ };
+ enum {
+ HasAdd = 0,
+ HasSub = 0,
+ HasMul = 0,
+ HasNegate = 0,
+ HasAbs = 0,
+ HasAbs2 = 0,
+ HasMin = 0,
+ HasMax = 0,
+ HasConj = 0,
+ HasSetLinear = 0
+ };
+};
+
+template<typename T> struct packet_traits<const T> : packet_traits<T> { };
+
+template <typename Src, typename Tgt> struct type_casting_traits {
+ enum {
+ VectorizedCast = 0,
+ SrcCoeffRatio = 1,
+ TgtCoeffRatio = 1
+ };
+};
+
+
+/** \internal \returns static_cast<TgtType>(a) (coeff-wise) */
+template <typename SrcPacket, typename TgtPacket>
+EIGEN_DEVICE_FUNC inline TgtPacket
+pcast(const SrcPacket& a) {
+ return static_cast<TgtPacket>(a);
+}
+template <typename SrcPacket, typename TgtPacket>
+EIGEN_DEVICE_FUNC inline TgtPacket
+pcast(const SrcPacket& a, const SrcPacket& /*b*/) {
+ return static_cast<TgtPacket>(a);
+}
+
+template <typename SrcPacket, typename TgtPacket>
+EIGEN_DEVICE_FUNC inline TgtPacket
+pcast(const SrcPacket& a, const SrcPacket& /*b*/, const SrcPacket& /*c*/, const SrcPacket& /*d*/) {
+ return static_cast<TgtPacket>(a);
+}
+
+/** \internal \returns a + b (coeff-wise) */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+padd(const Packet& a,
+ const Packet& b) { return a+b; }
+
+/** \internal \returns a - b (coeff-wise) */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+psub(const Packet& a,
+ const Packet& b) { return a-b; }
+
+/** \internal \returns -a (coeff-wise) */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+pnegate(const Packet& a) { return -a; }
+
+/** \internal \returns conj(a) (coeff-wise) */
+
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+pconj(const Packet& a) { return numext::conj(a); }
+
+/** \internal \returns a * b (coeff-wise) */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+pmul(const Packet& a,
+ const Packet& b) { return a*b; }
+
+/** \internal \returns a / b (coeff-wise) */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+pdiv(const Packet& a,
+ const Packet& b) { return a/b; }
+
+/** \internal \returns the min of \a a and \a b (coeff-wise) */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+pmin(const Packet& a,
+ const Packet& b) { return numext::mini(a, b); }
+
+/** \internal \returns the max of \a a and \a b (coeff-wise) */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+pmax(const Packet& a,
+ const Packet& b) { return numext::maxi(a, b); }
+
+/** \internal \returns the absolute value of \a a */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+pabs(const Packet& a) { using std::abs; return abs(a); }
+
+/** \internal \returns the phase angle of \a a */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+parg(const Packet& a) { using numext::arg; return arg(a); }
+
+/** \internal \returns the bitwise and of \a a and \a b */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+pand(const Packet& a, const Packet& b) { return a & b; }
+
+/** \internal \returns the bitwise or of \a a and \a b */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+por(const Packet& a, const Packet& b) { return a | b; }
+
+/** \internal \returns the bitwise xor of \a a and \a b */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+pxor(const Packet& a, const Packet& b) { return a ^ b; }
+
+/** \internal \returns the bitwise andnot of \a a and \a b */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+pandnot(const Packet& a, const Packet& b) { return a & (!b); }
+
+/** \internal \returns a packet version of \a *from, from must be 16 bytes aligned */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+pload(const typename unpacket_traits<Packet>::type* from) { return *from; }
+
+/** \internal \returns a packet version of \a *from, (un-aligned load) */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+ploadu(const typename unpacket_traits<Packet>::type* from) { return *from; }
+
+/** \internal \returns a packet with constant coefficients \a a, e.g.: (a,a,a,a) */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+pset1(const typename unpacket_traits<Packet>::type& a) { return a; }
+
+/** \internal \returns a packet with constant coefficients \a a[0], e.g.: (a[0],a[0],a[0],a[0]) */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+pload1(const typename unpacket_traits<Packet>::type *a) { return pset1<Packet>(*a); }
+
+/** \internal \returns a packet with elements of \a *from duplicated.
+ * For instance, for a packet of 8 elements, 4 scalars will be read from \a *from and
+ * duplicated to form: {from[0],from[0],from[1],from[1],from[2],from[2],from[3],from[3]}
+ * Currently, this function is only used for scalar * complex products.
+ */
+template<typename Packet> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet
+ploaddup(const typename unpacket_traits<Packet>::type* from) { return *from; }
+
+/** \internal \returns a packet with elements of \a *from quadrupled.
+ * For instance, for a packet of 8 elements, 2 scalars will be read from \a *from and
+ * replicated to form: {from[0],from[0],from[0],from[0],from[1],from[1],from[1],from[1]}
+ * Currently, this function is only used in matrix products.
+ * For packet-size smaller or equal to 4, this function is equivalent to pload1
+ */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+ploadquad(const typename unpacket_traits<Packet>::type* from)
+{ return pload1<Packet>(from); }
+
+/** \internal equivalent to
+ * \code
+ * a0 = pload1(a+0);
+ * a1 = pload1(a+1);
+ * a2 = pload1(a+2);
+ * a3 = pload1(a+3);
+ * \endcode
+ * \sa pset1, pload1, ploaddup, pbroadcast2
+ */
+template<typename Packet> EIGEN_DEVICE_FUNC
+inline void pbroadcast4(const typename unpacket_traits<Packet>::type *a,
+ Packet& a0, Packet& a1, Packet& a2, Packet& a3)
+{
+ a0 = pload1<Packet>(a+0);
+ a1 = pload1<Packet>(a+1);
+ a2 = pload1<Packet>(a+2);
+ a3 = pload1<Packet>(a+3);
+}
+
+/** \internal equivalent to
+ * \code
+ * a0 = pload1(a+0);
+ * a1 = pload1(a+1);
+ * \endcode
+ * \sa pset1, pload1, ploaddup, pbroadcast4
+ */
+template<typename Packet> EIGEN_DEVICE_FUNC
+inline void pbroadcast2(const typename unpacket_traits<Packet>::type *a,
+ Packet& a0, Packet& a1)
+{
+ a0 = pload1<Packet>(a+0);
+ a1 = pload1<Packet>(a+1);
+}
+
+/** \internal \brief Returns a packet with coefficients (a,a+1,...,a+packet_size-1). */
+template<typename Packet> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet
+plset(const typename unpacket_traits<Packet>::type& a) { return a; }
+
+/** \internal copy the packet \a from to \a *to, \a to must be 16 bytes aligned */
+template<typename Scalar, typename Packet> EIGEN_DEVICE_FUNC inline void pstore(Scalar* to, const Packet& from)
+{ (*to) = from; }
+
+/** \internal copy the packet \a from to \a *to, (un-aligned store) */
+template<typename Scalar, typename Packet> EIGEN_DEVICE_FUNC inline void pstoreu(Scalar* to, const Packet& from)
+{ (*to) = from; }
+
+ template<typename Scalar, typename Packet> EIGEN_DEVICE_FUNC inline Packet pgather(const Scalar* from, Index /*stride*/)
+ { return ploadu<Packet>(from); }
+
+ template<typename Scalar, typename Packet> EIGEN_DEVICE_FUNC inline void pscatter(Scalar* to, const Packet& from, Index /*stride*/)
+ { pstore(to, from); }
+
+/** \internal tries to do cache prefetching of \a addr */
+template<typename Scalar> EIGEN_DEVICE_FUNC inline void prefetch(const Scalar* addr)
+{
+#ifdef __CUDA_ARCH__
+#if defined(__LP64__)
+ // 64-bit pointer operand constraint for inlined asm
+ asm(" prefetch.L1 [ %1 ];" : "=l"(addr) : "l"(addr));
+#else
+ // 32-bit pointer operand constraint for inlined asm
+ asm(" prefetch.L1 [ %1 ];" : "=r"(addr) : "r"(addr));
+#endif
+#elif (!EIGEN_COMP_MSVC) && (EIGEN_COMP_GNUC || EIGEN_COMP_CLANG || EIGEN_COMP_ICC)
+ __builtin_prefetch(addr);
+#endif
+}
+
+/** \internal \returns the first element of a packet */
+template<typename Packet> EIGEN_DEVICE_FUNC inline typename unpacket_traits<Packet>::type pfirst(const Packet& a)
+{ return a; }
+
+/** \internal \returns a packet where the element i contains the sum of the packet of \a vec[i] */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+preduxp(const Packet* vecs) { return vecs[0]; }
+
+/** \internal \returns the sum of the elements of \a a*/
+template<typename Packet> EIGEN_DEVICE_FUNC inline typename unpacket_traits<Packet>::type predux(const Packet& a)
+{ return a; }
+
+/** \internal \returns the sum of the elements of \a a by block of 4 elements.
+ * For a packet {a0, a1, a2, a3, a4, a5, a6, a7}, it returns a half packet {a0+a4, a1+a5, a2+a6, a3+a7}
+ * For packet-size smaller or equal to 4, this boils down to a noop.
+ */
+template<typename Packet> EIGEN_DEVICE_FUNC inline
+typename conditional<(unpacket_traits<Packet>::size%8)==0,typename unpacket_traits<Packet>::half,Packet>::type
+predux_downto4(const Packet& a)
+{ return a; }
+
+/** \internal \returns the product of the elements of \a a*/
+template<typename Packet> EIGEN_DEVICE_FUNC inline typename unpacket_traits<Packet>::type predux_mul(const Packet& a)
+{ return a; }
+
+/** \internal \returns the min of the elements of \a a*/
+template<typename Packet> EIGEN_DEVICE_FUNC inline typename unpacket_traits<Packet>::type predux_min(const Packet& a)
+{ return a; }
+
+/** \internal \returns the max of the elements of \a a*/
+template<typename Packet> EIGEN_DEVICE_FUNC inline typename unpacket_traits<Packet>::type predux_max(const Packet& a)
+{ return a; }
+
+/** \internal \returns the reversed elements of \a a*/
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet preverse(const Packet& a)
+{ return a; }
+
+/** \internal \returns \a a with real and imaginary part flipped (for complex type only) */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet pcplxflip(const Packet& a)
+{
+ // FIXME: uncomment the following in case we drop the internal imag and real functions.
+// using std::imag;
+// using std::real;
+ return Packet(imag(a),real(a));
+}
+
+/**************************
+* Special math functions
+***************************/
+
+/** \internal \returns the sine of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet psin(const Packet& a) { using std::sin; return sin(a); }
+
+/** \internal \returns the cosine of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet pcos(const Packet& a) { using std::cos; return cos(a); }
+
+/** \internal \returns the tan of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet ptan(const Packet& a) { using std::tan; return tan(a); }
+
+/** \internal \returns the arc sine of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet pasin(const Packet& a) { using std::asin; return asin(a); }
+
+/** \internal \returns the arc cosine of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet pacos(const Packet& a) { using std::acos; return acos(a); }
+
+/** \internal \returns the arc tangent of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet patan(const Packet& a) { using std::atan; return atan(a); }
+
+/** \internal \returns the hyperbolic sine of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet psinh(const Packet& a) { using std::sinh; return sinh(a); }
+
+/** \internal \returns the hyperbolic cosine of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet pcosh(const Packet& a) { using std::cosh; return cosh(a); }
+
+/** \internal \returns the hyperbolic tan of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet ptanh(const Packet& a) { using std::tanh; return tanh(a); }
+
+/** \internal \returns the exp of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet pexp(const Packet& a) { using std::exp; return exp(a); }
+
+/** \internal \returns the log of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet plog(const Packet& a) { using std::log; return log(a); }
+
+/** \internal \returns the log1p of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet plog1p(const Packet& a) { return numext::log1p(a); }
+
+/** \internal \returns the log10 of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet plog10(const Packet& a) { using std::log10; return log10(a); }
+
+/** \internal \returns the square-root of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet psqrt(const Packet& a) { using std::sqrt; return sqrt(a); }
+
+/** \internal \returns the reciprocal square-root of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet prsqrt(const Packet& a) {
+ return pdiv(pset1<Packet>(1), psqrt(a));
+}
+
+/** \internal \returns the rounded value of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet pround(const Packet& a) { using numext::round; return round(a); }
+
+/** \internal \returns the floor of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet pfloor(const Packet& a) { using numext::floor; return floor(a); }
+
+/** \internal \returns the ceil of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet pceil(const Packet& a) { using numext::ceil; return ceil(a); }
+
+/***************************************************************************
+* The following functions might not have to be overwritten for vectorized types
+***************************************************************************/
+
+/** \internal copy a packet with constant coeficient \a a (e.g., [a,a,a,a]) to \a *to. \a to must be 16 bytes aligned */
+// NOTE: this function must really be templated on the packet type (think about different packet types for the same scalar type)
+template<typename Packet>
+inline void pstore1(typename unpacket_traits<Packet>::type* to, const typename unpacket_traits<Packet>::type& a)
+{
+ pstore(to, pset1<Packet>(a));
+}
+
+/** \internal \returns a * b + c (coeff-wise) */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+pmadd(const Packet& a,
+ const Packet& b,
+ const Packet& c)
+{ return padd(pmul(a, b),c); }
+
+/** \internal \returns a packet version of \a *from.
+ * The pointer \a from must be aligned on a \a Alignment bytes boundary. */
+template<typename Packet, int Alignment>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE Packet ploadt(const typename unpacket_traits<Packet>::type* from)
+{
+ if(Alignment >= unpacket_traits<Packet>::alignment)
+ return pload<Packet>(from);
+ else
+ return ploadu<Packet>(from);
+}
+
+/** \internal copy the packet \a from to \a *to.
+ * The pointer \a from must be aligned on a \a Alignment bytes boundary. */
+template<typename Scalar, typename Packet, int Alignment>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE void pstoret(Scalar* to, const Packet& from)
+{
+ if(Alignment >= unpacket_traits<Packet>::alignment)
+ pstore(to, from);
+ else
+ pstoreu(to, from);
+}
+
+/** \internal \returns a packet version of \a *from.
+ * Unlike ploadt, ploadt_ro takes advantage of the read-only memory path on the
+ * hardware if available to speedup the loading of data that won't be modified
+ * by the current computation.
+ */
+template<typename Packet, int LoadMode>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE Packet ploadt_ro(const typename unpacket_traits<Packet>::type* from)
+{
+ return ploadt<Packet, LoadMode>(from);
+}
+
+/** \internal default implementation of palign() allowing partial specialization */
+template<int Offset,typename PacketType>
+struct palign_impl
+{
+ // by default data are aligned, so there is nothing to be done :)
+ static inline void run(PacketType&, const PacketType&) {}
+};
+
+/** \internal update \a first using the concatenation of the packet_size minus \a Offset last elements
+ * of \a first and \a Offset first elements of \a second.
+ *
+ * This function is currently only used to optimize matrix-vector products on unligned matrices.
+ * It takes 2 packets that represent a contiguous memory array, and returns a packet starting
+ * at the position \a Offset. For instance, for packets of 4 elements, we have:
+ * Input:
+ * - first = {f0,f1,f2,f3}
+ * - second = {s0,s1,s2,s3}
+ * Output:
+ * - if Offset==0 then {f0,f1,f2,f3}
+ * - if Offset==1 then {f1,f2,f3,s0}
+ * - if Offset==2 then {f2,f3,s0,s1}
+ * - if Offset==3 then {f3,s0,s1,s3}
+ */
+template<int Offset,typename PacketType>
+inline void palign(PacketType& first, const PacketType& second)
+{
+ palign_impl<Offset,PacketType>::run(first,second);
+}
+
+/***************************************************************************
+* Fast complex products (GCC generates a function call which is very slow)
+***************************************************************************/
+
+// Eigen+CUDA does not support complexes.
+#ifndef __CUDACC__
+
+template<> inline std::complex<float> pmul(const std::complex<float>& a, const std::complex<float>& b)
+{ return std::complex<float>(real(a)*real(b) - imag(a)*imag(b), imag(a)*real(b) + real(a)*imag(b)); }
+
+template<> inline std::complex<double> pmul(const std::complex<double>& a, const std::complex<double>& b)
+{ return std::complex<double>(real(a)*real(b) - imag(a)*imag(b), imag(a)*real(b) + real(a)*imag(b)); }
+
+#endif
+
+
+/***************************************************************************
+ * PacketBlock, that is a collection of N packets where the number of words
+ * in the packet is a multiple of N.
+***************************************************************************/
+template <typename Packet,int N=unpacket_traits<Packet>::size> struct PacketBlock {
+ Packet packet[N];
+};
+
+template<typename Packet> EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<Packet,1>& /*kernel*/) {
+ // Nothing to do in the scalar case, i.e. a 1x1 matrix.
+}
+
+/***************************************************************************
+ * Selector, i.e. vector of N boolean values used to select (i.e. blend)
+ * words from 2 packets.
+***************************************************************************/
+template <size_t N> struct Selector {
+ bool select[N];
+};
+
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+pblend(const Selector<unpacket_traits<Packet>::size>& ifPacket, const Packet& thenPacket, const Packet& elsePacket) {
+ return ifPacket.select[0] ? thenPacket : elsePacket;
+}
+
+/** \internal \returns \a a with the first coefficient replaced by the scalar b */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+pinsertfirst(const Packet& a, typename unpacket_traits<Packet>::type b)
+{
+ // Default implementation based on pblend.
+ // It must be specialized for higher performance.
+ Selector<unpacket_traits<Packet>::size> mask;
+ mask.select[0] = true;
+ // This for loop should be optimized away by the compiler.
+ for(Index i=1; i<unpacket_traits<Packet>::size; ++i)
+ mask.select[i] = false;
+ return pblend(mask, pset1<Packet>(b), a);
+}
+
+/** \internal \returns \a a with the last coefficient replaced by the scalar b */
+template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
+pinsertlast(const Packet& a, typename unpacket_traits<Packet>::type b)
+{
+ // Default implementation based on pblend.
+ // It must be specialized for higher performance.
+ Selector<unpacket_traits<Packet>::size> mask;
+ // This for loop should be optimized away by the compiler.
+ for(Index i=0; i<unpacket_traits<Packet>::size-1; ++i)
+ mask.select[i] = false;
+ mask.select[unpacket_traits<Packet>::size-1] = true;
+ return pblend(mask, pset1<Packet>(b), a);
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERIC_PACKET_MATH_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/GlobalFunctions.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/GlobalFunctions.h
new file mode 100644
index 000000000..769dc255c
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/GlobalFunctions.h
@@ -0,0 +1,187 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010-2016 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GLOBAL_FUNCTIONS_H
+#define EIGEN_GLOBAL_FUNCTIONS_H
+
+#ifdef EIGEN_PARSED_BY_DOXYGEN
+
+#define EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(NAME,FUNCTOR,DOC_OP,DOC_DETAILS) \
+ /** \returns an expression of the coefficient-wise DOC_OP of \a x
+
+ DOC_DETAILS
+
+ \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_##NAME">Math functions</a>, class CwiseUnaryOp
+ */ \
+ template<typename Derived> \
+ inline const Eigen::CwiseUnaryOp<Eigen::internal::FUNCTOR<typename Derived::Scalar>, const Derived> \
+ NAME(const Eigen::ArrayBase<Derived>& x);
+
+#else
+
+#define EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(NAME,FUNCTOR,DOC_OP,DOC_DETAILS) \
+ template<typename Derived> \
+ inline const Eigen::CwiseUnaryOp<Eigen::internal::FUNCTOR<typename Derived::Scalar>, const Derived> \
+ (NAME)(const Eigen::ArrayBase<Derived>& x) { \
+ return Eigen::CwiseUnaryOp<Eigen::internal::FUNCTOR<typename Derived::Scalar>, const Derived>(x.derived()); \
+ }
+
+#endif // EIGEN_PARSED_BY_DOXYGEN
+
+#define EIGEN_ARRAY_DECLARE_GLOBAL_EIGEN_UNARY(NAME,FUNCTOR) \
+ \
+ template<typename Derived> \
+ struct NAME##_retval<ArrayBase<Derived> > \
+ { \
+ typedef const Eigen::CwiseUnaryOp<Eigen::internal::FUNCTOR<typename Derived::Scalar>, const Derived> type; \
+ }; \
+ template<typename Derived> \
+ struct NAME##_impl<ArrayBase<Derived> > \
+ { \
+ static inline typename NAME##_retval<ArrayBase<Derived> >::type run(const Eigen::ArrayBase<Derived>& x) \
+ { \
+ return typename NAME##_retval<ArrayBase<Derived> >::type(x.derived()); \
+ } \
+ };
+
+namespace Eigen
+{
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(real,scalar_real_op,real part,\sa ArrayBase::real)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(imag,scalar_imag_op,imaginary part,\sa ArrayBase::imag)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(conj,scalar_conjugate_op,complex conjugate,\sa ArrayBase::conjugate)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(inverse,scalar_inverse_op,inverse,\sa ArrayBase::inverse)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(sin,scalar_sin_op,sine,\sa ArrayBase::sin)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(cos,scalar_cos_op,cosine,\sa ArrayBase::cos)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(tan,scalar_tan_op,tangent,\sa ArrayBase::tan)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(atan,scalar_atan_op,arc-tangent,\sa ArrayBase::atan)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(asin,scalar_asin_op,arc-sine,\sa ArrayBase::asin)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(acos,scalar_acos_op,arc-consine,\sa ArrayBase::acos)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(sinh,scalar_sinh_op,hyperbolic sine,\sa ArrayBase::sinh)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(cosh,scalar_cosh_op,hyperbolic cosine,\sa ArrayBase::cosh)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(tanh,scalar_tanh_op,hyperbolic tangent,\sa ArrayBase::tanh)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(lgamma,scalar_lgamma_op,natural logarithm of the gamma function,\sa ArrayBase::lgamma)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(digamma,scalar_digamma_op,derivative of lgamma,\sa ArrayBase::digamma)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(erf,scalar_erf_op,error function,\sa ArrayBase::erf)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(erfc,scalar_erfc_op,complement error function,\sa ArrayBase::erfc)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(exp,scalar_exp_op,exponential,\sa ArrayBase::exp)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(log,scalar_log_op,natural logarithm,\sa Eigen::log10 DOXCOMMA ArrayBase::log)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(log1p,scalar_log1p_op,natural logarithm of 1 plus the value,\sa ArrayBase::log1p)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(log10,scalar_log10_op,base 10 logarithm,\sa Eigen::log DOXCOMMA ArrayBase::log)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(abs,scalar_abs_op,absolute value,\sa ArrayBase::abs DOXCOMMA MatrixBase::cwiseAbs)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(abs2,scalar_abs2_op,squared absolute value,\sa ArrayBase::abs2 DOXCOMMA MatrixBase::cwiseAbs2)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(arg,scalar_arg_op,complex argument,\sa ArrayBase::arg)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(sqrt,scalar_sqrt_op,square root,\sa ArrayBase::sqrt DOXCOMMA MatrixBase::cwiseSqrt)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(rsqrt,scalar_rsqrt_op,reciprocal square root,\sa ArrayBase::rsqrt)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(square,scalar_square_op,square (power 2),\sa Eigen::abs2 DOXCOMMA Eigen::pow DOXCOMMA ArrayBase::square)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(cube,scalar_cube_op,cube (power 3),\sa Eigen::pow DOXCOMMA ArrayBase::cube)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(round,scalar_round_op,nearest integer,\sa Eigen::floor DOXCOMMA Eigen::ceil DOXCOMMA ArrayBase::round)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(floor,scalar_floor_op,nearest integer not greater than the giben value,\sa Eigen::ceil DOXCOMMA ArrayBase::floor)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(ceil,scalar_ceil_op,nearest integer not less than the giben value,\sa Eigen::floor DOXCOMMA ArrayBase::ceil)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(isnan,scalar_isnan_op,not-a-number test,\sa Eigen::isinf DOXCOMMA Eigen::isfinite DOXCOMMA ArrayBase::isnan)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(isinf,scalar_isinf_op,infinite value test,\sa Eigen::isnan DOXCOMMA Eigen::isfinite DOXCOMMA ArrayBase::isinf)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(isfinite,scalar_isfinite_op,finite value test,\sa Eigen::isinf DOXCOMMA Eigen::isnan DOXCOMMA ArrayBase::isfinite)
+ EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(sign,scalar_sign_op,sign (or 0),\sa ArrayBase::sign)
+
+ /** \returns an expression of the coefficient-wise power of \a x to the given constant \a exponent.
+ *
+ * \tparam ScalarExponent is the scalar type of \a exponent. It must be compatible with the scalar type of the given expression (\c Derived::Scalar).
+ *
+ * \sa ArrayBase::pow()
+ *
+ * \relates ArrayBase
+ */
+#ifdef EIGEN_PARSED_BY_DOXYGEN
+ template<typename Derived,typename ScalarExponent>
+ inline const CwiseBinaryOp<internal::scalar_pow_op<Derived::Scalar,ScalarExponent>,Derived,Constant<ScalarExponent> >
+ pow(const Eigen::ArrayBase<Derived>& x, const ScalarExponent& exponent);
+#else
+ template<typename Derived,typename ScalarExponent>
+ inline typename internal::enable_if< !(internal::is_same<typename Derived::Scalar,ScalarExponent>::value) && EIGEN_SCALAR_BINARY_SUPPORTED(pow,typename Derived::Scalar,ScalarExponent),
+ const EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(Derived,ScalarExponent,pow) >::type
+ pow(const Eigen::ArrayBase<Derived>& x, const ScalarExponent& exponent) {
+ return x.derived().pow(exponent);
+ }
+
+ template<typename Derived>
+ inline const EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(Derived,typename Derived::Scalar,pow)
+ pow(const Eigen::ArrayBase<Derived>& x, const typename Derived::Scalar& exponent) {
+ return x.derived().pow(exponent);
+ }
+#endif
+
+ /** \returns an expression of the coefficient-wise power of \a x to the given array of \a exponents.
+ *
+ * This function computes the coefficient-wise power.
+ *
+ * Example: \include Cwise_array_power_array.cpp
+ * Output: \verbinclude Cwise_array_power_array.out
+ *
+ * \sa ArrayBase::pow()
+ *
+ * \relates ArrayBase
+ */
+ template<typename Derived,typename ExponentDerived>
+ inline const Eigen::CwiseBinaryOp<Eigen::internal::scalar_pow_op<typename Derived::Scalar, typename ExponentDerived::Scalar>, const Derived, const ExponentDerived>
+ pow(const Eigen::ArrayBase<Derived>& x, const Eigen::ArrayBase<ExponentDerived>& exponents)
+ {
+ return Eigen::CwiseBinaryOp<Eigen::internal::scalar_pow_op<typename Derived::Scalar, typename ExponentDerived::Scalar>, const Derived, const ExponentDerived>(
+ x.derived(),
+ exponents.derived()
+ );
+ }
+
+ /** \returns an expression of the coefficient-wise power of the scalar \a x to the given array of \a exponents.
+ *
+ * This function computes the coefficient-wise power between a scalar and an array of exponents.
+ *
+ * \tparam Scalar is the scalar type of \a x. It must be compatible with the scalar type of the given array expression (\c Derived::Scalar).
+ *
+ * Example: \include Cwise_scalar_power_array.cpp
+ * Output: \verbinclude Cwise_scalar_power_array.out
+ *
+ * \sa ArrayBase::pow()
+ *
+ * \relates ArrayBase
+ */
+#ifdef EIGEN_PARSED_BY_DOXYGEN
+ template<typename Scalar,typename Derived>
+ inline const CwiseBinaryOp<internal::scalar_pow_op<Scalar,Derived::Scalar>,Constant<Scalar>,Derived>
+ pow(const Scalar& x,const Eigen::ArrayBase<Derived>& x);
+#else
+ template<typename Scalar, typename Derived>
+ inline typename internal::enable_if< !(internal::is_same<typename Derived::Scalar,Scalar>::value) && EIGEN_SCALAR_BINARY_SUPPORTED(pow,Scalar,typename Derived::Scalar),
+ const EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(Scalar,Derived,pow) >::type
+ pow(const Scalar& x, const Eigen::ArrayBase<Derived>& exponents)
+ {
+ return EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(Scalar,Derived,pow)(
+ typename internal::plain_constant_type<Derived,Scalar>::type(exponents.rows(), exponents.cols(), x), exponents.derived() );
+ }
+
+ template<typename Derived>
+ inline const EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(typename Derived::Scalar,Derived,pow)
+ pow(const typename Derived::Scalar& x, const Eigen::ArrayBase<Derived>& exponents)
+ {
+ return EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(typename Derived::Scalar,Derived,pow)(
+ typename internal::plain_constant_type<Derived,typename Derived::Scalar>::type(exponents.rows(), exponents.cols(), x), exponents.derived() );
+ }
+#endif
+
+
+ namespace internal
+ {
+ EIGEN_ARRAY_DECLARE_GLOBAL_EIGEN_UNARY(real,scalar_real_op)
+ EIGEN_ARRAY_DECLARE_GLOBAL_EIGEN_UNARY(imag,scalar_imag_op)
+ EIGEN_ARRAY_DECLARE_GLOBAL_EIGEN_UNARY(abs2,scalar_abs2_op)
+ }
+}
+
+// TODO: cleanly disable those functions that are not supported on Array (numext::real_ref, internal::random, internal::isApprox...)
+
+#endif // EIGEN_GLOBAL_FUNCTIONS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/IO.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/IO.h
new file mode 100644
index 000000000..da7fd6cce
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/IO.h
@@ -0,0 +1,225 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_IO_H
+#define EIGEN_IO_H
+
+namespace Eigen {
+
+enum { DontAlignCols = 1 };
+enum { StreamPrecision = -1,
+ FullPrecision = -2 };
+
+namespace internal {
+template<typename Derived>
+std::ostream & print_matrix(std::ostream & s, const Derived& _m, const IOFormat& fmt);
+}
+
+/** \class IOFormat
+ * \ingroup Core_Module
+ *
+ * \brief Stores a set of parameters controlling the way matrices are printed
+ *
+ * List of available parameters:
+ * - \b precision number of digits for floating point values, or one of the special constants \c StreamPrecision and \c FullPrecision.
+ * The default is the special value \c StreamPrecision which means to use the
+ * stream's own precision setting, as set for instance using \c cout.precision(3). The other special value
+ * \c FullPrecision means that the number of digits will be computed to match the full precision of each floating-point
+ * type.
+ * - \b flags an OR-ed combination of flags, the default value is 0, the only currently available flag is \c DontAlignCols which
+ * allows to disable the alignment of columns, resulting in faster code.
+ * - \b coeffSeparator string printed between two coefficients of the same row
+ * - \b rowSeparator string printed between two rows
+ * - \b rowPrefix string printed at the beginning of each row
+ * - \b rowSuffix string printed at the end of each row
+ * - \b matPrefix string printed at the beginning of the matrix
+ * - \b matSuffix string printed at the end of the matrix
+ *
+ * Example: \include IOFormat.cpp
+ * Output: \verbinclude IOFormat.out
+ *
+ * \sa DenseBase::format(), class WithFormat
+ */
+struct IOFormat
+{
+ /** Default constructor, see class IOFormat for the meaning of the parameters */
+ IOFormat(int _precision = StreamPrecision, int _flags = 0,
+ const std::string& _coeffSeparator = " ",
+ const std::string& _rowSeparator = "\n", const std::string& _rowPrefix="", const std::string& _rowSuffix="",
+ const std::string& _matPrefix="", const std::string& _matSuffix="")
+ : matPrefix(_matPrefix), matSuffix(_matSuffix), rowPrefix(_rowPrefix), rowSuffix(_rowSuffix), rowSeparator(_rowSeparator),
+ rowSpacer(""), coeffSeparator(_coeffSeparator), precision(_precision), flags(_flags)
+ {
+ // TODO check if rowPrefix, rowSuffix or rowSeparator contains a newline
+ // don't add rowSpacer if columns are not to be aligned
+ if((flags & DontAlignCols))
+ return;
+ int i = int(matSuffix.length())-1;
+ while (i>=0 && matSuffix[i]!='\n')
+ {
+ rowSpacer += ' ';
+ i--;
+ }
+ }
+ std::string matPrefix, matSuffix;
+ std::string rowPrefix, rowSuffix, rowSeparator, rowSpacer;
+ std::string coeffSeparator;
+ int precision;
+ int flags;
+};
+
+/** \class WithFormat
+ * \ingroup Core_Module
+ *
+ * \brief Pseudo expression providing matrix output with given format
+ *
+ * \tparam ExpressionType the type of the object on which IO stream operations are performed
+ *
+ * This class represents an expression with stream operators controlled by a given IOFormat.
+ * It is the return type of DenseBase::format()
+ * and most of the time this is the only way it is used.
+ *
+ * See class IOFormat for some examples.
+ *
+ * \sa DenseBase::format(), class IOFormat
+ */
+template<typename ExpressionType>
+class WithFormat
+{
+ public:
+
+ WithFormat(const ExpressionType& matrix, const IOFormat& format)
+ : m_matrix(matrix), m_format(format)
+ {}
+
+ friend std::ostream & operator << (std::ostream & s, const WithFormat& wf)
+ {
+ return internal::print_matrix(s, wf.m_matrix.eval(), wf.m_format);
+ }
+
+ protected:
+ typename ExpressionType::Nested m_matrix;
+ IOFormat m_format;
+};
+
+namespace internal {
+
+// NOTE: This helper is kept for backward compatibility with previous code specializing
+// this internal::significant_decimals_impl structure. In the future we should directly
+// call digits10() which has been introduced in July 2016 in 3.3.
+template<typename Scalar>
+struct significant_decimals_impl
+{
+ static inline int run()
+ {
+ return NumTraits<Scalar>::digits10();
+ }
+};
+
+/** \internal
+ * print the matrix \a _m to the output stream \a s using the output format \a fmt */
+template<typename Derived>
+std::ostream & print_matrix(std::ostream & s, const Derived& _m, const IOFormat& fmt)
+{
+ if(_m.size() == 0)
+ {
+ s << fmt.matPrefix << fmt.matSuffix;
+ return s;
+ }
+
+ typename Derived::Nested m = _m;
+ typedef typename Derived::Scalar Scalar;
+
+ Index width = 0;
+
+ std::streamsize explicit_precision;
+ if(fmt.precision == StreamPrecision)
+ {
+ explicit_precision = 0;
+ }
+ else if(fmt.precision == FullPrecision)
+ {
+ if (NumTraits<Scalar>::IsInteger)
+ {
+ explicit_precision = 0;
+ }
+ else
+ {
+ explicit_precision = significant_decimals_impl<Scalar>::run();
+ }
+ }
+ else
+ {
+ explicit_precision = fmt.precision;
+ }
+
+ std::streamsize old_precision = 0;
+ if(explicit_precision) old_precision = s.precision(explicit_precision);
+
+ bool align_cols = !(fmt.flags & DontAlignCols);
+ if(align_cols)
+ {
+ // compute the largest width
+ for(Index j = 0; j < m.cols(); ++j)
+ for(Index i = 0; i < m.rows(); ++i)
+ {
+ std::stringstream sstr;
+ sstr.copyfmt(s);
+ sstr << m.coeff(i,j);
+ width = std::max<Index>(width, Index(sstr.str().length()));
+ }
+ }
+ s << fmt.matPrefix;
+ for(Index i = 0; i < m.rows(); ++i)
+ {
+ if (i)
+ s << fmt.rowSpacer;
+ s << fmt.rowPrefix;
+ if(width) s.width(width);
+ s << m.coeff(i, 0);
+ for(Index j = 1; j < m.cols(); ++j)
+ {
+ s << fmt.coeffSeparator;
+ if (width) s.width(width);
+ s << m.coeff(i, j);
+ }
+ s << fmt.rowSuffix;
+ if( i < m.rows() - 1)
+ s << fmt.rowSeparator;
+ }
+ s << fmt.matSuffix;
+ if(explicit_precision) s.precision(old_precision);
+ return s;
+}
+
+} // end namespace internal
+
+/** \relates DenseBase
+ *
+ * Outputs the matrix, to the given stream.
+ *
+ * If you wish to print the matrix with a format different than the default, use DenseBase::format().
+ *
+ * It is also possible to change the default format by defining EIGEN_DEFAULT_IO_FORMAT before including Eigen headers.
+ * If not defined, this will automatically be defined to Eigen::IOFormat(), that is the Eigen::IOFormat with default parameters.
+ *
+ * \sa DenseBase::format()
+ */
+template<typename Derived>
+std::ostream & operator <<
+(std::ostream & s,
+ const DenseBase<Derived> & m)
+{
+ return internal::print_matrix(s, m.eval(), EIGEN_DEFAULT_IO_FORMAT);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_IO_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Inverse.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Inverse.h
new file mode 100644
index 000000000..b76f0439d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Inverse.h
@@ -0,0 +1,118 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_INVERSE_H
+#define EIGEN_INVERSE_H
+
+namespace Eigen {
+
+template<typename XprType,typename StorageKind> class InverseImpl;
+
+namespace internal {
+
+template<typename XprType>
+struct traits<Inverse<XprType> >
+ : traits<typename XprType::PlainObject>
+{
+ typedef typename XprType::PlainObject PlainObject;
+ typedef traits<PlainObject> BaseTraits;
+ enum {
+ Flags = BaseTraits::Flags & RowMajorBit
+ };
+};
+
+} // end namespace internal
+
+/** \class Inverse
+ *
+ * \brief Expression of the inverse of another expression
+ *
+ * \tparam XprType the type of the expression we are taking the inverse
+ *
+ * This class represents an abstract expression of A.inverse()
+ * and most of the time this is the only way it is used.
+ *
+ */
+template<typename XprType>
+class Inverse : public InverseImpl<XprType,typename internal::traits<XprType>::StorageKind>
+{
+public:
+ typedef typename XprType::StorageIndex StorageIndex;
+ typedef typename XprType::PlainObject PlainObject;
+ typedef typename XprType::Scalar Scalar;
+ typedef typename internal::ref_selector<XprType>::type XprTypeNested;
+ typedef typename internal::remove_all<XprTypeNested>::type XprTypeNestedCleaned;
+ typedef typename internal::ref_selector<Inverse>::type Nested;
+ typedef typename internal::remove_all<XprType>::type NestedExpression;
+
+ explicit EIGEN_DEVICE_FUNC Inverse(const XprType &xpr)
+ : m_xpr(xpr)
+ {}
+
+ EIGEN_DEVICE_FUNC Index rows() const { return m_xpr.rows(); }
+ EIGEN_DEVICE_FUNC Index cols() const { return m_xpr.cols(); }
+
+ EIGEN_DEVICE_FUNC const XprTypeNestedCleaned& nestedExpression() const { return m_xpr; }
+
+protected:
+ XprTypeNested m_xpr;
+};
+
+// Generic API dispatcher
+template<typename XprType, typename StorageKind>
+class InverseImpl
+ : public internal::generic_xpr_base<Inverse<XprType> >::type
+{
+public:
+ typedef typename internal::generic_xpr_base<Inverse<XprType> >::type Base;
+ typedef typename XprType::Scalar Scalar;
+private:
+
+ Scalar coeff(Index row, Index col) const;
+ Scalar coeff(Index i) const;
+};
+
+namespace internal {
+
+/** \internal
+ * \brief Default evaluator for Inverse expression.
+ *
+ * This default evaluator for Inverse expression simply evaluate the inverse into a temporary
+ * by a call to internal::call_assignment_no_alias.
+ * Therefore, inverse implementers only have to specialize Assignment<Dst,Inverse<...>, ...> for
+ * there own nested expression.
+ *
+ * \sa class Inverse
+ */
+template<typename ArgType>
+struct unary_evaluator<Inverse<ArgType> >
+ : public evaluator<typename Inverse<ArgType>::PlainObject>
+{
+ typedef Inverse<ArgType> InverseType;
+ typedef typename InverseType::PlainObject PlainObject;
+ typedef evaluator<PlainObject> Base;
+
+ enum { Flags = Base::Flags | EvalBeforeNestingBit };
+
+ unary_evaluator(const InverseType& inv_xpr)
+ : m_result(inv_xpr.rows(), inv_xpr.cols())
+ {
+ ::new (static_cast<Base*>(this)) Base(m_result);
+ internal::call_assignment_no_alias(m_result, inv_xpr);
+ }
+
+protected:
+ PlainObject m_result;
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_INVERSE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Map.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Map.h
new file mode 100644
index 000000000..06d196702
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Map.h
@@ -0,0 +1,164 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MAP_H
+#define EIGEN_MAP_H
+
+namespace Eigen {
+
+namespace internal {
+template<typename PlainObjectType, int MapOptions, typename StrideType>
+struct traits<Map<PlainObjectType, MapOptions, StrideType> >
+ : public traits<PlainObjectType>
+{
+ typedef traits<PlainObjectType> TraitsBase;
+ enum {
+ InnerStrideAtCompileTime = StrideType::InnerStrideAtCompileTime == 0
+ ? int(PlainObjectType::InnerStrideAtCompileTime)
+ : int(StrideType::InnerStrideAtCompileTime),
+ OuterStrideAtCompileTime = StrideType::OuterStrideAtCompileTime == 0
+ ? int(PlainObjectType::OuterStrideAtCompileTime)
+ : int(StrideType::OuterStrideAtCompileTime),
+ Alignment = int(MapOptions)&int(AlignedMask),
+ Flags0 = TraitsBase::Flags & (~NestByRefBit),
+ Flags = is_lvalue<PlainObjectType>::value ? int(Flags0) : (int(Flags0) & ~LvalueBit)
+ };
+private:
+ enum { Options }; // Expressions don't have Options
+};
+}
+
+/** \class Map
+ * \ingroup Core_Module
+ *
+ * \brief A matrix or vector expression mapping an existing array of data.
+ *
+ * \tparam PlainObjectType the equivalent matrix type of the mapped data
+ * \tparam MapOptions specifies the pointer alignment in bytes. It can be: \c #Aligned128, , \c #Aligned64, \c #Aligned32, \c #Aligned16, \c #Aligned8 or \c #Unaligned.
+ * The default is \c #Unaligned.
+ * \tparam StrideType optionally specifies strides. By default, Map assumes the memory layout
+ * of an ordinary, contiguous array. This can be overridden by specifying strides.
+ * The type passed here must be a specialization of the Stride template, see examples below.
+ *
+ * This class represents a matrix or vector expression mapping an existing array of data.
+ * It can be used to let Eigen interface without any overhead with non-Eigen data structures,
+ * such as plain C arrays or structures from other libraries. By default, it assumes that the
+ * data is laid out contiguously in memory. You can however override this by explicitly specifying
+ * inner and outer strides.
+ *
+ * Here's an example of simply mapping a contiguous array as a \ref TopicStorageOrders "column-major" matrix:
+ * \include Map_simple.cpp
+ * Output: \verbinclude Map_simple.out
+ *
+ * If you need to map non-contiguous arrays, you can do so by specifying strides:
+ *
+ * Here's an example of mapping an array as a vector, specifying an inner stride, that is, the pointer
+ * increment between two consecutive coefficients. Here, we're specifying the inner stride as a compile-time
+ * fixed value.
+ * \include Map_inner_stride.cpp
+ * Output: \verbinclude Map_inner_stride.out
+ *
+ * Here's an example of mapping an array while specifying an outer stride. Here, since we're mapping
+ * as a column-major matrix, 'outer stride' means the pointer increment between two consecutive columns.
+ * Here, we're specifying the outer stride as a runtime parameter. Note that here \c OuterStride<> is
+ * a short version of \c OuterStride<Dynamic> because the default template parameter of OuterStride
+ * is \c Dynamic
+ * \include Map_outer_stride.cpp
+ * Output: \verbinclude Map_outer_stride.out
+ *
+ * For more details and for an example of specifying both an inner and an outer stride, see class Stride.
+ *
+ * \b Tip: to change the array of data mapped by a Map object, you can use the C++
+ * placement new syntax:
+ *
+ * Example: \include Map_placement_new.cpp
+ * Output: \verbinclude Map_placement_new.out
+ *
+ * This class is the return type of PlainObjectBase::Map() but can also be used directly.
+ *
+ * \sa PlainObjectBase::Map(), \ref TopicStorageOrders
+ */
+template<typename PlainObjectType, int MapOptions, typename StrideType> class Map
+ : public MapBase<Map<PlainObjectType, MapOptions, StrideType> >
+{
+ public:
+
+ typedef MapBase<Map> Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(Map)
+
+ typedef typename Base::PointerType PointerType;
+ typedef PointerType PointerArgType;
+ EIGEN_DEVICE_FUNC
+ inline PointerType cast_to_pointer_type(PointerArgType ptr) { return ptr; }
+
+ EIGEN_DEVICE_FUNC
+ inline Index innerStride() const
+ {
+ return StrideType::InnerStrideAtCompileTime != 0 ? m_stride.inner() : 1;
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline Index outerStride() const
+ {
+ return StrideType::OuterStrideAtCompileTime != 0 ? m_stride.outer()
+ : IsVectorAtCompileTime ? this->size()
+ : int(Flags)&RowMajorBit ? this->cols()
+ : this->rows();
+ }
+
+ /** Constructor in the fixed-size case.
+ *
+ * \param dataPtr pointer to the array to map
+ * \param stride optional Stride object, passing the strides.
+ */
+ EIGEN_DEVICE_FUNC
+ explicit inline Map(PointerArgType dataPtr, const StrideType& stride = StrideType())
+ : Base(cast_to_pointer_type(dataPtr)), m_stride(stride)
+ {
+ PlainObjectType::Base::_check_template_params();
+ }
+
+ /** Constructor in the dynamic-size vector case.
+ *
+ * \param dataPtr pointer to the array to map
+ * \param size the size of the vector expression
+ * \param stride optional Stride object, passing the strides.
+ */
+ EIGEN_DEVICE_FUNC
+ inline Map(PointerArgType dataPtr, Index size, const StrideType& stride = StrideType())
+ : Base(cast_to_pointer_type(dataPtr), size), m_stride(stride)
+ {
+ PlainObjectType::Base::_check_template_params();
+ }
+
+ /** Constructor in the dynamic-size matrix case.
+ *
+ * \param dataPtr pointer to the array to map
+ * \param rows the number of rows of the matrix expression
+ * \param cols the number of columns of the matrix expression
+ * \param stride optional Stride object, passing the strides.
+ */
+ EIGEN_DEVICE_FUNC
+ inline Map(PointerArgType dataPtr, Index rows, Index cols, const StrideType& stride = StrideType())
+ : Base(cast_to_pointer_type(dataPtr), rows, cols), m_stride(stride)
+ {
+ PlainObjectType::Base::_check_template_params();
+ }
+
+ EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Map)
+
+ protected:
+ StrideType m_stride;
+};
+
+
+} // end namespace Eigen
+
+#endif // EIGEN_MAP_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/MapBase.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/MapBase.h
new file mode 100644
index 000000000..020f939ad
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/MapBase.h
@@ -0,0 +1,299 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MAPBASE_H
+#define EIGEN_MAPBASE_H
+
+#define EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived) \
+ EIGEN_STATIC_ASSERT((int(internal::evaluator<Derived>::Flags) & LinearAccessBit) || Derived::IsVectorAtCompileTime, \
+ YOU_ARE_TRYING_TO_USE_AN_INDEX_BASED_ACCESSOR_ON_AN_EXPRESSION_THAT_DOES_NOT_SUPPORT_THAT)
+
+namespace Eigen {
+
+/** \ingroup Core_Module
+ *
+ * \brief Base class for dense Map and Block expression with direct access
+ *
+ * This base class provides the const low-level accessors (e.g. coeff, coeffRef) of dense
+ * Map and Block objects with direct access.
+ * Typical users do not have to directly deal with this class.
+ *
+ * This class can be extended by through the macro plugin \c EIGEN_MAPBASE_PLUGIN.
+ * See \link TopicCustomizing_Plugins customizing Eigen \endlink for details.
+ *
+ * The \c Derived class has to provide the following two methods describing the memory layout:
+ * \code Index innerStride() const; \endcode
+ * \code Index outerStride() const; \endcode
+ *
+ * \sa class Map, class Block
+ */
+template<typename Derived> class MapBase<Derived, ReadOnlyAccessors>
+ : public internal::dense_xpr_base<Derived>::type
+{
+ public:
+
+ typedef typename internal::dense_xpr_base<Derived>::type Base;
+ enum {
+ RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
+ ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
+ SizeAtCompileTime = Base::SizeAtCompileTime
+ };
+
+ typedef typename internal::traits<Derived>::StorageKind StorageKind;
+ typedef typename internal::traits<Derived>::Scalar Scalar;
+ typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ typedef typename internal::conditional<
+ bool(internal::is_lvalue<Derived>::value),
+ Scalar *,
+ const Scalar *>::type
+ PointerType;
+
+ using Base::derived;
+// using Base::RowsAtCompileTime;
+// using Base::ColsAtCompileTime;
+// using Base::SizeAtCompileTime;
+ using Base::MaxRowsAtCompileTime;
+ using Base::MaxColsAtCompileTime;
+ using Base::MaxSizeAtCompileTime;
+ using Base::IsVectorAtCompileTime;
+ using Base::Flags;
+ using Base::IsRowMajor;
+
+ using Base::rows;
+ using Base::cols;
+ using Base::size;
+ using Base::coeff;
+ using Base::coeffRef;
+ using Base::lazyAssign;
+ using Base::eval;
+
+ using Base::innerStride;
+ using Base::outerStride;
+ using Base::rowStride;
+ using Base::colStride;
+
+ // bug 217 - compile error on ICC 11.1
+ using Base::operator=;
+
+ typedef typename Base::CoeffReturnType CoeffReturnType;
+
+ /** \copydoc DenseBase::rows() */
+ EIGEN_DEVICE_FUNC inline Index rows() const { return m_rows.value(); }
+ /** \copydoc DenseBase::cols() */
+ EIGEN_DEVICE_FUNC inline Index cols() const { return m_cols.value(); }
+
+ /** Returns a pointer to the first coefficient of the matrix or vector.
+ *
+ * \note When addressing this data, make sure to honor the strides returned by innerStride() and outerStride().
+ *
+ * \sa innerStride(), outerStride()
+ */
+ EIGEN_DEVICE_FUNC inline const Scalar* data() const { return m_data; }
+
+ /** \copydoc PlainObjectBase::coeff(Index,Index) const */
+ EIGEN_DEVICE_FUNC
+ inline const Scalar& coeff(Index rowId, Index colId) const
+ {
+ return m_data[colId * colStride() + rowId * rowStride()];
+ }
+
+ /** \copydoc PlainObjectBase::coeff(Index) const */
+ EIGEN_DEVICE_FUNC
+ inline const Scalar& coeff(Index index) const
+ {
+ EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
+ return m_data[index * innerStride()];
+ }
+
+ /** \copydoc PlainObjectBase::coeffRef(Index,Index) const */
+ EIGEN_DEVICE_FUNC
+ inline const Scalar& coeffRef(Index rowId, Index colId) const
+ {
+ return this->m_data[colId * colStride() + rowId * rowStride()];
+ }
+
+ /** \copydoc PlainObjectBase::coeffRef(Index) const */
+ EIGEN_DEVICE_FUNC
+ inline const Scalar& coeffRef(Index index) const
+ {
+ EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
+ return this->m_data[index * innerStride()];
+ }
+
+ /** \internal */
+ template<int LoadMode>
+ inline PacketScalar packet(Index rowId, Index colId) const
+ {
+ return internal::ploadt<PacketScalar, LoadMode>
+ (m_data + (colId * colStride() + rowId * rowStride()));
+ }
+
+ /** \internal */
+ template<int LoadMode>
+ inline PacketScalar packet(Index index) const
+ {
+ EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
+ return internal::ploadt<PacketScalar, LoadMode>(m_data + index * innerStride());
+ }
+
+ /** \internal Constructor for fixed size matrices or vectors */
+ EIGEN_DEVICE_FUNC
+ explicit inline MapBase(PointerType dataPtr) : m_data(dataPtr), m_rows(RowsAtCompileTime), m_cols(ColsAtCompileTime)
+ {
+ EIGEN_STATIC_ASSERT_FIXED_SIZE(Derived)
+ checkSanity<Derived>();
+ }
+
+ /** \internal Constructor for dynamically sized vectors */
+ EIGEN_DEVICE_FUNC
+ inline MapBase(PointerType dataPtr, Index vecSize)
+ : m_data(dataPtr),
+ m_rows(RowsAtCompileTime == Dynamic ? vecSize : Index(RowsAtCompileTime)),
+ m_cols(ColsAtCompileTime == Dynamic ? vecSize : Index(ColsAtCompileTime))
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ eigen_assert(vecSize >= 0);
+ eigen_assert(dataPtr == 0 || SizeAtCompileTime == Dynamic || SizeAtCompileTime == vecSize);
+ checkSanity<Derived>();
+ }
+
+ /** \internal Constructor for dynamically sized matrices */
+ EIGEN_DEVICE_FUNC
+ inline MapBase(PointerType dataPtr, Index rows, Index cols)
+ : m_data(dataPtr), m_rows(rows), m_cols(cols)
+ {
+ eigen_assert( (dataPtr == 0)
+ || ( rows >= 0 && (RowsAtCompileTime == Dynamic || RowsAtCompileTime == rows)
+ && cols >= 0 && (ColsAtCompileTime == Dynamic || ColsAtCompileTime == cols)));
+ checkSanity<Derived>();
+ }
+
+ #ifdef EIGEN_MAPBASE_PLUGIN
+ #include EIGEN_MAPBASE_PLUGIN
+ #endif
+
+ protected:
+
+ template<typename T>
+ EIGEN_DEVICE_FUNC
+ void checkSanity(typename internal::enable_if<(internal::traits<T>::Alignment>0),void*>::type = 0) const
+ {
+#if EIGEN_MAX_ALIGN_BYTES>0
+ eigen_assert(( ((internal::UIntPtr(m_data) % internal::traits<Derived>::Alignment) == 0)
+ || (cols() * rows() * innerStride() * sizeof(Scalar)) < internal::traits<Derived>::Alignment ) && "data is not aligned");
+#endif
+ }
+
+ template<typename T>
+ EIGEN_DEVICE_FUNC
+ void checkSanity(typename internal::enable_if<internal::traits<T>::Alignment==0,void*>::type = 0) const
+ {}
+
+ PointerType m_data;
+ const internal::variable_if_dynamic<Index, RowsAtCompileTime> m_rows;
+ const internal::variable_if_dynamic<Index, ColsAtCompileTime> m_cols;
+};
+
+/** \ingroup Core_Module
+ *
+ * \brief Base class for non-const dense Map and Block expression with direct access
+ *
+ * This base class provides the non-const low-level accessors (e.g. coeff and coeffRef) of
+ * dense Map and Block objects with direct access.
+ * It inherits MapBase<Derived, ReadOnlyAccessors> which defines the const variant for reading specific entries.
+ *
+ * \sa class Map, class Block
+ */
+template<typename Derived> class MapBase<Derived, WriteAccessors>
+ : public MapBase<Derived, ReadOnlyAccessors>
+{
+ typedef MapBase<Derived, ReadOnlyAccessors> ReadOnlyMapBase;
+ public:
+
+ typedef MapBase<Derived, ReadOnlyAccessors> Base;
+
+ typedef typename Base::Scalar Scalar;
+ typedef typename Base::PacketScalar PacketScalar;
+ typedef typename Base::StorageIndex StorageIndex;
+ typedef typename Base::PointerType PointerType;
+
+ using Base::derived;
+ using Base::rows;
+ using Base::cols;
+ using Base::size;
+ using Base::coeff;
+ using Base::coeffRef;
+
+ using Base::innerStride;
+ using Base::outerStride;
+ using Base::rowStride;
+ using Base::colStride;
+
+ typedef typename internal::conditional<
+ internal::is_lvalue<Derived>::value,
+ Scalar,
+ const Scalar
+ >::type ScalarWithConstIfNotLvalue;
+
+ EIGEN_DEVICE_FUNC
+ inline const Scalar* data() const { return this->m_data; }
+ EIGEN_DEVICE_FUNC
+ inline ScalarWithConstIfNotLvalue* data() { return this->m_data; } // no const-cast here so non-const-correct code will give a compile error
+
+ EIGEN_DEVICE_FUNC
+ inline ScalarWithConstIfNotLvalue& coeffRef(Index row, Index col)
+ {
+ return this->m_data[col * colStride() + row * rowStride()];
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline ScalarWithConstIfNotLvalue& coeffRef(Index index)
+ {
+ EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
+ return this->m_data[index * innerStride()];
+ }
+
+ template<int StoreMode>
+ inline void writePacket(Index row, Index col, const PacketScalar& val)
+ {
+ internal::pstoret<Scalar, PacketScalar, StoreMode>
+ (this->m_data + (col * colStride() + row * rowStride()), val);
+ }
+
+ template<int StoreMode>
+ inline void writePacket(Index index, const PacketScalar& val)
+ {
+ EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
+ internal::pstoret<Scalar, PacketScalar, StoreMode>
+ (this->m_data + index * innerStride(), val);
+ }
+
+ EIGEN_DEVICE_FUNC explicit inline MapBase(PointerType dataPtr) : Base(dataPtr) {}
+ EIGEN_DEVICE_FUNC inline MapBase(PointerType dataPtr, Index vecSize) : Base(dataPtr, vecSize) {}
+ EIGEN_DEVICE_FUNC inline MapBase(PointerType dataPtr, Index rows, Index cols) : Base(dataPtr, rows, cols) {}
+
+ EIGEN_DEVICE_FUNC
+ Derived& operator=(const MapBase& other)
+ {
+ ReadOnlyMapBase::Base::operator=(other);
+ return derived();
+ }
+
+ // In theory we could simply refer to Base:Base::operator=, but MSVC does not like Base::Base,
+ // see bugs 821 and 920.
+ using ReadOnlyMapBase::Base::operator=;
+};
+
+#undef EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS
+
+} // end namespace Eigen
+
+#endif // EIGEN_MAPBASE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/MathFunctions.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/MathFunctions.h
new file mode 100644
index 000000000..a648aa0fa
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/MathFunctions.h
@@ -0,0 +1,1431 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATHFUNCTIONS_H
+#define EIGEN_MATHFUNCTIONS_H
+
+// source: http://www.geom.uiuc.edu/~huberty/math5337/groupe/digits.html
+// TODO this should better be moved to NumTraits
+#define EIGEN_PI 3.141592653589793238462643383279502884197169399375105820974944592307816406L
+
+
+namespace Eigen {
+
+// On WINCE, std::abs is defined for int only, so let's defined our own overloads:
+// This issue has been confirmed with MSVC 2008 only, but the issue might exist for more recent versions too.
+#if EIGEN_OS_WINCE && EIGEN_COMP_MSVC && EIGEN_COMP_MSVC<=1500
+long abs(long x) { return (labs(x)); }
+double abs(double x) { return (fabs(x)); }
+float abs(float x) { return (fabsf(x)); }
+long double abs(long double x) { return (fabsl(x)); }
+#endif
+
+namespace internal {
+
+/** \internal \class global_math_functions_filtering_base
+ *
+ * What it does:
+ * Defines a typedef 'type' as follows:
+ * - if type T has a member typedef Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl, then
+ * global_math_functions_filtering_base<T>::type is a typedef for it.
+ * - otherwise, global_math_functions_filtering_base<T>::type is a typedef for T.
+ *
+ * How it's used:
+ * To allow to defined the global math functions (like sin...) in certain cases, like the Array expressions.
+ * When you do sin(array1+array2), the object array1+array2 has a complicated expression type, all what you want to know
+ * is that it inherits ArrayBase. So we implement a partial specialization of sin_impl for ArrayBase<Derived>.
+ * So we must make sure to use sin_impl<ArrayBase<Derived> > and not sin_impl<Derived>, otherwise our partial specialization
+ * won't be used. How does sin know that? That's exactly what global_math_functions_filtering_base tells it.
+ *
+ * How it's implemented:
+ * SFINAE in the style of enable_if. Highly susceptible of breaking compilers. With GCC, it sure does work, but if you replace
+ * the typename dummy by an integer template parameter, it doesn't work anymore!
+ */
+
+template<typename T, typename dummy = void>
+struct global_math_functions_filtering_base
+{
+ typedef T type;
+};
+
+template<typename T> struct always_void { typedef void type; };
+
+template<typename T>
+struct global_math_functions_filtering_base
+ <T,
+ typename always_void<typename T::Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl>::type
+ >
+{
+ typedef typename T::Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl type;
+};
+
+#define EIGEN_MATHFUNC_IMPL(func, scalar) Eigen::internal::func##_impl<typename Eigen::internal::global_math_functions_filtering_base<scalar>::type>
+#define EIGEN_MATHFUNC_RETVAL(func, scalar) typename Eigen::internal::func##_retval<typename Eigen::internal::global_math_functions_filtering_base<scalar>::type>::type
+
+/****************************************************************************
+* Implementation of real *
+****************************************************************************/
+
+template<typename Scalar, bool IsComplex = NumTraits<Scalar>::IsComplex>
+struct real_default_impl
+{
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ EIGEN_DEVICE_FUNC
+ static inline RealScalar run(const Scalar& x)
+ {
+ return x;
+ }
+};
+
+template<typename Scalar>
+struct real_default_impl<Scalar,true>
+{
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ EIGEN_DEVICE_FUNC
+ static inline RealScalar run(const Scalar& x)
+ {
+ using std::real;
+ return real(x);
+ }
+};
+
+template<typename Scalar> struct real_impl : real_default_impl<Scalar> {};
+
+#ifdef __CUDA_ARCH__
+template<typename T>
+struct real_impl<std::complex<T> >
+{
+ typedef T RealScalar;
+ EIGEN_DEVICE_FUNC
+ static inline T run(const std::complex<T>& x)
+ {
+ return x.real();
+ }
+};
+#endif
+
+template<typename Scalar>
+struct real_retval
+{
+ typedef typename NumTraits<Scalar>::Real type;
+};
+
+/****************************************************************************
+* Implementation of imag *
+****************************************************************************/
+
+template<typename Scalar, bool IsComplex = NumTraits<Scalar>::IsComplex>
+struct imag_default_impl
+{
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ EIGEN_DEVICE_FUNC
+ static inline RealScalar run(const Scalar&)
+ {
+ return RealScalar(0);
+ }
+};
+
+template<typename Scalar>
+struct imag_default_impl<Scalar,true>
+{
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ EIGEN_DEVICE_FUNC
+ static inline RealScalar run(const Scalar& x)
+ {
+ using std::imag;
+ return imag(x);
+ }
+};
+
+template<typename Scalar> struct imag_impl : imag_default_impl<Scalar> {};
+
+#ifdef __CUDA_ARCH__
+template<typename T>
+struct imag_impl<std::complex<T> >
+{
+ typedef T RealScalar;
+ EIGEN_DEVICE_FUNC
+ static inline T run(const std::complex<T>& x)
+ {
+ return x.imag();
+ }
+};
+#endif
+
+template<typename Scalar>
+struct imag_retval
+{
+ typedef typename NumTraits<Scalar>::Real type;
+};
+
+/****************************************************************************
+* Implementation of real_ref *
+****************************************************************************/
+
+template<typename Scalar>
+struct real_ref_impl
+{
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ EIGEN_DEVICE_FUNC
+ static inline RealScalar& run(Scalar& x)
+ {
+ return reinterpret_cast<RealScalar*>(&x)[0];
+ }
+ EIGEN_DEVICE_FUNC
+ static inline const RealScalar& run(const Scalar& x)
+ {
+ return reinterpret_cast<const RealScalar*>(&x)[0];
+ }
+};
+
+template<typename Scalar>
+struct real_ref_retval
+{
+ typedef typename NumTraits<Scalar>::Real & type;
+};
+
+/****************************************************************************
+* Implementation of imag_ref *
+****************************************************************************/
+
+template<typename Scalar, bool IsComplex>
+struct imag_ref_default_impl
+{
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ EIGEN_DEVICE_FUNC
+ static inline RealScalar& run(Scalar& x)
+ {
+ return reinterpret_cast<RealScalar*>(&x)[1];
+ }
+ EIGEN_DEVICE_FUNC
+ static inline const RealScalar& run(const Scalar& x)
+ {
+ return reinterpret_cast<RealScalar*>(&x)[1];
+ }
+};
+
+template<typename Scalar>
+struct imag_ref_default_impl<Scalar, false>
+{
+ EIGEN_DEVICE_FUNC
+ static inline Scalar run(Scalar&)
+ {
+ return Scalar(0);
+ }
+ EIGEN_DEVICE_FUNC
+ static inline const Scalar run(const Scalar&)
+ {
+ return Scalar(0);
+ }
+};
+
+template<typename Scalar>
+struct imag_ref_impl : imag_ref_default_impl<Scalar, NumTraits<Scalar>::IsComplex> {};
+
+template<typename Scalar>
+struct imag_ref_retval
+{
+ typedef typename NumTraits<Scalar>::Real & type;
+};
+
+/****************************************************************************
+* Implementation of conj *
+****************************************************************************/
+
+template<typename Scalar, bool IsComplex = NumTraits<Scalar>::IsComplex>
+struct conj_impl
+{
+ EIGEN_DEVICE_FUNC
+ static inline Scalar run(const Scalar& x)
+ {
+ return x;
+ }
+};
+
+template<typename Scalar>
+struct conj_impl<Scalar,true>
+{
+ EIGEN_DEVICE_FUNC
+ static inline Scalar run(const Scalar& x)
+ {
+ using std::conj;
+ return conj(x);
+ }
+};
+
+template<typename Scalar>
+struct conj_retval
+{
+ typedef Scalar type;
+};
+
+/****************************************************************************
+* Implementation of abs2 *
+****************************************************************************/
+
+template<typename Scalar,bool IsComplex>
+struct abs2_impl_default
+{
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ EIGEN_DEVICE_FUNC
+ static inline RealScalar run(const Scalar& x)
+ {
+ return x*x;
+ }
+};
+
+template<typename Scalar>
+struct abs2_impl_default<Scalar, true> // IsComplex
+{
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ EIGEN_DEVICE_FUNC
+ static inline RealScalar run(const Scalar& x)
+ {
+ return real(x)*real(x) + imag(x)*imag(x);
+ }
+};
+
+template<typename Scalar>
+struct abs2_impl
+{
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ EIGEN_DEVICE_FUNC
+ static inline RealScalar run(const Scalar& x)
+ {
+ return abs2_impl_default<Scalar,NumTraits<Scalar>::IsComplex>::run(x);
+ }
+};
+
+template<typename Scalar>
+struct abs2_retval
+{
+ typedef typename NumTraits<Scalar>::Real type;
+};
+
+/****************************************************************************
+* Implementation of norm1 *
+****************************************************************************/
+
+template<typename Scalar, bool IsComplex>
+struct norm1_default_impl
+{
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ EIGEN_DEVICE_FUNC
+ static inline RealScalar run(const Scalar& x)
+ {
+ EIGEN_USING_STD_MATH(abs);
+ return abs(real(x)) + abs(imag(x));
+ }
+};
+
+template<typename Scalar>
+struct norm1_default_impl<Scalar, false>
+{
+ EIGEN_DEVICE_FUNC
+ static inline Scalar run(const Scalar& x)
+ {
+ EIGEN_USING_STD_MATH(abs);
+ return abs(x);
+ }
+};
+
+template<typename Scalar>
+struct norm1_impl : norm1_default_impl<Scalar, NumTraits<Scalar>::IsComplex> {};
+
+template<typename Scalar>
+struct norm1_retval
+{
+ typedef typename NumTraits<Scalar>::Real type;
+};
+
+/****************************************************************************
+* Implementation of hypot *
+****************************************************************************/
+
+template<typename Scalar>
+struct hypot_impl
+{
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ static inline RealScalar run(const Scalar& x, const Scalar& y)
+ {
+ EIGEN_USING_STD_MATH(abs);
+ EIGEN_USING_STD_MATH(sqrt);
+ RealScalar _x = abs(x);
+ RealScalar _y = abs(y);
+ Scalar p, qp;
+ if(_x>_y)
+ {
+ p = _x;
+ qp = _y / p;
+ }
+ else
+ {
+ p = _y;
+ qp = _x / p;
+ }
+ if(p==RealScalar(0)) return RealScalar(0);
+ return p * sqrt(RealScalar(1) + qp*qp);
+ }
+};
+
+template<typename Scalar>
+struct hypot_retval
+{
+ typedef typename NumTraits<Scalar>::Real type;
+};
+
+/****************************************************************************
+* Implementation of cast *
+****************************************************************************/
+
+template<typename OldType, typename NewType>
+struct cast_impl
+{
+ EIGEN_DEVICE_FUNC
+ static inline NewType run(const OldType& x)
+ {
+ return static_cast<NewType>(x);
+ }
+};
+
+// here, for once, we're plainly returning NewType: we don't want cast to do weird things.
+
+template<typename OldType, typename NewType>
+EIGEN_DEVICE_FUNC
+inline NewType cast(const OldType& x)
+{
+ return cast_impl<OldType, NewType>::run(x);
+}
+
+/****************************************************************************
+* Implementation of round *
+****************************************************************************/
+
+#if EIGEN_HAS_CXX11_MATH
+ template<typename Scalar>
+ struct round_impl {
+ static inline Scalar run(const Scalar& x)
+ {
+ EIGEN_STATIC_ASSERT((!NumTraits<Scalar>::IsComplex), NUMERIC_TYPE_MUST_BE_REAL)
+ using std::round;
+ return round(x);
+ }
+ };
+#else
+ template<typename Scalar>
+ struct round_impl
+ {
+ static inline Scalar run(const Scalar& x)
+ {
+ EIGEN_STATIC_ASSERT((!NumTraits<Scalar>::IsComplex), NUMERIC_TYPE_MUST_BE_REAL)
+ EIGEN_USING_STD_MATH(floor);
+ EIGEN_USING_STD_MATH(ceil);
+ return (x > Scalar(0)) ? floor(x + Scalar(0.5)) : ceil(x - Scalar(0.5));
+ }
+ };
+#endif
+
+template<typename Scalar>
+struct round_retval
+{
+ typedef Scalar type;
+};
+
+/****************************************************************************
+* Implementation of arg *
+****************************************************************************/
+
+#if EIGEN_HAS_CXX11_MATH
+ template<typename Scalar>
+ struct arg_impl {
+ static inline Scalar run(const Scalar& x)
+ {
+ EIGEN_USING_STD_MATH(arg);
+ return arg(x);
+ }
+ };
+#else
+ template<typename Scalar, bool IsComplex = NumTraits<Scalar>::IsComplex>
+ struct arg_default_impl
+ {
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ EIGEN_DEVICE_FUNC
+ static inline RealScalar run(const Scalar& x)
+ {
+ return (x < Scalar(0)) ? Scalar(EIGEN_PI) : Scalar(0); }
+ };
+
+ template<typename Scalar>
+ struct arg_default_impl<Scalar,true>
+ {
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ EIGEN_DEVICE_FUNC
+ static inline RealScalar run(const Scalar& x)
+ {
+ EIGEN_USING_STD_MATH(arg);
+ return arg(x);
+ }
+ };
+
+ template<typename Scalar> struct arg_impl : arg_default_impl<Scalar> {};
+#endif
+
+template<typename Scalar>
+struct arg_retval
+{
+ typedef typename NumTraits<Scalar>::Real type;
+};
+
+/****************************************************************************
+* Implementation of log1p *
+****************************************************************************/
+
+namespace std_fallback {
+ // fallback log1p implementation in case there is no log1p(Scalar) function in namespace of Scalar,
+ // or that there is no suitable std::log1p function available
+ template<typename Scalar>
+ EIGEN_DEVICE_FUNC inline Scalar log1p(const Scalar& x) {
+ EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar)
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ EIGEN_USING_STD_MATH(log);
+ Scalar x1p = RealScalar(1) + x;
+ return ( x1p == Scalar(1) ) ? x : x * ( log(x1p) / (x1p - RealScalar(1)) );
+ }
+}
+
+template<typename Scalar>
+struct log1p_impl {
+ static inline Scalar run(const Scalar& x)
+ {
+ EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar)
+ #if EIGEN_HAS_CXX11_MATH
+ using std::log1p;
+ #endif
+ using std_fallback::log1p;
+ return log1p(x);
+ }
+};
+
+
+template<typename Scalar>
+struct log1p_retval
+{
+ typedef Scalar type;
+};
+
+/****************************************************************************
+* Implementation of pow *
+****************************************************************************/
+
+template<typename ScalarX,typename ScalarY, bool IsInteger = NumTraits<ScalarX>::IsInteger&&NumTraits<ScalarY>::IsInteger>
+struct pow_impl
+{
+ //typedef Scalar retval;
+ typedef typename ScalarBinaryOpTraits<ScalarX,ScalarY,internal::scalar_pow_op<ScalarX,ScalarY> >::ReturnType result_type;
+ static EIGEN_DEVICE_FUNC inline result_type run(const ScalarX& x, const ScalarY& y)
+ {
+ EIGEN_USING_STD_MATH(pow);
+ return pow(x, y);
+ }
+};
+
+template<typename ScalarX,typename ScalarY>
+struct pow_impl<ScalarX,ScalarY, true>
+{
+ typedef ScalarX result_type;
+ static EIGEN_DEVICE_FUNC inline ScalarX run(ScalarX x, ScalarY y)
+ {
+ ScalarX res(1);
+ eigen_assert(!NumTraits<ScalarY>::IsSigned || y >= 0);
+ if(y & 1) res *= x;
+ y >>= 1;
+ while(y)
+ {
+ x *= x;
+ if(y&1) res *= x;
+ y >>= 1;
+ }
+ return res;
+ }
+};
+
+/****************************************************************************
+* Implementation of random *
+****************************************************************************/
+
+template<typename Scalar,
+ bool IsComplex,
+ bool IsInteger>
+struct random_default_impl {};
+
+template<typename Scalar>
+struct random_impl : random_default_impl<Scalar, NumTraits<Scalar>::IsComplex, NumTraits<Scalar>::IsInteger> {};
+
+template<typename Scalar>
+struct random_retval
+{
+ typedef Scalar type;
+};
+
+template<typename Scalar> inline EIGEN_MATHFUNC_RETVAL(random, Scalar) random(const Scalar& x, const Scalar& y);
+template<typename Scalar> inline EIGEN_MATHFUNC_RETVAL(random, Scalar) random();
+
+template<typename Scalar>
+struct random_default_impl<Scalar, false, false>
+{
+ static inline Scalar run(const Scalar& x, const Scalar& y)
+ {
+ return x + (y-x) * Scalar(std::rand()) / Scalar(RAND_MAX);
+ }
+ static inline Scalar run()
+ {
+ return run(Scalar(NumTraits<Scalar>::IsSigned ? -1 : 0), Scalar(1));
+ }
+};
+
+enum {
+ meta_floor_log2_terminate,
+ meta_floor_log2_move_up,
+ meta_floor_log2_move_down,
+ meta_floor_log2_bogus
+};
+
+template<unsigned int n, int lower, int upper> struct meta_floor_log2_selector
+{
+ enum { middle = (lower + upper) / 2,
+ value = (upper <= lower + 1) ? int(meta_floor_log2_terminate)
+ : (n < (1 << middle)) ? int(meta_floor_log2_move_down)
+ : (n==0) ? int(meta_floor_log2_bogus)
+ : int(meta_floor_log2_move_up)
+ };
+};
+
+template<unsigned int n,
+ int lower = 0,
+ int upper = sizeof(unsigned int) * CHAR_BIT - 1,
+ int selector = meta_floor_log2_selector<n, lower, upper>::value>
+struct meta_floor_log2 {};
+
+template<unsigned int n, int lower, int upper>
+struct meta_floor_log2<n, lower, upper, meta_floor_log2_move_down>
+{
+ enum { value = meta_floor_log2<n, lower, meta_floor_log2_selector<n, lower, upper>::middle>::value };
+};
+
+template<unsigned int n, int lower, int upper>
+struct meta_floor_log2<n, lower, upper, meta_floor_log2_move_up>
+{
+ enum { value = meta_floor_log2<n, meta_floor_log2_selector<n, lower, upper>::middle, upper>::value };
+};
+
+template<unsigned int n, int lower, int upper>
+struct meta_floor_log2<n, lower, upper, meta_floor_log2_terminate>
+{
+ enum { value = (n >= ((unsigned int)(1) << (lower+1))) ? lower+1 : lower };
+};
+
+template<unsigned int n, int lower, int upper>
+struct meta_floor_log2<n, lower, upper, meta_floor_log2_bogus>
+{
+ // no value, error at compile time
+};
+
+template<typename Scalar>
+struct random_default_impl<Scalar, false, true>
+{
+ static inline Scalar run(const Scalar& x, const Scalar& y)
+ {
+ typedef typename conditional<NumTraits<Scalar>::IsSigned,std::ptrdiff_t,std::size_t>::type ScalarX;
+ if(y<x)
+ return x;
+ // the following difference might overflow on a 32 bits system,
+ // but since y>=x the result converted to an unsigned long is still correct.
+ std::size_t range = ScalarX(y)-ScalarX(x);
+ std::size_t offset = 0;
+ // rejection sampling
+ std::size_t divisor = 1;
+ std::size_t multiplier = 1;
+ if(range<RAND_MAX) divisor = (std::size_t(RAND_MAX)+1)/(range+1);
+ else multiplier = 1 + range/(std::size_t(RAND_MAX)+1);
+ do {
+ offset = (std::size_t(std::rand()) * multiplier) / divisor;
+ } while (offset > range);
+ return Scalar(ScalarX(x) + offset);
+ }
+
+ static inline Scalar run()
+ {
+#ifdef EIGEN_MAKING_DOCS
+ return run(Scalar(NumTraits<Scalar>::IsSigned ? -10 : 0), Scalar(10));
+#else
+ enum { rand_bits = meta_floor_log2<(unsigned int)(RAND_MAX)+1>::value,
+ scalar_bits = sizeof(Scalar) * CHAR_BIT,
+ shift = EIGEN_PLAIN_ENUM_MAX(0, int(rand_bits) - int(scalar_bits)),
+ offset = NumTraits<Scalar>::IsSigned ? (1 << (EIGEN_PLAIN_ENUM_MIN(rand_bits,scalar_bits)-1)) : 0
+ };
+ return Scalar((std::rand() >> shift) - offset);
+#endif
+ }
+};
+
+template<typename Scalar>
+struct random_default_impl<Scalar, true, false>
+{
+ static inline Scalar run(const Scalar& x, const Scalar& y)
+ {
+ return Scalar(random(real(x), real(y)),
+ random(imag(x), imag(y)));
+ }
+ static inline Scalar run()
+ {
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ return Scalar(random<RealScalar>(), random<RealScalar>());
+ }
+};
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(random, Scalar) random(const Scalar& x, const Scalar& y)
+{
+ return EIGEN_MATHFUNC_IMPL(random, Scalar)::run(x, y);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(random, Scalar) random()
+{
+ return EIGEN_MATHFUNC_IMPL(random, Scalar)::run();
+}
+
+// Implementatin of is* functions
+
+// std::is* do not work with fast-math and gcc, std::is* are available on MSVC 2013 and newer, as well as in clang.
+#if (EIGEN_HAS_CXX11_MATH && !(EIGEN_COMP_GNUC_STRICT && __FINITE_MATH_ONLY__)) || (EIGEN_COMP_MSVC>=1800) || (EIGEN_COMP_CLANG)
+#define EIGEN_USE_STD_FPCLASSIFY 1
+#else
+#define EIGEN_USE_STD_FPCLASSIFY 0
+#endif
+
+template<typename T>
+EIGEN_DEVICE_FUNC
+typename internal::enable_if<internal::is_integral<T>::value,bool>::type
+isnan_impl(const T&) { return false; }
+
+template<typename T>
+EIGEN_DEVICE_FUNC
+typename internal::enable_if<internal::is_integral<T>::value,bool>::type
+isinf_impl(const T&) { return false; }
+
+template<typename T>
+EIGEN_DEVICE_FUNC
+typename internal::enable_if<internal::is_integral<T>::value,bool>::type
+isfinite_impl(const T&) { return true; }
+
+template<typename T>
+EIGEN_DEVICE_FUNC
+typename internal::enable_if<(!internal::is_integral<T>::value)&&(!NumTraits<T>::IsComplex),bool>::type
+isfinite_impl(const T& x)
+{
+ #ifdef __CUDA_ARCH__
+ return (::isfinite)(x);
+ #elif EIGEN_USE_STD_FPCLASSIFY
+ using std::isfinite;
+ return isfinite EIGEN_NOT_A_MACRO (x);
+ #else
+ return x<=NumTraits<T>::highest() && x>=NumTraits<T>::lowest();
+ #endif
+}
+
+template<typename T>
+EIGEN_DEVICE_FUNC
+typename internal::enable_if<(!internal::is_integral<T>::value)&&(!NumTraits<T>::IsComplex),bool>::type
+isinf_impl(const T& x)
+{
+ #ifdef __CUDA_ARCH__
+ return (::isinf)(x);
+ #elif EIGEN_USE_STD_FPCLASSIFY
+ using std::isinf;
+ return isinf EIGEN_NOT_A_MACRO (x);
+ #else
+ return x>NumTraits<T>::highest() || x<NumTraits<T>::lowest();
+ #endif
+}
+
+template<typename T>
+EIGEN_DEVICE_FUNC
+typename internal::enable_if<(!internal::is_integral<T>::value)&&(!NumTraits<T>::IsComplex),bool>::type
+isnan_impl(const T& x)
+{
+ #ifdef __CUDA_ARCH__
+ return (::isnan)(x);
+ #elif EIGEN_USE_STD_FPCLASSIFY
+ using std::isnan;
+ return isnan EIGEN_NOT_A_MACRO (x);
+ #else
+ return x != x;
+ #endif
+}
+
+#if (!EIGEN_USE_STD_FPCLASSIFY)
+
+#if EIGEN_COMP_MSVC
+
+template<typename T> EIGEN_DEVICE_FUNC bool isinf_msvc_helper(T x)
+{
+ return _fpclass(x)==_FPCLASS_NINF || _fpclass(x)==_FPCLASS_PINF;
+}
+
+//MSVC defines a _isnan builtin function, but for double only
+EIGEN_DEVICE_FUNC inline bool isnan_impl(const long double& x) { return _isnan(x)!=0; }
+EIGEN_DEVICE_FUNC inline bool isnan_impl(const double& x) { return _isnan(x)!=0; }
+EIGEN_DEVICE_FUNC inline bool isnan_impl(const float& x) { return _isnan(x)!=0; }
+
+EIGEN_DEVICE_FUNC inline bool isinf_impl(const long double& x) { return isinf_msvc_helper(x); }
+EIGEN_DEVICE_FUNC inline bool isinf_impl(const double& x) { return isinf_msvc_helper(x); }
+EIGEN_DEVICE_FUNC inline bool isinf_impl(const float& x) { return isinf_msvc_helper(x); }
+
+#elif (defined __FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ && EIGEN_COMP_GNUC)
+
+#if EIGEN_GNUC_AT_LEAST(5,0)
+ #define EIGEN_TMP_NOOPT_ATTRIB EIGEN_DEVICE_FUNC inline __attribute__((optimize("no-finite-math-only")))
+#else
+ // NOTE the inline qualifier and noinline attribute are both needed: the former is to avoid linking issue (duplicate symbol),
+ // while the second prevent too aggressive optimizations in fast-math mode:
+ #define EIGEN_TMP_NOOPT_ATTRIB EIGEN_DEVICE_FUNC inline __attribute__((noinline,optimize("no-finite-math-only")))
+#endif
+
+template<> EIGEN_TMP_NOOPT_ATTRIB bool isnan_impl(const long double& x) { return __builtin_isnan(x); }
+template<> EIGEN_TMP_NOOPT_ATTRIB bool isnan_impl(const double& x) { return __builtin_isnan(x); }
+template<> EIGEN_TMP_NOOPT_ATTRIB bool isnan_impl(const float& x) { return __builtin_isnan(x); }
+template<> EIGEN_TMP_NOOPT_ATTRIB bool isinf_impl(const double& x) { return __builtin_isinf(x); }
+template<> EIGEN_TMP_NOOPT_ATTRIB bool isinf_impl(const float& x) { return __builtin_isinf(x); }
+template<> EIGEN_TMP_NOOPT_ATTRIB bool isinf_impl(const long double& x) { return __builtin_isinf(x); }
+
+#undef EIGEN_TMP_NOOPT_ATTRIB
+
+#endif
+
+#endif
+
+// The following overload are defined at the end of this file
+template<typename T> EIGEN_DEVICE_FUNC bool isfinite_impl(const std::complex<T>& x);
+template<typename T> EIGEN_DEVICE_FUNC bool isnan_impl(const std::complex<T>& x);
+template<typename T> EIGEN_DEVICE_FUNC bool isinf_impl(const std::complex<T>& x);
+
+template<typename T> T generic_fast_tanh_float(const T& a_x);
+
+} // end namespace internal
+
+/****************************************************************************
+* Generic math functions *
+****************************************************************************/
+
+namespace numext {
+
+#ifndef __CUDA_ARCH__
+template<typename T>
+EIGEN_DEVICE_FUNC
+EIGEN_ALWAYS_INLINE T mini(const T& x, const T& y)
+{
+ EIGEN_USING_STD_MATH(min);
+ return min EIGEN_NOT_A_MACRO (x,y);
+}
+
+template<typename T>
+EIGEN_DEVICE_FUNC
+EIGEN_ALWAYS_INLINE T maxi(const T& x, const T& y)
+{
+ EIGEN_USING_STD_MATH(max);
+ return max EIGEN_NOT_A_MACRO (x,y);
+}
+#else
+template<typename T>
+EIGEN_DEVICE_FUNC
+EIGEN_ALWAYS_INLINE T mini(const T& x, const T& y)
+{
+ return y < x ? y : x;
+}
+template<>
+EIGEN_DEVICE_FUNC
+EIGEN_ALWAYS_INLINE float mini(const float& x, const float& y)
+{
+ return fminf(x, y);
+}
+template<typename T>
+EIGEN_DEVICE_FUNC
+EIGEN_ALWAYS_INLINE T maxi(const T& x, const T& y)
+{
+ return x < y ? y : x;
+}
+template<>
+EIGEN_DEVICE_FUNC
+EIGEN_ALWAYS_INLINE float maxi(const float& x, const float& y)
+{
+ return fmaxf(x, y);
+}
+#endif
+
+
+template<typename Scalar>
+EIGEN_DEVICE_FUNC
+inline EIGEN_MATHFUNC_RETVAL(real, Scalar) real(const Scalar& x)
+{
+ return EIGEN_MATHFUNC_IMPL(real, Scalar)::run(x);
+}
+
+template<typename Scalar>
+EIGEN_DEVICE_FUNC
+inline typename internal::add_const_on_value_type< EIGEN_MATHFUNC_RETVAL(real_ref, Scalar) >::type real_ref(const Scalar& x)
+{
+ return internal::real_ref_impl<Scalar>::run(x);
+}
+
+template<typename Scalar>
+EIGEN_DEVICE_FUNC
+inline EIGEN_MATHFUNC_RETVAL(real_ref, Scalar) real_ref(Scalar& x)
+{
+ return EIGEN_MATHFUNC_IMPL(real_ref, Scalar)::run(x);
+}
+
+template<typename Scalar>
+EIGEN_DEVICE_FUNC
+inline EIGEN_MATHFUNC_RETVAL(imag, Scalar) imag(const Scalar& x)
+{
+ return EIGEN_MATHFUNC_IMPL(imag, Scalar)::run(x);
+}
+
+template<typename Scalar>
+EIGEN_DEVICE_FUNC
+inline EIGEN_MATHFUNC_RETVAL(arg, Scalar) arg(const Scalar& x)
+{
+ return EIGEN_MATHFUNC_IMPL(arg, Scalar)::run(x);
+}
+
+template<typename Scalar>
+EIGEN_DEVICE_FUNC
+inline typename internal::add_const_on_value_type< EIGEN_MATHFUNC_RETVAL(imag_ref, Scalar) >::type imag_ref(const Scalar& x)
+{
+ return internal::imag_ref_impl<Scalar>::run(x);
+}
+
+template<typename Scalar>
+EIGEN_DEVICE_FUNC
+inline EIGEN_MATHFUNC_RETVAL(imag_ref, Scalar) imag_ref(Scalar& x)
+{
+ return EIGEN_MATHFUNC_IMPL(imag_ref, Scalar)::run(x);
+}
+
+template<typename Scalar>
+EIGEN_DEVICE_FUNC
+inline EIGEN_MATHFUNC_RETVAL(conj, Scalar) conj(const Scalar& x)
+{
+ return EIGEN_MATHFUNC_IMPL(conj, Scalar)::run(x);
+}
+
+template<typename Scalar>
+EIGEN_DEVICE_FUNC
+inline EIGEN_MATHFUNC_RETVAL(abs2, Scalar) abs2(const Scalar& x)
+{
+ return EIGEN_MATHFUNC_IMPL(abs2, Scalar)::run(x);
+}
+
+template<typename Scalar>
+EIGEN_DEVICE_FUNC
+inline EIGEN_MATHFUNC_RETVAL(norm1, Scalar) norm1(const Scalar& x)
+{
+ return EIGEN_MATHFUNC_IMPL(norm1, Scalar)::run(x);
+}
+
+template<typename Scalar>
+EIGEN_DEVICE_FUNC
+inline EIGEN_MATHFUNC_RETVAL(hypot, Scalar) hypot(const Scalar& x, const Scalar& y)
+{
+ return EIGEN_MATHFUNC_IMPL(hypot, Scalar)::run(x, y);
+}
+
+template<typename Scalar>
+EIGEN_DEVICE_FUNC
+inline EIGEN_MATHFUNC_RETVAL(log1p, Scalar) log1p(const Scalar& x)
+{
+ return EIGEN_MATHFUNC_IMPL(log1p, Scalar)::run(x);
+}
+
+#ifdef __CUDACC__
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+float log1p(const float &x) { return ::log1pf(x); }
+
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+double log1p(const double &x) { return ::log1p(x); }
+#endif
+
+template<typename ScalarX,typename ScalarY>
+EIGEN_DEVICE_FUNC
+inline typename internal::pow_impl<ScalarX,ScalarY>::result_type pow(const ScalarX& x, const ScalarY& y)
+{
+ return internal::pow_impl<ScalarX,ScalarY>::run(x, y);
+}
+
+template<typename T> EIGEN_DEVICE_FUNC bool (isnan) (const T &x) { return internal::isnan_impl(x); }
+template<typename T> EIGEN_DEVICE_FUNC bool (isinf) (const T &x) { return internal::isinf_impl(x); }
+template<typename T> EIGEN_DEVICE_FUNC bool (isfinite)(const T &x) { return internal::isfinite_impl(x); }
+
+template<typename Scalar>
+EIGEN_DEVICE_FUNC
+inline EIGEN_MATHFUNC_RETVAL(round, Scalar) round(const Scalar& x)
+{
+ return EIGEN_MATHFUNC_IMPL(round, Scalar)::run(x);
+}
+
+template<typename T>
+EIGEN_DEVICE_FUNC
+T (floor)(const T& x)
+{
+ EIGEN_USING_STD_MATH(floor);
+ return floor(x);
+}
+
+#ifdef __CUDACC__
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+float floor(const float &x) { return ::floorf(x); }
+
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+double floor(const double &x) { return ::floor(x); }
+#endif
+
+template<typename T>
+EIGEN_DEVICE_FUNC
+T (ceil)(const T& x)
+{
+ EIGEN_USING_STD_MATH(ceil);
+ return ceil(x);
+}
+
+#ifdef __CUDACC__
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+float ceil(const float &x) { return ::ceilf(x); }
+
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+double ceil(const double &x) { return ::ceil(x); }
+#endif
+
+
+/** Log base 2 for 32 bits positive integers.
+ * Conveniently returns 0 for x==0. */
+inline int log2(int x)
+{
+ eigen_assert(x>=0);
+ unsigned int v(x);
+ static const int table[32] = { 0, 9, 1, 10, 13, 21, 2, 29, 11, 14, 16, 18, 22, 25, 3, 30, 8, 12, 20, 28, 15, 17, 24, 7, 19, 27, 23, 6, 26, 5, 4, 31 };
+ v |= v >> 1;
+ v |= v >> 2;
+ v |= v >> 4;
+ v |= v >> 8;
+ v |= v >> 16;
+ return table[(v * 0x07C4ACDDU) >> 27];
+}
+
+/** \returns the square root of \a x.
+ *
+ * It is essentially equivalent to \code using std::sqrt; return sqrt(x); \endcode,
+ * but slightly faster for float/double and some compilers (e.g., gcc), thanks to
+ * specializations when SSE is enabled.
+ *
+ * It's usage is justified in performance critical functions, like norm/normalize.
+ */
+template<typename T>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+T sqrt(const T &x)
+{
+ EIGEN_USING_STD_MATH(sqrt);
+ return sqrt(x);
+}
+
+template<typename T>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+T log(const T &x) {
+ EIGEN_USING_STD_MATH(log);
+ return log(x);
+}
+
+#ifdef __CUDACC__
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+float log(const float &x) { return ::logf(x); }
+
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+double log(const double &x) { return ::log(x); }
+#endif
+
+template<typename T>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+typename internal::enable_if<NumTraits<T>::IsSigned || NumTraits<T>::IsComplex,typename NumTraits<T>::Real>::type
+abs(const T &x) {
+ EIGEN_USING_STD_MATH(abs);
+ return abs(x);
+}
+
+template<typename T>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+typename internal::enable_if<!(NumTraits<T>::IsSigned || NumTraits<T>::IsComplex),typename NumTraits<T>::Real>::type
+abs(const T &x) {
+ return x;
+}
+
+#if defined(__SYCL_DEVICE_ONLY__)
+EIGEN_ALWAYS_INLINE float abs(float x) { return cl::sycl::fabs(x); }
+EIGEN_ALWAYS_INLINE double abs(double x) { return cl::sycl::fabs(x); }
+#endif // defined(__SYCL_DEVICE_ONLY__)
+
+#ifdef __CUDACC__
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+float abs(const float &x) { return ::fabsf(x); }
+
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+double abs(const double &x) { return ::fabs(x); }
+
+template <> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+float abs(const std::complex<float>& x) {
+ return ::hypotf(x.real(), x.imag());
+}
+
+template <> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+double abs(const std::complex<double>& x) {
+ return ::hypot(x.real(), x.imag());
+}
+#endif
+
+template<typename T>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+T exp(const T &x) {
+ EIGEN_USING_STD_MATH(exp);
+ return exp(x);
+}
+
+#ifdef __CUDACC__
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+float exp(const float &x) { return ::expf(x); }
+
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+double exp(const double &x) { return ::exp(x); }
+#endif
+
+template<typename T>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+T cos(const T &x) {
+ EIGEN_USING_STD_MATH(cos);
+ return cos(x);
+}
+
+#ifdef __CUDACC__
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+float cos(const float &x) { return ::cosf(x); }
+
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+double cos(const double &x) { return ::cos(x); }
+#endif
+
+template<typename T>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+T sin(const T &x) {
+ EIGEN_USING_STD_MATH(sin);
+ return sin(x);
+}
+
+#ifdef __CUDACC__
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+float sin(const float &x) { return ::sinf(x); }
+
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+double sin(const double &x) { return ::sin(x); }
+#endif
+
+template<typename T>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+T tan(const T &x) {
+ EIGEN_USING_STD_MATH(tan);
+ return tan(x);
+}
+
+#ifdef __CUDACC__
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+float tan(const float &x) { return ::tanf(x); }
+
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+double tan(const double &x) { return ::tan(x); }
+#endif
+
+template<typename T>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+T acos(const T &x) {
+ EIGEN_USING_STD_MATH(acos);
+ return acos(x);
+}
+
+#ifdef __CUDACC__
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+float acos(const float &x) { return ::acosf(x); }
+
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+double acos(const double &x) { return ::acos(x); }
+#endif
+
+template<typename T>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+T asin(const T &x) {
+ EIGEN_USING_STD_MATH(asin);
+ return asin(x);
+}
+
+#ifdef __CUDACC__
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+float asin(const float &x) { return ::asinf(x); }
+
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+double asin(const double &x) { return ::asin(x); }
+#endif
+
+template<typename T>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+T atan(const T &x) {
+ EIGEN_USING_STD_MATH(atan);
+ return atan(x);
+}
+
+#ifdef __CUDACC__
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+float atan(const float &x) { return ::atanf(x); }
+
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+double atan(const double &x) { return ::atan(x); }
+#endif
+
+
+template<typename T>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+T cosh(const T &x) {
+ EIGEN_USING_STD_MATH(cosh);
+ return cosh(x);
+}
+
+#ifdef __CUDACC__
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+float cosh(const float &x) { return ::coshf(x); }
+
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+double cosh(const double &x) { return ::cosh(x); }
+#endif
+
+template<typename T>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+T sinh(const T &x) {
+ EIGEN_USING_STD_MATH(sinh);
+ return sinh(x);
+}
+
+#ifdef __CUDACC__
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+float sinh(const float &x) { return ::sinhf(x); }
+
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+double sinh(const double &x) { return ::sinh(x); }
+#endif
+
+template<typename T>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+T tanh(const T &x) {
+ EIGEN_USING_STD_MATH(tanh);
+ return tanh(x);
+}
+
+#if (!defined(__CUDACC__)) && EIGEN_FAST_MATH
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+float tanh(float x) { return internal::generic_fast_tanh_float(x); }
+#endif
+
+#ifdef __CUDACC__
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+float tanh(const float &x) { return ::tanhf(x); }
+
+template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+double tanh(const double &x) { return ::tanh(x); }
+#endif
+
+template <typename T>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+T fmod(const T& a, const T& b) {
+ EIGEN_USING_STD_MATH(fmod);
+ return fmod(a, b);
+}
+
+#ifdef __CUDACC__
+template <>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+float fmod(const float& a, const float& b) {
+ return ::fmodf(a, b);
+}
+
+template <>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+double fmod(const double& a, const double& b) {
+ return ::fmod(a, b);
+}
+#endif
+
+} // end namespace numext
+
+namespace internal {
+
+template<typename T>
+EIGEN_DEVICE_FUNC bool isfinite_impl(const std::complex<T>& x)
+{
+ return (numext::isfinite)(numext::real(x)) && (numext::isfinite)(numext::imag(x));
+}
+
+template<typename T>
+EIGEN_DEVICE_FUNC bool isnan_impl(const std::complex<T>& x)
+{
+ return (numext::isnan)(numext::real(x)) || (numext::isnan)(numext::imag(x));
+}
+
+template<typename T>
+EIGEN_DEVICE_FUNC bool isinf_impl(const std::complex<T>& x)
+{
+ return ((numext::isinf)(numext::real(x)) || (numext::isinf)(numext::imag(x))) && (!(numext::isnan)(x));
+}
+
+/****************************************************************************
+* Implementation of fuzzy comparisons *
+****************************************************************************/
+
+template<typename Scalar,
+ bool IsComplex,
+ bool IsInteger>
+struct scalar_fuzzy_default_impl {};
+
+template<typename Scalar>
+struct scalar_fuzzy_default_impl<Scalar, false, false>
+{
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ template<typename OtherScalar> EIGEN_DEVICE_FUNC
+ static inline bool isMuchSmallerThan(const Scalar& x, const OtherScalar& y, const RealScalar& prec)
+ {
+ return numext::abs(x) <= numext::abs(y) * prec;
+ }
+ EIGEN_DEVICE_FUNC
+ static inline bool isApprox(const Scalar& x, const Scalar& y, const RealScalar& prec)
+ {
+ return numext::abs(x - y) <= numext::mini(numext::abs(x), numext::abs(y)) * prec;
+ }
+ EIGEN_DEVICE_FUNC
+ static inline bool isApproxOrLessThan(const Scalar& x, const Scalar& y, const RealScalar& prec)
+ {
+ return x <= y || isApprox(x, y, prec);
+ }
+};
+
+template<typename Scalar>
+struct scalar_fuzzy_default_impl<Scalar, false, true>
+{
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ template<typename OtherScalar> EIGEN_DEVICE_FUNC
+ static inline bool isMuchSmallerThan(const Scalar& x, const Scalar&, const RealScalar&)
+ {
+ return x == Scalar(0);
+ }
+ EIGEN_DEVICE_FUNC
+ static inline bool isApprox(const Scalar& x, const Scalar& y, const RealScalar&)
+ {
+ return x == y;
+ }
+ EIGEN_DEVICE_FUNC
+ static inline bool isApproxOrLessThan(const Scalar& x, const Scalar& y, const RealScalar&)
+ {
+ return x <= y;
+ }
+};
+
+template<typename Scalar>
+struct scalar_fuzzy_default_impl<Scalar, true, false>
+{
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ template<typename OtherScalar> EIGEN_DEVICE_FUNC
+ static inline bool isMuchSmallerThan(const Scalar& x, const OtherScalar& y, const RealScalar& prec)
+ {
+ return numext::abs2(x) <= numext::abs2(y) * prec * prec;
+ }
+ EIGEN_DEVICE_FUNC
+ static inline bool isApprox(const Scalar& x, const Scalar& y, const RealScalar& prec)
+ {
+ return numext::abs2(x - y) <= numext::mini(numext::abs2(x), numext::abs2(y)) * prec * prec;
+ }
+};
+
+template<typename Scalar>
+struct scalar_fuzzy_impl : scalar_fuzzy_default_impl<Scalar, NumTraits<Scalar>::IsComplex, NumTraits<Scalar>::IsInteger> {};
+
+template<typename Scalar, typename OtherScalar> EIGEN_DEVICE_FUNC
+inline bool isMuchSmallerThan(const Scalar& x, const OtherScalar& y,
+ const typename NumTraits<Scalar>::Real &precision = NumTraits<Scalar>::dummy_precision())
+{
+ return scalar_fuzzy_impl<Scalar>::template isMuchSmallerThan<OtherScalar>(x, y, precision);
+}
+
+template<typename Scalar> EIGEN_DEVICE_FUNC
+inline bool isApprox(const Scalar& x, const Scalar& y,
+ const typename NumTraits<Scalar>::Real &precision = NumTraits<Scalar>::dummy_precision())
+{
+ return scalar_fuzzy_impl<Scalar>::isApprox(x, y, precision);
+}
+
+template<typename Scalar> EIGEN_DEVICE_FUNC
+inline bool isApproxOrLessThan(const Scalar& x, const Scalar& y,
+ const typename NumTraits<Scalar>::Real &precision = NumTraits<Scalar>::dummy_precision())
+{
+ return scalar_fuzzy_impl<Scalar>::isApproxOrLessThan(x, y, precision);
+}
+
+/******************************************
+*** The special case of the bool type ***
+******************************************/
+
+template<> struct random_impl<bool>
+{
+ static inline bool run()
+ {
+ return random<int>(0,1)==0 ? false : true;
+ }
+};
+
+template<> struct scalar_fuzzy_impl<bool>
+{
+ typedef bool RealScalar;
+
+ template<typename OtherScalar> EIGEN_DEVICE_FUNC
+ static inline bool isMuchSmallerThan(const bool& x, const bool&, const bool&)
+ {
+ return !x;
+ }
+
+ EIGEN_DEVICE_FUNC
+ static inline bool isApprox(bool x, bool y, bool)
+ {
+ return x == y;
+ }
+
+ EIGEN_DEVICE_FUNC
+ static inline bool isApproxOrLessThan(const bool& x, const bool& y, const bool&)
+ {
+ return (!x) || y;
+ }
+
+};
+
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATHFUNCTIONS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/MathFunctionsImpl.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/MathFunctionsImpl.h
new file mode 100644
index 000000000..3c9ef22fa
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/MathFunctionsImpl.h
@@ -0,0 +1,78 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2014 Pedro Gonnet (pedro.gonnet@gmail.com)
+// Copyright (C) 2016 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATHFUNCTIONSIMPL_H
+#define EIGEN_MATHFUNCTIONSIMPL_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** \internal \returns the hyperbolic tan of \a a (coeff-wise)
+ Doesn't do anything fancy, just a 13/6-degree rational interpolant which
+ is accurate up to a couple of ulp in the range [-9, 9], outside of which
+ the tanh(x) = +/-1.
+
+ This implementation works on both scalars and packets.
+*/
+template<typename T>
+T generic_fast_tanh_float(const T& a_x)
+{
+ // Clamp the inputs to the range [-9, 9] since anything outside
+ // this range is +/-1.0f in single-precision.
+ const T plus_9 = pset1<T>(9.f);
+ const T minus_9 = pset1<T>(-9.f);
+ // NOTE GCC prior to 6.3 might improperly optimize this max/min
+ // step such that if a_x is nan, x will be either 9 or -9,
+ // and tanh will return 1 or -1 instead of nan.
+ // This is supposed to be fixed in gcc6.3,
+ // see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72867
+ const T x = pmax(minus_9,pmin(plus_9,a_x));
+ // The monomial coefficients of the numerator polynomial (odd).
+ const T alpha_1 = pset1<T>(4.89352455891786e-03f);
+ const T alpha_3 = pset1<T>(6.37261928875436e-04f);
+ const T alpha_5 = pset1<T>(1.48572235717979e-05f);
+ const T alpha_7 = pset1<T>(5.12229709037114e-08f);
+ const T alpha_9 = pset1<T>(-8.60467152213735e-11f);
+ const T alpha_11 = pset1<T>(2.00018790482477e-13f);
+ const T alpha_13 = pset1<T>(-2.76076847742355e-16f);
+
+ // The monomial coefficients of the denominator polynomial (even).
+ const T beta_0 = pset1<T>(4.89352518554385e-03f);
+ const T beta_2 = pset1<T>(2.26843463243900e-03f);
+ const T beta_4 = pset1<T>(1.18534705686654e-04f);
+ const T beta_6 = pset1<T>(1.19825839466702e-06f);
+
+ // Since the polynomials are odd/even, we need x^2.
+ const T x2 = pmul(x, x);
+
+ // Evaluate the numerator polynomial p.
+ T p = pmadd(x2, alpha_13, alpha_11);
+ p = pmadd(x2, p, alpha_9);
+ p = pmadd(x2, p, alpha_7);
+ p = pmadd(x2, p, alpha_5);
+ p = pmadd(x2, p, alpha_3);
+ p = pmadd(x2, p, alpha_1);
+ p = pmul(x, p);
+
+ // Evaluate the denominator polynomial p.
+ T q = pmadd(x2, beta_6, beta_4);
+ q = pmadd(x2, q, beta_2);
+ q = pmadd(x2, q, beta_0);
+
+ // Divide the numerator by the denominator.
+ return pdiv(p, q);
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATHFUNCTIONSIMPL_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Matrix.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Matrix.h
new file mode 100644
index 000000000..90c336d8c
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Matrix.h
@@ -0,0 +1,461 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATRIX_H
+#define EIGEN_MATRIX_H
+
+namespace Eigen {
+
+namespace internal {
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+struct traits<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
+{
+private:
+ enum { size = internal::size_at_compile_time<_Rows,_Cols>::ret };
+ typedef typename find_best_packet<_Scalar,size>::type PacketScalar;
+ enum {
+ row_major_bit = _Options&RowMajor ? RowMajorBit : 0,
+ is_dynamic_size_storage = _MaxRows==Dynamic || _MaxCols==Dynamic,
+ max_size = is_dynamic_size_storage ? Dynamic : _MaxRows*_MaxCols,
+ default_alignment = compute_default_alignment<_Scalar,max_size>::value,
+ actual_alignment = ((_Options&DontAlign)==0) ? default_alignment : 0,
+ required_alignment = unpacket_traits<PacketScalar>::alignment,
+ packet_access_bit = (packet_traits<_Scalar>::Vectorizable && (EIGEN_UNALIGNED_VECTORIZE || (actual_alignment>=required_alignment))) ? PacketAccessBit : 0
+ };
+
+public:
+ typedef _Scalar Scalar;
+ typedef Dense StorageKind;
+ typedef Eigen::Index StorageIndex;
+ typedef MatrixXpr XprKind;
+ enum {
+ RowsAtCompileTime = _Rows,
+ ColsAtCompileTime = _Cols,
+ MaxRowsAtCompileTime = _MaxRows,
+ MaxColsAtCompileTime = _MaxCols,
+ Flags = compute_matrix_flags<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::ret,
+ Options = _Options,
+ InnerStrideAtCompileTime = 1,
+ OuterStrideAtCompileTime = (Options&RowMajor) ? ColsAtCompileTime : RowsAtCompileTime,
+
+ // FIXME, the following flag in only used to define NeedsToAlign in PlainObjectBase
+ EvaluatorFlags = LinearAccessBit | DirectAccessBit | packet_access_bit | row_major_bit,
+ Alignment = actual_alignment
+ };
+};
+}
+
+/** \class Matrix
+ * \ingroup Core_Module
+ *
+ * \brief The matrix class, also used for vectors and row-vectors
+ *
+ * The %Matrix class is the work-horse for all \em dense (\ref dense "note") matrices and vectors within Eigen.
+ * Vectors are matrices with one column, and row-vectors are matrices with one row.
+ *
+ * The %Matrix class encompasses \em both fixed-size and dynamic-size objects (\ref fixedsize "note").
+ *
+ * The first three template parameters are required:
+ * \tparam _Scalar Numeric type, e.g. float, double, int or std::complex<float>.
+ * User defined scalar types are supported as well (see \ref user_defined_scalars "here").
+ * \tparam _Rows Number of rows, or \b Dynamic
+ * \tparam _Cols Number of columns, or \b Dynamic
+ *
+ * The remaining template parameters are optional -- in most cases you don't have to worry about them.
+ * \tparam _Options A combination of either \b #RowMajor or \b #ColMajor, and of either
+ * \b #AutoAlign or \b #DontAlign.
+ * The former controls \ref TopicStorageOrders "storage order", and defaults to column-major. The latter controls alignment, which is required
+ * for vectorization. It defaults to aligning matrices except for fixed sizes that aren't a multiple of the packet size.
+ * \tparam _MaxRows Maximum number of rows. Defaults to \a _Rows (\ref maxrows "note").
+ * \tparam _MaxCols Maximum number of columns. Defaults to \a _Cols (\ref maxrows "note").
+ *
+ * Eigen provides a number of typedefs covering the usual cases. Here are some examples:
+ *
+ * \li \c Matrix2d is a 2x2 square matrix of doubles (\c Matrix<double, 2, 2>)
+ * \li \c Vector4f is a vector of 4 floats (\c Matrix<float, 4, 1>)
+ * \li \c RowVector3i is a row-vector of 3 ints (\c Matrix<int, 1, 3>)
+ *
+ * \li \c MatrixXf is a dynamic-size matrix of floats (\c Matrix<float, Dynamic, Dynamic>)
+ * \li \c VectorXf is a dynamic-size vector of floats (\c Matrix<float, Dynamic, 1>)
+ *
+ * \li \c Matrix2Xf is a partially fixed-size (dynamic-size) matrix of floats (\c Matrix<float, 2, Dynamic>)
+ * \li \c MatrixX3d is a partially dynamic-size (fixed-size) matrix of double (\c Matrix<double, Dynamic, 3>)
+ *
+ * See \link matrixtypedefs this page \endlink for a complete list of predefined \em %Matrix and \em Vector typedefs.
+ *
+ * You can access elements of vectors and matrices using normal subscripting:
+ *
+ * \code
+ * Eigen::VectorXd v(10);
+ * v[0] = 0.1;
+ * v[1] = 0.2;
+ * v(0) = 0.3;
+ * v(1) = 0.4;
+ *
+ * Eigen::MatrixXi m(10, 10);
+ * m(0, 1) = 1;
+ * m(0, 2) = 2;
+ * m(0, 3) = 3;
+ * \endcode
+ *
+ * This class can be extended with the help of the plugin mechanism described on the page
+ * \ref TopicCustomizing_Plugins by defining the preprocessor symbol \c EIGEN_MATRIX_PLUGIN.
+ *
+ * <i><b>Some notes:</b></i>
+ *
+ * <dl>
+ * <dt><b>\anchor dense Dense versus sparse:</b></dt>
+ * <dd>This %Matrix class handles dense, not sparse matrices and vectors. For sparse matrices and vectors, see the Sparse module.
+ *
+ * Dense matrices and vectors are plain usual arrays of coefficients. All the coefficients are stored, in an ordinary contiguous array.
+ * This is unlike Sparse matrices and vectors where the coefficients are stored as a list of nonzero coefficients.</dd>
+ *
+ * <dt><b>\anchor fixedsize Fixed-size versus dynamic-size:</b></dt>
+ * <dd>Fixed-size means that the numbers of rows and columns are known are compile-time. In this case, Eigen allocates the array
+ * of coefficients as a fixed-size array, as a class member. This makes sense for very small matrices, typically up to 4x4, sometimes up
+ * to 16x16. Larger matrices should be declared as dynamic-size even if one happens to know their size at compile-time.
+ *
+ * Dynamic-size means that the numbers of rows or columns are not necessarily known at compile-time. In this case they are runtime
+ * variables, and the array of coefficients is allocated dynamically on the heap.
+ *
+ * Note that \em dense matrices, be they Fixed-size or Dynamic-size, <em>do not</em> expand dynamically in the sense of a std::map.
+ * If you want this behavior, see the Sparse module.</dd>
+ *
+ * <dt><b>\anchor maxrows _MaxRows and _MaxCols:</b></dt>
+ * <dd>In most cases, one just leaves these parameters to the default values.
+ * These parameters mean the maximum size of rows and columns that the matrix may have. They are useful in cases
+ * when the exact numbers of rows and columns are not known are compile-time, but it is known at compile-time that they cannot
+ * exceed a certain value. This happens when taking dynamic-size blocks inside fixed-size matrices: in this case _MaxRows and _MaxCols
+ * are the dimensions of the original matrix, while _Rows and _Cols are Dynamic.</dd>
+ * </dl>
+ *
+ * <i><b>ABI and storage layout</b></i>
+ *
+ * The table below summarizes the ABI of some possible Matrix instances which is fixed thorough the lifetime of Eigen 3.
+ * <table class="manual">
+ * <tr><th>Matrix type</th><th>Equivalent C structure</th></tr>
+ * <tr><td>\code Matrix<T,Dynamic,Dynamic> \endcode</td><td>\code
+ * struct {
+ * T *data; // with (size_t(data)%EIGEN_MAX_ALIGN_BYTES)==0
+ * Eigen::Index rows, cols;
+ * };
+ * \endcode</td></tr>
+ * <tr class="alt"><td>\code
+ * Matrix<T,Dynamic,1>
+ * Matrix<T,1,Dynamic> \endcode</td><td>\code
+ * struct {
+ * T *data; // with (size_t(data)%EIGEN_MAX_ALIGN_BYTES)==0
+ * Eigen::Index size;
+ * };
+ * \endcode</td></tr>
+ * <tr><td>\code Matrix<T,Rows,Cols> \endcode</td><td>\code
+ * struct {
+ * T data[Rows*Cols]; // with (size_t(data)%A(Rows*Cols*sizeof(T)))==0
+ * };
+ * \endcode</td></tr>
+ * <tr class="alt"><td>\code Matrix<T,Dynamic,Dynamic,0,MaxRows,MaxCols> \endcode</td><td>\code
+ * struct {
+ * T data[MaxRows*MaxCols]; // with (size_t(data)%A(MaxRows*MaxCols*sizeof(T)))==0
+ * Eigen::Index rows, cols;
+ * };
+ * \endcode</td></tr>
+ * </table>
+ * Note that in this table Rows, Cols, MaxRows and MaxCols are all positive integers. A(S) is defined to the largest possible power-of-two
+ * smaller to EIGEN_MAX_STATIC_ALIGN_BYTES.
+ *
+ * \see MatrixBase for the majority of the API methods for matrices, \ref TopicClassHierarchy,
+ * \ref TopicStorageOrders
+ */
+
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+class Matrix
+ : public PlainObjectBase<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
+{
+ public:
+
+ /** \brief Base class typedef.
+ * \sa PlainObjectBase
+ */
+ typedef PlainObjectBase<Matrix> Base;
+
+ enum { Options = _Options };
+
+ EIGEN_DENSE_PUBLIC_INTERFACE(Matrix)
+
+ typedef typename Base::PlainObject PlainObject;
+
+ using Base::base;
+ using Base::coeffRef;
+
+ /**
+ * \brief Assigns matrices to each other.
+ *
+ * \note This is a special case of the templated operator=. Its purpose is
+ * to prevent a default operator= from hiding the templated operator=.
+ *
+ * \callgraph
+ */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Matrix& operator=(const Matrix& other)
+ {
+ return Base::_set(other);
+ }
+
+ /** \internal
+ * \brief Copies the value of the expression \a other into \c *this with automatic resizing.
+ *
+ * *this might be resized to match the dimensions of \a other. If *this was a null matrix (not already initialized),
+ * it will be initialized.
+ *
+ * Note that copying a row-vector into a vector (and conversely) is allowed.
+ * The resizing, if any, is then done in the appropriate way so that row-vectors
+ * remain row-vectors and vectors remain vectors.
+ */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Matrix& operator=(const DenseBase<OtherDerived>& other)
+ {
+ return Base::_set(other);
+ }
+
+ /* Here, doxygen failed to copy the brief information when using \copydoc */
+
+ /**
+ * \brief Copies the generic expression \a other into *this.
+ * \copydetails DenseBase::operator=(const EigenBase<OtherDerived> &other)
+ */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Matrix& operator=(const EigenBase<OtherDerived> &other)
+ {
+ return Base::operator=(other);
+ }
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Matrix& operator=(const ReturnByValue<OtherDerived>& func)
+ {
+ return Base::operator=(func);
+ }
+
+ /** \brief Default constructor.
+ *
+ * For fixed-size matrices, does nothing.
+ *
+ * For dynamic-size matrices, creates an empty matrix of size 0. Does not allocate any array. Such a matrix
+ * is called a null matrix. This constructor is the unique way to create null matrices: resizing
+ * a matrix to 0 is not supported.
+ *
+ * \sa resize(Index,Index)
+ */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Matrix() : Base()
+ {
+ Base::_check_template_params();
+ EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+ }
+
+ // FIXME is it still needed
+ EIGEN_DEVICE_FUNC
+ explicit Matrix(internal::constructor_without_unaligned_array_assert)
+ : Base(internal::constructor_without_unaligned_array_assert())
+ { Base::_check_template_params(); EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED }
+
+#if EIGEN_HAS_RVALUE_REFERENCES
+ EIGEN_DEVICE_FUNC
+ Matrix(Matrix&& other) EIGEN_NOEXCEPT_IF(std::is_nothrow_move_constructible<Scalar>::value)
+ : Base(std::move(other))
+ {
+ Base::_check_template_params();
+ if (RowsAtCompileTime!=Dynamic && ColsAtCompileTime!=Dynamic)
+ Base::_set_noalias(other);
+ }
+ EIGEN_DEVICE_FUNC
+ Matrix& operator=(Matrix&& other) EIGEN_NOEXCEPT_IF(std::is_nothrow_move_assignable<Scalar>::value)
+ {
+ other.swap(*this);
+ return *this;
+ }
+#endif
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+
+ // This constructor is for both 1x1 matrices and dynamic vectors
+ template<typename T>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE explicit Matrix(const T& x)
+ {
+ Base::_check_template_params();
+ Base::template _init1<T>(x);
+ }
+
+ template<typename T0, typename T1>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Matrix(const T0& x, const T1& y)
+ {
+ Base::_check_template_params();
+ Base::template _init2<T0,T1>(x, y);
+ }
+ #else
+ /** \brief Constructs a fixed-sized matrix initialized with coefficients starting at \a data */
+ EIGEN_DEVICE_FUNC
+ explicit Matrix(const Scalar *data);
+
+ /** \brief Constructs a vector or row-vector with given dimension. \only_for_vectors
+ *
+ * This is useful for dynamic-size vectors. For fixed-size vectors,
+ * it is redundant to pass these parameters, so one should use the default constructor
+ * Matrix() instead.
+ *
+ * \warning This constructor is disabled for fixed-size \c 1x1 matrices. For instance,
+ * calling Matrix<double,1,1>(1) will call the initialization constructor: Matrix(const Scalar&).
+ * For fixed-size \c 1x1 matrices it is therefore recommended to use the default
+ * constructor Matrix() instead, especially when using one of the non standard
+ * \c EIGEN_INITIALIZE_MATRICES_BY_{ZERO,\c NAN} macros (see \ref TopicPreprocessorDirectives).
+ */
+ EIGEN_STRONG_INLINE explicit Matrix(Index dim);
+ /** \brief Constructs an initialized 1x1 matrix with the given coefficient */
+ Matrix(const Scalar& x);
+ /** \brief Constructs an uninitialized matrix with \a rows rows and \a cols columns.
+ *
+ * This is useful for dynamic-size matrices. For fixed-size matrices,
+ * it is redundant to pass these parameters, so one should use the default constructor
+ * Matrix() instead.
+ *
+ * \warning This constructor is disabled for fixed-size \c 1x2 and \c 2x1 vectors. For instance,
+ * calling Matrix2f(2,1) will call the initialization constructor: Matrix(const Scalar& x, const Scalar& y).
+ * For fixed-size \c 1x2 or \c 2x1 vectors it is therefore recommended to use the default
+ * constructor Matrix() instead, especially when using one of the non standard
+ * \c EIGEN_INITIALIZE_MATRICES_BY_{ZERO,\c NAN} macros (see \ref TopicPreprocessorDirectives).
+ */
+ EIGEN_DEVICE_FUNC
+ Matrix(Index rows, Index cols);
+
+ /** \brief Constructs an initialized 2D vector with given coefficients */
+ Matrix(const Scalar& x, const Scalar& y);
+ #endif
+
+ /** \brief Constructs an initialized 3D vector with given coefficients */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Matrix(const Scalar& x, const Scalar& y, const Scalar& z)
+ {
+ Base::_check_template_params();
+ EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Matrix, 3)
+ m_storage.data()[0] = x;
+ m_storage.data()[1] = y;
+ m_storage.data()[2] = z;
+ }
+ /** \brief Constructs an initialized 4D vector with given coefficients */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Matrix(const Scalar& x, const Scalar& y, const Scalar& z, const Scalar& w)
+ {
+ Base::_check_template_params();
+ EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Matrix, 4)
+ m_storage.data()[0] = x;
+ m_storage.data()[1] = y;
+ m_storage.data()[2] = z;
+ m_storage.data()[3] = w;
+ }
+
+
+ /** \brief Copy constructor */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Matrix(const Matrix& other) : Base(other)
+ { }
+
+ /** \brief Copy constructor for generic expressions.
+ * \sa MatrixBase::operator=(const EigenBase<OtherDerived>&)
+ */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Matrix(const EigenBase<OtherDerived> &other)
+ : Base(other.derived())
+ { }
+
+ EIGEN_DEVICE_FUNC inline Index innerStride() const { return 1; }
+ EIGEN_DEVICE_FUNC inline Index outerStride() const { return this->innerSize(); }
+
+ /////////// Geometry module ///////////
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ explicit Matrix(const RotationBase<OtherDerived,ColsAtCompileTime>& r);
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ Matrix& operator=(const RotationBase<OtherDerived,ColsAtCompileTime>& r);
+
+ // allow to extend Matrix outside Eigen
+ #ifdef EIGEN_MATRIX_PLUGIN
+ #include EIGEN_MATRIX_PLUGIN
+ #endif
+
+ protected:
+ template <typename Derived, typename OtherDerived, bool IsVector>
+ friend struct internal::conservative_resize_like_impl;
+
+ using Base::m_storage;
+};
+
+/** \defgroup matrixtypedefs Global matrix typedefs
+ *
+ * \ingroup Core_Module
+ *
+ * Eigen defines several typedef shortcuts for most common matrix and vector types.
+ *
+ * The general patterns are the following:
+ *
+ * \c MatrixSizeType where \c Size can be \c 2,\c 3,\c 4 for fixed size square matrices or \c X for dynamic size,
+ * and where \c Type can be \c i for integer, \c f for float, \c d for double, \c cf for complex float, \c cd
+ * for complex double.
+ *
+ * For example, \c Matrix3d is a fixed-size 3x3 matrix type of doubles, and \c MatrixXf is a dynamic-size matrix of floats.
+ *
+ * There are also \c VectorSizeType and \c RowVectorSizeType which are self-explanatory. For example, \c Vector4cf is
+ * a fixed-size vector of 4 complex floats.
+ *
+ * \sa class Matrix
+ */
+
+#define EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix) \
+/** \ingroup matrixtypedefs */ \
+typedef Matrix<Type, Size, Size> Matrix##SizeSuffix##TypeSuffix; \
+/** \ingroup matrixtypedefs */ \
+typedef Matrix<Type, Size, 1> Vector##SizeSuffix##TypeSuffix; \
+/** \ingroup matrixtypedefs */ \
+typedef Matrix<Type, 1, Size> RowVector##SizeSuffix##TypeSuffix;
+
+#define EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, Size) \
+/** \ingroup matrixtypedefs */ \
+typedef Matrix<Type, Size, Dynamic> Matrix##Size##X##TypeSuffix; \
+/** \ingroup matrixtypedefs */ \
+typedef Matrix<Type, Dynamic, Size> Matrix##X##Size##TypeSuffix;
+
+#define EIGEN_MAKE_TYPEDEFS_ALL_SIZES(Type, TypeSuffix) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 2, 2) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 3, 3) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 4, 4) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Dynamic, X) \
+EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 2) \
+EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 3) \
+EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 4)
+
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(int, i)
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(float, f)
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(double, d)
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(std::complex<float>, cf)
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(std::complex<double>, cd)
+
+#undef EIGEN_MAKE_TYPEDEFS_ALL_SIZES
+#undef EIGEN_MAKE_TYPEDEFS
+#undef EIGEN_MAKE_FIXED_TYPEDEFS
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATRIX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/MatrixBase.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/MatrixBase.h
new file mode 100644
index 000000000..ce412180a
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/MatrixBase.h
@@ -0,0 +1,530 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATRIXBASE_H
+#define EIGEN_MATRIXBASE_H
+
+namespace Eigen {
+
+/** \class MatrixBase
+ * \ingroup Core_Module
+ *
+ * \brief Base class for all dense matrices, vectors, and expressions
+ *
+ * This class is the base that is inherited by all matrix, vector, and related expression
+ * types. Most of the Eigen API is contained in this class, and its base classes. Other important
+ * classes for the Eigen API are Matrix, and VectorwiseOp.
+ *
+ * Note that some methods are defined in other modules such as the \ref LU_Module LU module
+ * for all functions related to matrix inversions.
+ *
+ * \tparam Derived is the derived type, e.g. a matrix type, or an expression, etc.
+ *
+ * When writing a function taking Eigen objects as argument, if you want your function
+ * to take as argument any matrix, vector, or expression, just let it take a
+ * MatrixBase argument. As an example, here is a function printFirstRow which, given
+ * a matrix, vector, or expression \a x, prints the first row of \a x.
+ *
+ * \code
+ template<typename Derived>
+ void printFirstRow(const Eigen::MatrixBase<Derived>& x)
+ {
+ cout << x.row(0) << endl;
+ }
+ * \endcode
+ *
+ * This class can be extended with the help of the plugin mechanism described on the page
+ * \ref TopicCustomizing_Plugins by defining the preprocessor symbol \c EIGEN_MATRIXBASE_PLUGIN.
+ *
+ * \sa \blank \ref TopicClassHierarchy
+ */
+template<typename Derived> class MatrixBase
+ : public DenseBase<Derived>
+{
+ public:
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ typedef MatrixBase StorageBaseType;
+ typedef typename internal::traits<Derived>::StorageKind StorageKind;
+ typedef typename internal::traits<Derived>::StorageIndex StorageIndex;
+ typedef typename internal::traits<Derived>::Scalar Scalar;
+ typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+
+ typedef DenseBase<Derived> Base;
+ using Base::RowsAtCompileTime;
+ using Base::ColsAtCompileTime;
+ using Base::SizeAtCompileTime;
+ using Base::MaxRowsAtCompileTime;
+ using Base::MaxColsAtCompileTime;
+ using Base::MaxSizeAtCompileTime;
+ using Base::IsVectorAtCompileTime;
+ using Base::Flags;
+
+ using Base::derived;
+ using Base::const_cast_derived;
+ using Base::rows;
+ using Base::cols;
+ using Base::size;
+ using Base::coeff;
+ using Base::coeffRef;
+ using Base::lazyAssign;
+ using Base::eval;
+ using Base::operator+=;
+ using Base::operator-=;
+ using Base::operator*=;
+ using Base::operator/=;
+
+ typedef typename Base::CoeffReturnType CoeffReturnType;
+ typedef typename Base::ConstTransposeReturnType ConstTransposeReturnType;
+ typedef typename Base::RowXpr RowXpr;
+ typedef typename Base::ColXpr ColXpr;
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** type of the equivalent square matrix */
+ typedef Matrix<Scalar,EIGEN_SIZE_MAX(RowsAtCompileTime,ColsAtCompileTime),
+ EIGEN_SIZE_MAX(RowsAtCompileTime,ColsAtCompileTime)> SquareMatrixType;
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+ /** \returns the size of the main diagonal, which is min(rows(),cols()).
+ * \sa rows(), cols(), SizeAtCompileTime. */
+ EIGEN_DEVICE_FUNC
+ inline Index diagonalSize() const { return (numext::mini)(rows(),cols()); }
+
+ typedef typename Base::PlainObject PlainObject;
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** \internal Represents a matrix with all coefficients equal to one another*/
+ typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,PlainObject> ConstantReturnType;
+ /** \internal the return type of MatrixBase::adjoint() */
+ typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
+ CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, ConstTransposeReturnType>,
+ ConstTransposeReturnType
+ >::type AdjointReturnType;
+ /** \internal Return type of eigenvalues() */
+ typedef Matrix<std::complex<RealScalar>, internal::traits<Derived>::ColsAtCompileTime, 1, ColMajor> EigenvaluesReturnType;
+ /** \internal the return type of identity */
+ typedef CwiseNullaryOp<internal::scalar_identity_op<Scalar>,PlainObject> IdentityReturnType;
+ /** \internal the return type of unit vectors */
+ typedef Block<const CwiseNullaryOp<internal::scalar_identity_op<Scalar>, SquareMatrixType>,
+ internal::traits<Derived>::RowsAtCompileTime,
+ internal::traits<Derived>::ColsAtCompileTime> BasisReturnType;
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+#define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::MatrixBase
+#define EIGEN_DOC_UNARY_ADDONS(X,Y)
+# include "../plugins/CommonCwiseUnaryOps.h"
+# include "../plugins/CommonCwiseBinaryOps.h"
+# include "../plugins/MatrixCwiseUnaryOps.h"
+# include "../plugins/MatrixCwiseBinaryOps.h"
+# ifdef EIGEN_MATRIXBASE_PLUGIN
+# include EIGEN_MATRIXBASE_PLUGIN
+# endif
+#undef EIGEN_CURRENT_STORAGE_BASE_CLASS
+#undef EIGEN_DOC_UNARY_ADDONS
+
+ /** Special case of the template operator=, in order to prevent the compiler
+ * from generating a default operator= (issue hit with g++ 4.1)
+ */
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Derived& operator=(const MatrixBase& other);
+
+ // We cannot inherit here via Base::operator= since it is causing
+ // trouble with MSVC.
+
+ template <typename OtherDerived>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Derived& operator=(const DenseBase<OtherDerived>& other);
+
+ template <typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ Derived& operator=(const EigenBase<OtherDerived>& other);
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ Derived& operator=(const ReturnByValue<OtherDerived>& other);
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Derived& operator+=(const MatrixBase<OtherDerived>& other);
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Derived& operator-=(const MatrixBase<OtherDerived>& other);
+
+#ifdef __CUDACC__
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ const Product<Derived,OtherDerived,LazyProduct>
+ operator*(const MatrixBase<OtherDerived> &other) const
+ { return this->lazyProduct(other); }
+#else
+
+ template<typename OtherDerived>
+ const Product<Derived,OtherDerived>
+ operator*(const MatrixBase<OtherDerived> &other) const;
+
+#endif
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ const Product<Derived,OtherDerived,LazyProduct>
+ lazyProduct(const MatrixBase<OtherDerived> &other) const;
+
+ template<typename OtherDerived>
+ Derived& operator*=(const EigenBase<OtherDerived>& other);
+
+ template<typename OtherDerived>
+ void applyOnTheLeft(const EigenBase<OtherDerived>& other);
+
+ template<typename OtherDerived>
+ void applyOnTheRight(const EigenBase<OtherDerived>& other);
+
+ template<typename DiagonalDerived>
+ EIGEN_DEVICE_FUNC
+ const Product<Derived, DiagonalDerived, LazyProduct>
+ operator*(const DiagonalBase<DiagonalDerived> &diagonal) const;
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ typename ScalarBinaryOpTraits<typename internal::traits<Derived>::Scalar,typename internal::traits<OtherDerived>::Scalar>::ReturnType
+ dot(const MatrixBase<OtherDerived>& other) const;
+
+ EIGEN_DEVICE_FUNC RealScalar squaredNorm() const;
+ EIGEN_DEVICE_FUNC RealScalar norm() const;
+ RealScalar stableNorm() const;
+ RealScalar blueNorm() const;
+ RealScalar hypotNorm() const;
+ EIGEN_DEVICE_FUNC const PlainObject normalized() const;
+ EIGEN_DEVICE_FUNC const PlainObject stableNormalized() const;
+ EIGEN_DEVICE_FUNC void normalize();
+ EIGEN_DEVICE_FUNC void stableNormalize();
+
+ EIGEN_DEVICE_FUNC const AdjointReturnType adjoint() const;
+ EIGEN_DEVICE_FUNC void adjointInPlace();
+
+ typedef Diagonal<Derived> DiagonalReturnType;
+ EIGEN_DEVICE_FUNC
+ DiagonalReturnType diagonal();
+
+ typedef typename internal::add_const<Diagonal<const Derived> >::type ConstDiagonalReturnType;
+ EIGEN_DEVICE_FUNC
+ ConstDiagonalReturnType diagonal() const;
+
+ template<int Index> struct DiagonalIndexReturnType { typedef Diagonal<Derived,Index> Type; };
+ template<int Index> struct ConstDiagonalIndexReturnType { typedef const Diagonal<const Derived,Index> Type; };
+
+ template<int Index>
+ EIGEN_DEVICE_FUNC
+ typename DiagonalIndexReturnType<Index>::Type diagonal();
+
+ template<int Index>
+ EIGEN_DEVICE_FUNC
+ typename ConstDiagonalIndexReturnType<Index>::Type diagonal() const;
+
+ typedef Diagonal<Derived,DynamicIndex> DiagonalDynamicIndexReturnType;
+ typedef typename internal::add_const<Diagonal<const Derived,DynamicIndex> >::type ConstDiagonalDynamicIndexReturnType;
+
+ EIGEN_DEVICE_FUNC
+ DiagonalDynamicIndexReturnType diagonal(Index index);
+ EIGEN_DEVICE_FUNC
+ ConstDiagonalDynamicIndexReturnType diagonal(Index index) const;
+
+ template<unsigned int Mode> struct TriangularViewReturnType { typedef TriangularView<Derived, Mode> Type; };
+ template<unsigned int Mode> struct ConstTriangularViewReturnType { typedef const TriangularView<const Derived, Mode> Type; };
+
+ template<unsigned int Mode>
+ EIGEN_DEVICE_FUNC
+ typename TriangularViewReturnType<Mode>::Type triangularView();
+ template<unsigned int Mode>
+ EIGEN_DEVICE_FUNC
+ typename ConstTriangularViewReturnType<Mode>::Type triangularView() const;
+
+ template<unsigned int UpLo> struct SelfAdjointViewReturnType { typedef SelfAdjointView<Derived, UpLo> Type; };
+ template<unsigned int UpLo> struct ConstSelfAdjointViewReturnType { typedef const SelfAdjointView<const Derived, UpLo> Type; };
+
+ template<unsigned int UpLo>
+ EIGEN_DEVICE_FUNC
+ typename SelfAdjointViewReturnType<UpLo>::Type selfadjointView();
+ template<unsigned int UpLo>
+ EIGEN_DEVICE_FUNC
+ typename ConstSelfAdjointViewReturnType<UpLo>::Type selfadjointView() const;
+
+ const SparseView<Derived> sparseView(const Scalar& m_reference = Scalar(0),
+ const typename NumTraits<Scalar>::Real& m_epsilon = NumTraits<Scalar>::dummy_precision()) const;
+ EIGEN_DEVICE_FUNC static const IdentityReturnType Identity();
+ EIGEN_DEVICE_FUNC static const IdentityReturnType Identity(Index rows, Index cols);
+ EIGEN_DEVICE_FUNC static const BasisReturnType Unit(Index size, Index i);
+ EIGEN_DEVICE_FUNC static const BasisReturnType Unit(Index i);
+ EIGEN_DEVICE_FUNC static const BasisReturnType UnitX();
+ EIGEN_DEVICE_FUNC static const BasisReturnType UnitY();
+ EIGEN_DEVICE_FUNC static const BasisReturnType UnitZ();
+ EIGEN_DEVICE_FUNC static const BasisReturnType UnitW();
+
+ EIGEN_DEVICE_FUNC
+ const DiagonalWrapper<const Derived> asDiagonal() const;
+ const PermutationWrapper<const Derived> asPermutation() const;
+
+ EIGEN_DEVICE_FUNC
+ Derived& setIdentity();
+ EIGEN_DEVICE_FUNC
+ Derived& setIdentity(Index rows, Index cols);
+
+ bool isIdentity(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+ bool isDiagonal(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+
+ bool isUpperTriangular(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+ bool isLowerTriangular(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+
+ template<typename OtherDerived>
+ bool isOrthogonal(const MatrixBase<OtherDerived>& other,
+ const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+ bool isUnitary(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+
+ /** \returns true if each coefficients of \c *this and \a other are all exactly equal.
+ * \warning When using floating point scalar values you probably should rather use a
+ * fuzzy comparison such as isApprox()
+ * \sa isApprox(), operator!= */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC inline bool operator==(const MatrixBase<OtherDerived>& other) const
+ { return cwiseEqual(other).all(); }
+
+ /** \returns true if at least one pair of coefficients of \c *this and \a other are not exactly equal to each other.
+ * \warning When using floating point scalar values you probably should rather use a
+ * fuzzy comparison such as isApprox()
+ * \sa isApprox(), operator== */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC inline bool operator!=(const MatrixBase<OtherDerived>& other) const
+ { return cwiseNotEqual(other).any(); }
+
+ NoAlias<Derived,Eigen::MatrixBase > noalias();
+
+ // TODO forceAlignedAccess is temporarily disabled
+ // Need to find a nicer workaround.
+ inline const Derived& forceAlignedAccess() const { return derived(); }
+ inline Derived& forceAlignedAccess() { return derived(); }
+ template<bool Enable> inline const Derived& forceAlignedAccessIf() const { return derived(); }
+ template<bool Enable> inline Derived& forceAlignedAccessIf() { return derived(); }
+
+ EIGEN_DEVICE_FUNC Scalar trace() const;
+
+ template<int p> EIGEN_DEVICE_FUNC RealScalar lpNorm() const;
+
+ EIGEN_DEVICE_FUNC MatrixBase<Derived>& matrix() { return *this; }
+ EIGEN_DEVICE_FUNC const MatrixBase<Derived>& matrix() const { return *this; }
+
+ /** \returns an \link Eigen::ArrayBase Array \endlink expression of this matrix
+ * \sa ArrayBase::matrix() */
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ArrayWrapper<Derived> array() { return ArrayWrapper<Derived>(derived()); }
+ /** \returns a const \link Eigen::ArrayBase Array \endlink expression of this matrix
+ * \sa ArrayBase::matrix() */
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const ArrayWrapper<const Derived> array() const { return ArrayWrapper<const Derived>(derived()); }
+
+/////////// LU module ///////////
+
+ inline const FullPivLU<PlainObject> fullPivLu() const;
+ inline const PartialPivLU<PlainObject> partialPivLu() const;
+
+ inline const PartialPivLU<PlainObject> lu() const;
+
+ inline const Inverse<Derived> inverse() const;
+
+ template<typename ResultType>
+ inline void computeInverseAndDetWithCheck(
+ ResultType& inverse,
+ typename ResultType::Scalar& determinant,
+ bool& invertible,
+ const RealScalar& absDeterminantThreshold = NumTraits<Scalar>::dummy_precision()
+ ) const;
+ template<typename ResultType>
+ inline void computeInverseWithCheck(
+ ResultType& inverse,
+ bool& invertible,
+ const RealScalar& absDeterminantThreshold = NumTraits<Scalar>::dummy_precision()
+ ) const;
+ Scalar determinant() const;
+
+/////////// Cholesky module ///////////
+
+ inline const LLT<PlainObject> llt() const;
+ inline const LDLT<PlainObject> ldlt() const;
+
+/////////// QR module ///////////
+
+ inline const HouseholderQR<PlainObject> householderQr() const;
+ inline const ColPivHouseholderQR<PlainObject> colPivHouseholderQr() const;
+ inline const FullPivHouseholderQR<PlainObject> fullPivHouseholderQr() const;
+ inline const CompleteOrthogonalDecomposition<PlainObject> completeOrthogonalDecomposition() const;
+
+/////////// Eigenvalues module ///////////
+
+ inline EigenvaluesReturnType eigenvalues() const;
+ inline RealScalar operatorNorm() const;
+
+/////////// SVD module ///////////
+
+ inline JacobiSVD<PlainObject> jacobiSvd(unsigned int computationOptions = 0) const;
+ inline BDCSVD<PlainObject> bdcSvd(unsigned int computationOptions = 0) const;
+
+/////////// Geometry module ///////////
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ /// \internal helper struct to form the return type of the cross product
+ template<typename OtherDerived> struct cross_product_return_type {
+ typedef typename ScalarBinaryOpTraits<typename internal::traits<Derived>::Scalar,typename internal::traits<OtherDerived>::Scalar>::ReturnType Scalar;
+ typedef Matrix<Scalar,MatrixBase::RowsAtCompileTime,MatrixBase::ColsAtCompileTime> type;
+ };
+ #endif // EIGEN_PARSED_BY_DOXYGEN
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ inline typename cross_product_return_type<OtherDerived>::type
+#else
+ inline PlainObject
+#endif
+ cross(const MatrixBase<OtherDerived>& other) const;
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ inline PlainObject cross3(const MatrixBase<OtherDerived>& other) const;
+
+ EIGEN_DEVICE_FUNC
+ inline PlainObject unitOrthogonal(void) const;
+
+ EIGEN_DEVICE_FUNC
+ inline Matrix<Scalar,3,1> eulerAngles(Index a0, Index a1, Index a2) const;
+
+ // put this as separate enum value to work around possible GCC 4.3 bug (?)
+ enum { HomogeneousReturnTypeDirection = ColsAtCompileTime==1&&RowsAtCompileTime==1 ? ((internal::traits<Derived>::Flags&RowMajorBit)==RowMajorBit ? Horizontal : Vertical)
+ : ColsAtCompileTime==1 ? Vertical : Horizontal };
+ typedef Homogeneous<Derived, HomogeneousReturnTypeDirection> HomogeneousReturnType;
+ EIGEN_DEVICE_FUNC
+ inline HomogeneousReturnType homogeneous() const;
+
+ enum {
+ SizeMinusOne = SizeAtCompileTime==Dynamic ? Dynamic : SizeAtCompileTime-1
+ };
+ typedef Block<const Derived,
+ internal::traits<Derived>::ColsAtCompileTime==1 ? SizeMinusOne : 1,
+ internal::traits<Derived>::ColsAtCompileTime==1 ? 1 : SizeMinusOne> ConstStartMinusOne;
+ typedef EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(ConstStartMinusOne,Scalar,quotient) HNormalizedReturnType;
+ EIGEN_DEVICE_FUNC
+ inline const HNormalizedReturnType hnormalized() const;
+
+////////// Householder module ///////////
+
+ void makeHouseholderInPlace(Scalar& tau, RealScalar& beta);
+ template<typename EssentialPart>
+ void makeHouseholder(EssentialPart& essential,
+ Scalar& tau, RealScalar& beta) const;
+ template<typename EssentialPart>
+ void applyHouseholderOnTheLeft(const EssentialPart& essential,
+ const Scalar& tau,
+ Scalar* workspace);
+ template<typename EssentialPart>
+ void applyHouseholderOnTheRight(const EssentialPart& essential,
+ const Scalar& tau,
+ Scalar* workspace);
+
+///////// Jacobi module /////////
+
+ template<typename OtherScalar>
+ void applyOnTheLeft(Index p, Index q, const JacobiRotation<OtherScalar>& j);
+ template<typename OtherScalar>
+ void applyOnTheRight(Index p, Index q, const JacobiRotation<OtherScalar>& j);
+
+///////// SparseCore module /////////
+
+ template<typename OtherDerived>
+ EIGEN_STRONG_INLINE const typename SparseMatrixBase<OtherDerived>::template CwiseProductDenseReturnType<Derived>::Type
+ cwiseProduct(const SparseMatrixBase<OtherDerived> &other) const
+ {
+ return other.cwiseProduct(derived());
+ }
+
+///////// MatrixFunctions module /////////
+
+ typedef typename internal::stem_function<Scalar>::type StemFunction;
+ const MatrixExponentialReturnValue<Derived> exp() const;
+ const MatrixFunctionReturnValue<Derived> matrixFunction(StemFunction f) const;
+ const MatrixFunctionReturnValue<Derived> cosh() const;
+ const MatrixFunctionReturnValue<Derived> sinh() const;
+ const MatrixFunctionReturnValue<Derived> cos() const;
+ const MatrixFunctionReturnValue<Derived> sin() const;
+ const MatrixSquareRootReturnValue<Derived> sqrt() const;
+ const MatrixLogarithmReturnValue<Derived> log() const;
+ const MatrixPowerReturnValue<Derived> pow(const RealScalar& p) const;
+ const MatrixComplexPowerReturnValue<Derived> pow(const std::complex<RealScalar>& p) const;
+
+ protected:
+ EIGEN_DEVICE_FUNC MatrixBase() : Base() {}
+
+ private:
+ EIGEN_DEVICE_FUNC explicit MatrixBase(int);
+ EIGEN_DEVICE_FUNC MatrixBase(int,int);
+ template<typename OtherDerived> EIGEN_DEVICE_FUNC explicit MatrixBase(const MatrixBase<OtherDerived>&);
+ protected:
+ // mixing arrays and matrices is not legal
+ template<typename OtherDerived> Derived& operator+=(const ArrayBase<OtherDerived>& )
+ {EIGEN_STATIC_ASSERT(std::ptrdiff_t(sizeof(typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES); return *this;}
+ // mixing arrays and matrices is not legal
+ template<typename OtherDerived> Derived& operator-=(const ArrayBase<OtherDerived>& )
+ {EIGEN_STATIC_ASSERT(std::ptrdiff_t(sizeof(typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES); return *this;}
+};
+
+
+/***************************************************************************
+* Implementation of matrix base methods
+***************************************************************************/
+
+/** replaces \c *this by \c *this * \a other.
+ *
+ * \returns a reference to \c *this
+ *
+ * Example: \include MatrixBase_applyOnTheRight.cpp
+ * Output: \verbinclude MatrixBase_applyOnTheRight.out
+ */
+template<typename Derived>
+template<typename OtherDerived>
+inline Derived&
+MatrixBase<Derived>::operator*=(const EigenBase<OtherDerived> &other)
+{
+ other.derived().applyThisOnTheRight(derived());
+ return derived();
+}
+
+/** replaces \c *this by \c *this * \a other. It is equivalent to MatrixBase::operator*=().
+ *
+ * Example: \include MatrixBase_applyOnTheRight.cpp
+ * Output: \verbinclude MatrixBase_applyOnTheRight.out
+ */
+template<typename Derived>
+template<typename OtherDerived>
+inline void MatrixBase<Derived>::applyOnTheRight(const EigenBase<OtherDerived> &other)
+{
+ other.derived().applyThisOnTheRight(derived());
+}
+
+/** replaces \c *this by \a other * \c *this.
+ *
+ * Example: \include MatrixBase_applyOnTheLeft.cpp
+ * Output: \verbinclude MatrixBase_applyOnTheLeft.out
+ */
+template<typename Derived>
+template<typename OtherDerived>
+inline void MatrixBase<Derived>::applyOnTheLeft(const EigenBase<OtherDerived> &other)
+{
+ other.derived().applyThisOnTheLeft(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATRIXBASE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/NestByValue.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/NestByValue.h
new file mode 100644
index 000000000..13adf070e
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/NestByValue.h
@@ -0,0 +1,110 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_NESTBYVALUE_H
+#define EIGEN_NESTBYVALUE_H
+
+namespace Eigen {
+
+namespace internal {
+template<typename ExpressionType>
+struct traits<NestByValue<ExpressionType> > : public traits<ExpressionType>
+{};
+}
+
+/** \class NestByValue
+ * \ingroup Core_Module
+ *
+ * \brief Expression which must be nested by value
+ *
+ * \tparam ExpressionType the type of the object of which we are requiring nesting-by-value
+ *
+ * This class is the return type of MatrixBase::nestByValue()
+ * and most of the time this is the only way it is used.
+ *
+ * \sa MatrixBase::nestByValue()
+ */
+template<typename ExpressionType> class NestByValue
+ : public internal::dense_xpr_base< NestByValue<ExpressionType> >::type
+{
+ public:
+
+ typedef typename internal::dense_xpr_base<NestByValue>::type Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(NestByValue)
+
+ EIGEN_DEVICE_FUNC explicit inline NestByValue(const ExpressionType& matrix) : m_expression(matrix) {}
+
+ EIGEN_DEVICE_FUNC inline Index rows() const { return m_expression.rows(); }
+ EIGEN_DEVICE_FUNC inline Index cols() const { return m_expression.cols(); }
+ EIGEN_DEVICE_FUNC inline Index outerStride() const { return m_expression.outerStride(); }
+ EIGEN_DEVICE_FUNC inline Index innerStride() const { return m_expression.innerStride(); }
+
+ EIGEN_DEVICE_FUNC inline const CoeffReturnType coeff(Index row, Index col) const
+ {
+ return m_expression.coeff(row, col);
+ }
+
+ EIGEN_DEVICE_FUNC inline Scalar& coeffRef(Index row, Index col)
+ {
+ return m_expression.const_cast_derived().coeffRef(row, col);
+ }
+
+ EIGEN_DEVICE_FUNC inline const CoeffReturnType coeff(Index index) const
+ {
+ return m_expression.coeff(index);
+ }
+
+ EIGEN_DEVICE_FUNC inline Scalar& coeffRef(Index index)
+ {
+ return m_expression.const_cast_derived().coeffRef(index);
+ }
+
+ template<int LoadMode>
+ inline const PacketScalar packet(Index row, Index col) const
+ {
+ return m_expression.template packet<LoadMode>(row, col);
+ }
+
+ template<int LoadMode>
+ inline void writePacket(Index row, Index col, const PacketScalar& x)
+ {
+ m_expression.const_cast_derived().template writePacket<LoadMode>(row, col, x);
+ }
+
+ template<int LoadMode>
+ inline const PacketScalar packet(Index index) const
+ {
+ return m_expression.template packet<LoadMode>(index);
+ }
+
+ template<int LoadMode>
+ inline void writePacket(Index index, const PacketScalar& x)
+ {
+ m_expression.const_cast_derived().template writePacket<LoadMode>(index, x);
+ }
+
+ EIGEN_DEVICE_FUNC operator const ExpressionType&() const { return m_expression; }
+
+ protected:
+ const ExpressionType m_expression;
+};
+
+/** \returns an expression of the temporary version of *this.
+ */
+template<typename Derived>
+inline const NestByValue<Derived>
+DenseBase<Derived>::nestByValue() const
+{
+ return NestByValue<Derived>(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_NESTBYVALUE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/NoAlias.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/NoAlias.h
new file mode 100644
index 000000000..33908010b
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/NoAlias.h
@@ -0,0 +1,108 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_NOALIAS_H
+#define EIGEN_NOALIAS_H
+
+namespace Eigen {
+
+/** \class NoAlias
+ * \ingroup Core_Module
+ *
+ * \brief Pseudo expression providing an operator = assuming no aliasing
+ *
+ * \tparam ExpressionType the type of the object on which to do the lazy assignment
+ *
+ * This class represents an expression with special assignment operators
+ * assuming no aliasing between the target expression and the source expression.
+ * More precisely it alloas to bypass the EvalBeforeAssignBit flag of the source expression.
+ * It is the return type of MatrixBase::noalias()
+ * and most of the time this is the only way it is used.
+ *
+ * \sa MatrixBase::noalias()
+ */
+template<typename ExpressionType, template <typename> class StorageBase>
+class NoAlias
+{
+ public:
+ typedef typename ExpressionType::Scalar Scalar;
+
+ explicit NoAlias(ExpressionType& expression) : m_expression(expression) {}
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE ExpressionType& operator=(const StorageBase<OtherDerived>& other)
+ {
+ call_assignment_no_alias(m_expression, other.derived(), internal::assign_op<Scalar,typename OtherDerived::Scalar>());
+ return m_expression;
+ }
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE ExpressionType& operator+=(const StorageBase<OtherDerived>& other)
+ {
+ call_assignment_no_alias(m_expression, other.derived(), internal::add_assign_op<Scalar,typename OtherDerived::Scalar>());
+ return m_expression;
+ }
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE ExpressionType& operator-=(const StorageBase<OtherDerived>& other)
+ {
+ call_assignment_no_alias(m_expression, other.derived(), internal::sub_assign_op<Scalar,typename OtherDerived::Scalar>());
+ return m_expression;
+ }
+
+ EIGEN_DEVICE_FUNC
+ ExpressionType& expression() const
+ {
+ return m_expression;
+ }
+
+ protected:
+ ExpressionType& m_expression;
+};
+
+/** \returns a pseudo expression of \c *this with an operator= assuming
+ * no aliasing between \c *this and the source expression.
+ *
+ * More precisely, noalias() allows to bypass the EvalBeforeAssignBit flag.
+ * Currently, even though several expressions may alias, only product
+ * expressions have this flag. Therefore, noalias() is only usefull when
+ * the source expression contains a matrix product.
+ *
+ * Here are some examples where noalias is usefull:
+ * \code
+ * D.noalias() = A * B;
+ * D.noalias() += A.transpose() * B;
+ * D.noalias() -= 2 * A * B.adjoint();
+ * \endcode
+ *
+ * On the other hand the following example will lead to a \b wrong result:
+ * \code
+ * A.noalias() = A * B;
+ * \endcode
+ * because the result matrix A is also an operand of the matrix product. Therefore,
+ * there is no alternative than evaluating A * B in a temporary, that is the default
+ * behavior when you write:
+ * \code
+ * A = A * B;
+ * \endcode
+ *
+ * \sa class NoAlias
+ */
+template<typename Derived>
+NoAlias<Derived,MatrixBase> MatrixBase<Derived>::noalias()
+{
+ return NoAlias<Derived, Eigen::MatrixBase >(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_NOALIAS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/NumTraits.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/NumTraits.h
new file mode 100644
index 000000000..daf489878
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/NumTraits.h
@@ -0,0 +1,248 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_NUMTRAITS_H
+#define EIGEN_NUMTRAITS_H
+
+namespace Eigen {
+
+namespace internal {
+
+// default implementation of digits10(), based on numeric_limits if specialized,
+// 0 for integer types, and log10(epsilon()) otherwise.
+template< typename T,
+ bool use_numeric_limits = std::numeric_limits<T>::is_specialized,
+ bool is_integer = NumTraits<T>::IsInteger>
+struct default_digits10_impl
+{
+ static int run() { return std::numeric_limits<T>::digits10; }
+};
+
+template<typename T>
+struct default_digits10_impl<T,false,false> // Floating point
+{
+ static int run() {
+ using std::log10;
+ using std::ceil;
+ typedef typename NumTraits<T>::Real Real;
+ return int(ceil(-log10(NumTraits<Real>::epsilon())));
+ }
+};
+
+template<typename T>
+struct default_digits10_impl<T,false,true> // Integer
+{
+ static int run() { return 0; }
+};
+
+} // end namespace internal
+
+/** \class NumTraits
+ * \ingroup Core_Module
+ *
+ * \brief Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
+ *
+ * \tparam T the numeric type at hand
+ *
+ * This class stores enums, typedefs and static methods giving information about a numeric type.
+ *
+ * The provided data consists of:
+ * \li A typedef \c Real, giving the "real part" type of \a T. If \a T is already real,
+ * then \c Real is just a typedef to \a T. If \a T is \c std::complex<U> then \c Real
+ * is a typedef to \a U.
+ * \li A typedef \c NonInteger, giving the type that should be used for operations producing non-integral values,
+ * such as quotients, square roots, etc. If \a T is a floating-point type, then this typedef just gives
+ * \a T again. Note however that many Eigen functions such as internal::sqrt simply refuse to
+ * take integers. Outside of a few cases, Eigen doesn't do automatic type promotion. Thus, this typedef is
+ * only intended as a helper for code that needs to explicitly promote types.
+ * \li A typedef \c Literal giving the type to use for numeric literals such as "2" or "0.5". For instance, for \c std::complex<U>, Literal is defined as \c U.
+ * Of course, this type must be fully compatible with \a T. In doubt, just use \a T here.
+ * \li A typedef \a Nested giving the type to use to nest a value inside of the expression tree. If you don't know what
+ * this means, just use \a T here.
+ * \li An enum value \a IsComplex. It is equal to 1 if \a T is a \c std::complex
+ * type, and to 0 otherwise.
+ * \li An enum value \a IsInteger. It is equal to \c 1 if \a T is an integer type such as \c int,
+ * and to \c 0 otherwise.
+ * \li Enum values ReadCost, AddCost and MulCost representing a rough estimate of the number of CPU cycles needed
+ * to by move / add / mul instructions respectively, assuming the data is already stored in CPU registers.
+ * Stay vague here. No need to do architecture-specific stuff.
+ * \li An enum value \a IsSigned. It is equal to \c 1 if \a T is a signed type and to 0 if \a T is unsigned.
+ * \li An enum value \a RequireInitialization. It is equal to \c 1 if the constructor of the numeric type \a T must
+ * be called, and to 0 if it is safe not to call it. Default is 0 if \a T is an arithmetic type, and 1 otherwise.
+ * \li An epsilon() function which, unlike <a href="http://en.cppreference.com/w/cpp/types/numeric_limits/epsilon">std::numeric_limits::epsilon()</a>,
+ * it returns a \a Real instead of a \a T.
+ * \li A dummy_precision() function returning a weak epsilon value. It is mainly used as a default
+ * value by the fuzzy comparison operators.
+ * \li highest() and lowest() functions returning the highest and lowest possible values respectively.
+ * \li digits10() function returning the number of decimal digits that can be represented without change. This is
+ * the analogue of <a href="http://en.cppreference.com/w/cpp/types/numeric_limits/digits10">std::numeric_limits<T>::digits10</a>
+ * which is used as the default implementation if specialized.
+ */
+
+template<typename T> struct GenericNumTraits
+{
+ enum {
+ IsInteger = std::numeric_limits<T>::is_integer,
+ IsSigned = std::numeric_limits<T>::is_signed,
+ IsComplex = 0,
+ RequireInitialization = internal::is_arithmetic<T>::value ? 0 : 1,
+ ReadCost = 1,
+ AddCost = 1,
+ MulCost = 1
+ };
+
+ typedef T Real;
+ typedef typename internal::conditional<
+ IsInteger,
+ typename internal::conditional<sizeof(T)<=2, float, double>::type,
+ T
+ >::type NonInteger;
+ typedef T Nested;
+ typedef T Literal;
+
+ EIGEN_DEVICE_FUNC
+ static inline Real epsilon()
+ {
+ return numext::numeric_limits<T>::epsilon();
+ }
+
+ EIGEN_DEVICE_FUNC
+ static inline int digits10()
+ {
+ return internal::default_digits10_impl<T>::run();
+ }
+
+ EIGEN_DEVICE_FUNC
+ static inline Real dummy_precision()
+ {
+ // make sure to override this for floating-point types
+ return Real(0);
+ }
+
+
+ EIGEN_DEVICE_FUNC
+ static inline T highest() {
+ return (numext::numeric_limits<T>::max)();
+ }
+
+ EIGEN_DEVICE_FUNC
+ static inline T lowest() {
+ return IsInteger ? (numext::numeric_limits<T>::min)() : (-(numext::numeric_limits<T>::max)());
+ }
+
+ EIGEN_DEVICE_FUNC
+ static inline T infinity() {
+ return numext::numeric_limits<T>::infinity();
+ }
+
+ EIGEN_DEVICE_FUNC
+ static inline T quiet_NaN() {
+ return numext::numeric_limits<T>::quiet_NaN();
+ }
+};
+
+template<typename T> struct NumTraits : GenericNumTraits<T>
+{};
+
+template<> struct NumTraits<float>
+ : GenericNumTraits<float>
+{
+ EIGEN_DEVICE_FUNC
+ static inline float dummy_precision() { return 1e-5f; }
+};
+
+template<> struct NumTraits<double> : GenericNumTraits<double>
+{
+ EIGEN_DEVICE_FUNC
+ static inline double dummy_precision() { return 1e-12; }
+};
+
+template<> struct NumTraits<long double>
+ : GenericNumTraits<long double>
+{
+ static inline long double dummy_precision() { return 1e-15l; }
+};
+
+template<typename _Real> struct NumTraits<std::complex<_Real> >
+ : GenericNumTraits<std::complex<_Real> >
+{
+ typedef _Real Real;
+ typedef typename NumTraits<_Real>::Literal Literal;
+ enum {
+ IsComplex = 1,
+ RequireInitialization = NumTraits<_Real>::RequireInitialization,
+ ReadCost = 2 * NumTraits<_Real>::ReadCost,
+ AddCost = 2 * NumTraits<Real>::AddCost,
+ MulCost = 4 * NumTraits<Real>::MulCost + 2 * NumTraits<Real>::AddCost
+ };
+
+ EIGEN_DEVICE_FUNC
+ static inline Real epsilon() { return NumTraits<Real>::epsilon(); }
+ EIGEN_DEVICE_FUNC
+ static inline Real dummy_precision() { return NumTraits<Real>::dummy_precision(); }
+ EIGEN_DEVICE_FUNC
+ static inline int digits10() { return NumTraits<Real>::digits10(); }
+};
+
+template<typename Scalar, int Rows, int Cols, int Options, int MaxRows, int MaxCols>
+struct NumTraits<Array<Scalar, Rows, Cols, Options, MaxRows, MaxCols> >
+{
+ typedef Array<Scalar, Rows, Cols, Options, MaxRows, MaxCols> ArrayType;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ typedef Array<RealScalar, Rows, Cols, Options, MaxRows, MaxCols> Real;
+ typedef typename NumTraits<Scalar>::NonInteger NonIntegerScalar;
+ typedef Array<NonIntegerScalar, Rows, Cols, Options, MaxRows, MaxCols> NonInteger;
+ typedef ArrayType & Nested;
+ typedef typename NumTraits<Scalar>::Literal Literal;
+
+ enum {
+ IsComplex = NumTraits<Scalar>::IsComplex,
+ IsInteger = NumTraits<Scalar>::IsInteger,
+ IsSigned = NumTraits<Scalar>::IsSigned,
+ RequireInitialization = 1,
+ ReadCost = ArrayType::SizeAtCompileTime==Dynamic ? HugeCost : ArrayType::SizeAtCompileTime * NumTraits<Scalar>::ReadCost,
+ AddCost = ArrayType::SizeAtCompileTime==Dynamic ? HugeCost : ArrayType::SizeAtCompileTime * NumTraits<Scalar>::AddCost,
+ MulCost = ArrayType::SizeAtCompileTime==Dynamic ? HugeCost : ArrayType::SizeAtCompileTime * NumTraits<Scalar>::MulCost
+ };
+
+ EIGEN_DEVICE_FUNC
+ static inline RealScalar epsilon() { return NumTraits<RealScalar>::epsilon(); }
+ EIGEN_DEVICE_FUNC
+ static inline RealScalar dummy_precision() { return NumTraits<RealScalar>::dummy_precision(); }
+
+ static inline int digits10() { return NumTraits<Scalar>::digits10(); }
+};
+
+template<> struct NumTraits<std::string>
+ : GenericNumTraits<std::string>
+{
+ enum {
+ RequireInitialization = 1,
+ ReadCost = HugeCost,
+ AddCost = HugeCost,
+ MulCost = HugeCost
+ };
+
+ static inline int digits10() { return 0; }
+
+private:
+ static inline std::string epsilon();
+ static inline std::string dummy_precision();
+ static inline std::string lowest();
+ static inline std::string highest();
+ static inline std::string infinity();
+ static inline std::string quiet_NaN();
+};
+
+// Empty specialization for void to allow template specialization based on NumTraits<T>::Real with T==void and SFINAE.
+template<> struct NumTraits<void> {};
+
+} // end namespace Eigen
+
+#endif // EIGEN_NUMTRAITS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/PermutationMatrix.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/PermutationMatrix.h
new file mode 100644
index 000000000..b1fb455b9
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/PermutationMatrix.h
@@ -0,0 +1,633 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2009-2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PERMUTATIONMATRIX_H
+#define EIGEN_PERMUTATIONMATRIX_H
+
+namespace Eigen {
+
+namespace internal {
+
+enum PermPermProduct_t {PermPermProduct};
+
+} // end namespace internal
+
+/** \class PermutationBase
+ * \ingroup Core_Module
+ *
+ * \brief Base class for permutations
+ *
+ * \tparam Derived the derived class
+ *
+ * This class is the base class for all expressions representing a permutation matrix,
+ * internally stored as a vector of integers.
+ * The convention followed here is that if \f$ \sigma \f$ is a permutation, the corresponding permutation matrix
+ * \f$ P_\sigma \f$ is such that if \f$ (e_1,\ldots,e_p) \f$ is the canonical basis, we have:
+ * \f[ P_\sigma(e_i) = e_{\sigma(i)}. \f]
+ * This convention ensures that for any two permutations \f$ \sigma, \tau \f$, we have:
+ * \f[ P_{\sigma\circ\tau} = P_\sigma P_\tau. \f]
+ *
+ * Permutation matrices are square and invertible.
+ *
+ * Notice that in addition to the member functions and operators listed here, there also are non-member
+ * operator* to multiply any kind of permutation object with any kind of matrix expression (MatrixBase)
+ * on either side.
+ *
+ * \sa class PermutationMatrix, class PermutationWrapper
+ */
+template<typename Derived>
+class PermutationBase : public EigenBase<Derived>
+{
+ typedef internal::traits<Derived> Traits;
+ typedef EigenBase<Derived> Base;
+ public:
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ typedef typename Traits::IndicesType IndicesType;
+ enum {
+ Flags = Traits::Flags,
+ RowsAtCompileTime = Traits::RowsAtCompileTime,
+ ColsAtCompileTime = Traits::ColsAtCompileTime,
+ MaxRowsAtCompileTime = Traits::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = Traits::MaxColsAtCompileTime
+ };
+ typedef typename Traits::StorageIndex StorageIndex;
+ typedef Matrix<StorageIndex,RowsAtCompileTime,ColsAtCompileTime,0,MaxRowsAtCompileTime,MaxColsAtCompileTime>
+ DenseMatrixType;
+ typedef PermutationMatrix<IndicesType::SizeAtCompileTime,IndicesType::MaxSizeAtCompileTime,StorageIndex>
+ PlainPermutationType;
+ typedef PlainPermutationType PlainObject;
+ using Base::derived;
+ typedef Inverse<Derived> InverseReturnType;
+ typedef void Scalar;
+ #endif
+
+ /** Copies the other permutation into *this */
+ template<typename OtherDerived>
+ Derived& operator=(const PermutationBase<OtherDerived>& other)
+ {
+ indices() = other.indices();
+ return derived();
+ }
+
+ /** Assignment from the Transpositions \a tr */
+ template<typename OtherDerived>
+ Derived& operator=(const TranspositionsBase<OtherDerived>& tr)
+ {
+ setIdentity(tr.size());
+ for(Index k=size()-1; k>=0; --k)
+ applyTranspositionOnTheRight(k,tr.coeff(k));
+ return derived();
+ }
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** This is a special case of the templated operator=. Its purpose is to
+ * prevent a default operator= from hiding the templated operator=.
+ */
+ Derived& operator=(const PermutationBase& other)
+ {
+ indices() = other.indices();
+ return derived();
+ }
+ #endif
+
+ /** \returns the number of rows */
+ inline Index rows() const { return Index(indices().size()); }
+
+ /** \returns the number of columns */
+ inline Index cols() const { return Index(indices().size()); }
+
+ /** \returns the size of a side of the respective square matrix, i.e., the number of indices */
+ inline Index size() const { return Index(indices().size()); }
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ template<typename DenseDerived>
+ void evalTo(MatrixBase<DenseDerived>& other) const
+ {
+ other.setZero();
+ for (Index i=0; i<rows(); ++i)
+ other.coeffRef(indices().coeff(i),i) = typename DenseDerived::Scalar(1);
+ }
+ #endif
+
+ /** \returns a Matrix object initialized from this permutation matrix. Notice that it
+ * is inefficient to return this Matrix object by value. For efficiency, favor using
+ * the Matrix constructor taking EigenBase objects.
+ */
+ DenseMatrixType toDenseMatrix() const
+ {
+ return derived();
+ }
+
+ /** const version of indices(). */
+ const IndicesType& indices() const { return derived().indices(); }
+ /** \returns a reference to the stored array representing the permutation. */
+ IndicesType& indices() { return derived().indices(); }
+
+ /** Resizes to given size.
+ */
+ inline void resize(Index newSize)
+ {
+ indices().resize(newSize);
+ }
+
+ /** Sets *this to be the identity permutation matrix */
+ void setIdentity()
+ {
+ StorageIndex n = StorageIndex(size());
+ for(StorageIndex i = 0; i < n; ++i)
+ indices().coeffRef(i) = i;
+ }
+
+ /** Sets *this to be the identity permutation matrix of given size.
+ */
+ void setIdentity(Index newSize)
+ {
+ resize(newSize);
+ setIdentity();
+ }
+
+ /** Multiplies *this by the transposition \f$(ij)\f$ on the left.
+ *
+ * \returns a reference to *this.
+ *
+ * \warning This is much slower than applyTranspositionOnTheRight(Index,Index):
+ * this has linear complexity and requires a lot of branching.
+ *
+ * \sa applyTranspositionOnTheRight(Index,Index)
+ */
+ Derived& applyTranspositionOnTheLeft(Index i, Index j)
+ {
+ eigen_assert(i>=0 && j>=0 && i<size() && j<size());
+ for(Index k = 0; k < size(); ++k)
+ {
+ if(indices().coeff(k) == i) indices().coeffRef(k) = StorageIndex(j);
+ else if(indices().coeff(k) == j) indices().coeffRef(k) = StorageIndex(i);
+ }
+ return derived();
+ }
+
+ /** Multiplies *this by the transposition \f$(ij)\f$ on the right.
+ *
+ * \returns a reference to *this.
+ *
+ * This is a fast operation, it only consists in swapping two indices.
+ *
+ * \sa applyTranspositionOnTheLeft(Index,Index)
+ */
+ Derived& applyTranspositionOnTheRight(Index i, Index j)
+ {
+ eigen_assert(i>=0 && j>=0 && i<size() && j<size());
+ std::swap(indices().coeffRef(i), indices().coeffRef(j));
+ return derived();
+ }
+
+ /** \returns the inverse permutation matrix.
+ *
+ * \note \blank \note_try_to_help_rvo
+ */
+ inline InverseReturnType inverse() const
+ { return InverseReturnType(derived()); }
+ /** \returns the tranpose permutation matrix.
+ *
+ * \note \blank \note_try_to_help_rvo
+ */
+ inline InverseReturnType transpose() const
+ { return InverseReturnType(derived()); }
+
+ /**** multiplication helpers to hopefully get RVO ****/
+
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ protected:
+ template<typename OtherDerived>
+ void assignTranspose(const PermutationBase<OtherDerived>& other)
+ {
+ for (Index i=0; i<rows();++i) indices().coeffRef(other.indices().coeff(i)) = i;
+ }
+ template<typename Lhs,typename Rhs>
+ void assignProduct(const Lhs& lhs, const Rhs& rhs)
+ {
+ eigen_assert(lhs.cols() == rhs.rows());
+ for (Index i=0; i<rows();++i) indices().coeffRef(i) = lhs.indices().coeff(rhs.indices().coeff(i));
+ }
+#endif
+
+ public:
+
+ /** \returns the product permutation matrix.
+ *
+ * \note \blank \note_try_to_help_rvo
+ */
+ template<typename Other>
+ inline PlainPermutationType operator*(const PermutationBase<Other>& other) const
+ { return PlainPermutationType(internal::PermPermProduct, derived(), other.derived()); }
+
+ /** \returns the product of a permutation with another inverse permutation.
+ *
+ * \note \blank \note_try_to_help_rvo
+ */
+ template<typename Other>
+ inline PlainPermutationType operator*(const InverseImpl<Other,PermutationStorage>& other) const
+ { return PlainPermutationType(internal::PermPermProduct, *this, other.eval()); }
+
+ /** \returns the product of an inverse permutation with another permutation.
+ *
+ * \note \blank \note_try_to_help_rvo
+ */
+ template<typename Other> friend
+ inline PlainPermutationType operator*(const InverseImpl<Other, PermutationStorage>& other, const PermutationBase& perm)
+ { return PlainPermutationType(internal::PermPermProduct, other.eval(), perm); }
+
+ /** \returns the determinant of the permutation matrix, which is either 1 or -1 depending on the parity of the permutation.
+ *
+ * This function is O(\c n) procedure allocating a buffer of \c n booleans.
+ */
+ Index determinant() const
+ {
+ Index res = 1;
+ Index n = size();
+ Matrix<bool,RowsAtCompileTime,1,0,MaxRowsAtCompileTime> mask(n);
+ mask.fill(false);
+ Index r = 0;
+ while(r < n)
+ {
+ // search for the next seed
+ while(r<n && mask[r]) r++;
+ if(r>=n)
+ break;
+ // we got one, let's follow it until we are back to the seed
+ Index k0 = r++;
+ mask.coeffRef(k0) = true;
+ for(Index k=indices().coeff(k0); k!=k0; k=indices().coeff(k))
+ {
+ mask.coeffRef(k) = true;
+ res = -res;
+ }
+ }
+ return res;
+ }
+
+ protected:
+
+};
+
+namespace internal {
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename _StorageIndex>
+struct traits<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, _StorageIndex> >
+ : traits<Matrix<_StorageIndex,SizeAtCompileTime,SizeAtCompileTime,0,MaxSizeAtCompileTime,MaxSizeAtCompileTime> >
+{
+ typedef PermutationStorage StorageKind;
+ typedef Matrix<_StorageIndex, SizeAtCompileTime, 1, 0, MaxSizeAtCompileTime, 1> IndicesType;
+ typedef _StorageIndex StorageIndex;
+ typedef void Scalar;
+};
+}
+
+/** \class PermutationMatrix
+ * \ingroup Core_Module
+ *
+ * \brief Permutation matrix
+ *
+ * \tparam SizeAtCompileTime the number of rows/cols, or Dynamic
+ * \tparam MaxSizeAtCompileTime the maximum number of rows/cols, or Dynamic. This optional parameter defaults to SizeAtCompileTime. Most of the time, you should not have to specify it.
+ * \tparam _StorageIndex the integer type of the indices
+ *
+ * This class represents a permutation matrix, internally stored as a vector of integers.
+ *
+ * \sa class PermutationBase, class PermutationWrapper, class DiagonalMatrix
+ */
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename _StorageIndex>
+class PermutationMatrix : public PermutationBase<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, _StorageIndex> >
+{
+ typedef PermutationBase<PermutationMatrix> Base;
+ typedef internal::traits<PermutationMatrix> Traits;
+ public:
+
+ typedef const PermutationMatrix& Nested;
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ typedef typename Traits::IndicesType IndicesType;
+ typedef typename Traits::StorageIndex StorageIndex;
+ #endif
+
+ inline PermutationMatrix()
+ {}
+
+ /** Constructs an uninitialized permutation matrix of given size.
+ */
+ explicit inline PermutationMatrix(Index size) : m_indices(size)
+ {
+ eigen_internal_assert(size <= NumTraits<StorageIndex>::highest());
+ }
+
+ /** Copy constructor. */
+ template<typename OtherDerived>
+ inline PermutationMatrix(const PermutationBase<OtherDerived>& other)
+ : m_indices(other.indices()) {}
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** Standard copy constructor. Defined only to prevent a default copy constructor
+ * from hiding the other templated constructor */
+ inline PermutationMatrix(const PermutationMatrix& other) : m_indices(other.indices()) {}
+ #endif
+
+ /** Generic constructor from expression of the indices. The indices
+ * array has the meaning that the permutations sends each integer i to indices[i].
+ *
+ * \warning It is your responsibility to check that the indices array that you passes actually
+ * describes a permutation, i.e., each value between 0 and n-1 occurs exactly once, where n is the
+ * array's size.
+ */
+ template<typename Other>
+ explicit inline PermutationMatrix(const MatrixBase<Other>& indices) : m_indices(indices)
+ {}
+
+ /** Convert the Transpositions \a tr to a permutation matrix */
+ template<typename Other>
+ explicit PermutationMatrix(const TranspositionsBase<Other>& tr)
+ : m_indices(tr.size())
+ {
+ *this = tr;
+ }
+
+ /** Copies the other permutation into *this */
+ template<typename Other>
+ PermutationMatrix& operator=(const PermutationBase<Other>& other)
+ {
+ m_indices = other.indices();
+ return *this;
+ }
+
+ /** Assignment from the Transpositions \a tr */
+ template<typename Other>
+ PermutationMatrix& operator=(const TranspositionsBase<Other>& tr)
+ {
+ return Base::operator=(tr.derived());
+ }
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** This is a special case of the templated operator=. Its purpose is to
+ * prevent a default operator= from hiding the templated operator=.
+ */
+ PermutationMatrix& operator=(const PermutationMatrix& other)
+ {
+ m_indices = other.m_indices;
+ return *this;
+ }
+ #endif
+
+ /** const version of indices(). */
+ const IndicesType& indices() const { return m_indices; }
+ /** \returns a reference to the stored array representing the permutation. */
+ IndicesType& indices() { return m_indices; }
+
+
+ /**** multiplication helpers to hopefully get RVO ****/
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ template<typename Other>
+ PermutationMatrix(const InverseImpl<Other,PermutationStorage>& other)
+ : m_indices(other.derived().nestedExpression().size())
+ {
+ eigen_internal_assert(m_indices.size() <= NumTraits<StorageIndex>::highest());
+ StorageIndex end = StorageIndex(m_indices.size());
+ for (StorageIndex i=0; i<end;++i)
+ m_indices.coeffRef(other.derived().nestedExpression().indices().coeff(i)) = i;
+ }
+ template<typename Lhs,typename Rhs>
+ PermutationMatrix(internal::PermPermProduct_t, const Lhs& lhs, const Rhs& rhs)
+ : m_indices(lhs.indices().size())
+ {
+ Base::assignProduct(lhs,rhs);
+ }
+#endif
+
+ protected:
+
+ IndicesType m_indices;
+};
+
+
+namespace internal {
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename _StorageIndex, int _PacketAccess>
+struct traits<Map<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, _StorageIndex>,_PacketAccess> >
+ : traits<Matrix<_StorageIndex,SizeAtCompileTime,SizeAtCompileTime,0,MaxSizeAtCompileTime,MaxSizeAtCompileTime> >
+{
+ typedef PermutationStorage StorageKind;
+ typedef Map<const Matrix<_StorageIndex, SizeAtCompileTime, 1, 0, MaxSizeAtCompileTime, 1>, _PacketAccess> IndicesType;
+ typedef _StorageIndex StorageIndex;
+ typedef void Scalar;
+};
+}
+
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename _StorageIndex, int _PacketAccess>
+class Map<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, _StorageIndex>,_PacketAccess>
+ : public PermutationBase<Map<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, _StorageIndex>,_PacketAccess> >
+{
+ typedef PermutationBase<Map> Base;
+ typedef internal::traits<Map> Traits;
+ public:
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ typedef typename Traits::IndicesType IndicesType;
+ typedef typename IndicesType::Scalar StorageIndex;
+ #endif
+
+ inline Map(const StorageIndex* indicesPtr)
+ : m_indices(indicesPtr)
+ {}
+
+ inline Map(const StorageIndex* indicesPtr, Index size)
+ : m_indices(indicesPtr,size)
+ {}
+
+ /** Copies the other permutation into *this */
+ template<typename Other>
+ Map& operator=(const PermutationBase<Other>& other)
+ { return Base::operator=(other.derived()); }
+
+ /** Assignment from the Transpositions \a tr */
+ template<typename Other>
+ Map& operator=(const TranspositionsBase<Other>& tr)
+ { return Base::operator=(tr.derived()); }
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** This is a special case of the templated operator=. Its purpose is to
+ * prevent a default operator= from hiding the templated operator=.
+ */
+ Map& operator=(const Map& other)
+ {
+ m_indices = other.m_indices;
+ return *this;
+ }
+ #endif
+
+ /** const version of indices(). */
+ const IndicesType& indices() const { return m_indices; }
+ /** \returns a reference to the stored array representing the permutation. */
+ IndicesType& indices() { return m_indices; }
+
+ protected:
+
+ IndicesType m_indices;
+};
+
+template<typename _IndicesType> class TranspositionsWrapper;
+namespace internal {
+template<typename _IndicesType>
+struct traits<PermutationWrapper<_IndicesType> >
+{
+ typedef PermutationStorage StorageKind;
+ typedef void Scalar;
+ typedef typename _IndicesType::Scalar StorageIndex;
+ typedef _IndicesType IndicesType;
+ enum {
+ RowsAtCompileTime = _IndicesType::SizeAtCompileTime,
+ ColsAtCompileTime = _IndicesType::SizeAtCompileTime,
+ MaxRowsAtCompileTime = IndicesType::MaxSizeAtCompileTime,
+ MaxColsAtCompileTime = IndicesType::MaxSizeAtCompileTime,
+ Flags = 0
+ };
+};
+}
+
+/** \class PermutationWrapper
+ * \ingroup Core_Module
+ *
+ * \brief Class to view a vector of integers as a permutation matrix
+ *
+ * \tparam _IndicesType the type of the vector of integer (can be any compatible expression)
+ *
+ * This class allows to view any vector expression of integers as a permutation matrix.
+ *
+ * \sa class PermutationBase, class PermutationMatrix
+ */
+template<typename _IndicesType>
+class PermutationWrapper : public PermutationBase<PermutationWrapper<_IndicesType> >
+{
+ typedef PermutationBase<PermutationWrapper> Base;
+ typedef internal::traits<PermutationWrapper> Traits;
+ public:
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ typedef typename Traits::IndicesType IndicesType;
+ #endif
+
+ inline PermutationWrapper(const IndicesType& indices)
+ : m_indices(indices)
+ {}
+
+ /** const version of indices(). */
+ const typename internal::remove_all<typename IndicesType::Nested>::type&
+ indices() const { return m_indices; }
+
+ protected:
+
+ typename IndicesType::Nested m_indices;
+};
+
+
+/** \returns the matrix with the permutation applied to the columns.
+ */
+template<typename MatrixDerived, typename PermutationDerived>
+EIGEN_DEVICE_FUNC
+const Product<MatrixDerived, PermutationDerived, AliasFreeProduct>
+operator*(const MatrixBase<MatrixDerived> &matrix,
+ const PermutationBase<PermutationDerived>& permutation)
+{
+ return Product<MatrixDerived, PermutationDerived, AliasFreeProduct>
+ (matrix.derived(), permutation.derived());
+}
+
+/** \returns the matrix with the permutation applied to the rows.
+ */
+template<typename PermutationDerived, typename MatrixDerived>
+EIGEN_DEVICE_FUNC
+const Product<PermutationDerived, MatrixDerived, AliasFreeProduct>
+operator*(const PermutationBase<PermutationDerived> &permutation,
+ const MatrixBase<MatrixDerived>& matrix)
+{
+ return Product<PermutationDerived, MatrixDerived, AliasFreeProduct>
+ (permutation.derived(), matrix.derived());
+}
+
+
+template<typename PermutationType>
+class InverseImpl<PermutationType, PermutationStorage>
+ : public EigenBase<Inverse<PermutationType> >
+{
+ typedef typename PermutationType::PlainPermutationType PlainPermutationType;
+ typedef internal::traits<PermutationType> PermTraits;
+ protected:
+ InverseImpl() {}
+ public:
+ typedef Inverse<PermutationType> InverseType;
+ using EigenBase<Inverse<PermutationType> >::derived;
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ typedef typename PermutationType::DenseMatrixType DenseMatrixType;
+ enum {
+ RowsAtCompileTime = PermTraits::RowsAtCompileTime,
+ ColsAtCompileTime = PermTraits::ColsAtCompileTime,
+ MaxRowsAtCompileTime = PermTraits::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = PermTraits::MaxColsAtCompileTime
+ };
+ #endif
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ template<typename DenseDerived>
+ void evalTo(MatrixBase<DenseDerived>& other) const
+ {
+ other.setZero();
+ for (Index i=0; i<derived().rows();++i)
+ other.coeffRef(i, derived().nestedExpression().indices().coeff(i)) = typename DenseDerived::Scalar(1);
+ }
+ #endif
+
+ /** \return the equivalent permutation matrix */
+ PlainPermutationType eval() const { return derived(); }
+
+ DenseMatrixType toDenseMatrix() const { return derived(); }
+
+ /** \returns the matrix with the inverse permutation applied to the columns.
+ */
+ template<typename OtherDerived> friend
+ const Product<OtherDerived, InverseType, AliasFreeProduct>
+ operator*(const MatrixBase<OtherDerived>& matrix, const InverseType& trPerm)
+ {
+ return Product<OtherDerived, InverseType, AliasFreeProduct>(matrix.derived(), trPerm.derived());
+ }
+
+ /** \returns the matrix with the inverse permutation applied to the rows.
+ */
+ template<typename OtherDerived>
+ const Product<InverseType, OtherDerived, AliasFreeProduct>
+ operator*(const MatrixBase<OtherDerived>& matrix) const
+ {
+ return Product<InverseType, OtherDerived, AliasFreeProduct>(derived(), matrix.derived());
+ }
+};
+
+template<typename Derived>
+const PermutationWrapper<const Derived> MatrixBase<Derived>::asPermutation() const
+{
+ return derived();
+}
+
+namespace internal {
+
+template<> struct AssignmentKind<DenseShape,PermutationShape> { typedef EigenBase2EigenBase Kind; };
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PERMUTATIONMATRIX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/PlainObjectBase.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/PlainObjectBase.h
new file mode 100644
index 000000000..77f4f6066
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/PlainObjectBase.h
@@ -0,0 +1,1031 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DENSESTORAGEBASE_H
+#define EIGEN_DENSESTORAGEBASE_H
+
+#if defined(EIGEN_INITIALIZE_MATRICES_BY_ZERO)
+# define EIGEN_INITIALIZE_COEFFS
+# define EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED for(int i=0;i<base().size();++i) coeffRef(i)=Scalar(0);
+#elif defined(EIGEN_INITIALIZE_MATRICES_BY_NAN)
+# define EIGEN_INITIALIZE_COEFFS
+# define EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED for(int i=0;i<base().size();++i) coeffRef(i)=std::numeric_limits<Scalar>::quiet_NaN();
+#else
+# undef EIGEN_INITIALIZE_COEFFS
+# define EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+#endif
+
+namespace Eigen {
+
+namespace internal {
+
+template<int MaxSizeAtCompileTime> struct check_rows_cols_for_overflow {
+ template<typename Index>
+ EIGEN_DEVICE_FUNC
+ static EIGEN_ALWAYS_INLINE void run(Index, Index)
+ {
+ }
+};
+
+template<> struct check_rows_cols_for_overflow<Dynamic> {
+ template<typename Index>
+ EIGEN_DEVICE_FUNC
+ static EIGEN_ALWAYS_INLINE void run(Index rows, Index cols)
+ {
+ // http://hg.mozilla.org/mozilla-central/file/6c8a909977d3/xpcom/ds/CheckedInt.h#l242
+ // we assume Index is signed
+ Index max_index = (std::size_t(1) << (8 * sizeof(Index) - 1)) - 1; // assume Index is signed
+ bool error = (rows == 0 || cols == 0) ? false
+ : (rows > max_index / cols);
+ if (error)
+ throw_std_bad_alloc();
+ }
+};
+
+template <typename Derived,
+ typename OtherDerived = Derived,
+ bool IsVector = bool(Derived::IsVectorAtCompileTime) && bool(OtherDerived::IsVectorAtCompileTime)>
+struct conservative_resize_like_impl;
+
+template<typename MatrixTypeA, typename MatrixTypeB, bool SwapPointers> struct matrix_swap_impl;
+
+} // end namespace internal
+
+#ifdef EIGEN_PARSED_BY_DOXYGEN
+namespace doxygen {
+
+// This is a workaround to doxygen not being able to understand the inheritance logic
+// when it is hidden by the dense_xpr_base helper struct.
+// Moreover, doxygen fails to include members that are not documented in the declaration body of
+// MatrixBase if we inherits MatrixBase<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >,
+// this is why we simply inherits MatrixBase, though this does not make sense.
+
+/** This class is just a workaround for Doxygen and it does not not actually exist. */
+template<typename Derived> struct dense_xpr_base_dispatcher;
+/** This class is just a workaround for Doxygen and it does not not actually exist. */
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+struct dense_xpr_base_dispatcher<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
+ : public MatrixBase {};
+/** This class is just a workaround for Doxygen and it does not not actually exist. */
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+struct dense_xpr_base_dispatcher<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
+ : public ArrayBase {};
+
+} // namespace doxygen
+
+/** \class PlainObjectBase
+ * \ingroup Core_Module
+ * \brief %Dense storage base class for matrices and arrays.
+ *
+ * This class can be extended with the help of the plugin mechanism described on the page
+ * \ref TopicCustomizing_Plugins by defining the preprocessor symbol \c EIGEN_PLAINOBJECTBASE_PLUGIN.
+ *
+ * \tparam Derived is the derived type, e.g., a Matrix or Array
+ *
+ * \sa \ref TopicClassHierarchy
+ */
+template<typename Derived>
+class PlainObjectBase : public doxygen::dense_xpr_base_dispatcher<Derived>
+#else
+template<typename Derived>
+class PlainObjectBase : public internal::dense_xpr_base<Derived>::type
+#endif
+{
+ public:
+ enum { Options = internal::traits<Derived>::Options };
+ typedef typename internal::dense_xpr_base<Derived>::type Base;
+
+ typedef typename internal::traits<Derived>::StorageKind StorageKind;
+ typedef typename internal::traits<Derived>::Scalar Scalar;
+
+ typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ typedef Derived DenseType;
+
+ using Base::RowsAtCompileTime;
+ using Base::ColsAtCompileTime;
+ using Base::SizeAtCompileTime;
+ using Base::MaxRowsAtCompileTime;
+ using Base::MaxColsAtCompileTime;
+ using Base::MaxSizeAtCompileTime;
+ using Base::IsVectorAtCompileTime;
+ using Base::Flags;
+
+ template<typename PlainObjectType, int MapOptions, typename StrideType> friend class Eigen::Map;
+ friend class Eigen::Map<Derived, Unaligned>;
+ typedef Eigen::Map<Derived, Unaligned> MapType;
+ friend class Eigen::Map<const Derived, Unaligned>;
+ typedef const Eigen::Map<const Derived, Unaligned> ConstMapType;
+#if EIGEN_MAX_ALIGN_BYTES>0
+ // for EIGEN_MAX_ALIGN_BYTES==0, AlignedMax==Unaligned, and many compilers generate warnings for friend-ing a class twice.
+ friend class Eigen::Map<Derived, AlignedMax>;
+ friend class Eigen::Map<const Derived, AlignedMax>;
+#endif
+ typedef Eigen::Map<Derived, AlignedMax> AlignedMapType;
+ typedef const Eigen::Map<const Derived, AlignedMax> ConstAlignedMapType;
+ template<typename StrideType> struct StridedMapType { typedef Eigen::Map<Derived, Unaligned, StrideType> type; };
+ template<typename StrideType> struct StridedConstMapType { typedef Eigen::Map<const Derived, Unaligned, StrideType> type; };
+ template<typename StrideType> struct StridedAlignedMapType { typedef Eigen::Map<Derived, AlignedMax, StrideType> type; };
+ template<typename StrideType> struct StridedConstAlignedMapType { typedef Eigen::Map<const Derived, AlignedMax, StrideType> type; };
+
+ protected:
+ DenseStorage<Scalar, Base::MaxSizeAtCompileTime, Base::RowsAtCompileTime, Base::ColsAtCompileTime, Options> m_storage;
+
+ public:
+ enum { NeedsToAlign = (SizeAtCompileTime != Dynamic) && (internal::traits<Derived>::Alignment>0) };
+ EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign)
+
+ EIGEN_DEVICE_FUNC
+ Base& base() { return *static_cast<Base*>(this); }
+ EIGEN_DEVICE_FUNC
+ const Base& base() const { return *static_cast<const Base*>(this); }
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Index rows() const { return m_storage.rows(); }
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Index cols() const { return m_storage.cols(); }
+
+ /** This is an overloaded version of DenseCoeffsBase<Derived,ReadOnlyAccessors>::coeff(Index,Index) const
+ * provided to by-pass the creation of an evaluator of the expression, thus saving compilation efforts.
+ *
+ * See DenseCoeffsBase<Derived,ReadOnlyAccessors>::coeff(Index) const for details. */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE const Scalar& coeff(Index rowId, Index colId) const
+ {
+ if(Flags & RowMajorBit)
+ return m_storage.data()[colId + rowId * m_storage.cols()];
+ else // column-major
+ return m_storage.data()[rowId + colId * m_storage.rows()];
+ }
+
+ /** This is an overloaded version of DenseCoeffsBase<Derived,ReadOnlyAccessors>::coeff(Index) const
+ * provided to by-pass the creation of an evaluator of the expression, thus saving compilation efforts.
+ *
+ * See DenseCoeffsBase<Derived,ReadOnlyAccessors>::coeff(Index) const for details. */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE const Scalar& coeff(Index index) const
+ {
+ return m_storage.data()[index];
+ }
+
+ /** This is an overloaded version of DenseCoeffsBase<Derived,WriteAccessors>::coeffRef(Index,Index) const
+ * provided to by-pass the creation of an evaluator of the expression, thus saving compilation efforts.
+ *
+ * See DenseCoeffsBase<Derived,WriteAccessors>::coeffRef(Index,Index) const for details. */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Scalar& coeffRef(Index rowId, Index colId)
+ {
+ if(Flags & RowMajorBit)
+ return m_storage.data()[colId + rowId * m_storage.cols()];
+ else // column-major
+ return m_storage.data()[rowId + colId * m_storage.rows()];
+ }
+
+ /** This is an overloaded version of DenseCoeffsBase<Derived,WriteAccessors>::coeffRef(Index) const
+ * provided to by-pass the creation of an evaluator of the expression, thus saving compilation efforts.
+ *
+ * See DenseCoeffsBase<Derived,WriteAccessors>::coeffRef(Index) const for details. */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Scalar& coeffRef(Index index)
+ {
+ return m_storage.data()[index];
+ }
+
+ /** This is the const version of coeffRef(Index,Index) which is thus synonym of coeff(Index,Index).
+ * It is provided for convenience. */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE const Scalar& coeffRef(Index rowId, Index colId) const
+ {
+ if(Flags & RowMajorBit)
+ return m_storage.data()[colId + rowId * m_storage.cols()];
+ else // column-major
+ return m_storage.data()[rowId + colId * m_storage.rows()];
+ }
+
+ /** This is the const version of coeffRef(Index) which is thus synonym of coeff(Index).
+ * It is provided for convenience. */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE const Scalar& coeffRef(Index index) const
+ {
+ return m_storage.data()[index];
+ }
+
+ /** \internal */
+ template<int LoadMode>
+ EIGEN_STRONG_INLINE PacketScalar packet(Index rowId, Index colId) const
+ {
+ return internal::ploadt<PacketScalar, LoadMode>
+ (m_storage.data() + (Flags & RowMajorBit
+ ? colId + rowId * m_storage.cols()
+ : rowId + colId * m_storage.rows()));
+ }
+
+ /** \internal */
+ template<int LoadMode>
+ EIGEN_STRONG_INLINE PacketScalar packet(Index index) const
+ {
+ return internal::ploadt<PacketScalar, LoadMode>(m_storage.data() + index);
+ }
+
+ /** \internal */
+ template<int StoreMode>
+ EIGEN_STRONG_INLINE void writePacket(Index rowId, Index colId, const PacketScalar& val)
+ {
+ internal::pstoret<Scalar, PacketScalar, StoreMode>
+ (m_storage.data() + (Flags & RowMajorBit
+ ? colId + rowId * m_storage.cols()
+ : rowId + colId * m_storage.rows()), val);
+ }
+
+ /** \internal */
+ template<int StoreMode>
+ EIGEN_STRONG_INLINE void writePacket(Index index, const PacketScalar& val)
+ {
+ internal::pstoret<Scalar, PacketScalar, StoreMode>(m_storage.data() + index, val);
+ }
+
+ /** \returns a const pointer to the data array of this matrix */
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar *data() const
+ { return m_storage.data(); }
+
+ /** \returns a pointer to the data array of this matrix */
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar *data()
+ { return m_storage.data(); }
+
+ /** Resizes \c *this to a \a rows x \a cols matrix.
+ *
+ * This method is intended for dynamic-size matrices, although it is legal to call it on any
+ * matrix as long as fixed dimensions are left unchanged. If you only want to change the number
+ * of rows and/or of columns, you can use resize(NoChange_t, Index), resize(Index, NoChange_t).
+ *
+ * If the current number of coefficients of \c *this exactly matches the
+ * product \a rows * \a cols, then no memory allocation is performed and
+ * the current values are left unchanged. In all other cases, including
+ * shrinking, the data is reallocated and all previous values are lost.
+ *
+ * Example: \include Matrix_resize_int_int.cpp
+ * Output: \verbinclude Matrix_resize_int_int.out
+ *
+ * \sa resize(Index) for vectors, resize(NoChange_t, Index), resize(Index, NoChange_t)
+ */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void resize(Index rows, Index cols)
+ {
+ eigen_assert( EIGEN_IMPLIES(RowsAtCompileTime!=Dynamic,rows==RowsAtCompileTime)
+ && EIGEN_IMPLIES(ColsAtCompileTime!=Dynamic,cols==ColsAtCompileTime)
+ && EIGEN_IMPLIES(RowsAtCompileTime==Dynamic && MaxRowsAtCompileTime!=Dynamic,rows<=MaxRowsAtCompileTime)
+ && EIGEN_IMPLIES(ColsAtCompileTime==Dynamic && MaxColsAtCompileTime!=Dynamic,cols<=MaxColsAtCompileTime)
+ && rows>=0 && cols>=0 && "Invalid sizes when resizing a matrix or array.");
+ internal::check_rows_cols_for_overflow<MaxSizeAtCompileTime>::run(rows, cols);
+ #ifdef EIGEN_INITIALIZE_COEFFS
+ Index size = rows*cols;
+ bool size_changed = size != this->size();
+ m_storage.resize(size, rows, cols);
+ if(size_changed) EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+ #else
+ m_storage.resize(rows*cols, rows, cols);
+ #endif
+ }
+
+ /** Resizes \c *this to a vector of length \a size
+ *
+ * \only_for_vectors. This method does not work for
+ * partially dynamic matrices when the static dimension is anything other
+ * than 1. For example it will not work with Matrix<double, 2, Dynamic>.
+ *
+ * Example: \include Matrix_resize_int.cpp
+ * Output: \verbinclude Matrix_resize_int.out
+ *
+ * \sa resize(Index,Index), resize(NoChange_t, Index), resize(Index, NoChange_t)
+ */
+ EIGEN_DEVICE_FUNC
+ inline void resize(Index size)
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(PlainObjectBase)
+ eigen_assert(((SizeAtCompileTime == Dynamic && (MaxSizeAtCompileTime==Dynamic || size<=MaxSizeAtCompileTime)) || SizeAtCompileTime == size) && size>=0);
+ #ifdef EIGEN_INITIALIZE_COEFFS
+ bool size_changed = size != this->size();
+ #endif
+ if(RowsAtCompileTime == 1)
+ m_storage.resize(size, 1, size);
+ else
+ m_storage.resize(size, size, 1);
+ #ifdef EIGEN_INITIALIZE_COEFFS
+ if(size_changed) EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+ #endif
+ }
+
+ /** Resizes the matrix, changing only the number of columns. For the parameter of type NoChange_t, just pass the special value \c NoChange
+ * as in the example below.
+ *
+ * Example: \include Matrix_resize_NoChange_int.cpp
+ * Output: \verbinclude Matrix_resize_NoChange_int.out
+ *
+ * \sa resize(Index,Index)
+ */
+ EIGEN_DEVICE_FUNC
+ inline void resize(NoChange_t, Index cols)
+ {
+ resize(rows(), cols);
+ }
+
+ /** Resizes the matrix, changing only the number of rows. For the parameter of type NoChange_t, just pass the special value \c NoChange
+ * as in the example below.
+ *
+ * Example: \include Matrix_resize_int_NoChange.cpp
+ * Output: \verbinclude Matrix_resize_int_NoChange.out
+ *
+ * \sa resize(Index,Index)
+ */
+ EIGEN_DEVICE_FUNC
+ inline void resize(Index rows, NoChange_t)
+ {
+ resize(rows, cols());
+ }
+
+ /** Resizes \c *this to have the same dimensions as \a other.
+ * Takes care of doing all the checking that's needed.
+ *
+ * Note that copying a row-vector into a vector (and conversely) is allowed.
+ * The resizing, if any, is then done in the appropriate way so that row-vectors
+ * remain row-vectors and vectors remain vectors.
+ */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void resizeLike(const EigenBase<OtherDerived>& _other)
+ {
+ const OtherDerived& other = _other.derived();
+ internal::check_rows_cols_for_overflow<MaxSizeAtCompileTime>::run(other.rows(), other.cols());
+ const Index othersize = other.rows()*other.cols();
+ if(RowsAtCompileTime == 1)
+ {
+ eigen_assert(other.rows() == 1 || other.cols() == 1);
+ resize(1, othersize);
+ }
+ else if(ColsAtCompileTime == 1)
+ {
+ eigen_assert(other.rows() == 1 || other.cols() == 1);
+ resize(othersize, 1);
+ }
+ else resize(other.rows(), other.cols());
+ }
+
+ /** Resizes the matrix to \a rows x \a cols while leaving old values untouched.
+ *
+ * The method is intended for matrices of dynamic size. If you only want to change the number
+ * of rows and/or of columns, you can use conservativeResize(NoChange_t, Index) or
+ * conservativeResize(Index, NoChange_t).
+ *
+ * Matrices are resized relative to the top-left element. In case values need to be
+ * appended to the matrix they will be uninitialized.
+ */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void conservativeResize(Index rows, Index cols)
+ {
+ internal::conservative_resize_like_impl<Derived>::run(*this, rows, cols);
+ }
+
+ /** Resizes the matrix to \a rows x \a cols while leaving old values untouched.
+ *
+ * As opposed to conservativeResize(Index rows, Index cols), this version leaves
+ * the number of columns unchanged.
+ *
+ * In case the matrix is growing, new rows will be uninitialized.
+ */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void conservativeResize(Index rows, NoChange_t)
+ {
+ // Note: see the comment in conservativeResize(Index,Index)
+ conservativeResize(rows, cols());
+ }
+
+ /** Resizes the matrix to \a rows x \a cols while leaving old values untouched.
+ *
+ * As opposed to conservativeResize(Index rows, Index cols), this version leaves
+ * the number of rows unchanged.
+ *
+ * In case the matrix is growing, new columns will be uninitialized.
+ */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void conservativeResize(NoChange_t, Index cols)
+ {
+ // Note: see the comment in conservativeResize(Index,Index)
+ conservativeResize(rows(), cols);
+ }
+
+ /** Resizes the vector to \a size while retaining old values.
+ *
+ * \only_for_vectors. This method does not work for
+ * partially dynamic matrices when the static dimension is anything other
+ * than 1. For example it will not work with Matrix<double, 2, Dynamic>.
+ *
+ * When values are appended, they will be uninitialized.
+ */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void conservativeResize(Index size)
+ {
+ internal::conservative_resize_like_impl<Derived>::run(*this, size);
+ }
+
+ /** Resizes the matrix to \a rows x \a cols of \c other, while leaving old values untouched.
+ *
+ * The method is intended for matrices of dynamic size. If you only want to change the number
+ * of rows and/or of columns, you can use conservativeResize(NoChange_t, Index) or
+ * conservativeResize(Index, NoChange_t).
+ *
+ * Matrices are resized relative to the top-left element. In case values need to be
+ * appended to the matrix they will copied from \c other.
+ */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void conservativeResizeLike(const DenseBase<OtherDerived>& other)
+ {
+ internal::conservative_resize_like_impl<Derived,OtherDerived>::run(*this, other);
+ }
+
+ /** This is a special case of the templated operator=. Its purpose is to
+ * prevent a default operator= from hiding the templated operator=.
+ */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Derived& operator=(const PlainObjectBase& other)
+ {
+ return _set(other);
+ }
+
+ /** \sa MatrixBase::lazyAssign() */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Derived& lazyAssign(const DenseBase<OtherDerived>& other)
+ {
+ _resize_to_match(other);
+ return Base::lazyAssign(other.derived());
+ }
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Derived& operator=(const ReturnByValue<OtherDerived>& func)
+ {
+ resize(func.rows(), func.cols());
+ return Base::operator=(func);
+ }
+
+ // Prevent user from trying to instantiate PlainObjectBase objects
+ // by making all its constructor protected. See bug 1074.
+ protected:
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE PlainObjectBase() : m_storage()
+ {
+// _check_template_params();
+// EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+ }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ // FIXME is it still needed ?
+ /** \internal */
+ EIGEN_DEVICE_FUNC
+ explicit PlainObjectBase(internal::constructor_without_unaligned_array_assert)
+ : m_storage(internal::constructor_without_unaligned_array_assert())
+ {
+// _check_template_params(); EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+ }
+#endif
+
+#if EIGEN_HAS_RVALUE_REFERENCES
+ EIGEN_DEVICE_FUNC
+ PlainObjectBase(PlainObjectBase&& other) EIGEN_NOEXCEPT
+ : m_storage( std::move(other.m_storage) )
+ {
+ }
+
+ EIGEN_DEVICE_FUNC
+ PlainObjectBase& operator=(PlainObjectBase&& other) EIGEN_NOEXCEPT
+ {
+ using std::swap;
+ swap(m_storage, other.m_storage);
+ return *this;
+ }
+#endif
+
+ /** Copy constructor */
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE PlainObjectBase(const PlainObjectBase& other)
+ : Base(), m_storage(other.m_storage) { }
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE PlainObjectBase(Index size, Index rows, Index cols)
+ : m_storage(size, rows, cols)
+ {
+// _check_template_params();
+// EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+ }
+
+ /** \sa PlainObjectBase::operator=(const EigenBase<OtherDerived>&) */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE PlainObjectBase(const DenseBase<OtherDerived> &other)
+ : m_storage()
+ {
+ _check_template_params();
+ resizeLike(other);
+ _set_noalias(other);
+ }
+
+ /** \sa PlainObjectBase::operator=(const EigenBase<OtherDerived>&) */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE PlainObjectBase(const EigenBase<OtherDerived> &other)
+ : m_storage()
+ {
+ _check_template_params();
+ resizeLike(other);
+ *this = other.derived();
+ }
+ /** \brief Copy constructor with in-place evaluation */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE PlainObjectBase(const ReturnByValue<OtherDerived>& other)
+ {
+ _check_template_params();
+ // FIXME this does not automatically transpose vectors if necessary
+ resize(other.rows(), other.cols());
+ other.evalTo(this->derived());
+ }
+
+ public:
+
+ /** \brief Copies the generic expression \a other into *this.
+ * \copydetails DenseBase::operator=(const EigenBase<OtherDerived> &other)
+ */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Derived& operator=(const EigenBase<OtherDerived> &other)
+ {
+ _resize_to_match(other);
+ Base::operator=(other.derived());
+ return this->derived();
+ }
+
+ /** \name Map
+ * These are convenience functions returning Map objects. The Map() static functions return unaligned Map objects,
+ * while the AlignedMap() functions return aligned Map objects and thus should be called only with 16-byte-aligned
+ * \a data pointers.
+ *
+ * \see class Map
+ */
+ //@{
+ static inline ConstMapType Map(const Scalar* data)
+ { return ConstMapType(data); }
+ static inline MapType Map(Scalar* data)
+ { return MapType(data); }
+ static inline ConstMapType Map(const Scalar* data, Index size)
+ { return ConstMapType(data, size); }
+ static inline MapType Map(Scalar* data, Index size)
+ { return MapType(data, size); }
+ static inline ConstMapType Map(const Scalar* data, Index rows, Index cols)
+ { return ConstMapType(data, rows, cols); }
+ static inline MapType Map(Scalar* data, Index rows, Index cols)
+ { return MapType(data, rows, cols); }
+
+ static inline ConstAlignedMapType MapAligned(const Scalar* data)
+ { return ConstAlignedMapType(data); }
+ static inline AlignedMapType MapAligned(Scalar* data)
+ { return AlignedMapType(data); }
+ static inline ConstAlignedMapType MapAligned(const Scalar* data, Index size)
+ { return ConstAlignedMapType(data, size); }
+ static inline AlignedMapType MapAligned(Scalar* data, Index size)
+ { return AlignedMapType(data, size); }
+ static inline ConstAlignedMapType MapAligned(const Scalar* data, Index rows, Index cols)
+ { return ConstAlignedMapType(data, rows, cols); }
+ static inline AlignedMapType MapAligned(Scalar* data, Index rows, Index cols)
+ { return AlignedMapType(data, rows, cols); }
+
+ template<int Outer, int Inner>
+ static inline typename StridedConstMapType<Stride<Outer, Inner> >::type Map(const Scalar* data, const Stride<Outer, Inner>& stride)
+ { return typename StridedConstMapType<Stride<Outer, Inner> >::type(data, stride); }
+ template<int Outer, int Inner>
+ static inline typename StridedMapType<Stride<Outer, Inner> >::type Map(Scalar* data, const Stride<Outer, Inner>& stride)
+ { return typename StridedMapType<Stride<Outer, Inner> >::type(data, stride); }
+ template<int Outer, int Inner>
+ static inline typename StridedConstMapType<Stride<Outer, Inner> >::type Map(const Scalar* data, Index size, const Stride<Outer, Inner>& stride)
+ { return typename StridedConstMapType<Stride<Outer, Inner> >::type(data, size, stride); }
+ template<int Outer, int Inner>
+ static inline typename StridedMapType<Stride<Outer, Inner> >::type Map(Scalar* data, Index size, const Stride<Outer, Inner>& stride)
+ { return typename StridedMapType<Stride<Outer, Inner> >::type(data, size, stride); }
+ template<int Outer, int Inner>
+ static inline typename StridedConstMapType<Stride<Outer, Inner> >::type Map(const Scalar* data, Index rows, Index cols, const Stride<Outer, Inner>& stride)
+ { return typename StridedConstMapType<Stride<Outer, Inner> >::type(data, rows, cols, stride); }
+ template<int Outer, int Inner>
+ static inline typename StridedMapType<Stride<Outer, Inner> >::type Map(Scalar* data, Index rows, Index cols, const Stride<Outer, Inner>& stride)
+ { return typename StridedMapType<Stride<Outer, Inner> >::type(data, rows, cols, stride); }
+
+ template<int Outer, int Inner>
+ static inline typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type MapAligned(const Scalar* data, const Stride<Outer, Inner>& stride)
+ { return typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type(data, stride); }
+ template<int Outer, int Inner>
+ static inline typename StridedAlignedMapType<Stride<Outer, Inner> >::type MapAligned(Scalar* data, const Stride<Outer, Inner>& stride)
+ { return typename StridedAlignedMapType<Stride<Outer, Inner> >::type(data, stride); }
+ template<int Outer, int Inner>
+ static inline typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type MapAligned(const Scalar* data, Index size, const Stride<Outer, Inner>& stride)
+ { return typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type(data, size, stride); }
+ template<int Outer, int Inner>
+ static inline typename StridedAlignedMapType<Stride<Outer, Inner> >::type MapAligned(Scalar* data, Index size, const Stride<Outer, Inner>& stride)
+ { return typename StridedAlignedMapType<Stride<Outer, Inner> >::type(data, size, stride); }
+ template<int Outer, int Inner>
+ static inline typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type MapAligned(const Scalar* data, Index rows, Index cols, const Stride<Outer, Inner>& stride)
+ { return typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type(data, rows, cols, stride); }
+ template<int Outer, int Inner>
+ static inline typename StridedAlignedMapType<Stride<Outer, Inner> >::type MapAligned(Scalar* data, Index rows, Index cols, const Stride<Outer, Inner>& stride)
+ { return typename StridedAlignedMapType<Stride<Outer, Inner> >::type(data, rows, cols, stride); }
+ //@}
+
+ using Base::setConstant;
+ EIGEN_DEVICE_FUNC Derived& setConstant(Index size, const Scalar& val);
+ EIGEN_DEVICE_FUNC Derived& setConstant(Index rows, Index cols, const Scalar& val);
+
+ using Base::setZero;
+ EIGEN_DEVICE_FUNC Derived& setZero(Index size);
+ EIGEN_DEVICE_FUNC Derived& setZero(Index rows, Index cols);
+
+ using Base::setOnes;
+ EIGEN_DEVICE_FUNC Derived& setOnes(Index size);
+ EIGEN_DEVICE_FUNC Derived& setOnes(Index rows, Index cols);
+
+ using Base::setRandom;
+ Derived& setRandom(Index size);
+ Derived& setRandom(Index rows, Index cols);
+
+ #ifdef EIGEN_PLAINOBJECTBASE_PLUGIN
+ #include EIGEN_PLAINOBJECTBASE_PLUGIN
+ #endif
+
+ protected:
+ /** \internal Resizes *this in preparation for assigning \a other to it.
+ * Takes care of doing all the checking that's needed.
+ *
+ * Note that copying a row-vector into a vector (and conversely) is allowed.
+ * The resizing, if any, is then done in the appropriate way so that row-vectors
+ * remain row-vectors and vectors remain vectors.
+ */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void _resize_to_match(const EigenBase<OtherDerived>& other)
+ {
+ #ifdef EIGEN_NO_AUTOMATIC_RESIZING
+ eigen_assert((this->size()==0 || (IsVectorAtCompileTime ? (this->size() == other.size())
+ : (rows() == other.rows() && cols() == other.cols())))
+ && "Size mismatch. Automatic resizing is disabled because EIGEN_NO_AUTOMATIC_RESIZING is defined");
+ EIGEN_ONLY_USED_FOR_DEBUG(other);
+ #else
+ resizeLike(other);
+ #endif
+ }
+
+ /**
+ * \brief Copies the value of the expression \a other into \c *this with automatic resizing.
+ *
+ * *this might be resized to match the dimensions of \a other. If *this was a null matrix (not already initialized),
+ * it will be initialized.
+ *
+ * Note that copying a row-vector into a vector (and conversely) is allowed.
+ * The resizing, if any, is then done in the appropriate way so that row-vectors
+ * remain row-vectors and vectors remain vectors.
+ *
+ * \sa operator=(const MatrixBase<OtherDerived>&), _set_noalias()
+ *
+ * \internal
+ */
+ // aliasing is dealt once in internall::call_assignment
+ // so at this stage we have to assume aliasing... and resising has to be done later.
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Derived& _set(const DenseBase<OtherDerived>& other)
+ {
+ internal::call_assignment(this->derived(), other.derived());
+ return this->derived();
+ }
+
+ /** \internal Like _set() but additionally makes the assumption that no aliasing effect can happen (which
+ * is the case when creating a new matrix) so one can enforce lazy evaluation.
+ *
+ * \sa operator=(const MatrixBase<OtherDerived>&), _set()
+ */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE Derived& _set_noalias(const DenseBase<OtherDerived>& other)
+ {
+ // I don't think we need this resize call since the lazyAssign will anyways resize
+ // and lazyAssign will be called by the assign selector.
+ //_resize_to_match(other);
+ // the 'false' below means to enforce lazy evaluation. We don't use lazyAssign() because
+ // it wouldn't allow to copy a row-vector into a column-vector.
+ internal::call_assignment_no_alias(this->derived(), other.derived(), internal::assign_op<Scalar,typename OtherDerived::Scalar>());
+ return this->derived();
+ }
+
+ template<typename T0, typename T1>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void _init2(Index rows, Index cols, typename internal::enable_if<Base::SizeAtCompileTime!=2,T0>::type* = 0)
+ {
+ EIGEN_STATIC_ASSERT(bool(NumTraits<T0>::IsInteger) &&
+ bool(NumTraits<T1>::IsInteger),
+ FLOATING_POINT_ARGUMENT_PASSED__INTEGER_WAS_EXPECTED)
+ resize(rows,cols);
+ }
+
+ template<typename T0, typename T1>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void _init2(const T0& val0, const T1& val1, typename internal::enable_if<Base::SizeAtCompileTime==2,T0>::type* = 0)
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(PlainObjectBase, 2)
+ m_storage.data()[0] = Scalar(val0);
+ m_storage.data()[1] = Scalar(val1);
+ }
+
+ template<typename T0, typename T1>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void _init2(const Index& val0, const Index& val1,
+ typename internal::enable_if< (!internal::is_same<Index,Scalar>::value)
+ && (internal::is_same<T0,Index>::value)
+ && (internal::is_same<T1,Index>::value)
+ && Base::SizeAtCompileTime==2,T1>::type* = 0)
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(PlainObjectBase, 2)
+ m_storage.data()[0] = Scalar(val0);
+ m_storage.data()[1] = Scalar(val1);
+ }
+
+ // The argument is convertible to the Index type and we either have a non 1x1 Matrix, or a dynamic-sized Array,
+ // then the argument is meant to be the size of the object.
+ template<typename T>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void _init1(Index size, typename internal::enable_if< (Base::SizeAtCompileTime!=1 || !internal::is_convertible<T, Scalar>::value)
+ && ((!internal::is_same<typename internal::traits<Derived>::XprKind,ArrayXpr>::value || Base::SizeAtCompileTime==Dynamic)),T>::type* = 0)
+ {
+ // NOTE MSVC 2008 complains if we directly put bool(NumTraits<T>::IsInteger) as the EIGEN_STATIC_ASSERT argument.
+ const bool is_integer = NumTraits<T>::IsInteger;
+ EIGEN_UNUSED_VARIABLE(is_integer);
+ EIGEN_STATIC_ASSERT(is_integer,
+ FLOATING_POINT_ARGUMENT_PASSED__INTEGER_WAS_EXPECTED)
+ resize(size);
+ }
+
+ // We have a 1x1 matrix/array => the argument is interpreted as the value of the unique coefficient (case where scalar type can be implicitely converted)
+ template<typename T>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void _init1(const Scalar& val0, typename internal::enable_if<Base::SizeAtCompileTime==1 && internal::is_convertible<T, Scalar>::value,T>::type* = 0)
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(PlainObjectBase, 1)
+ m_storage.data()[0] = val0;
+ }
+
+ // We have a 1x1 matrix/array => the argument is interpreted as the value of the unique coefficient (case where scalar type match the index type)
+ template<typename T>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void _init1(const Index& val0,
+ typename internal::enable_if< (!internal::is_same<Index,Scalar>::value)
+ && (internal::is_same<Index,T>::value)
+ && Base::SizeAtCompileTime==1
+ && internal::is_convertible<T, Scalar>::value,T*>::type* = 0)
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(PlainObjectBase, 1)
+ m_storage.data()[0] = Scalar(val0);
+ }
+
+ // Initialize a fixed size matrix from a pointer to raw data
+ template<typename T>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void _init1(const Scalar* data){
+ this->_set_noalias(ConstMapType(data));
+ }
+
+ // Initialize an arbitrary matrix from a dense expression
+ template<typename T, typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void _init1(const DenseBase<OtherDerived>& other){
+ this->_set_noalias(other);
+ }
+
+ // Initialize an arbitrary matrix from an object convertible to the Derived type.
+ template<typename T>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void _init1(const Derived& other){
+ this->_set_noalias(other);
+ }
+
+ // Initialize an arbitrary matrix from a generic Eigen expression
+ template<typename T, typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void _init1(const EigenBase<OtherDerived>& other){
+ this->derived() = other;
+ }
+
+ template<typename T, typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void _init1(const ReturnByValue<OtherDerived>& other)
+ {
+ resize(other.rows(), other.cols());
+ other.evalTo(this->derived());
+ }
+
+ template<typename T, typename OtherDerived, int ColsAtCompileTime>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void _init1(const RotationBase<OtherDerived,ColsAtCompileTime>& r)
+ {
+ this->derived() = r;
+ }
+
+ // For fixed-size Array<Scalar,...>
+ template<typename T>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void _init1(const Scalar& val0,
+ typename internal::enable_if< Base::SizeAtCompileTime!=Dynamic
+ && Base::SizeAtCompileTime!=1
+ && internal::is_convertible<T, Scalar>::value
+ && internal::is_same<typename internal::traits<Derived>::XprKind,ArrayXpr>::value,T>::type* = 0)
+ {
+ Base::setConstant(val0);
+ }
+
+ // For fixed-size Array<Index,...>
+ template<typename T>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void _init1(const Index& val0,
+ typename internal::enable_if< (!internal::is_same<Index,Scalar>::value)
+ && (internal::is_same<Index,T>::value)
+ && Base::SizeAtCompileTime!=Dynamic
+ && Base::SizeAtCompileTime!=1
+ && internal::is_convertible<T, Scalar>::value
+ && internal::is_same<typename internal::traits<Derived>::XprKind,ArrayXpr>::value,T*>::type* = 0)
+ {
+ Base::setConstant(val0);
+ }
+
+ template<typename MatrixTypeA, typename MatrixTypeB, bool SwapPointers>
+ friend struct internal::matrix_swap_impl;
+
+ public:
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** \internal
+ * \brief Override DenseBase::swap() since for dynamic-sized matrices
+ * of same type it is enough to swap the data pointers.
+ */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ void swap(DenseBase<OtherDerived> & other)
+ {
+ enum { SwapPointers = internal::is_same<Derived, OtherDerived>::value && Base::SizeAtCompileTime==Dynamic };
+ internal::matrix_swap_impl<Derived, OtherDerived, bool(SwapPointers)>::run(this->derived(), other.derived());
+ }
+
+ /** \internal
+ * \brief const version forwarded to DenseBase::swap
+ */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ void swap(DenseBase<OtherDerived> const & other)
+ { Base::swap(other.derived()); }
+
+ EIGEN_DEVICE_FUNC
+ static EIGEN_STRONG_INLINE void _check_template_params()
+ {
+ EIGEN_STATIC_ASSERT((EIGEN_IMPLIES(MaxRowsAtCompileTime==1 && MaxColsAtCompileTime!=1, (Options&RowMajor)==RowMajor)
+ && EIGEN_IMPLIES(MaxColsAtCompileTime==1 && MaxRowsAtCompileTime!=1, (Options&RowMajor)==0)
+ && ((RowsAtCompileTime == Dynamic) || (RowsAtCompileTime >= 0))
+ && ((ColsAtCompileTime == Dynamic) || (ColsAtCompileTime >= 0))
+ && ((MaxRowsAtCompileTime == Dynamic) || (MaxRowsAtCompileTime >= 0))
+ && ((MaxColsAtCompileTime == Dynamic) || (MaxColsAtCompileTime >= 0))
+ && (MaxRowsAtCompileTime == RowsAtCompileTime || RowsAtCompileTime==Dynamic)
+ && (MaxColsAtCompileTime == ColsAtCompileTime || ColsAtCompileTime==Dynamic)
+ && (Options & (DontAlign|RowMajor)) == Options),
+ INVALID_MATRIX_TEMPLATE_PARAMETERS)
+ }
+
+ enum { IsPlainObjectBase = 1 };
+#endif
+};
+
+namespace internal {
+
+template <typename Derived, typename OtherDerived, bool IsVector>
+struct conservative_resize_like_impl
+{
+ static void run(DenseBase<Derived>& _this, Index rows, Index cols)
+ {
+ if (_this.rows() == rows && _this.cols() == cols) return;
+ EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(Derived)
+
+ if ( ( Derived::IsRowMajor && _this.cols() == cols) || // row-major and we change only the number of rows
+ (!Derived::IsRowMajor && _this.rows() == rows) ) // column-major and we change only the number of columns
+ {
+ internal::check_rows_cols_for_overflow<Derived::MaxSizeAtCompileTime>::run(rows, cols);
+ _this.derived().m_storage.conservativeResize(rows*cols,rows,cols);
+ }
+ else
+ {
+ // The storage order does not allow us to use reallocation.
+ typename Derived::PlainObject tmp(rows,cols);
+ const Index common_rows = numext::mini(rows, _this.rows());
+ const Index common_cols = numext::mini(cols, _this.cols());
+ tmp.block(0,0,common_rows,common_cols) = _this.block(0,0,common_rows,common_cols);
+ _this.derived().swap(tmp);
+ }
+ }
+
+ static void run(DenseBase<Derived>& _this, const DenseBase<OtherDerived>& other)
+ {
+ if (_this.rows() == other.rows() && _this.cols() == other.cols()) return;
+
+ // Note: Here is space for improvement. Basically, for conservativeResize(Index,Index),
+ // neither RowsAtCompileTime or ColsAtCompileTime must be Dynamic. If only one of the
+ // dimensions is dynamic, one could use either conservativeResize(Index rows, NoChange_t) or
+ // conservativeResize(NoChange_t, Index cols). For these methods new static asserts like
+ // EIGEN_STATIC_ASSERT_DYNAMIC_ROWS and EIGEN_STATIC_ASSERT_DYNAMIC_COLS would be good.
+ EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(Derived)
+ EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(OtherDerived)
+
+ if ( ( Derived::IsRowMajor && _this.cols() == other.cols()) || // row-major and we change only the number of rows
+ (!Derived::IsRowMajor && _this.rows() == other.rows()) ) // column-major and we change only the number of columns
+ {
+ const Index new_rows = other.rows() - _this.rows();
+ const Index new_cols = other.cols() - _this.cols();
+ _this.derived().m_storage.conservativeResize(other.size(),other.rows(),other.cols());
+ if (new_rows>0)
+ _this.bottomRightCorner(new_rows, other.cols()) = other.bottomRows(new_rows);
+ else if (new_cols>0)
+ _this.bottomRightCorner(other.rows(), new_cols) = other.rightCols(new_cols);
+ }
+ else
+ {
+ // The storage order does not allow us to use reallocation.
+ typename Derived::PlainObject tmp(other);
+ const Index common_rows = numext::mini(tmp.rows(), _this.rows());
+ const Index common_cols = numext::mini(tmp.cols(), _this.cols());
+ tmp.block(0,0,common_rows,common_cols) = _this.block(0,0,common_rows,common_cols);
+ _this.derived().swap(tmp);
+ }
+ }
+};
+
+// Here, the specialization for vectors inherits from the general matrix case
+// to allow calling .conservativeResize(rows,cols) on vectors.
+template <typename Derived, typename OtherDerived>
+struct conservative_resize_like_impl<Derived,OtherDerived,true>
+ : conservative_resize_like_impl<Derived,OtherDerived,false>
+{
+ using conservative_resize_like_impl<Derived,OtherDerived,false>::run;
+
+ static void run(DenseBase<Derived>& _this, Index size)
+ {
+ const Index new_rows = Derived::RowsAtCompileTime==1 ? 1 : size;
+ const Index new_cols = Derived::RowsAtCompileTime==1 ? size : 1;
+ _this.derived().m_storage.conservativeResize(size,new_rows,new_cols);
+ }
+
+ static void run(DenseBase<Derived>& _this, const DenseBase<OtherDerived>& other)
+ {
+ if (_this.rows() == other.rows() && _this.cols() == other.cols()) return;
+
+ const Index num_new_elements = other.size() - _this.size();
+
+ const Index new_rows = Derived::RowsAtCompileTime==1 ? 1 : other.rows();
+ const Index new_cols = Derived::RowsAtCompileTime==1 ? other.cols() : 1;
+ _this.derived().m_storage.conservativeResize(other.size(),new_rows,new_cols);
+
+ if (num_new_elements > 0)
+ _this.tail(num_new_elements) = other.tail(num_new_elements);
+ }
+};
+
+template<typename MatrixTypeA, typename MatrixTypeB, bool SwapPointers>
+struct matrix_swap_impl
+{
+ EIGEN_DEVICE_FUNC
+ static inline void run(MatrixTypeA& a, MatrixTypeB& b)
+ {
+ a.base().swap(b);
+ }
+};
+
+template<typename MatrixTypeA, typename MatrixTypeB>
+struct matrix_swap_impl<MatrixTypeA, MatrixTypeB, true>
+{
+ EIGEN_DEVICE_FUNC
+ static inline void run(MatrixTypeA& a, MatrixTypeB& b)
+ {
+ static_cast<typename MatrixTypeA::Base&>(a).m_storage.swap(static_cast<typename MatrixTypeB::Base&>(b).m_storage);
+ }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_DENSESTORAGEBASE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Product.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Product.h
new file mode 100644
index 000000000..ae0c94b38
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Product.h
@@ -0,0 +1,186 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PRODUCT_H
+#define EIGEN_PRODUCT_H
+
+namespace Eigen {
+
+template<typename Lhs, typename Rhs, int Option, typename StorageKind> class ProductImpl;
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, int Option>
+struct traits<Product<Lhs, Rhs, Option> >
+{
+ typedef typename remove_all<Lhs>::type LhsCleaned;
+ typedef typename remove_all<Rhs>::type RhsCleaned;
+ typedef traits<LhsCleaned> LhsTraits;
+ typedef traits<RhsCleaned> RhsTraits;
+
+ typedef MatrixXpr XprKind;
+
+ typedef typename ScalarBinaryOpTraits<typename traits<LhsCleaned>::Scalar, typename traits<RhsCleaned>::Scalar>::ReturnType Scalar;
+ typedef typename product_promote_storage_type<typename LhsTraits::StorageKind,
+ typename RhsTraits::StorageKind,
+ internal::product_type<Lhs,Rhs>::ret>::ret StorageKind;
+ typedef typename promote_index_type<typename LhsTraits::StorageIndex,
+ typename RhsTraits::StorageIndex>::type StorageIndex;
+
+ enum {
+ RowsAtCompileTime = LhsTraits::RowsAtCompileTime,
+ ColsAtCompileTime = RhsTraits::ColsAtCompileTime,
+ MaxRowsAtCompileTime = LhsTraits::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = RhsTraits::MaxColsAtCompileTime,
+
+ // FIXME: only needed by GeneralMatrixMatrixTriangular
+ InnerSize = EIGEN_SIZE_MIN_PREFER_FIXED(LhsTraits::ColsAtCompileTime, RhsTraits::RowsAtCompileTime),
+
+ // The storage order is somewhat arbitrary here. The correct one will be determined through the evaluator.
+ Flags = (MaxRowsAtCompileTime==1 && MaxColsAtCompileTime!=1) ? RowMajorBit
+ : (MaxColsAtCompileTime==1 && MaxRowsAtCompileTime!=1) ? 0
+ : ( ((LhsTraits::Flags&NoPreferredStorageOrderBit) && (RhsTraits::Flags&RowMajorBit))
+ || ((RhsTraits::Flags&NoPreferredStorageOrderBit) && (LhsTraits::Flags&RowMajorBit)) ) ? RowMajorBit
+ : NoPreferredStorageOrderBit
+ };
+};
+
+} // end namespace internal
+
+/** \class Product
+ * \ingroup Core_Module
+ *
+ * \brief Expression of the product of two arbitrary matrices or vectors
+ *
+ * \tparam _Lhs the type of the left-hand side expression
+ * \tparam _Rhs the type of the right-hand side expression
+ *
+ * This class represents an expression of the product of two arbitrary matrices.
+ *
+ * The other template parameters are:
+ * \tparam Option can be DefaultProduct, AliasFreeProduct, or LazyProduct
+ *
+ */
+template<typename _Lhs, typename _Rhs, int Option>
+class Product : public ProductImpl<_Lhs,_Rhs,Option,
+ typename internal::product_promote_storage_type<typename internal::traits<_Lhs>::StorageKind,
+ typename internal::traits<_Rhs>::StorageKind,
+ internal::product_type<_Lhs,_Rhs>::ret>::ret>
+{
+ public:
+
+ typedef _Lhs Lhs;
+ typedef _Rhs Rhs;
+
+ typedef typename ProductImpl<
+ Lhs, Rhs, Option,
+ typename internal::product_promote_storage_type<typename internal::traits<Lhs>::StorageKind,
+ typename internal::traits<Rhs>::StorageKind,
+ internal::product_type<Lhs,Rhs>::ret>::ret>::Base Base;
+ EIGEN_GENERIC_PUBLIC_INTERFACE(Product)
+
+ typedef typename internal::ref_selector<Lhs>::type LhsNested;
+ typedef typename internal::ref_selector<Rhs>::type RhsNested;
+ typedef typename internal::remove_all<LhsNested>::type LhsNestedCleaned;
+ typedef typename internal::remove_all<RhsNested>::type RhsNestedCleaned;
+
+ EIGEN_DEVICE_FUNC Product(const Lhs& lhs, const Rhs& rhs) : m_lhs(lhs), m_rhs(rhs)
+ {
+ eigen_assert(lhs.cols() == rhs.rows()
+ && "invalid matrix product"
+ && "if you wanted a coeff-wise or a dot product use the respective explicit functions");
+ }
+
+ EIGEN_DEVICE_FUNC inline Index rows() const { return m_lhs.rows(); }
+ EIGEN_DEVICE_FUNC inline Index cols() const { return m_rhs.cols(); }
+
+ EIGEN_DEVICE_FUNC const LhsNestedCleaned& lhs() const { return m_lhs; }
+ EIGEN_DEVICE_FUNC const RhsNestedCleaned& rhs() const { return m_rhs; }
+
+ protected:
+
+ LhsNested m_lhs;
+ RhsNested m_rhs;
+};
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, int Option, int ProductTag = internal::product_type<Lhs,Rhs>::ret>
+class dense_product_base
+ : public internal::dense_xpr_base<Product<Lhs,Rhs,Option> >::type
+{};
+
+/** Convertion to scalar for inner-products */
+template<typename Lhs, typename Rhs, int Option>
+class dense_product_base<Lhs, Rhs, Option, InnerProduct>
+ : public internal::dense_xpr_base<Product<Lhs,Rhs,Option> >::type
+{
+ typedef Product<Lhs,Rhs,Option> ProductXpr;
+ typedef typename internal::dense_xpr_base<ProductXpr>::type Base;
+public:
+ using Base::derived;
+ typedef typename Base::Scalar Scalar;
+
+ operator const Scalar() const
+ {
+ return internal::evaluator<ProductXpr>(derived()).coeff(0,0);
+ }
+};
+
+} // namespace internal
+
+// Generic API dispatcher
+template<typename Lhs, typename Rhs, int Option, typename StorageKind>
+class ProductImpl : public internal::generic_xpr_base<Product<Lhs,Rhs,Option>, MatrixXpr, StorageKind>::type
+{
+ public:
+ typedef typename internal::generic_xpr_base<Product<Lhs,Rhs,Option>, MatrixXpr, StorageKind>::type Base;
+};
+
+template<typename Lhs, typename Rhs, int Option>
+class ProductImpl<Lhs,Rhs,Option,Dense>
+ : public internal::dense_product_base<Lhs,Rhs,Option>
+{
+ typedef Product<Lhs, Rhs, Option> Derived;
+
+ public:
+
+ typedef typename internal::dense_product_base<Lhs, Rhs, Option> Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(Derived)
+ protected:
+ enum {
+ IsOneByOne = (RowsAtCompileTime == 1 || RowsAtCompileTime == Dynamic) &&
+ (ColsAtCompileTime == 1 || ColsAtCompileTime == Dynamic),
+ EnableCoeff = IsOneByOne || Option==LazyProduct
+ };
+
+ public:
+
+ EIGEN_DEVICE_FUNC Scalar coeff(Index row, Index col) const
+ {
+ EIGEN_STATIC_ASSERT(EnableCoeff, THIS_METHOD_IS_ONLY_FOR_INNER_OR_LAZY_PRODUCTS);
+ eigen_assert( (Option==LazyProduct) || (this->rows() == 1 && this->cols() == 1) );
+
+ return internal::evaluator<Derived>(derived()).coeff(row,col);
+ }
+
+ EIGEN_DEVICE_FUNC Scalar coeff(Index i) const
+ {
+ EIGEN_STATIC_ASSERT(EnableCoeff, THIS_METHOD_IS_ONLY_FOR_INNER_OR_LAZY_PRODUCTS);
+ eigen_assert( (Option==LazyProduct) || (this->rows() == 1 && this->cols() == 1) );
+
+ return internal::evaluator<Derived>(derived()).coeff(i);
+ }
+
+
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_PRODUCT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/ProductEvaluators.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/ProductEvaluators.h
new file mode 100644
index 000000000..c42725dbd
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/ProductEvaluators.h
@@ -0,0 +1,1105 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2011 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+#ifndef EIGEN_PRODUCTEVALUATORS_H
+#define EIGEN_PRODUCTEVALUATORS_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** \internal
+ * Evaluator of a product expression.
+ * Since products require special treatments to handle all possible cases,
+ * we simply deffer the evaluation logic to a product_evaluator class
+ * which offers more partial specialization possibilities.
+ *
+ * \sa class product_evaluator
+ */
+template<typename Lhs, typename Rhs, int Options>
+struct evaluator<Product<Lhs, Rhs, Options> >
+ : public product_evaluator<Product<Lhs, Rhs, Options> >
+{
+ typedef Product<Lhs, Rhs, Options> XprType;
+ typedef product_evaluator<XprType> Base;
+
+ EIGEN_DEVICE_FUNC explicit evaluator(const XprType& xpr) : Base(xpr) {}
+};
+
+// Catch "scalar * ( A * B )" and transform it to "(A*scalar) * B"
+// TODO we should apply that rule only if that's really helpful
+template<typename Lhs, typename Rhs, typename Scalar1, typename Scalar2, typename Plain1>
+struct evaluator_assume_aliasing<CwiseBinaryOp<internal::scalar_product_op<Scalar1,Scalar2>,
+ const CwiseNullaryOp<internal::scalar_constant_op<Scalar1>, Plain1>,
+ const Product<Lhs, Rhs, DefaultProduct> > >
+{
+ static const bool value = true;
+};
+template<typename Lhs, typename Rhs, typename Scalar1, typename Scalar2, typename Plain1>
+struct evaluator<CwiseBinaryOp<internal::scalar_product_op<Scalar1,Scalar2>,
+ const CwiseNullaryOp<internal::scalar_constant_op<Scalar1>, Plain1>,
+ const Product<Lhs, Rhs, DefaultProduct> > >
+ : public evaluator<Product<EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(Scalar1,Lhs,product), Rhs, DefaultProduct> >
+{
+ typedef CwiseBinaryOp<internal::scalar_product_op<Scalar1,Scalar2>,
+ const CwiseNullaryOp<internal::scalar_constant_op<Scalar1>, Plain1>,
+ const Product<Lhs, Rhs, DefaultProduct> > XprType;
+ typedef evaluator<Product<EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(Scalar1,Lhs,product), Rhs, DefaultProduct> > Base;
+
+ EIGEN_DEVICE_FUNC explicit evaluator(const XprType& xpr)
+ : Base(xpr.lhs().functor().m_other * xpr.rhs().lhs() * xpr.rhs().rhs())
+ {}
+};
+
+
+template<typename Lhs, typename Rhs, int DiagIndex>
+struct evaluator<Diagonal<const Product<Lhs, Rhs, DefaultProduct>, DiagIndex> >
+ : public evaluator<Diagonal<const Product<Lhs, Rhs, LazyProduct>, DiagIndex> >
+{
+ typedef Diagonal<const Product<Lhs, Rhs, DefaultProduct>, DiagIndex> XprType;
+ typedef evaluator<Diagonal<const Product<Lhs, Rhs, LazyProduct>, DiagIndex> > Base;
+
+ EIGEN_DEVICE_FUNC explicit evaluator(const XprType& xpr)
+ : Base(Diagonal<const Product<Lhs, Rhs, LazyProduct>, DiagIndex>(
+ Product<Lhs, Rhs, LazyProduct>(xpr.nestedExpression().lhs(), xpr.nestedExpression().rhs()),
+ xpr.index() ))
+ {}
+};
+
+
+// Helper class to perform a matrix product with the destination at hand.
+// Depending on the sizes of the factors, there are different evaluation strategies
+// as controlled by internal::product_type.
+template< typename Lhs, typename Rhs,
+ typename LhsShape = typename evaluator_traits<Lhs>::Shape,
+ typename RhsShape = typename evaluator_traits<Rhs>::Shape,
+ int ProductType = internal::product_type<Lhs,Rhs>::value>
+struct generic_product_impl;
+
+template<typename Lhs, typename Rhs>
+struct evaluator_assume_aliasing<Product<Lhs, Rhs, DefaultProduct> > {
+ static const bool value = true;
+};
+
+// This is the default evaluator implementation for products:
+// It creates a temporary and call generic_product_impl
+template<typename Lhs, typename Rhs, int Options, int ProductTag, typename LhsShape, typename RhsShape>
+struct product_evaluator<Product<Lhs, Rhs, Options>, ProductTag, LhsShape, RhsShape>
+ : public evaluator<typename Product<Lhs, Rhs, Options>::PlainObject>
+{
+ typedef Product<Lhs, Rhs, Options> XprType;
+ typedef typename XprType::PlainObject PlainObject;
+ typedef evaluator<PlainObject> Base;
+ enum {
+ Flags = Base::Flags | EvalBeforeNestingBit
+ };
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ explicit product_evaluator(const XprType& xpr)
+ : m_result(xpr.rows(), xpr.cols())
+ {
+ ::new (static_cast<Base*>(this)) Base(m_result);
+
+// FIXME shall we handle nested_eval here?,
+// if so, then we must take care at removing the call to nested_eval in the specializations (e.g., in permutation_matrix_product, transposition_matrix_product, etc.)
+// typedef typename internal::nested_eval<Lhs,Rhs::ColsAtCompileTime>::type LhsNested;
+// typedef typename internal::nested_eval<Rhs,Lhs::RowsAtCompileTime>::type RhsNested;
+// typedef typename internal::remove_all<LhsNested>::type LhsNestedCleaned;
+// typedef typename internal::remove_all<RhsNested>::type RhsNestedCleaned;
+//
+// const LhsNested lhs(xpr.lhs());
+// const RhsNested rhs(xpr.rhs());
+//
+// generic_product_impl<LhsNestedCleaned, RhsNestedCleaned>::evalTo(m_result, lhs, rhs);
+
+ generic_product_impl<Lhs, Rhs, LhsShape, RhsShape, ProductTag>::evalTo(m_result, xpr.lhs(), xpr.rhs());
+ }
+
+protected:
+ PlainObject m_result;
+};
+
+// The following three shortcuts are enabled only if the scalar types match excatly.
+// TODO: we could enable them for different scalar types when the product is not vectorized.
+
+// Dense = Product
+template< typename DstXprType, typename Lhs, typename Rhs, int Options, typename Scalar>
+struct Assignment<DstXprType, Product<Lhs,Rhs,Options>, internal::assign_op<Scalar,Scalar>, Dense2Dense,
+ typename enable_if<(Options==DefaultProduct || Options==AliasFreeProduct)>::type>
+{
+ typedef Product<Lhs,Rhs,Options> SrcXprType;
+ static EIGEN_STRONG_INLINE
+ void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<Scalar,Scalar> &)
+ {
+ Index dstRows = src.rows();
+ Index dstCols = src.cols();
+ if((dst.rows()!=dstRows) || (dst.cols()!=dstCols))
+ dst.resize(dstRows, dstCols);
+ // FIXME shall we handle nested_eval here?
+ generic_product_impl<Lhs, Rhs>::evalTo(dst, src.lhs(), src.rhs());
+ }
+};
+
+// Dense += Product
+template< typename DstXprType, typename Lhs, typename Rhs, int Options, typename Scalar>
+struct Assignment<DstXprType, Product<Lhs,Rhs,Options>, internal::add_assign_op<Scalar,Scalar>, Dense2Dense,
+ typename enable_if<(Options==DefaultProduct || Options==AliasFreeProduct)>::type>
+{
+ typedef Product<Lhs,Rhs,Options> SrcXprType;
+ static EIGEN_STRONG_INLINE
+ void run(DstXprType &dst, const SrcXprType &src, const internal::add_assign_op<Scalar,Scalar> &)
+ {
+ eigen_assert(dst.rows() == src.rows() && dst.cols() == src.cols());
+ // FIXME shall we handle nested_eval here?
+ generic_product_impl<Lhs, Rhs>::addTo(dst, src.lhs(), src.rhs());
+ }
+};
+
+// Dense -= Product
+template< typename DstXprType, typename Lhs, typename Rhs, int Options, typename Scalar>
+struct Assignment<DstXprType, Product<Lhs,Rhs,Options>, internal::sub_assign_op<Scalar,Scalar>, Dense2Dense,
+ typename enable_if<(Options==DefaultProduct || Options==AliasFreeProduct)>::type>
+{
+ typedef Product<Lhs,Rhs,Options> SrcXprType;
+ static EIGEN_STRONG_INLINE
+ void run(DstXprType &dst, const SrcXprType &src, const internal::sub_assign_op<Scalar,Scalar> &)
+ {
+ eigen_assert(dst.rows() == src.rows() && dst.cols() == src.cols());
+ // FIXME shall we handle nested_eval here?
+ generic_product_impl<Lhs, Rhs>::subTo(dst, src.lhs(), src.rhs());
+ }
+};
+
+
+// Dense ?= scalar * Product
+// TODO we should apply that rule if that's really helpful
+// for instance, this is not good for inner products
+template< typename DstXprType, typename Lhs, typename Rhs, typename AssignFunc, typename Scalar, typename ScalarBis, typename Plain>
+struct Assignment<DstXprType, CwiseBinaryOp<internal::scalar_product_op<ScalarBis,Scalar>, const CwiseNullaryOp<internal::scalar_constant_op<ScalarBis>,Plain>,
+ const Product<Lhs,Rhs,DefaultProduct> >, AssignFunc, Dense2Dense>
+{
+ typedef CwiseBinaryOp<internal::scalar_product_op<ScalarBis,Scalar>,
+ const CwiseNullaryOp<internal::scalar_constant_op<ScalarBis>,Plain>,
+ const Product<Lhs,Rhs,DefaultProduct> > SrcXprType;
+ static EIGEN_STRONG_INLINE
+ void run(DstXprType &dst, const SrcXprType &src, const AssignFunc& func)
+ {
+ call_assignment_no_alias(dst, (src.lhs().functor().m_other * src.rhs().lhs())*src.rhs().rhs(), func);
+ }
+};
+
+//----------------------------------------
+// Catch "Dense ?= xpr + Product<>" expression to save one temporary
+// FIXME we could probably enable these rules for any product, i.e., not only Dense and DefaultProduct
+
+template<typename OtherXpr, typename Lhs, typename Rhs>
+struct evaluator_assume_aliasing<CwiseBinaryOp<internal::scalar_sum_op<typename OtherXpr::Scalar,typename Product<Lhs,Rhs,DefaultProduct>::Scalar>, const OtherXpr,
+ const Product<Lhs,Rhs,DefaultProduct> >, DenseShape > {
+ static const bool value = true;
+};
+
+template<typename OtherXpr, typename Lhs, typename Rhs>
+struct evaluator_assume_aliasing<CwiseBinaryOp<internal::scalar_difference_op<typename OtherXpr::Scalar,typename Product<Lhs,Rhs,DefaultProduct>::Scalar>, const OtherXpr,
+ const Product<Lhs,Rhs,DefaultProduct> >, DenseShape > {
+ static const bool value = true;
+};
+
+template<typename DstXprType, typename OtherXpr, typename ProductType, typename Func1, typename Func2>
+struct assignment_from_xpr_op_product
+{
+ template<typename SrcXprType, typename InitialFunc>
+ static EIGEN_STRONG_INLINE
+ void run(DstXprType &dst, const SrcXprType &src, const InitialFunc& /*func*/)
+ {
+ call_assignment_no_alias(dst, src.lhs(), Func1());
+ call_assignment_no_alias(dst, src.rhs(), Func2());
+ }
+};
+
+#define EIGEN_CATCH_ASSIGN_XPR_OP_PRODUCT(ASSIGN_OP,BINOP,ASSIGN_OP2) \
+ template< typename DstXprType, typename OtherXpr, typename Lhs, typename Rhs, typename DstScalar, typename SrcScalar, typename OtherScalar,typename ProdScalar> \
+ struct Assignment<DstXprType, CwiseBinaryOp<internal::BINOP<OtherScalar,ProdScalar>, const OtherXpr, \
+ const Product<Lhs,Rhs,DefaultProduct> >, internal::ASSIGN_OP<DstScalar,SrcScalar>, Dense2Dense> \
+ : assignment_from_xpr_op_product<DstXprType, OtherXpr, Product<Lhs,Rhs,DefaultProduct>, internal::ASSIGN_OP<DstScalar,OtherScalar>, internal::ASSIGN_OP2<DstScalar,ProdScalar> > \
+ {}
+
+EIGEN_CATCH_ASSIGN_XPR_OP_PRODUCT(assign_op, scalar_sum_op,add_assign_op);
+EIGEN_CATCH_ASSIGN_XPR_OP_PRODUCT(add_assign_op,scalar_sum_op,add_assign_op);
+EIGEN_CATCH_ASSIGN_XPR_OP_PRODUCT(sub_assign_op,scalar_sum_op,sub_assign_op);
+
+EIGEN_CATCH_ASSIGN_XPR_OP_PRODUCT(assign_op, scalar_difference_op,sub_assign_op);
+EIGEN_CATCH_ASSIGN_XPR_OP_PRODUCT(add_assign_op,scalar_difference_op,sub_assign_op);
+EIGEN_CATCH_ASSIGN_XPR_OP_PRODUCT(sub_assign_op,scalar_difference_op,add_assign_op);
+
+//----------------------------------------
+
+template<typename Lhs, typename Rhs>
+struct generic_product_impl<Lhs,Rhs,DenseShape,DenseShape,InnerProduct>
+{
+ template<typename Dst>
+ static inline void evalTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
+ {
+ dst.coeffRef(0,0) = (lhs.transpose().cwiseProduct(rhs)).sum();
+ }
+
+ template<typename Dst>
+ static inline void addTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
+ {
+ dst.coeffRef(0,0) += (lhs.transpose().cwiseProduct(rhs)).sum();
+ }
+
+ template<typename Dst>
+ static void subTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
+ { dst.coeffRef(0,0) -= (lhs.transpose().cwiseProduct(rhs)).sum(); }
+};
+
+
+/***********************************************************************
+* Implementation of outer dense * dense vector product
+***********************************************************************/
+
+// Column major result
+template<typename Dst, typename Lhs, typename Rhs, typename Func>
+void outer_product_selector_run(Dst& dst, const Lhs &lhs, const Rhs &rhs, const Func& func, const false_type&)
+{
+ evaluator<Rhs> rhsEval(rhs);
+ typename nested_eval<Lhs,Rhs::SizeAtCompileTime>::type actual_lhs(lhs);
+ // FIXME if cols is large enough, then it might be useful to make sure that lhs is sequentially stored
+ // FIXME not very good if rhs is real and lhs complex while alpha is real too
+ const Index cols = dst.cols();
+ for (Index j=0; j<cols; ++j)
+ func(dst.col(j), rhsEval.coeff(Index(0),j) * actual_lhs);
+}
+
+// Row major result
+template<typename Dst, typename Lhs, typename Rhs, typename Func>
+void outer_product_selector_run(Dst& dst, const Lhs &lhs, const Rhs &rhs, const Func& func, const true_type&)
+{
+ evaluator<Lhs> lhsEval(lhs);
+ typename nested_eval<Rhs,Lhs::SizeAtCompileTime>::type actual_rhs(rhs);
+ // FIXME if rows is large enough, then it might be useful to make sure that rhs is sequentially stored
+ // FIXME not very good if lhs is real and rhs complex while alpha is real too
+ const Index rows = dst.rows();
+ for (Index i=0; i<rows; ++i)
+ func(dst.row(i), lhsEval.coeff(i,Index(0)) * actual_rhs);
+}
+
+template<typename Lhs, typename Rhs>
+struct generic_product_impl<Lhs,Rhs,DenseShape,DenseShape,OuterProduct>
+{
+ template<typename T> struct is_row_major : internal::conditional<(int(T::Flags)&RowMajorBit), internal::true_type, internal::false_type>::type {};
+ typedef typename Product<Lhs,Rhs>::Scalar Scalar;
+
+ // TODO it would be nice to be able to exploit our *_assign_op functors for that purpose
+ struct set { template<typename Dst, typename Src> void operator()(const Dst& dst, const Src& src) const { dst.const_cast_derived() = src; } };
+ struct add { template<typename Dst, typename Src> void operator()(const Dst& dst, const Src& src) const { dst.const_cast_derived() += src; } };
+ struct sub { template<typename Dst, typename Src> void operator()(const Dst& dst, const Src& src) const { dst.const_cast_derived() -= src; } };
+ struct adds {
+ Scalar m_scale;
+ explicit adds(const Scalar& s) : m_scale(s) {}
+ template<typename Dst, typename Src> void operator()(const Dst& dst, const Src& src) const {
+ dst.const_cast_derived() += m_scale * src;
+ }
+ };
+
+ template<typename Dst>
+ static inline void evalTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
+ {
+ internal::outer_product_selector_run(dst, lhs, rhs, set(), is_row_major<Dst>());
+ }
+
+ template<typename Dst>
+ static inline void addTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
+ {
+ internal::outer_product_selector_run(dst, lhs, rhs, add(), is_row_major<Dst>());
+ }
+
+ template<typename Dst>
+ static inline void subTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
+ {
+ internal::outer_product_selector_run(dst, lhs, rhs, sub(), is_row_major<Dst>());
+ }
+
+ template<typename Dst>
+ static inline void scaleAndAddTo(Dst& dst, const Lhs& lhs, const Rhs& rhs, const Scalar& alpha)
+ {
+ internal::outer_product_selector_run(dst, lhs, rhs, adds(alpha), is_row_major<Dst>());
+ }
+
+};
+
+
+// This base class provides default implementations for evalTo, addTo, subTo, in terms of scaleAndAddTo
+template<typename Lhs, typename Rhs, typename Derived>
+struct generic_product_impl_base
+{
+ typedef typename Product<Lhs,Rhs>::Scalar Scalar;
+
+ template<typename Dst>
+ static EIGEN_STRONG_INLINE void evalTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
+ { dst.setZero(); scaleAndAddTo(dst, lhs, rhs, Scalar(1)); }
+
+ template<typename Dst>
+ static EIGEN_STRONG_INLINE void addTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
+ { scaleAndAddTo(dst,lhs, rhs, Scalar(1)); }
+
+ template<typename Dst>
+ static EIGEN_STRONG_INLINE void subTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
+ { scaleAndAddTo(dst, lhs, rhs, Scalar(-1)); }
+
+ template<typename Dst>
+ static EIGEN_STRONG_INLINE void scaleAndAddTo(Dst& dst, const Lhs& lhs, const Rhs& rhs, const Scalar& alpha)
+ { Derived::scaleAndAddTo(dst,lhs,rhs,alpha); }
+
+};
+
+template<typename Lhs, typename Rhs>
+struct generic_product_impl<Lhs,Rhs,DenseShape,DenseShape,GemvProduct>
+ : generic_product_impl_base<Lhs,Rhs,generic_product_impl<Lhs,Rhs,DenseShape,DenseShape,GemvProduct> >
+{
+ typedef typename nested_eval<Lhs,1>::type LhsNested;
+ typedef typename nested_eval<Rhs,1>::type RhsNested;
+ typedef typename Product<Lhs,Rhs>::Scalar Scalar;
+ enum { Side = Lhs::IsVectorAtCompileTime ? OnTheLeft : OnTheRight };
+ typedef typename internal::remove_all<typename internal::conditional<int(Side)==OnTheRight,LhsNested,RhsNested>::type>::type MatrixType;
+
+ template<typename Dest>
+ static EIGEN_STRONG_INLINE void scaleAndAddTo(Dest& dst, const Lhs& lhs, const Rhs& rhs, const Scalar& alpha)
+ {
+ LhsNested actual_lhs(lhs);
+ RhsNested actual_rhs(rhs);
+ internal::gemv_dense_selector<Side,
+ (int(MatrixType::Flags)&RowMajorBit) ? RowMajor : ColMajor,
+ bool(internal::blas_traits<MatrixType>::HasUsableDirectAccess)
+ >::run(actual_lhs, actual_rhs, dst, alpha);
+ }
+};
+
+template<typename Lhs, typename Rhs>
+struct generic_product_impl<Lhs,Rhs,DenseShape,DenseShape,CoeffBasedProductMode>
+{
+ typedef typename Product<Lhs,Rhs>::Scalar Scalar;
+
+ template<typename Dst>
+ static EIGEN_STRONG_INLINE void evalTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
+ {
+ // Same as: dst.noalias() = lhs.lazyProduct(rhs);
+ // but easier on the compiler side
+ call_assignment_no_alias(dst, lhs.lazyProduct(rhs), internal::assign_op<typename Dst::Scalar,Scalar>());
+ }
+
+ template<typename Dst>
+ static EIGEN_STRONG_INLINE void addTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
+ {
+ // dst.noalias() += lhs.lazyProduct(rhs);
+ call_assignment_no_alias(dst, lhs.lazyProduct(rhs), internal::add_assign_op<typename Dst::Scalar,Scalar>());
+ }
+
+ template<typename Dst>
+ static EIGEN_STRONG_INLINE void subTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
+ {
+ // dst.noalias() -= lhs.lazyProduct(rhs);
+ call_assignment_no_alias(dst, lhs.lazyProduct(rhs), internal::sub_assign_op<typename Dst::Scalar,Scalar>());
+ }
+
+// template<typename Dst>
+// static inline void scaleAndAddTo(Dst& dst, const Lhs& lhs, const Rhs& rhs, const Scalar& alpha)
+// { dst.noalias() += alpha * lhs.lazyProduct(rhs); }
+};
+
+// This specialization enforces the use of a coefficient-based evaluation strategy
+template<typename Lhs, typename Rhs>
+struct generic_product_impl<Lhs,Rhs,DenseShape,DenseShape,LazyCoeffBasedProductMode>
+ : generic_product_impl<Lhs,Rhs,DenseShape,DenseShape,CoeffBasedProductMode> {};
+
+// Case 2: Evaluate coeff by coeff
+//
+// This is mostly taken from CoeffBasedProduct.h
+// The main difference is that we add an extra argument to the etor_product_*_impl::run() function
+// for the inner dimension of the product, because evaluator object do not know their size.
+
+template<int Traversal, int UnrollingIndex, typename Lhs, typename Rhs, typename RetScalar>
+struct etor_product_coeff_impl;
+
+template<int StorageOrder, int UnrollingIndex, typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct etor_product_packet_impl;
+
+template<typename Lhs, typename Rhs, int ProductTag>
+struct product_evaluator<Product<Lhs, Rhs, LazyProduct>, ProductTag, DenseShape, DenseShape>
+ : evaluator_base<Product<Lhs, Rhs, LazyProduct> >
+{
+ typedef Product<Lhs, Rhs, LazyProduct> XprType;
+ typedef typename XprType::Scalar Scalar;
+ typedef typename XprType::CoeffReturnType CoeffReturnType;
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ explicit product_evaluator(const XprType& xpr)
+ : m_lhs(xpr.lhs()),
+ m_rhs(xpr.rhs()),
+ m_lhsImpl(m_lhs), // FIXME the creation of the evaluator objects should result in a no-op, but check that!
+ m_rhsImpl(m_rhs), // Moreover, they are only useful for the packet path, so we could completely disable them when not needed,
+ // or perhaps declare them on the fly on the packet method... We have experiment to check what's best.
+ m_innerDim(xpr.lhs().cols())
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(NumTraits<Scalar>::MulCost);
+ EIGEN_INTERNAL_CHECK_COST_VALUE(NumTraits<Scalar>::AddCost);
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+#if 0
+ std::cerr << "LhsOuterStrideBytes= " << LhsOuterStrideBytes << "\n";
+ std::cerr << "RhsOuterStrideBytes= " << RhsOuterStrideBytes << "\n";
+ std::cerr << "LhsAlignment= " << LhsAlignment << "\n";
+ std::cerr << "RhsAlignment= " << RhsAlignment << "\n";
+ std::cerr << "CanVectorizeLhs= " << CanVectorizeLhs << "\n";
+ std::cerr << "CanVectorizeRhs= " << CanVectorizeRhs << "\n";
+ std::cerr << "CanVectorizeInner= " << CanVectorizeInner << "\n";
+ std::cerr << "EvalToRowMajor= " << EvalToRowMajor << "\n";
+ std::cerr << "Alignment= " << Alignment << "\n";
+ std::cerr << "Flags= " << Flags << "\n";
+#endif
+ }
+
+ // Everything below here is taken from CoeffBasedProduct.h
+
+ typedef typename internal::nested_eval<Lhs,Rhs::ColsAtCompileTime>::type LhsNested;
+ typedef typename internal::nested_eval<Rhs,Lhs::RowsAtCompileTime>::type RhsNested;
+
+ typedef typename internal::remove_all<LhsNested>::type LhsNestedCleaned;
+ typedef typename internal::remove_all<RhsNested>::type RhsNestedCleaned;
+
+ typedef evaluator<LhsNestedCleaned> LhsEtorType;
+ typedef evaluator<RhsNestedCleaned> RhsEtorType;
+
+ enum {
+ RowsAtCompileTime = LhsNestedCleaned::RowsAtCompileTime,
+ ColsAtCompileTime = RhsNestedCleaned::ColsAtCompileTime,
+ InnerSize = EIGEN_SIZE_MIN_PREFER_FIXED(LhsNestedCleaned::ColsAtCompileTime, RhsNestedCleaned::RowsAtCompileTime),
+ MaxRowsAtCompileTime = LhsNestedCleaned::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = RhsNestedCleaned::MaxColsAtCompileTime
+ };
+
+ typedef typename find_best_packet<Scalar,RowsAtCompileTime>::type LhsVecPacketType;
+ typedef typename find_best_packet<Scalar,ColsAtCompileTime>::type RhsVecPacketType;
+
+ enum {
+
+ LhsCoeffReadCost = LhsEtorType::CoeffReadCost,
+ RhsCoeffReadCost = RhsEtorType::CoeffReadCost,
+ CoeffReadCost = InnerSize==0 ? NumTraits<Scalar>::ReadCost
+ : InnerSize == Dynamic ? HugeCost
+ : InnerSize * (NumTraits<Scalar>::MulCost + LhsCoeffReadCost + RhsCoeffReadCost)
+ + (InnerSize - 1) * NumTraits<Scalar>::AddCost,
+
+ Unroll = CoeffReadCost <= EIGEN_UNROLLING_LIMIT,
+
+ LhsFlags = LhsEtorType::Flags,
+ RhsFlags = RhsEtorType::Flags,
+
+ LhsRowMajor = LhsFlags & RowMajorBit,
+ RhsRowMajor = RhsFlags & RowMajorBit,
+
+ LhsVecPacketSize = unpacket_traits<LhsVecPacketType>::size,
+ RhsVecPacketSize = unpacket_traits<RhsVecPacketType>::size,
+
+ // Here, we don't care about alignment larger than the usable packet size.
+ LhsAlignment = EIGEN_PLAIN_ENUM_MIN(LhsEtorType::Alignment,LhsVecPacketSize*int(sizeof(typename LhsNestedCleaned::Scalar))),
+ RhsAlignment = EIGEN_PLAIN_ENUM_MIN(RhsEtorType::Alignment,RhsVecPacketSize*int(sizeof(typename RhsNestedCleaned::Scalar))),
+
+ SameType = is_same<typename LhsNestedCleaned::Scalar,typename RhsNestedCleaned::Scalar>::value,
+
+ CanVectorizeRhs = bool(RhsRowMajor) && (RhsFlags & PacketAccessBit) && (ColsAtCompileTime!=1),
+ CanVectorizeLhs = (!LhsRowMajor) && (LhsFlags & PacketAccessBit) && (RowsAtCompileTime!=1),
+
+ EvalToRowMajor = (MaxRowsAtCompileTime==1&&MaxColsAtCompileTime!=1) ? 1
+ : (MaxColsAtCompileTime==1&&MaxRowsAtCompileTime!=1) ? 0
+ : (bool(RhsRowMajor) && !CanVectorizeLhs),
+
+ Flags = ((unsigned int)(LhsFlags | RhsFlags) & HereditaryBits & ~RowMajorBit)
+ | (EvalToRowMajor ? RowMajorBit : 0)
+ // TODO enable vectorization for mixed types
+ | (SameType && (CanVectorizeLhs || CanVectorizeRhs) ? PacketAccessBit : 0)
+ | (XprType::IsVectorAtCompileTime ? LinearAccessBit : 0),
+
+ LhsOuterStrideBytes = int(LhsNestedCleaned::OuterStrideAtCompileTime) * int(sizeof(typename LhsNestedCleaned::Scalar)),
+ RhsOuterStrideBytes = int(RhsNestedCleaned::OuterStrideAtCompileTime) * int(sizeof(typename RhsNestedCleaned::Scalar)),
+
+ Alignment = bool(CanVectorizeLhs) ? (LhsOuterStrideBytes<=0 || (int(LhsOuterStrideBytes) % EIGEN_PLAIN_ENUM_MAX(1,LhsAlignment))!=0 ? 0 : LhsAlignment)
+ : bool(CanVectorizeRhs) ? (RhsOuterStrideBytes<=0 || (int(RhsOuterStrideBytes) % EIGEN_PLAIN_ENUM_MAX(1,RhsAlignment))!=0 ? 0 : RhsAlignment)
+ : 0,
+
+ /* CanVectorizeInner deserves special explanation. It does not affect the product flags. It is not used outside
+ * of Product. If the Product itself is not a packet-access expression, there is still a chance that the inner
+ * loop of the product might be vectorized. This is the meaning of CanVectorizeInner. Since it doesn't affect
+ * the Flags, it is safe to make this value depend on ActualPacketAccessBit, that doesn't affect the ABI.
+ */
+ CanVectorizeInner = SameType
+ && LhsRowMajor
+ && (!RhsRowMajor)
+ && (LhsFlags & RhsFlags & ActualPacketAccessBit)
+ && (InnerSize % packet_traits<Scalar>::size == 0)
+ };
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CoeffReturnType coeff(Index row, Index col) const
+ {
+ return (m_lhs.row(row).transpose().cwiseProduct( m_rhs.col(col) )).sum();
+ }
+
+ /* Allow index-based non-packet access. It is impossible though to allow index-based packed access,
+ * which is why we don't set the LinearAccessBit.
+ * TODO: this seems possible when the result is a vector
+ */
+ EIGEN_DEVICE_FUNC const CoeffReturnType coeff(Index index) const
+ {
+ const Index row = (RowsAtCompileTime == 1 || MaxRowsAtCompileTime==1) ? 0 : index;
+ const Index col = (RowsAtCompileTime == 1 || MaxRowsAtCompileTime==1) ? index : 0;
+ return (m_lhs.row(row).transpose().cwiseProduct( m_rhs.col(col) )).sum();
+ }
+
+ template<int LoadMode, typename PacketType>
+ const PacketType packet(Index row, Index col) const
+ {
+ PacketType res;
+ typedef etor_product_packet_impl<bool(int(Flags)&RowMajorBit) ? RowMajor : ColMajor,
+ Unroll ? int(InnerSize) : Dynamic,
+ LhsEtorType, RhsEtorType, PacketType, LoadMode> PacketImpl;
+ PacketImpl::run(row, col, m_lhsImpl, m_rhsImpl, m_innerDim, res);
+ return res;
+ }
+
+ template<int LoadMode, typename PacketType>
+ const PacketType packet(Index index) const
+ {
+ const Index row = (RowsAtCompileTime == 1 || MaxRowsAtCompileTime==1) ? 0 : index;
+ const Index col = (RowsAtCompileTime == 1 || MaxRowsAtCompileTime==1) ? index : 0;
+ return packet<LoadMode,PacketType>(row,col);
+ }
+
+protected:
+ typename internal::add_const_on_value_type<LhsNested>::type m_lhs;
+ typename internal::add_const_on_value_type<RhsNested>::type m_rhs;
+
+ LhsEtorType m_lhsImpl;
+ RhsEtorType m_rhsImpl;
+
+ // TODO: Get rid of m_innerDim if known at compile time
+ Index m_innerDim;
+};
+
+template<typename Lhs, typename Rhs>
+struct product_evaluator<Product<Lhs, Rhs, DefaultProduct>, LazyCoeffBasedProductMode, DenseShape, DenseShape>
+ : product_evaluator<Product<Lhs, Rhs, LazyProduct>, CoeffBasedProductMode, DenseShape, DenseShape>
+{
+ typedef Product<Lhs, Rhs, DefaultProduct> XprType;
+ typedef Product<Lhs, Rhs, LazyProduct> BaseProduct;
+ typedef product_evaluator<BaseProduct, CoeffBasedProductMode, DenseShape, DenseShape> Base;
+ enum {
+ Flags = Base::Flags | EvalBeforeNestingBit
+ };
+ EIGEN_DEVICE_FUNC explicit product_evaluator(const XprType& xpr)
+ : Base(BaseProduct(xpr.lhs(),xpr.rhs()))
+ {}
+};
+
+/****************************************
+*** Coeff based product, Packet path ***
+****************************************/
+
+template<int UnrollingIndex, typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct etor_product_packet_impl<RowMajor, UnrollingIndex, Lhs, Rhs, Packet, LoadMode>
+{
+ static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index innerDim, Packet &res)
+ {
+ etor_product_packet_impl<RowMajor, UnrollingIndex-1, Lhs, Rhs, Packet, LoadMode>::run(row, col, lhs, rhs, innerDim, res);
+ res = pmadd(pset1<Packet>(lhs.coeff(row, Index(UnrollingIndex-1))), rhs.template packet<LoadMode,Packet>(Index(UnrollingIndex-1), col), res);
+ }
+};
+
+template<int UnrollingIndex, typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct etor_product_packet_impl<ColMajor, UnrollingIndex, Lhs, Rhs, Packet, LoadMode>
+{
+ static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index innerDim, Packet &res)
+ {
+ etor_product_packet_impl<ColMajor, UnrollingIndex-1, Lhs, Rhs, Packet, LoadMode>::run(row, col, lhs, rhs, innerDim, res);
+ res = pmadd(lhs.template packet<LoadMode,Packet>(row, Index(UnrollingIndex-1)), pset1<Packet>(rhs.coeff(Index(UnrollingIndex-1), col)), res);
+ }
+};
+
+template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct etor_product_packet_impl<RowMajor, 1, Lhs, Rhs, Packet, LoadMode>
+{
+ static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index /*innerDim*/, Packet &res)
+ {
+ res = pmul(pset1<Packet>(lhs.coeff(row, Index(0))),rhs.template packet<LoadMode,Packet>(Index(0), col));
+ }
+};
+
+template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct etor_product_packet_impl<ColMajor, 1, Lhs, Rhs, Packet, LoadMode>
+{
+ static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index /*innerDim*/, Packet &res)
+ {
+ res = pmul(lhs.template packet<LoadMode,Packet>(row, Index(0)), pset1<Packet>(rhs.coeff(Index(0), col)));
+ }
+};
+
+template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct etor_product_packet_impl<RowMajor, 0, Lhs, Rhs, Packet, LoadMode>
+{
+ static EIGEN_STRONG_INLINE void run(Index /*row*/, Index /*col*/, const Lhs& /*lhs*/, const Rhs& /*rhs*/, Index /*innerDim*/, Packet &res)
+ {
+ res = pset1<Packet>(typename unpacket_traits<Packet>::type(0));
+ }
+};
+
+template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct etor_product_packet_impl<ColMajor, 0, Lhs, Rhs, Packet, LoadMode>
+{
+ static EIGEN_STRONG_INLINE void run(Index /*row*/, Index /*col*/, const Lhs& /*lhs*/, const Rhs& /*rhs*/, Index /*innerDim*/, Packet &res)
+ {
+ res = pset1<Packet>(typename unpacket_traits<Packet>::type(0));
+ }
+};
+
+template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct etor_product_packet_impl<RowMajor, Dynamic, Lhs, Rhs, Packet, LoadMode>
+{
+ static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index innerDim, Packet& res)
+ {
+ res = pset1<Packet>(typename unpacket_traits<Packet>::type(0));
+ for(Index i = 0; i < innerDim; ++i)
+ res = pmadd(pset1<Packet>(lhs.coeff(row, i)), rhs.template packet<LoadMode,Packet>(i, col), res);
+ }
+};
+
+template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct etor_product_packet_impl<ColMajor, Dynamic, Lhs, Rhs, Packet, LoadMode>
+{
+ static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index innerDim, Packet& res)
+ {
+ res = pset1<Packet>(typename unpacket_traits<Packet>::type(0));
+ for(Index i = 0; i < innerDim; ++i)
+ res = pmadd(lhs.template packet<LoadMode,Packet>(row, i), pset1<Packet>(rhs.coeff(i, col)), res);
+ }
+};
+
+
+/***************************************************************************
+* Triangular products
+***************************************************************************/
+template<int Mode, bool LhsIsTriangular,
+ typename Lhs, bool LhsIsVector,
+ typename Rhs, bool RhsIsVector>
+struct triangular_product_impl;
+
+template<typename Lhs, typename Rhs, int ProductTag>
+struct generic_product_impl<Lhs,Rhs,TriangularShape,DenseShape,ProductTag>
+ : generic_product_impl_base<Lhs,Rhs,generic_product_impl<Lhs,Rhs,TriangularShape,DenseShape,ProductTag> >
+{
+ typedef typename Product<Lhs,Rhs>::Scalar Scalar;
+
+ template<typename Dest>
+ static void scaleAndAddTo(Dest& dst, const Lhs& lhs, const Rhs& rhs, const Scalar& alpha)
+ {
+ triangular_product_impl<Lhs::Mode,true,typename Lhs::MatrixType,false,Rhs, Rhs::ColsAtCompileTime==1>
+ ::run(dst, lhs.nestedExpression(), rhs, alpha);
+ }
+};
+
+template<typename Lhs, typename Rhs, int ProductTag>
+struct generic_product_impl<Lhs,Rhs,DenseShape,TriangularShape,ProductTag>
+: generic_product_impl_base<Lhs,Rhs,generic_product_impl<Lhs,Rhs,DenseShape,TriangularShape,ProductTag> >
+{
+ typedef typename Product<Lhs,Rhs>::Scalar Scalar;
+
+ template<typename Dest>
+ static void scaleAndAddTo(Dest& dst, const Lhs& lhs, const Rhs& rhs, const Scalar& alpha)
+ {
+ triangular_product_impl<Rhs::Mode,false,Lhs,Lhs::RowsAtCompileTime==1, typename Rhs::MatrixType, false>::run(dst, lhs, rhs.nestedExpression(), alpha);
+ }
+};
+
+
+/***************************************************************************
+* SelfAdjoint products
+***************************************************************************/
+template <typename Lhs, int LhsMode, bool LhsIsVector,
+ typename Rhs, int RhsMode, bool RhsIsVector>
+struct selfadjoint_product_impl;
+
+template<typename Lhs, typename Rhs, int ProductTag>
+struct generic_product_impl<Lhs,Rhs,SelfAdjointShape,DenseShape,ProductTag>
+ : generic_product_impl_base<Lhs,Rhs,generic_product_impl<Lhs,Rhs,SelfAdjointShape,DenseShape,ProductTag> >
+{
+ typedef typename Product<Lhs,Rhs>::Scalar Scalar;
+
+ template<typename Dest>
+ static void scaleAndAddTo(Dest& dst, const Lhs& lhs, const Rhs& rhs, const Scalar& alpha)
+ {
+ selfadjoint_product_impl<typename Lhs::MatrixType,Lhs::Mode,false,Rhs,0,Rhs::IsVectorAtCompileTime>::run(dst, lhs.nestedExpression(), rhs, alpha);
+ }
+};
+
+template<typename Lhs, typename Rhs, int ProductTag>
+struct generic_product_impl<Lhs,Rhs,DenseShape,SelfAdjointShape,ProductTag>
+: generic_product_impl_base<Lhs,Rhs,generic_product_impl<Lhs,Rhs,DenseShape,SelfAdjointShape,ProductTag> >
+{
+ typedef typename Product<Lhs,Rhs>::Scalar Scalar;
+
+ template<typename Dest>
+ static void scaleAndAddTo(Dest& dst, const Lhs& lhs, const Rhs& rhs, const Scalar& alpha)
+ {
+ selfadjoint_product_impl<Lhs,0,Lhs::IsVectorAtCompileTime,typename Rhs::MatrixType,Rhs::Mode,false>::run(dst, lhs, rhs.nestedExpression(), alpha);
+ }
+};
+
+
+/***************************************************************************
+* Diagonal products
+***************************************************************************/
+
+template<typename MatrixType, typename DiagonalType, typename Derived, int ProductOrder>
+struct diagonal_product_evaluator_base
+ : evaluator_base<Derived>
+{
+ typedef typename ScalarBinaryOpTraits<typename MatrixType::Scalar, typename DiagonalType::Scalar>::ReturnType Scalar;
+public:
+ enum {
+ CoeffReadCost = NumTraits<Scalar>::MulCost + evaluator<MatrixType>::CoeffReadCost + evaluator<DiagonalType>::CoeffReadCost,
+
+ MatrixFlags = evaluator<MatrixType>::Flags,
+ DiagFlags = evaluator<DiagonalType>::Flags,
+ _StorageOrder = MatrixFlags & RowMajorBit ? RowMajor : ColMajor,
+ _ScalarAccessOnDiag = !((int(_StorageOrder) == ColMajor && int(ProductOrder) == OnTheLeft)
+ ||(int(_StorageOrder) == RowMajor && int(ProductOrder) == OnTheRight)),
+ _SameTypes = is_same<typename MatrixType::Scalar, typename DiagonalType::Scalar>::value,
+ // FIXME currently we need same types, but in the future the next rule should be the one
+ //_Vectorizable = bool(int(MatrixFlags)&PacketAccessBit) && ((!_PacketOnDiag) || (_SameTypes && bool(int(DiagFlags)&PacketAccessBit))),
+ _Vectorizable = bool(int(MatrixFlags)&PacketAccessBit) && _SameTypes && (_ScalarAccessOnDiag || (bool(int(DiagFlags)&PacketAccessBit))),
+ _LinearAccessMask = (MatrixType::RowsAtCompileTime==1 || MatrixType::ColsAtCompileTime==1) ? LinearAccessBit : 0,
+ Flags = ((HereditaryBits|_LinearAccessMask) & (unsigned int)(MatrixFlags)) | (_Vectorizable ? PacketAccessBit : 0),
+ Alignment = evaluator<MatrixType>::Alignment
+ };
+
+ diagonal_product_evaluator_base(const MatrixType &mat, const DiagonalType &diag)
+ : m_diagImpl(diag), m_matImpl(mat)
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(NumTraits<Scalar>::MulCost);
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar coeff(Index idx) const
+ {
+ return m_diagImpl.coeff(idx) * m_matImpl.coeff(idx);
+ }
+
+protected:
+ template<int LoadMode,typename PacketType>
+ EIGEN_STRONG_INLINE PacketType packet_impl(Index row, Index col, Index id, internal::true_type) const
+ {
+ return internal::pmul(m_matImpl.template packet<LoadMode,PacketType>(row, col),
+ internal::pset1<PacketType>(m_diagImpl.coeff(id)));
+ }
+
+ template<int LoadMode,typename PacketType>
+ EIGEN_STRONG_INLINE PacketType packet_impl(Index row, Index col, Index id, internal::false_type) const
+ {
+ enum {
+ InnerSize = (MatrixType::Flags & RowMajorBit) ? MatrixType::ColsAtCompileTime : MatrixType::RowsAtCompileTime,
+ DiagonalPacketLoadMode = EIGEN_PLAIN_ENUM_MIN(LoadMode,((InnerSize%16) == 0) ? int(Aligned16) : int(evaluator<DiagonalType>::Alignment)) // FIXME hardcoded 16!!
+ };
+ return internal::pmul(m_matImpl.template packet<LoadMode,PacketType>(row, col),
+ m_diagImpl.template packet<DiagonalPacketLoadMode,PacketType>(id));
+ }
+
+ evaluator<DiagonalType> m_diagImpl;
+ evaluator<MatrixType> m_matImpl;
+};
+
+// diagonal * dense
+template<typename Lhs, typename Rhs, int ProductKind, int ProductTag>
+struct product_evaluator<Product<Lhs, Rhs, ProductKind>, ProductTag, DiagonalShape, DenseShape>
+ : diagonal_product_evaluator_base<Rhs, typename Lhs::DiagonalVectorType, Product<Lhs, Rhs, LazyProduct>, OnTheLeft>
+{
+ typedef diagonal_product_evaluator_base<Rhs, typename Lhs::DiagonalVectorType, Product<Lhs, Rhs, LazyProduct>, OnTheLeft> Base;
+ using Base::m_diagImpl;
+ using Base::m_matImpl;
+ using Base::coeff;
+ typedef typename Base::Scalar Scalar;
+
+ typedef Product<Lhs, Rhs, ProductKind> XprType;
+ typedef typename XprType::PlainObject PlainObject;
+
+ enum {
+ StorageOrder = int(Rhs::Flags) & RowMajorBit ? RowMajor : ColMajor
+ };
+
+ EIGEN_DEVICE_FUNC explicit product_evaluator(const XprType& xpr)
+ : Base(xpr.rhs(), xpr.lhs().diagonal())
+ {
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar coeff(Index row, Index col) const
+ {
+ return m_diagImpl.coeff(row) * m_matImpl.coeff(row, col);
+ }
+
+#ifndef __CUDACC__
+ template<int LoadMode,typename PacketType>
+ EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
+ {
+ // FIXME: NVCC used to complain about the template keyword, but we have to check whether this is still the case.
+ // See also similar calls below.
+ return this->template packet_impl<LoadMode,PacketType>(row,col, row,
+ typename internal::conditional<int(StorageOrder)==RowMajor, internal::true_type, internal::false_type>::type());
+ }
+
+ template<int LoadMode,typename PacketType>
+ EIGEN_STRONG_INLINE PacketType packet(Index idx) const
+ {
+ return packet<LoadMode,PacketType>(int(StorageOrder)==ColMajor?idx:0,int(StorageOrder)==ColMajor?0:idx);
+ }
+#endif
+};
+
+// dense * diagonal
+template<typename Lhs, typename Rhs, int ProductKind, int ProductTag>
+struct product_evaluator<Product<Lhs, Rhs, ProductKind>, ProductTag, DenseShape, DiagonalShape>
+ : diagonal_product_evaluator_base<Lhs, typename Rhs::DiagonalVectorType, Product<Lhs, Rhs, LazyProduct>, OnTheRight>
+{
+ typedef diagonal_product_evaluator_base<Lhs, typename Rhs::DiagonalVectorType, Product<Lhs, Rhs, LazyProduct>, OnTheRight> Base;
+ using Base::m_diagImpl;
+ using Base::m_matImpl;
+ using Base::coeff;
+ typedef typename Base::Scalar Scalar;
+
+ typedef Product<Lhs, Rhs, ProductKind> XprType;
+ typedef typename XprType::PlainObject PlainObject;
+
+ enum { StorageOrder = int(Lhs::Flags) & RowMajorBit ? RowMajor : ColMajor };
+
+ EIGEN_DEVICE_FUNC explicit product_evaluator(const XprType& xpr)
+ : Base(xpr.lhs(), xpr.rhs().diagonal())
+ {
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar coeff(Index row, Index col) const
+ {
+ return m_matImpl.coeff(row, col) * m_diagImpl.coeff(col);
+ }
+
+#ifndef __CUDACC__
+ template<int LoadMode,typename PacketType>
+ EIGEN_STRONG_INLINE PacketType packet(Index row, Index col) const
+ {
+ return this->template packet_impl<LoadMode,PacketType>(row,col, col,
+ typename internal::conditional<int(StorageOrder)==ColMajor, internal::true_type, internal::false_type>::type());
+ }
+
+ template<int LoadMode,typename PacketType>
+ EIGEN_STRONG_INLINE PacketType packet(Index idx) const
+ {
+ return packet<LoadMode,PacketType>(int(StorageOrder)==ColMajor?idx:0,int(StorageOrder)==ColMajor?0:idx);
+ }
+#endif
+};
+
+/***************************************************************************
+* Products with permutation matrices
+***************************************************************************/
+
+/** \internal
+ * \class permutation_matrix_product
+ * Internal helper class implementing the product between a permutation matrix and a matrix.
+ * This class is specialized for DenseShape below and for SparseShape in SparseCore/SparsePermutation.h
+ */
+template<typename ExpressionType, int Side, bool Transposed, typename ExpressionShape>
+struct permutation_matrix_product;
+
+template<typename ExpressionType, int Side, bool Transposed>
+struct permutation_matrix_product<ExpressionType, Side, Transposed, DenseShape>
+{
+ typedef typename nested_eval<ExpressionType, 1>::type MatrixType;
+ typedef typename remove_all<MatrixType>::type MatrixTypeCleaned;
+
+ template<typename Dest, typename PermutationType>
+ static inline void run(Dest& dst, const PermutationType& perm, const ExpressionType& xpr)
+ {
+ MatrixType mat(xpr);
+ const Index n = Side==OnTheLeft ? mat.rows() : mat.cols();
+ // FIXME we need an is_same for expression that is not sensitive to constness. For instance
+ // is_same_xpr<Block<const Matrix>, Block<Matrix> >::value should be true.
+ //if(is_same<MatrixTypeCleaned,Dest>::value && extract_data(dst) == extract_data(mat))
+ if(is_same_dense(dst, mat))
+ {
+ // apply the permutation inplace
+ Matrix<bool,PermutationType::RowsAtCompileTime,1,0,PermutationType::MaxRowsAtCompileTime> mask(perm.size());
+ mask.fill(false);
+ Index r = 0;
+ while(r < perm.size())
+ {
+ // search for the next seed
+ while(r<perm.size() && mask[r]) r++;
+ if(r>=perm.size())
+ break;
+ // we got one, let's follow it until we are back to the seed
+ Index k0 = r++;
+ Index kPrev = k0;
+ mask.coeffRef(k0) = true;
+ for(Index k=perm.indices().coeff(k0); k!=k0; k=perm.indices().coeff(k))
+ {
+ Block<Dest, Side==OnTheLeft ? 1 : Dest::RowsAtCompileTime, Side==OnTheRight ? 1 : Dest::ColsAtCompileTime>(dst, k)
+ .swap(Block<Dest, Side==OnTheLeft ? 1 : Dest::RowsAtCompileTime, Side==OnTheRight ? 1 : Dest::ColsAtCompileTime>
+ (dst,((Side==OnTheLeft) ^ Transposed) ? k0 : kPrev));
+
+ mask.coeffRef(k) = true;
+ kPrev = k;
+ }
+ }
+ }
+ else
+ {
+ for(Index i = 0; i < n; ++i)
+ {
+ Block<Dest, Side==OnTheLeft ? 1 : Dest::RowsAtCompileTime, Side==OnTheRight ? 1 : Dest::ColsAtCompileTime>
+ (dst, ((Side==OnTheLeft) ^ Transposed) ? perm.indices().coeff(i) : i)
+
+ =
+
+ Block<const MatrixTypeCleaned,Side==OnTheLeft ? 1 : MatrixTypeCleaned::RowsAtCompileTime,Side==OnTheRight ? 1 : MatrixTypeCleaned::ColsAtCompileTime>
+ (mat, ((Side==OnTheRight) ^ Transposed) ? perm.indices().coeff(i) : i);
+ }
+ }
+ }
+};
+
+template<typename Lhs, typename Rhs, int ProductTag, typename MatrixShape>
+struct generic_product_impl<Lhs, Rhs, PermutationShape, MatrixShape, ProductTag>
+{
+ template<typename Dest>
+ static void evalTo(Dest& dst, const Lhs& lhs, const Rhs& rhs)
+ {
+ permutation_matrix_product<Rhs, OnTheLeft, false, MatrixShape>::run(dst, lhs, rhs);
+ }
+};
+
+template<typename Lhs, typename Rhs, int ProductTag, typename MatrixShape>
+struct generic_product_impl<Lhs, Rhs, MatrixShape, PermutationShape, ProductTag>
+{
+ template<typename Dest>
+ static void evalTo(Dest& dst, const Lhs& lhs, const Rhs& rhs)
+ {
+ permutation_matrix_product<Lhs, OnTheRight, false, MatrixShape>::run(dst, rhs, lhs);
+ }
+};
+
+template<typename Lhs, typename Rhs, int ProductTag, typename MatrixShape>
+struct generic_product_impl<Inverse<Lhs>, Rhs, PermutationShape, MatrixShape, ProductTag>
+{
+ template<typename Dest>
+ static void evalTo(Dest& dst, const Inverse<Lhs>& lhs, const Rhs& rhs)
+ {
+ permutation_matrix_product<Rhs, OnTheLeft, true, MatrixShape>::run(dst, lhs.nestedExpression(), rhs);
+ }
+};
+
+template<typename Lhs, typename Rhs, int ProductTag, typename MatrixShape>
+struct generic_product_impl<Lhs, Inverse<Rhs>, MatrixShape, PermutationShape, ProductTag>
+{
+ template<typename Dest>
+ static void evalTo(Dest& dst, const Lhs& lhs, const Inverse<Rhs>& rhs)
+ {
+ permutation_matrix_product<Lhs, OnTheRight, true, MatrixShape>::run(dst, rhs.nestedExpression(), lhs);
+ }
+};
+
+
+/***************************************************************************
+* Products with transpositions matrices
+***************************************************************************/
+
+// FIXME could we unify Transpositions and Permutation into a single "shape"??
+
+/** \internal
+ * \class transposition_matrix_product
+ * Internal helper class implementing the product between a permutation matrix and a matrix.
+ */
+template<typename ExpressionType, int Side, bool Transposed, typename ExpressionShape>
+struct transposition_matrix_product
+{
+ typedef typename nested_eval<ExpressionType, 1>::type MatrixType;
+ typedef typename remove_all<MatrixType>::type MatrixTypeCleaned;
+
+ template<typename Dest, typename TranspositionType>
+ static inline void run(Dest& dst, const TranspositionType& tr, const ExpressionType& xpr)
+ {
+ MatrixType mat(xpr);
+ typedef typename TranspositionType::StorageIndex StorageIndex;
+ const Index size = tr.size();
+ StorageIndex j = 0;
+
+ if(!is_same_dense(dst,mat))
+ dst = mat;
+
+ for(Index k=(Transposed?size-1:0) ; Transposed?k>=0:k<size ; Transposed?--k:++k)
+ if(Index(j=tr.coeff(k))!=k)
+ {
+ if(Side==OnTheLeft) dst.row(k).swap(dst.row(j));
+ else if(Side==OnTheRight) dst.col(k).swap(dst.col(j));
+ }
+ }
+};
+
+template<typename Lhs, typename Rhs, int ProductTag, typename MatrixShape>
+struct generic_product_impl<Lhs, Rhs, TranspositionsShape, MatrixShape, ProductTag>
+{
+ template<typename Dest>
+ static void evalTo(Dest& dst, const Lhs& lhs, const Rhs& rhs)
+ {
+ transposition_matrix_product<Rhs, OnTheLeft, false, MatrixShape>::run(dst, lhs, rhs);
+ }
+};
+
+template<typename Lhs, typename Rhs, int ProductTag, typename MatrixShape>
+struct generic_product_impl<Lhs, Rhs, MatrixShape, TranspositionsShape, ProductTag>
+{
+ template<typename Dest>
+ static void evalTo(Dest& dst, const Lhs& lhs, const Rhs& rhs)
+ {
+ transposition_matrix_product<Lhs, OnTheRight, false, MatrixShape>::run(dst, rhs, lhs);
+ }
+};
+
+
+template<typename Lhs, typename Rhs, int ProductTag, typename MatrixShape>
+struct generic_product_impl<Transpose<Lhs>, Rhs, TranspositionsShape, MatrixShape, ProductTag>
+{
+ template<typename Dest>
+ static void evalTo(Dest& dst, const Transpose<Lhs>& lhs, const Rhs& rhs)
+ {
+ transposition_matrix_product<Rhs, OnTheLeft, true, MatrixShape>::run(dst, lhs.nestedExpression(), rhs);
+ }
+};
+
+template<typename Lhs, typename Rhs, int ProductTag, typename MatrixShape>
+struct generic_product_impl<Lhs, Transpose<Rhs>, MatrixShape, TranspositionsShape, ProductTag>
+{
+ template<typename Dest>
+ static void evalTo(Dest& dst, const Lhs& lhs, const Transpose<Rhs>& rhs)
+ {
+ transposition_matrix_product<Lhs, OnTheRight, true, MatrixShape>::run(dst, rhs.nestedExpression(), lhs);
+ }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PRODUCT_EVALUATORS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Random.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Random.h
new file mode 100644
index 000000000..6faf789c7
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Random.h
@@ -0,0 +1,182 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_RANDOM_H
+#define EIGEN_RANDOM_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename Scalar> struct scalar_random_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_random_op)
+ inline const Scalar operator() () const { return random<Scalar>(); }
+};
+
+template<typename Scalar>
+struct functor_traits<scalar_random_op<Scalar> >
+{ enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = false, IsRepeatable = false }; };
+
+} // end namespace internal
+
+/** \returns a random matrix expression
+ *
+ * Numbers are uniformly spread through their whole definition range for integer types,
+ * and in the [-1:1] range for floating point scalar types.
+ *
+ * The parameters \a rows and \a cols are the number of rows and of columns of
+ * the returned matrix. Must be compatible with this MatrixBase type.
+ *
+ * \not_reentrant
+ *
+ * This variant is meant to be used for dynamic-size matrix types. For fixed-size types,
+ * it is redundant to pass \a rows and \a cols as arguments, so Random() should be used
+ * instead.
+ *
+ *
+ * Example: \include MatrixBase_random_int_int.cpp
+ * Output: \verbinclude MatrixBase_random_int_int.out
+ *
+ * This expression has the "evaluate before nesting" flag so that it will be evaluated into
+ * a temporary matrix whenever it is nested in a larger expression. This prevents unexpected
+ * behavior with expressions involving random matrices.
+ *
+ * See DenseBase::NullaryExpr(Index, const CustomNullaryOp&) for an example using C++11 random generators.
+ *
+ * \sa DenseBase::setRandom(), DenseBase::Random(Index), DenseBase::Random()
+ */
+template<typename Derived>
+inline const typename DenseBase<Derived>::RandomReturnType
+DenseBase<Derived>::Random(Index rows, Index cols)
+{
+ return NullaryExpr(rows, cols, internal::scalar_random_op<Scalar>());
+}
+
+/** \returns a random vector expression
+ *
+ * Numbers are uniformly spread through their whole definition range for integer types,
+ * and in the [-1:1] range for floating point scalar types.
+ *
+ * The parameter \a size is the size of the returned vector.
+ * Must be compatible with this MatrixBase type.
+ *
+ * \only_for_vectors
+ * \not_reentrant
+ *
+ * This variant is meant to be used for dynamic-size vector types. For fixed-size types,
+ * it is redundant to pass \a size as argument, so Random() should be used
+ * instead.
+ *
+ * Example: \include MatrixBase_random_int.cpp
+ * Output: \verbinclude MatrixBase_random_int.out
+ *
+ * This expression has the "evaluate before nesting" flag so that it will be evaluated into
+ * a temporary vector whenever it is nested in a larger expression. This prevents unexpected
+ * behavior with expressions involving random matrices.
+ *
+ * \sa DenseBase::setRandom(), DenseBase::Random(Index,Index), DenseBase::Random()
+ */
+template<typename Derived>
+inline const typename DenseBase<Derived>::RandomReturnType
+DenseBase<Derived>::Random(Index size)
+{
+ return NullaryExpr(size, internal::scalar_random_op<Scalar>());
+}
+
+/** \returns a fixed-size random matrix or vector expression
+ *
+ * Numbers are uniformly spread through their whole definition range for integer types,
+ * and in the [-1:1] range for floating point scalar types.
+ *
+ * This variant is only for fixed-size MatrixBase types. For dynamic-size types, you
+ * need to use the variants taking size arguments.
+ *
+ * Example: \include MatrixBase_random.cpp
+ * Output: \verbinclude MatrixBase_random.out
+ *
+ * This expression has the "evaluate before nesting" flag so that it will be evaluated into
+ * a temporary matrix whenever it is nested in a larger expression. This prevents unexpected
+ * behavior with expressions involving random matrices.
+ *
+ * \not_reentrant
+ *
+ * \sa DenseBase::setRandom(), DenseBase::Random(Index,Index), DenseBase::Random(Index)
+ */
+template<typename Derived>
+inline const typename DenseBase<Derived>::RandomReturnType
+DenseBase<Derived>::Random()
+{
+ return NullaryExpr(RowsAtCompileTime, ColsAtCompileTime, internal::scalar_random_op<Scalar>());
+}
+
+/** Sets all coefficients in this expression to random values.
+ *
+ * Numbers are uniformly spread through their whole definition range for integer types,
+ * and in the [-1:1] range for floating point scalar types.
+ *
+ * \not_reentrant
+ *
+ * Example: \include MatrixBase_setRandom.cpp
+ * Output: \verbinclude MatrixBase_setRandom.out
+ *
+ * \sa class CwiseNullaryOp, setRandom(Index), setRandom(Index,Index)
+ */
+template<typename Derived>
+inline Derived& DenseBase<Derived>::setRandom()
+{
+ return *this = Random(rows(), cols());
+}
+
+/** Resizes to the given \a newSize, and sets all coefficients in this expression to random values.
+ *
+ * Numbers are uniformly spread through their whole definition range for integer types,
+ * and in the [-1:1] range for floating point scalar types.
+ *
+ * \only_for_vectors
+ * \not_reentrant
+ *
+ * Example: \include Matrix_setRandom_int.cpp
+ * Output: \verbinclude Matrix_setRandom_int.out
+ *
+ * \sa DenseBase::setRandom(), setRandom(Index,Index), class CwiseNullaryOp, DenseBase::Random()
+ */
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived&
+PlainObjectBase<Derived>::setRandom(Index newSize)
+{
+ resize(newSize);
+ return setRandom();
+}
+
+/** Resizes to the given size, and sets all coefficients in this expression to random values.
+ *
+ * Numbers are uniformly spread through their whole definition range for integer types,
+ * and in the [-1:1] range for floating point scalar types.
+ *
+ * \not_reentrant
+ *
+ * \param rows the new number of rows
+ * \param cols the new number of columns
+ *
+ * Example: \include Matrix_setRandom_int_int.cpp
+ * Output: \verbinclude Matrix_setRandom_int_int.out
+ *
+ * \sa DenseBase::setRandom(), setRandom(Index), class CwiseNullaryOp, DenseBase::Random()
+ */
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived&
+PlainObjectBase<Derived>::setRandom(Index rows, Index cols)
+{
+ resize(rows, cols);
+ return setRandom();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_RANDOM_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Redux.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Redux.h
new file mode 100644
index 000000000..b6e8f8887
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Redux.h
@@ -0,0 +1,505 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_REDUX_H
+#define EIGEN_REDUX_H
+
+namespace Eigen {
+
+namespace internal {
+
+// TODO
+// * implement other kind of vectorization
+// * factorize code
+
+/***************************************************************************
+* Part 1 : the logic deciding a strategy for vectorization and unrolling
+***************************************************************************/
+
+template<typename Func, typename Derived>
+struct redux_traits
+{
+public:
+ typedef typename find_best_packet<typename Derived::Scalar,Derived::SizeAtCompileTime>::type PacketType;
+ enum {
+ PacketSize = unpacket_traits<PacketType>::size,
+ InnerMaxSize = int(Derived::IsRowMajor)
+ ? Derived::MaxColsAtCompileTime
+ : Derived::MaxRowsAtCompileTime
+ };
+
+ enum {
+ MightVectorize = (int(Derived::Flags)&ActualPacketAccessBit)
+ && (functor_traits<Func>::PacketAccess),
+ MayLinearVectorize = bool(MightVectorize) && (int(Derived::Flags)&LinearAccessBit),
+ MaySliceVectorize = bool(MightVectorize) && int(InnerMaxSize)>=3*PacketSize
+ };
+
+public:
+ enum {
+ Traversal = int(MayLinearVectorize) ? int(LinearVectorizedTraversal)
+ : int(MaySliceVectorize) ? int(SliceVectorizedTraversal)
+ : int(DefaultTraversal)
+ };
+
+public:
+ enum {
+ Cost = Derived::SizeAtCompileTime == Dynamic ? HugeCost
+ : Derived::SizeAtCompileTime * Derived::CoeffReadCost + (Derived::SizeAtCompileTime-1) * functor_traits<Func>::Cost,
+ UnrollingLimit = EIGEN_UNROLLING_LIMIT * (int(Traversal) == int(DefaultTraversal) ? 1 : int(PacketSize))
+ };
+
+public:
+ enum {
+ Unrolling = Cost <= UnrollingLimit ? CompleteUnrolling : NoUnrolling
+ };
+
+#ifdef EIGEN_DEBUG_ASSIGN
+ static void debug()
+ {
+ std::cerr << "Xpr: " << typeid(typename Derived::XprType).name() << std::endl;
+ std::cerr.setf(std::ios::hex, std::ios::basefield);
+ EIGEN_DEBUG_VAR(Derived::Flags)
+ std::cerr.unsetf(std::ios::hex);
+ EIGEN_DEBUG_VAR(InnerMaxSize)
+ EIGEN_DEBUG_VAR(PacketSize)
+ EIGEN_DEBUG_VAR(MightVectorize)
+ EIGEN_DEBUG_VAR(MayLinearVectorize)
+ EIGEN_DEBUG_VAR(MaySliceVectorize)
+ EIGEN_DEBUG_VAR(Traversal)
+ EIGEN_DEBUG_VAR(UnrollingLimit)
+ EIGEN_DEBUG_VAR(Unrolling)
+ std::cerr << std::endl;
+ }
+#endif
+};
+
+/***************************************************************************
+* Part 2 : unrollers
+***************************************************************************/
+
+/*** no vectorization ***/
+
+template<typename Func, typename Derived, int Start, int Length>
+struct redux_novec_unroller
+{
+ enum {
+ HalfLength = Length/2
+ };
+
+ typedef typename Derived::Scalar Scalar;
+
+ EIGEN_DEVICE_FUNC
+ static EIGEN_STRONG_INLINE Scalar run(const Derived &mat, const Func& func)
+ {
+ return func(redux_novec_unroller<Func, Derived, Start, HalfLength>::run(mat,func),
+ redux_novec_unroller<Func, Derived, Start+HalfLength, Length-HalfLength>::run(mat,func));
+ }
+};
+
+template<typename Func, typename Derived, int Start>
+struct redux_novec_unroller<Func, Derived, Start, 1>
+{
+ enum {
+ outer = Start / Derived::InnerSizeAtCompileTime,
+ inner = Start % Derived::InnerSizeAtCompileTime
+ };
+
+ typedef typename Derived::Scalar Scalar;
+
+ EIGEN_DEVICE_FUNC
+ static EIGEN_STRONG_INLINE Scalar run(const Derived &mat, const Func&)
+ {
+ return mat.coeffByOuterInner(outer, inner);
+ }
+};
+
+// This is actually dead code and will never be called. It is required
+// to prevent false warnings regarding failed inlining though
+// for 0 length run() will never be called at all.
+template<typename Func, typename Derived, int Start>
+struct redux_novec_unroller<Func, Derived, Start, 0>
+{
+ typedef typename Derived::Scalar Scalar;
+ EIGEN_DEVICE_FUNC
+ static EIGEN_STRONG_INLINE Scalar run(const Derived&, const Func&) { return Scalar(); }
+};
+
+/*** vectorization ***/
+
+template<typename Func, typename Derived, int Start, int Length>
+struct redux_vec_unroller
+{
+ enum {
+ PacketSize = redux_traits<Func, Derived>::PacketSize,
+ HalfLength = Length/2
+ };
+
+ typedef typename Derived::Scalar Scalar;
+ typedef typename redux_traits<Func, Derived>::PacketType PacketScalar;
+
+ static EIGEN_STRONG_INLINE PacketScalar run(const Derived &mat, const Func& func)
+ {
+ return func.packetOp(
+ redux_vec_unroller<Func, Derived, Start, HalfLength>::run(mat,func),
+ redux_vec_unroller<Func, Derived, Start+HalfLength, Length-HalfLength>::run(mat,func) );
+ }
+};
+
+template<typename Func, typename Derived, int Start>
+struct redux_vec_unroller<Func, Derived, Start, 1>
+{
+ enum {
+ index = Start * redux_traits<Func, Derived>::PacketSize,
+ outer = index / int(Derived::InnerSizeAtCompileTime),
+ inner = index % int(Derived::InnerSizeAtCompileTime),
+ alignment = Derived::Alignment
+ };
+
+ typedef typename Derived::Scalar Scalar;
+ typedef typename redux_traits<Func, Derived>::PacketType PacketScalar;
+
+ static EIGEN_STRONG_INLINE PacketScalar run(const Derived &mat, const Func&)
+ {
+ return mat.template packetByOuterInner<alignment,PacketScalar>(outer, inner);
+ }
+};
+
+/***************************************************************************
+* Part 3 : implementation of all cases
+***************************************************************************/
+
+template<typename Func, typename Derived,
+ int Traversal = redux_traits<Func, Derived>::Traversal,
+ int Unrolling = redux_traits<Func, Derived>::Unrolling
+>
+struct redux_impl;
+
+template<typename Func, typename Derived>
+struct redux_impl<Func, Derived, DefaultTraversal, NoUnrolling>
+{
+ typedef typename Derived::Scalar Scalar;
+ EIGEN_DEVICE_FUNC
+ static EIGEN_STRONG_INLINE Scalar run(const Derived &mat, const Func& func)
+ {
+ eigen_assert(mat.rows()>0 && mat.cols()>0 && "you are using an empty matrix");
+ Scalar res;
+ res = mat.coeffByOuterInner(0, 0);
+ for(Index i = 1; i < mat.innerSize(); ++i)
+ res = func(res, mat.coeffByOuterInner(0, i));
+ for(Index i = 1; i < mat.outerSize(); ++i)
+ for(Index j = 0; j < mat.innerSize(); ++j)
+ res = func(res, mat.coeffByOuterInner(i, j));
+ return res;
+ }
+};
+
+template<typename Func, typename Derived>
+struct redux_impl<Func,Derived, DefaultTraversal, CompleteUnrolling>
+ : public redux_novec_unroller<Func,Derived, 0, Derived::SizeAtCompileTime>
+{};
+
+template<typename Func, typename Derived>
+struct redux_impl<Func, Derived, LinearVectorizedTraversal, NoUnrolling>
+{
+ typedef typename Derived::Scalar Scalar;
+ typedef typename redux_traits<Func, Derived>::PacketType PacketScalar;
+
+ static Scalar run(const Derived &mat, const Func& func)
+ {
+ const Index size = mat.size();
+
+ const Index packetSize = redux_traits<Func, Derived>::PacketSize;
+ const int packetAlignment = unpacket_traits<PacketScalar>::alignment;
+ enum {
+ alignment0 = (bool(Derived::Flags & DirectAccessBit) && bool(packet_traits<Scalar>::AlignedOnScalar)) ? int(packetAlignment) : int(Unaligned),
+ alignment = EIGEN_PLAIN_ENUM_MAX(alignment0, Derived::Alignment)
+ };
+ const Index alignedStart = internal::first_default_aligned(mat.nestedExpression());
+ const Index alignedSize2 = ((size-alignedStart)/(2*packetSize))*(2*packetSize);
+ const Index alignedSize = ((size-alignedStart)/(packetSize))*(packetSize);
+ const Index alignedEnd2 = alignedStart + alignedSize2;
+ const Index alignedEnd = alignedStart + alignedSize;
+ Scalar res;
+ if(alignedSize)
+ {
+ PacketScalar packet_res0 = mat.template packet<alignment,PacketScalar>(alignedStart);
+ if(alignedSize>packetSize) // we have at least two packets to partly unroll the loop
+ {
+ PacketScalar packet_res1 = mat.template packet<alignment,PacketScalar>(alignedStart+packetSize);
+ for(Index index = alignedStart + 2*packetSize; index < alignedEnd2; index += 2*packetSize)
+ {
+ packet_res0 = func.packetOp(packet_res0, mat.template packet<alignment,PacketScalar>(index));
+ packet_res1 = func.packetOp(packet_res1, mat.template packet<alignment,PacketScalar>(index+packetSize));
+ }
+
+ packet_res0 = func.packetOp(packet_res0,packet_res1);
+ if(alignedEnd>alignedEnd2)
+ packet_res0 = func.packetOp(packet_res0, mat.template packet<alignment,PacketScalar>(alignedEnd2));
+ }
+ res = func.predux(packet_res0);
+
+ for(Index index = 0; index < alignedStart; ++index)
+ res = func(res,mat.coeff(index));
+
+ for(Index index = alignedEnd; index < size; ++index)
+ res = func(res,mat.coeff(index));
+ }
+ else // too small to vectorize anything.
+ // since this is dynamic-size hence inefficient anyway for such small sizes, don't try to optimize.
+ {
+ res = mat.coeff(0);
+ for(Index index = 1; index < size; ++index)
+ res = func(res,mat.coeff(index));
+ }
+
+ return res;
+ }
+};
+
+// NOTE: for SliceVectorizedTraversal we simply bypass unrolling
+template<typename Func, typename Derived, int Unrolling>
+struct redux_impl<Func, Derived, SliceVectorizedTraversal, Unrolling>
+{
+ typedef typename Derived::Scalar Scalar;
+ typedef typename redux_traits<Func, Derived>::PacketType PacketType;
+
+ EIGEN_DEVICE_FUNC static Scalar run(const Derived &mat, const Func& func)
+ {
+ eigen_assert(mat.rows()>0 && mat.cols()>0 && "you are using an empty matrix");
+ const Index innerSize = mat.innerSize();
+ const Index outerSize = mat.outerSize();
+ enum {
+ packetSize = redux_traits<Func, Derived>::PacketSize
+ };
+ const Index packetedInnerSize = ((innerSize)/packetSize)*packetSize;
+ Scalar res;
+ if(packetedInnerSize)
+ {
+ PacketType packet_res = mat.template packet<Unaligned,PacketType>(0,0);
+ for(Index j=0; j<outerSize; ++j)
+ for(Index i=(j==0?packetSize:0); i<packetedInnerSize; i+=Index(packetSize))
+ packet_res = func.packetOp(packet_res, mat.template packetByOuterInner<Unaligned,PacketType>(j,i));
+
+ res = func.predux(packet_res);
+ for(Index j=0; j<outerSize; ++j)
+ for(Index i=packetedInnerSize; i<innerSize; ++i)
+ res = func(res, mat.coeffByOuterInner(j,i));
+ }
+ else // too small to vectorize anything.
+ // since this is dynamic-size hence inefficient anyway for such small sizes, don't try to optimize.
+ {
+ res = redux_impl<Func, Derived, DefaultTraversal, NoUnrolling>::run(mat, func);
+ }
+
+ return res;
+ }
+};
+
+template<typename Func, typename Derived>
+struct redux_impl<Func, Derived, LinearVectorizedTraversal, CompleteUnrolling>
+{
+ typedef typename Derived::Scalar Scalar;
+
+ typedef typename redux_traits<Func, Derived>::PacketType PacketScalar;
+ enum {
+ PacketSize = redux_traits<Func, Derived>::PacketSize,
+ Size = Derived::SizeAtCompileTime,
+ VectorizedSize = (Size / PacketSize) * PacketSize
+ };
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE Scalar run(const Derived &mat, const Func& func)
+ {
+ eigen_assert(mat.rows()>0 && mat.cols()>0 && "you are using an empty matrix");
+ if (VectorizedSize > 0) {
+ Scalar res = func.predux(redux_vec_unroller<Func, Derived, 0, Size / PacketSize>::run(mat,func));
+ if (VectorizedSize != Size)
+ res = func(res,redux_novec_unroller<Func, Derived, VectorizedSize, Size-VectorizedSize>::run(mat,func));
+ return res;
+ }
+ else {
+ return redux_novec_unroller<Func, Derived, 0, Size>::run(mat,func);
+ }
+ }
+};
+
+// evaluator adaptor
+template<typename _XprType>
+class redux_evaluator
+{
+public:
+ typedef _XprType XprType;
+ EIGEN_DEVICE_FUNC explicit redux_evaluator(const XprType &xpr) : m_evaluator(xpr), m_xpr(xpr) {}
+
+ typedef typename XprType::Scalar Scalar;
+ typedef typename XprType::CoeffReturnType CoeffReturnType;
+ typedef typename XprType::PacketScalar PacketScalar;
+ typedef typename XprType::PacketReturnType PacketReturnType;
+
+ enum {
+ MaxRowsAtCompileTime = XprType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = XprType::MaxColsAtCompileTime,
+ // TODO we should not remove DirectAccessBit and rather find an elegant way to query the alignment offset at runtime from the evaluator
+ Flags = evaluator<XprType>::Flags & ~DirectAccessBit,
+ IsRowMajor = XprType::IsRowMajor,
+ SizeAtCompileTime = XprType::SizeAtCompileTime,
+ InnerSizeAtCompileTime = XprType::InnerSizeAtCompileTime,
+ CoeffReadCost = evaluator<XprType>::CoeffReadCost,
+ Alignment = evaluator<XprType>::Alignment
+ };
+
+ EIGEN_DEVICE_FUNC Index rows() const { return m_xpr.rows(); }
+ EIGEN_DEVICE_FUNC Index cols() const { return m_xpr.cols(); }
+ EIGEN_DEVICE_FUNC Index size() const { return m_xpr.size(); }
+ EIGEN_DEVICE_FUNC Index innerSize() const { return m_xpr.innerSize(); }
+ EIGEN_DEVICE_FUNC Index outerSize() const { return m_xpr.outerSize(); }
+
+ EIGEN_DEVICE_FUNC
+ CoeffReturnType coeff(Index row, Index col) const
+ { return m_evaluator.coeff(row, col); }
+
+ EIGEN_DEVICE_FUNC
+ CoeffReturnType coeff(Index index) const
+ { return m_evaluator.coeff(index); }
+
+ template<int LoadMode, typename PacketType>
+ PacketType packet(Index row, Index col) const
+ { return m_evaluator.template packet<LoadMode,PacketType>(row, col); }
+
+ template<int LoadMode, typename PacketType>
+ PacketType packet(Index index) const
+ { return m_evaluator.template packet<LoadMode,PacketType>(index); }
+
+ EIGEN_DEVICE_FUNC
+ CoeffReturnType coeffByOuterInner(Index outer, Index inner) const
+ { return m_evaluator.coeff(IsRowMajor ? outer : inner, IsRowMajor ? inner : outer); }
+
+ template<int LoadMode, typename PacketType>
+ PacketType packetByOuterInner(Index outer, Index inner) const
+ { return m_evaluator.template packet<LoadMode,PacketType>(IsRowMajor ? outer : inner, IsRowMajor ? inner : outer); }
+
+ const XprType & nestedExpression() const { return m_xpr; }
+
+protected:
+ internal::evaluator<XprType> m_evaluator;
+ const XprType &m_xpr;
+};
+
+} // end namespace internal
+
+/***************************************************************************
+* Part 4 : public API
+***************************************************************************/
+
+
+/** \returns the result of a full redux operation on the whole matrix or vector using \a func
+ *
+ * The template parameter \a BinaryOp is the type of the functor \a func which must be
+ * an associative operator. Both current C++98 and C++11 functor styles are handled.
+ *
+ * \sa DenseBase::sum(), DenseBase::minCoeff(), DenseBase::maxCoeff(), MatrixBase::colwise(), MatrixBase::rowwise()
+ */
+template<typename Derived>
+template<typename Func>
+typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::redux(const Func& func) const
+{
+ eigen_assert(this->rows()>0 && this->cols()>0 && "you are using an empty matrix");
+
+ typedef typename internal::redux_evaluator<Derived> ThisEvaluator;
+ ThisEvaluator thisEval(derived());
+
+ return internal::redux_impl<Func, ThisEvaluator>::run(thisEval, func);
+}
+
+/** \returns the minimum of all coefficients of \c *this.
+ * \warning the result is undefined if \c *this contains NaN.
+ */
+template<typename Derived>
+EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::minCoeff() const
+{
+ return derived().redux(Eigen::internal::scalar_min_op<Scalar,Scalar>());
+}
+
+/** \returns the maximum of all coefficients of \c *this.
+ * \warning the result is undefined if \c *this contains NaN.
+ */
+template<typename Derived>
+EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::maxCoeff() const
+{
+ return derived().redux(Eigen::internal::scalar_max_op<Scalar,Scalar>());
+}
+
+/** \returns the sum of all coefficients of \c *this
+ *
+ * If \c *this is empty, then the value 0 is returned.
+ *
+ * \sa trace(), prod(), mean()
+ */
+template<typename Derived>
+EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::sum() const
+{
+ if(SizeAtCompileTime==0 || (SizeAtCompileTime==Dynamic && size()==0))
+ return Scalar(0);
+ return derived().redux(Eigen::internal::scalar_sum_op<Scalar,Scalar>());
+}
+
+/** \returns the mean of all coefficients of *this
+*
+* \sa trace(), prod(), sum()
+*/
+template<typename Derived>
+EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::mean() const
+{
+#ifdef __INTEL_COMPILER
+ #pragma warning push
+ #pragma warning ( disable : 2259 )
+#endif
+ return Scalar(derived().redux(Eigen::internal::scalar_sum_op<Scalar,Scalar>())) / Scalar(this->size());
+#ifdef __INTEL_COMPILER
+ #pragma warning pop
+#endif
+}
+
+/** \returns the product of all coefficients of *this
+ *
+ * Example: \include MatrixBase_prod.cpp
+ * Output: \verbinclude MatrixBase_prod.out
+ *
+ * \sa sum(), mean(), trace()
+ */
+template<typename Derived>
+EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::prod() const
+{
+ if(SizeAtCompileTime==0 || (SizeAtCompileTime==Dynamic && size()==0))
+ return Scalar(1);
+ return derived().redux(Eigen::internal::scalar_product_op<Scalar>());
+}
+
+/** \returns the trace of \c *this, i.e. the sum of the coefficients on the main diagonal.
+ *
+ * \c *this can be any matrix, not necessarily square.
+ *
+ * \sa diagonal(), sum()
+ */
+template<typename Derived>
+EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
+MatrixBase<Derived>::trace() const
+{
+ return derived().diagonal().sum();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_REDUX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Ref.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Ref.h
new file mode 100644
index 000000000..bdf24f52a
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Ref.h
@@ -0,0 +1,281 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_REF_H
+#define EIGEN_REF_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename _PlainObjectType, int _Options, typename _StrideType>
+struct traits<Ref<_PlainObjectType, _Options, _StrideType> >
+ : public traits<Map<_PlainObjectType, _Options, _StrideType> >
+{
+ typedef _PlainObjectType PlainObjectType;
+ typedef _StrideType StrideType;
+ enum {
+ Options = _Options,
+ Flags = traits<Map<_PlainObjectType, _Options, _StrideType> >::Flags | NestByRefBit,
+ Alignment = traits<Map<_PlainObjectType, _Options, _StrideType> >::Alignment
+ };
+
+ template<typename Derived> struct match {
+ enum {
+ HasDirectAccess = internal::has_direct_access<Derived>::ret,
+ StorageOrderMatch = PlainObjectType::IsVectorAtCompileTime || Derived::IsVectorAtCompileTime || ((PlainObjectType::Flags&RowMajorBit)==(Derived::Flags&RowMajorBit)),
+ InnerStrideMatch = int(StrideType::InnerStrideAtCompileTime)==int(Dynamic)
+ || int(StrideType::InnerStrideAtCompileTime)==int(Derived::InnerStrideAtCompileTime)
+ || (int(StrideType::InnerStrideAtCompileTime)==0 && int(Derived::InnerStrideAtCompileTime)==1),
+ OuterStrideMatch = Derived::IsVectorAtCompileTime
+ || int(StrideType::OuterStrideAtCompileTime)==int(Dynamic) || int(StrideType::OuterStrideAtCompileTime)==int(Derived::OuterStrideAtCompileTime),
+ // NOTE, this indirection of evaluator<Derived>::Alignment is needed
+ // to workaround a very strange bug in MSVC related to the instantiation
+ // of has_*ary_operator in evaluator<CwiseNullaryOp>.
+ // This line is surprisingly very sensitive. For instance, simply adding parenthesis
+ // as "DerivedAlignment = (int(evaluator<Derived>::Alignment))," will make MSVC fail...
+ DerivedAlignment = int(evaluator<Derived>::Alignment),
+ AlignmentMatch = (int(traits<PlainObjectType>::Alignment)==int(Unaligned)) || (DerivedAlignment >= int(Alignment)), // FIXME the first condition is not very clear, it should be replaced by the required alignment
+ ScalarTypeMatch = internal::is_same<typename PlainObjectType::Scalar, typename Derived::Scalar>::value,
+ MatchAtCompileTime = HasDirectAccess && StorageOrderMatch && InnerStrideMatch && OuterStrideMatch && AlignmentMatch && ScalarTypeMatch
+ };
+ typedef typename internal::conditional<MatchAtCompileTime,internal::true_type,internal::false_type>::type type;
+ };
+
+};
+
+template<typename Derived>
+struct traits<RefBase<Derived> > : public traits<Derived> {};
+
+}
+
+template<typename Derived> class RefBase
+ : public MapBase<Derived>
+{
+ typedef typename internal::traits<Derived>::PlainObjectType PlainObjectType;
+ typedef typename internal::traits<Derived>::StrideType StrideType;
+
+public:
+
+ typedef MapBase<Derived> Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(RefBase)
+
+ EIGEN_DEVICE_FUNC inline Index innerStride() const
+ {
+ return StrideType::InnerStrideAtCompileTime != 0 ? m_stride.inner() : 1;
+ }
+
+ EIGEN_DEVICE_FUNC inline Index outerStride() const
+ {
+ return StrideType::OuterStrideAtCompileTime != 0 ? m_stride.outer()
+ : IsVectorAtCompileTime ? this->size()
+ : int(Flags)&RowMajorBit ? this->cols()
+ : this->rows();
+ }
+
+ EIGEN_DEVICE_FUNC RefBase()
+ : Base(0,RowsAtCompileTime==Dynamic?0:RowsAtCompileTime,ColsAtCompileTime==Dynamic?0:ColsAtCompileTime),
+ // Stride<> does not allow default ctor for Dynamic strides, so let' initialize it with dummy values:
+ m_stride(StrideType::OuterStrideAtCompileTime==Dynamic?0:StrideType::OuterStrideAtCompileTime,
+ StrideType::InnerStrideAtCompileTime==Dynamic?0:StrideType::InnerStrideAtCompileTime)
+ {}
+
+ EIGEN_INHERIT_ASSIGNMENT_OPERATORS(RefBase)
+
+protected:
+
+ typedef Stride<StrideType::OuterStrideAtCompileTime,StrideType::InnerStrideAtCompileTime> StrideBase;
+
+ template<typename Expression>
+ EIGEN_DEVICE_FUNC void construct(Expression& expr)
+ {
+ if(PlainObjectType::RowsAtCompileTime==1)
+ {
+ eigen_assert(expr.rows()==1 || expr.cols()==1);
+ ::new (static_cast<Base*>(this)) Base(expr.data(), 1, expr.size());
+ }
+ else if(PlainObjectType::ColsAtCompileTime==1)
+ {
+ eigen_assert(expr.rows()==1 || expr.cols()==1);
+ ::new (static_cast<Base*>(this)) Base(expr.data(), expr.size(), 1);
+ }
+ else
+ ::new (static_cast<Base*>(this)) Base(expr.data(), expr.rows(), expr.cols());
+
+ if(Expression::IsVectorAtCompileTime && (!PlainObjectType::IsVectorAtCompileTime) && ((Expression::Flags&RowMajorBit)!=(PlainObjectType::Flags&RowMajorBit)))
+ ::new (&m_stride) StrideBase(expr.innerStride(), StrideType::InnerStrideAtCompileTime==0?0:1);
+ else
+ ::new (&m_stride) StrideBase(StrideType::OuterStrideAtCompileTime==0?0:expr.outerStride(),
+ StrideType::InnerStrideAtCompileTime==0?0:expr.innerStride());
+ }
+
+ StrideBase m_stride;
+};
+
+/** \class Ref
+ * \ingroup Core_Module
+ *
+ * \brief A matrix or vector expression mapping an existing expression
+ *
+ * \tparam PlainObjectType the equivalent matrix type of the mapped data
+ * \tparam Options specifies the pointer alignment in bytes. It can be: \c #Aligned128, , \c #Aligned64, \c #Aligned32, \c #Aligned16, \c #Aligned8 or \c #Unaligned.
+ * The default is \c #Unaligned.
+ * \tparam StrideType optionally specifies strides. By default, Ref implies a contiguous storage along the inner dimension (inner stride==1),
+ * but accepts a variable outer stride (leading dimension).
+ * This can be overridden by specifying strides.
+ * The type passed here must be a specialization of the Stride template, see examples below.
+ *
+ * This class provides a way to write non-template functions taking Eigen objects as parameters while limiting the number of copies.
+ * A Ref<> object can represent either a const expression or a l-value:
+ * \code
+ * // in-out argument:
+ * void foo1(Ref<VectorXf> x);
+ *
+ * // read-only const argument:
+ * void foo2(const Ref<const VectorXf>& x);
+ * \endcode
+ *
+ * In the in-out case, the input argument must satisfy the constraints of the actual Ref<> type, otherwise a compilation issue will be triggered.
+ * By default, a Ref<VectorXf> can reference any dense vector expression of float having a contiguous memory layout.
+ * Likewise, a Ref<MatrixXf> can reference any column-major dense matrix expression of float whose column's elements are contiguously stored with
+ * the possibility to have a constant space in-between each column, i.e. the inner stride must be equal to 1, but the outer stride (or leading dimension)
+ * can be greater than the number of rows.
+ *
+ * In the const case, if the input expression does not match the above requirement, then it is evaluated into a temporary before being passed to the function.
+ * Here are some examples:
+ * \code
+ * MatrixXf A;
+ * VectorXf a;
+ * foo1(a.head()); // OK
+ * foo1(A.col()); // OK
+ * foo1(A.row()); // Compilation error because here innerstride!=1
+ * foo2(A.row()); // Compilation error because A.row() is a 1xN object while foo2 is expecting a Nx1 object
+ * foo2(A.row().transpose()); // The row is copied into a contiguous temporary
+ * foo2(2*a); // The expression is evaluated into a temporary
+ * foo2(A.col().segment(2,4)); // No temporary
+ * \endcode
+ *
+ * The range of inputs that can be referenced without temporary can be enlarged using the last two template parameters.
+ * Here is an example accepting an innerstride!=1:
+ * \code
+ * // in-out argument:
+ * void foo3(Ref<VectorXf,0,InnerStride<> > x);
+ * foo3(A.row()); // OK
+ * \endcode
+ * The downside here is that the function foo3 might be significantly slower than foo1 because it won't be able to exploit vectorization, and will involve more
+ * expensive address computations even if the input is contiguously stored in memory. To overcome this issue, one might propose to overload internally calling a
+ * template function, e.g.:
+ * \code
+ * // in the .h:
+ * void foo(const Ref<MatrixXf>& A);
+ * void foo(const Ref<MatrixXf,0,Stride<> >& A);
+ *
+ * // in the .cpp:
+ * template<typename TypeOfA> void foo_impl(const TypeOfA& A) {
+ * ... // crazy code goes here
+ * }
+ * void foo(const Ref<MatrixXf>& A) { foo_impl(A); }
+ * void foo(const Ref<MatrixXf,0,Stride<> >& A) { foo_impl(A); }
+ * \endcode
+ *
+ *
+ * \sa PlainObjectBase::Map(), \ref TopicStorageOrders
+ */
+template<typename PlainObjectType, int Options, typename StrideType> class Ref
+ : public RefBase<Ref<PlainObjectType, Options, StrideType> >
+{
+ private:
+ typedef internal::traits<Ref> Traits;
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC inline Ref(const PlainObjectBase<Derived>& expr,
+ typename internal::enable_if<bool(Traits::template match<Derived>::MatchAtCompileTime),Derived>::type* = 0);
+ public:
+
+ typedef RefBase<Ref> Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(Ref)
+
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC inline Ref(PlainObjectBase<Derived>& expr,
+ typename internal::enable_if<bool(Traits::template match<Derived>::MatchAtCompileTime),Derived>::type* = 0)
+ {
+ EIGEN_STATIC_ASSERT(bool(Traits::template match<Derived>::MatchAtCompileTime), STORAGE_LAYOUT_DOES_NOT_MATCH);
+ Base::construct(expr.derived());
+ }
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC inline Ref(const DenseBase<Derived>& expr,
+ typename internal::enable_if<bool(Traits::template match<Derived>::MatchAtCompileTime),Derived>::type* = 0)
+ #else
+ /** Implicit constructor from any dense expression */
+ template<typename Derived>
+ inline Ref(DenseBase<Derived>& expr)
+ #endif
+ {
+ EIGEN_STATIC_ASSERT(bool(internal::is_lvalue<Derived>::value), THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY);
+ EIGEN_STATIC_ASSERT(bool(Traits::template match<Derived>::MatchAtCompileTime), STORAGE_LAYOUT_DOES_NOT_MATCH);
+ EIGEN_STATIC_ASSERT(!Derived::IsPlainObjectBase,THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY);
+ Base::construct(expr.const_cast_derived());
+ }
+
+ EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Ref)
+
+};
+
+// this is the const ref version
+template<typename TPlainObjectType, int Options, typename StrideType> class Ref<const TPlainObjectType, Options, StrideType>
+ : public RefBase<Ref<const TPlainObjectType, Options, StrideType> >
+{
+ typedef internal::traits<Ref> Traits;
+ public:
+
+ typedef RefBase<Ref> Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(Ref)
+
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC inline Ref(const DenseBase<Derived>& expr,
+ typename internal::enable_if<bool(Traits::template match<Derived>::ScalarTypeMatch),Derived>::type* = 0)
+ {
+// std::cout << match_helper<Derived>::HasDirectAccess << "," << match_helper<Derived>::OuterStrideMatch << "," << match_helper<Derived>::InnerStrideMatch << "\n";
+// std::cout << int(StrideType::OuterStrideAtCompileTime) << " - " << int(Derived::OuterStrideAtCompileTime) << "\n";
+// std::cout << int(StrideType::InnerStrideAtCompileTime) << " - " << int(Derived::InnerStrideAtCompileTime) << "\n";
+ construct(expr.derived(), typename Traits::template match<Derived>::type());
+ }
+
+ EIGEN_DEVICE_FUNC inline Ref(const Ref& other) : Base(other) {
+ // copy constructor shall not copy the m_object, to avoid unnecessary malloc and copy
+ }
+
+ template<typename OtherRef>
+ EIGEN_DEVICE_FUNC inline Ref(const RefBase<OtherRef>& other) {
+ construct(other.derived(), typename Traits::template match<OtherRef>::type());
+ }
+
+ protected:
+
+ template<typename Expression>
+ EIGEN_DEVICE_FUNC void construct(const Expression& expr,internal::true_type)
+ {
+ Base::construct(expr);
+ }
+
+ template<typename Expression>
+ EIGEN_DEVICE_FUNC void construct(const Expression& expr, internal::false_type)
+ {
+ internal::call_assignment_no_alias(m_object,expr,internal::assign_op<Scalar,Scalar>());
+ Base::construct(m_object);
+ }
+
+ protected:
+ TPlainObjectType m_object;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_REF_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Replicate.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Replicate.h
new file mode 100644
index 000000000..9960ef884
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Replicate.h
@@ -0,0 +1,142 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_REPLICATE_H
+#define EIGEN_REPLICATE_H
+
+namespace Eigen {
+
+namespace internal {
+template<typename MatrixType,int RowFactor,int ColFactor>
+struct traits<Replicate<MatrixType,RowFactor,ColFactor> >
+ : traits<MatrixType>
+{
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename traits<MatrixType>::StorageKind StorageKind;
+ typedef typename traits<MatrixType>::XprKind XprKind;
+ typedef typename ref_selector<MatrixType>::type MatrixTypeNested;
+ typedef typename remove_reference<MatrixTypeNested>::type _MatrixTypeNested;
+ enum {
+ RowsAtCompileTime = RowFactor==Dynamic || int(MatrixType::RowsAtCompileTime)==Dynamic
+ ? Dynamic
+ : RowFactor * MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = ColFactor==Dynamic || int(MatrixType::ColsAtCompileTime)==Dynamic
+ ? Dynamic
+ : ColFactor * MatrixType::ColsAtCompileTime,
+ //FIXME we don't propagate the max sizes !!!
+ MaxRowsAtCompileTime = RowsAtCompileTime,
+ MaxColsAtCompileTime = ColsAtCompileTime,
+ IsRowMajor = MaxRowsAtCompileTime==1 && MaxColsAtCompileTime!=1 ? 1
+ : MaxColsAtCompileTime==1 && MaxRowsAtCompileTime!=1 ? 0
+ : (MatrixType::Flags & RowMajorBit) ? 1 : 0,
+
+ // FIXME enable DirectAccess with negative strides?
+ Flags = IsRowMajor ? RowMajorBit : 0
+ };
+};
+}
+
+/**
+ * \class Replicate
+ * \ingroup Core_Module
+ *
+ * \brief Expression of the multiple replication of a matrix or vector
+ *
+ * \tparam MatrixType the type of the object we are replicating
+ * \tparam RowFactor number of repetitions at compile time along the vertical direction, can be Dynamic.
+ * \tparam ColFactor number of repetitions at compile time along the horizontal direction, can be Dynamic.
+ *
+ * This class represents an expression of the multiple replication of a matrix or vector.
+ * It is the return type of DenseBase::replicate() and most of the time
+ * this is the only way it is used.
+ *
+ * \sa DenseBase::replicate()
+ */
+template<typename MatrixType,int RowFactor,int ColFactor> class Replicate
+ : public internal::dense_xpr_base< Replicate<MatrixType,RowFactor,ColFactor> >::type
+{
+ typedef typename internal::traits<Replicate>::MatrixTypeNested MatrixTypeNested;
+ typedef typename internal::traits<Replicate>::_MatrixTypeNested _MatrixTypeNested;
+ public:
+
+ typedef typename internal::dense_xpr_base<Replicate>::type Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(Replicate)
+ typedef typename internal::remove_all<MatrixType>::type NestedExpression;
+
+ template<typename OriginalMatrixType>
+ EIGEN_DEVICE_FUNC
+ inline explicit Replicate(const OriginalMatrixType& matrix)
+ : m_matrix(matrix), m_rowFactor(RowFactor), m_colFactor(ColFactor)
+ {
+ EIGEN_STATIC_ASSERT((internal::is_same<typename internal::remove_const<MatrixType>::type,OriginalMatrixType>::value),
+ THE_MATRIX_OR_EXPRESSION_THAT_YOU_PASSED_DOES_NOT_HAVE_THE_EXPECTED_TYPE)
+ eigen_assert(RowFactor!=Dynamic && ColFactor!=Dynamic);
+ }
+
+ template<typename OriginalMatrixType>
+ EIGEN_DEVICE_FUNC
+ inline Replicate(const OriginalMatrixType& matrix, Index rowFactor, Index colFactor)
+ : m_matrix(matrix), m_rowFactor(rowFactor), m_colFactor(colFactor)
+ {
+ EIGEN_STATIC_ASSERT((internal::is_same<typename internal::remove_const<MatrixType>::type,OriginalMatrixType>::value),
+ THE_MATRIX_OR_EXPRESSION_THAT_YOU_PASSED_DOES_NOT_HAVE_THE_EXPECTED_TYPE)
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline Index rows() const { return m_matrix.rows() * m_rowFactor.value(); }
+ EIGEN_DEVICE_FUNC
+ inline Index cols() const { return m_matrix.cols() * m_colFactor.value(); }
+
+ EIGEN_DEVICE_FUNC
+ const _MatrixTypeNested& nestedExpression() const
+ {
+ return m_matrix;
+ }
+
+ protected:
+ MatrixTypeNested m_matrix;
+ const internal::variable_if_dynamic<Index, RowFactor> m_rowFactor;
+ const internal::variable_if_dynamic<Index, ColFactor> m_colFactor;
+};
+
+/**
+ * \return an expression of the replication of \c *this
+ *
+ * Example: \include MatrixBase_replicate.cpp
+ * Output: \verbinclude MatrixBase_replicate.out
+ *
+ * \sa VectorwiseOp::replicate(), DenseBase::replicate(Index,Index), class Replicate
+ */
+template<typename Derived>
+template<int RowFactor, int ColFactor>
+const Replicate<Derived,RowFactor,ColFactor>
+DenseBase<Derived>::replicate() const
+{
+ return Replicate<Derived,RowFactor,ColFactor>(derived());
+}
+
+/**
+ * \return an expression of the replication of each column (or row) of \c *this
+ *
+ * Example: \include DirectionWise_replicate_int.cpp
+ * Output: \verbinclude DirectionWise_replicate_int.out
+ *
+ * \sa VectorwiseOp::replicate(), DenseBase::replicate(), class Replicate
+ */
+template<typename ExpressionType, int Direction>
+const typename VectorwiseOp<ExpressionType,Direction>::ReplicateReturnType
+VectorwiseOp<ExpressionType,Direction>::replicate(Index factor) const
+{
+ return typename VectorwiseOp<ExpressionType,Direction>::ReplicateReturnType
+ (_expression(),Direction==Vertical?factor:1,Direction==Horizontal?factor:1);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_REPLICATE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/ReturnByValue.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/ReturnByValue.h
new file mode 100644
index 000000000..c44b7673b
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/ReturnByValue.h
@@ -0,0 +1,117 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_RETURNBYVALUE_H
+#define EIGEN_RETURNBYVALUE_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename Derived>
+struct traits<ReturnByValue<Derived> >
+ : public traits<typename traits<Derived>::ReturnType>
+{
+ enum {
+ // We're disabling the DirectAccess because e.g. the constructor of
+ // the Block-with-DirectAccess expression requires to have a coeffRef method.
+ // Also, we don't want to have to implement the stride stuff.
+ Flags = (traits<typename traits<Derived>::ReturnType>::Flags
+ | EvalBeforeNestingBit) & ~DirectAccessBit
+ };
+};
+
+/* The ReturnByValue object doesn't even have a coeff() method.
+ * So the only way that nesting it in an expression can work, is by evaluating it into a plain matrix.
+ * So internal::nested always gives the plain return matrix type.
+ *
+ * FIXME: I don't understand why we need this specialization: isn't this taken care of by the EvalBeforeNestingBit ??
+ * Answer: EvalBeforeNestingBit should be deprecated since we have the evaluators
+ */
+template<typename Derived,int n,typename PlainObject>
+struct nested_eval<ReturnByValue<Derived>, n, PlainObject>
+{
+ typedef typename traits<Derived>::ReturnType type;
+};
+
+} // end namespace internal
+
+/** \class ReturnByValue
+ * \ingroup Core_Module
+ *
+ */
+template<typename Derived> class ReturnByValue
+ : public internal::dense_xpr_base< ReturnByValue<Derived> >::type, internal::no_assignment_operator
+{
+ public:
+ typedef typename internal::traits<Derived>::ReturnType ReturnType;
+
+ typedef typename internal::dense_xpr_base<ReturnByValue>::type Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(ReturnByValue)
+
+ template<typename Dest>
+ EIGEN_DEVICE_FUNC
+ inline void evalTo(Dest& dst) const
+ { static_cast<const Derived*>(this)->evalTo(dst); }
+ EIGEN_DEVICE_FUNC inline Index rows() const { return static_cast<const Derived*>(this)->rows(); }
+ EIGEN_DEVICE_FUNC inline Index cols() const { return static_cast<const Derived*>(this)->cols(); }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+#define Unusable YOU_ARE_TRYING_TO_ACCESS_A_SINGLE_COEFFICIENT_IN_A_SPECIAL_EXPRESSION_WHERE_THAT_IS_NOT_ALLOWED_BECAUSE_THAT_WOULD_BE_INEFFICIENT
+ class Unusable{
+ Unusable(const Unusable&) {}
+ Unusable& operator=(const Unusable&) {return *this;}
+ };
+ const Unusable& coeff(Index) const { return *reinterpret_cast<const Unusable*>(this); }
+ const Unusable& coeff(Index,Index) const { return *reinterpret_cast<const Unusable*>(this); }
+ Unusable& coeffRef(Index) { return *reinterpret_cast<Unusable*>(this); }
+ Unusable& coeffRef(Index,Index) { return *reinterpret_cast<Unusable*>(this); }
+#undef Unusable
+#endif
+};
+
+template<typename Derived>
+template<typename OtherDerived>
+Derived& DenseBase<Derived>::operator=(const ReturnByValue<OtherDerived>& other)
+{
+ other.evalTo(derived());
+ return derived();
+}
+
+namespace internal {
+
+// Expression is evaluated in a temporary; default implementation of Assignment is bypassed so that
+// when a ReturnByValue expression is assigned, the evaluator is not constructed.
+// TODO: Finalize port to new regime; ReturnByValue should not exist in the expression world
+
+template<typename Derived>
+struct evaluator<ReturnByValue<Derived> >
+ : public evaluator<typename internal::traits<Derived>::ReturnType>
+{
+ typedef ReturnByValue<Derived> XprType;
+ typedef typename internal::traits<Derived>::ReturnType PlainObject;
+ typedef evaluator<PlainObject> Base;
+
+ EIGEN_DEVICE_FUNC explicit evaluator(const XprType& xpr)
+ : m_result(xpr.rows(), xpr.cols())
+ {
+ ::new (static_cast<Base*>(this)) Base(m_result);
+ xpr.evalTo(m_result);
+ }
+
+protected:
+ PlainObject m_result;
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_RETURNBYVALUE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Reverse.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Reverse.h
new file mode 100644
index 000000000..0640cda2a
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Reverse.h
@@ -0,0 +1,211 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2009 Ricard Marxer <email@ricardmarxer.com>
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_REVERSE_H
+#define EIGEN_REVERSE_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename MatrixType, int Direction>
+struct traits<Reverse<MatrixType, Direction> >
+ : traits<MatrixType>
+{
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename traits<MatrixType>::StorageKind StorageKind;
+ typedef typename traits<MatrixType>::XprKind XprKind;
+ typedef typename ref_selector<MatrixType>::type MatrixTypeNested;
+ typedef typename remove_reference<MatrixTypeNested>::type _MatrixTypeNested;
+ enum {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+ Flags = _MatrixTypeNested::Flags & (RowMajorBit | LvalueBit)
+ };
+};
+
+template<typename PacketType, bool ReversePacket> struct reverse_packet_cond
+{
+ static inline PacketType run(const PacketType& x) { return preverse(x); }
+};
+
+template<typename PacketType> struct reverse_packet_cond<PacketType,false>
+{
+ static inline PacketType run(const PacketType& x) { return x; }
+};
+
+} // end namespace internal
+
+/** \class Reverse
+ * \ingroup Core_Module
+ *
+ * \brief Expression of the reverse of a vector or matrix
+ *
+ * \tparam MatrixType the type of the object of which we are taking the reverse
+ * \tparam Direction defines the direction of the reverse operation, can be Vertical, Horizontal, or BothDirections
+ *
+ * This class represents an expression of the reverse of a vector.
+ * It is the return type of MatrixBase::reverse() and VectorwiseOp::reverse()
+ * and most of the time this is the only way it is used.
+ *
+ * \sa MatrixBase::reverse(), VectorwiseOp::reverse()
+ */
+template<typename MatrixType, int Direction> class Reverse
+ : public internal::dense_xpr_base< Reverse<MatrixType, Direction> >::type
+{
+ public:
+
+ typedef typename internal::dense_xpr_base<Reverse>::type Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(Reverse)
+ typedef typename internal::remove_all<MatrixType>::type NestedExpression;
+ using Base::IsRowMajor;
+
+ protected:
+ enum {
+ PacketSize = internal::packet_traits<Scalar>::size,
+ IsColMajor = !IsRowMajor,
+ ReverseRow = (Direction == Vertical) || (Direction == BothDirections),
+ ReverseCol = (Direction == Horizontal) || (Direction == BothDirections),
+ OffsetRow = ReverseRow && IsColMajor ? PacketSize : 1,
+ OffsetCol = ReverseCol && IsRowMajor ? PacketSize : 1,
+ ReversePacket = (Direction == BothDirections)
+ || ((Direction == Vertical) && IsColMajor)
+ || ((Direction == Horizontal) && IsRowMajor)
+ };
+ typedef internal::reverse_packet_cond<PacketScalar,ReversePacket> reverse_packet;
+ public:
+
+ EIGEN_DEVICE_FUNC explicit inline Reverse(const MatrixType& matrix) : m_matrix(matrix) { }
+
+ EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Reverse)
+
+ EIGEN_DEVICE_FUNC inline Index rows() const { return m_matrix.rows(); }
+ EIGEN_DEVICE_FUNC inline Index cols() const { return m_matrix.cols(); }
+
+ EIGEN_DEVICE_FUNC inline Index innerStride() const
+ {
+ return -m_matrix.innerStride();
+ }
+
+ EIGEN_DEVICE_FUNC const typename internal::remove_all<typename MatrixType::Nested>::type&
+ nestedExpression() const
+ {
+ return m_matrix;
+ }
+
+ protected:
+ typename MatrixType::Nested m_matrix;
+};
+
+/** \returns an expression of the reverse of *this.
+ *
+ * Example: \include MatrixBase_reverse.cpp
+ * Output: \verbinclude MatrixBase_reverse.out
+ *
+ */
+template<typename Derived>
+inline typename DenseBase<Derived>::ReverseReturnType
+DenseBase<Derived>::reverse()
+{
+ return ReverseReturnType(derived());
+}
+
+
+//reverse const overload moved DenseBase.h due to a CUDA compiler bug
+
+/** This is the "in place" version of reverse: it reverses \c *this.
+ *
+ * In most cases it is probably better to simply use the reversed expression
+ * of a matrix. However, when reversing the matrix data itself is really needed,
+ * then this "in-place" version is probably the right choice because it provides
+ * the following additional benefits:
+ * - less error prone: doing the same operation with .reverse() requires special care:
+ * \code m = m.reverse().eval(); \endcode
+ * - this API enables reverse operations without the need for a temporary
+ * - it allows future optimizations (cache friendliness, etc.)
+ *
+ * \sa VectorwiseOp::reverseInPlace(), reverse() */
+template<typename Derived>
+inline void DenseBase<Derived>::reverseInPlace()
+{
+ if(cols()>rows())
+ {
+ Index half = cols()/2;
+ leftCols(half).swap(rightCols(half).reverse());
+ if((cols()%2)==1)
+ {
+ Index half2 = rows()/2;
+ col(half).head(half2).swap(col(half).tail(half2).reverse());
+ }
+ }
+ else
+ {
+ Index half = rows()/2;
+ topRows(half).swap(bottomRows(half).reverse());
+ if((rows()%2)==1)
+ {
+ Index half2 = cols()/2;
+ row(half).head(half2).swap(row(half).tail(half2).reverse());
+ }
+ }
+}
+
+namespace internal {
+
+template<int Direction>
+struct vectorwise_reverse_inplace_impl;
+
+template<>
+struct vectorwise_reverse_inplace_impl<Vertical>
+{
+ template<typename ExpressionType>
+ static void run(ExpressionType &xpr)
+ {
+ Index half = xpr.rows()/2;
+ xpr.topRows(half).swap(xpr.bottomRows(half).colwise().reverse());
+ }
+};
+
+template<>
+struct vectorwise_reverse_inplace_impl<Horizontal>
+{
+ template<typename ExpressionType>
+ static void run(ExpressionType &xpr)
+ {
+ Index half = xpr.cols()/2;
+ xpr.leftCols(half).swap(xpr.rightCols(half).rowwise().reverse());
+ }
+};
+
+} // end namespace internal
+
+/** This is the "in place" version of VectorwiseOp::reverse: it reverses each column or row of \c *this.
+ *
+ * In most cases it is probably better to simply use the reversed expression
+ * of a matrix. However, when reversing the matrix data itself is really needed,
+ * then this "in-place" version is probably the right choice because it provides
+ * the following additional benefits:
+ * - less error prone: doing the same operation with .reverse() requires special care:
+ * \code m = m.reverse().eval(); \endcode
+ * - this API enables reverse operations without the need for a temporary
+ *
+ * \sa DenseBase::reverseInPlace(), reverse() */
+template<typename ExpressionType, int Direction>
+void VectorwiseOp<ExpressionType,Direction>::reverseInPlace()
+{
+ internal::vectorwise_reverse_inplace_impl<Direction>::run(_expression().const_cast_derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_REVERSE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Select.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Select.h
new file mode 100644
index 000000000..79eec1b5b
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Select.h
@@ -0,0 +1,162 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELECT_H
+#define EIGEN_SELECT_H
+
+namespace Eigen {
+
+/** \class Select
+ * \ingroup Core_Module
+ *
+ * \brief Expression of a coefficient wise version of the C++ ternary operator ?:
+ *
+ * \param ConditionMatrixType the type of the \em condition expression which must be a boolean matrix
+ * \param ThenMatrixType the type of the \em then expression
+ * \param ElseMatrixType the type of the \em else expression
+ *
+ * This class represents an expression of a coefficient wise version of the C++ ternary operator ?:.
+ * It is the return type of DenseBase::select() and most of the time this is the only way it is used.
+ *
+ * \sa DenseBase::select(const DenseBase<ThenDerived>&, const DenseBase<ElseDerived>&) const
+ */
+
+namespace internal {
+template<typename ConditionMatrixType, typename ThenMatrixType, typename ElseMatrixType>
+struct traits<Select<ConditionMatrixType, ThenMatrixType, ElseMatrixType> >
+ : traits<ThenMatrixType>
+{
+ typedef typename traits<ThenMatrixType>::Scalar Scalar;
+ typedef Dense StorageKind;
+ typedef typename traits<ThenMatrixType>::XprKind XprKind;
+ typedef typename ConditionMatrixType::Nested ConditionMatrixNested;
+ typedef typename ThenMatrixType::Nested ThenMatrixNested;
+ typedef typename ElseMatrixType::Nested ElseMatrixNested;
+ enum {
+ RowsAtCompileTime = ConditionMatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = ConditionMatrixType::ColsAtCompileTime,
+ MaxRowsAtCompileTime = ConditionMatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = ConditionMatrixType::MaxColsAtCompileTime,
+ Flags = (unsigned int)ThenMatrixType::Flags & ElseMatrixType::Flags & RowMajorBit
+ };
+};
+}
+
+template<typename ConditionMatrixType, typename ThenMatrixType, typename ElseMatrixType>
+class Select : public internal::dense_xpr_base< Select<ConditionMatrixType, ThenMatrixType, ElseMatrixType> >::type,
+ internal::no_assignment_operator
+{
+ public:
+
+ typedef typename internal::dense_xpr_base<Select>::type Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(Select)
+
+ inline EIGEN_DEVICE_FUNC
+ Select(const ConditionMatrixType& a_conditionMatrix,
+ const ThenMatrixType& a_thenMatrix,
+ const ElseMatrixType& a_elseMatrix)
+ : m_condition(a_conditionMatrix), m_then(a_thenMatrix), m_else(a_elseMatrix)
+ {
+ eigen_assert(m_condition.rows() == m_then.rows() && m_condition.rows() == m_else.rows());
+ eigen_assert(m_condition.cols() == m_then.cols() && m_condition.cols() == m_else.cols());
+ }
+
+ inline EIGEN_DEVICE_FUNC Index rows() const { return m_condition.rows(); }
+ inline EIGEN_DEVICE_FUNC Index cols() const { return m_condition.cols(); }
+
+ inline EIGEN_DEVICE_FUNC
+ const Scalar coeff(Index i, Index j) const
+ {
+ if (m_condition.coeff(i,j))
+ return m_then.coeff(i,j);
+ else
+ return m_else.coeff(i,j);
+ }
+
+ inline EIGEN_DEVICE_FUNC
+ const Scalar coeff(Index i) const
+ {
+ if (m_condition.coeff(i))
+ return m_then.coeff(i);
+ else
+ return m_else.coeff(i);
+ }
+
+ inline EIGEN_DEVICE_FUNC const ConditionMatrixType& conditionMatrix() const
+ {
+ return m_condition;
+ }
+
+ inline EIGEN_DEVICE_FUNC const ThenMatrixType& thenMatrix() const
+ {
+ return m_then;
+ }
+
+ inline EIGEN_DEVICE_FUNC const ElseMatrixType& elseMatrix() const
+ {
+ return m_else;
+ }
+
+ protected:
+ typename ConditionMatrixType::Nested m_condition;
+ typename ThenMatrixType::Nested m_then;
+ typename ElseMatrixType::Nested m_else;
+};
+
+
+/** \returns a matrix where each coefficient (i,j) is equal to \a thenMatrix(i,j)
+ * if \c *this(i,j), and \a elseMatrix(i,j) otherwise.
+ *
+ * Example: \include MatrixBase_select.cpp
+ * Output: \verbinclude MatrixBase_select.out
+ *
+ * \sa class Select
+ */
+template<typename Derived>
+template<typename ThenDerived,typename ElseDerived>
+inline const Select<Derived,ThenDerived,ElseDerived>
+DenseBase<Derived>::select(const DenseBase<ThenDerived>& thenMatrix,
+ const DenseBase<ElseDerived>& elseMatrix) const
+{
+ return Select<Derived,ThenDerived,ElseDerived>(derived(), thenMatrix.derived(), elseMatrix.derived());
+}
+
+/** Version of DenseBase::select(const DenseBase&, const DenseBase&) with
+ * the \em else expression being a scalar value.
+ *
+ * \sa DenseBase::select(const DenseBase<ThenDerived>&, const DenseBase<ElseDerived>&) const, class Select
+ */
+template<typename Derived>
+template<typename ThenDerived>
+inline const Select<Derived,ThenDerived, typename ThenDerived::ConstantReturnType>
+DenseBase<Derived>::select(const DenseBase<ThenDerived>& thenMatrix,
+ const typename ThenDerived::Scalar& elseScalar) const
+{
+ return Select<Derived,ThenDerived,typename ThenDerived::ConstantReturnType>(
+ derived(), thenMatrix.derived(), ThenDerived::Constant(rows(),cols(),elseScalar));
+}
+
+/** Version of DenseBase::select(const DenseBase&, const DenseBase&) with
+ * the \em then expression being a scalar value.
+ *
+ * \sa DenseBase::select(const DenseBase<ThenDerived>&, const DenseBase<ElseDerived>&) const, class Select
+ */
+template<typename Derived>
+template<typename ElseDerived>
+inline const Select<Derived, typename ElseDerived::ConstantReturnType, ElseDerived >
+DenseBase<Derived>::select(const typename ElseDerived::Scalar& thenScalar,
+ const DenseBase<ElseDerived>& elseMatrix) const
+{
+ return Select<Derived,typename ElseDerived::ConstantReturnType,ElseDerived>(
+ derived(), ElseDerived::Constant(rows(),cols(),thenScalar), elseMatrix.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELECT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/SelfAdjointView.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/SelfAdjointView.h
new file mode 100644
index 000000000..504c98f0e
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/SelfAdjointView.h
@@ -0,0 +1,350 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELFADJOINTMATRIX_H
+#define EIGEN_SELFADJOINTMATRIX_H
+
+namespace Eigen {
+
+/** \class SelfAdjointView
+ * \ingroup Core_Module
+ *
+ *
+ * \brief Expression of a selfadjoint matrix from a triangular part of a dense matrix
+ *
+ * \param MatrixType the type of the dense matrix storing the coefficients
+ * \param TriangularPart can be either \c #Lower or \c #Upper
+ *
+ * This class is an expression of a sefladjoint matrix from a triangular part of a matrix
+ * with given dense storage of the coefficients. It is the return type of MatrixBase::selfadjointView()
+ * and most of the time this is the only way that it is used.
+ *
+ * \sa class TriangularBase, MatrixBase::selfadjointView()
+ */
+
+namespace internal {
+template<typename MatrixType, unsigned int UpLo>
+struct traits<SelfAdjointView<MatrixType, UpLo> > : traits<MatrixType>
+{
+ typedef typename ref_selector<MatrixType>::non_const_type MatrixTypeNested;
+ typedef typename remove_all<MatrixTypeNested>::type MatrixTypeNestedCleaned;
+ typedef MatrixType ExpressionType;
+ typedef typename MatrixType::PlainObject FullMatrixType;
+ enum {
+ Mode = UpLo | SelfAdjoint,
+ FlagsLvalueBit = is_lvalue<MatrixType>::value ? LvalueBit : 0,
+ Flags = MatrixTypeNestedCleaned::Flags & (HereditaryBits|FlagsLvalueBit)
+ & (~(PacketAccessBit | DirectAccessBit | LinearAccessBit)) // FIXME these flags should be preserved
+ };
+};
+}
+
+
+template<typename _MatrixType, unsigned int UpLo> class SelfAdjointView
+ : public TriangularBase<SelfAdjointView<_MatrixType, UpLo> >
+{
+ public:
+
+ typedef _MatrixType MatrixType;
+ typedef TriangularBase<SelfAdjointView> Base;
+ typedef typename internal::traits<SelfAdjointView>::MatrixTypeNested MatrixTypeNested;
+ typedef typename internal::traits<SelfAdjointView>::MatrixTypeNestedCleaned MatrixTypeNestedCleaned;
+ typedef MatrixTypeNestedCleaned NestedExpression;
+
+ /** \brief The type of coefficients in this matrix */
+ typedef typename internal::traits<SelfAdjointView>::Scalar Scalar;
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef typename internal::remove_all<typename MatrixType::ConjugateReturnType>::type MatrixConjugateReturnType;
+
+ enum {
+ Mode = internal::traits<SelfAdjointView>::Mode,
+ Flags = internal::traits<SelfAdjointView>::Flags,
+ TransposeMode = ((Mode & Upper) ? Lower : 0) | ((Mode & Lower) ? Upper : 0)
+ };
+ typedef typename MatrixType::PlainObject PlainObject;
+
+ EIGEN_DEVICE_FUNC
+ explicit inline SelfAdjointView(MatrixType& matrix) : m_matrix(matrix)
+ {}
+
+ EIGEN_DEVICE_FUNC
+ inline Index rows() const { return m_matrix.rows(); }
+ EIGEN_DEVICE_FUNC
+ inline Index cols() const { return m_matrix.cols(); }
+ EIGEN_DEVICE_FUNC
+ inline Index outerStride() const { return m_matrix.outerStride(); }
+ EIGEN_DEVICE_FUNC
+ inline Index innerStride() const { return m_matrix.innerStride(); }
+
+ /** \sa MatrixBase::coeff()
+ * \warning the coordinates must fit into the referenced triangular part
+ */
+ EIGEN_DEVICE_FUNC
+ inline Scalar coeff(Index row, Index col) const
+ {
+ Base::check_coordinates_internal(row, col);
+ return m_matrix.coeff(row, col);
+ }
+
+ /** \sa MatrixBase::coeffRef()
+ * \warning the coordinates must fit into the referenced triangular part
+ */
+ EIGEN_DEVICE_FUNC
+ inline Scalar& coeffRef(Index row, Index col)
+ {
+ EIGEN_STATIC_ASSERT_LVALUE(SelfAdjointView);
+ Base::check_coordinates_internal(row, col);
+ return m_matrix.coeffRef(row, col);
+ }
+
+ /** \internal */
+ EIGEN_DEVICE_FUNC
+ const MatrixTypeNestedCleaned& _expression() const { return m_matrix; }
+
+ EIGEN_DEVICE_FUNC
+ const MatrixTypeNestedCleaned& nestedExpression() const { return m_matrix; }
+ EIGEN_DEVICE_FUNC
+ MatrixTypeNestedCleaned& nestedExpression() { return m_matrix; }
+
+ /** Efficient triangular matrix times vector/matrix product */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ const Product<SelfAdjointView,OtherDerived>
+ operator*(const MatrixBase<OtherDerived>& rhs) const
+ {
+ return Product<SelfAdjointView,OtherDerived>(*this, rhs.derived());
+ }
+
+ /** Efficient vector/matrix times triangular matrix product */
+ template<typename OtherDerived> friend
+ EIGEN_DEVICE_FUNC
+ const Product<OtherDerived,SelfAdjointView>
+ operator*(const MatrixBase<OtherDerived>& lhs, const SelfAdjointView& rhs)
+ {
+ return Product<OtherDerived,SelfAdjointView>(lhs.derived(),rhs);
+ }
+
+ friend EIGEN_DEVICE_FUNC
+ const SelfAdjointView<const EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(Scalar,MatrixType,product),UpLo>
+ operator*(const Scalar& s, const SelfAdjointView& mat)
+ {
+ return (s*mat.nestedExpression()).template selfadjointView<UpLo>();
+ }
+
+ /** Perform a symmetric rank 2 update of the selfadjoint matrix \c *this:
+ * \f$ this = this + \alpha u v^* + conj(\alpha) v u^* \f$
+ * \returns a reference to \c *this
+ *
+ * The vectors \a u and \c v \b must be column vectors, however they can be
+ * a adjoint expression without any overhead. Only the meaningful triangular
+ * part of the matrix is updated, the rest is left unchanged.
+ *
+ * \sa rankUpdate(const MatrixBase<DerivedU>&, Scalar)
+ */
+ template<typename DerivedU, typename DerivedV>
+ EIGEN_DEVICE_FUNC
+ SelfAdjointView& rankUpdate(const MatrixBase<DerivedU>& u, const MatrixBase<DerivedV>& v, const Scalar& alpha = Scalar(1));
+
+ /** Perform a symmetric rank K update of the selfadjoint matrix \c *this:
+ * \f$ this = this + \alpha ( u u^* ) \f$ where \a u is a vector or matrix.
+ *
+ * \returns a reference to \c *this
+ *
+ * Note that to perform \f$ this = this + \alpha ( u^* u ) \f$ you can simply
+ * call this function with u.adjoint().
+ *
+ * \sa rankUpdate(const MatrixBase<DerivedU>&, const MatrixBase<DerivedV>&, Scalar)
+ */
+ template<typename DerivedU>
+ EIGEN_DEVICE_FUNC
+ SelfAdjointView& rankUpdate(const MatrixBase<DerivedU>& u, const Scalar& alpha = Scalar(1));
+
+ /** \returns an expression of a triangular view extracted from the current selfadjoint view of a given triangular part
+ *
+ * The parameter \a TriMode can have the following values: \c #Upper, \c #StrictlyUpper, \c #UnitUpper,
+ * \c #Lower, \c #StrictlyLower, \c #UnitLower.
+ *
+ * If \c TriMode references the same triangular part than \c *this, then this method simply return a \c TriangularView of the nested expression,
+ * otherwise, the nested expression is first transposed, thus returning a \c TriangularView<Transpose<MatrixType>> object.
+ *
+ * \sa MatrixBase::triangularView(), class TriangularView
+ */
+ template<unsigned int TriMode>
+ EIGEN_DEVICE_FUNC
+ typename internal::conditional<(TriMode&(Upper|Lower))==(UpLo&(Upper|Lower)),
+ TriangularView<MatrixType,TriMode>,
+ TriangularView<typename MatrixType::AdjointReturnType,TriMode> >::type
+ triangularView() const
+ {
+ typename internal::conditional<(TriMode&(Upper|Lower))==(UpLo&(Upper|Lower)), MatrixType&, typename MatrixType::ConstTransposeReturnType>::type tmp1(m_matrix);
+ typename internal::conditional<(TriMode&(Upper|Lower))==(UpLo&(Upper|Lower)), MatrixType&, typename MatrixType::AdjointReturnType>::type tmp2(tmp1);
+ return typename internal::conditional<(TriMode&(Upper|Lower))==(UpLo&(Upper|Lower)),
+ TriangularView<MatrixType,TriMode>,
+ TriangularView<typename MatrixType::AdjointReturnType,TriMode> >::type(tmp2);
+ }
+
+ typedef SelfAdjointView<const MatrixConjugateReturnType,Mode> ConjugateReturnType;
+ /** \sa MatrixBase::conjugate() const */
+ EIGEN_DEVICE_FUNC
+ inline const ConjugateReturnType conjugate() const
+ { return ConjugateReturnType(m_matrix.conjugate()); }
+
+ typedef SelfAdjointView<const typename MatrixType::AdjointReturnType,TransposeMode> AdjointReturnType;
+ /** \sa MatrixBase::adjoint() const */
+ EIGEN_DEVICE_FUNC
+ inline const AdjointReturnType adjoint() const
+ { return AdjointReturnType(m_matrix.adjoint()); }
+
+ typedef SelfAdjointView<typename MatrixType::TransposeReturnType,TransposeMode> TransposeReturnType;
+ /** \sa MatrixBase::transpose() */
+ EIGEN_DEVICE_FUNC
+ inline TransposeReturnType transpose()
+ {
+ EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
+ typename MatrixType::TransposeReturnType tmp(m_matrix);
+ return TransposeReturnType(tmp);
+ }
+
+ typedef SelfAdjointView<const typename MatrixType::ConstTransposeReturnType,TransposeMode> ConstTransposeReturnType;
+ /** \sa MatrixBase::transpose() const */
+ EIGEN_DEVICE_FUNC
+ inline const ConstTransposeReturnType transpose() const
+ {
+ return ConstTransposeReturnType(m_matrix.transpose());
+ }
+
+ /** \returns a const expression of the main diagonal of the matrix \c *this
+ *
+ * This method simply returns the diagonal of the nested expression, thus by-passing the SelfAdjointView decorator.
+ *
+ * \sa MatrixBase::diagonal(), class Diagonal */
+ EIGEN_DEVICE_FUNC
+ typename MatrixType::ConstDiagonalReturnType diagonal() const
+ {
+ return typename MatrixType::ConstDiagonalReturnType(m_matrix);
+ }
+
+/////////// Cholesky module ///////////
+
+ const LLT<PlainObject, UpLo> llt() const;
+ const LDLT<PlainObject, UpLo> ldlt() const;
+
+/////////// Eigenvalue module ///////////
+
+ /** Real part of #Scalar */
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ /** Return type of eigenvalues() */
+ typedef Matrix<RealScalar, internal::traits<MatrixType>::ColsAtCompileTime, 1> EigenvaluesReturnType;
+
+ EIGEN_DEVICE_FUNC
+ EigenvaluesReturnType eigenvalues() const;
+ EIGEN_DEVICE_FUNC
+ RealScalar operatorNorm() const;
+
+ protected:
+ MatrixTypeNested m_matrix;
+};
+
+
+// template<typename OtherDerived, typename MatrixType, unsigned int UpLo>
+// internal::selfadjoint_matrix_product_returntype<OtherDerived,SelfAdjointView<MatrixType,UpLo> >
+// operator*(const MatrixBase<OtherDerived>& lhs, const SelfAdjointView<MatrixType,UpLo>& rhs)
+// {
+// return internal::matrix_selfadjoint_product_returntype<OtherDerived,SelfAdjointView<MatrixType,UpLo> >(lhs.derived(),rhs);
+// }
+
+// selfadjoint to dense matrix
+
+namespace internal {
+
+// TODO currently a selfadjoint expression has the form SelfAdjointView<.,.>
+// in the future selfadjoint-ness should be defined by the expression traits
+// such that Transpose<SelfAdjointView<.,.> > is valid. (currently TriangularBase::transpose() is overloaded to make it work)
+template<typename MatrixType, unsigned int Mode>
+struct evaluator_traits<SelfAdjointView<MatrixType,Mode> >
+{
+ typedef typename storage_kind_to_evaluator_kind<typename MatrixType::StorageKind>::Kind Kind;
+ typedef SelfAdjointShape Shape;
+};
+
+template<int UpLo, int SetOpposite, typename DstEvaluatorTypeT, typename SrcEvaluatorTypeT, typename Functor, int Version>
+class triangular_dense_assignment_kernel<UpLo,SelfAdjoint,SetOpposite,DstEvaluatorTypeT,SrcEvaluatorTypeT,Functor,Version>
+ : public generic_dense_assignment_kernel<DstEvaluatorTypeT, SrcEvaluatorTypeT, Functor, Version>
+{
+protected:
+ typedef generic_dense_assignment_kernel<DstEvaluatorTypeT, SrcEvaluatorTypeT, Functor, Version> Base;
+ typedef typename Base::DstXprType DstXprType;
+ typedef typename Base::SrcXprType SrcXprType;
+ using Base::m_dst;
+ using Base::m_src;
+ using Base::m_functor;
+public:
+
+ typedef typename Base::DstEvaluatorType DstEvaluatorType;
+ typedef typename Base::SrcEvaluatorType SrcEvaluatorType;
+ typedef typename Base::Scalar Scalar;
+ typedef typename Base::AssignmentTraits AssignmentTraits;
+
+
+ EIGEN_DEVICE_FUNC triangular_dense_assignment_kernel(DstEvaluatorType &dst, const SrcEvaluatorType &src, const Functor &func, DstXprType& dstExpr)
+ : Base(dst, src, func, dstExpr)
+ {}
+
+ EIGEN_DEVICE_FUNC void assignCoeff(Index row, Index col)
+ {
+ eigen_internal_assert(row!=col);
+ Scalar tmp = m_src.coeff(row,col);
+ m_functor.assignCoeff(m_dst.coeffRef(row,col), tmp);
+ m_functor.assignCoeff(m_dst.coeffRef(col,row), numext::conj(tmp));
+ }
+
+ EIGEN_DEVICE_FUNC void assignDiagonalCoeff(Index id)
+ {
+ Base::assignCoeff(id,id);
+ }
+
+ EIGEN_DEVICE_FUNC void assignOppositeCoeff(Index, Index)
+ { eigen_internal_assert(false && "should never be called"); }
+};
+
+} // end namespace internal
+
+/***************************************************************************
+* Implementation of MatrixBase methods
+***************************************************************************/
+
+/** This is the const version of MatrixBase::selfadjointView() */
+template<typename Derived>
+template<unsigned int UpLo>
+typename MatrixBase<Derived>::template ConstSelfAdjointViewReturnType<UpLo>::Type
+MatrixBase<Derived>::selfadjointView() const
+{
+ return typename ConstSelfAdjointViewReturnType<UpLo>::Type(derived());
+}
+
+/** \returns an expression of a symmetric/self-adjoint view extracted from the upper or lower triangular part of the current matrix
+ *
+ * The parameter \a UpLo can be either \c #Upper or \c #Lower
+ *
+ * Example: \include MatrixBase_selfadjointView.cpp
+ * Output: \verbinclude MatrixBase_selfadjointView.out
+ *
+ * \sa class SelfAdjointView
+ */
+template<typename Derived>
+template<unsigned int UpLo>
+typename MatrixBase<Derived>::template SelfAdjointViewReturnType<UpLo>::Type
+MatrixBase<Derived>::selfadjointView()
+{
+ return typename SelfAdjointViewReturnType<UpLo>::Type(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINTMATRIX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h
new file mode 100644
index 000000000..50099df82
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h
@@ -0,0 +1,51 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELFCWISEBINARYOP_H
+#define EIGEN_SELFCWISEBINARYOP_H
+
+namespace Eigen {
+
+// TODO generalize the scalar type of 'other'
+
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::operator*=(const Scalar& other)
+{
+ typedef typename Derived::PlainObject PlainObject;
+ internal::call_assignment(this->derived(), PlainObject::Constant(rows(),cols(),other), internal::mul_assign_op<Scalar,Scalar>());
+ return derived();
+}
+
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& ArrayBase<Derived>::operator+=(const Scalar& other)
+{
+ typedef typename Derived::PlainObject PlainObject;
+ internal::call_assignment(this->derived(), PlainObject::Constant(rows(),cols(),other), internal::add_assign_op<Scalar,Scalar>());
+ return derived();
+}
+
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& ArrayBase<Derived>::operator-=(const Scalar& other)
+{
+ typedef typename Derived::PlainObject PlainObject;
+ internal::call_assignment(this->derived(), PlainObject::Constant(rows(),cols(),other), internal::sub_assign_op<Scalar,Scalar>());
+ return derived();
+}
+
+template<typename Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::operator/=(const Scalar& other)
+{
+ typedef typename Derived::PlainObject PlainObject;
+ internal::call_assignment(this->derived(), PlainObject::Constant(rows(),cols(),other), internal::div_assign_op<Scalar,Scalar>());
+ return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFCWISEBINARYOP_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Solve.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Solve.h
new file mode 100644
index 000000000..a8daea511
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Solve.h
@@ -0,0 +1,188 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SOLVE_H
+#define EIGEN_SOLVE_H
+
+namespace Eigen {
+
+template<typename Decomposition, typename RhsType, typename StorageKind> class SolveImpl;
+
+/** \class Solve
+ * \ingroup Core_Module
+ *
+ * \brief Pseudo expression representing a solving operation
+ *
+ * \tparam Decomposition the type of the matrix or decomposion object
+ * \tparam Rhstype the type of the right-hand side
+ *
+ * This class represents an expression of A.solve(B)
+ * and most of the time this is the only way it is used.
+ *
+ */
+namespace internal {
+
+// this solve_traits class permits to determine the evaluation type with respect to storage kind (Dense vs Sparse)
+template<typename Decomposition, typename RhsType,typename StorageKind> struct solve_traits;
+
+template<typename Decomposition, typename RhsType>
+struct solve_traits<Decomposition,RhsType,Dense>
+{
+ typedef typename make_proper_matrix_type<typename RhsType::Scalar,
+ Decomposition::ColsAtCompileTime,
+ RhsType::ColsAtCompileTime,
+ RhsType::PlainObject::Options,
+ Decomposition::MaxColsAtCompileTime,
+ RhsType::MaxColsAtCompileTime>::type PlainObject;
+};
+
+template<typename Decomposition, typename RhsType>
+struct traits<Solve<Decomposition, RhsType> >
+ : traits<typename solve_traits<Decomposition,RhsType,typename internal::traits<RhsType>::StorageKind>::PlainObject>
+{
+ typedef typename solve_traits<Decomposition,RhsType,typename internal::traits<RhsType>::StorageKind>::PlainObject PlainObject;
+ typedef typename promote_index_type<typename Decomposition::StorageIndex, typename RhsType::StorageIndex>::type StorageIndex;
+ typedef traits<PlainObject> BaseTraits;
+ enum {
+ Flags = BaseTraits::Flags & RowMajorBit,
+ CoeffReadCost = HugeCost
+ };
+};
+
+}
+
+
+template<typename Decomposition, typename RhsType>
+class Solve : public SolveImpl<Decomposition,RhsType,typename internal::traits<RhsType>::StorageKind>
+{
+public:
+ typedef typename internal::traits<Solve>::PlainObject PlainObject;
+ typedef typename internal::traits<Solve>::StorageIndex StorageIndex;
+
+ Solve(const Decomposition &dec, const RhsType &rhs)
+ : m_dec(dec), m_rhs(rhs)
+ {}
+
+ EIGEN_DEVICE_FUNC Index rows() const { return m_dec.cols(); }
+ EIGEN_DEVICE_FUNC Index cols() const { return m_rhs.cols(); }
+
+ EIGEN_DEVICE_FUNC const Decomposition& dec() const { return m_dec; }
+ EIGEN_DEVICE_FUNC const RhsType& rhs() const { return m_rhs; }
+
+protected:
+ const Decomposition &m_dec;
+ const RhsType &m_rhs;
+};
+
+
+// Specialization of the Solve expression for dense results
+template<typename Decomposition, typename RhsType>
+class SolveImpl<Decomposition,RhsType,Dense>
+ : public MatrixBase<Solve<Decomposition,RhsType> >
+{
+ typedef Solve<Decomposition,RhsType> Derived;
+
+public:
+
+ typedef MatrixBase<Solve<Decomposition,RhsType> > Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(Derived)
+
+private:
+
+ Scalar coeff(Index row, Index col) const;
+ Scalar coeff(Index i) const;
+};
+
+// Generic API dispatcher
+template<typename Decomposition, typename RhsType, typename StorageKind>
+class SolveImpl : public internal::generic_xpr_base<Solve<Decomposition,RhsType>, MatrixXpr, StorageKind>::type
+{
+ public:
+ typedef typename internal::generic_xpr_base<Solve<Decomposition,RhsType>, MatrixXpr, StorageKind>::type Base;
+};
+
+namespace internal {
+
+// Evaluator of Solve -> eval into a temporary
+template<typename Decomposition, typename RhsType>
+struct evaluator<Solve<Decomposition,RhsType> >
+ : public evaluator<typename Solve<Decomposition,RhsType>::PlainObject>
+{
+ typedef Solve<Decomposition,RhsType> SolveType;
+ typedef typename SolveType::PlainObject PlainObject;
+ typedef evaluator<PlainObject> Base;
+
+ enum { Flags = Base::Flags | EvalBeforeNestingBit };
+
+ EIGEN_DEVICE_FUNC explicit evaluator(const SolveType& solve)
+ : m_result(solve.rows(), solve.cols())
+ {
+ ::new (static_cast<Base*>(this)) Base(m_result);
+ solve.dec()._solve_impl(solve.rhs(), m_result);
+ }
+
+protected:
+ PlainObject m_result;
+};
+
+// Specialization for "dst = dec.solve(rhs)"
+// NOTE we need to specialize it for Dense2Dense to avoid ambiguous specialization error and a Sparse2Sparse specialization must exist somewhere
+template<typename DstXprType, typename DecType, typename RhsType, typename Scalar>
+struct Assignment<DstXprType, Solve<DecType,RhsType>, internal::assign_op<Scalar,Scalar>, Dense2Dense>
+{
+ typedef Solve<DecType,RhsType> SrcXprType;
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<Scalar,Scalar> &)
+ {
+ Index dstRows = src.rows();
+ Index dstCols = src.cols();
+ if((dst.rows()!=dstRows) || (dst.cols()!=dstCols))
+ dst.resize(dstRows, dstCols);
+
+ src.dec()._solve_impl(src.rhs(), dst);
+ }
+};
+
+// Specialization for "dst = dec.transpose().solve(rhs)"
+template<typename DstXprType, typename DecType, typename RhsType, typename Scalar>
+struct Assignment<DstXprType, Solve<Transpose<const DecType>,RhsType>, internal::assign_op<Scalar,Scalar>, Dense2Dense>
+{
+ typedef Solve<Transpose<const DecType>,RhsType> SrcXprType;
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<Scalar,Scalar> &)
+ {
+ Index dstRows = src.rows();
+ Index dstCols = src.cols();
+ if((dst.rows()!=dstRows) || (dst.cols()!=dstCols))
+ dst.resize(dstRows, dstCols);
+
+ src.dec().nestedExpression().template _solve_impl_transposed<false>(src.rhs(), dst);
+ }
+};
+
+// Specialization for "dst = dec.adjoint().solve(rhs)"
+template<typename DstXprType, typename DecType, typename RhsType, typename Scalar>
+struct Assignment<DstXprType, Solve<CwiseUnaryOp<internal::scalar_conjugate_op<typename DecType::Scalar>, const Transpose<const DecType> >,RhsType>,
+ internal::assign_op<Scalar,Scalar>, Dense2Dense>
+{
+ typedef Solve<CwiseUnaryOp<internal::scalar_conjugate_op<typename DecType::Scalar>, const Transpose<const DecType> >,RhsType> SrcXprType;
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<Scalar,Scalar> &)
+ {
+ Index dstRows = src.rows();
+ Index dstCols = src.cols();
+ if((dst.rows()!=dstRows) || (dst.cols()!=dstCols))
+ dst.resize(dstRows, dstCols);
+
+ src.dec().nestedExpression().nestedExpression().template _solve_impl_transposed<true>(src.rhs(), dst);
+ }
+};
+
+} // end namepsace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SOLVE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/SolveTriangular.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/SolveTriangular.h
new file mode 100644
index 000000000..049890b25
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/SolveTriangular.h
@@ -0,0 +1,232 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SOLVETRIANGULAR_H
+#define EIGEN_SOLVETRIANGULAR_H
+
+namespace Eigen {
+
+namespace internal {
+
+// Forward declarations:
+// The following two routines are implemented in the products/TriangularSolver*.h files
+template<typename LhsScalar, typename RhsScalar, typename Index, int Side, int Mode, bool Conjugate, int StorageOrder>
+struct triangular_solve_vector;
+
+template <typename Scalar, typename Index, int Side, int Mode, bool Conjugate, int TriStorageOrder, int OtherStorageOrder>
+struct triangular_solve_matrix;
+
+// small helper struct extracting some traits on the underlying solver operation
+template<typename Lhs, typename Rhs, int Side>
+class trsolve_traits
+{
+ private:
+ enum {
+ RhsIsVectorAtCompileTime = (Side==OnTheLeft ? Rhs::ColsAtCompileTime : Rhs::RowsAtCompileTime)==1
+ };
+ public:
+ enum {
+ Unrolling = (RhsIsVectorAtCompileTime && Rhs::SizeAtCompileTime != Dynamic && Rhs::SizeAtCompileTime <= 8)
+ ? CompleteUnrolling : NoUnrolling,
+ RhsVectors = RhsIsVectorAtCompileTime ? 1 : Dynamic
+ };
+};
+
+template<typename Lhs, typename Rhs,
+ int Side, // can be OnTheLeft/OnTheRight
+ int Mode, // can be Upper/Lower | UnitDiag
+ int Unrolling = trsolve_traits<Lhs,Rhs,Side>::Unrolling,
+ int RhsVectors = trsolve_traits<Lhs,Rhs,Side>::RhsVectors
+ >
+struct triangular_solver_selector;
+
+template<typename Lhs, typename Rhs, int Side, int Mode>
+struct triangular_solver_selector<Lhs,Rhs,Side,Mode,NoUnrolling,1>
+{
+ typedef typename Lhs::Scalar LhsScalar;
+ typedef typename Rhs::Scalar RhsScalar;
+ typedef blas_traits<Lhs> LhsProductTraits;
+ typedef typename LhsProductTraits::ExtractType ActualLhsType;
+ typedef Map<Matrix<RhsScalar,Dynamic,1>, Aligned> MappedRhs;
+ static void run(const Lhs& lhs, Rhs& rhs)
+ {
+ ActualLhsType actualLhs = LhsProductTraits::extract(lhs);
+
+ // FIXME find a way to allow an inner stride if packet_traits<Scalar>::size==1
+
+ bool useRhsDirectly = Rhs::InnerStrideAtCompileTime==1 || rhs.innerStride()==1;
+
+ ei_declare_aligned_stack_constructed_variable(RhsScalar,actualRhs,rhs.size(),
+ (useRhsDirectly ? rhs.data() : 0));
+
+ if(!useRhsDirectly)
+ MappedRhs(actualRhs,rhs.size()) = rhs;
+
+ triangular_solve_vector<LhsScalar, RhsScalar, Index, Side, Mode, LhsProductTraits::NeedToConjugate,
+ (int(Lhs::Flags) & RowMajorBit) ? RowMajor : ColMajor>
+ ::run(actualLhs.cols(), actualLhs.data(), actualLhs.outerStride(), actualRhs);
+
+ if(!useRhsDirectly)
+ rhs = MappedRhs(actualRhs, rhs.size());
+ }
+};
+
+// the rhs is a matrix
+template<typename Lhs, typename Rhs, int Side, int Mode>
+struct triangular_solver_selector<Lhs,Rhs,Side,Mode,NoUnrolling,Dynamic>
+{
+ typedef typename Rhs::Scalar Scalar;
+ typedef blas_traits<Lhs> LhsProductTraits;
+ typedef typename LhsProductTraits::DirectLinearAccessType ActualLhsType;
+
+ static void run(const Lhs& lhs, Rhs& rhs)
+ {
+ typename internal::add_const_on_value_type<ActualLhsType>::type actualLhs = LhsProductTraits::extract(lhs);
+
+ const Index size = lhs.rows();
+ const Index othersize = Side==OnTheLeft? rhs.cols() : rhs.rows();
+
+ typedef internal::gemm_blocking_space<(Rhs::Flags&RowMajorBit) ? RowMajor : ColMajor,Scalar,Scalar,
+ Rhs::MaxRowsAtCompileTime, Rhs::MaxColsAtCompileTime, Lhs::MaxRowsAtCompileTime,4> BlockingType;
+
+ BlockingType blocking(rhs.rows(), rhs.cols(), size, 1, false);
+
+ triangular_solve_matrix<Scalar,Index,Side,Mode,LhsProductTraits::NeedToConjugate,(int(Lhs::Flags) & RowMajorBit) ? RowMajor : ColMajor,
+ (Rhs::Flags&RowMajorBit) ? RowMajor : ColMajor>
+ ::run(size, othersize, &actualLhs.coeffRef(0,0), actualLhs.outerStride(), &rhs.coeffRef(0,0), rhs.outerStride(), blocking);
+ }
+};
+
+/***************************************************************************
+* meta-unrolling implementation
+***************************************************************************/
+
+template<typename Lhs, typename Rhs, int Mode, int LoopIndex, int Size,
+ bool Stop = LoopIndex==Size>
+struct triangular_solver_unroller;
+
+template<typename Lhs, typename Rhs, int Mode, int LoopIndex, int Size>
+struct triangular_solver_unroller<Lhs,Rhs,Mode,LoopIndex,Size,false> {
+ enum {
+ IsLower = ((Mode&Lower)==Lower),
+ DiagIndex = IsLower ? LoopIndex : Size - LoopIndex - 1,
+ StartIndex = IsLower ? 0 : DiagIndex+1
+ };
+ static void run(const Lhs& lhs, Rhs& rhs)
+ {
+ if (LoopIndex>0)
+ rhs.coeffRef(DiagIndex) -= lhs.row(DiagIndex).template segment<LoopIndex>(StartIndex).transpose()
+ .cwiseProduct(rhs.template segment<LoopIndex>(StartIndex)).sum();
+
+ if(!(Mode & UnitDiag))
+ rhs.coeffRef(DiagIndex) /= lhs.coeff(DiagIndex,DiagIndex);
+
+ triangular_solver_unroller<Lhs,Rhs,Mode,LoopIndex+1,Size>::run(lhs,rhs);
+ }
+};
+
+template<typename Lhs, typename Rhs, int Mode, int LoopIndex, int Size>
+struct triangular_solver_unroller<Lhs,Rhs,Mode,LoopIndex,Size,true> {
+ static void run(const Lhs&, Rhs&) {}
+};
+
+template<typename Lhs, typename Rhs, int Mode>
+struct triangular_solver_selector<Lhs,Rhs,OnTheLeft,Mode,CompleteUnrolling,1> {
+ static void run(const Lhs& lhs, Rhs& rhs)
+ { triangular_solver_unroller<Lhs,Rhs,Mode,0,Rhs::SizeAtCompileTime>::run(lhs,rhs); }
+};
+
+template<typename Lhs, typename Rhs, int Mode>
+struct triangular_solver_selector<Lhs,Rhs,OnTheRight,Mode,CompleteUnrolling,1> {
+ static void run(const Lhs& lhs, Rhs& rhs)
+ {
+ Transpose<const Lhs> trLhs(lhs);
+ Transpose<Rhs> trRhs(rhs);
+
+ triangular_solver_unroller<Transpose<const Lhs>,Transpose<Rhs>,
+ ((Mode&Upper)==Upper ? Lower : Upper) | (Mode&UnitDiag),
+ 0,Rhs::SizeAtCompileTime>::run(trLhs,trRhs);
+ }
+};
+
+} // end namespace internal
+
+/***************************************************************************
+* TriangularView methods
+***************************************************************************/
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+template<typename MatrixType, unsigned int Mode>
+template<int Side, typename OtherDerived>
+void TriangularViewImpl<MatrixType,Mode,Dense>::solveInPlace(const MatrixBase<OtherDerived>& _other) const
+{
+ OtherDerived& other = _other.const_cast_derived();
+ eigen_assert( derived().cols() == derived().rows() && ((Side==OnTheLeft && derived().cols() == other.rows()) || (Side==OnTheRight && derived().cols() == other.cols())) );
+ eigen_assert((!(Mode & ZeroDiag)) && bool(Mode & (Upper|Lower)));
+
+ enum { copy = (internal::traits<OtherDerived>::Flags & RowMajorBit) && OtherDerived::IsVectorAtCompileTime && OtherDerived::SizeAtCompileTime!=1};
+ typedef typename internal::conditional<copy,
+ typename internal::plain_matrix_type_column_major<OtherDerived>::type, OtherDerived&>::type OtherCopy;
+ OtherCopy otherCopy(other);
+
+ internal::triangular_solver_selector<MatrixType, typename internal::remove_reference<OtherCopy>::type,
+ Side, Mode>::run(derived().nestedExpression(), otherCopy);
+
+ if (copy)
+ other = otherCopy;
+}
+
+template<typename Derived, unsigned int Mode>
+template<int Side, typename Other>
+const internal::triangular_solve_retval<Side,TriangularView<Derived,Mode>,Other>
+TriangularViewImpl<Derived,Mode,Dense>::solve(const MatrixBase<Other>& other) const
+{
+ return internal::triangular_solve_retval<Side,TriangularViewType,Other>(derived(), other.derived());
+}
+#endif
+
+namespace internal {
+
+
+template<int Side, typename TriangularType, typename Rhs>
+struct traits<triangular_solve_retval<Side, TriangularType, Rhs> >
+{
+ typedef typename internal::plain_matrix_type_column_major<Rhs>::type ReturnType;
+};
+
+template<int Side, typename TriangularType, typename Rhs> struct triangular_solve_retval
+ : public ReturnByValue<triangular_solve_retval<Side, TriangularType, Rhs> >
+{
+ typedef typename remove_all<typename Rhs::Nested>::type RhsNestedCleaned;
+ typedef ReturnByValue<triangular_solve_retval> Base;
+
+ triangular_solve_retval(const TriangularType& tri, const Rhs& rhs)
+ : m_triangularMatrix(tri), m_rhs(rhs)
+ {}
+
+ inline Index rows() const { return m_rhs.rows(); }
+ inline Index cols() const { return m_rhs.cols(); }
+
+ template<typename Dest> inline void evalTo(Dest& dst) const
+ {
+ if(!is_same_dense(dst,m_rhs))
+ dst = m_rhs;
+ m_triangularMatrix.template solveInPlace<Side>(dst);
+ }
+
+ protected:
+ const TriangularType& m_triangularMatrix;
+ typename Rhs::Nested m_rhs;
+};
+
+} // namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SOLVETRIANGULAR_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/SolverBase.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/SolverBase.h
new file mode 100644
index 000000000..8a4adc229
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/SolverBase.h
@@ -0,0 +1,130 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SOLVERBASE_H
+#define EIGEN_SOLVERBASE_H
+
+namespace Eigen {
+
+namespace internal {
+
+
+
+} // end namespace internal
+
+/** \class SolverBase
+ * \brief A base class for matrix decomposition and solvers
+ *
+ * \tparam Derived the actual type of the decomposition/solver.
+ *
+ * Any matrix decomposition inheriting this base class provide the following API:
+ *
+ * \code
+ * MatrixType A, b, x;
+ * DecompositionType dec(A);
+ * x = dec.solve(b); // solve A * x = b
+ * x = dec.transpose().solve(b); // solve A^T * x = b
+ * x = dec.adjoint().solve(b); // solve A' * x = b
+ * \endcode
+ *
+ * \warning Currently, any other usage of transpose() and adjoint() are not supported and will produce compilation errors.
+ *
+ * \sa class PartialPivLU, class FullPivLU
+ */
+template<typename Derived>
+class SolverBase : public EigenBase<Derived>
+{
+ public:
+
+ typedef EigenBase<Derived> Base;
+ typedef typename internal::traits<Derived>::Scalar Scalar;
+ typedef Scalar CoeffReturnType;
+
+ enum {
+ RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
+ ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
+ SizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::RowsAtCompileTime,
+ internal::traits<Derived>::ColsAtCompileTime>::ret),
+ MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime,
+ MaxSizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::MaxRowsAtCompileTime,
+ internal::traits<Derived>::MaxColsAtCompileTime>::ret),
+ IsVectorAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime == 1
+ || internal::traits<Derived>::MaxColsAtCompileTime == 1
+ };
+
+ /** Default constructor */
+ SolverBase()
+ {}
+
+ ~SolverBase()
+ {}
+
+ using Base::derived;
+
+ /** \returns an expression of the solution x of \f$ A x = b \f$ using the current decomposition of A.
+ */
+ template<typename Rhs>
+ inline const Solve<Derived, Rhs>
+ solve(const MatrixBase<Rhs>& b) const
+ {
+ eigen_assert(derived().rows()==b.rows() && "solve(): invalid number of rows of the right hand side matrix b");
+ return Solve<Derived, Rhs>(derived(), b.derived());
+ }
+
+ /** \internal the return type of transpose() */
+ typedef typename internal::add_const<Transpose<const Derived> >::type ConstTransposeReturnType;
+ /** \returns an expression of the transposed of the factored matrix.
+ *
+ * A typical usage is to solve for the transposed problem A^T x = b:
+ * \code x = dec.transpose().solve(b); \endcode
+ *
+ * \sa adjoint(), solve()
+ */
+ inline ConstTransposeReturnType transpose() const
+ {
+ return ConstTransposeReturnType(derived());
+ }
+
+ /** \internal the return type of adjoint() */
+ typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
+ CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, ConstTransposeReturnType>,
+ ConstTransposeReturnType
+ >::type AdjointReturnType;
+ /** \returns an expression of the adjoint of the factored matrix
+ *
+ * A typical usage is to solve for the adjoint problem A' x = b:
+ * \code x = dec.adjoint().solve(b); \endcode
+ *
+ * For real scalar types, this function is equivalent to transpose().
+ *
+ * \sa transpose(), solve()
+ */
+ inline AdjointReturnType adjoint() const
+ {
+ return AdjointReturnType(derived().transpose());
+ }
+
+ protected:
+};
+
+namespace internal {
+
+template<typename Derived>
+struct generic_xpr_base<Derived, MatrixXpr, SolverStorage>
+{
+ typedef SolverBase<Derived> type;
+
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SOLVERBASE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/StableNorm.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/StableNorm.h
new file mode 100644
index 000000000..be04ed44d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/StableNorm.h
@@ -0,0 +1,221 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STABLENORM_H
+#define EIGEN_STABLENORM_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename ExpressionType, typename Scalar>
+inline void stable_norm_kernel(const ExpressionType& bl, Scalar& ssq, Scalar& scale, Scalar& invScale)
+{
+ Scalar maxCoeff = bl.cwiseAbs().maxCoeff();
+
+ if(maxCoeff>scale)
+ {
+ ssq = ssq * numext::abs2(scale/maxCoeff);
+ Scalar tmp = Scalar(1)/maxCoeff;
+ if(tmp > NumTraits<Scalar>::highest())
+ {
+ invScale = NumTraits<Scalar>::highest();
+ scale = Scalar(1)/invScale;
+ }
+ else if(maxCoeff>NumTraits<Scalar>::highest()) // we got a INF
+ {
+ invScale = Scalar(1);
+ scale = maxCoeff;
+ }
+ else
+ {
+ scale = maxCoeff;
+ invScale = tmp;
+ }
+ }
+ else if(maxCoeff!=maxCoeff) // we got a NaN
+ {
+ scale = maxCoeff;
+ }
+
+ // TODO if the maxCoeff is much much smaller than the current scale,
+ // then we can neglect this sub vector
+ if(scale>Scalar(0)) // if scale==0, then bl is 0
+ ssq += (bl*invScale).squaredNorm();
+}
+
+template<typename Derived>
+inline typename NumTraits<typename traits<Derived>::Scalar>::Real
+blueNorm_impl(const EigenBase<Derived>& _vec)
+{
+ typedef typename Derived::RealScalar RealScalar;
+ using std::pow;
+ using std::sqrt;
+ using std::abs;
+ const Derived& vec(_vec.derived());
+ static bool initialized = false;
+ static RealScalar b1, b2, s1m, s2m, rbig, relerr;
+ if(!initialized)
+ {
+ int ibeta, it, iemin, iemax, iexp;
+ RealScalar eps;
+ // This program calculates the machine-dependent constants
+ // bl, b2, slm, s2m, relerr overfl
+ // from the "basic" machine-dependent numbers
+ // nbig, ibeta, it, iemin, iemax, rbig.
+ // The following define the basic machine-dependent constants.
+ // For portability, the PORT subprograms "ilmaeh" and "rlmach"
+ // are used. For any specific computer, each of the assignment
+ // statements can be replaced
+ ibeta = std::numeric_limits<RealScalar>::radix; // base for floating-point numbers
+ it = std::numeric_limits<RealScalar>::digits; // number of base-beta digits in mantissa
+ iemin = std::numeric_limits<RealScalar>::min_exponent; // minimum exponent
+ iemax = std::numeric_limits<RealScalar>::max_exponent; // maximum exponent
+ rbig = (std::numeric_limits<RealScalar>::max)(); // largest floating-point number
+
+ iexp = -((1-iemin)/2);
+ b1 = RealScalar(pow(RealScalar(ibeta),RealScalar(iexp))); // lower boundary of midrange
+ iexp = (iemax + 1 - it)/2;
+ b2 = RealScalar(pow(RealScalar(ibeta),RealScalar(iexp))); // upper boundary of midrange
+
+ iexp = (2-iemin)/2;
+ s1m = RealScalar(pow(RealScalar(ibeta),RealScalar(iexp))); // scaling factor for lower range
+ iexp = - ((iemax+it)/2);
+ s2m = RealScalar(pow(RealScalar(ibeta),RealScalar(iexp))); // scaling factor for upper range
+
+ eps = RealScalar(pow(double(ibeta), 1-it));
+ relerr = sqrt(eps); // tolerance for neglecting asml
+ initialized = true;
+ }
+ Index n = vec.size();
+ RealScalar ab2 = b2 / RealScalar(n);
+ RealScalar asml = RealScalar(0);
+ RealScalar amed = RealScalar(0);
+ RealScalar abig = RealScalar(0);
+ for(typename Derived::InnerIterator it(vec, 0); it; ++it)
+ {
+ RealScalar ax = abs(it.value());
+ if(ax > ab2) abig += numext::abs2(ax*s2m);
+ else if(ax < b1) asml += numext::abs2(ax*s1m);
+ else amed += numext::abs2(ax);
+ }
+ if(amed!=amed)
+ return amed; // we got a NaN
+ if(abig > RealScalar(0))
+ {
+ abig = sqrt(abig);
+ if(abig > rbig) // overflow, or *this contains INF values
+ return abig; // return INF
+ if(amed > RealScalar(0))
+ {
+ abig = abig/s2m;
+ amed = sqrt(amed);
+ }
+ else
+ return abig/s2m;
+ }
+ else if(asml > RealScalar(0))
+ {
+ if (amed > RealScalar(0))
+ {
+ abig = sqrt(amed);
+ amed = sqrt(asml) / s1m;
+ }
+ else
+ return sqrt(asml)/s1m;
+ }
+ else
+ return sqrt(amed);
+ asml = numext::mini(abig, amed);
+ abig = numext::maxi(abig, amed);
+ if(asml <= abig*relerr)
+ return abig;
+ else
+ return abig * sqrt(RealScalar(1) + numext::abs2(asml/abig));
+}
+
+} // end namespace internal
+
+/** \returns the \em l2 norm of \c *this avoiding underflow and overflow.
+ * This version use a blockwise two passes algorithm:
+ * 1 - find the absolute largest coefficient \c s
+ * 2 - compute \f$ s \Vert \frac{*this}{s} \Vert \f$ in a standard way
+ *
+ * For architecture/scalar types supporting vectorization, this version
+ * is faster than blueNorm(). Otherwise the blueNorm() is much faster.
+ *
+ * \sa norm(), blueNorm(), hypotNorm()
+ */
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+MatrixBase<Derived>::stableNorm() const
+{
+ using std::sqrt;
+ using std::abs;
+ const Index blockSize = 4096;
+ RealScalar scale(0);
+ RealScalar invScale(1);
+ RealScalar ssq(0); // sum of square
+
+ typedef typename internal::nested_eval<Derived,2>::type DerivedCopy;
+ typedef typename internal::remove_all<DerivedCopy>::type DerivedCopyClean;
+ DerivedCopy copy(derived());
+
+ enum {
+ CanAlign = ( (int(DerivedCopyClean::Flags)&DirectAccessBit)
+ || (int(internal::evaluator<DerivedCopyClean>::Alignment)>0) // FIXME Alignment)>0 might not be enough
+ ) && (blockSize*sizeof(Scalar)*2<EIGEN_STACK_ALLOCATION_LIMIT)
+ && (EIGEN_MAX_STATIC_ALIGN_BYTES>0) // if we cannot allocate on the stack, then let's not bother about this optimization
+ };
+ typedef typename internal::conditional<CanAlign, Ref<const Matrix<Scalar,Dynamic,1,0,blockSize,1>, internal::evaluator<DerivedCopyClean>::Alignment>,
+ typename DerivedCopyClean::ConstSegmentReturnType>::type SegmentWrapper;
+ Index n = size();
+
+ if(n==1)
+ return abs(this->coeff(0));
+
+ Index bi = internal::first_default_aligned(copy);
+ if (bi>0)
+ internal::stable_norm_kernel(copy.head(bi), ssq, scale, invScale);
+ for (; bi<n; bi+=blockSize)
+ internal::stable_norm_kernel(SegmentWrapper(copy.segment(bi,numext::mini(blockSize, n - bi))), ssq, scale, invScale);
+ return scale * sqrt(ssq);
+}
+
+/** \returns the \em l2 norm of \c *this using the Blue's algorithm.
+ * A Portable Fortran Program to Find the Euclidean Norm of a Vector,
+ * ACM TOMS, Vol 4, Issue 1, 1978.
+ *
+ * For architecture/scalar types without vectorization, this version
+ * is much faster than stableNorm(). Otherwise the stableNorm() is faster.
+ *
+ * \sa norm(), stableNorm(), hypotNorm()
+ */
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+MatrixBase<Derived>::blueNorm() const
+{
+ return internal::blueNorm_impl(*this);
+}
+
+/** \returns the \em l2 norm of \c *this avoiding undeflow and overflow.
+ * This version use a concatenation of hypot() calls, and it is very slow.
+ *
+ * \sa norm(), stableNorm()
+ */
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+MatrixBase<Derived>::hypotNorm() const
+{
+ return this->cwiseAbs().redux(internal::scalar_hypot_op<RealScalar>());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_STABLENORM_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Stride.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Stride.h
new file mode 100644
index 000000000..513742f34
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Stride.h
@@ -0,0 +1,111 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STRIDE_H
+#define EIGEN_STRIDE_H
+
+namespace Eigen {
+
+/** \class Stride
+ * \ingroup Core_Module
+ *
+ * \brief Holds strides information for Map
+ *
+ * This class holds the strides information for mapping arrays with strides with class Map.
+ *
+ * It holds two values: the inner stride and the outer stride.
+ *
+ * The inner stride is the pointer increment between two consecutive entries within a given row of a
+ * row-major matrix or within a given column of a column-major matrix.
+ *
+ * The outer stride is the pointer increment between two consecutive rows of a row-major matrix or
+ * between two consecutive columns of a column-major matrix.
+ *
+ * These two values can be passed either at compile-time as template parameters, or at runtime as
+ * arguments to the constructor.
+ *
+ * Indeed, this class takes two template parameters:
+ * \tparam _OuterStrideAtCompileTime the outer stride, or Dynamic if you want to specify it at runtime.
+ * \tparam _InnerStrideAtCompileTime the inner stride, or Dynamic if you want to specify it at runtime.
+ *
+ * Here is an example:
+ * \include Map_general_stride.cpp
+ * Output: \verbinclude Map_general_stride.out
+ *
+ * \sa class InnerStride, class OuterStride, \ref TopicStorageOrders
+ */
+template<int _OuterStrideAtCompileTime, int _InnerStrideAtCompileTime>
+class Stride
+{
+ public:
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
+ enum {
+ InnerStrideAtCompileTime = _InnerStrideAtCompileTime,
+ OuterStrideAtCompileTime = _OuterStrideAtCompileTime
+ };
+
+ /** Default constructor, for use when strides are fixed at compile time */
+ EIGEN_DEVICE_FUNC
+ Stride()
+ : m_outer(OuterStrideAtCompileTime), m_inner(InnerStrideAtCompileTime)
+ {
+ eigen_assert(InnerStrideAtCompileTime != Dynamic && OuterStrideAtCompileTime != Dynamic);
+ }
+
+ /** Constructor allowing to pass the strides at runtime */
+ EIGEN_DEVICE_FUNC
+ Stride(Index outerStride, Index innerStride)
+ : m_outer(outerStride), m_inner(innerStride)
+ {
+ eigen_assert(innerStride>=0 && outerStride>=0);
+ }
+
+ /** Copy constructor */
+ EIGEN_DEVICE_FUNC
+ Stride(const Stride& other)
+ : m_outer(other.outer()), m_inner(other.inner())
+ {}
+
+ /** \returns the outer stride */
+ EIGEN_DEVICE_FUNC
+ inline Index outer() const { return m_outer.value(); }
+ /** \returns the inner stride */
+ EIGEN_DEVICE_FUNC
+ inline Index inner() const { return m_inner.value(); }
+
+ protected:
+ internal::variable_if_dynamic<Index, OuterStrideAtCompileTime> m_outer;
+ internal::variable_if_dynamic<Index, InnerStrideAtCompileTime> m_inner;
+};
+
+/** \brief Convenience specialization of Stride to specify only an inner stride
+ * See class Map for some examples */
+template<int Value>
+class InnerStride : public Stride<0, Value>
+{
+ typedef Stride<0, Value> Base;
+ public:
+ EIGEN_DEVICE_FUNC InnerStride() : Base() {}
+ EIGEN_DEVICE_FUNC InnerStride(Index v) : Base(0, v) {} // FIXME making this explicit could break valid code
+};
+
+/** \brief Convenience specialization of Stride to specify only an outer stride
+ * See class Map for some examples */
+template<int Value>
+class OuterStride : public Stride<Value, 0>
+{
+ typedef Stride<Value, 0> Base;
+ public:
+ EIGEN_DEVICE_FUNC OuterStride() : Base() {}
+ EIGEN_DEVICE_FUNC OuterStride(Index v) : Base(v,0) {} // FIXME making this explicit could break valid code
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_STRIDE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Swap.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Swap.h
new file mode 100644
index 000000000..d70200918
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Swap.h
@@ -0,0 +1,67 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SWAP_H
+#define EIGEN_SWAP_H
+
+namespace Eigen {
+
+namespace internal {
+
+// Overload default assignPacket behavior for swapping them
+template<typename DstEvaluatorTypeT, typename SrcEvaluatorTypeT>
+class generic_dense_assignment_kernel<DstEvaluatorTypeT, SrcEvaluatorTypeT, swap_assign_op<typename DstEvaluatorTypeT::Scalar>, Specialized>
+ : public generic_dense_assignment_kernel<DstEvaluatorTypeT, SrcEvaluatorTypeT, swap_assign_op<typename DstEvaluatorTypeT::Scalar>, BuiltIn>
+{
+protected:
+ typedef generic_dense_assignment_kernel<DstEvaluatorTypeT, SrcEvaluatorTypeT, swap_assign_op<typename DstEvaluatorTypeT::Scalar>, BuiltIn> Base;
+ using Base::m_dst;
+ using Base::m_src;
+ using Base::m_functor;
+
+public:
+ typedef typename Base::Scalar Scalar;
+ typedef typename Base::DstXprType DstXprType;
+ typedef swap_assign_op<Scalar> Functor;
+
+ EIGEN_DEVICE_FUNC generic_dense_assignment_kernel(DstEvaluatorTypeT &dst, const SrcEvaluatorTypeT &src, const Functor &func, DstXprType& dstExpr)
+ : Base(dst, src, func, dstExpr)
+ {}
+
+ template<int StoreMode, int LoadMode, typename PacketType>
+ void assignPacket(Index row, Index col)
+ {
+ PacketType tmp = m_src.template packet<LoadMode,PacketType>(row,col);
+ const_cast<SrcEvaluatorTypeT&>(m_src).template writePacket<LoadMode>(row,col, m_dst.template packet<StoreMode,PacketType>(row,col));
+ m_dst.template writePacket<StoreMode>(row,col,tmp);
+ }
+
+ template<int StoreMode, int LoadMode, typename PacketType>
+ void assignPacket(Index index)
+ {
+ PacketType tmp = m_src.template packet<LoadMode,PacketType>(index);
+ const_cast<SrcEvaluatorTypeT&>(m_src).template writePacket<LoadMode>(index, m_dst.template packet<StoreMode,PacketType>(index));
+ m_dst.template writePacket<StoreMode>(index,tmp);
+ }
+
+ // TODO find a simple way not to have to copy/paste this function from generic_dense_assignment_kernel, by simple I mean no CRTP (Gael)
+ template<int StoreMode, int LoadMode, typename PacketType>
+ void assignPacketByOuterInner(Index outer, Index inner)
+ {
+ Index row = Base::rowIndexByOuterInner(outer, inner);
+ Index col = Base::colIndexByOuterInner(outer, inner);
+ assignPacket<StoreMode,LoadMode,PacketType>(row, col);
+ }
+};
+
+} // namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SWAP_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Transpose.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Transpose.h
new file mode 100644
index 000000000..79b767bcc
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Transpose.h
@@ -0,0 +1,403 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2009-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRANSPOSE_H
+#define EIGEN_TRANSPOSE_H
+
+namespace Eigen {
+
+namespace internal {
+template<typename MatrixType>
+struct traits<Transpose<MatrixType> > : public traits<MatrixType>
+{
+ typedef typename ref_selector<MatrixType>::type MatrixTypeNested;
+ typedef typename remove_reference<MatrixTypeNested>::type MatrixTypeNestedPlain;
+ enum {
+ RowsAtCompileTime = MatrixType::ColsAtCompileTime,
+ ColsAtCompileTime = MatrixType::RowsAtCompileTime,
+ MaxRowsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ FlagsLvalueBit = is_lvalue<MatrixType>::value ? LvalueBit : 0,
+ Flags0 = traits<MatrixTypeNestedPlain>::Flags & ~(LvalueBit | NestByRefBit),
+ Flags1 = Flags0 | FlagsLvalueBit,
+ Flags = Flags1 ^ RowMajorBit,
+ InnerStrideAtCompileTime = inner_stride_at_compile_time<MatrixType>::ret,
+ OuterStrideAtCompileTime = outer_stride_at_compile_time<MatrixType>::ret
+ };
+};
+}
+
+template<typename MatrixType, typename StorageKind> class TransposeImpl;
+
+/** \class Transpose
+ * \ingroup Core_Module
+ *
+ * \brief Expression of the transpose of a matrix
+ *
+ * \tparam MatrixType the type of the object of which we are taking the transpose
+ *
+ * This class represents an expression of the transpose of a matrix.
+ * It is the return type of MatrixBase::transpose() and MatrixBase::adjoint()
+ * and most of the time this is the only way it is used.
+ *
+ * \sa MatrixBase::transpose(), MatrixBase::adjoint()
+ */
+template<typename MatrixType> class Transpose
+ : public TransposeImpl<MatrixType,typename internal::traits<MatrixType>::StorageKind>
+{
+ public:
+
+ typedef typename internal::ref_selector<MatrixType>::non_const_type MatrixTypeNested;
+
+ typedef typename TransposeImpl<MatrixType,typename internal::traits<MatrixType>::StorageKind>::Base Base;
+ EIGEN_GENERIC_PUBLIC_INTERFACE(Transpose)
+ typedef typename internal::remove_all<MatrixType>::type NestedExpression;
+
+ EIGEN_DEVICE_FUNC
+ explicit inline Transpose(MatrixType& matrix) : m_matrix(matrix) {}
+
+ EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Transpose)
+
+ EIGEN_DEVICE_FUNC inline Index rows() const { return m_matrix.cols(); }
+ EIGEN_DEVICE_FUNC inline Index cols() const { return m_matrix.rows(); }
+
+ /** \returns the nested expression */
+ EIGEN_DEVICE_FUNC
+ const typename internal::remove_all<MatrixTypeNested>::type&
+ nestedExpression() const { return m_matrix; }
+
+ /** \returns the nested expression */
+ EIGEN_DEVICE_FUNC
+ typename internal::remove_reference<MatrixTypeNested>::type&
+ nestedExpression() { return m_matrix; }
+
+ /** \internal */
+ void resize(Index nrows, Index ncols) {
+ m_matrix.resize(ncols,nrows);
+ }
+
+ protected:
+ typename internal::ref_selector<MatrixType>::non_const_type m_matrix;
+};
+
+namespace internal {
+
+template<typename MatrixType, bool HasDirectAccess = has_direct_access<MatrixType>::ret>
+struct TransposeImpl_base
+{
+ typedef typename dense_xpr_base<Transpose<MatrixType> >::type type;
+};
+
+template<typename MatrixType>
+struct TransposeImpl_base<MatrixType, false>
+{
+ typedef typename dense_xpr_base<Transpose<MatrixType> >::type type;
+};
+
+} // end namespace internal
+
+// Generic API dispatcher
+template<typename XprType, typename StorageKind>
+class TransposeImpl
+ : public internal::generic_xpr_base<Transpose<XprType> >::type
+{
+public:
+ typedef typename internal::generic_xpr_base<Transpose<XprType> >::type Base;
+};
+
+template<typename MatrixType> class TransposeImpl<MatrixType,Dense>
+ : public internal::TransposeImpl_base<MatrixType>::type
+{
+ public:
+
+ typedef typename internal::TransposeImpl_base<MatrixType>::type Base;
+ using Base::coeffRef;
+ EIGEN_DENSE_PUBLIC_INTERFACE(Transpose<MatrixType>)
+ EIGEN_INHERIT_ASSIGNMENT_OPERATORS(TransposeImpl)
+
+ EIGEN_DEVICE_FUNC inline Index innerStride() const { return derived().nestedExpression().innerStride(); }
+ EIGEN_DEVICE_FUNC inline Index outerStride() const { return derived().nestedExpression().outerStride(); }
+
+ typedef typename internal::conditional<
+ internal::is_lvalue<MatrixType>::value,
+ Scalar,
+ const Scalar
+ >::type ScalarWithConstIfNotLvalue;
+
+ EIGEN_DEVICE_FUNC inline ScalarWithConstIfNotLvalue* data() { return derived().nestedExpression().data(); }
+ EIGEN_DEVICE_FUNC inline const Scalar* data() const { return derived().nestedExpression().data(); }
+
+ // FIXME: shall we keep the const version of coeffRef?
+ EIGEN_DEVICE_FUNC
+ inline const Scalar& coeffRef(Index rowId, Index colId) const
+ {
+ return derived().nestedExpression().coeffRef(colId, rowId);
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline const Scalar& coeffRef(Index index) const
+ {
+ return derived().nestedExpression().coeffRef(index);
+ }
+};
+
+/** \returns an expression of the transpose of *this.
+ *
+ * Example: \include MatrixBase_transpose.cpp
+ * Output: \verbinclude MatrixBase_transpose.out
+ *
+ * \warning If you want to replace a matrix by its own transpose, do \b NOT do this:
+ * \code
+ * m = m.transpose(); // bug!!! caused by aliasing effect
+ * \endcode
+ * Instead, use the transposeInPlace() method:
+ * \code
+ * m.transposeInPlace();
+ * \endcode
+ * which gives Eigen good opportunities for optimization, or alternatively you can also do:
+ * \code
+ * m = m.transpose().eval();
+ * \endcode
+ *
+ * \sa transposeInPlace(), adjoint() */
+template<typename Derived>
+inline Transpose<Derived>
+DenseBase<Derived>::transpose()
+{
+ return TransposeReturnType(derived());
+}
+
+/** This is the const version of transpose().
+ *
+ * Make sure you read the warning for transpose() !
+ *
+ * \sa transposeInPlace(), adjoint() */
+template<typename Derived>
+inline typename DenseBase<Derived>::ConstTransposeReturnType
+DenseBase<Derived>::transpose() const
+{
+ return ConstTransposeReturnType(derived());
+}
+
+/** \returns an expression of the adjoint (i.e. conjugate transpose) of *this.
+ *
+ * Example: \include MatrixBase_adjoint.cpp
+ * Output: \verbinclude MatrixBase_adjoint.out
+ *
+ * \warning If you want to replace a matrix by its own adjoint, do \b NOT do this:
+ * \code
+ * m = m.adjoint(); // bug!!! caused by aliasing effect
+ * \endcode
+ * Instead, use the adjointInPlace() method:
+ * \code
+ * m.adjointInPlace();
+ * \endcode
+ * which gives Eigen good opportunities for optimization, or alternatively you can also do:
+ * \code
+ * m = m.adjoint().eval();
+ * \endcode
+ *
+ * \sa adjointInPlace(), transpose(), conjugate(), class Transpose, class internal::scalar_conjugate_op */
+template<typename Derived>
+inline const typename MatrixBase<Derived>::AdjointReturnType
+MatrixBase<Derived>::adjoint() const
+{
+ return AdjointReturnType(this->transpose());
+}
+
+/***************************************************************************
+* "in place" transpose implementation
+***************************************************************************/
+
+namespace internal {
+
+template<typename MatrixType,
+ bool IsSquare = (MatrixType::RowsAtCompileTime == MatrixType::ColsAtCompileTime) && MatrixType::RowsAtCompileTime!=Dynamic,
+ bool MatchPacketSize =
+ (int(MatrixType::RowsAtCompileTime) == int(internal::packet_traits<typename MatrixType::Scalar>::size))
+ && (internal::evaluator<MatrixType>::Flags&PacketAccessBit) >
+struct inplace_transpose_selector;
+
+template<typename MatrixType>
+struct inplace_transpose_selector<MatrixType,true,false> { // square matrix
+ static void run(MatrixType& m) {
+ m.matrix().template triangularView<StrictlyUpper>().swap(m.matrix().transpose());
+ }
+};
+
+// TODO: vectorized path is currently limited to LargestPacketSize x LargestPacketSize cases only.
+template<typename MatrixType>
+struct inplace_transpose_selector<MatrixType,true,true> { // PacketSize x PacketSize
+ static void run(MatrixType& m) {
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename internal::packet_traits<typename MatrixType::Scalar>::type Packet;
+ const Index PacketSize = internal::packet_traits<Scalar>::size;
+ const Index Alignment = internal::evaluator<MatrixType>::Alignment;
+ PacketBlock<Packet> A;
+ for (Index i=0; i<PacketSize; ++i)
+ A.packet[i] = m.template packetByOuterInner<Alignment>(i,0);
+ internal::ptranspose(A);
+ for (Index i=0; i<PacketSize; ++i)
+ m.template writePacket<Alignment>(m.rowIndexByOuterInner(i,0), m.colIndexByOuterInner(i,0), A.packet[i]);
+ }
+};
+
+template<typename MatrixType,bool MatchPacketSize>
+struct inplace_transpose_selector<MatrixType,false,MatchPacketSize> { // non square matrix
+ static void run(MatrixType& m) {
+ if (m.rows()==m.cols())
+ m.matrix().template triangularView<StrictlyUpper>().swap(m.matrix().transpose());
+ else
+ m = m.transpose().eval();
+ }
+};
+
+} // end namespace internal
+
+/** This is the "in place" version of transpose(): it replaces \c *this by its own transpose.
+ * Thus, doing
+ * \code
+ * m.transposeInPlace();
+ * \endcode
+ * has the same effect on m as doing
+ * \code
+ * m = m.transpose().eval();
+ * \endcode
+ * and is faster and also safer because in the latter line of code, forgetting the eval() results
+ * in a bug caused by \ref TopicAliasing "aliasing".
+ *
+ * Notice however that this method is only useful if you want to replace a matrix by its own transpose.
+ * If you just need the transpose of a matrix, use transpose().
+ *
+ * \note if the matrix is not square, then \c *this must be a resizable matrix.
+ * This excludes (non-square) fixed-size matrices, block-expressions and maps.
+ *
+ * \sa transpose(), adjoint(), adjointInPlace() */
+template<typename Derived>
+inline void DenseBase<Derived>::transposeInPlace()
+{
+ eigen_assert((rows() == cols() || (RowsAtCompileTime == Dynamic && ColsAtCompileTime == Dynamic))
+ && "transposeInPlace() called on a non-square non-resizable matrix");
+ internal::inplace_transpose_selector<Derived>::run(derived());
+}
+
+/***************************************************************************
+* "in place" adjoint implementation
+***************************************************************************/
+
+/** This is the "in place" version of adjoint(): it replaces \c *this by its own transpose.
+ * Thus, doing
+ * \code
+ * m.adjointInPlace();
+ * \endcode
+ * has the same effect on m as doing
+ * \code
+ * m = m.adjoint().eval();
+ * \endcode
+ * and is faster and also safer because in the latter line of code, forgetting the eval() results
+ * in a bug caused by aliasing.
+ *
+ * Notice however that this method is only useful if you want to replace a matrix by its own adjoint.
+ * If you just need the adjoint of a matrix, use adjoint().
+ *
+ * \note if the matrix is not square, then \c *this must be a resizable matrix.
+ * This excludes (non-square) fixed-size matrices, block-expressions and maps.
+ *
+ * \sa transpose(), adjoint(), transposeInPlace() */
+template<typename Derived>
+inline void MatrixBase<Derived>::adjointInPlace()
+{
+ derived() = adjoint().eval();
+}
+
+#ifndef EIGEN_NO_DEBUG
+
+// The following is to detect aliasing problems in most common cases.
+
+namespace internal {
+
+template<bool DestIsTransposed, typename OtherDerived>
+struct check_transpose_aliasing_compile_time_selector
+{
+ enum { ret = bool(blas_traits<OtherDerived>::IsTransposed) != DestIsTransposed };
+};
+
+template<bool DestIsTransposed, typename BinOp, typename DerivedA, typename DerivedB>
+struct check_transpose_aliasing_compile_time_selector<DestIsTransposed,CwiseBinaryOp<BinOp,DerivedA,DerivedB> >
+{
+ enum { ret = bool(blas_traits<DerivedA>::IsTransposed) != DestIsTransposed
+ || bool(blas_traits<DerivedB>::IsTransposed) != DestIsTransposed
+ };
+};
+
+template<typename Scalar, bool DestIsTransposed, typename OtherDerived>
+struct check_transpose_aliasing_run_time_selector
+{
+ static bool run(const Scalar* dest, const OtherDerived& src)
+ {
+ return (bool(blas_traits<OtherDerived>::IsTransposed) != DestIsTransposed) && (dest!=0 && dest==(const Scalar*)extract_data(src));
+ }
+};
+
+template<typename Scalar, bool DestIsTransposed, typename BinOp, typename DerivedA, typename DerivedB>
+struct check_transpose_aliasing_run_time_selector<Scalar,DestIsTransposed,CwiseBinaryOp<BinOp,DerivedA,DerivedB> >
+{
+ static bool run(const Scalar* dest, const CwiseBinaryOp<BinOp,DerivedA,DerivedB>& src)
+ {
+ return ((blas_traits<DerivedA>::IsTransposed != DestIsTransposed) && (dest!=0 && dest==(const Scalar*)extract_data(src.lhs())))
+ || ((blas_traits<DerivedB>::IsTransposed != DestIsTransposed) && (dest!=0 && dest==(const Scalar*)extract_data(src.rhs())));
+ }
+};
+
+// the following selector, checkTransposeAliasing_impl, based on MightHaveTransposeAliasing,
+// is because when the condition controlling the assert is known at compile time, ICC emits a warning.
+// This is actually a good warning: in expressions that don't have any transposing, the condition is
+// known at compile time to be false, and using that, we can avoid generating the code of the assert again
+// and again for all these expressions that don't need it.
+
+template<typename Derived, typename OtherDerived,
+ bool MightHaveTransposeAliasing
+ = check_transpose_aliasing_compile_time_selector
+ <blas_traits<Derived>::IsTransposed,OtherDerived>::ret
+ >
+struct checkTransposeAliasing_impl
+{
+ static void run(const Derived& dst, const OtherDerived& other)
+ {
+ eigen_assert((!check_transpose_aliasing_run_time_selector
+ <typename Derived::Scalar,blas_traits<Derived>::IsTransposed,OtherDerived>
+ ::run(extract_data(dst), other))
+ && "aliasing detected during transposition, use transposeInPlace() "
+ "or evaluate the rhs into a temporary using .eval()");
+
+ }
+};
+
+template<typename Derived, typename OtherDerived>
+struct checkTransposeAliasing_impl<Derived, OtherDerived, false>
+{
+ static void run(const Derived&, const OtherDerived&)
+ {
+ }
+};
+
+template<typename Dst, typename Src>
+void check_for_aliasing(const Dst &dst, const Src &src)
+{
+ internal::checkTransposeAliasing_impl<Dst, Src>::run(dst, src);
+}
+
+} // end namespace internal
+
+#endif // EIGEN_NO_DEBUG
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRANSPOSE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Transpositions.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Transpositions.h
new file mode 100644
index 000000000..19c17bb4a
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Transpositions.h
@@ -0,0 +1,407 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010-2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRANSPOSITIONS_H
+#define EIGEN_TRANSPOSITIONS_H
+
+namespace Eigen {
+
+template<typename Derived>
+class TranspositionsBase
+{
+ typedef internal::traits<Derived> Traits;
+
+ public:
+
+ typedef typename Traits::IndicesType IndicesType;
+ typedef typename IndicesType::Scalar StorageIndex;
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
+
+ Derived& derived() { return *static_cast<Derived*>(this); }
+ const Derived& derived() const { return *static_cast<const Derived*>(this); }
+
+ /** Copies the \a other transpositions into \c *this */
+ template<typename OtherDerived>
+ Derived& operator=(const TranspositionsBase<OtherDerived>& other)
+ {
+ indices() = other.indices();
+ return derived();
+ }
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** This is a special case of the templated operator=. Its purpose is to
+ * prevent a default operator= from hiding the templated operator=.
+ */
+ Derived& operator=(const TranspositionsBase& other)
+ {
+ indices() = other.indices();
+ return derived();
+ }
+ #endif
+
+ /** \returns the number of transpositions */
+ Index size() const { return indices().size(); }
+ /** \returns the number of rows of the equivalent permutation matrix */
+ Index rows() const { return indices().size(); }
+ /** \returns the number of columns of the equivalent permutation matrix */
+ Index cols() const { return indices().size(); }
+
+ /** Direct access to the underlying index vector */
+ inline const StorageIndex& coeff(Index i) const { return indices().coeff(i); }
+ /** Direct access to the underlying index vector */
+ inline StorageIndex& coeffRef(Index i) { return indices().coeffRef(i); }
+ /** Direct access to the underlying index vector */
+ inline const StorageIndex& operator()(Index i) const { return indices()(i); }
+ /** Direct access to the underlying index vector */
+ inline StorageIndex& operator()(Index i) { return indices()(i); }
+ /** Direct access to the underlying index vector */
+ inline const StorageIndex& operator[](Index i) const { return indices()(i); }
+ /** Direct access to the underlying index vector */
+ inline StorageIndex& operator[](Index i) { return indices()(i); }
+
+ /** const version of indices(). */
+ const IndicesType& indices() const { return derived().indices(); }
+ /** \returns a reference to the stored array representing the transpositions. */
+ IndicesType& indices() { return derived().indices(); }
+
+ /** Resizes to given size. */
+ inline void resize(Index newSize)
+ {
+ indices().resize(newSize);
+ }
+
+ /** Sets \c *this to represents an identity transformation */
+ void setIdentity()
+ {
+ for(StorageIndex i = 0; i < indices().size(); ++i)
+ coeffRef(i) = i;
+ }
+
+ // FIXME: do we want such methods ?
+ // might be usefull when the target matrix expression is complex, e.g.:
+ // object.matrix().block(..,..,..,..) = trans * object.matrix().block(..,..,..,..);
+ /*
+ template<typename MatrixType>
+ void applyForwardToRows(MatrixType& mat) const
+ {
+ for(Index k=0 ; k<size() ; ++k)
+ if(m_indices(k)!=k)
+ mat.row(k).swap(mat.row(m_indices(k)));
+ }
+
+ template<typename MatrixType>
+ void applyBackwardToRows(MatrixType& mat) const
+ {
+ for(Index k=size()-1 ; k>=0 ; --k)
+ if(m_indices(k)!=k)
+ mat.row(k).swap(mat.row(m_indices(k)));
+ }
+ */
+
+ /** \returns the inverse transformation */
+ inline Transpose<TranspositionsBase> inverse() const
+ { return Transpose<TranspositionsBase>(derived()); }
+
+ /** \returns the tranpose transformation */
+ inline Transpose<TranspositionsBase> transpose() const
+ { return Transpose<TranspositionsBase>(derived()); }
+
+ protected:
+};
+
+namespace internal {
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename _StorageIndex>
+struct traits<Transpositions<SizeAtCompileTime,MaxSizeAtCompileTime,_StorageIndex> >
+ : traits<PermutationMatrix<SizeAtCompileTime,MaxSizeAtCompileTime,_StorageIndex> >
+{
+ typedef Matrix<_StorageIndex, SizeAtCompileTime, 1, 0, MaxSizeAtCompileTime, 1> IndicesType;
+ typedef TranspositionsStorage StorageKind;
+};
+}
+
+/** \class Transpositions
+ * \ingroup Core_Module
+ *
+ * \brief Represents a sequence of transpositions (row/column interchange)
+ *
+ * \tparam SizeAtCompileTime the number of transpositions, or Dynamic
+ * \tparam MaxSizeAtCompileTime the maximum number of transpositions, or Dynamic. This optional parameter defaults to SizeAtCompileTime. Most of the time, you should not have to specify it.
+ *
+ * This class represents a permutation transformation as a sequence of \em n transpositions
+ * \f$[T_{n-1} \ldots T_{i} \ldots T_{0}]\f$. It is internally stored as a vector of integers \c indices.
+ * Each transposition \f$ T_{i} \f$ applied on the left of a matrix (\f$ T_{i} M\f$) interchanges
+ * the rows \c i and \c indices[i] of the matrix \c M.
+ * A transposition applied on the right (e.g., \f$ M T_{i}\f$) yields a column interchange.
+ *
+ * Compared to the class PermutationMatrix, such a sequence of transpositions is what is
+ * computed during a decomposition with pivoting, and it is faster when applying the permutation in-place.
+ *
+ * To apply a sequence of transpositions to a matrix, simply use the operator * as in the following example:
+ * \code
+ * Transpositions tr;
+ * MatrixXf mat;
+ * mat = tr * mat;
+ * \endcode
+ * In this example, we detect that the matrix appears on both side, and so the transpositions
+ * are applied in-place without any temporary or extra copy.
+ *
+ * \sa class PermutationMatrix
+ */
+
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename _StorageIndex>
+class Transpositions : public TranspositionsBase<Transpositions<SizeAtCompileTime,MaxSizeAtCompileTime,_StorageIndex> >
+{
+ typedef internal::traits<Transpositions> Traits;
+ public:
+
+ typedef TranspositionsBase<Transpositions> Base;
+ typedef typename Traits::IndicesType IndicesType;
+ typedef typename IndicesType::Scalar StorageIndex;
+
+ inline Transpositions() {}
+
+ /** Copy constructor. */
+ template<typename OtherDerived>
+ inline Transpositions(const TranspositionsBase<OtherDerived>& other)
+ : m_indices(other.indices()) {}
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** Standard copy constructor. Defined only to prevent a default copy constructor
+ * from hiding the other templated constructor */
+ inline Transpositions(const Transpositions& other) : m_indices(other.indices()) {}
+ #endif
+
+ /** Generic constructor from expression of the transposition indices. */
+ template<typename Other>
+ explicit inline Transpositions(const MatrixBase<Other>& indices) : m_indices(indices)
+ {}
+
+ /** Copies the \a other transpositions into \c *this */
+ template<typename OtherDerived>
+ Transpositions& operator=(const TranspositionsBase<OtherDerived>& other)
+ {
+ return Base::operator=(other);
+ }
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** This is a special case of the templated operator=. Its purpose is to
+ * prevent a default operator= from hiding the templated operator=.
+ */
+ Transpositions& operator=(const Transpositions& other)
+ {
+ m_indices = other.m_indices;
+ return *this;
+ }
+ #endif
+
+ /** Constructs an uninitialized permutation matrix of given size.
+ */
+ inline Transpositions(Index size) : m_indices(size)
+ {}
+
+ /** const version of indices(). */
+ const IndicesType& indices() const { return m_indices; }
+ /** \returns a reference to the stored array representing the transpositions. */
+ IndicesType& indices() { return m_indices; }
+
+ protected:
+
+ IndicesType m_indices;
+};
+
+
+namespace internal {
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename _StorageIndex, int _PacketAccess>
+struct traits<Map<Transpositions<SizeAtCompileTime,MaxSizeAtCompileTime,_StorageIndex>,_PacketAccess> >
+ : traits<PermutationMatrix<SizeAtCompileTime,MaxSizeAtCompileTime,_StorageIndex> >
+{
+ typedef Map<const Matrix<_StorageIndex,SizeAtCompileTime,1,0,MaxSizeAtCompileTime,1>, _PacketAccess> IndicesType;
+ typedef _StorageIndex StorageIndex;
+ typedef TranspositionsStorage StorageKind;
+};
+}
+
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename _StorageIndex, int PacketAccess>
+class Map<Transpositions<SizeAtCompileTime,MaxSizeAtCompileTime,_StorageIndex>,PacketAccess>
+ : public TranspositionsBase<Map<Transpositions<SizeAtCompileTime,MaxSizeAtCompileTime,_StorageIndex>,PacketAccess> >
+{
+ typedef internal::traits<Map> Traits;
+ public:
+
+ typedef TranspositionsBase<Map> Base;
+ typedef typename Traits::IndicesType IndicesType;
+ typedef typename IndicesType::Scalar StorageIndex;
+
+ explicit inline Map(const StorageIndex* indicesPtr)
+ : m_indices(indicesPtr)
+ {}
+
+ inline Map(const StorageIndex* indicesPtr, Index size)
+ : m_indices(indicesPtr,size)
+ {}
+
+ /** Copies the \a other transpositions into \c *this */
+ template<typename OtherDerived>
+ Map& operator=(const TranspositionsBase<OtherDerived>& other)
+ {
+ return Base::operator=(other);
+ }
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** This is a special case of the templated operator=. Its purpose is to
+ * prevent a default operator= from hiding the templated operator=.
+ */
+ Map& operator=(const Map& other)
+ {
+ m_indices = other.m_indices;
+ return *this;
+ }
+ #endif
+
+ /** const version of indices(). */
+ const IndicesType& indices() const { return m_indices; }
+
+ /** \returns a reference to the stored array representing the transpositions. */
+ IndicesType& indices() { return m_indices; }
+
+ protected:
+
+ IndicesType m_indices;
+};
+
+namespace internal {
+template<typename _IndicesType>
+struct traits<TranspositionsWrapper<_IndicesType> >
+ : traits<PermutationWrapper<_IndicesType> >
+{
+ typedef TranspositionsStorage StorageKind;
+};
+}
+
+template<typename _IndicesType>
+class TranspositionsWrapper
+ : public TranspositionsBase<TranspositionsWrapper<_IndicesType> >
+{
+ typedef internal::traits<TranspositionsWrapper> Traits;
+ public:
+
+ typedef TranspositionsBase<TranspositionsWrapper> Base;
+ typedef typename Traits::IndicesType IndicesType;
+ typedef typename IndicesType::Scalar StorageIndex;
+
+ explicit inline TranspositionsWrapper(IndicesType& indices)
+ : m_indices(indices)
+ {}
+
+ /** Copies the \a other transpositions into \c *this */
+ template<typename OtherDerived>
+ TranspositionsWrapper& operator=(const TranspositionsBase<OtherDerived>& other)
+ {
+ return Base::operator=(other);
+ }
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** This is a special case of the templated operator=. Its purpose is to
+ * prevent a default operator= from hiding the templated operator=.
+ */
+ TranspositionsWrapper& operator=(const TranspositionsWrapper& other)
+ {
+ m_indices = other.m_indices;
+ return *this;
+ }
+ #endif
+
+ /** const version of indices(). */
+ const IndicesType& indices() const { return m_indices; }
+
+ /** \returns a reference to the stored array representing the transpositions. */
+ IndicesType& indices() { return m_indices; }
+
+ protected:
+
+ typename IndicesType::Nested m_indices;
+};
+
+
+
+/** \returns the \a matrix with the \a transpositions applied to the columns.
+ */
+template<typename MatrixDerived, typename TranspositionsDerived>
+EIGEN_DEVICE_FUNC
+const Product<MatrixDerived, TranspositionsDerived, AliasFreeProduct>
+operator*(const MatrixBase<MatrixDerived> &matrix,
+ const TranspositionsBase<TranspositionsDerived>& transpositions)
+{
+ return Product<MatrixDerived, TranspositionsDerived, AliasFreeProduct>
+ (matrix.derived(), transpositions.derived());
+}
+
+/** \returns the \a matrix with the \a transpositions applied to the rows.
+ */
+template<typename TranspositionsDerived, typename MatrixDerived>
+EIGEN_DEVICE_FUNC
+const Product<TranspositionsDerived, MatrixDerived, AliasFreeProduct>
+operator*(const TranspositionsBase<TranspositionsDerived> &transpositions,
+ const MatrixBase<MatrixDerived>& matrix)
+{
+ return Product<TranspositionsDerived, MatrixDerived, AliasFreeProduct>
+ (transpositions.derived(), matrix.derived());
+}
+
+// Template partial specialization for transposed/inverse transpositions
+
+namespace internal {
+
+template<typename Derived>
+struct traits<Transpose<TranspositionsBase<Derived> > >
+ : traits<Derived>
+{};
+
+} // end namespace internal
+
+template<typename TranspositionsDerived>
+class Transpose<TranspositionsBase<TranspositionsDerived> >
+{
+ typedef TranspositionsDerived TranspositionType;
+ typedef typename TranspositionType::IndicesType IndicesType;
+ public:
+
+ explicit Transpose(const TranspositionType& t) : m_transpositions(t) {}
+
+ Index size() const { return m_transpositions.size(); }
+ Index rows() const { return m_transpositions.size(); }
+ Index cols() const { return m_transpositions.size(); }
+
+ /** \returns the \a matrix with the inverse transpositions applied to the columns.
+ */
+ template<typename OtherDerived> friend
+ const Product<OtherDerived, Transpose, AliasFreeProduct>
+ operator*(const MatrixBase<OtherDerived>& matrix, const Transpose& trt)
+ {
+ return Product<OtherDerived, Transpose, AliasFreeProduct>(matrix.derived(), trt.derived());
+ }
+
+ /** \returns the \a matrix with the inverse transpositions applied to the rows.
+ */
+ template<typename OtherDerived>
+ const Product<Transpose, OtherDerived, AliasFreeProduct>
+ operator*(const MatrixBase<OtherDerived>& matrix) const
+ {
+ return Product<Transpose, OtherDerived, AliasFreeProduct>(*this, matrix.derived());
+ }
+
+ const TranspositionType& nestedExpression() const { return m_transpositions; }
+
+ protected:
+ const TranspositionType& m_transpositions;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRANSPOSITIONS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/TriangularMatrix.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/TriangularMatrix.h
new file mode 100644
index 000000000..667ef09dc
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/TriangularMatrix.h
@@ -0,0 +1,983 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRIANGULARMATRIX_H
+#define EIGEN_TRIANGULARMATRIX_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<int Side, typename TriangularType, typename Rhs> struct triangular_solve_retval;
+
+}
+
+/** \class TriangularBase
+ * \ingroup Core_Module
+ *
+ * \brief Base class for triangular part in a matrix
+ */
+template<typename Derived> class TriangularBase : public EigenBase<Derived>
+{
+ public:
+
+ enum {
+ Mode = internal::traits<Derived>::Mode,
+ RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
+ ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
+ MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime,
+
+ SizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::RowsAtCompileTime,
+ internal::traits<Derived>::ColsAtCompileTime>::ret),
+ /**< This is equal to the number of coefficients, i.e. the number of
+ * rows times the number of columns, or to \a Dynamic if this is not
+ * known at compile-time. \sa RowsAtCompileTime, ColsAtCompileTime */
+
+ MaxSizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::MaxRowsAtCompileTime,
+ internal::traits<Derived>::MaxColsAtCompileTime>::ret)
+
+ };
+ typedef typename internal::traits<Derived>::Scalar Scalar;
+ typedef typename internal::traits<Derived>::StorageKind StorageKind;
+ typedef typename internal::traits<Derived>::StorageIndex StorageIndex;
+ typedef typename internal::traits<Derived>::FullMatrixType DenseMatrixType;
+ typedef DenseMatrixType DenseType;
+ typedef Derived const& Nested;
+
+ EIGEN_DEVICE_FUNC
+ inline TriangularBase() { eigen_assert(!((Mode&UnitDiag) && (Mode&ZeroDiag))); }
+
+ EIGEN_DEVICE_FUNC
+ inline Index rows() const { return derived().rows(); }
+ EIGEN_DEVICE_FUNC
+ inline Index cols() const { return derived().cols(); }
+ EIGEN_DEVICE_FUNC
+ inline Index outerStride() const { return derived().outerStride(); }
+ EIGEN_DEVICE_FUNC
+ inline Index innerStride() const { return derived().innerStride(); }
+
+ // dummy resize function
+ void resize(Index rows, Index cols)
+ {
+ EIGEN_UNUSED_VARIABLE(rows);
+ EIGEN_UNUSED_VARIABLE(cols);
+ eigen_assert(rows==this->rows() && cols==this->cols());
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline Scalar coeff(Index row, Index col) const { return derived().coeff(row,col); }
+ EIGEN_DEVICE_FUNC
+ inline Scalar& coeffRef(Index row, Index col) { return derived().coeffRef(row,col); }
+
+ /** \see MatrixBase::copyCoeff(row,col)
+ */
+ template<typename Other>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void copyCoeff(Index row, Index col, Other& other)
+ {
+ derived().coeffRef(row, col) = other.coeff(row, col);
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline Scalar operator()(Index row, Index col) const
+ {
+ check_coordinates(row, col);
+ return coeff(row,col);
+ }
+ EIGEN_DEVICE_FUNC
+ inline Scalar& operator()(Index row, Index col)
+ {
+ check_coordinates(row, col);
+ return coeffRef(row,col);
+ }
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ EIGEN_DEVICE_FUNC
+ inline const Derived& derived() const { return *static_cast<const Derived*>(this); }
+ EIGEN_DEVICE_FUNC
+ inline Derived& derived() { return *static_cast<Derived*>(this); }
+ #endif // not EIGEN_PARSED_BY_DOXYGEN
+
+ template<typename DenseDerived>
+ EIGEN_DEVICE_FUNC
+ void evalTo(MatrixBase<DenseDerived> &other) const;
+ template<typename DenseDerived>
+ EIGEN_DEVICE_FUNC
+ void evalToLazy(MatrixBase<DenseDerived> &other) const;
+
+ EIGEN_DEVICE_FUNC
+ DenseMatrixType toDenseMatrix() const
+ {
+ DenseMatrixType res(rows(), cols());
+ evalToLazy(res);
+ return res;
+ }
+
+ protected:
+
+ void check_coordinates(Index row, Index col) const
+ {
+ EIGEN_ONLY_USED_FOR_DEBUG(row);
+ EIGEN_ONLY_USED_FOR_DEBUG(col);
+ eigen_assert(col>=0 && col<cols() && row>=0 && row<rows());
+ const int mode = int(Mode) & ~SelfAdjoint;
+ EIGEN_ONLY_USED_FOR_DEBUG(mode);
+ eigen_assert((mode==Upper && col>=row)
+ || (mode==Lower && col<=row)
+ || ((mode==StrictlyUpper || mode==UnitUpper) && col>row)
+ || ((mode==StrictlyLower || mode==UnitLower) && col<row));
+ }
+
+ #ifdef EIGEN_INTERNAL_DEBUGGING
+ void check_coordinates_internal(Index row, Index col) const
+ {
+ check_coordinates(row, col);
+ }
+ #else
+ void check_coordinates_internal(Index , Index ) const {}
+ #endif
+
+};
+
+/** \class TriangularView
+ * \ingroup Core_Module
+ *
+ * \brief Expression of a triangular part in a matrix
+ *
+ * \param MatrixType the type of the object in which we are taking the triangular part
+ * \param Mode the kind of triangular matrix expression to construct. Can be #Upper,
+ * #Lower, #UnitUpper, #UnitLower, #StrictlyUpper, or #StrictlyLower.
+ * This is in fact a bit field; it must have either #Upper or #Lower,
+ * and additionally it may have #UnitDiag or #ZeroDiag or neither.
+ *
+ * This class represents a triangular part of a matrix, not necessarily square. Strictly speaking, for rectangular
+ * matrices one should speak of "trapezoid" parts. This class is the return type
+ * of MatrixBase::triangularView() and SparseMatrixBase::triangularView(), and most of the time this is the only way it is used.
+ *
+ * \sa MatrixBase::triangularView()
+ */
+namespace internal {
+template<typename MatrixType, unsigned int _Mode>
+struct traits<TriangularView<MatrixType, _Mode> > : traits<MatrixType>
+{
+ typedef typename ref_selector<MatrixType>::non_const_type MatrixTypeNested;
+ typedef typename remove_reference<MatrixTypeNested>::type MatrixTypeNestedNonRef;
+ typedef typename remove_all<MatrixTypeNested>::type MatrixTypeNestedCleaned;
+ typedef typename MatrixType::PlainObject FullMatrixType;
+ typedef MatrixType ExpressionType;
+ enum {
+ Mode = _Mode,
+ FlagsLvalueBit = is_lvalue<MatrixType>::value ? LvalueBit : 0,
+ Flags = (MatrixTypeNestedCleaned::Flags & (HereditaryBits | FlagsLvalueBit) & (~(PacketAccessBit | DirectAccessBit | LinearAccessBit)))
+ };
+};
+}
+
+template<typename _MatrixType, unsigned int _Mode, typename StorageKind> class TriangularViewImpl;
+
+template<typename _MatrixType, unsigned int _Mode> class TriangularView
+ : public TriangularViewImpl<_MatrixType, _Mode, typename internal::traits<_MatrixType>::StorageKind >
+{
+ public:
+
+ typedef TriangularViewImpl<_MatrixType, _Mode, typename internal::traits<_MatrixType>::StorageKind > Base;
+ typedef typename internal::traits<TriangularView>::Scalar Scalar;
+ typedef _MatrixType MatrixType;
+
+ protected:
+ typedef typename internal::traits<TriangularView>::MatrixTypeNested MatrixTypeNested;
+ typedef typename internal::traits<TriangularView>::MatrixTypeNestedNonRef MatrixTypeNestedNonRef;
+
+ typedef typename internal::remove_all<typename MatrixType::ConjugateReturnType>::type MatrixConjugateReturnType;
+
+ public:
+
+ typedef typename internal::traits<TriangularView>::StorageKind StorageKind;
+ typedef typename internal::traits<TriangularView>::MatrixTypeNestedCleaned NestedExpression;
+
+ enum {
+ Mode = _Mode,
+ Flags = internal::traits<TriangularView>::Flags,
+ TransposeMode = (Mode & Upper ? Lower : 0)
+ | (Mode & Lower ? Upper : 0)
+ | (Mode & (UnitDiag))
+ | (Mode & (ZeroDiag)),
+ IsVectorAtCompileTime = false
+ };
+
+ EIGEN_DEVICE_FUNC
+ explicit inline TriangularView(MatrixType& matrix) : m_matrix(matrix)
+ {}
+
+ using Base::operator=;
+ TriangularView& operator=(const TriangularView &other)
+ { return Base::operator=(other); }
+
+ /** \copydoc EigenBase::rows() */
+ EIGEN_DEVICE_FUNC
+ inline Index rows() const { return m_matrix.rows(); }
+ /** \copydoc EigenBase::cols() */
+ EIGEN_DEVICE_FUNC
+ inline Index cols() const { return m_matrix.cols(); }
+
+ /** \returns a const reference to the nested expression */
+ EIGEN_DEVICE_FUNC
+ const NestedExpression& nestedExpression() const { return m_matrix; }
+
+ /** \returns a reference to the nested expression */
+ EIGEN_DEVICE_FUNC
+ NestedExpression& nestedExpression() { return m_matrix; }
+
+ typedef TriangularView<const MatrixConjugateReturnType,Mode> ConjugateReturnType;
+ /** \sa MatrixBase::conjugate() const */
+ EIGEN_DEVICE_FUNC
+ inline const ConjugateReturnType conjugate() const
+ { return ConjugateReturnType(m_matrix.conjugate()); }
+
+ typedef TriangularView<const typename MatrixType::AdjointReturnType,TransposeMode> AdjointReturnType;
+ /** \sa MatrixBase::adjoint() const */
+ EIGEN_DEVICE_FUNC
+ inline const AdjointReturnType adjoint() const
+ { return AdjointReturnType(m_matrix.adjoint()); }
+
+ typedef TriangularView<typename MatrixType::TransposeReturnType,TransposeMode> TransposeReturnType;
+ /** \sa MatrixBase::transpose() */
+ EIGEN_DEVICE_FUNC
+ inline TransposeReturnType transpose()
+ {
+ EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
+ typename MatrixType::TransposeReturnType tmp(m_matrix);
+ return TransposeReturnType(tmp);
+ }
+
+ typedef TriangularView<const typename MatrixType::ConstTransposeReturnType,TransposeMode> ConstTransposeReturnType;
+ /** \sa MatrixBase::transpose() const */
+ EIGEN_DEVICE_FUNC
+ inline const ConstTransposeReturnType transpose() const
+ {
+ return ConstTransposeReturnType(m_matrix.transpose());
+ }
+
+ template<typename Other>
+ EIGEN_DEVICE_FUNC
+ inline const Solve<TriangularView, Other>
+ solve(const MatrixBase<Other>& other) const
+ { return Solve<TriangularView, Other>(*this, other.derived()); }
+
+ // workaround MSVC ICE
+ #if EIGEN_COMP_MSVC
+ template<int Side, typename Other>
+ EIGEN_DEVICE_FUNC
+ inline const internal::triangular_solve_retval<Side,TriangularView, Other>
+ solve(const MatrixBase<Other>& other) const
+ { return Base::template solve<Side>(other); }
+ #else
+ using Base::solve;
+ #endif
+
+ /** \returns a selfadjoint view of the referenced triangular part which must be either \c #Upper or \c #Lower.
+ *
+ * This is a shortcut for \code this->nestedExpression().selfadjointView<(*this)::Mode>() \endcode
+ * \sa MatrixBase::selfadjointView() */
+ EIGEN_DEVICE_FUNC
+ SelfAdjointView<MatrixTypeNestedNonRef,Mode> selfadjointView()
+ {
+ EIGEN_STATIC_ASSERT((Mode&(UnitDiag|ZeroDiag))==0,PROGRAMMING_ERROR);
+ return SelfAdjointView<MatrixTypeNestedNonRef,Mode>(m_matrix);
+ }
+
+ /** This is the const version of selfadjointView() */
+ EIGEN_DEVICE_FUNC
+ const SelfAdjointView<MatrixTypeNestedNonRef,Mode> selfadjointView() const
+ {
+ EIGEN_STATIC_ASSERT((Mode&(UnitDiag|ZeroDiag))==0,PROGRAMMING_ERROR);
+ return SelfAdjointView<MatrixTypeNestedNonRef,Mode>(m_matrix);
+ }
+
+
+ /** \returns the determinant of the triangular matrix
+ * \sa MatrixBase::determinant() */
+ EIGEN_DEVICE_FUNC
+ Scalar determinant() const
+ {
+ if (Mode & UnitDiag)
+ return 1;
+ else if (Mode & ZeroDiag)
+ return 0;
+ else
+ return m_matrix.diagonal().prod();
+ }
+
+ protected:
+
+ MatrixTypeNested m_matrix;
+};
+
+/** \ingroup Core_Module
+ *
+ * \brief Base class for a triangular part in a \b dense matrix
+ *
+ * This class is an abstract base class of class TriangularView, and objects of type TriangularViewImpl cannot be instantiated.
+ * It extends class TriangularView with additional methods which available for dense expressions only.
+ *
+ * \sa class TriangularView, MatrixBase::triangularView()
+ */
+template<typename _MatrixType, unsigned int _Mode> class TriangularViewImpl<_MatrixType,_Mode,Dense>
+ : public TriangularBase<TriangularView<_MatrixType, _Mode> >
+{
+ public:
+
+ typedef TriangularView<_MatrixType, _Mode> TriangularViewType;
+ typedef TriangularBase<TriangularViewType> Base;
+ typedef typename internal::traits<TriangularViewType>::Scalar Scalar;
+
+ typedef _MatrixType MatrixType;
+ typedef typename MatrixType::PlainObject DenseMatrixType;
+ typedef DenseMatrixType PlainObject;
+
+ public:
+ using Base::evalToLazy;
+ using Base::derived;
+
+ typedef typename internal::traits<TriangularViewType>::StorageKind StorageKind;
+
+ enum {
+ Mode = _Mode,
+ Flags = internal::traits<TriangularViewType>::Flags
+ };
+
+ /** \returns the outer-stride of the underlying dense matrix
+ * \sa DenseCoeffsBase::outerStride() */
+ EIGEN_DEVICE_FUNC
+ inline Index outerStride() const { return derived().nestedExpression().outerStride(); }
+ /** \returns the inner-stride of the underlying dense matrix
+ * \sa DenseCoeffsBase::innerStride() */
+ EIGEN_DEVICE_FUNC
+ inline Index innerStride() const { return derived().nestedExpression().innerStride(); }
+
+ /** \sa MatrixBase::operator+=() */
+ template<typename Other>
+ EIGEN_DEVICE_FUNC
+ TriangularViewType& operator+=(const DenseBase<Other>& other) {
+ internal::call_assignment_no_alias(derived(), other.derived(), internal::add_assign_op<Scalar,typename Other::Scalar>());
+ return derived();
+ }
+ /** \sa MatrixBase::operator-=() */
+ template<typename Other>
+ EIGEN_DEVICE_FUNC
+ TriangularViewType& operator-=(const DenseBase<Other>& other) {
+ internal::call_assignment_no_alias(derived(), other.derived(), internal::sub_assign_op<Scalar,typename Other::Scalar>());
+ return derived();
+ }
+
+ /** \sa MatrixBase::operator*=() */
+ EIGEN_DEVICE_FUNC
+ TriangularViewType& operator*=(const typename internal::traits<MatrixType>::Scalar& other) { return *this = derived().nestedExpression() * other; }
+ /** \sa DenseBase::operator/=() */
+ EIGEN_DEVICE_FUNC
+ TriangularViewType& operator/=(const typename internal::traits<MatrixType>::Scalar& other) { return *this = derived().nestedExpression() / other; }
+
+ /** \sa MatrixBase::fill() */
+ EIGEN_DEVICE_FUNC
+ void fill(const Scalar& value) { setConstant(value); }
+ /** \sa MatrixBase::setConstant() */
+ EIGEN_DEVICE_FUNC
+ TriangularViewType& setConstant(const Scalar& value)
+ { return *this = MatrixType::Constant(derived().rows(), derived().cols(), value); }
+ /** \sa MatrixBase::setZero() */
+ EIGEN_DEVICE_FUNC
+ TriangularViewType& setZero() { return setConstant(Scalar(0)); }
+ /** \sa MatrixBase::setOnes() */
+ EIGEN_DEVICE_FUNC
+ TriangularViewType& setOnes() { return setConstant(Scalar(1)); }
+
+ /** \sa MatrixBase::coeff()
+ * \warning the coordinates must fit into the referenced triangular part
+ */
+ EIGEN_DEVICE_FUNC
+ inline Scalar coeff(Index row, Index col) const
+ {
+ Base::check_coordinates_internal(row, col);
+ return derived().nestedExpression().coeff(row, col);
+ }
+
+ /** \sa MatrixBase::coeffRef()
+ * \warning the coordinates must fit into the referenced triangular part
+ */
+ EIGEN_DEVICE_FUNC
+ inline Scalar& coeffRef(Index row, Index col)
+ {
+ EIGEN_STATIC_ASSERT_LVALUE(TriangularViewType);
+ Base::check_coordinates_internal(row, col);
+ return derived().nestedExpression().coeffRef(row, col);
+ }
+
+ /** Assigns a triangular matrix to a triangular part of a dense matrix */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ TriangularViewType& operator=(const TriangularBase<OtherDerived>& other);
+
+ /** Shortcut for\code *this = other.other.triangularView<(*this)::Mode>() \endcode */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ TriangularViewType& operator=(const MatrixBase<OtherDerived>& other);
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ EIGEN_DEVICE_FUNC
+ TriangularViewType& operator=(const TriangularViewImpl& other)
+ { return *this = other.derived().nestedExpression(); }
+
+ /** \deprecated */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ void lazyAssign(const TriangularBase<OtherDerived>& other);
+
+ /** \deprecated */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ void lazyAssign(const MatrixBase<OtherDerived>& other);
+#endif
+
+ /** Efficient triangular matrix times vector/matrix product */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ const Product<TriangularViewType,OtherDerived>
+ operator*(const MatrixBase<OtherDerived>& rhs) const
+ {
+ return Product<TriangularViewType,OtherDerived>(derived(), rhs.derived());
+ }
+
+ /** Efficient vector/matrix times triangular matrix product */
+ template<typename OtherDerived> friend
+ EIGEN_DEVICE_FUNC
+ const Product<OtherDerived,TriangularViewType>
+ operator*(const MatrixBase<OtherDerived>& lhs, const TriangularViewImpl& rhs)
+ {
+ return Product<OtherDerived,TriangularViewType>(lhs.derived(),rhs.derived());
+ }
+
+ /** \returns the product of the inverse of \c *this with \a other, \a *this being triangular.
+ *
+ * This function computes the inverse-matrix matrix product inverse(\c *this) * \a other if
+ * \a Side==OnTheLeft (the default), or the right-inverse-multiply \a other * inverse(\c *this) if
+ * \a Side==OnTheRight.
+ *
+ * Note that the template parameter \c Side can be ommitted, in which case \c Side==OnTheLeft
+ *
+ * The matrix \c *this must be triangular and invertible (i.e., all the coefficients of the
+ * diagonal must be non zero). It works as a forward (resp. backward) substitution if \c *this
+ * is an upper (resp. lower) triangular matrix.
+ *
+ * Example: \include Triangular_solve.cpp
+ * Output: \verbinclude Triangular_solve.out
+ *
+ * This function returns an expression of the inverse-multiply and can works in-place if it is assigned
+ * to the same matrix or vector \a other.
+ *
+ * For users coming from BLAS, this function (and more specifically solveInPlace()) offer
+ * all the operations supported by the \c *TRSV and \c *TRSM BLAS routines.
+ *
+ * \sa TriangularView::solveInPlace()
+ */
+ template<int Side, typename Other>
+ EIGEN_DEVICE_FUNC
+ inline const internal::triangular_solve_retval<Side,TriangularViewType, Other>
+ solve(const MatrixBase<Other>& other) const;
+
+ /** "in-place" version of TriangularView::solve() where the result is written in \a other
+ *
+ * \warning The parameter is only marked 'const' to make the C++ compiler accept a temporary expression here.
+ * This function will const_cast it, so constness isn't honored here.
+ *
+ * Note that the template parameter \c Side can be ommitted, in which case \c Side==OnTheLeft
+ *
+ * See TriangularView:solve() for the details.
+ */
+ template<int Side, typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ void solveInPlace(const MatrixBase<OtherDerived>& other) const;
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ void solveInPlace(const MatrixBase<OtherDerived>& other) const
+ { return solveInPlace<OnTheLeft>(other); }
+
+ /** Swaps the coefficients of the common triangular parts of two matrices */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+#ifdef EIGEN_PARSED_BY_DOXYGEN
+ void swap(TriangularBase<OtherDerived> &other)
+#else
+ void swap(TriangularBase<OtherDerived> const & other)
+#endif
+ {
+ EIGEN_STATIC_ASSERT_LVALUE(OtherDerived);
+ call_assignment(derived(), other.const_cast_derived(), internal::swap_assign_op<Scalar>());
+ }
+
+ /** \deprecated
+ * Shortcut for \code (*this).swap(other.triangularView<(*this)::Mode>()) \endcode */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ void swap(MatrixBase<OtherDerived> const & other)
+ {
+ EIGEN_STATIC_ASSERT_LVALUE(OtherDerived);
+ call_assignment(derived(), other.const_cast_derived(), internal::swap_assign_op<Scalar>());
+ }
+
+ template<typename RhsType, typename DstType>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void _solve_impl(const RhsType &rhs, DstType &dst) const {
+ if(!internal::is_same_dense(dst,rhs))
+ dst = rhs;
+ this->solveInPlace(dst);
+ }
+
+ template<typename ProductType>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE TriangularViewType& _assignProduct(const ProductType& prod, const Scalar& alpha, bool beta);
+};
+
+/***************************************************************************
+* Implementation of triangular evaluation/assignment
+***************************************************************************/
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+// FIXME should we keep that possibility
+template<typename MatrixType, unsigned int Mode>
+template<typename OtherDerived>
+inline TriangularView<MatrixType, Mode>&
+TriangularViewImpl<MatrixType, Mode, Dense>::operator=(const MatrixBase<OtherDerived>& other)
+{
+ internal::call_assignment_no_alias(derived(), other.derived(), internal::assign_op<Scalar,typename OtherDerived::Scalar>());
+ return derived();
+}
+
+// FIXME should we keep that possibility
+template<typename MatrixType, unsigned int Mode>
+template<typename OtherDerived>
+void TriangularViewImpl<MatrixType, Mode, Dense>::lazyAssign(const MatrixBase<OtherDerived>& other)
+{
+ internal::call_assignment_no_alias(derived(), other.template triangularView<Mode>());
+}
+
+
+
+template<typename MatrixType, unsigned int Mode>
+template<typename OtherDerived>
+inline TriangularView<MatrixType, Mode>&
+TriangularViewImpl<MatrixType, Mode, Dense>::operator=(const TriangularBase<OtherDerived>& other)
+{
+ eigen_assert(Mode == int(OtherDerived::Mode));
+ internal::call_assignment(derived(), other.derived());
+ return derived();
+}
+
+template<typename MatrixType, unsigned int Mode>
+template<typename OtherDerived>
+void TriangularViewImpl<MatrixType, Mode, Dense>::lazyAssign(const TriangularBase<OtherDerived>& other)
+{
+ eigen_assert(Mode == int(OtherDerived::Mode));
+ internal::call_assignment_no_alias(derived(), other.derived());
+}
+#endif
+
+/***************************************************************************
+* Implementation of TriangularBase methods
+***************************************************************************/
+
+/** Assigns a triangular or selfadjoint matrix to a dense matrix.
+ * If the matrix is triangular, the opposite part is set to zero. */
+template<typename Derived>
+template<typename DenseDerived>
+void TriangularBase<Derived>::evalTo(MatrixBase<DenseDerived> &other) const
+{
+ evalToLazy(other.derived());
+}
+
+/***************************************************************************
+* Implementation of TriangularView methods
+***************************************************************************/
+
+/***************************************************************************
+* Implementation of MatrixBase methods
+***************************************************************************/
+
+/**
+ * \returns an expression of a triangular view extracted from the current matrix
+ *
+ * The parameter \a Mode can have the following values: \c #Upper, \c #StrictlyUpper, \c #UnitUpper,
+ * \c #Lower, \c #StrictlyLower, \c #UnitLower.
+ *
+ * Example: \include MatrixBase_triangularView.cpp
+ * Output: \verbinclude MatrixBase_triangularView.out
+ *
+ * \sa class TriangularView
+ */
+template<typename Derived>
+template<unsigned int Mode>
+typename MatrixBase<Derived>::template TriangularViewReturnType<Mode>::Type
+MatrixBase<Derived>::triangularView()
+{
+ return typename TriangularViewReturnType<Mode>::Type(derived());
+}
+
+/** This is the const version of MatrixBase::triangularView() */
+template<typename Derived>
+template<unsigned int Mode>
+typename MatrixBase<Derived>::template ConstTriangularViewReturnType<Mode>::Type
+MatrixBase<Derived>::triangularView() const
+{
+ return typename ConstTriangularViewReturnType<Mode>::Type(derived());
+}
+
+/** \returns true if *this is approximately equal to an upper triangular matrix,
+ * within the precision given by \a prec.
+ *
+ * \sa isLowerTriangular()
+ */
+template<typename Derived>
+bool MatrixBase<Derived>::isUpperTriangular(const RealScalar& prec) const
+{
+ RealScalar maxAbsOnUpperPart = static_cast<RealScalar>(-1);
+ for(Index j = 0; j < cols(); ++j)
+ {
+ Index maxi = numext::mini(j, rows()-1);
+ for(Index i = 0; i <= maxi; ++i)
+ {
+ RealScalar absValue = numext::abs(coeff(i,j));
+ if(absValue > maxAbsOnUpperPart) maxAbsOnUpperPart = absValue;
+ }
+ }
+ RealScalar threshold = maxAbsOnUpperPart * prec;
+ for(Index j = 0; j < cols(); ++j)
+ for(Index i = j+1; i < rows(); ++i)
+ if(numext::abs(coeff(i, j)) > threshold) return false;
+ return true;
+}
+
+/** \returns true if *this is approximately equal to a lower triangular matrix,
+ * within the precision given by \a prec.
+ *
+ * \sa isUpperTriangular()
+ */
+template<typename Derived>
+bool MatrixBase<Derived>::isLowerTriangular(const RealScalar& prec) const
+{
+ RealScalar maxAbsOnLowerPart = static_cast<RealScalar>(-1);
+ for(Index j = 0; j < cols(); ++j)
+ for(Index i = j; i < rows(); ++i)
+ {
+ RealScalar absValue = numext::abs(coeff(i,j));
+ if(absValue > maxAbsOnLowerPart) maxAbsOnLowerPart = absValue;
+ }
+ RealScalar threshold = maxAbsOnLowerPart * prec;
+ for(Index j = 1; j < cols(); ++j)
+ {
+ Index maxi = numext::mini(j, rows()-1);
+ for(Index i = 0; i < maxi; ++i)
+ if(numext::abs(coeff(i, j)) > threshold) return false;
+ }
+ return true;
+}
+
+
+/***************************************************************************
+****************************************************************************
+* Evaluators and Assignment of triangular expressions
+***************************************************************************
+***************************************************************************/
+
+namespace internal {
+
+
+// TODO currently a triangular expression has the form TriangularView<.,.>
+// in the future triangular-ness should be defined by the expression traits
+// such that Transpose<TriangularView<.,.> > is valid. (currently TriangularBase::transpose() is overloaded to make it work)
+template<typename MatrixType, unsigned int Mode>
+struct evaluator_traits<TriangularView<MatrixType,Mode> >
+{
+ typedef typename storage_kind_to_evaluator_kind<typename MatrixType::StorageKind>::Kind Kind;
+ typedef typename glue_shapes<typename evaluator_traits<MatrixType>::Shape, TriangularShape>::type Shape;
+};
+
+template<typename MatrixType, unsigned int Mode>
+struct unary_evaluator<TriangularView<MatrixType,Mode>, IndexBased>
+ : evaluator<typename internal::remove_all<MatrixType>::type>
+{
+ typedef TriangularView<MatrixType,Mode> XprType;
+ typedef evaluator<typename internal::remove_all<MatrixType>::type> Base;
+ unary_evaluator(const XprType &xpr) : Base(xpr.nestedExpression()) {}
+};
+
+// Additional assignment kinds:
+struct Triangular2Triangular {};
+struct Triangular2Dense {};
+struct Dense2Triangular {};
+
+
+template<typename Kernel, unsigned int Mode, int UnrollCount, bool ClearOpposite> struct triangular_assignment_loop;
+
+
+/** \internal Specialization of the dense assignment kernel for triangular matrices.
+ * The main difference is that the triangular, diagonal, and opposite parts are processed through three different functions.
+ * \tparam UpLo must be either Lower or Upper
+ * \tparam Mode must be either 0, UnitDiag, ZeroDiag, or SelfAdjoint
+ */
+template<int UpLo, int Mode, int SetOpposite, typename DstEvaluatorTypeT, typename SrcEvaluatorTypeT, typename Functor, int Version = Specialized>
+class triangular_dense_assignment_kernel : public generic_dense_assignment_kernel<DstEvaluatorTypeT, SrcEvaluatorTypeT, Functor, Version>
+{
+protected:
+ typedef generic_dense_assignment_kernel<DstEvaluatorTypeT, SrcEvaluatorTypeT, Functor, Version> Base;
+ typedef typename Base::DstXprType DstXprType;
+ typedef typename Base::SrcXprType SrcXprType;
+ using Base::m_dst;
+ using Base::m_src;
+ using Base::m_functor;
+public:
+
+ typedef typename Base::DstEvaluatorType DstEvaluatorType;
+ typedef typename Base::SrcEvaluatorType SrcEvaluatorType;
+ typedef typename Base::Scalar Scalar;
+ typedef typename Base::AssignmentTraits AssignmentTraits;
+
+
+ EIGEN_DEVICE_FUNC triangular_dense_assignment_kernel(DstEvaluatorType &dst, const SrcEvaluatorType &src, const Functor &func, DstXprType& dstExpr)
+ : Base(dst, src, func, dstExpr)
+ {}
+
+#ifdef EIGEN_INTERNAL_DEBUGGING
+ EIGEN_DEVICE_FUNC void assignCoeff(Index row, Index col)
+ {
+ eigen_internal_assert(row!=col);
+ Base::assignCoeff(row,col);
+ }
+#else
+ using Base::assignCoeff;
+#endif
+
+ EIGEN_DEVICE_FUNC void assignDiagonalCoeff(Index id)
+ {
+ if(Mode==UnitDiag && SetOpposite) m_functor.assignCoeff(m_dst.coeffRef(id,id), Scalar(1));
+ else if(Mode==ZeroDiag && SetOpposite) m_functor.assignCoeff(m_dst.coeffRef(id,id), Scalar(0));
+ else if(Mode==0) Base::assignCoeff(id,id);
+ }
+
+ EIGEN_DEVICE_FUNC void assignOppositeCoeff(Index row, Index col)
+ {
+ eigen_internal_assert(row!=col);
+ if(SetOpposite)
+ m_functor.assignCoeff(m_dst.coeffRef(row,col), Scalar(0));
+ }
+};
+
+template<int Mode, bool SetOpposite, typename DstXprType, typename SrcXprType, typename Functor>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+void call_triangular_assignment_loop(DstXprType& dst, const SrcXprType& src, const Functor &func)
+{
+ typedef evaluator<DstXprType> DstEvaluatorType;
+ typedef evaluator<SrcXprType> SrcEvaluatorType;
+
+ SrcEvaluatorType srcEvaluator(src);
+
+ Index dstRows = src.rows();
+ Index dstCols = src.cols();
+ if((dst.rows()!=dstRows) || (dst.cols()!=dstCols))
+ dst.resize(dstRows, dstCols);
+ DstEvaluatorType dstEvaluator(dst);
+
+ typedef triangular_dense_assignment_kernel< Mode&(Lower|Upper),Mode&(UnitDiag|ZeroDiag|SelfAdjoint),SetOpposite,
+ DstEvaluatorType,SrcEvaluatorType,Functor> Kernel;
+ Kernel kernel(dstEvaluator, srcEvaluator, func, dst.const_cast_derived());
+
+ enum {
+ unroll = DstXprType::SizeAtCompileTime != Dynamic
+ && SrcEvaluatorType::CoeffReadCost < HugeCost
+ && DstXprType::SizeAtCompileTime * (DstEvaluatorType::CoeffReadCost+SrcEvaluatorType::CoeffReadCost) / 2 <= EIGEN_UNROLLING_LIMIT
+ };
+
+ triangular_assignment_loop<Kernel, Mode, unroll ? int(DstXprType::SizeAtCompileTime) : Dynamic, SetOpposite>::run(kernel);
+}
+
+template<int Mode, bool SetOpposite, typename DstXprType, typename SrcXprType>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+void call_triangular_assignment_loop(DstXprType& dst, const SrcXprType& src)
+{
+ call_triangular_assignment_loop<Mode,SetOpposite>(dst, src, internal::assign_op<typename DstXprType::Scalar,typename SrcXprType::Scalar>());
+}
+
+template<> struct AssignmentKind<TriangularShape,TriangularShape> { typedef Triangular2Triangular Kind; };
+template<> struct AssignmentKind<DenseShape,TriangularShape> { typedef Triangular2Dense Kind; };
+template<> struct AssignmentKind<TriangularShape,DenseShape> { typedef Dense2Triangular Kind; };
+
+
+template< typename DstXprType, typename SrcXprType, typename Functor>
+struct Assignment<DstXprType, SrcXprType, Functor, Triangular2Triangular>
+{
+ EIGEN_DEVICE_FUNC static void run(DstXprType &dst, const SrcXprType &src, const Functor &func)
+ {
+ eigen_assert(int(DstXprType::Mode) == int(SrcXprType::Mode));
+
+ call_triangular_assignment_loop<DstXprType::Mode, false>(dst, src, func);
+ }
+};
+
+template< typename DstXprType, typename SrcXprType, typename Functor>
+struct Assignment<DstXprType, SrcXprType, Functor, Triangular2Dense>
+{
+ EIGEN_DEVICE_FUNC static void run(DstXprType &dst, const SrcXprType &src, const Functor &func)
+ {
+ call_triangular_assignment_loop<SrcXprType::Mode, (SrcXprType::Mode&SelfAdjoint)==0>(dst, src, func);
+ }
+};
+
+template< typename DstXprType, typename SrcXprType, typename Functor>
+struct Assignment<DstXprType, SrcXprType, Functor, Dense2Triangular>
+{
+ EIGEN_DEVICE_FUNC static void run(DstXprType &dst, const SrcXprType &src, const Functor &func)
+ {
+ call_triangular_assignment_loop<DstXprType::Mode, false>(dst, src, func);
+ }
+};
+
+
+template<typename Kernel, unsigned int Mode, int UnrollCount, bool SetOpposite>
+struct triangular_assignment_loop
+{
+ // FIXME: this is not very clean, perhaps this information should be provided by the kernel?
+ typedef typename Kernel::DstEvaluatorType DstEvaluatorType;
+ typedef typename DstEvaluatorType::XprType DstXprType;
+
+ enum {
+ col = (UnrollCount-1) / DstXprType::RowsAtCompileTime,
+ row = (UnrollCount-1) % DstXprType::RowsAtCompileTime
+ };
+
+ typedef typename Kernel::Scalar Scalar;
+
+ EIGEN_DEVICE_FUNC
+ static inline void run(Kernel &kernel)
+ {
+ triangular_assignment_loop<Kernel, Mode, UnrollCount-1, SetOpposite>::run(kernel);
+
+ if(row==col)
+ kernel.assignDiagonalCoeff(row);
+ else if( ((Mode&Lower) && row>col) || ((Mode&Upper) && row<col) )
+ kernel.assignCoeff(row,col);
+ else if(SetOpposite)
+ kernel.assignOppositeCoeff(row,col);
+ }
+};
+
+// prevent buggy user code from causing an infinite recursion
+template<typename Kernel, unsigned int Mode, bool SetOpposite>
+struct triangular_assignment_loop<Kernel, Mode, 0, SetOpposite>
+{
+ EIGEN_DEVICE_FUNC
+ static inline void run(Kernel &) {}
+};
+
+
+
+// TODO: experiment with a recursive assignment procedure splitting the current
+// triangular part into one rectangular and two triangular parts.
+
+
+template<typename Kernel, unsigned int Mode, bool SetOpposite>
+struct triangular_assignment_loop<Kernel, Mode, Dynamic, SetOpposite>
+{
+ typedef typename Kernel::Scalar Scalar;
+ EIGEN_DEVICE_FUNC
+ static inline void run(Kernel &kernel)
+ {
+ for(Index j = 0; j < kernel.cols(); ++j)
+ {
+ Index maxi = numext::mini(j, kernel.rows());
+ Index i = 0;
+ if (((Mode&Lower) && SetOpposite) || (Mode&Upper))
+ {
+ for(; i < maxi; ++i)
+ if(Mode&Upper) kernel.assignCoeff(i, j);
+ else kernel.assignOppositeCoeff(i, j);
+ }
+ else
+ i = maxi;
+
+ if(i<kernel.rows()) // then i==j
+ kernel.assignDiagonalCoeff(i++);
+
+ if (((Mode&Upper) && SetOpposite) || (Mode&Lower))
+ {
+ for(; i < kernel.rows(); ++i)
+ if(Mode&Lower) kernel.assignCoeff(i, j);
+ else kernel.assignOppositeCoeff(i, j);
+ }
+ }
+ }
+};
+
+} // end namespace internal
+
+/** Assigns a triangular or selfadjoint matrix to a dense matrix.
+ * If the matrix is triangular, the opposite part is set to zero. */
+template<typename Derived>
+template<typename DenseDerived>
+void TriangularBase<Derived>::evalToLazy(MatrixBase<DenseDerived> &other) const
+{
+ other.derived().resize(this->rows(), this->cols());
+ internal::call_triangular_assignment_loop<Derived::Mode,(Derived::Mode&SelfAdjoint)==0 /* SetOpposite */>(other.derived(), derived().nestedExpression());
+}
+
+namespace internal {
+
+// Triangular = Product
+template< typename DstXprType, typename Lhs, typename Rhs, typename Scalar>
+struct Assignment<DstXprType, Product<Lhs,Rhs,DefaultProduct>, internal::assign_op<Scalar,typename Product<Lhs,Rhs,DefaultProduct>::Scalar>, Dense2Triangular>
+{
+ typedef Product<Lhs,Rhs,DefaultProduct> SrcXprType;
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<Scalar,typename SrcXprType::Scalar> &)
+ {
+ Index dstRows = src.rows();
+ Index dstCols = src.cols();
+ if((dst.rows()!=dstRows) || (dst.cols()!=dstCols))
+ dst.resize(dstRows, dstCols);
+
+ dst._assignProduct(src, 1, 0);
+ }
+};
+
+// Triangular += Product
+template< typename DstXprType, typename Lhs, typename Rhs, typename Scalar>
+struct Assignment<DstXprType, Product<Lhs,Rhs,DefaultProduct>, internal::add_assign_op<Scalar,typename Product<Lhs,Rhs,DefaultProduct>::Scalar>, Dense2Triangular>
+{
+ typedef Product<Lhs,Rhs,DefaultProduct> SrcXprType;
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::add_assign_op<Scalar,typename SrcXprType::Scalar> &)
+ {
+ dst._assignProduct(src, 1, 1);
+ }
+};
+
+// Triangular -= Product
+template< typename DstXprType, typename Lhs, typename Rhs, typename Scalar>
+struct Assignment<DstXprType, Product<Lhs,Rhs,DefaultProduct>, internal::sub_assign_op<Scalar,typename Product<Lhs,Rhs,DefaultProduct>::Scalar>, Dense2Triangular>
+{
+ typedef Product<Lhs,Rhs,DefaultProduct> SrcXprType;
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::sub_assign_op<Scalar,typename SrcXprType::Scalar> &)
+ {
+ dst._assignProduct(src, -1, 1);
+ }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIANGULARMATRIX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/VectorBlock.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/VectorBlock.h
new file mode 100644
index 000000000..d72fbf7e9
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/VectorBlock.h
@@ -0,0 +1,96 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_VECTORBLOCK_H
+#define EIGEN_VECTORBLOCK_H
+
+namespace Eigen {
+
+namespace internal {
+template<typename VectorType, int Size>
+struct traits<VectorBlock<VectorType, Size> >
+ : public traits<Block<VectorType,
+ traits<VectorType>::Flags & RowMajorBit ? 1 : Size,
+ traits<VectorType>::Flags & RowMajorBit ? Size : 1> >
+{
+};
+}
+
+/** \class VectorBlock
+ * \ingroup Core_Module
+ *
+ * \brief Expression of a fixed-size or dynamic-size sub-vector
+ *
+ * \tparam VectorType the type of the object in which we are taking a sub-vector
+ * \tparam Size size of the sub-vector we are taking at compile time (optional)
+ *
+ * This class represents an expression of either a fixed-size or dynamic-size sub-vector.
+ * It is the return type of DenseBase::segment(Index,Index) and DenseBase::segment<int>(Index) and
+ * most of the time this is the only way it is used.
+ *
+ * However, if you want to directly maniputate sub-vector expressions,
+ * for instance if you want to write a function returning such an expression, you
+ * will need to use this class.
+ *
+ * Here is an example illustrating the dynamic case:
+ * \include class_VectorBlock.cpp
+ * Output: \verbinclude class_VectorBlock.out
+ *
+ * \note Even though this expression has dynamic size, in the case where \a VectorType
+ * has fixed size, this expression inherits a fixed maximal size which means that evaluating
+ * it does not cause a dynamic memory allocation.
+ *
+ * Here is an example illustrating the fixed-size case:
+ * \include class_FixedVectorBlock.cpp
+ * Output: \verbinclude class_FixedVectorBlock.out
+ *
+ * \sa class Block, DenseBase::segment(Index,Index,Index,Index), DenseBase::segment(Index,Index)
+ */
+template<typename VectorType, int Size> class VectorBlock
+ : public Block<VectorType,
+ internal::traits<VectorType>::Flags & RowMajorBit ? 1 : Size,
+ internal::traits<VectorType>::Flags & RowMajorBit ? Size : 1>
+{
+ typedef Block<VectorType,
+ internal::traits<VectorType>::Flags & RowMajorBit ? 1 : Size,
+ internal::traits<VectorType>::Flags & RowMajorBit ? Size : 1> Base;
+ enum {
+ IsColVector = !(internal::traits<VectorType>::Flags & RowMajorBit)
+ };
+ public:
+ EIGEN_DENSE_PUBLIC_INTERFACE(VectorBlock)
+
+ using Base::operator=;
+
+ /** Dynamic-size constructor
+ */
+ EIGEN_DEVICE_FUNC
+ inline VectorBlock(VectorType& vector, Index start, Index size)
+ : Base(vector,
+ IsColVector ? start : 0, IsColVector ? 0 : start,
+ IsColVector ? size : 1, IsColVector ? 1 : size)
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(VectorBlock);
+ }
+
+ /** Fixed-size constructor
+ */
+ EIGEN_DEVICE_FUNC
+ inline VectorBlock(VectorType& vector, Index start)
+ : Base(vector, IsColVector ? start : 0, IsColVector ? 0 : start)
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(VectorBlock);
+ }
+};
+
+
+} // end namespace Eigen
+
+#endif // EIGEN_VECTORBLOCK_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/VectorwiseOp.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/VectorwiseOp.h
new file mode 100644
index 000000000..4fe267e9f
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/VectorwiseOp.h
@@ -0,0 +1,695 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PARTIAL_REDUX_H
+#define EIGEN_PARTIAL_REDUX_H
+
+namespace Eigen {
+
+/** \class PartialReduxExpr
+ * \ingroup Core_Module
+ *
+ * \brief Generic expression of a partially reduxed matrix
+ *
+ * \tparam MatrixType the type of the matrix we are applying the redux operation
+ * \tparam MemberOp type of the member functor
+ * \tparam Direction indicates the direction of the redux (#Vertical or #Horizontal)
+ *
+ * This class represents an expression of a partial redux operator of a matrix.
+ * It is the return type of some VectorwiseOp functions,
+ * and most of the time this is the only way it is used.
+ *
+ * \sa class VectorwiseOp
+ */
+
+template< typename MatrixType, typename MemberOp, int Direction>
+class PartialReduxExpr;
+
+namespace internal {
+template<typename MatrixType, typename MemberOp, int Direction>
+struct traits<PartialReduxExpr<MatrixType, MemberOp, Direction> >
+ : traits<MatrixType>
+{
+ typedef typename MemberOp::result_type Scalar;
+ typedef typename traits<MatrixType>::StorageKind StorageKind;
+ typedef typename traits<MatrixType>::XprKind XprKind;
+ typedef typename MatrixType::Scalar InputScalar;
+ enum {
+ RowsAtCompileTime = Direction==Vertical ? 1 : MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = Direction==Horizontal ? 1 : MatrixType::ColsAtCompileTime,
+ MaxRowsAtCompileTime = Direction==Vertical ? 1 : MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = Direction==Horizontal ? 1 : MatrixType::MaxColsAtCompileTime,
+ Flags = RowsAtCompileTime == 1 ? RowMajorBit : 0,
+ TraversalSize = Direction==Vertical ? MatrixType::RowsAtCompileTime : MatrixType::ColsAtCompileTime
+ };
+};
+}
+
+template< typename MatrixType, typename MemberOp, int Direction>
+class PartialReduxExpr : public internal::dense_xpr_base< PartialReduxExpr<MatrixType, MemberOp, Direction> >::type,
+ internal::no_assignment_operator
+{
+ public:
+
+ typedef typename internal::dense_xpr_base<PartialReduxExpr>::type Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(PartialReduxExpr)
+
+ EIGEN_DEVICE_FUNC
+ explicit PartialReduxExpr(const MatrixType& mat, const MemberOp& func = MemberOp())
+ : m_matrix(mat), m_functor(func) {}
+
+ EIGEN_DEVICE_FUNC
+ Index rows() const { return (Direction==Vertical ? 1 : m_matrix.rows()); }
+ EIGEN_DEVICE_FUNC
+ Index cols() const { return (Direction==Horizontal ? 1 : m_matrix.cols()); }
+
+ EIGEN_DEVICE_FUNC
+ typename MatrixType::Nested nestedExpression() const { return m_matrix; }
+
+ EIGEN_DEVICE_FUNC
+ const MemberOp& functor() const { return m_functor; }
+
+ protected:
+ typename MatrixType::Nested m_matrix;
+ const MemberOp m_functor;
+};
+
+#define EIGEN_MEMBER_FUNCTOR(MEMBER,COST) \
+ template <typename ResultType> \
+ struct member_##MEMBER { \
+ EIGEN_EMPTY_STRUCT_CTOR(member_##MEMBER) \
+ typedef ResultType result_type; \
+ template<typename Scalar, int Size> struct Cost \
+ { enum { value = COST }; }; \
+ template<typename XprType> \
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE \
+ ResultType operator()(const XprType& mat) const \
+ { return mat.MEMBER(); } \
+ }
+
+namespace internal {
+
+EIGEN_MEMBER_FUNCTOR(squaredNorm, Size * NumTraits<Scalar>::MulCost + (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(norm, (Size+5) * NumTraits<Scalar>::MulCost + (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(stableNorm, (Size+5) * NumTraits<Scalar>::MulCost + (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(blueNorm, (Size+5) * NumTraits<Scalar>::MulCost + (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(hypotNorm, (Size-1) * functor_traits<scalar_hypot_op<Scalar> >::Cost );
+EIGEN_MEMBER_FUNCTOR(sum, (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(mean, (Size-1)*NumTraits<Scalar>::AddCost + NumTraits<Scalar>::MulCost);
+EIGEN_MEMBER_FUNCTOR(minCoeff, (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(maxCoeff, (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(all, (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(any, (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(count, (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(prod, (Size-1)*NumTraits<Scalar>::MulCost);
+
+template <int p, typename ResultType>
+struct member_lpnorm {
+ typedef ResultType result_type;
+ template<typename Scalar, int Size> struct Cost
+ { enum { value = (Size+5) * NumTraits<Scalar>::MulCost + (Size-1)*NumTraits<Scalar>::AddCost }; };
+ EIGEN_DEVICE_FUNC member_lpnorm() {}
+ template<typename XprType>
+ EIGEN_DEVICE_FUNC inline ResultType operator()(const XprType& mat) const
+ { return mat.template lpNorm<p>(); }
+};
+
+template <typename BinaryOp, typename Scalar>
+struct member_redux {
+ typedef typename result_of<
+ BinaryOp(const Scalar&,const Scalar&)
+ >::type result_type;
+ template<typename _Scalar, int Size> struct Cost
+ { enum { value = (Size-1) * functor_traits<BinaryOp>::Cost }; };
+ EIGEN_DEVICE_FUNC explicit member_redux(const BinaryOp func) : m_functor(func) {}
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC inline result_type operator()(const DenseBase<Derived>& mat) const
+ { return mat.redux(m_functor); }
+ const BinaryOp m_functor;
+};
+}
+
+/** \class VectorwiseOp
+ * \ingroup Core_Module
+ *
+ * \brief Pseudo expression providing partial reduction operations
+ *
+ * \tparam ExpressionType the type of the object on which to do partial reductions
+ * \tparam Direction indicates the direction of the redux (#Vertical or #Horizontal)
+ *
+ * This class represents a pseudo expression with partial reduction features.
+ * It is the return type of DenseBase::colwise() and DenseBase::rowwise()
+ * and most of the time this is the only way it is used.
+ *
+ * Example: \include MatrixBase_colwise.cpp
+ * Output: \verbinclude MatrixBase_colwise.out
+ *
+ * \sa DenseBase::colwise(), DenseBase::rowwise(), class PartialReduxExpr
+ */
+template<typename ExpressionType, int Direction> class VectorwiseOp
+{
+ public:
+
+ typedef typename ExpressionType::Scalar Scalar;
+ typedef typename ExpressionType::RealScalar RealScalar;
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
+ typedef typename internal::ref_selector<ExpressionType>::non_const_type ExpressionTypeNested;
+ typedef typename internal::remove_all<ExpressionTypeNested>::type ExpressionTypeNestedCleaned;
+
+ template<template<typename _Scalar> class Functor,
+ typename Scalar_=Scalar> struct ReturnType
+ {
+ typedef PartialReduxExpr<ExpressionType,
+ Functor<Scalar_>,
+ Direction
+ > Type;
+ };
+
+ template<typename BinaryOp> struct ReduxReturnType
+ {
+ typedef PartialReduxExpr<ExpressionType,
+ internal::member_redux<BinaryOp,Scalar>,
+ Direction
+ > Type;
+ };
+
+ enum {
+ isVertical = (Direction==Vertical) ? 1 : 0,
+ isHorizontal = (Direction==Horizontal) ? 1 : 0
+ };
+
+ protected:
+
+ typedef typename internal::conditional<isVertical,
+ typename ExpressionType::ColXpr,
+ typename ExpressionType::RowXpr>::type SubVector;
+ /** \internal
+ * \returns the i-th subvector according to the \c Direction */
+ EIGEN_DEVICE_FUNC
+ SubVector subVector(Index i)
+ {
+ return SubVector(m_matrix.derived(),i);
+ }
+
+ /** \internal
+ * \returns the number of subvectors in the direction \c Direction */
+ EIGEN_DEVICE_FUNC
+ Index subVectors() const
+ { return isVertical?m_matrix.cols():m_matrix.rows(); }
+
+ template<typename OtherDerived> struct ExtendedType {
+ typedef Replicate<OtherDerived,
+ isVertical ? 1 : ExpressionType::RowsAtCompileTime,
+ isHorizontal ? 1 : ExpressionType::ColsAtCompileTime> Type;
+ };
+
+ /** \internal
+ * Replicates a vector to match the size of \c *this */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ typename ExtendedType<OtherDerived>::Type
+ extendedTo(const DenseBase<OtherDerived>& other) const
+ {
+ EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(isVertical, OtherDerived::MaxColsAtCompileTime==1),
+ YOU_PASSED_A_ROW_VECTOR_BUT_A_COLUMN_VECTOR_WAS_EXPECTED)
+ EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(isHorizontal, OtherDerived::MaxRowsAtCompileTime==1),
+ YOU_PASSED_A_COLUMN_VECTOR_BUT_A_ROW_VECTOR_WAS_EXPECTED)
+ return typename ExtendedType<OtherDerived>::Type
+ (other.derived(),
+ isVertical ? 1 : m_matrix.rows(),
+ isHorizontal ? 1 : m_matrix.cols());
+ }
+
+ template<typename OtherDerived> struct OppositeExtendedType {
+ typedef Replicate<OtherDerived,
+ isHorizontal ? 1 : ExpressionType::RowsAtCompileTime,
+ isVertical ? 1 : ExpressionType::ColsAtCompileTime> Type;
+ };
+
+ /** \internal
+ * Replicates a vector in the opposite direction to match the size of \c *this */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ typename OppositeExtendedType<OtherDerived>::Type
+ extendedToOpposite(const DenseBase<OtherDerived>& other) const
+ {
+ EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(isHorizontal, OtherDerived::MaxColsAtCompileTime==1),
+ YOU_PASSED_A_ROW_VECTOR_BUT_A_COLUMN_VECTOR_WAS_EXPECTED)
+ EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(isVertical, OtherDerived::MaxRowsAtCompileTime==1),
+ YOU_PASSED_A_COLUMN_VECTOR_BUT_A_ROW_VECTOR_WAS_EXPECTED)
+ return typename OppositeExtendedType<OtherDerived>::Type
+ (other.derived(),
+ isHorizontal ? 1 : m_matrix.rows(),
+ isVertical ? 1 : m_matrix.cols());
+ }
+
+ public:
+ EIGEN_DEVICE_FUNC
+ explicit inline VectorwiseOp(ExpressionType& matrix) : m_matrix(matrix) {}
+
+ /** \internal */
+ EIGEN_DEVICE_FUNC
+ inline const ExpressionType& _expression() const { return m_matrix; }
+
+ /** \returns a row or column vector expression of \c *this reduxed by \a func
+ *
+ * The template parameter \a BinaryOp is the type of the functor
+ * of the custom redux operator. Note that func must be an associative operator.
+ *
+ * \sa class VectorwiseOp, DenseBase::colwise(), DenseBase::rowwise()
+ */
+ template<typename BinaryOp>
+ EIGEN_DEVICE_FUNC
+ const typename ReduxReturnType<BinaryOp>::Type
+ redux(const BinaryOp& func = BinaryOp()) const
+ { return typename ReduxReturnType<BinaryOp>::Type(_expression(), internal::member_redux<BinaryOp,Scalar>(func)); }
+
+ typedef typename ReturnType<internal::member_minCoeff>::Type MinCoeffReturnType;
+ typedef typename ReturnType<internal::member_maxCoeff>::Type MaxCoeffReturnType;
+ typedef typename ReturnType<internal::member_squaredNorm,RealScalar>::Type SquaredNormReturnType;
+ typedef typename ReturnType<internal::member_norm,RealScalar>::Type NormReturnType;
+ typedef typename ReturnType<internal::member_blueNorm,RealScalar>::Type BlueNormReturnType;
+ typedef typename ReturnType<internal::member_stableNorm,RealScalar>::Type StableNormReturnType;
+ typedef typename ReturnType<internal::member_hypotNorm,RealScalar>::Type HypotNormReturnType;
+ typedef typename ReturnType<internal::member_sum>::Type SumReturnType;
+ typedef typename ReturnType<internal::member_mean>::Type MeanReturnType;
+ typedef typename ReturnType<internal::member_all>::Type AllReturnType;
+ typedef typename ReturnType<internal::member_any>::Type AnyReturnType;
+ typedef PartialReduxExpr<ExpressionType, internal::member_count<Index>, Direction> CountReturnType;
+ typedef typename ReturnType<internal::member_prod>::Type ProdReturnType;
+ typedef Reverse<const ExpressionType, Direction> ConstReverseReturnType;
+ typedef Reverse<ExpressionType, Direction> ReverseReturnType;
+
+ template<int p> struct LpNormReturnType {
+ typedef PartialReduxExpr<ExpressionType, internal::member_lpnorm<p,RealScalar>,Direction> Type;
+ };
+
+ /** \returns a row (or column) vector expression of the smallest coefficient
+ * of each column (or row) of the referenced expression.
+ *
+ * \warning the result is undefined if \c *this contains NaN.
+ *
+ * Example: \include PartialRedux_minCoeff.cpp
+ * Output: \verbinclude PartialRedux_minCoeff.out
+ *
+ * \sa DenseBase::minCoeff() */
+ EIGEN_DEVICE_FUNC
+ const MinCoeffReturnType minCoeff() const
+ { return MinCoeffReturnType(_expression()); }
+
+ /** \returns a row (or column) vector expression of the largest coefficient
+ * of each column (or row) of the referenced expression.
+ *
+ * \warning the result is undefined if \c *this contains NaN.
+ *
+ * Example: \include PartialRedux_maxCoeff.cpp
+ * Output: \verbinclude PartialRedux_maxCoeff.out
+ *
+ * \sa DenseBase::maxCoeff() */
+ EIGEN_DEVICE_FUNC
+ const MaxCoeffReturnType maxCoeff() const
+ { return MaxCoeffReturnType(_expression()); }
+
+ /** \returns a row (or column) vector expression of the squared norm
+ * of each column (or row) of the referenced expression.
+ * This is a vector with real entries, even if the original matrix has complex entries.
+ *
+ * Example: \include PartialRedux_squaredNorm.cpp
+ * Output: \verbinclude PartialRedux_squaredNorm.out
+ *
+ * \sa DenseBase::squaredNorm() */
+ EIGEN_DEVICE_FUNC
+ const SquaredNormReturnType squaredNorm() const
+ { return SquaredNormReturnType(_expression()); }
+
+ /** \returns a row (or column) vector expression of the norm
+ * of each column (or row) of the referenced expression.
+ * This is a vector with real entries, even if the original matrix has complex entries.
+ *
+ * Example: \include PartialRedux_norm.cpp
+ * Output: \verbinclude PartialRedux_norm.out
+ *
+ * \sa DenseBase::norm() */
+ EIGEN_DEVICE_FUNC
+ const NormReturnType norm() const
+ { return NormReturnType(_expression()); }
+
+ /** \returns a row (or column) vector expression of the norm
+ * of each column (or row) of the referenced expression.
+ * This is a vector with real entries, even if the original matrix has complex entries.
+ *
+ * Example: \include PartialRedux_norm.cpp
+ * Output: \verbinclude PartialRedux_norm.out
+ *
+ * \sa DenseBase::norm() */
+ template<int p>
+ EIGEN_DEVICE_FUNC
+ const typename LpNormReturnType<p>::Type lpNorm() const
+ { return typename LpNormReturnType<p>::Type(_expression()); }
+
+
+ /** \returns a row (or column) vector expression of the norm
+ * of each column (or row) of the referenced expression, using
+ * Blue's algorithm.
+ * This is a vector with real entries, even if the original matrix has complex entries.
+ *
+ * \sa DenseBase::blueNorm() */
+ EIGEN_DEVICE_FUNC
+ const BlueNormReturnType blueNorm() const
+ { return BlueNormReturnType(_expression()); }
+
+
+ /** \returns a row (or column) vector expression of the norm
+ * of each column (or row) of the referenced expression, avoiding
+ * underflow and overflow.
+ * This is a vector with real entries, even if the original matrix has complex entries.
+ *
+ * \sa DenseBase::stableNorm() */
+ EIGEN_DEVICE_FUNC
+ const StableNormReturnType stableNorm() const
+ { return StableNormReturnType(_expression()); }
+
+
+ /** \returns a row (or column) vector expression of the norm
+ * of each column (or row) of the referenced expression, avoiding
+ * underflow and overflow using a concatenation of hypot() calls.
+ * This is a vector with real entries, even if the original matrix has complex entries.
+ *
+ * \sa DenseBase::hypotNorm() */
+ EIGEN_DEVICE_FUNC
+ const HypotNormReturnType hypotNorm() const
+ { return HypotNormReturnType(_expression()); }
+
+ /** \returns a row (or column) vector expression of the sum
+ * of each column (or row) of the referenced expression.
+ *
+ * Example: \include PartialRedux_sum.cpp
+ * Output: \verbinclude PartialRedux_sum.out
+ *
+ * \sa DenseBase::sum() */
+ EIGEN_DEVICE_FUNC
+ const SumReturnType sum() const
+ { return SumReturnType(_expression()); }
+
+ /** \returns a row (or column) vector expression of the mean
+ * of each column (or row) of the referenced expression.
+ *
+ * \sa DenseBase::mean() */
+ EIGEN_DEVICE_FUNC
+ const MeanReturnType mean() const
+ { return MeanReturnType(_expression()); }
+
+ /** \returns a row (or column) vector expression representing
+ * whether \b all coefficients of each respective column (or row) are \c true.
+ * This expression can be assigned to a vector with entries of type \c bool.
+ *
+ * \sa DenseBase::all() */
+ EIGEN_DEVICE_FUNC
+ const AllReturnType all() const
+ { return AllReturnType(_expression()); }
+
+ /** \returns a row (or column) vector expression representing
+ * whether \b at \b least one coefficient of each respective column (or row) is \c true.
+ * This expression can be assigned to a vector with entries of type \c bool.
+ *
+ * \sa DenseBase::any() */
+ EIGEN_DEVICE_FUNC
+ const AnyReturnType any() const
+ { return AnyReturnType(_expression()); }
+
+ /** \returns a row (or column) vector expression representing
+ * the number of \c true coefficients of each respective column (or row).
+ * This expression can be assigned to a vector whose entries have the same type as is used to
+ * index entries of the original matrix; for dense matrices, this is \c std::ptrdiff_t .
+ *
+ * Example: \include PartialRedux_count.cpp
+ * Output: \verbinclude PartialRedux_count.out
+ *
+ * \sa DenseBase::count() */
+ EIGEN_DEVICE_FUNC
+ const CountReturnType count() const
+ { return CountReturnType(_expression()); }
+
+ /** \returns a row (or column) vector expression of the product
+ * of each column (or row) of the referenced expression.
+ *
+ * Example: \include PartialRedux_prod.cpp
+ * Output: \verbinclude PartialRedux_prod.out
+ *
+ * \sa DenseBase::prod() */
+ EIGEN_DEVICE_FUNC
+ const ProdReturnType prod() const
+ { return ProdReturnType(_expression()); }
+
+
+ /** \returns a matrix expression
+ * where each column (or row) are reversed.
+ *
+ * Example: \include Vectorwise_reverse.cpp
+ * Output: \verbinclude Vectorwise_reverse.out
+ *
+ * \sa DenseBase::reverse() */
+ EIGEN_DEVICE_FUNC
+ const ConstReverseReturnType reverse() const
+ { return ConstReverseReturnType( _expression() ); }
+
+ /** \returns a writable matrix expression
+ * where each column (or row) are reversed.
+ *
+ * \sa reverse() const */
+ EIGEN_DEVICE_FUNC
+ ReverseReturnType reverse()
+ { return ReverseReturnType( _expression() ); }
+
+ typedef Replicate<ExpressionType,(isVertical?Dynamic:1),(isHorizontal?Dynamic:1)> ReplicateReturnType;
+ EIGEN_DEVICE_FUNC
+ const ReplicateReturnType replicate(Index factor) const;
+
+ /**
+ * \return an expression of the replication of each column (or row) of \c *this
+ *
+ * Example: \include DirectionWise_replicate.cpp
+ * Output: \verbinclude DirectionWise_replicate.out
+ *
+ * \sa VectorwiseOp::replicate(Index), DenseBase::replicate(), class Replicate
+ */
+ // NOTE implemented here because of sunstudio's compilation errors
+ // isVertical*Factor+isHorizontal instead of (isVertical?Factor:1) to handle CUDA bug with ternary operator
+ template<int Factor> const Replicate<ExpressionType,isVertical*Factor+isHorizontal,isHorizontal*Factor+isVertical>
+ EIGEN_DEVICE_FUNC
+ replicate(Index factor = Factor) const
+ {
+ return Replicate<ExpressionType,(isVertical?Factor:1),(isHorizontal?Factor:1)>
+ (_expression(),isVertical?factor:1,isHorizontal?factor:1);
+ }
+
+/////////// Artithmetic operators ///////////
+
+ /** Copies the vector \a other to each subvector of \c *this */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ ExpressionType& operator=(const DenseBase<OtherDerived>& other)
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+ EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+ //eigen_assert((m_matrix.isNull()) == (other.isNull())); FIXME
+ return const_cast<ExpressionType&>(m_matrix = extendedTo(other.derived()));
+ }
+
+ /** Adds the vector \a other to each subvector of \c *this */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ ExpressionType& operator+=(const DenseBase<OtherDerived>& other)
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+ EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+ return const_cast<ExpressionType&>(m_matrix += extendedTo(other.derived()));
+ }
+
+ /** Substracts the vector \a other to each subvector of \c *this */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ ExpressionType& operator-=(const DenseBase<OtherDerived>& other)
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+ EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+ return const_cast<ExpressionType&>(m_matrix -= extendedTo(other.derived()));
+ }
+
+ /** Multiples each subvector of \c *this by the vector \a other */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ ExpressionType& operator*=(const DenseBase<OtherDerived>& other)
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+ EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
+ EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+ m_matrix *= extendedTo(other.derived());
+ return const_cast<ExpressionType&>(m_matrix);
+ }
+
+ /** Divides each subvector of \c *this by the vector \a other */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ ExpressionType& operator/=(const DenseBase<OtherDerived>& other)
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+ EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
+ EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+ m_matrix /= extendedTo(other.derived());
+ return const_cast<ExpressionType&>(m_matrix);
+ }
+
+ /** Returns the expression of the sum of the vector \a other to each subvector of \c *this */
+ template<typename OtherDerived> EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC
+ CwiseBinaryOp<internal::scalar_sum_op<Scalar,typename OtherDerived::Scalar>,
+ const ExpressionTypeNestedCleaned,
+ const typename ExtendedType<OtherDerived>::Type>
+ operator+(const DenseBase<OtherDerived>& other) const
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+ EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+ return m_matrix + extendedTo(other.derived());
+ }
+
+ /** Returns the expression of the difference between each subvector of \c *this and the vector \a other */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ CwiseBinaryOp<internal::scalar_difference_op<Scalar,typename OtherDerived::Scalar>,
+ const ExpressionTypeNestedCleaned,
+ const typename ExtendedType<OtherDerived>::Type>
+ operator-(const DenseBase<OtherDerived>& other) const
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+ EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+ return m_matrix - extendedTo(other.derived());
+ }
+
+ /** Returns the expression where each subvector is the product of the vector \a other
+ * by the corresponding subvector of \c *this */
+ template<typename OtherDerived> EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC
+ CwiseBinaryOp<internal::scalar_product_op<Scalar>,
+ const ExpressionTypeNestedCleaned,
+ const typename ExtendedType<OtherDerived>::Type>
+ EIGEN_DEVICE_FUNC
+ operator*(const DenseBase<OtherDerived>& other) const
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+ EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
+ EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+ return m_matrix * extendedTo(other.derived());
+ }
+
+ /** Returns the expression where each subvector is the quotient of the corresponding
+ * subvector of \c *this by the vector \a other */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ CwiseBinaryOp<internal::scalar_quotient_op<Scalar>,
+ const ExpressionTypeNestedCleaned,
+ const typename ExtendedType<OtherDerived>::Type>
+ operator/(const DenseBase<OtherDerived>& other) const
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+ EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
+ EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+ return m_matrix / extendedTo(other.derived());
+ }
+
+ /** \returns an expression where each column (or row) of the referenced matrix are normalized.
+ * The referenced matrix is \b not modified.
+ * \sa MatrixBase::normalized(), normalize()
+ */
+ EIGEN_DEVICE_FUNC
+ CwiseBinaryOp<internal::scalar_quotient_op<Scalar>,
+ const ExpressionTypeNestedCleaned,
+ const typename OppositeExtendedType<typename ReturnType<internal::member_norm,RealScalar>::Type>::Type>
+ normalized() const { return m_matrix.cwiseQuotient(extendedToOpposite(this->norm())); }
+
+
+ /** Normalize in-place each row or columns of the referenced matrix.
+ * \sa MatrixBase::normalize(), normalized()
+ */
+ EIGEN_DEVICE_FUNC void normalize() {
+ m_matrix = this->normalized();
+ }
+
+ EIGEN_DEVICE_FUNC inline void reverseInPlace();
+
+/////////// Geometry module ///////////
+
+ typedef Homogeneous<ExpressionType,Direction> HomogeneousReturnType;
+ EIGEN_DEVICE_FUNC
+ HomogeneousReturnType homogeneous() const;
+
+ typedef typename ExpressionType::PlainObject CrossReturnType;
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ const CrossReturnType cross(const MatrixBase<OtherDerived>& other) const;
+
+ enum {
+ HNormalized_Size = Direction==Vertical ? internal::traits<ExpressionType>::RowsAtCompileTime
+ : internal::traits<ExpressionType>::ColsAtCompileTime,
+ HNormalized_SizeMinusOne = HNormalized_Size==Dynamic ? Dynamic : HNormalized_Size-1
+ };
+ typedef Block<const ExpressionType,
+ Direction==Vertical ? int(HNormalized_SizeMinusOne)
+ : int(internal::traits<ExpressionType>::RowsAtCompileTime),
+ Direction==Horizontal ? int(HNormalized_SizeMinusOne)
+ : int(internal::traits<ExpressionType>::ColsAtCompileTime)>
+ HNormalized_Block;
+ typedef Block<const ExpressionType,
+ Direction==Vertical ? 1 : int(internal::traits<ExpressionType>::RowsAtCompileTime),
+ Direction==Horizontal ? 1 : int(internal::traits<ExpressionType>::ColsAtCompileTime)>
+ HNormalized_Factors;
+ typedef CwiseBinaryOp<internal::scalar_quotient_op<typename internal::traits<ExpressionType>::Scalar>,
+ const HNormalized_Block,
+ const Replicate<HNormalized_Factors,
+ Direction==Vertical ? HNormalized_SizeMinusOne : 1,
+ Direction==Horizontal ? HNormalized_SizeMinusOne : 1> >
+ HNormalizedReturnType;
+
+ EIGEN_DEVICE_FUNC
+ const HNormalizedReturnType hnormalized() const;
+
+ protected:
+ ExpressionTypeNested m_matrix;
+};
+
+//const colwise moved to DenseBase.h due to CUDA compiler bug
+
+
+/** \returns a writable VectorwiseOp wrapper of *this providing additional partial reduction operations
+ *
+ * \sa rowwise(), class VectorwiseOp, \ref TutorialReductionsVisitorsBroadcasting
+ */
+template<typename Derived>
+inline typename DenseBase<Derived>::ColwiseReturnType
+DenseBase<Derived>::colwise()
+{
+ return ColwiseReturnType(derived());
+}
+
+//const rowwise moved to DenseBase.h due to CUDA compiler bug
+
+
+/** \returns a writable VectorwiseOp wrapper of *this providing additional partial reduction operations
+ *
+ * \sa colwise(), class VectorwiseOp, \ref TutorialReductionsVisitorsBroadcasting
+ */
+template<typename Derived>
+inline typename DenseBase<Derived>::RowwiseReturnType
+DenseBase<Derived>::rowwise()
+{
+ return RowwiseReturnType(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_PARTIAL_REDUX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/Visitor.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Visitor.h
new file mode 100644
index 000000000..54c1883d9
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/Visitor.h
@@ -0,0 +1,273 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_VISITOR_H
+#define EIGEN_VISITOR_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename Visitor, typename Derived, int UnrollCount>
+struct visitor_impl
+{
+ enum {
+ col = (UnrollCount-1) / Derived::RowsAtCompileTime,
+ row = (UnrollCount-1) % Derived::RowsAtCompileTime
+ };
+
+ EIGEN_DEVICE_FUNC
+ static inline void run(const Derived &mat, Visitor& visitor)
+ {
+ visitor_impl<Visitor, Derived, UnrollCount-1>::run(mat, visitor);
+ visitor(mat.coeff(row, col), row, col);
+ }
+};
+
+template<typename Visitor, typename Derived>
+struct visitor_impl<Visitor, Derived, 1>
+{
+ EIGEN_DEVICE_FUNC
+ static inline void run(const Derived &mat, Visitor& visitor)
+ {
+ return visitor.init(mat.coeff(0, 0), 0, 0);
+ }
+};
+
+template<typename Visitor, typename Derived>
+struct visitor_impl<Visitor, Derived, Dynamic>
+{
+ EIGEN_DEVICE_FUNC
+ static inline void run(const Derived& mat, Visitor& visitor)
+ {
+ visitor.init(mat.coeff(0,0), 0, 0);
+ for(Index i = 1; i < mat.rows(); ++i)
+ visitor(mat.coeff(i, 0), i, 0);
+ for(Index j = 1; j < mat.cols(); ++j)
+ for(Index i = 0; i < mat.rows(); ++i)
+ visitor(mat.coeff(i, j), i, j);
+ }
+};
+
+// evaluator adaptor
+template<typename XprType>
+class visitor_evaluator
+{
+public:
+ EIGEN_DEVICE_FUNC
+ explicit visitor_evaluator(const XprType &xpr) : m_evaluator(xpr), m_xpr(xpr) {}
+
+ typedef typename XprType::Scalar Scalar;
+ typedef typename XprType::CoeffReturnType CoeffReturnType;
+
+ enum {
+ RowsAtCompileTime = XprType::RowsAtCompileTime,
+ CoeffReadCost = internal::evaluator<XprType>::CoeffReadCost
+ };
+
+ EIGEN_DEVICE_FUNC Index rows() const { return m_xpr.rows(); }
+ EIGEN_DEVICE_FUNC Index cols() const { return m_xpr.cols(); }
+ EIGEN_DEVICE_FUNC Index size() const { return m_xpr.size(); }
+
+ EIGEN_DEVICE_FUNC CoeffReturnType coeff(Index row, Index col) const
+ { return m_evaluator.coeff(row, col); }
+
+protected:
+ internal::evaluator<XprType> m_evaluator;
+ const XprType &m_xpr;
+};
+} // end namespace internal
+
+/** Applies the visitor \a visitor to the whole coefficients of the matrix or vector.
+ *
+ * The template parameter \a Visitor is the type of the visitor and provides the following interface:
+ * \code
+ * struct MyVisitor {
+ * // called for the first coefficient
+ * void init(const Scalar& value, Index i, Index j);
+ * // called for all other coefficients
+ * void operator() (const Scalar& value, Index i, Index j);
+ * };
+ * \endcode
+ *
+ * \note compared to one or two \em for \em loops, visitors offer automatic
+ * unrolling for small fixed size matrix.
+ *
+ * \sa minCoeff(Index*,Index*), maxCoeff(Index*,Index*), DenseBase::redux()
+ */
+template<typename Derived>
+template<typename Visitor>
+EIGEN_DEVICE_FUNC
+void DenseBase<Derived>::visit(Visitor& visitor) const
+{
+ typedef typename internal::visitor_evaluator<Derived> ThisEvaluator;
+ ThisEvaluator thisEval(derived());
+
+ enum {
+ unroll = SizeAtCompileTime != Dynamic
+ && SizeAtCompileTime * ThisEvaluator::CoeffReadCost + (SizeAtCompileTime-1) * internal::functor_traits<Visitor>::Cost <= EIGEN_UNROLLING_LIMIT
+ };
+ return internal::visitor_impl<Visitor, ThisEvaluator, unroll ? int(SizeAtCompileTime) : Dynamic>::run(thisEval, visitor);
+}
+
+namespace internal {
+
+/** \internal
+ * \brief Base class to implement min and max visitors
+ */
+template <typename Derived>
+struct coeff_visitor
+{
+ typedef typename Derived::Scalar Scalar;
+ Index row, col;
+ Scalar res;
+ EIGEN_DEVICE_FUNC
+ inline void init(const Scalar& value, Index i, Index j)
+ {
+ res = value;
+ row = i;
+ col = j;
+ }
+};
+
+/** \internal
+ * \brief Visitor computing the min coefficient with its value and coordinates
+ *
+ * \sa DenseBase::minCoeff(Index*, Index*)
+ */
+template <typename Derived>
+struct min_coeff_visitor : coeff_visitor<Derived>
+{
+ typedef typename Derived::Scalar Scalar;
+ EIGEN_DEVICE_FUNC
+ void operator() (const Scalar& value, Index i, Index j)
+ {
+ if(value < this->res)
+ {
+ this->res = value;
+ this->row = i;
+ this->col = j;
+ }
+ }
+};
+
+template<typename Scalar>
+struct functor_traits<min_coeff_visitor<Scalar> > {
+ enum {
+ Cost = NumTraits<Scalar>::AddCost
+ };
+};
+
+/** \internal
+ * \brief Visitor computing the max coefficient with its value and coordinates
+ *
+ * \sa DenseBase::maxCoeff(Index*, Index*)
+ */
+template <typename Derived>
+struct max_coeff_visitor : coeff_visitor<Derived>
+{
+ typedef typename Derived::Scalar Scalar;
+ EIGEN_DEVICE_FUNC
+ void operator() (const Scalar& value, Index i, Index j)
+ {
+ if(value > this->res)
+ {
+ this->res = value;
+ this->row = i;
+ this->col = j;
+ }
+ }
+};
+
+template<typename Scalar>
+struct functor_traits<max_coeff_visitor<Scalar> > {
+ enum {
+ Cost = NumTraits<Scalar>::AddCost
+ };
+};
+
+} // end namespace internal
+
+/** \fn DenseBase<Derived>::minCoeff(IndexType* rowId, IndexType* colId) const
+ * \returns the minimum of all coefficients of *this and puts in *row and *col its location.
+ * \warning the result is undefined if \c *this contains NaN.
+ *
+ * \sa DenseBase::minCoeff(Index*), DenseBase::maxCoeff(Index*,Index*), DenseBase::visit(), DenseBase::minCoeff()
+ */
+template<typename Derived>
+template<typename IndexType>
+EIGEN_DEVICE_FUNC
+typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::minCoeff(IndexType* rowId, IndexType* colId) const
+{
+ internal::min_coeff_visitor<Derived> minVisitor;
+ this->visit(minVisitor);
+ *rowId = minVisitor.row;
+ if (colId) *colId = minVisitor.col;
+ return minVisitor.res;
+}
+
+/** \returns the minimum of all coefficients of *this and puts in *index its location.
+ * \warning the result is undefined if \c *this contains NaN.
+ *
+ * \sa DenseBase::minCoeff(IndexType*,IndexType*), DenseBase::maxCoeff(IndexType*,IndexType*), DenseBase::visit(), DenseBase::minCoeff()
+ */
+template<typename Derived>
+template<typename IndexType>
+EIGEN_DEVICE_FUNC
+typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::minCoeff(IndexType* index) const
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ internal::min_coeff_visitor<Derived> minVisitor;
+ this->visit(minVisitor);
+ *index = IndexType((RowsAtCompileTime==1) ? minVisitor.col : minVisitor.row);
+ return minVisitor.res;
+}
+
+/** \fn DenseBase<Derived>::maxCoeff(IndexType* rowId, IndexType* colId) const
+ * \returns the maximum of all coefficients of *this and puts in *row and *col its location.
+ * \warning the result is undefined if \c *this contains NaN.
+ *
+ * \sa DenseBase::minCoeff(IndexType*,IndexType*), DenseBase::visit(), DenseBase::maxCoeff()
+ */
+template<typename Derived>
+template<typename IndexType>
+EIGEN_DEVICE_FUNC
+typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::maxCoeff(IndexType* rowPtr, IndexType* colPtr) const
+{
+ internal::max_coeff_visitor<Derived> maxVisitor;
+ this->visit(maxVisitor);
+ *rowPtr = maxVisitor.row;
+ if (colPtr) *colPtr = maxVisitor.col;
+ return maxVisitor.res;
+}
+
+/** \returns the maximum of all coefficients of *this and puts in *index its location.
+ * \warning the result is undefined if \c *this contains NaN.
+ *
+ * \sa DenseBase::maxCoeff(IndexType*,IndexType*), DenseBase::minCoeff(IndexType*,IndexType*), DenseBase::visitor(), DenseBase::maxCoeff()
+ */
+template<typename Derived>
+template<typename IndexType>
+EIGEN_DEVICE_FUNC
+typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::maxCoeff(IndexType* index) const
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ internal::max_coeff_visitor<Derived> maxVisitor;
+ this->visit(maxVisitor);
+ *index = (RowsAtCompileTime==1) ? maxVisitor.col : maxVisitor.row;
+ return maxVisitor.res;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_VISITOR_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX/Complex.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX/Complex.h
new file mode 100644
index 000000000..99439c8aa
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX/Complex.h
@@ -0,0 +1,483 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2014 Benoit Steiner (benoit.steiner.goog@gmail.com)
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPLEX_AVX_H
+#define EIGEN_COMPLEX_AVX_H
+
+namespace Eigen {
+
+namespace internal {
+
+//---------- float ----------
+struct Packet4cf
+{
+ EIGEN_STRONG_INLINE Packet4cf() {}
+ EIGEN_STRONG_INLINE explicit Packet4cf(const __m256& a) : v(a) {}
+ __m256 v;
+};
+
+template<> struct packet_traits<std::complex<float> > : default_packet_traits
+{
+ typedef Packet4cf type;
+ typedef Packet2cf half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size = 4,
+ HasHalfPacket = 1,
+
+ HasAdd = 1,
+ HasSub = 1,
+ HasMul = 1,
+ HasDiv = 1,
+ HasNegate = 1,
+ HasAbs = 0,
+ HasAbs2 = 0,
+ HasMin = 0,
+ HasMax = 0,
+ HasSetLinear = 0
+ };
+};
+
+template<> struct unpacket_traits<Packet4cf> { typedef std::complex<float> type; enum {size=4, alignment=Aligned32}; typedef Packet2cf half; };
+
+template<> EIGEN_STRONG_INLINE Packet4cf padd<Packet4cf>(const Packet4cf& a, const Packet4cf& b) { return Packet4cf(_mm256_add_ps(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet4cf psub<Packet4cf>(const Packet4cf& a, const Packet4cf& b) { return Packet4cf(_mm256_sub_ps(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet4cf pnegate(const Packet4cf& a)
+{
+ return Packet4cf(pnegate(a.v));
+}
+template<> EIGEN_STRONG_INLINE Packet4cf pconj(const Packet4cf& a)
+{
+ const __m256 mask = _mm256_castsi256_ps(_mm256_setr_epi32(0x00000000,0x80000000,0x00000000,0x80000000,0x00000000,0x80000000,0x00000000,0x80000000));
+ return Packet4cf(_mm256_xor_ps(a.v,mask));
+}
+
+template<> EIGEN_STRONG_INLINE Packet4cf pmul<Packet4cf>(const Packet4cf& a, const Packet4cf& b)
+{
+ __m256 tmp1 = _mm256_mul_ps(_mm256_moveldup_ps(a.v), b.v);
+ __m256 tmp2 = _mm256_mul_ps(_mm256_movehdup_ps(a.v), _mm256_permute_ps(b.v, _MM_SHUFFLE(2,3,0,1)));
+ __m256 result = _mm256_addsub_ps(tmp1, tmp2);
+ return Packet4cf(result);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4cf pand <Packet4cf>(const Packet4cf& a, const Packet4cf& b) { return Packet4cf(_mm256_and_ps(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet4cf por <Packet4cf>(const Packet4cf& a, const Packet4cf& b) { return Packet4cf(_mm256_or_ps(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet4cf pxor <Packet4cf>(const Packet4cf& a, const Packet4cf& b) { return Packet4cf(_mm256_xor_ps(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet4cf pandnot<Packet4cf>(const Packet4cf& a, const Packet4cf& b) { return Packet4cf(_mm256_andnot_ps(a.v,b.v)); }
+
+template<> EIGEN_STRONG_INLINE Packet4cf pload <Packet4cf>(const std::complex<float>* from) { EIGEN_DEBUG_ALIGNED_LOAD return Packet4cf(pload<Packet8f>(&numext::real_ref(*from))); }
+template<> EIGEN_STRONG_INLINE Packet4cf ploadu<Packet4cf>(const std::complex<float>* from) { EIGEN_DEBUG_UNALIGNED_LOAD return Packet4cf(ploadu<Packet8f>(&numext::real_ref(*from))); }
+
+
+template<> EIGEN_STRONG_INLINE Packet4cf pset1<Packet4cf>(const std::complex<float>& from)
+{
+ return Packet4cf(_mm256_castpd_ps(_mm256_broadcast_sd((const double*)(const void*)&from)));
+}
+
+template<> EIGEN_STRONG_INLINE Packet4cf ploaddup<Packet4cf>(const std::complex<float>* from)
+{
+ // FIXME The following might be optimized using _mm256_movedup_pd
+ Packet2cf a = ploaddup<Packet2cf>(from);
+ Packet2cf b = ploaddup<Packet2cf>(from+1);
+ return Packet4cf(_mm256_insertf128_ps(_mm256_castps128_ps256(a.v), b.v, 1));
+}
+
+template<> EIGEN_STRONG_INLINE void pstore <std::complex<float> >(std::complex<float>* to, const Packet4cf& from) { EIGEN_DEBUG_ALIGNED_STORE pstore(&numext::real_ref(*to), from.v); }
+template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<float> >(std::complex<float>* to, const Packet4cf& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu(&numext::real_ref(*to), from.v); }
+
+template<> EIGEN_DEVICE_FUNC inline Packet4cf pgather<std::complex<float>, Packet4cf>(const std::complex<float>* from, Index stride)
+{
+ return Packet4cf(_mm256_set_ps(std::imag(from[3*stride]), std::real(from[3*stride]),
+ std::imag(from[2*stride]), std::real(from[2*stride]),
+ std::imag(from[1*stride]), std::real(from[1*stride]),
+ std::imag(from[0*stride]), std::real(from[0*stride])));
+}
+
+template<> EIGEN_DEVICE_FUNC inline void pscatter<std::complex<float>, Packet4cf>(std::complex<float>* to, const Packet4cf& from, Index stride)
+{
+ __m128 low = _mm256_extractf128_ps(from.v, 0);
+ to[stride*0] = std::complex<float>(_mm_cvtss_f32(_mm_shuffle_ps(low, low, 0)),
+ _mm_cvtss_f32(_mm_shuffle_ps(low, low, 1)));
+ to[stride*1] = std::complex<float>(_mm_cvtss_f32(_mm_shuffle_ps(low, low, 2)),
+ _mm_cvtss_f32(_mm_shuffle_ps(low, low, 3)));
+
+ __m128 high = _mm256_extractf128_ps(from.v, 1);
+ to[stride*2] = std::complex<float>(_mm_cvtss_f32(_mm_shuffle_ps(high, high, 0)),
+ _mm_cvtss_f32(_mm_shuffle_ps(high, high, 1)));
+ to[stride*3] = std::complex<float>(_mm_cvtss_f32(_mm_shuffle_ps(high, high, 2)),
+ _mm_cvtss_f32(_mm_shuffle_ps(high, high, 3)));
+
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<float> pfirst<Packet4cf>(const Packet4cf& a)
+{
+ return pfirst(Packet2cf(_mm256_castps256_ps128(a.v)));
+}
+
+template<> EIGEN_STRONG_INLINE Packet4cf preverse(const Packet4cf& a) {
+ __m128 low = _mm256_extractf128_ps(a.v, 0);
+ __m128 high = _mm256_extractf128_ps(a.v, 1);
+ __m128d lowd = _mm_castps_pd(low);
+ __m128d highd = _mm_castps_pd(high);
+ low = _mm_castpd_ps(_mm_shuffle_pd(lowd,lowd,0x1));
+ high = _mm_castpd_ps(_mm_shuffle_pd(highd,highd,0x1));
+ __m256 result = _mm256_setzero_ps();
+ result = _mm256_insertf128_ps(result, low, 1);
+ result = _mm256_insertf128_ps(result, high, 0);
+ return Packet4cf(result);
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<float> predux<Packet4cf>(const Packet4cf& a)
+{
+ return predux(padd(Packet2cf(_mm256_extractf128_ps(a.v,0)),
+ Packet2cf(_mm256_extractf128_ps(a.v,1))));
+}
+
+template<> EIGEN_STRONG_INLINE Packet4cf preduxp<Packet4cf>(const Packet4cf* vecs)
+{
+ Packet8f t0 = _mm256_shuffle_ps(vecs[0].v, vecs[0].v, _MM_SHUFFLE(3, 1, 2 ,0));
+ Packet8f t1 = _mm256_shuffle_ps(vecs[1].v, vecs[1].v, _MM_SHUFFLE(3, 1, 2 ,0));
+ t0 = _mm256_hadd_ps(t0,t1);
+ Packet8f t2 = _mm256_shuffle_ps(vecs[2].v, vecs[2].v, _MM_SHUFFLE(3, 1, 2 ,0));
+ Packet8f t3 = _mm256_shuffle_ps(vecs[3].v, vecs[3].v, _MM_SHUFFLE(3, 1, 2 ,0));
+ t2 = _mm256_hadd_ps(t2,t3);
+
+ t1 = _mm256_permute2f128_ps(t0,t2, 0 + (2<<4));
+ t3 = _mm256_permute2f128_ps(t0,t2, 1 + (3<<4));
+
+ return Packet4cf(_mm256_add_ps(t1,t3));
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<float> predux_mul<Packet4cf>(const Packet4cf& a)
+{
+ return predux_mul(pmul(Packet2cf(_mm256_extractf128_ps(a.v, 0)),
+ Packet2cf(_mm256_extractf128_ps(a.v, 1))));
+}
+
+template<int Offset>
+struct palign_impl<Offset,Packet4cf>
+{
+ static EIGEN_STRONG_INLINE void run(Packet4cf& first, const Packet4cf& second)
+ {
+ if (Offset==0) return;
+ palign_impl<Offset*2,Packet8f>::run(first.v, second.v);
+ }
+};
+
+template<> struct conj_helper<Packet4cf, Packet4cf, false,true>
+{
+ EIGEN_STRONG_INLINE Packet4cf pmadd(const Packet4cf& x, const Packet4cf& y, const Packet4cf& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet4cf pmul(const Packet4cf& a, const Packet4cf& b) const
+ {
+ return internal::pmul(a, pconj(b));
+ }
+};
+
+template<> struct conj_helper<Packet4cf, Packet4cf, true,false>
+{
+ EIGEN_STRONG_INLINE Packet4cf pmadd(const Packet4cf& x, const Packet4cf& y, const Packet4cf& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet4cf pmul(const Packet4cf& a, const Packet4cf& b) const
+ {
+ return internal::pmul(pconj(a), b);
+ }
+};
+
+template<> struct conj_helper<Packet4cf, Packet4cf, true,true>
+{
+ EIGEN_STRONG_INLINE Packet4cf pmadd(const Packet4cf& x, const Packet4cf& y, const Packet4cf& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet4cf pmul(const Packet4cf& a, const Packet4cf& b) const
+ {
+ return pconj(internal::pmul(a, b));
+ }
+};
+
+template<> struct conj_helper<Packet8f, Packet4cf, false,false>
+{
+ EIGEN_STRONG_INLINE Packet4cf pmadd(const Packet8f& x, const Packet4cf& y, const Packet4cf& c) const
+ { return padd(c, pmul(x,y)); }
+
+ EIGEN_STRONG_INLINE Packet4cf pmul(const Packet8f& x, const Packet4cf& y) const
+ { return Packet4cf(Eigen::internal::pmul(x, y.v)); }
+};
+
+template<> struct conj_helper<Packet4cf, Packet8f, false,false>
+{
+ EIGEN_STRONG_INLINE Packet4cf pmadd(const Packet4cf& x, const Packet8f& y, const Packet4cf& c) const
+ { return padd(c, pmul(x,y)); }
+
+ EIGEN_STRONG_INLINE Packet4cf pmul(const Packet4cf& x, const Packet8f& y) const
+ { return Packet4cf(Eigen::internal::pmul(x.v, y)); }
+};
+
+template<> EIGEN_STRONG_INLINE Packet4cf pdiv<Packet4cf>(const Packet4cf& a, const Packet4cf& b)
+{
+ Packet4cf num = pmul(a, pconj(b));
+ __m256 tmp = _mm256_mul_ps(b.v, b.v);
+ __m256 tmp2 = _mm256_shuffle_ps(tmp,tmp,0xB1);
+ __m256 denom = _mm256_add_ps(tmp, tmp2);
+ return Packet4cf(_mm256_div_ps(num.v, denom));
+}
+
+template<> EIGEN_STRONG_INLINE Packet4cf pcplxflip<Packet4cf>(const Packet4cf& x)
+{
+ return Packet4cf(_mm256_shuffle_ps(x.v, x.v, _MM_SHUFFLE(2, 3, 0 ,1)));
+}
+
+//---------- double ----------
+struct Packet2cd
+{
+ EIGEN_STRONG_INLINE Packet2cd() {}
+ EIGEN_STRONG_INLINE explicit Packet2cd(const __m256d& a) : v(a) {}
+ __m256d v;
+};
+
+template<> struct packet_traits<std::complex<double> > : default_packet_traits
+{
+ typedef Packet2cd type;
+ typedef Packet1cd half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 0,
+ size = 2,
+ HasHalfPacket = 1,
+
+ HasAdd = 1,
+ HasSub = 1,
+ HasMul = 1,
+ HasDiv = 1,
+ HasNegate = 1,
+ HasAbs = 0,
+ HasAbs2 = 0,
+ HasMin = 0,
+ HasMax = 0,
+ HasSetLinear = 0
+ };
+};
+
+template<> struct unpacket_traits<Packet2cd> { typedef std::complex<double> type; enum {size=2, alignment=Aligned32}; typedef Packet1cd half; };
+
+template<> EIGEN_STRONG_INLINE Packet2cd padd<Packet2cd>(const Packet2cd& a, const Packet2cd& b) { return Packet2cd(_mm256_add_pd(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cd psub<Packet2cd>(const Packet2cd& a, const Packet2cd& b) { return Packet2cd(_mm256_sub_pd(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cd pnegate(const Packet2cd& a) { return Packet2cd(pnegate(a.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cd pconj(const Packet2cd& a)
+{
+ const __m256d mask = _mm256_castsi256_pd(_mm256_set_epi32(0x80000000,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0));
+ return Packet2cd(_mm256_xor_pd(a.v,mask));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cd pmul<Packet2cd>(const Packet2cd& a, const Packet2cd& b)
+{
+ __m256d tmp1 = _mm256_shuffle_pd(a.v,a.v,0x0);
+ __m256d even = _mm256_mul_pd(tmp1, b.v);
+ __m256d tmp2 = _mm256_shuffle_pd(a.v,a.v,0xF);
+ __m256d tmp3 = _mm256_shuffle_pd(b.v,b.v,0x5);
+ __m256d odd = _mm256_mul_pd(tmp2, tmp3);
+ return Packet2cd(_mm256_addsub_pd(even, odd));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cd pand <Packet2cd>(const Packet2cd& a, const Packet2cd& b) { return Packet2cd(_mm256_and_pd(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cd por <Packet2cd>(const Packet2cd& a, const Packet2cd& b) { return Packet2cd(_mm256_or_pd(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cd pxor <Packet2cd>(const Packet2cd& a, const Packet2cd& b) { return Packet2cd(_mm256_xor_pd(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cd pandnot<Packet2cd>(const Packet2cd& a, const Packet2cd& b) { return Packet2cd(_mm256_andnot_pd(a.v,b.v)); }
+
+template<> EIGEN_STRONG_INLINE Packet2cd pload <Packet2cd>(const std::complex<double>* from)
+{ EIGEN_DEBUG_ALIGNED_LOAD return Packet2cd(pload<Packet4d>((const double*)from)); }
+template<> EIGEN_STRONG_INLINE Packet2cd ploadu<Packet2cd>(const std::complex<double>* from)
+{ EIGEN_DEBUG_UNALIGNED_LOAD return Packet2cd(ploadu<Packet4d>((const double*)from)); }
+
+template<> EIGEN_STRONG_INLINE Packet2cd pset1<Packet2cd>(const std::complex<double>& from)
+{
+ // in case casting to a __m128d* is really not safe, then we can still fallback to this version: (much slower though)
+// return Packet2cd(_mm256_loadu2_m128d((const double*)&from,(const double*)&from));
+ return Packet2cd(_mm256_broadcast_pd((const __m128d*)(const void*)&from));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cd ploaddup<Packet2cd>(const std::complex<double>* from) { return pset1<Packet2cd>(*from); }
+
+template<> EIGEN_STRONG_INLINE void pstore <std::complex<double> >(std::complex<double> * to, const Packet2cd& from) { EIGEN_DEBUG_ALIGNED_STORE pstore((double*)to, from.v); }
+template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<double> >(std::complex<double> * to, const Packet2cd& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu((double*)to, from.v); }
+
+template<> EIGEN_DEVICE_FUNC inline Packet2cd pgather<std::complex<double>, Packet2cd>(const std::complex<double>* from, Index stride)
+{
+ return Packet2cd(_mm256_set_pd(std::imag(from[1*stride]), std::real(from[1*stride]),
+ std::imag(from[0*stride]), std::real(from[0*stride])));
+}
+
+template<> EIGEN_DEVICE_FUNC inline void pscatter<std::complex<double>, Packet2cd>(std::complex<double>* to, const Packet2cd& from, Index stride)
+{
+ __m128d low = _mm256_extractf128_pd(from.v, 0);
+ to[stride*0] = std::complex<double>(_mm_cvtsd_f64(low), _mm_cvtsd_f64(_mm_shuffle_pd(low, low, 1)));
+ __m128d high = _mm256_extractf128_pd(from.v, 1);
+ to[stride*1] = std::complex<double>(_mm_cvtsd_f64(high), _mm_cvtsd_f64(_mm_shuffle_pd(high, high, 1)));
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<double> pfirst<Packet2cd>(const Packet2cd& a)
+{
+ __m128d low = _mm256_extractf128_pd(a.v, 0);
+ EIGEN_ALIGN16 double res[2];
+ _mm_store_pd(res, low);
+ return std::complex<double>(res[0],res[1]);
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cd preverse(const Packet2cd& a) {
+ __m256d result = _mm256_permute2f128_pd(a.v, a.v, 1);
+ return Packet2cd(result);
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<double> predux<Packet2cd>(const Packet2cd& a)
+{
+ return predux(padd(Packet1cd(_mm256_extractf128_pd(a.v,0)),
+ Packet1cd(_mm256_extractf128_pd(a.v,1))));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cd preduxp<Packet2cd>(const Packet2cd* vecs)
+{
+ Packet4d t0 = _mm256_permute2f128_pd(vecs[0].v,vecs[1].v, 0 + (2<<4));
+ Packet4d t1 = _mm256_permute2f128_pd(vecs[0].v,vecs[1].v, 1 + (3<<4));
+
+ return Packet2cd(_mm256_add_pd(t0,t1));
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<double> predux_mul<Packet2cd>(const Packet2cd& a)
+{
+ return predux(pmul(Packet1cd(_mm256_extractf128_pd(a.v,0)),
+ Packet1cd(_mm256_extractf128_pd(a.v,1))));
+}
+
+template<int Offset>
+struct palign_impl<Offset,Packet2cd>
+{
+ static EIGEN_STRONG_INLINE void run(Packet2cd& first, const Packet2cd& second)
+ {
+ if (Offset==0) return;
+ palign_impl<Offset*2,Packet4d>::run(first.v, second.v);
+ }
+};
+
+template<> struct conj_helper<Packet2cd, Packet2cd, false,true>
+{
+ EIGEN_STRONG_INLINE Packet2cd pmadd(const Packet2cd& x, const Packet2cd& y, const Packet2cd& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet2cd pmul(const Packet2cd& a, const Packet2cd& b) const
+ {
+ return internal::pmul(a, pconj(b));
+ }
+};
+
+template<> struct conj_helper<Packet2cd, Packet2cd, true,false>
+{
+ EIGEN_STRONG_INLINE Packet2cd pmadd(const Packet2cd& x, const Packet2cd& y, const Packet2cd& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet2cd pmul(const Packet2cd& a, const Packet2cd& b) const
+ {
+ return internal::pmul(pconj(a), b);
+ }
+};
+
+template<> struct conj_helper<Packet2cd, Packet2cd, true,true>
+{
+ EIGEN_STRONG_INLINE Packet2cd pmadd(const Packet2cd& x, const Packet2cd& y, const Packet2cd& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet2cd pmul(const Packet2cd& a, const Packet2cd& b) const
+ {
+ return pconj(internal::pmul(a, b));
+ }
+};
+
+template<> struct conj_helper<Packet4d, Packet2cd, false,false>
+{
+ EIGEN_STRONG_INLINE Packet2cd pmadd(const Packet4d& x, const Packet2cd& y, const Packet2cd& c) const
+ { return padd(c, pmul(x,y)); }
+
+ EIGEN_STRONG_INLINE Packet2cd pmul(const Packet4d& x, const Packet2cd& y) const
+ { return Packet2cd(Eigen::internal::pmul(x, y.v)); }
+};
+
+template<> struct conj_helper<Packet2cd, Packet4d, false,false>
+{
+ EIGEN_STRONG_INLINE Packet2cd pmadd(const Packet2cd& x, const Packet4d& y, const Packet2cd& c) const
+ { return padd(c, pmul(x,y)); }
+
+ EIGEN_STRONG_INLINE Packet2cd pmul(const Packet2cd& x, const Packet4d& y) const
+ { return Packet2cd(Eigen::internal::pmul(x.v, y)); }
+};
+
+template<> EIGEN_STRONG_INLINE Packet2cd pdiv<Packet2cd>(const Packet2cd& a, const Packet2cd& b)
+{
+ Packet2cd num = pmul(a, pconj(b));
+ __m256d tmp = _mm256_mul_pd(b.v, b.v);
+ __m256d denom = _mm256_hadd_pd(tmp, tmp);
+ return Packet2cd(_mm256_div_pd(num.v, denom));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cd pcplxflip<Packet2cd>(const Packet2cd& x)
+{
+ return Packet2cd(_mm256_shuffle_pd(x.v, x.v, 0x5));
+}
+
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<Packet4cf,4>& kernel) {
+ __m256d P0 = _mm256_castps_pd(kernel.packet[0].v);
+ __m256d P1 = _mm256_castps_pd(kernel.packet[1].v);
+ __m256d P2 = _mm256_castps_pd(kernel.packet[2].v);
+ __m256d P3 = _mm256_castps_pd(kernel.packet[3].v);
+
+ __m256d T0 = _mm256_shuffle_pd(P0, P1, 15);
+ __m256d T1 = _mm256_shuffle_pd(P0, P1, 0);
+ __m256d T2 = _mm256_shuffle_pd(P2, P3, 15);
+ __m256d T3 = _mm256_shuffle_pd(P2, P3, 0);
+
+ kernel.packet[1].v = _mm256_castpd_ps(_mm256_permute2f128_pd(T0, T2, 32));
+ kernel.packet[3].v = _mm256_castpd_ps(_mm256_permute2f128_pd(T0, T2, 49));
+ kernel.packet[0].v = _mm256_castpd_ps(_mm256_permute2f128_pd(T1, T3, 32));
+ kernel.packet[2].v = _mm256_castpd_ps(_mm256_permute2f128_pd(T1, T3, 49));
+}
+
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<Packet2cd,2>& kernel) {
+ __m256d tmp = _mm256_permute2f128_pd(kernel.packet[0].v, kernel.packet[1].v, 0+(2<<4));
+ kernel.packet[1].v = _mm256_permute2f128_pd(kernel.packet[0].v, kernel.packet[1].v, 1+(3<<4));
+ kernel.packet[0].v = tmp;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4cf pinsertfirst(const Packet4cf& a, std::complex<float> b)
+{
+ return Packet4cf(_mm256_blend_ps(a.v,pset1<Packet4cf>(b).v,1|2));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cd pinsertfirst(const Packet2cd& a, std::complex<double> b)
+{
+ return Packet2cd(_mm256_blend_pd(a.v,pset1<Packet2cd>(b).v,1|2));
+}
+
+template<> EIGEN_STRONG_INLINE Packet4cf pinsertlast(const Packet4cf& a, std::complex<float> b)
+{
+ return Packet4cf(_mm256_blend_ps(a.v,pset1<Packet4cf>(b).v,(1<<7)|(1<<6)));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cd pinsertlast(const Packet2cd& a, std::complex<double> b)
+{
+ return Packet2cd(_mm256_blend_pd(a.v,pset1<Packet2cd>(b).v,(1<<3)|(1<<2)));
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLEX_AVX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h
new file mode 100644
index 000000000..6af67ce2d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h
@@ -0,0 +1,439 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2014 Pedro Gonnet (pedro.gonnet@gmail.com)
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATH_FUNCTIONS_AVX_H
+#define EIGEN_MATH_FUNCTIONS_AVX_H
+
+/* The sin, cos, exp, and log functions of this file are loosely derived from
+ * Julien Pommier's sse math library: http://gruntthepeon.free.fr/ssemath/
+ */
+
+namespace Eigen {
+
+namespace internal {
+
+inline Packet8i pshiftleft(Packet8i v, int n)
+{
+#ifdef EIGEN_VECTORIZE_AVX2
+ return _mm256_slli_epi32(v, n);
+#else
+ __m128i lo = _mm_slli_epi32(_mm256_extractf128_si256(v, 0), n);
+ __m128i hi = _mm_slli_epi32(_mm256_extractf128_si256(v, 1), n);
+ return _mm256_insertf128_si256(_mm256_castsi128_si256(lo), (hi), 1);
+#endif
+}
+
+inline Packet8f pshiftright(Packet8f v, int n)
+{
+#ifdef EIGEN_VECTORIZE_AVX2
+ return _mm256_cvtepi32_ps(_mm256_srli_epi32(_mm256_castps_si256(v), n));
+#else
+ __m128i lo = _mm_srli_epi32(_mm256_extractf128_si256(_mm256_castps_si256(v), 0), n);
+ __m128i hi = _mm_srli_epi32(_mm256_extractf128_si256(_mm256_castps_si256(v), 1), n);
+ return _mm256_cvtepi32_ps(_mm256_insertf128_si256(_mm256_castsi128_si256(lo), (hi), 1));
+#endif
+}
+
+// Sine function
+// Computes sin(x) by wrapping x to the interval [-Pi/4,3*Pi/4] and
+// evaluating interpolants in [-Pi/4,Pi/4] or [Pi/4,3*Pi/4]. The interpolants
+// are (anti-)symmetric and thus have only odd/even coefficients
+template <>
+EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet8f
+psin<Packet8f>(const Packet8f& _x) {
+ Packet8f x = _x;
+
+ // Some useful values.
+ _EIGEN_DECLARE_CONST_Packet8i(one, 1);
+ _EIGEN_DECLARE_CONST_Packet8f(one, 1.0f);
+ _EIGEN_DECLARE_CONST_Packet8f(two, 2.0f);
+ _EIGEN_DECLARE_CONST_Packet8f(one_over_four, 0.25f);
+ _EIGEN_DECLARE_CONST_Packet8f(one_over_pi, 3.183098861837907e-01f);
+ _EIGEN_DECLARE_CONST_Packet8f(neg_pi_first, -3.140625000000000e+00f);
+ _EIGEN_DECLARE_CONST_Packet8f(neg_pi_second, -9.670257568359375e-04f);
+ _EIGEN_DECLARE_CONST_Packet8f(neg_pi_third, -6.278329571784980e-07f);
+ _EIGEN_DECLARE_CONST_Packet8f(four_over_pi, 1.273239544735163e+00f);
+
+ // Map x from [-Pi/4,3*Pi/4] to z in [-1,3] and subtract the shifted period.
+ Packet8f z = pmul(x, p8f_one_over_pi);
+ Packet8f shift = _mm256_floor_ps(padd(z, p8f_one_over_four));
+ x = pmadd(shift, p8f_neg_pi_first, x);
+ x = pmadd(shift, p8f_neg_pi_second, x);
+ x = pmadd(shift, p8f_neg_pi_third, x);
+ z = pmul(x, p8f_four_over_pi);
+
+ // Make a mask for the entries that need flipping, i.e. wherever the shift
+ // is odd.
+ Packet8i shift_ints = _mm256_cvtps_epi32(shift);
+ Packet8i shift_isodd = _mm256_castps_si256(_mm256_and_ps(_mm256_castsi256_ps(shift_ints), _mm256_castsi256_ps(p8i_one)));
+ Packet8i sign_flip_mask = pshiftleft(shift_isodd, 31);
+
+ // Create a mask for which interpolant to use, i.e. if z > 1, then the mask
+ // is set to ones for that entry.
+ Packet8f ival_mask = _mm256_cmp_ps(z, p8f_one, _CMP_GT_OQ);
+
+ // Evaluate the polynomial for the interval [1,3] in z.
+ _EIGEN_DECLARE_CONST_Packet8f(coeff_right_0, 9.999999724233232e-01f);
+ _EIGEN_DECLARE_CONST_Packet8f(coeff_right_2, -3.084242535619928e-01f);
+ _EIGEN_DECLARE_CONST_Packet8f(coeff_right_4, 1.584991525700324e-02f);
+ _EIGEN_DECLARE_CONST_Packet8f(coeff_right_6, -3.188805084631342e-04f);
+ Packet8f z_minus_two = psub(z, p8f_two);
+ Packet8f z_minus_two2 = pmul(z_minus_two, z_minus_two);
+ Packet8f right = pmadd(p8f_coeff_right_6, z_minus_two2, p8f_coeff_right_4);
+ right = pmadd(right, z_minus_two2, p8f_coeff_right_2);
+ right = pmadd(right, z_minus_two2, p8f_coeff_right_0);
+
+ // Evaluate the polynomial for the interval [-1,1] in z.
+ _EIGEN_DECLARE_CONST_Packet8f(coeff_left_1, 7.853981525427295e-01f);
+ _EIGEN_DECLARE_CONST_Packet8f(coeff_left_3, -8.074536727092352e-02f);
+ _EIGEN_DECLARE_CONST_Packet8f(coeff_left_5, 2.489871967827018e-03f);
+ _EIGEN_DECLARE_CONST_Packet8f(coeff_left_7, -3.587725841214251e-05f);
+ Packet8f z2 = pmul(z, z);
+ Packet8f left = pmadd(p8f_coeff_left_7, z2, p8f_coeff_left_5);
+ left = pmadd(left, z2, p8f_coeff_left_3);
+ left = pmadd(left, z2, p8f_coeff_left_1);
+ left = pmul(left, z);
+
+ // Assemble the results, i.e. select the left and right polynomials.
+ left = _mm256_andnot_ps(ival_mask, left);
+ right = _mm256_and_ps(ival_mask, right);
+ Packet8f res = _mm256_or_ps(left, right);
+
+ // Flip the sign on the odd intervals and return the result.
+ res = _mm256_xor_ps(res, _mm256_castsi256_ps(sign_flip_mask));
+ return res;
+}
+
+// Natural logarithm
+// Computes log(x) as log(2^e * m) = C*e + log(m), where the constant C =log(2)
+// and m is in the range [sqrt(1/2),sqrt(2)). In this range, the logarithm can
+// be easily approximated by a polynomial centered on m=1 for stability.
+// TODO(gonnet): Further reduce the interval allowing for lower-degree
+// polynomial interpolants -> ... -> profit!
+template <>
+EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet8f
+plog<Packet8f>(const Packet8f& _x) {
+ Packet8f x = _x;
+ _EIGEN_DECLARE_CONST_Packet8f(1, 1.0f);
+ _EIGEN_DECLARE_CONST_Packet8f(half, 0.5f);
+ _EIGEN_DECLARE_CONST_Packet8f(126f, 126.0f);
+
+ _EIGEN_DECLARE_CONST_Packet8f_FROM_INT(inv_mant_mask, ~0x7f800000);
+
+ // The smallest non denormalized float number.
+ _EIGEN_DECLARE_CONST_Packet8f_FROM_INT(min_norm_pos, 0x00800000);
+ _EIGEN_DECLARE_CONST_Packet8f_FROM_INT(minus_inf, 0xff800000);
+
+ // Polynomial coefficients.
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_SQRTHF, 0.707106781186547524f);
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_log_p0, 7.0376836292E-2f);
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_log_p1, -1.1514610310E-1f);
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_log_p2, 1.1676998740E-1f);
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_log_p3, -1.2420140846E-1f);
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_log_p4, +1.4249322787E-1f);
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_log_p5, -1.6668057665E-1f);
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_log_p6, +2.0000714765E-1f);
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_log_p7, -2.4999993993E-1f);
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_log_p8, +3.3333331174E-1f);
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_log_q1, -2.12194440e-4f);
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_log_q2, 0.693359375f);
+
+ Packet8f invalid_mask = _mm256_cmp_ps(x, _mm256_setzero_ps(), _CMP_NGE_UQ); // not greater equal is true if x is NaN
+ Packet8f iszero_mask = _mm256_cmp_ps(x, _mm256_setzero_ps(), _CMP_EQ_OQ);
+
+ // Truncate input values to the minimum positive normal.
+ x = pmax(x, p8f_min_norm_pos);
+
+ Packet8f emm0 = pshiftright(x,23);
+ Packet8f e = _mm256_sub_ps(emm0, p8f_126f);
+
+ // Set the exponents to -1, i.e. x are in the range [0.5,1).
+ x = _mm256_and_ps(x, p8f_inv_mant_mask);
+ x = _mm256_or_ps(x, p8f_half);
+
+ // part2: Shift the inputs from the range [0.5,1) to [sqrt(1/2),sqrt(2))
+ // and shift by -1. The values are then centered around 0, which improves
+ // the stability of the polynomial evaluation.
+ // if( x < SQRTHF ) {
+ // e -= 1;
+ // x = x + x - 1.0;
+ // } else { x = x - 1.0; }
+ Packet8f mask = _mm256_cmp_ps(x, p8f_cephes_SQRTHF, _CMP_LT_OQ);
+ Packet8f tmp = _mm256_and_ps(x, mask);
+ x = psub(x, p8f_1);
+ e = psub(e, _mm256_and_ps(p8f_1, mask));
+ x = padd(x, tmp);
+
+ Packet8f x2 = pmul(x, x);
+ Packet8f x3 = pmul(x2, x);
+
+ // Evaluate the polynomial approximant of degree 8 in three parts, probably
+ // to improve instruction-level parallelism.
+ Packet8f y, y1, y2;
+ y = pmadd(p8f_cephes_log_p0, x, p8f_cephes_log_p1);
+ y1 = pmadd(p8f_cephes_log_p3, x, p8f_cephes_log_p4);
+ y2 = pmadd(p8f_cephes_log_p6, x, p8f_cephes_log_p7);
+ y = pmadd(y, x, p8f_cephes_log_p2);
+ y1 = pmadd(y1, x, p8f_cephes_log_p5);
+ y2 = pmadd(y2, x, p8f_cephes_log_p8);
+ y = pmadd(y, x3, y1);
+ y = pmadd(y, x3, y2);
+ y = pmul(y, x3);
+
+ // Add the logarithm of the exponent back to the result of the interpolation.
+ y1 = pmul(e, p8f_cephes_log_q1);
+ tmp = pmul(x2, p8f_half);
+ y = padd(y, y1);
+ x = psub(x, tmp);
+ y2 = pmul(e, p8f_cephes_log_q2);
+ x = padd(x, y);
+ x = padd(x, y2);
+
+ // Filter out invalid inputs, i.e. negative arg will be NAN, 0 will be -INF.
+ return _mm256_or_ps(
+ _mm256_andnot_ps(iszero_mask, _mm256_or_ps(x, invalid_mask)),
+ _mm256_and_ps(iszero_mask, p8f_minus_inf));
+}
+
+// Exponential function. Works by writing "x = m*log(2) + r" where
+// "m = floor(x/log(2)+1/2)" and "r" is the remainder. The result is then
+// "exp(x) = 2^m*exp(r)" where exp(r) is in the range [-1,1).
+template <>
+EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet8f
+pexp<Packet8f>(const Packet8f& _x) {
+ _EIGEN_DECLARE_CONST_Packet8f(1, 1.0f);
+ _EIGEN_DECLARE_CONST_Packet8f(half, 0.5f);
+ _EIGEN_DECLARE_CONST_Packet8f(127, 127.0f);
+
+ _EIGEN_DECLARE_CONST_Packet8f(exp_hi, 88.3762626647950f);
+ _EIGEN_DECLARE_CONST_Packet8f(exp_lo, -88.3762626647949f);
+
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_LOG2EF, 1.44269504088896341f);
+
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_exp_p0, 1.9875691500E-4f);
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_exp_p1, 1.3981999507E-3f);
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_exp_p2, 8.3334519073E-3f);
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_exp_p3, 4.1665795894E-2f);
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_exp_p4, 1.6666665459E-1f);
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_exp_p5, 5.0000001201E-1f);
+
+ // Clamp x.
+ Packet8f x = pmax(pmin(_x, p8f_exp_hi), p8f_exp_lo);
+
+ // Express exp(x) as exp(m*ln(2) + r), start by extracting
+ // m = floor(x/ln(2) + 0.5).
+ Packet8f m = _mm256_floor_ps(pmadd(x, p8f_cephes_LOG2EF, p8f_half));
+
+// Get r = x - m*ln(2). If no FMA instructions are available, m*ln(2) is
+// subtracted out in two parts, m*C1+m*C2 = m*ln(2), to avoid accumulating
+// truncation errors. Note that we don't use the "pmadd" function here to
+// ensure that a precision-preserving FMA instruction is used.
+#ifdef EIGEN_VECTORIZE_FMA
+ _EIGEN_DECLARE_CONST_Packet8f(nln2, -0.6931471805599453f);
+ Packet8f r = _mm256_fmadd_ps(m, p8f_nln2, x);
+#else
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_exp_C1, 0.693359375f);
+ _EIGEN_DECLARE_CONST_Packet8f(cephes_exp_C2, -2.12194440e-4f);
+ Packet8f r = psub(x, pmul(m, p8f_cephes_exp_C1));
+ r = psub(r, pmul(m, p8f_cephes_exp_C2));
+#endif
+
+ Packet8f r2 = pmul(r, r);
+
+ // TODO(gonnet): Split into odd/even polynomials and try to exploit
+ // instruction-level parallelism.
+ Packet8f y = p8f_cephes_exp_p0;
+ y = pmadd(y, r, p8f_cephes_exp_p1);
+ y = pmadd(y, r, p8f_cephes_exp_p2);
+ y = pmadd(y, r, p8f_cephes_exp_p3);
+ y = pmadd(y, r, p8f_cephes_exp_p4);
+ y = pmadd(y, r, p8f_cephes_exp_p5);
+ y = pmadd(y, r2, r);
+ y = padd(y, p8f_1);
+
+ // Build emm0 = 2^m.
+ Packet8i emm0 = _mm256_cvttps_epi32(padd(m, p8f_127));
+ emm0 = pshiftleft(emm0, 23);
+
+ // Return 2^m * exp(r).
+ return pmax(pmul(y, _mm256_castsi256_ps(emm0)), _x);
+}
+
+// Hyperbolic Tangent function.
+template <>
+EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet8f
+ptanh<Packet8f>(const Packet8f& x) {
+ return internal::generic_fast_tanh_float(x);
+}
+
+template <>
+EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet4d
+pexp<Packet4d>(const Packet4d& _x) {
+ Packet4d x = _x;
+
+ _EIGEN_DECLARE_CONST_Packet4d(1, 1.0);
+ _EIGEN_DECLARE_CONST_Packet4d(2, 2.0);
+ _EIGEN_DECLARE_CONST_Packet4d(half, 0.5);
+
+ _EIGEN_DECLARE_CONST_Packet4d(exp_hi, 709.437);
+ _EIGEN_DECLARE_CONST_Packet4d(exp_lo, -709.436139303);
+
+ _EIGEN_DECLARE_CONST_Packet4d(cephes_LOG2EF, 1.4426950408889634073599);
+
+ _EIGEN_DECLARE_CONST_Packet4d(cephes_exp_p0, 1.26177193074810590878e-4);
+ _EIGEN_DECLARE_CONST_Packet4d(cephes_exp_p1, 3.02994407707441961300e-2);
+ _EIGEN_DECLARE_CONST_Packet4d(cephes_exp_p2, 9.99999999999999999910e-1);
+
+ _EIGEN_DECLARE_CONST_Packet4d(cephes_exp_q0, 3.00198505138664455042e-6);
+ _EIGEN_DECLARE_CONST_Packet4d(cephes_exp_q1, 2.52448340349684104192e-3);
+ _EIGEN_DECLARE_CONST_Packet4d(cephes_exp_q2, 2.27265548208155028766e-1);
+ _EIGEN_DECLARE_CONST_Packet4d(cephes_exp_q3, 2.00000000000000000009e0);
+
+ _EIGEN_DECLARE_CONST_Packet4d(cephes_exp_C1, 0.693145751953125);
+ _EIGEN_DECLARE_CONST_Packet4d(cephes_exp_C2, 1.42860682030941723212e-6);
+ _EIGEN_DECLARE_CONST_Packet4i(1023, 1023);
+
+ Packet4d tmp, fx;
+
+ // clamp x
+ x = pmax(pmin(x, p4d_exp_hi), p4d_exp_lo);
+ // Express exp(x) as exp(g + n*log(2)).
+ fx = pmadd(p4d_cephes_LOG2EF, x, p4d_half);
+
+ // Get the integer modulus of log(2), i.e. the "n" described above.
+ fx = _mm256_floor_pd(fx);
+
+ // Get the remainder modulo log(2), i.e. the "g" described above. Subtract
+ // n*log(2) out in two steps, i.e. n*C1 + n*C2, C1+C2=log2 to get the last
+ // digits right.
+ tmp = pmul(fx, p4d_cephes_exp_C1);
+ Packet4d z = pmul(fx, p4d_cephes_exp_C2);
+ x = psub(x, tmp);
+ x = psub(x, z);
+
+ Packet4d x2 = pmul(x, x);
+
+ // Evaluate the numerator polynomial of the rational interpolant.
+ Packet4d px = p4d_cephes_exp_p0;
+ px = pmadd(px, x2, p4d_cephes_exp_p1);
+ px = pmadd(px, x2, p4d_cephes_exp_p2);
+ px = pmul(px, x);
+
+ // Evaluate the denominator polynomial of the rational interpolant.
+ Packet4d qx = p4d_cephes_exp_q0;
+ qx = pmadd(qx, x2, p4d_cephes_exp_q1);
+ qx = pmadd(qx, x2, p4d_cephes_exp_q2);
+ qx = pmadd(qx, x2, p4d_cephes_exp_q3);
+
+ // I don't really get this bit, copied from the SSE2 routines, so...
+ // TODO(gonnet): Figure out what is going on here, perhaps find a better
+ // rational interpolant?
+ x = _mm256_div_pd(px, psub(qx, px));
+ x = pmadd(p4d_2, x, p4d_1);
+
+ // Build e=2^n by constructing the exponents in a 128-bit vector and
+ // shifting them to where they belong in double-precision values.
+ __m128i emm0 = _mm256_cvtpd_epi32(fx);
+ emm0 = _mm_add_epi32(emm0, p4i_1023);
+ emm0 = _mm_shuffle_epi32(emm0, _MM_SHUFFLE(3, 1, 2, 0));
+ __m128i lo = _mm_slli_epi64(emm0, 52);
+ __m128i hi = _mm_slli_epi64(_mm_srli_epi64(emm0, 32), 52);
+ __m256i e = _mm256_insertf128_si256(_mm256_setzero_si256(), lo, 0);
+ e = _mm256_insertf128_si256(e, hi, 1);
+
+ // Construct the result 2^n * exp(g) = e * x. The max is used to catch
+ // non-finite values in the input.
+ return pmax(pmul(x, _mm256_castsi256_pd(e)), _x);
+}
+
+// Functions for sqrt.
+// The EIGEN_FAST_MATH version uses the _mm_rsqrt_ps approximation and one step
+// of Newton's method, at a cost of 1-2 bits of precision as opposed to the
+// exact solution. It does not handle +inf, or denormalized numbers correctly.
+// The main advantage of this approach is not just speed, but also the fact that
+// it can be inlined and pipelined with other computations, further reducing its
+// effective latency. This is similar to Quake3's fast inverse square root.
+// For detail see here: http://www.beyond3d.com/content/articles/8/
+#if EIGEN_FAST_MATH
+template <>
+EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet8f
+psqrt<Packet8f>(const Packet8f& _x) {
+ Packet8f half = pmul(_x, pset1<Packet8f>(.5f));
+ Packet8f denormal_mask = _mm256_and_ps(
+ _mm256_cmp_ps(_x, pset1<Packet8f>((std::numeric_limits<float>::min)()),
+ _CMP_LT_OQ),
+ _mm256_cmp_ps(_x, _mm256_setzero_ps(), _CMP_GE_OQ));
+
+ // Compute approximate reciprocal sqrt.
+ Packet8f x = _mm256_rsqrt_ps(_x);
+ // Do a single step of Newton's iteration.
+ x = pmul(x, psub(pset1<Packet8f>(1.5f), pmul(half, pmul(x,x))));
+ // Flush results for denormals to zero.
+ return _mm256_andnot_ps(denormal_mask, pmul(_x,x));
+}
+#else
+template <> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet8f psqrt<Packet8f>(const Packet8f& x) {
+ return _mm256_sqrt_ps(x);
+}
+#endif
+template <> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4d psqrt<Packet4d>(const Packet4d& x) {
+ return _mm256_sqrt_pd(x);
+}
+#if EIGEN_FAST_MATH
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet8f prsqrt<Packet8f>(const Packet8f& _x) {
+ _EIGEN_DECLARE_CONST_Packet8f_FROM_INT(inf, 0x7f800000);
+ _EIGEN_DECLARE_CONST_Packet8f_FROM_INT(nan, 0x7fc00000);
+ _EIGEN_DECLARE_CONST_Packet8f(one_point_five, 1.5f);
+ _EIGEN_DECLARE_CONST_Packet8f(minus_half, -0.5f);
+ _EIGEN_DECLARE_CONST_Packet8f_FROM_INT(flt_min, 0x00800000);
+
+ Packet8f neg_half = pmul(_x, p8f_minus_half);
+
+ // select only the inverse sqrt of positive normal inputs (denormals are
+ // flushed to zero and cause infs as well).
+ Packet8f le_zero_mask = _mm256_cmp_ps(_x, p8f_flt_min, _CMP_LT_OQ);
+ Packet8f x = _mm256_andnot_ps(le_zero_mask, _mm256_rsqrt_ps(_x));
+
+ // Fill in NaNs and Infs for the negative/zero entries.
+ Packet8f neg_mask = _mm256_cmp_ps(_x, _mm256_setzero_ps(), _CMP_LT_OQ);
+ Packet8f zero_mask = _mm256_andnot_ps(neg_mask, le_zero_mask);
+ Packet8f infs_and_nans = _mm256_or_ps(_mm256_and_ps(neg_mask, p8f_nan),
+ _mm256_and_ps(zero_mask, p8f_inf));
+
+ // Do a single step of Newton's iteration.
+ x = pmul(x, pmadd(neg_half, pmul(x, x), p8f_one_point_five));
+
+ // Insert NaNs and Infs in all the right places.
+ return _mm256_or_ps(x, infs_and_nans);
+}
+
+#else
+template <> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet8f prsqrt<Packet8f>(const Packet8f& x) {
+ _EIGEN_DECLARE_CONST_Packet8f(one, 1.0f);
+ return _mm256_div_ps(p8f_one, _mm256_sqrt_ps(x));
+}
+#endif
+
+template <> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4d prsqrt<Packet4d>(const Packet4d& x) {
+ _EIGEN_DECLARE_CONST_Packet4d(one, 1.0);
+ return _mm256_div_pd(p4d_one, _mm256_sqrt_pd(x));
+}
+
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATH_FUNCTIONS_AVX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX/PacketMath.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX/PacketMath.h
new file mode 100644
index 000000000..195d40fb4
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX/PacketMath.h
@@ -0,0 +1,633 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2014 Benoit Steiner (benoit.steiner.goog@gmail.com)
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PACKET_MATH_AVX_H
+#define EIGEN_PACKET_MATH_AVX_H
+
+namespace Eigen {
+
+namespace internal {
+
+#ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
+#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 8
+#endif
+
+#ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS
+#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS (2*sizeof(void*))
+#endif
+
+#ifdef __FMA__
+#ifndef EIGEN_HAS_SINGLE_INSTRUCTION_MADD
+#define EIGEN_HAS_SINGLE_INSTRUCTION_MADD
+#endif
+#endif
+
+typedef __m256 Packet8f;
+typedef __m256i Packet8i;
+typedef __m256d Packet4d;
+
+template<> struct is_arithmetic<__m256> { enum { value = true }; };
+template<> struct is_arithmetic<__m256i> { enum { value = true }; };
+template<> struct is_arithmetic<__m256d> { enum { value = true }; };
+
+#define _EIGEN_DECLARE_CONST_Packet8f(NAME,X) \
+ const Packet8f p8f_##NAME = pset1<Packet8f>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet4d(NAME,X) \
+ const Packet4d p4d_##NAME = pset1<Packet4d>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet8f_FROM_INT(NAME,X) \
+ const Packet8f p8f_##NAME = _mm256_castsi256_ps(pset1<Packet8i>(X))
+
+#define _EIGEN_DECLARE_CONST_Packet8i(NAME,X) \
+ const Packet8i p8i_##NAME = pset1<Packet8i>(X)
+
+// Use the packet_traits defined in AVX512/PacketMath.h instead if we're going
+// to leverage AVX512 instructions.
+#ifndef EIGEN_VECTORIZE_AVX512
+template<> struct packet_traits<float> : default_packet_traits
+{
+ typedef Packet8f type;
+ typedef Packet4f half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size=8,
+ HasHalfPacket = 1,
+
+ HasDiv = 1,
+ HasSin = EIGEN_FAST_MATH,
+ HasCos = 0,
+ HasLog = 1,
+ HasExp = 1,
+ HasSqrt = 1,
+ HasRsqrt = 1,
+ HasTanh = EIGEN_FAST_MATH,
+ HasBlend = 1,
+ HasRound = 1,
+ HasFloor = 1,
+ HasCeil = 1
+ };
+};
+template<> struct packet_traits<double> : default_packet_traits
+{
+ typedef Packet4d type;
+ typedef Packet2d half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size=4,
+ HasHalfPacket = 1,
+
+ HasDiv = 1,
+ HasExp = 1,
+ HasSqrt = 1,
+ HasRsqrt = 1,
+ HasBlend = 1,
+ HasRound = 1,
+ HasFloor = 1,
+ HasCeil = 1
+ };
+};
+#endif
+
+template<> struct scalar_div_cost<float,true> { enum { value = 14 }; };
+template<> struct scalar_div_cost<double,true> { enum { value = 16 }; };
+
+/* Proper support for integers is only provided by AVX2. In the meantime, we'll
+ use SSE instructions and packets to deal with integers.
+template<> struct packet_traits<int> : default_packet_traits
+{
+ typedef Packet8i type;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size=8
+ };
+};
+*/
+
+template<> struct unpacket_traits<Packet8f> { typedef float type; typedef Packet4f half; enum {size=8, alignment=Aligned32}; };
+template<> struct unpacket_traits<Packet4d> { typedef double type; typedef Packet2d half; enum {size=4, alignment=Aligned32}; };
+template<> struct unpacket_traits<Packet8i> { typedef int type; typedef Packet4i half; enum {size=8, alignment=Aligned32}; };
+
+template<> EIGEN_STRONG_INLINE Packet8f pset1<Packet8f>(const float& from) { return _mm256_set1_ps(from); }
+template<> EIGEN_STRONG_INLINE Packet4d pset1<Packet4d>(const double& from) { return _mm256_set1_pd(from); }
+template<> EIGEN_STRONG_INLINE Packet8i pset1<Packet8i>(const int& from) { return _mm256_set1_epi32(from); }
+
+template<> EIGEN_STRONG_INLINE Packet8f pload1<Packet8f>(const float* from) { return _mm256_broadcast_ss(from); }
+template<> EIGEN_STRONG_INLINE Packet4d pload1<Packet4d>(const double* from) { return _mm256_broadcast_sd(from); }
+
+template<> EIGEN_STRONG_INLINE Packet8f plset<Packet8f>(const float& a) { return _mm256_add_ps(_mm256_set1_ps(a), _mm256_set_ps(7.0,6.0,5.0,4.0,3.0,2.0,1.0,0.0)); }
+template<> EIGEN_STRONG_INLINE Packet4d plset<Packet4d>(const double& a) { return _mm256_add_pd(_mm256_set1_pd(a), _mm256_set_pd(3.0,2.0,1.0,0.0)); }
+
+template<> EIGEN_STRONG_INLINE Packet8f padd<Packet8f>(const Packet8f& a, const Packet8f& b) { return _mm256_add_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4d padd<Packet4d>(const Packet4d& a, const Packet4d& b) { return _mm256_add_pd(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet8f psub<Packet8f>(const Packet8f& a, const Packet8f& b) { return _mm256_sub_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4d psub<Packet4d>(const Packet4d& a, const Packet4d& b) { return _mm256_sub_pd(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet8f pnegate(const Packet8f& a)
+{
+ return _mm256_sub_ps(_mm256_set1_ps(0.0),a);
+}
+template<> EIGEN_STRONG_INLINE Packet4d pnegate(const Packet4d& a)
+{
+ return _mm256_sub_pd(_mm256_set1_pd(0.0),a);
+}
+
+template<> EIGEN_STRONG_INLINE Packet8f pconj(const Packet8f& a) { return a; }
+template<> EIGEN_STRONG_INLINE Packet4d pconj(const Packet4d& a) { return a; }
+template<> EIGEN_STRONG_INLINE Packet8i pconj(const Packet8i& a) { return a; }
+
+template<> EIGEN_STRONG_INLINE Packet8f pmul<Packet8f>(const Packet8f& a, const Packet8f& b) { return _mm256_mul_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4d pmul<Packet4d>(const Packet4d& a, const Packet4d& b) { return _mm256_mul_pd(a,b); }
+
+
+template<> EIGEN_STRONG_INLINE Packet8f pdiv<Packet8f>(const Packet8f& a, const Packet8f& b) { return _mm256_div_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4d pdiv<Packet4d>(const Packet4d& a, const Packet4d& b) { return _mm256_div_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet8i pdiv<Packet8i>(const Packet8i& /*a*/, const Packet8i& /*b*/)
+{ eigen_assert(false && "packet integer division are not supported by AVX");
+ return pset1<Packet8i>(0);
+}
+
+#ifdef __FMA__
+template<> EIGEN_STRONG_INLINE Packet8f pmadd(const Packet8f& a, const Packet8f& b, const Packet8f& c) {
+#if ( EIGEN_COMP_GNUC_STRICT || (EIGEN_COMP_CLANG && (EIGEN_COMP_CLANG<308)) )
+ // clang stupidly generates a vfmadd213ps instruction plus some vmovaps on registers,
+ // and gcc stupidly generates a vfmadd132ps instruction,
+ // so let's enforce it to generate a vfmadd231ps instruction since the most common use case is to accumulate
+ // the result of the product.
+ Packet8f res = c;
+ __asm__("vfmadd231ps %[a], %[b], %[c]" : [c] "+x" (res) : [a] "x" (a), [b] "x" (b));
+ return res;
+#else
+ return _mm256_fmadd_ps(a,b,c);
+#endif
+}
+template<> EIGEN_STRONG_INLINE Packet4d pmadd(const Packet4d& a, const Packet4d& b, const Packet4d& c) {
+#if ( EIGEN_COMP_GNUC_STRICT || (EIGEN_COMP_CLANG && (EIGEN_COMP_CLANG<308)) )
+ // see above
+ Packet4d res = c;
+ __asm__("vfmadd231pd %[a], %[b], %[c]" : [c] "+x" (res) : [a] "x" (a), [b] "x" (b));
+ return res;
+#else
+ return _mm256_fmadd_pd(a,b,c);
+#endif
+}
+#endif
+
+template<> EIGEN_STRONG_INLINE Packet8f pmin<Packet8f>(const Packet8f& a, const Packet8f& b) { return _mm256_min_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4d pmin<Packet4d>(const Packet4d& a, const Packet4d& b) { return _mm256_min_pd(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet8f pmax<Packet8f>(const Packet8f& a, const Packet8f& b) { return _mm256_max_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4d pmax<Packet4d>(const Packet4d& a, const Packet4d& b) { return _mm256_max_pd(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet8f pround<Packet8f>(const Packet8f& a) { return _mm256_round_ps(a, _MM_FROUND_CUR_DIRECTION); }
+template<> EIGEN_STRONG_INLINE Packet4d pround<Packet4d>(const Packet4d& a) { return _mm256_round_pd(a, _MM_FROUND_CUR_DIRECTION); }
+
+template<> EIGEN_STRONG_INLINE Packet8f pceil<Packet8f>(const Packet8f& a) { return _mm256_ceil_ps(a); }
+template<> EIGEN_STRONG_INLINE Packet4d pceil<Packet4d>(const Packet4d& a) { return _mm256_ceil_pd(a); }
+
+template<> EIGEN_STRONG_INLINE Packet8f pfloor<Packet8f>(const Packet8f& a) { return _mm256_floor_ps(a); }
+template<> EIGEN_STRONG_INLINE Packet4d pfloor<Packet4d>(const Packet4d& a) { return _mm256_floor_pd(a); }
+
+template<> EIGEN_STRONG_INLINE Packet8f pand<Packet8f>(const Packet8f& a, const Packet8f& b) { return _mm256_and_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4d pand<Packet4d>(const Packet4d& a, const Packet4d& b) { return _mm256_and_pd(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet8f por<Packet8f>(const Packet8f& a, const Packet8f& b) { return _mm256_or_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4d por<Packet4d>(const Packet4d& a, const Packet4d& b) { return _mm256_or_pd(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet8f pxor<Packet8f>(const Packet8f& a, const Packet8f& b) { return _mm256_xor_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4d pxor<Packet4d>(const Packet4d& a, const Packet4d& b) { return _mm256_xor_pd(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet8f pandnot<Packet8f>(const Packet8f& a, const Packet8f& b) { return _mm256_andnot_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4d pandnot<Packet4d>(const Packet4d& a, const Packet4d& b) { return _mm256_andnot_pd(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet8f pload<Packet8f>(const float* from) { EIGEN_DEBUG_ALIGNED_LOAD return _mm256_load_ps(from); }
+template<> EIGEN_STRONG_INLINE Packet4d pload<Packet4d>(const double* from) { EIGEN_DEBUG_ALIGNED_LOAD return _mm256_load_pd(from); }
+template<> EIGEN_STRONG_INLINE Packet8i pload<Packet8i>(const int* from) { EIGEN_DEBUG_ALIGNED_LOAD return _mm256_load_si256(reinterpret_cast<const __m256i*>(from)); }
+
+template<> EIGEN_STRONG_INLINE Packet8f ploadu<Packet8f>(const float* from) { EIGEN_DEBUG_UNALIGNED_LOAD return _mm256_loadu_ps(from); }
+template<> EIGEN_STRONG_INLINE Packet4d ploadu<Packet4d>(const double* from) { EIGEN_DEBUG_UNALIGNED_LOAD return _mm256_loadu_pd(from); }
+template<> EIGEN_STRONG_INLINE Packet8i ploadu<Packet8i>(const int* from) { EIGEN_DEBUG_UNALIGNED_LOAD return _mm256_loadu_si256(reinterpret_cast<const __m256i*>(from)); }
+
+// Loads 4 floats from memory a returns the packet {a0, a0 a1, a1, a2, a2, a3, a3}
+template<> EIGEN_STRONG_INLINE Packet8f ploaddup<Packet8f>(const float* from)
+{
+ // TODO try to find a way to avoid the need of a temporary register
+// Packet8f tmp = _mm256_castps128_ps256(_mm_loadu_ps(from));
+// tmp = _mm256_insertf128_ps(tmp, _mm_movehl_ps(_mm256_castps256_ps128(tmp),_mm256_castps256_ps128(tmp)), 1);
+// return _mm256_unpacklo_ps(tmp,tmp);
+
+ // _mm256_insertf128_ps is very slow on Haswell, thus:
+ Packet8f tmp = _mm256_broadcast_ps((const __m128*)(const void*)from);
+ // mimic an "inplace" permutation of the lower 128bits using a blend
+ tmp = _mm256_blend_ps(tmp,_mm256_castps128_ps256(_mm_permute_ps( _mm256_castps256_ps128(tmp), _MM_SHUFFLE(1,0,1,0))), 15);
+ // then we can perform a consistent permutation on the global register to get everything in shape:
+ return _mm256_permute_ps(tmp, _MM_SHUFFLE(3,3,2,2));
+}
+// Loads 2 doubles from memory a returns the packet {a0, a0 a1, a1}
+template<> EIGEN_STRONG_INLINE Packet4d ploaddup<Packet4d>(const double* from)
+{
+ Packet4d tmp = _mm256_broadcast_pd((const __m128d*)(const void*)from);
+ return _mm256_permute_pd(tmp, 3<<2);
+}
+
+// Loads 2 floats from memory a returns the packet {a0, a0 a0, a0, a1, a1, a1, a1}
+template<> EIGEN_STRONG_INLINE Packet8f ploadquad<Packet8f>(const float* from)
+{
+ Packet8f tmp = _mm256_castps128_ps256(_mm_broadcast_ss(from));
+ return _mm256_insertf128_ps(tmp, _mm_broadcast_ss(from+1), 1);
+}
+
+template<> EIGEN_STRONG_INLINE void pstore<float>(float* to, const Packet8f& from) { EIGEN_DEBUG_ALIGNED_STORE _mm256_store_ps(to, from); }
+template<> EIGEN_STRONG_INLINE void pstore<double>(double* to, const Packet4d& from) { EIGEN_DEBUG_ALIGNED_STORE _mm256_store_pd(to, from); }
+template<> EIGEN_STRONG_INLINE void pstore<int>(int* to, const Packet8i& from) { EIGEN_DEBUG_ALIGNED_STORE _mm256_storeu_si256(reinterpret_cast<__m256i*>(to), from); }
+
+template<> EIGEN_STRONG_INLINE void pstoreu<float>(float* to, const Packet8f& from) { EIGEN_DEBUG_UNALIGNED_STORE _mm256_storeu_ps(to, from); }
+template<> EIGEN_STRONG_INLINE void pstoreu<double>(double* to, const Packet4d& from) { EIGEN_DEBUG_UNALIGNED_STORE _mm256_storeu_pd(to, from); }
+template<> EIGEN_STRONG_INLINE void pstoreu<int>(int* to, const Packet8i& from) { EIGEN_DEBUG_UNALIGNED_STORE _mm256_storeu_si256(reinterpret_cast<__m256i*>(to), from); }
+
+// NOTE: leverage _mm256_i32gather_ps and _mm256_i32gather_pd if AVX2 instructions are available
+// NOTE: for the record the following seems to be slower: return _mm256_i32gather_ps(from, _mm256_set1_epi32(stride), 4);
+template<> EIGEN_DEVICE_FUNC inline Packet8f pgather<float, Packet8f>(const float* from, Index stride)
+{
+ return _mm256_set_ps(from[7*stride], from[6*stride], from[5*stride], from[4*stride],
+ from[3*stride], from[2*stride], from[1*stride], from[0*stride]);
+}
+template<> EIGEN_DEVICE_FUNC inline Packet4d pgather<double, Packet4d>(const double* from, Index stride)
+{
+ return _mm256_set_pd(from[3*stride], from[2*stride], from[1*stride], from[0*stride]);
+}
+
+template<> EIGEN_DEVICE_FUNC inline void pscatter<float, Packet8f>(float* to, const Packet8f& from, Index stride)
+{
+ __m128 low = _mm256_extractf128_ps(from, 0);
+ to[stride*0] = _mm_cvtss_f32(low);
+ to[stride*1] = _mm_cvtss_f32(_mm_shuffle_ps(low, low, 1));
+ to[stride*2] = _mm_cvtss_f32(_mm_shuffle_ps(low, low, 2));
+ to[stride*3] = _mm_cvtss_f32(_mm_shuffle_ps(low, low, 3));
+
+ __m128 high = _mm256_extractf128_ps(from, 1);
+ to[stride*4] = _mm_cvtss_f32(high);
+ to[stride*5] = _mm_cvtss_f32(_mm_shuffle_ps(high, high, 1));
+ to[stride*6] = _mm_cvtss_f32(_mm_shuffle_ps(high, high, 2));
+ to[stride*7] = _mm_cvtss_f32(_mm_shuffle_ps(high, high, 3));
+}
+template<> EIGEN_DEVICE_FUNC inline void pscatter<double, Packet4d>(double* to, const Packet4d& from, Index stride)
+{
+ __m128d low = _mm256_extractf128_pd(from, 0);
+ to[stride*0] = _mm_cvtsd_f64(low);
+ to[stride*1] = _mm_cvtsd_f64(_mm_shuffle_pd(low, low, 1));
+ __m128d high = _mm256_extractf128_pd(from, 1);
+ to[stride*2] = _mm_cvtsd_f64(high);
+ to[stride*3] = _mm_cvtsd_f64(_mm_shuffle_pd(high, high, 1));
+}
+
+template<> EIGEN_STRONG_INLINE void pstore1<Packet8f>(float* to, const float& a)
+{
+ Packet8f pa = pset1<Packet8f>(a);
+ pstore(to, pa);
+}
+template<> EIGEN_STRONG_INLINE void pstore1<Packet4d>(double* to, const double& a)
+{
+ Packet4d pa = pset1<Packet4d>(a);
+ pstore(to, pa);
+}
+template<> EIGEN_STRONG_INLINE void pstore1<Packet8i>(int* to, const int& a)
+{
+ Packet8i pa = pset1<Packet8i>(a);
+ pstore(to, pa);
+}
+
+#ifndef EIGEN_VECTORIZE_AVX512
+template<> EIGEN_STRONG_INLINE void prefetch<float>(const float* addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+template<> EIGEN_STRONG_INLINE void prefetch<double>(const double* addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+template<> EIGEN_STRONG_INLINE void prefetch<int>(const int* addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+#endif
+
+template<> EIGEN_STRONG_INLINE float pfirst<Packet8f>(const Packet8f& a) {
+ return _mm_cvtss_f32(_mm256_castps256_ps128(a));
+}
+template<> EIGEN_STRONG_INLINE double pfirst<Packet4d>(const Packet4d& a) {
+ return _mm_cvtsd_f64(_mm256_castpd256_pd128(a));
+}
+template<> EIGEN_STRONG_INLINE int pfirst<Packet8i>(const Packet8i& a) {
+ return _mm_cvtsi128_si32(_mm256_castsi256_si128(a));
+}
+
+
+template<> EIGEN_STRONG_INLINE Packet8f preverse(const Packet8f& a)
+{
+ __m256 tmp = _mm256_shuffle_ps(a,a,0x1b);
+ return _mm256_permute2f128_ps(tmp, tmp, 1);
+}
+template<> EIGEN_STRONG_INLINE Packet4d preverse(const Packet4d& a)
+{
+ __m256d tmp = _mm256_shuffle_pd(a,a,5);
+ return _mm256_permute2f128_pd(tmp, tmp, 1);
+
+ __m256d swap_halves = _mm256_permute2f128_pd(a,a,1);
+ return _mm256_permute_pd(swap_halves,5);
+}
+
+// pabs should be ok
+template<> EIGEN_STRONG_INLINE Packet8f pabs(const Packet8f& a)
+{
+ const Packet8f mask = _mm256_castsi256_ps(_mm256_setr_epi32(0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF));
+ return _mm256_and_ps(a,mask);
+}
+template<> EIGEN_STRONG_INLINE Packet4d pabs(const Packet4d& a)
+{
+ const Packet4d mask = _mm256_castsi256_pd(_mm256_setr_epi32(0xFFFFFFFF,0x7FFFFFFF,0xFFFFFFFF,0x7FFFFFFF,0xFFFFFFFF,0x7FFFFFFF,0xFFFFFFFF,0x7FFFFFFF));
+ return _mm256_and_pd(a,mask);
+}
+
+// preduxp should be ok
+// FIXME: why is this ok? why isn't the simply implementation working as expected?
+template<> EIGEN_STRONG_INLINE Packet8f preduxp<Packet8f>(const Packet8f* vecs)
+{
+ __m256 hsum1 = _mm256_hadd_ps(vecs[0], vecs[1]);
+ __m256 hsum2 = _mm256_hadd_ps(vecs[2], vecs[3]);
+ __m256 hsum3 = _mm256_hadd_ps(vecs[4], vecs[5]);
+ __m256 hsum4 = _mm256_hadd_ps(vecs[6], vecs[7]);
+
+ __m256 hsum5 = _mm256_hadd_ps(hsum1, hsum1);
+ __m256 hsum6 = _mm256_hadd_ps(hsum2, hsum2);
+ __m256 hsum7 = _mm256_hadd_ps(hsum3, hsum3);
+ __m256 hsum8 = _mm256_hadd_ps(hsum4, hsum4);
+
+ __m256 perm1 = _mm256_permute2f128_ps(hsum5, hsum5, 0x23);
+ __m256 perm2 = _mm256_permute2f128_ps(hsum6, hsum6, 0x23);
+ __m256 perm3 = _mm256_permute2f128_ps(hsum7, hsum7, 0x23);
+ __m256 perm4 = _mm256_permute2f128_ps(hsum8, hsum8, 0x23);
+
+ __m256 sum1 = _mm256_add_ps(perm1, hsum5);
+ __m256 sum2 = _mm256_add_ps(perm2, hsum6);
+ __m256 sum3 = _mm256_add_ps(perm3, hsum7);
+ __m256 sum4 = _mm256_add_ps(perm4, hsum8);
+
+ __m256 blend1 = _mm256_blend_ps(sum1, sum2, 0xcc);
+ __m256 blend2 = _mm256_blend_ps(sum3, sum4, 0xcc);
+
+ __m256 final = _mm256_blend_ps(blend1, blend2, 0xf0);
+ return final;
+}
+template<> EIGEN_STRONG_INLINE Packet4d preduxp<Packet4d>(const Packet4d* vecs)
+{
+ Packet4d tmp0, tmp1;
+
+ tmp0 = _mm256_hadd_pd(vecs[0], vecs[1]);
+ tmp0 = _mm256_add_pd(tmp0, _mm256_permute2f128_pd(tmp0, tmp0, 1));
+
+ tmp1 = _mm256_hadd_pd(vecs[2], vecs[3]);
+ tmp1 = _mm256_add_pd(tmp1, _mm256_permute2f128_pd(tmp1, tmp1, 1));
+
+ return _mm256_blend_pd(tmp0, tmp1, 0xC);
+}
+
+template<> EIGEN_STRONG_INLINE float predux<Packet8f>(const Packet8f& a)
+{
+ return predux(Packet4f(_mm_add_ps(_mm256_castps256_ps128(a),_mm256_extractf128_ps(a,1))));
+}
+template<> EIGEN_STRONG_INLINE double predux<Packet4d>(const Packet4d& a)
+{
+ return predux(Packet2d(_mm_add_pd(_mm256_castpd256_pd128(a),_mm256_extractf128_pd(a,1))));
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f predux_downto4<Packet8f>(const Packet8f& a)
+{
+ return _mm_add_ps(_mm256_castps256_ps128(a),_mm256_extractf128_ps(a,1));
+}
+
+template<> EIGEN_STRONG_INLINE float predux_mul<Packet8f>(const Packet8f& a)
+{
+ Packet8f tmp;
+ tmp = _mm256_mul_ps(a, _mm256_permute2f128_ps(a,a,1));
+ tmp = _mm256_mul_ps(tmp, _mm256_shuffle_ps(tmp,tmp,_MM_SHUFFLE(1,0,3,2)));
+ return pfirst(_mm256_mul_ps(tmp, _mm256_shuffle_ps(tmp,tmp,1)));
+}
+template<> EIGEN_STRONG_INLINE double predux_mul<Packet4d>(const Packet4d& a)
+{
+ Packet4d tmp;
+ tmp = _mm256_mul_pd(a, _mm256_permute2f128_pd(a,a,1));
+ return pfirst(_mm256_mul_pd(tmp, _mm256_shuffle_pd(tmp,tmp,1)));
+}
+
+template<> EIGEN_STRONG_INLINE float predux_min<Packet8f>(const Packet8f& a)
+{
+ Packet8f tmp = _mm256_min_ps(a, _mm256_permute2f128_ps(a,a,1));
+ tmp = _mm256_min_ps(tmp, _mm256_shuffle_ps(tmp,tmp,_MM_SHUFFLE(1,0,3,2)));
+ return pfirst(_mm256_min_ps(tmp, _mm256_shuffle_ps(tmp,tmp,1)));
+}
+template<> EIGEN_STRONG_INLINE double predux_min<Packet4d>(const Packet4d& a)
+{
+ Packet4d tmp = _mm256_min_pd(a, _mm256_permute2f128_pd(a,a,1));
+ return pfirst(_mm256_min_pd(tmp, _mm256_shuffle_pd(tmp, tmp, 1)));
+}
+
+template<> EIGEN_STRONG_INLINE float predux_max<Packet8f>(const Packet8f& a)
+{
+ Packet8f tmp = _mm256_max_ps(a, _mm256_permute2f128_ps(a,a,1));
+ tmp = _mm256_max_ps(tmp, _mm256_shuffle_ps(tmp,tmp,_MM_SHUFFLE(1,0,3,2)));
+ return pfirst(_mm256_max_ps(tmp, _mm256_shuffle_ps(tmp,tmp,1)));
+}
+
+template<> EIGEN_STRONG_INLINE double predux_max<Packet4d>(const Packet4d& a)
+{
+ Packet4d tmp = _mm256_max_pd(a, _mm256_permute2f128_pd(a,a,1));
+ return pfirst(_mm256_max_pd(tmp, _mm256_shuffle_pd(tmp, tmp, 1)));
+}
+
+
+template<int Offset>
+struct palign_impl<Offset,Packet8f>
+{
+ static EIGEN_STRONG_INLINE void run(Packet8f& first, const Packet8f& second)
+ {
+ if (Offset==1)
+ {
+ first = _mm256_blend_ps(first, second, 1);
+ Packet8f tmp1 = _mm256_permute_ps (first, _MM_SHUFFLE(0,3,2,1));
+ Packet8f tmp2 = _mm256_permute2f128_ps (tmp1, tmp1, 1);
+ first = _mm256_blend_ps(tmp1, tmp2, 0x88);
+ }
+ else if (Offset==2)
+ {
+ first = _mm256_blend_ps(first, second, 3);
+ Packet8f tmp1 = _mm256_permute_ps (first, _MM_SHUFFLE(1,0,3,2));
+ Packet8f tmp2 = _mm256_permute2f128_ps (tmp1, tmp1, 1);
+ first = _mm256_blend_ps(tmp1, tmp2, 0xcc);
+ }
+ else if (Offset==3)
+ {
+ first = _mm256_blend_ps(first, second, 7);
+ Packet8f tmp1 = _mm256_permute_ps (first, _MM_SHUFFLE(2,1,0,3));
+ Packet8f tmp2 = _mm256_permute2f128_ps (tmp1, tmp1, 1);
+ first = _mm256_blend_ps(tmp1, tmp2, 0xee);
+ }
+ else if (Offset==4)
+ {
+ first = _mm256_blend_ps(first, second, 15);
+ Packet8f tmp1 = _mm256_permute_ps (first, _MM_SHUFFLE(3,2,1,0));
+ Packet8f tmp2 = _mm256_permute2f128_ps (tmp1, tmp1, 1);
+ first = _mm256_permute_ps(tmp2, _MM_SHUFFLE(3,2,1,0));
+ }
+ else if (Offset==5)
+ {
+ first = _mm256_blend_ps(first, second, 31);
+ first = _mm256_permute2f128_ps(first, first, 1);
+ Packet8f tmp = _mm256_permute_ps (first, _MM_SHUFFLE(0,3,2,1));
+ first = _mm256_permute2f128_ps(tmp, tmp, 1);
+ first = _mm256_blend_ps(tmp, first, 0x88);
+ }
+ else if (Offset==6)
+ {
+ first = _mm256_blend_ps(first, second, 63);
+ first = _mm256_permute2f128_ps(first, first, 1);
+ Packet8f tmp = _mm256_permute_ps (first, _MM_SHUFFLE(1,0,3,2));
+ first = _mm256_permute2f128_ps(tmp, tmp, 1);
+ first = _mm256_blend_ps(tmp, first, 0xcc);
+ }
+ else if (Offset==7)
+ {
+ first = _mm256_blend_ps(first, second, 127);
+ first = _mm256_permute2f128_ps(first, first, 1);
+ Packet8f tmp = _mm256_permute_ps (first, _MM_SHUFFLE(2,1,0,3));
+ first = _mm256_permute2f128_ps(tmp, tmp, 1);
+ first = _mm256_blend_ps(tmp, first, 0xee);
+ }
+ }
+};
+
+template<int Offset>
+struct palign_impl<Offset,Packet4d>
+{
+ static EIGEN_STRONG_INLINE void run(Packet4d& first, const Packet4d& second)
+ {
+ if (Offset==1)
+ {
+ first = _mm256_blend_pd(first, second, 1);
+ __m256d tmp = _mm256_permute_pd(first, 5);
+ first = _mm256_permute2f128_pd(tmp, tmp, 1);
+ first = _mm256_blend_pd(tmp, first, 0xA);
+ }
+ else if (Offset==2)
+ {
+ first = _mm256_blend_pd(first, second, 3);
+ first = _mm256_permute2f128_pd(first, first, 1);
+ }
+ else if (Offset==3)
+ {
+ first = _mm256_blend_pd(first, second, 7);
+ __m256d tmp = _mm256_permute_pd(first, 5);
+ first = _mm256_permute2f128_pd(tmp, tmp, 1);
+ first = _mm256_blend_pd(tmp, first, 5);
+ }
+ }
+};
+
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<Packet8f,8>& kernel) {
+ __m256 T0 = _mm256_unpacklo_ps(kernel.packet[0], kernel.packet[1]);
+ __m256 T1 = _mm256_unpackhi_ps(kernel.packet[0], kernel.packet[1]);
+ __m256 T2 = _mm256_unpacklo_ps(kernel.packet[2], kernel.packet[3]);
+ __m256 T3 = _mm256_unpackhi_ps(kernel.packet[2], kernel.packet[3]);
+ __m256 T4 = _mm256_unpacklo_ps(kernel.packet[4], kernel.packet[5]);
+ __m256 T5 = _mm256_unpackhi_ps(kernel.packet[4], kernel.packet[5]);
+ __m256 T6 = _mm256_unpacklo_ps(kernel.packet[6], kernel.packet[7]);
+ __m256 T7 = _mm256_unpackhi_ps(kernel.packet[6], kernel.packet[7]);
+ __m256 S0 = _mm256_shuffle_ps(T0,T2,_MM_SHUFFLE(1,0,1,0));
+ __m256 S1 = _mm256_shuffle_ps(T0,T2,_MM_SHUFFLE(3,2,3,2));
+ __m256 S2 = _mm256_shuffle_ps(T1,T3,_MM_SHUFFLE(1,0,1,0));
+ __m256 S3 = _mm256_shuffle_ps(T1,T3,_MM_SHUFFLE(3,2,3,2));
+ __m256 S4 = _mm256_shuffle_ps(T4,T6,_MM_SHUFFLE(1,0,1,0));
+ __m256 S5 = _mm256_shuffle_ps(T4,T6,_MM_SHUFFLE(3,2,3,2));
+ __m256 S6 = _mm256_shuffle_ps(T5,T7,_MM_SHUFFLE(1,0,1,0));
+ __m256 S7 = _mm256_shuffle_ps(T5,T7,_MM_SHUFFLE(3,2,3,2));
+ kernel.packet[0] = _mm256_permute2f128_ps(S0, S4, 0x20);
+ kernel.packet[1] = _mm256_permute2f128_ps(S1, S5, 0x20);
+ kernel.packet[2] = _mm256_permute2f128_ps(S2, S6, 0x20);
+ kernel.packet[3] = _mm256_permute2f128_ps(S3, S7, 0x20);
+ kernel.packet[4] = _mm256_permute2f128_ps(S0, S4, 0x31);
+ kernel.packet[5] = _mm256_permute2f128_ps(S1, S5, 0x31);
+ kernel.packet[6] = _mm256_permute2f128_ps(S2, S6, 0x31);
+ kernel.packet[7] = _mm256_permute2f128_ps(S3, S7, 0x31);
+}
+
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<Packet8f,4>& kernel) {
+ __m256 T0 = _mm256_unpacklo_ps(kernel.packet[0], kernel.packet[1]);
+ __m256 T1 = _mm256_unpackhi_ps(kernel.packet[0], kernel.packet[1]);
+ __m256 T2 = _mm256_unpacklo_ps(kernel.packet[2], kernel.packet[3]);
+ __m256 T3 = _mm256_unpackhi_ps(kernel.packet[2], kernel.packet[3]);
+
+ __m256 S0 = _mm256_shuffle_ps(T0,T2,_MM_SHUFFLE(1,0,1,0));
+ __m256 S1 = _mm256_shuffle_ps(T0,T2,_MM_SHUFFLE(3,2,3,2));
+ __m256 S2 = _mm256_shuffle_ps(T1,T3,_MM_SHUFFLE(1,0,1,0));
+ __m256 S3 = _mm256_shuffle_ps(T1,T3,_MM_SHUFFLE(3,2,3,2));
+
+ kernel.packet[0] = _mm256_permute2f128_ps(S0, S1, 0x20);
+ kernel.packet[1] = _mm256_permute2f128_ps(S2, S3, 0x20);
+ kernel.packet[2] = _mm256_permute2f128_ps(S0, S1, 0x31);
+ kernel.packet[3] = _mm256_permute2f128_ps(S2, S3, 0x31);
+}
+
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<Packet4d,4>& kernel) {
+ __m256d T0 = _mm256_shuffle_pd(kernel.packet[0], kernel.packet[1], 15);
+ __m256d T1 = _mm256_shuffle_pd(kernel.packet[0], kernel.packet[1], 0);
+ __m256d T2 = _mm256_shuffle_pd(kernel.packet[2], kernel.packet[3], 15);
+ __m256d T3 = _mm256_shuffle_pd(kernel.packet[2], kernel.packet[3], 0);
+
+ kernel.packet[1] = _mm256_permute2f128_pd(T0, T2, 32);
+ kernel.packet[3] = _mm256_permute2f128_pd(T0, T2, 49);
+ kernel.packet[0] = _mm256_permute2f128_pd(T1, T3, 32);
+ kernel.packet[2] = _mm256_permute2f128_pd(T1, T3, 49);
+}
+
+template<> EIGEN_STRONG_INLINE Packet8f pblend(const Selector<8>& ifPacket, const Packet8f& thenPacket, const Packet8f& elsePacket) {
+ const __m256 zero = _mm256_setzero_ps();
+ const __m256 select = _mm256_set_ps(ifPacket.select[7], ifPacket.select[6], ifPacket.select[5], ifPacket.select[4], ifPacket.select[3], ifPacket.select[2], ifPacket.select[1], ifPacket.select[0]);
+ __m256 false_mask = _mm256_cmp_ps(select, zero, _CMP_EQ_UQ);
+ return _mm256_blendv_ps(thenPacket, elsePacket, false_mask);
+}
+template<> EIGEN_STRONG_INLINE Packet4d pblend(const Selector<4>& ifPacket, const Packet4d& thenPacket, const Packet4d& elsePacket) {
+ const __m256d zero = _mm256_setzero_pd();
+ const __m256d select = _mm256_set_pd(ifPacket.select[3], ifPacket.select[2], ifPacket.select[1], ifPacket.select[0]);
+ __m256d false_mask = _mm256_cmp_pd(select, zero, _CMP_EQ_UQ);
+ return _mm256_blendv_pd(thenPacket, elsePacket, false_mask);
+}
+
+template<> EIGEN_STRONG_INLINE Packet8f pinsertfirst(const Packet8f& a, float b)
+{
+ return _mm256_blend_ps(a,pset1<Packet8f>(b),1);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4d pinsertfirst(const Packet4d& a, double b)
+{
+ return _mm256_blend_pd(a,pset1<Packet4d>(b),1);
+}
+
+template<> EIGEN_STRONG_INLINE Packet8f pinsertlast(const Packet8f& a, float b)
+{
+ return _mm256_blend_ps(a,pset1<Packet8f>(b),(1<<7));
+}
+
+template<> EIGEN_STRONG_INLINE Packet4d pinsertlast(const Packet4d& a, double b)
+{
+ return _mm256_blend_pd(a,pset1<Packet4d>(b),(1<<3));
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PACKET_MATH_AVX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h
new file mode 100644
index 000000000..83bfdc604
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h
@@ -0,0 +1,51 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2015 Benoit Steiner <benoit.steiner.goog@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TYPE_CASTING_AVX_H
+#define EIGEN_TYPE_CASTING_AVX_H
+
+namespace Eigen {
+
+namespace internal {
+
+// For now we use SSE to handle integers, so we can't use AVX instructions to cast
+// from int to float
+template <>
+struct type_casting_traits<float, int> {
+ enum {
+ VectorizedCast = 0,
+ SrcCoeffRatio = 1,
+ TgtCoeffRatio = 1
+ };
+};
+
+template <>
+struct type_casting_traits<int, float> {
+ enum {
+ VectorizedCast = 0,
+ SrcCoeffRatio = 1,
+ TgtCoeffRatio = 1
+ };
+};
+
+
+
+template<> EIGEN_STRONG_INLINE Packet8i pcast<Packet8f, Packet8i>(const Packet8f& a) {
+ return _mm256_cvtps_epi32(a);
+}
+
+template<> EIGEN_STRONG_INLINE Packet8f pcast<Packet8i, Packet8f>(const Packet8i& a) {
+ return _mm256_cvtepi32_ps(a);
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TYPE_CASTING_AVX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h
new file mode 100644
index 000000000..399be0ee4
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h
@@ -0,0 +1,396 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2016 Pedro Gonnet (pedro.gonnet@gmail.com)
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef THIRD_PARTY_EIGEN3_EIGEN_SRC_CORE_ARCH_AVX512_MATHFUNCTIONS_H_
+#define THIRD_PARTY_EIGEN3_EIGEN_SRC_CORE_ARCH_AVX512_MATHFUNCTIONS_H_
+
+namespace Eigen {
+
+namespace internal {
+
+// Disable the code for older versions of gcc that don't support many of the required avx512 instrinsics.
+#if EIGEN_GNUC_AT_LEAST(5, 3)
+
+#define _EIGEN_DECLARE_CONST_Packet16f(NAME, X) \
+ const Packet16f p16f_##NAME = pset1<Packet16f>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet16f_FROM_INT(NAME, X) \
+ const Packet16f p16f_##NAME = (__m512)pset1<Packet16i>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet8d(NAME, X) \
+ const Packet8d p8d_##NAME = pset1<Packet8d>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet8d_FROM_INT64(NAME, X) \
+ const Packet8d p8d_##NAME = _mm512_castsi512_pd(_mm512_set1_epi64(X))
+
+// Natural logarithm
+// Computes log(x) as log(2^e * m) = C*e + log(m), where the constant C =log(2)
+// and m is in the range [sqrt(1/2),sqrt(2)). In this range, the logarithm can
+// be easily approximated by a polynomial centered on m=1 for stability.
+#if defined(EIGEN_VECTORIZE_AVX512DQ)
+template <>
+EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet16f
+plog<Packet16f>(const Packet16f& _x) {
+ Packet16f x = _x;
+ _EIGEN_DECLARE_CONST_Packet16f(1, 1.0f);
+ _EIGEN_DECLARE_CONST_Packet16f(half, 0.5f);
+ _EIGEN_DECLARE_CONST_Packet16f(126f, 126.0f);
+
+ _EIGEN_DECLARE_CONST_Packet16f_FROM_INT(inv_mant_mask, ~0x7f800000);
+
+ // The smallest non denormalized float number.
+ _EIGEN_DECLARE_CONST_Packet16f_FROM_INT(min_norm_pos, 0x00800000);
+ _EIGEN_DECLARE_CONST_Packet16f_FROM_INT(minus_inf, 0xff800000);
+ _EIGEN_DECLARE_CONST_Packet16f_FROM_INT(nan, 0x7fc00000);
+
+ // Polynomial coefficients.
+ _EIGEN_DECLARE_CONST_Packet16f(cephes_SQRTHF, 0.707106781186547524f);
+ _EIGEN_DECLARE_CONST_Packet16f(cephes_log_p0, 7.0376836292E-2f);
+ _EIGEN_DECLARE_CONST_Packet16f(cephes_log_p1, -1.1514610310E-1f);
+ _EIGEN_DECLARE_CONST_Packet16f(cephes_log_p2, 1.1676998740E-1f);
+ _EIGEN_DECLARE_CONST_Packet16f(cephes_log_p3, -1.2420140846E-1f);
+ _EIGEN_DECLARE_CONST_Packet16f(cephes_log_p4, +1.4249322787E-1f);
+ _EIGEN_DECLARE_CONST_Packet16f(cephes_log_p5, -1.6668057665E-1f);
+ _EIGEN_DECLARE_CONST_Packet16f(cephes_log_p6, +2.0000714765E-1f);
+ _EIGEN_DECLARE_CONST_Packet16f(cephes_log_p7, -2.4999993993E-1f);
+ _EIGEN_DECLARE_CONST_Packet16f(cephes_log_p8, +3.3333331174E-1f);
+ _EIGEN_DECLARE_CONST_Packet16f(cephes_log_q1, -2.12194440e-4f);
+ _EIGEN_DECLARE_CONST_Packet16f(cephes_log_q2, 0.693359375f);
+
+ // invalid_mask is set to true when x is NaN
+ __mmask16 invalid_mask =
+ _mm512_cmp_ps_mask(x, _mm512_setzero_ps(), _CMP_NGE_UQ);
+ __mmask16 iszero_mask =
+ _mm512_cmp_ps_mask(x, _mm512_setzero_ps(), _CMP_EQ_UQ);
+
+ // Truncate input values to the minimum positive normal.
+ x = pmax(x, p16f_min_norm_pos);
+
+ // Extract the shifted exponents.
+ Packet16f emm0 = _mm512_cvtepi32_ps(_mm512_srli_epi32((__m512i)x, 23));
+ Packet16f e = _mm512_sub_ps(emm0, p16f_126f);
+
+ // Set the exponents to -1, i.e. x are in the range [0.5,1).
+ x = _mm512_and_ps(x, p16f_inv_mant_mask);
+ x = _mm512_or_ps(x, p16f_half);
+
+ // part2: Shift the inputs from the range [0.5,1) to [sqrt(1/2),sqrt(2))
+ // and shift by -1. The values are then centered around 0, which improves
+ // the stability of the polynomial evaluation.
+ // if( x < SQRTHF ) {
+ // e -= 1;
+ // x = x + x - 1.0;
+ // } else { x = x - 1.0; }
+ __mmask16 mask = _mm512_cmp_ps_mask(x, p16f_cephes_SQRTHF, _CMP_LT_OQ);
+ Packet16f tmp = _mm512_mask_blend_ps(mask, x, _mm512_setzero_ps());
+ x = psub(x, p16f_1);
+ e = psub(e, _mm512_mask_blend_ps(mask, p16f_1, _mm512_setzero_ps()));
+ x = padd(x, tmp);
+
+ Packet16f x2 = pmul(x, x);
+ Packet16f x3 = pmul(x2, x);
+
+ // Evaluate the polynomial approximant of degree 8 in three parts, probably
+ // to improve instruction-level parallelism.
+ Packet16f y, y1, y2;
+ y = pmadd(p16f_cephes_log_p0, x, p16f_cephes_log_p1);
+ y1 = pmadd(p16f_cephes_log_p3, x, p16f_cephes_log_p4);
+ y2 = pmadd(p16f_cephes_log_p6, x, p16f_cephes_log_p7);
+ y = pmadd(y, x, p16f_cephes_log_p2);
+ y1 = pmadd(y1, x, p16f_cephes_log_p5);
+ y2 = pmadd(y2, x, p16f_cephes_log_p8);
+ y = pmadd(y, x3, y1);
+ y = pmadd(y, x3, y2);
+ y = pmul(y, x3);
+
+ // Add the logarithm of the exponent back to the result of the interpolation.
+ y1 = pmul(e, p16f_cephes_log_q1);
+ tmp = pmul(x2, p16f_half);
+ y = padd(y, y1);
+ x = psub(x, tmp);
+ y2 = pmul(e, p16f_cephes_log_q2);
+ x = padd(x, y);
+ x = padd(x, y2);
+
+ // Filter out invalid inputs, i.e. negative arg will be NAN, 0 will be -INF.
+ return _mm512_mask_blend_ps(iszero_mask, p16f_minus_inf,
+ _mm512_mask_blend_ps(invalid_mask, p16f_nan, x));
+}
+#endif
+
+// Exponential function. Works by writing "x = m*log(2) + r" where
+// "m = floor(x/log(2)+1/2)" and "r" is the remainder. The result is then
+// "exp(x) = 2^m*exp(r)" where exp(r) is in the range [-1,1).
+template <>
+EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet16f
+pexp<Packet16f>(const Packet16f& _x) {
+ _EIGEN_DECLARE_CONST_Packet16f(1, 1.0f);
+ _EIGEN_DECLARE_CONST_Packet16f(half, 0.5f);
+ _EIGEN_DECLARE_CONST_Packet16f(127, 127.0f);
+
+ _EIGEN_DECLARE_CONST_Packet16f(exp_hi, 88.3762626647950f);
+ _EIGEN_DECLARE_CONST_Packet16f(exp_lo, -88.3762626647949f);
+
+ _EIGEN_DECLARE_CONST_Packet16f(cephes_LOG2EF, 1.44269504088896341f);
+
+ _EIGEN_DECLARE_CONST_Packet16f(cephes_exp_p0, 1.9875691500E-4f);
+ _EIGEN_DECLARE_CONST_Packet16f(cephes_exp_p1, 1.3981999507E-3f);
+ _EIGEN_DECLARE_CONST_Packet16f(cephes_exp_p2, 8.3334519073E-3f);
+ _EIGEN_DECLARE_CONST_Packet16f(cephes_exp_p3, 4.1665795894E-2f);
+ _EIGEN_DECLARE_CONST_Packet16f(cephes_exp_p4, 1.6666665459E-1f);
+ _EIGEN_DECLARE_CONST_Packet16f(cephes_exp_p5, 5.0000001201E-1f);
+
+ // Clamp x.
+ Packet16f x = pmax(pmin(_x, p16f_exp_hi), p16f_exp_lo);
+
+ // Express exp(x) as exp(m*ln(2) + r), start by extracting
+ // m = floor(x/ln(2) + 0.5).
+ Packet16f m = _mm512_floor_ps(pmadd(x, p16f_cephes_LOG2EF, p16f_half));
+
+ // Get r = x - m*ln(2). Note that we can do this without losing more than one
+ // ulp precision due to the FMA instruction.
+ _EIGEN_DECLARE_CONST_Packet16f(nln2, -0.6931471805599453f);
+ Packet16f r = _mm512_fmadd_ps(m, p16f_nln2, x);
+ Packet16f r2 = pmul(r, r);
+
+ // TODO(gonnet): Split into odd/even polynomials and try to exploit
+ // instruction-level parallelism.
+ Packet16f y = p16f_cephes_exp_p0;
+ y = pmadd(y, r, p16f_cephes_exp_p1);
+ y = pmadd(y, r, p16f_cephes_exp_p2);
+ y = pmadd(y, r, p16f_cephes_exp_p3);
+ y = pmadd(y, r, p16f_cephes_exp_p4);
+ y = pmadd(y, r, p16f_cephes_exp_p5);
+ y = pmadd(y, r2, r);
+ y = padd(y, p16f_1);
+
+ // Build emm0 = 2^m.
+ Packet16i emm0 = _mm512_cvttps_epi32(padd(m, p16f_127));
+ emm0 = _mm512_slli_epi32(emm0, 23);
+
+ // Return 2^m * exp(r).
+ return pmax(pmul(y, _mm512_castsi512_ps(emm0)), _x);
+}
+
+/*template <>
+EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet8d
+pexp<Packet8d>(const Packet8d& _x) {
+ Packet8d x = _x;
+
+ _EIGEN_DECLARE_CONST_Packet8d(1, 1.0);
+ _EIGEN_DECLARE_CONST_Packet8d(2, 2.0);
+
+ _EIGEN_DECLARE_CONST_Packet8d(exp_hi, 709.437);
+ _EIGEN_DECLARE_CONST_Packet8d(exp_lo, -709.436139303);
+
+ _EIGEN_DECLARE_CONST_Packet8d(cephes_LOG2EF, 1.4426950408889634073599);
+
+ _EIGEN_DECLARE_CONST_Packet8d(cephes_exp_p0, 1.26177193074810590878e-4);
+ _EIGEN_DECLARE_CONST_Packet8d(cephes_exp_p1, 3.02994407707441961300e-2);
+ _EIGEN_DECLARE_CONST_Packet8d(cephes_exp_p2, 9.99999999999999999910e-1);
+
+ _EIGEN_DECLARE_CONST_Packet8d(cephes_exp_q0, 3.00198505138664455042e-6);
+ _EIGEN_DECLARE_CONST_Packet8d(cephes_exp_q1, 2.52448340349684104192e-3);
+ _EIGEN_DECLARE_CONST_Packet8d(cephes_exp_q2, 2.27265548208155028766e-1);
+ _EIGEN_DECLARE_CONST_Packet8d(cephes_exp_q3, 2.00000000000000000009e0);
+
+ _EIGEN_DECLARE_CONST_Packet8d(cephes_exp_C1, 0.693145751953125);
+ _EIGEN_DECLARE_CONST_Packet8d(cephes_exp_C2, 1.42860682030941723212e-6);
+
+ // clamp x
+ x = pmax(pmin(x, p8d_exp_hi), p8d_exp_lo);
+
+ // Express exp(x) as exp(g + n*log(2)).
+ const Packet8d n =
+ _mm512_mul_round_pd(p8d_cephes_LOG2EF, x, _MM_FROUND_TO_NEAREST_INT);
+
+ // Get the remainder modulo log(2), i.e. the "g" described above. Subtract
+ // n*log(2) out in two steps, i.e. n*C1 + n*C2, C1+C2=log2 to get the last
+ // digits right.
+ const Packet8d nC1 = pmul(n, p8d_cephes_exp_C1);
+ const Packet8d nC2 = pmul(n, p8d_cephes_exp_C2);
+ x = psub(x, nC1);
+ x = psub(x, nC2);
+
+ const Packet8d x2 = pmul(x, x);
+
+ // Evaluate the numerator polynomial of the rational interpolant.
+ Packet8d px = p8d_cephes_exp_p0;
+ px = pmadd(px, x2, p8d_cephes_exp_p1);
+ px = pmadd(px, x2, p8d_cephes_exp_p2);
+ px = pmul(px, x);
+
+ // Evaluate the denominator polynomial of the rational interpolant.
+ Packet8d qx = p8d_cephes_exp_q0;
+ qx = pmadd(qx, x2, p8d_cephes_exp_q1);
+ qx = pmadd(qx, x2, p8d_cephes_exp_q2);
+ qx = pmadd(qx, x2, p8d_cephes_exp_q3);
+
+ // I don't really get this bit, copied from the SSE2 routines, so...
+ // TODO(gonnet): Figure out what is going on here, perhaps find a better
+ // rational interpolant?
+ x = _mm512_div_pd(px, psub(qx, px));
+ x = pmadd(p8d_2, x, p8d_1);
+
+ // Build e=2^n.
+ const Packet8d e = _mm512_castsi512_pd(_mm512_slli_epi64(
+ _mm512_add_epi64(_mm512_cvtpd_epi64(n), _mm512_set1_epi64(1023)), 52));
+
+ // Construct the result 2^n * exp(g) = e * x. The max is used to catch
+ // non-finite values in the input.
+ return pmax(pmul(x, e), _x);
+ }*/
+
+// Functions for sqrt.
+// The EIGEN_FAST_MATH version uses the _mm_rsqrt_ps approximation and one step
+// of Newton's method, at a cost of 1-2 bits of precision as opposed to the
+// exact solution. The main advantage of this approach is not just speed, but
+// also the fact that it can be inlined and pipelined with other computations,
+// further reducing its effective latency.
+#if EIGEN_FAST_MATH
+template <>
+EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet16f
+psqrt<Packet16f>(const Packet16f& _x) {
+ _EIGEN_DECLARE_CONST_Packet16f(one_point_five, 1.5f);
+ _EIGEN_DECLARE_CONST_Packet16f(minus_half, -0.5f);
+ _EIGEN_DECLARE_CONST_Packet16f_FROM_INT(flt_min, 0x00800000);
+
+ Packet16f neg_half = pmul(_x, p16f_minus_half);
+
+ // select only the inverse sqrt of positive normal inputs (denormals are
+ // flushed to zero and cause infs as well).
+ __mmask16 non_zero_mask = _mm512_cmp_ps_mask(_x, p16f_flt_min, _CMP_GE_OQ);
+ Packet16f x = _mm512_mask_blend_ps(non_zero_mask, _mm512_rsqrt14_ps(_x),
+ _mm512_setzero_ps());
+
+ // Do a single step of Newton's iteration.
+ x = pmul(x, pmadd(neg_half, pmul(x, x), p16f_one_point_five));
+
+ // Multiply the original _x by it's reciprocal square root to extract the
+ // square root.
+ return pmul(_x, x);
+}
+
+template <>
+EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet8d
+psqrt<Packet8d>(const Packet8d& _x) {
+ _EIGEN_DECLARE_CONST_Packet8d(one_point_five, 1.5);
+ _EIGEN_DECLARE_CONST_Packet8d(minus_half, -0.5);
+ _EIGEN_DECLARE_CONST_Packet8d_FROM_INT64(dbl_min, 0x0010000000000000LL);
+
+ Packet8d neg_half = pmul(_x, p8d_minus_half);
+
+ // select only the inverse sqrt of positive normal inputs (denormals are
+ // flushed to zero and cause infs as well).
+ __mmask8 non_zero_mask = _mm512_cmp_pd_mask(_x, p8d_dbl_min, _CMP_GE_OQ);
+ Packet8d x = _mm512_mask_blend_pd(non_zero_mask, _mm512_rsqrt14_pd(_x),
+ _mm512_setzero_pd());
+
+ // Do a first step of Newton's iteration.
+ x = pmul(x, pmadd(neg_half, pmul(x, x), p8d_one_point_five));
+
+ // Do a second step of Newton's iteration.
+ x = pmul(x, pmadd(neg_half, pmul(x, x), p8d_one_point_five));
+
+ // Multiply the original _x by it's reciprocal square root to extract the
+ // square root.
+ return pmul(_x, x);
+}
+#else
+template <>
+EIGEN_STRONG_INLINE Packet16f psqrt<Packet16f>(const Packet16f& x) {
+ return _mm512_sqrt_ps(x);
+}
+template <>
+EIGEN_STRONG_INLINE Packet8d psqrt<Packet8d>(const Packet8d& x) {
+ return _mm512_sqrt_pd(x);
+}
+#endif
+
+// Functions for rsqrt.
+// Almost identical to the sqrt routine, just leave out the last multiplication
+// and fill in NaN/Inf where needed. Note that this function only exists as an
+// iterative version for doubles since there is no instruction for diretly
+// computing the reciprocal square root in AVX-512.
+#ifdef EIGEN_FAST_MATH
+template <>
+EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet16f
+prsqrt<Packet16f>(const Packet16f& _x) {
+ _EIGEN_DECLARE_CONST_Packet16f_FROM_INT(inf, 0x7f800000);
+ _EIGEN_DECLARE_CONST_Packet16f_FROM_INT(nan, 0x7fc00000);
+ _EIGEN_DECLARE_CONST_Packet16f(one_point_five, 1.5f);
+ _EIGEN_DECLARE_CONST_Packet16f(minus_half, -0.5f);
+ _EIGEN_DECLARE_CONST_Packet16f_FROM_INT(flt_min, 0x00800000);
+
+ Packet16f neg_half = pmul(_x, p16f_minus_half);
+
+ // select only the inverse sqrt of positive normal inputs (denormals are
+ // flushed to zero and cause infs as well).
+ __mmask16 le_zero_mask = _mm512_cmp_ps_mask(_x, p16f_flt_min, _CMP_LT_OQ);
+ Packet16f x = _mm512_mask_blend_ps(le_zero_mask, _mm512_setzero_ps(),
+ _mm512_rsqrt14_ps(_x));
+
+ // Fill in NaNs and Infs for the negative/zero entries.
+ __mmask16 neg_mask = _mm512_cmp_ps_mask(_x, _mm512_setzero_ps(), _CMP_LT_OQ);
+ Packet16f infs_and_nans = _mm512_mask_blend_ps(
+ neg_mask, p16f_nan,
+ _mm512_mask_blend_ps(le_zero_mask, p16f_inf, _mm512_setzero_ps()));
+
+ // Do a single step of Newton's iteration.
+ x = pmul(x, pmadd(neg_half, pmul(x, x), p16f_one_point_five));
+
+ // Insert NaNs and Infs in all the right places.
+ return _mm512_mask_blend_ps(le_zero_mask, infs_and_nans, x);
+}
+
+template <>
+EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet8d
+prsqrt<Packet8d>(const Packet8d& _x) {
+ _EIGEN_DECLARE_CONST_Packet8d_FROM_INT64(inf, 0x7ff0000000000000LL);
+ _EIGEN_DECLARE_CONST_Packet8d_FROM_INT64(nan, 0x7ff1000000000000LL);
+ _EIGEN_DECLARE_CONST_Packet8d(one_point_five, 1.5);
+ _EIGEN_DECLARE_CONST_Packet8d(minus_half, -0.5);
+ _EIGEN_DECLARE_CONST_Packet8d_FROM_INT64(dbl_min, 0x0010000000000000LL);
+
+ Packet8d neg_half = pmul(_x, p8d_minus_half);
+
+ // select only the inverse sqrt of positive normal inputs (denormals are
+ // flushed to zero and cause infs as well).
+ __mmask8 le_zero_mask = _mm512_cmp_pd_mask(_x, p8d_dbl_min, _CMP_LT_OQ);
+ Packet8d x = _mm512_mask_blend_pd(le_zero_mask, _mm512_setzero_pd(),
+ _mm512_rsqrt14_pd(_x));
+
+ // Fill in NaNs and Infs for the negative/zero entries.
+ __mmask8 neg_mask = _mm512_cmp_pd_mask(_x, _mm512_setzero_pd(), _CMP_LT_OQ);
+ Packet8d infs_and_nans = _mm512_mask_blend_pd(
+ neg_mask, p8d_nan,
+ _mm512_mask_blend_pd(le_zero_mask, p8d_inf, _mm512_setzero_pd()));
+
+ // Do a first step of Newton's iteration.
+ x = pmul(x, pmadd(neg_half, pmul(x, x), p8d_one_point_five));
+
+ // Do a second step of Newton's iteration.
+ x = pmul(x, pmadd(neg_half, pmul(x, x), p8d_one_point_five));
+
+ // Insert NaNs and Infs in all the right places.
+ return _mm512_mask_blend_pd(le_zero_mask, infs_and_nans, x);
+}
+#else
+template <>
+EIGEN_STRONG_INLINE Packet16f prsqrt<Packet16f>(const Packet16f& x) {
+ return _mm512_rsqrt28_ps(x);
+}
+#endif
+#endif
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // THIRD_PARTY_EIGEN3_EIGEN_SRC_CORE_ARCH_AVX512_MATHFUNCTIONS_H_
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h
new file mode 100644
index 000000000..f6500a16e
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h
@@ -0,0 +1,1316 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2016 Benoit Steiner (benoit.steiner.goog@gmail.com)
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PACKET_MATH_AVX512_H
+#define EIGEN_PACKET_MATH_AVX512_H
+
+namespace Eigen {
+
+namespace internal {
+
+#ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
+#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 8
+#endif
+
+#ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS
+#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS (2*sizeof(void*))
+#endif
+
+#ifdef __FMA__
+#ifndef EIGEN_HAS_SINGLE_INSTRUCTION_MADD
+#define EIGEN_HAS_SINGLE_INSTRUCTION_MADD
+#endif
+#endif
+
+typedef __m512 Packet16f;
+typedef __m512i Packet16i;
+typedef __m512d Packet8d;
+
+template <>
+struct is_arithmetic<__m512> {
+ enum { value = true };
+};
+template <>
+struct is_arithmetic<__m512i> {
+ enum { value = true };
+};
+template <>
+struct is_arithmetic<__m512d> {
+ enum { value = true };
+};
+
+template<> struct packet_traits<float> : default_packet_traits
+{
+ typedef Packet16f type;
+ typedef Packet8f half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size = 16,
+ HasHalfPacket = 1,
+#if EIGEN_GNUC_AT_LEAST(5, 3)
+#ifdef EIGEN_VECTORIZE_AVX512DQ
+ HasLog = 1,
+#endif
+ HasExp = 1,
+ HasSqrt = 1,
+ HasRsqrt = 1,
+#endif
+ HasDiv = 1
+ };
+ };
+template<> struct packet_traits<double> : default_packet_traits
+{
+ typedef Packet8d type;
+ typedef Packet4d half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size = 8,
+ HasHalfPacket = 1,
+#if EIGEN_GNUC_AT_LEAST(5, 3)
+ HasSqrt = 1,
+ HasRsqrt = EIGEN_FAST_MATH,
+#endif
+ HasDiv = 1
+ };
+};
+
+/* TODO Implement AVX512 for integers
+template<> struct packet_traits<int> : default_packet_traits
+{
+ typedef Packet16i type;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size=8
+ };
+};
+*/
+
+template <>
+struct unpacket_traits<Packet16f> {
+ typedef float type;
+ typedef Packet8f half;
+ enum { size = 16, alignment=Aligned64 };
+};
+template <>
+struct unpacket_traits<Packet8d> {
+ typedef double type;
+ typedef Packet4d half;
+ enum { size = 8, alignment=Aligned64 };
+};
+template <>
+struct unpacket_traits<Packet16i> {
+ typedef int type;
+ typedef Packet8i half;
+ enum { size = 16, alignment=Aligned64 };
+};
+
+template <>
+EIGEN_STRONG_INLINE Packet16f pset1<Packet16f>(const float& from) {
+ return _mm512_set1_ps(from);
+}
+template <>
+EIGEN_STRONG_INLINE Packet8d pset1<Packet8d>(const double& from) {
+ return _mm512_set1_pd(from);
+}
+template <>
+EIGEN_STRONG_INLINE Packet16i pset1<Packet16i>(const int& from) {
+ return _mm512_set1_epi32(from);
+}
+
+template <>
+EIGEN_STRONG_INLINE Packet16f pload1<Packet16f>(const float* from) {
+ return _mm512_broadcastss_ps(_mm_load_ps1(from));
+}
+template <>
+EIGEN_STRONG_INLINE Packet8d pload1<Packet8d>(const double* from) {
+ return _mm512_broadcastsd_pd(_mm_load_pd1(from));
+}
+
+template <>
+EIGEN_STRONG_INLINE Packet16f plset<Packet16f>(const float& a) {
+ return _mm512_add_ps(
+ _mm512_set1_ps(a),
+ _mm512_set_ps(15.0f, 14.0f, 13.0f, 12.0f, 11.0f, 10.0f, 9.0f, 8.0f, 7.0f, 6.0f, 5.0f,
+ 4.0f, 3.0f, 2.0f, 1.0f, 0.0f));
+}
+template <>
+EIGEN_STRONG_INLINE Packet8d plset<Packet8d>(const double& a) {
+ return _mm512_add_pd(_mm512_set1_pd(a),
+ _mm512_set_pd(7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0, 0.0));
+}
+
+template <>
+EIGEN_STRONG_INLINE Packet16f padd<Packet16f>(const Packet16f& a,
+ const Packet16f& b) {
+ return _mm512_add_ps(a, b);
+}
+template <>
+EIGEN_STRONG_INLINE Packet8d padd<Packet8d>(const Packet8d& a,
+ const Packet8d& b) {
+ return _mm512_add_pd(a, b);
+}
+
+template <>
+EIGEN_STRONG_INLINE Packet16f psub<Packet16f>(const Packet16f& a,
+ const Packet16f& b) {
+ return _mm512_sub_ps(a, b);
+}
+template <>
+EIGEN_STRONG_INLINE Packet8d psub<Packet8d>(const Packet8d& a,
+ const Packet8d& b) {
+ return _mm512_sub_pd(a, b);
+}
+
+template <>
+EIGEN_STRONG_INLINE Packet16f pnegate(const Packet16f& a) {
+ return _mm512_sub_ps(_mm512_set1_ps(0.0), a);
+}
+template <>
+EIGEN_STRONG_INLINE Packet8d pnegate(const Packet8d& a) {
+ return _mm512_sub_pd(_mm512_set1_pd(0.0), a);
+}
+
+template <>
+EIGEN_STRONG_INLINE Packet16f pconj(const Packet16f& a) {
+ return a;
+}
+template <>
+EIGEN_STRONG_INLINE Packet8d pconj(const Packet8d& a) {
+ return a;
+}
+template <>
+EIGEN_STRONG_INLINE Packet16i pconj(const Packet16i& a) {
+ return a;
+}
+
+template <>
+EIGEN_STRONG_INLINE Packet16f pmul<Packet16f>(const Packet16f& a,
+ const Packet16f& b) {
+ return _mm512_mul_ps(a, b);
+}
+template <>
+EIGEN_STRONG_INLINE Packet8d pmul<Packet8d>(const Packet8d& a,
+ const Packet8d& b) {
+ return _mm512_mul_pd(a, b);
+}
+
+template <>
+EIGEN_STRONG_INLINE Packet16f pdiv<Packet16f>(const Packet16f& a,
+ const Packet16f& b) {
+ return _mm512_div_ps(a, b);
+}
+template <>
+EIGEN_STRONG_INLINE Packet8d pdiv<Packet8d>(const Packet8d& a,
+ const Packet8d& b) {
+ return _mm512_div_pd(a, b);
+}
+
+#ifdef __FMA__
+template <>
+EIGEN_STRONG_INLINE Packet16f pmadd(const Packet16f& a, const Packet16f& b,
+ const Packet16f& c) {
+ return _mm512_fmadd_ps(a, b, c);
+}
+template <>
+EIGEN_STRONG_INLINE Packet8d pmadd(const Packet8d& a, const Packet8d& b,
+ const Packet8d& c) {
+ return _mm512_fmadd_pd(a, b, c);
+}
+#endif
+
+template <>
+EIGEN_STRONG_INLINE Packet16f pmin<Packet16f>(const Packet16f& a,
+ const Packet16f& b) {
+ return _mm512_min_ps(a, b);
+}
+template <>
+EIGEN_STRONG_INLINE Packet8d pmin<Packet8d>(const Packet8d& a,
+ const Packet8d& b) {
+ return _mm512_min_pd(a, b);
+}
+
+template <>
+EIGEN_STRONG_INLINE Packet16f pmax<Packet16f>(const Packet16f& a,
+ const Packet16f& b) {
+ return _mm512_max_ps(a, b);
+}
+template <>
+EIGEN_STRONG_INLINE Packet8d pmax<Packet8d>(const Packet8d& a,
+ const Packet8d& b) {
+ return _mm512_max_pd(a, b);
+}
+
+template <>
+EIGEN_STRONG_INLINE Packet16f pand<Packet16f>(const Packet16f& a,
+ const Packet16f& b) {
+#ifdef EIGEN_VECTORIZE_AVX512DQ
+ return _mm512_and_ps(a, b);
+#else
+ Packet16f res = _mm512_undefined_ps();
+ Packet4f lane0_a = _mm512_extractf32x4_ps(a, 0);
+ Packet4f lane0_b = _mm512_extractf32x4_ps(b, 0);
+ res = _mm512_insertf32x4(res, _mm_and_ps(lane0_a, lane0_b), 0);
+
+ Packet4f lane1_a = _mm512_extractf32x4_ps(a, 1);
+ Packet4f lane1_b = _mm512_extractf32x4_ps(b, 1);
+ res = _mm512_insertf32x4(res, _mm_and_ps(lane1_a, lane1_b), 1);
+
+ Packet4f lane2_a = _mm512_extractf32x4_ps(a, 2);
+ Packet4f lane2_b = _mm512_extractf32x4_ps(b, 2);
+ res = _mm512_insertf32x4(res, _mm_and_ps(lane2_a, lane2_b), 2);
+
+ Packet4f lane3_a = _mm512_extractf32x4_ps(a, 3);
+ Packet4f lane3_b = _mm512_extractf32x4_ps(b, 3);
+ res = _mm512_insertf32x4(res, _mm_and_ps(lane3_a, lane3_b), 3);
+
+ return res;
+#endif
+}
+template <>
+EIGEN_STRONG_INLINE Packet8d pand<Packet8d>(const Packet8d& a,
+ const Packet8d& b) {
+#ifdef EIGEN_VECTORIZE_AVX512DQ
+ return _mm512_and_pd(a, b);
+#else
+ Packet8d res = _mm512_undefined_pd();
+ Packet4d lane0_a = _mm512_extractf64x4_pd(a, 0);
+ Packet4d lane0_b = _mm512_extractf64x4_pd(b, 0);
+ res = _mm512_insertf64x4(res, _mm256_and_pd(lane0_a, lane0_b), 0);
+
+ Packet4d lane1_a = _mm512_extractf64x4_pd(a, 1);
+ Packet4d lane1_b = _mm512_extractf64x4_pd(b, 1);
+ res = _mm512_insertf64x4(res, _mm256_and_pd(lane1_a, lane1_b), 1);
+
+ return res;
+#endif
+}
+template <>
+EIGEN_STRONG_INLINE Packet16f por<Packet16f>(const Packet16f& a,
+ const Packet16f& b) {
+#ifdef EIGEN_VECTORIZE_AVX512DQ
+ return _mm512_or_ps(a, b);
+#else
+ Packet16f res = _mm512_undefined_ps();
+ Packet4f lane0_a = _mm512_extractf32x4_ps(a, 0);
+ Packet4f lane0_b = _mm512_extractf32x4_ps(b, 0);
+ res = _mm512_insertf32x4(res, _mm_or_ps(lane0_a, lane0_b), 0);
+
+ Packet4f lane1_a = _mm512_extractf32x4_ps(a, 1);
+ Packet4f lane1_b = _mm512_extractf32x4_ps(b, 1);
+ res = _mm512_insertf32x4(res, _mm_or_ps(lane1_a, lane1_b), 1);
+
+ Packet4f lane2_a = _mm512_extractf32x4_ps(a, 2);
+ Packet4f lane2_b = _mm512_extractf32x4_ps(b, 2);
+ res = _mm512_insertf32x4(res, _mm_or_ps(lane2_a, lane2_b), 2);
+
+ Packet4f lane3_a = _mm512_extractf32x4_ps(a, 3);
+ Packet4f lane3_b = _mm512_extractf32x4_ps(b, 3);
+ res = _mm512_insertf32x4(res, _mm_or_ps(lane3_a, lane3_b), 3);
+
+ return res;
+#endif
+}
+
+template <>
+EIGEN_STRONG_INLINE Packet8d por<Packet8d>(const Packet8d& a,
+ const Packet8d& b) {
+#ifdef EIGEN_VECTORIZE_AVX512DQ
+ return _mm512_or_pd(a, b);
+#else
+ Packet8d res = _mm512_undefined_pd();
+ Packet4d lane0_a = _mm512_extractf64x4_pd(a, 0);
+ Packet4d lane0_b = _mm512_extractf64x4_pd(b, 0);
+ res = _mm512_insertf64x4(res, _mm256_or_pd(lane0_a, lane0_b), 0);
+
+ Packet4d lane1_a = _mm512_extractf64x4_pd(a, 1);
+ Packet4d lane1_b = _mm512_extractf64x4_pd(b, 1);
+ res = _mm512_insertf64x4(res, _mm256_or_pd(lane1_a, lane1_b), 1);
+
+ return res;
+#endif
+}
+
+template <>
+EIGEN_STRONG_INLINE Packet16f pxor<Packet16f>(const Packet16f& a,
+ const Packet16f& b) {
+#ifdef EIGEN_VECTORIZE_AVX512DQ
+ return _mm512_xor_ps(a, b);
+#else
+ Packet16f res = _mm512_undefined_ps();
+ Packet4f lane0_a = _mm512_extractf32x4_ps(a, 0);
+ Packet4f lane0_b = _mm512_extractf32x4_ps(b, 0);
+ res = _mm512_insertf32x4(res, _mm_xor_ps(lane0_a, lane0_b), 0);
+
+ Packet4f lane1_a = _mm512_extractf32x4_ps(a, 1);
+ Packet4f lane1_b = _mm512_extractf32x4_ps(b, 1);
+ res = _mm512_insertf32x4(res, _mm_xor_ps(lane1_a, lane1_b), 1);
+
+ Packet4f lane2_a = _mm512_extractf32x4_ps(a, 2);
+ Packet4f lane2_b = _mm512_extractf32x4_ps(b, 2);
+ res = _mm512_insertf32x4(res, _mm_xor_ps(lane2_a, lane2_b), 2);
+
+ Packet4f lane3_a = _mm512_extractf32x4_ps(a, 3);
+ Packet4f lane3_b = _mm512_extractf32x4_ps(b, 3);
+ res = _mm512_insertf32x4(res, _mm_xor_ps(lane3_a, lane3_b), 3);
+
+ return res;
+#endif
+}
+template <>
+EIGEN_STRONG_INLINE Packet8d pxor<Packet8d>(const Packet8d& a,
+ const Packet8d& b) {
+#ifdef EIGEN_VECTORIZE_AVX512DQ
+ return _mm512_xor_pd(a, b);
+#else
+ Packet8d res = _mm512_undefined_pd();
+ Packet4d lane0_a = _mm512_extractf64x4_pd(a, 0);
+ Packet4d lane0_b = _mm512_extractf64x4_pd(b, 0);
+ res = _mm512_insertf64x4(res, _mm256_xor_pd(lane0_a, lane0_b), 0);
+
+ Packet4d lane1_a = _mm512_extractf64x4_pd(a, 1);
+ Packet4d lane1_b = _mm512_extractf64x4_pd(b, 1);
+ res = _mm512_insertf64x4(res, _mm256_xor_pd(lane1_a, lane1_b), 1);
+
+ return res;
+#endif
+}
+
+template <>
+EIGEN_STRONG_INLINE Packet16f pandnot<Packet16f>(const Packet16f& a,
+ const Packet16f& b) {
+#ifdef EIGEN_VECTORIZE_AVX512DQ
+ return _mm512_andnot_ps(a, b);
+#else
+ Packet16f res = _mm512_undefined_ps();
+ Packet4f lane0_a = _mm512_extractf32x4_ps(a, 0);
+ Packet4f lane0_b = _mm512_extractf32x4_ps(b, 0);
+ res = _mm512_insertf32x4(res, _mm_andnot_ps(lane0_a, lane0_b), 0);
+
+ Packet4f lane1_a = _mm512_extractf32x4_ps(a, 1);
+ Packet4f lane1_b = _mm512_extractf32x4_ps(b, 1);
+ res = _mm512_insertf32x4(res, _mm_andnot_ps(lane1_a, lane1_b), 1);
+
+ Packet4f lane2_a = _mm512_extractf32x4_ps(a, 2);
+ Packet4f lane2_b = _mm512_extractf32x4_ps(b, 2);
+ res = _mm512_insertf32x4(res, _mm_andnot_ps(lane2_a, lane2_b), 2);
+
+ Packet4f lane3_a = _mm512_extractf32x4_ps(a, 3);
+ Packet4f lane3_b = _mm512_extractf32x4_ps(b, 3);
+ res = _mm512_insertf32x4(res, _mm_andnot_ps(lane3_a, lane3_b), 3);
+
+ return res;
+#endif
+}
+template <>
+EIGEN_STRONG_INLINE Packet8d pandnot<Packet8d>(const Packet8d& a,
+ const Packet8d& b) {
+#ifdef EIGEN_VECTORIZE_AVX512DQ
+ return _mm512_andnot_pd(a, b);
+#else
+ Packet8d res = _mm512_undefined_pd();
+ Packet4d lane0_a = _mm512_extractf64x4_pd(a, 0);
+ Packet4d lane0_b = _mm512_extractf64x4_pd(b, 0);
+ res = _mm512_insertf64x4(res, _mm256_andnot_pd(lane0_a, lane0_b), 0);
+
+ Packet4d lane1_a = _mm512_extractf64x4_pd(a, 1);
+ Packet4d lane1_b = _mm512_extractf64x4_pd(b, 1);
+ res = _mm512_insertf64x4(res, _mm256_andnot_pd(lane1_a, lane1_b), 1);
+
+ return res;
+#endif
+}
+
+template <>
+EIGEN_STRONG_INLINE Packet16f pload<Packet16f>(const float* from) {
+ EIGEN_DEBUG_ALIGNED_LOAD return _mm512_load_ps(from);
+}
+template <>
+EIGEN_STRONG_INLINE Packet8d pload<Packet8d>(const double* from) {
+ EIGEN_DEBUG_ALIGNED_LOAD return _mm512_load_pd(from);
+}
+template <>
+EIGEN_STRONG_INLINE Packet16i pload<Packet16i>(const int* from) {
+ EIGEN_DEBUG_ALIGNED_LOAD return _mm512_load_si512(
+ reinterpret_cast<const __m512i*>(from));
+}
+
+template <>
+EIGEN_STRONG_INLINE Packet16f ploadu<Packet16f>(const float* from) {
+ EIGEN_DEBUG_UNALIGNED_LOAD return _mm512_loadu_ps(from);
+}
+template <>
+EIGEN_STRONG_INLINE Packet8d ploadu<Packet8d>(const double* from) {
+ EIGEN_DEBUG_UNALIGNED_LOAD return _mm512_loadu_pd(from);
+}
+template <>
+EIGEN_STRONG_INLINE Packet16i ploadu<Packet16i>(const int* from) {
+ EIGEN_DEBUG_UNALIGNED_LOAD return _mm512_loadu_si512(
+ reinterpret_cast<const __m512i*>(from));
+}
+
+// Loads 8 floats from memory a returns the packet
+// {a0, a0 a1, a1, a2, a2, a3, a3, a4, a4, a5, a5, a6, a6, a7, a7}
+template <>
+EIGEN_STRONG_INLINE Packet16f ploaddup<Packet16f>(const float* from) {
+ Packet8f lane0 = _mm256_broadcast_ps((const __m128*)(const void*)from);
+ // mimic an "inplace" permutation of the lower 128bits using a blend
+ lane0 = _mm256_blend_ps(
+ lane0, _mm256_castps128_ps256(_mm_permute_ps(
+ _mm256_castps256_ps128(lane0), _MM_SHUFFLE(1, 0, 1, 0))),
+ 15);
+ // then we can perform a consistent permutation on the global register to get
+ // everything in shape:
+ lane0 = _mm256_permute_ps(lane0, _MM_SHUFFLE(3, 3, 2, 2));
+
+ Packet8f lane1 = _mm256_broadcast_ps((const __m128*)(const void*)(from + 4));
+ // mimic an "inplace" permutation of the lower 128bits using a blend
+ lane1 = _mm256_blend_ps(
+ lane1, _mm256_castps128_ps256(_mm_permute_ps(
+ _mm256_castps256_ps128(lane1), _MM_SHUFFLE(1, 0, 1, 0))),
+ 15);
+ // then we can perform a consistent permutation on the global register to get
+ // everything in shape:
+ lane1 = _mm256_permute_ps(lane1, _MM_SHUFFLE(3, 3, 2, 2));
+
+#ifdef EIGEN_VECTORIZE_AVX512DQ
+ Packet16f res = _mm512_undefined_ps();
+ return _mm512_insertf32x8(res, lane0, 0);
+ return _mm512_insertf32x8(res, lane1, 1);
+ return res;
+#else
+ Packet16f res = _mm512_undefined_ps();
+ res = _mm512_insertf32x4(res, _mm256_extractf128_ps(lane0, 0), 0);
+ res = _mm512_insertf32x4(res, _mm256_extractf128_ps(lane0, 1), 1);
+ res = _mm512_insertf32x4(res, _mm256_extractf128_ps(lane1, 0), 2);
+ res = _mm512_insertf32x4(res, _mm256_extractf128_ps(lane1, 1), 3);
+ return res;
+#endif
+}
+// Loads 4 doubles from memory a returns the packet {a0, a0 a1, a1, a2, a2, a3,
+// a3}
+template <>
+EIGEN_STRONG_INLINE Packet8d ploaddup<Packet8d>(const double* from) {
+ Packet4d lane0 = _mm256_broadcast_pd((const __m128d*)(const void*)from);
+ lane0 = _mm256_permute_pd(lane0, 3 << 2);
+
+ Packet4d lane1 = _mm256_broadcast_pd((const __m128d*)(const void*)(from + 2));
+ lane1 = _mm256_permute_pd(lane1, 3 << 2);
+
+ Packet8d res = _mm512_undefined_pd();
+ res = _mm512_insertf64x4(res, lane0, 0);
+ return _mm512_insertf64x4(res, lane1, 1);
+}
+
+// Loads 4 floats from memory a returns the packet
+// {a0, a0 a0, a0, a1, a1, a1, a1, a2, a2, a2, a2, a3, a3, a3, a3}
+template <>
+EIGEN_STRONG_INLINE Packet16f ploadquad<Packet16f>(const float* from) {
+ Packet16f tmp = _mm512_undefined_ps();
+ tmp = _mm512_insertf32x4(tmp, _mm_load_ps1(from), 0);
+ tmp = _mm512_insertf32x4(tmp, _mm_load_ps1(from + 1), 1);
+ tmp = _mm512_insertf32x4(tmp, _mm_load_ps1(from + 2), 2);
+ tmp = _mm512_insertf32x4(tmp, _mm_load_ps1(from + 3), 3);
+ return tmp;
+}
+// Loads 2 doubles from memory a returns the packet
+// {a0, a0 a0, a0, a1, a1, a1, a1}
+template <>
+EIGEN_STRONG_INLINE Packet8d ploadquad<Packet8d>(const double* from) {
+ Packet8d tmp = _mm512_undefined_pd();
+ Packet2d tmp0 = _mm_load_pd1(from);
+ Packet2d tmp1 = _mm_load_pd1(from + 1);
+ Packet4d lane0 = _mm256_broadcastsd_pd(tmp0);
+ Packet4d lane1 = _mm256_broadcastsd_pd(tmp1);
+ tmp = _mm512_insertf64x4(tmp, lane0, 0);
+ return _mm512_insertf64x4(tmp, lane1, 1);
+}
+
+template <>
+EIGEN_STRONG_INLINE void pstore<float>(float* to, const Packet16f& from) {
+ EIGEN_DEBUG_ALIGNED_STORE _mm512_store_ps(to, from);
+}
+template <>
+EIGEN_STRONG_INLINE void pstore<double>(double* to, const Packet8d& from) {
+ EIGEN_DEBUG_ALIGNED_STORE _mm512_store_pd(to, from);
+}
+template <>
+EIGEN_STRONG_INLINE void pstore<int>(int* to, const Packet16i& from) {
+ EIGEN_DEBUG_ALIGNED_STORE _mm512_storeu_si512(reinterpret_cast<__m512i*>(to),
+ from);
+}
+
+template <>
+EIGEN_STRONG_INLINE void pstoreu<float>(float* to, const Packet16f& from) {
+ EIGEN_DEBUG_UNALIGNED_STORE _mm512_storeu_ps(to, from);
+}
+template <>
+EIGEN_STRONG_INLINE void pstoreu<double>(double* to, const Packet8d& from) {
+ EIGEN_DEBUG_UNALIGNED_STORE _mm512_storeu_pd(to, from);
+}
+template <>
+EIGEN_STRONG_INLINE void pstoreu<int>(int* to, const Packet16i& from) {
+ EIGEN_DEBUG_UNALIGNED_STORE _mm512_storeu_si512(
+ reinterpret_cast<__m512i*>(to), from);
+}
+
+template <>
+EIGEN_DEVICE_FUNC inline Packet16f pgather<float, Packet16f>(const float* from,
+ Index stride) {
+ Packet16i stride_vector = _mm512_set1_epi32(stride);
+ Packet16i stride_multiplier =
+ _mm512_set_epi32(15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+ Packet16i indices = _mm512_mullo_epi32(stride_vector, stride_multiplier);
+
+ return _mm512_i32gather_ps(indices, from, 4);
+}
+template <>
+EIGEN_DEVICE_FUNC inline Packet8d pgather<double, Packet8d>(const double* from,
+ Index stride) {
+ Packet8i stride_vector = _mm256_set1_epi32(stride);
+ Packet8i stride_multiplier = _mm256_set_epi32(7, 6, 5, 4, 3, 2, 1, 0);
+ Packet8i indices = _mm256_mullo_epi32(stride_vector, stride_multiplier);
+
+ return _mm512_i32gather_pd(indices, from, 8);
+}
+
+template <>
+EIGEN_DEVICE_FUNC inline void pscatter<float, Packet16f>(float* to,
+ const Packet16f& from,
+ Index stride) {
+ Packet16i stride_vector = _mm512_set1_epi32(stride);
+ Packet16i stride_multiplier =
+ _mm512_set_epi32(15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
+ Packet16i indices = _mm512_mullo_epi32(stride_vector, stride_multiplier);
+ _mm512_i32scatter_ps(to, indices, from, 4);
+}
+template <>
+EIGEN_DEVICE_FUNC inline void pscatter<double, Packet8d>(double* to,
+ const Packet8d& from,
+ Index stride) {
+ Packet8i stride_vector = _mm256_set1_epi32(stride);
+ Packet8i stride_multiplier = _mm256_set_epi32(7, 6, 5, 4, 3, 2, 1, 0);
+ Packet8i indices = _mm256_mullo_epi32(stride_vector, stride_multiplier);
+ _mm512_i32scatter_pd(to, indices, from, 8);
+}
+
+template <>
+EIGEN_STRONG_INLINE void pstore1<Packet16f>(float* to, const float& a) {
+ Packet16f pa = pset1<Packet16f>(a);
+ pstore(to, pa);
+}
+template <>
+EIGEN_STRONG_INLINE void pstore1<Packet8d>(double* to, const double& a) {
+ Packet8d pa = pset1<Packet8d>(a);
+ pstore(to, pa);
+}
+template <>
+EIGEN_STRONG_INLINE void pstore1<Packet16i>(int* to, const int& a) {
+ Packet16i pa = pset1<Packet16i>(a);
+ pstore(to, pa);
+}
+
+template<> EIGEN_STRONG_INLINE void prefetch<float>(const float* addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+template<> EIGEN_STRONG_INLINE void prefetch<double>(const double* addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+template<> EIGEN_STRONG_INLINE void prefetch<int>(const int* addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+
+template <>
+EIGEN_STRONG_INLINE float pfirst<Packet16f>(const Packet16f& a) {
+ return _mm_cvtss_f32(_mm512_extractf32x4_ps(a, 0));
+}
+template <>
+EIGEN_STRONG_INLINE double pfirst<Packet8d>(const Packet8d& a) {
+ return _mm_cvtsd_f64(_mm256_extractf128_pd(_mm512_extractf64x4_pd(a, 0), 0));
+}
+template <>
+EIGEN_STRONG_INLINE int pfirst<Packet16i>(const Packet16i& a) {
+ return _mm_extract_epi32(_mm512_extracti32x4_epi32(a, 0), 0);
+}
+
+template<> EIGEN_STRONG_INLINE Packet16f preverse(const Packet16f& a)
+{
+ return _mm512_permutexvar_ps(_mm512_set_epi32(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15), a);
+}
+
+template<> EIGEN_STRONG_INLINE Packet8d preverse(const Packet8d& a)
+{
+ return _mm512_permutexvar_pd(_mm512_set_epi32(0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7), a);
+}
+
+template<> EIGEN_STRONG_INLINE Packet16f pabs(const Packet16f& a)
+{
+ // _mm512_abs_ps intrinsic not found, so hack around it
+ return (__m512)_mm512_and_si512((__m512i)a, _mm512_set1_epi32(0x7fffffff));
+}
+template <>
+EIGEN_STRONG_INLINE Packet8d pabs(const Packet8d& a) {
+ // _mm512_abs_ps intrinsic not found, so hack around it
+ return (__m512d)_mm512_and_si512((__m512i)a,
+ _mm512_set1_epi64(0x7fffffffffffffff));
+}
+
+#ifdef EIGEN_VECTORIZE_AVX512DQ
+// AVX512F does not define _mm512_extractf32x8_ps to extract _m256 from _m512
+#define EIGEN_EXTRACT_8f_FROM_16f(INPUT, OUTPUT) \
+ __m256 OUTPUT##_0 = _mm512_extractf32x8_ps(INPUT, 0) __m256 OUTPUT##_1 = \
+ _mm512_extractf32x8_ps(INPUT, 1)
+#else
+#define EIGEN_EXTRACT_8f_FROM_16f(INPUT, OUTPUT) \
+ __m256 OUTPUT##_0 = _mm256_insertf128_ps( \
+ _mm256_castps128_ps256(_mm512_extractf32x4_ps(INPUT, 0)), \
+ _mm512_extractf32x4_ps(INPUT, 1), 1); \
+ __m256 OUTPUT##_1 = _mm256_insertf128_ps( \
+ _mm256_castps128_ps256(_mm512_extractf32x4_ps(INPUT, 2)), \
+ _mm512_extractf32x4_ps(INPUT, 3), 1);
+#endif
+
+#ifdef EIGEN_VECTORIZE_AVX512DQ
+#define EIGEN_INSERT_8f_INTO_16f(OUTPUT, INPUTA, INPUTB) \
+ OUTPUT = _mm512_insertf32x8(OUTPUT, INPUTA, 0); \
+ OUTPUT = _mm512_insertf32x8(OUTPUT, INPUTB, 1);
+#else
+#define EIGEN_INSERT_8f_INTO_16f(OUTPUT, INPUTA, INPUTB) \
+ OUTPUT = _mm512_insertf32x4(OUTPUT, _mm256_extractf128_ps(INPUTA, 0), 0); \
+ OUTPUT = _mm512_insertf32x4(OUTPUT, _mm256_extractf128_ps(INPUTA, 1), 1); \
+ OUTPUT = _mm512_insertf32x4(OUTPUT, _mm256_extractf128_ps(INPUTB, 0), 2); \
+ OUTPUT = _mm512_insertf32x4(OUTPUT, _mm256_extractf128_ps(INPUTB, 1), 3);
+#endif
+template<> EIGEN_STRONG_INLINE Packet16f preduxp<Packet16f>(const Packet16f*
+vecs)
+{
+ EIGEN_EXTRACT_8f_FROM_16f(vecs[0], vecs0);
+ EIGEN_EXTRACT_8f_FROM_16f(vecs[1], vecs1);
+ EIGEN_EXTRACT_8f_FROM_16f(vecs[2], vecs2);
+ EIGEN_EXTRACT_8f_FROM_16f(vecs[3], vecs3);
+ EIGEN_EXTRACT_8f_FROM_16f(vecs[4], vecs4);
+ EIGEN_EXTRACT_8f_FROM_16f(vecs[5], vecs5);
+ EIGEN_EXTRACT_8f_FROM_16f(vecs[6], vecs6);
+ EIGEN_EXTRACT_8f_FROM_16f(vecs[7], vecs7);
+ EIGEN_EXTRACT_8f_FROM_16f(vecs[8], vecs8);
+ EIGEN_EXTRACT_8f_FROM_16f(vecs[9], vecs9);
+ EIGEN_EXTRACT_8f_FROM_16f(vecs[10], vecs10);
+ EIGEN_EXTRACT_8f_FROM_16f(vecs[11], vecs11);
+ EIGEN_EXTRACT_8f_FROM_16f(vecs[12], vecs12);
+ EIGEN_EXTRACT_8f_FROM_16f(vecs[13], vecs13);
+ EIGEN_EXTRACT_8f_FROM_16f(vecs[14], vecs14);
+ EIGEN_EXTRACT_8f_FROM_16f(vecs[15], vecs15);
+
+ __m256 hsum1 = _mm256_hadd_ps(vecs0_0, vecs1_0);
+ __m256 hsum2 = _mm256_hadd_ps(vecs2_0, vecs3_0);
+ __m256 hsum3 = _mm256_hadd_ps(vecs4_0, vecs5_0);
+ __m256 hsum4 = _mm256_hadd_ps(vecs6_0, vecs7_0);
+
+ __m256 hsum5 = _mm256_hadd_ps(hsum1, hsum1);
+ __m256 hsum6 = _mm256_hadd_ps(hsum2, hsum2);
+ __m256 hsum7 = _mm256_hadd_ps(hsum3, hsum3);
+ __m256 hsum8 = _mm256_hadd_ps(hsum4, hsum4);
+
+ __m256 perm1 = _mm256_permute2f128_ps(hsum5, hsum5, 0x23);
+ __m256 perm2 = _mm256_permute2f128_ps(hsum6, hsum6, 0x23);
+ __m256 perm3 = _mm256_permute2f128_ps(hsum7, hsum7, 0x23);
+ __m256 perm4 = _mm256_permute2f128_ps(hsum8, hsum8, 0x23);
+
+ __m256 sum1 = _mm256_add_ps(perm1, hsum5);
+ __m256 sum2 = _mm256_add_ps(perm2, hsum6);
+ __m256 sum3 = _mm256_add_ps(perm3, hsum7);
+ __m256 sum4 = _mm256_add_ps(perm4, hsum8);
+
+ __m256 blend1 = _mm256_blend_ps(sum1, sum2, 0xcc);
+ __m256 blend2 = _mm256_blend_ps(sum3, sum4, 0xcc);
+
+ __m256 final = _mm256_blend_ps(blend1, blend2, 0xf0);
+
+ hsum1 = _mm256_hadd_ps(vecs0_1, vecs1_1);
+ hsum2 = _mm256_hadd_ps(vecs2_1, vecs3_1);
+ hsum3 = _mm256_hadd_ps(vecs4_1, vecs5_1);
+ hsum4 = _mm256_hadd_ps(vecs6_1, vecs7_1);
+
+ hsum5 = _mm256_hadd_ps(hsum1, hsum1);
+ hsum6 = _mm256_hadd_ps(hsum2, hsum2);
+ hsum7 = _mm256_hadd_ps(hsum3, hsum3);
+ hsum8 = _mm256_hadd_ps(hsum4, hsum4);
+
+ perm1 = _mm256_permute2f128_ps(hsum5, hsum5, 0x23);
+ perm2 = _mm256_permute2f128_ps(hsum6, hsum6, 0x23);
+ perm3 = _mm256_permute2f128_ps(hsum7, hsum7, 0x23);
+ perm4 = _mm256_permute2f128_ps(hsum8, hsum8, 0x23);
+
+ sum1 = _mm256_add_ps(perm1, hsum5);
+ sum2 = _mm256_add_ps(perm2, hsum6);
+ sum3 = _mm256_add_ps(perm3, hsum7);
+ sum4 = _mm256_add_ps(perm4, hsum8);
+
+ blend1 = _mm256_blend_ps(sum1, sum2, 0xcc);
+ blend2 = _mm256_blend_ps(sum3, sum4, 0xcc);
+
+ final = padd(final, _mm256_blend_ps(blend1, blend2, 0xf0));
+
+ hsum1 = _mm256_hadd_ps(vecs8_0, vecs9_0);
+ hsum2 = _mm256_hadd_ps(vecs10_0, vecs11_0);
+ hsum3 = _mm256_hadd_ps(vecs12_0, vecs13_0);
+ hsum4 = _mm256_hadd_ps(vecs14_0, vecs15_0);
+
+ hsum5 = _mm256_hadd_ps(hsum1, hsum1);
+ hsum6 = _mm256_hadd_ps(hsum2, hsum2);
+ hsum7 = _mm256_hadd_ps(hsum3, hsum3);
+ hsum8 = _mm256_hadd_ps(hsum4, hsum4);
+
+ perm1 = _mm256_permute2f128_ps(hsum5, hsum5, 0x23);
+ perm2 = _mm256_permute2f128_ps(hsum6, hsum6, 0x23);
+ perm3 = _mm256_permute2f128_ps(hsum7, hsum7, 0x23);
+ perm4 = _mm256_permute2f128_ps(hsum8, hsum8, 0x23);
+
+ sum1 = _mm256_add_ps(perm1, hsum5);
+ sum2 = _mm256_add_ps(perm2, hsum6);
+ sum3 = _mm256_add_ps(perm3, hsum7);
+ sum4 = _mm256_add_ps(perm4, hsum8);
+
+ blend1 = _mm256_blend_ps(sum1, sum2, 0xcc);
+ blend2 = _mm256_blend_ps(sum3, sum4, 0xcc);
+
+ __m256 final_1 = _mm256_blend_ps(blend1, blend2, 0xf0);
+
+ hsum1 = _mm256_hadd_ps(vecs8_1, vecs9_1);
+ hsum2 = _mm256_hadd_ps(vecs10_1, vecs11_1);
+ hsum3 = _mm256_hadd_ps(vecs12_1, vecs13_1);
+ hsum4 = _mm256_hadd_ps(vecs14_1, vecs15_1);
+
+ hsum5 = _mm256_hadd_ps(hsum1, hsum1);
+ hsum6 = _mm256_hadd_ps(hsum2, hsum2);
+ hsum7 = _mm256_hadd_ps(hsum3, hsum3);
+ hsum8 = _mm256_hadd_ps(hsum4, hsum4);
+
+ perm1 = _mm256_permute2f128_ps(hsum5, hsum5, 0x23);
+ perm2 = _mm256_permute2f128_ps(hsum6, hsum6, 0x23);
+ perm3 = _mm256_permute2f128_ps(hsum7, hsum7, 0x23);
+ perm4 = _mm256_permute2f128_ps(hsum8, hsum8, 0x23);
+
+ sum1 = _mm256_add_ps(perm1, hsum5);
+ sum2 = _mm256_add_ps(perm2, hsum6);
+ sum3 = _mm256_add_ps(perm3, hsum7);
+ sum4 = _mm256_add_ps(perm4, hsum8);
+
+ blend1 = _mm256_blend_ps(sum1, sum2, 0xcc);
+ blend2 = _mm256_blend_ps(sum3, sum4, 0xcc);
+
+ final_1 = padd(final_1, _mm256_blend_ps(blend1, blend2, 0xf0));
+
+ __m512 final_output;
+
+ EIGEN_INSERT_8f_INTO_16f(final_output, final, final_1);
+ return final_output;
+}
+
+template<> EIGEN_STRONG_INLINE Packet8d preduxp<Packet8d>(const Packet8d* vecs)
+{
+ Packet4d vecs0_0 = _mm512_extractf64x4_pd(vecs[0], 0);
+ Packet4d vecs0_1 = _mm512_extractf64x4_pd(vecs[0], 1);
+
+ Packet4d vecs1_0 = _mm512_extractf64x4_pd(vecs[1], 0);
+ Packet4d vecs1_1 = _mm512_extractf64x4_pd(vecs[1], 1);
+
+ Packet4d vecs2_0 = _mm512_extractf64x4_pd(vecs[2], 0);
+ Packet4d vecs2_1 = _mm512_extractf64x4_pd(vecs[2], 1);
+
+ Packet4d vecs3_0 = _mm512_extractf64x4_pd(vecs[3], 0);
+ Packet4d vecs3_1 = _mm512_extractf64x4_pd(vecs[3], 1);
+
+ Packet4d vecs4_0 = _mm512_extractf64x4_pd(vecs[4], 0);
+ Packet4d vecs4_1 = _mm512_extractf64x4_pd(vecs[4], 1);
+
+ Packet4d vecs5_0 = _mm512_extractf64x4_pd(vecs[5], 0);
+ Packet4d vecs5_1 = _mm512_extractf64x4_pd(vecs[5], 1);
+
+ Packet4d vecs6_0 = _mm512_extractf64x4_pd(vecs[6], 0);
+ Packet4d vecs6_1 = _mm512_extractf64x4_pd(vecs[6], 1);
+
+ Packet4d vecs7_0 = _mm512_extractf64x4_pd(vecs[7], 0);
+ Packet4d vecs7_1 = _mm512_extractf64x4_pd(vecs[7], 1);
+
+ Packet4d tmp0, tmp1;
+
+ tmp0 = _mm256_hadd_pd(vecs0_0, vecs1_0);
+ tmp0 = _mm256_add_pd(tmp0, _mm256_permute2f128_pd(tmp0, tmp0, 1));
+
+ tmp1 = _mm256_hadd_pd(vecs2_0, vecs3_0);
+ tmp1 = _mm256_add_pd(tmp1, _mm256_permute2f128_pd(tmp1, tmp1, 1));
+
+ __m256d final_0 = _mm256_blend_pd(tmp0, tmp1, 0xC);
+
+ tmp0 = _mm256_hadd_pd(vecs0_1, vecs1_1);
+ tmp0 = _mm256_add_pd(tmp0, _mm256_permute2f128_pd(tmp0, tmp0, 1));
+
+ tmp1 = _mm256_hadd_pd(vecs2_1, vecs3_1);
+ tmp1 = _mm256_add_pd(tmp1, _mm256_permute2f128_pd(tmp1, tmp1, 1));
+
+ final_0 = padd(final_0, _mm256_blend_pd(tmp0, tmp1, 0xC));
+
+ tmp0 = _mm256_hadd_pd(vecs4_0, vecs5_0);
+ tmp0 = _mm256_add_pd(tmp0, _mm256_permute2f128_pd(tmp0, tmp0, 1));
+
+ tmp1 = _mm256_hadd_pd(vecs6_0, vecs7_0);
+ tmp1 = _mm256_add_pd(tmp1, _mm256_permute2f128_pd(tmp1, tmp1, 1));
+
+ __m256d final_1 = _mm256_blend_pd(tmp0, tmp1, 0xC);
+
+ tmp0 = _mm256_hadd_pd(vecs4_1, vecs5_1);
+ tmp0 = _mm256_add_pd(tmp0, _mm256_permute2f128_pd(tmp0, tmp0, 1));
+
+ tmp1 = _mm256_hadd_pd(vecs6_1, vecs7_1);
+ tmp1 = _mm256_add_pd(tmp1, _mm256_permute2f128_pd(tmp1, tmp1, 1));
+
+ final_1 = padd(final_1, _mm256_blend_pd(tmp0, tmp1, 0xC));
+
+ __m512d final_output = _mm512_insertf64x4(final_output, final_0, 0);
+
+ return _mm512_insertf64x4(final_output, final_1, 1);
+}
+
+template <>
+EIGEN_STRONG_INLINE float predux<Packet16f>(const Packet16f& a) {
+ //#ifdef EIGEN_VECTORIZE_AVX512DQ
+#if 0
+ Packet8f lane0 = _mm512_extractf32x8_ps(a, 0);
+ Packet8f lane1 = _mm512_extractf32x8_ps(a, 1);
+ Packet8f sum = padd(lane0, lane1);
+ Packet8f tmp0 = _mm256_hadd_ps(sum, _mm256_permute2f128_ps(a, a, 1));
+ tmp0 = _mm256_hadd_ps(tmp0, tmp0);
+ return pfirst(_mm256_hadd_ps(tmp0, tmp0));
+#else
+ Packet4f lane0 = _mm512_extractf32x4_ps(a, 0);
+ Packet4f lane1 = _mm512_extractf32x4_ps(a, 1);
+ Packet4f lane2 = _mm512_extractf32x4_ps(a, 2);
+ Packet4f lane3 = _mm512_extractf32x4_ps(a, 3);
+ Packet4f sum = padd(padd(lane0, lane1), padd(lane2, lane3));
+ sum = _mm_hadd_ps(sum, sum);
+ sum = _mm_hadd_ps(sum, _mm_permute_ps(sum, 1));
+ return pfirst(sum);
+#endif
+}
+template <>
+EIGEN_STRONG_INLINE double predux<Packet8d>(const Packet8d& a) {
+ Packet4d lane0 = _mm512_extractf64x4_pd(a, 0);
+ Packet4d lane1 = _mm512_extractf64x4_pd(a, 1);
+ Packet4d sum = padd(lane0, lane1);
+ Packet4d tmp0 = _mm256_hadd_pd(sum, _mm256_permute2f128_pd(sum, sum, 1));
+ return pfirst(_mm256_hadd_pd(tmp0, tmp0));
+}
+
+template <>
+EIGEN_STRONG_INLINE Packet8f predux_downto4<Packet16f>(const Packet16f& a) {
+#ifdef EIGEN_VECTORIZE_AVX512DQ
+ Packet8f lane0 = _mm512_extractf32x8_ps(a, 0);
+ Packet8f lane1 = _mm512_extractf32x8_ps(a, 1);
+ return padd(lane0, lane1);
+#else
+ Packet4f lane0 = _mm512_extractf32x4_ps(a, 0);
+ Packet4f lane1 = _mm512_extractf32x4_ps(a, 1);
+ Packet4f lane2 = _mm512_extractf32x4_ps(a, 2);
+ Packet4f lane3 = _mm512_extractf32x4_ps(a, 3);
+ Packet4f sum0 = padd(lane0, lane2);
+ Packet4f sum1 = padd(lane1, lane3);
+ return _mm256_insertf128_ps(_mm256_castps128_ps256(sum0), sum1, 1);
+#endif
+}
+template <>
+EIGEN_STRONG_INLINE Packet4d predux_downto4<Packet8d>(const Packet8d& a) {
+ Packet4d lane0 = _mm512_extractf64x4_pd(a, 0);
+ Packet4d lane1 = _mm512_extractf64x4_pd(a, 1);
+ Packet4d res = padd(lane0, lane1);
+ return res;
+}
+
+template <>
+EIGEN_STRONG_INLINE float predux_mul<Packet16f>(const Packet16f& a) {
+//#ifdef EIGEN_VECTORIZE_AVX512DQ
+#if 0
+ Packet8f lane0 = _mm512_extractf32x8_ps(a, 0);
+ Packet8f lane1 = _mm512_extractf32x8_ps(a, 1);
+ Packet8f res = pmul(lane0, lane1);
+ res = pmul(res, _mm256_permute2f128_ps(res, res, 1));
+ res = pmul(res, _mm_permute_ps(res, _MM_SHUFFLE(0, 0, 3, 2)));
+ return pfirst(pmul(res, _mm_permute_ps(res, _MM_SHUFFLE(0, 0, 0, 1))));
+#else
+ Packet4f lane0 = _mm512_extractf32x4_ps(a, 0);
+ Packet4f lane1 = _mm512_extractf32x4_ps(a, 1);
+ Packet4f lane2 = _mm512_extractf32x4_ps(a, 2);
+ Packet4f lane3 = _mm512_extractf32x4_ps(a, 3);
+ Packet4f res = pmul(pmul(lane0, lane1), pmul(lane2, lane3));
+ res = pmul(res, _mm_permute_ps(res, _MM_SHUFFLE(0, 0, 3, 2)));
+ return pfirst(pmul(res, _mm_permute_ps(res, _MM_SHUFFLE(0, 0, 0, 1))));
+#endif
+}
+template <>
+EIGEN_STRONG_INLINE double predux_mul<Packet8d>(const Packet8d& a) {
+ Packet4d lane0 = _mm512_extractf64x4_pd(a, 0);
+ Packet4d lane1 = _mm512_extractf64x4_pd(a, 1);
+ Packet4d res = pmul(lane0, lane1);
+ res = pmul(res, _mm256_permute2f128_pd(res, res, 1));
+ return pfirst(pmul(res, _mm256_shuffle_pd(res, res, 1)));
+}
+
+template <>
+EIGEN_STRONG_INLINE float predux_min<Packet16f>(const Packet16f& a) {
+ Packet4f lane0 = _mm512_extractf32x4_ps(a, 0);
+ Packet4f lane1 = _mm512_extractf32x4_ps(a, 1);
+ Packet4f lane2 = _mm512_extractf32x4_ps(a, 2);
+ Packet4f lane3 = _mm512_extractf32x4_ps(a, 3);
+ Packet4f res = _mm_min_ps(_mm_min_ps(lane0, lane1), _mm_min_ps(lane2, lane3));
+ res = _mm_min_ps(res, _mm_permute_ps(res, _MM_SHUFFLE(0, 0, 3, 2)));
+ return pfirst(_mm_min_ps(res, _mm_permute_ps(res, _MM_SHUFFLE(0, 0, 0, 1))));
+}
+template <>
+EIGEN_STRONG_INLINE double predux_min<Packet8d>(const Packet8d& a) {
+ Packet4d lane0 = _mm512_extractf64x4_pd(a, 0);
+ Packet4d lane1 = _mm512_extractf64x4_pd(a, 1);
+ Packet4d res = _mm256_min_pd(lane0, lane1);
+ res = _mm256_min_pd(res, _mm256_permute2f128_pd(res, res, 1));
+ return pfirst(_mm256_min_pd(res, _mm256_shuffle_pd(res, res, 1)));
+}
+
+template <>
+EIGEN_STRONG_INLINE float predux_max<Packet16f>(const Packet16f& a) {
+ Packet4f lane0 = _mm512_extractf32x4_ps(a, 0);
+ Packet4f lane1 = _mm512_extractf32x4_ps(a, 1);
+ Packet4f lane2 = _mm512_extractf32x4_ps(a, 2);
+ Packet4f lane3 = _mm512_extractf32x4_ps(a, 3);
+ Packet4f res = _mm_max_ps(_mm_max_ps(lane0, lane1), _mm_max_ps(lane2, lane3));
+ res = _mm_max_ps(res, _mm_permute_ps(res, _MM_SHUFFLE(0, 0, 3, 2)));
+ return pfirst(_mm_max_ps(res, _mm_permute_ps(res, _MM_SHUFFLE(0, 0, 0, 1))));
+}
+template <>
+EIGEN_STRONG_INLINE double predux_max<Packet8d>(const Packet8d& a) {
+ Packet4d lane0 = _mm512_extractf64x4_pd(a, 0);
+ Packet4d lane1 = _mm512_extractf64x4_pd(a, 1);
+ Packet4d res = _mm256_max_pd(lane0, lane1);
+ res = _mm256_max_pd(res, _mm256_permute2f128_pd(res, res, 1));
+ return pfirst(_mm256_max_pd(res, _mm256_shuffle_pd(res, res, 1)));
+}
+
+template <int Offset>
+struct palign_impl<Offset, Packet16f> {
+ static EIGEN_STRONG_INLINE void run(Packet16f& first,
+ const Packet16f& second) {
+ if (Offset != 0) {
+ __m512i first_idx = _mm512_set_epi32(
+ Offset + 15, Offset + 14, Offset + 13, Offset + 12, Offset + 11,
+ Offset + 10, Offset + 9, Offset + 8, Offset + 7, Offset + 6,
+ Offset + 5, Offset + 4, Offset + 3, Offset + 2, Offset + 1, Offset);
+
+ __m512i second_idx =
+ _mm512_set_epi32(Offset - 1, Offset - 2, Offset - 3, Offset - 4,
+ Offset - 5, Offset - 6, Offset - 7, Offset - 8,
+ Offset - 9, Offset - 10, Offset - 11, Offset - 12,
+ Offset - 13, Offset - 14, Offset - 15, Offset - 16);
+
+ unsigned short mask = 0xFFFF;
+ mask <<= (16 - Offset);
+
+ first = _mm512_permutexvar_ps(first_idx, first);
+ Packet16f tmp = _mm512_permutexvar_ps(second_idx, second);
+ first = _mm512_mask_blend_ps(mask, first, tmp);
+ }
+ }
+};
+template <int Offset>
+struct palign_impl<Offset, Packet8d> {
+ static EIGEN_STRONG_INLINE void run(Packet8d& first, const Packet8d& second) {
+ if (Offset != 0) {
+ __m512i first_idx = _mm512_set_epi32(
+ 0, Offset + 7, 0, Offset + 6, 0, Offset + 5, 0, Offset + 4, 0,
+ Offset + 3, 0, Offset + 2, 0, Offset + 1, 0, Offset);
+
+ __m512i second_idx = _mm512_set_epi32(
+ 0, Offset - 1, 0, Offset - 2, 0, Offset - 3, 0, Offset - 4, 0,
+ Offset - 5, 0, Offset - 6, 0, Offset - 7, 0, Offset - 8);
+
+ unsigned char mask = 0xFF;
+ mask <<= (8 - Offset);
+
+ first = _mm512_permutexvar_pd(first_idx, first);
+ Packet8d tmp = _mm512_permutexvar_pd(second_idx, second);
+ first = _mm512_mask_blend_pd(mask, first, tmp);
+ }
+ }
+};
+
+
+#define PACK_OUTPUT(OUTPUT, INPUT, INDEX, STRIDE) \
+ EIGEN_INSERT_8f_INTO_16f(OUTPUT[INDEX], INPUT[INDEX], INPUT[INDEX + STRIDE]);
+
+EIGEN_DEVICE_FUNC inline void ptranspose(PacketBlock<Packet16f, 16>& kernel) {
+ __m512 T0 = _mm512_unpacklo_ps(kernel.packet[0], kernel.packet[1]);
+ __m512 T1 = _mm512_unpackhi_ps(kernel.packet[0], kernel.packet[1]);
+ __m512 T2 = _mm512_unpacklo_ps(kernel.packet[2], kernel.packet[3]);
+ __m512 T3 = _mm512_unpackhi_ps(kernel.packet[2], kernel.packet[3]);
+ __m512 T4 = _mm512_unpacklo_ps(kernel.packet[4], kernel.packet[5]);
+ __m512 T5 = _mm512_unpackhi_ps(kernel.packet[4], kernel.packet[5]);
+ __m512 T6 = _mm512_unpacklo_ps(kernel.packet[6], kernel.packet[7]);
+ __m512 T7 = _mm512_unpackhi_ps(kernel.packet[6], kernel.packet[7]);
+ __m512 T8 = _mm512_unpacklo_ps(kernel.packet[8], kernel.packet[9]);
+ __m512 T9 = _mm512_unpackhi_ps(kernel.packet[8], kernel.packet[9]);
+ __m512 T10 = _mm512_unpacklo_ps(kernel.packet[10], kernel.packet[11]);
+ __m512 T11 = _mm512_unpackhi_ps(kernel.packet[10], kernel.packet[11]);
+ __m512 T12 = _mm512_unpacklo_ps(kernel.packet[12], kernel.packet[13]);
+ __m512 T13 = _mm512_unpackhi_ps(kernel.packet[12], kernel.packet[13]);
+ __m512 T14 = _mm512_unpacklo_ps(kernel.packet[14], kernel.packet[15]);
+ __m512 T15 = _mm512_unpackhi_ps(kernel.packet[14], kernel.packet[15]);
+ __m512 S0 = _mm512_shuffle_ps(T0, T2, _MM_SHUFFLE(1, 0, 1, 0));
+ __m512 S1 = _mm512_shuffle_ps(T0, T2, _MM_SHUFFLE(3, 2, 3, 2));
+ __m512 S2 = _mm512_shuffle_ps(T1, T3, _MM_SHUFFLE(1, 0, 1, 0));
+ __m512 S3 = _mm512_shuffle_ps(T1, T3, _MM_SHUFFLE(3, 2, 3, 2));
+ __m512 S4 = _mm512_shuffle_ps(T4, T6, _MM_SHUFFLE(1, 0, 1, 0));
+ __m512 S5 = _mm512_shuffle_ps(T4, T6, _MM_SHUFFLE(3, 2, 3, 2));
+ __m512 S6 = _mm512_shuffle_ps(T5, T7, _MM_SHUFFLE(1, 0, 1, 0));
+ __m512 S7 = _mm512_shuffle_ps(T5, T7, _MM_SHUFFLE(3, 2, 3, 2));
+ __m512 S8 = _mm512_shuffle_ps(T8, T10, _MM_SHUFFLE(1, 0, 1, 0));
+ __m512 S9 = _mm512_shuffle_ps(T8, T10, _MM_SHUFFLE(3, 2, 3, 2));
+ __m512 S10 = _mm512_shuffle_ps(T9, T11, _MM_SHUFFLE(1, 0, 1, 0));
+ __m512 S11 = _mm512_shuffle_ps(T9, T11, _MM_SHUFFLE(3, 2, 3, 2));
+ __m512 S12 = _mm512_shuffle_ps(T12, T14, _MM_SHUFFLE(1, 0, 1, 0));
+ __m512 S13 = _mm512_shuffle_ps(T12, T14, _MM_SHUFFLE(3, 2, 3, 2));
+ __m512 S14 = _mm512_shuffle_ps(T13, T15, _MM_SHUFFLE(1, 0, 1, 0));
+ __m512 S15 = _mm512_shuffle_ps(T13, T15, _MM_SHUFFLE(3, 2, 3, 2));
+
+ EIGEN_EXTRACT_8f_FROM_16f(S0, S0);
+ EIGEN_EXTRACT_8f_FROM_16f(S1, S1);
+ EIGEN_EXTRACT_8f_FROM_16f(S2, S2);
+ EIGEN_EXTRACT_8f_FROM_16f(S3, S3);
+ EIGEN_EXTRACT_8f_FROM_16f(S4, S4);
+ EIGEN_EXTRACT_8f_FROM_16f(S5, S5);
+ EIGEN_EXTRACT_8f_FROM_16f(S6, S6);
+ EIGEN_EXTRACT_8f_FROM_16f(S7, S7);
+ EIGEN_EXTRACT_8f_FROM_16f(S8, S8);
+ EIGEN_EXTRACT_8f_FROM_16f(S9, S9);
+ EIGEN_EXTRACT_8f_FROM_16f(S10, S10);
+ EIGEN_EXTRACT_8f_FROM_16f(S11, S11);
+ EIGEN_EXTRACT_8f_FROM_16f(S12, S12);
+ EIGEN_EXTRACT_8f_FROM_16f(S13, S13);
+ EIGEN_EXTRACT_8f_FROM_16f(S14, S14);
+ EIGEN_EXTRACT_8f_FROM_16f(S15, S15);
+
+ PacketBlock<Packet8f, 32> tmp;
+
+ tmp.packet[0] = _mm256_permute2f128_ps(S0_0, S4_0, 0x20);
+ tmp.packet[1] = _mm256_permute2f128_ps(S1_0, S5_0, 0x20);
+ tmp.packet[2] = _mm256_permute2f128_ps(S2_0, S6_0, 0x20);
+ tmp.packet[3] = _mm256_permute2f128_ps(S3_0, S7_0, 0x20);
+ tmp.packet[4] = _mm256_permute2f128_ps(S0_0, S4_0, 0x31);
+ tmp.packet[5] = _mm256_permute2f128_ps(S1_0, S5_0, 0x31);
+ tmp.packet[6] = _mm256_permute2f128_ps(S2_0, S6_0, 0x31);
+ tmp.packet[7] = _mm256_permute2f128_ps(S3_0, S7_0, 0x31);
+
+ tmp.packet[8] = _mm256_permute2f128_ps(S0_1, S4_1, 0x20);
+ tmp.packet[9] = _mm256_permute2f128_ps(S1_1, S5_1, 0x20);
+ tmp.packet[10] = _mm256_permute2f128_ps(S2_1, S6_1, 0x20);
+ tmp.packet[11] = _mm256_permute2f128_ps(S3_1, S7_1, 0x20);
+ tmp.packet[12] = _mm256_permute2f128_ps(S0_1, S4_1, 0x31);
+ tmp.packet[13] = _mm256_permute2f128_ps(S1_1, S5_1, 0x31);
+ tmp.packet[14] = _mm256_permute2f128_ps(S2_1, S6_1, 0x31);
+ tmp.packet[15] = _mm256_permute2f128_ps(S3_1, S7_1, 0x31);
+
+ // Second set of _m256 outputs
+ tmp.packet[16] = _mm256_permute2f128_ps(S8_0, S12_0, 0x20);
+ tmp.packet[17] = _mm256_permute2f128_ps(S9_0, S13_0, 0x20);
+ tmp.packet[18] = _mm256_permute2f128_ps(S10_0, S14_0, 0x20);
+ tmp.packet[19] = _mm256_permute2f128_ps(S11_0, S15_0, 0x20);
+ tmp.packet[20] = _mm256_permute2f128_ps(S8_0, S12_0, 0x31);
+ tmp.packet[21] = _mm256_permute2f128_ps(S9_0, S13_0, 0x31);
+ tmp.packet[22] = _mm256_permute2f128_ps(S10_0, S14_0, 0x31);
+ tmp.packet[23] = _mm256_permute2f128_ps(S11_0, S15_0, 0x31);
+
+ tmp.packet[24] = _mm256_permute2f128_ps(S8_1, S12_1, 0x20);
+ tmp.packet[25] = _mm256_permute2f128_ps(S9_1, S13_1, 0x20);
+ tmp.packet[26] = _mm256_permute2f128_ps(S10_1, S14_1, 0x20);
+ tmp.packet[27] = _mm256_permute2f128_ps(S11_1, S15_1, 0x20);
+ tmp.packet[28] = _mm256_permute2f128_ps(S8_1, S12_1, 0x31);
+ tmp.packet[29] = _mm256_permute2f128_ps(S9_1, S13_1, 0x31);
+ tmp.packet[30] = _mm256_permute2f128_ps(S10_1, S14_1, 0x31);
+ tmp.packet[31] = _mm256_permute2f128_ps(S11_1, S15_1, 0x31);
+
+ // Pack them into the output
+ PACK_OUTPUT(kernel.packet, tmp.packet, 0, 16);
+ PACK_OUTPUT(kernel.packet, tmp.packet, 1, 16);
+ PACK_OUTPUT(kernel.packet, tmp.packet, 2, 16);
+ PACK_OUTPUT(kernel.packet, tmp.packet, 3, 16);
+
+ PACK_OUTPUT(kernel.packet, tmp.packet, 4, 16);
+ PACK_OUTPUT(kernel.packet, tmp.packet, 5, 16);
+ PACK_OUTPUT(kernel.packet, tmp.packet, 6, 16);
+ PACK_OUTPUT(kernel.packet, tmp.packet, 7, 16);
+
+ PACK_OUTPUT(kernel.packet, tmp.packet, 8, 16);
+ PACK_OUTPUT(kernel.packet, tmp.packet, 9, 16);
+ PACK_OUTPUT(kernel.packet, tmp.packet, 10, 16);
+ PACK_OUTPUT(kernel.packet, tmp.packet, 11, 16);
+
+ PACK_OUTPUT(kernel.packet, tmp.packet, 12, 16);
+ PACK_OUTPUT(kernel.packet, tmp.packet, 13, 16);
+ PACK_OUTPUT(kernel.packet, tmp.packet, 14, 16);
+ PACK_OUTPUT(kernel.packet, tmp.packet, 15, 16);
+}
+#define PACK_OUTPUT_2(OUTPUT, INPUT, INDEX, STRIDE) \
+ EIGEN_INSERT_8f_INTO_16f(OUTPUT[INDEX], INPUT[2 * INDEX], \
+ INPUT[2 * INDEX + STRIDE]);
+
+EIGEN_DEVICE_FUNC inline void ptranspose(PacketBlock<Packet16f, 4>& kernel) {
+ __m512 T0 = _mm512_unpacklo_ps(kernel.packet[0], kernel.packet[1]);
+ __m512 T1 = _mm512_unpackhi_ps(kernel.packet[0], kernel.packet[1]);
+ __m512 T2 = _mm512_unpacklo_ps(kernel.packet[2], kernel.packet[3]);
+ __m512 T3 = _mm512_unpackhi_ps(kernel.packet[2], kernel.packet[3]);
+
+ __m512 S0 = _mm512_shuffle_ps(T0, T2, _MM_SHUFFLE(1, 0, 1, 0));
+ __m512 S1 = _mm512_shuffle_ps(T0, T2, _MM_SHUFFLE(3, 2, 3, 2));
+ __m512 S2 = _mm512_shuffle_ps(T1, T3, _MM_SHUFFLE(1, 0, 1, 0));
+ __m512 S3 = _mm512_shuffle_ps(T1, T3, _MM_SHUFFLE(3, 2, 3, 2));
+
+ EIGEN_EXTRACT_8f_FROM_16f(S0, S0);
+ EIGEN_EXTRACT_8f_FROM_16f(S1, S1);
+ EIGEN_EXTRACT_8f_FROM_16f(S2, S2);
+ EIGEN_EXTRACT_8f_FROM_16f(S3, S3);
+
+ PacketBlock<Packet8f, 8> tmp;
+
+ tmp.packet[0] = _mm256_permute2f128_ps(S0_0, S1_0, 0x20);
+ tmp.packet[1] = _mm256_permute2f128_ps(S2_0, S3_0, 0x20);
+ tmp.packet[2] = _mm256_permute2f128_ps(S0_0, S1_0, 0x31);
+ tmp.packet[3] = _mm256_permute2f128_ps(S2_0, S3_0, 0x31);
+
+ tmp.packet[4] = _mm256_permute2f128_ps(S0_1, S1_1, 0x20);
+ tmp.packet[5] = _mm256_permute2f128_ps(S2_1, S3_1, 0x20);
+ tmp.packet[6] = _mm256_permute2f128_ps(S0_1, S1_1, 0x31);
+ tmp.packet[7] = _mm256_permute2f128_ps(S2_1, S3_1, 0x31);
+
+ PACK_OUTPUT_2(kernel.packet, tmp.packet, 0, 1);
+ PACK_OUTPUT_2(kernel.packet, tmp.packet, 1, 1);
+ PACK_OUTPUT_2(kernel.packet, tmp.packet, 2, 1);
+ PACK_OUTPUT_2(kernel.packet, tmp.packet, 3, 1);
+}
+
+#define PACK_OUTPUT_SQ_D(OUTPUT, INPUT, INDEX, STRIDE) \
+ OUTPUT[INDEX] = _mm512_insertf64x4(OUTPUT[INDEX], INPUT[INDEX], 0); \
+ OUTPUT[INDEX] = _mm512_insertf64x4(OUTPUT[INDEX], INPUT[INDEX + STRIDE], 1);
+
+#define PACK_OUTPUT_D(OUTPUT, INPUT, INDEX, STRIDE) \
+ OUTPUT[INDEX] = _mm512_insertf64x4(OUTPUT[INDEX], INPUT[(2 * INDEX)], 0); \
+ OUTPUT[INDEX] = \
+ _mm512_insertf64x4(OUTPUT[INDEX], INPUT[(2 * INDEX) + STRIDE], 1);
+
+EIGEN_DEVICE_FUNC inline void ptranspose(PacketBlock<Packet8d, 4>& kernel) {
+ __m512d T0 = _mm512_shuffle_pd(kernel.packet[0], kernel.packet[1], 0);
+ __m512d T1 = _mm512_shuffle_pd(kernel.packet[0], kernel.packet[1], 0xff);
+ __m512d T2 = _mm512_shuffle_pd(kernel.packet[2], kernel.packet[3], 0);
+ __m512d T3 = _mm512_shuffle_pd(kernel.packet[2], kernel.packet[3], 0xff);
+
+ PacketBlock<Packet4d, 8> tmp;
+
+ tmp.packet[0] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T0, 0),
+ _mm512_extractf64x4_pd(T2, 0), 0x20);
+ tmp.packet[1] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T1, 0),
+ _mm512_extractf64x4_pd(T3, 0), 0x20);
+ tmp.packet[2] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T0, 0),
+ _mm512_extractf64x4_pd(T2, 0), 0x31);
+ tmp.packet[3] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T1, 0),
+ _mm512_extractf64x4_pd(T3, 0), 0x31);
+
+ tmp.packet[4] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T0, 1),
+ _mm512_extractf64x4_pd(T2, 1), 0x20);
+ tmp.packet[5] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T1, 1),
+ _mm512_extractf64x4_pd(T3, 1), 0x20);
+ tmp.packet[6] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T0, 1),
+ _mm512_extractf64x4_pd(T2, 1), 0x31);
+ tmp.packet[7] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T1, 1),
+ _mm512_extractf64x4_pd(T3, 1), 0x31);
+
+ PACK_OUTPUT_D(kernel.packet, tmp.packet, 0, 1);
+ PACK_OUTPUT_D(kernel.packet, tmp.packet, 1, 1);
+ PACK_OUTPUT_D(kernel.packet, tmp.packet, 2, 1);
+ PACK_OUTPUT_D(kernel.packet, tmp.packet, 3, 1);
+}
+
+EIGEN_DEVICE_FUNC inline void ptranspose(PacketBlock<Packet8d, 8>& kernel) {
+ __m512d T0 = _mm512_unpacklo_pd(kernel.packet[0], kernel.packet[1]);
+ __m512d T1 = _mm512_unpackhi_pd(kernel.packet[0], kernel.packet[1]);
+ __m512d T2 = _mm512_unpacklo_pd(kernel.packet[2], kernel.packet[3]);
+ __m512d T3 = _mm512_unpackhi_pd(kernel.packet[2], kernel.packet[3]);
+ __m512d T4 = _mm512_unpacklo_pd(kernel.packet[4], kernel.packet[5]);
+ __m512d T5 = _mm512_unpackhi_pd(kernel.packet[4], kernel.packet[5]);
+ __m512d T6 = _mm512_unpacklo_pd(kernel.packet[6], kernel.packet[7]);
+ __m512d T7 = _mm512_unpackhi_pd(kernel.packet[6], kernel.packet[7]);
+
+ PacketBlock<Packet4d, 16> tmp;
+
+ tmp.packet[0] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T0, 0),
+ _mm512_extractf64x4_pd(T2, 0), 0x20);
+ tmp.packet[1] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T1, 0),
+ _mm512_extractf64x4_pd(T3, 0), 0x20);
+ tmp.packet[2] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T0, 0),
+ _mm512_extractf64x4_pd(T2, 0), 0x31);
+ tmp.packet[3] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T1, 0),
+ _mm512_extractf64x4_pd(T3, 0), 0x31);
+
+ tmp.packet[4] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T0, 1),
+ _mm512_extractf64x4_pd(T2, 1), 0x20);
+ tmp.packet[5] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T1, 1),
+ _mm512_extractf64x4_pd(T3, 1), 0x20);
+ tmp.packet[6] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T0, 1),
+ _mm512_extractf64x4_pd(T2, 1), 0x31);
+ tmp.packet[7] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T1, 1),
+ _mm512_extractf64x4_pd(T3, 1), 0x31);
+
+ tmp.packet[8] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T4, 0),
+ _mm512_extractf64x4_pd(T6, 0), 0x20);
+ tmp.packet[9] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T5, 0),
+ _mm512_extractf64x4_pd(T7, 0), 0x20);
+ tmp.packet[10] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T4, 0),
+ _mm512_extractf64x4_pd(T6, 0), 0x31);
+ tmp.packet[11] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T5, 0),
+ _mm512_extractf64x4_pd(T7, 0), 0x31);
+
+ tmp.packet[12] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T4, 1),
+ _mm512_extractf64x4_pd(T6, 1), 0x20);
+ tmp.packet[13] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T5, 1),
+ _mm512_extractf64x4_pd(T7, 1), 0x20);
+ tmp.packet[14] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T4, 1),
+ _mm512_extractf64x4_pd(T6, 1), 0x31);
+ tmp.packet[15] = _mm256_permute2f128_pd(_mm512_extractf64x4_pd(T5, 1),
+ _mm512_extractf64x4_pd(T7, 1), 0x31);
+
+ PACK_OUTPUT_SQ_D(kernel.packet, tmp.packet, 0, 8);
+ PACK_OUTPUT_SQ_D(kernel.packet, tmp.packet, 1, 8);
+ PACK_OUTPUT_SQ_D(kernel.packet, tmp.packet, 2, 8);
+ PACK_OUTPUT_SQ_D(kernel.packet, tmp.packet, 3, 8);
+
+ PACK_OUTPUT_SQ_D(kernel.packet, tmp.packet, 4, 8);
+ PACK_OUTPUT_SQ_D(kernel.packet, tmp.packet, 5, 8);
+ PACK_OUTPUT_SQ_D(kernel.packet, tmp.packet, 6, 8);
+ PACK_OUTPUT_SQ_D(kernel.packet, tmp.packet, 7, 8);
+}
+template <>
+EIGEN_STRONG_INLINE Packet16f pblend(const Selector<16>& /*ifPacket*/,
+ const Packet16f& /*thenPacket*/,
+ const Packet16f& /*elsePacket*/) {
+ assert(false && "To be implemented");
+ return Packet16f();
+}
+template <>
+EIGEN_STRONG_INLINE Packet8d pblend(const Selector<8>& /*ifPacket*/,
+ const Packet8d& /*thenPacket*/,
+ const Packet8d& /*elsePacket*/) {
+ assert(false && "To be implemented");
+ return Packet8d();
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PACKET_MATH_AVX512_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AltiVec/Complex.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AltiVec/Complex.h
new file mode 100644
index 000000000..67db2f8ee
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AltiVec/Complex.h
@@ -0,0 +1,461 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010-2016 Konstantinos Margaritis <markos@freevec.org>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPLEX32_ALTIVEC_H
+#define EIGEN_COMPLEX32_ALTIVEC_H
+
+namespace Eigen {
+
+namespace internal {
+
+static Packet4ui p4ui_CONJ_XOR = vec_mergeh((Packet4ui)p4i_ZERO, (Packet4ui)p4f_MZERO);//{ 0x00000000, 0x80000000, 0x00000000, 0x80000000 };
+#ifdef __VSX__
+#if defined(_BIG_ENDIAN)
+static Packet2ul p2ul_CONJ_XOR1 = (Packet2ul) vec_sld((Packet4ui) p2d_MZERO, (Packet4ui) p2l_ZERO, 8);//{ 0x8000000000000000, 0x0000000000000000 };
+static Packet2ul p2ul_CONJ_XOR2 = (Packet2ul) vec_sld((Packet4ui) p2l_ZERO, (Packet4ui) p2d_MZERO, 8);//{ 0x8000000000000000, 0x0000000000000000 };
+#else
+static Packet2ul p2ul_CONJ_XOR1 = (Packet2ul) vec_sld((Packet4ui) p2l_ZERO, (Packet4ui) p2d_MZERO, 8);//{ 0x8000000000000000, 0x0000000000000000 };
+static Packet2ul p2ul_CONJ_XOR2 = (Packet2ul) vec_sld((Packet4ui) p2d_MZERO, (Packet4ui) p2l_ZERO, 8);//{ 0x8000000000000000, 0x0000000000000000 };
+#endif
+#endif
+
+//---------- float ----------
+struct Packet2cf
+{
+ EIGEN_STRONG_INLINE explicit Packet2cf() : v(p4f_ZERO) {}
+ EIGEN_STRONG_INLINE explicit Packet2cf(const Packet4f& a) : v(a) {}
+ Packet4f v;
+};
+
+template<> struct packet_traits<std::complex<float> > : default_packet_traits
+{
+ typedef Packet2cf type;
+ typedef Packet2cf half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size = 2,
+ HasHalfPacket = 0,
+
+ HasAdd = 1,
+ HasSub = 1,
+ HasMul = 1,
+ HasDiv = 1,
+ HasNegate = 1,
+ HasAbs = 0,
+ HasAbs2 = 0,
+ HasMin = 0,
+ HasMax = 0,
+#ifdef __VSX__
+ HasBlend = 1,
+#endif
+ HasSetLinear = 0
+ };
+};
+
+template<> struct unpacket_traits<Packet2cf> { typedef std::complex<float> type; enum {size=2, alignment=Aligned16}; typedef Packet2cf half; };
+
+template<> EIGEN_STRONG_INLINE Packet2cf pset1<Packet2cf>(const std::complex<float>& from)
+{
+ Packet2cf res;
+ if((std::ptrdiff_t(&from) % 16) == 0)
+ res.v = pload<Packet4f>((const float *)&from);
+ else
+ res.v = ploadu<Packet4f>((const float *)&from);
+ res.v = vec_perm(res.v, res.v, p16uc_PSET64_HI);
+ return res;
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pload<Packet2cf>(const std::complex<float>* from) { return Packet2cf(pload<Packet4f>((const float *) from)); }
+template<> EIGEN_STRONG_INLINE Packet2cf ploadu<Packet2cf>(const std::complex<float>* from) { return Packet2cf(ploadu<Packet4f>((const float*) from)); }
+template<> EIGEN_STRONG_INLINE Packet2cf ploaddup<Packet2cf>(const std::complex<float>* from) { return pset1<Packet2cf>(*from); }
+
+template<> EIGEN_STRONG_INLINE void pstore <std::complex<float> >(std::complex<float> * to, const Packet2cf& from) { pstore((float*)to, from.v); }
+template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<float> >(std::complex<float> * to, const Packet2cf& from) { pstoreu((float*)to, from.v); }
+
+template<> EIGEN_DEVICE_FUNC inline Packet2cf pgather<std::complex<float>, Packet2cf>(const std::complex<float>* from, Index stride)
+{
+ std::complex<float> EIGEN_ALIGN16 af[2];
+ af[0] = from[0*stride];
+ af[1] = from[1*stride];
+ return pload<Packet2cf>(af);
+}
+template<> EIGEN_DEVICE_FUNC inline void pscatter<std::complex<float>, Packet2cf>(std::complex<float>* to, const Packet2cf& from, Index stride)
+{
+ std::complex<float> EIGEN_ALIGN16 af[2];
+ pstore<std::complex<float> >((std::complex<float> *) af, from);
+ to[0*stride] = af[0];
+ to[1*stride] = af[1];
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf padd<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(a.v + b.v); }
+template<> EIGEN_STRONG_INLINE Packet2cf psub<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(a.v - b.v); }
+template<> EIGEN_STRONG_INLINE Packet2cf pnegate(const Packet2cf& a) { return Packet2cf(pnegate(a.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pconj(const Packet2cf& a) { return Packet2cf(pxor<Packet4f>(a.v, reinterpret_cast<Packet4f>(p4ui_CONJ_XOR))); }
+
+template<> EIGEN_STRONG_INLINE Packet2cf pmul<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+ Packet4f v1, v2;
+
+ // Permute and multiply the real parts of a and b
+ v1 = vec_perm(a.v, a.v, p16uc_PSET32_WODD);
+ // Get the imaginary parts of a
+ v2 = vec_perm(a.v, a.v, p16uc_PSET32_WEVEN);
+ // multiply a_re * b
+ v1 = vec_madd(v1, b.v, p4f_ZERO);
+ // multiply a_im * b and get the conjugate result
+ v2 = vec_madd(v2, b.v, p4f_ZERO);
+ v2 = reinterpret_cast<Packet4f>(pxor(v2, reinterpret_cast<Packet4f>(p4ui_CONJ_XOR)));
+ // permute back to a proper order
+ v2 = vec_perm(v2, v2, p16uc_COMPLEX32_REV);
+
+ return Packet2cf(padd<Packet4f>(v1, v2));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pand <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(pand<Packet4f>(a.v, b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf por <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(por<Packet4f>(a.v, b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pxor <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(pxor<Packet4f>(a.v, b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pandnot<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(pandnot<Packet4f>(a.v, b.v)); }
+
+template<> EIGEN_STRONG_INLINE void prefetch<std::complex<float> >(const std::complex<float> * addr) { EIGEN_PPC_PREFETCH(addr); }
+
+template<> EIGEN_STRONG_INLINE std::complex<float> pfirst<Packet2cf>(const Packet2cf& a)
+{
+ std::complex<float> EIGEN_ALIGN16 res[2];
+ pstore((float *)&res, a.v);
+
+ return res[0];
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf preverse(const Packet2cf& a)
+{
+ Packet4f rev_a;
+ rev_a = vec_perm(a.v, a.v, p16uc_COMPLEX32_REV2);
+ return Packet2cf(rev_a);
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<float> predux<Packet2cf>(const Packet2cf& a)
+{
+ Packet4f b;
+ b = vec_sld(a.v, a.v, 8);
+ b = padd<Packet4f>(a.v, b);
+ return pfirst<Packet2cf>(Packet2cf(b));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf preduxp<Packet2cf>(const Packet2cf* vecs)
+{
+ Packet4f b1, b2;
+#ifdef _BIG_ENDIAN
+ b1 = vec_sld(vecs[0].v, vecs[1].v, 8);
+ b2 = vec_sld(vecs[1].v, vecs[0].v, 8);
+#else
+ b1 = vec_sld(vecs[1].v, vecs[0].v, 8);
+ b2 = vec_sld(vecs[0].v, vecs[1].v, 8);
+#endif
+ b2 = vec_sld(b2, b2, 8);
+ b2 = padd<Packet4f>(b1, b2);
+
+ return Packet2cf(b2);
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<float> predux_mul<Packet2cf>(const Packet2cf& a)
+{
+ Packet4f b;
+ Packet2cf prod;
+ b = vec_sld(a.v, a.v, 8);
+ prod = pmul<Packet2cf>(a, Packet2cf(b));
+
+ return pfirst<Packet2cf>(prod);
+}
+
+template<int Offset>
+struct palign_impl<Offset,Packet2cf>
+{
+ static EIGEN_STRONG_INLINE void run(Packet2cf& first, const Packet2cf& second)
+ {
+ if (Offset==1)
+ {
+#ifdef _BIG_ENDIAN
+ first.v = vec_sld(first.v, second.v, 8);
+#else
+ first.v = vec_sld(second.v, first.v, 8);
+#endif
+ }
+ }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, false,true>
+{
+ EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+ {
+ return internal::pmul(a, pconj(b));
+ }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, true,false>
+{
+ EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+ {
+ return internal::pmul(pconj(a), b);
+ }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, true,true>
+{
+ EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+ {
+ return pconj(internal::pmul(a, b));
+ }
+};
+
+template<> struct conj_helper<Packet4f, Packet2cf, false,false>
+{
+ EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet4f& x, const Packet2cf& y, const Packet2cf& c) const
+ { return padd(c, pmul(x,y)); }
+
+ EIGEN_STRONG_INLINE Packet2cf pmul(const Packet4f& x, const Packet2cf& y) const
+ { return Packet2cf(internal::pmul<Packet4f>(x, y.v)); }
+};
+
+template<> struct conj_helper<Packet2cf, Packet4f, false,false>
+{
+ EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet4f& y, const Packet2cf& c) const
+ { return padd(c, pmul(x,y)); }
+
+ EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& x, const Packet4f& y) const
+ { return Packet2cf(internal::pmul<Packet4f>(x.v, y)); }
+};
+
+template<> EIGEN_STRONG_INLINE Packet2cf pdiv<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+ // TODO optimize it for AltiVec
+ Packet2cf res = conj_helper<Packet2cf,Packet2cf,false,true>().pmul(a, b);
+ Packet4f s = pmul<Packet4f>(b.v, b.v);
+ return Packet2cf(pdiv(res.v, padd<Packet4f>(s, vec_perm(s, s, p16uc_COMPLEX32_REV))));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pcplxflip<Packet2cf>(const Packet2cf& x)
+{
+ return Packet2cf(vec_perm(x.v, x.v, p16uc_COMPLEX32_REV));
+}
+
+EIGEN_STRONG_INLINE void ptranspose(PacketBlock<Packet2cf,2>& kernel)
+{
+ Packet4f tmp = vec_perm(kernel.packet[0].v, kernel.packet[1].v, p16uc_TRANSPOSE64_HI);
+ kernel.packet[1].v = vec_perm(kernel.packet[0].v, kernel.packet[1].v, p16uc_TRANSPOSE64_LO);
+ kernel.packet[0].v = tmp;
+}
+
+#ifdef __VSX__
+template<> EIGEN_STRONG_INLINE Packet2cf pblend(const Selector<2>& ifPacket, const Packet2cf& thenPacket, const Packet2cf& elsePacket) {
+ Packet2cf result;
+ result.v = reinterpret_cast<Packet4f>(pblend<Packet2d>(ifPacket, reinterpret_cast<Packet2d>(thenPacket.v), reinterpret_cast<Packet2d>(elsePacket.v)));
+ return result;
+}
+#endif
+
+//---------- double ----------
+#ifdef __VSX__
+struct Packet1cd
+{
+ EIGEN_STRONG_INLINE Packet1cd() {}
+ EIGEN_STRONG_INLINE explicit Packet1cd(const Packet2d& a) : v(a) {}
+ Packet2d v;
+};
+
+template<> struct packet_traits<std::complex<double> > : default_packet_traits
+{
+ typedef Packet1cd type;
+ typedef Packet1cd half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 0,
+ size = 1,
+ HasHalfPacket = 0,
+
+ HasAdd = 1,
+ HasSub = 1,
+ HasMul = 1,
+ HasDiv = 1,
+ HasNegate = 1,
+ HasAbs = 0,
+ HasAbs2 = 0,
+ HasMin = 0,
+ HasMax = 0,
+ HasSetLinear = 0
+ };
+};
+
+template<> struct unpacket_traits<Packet1cd> { typedef std::complex<double> type; enum {size=1, alignment=Aligned16}; typedef Packet1cd half; };
+
+template<> EIGEN_STRONG_INLINE Packet1cd pload <Packet1cd>(const std::complex<double>* from) { return Packet1cd(pload<Packet2d>((const double*)from)); }
+template<> EIGEN_STRONG_INLINE Packet1cd ploadu<Packet1cd>(const std::complex<double>* from) { return Packet1cd(ploadu<Packet2d>((const double*)from)); }
+template<> EIGEN_STRONG_INLINE void pstore <std::complex<double> >(std::complex<double> * to, const Packet1cd& from) { pstore((double*)to, from.v); }
+template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<double> >(std::complex<double> * to, const Packet1cd& from) { pstoreu((double*)to, from.v); }
+
+template<> EIGEN_STRONG_INLINE Packet1cd pset1<Packet1cd>(const std::complex<double>& from)
+{ /* here we really have to use unaligned loads :( */ return ploadu<Packet1cd>(&from); }
+
+template<> EIGEN_DEVICE_FUNC inline Packet1cd pgather<std::complex<double>, Packet1cd>(const std::complex<double>* from, Index stride)
+{
+ std::complex<double> EIGEN_ALIGN16 af[2];
+ af[0] = from[0*stride];
+ af[1] = from[1*stride];
+ return pload<Packet1cd>(af);
+}
+template<> EIGEN_DEVICE_FUNC inline void pscatter<std::complex<double>, Packet1cd>(std::complex<double>* to, const Packet1cd& from, Index stride)
+{
+ std::complex<double> EIGEN_ALIGN16 af[2];
+ pstore<std::complex<double> >(af, from);
+ to[0*stride] = af[0];
+ to[1*stride] = af[1];
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd padd<Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(a.v + b.v); }
+template<> EIGEN_STRONG_INLINE Packet1cd psub<Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(a.v - b.v); }
+template<> EIGEN_STRONG_INLINE Packet1cd pnegate(const Packet1cd& a) { return Packet1cd(pnegate(Packet2d(a.v))); }
+template<> EIGEN_STRONG_INLINE Packet1cd pconj(const Packet1cd& a) { return Packet1cd(pxor(a.v, reinterpret_cast<Packet2d>(p2ul_CONJ_XOR2))); }
+
+template<> EIGEN_STRONG_INLINE Packet1cd pmul<Packet1cd>(const Packet1cd& a, const Packet1cd& b)
+{
+ Packet2d a_re, a_im, v1, v2;
+
+ // Permute and multiply the real parts of a and b
+ a_re = vec_perm(a.v, a.v, p16uc_PSET64_HI);
+ // Get the imaginary parts of a
+ a_im = vec_perm(a.v, a.v, p16uc_PSET64_LO);
+ // multiply a_re * b
+ v1 = vec_madd(a_re, b.v, p2d_ZERO);
+ // multiply a_im * b and get the conjugate result
+ v2 = vec_madd(a_im, b.v, p2d_ZERO);
+ v2 = reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4ui>(v2), reinterpret_cast<Packet4ui>(v2), 8));
+ v2 = pxor(v2, reinterpret_cast<Packet2d>(p2ul_CONJ_XOR1));
+
+ return Packet1cd(padd<Packet2d>(v1, v2));
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd pand <Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(pand(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd por <Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(por(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pxor <Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(pxor(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pandnot<Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(pandnot(a.v, b.v)); }
+
+template<> EIGEN_STRONG_INLINE Packet1cd ploaddup<Packet1cd>(const std::complex<double>* from) { return pset1<Packet1cd>(*from); }
+
+template<> EIGEN_STRONG_INLINE void prefetch<std::complex<double> >(const std::complex<double> * addr) { EIGEN_PPC_PREFETCH(addr); }
+
+template<> EIGEN_STRONG_INLINE std::complex<double> pfirst<Packet1cd>(const Packet1cd& a)
+{
+ std::complex<double> EIGEN_ALIGN16 res[2];
+ pstore<std::complex<double> >(res, a);
+
+ return res[0];
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd preverse(const Packet1cd& a) { return a; }
+
+template<> EIGEN_STRONG_INLINE std::complex<double> predux<Packet1cd>(const Packet1cd& a) { return pfirst(a); }
+template<> EIGEN_STRONG_INLINE Packet1cd preduxp<Packet1cd>(const Packet1cd* vecs) { return vecs[0]; }
+
+template<> EIGEN_STRONG_INLINE std::complex<double> predux_mul<Packet1cd>(const Packet1cd& a) { return pfirst(a); }
+
+template<int Offset>
+struct palign_impl<Offset,Packet1cd>
+{
+ static EIGEN_STRONG_INLINE void run(Packet1cd& /*first*/, const Packet1cd& /*second*/)
+ {
+ // FIXME is it sure we never have to align a Packet1cd?
+ // Even though a std::complex<double> has 16 bytes, it is not necessarily aligned on a 16 bytes boundary...
+ }
+};
+
+template<> struct conj_helper<Packet1cd, Packet1cd, false,true>
+{
+ EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
+ {
+ return internal::pmul(a, pconj(b));
+ }
+};
+
+template<> struct conj_helper<Packet1cd, Packet1cd, true,false>
+{
+ EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
+ {
+ return internal::pmul(pconj(a), b);
+ }
+};
+
+template<> struct conj_helper<Packet1cd, Packet1cd, true,true>
+{
+ EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
+ {
+ return pconj(internal::pmul(a, b));
+ }
+};
+template<> struct conj_helper<Packet2d, Packet1cd, false,false>
+{
+ EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet2d& x, const Packet1cd& y, const Packet1cd& c) const
+ { return padd(c, pmul(x,y)); }
+
+ EIGEN_STRONG_INLINE Packet1cd pmul(const Packet2d& x, const Packet1cd& y) const
+ { return Packet1cd(internal::pmul<Packet2d>(x, y.v)); }
+};
+
+template<> struct conj_helper<Packet1cd, Packet2d, false,false>
+{
+ EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet2d& y, const Packet1cd& c) const
+ { return padd(c, pmul(x,y)); }
+
+ EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& x, const Packet2d& y) const
+ { return Packet1cd(internal::pmul<Packet2d>(x.v, y)); }
+};
+
+template<> EIGEN_STRONG_INLINE Packet1cd pdiv<Packet1cd>(const Packet1cd& a, const Packet1cd& b)
+{
+ // TODO optimize it for AltiVec
+ Packet1cd res = conj_helper<Packet1cd,Packet1cd,false,true>().pmul(a,b);
+ Packet2d s = pmul<Packet2d>(b.v, b.v);
+ return Packet1cd(pdiv(res.v, padd<Packet2d>(s, vec_perm(s, s, p16uc_REVERSE64))));
+}
+
+EIGEN_STRONG_INLINE Packet1cd pcplxflip/*<Packet1cd>*/(const Packet1cd& x)
+{
+ return Packet1cd(preverse(Packet2d(x.v)));
+}
+
+EIGEN_STRONG_INLINE void ptranspose(PacketBlock<Packet1cd,2>& kernel)
+{
+ Packet2d tmp = vec_perm(kernel.packet[0].v, kernel.packet[1].v, p16uc_TRANSPOSE64_HI);
+ kernel.packet[1].v = vec_perm(kernel.packet[0].v, kernel.packet[1].v, p16uc_TRANSPOSE64_LO);
+ kernel.packet[0].v = tmp;
+}
+#endif // __VSX__
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLEX32_ALTIVEC_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h
new file mode 100644
index 000000000..c5e4bede7
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h
@@ -0,0 +1,322 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007 Julien Pommier
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2016 Konstantinos Margaritis <markos@freevec.org>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* The sin, cos, exp, and log functions of this file come from
+ * Julien Pommier's sse math library: http://gruntthepeon.free.fr/ssemath/
+ */
+
+#ifndef EIGEN_MATH_FUNCTIONS_ALTIVEC_H
+#define EIGEN_MATH_FUNCTIONS_ALTIVEC_H
+
+namespace Eigen {
+
+namespace internal {
+
+static _EIGEN_DECLARE_CONST_Packet4f(1 , 1.0f);
+static _EIGEN_DECLARE_CONST_Packet4f(half, 0.5f);
+static _EIGEN_DECLARE_CONST_Packet4i(0x7f, 0x7f);
+static _EIGEN_DECLARE_CONST_Packet4i(23, 23);
+
+static _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(inv_mant_mask, ~0x7f800000);
+
+/* the smallest non denormalized float number */
+static _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(min_norm_pos, 0x00800000);
+static _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(minus_inf, 0xff800000); // -1.f/0.f
+static _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(minus_nan, 0xffffffff);
+
+/* natural logarithm computed for 4 simultaneous float
+ return NaN for x <= 0
+*/
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_SQRTHF, 0.707106781186547524f);
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p0, 7.0376836292E-2f);
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p1, - 1.1514610310E-1f);
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p2, 1.1676998740E-1f);
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p3, - 1.2420140846E-1f);
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p4, + 1.4249322787E-1f);
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p5, - 1.6668057665E-1f);
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p6, + 2.0000714765E-1f);
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p7, - 2.4999993993E-1f);
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p8, + 3.3333331174E-1f);
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_log_q1, -2.12194440e-4f);
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_log_q2, 0.693359375f);
+
+static _EIGEN_DECLARE_CONST_Packet4f(exp_hi, 88.3762626647950f);
+static _EIGEN_DECLARE_CONST_Packet4f(exp_lo, -88.3762626647949f);
+
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_LOG2EF, 1.44269504088896341f);
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_C1, 0.693359375f);
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_C2, -2.12194440e-4f);
+
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p0, 1.9875691500E-4f);
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p1, 1.3981999507E-3f);
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p2, 8.3334519073E-3f);
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p3, 4.1665795894E-2f);
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p4, 1.6666665459E-1f);
+static _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p5, 5.0000001201E-1f);
+
+#ifdef __VSX__
+static _EIGEN_DECLARE_CONST_Packet2d(1 , 1.0);
+static _EIGEN_DECLARE_CONST_Packet2d(2 , 2.0);
+static _EIGEN_DECLARE_CONST_Packet2d(half, 0.5);
+
+static _EIGEN_DECLARE_CONST_Packet2d(exp_hi, 709.437);
+static _EIGEN_DECLARE_CONST_Packet2d(exp_lo, -709.436139303);
+
+static _EIGEN_DECLARE_CONST_Packet2d(cephes_LOG2EF, 1.4426950408889634073599);
+
+static _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_p0, 1.26177193074810590878e-4);
+static _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_p1, 3.02994407707441961300e-2);
+static _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_p2, 9.99999999999999999910e-1);
+
+static _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q0, 3.00198505138664455042e-6);
+static _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q1, 2.52448340349684104192e-3);
+static _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q2, 2.27265548208155028766e-1);
+static _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q3, 2.00000000000000000009e0);
+
+static _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_C1, 0.693145751953125);
+static _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_C2, 1.42860682030941723212e-6);
+
+#ifdef __POWER8_VECTOR__
+static Packet2l p2l_1023 = { 1023, 1023 };
+static Packet2ul p2ul_52 = { 52, 52 };
+#endif
+
+#endif
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f plog<Packet4f>(const Packet4f& _x)
+{
+ Packet4f x = _x;
+
+ Packet4i emm0;
+
+ /* isvalid_mask is 0 if x < 0 or x is NaN. */
+ Packet4ui isvalid_mask = reinterpret_cast<Packet4ui>(vec_cmpge(x, p4f_ZERO));
+ Packet4ui iszero_mask = reinterpret_cast<Packet4ui>(vec_cmpeq(x, p4f_ZERO));
+
+ x = pmax(x, p4f_min_norm_pos); /* cut off denormalized stuff */
+ emm0 = vec_sr(reinterpret_cast<Packet4i>(x),
+ reinterpret_cast<Packet4ui>(p4i_23));
+
+ /* keep only the fractional part */
+ x = pand(x, p4f_inv_mant_mask);
+ x = por(x, p4f_half);
+
+ emm0 = psub(emm0, p4i_0x7f);
+ Packet4f e = padd(vec_ctf(emm0, 0), p4f_1);
+
+ /* part2:
+ if( x < SQRTHF ) {
+ e -= 1;
+ x = x + x - 1.0;
+ } else { x = x - 1.0; }
+ */
+ Packet4f mask = reinterpret_cast<Packet4f>(vec_cmplt(x, p4f_cephes_SQRTHF));
+ Packet4f tmp = pand(x, mask);
+ x = psub(x, p4f_1);
+ e = psub(e, pand(p4f_1, mask));
+ x = padd(x, tmp);
+
+ Packet4f x2 = pmul(x,x);
+ Packet4f x3 = pmul(x2,x);
+
+ Packet4f y, y1, y2;
+ y = pmadd(p4f_cephes_log_p0, x, p4f_cephes_log_p1);
+ y1 = pmadd(p4f_cephes_log_p3, x, p4f_cephes_log_p4);
+ y2 = pmadd(p4f_cephes_log_p6, x, p4f_cephes_log_p7);
+ y = pmadd(y , x, p4f_cephes_log_p2);
+ y1 = pmadd(y1, x, p4f_cephes_log_p5);
+ y2 = pmadd(y2, x, p4f_cephes_log_p8);
+ y = pmadd(y, x3, y1);
+ y = pmadd(y, x3, y2);
+ y = pmul(y, x3);
+
+ y1 = pmul(e, p4f_cephes_log_q1);
+ tmp = pmul(x2, p4f_half);
+ y = padd(y, y1);
+ x = psub(x, tmp);
+ y2 = pmul(e, p4f_cephes_log_q2);
+ x = padd(x, y);
+ x = padd(x, y2);
+ // negative arg will be NAN, 0 will be -INF
+ x = vec_sel(x, p4f_minus_inf, iszero_mask);
+ x = vec_sel(p4f_minus_nan, x, isvalid_mask);
+ return x;
+}
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f pexp<Packet4f>(const Packet4f& _x)
+{
+ Packet4f x = _x;
+
+ Packet4f tmp, fx;
+ Packet4i emm0;
+
+ // clamp x
+ x = pmax(pmin(x, p4f_exp_hi), p4f_exp_lo);
+
+ // express exp(x) as exp(g + n*log(2))
+ fx = pmadd(x, p4f_cephes_LOG2EF, p4f_half);
+
+ fx = pfloor(fx);
+
+ tmp = pmul(fx, p4f_cephes_exp_C1);
+ Packet4f z = pmul(fx, p4f_cephes_exp_C2);
+ x = psub(x, tmp);
+ x = psub(x, z);
+
+ z = pmul(x,x);
+
+ Packet4f y = p4f_cephes_exp_p0;
+ y = pmadd(y, x, p4f_cephes_exp_p1);
+ y = pmadd(y, x, p4f_cephes_exp_p2);
+ y = pmadd(y, x, p4f_cephes_exp_p3);
+ y = pmadd(y, x, p4f_cephes_exp_p4);
+ y = pmadd(y, x, p4f_cephes_exp_p5);
+ y = pmadd(y, z, x);
+ y = padd(y, p4f_1);
+
+ // build 2^n
+ emm0 = vec_cts(fx, 0);
+ emm0 = vec_add(emm0, p4i_0x7f);
+ emm0 = vec_sl(emm0, reinterpret_cast<Packet4ui>(p4i_23));
+
+ // Altivec's max & min operators just drop silent NaNs. Check NaNs in
+ // inputs and return them unmodified.
+ Packet4ui isnumber_mask = reinterpret_cast<Packet4ui>(vec_cmpeq(_x, _x));
+ return vec_sel(_x, pmax(pmul(y, reinterpret_cast<Packet4f>(emm0)), _x),
+ isnumber_mask);
+}
+
+#ifndef EIGEN_COMP_CLANG
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f prsqrt<Packet4f>(const Packet4f& x)
+{
+ return vec_rsqrt(x);
+}
+#endif
+
+#ifdef __VSX__
+#ifndef EIGEN_COMP_CLANG
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet2d prsqrt<Packet2d>(const Packet2d& x)
+{
+ return vec_rsqrt(x);
+}
+#endif
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f psqrt<Packet4f>(const Packet4f& x)
+{
+ return vec_sqrt(x);
+}
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet2d psqrt<Packet2d>(const Packet2d& x)
+{
+ return vec_sqrt(x);
+}
+
+// VSX support varies between different compilers and even different
+// versions of the same compiler. For gcc version >= 4.9.3, we can use
+// vec_cts to efficiently convert Packet2d to Packet2l. Otherwise, use
+// a slow version that works with older compilers.
+// Update: apparently vec_cts/vec_ctf intrinsics for 64-bit doubles
+// are buggy, https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70963
+static inline Packet2l ConvertToPacket2l(const Packet2d& x) {
+#if EIGEN_GNUC_AT_LEAST(5, 4) || \
+ (EIGEN_GNUC_AT(6, 1) && __GNUC_PATCHLEVEL__ >= 1)
+ return vec_cts(x, 0); // TODO: check clang version.
+#else
+ double tmp[2];
+ memcpy(tmp, &x, sizeof(tmp));
+ Packet2l l = { static_cast<long long>(tmp[0]),
+ static_cast<long long>(tmp[1]) };
+ return l;
+#endif
+}
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet2d pexp<Packet2d>(const Packet2d& _x)
+{
+ Packet2d x = _x;
+
+ Packet2d tmp, fx;
+ Packet2l emm0;
+
+ // clamp x
+ x = pmax(pmin(x, p2d_exp_hi), p2d_exp_lo);
+
+ /* express exp(x) as exp(g + n*log(2)) */
+ fx = pmadd(x, p2d_cephes_LOG2EF, p2d_half);
+
+ fx = pfloor(fx);
+
+ tmp = pmul(fx, p2d_cephes_exp_C1);
+ Packet2d z = pmul(fx, p2d_cephes_exp_C2);
+ x = psub(x, tmp);
+ x = psub(x, z);
+
+ Packet2d x2 = pmul(x,x);
+
+ Packet2d px = p2d_cephes_exp_p0;
+ px = pmadd(px, x2, p2d_cephes_exp_p1);
+ px = pmadd(px, x2, p2d_cephes_exp_p2);
+ px = pmul (px, x);
+
+ Packet2d qx = p2d_cephes_exp_q0;
+ qx = pmadd(qx, x2, p2d_cephes_exp_q1);
+ qx = pmadd(qx, x2, p2d_cephes_exp_q2);
+ qx = pmadd(qx, x2, p2d_cephes_exp_q3);
+
+ x = pdiv(px,psub(qx,px));
+ x = pmadd(p2d_2,x,p2d_1);
+
+ // build 2^n
+ emm0 = ConvertToPacket2l(fx);
+
+#ifdef __POWER8_VECTOR__
+ emm0 = vec_add(emm0, p2l_1023);
+ emm0 = vec_sl(emm0, p2ul_52);
+#else
+ // Code is a bit complex for POWER7. There is actually a
+ // vec_xxsldi intrinsic but it is not supported by some gcc versions.
+ // So we shift (52-32) bits and do a word swap with zeros.
+ _EIGEN_DECLARE_CONST_Packet4i(1023, 1023);
+ _EIGEN_DECLARE_CONST_Packet4i(20, 20); // 52 - 32
+
+ Packet4i emm04i = reinterpret_cast<Packet4i>(emm0);
+ emm04i = vec_add(emm04i, p4i_1023);
+ emm04i = vec_sl(emm04i, reinterpret_cast<Packet4ui>(p4i_20));
+ static const Packet16uc perm = {
+ 0x14, 0x15, 0x16, 0x17, 0x00, 0x01, 0x02, 0x03,
+ 0x1c, 0x1d, 0x1e, 0x1f, 0x08, 0x09, 0x0a, 0x0b };
+#ifdef _BIG_ENDIAN
+ emm0 = reinterpret_cast<Packet2l>(vec_perm(p4i_ZERO, emm04i, perm));
+#else
+ emm0 = reinterpret_cast<Packet2l>(vec_perm(emm04i, p4i_ZERO, perm));
+#endif
+
+#endif
+
+ // Altivec's max & min operators just drop silent NaNs. Check NaNs in
+ // inputs and return them unmodified.
+ Packet2ul isnumber_mask = reinterpret_cast<Packet2ul>(vec_cmpeq(_x, _x));
+ return vec_sel(_x, pmax(pmul(x, reinterpret_cast<Packet2d>(emm0)), _x),
+ isnumber_mask);
+}
+#endif
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATH_FUNCTIONS_ALTIVEC_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h
new file mode 100755
index 000000000..b3f1ea199
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h
@@ -0,0 +1,1033 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2016 Konstantinos Margaritis <markos@freevec.org>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PACKET_MATH_ALTIVEC_H
+#define EIGEN_PACKET_MATH_ALTIVEC_H
+
+namespace Eigen {
+
+namespace internal {
+
+#ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
+#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 4
+#endif
+
+#ifndef EIGEN_HAS_SINGLE_INSTRUCTION_MADD
+#define EIGEN_HAS_SINGLE_INSTRUCTION_MADD
+#endif
+
+#ifndef EIGEN_HAS_SINGLE_INSTRUCTION_CJMADD
+#define EIGEN_HAS_SINGLE_INSTRUCTION_CJMADD
+#endif
+
+// NOTE Altivec has 32 registers, but Eigen only accepts a value of 8 or 16
+#ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS
+#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 32
+#endif
+
+typedef __vector float Packet4f;
+typedef __vector int Packet4i;
+typedef __vector unsigned int Packet4ui;
+typedef __vector __bool int Packet4bi;
+typedef __vector short int Packet8i;
+typedef __vector unsigned char Packet16uc;
+
+// We don't want to write the same code all the time, but we need to reuse the constants
+// and it doesn't really work to declare them global, so we define macros instead
+
+#define _EIGEN_DECLARE_CONST_FAST_Packet4f(NAME,X) \
+ Packet4f p4f_##NAME = reinterpret_cast<Packet4f>(vec_splat_s32(X))
+
+#define _EIGEN_DECLARE_CONST_FAST_Packet4i(NAME,X) \
+ Packet4i p4i_##NAME = vec_splat_s32(X)
+
+#define _EIGEN_DECLARE_CONST_Packet4f(NAME,X) \
+ Packet4f p4f_##NAME = pset1<Packet4f>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet4i(NAME,X) \
+ Packet4i p4i_##NAME = pset1<Packet4i>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet2d(NAME,X) \
+ Packet2d p2d_##NAME = pset1<Packet2d>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet2l(NAME,X) \
+ Packet2l p2l_##NAME = pset1<Packet2l>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(NAME,X) \
+ const Packet4f p4f_##NAME = reinterpret_cast<Packet4f>(pset1<Packet4i>(X))
+
+#define DST_CHAN 1
+#define DST_CTRL(size, count, stride) (((size) << 24) | ((count) << 16) | (stride))
+
+
+// These constants are endian-agnostic
+static _EIGEN_DECLARE_CONST_FAST_Packet4f(ZERO, 0); //{ 0.0, 0.0, 0.0, 0.0}
+static _EIGEN_DECLARE_CONST_FAST_Packet4i(ZERO, 0); //{ 0, 0, 0, 0,}
+static _EIGEN_DECLARE_CONST_FAST_Packet4i(ONE,1); //{ 1, 1, 1, 1}
+static _EIGEN_DECLARE_CONST_FAST_Packet4i(MINUS16,-16); //{ -16, -16, -16, -16}
+static _EIGEN_DECLARE_CONST_FAST_Packet4i(MINUS1,-1); //{ -1, -1, -1, -1}
+static Packet4f p4f_MZERO = (Packet4f) vec_sl((Packet4ui)p4i_MINUS1, (Packet4ui)p4i_MINUS1); //{ 0x80000000, 0x80000000, 0x80000000, 0x80000000}
+#ifndef __VSX__
+static Packet4f p4f_ONE = vec_ctf(p4i_ONE, 0); //{ 1.0, 1.0, 1.0, 1.0}
+#endif
+
+static Packet4f p4f_COUNTDOWN = { 0.0, 1.0, 2.0, 3.0 };
+static Packet4i p4i_COUNTDOWN = { 0, 1, 2, 3 };
+
+static Packet16uc p16uc_REVERSE32 = { 12,13,14,15, 8,9,10,11, 4,5,6,7, 0,1,2,3 };
+static Packet16uc p16uc_DUPLICATE32_HI = { 0,1,2,3, 0,1,2,3, 4,5,6,7, 4,5,6,7 };
+
+// Mask alignment
+#ifdef __PPC64__
+#define _EIGEN_MASK_ALIGNMENT 0xfffffffffffffff0
+#else
+#define _EIGEN_MASK_ALIGNMENT 0xfffffff0
+#endif
+
+#define _EIGEN_ALIGNED_PTR(x) ((std::ptrdiff_t)(x) & _EIGEN_MASK_ALIGNMENT)
+
+// Handle endianness properly while loading constants
+// Define global static constants:
+#ifdef _BIG_ENDIAN
+static Packet16uc p16uc_FORWARD = vec_lvsl(0, (float*)0);
+#ifdef __VSX__
+static Packet16uc p16uc_REVERSE64 = { 8,9,10,11, 12,13,14,15, 0,1,2,3, 4,5,6,7 };
+#endif
+static Packet16uc p16uc_PSET32_WODD = vec_sld((Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 0), (Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 2), 8);//{ 0,1,2,3, 0,1,2,3, 8,9,10,11, 8,9,10,11 };
+static Packet16uc p16uc_PSET32_WEVEN = vec_sld(p16uc_DUPLICATE32_HI, (Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 3), 8);//{ 4,5,6,7, 4,5,6,7, 12,13,14,15, 12,13,14,15 };
+static Packet16uc p16uc_HALF64_0_16 = vec_sld((Packet16uc)p4i_ZERO, vec_splat((Packet16uc) vec_abs(p4i_MINUS16), 3), 8); //{ 0,0,0,0, 0,0,0,0, 16,16,16,16, 16,16,16,16};
+#else
+static Packet16uc p16uc_FORWARD = p16uc_REVERSE32;
+static Packet16uc p16uc_REVERSE64 = { 8,9,10,11, 12,13,14,15, 0,1,2,3, 4,5,6,7 };
+static Packet16uc p16uc_PSET32_WODD = vec_sld((Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 1), (Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 3), 8);//{ 0,1,2,3, 0,1,2,3, 8,9,10,11, 8,9,10,11 };
+static Packet16uc p16uc_PSET32_WEVEN = vec_sld((Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 0), (Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 2), 8);//{ 4,5,6,7, 4,5,6,7, 12,13,14,15, 12,13,14,15 };
+static Packet16uc p16uc_HALF64_0_16 = vec_sld(vec_splat((Packet16uc) vec_abs(p4i_MINUS16), 0), (Packet16uc)p4i_ZERO, 8); //{ 0,0,0,0, 0,0,0,0, 16,16,16,16, 16,16,16,16};
+#endif // _BIG_ENDIAN
+
+static Packet16uc p16uc_PSET64_HI = (Packet16uc) vec_mergeh((Packet4ui)p16uc_PSET32_WODD, (Packet4ui)p16uc_PSET32_WEVEN); //{ 0,1,2,3, 4,5,6,7, 0,1,2,3, 4,5,6,7 };
+static Packet16uc p16uc_PSET64_LO = (Packet16uc) vec_mergel((Packet4ui)p16uc_PSET32_WODD, (Packet4ui)p16uc_PSET32_WEVEN); //{ 8,9,10,11, 12,13,14,15, 8,9,10,11, 12,13,14,15 };
+static Packet16uc p16uc_TRANSPOSE64_HI = p16uc_PSET64_HI + p16uc_HALF64_0_16; //{ 0,1,2,3, 4,5,6,7, 16,17,18,19, 20,21,22,23};
+static Packet16uc p16uc_TRANSPOSE64_LO = p16uc_PSET64_LO + p16uc_HALF64_0_16; //{ 8,9,10,11, 12,13,14,15, 24,25,26,27, 28,29,30,31};
+
+static Packet16uc p16uc_COMPLEX32_REV = vec_sld(p16uc_REVERSE32, p16uc_REVERSE32, 8); //{ 4,5,6,7, 0,1,2,3, 12,13,14,15, 8,9,10,11 };
+
+#ifdef _BIG_ENDIAN
+static Packet16uc p16uc_COMPLEX32_REV2 = vec_sld(p16uc_FORWARD, p16uc_FORWARD, 8); //{ 8,9,10,11, 12,13,14,15, 0,1,2,3, 4,5,6,7 };
+#else
+static Packet16uc p16uc_COMPLEX32_REV2 = vec_sld(p16uc_PSET64_HI, p16uc_PSET64_LO, 8); //{ 8,9,10,11, 12,13,14,15, 0,1,2,3, 4,5,6,7 };
+#endif // _BIG_ENDIAN
+
+#if EIGEN_HAS_BUILTIN(__builtin_prefetch) || EIGEN_COMP_GNUC
+ #define EIGEN_PPC_PREFETCH(ADDR) __builtin_prefetch(ADDR);
+#else
+ #define EIGEN_PPC_PREFETCH(ADDR) asm( " dcbt [%[addr]]\n" :: [addr] "r" (ADDR) : "cc" );
+#endif
+
+template<> struct packet_traits<float> : default_packet_traits
+{
+ typedef Packet4f type;
+ typedef Packet4f half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size=4,
+ HasHalfPacket = 1,
+
+ HasAdd = 1,
+ HasSub = 1,
+ HasMul = 1,
+ HasDiv = 1,
+ HasMin = 1,
+ HasMax = 1,
+ HasAbs = 1,
+ HasSin = 0,
+ HasCos = 0,
+ HasLog = 0,
+ HasExp = 1,
+#ifdef __VSX__
+ HasSqrt = 1,
+#if !EIGEN_COMP_CLANG
+ HasRsqrt = 1,
+#else
+ HasRsqrt = 0,
+#endif
+#else
+ HasSqrt = 0,
+ HasRsqrt = 0,
+#endif
+ HasRound = 1,
+ HasFloor = 1,
+ HasCeil = 1,
+ HasNegate = 1,
+ HasBlend = 1
+ };
+};
+template<> struct packet_traits<int> : default_packet_traits
+{
+ typedef Packet4i type;
+ typedef Packet4i half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size = 4,
+ HasHalfPacket = 0,
+
+ HasAdd = 1,
+ HasSub = 1,
+ HasMul = 1,
+ HasDiv = 0,
+ HasBlend = 1
+ };
+};
+
+
+template<> struct unpacket_traits<Packet4f> { typedef float type; enum {size=4, alignment=Aligned16}; typedef Packet4f half; };
+template<> struct unpacket_traits<Packet4i> { typedef int type; enum {size=4, alignment=Aligned16}; typedef Packet4i half; };
+
+inline std::ostream & operator <<(std::ostream & s, const Packet16uc & v)
+{
+ union {
+ Packet16uc v;
+ unsigned char n[16];
+ } vt;
+ vt.v = v;
+ for (int i=0; i< 16; i++)
+ s << (int)vt.n[i] << ", ";
+ return s;
+}
+
+inline std::ostream & operator <<(std::ostream & s, const Packet4f & v)
+{
+ union {
+ Packet4f v;
+ float n[4];
+ } vt;
+ vt.v = v;
+ s << vt.n[0] << ", " << vt.n[1] << ", " << vt.n[2] << ", " << vt.n[3];
+ return s;
+}
+
+inline std::ostream & operator <<(std::ostream & s, const Packet4i & v)
+{
+ union {
+ Packet4i v;
+ int n[4];
+ } vt;
+ vt.v = v;
+ s << vt.n[0] << ", " << vt.n[1] << ", " << vt.n[2] << ", " << vt.n[3];
+ return s;
+}
+
+inline std::ostream & operator <<(std::ostream & s, const Packet4ui & v)
+{
+ union {
+ Packet4ui v;
+ unsigned int n[4];
+ } vt;
+ vt.v = v;
+ s << vt.n[0] << ", " << vt.n[1] << ", " << vt.n[2] << ", " << vt.n[3];
+ return s;
+}
+
+// Need to define them first or we get specialization after instantiation errors
+template<> EIGEN_STRONG_INLINE Packet4f pload<Packet4f>(const float* from)
+{
+ EIGEN_DEBUG_ALIGNED_LOAD
+#ifdef __VSX__
+ return vec_vsx_ld(0, from);
+#else
+ return vec_ld(0, from);
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i pload<Packet4i>(const int* from)
+{
+ EIGEN_DEBUG_ALIGNED_LOAD
+#ifdef __VSX__
+ return vec_vsx_ld(0, from);
+#else
+ return vec_ld(0, from);
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE void pstore<float>(float* to, const Packet4f& from)
+{
+ EIGEN_DEBUG_ALIGNED_STORE
+#ifdef __VSX__
+ vec_vsx_st(from, 0, to);
+#else
+ vec_st(from, 0, to);
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE void pstore<int>(int* to, const Packet4i& from)
+{
+ EIGEN_DEBUG_ALIGNED_STORE
+#ifdef __VSX__
+ vec_vsx_st(from, 0, to);
+#else
+ vec_st(from, 0, to);
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f pset1<Packet4f>(const float& from) {
+ Packet4f v = {from, from, from, from};
+ return v;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i pset1<Packet4i>(const int& from) {
+ Packet4i v = {from, from, from, from};
+ return v;
+}
+template<> EIGEN_STRONG_INLINE void
+pbroadcast4<Packet4f>(const float *a,
+ Packet4f& a0, Packet4f& a1, Packet4f& a2, Packet4f& a3)
+{
+ a3 = pload<Packet4f>(a);
+ a0 = vec_splat(a3, 0);
+ a1 = vec_splat(a3, 1);
+ a2 = vec_splat(a3, 2);
+ a3 = vec_splat(a3, 3);
+}
+template<> EIGEN_STRONG_INLINE void
+pbroadcast4<Packet4i>(const int *a,
+ Packet4i& a0, Packet4i& a1, Packet4i& a2, Packet4i& a3)
+{
+ a3 = pload<Packet4i>(a);
+ a0 = vec_splat(a3, 0);
+ a1 = vec_splat(a3, 1);
+ a2 = vec_splat(a3, 2);
+ a3 = vec_splat(a3, 3);
+}
+
+template<> EIGEN_DEVICE_FUNC inline Packet4f pgather<float, Packet4f>(const float* from, Index stride)
+{
+ float EIGEN_ALIGN16 af[4];
+ af[0] = from[0*stride];
+ af[1] = from[1*stride];
+ af[2] = from[2*stride];
+ af[3] = from[3*stride];
+ return pload<Packet4f>(af);
+}
+template<> EIGEN_DEVICE_FUNC inline Packet4i pgather<int, Packet4i>(const int* from, Index stride)
+{
+ int EIGEN_ALIGN16 ai[4];
+ ai[0] = from[0*stride];
+ ai[1] = from[1*stride];
+ ai[2] = from[2*stride];
+ ai[3] = from[3*stride];
+ return pload<Packet4i>(ai);
+}
+template<> EIGEN_DEVICE_FUNC inline void pscatter<float, Packet4f>(float* to, const Packet4f& from, Index stride)
+{
+ float EIGEN_ALIGN16 af[4];
+ pstore<float>(af, from);
+ to[0*stride] = af[0];
+ to[1*stride] = af[1];
+ to[2*stride] = af[2];
+ to[3*stride] = af[3];
+}
+template<> EIGEN_DEVICE_FUNC inline void pscatter<int, Packet4i>(int* to, const Packet4i& from, Index stride)
+{
+ int EIGEN_ALIGN16 ai[4];
+ pstore<int>((int *)ai, from);
+ to[0*stride] = ai[0];
+ to[1*stride] = ai[1];
+ to[2*stride] = ai[2];
+ to[3*stride] = ai[3];
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f plset<Packet4f>(const float& a) { return pset1<Packet4f>(a) + p4f_COUNTDOWN; }
+template<> EIGEN_STRONG_INLINE Packet4i plset<Packet4i>(const int& a) { return pset1<Packet4i>(a) + p4i_COUNTDOWN; }
+
+template<> EIGEN_STRONG_INLINE Packet4f padd<Packet4f>(const Packet4f& a, const Packet4f& b) { return a + b; }
+template<> EIGEN_STRONG_INLINE Packet4i padd<Packet4i>(const Packet4i& a, const Packet4i& b) { return a + b; }
+
+template<> EIGEN_STRONG_INLINE Packet4f psub<Packet4f>(const Packet4f& a, const Packet4f& b) { return a - b; }
+template<> EIGEN_STRONG_INLINE Packet4i psub<Packet4i>(const Packet4i& a, const Packet4i& b) { return a - b; }
+
+template<> EIGEN_STRONG_INLINE Packet4f pnegate(const Packet4f& a) { return p4f_ZERO - a; }
+template<> EIGEN_STRONG_INLINE Packet4i pnegate(const Packet4i& a) { return p4i_ZERO - a; }
+
+template<> EIGEN_STRONG_INLINE Packet4f pconj(const Packet4f& a) { return a; }
+template<> EIGEN_STRONG_INLINE Packet4i pconj(const Packet4i& a) { return a; }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmul<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_madd(a,b, p4f_MZERO); }
+template<> EIGEN_STRONG_INLINE Packet4i pmul<Packet4i>(const Packet4i& a, const Packet4i& b) { return a * b; }
+
+template<> EIGEN_STRONG_INLINE Packet4f pdiv<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+#ifndef __VSX__ // VSX actually provides a div instruction
+ Packet4f t, y_0, y_1;
+
+ // Altivec does not offer a divide instruction, we have to do a reciprocal approximation
+ y_0 = vec_re(b);
+
+ // Do one Newton-Raphson iteration to get the needed accuracy
+ t = vec_nmsub(y_0, b, p4f_ONE);
+ y_1 = vec_madd(y_0, t, y_0);
+
+ return vec_madd(a, y_1, p4f_MZERO);
+#else
+ return vec_div(a, b);
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i pdiv<Packet4i>(const Packet4i& /*a*/, const Packet4i& /*b*/)
+{ eigen_assert(false && "packet integer division are not supported by AltiVec");
+ return pset1<Packet4i>(0);
+}
+
+// for some weird raisons, it has to be overloaded for packet of integers
+template<> EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f& a, const Packet4f& b, const Packet4f& c) { return vec_madd(a,b,c); }
+template<> EIGEN_STRONG_INLINE Packet4i pmadd(const Packet4i& a, const Packet4i& b, const Packet4i& c) { return a*b + c; }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmin<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_min(a, b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmin<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_min(a, b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmax<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_max(a, b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmax<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_max(a, b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pand<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_and(a, b); }
+template<> EIGEN_STRONG_INLINE Packet4i pand<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_and(a, b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f por<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_or(a, b); }
+template<> EIGEN_STRONG_INLINE Packet4i por<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_or(a, b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pxor<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_xor(a, b); }
+template<> EIGEN_STRONG_INLINE Packet4i pxor<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_xor(a, b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pandnot<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_and(a, vec_nor(b, b)); }
+template<> EIGEN_STRONG_INLINE Packet4i pandnot<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_and(a, vec_nor(b, b)); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pround<Packet4f>(const Packet4f& a) { return vec_round(a); }
+template<> EIGEN_STRONG_INLINE Packet4f pceil<Packet4f>(const Packet4f& a) { return vec_ceil(a); }
+template<> EIGEN_STRONG_INLINE Packet4f pfloor<Packet4f>(const Packet4f& a) { return vec_floor(a); }
+
+#ifdef _BIG_ENDIAN
+template<> EIGEN_STRONG_INLINE Packet4f ploadu<Packet4f>(const float* from)
+{
+ EIGEN_DEBUG_ALIGNED_LOAD
+ Packet16uc MSQ, LSQ;
+ Packet16uc mask;
+ MSQ = vec_ld(0, (unsigned char *)from); // most significant quadword
+ LSQ = vec_ld(15, (unsigned char *)from); // least significant quadword
+ mask = vec_lvsl(0, from); // create the permute mask
+ return (Packet4f) vec_perm(MSQ, LSQ, mask); // align the data
+
+}
+template<> EIGEN_STRONG_INLINE Packet4i ploadu<Packet4i>(const int* from)
+{
+ EIGEN_DEBUG_ALIGNED_LOAD
+ // Taken from http://developer.apple.com/hardwaredrivers/ve/alignment.html
+ Packet16uc MSQ, LSQ;
+ Packet16uc mask;
+ MSQ = vec_ld(0, (unsigned char *)from); // most significant quadword
+ LSQ = vec_ld(15, (unsigned char *)from); // least significant quadword
+ mask = vec_lvsl(0, from); // create the permute mask
+ return (Packet4i) vec_perm(MSQ, LSQ, mask); // align the data
+}
+#else
+// We also need ot redefine little endian loading of Packet4i/Packet4f using VSX
+template<> EIGEN_STRONG_INLINE Packet4i ploadu<Packet4i>(const int* from)
+{
+ EIGEN_DEBUG_UNALIGNED_LOAD
+ return (Packet4i) vec_vsx_ld((long)from & 15, (const int*) _EIGEN_ALIGNED_PTR(from));
+}
+template<> EIGEN_STRONG_INLINE Packet4f ploadu<Packet4f>(const float* from)
+{
+ EIGEN_DEBUG_UNALIGNED_LOAD
+ return (Packet4f) vec_vsx_ld((long)from & 15, (const float*) _EIGEN_ALIGNED_PTR(from));
+}
+#endif
+
+template<> EIGEN_STRONG_INLINE Packet4f ploaddup<Packet4f>(const float* from)
+{
+ Packet4f p;
+ if((std::ptrdiff_t(from) % 16) == 0) p = pload<Packet4f>(from);
+ else p = ploadu<Packet4f>(from);
+ return vec_perm(p, p, p16uc_DUPLICATE32_HI);
+}
+template<> EIGEN_STRONG_INLINE Packet4i ploaddup<Packet4i>(const int* from)
+{
+ Packet4i p;
+ if((std::ptrdiff_t(from) % 16) == 0) p = pload<Packet4i>(from);
+ else p = ploadu<Packet4i>(from);
+ return vec_perm(p, p, p16uc_DUPLICATE32_HI);
+}
+
+#ifdef _BIG_ENDIAN
+template<> EIGEN_STRONG_INLINE void pstoreu<float>(float* to, const Packet4f& from)
+{
+ EIGEN_DEBUG_UNALIGNED_STORE
+ // Taken from http://developer.apple.com/hardwaredrivers/ve/alignment.html
+ // Warning: not thread safe!
+ Packet16uc MSQ, LSQ, edges;
+ Packet16uc edgeAlign, align;
+
+ MSQ = vec_ld(0, (unsigned char *)to); // most significant quadword
+ LSQ = vec_ld(15, (unsigned char *)to); // least significant quadword
+ edgeAlign = vec_lvsl(0, to); // permute map to extract edges
+ edges=vec_perm(LSQ,MSQ,edgeAlign); // extract the edges
+ align = vec_lvsr( 0, to ); // permute map to misalign data
+ MSQ = vec_perm(edges,(Packet16uc)from,align); // misalign the data (MSQ)
+ LSQ = vec_perm((Packet16uc)from,edges,align); // misalign the data (LSQ)
+ vec_st( LSQ, 15, (unsigned char *)to ); // Store the LSQ part first
+ vec_st( MSQ, 0, (unsigned char *)to ); // Store the MSQ part
+}
+template<> EIGEN_STRONG_INLINE void pstoreu<int>(int* to, const Packet4i& from)
+{
+ EIGEN_DEBUG_UNALIGNED_STORE
+ // Taken from http://developer.apple.com/hardwaredrivers/ve/alignment.html
+ // Warning: not thread safe!
+ Packet16uc MSQ, LSQ, edges;
+ Packet16uc edgeAlign, align;
+
+ MSQ = vec_ld(0, (unsigned char *)to); // most significant quadword
+ LSQ = vec_ld(15, (unsigned char *)to); // least significant quadword
+ edgeAlign = vec_lvsl(0, to); // permute map to extract edges
+ edges=vec_perm(LSQ, MSQ, edgeAlign); // extract the edges
+ align = vec_lvsr( 0, to ); // permute map to misalign data
+ MSQ = vec_perm(edges, (Packet16uc) from, align); // misalign the data (MSQ)
+ LSQ = vec_perm((Packet16uc) from, edges, align); // misalign the data (LSQ)
+ vec_st( LSQ, 15, (unsigned char *)to ); // Store the LSQ part first
+ vec_st( MSQ, 0, (unsigned char *)to ); // Store the MSQ part
+}
+#else
+// We also need ot redefine little endian loading of Packet4i/Packet4f using VSX
+template<> EIGEN_STRONG_INLINE void pstoreu<int>(int* to, const Packet4i& from)
+{
+ EIGEN_DEBUG_ALIGNED_STORE
+ vec_vsx_st(from, (long)to & 15, (int*) _EIGEN_ALIGNED_PTR(to));
+}
+template<> EIGEN_STRONG_INLINE void pstoreu<float>(float* to, const Packet4f& from)
+{
+ EIGEN_DEBUG_ALIGNED_STORE
+ vec_vsx_st(from, (long)to & 15, (float*) _EIGEN_ALIGNED_PTR(to));
+}
+#endif
+
+template<> EIGEN_STRONG_INLINE void prefetch<float>(const float* addr) { EIGEN_PPC_PREFETCH(addr); }
+template<> EIGEN_STRONG_INLINE void prefetch<int>(const int* addr) { EIGEN_PPC_PREFETCH(addr); }
+
+template<> EIGEN_STRONG_INLINE float pfirst<Packet4f>(const Packet4f& a) { float EIGEN_ALIGN16 x; vec_ste(a, 0, &x); return x; }
+template<> EIGEN_STRONG_INLINE int pfirst<Packet4i>(const Packet4i& a) { int EIGEN_ALIGN16 x; vec_ste(a, 0, &x); return x; }
+
+template<> EIGEN_STRONG_INLINE Packet4f preverse(const Packet4f& a)
+{
+ return reinterpret_cast<Packet4f>(vec_perm(reinterpret_cast<Packet16uc>(a), reinterpret_cast<Packet16uc>(a), p16uc_REVERSE32));
+}
+template<> EIGEN_STRONG_INLINE Packet4i preverse(const Packet4i& a)
+{
+ return reinterpret_cast<Packet4i>(vec_perm(reinterpret_cast<Packet16uc>(a), reinterpret_cast<Packet16uc>(a), p16uc_REVERSE32)); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pabs(const Packet4f& a) { return vec_abs(a); }
+template<> EIGEN_STRONG_INLINE Packet4i pabs(const Packet4i& a) { return vec_abs(a); }
+
+template<> EIGEN_STRONG_INLINE float predux<Packet4f>(const Packet4f& a)
+{
+ Packet4f b, sum;
+ b = vec_sld(a, a, 8);
+ sum = a + b;
+ b = vec_sld(sum, sum, 4);
+ sum += b;
+ return pfirst(sum);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f preduxp<Packet4f>(const Packet4f* vecs)
+{
+ Packet4f v[4], sum[4];
+
+ // It's easier and faster to transpose then add as columns
+ // Check: http://www.freevec.org/function/matrix_4x4_transpose_floats for explanation
+ // Do the transpose, first set of moves
+ v[0] = vec_mergeh(vecs[0], vecs[2]);
+ v[1] = vec_mergel(vecs[0], vecs[2]);
+ v[2] = vec_mergeh(vecs[1], vecs[3]);
+ v[3] = vec_mergel(vecs[1], vecs[3]);
+ // Get the resulting vectors
+ sum[0] = vec_mergeh(v[0], v[2]);
+ sum[1] = vec_mergel(v[0], v[2]);
+ sum[2] = vec_mergeh(v[1], v[3]);
+ sum[3] = vec_mergel(v[1], v[3]);
+
+ // Now do the summation:
+ // Lines 0+1
+ sum[0] = sum[0] + sum[1];
+ // Lines 2+3
+ sum[1] = sum[2] + sum[3];
+ // Add the results
+ sum[0] = sum[0] + sum[1];
+
+ return sum[0];
+}
+
+template<> EIGEN_STRONG_INLINE int predux<Packet4i>(const Packet4i& a)
+{
+ Packet4i sum;
+ sum = vec_sums(a, p4i_ZERO);
+#ifdef _BIG_ENDIAN
+ sum = vec_sld(sum, p4i_ZERO, 12);
+#else
+ sum = vec_sld(p4i_ZERO, sum, 4);
+#endif
+ return pfirst(sum);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i preduxp<Packet4i>(const Packet4i* vecs)
+{
+ Packet4i v[4], sum[4];
+
+ // It's easier and faster to transpose then add as columns
+ // Check: http://www.freevec.org/function/matrix_4x4_transpose_floats for explanation
+ // Do the transpose, first set of moves
+ v[0] = vec_mergeh(vecs[0], vecs[2]);
+ v[1] = vec_mergel(vecs[0], vecs[2]);
+ v[2] = vec_mergeh(vecs[1], vecs[3]);
+ v[3] = vec_mergel(vecs[1], vecs[3]);
+ // Get the resulting vectors
+ sum[0] = vec_mergeh(v[0], v[2]);
+ sum[1] = vec_mergel(v[0], v[2]);
+ sum[2] = vec_mergeh(v[1], v[3]);
+ sum[3] = vec_mergel(v[1], v[3]);
+
+ // Now do the summation:
+ // Lines 0+1
+ sum[0] = sum[0] + sum[1];
+ // Lines 2+3
+ sum[1] = sum[2] + sum[3];
+ // Add the results
+ sum[0] = sum[0] + sum[1];
+
+ return sum[0];
+}
+
+// Other reduction functions:
+// mul
+template<> EIGEN_STRONG_INLINE float predux_mul<Packet4f>(const Packet4f& a)
+{
+ Packet4f prod;
+ prod = pmul(a, vec_sld(a, a, 8));
+ return pfirst(pmul(prod, vec_sld(prod, prod, 4)));
+}
+
+template<> EIGEN_STRONG_INLINE int predux_mul<Packet4i>(const Packet4i& a)
+{
+ EIGEN_ALIGN16 int aux[4];
+ pstore(aux, a);
+ return aux[0] * aux[1] * aux[2] * aux[3];
+}
+
+// min
+template<> EIGEN_STRONG_INLINE float predux_min<Packet4f>(const Packet4f& a)
+{
+ Packet4f b, res;
+ b = vec_min(a, vec_sld(a, a, 8));
+ res = vec_min(b, vec_sld(b, b, 4));
+ return pfirst(res);
+}
+
+template<> EIGEN_STRONG_INLINE int predux_min<Packet4i>(const Packet4i& a)
+{
+ Packet4i b, res;
+ b = vec_min(a, vec_sld(a, a, 8));
+ res = vec_min(b, vec_sld(b, b, 4));
+ return pfirst(res);
+}
+
+// max
+template<> EIGEN_STRONG_INLINE float predux_max<Packet4f>(const Packet4f& a)
+{
+ Packet4f b, res;
+ b = vec_max(a, vec_sld(a, a, 8));
+ res = vec_max(b, vec_sld(b, b, 4));
+ return pfirst(res);
+}
+
+template<> EIGEN_STRONG_INLINE int predux_max<Packet4i>(const Packet4i& a)
+{
+ Packet4i b, res;
+ b = vec_max(a, vec_sld(a, a, 8));
+ res = vec_max(b, vec_sld(b, b, 4));
+ return pfirst(res);
+}
+
+template<int Offset>
+struct palign_impl<Offset,Packet4f>
+{
+ static EIGEN_STRONG_INLINE void run(Packet4f& first, const Packet4f& second)
+ {
+#ifdef _BIG_ENDIAN
+ switch (Offset % 4) {
+ case 1:
+ first = vec_sld(first, second, 4); break;
+ case 2:
+ first = vec_sld(first, second, 8); break;
+ case 3:
+ first = vec_sld(first, second, 12); break;
+ }
+#else
+ switch (Offset % 4) {
+ case 1:
+ first = vec_sld(second, first, 12); break;
+ case 2:
+ first = vec_sld(second, first, 8); break;
+ case 3:
+ first = vec_sld(second, first, 4); break;
+ }
+#endif
+ }
+};
+
+template<int Offset>
+struct palign_impl<Offset,Packet4i>
+{
+ static EIGEN_STRONG_INLINE void run(Packet4i& first, const Packet4i& second)
+ {
+#ifdef _BIG_ENDIAN
+ switch (Offset % 4) {
+ case 1:
+ first = vec_sld(first, second, 4); break;
+ case 2:
+ first = vec_sld(first, second, 8); break;
+ case 3:
+ first = vec_sld(first, second, 12); break;
+ }
+#else
+ switch (Offset % 4) {
+ case 1:
+ first = vec_sld(second, first, 12); break;
+ case 2:
+ first = vec_sld(second, first, 8); break;
+ case 3:
+ first = vec_sld(second, first, 4); break;
+ }
+#endif
+ }
+};
+
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<Packet4f,4>& kernel) {
+ Packet4f t0, t1, t2, t3;
+ t0 = vec_mergeh(kernel.packet[0], kernel.packet[2]);
+ t1 = vec_mergel(kernel.packet[0], kernel.packet[2]);
+ t2 = vec_mergeh(kernel.packet[1], kernel.packet[3]);
+ t3 = vec_mergel(kernel.packet[1], kernel.packet[3]);
+ kernel.packet[0] = vec_mergeh(t0, t2);
+ kernel.packet[1] = vec_mergel(t0, t2);
+ kernel.packet[2] = vec_mergeh(t1, t3);
+ kernel.packet[3] = vec_mergel(t1, t3);
+}
+
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<Packet4i,4>& kernel) {
+ Packet4i t0, t1, t2, t3;
+ t0 = vec_mergeh(kernel.packet[0], kernel.packet[2]);
+ t1 = vec_mergel(kernel.packet[0], kernel.packet[2]);
+ t2 = vec_mergeh(kernel.packet[1], kernel.packet[3]);
+ t3 = vec_mergel(kernel.packet[1], kernel.packet[3]);
+ kernel.packet[0] = vec_mergeh(t0, t2);
+ kernel.packet[1] = vec_mergel(t0, t2);
+ kernel.packet[2] = vec_mergeh(t1, t3);
+ kernel.packet[3] = vec_mergel(t1, t3);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i pblend(const Selector<4>& ifPacket, const Packet4i& thenPacket, const Packet4i& elsePacket) {
+ Packet4ui select = { ifPacket.select[0], ifPacket.select[1], ifPacket.select[2], ifPacket.select[3] };
+ Packet4ui mask = reinterpret_cast<Packet4ui>(vec_cmpeq(reinterpret_cast<Packet4ui>(select), reinterpret_cast<Packet4ui>(p4i_ONE)));
+ return vec_sel(elsePacket, thenPacket, mask);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f pblend(const Selector<4>& ifPacket, const Packet4f& thenPacket, const Packet4f& elsePacket) {
+ Packet4ui select = { ifPacket.select[0], ifPacket.select[1], ifPacket.select[2], ifPacket.select[3] };
+ Packet4ui mask = reinterpret_cast<Packet4ui>(vec_cmpeq(reinterpret_cast<Packet4ui>(select), reinterpret_cast<Packet4ui>(p4i_ONE)));
+ return vec_sel(elsePacket, thenPacket, mask);
+}
+
+
+//---------- double ----------
+#ifdef __VSX__
+typedef __vector double Packet2d;
+typedef __vector unsigned long long Packet2ul;
+typedef __vector long long Packet2l;
+#if EIGEN_COMP_CLANG
+typedef Packet2ul Packet2bl;
+#else
+typedef __vector __bool long Packet2bl;
+#endif
+
+static Packet2l p2l_ONE = { 1, 1 };
+static Packet2l p2l_ZERO = reinterpret_cast<Packet2l>(p4i_ZERO);
+static Packet2d p2d_ONE = { 1.0, 1.0 };
+static Packet2d p2d_ZERO = reinterpret_cast<Packet2d>(p4f_ZERO);
+static Packet2d p2d_MZERO = { -0.0, -0.0 };
+
+#ifdef _BIG_ENDIAN
+static Packet2d p2d_COUNTDOWN = reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4f>(p2d_ZERO), reinterpret_cast<Packet4f>(p2d_ONE), 8));
+#else
+static Packet2d p2d_COUNTDOWN = reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4f>(p2d_ONE), reinterpret_cast<Packet4f>(p2d_ZERO), 8));
+#endif
+
+template<int index> Packet2d vec_splat_dbl(Packet2d& a);
+
+template<> EIGEN_STRONG_INLINE Packet2d vec_splat_dbl<0>(Packet2d& a)
+{
+ return reinterpret_cast<Packet2d>(vec_perm(a, a, p16uc_PSET64_HI));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d vec_splat_dbl<1>(Packet2d& a)
+{
+ return reinterpret_cast<Packet2d>(vec_perm(a, a, p16uc_PSET64_LO));
+}
+
+template<> struct packet_traits<double> : default_packet_traits
+{
+ typedef Packet2d type;
+ typedef Packet2d half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size=2,
+ HasHalfPacket = 1,
+
+ HasAdd = 1,
+ HasSub = 1,
+ HasMul = 1,
+ HasDiv = 1,
+ HasMin = 1,
+ HasMax = 1,
+ HasAbs = 1,
+ HasSin = 0,
+ HasCos = 0,
+ HasLog = 0,
+ HasExp = 1,
+ HasSqrt = 1,
+ HasRsqrt = 1,
+ HasRound = 1,
+ HasFloor = 1,
+ HasCeil = 1,
+ HasNegate = 1,
+ HasBlend = 1
+ };
+};
+
+template<> struct unpacket_traits<Packet2d> { typedef double type; enum {size=2, alignment=Aligned16}; typedef Packet2d half; };
+
+inline std::ostream & operator <<(std::ostream & s, const Packet2l & v)
+{
+ union {
+ Packet2l v;
+ int64_t n[2];
+ } vt;
+ vt.v = v;
+ s << vt.n[0] << ", " << vt.n[1];
+ return s;
+}
+
+inline std::ostream & operator <<(std::ostream & s, const Packet2d & v)
+{
+ union {
+ Packet2d v;
+ double n[2];
+ } vt;
+ vt.v = v;
+ s << vt.n[0] << ", " << vt.n[1];
+ return s;
+}
+
+// Need to define them first or we get specialization after instantiation errors
+template<> EIGEN_STRONG_INLINE Packet2d pload<Packet2d>(const double* from)
+{
+ EIGEN_DEBUG_ALIGNED_LOAD
+#ifdef __VSX__
+ return vec_vsx_ld(0, from);
+#else
+ return vec_ld(0, from);
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE void pstore<double>(double* to, const Packet2d& from)
+{
+ EIGEN_DEBUG_ALIGNED_STORE
+#ifdef __VSX__
+ vec_vsx_st(from, 0, to);
+#else
+ vec_st(from, 0, to);
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d pset1<Packet2d>(const double& from) {
+ Packet2d v = {from, from};
+ return v;
+}
+
+template<> EIGEN_STRONG_INLINE void
+pbroadcast4<Packet2d>(const double *a,
+ Packet2d& a0, Packet2d& a1, Packet2d& a2, Packet2d& a3)
+{
+ a1 = pload<Packet2d>(a);
+ a0 = vec_splat_dbl<0>(a1);
+ a1 = vec_splat_dbl<1>(a1);
+ a3 = pload<Packet2d>(a+2);
+ a2 = vec_splat_dbl<0>(a3);
+ a3 = vec_splat_dbl<1>(a3);
+}
+
+template<> EIGEN_DEVICE_FUNC inline Packet2d pgather<double, Packet2d>(const double* from, Index stride)
+{
+ double EIGEN_ALIGN16 af[2];
+ af[0] = from[0*stride];
+ af[1] = from[1*stride];
+ return pload<Packet2d>(af);
+}
+template<> EIGEN_DEVICE_FUNC inline void pscatter<double, Packet2d>(double* to, const Packet2d& from, Index stride)
+{
+ double EIGEN_ALIGN16 af[2];
+ pstore<double>(af, from);
+ to[0*stride] = af[0];
+ to[1*stride] = af[1];
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d plset<Packet2d>(const double& a) { return pset1<Packet2d>(a) + p2d_COUNTDOWN; }
+
+template<> EIGEN_STRONG_INLINE Packet2d padd<Packet2d>(const Packet2d& a, const Packet2d& b) { return a + b; }
+
+template<> EIGEN_STRONG_INLINE Packet2d psub<Packet2d>(const Packet2d& a, const Packet2d& b) { return a - b; }
+
+template<> EIGEN_STRONG_INLINE Packet2d pnegate(const Packet2d& a) { return p2d_ZERO - a; }
+
+template<> EIGEN_STRONG_INLINE Packet2d pconj(const Packet2d& a) { return a; }
+
+template<> EIGEN_STRONG_INLINE Packet2d pmul<Packet2d>(const Packet2d& a, const Packet2d& b) { return vec_madd(a,b,p2d_MZERO); }
+template<> EIGEN_STRONG_INLINE Packet2d pdiv<Packet2d>(const Packet2d& a, const Packet2d& b) { return vec_div(a,b); }
+
+// for some weird raisons, it has to be overloaded for packet of integers
+template<> EIGEN_STRONG_INLINE Packet2d pmadd(const Packet2d& a, const Packet2d& b, const Packet2d& c) { return vec_madd(a, b, c); }
+
+template<> EIGEN_STRONG_INLINE Packet2d pmin<Packet2d>(const Packet2d& a, const Packet2d& b) { return vec_min(a, b); }
+
+template<> EIGEN_STRONG_INLINE Packet2d pmax<Packet2d>(const Packet2d& a, const Packet2d& b) { return vec_max(a, b); }
+
+template<> EIGEN_STRONG_INLINE Packet2d pand<Packet2d>(const Packet2d& a, const Packet2d& b) { return vec_and(a, b); }
+
+template<> EIGEN_STRONG_INLINE Packet2d por<Packet2d>(const Packet2d& a, const Packet2d& b) { return vec_or(a, b); }
+
+template<> EIGEN_STRONG_INLINE Packet2d pxor<Packet2d>(const Packet2d& a, const Packet2d& b) { return vec_xor(a, b); }
+
+template<> EIGEN_STRONG_INLINE Packet2d pandnot<Packet2d>(const Packet2d& a, const Packet2d& b) { return vec_and(a, vec_nor(b, b)); }
+
+template<> EIGEN_STRONG_INLINE Packet2d pround<Packet2d>(const Packet2d& a) { return vec_round(a); }
+template<> EIGEN_STRONG_INLINE Packet2d pceil<Packet2d>(const Packet2d& a) { return vec_ceil(a); }
+template<> EIGEN_STRONG_INLINE Packet2d pfloor<Packet2d>(const Packet2d& a) { return vec_floor(a); }
+
+template<> EIGEN_STRONG_INLINE Packet2d ploadu<Packet2d>(const double* from)
+{
+ EIGEN_DEBUG_ALIGNED_LOAD
+ return (Packet2d) vec_vsx_ld((long)from & 15, (const double*) _EIGEN_ALIGNED_PTR(from));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d ploaddup<Packet2d>(const double* from)
+{
+ Packet2d p;
+ if((std::ptrdiff_t(from) % 16) == 0) p = pload<Packet2d>(from);
+ else p = ploadu<Packet2d>(from);
+ return vec_splat_dbl<0>(p);
+}
+
+template<> EIGEN_STRONG_INLINE void pstoreu<double>(double* to, const Packet2d& from)
+{
+ EIGEN_DEBUG_ALIGNED_STORE
+ vec_vsx_st((Packet4f)from, (long)to & 15, (float*) _EIGEN_ALIGNED_PTR(to));
+}
+
+template<> EIGEN_STRONG_INLINE void prefetch<double>(const double* addr) { EIGEN_PPC_PREFETCH(addr); }
+
+template<> EIGEN_STRONG_INLINE double pfirst<Packet2d>(const Packet2d& a) { double EIGEN_ALIGN16 x[2]; pstore<double>(x, a); return x[0]; }
+
+template<> EIGEN_STRONG_INLINE Packet2d preverse(const Packet2d& a)
+{
+ return reinterpret_cast<Packet2d>(vec_perm(reinterpret_cast<Packet16uc>(a), reinterpret_cast<Packet16uc>(a), p16uc_REVERSE64));
+}
+template<> EIGEN_STRONG_INLINE Packet2d pabs(const Packet2d& a) { return vec_abs(a); }
+
+template<> EIGEN_STRONG_INLINE double predux<Packet2d>(const Packet2d& a)
+{
+ Packet2d b, sum;
+ b = reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4f>(a), reinterpret_cast<Packet4f>(a), 8));
+ sum = a + b;
+ return pfirst<Packet2d>(sum);
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d preduxp<Packet2d>(const Packet2d* vecs)
+{
+ Packet2d v[2], sum;
+ v[0] = vecs[0] + reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4f>(vecs[0]), reinterpret_cast<Packet4f>(vecs[0]), 8));
+ v[1] = vecs[1] + reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4f>(vecs[1]), reinterpret_cast<Packet4f>(vecs[1]), 8));
+
+#ifdef _BIG_ENDIAN
+ sum = reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4f>(v[0]), reinterpret_cast<Packet4f>(v[1]), 8));
+#else
+ sum = reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4f>(v[1]), reinterpret_cast<Packet4f>(v[0]), 8));
+#endif
+
+ return sum;
+}
+// Other reduction functions:
+// mul
+template<> EIGEN_STRONG_INLINE double predux_mul<Packet2d>(const Packet2d& a)
+{
+ return pfirst(pmul(a, reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4ui>(a), reinterpret_cast<Packet4ui>(a), 8))));
+}
+
+// min
+template<> EIGEN_STRONG_INLINE double predux_min<Packet2d>(const Packet2d& a)
+{
+ return pfirst(pmin(a, reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4ui>(a), reinterpret_cast<Packet4ui>(a), 8))));
+}
+
+// max
+template<> EIGEN_STRONG_INLINE double predux_max<Packet2d>(const Packet2d& a)
+{
+ return pfirst(pmax(a, reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4ui>(a), reinterpret_cast<Packet4ui>(a), 8))));
+}
+
+template<int Offset>
+struct palign_impl<Offset,Packet2d>
+{
+ static EIGEN_STRONG_INLINE void run(Packet2d& first, const Packet2d& second)
+ {
+ if (Offset == 1)
+#ifdef _BIG_ENDIAN
+ first = reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4ui>(first), reinterpret_cast<Packet4ui>(second), 8));
+#else
+ first = reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4ui>(second), reinterpret_cast<Packet4ui>(first), 8));
+#endif
+ }
+};
+
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<Packet2d,2>& kernel) {
+ Packet2d t0, t1;
+ t0 = vec_perm(kernel.packet[0], kernel.packet[1], p16uc_TRANSPOSE64_HI);
+ t1 = vec_perm(kernel.packet[0], kernel.packet[1], p16uc_TRANSPOSE64_LO);
+ kernel.packet[0] = t0;
+ kernel.packet[1] = t1;
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d pblend(const Selector<2>& ifPacket, const Packet2d& thenPacket, const Packet2d& elsePacket) {
+ Packet2l select = { ifPacket.select[0], ifPacket.select[1] };
+ Packet2bl mask = vec_cmpeq(reinterpret_cast<Packet2d>(select), reinterpret_cast<Packet2d>(p2l_ONE));
+ return vec_sel(elsePacket, thenPacket, mask);
+}
+#endif // __VSX__
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PACKET_MATH_ALTIVEC_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/Complex.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/Complex.h
new file mode 100644
index 000000000..9c2536509
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/Complex.h
@@ -0,0 +1,103 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2014 Benoit Steiner <benoit.steiner.goog@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPLEX_CUDA_H
+#define EIGEN_COMPLEX_CUDA_H
+
+// clang-format off
+
+namespace Eigen {
+
+namespace internal {
+
+#if defined(__CUDACC__) && defined(EIGEN_USE_GPU)
+
+// Many std::complex methods such as operator+, operator-, operator* and
+// operator/ are not constexpr. Due to this, clang does not treat them as device
+// functions and thus Eigen functors making use of these operators fail to
+// compile. Here, we manually specialize these functors for complex types when
+// building for CUDA to avoid non-constexpr methods.
+
+// Sum
+template<typename T> struct scalar_sum_op<const std::complex<T>, const std::complex<T> > : binary_op_base<const std::complex<T>, const std::complex<T> > {
+ typedef typename std::complex<T> result_type;
+
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_sum_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE std::complex<T> operator() (const std::complex<T>& a, const std::complex<T>& b) const {
+ return std::complex<T>(numext::real(a) + numext::real(b),
+ numext::imag(a) + numext::imag(b));
+ }
+};
+
+template<typename T> struct scalar_sum_op<std::complex<T>, std::complex<T> > : scalar_sum_op<const std::complex<T>, const std::complex<T> > {};
+
+
+// Difference
+template<typename T> struct scalar_difference_op<const std::complex<T>, const std::complex<T> > : binary_op_base<const std::complex<T>, const std::complex<T> > {
+ typedef typename std::complex<T> result_type;
+
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_difference_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE std::complex<T> operator() (const std::complex<T>& a, const std::complex<T>& b) const {
+ return std::complex<T>(numext::real(a) - numext::real(b),
+ numext::imag(a) - numext::imag(b));
+ }
+};
+
+template<typename T> struct scalar_difference_op<std::complex<T>, std::complex<T> > : scalar_difference_op<const std::complex<T>, const std::complex<T> > {};
+
+
+// Product
+template<typename T> struct scalar_product_op<const std::complex<T>, const std::complex<T> > : binary_op_base<const std::complex<T>, const std::complex<T> > {
+ enum {
+ Vectorizable = packet_traits<std::complex<T>>::HasMul
+ };
+ typedef typename std::complex<T> result_type;
+
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_product_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE std::complex<T> operator() (const std::complex<T>& a, const std::complex<T>& b) const {
+ const T a_real = numext::real(a);
+ const T a_imag = numext::imag(a);
+ const T b_real = numext::real(b);
+ const T b_imag = numext::imag(b);
+ return std::complex<T>(a_real * b_real - a_imag * b_imag,
+ a_real * b_imag + a_imag * b_real);
+ }
+};
+
+template<typename T> struct scalar_product_op<std::complex<T>, std::complex<T> > : scalar_product_op<const std::complex<T>, const std::complex<T> > {};
+
+
+// Quotient
+template<typename T> struct scalar_quotient_op<const std::complex<T>, const std::complex<T> > : binary_op_base<const std::complex<T>, const std::complex<T> > {
+ enum {
+ Vectorizable = packet_traits<std::complex<T>>::HasDiv
+ };
+ typedef typename std::complex<T> result_type;
+
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_quotient_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE std::complex<T> operator() (const std::complex<T>& a, const std::complex<T>& b) const {
+ const T a_real = numext::real(a);
+ const T a_imag = numext::imag(a);
+ const T b_real = numext::real(b);
+ const T b_imag = numext::imag(b);
+ const T norm = T(1) / (b_real * b_real + b_imag * b_imag);
+ return std::complex<T>((a_real * b_real + a_imag * b_imag) * norm,
+ (a_imag * b_real - a_real * b_imag) * norm);
+ }
+};
+
+template<typename T> struct scalar_quotient_op<std::complex<T>, std::complex<T> > : scalar_quotient_op<const std::complex<T>, const std::complex<T> > {};
+
+#endif
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLEX_CUDA_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/Half.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/Half.h
new file mode 100644
index 000000000..294c517ea
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/Half.h
@@ -0,0 +1,635 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+//
+// The conversion routines are Copyright (c) Fabian Giesen, 2016.
+// The original license follows:
+//
+// Copyright (c) Fabian Giesen, 2016
+// All rights reserved.
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted.
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+// Standard 16-bit float type, mostly useful for GPUs. Defines a new
+// type Eigen::half (inheriting from CUDA's __half struct) with
+// operator overloads such that it behaves basically as an arithmetic
+// type. It will be quite slow on CPUs (so it is recommended to stay
+// in fp32 for CPUs, except for simple parameter conversions, I/O
+// to disk and the likes), but fast on GPUs.
+
+
+#ifndef EIGEN_HALF_CUDA_H
+#define EIGEN_HALF_CUDA_H
+
+#if __cplusplus > 199711L
+#define EIGEN_EXPLICIT_CAST(tgt_type) explicit operator tgt_type()
+#else
+#define EIGEN_EXPLICIT_CAST(tgt_type) operator tgt_type()
+#endif
+
+
+namespace Eigen {
+
+struct half;
+
+namespace half_impl {
+
+#if !defined(EIGEN_HAS_CUDA_FP16)
+
+// Make our own __half definition that is similar to CUDA's.
+struct __half {
+ EIGEN_DEVICE_FUNC __half() {}
+ explicit EIGEN_DEVICE_FUNC __half(unsigned short raw) : x(raw) {}
+ unsigned short x;
+};
+
+#endif
+
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC __half raw_uint16_to_half(unsigned short x);
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC __half float_to_half_rtne(float ff);
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC float half_to_float(__half h);
+
+struct half_base : public __half {
+ EIGEN_DEVICE_FUNC half_base() {}
+ EIGEN_DEVICE_FUNC half_base(const half_base& h) : __half(h) {}
+ EIGEN_DEVICE_FUNC half_base(const __half& h) : __half(h) {}
+};
+
+} // namespace half_impl
+
+// Class definition.
+struct half : public half_impl::half_base {
+ #if !defined(EIGEN_HAS_CUDA_FP16)
+ typedef half_impl::__half __half;
+ #endif
+
+ EIGEN_DEVICE_FUNC half() {}
+
+ EIGEN_DEVICE_FUNC half(const __half& h) : half_impl::half_base(h) {}
+ EIGEN_DEVICE_FUNC half(const half& h) : half_impl::half_base(h) {}
+
+ explicit EIGEN_DEVICE_FUNC half(bool b)
+ : half_impl::half_base(half_impl::raw_uint16_to_half(b ? 0x3c00 : 0)) {}
+ template<class T>
+ explicit EIGEN_DEVICE_FUNC half(const T& val)
+ : half_impl::half_base(half_impl::float_to_half_rtne(static_cast<float>(val))) {}
+ explicit EIGEN_DEVICE_FUNC half(float f)
+ : half_impl::half_base(half_impl::float_to_half_rtne(f)) {}
+
+ EIGEN_DEVICE_FUNC EIGEN_EXPLICIT_CAST(bool) const {
+ // +0.0 and -0.0 become false, everything else becomes true.
+ return (x & 0x7fff) != 0;
+ }
+ EIGEN_DEVICE_FUNC EIGEN_EXPLICIT_CAST(signed char) const {
+ return static_cast<signed char>(half_impl::half_to_float(*this));
+ }
+ EIGEN_DEVICE_FUNC EIGEN_EXPLICIT_CAST(unsigned char) const {
+ return static_cast<unsigned char>(half_impl::half_to_float(*this));
+ }
+ EIGEN_DEVICE_FUNC EIGEN_EXPLICIT_CAST(short) const {
+ return static_cast<short>(half_impl::half_to_float(*this));
+ }
+ EIGEN_DEVICE_FUNC EIGEN_EXPLICIT_CAST(unsigned short) const {
+ return static_cast<unsigned short>(half_impl::half_to_float(*this));
+ }
+ EIGEN_DEVICE_FUNC EIGEN_EXPLICIT_CAST(int) const {
+ return static_cast<int>(half_impl::half_to_float(*this));
+ }
+ EIGEN_DEVICE_FUNC EIGEN_EXPLICIT_CAST(unsigned int) const {
+ return static_cast<unsigned int>(half_impl::half_to_float(*this));
+ }
+ EIGEN_DEVICE_FUNC EIGEN_EXPLICIT_CAST(long) const {
+ return static_cast<long>(half_impl::half_to_float(*this));
+ }
+ EIGEN_DEVICE_FUNC EIGEN_EXPLICIT_CAST(unsigned long) const {
+ return static_cast<unsigned long>(half_impl::half_to_float(*this));
+ }
+ EIGEN_DEVICE_FUNC EIGEN_EXPLICIT_CAST(long long) const {
+ return static_cast<long long>(half_impl::half_to_float(*this));
+ }
+ EIGEN_DEVICE_FUNC EIGEN_EXPLICIT_CAST(unsigned long long) const {
+ return static_cast<unsigned long long>(half_to_float(*this));
+ }
+ EIGEN_DEVICE_FUNC EIGEN_EXPLICIT_CAST(float) const {
+ return half_impl::half_to_float(*this);
+ }
+ EIGEN_DEVICE_FUNC EIGEN_EXPLICIT_CAST(double) const {
+ return static_cast<double>(half_impl::half_to_float(*this));
+ }
+
+ EIGEN_DEVICE_FUNC half& operator=(const half& other) {
+ x = other.x;
+ return *this;
+ }
+};
+
+namespace half_impl {
+
+#if defined(EIGEN_HAS_CUDA_FP16) && defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 530
+
+// Intrinsics for native fp16 support. Note that on current hardware,
+// these are no faster than fp32 arithmetic (you need to use the half2
+// versions to get the ALU speed increased), but you do save the
+// conversion steps back and forth.
+
+__device__ half operator + (const half& a, const half& b) {
+ return __hadd(a, b);
+}
+__device__ half operator * (const half& a, const half& b) {
+ return __hmul(a, b);
+}
+__device__ half operator - (const half& a, const half& b) {
+ return __hsub(a, b);
+}
+__device__ half operator / (const half& a, const half& b) {
+ float num = __half2float(a);
+ float denom = __half2float(b);
+ return __float2half(num / denom);
+}
+__device__ half operator - (const half& a) {
+ return __hneg(a);
+}
+__device__ half& operator += (half& a, const half& b) {
+ a = a + b;
+ return a;
+}
+__device__ half& operator *= (half& a, const half& b) {
+ a = a * b;
+ return a;
+}
+__device__ half& operator -= (half& a, const half& b) {
+ a = a - b;
+ return a;
+}
+__device__ half& operator /= (half& a, const half& b) {
+ a = a / b;
+ return a;
+}
+__device__ bool operator == (const half& a, const half& b) {
+ return __heq(a, b);
+}
+__device__ bool operator != (const half& a, const half& b) {
+ return __hne(a, b);
+}
+__device__ bool operator < (const half& a, const half& b) {
+ return __hlt(a, b);
+}
+__device__ bool operator <= (const half& a, const half& b) {
+ return __hle(a, b);
+}
+__device__ bool operator > (const half& a, const half& b) {
+ return __hgt(a, b);
+}
+__device__ bool operator >= (const half& a, const half& b) {
+ return __hge(a, b);
+}
+
+#else // Emulate support for half floats
+
+// Definitions for CPUs and older CUDA, mostly working through conversion
+// to/from fp32.
+
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator + (const half& a, const half& b) {
+ return half(float(a) + float(b));
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator * (const half& a, const half& b) {
+ return half(float(a) * float(b));
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator - (const half& a, const half& b) {
+ return half(float(a) - float(b));
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator / (const half& a, const half& b) {
+ return half(float(a) / float(b));
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator - (const half& a) {
+ half result;
+ result.x = a.x ^ 0x8000;
+ return result;
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half& operator += (half& a, const half& b) {
+ a = half(float(a) + float(b));
+ return a;
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half& operator *= (half& a, const half& b) {
+ a = half(float(a) * float(b));
+ return a;
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half& operator -= (half& a, const half& b) {
+ a = half(float(a) - float(b));
+ return a;
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half& operator /= (half& a, const half& b) {
+ a = half(float(a) / float(b));
+ return a;
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator == (const half& a, const half& b) {
+ return float(a) == float(b);
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator != (const half& a, const half& b) {
+ return float(a) != float(b);
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator < (const half& a, const half& b) {
+ return float(a) < float(b);
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator <= (const half& a, const half& b) {
+ return float(a) <= float(b);
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator > (const half& a, const half& b) {
+ return float(a) > float(b);
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool operator >= (const half& a, const half& b) {
+ return float(a) >= float(b);
+}
+
+#endif // Emulate support for half floats
+
+// Division by an index. Do it in full float precision to avoid accuracy
+// issues in converting the denominator to half.
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half operator / (const half& a, Index b) {
+ return half(static_cast<float>(a) / static_cast<float>(b));
+}
+
+// Conversion routines, including fallbacks for the host or older CUDA.
+// Note that newer Intel CPUs (Haswell or newer) have vectorized versions of
+// these in hardware. If we need more performance on older/other CPUs, they are
+// also possible to vectorize directly.
+
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC __half raw_uint16_to_half(unsigned short x) {
+ __half h;
+ h.x = x;
+ return h;
+}
+
+union FP32 {
+ unsigned int u;
+ float f;
+};
+
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC __half float_to_half_rtne(float ff) {
+#if defined(EIGEN_HAS_CUDA_FP16) && defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 300
+ return __float2half(ff);
+
+#elif defined(EIGEN_HAS_FP16_C)
+ __half h;
+ h.x = _cvtss_sh(ff, 0);
+ return h;
+
+#else
+ FP32 f; f.f = ff;
+
+ const FP32 f32infty = { 255 << 23 };
+ const FP32 f16max = { (127 + 16) << 23 };
+ const FP32 denorm_magic = { ((127 - 15) + (23 - 10) + 1) << 23 };
+ unsigned int sign_mask = 0x80000000u;
+ __half o;
+ o.x = static_cast<unsigned short>(0x0u);
+
+ unsigned int sign = f.u & sign_mask;
+ f.u ^= sign;
+
+ // NOTE all the integer compares in this function can be safely
+ // compiled into signed compares since all operands are below
+ // 0x80000000. Important if you want fast straight SSE2 code
+ // (since there's no unsigned PCMPGTD).
+
+ if (f.u >= f16max.u) { // result is Inf or NaN (all exponent bits set)
+ o.x = (f.u > f32infty.u) ? 0x7e00 : 0x7c00; // NaN->qNaN and Inf->Inf
+ } else { // (De)normalized number or zero
+ if (f.u < (113 << 23)) { // resulting FP16 is subnormal or zero
+ // use a magic value to align our 10 mantissa bits at the bottom of
+ // the float. as long as FP addition is round-to-nearest-even this
+ // just works.
+ f.f += denorm_magic.f;
+
+ // and one integer subtract of the bias later, we have our final float!
+ o.x = static_cast<unsigned short>(f.u - denorm_magic.u);
+ } else {
+ unsigned int mant_odd = (f.u >> 13) & 1; // resulting mantissa is odd
+
+ // update exponent, rounding bias part 1
+ f.u += ((unsigned int)(15 - 127) << 23) + 0xfff;
+ // rounding bias part 2
+ f.u += mant_odd;
+ // take the bits!
+ o.x = static_cast<unsigned short>(f.u >> 13);
+ }
+ }
+
+ o.x |= static_cast<unsigned short>(sign >> 16);
+ return o;
+#endif
+}
+
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC float half_to_float(__half h) {
+#if defined(EIGEN_HAS_CUDA_FP16) && defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 300
+ return __half2float(h);
+
+#elif defined(EIGEN_HAS_FP16_C)
+ return _cvtsh_ss(h.x);
+
+#else
+ const FP32 magic = { 113 << 23 };
+ const unsigned int shifted_exp = 0x7c00 << 13; // exponent mask after shift
+ FP32 o;
+
+ o.u = (h.x & 0x7fff) << 13; // exponent/mantissa bits
+ unsigned int exp = shifted_exp & o.u; // just the exponent
+ o.u += (127 - 15) << 23; // exponent adjust
+
+ // handle exponent special cases
+ if (exp == shifted_exp) { // Inf/NaN?
+ o.u += (128 - 16) << 23; // extra exp adjust
+ } else if (exp == 0) { // Zero/Denormal?
+ o.u += 1 << 23; // extra exp adjust
+ o.f -= magic.f; // renormalize
+ }
+
+ o.u |= (h.x & 0x8000) << 16; // sign bit
+ return o.f;
+#endif
+}
+
+// --- standard functions ---
+
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool (isinf)(const half& a) {
+ return (a.x & 0x7fff) == 0x7c00;
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool (isnan)(const half& a) {
+#if defined(EIGEN_HAS_CUDA_FP16) && defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 530
+ return __hisnan(a);
+#else
+ return (a.x & 0x7fff) > 0x7c00;
+#endif
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bool (isfinite)(const half& a) {
+ return !(isinf EIGEN_NOT_A_MACRO (a)) && !(isnan EIGEN_NOT_A_MACRO (a));
+}
+
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half abs(const half& a) {
+ half result;
+ result.x = a.x & 0x7FFF;
+ return result;
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half exp(const half& a) {
+ return half(::expf(float(a)));
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half log(const half& a) {
+#if defined(EIGEN_HAS_CUDA_FP16) && defined __CUDACC_VER__ && __CUDACC_VER__ >= 80000 && defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 530
+ return Eigen::half(::hlog(a));
+#else
+ return half(::logf(float(a)));
+#endif
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half log1p(const half& a) {
+ return half(numext::log1p(float(a)));
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half log10(const half& a) {
+ return half(::log10f(float(a)));
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half sqrt(const half& a) {
+ return half(::sqrtf(float(a)));
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half pow(const half& a, const half& b) {
+ return half(::powf(float(a), float(b)));
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half sin(const half& a) {
+ return half(::sinf(float(a)));
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half cos(const half& a) {
+ return half(::cosf(float(a)));
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half tan(const half& a) {
+ return half(::tanf(float(a)));
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half tanh(const half& a) {
+ return half(::tanhf(float(a)));
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half floor(const half& a) {
+ return half(::floorf(float(a)));
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half ceil(const half& a) {
+ return half(::ceilf(float(a)));
+}
+
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half (min)(const half& a, const half& b) {
+#if defined(EIGEN_HAS_CUDA_FP16) && defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 530
+ return __hlt(b, a) ? b : a;
+#else
+ const float f1 = static_cast<float>(a);
+ const float f2 = static_cast<float>(b);
+ return f2 < f1 ? b : a;
+#endif
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half (max)(const half& a, const half& b) {
+#if defined(EIGEN_HAS_CUDA_FP16) && defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 530
+ return __hlt(a, b) ? b : a;
+#else
+ const float f1 = static_cast<float>(a);
+ const float f2 = static_cast<float>(b);
+ return f1 < f2 ? b : a;
+#endif
+}
+
+EIGEN_ALWAYS_INLINE std::ostream& operator << (std::ostream& os, const half& v) {
+ os << static_cast<float>(v);
+ return os;
+}
+
+} // end namespace half_impl
+
+// import Eigen::half_impl::half into Eigen namespace
+// using half_impl::half;
+
+namespace internal {
+
+template<>
+struct random_default_impl<half, false, false>
+{
+ static inline half run(const half& x, const half& y)
+ {
+ return x + (y-x) * half(float(std::rand()) / float(RAND_MAX));
+ }
+ static inline half run()
+ {
+ return run(half(-1.f), half(1.f));
+ }
+};
+
+template<> struct is_arithmetic<half> { enum { value = true }; };
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+namespace std {
+template<>
+struct numeric_limits<Eigen::half> {
+ static const bool is_specialized = true;
+ static const bool is_signed = true;
+ static const bool is_integer = false;
+ static const bool is_exact = false;
+ static const bool has_infinity = true;
+ static const bool has_quiet_NaN = true;
+ static const bool has_signaling_NaN = true;
+ static const float_denorm_style has_denorm = denorm_present;
+ static const bool has_denorm_loss = false;
+ static const std::float_round_style round_style = std::round_to_nearest;
+ static const bool is_iec559 = false;
+ static const bool is_bounded = false;
+ static const bool is_modulo = false;
+ static const int digits = 11;
+ static const int digits10 = 2;
+ //static const int max_digits10 = ;
+ static const int radix = 2;
+ static const int min_exponent = -13;
+ static const int min_exponent10 = -4;
+ static const int max_exponent = 16;
+ static const int max_exponent10 = 4;
+ static const bool traps = true;
+ static const bool tinyness_before = false;
+
+ static Eigen::half (min)() { return Eigen::half_impl::raw_uint16_to_half(0x400); }
+ static Eigen::half lowest() { return Eigen::half_impl::raw_uint16_to_half(0xfbff); }
+ static Eigen::half (max)() { return Eigen::half_impl::raw_uint16_to_half(0x7bff); }
+ static Eigen::half epsilon() { return Eigen::half_impl::raw_uint16_to_half(0x0800); }
+ static Eigen::half round_error() { return Eigen::half(0.5); }
+ static Eigen::half infinity() { return Eigen::half_impl::raw_uint16_to_half(0x7c00); }
+ static Eigen::half quiet_NaN() { return Eigen::half_impl::raw_uint16_to_half(0x7e00); }
+ static Eigen::half signaling_NaN() { return Eigen::half_impl::raw_uint16_to_half(0x7e00); }
+ static Eigen::half denorm_min() { return Eigen::half_impl::raw_uint16_to_half(0x1); }
+};
+}
+
+namespace Eigen {
+
+template<> struct NumTraits<Eigen::half>
+ : GenericNumTraits<Eigen::half>
+{
+ enum {
+ IsSigned = true,
+ IsInteger = false,
+ IsComplex = false,
+ RequireInitialization = false
+ };
+
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE Eigen::half epsilon() {
+ return half_impl::raw_uint16_to_half(0x0800);
+ }
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE Eigen::half dummy_precision() { return Eigen::half(1e-2f); }
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE Eigen::half highest() {
+ return half_impl::raw_uint16_to_half(0x7bff);
+ }
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE Eigen::half lowest() {
+ return half_impl::raw_uint16_to_half(0xfbff);
+ }
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE Eigen::half infinity() {
+ return half_impl::raw_uint16_to_half(0x7c00);
+ }
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE Eigen::half quiet_NaN() {
+ return half_impl::raw_uint16_to_half(0x7c01);
+ }
+};
+
+} // end namespace Eigen
+
+// C-like standard mathematical functions and trancendentals.
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half fabsh(const Eigen::half& a) {
+ Eigen::half result;
+ result.x = a.x & 0x7FFF;
+ return result;
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half exph(const Eigen::half& a) {
+ return Eigen::half(::expf(float(a)));
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half logh(const Eigen::half& a) {
+#if defined __CUDACC_VER__ && __CUDACC_VER__ >= 80000 && defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 530
+ return Eigen::half(::hlog(a));
+#else
+ return Eigen::half(::logf(float(a)));
+#endif
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half sqrth(const Eigen::half& a) {
+ return Eigen::half(::sqrtf(float(a)));
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half powh(const Eigen::half& a, const Eigen::half& b) {
+ return Eigen::half(::powf(float(a), float(b)));
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half floorh(const Eigen::half& a) {
+ return Eigen::half(::floorf(float(a)));
+}
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half ceilh(const Eigen::half& a) {
+ return Eigen::half(::ceilf(float(a)));
+}
+
+namespace std {
+
+#if __cplusplus > 199711L
+template <>
+struct hash<Eigen::half> {
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE std::size_t operator()(const Eigen::half& a) const {
+ return static_cast<std::size_t>(a.x);
+ }
+};
+#endif
+
+} // end namespace std
+
+
+// Add the missing shfl_xor intrinsic
+#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 300
+__device__ EIGEN_STRONG_INLINE Eigen::half __shfl_xor(Eigen::half var, int laneMask, int width=warpSize) {
+ return static_cast<Eigen::half>(__shfl_xor(static_cast<float>(var), laneMask, width));
+}
+#endif
+
+// ldg() has an overload for __half, but we also need one for Eigen::half.
+#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 350
+EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half __ldg(const Eigen::half* ptr) {
+ return Eigen::half_impl::raw_uint16_to_half(
+ __ldg(reinterpret_cast<const unsigned short*>(ptr)));
+}
+#endif
+
+
+#if defined(__CUDA_ARCH__)
+namespace Eigen {
+namespace numext {
+
+template<>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+bool (isnan)(const Eigen::half& h) {
+ return (half_impl::isnan)(h);
+}
+
+template<>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+bool (isinf)(const Eigen::half& h) {
+ return (half_impl::isinf)(h);
+}
+
+template<>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+bool (isfinite)(const Eigen::half& h) {
+ return (half_impl::isfinite)(h);
+}
+
+} // namespace Eigen
+} // namespace numext
+#endif
+
+#endif // EIGEN_HALF_CUDA_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h
new file mode 100644
index 000000000..0348b41db
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h
@@ -0,0 +1,91 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2014 Benoit Steiner <benoit.steiner.goog@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATH_FUNCTIONS_CUDA_H
+#define EIGEN_MATH_FUNCTIONS_CUDA_H
+
+namespace Eigen {
+
+namespace internal {
+
+// Make sure this is only available when targeting a GPU: we don't want to
+// introduce conflicts between these packet_traits definitions and the ones
+// we'll use on the host side (SSE, AVX, ...)
+#if defined(__CUDACC__) && defined(EIGEN_USE_GPU)
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+float4 plog<float4>(const float4& a)
+{
+ return make_float4(logf(a.x), logf(a.y), logf(a.z), logf(a.w));
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+double2 plog<double2>(const double2& a)
+{
+ using ::log;
+ return make_double2(log(a.x), log(a.y));
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+float4 plog1p<float4>(const float4& a)
+{
+ return make_float4(log1pf(a.x), log1pf(a.y), log1pf(a.z), log1pf(a.w));
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+double2 plog1p<double2>(const double2& a)
+{
+ return make_double2(log1p(a.x), log1p(a.y));
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+float4 pexp<float4>(const float4& a)
+{
+ return make_float4(expf(a.x), expf(a.y), expf(a.z), expf(a.w));
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+double2 pexp<double2>(const double2& a)
+{
+ using ::exp;
+ return make_double2(exp(a.x), exp(a.y));
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+float4 psqrt<float4>(const float4& a)
+{
+ return make_float4(sqrtf(a.x), sqrtf(a.y), sqrtf(a.z), sqrtf(a.w));
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+double2 psqrt<double2>(const double2& a)
+{
+ using ::sqrt;
+ return make_double2(sqrt(a.x), sqrt(a.y));
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+float4 prsqrt<float4>(const float4& a)
+{
+ return make_float4(rsqrtf(a.x), rsqrtf(a.y), rsqrtf(a.z), rsqrtf(a.w));
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+double2 prsqrt<double2>(const double2& a)
+{
+ return make_double2(rsqrt(a.x), rsqrt(a.y));
+}
+
+
+#endif
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATH_FUNCTIONS_CUDA_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h
new file mode 100644
index 000000000..4dda63188
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h
@@ -0,0 +1,333 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2014 Benoit Steiner <benoit.steiner.goog@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PACKET_MATH_CUDA_H
+#define EIGEN_PACKET_MATH_CUDA_H
+
+namespace Eigen {
+
+namespace internal {
+
+// Make sure this is only available when targeting a GPU: we don't want to
+// introduce conflicts between these packet_traits definitions and the ones
+// we'll use on the host side (SSE, AVX, ...)
+#if defined(__CUDACC__) && defined(EIGEN_USE_GPU)
+template<> struct is_arithmetic<float4> { enum { value = true }; };
+template<> struct is_arithmetic<double2> { enum { value = true }; };
+
+template<> struct packet_traits<float> : default_packet_traits
+{
+ typedef float4 type;
+ typedef float4 half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size=4,
+ HasHalfPacket = 0,
+
+ HasDiv = 1,
+ HasSin = 0,
+ HasCos = 0,
+ HasLog = 1,
+ HasExp = 1,
+ HasSqrt = 1,
+ HasRsqrt = 1,
+ HasLGamma = 1,
+ HasDiGamma = 1,
+ HasZeta = 1,
+ HasPolygamma = 1,
+ HasErf = 1,
+ HasErfc = 1,
+ HasIGamma = 1,
+ HasIGammac = 1,
+ HasBetaInc = 1,
+
+ HasBlend = 0,
+ };
+};
+
+template<> struct packet_traits<double> : default_packet_traits
+{
+ typedef double2 type;
+ typedef double2 half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size=2,
+ HasHalfPacket = 0,
+
+ HasDiv = 1,
+ HasLog = 1,
+ HasExp = 1,
+ HasSqrt = 1,
+ HasRsqrt = 1,
+ HasLGamma = 1,
+ HasDiGamma = 1,
+ HasZeta = 1,
+ HasPolygamma = 1,
+ HasErf = 1,
+ HasErfc = 1,
+ HasIGamma = 1,
+ HasIGammac = 1,
+ HasBetaInc = 1,
+
+ HasBlend = 0,
+ };
+};
+
+
+template<> struct unpacket_traits<float4> { typedef float type; enum {size=4, alignment=Aligned16}; typedef float4 half; };
+template<> struct unpacket_traits<double2> { typedef double type; enum {size=2, alignment=Aligned16}; typedef double2 half; };
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE float4 pset1<float4>(const float& from) {
+ return make_float4(from, from, from, from);
+}
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE double2 pset1<double2>(const double& from) {
+ return make_double2(from, from);
+}
+
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE float4 plset<float4>(const float& a) {
+ return make_float4(a, a+1, a+2, a+3);
+}
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE double2 plset<double2>(const double& a) {
+ return make_double2(a, a+1);
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE float4 padd<float4>(const float4& a, const float4& b) {
+ return make_float4(a.x+b.x, a.y+b.y, a.z+b.z, a.w+b.w);
+}
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE double2 padd<double2>(const double2& a, const double2& b) {
+ return make_double2(a.x+b.x, a.y+b.y);
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE float4 psub<float4>(const float4& a, const float4& b) {
+ return make_float4(a.x-b.x, a.y-b.y, a.z-b.z, a.w-b.w);
+}
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE double2 psub<double2>(const double2& a, const double2& b) {
+ return make_double2(a.x-b.x, a.y-b.y);
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE float4 pnegate(const float4& a) {
+ return make_float4(-a.x, -a.y, -a.z, -a.w);
+}
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE double2 pnegate(const double2& a) {
+ return make_double2(-a.x, -a.y);
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE float4 pconj(const float4& a) { return a; }
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE double2 pconj(const double2& a) { return a; }
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE float4 pmul<float4>(const float4& a, const float4& b) {
+ return make_float4(a.x*b.x, a.y*b.y, a.z*b.z, a.w*b.w);
+}
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE double2 pmul<double2>(const double2& a, const double2& b) {
+ return make_double2(a.x*b.x, a.y*b.y);
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE float4 pdiv<float4>(const float4& a, const float4& b) {
+ return make_float4(a.x/b.x, a.y/b.y, a.z/b.z, a.w/b.w);
+}
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE double2 pdiv<double2>(const double2& a, const double2& b) {
+ return make_double2(a.x/b.x, a.y/b.y);
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE float4 pmin<float4>(const float4& a, const float4& b) {
+ return make_float4(fminf(a.x, b.x), fminf(a.y, b.y), fminf(a.z, b.z), fminf(a.w, b.w));
+}
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE double2 pmin<double2>(const double2& a, const double2& b) {
+ return make_double2(fmin(a.x, b.x), fmin(a.y, b.y));
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE float4 pmax<float4>(const float4& a, const float4& b) {
+ return make_float4(fmaxf(a.x, b.x), fmaxf(a.y, b.y), fmaxf(a.z, b.z), fmaxf(a.w, b.w));
+}
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE double2 pmax<double2>(const double2& a, const double2& b) {
+ return make_double2(fmax(a.x, b.x), fmax(a.y, b.y));
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE float4 pload<float4>(const float* from) {
+ return *reinterpret_cast<const float4*>(from);
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE double2 pload<double2>(const double* from) {
+ return *reinterpret_cast<const double2*>(from);
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE float4 ploadu<float4>(const float* from) {
+ return make_float4(from[0], from[1], from[2], from[3]);
+}
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE double2 ploadu<double2>(const double* from) {
+ return make_double2(from[0], from[1]);
+}
+
+template<> EIGEN_STRONG_INLINE float4 ploaddup<float4>(const float* from) {
+ return make_float4(from[0], from[0], from[1], from[1]);
+}
+template<> EIGEN_STRONG_INLINE double2 ploaddup<double2>(const double* from) {
+ return make_double2(from[0], from[0]);
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void pstore<float>(float* to, const float4& from) {
+ *reinterpret_cast<float4*>(to) = from;
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void pstore<double>(double* to, const double2& from) {
+ *reinterpret_cast<double2*>(to) = from;
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void pstoreu<float>(float* to, const float4& from) {
+ to[0] = from.x;
+ to[1] = from.y;
+ to[2] = from.z;
+ to[3] = from.w;
+}
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void pstoreu<double>(double* to, const double2& from) {
+ to[0] = from.x;
+ to[1] = from.y;
+}
+
+template<>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE float4 ploadt_ro<float4, Aligned>(const float* from) {
+#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 350
+ return __ldg((const float4*)from);
+#else
+ return make_float4(from[0], from[1], from[2], from[3]);
+#endif
+}
+template<>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE double2 ploadt_ro<double2, Aligned>(const double* from) {
+#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 350
+ return __ldg((const double2*)from);
+#else
+ return make_double2(from[0], from[1]);
+#endif
+}
+
+template<>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE float4 ploadt_ro<float4, Unaligned>(const float* from) {
+#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 350
+ return make_float4(__ldg(from+0), __ldg(from+1), __ldg(from+2), __ldg(from+3));
+#else
+ return make_float4(from[0], from[1], from[2], from[3]);
+#endif
+}
+template<>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE double2 ploadt_ro<double2, Unaligned>(const double* from) {
+#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 350
+ return make_double2(__ldg(from+0), __ldg(from+1));
+#else
+ return make_double2(from[0], from[1]);
+#endif
+}
+
+template<> EIGEN_DEVICE_FUNC inline float4 pgather<float, float4>(const float* from, Index stride) {
+ return make_float4(from[0*stride], from[1*stride], from[2*stride], from[3*stride]);
+}
+
+template<> EIGEN_DEVICE_FUNC inline double2 pgather<double, double2>(const double* from, Index stride) {
+ return make_double2(from[0*stride], from[1*stride]);
+}
+
+template<> EIGEN_DEVICE_FUNC inline void pscatter<float, float4>(float* to, const float4& from, Index stride) {
+ to[stride*0] = from.x;
+ to[stride*1] = from.y;
+ to[stride*2] = from.z;
+ to[stride*3] = from.w;
+}
+template<> EIGEN_DEVICE_FUNC inline void pscatter<double, double2>(double* to, const double2& from, Index stride) {
+ to[stride*0] = from.x;
+ to[stride*1] = from.y;
+}
+
+template<> EIGEN_DEVICE_FUNC inline float pfirst<float4>(const float4& a) {
+ return a.x;
+}
+template<> EIGEN_DEVICE_FUNC inline double pfirst<double2>(const double2& a) {
+ return a.x;
+}
+
+template<> EIGEN_DEVICE_FUNC inline float predux<float4>(const float4& a) {
+ return a.x + a.y + a.z + a.w;
+}
+template<> EIGEN_DEVICE_FUNC inline double predux<double2>(const double2& a) {
+ return a.x + a.y;
+}
+
+template<> EIGEN_DEVICE_FUNC inline float predux_max<float4>(const float4& a) {
+ return fmaxf(fmaxf(a.x, a.y), fmaxf(a.z, a.w));
+}
+template<> EIGEN_DEVICE_FUNC inline double predux_max<double2>(const double2& a) {
+ return fmax(a.x, a.y);
+}
+
+template<> EIGEN_DEVICE_FUNC inline float predux_min<float4>(const float4& a) {
+ return fminf(fminf(a.x, a.y), fminf(a.z, a.w));
+}
+template<> EIGEN_DEVICE_FUNC inline double predux_min<double2>(const double2& a) {
+ return fmin(a.x, a.y);
+}
+
+template<> EIGEN_DEVICE_FUNC inline float predux_mul<float4>(const float4& a) {
+ return a.x * a.y * a.z * a.w;
+}
+template<> EIGEN_DEVICE_FUNC inline double predux_mul<double2>(const double2& a) {
+ return a.x * a.y;
+}
+
+template<> EIGEN_DEVICE_FUNC inline float4 pabs<float4>(const float4& a) {
+ return make_float4(fabsf(a.x), fabsf(a.y), fabsf(a.z), fabsf(a.w));
+}
+template<> EIGEN_DEVICE_FUNC inline double2 pabs<double2>(const double2& a) {
+ return make_double2(fabs(a.x), fabs(a.y));
+}
+
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<float4,4>& kernel) {
+ float tmp = kernel.packet[0].y;
+ kernel.packet[0].y = kernel.packet[1].x;
+ kernel.packet[1].x = tmp;
+
+ tmp = kernel.packet[0].z;
+ kernel.packet[0].z = kernel.packet[2].x;
+ kernel.packet[2].x = tmp;
+
+ tmp = kernel.packet[0].w;
+ kernel.packet[0].w = kernel.packet[3].x;
+ kernel.packet[3].x = tmp;
+
+ tmp = kernel.packet[1].z;
+ kernel.packet[1].z = kernel.packet[2].y;
+ kernel.packet[2].y = tmp;
+
+ tmp = kernel.packet[1].w;
+ kernel.packet[1].w = kernel.packet[3].y;
+ kernel.packet[3].y = tmp;
+
+ tmp = kernel.packet[2].w;
+ kernel.packet[2].w = kernel.packet[3].z;
+ kernel.packet[3].z = tmp;
+}
+
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<double2,2>& kernel) {
+ double tmp = kernel.packet[0].y;
+ kernel.packet[0].y = kernel.packet[1].x;
+ kernel.packet[1].x = tmp;
+}
+
+#endif
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+
+#endif // EIGEN_PACKET_MATH_CUDA_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
new file mode 100644
index 000000000..ae54225f8
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
@@ -0,0 +1,1123 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2016 Benoit Steiner <benoit.steiner.goog@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PACKET_MATH_HALF_CUDA_H
+#define EIGEN_PACKET_MATH_HALF_CUDA_H
+
+
+namespace Eigen {
+namespace internal {
+
+// Most of the following operations require arch >= 3.0
+#if defined(EIGEN_HAS_CUDA_FP16) && defined(__CUDACC__) && defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 300
+
+template<> struct is_arithmetic<half2> { enum { value = true }; };
+
+template<> struct packet_traits<Eigen::half> : default_packet_traits
+{
+ typedef half2 type;
+ typedef half2 half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size=2,
+ HasHalfPacket = 0,
+ HasAdd = 1,
+ HasMul = 1,
+ HasDiv = 1,
+ HasSqrt = 1,
+ HasRsqrt = 1,
+ HasExp = 1,
+ HasLog = 1,
+ HasLog1p = 1
+ };
+};
+
+template<> struct unpacket_traits<half2> { typedef Eigen::half type; enum {size=2, alignment=Aligned16}; typedef half2 half; };
+
+template<> __device__ EIGEN_STRONG_INLINE half2 pset1<half2>(const Eigen::half& from) {
+ return __half2half2(from);
+}
+
+template<> __device__ EIGEN_STRONG_INLINE half2 pload<half2>(const Eigen::half* from) {
+ return *reinterpret_cast<const half2*>(from);
+}
+
+template<> __device__ EIGEN_STRONG_INLINE half2 ploadu<half2>(const Eigen::half* from) {
+ return __halves2half2(from[0], from[1]);
+}
+
+template<> EIGEN_STRONG_INLINE half2 ploaddup<half2>(const Eigen::half* from) {
+ return __halves2half2(from[0], from[0]);
+}
+
+template<> __device__ EIGEN_STRONG_INLINE void pstore<Eigen::half>(Eigen::half* to, const half2& from) {
+ *reinterpret_cast<half2*>(to) = from;
+}
+
+template<> __device__ EIGEN_STRONG_INLINE void pstoreu<Eigen::half>(Eigen::half* to, const half2& from) {
+ to[0] = __low2half(from);
+ to[1] = __high2half(from);
+}
+
+template<>
+ __device__ EIGEN_ALWAYS_INLINE half2 ploadt_ro<half2, Aligned>(const Eigen::half* from) {
+#if __CUDA_ARCH__ >= 350
+ return __ldg((const half2*)from);
+#else
+ return __halves2half2(*(from+0), *(from+1));
+#endif
+}
+
+template<>
+__device__ EIGEN_ALWAYS_INLINE half2 ploadt_ro<half2, Unaligned>(const Eigen::half* from) {
+#if __CUDA_ARCH__ >= 350
+ return __halves2half2(__ldg(from+0), __ldg(from+1));
+#else
+ return __halves2half2(*(from+0), *(from+1));
+#endif
+}
+
+template<> __device__ EIGEN_STRONG_INLINE half2 pgather<Eigen::half, half2>(const Eigen::half* from, Index stride) {
+ return __halves2half2(from[0*stride], from[1*stride]);
+}
+
+template<> __device__ EIGEN_STRONG_INLINE void pscatter<Eigen::half, half2>(Eigen::half* to, const half2& from, Index stride) {
+ to[stride*0] = __low2half(from);
+ to[stride*1] = __high2half(from);
+}
+
+template<> __device__ EIGEN_STRONG_INLINE Eigen::half pfirst<half2>(const half2& a) {
+ return __low2half(a);
+}
+
+template<> __device__ EIGEN_STRONG_INLINE half2 pabs<half2>(const half2& a) {
+ half2 result;
+ result.x = a.x & 0x7FFF7FFF;
+ return result;
+}
+
+
+__device__ EIGEN_STRONG_INLINE void
+ptranspose(PacketBlock<half2,2>& kernel) {
+ __half a1 = __low2half(kernel.packet[0]);
+ __half a2 = __high2half(kernel.packet[0]);
+ __half b1 = __low2half(kernel.packet[1]);
+ __half b2 = __high2half(kernel.packet[1]);
+ kernel.packet[0] = __halves2half2(a1, b1);
+ kernel.packet[1] = __halves2half2(a2, b2);
+}
+
+template<> __device__ EIGEN_STRONG_INLINE half2 plset<half2>(const Eigen::half& a) {
+#if __CUDA_ARCH__ >= 530
+ return __halves2half2(a, __hadd(a, __float2half(1.0f)));
+#else
+ float f = __half2float(a) + 1.0f;
+ return __halves2half2(a, __float2half(f));
+#endif
+}
+
+template<> __device__ EIGEN_STRONG_INLINE half2 padd<half2>(const half2& a, const half2& b) {
+#if __CUDA_ARCH__ >= 530
+ return __hadd2(a, b);
+#else
+ float a1 = __low2float(a);
+ float a2 = __high2float(a);
+ float b1 = __low2float(b);
+ float b2 = __high2float(b);
+ float r1 = a1 + b1;
+ float r2 = a2 + b2;
+ return __floats2half2_rn(r1, r2);
+#endif
+}
+
+template<> __device__ EIGEN_STRONG_INLINE half2 psub<half2>(const half2& a, const half2& b) {
+#if __CUDA_ARCH__ >= 530
+ return __hsub2(a, b);
+#else
+ float a1 = __low2float(a);
+ float a2 = __high2float(a);
+ float b1 = __low2float(b);
+ float b2 = __high2float(b);
+ float r1 = a1 - b1;
+ float r2 = a2 - b2;
+ return __floats2half2_rn(r1, r2);
+#endif
+}
+
+template<> __device__ EIGEN_STRONG_INLINE half2 pnegate(const half2& a) {
+#if __CUDA_ARCH__ >= 530
+ return __hneg2(a);
+#else
+ float a1 = __low2float(a);
+ float a2 = __high2float(a);
+ return __floats2half2_rn(-a1, -a2);
+#endif
+}
+
+template<> __device__ EIGEN_STRONG_INLINE half2 pconj(const half2& a) { return a; }
+
+template<> __device__ EIGEN_STRONG_INLINE half2 pmul<half2>(const half2& a, const half2& b) {
+#if __CUDA_ARCH__ >= 530
+ return __hmul2(a, b);
+#else
+ float a1 = __low2float(a);
+ float a2 = __high2float(a);
+ float b1 = __low2float(b);
+ float b2 = __high2float(b);
+ float r1 = a1 * b1;
+ float r2 = a2 * b2;
+ return __floats2half2_rn(r1, r2);
+#endif
+}
+
+template<> __device__ EIGEN_STRONG_INLINE half2 pmadd<half2>(const half2& a, const half2& b, const half2& c) {
+#if __CUDA_ARCH__ >= 530
+ return __hfma2(a, b, c);
+#else
+ float a1 = __low2float(a);
+ float a2 = __high2float(a);
+ float b1 = __low2float(b);
+ float b2 = __high2float(b);
+ float c1 = __low2float(c);
+ float c2 = __high2float(c);
+ float r1 = a1 * b1 + c1;
+ float r2 = a2 * b2 + c2;
+ return __floats2half2_rn(r1, r2);
+#endif
+}
+
+template<> __device__ EIGEN_STRONG_INLINE half2 pdiv<half2>(const half2& a, const half2& b) {
+ float a1 = __low2float(a);
+ float a2 = __high2float(a);
+ float b1 = __low2float(b);
+ float b2 = __high2float(b);
+ float r1 = a1 / b1;
+ float r2 = a2 / b2;
+ return __floats2half2_rn(r1, r2);
+}
+
+template<> __device__ EIGEN_STRONG_INLINE half2 pmin<half2>(const half2& a, const half2& b) {
+ float a1 = __low2float(a);
+ float a2 = __high2float(a);
+ float b1 = __low2float(b);
+ float b2 = __high2float(b);
+ __half r1 = a1 < b1 ? __low2half(a) : __low2half(b);
+ __half r2 = a2 < b2 ? __high2half(a) : __high2half(b);
+ return __halves2half2(r1, r2);
+}
+
+template<> __device__ EIGEN_STRONG_INLINE half2 pmax<half2>(const half2& a, const half2& b) {
+ float a1 = __low2float(a);
+ float a2 = __high2float(a);
+ float b1 = __low2float(b);
+ float b2 = __high2float(b);
+ __half r1 = a1 > b1 ? __low2half(a) : __low2half(b);
+ __half r2 = a2 > b2 ? __high2half(a) : __high2half(b);
+ return __halves2half2(r1, r2);
+}
+
+template<> __device__ EIGEN_STRONG_INLINE Eigen::half predux<half2>(const half2& a) {
+#if __CUDA_ARCH__ >= 530
+ return __hadd(__low2half(a), __high2half(a));
+#else
+ float a1 = __low2float(a);
+ float a2 = __high2float(a);
+ return Eigen::half(half_impl::raw_uint16_to_half(__float2half_rn(a1 + a2)));
+#endif
+}
+
+template<> __device__ EIGEN_STRONG_INLINE Eigen::half predux_max<half2>(const half2& a) {
+#if __CUDA_ARCH__ >= 530
+ __half first = __low2half(a);
+ __half second = __high2half(a);
+ return __hgt(first, second) ? first : second;
+#else
+ float a1 = __low2float(a);
+ float a2 = __high2float(a);
+ return a1 > a2 ? __low2half(a) : __high2half(a);
+#endif
+}
+
+template<> __device__ EIGEN_STRONG_INLINE Eigen::half predux_min<half2>(const half2& a) {
+#if __CUDA_ARCH__ >= 530
+ __half first = __low2half(a);
+ __half second = __high2half(a);
+ return __hlt(first, second) ? first : second;
+#else
+ float a1 = __low2float(a);
+ float a2 = __high2float(a);
+ return a1 < a2 ? __low2half(a) : __high2half(a);
+#endif
+}
+
+template<> __device__ EIGEN_STRONG_INLINE Eigen::half predux_mul<half2>(const half2& a) {
+#if __CUDA_ARCH__ >= 530
+ return __hmul(__low2half(a), __high2half(a));
+#else
+ float a1 = __low2float(a);
+ float a2 = __high2float(a);
+ return Eigen::half(half_impl::raw_uint16_to_half(__float2half_rn(a1 * a2)));
+#endif
+}
+
+template<> __device__ EIGEN_STRONG_INLINE half2 plog1p<half2>(const half2& a) {
+ float a1 = __low2float(a);
+ float a2 = __high2float(a);
+ float r1 = log1pf(a1);
+ float r2 = log1pf(a2);
+ return __floats2half2_rn(r1, r2);
+}
+
+#if defined __CUDACC_VER__ && __CUDACC_VER__ >= 80000 && defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 530
+
+template<> __device__ EIGEN_STRONG_INLINE
+half2 plog<half2>(const half2& a) {
+ return h2log(a);
+}
+
+template<> __device__ EIGEN_STRONG_INLINE
+half2 pexp<half2>(const half2& a) {
+ return h2exp(a);
+}
+
+template<> __device__ EIGEN_STRONG_INLINE
+half2 psqrt<half2>(const half2& a) {
+ return h2sqrt(a);
+}
+
+template<> __device__ EIGEN_STRONG_INLINE
+half2 prsqrt<half2>(const half2& a) {
+ return h2rsqrt(a);
+}
+
+#else
+
+template<> __device__ EIGEN_STRONG_INLINE half2 plog<half2>(const half2& a) {
+ float a1 = __low2float(a);
+ float a2 = __high2float(a);
+ float r1 = logf(a1);
+ float r2 = logf(a2);
+ return __floats2half2_rn(r1, r2);
+}
+
+template<> __device__ EIGEN_STRONG_INLINE half2 pexp<half2>(const half2& a) {
+ float a1 = __low2float(a);
+ float a2 = __high2float(a);
+ float r1 = expf(a1);
+ float r2 = expf(a2);
+ return __floats2half2_rn(r1, r2);
+}
+
+template<> __device__ EIGEN_STRONG_INLINE half2 psqrt<half2>(const half2& a) {
+ float a1 = __low2float(a);
+ float a2 = __high2float(a);
+ float r1 = sqrtf(a1);
+ float r2 = sqrtf(a2);
+ return __floats2half2_rn(r1, r2);
+}
+
+template<> __device__ EIGEN_STRONG_INLINE half2 prsqrt<half2>(const half2& a) {
+ float a1 = __low2float(a);
+ float a2 = __high2float(a);
+ float r1 = rsqrtf(a1);
+ float r2 = rsqrtf(a2);
+ return __floats2half2_rn(r1, r2);
+}
+
+#endif
+
+#elif defined EIGEN_VECTORIZE_AVX512
+
+typedef struct {
+ __m256i x;
+} Packet16h;
+
+
+template<> struct is_arithmetic<Packet16h> { enum { value = true }; };
+
+template <>
+struct packet_traits<half> : default_packet_traits {
+ typedef Packet16h type;
+ // There is no half-size packet for Packet16h.
+ typedef Packet16h half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size = 16,
+ HasHalfPacket = 0,
+ HasAdd = 0,
+ HasSub = 0,
+ HasMul = 0,
+ HasNegate = 0,
+ HasAbs = 0,
+ HasAbs2 = 0,
+ HasMin = 0,
+ HasMax = 0,
+ HasConj = 0,
+ HasSetLinear = 0,
+ HasDiv = 0,
+ HasSqrt = 0,
+ HasRsqrt = 0,
+ HasExp = 0,
+ HasLog = 0,
+ HasBlend = 0
+ };
+};
+
+
+template<> struct unpacket_traits<Packet16h> { typedef Eigen::half type; enum {size=16, alignment=Aligned32}; typedef Packet16h half; };
+
+template<> EIGEN_STRONG_INLINE Packet16h pset1<Packet16h>(const Eigen::half& from) {
+ Packet16h result;
+ result.x = _mm256_set1_epi16(from.x);
+ return result;
+}
+
+template<> EIGEN_STRONG_INLINE Eigen::half pfirst<Packet16h>(const Packet16h& from) {
+ return half_impl::raw_uint16_to_half(static_cast<unsigned short>(_mm256_extract_epi16(from.x, 0)));
+}
+
+template<> EIGEN_STRONG_INLINE Packet16h pload<Packet16h>(const Eigen::half* from) {
+ Packet16h result;
+ result.x = _mm256_load_si256(reinterpret_cast<const __m256i*>(from));
+ return result;
+}
+
+template<> EIGEN_STRONG_INLINE Packet16h ploadu<Packet16h>(const Eigen::half* from) {
+ Packet16h result;
+ result.x = _mm256_loadu_si256(reinterpret_cast<const __m256i*>(from));
+ return result;
+}
+
+template<> EIGEN_STRONG_INLINE void pstore<half>(Eigen::half* to, const Packet16h& from) {
+ _mm256_store_si256((__m256i*)to, from.x);
+}
+
+template<> EIGEN_STRONG_INLINE void pstoreu<half>(Eigen::half* to, const Packet16h& from) {
+ _mm256_storeu_si256((__m256i*)to, from.x);
+}
+
+template<> EIGEN_STRONG_INLINE Packet16h
+ploadquad(const Eigen::half* from) {
+ Packet16h result;
+ unsigned short a = from[0].x;
+ unsigned short b = from[1].x;
+ unsigned short c = from[2].x;
+ unsigned short d = from[3].x;
+ result.x = _mm256_set_epi16(d, d, d, d, c, c, c, c, b, b, b, b, a, a, a, a);
+ return result;
+}
+
+EIGEN_STRONG_INLINE Packet16f half2float(const Packet16h& a) {
+#ifdef EIGEN_HAS_FP16_C
+ return _mm512_cvtph_ps(a.x);
+#else
+ EIGEN_ALIGN64 half aux[16];
+ pstore(aux, a);
+ float f0(aux[0]);
+ float f1(aux[1]);
+ float f2(aux[2]);
+ float f3(aux[3]);
+ float f4(aux[4]);
+ float f5(aux[5]);
+ float f6(aux[6]);
+ float f7(aux[7]);
+ float f8(aux[8]);
+ float f9(aux[9]);
+ float fa(aux[10]);
+ float fb(aux[11]);
+ float fc(aux[12]);
+ float fd(aux[13]);
+ float fe(aux[14]);
+ float ff(aux[15]);
+
+ return _mm512_set_ps(
+ ff, fe, fd, fc, fb, fa, f9, f8, f7, f6, f5, f4, f3, f2, f1, f0);
+#endif
+}
+
+EIGEN_STRONG_INLINE Packet16h float2half(const Packet16f& a) {
+#ifdef EIGEN_HAS_FP16_C
+ Packet16h result;
+ result.x = _mm512_cvtps_ph(a, _MM_FROUND_TO_NEAREST_INT|_MM_FROUND_NO_EXC);
+ return result;
+#else
+ EIGEN_ALIGN64 float aux[16];
+ pstore(aux, a);
+ half h0(aux[0]);
+ half h1(aux[1]);
+ half h2(aux[2]);
+ half h3(aux[3]);
+ half h4(aux[4]);
+ half h5(aux[5]);
+ half h6(aux[6]);
+ half h7(aux[7]);
+ half h8(aux[8]);
+ half h9(aux[9]);
+ half ha(aux[10]);
+ half hb(aux[11]);
+ half hc(aux[12]);
+ half hd(aux[13]);
+ half he(aux[14]);
+ half hf(aux[15]);
+
+ Packet16h result;
+ result.x = _mm256_set_epi16(
+ hf.x, he.x, hd.x, hc.x, hb.x, ha.x, h9.x, h8.x,
+ h7.x, h6.x, h5.x, h4.x, h3.x, h2.x, h1.x, h0.x);
+ return result;
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet16h padd<Packet16h>(const Packet16h& a, const Packet16h& b) {
+ Packet16f af = half2float(a);
+ Packet16f bf = half2float(b);
+ Packet16f rf = padd(af, bf);
+ return float2half(rf);
+}
+
+template<> EIGEN_STRONG_INLINE Packet16h pmul<Packet16h>(const Packet16h& a, const Packet16h& b) {
+ Packet16f af = half2float(a);
+ Packet16f bf = half2float(b);
+ Packet16f rf = pmul(af, bf);
+ return float2half(rf);
+}
+
+template<> EIGEN_STRONG_INLINE half predux<Packet16h>(const Packet16h& from) {
+ Packet16f from_float = half2float(from);
+ return half(predux(from_float));
+}
+
+template<> EIGEN_STRONG_INLINE Packet16h pgather<Eigen::half, Packet16h>(const Eigen::half* from, Index stride)
+{
+ Packet16h result;
+ result.x = _mm256_set_epi16(
+ from[15*stride].x, from[14*stride].x, from[13*stride].x, from[12*stride].x,
+ from[11*stride].x, from[10*stride].x, from[9*stride].x, from[8*stride].x,
+ from[7*stride].x, from[6*stride].x, from[5*stride].x, from[4*stride].x,
+ from[3*stride].x, from[2*stride].x, from[1*stride].x, from[0*stride].x);
+ return result;
+}
+
+template<> EIGEN_STRONG_INLINE void pscatter<half, Packet16h>(half* to, const Packet16h& from, Index stride)
+{
+ EIGEN_ALIGN64 half aux[16];
+ pstore(aux, from);
+ to[stride*0].x = aux[0].x;
+ to[stride*1].x = aux[1].x;
+ to[stride*2].x = aux[2].x;
+ to[stride*3].x = aux[3].x;
+ to[stride*4].x = aux[4].x;
+ to[stride*5].x = aux[5].x;
+ to[stride*6].x = aux[6].x;
+ to[stride*7].x = aux[7].x;
+ to[stride*8].x = aux[8].x;
+ to[stride*9].x = aux[9].x;
+ to[stride*10].x = aux[10].x;
+ to[stride*11].x = aux[11].x;
+ to[stride*12].x = aux[12].x;
+ to[stride*13].x = aux[13].x;
+ to[stride*14].x = aux[14].x;
+ to[stride*15].x = aux[15].x;
+}
+
+EIGEN_STRONG_INLINE void
+ptranspose(PacketBlock<Packet16h,16>& kernel) {
+ __m256i a = kernel.packet[0].x;
+ __m256i b = kernel.packet[1].x;
+ __m256i c = kernel.packet[2].x;
+ __m256i d = kernel.packet[3].x;
+ __m256i e = kernel.packet[4].x;
+ __m256i f = kernel.packet[5].x;
+ __m256i g = kernel.packet[6].x;
+ __m256i h = kernel.packet[7].x;
+ __m256i i = kernel.packet[8].x;
+ __m256i j = kernel.packet[9].x;
+ __m256i k = kernel.packet[10].x;
+ __m256i l = kernel.packet[11].x;
+ __m256i m = kernel.packet[12].x;
+ __m256i n = kernel.packet[13].x;
+ __m256i o = kernel.packet[14].x;
+ __m256i p = kernel.packet[15].x;
+
+ __m256i ab_07 = _mm256_unpacklo_epi16(a, b);
+ __m256i cd_07 = _mm256_unpacklo_epi16(c, d);
+ __m256i ef_07 = _mm256_unpacklo_epi16(e, f);
+ __m256i gh_07 = _mm256_unpacklo_epi16(g, h);
+ __m256i ij_07 = _mm256_unpacklo_epi16(i, j);
+ __m256i kl_07 = _mm256_unpacklo_epi16(k, l);
+ __m256i mn_07 = _mm256_unpacklo_epi16(m, n);
+ __m256i op_07 = _mm256_unpacklo_epi16(o, p);
+
+ __m256i ab_8f = _mm256_unpackhi_epi16(a, b);
+ __m256i cd_8f = _mm256_unpackhi_epi16(c, d);
+ __m256i ef_8f = _mm256_unpackhi_epi16(e, f);
+ __m256i gh_8f = _mm256_unpackhi_epi16(g, h);
+ __m256i ij_8f = _mm256_unpackhi_epi16(i, j);
+ __m256i kl_8f = _mm256_unpackhi_epi16(k, l);
+ __m256i mn_8f = _mm256_unpackhi_epi16(m, n);
+ __m256i op_8f = _mm256_unpackhi_epi16(o, p);
+
+ __m256i abcd_03 = _mm256_unpacklo_epi32(ab_07, cd_07);
+ __m256i abcd_47 = _mm256_unpackhi_epi32(ab_07, cd_07);
+ __m256i efgh_03 = _mm256_unpacklo_epi32(ef_07, gh_07);
+ __m256i efgh_47 = _mm256_unpackhi_epi32(ef_07, gh_07);
+ __m256i ijkl_03 = _mm256_unpacklo_epi32(ij_07, kl_07);
+ __m256i ijkl_47 = _mm256_unpackhi_epi32(ij_07, kl_07);
+ __m256i mnop_03 = _mm256_unpacklo_epi32(mn_07, op_07);
+ __m256i mnop_47 = _mm256_unpackhi_epi32(mn_07, op_07);
+
+ __m256i abcd_8b = _mm256_unpacklo_epi32(ab_8f, cd_8f);
+ __m256i abcd_cf = _mm256_unpackhi_epi32(ab_8f, cd_8f);
+ __m256i efgh_8b = _mm256_unpacklo_epi32(ef_8f, gh_8f);
+ __m256i efgh_cf = _mm256_unpackhi_epi32(ef_8f, gh_8f);
+ __m256i ijkl_8b = _mm256_unpacklo_epi32(ij_8f, kl_8f);
+ __m256i ijkl_cf = _mm256_unpackhi_epi32(ij_8f, kl_8f);
+ __m256i mnop_8b = _mm256_unpacklo_epi32(mn_8f, op_8f);
+ __m256i mnop_cf = _mm256_unpackhi_epi32(mn_8f, op_8f);
+
+ __m256i abcdefgh_01 = _mm256_unpacklo_epi64(abcd_03, efgh_03);
+ __m256i abcdefgh_23 = _mm256_unpackhi_epi64(abcd_03, efgh_03);
+ __m256i ijklmnop_01 = _mm256_unpacklo_epi64(ijkl_03, mnop_03);
+ __m256i ijklmnop_23 = _mm256_unpackhi_epi64(ijkl_03, mnop_03);
+ __m256i abcdefgh_45 = _mm256_unpacklo_epi64(abcd_47, efgh_47);
+ __m256i abcdefgh_67 = _mm256_unpackhi_epi64(abcd_47, efgh_47);
+ __m256i ijklmnop_45 = _mm256_unpacklo_epi64(ijkl_47, mnop_47);
+ __m256i ijklmnop_67 = _mm256_unpackhi_epi64(ijkl_47, mnop_47);
+ __m256i abcdefgh_89 = _mm256_unpacklo_epi64(abcd_8b, efgh_8b);
+ __m256i abcdefgh_ab = _mm256_unpackhi_epi64(abcd_8b, efgh_8b);
+ __m256i ijklmnop_89 = _mm256_unpacklo_epi64(ijkl_8b, mnop_8b);
+ __m256i ijklmnop_ab = _mm256_unpackhi_epi64(ijkl_8b, mnop_8b);
+ __m256i abcdefgh_cd = _mm256_unpacklo_epi64(abcd_cf, efgh_cf);
+ __m256i abcdefgh_ef = _mm256_unpackhi_epi64(abcd_cf, efgh_cf);
+ __m256i ijklmnop_cd = _mm256_unpacklo_epi64(ijkl_cf, mnop_cf);
+ __m256i ijklmnop_ef = _mm256_unpackhi_epi64(ijkl_cf, mnop_cf);
+
+ // NOTE: no unpacklo/hi instr in this case, so using permute instr.
+ __m256i a_p_0 = _mm256_permute2x128_si256(abcdefgh_01, ijklmnop_01, 0x20);
+ __m256i a_p_1 = _mm256_permute2x128_si256(abcdefgh_01, ijklmnop_01, 0x31);
+ __m256i a_p_2 = _mm256_permute2x128_si256(abcdefgh_23, ijklmnop_23, 0x20);
+ __m256i a_p_3 = _mm256_permute2x128_si256(abcdefgh_23, ijklmnop_23, 0x31);
+ __m256i a_p_4 = _mm256_permute2x128_si256(abcdefgh_45, ijklmnop_45, 0x20);
+ __m256i a_p_5 = _mm256_permute2x128_si256(abcdefgh_45, ijklmnop_45, 0x31);
+ __m256i a_p_6 = _mm256_permute2x128_si256(abcdefgh_67, ijklmnop_67, 0x20);
+ __m256i a_p_7 = _mm256_permute2x128_si256(abcdefgh_67, ijklmnop_67, 0x31);
+ __m256i a_p_8 = _mm256_permute2x128_si256(abcdefgh_89, ijklmnop_89, 0x20);
+ __m256i a_p_9 = _mm256_permute2x128_si256(abcdefgh_89, ijklmnop_89, 0x31);
+ __m256i a_p_a = _mm256_permute2x128_si256(abcdefgh_ab, ijklmnop_ab, 0x20);
+ __m256i a_p_b = _mm256_permute2x128_si256(abcdefgh_ab, ijklmnop_ab, 0x31);
+ __m256i a_p_c = _mm256_permute2x128_si256(abcdefgh_cd, ijklmnop_cd, 0x20);
+ __m256i a_p_d = _mm256_permute2x128_si256(abcdefgh_cd, ijklmnop_cd, 0x31);
+ __m256i a_p_e = _mm256_permute2x128_si256(abcdefgh_ef, ijklmnop_ef, 0x20);
+ __m256i a_p_f = _mm256_permute2x128_si256(abcdefgh_ef, ijklmnop_ef, 0x31);
+
+ kernel.packet[0].x = a_p_0;
+ kernel.packet[1].x = a_p_1;
+ kernel.packet[2].x = a_p_2;
+ kernel.packet[3].x = a_p_3;
+ kernel.packet[4].x = a_p_4;
+ kernel.packet[5].x = a_p_5;
+ kernel.packet[6].x = a_p_6;
+ kernel.packet[7].x = a_p_7;
+ kernel.packet[8].x = a_p_8;
+ kernel.packet[9].x = a_p_9;
+ kernel.packet[10].x = a_p_a;
+ kernel.packet[11].x = a_p_b;
+ kernel.packet[12].x = a_p_c;
+ kernel.packet[13].x = a_p_d;
+ kernel.packet[14].x = a_p_e;
+ kernel.packet[15].x = a_p_f;
+}
+
+EIGEN_STRONG_INLINE void
+ptranspose(PacketBlock<Packet16h,8>& kernel) {
+ EIGEN_ALIGN64 half in[8][16];
+ pstore<half>(in[0], kernel.packet[0]);
+ pstore<half>(in[1], kernel.packet[1]);
+ pstore<half>(in[2], kernel.packet[2]);
+ pstore<half>(in[3], kernel.packet[3]);
+ pstore<half>(in[4], kernel.packet[4]);
+ pstore<half>(in[5], kernel.packet[5]);
+ pstore<half>(in[6], kernel.packet[6]);
+ pstore<half>(in[7], kernel.packet[7]);
+
+ EIGEN_ALIGN64 half out[8][16];
+
+ for (int i = 0; i < 8; ++i) {
+ for (int j = 0; j < 8; ++j) {
+ out[i][j] = in[j][2*i];
+ }
+ for (int j = 0; j < 8; ++j) {
+ out[i][j+8] = in[j][2*i+1];
+ }
+ }
+
+ kernel.packet[0] = pload<Packet16h>(out[0]);
+ kernel.packet[1] = pload<Packet16h>(out[1]);
+ kernel.packet[2] = pload<Packet16h>(out[2]);
+ kernel.packet[3] = pload<Packet16h>(out[3]);
+ kernel.packet[4] = pload<Packet16h>(out[4]);
+ kernel.packet[5] = pload<Packet16h>(out[5]);
+ kernel.packet[6] = pload<Packet16h>(out[6]);
+ kernel.packet[7] = pload<Packet16h>(out[7]);
+}
+
+EIGEN_STRONG_INLINE void
+ptranspose(PacketBlock<Packet16h,4>& kernel) {
+ EIGEN_ALIGN64 half in[4][16];
+ pstore<half>(in[0], kernel.packet[0]);
+ pstore<half>(in[1], kernel.packet[1]);
+ pstore<half>(in[2], kernel.packet[2]);
+ pstore<half>(in[3], kernel.packet[3]);
+
+ EIGEN_ALIGN64 half out[4][16];
+
+ for (int i = 0; i < 4; ++i) {
+ for (int j = 0; j < 4; ++j) {
+ out[i][j] = in[j][4*i];
+ }
+ for (int j = 0; j < 4; ++j) {
+ out[i][j+4] = in[j][4*i+1];
+ }
+ for (int j = 0; j < 4; ++j) {
+ out[i][j+8] = in[j][4*i+2];
+ }
+ for (int j = 0; j < 4; ++j) {
+ out[i][j+12] = in[j][4*i+3];
+ }
+ }
+
+ kernel.packet[0] = pload<Packet16h>(out[0]);
+ kernel.packet[1] = pload<Packet16h>(out[1]);
+ kernel.packet[2] = pload<Packet16h>(out[2]);
+ kernel.packet[3] = pload<Packet16h>(out[3]);
+}
+
+
+#elif defined EIGEN_VECTORIZE_AVX
+
+typedef struct {
+ __m128i x;
+} Packet8h;
+
+
+template<> struct is_arithmetic<Packet8h> { enum { value = true }; };
+
+template <>
+struct packet_traits<Eigen::half> : default_packet_traits {
+ typedef Packet8h type;
+ // There is no half-size packet for Packet8h.
+ typedef Packet8h half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size = 8,
+ HasHalfPacket = 0,
+ HasAdd = 0,
+ HasSub = 0,
+ HasMul = 0,
+ HasNegate = 0,
+ HasAbs = 0,
+ HasAbs2 = 0,
+ HasMin = 0,
+ HasMax = 0,
+ HasConj = 0,
+ HasSetLinear = 0,
+ HasDiv = 0,
+ HasSqrt = 0,
+ HasRsqrt = 0,
+ HasExp = 0,
+ HasLog = 0,
+ HasBlend = 0
+ };
+};
+
+
+template<> struct unpacket_traits<Packet8h> { typedef Eigen::half type; enum {size=8, alignment=Aligned16}; typedef Packet8h half; };
+
+template<> EIGEN_STRONG_INLINE Packet8h pset1<Packet8h>(const Eigen::half& from) {
+ Packet8h result;
+ result.x = _mm_set1_epi16(from.x);
+ return result;
+}
+
+template<> EIGEN_STRONG_INLINE Eigen::half pfirst<Packet8h>(const Packet8h& from) {
+ return half_impl::raw_uint16_to_half(static_cast<unsigned short>(_mm_extract_epi16(from.x, 0)));
+}
+
+template<> EIGEN_STRONG_INLINE Packet8h pload<Packet8h>(const Eigen::half* from) {
+ Packet8h result;
+ result.x = _mm_load_si128(reinterpret_cast<const __m128i*>(from));
+ return result;
+}
+
+template<> EIGEN_STRONG_INLINE Packet8h ploadu<Packet8h>(const Eigen::half* from) {
+ Packet8h result;
+ result.x = _mm_loadu_si128(reinterpret_cast<const __m128i*>(from));
+ return result;
+}
+
+template<> EIGEN_STRONG_INLINE void pstore<Eigen::half>(Eigen::half* to, const Packet8h& from) {
+ _mm_store_si128(reinterpret_cast<__m128i*>(to), from.x);
+}
+
+template<> EIGEN_STRONG_INLINE void pstoreu<Eigen::half>(Eigen::half* to, const Packet8h& from) {
+ _mm_storeu_si128(reinterpret_cast<__m128i*>(to), from.x);
+}
+
+template<> EIGEN_STRONG_INLINE Packet8h
+ploadquad<Packet8h>(const Eigen::half* from) {
+ Packet8h result;
+ unsigned short a = from[0].x;
+ unsigned short b = from[1].x;
+ result.x = _mm_set_epi16(b, b, b, b, a, a, a, a);
+ return result;
+}
+
+EIGEN_STRONG_INLINE Packet8f half2float(const Packet8h& a) {
+#ifdef EIGEN_HAS_FP16_C
+ return _mm256_cvtph_ps(a.x);
+#else
+ EIGEN_ALIGN32 Eigen::half aux[8];
+ pstore(aux, a);
+ float f0(aux[0]);
+ float f1(aux[1]);
+ float f2(aux[2]);
+ float f3(aux[3]);
+ float f4(aux[4]);
+ float f5(aux[5]);
+ float f6(aux[6]);
+ float f7(aux[7]);
+
+ return _mm256_set_ps(f7, f6, f5, f4, f3, f2, f1, f0);
+#endif
+}
+
+EIGEN_STRONG_INLINE Packet8h float2half(const Packet8f& a) {
+#ifdef EIGEN_HAS_FP16_C
+ Packet8h result;
+ result.x = _mm256_cvtps_ph(a, _MM_FROUND_TO_NEAREST_INT|_MM_FROUND_NO_EXC);
+ return result;
+#else
+ EIGEN_ALIGN32 float aux[8];
+ pstore(aux, a);
+ Eigen::half h0(aux[0]);
+ Eigen::half h1(aux[1]);
+ Eigen::half h2(aux[2]);
+ Eigen::half h3(aux[3]);
+ Eigen::half h4(aux[4]);
+ Eigen::half h5(aux[5]);
+ Eigen::half h6(aux[6]);
+ Eigen::half h7(aux[7]);
+
+ Packet8h result;
+ result.x = _mm_set_epi16(h7.x, h6.x, h5.x, h4.x, h3.x, h2.x, h1.x, h0.x);
+ return result;
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet8h pconj(const Packet8h& a) { return a; }
+
+template<> EIGEN_STRONG_INLINE Packet8h padd<Packet8h>(const Packet8h& a, const Packet8h& b) {
+ Packet8f af = half2float(a);
+ Packet8f bf = half2float(b);
+ Packet8f rf = padd(af, bf);
+ return float2half(rf);
+}
+
+template<> EIGEN_STRONG_INLINE Packet8h pmul<Packet8h>(const Packet8h& a, const Packet8h& b) {
+ Packet8f af = half2float(a);
+ Packet8f bf = half2float(b);
+ Packet8f rf = pmul(af, bf);
+ return float2half(rf);
+}
+
+template<> EIGEN_STRONG_INLINE Packet8h pgather<Eigen::half, Packet8h>(const Eigen::half* from, Index stride)
+{
+ Packet8h result;
+ result.x = _mm_set_epi16(from[7*stride].x, from[6*stride].x, from[5*stride].x, from[4*stride].x, from[3*stride].x, from[2*stride].x, from[1*stride].x, from[0*stride].x);
+ return result;
+}
+
+template<> EIGEN_STRONG_INLINE void pscatter<Eigen::half, Packet8h>(Eigen::half* to, const Packet8h& from, Index stride)
+{
+ EIGEN_ALIGN32 Eigen::half aux[8];
+ pstore(aux, from);
+ to[stride*0].x = aux[0].x;
+ to[stride*1].x = aux[1].x;
+ to[stride*2].x = aux[2].x;
+ to[stride*3].x = aux[3].x;
+ to[stride*4].x = aux[4].x;
+ to[stride*5].x = aux[5].x;
+ to[stride*6].x = aux[6].x;
+ to[stride*7].x = aux[7].x;
+}
+
+template<> EIGEN_STRONG_INLINE Eigen::half predux<Packet8h>(const Packet8h& a) {
+ Packet8f af = half2float(a);
+ float reduced = predux<Packet8f>(af);
+ return Eigen::half(reduced);
+}
+
+template<> EIGEN_STRONG_INLINE Eigen::half predux_max<Packet8h>(const Packet8h& a) {
+ Packet8f af = half2float(a);
+ float reduced = predux_max<Packet8f>(af);
+ return Eigen::half(reduced);
+}
+
+template<> EIGEN_STRONG_INLINE Eigen::half predux_min<Packet8h>(const Packet8h& a) {
+ Packet8f af = half2float(a);
+ float reduced = predux_min<Packet8f>(af);
+ return Eigen::half(reduced);
+}
+
+template<> EIGEN_STRONG_INLINE Eigen::half predux_mul<Packet8h>(const Packet8h& a) {
+ Packet8f af = half2float(a);
+ float reduced = predux_mul<Packet8f>(af);
+ return Eigen::half(reduced);
+}
+
+EIGEN_STRONG_INLINE void
+ptranspose(PacketBlock<Packet8h,8>& kernel) {
+ __m128i a = kernel.packet[0].x;
+ __m128i b = kernel.packet[1].x;
+ __m128i c = kernel.packet[2].x;
+ __m128i d = kernel.packet[3].x;
+ __m128i e = kernel.packet[4].x;
+ __m128i f = kernel.packet[5].x;
+ __m128i g = kernel.packet[6].x;
+ __m128i h = kernel.packet[7].x;
+
+ __m128i a03b03 = _mm_unpacklo_epi16(a, b);
+ __m128i c03d03 = _mm_unpacklo_epi16(c, d);
+ __m128i e03f03 = _mm_unpacklo_epi16(e, f);
+ __m128i g03h03 = _mm_unpacklo_epi16(g, h);
+ __m128i a47b47 = _mm_unpackhi_epi16(a, b);
+ __m128i c47d47 = _mm_unpackhi_epi16(c, d);
+ __m128i e47f47 = _mm_unpackhi_epi16(e, f);
+ __m128i g47h47 = _mm_unpackhi_epi16(g, h);
+
+ __m128i a01b01c01d01 = _mm_unpacklo_epi32(a03b03, c03d03);
+ __m128i a23b23c23d23 = _mm_unpackhi_epi32(a03b03, c03d03);
+ __m128i e01f01g01h01 = _mm_unpacklo_epi32(e03f03, g03h03);
+ __m128i e23f23g23h23 = _mm_unpackhi_epi32(e03f03, g03h03);
+ __m128i a45b45c45d45 = _mm_unpacklo_epi32(a47b47, c47d47);
+ __m128i a67b67c67d67 = _mm_unpackhi_epi32(a47b47, c47d47);
+ __m128i e45f45g45h45 = _mm_unpacklo_epi32(e47f47, g47h47);
+ __m128i e67f67g67h67 = _mm_unpackhi_epi32(e47f47, g47h47);
+
+ __m128i a0b0c0d0e0f0g0h0 = _mm_unpacklo_epi64(a01b01c01d01, e01f01g01h01);
+ __m128i a1b1c1d1e1f1g1h1 = _mm_unpackhi_epi64(a01b01c01d01, e01f01g01h01);
+ __m128i a2b2c2d2e2f2g2h2 = _mm_unpacklo_epi64(a23b23c23d23, e23f23g23h23);
+ __m128i a3b3c3d3e3f3g3h3 = _mm_unpackhi_epi64(a23b23c23d23, e23f23g23h23);
+ __m128i a4b4c4d4e4f4g4h4 = _mm_unpacklo_epi64(a45b45c45d45, e45f45g45h45);
+ __m128i a5b5c5d5e5f5g5h5 = _mm_unpackhi_epi64(a45b45c45d45, e45f45g45h45);
+ __m128i a6b6c6d6e6f6g6h6 = _mm_unpacklo_epi64(a67b67c67d67, e67f67g67h67);
+ __m128i a7b7c7d7e7f7g7h7 = _mm_unpackhi_epi64(a67b67c67d67, e67f67g67h67);
+
+ kernel.packet[0].x = a0b0c0d0e0f0g0h0;
+ kernel.packet[1].x = a1b1c1d1e1f1g1h1;
+ kernel.packet[2].x = a2b2c2d2e2f2g2h2;
+ kernel.packet[3].x = a3b3c3d3e3f3g3h3;
+ kernel.packet[4].x = a4b4c4d4e4f4g4h4;
+ kernel.packet[5].x = a5b5c5d5e5f5g5h5;
+ kernel.packet[6].x = a6b6c6d6e6f6g6h6;
+ kernel.packet[7].x = a7b7c7d7e7f7g7h7;
+}
+
+EIGEN_STRONG_INLINE void
+ptranspose(PacketBlock<Packet8h,4>& kernel) {
+ EIGEN_ALIGN32 Eigen::half in[4][8];
+ pstore<Eigen::half>(in[0], kernel.packet[0]);
+ pstore<Eigen::half>(in[1], kernel.packet[1]);
+ pstore<Eigen::half>(in[2], kernel.packet[2]);
+ pstore<Eigen::half>(in[3], kernel.packet[3]);
+
+ EIGEN_ALIGN32 Eigen::half out[4][8];
+
+ for (int i = 0; i < 4; ++i) {
+ for (int j = 0; j < 4; ++j) {
+ out[i][j] = in[j][2*i];
+ }
+ for (int j = 0; j < 4; ++j) {
+ out[i][j+4] = in[j][2*i+1];
+ }
+ }
+
+ kernel.packet[0] = pload<Packet8h>(out[0]);
+ kernel.packet[1] = pload<Packet8h>(out[1]);
+ kernel.packet[2] = pload<Packet8h>(out[2]);
+ kernel.packet[3] = pload<Packet8h>(out[3]);
+}
+
+
+// Disable the following code since it's broken on too many platforms / compilers.
+//#elif defined(EIGEN_VECTORIZE_SSE) && (!EIGEN_ARCH_x86_64) && (!EIGEN_COMP_MSVC)
+#elif 0
+
+typedef struct {
+ __m64 x;
+} Packet4h;
+
+
+template<> struct is_arithmetic<Packet4h> { enum { value = true }; };
+
+template <>
+struct packet_traits<Eigen::half> : default_packet_traits {
+ typedef Packet4h type;
+ // There is no half-size packet for Packet4h.
+ typedef Packet4h half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size = 4,
+ HasHalfPacket = 0,
+ HasAdd = 0,
+ HasSub = 0,
+ HasMul = 0,
+ HasNegate = 0,
+ HasAbs = 0,
+ HasAbs2 = 0,
+ HasMin = 0,
+ HasMax = 0,
+ HasConj = 0,
+ HasSetLinear = 0,
+ HasDiv = 0,
+ HasSqrt = 0,
+ HasRsqrt = 0,
+ HasExp = 0,
+ HasLog = 0,
+ HasBlend = 0
+ };
+};
+
+
+template<> struct unpacket_traits<Packet4h> { typedef Eigen::half type; enum {size=4, alignment=Aligned16}; typedef Packet4h half; };
+
+template<> EIGEN_STRONG_INLINE Packet4h pset1<Packet4h>(const Eigen::half& from) {
+ Packet4h result;
+ result.x = _mm_set1_pi16(from.x);
+ return result;
+}
+
+template<> EIGEN_STRONG_INLINE Eigen::half pfirst<Packet4h>(const Packet4h& from) {
+ return half_impl::raw_uint16_to_half(static_cast<unsigned short>(_mm_cvtsi64_si32(from.x)));
+}
+
+template<> EIGEN_STRONG_INLINE Packet4h pconj(const Packet4h& a) { return a; }
+
+template<> EIGEN_STRONG_INLINE Packet4h padd<Packet4h>(const Packet4h& a, const Packet4h& b) {
+ __int64_t a64 = _mm_cvtm64_si64(a.x);
+ __int64_t b64 = _mm_cvtm64_si64(b.x);
+
+ Eigen::half h[4];
+
+ Eigen::half ha = half_impl::raw_uint16_to_half(static_cast<unsigned short>(a64));
+ Eigen::half hb = half_impl::raw_uint16_to_half(static_cast<unsigned short>(b64));
+ h[0] = ha + hb;
+ ha = half_impl::raw_uint16_to_half(static_cast<unsigned short>(a64 >> 16));
+ hb = half_impl::raw_uint16_to_half(static_cast<unsigned short>(b64 >> 16));
+ h[1] = ha + hb;
+ ha = half_impl::raw_uint16_to_half(static_cast<unsigned short>(a64 >> 32));
+ hb = half_impl::raw_uint16_to_half(static_cast<unsigned short>(b64 >> 32));
+ h[2] = ha + hb;
+ ha = half_impl::raw_uint16_to_half(static_cast<unsigned short>(a64 >> 48));
+ hb = half_impl::raw_uint16_to_half(static_cast<unsigned short>(b64 >> 48));
+ h[3] = ha + hb;
+ Packet4h result;
+ result.x = _mm_set_pi16(h[3].x, h[2].x, h[1].x, h[0].x);
+ return result;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4h pmul<Packet4h>(const Packet4h& a, const Packet4h& b) {
+ __int64_t a64 = _mm_cvtm64_si64(a.x);
+ __int64_t b64 = _mm_cvtm64_si64(b.x);
+
+ Eigen::half h[4];
+
+ Eigen::half ha = half_impl::raw_uint16_to_half(static_cast<unsigned short>(a64));
+ Eigen::half hb = half_impl::raw_uint16_to_half(static_cast<unsigned short>(b64));
+ h[0] = ha * hb;
+ ha = half_impl::raw_uint16_to_half(static_cast<unsigned short>(a64 >> 16));
+ hb = half_impl::raw_uint16_to_half(static_cast<unsigned short>(b64 >> 16));
+ h[1] = ha * hb;
+ ha = half_impl::raw_uint16_to_half(static_cast<unsigned short>(a64 >> 32));
+ hb = half_impl::raw_uint16_to_half(static_cast<unsigned short>(b64 >> 32));
+ h[2] = ha * hb;
+ ha = half_impl::raw_uint16_to_half(static_cast<unsigned short>(a64 >> 48));
+ hb = half_impl::raw_uint16_to_half(static_cast<unsigned short>(b64 >> 48));
+ h[3] = ha * hb;
+ Packet4h result;
+ result.x = _mm_set_pi16(h[3].x, h[2].x, h[1].x, h[0].x);
+ return result;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4h pload<Packet4h>(const Eigen::half* from) {
+ Packet4h result;
+ result.x = _mm_cvtsi64_m64(*reinterpret_cast<const __int64_t*>(from));
+ return result;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4h ploadu<Packet4h>(const Eigen::half* from) {
+ Packet4h result;
+ result.x = _mm_cvtsi64_m64(*reinterpret_cast<const __int64_t*>(from));
+ return result;
+}
+
+template<> EIGEN_STRONG_INLINE void pstore<Eigen::half>(Eigen::half* to, const Packet4h& from) {
+ __int64_t r = _mm_cvtm64_si64(from.x);
+ *(reinterpret_cast<__int64_t*>(to)) = r;
+}
+
+template<> EIGEN_STRONG_INLINE void pstoreu<Eigen::half>(Eigen::half* to, const Packet4h& from) {
+ __int64_t r = _mm_cvtm64_si64(from.x);
+ *(reinterpret_cast<__int64_t*>(to)) = r;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4h
+ploadquad<Packet4h>(const Eigen::half* from) {
+ return pset1<Packet4h>(*from);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4h pgather<Eigen::half, Packet4h>(const Eigen::half* from, Index stride)
+{
+ Packet4h result;
+ result.x = _mm_set_pi16(from[3*stride].x, from[2*stride].x, from[1*stride].x, from[0*stride].x);
+ return result;
+}
+
+template<> EIGEN_STRONG_INLINE void pscatter<Eigen::half, Packet4h>(Eigen::half* to, const Packet4h& from, Index stride)
+{
+ __int64_t a = _mm_cvtm64_si64(from.x);
+ to[stride*0].x = static_cast<unsigned short>(a);
+ to[stride*1].x = static_cast<unsigned short>(a >> 16);
+ to[stride*2].x = static_cast<unsigned short>(a >> 32);
+ to[stride*3].x = static_cast<unsigned short>(a >> 48);
+}
+
+EIGEN_STRONG_INLINE void
+ptranspose(PacketBlock<Packet4h,4>& kernel) {
+ __m64 T0 = _mm_unpacklo_pi16(kernel.packet[0].x, kernel.packet[1].x);
+ __m64 T1 = _mm_unpacklo_pi16(kernel.packet[2].x, kernel.packet[3].x);
+ __m64 T2 = _mm_unpackhi_pi16(kernel.packet[0].x, kernel.packet[1].x);
+ __m64 T3 = _mm_unpackhi_pi16(kernel.packet[2].x, kernel.packet[3].x);
+
+ kernel.packet[0].x = _mm_unpacklo_pi32(T0, T1);
+ kernel.packet[1].x = _mm_unpackhi_pi32(T0, T1);
+ kernel.packet[2].x = _mm_unpacklo_pi32(T2, T3);
+ kernel.packet[3].x = _mm_unpackhi_pi32(T2, T3);
+}
+
+#endif
+
+}
+}
+
+#endif // EIGEN_PACKET_MATH_HALF_CUDA_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h
new file mode 100644
index 000000000..aa5fbce8e
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h
@@ -0,0 +1,212 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2016 Benoit Steiner <benoit.steiner.goog@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TYPE_CASTING_CUDA_H
+#define EIGEN_TYPE_CASTING_CUDA_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<>
+struct scalar_cast_op<float, Eigen::half> {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_cast_op)
+ typedef Eigen::half result_type;
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Eigen::half operator() (const float& a) const {
+ #if defined(EIGEN_HAS_CUDA_FP16) && defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 300
+ return __float2half(a);
+ #else
+ return Eigen::half(a);
+ #endif
+ }
+};
+
+template<>
+struct functor_traits<scalar_cast_op<float, Eigen::half> >
+{ enum { Cost = NumTraits<float>::AddCost, PacketAccess = false }; };
+
+
+template<>
+struct scalar_cast_op<int, Eigen::half> {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_cast_op)
+ typedef Eigen::half result_type;
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Eigen::half operator() (const int& a) const {
+ #if defined(EIGEN_HAS_CUDA_FP16) && defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 300
+ return __float2half(static_cast<float>(a));
+ #else
+ return Eigen::half(static_cast<float>(a));
+ #endif
+ }
+};
+
+template<>
+struct functor_traits<scalar_cast_op<int, Eigen::half> >
+{ enum { Cost = NumTraits<float>::AddCost, PacketAccess = false }; };
+
+
+template<>
+struct scalar_cast_op<Eigen::half, float> {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_cast_op)
+ typedef float result_type;
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE float operator() (const Eigen::half& a) const {
+ #if defined(EIGEN_HAS_CUDA_FP16) && defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 300
+ return __half2float(a);
+ #else
+ return static_cast<float>(a);
+ #endif
+ }
+};
+
+template<>
+struct functor_traits<scalar_cast_op<Eigen::half, float> >
+{ enum { Cost = NumTraits<float>::AddCost, PacketAccess = false }; };
+
+
+
+#if defined(EIGEN_HAS_CUDA_FP16) && defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 300
+
+template <>
+struct type_casting_traits<Eigen::half, float> {
+ enum {
+ VectorizedCast = 1,
+ SrcCoeffRatio = 2,
+ TgtCoeffRatio = 1
+ };
+};
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE float4 pcast<half2, float4>(const half2& a, const half2& b) {
+ float2 r1 = __half22float2(a);
+ float2 r2 = __half22float2(b);
+ return make_float4(r1.x, r1.y, r2.x, r2.y);
+}
+
+template <>
+struct type_casting_traits<float, Eigen::half> {
+ enum {
+ VectorizedCast = 1,
+ SrcCoeffRatio = 1,
+ TgtCoeffRatio = 2
+ };
+};
+
+template<> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE half2 pcast<float4, half2>(const float4& a) {
+ // Simply discard the second half of the input
+ return __floats2half2_rn(a.x, a.y);
+}
+
+#elif defined EIGEN_VECTORIZE_AVX512
+template <>
+struct type_casting_traits<half, float> {
+ enum {
+ VectorizedCast = 1,
+ SrcCoeffRatio = 1,
+ TgtCoeffRatio = 1
+ };
+};
+
+template<> EIGEN_STRONG_INLINE Packet16f pcast<Packet16h, Packet16f>(const Packet16h& a) {
+ return half2float(a);
+}
+
+template <>
+struct type_casting_traits<float, half> {
+ enum {
+ VectorizedCast = 1,
+ SrcCoeffRatio = 1,
+ TgtCoeffRatio = 1
+ };
+};
+
+template<> EIGEN_STRONG_INLINE Packet16h pcast<Packet16f, Packet16h>(const Packet16f& a) {
+ return float2half(a);
+}
+
+#elif defined EIGEN_VECTORIZE_AVX
+
+template <>
+struct type_casting_traits<Eigen::half, float> {
+ enum {
+ VectorizedCast = 1,
+ SrcCoeffRatio = 1,
+ TgtCoeffRatio = 1
+ };
+};
+
+template<> EIGEN_STRONG_INLINE Packet8f pcast<Packet8h, Packet8f>(const Packet8h& a) {
+ return half2float(a);
+}
+
+template <>
+struct type_casting_traits<float, Eigen::half> {
+ enum {
+ VectorizedCast = 1,
+ SrcCoeffRatio = 1,
+ TgtCoeffRatio = 1
+ };
+};
+
+template<> EIGEN_STRONG_INLINE Packet8h pcast<Packet8f, Packet8h>(const Packet8f& a) {
+ return float2half(a);
+}
+
+// Disable the following code since it's broken on too many platforms / compilers.
+//#elif defined(EIGEN_VECTORIZE_SSE) && (!EIGEN_ARCH_x86_64) && (!EIGEN_COMP_MSVC)
+#elif 0
+
+template <>
+struct type_casting_traits<Eigen::half, float> {
+ enum {
+ VectorizedCast = 1,
+ SrcCoeffRatio = 1,
+ TgtCoeffRatio = 1
+ };
+};
+
+template<> EIGEN_STRONG_INLINE Packet4f pcast<Packet4h, Packet4f>(const Packet4h& a) {
+ __int64_t a64 = _mm_cvtm64_si64(a.x);
+ Eigen::half h = raw_uint16_to_half(static_cast<unsigned short>(a64));
+ float f1 = static_cast<float>(h);
+ h = raw_uint16_to_half(static_cast<unsigned short>(a64 >> 16));
+ float f2 = static_cast<float>(h);
+ h = raw_uint16_to_half(static_cast<unsigned short>(a64 >> 32));
+ float f3 = static_cast<float>(h);
+ h = raw_uint16_to_half(static_cast<unsigned short>(a64 >> 48));
+ float f4 = static_cast<float>(h);
+ return _mm_set_ps(f4, f3, f2, f1);
+}
+
+template <>
+struct type_casting_traits<float, Eigen::half> {
+ enum {
+ VectorizedCast = 1,
+ SrcCoeffRatio = 1,
+ TgtCoeffRatio = 1
+ };
+};
+
+template<> EIGEN_STRONG_INLINE Packet4h pcast<Packet4f, Packet4h>(const Packet4f& a) {
+ EIGEN_ALIGN16 float aux[4];
+ pstore(aux, a);
+ Eigen::half h0(aux[0]);
+ Eigen::half h1(aux[1]);
+ Eigen::half h2(aux[2]);
+ Eigen::half h3(aux[3]);
+
+ Packet4h result;
+ result.x = _mm_set_pi16(h3.x, h2.x, h1.x, h0.x);
+ return result;
+}
+
+#endif
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TYPE_CASTING_CUDA_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/Default/Settings.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/Default/Settings.h
new file mode 100644
index 000000000..097373c84
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/Default/Settings.h
@@ -0,0 +1,49 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+/* All the parameters defined in this file can be specialized in the
+ * architecture specific files, and/or by the user.
+ * More to come... */
+
+#ifndef EIGEN_DEFAULT_SETTINGS_H
+#define EIGEN_DEFAULT_SETTINGS_H
+
+/** Defines the maximal loop size to enable meta unrolling of loops.
+ * Note that the value here is expressed in Eigen's own notion of "number of FLOPS",
+ * it does not correspond to the number of iterations or the number of instructions
+ */
+#ifndef EIGEN_UNROLLING_LIMIT
+#define EIGEN_UNROLLING_LIMIT 100
+#endif
+
+/** Defines the threshold between a "small" and a "large" matrix.
+ * This threshold is mainly used to select the proper product implementation.
+ */
+#ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
+#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 8
+#endif
+
+/** Defines the maximal width of the blocks used in the triangular product and solver
+ * for vectors (level 2 blas xTRMV and xTRSV). The default is 8.
+ */
+#ifndef EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH
+#define EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH 8
+#endif
+
+
+/** Defines the default number of registers available for that architecture.
+ * Currently it must be 8 or 16. Other values will fail.
+ */
+#ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS
+#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 8
+#endif
+
+#endif // EIGEN_DEFAULT_SETTINGS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/NEON/Complex.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/NEON/Complex.h
new file mode 100644
index 000000000..57e9b431f
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/NEON/Complex.h
@@ -0,0 +1,486 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010 Konstantinos Margaritis <markos@freevec.org>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPLEX_NEON_H
+#define EIGEN_COMPLEX_NEON_H
+
+namespace Eigen {
+
+namespace internal {
+
+inline uint32x4_t p4ui_CONJ_XOR() {
+// See bug 1325, clang fails to call vld1q_u64.
+#if EIGEN_COMP_CLANG
+ uint32x4_t ret = { 0x00000000, 0x80000000, 0x00000000, 0x80000000 };
+ return ret;
+#else
+ static const uint32_t conj_XOR_DATA[] = { 0x00000000, 0x80000000, 0x00000000, 0x80000000 };
+ return vld1q_u32( conj_XOR_DATA );
+#endif
+}
+
+inline uint32x2_t p2ui_CONJ_XOR() {
+ static const uint32_t conj_XOR_DATA[] = { 0x00000000, 0x80000000 };
+ return vld1_u32( conj_XOR_DATA );
+}
+
+//---------- float ----------
+struct Packet2cf
+{
+ EIGEN_STRONG_INLINE Packet2cf() {}
+ EIGEN_STRONG_INLINE explicit Packet2cf(const Packet4f& a) : v(a) {}
+ Packet4f v;
+};
+
+template<> struct packet_traits<std::complex<float> > : default_packet_traits
+{
+ typedef Packet2cf type;
+ typedef Packet2cf half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size = 2,
+ HasHalfPacket = 0,
+
+ HasAdd = 1,
+ HasSub = 1,
+ HasMul = 1,
+ HasDiv = 1,
+ HasNegate = 1,
+ HasAbs = 0,
+ HasAbs2 = 0,
+ HasMin = 0,
+ HasMax = 0,
+ HasSetLinear = 0
+ };
+};
+
+template<> struct unpacket_traits<Packet2cf> { typedef std::complex<float> type; enum {size=2, alignment=Aligned16}; typedef Packet2cf half; };
+
+template<> EIGEN_STRONG_INLINE Packet2cf pset1<Packet2cf>(const std::complex<float>& from)
+{
+ float32x2_t r64;
+ r64 = vld1_f32((float *)&from);
+
+ return Packet2cf(vcombine_f32(r64, r64));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf padd<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(padd<Packet4f>(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf psub<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(psub<Packet4f>(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pnegate(const Packet2cf& a) { return Packet2cf(pnegate<Packet4f>(a.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pconj(const Packet2cf& a)
+{
+ Packet4ui b = vreinterpretq_u32_f32(a.v);
+ return Packet2cf(vreinterpretq_f32_u32(veorq_u32(b, p4ui_CONJ_XOR())));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pmul<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+ Packet4f v1, v2;
+
+ // Get the real values of a | a1_re | a1_re | a2_re | a2_re |
+ v1 = vcombine_f32(vdup_lane_f32(vget_low_f32(a.v), 0), vdup_lane_f32(vget_high_f32(a.v), 0));
+ // Get the imag values of a | a1_im | a1_im | a2_im | a2_im |
+ v2 = vcombine_f32(vdup_lane_f32(vget_low_f32(a.v), 1), vdup_lane_f32(vget_high_f32(a.v), 1));
+ // Multiply the real a with b
+ v1 = vmulq_f32(v1, b.v);
+ // Multiply the imag a with b
+ v2 = vmulq_f32(v2, b.v);
+ // Conjugate v2
+ v2 = vreinterpretq_f32_u32(veorq_u32(vreinterpretq_u32_f32(v2), p4ui_CONJ_XOR()));
+ // Swap real/imag elements in v2.
+ v2 = vrev64q_f32(v2);
+ // Add and return the result
+ return Packet2cf(vaddq_f32(v1, v2));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pand <Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+ return Packet2cf(vreinterpretq_f32_u32(vandq_u32(vreinterpretq_u32_f32(a.v),vreinterpretq_u32_f32(b.v))));
+}
+template<> EIGEN_STRONG_INLINE Packet2cf por <Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+ return Packet2cf(vreinterpretq_f32_u32(vorrq_u32(vreinterpretq_u32_f32(a.v),vreinterpretq_u32_f32(b.v))));
+}
+template<> EIGEN_STRONG_INLINE Packet2cf pxor <Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+ return Packet2cf(vreinterpretq_f32_u32(veorq_u32(vreinterpretq_u32_f32(a.v),vreinterpretq_u32_f32(b.v))));
+}
+template<> EIGEN_STRONG_INLINE Packet2cf pandnot<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+ return Packet2cf(vreinterpretq_f32_u32(vbicq_u32(vreinterpretq_u32_f32(a.v),vreinterpretq_u32_f32(b.v))));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pload<Packet2cf>(const std::complex<float>* from) { EIGEN_DEBUG_ALIGNED_LOAD return Packet2cf(pload<Packet4f>((const float*)from)); }
+template<> EIGEN_STRONG_INLINE Packet2cf ploadu<Packet2cf>(const std::complex<float>* from) { EIGEN_DEBUG_UNALIGNED_LOAD return Packet2cf(ploadu<Packet4f>((const float*)from)); }
+
+template<> EIGEN_STRONG_INLINE Packet2cf ploaddup<Packet2cf>(const std::complex<float>* from) { return pset1<Packet2cf>(*from); }
+
+template<> EIGEN_STRONG_INLINE void pstore <std::complex<float> >(std::complex<float> * to, const Packet2cf& from) { EIGEN_DEBUG_ALIGNED_STORE pstore((float*)to, from.v); }
+template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<float> >(std::complex<float> * to, const Packet2cf& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu((float*)to, from.v); }
+
+template<> EIGEN_DEVICE_FUNC inline Packet2cf pgather<std::complex<float>, Packet2cf>(const std::complex<float>* from, Index stride)
+{
+ Packet4f res = pset1<Packet4f>(0.f);
+ res = vsetq_lane_f32(std::real(from[0*stride]), res, 0);
+ res = vsetq_lane_f32(std::imag(from[0*stride]), res, 1);
+ res = vsetq_lane_f32(std::real(from[1*stride]), res, 2);
+ res = vsetq_lane_f32(std::imag(from[1*stride]), res, 3);
+ return Packet2cf(res);
+}
+
+template<> EIGEN_DEVICE_FUNC inline void pscatter<std::complex<float>, Packet2cf>(std::complex<float>* to, const Packet2cf& from, Index stride)
+{
+ to[stride*0] = std::complex<float>(vgetq_lane_f32(from.v, 0), vgetq_lane_f32(from.v, 1));
+ to[stride*1] = std::complex<float>(vgetq_lane_f32(from.v, 2), vgetq_lane_f32(from.v, 3));
+}
+
+template<> EIGEN_STRONG_INLINE void prefetch<std::complex<float> >(const std::complex<float> * addr) { EIGEN_ARM_PREFETCH((float *)addr); }
+
+template<> EIGEN_STRONG_INLINE std::complex<float> pfirst<Packet2cf>(const Packet2cf& a)
+{
+ std::complex<float> EIGEN_ALIGN16 x[2];
+ vst1q_f32((float *)x, a.v);
+ return x[0];
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf preverse(const Packet2cf& a)
+{
+ float32x2_t a_lo, a_hi;
+ Packet4f a_r128;
+
+ a_lo = vget_low_f32(a.v);
+ a_hi = vget_high_f32(a.v);
+ a_r128 = vcombine_f32(a_hi, a_lo);
+
+ return Packet2cf(a_r128);
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pcplxflip<Packet2cf>(const Packet2cf& a)
+{
+ return Packet2cf(vrev64q_f32(a.v));
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<float> predux<Packet2cf>(const Packet2cf& a)
+{
+ float32x2_t a1, a2;
+ std::complex<float> s;
+
+ a1 = vget_low_f32(a.v);
+ a2 = vget_high_f32(a.v);
+ a2 = vadd_f32(a1, a2);
+ vst1_f32((float *)&s, a2);
+
+ return s;
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf preduxp<Packet2cf>(const Packet2cf* vecs)
+{
+ Packet4f sum1, sum2, sum;
+
+ // Add the first two 64-bit float32x2_t of vecs[0]
+ sum1 = vcombine_f32(vget_low_f32(vecs[0].v), vget_low_f32(vecs[1].v));
+ sum2 = vcombine_f32(vget_high_f32(vecs[0].v), vget_high_f32(vecs[1].v));
+ sum = vaddq_f32(sum1, sum2);
+
+ return Packet2cf(sum);
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<float> predux_mul<Packet2cf>(const Packet2cf& a)
+{
+ float32x2_t a1, a2, v1, v2, prod;
+ std::complex<float> s;
+
+ a1 = vget_low_f32(a.v);
+ a2 = vget_high_f32(a.v);
+ // Get the real values of a | a1_re | a1_re | a2_re | a2_re |
+ v1 = vdup_lane_f32(a1, 0);
+ // Get the real values of a | a1_im | a1_im | a2_im | a2_im |
+ v2 = vdup_lane_f32(a1, 1);
+ // Multiply the real a with b
+ v1 = vmul_f32(v1, a2);
+ // Multiply the imag a with b
+ v2 = vmul_f32(v2, a2);
+ // Conjugate v2
+ v2 = vreinterpret_f32_u32(veor_u32(vreinterpret_u32_f32(v2), p2ui_CONJ_XOR()));
+ // Swap real/imag elements in v2.
+ v2 = vrev64_f32(v2);
+ // Add v1, v2
+ prod = vadd_f32(v1, v2);
+
+ vst1_f32((float *)&s, prod);
+
+ return s;
+}
+
+template<int Offset>
+struct palign_impl<Offset,Packet2cf>
+{
+ EIGEN_STRONG_INLINE static void run(Packet2cf& first, const Packet2cf& second)
+ {
+ if (Offset==1)
+ {
+ first.v = vextq_f32(first.v, second.v, 2);
+ }
+ }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, false,true>
+{
+ EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+ {
+ return internal::pmul(a, pconj(b));
+ }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, true,false>
+{
+ EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+ {
+ return internal::pmul(pconj(a), b);
+ }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, true,true>
+{
+ EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+ {
+ return pconj(internal::pmul(a, b));
+ }
+};
+
+template<> EIGEN_STRONG_INLINE Packet2cf pdiv<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+ // TODO optimize it for NEON
+ Packet2cf res = conj_helper<Packet2cf,Packet2cf,false,true>().pmul(a,b);
+ Packet4f s, rev_s;
+
+ // this computes the norm
+ s = vmulq_f32(b.v, b.v);
+ rev_s = vrev64q_f32(s);
+
+ return Packet2cf(pdiv(res.v, vaddq_f32(s,rev_s)));
+}
+
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<Packet2cf,2>& kernel) {
+ Packet4f tmp = vcombine_f32(vget_high_f32(kernel.packet[0].v), vget_high_f32(kernel.packet[1].v));
+ kernel.packet[0].v = vcombine_f32(vget_low_f32(kernel.packet[0].v), vget_low_f32(kernel.packet[1].v));
+ kernel.packet[1].v = tmp;
+}
+
+//---------- double ----------
+#if EIGEN_ARCH_ARM64 && !EIGEN_APPLE_DOUBLE_NEON_BUG
+
+// See bug 1325, clang fails to call vld1q_u64.
+#if EIGEN_COMP_CLANG
+ static uint64x2_t p2ul_CONJ_XOR = {0x0, 0x8000000000000000};
+#else
+ const uint64_t p2ul_conj_XOR_DATA[] = { 0x0, 0x8000000000000000 };
+ static uint64x2_t p2ul_CONJ_XOR = vld1q_u64( p2ul_conj_XOR_DATA );
+#endif
+
+struct Packet1cd
+{
+ EIGEN_STRONG_INLINE Packet1cd() {}
+ EIGEN_STRONG_INLINE explicit Packet1cd(const Packet2d& a) : v(a) {}
+ Packet2d v;
+};
+
+template<> struct packet_traits<std::complex<double> > : default_packet_traits
+{
+ typedef Packet1cd type;
+ typedef Packet1cd half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 0,
+ size = 1,
+ HasHalfPacket = 0,
+
+ HasAdd = 1,
+ HasSub = 1,
+ HasMul = 1,
+ HasDiv = 1,
+ HasNegate = 1,
+ HasAbs = 0,
+ HasAbs2 = 0,
+ HasMin = 0,
+ HasMax = 0,
+ HasSetLinear = 0
+ };
+};
+
+template<> struct unpacket_traits<Packet1cd> { typedef std::complex<double> type; enum {size=1, alignment=Aligned16}; typedef Packet1cd half; };
+
+template<> EIGEN_STRONG_INLINE Packet1cd pload<Packet1cd>(const std::complex<double>* from) { EIGEN_DEBUG_ALIGNED_LOAD return Packet1cd(pload<Packet2d>((const double*)from)); }
+template<> EIGEN_STRONG_INLINE Packet1cd ploadu<Packet1cd>(const std::complex<double>* from) { EIGEN_DEBUG_UNALIGNED_LOAD return Packet1cd(ploadu<Packet2d>((const double*)from)); }
+
+template<> EIGEN_STRONG_INLINE Packet1cd pset1<Packet1cd>(const std::complex<double>& from)
+{ /* here we really have to use unaligned loads :( */ return ploadu<Packet1cd>(&from); }
+
+template<> EIGEN_STRONG_INLINE Packet1cd padd<Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(padd<Packet2d>(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd psub<Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(psub<Packet2d>(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pnegate(const Packet1cd& a) { return Packet1cd(pnegate<Packet2d>(a.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pconj(const Packet1cd& a) { return Packet1cd(vreinterpretq_f64_u64(veorq_u64(vreinterpretq_u64_f64(a.v), p2ul_CONJ_XOR))); }
+
+template<> EIGEN_STRONG_INLINE Packet1cd pmul<Packet1cd>(const Packet1cd& a, const Packet1cd& b)
+{
+ Packet2d v1, v2;
+
+ // Get the real values of a
+ v1 = vdupq_lane_f64(vget_low_f64(a.v), 0);
+ // Get the imag values of a
+ v2 = vdupq_lane_f64(vget_high_f64(a.v), 0);
+ // Multiply the real a with b
+ v1 = vmulq_f64(v1, b.v);
+ // Multiply the imag a with b
+ v2 = vmulq_f64(v2, b.v);
+ // Conjugate v2
+ v2 = vreinterpretq_f64_u64(veorq_u64(vreinterpretq_u64_f64(v2), p2ul_CONJ_XOR));
+ // Swap real/imag elements in v2.
+ v2 = preverse<Packet2d>(v2);
+ // Add and return the result
+ return Packet1cd(vaddq_f64(v1, v2));
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd pand <Packet1cd>(const Packet1cd& a, const Packet1cd& b)
+{
+ return Packet1cd(vreinterpretq_f64_u64(vandq_u64(vreinterpretq_u64_f64(a.v),vreinterpretq_u64_f64(b.v))));
+}
+template<> EIGEN_STRONG_INLINE Packet1cd por <Packet1cd>(const Packet1cd& a, const Packet1cd& b)
+{
+ return Packet1cd(vreinterpretq_f64_u64(vorrq_u64(vreinterpretq_u64_f64(a.v),vreinterpretq_u64_f64(b.v))));
+}
+template<> EIGEN_STRONG_INLINE Packet1cd pxor <Packet1cd>(const Packet1cd& a, const Packet1cd& b)
+{
+ return Packet1cd(vreinterpretq_f64_u64(veorq_u64(vreinterpretq_u64_f64(a.v),vreinterpretq_u64_f64(b.v))));
+}
+template<> EIGEN_STRONG_INLINE Packet1cd pandnot<Packet1cd>(const Packet1cd& a, const Packet1cd& b)
+{
+ return Packet1cd(vreinterpretq_f64_u64(vbicq_u64(vreinterpretq_u64_f64(a.v),vreinterpretq_u64_f64(b.v))));
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd ploaddup<Packet1cd>(const std::complex<double>* from) { return pset1<Packet1cd>(*from); }
+
+template<> EIGEN_STRONG_INLINE void pstore <std::complex<double> >(std::complex<double> * to, const Packet1cd& from) { EIGEN_DEBUG_ALIGNED_STORE pstore((double*)to, from.v); }
+template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<double> >(std::complex<double> * to, const Packet1cd& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu((double*)to, from.v); }
+
+template<> EIGEN_STRONG_INLINE void prefetch<std::complex<double> >(const std::complex<double> * addr) { EIGEN_ARM_PREFETCH((double *)addr); }
+
+template<> EIGEN_DEVICE_FUNC inline Packet1cd pgather<std::complex<double>, Packet1cd>(const std::complex<double>* from, Index stride)
+{
+ Packet2d res = pset1<Packet2d>(0.0);
+ res = vsetq_lane_f64(std::real(from[0*stride]), res, 0);
+ res = vsetq_lane_f64(std::imag(from[0*stride]), res, 1);
+ return Packet1cd(res);
+}
+
+template<> EIGEN_DEVICE_FUNC inline void pscatter<std::complex<double>, Packet1cd>(std::complex<double>* to, const Packet1cd& from, Index stride)
+{
+ to[stride*0] = std::complex<double>(vgetq_lane_f64(from.v, 0), vgetq_lane_f64(from.v, 1));
+}
+
+
+template<> EIGEN_STRONG_INLINE std::complex<double> pfirst<Packet1cd>(const Packet1cd& a)
+{
+ std::complex<double> EIGEN_ALIGN16 res;
+ pstore<std::complex<double> >(&res, a);
+
+ return res;
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd preverse(const Packet1cd& a) { return a; }
+
+template<> EIGEN_STRONG_INLINE std::complex<double> predux<Packet1cd>(const Packet1cd& a) { return pfirst(a); }
+
+template<> EIGEN_STRONG_INLINE Packet1cd preduxp<Packet1cd>(const Packet1cd* vecs) { return vecs[0]; }
+
+template<> EIGEN_STRONG_INLINE std::complex<double> predux_mul<Packet1cd>(const Packet1cd& a) { return pfirst(a); }
+
+template<int Offset>
+struct palign_impl<Offset,Packet1cd>
+{
+ static EIGEN_STRONG_INLINE void run(Packet1cd& /*first*/, const Packet1cd& /*second*/)
+ {
+ // FIXME is it sure we never have to align a Packet1cd?
+ // Even though a std::complex<double> has 16 bytes, it is not necessarily aligned on a 16 bytes boundary...
+ }
+};
+
+template<> struct conj_helper<Packet1cd, Packet1cd, false,true>
+{
+ EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
+ {
+ return internal::pmul(a, pconj(b));
+ }
+};
+
+template<> struct conj_helper<Packet1cd, Packet1cd, true,false>
+{
+ EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
+ {
+ return internal::pmul(pconj(a), b);
+ }
+};
+
+template<> struct conj_helper<Packet1cd, Packet1cd, true,true>
+{
+ EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
+ {
+ return pconj(internal::pmul(a, b));
+ }
+};
+
+template<> EIGEN_STRONG_INLINE Packet1cd pdiv<Packet1cd>(const Packet1cd& a, const Packet1cd& b)
+{
+ // TODO optimize it for NEON
+ Packet1cd res = conj_helper<Packet1cd,Packet1cd,false,true>().pmul(a,b);
+ Packet2d s = pmul<Packet2d>(b.v, b.v);
+ Packet2d rev_s = preverse<Packet2d>(s);
+
+ return Packet1cd(pdiv(res.v, padd<Packet2d>(s,rev_s)));
+}
+
+EIGEN_STRONG_INLINE Packet1cd pcplxflip/*<Packet1cd>*/(const Packet1cd& x)
+{
+ return Packet1cd(preverse(Packet2d(x.v)));
+}
+
+EIGEN_STRONG_INLINE void ptranspose(PacketBlock<Packet1cd,2>& kernel)
+{
+ Packet2d tmp = vcombine_f64(vget_high_f64(kernel.packet[0].v), vget_high_f64(kernel.packet[1].v));
+ kernel.packet[0].v = vcombine_f64(vget_low_f64(kernel.packet[0].v), vget_low_f64(kernel.packet[1].v));
+ kernel.packet[1].v = tmp;
+}
+#endif // EIGEN_ARCH_ARM64
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLEX_NEON_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h
new file mode 100644
index 000000000..6bb05bb92
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h
@@ -0,0 +1,91 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* The sin, cos, exp, and log functions of this file come from
+ * Julien Pommier's sse math library: http://gruntthepeon.free.fr/ssemath/
+ */
+
+#ifndef EIGEN_MATH_FUNCTIONS_NEON_H
+#define EIGEN_MATH_FUNCTIONS_NEON_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f pexp<Packet4f>(const Packet4f& _x)
+{
+ Packet4f x = _x;
+ Packet4f tmp, fx;
+
+ _EIGEN_DECLARE_CONST_Packet4f(1 , 1.0f);
+ _EIGEN_DECLARE_CONST_Packet4f(half, 0.5f);
+ _EIGEN_DECLARE_CONST_Packet4i(0x7f, 0x7f);
+ _EIGEN_DECLARE_CONST_Packet4f(exp_hi, 88.3762626647950f);
+ _EIGEN_DECLARE_CONST_Packet4f(exp_lo, -88.3762626647949f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_LOG2EF, 1.44269504088896341f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_C1, 0.693359375f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_C2, -2.12194440e-4f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p0, 1.9875691500E-4f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p1, 1.3981999507E-3f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p2, 8.3334519073E-3f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p3, 4.1665795894E-2f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p4, 1.6666665459E-1f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p5, 5.0000001201E-1f);
+
+ x = vminq_f32(x, p4f_exp_hi);
+ x = vmaxq_f32(x, p4f_exp_lo);
+
+ /* express exp(x) as exp(g + n*log(2)) */
+ fx = vmlaq_f32(p4f_half, x, p4f_cephes_LOG2EF);
+
+ /* perform a floorf */
+ tmp = vcvtq_f32_s32(vcvtq_s32_f32(fx));
+
+ /* if greater, substract 1 */
+ Packet4ui mask = vcgtq_f32(tmp, fx);
+ mask = vandq_u32(mask, vreinterpretq_u32_f32(p4f_1));
+
+ fx = vsubq_f32(tmp, vreinterpretq_f32_u32(mask));
+
+ tmp = vmulq_f32(fx, p4f_cephes_exp_C1);
+ Packet4f z = vmulq_f32(fx, p4f_cephes_exp_C2);
+ x = vsubq_f32(x, tmp);
+ x = vsubq_f32(x, z);
+
+ Packet4f y = vmulq_f32(p4f_cephes_exp_p0, x);
+ z = vmulq_f32(x, x);
+ y = vaddq_f32(y, p4f_cephes_exp_p1);
+ y = vmulq_f32(y, x);
+ y = vaddq_f32(y, p4f_cephes_exp_p2);
+ y = vmulq_f32(y, x);
+ y = vaddq_f32(y, p4f_cephes_exp_p3);
+ y = vmulq_f32(y, x);
+ y = vaddq_f32(y, p4f_cephes_exp_p4);
+ y = vmulq_f32(y, x);
+ y = vaddq_f32(y, p4f_cephes_exp_p5);
+
+ y = vmulq_f32(y, z);
+ y = vaddq_f32(y, x);
+ y = vaddq_f32(y, p4f_1);
+
+ /* build 2^n */
+ int32x4_t mm;
+ mm = vcvtq_s32_f32(fx);
+ mm = vaddq_s32(mm, p4i_0x7f);
+ mm = vshlq_n_s32(mm, 23);
+ Packet4f pow2n = vreinterpretq_f32_s32(mm);
+
+ y = vmulq_f32(y, pow2n);
+ return y;
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATH_FUNCTIONS_NEON_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/NEON/PacketMath.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/NEON/PacketMath.h
new file mode 100644
index 000000000..836fbc0dd
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/NEON/PacketMath.h
@@ -0,0 +1,729 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010 Konstantinos Margaritis <markos@freevec.org>
+// Heavily based on Gael's SSE version.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PACKET_MATH_NEON_H
+#define EIGEN_PACKET_MATH_NEON_H
+
+namespace Eigen {
+
+namespace internal {
+
+#ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
+#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 8
+#endif
+
+#ifndef EIGEN_HAS_SINGLE_INSTRUCTION_MADD
+#define EIGEN_HAS_SINGLE_INSTRUCTION_MADD
+#endif
+
+#ifndef EIGEN_HAS_SINGLE_INSTRUCTION_CJMADD
+#define EIGEN_HAS_SINGLE_INSTRUCTION_CJMADD
+#endif
+
+#ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS
+#if EIGEN_ARCH_ARM64
+#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 32
+#else
+#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 16
+#endif
+#endif
+
+typedef float32x2_t Packet2f;
+typedef float32x4_t Packet4f;
+typedef int32x4_t Packet4i;
+typedef int32x2_t Packet2i;
+typedef uint32x4_t Packet4ui;
+
+#define _EIGEN_DECLARE_CONST_Packet4f(NAME,X) \
+ const Packet4f p4f_##NAME = pset1<Packet4f>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(NAME,X) \
+ const Packet4f p4f_##NAME = vreinterpretq_f32_u32(pset1<int32_t>(X))
+
+#define _EIGEN_DECLARE_CONST_Packet4i(NAME,X) \
+ const Packet4i p4i_##NAME = pset1<Packet4i>(X)
+
+#if EIGEN_ARCH_ARM64
+ // __builtin_prefetch tends to do nothing on ARM64 compilers because the
+ // prefetch instructions there are too detailed for __builtin_prefetch to map
+ // meaningfully to them.
+ #define EIGEN_ARM_PREFETCH(ADDR) __asm__ __volatile__("prfm pldl1keep, [%[addr]]\n" ::[addr] "r"(ADDR) : );
+#elif EIGEN_HAS_BUILTIN(__builtin_prefetch) || EIGEN_COMP_GNUC
+ #define EIGEN_ARM_PREFETCH(ADDR) __builtin_prefetch(ADDR);
+#elif defined __pld
+ #define EIGEN_ARM_PREFETCH(ADDR) __pld(ADDR)
+#elif EIGEN_ARCH_ARM32
+ #define EIGEN_ARM_PREFETCH(ADDR) __asm__ __volatile__ ("pld [%[addr]]\n" :: [addr] "r" (ADDR) : );
+#else
+ // by default no explicit prefetching
+ #define EIGEN_ARM_PREFETCH(ADDR)
+#endif
+
+template<> struct packet_traits<float> : default_packet_traits
+{
+ typedef Packet4f type;
+ typedef Packet4f half; // Packet2f intrinsics not implemented yet
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size = 4,
+ HasHalfPacket=0, // Packet2f intrinsics not implemented yet
+
+ HasDiv = 1,
+ // FIXME check the Has*
+ HasSin = 0,
+ HasCos = 0,
+ HasLog = 0,
+ HasExp = 1,
+ HasSqrt = 0
+ };
+};
+template<> struct packet_traits<int32_t> : default_packet_traits
+{
+ typedef Packet4i type;
+ typedef Packet4i half; // Packet2i intrinsics not implemented yet
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size=4,
+ HasHalfPacket=0 // Packet2i intrinsics not implemented yet
+ // FIXME check the Has*
+ };
+};
+
+#if EIGEN_GNUC_AT_MOST(4,4) && !EIGEN_COMP_LLVM
+// workaround gcc 4.2, 4.3 and 4.4 compilatin issue
+EIGEN_STRONG_INLINE float32x4_t vld1q_f32(const float* x) { return ::vld1q_f32((const float32_t*)x); }
+EIGEN_STRONG_INLINE float32x2_t vld1_f32 (const float* x) { return ::vld1_f32 ((const float32_t*)x); }
+EIGEN_STRONG_INLINE float32x2_t vld1_dup_f32 (const float* x) { return ::vld1_dup_f32 ((const float32_t*)x); }
+EIGEN_STRONG_INLINE void vst1q_f32(float* to, float32x4_t from) { ::vst1q_f32((float32_t*)to,from); }
+EIGEN_STRONG_INLINE void vst1_f32 (float* to, float32x2_t from) { ::vst1_f32 ((float32_t*)to,from); }
+#endif
+
+template<> struct unpacket_traits<Packet4f> { typedef float type; enum {size=4, alignment=Aligned16}; typedef Packet4f half; };
+template<> struct unpacket_traits<Packet4i> { typedef int32_t type; enum {size=4, alignment=Aligned16}; typedef Packet4i half; };
+
+template<> EIGEN_STRONG_INLINE Packet4f pset1<Packet4f>(const float& from) { return vdupq_n_f32(from); }
+template<> EIGEN_STRONG_INLINE Packet4i pset1<Packet4i>(const int32_t& from) { return vdupq_n_s32(from); }
+
+template<> EIGEN_STRONG_INLINE Packet4f plset<Packet4f>(const float& a)
+{
+ const float f[] = {0, 1, 2, 3};
+ Packet4f countdown = vld1q_f32(f);
+ return vaddq_f32(pset1<Packet4f>(a), countdown);
+}
+template<> EIGEN_STRONG_INLINE Packet4i plset<Packet4i>(const int32_t& a)
+{
+ const int32_t i[] = {0, 1, 2, 3};
+ Packet4i countdown = vld1q_s32(i);
+ return vaddq_s32(pset1<Packet4i>(a), countdown);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f padd<Packet4f>(const Packet4f& a, const Packet4f& b) { return vaddq_f32(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i padd<Packet4i>(const Packet4i& a, const Packet4i& b) { return vaddq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f psub<Packet4f>(const Packet4f& a, const Packet4f& b) { return vsubq_f32(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i psub<Packet4i>(const Packet4i& a, const Packet4i& b) { return vsubq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pnegate(const Packet4f& a) { return vnegq_f32(a); }
+template<> EIGEN_STRONG_INLINE Packet4i pnegate(const Packet4i& a) { return vnegq_s32(a); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pconj(const Packet4f& a) { return a; }
+template<> EIGEN_STRONG_INLINE Packet4i pconj(const Packet4i& a) { return a; }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmul<Packet4f>(const Packet4f& a, const Packet4f& b) { return vmulq_f32(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmul<Packet4i>(const Packet4i& a, const Packet4i& b) { return vmulq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pdiv<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+#if EIGEN_ARCH_ARM64
+ return vdivq_f32(a,b);
+#else
+ Packet4f inv, restep, div;
+
+ // NEON does not offer a divide instruction, we have to do a reciprocal approximation
+ // However NEON in contrast to other SIMD engines (AltiVec/SSE), offers
+ // a reciprocal estimate AND a reciprocal step -which saves a few instructions
+ // vrecpeq_f32() returns an estimate to 1/b, which we will finetune with
+ // Newton-Raphson and vrecpsq_f32()
+ inv = vrecpeq_f32(b);
+
+ // This returns a differential, by which we will have to multiply inv to get a better
+ // approximation of 1/b.
+ restep = vrecpsq_f32(b, inv);
+ inv = vmulq_f32(restep, inv);
+
+ // Finally, multiply a by 1/b and get the wanted result of the division.
+ div = vmulq_f32(a, inv);
+
+ return div;
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i pdiv<Packet4i>(const Packet4i& /*a*/, const Packet4i& /*b*/)
+{ eigen_assert(false && "packet integer division are not supported by NEON");
+ return pset1<Packet4i>(0);
+}
+
+// Clang/ARM wrongly advertises __ARM_FEATURE_FMA even when it's not available,
+// then implements a slow software scalar fallback calling fmaf()!
+// Filed LLVM bug:
+// https://llvm.org/bugs/show_bug.cgi?id=27216
+#if (defined __ARM_FEATURE_FMA) && !(EIGEN_COMP_CLANG && EIGEN_ARCH_ARM)
+// See bug 936.
+// FMA is available on VFPv4 i.e. when compiling with -mfpu=neon-vfpv4.
+// FMA is a true fused multiply-add i.e. only 1 rounding at the end, no intermediate rounding.
+// MLA is not fused i.e. does 2 roundings.
+// In addition to giving better accuracy, FMA also gives better performance here on a Krait (Nexus 4):
+// MLA: 10 GFlop/s ; FMA: 12 GFlops/s.
+template<> EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f& a, const Packet4f& b, const Packet4f& c) { return vfmaq_f32(c,a,b); }
+#else
+template<> EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f& a, const Packet4f& b, const Packet4f& c) {
+#if EIGEN_COMP_CLANG && EIGEN_ARCH_ARM
+ // Clang/ARM will replace VMLA by VMUL+VADD at least for some values of -mcpu,
+ // at least -mcpu=cortex-a8 and -mcpu=cortex-a7. Since the former is the default on
+ // -march=armv7-a, that is a very common case.
+ // See e.g. this thread:
+ // http://lists.llvm.org/pipermail/llvm-dev/2013-December/068806.html
+ // Filed LLVM bug:
+ // https://llvm.org/bugs/show_bug.cgi?id=27219
+ Packet4f r = c;
+ asm volatile(
+ "vmla.f32 %q[r], %q[a], %q[b]"
+ : [r] "+w" (r)
+ : [a] "w" (a),
+ [b] "w" (b)
+ : );
+ return r;
+#else
+ return vmlaq_f32(c,a,b);
+#endif
+}
+#endif
+
+// No FMA instruction for int, so use MLA unconditionally.
+template<> EIGEN_STRONG_INLINE Packet4i pmadd(const Packet4i& a, const Packet4i& b, const Packet4i& c) { return vmlaq_s32(c,a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmin<Packet4f>(const Packet4f& a, const Packet4f& b) { return vminq_f32(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmin<Packet4i>(const Packet4i& a, const Packet4i& b) { return vminq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmax<Packet4f>(const Packet4f& a, const Packet4f& b) { return vmaxq_f32(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmax<Packet4i>(const Packet4i& a, const Packet4i& b) { return vmaxq_s32(a,b); }
+
+// Logical Operations are not supported for float, so we have to reinterpret casts using NEON intrinsics
+template<> EIGEN_STRONG_INLINE Packet4f pand<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+ return vreinterpretq_f32_u32(vandq_u32(vreinterpretq_u32_f32(a),vreinterpretq_u32_f32(b)));
+}
+template<> EIGEN_STRONG_INLINE Packet4i pand<Packet4i>(const Packet4i& a, const Packet4i& b) { return vandq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f por<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+ return vreinterpretq_f32_u32(vorrq_u32(vreinterpretq_u32_f32(a),vreinterpretq_u32_f32(b)));
+}
+template<> EIGEN_STRONG_INLINE Packet4i por<Packet4i>(const Packet4i& a, const Packet4i& b) { return vorrq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pxor<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+ return vreinterpretq_f32_u32(veorq_u32(vreinterpretq_u32_f32(a),vreinterpretq_u32_f32(b)));
+}
+template<> EIGEN_STRONG_INLINE Packet4i pxor<Packet4i>(const Packet4i& a, const Packet4i& b) { return veorq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pandnot<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+ return vreinterpretq_f32_u32(vbicq_u32(vreinterpretq_u32_f32(a),vreinterpretq_u32_f32(b)));
+}
+template<> EIGEN_STRONG_INLINE Packet4i pandnot<Packet4i>(const Packet4i& a, const Packet4i& b) { return vbicq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pload<Packet4f>(const float* from) { EIGEN_DEBUG_ALIGNED_LOAD return vld1q_f32(from); }
+template<> EIGEN_STRONG_INLINE Packet4i pload<Packet4i>(const int32_t* from) { EIGEN_DEBUG_ALIGNED_LOAD return vld1q_s32(from); }
+
+template<> EIGEN_STRONG_INLINE Packet4f ploadu<Packet4f>(const float* from) { EIGEN_DEBUG_UNALIGNED_LOAD return vld1q_f32(from); }
+template<> EIGEN_STRONG_INLINE Packet4i ploadu<Packet4i>(const int32_t* from) { EIGEN_DEBUG_UNALIGNED_LOAD return vld1q_s32(from); }
+
+template<> EIGEN_STRONG_INLINE Packet4f ploaddup<Packet4f>(const float* from)
+{
+ float32x2_t lo, hi;
+ lo = vld1_dup_f32(from);
+ hi = vld1_dup_f32(from+1);
+ return vcombine_f32(lo, hi);
+}
+template<> EIGEN_STRONG_INLINE Packet4i ploaddup<Packet4i>(const int32_t* from)
+{
+ int32x2_t lo, hi;
+ lo = vld1_dup_s32(from);
+ hi = vld1_dup_s32(from+1);
+ return vcombine_s32(lo, hi);
+}
+
+template<> EIGEN_STRONG_INLINE void pstore<float> (float* to, const Packet4f& from) { EIGEN_DEBUG_ALIGNED_STORE vst1q_f32(to, from); }
+template<> EIGEN_STRONG_INLINE void pstore<int32_t>(int32_t* to, const Packet4i& from) { EIGEN_DEBUG_ALIGNED_STORE vst1q_s32(to, from); }
+
+template<> EIGEN_STRONG_INLINE void pstoreu<float> (float* to, const Packet4f& from) { EIGEN_DEBUG_UNALIGNED_STORE vst1q_f32(to, from); }
+template<> EIGEN_STRONG_INLINE void pstoreu<int32_t>(int32_t* to, const Packet4i& from) { EIGEN_DEBUG_UNALIGNED_STORE vst1q_s32(to, from); }
+
+template<> EIGEN_DEVICE_FUNC inline Packet4f pgather<float, Packet4f>(const float* from, Index stride)
+{
+ Packet4f res = pset1<Packet4f>(0.f);
+ res = vsetq_lane_f32(from[0*stride], res, 0);
+ res = vsetq_lane_f32(from[1*stride], res, 1);
+ res = vsetq_lane_f32(from[2*stride], res, 2);
+ res = vsetq_lane_f32(from[3*stride], res, 3);
+ return res;
+}
+template<> EIGEN_DEVICE_FUNC inline Packet4i pgather<int32_t, Packet4i>(const int32_t* from, Index stride)
+{
+ Packet4i res = pset1<Packet4i>(0);
+ res = vsetq_lane_s32(from[0*stride], res, 0);
+ res = vsetq_lane_s32(from[1*stride], res, 1);
+ res = vsetq_lane_s32(from[2*stride], res, 2);
+ res = vsetq_lane_s32(from[3*stride], res, 3);
+ return res;
+}
+
+template<> EIGEN_DEVICE_FUNC inline void pscatter<float, Packet4f>(float* to, const Packet4f& from, Index stride)
+{
+ to[stride*0] = vgetq_lane_f32(from, 0);
+ to[stride*1] = vgetq_lane_f32(from, 1);
+ to[stride*2] = vgetq_lane_f32(from, 2);
+ to[stride*3] = vgetq_lane_f32(from, 3);
+}
+template<> EIGEN_DEVICE_FUNC inline void pscatter<int32_t, Packet4i>(int32_t* to, const Packet4i& from, Index stride)
+{
+ to[stride*0] = vgetq_lane_s32(from, 0);
+ to[stride*1] = vgetq_lane_s32(from, 1);
+ to[stride*2] = vgetq_lane_s32(from, 2);
+ to[stride*3] = vgetq_lane_s32(from, 3);
+}
+
+template<> EIGEN_STRONG_INLINE void prefetch<float> (const float* addr) { EIGEN_ARM_PREFETCH(addr); }
+template<> EIGEN_STRONG_INLINE void prefetch<int32_t>(const int32_t* addr) { EIGEN_ARM_PREFETCH(addr); }
+
+// FIXME only store the 2 first elements ?
+template<> EIGEN_STRONG_INLINE float pfirst<Packet4f>(const Packet4f& a) { float EIGEN_ALIGN16 x[4]; vst1q_f32(x, a); return x[0]; }
+template<> EIGEN_STRONG_INLINE int32_t pfirst<Packet4i>(const Packet4i& a) { int32_t EIGEN_ALIGN16 x[4]; vst1q_s32(x, a); return x[0]; }
+
+template<> EIGEN_STRONG_INLINE Packet4f preverse(const Packet4f& a) {
+ float32x2_t a_lo, a_hi;
+ Packet4f a_r64;
+
+ a_r64 = vrev64q_f32(a);
+ a_lo = vget_low_f32(a_r64);
+ a_hi = vget_high_f32(a_r64);
+ return vcombine_f32(a_hi, a_lo);
+}
+template<> EIGEN_STRONG_INLINE Packet4i preverse(const Packet4i& a) {
+ int32x2_t a_lo, a_hi;
+ Packet4i a_r64;
+
+ a_r64 = vrev64q_s32(a);
+ a_lo = vget_low_s32(a_r64);
+ a_hi = vget_high_s32(a_r64);
+ return vcombine_s32(a_hi, a_lo);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f pabs(const Packet4f& a) { return vabsq_f32(a); }
+template<> EIGEN_STRONG_INLINE Packet4i pabs(const Packet4i& a) { return vabsq_s32(a); }
+
+template<> EIGEN_STRONG_INLINE float predux<Packet4f>(const Packet4f& a)
+{
+ float32x2_t a_lo, a_hi, sum;
+
+ a_lo = vget_low_f32(a);
+ a_hi = vget_high_f32(a);
+ sum = vpadd_f32(a_lo, a_hi);
+ sum = vpadd_f32(sum, sum);
+ return vget_lane_f32(sum, 0);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f preduxp<Packet4f>(const Packet4f* vecs)
+{
+ float32x4x2_t vtrn1, vtrn2, res1, res2;
+ Packet4f sum1, sum2, sum;
+
+ // NEON zip performs interleaving of the supplied vectors.
+ // We perform two interleaves in a row to acquire the transposed vector
+ vtrn1 = vzipq_f32(vecs[0], vecs[2]);
+ vtrn2 = vzipq_f32(vecs[1], vecs[3]);
+ res1 = vzipq_f32(vtrn1.val[0], vtrn2.val[0]);
+ res2 = vzipq_f32(vtrn1.val[1], vtrn2.val[1]);
+
+ // Do the addition of the resulting vectors
+ sum1 = vaddq_f32(res1.val[0], res1.val[1]);
+ sum2 = vaddq_f32(res2.val[0], res2.val[1]);
+ sum = vaddq_f32(sum1, sum2);
+
+ return sum;
+}
+
+template<> EIGEN_STRONG_INLINE int32_t predux<Packet4i>(const Packet4i& a)
+{
+ int32x2_t a_lo, a_hi, sum;
+
+ a_lo = vget_low_s32(a);
+ a_hi = vget_high_s32(a);
+ sum = vpadd_s32(a_lo, a_hi);
+ sum = vpadd_s32(sum, sum);
+ return vget_lane_s32(sum, 0);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i preduxp<Packet4i>(const Packet4i* vecs)
+{
+ int32x4x2_t vtrn1, vtrn2, res1, res2;
+ Packet4i sum1, sum2, sum;
+
+ // NEON zip performs interleaving of the supplied vectors.
+ // We perform two interleaves in a row to acquire the transposed vector
+ vtrn1 = vzipq_s32(vecs[0], vecs[2]);
+ vtrn2 = vzipq_s32(vecs[1], vecs[3]);
+ res1 = vzipq_s32(vtrn1.val[0], vtrn2.val[0]);
+ res2 = vzipq_s32(vtrn1.val[1], vtrn2.val[1]);
+
+ // Do the addition of the resulting vectors
+ sum1 = vaddq_s32(res1.val[0], res1.val[1]);
+ sum2 = vaddq_s32(res2.val[0], res2.val[1]);
+ sum = vaddq_s32(sum1, sum2);
+
+ return sum;
+}
+
+// Other reduction functions:
+// mul
+template<> EIGEN_STRONG_INLINE float predux_mul<Packet4f>(const Packet4f& a)
+{
+ float32x2_t a_lo, a_hi, prod;
+
+ // Get a_lo = |a1|a2| and a_hi = |a3|a4|
+ a_lo = vget_low_f32(a);
+ a_hi = vget_high_f32(a);
+ // Get the product of a_lo * a_hi -> |a1*a3|a2*a4|
+ prod = vmul_f32(a_lo, a_hi);
+ // Multiply prod with its swapped value |a2*a4|a1*a3|
+ prod = vmul_f32(prod, vrev64_f32(prod));
+
+ return vget_lane_f32(prod, 0);
+}
+template<> EIGEN_STRONG_INLINE int32_t predux_mul<Packet4i>(const Packet4i& a)
+{
+ int32x2_t a_lo, a_hi, prod;
+
+ // Get a_lo = |a1|a2| and a_hi = |a3|a4|
+ a_lo = vget_low_s32(a);
+ a_hi = vget_high_s32(a);
+ // Get the product of a_lo * a_hi -> |a1*a3|a2*a4|
+ prod = vmul_s32(a_lo, a_hi);
+ // Multiply prod with its swapped value |a2*a4|a1*a3|
+ prod = vmul_s32(prod, vrev64_s32(prod));
+
+ return vget_lane_s32(prod, 0);
+}
+
+// min
+template<> EIGEN_STRONG_INLINE float predux_min<Packet4f>(const Packet4f& a)
+{
+ float32x2_t a_lo, a_hi, min;
+
+ a_lo = vget_low_f32(a);
+ a_hi = vget_high_f32(a);
+ min = vpmin_f32(a_lo, a_hi);
+ min = vpmin_f32(min, min);
+
+ return vget_lane_f32(min, 0);
+}
+
+template<> EIGEN_STRONG_INLINE int32_t predux_min<Packet4i>(const Packet4i& a)
+{
+ int32x2_t a_lo, a_hi, min;
+
+ a_lo = vget_low_s32(a);
+ a_hi = vget_high_s32(a);
+ min = vpmin_s32(a_lo, a_hi);
+ min = vpmin_s32(min, min);
+
+ return vget_lane_s32(min, 0);
+}
+
+// max
+template<> EIGEN_STRONG_INLINE float predux_max<Packet4f>(const Packet4f& a)
+{
+ float32x2_t a_lo, a_hi, max;
+
+ a_lo = vget_low_f32(a);
+ a_hi = vget_high_f32(a);
+ max = vpmax_f32(a_lo, a_hi);
+ max = vpmax_f32(max, max);
+
+ return vget_lane_f32(max, 0);
+}
+
+template<> EIGEN_STRONG_INLINE int32_t predux_max<Packet4i>(const Packet4i& a)
+{
+ int32x2_t a_lo, a_hi, max;
+
+ a_lo = vget_low_s32(a);
+ a_hi = vget_high_s32(a);
+ max = vpmax_s32(a_lo, a_hi);
+ max = vpmax_s32(max, max);
+
+ return vget_lane_s32(max, 0);
+}
+
+// this PALIGN_NEON business is to work around a bug in LLVM Clang 3.0 causing incorrect compilation errors,
+// see bug 347 and this LLVM bug: http://llvm.org/bugs/show_bug.cgi?id=11074
+#define PALIGN_NEON(Offset,Type,Command) \
+template<>\
+struct palign_impl<Offset,Type>\
+{\
+ EIGEN_STRONG_INLINE static void run(Type& first, const Type& second)\
+ {\
+ if (Offset!=0)\
+ first = Command(first, second, Offset);\
+ }\
+};\
+
+PALIGN_NEON(0,Packet4f,vextq_f32)
+PALIGN_NEON(1,Packet4f,vextq_f32)
+PALIGN_NEON(2,Packet4f,vextq_f32)
+PALIGN_NEON(3,Packet4f,vextq_f32)
+PALIGN_NEON(0,Packet4i,vextq_s32)
+PALIGN_NEON(1,Packet4i,vextq_s32)
+PALIGN_NEON(2,Packet4i,vextq_s32)
+PALIGN_NEON(3,Packet4i,vextq_s32)
+
+#undef PALIGN_NEON
+
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<Packet4f,4>& kernel) {
+ float32x4x2_t tmp1 = vzipq_f32(kernel.packet[0], kernel.packet[1]);
+ float32x4x2_t tmp2 = vzipq_f32(kernel.packet[2], kernel.packet[3]);
+
+ kernel.packet[0] = vcombine_f32(vget_low_f32(tmp1.val[0]), vget_low_f32(tmp2.val[0]));
+ kernel.packet[1] = vcombine_f32(vget_high_f32(tmp1.val[0]), vget_high_f32(tmp2.val[0]));
+ kernel.packet[2] = vcombine_f32(vget_low_f32(tmp1.val[1]), vget_low_f32(tmp2.val[1]));
+ kernel.packet[3] = vcombine_f32(vget_high_f32(tmp1.val[1]), vget_high_f32(tmp2.val[1]));
+}
+
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<Packet4i,4>& kernel) {
+ int32x4x2_t tmp1 = vzipq_s32(kernel.packet[0], kernel.packet[1]);
+ int32x4x2_t tmp2 = vzipq_s32(kernel.packet[2], kernel.packet[3]);
+ kernel.packet[0] = vcombine_s32(vget_low_s32(tmp1.val[0]), vget_low_s32(tmp2.val[0]));
+ kernel.packet[1] = vcombine_s32(vget_high_s32(tmp1.val[0]), vget_high_s32(tmp2.val[0]));
+ kernel.packet[2] = vcombine_s32(vget_low_s32(tmp1.val[1]), vget_low_s32(tmp2.val[1]));
+ kernel.packet[3] = vcombine_s32(vget_high_s32(tmp1.val[1]), vget_high_s32(tmp2.val[1]));
+}
+
+//---------- double ----------
+
+// Clang 3.5 in the iOS toolchain has an ICE triggered by NEON intrisics for double.
+// Confirmed at least with __apple_build_version__ = 6000054.
+#ifdef __apple_build_version__
+// Let's hope that by the time __apple_build_version__ hits the 601* range, the bug will be fixed.
+// https://gist.github.com/yamaya/2924292 suggests that the 3 first digits are only updated with
+// major toolchain updates.
+#define EIGEN_APPLE_DOUBLE_NEON_BUG (__apple_build_version__ < 6010000)
+#else
+#define EIGEN_APPLE_DOUBLE_NEON_BUG 0
+#endif
+
+#if EIGEN_ARCH_ARM64 && !EIGEN_APPLE_DOUBLE_NEON_BUG
+
+// Bug 907: workaround missing declarations of the following two functions in the ADK
+// Defining these functions as templates ensures that if these intrinsics are
+// already defined in arm_neon.h, then our workaround doesn't cause a conflict
+// and has lower priority in overload resolution.
+template <typename T>
+uint64x2_t vreinterpretq_u64_f64(T a)
+{
+ return (uint64x2_t) a;
+}
+
+template <typename T>
+float64x2_t vreinterpretq_f64_u64(T a)
+{
+ return (float64x2_t) a;
+}
+
+typedef float64x2_t Packet2d;
+typedef float64x1_t Packet1d;
+
+template<> struct packet_traits<double> : default_packet_traits
+{
+ typedef Packet2d type;
+ typedef Packet2d half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size = 2,
+ HasHalfPacket=0,
+
+ HasDiv = 1,
+ // FIXME check the Has*
+ HasSin = 0,
+ HasCos = 0,
+ HasLog = 0,
+ HasExp = 0,
+ HasSqrt = 0
+ };
+};
+
+template<> struct unpacket_traits<Packet2d> { typedef double type; enum {size=2, alignment=Aligned16}; typedef Packet2d half; };
+
+template<> EIGEN_STRONG_INLINE Packet2d pset1<Packet2d>(const double& from) { return vdupq_n_f64(from); }
+
+template<> EIGEN_STRONG_INLINE Packet2d plset<Packet2d>(const double& a)
+{
+ const double countdown_raw[] = {0.0,1.0};
+ const Packet2d countdown = vld1q_f64(countdown_raw);
+ return vaddq_f64(pset1<Packet2d>(a), countdown);
+}
+template<> EIGEN_STRONG_INLINE Packet2d padd<Packet2d>(const Packet2d& a, const Packet2d& b) { return vaddq_f64(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet2d psub<Packet2d>(const Packet2d& a, const Packet2d& b) { return vsubq_f64(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet2d pnegate(const Packet2d& a) { return vnegq_f64(a); }
+
+template<> EIGEN_STRONG_INLINE Packet2d pconj(const Packet2d& a) { return a; }
+
+template<> EIGEN_STRONG_INLINE Packet2d pmul<Packet2d>(const Packet2d& a, const Packet2d& b) { return vmulq_f64(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet2d pdiv<Packet2d>(const Packet2d& a, const Packet2d& b) { return vdivq_f64(a,b); }
+
+#ifdef __ARM_FEATURE_FMA
+// See bug 936. See above comment about FMA for float.
+template<> EIGEN_STRONG_INLINE Packet2d pmadd(const Packet2d& a, const Packet2d& b, const Packet2d& c) { return vfmaq_f64(c,a,b); }
+#else
+template<> EIGEN_STRONG_INLINE Packet2d pmadd(const Packet2d& a, const Packet2d& b, const Packet2d& c) { return vmlaq_f64(c,a,b); }
+#endif
+
+template<> EIGEN_STRONG_INLINE Packet2d pmin<Packet2d>(const Packet2d& a, const Packet2d& b) { return vminq_f64(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet2d pmax<Packet2d>(const Packet2d& a, const Packet2d& b) { return vmaxq_f64(a,b); }
+
+// Logical Operations are not supported for float, so we have to reinterpret casts using NEON intrinsics
+template<> EIGEN_STRONG_INLINE Packet2d pand<Packet2d>(const Packet2d& a, const Packet2d& b)
+{
+ return vreinterpretq_f64_u64(vandq_u64(vreinterpretq_u64_f64(a),vreinterpretq_u64_f64(b)));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d por<Packet2d>(const Packet2d& a, const Packet2d& b)
+{
+ return vreinterpretq_f64_u64(vorrq_u64(vreinterpretq_u64_f64(a),vreinterpretq_u64_f64(b)));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d pxor<Packet2d>(const Packet2d& a, const Packet2d& b)
+{
+ return vreinterpretq_f64_u64(veorq_u64(vreinterpretq_u64_f64(a),vreinterpretq_u64_f64(b)));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d pandnot<Packet2d>(const Packet2d& a, const Packet2d& b)
+{
+ return vreinterpretq_f64_u64(vbicq_u64(vreinterpretq_u64_f64(a),vreinterpretq_u64_f64(b)));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d pload<Packet2d>(const double* from) { EIGEN_DEBUG_ALIGNED_LOAD return vld1q_f64(from); }
+
+template<> EIGEN_STRONG_INLINE Packet2d ploadu<Packet2d>(const double* from) { EIGEN_DEBUG_UNALIGNED_LOAD return vld1q_f64(from); }
+
+template<> EIGEN_STRONG_INLINE Packet2d ploaddup<Packet2d>(const double* from)
+{
+ return vld1q_dup_f64(from);
+}
+template<> EIGEN_STRONG_INLINE void pstore<double>(double* to, const Packet2d& from) { EIGEN_DEBUG_ALIGNED_STORE vst1q_f64(to, from); }
+
+template<> EIGEN_STRONG_INLINE void pstoreu<double>(double* to, const Packet2d& from) { EIGEN_DEBUG_UNALIGNED_STORE vst1q_f64(to, from); }
+
+template<> EIGEN_DEVICE_FUNC inline Packet2d pgather<double, Packet2d>(const double* from, Index stride)
+{
+ Packet2d res = pset1<Packet2d>(0.0);
+ res = vsetq_lane_f64(from[0*stride], res, 0);
+ res = vsetq_lane_f64(from[1*stride], res, 1);
+ return res;
+}
+template<> EIGEN_DEVICE_FUNC inline void pscatter<double, Packet2d>(double* to, const Packet2d& from, Index stride)
+{
+ to[stride*0] = vgetq_lane_f64(from, 0);
+ to[stride*1] = vgetq_lane_f64(from, 1);
+}
+template<> EIGEN_STRONG_INLINE void prefetch<double>(const double* addr) { EIGEN_ARM_PREFETCH(addr); }
+
+// FIXME only store the 2 first elements ?
+template<> EIGEN_STRONG_INLINE double pfirst<Packet2d>(const Packet2d& a) { return vgetq_lane_f64(a, 0); }
+
+template<> EIGEN_STRONG_INLINE Packet2d preverse(const Packet2d& a) { return vcombine_f64(vget_high_f64(a), vget_low_f64(a)); }
+
+template<> EIGEN_STRONG_INLINE Packet2d pabs(const Packet2d& a) { return vabsq_f64(a); }
+
+#if EIGEN_COMP_CLANG && defined(__apple_build_version__)
+// workaround ICE, see bug 907
+template<> EIGEN_STRONG_INLINE double predux<Packet2d>(const Packet2d& a) { return (vget_low_f64(a) + vget_high_f64(a))[0]; }
+#else
+template<> EIGEN_STRONG_INLINE double predux<Packet2d>(const Packet2d& a) { return vget_lane_f64(vget_low_f64(a) + vget_high_f64(a), 0); }
+#endif
+
+template<> EIGEN_STRONG_INLINE Packet2d preduxp<Packet2d>(const Packet2d* vecs)
+{
+ float64x2_t trn1, trn2;
+
+ // NEON zip performs interleaving of the supplied vectors.
+ // We perform two interleaves in a row to acquire the transposed vector
+ trn1 = vzip1q_f64(vecs[0], vecs[1]);
+ trn2 = vzip2q_f64(vecs[0], vecs[1]);
+
+ // Do the addition of the resulting vectors
+ return vaddq_f64(trn1, trn2);
+}
+// Other reduction functions:
+// mul
+#if EIGEN_COMP_CLANG && defined(__apple_build_version__)
+template<> EIGEN_STRONG_INLINE double predux_mul<Packet2d>(const Packet2d& a) { return (vget_low_f64(a) * vget_high_f64(a))[0]; }
+#else
+template<> EIGEN_STRONG_INLINE double predux_mul<Packet2d>(const Packet2d& a) { return vget_lane_f64(vget_low_f64(a) * vget_high_f64(a), 0); }
+#endif
+
+// min
+template<> EIGEN_STRONG_INLINE double predux_min<Packet2d>(const Packet2d& a) { return vgetq_lane_f64(vpminq_f64(a, a), 0); }
+
+// max
+template<> EIGEN_STRONG_INLINE double predux_max<Packet2d>(const Packet2d& a) { return vgetq_lane_f64(vpmaxq_f64(a, a), 0); }
+
+// this PALIGN_NEON business is to work around a bug in LLVM Clang 3.0 causing incorrect compilation errors,
+// see bug 347 and this LLVM bug: http://llvm.org/bugs/show_bug.cgi?id=11074
+#define PALIGN_NEON(Offset,Type,Command) \
+template<>\
+struct palign_impl<Offset,Type>\
+{\
+ EIGEN_STRONG_INLINE static void run(Type& first, const Type& second)\
+ {\
+ if (Offset!=0)\
+ first = Command(first, second, Offset);\
+ }\
+};\
+
+PALIGN_NEON(0,Packet2d,vextq_f64)
+PALIGN_NEON(1,Packet2d,vextq_f64)
+#undef PALIGN_NEON
+
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<Packet2d,2>& kernel) {
+ float64x2_t trn1 = vzip1q_f64(kernel.packet[0], kernel.packet[1]);
+ float64x2_t trn2 = vzip2q_f64(kernel.packet[0], kernel.packet[1]);
+
+ kernel.packet[0] = trn1;
+ kernel.packet[1] = trn2;
+}
+#endif // EIGEN_ARCH_ARM64
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PACKET_MATH_NEON_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/SSE/Complex.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/SSE/Complex.h
new file mode 100644
index 000000000..5607fe0ab
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/SSE/Complex.h
@@ -0,0 +1,503 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPLEX_SSE_H
+#define EIGEN_COMPLEX_SSE_H
+
+namespace Eigen {
+
+namespace internal {
+
+//---------- float ----------
+struct Packet2cf
+{
+ EIGEN_STRONG_INLINE Packet2cf() {}
+ EIGEN_STRONG_INLINE explicit Packet2cf(const __m128& a) : v(a) {}
+ __m128 v;
+};
+
+// Use the packet_traits defined in AVX/PacketMath.h instead if we're going
+// to leverage AVX instructions.
+#ifndef EIGEN_VECTORIZE_AVX
+template<> struct packet_traits<std::complex<float> > : default_packet_traits
+{
+ typedef Packet2cf type;
+ typedef Packet2cf half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size = 2,
+ HasHalfPacket = 0,
+
+ HasAdd = 1,
+ HasSub = 1,
+ HasMul = 1,
+ HasDiv = 1,
+ HasNegate = 1,
+ HasAbs = 0,
+ HasAbs2 = 0,
+ HasMin = 0,
+ HasMax = 0,
+ HasSetLinear = 0,
+ HasBlend = 1
+ };
+};
+#endif
+
+template<> struct unpacket_traits<Packet2cf> { typedef std::complex<float> type; enum {size=2, alignment=Aligned16}; typedef Packet2cf half; };
+
+template<> EIGEN_STRONG_INLINE Packet2cf padd<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_add_ps(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf psub<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_sub_ps(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pnegate(const Packet2cf& a)
+{
+ const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x80000000,0x80000000,0x80000000,0x80000000));
+ return Packet2cf(_mm_xor_ps(a.v,mask));
+}
+template<> EIGEN_STRONG_INLINE Packet2cf pconj(const Packet2cf& a)
+{
+ const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x00000000,0x80000000,0x00000000,0x80000000));
+ return Packet2cf(_mm_xor_ps(a.v,mask));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pmul<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+ #ifdef EIGEN_VECTORIZE_SSE3
+ return Packet2cf(_mm_addsub_ps(_mm_mul_ps(_mm_moveldup_ps(a.v), b.v),
+ _mm_mul_ps(_mm_movehdup_ps(a.v),
+ vec4f_swizzle1(b.v, 1, 0, 3, 2))));
+// return Packet2cf(_mm_addsub_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 0, 0, 2, 2), b.v),
+// _mm_mul_ps(vec4f_swizzle1(a.v, 1, 1, 3, 3),
+// vec4f_swizzle1(b.v, 1, 0, 3, 2))));
+ #else
+ const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x80000000,0x00000000,0x80000000,0x00000000));
+ return Packet2cf(_mm_add_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 0, 0, 2, 2), b.v),
+ _mm_xor_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 1, 1, 3, 3),
+ vec4f_swizzle1(b.v, 1, 0, 3, 2)), mask)));
+ #endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pand <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_and_ps(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf por <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_or_ps(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pxor <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_xor_ps(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pandnot<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_andnot_ps(a.v,b.v)); }
+
+template<> EIGEN_STRONG_INLINE Packet2cf pload <Packet2cf>(const std::complex<float>* from) { EIGEN_DEBUG_ALIGNED_LOAD return Packet2cf(pload<Packet4f>(&numext::real_ref(*from))); }
+template<> EIGEN_STRONG_INLINE Packet2cf ploadu<Packet2cf>(const std::complex<float>* from) { EIGEN_DEBUG_UNALIGNED_LOAD return Packet2cf(ploadu<Packet4f>(&numext::real_ref(*from))); }
+
+template<> EIGEN_STRONG_INLINE Packet2cf pset1<Packet2cf>(const std::complex<float>& from)
+{
+ Packet2cf res;
+#if EIGEN_GNUC_AT_MOST(4,2)
+ // Workaround annoying "may be used uninitialized in this function" warning with gcc 4.2
+ res.v = _mm_loadl_pi(_mm_set1_ps(0.0f), reinterpret_cast<const __m64*>(&from));
+#elif EIGEN_GNUC_AT_LEAST(4,6)
+ // Suppress annoying "may be used uninitialized in this function" warning with gcc >= 4.6
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wuninitialized"
+ res.v = _mm_loadl_pi(res.v, (const __m64*)&from);
+ #pragma GCC diagnostic pop
+#else
+ res.v = _mm_loadl_pi(res.v, (const __m64*)&from);
+#endif
+ return Packet2cf(_mm_movelh_ps(res.v,res.v));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf ploaddup<Packet2cf>(const std::complex<float>* from) { return pset1<Packet2cf>(*from); }
+
+template<> EIGEN_STRONG_INLINE void pstore <std::complex<float> >(std::complex<float> * to, const Packet2cf& from) { EIGEN_DEBUG_ALIGNED_STORE pstore(&numext::real_ref(*to), Packet4f(from.v)); }
+template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<float> >(std::complex<float> * to, const Packet2cf& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu(&numext::real_ref(*to), Packet4f(from.v)); }
+
+
+template<> EIGEN_DEVICE_FUNC inline Packet2cf pgather<std::complex<float>, Packet2cf>(const std::complex<float>* from, Index stride)
+{
+ return Packet2cf(_mm_set_ps(std::imag(from[1*stride]), std::real(from[1*stride]),
+ std::imag(from[0*stride]), std::real(from[0*stride])));
+}
+
+template<> EIGEN_DEVICE_FUNC inline void pscatter<std::complex<float>, Packet2cf>(std::complex<float>* to, const Packet2cf& from, Index stride)
+{
+ to[stride*0] = std::complex<float>(_mm_cvtss_f32(_mm_shuffle_ps(from.v, from.v, 0)),
+ _mm_cvtss_f32(_mm_shuffle_ps(from.v, from.v, 1)));
+ to[stride*1] = std::complex<float>(_mm_cvtss_f32(_mm_shuffle_ps(from.v, from.v, 2)),
+ _mm_cvtss_f32(_mm_shuffle_ps(from.v, from.v, 3)));
+}
+
+template<> EIGEN_STRONG_INLINE void prefetch<std::complex<float> >(const std::complex<float> * addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+
+template<> EIGEN_STRONG_INLINE std::complex<float> pfirst<Packet2cf>(const Packet2cf& a)
+{
+ #if EIGEN_GNUC_AT_MOST(4,3)
+ // Workaround gcc 4.2 ICE - this is not performance wise ideal, but who cares...
+ // This workaround also fix invalid code generation with gcc 4.3
+ EIGEN_ALIGN16 std::complex<float> res[2];
+ _mm_store_ps((float*)res, a.v);
+ return res[0];
+ #else
+ std::complex<float> res;
+ _mm_storel_pi((__m64*)&res, a.v);
+ return res;
+ #endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf preverse(const Packet2cf& a) { return Packet2cf(_mm_castpd_ps(preverse(Packet2d(_mm_castps_pd(a.v))))); }
+
+template<> EIGEN_STRONG_INLINE std::complex<float> predux<Packet2cf>(const Packet2cf& a)
+{
+ return pfirst(Packet2cf(_mm_add_ps(a.v, _mm_movehl_ps(a.v,a.v))));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf preduxp<Packet2cf>(const Packet2cf* vecs)
+{
+ return Packet2cf(_mm_add_ps(_mm_movelh_ps(vecs[0].v,vecs[1].v), _mm_movehl_ps(vecs[1].v,vecs[0].v)));
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<float> predux_mul<Packet2cf>(const Packet2cf& a)
+{
+ return pfirst(pmul(a, Packet2cf(_mm_movehl_ps(a.v,a.v))));
+}
+
+template<int Offset>
+struct palign_impl<Offset,Packet2cf>
+{
+ static EIGEN_STRONG_INLINE void run(Packet2cf& first, const Packet2cf& second)
+ {
+ if (Offset==1)
+ {
+ first.v = _mm_movehl_ps(first.v, first.v);
+ first.v = _mm_movelh_ps(first.v, second.v);
+ }
+ }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, false,true>
+{
+ EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+ {
+ #ifdef EIGEN_VECTORIZE_SSE3
+ return internal::pmul(a, pconj(b));
+ #else
+ const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x00000000,0x80000000,0x00000000,0x80000000));
+ return Packet2cf(_mm_add_ps(_mm_xor_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 0, 0, 2, 2), b.v), mask),
+ _mm_mul_ps(vec4f_swizzle1(a.v, 1, 1, 3, 3),
+ vec4f_swizzle1(b.v, 1, 0, 3, 2))));
+ #endif
+ }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, true,false>
+{
+ EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+ {
+ #ifdef EIGEN_VECTORIZE_SSE3
+ return internal::pmul(pconj(a), b);
+ #else
+ const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x00000000,0x80000000,0x00000000,0x80000000));
+ return Packet2cf(_mm_add_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 0, 0, 2, 2), b.v),
+ _mm_xor_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 1, 1, 3, 3),
+ vec4f_swizzle1(b.v, 1, 0, 3, 2)), mask)));
+ #endif
+ }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, true,true>
+{
+ EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+ {
+ #ifdef EIGEN_VECTORIZE_SSE3
+ return pconj(internal::pmul(a, b));
+ #else
+ const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x00000000,0x80000000,0x00000000,0x80000000));
+ return Packet2cf(_mm_sub_ps(_mm_xor_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 0, 0, 2, 2), b.v), mask),
+ _mm_mul_ps(vec4f_swizzle1(a.v, 1, 1, 3, 3),
+ vec4f_swizzle1(b.v, 1, 0, 3, 2))));
+ #endif
+ }
+};
+
+template<> struct conj_helper<Packet4f, Packet2cf, false,false>
+{
+ EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet4f& x, const Packet2cf& y, const Packet2cf& c) const
+ { return padd(c, pmul(x,y)); }
+
+ EIGEN_STRONG_INLINE Packet2cf pmul(const Packet4f& x, const Packet2cf& y) const
+ { return Packet2cf(Eigen::internal::pmul<Packet4f>(x, y.v)); }
+};
+
+template<> struct conj_helper<Packet2cf, Packet4f, false,false>
+{
+ EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet4f& y, const Packet2cf& c) const
+ { return padd(c, pmul(x,y)); }
+
+ EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& x, const Packet4f& y) const
+ { return Packet2cf(Eigen::internal::pmul<Packet4f>(x.v, y)); }
+};
+
+template<> EIGEN_STRONG_INLINE Packet2cf pdiv<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+ // TODO optimize it for SSE3 and 4
+ Packet2cf res = conj_helper<Packet2cf,Packet2cf,false,true>().pmul(a,b);
+ __m128 s = _mm_mul_ps(b.v,b.v);
+ return Packet2cf(_mm_div_ps(res.v,_mm_add_ps(s,_mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(s), 0xb1)))));
+}
+
+EIGEN_STRONG_INLINE Packet2cf pcplxflip/* <Packet2cf> */(const Packet2cf& x)
+{
+ return Packet2cf(vec4f_swizzle1(x.v, 1, 0, 3, 2));
+}
+
+
+//---------- double ----------
+struct Packet1cd
+{
+ EIGEN_STRONG_INLINE Packet1cd() {}
+ EIGEN_STRONG_INLINE explicit Packet1cd(const __m128d& a) : v(a) {}
+ __m128d v;
+};
+
+// Use the packet_traits defined in AVX/PacketMath.h instead if we're going
+// to leverage AVX instructions.
+#ifndef EIGEN_VECTORIZE_AVX
+template<> struct packet_traits<std::complex<double> > : default_packet_traits
+{
+ typedef Packet1cd type;
+ typedef Packet1cd half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 0,
+ size = 1,
+ HasHalfPacket = 0,
+
+ HasAdd = 1,
+ HasSub = 1,
+ HasMul = 1,
+ HasDiv = 1,
+ HasNegate = 1,
+ HasAbs = 0,
+ HasAbs2 = 0,
+ HasMin = 0,
+ HasMax = 0,
+ HasSetLinear = 0
+ };
+};
+#endif
+
+template<> struct unpacket_traits<Packet1cd> { typedef std::complex<double> type; enum {size=1, alignment=Aligned16}; typedef Packet1cd half; };
+
+template<> EIGEN_STRONG_INLINE Packet1cd padd<Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_add_pd(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd psub<Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_sub_pd(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pnegate(const Packet1cd& a) { return Packet1cd(pnegate(Packet2d(a.v))); }
+template<> EIGEN_STRONG_INLINE Packet1cd pconj(const Packet1cd& a)
+{
+ const __m128d mask = _mm_castsi128_pd(_mm_set_epi32(0x80000000,0x0,0x0,0x0));
+ return Packet1cd(_mm_xor_pd(a.v,mask));
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd pmul<Packet1cd>(const Packet1cd& a, const Packet1cd& b)
+{
+ #ifdef EIGEN_VECTORIZE_SSE3
+ return Packet1cd(_mm_addsub_pd(_mm_mul_pd(_mm_movedup_pd(a.v), b.v),
+ _mm_mul_pd(vec2d_swizzle1(a.v, 1, 1),
+ vec2d_swizzle1(b.v, 1, 0))));
+ #else
+ const __m128d mask = _mm_castsi128_pd(_mm_set_epi32(0x0,0x0,0x80000000,0x0));
+ return Packet1cd(_mm_add_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 0, 0), b.v),
+ _mm_xor_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 1, 1),
+ vec2d_swizzle1(b.v, 1, 0)), mask)));
+ #endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd pand <Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_and_pd(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd por <Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_or_pd(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pxor <Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_xor_pd(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pandnot<Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_andnot_pd(a.v,b.v)); }
+
+// FIXME force unaligned load, this is a temporary fix
+template<> EIGEN_STRONG_INLINE Packet1cd pload <Packet1cd>(const std::complex<double>* from)
+{ EIGEN_DEBUG_ALIGNED_LOAD return Packet1cd(pload<Packet2d>((const double*)from)); }
+template<> EIGEN_STRONG_INLINE Packet1cd ploadu<Packet1cd>(const std::complex<double>* from)
+{ EIGEN_DEBUG_UNALIGNED_LOAD return Packet1cd(ploadu<Packet2d>((const double*)from)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pset1<Packet1cd>(const std::complex<double>& from)
+{ /* here we really have to use unaligned loads :( */ return ploadu<Packet1cd>(&from); }
+
+template<> EIGEN_STRONG_INLINE Packet1cd ploaddup<Packet1cd>(const std::complex<double>* from) { return pset1<Packet1cd>(*from); }
+
+// FIXME force unaligned store, this is a temporary fix
+template<> EIGEN_STRONG_INLINE void pstore <std::complex<double> >(std::complex<double> * to, const Packet1cd& from) { EIGEN_DEBUG_ALIGNED_STORE pstore((double*)to, Packet2d(from.v)); }
+template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<double> >(std::complex<double> * to, const Packet1cd& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu((double*)to, Packet2d(from.v)); }
+
+template<> EIGEN_STRONG_INLINE void prefetch<std::complex<double> >(const std::complex<double> * addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+
+template<> EIGEN_STRONG_INLINE std::complex<double> pfirst<Packet1cd>(const Packet1cd& a)
+{
+ EIGEN_ALIGN16 double res[2];
+ _mm_store_pd(res, a.v);
+ return std::complex<double>(res[0],res[1]);
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd preverse(const Packet1cd& a) { return a; }
+
+template<> EIGEN_STRONG_INLINE std::complex<double> predux<Packet1cd>(const Packet1cd& a)
+{
+ return pfirst(a);
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd preduxp<Packet1cd>(const Packet1cd* vecs)
+{
+ return vecs[0];
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<double> predux_mul<Packet1cd>(const Packet1cd& a)
+{
+ return pfirst(a);
+}
+
+template<int Offset>
+struct palign_impl<Offset,Packet1cd>
+{
+ static EIGEN_STRONG_INLINE void run(Packet1cd& /*first*/, const Packet1cd& /*second*/)
+ {
+ // FIXME is it sure we never have to align a Packet1cd?
+ // Even though a std::complex<double> has 16 bytes, it is not necessarily aligned on a 16 bytes boundary...
+ }
+};
+
+template<> struct conj_helper<Packet1cd, Packet1cd, false,true>
+{
+ EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
+ {
+ #ifdef EIGEN_VECTORIZE_SSE3
+ return internal::pmul(a, pconj(b));
+ #else
+ const __m128d mask = _mm_castsi128_pd(_mm_set_epi32(0x80000000,0x0,0x0,0x0));
+ return Packet1cd(_mm_add_pd(_mm_xor_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 0, 0), b.v), mask),
+ _mm_mul_pd(vec2d_swizzle1(a.v, 1, 1),
+ vec2d_swizzle1(b.v, 1, 0))));
+ #endif
+ }
+};
+
+template<> struct conj_helper<Packet1cd, Packet1cd, true,false>
+{
+ EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
+ {
+ #ifdef EIGEN_VECTORIZE_SSE3
+ return internal::pmul(pconj(a), b);
+ #else
+ const __m128d mask = _mm_castsi128_pd(_mm_set_epi32(0x80000000,0x0,0x0,0x0));
+ return Packet1cd(_mm_add_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 0, 0), b.v),
+ _mm_xor_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 1, 1),
+ vec2d_swizzle1(b.v, 1, 0)), mask)));
+ #endif
+ }
+};
+
+template<> struct conj_helper<Packet1cd, Packet1cd, true,true>
+{
+ EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
+ {
+ #ifdef EIGEN_VECTORIZE_SSE3
+ return pconj(internal::pmul(a, b));
+ #else
+ const __m128d mask = _mm_castsi128_pd(_mm_set_epi32(0x80000000,0x0,0x0,0x0));
+ return Packet1cd(_mm_sub_pd(_mm_xor_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 0, 0), b.v), mask),
+ _mm_mul_pd(vec2d_swizzle1(a.v, 1, 1),
+ vec2d_swizzle1(b.v, 1, 0))));
+ #endif
+ }
+};
+
+template<> struct conj_helper<Packet2d, Packet1cd, false,false>
+{
+ EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet2d& x, const Packet1cd& y, const Packet1cd& c) const
+ { return padd(c, pmul(x,y)); }
+
+ EIGEN_STRONG_INLINE Packet1cd pmul(const Packet2d& x, const Packet1cd& y) const
+ { return Packet1cd(Eigen::internal::pmul<Packet2d>(x, y.v)); }
+};
+
+template<> struct conj_helper<Packet1cd, Packet2d, false,false>
+{
+ EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet2d& y, const Packet1cd& c) const
+ { return padd(c, pmul(x,y)); }
+
+ EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& x, const Packet2d& y) const
+ { return Packet1cd(Eigen::internal::pmul<Packet2d>(x.v, y)); }
+};
+
+template<> EIGEN_STRONG_INLINE Packet1cd pdiv<Packet1cd>(const Packet1cd& a, const Packet1cd& b)
+{
+ // TODO optimize it for SSE3 and 4
+ Packet1cd res = conj_helper<Packet1cd,Packet1cd,false,true>().pmul(a,b);
+ __m128d s = _mm_mul_pd(b.v,b.v);
+ return Packet1cd(_mm_div_pd(res.v, _mm_add_pd(s,_mm_shuffle_pd(s, s, 0x1))));
+}
+
+EIGEN_STRONG_INLINE Packet1cd pcplxflip/* <Packet1cd> */(const Packet1cd& x)
+{
+ return Packet1cd(preverse(Packet2d(x.v)));
+}
+
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<Packet2cf,2>& kernel) {
+ __m128d w1 = _mm_castps_pd(kernel.packet[0].v);
+ __m128d w2 = _mm_castps_pd(kernel.packet[1].v);
+
+ __m128 tmp = _mm_castpd_ps(_mm_unpackhi_pd(w1, w2));
+ kernel.packet[0].v = _mm_castpd_ps(_mm_unpacklo_pd(w1, w2));
+ kernel.packet[1].v = tmp;
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pblend(const Selector<2>& ifPacket, const Packet2cf& thenPacket, const Packet2cf& elsePacket) {
+ __m128d result = pblend<Packet2d>(ifPacket, _mm_castps_pd(thenPacket.v), _mm_castps_pd(elsePacket.v));
+ return Packet2cf(_mm_castpd_ps(result));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pinsertfirst(const Packet2cf& a, std::complex<float> b)
+{
+ return Packet2cf(_mm_loadl_pi(a.v, reinterpret_cast<const __m64*>(&b)));
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd pinsertfirst(const Packet1cd&, std::complex<double> b)
+{
+ return pset1<Packet1cd>(b);
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pinsertlast(const Packet2cf& a, std::complex<float> b)
+{
+ return Packet2cf(_mm_loadh_pi(a.v, reinterpret_cast<const __m64*>(&b)));
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd pinsertlast(const Packet1cd&, std::complex<double> b)
+{
+ return pset1<Packet1cd>(b);
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLEX_SSE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h
new file mode 100644
index 000000000..7b5f948e1
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h
@@ -0,0 +1,562 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007 Julien Pommier
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* The sin, cos, exp, and log functions of this file come from
+ * Julien Pommier's sse math library: http://gruntthepeon.free.fr/ssemath/
+ */
+
+#ifndef EIGEN_MATH_FUNCTIONS_SSE_H
+#define EIGEN_MATH_FUNCTIONS_SSE_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f plog<Packet4f>(const Packet4f& _x)
+{
+ Packet4f x = _x;
+ _EIGEN_DECLARE_CONST_Packet4f(1 , 1.0f);
+ _EIGEN_DECLARE_CONST_Packet4f(half, 0.5f);
+ _EIGEN_DECLARE_CONST_Packet4i(0x7f, 0x7f);
+
+ _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(inv_mant_mask, ~0x7f800000);
+
+ /* the smallest non denormalized float number */
+ _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(min_norm_pos, 0x00800000);
+ _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(minus_inf, 0xff800000);//-1.f/0.f);
+
+ /* natural logarithm computed for 4 simultaneous float
+ return NaN for x <= 0
+ */
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_SQRTHF, 0.707106781186547524f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p0, 7.0376836292E-2f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p1, - 1.1514610310E-1f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p2, 1.1676998740E-1f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p3, - 1.2420140846E-1f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p4, + 1.4249322787E-1f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p5, - 1.6668057665E-1f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p6, + 2.0000714765E-1f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p7, - 2.4999993993E-1f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p8, + 3.3333331174E-1f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_log_q1, -2.12194440e-4f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_log_q2, 0.693359375f);
+
+
+ Packet4i emm0;
+
+ Packet4f invalid_mask = _mm_cmpnge_ps(x, _mm_setzero_ps()); // not greater equal is true if x is NaN
+ Packet4f iszero_mask = _mm_cmpeq_ps(x, _mm_setzero_ps());
+
+ x = pmax(x, p4f_min_norm_pos); /* cut off denormalized stuff */
+ emm0 = _mm_srli_epi32(_mm_castps_si128(x), 23);
+
+ /* keep only the fractional part */
+ x = _mm_and_ps(x, p4f_inv_mant_mask);
+ x = _mm_or_ps(x, p4f_half);
+
+ emm0 = _mm_sub_epi32(emm0, p4i_0x7f);
+ Packet4f e = padd(Packet4f(_mm_cvtepi32_ps(emm0)), p4f_1);
+
+ /* part2:
+ if( x < SQRTHF ) {
+ e -= 1;
+ x = x + x - 1.0;
+ } else { x = x - 1.0; }
+ */
+ Packet4f mask = _mm_cmplt_ps(x, p4f_cephes_SQRTHF);
+ Packet4f tmp = pand(x, mask);
+ x = psub(x, p4f_1);
+ e = psub(e, pand(p4f_1, mask));
+ x = padd(x, tmp);
+
+ Packet4f x2 = pmul(x,x);
+ Packet4f x3 = pmul(x2,x);
+
+ Packet4f y, y1, y2;
+ y = pmadd(p4f_cephes_log_p0, x, p4f_cephes_log_p1);
+ y1 = pmadd(p4f_cephes_log_p3, x, p4f_cephes_log_p4);
+ y2 = pmadd(p4f_cephes_log_p6, x, p4f_cephes_log_p7);
+ y = pmadd(y , x, p4f_cephes_log_p2);
+ y1 = pmadd(y1, x, p4f_cephes_log_p5);
+ y2 = pmadd(y2, x, p4f_cephes_log_p8);
+ y = pmadd(y, x3, y1);
+ y = pmadd(y, x3, y2);
+ y = pmul(y, x3);
+
+ y1 = pmul(e, p4f_cephes_log_q1);
+ tmp = pmul(x2, p4f_half);
+ y = padd(y, y1);
+ x = psub(x, tmp);
+ y2 = pmul(e, p4f_cephes_log_q2);
+ x = padd(x, y);
+ x = padd(x, y2);
+ // negative arg will be NAN, 0 will be -INF
+ return _mm_or_ps(_mm_andnot_ps(iszero_mask, _mm_or_ps(x, invalid_mask)),
+ _mm_and_ps(iszero_mask, p4f_minus_inf));
+}
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f pexp<Packet4f>(const Packet4f& _x)
+{
+ Packet4f x = _x;
+ _EIGEN_DECLARE_CONST_Packet4f(1 , 1.0f);
+ _EIGEN_DECLARE_CONST_Packet4f(half, 0.5f);
+ _EIGEN_DECLARE_CONST_Packet4i(0x7f, 0x7f);
+
+
+ _EIGEN_DECLARE_CONST_Packet4f(exp_hi, 88.3762626647950f);
+ _EIGEN_DECLARE_CONST_Packet4f(exp_lo, -88.3762626647949f);
+
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_LOG2EF, 1.44269504088896341f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_C1, 0.693359375f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_C2, -2.12194440e-4f);
+
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p0, 1.9875691500E-4f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p1, 1.3981999507E-3f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p2, 8.3334519073E-3f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p3, 4.1665795894E-2f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p4, 1.6666665459E-1f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p5, 5.0000001201E-1f);
+
+ Packet4f tmp, fx;
+ Packet4i emm0;
+
+ // clamp x
+ x = pmax(pmin(x, p4f_exp_hi), p4f_exp_lo);
+
+ /* express exp(x) as exp(g + n*log(2)) */
+ fx = pmadd(x, p4f_cephes_LOG2EF, p4f_half);
+
+#ifdef EIGEN_VECTORIZE_SSE4_1
+ fx = _mm_floor_ps(fx);
+#else
+ emm0 = _mm_cvttps_epi32(fx);
+ tmp = _mm_cvtepi32_ps(emm0);
+ /* if greater, substract 1 */
+ Packet4f mask = _mm_cmpgt_ps(tmp, fx);
+ mask = _mm_and_ps(mask, p4f_1);
+ fx = psub(tmp, mask);
+#endif
+
+ tmp = pmul(fx, p4f_cephes_exp_C1);
+ Packet4f z = pmul(fx, p4f_cephes_exp_C2);
+ x = psub(x, tmp);
+ x = psub(x, z);
+
+ z = pmul(x,x);
+
+ Packet4f y = p4f_cephes_exp_p0;
+ y = pmadd(y, x, p4f_cephes_exp_p1);
+ y = pmadd(y, x, p4f_cephes_exp_p2);
+ y = pmadd(y, x, p4f_cephes_exp_p3);
+ y = pmadd(y, x, p4f_cephes_exp_p4);
+ y = pmadd(y, x, p4f_cephes_exp_p5);
+ y = pmadd(y, z, x);
+ y = padd(y, p4f_1);
+
+ // build 2^n
+ emm0 = _mm_cvttps_epi32(fx);
+ emm0 = _mm_add_epi32(emm0, p4i_0x7f);
+ emm0 = _mm_slli_epi32(emm0, 23);
+ return pmax(pmul(y, Packet4f(_mm_castsi128_ps(emm0))), _x);
+}
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet2d pexp<Packet2d>(const Packet2d& _x)
+{
+ Packet2d x = _x;
+
+ _EIGEN_DECLARE_CONST_Packet2d(1 , 1.0);
+ _EIGEN_DECLARE_CONST_Packet2d(2 , 2.0);
+ _EIGEN_DECLARE_CONST_Packet2d(half, 0.5);
+
+ _EIGEN_DECLARE_CONST_Packet2d(exp_hi, 709.437);
+ _EIGEN_DECLARE_CONST_Packet2d(exp_lo, -709.436139303);
+
+ _EIGEN_DECLARE_CONST_Packet2d(cephes_LOG2EF, 1.4426950408889634073599);
+
+ _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_p0, 1.26177193074810590878e-4);
+ _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_p1, 3.02994407707441961300e-2);
+ _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_p2, 9.99999999999999999910e-1);
+
+ _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q0, 3.00198505138664455042e-6);
+ _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q1, 2.52448340349684104192e-3);
+ _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q2, 2.27265548208155028766e-1);
+ _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q3, 2.00000000000000000009e0);
+
+ _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_C1, 0.693145751953125);
+ _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_C2, 1.42860682030941723212e-6);
+ static const __m128i p4i_1023_0 = _mm_setr_epi32(1023, 1023, 0, 0);
+
+ Packet2d tmp, fx;
+ Packet4i emm0;
+
+ // clamp x
+ x = pmax(pmin(x, p2d_exp_hi), p2d_exp_lo);
+ /* express exp(x) as exp(g + n*log(2)) */
+ fx = pmadd(p2d_cephes_LOG2EF, x, p2d_half);
+
+#ifdef EIGEN_VECTORIZE_SSE4_1
+ fx = _mm_floor_pd(fx);
+#else
+ emm0 = _mm_cvttpd_epi32(fx);
+ tmp = _mm_cvtepi32_pd(emm0);
+ /* if greater, substract 1 */
+ Packet2d mask = _mm_cmpgt_pd(tmp, fx);
+ mask = _mm_and_pd(mask, p2d_1);
+ fx = psub(tmp, mask);
+#endif
+
+ tmp = pmul(fx, p2d_cephes_exp_C1);
+ Packet2d z = pmul(fx, p2d_cephes_exp_C2);
+ x = psub(x, tmp);
+ x = psub(x, z);
+
+ Packet2d x2 = pmul(x,x);
+
+ Packet2d px = p2d_cephes_exp_p0;
+ px = pmadd(px, x2, p2d_cephes_exp_p1);
+ px = pmadd(px, x2, p2d_cephes_exp_p2);
+ px = pmul (px, x);
+
+ Packet2d qx = p2d_cephes_exp_q0;
+ qx = pmadd(qx, x2, p2d_cephes_exp_q1);
+ qx = pmadd(qx, x2, p2d_cephes_exp_q2);
+ qx = pmadd(qx, x2, p2d_cephes_exp_q3);
+
+ x = pdiv(px,psub(qx,px));
+ x = pmadd(p2d_2,x,p2d_1);
+
+ // build 2^n
+ emm0 = _mm_cvttpd_epi32(fx);
+ emm0 = _mm_add_epi32(emm0, p4i_1023_0);
+ emm0 = _mm_slli_epi32(emm0, 20);
+ emm0 = _mm_shuffle_epi32(emm0, _MM_SHUFFLE(1,2,0,3));
+ return pmax(pmul(x, Packet2d(_mm_castsi128_pd(emm0))), _x);
+}
+
+/* evaluation of 4 sines at onces, using SSE2 intrinsics.
+
+ The code is the exact rewriting of the cephes sinf function.
+ Precision is excellent as long as x < 8192 (I did not bother to
+ take into account the special handling they have for greater values
+ -- it does not return garbage for arguments over 8192, though, but
+ the extra precision is missing).
+
+ Note that it is such that sinf((float)M_PI) = 8.74e-8, which is the
+ surprising but correct result.
+*/
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f psin<Packet4f>(const Packet4f& _x)
+{
+ Packet4f x = _x;
+ _EIGEN_DECLARE_CONST_Packet4f(1 , 1.0f);
+ _EIGEN_DECLARE_CONST_Packet4f(half, 0.5f);
+
+ _EIGEN_DECLARE_CONST_Packet4i(1, 1);
+ _EIGEN_DECLARE_CONST_Packet4i(not1, ~1);
+ _EIGEN_DECLARE_CONST_Packet4i(2, 2);
+ _EIGEN_DECLARE_CONST_Packet4i(4, 4);
+
+ _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(sign_mask, 0x80000000);
+
+ _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP1,-0.78515625f);
+ _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP2, -2.4187564849853515625e-4f);
+ _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP3, -3.77489497744594108e-8f);
+ _EIGEN_DECLARE_CONST_Packet4f(sincof_p0, -1.9515295891E-4f);
+ _EIGEN_DECLARE_CONST_Packet4f(sincof_p1, 8.3321608736E-3f);
+ _EIGEN_DECLARE_CONST_Packet4f(sincof_p2, -1.6666654611E-1f);
+ _EIGEN_DECLARE_CONST_Packet4f(coscof_p0, 2.443315711809948E-005f);
+ _EIGEN_DECLARE_CONST_Packet4f(coscof_p1, -1.388731625493765E-003f);
+ _EIGEN_DECLARE_CONST_Packet4f(coscof_p2, 4.166664568298827E-002f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_FOPI, 1.27323954473516f); // 4 / M_PI
+
+ Packet4f xmm1, xmm2, xmm3, sign_bit, y;
+
+ Packet4i emm0, emm2;
+ sign_bit = x;
+ /* take the absolute value */
+ x = pabs(x);
+
+ /* take the modulo */
+
+ /* extract the sign bit (upper one) */
+ sign_bit = _mm_and_ps(sign_bit, p4f_sign_mask);
+
+ /* scale by 4/Pi */
+ y = pmul(x, p4f_cephes_FOPI);
+
+ /* store the integer part of y in mm0 */
+ emm2 = _mm_cvttps_epi32(y);
+ /* j=(j+1) & (~1) (see the cephes sources) */
+ emm2 = _mm_add_epi32(emm2, p4i_1);
+ emm2 = _mm_and_si128(emm2, p4i_not1);
+ y = _mm_cvtepi32_ps(emm2);
+ /* get the swap sign flag */
+ emm0 = _mm_and_si128(emm2, p4i_4);
+ emm0 = _mm_slli_epi32(emm0, 29);
+ /* get the polynom selection mask
+ there is one polynom for 0 <= x <= Pi/4
+ and another one for Pi/4<x<=Pi/2
+
+ Both branches will be computed.
+ */
+ emm2 = _mm_and_si128(emm2, p4i_2);
+ emm2 = _mm_cmpeq_epi32(emm2, _mm_setzero_si128());
+
+ Packet4f swap_sign_bit = _mm_castsi128_ps(emm0);
+ Packet4f poly_mask = _mm_castsi128_ps(emm2);
+ sign_bit = _mm_xor_ps(sign_bit, swap_sign_bit);
+
+ /* The magic pass: "Extended precision modular arithmetic"
+ x = ((x - y * DP1) - y * DP2) - y * DP3; */
+ xmm1 = pmul(y, p4f_minus_cephes_DP1);
+ xmm2 = pmul(y, p4f_minus_cephes_DP2);
+ xmm3 = pmul(y, p4f_minus_cephes_DP3);
+ x = padd(x, xmm1);
+ x = padd(x, xmm2);
+ x = padd(x, xmm3);
+
+ /* Evaluate the first polynom (0 <= x <= Pi/4) */
+ y = p4f_coscof_p0;
+ Packet4f z = _mm_mul_ps(x,x);
+
+ y = pmadd(y, z, p4f_coscof_p1);
+ y = pmadd(y, z, p4f_coscof_p2);
+ y = pmul(y, z);
+ y = pmul(y, z);
+ Packet4f tmp = pmul(z, p4f_half);
+ y = psub(y, tmp);
+ y = padd(y, p4f_1);
+
+ /* Evaluate the second polynom (Pi/4 <= x <= 0) */
+
+ Packet4f y2 = p4f_sincof_p0;
+ y2 = pmadd(y2, z, p4f_sincof_p1);
+ y2 = pmadd(y2, z, p4f_sincof_p2);
+ y2 = pmul(y2, z);
+ y2 = pmul(y2, x);
+ y2 = padd(y2, x);
+
+ /* select the correct result from the two polynoms */
+ y2 = _mm_and_ps(poly_mask, y2);
+ y = _mm_andnot_ps(poly_mask, y);
+ y = _mm_or_ps(y,y2);
+ /* update the sign */
+ return _mm_xor_ps(y, sign_bit);
+}
+
+/* almost the same as psin */
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f pcos<Packet4f>(const Packet4f& _x)
+{
+ Packet4f x = _x;
+ _EIGEN_DECLARE_CONST_Packet4f(1 , 1.0f);
+ _EIGEN_DECLARE_CONST_Packet4f(half, 0.5f);
+
+ _EIGEN_DECLARE_CONST_Packet4i(1, 1);
+ _EIGEN_DECLARE_CONST_Packet4i(not1, ~1);
+ _EIGEN_DECLARE_CONST_Packet4i(2, 2);
+ _EIGEN_DECLARE_CONST_Packet4i(4, 4);
+
+ _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP1,-0.78515625f);
+ _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP2, -2.4187564849853515625e-4f);
+ _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP3, -3.77489497744594108e-8f);
+ _EIGEN_DECLARE_CONST_Packet4f(sincof_p0, -1.9515295891E-4f);
+ _EIGEN_DECLARE_CONST_Packet4f(sincof_p1, 8.3321608736E-3f);
+ _EIGEN_DECLARE_CONST_Packet4f(sincof_p2, -1.6666654611E-1f);
+ _EIGEN_DECLARE_CONST_Packet4f(coscof_p0, 2.443315711809948E-005f);
+ _EIGEN_DECLARE_CONST_Packet4f(coscof_p1, -1.388731625493765E-003f);
+ _EIGEN_DECLARE_CONST_Packet4f(coscof_p2, 4.166664568298827E-002f);
+ _EIGEN_DECLARE_CONST_Packet4f(cephes_FOPI, 1.27323954473516f); // 4 / M_PI
+
+ Packet4f xmm1, xmm2, xmm3, y;
+ Packet4i emm0, emm2;
+
+ x = pabs(x);
+
+ /* scale by 4/Pi */
+ y = pmul(x, p4f_cephes_FOPI);
+
+ /* get the integer part of y */
+ emm2 = _mm_cvttps_epi32(y);
+ /* j=(j+1) & (~1) (see the cephes sources) */
+ emm2 = _mm_add_epi32(emm2, p4i_1);
+ emm2 = _mm_and_si128(emm2, p4i_not1);
+ y = _mm_cvtepi32_ps(emm2);
+
+ emm2 = _mm_sub_epi32(emm2, p4i_2);
+
+ /* get the swap sign flag */
+ emm0 = _mm_andnot_si128(emm2, p4i_4);
+ emm0 = _mm_slli_epi32(emm0, 29);
+ /* get the polynom selection mask */
+ emm2 = _mm_and_si128(emm2, p4i_2);
+ emm2 = _mm_cmpeq_epi32(emm2, _mm_setzero_si128());
+
+ Packet4f sign_bit = _mm_castsi128_ps(emm0);
+ Packet4f poly_mask = _mm_castsi128_ps(emm2);
+
+ /* The magic pass: "Extended precision modular arithmetic"
+ x = ((x - y * DP1) - y * DP2) - y * DP3; */
+ xmm1 = pmul(y, p4f_minus_cephes_DP1);
+ xmm2 = pmul(y, p4f_minus_cephes_DP2);
+ xmm3 = pmul(y, p4f_minus_cephes_DP3);
+ x = padd(x, xmm1);
+ x = padd(x, xmm2);
+ x = padd(x, xmm3);
+
+ /* Evaluate the first polynom (0 <= x <= Pi/4) */
+ y = p4f_coscof_p0;
+ Packet4f z = pmul(x,x);
+
+ y = pmadd(y,z,p4f_coscof_p1);
+ y = pmadd(y,z,p4f_coscof_p2);
+ y = pmul(y, z);
+ y = pmul(y, z);
+ Packet4f tmp = _mm_mul_ps(z, p4f_half);
+ y = psub(y, tmp);
+ y = padd(y, p4f_1);
+
+ /* Evaluate the second polynom (Pi/4 <= x <= 0) */
+ Packet4f y2 = p4f_sincof_p0;
+ y2 = pmadd(y2, z, p4f_sincof_p1);
+ y2 = pmadd(y2, z, p4f_sincof_p2);
+ y2 = pmul(y2, z);
+ y2 = pmadd(y2, x, x);
+
+ /* select the correct result from the two polynoms */
+ y2 = _mm_and_ps(poly_mask, y2);
+ y = _mm_andnot_ps(poly_mask, y);
+ y = _mm_or_ps(y,y2);
+
+ /* update the sign */
+ return _mm_xor_ps(y, sign_bit);
+}
+
+#if EIGEN_FAST_MATH
+
+// Functions for sqrt.
+// The EIGEN_FAST_MATH version uses the _mm_rsqrt_ps approximation and one step
+// of Newton's method, at a cost of 1-2 bits of precision as opposed to the
+// exact solution. It does not handle +inf, or denormalized numbers correctly.
+// The main advantage of this approach is not just speed, but also the fact that
+// it can be inlined and pipelined with other computations, further reducing its
+// effective latency. This is similar to Quake3's fast inverse square root.
+// For detail see here: http://www.beyond3d.com/content/articles/8/
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f psqrt<Packet4f>(const Packet4f& _x)
+{
+ Packet4f half = pmul(_x, pset1<Packet4f>(.5f));
+ Packet4f denormal_mask = _mm_and_ps(
+ _mm_cmpge_ps(_x, _mm_setzero_ps()),
+ _mm_cmplt_ps(_x, pset1<Packet4f>((std::numeric_limits<float>::min)())));
+
+ // Compute approximate reciprocal sqrt.
+ Packet4f x = _mm_rsqrt_ps(_x);
+ // Do a single step of Newton's iteration.
+ x = pmul(x, psub(pset1<Packet4f>(1.5f), pmul(half, pmul(x,x))));
+ // Flush results for denormals to zero.
+ return _mm_andnot_ps(denormal_mask, pmul(_x,x));
+}
+
+#else
+
+template<>EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f psqrt<Packet4f>(const Packet4f& x) { return _mm_sqrt_ps(x); }
+
+#endif
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet2d psqrt<Packet2d>(const Packet2d& x) { return _mm_sqrt_pd(x); }
+
+#if EIGEN_FAST_MATH
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f prsqrt<Packet4f>(const Packet4f& _x) {
+ _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(inf, 0x7f800000);
+ _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(nan, 0x7fc00000);
+ _EIGEN_DECLARE_CONST_Packet4f(one_point_five, 1.5f);
+ _EIGEN_DECLARE_CONST_Packet4f(minus_half, -0.5f);
+ _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(flt_min, 0x00800000);
+
+ Packet4f neg_half = pmul(_x, p4f_minus_half);
+
+ // select only the inverse sqrt of positive normal inputs (denormals are
+ // flushed to zero and cause infs as well).
+ Packet4f le_zero_mask = _mm_cmple_ps(_x, p4f_flt_min);
+ Packet4f x = _mm_andnot_ps(le_zero_mask, _mm_rsqrt_ps(_x));
+
+ // Fill in NaNs and Infs for the negative/zero entries.
+ Packet4f neg_mask = _mm_cmplt_ps(_x, _mm_setzero_ps());
+ Packet4f zero_mask = _mm_andnot_ps(neg_mask, le_zero_mask);
+ Packet4f infs_and_nans = _mm_or_ps(_mm_and_ps(neg_mask, p4f_nan),
+ _mm_and_ps(zero_mask, p4f_inf));
+
+ // Do a single step of Newton's iteration.
+ x = pmul(x, pmadd(neg_half, pmul(x, x), p4f_one_point_five));
+
+ // Insert NaNs and Infs in all the right places.
+ return _mm_or_ps(x, infs_and_nans);
+}
+
+#else
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f prsqrt<Packet4f>(const Packet4f& x) {
+ // Unfortunately we can't use the much faster mm_rqsrt_ps since it only provides an approximation.
+ return _mm_div_ps(pset1<Packet4f>(1.0f), _mm_sqrt_ps(x));
+}
+
+#endif
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet2d prsqrt<Packet2d>(const Packet2d& x) {
+ // Unfortunately we can't use the much faster mm_rqsrt_pd since it only provides an approximation.
+ return _mm_div_pd(pset1<Packet2d>(1.0), _mm_sqrt_pd(x));
+}
+
+// Hyperbolic Tangent function.
+template <>
+EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet4f
+ptanh<Packet4f>(const Packet4f& x) {
+ return internal::generic_fast_tanh_float(x);
+}
+
+} // end namespace internal
+
+namespace numext {
+
+template<>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+float sqrt(const float &x)
+{
+ return internal::pfirst(internal::Packet4f(_mm_sqrt_ss(_mm_set_ss(x))));
+}
+
+template<>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
+double sqrt(const double &x)
+{
+#if EIGEN_COMP_GNUC_STRICT
+ // This works around a GCC bug generating poor code for _mm_sqrt_pd
+ // See https://bitbucket.org/eigen/eigen/commits/14f468dba4d350d7c19c9b93072e19f7b3df563b
+ return internal::pfirst(internal::Packet2d(__builtin_ia32_sqrtsd(_mm_set_sd(x))));
+#else
+ return internal::pfirst(internal::Packet2d(_mm_sqrt_pd(_mm_set_sd(x))));
+#endif
+}
+
+} // end namespace numex
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATH_FUNCTIONS_SSE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/SSE/PacketMath.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/SSE/PacketMath.h
new file mode 100755
index 000000000..3832de147
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/SSE/PacketMath.h
@@ -0,0 +1,879 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PACKET_MATH_SSE_H
+#define EIGEN_PACKET_MATH_SSE_H
+
+namespace Eigen {
+
+namespace internal {
+
+#ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
+#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 8
+#endif
+
+#ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS
+#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS (2*sizeof(void*))
+#endif
+
+#ifdef __FMA__
+#ifndef EIGEN_HAS_SINGLE_INSTRUCTION_MADD
+#define EIGEN_HAS_SINGLE_INSTRUCTION_MADD 1
+#endif
+#endif
+
+#if (defined EIGEN_VECTORIZE_AVX) && (EIGEN_COMP_GNUC_STRICT || EIGEN_COMP_MINGW) && (__GXX_ABI_VERSION < 1004)
+// With GCC's default ABI version, a __m128 or __m256 are the same types and therefore we cannot
+// have overloads for both types without linking error.
+// One solution is to increase ABI version using -fabi-version=4 (or greater).
+// Otherwise, we workaround this inconvenience by wrapping 128bit types into the following helper
+// structure:
+template<typename T>
+struct eigen_packet_wrapper
+{
+ EIGEN_ALWAYS_INLINE operator T&() { return m_val; }
+ EIGEN_ALWAYS_INLINE operator const T&() const { return m_val; }
+ EIGEN_ALWAYS_INLINE eigen_packet_wrapper() {}
+ EIGEN_ALWAYS_INLINE eigen_packet_wrapper(const T &v) : m_val(v) {}
+ EIGEN_ALWAYS_INLINE eigen_packet_wrapper& operator=(const T &v) {
+ m_val = v;
+ return *this;
+ }
+
+ T m_val;
+};
+typedef eigen_packet_wrapper<__m128> Packet4f;
+typedef eigen_packet_wrapper<__m128i> Packet4i;
+typedef eigen_packet_wrapper<__m128d> Packet2d;
+#else
+typedef __m128 Packet4f;
+typedef __m128i Packet4i;
+typedef __m128d Packet2d;
+#endif
+
+template<> struct is_arithmetic<__m128> { enum { value = true }; };
+template<> struct is_arithmetic<__m128i> { enum { value = true }; };
+template<> struct is_arithmetic<__m128d> { enum { value = true }; };
+
+#define vec4f_swizzle1(v,p,q,r,s) \
+ (_mm_castsi128_ps(_mm_shuffle_epi32( _mm_castps_si128(v), ((s)<<6|(r)<<4|(q)<<2|(p)))))
+
+#define vec4i_swizzle1(v,p,q,r,s) \
+ (_mm_shuffle_epi32( v, ((s)<<6|(r)<<4|(q)<<2|(p))))
+
+#define vec2d_swizzle1(v,p,q) \
+ (_mm_castsi128_pd(_mm_shuffle_epi32( _mm_castpd_si128(v), ((q*2+1)<<6|(q*2)<<4|(p*2+1)<<2|(p*2)))))
+
+#define vec4f_swizzle2(a,b,p,q,r,s) \
+ (_mm_shuffle_ps( (a), (b), ((s)<<6|(r)<<4|(q)<<2|(p))))
+
+#define vec4i_swizzle2(a,b,p,q,r,s) \
+ (_mm_castps_si128( (_mm_shuffle_ps( _mm_castsi128_ps(a), _mm_castsi128_ps(b), ((s)<<6|(r)<<4|(q)<<2|(p))))))
+
+#define _EIGEN_DECLARE_CONST_Packet4f(NAME,X) \
+ const Packet4f p4f_##NAME = pset1<Packet4f>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet2d(NAME,X) \
+ const Packet2d p2d_##NAME = pset1<Packet2d>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(NAME,X) \
+ const Packet4f p4f_##NAME = _mm_castsi128_ps(pset1<Packet4i>(X))
+
+#define _EIGEN_DECLARE_CONST_Packet4i(NAME,X) \
+ const Packet4i p4i_##NAME = pset1<Packet4i>(X)
+
+
+// Use the packet_traits defined in AVX/PacketMath.h instead if we're going
+// to leverage AVX instructions.
+#ifndef EIGEN_VECTORIZE_AVX
+template<> struct packet_traits<float> : default_packet_traits
+{
+ typedef Packet4f type;
+ typedef Packet4f half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size=4,
+ HasHalfPacket = 0,
+
+ HasDiv = 1,
+ HasSin = EIGEN_FAST_MATH,
+ HasCos = EIGEN_FAST_MATH,
+ HasLog = 1,
+ HasExp = 1,
+ HasSqrt = 1,
+ HasRsqrt = 1,
+ HasTanh = EIGEN_FAST_MATH,
+ HasBlend = 1
+
+#ifdef EIGEN_VECTORIZE_SSE4_1
+ ,
+ HasRound = 1,
+ HasFloor = 1,
+ HasCeil = 1
+#endif
+ };
+};
+template<> struct packet_traits<double> : default_packet_traits
+{
+ typedef Packet2d type;
+ typedef Packet2d half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size=2,
+ HasHalfPacket = 0,
+
+ HasDiv = 1,
+ HasExp = 1,
+ HasSqrt = 1,
+ HasRsqrt = 1,
+ HasBlend = 1
+
+#ifdef EIGEN_VECTORIZE_SSE4_1
+ ,
+ HasRound = 1,
+ HasFloor = 1,
+ HasCeil = 1
+#endif
+ };
+};
+#endif
+template<> struct packet_traits<int> : default_packet_traits
+{
+ typedef Packet4i type;
+ typedef Packet4i half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size=4,
+
+ HasBlend = 1
+ };
+};
+
+template<> struct unpacket_traits<Packet4f> { typedef float type; enum {size=4, alignment=Aligned16}; typedef Packet4f half; };
+template<> struct unpacket_traits<Packet2d> { typedef double type; enum {size=2, alignment=Aligned16}; typedef Packet2d half; };
+template<> struct unpacket_traits<Packet4i> { typedef int type; enum {size=4, alignment=Aligned16}; typedef Packet4i half; };
+
+#ifndef EIGEN_VECTORIZE_AVX
+template<> struct scalar_div_cost<float,true> { enum { value = 7 }; };
+template<> struct scalar_div_cost<double,true> { enum { value = 8 }; };
+#endif
+
+#if EIGEN_COMP_MSVC==1500
+// Workaround MSVC 9 internal compiler error.
+// TODO: It has been detected with win64 builds (amd64), so let's check whether it also happens in 32bits+SSE mode
+// TODO: let's check whether there does not exist a better fix, like adding a pset0() function. (it crashed on pset1(0)).
+template<> EIGEN_STRONG_INLINE Packet4f pset1<Packet4f>(const float& from) { return _mm_set_ps(from,from,from,from); }
+template<> EIGEN_STRONG_INLINE Packet2d pset1<Packet2d>(const double& from) { return _mm_set_pd(from,from); }
+template<> EIGEN_STRONG_INLINE Packet4i pset1<Packet4i>(const int& from) { return _mm_set_epi32(from,from,from,from); }
+#else
+template<> EIGEN_STRONG_INLINE Packet4f pset1<Packet4f>(const float& from) { return _mm_set_ps1(from); }
+template<> EIGEN_STRONG_INLINE Packet2d pset1<Packet2d>(const double& from) { return _mm_set1_pd(from); }
+template<> EIGEN_STRONG_INLINE Packet4i pset1<Packet4i>(const int& from) { return _mm_set1_epi32(from); }
+#endif
+
+// GCC generates a shufps instruction for _mm_set1_ps/_mm_load1_ps instead of the more efficient pshufd instruction.
+// However, using inrinsics for pset1 makes gcc to generate crappy code in some cases (see bug 203)
+// Using inline assembly is also not an option because then gcc fails to reorder properly the instructions.
+// Therefore, we introduced the pload1 functions to be used in product kernels for which bug 203 does not apply.
+// Also note that with AVX, we want it to generate a vbroadcastss.
+#if EIGEN_COMP_GNUC_STRICT && (!defined __AVX__)
+template<> EIGEN_STRONG_INLINE Packet4f pload1<Packet4f>(const float *from) {
+ return vec4f_swizzle1(_mm_load_ss(from),0,0,0,0);
+}
+#endif
+
+template<> EIGEN_STRONG_INLINE Packet4f plset<Packet4f>(const float& a) { return _mm_add_ps(pset1<Packet4f>(a), _mm_set_ps(3,2,1,0)); }
+template<> EIGEN_STRONG_INLINE Packet2d plset<Packet2d>(const double& a) { return _mm_add_pd(pset1<Packet2d>(a),_mm_set_pd(1,0)); }
+template<> EIGEN_STRONG_INLINE Packet4i plset<Packet4i>(const int& a) { return _mm_add_epi32(pset1<Packet4i>(a),_mm_set_epi32(3,2,1,0)); }
+
+template<> EIGEN_STRONG_INLINE Packet4f padd<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_add_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d padd<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_add_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i padd<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_add_epi32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f psub<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_sub_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d psub<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_sub_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i psub<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_sub_epi32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pnegate(const Packet4f& a)
+{
+ const Packet4f mask = _mm_castsi128_ps(_mm_setr_epi32(0x80000000,0x80000000,0x80000000,0x80000000));
+ return _mm_xor_ps(a,mask);
+}
+template<> EIGEN_STRONG_INLINE Packet2d pnegate(const Packet2d& a)
+{
+ const Packet2d mask = _mm_castsi128_pd(_mm_setr_epi32(0x0,0x80000000,0x0,0x80000000));
+ return _mm_xor_pd(a,mask);
+}
+template<> EIGEN_STRONG_INLINE Packet4i pnegate(const Packet4i& a)
+{
+ return psub(Packet4i(_mm_setr_epi32(0,0,0,0)), a);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f pconj(const Packet4f& a) { return a; }
+template<> EIGEN_STRONG_INLINE Packet2d pconj(const Packet2d& a) { return a; }
+template<> EIGEN_STRONG_INLINE Packet4i pconj(const Packet4i& a) { return a; }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmul<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_mul_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pmul<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_mul_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmul<Packet4i>(const Packet4i& a, const Packet4i& b)
+{
+#ifdef EIGEN_VECTORIZE_SSE4_1
+ return _mm_mullo_epi32(a,b);
+#else
+ // this version is slightly faster than 4 scalar products
+ return vec4i_swizzle1(
+ vec4i_swizzle2(
+ _mm_mul_epu32(a,b),
+ _mm_mul_epu32(vec4i_swizzle1(a,1,0,3,2),
+ vec4i_swizzle1(b,1,0,3,2)),
+ 0,2,0,2),
+ 0,2,1,3);
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f pdiv<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_div_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pdiv<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_div_pd(a,b); }
+
+// for some weird raisons, it has to be overloaded for packet of integers
+template<> EIGEN_STRONG_INLINE Packet4i pmadd(const Packet4i& a, const Packet4i& b, const Packet4i& c) { return padd(pmul(a,b), c); }
+#ifdef __FMA__
+template<> EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f& a, const Packet4f& b, const Packet4f& c) { return _mm_fmadd_ps(a,b,c); }
+template<> EIGEN_STRONG_INLINE Packet2d pmadd(const Packet2d& a, const Packet2d& b, const Packet2d& c) { return _mm_fmadd_pd(a,b,c); }
+#endif
+
+template<> EIGEN_STRONG_INLINE Packet4f pmin<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_min_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pmin<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_min_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmin<Packet4i>(const Packet4i& a, const Packet4i& b)
+{
+#ifdef EIGEN_VECTORIZE_SSE4_1
+ return _mm_min_epi32(a,b);
+#else
+ // after some bench, this version *is* faster than a scalar implementation
+ Packet4i mask = _mm_cmplt_epi32(a,b);
+ return _mm_or_si128(_mm_and_si128(mask,a),_mm_andnot_si128(mask,b));
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f pmax<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_max_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pmax<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_max_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmax<Packet4i>(const Packet4i& a, const Packet4i& b)
+{
+#ifdef EIGEN_VECTORIZE_SSE4_1
+ return _mm_max_epi32(a,b);
+#else
+ // after some bench, this version *is* faster than a scalar implementation
+ Packet4i mask = _mm_cmpgt_epi32(a,b);
+ return _mm_or_si128(_mm_and_si128(mask,a),_mm_andnot_si128(mask,b));
+#endif
+}
+
+#ifdef EIGEN_VECTORIZE_SSE4_1
+template<> EIGEN_STRONG_INLINE Packet4f pround<Packet4f>(const Packet4f& a) { return _mm_round_ps(a, 0); }
+template<> EIGEN_STRONG_INLINE Packet2d pround<Packet2d>(const Packet2d& a) { return _mm_round_pd(a, 0); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pceil<Packet4f>(const Packet4f& a) { return _mm_ceil_ps(a); }
+template<> EIGEN_STRONG_INLINE Packet2d pceil<Packet2d>(const Packet2d& a) { return _mm_ceil_pd(a); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pfloor<Packet4f>(const Packet4f& a) { return _mm_floor_ps(a); }
+template<> EIGEN_STRONG_INLINE Packet2d pfloor<Packet2d>(const Packet2d& a) { return _mm_floor_pd(a); }
+#endif
+
+template<> EIGEN_STRONG_INLINE Packet4f pand<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_and_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pand<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_and_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pand<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_and_si128(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f por<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_or_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d por<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_or_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i por<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_or_si128(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pxor<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_xor_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pxor<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_xor_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pxor<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_xor_si128(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pandnot<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_andnot_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pandnot<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_andnot_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pandnot<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_andnot_si128(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pload<Packet4f>(const float* from) { EIGEN_DEBUG_ALIGNED_LOAD return _mm_load_ps(from); }
+template<> EIGEN_STRONG_INLINE Packet2d pload<Packet2d>(const double* from) { EIGEN_DEBUG_ALIGNED_LOAD return _mm_load_pd(from); }
+template<> EIGEN_STRONG_INLINE Packet4i pload<Packet4i>(const int* from) { EIGEN_DEBUG_ALIGNED_LOAD return _mm_load_si128(reinterpret_cast<const __m128i*>(from)); }
+
+#if EIGEN_COMP_MSVC
+ template<> EIGEN_STRONG_INLINE Packet4f ploadu<Packet4f>(const float* from) {
+ EIGEN_DEBUG_UNALIGNED_LOAD
+ #if (EIGEN_COMP_MSVC==1600)
+ // NOTE Some version of MSVC10 generates bad code when using _mm_loadu_ps
+ // (i.e., it does not generate an unaligned load!!
+ __m128 res = _mm_loadl_pi(_mm_set1_ps(0.0f), (const __m64*)(from));
+ res = _mm_loadh_pi(res, (const __m64*)(from+2));
+ return res;
+ #else
+ return _mm_loadu_ps(from);
+ #endif
+ }
+#else
+// NOTE: with the code below, MSVC's compiler crashes!
+
+template<> EIGEN_STRONG_INLINE Packet4f ploadu<Packet4f>(const float* from)
+{
+ EIGEN_DEBUG_UNALIGNED_LOAD
+ return _mm_loadu_ps(from);
+}
+#endif
+
+template<> EIGEN_STRONG_INLINE Packet2d ploadu<Packet2d>(const double* from)
+{
+ EIGEN_DEBUG_UNALIGNED_LOAD
+ return _mm_loadu_pd(from);
+}
+template<> EIGEN_STRONG_INLINE Packet4i ploadu<Packet4i>(const int* from)
+{
+ EIGEN_DEBUG_UNALIGNED_LOAD
+ return _mm_loadu_si128(reinterpret_cast<const __m128i*>(from));
+}
+
+
+template<> EIGEN_STRONG_INLINE Packet4f ploaddup<Packet4f>(const float* from)
+{
+ return vec4f_swizzle1(_mm_castpd_ps(_mm_load_sd(reinterpret_cast<const double*>(from))), 0, 0, 1, 1);
+}
+template<> EIGEN_STRONG_INLINE Packet2d ploaddup<Packet2d>(const double* from)
+{ return pset1<Packet2d>(from[0]); }
+template<> EIGEN_STRONG_INLINE Packet4i ploaddup<Packet4i>(const int* from)
+{
+ Packet4i tmp;
+ tmp = _mm_loadl_epi64(reinterpret_cast<const __m128i*>(from));
+ return vec4i_swizzle1(tmp, 0, 0, 1, 1);
+}
+
+template<> EIGEN_STRONG_INLINE void pstore<float>(float* to, const Packet4f& from) { EIGEN_DEBUG_ALIGNED_STORE _mm_store_ps(to, from); }
+template<> EIGEN_STRONG_INLINE void pstore<double>(double* to, const Packet2d& from) { EIGEN_DEBUG_ALIGNED_STORE _mm_store_pd(to, from); }
+template<> EIGEN_STRONG_INLINE void pstore<int>(int* to, const Packet4i& from) { EIGEN_DEBUG_ALIGNED_STORE _mm_store_si128(reinterpret_cast<__m128i*>(to), from); }
+
+template<> EIGEN_STRONG_INLINE void pstoreu<double>(double* to, const Packet2d& from) { EIGEN_DEBUG_UNALIGNED_STORE _mm_storeu_pd(to, from); }
+template<> EIGEN_STRONG_INLINE void pstoreu<float>(float* to, const Packet4f& from) { EIGEN_DEBUG_UNALIGNED_STORE _mm_storeu_ps(to, from); }
+template<> EIGEN_STRONG_INLINE void pstoreu<int>(int* to, const Packet4i& from) { EIGEN_DEBUG_UNALIGNED_STORE _mm_storeu_si128(reinterpret_cast<__m128i*>(to), from); }
+
+template<> EIGEN_DEVICE_FUNC inline Packet4f pgather<float, Packet4f>(const float* from, Index stride)
+{
+ return _mm_set_ps(from[3*stride], from[2*stride], from[1*stride], from[0*stride]);
+}
+template<> EIGEN_DEVICE_FUNC inline Packet2d pgather<double, Packet2d>(const double* from, Index stride)
+{
+ return _mm_set_pd(from[1*stride], from[0*stride]);
+}
+template<> EIGEN_DEVICE_FUNC inline Packet4i pgather<int, Packet4i>(const int* from, Index stride)
+{
+ return _mm_set_epi32(from[3*stride], from[2*stride], from[1*stride], from[0*stride]);
+ }
+
+template<> EIGEN_DEVICE_FUNC inline void pscatter<float, Packet4f>(float* to, const Packet4f& from, Index stride)
+{
+ to[stride*0] = _mm_cvtss_f32(from);
+ to[stride*1] = _mm_cvtss_f32(_mm_shuffle_ps(from, from, 1));
+ to[stride*2] = _mm_cvtss_f32(_mm_shuffle_ps(from, from, 2));
+ to[stride*3] = _mm_cvtss_f32(_mm_shuffle_ps(from, from, 3));
+}
+template<> EIGEN_DEVICE_FUNC inline void pscatter<double, Packet2d>(double* to, const Packet2d& from, Index stride)
+{
+ to[stride*0] = _mm_cvtsd_f64(from);
+ to[stride*1] = _mm_cvtsd_f64(_mm_shuffle_pd(from, from, 1));
+}
+template<> EIGEN_DEVICE_FUNC inline void pscatter<int, Packet4i>(int* to, const Packet4i& from, Index stride)
+{
+ to[stride*0] = _mm_cvtsi128_si32(from);
+ to[stride*1] = _mm_cvtsi128_si32(_mm_shuffle_epi32(from, 1));
+ to[stride*2] = _mm_cvtsi128_si32(_mm_shuffle_epi32(from, 2));
+ to[stride*3] = _mm_cvtsi128_si32(_mm_shuffle_epi32(from, 3));
+}
+
+// some compilers might be tempted to perform multiple moves instead of using a vector path.
+template<> EIGEN_STRONG_INLINE void pstore1<Packet4f>(float* to, const float& a)
+{
+ Packet4f pa = _mm_set_ss(a);
+ pstore(to, Packet4f(vec4f_swizzle1(pa,0,0,0,0)));
+}
+// some compilers might be tempted to perform multiple moves instead of using a vector path.
+template<> EIGEN_STRONG_INLINE void pstore1<Packet2d>(double* to, const double& a)
+{
+ Packet2d pa = _mm_set_sd(a);
+ pstore(to, Packet2d(vec2d_swizzle1(pa,0,0)));
+}
+
+#ifndef EIGEN_VECTORIZE_AVX
+template<> EIGEN_STRONG_INLINE void prefetch<float>(const float* addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+template<> EIGEN_STRONG_INLINE void prefetch<double>(const double* addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+template<> EIGEN_STRONG_INLINE void prefetch<int>(const int* addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+#endif
+
+#if EIGEN_COMP_MSVC_STRICT && EIGEN_OS_WIN64
+// The temporary variable fixes an internal compilation error in vs <= 2008 and a wrong-result bug in vs 2010
+// Direct of the struct members fixed bug #62.
+template<> EIGEN_STRONG_INLINE float pfirst<Packet4f>(const Packet4f& a) { return a.m128_f32[0]; }
+template<> EIGEN_STRONG_INLINE double pfirst<Packet2d>(const Packet2d& a) { return a.m128d_f64[0]; }
+template<> EIGEN_STRONG_INLINE int pfirst<Packet4i>(const Packet4i& a) { int x = _mm_cvtsi128_si32(a); return x; }
+#elif EIGEN_COMP_MSVC_STRICT
+// The temporary variable fixes an internal compilation error in vs <= 2008 and a wrong-result bug in vs 2010
+template<> EIGEN_STRONG_INLINE float pfirst<Packet4f>(const Packet4f& a) { float x = _mm_cvtss_f32(a); return x; }
+template<> EIGEN_STRONG_INLINE double pfirst<Packet2d>(const Packet2d& a) { double x = _mm_cvtsd_f64(a); return x; }
+template<> EIGEN_STRONG_INLINE int pfirst<Packet4i>(const Packet4i& a) { int x = _mm_cvtsi128_si32(a); return x; }
+#else
+template<> EIGEN_STRONG_INLINE float pfirst<Packet4f>(const Packet4f& a) { return _mm_cvtss_f32(a); }
+template<> EIGEN_STRONG_INLINE double pfirst<Packet2d>(const Packet2d& a) { return _mm_cvtsd_f64(a); }
+template<> EIGEN_STRONG_INLINE int pfirst<Packet4i>(const Packet4i& a) { return _mm_cvtsi128_si32(a); }
+#endif
+
+template<> EIGEN_STRONG_INLINE Packet4f preverse(const Packet4f& a)
+{ return _mm_shuffle_ps(a,a,0x1B); }
+template<> EIGEN_STRONG_INLINE Packet2d preverse(const Packet2d& a)
+{ return _mm_shuffle_pd(a,a,0x1); }
+template<> EIGEN_STRONG_INLINE Packet4i preverse(const Packet4i& a)
+{ return _mm_shuffle_epi32(a,0x1B); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pabs(const Packet4f& a)
+{
+ const Packet4f mask = _mm_castsi128_ps(_mm_setr_epi32(0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF));
+ return _mm_and_ps(a,mask);
+}
+template<> EIGEN_STRONG_INLINE Packet2d pabs(const Packet2d& a)
+{
+ const Packet2d mask = _mm_castsi128_pd(_mm_setr_epi32(0xFFFFFFFF,0x7FFFFFFF,0xFFFFFFFF,0x7FFFFFFF));
+ return _mm_and_pd(a,mask);
+}
+template<> EIGEN_STRONG_INLINE Packet4i pabs(const Packet4i& a)
+{
+ #ifdef EIGEN_VECTORIZE_SSSE3
+ return _mm_abs_epi32(a);
+ #else
+ Packet4i aux = _mm_srai_epi32(a,31);
+ return _mm_sub_epi32(_mm_xor_si128(a,aux),aux);
+ #endif
+}
+
+// with AVX, the default implementations based on pload1 are faster
+#ifndef __AVX__
+template<> EIGEN_STRONG_INLINE void
+pbroadcast4<Packet4f>(const float *a,
+ Packet4f& a0, Packet4f& a1, Packet4f& a2, Packet4f& a3)
+{
+ a3 = pload<Packet4f>(a);
+ a0 = vec4f_swizzle1(a3, 0,0,0,0);
+ a1 = vec4f_swizzle1(a3, 1,1,1,1);
+ a2 = vec4f_swizzle1(a3, 2,2,2,2);
+ a3 = vec4f_swizzle1(a3, 3,3,3,3);
+}
+template<> EIGEN_STRONG_INLINE void
+pbroadcast4<Packet2d>(const double *a,
+ Packet2d& a0, Packet2d& a1, Packet2d& a2, Packet2d& a3)
+{
+#ifdef EIGEN_VECTORIZE_SSE3
+ a0 = _mm_loaddup_pd(a+0);
+ a1 = _mm_loaddup_pd(a+1);
+ a2 = _mm_loaddup_pd(a+2);
+ a3 = _mm_loaddup_pd(a+3);
+#else
+ a1 = pload<Packet2d>(a);
+ a0 = vec2d_swizzle1(a1, 0,0);
+ a1 = vec2d_swizzle1(a1, 1,1);
+ a3 = pload<Packet2d>(a+2);
+ a2 = vec2d_swizzle1(a3, 0,0);
+ a3 = vec2d_swizzle1(a3, 1,1);
+#endif
+}
+#endif
+
+EIGEN_STRONG_INLINE void punpackp(Packet4f* vecs)
+{
+ vecs[1] = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(vecs[0]), 0x55));
+ vecs[2] = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(vecs[0]), 0xAA));
+ vecs[3] = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(vecs[0]), 0xFF));
+ vecs[0] = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(vecs[0]), 0x00));
+}
+
+#ifdef EIGEN_VECTORIZE_SSE3
+template<> EIGEN_STRONG_INLINE Packet4f preduxp<Packet4f>(const Packet4f* vecs)
+{
+ return _mm_hadd_ps(_mm_hadd_ps(vecs[0], vecs[1]),_mm_hadd_ps(vecs[2], vecs[3]));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d preduxp<Packet2d>(const Packet2d* vecs)
+{
+ return _mm_hadd_pd(vecs[0], vecs[1]);
+}
+
+#else
+template<> EIGEN_STRONG_INLINE Packet4f preduxp<Packet4f>(const Packet4f* vecs)
+{
+ Packet4f tmp0, tmp1, tmp2;
+ tmp0 = _mm_unpacklo_ps(vecs[0], vecs[1]);
+ tmp1 = _mm_unpackhi_ps(vecs[0], vecs[1]);
+ tmp2 = _mm_unpackhi_ps(vecs[2], vecs[3]);
+ tmp0 = _mm_add_ps(tmp0, tmp1);
+ tmp1 = _mm_unpacklo_ps(vecs[2], vecs[3]);
+ tmp1 = _mm_add_ps(tmp1, tmp2);
+ tmp2 = _mm_movehl_ps(tmp1, tmp0);
+ tmp0 = _mm_movelh_ps(tmp0, tmp1);
+ return _mm_add_ps(tmp0, tmp2);
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d preduxp<Packet2d>(const Packet2d* vecs)
+{
+ return _mm_add_pd(_mm_unpacklo_pd(vecs[0], vecs[1]), _mm_unpackhi_pd(vecs[0], vecs[1]));
+}
+#endif // SSE3
+
+template<> EIGEN_STRONG_INLINE float predux<Packet4f>(const Packet4f& a)
+{
+ // Disable SSE3 _mm_hadd_pd that is extremely slow on all existing Intel's architectures
+ // (from Nehalem to Haswell)
+// #ifdef EIGEN_VECTORIZE_SSE3
+// Packet4f tmp = _mm_add_ps(a, vec4f_swizzle1(a,2,3,2,3));
+// return pfirst<Packet4f>(_mm_hadd_ps(tmp, tmp));
+// #else
+ Packet4f tmp = _mm_add_ps(a, _mm_movehl_ps(a,a));
+ return pfirst<Packet4f>(_mm_add_ss(tmp, _mm_shuffle_ps(tmp,tmp, 1)));
+// #endif
+}
+
+template<> EIGEN_STRONG_INLINE double predux<Packet2d>(const Packet2d& a)
+{
+ // Disable SSE3 _mm_hadd_pd that is extremely slow on all existing Intel's architectures
+ // (from Nehalem to Haswell)
+// #ifdef EIGEN_VECTORIZE_SSE3
+// return pfirst<Packet2d>(_mm_hadd_pd(a, a));
+// #else
+ return pfirst<Packet2d>(_mm_add_sd(a, _mm_unpackhi_pd(a,a)));
+// #endif
+}
+
+#ifdef EIGEN_VECTORIZE_SSSE3
+template<> EIGEN_STRONG_INLINE Packet4i preduxp<Packet4i>(const Packet4i* vecs)
+{
+ return _mm_hadd_epi32(_mm_hadd_epi32(vecs[0], vecs[1]),_mm_hadd_epi32(vecs[2], vecs[3]));
+}
+template<> EIGEN_STRONG_INLINE int predux<Packet4i>(const Packet4i& a)
+{
+ Packet4i tmp0 = _mm_hadd_epi32(a,a);
+ return pfirst<Packet4i>(_mm_hadd_epi32(tmp0,tmp0));
+}
+#else
+template<> EIGEN_STRONG_INLINE int predux<Packet4i>(const Packet4i& a)
+{
+ Packet4i tmp = _mm_add_epi32(a, _mm_unpackhi_epi64(a,a));
+ return pfirst(tmp) + pfirst<Packet4i>(_mm_shuffle_epi32(tmp, 1));
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i preduxp<Packet4i>(const Packet4i* vecs)
+{
+ Packet4i tmp0, tmp1, tmp2;
+ tmp0 = _mm_unpacklo_epi32(vecs[0], vecs[1]);
+ tmp1 = _mm_unpackhi_epi32(vecs[0], vecs[1]);
+ tmp2 = _mm_unpackhi_epi32(vecs[2], vecs[3]);
+ tmp0 = _mm_add_epi32(tmp0, tmp1);
+ tmp1 = _mm_unpacklo_epi32(vecs[2], vecs[3]);
+ tmp1 = _mm_add_epi32(tmp1, tmp2);
+ tmp2 = _mm_unpacklo_epi64(tmp0, tmp1);
+ tmp0 = _mm_unpackhi_epi64(tmp0, tmp1);
+ return _mm_add_epi32(tmp0, tmp2);
+}
+#endif
+// Other reduction functions:
+
+// mul
+template<> EIGEN_STRONG_INLINE float predux_mul<Packet4f>(const Packet4f& a)
+{
+ Packet4f tmp = _mm_mul_ps(a, _mm_movehl_ps(a,a));
+ return pfirst<Packet4f>(_mm_mul_ss(tmp, _mm_shuffle_ps(tmp,tmp, 1)));
+}
+template<> EIGEN_STRONG_INLINE double predux_mul<Packet2d>(const Packet2d& a)
+{
+ return pfirst<Packet2d>(_mm_mul_sd(a, _mm_unpackhi_pd(a,a)));
+}
+template<> EIGEN_STRONG_INLINE int predux_mul<Packet4i>(const Packet4i& a)
+{
+ // after some experiments, it is seems this is the fastest way to implement it
+ // for GCC (eg., reusing pmul is very slow !)
+ // TODO try to call _mm_mul_epu32 directly
+ EIGEN_ALIGN16 int aux[4];
+ pstore(aux, a);
+ return (aux[0] * aux[1]) * (aux[2] * aux[3]);;
+}
+
+// min
+template<> EIGEN_STRONG_INLINE float predux_min<Packet4f>(const Packet4f& a)
+{
+ Packet4f tmp = _mm_min_ps(a, _mm_movehl_ps(a,a));
+ return pfirst<Packet4f>(_mm_min_ss(tmp, _mm_shuffle_ps(tmp,tmp, 1)));
+}
+template<> EIGEN_STRONG_INLINE double predux_min<Packet2d>(const Packet2d& a)
+{
+ return pfirst<Packet2d>(_mm_min_sd(a, _mm_unpackhi_pd(a,a)));
+}
+template<> EIGEN_STRONG_INLINE int predux_min<Packet4i>(const Packet4i& a)
+{
+#ifdef EIGEN_VECTORIZE_SSE4_1
+ Packet4i tmp = _mm_min_epi32(a, _mm_shuffle_epi32(a, _MM_SHUFFLE(0,0,3,2)));
+ return pfirst<Packet4i>(_mm_min_epi32(tmp,_mm_shuffle_epi32(tmp, 1)));
+#else
+ // after some experiments, it is seems this is the fastest way to implement it
+ // for GCC (eg., it does not like using std::min after the pstore !!)
+ EIGEN_ALIGN16 int aux[4];
+ pstore(aux, a);
+ int aux0 = aux[0]<aux[1] ? aux[0] : aux[1];
+ int aux2 = aux[2]<aux[3] ? aux[2] : aux[3];
+ return aux0<aux2 ? aux0 : aux2;
+#endif // EIGEN_VECTORIZE_SSE4_1
+}
+
+// max
+template<> EIGEN_STRONG_INLINE float predux_max<Packet4f>(const Packet4f& a)
+{
+ Packet4f tmp = _mm_max_ps(a, _mm_movehl_ps(a,a));
+ return pfirst<Packet4f>(_mm_max_ss(tmp, _mm_shuffle_ps(tmp,tmp, 1)));
+}
+template<> EIGEN_STRONG_INLINE double predux_max<Packet2d>(const Packet2d& a)
+{
+ return pfirst<Packet2d>(_mm_max_sd(a, _mm_unpackhi_pd(a,a)));
+}
+template<> EIGEN_STRONG_INLINE int predux_max<Packet4i>(const Packet4i& a)
+{
+#ifdef EIGEN_VECTORIZE_SSE4_1
+ Packet4i tmp = _mm_max_epi32(a, _mm_shuffle_epi32(a, _MM_SHUFFLE(0,0,3,2)));
+ return pfirst<Packet4i>(_mm_max_epi32(tmp,_mm_shuffle_epi32(tmp, 1)));
+#else
+ // after some experiments, it is seems this is the fastest way to implement it
+ // for GCC (eg., it does not like using std::min after the pstore !!)
+ EIGEN_ALIGN16 int aux[4];
+ pstore(aux, a);
+ int aux0 = aux[0]>aux[1] ? aux[0] : aux[1];
+ int aux2 = aux[2]>aux[3] ? aux[2] : aux[3];
+ return aux0>aux2 ? aux0 : aux2;
+#endif // EIGEN_VECTORIZE_SSE4_1
+}
+
+#if EIGEN_COMP_GNUC
+// template <> EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f& a, const Packet4f& b, const Packet4f& c)
+// {
+// Packet4f res = b;
+// asm("mulps %[a], %[b] \n\taddps %[c], %[b]" : [b] "+x" (res) : [a] "x" (a), [c] "x" (c));
+// return res;
+// }
+// EIGEN_STRONG_INLINE Packet4i _mm_alignr_epi8(const Packet4i& a, const Packet4i& b, const int i)
+// {
+// Packet4i res = a;
+// asm("palignr %[i], %[a], %[b] " : [b] "+x" (res) : [a] "x" (a), [i] "i" (i));
+// return res;
+// }
+#endif
+
+#ifdef EIGEN_VECTORIZE_SSSE3
+// SSSE3 versions
+template<int Offset>
+struct palign_impl<Offset,Packet4f>
+{
+ static EIGEN_STRONG_INLINE void run(Packet4f& first, const Packet4f& second)
+ {
+ if (Offset!=0)
+ first = _mm_castsi128_ps(_mm_alignr_epi8(_mm_castps_si128(second), _mm_castps_si128(first), Offset*4));
+ }
+};
+
+template<int Offset>
+struct palign_impl<Offset,Packet4i>
+{
+ static EIGEN_STRONG_INLINE void run(Packet4i& first, const Packet4i& second)
+ {
+ if (Offset!=0)
+ first = _mm_alignr_epi8(second,first, Offset*4);
+ }
+};
+
+template<int Offset>
+struct palign_impl<Offset,Packet2d>
+{
+ static EIGEN_STRONG_INLINE void run(Packet2d& first, const Packet2d& second)
+ {
+ if (Offset==1)
+ first = _mm_castsi128_pd(_mm_alignr_epi8(_mm_castpd_si128(second), _mm_castpd_si128(first), 8));
+ }
+};
+#else
+// SSE2 versions
+template<int Offset>
+struct palign_impl<Offset,Packet4f>
+{
+ static EIGEN_STRONG_INLINE void run(Packet4f& first, const Packet4f& second)
+ {
+ if (Offset==1)
+ {
+ first = _mm_move_ss(first,second);
+ first = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(first),0x39));
+ }
+ else if (Offset==2)
+ {
+ first = _mm_movehl_ps(first,first);
+ first = _mm_movelh_ps(first,second);
+ }
+ else if (Offset==3)
+ {
+ first = _mm_move_ss(first,second);
+ first = _mm_shuffle_ps(first,second,0x93);
+ }
+ }
+};
+
+template<int Offset>
+struct palign_impl<Offset,Packet4i>
+{
+ static EIGEN_STRONG_INLINE void run(Packet4i& first, const Packet4i& second)
+ {
+ if (Offset==1)
+ {
+ first = _mm_castps_si128(_mm_move_ss(_mm_castsi128_ps(first),_mm_castsi128_ps(second)));
+ first = _mm_shuffle_epi32(first,0x39);
+ }
+ else if (Offset==2)
+ {
+ first = _mm_castps_si128(_mm_movehl_ps(_mm_castsi128_ps(first),_mm_castsi128_ps(first)));
+ first = _mm_castps_si128(_mm_movelh_ps(_mm_castsi128_ps(first),_mm_castsi128_ps(second)));
+ }
+ else if (Offset==3)
+ {
+ first = _mm_castps_si128(_mm_move_ss(_mm_castsi128_ps(first),_mm_castsi128_ps(second)));
+ first = _mm_castps_si128(_mm_shuffle_ps(_mm_castsi128_ps(first),_mm_castsi128_ps(second),0x93));
+ }
+ }
+};
+
+template<int Offset>
+struct palign_impl<Offset,Packet2d>
+{
+ static EIGEN_STRONG_INLINE void run(Packet2d& first, const Packet2d& second)
+ {
+ if (Offset==1)
+ {
+ first = _mm_castps_pd(_mm_movehl_ps(_mm_castpd_ps(first),_mm_castpd_ps(first)));
+ first = _mm_castps_pd(_mm_movelh_ps(_mm_castpd_ps(first),_mm_castpd_ps(second)));
+ }
+ }
+};
+#endif
+
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<Packet4f,4>& kernel) {
+ _MM_TRANSPOSE4_PS(kernel.packet[0], kernel.packet[1], kernel.packet[2], kernel.packet[3]);
+}
+
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<Packet2d,2>& kernel) {
+ __m128d tmp = _mm_unpackhi_pd(kernel.packet[0], kernel.packet[1]);
+ kernel.packet[0] = _mm_unpacklo_pd(kernel.packet[0], kernel.packet[1]);
+ kernel.packet[1] = tmp;
+}
+
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<Packet4i,4>& kernel) {
+ __m128i T0 = _mm_unpacklo_epi32(kernel.packet[0], kernel.packet[1]);
+ __m128i T1 = _mm_unpacklo_epi32(kernel.packet[2], kernel.packet[3]);
+ __m128i T2 = _mm_unpackhi_epi32(kernel.packet[0], kernel.packet[1]);
+ __m128i T3 = _mm_unpackhi_epi32(kernel.packet[2], kernel.packet[3]);
+
+ kernel.packet[0] = _mm_unpacklo_epi64(T0, T1);
+ kernel.packet[1] = _mm_unpackhi_epi64(T0, T1);
+ kernel.packet[2] = _mm_unpacklo_epi64(T2, T3);
+ kernel.packet[3] = _mm_unpackhi_epi64(T2, T3);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i pblend(const Selector<4>& ifPacket, const Packet4i& thenPacket, const Packet4i& elsePacket) {
+ const __m128i zero = _mm_setzero_si128();
+ const __m128i select = _mm_set_epi32(ifPacket.select[3], ifPacket.select[2], ifPacket.select[1], ifPacket.select[0]);
+ __m128i false_mask = _mm_cmpeq_epi32(select, zero);
+#ifdef EIGEN_VECTORIZE_SSE4_1
+ return _mm_blendv_epi8(thenPacket, elsePacket, false_mask);
+#else
+ return _mm_or_si128(_mm_andnot_si128(false_mask, thenPacket), _mm_and_si128(false_mask, elsePacket));
+#endif
+}
+template<> EIGEN_STRONG_INLINE Packet4f pblend(const Selector<4>& ifPacket, const Packet4f& thenPacket, const Packet4f& elsePacket) {
+ const __m128 zero = _mm_setzero_ps();
+ const __m128 select = _mm_set_ps(ifPacket.select[3], ifPacket.select[2], ifPacket.select[1], ifPacket.select[0]);
+ __m128 false_mask = _mm_cmpeq_ps(select, zero);
+#ifdef EIGEN_VECTORIZE_SSE4_1
+ return _mm_blendv_ps(thenPacket, elsePacket, false_mask);
+#else
+ return _mm_or_ps(_mm_andnot_ps(false_mask, thenPacket), _mm_and_ps(false_mask, elsePacket));
+#endif
+}
+template<> EIGEN_STRONG_INLINE Packet2d pblend(const Selector<2>& ifPacket, const Packet2d& thenPacket, const Packet2d& elsePacket) {
+ const __m128d zero = _mm_setzero_pd();
+ const __m128d select = _mm_set_pd(ifPacket.select[1], ifPacket.select[0]);
+ __m128d false_mask = _mm_cmpeq_pd(select, zero);
+#ifdef EIGEN_VECTORIZE_SSE4_1
+ return _mm_blendv_pd(thenPacket, elsePacket, false_mask);
+#else
+ return _mm_or_pd(_mm_andnot_pd(false_mask, thenPacket), _mm_and_pd(false_mask, elsePacket));
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f pinsertfirst(const Packet4f& a, float b)
+{
+#ifdef EIGEN_VECTORIZE_SSE4_1
+ return _mm_blend_ps(a,pset1<Packet4f>(b),1);
+#else
+ return _mm_move_ss(a, _mm_load_ss(&b));
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d pinsertfirst(const Packet2d& a, double b)
+{
+#ifdef EIGEN_VECTORIZE_SSE4_1
+ return _mm_blend_pd(a,pset1<Packet2d>(b),1);
+#else
+ return _mm_move_sd(a, _mm_load_sd(&b));
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f pinsertlast(const Packet4f& a, float b)
+{
+#ifdef EIGEN_VECTORIZE_SSE4_1
+ return _mm_blend_ps(a,pset1<Packet4f>(b),(1<<3));
+#else
+ const Packet4f mask = _mm_castsi128_ps(_mm_setr_epi32(0x0,0x0,0x0,0xFFFFFFFF));
+ return _mm_or_ps(_mm_andnot_ps(mask, a), _mm_and_ps(mask, pset1<Packet4f>(b)));
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d pinsertlast(const Packet2d& a, double b)
+{
+#ifdef EIGEN_VECTORIZE_SSE4_1
+ return _mm_blend_pd(a,pset1<Packet2d>(b),(1<<1));
+#else
+ const Packet2d mask = _mm_castsi128_pd(_mm_setr_epi32(0x0,0x0,0xFFFFFFFF,0xFFFFFFFF));
+ return _mm_or_pd(_mm_andnot_pd(mask, a), _mm_and_pd(mask, pset1<Packet2d>(b)));
+#endif
+}
+
+// Scalar path for pmadd with FMA to ensure consistency with vectorized path.
+#ifdef __FMA__
+template<> EIGEN_STRONG_INLINE float pmadd(const float& a, const float& b, const float& c) {
+ return ::fmaf(a,b,c);
+}
+template<> EIGEN_STRONG_INLINE double pmadd(const double& a, const double& b, const double& c) {
+ return ::fma(a,b,c);
+}
+#endif
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PACKET_MATH_SSE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h
new file mode 100644
index 000000000..c84893230
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h
@@ -0,0 +1,77 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2015 Benoit Steiner <benoit.steiner.goog@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TYPE_CASTING_SSE_H
+#define EIGEN_TYPE_CASTING_SSE_H
+
+namespace Eigen {
+
+namespace internal {
+
+template <>
+struct type_casting_traits<float, int> {
+ enum {
+ VectorizedCast = 1,
+ SrcCoeffRatio = 1,
+ TgtCoeffRatio = 1
+ };
+};
+
+template<> EIGEN_STRONG_INLINE Packet4i pcast<Packet4f, Packet4i>(const Packet4f& a) {
+ return _mm_cvttps_epi32(a);
+}
+
+
+template <>
+struct type_casting_traits<int, float> {
+ enum {
+ VectorizedCast = 1,
+ SrcCoeffRatio = 1,
+ TgtCoeffRatio = 1
+ };
+};
+
+template<> EIGEN_STRONG_INLINE Packet4f pcast<Packet4i, Packet4f>(const Packet4i& a) {
+ return _mm_cvtepi32_ps(a);
+}
+
+
+template <>
+struct type_casting_traits<double, float> {
+ enum {
+ VectorizedCast = 1,
+ SrcCoeffRatio = 2,
+ TgtCoeffRatio = 1
+ };
+};
+
+template<> EIGEN_STRONG_INLINE Packet4f pcast<Packet2d, Packet4f>(const Packet2d& a, const Packet2d& b) {
+ return _mm_shuffle_ps(_mm_cvtpd_ps(a), _mm_cvtpd_ps(b), (1 << 2) | (1 << 6));
+}
+
+template <>
+struct type_casting_traits<float, double> {
+ enum {
+ VectorizedCast = 1,
+ SrcCoeffRatio = 1,
+ TgtCoeffRatio = 2
+ };
+};
+
+template<> EIGEN_STRONG_INLINE Packet2d pcast<Packet4f, Packet2d>(const Packet4f& a) {
+ // Simply discard the second half of the input
+ return _mm_cvtps_pd(a);
+}
+
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TYPE_CASTING_SSE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/ZVector/Complex.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/ZVector/Complex.h
new file mode 100644
index 000000000..d39d2d105
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/ZVector/Complex.h
@@ -0,0 +1,394 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2016 Konstantinos Margaritis <markos@freevec.org>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPLEX32_ALTIVEC_H
+#define EIGEN_COMPLEX32_ALTIVEC_H
+
+namespace Eigen {
+
+namespace internal {
+
+static Packet2ul p2ul_CONJ_XOR1 = (Packet2ul) vec_sld((Packet4ui) p2d_ZERO_, (Packet4ui) p2l_ZERO, 8);//{ 0x8000000000000000, 0x0000000000000000 };
+static Packet2ul p2ul_CONJ_XOR2 = (Packet2ul) vec_sld((Packet4ui) p2l_ZERO, (Packet4ui) p2d_ZERO_, 8);//{ 0x8000000000000000, 0x0000000000000000 };
+
+struct Packet1cd
+{
+ EIGEN_STRONG_INLINE Packet1cd() {}
+ EIGEN_STRONG_INLINE explicit Packet1cd(const Packet2d& a) : v(a) {}
+ Packet2d v;
+};
+
+struct Packet2cf
+{
+ EIGEN_STRONG_INLINE Packet2cf() {}
+ EIGEN_STRONG_INLINE explicit Packet2cf(const Packet4f& a) : v(a) {}
+ union {
+ Packet4f v;
+ Packet1cd cd[2];
+ };
+};
+
+template<> struct packet_traits<std::complex<float> > : default_packet_traits
+{
+ typedef Packet2cf type;
+ typedef Packet2cf half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size = 2,
+ HasHalfPacket = 0,
+
+ HasAdd = 1,
+ HasSub = 1,
+ HasMul = 1,
+ HasDiv = 1,
+ HasNegate = 1,
+ HasAbs = 0,
+ HasAbs2 = 0,
+ HasMin = 0,
+ HasMax = 0,
+ HasBlend = 1,
+ HasSetLinear = 0
+ };
+};
+
+
+template<> struct packet_traits<std::complex<double> > : default_packet_traits
+{
+ typedef Packet1cd type;
+ typedef Packet1cd half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size = 1,
+ HasHalfPacket = 0,
+
+ HasAdd = 1,
+ HasSub = 1,
+ HasMul = 1,
+ HasDiv = 1,
+ HasNegate = 1,
+ HasAbs = 0,
+ HasAbs2 = 0,
+ HasMin = 0,
+ HasMax = 0,
+ HasSetLinear = 0
+ };
+};
+
+template<> struct unpacket_traits<Packet2cf> { typedef std::complex<float> type; enum {size=2, alignment=Aligned16}; typedef Packet2cf half; };
+template<> struct unpacket_traits<Packet1cd> { typedef std::complex<double> type; enum {size=1, alignment=Aligned16}; typedef Packet1cd half; };
+
+/* Forward declaration */
+EIGEN_STRONG_INLINE void ptranspose(PacketBlock<Packet2cf,2>& kernel);
+
+template<> EIGEN_STRONG_INLINE Packet2cf pload <Packet2cf>(const std::complex<float>* from) { EIGEN_DEBUG_ALIGNED_LOAD return Packet2cf(pload<Packet4f>((const float*)from)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pload <Packet1cd>(const std::complex<double>* from) { EIGEN_DEBUG_ALIGNED_LOAD return Packet1cd(pload<Packet2d>((const double*)from)); }
+template<> EIGEN_STRONG_INLINE Packet2cf ploadu<Packet2cf>(const std::complex<float>* from) { EIGEN_DEBUG_UNALIGNED_LOAD return Packet2cf(ploadu<Packet4f>((const float*)from)); }
+template<> EIGEN_STRONG_INLINE Packet1cd ploadu<Packet1cd>(const std::complex<double>* from) { EIGEN_DEBUG_UNALIGNED_LOAD return Packet1cd(ploadu<Packet2d>((const double*)from)); }
+template<> EIGEN_STRONG_INLINE void pstore <std::complex<float> >(std::complex<float> * to, const Packet2cf& from) { EIGEN_DEBUG_ALIGNED_STORE pstore((float*)to, from.v); }
+template<> EIGEN_STRONG_INLINE void pstore <std::complex<double> >(std::complex<double> * to, const Packet1cd& from) { EIGEN_DEBUG_ALIGNED_STORE pstore((double*)to, from.v); }
+template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<float> >(std::complex<float> * to, const Packet2cf& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu((float*)to, from.v); }
+template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<double> >(std::complex<double> * to, const Packet1cd& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu((double*)to, from.v); }
+
+template<> EIGEN_STRONG_INLINE Packet1cd pset1<Packet1cd>(const std::complex<double>& from)
+{ /* here we really have to use unaligned loads :( */ return ploadu<Packet1cd>(&from); }
+
+template<> EIGEN_STRONG_INLINE Packet2cf pset1<Packet2cf>(const std::complex<float>& from)
+{
+ Packet2cf res;
+ res.cd[0] = Packet1cd(vec_ld2f((const float *)&from));
+ res.cd[1] = res.cd[0];
+ return res;
+}
+template<> EIGEN_DEVICE_FUNC inline Packet2cf pgather<std::complex<float>, Packet2cf>(const std::complex<float>* from, Index stride)
+{
+ std::complex<float> EIGEN_ALIGN16 af[2];
+ af[0] = from[0*stride];
+ af[1] = from[1*stride];
+ return pload<Packet2cf>(af);
+}
+template<> EIGEN_DEVICE_FUNC inline Packet1cd pgather<std::complex<double>, Packet1cd>(const std::complex<double>* from, Index stride EIGEN_UNUSED)
+{
+ return pload<Packet1cd>(from);
+}
+template<> EIGEN_DEVICE_FUNC inline void pscatter<std::complex<float>, Packet2cf>(std::complex<float>* to, const Packet2cf& from, Index stride)
+{
+ std::complex<float> EIGEN_ALIGN16 af[2];
+ pstore<std::complex<float> >((std::complex<float> *) af, from);
+ to[0*stride] = af[0];
+ to[1*stride] = af[1];
+}
+template<> EIGEN_DEVICE_FUNC inline void pscatter<std::complex<double>, Packet1cd>(std::complex<double>* to, const Packet1cd& from, Index stride EIGEN_UNUSED)
+{
+ pstore<std::complex<double> >(to, from);
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf padd<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(padd<Packet4f>(a.v, b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd padd<Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(a.v + b.v); }
+template<> EIGEN_STRONG_INLINE Packet2cf psub<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(psub<Packet4f>(a.v, b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd psub<Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(a.v - b.v); }
+template<> EIGEN_STRONG_INLINE Packet1cd pnegate(const Packet1cd& a) { return Packet1cd(pnegate(Packet2d(a.v))); }
+template<> EIGEN_STRONG_INLINE Packet2cf pnegate(const Packet2cf& a) { return Packet2cf(pnegate(Packet4f(a.v))); }
+template<> EIGEN_STRONG_INLINE Packet1cd pconj(const Packet1cd& a) { return Packet1cd((Packet2d)vec_xor((Packet2d)a.v, (Packet2d)p2ul_CONJ_XOR2)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pconj(const Packet2cf& a)
+{
+ Packet2cf res;
+ res.v.v4f[0] = pconj(Packet1cd(reinterpret_cast<Packet2d>(a.v.v4f[0]))).v;
+ res.v.v4f[1] = pconj(Packet1cd(reinterpret_cast<Packet2d>(a.v.v4f[1]))).v;
+ return res;
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd pmul<Packet1cd>(const Packet1cd& a, const Packet1cd& b)
+{
+ Packet2d a_re, a_im, v1, v2;
+
+ // Permute and multiply the real parts of a and b
+ a_re = vec_perm(a.v, a.v, p16uc_PSET64_HI);
+ // Get the imaginary parts of a
+ a_im = vec_perm(a.v, a.v, p16uc_PSET64_LO);
+ // multiply a_re * b
+ v1 = vec_madd(a_re, b.v, p2d_ZERO);
+ // multiply a_im * b and get the conjugate result
+ v2 = vec_madd(a_im, b.v, p2d_ZERO);
+ v2 = (Packet2d) vec_sld((Packet4ui)v2, (Packet4ui)v2, 8);
+ v2 = (Packet2d) vec_xor((Packet2d)v2, (Packet2d) p2ul_CONJ_XOR1);
+
+ return Packet1cd(v1 + v2);
+}
+template<> EIGEN_STRONG_INLINE Packet2cf pmul<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+ Packet2cf res;
+ res.v.v4f[0] = pmul(Packet1cd(reinterpret_cast<Packet2d>(a.v.v4f[0])), Packet1cd(reinterpret_cast<Packet2d>(b.v.v4f[0]))).v;
+ res.v.v4f[1] = pmul(Packet1cd(reinterpret_cast<Packet2d>(a.v.v4f[1])), Packet1cd(reinterpret_cast<Packet2d>(b.v.v4f[1]))).v;
+ return res;
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd pand <Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(vec_and(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pand <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(pand<Packet4f>(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd por <Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(vec_or(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf por <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(por<Packet4f>(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pxor <Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(vec_xor(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pxor <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(pxor<Packet4f>(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pandnot<Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(vec_and(a.v, vec_nor(b.v,b.v))); }
+template<> EIGEN_STRONG_INLINE Packet2cf pandnot<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(pandnot<Packet4f>(a.v,b.v)); }
+
+template<> EIGEN_STRONG_INLINE Packet1cd ploaddup<Packet1cd>(const std::complex<double>* from) { return pset1<Packet1cd>(*from); }
+template<> EIGEN_STRONG_INLINE Packet2cf ploaddup<Packet2cf>(const std::complex<float>* from) { return pset1<Packet2cf>(*from); }
+
+template<> EIGEN_STRONG_INLINE void prefetch<std::complex<float> >(const std::complex<float> * addr) { EIGEN_ZVECTOR_PREFETCH(addr); }
+template<> EIGEN_STRONG_INLINE void prefetch<std::complex<double> >(const std::complex<double> * addr) { EIGEN_ZVECTOR_PREFETCH(addr); }
+
+template<> EIGEN_STRONG_INLINE std::complex<double> pfirst<Packet1cd>(const Packet1cd& a)
+{
+ std::complex<double> EIGEN_ALIGN16 res;
+ pstore<std::complex<double> >(&res, a);
+
+ return res;
+}
+template<> EIGEN_STRONG_INLINE std::complex<float> pfirst<Packet2cf>(const Packet2cf& a)
+{
+ std::complex<float> EIGEN_ALIGN16 res[2];
+ pstore<std::complex<float> >(res, a);
+
+ return res[0];
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd preverse(const Packet1cd& a) { return a; }
+template<> EIGEN_STRONG_INLINE Packet2cf preverse(const Packet2cf& a)
+{
+ Packet2cf res;
+ res.cd[0] = a.cd[1];
+ res.cd[1] = a.cd[0];
+ return res;
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<double> predux<Packet1cd>(const Packet1cd& a)
+{
+ return pfirst(a);
+}
+template<> EIGEN_STRONG_INLINE std::complex<float> predux<Packet2cf>(const Packet2cf& a)
+{
+ std::complex<float> res;
+ Packet1cd b = padd<Packet1cd>(a.cd[0], a.cd[1]);
+ vec_st2f(b.v, (float*)&res);
+ return res;
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd preduxp<Packet1cd>(const Packet1cd* vecs)
+{
+ return vecs[0];
+}
+template<> EIGEN_STRONG_INLINE Packet2cf preduxp<Packet2cf>(const Packet2cf* vecs)
+{
+ PacketBlock<Packet2cf,2> transpose;
+ transpose.packet[0] = vecs[0];
+ transpose.packet[1] = vecs[1];
+ ptranspose(transpose);
+
+ return padd<Packet2cf>(transpose.packet[0], transpose.packet[1]);
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<double> predux_mul<Packet1cd>(const Packet1cd& a)
+{
+ return pfirst(a);
+}
+template<> EIGEN_STRONG_INLINE std::complex<float> predux_mul<Packet2cf>(const Packet2cf& a)
+{
+ std::complex<float> res;
+ Packet1cd b = pmul<Packet1cd>(a.cd[0], a.cd[1]);
+ vec_st2f(b.v, (float*)&res);
+ return res;
+}
+
+template<int Offset>
+struct palign_impl<Offset,Packet1cd>
+{
+ static EIGEN_STRONG_INLINE void run(Packet1cd& /*first*/, const Packet1cd& /*second*/)
+ {
+ // FIXME is it sure we never have to align a Packet1cd?
+ // Even though a std::complex<double> has 16 bytes, it is not necessarily aligned on a 16 bytes boundary...
+ }
+};
+
+template<int Offset>
+struct palign_impl<Offset,Packet2cf>
+{
+ static EIGEN_STRONG_INLINE void run(Packet2cf& first, const Packet2cf& second)
+ {
+ if (Offset == 1) {
+ first.cd[0] = first.cd[1];
+ first.cd[1] = second.cd[0];
+ }
+ }
+};
+
+template<> struct conj_helper<Packet1cd, Packet1cd, false,true>
+{
+ EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
+ {
+ return internal::pmul(a, pconj(b));
+ }
+};
+
+template<> struct conj_helper<Packet1cd, Packet1cd, true,false>
+{
+ EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
+ {
+ return internal::pmul(pconj(a), b);
+ }
+};
+
+template<> struct conj_helper<Packet1cd, Packet1cd, true,true>
+{
+ EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
+ {
+ return pconj(internal::pmul(a, b));
+ }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, false,true>
+{
+ EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+ {
+ return internal::pmul(a, pconj(b));
+ }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, true,false>
+{
+ EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+ {
+ return internal::pmul(pconj(a), b);
+ }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, true,true>
+{
+ EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+ { return padd(pmul(x,y),c); }
+
+ EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+ {
+ return pconj(internal::pmul(a, b));
+ }
+};
+
+template<> EIGEN_STRONG_INLINE Packet1cd pdiv<Packet1cd>(const Packet1cd& a, const Packet1cd& b)
+{
+ // TODO optimize it for AltiVec
+ Packet1cd res = conj_helper<Packet1cd,Packet1cd,false,true>().pmul(a,b);
+ Packet2d s = vec_madd(b.v, b.v, p2d_ZERO_);
+ return Packet1cd(pdiv(res.v, s + vec_perm(s, s, p16uc_REVERSE64)));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pdiv<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+ // TODO optimize it for AltiVec
+ Packet2cf res;
+ res.cd[0] = pdiv<Packet1cd>(a.cd[0], b.cd[0]);
+ res.cd[1] = pdiv<Packet1cd>(a.cd[1], b.cd[1]);
+ return res;
+}
+
+EIGEN_STRONG_INLINE Packet1cd pcplxflip/*<Packet1cd>*/(const Packet1cd& x)
+{
+ return Packet1cd(preverse(Packet2d(x.v)));
+}
+
+EIGEN_STRONG_INLINE Packet2cf pcplxflip/*<Packet2cf>*/(const Packet2cf& x)
+{
+ Packet2cf res;
+ res.cd[0] = pcplxflip(x.cd[0]);
+ res.cd[1] = pcplxflip(x.cd[1]);
+ return res;
+}
+
+EIGEN_STRONG_INLINE void ptranspose(PacketBlock<Packet1cd,2>& kernel)
+{
+ Packet2d tmp = vec_perm(kernel.packet[0].v, kernel.packet[1].v, p16uc_TRANSPOSE64_HI);
+ kernel.packet[1].v = vec_perm(kernel.packet[0].v, kernel.packet[1].v, p16uc_TRANSPOSE64_LO);
+ kernel.packet[0].v = tmp;
+}
+
+EIGEN_STRONG_INLINE void ptranspose(PacketBlock<Packet2cf,2>& kernel)
+{
+ Packet1cd tmp = kernel.packet[0].cd[1];
+ kernel.packet[0].cd[1] = kernel.packet[1].cd[0];
+ kernel.packet[1].cd[0] = tmp;
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pblend(const Selector<2>& ifPacket, const Packet2cf& thenPacket, const Packet2cf& elsePacket) {
+ Packet2cf result;
+ const Selector<4> ifPacket4 = { ifPacket.select[0], ifPacket.select[0], ifPacket.select[1], ifPacket.select[1] };
+ result.v = pblend<Packet4f>(ifPacket4, thenPacket.v, elsePacket.v);
+ return result;
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLEX32_ALTIVEC_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h
new file mode 100644
index 000000000..5c7aa7256
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h
@@ -0,0 +1,137 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007 Julien Pommier
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2016 Konstantinos Margaritis <markos@freevec.org>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* The sin, cos, exp, and log functions of this file come from
+ * Julien Pommier's sse math library: http://gruntthepeon.free.fr/ssemath/
+ */
+
+#ifndef EIGEN_MATH_FUNCTIONS_ALTIVEC_H
+#define EIGEN_MATH_FUNCTIONS_ALTIVEC_H
+
+namespace Eigen {
+
+namespace internal {
+
+static _EIGEN_DECLARE_CONST_Packet2d(1 , 1.0);
+static _EIGEN_DECLARE_CONST_Packet2d(2 , 2.0);
+static _EIGEN_DECLARE_CONST_Packet2d(half, 0.5);
+
+static _EIGEN_DECLARE_CONST_Packet2d(exp_hi, 709.437);
+static _EIGEN_DECLARE_CONST_Packet2d(exp_lo, -709.436139303);
+
+static _EIGEN_DECLARE_CONST_Packet2d(cephes_LOG2EF, 1.4426950408889634073599);
+
+static _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_p0, 1.26177193074810590878e-4);
+static _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_p1, 3.02994407707441961300e-2);
+static _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_p2, 9.99999999999999999910e-1);
+
+static _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q0, 3.00198505138664455042e-6);
+static _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q1, 2.52448340349684104192e-3);
+static _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q2, 2.27265548208155028766e-1);
+static _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q3, 2.00000000000000000009e0);
+
+static _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_C1, 0.693145751953125);
+static _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_C2, 1.42860682030941723212e-6);
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet2d pexp<Packet2d>(const Packet2d& _x)
+{
+ Packet2d x = _x;
+
+ Packet2d tmp, fx;
+ Packet2l emm0;
+
+ // clamp x
+ x = pmax(pmin(x, p2d_exp_hi), p2d_exp_lo);
+ /* express exp(x) as exp(g + n*log(2)) */
+ fx = pmadd(p2d_cephes_LOG2EF, x, p2d_half);
+
+ fx = vec_floor(fx);
+
+ tmp = pmul(fx, p2d_cephes_exp_C1);
+ Packet2d z = pmul(fx, p2d_cephes_exp_C2);
+ x = psub(x, tmp);
+ x = psub(x, z);
+
+ Packet2d x2 = pmul(x,x);
+
+ Packet2d px = p2d_cephes_exp_p0;
+ px = pmadd(px, x2, p2d_cephes_exp_p1);
+ px = pmadd(px, x2, p2d_cephes_exp_p2);
+ px = pmul (px, x);
+
+ Packet2d qx = p2d_cephes_exp_q0;
+ qx = pmadd(qx, x2, p2d_cephes_exp_q1);
+ qx = pmadd(qx, x2, p2d_cephes_exp_q2);
+ qx = pmadd(qx, x2, p2d_cephes_exp_q3);
+
+ x = pdiv(px,psub(qx,px));
+ x = pmadd(p2d_2,x,p2d_1);
+
+ // build 2^n
+ emm0 = vec_ctsl(fx, 0);
+
+ static const Packet2l p2l_1023 = { 1023, 1023 };
+ static const Packet2ul p2ul_52 = { 52, 52 };
+
+ emm0 = emm0 + p2l_1023;
+ emm0 = emm0 << reinterpret_cast<Packet2l>(p2ul_52);
+
+ // Altivec's max & min operators just drop silent NaNs. Check NaNs in
+ // inputs and return them unmodified.
+ Packet2ul isnumber_mask = reinterpret_cast<Packet2ul>(vec_cmpeq(_x, _x));
+ return vec_sel(_x, pmax(pmul(x, reinterpret_cast<Packet2d>(emm0)), _x),
+ isnumber_mask);
+}
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f pexp<Packet4f>(const Packet4f& x)
+{
+ Packet4f res;
+ res.v4f[0] = pexp<Packet2d>(x.v4f[0]);
+ res.v4f[1] = pexp<Packet2d>(x.v4f[1]);
+ return res;
+}
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet2d psqrt<Packet2d>(const Packet2d& x)
+{
+ return __builtin_s390_vfsqdb(x);
+}
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f psqrt<Packet4f>(const Packet4f& x)
+{
+ Packet4f res;
+ res.v4f[0] = psqrt<Packet2d>(x.v4f[0]);
+ res.v4f[1] = psqrt<Packet2d>(x.v4f[1]);
+ return res;
+}
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet2d prsqrt<Packet2d>(const Packet2d& x) {
+ // Unfortunately we can't use the much faster mm_rqsrt_pd since it only provides an approximation.
+ return pset1<Packet2d>(1.0) / psqrt<Packet2d>(x);
+}
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f prsqrt<Packet4f>(const Packet4f& x) {
+ Packet4f res;
+ res.v4f[0] = prsqrt<Packet2d>(x.v4f[0]);
+ res.v4f[1] = prsqrt<Packet2d>(x.v4f[1]);
+ return res;
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATH_FUNCTIONS_ALTIVEC_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h
new file mode 100755
index 000000000..57b01fc63
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h
@@ -0,0 +1,945 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2016 Konstantinos Margaritis <markos@freevec.org>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PACKET_MATH_ZVECTOR_H
+#define EIGEN_PACKET_MATH_ZVECTOR_H
+
+#include <stdint.h>
+
+namespace Eigen {
+
+namespace internal {
+
+#ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
+#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 4
+#endif
+
+#ifndef EIGEN_HAS_SINGLE_INSTRUCTION_MADD
+#define EIGEN_HAS_SINGLE_INSTRUCTION_MADD
+#endif
+
+#ifndef EIGEN_HAS_SINGLE_INSTRUCTION_CJMADD
+#define EIGEN_HAS_SINGLE_INSTRUCTION_CJMADD
+#endif
+
+#ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS
+#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 16
+#endif
+
+typedef __vector int Packet4i;
+typedef __vector unsigned int Packet4ui;
+typedef __vector __bool int Packet4bi;
+typedef __vector short int Packet8i;
+typedef __vector unsigned char Packet16uc;
+typedef __vector double Packet2d;
+typedef __vector unsigned long long Packet2ul;
+typedef __vector long long Packet2l;
+
+typedef struct {
+ Packet2d v4f[2];
+} Packet4f;
+
+typedef union {
+ int32_t i[4];
+ uint32_t ui[4];
+ int64_t l[2];
+ uint64_t ul[2];
+ double d[2];
+ Packet4i v4i;
+ Packet4ui v4ui;
+ Packet2l v2l;
+ Packet2ul v2ul;
+ Packet2d v2d;
+} Packet;
+
+// We don't want to write the same code all the time, but we need to reuse the constants
+// and it doesn't really work to declare them global, so we define macros instead
+
+#define _EIGEN_DECLARE_CONST_FAST_Packet4i(NAME,X) \
+ Packet4i p4i_##NAME = reinterpret_cast<Packet4i>(vec_splat_s32(X))
+
+#define _EIGEN_DECLARE_CONST_FAST_Packet2d(NAME,X) \
+ Packet2d p2d_##NAME = reinterpret_cast<Packet2d>(vec_splat_s64(X))
+
+#define _EIGEN_DECLARE_CONST_FAST_Packet2l(NAME,X) \
+ Packet2l p2l_##NAME = reinterpret_cast<Packet2l>(vec_splat_s64(X))
+
+#define _EIGEN_DECLARE_CONST_Packet4i(NAME,X) \
+ Packet4i p4i_##NAME = pset1<Packet4i>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet2d(NAME,X) \
+ Packet2d p2d_##NAME = pset1<Packet2d>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet2l(NAME,X) \
+ Packet2l p2l_##NAME = pset1<Packet2l>(X)
+
+// These constants are endian-agnostic
+//static _EIGEN_DECLARE_CONST_FAST_Packet4i(ZERO, 0); //{ 0, 0, 0, 0,}
+static _EIGEN_DECLARE_CONST_FAST_Packet4i(ONE, 1); //{ 1, 1, 1, 1}
+
+static _EIGEN_DECLARE_CONST_FAST_Packet2d(ZERO, 0);
+static _EIGEN_DECLARE_CONST_FAST_Packet2l(ZERO, 0);
+static _EIGEN_DECLARE_CONST_FAST_Packet2l(ONE, 1);
+
+static Packet2d p2d_ONE = { 1.0, 1.0 };
+static Packet2d p2d_ZERO_ = { -0.0, -0.0 };
+
+static Packet4i p4i_COUNTDOWN = { 0, 1, 2, 3 };
+static Packet4f p4f_COUNTDOWN = { 0.0, 1.0, 2.0, 3.0 };
+static Packet2d p2d_COUNTDOWN = reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet16uc>(p2d_ZERO), reinterpret_cast<Packet16uc>(p2d_ONE), 8));
+
+static Packet16uc p16uc_PSET64_HI = { 0,1,2,3, 4,5,6,7, 0,1,2,3, 4,5,6,7 };
+static Packet16uc p16uc_DUPLICATE32_HI = { 0,1,2,3, 0,1,2,3, 4,5,6,7, 4,5,6,7 };
+
+// Mask alignment
+#define _EIGEN_MASK_ALIGNMENT 0xfffffffffffffff0
+
+#define _EIGEN_ALIGNED_PTR(x) ((std::ptrdiff_t)(x) & _EIGEN_MASK_ALIGNMENT)
+
+// Handle endianness properly while loading constants
+// Define global static constants:
+
+static Packet16uc p16uc_FORWARD = { 0,1,2,3, 4,5,6,7, 8,9,10,11, 12,13,14,15 };
+static Packet16uc p16uc_REVERSE32 = { 12,13,14,15, 8,9,10,11, 4,5,6,7, 0,1,2,3 };
+static Packet16uc p16uc_REVERSE64 = { 8,9,10,11, 12,13,14,15, 0,1,2,3, 4,5,6,7 };
+
+static Packet16uc p16uc_PSET32_WODD = vec_sld((Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 0), (Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 2), 8);//{ 0,1,2,3, 0,1,2,3, 8,9,10,11, 8,9,10,11 };
+static Packet16uc p16uc_PSET32_WEVEN = vec_sld(p16uc_DUPLICATE32_HI, (Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 3), 8);//{ 4,5,6,7, 4,5,6,7, 12,13,14,15, 12,13,14,15 };
+/*static Packet16uc p16uc_HALF64_0_16 = vec_sld((Packet16uc)p4i_ZERO, vec_splat((Packet16uc) vec_abs(p4i_MINUS16), 3), 8); //{ 0,0,0,0, 0,0,0,0, 16,16,16,16, 16,16,16,16};
+
+static Packet16uc p16uc_PSET64_HI = (Packet16uc) vec_mergeh((Packet4ui)p16uc_PSET32_WODD, (Packet4ui)p16uc_PSET32_WEVEN); //{ 0,1,2,3, 4,5,6,7, 0,1,2,3, 4,5,6,7 };*/
+static Packet16uc p16uc_PSET64_LO = (Packet16uc) vec_mergel((Packet4ui)p16uc_PSET32_WODD, (Packet4ui)p16uc_PSET32_WEVEN); //{ 8,9,10,11, 12,13,14,15, 8,9,10,11, 12,13,14,15 };
+/*static Packet16uc p16uc_TRANSPOSE64_HI = vec_add(p16uc_PSET64_HI, p16uc_HALF64_0_16); //{ 0,1,2,3, 4,5,6,7, 16,17,18,19, 20,21,22,23};
+static Packet16uc p16uc_TRANSPOSE64_LO = vec_add(p16uc_PSET64_LO, p16uc_HALF64_0_16); //{ 8,9,10,11, 12,13,14,15, 24,25,26,27, 28,29,30,31};*/
+static Packet16uc p16uc_TRANSPOSE64_HI = { 0,1,2,3, 4,5,6,7, 16,17,18,19, 20,21,22,23};
+static Packet16uc p16uc_TRANSPOSE64_LO = { 8,9,10,11, 12,13,14,15, 24,25,26,27, 28,29,30,31};
+
+//static Packet16uc p16uc_COMPLEX32_REV = vec_sld(p16uc_REVERSE32, p16uc_REVERSE32, 8); //{ 4,5,6,7, 0,1,2,3, 12,13,14,15, 8,9,10,11 };
+
+//static Packet16uc p16uc_COMPLEX32_REV2 = vec_sld(p16uc_FORWARD, p16uc_FORWARD, 8); //{ 8,9,10,11, 12,13,14,15, 0,1,2,3, 4,5,6,7 };
+
+
+#if EIGEN_HAS_BUILTIN(__builtin_prefetch) || EIGEN_COMP_GNUC
+ #define EIGEN_ZVECTOR_PREFETCH(ADDR) __builtin_prefetch(ADDR);
+#else
+ #define EIGEN_ZVECTOR_PREFETCH(ADDR) asm( " pfd [%[addr]]\n" :: [addr] "r" (ADDR) : "cc" );
+#endif
+
+template<> struct packet_traits<int> : default_packet_traits
+{
+ typedef Packet4i type;
+ typedef Packet4i half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size = 4,
+ HasHalfPacket = 0,
+
+ HasAdd = 1,
+ HasSub = 1,
+ HasMul = 1,
+ HasDiv = 1,
+ HasBlend = 1
+ };
+};
+
+template<> struct packet_traits<float> : default_packet_traits
+{
+ typedef Packet4f type;
+ typedef Packet4f half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size=4,
+ HasHalfPacket = 0,
+
+ HasAdd = 1,
+ HasSub = 1,
+ HasMul = 1,
+ HasDiv = 1,
+ HasMin = 1,
+ HasMax = 1,
+ HasAbs = 1,
+ HasSin = 0,
+ HasCos = 0,
+ HasLog = 0,
+ HasExp = 1,
+ HasSqrt = 1,
+ HasRsqrt = 1,
+ HasRound = 1,
+ HasFloor = 1,
+ HasCeil = 1,
+ HasNegate = 1,
+ HasBlend = 1
+ };
+};
+
+template<> struct packet_traits<double> : default_packet_traits
+{
+ typedef Packet2d type;
+ typedef Packet2d half;
+ enum {
+ Vectorizable = 1,
+ AlignedOnScalar = 1,
+ size=2,
+ HasHalfPacket = 1,
+
+ HasAdd = 1,
+ HasSub = 1,
+ HasMul = 1,
+ HasDiv = 1,
+ HasMin = 1,
+ HasMax = 1,
+ HasAbs = 1,
+ HasSin = 0,
+ HasCos = 0,
+ HasLog = 0,
+ HasExp = 1,
+ HasSqrt = 1,
+ HasRsqrt = 1,
+ HasRound = 1,
+ HasFloor = 1,
+ HasCeil = 1,
+ HasNegate = 1,
+ HasBlend = 1
+ };
+};
+
+template<> struct unpacket_traits<Packet4i> { typedef int type; enum {size=4, alignment=Aligned16}; typedef Packet4i half; };
+template<> struct unpacket_traits<Packet4f> { typedef float type; enum {size=4, alignment=Aligned16}; typedef Packet4f half; };
+template<> struct unpacket_traits<Packet2d> { typedef double type; enum {size=2, alignment=Aligned16}; typedef Packet2d half; };
+
+/* Forward declaration */
+EIGEN_DEVICE_FUNC inline void ptranspose(PacketBlock<Packet4f,4>& kernel);
+
+inline std::ostream & operator <<(std::ostream & s, const Packet4i & v)
+{
+ Packet vt;
+ vt.v4i = v;
+ s << vt.i[0] << ", " << vt.i[1] << ", " << vt.i[2] << ", " << vt.i[3];
+ return s;
+}
+
+inline std::ostream & operator <<(std::ostream & s, const Packet4ui & v)
+{
+ Packet vt;
+ vt.v4ui = v;
+ s << vt.ui[0] << ", " << vt.ui[1] << ", " << vt.ui[2] << ", " << vt.ui[3];
+ return s;
+}
+
+inline std::ostream & operator <<(std::ostream & s, const Packet2l & v)
+{
+ Packet vt;
+ vt.v2l = v;
+ s << vt.l[0] << ", " << vt.l[1];
+ return s;
+}
+
+inline std::ostream & operator <<(std::ostream & s, const Packet2ul & v)
+{
+ Packet vt;
+ vt.v2ul = v;
+ s << vt.ul[0] << ", " << vt.ul[1] ;
+ return s;
+}
+
+inline std::ostream & operator <<(std::ostream & s, const Packet2d & v)
+{
+ Packet vt;
+ vt.v2d = v;
+ s << vt.d[0] << ", " << vt.d[1];
+ return s;
+}
+
+/* Helper function to simulate a vec_splat_packet4f
+ */
+template<int element> EIGEN_STRONG_INLINE Packet4f vec_splat_packet4f(const Packet4f& from)
+{
+ Packet4f splat;
+ switch (element) {
+ case 0:
+ splat.v4f[0] = vec_splat(from.v4f[0], 0);
+ splat.v4f[1] = splat.v4f[0];
+ break;
+ case 1:
+ splat.v4f[0] = vec_splat(from.v4f[0], 1);
+ splat.v4f[1] = splat.v4f[0];
+ break;
+ case 2:
+ splat.v4f[0] = vec_splat(from.v4f[1], 0);
+ splat.v4f[1] = splat.v4f[0];
+ break;
+ case 3:
+ splat.v4f[0] = vec_splat(from.v4f[1], 1);
+ splat.v4f[1] = splat.v4f[0];
+ break;
+ }
+ return splat;
+}
+
+template<int Offset>
+struct palign_impl<Offset,Packet4i>
+{
+ static EIGEN_STRONG_INLINE void run(Packet4i& first, const Packet4i& second)
+ {
+ switch (Offset % 4) {
+ case 1:
+ first = vec_sld(first, second, 4); break;
+ case 2:
+ first = vec_sld(first, second, 8); break;
+ case 3:
+ first = vec_sld(first, second, 12); break;
+ }
+ }
+};
+
+/* This is a tricky one, we have to translate float alignment to vector elements of sizeof double
+ */
+template<int Offset>
+struct palign_impl<Offset,Packet4f>
+{
+ static EIGEN_STRONG_INLINE void run(Packet4f& first, const Packet4f& second)
+ {
+ switch (Offset % 4) {
+ case 1:
+ first.v4f[0] = vec_sld(first.v4f[0], first.v4f[1], 8);
+ first.v4f[1] = vec_sld(first.v4f[1], second.v4f[0], 8);
+ break;
+ case 2:
+ first.v4f[0] = first.v4f[1];
+ first.v4f[1] = second.v4f[0];
+ break;
+ case 3:
+ first.v4f[0] = vec_sld(first.v4f[1], second.v4f[0], 8);
+ first.v4f[1] = vec_sld(second.v4f[0], second.v4f[1], 8);
+ break;
+ }
+ }
+};
+
+
+template<int Offset>
+struct palign_impl<Offset,Packet2d>
+{
+ static EIGEN_STRONG_INLINE void run(Packet2d& first, const Packet2d& second)
+ {
+ if (Offset == 1)
+ first = reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4i>(first), reinterpret_cast<Packet4i>(second), 8));
+ }
+};
+
+template<> EIGEN_STRONG_INLINE Packet4i pload<Packet4i>(const int* from)
+{
+ // FIXME: No intrinsic yet
+ EIGEN_DEBUG_ALIGNED_LOAD
+ Packet *vfrom;
+ vfrom = (Packet *) from;
+ return vfrom->v4i;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f pload<Packet4f>(const float* from)
+{
+ // FIXME: No intrinsic yet
+ EIGEN_DEBUG_ALIGNED_LOAD
+ Packet4f vfrom;
+ vfrom.v4f[0] = vec_ld2f(&from[0]);
+ vfrom.v4f[1] = vec_ld2f(&from[2]);
+ return vfrom;
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d pload<Packet2d>(const double* from)
+{
+ // FIXME: No intrinsic yet
+ EIGEN_DEBUG_ALIGNED_LOAD
+ Packet *vfrom;
+ vfrom = (Packet *) from;
+ return vfrom->v2d;
+}
+
+template<> EIGEN_STRONG_INLINE void pstore<int>(int* to, const Packet4i& from)
+{
+ // FIXME: No intrinsic yet
+ EIGEN_DEBUG_ALIGNED_STORE
+ Packet *vto;
+ vto = (Packet *) to;
+ vto->v4i = from;
+}
+
+template<> EIGEN_STRONG_INLINE void pstore<float>(float* to, const Packet4f& from)
+{
+ // FIXME: No intrinsic yet
+ EIGEN_DEBUG_ALIGNED_STORE
+ vec_st2f(from.v4f[0], &to[0]);
+ vec_st2f(from.v4f[1], &to[2]);
+}
+
+
+template<> EIGEN_STRONG_INLINE void pstore<double>(double* to, const Packet2d& from)
+{
+ // FIXME: No intrinsic yet
+ EIGEN_DEBUG_ALIGNED_STORE
+ Packet *vto;
+ vto = (Packet *) to;
+ vto->v2d = from;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i pset1<Packet4i>(const int& from)
+{
+ return vec_splats(from);
+}
+template<> EIGEN_STRONG_INLINE Packet2d pset1<Packet2d>(const double& from) {
+ return vec_splats(from);
+}
+template<> EIGEN_STRONG_INLINE Packet4f pset1<Packet4f>(const float& from)
+{
+ Packet4f to;
+ to.v4f[0] = pset1<Packet2d>(static_cast<const double&>(from));
+ to.v4f[1] = to.v4f[0];
+ return to;
+}
+
+template<> EIGEN_STRONG_INLINE void
+pbroadcast4<Packet4i>(const int *a,
+ Packet4i& a0, Packet4i& a1, Packet4i& a2, Packet4i& a3)
+{
+ a3 = pload<Packet4i>(a);
+ a0 = vec_splat(a3, 0);
+ a1 = vec_splat(a3, 1);
+ a2 = vec_splat(a3, 2);
+ a3 = vec_splat(a3, 3);
+}
+
+template<> EIGEN_STRONG_INLINE void
+pbroadcast4<Packet4f>(const float *a,
+ Packet4f& a0, Packet4f& a1, Packet4f& a2, Packet4f& a3)
+{
+ a3 = pload<Packet4f>(a);
+ a0 = vec_splat_packet4f<0>(a3);
+ a1 = vec_splat_packet4f<1>(a3);
+ a2 = vec_splat_packet4f<2>(a3);
+ a3 = vec_splat_packet4f<3>(a3);
+}
+
+template<> EIGEN_STRONG_INLINE void
+pbroadcast4<Packet2d>(const double *a,
+ Packet2d& a0, Packet2d& a1, Packet2d& a2, Packet2d& a3)
+{
+ a1 = pload<Packet2d>(a);
+ a0 = vec_splat(a1, 0);
+ a1 = vec_splat(a1, 1);
+ a3 = pload<Packet2d>(a+2);
+ a2 = vec_splat(a3, 0);
+ a3 = vec_splat(a3, 1);
+}
+
+template<> EIGEN_DEVICE_FUNC inline Packet4i pgather<int, Packet4i>(const int* from, Index stride)
+{
+ int EIGEN_ALIGN16 ai[4];
+ ai[0] = from[0*stride];
+ ai[1] = from[1*stride];
+ ai[2] = from[2*stride];
+ ai[3] = from[3*stride];
+ return pload<Packet4i>(ai);
+}
+
+template<> EIGEN_DEVICE_FUNC inline Packet4f pgather<float, Packet4f>(const float* from, Index stride)
+{
+ float EIGEN_ALIGN16 ai[4];
+ ai[0] = from[0*stride];
+ ai[1] = from[1*stride];
+ ai[2] = from[2*stride];
+ ai[3] = from[3*stride];
+ return pload<Packet4f>(ai);
+}
+
+template<> EIGEN_DEVICE_FUNC inline Packet2d pgather<double, Packet2d>(const double* from, Index stride)
+{
+ double EIGEN_ALIGN16 af[2];
+ af[0] = from[0*stride];
+ af[1] = from[1*stride];
+ return pload<Packet2d>(af);
+}
+
+template<> EIGEN_DEVICE_FUNC inline void pscatter<int, Packet4i>(int* to, const Packet4i& from, Index stride)
+{
+ int EIGEN_ALIGN16 ai[4];
+ pstore<int>((int *)ai, from);
+ to[0*stride] = ai[0];
+ to[1*stride] = ai[1];
+ to[2*stride] = ai[2];
+ to[3*stride] = ai[3];
+}
+
+template<> EIGEN_DEVICE_FUNC inline void pscatter<float, Packet4f>(float* to, const Packet4f& from, Index stride)
+{
+ float EIGEN_ALIGN16 ai[4];
+ pstore<float>((float *)ai, from);
+ to[0*stride] = ai[0];
+ to[1*stride] = ai[1];
+ to[2*stride] = ai[2];
+ to[3*stride] = ai[3];
+}
+
+template<> EIGEN_DEVICE_FUNC inline void pscatter<double, Packet2d>(double* to, const Packet2d& from, Index stride)
+{
+ double EIGEN_ALIGN16 af[2];
+ pstore<double>(af, from);
+ to[0*stride] = af[0];
+ to[1*stride] = af[1];
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i padd<Packet4i>(const Packet4i& a, const Packet4i& b) { return (a + b); }
+template<> EIGEN_STRONG_INLINE Packet4f padd<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+ Packet4f c;
+ c.v4f[0] = a.v4f[0] + b.v4f[0];
+ c.v4f[1] = a.v4f[1] + b.v4f[1];
+ return c;
+}
+template<> EIGEN_STRONG_INLINE Packet2d padd<Packet2d>(const Packet2d& a, const Packet2d& b) { return (a + b); }
+
+template<> EIGEN_STRONG_INLINE Packet4i psub<Packet4i>(const Packet4i& a, const Packet4i& b) { return (a - b); }
+template<> EIGEN_STRONG_INLINE Packet4f psub<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+ Packet4f c;
+ c.v4f[0] = a.v4f[0] - b.v4f[0];
+ c.v4f[1] = a.v4f[1] - b.v4f[1];
+ return c;
+}
+template<> EIGEN_STRONG_INLINE Packet2d psub<Packet2d>(const Packet2d& a, const Packet2d& b) { return (a - b); }
+
+template<> EIGEN_STRONG_INLINE Packet4i pmul<Packet4i>(const Packet4i& a, const Packet4i& b) { return (a * b); }
+template<> EIGEN_STRONG_INLINE Packet4f pmul<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+ Packet4f c;
+ c.v4f[0] = a.v4f[0] * b.v4f[0];
+ c.v4f[1] = a.v4f[1] * b.v4f[1];
+ return c;
+}
+template<> EIGEN_STRONG_INLINE Packet2d pmul<Packet2d>(const Packet2d& a, const Packet2d& b) { return (a * b); }
+
+template<> EIGEN_STRONG_INLINE Packet4i pdiv<Packet4i>(const Packet4i& a, const Packet4i& b) { return (a / b); }
+template<> EIGEN_STRONG_INLINE Packet4f pdiv<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+ Packet4f c;
+ c.v4f[0] = a.v4f[0] / b.v4f[0];
+ c.v4f[1] = a.v4f[1] / b.v4f[1];
+ return c;
+}
+template<> EIGEN_STRONG_INLINE Packet2d pdiv<Packet2d>(const Packet2d& a, const Packet2d& b) { return (a / b); }
+
+template<> EIGEN_STRONG_INLINE Packet4i pnegate(const Packet4i& a) { return (-a); }
+template<> EIGEN_STRONG_INLINE Packet4f pnegate(const Packet4f& a)
+{
+ Packet4f c;
+ c.v4f[0] = -a.v4f[0];
+ c.v4f[1] = -a.v4f[1];
+ return c;
+}
+template<> EIGEN_STRONG_INLINE Packet2d pnegate(const Packet2d& a) { return (-a); }
+
+template<> EIGEN_STRONG_INLINE Packet4i pconj(const Packet4i& a) { return a; }
+template<> EIGEN_STRONG_INLINE Packet4f pconj(const Packet4f& a) { return a; }
+template<> EIGEN_STRONG_INLINE Packet2d pconj(const Packet2d& a) { return a; }
+
+template<> EIGEN_STRONG_INLINE Packet4i pmadd(const Packet4i& a, const Packet4i& b, const Packet4i& c) { return padd<Packet4i>(pmul<Packet4i>(a, b), c); }
+template<> EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f& a, const Packet4f& b, const Packet4f& c)
+{
+ Packet4f res;
+ res.v4f[0] = vec_madd(a.v4f[0], b.v4f[0], c.v4f[0]);
+ res.v4f[1] = vec_madd(a.v4f[1], b.v4f[1], c.v4f[1]);
+ return res;
+}
+template<> EIGEN_STRONG_INLINE Packet2d pmadd(const Packet2d& a, const Packet2d& b, const Packet2d& c) { return vec_madd(a, b, c); }
+
+template<> EIGEN_STRONG_INLINE Packet4i plset<Packet4i>(const int& a) { return padd<Packet4i>(pset1<Packet4i>(a), p4i_COUNTDOWN); }
+template<> EIGEN_STRONG_INLINE Packet4f plset<Packet4f>(const float& a) { return padd<Packet4f>(pset1<Packet4f>(a), p4f_COUNTDOWN); }
+template<> EIGEN_STRONG_INLINE Packet2d plset<Packet2d>(const double& a) { return padd<Packet2d>(pset1<Packet2d>(a), p2d_COUNTDOWN); }
+
+template<> EIGEN_STRONG_INLINE Packet4i pmin<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_min(a, b); }
+template<> EIGEN_STRONG_INLINE Packet2d pmin<Packet2d>(const Packet2d& a, const Packet2d& b) { return vec_min(a, b); }
+template<> EIGEN_STRONG_INLINE Packet4f pmin<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+ Packet4f res;
+ res.v4f[0] = pmin(a.v4f[0], b.v4f[0]);
+ res.v4f[1] = pmin(a.v4f[1], b.v4f[1]);
+ return res;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i pmax<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_max(a, b); }
+template<> EIGEN_STRONG_INLINE Packet2d pmax<Packet2d>(const Packet2d& a, const Packet2d& b) { return vec_max(a, b); }
+template<> EIGEN_STRONG_INLINE Packet4f pmax<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+ Packet4f res;
+ res.v4f[0] = pmax(a.v4f[0], b.v4f[0]);
+ res.v4f[1] = pmax(a.v4f[1], b.v4f[1]);
+ return res;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i pand<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_and(a, b); }
+template<> EIGEN_STRONG_INLINE Packet2d pand<Packet2d>(const Packet2d& a, const Packet2d& b) { return vec_and(a, b); }
+template<> EIGEN_STRONG_INLINE Packet4f pand<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+ Packet4f res;
+ res.v4f[0] = pand(a.v4f[0], b.v4f[0]);
+ res.v4f[1] = pand(a.v4f[1], b.v4f[1]);
+ return res;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i por<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_or(a, b); }
+template<> EIGEN_STRONG_INLINE Packet2d por<Packet2d>(const Packet2d& a, const Packet2d& b) { return vec_or(a, b); }
+template<> EIGEN_STRONG_INLINE Packet4f por<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+ Packet4f res;
+ res.v4f[0] = pand(a.v4f[0], b.v4f[0]);
+ res.v4f[1] = pand(a.v4f[1], b.v4f[1]);
+ return res;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i pxor<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_xor(a, b); }
+template<> EIGEN_STRONG_INLINE Packet2d pxor<Packet2d>(const Packet2d& a, const Packet2d& b) { return vec_xor(a, b); }
+template<> EIGEN_STRONG_INLINE Packet4f pxor<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+ Packet4f res;
+ res.v4f[0] = pand(a.v4f[0], b.v4f[0]);
+ res.v4f[1] = pand(a.v4f[1], b.v4f[1]);
+ return res;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i pandnot<Packet4i>(const Packet4i& a, const Packet4i& b) { return pand<Packet4i>(a, vec_nor(b, b)); }
+template<> EIGEN_STRONG_INLINE Packet2d pandnot<Packet2d>(const Packet2d& a, const Packet2d& b) { return vec_and(a, vec_nor(b, b)); }
+template<> EIGEN_STRONG_INLINE Packet4f pandnot<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+ Packet4f res;
+ res.v4f[0] = pandnot(a.v4f[0], b.v4f[0]);
+ res.v4f[1] = pandnot(a.v4f[1], b.v4f[1]);
+ return res;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f pround<Packet4f>(const Packet4f& a)
+{
+ Packet4f res;
+ res.v4f[0] = vec_round(a.v4f[0]);
+ res.v4f[1] = vec_round(a.v4f[1]);
+ return res;
+}
+template<> EIGEN_STRONG_INLINE Packet2d pround<Packet2d>(const Packet2d& a) { return vec_round(a); }
+template<> EIGEN_STRONG_INLINE Packet4f pceil<Packet4f>(const Packet4f& a)
+{
+ Packet4f res;
+ res.v4f[0] = vec_ceil(a.v4f[0]);
+ res.v4f[1] = vec_ceil(a.v4f[1]);
+ return res;
+}
+template<> EIGEN_STRONG_INLINE Packet2d pceil<Packet2d>(const Packet2d& a) { return vec_ceil(a); }
+template<> EIGEN_STRONG_INLINE Packet4f pfloor<Packet4f>(const Packet4f& a)
+{
+ Packet4f res;
+ res.v4f[0] = vec_floor(a.v4f[0]);
+ res.v4f[1] = vec_floor(a.v4f[1]);
+ return res;
+}
+template<> EIGEN_STRONG_INLINE Packet2d pfloor<Packet2d>(const Packet2d& a) { return vec_floor(a); }
+
+template<> EIGEN_STRONG_INLINE Packet4i ploadu<Packet4i>(const int* from) { return pload<Packet4i>(from); }
+template<> EIGEN_STRONG_INLINE Packet4f ploadu<Packet4f>(const float* from) { return pload<Packet4f>(from); }
+template<> EIGEN_STRONG_INLINE Packet2d ploadu<Packet2d>(const double* from) { return pload<Packet2d>(from); }
+
+
+template<> EIGEN_STRONG_INLINE Packet4i ploaddup<Packet4i>(const int* from)
+{
+ Packet4i p = pload<Packet4i>(from);
+ return vec_perm(p, p, p16uc_DUPLICATE32_HI);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f ploaddup<Packet4f>(const float* from)
+{
+ Packet4f p = pload<Packet4f>(from);
+ p.v4f[1] = vec_splat(p.v4f[0], 1);
+ p.v4f[0] = vec_splat(p.v4f[0], 0);
+ return p;
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d ploaddup<Packet2d>(const double* from)
+{
+ Packet2d p = pload<Packet2d>(from);
+ return vec_perm(p, p, p16uc_PSET64_HI);
+}
+
+template<> EIGEN_STRONG_INLINE void pstoreu<int>(int* to, const Packet4i& from) { pstore<int>(to, from); }
+template<> EIGEN_STRONG_INLINE void pstoreu<float>(float* to, const Packet4f& from) { pstore<float>(to, from); }
+template<> EIGEN_STRONG_INLINE void pstoreu<double>(double* to, const Packet2d& from) { pstore<double>(to, from); }
+
+template<> EIGEN_STRONG_INLINE void prefetch<int>(const int* addr) { EIGEN_ZVECTOR_PREFETCH(addr); }
+template<> EIGEN_STRONG_INLINE void prefetch<float>(const float* addr) { EIGEN_ZVECTOR_PREFETCH(addr); }
+template<> EIGEN_STRONG_INLINE void prefetch<double>(const double* addr) { EIGEN_ZVECTOR_PREFETCH(addr); }
+
+template<> EIGEN_STRONG_INLINE int pfirst<Packet4i>(const Packet4i& a) { int EIGEN_ALIGN16 x[4]; pstore(x, a); return x[0]; }
+template<> EIGEN_STRONG_INLINE float pfirst<Packet4f>(const Packet4f& a) { float EIGEN_ALIGN16 x[2]; vec_st2f(a.v4f[0], &x[0]); return x[0]; }
+template<> EIGEN_STRONG_INLINE double pfirst<Packet2d>(const Packet2d& a) { double EIGEN_ALIGN16 x[2]; pstore(x, a); return x[0]; }
+
+template<> EIGEN_STRONG_INLINE Packet4i preverse(const Packet4i& a)
+{
+ return reinterpret_cast<Packet4i>(vec_perm(reinterpret_cast<Packet16uc>(a), reinterpret_cast<Packet16uc>(a), p16uc_REVERSE32));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d preverse(const Packet2d& a)
+{
+ return reinterpret_cast<Packet2d>(vec_perm(reinterpret_cast<Packet16uc>(a), reinterpret_cast<Packet16uc>(a), p16uc_REVERSE64));
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f preverse(const Packet4f& a)
+{
+ Packet4f rev;
+ rev.v4f[0] = preverse<Packet2d>(a.v4f[1]);
+ rev.v4f[1] = preverse<Packet2d>(a.v4f[0]);
+ return rev;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i pabs<Packet4i>(const Packet4i& a) { return vec_abs(a); }
+template<> EIGEN_STRONG_INLINE Packet2d pabs<Packet2d>(const Packet2d& a) { return vec_abs(a); }
+template<> EIGEN_STRONG_INLINE Packet4f pabs<Packet4f>(const Packet4f& a)
+{
+ Packet4f res;
+ res.v4f[0] = pabs(a.v4f[0]);
+ res.v4f[1] = pabs(a.v4f[1]);
+ return res;
+}
+
+template<> EIGEN_STRONG_INLINE int predux<Packet4i>(const Packet4i& a)
+{
+ Packet4i b, sum;
+ b = vec_sld(a, a, 8);
+ sum = padd<Packet4i>(a, b);
+ b = vec_sld(sum, sum, 4);
+ sum = padd<Packet4i>(sum, b);
+ return pfirst(sum);
+}
+
+template<> EIGEN_STRONG_INLINE double predux<Packet2d>(const Packet2d& a)
+{
+ Packet2d b, sum;
+ b = reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4i>(a), reinterpret_cast<Packet4i>(a), 8));
+ sum = padd<Packet2d>(a, b);
+ return pfirst(sum);
+}
+template<> EIGEN_STRONG_INLINE float predux<Packet4f>(const Packet4f& a)
+{
+ Packet2d sum;
+ sum = padd<Packet2d>(a.v4f[0], a.v4f[1]);
+ double first = predux<Packet2d>(sum);
+ return static_cast<float>(first);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i preduxp<Packet4i>(const Packet4i* vecs)
+{
+ Packet4i v[4], sum[4];
+
+ // It's easier and faster to transpose then add as columns
+ // Check: http://www.freevec.org/function/matrix_4x4_transpose_floats for explanation
+ // Do the transpose, first set of moves
+ v[0] = vec_mergeh(vecs[0], vecs[2]);
+ v[1] = vec_mergel(vecs[0], vecs[2]);
+ v[2] = vec_mergeh(vecs[1], vecs[3]);
+ v[3] = vec_mergel(vecs[1], vecs[3]);
+ // Get the resulting vectors
+ sum[0] = vec_mergeh(v[0], v[2]);
+ sum[1] = vec_mergel(v[0], v[2]);
+ sum[2] = vec_mergeh(v[1], v[3]);
+ sum[3] = vec_mergel(v[1], v[3]);
+
+ // Now do the summation:
+ // Lines 0+1
+ sum[0] = padd<Packet4i>(sum[0], sum[1]);
+ // Lines 2+3
+ sum[1] = padd<Packet4i>(sum[2], sum[3]);
+ // Add the results
+ sum[0] = padd<Packet4i>(sum[0], sum[1]);
+
+ return sum[0];
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d preduxp<Packet2d>(const Packet2d* vecs)
+{
+ Packet2d v[2], sum;
+ v[0] = padd<Packet2d>(vecs[0], reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4ui>(vecs[0]), reinterpret_cast<Packet4ui>(vecs[0]), 8)));
+ v[1] = padd<Packet2d>(vecs[1], reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4ui>(vecs[1]), reinterpret_cast<Packet4ui>(vecs[1]), 8)));
+
+ sum = reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4ui>(v[0]), reinterpret_cast<Packet4ui>(v[1]), 8));
+
+ return sum;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f preduxp<Packet4f>(const Packet4f* vecs)
+{
+ PacketBlock<Packet4f,4> transpose;
+ transpose.packet[0] = vecs[0];
+ transpose.packet[1] = vecs[1];
+ transpose.packet[2] = vecs[2];
+ transpose.packet[3] = vecs[3];
+ ptranspose(transpose);
+
+ Packet4f sum = padd(transpose.packet[0], transpose.packet[1]);
+ sum = padd(sum, transpose.packet[2]);
+ sum = padd(sum, transpose.packet[3]);
+ return sum;
+}
+
+// Other reduction functions:
+// mul
+template<> EIGEN_STRONG_INLINE int predux_mul<Packet4i>(const Packet4i& a)
+{
+ EIGEN_ALIGN16 int aux[4];
+ pstore(aux, a);
+ return aux[0] * aux[1] * aux[2] * aux[3];
+}
+
+template<> EIGEN_STRONG_INLINE double predux_mul<Packet2d>(const Packet2d& a)
+{
+ return pfirst(pmul(a, reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4i>(a), reinterpret_cast<Packet4i>(a), 8))));
+}
+
+template<> EIGEN_STRONG_INLINE float predux_mul<Packet4f>(const Packet4f& a)
+{
+ // Return predux_mul<Packet2d> of the subvectors product
+ return static_cast<float>(pfirst(predux_mul(pmul(a.v4f[0], a.v4f[1]))));
+}
+
+// min
+template<> EIGEN_STRONG_INLINE int predux_min<Packet4i>(const Packet4i& a)
+{
+ Packet4i b, res;
+ b = pmin<Packet4i>(a, vec_sld(a, a, 8));
+ res = pmin<Packet4i>(b, vec_sld(b, b, 4));
+ return pfirst(res);
+}
+
+template<> EIGEN_STRONG_INLINE double predux_min<Packet2d>(const Packet2d& a)
+{
+ return pfirst(pmin<Packet2d>(a, reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4i>(a), reinterpret_cast<Packet4i>(a), 8))));
+}
+
+template<> EIGEN_STRONG_INLINE float predux_min<Packet4f>(const Packet4f& a)
+{
+ Packet2d b, res;
+ b = pmin<Packet2d>(a.v4f[0], a.v4f[1]);
+ res = pmin<Packet2d>(b, reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4i>(b), reinterpret_cast<Packet4i>(b), 8)));
+ return static_cast<float>(pfirst(res));
+}
+
+// max
+template<> EIGEN_STRONG_INLINE int predux_max<Packet4i>(const Packet4i& a)
+{
+ Packet4i b, res;
+ b = pmax<Packet4i>(a, vec_sld(a, a, 8));
+ res = pmax<Packet4i>(b, vec_sld(b, b, 4));
+ return pfirst(res);
+}
+
+// max
+template<> EIGEN_STRONG_INLINE double predux_max<Packet2d>(const Packet2d& a)
+{
+ return pfirst(pmax<Packet2d>(a, reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4i>(a), reinterpret_cast<Packet4i>(a), 8))));
+}
+
+template<> EIGEN_STRONG_INLINE float predux_max<Packet4f>(const Packet4f& a)
+{
+ Packet2d b, res;
+ b = pmax<Packet2d>(a.v4f[0], a.v4f[1]);
+ res = pmax<Packet2d>(b, reinterpret_cast<Packet2d>(vec_sld(reinterpret_cast<Packet4i>(b), reinterpret_cast<Packet4i>(b), 8)));
+ return static_cast<float>(pfirst(res));
+}
+
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<Packet4i,4>& kernel) {
+ Packet4i t0 = vec_mergeh(kernel.packet[0], kernel.packet[2]);
+ Packet4i t1 = vec_mergel(kernel.packet[0], kernel.packet[2]);
+ Packet4i t2 = vec_mergeh(kernel.packet[1], kernel.packet[3]);
+ Packet4i t3 = vec_mergel(kernel.packet[1], kernel.packet[3]);
+ kernel.packet[0] = vec_mergeh(t0, t2);
+ kernel.packet[1] = vec_mergel(t0, t2);
+ kernel.packet[2] = vec_mergeh(t1, t3);
+ kernel.packet[3] = vec_mergel(t1, t3);
+}
+
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<Packet2d,2>& kernel) {
+ Packet2d t0 = vec_perm(kernel.packet[0], kernel.packet[1], p16uc_TRANSPOSE64_HI);
+ Packet2d t1 = vec_perm(kernel.packet[0], kernel.packet[1], p16uc_TRANSPOSE64_LO);
+ kernel.packet[0] = t0;
+ kernel.packet[1] = t1;
+}
+
+/* Split the Packet4f PacketBlock into 4 Packet2d PacketBlocks and transpose each one
+ */
+EIGEN_DEVICE_FUNC inline void
+ptranspose(PacketBlock<Packet4f,4>& kernel) {
+ PacketBlock<Packet2d,2> t0,t1,t2,t3;
+ // copy top-left 2x2 Packet2d block
+ t0.packet[0] = kernel.packet[0].v4f[0];
+ t0.packet[1] = kernel.packet[1].v4f[0];
+
+ // copy top-right 2x2 Packet2d block
+ t1.packet[0] = kernel.packet[0].v4f[1];
+ t1.packet[1] = kernel.packet[1].v4f[1];
+
+ // copy bottom-left 2x2 Packet2d block
+ t2.packet[0] = kernel.packet[2].v4f[0];
+ t2.packet[1] = kernel.packet[3].v4f[0];
+
+ // copy bottom-right 2x2 Packet2d block
+ t3.packet[0] = kernel.packet[2].v4f[1];
+ t3.packet[1] = kernel.packet[3].v4f[1];
+
+ // Transpose all 2x2 blocks
+ ptranspose(t0);
+ ptranspose(t1);
+ ptranspose(t2);
+ ptranspose(t3);
+
+ // Copy back transposed blocks, but exchange t1 and t2 due to transposition
+ kernel.packet[0].v4f[0] = t0.packet[0];
+ kernel.packet[0].v4f[1] = t2.packet[0];
+ kernel.packet[1].v4f[0] = t0.packet[1];
+ kernel.packet[1].v4f[1] = t2.packet[1];
+ kernel.packet[2].v4f[0] = t1.packet[0];
+ kernel.packet[2].v4f[1] = t3.packet[0];
+ kernel.packet[3].v4f[0] = t1.packet[1];
+ kernel.packet[3].v4f[1] = t3.packet[1];
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i pblend(const Selector<4>& ifPacket, const Packet4i& thenPacket, const Packet4i& elsePacket) {
+ Packet4ui select = { ifPacket.select[0], ifPacket.select[1], ifPacket.select[2], ifPacket.select[3] };
+ Packet4ui mask = vec_cmpeq(select, reinterpret_cast<Packet4ui>(p4i_ONE));
+ return vec_sel(elsePacket, thenPacket, mask);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f pblend(const Selector<4>& ifPacket, const Packet4f& thenPacket, const Packet4f& elsePacket) {
+ Packet2ul select_hi = { ifPacket.select[0], ifPacket.select[1] };
+ Packet2ul select_lo = { ifPacket.select[2], ifPacket.select[3] };
+ Packet2ul mask_hi = vec_cmpeq(select_hi, reinterpret_cast<Packet2ul>(p2l_ONE));
+ Packet2ul mask_lo = vec_cmpeq(select_lo, reinterpret_cast<Packet2ul>(p2l_ONE));
+ Packet4f result;
+ result.v4f[0] = vec_sel(elsePacket.v4f[0], thenPacket.v4f[0], mask_hi);
+ result.v4f[1] = vec_sel(elsePacket.v4f[1], thenPacket.v4f[1], mask_lo);
+ return result;
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d pblend(const Selector<2>& ifPacket, const Packet2d& thenPacket, const Packet2d& elsePacket) {
+ Packet2ul select = { ifPacket.select[0], ifPacket.select[1] };
+ Packet2ul mask = vec_cmpeq(select, reinterpret_cast<Packet2ul>(p2l_ONE));
+ return vec_sel(elsePacket, thenPacket, mask);
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PACKET_MATH_ZVECTOR_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/AssignmentFunctors.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/AssignmentFunctors.h
new file mode 100644
index 000000000..4153b877c
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/AssignmentFunctors.h
@@ -0,0 +1,168 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ASSIGNMENT_FUNCTORS_H
+#define EIGEN_ASSIGNMENT_FUNCTORS_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** \internal
+ * \brief Template functor for scalar/packet assignment
+ *
+ */
+template<typename DstScalar,typename SrcScalar> struct assign_op {
+
+ EIGEN_EMPTY_STRUCT_CTOR(assign_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void assignCoeff(DstScalar& a, const SrcScalar& b) const { a = b; }
+
+ template<int Alignment, typename Packet>
+ EIGEN_STRONG_INLINE void assignPacket(DstScalar* a, const Packet& b) const
+ { internal::pstoret<DstScalar,Packet,Alignment>(a,b); }
+};
+
+// Empty overload for void type (used by PermutationMatrix)
+template<typename DstScalar> struct assign_op<DstScalar,void> {};
+
+template<typename DstScalar,typename SrcScalar>
+struct functor_traits<assign_op<DstScalar,SrcScalar> > {
+ enum {
+ Cost = NumTraits<DstScalar>::ReadCost,
+ PacketAccess = is_same<DstScalar,SrcScalar>::value && packet_traits<DstScalar>::Vectorizable && packet_traits<SrcScalar>::Vectorizable
+ };
+};
+
+/** \internal
+ * \brief Template functor for scalar/packet assignment with addition
+ *
+ */
+template<typename DstScalar,typename SrcScalar> struct add_assign_op {
+
+ EIGEN_EMPTY_STRUCT_CTOR(add_assign_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void assignCoeff(DstScalar& a, const SrcScalar& b) const { a += b; }
+
+ template<int Alignment, typename Packet>
+ EIGEN_STRONG_INLINE void assignPacket(DstScalar* a, const Packet& b) const
+ { internal::pstoret<DstScalar,Packet,Alignment>(a,internal::padd(internal::ploadt<Packet,Alignment>(a),b)); }
+};
+template<typename DstScalar,typename SrcScalar>
+struct functor_traits<add_assign_op<DstScalar,SrcScalar> > {
+ enum {
+ Cost = NumTraits<DstScalar>::ReadCost + NumTraits<DstScalar>::AddCost,
+ PacketAccess = is_same<DstScalar,SrcScalar>::value && packet_traits<DstScalar>::HasAdd
+ };
+};
+
+/** \internal
+ * \brief Template functor for scalar/packet assignment with subtraction
+ *
+ */
+template<typename DstScalar,typename SrcScalar> struct sub_assign_op {
+
+ EIGEN_EMPTY_STRUCT_CTOR(sub_assign_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void assignCoeff(DstScalar& a, const SrcScalar& b) const { a -= b; }
+
+ template<int Alignment, typename Packet>
+ EIGEN_STRONG_INLINE void assignPacket(DstScalar* a, const Packet& b) const
+ { internal::pstoret<DstScalar,Packet,Alignment>(a,internal::psub(internal::ploadt<Packet,Alignment>(a),b)); }
+};
+template<typename DstScalar,typename SrcScalar>
+struct functor_traits<sub_assign_op<DstScalar,SrcScalar> > {
+ enum {
+ Cost = NumTraits<DstScalar>::ReadCost + NumTraits<DstScalar>::AddCost,
+ PacketAccess = is_same<DstScalar,SrcScalar>::value && packet_traits<DstScalar>::HasSub
+ };
+};
+
+/** \internal
+ * \brief Template functor for scalar/packet assignment with multiplication
+ *
+ */
+template<typename DstScalar, typename SrcScalar=DstScalar>
+struct mul_assign_op {
+
+ EIGEN_EMPTY_STRUCT_CTOR(mul_assign_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void assignCoeff(DstScalar& a, const SrcScalar& b) const { a *= b; }
+
+ template<int Alignment, typename Packet>
+ EIGEN_STRONG_INLINE void assignPacket(DstScalar* a, const Packet& b) const
+ { internal::pstoret<DstScalar,Packet,Alignment>(a,internal::pmul(internal::ploadt<Packet,Alignment>(a),b)); }
+};
+template<typename DstScalar, typename SrcScalar>
+struct functor_traits<mul_assign_op<DstScalar,SrcScalar> > {
+ enum {
+ Cost = NumTraits<DstScalar>::ReadCost + NumTraits<DstScalar>::MulCost,
+ PacketAccess = is_same<DstScalar,SrcScalar>::value && packet_traits<DstScalar>::HasMul
+ };
+};
+
+/** \internal
+ * \brief Template functor for scalar/packet assignment with diviving
+ *
+ */
+template<typename DstScalar, typename SrcScalar=DstScalar> struct div_assign_op {
+
+ EIGEN_EMPTY_STRUCT_CTOR(div_assign_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void assignCoeff(DstScalar& a, const SrcScalar& b) const { a /= b; }
+
+ template<int Alignment, typename Packet>
+ EIGEN_STRONG_INLINE void assignPacket(DstScalar* a, const Packet& b) const
+ { internal::pstoret<DstScalar,Packet,Alignment>(a,internal::pdiv(internal::ploadt<Packet,Alignment>(a),b)); }
+};
+template<typename DstScalar, typename SrcScalar>
+struct functor_traits<div_assign_op<DstScalar,SrcScalar> > {
+ enum {
+ Cost = NumTraits<DstScalar>::ReadCost + NumTraits<DstScalar>::MulCost,
+ PacketAccess = is_same<DstScalar,SrcScalar>::value && packet_traits<DstScalar>::HasDiv
+ };
+};
+
+/** \internal
+ * \brief Template functor for scalar/packet assignment with swapping
+ *
+ * It works as follow. For a non-vectorized evaluation loop, we have:
+ * for(i) func(A.coeffRef(i), B.coeff(i));
+ * where B is a SwapWrapper expression. The trick is to make SwapWrapper::coeff behaves like a non-const coeffRef.
+ * Actually, SwapWrapper might not even be needed since even if B is a plain expression, since it has to be writable
+ * B.coeff already returns a const reference to the underlying scalar value.
+ *
+ * The case of a vectorized loop is more tricky:
+ * for(i,j) func.assignPacket<A_Align>(&A.coeffRef(i,j), B.packet<B_Align>(i,j));
+ * Here, B must be a SwapWrapper whose packet function actually returns a proxy object holding a Scalar*,
+ * the actual alignment and Packet type.
+ *
+ */
+template<typename Scalar> struct swap_assign_op {
+
+ EIGEN_EMPTY_STRUCT_CTOR(swap_assign_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void assignCoeff(Scalar& a, const Scalar& b) const
+ {
+#ifdef __CUDACC__
+ // FIXME is there some kind of cuda::swap?
+ Scalar t=b; const_cast<Scalar&>(b)=a; a=t;
+#else
+ using std::swap;
+ swap(a,const_cast<Scalar&>(b));
+#endif
+ }
+};
+template<typename Scalar>
+struct functor_traits<swap_assign_op<Scalar> > {
+ enum {
+ Cost = 3 * NumTraits<Scalar>::ReadCost,
+ PacketAccess = packet_traits<Scalar>::Vectorizable
+ };
+};
+
+} // namespace internal
+
+} // namespace Eigen
+
+#endif // EIGEN_ASSIGNMENT_FUNCTORS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/BinaryFunctors.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/BinaryFunctors.h
new file mode 100644
index 000000000..96747bac7
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/BinaryFunctors.h
@@ -0,0 +1,482 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BINARY_FUNCTORS_H
+#define EIGEN_BINARY_FUNCTORS_H
+
+namespace Eigen {
+
+namespace internal {
+
+//---------- associative binary functors ----------
+
+template<typename Arg1, typename Arg2>
+struct binary_op_base
+{
+ typedef Arg1 first_argument_type;
+ typedef Arg2 second_argument_type;
+};
+
+/** \internal
+ * \brief Template functor to compute the sum of two scalars
+ *
+ * \sa class CwiseBinaryOp, MatrixBase::operator+, class VectorwiseOp, DenseBase::sum()
+ */
+template<typename LhsScalar,typename RhsScalar>
+struct scalar_sum_op : binary_op_base<LhsScalar,RhsScalar>
+{
+ typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar,scalar_sum_op>::ReturnType result_type;
+#ifndef EIGEN_SCALAR_BINARY_OP_PLUGIN
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_sum_op)
+#else
+ scalar_sum_op() {
+ EIGEN_SCALAR_BINARY_OP_PLUGIN
+ }
+#endif
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator() (const LhsScalar& a, const RhsScalar& b) const { return a + b; }
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+ { return internal::padd(a,b); }
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type predux(const Packet& a) const
+ { return internal::predux(a); }
+};
+template<typename LhsScalar,typename RhsScalar>
+struct functor_traits<scalar_sum_op<LhsScalar,RhsScalar> > {
+ enum {
+ Cost = (NumTraits<LhsScalar>::AddCost+NumTraits<RhsScalar>::AddCost)/2, // rough estimate!
+ PacketAccess = is_same<LhsScalar,RhsScalar>::value && packet_traits<LhsScalar>::HasAdd && packet_traits<RhsScalar>::HasAdd
+ // TODO vectorize mixed sum
+ };
+};
+
+/** \internal
+ * \brief Template specialization to deprecate the summation of boolean expressions.
+ * This is required to solve Bug 426.
+ * \sa DenseBase::count(), DenseBase::any(), ArrayBase::cast(), MatrixBase::cast()
+ */
+template<> struct scalar_sum_op<bool,bool> : scalar_sum_op<int,int> {
+ EIGEN_DEPRECATED
+ scalar_sum_op() {}
+};
+
+
+/** \internal
+ * \brief Template functor to compute the product of two scalars
+ *
+ * \sa class CwiseBinaryOp, Cwise::operator*(), class VectorwiseOp, MatrixBase::redux()
+ */
+template<typename LhsScalar,typename RhsScalar>
+struct scalar_product_op : binary_op_base<LhsScalar,RhsScalar>
+{
+ typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar,scalar_product_op>::ReturnType result_type;
+#ifndef EIGEN_SCALAR_BINARY_OP_PLUGIN
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_product_op)
+#else
+ scalar_product_op() {
+ EIGEN_SCALAR_BINARY_OP_PLUGIN
+ }
+#endif
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator() (const LhsScalar& a, const RhsScalar& b) const { return a * b; }
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+ { return internal::pmul(a,b); }
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type predux(const Packet& a) const
+ { return internal::predux_mul(a); }
+};
+template<typename LhsScalar,typename RhsScalar>
+struct functor_traits<scalar_product_op<LhsScalar,RhsScalar> > {
+ enum {
+ Cost = (NumTraits<LhsScalar>::MulCost + NumTraits<RhsScalar>::MulCost)/2, // rough estimate!
+ PacketAccess = is_same<LhsScalar,RhsScalar>::value && packet_traits<LhsScalar>::HasMul && packet_traits<RhsScalar>::HasMul
+ // TODO vectorize mixed product
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the conjugate product of two scalars
+ *
+ * This is a short cut for conj(x) * y which is needed for optimization purpose; in Eigen2 support mode, this becomes x * conj(y)
+ */
+template<typename LhsScalar,typename RhsScalar>
+struct scalar_conj_product_op : binary_op_base<LhsScalar,RhsScalar>
+{
+
+ enum {
+ Conj = NumTraits<LhsScalar>::IsComplex
+ };
+
+ typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar,scalar_conj_product_op>::ReturnType result_type;
+
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_conj_product_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator() (const LhsScalar& a, const RhsScalar& b) const
+ { return conj_helper<LhsScalar,RhsScalar,Conj,false>().pmul(a,b); }
+
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+ { return conj_helper<Packet,Packet,Conj,false>().pmul(a,b); }
+};
+template<typename LhsScalar,typename RhsScalar>
+struct functor_traits<scalar_conj_product_op<LhsScalar,RhsScalar> > {
+ enum {
+ Cost = NumTraits<LhsScalar>::MulCost,
+ PacketAccess = internal::is_same<LhsScalar, RhsScalar>::value && packet_traits<LhsScalar>::HasMul
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the min of two scalars
+ *
+ * \sa class CwiseBinaryOp, MatrixBase::cwiseMin, class VectorwiseOp, MatrixBase::minCoeff()
+ */
+template<typename LhsScalar,typename RhsScalar>
+struct scalar_min_op : binary_op_base<LhsScalar,RhsScalar>
+{
+ typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar,scalar_min_op>::ReturnType result_type;
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_min_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator() (const LhsScalar& a, const RhsScalar& b) const { return numext::mini(a, b); }
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+ { return internal::pmin(a,b); }
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type predux(const Packet& a) const
+ { return internal::predux_min(a); }
+};
+template<typename LhsScalar,typename RhsScalar>
+struct functor_traits<scalar_min_op<LhsScalar,RhsScalar> > {
+ enum {
+ Cost = (NumTraits<LhsScalar>::AddCost+NumTraits<RhsScalar>::AddCost)/2,
+ PacketAccess = internal::is_same<LhsScalar, RhsScalar>::value && packet_traits<LhsScalar>::HasMin
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the max of two scalars
+ *
+ * \sa class CwiseBinaryOp, MatrixBase::cwiseMax, class VectorwiseOp, MatrixBase::maxCoeff()
+ */
+template<typename LhsScalar,typename RhsScalar>
+struct scalar_max_op : binary_op_base<LhsScalar,RhsScalar>
+{
+ typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar,scalar_max_op>::ReturnType result_type;
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_max_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator() (const LhsScalar& a, const RhsScalar& b) const { return numext::maxi(a, b); }
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+ { return internal::pmax(a,b); }
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type predux(const Packet& a) const
+ { return internal::predux_max(a); }
+};
+template<typename LhsScalar,typename RhsScalar>
+struct functor_traits<scalar_max_op<LhsScalar,RhsScalar> > {
+ enum {
+ Cost = (NumTraits<LhsScalar>::AddCost+NumTraits<RhsScalar>::AddCost)/2,
+ PacketAccess = internal::is_same<LhsScalar, RhsScalar>::value && packet_traits<LhsScalar>::HasMax
+ };
+};
+
+/** \internal
+ * \brief Template functors for comparison of two scalars
+ * \todo Implement packet-comparisons
+ */
+template<typename LhsScalar, typename RhsScalar, ComparisonName cmp> struct scalar_cmp_op;
+
+template<typename LhsScalar, typename RhsScalar, ComparisonName cmp>
+struct functor_traits<scalar_cmp_op<LhsScalar,RhsScalar, cmp> > {
+ enum {
+ Cost = (NumTraits<LhsScalar>::AddCost+NumTraits<RhsScalar>::AddCost)/2,
+ PacketAccess = false
+ };
+};
+
+template<ComparisonName Cmp, typename LhsScalar, typename RhsScalar>
+struct result_of<scalar_cmp_op<LhsScalar, RhsScalar, Cmp>(LhsScalar,RhsScalar)> {
+ typedef bool type;
+};
+
+
+template<typename LhsScalar, typename RhsScalar>
+struct scalar_cmp_op<LhsScalar,RhsScalar, cmp_EQ> : binary_op_base<LhsScalar,RhsScalar>
+{
+ typedef bool result_type;
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_cmp_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator()(const LhsScalar& a, const RhsScalar& b) const {return a==b;}
+};
+template<typename LhsScalar, typename RhsScalar>
+struct scalar_cmp_op<LhsScalar,RhsScalar, cmp_LT> : binary_op_base<LhsScalar,RhsScalar>
+{
+ typedef bool result_type;
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_cmp_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator()(const LhsScalar& a, const RhsScalar& b) const {return a<b;}
+};
+template<typename LhsScalar, typename RhsScalar>
+struct scalar_cmp_op<LhsScalar,RhsScalar, cmp_LE> : binary_op_base<LhsScalar,RhsScalar>
+{
+ typedef bool result_type;
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_cmp_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator()(const LhsScalar& a, const RhsScalar& b) const {return a<=b;}
+};
+template<typename LhsScalar, typename RhsScalar>
+struct scalar_cmp_op<LhsScalar,RhsScalar, cmp_GT> : binary_op_base<LhsScalar,RhsScalar>
+{
+ typedef bool result_type;
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_cmp_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator()(const LhsScalar& a, const RhsScalar& b) const {return a>b;}
+};
+template<typename LhsScalar, typename RhsScalar>
+struct scalar_cmp_op<LhsScalar,RhsScalar, cmp_GE> : binary_op_base<LhsScalar,RhsScalar>
+{
+ typedef bool result_type;
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_cmp_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator()(const LhsScalar& a, const RhsScalar& b) const {return a>=b;}
+};
+template<typename LhsScalar, typename RhsScalar>
+struct scalar_cmp_op<LhsScalar,RhsScalar, cmp_UNORD> : binary_op_base<LhsScalar,RhsScalar>
+{
+ typedef bool result_type;
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_cmp_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator()(const LhsScalar& a, const RhsScalar& b) const {return !(a<=b || b<=a);}
+};
+template<typename LhsScalar, typename RhsScalar>
+struct scalar_cmp_op<LhsScalar,RhsScalar, cmp_NEQ> : binary_op_base<LhsScalar,RhsScalar>
+{
+ typedef bool result_type;
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_cmp_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator()(const LhsScalar& a, const RhsScalar& b) const {return a!=b;}
+};
+
+
+/** \internal
+ * \brief Template functor to compute the hypot of two scalars
+ *
+ * \sa MatrixBase::stableNorm(), class Redux
+ */
+template<typename Scalar>
+struct scalar_hypot_op<Scalar,Scalar> : binary_op_base<Scalar,Scalar>
+{
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_hypot_op)
+// typedef typename NumTraits<Scalar>::Real result_type;
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& _x, const Scalar& _y) const
+ {
+ EIGEN_USING_STD_MATH(sqrt)
+ Scalar p, qp;
+ if(_x>_y)
+ {
+ p = _x;
+ qp = _y / p;
+ }
+ else
+ {
+ p = _y;
+ qp = _x / p;
+ }
+ return p * sqrt(Scalar(1) + qp*qp);
+ }
+};
+template<typename Scalar>
+struct functor_traits<scalar_hypot_op<Scalar,Scalar> > {
+ enum
+ {
+ Cost = 3 * NumTraits<Scalar>::AddCost +
+ 2 * NumTraits<Scalar>::MulCost +
+ 2 * scalar_div_cost<Scalar,false>::value,
+ PacketAccess = false
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the pow of two scalars
+ */
+template<typename Scalar, typename Exponent>
+struct scalar_pow_op : binary_op_base<Scalar,Exponent>
+{
+ typedef typename ScalarBinaryOpTraits<Scalar,Exponent,scalar_pow_op>::ReturnType result_type;
+#ifndef EIGEN_SCALAR_BINARY_OP_PLUGIN
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_pow_op)
+#else
+ scalar_pow_op() {
+ typedef Scalar LhsScalar;
+ typedef Exponent RhsScalar;
+ EIGEN_SCALAR_BINARY_OP_PLUGIN
+ }
+#endif
+ EIGEN_DEVICE_FUNC
+ inline result_type operator() (const Scalar& a, const Exponent& b) const { return numext::pow(a, b); }
+};
+template<typename Scalar, typename Exponent>
+struct functor_traits<scalar_pow_op<Scalar,Exponent> > {
+ enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = false };
+};
+
+
+
+//---------- non associative binary functors ----------
+
+/** \internal
+ * \brief Template functor to compute the difference of two scalars
+ *
+ * \sa class CwiseBinaryOp, MatrixBase::operator-
+ */
+template<typename LhsScalar,typename RhsScalar>
+struct scalar_difference_op : binary_op_base<LhsScalar,RhsScalar>
+{
+ typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar,scalar_difference_op>::ReturnType result_type;
+#ifndef EIGEN_SCALAR_BINARY_OP_PLUGIN
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_difference_op)
+#else
+ scalar_difference_op() {
+ EIGEN_SCALAR_BINARY_OP_PLUGIN
+ }
+#endif
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator() (const LhsScalar& a, const RhsScalar& b) const { return a - b; }
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+ { return internal::psub(a,b); }
+};
+template<typename LhsScalar,typename RhsScalar>
+struct functor_traits<scalar_difference_op<LhsScalar,RhsScalar> > {
+ enum {
+ Cost = (NumTraits<LhsScalar>::AddCost+NumTraits<RhsScalar>::AddCost)/2,
+ PacketAccess = is_same<LhsScalar,RhsScalar>::value && packet_traits<LhsScalar>::HasSub && packet_traits<RhsScalar>::HasSub
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the quotient of two scalars
+ *
+ * \sa class CwiseBinaryOp, Cwise::operator/()
+ */
+template<typename LhsScalar,typename RhsScalar>
+struct scalar_quotient_op : binary_op_base<LhsScalar,RhsScalar>
+{
+ typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar,scalar_quotient_op>::ReturnType result_type;
+#ifndef EIGEN_SCALAR_BINARY_OP_PLUGIN
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_quotient_op)
+#else
+ scalar_quotient_op() {
+ EIGEN_SCALAR_BINARY_OP_PLUGIN
+ }
+#endif
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator() (const LhsScalar& a, const RhsScalar& b) const { return a / b; }
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+ { return internal::pdiv(a,b); }
+};
+template<typename LhsScalar,typename RhsScalar>
+struct functor_traits<scalar_quotient_op<LhsScalar,RhsScalar> > {
+ typedef typename scalar_quotient_op<LhsScalar,RhsScalar>::result_type result_type;
+ enum {
+ PacketAccess = is_same<LhsScalar,RhsScalar>::value && packet_traits<LhsScalar>::HasDiv && packet_traits<RhsScalar>::HasDiv,
+ Cost = scalar_div_cost<result_type,PacketAccess>::value
+ };
+};
+
+
+
+/** \internal
+ * \brief Template functor to compute the and of two booleans
+ *
+ * \sa class CwiseBinaryOp, ArrayBase::operator&&
+ */
+struct scalar_boolean_and_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_boolean_and_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator() (const bool& a, const bool& b) const { return a && b; }
+};
+template<> struct functor_traits<scalar_boolean_and_op> {
+ enum {
+ Cost = NumTraits<bool>::AddCost,
+ PacketAccess = false
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the or of two booleans
+ *
+ * \sa class CwiseBinaryOp, ArrayBase::operator||
+ */
+struct scalar_boolean_or_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_boolean_or_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator() (const bool& a, const bool& b) const { return a || b; }
+};
+template<> struct functor_traits<scalar_boolean_or_op> {
+ enum {
+ Cost = NumTraits<bool>::AddCost,
+ PacketAccess = false
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the xor of two booleans
+ *
+ * \sa class CwiseBinaryOp, ArrayBase::operator^
+ */
+struct scalar_boolean_xor_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_boolean_xor_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator() (const bool& a, const bool& b) const { return a ^ b; }
+};
+template<> struct functor_traits<scalar_boolean_xor_op> {
+ enum {
+ Cost = NumTraits<bool>::AddCost,
+ PacketAccess = false
+ };
+};
+
+
+
+//---------- binary functors bound to a constant, thus appearing as a unary functor ----------
+
+// The following two classes permits to turn any binary functor into a unary one with one argument bound to a constant value.
+// They are analogues to std::binder1st/binder2nd but with the following differences:
+// - they are compatible with packetOp
+// - they are portable across C++ versions (the std::binder* are deprecated in C++11)
+template<typename BinaryOp> struct bind1st_op : BinaryOp {
+
+ typedef typename BinaryOp::first_argument_type first_argument_type;
+ typedef typename BinaryOp::second_argument_type second_argument_type;
+ typedef typename BinaryOp::result_type result_type;
+
+ bind1st_op(const first_argument_type &val) : m_value(val) {}
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator() (const second_argument_type& b) const { return BinaryOp::operator()(m_value,b); }
+
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& b) const
+ { return BinaryOp::packetOp(internal::pset1<Packet>(m_value), b); }
+
+ first_argument_type m_value;
+};
+template<typename BinaryOp> struct functor_traits<bind1st_op<BinaryOp> > : functor_traits<BinaryOp> {};
+
+
+template<typename BinaryOp> struct bind2nd_op : BinaryOp {
+
+ typedef typename BinaryOp::first_argument_type first_argument_type;
+ typedef typename BinaryOp::second_argument_type second_argument_type;
+ typedef typename BinaryOp::result_type result_type;
+
+ bind2nd_op(const second_argument_type &val) : m_value(val) {}
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator() (const first_argument_type& a) const { return BinaryOp::operator()(a,m_value); }
+
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const
+ { return BinaryOp::packetOp(a,internal::pset1<Packet>(m_value)); }
+
+ second_argument_type m_value;
+};
+template<typename BinaryOp> struct functor_traits<bind2nd_op<BinaryOp> > : functor_traits<BinaryOp> {};
+
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_BINARY_FUNCTORS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/NullaryFunctors.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/NullaryFunctors.h
new file mode 100644
index 000000000..b03be0269
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/NullaryFunctors.h
@@ -0,0 +1,188 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2016 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_NULLARY_FUNCTORS_H
+#define EIGEN_NULLARY_FUNCTORS_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename Scalar>
+struct scalar_constant_op {
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE scalar_constant_op(const scalar_constant_op& other) : m_other(other.m_other) { }
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE scalar_constant_op(const Scalar& other) : m_other(other) { }
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator() () const { return m_other; }
+ template<typename PacketType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const PacketType packetOp() const { return internal::pset1<PacketType>(m_other); }
+ const Scalar m_other;
+};
+template<typename Scalar>
+struct functor_traits<scalar_constant_op<Scalar> >
+{ enum { Cost = 0 /* as the constant value should be loaded in register only once for the whole expression */,
+ PacketAccess = packet_traits<Scalar>::Vectorizable, IsRepeatable = true }; };
+
+template<typename Scalar> struct scalar_identity_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_identity_op)
+ template<typename IndexType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator() (IndexType row, IndexType col) const { return row==col ? Scalar(1) : Scalar(0); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_identity_op<Scalar> >
+{ enum { Cost = NumTraits<Scalar>::AddCost, PacketAccess = false, IsRepeatable = true }; };
+
+template <typename Scalar, typename Packet, bool IsInteger> struct linspaced_op_impl;
+
+template <typename Scalar, typename Packet>
+struct linspaced_op_impl<Scalar,Packet,/*IsInteger*/false>
+{
+ linspaced_op_impl(const Scalar& low, const Scalar& high, Index num_steps) :
+ m_low(low), m_high(high), m_size1(num_steps==1 ? 1 : num_steps-1), m_step(num_steps==1 ? Scalar() : (high-low)/Scalar(num_steps-1)),
+ m_flip(numext::abs(high)<numext::abs(low))
+ {}
+
+ template<typename IndexType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator() (IndexType i) const {
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ if(m_flip)
+ return (i==0)? m_low : (m_high - RealScalar(m_size1-i)*m_step);
+ else
+ return (i==m_size1)? m_high : (m_low + RealScalar(i)*m_step);
+ }
+
+ template<typename IndexType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(IndexType i) const
+ {
+ // Principle:
+ // [low, ..., low] + ( [step, ..., step] * ( [i, ..., i] + [0, ..., size] ) )
+ if(m_flip)
+ {
+ Packet pi = plset<Packet>(Scalar(i-m_size1));
+ Packet res = padd(pset1<Packet>(m_high), pmul(pset1<Packet>(m_step), pi));
+ if(i==0)
+ res = pinsertfirst(res, m_low);
+ return res;
+ }
+ else
+ {
+ Packet pi = plset<Packet>(Scalar(i));
+ Packet res = padd(pset1<Packet>(m_low), pmul(pset1<Packet>(m_step), pi));
+ if(i==m_size1-unpacket_traits<Packet>::size+1)
+ res = pinsertlast(res, m_high);
+ return res;
+ }
+ }
+
+ const Scalar m_low;
+ const Scalar m_high;
+ const Index m_size1;
+ const Scalar m_step;
+ const bool m_flip;
+};
+
+template <typename Scalar, typename Packet>
+struct linspaced_op_impl<Scalar,Packet,/*IsInteger*/true>
+{
+ linspaced_op_impl(const Scalar& low, const Scalar& high, Index num_steps) :
+ m_low(low),
+ m_multiplier((high-low)/convert_index<Scalar>(num_steps<=1 ? 1 : num_steps-1)),
+ m_divisor(convert_index<Scalar>((high>=low?num_steps:-num_steps)+(high-low))/((numext::abs(high-low)+1)==0?1:(numext::abs(high-low)+1))),
+ m_use_divisor(num_steps>1 && (numext::abs(high-low)+1)<num_steps)
+ {}
+
+ template<typename IndexType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ const Scalar operator() (IndexType i) const
+ {
+ if(m_use_divisor) return m_low + convert_index<Scalar>(i)/m_divisor;
+ else return m_low + convert_index<Scalar>(i)*m_multiplier;
+ }
+
+ const Scalar m_low;
+ const Scalar m_multiplier;
+ const Scalar m_divisor;
+ const bool m_use_divisor;
+};
+
+// ----- Linspace functor ----------------------------------------------------------------
+
+// Forward declaration (we default to random access which does not really give
+// us a speed gain when using packet access but it allows to use the functor in
+// nested expressions).
+template <typename Scalar, typename PacketType> struct linspaced_op;
+template <typename Scalar, typename PacketType> struct functor_traits< linspaced_op<Scalar,PacketType> >
+{
+ enum
+ {
+ Cost = 1,
+ PacketAccess = (!NumTraits<Scalar>::IsInteger) && packet_traits<Scalar>::HasSetLinear && packet_traits<Scalar>::HasBlend,
+ /*&& ((!NumTraits<Scalar>::IsInteger) || packet_traits<Scalar>::HasDiv),*/ // <- vectorization for integer is currently disabled
+ IsRepeatable = true
+ };
+};
+template <typename Scalar, typename PacketType> struct linspaced_op
+{
+ linspaced_op(const Scalar& low, const Scalar& high, Index num_steps)
+ : impl((num_steps==1 ? high : low),high,num_steps)
+ {}
+
+ template<typename IndexType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator() (IndexType i) const { return impl(i); }
+
+ template<typename Packet,typename IndexType>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(IndexType i) const { return impl.packetOp(i); }
+
+ // This proxy object handles the actual required temporaries and the different
+ // implementations (integer vs. floating point).
+ const linspaced_op_impl<Scalar,PacketType,NumTraits<Scalar>::IsInteger> impl;
+};
+
+// Linear access is automatically determined from the operator() prototypes available for the given functor.
+// If it exposes an operator()(i,j), then we assume the i and j coefficients are required independently
+// and linear access is not possible. In all other cases, linear access is enabled.
+// Users should not have to deal with this structure.
+template<typename Functor> struct functor_has_linear_access { enum { ret = !has_binary_operator<Functor>::value }; };
+
+// For unreliable compilers, let's specialize the has_*ary_operator
+// helpers so that at least built-in nullary functors work fine.
+#if !( (EIGEN_COMP_MSVC>1600) || (EIGEN_GNUC_AT_LEAST(4,8)) || (EIGEN_COMP_ICC>=1600))
+template<typename Scalar,typename IndexType>
+struct has_nullary_operator<scalar_constant_op<Scalar>,IndexType> { enum { value = 1}; };
+template<typename Scalar,typename IndexType>
+struct has_unary_operator<scalar_constant_op<Scalar>,IndexType> { enum { value = 0}; };
+template<typename Scalar,typename IndexType>
+struct has_binary_operator<scalar_constant_op<Scalar>,IndexType> { enum { value = 0}; };
+
+template<typename Scalar,typename IndexType>
+struct has_nullary_operator<scalar_identity_op<Scalar>,IndexType> { enum { value = 0}; };
+template<typename Scalar,typename IndexType>
+struct has_unary_operator<scalar_identity_op<Scalar>,IndexType> { enum { value = 0}; };
+template<typename Scalar,typename IndexType>
+struct has_binary_operator<scalar_identity_op<Scalar>,IndexType> { enum { value = 1}; };
+
+template<typename Scalar, typename PacketType,typename IndexType>
+struct has_nullary_operator<linspaced_op<Scalar,PacketType>,IndexType> { enum { value = 0}; };
+template<typename Scalar, typename PacketType,typename IndexType>
+struct has_unary_operator<linspaced_op<Scalar,PacketType>,IndexType> { enum { value = 1}; };
+template<typename Scalar, typename PacketType,typename IndexType>
+struct has_binary_operator<linspaced_op<Scalar,PacketType>,IndexType> { enum { value = 0}; };
+
+template<typename Scalar,typename IndexType>
+struct has_nullary_operator<scalar_random_op<Scalar>,IndexType> { enum { value = 1}; };
+template<typename Scalar,typename IndexType>
+struct has_unary_operator<scalar_random_op<Scalar>,IndexType> { enum { value = 0}; };
+template<typename Scalar,typename IndexType>
+struct has_binary_operator<scalar_random_op<Scalar>,IndexType> { enum { value = 0}; };
+#endif
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_NULLARY_FUNCTORS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/StlFunctors.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/StlFunctors.h
new file mode 100644
index 000000000..6df3fa501
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/StlFunctors.h
@@ -0,0 +1,132 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STL_FUNCTORS_H
+#define EIGEN_STL_FUNCTORS_H
+
+namespace Eigen {
+
+namespace internal {
+
+// default functor traits for STL functors:
+
+template<typename T>
+struct functor_traits<std::multiplies<T> >
+{ enum { Cost = NumTraits<T>::MulCost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::divides<T> >
+{ enum { Cost = NumTraits<T>::MulCost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::plus<T> >
+{ enum { Cost = NumTraits<T>::AddCost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::minus<T> >
+{ enum { Cost = NumTraits<T>::AddCost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::negate<T> >
+{ enum { Cost = NumTraits<T>::AddCost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::logical_or<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::logical_and<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::logical_not<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::greater<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::less<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::greater_equal<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::less_equal<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::equal_to<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::not_equal_to<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+#if (__cplusplus < 201103L) && (EIGEN_COMP_MSVC <= 1900)
+// std::binder* are deprecated since c++11 and will be removed in c++17
+template<typename T>
+struct functor_traits<std::binder2nd<T> >
+{ enum { Cost = functor_traits<T>::Cost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::binder1st<T> >
+{ enum { Cost = functor_traits<T>::Cost, PacketAccess = false }; };
+#endif
+
+template<typename T>
+struct functor_traits<std::unary_negate<T> >
+{ enum { Cost = 1 + functor_traits<T>::Cost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::binary_negate<T> >
+{ enum { Cost = 1 + functor_traits<T>::Cost, PacketAccess = false }; };
+
+#ifdef EIGEN_STDEXT_SUPPORT
+
+template<typename T0,typename T1>
+struct functor_traits<std::project1st<T0,T1> >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+template<typename T0,typename T1>
+struct functor_traits<std::project2nd<T0,T1> >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+template<typename T0,typename T1>
+struct functor_traits<std::select2nd<std::pair<T0,T1> > >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+template<typename T0,typename T1>
+struct functor_traits<std::select1st<std::pair<T0,T1> > >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+template<typename T0,typename T1>
+struct functor_traits<std::unary_compose<T0,T1> >
+{ enum { Cost = functor_traits<T0>::Cost + functor_traits<T1>::Cost, PacketAccess = false }; };
+
+template<typename T0,typename T1,typename T2>
+struct functor_traits<std::binary_compose<T0,T1,T2> >
+{ enum { Cost = functor_traits<T0>::Cost + functor_traits<T1>::Cost + functor_traits<T2>::Cost, PacketAccess = false }; };
+
+#endif // EIGEN_STDEXT_SUPPORT
+
+// allow to add new functors and specializations of functor_traits from outside Eigen.
+// this macro is really needed because functor_traits must be specialized after it is declared but before it is used...
+#ifdef EIGEN_FUNCTORS_PLUGIN
+#include EIGEN_FUNCTORS_PLUGIN
+#endif
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_STL_FUNCTORS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/TernaryFunctors.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/TernaryFunctors.h
new file mode 100644
index 000000000..b254e96c6
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/TernaryFunctors.h
@@ -0,0 +1,25 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2016 Eugene Brevdo <ebrevdo@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TERNARY_FUNCTORS_H
+#define EIGEN_TERNARY_FUNCTORS_H
+
+namespace Eigen {
+
+namespace internal {
+
+//---------- associative ternary functors ----------
+
+
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TERNARY_FUNCTORS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/UnaryFunctors.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/UnaryFunctors.h
new file mode 100644
index 000000000..581a3c93a
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/functors/UnaryFunctors.h
@@ -0,0 +1,823 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2016 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_UNARY_FUNCTORS_H
+#define EIGEN_UNARY_FUNCTORS_H
+
+namespace Eigen {
+
+namespace internal {
+
+// Copied from unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h
+// TODO: remove or update after upstream
+/** \internal
+ * \brief Template functor to compute the sigmoid of a scalar
+ * \sa class CwiseUnaryOp, ArrayBase::sigmoid()
+ */
+template <typename T>
+struct scalar_sigmoid_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_sigmoid_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T operator()(const T& x) const {
+ const T one = T(1);
+ return one / (one + numext::exp(-x));
+ }
+
+ template <typename Packet> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
+ Packet packetOp(const Packet& x) const {
+ const Packet one = pset1<Packet>(T(1));
+ return pdiv(one, padd(one, pexp(pnegate(x))));
+ }
+};
+
+template <typename T>
+struct functor_traits<scalar_sigmoid_op<T> > {
+ enum {
+ Cost = NumTraits<T>::AddCost * 2 + NumTraits<T>::MulCost * 6,
+ PacketAccess = packet_traits<T>::HasAdd && packet_traits<T>::HasDiv &&
+ packet_traits<T>::HasNegate && packet_traits<T>::HasExp
+ };
+};
+
+
+/** \internal
+ * \brief Template functor to compute the opposite of a scalar
+ *
+ * \sa class CwiseUnaryOp, MatrixBase::operator-
+ */
+template<typename Scalar> struct scalar_opposite_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_opposite_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a) const { return -a; }
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const
+ { return internal::pnegate(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_opposite_op<Scalar> >
+{ enum {
+ Cost = NumTraits<Scalar>::AddCost,
+ PacketAccess = packet_traits<Scalar>::HasNegate };
+};
+
+/** \internal
+ * \brief Template functor to compute the absolute value of a scalar
+ *
+ * \sa class CwiseUnaryOp, Cwise::abs
+ */
+template<typename Scalar> struct scalar_abs_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_abs_op)
+ typedef typename NumTraits<Scalar>::Real result_type;
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator() (const Scalar& a) const { return numext::abs(a); }
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const
+ { return internal::pabs(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_abs_op<Scalar> >
+{
+ enum {
+ Cost = NumTraits<Scalar>::AddCost,
+ PacketAccess = packet_traits<Scalar>::HasAbs
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the score of a scalar, to chose a pivot
+ *
+ * \sa class CwiseUnaryOp
+ */
+template<typename Scalar> struct scalar_score_coeff_op : scalar_abs_op<Scalar>
+{
+ typedef void Score_is_abs;
+};
+template<typename Scalar>
+struct functor_traits<scalar_score_coeff_op<Scalar> > : functor_traits<scalar_abs_op<Scalar> > {};
+
+/* Avoid recomputing abs when we know the score and they are the same. Not a true Eigen functor. */
+template<typename Scalar, typename=void> struct abs_knowing_score
+{
+ EIGEN_EMPTY_STRUCT_CTOR(abs_knowing_score)
+ typedef typename NumTraits<Scalar>::Real result_type;
+ template<typename Score>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator() (const Scalar& a, const Score&) const { return numext::abs(a); }
+};
+template<typename Scalar> struct abs_knowing_score<Scalar, typename scalar_score_coeff_op<Scalar>::Score_is_abs>
+{
+ EIGEN_EMPTY_STRUCT_CTOR(abs_knowing_score)
+ typedef typename NumTraits<Scalar>::Real result_type;
+ template<typename Scal>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator() (const Scal&, const result_type& a) const { return a; }
+};
+
+/** \internal
+ * \brief Template functor to compute the squared absolute value of a scalar
+ *
+ * \sa class CwiseUnaryOp, Cwise::abs2
+ */
+template<typename Scalar> struct scalar_abs2_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_abs2_op)
+ typedef typename NumTraits<Scalar>::Real result_type;
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE const result_type operator() (const Scalar& a) const { return numext::abs2(a); }
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const
+ { return internal::pmul(a,a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_abs2_op<Scalar> >
+{ enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasAbs2 }; };
+
+/** \internal
+ * \brief Template functor to compute the conjugate of a complex value
+ *
+ * \sa class CwiseUnaryOp, MatrixBase::conjugate()
+ */
+template<typename Scalar> struct scalar_conjugate_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_conjugate_op)
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a) const { using numext::conj; return conj(a); }
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const { return internal::pconj(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_conjugate_op<Scalar> >
+{
+ enum {
+ Cost = NumTraits<Scalar>::IsComplex ? NumTraits<Scalar>::AddCost : 0,
+ PacketAccess = packet_traits<Scalar>::HasConj
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the phase angle of a complex
+ *
+ * \sa class CwiseUnaryOp, Cwise::arg
+ */
+template<typename Scalar> struct scalar_arg_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_arg_op)
+ typedef typename NumTraits<Scalar>::Real result_type;
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator() (const Scalar& a) const { using numext::arg; return arg(a); }
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const
+ { return internal::parg(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_arg_op<Scalar> >
+{
+ enum {
+ Cost = NumTraits<Scalar>::IsComplex ? 5 * NumTraits<Scalar>::MulCost : NumTraits<Scalar>::AddCost,
+ PacketAccess = packet_traits<Scalar>::HasArg
+ };
+};
+/** \internal
+ * \brief Template functor to cast a scalar to another type
+ *
+ * \sa class CwiseUnaryOp, MatrixBase::cast()
+ */
+template<typename Scalar, typename NewType>
+struct scalar_cast_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_cast_op)
+ typedef NewType result_type;
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const NewType operator() (const Scalar& a) const { return cast<Scalar, NewType>(a); }
+};
+template<typename Scalar, typename NewType>
+struct functor_traits<scalar_cast_op<Scalar,NewType> >
+{ enum { Cost = is_same<Scalar, NewType>::value ? 0 : NumTraits<NewType>::AddCost, PacketAccess = false }; };
+
+/** \internal
+ * \brief Template functor to extract the real part of a complex
+ *
+ * \sa class CwiseUnaryOp, MatrixBase::real()
+ */
+template<typename Scalar>
+struct scalar_real_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_real_op)
+ typedef typename NumTraits<Scalar>::Real result_type;
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE result_type operator() (const Scalar& a) const { return numext::real(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_real_op<Scalar> >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+/** \internal
+ * \brief Template functor to extract the imaginary part of a complex
+ *
+ * \sa class CwiseUnaryOp, MatrixBase::imag()
+ */
+template<typename Scalar>
+struct scalar_imag_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_imag_op)
+ typedef typename NumTraits<Scalar>::Real result_type;
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE result_type operator() (const Scalar& a) const { return numext::imag(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_imag_op<Scalar> >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+/** \internal
+ * \brief Template functor to extract the real part of a complex as a reference
+ *
+ * \sa class CwiseUnaryOp, MatrixBase::real()
+ */
+template<typename Scalar>
+struct scalar_real_ref_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_real_ref_op)
+ typedef typename NumTraits<Scalar>::Real result_type;
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE result_type& operator() (const Scalar& a) const { return numext::real_ref(*const_cast<Scalar*>(&a)); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_real_ref_op<Scalar> >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+/** \internal
+ * \brief Template functor to extract the imaginary part of a complex as a reference
+ *
+ * \sa class CwiseUnaryOp, MatrixBase::imag()
+ */
+template<typename Scalar>
+struct scalar_imag_ref_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_imag_ref_op)
+ typedef typename NumTraits<Scalar>::Real result_type;
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE result_type& operator() (const Scalar& a) const { return numext::imag_ref(*const_cast<Scalar*>(&a)); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_imag_ref_op<Scalar> >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+/** \internal
+ *
+ * \brief Template functor to compute the exponential of a scalar
+ *
+ * \sa class CwiseUnaryOp, Cwise::exp()
+ */
+template<typename Scalar> struct scalar_exp_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_exp_op)
+ EIGEN_DEVICE_FUNC inline const Scalar operator() (const Scalar& a) const { return numext::exp(a); }
+ template <typename Packet>
+ EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::pexp(a); }
+};
+template <typename Scalar>
+struct functor_traits<scalar_exp_op<Scalar> > {
+ enum {
+ PacketAccess = packet_traits<Scalar>::HasExp,
+ // The following numbers are based on the AVX implementation.
+#ifdef EIGEN_VECTORIZE_FMA
+ // Haswell can issue 2 add/mul/madd per cycle.
+ Cost =
+ (sizeof(Scalar) == 4
+ // float: 8 pmadd, 4 pmul, 2 padd/psub, 6 other
+ ? (8 * NumTraits<Scalar>::AddCost + 6 * NumTraits<Scalar>::MulCost)
+ // double: 7 pmadd, 5 pmul, 3 padd/psub, 1 div, 13 other
+ : (14 * NumTraits<Scalar>::AddCost +
+ 6 * NumTraits<Scalar>::MulCost +
+ scalar_div_cost<Scalar,packet_traits<Scalar>::HasDiv>::value))
+#else
+ Cost =
+ (sizeof(Scalar) == 4
+ // float: 7 pmadd, 6 pmul, 4 padd/psub, 10 other
+ ? (21 * NumTraits<Scalar>::AddCost + 13 * NumTraits<Scalar>::MulCost)
+ // double: 7 pmadd, 5 pmul, 3 padd/psub, 1 div, 13 other
+ : (23 * NumTraits<Scalar>::AddCost +
+ 12 * NumTraits<Scalar>::MulCost +
+ scalar_div_cost<Scalar,packet_traits<Scalar>::HasDiv>::value))
+#endif
+ };
+};
+
+/** \internal
+ *
+ * \brief Template functor to compute the logarithm of a scalar
+ *
+ * \sa class CwiseUnaryOp, ArrayBase::log()
+ */
+template<typename Scalar> struct scalar_log_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_log_op)
+ EIGEN_DEVICE_FUNC inline const Scalar operator() (const Scalar& a) const { return numext::log(a); }
+ template <typename Packet>
+ EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::plog(a); }
+};
+template <typename Scalar>
+struct functor_traits<scalar_log_op<Scalar> > {
+ enum {
+ PacketAccess = packet_traits<Scalar>::HasLog,
+ Cost =
+ (PacketAccess
+ // The following numbers are based on the AVX implementation.
+#ifdef EIGEN_VECTORIZE_FMA
+ // 8 pmadd, 6 pmul, 8 padd/psub, 16 other, can issue 2 add/mul/madd per cycle.
+ ? (20 * NumTraits<Scalar>::AddCost + 7 * NumTraits<Scalar>::MulCost)
+#else
+ // 8 pmadd, 6 pmul, 8 padd/psub, 20 other
+ ? (36 * NumTraits<Scalar>::AddCost + 14 * NumTraits<Scalar>::MulCost)
+#endif
+ // Measured cost of std::log.
+ : sizeof(Scalar)==4 ? 40 : 85)
+ };
+};
+
+/** \internal
+ *
+ * \brief Template functor to compute the logarithm of 1 plus a scalar value
+ *
+ * \sa class CwiseUnaryOp, ArrayBase::log1p()
+ */
+template<typename Scalar> struct scalar_log1p_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_log1p_op)
+ EIGEN_DEVICE_FUNC inline const Scalar operator() (const Scalar& a) const { return numext::log1p(a); }
+ template <typename Packet>
+ EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::plog1p(a); }
+};
+template <typename Scalar>
+struct functor_traits<scalar_log1p_op<Scalar> > {
+ enum {
+ PacketAccess = packet_traits<Scalar>::HasLog1p,
+ Cost = functor_traits<scalar_log_op<Scalar> >::Cost // TODO measure cost of log1p
+ };
+};
+
+/** \internal
+ *
+ * \brief Template functor to compute the base-10 logarithm of a scalar
+ *
+ * \sa class CwiseUnaryOp, Cwise::log10()
+ */
+template<typename Scalar> struct scalar_log10_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_log10_op)
+ EIGEN_DEVICE_FUNC inline const Scalar operator() (const Scalar& a) const { EIGEN_USING_STD_MATH(log10) return log10(a); }
+ template <typename Packet>
+ EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::plog10(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_log10_op<Scalar> >
+{ enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasLog10 }; };
+
+/** \internal
+ * \brief Template functor to compute the square root of a scalar
+ * \sa class CwiseUnaryOp, Cwise::sqrt()
+ */
+template<typename Scalar> struct scalar_sqrt_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_sqrt_op)
+ EIGEN_DEVICE_FUNC inline const Scalar operator() (const Scalar& a) const { return numext::sqrt(a); }
+ template <typename Packet>
+ EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::psqrt(a); }
+};
+template <typename Scalar>
+struct functor_traits<scalar_sqrt_op<Scalar> > {
+ enum {
+#if EIGEN_FAST_MATH
+ // The following numbers are based on the AVX implementation.
+ Cost = (sizeof(Scalar) == 8 ? 28
+ // 4 pmul, 1 pmadd, 3 other
+ : (3 * NumTraits<Scalar>::AddCost +
+ 5 * NumTraits<Scalar>::MulCost)),
+#else
+ // The following numbers are based on min VSQRT throughput on Haswell.
+ Cost = (sizeof(Scalar) == 8 ? 28 : 14),
+#endif
+ PacketAccess = packet_traits<Scalar>::HasSqrt
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the reciprocal square root of a scalar
+ * \sa class CwiseUnaryOp, Cwise::rsqrt()
+ */
+template<typename Scalar> struct scalar_rsqrt_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_rsqrt_op)
+ EIGEN_DEVICE_FUNC inline const Scalar operator() (const Scalar& a) const { return Scalar(1)/numext::sqrt(a); }
+ template <typename Packet>
+ EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::prsqrt(a); }
+};
+
+template<typename Scalar>
+struct functor_traits<scalar_rsqrt_op<Scalar> >
+{ enum {
+ Cost = 5 * NumTraits<Scalar>::MulCost,
+ PacketAccess = packet_traits<Scalar>::HasRsqrt
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the cosine of a scalar
+ * \sa class CwiseUnaryOp, ArrayBase::cos()
+ */
+template<typename Scalar> struct scalar_cos_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_cos_op)
+ EIGEN_DEVICE_FUNC inline Scalar operator() (const Scalar& a) const { return numext::cos(a); }
+ template <typename Packet>
+ EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::pcos(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_cos_op<Scalar> >
+{
+ enum {
+ Cost = 5 * NumTraits<Scalar>::MulCost,
+ PacketAccess = packet_traits<Scalar>::HasCos
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the sine of a scalar
+ * \sa class CwiseUnaryOp, ArrayBase::sin()
+ */
+template<typename Scalar> struct scalar_sin_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_sin_op)
+ EIGEN_DEVICE_FUNC inline const Scalar operator() (const Scalar& a) const { return numext::sin(a); }
+ template <typename Packet>
+ EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::psin(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_sin_op<Scalar> >
+{
+ enum {
+ Cost = 5 * NumTraits<Scalar>::MulCost,
+ PacketAccess = packet_traits<Scalar>::HasSin
+ };
+};
+
+
+/** \internal
+ * \brief Template functor to compute the tan of a scalar
+ * \sa class CwiseUnaryOp, ArrayBase::tan()
+ */
+template<typename Scalar> struct scalar_tan_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_tan_op)
+ EIGEN_DEVICE_FUNC inline const Scalar operator() (const Scalar& a) const { return numext::tan(a); }
+ template <typename Packet>
+ EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::ptan(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_tan_op<Scalar> >
+{
+ enum {
+ Cost = 5 * NumTraits<Scalar>::MulCost,
+ PacketAccess = packet_traits<Scalar>::HasTan
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the arc cosine of a scalar
+ * \sa class CwiseUnaryOp, ArrayBase::acos()
+ */
+template<typename Scalar> struct scalar_acos_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_acos_op)
+ EIGEN_DEVICE_FUNC inline const Scalar operator() (const Scalar& a) const { return numext::acos(a); }
+ template <typename Packet>
+ EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::pacos(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_acos_op<Scalar> >
+{
+ enum {
+ Cost = 5 * NumTraits<Scalar>::MulCost,
+ PacketAccess = packet_traits<Scalar>::HasACos
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the arc sine of a scalar
+ * \sa class CwiseUnaryOp, ArrayBase::asin()
+ */
+template<typename Scalar> struct scalar_asin_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_asin_op)
+ EIGEN_DEVICE_FUNC inline const Scalar operator() (const Scalar& a) const { return numext::asin(a); }
+ template <typename Packet>
+ EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::pasin(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_asin_op<Scalar> >
+{
+ enum {
+ Cost = 5 * NumTraits<Scalar>::MulCost,
+ PacketAccess = packet_traits<Scalar>::HasASin
+ };
+};
+
+
+/** \internal
+ * \brief Template functor to compute the atan of a scalar
+ * \sa class CwiseUnaryOp, ArrayBase::atan()
+ */
+template<typename Scalar> struct scalar_atan_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_atan_op)
+ EIGEN_DEVICE_FUNC inline const Scalar operator() (const Scalar& a) const { return numext::atan(a); }
+ template <typename Packet>
+ EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::patan(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_atan_op<Scalar> >
+{
+ enum {
+ Cost = 5 * NumTraits<Scalar>::MulCost,
+ PacketAccess = packet_traits<Scalar>::HasATan
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the tanh of a scalar
+ * \sa class CwiseUnaryOp, ArrayBase::tanh()
+ */
+template <typename Scalar>
+struct scalar_tanh_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_tanh_op)
+ EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return numext::tanh(a); }
+ template <typename Packet>
+ EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& x) const { return ptanh(x); }
+};
+
+template <typename Scalar>
+struct functor_traits<scalar_tanh_op<Scalar> > {
+ enum {
+ PacketAccess = packet_traits<Scalar>::HasTanh,
+ Cost = ( (EIGEN_FAST_MATH && is_same<Scalar,float>::value)
+// The following numbers are based on the AVX implementation,
+#ifdef EIGEN_VECTORIZE_FMA
+ // Haswell can issue 2 add/mul/madd per cycle.
+ // 9 pmadd, 2 pmul, 1 div, 2 other
+ ? (2 * NumTraits<Scalar>::AddCost +
+ 6 * NumTraits<Scalar>::MulCost +
+ scalar_div_cost<Scalar,packet_traits<Scalar>::HasDiv>::value)
+#else
+ ? (11 * NumTraits<Scalar>::AddCost +
+ 11 * NumTraits<Scalar>::MulCost +
+ scalar_div_cost<Scalar,packet_traits<Scalar>::HasDiv>::value)
+#endif
+ // This number assumes a naive implementation of tanh
+ : (6 * NumTraits<Scalar>::AddCost +
+ 3 * NumTraits<Scalar>::MulCost +
+ 2 * scalar_div_cost<Scalar,packet_traits<Scalar>::HasDiv>::value +
+ functor_traits<scalar_exp_op<Scalar> >::Cost))
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the sinh of a scalar
+ * \sa class CwiseUnaryOp, ArrayBase::sinh()
+ */
+template<typename Scalar> struct scalar_sinh_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_sinh_op)
+ EIGEN_DEVICE_FUNC inline const Scalar operator() (const Scalar& a) const { return numext::sinh(a); }
+ template <typename Packet>
+ EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::psinh(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_sinh_op<Scalar> >
+{
+ enum {
+ Cost = 5 * NumTraits<Scalar>::MulCost,
+ PacketAccess = packet_traits<Scalar>::HasSinh
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the cosh of a scalar
+ * \sa class CwiseUnaryOp, ArrayBase::cosh()
+ */
+template<typename Scalar> struct scalar_cosh_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_cosh_op)
+ EIGEN_DEVICE_FUNC inline const Scalar operator() (const Scalar& a) const { return numext::cosh(a); }
+ template <typename Packet>
+ EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::pcosh(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_cosh_op<Scalar> >
+{
+ enum {
+ Cost = 5 * NumTraits<Scalar>::MulCost,
+ PacketAccess = packet_traits<Scalar>::HasCosh
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the inverse of a scalar
+ * \sa class CwiseUnaryOp, Cwise::inverse()
+ */
+template<typename Scalar>
+struct scalar_inverse_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_inverse_op)
+ EIGEN_DEVICE_FUNC inline Scalar operator() (const Scalar& a) const { return Scalar(1)/a; }
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC inline const Packet packetOp(const Packet& a) const
+ { return internal::pdiv(pset1<Packet>(Scalar(1)),a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_inverse_op<Scalar> >
+{ enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasDiv }; };
+
+/** \internal
+ * \brief Template functor to compute the square of a scalar
+ * \sa class CwiseUnaryOp, Cwise::square()
+ */
+template<typename Scalar>
+struct scalar_square_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_square_op)
+ EIGEN_DEVICE_FUNC inline Scalar operator() (const Scalar& a) const { return a*a; }
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC inline const Packet packetOp(const Packet& a) const
+ { return internal::pmul(a,a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_square_op<Scalar> >
+{ enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasMul }; };
+
+/** \internal
+ * \brief Template functor to compute the cube of a scalar
+ * \sa class CwiseUnaryOp, Cwise::cube()
+ */
+template<typename Scalar>
+struct scalar_cube_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_cube_op)
+ EIGEN_DEVICE_FUNC inline Scalar operator() (const Scalar& a) const { return a*a*a; }
+ template<typename Packet>
+ EIGEN_DEVICE_FUNC inline const Packet packetOp(const Packet& a) const
+ { return internal::pmul(a,pmul(a,a)); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_cube_op<Scalar> >
+{ enum { Cost = 2*NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasMul }; };
+
+/** \internal
+ * \brief Template functor to compute the rounded value of a scalar
+ * \sa class CwiseUnaryOp, ArrayBase::round()
+ */
+template<typename Scalar> struct scalar_round_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_round_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a) const { return numext::round(a); }
+ template <typename Packet>
+ EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::pround(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_round_op<Scalar> >
+{
+ enum {
+ Cost = NumTraits<Scalar>::MulCost,
+ PacketAccess = packet_traits<Scalar>::HasRound
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the floor of a scalar
+ * \sa class CwiseUnaryOp, ArrayBase::floor()
+ */
+template<typename Scalar> struct scalar_floor_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_floor_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a) const { return numext::floor(a); }
+ template <typename Packet>
+ EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::pfloor(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_floor_op<Scalar> >
+{
+ enum {
+ Cost = NumTraits<Scalar>::MulCost,
+ PacketAccess = packet_traits<Scalar>::HasFloor
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the ceil of a scalar
+ * \sa class CwiseUnaryOp, ArrayBase::ceil()
+ */
+template<typename Scalar> struct scalar_ceil_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_ceil_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a) const { return numext::ceil(a); }
+ template <typename Packet>
+ EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::pceil(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_ceil_op<Scalar> >
+{
+ enum {
+ Cost = NumTraits<Scalar>::MulCost,
+ PacketAccess = packet_traits<Scalar>::HasCeil
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute whether a scalar is NaN
+ * \sa class CwiseUnaryOp, ArrayBase::isnan()
+ */
+template<typename Scalar> struct scalar_isnan_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_isnan_op)
+ typedef bool result_type;
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type operator() (const Scalar& a) const { return (numext::isnan)(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_isnan_op<Scalar> >
+{
+ enum {
+ Cost = NumTraits<Scalar>::MulCost,
+ PacketAccess = false
+ };
+};
+
+/** \internal
+ * \brief Template functor to check whether a scalar is +/-inf
+ * \sa class CwiseUnaryOp, ArrayBase::isinf()
+ */
+template<typename Scalar> struct scalar_isinf_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_isinf_op)
+ typedef bool result_type;
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type operator() (const Scalar& a) const { return (numext::isinf)(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_isinf_op<Scalar> >
+{
+ enum {
+ Cost = NumTraits<Scalar>::MulCost,
+ PacketAccess = false
+ };
+};
+
+/** \internal
+ * \brief Template functor to check whether a scalar has a finite value
+ * \sa class CwiseUnaryOp, ArrayBase::isfinite()
+ */
+template<typename Scalar> struct scalar_isfinite_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_isfinite_op)
+ typedef bool result_type;
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type operator() (const Scalar& a) const { return (numext::isfinite)(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_isfinite_op<Scalar> >
+{
+ enum {
+ Cost = NumTraits<Scalar>::MulCost,
+ PacketAccess = false
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the logical not of a boolean
+ *
+ * \sa class CwiseUnaryOp, ArrayBase::operator!
+ */
+template<typename Scalar> struct scalar_boolean_not_op {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_boolean_not_op)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator() (const bool& a) const { return !a; }
+};
+template<typename Scalar>
+struct functor_traits<scalar_boolean_not_op<Scalar> > {
+ enum {
+ Cost = NumTraits<bool>::AddCost,
+ PacketAccess = false
+ };
+};
+
+/** \internal
+ * \brief Template functor to compute the signum of a scalar
+ * \sa class CwiseUnaryOp, Cwise::sign()
+ */
+template<typename Scalar,bool iscpx=(NumTraits<Scalar>::IsComplex!=0) > struct scalar_sign_op;
+template<typename Scalar>
+struct scalar_sign_op<Scalar,false> {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_sign_op)
+ EIGEN_DEVICE_FUNC inline const Scalar operator() (const Scalar& a) const
+ {
+ return Scalar( (a>Scalar(0)) - (a<Scalar(0)) );
+ }
+ //TODO
+ //template <typename Packet>
+ //EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::psign(a); }
+};
+template<typename Scalar>
+struct scalar_sign_op<Scalar,true> {
+ EIGEN_EMPTY_STRUCT_CTOR(scalar_sign_op)
+ EIGEN_DEVICE_FUNC inline const Scalar operator() (const Scalar& a) const
+ {
+ typedef typename NumTraits<Scalar>::Real real_type;
+ real_type aa = numext::abs(a);
+ if (aa==real_type(0))
+ return Scalar(0);
+ aa = real_type(1)/aa;
+ return Scalar(real(a)*aa, imag(a)*aa );
+ }
+ //TODO
+ //template <typename Packet>
+ //EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const { return internal::psign(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_sign_op<Scalar> >
+{ enum {
+ Cost =
+ NumTraits<Scalar>::IsComplex
+ ? ( 8*NumTraits<Scalar>::MulCost ) // roughly
+ : ( 3*NumTraits<Scalar>::AddCost),
+ PacketAccess = packet_traits<Scalar>::HasSign
+ };
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_FUNCTORS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h
new file mode 100644
index 000000000..45230bce5
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h
@@ -0,0 +1,2149 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERAL_BLOCK_PANEL_H
+#define EIGEN_GENERAL_BLOCK_PANEL_H
+
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename _LhsScalar, typename _RhsScalar, bool _ConjLhs=false, bool _ConjRhs=false>
+class gebp_traits;
+
+
+/** \internal \returns b if a<=0, and returns a otherwise. */
+inline std::ptrdiff_t manage_caching_sizes_helper(std::ptrdiff_t a, std::ptrdiff_t b)
+{
+ return a<=0 ? b : a;
+}
+
+#if EIGEN_ARCH_i386_OR_x86_64
+const std::ptrdiff_t defaultL1CacheSize = 32*1024;
+const std::ptrdiff_t defaultL2CacheSize = 256*1024;
+const std::ptrdiff_t defaultL3CacheSize = 2*1024*1024;
+#else
+const std::ptrdiff_t defaultL1CacheSize = 16*1024;
+const std::ptrdiff_t defaultL2CacheSize = 512*1024;
+const std::ptrdiff_t defaultL3CacheSize = 512*1024;
+#endif
+
+/** \internal */
+struct CacheSizes {
+ CacheSizes(): m_l1(-1),m_l2(-1),m_l3(-1) {
+ int l1CacheSize, l2CacheSize, l3CacheSize;
+ queryCacheSizes(l1CacheSize, l2CacheSize, l3CacheSize);
+ m_l1 = manage_caching_sizes_helper(l1CacheSize, defaultL1CacheSize);
+ m_l2 = manage_caching_sizes_helper(l2CacheSize, defaultL2CacheSize);
+ m_l3 = manage_caching_sizes_helper(l3CacheSize, defaultL3CacheSize);
+ }
+
+ std::ptrdiff_t m_l1;
+ std::ptrdiff_t m_l2;
+ std::ptrdiff_t m_l3;
+};
+
+
+/** \internal */
+inline void manage_caching_sizes(Action action, std::ptrdiff_t* l1, std::ptrdiff_t* l2, std::ptrdiff_t* l3)
+{
+ static CacheSizes m_cacheSizes;
+
+ if(action==SetAction)
+ {
+ // set the cpu cache size and cache all block sizes from a global cache size in byte
+ eigen_internal_assert(l1!=0 && l2!=0);
+ m_cacheSizes.m_l1 = *l1;
+ m_cacheSizes.m_l2 = *l2;
+ m_cacheSizes.m_l3 = *l3;
+ }
+ else if(action==GetAction)
+ {
+ eigen_internal_assert(l1!=0 && l2!=0);
+ *l1 = m_cacheSizes.m_l1;
+ *l2 = m_cacheSizes.m_l2;
+ *l3 = m_cacheSizes.m_l3;
+ }
+ else
+ {
+ eigen_internal_assert(false);
+ }
+}
+
+/* Helper for computeProductBlockingSizes.
+ *
+ * Given a m x k times k x n matrix product of scalar types \c LhsScalar and \c RhsScalar,
+ * this function computes the blocking size parameters along the respective dimensions
+ * for matrix products and related algorithms. The blocking sizes depends on various
+ * parameters:
+ * - the L1 and L2 cache sizes,
+ * - the register level blocking sizes defined by gebp_traits,
+ * - the number of scalars that fit into a packet (when vectorization is enabled).
+ *
+ * \sa setCpuCacheSizes */
+
+template<typename LhsScalar, typename RhsScalar, int KcFactor, typename Index>
+void evaluateProductBlockingSizesHeuristic(Index& k, Index& m, Index& n, Index num_threads = 1)
+{
+ typedef gebp_traits<LhsScalar,RhsScalar> Traits;
+
+ // Explanations:
+ // Let's recall that the product algorithms form mc x kc vertical panels A' on the lhs and
+ // kc x nc blocks B' on the rhs. B' has to fit into L2/L3 cache. Moreover, A' is processed
+ // per mr x kc horizontal small panels where mr is the blocking size along the m dimension
+ // at the register level. This small horizontal panel has to stay within L1 cache.
+ std::ptrdiff_t l1, l2, l3;
+ manage_caching_sizes(GetAction, &l1, &l2, &l3);
+
+ if (num_threads > 1) {
+ typedef typename Traits::ResScalar ResScalar;
+ enum {
+ kdiv = KcFactor * (Traits::mr * sizeof(LhsScalar) + Traits::nr * sizeof(RhsScalar)),
+ ksub = Traits::mr * Traits::nr * sizeof(ResScalar),
+ kr = 8,
+ mr = Traits::mr,
+ nr = Traits::nr
+ };
+ // Increasing k gives us more time to prefetch the content of the "C"
+ // registers. However once the latency is hidden there is no point in
+ // increasing the value of k, so we'll cap it at 320 (value determined
+ // experimentally).
+ const Index k_cache = (numext::mini<Index>)((l1-ksub)/kdiv, 320);
+ if (k_cache < k) {
+ k = k_cache - (k_cache % kr);
+ eigen_internal_assert(k > 0);
+ }
+
+ const Index n_cache = (l2-l1) / (nr * sizeof(RhsScalar) * k);
+ const Index n_per_thread = numext::div_ceil(n, num_threads);
+ if (n_cache <= n_per_thread) {
+ // Don't exceed the capacity of the l2 cache.
+ eigen_internal_assert(n_cache >= static_cast<Index>(nr));
+ n = n_cache - (n_cache % nr);
+ eigen_internal_assert(n > 0);
+ } else {
+ n = (numext::mini<Index>)(n, (n_per_thread + nr - 1) - ((n_per_thread + nr - 1) % nr));
+ }
+
+ if (l3 > l2) {
+ // l3 is shared between all cores, so we'll give each thread its own chunk of l3.
+ const Index m_cache = (l3-l2) / (sizeof(LhsScalar) * k * num_threads);
+ const Index m_per_thread = numext::div_ceil(m, num_threads);
+ if(m_cache < m_per_thread && m_cache >= static_cast<Index>(mr)) {
+ m = m_cache - (m_cache % mr);
+ eigen_internal_assert(m > 0);
+ } else {
+ m = (numext::mini<Index>)(m, (m_per_thread + mr - 1) - ((m_per_thread + mr - 1) % mr));
+ }
+ }
+ }
+ else {
+ // In unit tests we do not want to use extra large matrices,
+ // so we reduce the cache size to check the blocking strategy is not flawed
+#ifdef EIGEN_DEBUG_SMALL_PRODUCT_BLOCKS
+ l1 = 9*1024;
+ l2 = 32*1024;
+ l3 = 512*1024;
+#endif
+
+ // Early return for small problems because the computation below are time consuming for small problems.
+ // Perhaps it would make more sense to consider k*n*m??
+ // Note that for very tiny problem, this function should be bypassed anyway
+ // because we use the coefficient-based implementation for them.
+ if((numext::maxi)(k,(numext::maxi)(m,n))<48)
+ return;
+
+ typedef typename Traits::ResScalar ResScalar;
+ enum {
+ k_peeling = 8,
+ k_div = KcFactor * (Traits::mr * sizeof(LhsScalar) + Traits::nr * sizeof(RhsScalar)),
+ k_sub = Traits::mr * Traits::nr * sizeof(ResScalar)
+ };
+
+ // ---- 1st level of blocking on L1, yields kc ----
+
+ // Blocking on the third dimension (i.e., k) is chosen so that an horizontal panel
+ // of size mr x kc of the lhs plus a vertical panel of kc x nr of the rhs both fits within L1 cache.
+ // We also include a register-level block of the result (mx x nr).
+ // (In an ideal world only the lhs panel would stay in L1)
+ // Moreover, kc has to be a multiple of 8 to be compatible with loop peeling, leading to a maximum blocking size of:
+ const Index max_kc = numext::maxi<Index>(((l1-k_sub)/k_div) & (~(k_peeling-1)),1);
+ const Index old_k = k;
+ if(k>max_kc)
+ {
+ // We are really blocking on the third dimension:
+ // -> reduce blocking size to make sure the last block is as large as possible
+ // while keeping the same number of sweeps over the result.
+ k = (k%max_kc)==0 ? max_kc
+ : max_kc - k_peeling * ((max_kc-1-(k%max_kc))/(k_peeling*(k/max_kc+1)));
+
+ eigen_internal_assert(((old_k/k) == (old_k/max_kc)) && "the number of sweeps has to remain the same");
+ }
+
+ // ---- 2nd level of blocking on max(L2,L3), yields nc ----
+
+ // TODO find a reliable way to get the actual amount of cache per core to use for 2nd level blocking, that is:
+ // actual_l2 = max(l2, l3/nb_core_sharing_l3)
+ // The number below is quite conservative: it is better to underestimate the cache size rather than overestimating it)
+ // For instance, it corresponds to 6MB of L3 shared among 4 cores.
+ #ifdef EIGEN_DEBUG_SMALL_PRODUCT_BLOCKS
+ const Index actual_l2 = l3;
+ #else
+ const Index actual_l2 = 1572864; // == 1.5 MB
+ #endif
+
+ // Here, nc is chosen such that a block of kc x nc of the rhs fit within half of L2.
+ // The second half is implicitly reserved to access the result and lhs coefficients.
+ // When k<max_kc, then nc can arbitrarily growth. In practice, it seems to be fruitful
+ // to limit this growth: we bound nc to growth by a factor x1.5.
+ // However, if the entire lhs block fit within L1, then we are not going to block on the rows at all,
+ // and it becomes fruitful to keep the packed rhs blocks in L1 if there is enough remaining space.
+ Index max_nc;
+ const Index lhs_bytes = m * k * sizeof(LhsScalar);
+ const Index remaining_l1 = l1- k_sub - lhs_bytes;
+ if(remaining_l1 >= Index(Traits::nr*sizeof(RhsScalar))*k)
+ {
+ // L1 blocking
+ max_nc = remaining_l1 / (k*sizeof(RhsScalar));
+ }
+ else
+ {
+ // L2 blocking
+ max_nc = (3*actual_l2)/(2*2*max_kc*sizeof(RhsScalar));
+ }
+ // WARNING Below, we assume that Traits::nr is a power of two.
+ Index nc = numext::mini<Index>(actual_l2/(2*k*sizeof(RhsScalar)), max_nc) & (~(Traits::nr-1));
+ if(n>nc)
+ {
+ // We are really blocking over the columns:
+ // -> reduce blocking size to make sure the last block is as large as possible
+ // while keeping the same number of sweeps over the packed lhs.
+ // Here we allow one more sweep if this gives us a perfect match, thus the commented "-1"
+ n = (n%nc)==0 ? nc
+ : (nc - Traits::nr * ((nc/*-1*/-(n%nc))/(Traits::nr*(n/nc+1))));
+ }
+ else if(old_k==k)
+ {
+ // So far, no blocking at all, i.e., kc==k, and nc==n.
+ // In this case, let's perform a blocking over the rows such that the packed lhs data is kept in cache L1/L2
+ // TODO: part of this blocking strategy is now implemented within the kernel itself, so the L1-based heuristic here should be obsolete.
+ Index problem_size = k*n*sizeof(LhsScalar);
+ Index actual_lm = actual_l2;
+ Index max_mc = m;
+ if(problem_size<=1024)
+ {
+ // problem is small enough to keep in L1
+ // Let's choose m such that lhs's block fit in 1/3 of L1
+ actual_lm = l1;
+ }
+ else if(l3!=0 && problem_size<=32768)
+ {
+ // we have both L2 and L3, and problem is small enough to be kept in L2
+ // Let's choose m such that lhs's block fit in 1/3 of L2
+ actual_lm = l2;
+ max_mc = (numext::mini<Index>)(576,max_mc);
+ }
+ Index mc = (numext::mini<Index>)(actual_lm/(3*k*sizeof(LhsScalar)), max_mc);
+ if (mc > Traits::mr) mc -= mc % Traits::mr;
+ else if (mc==0) return;
+ m = (m%mc)==0 ? mc
+ : (mc - Traits::mr * ((mc/*-1*/-(m%mc))/(Traits::mr*(m/mc+1))));
+ }
+ }
+}
+
+template <typename Index>
+inline bool useSpecificBlockingSizes(Index& k, Index& m, Index& n)
+{
+#ifdef EIGEN_TEST_SPECIFIC_BLOCKING_SIZES
+ if (EIGEN_TEST_SPECIFIC_BLOCKING_SIZES) {
+ k = numext::mini<Index>(k, EIGEN_TEST_SPECIFIC_BLOCKING_SIZE_K);
+ m = numext::mini<Index>(m, EIGEN_TEST_SPECIFIC_BLOCKING_SIZE_M);
+ n = numext::mini<Index>(n, EIGEN_TEST_SPECIFIC_BLOCKING_SIZE_N);
+ return true;
+ }
+#else
+ EIGEN_UNUSED_VARIABLE(k)
+ EIGEN_UNUSED_VARIABLE(m)
+ EIGEN_UNUSED_VARIABLE(n)
+#endif
+ return false;
+}
+
+/** \brief Computes the blocking parameters for a m x k times k x n matrix product
+ *
+ * \param[in,out] k Input: the third dimension of the product. Output: the blocking size along the same dimension.
+ * \param[in,out] m Input: the number of rows of the left hand side. Output: the blocking size along the same dimension.
+ * \param[in,out] n Input: the number of columns of the right hand side. Output: the blocking size along the same dimension.
+ *
+ * Given a m x k times k x n matrix product of scalar types \c LhsScalar and \c RhsScalar,
+ * this function computes the blocking size parameters along the respective dimensions
+ * for matrix products and related algorithms.
+ *
+ * The blocking size parameters may be evaluated:
+ * - either by a heuristic based on cache sizes;
+ * - or using fixed prescribed values (for testing purposes).
+ *
+ * \sa setCpuCacheSizes */
+
+template<typename LhsScalar, typename RhsScalar, int KcFactor, typename Index>
+void computeProductBlockingSizes(Index& k, Index& m, Index& n, Index num_threads = 1)
+{
+ if (!useSpecificBlockingSizes(k, m, n)) {
+ evaluateProductBlockingSizesHeuristic<LhsScalar, RhsScalar, KcFactor, Index>(k, m, n, num_threads);
+ }
+}
+
+template<typename LhsScalar, typename RhsScalar, typename Index>
+inline void computeProductBlockingSizes(Index& k, Index& m, Index& n, Index num_threads = 1)
+{
+ computeProductBlockingSizes<LhsScalar,RhsScalar,1,Index>(k, m, n, num_threads);
+}
+
+#ifdef EIGEN_HAS_SINGLE_INSTRUCTION_CJMADD
+ #define CJMADD(CJ,A,B,C,T) C = CJ.pmadd(A,B,C);
+#else
+
+ // FIXME (a bit overkill maybe ?)
+
+ template<typename CJ, typename A, typename B, typename C, typename T> struct gebp_madd_selector {
+ EIGEN_ALWAYS_INLINE static void run(const CJ& cj, A& a, B& b, C& c, T& /*t*/)
+ {
+ c = cj.pmadd(a,b,c);
+ }
+ };
+
+ template<typename CJ, typename T> struct gebp_madd_selector<CJ,T,T,T,T> {
+ EIGEN_ALWAYS_INLINE static void run(const CJ& cj, T& a, T& b, T& c, T& t)
+ {
+ t = b; t = cj.pmul(a,t); c = padd(c,t);
+ }
+ };
+
+ template<typename CJ, typename A, typename B, typename C, typename T>
+ EIGEN_STRONG_INLINE void gebp_madd(const CJ& cj, A& a, B& b, C& c, T& t)
+ {
+ gebp_madd_selector<CJ,A,B,C,T>::run(cj,a,b,c,t);
+ }
+
+ #define CJMADD(CJ,A,B,C,T) gebp_madd(CJ,A,B,C,T);
+// #define CJMADD(CJ,A,B,C,T) T = B; T = CJ.pmul(A,T); C = padd(C,T);
+#endif
+
+/* Vectorization logic
+ * real*real: unpack rhs to constant packets, ...
+ *
+ * cd*cd : unpack rhs to (b_r,b_r), (b_i,b_i), mul to get (a_r b_r,a_i b_r) (a_r b_i,a_i b_i),
+ * storing each res packet into two packets (2x2),
+ * at the end combine them: swap the second and addsub them
+ * cf*cf : same but with 2x4 blocks
+ * cplx*real : unpack rhs to constant packets, ...
+ * real*cplx : load lhs as (a0,a0,a1,a1), and mul as usual
+ */
+template<typename _LhsScalar, typename _RhsScalar, bool _ConjLhs, bool _ConjRhs>
+class gebp_traits
+{
+public:
+ typedef _LhsScalar LhsScalar;
+ typedef _RhsScalar RhsScalar;
+ typedef typename ScalarBinaryOpTraits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+
+ enum {
+ ConjLhs = _ConjLhs,
+ ConjRhs = _ConjRhs,
+ Vectorizable = packet_traits<LhsScalar>::Vectorizable && packet_traits<RhsScalar>::Vectorizable,
+ LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
+ RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
+ ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1,
+
+ NumberOfRegisters = EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS,
+
+ // register block size along the N direction must be 1 or 4
+ nr = 4,
+
+ // register block size along the M direction (currently, this one cannot be modified)
+ default_mr = (EIGEN_PLAIN_ENUM_MIN(16,NumberOfRegisters)/2/nr)*LhsPacketSize,
+#if defined(EIGEN_HAS_SINGLE_INSTRUCTION_MADD) && !defined(EIGEN_VECTORIZE_ALTIVEC) && !defined(EIGEN_VECTORIZE_VSX)
+ // we assume 16 registers
+ // See bug 992, if the scalar type is not vectorizable but that EIGEN_HAS_SINGLE_INSTRUCTION_MADD is defined,
+ // then using 3*LhsPacketSize triggers non-implemented paths in syrk.
+ mr = Vectorizable ? 3*LhsPacketSize : default_mr,
+#else
+ mr = default_mr,
+#endif
+
+ LhsProgress = LhsPacketSize,
+ RhsProgress = 1
+ };
+
+ typedef typename packet_traits<LhsScalar>::type _LhsPacket;
+ typedef typename packet_traits<RhsScalar>::type _RhsPacket;
+ typedef typename packet_traits<ResScalar>::type _ResPacket;
+
+ typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type LhsPacket;
+ typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type RhsPacket;
+ typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type ResPacket;
+
+ typedef ResPacket AccPacket;
+
+ EIGEN_STRONG_INLINE void initAcc(AccPacket& p)
+ {
+ p = pset1<ResPacket>(ResScalar(0));
+ }
+
+ EIGEN_STRONG_INLINE void broadcastRhs(const RhsScalar* b, RhsPacket& b0, RhsPacket& b1, RhsPacket& b2, RhsPacket& b3)
+ {
+ pbroadcast4(b, b0, b1, b2, b3);
+ }
+
+// EIGEN_STRONG_INLINE void broadcastRhs(const RhsScalar* b, RhsPacket& b0, RhsPacket& b1)
+// {
+// pbroadcast2(b, b0, b1);
+// }
+
+ template<typename RhsPacketType>
+ EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, RhsPacketType& dest) const
+ {
+ dest = pset1<RhsPacketType>(*b);
+ }
+
+ EIGEN_STRONG_INLINE void loadRhsQuad(const RhsScalar* b, RhsPacket& dest) const
+ {
+ dest = ploadquad<RhsPacket>(b);
+ }
+
+ template<typename LhsPacketType>
+ EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacketType& dest) const
+ {
+ dest = pload<LhsPacketType>(a);
+ }
+
+ template<typename LhsPacketType>
+ EIGEN_STRONG_INLINE void loadLhsUnaligned(const LhsScalar* a, LhsPacketType& dest) const
+ {
+ dest = ploadu<LhsPacketType>(a);
+ }
+
+ template<typename LhsPacketType, typename RhsPacketType, typename AccPacketType>
+ EIGEN_STRONG_INLINE void madd(const LhsPacketType& a, const RhsPacketType& b, AccPacketType& c, AccPacketType& tmp) const
+ {
+ conj_helper<LhsPacketType,RhsPacketType,ConjLhs,ConjRhs> cj;
+ // It would be a lot cleaner to call pmadd all the time. Unfortunately if we
+ // let gcc allocate the register in which to store the result of the pmul
+ // (in the case where there is no FMA) gcc fails to figure out how to avoid
+ // spilling register.
+#ifdef EIGEN_HAS_SINGLE_INSTRUCTION_MADD
+ EIGEN_UNUSED_VARIABLE(tmp);
+ c = cj.pmadd(a,b,c);
+#else
+ tmp = b; tmp = cj.pmul(a,tmp); c = padd(c,tmp);
+#endif
+ }
+
+ EIGEN_STRONG_INLINE void acc(const AccPacket& c, const ResPacket& alpha, ResPacket& r) const
+ {
+ r = pmadd(c,alpha,r);
+ }
+
+ template<typename ResPacketHalf>
+ EIGEN_STRONG_INLINE void acc(const ResPacketHalf& c, const ResPacketHalf& alpha, ResPacketHalf& r) const
+ {
+ r = pmadd(c,alpha,r);
+ }
+
+};
+
+template<typename RealScalar, bool _ConjLhs>
+class gebp_traits<std::complex<RealScalar>, RealScalar, _ConjLhs, false>
+{
+public:
+ typedef std::complex<RealScalar> LhsScalar;
+ typedef RealScalar RhsScalar;
+ typedef typename ScalarBinaryOpTraits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+
+ enum {
+ ConjLhs = _ConjLhs,
+ ConjRhs = false,
+ Vectorizable = packet_traits<LhsScalar>::Vectorizable && packet_traits<RhsScalar>::Vectorizable,
+ LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
+ RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
+ ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1,
+
+ NumberOfRegisters = EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS,
+ nr = 4,
+#if defined(EIGEN_HAS_SINGLE_INSTRUCTION_MADD) && !defined(EIGEN_VECTORIZE_ALTIVEC) && !defined(EIGEN_VECTORIZE_VSX)
+ // we assume 16 registers
+ mr = 3*LhsPacketSize,
+#else
+ mr = (EIGEN_PLAIN_ENUM_MIN(16,NumberOfRegisters)/2/nr)*LhsPacketSize,
+#endif
+
+ LhsProgress = LhsPacketSize,
+ RhsProgress = 1
+ };
+
+ typedef typename packet_traits<LhsScalar>::type _LhsPacket;
+ typedef typename packet_traits<RhsScalar>::type _RhsPacket;
+ typedef typename packet_traits<ResScalar>::type _ResPacket;
+
+ typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type LhsPacket;
+ typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type RhsPacket;
+ typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type ResPacket;
+
+ typedef ResPacket AccPacket;
+
+ EIGEN_STRONG_INLINE void initAcc(AccPacket& p)
+ {
+ p = pset1<ResPacket>(ResScalar(0));
+ }
+
+ EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, RhsPacket& dest) const
+ {
+ dest = pset1<RhsPacket>(*b);
+ }
+
+ EIGEN_STRONG_INLINE void loadRhsQuad(const RhsScalar* b, RhsPacket& dest) const
+ {
+ dest = pset1<RhsPacket>(*b);
+ }
+
+ EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
+ {
+ dest = pload<LhsPacket>(a);
+ }
+
+ EIGEN_STRONG_INLINE void loadLhsUnaligned(const LhsScalar* a, LhsPacket& dest) const
+ {
+ dest = ploadu<LhsPacket>(a);
+ }
+
+ EIGEN_STRONG_INLINE void broadcastRhs(const RhsScalar* b, RhsPacket& b0, RhsPacket& b1, RhsPacket& b2, RhsPacket& b3)
+ {
+ pbroadcast4(b, b0, b1, b2, b3);
+ }
+
+// EIGEN_STRONG_INLINE void broadcastRhs(const RhsScalar* b, RhsPacket& b0, RhsPacket& b1)
+// {
+// pbroadcast2(b, b0, b1);
+// }
+
+ EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, AccPacket& c, RhsPacket& tmp) const
+ {
+ madd_impl(a, b, c, tmp, typename conditional<Vectorizable,true_type,false_type>::type());
+ }
+
+ EIGEN_STRONG_INLINE void madd_impl(const LhsPacket& a, const RhsPacket& b, AccPacket& c, RhsPacket& tmp, const true_type&) const
+ {
+#ifdef EIGEN_HAS_SINGLE_INSTRUCTION_MADD
+ EIGEN_UNUSED_VARIABLE(tmp);
+ c.v = pmadd(a.v,b,c.v);
+#else
+ tmp = b; tmp = pmul(a.v,tmp); c.v = padd(c.v,tmp);
+#endif
+ }
+
+ EIGEN_STRONG_INLINE void madd_impl(const LhsScalar& a, const RhsScalar& b, ResScalar& c, RhsScalar& /*tmp*/, const false_type&) const
+ {
+ c += a * b;
+ }
+
+ EIGEN_STRONG_INLINE void acc(const AccPacket& c, const ResPacket& alpha, ResPacket& r) const
+ {
+ r = cj.pmadd(c,alpha,r);
+ }
+
+protected:
+ conj_helper<ResPacket,ResPacket,ConjLhs,false> cj;
+};
+
+template<typename Packet>
+struct DoublePacket
+{
+ Packet first;
+ Packet second;
+};
+
+template<typename Packet>
+DoublePacket<Packet> padd(const DoublePacket<Packet> &a, const DoublePacket<Packet> &b)
+{
+ DoublePacket<Packet> res;
+ res.first = padd(a.first, b.first);
+ res.second = padd(a.second,b.second);
+ return res;
+}
+
+template<typename Packet>
+const DoublePacket<Packet>& predux_downto4(const DoublePacket<Packet> &a)
+{
+ return a;
+}
+
+template<typename Packet> struct unpacket_traits<DoublePacket<Packet> > { typedef DoublePacket<Packet> half; };
+// template<typename Packet>
+// DoublePacket<Packet> pmadd(const DoublePacket<Packet> &a, const DoublePacket<Packet> &b)
+// {
+// DoublePacket<Packet> res;
+// res.first = padd(a.first, b.first);
+// res.second = padd(a.second,b.second);
+// return res;
+// }
+
+template<typename RealScalar, bool _ConjLhs, bool _ConjRhs>
+class gebp_traits<std::complex<RealScalar>, std::complex<RealScalar>, _ConjLhs, _ConjRhs >
+{
+public:
+ typedef std::complex<RealScalar> Scalar;
+ typedef std::complex<RealScalar> LhsScalar;
+ typedef std::complex<RealScalar> RhsScalar;
+ typedef std::complex<RealScalar> ResScalar;
+
+ enum {
+ ConjLhs = _ConjLhs,
+ ConjRhs = _ConjRhs,
+ Vectorizable = packet_traits<RealScalar>::Vectorizable
+ && packet_traits<Scalar>::Vectorizable,
+ RealPacketSize = Vectorizable ? packet_traits<RealScalar>::size : 1,
+ ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1,
+ LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
+ RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
+
+ // FIXME: should depend on NumberOfRegisters
+ nr = 4,
+ mr = ResPacketSize,
+
+ LhsProgress = ResPacketSize,
+ RhsProgress = 1
+ };
+
+ typedef typename packet_traits<RealScalar>::type RealPacket;
+ typedef typename packet_traits<Scalar>::type ScalarPacket;
+ typedef DoublePacket<RealPacket> DoublePacketType;
+
+ typedef typename conditional<Vectorizable,RealPacket, Scalar>::type LhsPacket;
+ typedef typename conditional<Vectorizable,DoublePacketType,Scalar>::type RhsPacket;
+ typedef typename conditional<Vectorizable,ScalarPacket,Scalar>::type ResPacket;
+ typedef typename conditional<Vectorizable,DoublePacketType,Scalar>::type AccPacket;
+
+ EIGEN_STRONG_INLINE void initAcc(Scalar& p) { p = Scalar(0); }
+
+ EIGEN_STRONG_INLINE void initAcc(DoublePacketType& p)
+ {
+ p.first = pset1<RealPacket>(RealScalar(0));
+ p.second = pset1<RealPacket>(RealScalar(0));
+ }
+
+ // Scalar path
+ EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, ResPacket& dest) const
+ {
+ dest = pset1<ResPacket>(*b);
+ }
+
+ // Vectorized path
+ EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, DoublePacketType& dest) const
+ {
+ dest.first = pset1<RealPacket>(real(*b));
+ dest.second = pset1<RealPacket>(imag(*b));
+ }
+
+ EIGEN_STRONG_INLINE void loadRhsQuad(const RhsScalar* b, ResPacket& dest) const
+ {
+ loadRhs(b,dest);
+ }
+ EIGEN_STRONG_INLINE void loadRhsQuad(const RhsScalar* b, DoublePacketType& dest) const
+ {
+ eigen_internal_assert(unpacket_traits<ScalarPacket>::size<=4);
+ loadRhs(b,dest);
+ }
+
+ EIGEN_STRONG_INLINE void broadcastRhs(const RhsScalar* b, RhsPacket& b0, RhsPacket& b1, RhsPacket& b2, RhsPacket& b3)
+ {
+ // FIXME not sure that's the best way to implement it!
+ loadRhs(b+0, b0);
+ loadRhs(b+1, b1);
+ loadRhs(b+2, b2);
+ loadRhs(b+3, b3);
+ }
+
+ // Vectorized path
+ EIGEN_STRONG_INLINE void broadcastRhs(const RhsScalar* b, DoublePacketType& b0, DoublePacketType& b1)
+ {
+ // FIXME not sure that's the best way to implement it!
+ loadRhs(b+0, b0);
+ loadRhs(b+1, b1);
+ }
+
+ // Scalar path
+ EIGEN_STRONG_INLINE void broadcastRhs(const RhsScalar* b, RhsScalar& b0, RhsScalar& b1)
+ {
+ // FIXME not sure that's the best way to implement it!
+ loadRhs(b+0, b0);
+ loadRhs(b+1, b1);
+ }
+
+ // nothing special here
+ EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
+ {
+ dest = pload<LhsPacket>((const typename unpacket_traits<LhsPacket>::type*)(a));
+ }
+
+ EIGEN_STRONG_INLINE void loadLhsUnaligned(const LhsScalar* a, LhsPacket& dest) const
+ {
+ dest = ploadu<LhsPacket>((const typename unpacket_traits<LhsPacket>::type*)(a));
+ }
+
+ EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, DoublePacketType& c, RhsPacket& /*tmp*/) const
+ {
+ c.first = padd(pmul(a,b.first), c.first);
+ c.second = padd(pmul(a,b.second),c.second);
+ }
+
+ EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, ResPacket& c, RhsPacket& /*tmp*/) const
+ {
+ c = cj.pmadd(a,b,c);
+ }
+
+ EIGEN_STRONG_INLINE void acc(const Scalar& c, const Scalar& alpha, Scalar& r) const { r += alpha * c; }
+
+ EIGEN_STRONG_INLINE void acc(const DoublePacketType& c, const ResPacket& alpha, ResPacket& r) const
+ {
+ // assemble c
+ ResPacket tmp;
+ if((!ConjLhs)&&(!ConjRhs))
+ {
+ tmp = pcplxflip(pconj(ResPacket(c.second)));
+ tmp = padd(ResPacket(c.first),tmp);
+ }
+ else if((!ConjLhs)&&(ConjRhs))
+ {
+ tmp = pconj(pcplxflip(ResPacket(c.second)));
+ tmp = padd(ResPacket(c.first),tmp);
+ }
+ else if((ConjLhs)&&(!ConjRhs))
+ {
+ tmp = pcplxflip(ResPacket(c.second));
+ tmp = padd(pconj(ResPacket(c.first)),tmp);
+ }
+ else if((ConjLhs)&&(ConjRhs))
+ {
+ tmp = pcplxflip(ResPacket(c.second));
+ tmp = psub(pconj(ResPacket(c.first)),tmp);
+ }
+
+ r = pmadd(tmp,alpha,r);
+ }
+
+protected:
+ conj_helper<LhsScalar,RhsScalar,ConjLhs,ConjRhs> cj;
+};
+
+template<typename RealScalar, bool _ConjRhs>
+class gebp_traits<RealScalar, std::complex<RealScalar>, false, _ConjRhs >
+{
+public:
+ typedef std::complex<RealScalar> Scalar;
+ typedef RealScalar LhsScalar;
+ typedef Scalar RhsScalar;
+ typedef Scalar ResScalar;
+
+ enum {
+ ConjLhs = false,
+ ConjRhs = _ConjRhs,
+ Vectorizable = packet_traits<RealScalar>::Vectorizable
+ && packet_traits<Scalar>::Vectorizable,
+ LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
+ RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
+ ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1,
+
+ NumberOfRegisters = EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS,
+ // FIXME: should depend on NumberOfRegisters
+ nr = 4,
+ mr = (EIGEN_PLAIN_ENUM_MIN(16,NumberOfRegisters)/2/nr)*ResPacketSize,
+
+ LhsProgress = ResPacketSize,
+ RhsProgress = 1
+ };
+
+ typedef typename packet_traits<LhsScalar>::type _LhsPacket;
+ typedef typename packet_traits<RhsScalar>::type _RhsPacket;
+ typedef typename packet_traits<ResScalar>::type _ResPacket;
+
+ typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type LhsPacket;
+ typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type RhsPacket;
+ typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type ResPacket;
+
+ typedef ResPacket AccPacket;
+
+ EIGEN_STRONG_INLINE void initAcc(AccPacket& p)
+ {
+ p = pset1<ResPacket>(ResScalar(0));
+ }
+
+ EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, RhsPacket& dest) const
+ {
+ dest = pset1<RhsPacket>(*b);
+ }
+
+ void broadcastRhs(const RhsScalar* b, RhsPacket& b0, RhsPacket& b1, RhsPacket& b2, RhsPacket& b3)
+ {
+ pbroadcast4(b, b0, b1, b2, b3);
+ }
+
+// EIGEN_STRONG_INLINE void broadcastRhs(const RhsScalar* b, RhsPacket& b0, RhsPacket& b1)
+// {
+// // FIXME not sure that's the best way to implement it!
+// b0 = pload1<RhsPacket>(b+0);
+// b1 = pload1<RhsPacket>(b+1);
+// }
+
+ EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
+ {
+ dest = ploaddup<LhsPacket>(a);
+ }
+
+ EIGEN_STRONG_INLINE void loadRhsQuad(const RhsScalar* b, RhsPacket& dest) const
+ {
+ eigen_internal_assert(unpacket_traits<RhsPacket>::size<=4);
+ loadRhs(b,dest);
+ }
+
+ EIGEN_STRONG_INLINE void loadLhsUnaligned(const LhsScalar* a, LhsPacket& dest) const
+ {
+ dest = ploaddup<LhsPacket>(a);
+ }
+
+ EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, AccPacket& c, RhsPacket& tmp) const
+ {
+ madd_impl(a, b, c, tmp, typename conditional<Vectorizable,true_type,false_type>::type());
+ }
+
+ EIGEN_STRONG_INLINE void madd_impl(const LhsPacket& a, const RhsPacket& b, AccPacket& c, RhsPacket& tmp, const true_type&) const
+ {
+#ifdef EIGEN_HAS_SINGLE_INSTRUCTION_MADD
+ EIGEN_UNUSED_VARIABLE(tmp);
+ c.v = pmadd(a,b.v,c.v);
+#else
+ tmp = b; tmp.v = pmul(a,tmp.v); c = padd(c,tmp);
+#endif
+
+ }
+
+ EIGEN_STRONG_INLINE void madd_impl(const LhsScalar& a, const RhsScalar& b, ResScalar& c, RhsScalar& /*tmp*/, const false_type&) const
+ {
+ c += a * b;
+ }
+
+ EIGEN_STRONG_INLINE void acc(const AccPacket& c, const ResPacket& alpha, ResPacket& r) const
+ {
+ r = cj.pmadd(alpha,c,r);
+ }
+
+protected:
+ conj_helper<ResPacket,ResPacket,false,ConjRhs> cj;
+};
+
+/* optimized GEneral packed Block * packed Panel product kernel
+ *
+ * Mixing type logic: C += A * B
+ * | A | B | comments
+ * |real |cplx | no vectorization yet, would require to pack A with duplication
+ * |cplx |real | easy vectorization
+ */
+template<typename LhsScalar, typename RhsScalar, typename Index, typename DataMapper, int mr, int nr, bool ConjugateLhs, bool ConjugateRhs>
+struct gebp_kernel
+{
+ typedef gebp_traits<LhsScalar,RhsScalar,ConjugateLhs,ConjugateRhs> Traits;
+ typedef typename Traits::ResScalar ResScalar;
+ typedef typename Traits::LhsPacket LhsPacket;
+ typedef typename Traits::RhsPacket RhsPacket;
+ typedef typename Traits::ResPacket ResPacket;
+ typedef typename Traits::AccPacket AccPacket;
+
+ typedef gebp_traits<RhsScalar,LhsScalar,ConjugateRhs,ConjugateLhs> SwappedTraits;
+ typedef typename SwappedTraits::ResScalar SResScalar;
+ typedef typename SwappedTraits::LhsPacket SLhsPacket;
+ typedef typename SwappedTraits::RhsPacket SRhsPacket;
+ typedef typename SwappedTraits::ResPacket SResPacket;
+ typedef typename SwappedTraits::AccPacket SAccPacket;
+
+ typedef typename DataMapper::LinearMapper LinearMapper;
+
+ enum {
+ Vectorizable = Traits::Vectorizable,
+ LhsProgress = Traits::LhsProgress,
+ RhsProgress = Traits::RhsProgress,
+ ResPacketSize = Traits::ResPacketSize
+ };
+
+ EIGEN_DONT_INLINE
+ void operator()(const DataMapper& res, const LhsScalar* blockA, const RhsScalar* blockB,
+ Index rows, Index depth, Index cols, ResScalar alpha,
+ Index strideA=-1, Index strideB=-1, Index offsetA=0, Index offsetB=0);
+};
+
+template<typename LhsScalar, typename RhsScalar, typename Index, typename DataMapper, int mr, int nr, bool ConjugateLhs, bool ConjugateRhs>
+EIGEN_DONT_INLINE
+void gebp_kernel<LhsScalar,RhsScalar,Index,DataMapper,mr,nr,ConjugateLhs,ConjugateRhs>
+ ::operator()(const DataMapper& res, const LhsScalar* blockA, const RhsScalar* blockB,
+ Index rows, Index depth, Index cols, ResScalar alpha,
+ Index strideA, Index strideB, Index offsetA, Index offsetB)
+ {
+ Traits traits;
+ SwappedTraits straits;
+
+ if(strideA==-1) strideA = depth;
+ if(strideB==-1) strideB = depth;
+ conj_helper<LhsScalar,RhsScalar,ConjugateLhs,ConjugateRhs> cj;
+ Index packet_cols4 = nr>=4 ? (cols/4) * 4 : 0;
+ const Index peeled_mc3 = mr>=3*Traits::LhsProgress ? (rows/(3*LhsProgress))*(3*LhsProgress) : 0;
+ const Index peeled_mc2 = mr>=2*Traits::LhsProgress ? peeled_mc3+((rows-peeled_mc3)/(2*LhsProgress))*(2*LhsProgress) : 0;
+ const Index peeled_mc1 = mr>=1*Traits::LhsProgress ? (rows/(1*LhsProgress))*(1*LhsProgress) : 0;
+ enum { pk = 8 }; // NOTE Such a large peeling factor is important for large matrices (~ +5% when >1000 on Haswell)
+ const Index peeled_kc = depth & ~(pk-1);
+ const Index prefetch_res_offset = 32/sizeof(ResScalar);
+// const Index depth2 = depth & ~1;
+
+ //---------- Process 3 * LhsProgress rows at once ----------
+ // This corresponds to 3*LhsProgress x nr register blocks.
+ // Usually, make sense only with FMA
+ if(mr>=3*Traits::LhsProgress)
+ {
+ // Here, the general idea is to loop on each largest micro horizontal panel of the lhs (3*Traits::LhsProgress x depth)
+ // and on each largest micro vertical panel of the rhs (depth * nr).
+ // Blocking sizes, i.e., 'depth' has been computed so that the micro horizontal panel of the lhs fit in L1.
+ // However, if depth is too small, we can extend the number of rows of these horizontal panels.
+ // This actual number of rows is computed as follow:
+ const Index l1 = defaultL1CacheSize; // in Bytes, TODO, l1 should be passed to this function.
+ // The max(1, ...) here is needed because we may be using blocking params larger than what our known l1 cache size
+ // suggests we should be using: either because our known l1 cache size is inaccurate (e.g. on Android, we can only guess),
+ // or because we are testing specific blocking sizes.
+ const Index actual_panel_rows = (3*LhsProgress) * std::max<Index>(1,( (l1 - sizeof(ResScalar)*mr*nr - depth*nr*sizeof(RhsScalar)) / (depth * sizeof(LhsScalar) * 3*LhsProgress) ));
+ for(Index i1=0; i1<peeled_mc3; i1+=actual_panel_rows)
+ {
+ const Index actual_panel_end = (std::min)(i1+actual_panel_rows, peeled_mc3);
+ for(Index j2=0; j2<packet_cols4; j2+=nr)
+ {
+ for(Index i=i1; i<actual_panel_end; i+=3*LhsProgress)
+ {
+
+ // We selected a 3*Traits::LhsProgress x nr micro block of res which is entirely
+ // stored into 3 x nr registers.
+
+ const LhsScalar* blA = &blockA[i*strideA+offsetA*(3*LhsProgress)];
+ prefetch(&blA[0]);
+
+ // gets res block as register
+ AccPacket C0, C1, C2, C3,
+ C4, C5, C6, C7,
+ C8, C9, C10, C11;
+ traits.initAcc(C0); traits.initAcc(C1); traits.initAcc(C2); traits.initAcc(C3);
+ traits.initAcc(C4); traits.initAcc(C5); traits.initAcc(C6); traits.initAcc(C7);
+ traits.initAcc(C8); traits.initAcc(C9); traits.initAcc(C10); traits.initAcc(C11);
+
+ LinearMapper r0 = res.getLinearMapper(i, j2 + 0);
+ LinearMapper r1 = res.getLinearMapper(i, j2 + 1);
+ LinearMapper r2 = res.getLinearMapper(i, j2 + 2);
+ LinearMapper r3 = res.getLinearMapper(i, j2 + 3);
+
+ r0.prefetch(0);
+ r1.prefetch(0);
+ r2.prefetch(0);
+ r3.prefetch(0);
+
+ // performs "inner" products
+ const RhsScalar* blB = &blockB[j2*strideB+offsetB*nr];
+ prefetch(&blB[0]);
+ LhsPacket A0, A1;
+
+ for(Index k=0; k<peeled_kc; k+=pk)
+ {
+ EIGEN_ASM_COMMENT("begin gebp micro kernel 3pX4");
+ RhsPacket B_0, T0;
+ LhsPacket A2;
+
+#define EIGEN_GEBP_ONESTEP(K) \
+ do { \
+ EIGEN_ASM_COMMENT("begin step of gebp micro kernel 3pX4"); \
+ EIGEN_ASM_COMMENT("Note: these asm comments work around bug 935!"); \
+ internal::prefetch(blA+(3*K+16)*LhsProgress); \
+ if (EIGEN_ARCH_ARM) { internal::prefetch(blB+(4*K+16)*RhsProgress); } /* Bug 953 */ \
+ traits.loadLhs(&blA[(0+3*K)*LhsProgress], A0); \
+ traits.loadLhs(&blA[(1+3*K)*LhsProgress], A1); \
+ traits.loadLhs(&blA[(2+3*K)*LhsProgress], A2); \
+ traits.loadRhs(blB + (0+4*K)*Traits::RhsProgress, B_0); \
+ traits.madd(A0, B_0, C0, T0); \
+ traits.madd(A1, B_0, C4, T0); \
+ traits.madd(A2, B_0, C8, B_0); \
+ traits.loadRhs(blB + (1+4*K)*Traits::RhsProgress, B_0); \
+ traits.madd(A0, B_0, C1, T0); \
+ traits.madd(A1, B_0, C5, T0); \
+ traits.madd(A2, B_0, C9, B_0); \
+ traits.loadRhs(blB + (2+4*K)*Traits::RhsProgress, B_0); \
+ traits.madd(A0, B_0, C2, T0); \
+ traits.madd(A1, B_0, C6, T0); \
+ traits.madd(A2, B_0, C10, B_0); \
+ traits.loadRhs(blB + (3+4*K)*Traits::RhsProgress, B_0); \
+ traits.madd(A0, B_0, C3 , T0); \
+ traits.madd(A1, B_0, C7, T0); \
+ traits.madd(A2, B_0, C11, B_0); \
+ EIGEN_ASM_COMMENT("end step of gebp micro kernel 3pX4"); \
+ } while(false)
+
+ internal::prefetch(blB);
+ EIGEN_GEBP_ONESTEP(0);
+ EIGEN_GEBP_ONESTEP(1);
+ EIGEN_GEBP_ONESTEP(2);
+ EIGEN_GEBP_ONESTEP(3);
+ EIGEN_GEBP_ONESTEP(4);
+ EIGEN_GEBP_ONESTEP(5);
+ EIGEN_GEBP_ONESTEP(6);
+ EIGEN_GEBP_ONESTEP(7);
+
+ blB += pk*4*RhsProgress;
+ blA += pk*3*Traits::LhsProgress;
+
+ EIGEN_ASM_COMMENT("end gebp micro kernel 3pX4");
+ }
+ // process remaining peeled loop
+ for(Index k=peeled_kc; k<depth; k++)
+ {
+ RhsPacket B_0, T0;
+ LhsPacket A2;
+ EIGEN_GEBP_ONESTEP(0);
+ blB += 4*RhsProgress;
+ blA += 3*Traits::LhsProgress;
+ }
+
+#undef EIGEN_GEBP_ONESTEP
+
+ ResPacket R0, R1, R2;
+ ResPacket alphav = pset1<ResPacket>(alpha);
+
+ R0 = r0.loadPacket(0 * Traits::ResPacketSize);
+ R1 = r0.loadPacket(1 * Traits::ResPacketSize);
+ R2 = r0.loadPacket(2 * Traits::ResPacketSize);
+ traits.acc(C0, alphav, R0);
+ traits.acc(C4, alphav, R1);
+ traits.acc(C8, alphav, R2);
+ r0.storePacket(0 * Traits::ResPacketSize, R0);
+ r0.storePacket(1 * Traits::ResPacketSize, R1);
+ r0.storePacket(2 * Traits::ResPacketSize, R2);
+
+ R0 = r1.loadPacket(0 * Traits::ResPacketSize);
+ R1 = r1.loadPacket(1 * Traits::ResPacketSize);
+ R2 = r1.loadPacket(2 * Traits::ResPacketSize);
+ traits.acc(C1, alphav, R0);
+ traits.acc(C5, alphav, R1);
+ traits.acc(C9, alphav, R2);
+ r1.storePacket(0 * Traits::ResPacketSize, R0);
+ r1.storePacket(1 * Traits::ResPacketSize, R1);
+ r1.storePacket(2 * Traits::ResPacketSize, R2);
+
+ R0 = r2.loadPacket(0 * Traits::ResPacketSize);
+ R1 = r2.loadPacket(1 * Traits::ResPacketSize);
+ R2 = r2.loadPacket(2 * Traits::ResPacketSize);
+ traits.acc(C2, alphav, R0);
+ traits.acc(C6, alphav, R1);
+ traits.acc(C10, alphav, R2);
+ r2.storePacket(0 * Traits::ResPacketSize, R0);
+ r2.storePacket(1 * Traits::ResPacketSize, R1);
+ r2.storePacket(2 * Traits::ResPacketSize, R2);
+
+ R0 = r3.loadPacket(0 * Traits::ResPacketSize);
+ R1 = r3.loadPacket(1 * Traits::ResPacketSize);
+ R2 = r3.loadPacket(2 * Traits::ResPacketSize);
+ traits.acc(C3, alphav, R0);
+ traits.acc(C7, alphav, R1);
+ traits.acc(C11, alphav, R2);
+ r3.storePacket(0 * Traits::ResPacketSize, R0);
+ r3.storePacket(1 * Traits::ResPacketSize, R1);
+ r3.storePacket(2 * Traits::ResPacketSize, R2);
+ }
+ }
+
+ // Deal with remaining columns of the rhs
+ for(Index j2=packet_cols4; j2<cols; j2++)
+ {
+ for(Index i=i1; i<actual_panel_end; i+=3*LhsProgress)
+ {
+ // One column at a time
+ const LhsScalar* blA = &blockA[i*strideA+offsetA*(3*Traits::LhsProgress)];
+ prefetch(&blA[0]);
+
+ // gets res block as register
+ AccPacket C0, C4, C8;
+ traits.initAcc(C0);
+ traits.initAcc(C4);
+ traits.initAcc(C8);
+
+ LinearMapper r0 = res.getLinearMapper(i, j2);
+ r0.prefetch(0);
+
+ // performs "inner" products
+ const RhsScalar* blB = &blockB[j2*strideB+offsetB];
+ LhsPacket A0, A1, A2;
+
+ for(Index k=0; k<peeled_kc; k+=pk)
+ {
+ EIGEN_ASM_COMMENT("begin gebp micro kernel 3pX1");
+ RhsPacket B_0;
+#define EIGEN_GEBGP_ONESTEP(K) \
+ do { \
+ EIGEN_ASM_COMMENT("begin step of gebp micro kernel 3pX1"); \
+ EIGEN_ASM_COMMENT("Note: these asm comments work around bug 935!"); \
+ traits.loadLhs(&blA[(0+3*K)*LhsProgress], A0); \
+ traits.loadLhs(&blA[(1+3*K)*LhsProgress], A1); \
+ traits.loadLhs(&blA[(2+3*K)*LhsProgress], A2); \
+ traits.loadRhs(&blB[(0+K)*RhsProgress], B_0); \
+ traits.madd(A0, B_0, C0, B_0); \
+ traits.madd(A1, B_0, C4, B_0); \
+ traits.madd(A2, B_0, C8, B_0); \
+ EIGEN_ASM_COMMENT("end step of gebp micro kernel 3pX1"); \
+ } while(false)
+
+ EIGEN_GEBGP_ONESTEP(0);
+ EIGEN_GEBGP_ONESTEP(1);
+ EIGEN_GEBGP_ONESTEP(2);
+ EIGEN_GEBGP_ONESTEP(3);
+ EIGEN_GEBGP_ONESTEP(4);
+ EIGEN_GEBGP_ONESTEP(5);
+ EIGEN_GEBGP_ONESTEP(6);
+ EIGEN_GEBGP_ONESTEP(7);
+
+ blB += pk*RhsProgress;
+ blA += pk*3*Traits::LhsProgress;
+
+ EIGEN_ASM_COMMENT("end gebp micro kernel 3pX1");
+ }
+
+ // process remaining peeled loop
+ for(Index k=peeled_kc; k<depth; k++)
+ {
+ RhsPacket B_0;
+ EIGEN_GEBGP_ONESTEP(0);
+ blB += RhsProgress;
+ blA += 3*Traits::LhsProgress;
+ }
+#undef EIGEN_GEBGP_ONESTEP
+ ResPacket R0, R1, R2;
+ ResPacket alphav = pset1<ResPacket>(alpha);
+
+ R0 = r0.loadPacket(0 * Traits::ResPacketSize);
+ R1 = r0.loadPacket(1 * Traits::ResPacketSize);
+ R2 = r0.loadPacket(2 * Traits::ResPacketSize);
+ traits.acc(C0, alphav, R0);
+ traits.acc(C4, alphav, R1);
+ traits.acc(C8, alphav, R2);
+ r0.storePacket(0 * Traits::ResPacketSize, R0);
+ r0.storePacket(1 * Traits::ResPacketSize, R1);
+ r0.storePacket(2 * Traits::ResPacketSize, R2);
+ }
+ }
+ }
+ }
+
+ //---------- Process 2 * LhsProgress rows at once ----------
+ if(mr>=2*Traits::LhsProgress)
+ {
+ const Index l1 = defaultL1CacheSize; // in Bytes, TODO, l1 should be passed to this function.
+ // The max(1, ...) here is needed because we may be using blocking params larger than what our known l1 cache size
+ // suggests we should be using: either because our known l1 cache size is inaccurate (e.g. on Android, we can only guess),
+ // or because we are testing specific blocking sizes.
+ Index actual_panel_rows = (2*LhsProgress) * std::max<Index>(1,( (l1 - sizeof(ResScalar)*mr*nr - depth*nr*sizeof(RhsScalar)) / (depth * sizeof(LhsScalar) * 2*LhsProgress) ));
+
+ for(Index i1=peeled_mc3; i1<peeled_mc2; i1+=actual_panel_rows)
+ {
+ Index actual_panel_end = (std::min)(i1+actual_panel_rows, peeled_mc2);
+ for(Index j2=0; j2<packet_cols4; j2+=nr)
+ {
+ for(Index i=i1; i<actual_panel_end; i+=2*LhsProgress)
+ {
+
+ // We selected a 2*Traits::LhsProgress x nr micro block of res which is entirely
+ // stored into 2 x nr registers.
+
+ const LhsScalar* blA = &blockA[i*strideA+offsetA*(2*Traits::LhsProgress)];
+ prefetch(&blA[0]);
+
+ // gets res block as register
+ AccPacket C0, C1, C2, C3,
+ C4, C5, C6, C7;
+ traits.initAcc(C0); traits.initAcc(C1); traits.initAcc(C2); traits.initAcc(C3);
+ traits.initAcc(C4); traits.initAcc(C5); traits.initAcc(C6); traits.initAcc(C7);
+
+ LinearMapper r0 = res.getLinearMapper(i, j2 + 0);
+ LinearMapper r1 = res.getLinearMapper(i, j2 + 1);
+ LinearMapper r2 = res.getLinearMapper(i, j2 + 2);
+ LinearMapper r3 = res.getLinearMapper(i, j2 + 3);
+
+ r0.prefetch(prefetch_res_offset);
+ r1.prefetch(prefetch_res_offset);
+ r2.prefetch(prefetch_res_offset);
+ r3.prefetch(prefetch_res_offset);
+
+ // performs "inner" products
+ const RhsScalar* blB = &blockB[j2*strideB+offsetB*nr];
+ prefetch(&blB[0]);
+ LhsPacket A0, A1;
+
+ for(Index k=0; k<peeled_kc; k+=pk)
+ {
+ EIGEN_ASM_COMMENT("begin gebp micro kernel 2pX4");
+ RhsPacket B_0, B1, B2, B3, T0;
+
+ #define EIGEN_GEBGP_ONESTEP(K) \
+ do { \
+ EIGEN_ASM_COMMENT("begin step of gebp micro kernel 2pX4"); \
+ EIGEN_ASM_COMMENT("Note: these asm comments work around bug 935!"); \
+ traits.loadLhs(&blA[(0+2*K)*LhsProgress], A0); \
+ traits.loadLhs(&blA[(1+2*K)*LhsProgress], A1); \
+ traits.broadcastRhs(&blB[(0+4*K)*RhsProgress], B_0, B1, B2, B3); \
+ traits.madd(A0, B_0, C0, T0); \
+ traits.madd(A1, B_0, C4, B_0); \
+ traits.madd(A0, B1, C1, T0); \
+ traits.madd(A1, B1, C5, B1); \
+ traits.madd(A0, B2, C2, T0); \
+ traits.madd(A1, B2, C6, B2); \
+ traits.madd(A0, B3, C3, T0); \
+ traits.madd(A1, B3, C7, B3); \
+ EIGEN_ASM_COMMENT("end step of gebp micro kernel 2pX4"); \
+ } while(false)
+
+ internal::prefetch(blB+(48+0));
+ EIGEN_GEBGP_ONESTEP(0);
+ EIGEN_GEBGP_ONESTEP(1);
+ EIGEN_GEBGP_ONESTEP(2);
+ EIGEN_GEBGP_ONESTEP(3);
+ internal::prefetch(blB+(48+16));
+ EIGEN_GEBGP_ONESTEP(4);
+ EIGEN_GEBGP_ONESTEP(5);
+ EIGEN_GEBGP_ONESTEP(6);
+ EIGEN_GEBGP_ONESTEP(7);
+
+ blB += pk*4*RhsProgress;
+ blA += pk*(2*Traits::LhsProgress);
+
+ EIGEN_ASM_COMMENT("end gebp micro kernel 2pX4");
+ }
+ // process remaining peeled loop
+ for(Index k=peeled_kc; k<depth; k++)
+ {
+ RhsPacket B_0, B1, B2, B3, T0;
+ EIGEN_GEBGP_ONESTEP(0);
+ blB += 4*RhsProgress;
+ blA += 2*Traits::LhsProgress;
+ }
+#undef EIGEN_GEBGP_ONESTEP
+
+ ResPacket R0, R1, R2, R3;
+ ResPacket alphav = pset1<ResPacket>(alpha);
+
+ R0 = r0.loadPacket(0 * Traits::ResPacketSize);
+ R1 = r0.loadPacket(1 * Traits::ResPacketSize);
+ R2 = r1.loadPacket(0 * Traits::ResPacketSize);
+ R3 = r1.loadPacket(1 * Traits::ResPacketSize);
+ traits.acc(C0, alphav, R0);
+ traits.acc(C4, alphav, R1);
+ traits.acc(C1, alphav, R2);
+ traits.acc(C5, alphav, R3);
+ r0.storePacket(0 * Traits::ResPacketSize, R0);
+ r0.storePacket(1 * Traits::ResPacketSize, R1);
+ r1.storePacket(0 * Traits::ResPacketSize, R2);
+ r1.storePacket(1 * Traits::ResPacketSize, R3);
+
+ R0 = r2.loadPacket(0 * Traits::ResPacketSize);
+ R1 = r2.loadPacket(1 * Traits::ResPacketSize);
+ R2 = r3.loadPacket(0 * Traits::ResPacketSize);
+ R3 = r3.loadPacket(1 * Traits::ResPacketSize);
+ traits.acc(C2, alphav, R0);
+ traits.acc(C6, alphav, R1);
+ traits.acc(C3, alphav, R2);
+ traits.acc(C7, alphav, R3);
+ r2.storePacket(0 * Traits::ResPacketSize, R0);
+ r2.storePacket(1 * Traits::ResPacketSize, R1);
+ r3.storePacket(0 * Traits::ResPacketSize, R2);
+ r3.storePacket(1 * Traits::ResPacketSize, R3);
+ }
+ }
+
+ // Deal with remaining columns of the rhs
+ for(Index j2=packet_cols4; j2<cols; j2++)
+ {
+ for(Index i=i1; i<actual_panel_end; i+=2*LhsProgress)
+ {
+ // One column at a time
+ const LhsScalar* blA = &blockA[i*strideA+offsetA*(2*Traits::LhsProgress)];
+ prefetch(&blA[0]);
+
+ // gets res block as register
+ AccPacket C0, C4;
+ traits.initAcc(C0);
+ traits.initAcc(C4);
+
+ LinearMapper r0 = res.getLinearMapper(i, j2);
+ r0.prefetch(prefetch_res_offset);
+
+ // performs "inner" products
+ const RhsScalar* blB = &blockB[j2*strideB+offsetB];
+ LhsPacket A0, A1;
+
+ for(Index k=0; k<peeled_kc; k+=pk)
+ {
+ EIGEN_ASM_COMMENT("begin gebp micro kernel 2pX1");
+ RhsPacket B_0, B1;
+
+#define EIGEN_GEBGP_ONESTEP(K) \
+ do { \
+ EIGEN_ASM_COMMENT("begin step of gebp micro kernel 2pX1"); \
+ EIGEN_ASM_COMMENT("Note: these asm comments work around bug 935!"); \
+ traits.loadLhs(&blA[(0+2*K)*LhsProgress], A0); \
+ traits.loadLhs(&blA[(1+2*K)*LhsProgress], A1); \
+ traits.loadRhs(&blB[(0+K)*RhsProgress], B_0); \
+ traits.madd(A0, B_0, C0, B1); \
+ traits.madd(A1, B_0, C4, B_0); \
+ EIGEN_ASM_COMMENT("end step of gebp micro kernel 2pX1"); \
+ } while(false)
+
+ EIGEN_GEBGP_ONESTEP(0);
+ EIGEN_GEBGP_ONESTEP(1);
+ EIGEN_GEBGP_ONESTEP(2);
+ EIGEN_GEBGP_ONESTEP(3);
+ EIGEN_GEBGP_ONESTEP(4);
+ EIGEN_GEBGP_ONESTEP(5);
+ EIGEN_GEBGP_ONESTEP(6);
+ EIGEN_GEBGP_ONESTEP(7);
+
+ blB += pk*RhsProgress;
+ blA += pk*2*Traits::LhsProgress;
+
+ EIGEN_ASM_COMMENT("end gebp micro kernel 2pX1");
+ }
+
+ // process remaining peeled loop
+ for(Index k=peeled_kc; k<depth; k++)
+ {
+ RhsPacket B_0, B1;
+ EIGEN_GEBGP_ONESTEP(0);
+ blB += RhsProgress;
+ blA += 2*Traits::LhsProgress;
+ }
+#undef EIGEN_GEBGP_ONESTEP
+ ResPacket R0, R1;
+ ResPacket alphav = pset1<ResPacket>(alpha);
+
+ R0 = r0.loadPacket(0 * Traits::ResPacketSize);
+ R1 = r0.loadPacket(1 * Traits::ResPacketSize);
+ traits.acc(C0, alphav, R0);
+ traits.acc(C4, alphav, R1);
+ r0.storePacket(0 * Traits::ResPacketSize, R0);
+ r0.storePacket(1 * Traits::ResPacketSize, R1);
+ }
+ }
+ }
+ }
+ //---------- Process 1 * LhsProgress rows at once ----------
+ if(mr>=1*Traits::LhsProgress)
+ {
+ // loops on each largest micro horizontal panel of lhs (1*LhsProgress x depth)
+ for(Index i=peeled_mc2; i<peeled_mc1; i+=1*LhsProgress)
+ {
+ // loops on each largest micro vertical panel of rhs (depth * nr)
+ for(Index j2=0; j2<packet_cols4; j2+=nr)
+ {
+ // We select a 1*Traits::LhsProgress x nr micro block of res which is entirely
+ // stored into 1 x nr registers.
+
+ const LhsScalar* blA = &blockA[i*strideA+offsetA*(1*Traits::LhsProgress)];
+ prefetch(&blA[0]);
+
+ // gets res block as register
+ AccPacket C0, C1, C2, C3;
+ traits.initAcc(C0);
+ traits.initAcc(C1);
+ traits.initAcc(C2);
+ traits.initAcc(C3);
+
+ LinearMapper r0 = res.getLinearMapper(i, j2 + 0);
+ LinearMapper r1 = res.getLinearMapper(i, j2 + 1);
+ LinearMapper r2 = res.getLinearMapper(i, j2 + 2);
+ LinearMapper r3 = res.getLinearMapper(i, j2 + 3);
+
+ r0.prefetch(prefetch_res_offset);
+ r1.prefetch(prefetch_res_offset);
+ r2.prefetch(prefetch_res_offset);
+ r3.prefetch(prefetch_res_offset);
+
+ // performs "inner" products
+ const RhsScalar* blB = &blockB[j2*strideB+offsetB*nr];
+ prefetch(&blB[0]);
+ LhsPacket A0;
+
+ for(Index k=0; k<peeled_kc; k+=pk)
+ {
+ EIGEN_ASM_COMMENT("begin gebp micro kernel 1pX4");
+ RhsPacket B_0, B1, B2, B3;
+
+#define EIGEN_GEBGP_ONESTEP(K) \
+ do { \
+ EIGEN_ASM_COMMENT("begin step of gebp micro kernel 1pX4"); \
+ EIGEN_ASM_COMMENT("Note: these asm comments work around bug 935!"); \
+ traits.loadLhs(&blA[(0+1*K)*LhsProgress], A0); \
+ traits.broadcastRhs(&blB[(0+4*K)*RhsProgress], B_0, B1, B2, B3); \
+ traits.madd(A0, B_0, C0, B_0); \
+ traits.madd(A0, B1, C1, B1); \
+ traits.madd(A0, B2, C2, B2); \
+ traits.madd(A0, B3, C3, B3); \
+ EIGEN_ASM_COMMENT("end step of gebp micro kernel 1pX4"); \
+ } while(false)
+
+ internal::prefetch(blB+(48+0));
+ EIGEN_GEBGP_ONESTEP(0);
+ EIGEN_GEBGP_ONESTEP(1);
+ EIGEN_GEBGP_ONESTEP(2);
+ EIGEN_GEBGP_ONESTEP(3);
+ internal::prefetch(blB+(48+16));
+ EIGEN_GEBGP_ONESTEP(4);
+ EIGEN_GEBGP_ONESTEP(5);
+ EIGEN_GEBGP_ONESTEP(6);
+ EIGEN_GEBGP_ONESTEP(7);
+
+ blB += pk*4*RhsProgress;
+ blA += pk*1*LhsProgress;
+
+ EIGEN_ASM_COMMENT("end gebp micro kernel 1pX4");
+ }
+ // process remaining peeled loop
+ for(Index k=peeled_kc; k<depth; k++)
+ {
+ RhsPacket B_0, B1, B2, B3;
+ EIGEN_GEBGP_ONESTEP(0);
+ blB += 4*RhsProgress;
+ blA += 1*LhsProgress;
+ }
+#undef EIGEN_GEBGP_ONESTEP
+
+ ResPacket R0, R1;
+ ResPacket alphav = pset1<ResPacket>(alpha);
+
+ R0 = r0.loadPacket(0 * Traits::ResPacketSize);
+ R1 = r1.loadPacket(0 * Traits::ResPacketSize);
+ traits.acc(C0, alphav, R0);
+ traits.acc(C1, alphav, R1);
+ r0.storePacket(0 * Traits::ResPacketSize, R0);
+ r1.storePacket(0 * Traits::ResPacketSize, R1);
+
+ R0 = r2.loadPacket(0 * Traits::ResPacketSize);
+ R1 = r3.loadPacket(0 * Traits::ResPacketSize);
+ traits.acc(C2, alphav, R0);
+ traits.acc(C3, alphav, R1);
+ r2.storePacket(0 * Traits::ResPacketSize, R0);
+ r3.storePacket(0 * Traits::ResPacketSize, R1);
+ }
+
+ // Deal with remaining columns of the rhs
+ for(Index j2=packet_cols4; j2<cols; j2++)
+ {
+ // One column at a time
+ const LhsScalar* blA = &blockA[i*strideA+offsetA*(1*Traits::LhsProgress)];
+ prefetch(&blA[0]);
+
+ // gets res block as register
+ AccPacket C0;
+ traits.initAcc(C0);
+
+ LinearMapper r0 = res.getLinearMapper(i, j2);
+
+ // performs "inner" products
+ const RhsScalar* blB = &blockB[j2*strideB+offsetB];
+ LhsPacket A0;
+
+ for(Index k=0; k<peeled_kc; k+=pk)
+ {
+ EIGEN_ASM_COMMENT("begin gebp micro kernel 1pX1");
+ RhsPacket B_0;
+
+#define EIGEN_GEBGP_ONESTEP(K) \
+ do { \
+ EIGEN_ASM_COMMENT("begin step of gebp micro kernel 1pX1"); \
+ EIGEN_ASM_COMMENT("Note: these asm comments work around bug 935!"); \
+ traits.loadLhs(&blA[(0+1*K)*LhsProgress], A0); \
+ traits.loadRhs(&blB[(0+K)*RhsProgress], B_0); \
+ traits.madd(A0, B_0, C0, B_0); \
+ EIGEN_ASM_COMMENT("end step of gebp micro kernel 1pX1"); \
+ } while(false);
+
+ EIGEN_GEBGP_ONESTEP(0);
+ EIGEN_GEBGP_ONESTEP(1);
+ EIGEN_GEBGP_ONESTEP(2);
+ EIGEN_GEBGP_ONESTEP(3);
+ EIGEN_GEBGP_ONESTEP(4);
+ EIGEN_GEBGP_ONESTEP(5);
+ EIGEN_GEBGP_ONESTEP(6);
+ EIGEN_GEBGP_ONESTEP(7);
+
+ blB += pk*RhsProgress;
+ blA += pk*1*Traits::LhsProgress;
+
+ EIGEN_ASM_COMMENT("end gebp micro kernel 1pX1");
+ }
+
+ // process remaining peeled loop
+ for(Index k=peeled_kc; k<depth; k++)
+ {
+ RhsPacket B_0;
+ EIGEN_GEBGP_ONESTEP(0);
+ blB += RhsProgress;
+ blA += 1*Traits::LhsProgress;
+ }
+#undef EIGEN_GEBGP_ONESTEP
+ ResPacket R0;
+ ResPacket alphav = pset1<ResPacket>(alpha);
+ R0 = r0.loadPacket(0 * Traits::ResPacketSize);
+ traits.acc(C0, alphav, R0);
+ r0.storePacket(0 * Traits::ResPacketSize, R0);
+ }
+ }
+ }
+ //---------- Process remaining rows, 1 at once ----------
+ if(peeled_mc1<rows)
+ {
+ // loop on each panel of the rhs
+ for(Index j2=0; j2<packet_cols4; j2+=nr)
+ {
+ // loop on each row of the lhs (1*LhsProgress x depth)
+ for(Index i=peeled_mc1; i<rows; i+=1)
+ {
+ const LhsScalar* blA = &blockA[i*strideA+offsetA];
+ prefetch(&blA[0]);
+ const RhsScalar* blB = &blockB[j2*strideB+offsetB*nr];
+
+ // The following piece of code wont work for 512 bit registers
+ // Moreover, if LhsProgress==8 it assumes that there is a half packet of the same size
+ // as nr (which is currently 4) for the return type.
+ typedef typename unpacket_traits<SResPacket>::half SResPacketHalf;
+ if ((SwappedTraits::LhsProgress % 4) == 0 &&
+ (SwappedTraits::LhsProgress <= 8) &&
+ (SwappedTraits::LhsProgress!=8 || unpacket_traits<SResPacketHalf>::size==nr))
+ {
+ SAccPacket C0, C1, C2, C3;
+ straits.initAcc(C0);
+ straits.initAcc(C1);
+ straits.initAcc(C2);
+ straits.initAcc(C3);
+
+ const Index spk = (std::max)(1,SwappedTraits::LhsProgress/4);
+ const Index endk = (depth/spk)*spk;
+ const Index endk4 = (depth/(spk*4))*(spk*4);
+
+ Index k=0;
+ for(; k<endk4; k+=4*spk)
+ {
+ SLhsPacket A0,A1;
+ SRhsPacket B_0,B_1;
+
+ straits.loadLhsUnaligned(blB+0*SwappedTraits::LhsProgress, A0);
+ straits.loadLhsUnaligned(blB+1*SwappedTraits::LhsProgress, A1);
+
+ straits.loadRhsQuad(blA+0*spk, B_0);
+ straits.loadRhsQuad(blA+1*spk, B_1);
+ straits.madd(A0,B_0,C0,B_0);
+ straits.madd(A1,B_1,C1,B_1);
+
+ straits.loadLhsUnaligned(blB+2*SwappedTraits::LhsProgress, A0);
+ straits.loadLhsUnaligned(blB+3*SwappedTraits::LhsProgress, A1);
+ straits.loadRhsQuad(blA+2*spk, B_0);
+ straits.loadRhsQuad(blA+3*spk, B_1);
+ straits.madd(A0,B_0,C2,B_0);
+ straits.madd(A1,B_1,C3,B_1);
+
+ blB += 4*SwappedTraits::LhsProgress;
+ blA += 4*spk;
+ }
+ C0 = padd(padd(C0,C1),padd(C2,C3));
+ for(; k<endk; k+=spk)
+ {
+ SLhsPacket A0;
+ SRhsPacket B_0;
+
+ straits.loadLhsUnaligned(blB, A0);
+ straits.loadRhsQuad(blA, B_0);
+ straits.madd(A0,B_0,C0,B_0);
+
+ blB += SwappedTraits::LhsProgress;
+ blA += spk;
+ }
+ if(SwappedTraits::LhsProgress==8)
+ {
+ // Special case where we have to first reduce the accumulation register C0
+ typedef typename conditional<SwappedTraits::LhsProgress>=8,typename unpacket_traits<SResPacket>::half,SResPacket>::type SResPacketHalf;
+ typedef typename conditional<SwappedTraits::LhsProgress>=8,typename unpacket_traits<SLhsPacket>::half,SLhsPacket>::type SLhsPacketHalf;
+ typedef typename conditional<SwappedTraits::LhsProgress>=8,typename unpacket_traits<SLhsPacket>::half,SRhsPacket>::type SRhsPacketHalf;
+ typedef typename conditional<SwappedTraits::LhsProgress>=8,typename unpacket_traits<SAccPacket>::half,SAccPacket>::type SAccPacketHalf;
+
+ SResPacketHalf R = res.template gatherPacket<SResPacketHalf>(i, j2);
+ SResPacketHalf alphav = pset1<SResPacketHalf>(alpha);
+
+ if(depth-endk>0)
+ {
+ // We have to handle the last row of the rhs which corresponds to a half-packet
+ SLhsPacketHalf a0;
+ SRhsPacketHalf b0;
+ straits.loadLhsUnaligned(blB, a0);
+ straits.loadRhs(blA, b0);
+ SAccPacketHalf c0 = predux_downto4(C0);
+ straits.madd(a0,b0,c0,b0);
+ straits.acc(c0, alphav, R);
+ }
+ else
+ {
+ straits.acc(predux_downto4(C0), alphav, R);
+ }
+ res.scatterPacket(i, j2, R);
+ }
+ else
+ {
+ SResPacket R = res.template gatherPacket<SResPacket>(i, j2);
+ SResPacket alphav = pset1<SResPacket>(alpha);
+ straits.acc(C0, alphav, R);
+ res.scatterPacket(i, j2, R);
+ }
+ }
+ else // scalar path
+ {
+ // get a 1 x 4 res block as registers
+ ResScalar C0(0), C1(0), C2(0), C3(0);
+
+ for(Index k=0; k<depth; k++)
+ {
+ LhsScalar A0;
+ RhsScalar B_0, B_1;
+
+ A0 = blA[k];
+
+ B_0 = blB[0];
+ B_1 = blB[1];
+ CJMADD(cj,A0,B_0,C0, B_0);
+ CJMADD(cj,A0,B_1,C1, B_1);
+
+ B_0 = blB[2];
+ B_1 = blB[3];
+ CJMADD(cj,A0,B_0,C2, B_0);
+ CJMADD(cj,A0,B_1,C3, B_1);
+
+ blB += 4;
+ }
+ res(i, j2 + 0) += alpha * C0;
+ res(i, j2 + 1) += alpha * C1;
+ res(i, j2 + 2) += alpha * C2;
+ res(i, j2 + 3) += alpha * C3;
+ }
+ }
+ }
+ // remaining columns
+ for(Index j2=packet_cols4; j2<cols; j2++)
+ {
+ // loop on each row of the lhs (1*LhsProgress x depth)
+ for(Index i=peeled_mc1; i<rows; i+=1)
+ {
+ const LhsScalar* blA = &blockA[i*strideA+offsetA];
+ prefetch(&blA[0]);
+ // gets a 1 x 1 res block as registers
+ ResScalar C0(0);
+ const RhsScalar* blB = &blockB[j2*strideB+offsetB];
+ for(Index k=0; k<depth; k++)
+ {
+ LhsScalar A0 = blA[k];
+ RhsScalar B_0 = blB[k];
+ CJMADD(cj, A0, B_0, C0, B_0);
+ }
+ res(i, j2) += alpha * C0;
+ }
+ }
+ }
+ }
+
+
+#undef CJMADD
+
+// pack a block of the lhs
+// The traversal is as follow (mr==4):
+// 0 4 8 12 ...
+// 1 5 9 13 ...
+// 2 6 10 14 ...
+// 3 7 11 15 ...
+//
+// 16 20 24 28 ...
+// 17 21 25 29 ...
+// 18 22 26 30 ...
+// 19 23 27 31 ...
+//
+// 32 33 34 35 ...
+// 36 36 38 39 ...
+template<typename Scalar, typename Index, typename DataMapper, int Pack1, int Pack2, bool Conjugate, bool PanelMode>
+struct gemm_pack_lhs<Scalar, Index, DataMapper, Pack1, Pack2, ColMajor, Conjugate, PanelMode>
+{
+ typedef typename DataMapper::LinearMapper LinearMapper;
+ EIGEN_DONT_INLINE void operator()(Scalar* blockA, const DataMapper& lhs, Index depth, Index rows, Index stride=0, Index offset=0);
+};
+
+template<typename Scalar, typename Index, typename DataMapper, int Pack1, int Pack2, bool Conjugate, bool PanelMode>
+EIGEN_DONT_INLINE void gemm_pack_lhs<Scalar, Index, DataMapper, Pack1, Pack2, ColMajor, Conjugate, PanelMode>
+ ::operator()(Scalar* blockA, const DataMapper& lhs, Index depth, Index rows, Index stride, Index offset)
+{
+ typedef typename packet_traits<Scalar>::type Packet;
+ enum { PacketSize = packet_traits<Scalar>::size };
+
+ EIGEN_ASM_COMMENT("EIGEN PRODUCT PACK LHS");
+ EIGEN_UNUSED_VARIABLE(stride);
+ EIGEN_UNUSED_VARIABLE(offset);
+ eigen_assert(((!PanelMode) && stride==0 && offset==0) || (PanelMode && stride>=depth && offset<=stride));
+ eigen_assert( ((Pack1%PacketSize)==0 && Pack1<=4*PacketSize) || (Pack1<=4) );
+ conj_if<NumTraits<Scalar>::IsComplex && Conjugate> cj;
+ Index count = 0;
+
+ const Index peeled_mc3 = Pack1>=3*PacketSize ? (rows/(3*PacketSize))*(3*PacketSize) : 0;
+ const Index peeled_mc2 = Pack1>=2*PacketSize ? peeled_mc3+((rows-peeled_mc3)/(2*PacketSize))*(2*PacketSize) : 0;
+ const Index peeled_mc1 = Pack1>=1*PacketSize ? (rows/(1*PacketSize))*(1*PacketSize) : 0;
+ const Index peeled_mc0 = Pack2>=1*PacketSize ? peeled_mc1
+ : Pack2>1 ? (rows/Pack2)*Pack2 : 0;
+
+ Index i=0;
+
+ // Pack 3 packets
+ if(Pack1>=3*PacketSize)
+ {
+ for(; i<peeled_mc3; i+=3*PacketSize)
+ {
+ if(PanelMode) count += (3*PacketSize) * offset;
+
+ for(Index k=0; k<depth; k++)
+ {
+ Packet A, B, C;
+ A = lhs.loadPacket(i+0*PacketSize, k);
+ B = lhs.loadPacket(i+1*PacketSize, k);
+ C = lhs.loadPacket(i+2*PacketSize, k);
+ pstore(blockA+count, cj.pconj(A)); count+=PacketSize;
+ pstore(blockA+count, cj.pconj(B)); count+=PacketSize;
+ pstore(blockA+count, cj.pconj(C)); count+=PacketSize;
+ }
+ if(PanelMode) count += (3*PacketSize) * (stride-offset-depth);
+ }
+ }
+ // Pack 2 packets
+ if(Pack1>=2*PacketSize)
+ {
+ for(; i<peeled_mc2; i+=2*PacketSize)
+ {
+ if(PanelMode) count += (2*PacketSize) * offset;
+
+ for(Index k=0; k<depth; k++)
+ {
+ Packet A, B;
+ A = lhs.loadPacket(i+0*PacketSize, k);
+ B = lhs.loadPacket(i+1*PacketSize, k);
+ pstore(blockA+count, cj.pconj(A)); count+=PacketSize;
+ pstore(blockA+count, cj.pconj(B)); count+=PacketSize;
+ }
+ if(PanelMode) count += (2*PacketSize) * (stride-offset-depth);
+ }
+ }
+ // Pack 1 packets
+ if(Pack1>=1*PacketSize)
+ {
+ for(; i<peeled_mc1; i+=1*PacketSize)
+ {
+ if(PanelMode) count += (1*PacketSize) * offset;
+
+ for(Index k=0; k<depth; k++)
+ {
+ Packet A;
+ A = lhs.loadPacket(i+0*PacketSize, k);
+ pstore(blockA+count, cj.pconj(A));
+ count+=PacketSize;
+ }
+ if(PanelMode) count += (1*PacketSize) * (stride-offset-depth);
+ }
+ }
+ // Pack scalars
+ if(Pack2<PacketSize && Pack2>1)
+ {
+ for(; i<peeled_mc0; i+=Pack2)
+ {
+ if(PanelMode) count += Pack2 * offset;
+
+ for(Index k=0; k<depth; k++)
+ for(Index w=0; w<Pack2; w++)
+ blockA[count++] = cj(lhs(i+w, k));
+
+ if(PanelMode) count += Pack2 * (stride-offset-depth);
+ }
+ }
+ for(; i<rows; i++)
+ {
+ if(PanelMode) count += offset;
+ for(Index k=0; k<depth; k++)
+ blockA[count++] = cj(lhs(i, k));
+ if(PanelMode) count += (stride-offset-depth);
+ }
+}
+
+template<typename Scalar, typename Index, typename DataMapper, int Pack1, int Pack2, bool Conjugate, bool PanelMode>
+struct gemm_pack_lhs<Scalar, Index, DataMapper, Pack1, Pack2, RowMajor, Conjugate, PanelMode>
+{
+ typedef typename DataMapper::LinearMapper LinearMapper;
+ EIGEN_DONT_INLINE void operator()(Scalar* blockA, const DataMapper& lhs, Index depth, Index rows, Index stride=0, Index offset=0);
+};
+
+template<typename Scalar, typename Index, typename DataMapper, int Pack1, int Pack2, bool Conjugate, bool PanelMode>
+EIGEN_DONT_INLINE void gemm_pack_lhs<Scalar, Index, DataMapper, Pack1, Pack2, RowMajor, Conjugate, PanelMode>
+ ::operator()(Scalar* blockA, const DataMapper& lhs, Index depth, Index rows, Index stride, Index offset)
+{
+ typedef typename packet_traits<Scalar>::type Packet;
+ enum { PacketSize = packet_traits<Scalar>::size };
+
+ EIGEN_ASM_COMMENT("EIGEN PRODUCT PACK LHS");
+ EIGEN_UNUSED_VARIABLE(stride);
+ EIGEN_UNUSED_VARIABLE(offset);
+ eigen_assert(((!PanelMode) && stride==0 && offset==0) || (PanelMode && stride>=depth && offset<=stride));
+ conj_if<NumTraits<Scalar>::IsComplex && Conjugate> cj;
+ Index count = 0;
+
+// const Index peeled_mc3 = Pack1>=3*PacketSize ? (rows/(3*PacketSize))*(3*PacketSize) : 0;
+// const Index peeled_mc2 = Pack1>=2*PacketSize ? peeled_mc3+((rows-peeled_mc3)/(2*PacketSize))*(2*PacketSize) : 0;
+// const Index peeled_mc1 = Pack1>=1*PacketSize ? (rows/(1*PacketSize))*(1*PacketSize) : 0;
+
+ int pack = Pack1;
+ Index i = 0;
+ while(pack>0)
+ {
+ Index remaining_rows = rows-i;
+ Index peeled_mc = i+(remaining_rows/pack)*pack;
+ for(; i<peeled_mc; i+=pack)
+ {
+ if(PanelMode) count += pack * offset;
+
+ const Index peeled_k = (depth/PacketSize)*PacketSize;
+ Index k=0;
+ if(pack>=PacketSize)
+ {
+ for(; k<peeled_k; k+=PacketSize)
+ {
+ for (Index m = 0; m < pack; m += PacketSize)
+ {
+ PacketBlock<Packet> kernel;
+ for (int p = 0; p < PacketSize; ++p) kernel.packet[p] = lhs.loadPacket(i+p+m, k);
+ ptranspose(kernel);
+ for (int p = 0; p < PacketSize; ++p) pstore(blockA+count+m+(pack)*p, cj.pconj(kernel.packet[p]));
+ }
+ count += PacketSize*pack;
+ }
+ }
+ for(; k<depth; k++)
+ {
+ Index w=0;
+ for(; w<pack-3; w+=4)
+ {
+ Scalar a(cj(lhs(i+w+0, k))),
+ b(cj(lhs(i+w+1, k))),
+ c(cj(lhs(i+w+2, k))),
+ d(cj(lhs(i+w+3, k)));
+ blockA[count++] = a;
+ blockA[count++] = b;
+ blockA[count++] = c;
+ blockA[count++] = d;
+ }
+ if(pack%4)
+ for(;w<pack;++w)
+ blockA[count++] = cj(lhs(i+w, k));
+ }
+
+ if(PanelMode) count += pack * (stride-offset-depth);
+ }
+
+ pack -= PacketSize;
+ if(pack<Pack2 && (pack+PacketSize)!=Pack2)
+ pack = Pack2;
+ }
+
+ for(; i<rows; i++)
+ {
+ if(PanelMode) count += offset;
+ for(Index k=0; k<depth; k++)
+ blockA[count++] = cj(lhs(i, k));
+ if(PanelMode) count += (stride-offset-depth);
+ }
+}
+
+// copy a complete panel of the rhs
+// this version is optimized for column major matrices
+// The traversal order is as follow: (nr==4):
+// 0 1 2 3 12 13 14 15 24 27
+// 4 5 6 7 16 17 18 19 25 28
+// 8 9 10 11 20 21 22 23 26 29
+// . . . . . . . . . .
+template<typename Scalar, typename Index, typename DataMapper, int nr, bool Conjugate, bool PanelMode>
+struct gemm_pack_rhs<Scalar, Index, DataMapper, nr, ColMajor, Conjugate, PanelMode>
+{
+ typedef typename packet_traits<Scalar>::type Packet;
+ typedef typename DataMapper::LinearMapper LinearMapper;
+ enum { PacketSize = packet_traits<Scalar>::size };
+ EIGEN_DONT_INLINE void operator()(Scalar* blockB, const DataMapper& rhs, Index depth, Index cols, Index stride=0, Index offset=0);
+};
+
+template<typename Scalar, typename Index, typename DataMapper, int nr, bool Conjugate, bool PanelMode>
+EIGEN_DONT_INLINE void gemm_pack_rhs<Scalar, Index, DataMapper, nr, ColMajor, Conjugate, PanelMode>
+ ::operator()(Scalar* blockB, const DataMapper& rhs, Index depth, Index cols, Index stride, Index offset)
+{
+ EIGEN_ASM_COMMENT("EIGEN PRODUCT PACK RHS COLMAJOR");
+ EIGEN_UNUSED_VARIABLE(stride);
+ EIGEN_UNUSED_VARIABLE(offset);
+ eigen_assert(((!PanelMode) && stride==0 && offset==0) || (PanelMode && stride>=depth && offset<=stride));
+ conj_if<NumTraits<Scalar>::IsComplex && Conjugate> cj;
+ Index packet_cols8 = nr>=8 ? (cols/8) * 8 : 0;
+ Index packet_cols4 = nr>=4 ? (cols/4) * 4 : 0;
+ Index count = 0;
+ const Index peeled_k = (depth/PacketSize)*PacketSize;
+// if(nr>=8)
+// {
+// for(Index j2=0; j2<packet_cols8; j2+=8)
+// {
+// // skip what we have before
+// if(PanelMode) count += 8 * offset;
+// const Scalar* b0 = &rhs[(j2+0)*rhsStride];
+// const Scalar* b1 = &rhs[(j2+1)*rhsStride];
+// const Scalar* b2 = &rhs[(j2+2)*rhsStride];
+// const Scalar* b3 = &rhs[(j2+3)*rhsStride];
+// const Scalar* b4 = &rhs[(j2+4)*rhsStride];
+// const Scalar* b5 = &rhs[(j2+5)*rhsStride];
+// const Scalar* b6 = &rhs[(j2+6)*rhsStride];
+// const Scalar* b7 = &rhs[(j2+7)*rhsStride];
+// Index k=0;
+// if(PacketSize==8) // TODO enbale vectorized transposition for PacketSize==4
+// {
+// for(; k<peeled_k; k+=PacketSize) {
+// PacketBlock<Packet> kernel;
+// for (int p = 0; p < PacketSize; ++p) {
+// kernel.packet[p] = ploadu<Packet>(&rhs[(j2+p)*rhsStride+k]);
+// }
+// ptranspose(kernel);
+// for (int p = 0; p < PacketSize; ++p) {
+// pstoreu(blockB+count, cj.pconj(kernel.packet[p]));
+// count+=PacketSize;
+// }
+// }
+// }
+// for(; k<depth; k++)
+// {
+// blockB[count+0] = cj(b0[k]);
+// blockB[count+1] = cj(b1[k]);
+// blockB[count+2] = cj(b2[k]);
+// blockB[count+3] = cj(b3[k]);
+// blockB[count+4] = cj(b4[k]);
+// blockB[count+5] = cj(b5[k]);
+// blockB[count+6] = cj(b6[k]);
+// blockB[count+7] = cj(b7[k]);
+// count += 8;
+// }
+// // skip what we have after
+// if(PanelMode) count += 8 * (stride-offset-depth);
+// }
+// }
+
+ if(nr>=4)
+ {
+ for(Index j2=packet_cols8; j2<packet_cols4; j2+=4)
+ {
+ // skip what we have before
+ if(PanelMode) count += 4 * offset;
+ const LinearMapper dm0 = rhs.getLinearMapper(0, j2 + 0);
+ const LinearMapper dm1 = rhs.getLinearMapper(0, j2 + 1);
+ const LinearMapper dm2 = rhs.getLinearMapper(0, j2 + 2);
+ const LinearMapper dm3 = rhs.getLinearMapper(0, j2 + 3);
+
+ Index k=0;
+ if((PacketSize%4)==0) // TODO enable vectorized transposition for PacketSize==2 ??
+ {
+ for(; k<peeled_k; k+=PacketSize) {
+ PacketBlock<Packet,(PacketSize%4)==0?4:PacketSize> kernel;
+ kernel.packet[0] = dm0.loadPacket(k);
+ kernel.packet[1%PacketSize] = dm1.loadPacket(k);
+ kernel.packet[2%PacketSize] = dm2.loadPacket(k);
+ kernel.packet[3%PacketSize] = dm3.loadPacket(k);
+ ptranspose(kernel);
+ pstoreu(blockB+count+0*PacketSize, cj.pconj(kernel.packet[0]));
+ pstoreu(blockB+count+1*PacketSize, cj.pconj(kernel.packet[1%PacketSize]));
+ pstoreu(blockB+count+2*PacketSize, cj.pconj(kernel.packet[2%PacketSize]));
+ pstoreu(blockB+count+3*PacketSize, cj.pconj(kernel.packet[3%PacketSize]));
+ count+=4*PacketSize;
+ }
+ }
+ for(; k<depth; k++)
+ {
+ blockB[count+0] = cj(dm0(k));
+ blockB[count+1] = cj(dm1(k));
+ blockB[count+2] = cj(dm2(k));
+ blockB[count+3] = cj(dm3(k));
+ count += 4;
+ }
+ // skip what we have after
+ if(PanelMode) count += 4 * (stride-offset-depth);
+ }
+ }
+
+ // copy the remaining columns one at a time (nr==1)
+ for(Index j2=packet_cols4; j2<cols; ++j2)
+ {
+ if(PanelMode) count += offset;
+ const LinearMapper dm0 = rhs.getLinearMapper(0, j2);
+ for(Index k=0; k<depth; k++)
+ {
+ blockB[count] = cj(dm0(k));
+ count += 1;
+ }
+ if(PanelMode) count += (stride-offset-depth);
+ }
+}
+
+// this version is optimized for row major matrices
+template<typename Scalar, typename Index, typename DataMapper, int nr, bool Conjugate, bool PanelMode>
+struct gemm_pack_rhs<Scalar, Index, DataMapper, nr, RowMajor, Conjugate, PanelMode>
+{
+ typedef typename packet_traits<Scalar>::type Packet;
+ typedef typename DataMapper::LinearMapper LinearMapper;
+ enum { PacketSize = packet_traits<Scalar>::size };
+ EIGEN_DONT_INLINE void operator()(Scalar* blockB, const DataMapper& rhs, Index depth, Index cols, Index stride=0, Index offset=0);
+};
+
+template<typename Scalar, typename Index, typename DataMapper, int nr, bool Conjugate, bool PanelMode>
+EIGEN_DONT_INLINE void gemm_pack_rhs<Scalar, Index, DataMapper, nr, RowMajor, Conjugate, PanelMode>
+ ::operator()(Scalar* blockB, const DataMapper& rhs, Index depth, Index cols, Index stride, Index offset)
+{
+ EIGEN_ASM_COMMENT("EIGEN PRODUCT PACK RHS ROWMAJOR");
+ EIGEN_UNUSED_VARIABLE(stride);
+ EIGEN_UNUSED_VARIABLE(offset);
+ eigen_assert(((!PanelMode) && stride==0 && offset==0) || (PanelMode && stride>=depth && offset<=stride));
+ conj_if<NumTraits<Scalar>::IsComplex && Conjugate> cj;
+ Index packet_cols8 = nr>=8 ? (cols/8) * 8 : 0;
+ Index packet_cols4 = nr>=4 ? (cols/4) * 4 : 0;
+ Index count = 0;
+
+// if(nr>=8)
+// {
+// for(Index j2=0; j2<packet_cols8; j2+=8)
+// {
+// // skip what we have before
+// if(PanelMode) count += 8 * offset;
+// for(Index k=0; k<depth; k++)
+// {
+// if (PacketSize==8) {
+// Packet A = ploadu<Packet>(&rhs[k*rhsStride + j2]);
+// pstoreu(blockB+count, cj.pconj(A));
+// } else if (PacketSize==4) {
+// Packet A = ploadu<Packet>(&rhs[k*rhsStride + j2]);
+// Packet B = ploadu<Packet>(&rhs[k*rhsStride + j2 + PacketSize]);
+// pstoreu(blockB+count, cj.pconj(A));
+// pstoreu(blockB+count+PacketSize, cj.pconj(B));
+// } else {
+// const Scalar* b0 = &rhs[k*rhsStride + j2];
+// blockB[count+0] = cj(b0[0]);
+// blockB[count+1] = cj(b0[1]);
+// blockB[count+2] = cj(b0[2]);
+// blockB[count+3] = cj(b0[3]);
+// blockB[count+4] = cj(b0[4]);
+// blockB[count+5] = cj(b0[5]);
+// blockB[count+6] = cj(b0[6]);
+// blockB[count+7] = cj(b0[7]);
+// }
+// count += 8;
+// }
+// // skip what we have after
+// if(PanelMode) count += 8 * (stride-offset-depth);
+// }
+// }
+ if(nr>=4)
+ {
+ for(Index j2=packet_cols8; j2<packet_cols4; j2+=4)
+ {
+ // skip what we have before
+ if(PanelMode) count += 4 * offset;
+ for(Index k=0; k<depth; k++)
+ {
+ if (PacketSize==4) {
+ Packet A = rhs.loadPacket(k, j2);
+ pstoreu(blockB+count, cj.pconj(A));
+ count += PacketSize;
+ } else {
+ const LinearMapper dm0 = rhs.getLinearMapper(k, j2);
+ blockB[count+0] = cj(dm0(0));
+ blockB[count+1] = cj(dm0(1));
+ blockB[count+2] = cj(dm0(2));
+ blockB[count+3] = cj(dm0(3));
+ count += 4;
+ }
+ }
+ // skip what we have after
+ if(PanelMode) count += 4 * (stride-offset-depth);
+ }
+ }
+ // copy the remaining columns one at a time (nr==1)
+ for(Index j2=packet_cols4; j2<cols; ++j2)
+ {
+ if(PanelMode) count += offset;
+ for(Index k=0; k<depth; k++)
+ {
+ blockB[count] = cj(rhs(k, j2));
+ count += 1;
+ }
+ if(PanelMode) count += stride-offset-depth;
+ }
+}
+
+} // end namespace internal
+
+/** \returns the currently set level 1 cpu cache size (in bytes) used to estimate the ideal blocking size parameters.
+ * \sa setCpuCacheSize */
+inline std::ptrdiff_t l1CacheSize()
+{
+ std::ptrdiff_t l1, l2, l3;
+ internal::manage_caching_sizes(GetAction, &l1, &l2, &l3);
+ return l1;
+}
+
+/** \returns the currently set level 2 cpu cache size (in bytes) used to estimate the ideal blocking size parameters.
+ * \sa setCpuCacheSize */
+inline std::ptrdiff_t l2CacheSize()
+{
+ std::ptrdiff_t l1, l2, l3;
+ internal::manage_caching_sizes(GetAction, &l1, &l2, &l3);
+ return l2;
+}
+
+/** \returns the currently set level 3 cpu cache size (in bytes) used to estimate the ideal blocking size paramete\
+rs.
+* \sa setCpuCacheSize */
+inline std::ptrdiff_t l3CacheSize()
+{
+ std::ptrdiff_t l1, l2, l3;
+ internal::manage_caching_sizes(GetAction, &l1, &l2, &l3);
+ return l3;
+}
+
+/** Set the cpu L1 and L2 cache sizes (in bytes).
+ * These values are use to adjust the size of the blocks
+ * for the algorithms working per blocks.
+ *
+ * \sa computeProductBlockingSizes */
+inline void setCpuCacheSizes(std::ptrdiff_t l1, std::ptrdiff_t l2, std::ptrdiff_t l3)
+{
+ internal::manage_caching_sizes(SetAction, &l1, &l2, &l3);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERAL_BLOCK_PANEL_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h
new file mode 100644
index 000000000..6440e1d09
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h
@@ -0,0 +1,492 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERAL_MATRIX_MATRIX_H
+#define EIGEN_GENERAL_MATRIX_MATRIX_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename _LhsScalar, typename _RhsScalar> class level3_blocking;
+
+/* Specialization for a row-major destination matrix => simple transposition of the product */
+template<
+ typename Index,
+ typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs,
+ typename RhsScalar, int RhsStorageOrder, bool ConjugateRhs>
+struct general_matrix_matrix_product<Index,LhsScalar,LhsStorageOrder,ConjugateLhs,RhsScalar,RhsStorageOrder,ConjugateRhs,RowMajor>
+{
+ typedef gebp_traits<RhsScalar,LhsScalar> Traits;
+
+ typedef typename ScalarBinaryOpTraits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+ static EIGEN_STRONG_INLINE void run(
+ Index rows, Index cols, Index depth,
+ const LhsScalar* lhs, Index lhsStride,
+ const RhsScalar* rhs, Index rhsStride,
+ ResScalar* res, Index resStride,
+ ResScalar alpha,
+ level3_blocking<RhsScalar,LhsScalar>& blocking,
+ GemmParallelInfo<Index>* info = 0)
+ {
+ // transpose the product such that the result is column major
+ general_matrix_matrix_product<Index,
+ RhsScalar, RhsStorageOrder==RowMajor ? ColMajor : RowMajor, ConjugateRhs,
+ LhsScalar, LhsStorageOrder==RowMajor ? ColMajor : RowMajor, ConjugateLhs,
+ ColMajor>
+ ::run(cols,rows,depth,rhs,rhsStride,lhs,lhsStride,res,resStride,alpha,blocking,info);
+ }
+};
+
+/* Specialization for a col-major destination matrix
+ * => Blocking algorithm following Goto's paper */
+template<
+ typename Index,
+ typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs,
+ typename RhsScalar, int RhsStorageOrder, bool ConjugateRhs>
+struct general_matrix_matrix_product<Index,LhsScalar,LhsStorageOrder,ConjugateLhs,RhsScalar,RhsStorageOrder,ConjugateRhs,ColMajor>
+{
+
+typedef gebp_traits<LhsScalar,RhsScalar> Traits;
+
+typedef typename ScalarBinaryOpTraits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+static void run(Index rows, Index cols, Index depth,
+ const LhsScalar* _lhs, Index lhsStride,
+ const RhsScalar* _rhs, Index rhsStride,
+ ResScalar* _res, Index resStride,
+ ResScalar alpha,
+ level3_blocking<LhsScalar,RhsScalar>& blocking,
+ GemmParallelInfo<Index>* info = 0)
+{
+ typedef const_blas_data_mapper<LhsScalar, Index, LhsStorageOrder> LhsMapper;
+ typedef const_blas_data_mapper<RhsScalar, Index, RhsStorageOrder> RhsMapper;
+ typedef blas_data_mapper<typename Traits::ResScalar, Index, ColMajor> ResMapper;
+ LhsMapper lhs(_lhs,lhsStride);
+ RhsMapper rhs(_rhs,rhsStride);
+ ResMapper res(_res, resStride);
+
+ Index kc = blocking.kc(); // cache block size along the K direction
+ Index mc = (std::min)(rows,blocking.mc()); // cache block size along the M direction
+ Index nc = (std::min)(cols,blocking.nc()); // cache block size along the N direction
+
+ gemm_pack_lhs<LhsScalar, Index, LhsMapper, Traits::mr, Traits::LhsProgress, LhsStorageOrder> pack_lhs;
+ gemm_pack_rhs<RhsScalar, Index, RhsMapper, Traits::nr, RhsStorageOrder> pack_rhs;
+ gebp_kernel<LhsScalar, RhsScalar, Index, ResMapper, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs> gebp;
+
+#ifdef EIGEN_HAS_OPENMP
+ if(info)
+ {
+ // this is the parallel version!
+ int tid = omp_get_thread_num();
+ int threads = omp_get_num_threads();
+
+ LhsScalar* blockA = blocking.blockA();
+ eigen_internal_assert(blockA!=0);
+
+ std::size_t sizeB = kc*nc;
+ ei_declare_aligned_stack_constructed_variable(RhsScalar, blockB, sizeB, 0);
+
+ // For each horizontal panel of the rhs, and corresponding vertical panel of the lhs...
+ for(Index k=0; k<depth; k+=kc)
+ {
+ const Index actual_kc = (std::min)(k+kc,depth)-k; // => rows of B', and cols of the A'
+
+ // In order to reduce the chance that a thread has to wait for the other,
+ // let's start by packing B'.
+ pack_rhs(blockB, rhs.getSubMapper(k,0), actual_kc, nc);
+
+ // Pack A_k to A' in a parallel fashion:
+ // each thread packs the sub block A_k,i to A'_i where i is the thread id.
+
+ // However, before copying to A'_i, we have to make sure that no other thread is still using it,
+ // i.e., we test that info[tid].users equals 0.
+ // Then, we set info[tid].users to the number of threads to mark that all other threads are going to use it.
+ while(info[tid].users!=0) {}
+ info[tid].users += threads;
+
+ pack_lhs(blockA+info[tid].lhs_start*actual_kc, lhs.getSubMapper(info[tid].lhs_start,k), actual_kc, info[tid].lhs_length);
+
+ // Notify the other threads that the part A'_i is ready to go.
+ info[tid].sync = k;
+
+ // Computes C_i += A' * B' per A'_i
+ for(int shift=0; shift<threads; ++shift)
+ {
+ int i = (tid+shift)%threads;
+
+ // At this point we have to make sure that A'_i has been updated by the thread i,
+ // we use testAndSetOrdered to mimic a volatile access.
+ // However, no need to wait for the B' part which has been updated by the current thread!
+ if (shift>0) {
+ while(info[i].sync!=k) {
+ }
+ }
+
+ gebp(res.getSubMapper(info[i].lhs_start, 0), blockA+info[i].lhs_start*actual_kc, blockB, info[i].lhs_length, actual_kc, nc, alpha);
+ }
+
+ // Then keep going as usual with the remaining B'
+ for(Index j=nc; j<cols; j+=nc)
+ {
+ const Index actual_nc = (std::min)(j+nc,cols)-j;
+
+ // pack B_k,j to B'
+ pack_rhs(blockB, rhs.getSubMapper(k,j), actual_kc, actual_nc);
+
+ // C_j += A' * B'
+ gebp(res.getSubMapper(0, j), blockA, blockB, rows, actual_kc, actual_nc, alpha);
+ }
+
+ // Release all the sub blocks A'_i of A' for the current thread,
+ // i.e., we simply decrement the number of users by 1
+ for(Index i=0; i<threads; ++i)
+ #pragma omp atomic
+ info[i].users -= 1;
+ }
+ }
+ else
+#endif // EIGEN_HAS_OPENMP
+ {
+ EIGEN_UNUSED_VARIABLE(info);
+
+ // this is the sequential version!
+ std::size_t sizeA = kc*mc;
+ std::size_t sizeB = kc*nc;
+
+ ei_declare_aligned_stack_constructed_variable(LhsScalar, blockA, sizeA, blocking.blockA());
+ ei_declare_aligned_stack_constructed_variable(RhsScalar, blockB, sizeB, blocking.blockB());
+
+ const bool pack_rhs_once = mc!=rows && kc==depth && nc==cols;
+
+ // For each horizontal panel of the rhs, and corresponding panel of the lhs...
+ for(Index i2=0; i2<rows; i2+=mc)
+ {
+ const Index actual_mc = (std::min)(i2+mc,rows)-i2;
+
+ for(Index k2=0; k2<depth; k2+=kc)
+ {
+ const Index actual_kc = (std::min)(k2+kc,depth)-k2;
+
+ // OK, here we have selected one horizontal panel of rhs and one vertical panel of lhs.
+ // => Pack lhs's panel into a sequential chunk of memory (L2/L3 caching)
+ // Note that this panel will be read as many times as the number of blocks in the rhs's
+ // horizontal panel which is, in practice, a very low number.
+ pack_lhs(blockA, lhs.getSubMapper(i2,k2), actual_kc, actual_mc);
+
+ // For each kc x nc block of the rhs's horizontal panel...
+ for(Index j2=0; j2<cols; j2+=nc)
+ {
+ const Index actual_nc = (std::min)(j2+nc,cols)-j2;
+
+ // We pack the rhs's block into a sequential chunk of memory (L2 caching)
+ // Note that this block will be read a very high number of times, which is equal to the number of
+ // micro horizontal panel of the large rhs's panel (e.g., rows/12 times).
+ if((!pack_rhs_once) || i2==0)
+ pack_rhs(blockB, rhs.getSubMapper(k2,j2), actual_kc, actual_nc);
+
+ // Everything is packed, we can now call the panel * block kernel:
+ gebp(res.getSubMapper(i2, j2), blockA, blockB, actual_mc, actual_kc, actual_nc, alpha);
+ }
+ }
+ }
+ }
+}
+
+};
+
+/*********************************************************************************
+* Specialization of generic_product_impl for "large" GEMM, i.e.,
+* implementation of the high level wrapper to general_matrix_matrix_product
+**********************************************************************************/
+
+template<typename Scalar, typename Index, typename Gemm, typename Lhs, typename Rhs, typename Dest, typename BlockingType>
+struct gemm_functor
+{
+ gemm_functor(const Lhs& lhs, const Rhs& rhs, Dest& dest, const Scalar& actualAlpha, BlockingType& blocking)
+ : m_lhs(lhs), m_rhs(rhs), m_dest(dest), m_actualAlpha(actualAlpha), m_blocking(blocking)
+ {}
+
+ void initParallelSession(Index num_threads) const
+ {
+ m_blocking.initParallel(m_lhs.rows(), m_rhs.cols(), m_lhs.cols(), num_threads);
+ m_blocking.allocateA();
+ }
+
+ void operator() (Index row, Index rows, Index col=0, Index cols=-1, GemmParallelInfo<Index>* info=0) const
+ {
+ if(cols==-1)
+ cols = m_rhs.cols();
+
+ Gemm::run(rows, cols, m_lhs.cols(),
+ &m_lhs.coeffRef(row,0), m_lhs.outerStride(),
+ &m_rhs.coeffRef(0,col), m_rhs.outerStride(),
+ (Scalar*)&(m_dest.coeffRef(row,col)), m_dest.outerStride(),
+ m_actualAlpha, m_blocking, info);
+ }
+
+ typedef typename Gemm::Traits Traits;
+
+ protected:
+ const Lhs& m_lhs;
+ const Rhs& m_rhs;
+ Dest& m_dest;
+ Scalar m_actualAlpha;
+ BlockingType& m_blocking;
+};
+
+template<int StorageOrder, typename LhsScalar, typename RhsScalar, int MaxRows, int MaxCols, int MaxDepth, int KcFactor=1,
+bool FiniteAtCompileTime = MaxRows!=Dynamic && MaxCols!=Dynamic && MaxDepth != Dynamic> class gemm_blocking_space;
+
+template<typename _LhsScalar, typename _RhsScalar>
+class level3_blocking
+{
+ typedef _LhsScalar LhsScalar;
+ typedef _RhsScalar RhsScalar;
+
+ protected:
+ LhsScalar* m_blockA;
+ RhsScalar* m_blockB;
+
+ Index m_mc;
+ Index m_nc;
+ Index m_kc;
+
+ public:
+
+ level3_blocking()
+ : m_blockA(0), m_blockB(0), m_mc(0), m_nc(0), m_kc(0)
+ {}
+
+ inline Index mc() const { return m_mc; }
+ inline Index nc() const { return m_nc; }
+ inline Index kc() const { return m_kc; }
+
+ inline LhsScalar* blockA() { return m_blockA; }
+ inline RhsScalar* blockB() { return m_blockB; }
+};
+
+template<int StorageOrder, typename _LhsScalar, typename _RhsScalar, int MaxRows, int MaxCols, int MaxDepth, int KcFactor>
+class gemm_blocking_space<StorageOrder,_LhsScalar,_RhsScalar,MaxRows, MaxCols, MaxDepth, KcFactor, true /* == FiniteAtCompileTime */>
+ : public level3_blocking<
+ typename conditional<StorageOrder==RowMajor,_RhsScalar,_LhsScalar>::type,
+ typename conditional<StorageOrder==RowMajor,_LhsScalar,_RhsScalar>::type>
+{
+ enum {
+ Transpose = StorageOrder==RowMajor,
+ ActualRows = Transpose ? MaxCols : MaxRows,
+ ActualCols = Transpose ? MaxRows : MaxCols
+ };
+ typedef typename conditional<Transpose,_RhsScalar,_LhsScalar>::type LhsScalar;
+ typedef typename conditional<Transpose,_LhsScalar,_RhsScalar>::type RhsScalar;
+ typedef gebp_traits<LhsScalar,RhsScalar> Traits;
+ enum {
+ SizeA = ActualRows * MaxDepth,
+ SizeB = ActualCols * MaxDepth
+ };
+
+#if EIGEN_MAX_STATIC_ALIGN_BYTES >= EIGEN_DEFAULT_ALIGN_BYTES
+ EIGEN_ALIGN_MAX LhsScalar m_staticA[SizeA];
+ EIGEN_ALIGN_MAX RhsScalar m_staticB[SizeB];
+#else
+ EIGEN_ALIGN_MAX char m_staticA[SizeA * sizeof(LhsScalar) + EIGEN_DEFAULT_ALIGN_BYTES-1];
+ EIGEN_ALIGN_MAX char m_staticB[SizeB * sizeof(RhsScalar) + EIGEN_DEFAULT_ALIGN_BYTES-1];
+#endif
+
+ public:
+
+ gemm_blocking_space(Index /*rows*/, Index /*cols*/, Index /*depth*/, Index /*num_threads*/, bool /*full_rows = false*/)
+ {
+ this->m_mc = ActualRows;
+ this->m_nc = ActualCols;
+ this->m_kc = MaxDepth;
+#if EIGEN_MAX_STATIC_ALIGN_BYTES >= EIGEN_DEFAULT_ALIGN_BYTES
+ this->m_blockA = m_staticA;
+ this->m_blockB = m_staticB;
+#else
+ this->m_blockA = reinterpret_cast<LhsScalar*>((internal::UIntPtr(m_staticA) + (EIGEN_DEFAULT_ALIGN_BYTES-1)) & ~std::size_t(EIGEN_DEFAULT_ALIGN_BYTES-1));
+ this->m_blockB = reinterpret_cast<RhsScalar*>((internal::UIntPtr(m_staticB) + (EIGEN_DEFAULT_ALIGN_BYTES-1)) & ~std::size_t(EIGEN_DEFAULT_ALIGN_BYTES-1));
+#endif
+ }
+
+ void initParallel(Index, Index, Index, Index)
+ {}
+
+ inline void allocateA() {}
+ inline void allocateB() {}
+ inline void allocateAll() {}
+};
+
+template<int StorageOrder, typename _LhsScalar, typename _RhsScalar, int MaxRows, int MaxCols, int MaxDepth, int KcFactor>
+class gemm_blocking_space<StorageOrder,_LhsScalar,_RhsScalar,MaxRows, MaxCols, MaxDepth, KcFactor, false>
+ : public level3_blocking<
+ typename conditional<StorageOrder==RowMajor,_RhsScalar,_LhsScalar>::type,
+ typename conditional<StorageOrder==RowMajor,_LhsScalar,_RhsScalar>::type>
+{
+ enum {
+ Transpose = StorageOrder==RowMajor
+ };
+ typedef typename conditional<Transpose,_RhsScalar,_LhsScalar>::type LhsScalar;
+ typedef typename conditional<Transpose,_LhsScalar,_RhsScalar>::type RhsScalar;
+ typedef gebp_traits<LhsScalar,RhsScalar> Traits;
+
+ Index m_sizeA;
+ Index m_sizeB;
+
+ public:
+
+ gemm_blocking_space(Index rows, Index cols, Index depth, Index num_threads, bool l3_blocking)
+ {
+ this->m_mc = Transpose ? cols : rows;
+ this->m_nc = Transpose ? rows : cols;
+ this->m_kc = depth;
+
+ if(l3_blocking)
+ {
+ computeProductBlockingSizes<LhsScalar,RhsScalar,KcFactor>(this->m_kc, this->m_mc, this->m_nc, num_threads);
+ }
+ else // no l3 blocking
+ {
+ Index n = this->m_nc;
+ computeProductBlockingSizes<LhsScalar,RhsScalar,KcFactor>(this->m_kc, this->m_mc, n, num_threads);
+ }
+
+ m_sizeA = this->m_mc * this->m_kc;
+ m_sizeB = this->m_kc * this->m_nc;
+ }
+
+ void initParallel(Index rows, Index cols, Index depth, Index num_threads)
+ {
+ this->m_mc = Transpose ? cols : rows;
+ this->m_nc = Transpose ? rows : cols;
+ this->m_kc = depth;
+
+ eigen_internal_assert(this->m_blockA==0 && this->m_blockB==0);
+ Index m = this->m_mc;
+ computeProductBlockingSizes<LhsScalar,RhsScalar,KcFactor>(this->m_kc, m, this->m_nc, num_threads);
+ m_sizeA = this->m_mc * this->m_kc;
+ m_sizeB = this->m_kc * this->m_nc;
+ }
+
+ void allocateA()
+ {
+ if(this->m_blockA==0)
+ this->m_blockA = aligned_new<LhsScalar>(m_sizeA);
+ }
+
+ void allocateB()
+ {
+ if(this->m_blockB==0)
+ this->m_blockB = aligned_new<RhsScalar>(m_sizeB);
+ }
+
+ void allocateAll()
+ {
+ allocateA();
+ allocateB();
+ }
+
+ ~gemm_blocking_space()
+ {
+ aligned_delete(this->m_blockA, m_sizeA);
+ aligned_delete(this->m_blockB, m_sizeB);
+ }
+};
+
+} // end namespace internal
+
+namespace internal {
+
+template<typename Lhs, typename Rhs>
+struct generic_product_impl<Lhs,Rhs,DenseShape,DenseShape,GemmProduct>
+ : generic_product_impl_base<Lhs,Rhs,generic_product_impl<Lhs,Rhs,DenseShape,DenseShape,GemmProduct> >
+{
+ typedef typename Product<Lhs,Rhs>::Scalar Scalar;
+ typedef typename Lhs::Scalar LhsScalar;
+ typedef typename Rhs::Scalar RhsScalar;
+
+ typedef internal::blas_traits<Lhs> LhsBlasTraits;
+ typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhsType;
+ typedef typename internal::remove_all<ActualLhsType>::type ActualLhsTypeCleaned;
+
+ typedef internal::blas_traits<Rhs> RhsBlasTraits;
+ typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhsType;
+ typedef typename internal::remove_all<ActualRhsType>::type ActualRhsTypeCleaned;
+
+ enum {
+ MaxDepthAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(Lhs::MaxColsAtCompileTime,Rhs::MaxRowsAtCompileTime)
+ };
+
+ typedef generic_product_impl<Lhs,Rhs,DenseShape,DenseShape,CoeffBasedProductMode> lazyproduct;
+
+ template<typename Dst>
+ static void evalTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
+ {
+ if((rhs.rows()+dst.rows()+dst.cols())<20 && rhs.rows()>0)
+ lazyproduct::evalTo(dst, lhs, rhs);
+ else
+ {
+ dst.setZero();
+ scaleAndAddTo(dst, lhs, rhs, Scalar(1));
+ }
+ }
+
+ template<typename Dst>
+ static void addTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
+ {
+ if((rhs.rows()+dst.rows()+dst.cols())<20 && rhs.rows()>0)
+ lazyproduct::addTo(dst, lhs, rhs);
+ else
+ scaleAndAddTo(dst,lhs, rhs, Scalar(1));
+ }
+
+ template<typename Dst>
+ static void subTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
+ {
+ if((rhs.rows()+dst.rows()+dst.cols())<20 && rhs.rows()>0)
+ lazyproduct::subTo(dst, lhs, rhs);
+ else
+ scaleAndAddTo(dst, lhs, rhs, Scalar(-1));
+ }
+
+ template<typename Dest>
+ static void scaleAndAddTo(Dest& dst, const Lhs& a_lhs, const Rhs& a_rhs, const Scalar& alpha)
+ {
+ eigen_assert(dst.rows()==a_lhs.rows() && dst.cols()==a_rhs.cols());
+ if(a_lhs.cols()==0 || a_lhs.rows()==0 || a_rhs.cols()==0)
+ return;
+
+ typename internal::add_const_on_value_type<ActualLhsType>::type lhs = LhsBlasTraits::extract(a_lhs);
+ typename internal::add_const_on_value_type<ActualRhsType>::type rhs = RhsBlasTraits::extract(a_rhs);
+
+ Scalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(a_lhs)
+ * RhsBlasTraits::extractScalarFactor(a_rhs);
+
+ typedef internal::gemm_blocking_space<(Dest::Flags&RowMajorBit) ? RowMajor : ColMajor,LhsScalar,RhsScalar,
+ Dest::MaxRowsAtCompileTime,Dest::MaxColsAtCompileTime,MaxDepthAtCompileTime> BlockingType;
+
+ typedef internal::gemm_functor<
+ Scalar, Index,
+ internal::general_matrix_matrix_product<
+ Index,
+ LhsScalar, (ActualLhsTypeCleaned::Flags&RowMajorBit) ? RowMajor : ColMajor, bool(LhsBlasTraits::NeedToConjugate),
+ RhsScalar, (ActualRhsTypeCleaned::Flags&RowMajorBit) ? RowMajor : ColMajor, bool(RhsBlasTraits::NeedToConjugate),
+ (Dest::Flags&RowMajorBit) ? RowMajor : ColMajor>,
+ ActualLhsTypeCleaned, ActualRhsTypeCleaned, Dest, BlockingType> GemmFunctor;
+
+ BlockingType blocking(dst.rows(), dst.cols(), lhs.cols(), 1, true);
+ internal::parallelize_gemm<(Dest::MaxRowsAtCompileTime>32 || Dest::MaxRowsAtCompileTime==Dynamic)>
+ (GemmFunctor(lhs, rhs, dst, actualAlpha, blocking), a_lhs.rows(), a_rhs.cols(), a_lhs.cols(), Dest::Flags&RowMajorBit);
+ }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERAL_MATRIX_MATRIX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
new file mode 100644
index 000000000..e844e37d1
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
@@ -0,0 +1,311 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERAL_MATRIX_MATRIX_TRIANGULAR_H
+#define EIGEN_GENERAL_MATRIX_MATRIX_TRIANGULAR_H
+
+namespace Eigen {
+
+template<typename Scalar, typename Index, int StorageOrder, int UpLo, bool ConjLhs, bool ConjRhs>
+struct selfadjoint_rank1_update;
+
+namespace internal {
+
+/**********************************************************************
+* This file implements a general A * B product while
+* evaluating only one triangular part of the product.
+* This is a more general version of self adjoint product (C += A A^T)
+* as the level 3 SYRK Blas routine.
+**********************************************************************/
+
+// forward declarations (defined at the end of this file)
+template<typename LhsScalar, typename RhsScalar, typename Index, int mr, int nr, bool ConjLhs, bool ConjRhs, int UpLo>
+struct tribb_kernel;
+
+/* Optimized matrix-matrix product evaluating only one triangular half */
+template <typename Index,
+ typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs,
+ typename RhsScalar, int RhsStorageOrder, bool ConjugateRhs,
+ int ResStorageOrder, int UpLo, int Version = Specialized>
+struct general_matrix_matrix_triangular_product;
+
+// as usual if the result is row major => we transpose the product
+template <typename Index, typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs,
+ typename RhsScalar, int RhsStorageOrder, bool ConjugateRhs, int UpLo, int Version>
+struct general_matrix_matrix_triangular_product<Index,LhsScalar,LhsStorageOrder,ConjugateLhs,RhsScalar,RhsStorageOrder,ConjugateRhs,RowMajor,UpLo,Version>
+{
+ typedef typename ScalarBinaryOpTraits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+ static EIGEN_STRONG_INLINE void run(Index size, Index depth,const LhsScalar* lhs, Index lhsStride,
+ const RhsScalar* rhs, Index rhsStride, ResScalar* res, Index resStride,
+ const ResScalar& alpha, level3_blocking<RhsScalar,LhsScalar>& blocking)
+ {
+ general_matrix_matrix_triangular_product<Index,
+ RhsScalar, RhsStorageOrder==RowMajor ? ColMajor : RowMajor, ConjugateRhs,
+ LhsScalar, LhsStorageOrder==RowMajor ? ColMajor : RowMajor, ConjugateLhs,
+ ColMajor, UpLo==Lower?Upper:Lower>
+ ::run(size,depth,rhs,rhsStride,lhs,lhsStride,res,resStride,alpha,blocking);
+ }
+};
+
+template <typename Index, typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs,
+ typename RhsScalar, int RhsStorageOrder, bool ConjugateRhs, int UpLo, int Version>
+struct general_matrix_matrix_triangular_product<Index,LhsScalar,LhsStorageOrder,ConjugateLhs,RhsScalar,RhsStorageOrder,ConjugateRhs,ColMajor,UpLo,Version>
+{
+ typedef typename ScalarBinaryOpTraits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+ static EIGEN_STRONG_INLINE void run(Index size, Index depth,const LhsScalar* _lhs, Index lhsStride,
+ const RhsScalar* _rhs, Index rhsStride, ResScalar* _res, Index resStride,
+ const ResScalar& alpha, level3_blocking<LhsScalar,RhsScalar>& blocking)
+ {
+ typedef gebp_traits<LhsScalar,RhsScalar> Traits;
+
+ typedef const_blas_data_mapper<LhsScalar, Index, LhsStorageOrder> LhsMapper;
+ typedef const_blas_data_mapper<RhsScalar, Index, RhsStorageOrder> RhsMapper;
+ typedef blas_data_mapper<typename Traits::ResScalar, Index, ColMajor> ResMapper;
+ LhsMapper lhs(_lhs,lhsStride);
+ RhsMapper rhs(_rhs,rhsStride);
+ ResMapper res(_res, resStride);
+
+ Index kc = blocking.kc();
+ Index mc = (std::min)(size,blocking.mc());
+
+ // !!! mc must be a multiple of nr:
+ if(mc > Traits::nr)
+ mc = (mc/Traits::nr)*Traits::nr;
+
+ std::size_t sizeA = kc*mc;
+ std::size_t sizeB = kc*size;
+
+ ei_declare_aligned_stack_constructed_variable(LhsScalar, blockA, sizeA, blocking.blockA());
+ ei_declare_aligned_stack_constructed_variable(RhsScalar, blockB, sizeB, blocking.blockB());
+
+ gemm_pack_lhs<LhsScalar, Index, LhsMapper, Traits::mr, Traits::LhsProgress, LhsStorageOrder> pack_lhs;
+ gemm_pack_rhs<RhsScalar, Index, RhsMapper, Traits::nr, RhsStorageOrder> pack_rhs;
+ gebp_kernel<LhsScalar, RhsScalar, Index, ResMapper, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs> gebp;
+ tribb_kernel<LhsScalar, RhsScalar, Index, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs, UpLo> sybb;
+
+ for(Index k2=0; k2<depth; k2+=kc)
+ {
+ const Index actual_kc = (std::min)(k2+kc,depth)-k2;
+
+ // note that the actual rhs is the transpose/adjoint of mat
+ pack_rhs(blockB, rhs.getSubMapper(k2,0), actual_kc, size);
+
+ for(Index i2=0; i2<size; i2+=mc)
+ {
+ const Index actual_mc = (std::min)(i2+mc,size)-i2;
+
+ pack_lhs(blockA, lhs.getSubMapper(i2, k2), actual_kc, actual_mc);
+
+ // the selected actual_mc * size panel of res is split into three different part:
+ // 1 - before the diagonal => processed with gebp or skipped
+ // 2 - the actual_mc x actual_mc symmetric block => processed with a special kernel
+ // 3 - after the diagonal => processed with gebp or skipped
+ if (UpLo==Lower)
+ gebp(res.getSubMapper(i2, 0), blockA, blockB, actual_mc, actual_kc,
+ (std::min)(size,i2), alpha, -1, -1, 0, 0);
+
+
+ sybb(_res+resStride*i2 + i2, resStride, blockA, blockB + actual_kc*i2, actual_mc, actual_kc, alpha);
+
+ if (UpLo==Upper)
+ {
+ Index j2 = i2+actual_mc;
+ gebp(res.getSubMapper(i2, j2), blockA, blockB+actual_kc*j2, actual_mc,
+ actual_kc, (std::max)(Index(0), size-j2), alpha, -1, -1, 0, 0);
+ }
+ }
+ }
+ }
+};
+
+// Optimized packed Block * packed Block product kernel evaluating only one given triangular part
+// This kernel is built on top of the gebp kernel:
+// - the current destination block is processed per panel of actual_mc x BlockSize
+// where BlockSize is set to the minimal value allowing gebp to be as fast as possible
+// - then, as usual, each panel is split into three parts along the diagonal,
+// the sub blocks above and below the diagonal are processed as usual,
+// while the triangular block overlapping the diagonal is evaluated into a
+// small temporary buffer which is then accumulated into the result using a
+// triangular traversal.
+template<typename LhsScalar, typename RhsScalar, typename Index, int mr, int nr, bool ConjLhs, bool ConjRhs, int UpLo>
+struct tribb_kernel
+{
+ typedef gebp_traits<LhsScalar,RhsScalar,ConjLhs,ConjRhs> Traits;
+ typedef typename Traits::ResScalar ResScalar;
+
+ enum {
+ BlockSize = meta_least_common_multiple<EIGEN_PLAIN_ENUM_MAX(mr,nr),EIGEN_PLAIN_ENUM_MIN(mr,nr)>::ret
+ };
+ void operator()(ResScalar* _res, Index resStride, const LhsScalar* blockA, const RhsScalar* blockB, Index size, Index depth, const ResScalar& alpha)
+ {
+ typedef blas_data_mapper<ResScalar, Index, ColMajor> ResMapper;
+ ResMapper res(_res, resStride);
+ gebp_kernel<LhsScalar, RhsScalar, Index, ResMapper, mr, nr, ConjLhs, ConjRhs> gebp_kernel;
+
+ Matrix<ResScalar,BlockSize,BlockSize,ColMajor> buffer((internal::constructor_without_unaligned_array_assert()));
+
+ // let's process the block per panel of actual_mc x BlockSize,
+ // again, each is split into three parts, etc.
+ for (Index j=0; j<size; j+=BlockSize)
+ {
+ Index actualBlockSize = std::min<Index>(BlockSize,size - j);
+ const RhsScalar* actual_b = blockB+j*depth;
+
+ if(UpLo==Upper)
+ gebp_kernel(res.getSubMapper(0, j), blockA, actual_b, j, depth, actualBlockSize, alpha,
+ -1, -1, 0, 0);
+
+ // selfadjoint micro block
+ {
+ Index i = j;
+ buffer.setZero();
+ // 1 - apply the kernel on the temporary buffer
+ gebp_kernel(ResMapper(buffer.data(), BlockSize), blockA+depth*i, actual_b, actualBlockSize, depth, actualBlockSize, alpha,
+ -1, -1, 0, 0);
+ // 2 - triangular accumulation
+ for(Index j1=0; j1<actualBlockSize; ++j1)
+ {
+ ResScalar* r = &res(i, j + j1);
+ for(Index i1=UpLo==Lower ? j1 : 0;
+ UpLo==Lower ? i1<actualBlockSize : i1<=j1; ++i1)
+ r[i1] += buffer(i1,j1);
+ }
+ }
+
+ if(UpLo==Lower)
+ {
+ Index i = j+actualBlockSize;
+ gebp_kernel(res.getSubMapper(i, j), blockA+depth*i, actual_b, size-i,
+ depth, actualBlockSize, alpha, -1, -1, 0, 0);
+ }
+ }
+ }
+};
+
+} // end namespace internal
+
+// high level API
+
+template<typename MatrixType, typename ProductType, int UpLo, bool IsOuterProduct>
+struct general_product_to_triangular_selector;
+
+
+template<typename MatrixType, typename ProductType, int UpLo>
+struct general_product_to_triangular_selector<MatrixType,ProductType,UpLo,true>
+{
+ static void run(MatrixType& mat, const ProductType& prod, const typename MatrixType::Scalar& alpha, bool beta)
+ {
+ typedef typename MatrixType::Scalar Scalar;
+
+ typedef typename internal::remove_all<typename ProductType::LhsNested>::type Lhs;
+ typedef internal::blas_traits<Lhs> LhsBlasTraits;
+ typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhs;
+ typedef typename internal::remove_all<ActualLhs>::type _ActualLhs;
+ typename internal::add_const_on_value_type<ActualLhs>::type actualLhs = LhsBlasTraits::extract(prod.lhs());
+
+ typedef typename internal::remove_all<typename ProductType::RhsNested>::type Rhs;
+ typedef internal::blas_traits<Rhs> RhsBlasTraits;
+ typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhs;
+ typedef typename internal::remove_all<ActualRhs>::type _ActualRhs;
+ typename internal::add_const_on_value_type<ActualRhs>::type actualRhs = RhsBlasTraits::extract(prod.rhs());
+
+ Scalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(prod.lhs().derived()) * RhsBlasTraits::extractScalarFactor(prod.rhs().derived());
+
+ if(!beta)
+ mat.template triangularView<UpLo>().setZero();
+
+ enum {
+ StorageOrder = (internal::traits<MatrixType>::Flags&RowMajorBit) ? RowMajor : ColMajor,
+ UseLhsDirectly = _ActualLhs::InnerStrideAtCompileTime==1,
+ UseRhsDirectly = _ActualRhs::InnerStrideAtCompileTime==1
+ };
+
+ internal::gemv_static_vector_if<Scalar,Lhs::SizeAtCompileTime,Lhs::MaxSizeAtCompileTime,!UseLhsDirectly> static_lhs;
+ ei_declare_aligned_stack_constructed_variable(Scalar, actualLhsPtr, actualLhs.size(),
+ (UseLhsDirectly ? const_cast<Scalar*>(actualLhs.data()) : static_lhs.data()));
+ if(!UseLhsDirectly) Map<typename _ActualLhs::PlainObject>(actualLhsPtr, actualLhs.size()) = actualLhs;
+
+ internal::gemv_static_vector_if<Scalar,Rhs::SizeAtCompileTime,Rhs::MaxSizeAtCompileTime,!UseRhsDirectly> static_rhs;
+ ei_declare_aligned_stack_constructed_variable(Scalar, actualRhsPtr, actualRhs.size(),
+ (UseRhsDirectly ? const_cast<Scalar*>(actualRhs.data()) : static_rhs.data()));
+ if(!UseRhsDirectly) Map<typename _ActualRhs::PlainObject>(actualRhsPtr, actualRhs.size()) = actualRhs;
+
+
+ selfadjoint_rank1_update<Scalar,Index,StorageOrder,UpLo,
+ LhsBlasTraits::NeedToConjugate && NumTraits<Scalar>::IsComplex,
+ RhsBlasTraits::NeedToConjugate && NumTraits<Scalar>::IsComplex>
+ ::run(actualLhs.size(), mat.data(), mat.outerStride(), actualLhsPtr, actualRhsPtr, actualAlpha);
+ }
+};
+
+template<typename MatrixType, typename ProductType, int UpLo>
+struct general_product_to_triangular_selector<MatrixType,ProductType,UpLo,false>
+{
+ static void run(MatrixType& mat, const ProductType& prod, const typename MatrixType::Scalar& alpha, bool beta)
+ {
+ typedef typename internal::remove_all<typename ProductType::LhsNested>::type Lhs;
+ typedef internal::blas_traits<Lhs> LhsBlasTraits;
+ typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhs;
+ typedef typename internal::remove_all<ActualLhs>::type _ActualLhs;
+ typename internal::add_const_on_value_type<ActualLhs>::type actualLhs = LhsBlasTraits::extract(prod.lhs());
+
+ typedef typename internal::remove_all<typename ProductType::RhsNested>::type Rhs;
+ typedef internal::blas_traits<Rhs> RhsBlasTraits;
+ typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhs;
+ typedef typename internal::remove_all<ActualRhs>::type _ActualRhs;
+ typename internal::add_const_on_value_type<ActualRhs>::type actualRhs = RhsBlasTraits::extract(prod.rhs());
+
+ typename ProductType::Scalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(prod.lhs().derived()) * RhsBlasTraits::extractScalarFactor(prod.rhs().derived());
+
+ if(!beta)
+ mat.template triangularView<UpLo>().setZero();
+
+ enum {
+ IsRowMajor = (internal::traits<MatrixType>::Flags&RowMajorBit) ? 1 : 0,
+ LhsIsRowMajor = _ActualLhs::Flags&RowMajorBit ? 1 : 0,
+ RhsIsRowMajor = _ActualRhs::Flags&RowMajorBit ? 1 : 0,
+ SkipDiag = (UpLo&(UnitDiag|ZeroDiag))!=0
+ };
+
+ Index size = mat.cols();
+ if(SkipDiag)
+ size--;
+ Index depth = actualLhs.cols();
+
+ typedef internal::gemm_blocking_space<IsRowMajor ? RowMajor : ColMajor,typename Lhs::Scalar,typename Rhs::Scalar,
+ MatrixType::MaxColsAtCompileTime, MatrixType::MaxColsAtCompileTime, _ActualRhs::MaxColsAtCompileTime> BlockingType;
+
+ BlockingType blocking(size, size, depth, 1, false);
+
+ internal::general_matrix_matrix_triangular_product<Index,
+ typename Lhs::Scalar, LhsIsRowMajor ? RowMajor : ColMajor, LhsBlasTraits::NeedToConjugate,
+ typename Rhs::Scalar, RhsIsRowMajor ? RowMajor : ColMajor, RhsBlasTraits::NeedToConjugate,
+ IsRowMajor ? RowMajor : ColMajor, UpLo&(Lower|Upper)>
+ ::run(size, depth,
+ &actualLhs.coeffRef(SkipDiag&&(UpLo&Lower)==Lower ? 1 : 0,0), actualLhs.outerStride(),
+ &actualRhs.coeffRef(0,SkipDiag&&(UpLo&Upper)==Upper ? 1 : 0), actualRhs.outerStride(),
+ mat.data() + (SkipDiag ? (bool(IsRowMajor) != ((UpLo&Lower)==Lower) ? 1 : mat.outerStride() ) : 0), mat.outerStride(), actualAlpha, blocking);
+ }
+};
+
+template<typename MatrixType, unsigned int UpLo>
+template<typename ProductType>
+TriangularView<MatrixType,UpLo>& TriangularViewImpl<MatrixType,UpLo,Dense>::_assignProduct(const ProductType& prod, const Scalar& alpha, bool beta)
+{
+ EIGEN_STATIC_ASSERT((UpLo&UnitDiag)==0, WRITING_TO_TRIANGULAR_PART_WITH_UNIT_DIAGONAL_IS_NOT_SUPPORTED);
+ eigen_assert(derived().nestedExpression().rows() == prod.rows() && derived().cols() == prod.cols());
+
+ general_product_to_triangular_selector<MatrixType, ProductType, UpLo, internal::traits<ProductType>::InnerSize==1>::run(derived().nestedExpression().const_cast_derived(), prod, alpha, beta);
+
+ return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERAL_MATRIX_MATRIX_TRIANGULAR_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h
new file mode 100644
index 000000000..41e18ff07
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h
@@ -0,0 +1,141 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ * Content : Eigen bindings to BLAS F77
+ * Level 3 BLAS SYRK/HERK implementation.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_GENERAL_MATRIX_MATRIX_TRIANGULAR_BLAS_H
+#define EIGEN_GENERAL_MATRIX_MATRIX_TRIANGULAR_BLAS_H
+
+namespace Eigen {
+
+namespace internal {
+
+template <typename Index, typename Scalar, int AStorageOrder, bool ConjugateA, int ResStorageOrder, int UpLo>
+struct general_matrix_matrix_rankupdate :
+ general_matrix_matrix_triangular_product<
+ Index,Scalar,AStorageOrder,ConjugateA,Scalar,AStorageOrder,ConjugateA,ResStorageOrder,UpLo,BuiltIn> {};
+
+
+// try to go to BLAS specialization
+#define EIGEN_BLAS_RANKUPDATE_SPECIALIZE(Scalar) \
+template <typename Index, int LhsStorageOrder, bool ConjugateLhs, \
+ int RhsStorageOrder, bool ConjugateRhs, int UpLo> \
+struct general_matrix_matrix_triangular_product<Index,Scalar,LhsStorageOrder,ConjugateLhs, \
+ Scalar,RhsStorageOrder,ConjugateRhs,ColMajor,UpLo,Specialized> { \
+ static EIGEN_STRONG_INLINE void run(Index size, Index depth,const Scalar* lhs, Index lhsStride, \
+ const Scalar* rhs, Index rhsStride, Scalar* res, Index resStride, Scalar alpha, level3_blocking<Scalar, Scalar>& blocking) \
+ { \
+ if ( lhs==rhs && ((UpLo&(Lower|Upper)==UpLo)) ) { \
+ general_matrix_matrix_rankupdate<Index,Scalar,LhsStorageOrder,ConjugateLhs,ColMajor,UpLo> \
+ ::run(size,depth,lhs,lhsStride,rhs,rhsStride,res,resStride,alpha,blocking); \
+ } else { \
+ general_matrix_matrix_triangular_product<Index, \
+ Scalar, LhsStorageOrder, ConjugateLhs, \
+ Scalar, RhsStorageOrder, ConjugateRhs, \
+ ColMajor, UpLo, BuiltIn> \
+ ::run(size,depth,lhs,lhsStride,rhs,rhsStride,res,resStride,alpha,blocking); \
+ } \
+ } \
+};
+
+EIGEN_BLAS_RANKUPDATE_SPECIALIZE(double)
+EIGEN_BLAS_RANKUPDATE_SPECIALIZE(float)
+// TODO handle complex cases
+// EIGEN_BLAS_RANKUPDATE_SPECIALIZE(dcomplex)
+// EIGEN_BLAS_RANKUPDATE_SPECIALIZE(scomplex)
+
+// SYRK for float/double
+#define EIGEN_BLAS_RANKUPDATE_R(EIGTYPE, BLASTYPE, BLASFUNC) \
+template <typename Index, int AStorageOrder, bool ConjugateA, int UpLo> \
+struct general_matrix_matrix_rankupdate<Index,EIGTYPE,AStorageOrder,ConjugateA,ColMajor,UpLo> { \
+ enum { \
+ IsLower = (UpLo&Lower) == Lower, \
+ LowUp = IsLower ? Lower : Upper, \
+ conjA = ((AStorageOrder==ColMajor) && ConjugateA) ? 1 : 0 \
+ }; \
+ static EIGEN_STRONG_INLINE void run(Index size, Index depth,const EIGTYPE* lhs, Index lhsStride, \
+ const EIGTYPE* /*rhs*/, Index /*rhsStride*/, EIGTYPE* res, Index resStride, EIGTYPE alpha, level3_blocking<EIGTYPE, EIGTYPE>& /*blocking*/) \
+ { \
+ /* typedef Matrix<EIGTYPE, Dynamic, Dynamic, RhsStorageOrder> MatrixRhs;*/ \
+\
+ BlasIndex lda=convert_index<BlasIndex>(lhsStride), ldc=convert_index<BlasIndex>(resStride), n=convert_index<BlasIndex>(size), k=convert_index<BlasIndex>(depth); \
+ char uplo=((IsLower) ? 'L' : 'U'), trans=((AStorageOrder==RowMajor) ? 'T':'N'); \
+ EIGTYPE beta(1); \
+ BLASFUNC(&uplo, &trans, &n, &k, &numext::real_ref(alpha), lhs, &lda, &numext::real_ref(beta), res, &ldc); \
+ } \
+};
+
+// HERK for complex data
+#define EIGEN_BLAS_RANKUPDATE_C(EIGTYPE, BLASTYPE, RTYPE, BLASFUNC) \
+template <typename Index, int AStorageOrder, bool ConjugateA, int UpLo> \
+struct general_matrix_matrix_rankupdate<Index,EIGTYPE,AStorageOrder,ConjugateA,ColMajor,UpLo> { \
+ enum { \
+ IsLower = (UpLo&Lower) == Lower, \
+ LowUp = IsLower ? Lower : Upper, \
+ conjA = (((AStorageOrder==ColMajor) && ConjugateA) || ((AStorageOrder==RowMajor) && !ConjugateA)) ? 1 : 0 \
+ }; \
+ static EIGEN_STRONG_INLINE void run(Index size, Index depth,const EIGTYPE* lhs, Index lhsStride, \
+ const EIGTYPE* /*rhs*/, Index /*rhsStride*/, EIGTYPE* res, Index resStride, EIGTYPE alpha, level3_blocking<EIGTYPE, EIGTYPE>& /*blocking*/) \
+ { \
+ typedef Matrix<EIGTYPE, Dynamic, Dynamic, AStorageOrder> MatrixType; \
+\
+ BlasIndex lda=convert_index<BlasIndex>(lhsStride), ldc=convert_index<BlasIndex>(resStride), n=convert_index<BlasIndex>(size), k=convert_index<BlasIndex>(depth); \
+ char uplo=((IsLower) ? 'L' : 'U'), trans=((AStorageOrder==RowMajor) ? 'C':'N'); \
+ RTYPE alpha_, beta_; \
+ const EIGTYPE* a_ptr; \
+\
+ alpha_ = alpha.real(); \
+ beta_ = 1.0; \
+/* Copy with conjugation in some cases*/ \
+ MatrixType a; \
+ if (conjA) { \
+ Map<const MatrixType, 0, OuterStride<> > mapA(lhs,n,k,OuterStride<>(lhsStride)); \
+ a = mapA.conjugate(); \
+ lda = a.outerStride(); \
+ a_ptr = a.data(); \
+ } else a_ptr=lhs; \
+ BLASFUNC(&uplo, &trans, &n, &k, &alpha_, (BLASTYPE*)a_ptr, &lda, &beta_, (BLASTYPE*)res, &ldc); \
+ } \
+};
+
+
+EIGEN_BLAS_RANKUPDATE_R(double, double, dsyrk_)
+EIGEN_BLAS_RANKUPDATE_R(float, float, ssyrk_)
+
+// TODO hanlde complex cases
+// EIGEN_BLAS_RANKUPDATE_C(dcomplex, double, double, zherk_)
+// EIGEN_BLAS_RANKUPDATE_C(scomplex, float, float, cherk_)
+
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERAL_MATRIX_MATRIX_TRIANGULAR_BLAS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h
new file mode 100644
index 000000000..7a3bdbf20
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h
@@ -0,0 +1,115 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ * Content : Eigen bindings to BLAS F77
+ * General matrix-matrix product functionality based on ?GEMM.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_GENERAL_MATRIX_MATRIX_BLAS_H
+#define EIGEN_GENERAL_MATRIX_MATRIX_BLAS_H
+
+namespace Eigen {
+
+namespace internal {
+
+/**********************************************************************
+* This file implements general matrix-matrix multiplication using BLAS
+* gemm function via partial specialization of
+* general_matrix_matrix_product::run(..) method for float, double,
+* std::complex<float> and std::complex<double> types
+**********************************************************************/
+
+// gemm specialization
+
+#define GEMM_SPECIALIZATION(EIGTYPE, EIGPREFIX, BLASTYPE, BLASPREFIX) \
+template< \
+ typename Index, \
+ int LhsStorageOrder, bool ConjugateLhs, \
+ int RhsStorageOrder, bool ConjugateRhs> \
+struct general_matrix_matrix_product<Index,EIGTYPE,LhsStorageOrder,ConjugateLhs,EIGTYPE,RhsStorageOrder,ConjugateRhs,ColMajor> \
+{ \
+typedef gebp_traits<EIGTYPE,EIGTYPE> Traits; \
+\
+static void run(Index rows, Index cols, Index depth, \
+ const EIGTYPE* _lhs, Index lhsStride, \
+ const EIGTYPE* _rhs, Index rhsStride, \
+ EIGTYPE* res, Index resStride, \
+ EIGTYPE alpha, \
+ level3_blocking<EIGTYPE, EIGTYPE>& /*blocking*/, \
+ GemmParallelInfo<Index>* /*info = 0*/) \
+{ \
+ using std::conj; \
+\
+ char transa, transb; \
+ BlasIndex m, n, k, lda, ldb, ldc; \
+ const EIGTYPE *a, *b; \
+ EIGTYPE beta(1); \
+ MatrixX##EIGPREFIX a_tmp, b_tmp; \
+\
+/* Set transpose options */ \
+ transa = (LhsStorageOrder==RowMajor) ? ((ConjugateLhs) ? 'C' : 'T') : 'N'; \
+ transb = (RhsStorageOrder==RowMajor) ? ((ConjugateRhs) ? 'C' : 'T') : 'N'; \
+\
+/* Set m, n, k */ \
+ m = convert_index<BlasIndex>(rows); \
+ n = convert_index<BlasIndex>(cols); \
+ k = convert_index<BlasIndex>(depth); \
+\
+/* Set lda, ldb, ldc */ \
+ lda = convert_index<BlasIndex>(lhsStride); \
+ ldb = convert_index<BlasIndex>(rhsStride); \
+ ldc = convert_index<BlasIndex>(resStride); \
+\
+/* Set a, b, c */ \
+ if ((LhsStorageOrder==ColMajor) && (ConjugateLhs)) { \
+ Map<const MatrixX##EIGPREFIX, 0, OuterStride<> > lhs(_lhs,m,k,OuterStride<>(lhsStride)); \
+ a_tmp = lhs.conjugate(); \
+ a = a_tmp.data(); \
+ lda = convert_index<BlasIndex>(a_tmp.outerStride()); \
+ } else a = _lhs; \
+\
+ if ((RhsStorageOrder==ColMajor) && (ConjugateRhs)) { \
+ Map<const MatrixX##EIGPREFIX, 0, OuterStride<> > rhs(_rhs,k,n,OuterStride<>(rhsStride)); \
+ b_tmp = rhs.conjugate(); \
+ b = b_tmp.data(); \
+ ldb = convert_index<BlasIndex>(b_tmp.outerStride()); \
+ } else b = _rhs; \
+\
+ BLASPREFIX##gemm_(&transa, &transb, &m, &n, &k, &numext::real_ref(alpha), (const BLASTYPE*)a, &lda, (const BLASTYPE*)b, &ldb, &numext::real_ref(beta), (BLASTYPE*)res, &ldc); \
+}};
+
+GEMM_SPECIALIZATION(double, d, double, d)
+GEMM_SPECIALIZATION(float, f, float, s)
+GEMM_SPECIALIZATION(dcomplex, cd, double, z)
+GEMM_SPECIALIZATION(scomplex, cf, float, c)
+
+} // end namespase internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERAL_MATRIX_MATRIX_BLAS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixVector.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixVector.h
new file mode 100644
index 000000000..3c1a7fc40
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixVector.h
@@ -0,0 +1,619 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERAL_MATRIX_VECTOR_H
+#define EIGEN_GENERAL_MATRIX_VECTOR_H
+
+namespace Eigen {
+
+namespace internal {
+
+/* Optimized col-major matrix * vector product:
+ * This algorithm processes 4 columns at onces that allows to both reduce
+ * the number of load/stores of the result by a factor 4 and to reduce
+ * the instruction dependency. Moreover, we know that all bands have the
+ * same alignment pattern.
+ *
+ * Mixing type logic: C += alpha * A * B
+ * | A | B |alpha| comments
+ * |real |cplx |cplx | no vectorization
+ * |real |cplx |real | alpha is converted to a cplx when calling the run function, no vectorization
+ * |cplx |real |cplx | invalid, the caller has to do tmp: = A * B; C += alpha*tmp
+ * |cplx |real |real | optimal case, vectorization possible via real-cplx mul
+ *
+ * Accesses to the matrix coefficients follow the following logic:
+ *
+ * - if all columns have the same alignment then
+ * - if the columns have the same alignment as the result vector, then easy! (-> AllAligned case)
+ * - otherwise perform unaligned loads only (-> NoneAligned case)
+ * - otherwise
+ * - if even columns have the same alignment then
+ * // odd columns are guaranteed to have the same alignment too
+ * - if even or odd columns have the same alignment as the result, then
+ * // for a register size of 2 scalars, this is guarantee to be the case (e.g., SSE with double)
+ * - perform half aligned and half unaligned loads (-> EvenAligned case)
+ * - otherwise perform unaligned loads only (-> NoneAligned case)
+ * - otherwise, if the register size is 4 scalars (e.g., SSE with float) then
+ * - one over 4 consecutive columns is guaranteed to be aligned with the result vector,
+ * perform simple aligned loads for this column and aligned loads plus re-alignment for the other. (-> FirstAligned case)
+ * // this re-alignment is done by the palign function implemented for SSE in Eigen/src/Core/arch/SSE/PacketMath.h
+ * - otherwise,
+ * // if we get here, this means the register size is greater than 4 (e.g., AVX with floats),
+ * // we currently fall back to the NoneAligned case
+ *
+ * The same reasoning apply for the transposed case.
+ *
+ * The last case (PacketSize>4) could probably be improved by generalizing the FirstAligned case, but since we do not support AVX yet...
+ * One might also wonder why in the EvenAligned case we perform unaligned loads instead of using the aligned-loads plus re-alignment
+ * strategy as in the FirstAligned case. The reason is that we observed that unaligned loads on a 8 byte boundary are not too slow
+ * compared to unaligned loads on a 4 byte boundary.
+ *
+ */
+template<typename Index, typename LhsScalar, typename LhsMapper, bool ConjugateLhs, typename RhsScalar, typename RhsMapper, bool ConjugateRhs, int Version>
+struct general_matrix_vector_product<Index,LhsScalar,LhsMapper,ColMajor,ConjugateLhs,RhsScalar,RhsMapper,ConjugateRhs,Version>
+{
+ typedef typename ScalarBinaryOpTraits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+
+enum {
+ Vectorizable = packet_traits<LhsScalar>::Vectorizable && packet_traits<RhsScalar>::Vectorizable
+ && int(packet_traits<LhsScalar>::size)==int(packet_traits<RhsScalar>::size),
+ LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
+ RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
+ ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1
+};
+
+typedef typename packet_traits<LhsScalar>::type _LhsPacket;
+typedef typename packet_traits<RhsScalar>::type _RhsPacket;
+typedef typename packet_traits<ResScalar>::type _ResPacket;
+
+typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type LhsPacket;
+typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type RhsPacket;
+typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type ResPacket;
+
+EIGEN_DONT_INLINE static void run(
+ Index rows, Index cols,
+ const LhsMapper& lhs,
+ const RhsMapper& rhs,
+ ResScalar* res, Index resIncr,
+ RhsScalar alpha);
+};
+
+template<typename Index, typename LhsScalar, typename LhsMapper, bool ConjugateLhs, typename RhsScalar, typename RhsMapper, bool ConjugateRhs, int Version>
+EIGEN_DONT_INLINE void general_matrix_vector_product<Index,LhsScalar,LhsMapper,ColMajor,ConjugateLhs,RhsScalar,RhsMapper,ConjugateRhs,Version>::run(
+ Index rows, Index cols,
+ const LhsMapper& lhs,
+ const RhsMapper& rhs,
+ ResScalar* res, Index resIncr,
+ RhsScalar alpha)
+{
+ EIGEN_UNUSED_VARIABLE(resIncr);
+ eigen_internal_assert(resIncr==1);
+ #ifdef _EIGEN_ACCUMULATE_PACKETS
+ #error _EIGEN_ACCUMULATE_PACKETS has already been defined
+ #endif
+ #define _EIGEN_ACCUMULATE_PACKETS(Alignment0,Alignment13,Alignment2) \
+ pstore(&res[j], \
+ padd(pload<ResPacket>(&res[j]), \
+ padd( \
+ padd(pcj.pmul(lhs0.template load<LhsPacket, Alignment0>(j), ptmp0), \
+ pcj.pmul(lhs1.template load<LhsPacket, Alignment13>(j), ptmp1)), \
+ padd(pcj.pmul(lhs2.template load<LhsPacket, Alignment2>(j), ptmp2), \
+ pcj.pmul(lhs3.template load<LhsPacket, Alignment13>(j), ptmp3)) )))
+
+ typedef typename LhsMapper::VectorMapper LhsScalars;
+
+ conj_helper<LhsScalar,RhsScalar,ConjugateLhs,ConjugateRhs> cj;
+ conj_helper<LhsPacket,RhsPacket,ConjugateLhs,ConjugateRhs> pcj;
+ if(ConjugateRhs)
+ alpha = numext::conj(alpha);
+
+ enum { AllAligned = 0, EvenAligned, FirstAligned, NoneAligned };
+ const Index columnsAtOnce = 4;
+ const Index peels = 2;
+ const Index LhsPacketAlignedMask = LhsPacketSize-1;
+ const Index ResPacketAlignedMask = ResPacketSize-1;
+// const Index PeelAlignedMask = ResPacketSize*peels-1;
+ const Index size = rows;
+
+ const Index lhsStride = lhs.stride();
+
+ // How many coeffs of the result do we have to skip to be aligned.
+ // Here we assume data are at least aligned on the base scalar type.
+ Index alignedStart = internal::first_default_aligned(res,size);
+ Index alignedSize = ResPacketSize>1 ? alignedStart + ((size-alignedStart) & ~ResPacketAlignedMask) : 0;
+ const Index peeledSize = alignedSize - RhsPacketSize*peels - RhsPacketSize + 1;
+
+ const Index alignmentStep = LhsPacketSize>1 ? (LhsPacketSize - lhsStride % LhsPacketSize) & LhsPacketAlignedMask : 0;
+ Index alignmentPattern = alignmentStep==0 ? AllAligned
+ : alignmentStep==(LhsPacketSize/2) ? EvenAligned
+ : FirstAligned;
+
+ // we cannot assume the first element is aligned because of sub-matrices
+ const Index lhsAlignmentOffset = lhs.firstAligned(size);
+
+ // find how many columns do we have to skip to be aligned with the result (if possible)
+ Index skipColumns = 0;
+ // if the data cannot be aligned (TODO add some compile time tests when possible, e.g. for floats)
+ if( (lhsAlignmentOffset < 0) || (lhsAlignmentOffset == size) || (UIntPtr(res)%sizeof(ResScalar)) )
+ {
+ alignedSize = 0;
+ alignedStart = 0;
+ alignmentPattern = NoneAligned;
+ }
+ else if(LhsPacketSize > 4)
+ {
+ // TODO: extend the code to support aligned loads whenever possible when LhsPacketSize > 4.
+ // Currently, it seems to be better to perform unaligned loads anyway
+ alignmentPattern = NoneAligned;
+ }
+ else if (LhsPacketSize>1)
+ {
+ // eigen_internal_assert(size_t(firstLhs+lhsAlignmentOffset)%sizeof(LhsPacket)==0 || size<LhsPacketSize);
+
+ while (skipColumns<LhsPacketSize &&
+ alignedStart != ((lhsAlignmentOffset + alignmentStep*skipColumns)%LhsPacketSize))
+ ++skipColumns;
+ if (skipColumns==LhsPacketSize)
+ {
+ // nothing can be aligned, no need to skip any column
+ alignmentPattern = NoneAligned;
+ skipColumns = 0;
+ }
+ else
+ {
+ skipColumns = (std::min)(skipColumns,cols);
+ // note that the skiped columns are processed later.
+ }
+
+ /* eigen_internal_assert( (alignmentPattern==NoneAligned)
+ || (skipColumns + columnsAtOnce >= cols)
+ || LhsPacketSize > size
+ || (size_t(firstLhs+alignedStart+lhsStride*skipColumns)%sizeof(LhsPacket))==0);*/
+ }
+ else if(Vectorizable)
+ {
+ alignedStart = 0;
+ alignedSize = size;
+ alignmentPattern = AllAligned;
+ }
+
+ const Index offset1 = (FirstAligned && alignmentStep==1)?3:1;
+ const Index offset3 = (FirstAligned && alignmentStep==1)?1:3;
+
+ Index columnBound = ((cols-skipColumns)/columnsAtOnce)*columnsAtOnce + skipColumns;
+ for (Index i=skipColumns; i<columnBound; i+=columnsAtOnce)
+ {
+ RhsPacket ptmp0 = pset1<RhsPacket>(alpha*rhs(i, 0)),
+ ptmp1 = pset1<RhsPacket>(alpha*rhs(i+offset1, 0)),
+ ptmp2 = pset1<RhsPacket>(alpha*rhs(i+2, 0)),
+ ptmp3 = pset1<RhsPacket>(alpha*rhs(i+offset3, 0));
+
+ // this helps a lot generating better binary code
+ const LhsScalars lhs0 = lhs.getVectorMapper(0, i+0), lhs1 = lhs.getVectorMapper(0, i+offset1),
+ lhs2 = lhs.getVectorMapper(0, i+2), lhs3 = lhs.getVectorMapper(0, i+offset3);
+
+ if (Vectorizable)
+ {
+ /* explicit vectorization */
+ // process initial unaligned coeffs
+ for (Index j=0; j<alignedStart; ++j)
+ {
+ res[j] = cj.pmadd(lhs0(j), pfirst(ptmp0), res[j]);
+ res[j] = cj.pmadd(lhs1(j), pfirst(ptmp1), res[j]);
+ res[j] = cj.pmadd(lhs2(j), pfirst(ptmp2), res[j]);
+ res[j] = cj.pmadd(lhs3(j), pfirst(ptmp3), res[j]);
+ }
+
+ if (alignedSize>alignedStart)
+ {
+ switch(alignmentPattern)
+ {
+ case AllAligned:
+ for (Index j = alignedStart; j<alignedSize; j+=ResPacketSize)
+ _EIGEN_ACCUMULATE_PACKETS(Aligned,Aligned,Aligned);
+ break;
+ case EvenAligned:
+ for (Index j = alignedStart; j<alignedSize; j+=ResPacketSize)
+ _EIGEN_ACCUMULATE_PACKETS(Aligned,Unaligned,Aligned);
+ break;
+ case FirstAligned:
+ {
+ Index j = alignedStart;
+ if(peels>1)
+ {
+ LhsPacket A00, A01, A02, A03, A10, A11, A12, A13;
+ ResPacket T0, T1;
+
+ A01 = lhs1.template load<LhsPacket, Aligned>(alignedStart-1);
+ A02 = lhs2.template load<LhsPacket, Aligned>(alignedStart-2);
+ A03 = lhs3.template load<LhsPacket, Aligned>(alignedStart-3);
+
+ for (; j<peeledSize; j+=peels*ResPacketSize)
+ {
+ A11 = lhs1.template load<LhsPacket, Aligned>(j-1+LhsPacketSize); palign<1>(A01,A11);
+ A12 = lhs2.template load<LhsPacket, Aligned>(j-2+LhsPacketSize); palign<2>(A02,A12);
+ A13 = lhs3.template load<LhsPacket, Aligned>(j-3+LhsPacketSize); palign<3>(A03,A13);
+
+ A00 = lhs0.template load<LhsPacket, Aligned>(j);
+ A10 = lhs0.template load<LhsPacket, Aligned>(j+LhsPacketSize);
+ T0 = pcj.pmadd(A00, ptmp0, pload<ResPacket>(&res[j]));
+ T1 = pcj.pmadd(A10, ptmp0, pload<ResPacket>(&res[j+ResPacketSize]));
+
+ T0 = pcj.pmadd(A01, ptmp1, T0);
+ A01 = lhs1.template load<LhsPacket, Aligned>(j-1+2*LhsPacketSize); palign<1>(A11,A01);
+ T0 = pcj.pmadd(A02, ptmp2, T0);
+ A02 = lhs2.template load<LhsPacket, Aligned>(j-2+2*LhsPacketSize); palign<2>(A12,A02);
+ T0 = pcj.pmadd(A03, ptmp3, T0);
+ pstore(&res[j],T0);
+ A03 = lhs3.template load<LhsPacket, Aligned>(j-3+2*LhsPacketSize); palign<3>(A13,A03);
+ T1 = pcj.pmadd(A11, ptmp1, T1);
+ T1 = pcj.pmadd(A12, ptmp2, T1);
+ T1 = pcj.pmadd(A13, ptmp3, T1);
+ pstore(&res[j+ResPacketSize],T1);
+ }
+ }
+ for (; j<alignedSize; j+=ResPacketSize)
+ _EIGEN_ACCUMULATE_PACKETS(Aligned,Unaligned,Unaligned);
+ break;
+ }
+ default:
+ for (Index j = alignedStart; j<alignedSize; j+=ResPacketSize)
+ _EIGEN_ACCUMULATE_PACKETS(Unaligned,Unaligned,Unaligned);
+ break;
+ }
+ }
+ } // end explicit vectorization
+
+ /* process remaining coeffs (or all if there is no explicit vectorization) */
+ for (Index j=alignedSize; j<size; ++j)
+ {
+ res[j] = cj.pmadd(lhs0(j), pfirst(ptmp0), res[j]);
+ res[j] = cj.pmadd(lhs1(j), pfirst(ptmp1), res[j]);
+ res[j] = cj.pmadd(lhs2(j), pfirst(ptmp2), res[j]);
+ res[j] = cj.pmadd(lhs3(j), pfirst(ptmp3), res[j]);
+ }
+ }
+
+ // process remaining first and last columns (at most columnsAtOnce-1)
+ Index end = cols;
+ Index start = columnBound;
+ do
+ {
+ for (Index k=start; k<end; ++k)
+ {
+ RhsPacket ptmp0 = pset1<RhsPacket>(alpha*rhs(k, 0));
+ const LhsScalars lhs0 = lhs.getVectorMapper(0, k);
+
+ if (Vectorizable)
+ {
+ /* explicit vectorization */
+ // process first unaligned result's coeffs
+ for (Index j=0; j<alignedStart; ++j)
+ res[j] += cj.pmul(lhs0(j), pfirst(ptmp0));
+ // process aligned result's coeffs
+ if (lhs0.template aligned<LhsPacket>(alignedStart))
+ for (Index i = alignedStart;i<alignedSize;i+=ResPacketSize)
+ pstore(&res[i], pcj.pmadd(lhs0.template load<LhsPacket, Aligned>(i), ptmp0, pload<ResPacket>(&res[i])));
+ else
+ for (Index i = alignedStart;i<alignedSize;i+=ResPacketSize)
+ pstore(&res[i], pcj.pmadd(lhs0.template load<LhsPacket, Unaligned>(i), ptmp0, pload<ResPacket>(&res[i])));
+ }
+
+ // process remaining scalars (or all if no explicit vectorization)
+ for (Index i=alignedSize; i<size; ++i)
+ res[i] += cj.pmul(lhs0(i), pfirst(ptmp0));
+ }
+ if (skipColumns)
+ {
+ start = 0;
+ end = skipColumns;
+ skipColumns = 0;
+ }
+ else
+ break;
+ } while(Vectorizable);
+ #undef _EIGEN_ACCUMULATE_PACKETS
+}
+
+/* Optimized row-major matrix * vector product:
+ * This algorithm processes 4 rows at onces that allows to both reduce
+ * the number of load/stores of the result by a factor 4 and to reduce
+ * the instruction dependency. Moreover, we know that all bands have the
+ * same alignment pattern.
+ *
+ * Mixing type logic:
+ * - alpha is always a complex (or converted to a complex)
+ * - no vectorization
+ */
+template<typename Index, typename LhsScalar, typename LhsMapper, bool ConjugateLhs, typename RhsScalar, typename RhsMapper, bool ConjugateRhs, int Version>
+struct general_matrix_vector_product<Index,LhsScalar,LhsMapper,RowMajor,ConjugateLhs,RhsScalar,RhsMapper,ConjugateRhs,Version>
+{
+typedef typename ScalarBinaryOpTraits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+
+enum {
+ Vectorizable = packet_traits<LhsScalar>::Vectorizable && packet_traits<RhsScalar>::Vectorizable
+ && int(packet_traits<LhsScalar>::size)==int(packet_traits<RhsScalar>::size),
+ LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
+ RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
+ ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1
+};
+
+typedef typename packet_traits<LhsScalar>::type _LhsPacket;
+typedef typename packet_traits<RhsScalar>::type _RhsPacket;
+typedef typename packet_traits<ResScalar>::type _ResPacket;
+
+typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type LhsPacket;
+typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type RhsPacket;
+typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type ResPacket;
+
+EIGEN_DONT_INLINE static void run(
+ Index rows, Index cols,
+ const LhsMapper& lhs,
+ const RhsMapper& rhs,
+ ResScalar* res, Index resIncr,
+ ResScalar alpha);
+};
+
+template<typename Index, typename LhsScalar, typename LhsMapper, bool ConjugateLhs, typename RhsScalar, typename RhsMapper, bool ConjugateRhs, int Version>
+EIGEN_DONT_INLINE void general_matrix_vector_product<Index,LhsScalar,LhsMapper,RowMajor,ConjugateLhs,RhsScalar,RhsMapper,ConjugateRhs,Version>::run(
+ Index rows, Index cols,
+ const LhsMapper& lhs,
+ const RhsMapper& rhs,
+ ResScalar* res, Index resIncr,
+ ResScalar alpha)
+{
+ eigen_internal_assert(rhs.stride()==1);
+
+ #ifdef _EIGEN_ACCUMULATE_PACKETS
+ #error _EIGEN_ACCUMULATE_PACKETS has already been defined
+ #endif
+
+ #define _EIGEN_ACCUMULATE_PACKETS(Alignment0,Alignment13,Alignment2) {\
+ RhsPacket b = rhs.getVectorMapper(j, 0).template load<RhsPacket, Aligned>(0); \
+ ptmp0 = pcj.pmadd(lhs0.template load<LhsPacket, Alignment0>(j), b, ptmp0); \
+ ptmp1 = pcj.pmadd(lhs1.template load<LhsPacket, Alignment13>(j), b, ptmp1); \
+ ptmp2 = pcj.pmadd(lhs2.template load<LhsPacket, Alignment2>(j), b, ptmp2); \
+ ptmp3 = pcj.pmadd(lhs3.template load<LhsPacket, Alignment13>(j), b, ptmp3); }
+
+ conj_helper<LhsScalar,RhsScalar,ConjugateLhs,ConjugateRhs> cj;
+ conj_helper<LhsPacket,RhsPacket,ConjugateLhs,ConjugateRhs> pcj;
+
+ typedef typename LhsMapper::VectorMapper LhsScalars;
+
+ enum { AllAligned=0, EvenAligned=1, FirstAligned=2, NoneAligned=3 };
+ const Index rowsAtOnce = 4;
+ const Index peels = 2;
+ const Index RhsPacketAlignedMask = RhsPacketSize-1;
+ const Index LhsPacketAlignedMask = LhsPacketSize-1;
+ const Index depth = cols;
+ const Index lhsStride = lhs.stride();
+
+ // How many coeffs of the result do we have to skip to be aligned.
+ // Here we assume data are at least aligned on the base scalar type
+ // if that's not the case then vectorization is discarded, see below.
+ Index alignedStart = rhs.firstAligned(depth);
+ Index alignedSize = RhsPacketSize>1 ? alignedStart + ((depth-alignedStart) & ~RhsPacketAlignedMask) : 0;
+ const Index peeledSize = alignedSize - RhsPacketSize*peels - RhsPacketSize + 1;
+
+ const Index alignmentStep = LhsPacketSize>1 ? (LhsPacketSize - lhsStride % LhsPacketSize) & LhsPacketAlignedMask : 0;
+ Index alignmentPattern = alignmentStep==0 ? AllAligned
+ : alignmentStep==(LhsPacketSize/2) ? EvenAligned
+ : FirstAligned;
+
+ // we cannot assume the first element is aligned because of sub-matrices
+ const Index lhsAlignmentOffset = lhs.firstAligned(depth);
+ const Index rhsAlignmentOffset = rhs.firstAligned(rows);
+
+ // find how many rows do we have to skip to be aligned with rhs (if possible)
+ Index skipRows = 0;
+ // if the data cannot be aligned (TODO add some compile time tests when possible, e.g. for floats)
+ if( (sizeof(LhsScalar)!=sizeof(RhsScalar)) ||
+ (lhsAlignmentOffset < 0) || (lhsAlignmentOffset == depth) ||
+ (rhsAlignmentOffset < 0) || (rhsAlignmentOffset == rows) )
+ {
+ alignedSize = 0;
+ alignedStart = 0;
+ alignmentPattern = NoneAligned;
+ }
+ else if(LhsPacketSize > 4)
+ {
+ // TODO: extend the code to support aligned loads whenever possible when LhsPacketSize > 4.
+ alignmentPattern = NoneAligned;
+ }
+ else if (LhsPacketSize>1)
+ {
+ // eigen_internal_assert(size_t(firstLhs+lhsAlignmentOffset)%sizeof(LhsPacket)==0 || depth<LhsPacketSize);
+
+ while (skipRows<LhsPacketSize &&
+ alignedStart != ((lhsAlignmentOffset + alignmentStep*skipRows)%LhsPacketSize))
+ ++skipRows;
+ if (skipRows==LhsPacketSize)
+ {
+ // nothing can be aligned, no need to skip any column
+ alignmentPattern = NoneAligned;
+ skipRows = 0;
+ }
+ else
+ {
+ skipRows = (std::min)(skipRows,Index(rows));
+ // note that the skiped columns are processed later.
+ }
+ /* eigen_internal_assert( alignmentPattern==NoneAligned
+ || LhsPacketSize==1
+ || (skipRows + rowsAtOnce >= rows)
+ || LhsPacketSize > depth
+ || (size_t(firstLhs+alignedStart+lhsStride*skipRows)%sizeof(LhsPacket))==0);*/
+ }
+ else if(Vectorizable)
+ {
+ alignedStart = 0;
+ alignedSize = depth;
+ alignmentPattern = AllAligned;
+ }
+
+ const Index offset1 = (FirstAligned && alignmentStep==1)?3:1;
+ const Index offset3 = (FirstAligned && alignmentStep==1)?1:3;
+
+ Index rowBound = ((rows-skipRows)/rowsAtOnce)*rowsAtOnce + skipRows;
+ for (Index i=skipRows; i<rowBound; i+=rowsAtOnce)
+ {
+ // FIXME: what is the purpose of this EIGEN_ALIGN_DEFAULT ??
+ EIGEN_ALIGN_MAX ResScalar tmp0 = ResScalar(0);
+ ResScalar tmp1 = ResScalar(0), tmp2 = ResScalar(0), tmp3 = ResScalar(0);
+
+ // this helps the compiler generating good binary code
+ const LhsScalars lhs0 = lhs.getVectorMapper(i+0, 0), lhs1 = lhs.getVectorMapper(i+offset1, 0),
+ lhs2 = lhs.getVectorMapper(i+2, 0), lhs3 = lhs.getVectorMapper(i+offset3, 0);
+
+ if (Vectorizable)
+ {
+ /* explicit vectorization */
+ ResPacket ptmp0 = pset1<ResPacket>(ResScalar(0)), ptmp1 = pset1<ResPacket>(ResScalar(0)),
+ ptmp2 = pset1<ResPacket>(ResScalar(0)), ptmp3 = pset1<ResPacket>(ResScalar(0));
+
+ // process initial unaligned coeffs
+ // FIXME this loop get vectorized by the compiler !
+ for (Index j=0; j<alignedStart; ++j)
+ {
+ RhsScalar b = rhs(j, 0);
+ tmp0 += cj.pmul(lhs0(j),b); tmp1 += cj.pmul(lhs1(j),b);
+ tmp2 += cj.pmul(lhs2(j),b); tmp3 += cj.pmul(lhs3(j),b);
+ }
+
+ if (alignedSize>alignedStart)
+ {
+ switch(alignmentPattern)
+ {
+ case AllAligned:
+ for (Index j = alignedStart; j<alignedSize; j+=RhsPacketSize)
+ _EIGEN_ACCUMULATE_PACKETS(Aligned,Aligned,Aligned);
+ break;
+ case EvenAligned:
+ for (Index j = alignedStart; j<alignedSize; j+=RhsPacketSize)
+ _EIGEN_ACCUMULATE_PACKETS(Aligned,Unaligned,Aligned);
+ break;
+ case FirstAligned:
+ {
+ Index j = alignedStart;
+ if (peels>1)
+ {
+ /* Here we proccess 4 rows with with two peeled iterations to hide
+ * the overhead of unaligned loads. Moreover unaligned loads are handled
+ * using special shift/move operations between the two aligned packets
+ * overlaping the desired unaligned packet. This is *much* more efficient
+ * than basic unaligned loads.
+ */
+ LhsPacket A01, A02, A03, A11, A12, A13;
+ A01 = lhs1.template load<LhsPacket, Aligned>(alignedStart-1);
+ A02 = lhs2.template load<LhsPacket, Aligned>(alignedStart-2);
+ A03 = lhs3.template load<LhsPacket, Aligned>(alignedStart-3);
+
+ for (; j<peeledSize; j+=peels*RhsPacketSize)
+ {
+ RhsPacket b = rhs.getVectorMapper(j, 0).template load<RhsPacket, Aligned>(0);
+ A11 = lhs1.template load<LhsPacket, Aligned>(j-1+LhsPacketSize); palign<1>(A01,A11);
+ A12 = lhs2.template load<LhsPacket, Aligned>(j-2+LhsPacketSize); palign<2>(A02,A12);
+ A13 = lhs3.template load<LhsPacket, Aligned>(j-3+LhsPacketSize); palign<3>(A03,A13);
+
+ ptmp0 = pcj.pmadd(lhs0.template load<LhsPacket, Aligned>(j), b, ptmp0);
+ ptmp1 = pcj.pmadd(A01, b, ptmp1);
+ A01 = lhs1.template load<LhsPacket, Aligned>(j-1+2*LhsPacketSize); palign<1>(A11,A01);
+ ptmp2 = pcj.pmadd(A02, b, ptmp2);
+ A02 = lhs2.template load<LhsPacket, Aligned>(j-2+2*LhsPacketSize); palign<2>(A12,A02);
+ ptmp3 = pcj.pmadd(A03, b, ptmp3);
+ A03 = lhs3.template load<LhsPacket, Aligned>(j-3+2*LhsPacketSize); palign<3>(A13,A03);
+
+ b = rhs.getVectorMapper(j+RhsPacketSize, 0).template load<RhsPacket, Aligned>(0);
+ ptmp0 = pcj.pmadd(lhs0.template load<LhsPacket, Aligned>(j+LhsPacketSize), b, ptmp0);
+ ptmp1 = pcj.pmadd(A11, b, ptmp1);
+ ptmp2 = pcj.pmadd(A12, b, ptmp2);
+ ptmp3 = pcj.pmadd(A13, b, ptmp3);
+ }
+ }
+ for (; j<alignedSize; j+=RhsPacketSize)
+ _EIGEN_ACCUMULATE_PACKETS(Aligned,Unaligned,Unaligned);
+ break;
+ }
+ default:
+ for (Index j = alignedStart; j<alignedSize; j+=RhsPacketSize)
+ _EIGEN_ACCUMULATE_PACKETS(Unaligned,Unaligned,Unaligned);
+ break;
+ }
+ tmp0 += predux(ptmp0);
+ tmp1 += predux(ptmp1);
+ tmp2 += predux(ptmp2);
+ tmp3 += predux(ptmp3);
+ }
+ } // end explicit vectorization
+
+ // process remaining coeffs (or all if no explicit vectorization)
+ // FIXME this loop get vectorized by the compiler !
+ for (Index j=alignedSize; j<depth; ++j)
+ {
+ RhsScalar b = rhs(j, 0);
+ tmp0 += cj.pmul(lhs0(j),b); tmp1 += cj.pmul(lhs1(j),b);
+ tmp2 += cj.pmul(lhs2(j),b); tmp3 += cj.pmul(lhs3(j),b);
+ }
+ res[i*resIncr] += alpha*tmp0;
+ res[(i+offset1)*resIncr] += alpha*tmp1;
+ res[(i+2)*resIncr] += alpha*tmp2;
+ res[(i+offset3)*resIncr] += alpha*tmp3;
+ }
+
+ // process remaining first and last rows (at most columnsAtOnce-1)
+ Index end = rows;
+ Index start = rowBound;
+ do
+ {
+ for (Index i=start; i<end; ++i)
+ {
+ EIGEN_ALIGN_MAX ResScalar tmp0 = ResScalar(0);
+ ResPacket ptmp0 = pset1<ResPacket>(tmp0);
+ const LhsScalars lhs0 = lhs.getVectorMapper(i, 0);
+ // process first unaligned result's coeffs
+ // FIXME this loop get vectorized by the compiler !
+ for (Index j=0; j<alignedStart; ++j)
+ tmp0 += cj.pmul(lhs0(j), rhs(j, 0));
+
+ if (alignedSize>alignedStart)
+ {
+ // process aligned rhs coeffs
+ if (lhs0.template aligned<LhsPacket>(alignedStart))
+ for (Index j = alignedStart;j<alignedSize;j+=RhsPacketSize)
+ ptmp0 = pcj.pmadd(lhs0.template load<LhsPacket, Aligned>(j), rhs.getVectorMapper(j, 0).template load<RhsPacket, Aligned>(0), ptmp0);
+ else
+ for (Index j = alignedStart;j<alignedSize;j+=RhsPacketSize)
+ ptmp0 = pcj.pmadd(lhs0.template load<LhsPacket, Unaligned>(j), rhs.getVectorMapper(j, 0).template load<RhsPacket, Aligned>(0), ptmp0);
+ tmp0 += predux(ptmp0);
+ }
+
+ // process remaining scalars
+ // FIXME this loop get vectorized by the compiler !
+ for (Index j=alignedSize; j<depth; ++j)
+ tmp0 += cj.pmul(lhs0(j), rhs(j, 0));
+ res[i*resIncr] += alpha*tmp0;
+ }
+ if (skipRows)
+ {
+ start = 0;
+ end = skipRows;
+ skipRows = 0;
+ }
+ else
+ break;
+ } while(Vectorizable);
+
+ #undef _EIGEN_ACCUMULATE_PACKETS
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERAL_MATRIX_VECTOR_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h
new file mode 100644
index 000000000..e3a5d5892
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h
@@ -0,0 +1,129 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ * Content : Eigen bindings to BLAS F77
+ * General matrix-vector product functionality based on ?GEMV.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_GENERAL_MATRIX_VECTOR_BLAS_H
+#define EIGEN_GENERAL_MATRIX_VECTOR_BLAS_H
+
+namespace Eigen {
+
+namespace internal {
+
+/**********************************************************************
+* This file implements general matrix-vector multiplication using BLAS
+* gemv function via partial specialization of
+* general_matrix_vector_product::run(..) method for float, double,
+* std::complex<float> and std::complex<double> types
+**********************************************************************/
+
+// gemv specialization
+
+template<typename Index, typename LhsScalar, int StorageOrder, bool ConjugateLhs, typename RhsScalar, bool ConjugateRhs>
+struct general_matrix_vector_product_gemv;
+
+#define EIGEN_BLAS_GEMV_SPECIALIZE(Scalar) \
+template<typename Index, bool ConjugateLhs, bool ConjugateRhs> \
+struct general_matrix_vector_product<Index,Scalar,const_blas_data_mapper<Scalar,Index,ColMajor>,ColMajor,ConjugateLhs,Scalar,const_blas_data_mapper<Scalar,Index,RowMajor>,ConjugateRhs,Specialized> { \
+static void run( \
+ Index rows, Index cols, \
+ const const_blas_data_mapper<Scalar,Index,ColMajor> &lhs, \
+ const const_blas_data_mapper<Scalar,Index,RowMajor> &rhs, \
+ Scalar* res, Index resIncr, Scalar alpha) \
+{ \
+ if (ConjugateLhs) { \
+ general_matrix_vector_product<Index,Scalar,const_blas_data_mapper<Scalar,Index,ColMajor>,ColMajor,ConjugateLhs,Scalar,const_blas_data_mapper<Scalar,Index,RowMajor>,ConjugateRhs,BuiltIn>::run( \
+ rows, cols, lhs, rhs, res, resIncr, alpha); \
+ } else { \
+ general_matrix_vector_product_gemv<Index,Scalar,ColMajor,ConjugateLhs,Scalar,ConjugateRhs>::run( \
+ rows, cols, lhs.data(), lhs.stride(), rhs.data(), rhs.stride(), res, resIncr, alpha); \
+ } \
+} \
+}; \
+template<typename Index, bool ConjugateLhs, bool ConjugateRhs> \
+struct general_matrix_vector_product<Index,Scalar,const_blas_data_mapper<Scalar,Index,RowMajor>,RowMajor,ConjugateLhs,Scalar,const_blas_data_mapper<Scalar,Index,ColMajor>,ConjugateRhs,Specialized> { \
+static void run( \
+ Index rows, Index cols, \
+ const const_blas_data_mapper<Scalar,Index,RowMajor> &lhs, \
+ const const_blas_data_mapper<Scalar,Index,ColMajor> &rhs, \
+ Scalar* res, Index resIncr, Scalar alpha) \
+{ \
+ general_matrix_vector_product_gemv<Index,Scalar,RowMajor,ConjugateLhs,Scalar,ConjugateRhs>::run( \
+ rows, cols, lhs.data(), lhs.stride(), rhs.data(), rhs.stride(), res, resIncr, alpha); \
+} \
+}; \
+
+EIGEN_BLAS_GEMV_SPECIALIZE(double)
+EIGEN_BLAS_GEMV_SPECIALIZE(float)
+EIGEN_BLAS_GEMV_SPECIALIZE(dcomplex)
+EIGEN_BLAS_GEMV_SPECIALIZE(scomplex)
+
+#define EIGEN_BLAS_GEMV_SPECIALIZATION(EIGTYPE,BLASTYPE,BLASPREFIX) \
+template<typename Index, int LhsStorageOrder, bool ConjugateLhs, bool ConjugateRhs> \
+struct general_matrix_vector_product_gemv<Index,EIGTYPE,LhsStorageOrder,ConjugateLhs,EIGTYPE,ConjugateRhs> \
+{ \
+typedef Matrix<EIGTYPE,Dynamic,1,ColMajor> GEMVVector;\
+\
+static void run( \
+ Index rows, Index cols, \
+ const EIGTYPE* lhs, Index lhsStride, \
+ const EIGTYPE* rhs, Index rhsIncr, \
+ EIGTYPE* res, Index resIncr, EIGTYPE alpha) \
+{ \
+ BlasIndex m=convert_index<BlasIndex>(rows), n=convert_index<BlasIndex>(cols), \
+ lda=convert_index<BlasIndex>(lhsStride), incx=convert_index<BlasIndex>(rhsIncr), incy=convert_index<BlasIndex>(resIncr); \
+ const EIGTYPE beta(1); \
+ const EIGTYPE *x_ptr; \
+ char trans=(LhsStorageOrder==ColMajor) ? 'N' : (ConjugateLhs) ? 'C' : 'T'; \
+ if (LhsStorageOrder==RowMajor) { \
+ m = convert_index<BlasIndex>(cols); \
+ n = convert_index<BlasIndex>(rows); \
+ }\
+ GEMVVector x_tmp; \
+ if (ConjugateRhs) { \
+ Map<const GEMVVector, 0, InnerStride<> > map_x(rhs,cols,1,InnerStride<>(incx)); \
+ x_tmp=map_x.conjugate(); \
+ x_ptr=x_tmp.data(); \
+ incx=1; \
+ } else x_ptr=rhs; \
+ BLASPREFIX##gemv_(&trans, &m, &n, &numext::real_ref(alpha), (const BLASTYPE*)lhs, &lda, (const BLASTYPE*)x_ptr, &incx, &numext::real_ref(beta), (BLASTYPE*)res, &incy); \
+}\
+};
+
+EIGEN_BLAS_GEMV_SPECIALIZATION(double, double, d)
+EIGEN_BLAS_GEMV_SPECIALIZATION(float, float, s)
+EIGEN_BLAS_GEMV_SPECIALIZATION(dcomplex, double, z)
+EIGEN_BLAS_GEMV_SPECIALIZATION(scomplex, float, c)
+
+} // end namespase internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERAL_MATRIX_VECTOR_BLAS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/Parallelizer.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/Parallelizer.h
new file mode 100644
index 000000000..c2f084c82
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/Parallelizer.h
@@ -0,0 +1,163 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PARALLELIZER_H
+#define EIGEN_PARALLELIZER_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** \internal */
+inline void manage_multi_threading(Action action, int* v)
+{
+ static EIGEN_UNUSED int m_maxThreads = -1;
+
+ if(action==SetAction)
+ {
+ eigen_internal_assert(v!=0);
+ m_maxThreads = *v;
+ }
+ else if(action==GetAction)
+ {
+ eigen_internal_assert(v!=0);
+ #ifdef EIGEN_HAS_OPENMP
+ if(m_maxThreads>0)
+ *v = m_maxThreads;
+ else
+ *v = omp_get_max_threads();
+ #else
+ *v = 1;
+ #endif
+ }
+ else
+ {
+ eigen_internal_assert(false);
+ }
+}
+
+}
+
+/** Must be call first when calling Eigen from multiple threads */
+inline void initParallel()
+{
+ int nbt;
+ internal::manage_multi_threading(GetAction, &nbt);
+ std::ptrdiff_t l1, l2, l3;
+ internal::manage_caching_sizes(GetAction, &l1, &l2, &l3);
+}
+
+/** \returns the max number of threads reserved for Eigen
+ * \sa setNbThreads */
+inline int nbThreads()
+{
+ int ret;
+ internal::manage_multi_threading(GetAction, &ret);
+ return ret;
+}
+
+/** Sets the max number of threads reserved for Eigen
+ * \sa nbThreads */
+inline void setNbThreads(int v)
+{
+ internal::manage_multi_threading(SetAction, &v);
+}
+
+namespace internal {
+
+template<typename Index> struct GemmParallelInfo
+{
+ GemmParallelInfo() : sync(-1), users(0), lhs_start(0), lhs_length(0) {}
+
+ Index volatile sync;
+ int volatile users;
+
+ Index lhs_start;
+ Index lhs_length;
+};
+
+template<bool Condition, typename Functor, typename Index>
+void parallelize_gemm(const Functor& func, Index rows, Index cols, Index depth, bool transpose)
+{
+ // TODO when EIGEN_USE_BLAS is defined,
+ // we should still enable OMP for other scalar types
+#if !(defined (EIGEN_HAS_OPENMP)) || defined (EIGEN_USE_BLAS)
+ // FIXME the transpose variable is only needed to properly split
+ // the matrix product when multithreading is enabled. This is a temporary
+ // fix to support row-major destination matrices. This whole
+ // parallelizer mechanism has to be redisigned anyway.
+ EIGEN_UNUSED_VARIABLE(depth);
+ EIGEN_UNUSED_VARIABLE(transpose);
+ func(0,rows, 0,cols);
+#else
+
+ // Dynamically check whether we should enable or disable OpenMP.
+ // The conditions are:
+ // - the max number of threads we can create is greater than 1
+ // - we are not already in a parallel code
+ // - the sizes are large enough
+
+ // compute the maximal number of threads from the size of the product:
+ // This first heuristic takes into account that the product kernel is fully optimized when working with nr columns at once.
+ Index size = transpose ? rows : cols;
+ Index pb_max_threads = std::max<Index>(1,size / Functor::Traits::nr);
+
+ // compute the maximal number of threads from the total amount of work:
+ double work = static_cast<double>(rows) * static_cast<double>(cols) *
+ static_cast<double>(depth);
+ double kMinTaskSize = 50000; // FIXME improve this heuristic.
+ pb_max_threads = std::max<Index>(1, std::min<Index>(pb_max_threads, work / kMinTaskSize));
+
+ // compute the number of threads we are going to use
+ Index threads = std::min<Index>(nbThreads(), pb_max_threads);
+
+ // if multi-threading is explicitely disabled, not useful, or if we already are in a parallel session,
+ // then abort multi-threading
+ // FIXME omp_get_num_threads()>1 only works for openmp, what if the user does not use openmp?
+ if((!Condition) || (threads==1) || (omp_get_num_threads()>1))
+ return func(0,rows, 0,cols);
+
+ Eigen::initParallel();
+ func.initParallelSession(threads);
+
+ if(transpose)
+ std::swap(rows,cols);
+
+ ei_declare_aligned_stack_constructed_variable(GemmParallelInfo<Index>,info,threads,0);
+
+ #pragma omp parallel num_threads(threads)
+ {
+ Index i = omp_get_thread_num();
+ // Note that the actual number of threads might be lower than the number of request ones.
+ Index actual_threads = omp_get_num_threads();
+
+ Index blockCols = (cols / actual_threads) & ~Index(0x3);
+ Index blockRows = (rows / actual_threads);
+ blockRows = (blockRows/Functor::Traits::mr)*Functor::Traits::mr;
+
+ Index r0 = i*blockRows;
+ Index actualBlockRows = (i+1==actual_threads) ? rows-r0 : blockRows;
+
+ Index c0 = i*blockCols;
+ Index actualBlockCols = (i+1==actual_threads) ? cols-c0 : blockCols;
+
+ info[i].lhs_start = r0;
+ info[i].lhs_length = actualBlockRows;
+
+ if(transpose) func(c0, actualBlockCols, 0, rows, info);
+ else func(0, rows, c0, actualBlockCols, info);
+ }
+#endif
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PARALLELIZER_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
new file mode 100644
index 000000000..da6f82abc
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
@@ -0,0 +1,521 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELFADJOINT_MATRIX_MATRIX_H
+#define EIGEN_SELFADJOINT_MATRIX_MATRIX_H
+
+namespace Eigen {
+
+namespace internal {
+
+// pack a selfadjoint block diagonal for use with the gebp_kernel
+template<typename Scalar, typename Index, int Pack1, int Pack2_dummy, int StorageOrder>
+struct symm_pack_lhs
+{
+ template<int BlockRows> inline
+ void pack(Scalar* blockA, const const_blas_data_mapper<Scalar,Index,StorageOrder>& lhs, Index cols, Index i, Index& count)
+ {
+ // normal copy
+ for(Index k=0; k<i; k++)
+ for(Index w=0; w<BlockRows; w++)
+ blockA[count++] = lhs(i+w,k); // normal
+ // symmetric copy
+ Index h = 0;
+ for(Index k=i; k<i+BlockRows; k++)
+ {
+ for(Index w=0; w<h; w++)
+ blockA[count++] = numext::conj(lhs(k, i+w)); // transposed
+
+ blockA[count++] = numext::real(lhs(k,k)); // real (diagonal)
+
+ for(Index w=h+1; w<BlockRows; w++)
+ blockA[count++] = lhs(i+w, k); // normal
+ ++h;
+ }
+ // transposed copy
+ for(Index k=i+BlockRows; k<cols; k++)
+ for(Index w=0; w<BlockRows; w++)
+ blockA[count++] = numext::conj(lhs(k, i+w)); // transposed
+ }
+ void operator()(Scalar* blockA, const Scalar* _lhs, Index lhsStride, Index cols, Index rows)
+ {
+ enum { PacketSize = packet_traits<Scalar>::size };
+ const_blas_data_mapper<Scalar,Index,StorageOrder> lhs(_lhs,lhsStride);
+ Index count = 0;
+ //Index peeled_mc3 = (rows/Pack1)*Pack1;
+
+ const Index peeled_mc3 = Pack1>=3*PacketSize ? (rows/(3*PacketSize))*(3*PacketSize) : 0;
+ const Index peeled_mc2 = Pack1>=2*PacketSize ? peeled_mc3+((rows-peeled_mc3)/(2*PacketSize))*(2*PacketSize) : 0;
+ const Index peeled_mc1 = Pack1>=1*PacketSize ? (rows/(1*PacketSize))*(1*PacketSize) : 0;
+
+ if(Pack1>=3*PacketSize)
+ for(Index i=0; i<peeled_mc3; i+=3*PacketSize)
+ pack<3*PacketSize>(blockA, lhs, cols, i, count);
+
+ if(Pack1>=2*PacketSize)
+ for(Index i=peeled_mc3; i<peeled_mc2; i+=2*PacketSize)
+ pack<2*PacketSize>(blockA, lhs, cols, i, count);
+
+ if(Pack1>=1*PacketSize)
+ for(Index i=peeled_mc2; i<peeled_mc1; i+=1*PacketSize)
+ pack<1*PacketSize>(blockA, lhs, cols, i, count);
+
+ // do the same with mr==1
+ for(Index i=peeled_mc1; i<rows; i++)
+ {
+ for(Index k=0; k<i; k++)
+ blockA[count++] = lhs(i, k); // normal
+
+ blockA[count++] = numext::real(lhs(i, i)); // real (diagonal)
+
+ for(Index k=i+1; k<cols; k++)
+ blockA[count++] = numext::conj(lhs(k, i)); // transposed
+ }
+ }
+};
+
+template<typename Scalar, typename Index, int nr, int StorageOrder>
+struct symm_pack_rhs
+{
+ enum { PacketSize = packet_traits<Scalar>::size };
+ void operator()(Scalar* blockB, const Scalar* _rhs, Index rhsStride, Index rows, Index cols, Index k2)
+ {
+ Index end_k = k2 + rows;
+ Index count = 0;
+ const_blas_data_mapper<Scalar,Index,StorageOrder> rhs(_rhs,rhsStride);
+ Index packet_cols8 = nr>=8 ? (cols/8) * 8 : 0;
+ Index packet_cols4 = nr>=4 ? (cols/4) * 4 : 0;
+
+ // first part: normal case
+ for(Index j2=0; j2<k2; j2+=nr)
+ {
+ for(Index k=k2; k<end_k; k++)
+ {
+ blockB[count+0] = rhs(k,j2+0);
+ blockB[count+1] = rhs(k,j2+1);
+ if (nr>=4)
+ {
+ blockB[count+2] = rhs(k,j2+2);
+ blockB[count+3] = rhs(k,j2+3);
+ }
+ if (nr>=8)
+ {
+ blockB[count+4] = rhs(k,j2+4);
+ blockB[count+5] = rhs(k,j2+5);
+ blockB[count+6] = rhs(k,j2+6);
+ blockB[count+7] = rhs(k,j2+7);
+ }
+ count += nr;
+ }
+ }
+
+ // second part: diagonal block
+ Index end8 = nr>=8 ? (std::min)(k2+rows,packet_cols8) : k2;
+ if(nr>=8)
+ {
+ for(Index j2=k2; j2<end8; j2+=8)
+ {
+ // again we can split vertically in three different parts (transpose, symmetric, normal)
+ // transpose
+ for(Index k=k2; k<j2; k++)
+ {
+ blockB[count+0] = numext::conj(rhs(j2+0,k));
+ blockB[count+1] = numext::conj(rhs(j2+1,k));
+ blockB[count+2] = numext::conj(rhs(j2+2,k));
+ blockB[count+3] = numext::conj(rhs(j2+3,k));
+ blockB[count+4] = numext::conj(rhs(j2+4,k));
+ blockB[count+5] = numext::conj(rhs(j2+5,k));
+ blockB[count+6] = numext::conj(rhs(j2+6,k));
+ blockB[count+7] = numext::conj(rhs(j2+7,k));
+ count += 8;
+ }
+ // symmetric
+ Index h = 0;
+ for(Index k=j2; k<j2+8; k++)
+ {
+ // normal
+ for (Index w=0 ; w<h; ++w)
+ blockB[count+w] = rhs(k,j2+w);
+
+ blockB[count+h] = numext::real(rhs(k,k));
+
+ // transpose
+ for (Index w=h+1 ; w<8; ++w)
+ blockB[count+w] = numext::conj(rhs(j2+w,k));
+ count += 8;
+ ++h;
+ }
+ // normal
+ for(Index k=j2+8; k<end_k; k++)
+ {
+ blockB[count+0] = rhs(k,j2+0);
+ blockB[count+1] = rhs(k,j2+1);
+ blockB[count+2] = rhs(k,j2+2);
+ blockB[count+3] = rhs(k,j2+3);
+ blockB[count+4] = rhs(k,j2+4);
+ blockB[count+5] = rhs(k,j2+5);
+ blockB[count+6] = rhs(k,j2+6);
+ blockB[count+7] = rhs(k,j2+7);
+ count += 8;
+ }
+ }
+ }
+ if(nr>=4)
+ {
+ for(Index j2=end8; j2<(std::min)(k2+rows,packet_cols4); j2+=4)
+ {
+ // again we can split vertically in three different parts (transpose, symmetric, normal)
+ // transpose
+ for(Index k=k2; k<j2; k++)
+ {
+ blockB[count+0] = numext::conj(rhs(j2+0,k));
+ blockB[count+1] = numext::conj(rhs(j2+1,k));
+ blockB[count+2] = numext::conj(rhs(j2+2,k));
+ blockB[count+3] = numext::conj(rhs(j2+3,k));
+ count += 4;
+ }
+ // symmetric
+ Index h = 0;
+ for(Index k=j2; k<j2+4; k++)
+ {
+ // normal
+ for (Index w=0 ; w<h; ++w)
+ blockB[count+w] = rhs(k,j2+w);
+
+ blockB[count+h] = numext::real(rhs(k,k));
+
+ // transpose
+ for (Index w=h+1 ; w<4; ++w)
+ blockB[count+w] = numext::conj(rhs(j2+w,k));
+ count += 4;
+ ++h;
+ }
+ // normal
+ for(Index k=j2+4; k<end_k; k++)
+ {
+ blockB[count+0] = rhs(k,j2+0);
+ blockB[count+1] = rhs(k,j2+1);
+ blockB[count+2] = rhs(k,j2+2);
+ blockB[count+3] = rhs(k,j2+3);
+ count += 4;
+ }
+ }
+ }
+
+ // third part: transposed
+ if(nr>=8)
+ {
+ for(Index j2=k2+rows; j2<packet_cols8; j2+=8)
+ {
+ for(Index k=k2; k<end_k; k++)
+ {
+ blockB[count+0] = numext::conj(rhs(j2+0,k));
+ blockB[count+1] = numext::conj(rhs(j2+1,k));
+ blockB[count+2] = numext::conj(rhs(j2+2,k));
+ blockB[count+3] = numext::conj(rhs(j2+3,k));
+ blockB[count+4] = numext::conj(rhs(j2+4,k));
+ blockB[count+5] = numext::conj(rhs(j2+5,k));
+ blockB[count+6] = numext::conj(rhs(j2+6,k));
+ blockB[count+7] = numext::conj(rhs(j2+7,k));
+ count += 8;
+ }
+ }
+ }
+ if(nr>=4)
+ {
+ for(Index j2=(std::max)(packet_cols8,k2+rows); j2<packet_cols4; j2+=4)
+ {
+ for(Index k=k2; k<end_k; k++)
+ {
+ blockB[count+0] = numext::conj(rhs(j2+0,k));
+ blockB[count+1] = numext::conj(rhs(j2+1,k));
+ blockB[count+2] = numext::conj(rhs(j2+2,k));
+ blockB[count+3] = numext::conj(rhs(j2+3,k));
+ count += 4;
+ }
+ }
+ }
+
+ // copy the remaining columns one at a time (=> the same with nr==1)
+ for(Index j2=packet_cols4; j2<cols; ++j2)
+ {
+ // transpose
+ Index half = (std::min)(end_k,j2);
+ for(Index k=k2; k<half; k++)
+ {
+ blockB[count] = numext::conj(rhs(j2,k));
+ count += 1;
+ }
+
+ if(half==j2 && half<k2+rows)
+ {
+ blockB[count] = numext::real(rhs(j2,j2));
+ count += 1;
+ }
+ else
+ half--;
+
+ // normal
+ for(Index k=half+1; k<k2+rows; k++)
+ {
+ blockB[count] = rhs(k,j2);
+ count += 1;
+ }
+ }
+ }
+};
+
+/* Optimized selfadjoint matrix * matrix (_SYMM) product built on top of
+ * the general matrix matrix product.
+ */
+template <typename Scalar, typename Index,
+ int LhsStorageOrder, bool LhsSelfAdjoint, bool ConjugateLhs,
+ int RhsStorageOrder, bool RhsSelfAdjoint, bool ConjugateRhs,
+ int ResStorageOrder>
+struct product_selfadjoint_matrix;
+
+template <typename Scalar, typename Index,
+ int LhsStorageOrder, bool LhsSelfAdjoint, bool ConjugateLhs,
+ int RhsStorageOrder, bool RhsSelfAdjoint, bool ConjugateRhs>
+struct product_selfadjoint_matrix<Scalar,Index,LhsStorageOrder,LhsSelfAdjoint,ConjugateLhs, RhsStorageOrder,RhsSelfAdjoint,ConjugateRhs,RowMajor>
+{
+
+ static EIGEN_STRONG_INLINE void run(
+ Index rows, Index cols,
+ const Scalar* lhs, Index lhsStride,
+ const Scalar* rhs, Index rhsStride,
+ Scalar* res, Index resStride,
+ const Scalar& alpha, level3_blocking<Scalar,Scalar>& blocking)
+ {
+ product_selfadjoint_matrix<Scalar, Index,
+ EIGEN_LOGICAL_XOR(RhsSelfAdjoint,RhsStorageOrder==RowMajor) ? ColMajor : RowMajor,
+ RhsSelfAdjoint, NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(RhsSelfAdjoint,ConjugateRhs),
+ EIGEN_LOGICAL_XOR(LhsSelfAdjoint,LhsStorageOrder==RowMajor) ? ColMajor : RowMajor,
+ LhsSelfAdjoint, NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(LhsSelfAdjoint,ConjugateLhs),
+ ColMajor>
+ ::run(cols, rows, rhs, rhsStride, lhs, lhsStride, res, resStride, alpha, blocking);
+ }
+};
+
+template <typename Scalar, typename Index,
+ int LhsStorageOrder, bool ConjugateLhs,
+ int RhsStorageOrder, bool ConjugateRhs>
+struct product_selfadjoint_matrix<Scalar,Index,LhsStorageOrder,true,ConjugateLhs, RhsStorageOrder,false,ConjugateRhs,ColMajor>
+{
+
+ static EIGEN_DONT_INLINE void run(
+ Index rows, Index cols,
+ const Scalar* _lhs, Index lhsStride,
+ const Scalar* _rhs, Index rhsStride,
+ Scalar* res, Index resStride,
+ const Scalar& alpha, level3_blocking<Scalar,Scalar>& blocking);
+};
+
+template <typename Scalar, typename Index,
+ int LhsStorageOrder, bool ConjugateLhs,
+ int RhsStorageOrder, bool ConjugateRhs>
+EIGEN_DONT_INLINE void product_selfadjoint_matrix<Scalar,Index,LhsStorageOrder,true,ConjugateLhs, RhsStorageOrder,false,ConjugateRhs,ColMajor>::run(
+ Index rows, Index cols,
+ const Scalar* _lhs, Index lhsStride,
+ const Scalar* _rhs, Index rhsStride,
+ Scalar* _res, Index resStride,
+ const Scalar& alpha, level3_blocking<Scalar,Scalar>& blocking)
+ {
+ Index size = rows;
+
+ typedef gebp_traits<Scalar,Scalar> Traits;
+
+ typedef const_blas_data_mapper<Scalar, Index, LhsStorageOrder> LhsMapper;
+ typedef const_blas_data_mapper<Scalar, Index, (LhsStorageOrder == RowMajor) ? ColMajor : RowMajor> LhsTransposeMapper;
+ typedef const_blas_data_mapper<Scalar, Index, RhsStorageOrder> RhsMapper;
+ typedef blas_data_mapper<typename Traits::ResScalar, Index, ColMajor> ResMapper;
+ LhsMapper lhs(_lhs,lhsStride);
+ LhsTransposeMapper lhs_transpose(_lhs,lhsStride);
+ RhsMapper rhs(_rhs,rhsStride);
+ ResMapper res(_res, resStride);
+
+ Index kc = blocking.kc(); // cache block size along the K direction
+ Index mc = (std::min)(rows,blocking.mc()); // cache block size along the M direction
+ // kc must be smaller than mc
+ kc = (std::min)(kc,mc);
+ std::size_t sizeA = kc*mc;
+ std::size_t sizeB = kc*cols;
+ ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
+ ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
+
+ gebp_kernel<Scalar, Scalar, Index, ResMapper, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs> gebp_kernel;
+ symm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, LhsStorageOrder> pack_lhs;
+ gemm_pack_rhs<Scalar, Index, RhsMapper, Traits::nr,RhsStorageOrder> pack_rhs;
+ gemm_pack_lhs<Scalar, Index, LhsTransposeMapper, Traits::mr, Traits::LhsProgress, LhsStorageOrder==RowMajor?ColMajor:RowMajor, true> pack_lhs_transposed;
+
+ for(Index k2=0; k2<size; k2+=kc)
+ {
+ const Index actual_kc = (std::min)(k2+kc,size)-k2;
+
+ // we have selected one row panel of rhs and one column panel of lhs
+ // pack rhs's panel into a sequential chunk of memory
+ // and expand each coeff to a constant packet for further reuse
+ pack_rhs(blockB, rhs.getSubMapper(k2,0), actual_kc, cols);
+
+ // the select lhs's panel has to be split in three different parts:
+ // 1 - the transposed panel above the diagonal block => transposed packed copy
+ // 2 - the diagonal block => special packed copy
+ // 3 - the panel below the diagonal block => generic packed copy
+ for(Index i2=0; i2<k2; i2+=mc)
+ {
+ const Index actual_mc = (std::min)(i2+mc,k2)-i2;
+ // transposed packed copy
+ pack_lhs_transposed(blockA, lhs_transpose.getSubMapper(i2, k2), actual_kc, actual_mc);
+
+ gebp_kernel(res.getSubMapper(i2, 0), blockA, blockB, actual_mc, actual_kc, cols, alpha);
+ }
+ // the block diagonal
+ {
+ const Index actual_mc = (std::min)(k2+kc,size)-k2;
+ // symmetric packed copy
+ pack_lhs(blockA, &lhs(k2,k2), lhsStride, actual_kc, actual_mc);
+
+ gebp_kernel(res.getSubMapper(k2, 0), blockA, blockB, actual_mc, actual_kc, cols, alpha);
+ }
+
+ for(Index i2=k2+kc; i2<size; i2+=mc)
+ {
+ const Index actual_mc = (std::min)(i2+mc,size)-i2;
+ gemm_pack_lhs<Scalar, Index, LhsMapper, Traits::mr, Traits::LhsProgress, LhsStorageOrder,false>()
+ (blockA, lhs.getSubMapper(i2, k2), actual_kc, actual_mc);
+
+ gebp_kernel(res.getSubMapper(i2, 0), blockA, blockB, actual_mc, actual_kc, cols, alpha);
+ }
+ }
+ }
+
+// matrix * selfadjoint product
+template <typename Scalar, typename Index,
+ int LhsStorageOrder, bool ConjugateLhs,
+ int RhsStorageOrder, bool ConjugateRhs>
+struct product_selfadjoint_matrix<Scalar,Index,LhsStorageOrder,false,ConjugateLhs, RhsStorageOrder,true,ConjugateRhs,ColMajor>
+{
+
+ static EIGEN_DONT_INLINE void run(
+ Index rows, Index cols,
+ const Scalar* _lhs, Index lhsStride,
+ const Scalar* _rhs, Index rhsStride,
+ Scalar* res, Index resStride,
+ const Scalar& alpha, level3_blocking<Scalar,Scalar>& blocking);
+};
+
+template <typename Scalar, typename Index,
+ int LhsStorageOrder, bool ConjugateLhs,
+ int RhsStorageOrder, bool ConjugateRhs>
+EIGEN_DONT_INLINE void product_selfadjoint_matrix<Scalar,Index,LhsStorageOrder,false,ConjugateLhs, RhsStorageOrder,true,ConjugateRhs,ColMajor>::run(
+ Index rows, Index cols,
+ const Scalar* _lhs, Index lhsStride,
+ const Scalar* _rhs, Index rhsStride,
+ Scalar* _res, Index resStride,
+ const Scalar& alpha, level3_blocking<Scalar,Scalar>& blocking)
+ {
+ Index size = cols;
+
+ typedef gebp_traits<Scalar,Scalar> Traits;
+
+ typedef const_blas_data_mapper<Scalar, Index, LhsStorageOrder> LhsMapper;
+ typedef blas_data_mapper<typename Traits::ResScalar, Index, ColMajor> ResMapper;
+ LhsMapper lhs(_lhs,lhsStride);
+ ResMapper res(_res,resStride);
+
+ Index kc = blocking.kc(); // cache block size along the K direction
+ Index mc = (std::min)(rows,blocking.mc()); // cache block size along the M direction
+ std::size_t sizeA = kc*mc;
+ std::size_t sizeB = kc*cols;
+ ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
+ ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
+
+ gebp_kernel<Scalar, Scalar, Index, ResMapper, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs> gebp_kernel;
+ gemm_pack_lhs<Scalar, Index, LhsMapper, Traits::mr, Traits::LhsProgress, LhsStorageOrder> pack_lhs;
+ symm_pack_rhs<Scalar, Index, Traits::nr,RhsStorageOrder> pack_rhs;
+
+ for(Index k2=0; k2<size; k2+=kc)
+ {
+ const Index actual_kc = (std::min)(k2+kc,size)-k2;
+
+ pack_rhs(blockB, _rhs, rhsStride, actual_kc, cols, k2);
+
+ // => GEPP
+ for(Index i2=0; i2<rows; i2+=mc)
+ {
+ const Index actual_mc = (std::min)(i2+mc,rows)-i2;
+ pack_lhs(blockA, lhs.getSubMapper(i2, k2), actual_kc, actual_mc);
+
+ gebp_kernel(res.getSubMapper(i2, 0), blockA, blockB, actual_mc, actual_kc, cols, alpha);
+ }
+ }
+ }
+
+} // end namespace internal
+
+/***************************************************************************
+* Wrapper to product_selfadjoint_matrix
+***************************************************************************/
+
+namespace internal {
+
+template<typename Lhs, int LhsMode, typename Rhs, int RhsMode>
+struct selfadjoint_product_impl<Lhs,LhsMode,false,Rhs,RhsMode,false>
+{
+ typedef typename Product<Lhs,Rhs>::Scalar Scalar;
+
+ typedef internal::blas_traits<Lhs> LhsBlasTraits;
+ typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhsType;
+ typedef internal::blas_traits<Rhs> RhsBlasTraits;
+ typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhsType;
+
+ enum {
+ LhsIsUpper = (LhsMode&(Upper|Lower))==Upper,
+ LhsIsSelfAdjoint = (LhsMode&SelfAdjoint)==SelfAdjoint,
+ RhsIsUpper = (RhsMode&(Upper|Lower))==Upper,
+ RhsIsSelfAdjoint = (RhsMode&SelfAdjoint)==SelfAdjoint
+ };
+
+ template<typename Dest>
+ static void run(Dest &dst, const Lhs &a_lhs, const Rhs &a_rhs, const Scalar& alpha)
+ {
+ eigen_assert(dst.rows()==a_lhs.rows() && dst.cols()==a_rhs.cols());
+
+ typename internal::add_const_on_value_type<ActualLhsType>::type lhs = LhsBlasTraits::extract(a_lhs);
+ typename internal::add_const_on_value_type<ActualRhsType>::type rhs = RhsBlasTraits::extract(a_rhs);
+
+ Scalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(a_lhs)
+ * RhsBlasTraits::extractScalarFactor(a_rhs);
+
+ typedef internal::gemm_blocking_space<(Dest::Flags&RowMajorBit) ? RowMajor : ColMajor,Scalar,Scalar,
+ Lhs::MaxRowsAtCompileTime, Rhs::MaxColsAtCompileTime, Lhs::MaxColsAtCompileTime,1> BlockingType;
+
+ BlockingType blocking(lhs.rows(), rhs.cols(), lhs.cols(), 1, false);
+
+ internal::product_selfadjoint_matrix<Scalar, Index,
+ EIGEN_LOGICAL_XOR(LhsIsUpper,internal::traits<Lhs>::Flags &RowMajorBit) ? RowMajor : ColMajor, LhsIsSelfAdjoint,
+ NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(LhsIsUpper,bool(LhsBlasTraits::NeedToConjugate)),
+ EIGEN_LOGICAL_XOR(RhsIsUpper,internal::traits<Rhs>::Flags &RowMajorBit) ? RowMajor : ColMajor, RhsIsSelfAdjoint,
+ NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(RhsIsUpper,bool(RhsBlasTraits::NeedToConjugate)),
+ internal::traits<Dest>::Flags&RowMajorBit ? RowMajor : ColMajor>
+ ::run(
+ lhs.rows(), rhs.cols(), // sizes
+ &lhs.coeffRef(0,0), lhs.outerStride(), // lhs info
+ &rhs.coeffRef(0,0), rhs.outerStride(), // rhs info
+ &dst.coeffRef(0,0), dst.outerStride(), // result info
+ actualAlpha, blocking // alpha
+ );
+ }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINT_MATRIX_MATRIX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h
new file mode 100644
index 000000000..a45238d69
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h
@@ -0,0 +1,275 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+ ********************************************************************************
+ * Content : Eigen bindings to BLAS F77
+ * Self adjoint matrix * matrix product functionality based on ?SYMM/?HEMM.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_SELFADJOINT_MATRIX_MATRIX_BLAS_H
+#define EIGEN_SELFADJOINT_MATRIX_MATRIX_BLAS_H
+
+namespace Eigen {
+
+namespace internal {
+
+
+/* Optimized selfadjoint matrix * matrix (?SYMM/?HEMM) product */
+
+#define EIGEN_BLAS_SYMM_L(EIGTYPE, BLASTYPE, EIGPREFIX, BLASPREFIX) \
+template <typename Index, \
+ int LhsStorageOrder, bool ConjugateLhs, \
+ int RhsStorageOrder, bool ConjugateRhs> \
+struct product_selfadjoint_matrix<EIGTYPE,Index,LhsStorageOrder,true,ConjugateLhs,RhsStorageOrder,false,ConjugateRhs,ColMajor> \
+{\
+\
+ static void run( \
+ Index rows, Index cols, \
+ const EIGTYPE* _lhs, Index lhsStride, \
+ const EIGTYPE* _rhs, Index rhsStride, \
+ EIGTYPE* res, Index resStride, \
+ EIGTYPE alpha, level3_blocking<EIGTYPE, EIGTYPE>& /*blocking*/) \
+ { \
+ char side='L', uplo='L'; \
+ BlasIndex m, n, lda, ldb, ldc; \
+ const EIGTYPE *a, *b; \
+ EIGTYPE beta(1); \
+ MatrixX##EIGPREFIX b_tmp; \
+\
+/* Set transpose options */ \
+/* Set m, n, k */ \
+ m = convert_index<BlasIndex>(rows); \
+ n = convert_index<BlasIndex>(cols); \
+\
+/* Set lda, ldb, ldc */ \
+ lda = convert_index<BlasIndex>(lhsStride); \
+ ldb = convert_index<BlasIndex>(rhsStride); \
+ ldc = convert_index<BlasIndex>(resStride); \
+\
+/* Set a, b, c */ \
+ if (LhsStorageOrder==RowMajor) uplo='U'; \
+ a = _lhs; \
+\
+ if (RhsStorageOrder==RowMajor) { \
+ Map<const MatrixX##EIGPREFIX, 0, OuterStride<> > rhs(_rhs,n,m,OuterStride<>(rhsStride)); \
+ b_tmp = rhs.adjoint(); \
+ b = b_tmp.data(); \
+ ldb = convert_index<BlasIndex>(b_tmp.outerStride()); \
+ } else b = _rhs; \
+\
+ BLASPREFIX##symm_(&side, &uplo, &m, &n, &numext::real_ref(alpha), (const BLASTYPE*)a, &lda, (const BLASTYPE*)b, &ldb, &numext::real_ref(beta), (BLASTYPE*)res, &ldc); \
+\
+ } \
+};
+
+
+#define EIGEN_BLAS_HEMM_L(EIGTYPE, BLASTYPE, EIGPREFIX, BLASPREFIX) \
+template <typename Index, \
+ int LhsStorageOrder, bool ConjugateLhs, \
+ int RhsStorageOrder, bool ConjugateRhs> \
+struct product_selfadjoint_matrix<EIGTYPE,Index,LhsStorageOrder,true,ConjugateLhs,RhsStorageOrder,false,ConjugateRhs,ColMajor> \
+{\
+ static void run( \
+ Index rows, Index cols, \
+ const EIGTYPE* _lhs, Index lhsStride, \
+ const EIGTYPE* _rhs, Index rhsStride, \
+ EIGTYPE* res, Index resStride, \
+ EIGTYPE alpha, level3_blocking<EIGTYPE, EIGTYPE>& /*blocking*/) \
+ { \
+ char side='L', uplo='L'; \
+ BlasIndex m, n, lda, ldb, ldc; \
+ const EIGTYPE *a, *b; \
+ EIGTYPE beta(1); \
+ MatrixX##EIGPREFIX b_tmp; \
+ Matrix<EIGTYPE, Dynamic, Dynamic, LhsStorageOrder> a_tmp; \
+\
+/* Set transpose options */ \
+/* Set m, n, k */ \
+ m = convert_index<BlasIndex>(rows); \
+ n = convert_index<BlasIndex>(cols); \
+\
+/* Set lda, ldb, ldc */ \
+ lda = convert_index<BlasIndex>(lhsStride); \
+ ldb = convert_index<BlasIndex>(rhsStride); \
+ ldc = convert_index<BlasIndex>(resStride); \
+\
+/* Set a, b, c */ \
+ if (((LhsStorageOrder==ColMajor) && ConjugateLhs) || ((LhsStorageOrder==RowMajor) && (!ConjugateLhs))) { \
+ Map<const Matrix<EIGTYPE, Dynamic, Dynamic, LhsStorageOrder>, 0, OuterStride<> > lhs(_lhs,m,m,OuterStride<>(lhsStride)); \
+ a_tmp = lhs.conjugate(); \
+ a = a_tmp.data(); \
+ lda = convert_index<BlasIndex>(a_tmp.outerStride()); \
+ } else a = _lhs; \
+ if (LhsStorageOrder==RowMajor) uplo='U'; \
+\
+ if (RhsStorageOrder==ColMajor && (!ConjugateRhs)) { \
+ b = _rhs; } \
+ else { \
+ if (RhsStorageOrder==ColMajor && ConjugateRhs) { \
+ Map<const MatrixX##EIGPREFIX, 0, OuterStride<> > rhs(_rhs,m,n,OuterStride<>(rhsStride)); \
+ b_tmp = rhs.conjugate(); \
+ } else \
+ if (ConjugateRhs) { \
+ Map<const MatrixX##EIGPREFIX, 0, OuterStride<> > rhs(_rhs,n,m,OuterStride<>(rhsStride)); \
+ b_tmp = rhs.adjoint(); \
+ } else { \
+ Map<const MatrixX##EIGPREFIX, 0, OuterStride<> > rhs(_rhs,n,m,OuterStride<>(rhsStride)); \
+ b_tmp = rhs.transpose(); \
+ } \
+ b = b_tmp.data(); \
+ ldb = convert_index<BlasIndex>(b_tmp.outerStride()); \
+ } \
+\
+ BLASPREFIX##hemm_(&side, &uplo, &m, &n, &numext::real_ref(alpha), (const BLASTYPE*)a, &lda, (const BLASTYPE*)b, &ldb, &numext::real_ref(beta), (BLASTYPE*)res, &ldc); \
+\
+ } \
+};
+
+EIGEN_BLAS_SYMM_L(double, double, d, d)
+EIGEN_BLAS_SYMM_L(float, float, f, s)
+EIGEN_BLAS_HEMM_L(dcomplex, double, cd, z)
+EIGEN_BLAS_HEMM_L(scomplex, float, cf, c)
+
+
+/* Optimized matrix * selfadjoint matrix (?SYMM/?HEMM) product */
+
+#define EIGEN_BLAS_SYMM_R(EIGTYPE, BLASTYPE, EIGPREFIX, BLASPREFIX) \
+template <typename Index, \
+ int LhsStorageOrder, bool ConjugateLhs, \
+ int RhsStorageOrder, bool ConjugateRhs> \
+struct product_selfadjoint_matrix<EIGTYPE,Index,LhsStorageOrder,false,ConjugateLhs,RhsStorageOrder,true,ConjugateRhs,ColMajor> \
+{\
+\
+ static void run( \
+ Index rows, Index cols, \
+ const EIGTYPE* _lhs, Index lhsStride, \
+ const EIGTYPE* _rhs, Index rhsStride, \
+ EIGTYPE* res, Index resStride, \
+ EIGTYPE alpha, level3_blocking<EIGTYPE, EIGTYPE>& /*blocking*/) \
+ { \
+ char side='R', uplo='L'; \
+ BlasIndex m, n, lda, ldb, ldc; \
+ const EIGTYPE *a, *b; \
+ EIGTYPE beta(1); \
+ MatrixX##EIGPREFIX b_tmp; \
+\
+/* Set m, n, k */ \
+ m = convert_index<BlasIndex>(rows); \
+ n = convert_index<BlasIndex>(cols); \
+\
+/* Set lda, ldb, ldc */ \
+ lda = convert_index<BlasIndex>(rhsStride); \
+ ldb = convert_index<BlasIndex>(lhsStride); \
+ ldc = convert_index<BlasIndex>(resStride); \
+\
+/* Set a, b, c */ \
+ if (RhsStorageOrder==RowMajor) uplo='U'; \
+ a = _rhs; \
+\
+ if (LhsStorageOrder==RowMajor) { \
+ Map<const MatrixX##EIGPREFIX, 0, OuterStride<> > lhs(_lhs,n,m,OuterStride<>(rhsStride)); \
+ b_tmp = lhs.adjoint(); \
+ b = b_tmp.data(); \
+ ldb = convert_index<BlasIndex>(b_tmp.outerStride()); \
+ } else b = _lhs; \
+\
+ BLASPREFIX##symm_(&side, &uplo, &m, &n, &numext::real_ref(alpha), (const BLASTYPE*)a, &lda, (const BLASTYPE*)b, &ldb, &numext::real_ref(beta), (BLASTYPE*)res, &ldc); \
+\
+ } \
+};
+
+
+#define EIGEN_BLAS_HEMM_R(EIGTYPE, BLASTYPE, EIGPREFIX, BLASPREFIX) \
+template <typename Index, \
+ int LhsStorageOrder, bool ConjugateLhs, \
+ int RhsStorageOrder, bool ConjugateRhs> \
+struct product_selfadjoint_matrix<EIGTYPE,Index,LhsStorageOrder,false,ConjugateLhs,RhsStorageOrder,true,ConjugateRhs,ColMajor> \
+{\
+ static void run( \
+ Index rows, Index cols, \
+ const EIGTYPE* _lhs, Index lhsStride, \
+ const EIGTYPE* _rhs, Index rhsStride, \
+ EIGTYPE* res, Index resStride, \
+ EIGTYPE alpha, level3_blocking<EIGTYPE, EIGTYPE>& /*blocking*/) \
+ { \
+ char side='R', uplo='L'; \
+ BlasIndex m, n, lda, ldb, ldc; \
+ const EIGTYPE *a, *b; \
+ EIGTYPE beta(1); \
+ MatrixX##EIGPREFIX b_tmp; \
+ Matrix<EIGTYPE, Dynamic, Dynamic, RhsStorageOrder> a_tmp; \
+\
+/* Set m, n, k */ \
+ m = convert_index<BlasIndex>(rows); \
+ n = convert_index<BlasIndex>(cols); \
+\
+/* Set lda, ldb, ldc */ \
+ lda = convert_index<BlasIndex>(rhsStride); \
+ ldb = convert_index<BlasIndex>(lhsStride); \
+ ldc = convert_index<BlasIndex>(resStride); \
+\
+/* Set a, b, c */ \
+ if (((RhsStorageOrder==ColMajor) && ConjugateRhs) || ((RhsStorageOrder==RowMajor) && (!ConjugateRhs))) { \
+ Map<const Matrix<EIGTYPE, Dynamic, Dynamic, RhsStorageOrder>, 0, OuterStride<> > rhs(_rhs,n,n,OuterStride<>(rhsStride)); \
+ a_tmp = rhs.conjugate(); \
+ a = a_tmp.data(); \
+ lda = convert_index<BlasIndex>(a_tmp.outerStride()); \
+ } else a = _rhs; \
+ if (RhsStorageOrder==RowMajor) uplo='U'; \
+\
+ if (LhsStorageOrder==ColMajor && (!ConjugateLhs)) { \
+ b = _lhs; } \
+ else { \
+ if (LhsStorageOrder==ColMajor && ConjugateLhs) { \
+ Map<const MatrixX##EIGPREFIX, 0, OuterStride<> > lhs(_lhs,m,n,OuterStride<>(lhsStride)); \
+ b_tmp = lhs.conjugate(); \
+ } else \
+ if (ConjugateLhs) { \
+ Map<const MatrixX##EIGPREFIX, 0, OuterStride<> > lhs(_lhs,n,m,OuterStride<>(lhsStride)); \
+ b_tmp = lhs.adjoint(); \
+ } else { \
+ Map<const MatrixX##EIGPREFIX, 0, OuterStride<> > lhs(_lhs,n,m,OuterStride<>(lhsStride)); \
+ b_tmp = lhs.transpose(); \
+ } \
+ b = b_tmp.data(); \
+ ldb = convert_index<BlasIndex>(b_tmp.outerStride()); \
+ } \
+\
+ BLASPREFIX##hemm_(&side, &uplo, &m, &n, &numext::real_ref(alpha), (const BLASTYPE*)a, &lda, (const BLASTYPE*)b, &ldb, &numext::real_ref(beta), (BLASTYPE*)res, &ldc); \
+ } \
+};
+
+EIGEN_BLAS_SYMM_R(double, double, d, d)
+EIGEN_BLAS_SYMM_R(float, float, f, s)
+EIGEN_BLAS_HEMM_R(dcomplex, double, cd, z)
+EIGEN_BLAS_HEMM_R(scomplex, float, cf, c)
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINT_MATRIX_MATRIX_BLAS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h
new file mode 100644
index 000000000..3fd180e6c
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h
@@ -0,0 +1,260 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELFADJOINT_MATRIX_VECTOR_H
+#define EIGEN_SELFADJOINT_MATRIX_VECTOR_H
+
+namespace Eigen {
+
+namespace internal {
+
+/* Optimized selfadjoint matrix * vector product:
+ * This algorithm processes 2 columns at onces that allows to both reduce
+ * the number of load/stores of the result by a factor 2 and to reduce
+ * the instruction dependency.
+ */
+
+template<typename Scalar, typename Index, int StorageOrder, int UpLo, bool ConjugateLhs, bool ConjugateRhs, int Version=Specialized>
+struct selfadjoint_matrix_vector_product;
+
+template<typename Scalar, typename Index, int StorageOrder, int UpLo, bool ConjugateLhs, bool ConjugateRhs, int Version>
+struct selfadjoint_matrix_vector_product
+
+{
+static EIGEN_DONT_INLINE void run(
+ Index size,
+ const Scalar* lhs, Index lhsStride,
+ const Scalar* rhs,
+ Scalar* res,
+ Scalar alpha);
+};
+
+template<typename Scalar, typename Index, int StorageOrder, int UpLo, bool ConjugateLhs, bool ConjugateRhs, int Version>
+EIGEN_DONT_INLINE void selfadjoint_matrix_vector_product<Scalar,Index,StorageOrder,UpLo,ConjugateLhs,ConjugateRhs,Version>::run(
+ Index size,
+ const Scalar* lhs, Index lhsStride,
+ const Scalar* rhs,
+ Scalar* res,
+ Scalar alpha)
+{
+ typedef typename packet_traits<Scalar>::type Packet;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ const Index PacketSize = sizeof(Packet)/sizeof(Scalar);
+
+ enum {
+ IsRowMajor = StorageOrder==RowMajor ? 1 : 0,
+ IsLower = UpLo == Lower ? 1 : 0,
+ FirstTriangular = IsRowMajor == IsLower
+ };
+
+ conj_helper<Scalar,Scalar,NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(ConjugateLhs, IsRowMajor), ConjugateRhs> cj0;
+ conj_helper<Scalar,Scalar,NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(ConjugateLhs, !IsRowMajor), ConjugateRhs> cj1;
+ conj_helper<RealScalar,Scalar,false, ConjugateRhs> cjd;
+
+ conj_helper<Packet,Packet,NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(ConjugateLhs, IsRowMajor), ConjugateRhs> pcj0;
+ conj_helper<Packet,Packet,NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(ConjugateLhs, !IsRowMajor), ConjugateRhs> pcj1;
+
+ Scalar cjAlpha = ConjugateRhs ? numext::conj(alpha) : alpha;
+
+
+ Index bound = (std::max)(Index(0),size-8) & 0xfffffffe;
+ if (FirstTriangular)
+ bound = size - bound;
+
+ for (Index j=FirstTriangular ? bound : 0;
+ j<(FirstTriangular ? size : bound);j+=2)
+ {
+ const Scalar* EIGEN_RESTRICT A0 = lhs + j*lhsStride;
+ const Scalar* EIGEN_RESTRICT A1 = lhs + (j+1)*lhsStride;
+
+ Scalar t0 = cjAlpha * rhs[j];
+ Packet ptmp0 = pset1<Packet>(t0);
+ Scalar t1 = cjAlpha * rhs[j+1];
+ Packet ptmp1 = pset1<Packet>(t1);
+
+ Scalar t2(0);
+ Packet ptmp2 = pset1<Packet>(t2);
+ Scalar t3(0);
+ Packet ptmp3 = pset1<Packet>(t3);
+
+ Index starti = FirstTriangular ? 0 : j+2;
+ Index endi = FirstTriangular ? j : size;
+ Index alignedStart = (starti) + internal::first_default_aligned(&res[starti], endi-starti);
+ Index alignedEnd = alignedStart + ((endi-alignedStart)/(PacketSize))*(PacketSize);
+
+ res[j] += cjd.pmul(numext::real(A0[j]), t0);
+ res[j+1] += cjd.pmul(numext::real(A1[j+1]), t1);
+ if(FirstTriangular)
+ {
+ res[j] += cj0.pmul(A1[j], t1);
+ t3 += cj1.pmul(A1[j], rhs[j]);
+ }
+ else
+ {
+ res[j+1] += cj0.pmul(A0[j+1],t0);
+ t2 += cj1.pmul(A0[j+1], rhs[j+1]);
+ }
+
+ for (Index i=starti; i<alignedStart; ++i)
+ {
+ res[i] += cj0.pmul(A0[i], t0) + cj0.pmul(A1[i],t1);
+ t2 += cj1.pmul(A0[i], rhs[i]);
+ t3 += cj1.pmul(A1[i], rhs[i]);
+ }
+ // Yes this an optimization for gcc 4.3 and 4.4 (=> huge speed up)
+ // gcc 4.2 does this optimization automatically.
+ const Scalar* EIGEN_RESTRICT a0It = A0 + alignedStart;
+ const Scalar* EIGEN_RESTRICT a1It = A1 + alignedStart;
+ const Scalar* EIGEN_RESTRICT rhsIt = rhs + alignedStart;
+ Scalar* EIGEN_RESTRICT resIt = res + alignedStart;
+ for (Index i=alignedStart; i<alignedEnd; i+=PacketSize)
+ {
+ Packet A0i = ploadu<Packet>(a0It); a0It += PacketSize;
+ Packet A1i = ploadu<Packet>(a1It); a1It += PacketSize;
+ Packet Bi = ploadu<Packet>(rhsIt); rhsIt += PacketSize; // FIXME should be aligned in most cases
+ Packet Xi = pload <Packet>(resIt);
+
+ Xi = pcj0.pmadd(A0i,ptmp0, pcj0.pmadd(A1i,ptmp1,Xi));
+ ptmp2 = pcj1.pmadd(A0i, Bi, ptmp2);
+ ptmp3 = pcj1.pmadd(A1i, Bi, ptmp3);
+ pstore(resIt,Xi); resIt += PacketSize;
+ }
+ for (Index i=alignedEnd; i<endi; i++)
+ {
+ res[i] += cj0.pmul(A0[i], t0) + cj0.pmul(A1[i],t1);
+ t2 += cj1.pmul(A0[i], rhs[i]);
+ t3 += cj1.pmul(A1[i], rhs[i]);
+ }
+
+ res[j] += alpha * (t2 + predux(ptmp2));
+ res[j+1] += alpha * (t3 + predux(ptmp3));
+ }
+ for (Index j=FirstTriangular ? 0 : bound;j<(FirstTriangular ? bound : size);j++)
+ {
+ const Scalar* EIGEN_RESTRICT A0 = lhs + j*lhsStride;
+
+ Scalar t1 = cjAlpha * rhs[j];
+ Scalar t2(0);
+ res[j] += cjd.pmul(numext::real(A0[j]), t1);
+ for (Index i=FirstTriangular ? 0 : j+1; i<(FirstTriangular ? j : size); i++)
+ {
+ res[i] += cj0.pmul(A0[i], t1);
+ t2 += cj1.pmul(A0[i], rhs[i]);
+ }
+ res[j] += alpha * t2;
+ }
+}
+
+} // end namespace internal
+
+/***************************************************************************
+* Wrapper to product_selfadjoint_vector
+***************************************************************************/
+
+namespace internal {
+
+template<typename Lhs, int LhsMode, typename Rhs>
+struct selfadjoint_product_impl<Lhs,LhsMode,false,Rhs,0,true>
+{
+ typedef typename Product<Lhs,Rhs>::Scalar Scalar;
+
+ typedef internal::blas_traits<Lhs> LhsBlasTraits;
+ typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhsType;
+ typedef typename internal::remove_all<ActualLhsType>::type ActualLhsTypeCleaned;
+
+ typedef internal::blas_traits<Rhs> RhsBlasTraits;
+ typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhsType;
+ typedef typename internal::remove_all<ActualRhsType>::type ActualRhsTypeCleaned;
+
+ enum { LhsUpLo = LhsMode&(Upper|Lower) };
+
+ template<typename Dest>
+ static void run(Dest& dest, const Lhs &a_lhs, const Rhs &a_rhs, const Scalar& alpha)
+ {
+ typedef typename Dest::Scalar ResScalar;
+ typedef typename Rhs::Scalar RhsScalar;
+ typedef Map<Matrix<ResScalar,Dynamic,1>, EIGEN_PLAIN_ENUM_MIN(AlignedMax,internal::packet_traits<ResScalar>::size)> MappedDest;
+
+ eigen_assert(dest.rows()==a_lhs.rows() && dest.cols()==a_rhs.cols());
+
+ typename internal::add_const_on_value_type<ActualLhsType>::type lhs = LhsBlasTraits::extract(a_lhs);
+ typename internal::add_const_on_value_type<ActualRhsType>::type rhs = RhsBlasTraits::extract(a_rhs);
+
+ Scalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(a_lhs)
+ * RhsBlasTraits::extractScalarFactor(a_rhs);
+
+ enum {
+ EvalToDest = (Dest::InnerStrideAtCompileTime==1),
+ UseRhs = (ActualRhsTypeCleaned::InnerStrideAtCompileTime==1)
+ };
+
+ internal::gemv_static_vector_if<ResScalar,Dest::SizeAtCompileTime,Dest::MaxSizeAtCompileTime,!EvalToDest> static_dest;
+ internal::gemv_static_vector_if<RhsScalar,ActualRhsTypeCleaned::SizeAtCompileTime,ActualRhsTypeCleaned::MaxSizeAtCompileTime,!UseRhs> static_rhs;
+
+ ei_declare_aligned_stack_constructed_variable(ResScalar,actualDestPtr,dest.size(),
+ EvalToDest ? dest.data() : static_dest.data());
+
+ ei_declare_aligned_stack_constructed_variable(RhsScalar,actualRhsPtr,rhs.size(),
+ UseRhs ? const_cast<RhsScalar*>(rhs.data()) : static_rhs.data());
+
+ if(!EvalToDest)
+ {
+ #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+ Index size = dest.size();
+ EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+ #endif
+ MappedDest(actualDestPtr, dest.size()) = dest;
+ }
+
+ if(!UseRhs)
+ {
+ #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+ Index size = rhs.size();
+ EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+ #endif
+ Map<typename ActualRhsTypeCleaned::PlainObject>(actualRhsPtr, rhs.size()) = rhs;
+ }
+
+
+ internal::selfadjoint_matrix_vector_product<Scalar, Index, (internal::traits<ActualLhsTypeCleaned>::Flags&RowMajorBit) ? RowMajor : ColMajor,
+ int(LhsUpLo), bool(LhsBlasTraits::NeedToConjugate), bool(RhsBlasTraits::NeedToConjugate)>::run
+ (
+ lhs.rows(), // size
+ &lhs.coeffRef(0,0), lhs.outerStride(), // lhs info
+ actualRhsPtr, // rhs info
+ actualDestPtr, // result info
+ actualAlpha // scale factor
+ );
+
+ if(!EvalToDest)
+ dest = MappedDest(actualDestPtr, dest.size());
+ }
+};
+
+template<typename Lhs, typename Rhs, int RhsMode>
+struct selfadjoint_product_impl<Lhs,0,true,Rhs,RhsMode,false>
+{
+ typedef typename Product<Lhs,Rhs>::Scalar Scalar;
+ enum { RhsUpLo = RhsMode&(Upper|Lower) };
+
+ template<typename Dest>
+ static void run(Dest& dest, const Lhs &a_lhs, const Rhs &a_rhs, const Scalar& alpha)
+ {
+ // let's simply transpose the product
+ Transpose<Dest> destT(dest);
+ selfadjoint_product_impl<Transpose<const Rhs>, int(RhsUpLo)==Upper ? Lower : Upper, false,
+ Transpose<const Lhs>, 0, true>::run(destT, a_rhs.transpose(), a_lhs.transpose(), alpha);
+ }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINT_MATRIX_VECTOR_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h
new file mode 100644
index 000000000..38f23accf
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h
@@ -0,0 +1,111 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ * Content : Eigen bindings to BLAS F77
+ * Selfadjoint matrix-vector product functionality based on ?SYMV/HEMV.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_SELFADJOINT_MATRIX_VECTOR_BLAS_H
+#define EIGEN_SELFADJOINT_MATRIX_VECTOR_BLAS_H
+
+namespace Eigen {
+
+namespace internal {
+
+/**********************************************************************
+* This file implements selfadjoint matrix-vector multiplication using BLAS
+**********************************************************************/
+
+// symv/hemv specialization
+
+template<typename Scalar, typename Index, int StorageOrder, int UpLo, bool ConjugateLhs, bool ConjugateRhs>
+struct selfadjoint_matrix_vector_product_symv :
+ selfadjoint_matrix_vector_product<Scalar,Index,StorageOrder,UpLo,ConjugateLhs,ConjugateRhs,BuiltIn> {};
+
+#define EIGEN_BLAS_SYMV_SPECIALIZE(Scalar) \
+template<typename Index, int StorageOrder, int UpLo, bool ConjugateLhs, bool ConjugateRhs> \
+struct selfadjoint_matrix_vector_product<Scalar,Index,StorageOrder,UpLo,ConjugateLhs,ConjugateRhs,Specialized> { \
+static void run( \
+ Index size, const Scalar* lhs, Index lhsStride, \
+ const Scalar* _rhs, Scalar* res, Scalar alpha) { \
+ enum {\
+ IsColMajor = StorageOrder==ColMajor \
+ }; \
+ if (IsColMajor == ConjugateLhs) {\
+ selfadjoint_matrix_vector_product<Scalar,Index,StorageOrder,UpLo,ConjugateLhs,ConjugateRhs,BuiltIn>::run( \
+ size, lhs, lhsStride, _rhs, res, alpha); \
+ } else {\
+ selfadjoint_matrix_vector_product_symv<Scalar,Index,StorageOrder,UpLo,ConjugateLhs,ConjugateRhs>::run( \
+ size, lhs, lhsStride, _rhs, res, alpha); \
+ }\
+ } \
+}; \
+
+EIGEN_BLAS_SYMV_SPECIALIZE(double)
+EIGEN_BLAS_SYMV_SPECIALIZE(float)
+EIGEN_BLAS_SYMV_SPECIALIZE(dcomplex)
+EIGEN_BLAS_SYMV_SPECIALIZE(scomplex)
+
+#define EIGEN_BLAS_SYMV_SPECIALIZATION(EIGTYPE,BLASTYPE,BLASFUNC) \
+template<typename Index, int StorageOrder, int UpLo, bool ConjugateLhs, bool ConjugateRhs> \
+struct selfadjoint_matrix_vector_product_symv<EIGTYPE,Index,StorageOrder,UpLo,ConjugateLhs,ConjugateRhs> \
+{ \
+typedef Matrix<EIGTYPE,Dynamic,1,ColMajor> SYMVVector;\
+\
+static void run( \
+Index size, const EIGTYPE* lhs, Index lhsStride, \
+const EIGTYPE* _rhs, EIGTYPE* res, EIGTYPE alpha) \
+{ \
+ enum {\
+ IsRowMajor = StorageOrder==RowMajor ? 1 : 0, \
+ IsLower = UpLo == Lower ? 1 : 0 \
+ }; \
+ BlasIndex n=convert_index<BlasIndex>(size), lda=convert_index<BlasIndex>(lhsStride), incx=1, incy=1; \
+ EIGTYPE beta(1); \
+ const EIGTYPE *x_ptr; \
+ char uplo=(IsRowMajor) ? (IsLower ? 'U' : 'L') : (IsLower ? 'L' : 'U'); \
+ SYMVVector x_tmp; \
+ if (ConjugateRhs) { \
+ Map<const SYMVVector, 0 > map_x(_rhs,size,1); \
+ x_tmp=map_x.conjugate(); \
+ x_ptr=x_tmp.data(); \
+ } else x_ptr=_rhs; \
+ BLASFUNC(&uplo, &n, &numext::real_ref(alpha), (const BLASTYPE*)lhs, &lda, (const BLASTYPE*)x_ptr, &incx, &numext::real_ref(beta), (BLASTYPE*)res, &incy); \
+}\
+};
+
+EIGEN_BLAS_SYMV_SPECIALIZATION(double, double, dsymv_)
+EIGEN_BLAS_SYMV_SPECIALIZATION(float, float, ssymv_)
+EIGEN_BLAS_SYMV_SPECIALIZATION(dcomplex, double, zhemv_)
+EIGEN_BLAS_SYMV_SPECIALIZATION(scomplex, float, chemv_)
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINT_MATRIX_VECTOR_BLAS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointProduct.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointProduct.h
new file mode 100644
index 000000000..f038d686f
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointProduct.h
@@ -0,0 +1,133 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELFADJOINT_PRODUCT_H
+#define EIGEN_SELFADJOINT_PRODUCT_H
+
+/**********************************************************************
+* This file implements a self adjoint product: C += A A^T updating only
+* half of the selfadjoint matrix C.
+* It corresponds to the level 3 SYRK and level 2 SYR Blas routines.
+**********************************************************************/
+
+namespace Eigen {
+
+
+template<typename Scalar, typename Index, int UpLo, bool ConjLhs, bool ConjRhs>
+struct selfadjoint_rank1_update<Scalar,Index,ColMajor,UpLo,ConjLhs,ConjRhs>
+{
+ static void run(Index size, Scalar* mat, Index stride, const Scalar* vecX, const Scalar* vecY, const Scalar& alpha)
+ {
+ internal::conj_if<ConjRhs> cj;
+ typedef Map<const Matrix<Scalar,Dynamic,1> > OtherMap;
+ typedef typename internal::conditional<ConjLhs,typename OtherMap::ConjugateReturnType,const OtherMap&>::type ConjLhsType;
+ for (Index i=0; i<size; ++i)
+ {
+ Map<Matrix<Scalar,Dynamic,1> >(mat+stride*i+(UpLo==Lower ? i : 0), (UpLo==Lower ? size-i : (i+1)))
+ += (alpha * cj(vecY[i])) * ConjLhsType(OtherMap(vecX+(UpLo==Lower ? i : 0),UpLo==Lower ? size-i : (i+1)));
+ }
+ }
+};
+
+template<typename Scalar, typename Index, int UpLo, bool ConjLhs, bool ConjRhs>
+struct selfadjoint_rank1_update<Scalar,Index,RowMajor,UpLo,ConjLhs,ConjRhs>
+{
+ static void run(Index size, Scalar* mat, Index stride, const Scalar* vecX, const Scalar* vecY, const Scalar& alpha)
+ {
+ selfadjoint_rank1_update<Scalar,Index,ColMajor,UpLo==Lower?Upper:Lower,ConjRhs,ConjLhs>::run(size,mat,stride,vecY,vecX,alpha);
+ }
+};
+
+template<typename MatrixType, typename OtherType, int UpLo, bool OtherIsVector = OtherType::IsVectorAtCompileTime>
+struct selfadjoint_product_selector;
+
+template<typename MatrixType, typename OtherType, int UpLo>
+struct selfadjoint_product_selector<MatrixType,OtherType,UpLo,true>
+{
+ static void run(MatrixType& mat, const OtherType& other, const typename MatrixType::Scalar& alpha)
+ {
+ typedef typename MatrixType::Scalar Scalar;
+ typedef internal::blas_traits<OtherType> OtherBlasTraits;
+ typedef typename OtherBlasTraits::DirectLinearAccessType ActualOtherType;
+ typedef typename internal::remove_all<ActualOtherType>::type _ActualOtherType;
+ typename internal::add_const_on_value_type<ActualOtherType>::type actualOther = OtherBlasTraits::extract(other.derived());
+
+ Scalar actualAlpha = alpha * OtherBlasTraits::extractScalarFactor(other.derived());
+
+ enum {
+ StorageOrder = (internal::traits<MatrixType>::Flags&RowMajorBit) ? RowMajor : ColMajor,
+ UseOtherDirectly = _ActualOtherType::InnerStrideAtCompileTime==1
+ };
+ internal::gemv_static_vector_if<Scalar,OtherType::SizeAtCompileTime,OtherType::MaxSizeAtCompileTime,!UseOtherDirectly> static_other;
+
+ ei_declare_aligned_stack_constructed_variable(Scalar, actualOtherPtr, other.size(),
+ (UseOtherDirectly ? const_cast<Scalar*>(actualOther.data()) : static_other.data()));
+
+ if(!UseOtherDirectly)
+ Map<typename _ActualOtherType::PlainObject>(actualOtherPtr, actualOther.size()) = actualOther;
+
+ selfadjoint_rank1_update<Scalar,Index,StorageOrder,UpLo,
+ OtherBlasTraits::NeedToConjugate && NumTraits<Scalar>::IsComplex,
+ (!OtherBlasTraits::NeedToConjugate) && NumTraits<Scalar>::IsComplex>
+ ::run(other.size(), mat.data(), mat.outerStride(), actualOtherPtr, actualOtherPtr, actualAlpha);
+ }
+};
+
+template<typename MatrixType, typename OtherType, int UpLo>
+struct selfadjoint_product_selector<MatrixType,OtherType,UpLo,false>
+{
+ static void run(MatrixType& mat, const OtherType& other, const typename MatrixType::Scalar& alpha)
+ {
+ typedef typename MatrixType::Scalar Scalar;
+ typedef internal::blas_traits<OtherType> OtherBlasTraits;
+ typedef typename OtherBlasTraits::DirectLinearAccessType ActualOtherType;
+ typedef typename internal::remove_all<ActualOtherType>::type _ActualOtherType;
+ typename internal::add_const_on_value_type<ActualOtherType>::type actualOther = OtherBlasTraits::extract(other.derived());
+
+ Scalar actualAlpha = alpha * OtherBlasTraits::extractScalarFactor(other.derived());
+
+ enum {
+ IsRowMajor = (internal::traits<MatrixType>::Flags&RowMajorBit) ? 1 : 0,
+ OtherIsRowMajor = _ActualOtherType::Flags&RowMajorBit ? 1 : 0
+ };
+
+ Index size = mat.cols();
+ Index depth = actualOther.cols();
+
+ typedef internal::gemm_blocking_space<IsRowMajor ? RowMajor : ColMajor,Scalar,Scalar,
+ MatrixType::MaxColsAtCompileTime, MatrixType::MaxColsAtCompileTime, _ActualOtherType::MaxColsAtCompileTime> BlockingType;
+
+ BlockingType blocking(size, size, depth, 1, false);
+
+
+ internal::general_matrix_matrix_triangular_product<Index,
+ Scalar, OtherIsRowMajor ? RowMajor : ColMajor, OtherBlasTraits::NeedToConjugate && NumTraits<Scalar>::IsComplex,
+ Scalar, OtherIsRowMajor ? ColMajor : RowMajor, (!OtherBlasTraits::NeedToConjugate) && NumTraits<Scalar>::IsComplex,
+ IsRowMajor ? RowMajor : ColMajor, UpLo>
+ ::run(size, depth,
+ &actualOther.coeffRef(0,0), actualOther.outerStride(), &actualOther.coeffRef(0,0), actualOther.outerStride(),
+ mat.data(), mat.outerStride(), actualAlpha, blocking);
+ }
+};
+
+// high level API
+
+template<typename MatrixType, unsigned int UpLo>
+template<typename DerivedU>
+SelfAdjointView<MatrixType,UpLo>& SelfAdjointView<MatrixType,UpLo>
+::rankUpdate(const MatrixBase<DerivedU>& u, const Scalar& alpha)
+{
+ selfadjoint_product_selector<MatrixType,DerivedU,UpLo>::run(_expression().const_cast_derived(), u.derived(), alpha);
+
+ return *this;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINT_PRODUCT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h
new file mode 100644
index 000000000..2ae364111
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h
@@ -0,0 +1,93 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELFADJOINTRANK2UPTADE_H
+#define EIGEN_SELFADJOINTRANK2UPTADE_H
+
+namespace Eigen {
+
+namespace internal {
+
+/* Optimized selfadjoint matrix += alpha * uv' + conj(alpha)*vu'
+ * It corresponds to the Level2 syr2 BLAS routine
+ */
+
+template<typename Scalar, typename Index, typename UType, typename VType, int UpLo>
+struct selfadjoint_rank2_update_selector;
+
+template<typename Scalar, typename Index, typename UType, typename VType>
+struct selfadjoint_rank2_update_selector<Scalar,Index,UType,VType,Lower>
+{
+ static void run(Scalar* mat, Index stride, const UType& u, const VType& v, const Scalar& alpha)
+ {
+ const Index size = u.size();
+ for (Index i=0; i<size; ++i)
+ {
+ Map<Matrix<Scalar,Dynamic,1> >(mat+stride*i+i, size-i) +=
+ (numext::conj(alpha) * numext::conj(u.coeff(i))) * v.tail(size-i)
+ + (alpha * numext::conj(v.coeff(i))) * u.tail(size-i);
+ }
+ }
+};
+
+template<typename Scalar, typename Index, typename UType, typename VType>
+struct selfadjoint_rank2_update_selector<Scalar,Index,UType,VType,Upper>
+{
+ static void run(Scalar* mat, Index stride, const UType& u, const VType& v, const Scalar& alpha)
+ {
+ const Index size = u.size();
+ for (Index i=0; i<size; ++i)
+ Map<Matrix<Scalar,Dynamic,1> >(mat+stride*i, i+1) +=
+ (numext::conj(alpha) * numext::conj(u.coeff(i))) * v.head(i+1)
+ + (alpha * numext::conj(v.coeff(i))) * u.head(i+1);
+ }
+};
+
+template<bool Cond, typename T> struct conj_expr_if
+ : conditional<!Cond, const T&,
+ CwiseUnaryOp<scalar_conjugate_op<typename traits<T>::Scalar>,T> > {};
+
+} // end namespace internal
+
+template<typename MatrixType, unsigned int UpLo>
+template<typename DerivedU, typename DerivedV>
+SelfAdjointView<MatrixType,UpLo>& SelfAdjointView<MatrixType,UpLo>
+::rankUpdate(const MatrixBase<DerivedU>& u, const MatrixBase<DerivedV>& v, const Scalar& alpha)
+{
+ typedef internal::blas_traits<DerivedU> UBlasTraits;
+ typedef typename UBlasTraits::DirectLinearAccessType ActualUType;
+ typedef typename internal::remove_all<ActualUType>::type _ActualUType;
+ typename internal::add_const_on_value_type<ActualUType>::type actualU = UBlasTraits::extract(u.derived());
+
+ typedef internal::blas_traits<DerivedV> VBlasTraits;
+ typedef typename VBlasTraits::DirectLinearAccessType ActualVType;
+ typedef typename internal::remove_all<ActualVType>::type _ActualVType;
+ typename internal::add_const_on_value_type<ActualVType>::type actualV = VBlasTraits::extract(v.derived());
+
+ // If MatrixType is row major, then we use the routine for lower triangular in the upper triangular case and
+ // vice versa, and take the complex conjugate of all coefficients and vector entries.
+
+ enum { IsRowMajor = (internal::traits<MatrixType>::Flags&RowMajorBit) ? 1 : 0 };
+ Scalar actualAlpha = alpha * UBlasTraits::extractScalarFactor(u.derived())
+ * numext::conj(VBlasTraits::extractScalarFactor(v.derived()));
+ if (IsRowMajor)
+ actualAlpha = numext::conj(actualAlpha);
+
+ typedef typename internal::remove_all<typename internal::conj_expr_if<IsRowMajor ^ UBlasTraits::NeedToConjugate,_ActualUType>::type>::type UType;
+ typedef typename internal::remove_all<typename internal::conj_expr_if<IsRowMajor ^ VBlasTraits::NeedToConjugate,_ActualVType>::type>::type VType;
+ internal::selfadjoint_rank2_update_selector<Scalar, Index, UType, VType,
+ (IsRowMajor ? int(UpLo==Upper ? Lower : Upper) : UpLo)>
+ ::run(_expression().const_cast_derived().data(),_expression().outerStride(),UType(actualU),VType(actualV),actualAlpha);
+
+ return *this;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINTRANK2UPTADE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h
new file mode 100644
index 000000000..6ec5a8a0b
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h
@@ -0,0 +1,441 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRIANGULAR_MATRIX_MATRIX_H
+#define EIGEN_TRIANGULAR_MATRIX_MATRIX_H
+
+namespace Eigen {
+
+namespace internal {
+
+// template<typename Scalar, int mr, int StorageOrder, bool Conjugate, int Mode>
+// struct gemm_pack_lhs_triangular
+// {
+// Matrix<Scalar,mr,mr,
+// void operator()(Scalar* blockA, const EIGEN_RESTRICT Scalar* _lhs, int lhsStride, int depth, int rows)
+// {
+// conj_if<NumTraits<Scalar>::IsComplex && Conjugate> cj;
+// const_blas_data_mapper<Scalar, StorageOrder> lhs(_lhs,lhsStride);
+// int count = 0;
+// const int peeled_mc = (rows/mr)*mr;
+// for(int i=0; i<peeled_mc; i+=mr)
+// {
+// for(int k=0; k<depth; k++)
+// for(int w=0; w<mr; w++)
+// blockA[count++] = cj(lhs(i+w, k));
+// }
+// for(int i=peeled_mc; i<rows; i++)
+// {
+// for(int k=0; k<depth; k++)
+// blockA[count++] = cj(lhs(i, k));
+// }
+// }
+// };
+
+/* Optimized triangular matrix * matrix (_TRMM++) product built on top of
+ * the general matrix matrix product.
+ */
+template <typename Scalar, typename Index,
+ int Mode, bool LhsIsTriangular,
+ int LhsStorageOrder, bool ConjugateLhs,
+ int RhsStorageOrder, bool ConjugateRhs,
+ int ResStorageOrder, int Version = Specialized>
+struct product_triangular_matrix_matrix;
+
+template <typename Scalar, typename Index,
+ int Mode, bool LhsIsTriangular,
+ int LhsStorageOrder, bool ConjugateLhs,
+ int RhsStorageOrder, bool ConjugateRhs, int Version>
+struct product_triangular_matrix_matrix<Scalar,Index,Mode,LhsIsTriangular,
+ LhsStorageOrder,ConjugateLhs,
+ RhsStorageOrder,ConjugateRhs,RowMajor,Version>
+{
+ static EIGEN_STRONG_INLINE void run(
+ Index rows, Index cols, Index depth,
+ const Scalar* lhs, Index lhsStride,
+ const Scalar* rhs, Index rhsStride,
+ Scalar* res, Index resStride,
+ const Scalar& alpha, level3_blocking<Scalar,Scalar>& blocking)
+ {
+ product_triangular_matrix_matrix<Scalar, Index,
+ (Mode&(UnitDiag|ZeroDiag)) | ((Mode&Upper) ? Lower : Upper),
+ (!LhsIsTriangular),
+ RhsStorageOrder==RowMajor ? ColMajor : RowMajor,
+ ConjugateRhs,
+ LhsStorageOrder==RowMajor ? ColMajor : RowMajor,
+ ConjugateLhs,
+ ColMajor>
+ ::run(cols, rows, depth, rhs, rhsStride, lhs, lhsStride, res, resStride, alpha, blocking);
+ }
+};
+
+// implements col-major += alpha * op(triangular) * op(general)
+template <typename Scalar, typename Index, int Mode,
+ int LhsStorageOrder, bool ConjugateLhs,
+ int RhsStorageOrder, bool ConjugateRhs, int Version>
+struct product_triangular_matrix_matrix<Scalar,Index,Mode,true,
+ LhsStorageOrder,ConjugateLhs,
+ RhsStorageOrder,ConjugateRhs,ColMajor,Version>
+{
+
+ typedef gebp_traits<Scalar,Scalar> Traits;
+ enum {
+ SmallPanelWidth = 2 * EIGEN_PLAIN_ENUM_MAX(Traits::mr,Traits::nr),
+ IsLower = (Mode&Lower) == Lower,
+ SetDiag = (Mode&(ZeroDiag|UnitDiag)) ? 0 : 1
+ };
+
+ static EIGEN_DONT_INLINE void run(
+ Index _rows, Index _cols, Index _depth,
+ const Scalar* _lhs, Index lhsStride,
+ const Scalar* _rhs, Index rhsStride,
+ Scalar* res, Index resStride,
+ const Scalar& alpha, level3_blocking<Scalar,Scalar>& blocking);
+};
+
+template <typename Scalar, typename Index, int Mode,
+ int LhsStorageOrder, bool ConjugateLhs,
+ int RhsStorageOrder, bool ConjugateRhs, int Version>
+EIGEN_DONT_INLINE void product_triangular_matrix_matrix<Scalar,Index,Mode,true,
+ LhsStorageOrder,ConjugateLhs,
+ RhsStorageOrder,ConjugateRhs,ColMajor,Version>::run(
+ Index _rows, Index _cols, Index _depth,
+ const Scalar* _lhs, Index lhsStride,
+ const Scalar* _rhs, Index rhsStride,
+ Scalar* _res, Index resStride,
+ const Scalar& alpha, level3_blocking<Scalar,Scalar>& blocking)
+ {
+ // strip zeros
+ Index diagSize = (std::min)(_rows,_depth);
+ Index rows = IsLower ? _rows : diagSize;
+ Index depth = IsLower ? diagSize : _depth;
+ Index cols = _cols;
+
+ typedef const_blas_data_mapper<Scalar, Index, LhsStorageOrder> LhsMapper;
+ typedef const_blas_data_mapper<Scalar, Index, RhsStorageOrder> RhsMapper;
+ typedef blas_data_mapper<typename Traits::ResScalar, Index, ColMajor> ResMapper;
+ LhsMapper lhs(_lhs,lhsStride);
+ RhsMapper rhs(_rhs,rhsStride);
+ ResMapper res(_res, resStride);
+
+ Index kc = blocking.kc(); // cache block size along the K direction
+ Index mc = (std::min)(rows,blocking.mc()); // cache block size along the M direction
+ // The small panel size must not be larger than blocking size.
+ // Usually this should never be the case because SmallPanelWidth^2 is very small
+ // compared to L2 cache size, but let's be safe:
+ Index panelWidth = (std::min)(Index(SmallPanelWidth),(std::min)(kc,mc));
+
+ std::size_t sizeA = kc*mc;
+ std::size_t sizeB = kc*cols;
+
+ ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
+ ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
+
+ Matrix<Scalar,SmallPanelWidth,SmallPanelWidth,LhsStorageOrder> triangularBuffer((internal::constructor_without_unaligned_array_assert()));
+ triangularBuffer.setZero();
+ if((Mode&ZeroDiag)==ZeroDiag)
+ triangularBuffer.diagonal().setZero();
+ else
+ triangularBuffer.diagonal().setOnes();
+
+ gebp_kernel<Scalar, Scalar, Index, ResMapper, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs> gebp_kernel;
+ gemm_pack_lhs<Scalar, Index, LhsMapper, Traits::mr, Traits::LhsProgress, LhsStorageOrder> pack_lhs;
+ gemm_pack_rhs<Scalar, Index, RhsMapper, Traits::nr,RhsStorageOrder> pack_rhs;
+
+ for(Index k2=IsLower ? depth : 0;
+ IsLower ? k2>0 : k2<depth;
+ IsLower ? k2-=kc : k2+=kc)
+ {
+ Index actual_kc = (std::min)(IsLower ? k2 : depth-k2, kc);
+ Index actual_k2 = IsLower ? k2-actual_kc : k2;
+
+ // align blocks with the end of the triangular part for trapezoidal lhs
+ if((!IsLower)&&(k2<rows)&&(k2+actual_kc>rows))
+ {
+ actual_kc = rows-k2;
+ k2 = k2+actual_kc-kc;
+ }
+
+ pack_rhs(blockB, rhs.getSubMapper(actual_k2,0), actual_kc, cols);
+
+ // the selected lhs's panel has to be split in three different parts:
+ // 1 - the part which is zero => skip it
+ // 2 - the diagonal block => special kernel
+ // 3 - the dense panel below (lower case) or above (upper case) the diagonal block => GEPP
+
+ // the block diagonal, if any:
+ if(IsLower || actual_k2<rows)
+ {
+ // for each small vertical panels of lhs
+ for (Index k1=0; k1<actual_kc; k1+=panelWidth)
+ {
+ Index actualPanelWidth = std::min<Index>(actual_kc-k1, panelWidth);
+ Index lengthTarget = IsLower ? actual_kc-k1-actualPanelWidth : k1;
+ Index startBlock = actual_k2+k1;
+ Index blockBOffset = k1;
+
+ // => GEBP with the micro triangular block
+ // The trick is to pack this micro block while filling the opposite triangular part with zeros.
+ // To this end we do an extra triangular copy to a small temporary buffer
+ for (Index k=0;k<actualPanelWidth;++k)
+ {
+ if (SetDiag)
+ triangularBuffer.coeffRef(k,k) = lhs(startBlock+k,startBlock+k);
+ for (Index i=IsLower ? k+1 : 0; IsLower ? i<actualPanelWidth : i<k; ++i)
+ triangularBuffer.coeffRef(i,k) = lhs(startBlock+i,startBlock+k);
+ }
+ pack_lhs(blockA, LhsMapper(triangularBuffer.data(), triangularBuffer.outerStride()), actualPanelWidth, actualPanelWidth);
+
+ gebp_kernel(res.getSubMapper(startBlock, 0), blockA, blockB,
+ actualPanelWidth, actualPanelWidth, cols, alpha,
+ actualPanelWidth, actual_kc, 0, blockBOffset);
+
+ // GEBP with remaining micro panel
+ if (lengthTarget>0)
+ {
+ Index startTarget = IsLower ? actual_k2+k1+actualPanelWidth : actual_k2;
+
+ pack_lhs(blockA, lhs.getSubMapper(startTarget,startBlock), actualPanelWidth, lengthTarget);
+
+ gebp_kernel(res.getSubMapper(startTarget, 0), blockA, blockB,
+ lengthTarget, actualPanelWidth, cols, alpha,
+ actualPanelWidth, actual_kc, 0, blockBOffset);
+ }
+ }
+ }
+ // the part below (lower case) or above (upper case) the diagonal => GEPP
+ {
+ Index start = IsLower ? k2 : 0;
+ Index end = IsLower ? rows : (std::min)(actual_k2,rows);
+ for(Index i2=start; i2<end; i2+=mc)
+ {
+ const Index actual_mc = (std::min)(i2+mc,end)-i2;
+ gemm_pack_lhs<Scalar, Index, LhsMapper, Traits::mr,Traits::LhsProgress, LhsStorageOrder,false>()
+ (blockA, lhs.getSubMapper(i2, actual_k2), actual_kc, actual_mc);
+
+ gebp_kernel(res.getSubMapper(i2, 0), blockA, blockB, actual_mc,
+ actual_kc, cols, alpha, -1, -1, 0, 0);
+ }
+ }
+ }
+ }
+
+// implements col-major += alpha * op(general) * op(triangular)
+template <typename Scalar, typename Index, int Mode,
+ int LhsStorageOrder, bool ConjugateLhs,
+ int RhsStorageOrder, bool ConjugateRhs, int Version>
+struct product_triangular_matrix_matrix<Scalar,Index,Mode,false,
+ LhsStorageOrder,ConjugateLhs,
+ RhsStorageOrder,ConjugateRhs,ColMajor,Version>
+{
+ typedef gebp_traits<Scalar,Scalar> Traits;
+ enum {
+ SmallPanelWidth = EIGEN_PLAIN_ENUM_MAX(Traits::mr,Traits::nr),
+ IsLower = (Mode&Lower) == Lower,
+ SetDiag = (Mode&(ZeroDiag|UnitDiag)) ? 0 : 1
+ };
+
+ static EIGEN_DONT_INLINE void run(
+ Index _rows, Index _cols, Index _depth,
+ const Scalar* _lhs, Index lhsStride,
+ const Scalar* _rhs, Index rhsStride,
+ Scalar* res, Index resStride,
+ const Scalar& alpha, level3_blocking<Scalar,Scalar>& blocking);
+};
+
+template <typename Scalar, typename Index, int Mode,
+ int LhsStorageOrder, bool ConjugateLhs,
+ int RhsStorageOrder, bool ConjugateRhs, int Version>
+EIGEN_DONT_INLINE void product_triangular_matrix_matrix<Scalar,Index,Mode,false,
+ LhsStorageOrder,ConjugateLhs,
+ RhsStorageOrder,ConjugateRhs,ColMajor,Version>::run(
+ Index _rows, Index _cols, Index _depth,
+ const Scalar* _lhs, Index lhsStride,
+ const Scalar* _rhs, Index rhsStride,
+ Scalar* _res, Index resStride,
+ const Scalar& alpha, level3_blocking<Scalar,Scalar>& blocking)
+ {
+ const Index PacketBytes = packet_traits<Scalar>::size*sizeof(Scalar);
+ // strip zeros
+ Index diagSize = (std::min)(_cols,_depth);
+ Index rows = _rows;
+ Index depth = IsLower ? _depth : diagSize;
+ Index cols = IsLower ? diagSize : _cols;
+
+ typedef const_blas_data_mapper<Scalar, Index, LhsStorageOrder> LhsMapper;
+ typedef const_blas_data_mapper<Scalar, Index, RhsStorageOrder> RhsMapper;
+ typedef blas_data_mapper<typename Traits::ResScalar, Index, ColMajor> ResMapper;
+ LhsMapper lhs(_lhs,lhsStride);
+ RhsMapper rhs(_rhs,rhsStride);
+ ResMapper res(_res, resStride);
+
+ Index kc = blocking.kc(); // cache block size along the K direction
+ Index mc = (std::min)(rows,blocking.mc()); // cache block size along the M direction
+
+ std::size_t sizeA = kc*mc;
+ std::size_t sizeB = kc*cols+EIGEN_MAX_ALIGN_BYTES/sizeof(Scalar);
+
+ ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
+ ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
+
+ Matrix<Scalar,SmallPanelWidth,SmallPanelWidth,RhsStorageOrder> triangularBuffer((internal::constructor_without_unaligned_array_assert()));
+ triangularBuffer.setZero();
+ if((Mode&ZeroDiag)==ZeroDiag)
+ triangularBuffer.diagonal().setZero();
+ else
+ triangularBuffer.diagonal().setOnes();
+
+ gebp_kernel<Scalar, Scalar, Index, ResMapper, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs> gebp_kernel;
+ gemm_pack_lhs<Scalar, Index, LhsMapper, Traits::mr, Traits::LhsProgress, LhsStorageOrder> pack_lhs;
+ gemm_pack_rhs<Scalar, Index, RhsMapper, Traits::nr,RhsStorageOrder> pack_rhs;
+ gemm_pack_rhs<Scalar, Index, RhsMapper, Traits::nr,RhsStorageOrder,false,true> pack_rhs_panel;
+
+ for(Index k2=IsLower ? 0 : depth;
+ IsLower ? k2<depth : k2>0;
+ IsLower ? k2+=kc : k2-=kc)
+ {
+ Index actual_kc = (std::min)(IsLower ? depth-k2 : k2, kc);
+ Index actual_k2 = IsLower ? k2 : k2-actual_kc;
+
+ // align blocks with the end of the triangular part for trapezoidal rhs
+ if(IsLower && (k2<cols) && (actual_k2+actual_kc>cols))
+ {
+ actual_kc = cols-k2;
+ k2 = actual_k2 + actual_kc - kc;
+ }
+
+ // remaining size
+ Index rs = IsLower ? (std::min)(cols,actual_k2) : cols - k2;
+ // size of the triangular part
+ Index ts = (IsLower && actual_k2>=cols) ? 0 : actual_kc;
+
+ Scalar* geb = blockB+ts*ts;
+ geb = geb + internal::first_aligned<PacketBytes>(geb,PacketBytes/sizeof(Scalar));
+
+ pack_rhs(geb, rhs.getSubMapper(actual_k2,IsLower ? 0 : k2), actual_kc, rs);
+
+ // pack the triangular part of the rhs padding the unrolled blocks with zeros
+ if(ts>0)
+ {
+ for (Index j2=0; j2<actual_kc; j2+=SmallPanelWidth)
+ {
+ Index actualPanelWidth = std::min<Index>(actual_kc-j2, SmallPanelWidth);
+ Index actual_j2 = actual_k2 + j2;
+ Index panelOffset = IsLower ? j2+actualPanelWidth : 0;
+ Index panelLength = IsLower ? actual_kc-j2-actualPanelWidth : j2;
+ // general part
+ pack_rhs_panel(blockB+j2*actual_kc,
+ rhs.getSubMapper(actual_k2+panelOffset, actual_j2),
+ panelLength, actualPanelWidth,
+ actual_kc, panelOffset);
+
+ // append the triangular part via a temporary buffer
+ for (Index j=0;j<actualPanelWidth;++j)
+ {
+ if (SetDiag)
+ triangularBuffer.coeffRef(j,j) = rhs(actual_j2+j,actual_j2+j);
+ for (Index k=IsLower ? j+1 : 0; IsLower ? k<actualPanelWidth : k<j; ++k)
+ triangularBuffer.coeffRef(k,j) = rhs(actual_j2+k,actual_j2+j);
+ }
+
+ pack_rhs_panel(blockB+j2*actual_kc,
+ RhsMapper(triangularBuffer.data(), triangularBuffer.outerStride()),
+ actualPanelWidth, actualPanelWidth,
+ actual_kc, j2);
+ }
+ }
+
+ for (Index i2=0; i2<rows; i2+=mc)
+ {
+ const Index actual_mc = (std::min)(mc,rows-i2);
+ pack_lhs(blockA, lhs.getSubMapper(i2, actual_k2), actual_kc, actual_mc);
+
+ // triangular kernel
+ if(ts>0)
+ {
+ for (Index j2=0; j2<actual_kc; j2+=SmallPanelWidth)
+ {
+ Index actualPanelWidth = std::min<Index>(actual_kc-j2, SmallPanelWidth);
+ Index panelLength = IsLower ? actual_kc-j2 : j2+actualPanelWidth;
+ Index blockOffset = IsLower ? j2 : 0;
+
+ gebp_kernel(res.getSubMapper(i2, actual_k2 + j2),
+ blockA, blockB+j2*actual_kc,
+ actual_mc, panelLength, actualPanelWidth,
+ alpha,
+ actual_kc, actual_kc, // strides
+ blockOffset, blockOffset);// offsets
+ }
+ }
+ gebp_kernel(res.getSubMapper(i2, IsLower ? 0 : k2),
+ blockA, geb, actual_mc, actual_kc, rs,
+ alpha,
+ -1, -1, 0, 0);
+ }
+ }
+ }
+
+/***************************************************************************
+* Wrapper to product_triangular_matrix_matrix
+***************************************************************************/
+
+} // end namespace internal
+
+namespace internal {
+template<int Mode, bool LhsIsTriangular, typename Lhs, typename Rhs>
+struct triangular_product_impl<Mode,LhsIsTriangular,Lhs,false,Rhs,false>
+{
+ template<typename Dest> static void run(Dest& dst, const Lhs &a_lhs, const Rhs &a_rhs, const typename Dest::Scalar& alpha)
+ {
+ typedef typename Dest::Scalar Scalar;
+
+ typedef internal::blas_traits<Lhs> LhsBlasTraits;
+ typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhsType;
+ typedef typename internal::remove_all<ActualLhsType>::type ActualLhsTypeCleaned;
+ typedef internal::blas_traits<Rhs> RhsBlasTraits;
+ typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhsType;
+ typedef typename internal::remove_all<ActualRhsType>::type ActualRhsTypeCleaned;
+
+ typename internal::add_const_on_value_type<ActualLhsType>::type lhs = LhsBlasTraits::extract(a_lhs);
+ typename internal::add_const_on_value_type<ActualRhsType>::type rhs = RhsBlasTraits::extract(a_rhs);
+
+ Scalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(a_lhs)
+ * RhsBlasTraits::extractScalarFactor(a_rhs);
+
+ typedef internal::gemm_blocking_space<(Dest::Flags&RowMajorBit) ? RowMajor : ColMajor,Scalar,Scalar,
+ Lhs::MaxRowsAtCompileTime, Rhs::MaxColsAtCompileTime, Lhs::MaxColsAtCompileTime,4> BlockingType;
+
+ enum { IsLower = (Mode&Lower) == Lower };
+ Index stripedRows = ((!LhsIsTriangular) || (IsLower)) ? lhs.rows() : (std::min)(lhs.rows(),lhs.cols());
+ Index stripedCols = ((LhsIsTriangular) || (!IsLower)) ? rhs.cols() : (std::min)(rhs.cols(),rhs.rows());
+ Index stripedDepth = LhsIsTriangular ? ((!IsLower) ? lhs.cols() : (std::min)(lhs.cols(),lhs.rows()))
+ : ((IsLower) ? rhs.rows() : (std::min)(rhs.rows(),rhs.cols()));
+
+ BlockingType blocking(stripedRows, stripedCols, stripedDepth, 1, false);
+
+ internal::product_triangular_matrix_matrix<Scalar, Index,
+ Mode, LhsIsTriangular,
+ (internal::traits<ActualLhsTypeCleaned>::Flags&RowMajorBit) ? RowMajor : ColMajor, LhsBlasTraits::NeedToConjugate,
+ (internal::traits<ActualRhsTypeCleaned>::Flags&RowMajorBit) ? RowMajor : ColMajor, RhsBlasTraits::NeedToConjugate,
+ (internal::traits<Dest >::Flags&RowMajorBit) ? RowMajor : ColMajor>
+ ::run(
+ stripedRows, stripedCols, stripedDepth, // sizes
+ &lhs.coeffRef(0,0), lhs.outerStride(), // lhs info
+ &rhs.coeffRef(0,0), rhs.outerStride(), // rhs info
+ &dst.coeffRef(0,0), dst.outerStride(), // result info
+ actualAlpha, blocking
+ );
+ }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIANGULAR_MATRIX_MATRIX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h
new file mode 100644
index 000000000..aecded6bb
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h
@@ -0,0 +1,302 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ * Content : Eigen bindings to BLAS F77
+ * Triangular matrix * matrix product functionality based on ?TRMM.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_TRIANGULAR_MATRIX_MATRIX_BLAS_H
+#define EIGEN_TRIANGULAR_MATRIX_MATRIX_BLAS_H
+
+namespace Eigen {
+
+namespace internal {
+
+
+template <typename Scalar, typename Index,
+ int Mode, bool LhsIsTriangular,
+ int LhsStorageOrder, bool ConjugateLhs,
+ int RhsStorageOrder, bool ConjugateRhs,
+ int ResStorageOrder>
+struct product_triangular_matrix_matrix_trmm :
+ product_triangular_matrix_matrix<Scalar,Index,Mode,
+ LhsIsTriangular,LhsStorageOrder,ConjugateLhs,
+ RhsStorageOrder, ConjugateRhs, ResStorageOrder, BuiltIn> {};
+
+
+// try to go to BLAS specialization
+#define EIGEN_BLAS_TRMM_SPECIALIZE(Scalar, LhsIsTriangular) \
+template <typename Index, int Mode, \
+ int LhsStorageOrder, bool ConjugateLhs, \
+ int RhsStorageOrder, bool ConjugateRhs> \
+struct product_triangular_matrix_matrix<Scalar,Index, Mode, LhsIsTriangular, \
+ LhsStorageOrder,ConjugateLhs, RhsStorageOrder,ConjugateRhs,ColMajor,Specialized> { \
+ static inline void run(Index _rows, Index _cols, Index _depth, const Scalar* _lhs, Index lhsStride,\
+ const Scalar* _rhs, Index rhsStride, Scalar* res, Index resStride, Scalar alpha, level3_blocking<Scalar,Scalar>& blocking) { \
+ product_triangular_matrix_matrix_trmm<Scalar,Index,Mode, \
+ LhsIsTriangular,LhsStorageOrder,ConjugateLhs, \
+ RhsStorageOrder, ConjugateRhs, ColMajor>::run( \
+ _rows, _cols, _depth, _lhs, lhsStride, _rhs, rhsStride, res, resStride, alpha, blocking); \
+ } \
+};
+
+EIGEN_BLAS_TRMM_SPECIALIZE(double, true)
+EIGEN_BLAS_TRMM_SPECIALIZE(double, false)
+EIGEN_BLAS_TRMM_SPECIALIZE(dcomplex, true)
+EIGEN_BLAS_TRMM_SPECIALIZE(dcomplex, false)
+EIGEN_BLAS_TRMM_SPECIALIZE(float, true)
+EIGEN_BLAS_TRMM_SPECIALIZE(float, false)
+EIGEN_BLAS_TRMM_SPECIALIZE(scomplex, true)
+EIGEN_BLAS_TRMM_SPECIALIZE(scomplex, false)
+
+// implements col-major += alpha * op(triangular) * op(general)
+#define EIGEN_BLAS_TRMM_L(EIGTYPE, BLASTYPE, EIGPREFIX, BLASPREFIX) \
+template <typename Index, int Mode, \
+ int LhsStorageOrder, bool ConjugateLhs, \
+ int RhsStorageOrder, bool ConjugateRhs> \
+struct product_triangular_matrix_matrix_trmm<EIGTYPE,Index,Mode,true, \
+ LhsStorageOrder,ConjugateLhs,RhsStorageOrder,ConjugateRhs,ColMajor> \
+{ \
+ enum { \
+ IsLower = (Mode&Lower) == Lower, \
+ SetDiag = (Mode&(ZeroDiag|UnitDiag)) ? 0 : 1, \
+ IsUnitDiag = (Mode&UnitDiag) ? 1 : 0, \
+ IsZeroDiag = (Mode&ZeroDiag) ? 1 : 0, \
+ LowUp = IsLower ? Lower : Upper, \
+ conjA = ((LhsStorageOrder==ColMajor) && ConjugateLhs) ? 1 : 0 \
+ }; \
+\
+ static void run( \
+ Index _rows, Index _cols, Index _depth, \
+ const EIGTYPE* _lhs, Index lhsStride, \
+ const EIGTYPE* _rhs, Index rhsStride, \
+ EIGTYPE* res, Index resStride, \
+ EIGTYPE alpha, level3_blocking<EIGTYPE,EIGTYPE>& blocking) \
+ { \
+ Index diagSize = (std::min)(_rows,_depth); \
+ Index rows = IsLower ? _rows : diagSize; \
+ Index depth = IsLower ? diagSize : _depth; \
+ Index cols = _cols; \
+\
+ typedef Matrix<EIGTYPE, Dynamic, Dynamic, LhsStorageOrder> MatrixLhs; \
+ typedef Matrix<EIGTYPE, Dynamic, Dynamic, RhsStorageOrder> MatrixRhs; \
+\
+/* Non-square case - doesn't fit to BLAS ?TRMM. Fall to default triangular product or call BLAS ?GEMM*/ \
+ if (rows != depth) { \
+\
+ /* FIXME handle mkl_domain_get_max_threads */ \
+ /*int nthr = mkl_domain_get_max_threads(EIGEN_BLAS_DOMAIN_BLAS);*/ int nthr = 1;\
+\
+ if (((nthr==1) && (((std::max)(rows,depth)-diagSize)/(double)diagSize < 0.5))) { \
+ /* Most likely no benefit to call TRMM or GEMM from BLAS */ \
+ product_triangular_matrix_matrix<EIGTYPE,Index,Mode,true, \
+ LhsStorageOrder,ConjugateLhs, RhsStorageOrder, ConjugateRhs, ColMajor, BuiltIn>::run( \
+ _rows, _cols, _depth, _lhs, lhsStride, _rhs, rhsStride, res, resStride, alpha, blocking); \
+ /*std::cout << "TRMM_L: A is not square! Go to Eigen TRMM implementation!\n";*/ \
+ } else { \
+ /* Make sense to call GEMM */ \
+ Map<const MatrixLhs, 0, OuterStride<> > lhsMap(_lhs,rows,depth,OuterStride<>(lhsStride)); \
+ MatrixLhs aa_tmp=lhsMap.template triangularView<Mode>(); \
+ BlasIndex aStride = convert_index<BlasIndex>(aa_tmp.outerStride()); \
+ gemm_blocking_space<ColMajor,EIGTYPE,EIGTYPE,Dynamic,Dynamic,Dynamic> gemm_blocking(_rows,_cols,_depth, 1, true); \
+ general_matrix_matrix_product<Index,EIGTYPE,LhsStorageOrder,ConjugateLhs,EIGTYPE,RhsStorageOrder,ConjugateRhs,ColMajor>::run( \
+ rows, cols, depth, aa_tmp.data(), aStride, _rhs, rhsStride, res, resStride, alpha, gemm_blocking, 0); \
+\
+ /*std::cout << "TRMM_L: A is not square! Go to BLAS GEMM implementation! " << nthr<<" \n";*/ \
+ } \
+ return; \
+ } \
+ char side = 'L', transa, uplo, diag = 'N'; \
+ EIGTYPE *b; \
+ const EIGTYPE *a; \
+ BlasIndex m, n, lda, ldb; \
+\
+/* Set m, n */ \
+ m = convert_index<BlasIndex>(diagSize); \
+ n = convert_index<BlasIndex>(cols); \
+\
+/* Set trans */ \
+ transa = (LhsStorageOrder==RowMajor) ? ((ConjugateLhs) ? 'C' : 'T') : 'N'; \
+\
+/* Set b, ldb */ \
+ Map<const MatrixRhs, 0, OuterStride<> > rhs(_rhs,depth,cols,OuterStride<>(rhsStride)); \
+ MatrixX##EIGPREFIX b_tmp; \
+\
+ if (ConjugateRhs) b_tmp = rhs.conjugate(); else b_tmp = rhs; \
+ b = b_tmp.data(); \
+ ldb = convert_index<BlasIndex>(b_tmp.outerStride()); \
+\
+/* Set uplo */ \
+ uplo = IsLower ? 'L' : 'U'; \
+ if (LhsStorageOrder==RowMajor) uplo = (uplo == 'L') ? 'U' : 'L'; \
+/* Set a, lda */ \
+ Map<const MatrixLhs, 0, OuterStride<> > lhs(_lhs,rows,depth,OuterStride<>(lhsStride)); \
+ MatrixLhs a_tmp; \
+\
+ if ((conjA!=0) || (SetDiag==0)) { \
+ if (conjA) a_tmp = lhs.conjugate(); else a_tmp = lhs; \
+ if (IsZeroDiag) \
+ a_tmp.diagonal().setZero(); \
+ else if (IsUnitDiag) \
+ a_tmp.diagonal().setOnes();\
+ a = a_tmp.data(); \
+ lda = convert_index<BlasIndex>(a_tmp.outerStride()); \
+ } else { \
+ a = _lhs; \
+ lda = convert_index<BlasIndex>(lhsStride); \
+ } \
+ /*std::cout << "TRMM_L: A is square! Go to BLAS TRMM implementation! \n";*/ \
+/* call ?trmm*/ \
+ BLASPREFIX##trmm_(&side, &uplo, &transa, &diag, &m, &n, &numext::real_ref(alpha), (const BLASTYPE*)a, &lda, (BLASTYPE*)b, &ldb); \
+\
+/* Add op(a_triangular)*b into res*/ \
+ Map<MatrixX##EIGPREFIX, 0, OuterStride<> > res_tmp(res,rows,cols,OuterStride<>(resStride)); \
+ res_tmp=res_tmp+b_tmp; \
+ } \
+};
+
+EIGEN_BLAS_TRMM_L(double, double, d, d)
+EIGEN_BLAS_TRMM_L(dcomplex, double, cd, z)
+EIGEN_BLAS_TRMM_L(float, float, f, s)
+EIGEN_BLAS_TRMM_L(scomplex, float, cf, c)
+
+// implements col-major += alpha * op(general) * op(triangular)
+#define EIGEN_BLAS_TRMM_R(EIGTYPE, BLASTYPE, EIGPREFIX, BLASPREFIX) \
+template <typename Index, int Mode, \
+ int LhsStorageOrder, bool ConjugateLhs, \
+ int RhsStorageOrder, bool ConjugateRhs> \
+struct product_triangular_matrix_matrix_trmm<EIGTYPE,Index,Mode,false, \
+ LhsStorageOrder,ConjugateLhs,RhsStorageOrder,ConjugateRhs,ColMajor> \
+{ \
+ enum { \
+ IsLower = (Mode&Lower) == Lower, \
+ SetDiag = (Mode&(ZeroDiag|UnitDiag)) ? 0 : 1, \
+ IsUnitDiag = (Mode&UnitDiag) ? 1 : 0, \
+ IsZeroDiag = (Mode&ZeroDiag) ? 1 : 0, \
+ LowUp = IsLower ? Lower : Upper, \
+ conjA = ((RhsStorageOrder==ColMajor) && ConjugateRhs) ? 1 : 0 \
+ }; \
+\
+ static void run( \
+ Index _rows, Index _cols, Index _depth, \
+ const EIGTYPE* _lhs, Index lhsStride, \
+ const EIGTYPE* _rhs, Index rhsStride, \
+ EIGTYPE* res, Index resStride, \
+ EIGTYPE alpha, level3_blocking<EIGTYPE,EIGTYPE>& blocking) \
+ { \
+ Index diagSize = (std::min)(_cols,_depth); \
+ Index rows = _rows; \
+ Index depth = IsLower ? _depth : diagSize; \
+ Index cols = IsLower ? diagSize : _cols; \
+\
+ typedef Matrix<EIGTYPE, Dynamic, Dynamic, LhsStorageOrder> MatrixLhs; \
+ typedef Matrix<EIGTYPE, Dynamic, Dynamic, RhsStorageOrder> MatrixRhs; \
+\
+/* Non-square case - doesn't fit to BLAS ?TRMM. Fall to default triangular product or call BLAS ?GEMM*/ \
+ if (cols != depth) { \
+\
+ int nthr = 1 /*mkl_domain_get_max_threads(EIGEN_BLAS_DOMAIN_BLAS)*/; \
+\
+ if ((nthr==1) && (((std::max)(cols,depth)-diagSize)/(double)diagSize < 0.5)) { \
+ /* Most likely no benefit to call TRMM or GEMM from BLAS*/ \
+ product_triangular_matrix_matrix<EIGTYPE,Index,Mode,false, \
+ LhsStorageOrder,ConjugateLhs, RhsStorageOrder, ConjugateRhs, ColMajor, BuiltIn>::run( \
+ _rows, _cols, _depth, _lhs, lhsStride, _rhs, rhsStride, res, resStride, alpha, blocking); \
+ /*std::cout << "TRMM_R: A is not square! Go to Eigen TRMM implementation!\n";*/ \
+ } else { \
+ /* Make sense to call GEMM */ \
+ Map<const MatrixRhs, 0, OuterStride<> > rhsMap(_rhs,depth,cols, OuterStride<>(rhsStride)); \
+ MatrixRhs aa_tmp=rhsMap.template triangularView<Mode>(); \
+ BlasIndex aStride = convert_index<BlasIndex>(aa_tmp.outerStride()); \
+ gemm_blocking_space<ColMajor,EIGTYPE,EIGTYPE,Dynamic,Dynamic,Dynamic> gemm_blocking(_rows,_cols,_depth, 1, true); \
+ general_matrix_matrix_product<Index,EIGTYPE,LhsStorageOrder,ConjugateLhs,EIGTYPE,RhsStorageOrder,ConjugateRhs,ColMajor>::run( \
+ rows, cols, depth, _lhs, lhsStride, aa_tmp.data(), aStride, res, resStride, alpha, gemm_blocking, 0); \
+\
+ /*std::cout << "TRMM_R: A is not square! Go to BLAS GEMM implementation! " << nthr<<" \n";*/ \
+ } \
+ return; \
+ } \
+ char side = 'R', transa, uplo, diag = 'N'; \
+ EIGTYPE *b; \
+ const EIGTYPE *a; \
+ BlasIndex m, n, lda, ldb; \
+\
+/* Set m, n */ \
+ m = convert_index<BlasIndex>(rows); \
+ n = convert_index<BlasIndex>(diagSize); \
+\
+/* Set trans */ \
+ transa = (RhsStorageOrder==RowMajor) ? ((ConjugateRhs) ? 'C' : 'T') : 'N'; \
+\
+/* Set b, ldb */ \
+ Map<const MatrixLhs, 0, OuterStride<> > lhs(_lhs,rows,depth,OuterStride<>(lhsStride)); \
+ MatrixX##EIGPREFIX b_tmp; \
+\
+ if (ConjugateLhs) b_tmp = lhs.conjugate(); else b_tmp = lhs; \
+ b = b_tmp.data(); \
+ ldb = convert_index<BlasIndex>(b_tmp.outerStride()); \
+\
+/* Set uplo */ \
+ uplo = IsLower ? 'L' : 'U'; \
+ if (RhsStorageOrder==RowMajor) uplo = (uplo == 'L') ? 'U' : 'L'; \
+/* Set a, lda */ \
+ Map<const MatrixRhs, 0, OuterStride<> > rhs(_rhs,depth,cols, OuterStride<>(rhsStride)); \
+ MatrixRhs a_tmp; \
+\
+ if ((conjA!=0) || (SetDiag==0)) { \
+ if (conjA) a_tmp = rhs.conjugate(); else a_tmp = rhs; \
+ if (IsZeroDiag) \
+ a_tmp.diagonal().setZero(); \
+ else if (IsUnitDiag) \
+ a_tmp.diagonal().setOnes();\
+ a = a_tmp.data(); \
+ lda = convert_index<BlasIndex>(a_tmp.outerStride()); \
+ } else { \
+ a = _rhs; \
+ lda = convert_index<BlasIndex>(rhsStride); \
+ } \
+ /*std::cout << "TRMM_R: A is square! Go to BLAS TRMM implementation! \n";*/ \
+/* call ?trmm*/ \
+ BLASPREFIX##trmm_(&side, &uplo, &transa, &diag, &m, &n, &numext::real_ref(alpha), (const BLASTYPE*)a, &lda, (BLASTYPE*)b, &ldb); \
+\
+/* Add op(a_triangular)*b into res*/ \
+ Map<MatrixX##EIGPREFIX, 0, OuterStride<> > res_tmp(res,rows,cols,OuterStride<>(resStride)); \
+ res_tmp=res_tmp+b_tmp; \
+ } \
+};
+
+EIGEN_BLAS_TRMM_R(double, double, d, d)
+EIGEN_BLAS_TRMM_R(dcomplex, double, cd, z)
+EIGEN_BLAS_TRMM_R(float, float, f, s)
+EIGEN_BLAS_TRMM_R(scomplex, float, cf, c)
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIANGULAR_MATRIX_MATRIX_BLAS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularMatrixVector.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularMatrixVector.h
new file mode 100644
index 000000000..4b292e74d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularMatrixVector.h
@@ -0,0 +1,336 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRIANGULARMATRIXVECTOR_H
+#define EIGEN_TRIANGULARMATRIXVECTOR_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs, int StorageOrder, int Version=Specialized>
+struct triangular_matrix_vector_product;
+
+template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs, int Version>
+struct triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,ColMajor,Version>
+{
+ typedef typename ScalarBinaryOpTraits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+ enum {
+ IsLower = ((Mode&Lower)==Lower),
+ HasUnitDiag = (Mode & UnitDiag)==UnitDiag,
+ HasZeroDiag = (Mode & ZeroDiag)==ZeroDiag
+ };
+ static EIGEN_DONT_INLINE void run(Index _rows, Index _cols, const LhsScalar* _lhs, Index lhsStride,
+ const RhsScalar* _rhs, Index rhsIncr, ResScalar* _res, Index resIncr, const RhsScalar& alpha);
+};
+
+template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs, int Version>
+EIGEN_DONT_INLINE void triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,ColMajor,Version>
+ ::run(Index _rows, Index _cols, const LhsScalar* _lhs, Index lhsStride,
+ const RhsScalar* _rhs, Index rhsIncr, ResScalar* _res, Index resIncr, const RhsScalar& alpha)
+ {
+ static const Index PanelWidth = EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH;
+ Index size = (std::min)(_rows,_cols);
+ Index rows = IsLower ? _rows : (std::min)(_rows,_cols);
+ Index cols = IsLower ? (std::min)(_rows,_cols) : _cols;
+
+ typedef Map<const Matrix<LhsScalar,Dynamic,Dynamic,ColMajor>, 0, OuterStride<> > LhsMap;
+ const LhsMap lhs(_lhs,rows,cols,OuterStride<>(lhsStride));
+ typename conj_expr_if<ConjLhs,LhsMap>::type cjLhs(lhs);
+
+ typedef Map<const Matrix<RhsScalar,Dynamic,1>, 0, InnerStride<> > RhsMap;
+ const RhsMap rhs(_rhs,cols,InnerStride<>(rhsIncr));
+ typename conj_expr_if<ConjRhs,RhsMap>::type cjRhs(rhs);
+
+ typedef Map<Matrix<ResScalar,Dynamic,1> > ResMap;
+ ResMap res(_res,rows);
+
+ typedef const_blas_data_mapper<LhsScalar,Index,ColMajor> LhsMapper;
+ typedef const_blas_data_mapper<RhsScalar,Index,RowMajor> RhsMapper;
+
+ for (Index pi=0; pi<size; pi+=PanelWidth)
+ {
+ Index actualPanelWidth = (std::min)(PanelWidth, size-pi);
+ for (Index k=0; k<actualPanelWidth; ++k)
+ {
+ Index i = pi + k;
+ Index s = IsLower ? ((HasUnitDiag||HasZeroDiag) ? i+1 : i ) : pi;
+ Index r = IsLower ? actualPanelWidth-k : k+1;
+ if ((!(HasUnitDiag||HasZeroDiag)) || (--r)>0)
+ res.segment(s,r) += (alpha * cjRhs.coeff(i)) * cjLhs.col(i).segment(s,r);
+ if (HasUnitDiag)
+ res.coeffRef(i) += alpha * cjRhs.coeff(i);
+ }
+ Index r = IsLower ? rows - pi - actualPanelWidth : pi;
+ if (r>0)
+ {
+ Index s = IsLower ? pi+actualPanelWidth : 0;
+ general_matrix_vector_product<Index,LhsScalar,LhsMapper,ColMajor,ConjLhs,RhsScalar,RhsMapper,ConjRhs,BuiltIn>::run(
+ r, actualPanelWidth,
+ LhsMapper(&lhs.coeffRef(s,pi), lhsStride),
+ RhsMapper(&rhs.coeffRef(pi), rhsIncr),
+ &res.coeffRef(s), resIncr, alpha);
+ }
+ }
+ if((!IsLower) && cols>size)
+ {
+ general_matrix_vector_product<Index,LhsScalar,LhsMapper,ColMajor,ConjLhs,RhsScalar,RhsMapper,ConjRhs>::run(
+ rows, cols-size,
+ LhsMapper(&lhs.coeffRef(0,size), lhsStride),
+ RhsMapper(&rhs.coeffRef(size), rhsIncr),
+ _res, resIncr, alpha);
+ }
+ }
+
+template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs,int Version>
+struct triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,RowMajor,Version>
+{
+ typedef typename ScalarBinaryOpTraits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+ enum {
+ IsLower = ((Mode&Lower)==Lower),
+ HasUnitDiag = (Mode & UnitDiag)==UnitDiag,
+ HasZeroDiag = (Mode & ZeroDiag)==ZeroDiag
+ };
+ static EIGEN_DONT_INLINE void run(Index _rows, Index _cols, const LhsScalar* _lhs, Index lhsStride,
+ const RhsScalar* _rhs, Index rhsIncr, ResScalar* _res, Index resIncr, const ResScalar& alpha);
+};
+
+template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs,int Version>
+EIGEN_DONT_INLINE void triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,RowMajor,Version>
+ ::run(Index _rows, Index _cols, const LhsScalar* _lhs, Index lhsStride,
+ const RhsScalar* _rhs, Index rhsIncr, ResScalar* _res, Index resIncr, const ResScalar& alpha)
+ {
+ static const Index PanelWidth = EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH;
+ Index diagSize = (std::min)(_rows,_cols);
+ Index rows = IsLower ? _rows : diagSize;
+ Index cols = IsLower ? diagSize : _cols;
+
+ typedef Map<const Matrix<LhsScalar,Dynamic,Dynamic,RowMajor>, 0, OuterStride<> > LhsMap;
+ const LhsMap lhs(_lhs,rows,cols,OuterStride<>(lhsStride));
+ typename conj_expr_if<ConjLhs,LhsMap>::type cjLhs(lhs);
+
+ typedef Map<const Matrix<RhsScalar,Dynamic,1> > RhsMap;
+ const RhsMap rhs(_rhs,cols);
+ typename conj_expr_if<ConjRhs,RhsMap>::type cjRhs(rhs);
+
+ typedef Map<Matrix<ResScalar,Dynamic,1>, 0, InnerStride<> > ResMap;
+ ResMap res(_res,rows,InnerStride<>(resIncr));
+
+ typedef const_blas_data_mapper<LhsScalar,Index,RowMajor> LhsMapper;
+ typedef const_blas_data_mapper<RhsScalar,Index,RowMajor> RhsMapper;
+
+ for (Index pi=0; pi<diagSize; pi+=PanelWidth)
+ {
+ Index actualPanelWidth = (std::min)(PanelWidth, diagSize-pi);
+ for (Index k=0; k<actualPanelWidth; ++k)
+ {
+ Index i = pi + k;
+ Index s = IsLower ? pi : ((HasUnitDiag||HasZeroDiag) ? i+1 : i);
+ Index r = IsLower ? k+1 : actualPanelWidth-k;
+ if ((!(HasUnitDiag||HasZeroDiag)) || (--r)>0)
+ res.coeffRef(i) += alpha * (cjLhs.row(i).segment(s,r).cwiseProduct(cjRhs.segment(s,r).transpose())).sum();
+ if (HasUnitDiag)
+ res.coeffRef(i) += alpha * cjRhs.coeff(i);
+ }
+ Index r = IsLower ? pi : cols - pi - actualPanelWidth;
+ if (r>0)
+ {
+ Index s = IsLower ? 0 : pi + actualPanelWidth;
+ general_matrix_vector_product<Index,LhsScalar,LhsMapper,RowMajor,ConjLhs,RhsScalar,RhsMapper,ConjRhs,BuiltIn>::run(
+ actualPanelWidth, r,
+ LhsMapper(&lhs.coeffRef(pi,s), lhsStride),
+ RhsMapper(&rhs.coeffRef(s), rhsIncr),
+ &res.coeffRef(pi), resIncr, alpha);
+ }
+ }
+ if(IsLower && rows>diagSize)
+ {
+ general_matrix_vector_product<Index,LhsScalar,LhsMapper,RowMajor,ConjLhs,RhsScalar,RhsMapper,ConjRhs>::run(
+ rows-diagSize, cols,
+ LhsMapper(&lhs.coeffRef(diagSize,0), lhsStride),
+ RhsMapper(&rhs.coeffRef(0), rhsIncr),
+ &res.coeffRef(diagSize), resIncr, alpha);
+ }
+ }
+
+/***************************************************************************
+* Wrapper to product_triangular_vector
+***************************************************************************/
+
+template<int Mode,int StorageOrder>
+struct trmv_selector;
+
+} // end namespace internal
+
+namespace internal {
+
+template<int Mode, typename Lhs, typename Rhs>
+struct triangular_product_impl<Mode,true,Lhs,false,Rhs,true>
+{
+ template<typename Dest> static void run(Dest& dst, const Lhs &lhs, const Rhs &rhs, const typename Dest::Scalar& alpha)
+ {
+ eigen_assert(dst.rows()==lhs.rows() && dst.cols()==rhs.cols());
+
+ internal::trmv_selector<Mode,(int(internal::traits<Lhs>::Flags)&RowMajorBit) ? RowMajor : ColMajor>::run(lhs, rhs, dst, alpha);
+ }
+};
+
+template<int Mode, typename Lhs, typename Rhs>
+struct triangular_product_impl<Mode,false,Lhs,true,Rhs,false>
+{
+ template<typename Dest> static void run(Dest& dst, const Lhs &lhs, const Rhs &rhs, const typename Dest::Scalar& alpha)
+ {
+ eigen_assert(dst.rows()==lhs.rows() && dst.cols()==rhs.cols());
+
+ Transpose<Dest> dstT(dst);
+ internal::trmv_selector<(Mode & (UnitDiag|ZeroDiag)) | ((Mode & Lower) ? Upper : Lower),
+ (int(internal::traits<Rhs>::Flags)&RowMajorBit) ? ColMajor : RowMajor>
+ ::run(rhs.transpose(),lhs.transpose(), dstT, alpha);
+ }
+};
+
+} // end namespace internal
+
+namespace internal {
+
+// TODO: find a way to factorize this piece of code with gemv_selector since the logic is exactly the same.
+
+template<int Mode> struct trmv_selector<Mode,ColMajor>
+{
+ template<typename Lhs, typename Rhs, typename Dest>
+ static void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typename Dest::Scalar& alpha)
+ {
+ typedef typename Lhs::Scalar LhsScalar;
+ typedef typename Rhs::Scalar RhsScalar;
+ typedef typename Dest::Scalar ResScalar;
+ typedef typename Dest::RealScalar RealScalar;
+
+ typedef internal::blas_traits<Lhs> LhsBlasTraits;
+ typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhsType;
+ typedef internal::blas_traits<Rhs> RhsBlasTraits;
+ typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhsType;
+
+ typedef Map<Matrix<ResScalar,Dynamic,1>, EIGEN_PLAIN_ENUM_MIN(AlignedMax,internal::packet_traits<ResScalar>::size)> MappedDest;
+
+ typename internal::add_const_on_value_type<ActualLhsType>::type actualLhs = LhsBlasTraits::extract(lhs);
+ typename internal::add_const_on_value_type<ActualRhsType>::type actualRhs = RhsBlasTraits::extract(rhs);
+
+ ResScalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(lhs)
+ * RhsBlasTraits::extractScalarFactor(rhs);
+
+ enum {
+ // FIXME find a way to allow an inner stride on the result if packet_traits<Scalar>::size==1
+ // on, the other hand it is good for the cache to pack the vector anyways...
+ EvalToDestAtCompileTime = Dest::InnerStrideAtCompileTime==1,
+ ComplexByReal = (NumTraits<LhsScalar>::IsComplex) && (!NumTraits<RhsScalar>::IsComplex),
+ MightCannotUseDest = (Dest::InnerStrideAtCompileTime!=1) || ComplexByReal
+ };
+
+ gemv_static_vector_if<ResScalar,Dest::SizeAtCompileTime,Dest::MaxSizeAtCompileTime,MightCannotUseDest> static_dest;
+
+ bool alphaIsCompatible = (!ComplexByReal) || (numext::imag(actualAlpha)==RealScalar(0));
+ bool evalToDest = EvalToDestAtCompileTime && alphaIsCompatible;
+
+ RhsScalar compatibleAlpha = get_factor<ResScalar,RhsScalar>::run(actualAlpha);
+
+ ei_declare_aligned_stack_constructed_variable(ResScalar,actualDestPtr,dest.size(),
+ evalToDest ? dest.data() : static_dest.data());
+
+ if(!evalToDest)
+ {
+ #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+ Index size = dest.size();
+ EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+ #endif
+ if(!alphaIsCompatible)
+ {
+ MappedDest(actualDestPtr, dest.size()).setZero();
+ compatibleAlpha = RhsScalar(1);
+ }
+ else
+ MappedDest(actualDestPtr, dest.size()) = dest;
+ }
+
+ internal::triangular_matrix_vector_product
+ <Index,Mode,
+ LhsScalar, LhsBlasTraits::NeedToConjugate,
+ RhsScalar, RhsBlasTraits::NeedToConjugate,
+ ColMajor>
+ ::run(actualLhs.rows(),actualLhs.cols(),
+ actualLhs.data(),actualLhs.outerStride(),
+ actualRhs.data(),actualRhs.innerStride(),
+ actualDestPtr,1,compatibleAlpha);
+
+ if (!evalToDest)
+ {
+ if(!alphaIsCompatible)
+ dest += actualAlpha * MappedDest(actualDestPtr, dest.size());
+ else
+ dest = MappedDest(actualDestPtr, dest.size());
+ }
+ }
+};
+
+template<int Mode> struct trmv_selector<Mode,RowMajor>
+{
+ template<typename Lhs, typename Rhs, typename Dest>
+ static void run(const Lhs &lhs, const Rhs &rhs, Dest& dest, const typename Dest::Scalar& alpha)
+ {
+ typedef typename Lhs::Scalar LhsScalar;
+ typedef typename Rhs::Scalar RhsScalar;
+ typedef typename Dest::Scalar ResScalar;
+
+ typedef internal::blas_traits<Lhs> LhsBlasTraits;
+ typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhsType;
+ typedef internal::blas_traits<Rhs> RhsBlasTraits;
+ typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhsType;
+ typedef typename internal::remove_all<ActualRhsType>::type ActualRhsTypeCleaned;
+
+ typename add_const<ActualLhsType>::type actualLhs = LhsBlasTraits::extract(lhs);
+ typename add_const<ActualRhsType>::type actualRhs = RhsBlasTraits::extract(rhs);
+
+ ResScalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(lhs)
+ * RhsBlasTraits::extractScalarFactor(rhs);
+
+ enum {
+ DirectlyUseRhs = ActualRhsTypeCleaned::InnerStrideAtCompileTime==1
+ };
+
+ gemv_static_vector_if<RhsScalar,ActualRhsTypeCleaned::SizeAtCompileTime,ActualRhsTypeCleaned::MaxSizeAtCompileTime,!DirectlyUseRhs> static_rhs;
+
+ ei_declare_aligned_stack_constructed_variable(RhsScalar,actualRhsPtr,actualRhs.size(),
+ DirectlyUseRhs ? const_cast<RhsScalar*>(actualRhs.data()) : static_rhs.data());
+
+ if(!DirectlyUseRhs)
+ {
+ #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+ Index size = actualRhs.size();
+ EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+ #endif
+ Map<typename ActualRhsTypeCleaned::PlainObject>(actualRhsPtr, actualRhs.size()) = actualRhs;
+ }
+
+ internal::triangular_matrix_vector_product
+ <Index,Mode,
+ LhsScalar, LhsBlasTraits::NeedToConjugate,
+ RhsScalar, RhsBlasTraits::NeedToConjugate,
+ RowMajor>
+ ::run(actualLhs.rows(),actualLhs.cols(),
+ actualLhs.data(),actualLhs.outerStride(),
+ actualRhsPtr,1,
+ dest.data(),dest.innerStride(),
+ actualAlpha);
+ }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIANGULARMATRIXVECTOR_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h
new file mode 100644
index 000000000..07bf26ce5
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h
@@ -0,0 +1,241 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ * Content : Eigen bindings to BLAS F77
+ * Triangular matrix-vector product functionality based on ?TRMV.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_TRIANGULAR_MATRIX_VECTOR_BLAS_H
+#define EIGEN_TRIANGULAR_MATRIX_VECTOR_BLAS_H
+
+namespace Eigen {
+
+namespace internal {
+
+/**********************************************************************
+* This file implements triangular matrix-vector multiplication using BLAS
+**********************************************************************/
+
+// trmv/hemv specialization
+
+template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs, int StorageOrder>
+struct triangular_matrix_vector_product_trmv :
+ triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,StorageOrder,BuiltIn> {};
+
+#define EIGEN_BLAS_TRMV_SPECIALIZE(Scalar) \
+template<typename Index, int Mode, bool ConjLhs, bool ConjRhs> \
+struct triangular_matrix_vector_product<Index,Mode,Scalar,ConjLhs,Scalar,ConjRhs,ColMajor,Specialized> { \
+ static void run(Index _rows, Index _cols, const Scalar* _lhs, Index lhsStride, \
+ const Scalar* _rhs, Index rhsIncr, Scalar* _res, Index resIncr, Scalar alpha) { \
+ triangular_matrix_vector_product_trmv<Index,Mode,Scalar,ConjLhs,Scalar,ConjRhs,ColMajor>::run( \
+ _rows, _cols, _lhs, lhsStride, _rhs, rhsIncr, _res, resIncr, alpha); \
+ } \
+}; \
+template<typename Index, int Mode, bool ConjLhs, bool ConjRhs> \
+struct triangular_matrix_vector_product<Index,Mode,Scalar,ConjLhs,Scalar,ConjRhs,RowMajor,Specialized> { \
+ static void run(Index _rows, Index _cols, const Scalar* _lhs, Index lhsStride, \
+ const Scalar* _rhs, Index rhsIncr, Scalar* _res, Index resIncr, Scalar alpha) { \
+ triangular_matrix_vector_product_trmv<Index,Mode,Scalar,ConjLhs,Scalar,ConjRhs,RowMajor>::run( \
+ _rows, _cols, _lhs, lhsStride, _rhs, rhsIncr, _res, resIncr, alpha); \
+ } \
+};
+
+EIGEN_BLAS_TRMV_SPECIALIZE(double)
+EIGEN_BLAS_TRMV_SPECIALIZE(float)
+EIGEN_BLAS_TRMV_SPECIALIZE(dcomplex)
+EIGEN_BLAS_TRMV_SPECIALIZE(scomplex)
+
+// implements col-major: res += alpha * op(triangular) * vector
+#define EIGEN_BLAS_TRMV_CM(EIGTYPE, BLASTYPE, EIGPREFIX, BLASPREFIX) \
+template<typename Index, int Mode, bool ConjLhs, bool ConjRhs> \
+struct triangular_matrix_vector_product_trmv<Index,Mode,EIGTYPE,ConjLhs,EIGTYPE,ConjRhs,ColMajor> { \
+ enum { \
+ IsLower = (Mode&Lower) == Lower, \
+ SetDiag = (Mode&(ZeroDiag|UnitDiag)) ? 0 : 1, \
+ IsUnitDiag = (Mode&UnitDiag) ? 1 : 0, \
+ IsZeroDiag = (Mode&ZeroDiag) ? 1 : 0, \
+ LowUp = IsLower ? Lower : Upper \
+ }; \
+ static void run(Index _rows, Index _cols, const EIGTYPE* _lhs, Index lhsStride, \
+ const EIGTYPE* _rhs, Index rhsIncr, EIGTYPE* _res, Index resIncr, EIGTYPE alpha) \
+ { \
+ if (ConjLhs || IsZeroDiag) { \
+ triangular_matrix_vector_product<Index,Mode,EIGTYPE,ConjLhs,EIGTYPE,ConjRhs,ColMajor,BuiltIn>::run( \
+ _rows, _cols, _lhs, lhsStride, _rhs, rhsIncr, _res, resIncr, alpha); \
+ return; \
+ }\
+ Index size = (std::min)(_rows,_cols); \
+ Index rows = IsLower ? _rows : size; \
+ Index cols = IsLower ? size : _cols; \
+\
+ typedef VectorX##EIGPREFIX VectorRhs; \
+ EIGTYPE *x, *y;\
+\
+/* Set x*/ \
+ Map<const VectorRhs, 0, InnerStride<> > rhs(_rhs,cols,InnerStride<>(rhsIncr)); \
+ VectorRhs x_tmp; \
+ if (ConjRhs) x_tmp = rhs.conjugate(); else x_tmp = rhs; \
+ x = x_tmp.data(); \
+\
+/* Square part handling */\
+\
+ char trans, uplo, diag; \
+ BlasIndex m, n, lda, incx, incy; \
+ EIGTYPE const *a; \
+ EIGTYPE beta(1); \
+\
+/* Set m, n */ \
+ n = convert_index<BlasIndex>(size); \
+ lda = convert_index<BlasIndex>(lhsStride); \
+ incx = 1; \
+ incy = convert_index<BlasIndex>(resIncr); \
+\
+/* Set uplo, trans and diag*/ \
+ trans = 'N'; \
+ uplo = IsLower ? 'L' : 'U'; \
+ diag = IsUnitDiag ? 'U' : 'N'; \
+\
+/* call ?TRMV*/ \
+ BLASPREFIX##trmv_(&uplo, &trans, &diag, &n, (const BLASTYPE*)_lhs, &lda, (BLASTYPE*)x, &incx); \
+\
+/* Add op(a_tr)rhs into res*/ \
+ BLASPREFIX##axpy_(&n, &numext::real_ref(alpha),(const BLASTYPE*)x, &incx, (BLASTYPE*)_res, &incy); \
+/* Non-square case - doesn't fit to BLAS ?TRMV. Fall to default triangular product*/ \
+ if (size<(std::max)(rows,cols)) { \
+ if (ConjRhs) x_tmp = rhs.conjugate(); else x_tmp = rhs; \
+ x = x_tmp.data(); \
+ if (size<rows) { \
+ y = _res + size*resIncr; \
+ a = _lhs + size; \
+ m = convert_index<BlasIndex>(rows-size); \
+ n = convert_index<BlasIndex>(size); \
+ } \
+ else { \
+ x += size; \
+ y = _res; \
+ a = _lhs + size*lda; \
+ m = convert_index<BlasIndex>(size); \
+ n = convert_index<BlasIndex>(cols-size); \
+ } \
+ BLASPREFIX##gemv_(&trans, &m, &n, &numext::real_ref(alpha), (const BLASTYPE*)a, &lda, (const BLASTYPE*)x, &incx, &numext::real_ref(beta), (BLASTYPE*)y, &incy); \
+ } \
+ } \
+};
+
+EIGEN_BLAS_TRMV_CM(double, double, d, d)
+EIGEN_BLAS_TRMV_CM(dcomplex, double, cd, z)
+EIGEN_BLAS_TRMV_CM(float, float, f, s)
+EIGEN_BLAS_TRMV_CM(scomplex, float, cf, c)
+
+// implements row-major: res += alpha * op(triangular) * vector
+#define EIGEN_BLAS_TRMV_RM(EIGTYPE, BLASTYPE, EIGPREFIX, BLASPREFIX) \
+template<typename Index, int Mode, bool ConjLhs, bool ConjRhs> \
+struct triangular_matrix_vector_product_trmv<Index,Mode,EIGTYPE,ConjLhs,EIGTYPE,ConjRhs,RowMajor> { \
+ enum { \
+ IsLower = (Mode&Lower) == Lower, \
+ SetDiag = (Mode&(ZeroDiag|UnitDiag)) ? 0 : 1, \
+ IsUnitDiag = (Mode&UnitDiag) ? 1 : 0, \
+ IsZeroDiag = (Mode&ZeroDiag) ? 1 : 0, \
+ LowUp = IsLower ? Lower : Upper \
+ }; \
+ static void run(Index _rows, Index _cols, const EIGTYPE* _lhs, Index lhsStride, \
+ const EIGTYPE* _rhs, Index rhsIncr, EIGTYPE* _res, Index resIncr, EIGTYPE alpha) \
+ { \
+ if (IsZeroDiag) { \
+ triangular_matrix_vector_product<Index,Mode,EIGTYPE,ConjLhs,EIGTYPE,ConjRhs,RowMajor,BuiltIn>::run( \
+ _rows, _cols, _lhs, lhsStride, _rhs, rhsIncr, _res, resIncr, alpha); \
+ return; \
+ }\
+ Index size = (std::min)(_rows,_cols); \
+ Index rows = IsLower ? _rows : size; \
+ Index cols = IsLower ? size : _cols; \
+\
+ typedef VectorX##EIGPREFIX VectorRhs; \
+ EIGTYPE *x, *y;\
+\
+/* Set x*/ \
+ Map<const VectorRhs, 0, InnerStride<> > rhs(_rhs,cols,InnerStride<>(rhsIncr)); \
+ VectorRhs x_tmp; \
+ if (ConjRhs) x_tmp = rhs.conjugate(); else x_tmp = rhs; \
+ x = x_tmp.data(); \
+\
+/* Square part handling */\
+\
+ char trans, uplo, diag; \
+ BlasIndex m, n, lda, incx, incy; \
+ EIGTYPE const *a; \
+ EIGTYPE beta(1); \
+\
+/* Set m, n */ \
+ n = convert_index<BlasIndex>(size); \
+ lda = convert_index<BlasIndex>(lhsStride); \
+ incx = 1; \
+ incy = convert_index<BlasIndex>(resIncr); \
+\
+/* Set uplo, trans and diag*/ \
+ trans = ConjLhs ? 'C' : 'T'; \
+ uplo = IsLower ? 'U' : 'L'; \
+ diag = IsUnitDiag ? 'U' : 'N'; \
+\
+/* call ?TRMV*/ \
+ BLASPREFIX##trmv_(&uplo, &trans, &diag, &n, (const BLASTYPE*)_lhs, &lda, (BLASTYPE*)x, &incx); \
+\
+/* Add op(a_tr)rhs into res*/ \
+ BLASPREFIX##axpy_(&n, &numext::real_ref(alpha),(const BLASTYPE*)x, &incx, (BLASTYPE*)_res, &incy); \
+/* Non-square case - doesn't fit to BLAS ?TRMV. Fall to default triangular product*/ \
+ if (size<(std::max)(rows,cols)) { \
+ if (ConjRhs) x_tmp = rhs.conjugate(); else x_tmp = rhs; \
+ x = x_tmp.data(); \
+ if (size<rows) { \
+ y = _res + size*resIncr; \
+ a = _lhs + size*lda; \
+ m = convert_index<BlasIndex>(rows-size); \
+ n = convert_index<BlasIndex>(size); \
+ } \
+ else { \
+ x += size; \
+ y = _res; \
+ a = _lhs + size; \
+ m = convert_index<BlasIndex>(size); \
+ n = convert_index<BlasIndex>(cols-size); \
+ } \
+ BLASPREFIX##gemv_(&trans, &n, &m, &numext::real_ref(alpha), (const BLASTYPE*)a, &lda, (const BLASTYPE*)x, &incx, &numext::real_ref(beta), (BLASTYPE*)y, &incy); \
+ } \
+ } \
+};
+
+EIGEN_BLAS_TRMV_RM(double, double, d, d)
+EIGEN_BLAS_TRMV_RM(dcomplex, double, cd, z)
+EIGEN_BLAS_TRMV_RM(float, float, f, s)
+EIGEN_BLAS_TRMV_RM(scomplex, float, cf, c)
+
+} // end namespase internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIANGULAR_MATRIX_VECTOR_BLAS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h
new file mode 100644
index 000000000..223c38b86
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h
@@ -0,0 +1,335 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRIANGULAR_SOLVER_MATRIX_H
+#define EIGEN_TRIANGULAR_SOLVER_MATRIX_H
+
+namespace Eigen {
+
+namespace internal {
+
+// if the rhs is row major, let's transpose the product
+template <typename Scalar, typename Index, int Side, int Mode, bool Conjugate, int TriStorageOrder>
+struct triangular_solve_matrix<Scalar,Index,Side,Mode,Conjugate,TriStorageOrder,RowMajor>
+{
+ static void run(
+ Index size, Index cols,
+ const Scalar* tri, Index triStride,
+ Scalar* _other, Index otherStride,
+ level3_blocking<Scalar,Scalar>& blocking)
+ {
+ triangular_solve_matrix<
+ Scalar, Index, Side==OnTheLeft?OnTheRight:OnTheLeft,
+ (Mode&UnitDiag) | ((Mode&Upper) ? Lower : Upper),
+ NumTraits<Scalar>::IsComplex && Conjugate,
+ TriStorageOrder==RowMajor ? ColMajor : RowMajor, ColMajor>
+ ::run(size, cols, tri, triStride, _other, otherStride, blocking);
+ }
+};
+
+/* Optimized triangular solver with multiple right hand side and the triangular matrix on the left
+ */
+template <typename Scalar, typename Index, int Mode, bool Conjugate, int TriStorageOrder>
+struct triangular_solve_matrix<Scalar,Index,OnTheLeft,Mode,Conjugate,TriStorageOrder,ColMajor>
+{
+ static EIGEN_DONT_INLINE void run(
+ Index size, Index otherSize,
+ const Scalar* _tri, Index triStride,
+ Scalar* _other, Index otherStride,
+ level3_blocking<Scalar,Scalar>& blocking);
+};
+template <typename Scalar, typename Index, int Mode, bool Conjugate, int TriStorageOrder>
+EIGEN_DONT_INLINE void triangular_solve_matrix<Scalar,Index,OnTheLeft,Mode,Conjugate,TriStorageOrder,ColMajor>::run(
+ Index size, Index otherSize,
+ const Scalar* _tri, Index triStride,
+ Scalar* _other, Index otherStride,
+ level3_blocking<Scalar,Scalar>& blocking)
+ {
+ Index cols = otherSize;
+
+ typedef const_blas_data_mapper<Scalar, Index, TriStorageOrder> TriMapper;
+ typedef blas_data_mapper<Scalar, Index, ColMajor> OtherMapper;
+ TriMapper tri(_tri, triStride);
+ OtherMapper other(_other, otherStride);
+
+ typedef gebp_traits<Scalar,Scalar> Traits;
+
+ enum {
+ SmallPanelWidth = EIGEN_PLAIN_ENUM_MAX(Traits::mr,Traits::nr),
+ IsLower = (Mode&Lower) == Lower
+ };
+
+ Index kc = blocking.kc(); // cache block size along the K direction
+ Index mc = (std::min)(size,blocking.mc()); // cache block size along the M direction
+
+ std::size_t sizeA = kc*mc;
+ std::size_t sizeB = kc*cols;
+
+ ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
+ ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
+
+ conj_if<Conjugate> conj;
+ gebp_kernel<Scalar, Scalar, Index, OtherMapper, Traits::mr, Traits::nr, Conjugate, false> gebp_kernel;
+ gemm_pack_lhs<Scalar, Index, TriMapper, Traits::mr, Traits::LhsProgress, TriStorageOrder> pack_lhs;
+ gemm_pack_rhs<Scalar, Index, OtherMapper, Traits::nr, ColMajor, false, true> pack_rhs;
+
+ // the goal here is to subdivise the Rhs panels such that we keep some cache
+ // coherence when accessing the rhs elements
+ std::ptrdiff_t l1, l2, l3;
+ manage_caching_sizes(GetAction, &l1, &l2, &l3);
+ Index subcols = cols>0 ? l2/(4 * sizeof(Scalar) * std::max<Index>(otherStride,size)) : 0;
+ subcols = std::max<Index>((subcols/Traits::nr)*Traits::nr, Traits::nr);
+
+ for(Index k2=IsLower ? 0 : size;
+ IsLower ? k2<size : k2>0;
+ IsLower ? k2+=kc : k2-=kc)
+ {
+ const Index actual_kc = (std::min)(IsLower ? size-k2 : k2, kc);
+
+ // We have selected and packed a big horizontal panel R1 of rhs. Let B be the packed copy of this panel,
+ // and R2 the remaining part of rhs. The corresponding vertical panel of lhs is split into
+ // A11 (the triangular part) and A21 the remaining rectangular part.
+ // Then the high level algorithm is:
+ // - B = R1 => general block copy (done during the next step)
+ // - R1 = A11^-1 B => tricky part
+ // - update B from the new R1 => actually this has to be performed continuously during the above step
+ // - R2 -= A21 * B => GEPP
+
+ // The tricky part: compute R1 = A11^-1 B while updating B from R1
+ // The idea is to split A11 into multiple small vertical panels.
+ // Each panel can be split into a small triangular part T1k which is processed without optimization,
+ // and the remaining small part T2k which is processed using gebp with appropriate block strides
+ for(Index j2=0; j2<cols; j2+=subcols)
+ {
+ Index actual_cols = (std::min)(cols-j2,subcols);
+ // for each small vertical panels [T1k^T, T2k^T]^T of lhs
+ for (Index k1=0; k1<actual_kc; k1+=SmallPanelWidth)
+ {
+ Index actualPanelWidth = std::min<Index>(actual_kc-k1, SmallPanelWidth);
+ // tr solve
+ for (Index k=0; k<actualPanelWidth; ++k)
+ {
+ // TODO write a small kernel handling this (can be shared with trsv)
+ Index i = IsLower ? k2+k1+k : k2-k1-k-1;
+ Index rs = actualPanelWidth - k - 1; // remaining size
+ Index s = TriStorageOrder==RowMajor ? (IsLower ? k2+k1 : i+1)
+ : IsLower ? i+1 : i-rs;
+
+ Scalar a = (Mode & UnitDiag) ? Scalar(1) : Scalar(1)/conj(tri(i,i));
+ for (Index j=j2; j<j2+actual_cols; ++j)
+ {
+ if (TriStorageOrder==RowMajor)
+ {
+ Scalar b(0);
+ const Scalar* l = &tri(i,s);
+ Scalar* r = &other(s,j);
+ for (Index i3=0; i3<k; ++i3)
+ b += conj(l[i3]) * r[i3];
+
+ other(i,j) = (other(i,j) - b)*a;
+ }
+ else
+ {
+ Scalar b = (other(i,j) *= a);
+ Scalar* r = &other(s,j);
+ const Scalar* l = &tri(s,i);
+ for (Index i3=0;i3<rs;++i3)
+ r[i3] -= b * conj(l[i3]);
+ }
+ }
+ }
+
+ Index lengthTarget = actual_kc-k1-actualPanelWidth;
+ Index startBlock = IsLower ? k2+k1 : k2-k1-actualPanelWidth;
+ Index blockBOffset = IsLower ? k1 : lengthTarget;
+
+ // update the respective rows of B from other
+ pack_rhs(blockB+actual_kc*j2, other.getSubMapper(startBlock,j2), actualPanelWidth, actual_cols, actual_kc, blockBOffset);
+
+ // GEBP
+ if (lengthTarget>0)
+ {
+ Index startTarget = IsLower ? k2+k1+actualPanelWidth : k2-actual_kc;
+
+ pack_lhs(blockA, tri.getSubMapper(startTarget,startBlock), actualPanelWidth, lengthTarget);
+
+ gebp_kernel(other.getSubMapper(startTarget,j2), blockA, blockB+actual_kc*j2, lengthTarget, actualPanelWidth, actual_cols, Scalar(-1),
+ actualPanelWidth, actual_kc, 0, blockBOffset);
+ }
+ }
+ }
+
+ // R2 -= A21 * B => GEPP
+ {
+ Index start = IsLower ? k2+kc : 0;
+ Index end = IsLower ? size : k2-kc;
+ for(Index i2=start; i2<end; i2+=mc)
+ {
+ const Index actual_mc = (std::min)(mc,end-i2);
+ if (actual_mc>0)
+ {
+ pack_lhs(blockA, tri.getSubMapper(i2, IsLower ? k2 : k2-kc), actual_kc, actual_mc);
+
+ gebp_kernel(other.getSubMapper(i2, 0), blockA, blockB, actual_mc, actual_kc, cols, Scalar(-1), -1, -1, 0, 0);
+ }
+ }
+ }
+ }
+ }
+
+/* Optimized triangular solver with multiple left hand sides and the triangular matrix on the right
+ */
+template <typename Scalar, typename Index, int Mode, bool Conjugate, int TriStorageOrder>
+struct triangular_solve_matrix<Scalar,Index,OnTheRight,Mode,Conjugate,TriStorageOrder,ColMajor>
+{
+ static EIGEN_DONT_INLINE void run(
+ Index size, Index otherSize,
+ const Scalar* _tri, Index triStride,
+ Scalar* _other, Index otherStride,
+ level3_blocking<Scalar,Scalar>& blocking);
+};
+template <typename Scalar, typename Index, int Mode, bool Conjugate, int TriStorageOrder>
+EIGEN_DONT_INLINE void triangular_solve_matrix<Scalar,Index,OnTheRight,Mode,Conjugate,TriStorageOrder,ColMajor>::run(
+ Index size, Index otherSize,
+ const Scalar* _tri, Index triStride,
+ Scalar* _other, Index otherStride,
+ level3_blocking<Scalar,Scalar>& blocking)
+ {
+ Index rows = otherSize;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+
+ typedef blas_data_mapper<Scalar, Index, ColMajor> LhsMapper;
+ typedef const_blas_data_mapper<Scalar, Index, TriStorageOrder> RhsMapper;
+ LhsMapper lhs(_other, otherStride);
+ RhsMapper rhs(_tri, triStride);
+
+ typedef gebp_traits<Scalar,Scalar> Traits;
+ enum {
+ RhsStorageOrder = TriStorageOrder,
+ SmallPanelWidth = EIGEN_PLAIN_ENUM_MAX(Traits::mr,Traits::nr),
+ IsLower = (Mode&Lower) == Lower
+ };
+
+ Index kc = blocking.kc(); // cache block size along the K direction
+ Index mc = (std::min)(rows,blocking.mc()); // cache block size along the M direction
+
+ std::size_t sizeA = kc*mc;
+ std::size_t sizeB = kc*size;
+
+ ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
+ ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
+
+ conj_if<Conjugate> conj;
+ gebp_kernel<Scalar, Scalar, Index, LhsMapper, Traits::mr, Traits::nr, false, Conjugate> gebp_kernel;
+ gemm_pack_rhs<Scalar, Index, RhsMapper, Traits::nr, RhsStorageOrder> pack_rhs;
+ gemm_pack_rhs<Scalar, Index, RhsMapper, Traits::nr, RhsStorageOrder,false,true> pack_rhs_panel;
+ gemm_pack_lhs<Scalar, Index, LhsMapper, Traits::mr, Traits::LhsProgress, ColMajor, false, true> pack_lhs_panel;
+
+ for(Index k2=IsLower ? size : 0;
+ IsLower ? k2>0 : k2<size;
+ IsLower ? k2-=kc : k2+=kc)
+ {
+ const Index actual_kc = (std::min)(IsLower ? k2 : size-k2, kc);
+ Index actual_k2 = IsLower ? k2-actual_kc : k2 ;
+
+ Index startPanel = IsLower ? 0 : k2+actual_kc;
+ Index rs = IsLower ? actual_k2 : size - actual_k2 - actual_kc;
+ Scalar* geb = blockB+actual_kc*actual_kc;
+
+ if (rs>0) pack_rhs(geb, rhs.getSubMapper(actual_k2,startPanel), actual_kc, rs);
+
+ // triangular packing (we only pack the panels off the diagonal,
+ // neglecting the blocks overlapping the diagonal
+ {
+ for (Index j2=0; j2<actual_kc; j2+=SmallPanelWidth)
+ {
+ Index actualPanelWidth = std::min<Index>(actual_kc-j2, SmallPanelWidth);
+ Index actual_j2 = actual_k2 + j2;
+ Index panelOffset = IsLower ? j2+actualPanelWidth : 0;
+ Index panelLength = IsLower ? actual_kc-j2-actualPanelWidth : j2;
+
+ if (panelLength>0)
+ pack_rhs_panel(blockB+j2*actual_kc,
+ rhs.getSubMapper(actual_k2+panelOffset, actual_j2),
+ panelLength, actualPanelWidth,
+ actual_kc, panelOffset);
+ }
+ }
+
+ for(Index i2=0; i2<rows; i2+=mc)
+ {
+ const Index actual_mc = (std::min)(mc,rows-i2);
+
+ // triangular solver kernel
+ {
+ // for each small block of the diagonal (=> vertical panels of rhs)
+ for (Index j2 = IsLower
+ ? (actual_kc - ((actual_kc%SmallPanelWidth) ? Index(actual_kc%SmallPanelWidth)
+ : Index(SmallPanelWidth)))
+ : 0;
+ IsLower ? j2>=0 : j2<actual_kc;
+ IsLower ? j2-=SmallPanelWidth : j2+=SmallPanelWidth)
+ {
+ Index actualPanelWidth = std::min<Index>(actual_kc-j2, SmallPanelWidth);
+ Index absolute_j2 = actual_k2 + j2;
+ Index panelOffset = IsLower ? j2+actualPanelWidth : 0;
+ Index panelLength = IsLower ? actual_kc - j2 - actualPanelWidth : j2;
+
+ // GEBP
+ if(panelLength>0)
+ {
+ gebp_kernel(lhs.getSubMapper(i2,absolute_j2),
+ blockA, blockB+j2*actual_kc,
+ actual_mc, panelLength, actualPanelWidth,
+ Scalar(-1),
+ actual_kc, actual_kc, // strides
+ panelOffset, panelOffset); // offsets
+ }
+
+ // unblocked triangular solve
+ for (Index k=0; k<actualPanelWidth; ++k)
+ {
+ Index j = IsLower ? absolute_j2+actualPanelWidth-k-1 : absolute_j2+k;
+
+ Scalar* r = &lhs(i2,j);
+ for (Index k3=0; k3<k; ++k3)
+ {
+ Scalar b = conj(rhs(IsLower ? j+1+k3 : absolute_j2+k3,j));
+ Scalar* a = &lhs(i2,IsLower ? j+1+k3 : absolute_j2+k3);
+ for (Index i=0; i<actual_mc; ++i)
+ r[i] -= a[i] * b;
+ }
+ if((Mode & UnitDiag)==0)
+ {
+ Scalar inv_rjj = RealScalar(1)/conj(rhs(j,j));
+ for (Index i=0; i<actual_mc; ++i)
+ r[i] *= inv_rjj;
+ }
+ }
+
+ // pack the just computed part of lhs to A
+ pack_lhs_panel(blockA, LhsMapper(_other+absolute_j2*otherStride+i2, otherStride),
+ actualPanelWidth, actual_mc,
+ actual_kc, j2);
+ }
+ }
+
+ if (rs>0)
+ gebp_kernel(lhs.getSubMapper(i2, startPanel), blockA, geb,
+ actual_mc, actual_kc, rs, Scalar(-1),
+ -1, -1, 0, 0);
+ }
+ }
+ }
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIANGULAR_SOLVER_MATRIX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h
new file mode 100644
index 000000000..88c0fb794
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h
@@ -0,0 +1,151 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ * Content : Eigen bindings to BLAS F77
+ * Triangular matrix * matrix product functionality based on ?TRMM.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_TRIANGULAR_SOLVER_MATRIX_BLAS_H
+#define EIGEN_TRIANGULAR_SOLVER_MATRIX_BLAS_H
+
+namespace Eigen {
+
+namespace internal {
+
+// implements LeftSide op(triangular)^-1 * general
+#define EIGEN_BLAS_TRSM_L(EIGTYPE, BLASTYPE, BLASPREFIX) \
+template <typename Index, int Mode, bool Conjugate, int TriStorageOrder> \
+struct triangular_solve_matrix<EIGTYPE,Index,OnTheLeft,Mode,Conjugate,TriStorageOrder,ColMajor> \
+{ \
+ enum { \
+ IsLower = (Mode&Lower) == Lower, \
+ IsUnitDiag = (Mode&UnitDiag) ? 1 : 0, \
+ IsZeroDiag = (Mode&ZeroDiag) ? 1 : 0, \
+ conjA = ((TriStorageOrder==ColMajor) && Conjugate) ? 1 : 0 \
+ }; \
+ static void run( \
+ Index size, Index otherSize, \
+ const EIGTYPE* _tri, Index triStride, \
+ EIGTYPE* _other, Index otherStride, level3_blocking<EIGTYPE,EIGTYPE>& /*blocking*/) \
+ { \
+ BlasIndex m = convert_index<BlasIndex>(size), n = convert_index<BlasIndex>(otherSize), lda, ldb; \
+ char side = 'L', uplo, diag='N', transa; \
+ /* Set alpha_ */ \
+ EIGTYPE alpha(1); \
+ ldb = convert_index<BlasIndex>(otherStride);\
+\
+ const EIGTYPE *a; \
+/* Set trans */ \
+ transa = (TriStorageOrder==RowMajor) ? ((Conjugate) ? 'C' : 'T') : 'N'; \
+/* Set uplo */ \
+ uplo = IsLower ? 'L' : 'U'; \
+ if (TriStorageOrder==RowMajor) uplo = (uplo == 'L') ? 'U' : 'L'; \
+/* Set a, lda */ \
+ typedef Matrix<EIGTYPE, Dynamic, Dynamic, TriStorageOrder> MatrixTri; \
+ Map<const MatrixTri, 0, OuterStride<> > tri(_tri,size,size,OuterStride<>(triStride)); \
+ MatrixTri a_tmp; \
+\
+ if (conjA) { \
+ a_tmp = tri.conjugate(); \
+ a = a_tmp.data(); \
+ lda = convert_index<BlasIndex>(a_tmp.outerStride()); \
+ } else { \
+ a = _tri; \
+ lda = convert_index<BlasIndex>(triStride); \
+ } \
+ if (IsUnitDiag) diag='U'; \
+/* call ?trsm*/ \
+ BLASPREFIX##trsm_(&side, &uplo, &transa, &diag, &m, &n, &numext::real_ref(alpha), (const BLASTYPE*)a, &lda, (BLASTYPE*)_other, &ldb); \
+ } \
+};
+
+EIGEN_BLAS_TRSM_L(double, double, d)
+EIGEN_BLAS_TRSM_L(dcomplex, double, z)
+EIGEN_BLAS_TRSM_L(float, float, s)
+EIGEN_BLAS_TRSM_L(scomplex, float, c)
+
+
+// implements RightSide general * op(triangular)^-1
+#define EIGEN_BLAS_TRSM_R(EIGTYPE, BLASTYPE, BLASPREFIX) \
+template <typename Index, int Mode, bool Conjugate, int TriStorageOrder> \
+struct triangular_solve_matrix<EIGTYPE,Index,OnTheRight,Mode,Conjugate,TriStorageOrder,ColMajor> \
+{ \
+ enum { \
+ IsLower = (Mode&Lower) == Lower, \
+ IsUnitDiag = (Mode&UnitDiag) ? 1 : 0, \
+ IsZeroDiag = (Mode&ZeroDiag) ? 1 : 0, \
+ conjA = ((TriStorageOrder==ColMajor) && Conjugate) ? 1 : 0 \
+ }; \
+ static void run( \
+ Index size, Index otherSize, \
+ const EIGTYPE* _tri, Index triStride, \
+ EIGTYPE* _other, Index otherStride, level3_blocking<EIGTYPE,EIGTYPE>& /*blocking*/) \
+ { \
+ BlasIndex m = convert_index<BlasIndex>(otherSize), n = convert_index<BlasIndex>(size), lda, ldb; \
+ char side = 'R', uplo, diag='N', transa; \
+ /* Set alpha_ */ \
+ EIGTYPE alpha(1); \
+ ldb = convert_index<BlasIndex>(otherStride);\
+\
+ const EIGTYPE *a; \
+/* Set trans */ \
+ transa = (TriStorageOrder==RowMajor) ? ((Conjugate) ? 'C' : 'T') : 'N'; \
+/* Set uplo */ \
+ uplo = IsLower ? 'L' : 'U'; \
+ if (TriStorageOrder==RowMajor) uplo = (uplo == 'L') ? 'U' : 'L'; \
+/* Set a, lda */ \
+ typedef Matrix<EIGTYPE, Dynamic, Dynamic, TriStorageOrder> MatrixTri; \
+ Map<const MatrixTri, 0, OuterStride<> > tri(_tri,size,size,OuterStride<>(triStride)); \
+ MatrixTri a_tmp; \
+\
+ if (conjA) { \
+ a_tmp = tri.conjugate(); \
+ a = a_tmp.data(); \
+ lda = convert_index<BlasIndex>(a_tmp.outerStride()); \
+ } else { \
+ a = _tri; \
+ lda = convert_index<BlasIndex>(triStride); \
+ } \
+ if (IsUnitDiag) diag='U'; \
+/* call ?trsm*/ \
+ BLASPREFIX##trsm_(&side, &uplo, &transa, &diag, &m, &n, &numext::real_ref(alpha), (const BLASTYPE*)a, &lda, (BLASTYPE*)_other, &ldb); \
+ /*std::cout << "TRMS_L specialization!\n";*/ \
+ } \
+};
+
+EIGEN_BLAS_TRSM_R(double, double, d)
+EIGEN_BLAS_TRSM_R(dcomplex, double, z)
+EIGEN_BLAS_TRSM_R(float, float, s)
+EIGEN_BLAS_TRSM_R(scomplex, float, c)
+
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIANGULAR_SOLVER_MATRIX_BLAS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularSolverVector.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularSolverVector.h
new file mode 100644
index 000000000..b994759b2
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/products/TriangularSolverVector.h
@@ -0,0 +1,145 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRIANGULAR_SOLVER_VECTOR_H
+#define EIGEN_TRIANGULAR_SOLVER_VECTOR_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename LhsScalar, typename RhsScalar, typename Index, int Mode, bool Conjugate, int StorageOrder>
+struct triangular_solve_vector<LhsScalar, RhsScalar, Index, OnTheRight, Mode, Conjugate, StorageOrder>
+{
+ static void run(Index size, const LhsScalar* _lhs, Index lhsStride, RhsScalar* rhs)
+ {
+ triangular_solve_vector<LhsScalar,RhsScalar,Index,OnTheLeft,
+ ((Mode&Upper)==Upper ? Lower : Upper) | (Mode&UnitDiag),
+ Conjugate,StorageOrder==RowMajor?ColMajor:RowMajor
+ >::run(size, _lhs, lhsStride, rhs);
+ }
+};
+
+// forward and backward substitution, row-major, rhs is a vector
+template<typename LhsScalar, typename RhsScalar, typename Index, int Mode, bool Conjugate>
+struct triangular_solve_vector<LhsScalar, RhsScalar, Index, OnTheLeft, Mode, Conjugate, RowMajor>
+{
+ enum {
+ IsLower = ((Mode&Lower)==Lower)
+ };
+ static void run(Index size, const LhsScalar* _lhs, Index lhsStride, RhsScalar* rhs)
+ {
+ typedef Map<const Matrix<LhsScalar,Dynamic,Dynamic,RowMajor>, 0, OuterStride<> > LhsMap;
+ const LhsMap lhs(_lhs,size,size,OuterStride<>(lhsStride));
+
+ typedef const_blas_data_mapper<LhsScalar,Index,RowMajor> LhsMapper;
+ typedef const_blas_data_mapper<RhsScalar,Index,ColMajor> RhsMapper;
+
+ typename internal::conditional<
+ Conjugate,
+ const CwiseUnaryOp<typename internal::scalar_conjugate_op<LhsScalar>,LhsMap>,
+ const LhsMap&>
+ ::type cjLhs(lhs);
+ static const Index PanelWidth = EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH;
+ for(Index pi=IsLower ? 0 : size;
+ IsLower ? pi<size : pi>0;
+ IsLower ? pi+=PanelWidth : pi-=PanelWidth)
+ {
+ Index actualPanelWidth = (std::min)(IsLower ? size - pi : pi, PanelWidth);
+
+ Index r = IsLower ? pi : size - pi; // remaining size
+ if (r > 0)
+ {
+ // let's directly call the low level product function because:
+ // 1 - it is faster to compile
+ // 2 - it is slighlty faster at runtime
+ Index startRow = IsLower ? pi : pi-actualPanelWidth;
+ Index startCol = IsLower ? 0 : pi;
+
+ general_matrix_vector_product<Index,LhsScalar,LhsMapper,RowMajor,Conjugate,RhsScalar,RhsMapper,false>::run(
+ actualPanelWidth, r,
+ LhsMapper(&lhs.coeffRef(startRow,startCol), lhsStride),
+ RhsMapper(rhs + startCol, 1),
+ rhs + startRow, 1,
+ RhsScalar(-1));
+ }
+
+ for(Index k=0; k<actualPanelWidth; ++k)
+ {
+ Index i = IsLower ? pi+k : pi-k-1;
+ Index s = IsLower ? pi : i+1;
+ if (k>0)
+ rhs[i] -= (cjLhs.row(i).segment(s,k).transpose().cwiseProduct(Map<const Matrix<RhsScalar,Dynamic,1> >(rhs+s,k))).sum();
+
+ if(!(Mode & UnitDiag))
+ rhs[i] /= cjLhs(i,i);
+ }
+ }
+ }
+};
+
+// forward and backward substitution, column-major, rhs is a vector
+template<typename LhsScalar, typename RhsScalar, typename Index, int Mode, bool Conjugate>
+struct triangular_solve_vector<LhsScalar, RhsScalar, Index, OnTheLeft, Mode, Conjugate, ColMajor>
+{
+ enum {
+ IsLower = ((Mode&Lower)==Lower)
+ };
+ static void run(Index size, const LhsScalar* _lhs, Index lhsStride, RhsScalar* rhs)
+ {
+ typedef Map<const Matrix<LhsScalar,Dynamic,Dynamic,ColMajor>, 0, OuterStride<> > LhsMap;
+ const LhsMap lhs(_lhs,size,size,OuterStride<>(lhsStride));
+ typedef const_blas_data_mapper<LhsScalar,Index,ColMajor> LhsMapper;
+ typedef const_blas_data_mapper<RhsScalar,Index,ColMajor> RhsMapper;
+ typename internal::conditional<Conjugate,
+ const CwiseUnaryOp<typename internal::scalar_conjugate_op<LhsScalar>,LhsMap>,
+ const LhsMap&
+ >::type cjLhs(lhs);
+ static const Index PanelWidth = EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH;
+
+ for(Index pi=IsLower ? 0 : size;
+ IsLower ? pi<size : pi>0;
+ IsLower ? pi+=PanelWidth : pi-=PanelWidth)
+ {
+ Index actualPanelWidth = (std::min)(IsLower ? size - pi : pi, PanelWidth);
+ Index startBlock = IsLower ? pi : pi-actualPanelWidth;
+ Index endBlock = IsLower ? pi + actualPanelWidth : 0;
+
+ for(Index k=0; k<actualPanelWidth; ++k)
+ {
+ Index i = IsLower ? pi+k : pi-k-1;
+ if(!(Mode & UnitDiag))
+ rhs[i] /= cjLhs.coeff(i,i);
+
+ Index r = actualPanelWidth - k - 1; // remaining size
+ Index s = IsLower ? i+1 : i-r;
+ if (r>0)
+ Map<Matrix<RhsScalar,Dynamic,1> >(rhs+s,r) -= rhs[i] * cjLhs.col(i).segment(s,r);
+ }
+ Index r = IsLower ? size - endBlock : startBlock; // remaining size
+ if (r > 0)
+ {
+ // let's directly call the low level product function because:
+ // 1 - it is faster to compile
+ // 2 - it is slighlty faster at runtime
+ general_matrix_vector_product<Index,LhsScalar,LhsMapper,ColMajor,Conjugate,RhsScalar,RhsMapper,false>::run(
+ r, actualPanelWidth,
+ LhsMapper(&lhs.coeffRef(endBlock,startBlock), lhsStride),
+ RhsMapper(rhs+startBlock, 1),
+ rhs+endBlock, 1, RhsScalar(-1));
+ }
+ }
+ }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIANGULAR_SOLVER_VECTOR_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/BlasUtil.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/BlasUtil.h
new file mode 100755
index 000000000..6e6ee119b
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/BlasUtil.h
@@ -0,0 +1,398 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BLASUTIL_H
+#define EIGEN_BLASUTIL_H
+
+// This file contains many lightweight helper classes used to
+// implement and control fast level 2 and level 3 BLAS-like routines.
+
+namespace Eigen {
+
+namespace internal {
+
+// forward declarations
+template<typename LhsScalar, typename RhsScalar, typename Index, typename DataMapper, int mr, int nr, bool ConjugateLhs=false, bool ConjugateRhs=false>
+struct gebp_kernel;
+
+template<typename Scalar, typename Index, typename DataMapper, int nr, int StorageOrder, bool Conjugate = false, bool PanelMode=false>
+struct gemm_pack_rhs;
+
+template<typename Scalar, typename Index, typename DataMapper, int Pack1, int Pack2, int StorageOrder, bool Conjugate = false, bool PanelMode = false>
+struct gemm_pack_lhs;
+
+template<
+ typename Index,
+ typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs,
+ typename RhsScalar, int RhsStorageOrder, bool ConjugateRhs,
+ int ResStorageOrder>
+struct general_matrix_matrix_product;
+
+template<typename Index,
+ typename LhsScalar, typename LhsMapper, int LhsStorageOrder, bool ConjugateLhs,
+ typename RhsScalar, typename RhsMapper, bool ConjugateRhs, int Version=Specialized>
+struct general_matrix_vector_product;
+
+
+template<bool Conjugate> struct conj_if;
+
+template<> struct conj_if<true> {
+ template<typename T>
+ inline T operator()(const T& x) const { return numext::conj(x); }
+ template<typename T>
+ inline T pconj(const T& x) const { return internal::pconj(x); }
+};
+
+template<> struct conj_if<false> {
+ template<typename T>
+ inline const T& operator()(const T& x) const { return x; }
+ template<typename T>
+ inline const T& pconj(const T& x) const { return x; }
+};
+
+// Generic implementation for custom complex types.
+template<typename LhsScalar, typename RhsScalar, bool ConjLhs, bool ConjRhs>
+struct conj_helper
+{
+ typedef typename ScalarBinaryOpTraits<LhsScalar,RhsScalar>::ReturnType Scalar;
+
+ EIGEN_STRONG_INLINE Scalar pmadd(const LhsScalar& x, const RhsScalar& y, const Scalar& c) const
+ { return padd(c, pmul(x,y)); }
+
+ EIGEN_STRONG_INLINE Scalar pmul(const LhsScalar& x, const RhsScalar& y) const
+ { return conj_if<ConjLhs>()(x) * conj_if<ConjRhs>()(y); }
+};
+
+template<typename Scalar> struct conj_helper<Scalar,Scalar,false,false>
+{
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const Scalar& y, const Scalar& c) const { return internal::pmadd(x,y,c); }
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const Scalar& y) const { return internal::pmul(x,y); }
+};
+
+template<typename RealScalar> struct conj_helper<std::complex<RealScalar>, std::complex<RealScalar>, false,true>
+{
+ typedef std::complex<RealScalar> Scalar;
+ EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const Scalar& y, const Scalar& c) const
+ { return c + pmul(x,y); }
+
+ EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const Scalar& y) const
+ { return Scalar(numext::real(x)*numext::real(y) + numext::imag(x)*numext::imag(y), numext::imag(x)*numext::real(y) - numext::real(x)*numext::imag(y)); }
+};
+
+template<typename RealScalar> struct conj_helper<std::complex<RealScalar>, std::complex<RealScalar>, true,false>
+{
+ typedef std::complex<RealScalar> Scalar;
+ EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const Scalar& y, const Scalar& c) const
+ { return c + pmul(x,y); }
+
+ EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const Scalar& y) const
+ { return Scalar(numext::real(x)*numext::real(y) + numext::imag(x)*numext::imag(y), numext::real(x)*numext::imag(y) - numext::imag(x)*numext::real(y)); }
+};
+
+template<typename RealScalar> struct conj_helper<std::complex<RealScalar>, std::complex<RealScalar>, true,true>
+{
+ typedef std::complex<RealScalar> Scalar;
+ EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const Scalar& y, const Scalar& c) const
+ { return c + pmul(x,y); }
+
+ EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const Scalar& y) const
+ { return Scalar(numext::real(x)*numext::real(y) - numext::imag(x)*numext::imag(y), - numext::real(x)*numext::imag(y) - numext::imag(x)*numext::real(y)); }
+};
+
+template<typename RealScalar,bool Conj> struct conj_helper<std::complex<RealScalar>, RealScalar, Conj,false>
+{
+ typedef std::complex<RealScalar> Scalar;
+ EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const RealScalar& y, const Scalar& c) const
+ { return padd(c, pmul(x,y)); }
+ EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const RealScalar& y) const
+ { return conj_if<Conj>()(x)*y; }
+};
+
+template<typename RealScalar,bool Conj> struct conj_helper<RealScalar, std::complex<RealScalar>, false,Conj>
+{
+ typedef std::complex<RealScalar> Scalar;
+ EIGEN_STRONG_INLINE Scalar pmadd(const RealScalar& x, const Scalar& y, const Scalar& c) const
+ { return padd(c, pmul(x,y)); }
+ EIGEN_STRONG_INLINE Scalar pmul(const RealScalar& x, const Scalar& y) const
+ { return x*conj_if<Conj>()(y); }
+};
+
+template<typename From,typename To> struct get_factor {
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE To run(const From& x) { return To(x); }
+};
+
+template<typename Scalar> struct get_factor<Scalar,typename NumTraits<Scalar>::Real> {
+ EIGEN_DEVICE_FUNC
+ static EIGEN_STRONG_INLINE typename NumTraits<Scalar>::Real run(const Scalar& x) { return numext::real(x); }
+};
+
+
+template<typename Scalar, typename Index>
+class BlasVectorMapper {
+ public:
+ EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE BlasVectorMapper(Scalar *data) : m_data(data) {}
+
+ EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE Scalar operator()(Index i) const {
+ return m_data[i];
+ }
+ template <typename Packet, int AlignmentType>
+ EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE Packet load(Index i) const {
+ return ploadt<Packet, AlignmentType>(m_data + i);
+ }
+
+ template <typename Packet>
+ EIGEN_DEVICE_FUNC bool aligned(Index i) const {
+ return (UIntPtr(m_data+i)%sizeof(Packet))==0;
+ }
+
+ protected:
+ Scalar* m_data;
+};
+
+template<typename Scalar, typename Index, int AlignmentType>
+class BlasLinearMapper {
+ public:
+ typedef typename packet_traits<Scalar>::type Packet;
+ typedef typename packet_traits<Scalar>::half HalfPacket;
+
+ EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE BlasLinearMapper(Scalar *data) : m_data(data) {}
+
+ EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE void prefetch(int i) const {
+ internal::prefetch(&operator()(i));
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE Scalar& operator()(Index i) const {
+ return m_data[i];
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE Packet loadPacket(Index i) const {
+ return ploadt<Packet, AlignmentType>(m_data + i);
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE HalfPacket loadHalfPacket(Index i) const {
+ return ploadt<HalfPacket, AlignmentType>(m_data + i);
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE void storePacket(Index i, const Packet &p) const {
+ pstoret<Scalar, Packet, AlignmentType>(m_data + i, p);
+ }
+
+ protected:
+ Scalar *m_data;
+};
+
+// Lightweight helper class to access matrix coefficients.
+template<typename Scalar, typename Index, int StorageOrder, int AlignmentType = Unaligned>
+class blas_data_mapper {
+ public:
+ typedef typename packet_traits<Scalar>::type Packet;
+ typedef typename packet_traits<Scalar>::half HalfPacket;
+
+ typedef BlasLinearMapper<Scalar, Index, AlignmentType> LinearMapper;
+ typedef BlasVectorMapper<Scalar, Index> VectorMapper;
+
+ EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE blas_data_mapper(Scalar* data, Index stride) : m_data(data), m_stride(stride) {}
+
+ EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE blas_data_mapper<Scalar, Index, StorageOrder, AlignmentType>
+ getSubMapper(Index i, Index j) const {
+ return blas_data_mapper<Scalar, Index, StorageOrder, AlignmentType>(&operator()(i, j), m_stride);
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE LinearMapper getLinearMapper(Index i, Index j) const {
+ return LinearMapper(&operator()(i, j));
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE VectorMapper getVectorMapper(Index i, Index j) const {
+ return VectorMapper(&operator()(i, j));
+ }
+
+
+ EIGEN_DEVICE_FUNC
+ EIGEN_ALWAYS_INLINE Scalar& operator()(Index i, Index j) const {
+ return m_data[StorageOrder==RowMajor ? j + i*m_stride : i + j*m_stride];
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE Packet loadPacket(Index i, Index j) const {
+ return ploadt<Packet, AlignmentType>(&operator()(i, j));
+ }
+
+ EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE HalfPacket loadHalfPacket(Index i, Index j) const {
+ return ploadt<HalfPacket, AlignmentType>(&operator()(i, j));
+ }
+
+ template<typename SubPacket>
+ EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE void scatterPacket(Index i, Index j, const SubPacket &p) const {
+ pscatter<Scalar, SubPacket>(&operator()(i, j), p, m_stride);
+ }
+
+ template<typename SubPacket>
+ EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE SubPacket gatherPacket(Index i, Index j) const {
+ return pgather<Scalar, SubPacket>(&operator()(i, j), m_stride);
+ }
+
+ EIGEN_DEVICE_FUNC const Index stride() const { return m_stride; }
+ EIGEN_DEVICE_FUNC const Scalar* data() const { return m_data; }
+
+ EIGEN_DEVICE_FUNC Index firstAligned(Index size) const {
+ if (UIntPtr(m_data)%sizeof(Scalar)) {
+ return -1;
+ }
+ return internal::first_default_aligned(m_data, size);
+ }
+
+ protected:
+ Scalar* EIGEN_RESTRICT m_data;
+ const Index m_stride;
+};
+
+// lightweight helper class to access matrix coefficients (const version)
+template<typename Scalar, typename Index, int StorageOrder>
+class const_blas_data_mapper : public blas_data_mapper<const Scalar, Index, StorageOrder> {
+ public:
+ EIGEN_ALWAYS_INLINE const_blas_data_mapper(const Scalar *data, Index stride) : blas_data_mapper<const Scalar, Index, StorageOrder>(data, stride) {}
+
+ EIGEN_ALWAYS_INLINE const_blas_data_mapper<Scalar, Index, StorageOrder> getSubMapper(Index i, Index j) const {
+ return const_blas_data_mapper<Scalar, Index, StorageOrder>(&(this->operator()(i, j)), this->m_stride);
+ }
+};
+
+
+/* Helper class to analyze the factors of a Product expression.
+ * In particular it allows to pop out operator-, scalar multiples,
+ * and conjugate */
+template<typename XprType> struct blas_traits
+{
+ typedef typename traits<XprType>::Scalar Scalar;
+ typedef const XprType& ExtractType;
+ typedef XprType _ExtractType;
+ enum {
+ IsComplex = NumTraits<Scalar>::IsComplex,
+ IsTransposed = false,
+ NeedToConjugate = false,
+ HasUsableDirectAccess = ( (int(XprType::Flags)&DirectAccessBit)
+ && ( bool(XprType::IsVectorAtCompileTime)
+ || int(inner_stride_at_compile_time<XprType>::ret) == 1)
+ ) ? 1 : 0
+ };
+ typedef typename conditional<bool(HasUsableDirectAccess),
+ ExtractType,
+ typename _ExtractType::PlainObject
+ >::type DirectLinearAccessType;
+ static inline ExtractType extract(const XprType& x) { return x; }
+ static inline const Scalar extractScalarFactor(const XprType&) { return Scalar(1); }
+};
+
+// pop conjugate
+template<typename Scalar, typename NestedXpr>
+struct blas_traits<CwiseUnaryOp<scalar_conjugate_op<Scalar>, NestedXpr> >
+ : blas_traits<NestedXpr>
+{
+ typedef blas_traits<NestedXpr> Base;
+ typedef CwiseUnaryOp<scalar_conjugate_op<Scalar>, NestedXpr> XprType;
+ typedef typename Base::ExtractType ExtractType;
+
+ enum {
+ IsComplex = NumTraits<Scalar>::IsComplex,
+ NeedToConjugate = Base::NeedToConjugate ? 0 : IsComplex
+ };
+ static inline ExtractType extract(const XprType& x) { return Base::extract(x.nestedExpression()); }
+ static inline Scalar extractScalarFactor(const XprType& x) { return conj(Base::extractScalarFactor(x.nestedExpression())); }
+};
+
+// pop scalar multiple
+template<typename Scalar, typename NestedXpr, typename Plain>
+struct blas_traits<CwiseBinaryOp<scalar_product_op<Scalar>, const CwiseNullaryOp<scalar_constant_op<Scalar>,Plain>, NestedXpr> >
+ : blas_traits<NestedXpr>
+{
+ typedef blas_traits<NestedXpr> Base;
+ typedef CwiseBinaryOp<scalar_product_op<Scalar>, const CwiseNullaryOp<scalar_constant_op<Scalar>,Plain>, NestedXpr> XprType;
+ typedef typename Base::ExtractType ExtractType;
+ static inline ExtractType extract(const XprType& x) { return Base::extract(x.rhs()); }
+ static inline Scalar extractScalarFactor(const XprType& x)
+ { return x.lhs().functor().m_other * Base::extractScalarFactor(x.rhs()); }
+};
+template<typename Scalar, typename NestedXpr, typename Plain>
+struct blas_traits<CwiseBinaryOp<scalar_product_op<Scalar>, NestedXpr, const CwiseNullaryOp<scalar_constant_op<Scalar>,Plain> > >
+ : blas_traits<NestedXpr>
+{
+ typedef blas_traits<NestedXpr> Base;
+ typedef CwiseBinaryOp<scalar_product_op<Scalar>, NestedXpr, const CwiseNullaryOp<scalar_constant_op<Scalar>,Plain> > XprType;
+ typedef typename Base::ExtractType ExtractType;
+ static inline ExtractType extract(const XprType& x) { return Base::extract(x.lhs()); }
+ static inline Scalar extractScalarFactor(const XprType& x)
+ { return Base::extractScalarFactor(x.lhs()) * x.rhs().functor().m_other; }
+};
+template<typename Scalar, typename Plain1, typename Plain2>
+struct blas_traits<CwiseBinaryOp<scalar_product_op<Scalar>, const CwiseNullaryOp<scalar_constant_op<Scalar>,Plain1>,
+ const CwiseNullaryOp<scalar_constant_op<Scalar>,Plain2> > >
+ : blas_traits<CwiseNullaryOp<scalar_constant_op<Scalar>,Plain1> >
+{};
+
+// pop opposite
+template<typename Scalar, typename NestedXpr>
+struct blas_traits<CwiseUnaryOp<scalar_opposite_op<Scalar>, NestedXpr> >
+ : blas_traits<NestedXpr>
+{
+ typedef blas_traits<NestedXpr> Base;
+ typedef CwiseUnaryOp<scalar_opposite_op<Scalar>, NestedXpr> XprType;
+ typedef typename Base::ExtractType ExtractType;
+ static inline ExtractType extract(const XprType& x) { return Base::extract(x.nestedExpression()); }
+ static inline Scalar extractScalarFactor(const XprType& x)
+ { return - Base::extractScalarFactor(x.nestedExpression()); }
+};
+
+// pop/push transpose
+template<typename NestedXpr>
+struct blas_traits<Transpose<NestedXpr> >
+ : blas_traits<NestedXpr>
+{
+ typedef typename NestedXpr::Scalar Scalar;
+ typedef blas_traits<NestedXpr> Base;
+ typedef Transpose<NestedXpr> XprType;
+ typedef Transpose<const typename Base::_ExtractType> ExtractType; // const to get rid of a compile error; anyway blas traits are only used on the RHS
+ typedef Transpose<const typename Base::_ExtractType> _ExtractType;
+ typedef typename conditional<bool(Base::HasUsableDirectAccess),
+ ExtractType,
+ typename ExtractType::PlainObject
+ >::type DirectLinearAccessType;
+ enum {
+ IsTransposed = Base::IsTransposed ? 0 : 1
+ };
+ static inline ExtractType extract(const XprType& x) { return ExtractType(Base::extract(x.nestedExpression())); }
+ static inline Scalar extractScalarFactor(const XprType& x) { return Base::extractScalarFactor(x.nestedExpression()); }
+};
+
+template<typename T>
+struct blas_traits<const T>
+ : blas_traits<T>
+{};
+
+template<typename T, bool HasUsableDirectAccess=blas_traits<T>::HasUsableDirectAccess>
+struct extract_data_selector {
+ static const typename T::Scalar* run(const T& m)
+ {
+ return blas_traits<T>::extract(m).data();
+ }
+};
+
+template<typename T>
+struct extract_data_selector<T,false> {
+ static typename T::Scalar* run(const T&) { return 0; }
+};
+
+template<typename T> const typename T::Scalar* extract_data(const T& m)
+{
+ return extract_data_selector<T>::run(m);
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_BLASUTIL_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/Constants.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/Constants.h
new file mode 100644
index 000000000..7587d6842
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/Constants.h
@@ -0,0 +1,547 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2007-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CONSTANTS_H
+#define EIGEN_CONSTANTS_H
+
+namespace Eigen {
+
+/** This value means that a positive quantity (e.g., a size) is not known at compile-time, and that instead the value is
+ * stored in some runtime variable.
+ *
+ * Changing the value of Dynamic breaks the ABI, as Dynamic is often used as a template parameter for Matrix.
+ */
+const int Dynamic = -1;
+
+/** This value means that a signed quantity (e.g., a signed index) is not known at compile-time, and that instead its value
+ * has to be specified at runtime.
+ */
+const int DynamicIndex = 0xffffff;
+
+/** This value means +Infinity; it is currently used only as the p parameter to MatrixBase::lpNorm<int>().
+ * The value Infinity there means the L-infinity norm.
+ */
+const int Infinity = -1;
+
+/** This value means that the cost to evaluate an expression coefficient is either very expensive or
+ * cannot be known at compile time.
+ *
+ * This value has to be positive to (1) simplify cost computation, and (2) allow to distinguish between a very expensive and very very expensive expressions.
+ * It thus must also be large enough to make sure unrolling won't happen and that sub expressions will be evaluated, but not too large to avoid overflow.
+ */
+const int HugeCost = 10000;
+
+/** \defgroup flags Flags
+ * \ingroup Core_Module
+ *
+ * These are the possible bits which can be OR'ed to constitute the flags of a matrix or
+ * expression.
+ *
+ * It is important to note that these flags are a purely compile-time notion. They are a compile-time property of
+ * an expression type, implemented as enum's. They are not stored in memory at runtime, and they do not incur any
+ * runtime overhead.
+ *
+ * \sa MatrixBase::Flags
+ */
+
+/** \ingroup flags
+ *
+ * for a matrix, this means that the storage order is row-major.
+ * If this bit is not set, the storage order is column-major.
+ * For an expression, this determines the storage order of
+ * the matrix created by evaluation of that expression.
+ * \sa \blank \ref TopicStorageOrders */
+const unsigned int RowMajorBit = 0x1;
+
+/** \ingroup flags
+ * means the expression should be evaluated by the calling expression */
+const unsigned int EvalBeforeNestingBit = 0x2;
+
+/** \ingroup flags
+ * \deprecated
+ * means the expression should be evaluated before any assignment */
+EIGEN_DEPRECATED
+const unsigned int EvalBeforeAssigningBit = 0x4; // FIXME deprecated
+
+/** \ingroup flags
+ *
+ * Short version: means the expression might be vectorized
+ *
+ * Long version: means that the coefficients can be handled by packets
+ * and start at a memory location whose alignment meets the requirements
+ * of the present CPU architecture for optimized packet access. In the fixed-size
+ * case, there is the additional condition that it be possible to access all the
+ * coefficients by packets (this implies the requirement that the size be a multiple of 16 bytes,
+ * and that any nontrivial strides don't break the alignment). In the dynamic-size case,
+ * there is no such condition on the total size and strides, so it might not be possible to access
+ * all coeffs by packets.
+ *
+ * \note This bit can be set regardless of whether vectorization is actually enabled.
+ * To check for actual vectorizability, see \a ActualPacketAccessBit.
+ */
+const unsigned int PacketAccessBit = 0x8;
+
+#ifdef EIGEN_VECTORIZE
+/** \ingroup flags
+ *
+ * If vectorization is enabled (EIGEN_VECTORIZE is defined) this constant
+ * is set to the value \a PacketAccessBit.
+ *
+ * If vectorization is not enabled (EIGEN_VECTORIZE is not defined) this constant
+ * is set to the value 0.
+ */
+const unsigned int ActualPacketAccessBit = PacketAccessBit;
+#else
+const unsigned int ActualPacketAccessBit = 0x0;
+#endif
+
+/** \ingroup flags
+ *
+ * Short version: means the expression can be seen as 1D vector.
+ *
+ * Long version: means that one can access the coefficients
+ * of this expression by coeff(int), and coeffRef(int) in the case of a lvalue expression. These
+ * index-based access methods are guaranteed
+ * to not have to do any runtime computation of a (row, col)-pair from the index, so that it
+ * is guaranteed that whenever it is available, index-based access is at least as fast as
+ * (row,col)-based access. Expressions for which that isn't possible don't have the LinearAccessBit.
+ *
+ * If both PacketAccessBit and LinearAccessBit are set, then the
+ * packets of this expression can be accessed by packet(int), and writePacket(int) in the case of a
+ * lvalue expression.
+ *
+ * Typically, all vector expressions have the LinearAccessBit, but there is one exception:
+ * Product expressions don't have it, because it would be troublesome for vectorization, even when the
+ * Product is a vector expression. Thus, vector Product expressions allow index-based coefficient access but
+ * not index-based packet access, so they don't have the LinearAccessBit.
+ */
+const unsigned int LinearAccessBit = 0x10;
+
+/** \ingroup flags
+ *
+ * Means the expression has a coeffRef() method, i.e. is writable as its individual coefficients are directly addressable.
+ * This rules out read-only expressions.
+ *
+ * Note that DirectAccessBit and LvalueBit are mutually orthogonal, as there are examples of expression having one but note
+ * the other:
+ * \li writable expressions that don't have a very simple memory layout as a strided array, have LvalueBit but not DirectAccessBit
+ * \li Map-to-const expressions, for example Map<const Matrix>, have DirectAccessBit but not LvalueBit
+ *
+ * Expressions having LvalueBit also have their coeff() method returning a const reference instead of returning a new value.
+ */
+const unsigned int LvalueBit = 0x20;
+
+/** \ingroup flags
+ *
+ * Means that the underlying array of coefficients can be directly accessed as a plain strided array. The memory layout
+ * of the array of coefficients must be exactly the natural one suggested by rows(), cols(),
+ * outerStride(), innerStride(), and the RowMajorBit. This rules out expressions such as Diagonal, whose coefficients,
+ * though referencable, do not have such a regular memory layout.
+ *
+ * See the comment on LvalueBit for an explanation of how LvalueBit and DirectAccessBit are mutually orthogonal.
+ */
+const unsigned int DirectAccessBit = 0x40;
+
+/** \deprecated \ingroup flags
+ *
+ * means the first coefficient packet is guaranteed to be aligned.
+ * An expression cannot has the AlignedBit without the PacketAccessBit flag.
+ * In other words, this means we are allow to perform an aligned packet access to the first element regardless
+ * of the expression kind:
+ * \code
+ * expression.packet<Aligned>(0);
+ * \endcode
+ */
+EIGEN_DEPRECATED const unsigned int AlignedBit = 0x80;
+
+const unsigned int NestByRefBit = 0x100;
+
+/** \ingroup flags
+ *
+ * for an expression, this means that the storage order
+ * can be either row-major or column-major.
+ * The precise choice will be decided at evaluation time or when
+ * combined with other expressions.
+ * \sa \blank \ref RowMajorBit, \ref TopicStorageOrders */
+const unsigned int NoPreferredStorageOrderBit = 0x200;
+
+/** \ingroup flags
+ *
+ * Means that the underlying coefficients can be accessed through pointers to the sparse (un)compressed storage format,
+ * that is, the expression provides:
+ * \code
+ inline const Scalar* valuePtr() const;
+ inline const Index* innerIndexPtr() const;
+ inline const Index* outerIndexPtr() const;
+ inline const Index* innerNonZeroPtr() const;
+ \endcode
+ */
+const unsigned int CompressedAccessBit = 0x400;
+
+
+// list of flags that are inherited by default
+const unsigned int HereditaryBits = RowMajorBit
+ | EvalBeforeNestingBit;
+
+/** \defgroup enums Enumerations
+ * \ingroup Core_Module
+ *
+ * Various enumerations used in %Eigen. Many of these are used as template parameters.
+ */
+
+/** \ingroup enums
+ * Enum containing possible values for the \c Mode or \c UpLo parameter of
+ * MatrixBase::selfadjointView() and MatrixBase::triangularView(), and selfadjoint solvers. */
+enum UpLoType {
+ /** View matrix as a lower triangular matrix. */
+ Lower=0x1,
+ /** View matrix as an upper triangular matrix. */
+ Upper=0x2,
+ /** %Matrix has ones on the diagonal; to be used in combination with #Lower or #Upper. */
+ UnitDiag=0x4,
+ /** %Matrix has zeros on the diagonal; to be used in combination with #Lower or #Upper. */
+ ZeroDiag=0x8,
+ /** View matrix as a lower triangular matrix with ones on the diagonal. */
+ UnitLower=UnitDiag|Lower,
+ /** View matrix as an upper triangular matrix with ones on the diagonal. */
+ UnitUpper=UnitDiag|Upper,
+ /** View matrix as a lower triangular matrix with zeros on the diagonal. */
+ StrictlyLower=ZeroDiag|Lower,
+ /** View matrix as an upper triangular matrix with zeros on the diagonal. */
+ StrictlyUpper=ZeroDiag|Upper,
+ /** Used in BandMatrix and SelfAdjointView to indicate that the matrix is self-adjoint. */
+ SelfAdjoint=0x10,
+ /** Used to support symmetric, non-selfadjoint, complex matrices. */
+ Symmetric=0x20
+};
+
+/** \ingroup enums
+ * Enum for indicating whether a buffer is aligned or not. */
+enum AlignmentType {
+ Unaligned=0, /**< Data pointer has no specific alignment. */
+ Aligned8=8, /**< Data pointer is aligned on a 8 bytes boundary. */
+ Aligned16=16, /**< Data pointer is aligned on a 16 bytes boundary. */
+ Aligned32=32, /**< Data pointer is aligned on a 32 bytes boundary. */
+ Aligned64=64, /**< Data pointer is aligned on a 64 bytes boundary. */
+ Aligned128=128, /**< Data pointer is aligned on a 128 bytes boundary. */
+ AlignedMask=255,
+ Aligned=16, /**< \deprecated Synonym for Aligned16. */
+#if EIGEN_MAX_ALIGN_BYTES==128
+ AlignedMax = Aligned128
+#elif EIGEN_MAX_ALIGN_BYTES==64
+ AlignedMax = Aligned64
+#elif EIGEN_MAX_ALIGN_BYTES==32
+ AlignedMax = Aligned32
+#elif EIGEN_MAX_ALIGN_BYTES==16
+ AlignedMax = Aligned16
+#elif EIGEN_MAX_ALIGN_BYTES==8
+ AlignedMax = Aligned8
+#elif EIGEN_MAX_ALIGN_BYTES==0
+ AlignedMax = Unaligned
+#else
+#error Invalid value for EIGEN_MAX_ALIGN_BYTES
+#endif
+};
+
+/** \ingroup enums
+ * Enum used by DenseBase::corner() in Eigen2 compatibility mode. */
+// FIXME after the corner() API change, this was not needed anymore, except by AlignedBox
+// TODO: find out what to do with that. Adapt the AlignedBox API ?
+enum CornerType { TopLeft, TopRight, BottomLeft, BottomRight };
+
+/** \ingroup enums
+ * Enum containing possible values for the \p Direction parameter of
+ * Reverse, PartialReduxExpr and VectorwiseOp. */
+enum DirectionType {
+ /** For Reverse, all columns are reversed;
+ * for PartialReduxExpr and VectorwiseOp, act on columns. */
+ Vertical,
+ /** For Reverse, all rows are reversed;
+ * for PartialReduxExpr and VectorwiseOp, act on rows. */
+ Horizontal,
+ /** For Reverse, both rows and columns are reversed;
+ * not used for PartialReduxExpr and VectorwiseOp. */
+ BothDirections
+};
+
+/** \internal \ingroup enums
+ * Enum to specify how to traverse the entries of a matrix. */
+enum TraversalType {
+ /** \internal Default traversal, no vectorization, no index-based access */
+ DefaultTraversal,
+ /** \internal No vectorization, use index-based access to have only one for loop instead of 2 nested loops */
+ LinearTraversal,
+ /** \internal Equivalent to a slice vectorization for fixed-size matrices having good alignment
+ * and good size */
+ InnerVectorizedTraversal,
+ /** \internal Vectorization path using a single loop plus scalar loops for the
+ * unaligned boundaries */
+ LinearVectorizedTraversal,
+ /** \internal Generic vectorization path using one vectorized loop per row/column with some
+ * scalar loops to handle the unaligned boundaries */
+ SliceVectorizedTraversal,
+ /** \internal Special case to properly handle incompatible scalar types or other defecting cases*/
+ InvalidTraversal,
+ /** \internal Evaluate all entries at once */
+ AllAtOnceTraversal
+};
+
+/** \internal \ingroup enums
+ * Enum to specify whether to unroll loops when traversing over the entries of a matrix. */
+enum UnrollingType {
+ /** \internal Do not unroll loops. */
+ NoUnrolling,
+ /** \internal Unroll only the inner loop, but not the outer loop. */
+ InnerUnrolling,
+ /** \internal Unroll both the inner and the outer loop. If there is only one loop,
+ * because linear traversal is used, then unroll that loop. */
+ CompleteUnrolling
+};
+
+/** \internal \ingroup enums
+ * Enum to specify whether to use the default (built-in) implementation or the specialization. */
+enum SpecializedType {
+ Specialized,
+ BuiltIn
+};
+
+/** \ingroup enums
+ * Enum containing possible values for the \p _Options template parameter of
+ * Matrix, Array and BandMatrix. */
+enum StorageOptions {
+ /** Storage order is column major (see \ref TopicStorageOrders). */
+ ColMajor = 0,
+ /** Storage order is row major (see \ref TopicStorageOrders). */
+ RowMajor = 0x1, // it is only a coincidence that this is equal to RowMajorBit -- don't rely on that
+ /** Align the matrix itself if it is vectorizable fixed-size */
+ AutoAlign = 0,
+ /** Don't require alignment for the matrix itself (the array of coefficients, if dynamically allocated, may still be requested to be aligned) */ // FIXME --- clarify the situation
+ DontAlign = 0x2
+};
+
+/** \ingroup enums
+ * Enum for specifying whether to apply or solve on the left or right. */
+enum SideType {
+ /** Apply transformation on the left. */
+ OnTheLeft = 1,
+ /** Apply transformation on the right. */
+ OnTheRight = 2
+};
+
+/* the following used to be written as:
+ *
+ * struct NoChange_t {};
+ * namespace {
+ * EIGEN_UNUSED NoChange_t NoChange;
+ * }
+ *
+ * on the ground that it feels dangerous to disambiguate overloaded functions on enum/integer types.
+ * However, this leads to "variable declared but never referenced" warnings on Intel Composer XE,
+ * and we do not know how to get rid of them (bug 450).
+ */
+
+enum NoChange_t { NoChange };
+enum Sequential_t { Sequential };
+enum Default_t { Default };
+
+/** \internal \ingroup enums
+ * Used in AmbiVector. */
+enum AmbiVectorMode {
+ IsDense = 0,
+ IsSparse
+};
+
+/** \ingroup enums
+ * Used as template parameter in DenseCoeffBase and MapBase to indicate
+ * which accessors should be provided. */
+enum AccessorLevels {
+ /** Read-only access via a member function. */
+ ReadOnlyAccessors,
+ /** Read/write access via member functions. */
+ WriteAccessors,
+ /** Direct read-only access to the coefficients. */
+ DirectAccessors,
+ /** Direct read/write access to the coefficients. */
+ DirectWriteAccessors
+};
+
+/** \ingroup enums
+ * Enum with options to give to various decompositions. */
+enum DecompositionOptions {
+ /** \internal Not used (meant for LDLT?). */
+ Pivoting = 0x01,
+ /** \internal Not used (meant for LDLT?). */
+ NoPivoting = 0x02,
+ /** Used in JacobiSVD to indicate that the square matrix U is to be computed. */
+ ComputeFullU = 0x04,
+ /** Used in JacobiSVD to indicate that the thin matrix U is to be computed. */
+ ComputeThinU = 0x08,
+ /** Used in JacobiSVD to indicate that the square matrix V is to be computed. */
+ ComputeFullV = 0x10,
+ /** Used in JacobiSVD to indicate that the thin matrix V is to be computed. */
+ ComputeThinV = 0x20,
+ /** Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify
+ * that only the eigenvalues are to be computed and not the eigenvectors. */
+ EigenvaluesOnly = 0x40,
+ /** Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify
+ * that both the eigenvalues and the eigenvectors are to be computed. */
+ ComputeEigenvectors = 0x80,
+ /** \internal */
+ EigVecMask = EigenvaluesOnly | ComputeEigenvectors,
+ /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
+ * solve the generalized eigenproblem \f$ Ax = \lambda B x \f$. */
+ Ax_lBx = 0x100,
+ /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
+ * solve the generalized eigenproblem \f$ ABx = \lambda x \f$. */
+ ABx_lx = 0x200,
+ /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
+ * solve the generalized eigenproblem \f$ BAx = \lambda x \f$. */
+ BAx_lx = 0x400,
+ /** \internal */
+ GenEigMask = Ax_lBx | ABx_lx | BAx_lx
+};
+
+/** \ingroup enums
+ * Possible values for the \p QRPreconditioner template parameter of JacobiSVD. */
+enum QRPreconditioners {
+ /** Do not specify what is to be done if the SVD of a non-square matrix is asked for. */
+ NoQRPreconditioner,
+ /** Use a QR decomposition without pivoting as the first step. */
+ HouseholderQRPreconditioner,
+ /** Use a QR decomposition with column pivoting as the first step. */
+ ColPivHouseholderQRPreconditioner,
+ /** Use a QR decomposition with full pivoting as the first step. */
+ FullPivHouseholderQRPreconditioner
+};
+
+#ifdef Success
+#error The preprocessor symbol 'Success' is defined, possibly by the X11 header file X.h
+#endif
+
+/** \ingroup enums
+ * Enum for reporting the status of a computation. */
+enum ComputationInfo {
+ /** Computation was successful. */
+ Success = 0,
+ /** The provided data did not satisfy the prerequisites. */
+ NumericalIssue = 1,
+ /** Iterative procedure did not converge. */
+ NoConvergence = 2,
+ /** The inputs are invalid, or the algorithm has been improperly called.
+ * When assertions are enabled, such errors trigger an assert. */
+ InvalidInput = 3
+};
+
+/** \ingroup enums
+ * Enum used to specify how a particular transformation is stored in a matrix.
+ * \sa Transform, Hyperplane::transform(). */
+enum TransformTraits {
+ /** Transformation is an isometry. */
+ Isometry = 0x1,
+ /** Transformation is an affine transformation stored as a (Dim+1)^2 matrix whose last row is
+ * assumed to be [0 ... 0 1]. */
+ Affine = 0x2,
+ /** Transformation is an affine transformation stored as a (Dim) x (Dim+1) matrix. */
+ AffineCompact = 0x10 | Affine,
+ /** Transformation is a general projective transformation stored as a (Dim+1)^2 matrix. */
+ Projective = 0x20
+};
+
+/** \internal \ingroup enums
+ * Enum used to choose between implementation depending on the computer architecture. */
+namespace Architecture
+{
+ enum Type {
+ Generic = 0x0,
+ SSE = 0x1,
+ AltiVec = 0x2,
+ VSX = 0x3,
+ NEON = 0x4,
+#if defined EIGEN_VECTORIZE_SSE
+ Target = SSE
+#elif defined EIGEN_VECTORIZE_ALTIVEC
+ Target = AltiVec
+#elif defined EIGEN_VECTORIZE_VSX
+ Target = VSX
+#elif defined EIGEN_VECTORIZE_NEON
+ Target = NEON
+#else
+ Target = Generic
+#endif
+ };
+}
+
+/** \internal \ingroup enums
+ * Enum used as template parameter in Product and product evaluators. */
+enum ProductImplType
+{ DefaultProduct=0, LazyProduct, AliasFreeProduct, CoeffBasedProductMode, LazyCoeffBasedProductMode, OuterProduct, InnerProduct, GemvProduct, GemmProduct };
+
+/** \internal \ingroup enums
+ * Enum used in experimental parallel implementation. */
+enum Action {GetAction, SetAction};
+
+/** The type used to identify a dense storage. */
+struct Dense {};
+
+/** The type used to identify a general sparse storage. */
+struct Sparse {};
+
+/** The type used to identify a general solver (factored) storage. */
+struct SolverStorage {};
+
+/** The type used to identify a permutation storage. */
+struct PermutationStorage {};
+
+/** The type used to identify a permutation storage. */
+struct TranspositionsStorage {};
+
+/** The type used to identify a matrix expression */
+struct MatrixXpr {};
+
+/** The type used to identify an array expression */
+struct ArrayXpr {};
+
+// An evaluator must define its shape. By default, it can be one of the following:
+struct DenseShape { static std::string debugName() { return "DenseShape"; } };
+struct SolverShape { static std::string debugName() { return "SolverShape"; } };
+struct HomogeneousShape { static std::string debugName() { return "HomogeneousShape"; } };
+struct DiagonalShape { static std::string debugName() { return "DiagonalShape"; } };
+struct BandShape { static std::string debugName() { return "BandShape"; } };
+struct TriangularShape { static std::string debugName() { return "TriangularShape"; } };
+struct SelfAdjointShape { static std::string debugName() { return "SelfAdjointShape"; } };
+struct PermutationShape { static std::string debugName() { return "PermutationShape"; } };
+struct TranspositionsShape { static std::string debugName() { return "TranspositionsShape"; } };
+struct SparseShape { static std::string debugName() { return "SparseShape"; } };
+
+namespace internal {
+
+ // random access iterators based on coeff*() accessors.
+struct IndexBased {};
+
+// evaluator based on iterators to access coefficients.
+struct IteratorBased {};
+
+/** \internal
+ * Constants for comparison functors
+ */
+enum ComparisonName {
+ cmp_EQ = 0,
+ cmp_LT = 1,
+ cmp_LE = 2,
+ cmp_UNORD = 3,
+ cmp_NEQ = 4,
+ cmp_GT = 5,
+ cmp_GE = 6
+};
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_CONSTANTS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/DisableStupidWarnings.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/DisableStupidWarnings.h
new file mode 100755
index 000000000..7559e129c
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/DisableStupidWarnings.h
@@ -0,0 +1,75 @@
+#ifndef EIGEN_WARNINGS_DISABLED
+#define EIGEN_WARNINGS_DISABLED
+
+#ifdef _MSC_VER
+ // 4100 - unreferenced formal parameter (occurred e.g. in aligned_allocator::destroy(pointer p))
+ // 4101 - unreferenced local variable
+ // 4127 - conditional expression is constant
+ // 4181 - qualifier applied to reference type ignored
+ // 4211 - nonstandard extension used : redefined extern to static
+ // 4244 - 'argument' : conversion from 'type1' to 'type2', possible loss of data
+ // 4273 - QtAlignedMalloc, inconsistent DLL linkage
+ // 4324 - structure was padded due to declspec(align())
+ // 4503 - decorated name length exceeded, name was truncated
+ // 4512 - assignment operator could not be generated
+ // 4522 - 'class' : multiple assignment operators specified
+ // 4700 - uninitialized local variable 'xyz' used
+ // 4714 - function marked as __forceinline not inlined
+ // 4717 - 'function' : recursive on all control paths, function will cause runtime stack overflow
+ // 4800 - 'type' : forcing value to bool 'true' or 'false' (performance warning)
+ #ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS
+ #pragma warning( push )
+ #endif
+ #pragma warning( disable : 4100 4101 4127 4181 4211 4244 4273 4324 4503 4512 4522 4700 4714 4717 4800)
+
+#elif defined __INTEL_COMPILER
+ // 2196 - routine is both "inline" and "noinline" ("noinline" assumed)
+ // ICC 12 generates this warning even without any inline keyword, when defining class methods 'inline' i.e. inside of class body
+ // typedef that may be a reference type.
+ // 279 - controlling expression is constant
+ // ICC 12 generates this warning on assert(constant_expression_depending_on_template_params) and frankly this is a legitimate use case.
+ // 1684 - conversion from pointer to same-sized integral type (potential portability problem)
+ // 2259 - non-pointer conversion from "Eigen::Index={ptrdiff_t={long}}" to "int" may lose significant bits
+ #ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS
+ #pragma warning push
+ #endif
+ #pragma warning disable 2196 279 1684 2259
+
+#elif defined __clang__
+ // -Wconstant-logical-operand - warning: use of logical && with constant operand; switch to bitwise & or remove constant
+ // this is really a stupid warning as it warns on compile-time expressions involving enums
+ #ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS
+ #pragma clang diagnostic push
+ #endif
+ #pragma clang diagnostic ignored "-Wconstant-logical-operand"
+
+#elif defined __GNUC__ && __GNUC__>=6
+
+ #ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS
+ #pragma GCC diagnostic push
+ #endif
+ #pragma GCC diagnostic ignored "-Wignored-attributes"
+
+#endif
+
+#if defined __NVCC__
+ // Disable the "statement is unreachable" message
+ #pragma diag_suppress code_is_unreachable
+ // Disable the "dynamic initialization in unreachable code" message
+ #pragma diag_suppress initialization_not_reachable
+ // Disable the "invalid error number" message that we get with older versions of nvcc
+ #pragma diag_suppress 1222
+ // Disable the "calling a __host__ function from a __host__ __device__ function is not allowed" messages (yes, there are many of them and they seem to change with every version of the compiler)
+ #pragma diag_suppress 2527
+ #pragma diag_suppress 2529
+ #pragma diag_suppress 2651
+ #pragma diag_suppress 2653
+ #pragma diag_suppress 2668
+ #pragma diag_suppress 2669
+ #pragma diag_suppress 2670
+ #pragma diag_suppress 2671
+ #pragma diag_suppress 2735
+ #pragma diag_suppress 2737
+#endif
+
+#endif // not EIGEN_WARNINGS_DISABLED
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/ForwardDeclarations.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/ForwardDeclarations.h
new file mode 100644
index 000000000..ea107393a
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/ForwardDeclarations.h
@@ -0,0 +1,302 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_FORWARDDECLARATIONS_H
+#define EIGEN_FORWARDDECLARATIONS_H
+
+namespace Eigen {
+namespace internal {
+
+template<typename T> struct traits;
+
+// here we say once and for all that traits<const T> == traits<T>
+// When constness must affect traits, it has to be constness on template parameters on which T itself depends.
+// For example, traits<Map<const T> > != traits<Map<T> >, but
+// traits<const Map<T> > == traits<Map<T> >
+template<typename T> struct traits<const T> : traits<T> {};
+
+template<typename Derived> struct has_direct_access
+{
+ enum { ret = (traits<Derived>::Flags & DirectAccessBit) ? 1 : 0 };
+};
+
+template<typename Derived> struct accessors_level
+{
+ enum { has_direct_access = (traits<Derived>::Flags & DirectAccessBit) ? 1 : 0,
+ has_write_access = (traits<Derived>::Flags & LvalueBit) ? 1 : 0,
+ value = has_direct_access ? (has_write_access ? DirectWriteAccessors : DirectAccessors)
+ : (has_write_access ? WriteAccessors : ReadOnlyAccessors)
+ };
+};
+
+template<typename T> struct evaluator_traits;
+
+template< typename T> struct evaluator;
+
+} // end namespace internal
+
+template<typename T> struct NumTraits;
+
+template<typename Derived> struct EigenBase;
+template<typename Derived> class DenseBase;
+template<typename Derived> class PlainObjectBase;
+
+
+template<typename Derived,
+ int Level = internal::accessors_level<Derived>::value >
+class DenseCoeffsBase;
+
+template<typename _Scalar, int _Rows, int _Cols,
+ int _Options = AutoAlign |
+#if EIGEN_GNUC_AT(3,4)
+ // workaround a bug in at least gcc 3.4.6
+ // the innermost ?: ternary operator is misparsed. We write it slightly
+ // differently and this makes gcc 3.4.6 happy, but it's ugly.
+ // The error would only show up with EIGEN_DEFAULT_TO_ROW_MAJOR is defined
+ // (when EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION is RowMajor)
+ ( (_Rows==1 && _Cols!=1) ? Eigen::RowMajor
+ : !(_Cols==1 && _Rows!=1) ? EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION
+ : Eigen::ColMajor ),
+#else
+ ( (_Rows==1 && _Cols!=1) ? Eigen::RowMajor
+ : (_Cols==1 && _Rows!=1) ? Eigen::ColMajor
+ : EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION ),
+#endif
+ int _MaxRows = _Rows,
+ int _MaxCols = _Cols
+> class Matrix;
+
+template<typename Derived> class MatrixBase;
+template<typename Derived> class ArrayBase;
+
+template<typename ExpressionType, unsigned int Added, unsigned int Removed> class Flagged;
+template<typename ExpressionType, template <typename> class StorageBase > class NoAlias;
+template<typename ExpressionType> class NestByValue;
+template<typename ExpressionType> class ForceAlignedAccess;
+template<typename ExpressionType> class SwapWrapper;
+
+template<typename XprType, int BlockRows=Dynamic, int BlockCols=Dynamic, bool InnerPanel = false> class Block;
+
+template<typename MatrixType, int Size=Dynamic> class VectorBlock;
+template<typename MatrixType> class Transpose;
+template<typename MatrixType> class Conjugate;
+template<typename NullaryOp, typename MatrixType> class CwiseNullaryOp;
+template<typename UnaryOp, typename MatrixType> class CwiseUnaryOp;
+template<typename ViewOp, typename MatrixType> class CwiseUnaryView;
+template<typename BinaryOp, typename Lhs, typename Rhs> class CwiseBinaryOp;
+template<typename TernaryOp, typename Arg1, typename Arg2, typename Arg3> class CwiseTernaryOp;
+template<typename Decomposition, typename Rhstype> class Solve;
+template<typename XprType> class Inverse;
+
+template<typename Lhs, typename Rhs, int Option = DefaultProduct> class Product;
+
+template<typename Derived> class DiagonalBase;
+template<typename _DiagonalVectorType> class DiagonalWrapper;
+template<typename _Scalar, int SizeAtCompileTime, int MaxSizeAtCompileTime=SizeAtCompileTime> class DiagonalMatrix;
+template<typename MatrixType, typename DiagonalType, int ProductOrder> class DiagonalProduct;
+template<typename MatrixType, int Index = 0> class Diagonal;
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime = SizeAtCompileTime, typename IndexType=int> class PermutationMatrix;
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime = SizeAtCompileTime, typename IndexType=int> class Transpositions;
+template<typename Derived> class PermutationBase;
+template<typename Derived> class TranspositionsBase;
+template<typename _IndicesType> class PermutationWrapper;
+template<typename _IndicesType> class TranspositionsWrapper;
+
+template<typename Derived,
+ int Level = internal::accessors_level<Derived>::has_write_access ? WriteAccessors : ReadOnlyAccessors
+> class MapBase;
+template<int InnerStrideAtCompileTime, int OuterStrideAtCompileTime> class Stride;
+template<int Value = Dynamic> class InnerStride;
+template<int Value = Dynamic> class OuterStride;
+template<typename MatrixType, int MapOptions=Unaligned, typename StrideType = Stride<0,0> > class Map;
+template<typename Derived> class RefBase;
+template<typename PlainObjectType, int Options = 0,
+ typename StrideType = typename internal::conditional<PlainObjectType::IsVectorAtCompileTime,InnerStride<1>,OuterStride<> >::type > class Ref;
+
+template<typename Derived> class TriangularBase;
+template<typename MatrixType, unsigned int Mode> class TriangularView;
+template<typename MatrixType, unsigned int Mode> class SelfAdjointView;
+template<typename MatrixType> class SparseView;
+template<typename ExpressionType> class WithFormat;
+template<typename MatrixType> struct CommaInitializer;
+template<typename Derived> class ReturnByValue;
+template<typename ExpressionType> class ArrayWrapper;
+template<typename ExpressionType> class MatrixWrapper;
+template<typename Derived> class SolverBase;
+template<typename XprType> class InnerIterator;
+
+namespace internal {
+template<typename DecompositionType> struct kernel_retval_base;
+template<typename DecompositionType> struct kernel_retval;
+template<typename DecompositionType> struct image_retval_base;
+template<typename DecompositionType> struct image_retval;
+} // end namespace internal
+
+namespace internal {
+template<typename _Scalar, int Rows=Dynamic, int Cols=Dynamic, int Supers=Dynamic, int Subs=Dynamic, int Options=0> class BandMatrix;
+}
+
+namespace internal {
+template<typename Lhs, typename Rhs> struct product_type;
+
+template<bool> struct EnableIf;
+
+/** \internal
+ * \class product_evaluator
+ * Products need their own evaluator with more template arguments allowing for
+ * easier partial template specializations.
+ */
+template< typename T,
+ int ProductTag = internal::product_type<typename T::Lhs,typename T::Rhs>::ret,
+ typename LhsShape = typename evaluator_traits<typename T::Lhs>::Shape,
+ typename RhsShape = typename evaluator_traits<typename T::Rhs>::Shape,
+ typename LhsScalar = typename traits<typename T::Lhs>::Scalar,
+ typename RhsScalar = typename traits<typename T::Rhs>::Scalar
+ > struct product_evaluator;
+}
+
+template<typename Lhs, typename Rhs,
+ int ProductType = internal::product_type<Lhs,Rhs>::value>
+struct ProductReturnType;
+
+// this is a workaround for sun CC
+template<typename Lhs, typename Rhs> struct LazyProductReturnType;
+
+namespace internal {
+
+// Provides scalar/packet-wise product and product with accumulation
+// with optional conjugation of the arguments.
+template<typename LhsScalar, typename RhsScalar, bool ConjLhs=false, bool ConjRhs=false> struct conj_helper;
+
+template<typename LhsScalar,typename RhsScalar=LhsScalar> struct scalar_sum_op;
+template<typename LhsScalar,typename RhsScalar=LhsScalar> struct scalar_difference_op;
+template<typename LhsScalar,typename RhsScalar=LhsScalar> struct scalar_conj_product_op;
+template<typename LhsScalar,typename RhsScalar=LhsScalar> struct scalar_min_op;
+template<typename LhsScalar,typename RhsScalar=LhsScalar> struct scalar_max_op;
+template<typename Scalar> struct scalar_opposite_op;
+template<typename Scalar> struct scalar_conjugate_op;
+template<typename Scalar> struct scalar_real_op;
+template<typename Scalar> struct scalar_imag_op;
+template<typename Scalar> struct scalar_abs_op;
+template<typename Scalar> struct scalar_abs2_op;
+template<typename Scalar> struct scalar_sqrt_op;
+template<typename Scalar> struct scalar_rsqrt_op;
+template<typename Scalar> struct scalar_exp_op;
+template<typename Scalar> struct scalar_log_op;
+template<typename Scalar> struct scalar_cos_op;
+template<typename Scalar> struct scalar_sin_op;
+template<typename Scalar> struct scalar_acos_op;
+template<typename Scalar> struct scalar_asin_op;
+template<typename Scalar> struct scalar_tan_op;
+template<typename Scalar> struct scalar_inverse_op;
+template<typename Scalar> struct scalar_square_op;
+template<typename Scalar> struct scalar_cube_op;
+template<typename Scalar, typename NewType> struct scalar_cast_op;
+template<typename Scalar> struct scalar_random_op;
+template<typename Scalar> struct scalar_constant_op;
+template<typename Scalar> struct scalar_identity_op;
+template<typename Scalar,bool iscpx> struct scalar_sign_op;
+template<typename Scalar,typename ScalarExponent> struct scalar_pow_op;
+template<typename LhsScalar,typename RhsScalar=LhsScalar> struct scalar_hypot_op;
+template<typename LhsScalar,typename RhsScalar=LhsScalar> struct scalar_product_op;
+template<typename LhsScalar,typename RhsScalar=LhsScalar> struct scalar_quotient_op;
+
+// SpecialFunctions module
+template<typename Scalar> struct scalar_lgamma_op;
+template<typename Scalar> struct scalar_digamma_op;
+template<typename Scalar> struct scalar_erf_op;
+template<typename Scalar> struct scalar_erfc_op;
+template<typename Scalar> struct scalar_igamma_op;
+template<typename Scalar> struct scalar_igammac_op;
+template<typename Scalar> struct scalar_zeta_op;
+template<typename Scalar> struct scalar_betainc_op;
+
+} // end namespace internal
+
+struct IOFormat;
+
+// Array module
+template<typename _Scalar, int _Rows, int _Cols,
+ int _Options = AutoAlign |
+#if EIGEN_GNUC_AT(3,4)
+ // workaround a bug in at least gcc 3.4.6
+ // the innermost ?: ternary operator is misparsed. We write it slightly
+ // differently and this makes gcc 3.4.6 happy, but it's ugly.
+ // The error would only show up with EIGEN_DEFAULT_TO_ROW_MAJOR is defined
+ // (when EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION is RowMajor)
+ ( (_Rows==1 && _Cols!=1) ? Eigen::RowMajor
+ : !(_Cols==1 && _Rows!=1) ? EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION
+ : Eigen::ColMajor ),
+#else
+ ( (_Rows==1 && _Cols!=1) ? Eigen::RowMajor
+ : (_Cols==1 && _Rows!=1) ? Eigen::ColMajor
+ : EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION ),
+#endif
+ int _MaxRows = _Rows, int _MaxCols = _Cols> class Array;
+template<typename ConditionMatrixType, typename ThenMatrixType, typename ElseMatrixType> class Select;
+template<typename MatrixType, typename BinaryOp, int Direction> class PartialReduxExpr;
+template<typename ExpressionType, int Direction> class VectorwiseOp;
+template<typename MatrixType,int RowFactor,int ColFactor> class Replicate;
+template<typename MatrixType, int Direction = BothDirections> class Reverse;
+
+template<typename MatrixType> class FullPivLU;
+template<typename MatrixType> class PartialPivLU;
+namespace internal {
+template<typename MatrixType> struct inverse_impl;
+}
+template<typename MatrixType> class HouseholderQR;
+template<typename MatrixType> class ColPivHouseholderQR;
+template<typename MatrixType> class FullPivHouseholderQR;
+template<typename MatrixType> class CompleteOrthogonalDecomposition;
+template<typename MatrixType, int QRPreconditioner = ColPivHouseholderQRPreconditioner> class JacobiSVD;
+template<typename MatrixType> class BDCSVD;
+template<typename MatrixType, int UpLo = Lower> class LLT;
+template<typename MatrixType, int UpLo = Lower> class LDLT;
+template<typename VectorsType, typename CoeffsType, int Side=OnTheLeft> class HouseholderSequence;
+template<typename Scalar> class JacobiRotation;
+
+// Geometry module:
+template<typename Derived, int _Dim> class RotationBase;
+template<typename Lhs, typename Rhs> class Cross;
+template<typename Derived> class QuaternionBase;
+template<typename Scalar> class Rotation2D;
+template<typename Scalar> class AngleAxis;
+template<typename Scalar,int Dim> class Translation;
+template<typename Scalar,int Dim> class AlignedBox;
+template<typename Scalar, int Options = AutoAlign> class Quaternion;
+template<typename Scalar,int Dim,int Mode,int _Options=AutoAlign> class Transform;
+template <typename _Scalar, int _AmbientDim, int Options=AutoAlign> class ParametrizedLine;
+template <typename _Scalar, int _AmbientDim, int Options=AutoAlign> class Hyperplane;
+template<typename Scalar> class UniformScaling;
+template<typename MatrixType,int Direction> class Homogeneous;
+
+// Sparse module:
+template<typename Derived> class SparseMatrixBase;
+
+// MatrixFunctions module
+template<typename Derived> struct MatrixExponentialReturnValue;
+template<typename Derived> class MatrixFunctionReturnValue;
+template<typename Derived> class MatrixSquareRootReturnValue;
+template<typename Derived> class MatrixLogarithmReturnValue;
+template<typename Derived> class MatrixPowerReturnValue;
+template<typename Derived> class MatrixComplexPowerReturnValue;
+
+namespace internal {
+template <typename Scalar>
+struct stem_function
+{
+ typedef std::complex<typename NumTraits<Scalar>::Real> ComplexScalar;
+ typedef ComplexScalar type(ComplexScalar, int);
+};
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_FORWARDDECLARATIONS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/MKL_support.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/MKL_support.h
new file mode 100755
index 000000000..26b59669e
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/MKL_support.h
@@ -0,0 +1,128 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ * Content : Eigen bindings to Intel(R) MKL
+ * Include file with common MKL declarations
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_MKL_SUPPORT_H
+#define EIGEN_MKL_SUPPORT_H
+
+#ifdef EIGEN_USE_MKL_ALL
+ #ifndef EIGEN_USE_BLAS
+ #define EIGEN_USE_BLAS
+ #endif
+ #ifndef EIGEN_USE_LAPACKE
+ #define EIGEN_USE_LAPACKE
+ #endif
+ #ifndef EIGEN_USE_MKL_VML
+ #define EIGEN_USE_MKL_VML
+ #endif
+#endif
+
+#ifdef EIGEN_USE_LAPACKE_STRICT
+ #define EIGEN_USE_LAPACKE
+#endif
+
+#if defined(EIGEN_USE_MKL_VML)
+ #define EIGEN_USE_MKL
+#endif
+
+#if defined EIGEN_USE_MKL
+# include <mkl.h>
+/*Check IMKL version for compatibility: < 10.3 is not usable with Eigen*/
+# ifndef INTEL_MKL_VERSION
+# undef EIGEN_USE_MKL /* INTEL_MKL_VERSION is not even defined on older versions */
+# elif INTEL_MKL_VERSION < 100305 /* the intel-mkl-103-release-notes say this was when the lapacke.h interface was added*/
+# undef EIGEN_USE_MKL
+# endif
+# ifndef EIGEN_USE_MKL
+ /*If the MKL version is too old, undef everything*/
+# undef EIGEN_USE_MKL_ALL
+# undef EIGEN_USE_LAPACKE
+# undef EIGEN_USE_MKL_VML
+# undef EIGEN_USE_LAPACKE_STRICT
+# undef EIGEN_USE_LAPACKE
+# endif
+#endif
+
+#if defined EIGEN_USE_MKL
+
+#define EIGEN_MKL_VML_THRESHOLD 128
+
+/* MKL_DOMAIN_BLAS, etc are defined only in 10.3 update 7 */
+/* MKL_BLAS, etc are not defined in 11.2 */
+#ifdef MKL_DOMAIN_ALL
+#define EIGEN_MKL_DOMAIN_ALL MKL_DOMAIN_ALL
+#else
+#define EIGEN_MKL_DOMAIN_ALL MKL_ALL
+#endif
+
+#ifdef MKL_DOMAIN_BLAS
+#define EIGEN_MKL_DOMAIN_BLAS MKL_DOMAIN_BLAS
+#else
+#define EIGEN_MKL_DOMAIN_BLAS MKL_BLAS
+#endif
+
+#ifdef MKL_DOMAIN_FFT
+#define EIGEN_MKL_DOMAIN_FFT MKL_DOMAIN_FFT
+#else
+#define EIGEN_MKL_DOMAIN_FFT MKL_FFT
+#endif
+
+#ifdef MKL_DOMAIN_VML
+#define EIGEN_MKL_DOMAIN_VML MKL_DOMAIN_VML
+#else
+#define EIGEN_MKL_DOMAIN_VML MKL_VML
+#endif
+
+#ifdef MKL_DOMAIN_PARDISO
+#define EIGEN_MKL_DOMAIN_PARDISO MKL_DOMAIN_PARDISO
+#else
+#define EIGEN_MKL_DOMAIN_PARDISO MKL_PARDISO
+#endif
+#endif
+
+namespace Eigen {
+
+typedef std::complex<double> dcomplex;
+typedef std::complex<float> scomplex;
+
+#if defined(EIGEN_USE_MKL)
+typedef MKL_INT BlasIndex;
+#else
+typedef int BlasIndex;
+#endif
+
+} // end namespace Eigen
+
+#if defined(EIGEN_USE_BLAS)
+#include "../../misc/blas.h"
+#endif
+
+#endif // EIGEN_MKL_SUPPORT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/Macros.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/Macros.h
new file mode 100644
index 000000000..38d6ddb9a
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/Macros.h
@@ -0,0 +1,992 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MACROS_H
+#define EIGEN_MACROS_H
+
+#define EIGEN_WORLD_VERSION 3
+#define EIGEN_MAJOR_VERSION 3
+#define EIGEN_MINOR_VERSION 4
+
+#define EIGEN_VERSION_AT_LEAST(x,y,z) (EIGEN_WORLD_VERSION>x || (EIGEN_WORLD_VERSION>=x && \
+ (EIGEN_MAJOR_VERSION>y || (EIGEN_MAJOR_VERSION>=y && \
+ EIGEN_MINOR_VERSION>=z))))
+
+// Compiler identification, EIGEN_COMP_*
+
+/// \internal EIGEN_COMP_GNUC set to 1 for all compilers compatible with GCC
+#ifdef __GNUC__
+ #define EIGEN_COMP_GNUC 1
+#else
+ #define EIGEN_COMP_GNUC 0
+#endif
+
+/// \internal EIGEN_COMP_CLANG set to major+minor version (e.g., 307 for clang 3.7) if the compiler is clang
+#if defined(__clang__)
+ #define EIGEN_COMP_CLANG (__clang_major__*100+__clang_minor__)
+#else
+ #define EIGEN_COMP_CLANG 0
+#endif
+
+
+/// \internal EIGEN_COMP_LLVM set to 1 if the compiler backend is llvm
+#if defined(__llvm__)
+ #define EIGEN_COMP_LLVM 1
+#else
+ #define EIGEN_COMP_LLVM 0
+#endif
+
+/// \internal EIGEN_COMP_ICC set to __INTEL_COMPILER if the compiler is Intel compiler, 0 otherwise
+#if defined(__INTEL_COMPILER)
+ #define EIGEN_COMP_ICC __INTEL_COMPILER
+#else
+ #define EIGEN_COMP_ICC 0
+#endif
+
+/// \internal EIGEN_COMP_MINGW set to 1 if the compiler is mingw
+#if defined(__MINGW32__)
+ #define EIGEN_COMP_MINGW 1
+#else
+ #define EIGEN_COMP_MINGW 0
+#endif
+
+/// \internal EIGEN_COMP_SUNCC set to 1 if the compiler is Solaris Studio
+#if defined(__SUNPRO_CC)
+ #define EIGEN_COMP_SUNCC 1
+#else
+ #define EIGEN_COMP_SUNCC 0
+#endif
+
+/// \internal EIGEN_COMP_MSVC set to _MSC_VER if the compiler is Microsoft Visual C++, 0 otherwise.
+#if defined(_MSC_VER)
+ #define EIGEN_COMP_MSVC _MSC_VER
+#else
+ #define EIGEN_COMP_MSVC 0
+#endif
+
+// For the record, here is a table summarizing the possible values for EIGEN_COMP_MSVC:
+// name ver MSC_VER
+// 2008 9 1500
+// 2010 10 1600
+// 2012 11 1700
+// 2013 12 1800
+// 2015 14 1900
+// "15" 15 1900
+
+/// \internal EIGEN_COMP_MSVC_STRICT set to 1 if the compiler is really Microsoft Visual C++ and not ,e.g., ICC or clang-cl
+#if EIGEN_COMP_MSVC && !(EIGEN_COMP_ICC || EIGEN_COMP_LLVM || EIGEN_COMP_CLANG)
+ #define EIGEN_COMP_MSVC_STRICT _MSC_VER
+#else
+ #define EIGEN_COMP_MSVC_STRICT 0
+#endif
+
+/// \internal EIGEN_COMP_IBM set to 1 if the compiler is IBM XL C++
+#if defined(__IBMCPP__) || defined(__xlc__)
+ #define EIGEN_COMP_IBM 1
+#else
+ #define EIGEN_COMP_IBM 0
+#endif
+
+/// \internal EIGEN_COMP_PGI set to 1 if the compiler is Portland Group Compiler
+#if defined(__PGI)
+ #define EIGEN_COMP_PGI 1
+#else
+ #define EIGEN_COMP_PGI 0
+#endif
+
+/// \internal EIGEN_COMP_ARM set to 1 if the compiler is ARM Compiler
+#if defined(__CC_ARM) || defined(__ARMCC_VERSION)
+ #define EIGEN_COMP_ARM 1
+#else
+ #define EIGEN_COMP_ARM 0
+#endif
+
+/// \internal EIGEN_COMP_ARM set to 1 if the compiler is ARM Compiler
+#if defined(__EMSCRIPTEN__)
+ #define EIGEN_COMP_EMSCRIPTEN 1
+#else
+ #define EIGEN_COMP_EMSCRIPTEN 0
+#endif
+
+
+/// \internal EIGEN_GNUC_STRICT set to 1 if the compiler is really GCC and not a compatible compiler (e.g., ICC, clang, mingw, etc.)
+#if EIGEN_COMP_GNUC && !(EIGEN_COMP_CLANG || EIGEN_COMP_ICC || EIGEN_COMP_MINGW || EIGEN_COMP_PGI || EIGEN_COMP_IBM || EIGEN_COMP_ARM || EIGEN_COMP_EMSCRIPTEN)
+ #define EIGEN_COMP_GNUC_STRICT 1
+#else
+ #define EIGEN_COMP_GNUC_STRICT 0
+#endif
+
+
+#if EIGEN_COMP_GNUC
+ #define EIGEN_GNUC_AT_LEAST(x,y) ((__GNUC__==x && __GNUC_MINOR__>=y) || __GNUC__>x)
+ #define EIGEN_GNUC_AT_MOST(x,y) ((__GNUC__==x && __GNUC_MINOR__<=y) || __GNUC__<x)
+ #define EIGEN_GNUC_AT(x,y) ( __GNUC__==x && __GNUC_MINOR__==y )
+#else
+ #define EIGEN_GNUC_AT_LEAST(x,y) 0
+ #define EIGEN_GNUC_AT_MOST(x,y) 0
+ #define EIGEN_GNUC_AT(x,y) 0
+#endif
+
+// FIXME: could probably be removed as we do not support gcc 3.x anymore
+#if EIGEN_COMP_GNUC && (__GNUC__ <= 3)
+#define EIGEN_GCC3_OR_OLDER 1
+#else
+#define EIGEN_GCC3_OR_OLDER 0
+#endif
+
+
+// Architecture identification, EIGEN_ARCH_*
+
+#if defined(__x86_64__) || defined(_M_X64) || defined(__amd64)
+ #define EIGEN_ARCH_x86_64 1
+#else
+ #define EIGEN_ARCH_x86_64 0
+#endif
+
+#if defined(__i386__) || defined(_M_IX86) || defined(_X86_) || defined(__i386)
+ #define EIGEN_ARCH_i386 1
+#else
+ #define EIGEN_ARCH_i386 0
+#endif
+
+#if EIGEN_ARCH_x86_64 || EIGEN_ARCH_i386
+ #define EIGEN_ARCH_i386_OR_x86_64 1
+#else
+ #define EIGEN_ARCH_i386_OR_x86_64 0
+#endif
+
+/// \internal EIGEN_ARCH_ARM set to 1 if the architecture is ARM
+#if defined(__arm__)
+ #define EIGEN_ARCH_ARM 1
+#else
+ #define EIGEN_ARCH_ARM 0
+#endif
+
+/// \internal EIGEN_ARCH_ARM64 set to 1 if the architecture is ARM64
+#if defined(__aarch64__)
+ #define EIGEN_ARCH_ARM64 1
+#else
+ #define EIGEN_ARCH_ARM64 0
+#endif
+
+#if EIGEN_ARCH_ARM || EIGEN_ARCH_ARM64
+ #define EIGEN_ARCH_ARM_OR_ARM64 1
+#else
+ #define EIGEN_ARCH_ARM_OR_ARM64 0
+#endif
+
+/// \internal EIGEN_ARCH_MIPS set to 1 if the architecture is MIPS
+#if defined(__mips__) || defined(__mips)
+ #define EIGEN_ARCH_MIPS 1
+#else
+ #define EIGEN_ARCH_MIPS 0
+#endif
+
+/// \internal EIGEN_ARCH_SPARC set to 1 if the architecture is SPARC
+#if defined(__sparc__) || defined(__sparc)
+ #define EIGEN_ARCH_SPARC 1
+#else
+ #define EIGEN_ARCH_SPARC 0
+#endif
+
+/// \internal EIGEN_ARCH_IA64 set to 1 if the architecture is Intel Itanium
+#if defined(__ia64__)
+ #define EIGEN_ARCH_IA64 1
+#else
+ #define EIGEN_ARCH_IA64 0
+#endif
+
+/// \internal EIGEN_ARCH_PPC set to 1 if the architecture is PowerPC
+#if defined(__powerpc__) || defined(__ppc__) || defined(_M_PPC)
+ #define EIGEN_ARCH_PPC 1
+#else
+ #define EIGEN_ARCH_PPC 0
+#endif
+
+
+
+// Operating system identification, EIGEN_OS_*
+
+/// \internal EIGEN_OS_UNIX set to 1 if the OS is a unix variant
+#if defined(__unix__) || defined(__unix)
+ #define EIGEN_OS_UNIX 1
+#else
+ #define EIGEN_OS_UNIX 0
+#endif
+
+/// \internal EIGEN_OS_LINUX set to 1 if the OS is based on Linux kernel
+#if defined(__linux__)
+ #define EIGEN_OS_LINUX 1
+#else
+ #define EIGEN_OS_LINUX 0
+#endif
+
+/// \internal EIGEN_OS_ANDROID set to 1 if the OS is Android
+// note: ANDROID is defined when using ndk_build, __ANDROID__ is defined when using a standalone toolchain.
+#if defined(__ANDROID__) || defined(ANDROID)
+ #define EIGEN_OS_ANDROID 1
+#else
+ #define EIGEN_OS_ANDROID 0
+#endif
+
+/// \internal EIGEN_OS_GNULINUX set to 1 if the OS is GNU Linux and not Linux-based OS (e.g., not android)
+#if defined(__gnu_linux__) && !(EIGEN_OS_ANDROID)
+ #define EIGEN_OS_GNULINUX 1
+#else
+ #define EIGEN_OS_GNULINUX 0
+#endif
+
+/// \internal EIGEN_OS_BSD set to 1 if the OS is a BSD variant
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__DragonFly__)
+ #define EIGEN_OS_BSD 1
+#else
+ #define EIGEN_OS_BSD 0
+#endif
+
+/// \internal EIGEN_OS_MAC set to 1 if the OS is MacOS
+#if defined(__APPLE__)
+ #define EIGEN_OS_MAC 1
+#else
+ #define EIGEN_OS_MAC 0
+#endif
+
+/// \internal EIGEN_OS_QNX set to 1 if the OS is QNX
+#if defined(__QNX__)
+ #define EIGEN_OS_QNX 1
+#else
+ #define EIGEN_OS_QNX 0
+#endif
+
+/// \internal EIGEN_OS_WIN set to 1 if the OS is Windows based
+#if defined(_WIN32)
+ #define EIGEN_OS_WIN 1
+#else
+ #define EIGEN_OS_WIN 0
+#endif
+
+/// \internal EIGEN_OS_WIN64 set to 1 if the OS is Windows 64bits
+#if defined(_WIN64)
+ #define EIGEN_OS_WIN64 1
+#else
+ #define EIGEN_OS_WIN64 0
+#endif
+
+/// \internal EIGEN_OS_WINCE set to 1 if the OS is Windows CE
+#if defined(_WIN32_WCE)
+ #define EIGEN_OS_WINCE 1
+#else
+ #define EIGEN_OS_WINCE 0
+#endif
+
+/// \internal EIGEN_OS_CYGWIN set to 1 if the OS is Windows/Cygwin
+#if defined(__CYGWIN__)
+ #define EIGEN_OS_CYGWIN 1
+#else
+ #define EIGEN_OS_CYGWIN 0
+#endif
+
+/// \internal EIGEN_OS_WIN_STRICT set to 1 if the OS is really Windows and not some variants
+#if EIGEN_OS_WIN && !( EIGEN_OS_WINCE || EIGEN_OS_CYGWIN )
+ #define EIGEN_OS_WIN_STRICT 1
+#else
+ #define EIGEN_OS_WIN_STRICT 0
+#endif
+
+/// \internal EIGEN_OS_SUN set to 1 if the OS is SUN
+#if (defined(sun) || defined(__sun)) && !(defined(__SVR4) || defined(__svr4__))
+ #define EIGEN_OS_SUN 1
+#else
+ #define EIGEN_OS_SUN 0
+#endif
+
+/// \internal EIGEN_OS_SOLARIS set to 1 if the OS is Solaris
+#if (defined(sun) || defined(__sun)) && (defined(__SVR4) || defined(__svr4__))
+ #define EIGEN_OS_SOLARIS 1
+#else
+ #define EIGEN_OS_SOLARIS 0
+#endif
+
+
+
+#if EIGEN_GNUC_AT_MOST(4,3) && !EIGEN_COMP_CLANG
+ // see bug 89
+ #define EIGEN_SAFE_TO_USE_STANDARD_ASSERT_MACRO 0
+#else
+ #define EIGEN_SAFE_TO_USE_STANDARD_ASSERT_MACRO 1
+#endif
+
+// This macro can be used to prevent from macro expansion, e.g.:
+// std::max EIGEN_NOT_A_MACRO(a,b)
+#define EIGEN_NOT_A_MACRO
+
+#ifdef EIGEN_DEFAULT_TO_ROW_MAJOR
+#define EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION Eigen::RowMajor
+#else
+#define EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION Eigen::ColMajor
+#endif
+
+#ifndef EIGEN_DEFAULT_DENSE_INDEX_TYPE
+#define EIGEN_DEFAULT_DENSE_INDEX_TYPE std::ptrdiff_t
+#endif
+
+// Cross compiler wrapper around LLVM's __has_builtin
+#ifdef __has_builtin
+# define EIGEN_HAS_BUILTIN(x) __has_builtin(x)
+#else
+# define EIGEN_HAS_BUILTIN(x) 0
+#endif
+
+// A Clang feature extension to determine compiler features.
+// We use it to determine 'cxx_rvalue_references'
+#ifndef __has_feature
+# define __has_feature(x) 0
+#endif
+
+// Upperbound on the C++ version to use.
+// Expected values are 03, 11, 14, 17, etc.
+// By default, let's use an arbitrarily large C++ version.
+#ifndef EIGEN_MAX_CPP_VER
+#define EIGEN_MAX_CPP_VER 99
+#endif
+
+#if EIGEN_MAX_CPP_VER>=11 && (defined(__cplusplus) && (__cplusplus >= 201103L) || EIGEN_COMP_MSVC >= 1900)
+#define EIGEN_HAS_CXX11 1
+#else
+#define EIGEN_HAS_CXX11 0
+#endif
+
+
+// Do we support r-value references?
+#ifndef EIGEN_HAS_RVALUE_REFERENCES
+#if EIGEN_MAX_CPP_VER>=11 && \
+ (__has_feature(cxx_rvalue_references) || \
+ (defined(__cplusplus) && __cplusplus >= 201103L) || \
+ (EIGEN_COMP_MSVC >= 1600))
+ #define EIGEN_HAS_RVALUE_REFERENCES 1
+#else
+ #define EIGEN_HAS_RVALUE_REFERENCES 0
+#endif
+#endif
+
+// Does the compiler support C99?
+#ifndef EIGEN_HAS_C99_MATH
+#if EIGEN_MAX_CPP_VER>=11 && \
+ ((defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)) \
+ || (defined(__GNUC__) && defined(_GLIBCXX_USE_C99)) \
+ || (defined(_LIBCPP_VERSION) && !defined(_MSC_VER)))
+ #define EIGEN_HAS_C99_MATH 1
+#else
+ #define EIGEN_HAS_C99_MATH 0
+#endif
+#endif
+
+// Does the compiler support result_of?
+#ifndef EIGEN_HAS_STD_RESULT_OF
+#if EIGEN_MAX_CPP_VER>=11 && ((__has_feature(cxx_lambdas) || (defined(__cplusplus) && __cplusplus >= 201103L)))
+#define EIGEN_HAS_STD_RESULT_OF 1
+#else
+#define EIGEN_HAS_STD_RESULT_OF 0
+#endif
+#endif
+
+// Does the compiler support variadic templates?
+#ifndef EIGEN_HAS_VARIADIC_TEMPLATES
+#if EIGEN_MAX_CPP_VER>=11 && (__cplusplus > 199711L || EIGEN_COMP_MSVC >= 1900) \
+ && ( !defined(__NVCC__) || !EIGEN_ARCH_ARM_OR_ARM64 || (defined __CUDACC_VER__ && __CUDACC_VER__ >= 80000) )
+ // ^^ Disable the use of variadic templates when compiling with versions of nvcc older than 8.0 on ARM devices:
+ // this prevents nvcc from crashing when compiling Eigen on Tegra X1
+#define EIGEN_HAS_VARIADIC_TEMPLATES 1
+#else
+#define EIGEN_HAS_VARIADIC_TEMPLATES 0
+#endif
+#endif
+
+// Does the compiler fully support const expressions? (as in c++14)
+#ifndef EIGEN_HAS_CONSTEXPR
+
+#ifdef __CUDACC__
+// Const expressions are supported provided that c++11 is enabled and we're using either clang or nvcc 7.5 or above
+#if EIGEN_MAX_CPP_VER>=14 && (__cplusplus > 199711L && defined(__CUDACC_VER__) && (EIGEN_COMP_CLANG || __CUDACC_VER__ >= 70500))
+ #define EIGEN_HAS_CONSTEXPR 1
+#endif
+#elif EIGEN_MAX_CPP_VER>=14 && (__has_feature(cxx_relaxed_constexpr) || (defined(__cplusplus) && __cplusplus >= 201402L) || \
+ (EIGEN_GNUC_AT_LEAST(4,8) && (__cplusplus > 199711L)))
+#define EIGEN_HAS_CONSTEXPR 1
+#endif
+
+#ifndef EIGEN_HAS_CONSTEXPR
+#define EIGEN_HAS_CONSTEXPR 0
+#endif
+
+#endif
+
+// Does the compiler support C++11 math?
+// Let's be conservative and enable the default C++11 implementation only if we are sure it exists
+#ifndef EIGEN_HAS_CXX11_MATH
+ #if EIGEN_MAX_CPP_VER>=11 && ((__cplusplus > 201103L) || (__cplusplus >= 201103L) && (EIGEN_COMP_GNUC_STRICT || EIGEN_COMP_CLANG || EIGEN_COMP_MSVC || EIGEN_COMP_ICC) \
+ && (EIGEN_ARCH_i386_OR_x86_64) && (EIGEN_OS_GNULINUX || EIGEN_OS_WIN_STRICT || EIGEN_OS_MAC))
+ #define EIGEN_HAS_CXX11_MATH 1
+ #else
+ #define EIGEN_HAS_CXX11_MATH 0
+ #endif
+#endif
+
+// Does the compiler support proper C++11 containers?
+#ifndef EIGEN_HAS_CXX11_CONTAINERS
+ #if EIGEN_MAX_CPP_VER>=11 && \
+ ((__cplusplus > 201103L) \
+ || ((__cplusplus >= 201103L) && (EIGEN_COMP_GNUC_STRICT || EIGEN_COMP_CLANG || EIGEN_COMP_ICC>=1400)) \
+ || EIGEN_COMP_MSVC >= 1900)
+ #define EIGEN_HAS_CXX11_CONTAINERS 1
+ #else
+ #define EIGEN_HAS_CXX11_CONTAINERS 0
+ #endif
+#endif
+
+// Does the compiler support C++11 noexcept?
+#ifndef EIGEN_HAS_CXX11_NOEXCEPT
+ #if EIGEN_MAX_CPP_VER>=11 && \
+ (__has_feature(cxx_noexcept) \
+ || (__cplusplus > 201103L) \
+ || ((__cplusplus >= 201103L) && (EIGEN_COMP_GNUC_STRICT || EIGEN_COMP_CLANG || EIGEN_COMP_ICC>=1400)) \
+ || EIGEN_COMP_MSVC >= 1900)
+ #define EIGEN_HAS_CXX11_NOEXCEPT 1
+ #else
+ #define EIGEN_HAS_CXX11_NOEXCEPT 0
+ #endif
+#endif
+
+/** Allows to disable some optimizations which might affect the accuracy of the result.
+ * Such optimization are enabled by default, and set EIGEN_FAST_MATH to 0 to disable them.
+ * They currently include:
+ * - single precision ArrayBase::sin() and ArrayBase::cos() for SSE and AVX vectorization.
+ */
+#ifndef EIGEN_FAST_MATH
+#define EIGEN_FAST_MATH 1
+#endif
+
+#define EIGEN_DEBUG_VAR(x) std::cerr << #x << " = " << x << std::endl;
+
+// concatenate two tokens
+#define EIGEN_CAT2(a,b) a ## b
+#define EIGEN_CAT(a,b) EIGEN_CAT2(a,b)
+
+#define EIGEN_COMMA ,
+
+// convert a token to a string
+#define EIGEN_MAKESTRING2(a) #a
+#define EIGEN_MAKESTRING(a) EIGEN_MAKESTRING2(a)
+
+// EIGEN_STRONG_INLINE is a stronger version of the inline, using __forceinline on MSVC,
+// but it still doesn't use GCC's always_inline. This is useful in (common) situations where MSVC needs forceinline
+// but GCC is still doing fine with just inline.
+#if EIGEN_COMP_MSVC || EIGEN_COMP_ICC
+#define EIGEN_STRONG_INLINE __forceinline
+#else
+#define EIGEN_STRONG_INLINE inline
+#endif
+
+// EIGEN_ALWAYS_INLINE is the stronget, it has the effect of making the function inline and adding every possible
+// attribute to maximize inlining. This should only be used when really necessary: in particular,
+// it uses __attribute__((always_inline)) on GCC, which most of the time is useless and can severely harm compile times.
+// FIXME with the always_inline attribute,
+// gcc 3.4.x and 4.1 reports the following compilation error:
+// Eval.h:91: sorry, unimplemented: inlining failed in call to 'const Eigen::Eval<Derived> Eigen::MatrixBase<Scalar, Derived>::eval() const'
+// : function body not available
+// See also bug 1367
+#if EIGEN_GNUC_AT_LEAST(4,2)
+#define EIGEN_ALWAYS_INLINE __attribute__((always_inline)) inline
+#else
+#define EIGEN_ALWAYS_INLINE EIGEN_STRONG_INLINE
+#endif
+
+#if EIGEN_COMP_GNUC
+#define EIGEN_DONT_INLINE __attribute__((noinline))
+#elif EIGEN_COMP_MSVC
+#define EIGEN_DONT_INLINE __declspec(noinline)
+#else
+#define EIGEN_DONT_INLINE
+#endif
+
+#if EIGEN_COMP_GNUC
+#define EIGEN_PERMISSIVE_EXPR __extension__
+#else
+#define EIGEN_PERMISSIVE_EXPR
+#endif
+
+// this macro allows to get rid of linking errors about multiply defined functions.
+// - static is not very good because it prevents definitions from different object files to be merged.
+// So static causes the resulting linked executable to be bloated with multiple copies of the same function.
+// - inline is not perfect either as it unwantedly hints the compiler toward inlining the function.
+#define EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+#define EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS inline
+
+#ifdef NDEBUG
+# ifndef EIGEN_NO_DEBUG
+# define EIGEN_NO_DEBUG
+# endif
+#endif
+
+// eigen_plain_assert is where we implement the workaround for the assert() bug in GCC <= 4.3, see bug 89
+#ifdef EIGEN_NO_DEBUG
+ #define eigen_plain_assert(x)
+#else
+ #if EIGEN_SAFE_TO_USE_STANDARD_ASSERT_MACRO
+ namespace Eigen {
+ namespace internal {
+ inline bool copy_bool(bool b) { return b; }
+ }
+ }
+ #define eigen_plain_assert(x) assert(x)
+ #else
+ // work around bug 89
+ #include <cstdlib> // for abort
+ #include <iostream> // for std::cerr
+
+ namespace Eigen {
+ namespace internal {
+ // trivial function copying a bool. Must be EIGEN_DONT_INLINE, so we implement it after including Eigen headers.
+ // see bug 89.
+ namespace {
+ EIGEN_DONT_INLINE bool copy_bool(bool b) { return b; }
+ }
+ inline void assert_fail(const char *condition, const char *function, const char *file, int line)
+ {
+ std::cerr << "assertion failed: " << condition << " in function " << function << " at " << file << ":" << line << std::endl;
+ abort();
+ }
+ }
+ }
+ #define eigen_plain_assert(x) \
+ do { \
+ if(!Eigen::internal::copy_bool(x)) \
+ Eigen::internal::assert_fail(EIGEN_MAKESTRING(x), __PRETTY_FUNCTION__, __FILE__, __LINE__); \
+ } while(false)
+ #endif
+#endif
+
+// eigen_assert can be overridden
+#ifndef eigen_assert
+#define eigen_assert(x) eigen_plain_assert(x)
+#endif
+
+#ifdef EIGEN_INTERNAL_DEBUGGING
+#define eigen_internal_assert(x) eigen_assert(x)
+#else
+#define eigen_internal_assert(x)
+#endif
+
+#ifdef EIGEN_NO_DEBUG
+#define EIGEN_ONLY_USED_FOR_DEBUG(x) EIGEN_UNUSED_VARIABLE(x)
+#else
+#define EIGEN_ONLY_USED_FOR_DEBUG(x)
+#endif
+
+#ifndef EIGEN_NO_DEPRECATED_WARNING
+ #if EIGEN_COMP_GNUC
+ #define EIGEN_DEPRECATED __attribute__((deprecated))
+ #elif EIGEN_COMP_MSVC
+ #define EIGEN_DEPRECATED __declspec(deprecated)
+ #else
+ #define EIGEN_DEPRECATED
+ #endif
+#else
+ #define EIGEN_DEPRECATED
+#endif
+
+#if EIGEN_COMP_GNUC
+#define EIGEN_UNUSED __attribute__((unused))
+#else
+#define EIGEN_UNUSED
+#endif
+
+// Suppresses 'unused variable' warnings.
+namespace Eigen {
+ namespace internal {
+ template<typename T> EIGEN_DEVICE_FUNC void ignore_unused_variable(const T&) {}
+ }
+}
+#define EIGEN_UNUSED_VARIABLE(var) Eigen::internal::ignore_unused_variable(var);
+
+#if !defined(EIGEN_ASM_COMMENT)
+ #if EIGEN_COMP_GNUC && (EIGEN_ARCH_i386_OR_x86_64 || EIGEN_ARCH_ARM_OR_ARM64)
+ #define EIGEN_ASM_COMMENT(X) __asm__("#" X)
+ #else
+ #define EIGEN_ASM_COMMENT(X)
+ #endif
+#endif
+
+
+//------------------------------------------------------------------------------------------
+// Static and dynamic alignment control
+//
+// The main purpose of this section is to define EIGEN_MAX_ALIGN_BYTES and EIGEN_MAX_STATIC_ALIGN_BYTES
+// as the maximal boundary in bytes on which dynamically and statically allocated data may be alignment respectively.
+// The values of EIGEN_MAX_ALIGN_BYTES and EIGEN_MAX_STATIC_ALIGN_BYTES can be specified by the user. If not,
+// a default value is automatically computed based on architecture, compiler, and OS.
+//
+// This section also defines macros EIGEN_ALIGN_TO_BOUNDARY(N) and the shortcuts EIGEN_ALIGN{8,16,32,_MAX}
+// to be used to declare statically aligned buffers.
+//------------------------------------------------------------------------------------------
+
+
+/* EIGEN_ALIGN_TO_BOUNDARY(n) forces data to be n-byte aligned. This is used to satisfy SIMD requirements.
+ * However, we do that EVEN if vectorization (EIGEN_VECTORIZE) is disabled,
+ * so that vectorization doesn't affect binary compatibility.
+ *
+ * If we made alignment depend on whether or not EIGEN_VECTORIZE is defined, it would be impossible to link
+ * vectorized and non-vectorized code.
+ */
+#if (defined __CUDACC__)
+ #define EIGEN_ALIGN_TO_BOUNDARY(n) __align__(n)
+#elif EIGEN_COMP_GNUC || EIGEN_COMP_PGI || EIGEN_COMP_IBM || EIGEN_COMP_ARM
+ #define EIGEN_ALIGN_TO_BOUNDARY(n) __attribute__((aligned(n)))
+#elif EIGEN_COMP_MSVC
+ #define EIGEN_ALIGN_TO_BOUNDARY(n) __declspec(align(n))
+#elif EIGEN_COMP_SUNCC
+ // FIXME not sure about this one:
+ #define EIGEN_ALIGN_TO_BOUNDARY(n) __attribute__((aligned(n)))
+#else
+ #error Please tell me what is the equivalent of __attribute__((aligned(n))) for your compiler
+#endif
+
+// If the user explicitly disable vectorization, then we also disable alignment
+#if defined(EIGEN_DONT_VECTORIZE)
+ #define EIGEN_IDEAL_MAX_ALIGN_BYTES 0
+#elif defined(EIGEN_VECTORIZE_AVX512)
+ // 64 bytes static alignmeent is preferred only if really required
+ #define EIGEN_IDEAL_MAX_ALIGN_BYTES 64
+#elif defined(__AVX__)
+ // 32 bytes static alignmeent is preferred only if really required
+ #define EIGEN_IDEAL_MAX_ALIGN_BYTES 32
+#else
+ #define EIGEN_IDEAL_MAX_ALIGN_BYTES 16
+#endif
+
+
+// EIGEN_MIN_ALIGN_BYTES defines the minimal value for which the notion of explicit alignment makes sense
+#define EIGEN_MIN_ALIGN_BYTES 16
+
+// Defined the boundary (in bytes) on which the data needs to be aligned. Note
+// that unless EIGEN_ALIGN is defined and not equal to 0, the data may not be
+// aligned at all regardless of the value of this #define.
+
+#if (defined(EIGEN_DONT_ALIGN_STATICALLY) || defined(EIGEN_DONT_ALIGN)) && defined(EIGEN_MAX_STATIC_ALIGN_BYTES) && EIGEN_MAX_STATIC_ALIGN_BYTES>0
+#error EIGEN_MAX_STATIC_ALIGN_BYTES and EIGEN_DONT_ALIGN[_STATICALLY] are both defined with EIGEN_MAX_STATIC_ALIGN_BYTES!=0. Use EIGEN_MAX_STATIC_ALIGN_BYTES=0 as a synonym of EIGEN_DONT_ALIGN_STATICALLY.
+#endif
+
+// EIGEN_DONT_ALIGN_STATICALLY and EIGEN_DONT_ALIGN are deprectated
+// They imply EIGEN_MAX_STATIC_ALIGN_BYTES=0
+#if defined(EIGEN_DONT_ALIGN_STATICALLY) || defined(EIGEN_DONT_ALIGN)
+ #ifdef EIGEN_MAX_STATIC_ALIGN_BYTES
+ #undef EIGEN_MAX_STATIC_ALIGN_BYTES
+ #endif
+ #define EIGEN_MAX_STATIC_ALIGN_BYTES 0
+#endif
+
+#ifndef EIGEN_MAX_STATIC_ALIGN_BYTES
+
+ // Try to automatically guess what is the best default value for EIGEN_MAX_STATIC_ALIGN_BYTES
+
+ // 16 byte alignment is only useful for vectorization. Since it affects the ABI, we need to enable
+ // 16 byte alignment on all platforms where vectorization might be enabled. In theory we could always
+ // enable alignment, but it can be a cause of problems on some platforms, so we just disable it in
+ // certain common platform (compiler+architecture combinations) to avoid these problems.
+ // Only static alignment is really problematic (relies on nonstandard compiler extensions),
+ // try to keep heap alignment even when we have to disable static alignment.
+ #if EIGEN_COMP_GNUC && !(EIGEN_ARCH_i386_OR_x86_64 || EIGEN_ARCH_ARM_OR_ARM64 || EIGEN_ARCH_PPC || EIGEN_ARCH_IA64)
+ #define EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT 1
+ #elif EIGEN_ARCH_ARM_OR_ARM64 && EIGEN_COMP_GNUC_STRICT && EIGEN_GNUC_AT_MOST(4, 6)
+ // Old versions of GCC on ARM, at least 4.4, were once seen to have buggy static alignment support.
+ // Not sure which version fixed it, hopefully it doesn't affect 4.7, which is still somewhat in use.
+ // 4.8 and newer seem definitely unaffected.
+ #define EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT 1
+ #else
+ #define EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT 0
+ #endif
+
+ // static alignment is completely disabled with GCC 3, Sun Studio, and QCC/QNX
+ #if !EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT \
+ && !EIGEN_GCC3_OR_OLDER \
+ && !EIGEN_COMP_SUNCC \
+ && !EIGEN_OS_QNX
+ #define EIGEN_ARCH_WANTS_STACK_ALIGNMENT 1
+ #else
+ #define EIGEN_ARCH_WANTS_STACK_ALIGNMENT 0
+ #endif
+
+ #if EIGEN_ARCH_WANTS_STACK_ALIGNMENT
+ #define EIGEN_MAX_STATIC_ALIGN_BYTES EIGEN_IDEAL_MAX_ALIGN_BYTES
+ #else
+ #define EIGEN_MAX_STATIC_ALIGN_BYTES 0
+ #endif
+
+#endif
+
+// If EIGEN_MAX_ALIGN_BYTES is defined, then it is considered as an upper bound for EIGEN_MAX_ALIGN_BYTES
+#if defined(EIGEN_MAX_ALIGN_BYTES) && EIGEN_MAX_ALIGN_BYTES<EIGEN_MAX_STATIC_ALIGN_BYTES
+#undef EIGEN_MAX_STATIC_ALIGN_BYTES
+#define EIGEN_MAX_STATIC_ALIGN_BYTES EIGEN_MAX_ALIGN_BYTES
+#endif
+
+#if EIGEN_MAX_STATIC_ALIGN_BYTES==0 && !defined(EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT)
+ #define EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT
+#endif
+
+// At this stage, EIGEN_MAX_STATIC_ALIGN_BYTES>0 is the true test whether we want to align arrays on the stack or not.
+// It takes into account both the user choice to explicitly enable/disable alignment (by settting EIGEN_MAX_STATIC_ALIGN_BYTES)
+// and the architecture config (EIGEN_ARCH_WANTS_STACK_ALIGNMENT).
+// Henceforth, only EIGEN_MAX_STATIC_ALIGN_BYTES should be used.
+
+
+// Shortcuts to EIGEN_ALIGN_TO_BOUNDARY
+#define EIGEN_ALIGN8 EIGEN_ALIGN_TO_BOUNDARY(8)
+#define EIGEN_ALIGN16 EIGEN_ALIGN_TO_BOUNDARY(16)
+#define EIGEN_ALIGN32 EIGEN_ALIGN_TO_BOUNDARY(32)
+#define EIGEN_ALIGN64 EIGEN_ALIGN_TO_BOUNDARY(64)
+#if EIGEN_MAX_STATIC_ALIGN_BYTES>0
+#define EIGEN_ALIGN_MAX EIGEN_ALIGN_TO_BOUNDARY(EIGEN_MAX_STATIC_ALIGN_BYTES)
+#else
+#define EIGEN_ALIGN_MAX
+#endif
+
+
+// Dynamic alignment control
+
+#if defined(EIGEN_DONT_ALIGN) && defined(EIGEN_MAX_ALIGN_BYTES) && EIGEN_MAX_ALIGN_BYTES>0
+#error EIGEN_MAX_ALIGN_BYTES and EIGEN_DONT_ALIGN are both defined with EIGEN_MAX_ALIGN_BYTES!=0. Use EIGEN_MAX_ALIGN_BYTES=0 as a synonym of EIGEN_DONT_ALIGN.
+#endif
+
+#ifdef EIGEN_DONT_ALIGN
+ #ifdef EIGEN_MAX_ALIGN_BYTES
+ #undef EIGEN_MAX_ALIGN_BYTES
+ #endif
+ #define EIGEN_MAX_ALIGN_BYTES 0
+#elif !defined(EIGEN_MAX_ALIGN_BYTES)
+ #define EIGEN_MAX_ALIGN_BYTES EIGEN_IDEAL_MAX_ALIGN_BYTES
+#endif
+
+#if EIGEN_IDEAL_MAX_ALIGN_BYTES > EIGEN_MAX_ALIGN_BYTES
+#define EIGEN_DEFAULT_ALIGN_BYTES EIGEN_IDEAL_MAX_ALIGN_BYTES
+#else
+#define EIGEN_DEFAULT_ALIGN_BYTES EIGEN_MAX_ALIGN_BYTES
+#endif
+
+
+#ifndef EIGEN_UNALIGNED_VECTORIZE
+#define EIGEN_UNALIGNED_VECTORIZE 1
+#endif
+
+//----------------------------------------------------------------------
+
+
+#ifdef EIGEN_DONT_USE_RESTRICT_KEYWORD
+ #define EIGEN_RESTRICT
+#endif
+#ifndef EIGEN_RESTRICT
+ #define EIGEN_RESTRICT __restrict
+#endif
+
+#ifndef EIGEN_STACK_ALLOCATION_LIMIT
+// 131072 == 128 KB
+#define EIGEN_STACK_ALLOCATION_LIMIT 131072
+#endif
+
+#ifndef EIGEN_DEFAULT_IO_FORMAT
+#ifdef EIGEN_MAKING_DOCS
+// format used in Eigen's documentation
+// needed to define it here as escaping characters in CMake add_definition's argument seems very problematic.
+#define EIGEN_DEFAULT_IO_FORMAT Eigen::IOFormat(3, 0, " ", "\n", "", "")
+#else
+#define EIGEN_DEFAULT_IO_FORMAT Eigen::IOFormat()
+#endif
+#endif
+
+// just an empty macro !
+#define EIGEN_EMPTY
+
+#if EIGEN_COMP_MSVC_STRICT && (EIGEN_COMP_MSVC < 1900 || defined(__CUDACC_VER__)) // for older MSVC versions, as well as 1900 && CUDA 8, using the base operator is sufficient (cf Bugs 1000, 1324)
+ #define EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived) \
+ using Base::operator =;
+#elif EIGEN_COMP_CLANG // workaround clang bug (see http://forum.kde.org/viewtopic.php?f=74&t=102653)
+ #define EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived) \
+ using Base::operator =; \
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& operator=(const Derived& other) { Base::operator=(other); return *this; } \
+ template <typename OtherDerived> \
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& operator=(const DenseBase<OtherDerived>& other) { Base::operator=(other.derived()); return *this; }
+#else
+ #define EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived) \
+ using Base::operator =; \
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& operator=(const Derived& other) \
+ { \
+ Base::operator=(other); \
+ return *this; \
+ }
+#endif
+
+
+/** \internal
+ * \brief Macro to manually inherit assignment operators.
+ * This is necessary, because the implicitly defined assignment operator gets deleted when a custom operator= is defined.
+ */
+#define EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Derived) EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived)
+
+/**
+* Just a side note. Commenting within defines works only by documenting
+* behind the object (via '!<'). Comments cannot be multi-line and thus
+* we have these extra long lines. What is confusing doxygen over here is
+* that we use '\' and basically have a bunch of typedefs with their
+* documentation in a single line.
+**/
+
+#define EIGEN_GENERIC_PUBLIC_INTERFACE(Derived) \
+ typedef typename Eigen::internal::traits<Derived>::Scalar Scalar; /*!< \brief Numeric type, e.g. float, double, int or std::complex<float>. */ \
+ typedef typename Eigen::NumTraits<Scalar>::Real RealScalar; /*!< \brief The underlying numeric type for composed scalar types. \details In cases where Scalar is e.g. std::complex<T>, T were corresponding to RealScalar. */ \
+ typedef typename Base::CoeffReturnType CoeffReturnType; /*!< \brief The return type for coefficient access. \details Depending on whether the object allows direct coefficient access (e.g. for a MatrixXd), this type is either 'const Scalar&' or simply 'Scalar' for objects that do not allow direct coefficient access. */ \
+ typedef typename Eigen::internal::ref_selector<Derived>::type Nested; \
+ typedef typename Eigen::internal::traits<Derived>::StorageKind StorageKind; \
+ typedef typename Eigen::internal::traits<Derived>::StorageIndex StorageIndex; \
+ enum { RowsAtCompileTime = Eigen::internal::traits<Derived>::RowsAtCompileTime, \
+ ColsAtCompileTime = Eigen::internal::traits<Derived>::ColsAtCompileTime, \
+ Flags = Eigen::internal::traits<Derived>::Flags, \
+ SizeAtCompileTime = Base::SizeAtCompileTime, \
+ MaxSizeAtCompileTime = Base::MaxSizeAtCompileTime, \
+ IsVectorAtCompileTime = Base::IsVectorAtCompileTime }; \
+ using Base::derived; \
+ using Base::const_cast_derived;
+
+
+// FIXME Maybe the EIGEN_DENSE_PUBLIC_INTERFACE could be removed as importing PacketScalar is rarely needed
+#define EIGEN_DENSE_PUBLIC_INTERFACE(Derived) \
+ EIGEN_GENERIC_PUBLIC_INTERFACE(Derived) \
+ typedef typename Base::PacketScalar PacketScalar;
+
+
+#define EIGEN_PLAIN_ENUM_MIN(a,b) (((int)a <= (int)b) ? (int)a : (int)b)
+#define EIGEN_PLAIN_ENUM_MAX(a,b) (((int)a >= (int)b) ? (int)a : (int)b)
+
+// EIGEN_SIZE_MIN_PREFER_DYNAMIC gives the min between compile-time sizes. 0 has absolute priority, followed by 1,
+// followed by Dynamic, followed by other finite values. The reason for giving Dynamic the priority over
+// finite values is that min(3, Dynamic) should be Dynamic, since that could be anything between 0 and 3.
+#define EIGEN_SIZE_MIN_PREFER_DYNAMIC(a,b) (((int)a == 0 || (int)b == 0) ? 0 \
+ : ((int)a == 1 || (int)b == 1) ? 1 \
+ : ((int)a == Dynamic || (int)b == Dynamic) ? Dynamic \
+ : ((int)a <= (int)b) ? (int)a : (int)b)
+
+// EIGEN_SIZE_MIN_PREFER_FIXED is a variant of EIGEN_SIZE_MIN_PREFER_DYNAMIC comparing MaxSizes. The difference is that finite values
+// now have priority over Dynamic, so that min(3, Dynamic) gives 3. Indeed, whatever the actual value is
+// (between 0 and 3), it is not more than 3.
+#define EIGEN_SIZE_MIN_PREFER_FIXED(a,b) (((int)a == 0 || (int)b == 0) ? 0 \
+ : ((int)a == 1 || (int)b == 1) ? 1 \
+ : ((int)a == Dynamic && (int)b == Dynamic) ? Dynamic \
+ : ((int)a == Dynamic) ? (int)b \
+ : ((int)b == Dynamic) ? (int)a \
+ : ((int)a <= (int)b) ? (int)a : (int)b)
+
+// see EIGEN_SIZE_MIN_PREFER_DYNAMIC. No need for a separate variant for MaxSizes here.
+#define EIGEN_SIZE_MAX(a,b) (((int)a == Dynamic || (int)b == Dynamic) ? Dynamic \
+ : ((int)a >= (int)b) ? (int)a : (int)b)
+
+#define EIGEN_LOGICAL_XOR(a,b) (((a) || (b)) && !((a) && (b)))
+
+#define EIGEN_IMPLIES(a,b) (!(a) || (b))
+
+// the expression type of a standard coefficient wise binary operation
+#define EIGEN_CWISE_BINARY_RETURN_TYPE(LHS,RHS,OPNAME) \
+ CwiseBinaryOp< \
+ EIGEN_CAT(EIGEN_CAT(internal::scalar_,OPNAME),_op)< \
+ typename internal::traits<LHS>::Scalar, \
+ typename internal::traits<RHS>::Scalar \
+ >, \
+ const LHS, \
+ const RHS \
+ >
+
+#define EIGEN_MAKE_CWISE_BINARY_OP(METHOD,OPNAME) \
+ template<typename OtherDerived> \
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const EIGEN_CWISE_BINARY_RETURN_TYPE(Derived,OtherDerived,OPNAME) \
+ (METHOD)(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const \
+ { \
+ return EIGEN_CWISE_BINARY_RETURN_TYPE(Derived,OtherDerived,OPNAME)(derived(), other.derived()); \
+ }
+
+#define EIGEN_SCALAR_BINARY_SUPPORTED(OPNAME,TYPEA,TYPEB) \
+ (Eigen::internal::has_ReturnType<Eigen::ScalarBinaryOpTraits<TYPEA,TYPEB,EIGEN_CAT(EIGEN_CAT(Eigen::internal::scalar_,OPNAME),_op)<TYPEA,TYPEB> > >::value)
+
+#define EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(EXPR,SCALAR,OPNAME) \
+ CwiseBinaryOp<EIGEN_CAT(EIGEN_CAT(internal::scalar_,OPNAME),_op)<typename internal::traits<EXPR>::Scalar,SCALAR>, const EXPR, \
+ const typename internal::plain_constant_type<EXPR,SCALAR>::type>
+
+#define EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(SCALAR,EXPR,OPNAME) \
+ CwiseBinaryOp<EIGEN_CAT(EIGEN_CAT(internal::scalar_,OPNAME),_op)<SCALAR,typename internal::traits<EXPR>::Scalar>, \
+ const typename internal::plain_constant_type<EXPR,SCALAR>::type, const EXPR>
+
+// Workaround for MSVC 2010 (see ML thread "patch with compile for for MSVC 2010")
+#if EIGEN_COMP_MSVC_STRICT<=1600
+#define EIGEN_MSVC10_WORKAROUND_BINARYOP_RETURN_TYPE(X) typename internal::enable_if<true,X>::type
+#else
+#define EIGEN_MSVC10_WORKAROUND_BINARYOP_RETURN_TYPE(X) X
+#endif
+
+#define EIGEN_MAKE_SCALAR_BINARY_OP_ONTHERIGHT(METHOD,OPNAME) \
+ template <typename T> EIGEN_DEVICE_FUNC inline \
+ EIGEN_MSVC10_WORKAROUND_BINARYOP_RETURN_TYPE(const EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(Derived,typename internal::promote_scalar_arg<Scalar EIGEN_COMMA T EIGEN_COMMA EIGEN_SCALAR_BINARY_SUPPORTED(OPNAME,Scalar,T)>::type,OPNAME))\
+ (METHOD)(const T& scalar) const { \
+ typedef typename internal::promote_scalar_arg<Scalar,T,EIGEN_SCALAR_BINARY_SUPPORTED(OPNAME,Scalar,T)>::type PromotedT; \
+ return EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(Derived,PromotedT,OPNAME)(derived(), \
+ typename internal::plain_constant_type<Derived,PromotedT>::type(derived().rows(), derived().cols(), internal::scalar_constant_op<PromotedT>(scalar))); \
+ }
+
+#define EIGEN_MAKE_SCALAR_BINARY_OP_ONTHELEFT(METHOD,OPNAME) \
+ template <typename T> EIGEN_DEVICE_FUNC inline friend \
+ EIGEN_MSVC10_WORKAROUND_BINARYOP_RETURN_TYPE(const EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(typename internal::promote_scalar_arg<Scalar EIGEN_COMMA T EIGEN_COMMA EIGEN_SCALAR_BINARY_SUPPORTED(OPNAME,T,Scalar)>::type,Derived,OPNAME)) \
+ (METHOD)(const T& scalar, const StorageBaseType& matrix) { \
+ typedef typename internal::promote_scalar_arg<Scalar,T,EIGEN_SCALAR_BINARY_SUPPORTED(OPNAME,T,Scalar)>::type PromotedT; \
+ return EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(PromotedT,Derived,OPNAME)( \
+ typename internal::plain_constant_type<Derived,PromotedT>::type(matrix.derived().rows(), matrix.derived().cols(), internal::scalar_constant_op<PromotedT>(scalar)), matrix.derived()); \
+ }
+
+#define EIGEN_MAKE_SCALAR_BINARY_OP(METHOD,OPNAME) \
+ EIGEN_MAKE_SCALAR_BINARY_OP_ONTHELEFT(METHOD,OPNAME) \
+ EIGEN_MAKE_SCALAR_BINARY_OP_ONTHERIGHT(METHOD,OPNAME)
+
+
+#ifdef EIGEN_EXCEPTIONS
+# define EIGEN_THROW_X(X) throw X
+# define EIGEN_THROW throw
+# define EIGEN_TRY try
+# define EIGEN_CATCH(X) catch (X)
+#else
+# ifdef __CUDA_ARCH__
+# define EIGEN_THROW_X(X) asm("trap;")
+# define EIGEN_THROW asm("trap;")
+# else
+# define EIGEN_THROW_X(X) std::abort()
+# define EIGEN_THROW std::abort()
+# endif
+# define EIGEN_TRY if (true)
+# define EIGEN_CATCH(X) else
+#endif
+
+
+#if EIGEN_HAS_CXX11_NOEXCEPT
+# define EIGEN_INCLUDE_TYPE_TRAITS
+# define EIGEN_NOEXCEPT noexcept
+# define EIGEN_NOEXCEPT_IF(x) noexcept(x)
+# define EIGEN_NO_THROW noexcept(true)
+# define EIGEN_EXCEPTION_SPEC(X) noexcept(false)
+#else
+# define EIGEN_NOEXCEPT
+# define EIGEN_NOEXCEPT_IF(x)
+# define EIGEN_NO_THROW throw()
+# define EIGEN_EXCEPTION_SPEC(X) throw(X)
+#endif
+
+#endif // EIGEN_MACROS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/Memory.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/Memory.h
new file mode 100644
index 000000000..c634d7ea0
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/Memory.h
@@ -0,0 +1,977 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2008-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2009 Kenneth Riddile <kfriddile@yahoo.com>
+// Copyright (C) 2010 Hauke Heibel <hauke.heibel@gmail.com>
+// Copyright (C) 2010 Thomas Capricelli <orzel@freehackers.org>
+// Copyright (C) 2013 Pavel Holoborodko <pavel@holoborodko.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+/*****************************************************************************
+*** Platform checks for aligned malloc functions ***
+*****************************************************************************/
+
+#ifndef EIGEN_MEMORY_H
+#define EIGEN_MEMORY_H
+
+#ifndef EIGEN_MALLOC_ALREADY_ALIGNED
+
+// Try to determine automatically if malloc is already aligned.
+
+// On 64-bit systems, glibc's malloc returns 16-byte-aligned pointers, see:
+// http://www.gnu.org/s/libc/manual/html_node/Aligned-Memory-Blocks.html
+// This is true at least since glibc 2.8.
+// This leaves the question how to detect 64-bit. According to this document,
+// http://gcc.fyxm.net/summit/2003/Porting%20to%2064%20bit.pdf
+// page 114, "[The] LP64 model [...] is used by all 64-bit UNIX ports" so it's indeed
+// quite safe, at least within the context of glibc, to equate 64-bit with LP64.
+#if defined(__GLIBC__) && ((__GLIBC__>=2 && __GLIBC_MINOR__ >= 8) || __GLIBC__>2) \
+ && defined(__LP64__) && ! defined( __SANITIZE_ADDRESS__ ) && (EIGEN_DEFAULT_ALIGN_BYTES == 16)
+ #define EIGEN_GLIBC_MALLOC_ALREADY_ALIGNED 1
+#else
+ #define EIGEN_GLIBC_MALLOC_ALREADY_ALIGNED 0
+#endif
+
+// FreeBSD 6 seems to have 16-byte aligned malloc
+// See http://svn.freebsd.org/viewvc/base/stable/6/lib/libc/stdlib/malloc.c?view=markup
+// FreeBSD 7 seems to have 16-byte aligned malloc except on ARM and MIPS architectures
+// See http://svn.freebsd.org/viewvc/base/stable/7/lib/libc/stdlib/malloc.c?view=markup
+#if defined(__FreeBSD__) && !(EIGEN_ARCH_ARM || EIGEN_ARCH_MIPS) && (EIGEN_DEFAULT_ALIGN_BYTES == 16)
+ #define EIGEN_FREEBSD_MALLOC_ALREADY_ALIGNED 1
+#else
+ #define EIGEN_FREEBSD_MALLOC_ALREADY_ALIGNED 0
+#endif
+
+#if (EIGEN_OS_MAC && (EIGEN_DEFAULT_ALIGN_BYTES == 16)) \
+ || (EIGEN_OS_WIN64 && (EIGEN_DEFAULT_ALIGN_BYTES == 16)) \
+ || EIGEN_GLIBC_MALLOC_ALREADY_ALIGNED \
+ || EIGEN_FREEBSD_MALLOC_ALREADY_ALIGNED
+ #define EIGEN_MALLOC_ALREADY_ALIGNED 1
+#else
+ #define EIGEN_MALLOC_ALREADY_ALIGNED 0
+#endif
+
+#endif
+
+namespace Eigen {
+
+namespace internal {
+
+EIGEN_DEVICE_FUNC
+inline void throw_std_bad_alloc()
+{
+ #ifdef EIGEN_EXCEPTIONS
+ throw std::bad_alloc();
+ #else
+ std::size_t huge = static_cast<std::size_t>(-1);
+ new int[huge];
+ #endif
+}
+
+/*****************************************************************************
+*** Implementation of handmade aligned functions ***
+*****************************************************************************/
+
+/* ----- Hand made implementations of aligned malloc/free and realloc ----- */
+
+/** \internal Like malloc, but the returned pointer is guaranteed to be 16-byte aligned.
+ * Fast, but wastes 16 additional bytes of memory. Does not throw any exception.
+ */
+inline void* handmade_aligned_malloc(std::size_t size)
+{
+ void *original = std::malloc(size+EIGEN_DEFAULT_ALIGN_BYTES);
+ if (original == 0) return 0;
+ void *aligned = reinterpret_cast<void*>((reinterpret_cast<std::size_t>(original) & ~(std::size_t(EIGEN_DEFAULT_ALIGN_BYTES-1))) + EIGEN_DEFAULT_ALIGN_BYTES);
+ *(reinterpret_cast<void**>(aligned) - 1) = original;
+ return aligned;
+}
+
+/** \internal Frees memory allocated with handmade_aligned_malloc */
+inline void handmade_aligned_free(void *ptr)
+{
+ if (ptr) std::free(*(reinterpret_cast<void**>(ptr) - 1));
+}
+
+/** \internal
+ * \brief Reallocates aligned memory.
+ * Since we know that our handmade version is based on std::malloc
+ * we can use std::realloc to implement efficient reallocation.
+ */
+inline void* handmade_aligned_realloc(void* ptr, std::size_t size, std::size_t = 0)
+{
+ if (ptr == 0) return handmade_aligned_malloc(size);
+ void *original = *(reinterpret_cast<void**>(ptr) - 1);
+ std::ptrdiff_t previous_offset = static_cast<char *>(ptr)-static_cast<char *>(original);
+ original = std::realloc(original,size+EIGEN_DEFAULT_ALIGN_BYTES);
+ if (original == 0) return 0;
+ void *aligned = reinterpret_cast<void*>((reinterpret_cast<std::size_t>(original) & ~(std::size_t(EIGEN_DEFAULT_ALIGN_BYTES-1))) + EIGEN_DEFAULT_ALIGN_BYTES);
+ void *previous_aligned = static_cast<char *>(original)+previous_offset;
+ if(aligned!=previous_aligned)
+ std::memmove(aligned, previous_aligned, size);
+
+ *(reinterpret_cast<void**>(aligned) - 1) = original;
+ return aligned;
+}
+
+/*****************************************************************************
+*** Implementation of portable aligned versions of malloc/free/realloc ***
+*****************************************************************************/
+
+#ifdef EIGEN_NO_MALLOC
+EIGEN_DEVICE_FUNC inline void check_that_malloc_is_allowed()
+{
+ eigen_assert(false && "heap allocation is forbidden (EIGEN_NO_MALLOC is defined)");
+}
+#elif defined EIGEN_RUNTIME_NO_MALLOC
+EIGEN_DEVICE_FUNC inline bool is_malloc_allowed_impl(bool update, bool new_value = false)
+{
+ static bool value = true;
+ if (update == 1)
+ value = new_value;
+ return value;
+}
+EIGEN_DEVICE_FUNC inline bool is_malloc_allowed() { return is_malloc_allowed_impl(false); }
+EIGEN_DEVICE_FUNC inline bool set_is_malloc_allowed(bool new_value) { return is_malloc_allowed_impl(true, new_value); }
+EIGEN_DEVICE_FUNC inline void check_that_malloc_is_allowed()
+{
+ eigen_assert(is_malloc_allowed() && "heap allocation is forbidden (EIGEN_RUNTIME_NO_MALLOC is defined and g_is_malloc_allowed is false)");
+}
+#else
+EIGEN_DEVICE_FUNC inline void check_that_malloc_is_allowed()
+{}
+#endif
+
+/** \internal Allocates \a size bytes. The returned pointer is guaranteed to have 16 or 32 bytes alignment depending on the requirements.
+ * On allocation error, the returned pointer is null, and std::bad_alloc is thrown.
+ */
+EIGEN_DEVICE_FUNC inline void* aligned_malloc(std::size_t size)
+{
+ check_that_malloc_is_allowed();
+
+ void *result;
+ #if (EIGEN_DEFAULT_ALIGN_BYTES==0) || EIGEN_MALLOC_ALREADY_ALIGNED
+ result = std::malloc(size);
+ #if EIGEN_DEFAULT_ALIGN_BYTES==16
+ eigen_assert((size<16 || (std::size_t(result)%16)==0) && "System's malloc returned an unaligned pointer. Compile with EIGEN_MALLOC_ALREADY_ALIGNED=0 to fallback to handmade alignd memory allocator.");
+ #endif
+ #else
+ result = handmade_aligned_malloc(size);
+ #endif
+
+ if(!result && size)
+ throw_std_bad_alloc();
+
+ return result;
+}
+
+/** \internal Frees memory allocated with aligned_malloc. */
+EIGEN_DEVICE_FUNC inline void aligned_free(void *ptr)
+{
+ #if (EIGEN_DEFAULT_ALIGN_BYTES==0) || EIGEN_MALLOC_ALREADY_ALIGNED
+ std::free(ptr);
+ #else
+ handmade_aligned_free(ptr);
+ #endif
+}
+
+/**
+ * \internal
+ * \brief Reallocates an aligned block of memory.
+ * \throws std::bad_alloc on allocation failure
+ */
+inline void* aligned_realloc(void *ptr, std::size_t new_size, std::size_t old_size)
+{
+ EIGEN_UNUSED_VARIABLE(old_size);
+
+ void *result;
+#if (EIGEN_DEFAULT_ALIGN_BYTES==0) || EIGEN_MALLOC_ALREADY_ALIGNED
+ result = std::realloc(ptr,new_size);
+#else
+ result = handmade_aligned_realloc(ptr,new_size,old_size);
+#endif
+
+ if (!result && new_size)
+ throw_std_bad_alloc();
+
+ return result;
+}
+
+/*****************************************************************************
+*** Implementation of conditionally aligned functions ***
+*****************************************************************************/
+
+/** \internal Allocates \a size bytes. If Align is true, then the returned ptr is 16-byte-aligned.
+ * On allocation error, the returned pointer is null, and a std::bad_alloc is thrown.
+ */
+template<bool Align> EIGEN_DEVICE_FUNC inline void* conditional_aligned_malloc(std::size_t size)
+{
+ return aligned_malloc(size);
+}
+
+template<> EIGEN_DEVICE_FUNC inline void* conditional_aligned_malloc<false>(std::size_t size)
+{
+ check_that_malloc_is_allowed();
+
+ void *result = std::malloc(size);
+ if(!result && size)
+ throw_std_bad_alloc();
+ return result;
+}
+
+/** \internal Frees memory allocated with conditional_aligned_malloc */
+template<bool Align> EIGEN_DEVICE_FUNC inline void conditional_aligned_free(void *ptr)
+{
+ aligned_free(ptr);
+}
+
+template<> EIGEN_DEVICE_FUNC inline void conditional_aligned_free<false>(void *ptr)
+{
+ std::free(ptr);
+}
+
+template<bool Align> inline void* conditional_aligned_realloc(void* ptr, std::size_t new_size, std::size_t old_size)
+{
+ return aligned_realloc(ptr, new_size, old_size);
+}
+
+template<> inline void* conditional_aligned_realloc<false>(void* ptr, std::size_t new_size, std::size_t)
+{
+ return std::realloc(ptr, new_size);
+}
+
+/*****************************************************************************
+*** Construction/destruction of array elements ***
+*****************************************************************************/
+
+/** \internal Destructs the elements of an array.
+ * The \a size parameters tells on how many objects to call the destructor of T.
+ */
+template<typename T> EIGEN_DEVICE_FUNC inline void destruct_elements_of_array(T *ptr, std::size_t size)
+{
+ // always destruct an array starting from the end.
+ if(ptr)
+ while(size) ptr[--size].~T();
+}
+
+/** \internal Constructs the elements of an array.
+ * The \a size parameter tells on how many objects to call the constructor of T.
+ */
+template<typename T> EIGEN_DEVICE_FUNC inline T* construct_elements_of_array(T *ptr, std::size_t size)
+{
+ std::size_t i;
+ EIGEN_TRY
+ {
+ for (i = 0; i < size; ++i) ::new (ptr + i) T;
+ return ptr;
+ }
+ EIGEN_CATCH(...)
+ {
+ destruct_elements_of_array(ptr, i);
+ EIGEN_THROW;
+ }
+ return NULL;
+}
+
+/*****************************************************************************
+*** Implementation of aligned new/delete-like functions ***
+*****************************************************************************/
+
+template<typename T>
+EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE void check_size_for_overflow(std::size_t size)
+{
+ if(size > std::size_t(-1) / sizeof(T))
+ throw_std_bad_alloc();
+}
+
+/** \internal Allocates \a size objects of type T. The returned pointer is guaranteed to have 16 bytes alignment.
+ * On allocation error, the returned pointer is undefined, but a std::bad_alloc is thrown.
+ * The default constructor of T is called.
+ */
+template<typename T> EIGEN_DEVICE_FUNC inline T* aligned_new(std::size_t size)
+{
+ check_size_for_overflow<T>(size);
+ T *result = reinterpret_cast<T*>(aligned_malloc(sizeof(T)*size));
+ EIGEN_TRY
+ {
+ return construct_elements_of_array(result, size);
+ }
+ EIGEN_CATCH(...)
+ {
+ aligned_free(result);
+ EIGEN_THROW;
+ }
+ return result;
+}
+
+template<typename T, bool Align> EIGEN_DEVICE_FUNC inline T* conditional_aligned_new(std::size_t size)
+{
+ check_size_for_overflow<T>(size);
+ T *result = reinterpret_cast<T*>(conditional_aligned_malloc<Align>(sizeof(T)*size));
+ EIGEN_TRY
+ {
+ return construct_elements_of_array(result, size);
+ }
+ EIGEN_CATCH(...)
+ {
+ conditional_aligned_free<Align>(result);
+ EIGEN_THROW;
+ }
+ return result;
+}
+
+/** \internal Deletes objects constructed with aligned_new
+ * The \a size parameters tells on how many objects to call the destructor of T.
+ */
+template<typename T> EIGEN_DEVICE_FUNC inline void aligned_delete(T *ptr, std::size_t size)
+{
+ destruct_elements_of_array<T>(ptr, size);
+ aligned_free(ptr);
+}
+
+/** \internal Deletes objects constructed with conditional_aligned_new
+ * The \a size parameters tells on how many objects to call the destructor of T.
+ */
+template<typename T, bool Align> EIGEN_DEVICE_FUNC inline void conditional_aligned_delete(T *ptr, std::size_t size)
+{
+ destruct_elements_of_array<T>(ptr, size);
+ conditional_aligned_free<Align>(ptr);
+}
+
+template<typename T, bool Align> EIGEN_DEVICE_FUNC inline T* conditional_aligned_realloc_new(T* pts, std::size_t new_size, std::size_t old_size)
+{
+ check_size_for_overflow<T>(new_size);
+ check_size_for_overflow<T>(old_size);
+ if(new_size < old_size)
+ destruct_elements_of_array(pts+new_size, old_size-new_size);
+ T *result = reinterpret_cast<T*>(conditional_aligned_realloc<Align>(reinterpret_cast<void*>(pts), sizeof(T)*new_size, sizeof(T)*old_size));
+ if(new_size > old_size)
+ {
+ EIGEN_TRY
+ {
+ construct_elements_of_array(result+old_size, new_size-old_size);
+ }
+ EIGEN_CATCH(...)
+ {
+ conditional_aligned_free<Align>(result);
+ EIGEN_THROW;
+ }
+ }
+ return result;
+}
+
+
+template<typename T, bool Align> EIGEN_DEVICE_FUNC inline T* conditional_aligned_new_auto(std::size_t size)
+{
+ if(size==0)
+ return 0; // short-cut. Also fixes Bug 884
+ check_size_for_overflow<T>(size);
+ T *result = reinterpret_cast<T*>(conditional_aligned_malloc<Align>(sizeof(T)*size));
+ if(NumTraits<T>::RequireInitialization)
+ {
+ EIGEN_TRY
+ {
+ construct_elements_of_array(result, size);
+ }
+ EIGEN_CATCH(...)
+ {
+ conditional_aligned_free<Align>(result);
+ EIGEN_THROW;
+ }
+ }
+ return result;
+}
+
+template<typename T, bool Align> inline T* conditional_aligned_realloc_new_auto(T* pts, std::size_t new_size, std::size_t old_size)
+{
+ check_size_for_overflow<T>(new_size);
+ check_size_for_overflow<T>(old_size);
+ if(NumTraits<T>::RequireInitialization && (new_size < old_size))
+ destruct_elements_of_array(pts+new_size, old_size-new_size);
+ T *result = reinterpret_cast<T*>(conditional_aligned_realloc<Align>(reinterpret_cast<void*>(pts), sizeof(T)*new_size, sizeof(T)*old_size));
+ if(NumTraits<T>::RequireInitialization && (new_size > old_size))
+ {
+ EIGEN_TRY
+ {
+ construct_elements_of_array(result+old_size, new_size-old_size);
+ }
+ EIGEN_CATCH(...)
+ {
+ conditional_aligned_free<Align>(result);
+ EIGEN_THROW;
+ }
+ }
+ return result;
+}
+
+template<typename T, bool Align> EIGEN_DEVICE_FUNC inline void conditional_aligned_delete_auto(T *ptr, std::size_t size)
+{
+ if(NumTraits<T>::RequireInitialization)
+ destruct_elements_of_array<T>(ptr, size);
+ conditional_aligned_free<Align>(ptr);
+}
+
+/****************************************************************************/
+
+/** \internal Returns the index of the first element of the array that is well aligned with respect to the requested \a Alignment.
+ *
+ * \tparam Alignment requested alignment in Bytes.
+ * \param array the address of the start of the array
+ * \param size the size of the array
+ *
+ * \note If no element of the array is well aligned or the requested alignment is not a multiple of a scalar,
+ * the size of the array is returned. For example with SSE, the requested alignment is typically 16-bytes. If
+ * packet size for the given scalar type is 1, then everything is considered well-aligned.
+ *
+ * \note Otherwise, if the Alignment is larger that the scalar size, we rely on the assumptions that sizeof(Scalar) is a
+ * power of 2. On the other hand, we do not assume that the array address is a multiple of sizeof(Scalar), as that fails for
+ * example with Scalar=double on certain 32-bit platforms, see bug #79.
+ *
+ * There is also the variant first_aligned(const MatrixBase&) defined in DenseCoeffsBase.h.
+ * \sa first_default_aligned()
+ */
+template<int Alignment, typename Scalar, typename Index>
+EIGEN_DEVICE_FUNC inline Index first_aligned(const Scalar* array, Index size)
+{
+ const Index ScalarSize = sizeof(Scalar);
+ const Index AlignmentSize = Alignment / ScalarSize;
+ const Index AlignmentMask = AlignmentSize-1;
+
+ if(AlignmentSize<=1)
+ {
+ // Either the requested alignment if smaller than a scalar, or it exactly match a 1 scalar
+ // so that all elements of the array have the same alignment.
+ return 0;
+ }
+ else if( (UIntPtr(array) & (sizeof(Scalar)-1)) || (Alignment%ScalarSize)!=0)
+ {
+ // The array is not aligned to the size of a single scalar, or the requested alignment is not a multiple of the scalar size.
+ // Consequently, no element of the array is well aligned.
+ return size;
+ }
+ else
+ {
+ Index first = (AlignmentSize - (Index((UIntPtr(array)/sizeof(Scalar))) & AlignmentMask)) & AlignmentMask;
+ return (first < size) ? first : size;
+ }
+}
+
+/** \internal Returns the index of the first element of the array that is well aligned with respect the largest packet requirement.
+ * \sa first_aligned(Scalar*,Index) and first_default_aligned(DenseBase<Derived>) */
+template<typename Scalar, typename Index>
+EIGEN_DEVICE_FUNC inline Index first_default_aligned(const Scalar* array, Index size)
+{
+ typedef typename packet_traits<Scalar>::type DefaultPacketType;
+ return first_aligned<unpacket_traits<DefaultPacketType>::alignment>(array, size);
+}
+
+/** \internal Returns the smallest integer multiple of \a base and greater or equal to \a size
+ */
+template<typename Index>
+inline Index first_multiple(Index size, Index base)
+{
+ return ((size+base-1)/base)*base;
+}
+
+// std::copy is much slower than memcpy, so let's introduce a smart_copy which
+// use memcpy on trivial types, i.e., on types that does not require an initialization ctor.
+template<typename T, bool UseMemcpy> struct smart_copy_helper;
+
+template<typename T> EIGEN_DEVICE_FUNC void smart_copy(const T* start, const T* end, T* target)
+{
+ smart_copy_helper<T,!NumTraits<T>::RequireInitialization>::run(start, end, target);
+}
+
+template<typename T> struct smart_copy_helper<T,true> {
+ EIGEN_DEVICE_FUNC static inline void run(const T* start, const T* end, T* target)
+ {
+ IntPtr size = IntPtr(end)-IntPtr(start);
+ if(size==0) return;
+ eigen_internal_assert(start!=0 && end!=0 && target!=0);
+ memcpy(target, start, size);
+ }
+};
+
+template<typename T> struct smart_copy_helper<T,false> {
+ EIGEN_DEVICE_FUNC static inline void run(const T* start, const T* end, T* target)
+ { std::copy(start, end, target); }
+};
+
+// intelligent memmove. falls back to std::memmove for POD types, uses std::copy otherwise.
+template<typename T, bool UseMemmove> struct smart_memmove_helper;
+
+template<typename T> void smart_memmove(const T* start, const T* end, T* target)
+{
+ smart_memmove_helper<T,!NumTraits<T>::RequireInitialization>::run(start, end, target);
+}
+
+template<typename T> struct smart_memmove_helper<T,true> {
+ static inline void run(const T* start, const T* end, T* target)
+ {
+ IntPtr size = IntPtr(end)-IntPtr(start);
+ if(size==0) return;
+ eigen_internal_assert(start!=0 && end!=0 && target!=0);
+ std::memmove(target, start, size);
+ }
+};
+
+template<typename T> struct smart_memmove_helper<T,false> {
+ static inline void run(const T* start, const T* end, T* target)
+ {
+ if (UIntPtr(target) < UIntPtr(start))
+ {
+ std::copy(start, end, target);
+ }
+ else
+ {
+ std::ptrdiff_t count = (std::ptrdiff_t(end)-std::ptrdiff_t(start)) / sizeof(T);
+ std::copy_backward(start, end, target + count);
+ }
+ }
+};
+
+
+/*****************************************************************************
+*** Implementation of runtime stack allocation (falling back to malloc) ***
+*****************************************************************************/
+
+// you can overwrite Eigen's default behavior regarding alloca by defining EIGEN_ALLOCA
+// to the appropriate stack allocation function
+#ifndef EIGEN_ALLOCA
+ #if EIGEN_OS_LINUX || EIGEN_OS_MAC || (defined alloca)
+ #define EIGEN_ALLOCA alloca
+ #elif EIGEN_COMP_MSVC
+ #define EIGEN_ALLOCA _alloca
+ #endif
+#endif
+
+// This helper class construct the allocated memory, and takes care of destructing and freeing the handled data
+// at destruction time. In practice this helper class is mainly useful to avoid memory leak in case of exceptions.
+template<typename T> class aligned_stack_memory_handler : noncopyable
+{
+ public:
+ /* Creates a stack_memory_handler responsible for the buffer \a ptr of size \a size.
+ * Note that \a ptr can be 0 regardless of the other parameters.
+ * This constructor takes care of constructing/initializing the elements of the buffer if required by the scalar type T (see NumTraits<T>::RequireInitialization).
+ * In this case, the buffer elements will also be destructed when this handler will be destructed.
+ * Finally, if \a dealloc is true, then the pointer \a ptr is freed.
+ **/
+ aligned_stack_memory_handler(T* ptr, std::size_t size, bool dealloc)
+ : m_ptr(ptr), m_size(size), m_deallocate(dealloc)
+ {
+ if(NumTraits<T>::RequireInitialization && m_ptr)
+ Eigen::internal::construct_elements_of_array(m_ptr, size);
+ }
+ ~aligned_stack_memory_handler()
+ {
+ if(NumTraits<T>::RequireInitialization && m_ptr)
+ Eigen::internal::destruct_elements_of_array<T>(m_ptr, m_size);
+ if(m_deallocate)
+ Eigen::internal::aligned_free(m_ptr);
+ }
+ protected:
+ T* m_ptr;
+ std::size_t m_size;
+ bool m_deallocate;
+};
+
+template<typename T> class scoped_array : noncopyable
+{
+ T* m_ptr;
+public:
+ explicit scoped_array(std::ptrdiff_t size)
+ {
+ m_ptr = new T[size];
+ }
+ ~scoped_array()
+ {
+ delete[] m_ptr;
+ }
+ T& operator[](std::ptrdiff_t i) { return m_ptr[i]; }
+ const T& operator[](std::ptrdiff_t i) const { return m_ptr[i]; }
+ T* &ptr() { return m_ptr; }
+ const T* ptr() const { return m_ptr; }
+ operator const T*() const { return m_ptr; }
+};
+
+template<typename T> void swap(scoped_array<T> &a,scoped_array<T> &b)
+{
+ std::swap(a.ptr(),b.ptr());
+}
+
+} // end namespace internal
+
+/** \internal
+ * Declares, allocates and construct an aligned buffer named NAME of SIZE elements of type TYPE on the stack
+ * if SIZE is smaller than EIGEN_STACK_ALLOCATION_LIMIT, and if stack allocation is supported by the platform
+ * (currently, this is Linux and Visual Studio only). Otherwise the memory is allocated on the heap.
+ * The allocated buffer is automatically deleted when exiting the scope of this declaration.
+ * If BUFFER is non null, then the declared variable is simply an alias for BUFFER, and no allocation/deletion occurs.
+ * Here is an example:
+ * \code
+ * {
+ * ei_declare_aligned_stack_constructed_variable(float,data,size,0);
+ * // use data[0] to data[size-1]
+ * }
+ * \endcode
+ * The underlying stack allocation function can controlled with the EIGEN_ALLOCA preprocessor token.
+ */
+#ifdef EIGEN_ALLOCA
+
+ #if EIGEN_DEFAULT_ALIGN_BYTES>0
+ // We always manually re-align the result of EIGEN_ALLOCA.
+ // If alloca is already aligned, the compiler should be smart enough to optimize away the re-alignment.
+ #define EIGEN_ALIGNED_ALLOCA(SIZE) reinterpret_cast<void*>((internal::UIntPtr(EIGEN_ALLOCA(SIZE+EIGEN_DEFAULT_ALIGN_BYTES-1)) + EIGEN_DEFAULT_ALIGN_BYTES-1) & ~(std::size_t(EIGEN_DEFAULT_ALIGN_BYTES-1)))
+ #else
+ #define EIGEN_ALIGNED_ALLOCA(SIZE) EIGEN_ALLOCA(SIZE)
+ #endif
+
+ #define ei_declare_aligned_stack_constructed_variable(TYPE,NAME,SIZE,BUFFER) \
+ Eigen::internal::check_size_for_overflow<TYPE>(SIZE); \
+ TYPE* NAME = (BUFFER)!=0 ? (BUFFER) \
+ : reinterpret_cast<TYPE*>( \
+ (sizeof(TYPE)*SIZE<=EIGEN_STACK_ALLOCATION_LIMIT) ? EIGEN_ALIGNED_ALLOCA(sizeof(TYPE)*SIZE) \
+ : Eigen::internal::aligned_malloc(sizeof(TYPE)*SIZE) ); \
+ Eigen::internal::aligned_stack_memory_handler<TYPE> EIGEN_CAT(NAME,_stack_memory_destructor)((BUFFER)==0 ? NAME : 0,SIZE,sizeof(TYPE)*SIZE>EIGEN_STACK_ALLOCATION_LIMIT)
+
+#else
+
+ #define ei_declare_aligned_stack_constructed_variable(TYPE,NAME,SIZE,BUFFER) \
+ Eigen::internal::check_size_for_overflow<TYPE>(SIZE); \
+ TYPE* NAME = (BUFFER)!=0 ? BUFFER : reinterpret_cast<TYPE*>(Eigen::internal::aligned_malloc(sizeof(TYPE)*SIZE)); \
+ Eigen::internal::aligned_stack_memory_handler<TYPE> EIGEN_CAT(NAME,_stack_memory_destructor)((BUFFER)==0 ? NAME : 0,SIZE,true)
+
+#endif
+
+
+/*****************************************************************************
+*** Implementation of EIGEN_MAKE_ALIGNED_OPERATOR_NEW [_IF] ***
+*****************************************************************************/
+
+#if EIGEN_MAX_ALIGN_BYTES!=0
+ #define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_NOTHROW(NeedsToAlign) \
+ void* operator new(std::size_t size, const std::nothrow_t&) EIGEN_NO_THROW { \
+ EIGEN_TRY { return Eigen::internal::conditional_aligned_malloc<NeedsToAlign>(size); } \
+ EIGEN_CATCH (...) { return 0; } \
+ }
+ #define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign) \
+ void *operator new(std::size_t size) { \
+ return Eigen::internal::conditional_aligned_malloc<NeedsToAlign>(size); \
+ } \
+ void *operator new[](std::size_t size) { \
+ return Eigen::internal::conditional_aligned_malloc<NeedsToAlign>(size); \
+ } \
+ void operator delete(void * ptr) EIGEN_NO_THROW { Eigen::internal::conditional_aligned_free<NeedsToAlign>(ptr); } \
+ void operator delete[](void * ptr) EIGEN_NO_THROW { Eigen::internal::conditional_aligned_free<NeedsToAlign>(ptr); } \
+ void operator delete(void * ptr, std::size_t /* sz */) EIGEN_NO_THROW { Eigen::internal::conditional_aligned_free<NeedsToAlign>(ptr); } \
+ void operator delete[](void * ptr, std::size_t /* sz */) EIGEN_NO_THROW { Eigen::internal::conditional_aligned_free<NeedsToAlign>(ptr); } \
+ /* in-place new and delete. since (at least afaik) there is no actual */ \
+ /* memory allocated we can safely let the default implementation handle */ \
+ /* this particular case. */ \
+ static void *operator new(std::size_t size, void *ptr) { return ::operator new(size,ptr); } \
+ static void *operator new[](std::size_t size, void* ptr) { return ::operator new[](size,ptr); } \
+ void operator delete(void * memory, void *ptr) EIGEN_NO_THROW { return ::operator delete(memory,ptr); } \
+ void operator delete[](void * memory, void *ptr) EIGEN_NO_THROW { return ::operator delete[](memory,ptr); } \
+ /* nothrow-new (returns zero instead of std::bad_alloc) */ \
+ EIGEN_MAKE_ALIGNED_OPERATOR_NEW_NOTHROW(NeedsToAlign) \
+ void operator delete(void *ptr, const std::nothrow_t&) EIGEN_NO_THROW { \
+ Eigen::internal::conditional_aligned_free<NeedsToAlign>(ptr); \
+ } \
+ typedef void eigen_aligned_operator_new_marker_type;
+#else
+ #define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign)
+#endif
+
+#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(true)
+#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(Scalar,Size) \
+ EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(bool(((Size)!=Eigen::Dynamic) && ((sizeof(Scalar)*(Size))%EIGEN_MAX_ALIGN_BYTES==0)))
+
+/****************************************************************************/
+
+/** \class aligned_allocator
+* \ingroup Core_Module
+*
+* \brief STL compatible allocator to use with with 16 byte aligned types
+*
+* Example:
+* \code
+* // Matrix4f requires 16 bytes alignment:
+* std::map< int, Matrix4f, std::less<int>,
+* aligned_allocator<std::pair<const int, Matrix4f> > > my_map_mat4;
+* // Vector3f does not require 16 bytes alignment, no need to use Eigen's allocator:
+* std::map< int, Vector3f > my_map_vec3;
+* \endcode
+*
+* \sa \blank \ref TopicStlContainers.
+*/
+template<class T>
+class aligned_allocator : public std::allocator<T>
+{
+public:
+ typedef std::size_t size_type;
+ typedef std::ptrdiff_t difference_type;
+ typedef T* pointer;
+ typedef const T* const_pointer;
+ typedef T& reference;
+ typedef const T& const_reference;
+ typedef T value_type;
+
+ template<class U>
+ struct rebind
+ {
+ typedef aligned_allocator<U> other;
+ };
+
+ aligned_allocator() : std::allocator<T>() {}
+
+ aligned_allocator(const aligned_allocator& other) : std::allocator<T>(other) {}
+
+ template<class U>
+ aligned_allocator(const aligned_allocator<U>& other) : std::allocator<T>(other) {}
+
+ ~aligned_allocator() {}
+
+ pointer allocate(size_type num, const void* /*hint*/ = 0)
+ {
+ internal::check_size_for_overflow<T>(num);
+ return static_cast<pointer>( internal::aligned_malloc(num * sizeof(T)) );
+ }
+
+ void deallocate(pointer p, size_type /*num*/)
+ {
+ internal::aligned_free(p);
+ }
+};
+
+//---------- Cache sizes ----------
+
+#if !defined(EIGEN_NO_CPUID)
+# if EIGEN_COMP_GNUC && EIGEN_ARCH_i386_OR_x86_64
+# if defined(__PIC__) && EIGEN_ARCH_i386
+ // Case for x86 with PIC
+# define EIGEN_CPUID(abcd,func,id) \
+ __asm__ __volatile__ ("xchgl %%ebx, %k1;cpuid; xchgl %%ebx,%k1": "=a" (abcd[0]), "=&r" (abcd[1]), "=c" (abcd[2]), "=d" (abcd[3]) : "a" (func), "c" (id));
+# elif defined(__PIC__) && EIGEN_ARCH_x86_64
+ // Case for x64 with PIC. In theory this is only a problem with recent gcc and with medium or large code model, not with the default small code model.
+ // However, we cannot detect which code model is used, and the xchg overhead is negligible anyway.
+# define EIGEN_CPUID(abcd,func,id) \
+ __asm__ __volatile__ ("xchg{q}\t{%%}rbx, %q1; cpuid; xchg{q}\t{%%}rbx, %q1": "=a" (abcd[0]), "=&r" (abcd[1]), "=c" (abcd[2]), "=d" (abcd[3]) : "0" (func), "2" (id));
+# else
+ // Case for x86_64 or x86 w/o PIC
+# define EIGEN_CPUID(abcd,func,id) \
+ __asm__ __volatile__ ("cpuid": "=a" (abcd[0]), "=b" (abcd[1]), "=c" (abcd[2]), "=d" (abcd[3]) : "0" (func), "2" (id) );
+# endif
+# elif EIGEN_COMP_MSVC
+# if (EIGEN_COMP_MSVC > 1500) && EIGEN_ARCH_i386_OR_x86_64
+# define EIGEN_CPUID(abcd,func,id) __cpuidex((int*)abcd,func,id)
+# endif
+# endif
+#endif
+
+namespace internal {
+
+#ifdef EIGEN_CPUID
+
+inline bool cpuid_is_vendor(int abcd[4], const int vendor[3])
+{
+ return abcd[1]==vendor[0] && abcd[3]==vendor[1] && abcd[2]==vendor[2];
+}
+
+inline void queryCacheSizes_intel_direct(int& l1, int& l2, int& l3)
+{
+ int abcd[4];
+ l1 = l2 = l3 = 0;
+ int cache_id = 0;
+ int cache_type = 0;
+ do {
+ abcd[0] = abcd[1] = abcd[2] = abcd[3] = 0;
+ EIGEN_CPUID(abcd,0x4,cache_id);
+ cache_type = (abcd[0] & 0x0F) >> 0;
+ if(cache_type==1||cache_type==3) // data or unified cache
+ {
+ int cache_level = (abcd[0] & 0xE0) >> 5; // A[7:5]
+ int ways = (abcd[1] & 0xFFC00000) >> 22; // B[31:22]
+ int partitions = (abcd[1] & 0x003FF000) >> 12; // B[21:12]
+ int line_size = (abcd[1] & 0x00000FFF) >> 0; // B[11:0]
+ int sets = (abcd[2]); // C[31:0]
+
+ int cache_size = (ways+1) * (partitions+1) * (line_size+1) * (sets+1);
+
+ switch(cache_level)
+ {
+ case 1: l1 = cache_size; break;
+ case 2: l2 = cache_size; break;
+ case 3: l3 = cache_size; break;
+ default: break;
+ }
+ }
+ cache_id++;
+ } while(cache_type>0 && cache_id<16);
+}
+
+inline void queryCacheSizes_intel_codes(int& l1, int& l2, int& l3)
+{
+ int abcd[4];
+ abcd[0] = abcd[1] = abcd[2] = abcd[3] = 0;
+ l1 = l2 = l3 = 0;
+ EIGEN_CPUID(abcd,0x00000002,0);
+ unsigned char * bytes = reinterpret_cast<unsigned char *>(abcd)+2;
+ bool check_for_p2_core2 = false;
+ for(int i=0; i<14; ++i)
+ {
+ switch(bytes[i])
+ {
+ case 0x0A: l1 = 8; break; // 0Ah data L1 cache, 8 KB, 2 ways, 32 byte lines
+ case 0x0C: l1 = 16; break; // 0Ch data L1 cache, 16 KB, 4 ways, 32 byte lines
+ case 0x0E: l1 = 24; break; // 0Eh data L1 cache, 24 KB, 6 ways, 64 byte lines
+ case 0x10: l1 = 16; break; // 10h data L1 cache, 16 KB, 4 ways, 32 byte lines (IA-64)
+ case 0x15: l1 = 16; break; // 15h code L1 cache, 16 KB, 4 ways, 32 byte lines (IA-64)
+ case 0x2C: l1 = 32; break; // 2Ch data L1 cache, 32 KB, 8 ways, 64 byte lines
+ case 0x30: l1 = 32; break; // 30h code L1 cache, 32 KB, 8 ways, 64 byte lines
+ case 0x60: l1 = 16; break; // 60h data L1 cache, 16 KB, 8 ways, 64 byte lines, sectored
+ case 0x66: l1 = 8; break; // 66h data L1 cache, 8 KB, 4 ways, 64 byte lines, sectored
+ case 0x67: l1 = 16; break; // 67h data L1 cache, 16 KB, 4 ways, 64 byte lines, sectored
+ case 0x68: l1 = 32; break; // 68h data L1 cache, 32 KB, 4 ways, 64 byte lines, sectored
+ case 0x1A: l2 = 96; break; // code and data L2 cache, 96 KB, 6 ways, 64 byte lines (IA-64)
+ case 0x22: l3 = 512; break; // code and data L3 cache, 512 KB, 4 ways (!), 64 byte lines, dual-sectored
+ case 0x23: l3 = 1024; break; // code and data L3 cache, 1024 KB, 8 ways, 64 byte lines, dual-sectored
+ case 0x25: l3 = 2048; break; // code and data L3 cache, 2048 KB, 8 ways, 64 byte lines, dual-sectored
+ case 0x29: l3 = 4096; break; // code and data L3 cache, 4096 KB, 8 ways, 64 byte lines, dual-sectored
+ case 0x39: l2 = 128; break; // code and data L2 cache, 128 KB, 4 ways, 64 byte lines, sectored
+ case 0x3A: l2 = 192; break; // code and data L2 cache, 192 KB, 6 ways, 64 byte lines, sectored
+ case 0x3B: l2 = 128; break; // code and data L2 cache, 128 KB, 2 ways, 64 byte lines, sectored
+ case 0x3C: l2 = 256; break; // code and data L2 cache, 256 KB, 4 ways, 64 byte lines, sectored
+ case 0x3D: l2 = 384; break; // code and data L2 cache, 384 KB, 6 ways, 64 byte lines, sectored
+ case 0x3E: l2 = 512; break; // code and data L2 cache, 512 KB, 4 ways, 64 byte lines, sectored
+ case 0x40: l2 = 0; break; // no integrated L2 cache (P6 core) or L3 cache (P4 core)
+ case 0x41: l2 = 128; break; // code and data L2 cache, 128 KB, 4 ways, 32 byte lines
+ case 0x42: l2 = 256; break; // code and data L2 cache, 256 KB, 4 ways, 32 byte lines
+ case 0x43: l2 = 512; break; // code and data L2 cache, 512 KB, 4 ways, 32 byte lines
+ case 0x44: l2 = 1024; break; // code and data L2 cache, 1024 KB, 4 ways, 32 byte lines
+ case 0x45: l2 = 2048; break; // code and data L2 cache, 2048 KB, 4 ways, 32 byte lines
+ case 0x46: l3 = 4096; break; // code and data L3 cache, 4096 KB, 4 ways, 64 byte lines
+ case 0x47: l3 = 8192; break; // code and data L3 cache, 8192 KB, 8 ways, 64 byte lines
+ case 0x48: l2 = 3072; break; // code and data L2 cache, 3072 KB, 12 ways, 64 byte lines
+ case 0x49: if(l2!=0) l3 = 4096; else {check_for_p2_core2=true; l3 = l2 = 4096;} break;// code and data L3 cache, 4096 KB, 16 ways, 64 byte lines (P4) or L2 for core2
+ case 0x4A: l3 = 6144; break; // code and data L3 cache, 6144 KB, 12 ways, 64 byte lines
+ case 0x4B: l3 = 8192; break; // code and data L3 cache, 8192 KB, 16 ways, 64 byte lines
+ case 0x4C: l3 = 12288; break; // code and data L3 cache, 12288 KB, 12 ways, 64 byte lines
+ case 0x4D: l3 = 16384; break; // code and data L3 cache, 16384 KB, 16 ways, 64 byte lines
+ case 0x4E: l2 = 6144; break; // code and data L2 cache, 6144 KB, 24 ways, 64 byte lines
+ case 0x78: l2 = 1024; break; // code and data L2 cache, 1024 KB, 4 ways, 64 byte lines
+ case 0x79: l2 = 128; break; // code and data L2 cache, 128 KB, 8 ways, 64 byte lines, dual-sectored
+ case 0x7A: l2 = 256; break; // code and data L2 cache, 256 KB, 8 ways, 64 byte lines, dual-sectored
+ case 0x7B: l2 = 512; break; // code and data L2 cache, 512 KB, 8 ways, 64 byte lines, dual-sectored
+ case 0x7C: l2 = 1024; break; // code and data L2 cache, 1024 KB, 8 ways, 64 byte lines, dual-sectored
+ case 0x7D: l2 = 2048; break; // code and data L2 cache, 2048 KB, 8 ways, 64 byte lines
+ case 0x7E: l2 = 256; break; // code and data L2 cache, 256 KB, 8 ways, 128 byte lines, sect. (IA-64)
+ case 0x7F: l2 = 512; break; // code and data L2 cache, 512 KB, 2 ways, 64 byte lines
+ case 0x80: l2 = 512; break; // code and data L2 cache, 512 KB, 8 ways, 64 byte lines
+ case 0x81: l2 = 128; break; // code and data L2 cache, 128 KB, 8 ways, 32 byte lines
+ case 0x82: l2 = 256; break; // code and data L2 cache, 256 KB, 8 ways, 32 byte lines
+ case 0x83: l2 = 512; break; // code and data L2 cache, 512 KB, 8 ways, 32 byte lines
+ case 0x84: l2 = 1024; break; // code and data L2 cache, 1024 KB, 8 ways, 32 byte lines
+ case 0x85: l2 = 2048; break; // code and data L2 cache, 2048 KB, 8 ways, 32 byte lines
+ case 0x86: l2 = 512; break; // code and data L2 cache, 512 KB, 4 ways, 64 byte lines
+ case 0x87: l2 = 1024; break; // code and data L2 cache, 1024 KB, 8 ways, 64 byte lines
+ case 0x88: l3 = 2048; break; // code and data L3 cache, 2048 KB, 4 ways, 64 byte lines (IA-64)
+ case 0x89: l3 = 4096; break; // code and data L3 cache, 4096 KB, 4 ways, 64 byte lines (IA-64)
+ case 0x8A: l3 = 8192; break; // code and data L3 cache, 8192 KB, 4 ways, 64 byte lines (IA-64)
+ case 0x8D: l3 = 3072; break; // code and data L3 cache, 3072 KB, 12 ways, 128 byte lines (IA-64)
+
+ default: break;
+ }
+ }
+ if(check_for_p2_core2 && l2 == l3)
+ l3 = 0;
+ l1 *= 1024;
+ l2 *= 1024;
+ l3 *= 1024;
+}
+
+inline void queryCacheSizes_intel(int& l1, int& l2, int& l3, int max_std_funcs)
+{
+ if(max_std_funcs>=4)
+ queryCacheSizes_intel_direct(l1,l2,l3);
+ else
+ queryCacheSizes_intel_codes(l1,l2,l3);
+}
+
+inline void queryCacheSizes_amd(int& l1, int& l2, int& l3)
+{
+ int abcd[4];
+ abcd[0] = abcd[1] = abcd[2] = abcd[3] = 0;
+ EIGEN_CPUID(abcd,0x80000005,0);
+ l1 = (abcd[2] >> 24) * 1024; // C[31:24] = L1 size in KB
+ abcd[0] = abcd[1] = abcd[2] = abcd[3] = 0;
+ EIGEN_CPUID(abcd,0x80000006,0);
+ l2 = (abcd[2] >> 16) * 1024; // C[31;16] = l2 cache size in KB
+ l3 = ((abcd[3] & 0xFFFC000) >> 18) * 512 * 1024; // D[31;18] = l3 cache size in 512KB
+}
+#endif
+
+/** \internal
+ * Queries and returns the cache sizes in Bytes of the L1, L2, and L3 data caches respectively */
+inline void queryCacheSizes(int& l1, int& l2, int& l3)
+{
+ #ifdef EIGEN_CPUID
+ int abcd[4];
+ const int GenuineIntel[] = {0x756e6547, 0x49656e69, 0x6c65746e};
+ const int AuthenticAMD[] = {0x68747541, 0x69746e65, 0x444d4163};
+ const int AMDisbetter_[] = {0x69444d41, 0x74656273, 0x21726574}; // "AMDisbetter!"
+
+ // identify the CPU vendor
+ EIGEN_CPUID(abcd,0x0,0);
+ int max_std_funcs = abcd[1];
+ if(cpuid_is_vendor(abcd,GenuineIntel))
+ queryCacheSizes_intel(l1,l2,l3,max_std_funcs);
+ else if(cpuid_is_vendor(abcd,AuthenticAMD) || cpuid_is_vendor(abcd,AMDisbetter_))
+ queryCacheSizes_amd(l1,l2,l3);
+ else
+ // by default let's use Intel's API
+ queryCacheSizes_intel(l1,l2,l3,max_std_funcs);
+
+ // here is the list of other vendors:
+// ||cpuid_is_vendor(abcd,"VIA VIA VIA ")
+// ||cpuid_is_vendor(abcd,"CyrixInstead")
+// ||cpuid_is_vendor(abcd,"CentaurHauls")
+// ||cpuid_is_vendor(abcd,"GenuineTMx86")
+// ||cpuid_is_vendor(abcd,"TransmetaCPU")
+// ||cpuid_is_vendor(abcd,"RiseRiseRise")
+// ||cpuid_is_vendor(abcd,"Geode by NSC")
+// ||cpuid_is_vendor(abcd,"SiS SiS SiS ")
+// ||cpuid_is_vendor(abcd,"UMC UMC UMC ")
+// ||cpuid_is_vendor(abcd,"NexGenDriven")
+ #else
+ l1 = l2 = l3 = -1;
+ #endif
+}
+
+/** \internal
+ * \returns the size in Bytes of the L1 data cache */
+inline int queryL1CacheSize()
+{
+ int l1(-1), l2, l3;
+ queryCacheSizes(l1,l2,l3);
+ return l1;
+}
+
+/** \internal
+ * \returns the size in Bytes of the L2 or L3 cache if this later is present */
+inline int queryTopLevelCacheSize()
+{
+ int l1, l2(-1), l3(-1);
+ queryCacheSizes(l1,l2,l3);
+ return (std::max)(l2,l3);
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_MEMORY_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/Meta.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/Meta.h
new file mode 100755
index 000000000..7f6370755
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/Meta.h
@@ -0,0 +1,492 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_META_H
+#define EIGEN_META_H
+
+#if defined(__CUDA_ARCH__)
+#include <cfloat>
+#include <math_constants.h>
+#endif
+
+#if EIGEN_COMP_ICC>=1600 && __cplusplus >= 201103L
+#include <cstdint>
+#endif
+
+namespace Eigen {
+
+typedef EIGEN_DEFAULT_DENSE_INDEX_TYPE DenseIndex;
+
+/**
+ * \brief The Index type as used for the API.
+ * \details To change this, \c \#define the preprocessor symbol \c EIGEN_DEFAULT_DENSE_INDEX_TYPE.
+ * \sa \blank \ref TopicPreprocessorDirectives, StorageIndex.
+ */
+
+typedef EIGEN_DEFAULT_DENSE_INDEX_TYPE Index;
+
+namespace internal {
+
+/** \internal
+ * \file Meta.h
+ * This file contains generic metaprogramming classes which are not specifically related to Eigen.
+ * \note In case you wonder, yes we're aware that Boost already provides all these features,
+ * we however don't want to add a dependency to Boost.
+ */
+
+// Only recent versions of ICC complain about using ptrdiff_t to hold pointers,
+// and older versions do not provide *intptr_t types.
+#if EIGEN_COMP_ICC>=1600 && __cplusplus >= 201103L
+typedef std::intptr_t IntPtr;
+typedef std::uintptr_t UIntPtr;
+#else
+typedef std::ptrdiff_t IntPtr;
+typedef std::size_t UIntPtr;
+#endif
+
+struct true_type { enum { value = 1 }; };
+struct false_type { enum { value = 0 }; };
+
+template<bool Condition, typename Then, typename Else>
+struct conditional { typedef Then type; };
+
+template<typename Then, typename Else>
+struct conditional <false, Then, Else> { typedef Else type; };
+
+template<typename T, typename U> struct is_same { enum { value = 0 }; };
+template<typename T> struct is_same<T,T> { enum { value = 1 }; };
+
+template<typename T> struct remove_reference { typedef T type; };
+template<typename T> struct remove_reference<T&> { typedef T type; };
+
+template<typename T> struct remove_pointer { typedef T type; };
+template<typename T> struct remove_pointer<T*> { typedef T type; };
+template<typename T> struct remove_pointer<T*const> { typedef T type; };
+
+template <class T> struct remove_const { typedef T type; };
+template <class T> struct remove_const<const T> { typedef T type; };
+template <class T> struct remove_const<const T[]> { typedef T type[]; };
+template <class T, unsigned int Size> struct remove_const<const T[Size]> { typedef T type[Size]; };
+
+template<typename T> struct remove_all { typedef T type; };
+template<typename T> struct remove_all<const T> { typedef typename remove_all<T>::type type; };
+template<typename T> struct remove_all<T const&> { typedef typename remove_all<T>::type type; };
+template<typename T> struct remove_all<T&> { typedef typename remove_all<T>::type type; };
+template<typename T> struct remove_all<T const*> { typedef typename remove_all<T>::type type; };
+template<typename T> struct remove_all<T*> { typedef typename remove_all<T>::type type; };
+
+template<typename T> struct is_arithmetic { enum { value = false }; };
+template<> struct is_arithmetic<float> { enum { value = true }; };
+template<> struct is_arithmetic<double> { enum { value = true }; };
+template<> struct is_arithmetic<long double> { enum { value = true }; };
+template<> struct is_arithmetic<bool> { enum { value = true }; };
+template<> struct is_arithmetic<char> { enum { value = true }; };
+template<> struct is_arithmetic<signed char> { enum { value = true }; };
+template<> struct is_arithmetic<unsigned char> { enum { value = true }; };
+template<> struct is_arithmetic<signed short> { enum { value = true }; };
+template<> struct is_arithmetic<unsigned short>{ enum { value = true }; };
+template<> struct is_arithmetic<signed int> { enum { value = true }; };
+template<> struct is_arithmetic<unsigned int> { enum { value = true }; };
+template<> struct is_arithmetic<signed long> { enum { value = true }; };
+template<> struct is_arithmetic<unsigned long> { enum { value = true }; };
+
+template<typename T> struct is_integral { enum { value = false }; };
+template<> struct is_integral<bool> { enum { value = true }; };
+template<> struct is_integral<char> { enum { value = true }; };
+template<> struct is_integral<signed char> { enum { value = true }; };
+template<> struct is_integral<unsigned char> { enum { value = true }; };
+template<> struct is_integral<signed short> { enum { value = true }; };
+template<> struct is_integral<unsigned short> { enum { value = true }; };
+template<> struct is_integral<signed int> { enum { value = true }; };
+template<> struct is_integral<unsigned int> { enum { value = true }; };
+template<> struct is_integral<signed long> { enum { value = true }; };
+template<> struct is_integral<unsigned long> { enum { value = true }; };
+
+template <typename T> struct add_const { typedef const T type; };
+template <typename T> struct add_const<T&> { typedef T& type; };
+
+template <typename T> struct is_const { enum { value = 0 }; };
+template <typename T> struct is_const<T const> { enum { value = 1 }; };
+
+template<typename T> struct add_const_on_value_type { typedef const T type; };
+template<typename T> struct add_const_on_value_type<T&> { typedef T const& type; };
+template<typename T> struct add_const_on_value_type<T*> { typedef T const* type; };
+template<typename T> struct add_const_on_value_type<T* const> { typedef T const* const type; };
+template<typename T> struct add_const_on_value_type<T const* const> { typedef T const* const type; };
+
+
+template<typename From, typename To>
+struct is_convertible_impl
+{
+private:
+ struct any_conversion
+ {
+ template <typename T> any_conversion(const volatile T&);
+ template <typename T> any_conversion(T&);
+ };
+ struct yes {int a[1];};
+ struct no {int a[2];};
+
+ static yes test(const To&, int);
+ static no test(any_conversion, ...);
+
+public:
+ static From ms_from;
+#ifdef __INTEL_COMPILER
+ #pragma warning push
+ #pragma warning ( disable : 2259 )
+#endif
+ enum { value = sizeof(test(ms_from, 0))==sizeof(yes) };
+#ifdef __INTEL_COMPILER
+ #pragma warning pop
+#endif
+};
+
+template<typename From, typename To>
+struct is_convertible
+{
+ enum { value = is_convertible_impl<typename remove_all<From>::type,
+ typename remove_all<To >::type>::value };
+};
+
+/** \internal Allows to enable/disable an overload
+ * according to a compile time condition.
+ */
+template<bool Condition, typename T=void> struct enable_if;
+
+template<typename T> struct enable_if<true,T>
+{ typedef T type; };
+
+#if defined(__CUDA_ARCH__)
+#if !defined(__FLT_EPSILON__)
+#define __FLT_EPSILON__ FLT_EPSILON
+#define __DBL_EPSILON__ DBL_EPSILON
+#endif
+
+namespace device {
+
+template<typename T> struct numeric_limits
+{
+ EIGEN_DEVICE_FUNC
+ static T epsilon() { return 0; }
+ static T (max)() { assert(false && "Highest not supported for this type"); }
+ static T (min)() { assert(false && "Lowest not supported for this type"); }
+ static T infinity() { assert(false && "Infinity not supported for this type"); }
+ static T quiet_NaN() { assert(false && "quiet_NaN not supported for this type"); }
+};
+template<> struct numeric_limits<float>
+{
+ EIGEN_DEVICE_FUNC
+ static float epsilon() { return __FLT_EPSILON__; }
+ EIGEN_DEVICE_FUNC
+ static float (max)() { return CUDART_MAX_NORMAL_F; }
+ EIGEN_DEVICE_FUNC
+ static float (min)() { return FLT_MIN; }
+ EIGEN_DEVICE_FUNC
+ static float infinity() { return CUDART_INF_F; }
+ EIGEN_DEVICE_FUNC
+ static float quiet_NaN() { return CUDART_NAN_F; }
+};
+template<> struct numeric_limits<double>
+{
+ EIGEN_DEVICE_FUNC
+ static double epsilon() { return __DBL_EPSILON__; }
+ EIGEN_DEVICE_FUNC
+ static double (max)() { return DBL_MAX; }
+ EIGEN_DEVICE_FUNC
+ static double (min)() { return DBL_MIN; }
+ EIGEN_DEVICE_FUNC
+ static double infinity() { return CUDART_INF; }
+ EIGEN_DEVICE_FUNC
+ static double quiet_NaN() { return CUDART_NAN; }
+};
+template<> struct numeric_limits<int>
+{
+ EIGEN_DEVICE_FUNC
+ static int epsilon() { return 0; }
+ EIGEN_DEVICE_FUNC
+ static int (max)() { return INT_MAX; }
+ EIGEN_DEVICE_FUNC
+ static int (min)() { return INT_MIN; }
+};
+template<> struct numeric_limits<unsigned int>
+{
+ EIGEN_DEVICE_FUNC
+ static unsigned int epsilon() { return 0; }
+ EIGEN_DEVICE_FUNC
+ static unsigned int (max)() { return UINT_MAX; }
+ EIGEN_DEVICE_FUNC
+ static unsigned int (min)() { return 0; }
+};
+template<> struct numeric_limits<long>
+{
+ EIGEN_DEVICE_FUNC
+ static long epsilon() { return 0; }
+ EIGEN_DEVICE_FUNC
+ static long (max)() { return LONG_MAX; }
+ EIGEN_DEVICE_FUNC
+ static long (min)() { return LONG_MIN; }
+};
+template<> struct numeric_limits<unsigned long>
+{
+ EIGEN_DEVICE_FUNC
+ static unsigned long epsilon() { return 0; }
+ EIGEN_DEVICE_FUNC
+ static unsigned long (max)() { return ULONG_MAX; }
+ EIGEN_DEVICE_FUNC
+ static unsigned long (min)() { return 0; }
+};
+template<> struct numeric_limits<long long>
+{
+ EIGEN_DEVICE_FUNC
+ static long long epsilon() { return 0; }
+ EIGEN_DEVICE_FUNC
+ static long long (max)() { return LLONG_MAX; }
+ EIGEN_DEVICE_FUNC
+ static long long (min)() { return LLONG_MIN; }
+};
+template<> struct numeric_limits<unsigned long long>
+{
+ EIGEN_DEVICE_FUNC
+ static unsigned long long epsilon() { return 0; }
+ EIGEN_DEVICE_FUNC
+ static unsigned long long (max)() { return ULLONG_MAX; }
+ EIGEN_DEVICE_FUNC
+ static unsigned long long (min)() { return 0; }
+};
+
+}
+
+#endif
+
+/** \internal
+ * A base class do disable default copy ctor and copy assignement operator.
+ */
+class noncopyable
+{
+ EIGEN_DEVICE_FUNC noncopyable(const noncopyable&);
+ EIGEN_DEVICE_FUNC const noncopyable& operator=(const noncopyable&);
+protected:
+ EIGEN_DEVICE_FUNC noncopyable() {}
+ EIGEN_DEVICE_FUNC ~noncopyable() {}
+};
+
+/** \internal
+ * Convenient struct to get the result type of a unary or binary functor.
+ *
+ * It supports both the current STL mechanism (using the result_type member) as well as
+ * upcoming next STL generation (using a templated result member).
+ * If none of these members is provided, then the type of the first argument is returned. FIXME, that behavior is a pretty bad hack.
+ */
+#if EIGEN_HAS_STD_RESULT_OF
+template<typename T> struct result_of {
+ typedef typename std::result_of<T>::type type1;
+ typedef typename remove_all<type1>::type type;
+};
+#else
+template<typename T> struct result_of { };
+
+struct has_none {int a[1];};
+struct has_std_result_type {int a[2];};
+struct has_tr1_result {int a[3];};
+
+template<typename Func, typename ArgType, int SizeOf=sizeof(has_none)>
+struct unary_result_of_select {typedef typename internal::remove_all<ArgType>::type type;};
+
+template<typename Func, typename ArgType>
+struct unary_result_of_select<Func, ArgType, sizeof(has_std_result_type)> {typedef typename Func::result_type type;};
+
+template<typename Func, typename ArgType>
+struct unary_result_of_select<Func, ArgType, sizeof(has_tr1_result)> {typedef typename Func::template result<Func(ArgType)>::type type;};
+
+template<typename Func, typename ArgType>
+struct result_of<Func(ArgType)> {
+ template<typename T>
+ static has_std_result_type testFunctor(T const *, typename T::result_type const * = 0);
+ template<typename T>
+ static has_tr1_result testFunctor(T const *, typename T::template result<T(ArgType)>::type const * = 0);
+ static has_none testFunctor(...);
+
+ // note that the following indirection is needed for gcc-3.3
+ enum {FunctorType = sizeof(testFunctor(static_cast<Func*>(0)))};
+ typedef typename unary_result_of_select<Func, ArgType, FunctorType>::type type;
+};
+
+template<typename Func, typename ArgType0, typename ArgType1, int SizeOf=sizeof(has_none)>
+struct binary_result_of_select {typedef typename internal::remove_all<ArgType0>::type type;};
+
+template<typename Func, typename ArgType0, typename ArgType1>
+struct binary_result_of_select<Func, ArgType0, ArgType1, sizeof(has_std_result_type)>
+{typedef typename Func::result_type type;};
+
+template<typename Func, typename ArgType0, typename ArgType1>
+struct binary_result_of_select<Func, ArgType0, ArgType1, sizeof(has_tr1_result)>
+{typedef typename Func::template result<Func(ArgType0,ArgType1)>::type type;};
+
+template<typename Func, typename ArgType0, typename ArgType1>
+struct result_of<Func(ArgType0,ArgType1)> {
+ template<typename T>
+ static has_std_result_type testFunctor(T const *, typename T::result_type const * = 0);
+ template<typename T>
+ static has_tr1_result testFunctor(T const *, typename T::template result<T(ArgType0,ArgType1)>::type const * = 0);
+ static has_none testFunctor(...);
+
+ // note that the following indirection is needed for gcc-3.3
+ enum {FunctorType = sizeof(testFunctor(static_cast<Func*>(0)))};
+ typedef typename binary_result_of_select<Func, ArgType0, ArgType1, FunctorType>::type type;
+};
+
+template<typename Func, typename ArgType0, typename ArgType1, typename ArgType2, int SizeOf=sizeof(has_none)>
+struct ternary_result_of_select {typedef typename internal::remove_all<ArgType0>::type type;};
+
+template<typename Func, typename ArgType0, typename ArgType1, typename ArgType2>
+struct ternary_result_of_select<Func, ArgType0, ArgType1, ArgType2, sizeof(has_std_result_type)>
+{typedef typename Func::result_type type;};
+
+template<typename Func, typename ArgType0, typename ArgType1, typename ArgType2>
+struct ternary_result_of_select<Func, ArgType0, ArgType1, ArgType2, sizeof(has_tr1_result)>
+{typedef typename Func::template result<Func(ArgType0,ArgType1,ArgType2)>::type type;};
+
+template<typename Func, typename ArgType0, typename ArgType1, typename ArgType2>
+struct result_of<Func(ArgType0,ArgType1,ArgType2)> {
+ template<typename T>
+ static has_std_result_type testFunctor(T const *, typename T::result_type const * = 0);
+ template<typename T>
+ static has_tr1_result testFunctor(T const *, typename T::template result<T(ArgType0,ArgType1,ArgType2)>::type const * = 0);
+ static has_none testFunctor(...);
+
+ // note that the following indirection is needed for gcc-3.3
+ enum {FunctorType = sizeof(testFunctor(static_cast<Func*>(0)))};
+ typedef typename ternary_result_of_select<Func, ArgType0, ArgType1, ArgType2, FunctorType>::type type;
+};
+#endif
+
+struct meta_yes { char a[1]; };
+struct meta_no { char a[2]; };
+
+// Check whether T::ReturnType does exist
+template <typename T>
+struct has_ReturnType
+{
+ template <typename C> static meta_yes testFunctor(typename C::ReturnType const *);
+ template <typename C> static meta_no testFunctor(...);
+
+ enum { value = sizeof(testFunctor<T>(0)) == sizeof(meta_yes) };
+};
+
+template<typename T> const T* return_ptr();
+
+template <typename T, typename IndexType=Index>
+struct has_nullary_operator
+{
+ template <typename C> static meta_yes testFunctor(C const *,typename enable_if<(sizeof(return_ptr<C>()->operator()())>0)>::type * = 0);
+ static meta_no testFunctor(...);
+
+ enum { value = sizeof(testFunctor(static_cast<T*>(0))) == sizeof(meta_yes) };
+};
+
+template <typename T, typename IndexType=Index>
+struct has_unary_operator
+{
+ template <typename C> static meta_yes testFunctor(C const *,typename enable_if<(sizeof(return_ptr<C>()->operator()(IndexType(0)))>0)>::type * = 0);
+ static meta_no testFunctor(...);
+
+ enum { value = sizeof(testFunctor(static_cast<T*>(0))) == sizeof(meta_yes) };
+};
+
+template <typename T, typename IndexType=Index>
+struct has_binary_operator
+{
+ template <typename C> static meta_yes testFunctor(C const *,typename enable_if<(sizeof(return_ptr<C>()->operator()(IndexType(0),IndexType(0)))>0)>::type * = 0);
+ static meta_no testFunctor(...);
+
+ enum { value = sizeof(testFunctor(static_cast<T*>(0))) == sizeof(meta_yes) };
+};
+
+/** \internal In short, it computes int(sqrt(\a Y)) with \a Y an integer.
+ * Usage example: \code meta_sqrt<1023>::ret \endcode
+ */
+template<int Y,
+ int InfX = 0,
+ int SupX = ((Y==1) ? 1 : Y/2),
+ bool Done = ((SupX-InfX)<=1 ? true : ((SupX*SupX <= Y) && ((SupX+1)*(SupX+1) > Y))) >
+ // use ?: instead of || just to shut up a stupid gcc 4.3 warning
+class meta_sqrt
+{
+ enum {
+ MidX = (InfX+SupX)/2,
+ TakeInf = MidX*MidX > Y ? 1 : 0,
+ NewInf = int(TakeInf) ? InfX : int(MidX),
+ NewSup = int(TakeInf) ? int(MidX) : SupX
+ };
+ public:
+ enum { ret = meta_sqrt<Y,NewInf,NewSup>::ret };
+};
+
+template<int Y, int InfX, int SupX>
+class meta_sqrt<Y, InfX, SupX, true> { public: enum { ret = (SupX*SupX <= Y) ? SupX : InfX }; };
+
+
+/** \internal Computes the least common multiple of two positive integer A and B
+ * at compile-time. It implements a naive algorithm testing all multiples of A.
+ * It thus works better if A>=B.
+ */
+template<int A, int B, int K=1, bool Done = ((A*K)%B)==0>
+struct meta_least_common_multiple
+{
+ enum { ret = meta_least_common_multiple<A,B,K+1>::ret };
+};
+template<int A, int B, int K>
+struct meta_least_common_multiple<A,B,K,true>
+{
+ enum { ret = A*K };
+};
+
+/** \internal determines whether the product of two numeric types is allowed and what the return type is */
+template<typename T, typename U> struct scalar_product_traits
+{
+ enum { Defined = 0 };
+};
+
+// FIXME quick workaround around current limitation of result_of
+// template<typename Scalar, typename ArgType0, typename ArgType1>
+// struct result_of<scalar_product_op<Scalar>(ArgType0,ArgType1)> {
+// typedef typename scalar_product_traits<typename remove_all<ArgType0>::type, typename remove_all<ArgType1>::type>::ReturnType type;
+// };
+
+} // end namespace internal
+
+namespace numext {
+
+#if defined(__CUDA_ARCH__)
+template<typename T> EIGEN_DEVICE_FUNC void swap(T &a, T &b) { T tmp = b; b = a; a = tmp; }
+#else
+template<typename T> EIGEN_STRONG_INLINE void swap(T &a, T &b) { std::swap(a,b); }
+#endif
+
+#if defined(__CUDA_ARCH__)
+using internal::device::numeric_limits;
+#else
+using std::numeric_limits;
+#endif
+
+// Integer division with rounding up.
+// T is assumed to be an integer type with a>=0, and b>0
+template<typename T>
+T div_ceil(const T &a, const T &b)
+{
+ return (a+b-1) / b;
+}
+
+} // end namespace numext
+
+} // end namespace Eigen
+
+#endif // EIGEN_META_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/NonMPL2.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/NonMPL2.h
new file mode 100644
index 000000000..1af67cf18
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/NonMPL2.h
@@ -0,0 +1,3 @@
+#ifdef EIGEN_MPL2_ONLY
+#error Including non-MPL2 code in EIGEN_MPL2_ONLY mode
+#endif
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h
new file mode 100644
index 000000000..86b60f52f
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h
@@ -0,0 +1,27 @@
+#ifdef EIGEN_WARNINGS_DISABLED
+#undef EIGEN_WARNINGS_DISABLED
+
+#ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS
+ #ifdef _MSC_VER
+ #pragma warning( pop )
+ #elif defined __INTEL_COMPILER
+ #pragma warning pop
+ #elif defined __clang__
+ #pragma clang diagnostic pop
+ #elif defined __GNUC__ && __GNUC__>=6
+ #pragma GCC diagnostic pop
+ #endif
+
+ #if defined __NVCC__
+// Don't reenable the diagnostic messages, as it turns out these messages need
+// to be disabled at the point of the template instantiation (i.e the user code)
+// otherwise they'll be triggered by nvcc.
+// #pragma diag_default code_is_unreachable
+// #pragma diag_default initialization_not_reachable
+// #pragma diag_default 2651
+// #pragma diag_default 2653
+ #endif
+
+#endif
+
+#endif // EIGEN_WARNINGS_DISABLED
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/StaticAssert.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/StaticAssert.h
new file mode 100644
index 000000000..983361a45
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/StaticAssert.h
@@ -0,0 +1,216 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STATIC_ASSERT_H
+#define EIGEN_STATIC_ASSERT_H
+
+/* Some notes on Eigen's static assertion mechanism:
+ *
+ * - in EIGEN_STATIC_ASSERT(CONDITION,MSG) the parameter CONDITION must be a compile time boolean
+ * expression, and MSG an enum listed in struct internal::static_assertion<true>
+ *
+ * - define EIGEN_NO_STATIC_ASSERT to disable them (and save compilation time)
+ * in that case, the static assertion is converted to the following runtime assert:
+ * eigen_assert(CONDITION && "MSG")
+ *
+ * - currently EIGEN_STATIC_ASSERT can only be used in function scope
+ *
+ */
+
+#ifndef EIGEN_NO_STATIC_ASSERT
+
+ #if EIGEN_MAX_CPP_VER>=11 && (__has_feature(cxx_static_assert) || (defined(__cplusplus) && __cplusplus >= 201103L) || (EIGEN_COMP_MSVC >= 1600))
+
+ // if native static_assert is enabled, let's use it
+ #define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
+
+ #else // not CXX0X
+
+ namespace Eigen {
+
+ namespace internal {
+
+ template<bool condition>
+ struct static_assertion {};
+
+ template<>
+ struct static_assertion<true>
+ {
+ enum {
+ YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX,
+ YOU_MIXED_VECTORS_OF_DIFFERENT_SIZES,
+ YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES,
+ THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE,
+ THIS_METHOD_IS_ONLY_FOR_MATRICES_OF_A_SPECIFIC_SIZE,
+ THIS_METHOD_IS_ONLY_FOR_OBJECTS_OF_A_SPECIFIC_SIZE,
+ OUT_OF_RANGE_ACCESS,
+ YOU_MADE_A_PROGRAMMING_MISTAKE,
+ EIGEN_INTERNAL_ERROR_PLEASE_FILE_A_BUG_REPORT,
+ EIGEN_INTERNAL_COMPILATION_ERROR_OR_YOU_MADE_A_PROGRAMMING_MISTAKE,
+ YOU_CALLED_A_FIXED_SIZE_METHOD_ON_A_DYNAMIC_SIZE_MATRIX_OR_VECTOR,
+ YOU_CALLED_A_DYNAMIC_SIZE_METHOD_ON_A_FIXED_SIZE_MATRIX_OR_VECTOR,
+ UNALIGNED_LOAD_AND_STORE_OPERATIONS_UNIMPLEMENTED_ON_ALTIVEC,
+ THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES,
+ FLOATING_POINT_ARGUMENT_PASSED__INTEGER_WAS_EXPECTED,
+ NUMERIC_TYPE_MUST_BE_REAL,
+ COEFFICIENT_WRITE_ACCESS_TO_SELFADJOINT_NOT_SUPPORTED,
+ WRITING_TO_TRIANGULAR_PART_WITH_UNIT_DIAGONAL_IS_NOT_SUPPORTED,
+ THIS_METHOD_IS_ONLY_FOR_FIXED_SIZE,
+ INVALID_MATRIX_PRODUCT,
+ INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS,
+ INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION,
+ YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY,
+ THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES,
+ THIS_METHOD_IS_ONLY_FOR_ROW_MAJOR_MATRICES,
+ INVALID_MATRIX_TEMPLATE_PARAMETERS,
+ INVALID_MATRIXBASE_TEMPLATE_PARAMETERS,
+ BOTH_MATRICES_MUST_HAVE_THE_SAME_STORAGE_ORDER,
+ THIS_METHOD_IS_ONLY_FOR_DIAGONAL_MATRIX,
+ THE_MATRIX_OR_EXPRESSION_THAT_YOU_PASSED_DOES_NOT_HAVE_THE_EXPECTED_TYPE,
+ THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_WITH_DIRECT_MEMORY_ACCESS_SUCH_AS_MAP_OR_PLAIN_MATRICES,
+ YOU_ALREADY_SPECIFIED_THIS_STRIDE,
+ INVALID_STORAGE_ORDER_FOR_THIS_VECTOR_EXPRESSION,
+ THE_BRACKET_OPERATOR_IS_ONLY_FOR_VECTORS__USE_THE_PARENTHESIS_OPERATOR_INSTEAD,
+ PACKET_ACCESS_REQUIRES_TO_HAVE_INNER_STRIDE_FIXED_TO_1,
+ THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS,
+ YOU_CANNOT_MIX_ARRAYS_AND_MATRICES,
+ YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION,
+ THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY,
+ YOU_ARE_TRYING_TO_USE_AN_INDEX_BASED_ACCESSOR_ON_AN_EXPRESSION_THAT_DOES_NOT_SUPPORT_THAT,
+ THIS_METHOD_IS_ONLY_FOR_1x1_EXPRESSIONS,
+ THIS_METHOD_IS_ONLY_FOR_INNER_OR_LAZY_PRODUCTS,
+ THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL,
+ THIS_METHOD_IS_ONLY_FOR_ARRAYS_NOT_MATRICES,
+ YOU_PASSED_A_ROW_VECTOR_BUT_A_COLUMN_VECTOR_WAS_EXPECTED,
+ YOU_PASSED_A_COLUMN_VECTOR_BUT_A_ROW_VECTOR_WAS_EXPECTED,
+ THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE,
+ THE_STORAGE_ORDER_OF_BOTH_SIDES_MUST_MATCH,
+ OBJECT_ALLOCATED_ON_STACK_IS_TOO_BIG,
+ IMPLICIT_CONVERSION_TO_SCALAR_IS_FOR_INNER_PRODUCT_ONLY,
+ STORAGE_LAYOUT_DOES_NOT_MATCH,
+ EIGEN_INTERNAL_ERROR_PLEASE_FILE_A_BUG_REPORT__INVALID_COST_VALUE,
+ THIS_COEFFICIENT_ACCESSOR_TAKING_ONE_ACCESS_IS_ONLY_FOR_EXPRESSIONS_ALLOWING_LINEAR_ACCESS,
+ MATRIX_FREE_CONJUGATE_GRADIENT_IS_COMPATIBLE_WITH_UPPER_UNION_LOWER_MODE_ONLY,
+ THIS_TYPE_IS_NOT_SUPPORTED,
+ STORAGE_KIND_MUST_MATCH,
+ STORAGE_INDEX_MUST_MATCH,
+ CHOLMOD_SUPPORTS_DOUBLE_PRECISION_ONLY
+ };
+ };
+
+ } // end namespace internal
+
+ } // end namespace Eigen
+
+ // Specialized implementation for MSVC to avoid "conditional
+ // expression is constant" warnings. This implementation doesn't
+ // appear to work under GCC, hence the multiple implementations.
+ #if EIGEN_COMP_MSVC
+
+ #define EIGEN_STATIC_ASSERT(CONDITION,MSG) \
+ {Eigen::internal::static_assertion<bool(CONDITION)>::MSG;}
+
+ #else
+ // In some cases clang interprets bool(CONDITION) as function declaration
+ #define EIGEN_STATIC_ASSERT(CONDITION,MSG) \
+ if (Eigen::internal::static_assertion<static_cast<bool>(CONDITION)>::MSG) {}
+
+ #endif
+
+ #endif // not CXX0X
+
+#else // EIGEN_NO_STATIC_ASSERT
+
+ #define EIGEN_STATIC_ASSERT(CONDITION,MSG) eigen_assert((CONDITION) && #MSG);
+
+#endif // EIGEN_NO_STATIC_ASSERT
+
+
+// static assertion failing if the type \a TYPE is not a vector type
+#define EIGEN_STATIC_ASSERT_VECTOR_ONLY(TYPE) \
+ EIGEN_STATIC_ASSERT(TYPE::IsVectorAtCompileTime, \
+ YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX)
+
+// static assertion failing if the type \a TYPE is not fixed-size
+#define EIGEN_STATIC_ASSERT_FIXED_SIZE(TYPE) \
+ EIGEN_STATIC_ASSERT(TYPE::SizeAtCompileTime!=Eigen::Dynamic, \
+ YOU_CALLED_A_FIXED_SIZE_METHOD_ON_A_DYNAMIC_SIZE_MATRIX_OR_VECTOR)
+
+// static assertion failing if the type \a TYPE is not dynamic-size
+#define EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(TYPE) \
+ EIGEN_STATIC_ASSERT(TYPE::SizeAtCompileTime==Eigen::Dynamic, \
+ YOU_CALLED_A_DYNAMIC_SIZE_METHOD_ON_A_FIXED_SIZE_MATRIX_OR_VECTOR)
+
+// static assertion failing if the type \a TYPE is not a vector type of the given size
+#define EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(TYPE, SIZE) \
+ EIGEN_STATIC_ASSERT(TYPE::IsVectorAtCompileTime && TYPE::SizeAtCompileTime==SIZE, \
+ THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE)
+
+// static assertion failing if the type \a TYPE is not a vector type of the given size
+#define EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(TYPE, ROWS, COLS) \
+ EIGEN_STATIC_ASSERT(TYPE::RowsAtCompileTime==ROWS && TYPE::ColsAtCompileTime==COLS, \
+ THIS_METHOD_IS_ONLY_FOR_MATRICES_OF_A_SPECIFIC_SIZE)
+
+// static assertion failing if the two vector expression types are not compatible (same fixed-size or dynamic size)
+#define EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(TYPE0,TYPE1) \
+ EIGEN_STATIC_ASSERT( \
+ (int(TYPE0::SizeAtCompileTime)==Eigen::Dynamic \
+ || int(TYPE1::SizeAtCompileTime)==Eigen::Dynamic \
+ || int(TYPE0::SizeAtCompileTime)==int(TYPE1::SizeAtCompileTime)),\
+ YOU_MIXED_VECTORS_OF_DIFFERENT_SIZES)
+
+#define EIGEN_PREDICATE_SAME_MATRIX_SIZE(TYPE0,TYPE1) \
+ ( \
+ (int(Eigen::internal::size_of_xpr_at_compile_time<TYPE0>::ret)==0 && int(Eigen::internal::size_of_xpr_at_compile_time<TYPE1>::ret)==0) \
+ || (\
+ (int(TYPE0::RowsAtCompileTime)==Eigen::Dynamic \
+ || int(TYPE1::RowsAtCompileTime)==Eigen::Dynamic \
+ || int(TYPE0::RowsAtCompileTime)==int(TYPE1::RowsAtCompileTime)) \
+ && (int(TYPE0::ColsAtCompileTime)==Eigen::Dynamic \
+ || int(TYPE1::ColsAtCompileTime)==Eigen::Dynamic \
+ || int(TYPE0::ColsAtCompileTime)==int(TYPE1::ColsAtCompileTime))\
+ ) \
+ )
+
+#define EIGEN_STATIC_ASSERT_NON_INTEGER(TYPE) \
+ EIGEN_STATIC_ASSERT(!NumTraits<TYPE>::IsInteger, THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES)
+
+
+// static assertion failing if it is guaranteed at compile-time that the two matrix expression types have different sizes
+#define EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(TYPE0,TYPE1) \
+ EIGEN_STATIC_ASSERT( \
+ EIGEN_PREDICATE_SAME_MATRIX_SIZE(TYPE0,TYPE1),\
+ YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES)
+
+#define EIGEN_STATIC_ASSERT_SIZE_1x1(TYPE) \
+ EIGEN_STATIC_ASSERT((TYPE::RowsAtCompileTime == 1 || TYPE::RowsAtCompileTime == Dynamic) && \
+ (TYPE::ColsAtCompileTime == 1 || TYPE::ColsAtCompileTime == Dynamic), \
+ THIS_METHOD_IS_ONLY_FOR_1x1_EXPRESSIONS)
+
+#define EIGEN_STATIC_ASSERT_LVALUE(Derived) \
+ EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, \
+ THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
+
+#define EIGEN_STATIC_ASSERT_ARRAYXPR(Derived) \
+ EIGEN_STATIC_ASSERT((Eigen::internal::is_same<typename Eigen::internal::traits<Derived>::XprKind, ArrayXpr>::value), \
+ THIS_METHOD_IS_ONLY_FOR_ARRAYS_NOT_MATRICES)
+
+#define EIGEN_STATIC_ASSERT_SAME_XPR_KIND(Derived1, Derived2) \
+ EIGEN_STATIC_ASSERT((Eigen::internal::is_same<typename Eigen::internal::traits<Derived1>::XprKind, \
+ typename Eigen::internal::traits<Derived2>::XprKind \
+ >::value), \
+ YOU_CANNOT_MIX_ARRAYS_AND_MATRICES)
+
+// Check that a cost value is positive, and that is stay within a reasonable range
+// TODO this check could be enabled for internal debugging only
+#define EIGEN_INTERNAL_CHECK_COST_VALUE(C) \
+ EIGEN_STATIC_ASSERT((C)>=0 && (C)<=HugeCost*HugeCost, EIGEN_INTERNAL_ERROR_PLEASE_FILE_A_BUG_REPORT__INVALID_COST_VALUE);
+
+#endif // EIGEN_STATIC_ASSERT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/XprHelper.h b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/XprHelper.h
new file mode 100644
index 000000000..ba5bd186d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Core/util/XprHelper.h
@@ -0,0 +1,821 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_XPRHELPER_H
+#define EIGEN_XPRHELPER_H
+
+// just a workaround because GCC seems to not really like empty structs
+// FIXME: gcc 4.3 generates bad code when strict-aliasing is enabled
+// so currently we simply disable this optimization for gcc 4.3
+#if EIGEN_COMP_GNUC && !EIGEN_GNUC_AT(4,3)
+ #define EIGEN_EMPTY_STRUCT_CTOR(X) \
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE X() {} \
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE X(const X& ) {}
+#else
+ #define EIGEN_EMPTY_STRUCT_CTOR(X)
+#endif
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename IndexDest, typename IndexSrc>
+EIGEN_DEVICE_FUNC
+inline IndexDest convert_index(const IndexSrc& idx) {
+ // for sizeof(IndexDest)>=sizeof(IndexSrc) compilers should be able to optimize this away:
+ eigen_internal_assert(idx <= NumTraits<IndexDest>::highest() && "Index value to big for target type");
+ return IndexDest(idx);
+}
+
+
+// promote_scalar_arg is an helper used in operation between an expression and a scalar, like:
+// expression * scalar
+// Its role is to determine how the type T of the scalar operand should be promoted given the scalar type ExprScalar of the given expression.
+// The IsSupported template parameter must be provided by the caller as: internal::has_ReturnType<ScalarBinaryOpTraits<ExprScalar,T,op> >::value using the proper order for ExprScalar and T.
+// Then the logic is as follows:
+// - if the operation is natively supported as defined by IsSupported, then the scalar type is not promoted, and T is returned.
+// - otherwise, NumTraits<ExprScalar>::Literal is returned if T is implicitly convertible to NumTraits<ExprScalar>::Literal AND that this does not imply a float to integer conversion.
+// - otherwise, ExprScalar is returned if T is implicitly convertible to ExprScalar AND that this does not imply a float to integer conversion.
+// - In all other cases, the promoted type is not defined, and the respective operation is thus invalid and not available (SFINAE).
+template<typename ExprScalar,typename T, bool IsSupported>
+struct promote_scalar_arg;
+
+template<typename S,typename T>
+struct promote_scalar_arg<S,T,true>
+{
+ typedef T type;
+};
+
+// Recursively check safe conversion to PromotedType, and then ExprScalar if they are different.
+template<typename ExprScalar,typename T,typename PromotedType,
+ bool ConvertibleToLiteral = internal::is_convertible<T,PromotedType>::value,
+ bool IsSafe = NumTraits<T>::IsInteger || !NumTraits<PromotedType>::IsInteger>
+struct promote_scalar_arg_unsupported;
+
+// Start recursion with NumTraits<ExprScalar>::Literal
+template<typename S,typename T>
+struct promote_scalar_arg<S,T,false> : promote_scalar_arg_unsupported<S,T,typename NumTraits<S>::Literal> {};
+
+// We found a match!
+template<typename S,typename T, typename PromotedType>
+struct promote_scalar_arg_unsupported<S,T,PromotedType,true,true>
+{
+ typedef PromotedType type;
+};
+
+// No match, but no real-to-integer issues, and ExprScalar and current PromotedType are different,
+// so let's try to promote to ExprScalar
+template<typename ExprScalar,typename T, typename PromotedType>
+struct promote_scalar_arg_unsupported<ExprScalar,T,PromotedType,false,true>
+ : promote_scalar_arg_unsupported<ExprScalar,T,ExprScalar>
+{};
+
+// Unsafe real-to-integer, let's stop.
+template<typename S,typename T, typename PromotedType, bool ConvertibleToLiteral>
+struct promote_scalar_arg_unsupported<S,T,PromotedType,ConvertibleToLiteral,false> {};
+
+// T is not even convertible to ExprScalar, let's stop.
+template<typename S,typename T>
+struct promote_scalar_arg_unsupported<S,T,S,false,true> {};
+
+//classes inheriting no_assignment_operator don't generate a default operator=.
+class no_assignment_operator
+{
+ private:
+ no_assignment_operator& operator=(const no_assignment_operator&);
+};
+
+/** \internal return the index type with the largest number of bits */
+template<typename I1, typename I2>
+struct promote_index_type
+{
+ typedef typename conditional<(sizeof(I1)<sizeof(I2)), I2, I1>::type type;
+};
+
+/** \internal If the template parameter Value is Dynamic, this class is just a wrapper around a T variable that
+ * can be accessed using value() and setValue().
+ * Otherwise, this class is an empty structure and value() just returns the template parameter Value.
+ */
+template<typename T, int Value> class variable_if_dynamic
+{
+ public:
+ EIGEN_EMPTY_STRUCT_CTOR(variable_if_dynamic)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE explicit variable_if_dynamic(T v) { EIGEN_ONLY_USED_FOR_DEBUG(v); eigen_assert(v == T(Value)); }
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE T value() { return T(Value); }
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void setValue(T) {}
+};
+
+template<typename T> class variable_if_dynamic<T, Dynamic>
+{
+ T m_value;
+ EIGEN_DEVICE_FUNC variable_if_dynamic() { eigen_assert(false); }
+ public:
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE explicit variable_if_dynamic(T value) : m_value(value) {}
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T value() const { return m_value; }
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void setValue(T value) { m_value = value; }
+};
+
+/** \internal like variable_if_dynamic but for DynamicIndex
+ */
+template<typename T, int Value> class variable_if_dynamicindex
+{
+ public:
+ EIGEN_EMPTY_STRUCT_CTOR(variable_if_dynamicindex)
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE explicit variable_if_dynamicindex(T v) { EIGEN_ONLY_USED_FOR_DEBUG(v); eigen_assert(v == T(Value)); }
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE T value() { return T(Value); }
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void setValue(T) {}
+};
+
+template<typename T> class variable_if_dynamicindex<T, DynamicIndex>
+{
+ T m_value;
+ EIGEN_DEVICE_FUNC variable_if_dynamicindex() { eigen_assert(false); }
+ public:
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE explicit variable_if_dynamicindex(T value) : m_value(value) {}
+ EIGEN_DEVICE_FUNC T EIGEN_STRONG_INLINE value() const { return m_value; }
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void setValue(T value) { m_value = value; }
+};
+
+template<typename T> struct functor_traits
+{
+ enum
+ {
+ Cost = 10,
+ PacketAccess = false,
+ IsRepeatable = false
+ };
+};
+
+template<typename T> struct packet_traits;
+
+template<typename T> struct unpacket_traits
+{
+ typedef T type;
+ typedef T half;
+ enum
+ {
+ size = 1,
+ alignment = 1
+ };
+};
+
+template<int Size, typename PacketType,
+ bool Stop = Size==Dynamic || (Size%unpacket_traits<PacketType>::size)==0 || is_same<PacketType,typename unpacket_traits<PacketType>::half>::value>
+struct find_best_packet_helper;
+
+template< int Size, typename PacketType>
+struct find_best_packet_helper<Size,PacketType,true>
+{
+ typedef PacketType type;
+};
+
+template<int Size, typename PacketType>
+struct find_best_packet_helper<Size,PacketType,false>
+{
+ typedef typename find_best_packet_helper<Size,typename unpacket_traits<PacketType>::half>::type type;
+};
+
+template<typename T, int Size>
+struct find_best_packet
+{
+ typedef typename find_best_packet_helper<Size,typename packet_traits<T>::type>::type type;
+};
+
+#if EIGEN_MAX_STATIC_ALIGN_BYTES>0
+template<int ArrayBytes, int AlignmentBytes,
+ bool Match = bool((ArrayBytes%AlignmentBytes)==0),
+ bool TryHalf = bool(EIGEN_MIN_ALIGN_BYTES<AlignmentBytes) >
+struct compute_default_alignment_helper
+{
+ enum { value = 0 };
+};
+
+template<int ArrayBytes, int AlignmentBytes, bool TryHalf>
+struct compute_default_alignment_helper<ArrayBytes, AlignmentBytes, true, TryHalf> // Match
+{
+ enum { value = AlignmentBytes };
+};
+
+template<int ArrayBytes, int AlignmentBytes>
+struct compute_default_alignment_helper<ArrayBytes, AlignmentBytes, false, true> // Try-half
+{
+ // current packet too large, try with an half-packet
+ enum { value = compute_default_alignment_helper<ArrayBytes, AlignmentBytes/2>::value };
+};
+#else
+// If static alignment is disabled, no need to bother.
+// This also avoids a division by zero in "bool Match = bool((ArrayBytes%AlignmentBytes)==0)"
+template<int ArrayBytes, int AlignmentBytes>
+struct compute_default_alignment_helper
+{
+ enum { value = 0 };
+};
+#endif
+
+template<typename T, int Size> struct compute_default_alignment {
+ enum { value = compute_default_alignment_helper<Size*sizeof(T),EIGEN_MAX_STATIC_ALIGN_BYTES>::value };
+};
+
+template<typename T> struct compute_default_alignment<T,Dynamic> {
+ enum { value = EIGEN_MAX_ALIGN_BYTES };
+};
+
+template<typename _Scalar, int _Rows, int _Cols,
+ int _Options = AutoAlign |
+ ( (_Rows==1 && _Cols!=1) ? RowMajor
+ : (_Cols==1 && _Rows!=1) ? ColMajor
+ : EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION ),
+ int _MaxRows = _Rows,
+ int _MaxCols = _Cols
+> class make_proper_matrix_type
+{
+ enum {
+ IsColVector = _Cols==1 && _Rows!=1,
+ IsRowVector = _Rows==1 && _Cols!=1,
+ Options = IsColVector ? (_Options | ColMajor) & ~RowMajor
+ : IsRowVector ? (_Options | RowMajor) & ~ColMajor
+ : _Options
+ };
+ public:
+ typedef Matrix<_Scalar, _Rows, _Cols, Options, _MaxRows, _MaxCols> type;
+};
+
+template<typename Scalar, int Rows, int Cols, int Options, int MaxRows, int MaxCols>
+class compute_matrix_flags
+{
+ enum { row_major_bit = Options&RowMajor ? RowMajorBit : 0 };
+ public:
+ // FIXME currently we still have to handle DirectAccessBit at the expression level to handle DenseCoeffsBase<>
+ // and then propagate this information to the evaluator's flags.
+ // However, I (Gael) think that DirectAccessBit should only matter at the evaluation stage.
+ enum { ret = DirectAccessBit | LvalueBit | NestByRefBit | row_major_bit };
+};
+
+template<int _Rows, int _Cols> struct size_at_compile_time
+{
+ enum { ret = (_Rows==Dynamic || _Cols==Dynamic) ? Dynamic : _Rows * _Cols };
+};
+
+template<typename XprType> struct size_of_xpr_at_compile_time
+{
+ enum { ret = size_at_compile_time<traits<XprType>::RowsAtCompileTime,traits<XprType>::ColsAtCompileTime>::ret };
+};
+
+/* plain_matrix_type : the difference from eval is that plain_matrix_type is always a plain matrix type,
+ * whereas eval is a const reference in the case of a matrix
+ */
+
+template<typename T, typename StorageKind = typename traits<T>::StorageKind> struct plain_matrix_type;
+template<typename T, typename BaseClassType, int Flags> struct plain_matrix_type_dense;
+template<typename T> struct plain_matrix_type<T,Dense>
+{
+ typedef typename plain_matrix_type_dense<T,typename traits<T>::XprKind, traits<T>::Flags>::type type;
+};
+template<typename T> struct plain_matrix_type<T,DiagonalShape>
+{
+ typedef typename T::PlainObject type;
+};
+
+template<typename T, int Flags> struct plain_matrix_type_dense<T,MatrixXpr,Flags>
+{
+ typedef Matrix<typename traits<T>::Scalar,
+ traits<T>::RowsAtCompileTime,
+ traits<T>::ColsAtCompileTime,
+ AutoAlign | (Flags&RowMajorBit ? RowMajor : ColMajor),
+ traits<T>::MaxRowsAtCompileTime,
+ traits<T>::MaxColsAtCompileTime
+ > type;
+};
+
+template<typename T, int Flags> struct plain_matrix_type_dense<T,ArrayXpr,Flags>
+{
+ typedef Array<typename traits<T>::Scalar,
+ traits<T>::RowsAtCompileTime,
+ traits<T>::ColsAtCompileTime,
+ AutoAlign | (Flags&RowMajorBit ? RowMajor : ColMajor),
+ traits<T>::MaxRowsAtCompileTime,
+ traits<T>::MaxColsAtCompileTime
+ > type;
+};
+
+/* eval : the return type of eval(). For matrices, this is just a const reference
+ * in order to avoid a useless copy
+ */
+
+template<typename T, typename StorageKind = typename traits<T>::StorageKind> struct eval;
+
+template<typename T> struct eval<T,Dense>
+{
+ typedef typename plain_matrix_type<T>::type type;
+// typedef typename T::PlainObject type;
+// typedef T::Matrix<typename traits<T>::Scalar,
+// traits<T>::RowsAtCompileTime,
+// traits<T>::ColsAtCompileTime,
+// AutoAlign | (traits<T>::Flags&RowMajorBit ? RowMajor : ColMajor),
+// traits<T>::MaxRowsAtCompileTime,
+// traits<T>::MaxColsAtCompileTime
+// > type;
+};
+
+template<typename T> struct eval<T,DiagonalShape>
+{
+ typedef typename plain_matrix_type<T>::type type;
+};
+
+// for matrices, no need to evaluate, just use a const reference to avoid a useless copy
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+struct eval<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>, Dense>
+{
+ typedef const Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>& type;
+};
+
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+struct eval<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>, Dense>
+{
+ typedef const Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>& type;
+};
+
+
+/* similar to plain_matrix_type, but using the evaluator's Flags */
+template<typename T, typename StorageKind = typename traits<T>::StorageKind> struct plain_object_eval;
+
+template<typename T>
+struct plain_object_eval<T,Dense>
+{
+ typedef typename plain_matrix_type_dense<T,typename traits<T>::XprKind, evaluator<T>::Flags>::type type;
+};
+
+
+/* plain_matrix_type_column_major : same as plain_matrix_type but guaranteed to be column-major
+ */
+template<typename T> struct plain_matrix_type_column_major
+{
+ enum { Rows = traits<T>::RowsAtCompileTime,
+ Cols = traits<T>::ColsAtCompileTime,
+ MaxRows = traits<T>::MaxRowsAtCompileTime,
+ MaxCols = traits<T>::MaxColsAtCompileTime
+ };
+ typedef Matrix<typename traits<T>::Scalar,
+ Rows,
+ Cols,
+ (MaxRows==1&&MaxCols!=1) ? RowMajor : ColMajor,
+ MaxRows,
+ MaxCols
+ > type;
+};
+
+/* plain_matrix_type_row_major : same as plain_matrix_type but guaranteed to be row-major
+ */
+template<typename T> struct plain_matrix_type_row_major
+{
+ enum { Rows = traits<T>::RowsAtCompileTime,
+ Cols = traits<T>::ColsAtCompileTime,
+ MaxRows = traits<T>::MaxRowsAtCompileTime,
+ MaxCols = traits<T>::MaxColsAtCompileTime
+ };
+ typedef Matrix<typename traits<T>::Scalar,
+ Rows,
+ Cols,
+ (MaxCols==1&&MaxRows!=1) ? RowMajor : ColMajor,
+ MaxRows,
+ MaxCols
+ > type;
+};
+
+/** \internal The reference selector for template expressions. The idea is that we don't
+ * need to use references for expressions since they are light weight proxy
+ * objects which should generate no copying overhead. */
+template <typename T>
+struct ref_selector
+{
+ typedef typename conditional<
+ bool(traits<T>::Flags & NestByRefBit),
+ T const&,
+ const T
+ >::type type;
+
+ typedef typename conditional<
+ bool(traits<T>::Flags & NestByRefBit),
+ T &,
+ T
+ >::type non_const_type;
+};
+
+/** \internal Adds the const qualifier on the value-type of T2 if and only if T1 is a const type */
+template<typename T1, typename T2>
+struct transfer_constness
+{
+ typedef typename conditional<
+ bool(internal::is_const<T1>::value),
+ typename internal::add_const_on_value_type<T2>::type,
+ T2
+ >::type type;
+};
+
+
+// However, we still need a mechanism to detect whether an expression which is evaluated multiple time
+// has to be evaluated into a temporary.
+// That's the purpose of this new nested_eval helper:
+/** \internal Determines how a given expression should be nested when evaluated multiple times.
+ * For example, when you do a * (b+c), Eigen will determine how the expression b+c should be
+ * evaluated into the bigger product expression. The choice is between nesting the expression b+c as-is, or
+ * evaluating that expression b+c into a temporary variable d, and nest d so that the resulting expression is
+ * a*d. Evaluating can be beneficial for example if every coefficient access in the resulting expression causes
+ * many coefficient accesses in the nested expressions -- as is the case with matrix product for example.
+ *
+ * \tparam T the type of the expression being nested.
+ * \tparam n the number of coefficient accesses in the nested expression for each coefficient access in the bigger expression.
+ * \tparam PlainObject the type of the temporary if needed.
+ */
+template<typename T, int n, typename PlainObject = typename plain_object_eval<T>::type> struct nested_eval
+{
+ enum {
+ ScalarReadCost = NumTraits<typename traits<T>::Scalar>::ReadCost,
+ CoeffReadCost = evaluator<T>::CoeffReadCost, // NOTE What if an evaluator evaluate itself into a tempory?
+ // Then CoeffReadCost will be small (e.g., 1) but we still have to evaluate, especially if n>1.
+ // This situation is already taken care by the EvalBeforeNestingBit flag, which is turned ON
+ // for all evaluator creating a temporary. This flag is then propagated by the parent evaluators.
+ // Another solution could be to count the number of temps?
+ NAsInteger = n == Dynamic ? HugeCost : n,
+ CostEval = (NAsInteger+1) * ScalarReadCost + CoeffReadCost,
+ CostNoEval = NAsInteger * CoeffReadCost,
+ Evaluate = (int(evaluator<T>::Flags) & EvalBeforeNestingBit) || (int(CostEval) < int(CostNoEval))
+ };
+
+ typedef typename conditional<Evaluate, PlainObject, typename ref_selector<T>::type>::type type;
+};
+
+template<typename T>
+EIGEN_DEVICE_FUNC
+inline T* const_cast_ptr(const T* ptr)
+{
+ return const_cast<T*>(ptr);
+}
+
+template<typename Derived, typename XprKind = typename traits<Derived>::XprKind>
+struct dense_xpr_base
+{
+ /* dense_xpr_base should only ever be used on dense expressions, thus falling either into the MatrixXpr or into the ArrayXpr cases */
+};
+
+template<typename Derived>
+struct dense_xpr_base<Derived, MatrixXpr>
+{
+ typedef MatrixBase<Derived> type;
+};
+
+template<typename Derived>
+struct dense_xpr_base<Derived, ArrayXpr>
+{
+ typedef ArrayBase<Derived> type;
+};
+
+template<typename Derived, typename XprKind = typename traits<Derived>::XprKind, typename StorageKind = typename traits<Derived>::StorageKind>
+struct generic_xpr_base;
+
+template<typename Derived, typename XprKind>
+struct generic_xpr_base<Derived, XprKind, Dense>
+{
+ typedef typename dense_xpr_base<Derived,XprKind>::type type;
+};
+
+template<typename XprType, typename CastType> struct cast_return_type
+{
+ typedef typename XprType::Scalar CurrentScalarType;
+ typedef typename remove_all<CastType>::type _CastType;
+ typedef typename _CastType::Scalar NewScalarType;
+ typedef typename conditional<is_same<CurrentScalarType,NewScalarType>::value,
+ const XprType&,CastType>::type type;
+};
+
+template <typename A, typename B> struct promote_storage_type;
+
+template <typename A> struct promote_storage_type<A,A>
+{
+ typedef A ret;
+};
+template <typename A> struct promote_storage_type<A, const A>
+{
+ typedef A ret;
+};
+template <typename A> struct promote_storage_type<const A, A>
+{
+ typedef A ret;
+};
+
+/** \internal Specify the "storage kind" of applying a coefficient-wise
+ * binary operations between two expressions of kinds A and B respectively.
+ * The template parameter Functor permits to specialize the resulting storage kind wrt to
+ * the functor.
+ * The default rules are as follows:
+ * \code
+ * A op A -> A
+ * A op dense -> dense
+ * dense op B -> dense
+ * sparse op dense -> sparse
+ * dense op sparse -> sparse
+ * \endcode
+ */
+template <typename A, typename B, typename Functor> struct cwise_promote_storage_type;
+
+template <typename A, typename Functor> struct cwise_promote_storage_type<A,A,Functor> { typedef A ret; };
+template <typename Functor> struct cwise_promote_storage_type<Dense,Dense,Functor> { typedef Dense ret; };
+template <typename A, typename Functor> struct cwise_promote_storage_type<A,Dense,Functor> { typedef Dense ret; };
+template <typename B, typename Functor> struct cwise_promote_storage_type<Dense,B,Functor> { typedef Dense ret; };
+template <typename Functor> struct cwise_promote_storage_type<Sparse,Dense,Functor> { typedef Sparse ret; };
+template <typename Functor> struct cwise_promote_storage_type<Dense,Sparse,Functor> { typedef Sparse ret; };
+
+template <typename LhsKind, typename RhsKind, int LhsOrder, int RhsOrder> struct cwise_promote_storage_order {
+ enum { value = LhsOrder };
+};
+
+template <typename LhsKind, int LhsOrder, int RhsOrder> struct cwise_promote_storage_order<LhsKind,Sparse,LhsOrder,RhsOrder> { enum { value = RhsOrder }; };
+template <typename RhsKind, int LhsOrder, int RhsOrder> struct cwise_promote_storage_order<Sparse,RhsKind,LhsOrder,RhsOrder> { enum { value = LhsOrder }; };
+template <int Order> struct cwise_promote_storage_order<Sparse,Sparse,Order,Order> { enum { value = Order }; };
+
+
+/** \internal Specify the "storage kind" of multiplying an expression of kind A with kind B.
+ * The template parameter ProductTag permits to specialize the resulting storage kind wrt to
+ * some compile-time properties of the product: GemmProduct, GemvProduct, OuterProduct, InnerProduct.
+ * The default rules are as follows:
+ * \code
+ * K * K -> K
+ * dense * K -> dense
+ * K * dense -> dense
+ * diag * K -> K
+ * K * diag -> K
+ * Perm * K -> K
+ * K * Perm -> K
+ * \endcode
+ */
+template <typename A, typename B, int ProductTag> struct product_promote_storage_type;
+
+template <typename A, int ProductTag> struct product_promote_storage_type<A, A, ProductTag> { typedef A ret;};
+template <int ProductTag> struct product_promote_storage_type<Dense, Dense, ProductTag> { typedef Dense ret;};
+template <typename A, int ProductTag> struct product_promote_storage_type<A, Dense, ProductTag> { typedef Dense ret; };
+template <typename B, int ProductTag> struct product_promote_storage_type<Dense, B, ProductTag> { typedef Dense ret; };
+
+template <typename A, int ProductTag> struct product_promote_storage_type<A, DiagonalShape, ProductTag> { typedef A ret; };
+template <typename B, int ProductTag> struct product_promote_storage_type<DiagonalShape, B, ProductTag> { typedef B ret; };
+template <int ProductTag> struct product_promote_storage_type<Dense, DiagonalShape, ProductTag> { typedef Dense ret; };
+template <int ProductTag> struct product_promote_storage_type<DiagonalShape, Dense, ProductTag> { typedef Dense ret; };
+
+template <typename A, int ProductTag> struct product_promote_storage_type<A, PermutationStorage, ProductTag> { typedef A ret; };
+template <typename B, int ProductTag> struct product_promote_storage_type<PermutationStorage, B, ProductTag> { typedef B ret; };
+template <int ProductTag> struct product_promote_storage_type<Dense, PermutationStorage, ProductTag> { typedef Dense ret; };
+template <int ProductTag> struct product_promote_storage_type<PermutationStorage, Dense, ProductTag> { typedef Dense ret; };
+
+/** \internal gives the plain matrix or array type to store a row/column/diagonal of a matrix type.
+ * \tparam Scalar optional parameter allowing to pass a different scalar type than the one of the MatrixType.
+ */
+template<typename ExpressionType, typename Scalar = typename ExpressionType::Scalar>
+struct plain_row_type
+{
+ typedef Matrix<Scalar, 1, ExpressionType::ColsAtCompileTime,
+ ExpressionType::PlainObject::Options | RowMajor, 1, ExpressionType::MaxColsAtCompileTime> MatrixRowType;
+ typedef Array<Scalar, 1, ExpressionType::ColsAtCompileTime,
+ ExpressionType::PlainObject::Options | RowMajor, 1, ExpressionType::MaxColsAtCompileTime> ArrayRowType;
+
+ typedef typename conditional<
+ is_same< typename traits<ExpressionType>::XprKind, MatrixXpr >::value,
+ MatrixRowType,
+ ArrayRowType
+ >::type type;
+};
+
+template<typename ExpressionType, typename Scalar = typename ExpressionType::Scalar>
+struct plain_col_type
+{
+ typedef Matrix<Scalar, ExpressionType::RowsAtCompileTime, 1,
+ ExpressionType::PlainObject::Options & ~RowMajor, ExpressionType::MaxRowsAtCompileTime, 1> MatrixColType;
+ typedef Array<Scalar, ExpressionType::RowsAtCompileTime, 1,
+ ExpressionType::PlainObject::Options & ~RowMajor, ExpressionType::MaxRowsAtCompileTime, 1> ArrayColType;
+
+ typedef typename conditional<
+ is_same< typename traits<ExpressionType>::XprKind, MatrixXpr >::value,
+ MatrixColType,
+ ArrayColType
+ >::type type;
+};
+
+template<typename ExpressionType, typename Scalar = typename ExpressionType::Scalar>
+struct plain_diag_type
+{
+ enum { diag_size = EIGEN_SIZE_MIN_PREFER_DYNAMIC(ExpressionType::RowsAtCompileTime, ExpressionType::ColsAtCompileTime),
+ max_diag_size = EIGEN_SIZE_MIN_PREFER_FIXED(ExpressionType::MaxRowsAtCompileTime, ExpressionType::MaxColsAtCompileTime)
+ };
+ typedef Matrix<Scalar, diag_size, 1, ExpressionType::PlainObject::Options & ~RowMajor, max_diag_size, 1> MatrixDiagType;
+ typedef Array<Scalar, diag_size, 1, ExpressionType::PlainObject::Options & ~RowMajor, max_diag_size, 1> ArrayDiagType;
+
+ typedef typename conditional<
+ is_same< typename traits<ExpressionType>::XprKind, MatrixXpr >::value,
+ MatrixDiagType,
+ ArrayDiagType
+ >::type type;
+};
+
+template<typename Expr,typename Scalar = typename Expr::Scalar>
+struct plain_constant_type
+{
+ enum { Options = (traits<Expr>::Flags&RowMajorBit)?RowMajor:0 };
+
+ typedef Array<Scalar, traits<Expr>::RowsAtCompileTime, traits<Expr>::ColsAtCompileTime,
+ Options, traits<Expr>::MaxRowsAtCompileTime,traits<Expr>::MaxColsAtCompileTime> array_type;
+
+ typedef Matrix<Scalar, traits<Expr>::RowsAtCompileTime, traits<Expr>::ColsAtCompileTime,
+ Options, traits<Expr>::MaxRowsAtCompileTime,traits<Expr>::MaxColsAtCompileTime> matrix_type;
+
+ typedef CwiseNullaryOp<scalar_constant_op<Scalar>, const typename conditional<is_same< typename traits<Expr>::XprKind, MatrixXpr >::value, matrix_type, array_type>::type > type;
+};
+
+template<typename ExpressionType>
+struct is_lvalue
+{
+ enum { value = (!bool(is_const<ExpressionType>::value)) &&
+ bool(traits<ExpressionType>::Flags & LvalueBit) };
+};
+
+template<typename T> struct is_diagonal
+{ enum { ret = false }; };
+
+template<typename T> struct is_diagonal<DiagonalBase<T> >
+{ enum { ret = true }; };
+
+template<typename T> struct is_diagonal<DiagonalWrapper<T> >
+{ enum { ret = true }; };
+
+template<typename T, int S> struct is_diagonal<DiagonalMatrix<T,S> >
+{ enum { ret = true }; };
+
+template<typename S1, typename S2> struct glue_shapes;
+template<> struct glue_shapes<DenseShape,TriangularShape> { typedef TriangularShape type; };
+
+template<typename T1, typename T2>
+bool is_same_dense(const T1 &mat1, const T2 &mat2, typename enable_if<has_direct_access<T1>::ret&&has_direct_access<T2>::ret, T1>::type * = 0)
+{
+ return (mat1.data()==mat2.data()) && (mat1.innerStride()==mat2.innerStride()) && (mat1.outerStride()==mat2.outerStride());
+}
+
+template<typename T1, typename T2>
+bool is_same_dense(const T1 &, const T2 &, typename enable_if<!(has_direct_access<T1>::ret&&has_direct_access<T2>::ret), T1>::type * = 0)
+{
+ return false;
+}
+
+// Internal helper defining the cost of a scalar division for the type T.
+// The default heuristic can be specialized for each scalar type and architecture.
+template<typename T,bool Vectorized=false,typename EnaleIf = void>
+struct scalar_div_cost {
+ enum { value = 8*NumTraits<T>::MulCost };
+};
+
+template<typename T,bool Vectorized>
+struct scalar_div_cost<std::complex<T>, Vectorized> {
+ enum { value = 2*scalar_div_cost<T>::value
+ + 6*NumTraits<T>::MulCost
+ + 3*NumTraits<T>::AddCost
+ };
+};
+
+
+template<bool Vectorized>
+struct scalar_div_cost<signed long,Vectorized,typename conditional<sizeof(long)==8,void,false_type>::type> { enum { value = 24 }; };
+template<bool Vectorized>
+struct scalar_div_cost<unsigned long,Vectorized,typename conditional<sizeof(long)==8,void,false_type>::type> { enum { value = 21 }; };
+
+
+#ifdef EIGEN_DEBUG_ASSIGN
+std::string demangle_traversal(int t)
+{
+ if(t==DefaultTraversal) return "DefaultTraversal";
+ if(t==LinearTraversal) return "LinearTraversal";
+ if(t==InnerVectorizedTraversal) return "InnerVectorizedTraversal";
+ if(t==LinearVectorizedTraversal) return "LinearVectorizedTraversal";
+ if(t==SliceVectorizedTraversal) return "SliceVectorizedTraversal";
+ return "?";
+}
+std::string demangle_unrolling(int t)
+{
+ if(t==NoUnrolling) return "NoUnrolling";
+ if(t==InnerUnrolling) return "InnerUnrolling";
+ if(t==CompleteUnrolling) return "CompleteUnrolling";
+ return "?";
+}
+std::string demangle_flags(int f)
+{
+ std::string res;
+ if(f&RowMajorBit) res += " | RowMajor";
+ if(f&PacketAccessBit) res += " | Packet";
+ if(f&LinearAccessBit) res += " | Linear";
+ if(f&LvalueBit) res += " | Lvalue";
+ if(f&DirectAccessBit) res += " | Direct";
+ if(f&NestByRefBit) res += " | NestByRef";
+ if(f&NoPreferredStorageOrderBit) res += " | NoPreferredStorageOrderBit";
+
+ return res;
+}
+#endif
+
+} // end namespace internal
+
+
+/** \class ScalarBinaryOpTraits
+ * \ingroup Core_Module
+ *
+ * \brief Determines whether the given binary operation of two numeric types is allowed and what the scalar return type is.
+ *
+ * This class permits to control the scalar return type of any binary operation performed on two different scalar types through (partial) template specializations.
+ *
+ * For instance, let \c U1, \c U2 and \c U3 be three user defined scalar types for which most operations between instances of \c U1 and \c U2 returns an \c U3.
+ * You can let %Eigen knows that by defining:
+ \code
+ template<typename BinaryOp>
+ struct ScalarBinaryOpTraits<U1,U2,BinaryOp> { typedef U3 ReturnType; };
+ template<typename BinaryOp>
+ struct ScalarBinaryOpTraits<U2,U1,BinaryOp> { typedef U3 ReturnType; };
+ \endcode
+ * You can then explicitly disable some particular operations to get more explicit error messages:
+ \code
+ template<>
+ struct ScalarBinaryOpTraits<U1,U2,internal::scalar_max_op<U1,U2> > {};
+ \endcode
+ * Or customize the return type for individual operation:
+ \code
+ template<>
+ struct ScalarBinaryOpTraits<U1,U2,internal::scalar_sum_op<U1,U2> > { typedef U1 ReturnType; };
+ \endcode
+ *
+ * By default, the following generic combinations are supported:
+ <table class="manual">
+ <tr><th>ScalarA</th><th>ScalarB</th><th>BinaryOp</th><th>ReturnType</th><th>Note</th></tr>
+ <tr ><td>\c T </td><td>\c T </td><td>\c * </td><td>\c T </td><td></td></tr>
+ <tr class="alt"><td>\c NumTraits<T>::Real </td><td>\c T </td><td>\c * </td><td>\c T </td><td>Only if \c NumTraits<T>::IsComplex </td></tr>
+ <tr ><td>\c T </td><td>\c NumTraits<T>::Real </td><td>\c * </td><td>\c T </td><td>Only if \c NumTraits<T>::IsComplex </td></tr>
+ </table>
+ *
+ * \sa CwiseBinaryOp
+ */
+template<typename ScalarA, typename ScalarB, typename BinaryOp=internal::scalar_product_op<ScalarA,ScalarB> >
+struct ScalarBinaryOpTraits
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ // for backward compatibility, use the hints given by the (deprecated) internal::scalar_product_traits class.
+ : internal::scalar_product_traits<ScalarA,ScalarB>
+#endif // EIGEN_PARSED_BY_DOXYGEN
+{};
+
+template<typename T, typename BinaryOp>
+struct ScalarBinaryOpTraits<T,T,BinaryOp>
+{
+ typedef T ReturnType;
+};
+
+template <typename T, typename BinaryOp>
+struct ScalarBinaryOpTraits<T, typename NumTraits<typename internal::enable_if<NumTraits<T>::IsComplex,T>::type>::Real, BinaryOp>
+{
+ typedef T ReturnType;
+};
+template <typename T, typename BinaryOp>
+struct ScalarBinaryOpTraits<typename NumTraits<typename internal::enable_if<NumTraits<T>::IsComplex,T>::type>::Real, T, BinaryOp>
+{
+ typedef T ReturnType;
+};
+
+// For Matrix * Permutation
+template<typename T, typename BinaryOp>
+struct ScalarBinaryOpTraits<T,void,BinaryOp>
+{
+ typedef T ReturnType;
+};
+
+// For Permutation * Matrix
+template<typename T, typename BinaryOp>
+struct ScalarBinaryOpTraits<void,T,BinaryOp>
+{
+ typedef T ReturnType;
+};
+
+// for Permutation*Permutation
+template<typename BinaryOp>
+struct ScalarBinaryOpTraits<void,void,BinaryOp>
+{
+ typedef void ReturnType;
+};
+
+// We require Lhs and Rhs to have "compatible" scalar types.
+// It is tempting to always allow mixing different types but remember that this is often impossible in the vectorized paths.
+// So allowing mixing different types gives very unexpected errors when enabling vectorization, when the user tries to
+// add together a float matrix and a double matrix.
+#define EIGEN_CHECK_BINARY_COMPATIBILIY(BINOP,LHS,RHS) \
+ EIGEN_STATIC_ASSERT((Eigen::internal::has_ReturnType<ScalarBinaryOpTraits<LHS, RHS,BINOP> >::value), \
+ YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+} // end namespace Eigen
+
+#endif // EIGEN_XPRHELPER_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h
new file mode 100644
index 000000000..dc5fae06a
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h
@@ -0,0 +1,346 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Claire Maurice
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010,2012 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPLEX_EIGEN_SOLVER_H
+#define EIGEN_COMPLEX_EIGEN_SOLVER_H
+
+#include "./ComplexSchur.h"
+
+namespace Eigen {
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+ *
+ *
+ * \class ComplexEigenSolver
+ *
+ * \brief Computes eigenvalues and eigenvectors of general complex matrices
+ *
+ * \tparam _MatrixType the type of the matrix of which we are
+ * computing the eigendecomposition; this is expected to be an
+ * instantiation of the Matrix class template.
+ *
+ * The eigenvalues and eigenvectors of a matrix \f$ A \f$ are scalars
+ * \f$ \lambda \f$ and vectors \f$ v \f$ such that \f$ Av = \lambda v
+ * \f$. If \f$ D \f$ is a diagonal matrix with the eigenvalues on
+ * the diagonal, and \f$ V \f$ is a matrix with the eigenvectors as
+ * its columns, then \f$ A V = V D \f$. The matrix \f$ V \f$ is
+ * almost always invertible, in which case we have \f$ A = V D V^{-1}
+ * \f$. This is called the eigendecomposition.
+ *
+ * The main function in this class is compute(), which computes the
+ * eigenvalues and eigenvectors of a given function. The
+ * documentation for that function contains an example showing the
+ * main features of the class.
+ *
+ * \sa class EigenSolver, class SelfAdjointEigenSolver
+ */
+template<typename _MatrixType> class ComplexEigenSolver
+{
+ public:
+
+ /** \brief Synonym for the template parameter \p _MatrixType. */
+ typedef _MatrixType MatrixType;
+
+ enum {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ Options = MatrixType::Options,
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+
+ /** \brief Scalar type for matrices of type #MatrixType. */
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
+
+ /** \brief Complex scalar type for #MatrixType.
+ *
+ * This is \c std::complex<Scalar> if #Scalar is real (e.g.,
+ * \c float or \c double) and just \c Scalar if #Scalar is
+ * complex.
+ */
+ typedef std::complex<RealScalar> ComplexScalar;
+
+ /** \brief Type for vector of eigenvalues as returned by eigenvalues().
+ *
+ * This is a column vector with entries of type #ComplexScalar.
+ * The length of the vector is the size of #MatrixType.
+ */
+ typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options&(~RowMajor), MaxColsAtCompileTime, 1> EigenvalueType;
+
+ /** \brief Type for matrix of eigenvectors as returned by eigenvectors().
+ *
+ * This is a square matrix with entries of type #ComplexScalar.
+ * The size is the same as the size of #MatrixType.
+ */
+ typedef Matrix<ComplexScalar, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> EigenvectorType;
+
+ /** \brief Default constructor.
+ *
+ * The default constructor is useful in cases in which the user intends to
+ * perform decompositions via compute().
+ */
+ ComplexEigenSolver()
+ : m_eivec(),
+ m_eivalues(),
+ m_schur(),
+ m_isInitialized(false),
+ m_eigenvectorsOk(false),
+ m_matX()
+ {}
+
+ /** \brief Default Constructor with memory preallocation
+ *
+ * Like the default constructor but with preallocation of the internal data
+ * according to the specified problem \a size.
+ * \sa ComplexEigenSolver()
+ */
+ explicit ComplexEigenSolver(Index size)
+ : m_eivec(size, size),
+ m_eivalues(size),
+ m_schur(size),
+ m_isInitialized(false),
+ m_eigenvectorsOk(false),
+ m_matX(size, size)
+ {}
+
+ /** \brief Constructor; computes eigendecomposition of given matrix.
+ *
+ * \param[in] matrix Square matrix whose eigendecomposition is to be computed.
+ * \param[in] computeEigenvectors If true, both the eigenvectors and the
+ * eigenvalues are computed; if false, only the eigenvalues are
+ * computed.
+ *
+ * This constructor calls compute() to compute the eigendecomposition.
+ */
+ template<typename InputType>
+ explicit ComplexEigenSolver(const EigenBase<InputType>& matrix, bool computeEigenvectors = true)
+ : m_eivec(matrix.rows(),matrix.cols()),
+ m_eivalues(matrix.cols()),
+ m_schur(matrix.rows()),
+ m_isInitialized(false),
+ m_eigenvectorsOk(false),
+ m_matX(matrix.rows(),matrix.cols())
+ {
+ compute(matrix.derived(), computeEigenvectors);
+ }
+
+ /** \brief Returns the eigenvectors of given matrix.
+ *
+ * \returns A const reference to the matrix whose columns are the eigenvectors.
+ *
+ * \pre Either the constructor
+ * ComplexEigenSolver(const MatrixType& matrix, bool) or the member
+ * function compute(const MatrixType& matrix, bool) has been called before
+ * to compute the eigendecomposition of a matrix, and
+ * \p computeEigenvectors was set to true (the default).
+ *
+ * This function returns a matrix whose columns are the eigenvectors. Column
+ * \f$ k \f$ is an eigenvector corresponding to eigenvalue number \f$ k
+ * \f$ as returned by eigenvalues(). The eigenvectors are normalized to
+ * have (Euclidean) norm equal to one. The matrix returned by this
+ * function is the matrix \f$ V \f$ in the eigendecomposition \f$ A = V D
+ * V^{-1} \f$, if it exists.
+ *
+ * Example: \include ComplexEigenSolver_eigenvectors.cpp
+ * Output: \verbinclude ComplexEigenSolver_eigenvectors.out
+ */
+ const EigenvectorType& eigenvectors() const
+ {
+ eigen_assert(m_isInitialized && "ComplexEigenSolver is not initialized.");
+ eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+ return m_eivec;
+ }
+
+ /** \brief Returns the eigenvalues of given matrix.
+ *
+ * \returns A const reference to the column vector containing the eigenvalues.
+ *
+ * \pre Either the constructor
+ * ComplexEigenSolver(const MatrixType& matrix, bool) or the member
+ * function compute(const MatrixType& matrix, bool) has been called before
+ * to compute the eigendecomposition of a matrix.
+ *
+ * This function returns a column vector containing the
+ * eigenvalues. Eigenvalues are repeated according to their
+ * algebraic multiplicity, so there are as many eigenvalues as
+ * rows in the matrix. The eigenvalues are not sorted in any particular
+ * order.
+ *
+ * Example: \include ComplexEigenSolver_eigenvalues.cpp
+ * Output: \verbinclude ComplexEigenSolver_eigenvalues.out
+ */
+ const EigenvalueType& eigenvalues() const
+ {
+ eigen_assert(m_isInitialized && "ComplexEigenSolver is not initialized.");
+ return m_eivalues;
+ }
+
+ /** \brief Computes eigendecomposition of given matrix.
+ *
+ * \param[in] matrix Square matrix whose eigendecomposition is to be computed.
+ * \param[in] computeEigenvectors If true, both the eigenvectors and the
+ * eigenvalues are computed; if false, only the eigenvalues are
+ * computed.
+ * \returns Reference to \c *this
+ *
+ * This function computes the eigenvalues of the complex matrix \p matrix.
+ * The eigenvalues() function can be used to retrieve them. If
+ * \p computeEigenvectors is true, then the eigenvectors are also computed
+ * and can be retrieved by calling eigenvectors().
+ *
+ * The matrix is first reduced to Schur form using the
+ * ComplexSchur class. The Schur decomposition is then used to
+ * compute the eigenvalues and eigenvectors.
+ *
+ * The cost of the computation is dominated by the cost of the
+ * Schur decomposition, which is \f$ O(n^3) \f$ where \f$ n \f$
+ * is the size of the matrix.
+ *
+ * Example: \include ComplexEigenSolver_compute.cpp
+ * Output: \verbinclude ComplexEigenSolver_compute.out
+ */
+ template<typename InputType>
+ ComplexEigenSolver& compute(const EigenBase<InputType>& matrix, bool computeEigenvectors = true);
+
+ /** \brief Reports whether previous computation was successful.
+ *
+ * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
+ */
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "ComplexEigenSolver is not initialized.");
+ return m_schur.info();
+ }
+
+ /** \brief Sets the maximum number of iterations allowed. */
+ ComplexEigenSolver& setMaxIterations(Index maxIters)
+ {
+ m_schur.setMaxIterations(maxIters);
+ return *this;
+ }
+
+ /** \brief Returns the maximum number of iterations. */
+ Index getMaxIterations()
+ {
+ return m_schur.getMaxIterations();
+ }
+
+ protected:
+
+ static void check_template_parameters()
+ {
+ EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+ }
+
+ EigenvectorType m_eivec;
+ EigenvalueType m_eivalues;
+ ComplexSchur<MatrixType> m_schur;
+ bool m_isInitialized;
+ bool m_eigenvectorsOk;
+ EigenvectorType m_matX;
+
+ private:
+ void doComputeEigenvectors(RealScalar matrixnorm);
+ void sortEigenvalues(bool computeEigenvectors);
+};
+
+
+template<typename MatrixType>
+template<typename InputType>
+ComplexEigenSolver<MatrixType>&
+ComplexEigenSolver<MatrixType>::compute(const EigenBase<InputType>& matrix, bool computeEigenvectors)
+{
+ check_template_parameters();
+
+ // this code is inspired from Jampack
+ eigen_assert(matrix.cols() == matrix.rows());
+
+ // Do a complex Schur decomposition, A = U T U^*
+ // The eigenvalues are on the diagonal of T.
+ m_schur.compute(matrix.derived(), computeEigenvectors);
+
+ if(m_schur.info() == Success)
+ {
+ m_eivalues = m_schur.matrixT().diagonal();
+ if(computeEigenvectors)
+ doComputeEigenvectors(m_schur.matrixT().norm());
+ sortEigenvalues(computeEigenvectors);
+ }
+
+ m_isInitialized = true;
+ m_eigenvectorsOk = computeEigenvectors;
+ return *this;
+}
+
+
+template<typename MatrixType>
+void ComplexEigenSolver<MatrixType>::doComputeEigenvectors(RealScalar matrixnorm)
+{
+ const Index n = m_eivalues.size();
+
+ matrixnorm = numext::maxi(matrixnorm,(std::numeric_limits<RealScalar>::min)());
+
+ // Compute X such that T = X D X^(-1), where D is the diagonal of T.
+ // The matrix X is unit triangular.
+ m_matX = EigenvectorType::Zero(n, n);
+ for(Index k=n-1 ; k>=0 ; k--)
+ {
+ m_matX.coeffRef(k,k) = ComplexScalar(1.0,0.0);
+ // Compute X(i,k) using the (i,k) entry of the equation X T = D X
+ for(Index i=k-1 ; i>=0 ; i--)
+ {
+ m_matX.coeffRef(i,k) = -m_schur.matrixT().coeff(i,k);
+ if(k-i-1>0)
+ m_matX.coeffRef(i,k) -= (m_schur.matrixT().row(i).segment(i+1,k-i-1) * m_matX.col(k).segment(i+1,k-i-1)).value();
+ ComplexScalar z = m_schur.matrixT().coeff(i,i) - m_schur.matrixT().coeff(k,k);
+ if(z==ComplexScalar(0))
+ {
+ // If the i-th and k-th eigenvalue are equal, then z equals 0.
+ // Use a small value instead, to prevent division by zero.
+ numext::real_ref(z) = NumTraits<RealScalar>::epsilon() * matrixnorm;
+ }
+ m_matX.coeffRef(i,k) = m_matX.coeff(i,k) / z;
+ }
+ }
+
+ // Compute V as V = U X; now A = U T U^* = U X D X^(-1) U^* = V D V^(-1)
+ m_eivec.noalias() = m_schur.matrixU() * m_matX;
+ // .. and normalize the eigenvectors
+ for(Index k=0 ; k<n ; k++)
+ {
+ m_eivec.col(k).normalize();
+ }
+}
+
+
+template<typename MatrixType>
+void ComplexEigenSolver<MatrixType>::sortEigenvalues(bool computeEigenvectors)
+{
+ const Index n = m_eivalues.size();
+ for (Index i=0; i<n; i++)
+ {
+ Index k;
+ m_eivalues.cwiseAbs().tail(n-i).minCoeff(&k);
+ if (k != 0)
+ {
+ k += i;
+ std::swap(m_eivalues[k],m_eivalues[i]);
+ if(computeEigenvectors)
+ m_eivec.col(i).swap(m_eivec.col(k));
+ }
+ }
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLEX_EIGEN_SOLVER_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/ComplexSchur.h b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/ComplexSchur.h
new file mode 100644
index 000000000..7f38919f7
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/ComplexSchur.h
@@ -0,0 +1,459 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Claire Maurice
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010,2012 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPLEX_SCHUR_H
+#define EIGEN_COMPLEX_SCHUR_H
+
+#include "./HessenbergDecomposition.h"
+
+namespace Eigen {
+
+namespace internal {
+template<typename MatrixType, bool IsComplex> struct complex_schur_reduce_to_hessenberg;
+}
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+ *
+ *
+ * \class ComplexSchur
+ *
+ * \brief Performs a complex Schur decomposition of a real or complex square matrix
+ *
+ * \tparam _MatrixType the type of the matrix of which we are
+ * computing the Schur decomposition; this is expected to be an
+ * instantiation of the Matrix class template.
+ *
+ * Given a real or complex square matrix A, this class computes the
+ * Schur decomposition: \f$ A = U T U^*\f$ where U is a unitary
+ * complex matrix, and T is a complex upper triangular matrix. The
+ * diagonal of the matrix T corresponds to the eigenvalues of the
+ * matrix A.
+ *
+ * Call the function compute() to compute the Schur decomposition of
+ * a given matrix. Alternatively, you can use the
+ * ComplexSchur(const MatrixType&, bool) constructor which computes
+ * the Schur decomposition at construction time. Once the
+ * decomposition is computed, you can use the matrixU() and matrixT()
+ * functions to retrieve the matrices U and V in the decomposition.
+ *
+ * \note This code is inspired from Jampack
+ *
+ * \sa class RealSchur, class EigenSolver, class ComplexEigenSolver
+ */
+template<typename _MatrixType> class ComplexSchur
+{
+ public:
+ typedef _MatrixType MatrixType;
+ enum {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ Options = MatrixType::Options,
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+
+ /** \brief Scalar type for matrices of type \p _MatrixType. */
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
+
+ /** \brief Complex scalar type for \p _MatrixType.
+ *
+ * This is \c std::complex<Scalar> if #Scalar is real (e.g.,
+ * \c float or \c double) and just \c Scalar if #Scalar is
+ * complex.
+ */
+ typedef std::complex<RealScalar> ComplexScalar;
+
+ /** \brief Type for the matrices in the Schur decomposition.
+ *
+ * This is a square matrix with entries of type #ComplexScalar.
+ * The size is the same as the size of \p _MatrixType.
+ */
+ typedef Matrix<ComplexScalar, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> ComplexMatrixType;
+
+ /** \brief Default constructor.
+ *
+ * \param [in] size Positive integer, size of the matrix whose Schur decomposition will be computed.
+ *
+ * The default constructor is useful in cases in which the user
+ * intends to perform decompositions via compute(). The \p size
+ * parameter is only used as a hint. It is not an error to give a
+ * wrong \p size, but it may impair performance.
+ *
+ * \sa compute() for an example.
+ */
+ explicit ComplexSchur(Index size = RowsAtCompileTime==Dynamic ? 1 : RowsAtCompileTime)
+ : m_matT(size,size),
+ m_matU(size,size),
+ m_hess(size),
+ m_isInitialized(false),
+ m_matUisUptodate(false),
+ m_maxIters(-1)
+ {}
+
+ /** \brief Constructor; computes Schur decomposition of given matrix.
+ *
+ * \param[in] matrix Square matrix whose Schur decomposition is to be computed.
+ * \param[in] computeU If true, both T and U are computed; if false, only T is computed.
+ *
+ * This constructor calls compute() to compute the Schur decomposition.
+ *
+ * \sa matrixT() and matrixU() for examples.
+ */
+ template<typename InputType>
+ explicit ComplexSchur(const EigenBase<InputType>& matrix, bool computeU = true)
+ : m_matT(matrix.rows(),matrix.cols()),
+ m_matU(matrix.rows(),matrix.cols()),
+ m_hess(matrix.rows()),
+ m_isInitialized(false),
+ m_matUisUptodate(false),
+ m_maxIters(-1)
+ {
+ compute(matrix.derived(), computeU);
+ }
+
+ /** \brief Returns the unitary matrix in the Schur decomposition.
+ *
+ * \returns A const reference to the matrix U.
+ *
+ * It is assumed that either the constructor
+ * ComplexSchur(const MatrixType& matrix, bool computeU) or the
+ * member function compute(const MatrixType& matrix, bool computeU)
+ * has been called before to compute the Schur decomposition of a
+ * matrix, and that \p computeU was set to true (the default
+ * value).
+ *
+ * Example: \include ComplexSchur_matrixU.cpp
+ * Output: \verbinclude ComplexSchur_matrixU.out
+ */
+ const ComplexMatrixType& matrixU() const
+ {
+ eigen_assert(m_isInitialized && "ComplexSchur is not initialized.");
+ eigen_assert(m_matUisUptodate && "The matrix U has not been computed during the ComplexSchur decomposition.");
+ return m_matU;
+ }
+
+ /** \brief Returns the triangular matrix in the Schur decomposition.
+ *
+ * \returns A const reference to the matrix T.
+ *
+ * It is assumed that either the constructor
+ * ComplexSchur(const MatrixType& matrix, bool computeU) or the
+ * member function compute(const MatrixType& matrix, bool computeU)
+ * has been called before to compute the Schur decomposition of a
+ * matrix.
+ *
+ * Note that this function returns a plain square matrix. If you want to reference
+ * only the upper triangular part, use:
+ * \code schur.matrixT().triangularView<Upper>() \endcode
+ *
+ * Example: \include ComplexSchur_matrixT.cpp
+ * Output: \verbinclude ComplexSchur_matrixT.out
+ */
+ const ComplexMatrixType& matrixT() const
+ {
+ eigen_assert(m_isInitialized && "ComplexSchur is not initialized.");
+ return m_matT;
+ }
+
+ /** \brief Computes Schur decomposition of given matrix.
+ *
+ * \param[in] matrix Square matrix whose Schur decomposition is to be computed.
+ * \param[in] computeU If true, both T and U are computed; if false, only T is computed.
+
+ * \returns Reference to \c *this
+ *
+ * The Schur decomposition is computed by first reducing the
+ * matrix to Hessenberg form using the class
+ * HessenbergDecomposition. The Hessenberg matrix is then reduced
+ * to triangular form by performing QR iterations with a single
+ * shift. The cost of computing the Schur decomposition depends
+ * on the number of iterations; as a rough guide, it may be taken
+ * on the number of iterations; as a rough guide, it may be taken
+ * to be \f$25n^3\f$ complex flops, or \f$10n^3\f$ complex flops
+ * if \a computeU is false.
+ *
+ * Example: \include ComplexSchur_compute.cpp
+ * Output: \verbinclude ComplexSchur_compute.out
+ *
+ * \sa compute(const MatrixType&, bool, Index)
+ */
+ template<typename InputType>
+ ComplexSchur& compute(const EigenBase<InputType>& matrix, bool computeU = true);
+
+ /** \brief Compute Schur decomposition from a given Hessenberg matrix
+ * \param[in] matrixH Matrix in Hessenberg form H
+ * \param[in] matrixQ orthogonal matrix Q that transform a matrix A to H : A = Q H Q^T
+ * \param computeU Computes the matriX U of the Schur vectors
+ * \return Reference to \c *this
+ *
+ * This routine assumes that the matrix is already reduced in Hessenberg form matrixH
+ * using either the class HessenbergDecomposition or another mean.
+ * It computes the upper quasi-triangular matrix T of the Schur decomposition of H
+ * When computeU is true, this routine computes the matrix U such that
+ * A = U T U^T = (QZ) T (QZ)^T = Q H Q^T where A is the initial matrix
+ *
+ * NOTE Q is referenced if computeU is true; so, if the initial orthogonal matrix
+ * is not available, the user should give an identity matrix (Q.setIdentity())
+ *
+ * \sa compute(const MatrixType&, bool)
+ */
+ template<typename HessMatrixType, typename OrthMatrixType>
+ ComplexSchur& computeFromHessenberg(const HessMatrixType& matrixH, const OrthMatrixType& matrixQ, bool computeU=true);
+
+ /** \brief Reports whether previous computation was successful.
+ *
+ * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
+ */
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "ComplexSchur is not initialized.");
+ return m_info;
+ }
+
+ /** \brief Sets the maximum number of iterations allowed.
+ *
+ * If not specified by the user, the maximum number of iterations is m_maxIterationsPerRow times the size
+ * of the matrix.
+ */
+ ComplexSchur& setMaxIterations(Index maxIters)
+ {
+ m_maxIters = maxIters;
+ return *this;
+ }
+
+ /** \brief Returns the maximum number of iterations. */
+ Index getMaxIterations()
+ {
+ return m_maxIters;
+ }
+
+ /** \brief Maximum number of iterations per row.
+ *
+ * If not otherwise specified, the maximum number of iterations is this number times the size of the
+ * matrix. It is currently set to 30.
+ */
+ static const int m_maxIterationsPerRow = 30;
+
+ protected:
+ ComplexMatrixType m_matT, m_matU;
+ HessenbergDecomposition<MatrixType> m_hess;
+ ComputationInfo m_info;
+ bool m_isInitialized;
+ bool m_matUisUptodate;
+ Index m_maxIters;
+
+ private:
+ bool subdiagonalEntryIsNeglegible(Index i);
+ ComplexScalar computeShift(Index iu, Index iter);
+ void reduceToTriangularForm(bool computeU);
+ friend struct internal::complex_schur_reduce_to_hessenberg<MatrixType, NumTraits<Scalar>::IsComplex>;
+};
+
+/** If m_matT(i+1,i) is neglegible in floating point arithmetic
+ * compared to m_matT(i,i) and m_matT(j,j), then set it to zero and
+ * return true, else return false. */
+template<typename MatrixType>
+inline bool ComplexSchur<MatrixType>::subdiagonalEntryIsNeglegible(Index i)
+{
+ RealScalar d = numext::norm1(m_matT.coeff(i,i)) + numext::norm1(m_matT.coeff(i+1,i+1));
+ RealScalar sd = numext::norm1(m_matT.coeff(i+1,i));
+ if (internal::isMuchSmallerThan(sd, d, NumTraits<RealScalar>::epsilon()))
+ {
+ m_matT.coeffRef(i+1,i) = ComplexScalar(0);
+ return true;
+ }
+ return false;
+}
+
+
+/** Compute the shift in the current QR iteration. */
+template<typename MatrixType>
+typename ComplexSchur<MatrixType>::ComplexScalar ComplexSchur<MatrixType>::computeShift(Index iu, Index iter)
+{
+ using std::abs;
+ if (iter == 10 || iter == 20)
+ {
+ // exceptional shift, taken from http://www.netlib.org/eispack/comqr.f
+ return abs(numext::real(m_matT.coeff(iu,iu-1))) + abs(numext::real(m_matT.coeff(iu-1,iu-2)));
+ }
+
+ // compute the shift as one of the eigenvalues of t, the 2x2
+ // diagonal block on the bottom of the active submatrix
+ Matrix<ComplexScalar,2,2> t = m_matT.template block<2,2>(iu-1,iu-1);
+ RealScalar normt = t.cwiseAbs().sum();
+ t /= normt; // the normalization by sf is to avoid under/overflow
+
+ ComplexScalar b = t.coeff(0,1) * t.coeff(1,0);
+ ComplexScalar c = t.coeff(0,0) - t.coeff(1,1);
+ ComplexScalar disc = sqrt(c*c + RealScalar(4)*b);
+ ComplexScalar det = t.coeff(0,0) * t.coeff(1,1) - b;
+ ComplexScalar trace = t.coeff(0,0) + t.coeff(1,1);
+ ComplexScalar eival1 = (trace + disc) / RealScalar(2);
+ ComplexScalar eival2 = (trace - disc) / RealScalar(2);
+
+ if(numext::norm1(eival1) > numext::norm1(eival2))
+ eival2 = det / eival1;
+ else
+ eival1 = det / eival2;
+
+ // choose the eigenvalue closest to the bottom entry of the diagonal
+ if(numext::norm1(eival1-t.coeff(1,1)) < numext::norm1(eival2-t.coeff(1,1)))
+ return normt * eival1;
+ else
+ return normt * eival2;
+}
+
+
+template<typename MatrixType>
+template<typename InputType>
+ComplexSchur<MatrixType>& ComplexSchur<MatrixType>::compute(const EigenBase<InputType>& matrix, bool computeU)
+{
+ m_matUisUptodate = false;
+ eigen_assert(matrix.cols() == matrix.rows());
+
+ if(matrix.cols() == 1)
+ {
+ m_matT = matrix.derived().template cast<ComplexScalar>();
+ if(computeU) m_matU = ComplexMatrixType::Identity(1,1);
+ m_info = Success;
+ m_isInitialized = true;
+ m_matUisUptodate = computeU;
+ return *this;
+ }
+
+ internal::complex_schur_reduce_to_hessenberg<MatrixType, NumTraits<Scalar>::IsComplex>::run(*this, matrix.derived(), computeU);
+ computeFromHessenberg(m_matT, m_matU, computeU);
+ return *this;
+}
+
+template<typename MatrixType>
+template<typename HessMatrixType, typename OrthMatrixType>
+ComplexSchur<MatrixType>& ComplexSchur<MatrixType>::computeFromHessenberg(const HessMatrixType& matrixH, const OrthMatrixType& matrixQ, bool computeU)
+{
+ m_matT = matrixH;
+ if(computeU)
+ m_matU = matrixQ;
+ reduceToTriangularForm(computeU);
+ return *this;
+}
+namespace internal {
+
+/* Reduce given matrix to Hessenberg form */
+template<typename MatrixType, bool IsComplex>
+struct complex_schur_reduce_to_hessenberg
+{
+ // this is the implementation for the case IsComplex = true
+ static void run(ComplexSchur<MatrixType>& _this, const MatrixType& matrix, bool computeU)
+ {
+ _this.m_hess.compute(matrix);
+ _this.m_matT = _this.m_hess.matrixH();
+ if(computeU) _this.m_matU = _this.m_hess.matrixQ();
+ }
+};
+
+template<typename MatrixType>
+struct complex_schur_reduce_to_hessenberg<MatrixType, false>
+{
+ static void run(ComplexSchur<MatrixType>& _this, const MatrixType& matrix, bool computeU)
+ {
+ typedef typename ComplexSchur<MatrixType>::ComplexScalar ComplexScalar;
+
+ // Note: m_hess is over RealScalar; m_matT and m_matU is over ComplexScalar
+ _this.m_hess.compute(matrix);
+ _this.m_matT = _this.m_hess.matrixH().template cast<ComplexScalar>();
+ if(computeU)
+ {
+ // This may cause an allocation which seems to be avoidable
+ MatrixType Q = _this.m_hess.matrixQ();
+ _this.m_matU = Q.template cast<ComplexScalar>();
+ }
+ }
+};
+
+} // end namespace internal
+
+// Reduce the Hessenberg matrix m_matT to triangular form by QR iteration.
+template<typename MatrixType>
+void ComplexSchur<MatrixType>::reduceToTriangularForm(bool computeU)
+{
+ Index maxIters = m_maxIters;
+ if (maxIters == -1)
+ maxIters = m_maxIterationsPerRow * m_matT.rows();
+
+ // The matrix m_matT is divided in three parts.
+ // Rows 0,...,il-1 are decoupled from the rest because m_matT(il,il-1) is zero.
+ // Rows il,...,iu is the part we are working on (the active submatrix).
+ // Rows iu+1,...,end are already brought in triangular form.
+ Index iu = m_matT.cols() - 1;
+ Index il;
+ Index iter = 0; // number of iterations we are working on the (iu,iu) element
+ Index totalIter = 0; // number of iterations for whole matrix
+
+ while(true)
+ {
+ // find iu, the bottom row of the active submatrix
+ while(iu > 0)
+ {
+ if(!subdiagonalEntryIsNeglegible(iu-1)) break;
+ iter = 0;
+ --iu;
+ }
+
+ // if iu is zero then we are done; the whole matrix is triangularized
+ if(iu==0) break;
+
+ // if we spent too many iterations, we give up
+ iter++;
+ totalIter++;
+ if(totalIter > maxIters) break;
+
+ // find il, the top row of the active submatrix
+ il = iu-1;
+ while(il > 0 && !subdiagonalEntryIsNeglegible(il-1))
+ {
+ --il;
+ }
+
+ /* perform the QR step using Givens rotations. The first rotation
+ creates a bulge; the (il+2,il) element becomes nonzero. This
+ bulge is chased down to the bottom of the active submatrix. */
+
+ ComplexScalar shift = computeShift(iu, iter);
+ JacobiRotation<ComplexScalar> rot;
+ rot.makeGivens(m_matT.coeff(il,il) - shift, m_matT.coeff(il+1,il));
+ m_matT.rightCols(m_matT.cols()-il).applyOnTheLeft(il, il+1, rot.adjoint());
+ m_matT.topRows((std::min)(il+2,iu)+1).applyOnTheRight(il, il+1, rot);
+ if(computeU) m_matU.applyOnTheRight(il, il+1, rot);
+
+ for(Index i=il+1 ; i<iu ; i++)
+ {
+ rot.makeGivens(m_matT.coeffRef(i,i-1), m_matT.coeffRef(i+1,i-1), &m_matT.coeffRef(i,i-1));
+ m_matT.coeffRef(i+1,i-1) = ComplexScalar(0);
+ m_matT.rightCols(m_matT.cols()-i).applyOnTheLeft(i, i+1, rot.adjoint());
+ m_matT.topRows((std::min)(i+2,iu)+1).applyOnTheRight(i, i+1, rot);
+ if(computeU) m_matU.applyOnTheRight(i, i+1, rot);
+ }
+ }
+
+ if(totalIter <= maxIters)
+ m_info = Success;
+ else
+ m_info = NoConvergence;
+
+ m_isInitialized = true;
+ m_matUisUptodate = computeU;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLEX_SCHUR_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h
new file mode 100644
index 000000000..4980a3ede
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h
@@ -0,0 +1,91 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ * Content : Eigen bindings to LAPACKe
+ * Complex Schur needed to complex unsymmetrical eigenvalues/eigenvectors.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_COMPLEX_SCHUR_LAPACKE_H
+#define EIGEN_COMPLEX_SCHUR_LAPACKE_H
+
+namespace Eigen {
+
+/** \internal Specialization for the data types supported by LAPACKe */
+
+#define EIGEN_LAPACKE_SCHUR_COMPLEX(EIGTYPE, LAPACKE_TYPE, LAPACKE_PREFIX, LAPACKE_PREFIX_U, EIGCOLROW, LAPACKE_COLROW) \
+template<> template<typename InputType> inline \
+ComplexSchur<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >& \
+ComplexSchur<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >::compute(const EigenBase<InputType>& matrix, bool computeU) \
+{ \
+ typedef Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> MatrixType; \
+ typedef MatrixType::RealScalar RealScalar; \
+ typedef std::complex<RealScalar> ComplexScalar; \
+\
+ eigen_assert(matrix.cols() == matrix.rows()); \
+\
+ m_matUisUptodate = false; \
+ if(matrix.cols() == 1) \
+ { \
+ m_matT = matrix.derived().template cast<ComplexScalar>(); \
+ if(computeU) m_matU = ComplexMatrixType::Identity(1,1); \
+ m_info = Success; \
+ m_isInitialized = true; \
+ m_matUisUptodate = computeU; \
+ return *this; \
+ } \
+ lapack_int n = internal::convert_index<lapack_int>(matrix.cols()), sdim, info; \
+ lapack_int matrix_order = LAPACKE_COLROW; \
+ char jobvs, sort='N'; \
+ LAPACK_##LAPACKE_PREFIX_U##_SELECT1 select = 0; \
+ jobvs = (computeU) ? 'V' : 'N'; \
+ m_matU.resize(n, n); \
+ lapack_int ldvs = internal::convert_index<lapack_int>(m_matU.outerStride()); \
+ m_matT = matrix; \
+ lapack_int lda = internal::convert_index<lapack_int>(m_matT.outerStride()); \
+ Matrix<EIGTYPE, Dynamic, Dynamic> w; \
+ w.resize(n, 1);\
+ info = LAPACKE_##LAPACKE_PREFIX##gees( matrix_order, jobvs, sort, select, n, (LAPACKE_TYPE*)m_matT.data(), lda, &sdim, (LAPACKE_TYPE*)w.data(), (LAPACKE_TYPE*)m_matU.data(), ldvs ); \
+ if(info == 0) \
+ m_info = Success; \
+ else \
+ m_info = NoConvergence; \
+\
+ m_isInitialized = true; \
+ m_matUisUptodate = computeU; \
+ return *this; \
+\
+}
+
+EIGEN_LAPACKE_SCHUR_COMPLEX(dcomplex, lapack_complex_double, z, Z, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_LAPACKE_SCHUR_COMPLEX(scomplex, lapack_complex_float, c, C, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_LAPACKE_SCHUR_COMPLEX(dcomplex, lapack_complex_double, z, Z, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_LAPACKE_SCHUR_COMPLEX(scomplex, lapack_complex_float, c, C, RowMajor, LAPACK_ROW_MAJOR)
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLEX_SCHUR_LAPACKE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/EigenSolver.h b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/EigenSolver.h
new file mode 100644
index 000000000..f205b185d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/EigenSolver.h
@@ -0,0 +1,622 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010,2012 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_EIGENSOLVER_H
+#define EIGEN_EIGENSOLVER_H
+
+#include "./RealSchur.h"
+
+namespace Eigen {
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+ *
+ *
+ * \class EigenSolver
+ *
+ * \brief Computes eigenvalues and eigenvectors of general matrices
+ *
+ * \tparam _MatrixType the type of the matrix of which we are computing the
+ * eigendecomposition; this is expected to be an instantiation of the Matrix
+ * class template. Currently, only real matrices are supported.
+ *
+ * The eigenvalues and eigenvectors of a matrix \f$ A \f$ are scalars
+ * \f$ \lambda \f$ and vectors \f$ v \f$ such that \f$ Av = \lambda v \f$. If
+ * \f$ D \f$ is a diagonal matrix with the eigenvalues on the diagonal, and
+ * \f$ V \f$ is a matrix with the eigenvectors as its columns, then \f$ A V =
+ * V D \f$. The matrix \f$ V \f$ is almost always invertible, in which case we
+ * have \f$ A = V D V^{-1} \f$. This is called the eigendecomposition.
+ *
+ * The eigenvalues and eigenvectors of a matrix may be complex, even when the
+ * matrix is real. However, we can choose real matrices \f$ V \f$ and \f$ D
+ * \f$ satisfying \f$ A V = V D \f$, just like the eigendecomposition, if the
+ * matrix \f$ D \f$ is not required to be diagonal, but if it is allowed to
+ * have blocks of the form
+ * \f[ \begin{bmatrix} u & v \\ -v & u \end{bmatrix} \f]
+ * (where \f$ u \f$ and \f$ v \f$ are real numbers) on the diagonal. These
+ * blocks correspond to complex eigenvalue pairs \f$ u \pm iv \f$. We call
+ * this variant of the eigendecomposition the pseudo-eigendecomposition.
+ *
+ * Call the function compute() to compute the eigenvalues and eigenvectors of
+ * a given matrix. Alternatively, you can use the
+ * EigenSolver(const MatrixType&, bool) constructor which computes the
+ * eigenvalues and eigenvectors at construction time. Once the eigenvalue and
+ * eigenvectors are computed, they can be retrieved with the eigenvalues() and
+ * eigenvectors() functions. The pseudoEigenvalueMatrix() and
+ * pseudoEigenvectors() methods allow the construction of the
+ * pseudo-eigendecomposition.
+ *
+ * The documentation for EigenSolver(const MatrixType&, bool) contains an
+ * example of the typical use of this class.
+ *
+ * \note The implementation is adapted from
+ * <a href="http://math.nist.gov/javanumerics/jama/">JAMA</a> (public domain).
+ * Their code is based on EISPACK.
+ *
+ * \sa MatrixBase::eigenvalues(), class ComplexEigenSolver, class SelfAdjointEigenSolver
+ */
+template<typename _MatrixType> class EigenSolver
+{
+ public:
+
+ /** \brief Synonym for the template parameter \p _MatrixType. */
+ typedef _MatrixType MatrixType;
+
+ enum {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ Options = MatrixType::Options,
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+
+ /** \brief Scalar type for matrices of type #MatrixType. */
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
+
+ /** \brief Complex scalar type for #MatrixType.
+ *
+ * This is \c std::complex<Scalar> if #Scalar is real (e.g.,
+ * \c float or \c double) and just \c Scalar if #Scalar is
+ * complex.
+ */
+ typedef std::complex<RealScalar> ComplexScalar;
+
+ /** \brief Type for vector of eigenvalues as returned by eigenvalues().
+ *
+ * This is a column vector with entries of type #ComplexScalar.
+ * The length of the vector is the size of #MatrixType.
+ */
+ typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> EigenvalueType;
+
+ /** \brief Type for matrix of eigenvectors as returned by eigenvectors().
+ *
+ * This is a square matrix with entries of type #ComplexScalar.
+ * The size is the same as the size of #MatrixType.
+ */
+ typedef Matrix<ComplexScalar, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> EigenvectorsType;
+
+ /** \brief Default constructor.
+ *
+ * The default constructor is useful in cases in which the user intends to
+ * perform decompositions via EigenSolver::compute(const MatrixType&, bool).
+ *
+ * \sa compute() for an example.
+ */
+ EigenSolver() : m_eivec(), m_eivalues(), m_isInitialized(false), m_realSchur(), m_matT(), m_tmp() {}
+
+ /** \brief Default constructor with memory preallocation
+ *
+ * Like the default constructor but with preallocation of the internal data
+ * according to the specified problem \a size.
+ * \sa EigenSolver()
+ */
+ explicit EigenSolver(Index size)
+ : m_eivec(size, size),
+ m_eivalues(size),
+ m_isInitialized(false),
+ m_eigenvectorsOk(false),
+ m_realSchur(size),
+ m_matT(size, size),
+ m_tmp(size)
+ {}
+
+ /** \brief Constructor; computes eigendecomposition of given matrix.
+ *
+ * \param[in] matrix Square matrix whose eigendecomposition is to be computed.
+ * \param[in] computeEigenvectors If true, both the eigenvectors and the
+ * eigenvalues are computed; if false, only the eigenvalues are
+ * computed.
+ *
+ * This constructor calls compute() to compute the eigenvalues
+ * and eigenvectors.
+ *
+ * Example: \include EigenSolver_EigenSolver_MatrixType.cpp
+ * Output: \verbinclude EigenSolver_EigenSolver_MatrixType.out
+ *
+ * \sa compute()
+ */
+ template<typename InputType>
+ explicit EigenSolver(const EigenBase<InputType>& matrix, bool computeEigenvectors = true)
+ : m_eivec(matrix.rows(), matrix.cols()),
+ m_eivalues(matrix.cols()),
+ m_isInitialized(false),
+ m_eigenvectorsOk(false),
+ m_realSchur(matrix.cols()),
+ m_matT(matrix.rows(), matrix.cols()),
+ m_tmp(matrix.cols())
+ {
+ compute(matrix.derived(), computeEigenvectors);
+ }
+
+ /** \brief Returns the eigenvectors of given matrix.
+ *
+ * \returns %Matrix whose columns are the (possibly complex) eigenvectors.
+ *
+ * \pre Either the constructor
+ * EigenSolver(const MatrixType&,bool) or the member function
+ * compute(const MatrixType&, bool) has been called before, and
+ * \p computeEigenvectors was set to true (the default).
+ *
+ * Column \f$ k \f$ of the returned matrix is an eigenvector corresponding
+ * to eigenvalue number \f$ k \f$ as returned by eigenvalues(). The
+ * eigenvectors are normalized to have (Euclidean) norm equal to one. The
+ * matrix returned by this function is the matrix \f$ V \f$ in the
+ * eigendecomposition \f$ A = V D V^{-1} \f$, if it exists.
+ *
+ * Example: \include EigenSolver_eigenvectors.cpp
+ * Output: \verbinclude EigenSolver_eigenvectors.out
+ *
+ * \sa eigenvalues(), pseudoEigenvectors()
+ */
+ EigenvectorsType eigenvectors() const;
+
+ /** \brief Returns the pseudo-eigenvectors of given matrix.
+ *
+ * \returns Const reference to matrix whose columns are the pseudo-eigenvectors.
+ *
+ * \pre Either the constructor
+ * EigenSolver(const MatrixType&,bool) or the member function
+ * compute(const MatrixType&, bool) has been called before, and
+ * \p computeEigenvectors was set to true (the default).
+ *
+ * The real matrix \f$ V \f$ returned by this function and the
+ * block-diagonal matrix \f$ D \f$ returned by pseudoEigenvalueMatrix()
+ * satisfy \f$ AV = VD \f$.
+ *
+ * Example: \include EigenSolver_pseudoEigenvectors.cpp
+ * Output: \verbinclude EigenSolver_pseudoEigenvectors.out
+ *
+ * \sa pseudoEigenvalueMatrix(), eigenvectors()
+ */
+ const MatrixType& pseudoEigenvectors() const
+ {
+ eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
+ eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+ return m_eivec;
+ }
+
+ /** \brief Returns the block-diagonal matrix in the pseudo-eigendecomposition.
+ *
+ * \returns A block-diagonal matrix.
+ *
+ * \pre Either the constructor
+ * EigenSolver(const MatrixType&,bool) or the member function
+ * compute(const MatrixType&, bool) has been called before.
+ *
+ * The matrix \f$ D \f$ returned by this function is real and
+ * block-diagonal. The blocks on the diagonal are either 1-by-1 or 2-by-2
+ * blocks of the form
+ * \f$ \begin{bmatrix} u & v \\ -v & u \end{bmatrix} \f$.
+ * These blocks are not sorted in any particular order.
+ * The matrix \f$ D \f$ and the matrix \f$ V \f$ returned by
+ * pseudoEigenvectors() satisfy \f$ AV = VD \f$.
+ *
+ * \sa pseudoEigenvectors() for an example, eigenvalues()
+ */
+ MatrixType pseudoEigenvalueMatrix() const;
+
+ /** \brief Returns the eigenvalues of given matrix.
+ *
+ * \returns A const reference to the column vector containing the eigenvalues.
+ *
+ * \pre Either the constructor
+ * EigenSolver(const MatrixType&,bool) or the member function
+ * compute(const MatrixType&, bool) has been called before.
+ *
+ * The eigenvalues are repeated according to their algebraic multiplicity,
+ * so there are as many eigenvalues as rows in the matrix. The eigenvalues
+ * are not sorted in any particular order.
+ *
+ * Example: \include EigenSolver_eigenvalues.cpp
+ * Output: \verbinclude EigenSolver_eigenvalues.out
+ *
+ * \sa eigenvectors(), pseudoEigenvalueMatrix(),
+ * MatrixBase::eigenvalues()
+ */
+ const EigenvalueType& eigenvalues() const
+ {
+ eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
+ return m_eivalues;
+ }
+
+ /** \brief Computes eigendecomposition of given matrix.
+ *
+ * \param[in] matrix Square matrix whose eigendecomposition is to be computed.
+ * \param[in] computeEigenvectors If true, both the eigenvectors and the
+ * eigenvalues are computed; if false, only the eigenvalues are
+ * computed.
+ * \returns Reference to \c *this
+ *
+ * This function computes the eigenvalues of the real matrix \p matrix.
+ * The eigenvalues() function can be used to retrieve them. If
+ * \p computeEigenvectors is true, then the eigenvectors are also computed
+ * and can be retrieved by calling eigenvectors().
+ *
+ * The matrix is first reduced to real Schur form using the RealSchur
+ * class. The Schur decomposition is then used to compute the eigenvalues
+ * and eigenvectors.
+ *
+ * The cost of the computation is dominated by the cost of the
+ * Schur decomposition, which is very approximately \f$ 25n^3 \f$
+ * (where \f$ n \f$ is the size of the matrix) if \p computeEigenvectors
+ * is true, and \f$ 10n^3 \f$ if \p computeEigenvectors is false.
+ *
+ * This method reuses of the allocated data in the EigenSolver object.
+ *
+ * Example: \include EigenSolver_compute.cpp
+ * Output: \verbinclude EigenSolver_compute.out
+ */
+ template<typename InputType>
+ EigenSolver& compute(const EigenBase<InputType>& matrix, bool computeEigenvectors = true);
+
+ /** \returns NumericalIssue if the input contains INF or NaN values or overflow occured. Returns Success otherwise. */
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
+ return m_info;
+ }
+
+ /** \brief Sets the maximum number of iterations allowed. */
+ EigenSolver& setMaxIterations(Index maxIters)
+ {
+ m_realSchur.setMaxIterations(maxIters);
+ return *this;
+ }
+
+ /** \brief Returns the maximum number of iterations. */
+ Index getMaxIterations()
+ {
+ return m_realSchur.getMaxIterations();
+ }
+
+ private:
+ void doComputeEigenvectors();
+
+ protected:
+
+ static void check_template_parameters()
+ {
+ EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+ EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsComplex, NUMERIC_TYPE_MUST_BE_REAL);
+ }
+
+ MatrixType m_eivec;
+ EigenvalueType m_eivalues;
+ bool m_isInitialized;
+ bool m_eigenvectorsOk;
+ ComputationInfo m_info;
+ RealSchur<MatrixType> m_realSchur;
+ MatrixType m_matT;
+
+ typedef Matrix<Scalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> ColumnVectorType;
+ ColumnVectorType m_tmp;
+};
+
+template<typename MatrixType>
+MatrixType EigenSolver<MatrixType>::pseudoEigenvalueMatrix() const
+{
+ eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
+ const RealScalar precision = RealScalar(2)*NumTraits<RealScalar>::epsilon();
+ Index n = m_eivalues.rows();
+ MatrixType matD = MatrixType::Zero(n,n);
+ for (Index i=0; i<n; ++i)
+ {
+ if (internal::isMuchSmallerThan(numext::imag(m_eivalues.coeff(i)), numext::real(m_eivalues.coeff(i)), precision))
+ matD.coeffRef(i,i) = numext::real(m_eivalues.coeff(i));
+ else
+ {
+ matD.template block<2,2>(i,i) << numext::real(m_eivalues.coeff(i)), numext::imag(m_eivalues.coeff(i)),
+ -numext::imag(m_eivalues.coeff(i)), numext::real(m_eivalues.coeff(i));
+ ++i;
+ }
+ }
+ return matD;
+}
+
+template<typename MatrixType>
+typename EigenSolver<MatrixType>::EigenvectorsType EigenSolver<MatrixType>::eigenvectors() const
+{
+ eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
+ eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+ const RealScalar precision = RealScalar(2)*NumTraits<RealScalar>::epsilon();
+ Index n = m_eivec.cols();
+ EigenvectorsType matV(n,n);
+ for (Index j=0; j<n; ++j)
+ {
+ if (internal::isMuchSmallerThan(numext::imag(m_eivalues.coeff(j)), numext::real(m_eivalues.coeff(j)), precision) || j+1==n)
+ {
+ // we have a real eigen value
+ matV.col(j) = m_eivec.col(j).template cast<ComplexScalar>();
+ matV.col(j).normalize();
+ }
+ else
+ {
+ // we have a pair of complex eigen values
+ for (Index i=0; i<n; ++i)
+ {
+ matV.coeffRef(i,j) = ComplexScalar(m_eivec.coeff(i,j), m_eivec.coeff(i,j+1));
+ matV.coeffRef(i,j+1) = ComplexScalar(m_eivec.coeff(i,j), -m_eivec.coeff(i,j+1));
+ }
+ matV.col(j).normalize();
+ matV.col(j+1).normalize();
+ ++j;
+ }
+ }
+ return matV;
+}
+
+template<typename MatrixType>
+template<typename InputType>
+EigenSolver<MatrixType>&
+EigenSolver<MatrixType>::compute(const EigenBase<InputType>& matrix, bool computeEigenvectors)
+{
+ check_template_parameters();
+
+ using std::sqrt;
+ using std::abs;
+ using numext::isfinite;
+ eigen_assert(matrix.cols() == matrix.rows());
+
+ // Reduce to real Schur form.
+ m_realSchur.compute(matrix.derived(), computeEigenvectors);
+
+ m_info = m_realSchur.info();
+
+ if (m_info == Success)
+ {
+ m_matT = m_realSchur.matrixT();
+ if (computeEigenvectors)
+ m_eivec = m_realSchur.matrixU();
+
+ // Compute eigenvalues from matT
+ m_eivalues.resize(matrix.cols());
+ Index i = 0;
+ while (i < matrix.cols())
+ {
+ if (i == matrix.cols() - 1 || m_matT.coeff(i+1, i) == Scalar(0))
+ {
+ m_eivalues.coeffRef(i) = m_matT.coeff(i, i);
+ if(!(isfinite)(m_eivalues.coeffRef(i)))
+ {
+ m_isInitialized = true;
+ m_eigenvectorsOk = false;
+ m_info = NumericalIssue;
+ return *this;
+ }
+ ++i;
+ }
+ else
+ {
+ Scalar p = Scalar(0.5) * (m_matT.coeff(i, i) - m_matT.coeff(i+1, i+1));
+ Scalar z;
+ // Compute z = sqrt(abs(p * p + m_matT.coeff(i+1, i) * m_matT.coeff(i, i+1)));
+ // without overflow
+ {
+ Scalar t0 = m_matT.coeff(i+1, i);
+ Scalar t1 = m_matT.coeff(i, i+1);
+ Scalar maxval = numext::maxi<Scalar>(abs(p),numext::maxi<Scalar>(abs(t0),abs(t1)));
+ t0 /= maxval;
+ t1 /= maxval;
+ Scalar p0 = p/maxval;
+ z = maxval * sqrt(abs(p0 * p0 + t0 * t1));
+ }
+
+ m_eivalues.coeffRef(i) = ComplexScalar(m_matT.coeff(i+1, i+1) + p, z);
+ m_eivalues.coeffRef(i+1) = ComplexScalar(m_matT.coeff(i+1, i+1) + p, -z);
+ if(!((isfinite)(m_eivalues.coeffRef(i)) && (isfinite)(m_eivalues.coeffRef(i+1))))
+ {
+ m_isInitialized = true;
+ m_eigenvectorsOk = false;
+ m_info = NumericalIssue;
+ return *this;
+ }
+ i += 2;
+ }
+ }
+
+ // Compute eigenvectors.
+ if (computeEigenvectors)
+ doComputeEigenvectors();
+ }
+
+ m_isInitialized = true;
+ m_eigenvectorsOk = computeEigenvectors;
+
+ return *this;
+}
+
+
+template<typename MatrixType>
+void EigenSolver<MatrixType>::doComputeEigenvectors()
+{
+ using std::abs;
+ const Index size = m_eivec.cols();
+ const Scalar eps = NumTraits<Scalar>::epsilon();
+
+ // inefficient! this is already computed in RealSchur
+ Scalar norm(0);
+ for (Index j = 0; j < size; ++j)
+ {
+ norm += m_matT.row(j).segment((std::max)(j-1,Index(0)), size-(std::max)(j-1,Index(0))).cwiseAbs().sum();
+ }
+
+ // Backsubstitute to find vectors of upper triangular form
+ if (norm == Scalar(0))
+ {
+ return;
+ }
+
+ for (Index n = size-1; n >= 0; n--)
+ {
+ Scalar p = m_eivalues.coeff(n).real();
+ Scalar q = m_eivalues.coeff(n).imag();
+
+ // Scalar vector
+ if (q == Scalar(0))
+ {
+ Scalar lastr(0), lastw(0);
+ Index l = n;
+
+ m_matT.coeffRef(n,n) = Scalar(1);
+ for (Index i = n-1; i >= 0; i--)
+ {
+ Scalar w = m_matT.coeff(i,i) - p;
+ Scalar r = m_matT.row(i).segment(l,n-l+1).dot(m_matT.col(n).segment(l, n-l+1));
+
+ if (m_eivalues.coeff(i).imag() < Scalar(0))
+ {
+ lastw = w;
+ lastr = r;
+ }
+ else
+ {
+ l = i;
+ if (m_eivalues.coeff(i).imag() == Scalar(0))
+ {
+ if (w != Scalar(0))
+ m_matT.coeffRef(i,n) = -r / w;
+ else
+ m_matT.coeffRef(i,n) = -r / (eps * norm);
+ }
+ else // Solve real equations
+ {
+ Scalar x = m_matT.coeff(i,i+1);
+ Scalar y = m_matT.coeff(i+1,i);
+ Scalar denom = (m_eivalues.coeff(i).real() - p) * (m_eivalues.coeff(i).real() - p) + m_eivalues.coeff(i).imag() * m_eivalues.coeff(i).imag();
+ Scalar t = (x * lastr - lastw * r) / denom;
+ m_matT.coeffRef(i,n) = t;
+ if (abs(x) > abs(lastw))
+ m_matT.coeffRef(i+1,n) = (-r - w * t) / x;
+ else
+ m_matT.coeffRef(i+1,n) = (-lastr - y * t) / lastw;
+ }
+
+ // Overflow control
+ Scalar t = abs(m_matT.coeff(i,n));
+ if ((eps * t) * t > Scalar(1))
+ m_matT.col(n).tail(size-i) /= t;
+ }
+ }
+ }
+ else if (q < Scalar(0) && n > 0) // Complex vector
+ {
+ Scalar lastra(0), lastsa(0), lastw(0);
+ Index l = n-1;
+
+ // Last vector component imaginary so matrix is triangular
+ if (abs(m_matT.coeff(n,n-1)) > abs(m_matT.coeff(n-1,n)))
+ {
+ m_matT.coeffRef(n-1,n-1) = q / m_matT.coeff(n,n-1);
+ m_matT.coeffRef(n-1,n) = -(m_matT.coeff(n,n) - p) / m_matT.coeff(n,n-1);
+ }
+ else
+ {
+ ComplexScalar cc = ComplexScalar(Scalar(0),-m_matT.coeff(n-1,n)) / ComplexScalar(m_matT.coeff(n-1,n-1)-p,q);
+ m_matT.coeffRef(n-1,n-1) = numext::real(cc);
+ m_matT.coeffRef(n-1,n) = numext::imag(cc);
+ }
+ m_matT.coeffRef(n,n-1) = Scalar(0);
+ m_matT.coeffRef(n,n) = Scalar(1);
+ for (Index i = n-2; i >= 0; i--)
+ {
+ Scalar ra = m_matT.row(i).segment(l, n-l+1).dot(m_matT.col(n-1).segment(l, n-l+1));
+ Scalar sa = m_matT.row(i).segment(l, n-l+1).dot(m_matT.col(n).segment(l, n-l+1));
+ Scalar w = m_matT.coeff(i,i) - p;
+
+ if (m_eivalues.coeff(i).imag() < Scalar(0))
+ {
+ lastw = w;
+ lastra = ra;
+ lastsa = sa;
+ }
+ else
+ {
+ l = i;
+ if (m_eivalues.coeff(i).imag() == RealScalar(0))
+ {
+ ComplexScalar cc = ComplexScalar(-ra,-sa) / ComplexScalar(w,q);
+ m_matT.coeffRef(i,n-1) = numext::real(cc);
+ m_matT.coeffRef(i,n) = numext::imag(cc);
+ }
+ else
+ {
+ // Solve complex equations
+ Scalar x = m_matT.coeff(i,i+1);
+ Scalar y = m_matT.coeff(i+1,i);
+ Scalar vr = (m_eivalues.coeff(i).real() - p) * (m_eivalues.coeff(i).real() - p) + m_eivalues.coeff(i).imag() * m_eivalues.coeff(i).imag() - q * q;
+ Scalar vi = (m_eivalues.coeff(i).real() - p) * Scalar(2) * q;
+ if ((vr == Scalar(0)) && (vi == Scalar(0)))
+ vr = eps * norm * (abs(w) + abs(q) + abs(x) + abs(y) + abs(lastw));
+
+ ComplexScalar cc = ComplexScalar(x*lastra-lastw*ra+q*sa,x*lastsa-lastw*sa-q*ra) / ComplexScalar(vr,vi);
+ m_matT.coeffRef(i,n-1) = numext::real(cc);
+ m_matT.coeffRef(i,n) = numext::imag(cc);
+ if (abs(x) > (abs(lastw) + abs(q)))
+ {
+ m_matT.coeffRef(i+1,n-1) = (-ra - w * m_matT.coeff(i,n-1) + q * m_matT.coeff(i,n)) / x;
+ m_matT.coeffRef(i+1,n) = (-sa - w * m_matT.coeff(i,n) - q * m_matT.coeff(i,n-1)) / x;
+ }
+ else
+ {
+ cc = ComplexScalar(-lastra-y*m_matT.coeff(i,n-1),-lastsa-y*m_matT.coeff(i,n)) / ComplexScalar(lastw,q);
+ m_matT.coeffRef(i+1,n-1) = numext::real(cc);
+ m_matT.coeffRef(i+1,n) = numext::imag(cc);
+ }
+ }
+
+ // Overflow control
+ Scalar t = numext::maxi<Scalar>(abs(m_matT.coeff(i,n-1)),abs(m_matT.coeff(i,n)));
+ if ((eps * t) * t > Scalar(1))
+ m_matT.block(i, n-1, size-i, 2) /= t;
+
+ }
+ }
+
+ // We handled a pair of complex conjugate eigenvalues, so need to skip them both
+ n--;
+ }
+ else
+ {
+ eigen_assert(0 && "Internal bug in EigenSolver (INF or NaN has not been detected)"); // this should not happen
+ }
+ }
+
+ // Back transformation to get eigenvectors of original matrix
+ for (Index j = size-1; j >= 0; j--)
+ {
+ m_tmp.noalias() = m_eivec.leftCols(j+1) * m_matT.col(j).segment(0, j+1);
+ m_eivec.col(j) = m_tmp;
+ }
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_EIGENSOLVER_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
new file mode 100644
index 000000000..36a91dffc
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
@@ -0,0 +1,419 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012-2016 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010,2012 Jitse Niesen <jitse@maths.leeds.ac.uk>
+// Copyright (C) 2016 Tobias Wood <tobias@spinicist.org.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERALIZEDEIGENSOLVER_H
+#define EIGEN_GENERALIZEDEIGENSOLVER_H
+
+#include "./RealQZ.h"
+
+namespace Eigen {
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+ *
+ *
+ * \class GeneralizedEigenSolver
+ *
+ * \brief Computes the generalized eigenvalues and eigenvectors of a pair of general matrices
+ *
+ * \tparam _MatrixType the type of the matrices of which we are computing the
+ * eigen-decomposition; this is expected to be an instantiation of the Matrix
+ * class template. Currently, only real matrices are supported.
+ *
+ * The generalized eigenvalues and eigenvectors of a matrix pair \f$ A \f$ and \f$ B \f$ are scalars
+ * \f$ \lambda \f$ and vectors \f$ v \f$ such that \f$ Av = \lambda Bv \f$. If
+ * \f$ D \f$ is a diagonal matrix with the eigenvalues on the diagonal, and
+ * \f$ V \f$ is a matrix with the eigenvectors as its columns, then \f$ A V =
+ * B V D \f$. The matrix \f$ V \f$ is almost always invertible, in which case we
+ * have \f$ A = B V D V^{-1} \f$. This is called the generalized eigen-decomposition.
+ *
+ * The generalized eigenvalues and eigenvectors of a matrix pair may be complex, even when the
+ * matrices are real. Moreover, the generalized eigenvalue might be infinite if the matrix B is
+ * singular. To workaround this difficulty, the eigenvalues are provided as a pair of complex \f$ \alpha \f$
+ * and real \f$ \beta \f$ such that: \f$ \lambda_i = \alpha_i / \beta_i \f$. If \f$ \beta_i \f$ is (nearly) zero,
+ * then one can consider the well defined left eigenvalue \f$ \mu = \beta_i / \alpha_i\f$ such that:
+ * \f$ \mu_i A v_i = B v_i \f$, or even \f$ \mu_i u_i^T A = u_i^T B \f$ where \f$ u_i \f$ is
+ * called the left eigenvector.
+ *
+ * Call the function compute() to compute the generalized eigenvalues and eigenvectors of
+ * a given matrix pair. Alternatively, you can use the
+ * GeneralizedEigenSolver(const MatrixType&, const MatrixType&, bool) constructor which computes the
+ * eigenvalues and eigenvectors at construction time. Once the eigenvalue and
+ * eigenvectors are computed, they can be retrieved with the eigenvalues() and
+ * eigenvectors() functions.
+ *
+ * Here is an usage example of this class:
+ * Example: \include GeneralizedEigenSolver.cpp
+ * Output: \verbinclude GeneralizedEigenSolver.out
+ *
+ * \sa MatrixBase::eigenvalues(), class ComplexEigenSolver, class SelfAdjointEigenSolver
+ */
+template<typename _MatrixType> class GeneralizedEigenSolver
+{
+ public:
+
+ /** \brief Synonym for the template parameter \p _MatrixType. */
+ typedef _MatrixType MatrixType;
+
+ enum {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ Options = MatrixType::Options,
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+
+ /** \brief Scalar type for matrices of type #MatrixType. */
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
+
+ /** \brief Complex scalar type for #MatrixType.
+ *
+ * This is \c std::complex<Scalar> if #Scalar is real (e.g.,
+ * \c float or \c double) and just \c Scalar if #Scalar is
+ * complex.
+ */
+ typedef std::complex<RealScalar> ComplexScalar;
+
+ /** \brief Type for vector of real scalar values eigenvalues as returned by betas().
+ *
+ * This is a column vector with entries of type #Scalar.
+ * The length of the vector is the size of #MatrixType.
+ */
+ typedef Matrix<Scalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> VectorType;
+
+ /** \brief Type for vector of complex scalar values eigenvalues as returned by alphas().
+ *
+ * This is a column vector with entries of type #ComplexScalar.
+ * The length of the vector is the size of #MatrixType.
+ */
+ typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> ComplexVectorType;
+
+ /** \brief Expression type for the eigenvalues as returned by eigenvalues().
+ */
+ typedef CwiseBinaryOp<internal::scalar_quotient_op<ComplexScalar,Scalar>,ComplexVectorType,VectorType> EigenvalueType;
+
+ /** \brief Type for matrix of eigenvectors as returned by eigenvectors().
+ *
+ * This is a square matrix with entries of type #ComplexScalar.
+ * The size is the same as the size of #MatrixType.
+ */
+ typedef Matrix<ComplexScalar, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> EigenvectorsType;
+
+ /** \brief Default constructor.
+ *
+ * The default constructor is useful in cases in which the user intends to
+ * perform decompositions via EigenSolver::compute(const MatrixType&, bool).
+ *
+ * \sa compute() for an example.
+ */
+ GeneralizedEigenSolver()
+ : m_eivec(),
+ m_alphas(),
+ m_betas(),
+ m_valuesOkay(false),
+ m_vectorsOkay(false),
+ m_realQZ()
+ {}
+
+ /** \brief Default constructor with memory preallocation
+ *
+ * Like the default constructor but with preallocation of the internal data
+ * according to the specified problem \a size.
+ * \sa GeneralizedEigenSolver()
+ */
+ explicit GeneralizedEigenSolver(Index size)
+ : m_eivec(size, size),
+ m_alphas(size),
+ m_betas(size),
+ m_valuesOkay(false),
+ m_vectorsOkay(false),
+ m_realQZ(size),
+ m_tmp(size)
+ {}
+
+ /** \brief Constructor; computes the generalized eigendecomposition of given matrix pair.
+ *
+ * \param[in] A Square matrix whose eigendecomposition is to be computed.
+ * \param[in] B Square matrix whose eigendecomposition is to be computed.
+ * \param[in] computeEigenvectors If true, both the eigenvectors and the
+ * eigenvalues are computed; if false, only the eigenvalues are computed.
+ *
+ * This constructor calls compute() to compute the generalized eigenvalues
+ * and eigenvectors.
+ *
+ * \sa compute()
+ */
+ GeneralizedEigenSolver(const MatrixType& A, const MatrixType& B, bool computeEigenvectors = true)
+ : m_eivec(A.rows(), A.cols()),
+ m_alphas(A.cols()),
+ m_betas(A.cols()),
+ m_valuesOkay(false),
+ m_vectorsOkay(false),
+ m_realQZ(A.cols()),
+ m_tmp(A.cols())
+ {
+ compute(A, B, computeEigenvectors);
+ }
+
+ /* \brief Returns the computed generalized eigenvectors.
+ *
+ * \returns %Matrix whose columns are the (possibly complex) right eigenvectors.
+ * i.e. the eigenvectors that solve (A - l*B)x = 0. The ordering matches the eigenvalues.
+ *
+ * \pre Either the constructor
+ * GeneralizedEigenSolver(const MatrixType&,const MatrixType&, bool) or the member function
+ * compute(const MatrixType&, const MatrixType& bool) has been called before, and
+ * \p computeEigenvectors was set to true (the default).
+ *
+ * \sa eigenvalues()
+ */
+ EigenvectorsType eigenvectors() const {
+ eigen_assert(m_vectorsOkay && "Eigenvectors for GeneralizedEigenSolver were not calculated.");
+ return m_eivec;
+ }
+
+ /** \brief Returns an expression of the computed generalized eigenvalues.
+ *
+ * \returns An expression of the column vector containing the eigenvalues.
+ *
+ * It is a shortcut for \code this->alphas().cwiseQuotient(this->betas()); \endcode
+ * Not that betas might contain zeros. It is therefore not recommended to use this function,
+ * but rather directly deal with the alphas and betas vectors.
+ *
+ * \pre Either the constructor
+ * GeneralizedEigenSolver(const MatrixType&,const MatrixType&,bool) or the member function
+ * compute(const MatrixType&,const MatrixType&,bool) has been called before.
+ *
+ * The eigenvalues are repeated according to their algebraic multiplicity,
+ * so there are as many eigenvalues as rows in the matrix. The eigenvalues
+ * are not sorted in any particular order.
+ *
+ * \sa alphas(), betas(), eigenvectors()
+ */
+ EigenvalueType eigenvalues() const
+ {
+ eigen_assert(m_valuesOkay && "GeneralizedEigenSolver is not initialized.");
+ return EigenvalueType(m_alphas,m_betas);
+ }
+
+ /** \returns A const reference to the vectors containing the alpha values
+ *
+ * This vector permits to reconstruct the j-th eigenvalues as alphas(i)/betas(j).
+ *
+ * \sa betas(), eigenvalues() */
+ ComplexVectorType alphas() const
+ {
+ eigen_assert(m_valuesOkay && "GeneralizedEigenSolver is not initialized.");
+ return m_alphas;
+ }
+
+ /** \returns A const reference to the vectors containing the beta values
+ *
+ * This vector permits to reconstruct the j-th eigenvalues as alphas(i)/betas(j).
+ *
+ * \sa alphas(), eigenvalues() */
+ VectorType betas() const
+ {
+ eigen_assert(m_valuesOkay && "GeneralizedEigenSolver is not initialized.");
+ return m_betas;
+ }
+
+ /** \brief Computes generalized eigendecomposition of given matrix.
+ *
+ * \param[in] A Square matrix whose eigendecomposition is to be computed.
+ * \param[in] B Square matrix whose eigendecomposition is to be computed.
+ * \param[in] computeEigenvectors If true, both the eigenvectors and the
+ * eigenvalues are computed; if false, only the eigenvalues are
+ * computed.
+ * \returns Reference to \c *this
+ *
+ * This function computes the eigenvalues of the real matrix \p matrix.
+ * The eigenvalues() function can be used to retrieve them. If
+ * \p computeEigenvectors is true, then the eigenvectors are also computed
+ * and can be retrieved by calling eigenvectors().
+ *
+ * The matrix is first reduced to real generalized Schur form using the RealQZ
+ * class. The generalized Schur decomposition is then used to compute the eigenvalues
+ * and eigenvectors.
+ *
+ * The cost of the computation is dominated by the cost of the
+ * generalized Schur decomposition.
+ *
+ * This method reuses of the allocated data in the GeneralizedEigenSolver object.
+ */
+ GeneralizedEigenSolver& compute(const MatrixType& A, const MatrixType& B, bool computeEigenvectors = true);
+
+ ComputationInfo info() const
+ {
+ eigen_assert(m_valuesOkay && "EigenSolver is not initialized.");
+ return m_realQZ.info();
+ }
+
+ /** Sets the maximal number of iterations allowed.
+ */
+ GeneralizedEigenSolver& setMaxIterations(Index maxIters)
+ {
+ m_realQZ.setMaxIterations(maxIters);
+ return *this;
+ }
+
+ protected:
+
+ static void check_template_parameters()
+ {
+ EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+ EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsComplex, NUMERIC_TYPE_MUST_BE_REAL);
+ }
+
+ EigenvectorsType m_eivec;
+ ComplexVectorType m_alphas;
+ VectorType m_betas;
+ bool m_valuesOkay, m_vectorsOkay;
+ RealQZ<MatrixType> m_realQZ;
+ ComplexVectorType m_tmp;
+};
+
+template<typename MatrixType>
+GeneralizedEigenSolver<MatrixType>&
+GeneralizedEigenSolver<MatrixType>::compute(const MatrixType& A, const MatrixType& B, bool computeEigenvectors)
+{
+ check_template_parameters();
+
+ using std::sqrt;
+ using std::abs;
+ eigen_assert(A.cols() == A.rows() && B.cols() == A.rows() && B.cols() == B.rows());
+ Index size = A.cols();
+ m_valuesOkay = false;
+ m_vectorsOkay = false;
+ // Reduce to generalized real Schur form:
+ // A = Q S Z and B = Q T Z
+ m_realQZ.compute(A, B, computeEigenvectors);
+ if (m_realQZ.info() == Success)
+ {
+ // Resize storage
+ m_alphas.resize(size);
+ m_betas.resize(size);
+ if (computeEigenvectors)
+ {
+ m_eivec.resize(size,size);
+ m_tmp.resize(size);
+ }
+
+ // Aliases:
+ Map<VectorType> v(reinterpret_cast<Scalar*>(m_tmp.data()), size);
+ ComplexVectorType &cv = m_tmp;
+ const MatrixType &mZ = m_realQZ.matrixZ();
+ const MatrixType &mS = m_realQZ.matrixS();
+ const MatrixType &mT = m_realQZ.matrixT();
+
+ Index i = 0;
+ while (i < size)
+ {
+ if (i == size - 1 || mS.coeff(i+1, i) == Scalar(0))
+ {
+ // Real eigenvalue
+ m_alphas.coeffRef(i) = mS.diagonal().coeff(i);
+ m_betas.coeffRef(i) = mT.diagonal().coeff(i);
+ if (computeEigenvectors)
+ {
+ v.setConstant(Scalar(0.0));
+ v.coeffRef(i) = Scalar(1.0);
+ // For singular eigenvalues do nothing more
+ if(abs(m_betas.coeffRef(i)) >= (std::numeric_limits<RealScalar>::min)())
+ {
+ // Non-singular eigenvalue
+ const Scalar alpha = real(m_alphas.coeffRef(i));
+ const Scalar beta = m_betas.coeffRef(i);
+ for (Index j = i-1; j >= 0; j--)
+ {
+ const Index st = j+1;
+ const Index sz = i-j;
+ if (j > 0 && mS.coeff(j, j-1) != Scalar(0))
+ {
+ // 2x2 block
+ Matrix<Scalar, 2, 1> rhs = (alpha*mT.template block<2,Dynamic>(j-1,st,2,sz) - beta*mS.template block<2,Dynamic>(j-1,st,2,sz)) .lazyProduct( v.segment(st,sz) );
+ Matrix<Scalar, 2, 2> lhs = beta * mS.template block<2,2>(j-1,j-1) - alpha * mT.template block<2,2>(j-1,j-1);
+ v.template segment<2>(j-1) = lhs.partialPivLu().solve(rhs);
+ j--;
+ }
+ else
+ {
+ v.coeffRef(j) = -v.segment(st,sz).transpose().cwiseProduct(beta*mS.block(j,st,1,sz) - alpha*mT.block(j,st,1,sz)).sum() / (beta*mS.coeffRef(j,j) - alpha*mT.coeffRef(j,j));
+ }
+ }
+ }
+ m_eivec.col(i).real().noalias() = mZ.transpose() * v;
+ m_eivec.col(i).real().normalize();
+ m_eivec.col(i).imag().setConstant(0);
+ }
+ ++i;
+ }
+ else
+ {
+ // We need to extract the generalized eigenvalues of the pair of a general 2x2 block S and a positive diagonal 2x2 block T
+ // Then taking beta=T_00*T_11, we can avoid any division, and alpha is the eigenvalues of A = (U^-1 * S * U) * diag(T_11,T_00):
+
+ // T = [a 0]
+ // [0 b]
+ RealScalar a = mT.diagonal().coeff(i),
+ b = mT.diagonal().coeff(i+1);
+ const RealScalar beta = m_betas.coeffRef(i) = m_betas.coeffRef(i+1) = a*b;
+
+ // ^^ NOTE: using diagonal()(i) instead of coeff(i,i) workarounds a MSVC bug.
+ Matrix<RealScalar,2,2> S2 = mS.template block<2,2>(i,i) * Matrix<Scalar,2,1>(b,a).asDiagonal();
+
+ Scalar p = Scalar(0.5) * (S2.coeff(0,0) - S2.coeff(1,1));
+ Scalar z = sqrt(abs(p * p + S2.coeff(1,0) * S2.coeff(0,1)));
+ const ComplexScalar alpha = ComplexScalar(S2.coeff(1,1) + p, (beta > 0) ? z : -z);
+ m_alphas.coeffRef(i) = conj(alpha);
+ m_alphas.coeffRef(i+1) = alpha;
+
+ if (computeEigenvectors) {
+ // Compute eigenvector in position (i+1) and then position (i) is just the conjugate
+ cv.setZero();
+ cv.coeffRef(i+1) = Scalar(1.0);
+ // here, the "static_cast" workaound expression template issues.
+ cv.coeffRef(i) = -(static_cast<Scalar>(beta*mS.coeffRef(i,i+1)) - alpha*mT.coeffRef(i,i+1))
+ / (static_cast<Scalar>(beta*mS.coeffRef(i,i)) - alpha*mT.coeffRef(i,i));
+ for (Index j = i-1; j >= 0; j--)
+ {
+ const Index st = j+1;
+ const Index sz = i+1-j;
+ if (j > 0 && mS.coeff(j, j-1) != Scalar(0))
+ {
+ // 2x2 block
+ Matrix<ComplexScalar, 2, 1> rhs = (alpha*mT.template block<2,Dynamic>(j-1,st,2,sz) - beta*mS.template block<2,Dynamic>(j-1,st,2,sz)) .lazyProduct( cv.segment(st,sz) );
+ Matrix<ComplexScalar, 2, 2> lhs = beta * mS.template block<2,2>(j-1,j-1) - alpha * mT.template block<2,2>(j-1,j-1);
+ cv.template segment<2>(j-1) = lhs.partialPivLu().solve(rhs);
+ j--;
+ } else {
+ cv.coeffRef(j) = cv.segment(st,sz).transpose().cwiseProduct(beta*mS.block(j,st,1,sz) - alpha*mT.block(j,st,1,sz)).sum()
+ / (alpha*mT.coeffRef(j,j) - static_cast<Scalar>(beta*mS.coeffRef(j,j)));
+ }
+ }
+ m_eivec.col(i+1).noalias() = (mZ.transpose() * cv);
+ m_eivec.col(i+1).normalize();
+ m_eivec.col(i) = m_eivec.col(i+1).conjugate();
+ }
+ i += 2;
+ }
+ }
+
+ m_valuesOkay = true;
+ m_vectorsOkay = computeEigenvectors;
+ }
+ return *this;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERALIZEDEIGENSOLVER_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
new file mode 100644
index 000000000..5f6bb8289
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
@@ -0,0 +1,226 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERALIZEDSELFADJOINTEIGENSOLVER_H
+#define EIGEN_GENERALIZEDSELFADJOINTEIGENSOLVER_H
+
+#include "./Tridiagonalization.h"
+
+namespace Eigen {
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+ *
+ *
+ * \class GeneralizedSelfAdjointEigenSolver
+ *
+ * \brief Computes eigenvalues and eigenvectors of the generalized selfadjoint eigen problem
+ *
+ * \tparam _MatrixType the type of the matrix of which we are computing the
+ * eigendecomposition; this is expected to be an instantiation of the Matrix
+ * class template.
+ *
+ * This class solves the generalized eigenvalue problem
+ * \f$ Av = \lambda Bv \f$. In this case, the matrix \f$ A \f$ should be
+ * selfadjoint and the matrix \f$ B \f$ should be positive definite.
+ *
+ * Only the \b lower \b triangular \b part of the input matrix is referenced.
+ *
+ * Call the function compute() to compute the eigenvalues and eigenvectors of
+ * a given matrix. Alternatively, you can use the
+ * GeneralizedSelfAdjointEigenSolver(const MatrixType&, const MatrixType&, int)
+ * constructor which computes the eigenvalues and eigenvectors at construction time.
+ * Once the eigenvalue and eigenvectors are computed, they can be retrieved with the eigenvalues()
+ * and eigenvectors() functions.
+ *
+ * The documentation for GeneralizedSelfAdjointEigenSolver(const MatrixType&, const MatrixType&, int)
+ * contains an example of the typical use of this class.
+ *
+ * \sa class SelfAdjointEigenSolver, class EigenSolver, class ComplexEigenSolver
+ */
+template<typename _MatrixType>
+class GeneralizedSelfAdjointEigenSolver : public SelfAdjointEigenSolver<_MatrixType>
+{
+ typedef SelfAdjointEigenSolver<_MatrixType> Base;
+ public:
+
+ typedef _MatrixType MatrixType;
+
+ /** \brief Default constructor for fixed-size matrices.
+ *
+ * The default constructor is useful in cases in which the user intends to
+ * perform decompositions via compute(). This constructor
+ * can only be used if \p _MatrixType is a fixed-size matrix; use
+ * GeneralizedSelfAdjointEigenSolver(Index) for dynamic-size matrices.
+ */
+ GeneralizedSelfAdjointEigenSolver() : Base() {}
+
+ /** \brief Constructor, pre-allocates memory for dynamic-size matrices.
+ *
+ * \param [in] size Positive integer, size of the matrix whose
+ * eigenvalues and eigenvectors will be computed.
+ *
+ * This constructor is useful for dynamic-size matrices, when the user
+ * intends to perform decompositions via compute(). The \p size
+ * parameter is only used as a hint. It is not an error to give a wrong
+ * \p size, but it may impair performance.
+ *
+ * \sa compute() for an example
+ */
+ explicit GeneralizedSelfAdjointEigenSolver(Index size)
+ : Base(size)
+ {}
+
+ /** \brief Constructor; computes generalized eigendecomposition of given matrix pencil.
+ *
+ * \param[in] matA Selfadjoint matrix in matrix pencil.
+ * Only the lower triangular part of the matrix is referenced.
+ * \param[in] matB Positive-definite matrix in matrix pencil.
+ * Only the lower triangular part of the matrix is referenced.
+ * \param[in] options A or-ed set of flags {#ComputeEigenvectors,#EigenvaluesOnly} | {#Ax_lBx,#ABx_lx,#BAx_lx}.
+ * Default is #ComputeEigenvectors|#Ax_lBx.
+ *
+ * This constructor calls compute(const MatrixType&, const MatrixType&, int)
+ * to compute the eigenvalues and (if requested) the eigenvectors of the
+ * generalized eigenproblem \f$ Ax = \lambda B x \f$ with \a matA the
+ * selfadjoint matrix \f$ A \f$ and \a matB the positive definite matrix
+ * \f$ B \f$. Each eigenvector \f$ x \f$ satisfies the property
+ * \f$ x^* B x = 1 \f$. The eigenvectors are computed if
+ * \a options contains ComputeEigenvectors.
+ *
+ * In addition, the two following variants can be solved via \p options:
+ * - \c ABx_lx: \f$ ABx = \lambda x \f$
+ * - \c BAx_lx: \f$ BAx = \lambda x \f$
+ *
+ * Example: \include SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType2.cpp
+ * Output: \verbinclude SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType2.out
+ *
+ * \sa compute(const MatrixType&, const MatrixType&, int)
+ */
+ GeneralizedSelfAdjointEigenSolver(const MatrixType& matA, const MatrixType& matB,
+ int options = ComputeEigenvectors|Ax_lBx)
+ : Base(matA.cols())
+ {
+ compute(matA, matB, options);
+ }
+
+ /** \brief Computes generalized eigendecomposition of given matrix pencil.
+ *
+ * \param[in] matA Selfadjoint matrix in matrix pencil.
+ * Only the lower triangular part of the matrix is referenced.
+ * \param[in] matB Positive-definite matrix in matrix pencil.
+ * Only the lower triangular part of the matrix is referenced.
+ * \param[in] options A or-ed set of flags {#ComputeEigenvectors,#EigenvaluesOnly} | {#Ax_lBx,#ABx_lx,#BAx_lx}.
+ * Default is #ComputeEigenvectors|#Ax_lBx.
+ *
+ * \returns Reference to \c *this
+ *
+ * Accoring to \p options, this function computes eigenvalues and (if requested)
+ * the eigenvectors of one of the following three generalized eigenproblems:
+ * - \c Ax_lBx: \f$ Ax = \lambda B x \f$
+ * - \c ABx_lx: \f$ ABx = \lambda x \f$
+ * - \c BAx_lx: \f$ BAx = \lambda x \f$
+ * with \a matA the selfadjoint matrix \f$ A \f$ and \a matB the positive definite
+ * matrix \f$ B \f$.
+ * In addition, each eigenvector \f$ x \f$ satisfies the property \f$ x^* B x = 1 \f$.
+ *
+ * The eigenvalues() function can be used to retrieve
+ * the eigenvalues. If \p options contains ComputeEigenvectors, then the
+ * eigenvectors are also computed and can be retrieved by calling
+ * eigenvectors().
+ *
+ * The implementation uses LLT to compute the Cholesky decomposition
+ * \f$ B = LL^* \f$ and computes the classical eigendecomposition
+ * of the selfadjoint matrix \f$ L^{-1} A (L^*)^{-1} \f$ if \p options contains Ax_lBx
+ * and of \f$ L^{*} A L \f$ otherwise. This solves the
+ * generalized eigenproblem, because any solution of the generalized
+ * eigenproblem \f$ Ax = \lambda B x \f$ corresponds to a solution
+ * \f$ L^{-1} A (L^*)^{-1} (L^* x) = \lambda (L^* x) \f$ of the
+ * eigenproblem for \f$ L^{-1} A (L^*)^{-1} \f$. Similar statements
+ * can be made for the two other variants.
+ *
+ * Example: \include SelfAdjointEigenSolver_compute_MatrixType2.cpp
+ * Output: \verbinclude SelfAdjointEigenSolver_compute_MatrixType2.out
+ *
+ * \sa GeneralizedSelfAdjointEigenSolver(const MatrixType&, const MatrixType&, int)
+ */
+ GeneralizedSelfAdjointEigenSolver& compute(const MatrixType& matA, const MatrixType& matB,
+ int options = ComputeEigenvectors|Ax_lBx);
+
+ protected:
+
+};
+
+
+template<typename MatrixType>
+GeneralizedSelfAdjointEigenSolver<MatrixType>& GeneralizedSelfAdjointEigenSolver<MatrixType>::
+compute(const MatrixType& matA, const MatrixType& matB, int options)
+{
+ eigen_assert(matA.cols()==matA.rows() && matB.rows()==matA.rows() && matB.cols()==matB.rows());
+ eigen_assert((options&~(EigVecMask|GenEigMask))==0
+ && (options&EigVecMask)!=EigVecMask
+ && ((options&GenEigMask)==0 || (options&GenEigMask)==Ax_lBx
+ || (options&GenEigMask)==ABx_lx || (options&GenEigMask)==BAx_lx)
+ && "invalid option parameter");
+
+ bool computeEigVecs = ((options&EigVecMask)==0) || ((options&EigVecMask)==ComputeEigenvectors);
+
+ // Compute the cholesky decomposition of matB = L L' = U'U
+ LLT<MatrixType> cholB(matB);
+
+ int type = (options&GenEigMask);
+ if(type==0)
+ type = Ax_lBx;
+
+ if(type==Ax_lBx)
+ {
+ // compute C = inv(L) A inv(L')
+ MatrixType matC = matA.template selfadjointView<Lower>();
+ cholB.matrixL().template solveInPlace<OnTheLeft>(matC);
+ cholB.matrixU().template solveInPlace<OnTheRight>(matC);
+
+ Base::compute(matC, computeEigVecs ? ComputeEigenvectors : EigenvaluesOnly );
+
+ // transform back the eigen vectors: evecs = inv(U) * evecs
+ if(computeEigVecs)
+ cholB.matrixU().solveInPlace(Base::m_eivec);
+ }
+ else if(type==ABx_lx)
+ {
+ // compute C = L' A L
+ MatrixType matC = matA.template selfadjointView<Lower>();
+ matC = matC * cholB.matrixL();
+ matC = cholB.matrixU() * matC;
+
+ Base::compute(matC, computeEigVecs ? ComputeEigenvectors : EigenvaluesOnly);
+
+ // transform back the eigen vectors: evecs = inv(U) * evecs
+ if(computeEigVecs)
+ cholB.matrixU().solveInPlace(Base::m_eivec);
+ }
+ else if(type==BAx_lx)
+ {
+ // compute C = L' A L
+ MatrixType matC = matA.template selfadjointView<Lower>();
+ matC = matC * cholB.matrixL();
+ matC = cholB.matrixU() * matC;
+
+ Base::compute(matC, computeEigVecs ? ComputeEigenvectors : EigenvaluesOnly);
+
+ // transform back the eigen vectors: evecs = L * evecs
+ if(computeEigVecs)
+ Base::m_eivec = cholB.matrixL() * Base::m_eivec;
+ }
+
+ return *this;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERALIZEDSELFADJOINTEIGENSOLVER_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h
new file mode 100644
index 000000000..f647f69b0
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h
@@ -0,0 +1,374 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_HESSENBERGDECOMPOSITION_H
+#define EIGEN_HESSENBERGDECOMPOSITION_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename MatrixType> struct HessenbergDecompositionMatrixHReturnType;
+template<typename MatrixType>
+struct traits<HessenbergDecompositionMatrixHReturnType<MatrixType> >
+{
+ typedef MatrixType ReturnType;
+};
+
+}
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+ *
+ *
+ * \class HessenbergDecomposition
+ *
+ * \brief Reduces a square matrix to Hessenberg form by an orthogonal similarity transformation
+ *
+ * \tparam _MatrixType the type of the matrix of which we are computing the Hessenberg decomposition
+ *
+ * This class performs an Hessenberg decomposition of a matrix \f$ A \f$. In
+ * the real case, the Hessenberg decomposition consists of an orthogonal
+ * matrix \f$ Q \f$ and a Hessenberg matrix \f$ H \f$ such that \f$ A = Q H
+ * Q^T \f$. An orthogonal matrix is a matrix whose inverse equals its
+ * transpose (\f$ Q^{-1} = Q^T \f$). A Hessenberg matrix has zeros below the
+ * subdiagonal, so it is almost upper triangular. The Hessenberg decomposition
+ * of a complex matrix is \f$ A = Q H Q^* \f$ with \f$ Q \f$ unitary (that is,
+ * \f$ Q^{-1} = Q^* \f$).
+ *
+ * Call the function compute() to compute the Hessenberg decomposition of a
+ * given matrix. Alternatively, you can use the
+ * HessenbergDecomposition(const MatrixType&) constructor which computes the
+ * Hessenberg decomposition at construction time. Once the decomposition is
+ * computed, you can use the matrixH() and matrixQ() functions to construct
+ * the matrices H and Q in the decomposition.
+ *
+ * The documentation for matrixH() contains an example of the typical use of
+ * this class.
+ *
+ * \sa class ComplexSchur, class Tridiagonalization, \ref QR_Module "QR Module"
+ */
+template<typename _MatrixType> class HessenbergDecomposition
+{
+ public:
+
+ /** \brief Synonym for the template parameter \p _MatrixType. */
+ typedef _MatrixType MatrixType;
+
+ enum {
+ Size = MatrixType::RowsAtCompileTime,
+ SizeMinusOne = Size == Dynamic ? Dynamic : Size - 1,
+ Options = MatrixType::Options,
+ MaxSize = MatrixType::MaxRowsAtCompileTime,
+ MaxSizeMinusOne = MaxSize == Dynamic ? Dynamic : MaxSize - 1
+ };
+
+ /** \brief Scalar type for matrices of type #MatrixType. */
+ typedef typename MatrixType::Scalar Scalar;
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
+
+ /** \brief Type for vector of Householder coefficients.
+ *
+ * This is column vector with entries of type #Scalar. The length of the
+ * vector is one less than the size of #MatrixType, if it is a fixed-side
+ * type.
+ */
+ typedef Matrix<Scalar, SizeMinusOne, 1, Options & ~RowMajor, MaxSizeMinusOne, 1> CoeffVectorType;
+
+ /** \brief Return type of matrixQ() */
+ typedef HouseholderSequence<MatrixType,typename internal::remove_all<typename CoeffVectorType::ConjugateReturnType>::type> HouseholderSequenceType;
+
+ typedef internal::HessenbergDecompositionMatrixHReturnType<MatrixType> MatrixHReturnType;
+
+ /** \brief Default constructor; the decomposition will be computed later.
+ *
+ * \param [in] size The size of the matrix whose Hessenberg decomposition will be computed.
+ *
+ * The default constructor is useful in cases in which the user intends to
+ * perform decompositions via compute(). The \p size parameter is only
+ * used as a hint. It is not an error to give a wrong \p size, but it may
+ * impair performance.
+ *
+ * \sa compute() for an example.
+ */
+ explicit HessenbergDecomposition(Index size = Size==Dynamic ? 2 : Size)
+ : m_matrix(size,size),
+ m_temp(size),
+ m_isInitialized(false)
+ {
+ if(size>1)
+ m_hCoeffs.resize(size-1);
+ }
+
+ /** \brief Constructor; computes Hessenberg decomposition of given matrix.
+ *
+ * \param[in] matrix Square matrix whose Hessenberg decomposition is to be computed.
+ *
+ * This constructor calls compute() to compute the Hessenberg
+ * decomposition.
+ *
+ * \sa matrixH() for an example.
+ */
+ template<typename InputType>
+ explicit HessenbergDecomposition(const EigenBase<InputType>& matrix)
+ : m_matrix(matrix.derived()),
+ m_temp(matrix.rows()),
+ m_isInitialized(false)
+ {
+ if(matrix.rows()<2)
+ {
+ m_isInitialized = true;
+ return;
+ }
+ m_hCoeffs.resize(matrix.rows()-1,1);
+ _compute(m_matrix, m_hCoeffs, m_temp);
+ m_isInitialized = true;
+ }
+
+ /** \brief Computes Hessenberg decomposition of given matrix.
+ *
+ * \param[in] matrix Square matrix whose Hessenberg decomposition is to be computed.
+ * \returns Reference to \c *this
+ *
+ * The Hessenberg decomposition is computed by bringing the columns of the
+ * matrix successively in the required form using Householder reflections
+ * (see, e.g., Algorithm 7.4.2 in Golub \& Van Loan, <i>%Matrix
+ * Computations</i>). The cost is \f$ 10n^3/3 \f$ flops, where \f$ n \f$
+ * denotes the size of the given matrix.
+ *
+ * This method reuses of the allocated data in the HessenbergDecomposition
+ * object.
+ *
+ * Example: \include HessenbergDecomposition_compute.cpp
+ * Output: \verbinclude HessenbergDecomposition_compute.out
+ */
+ template<typename InputType>
+ HessenbergDecomposition& compute(const EigenBase<InputType>& matrix)
+ {
+ m_matrix = matrix.derived();
+ if(matrix.rows()<2)
+ {
+ m_isInitialized = true;
+ return *this;
+ }
+ m_hCoeffs.resize(matrix.rows()-1,1);
+ _compute(m_matrix, m_hCoeffs, m_temp);
+ m_isInitialized = true;
+ return *this;
+ }
+
+ /** \brief Returns the Householder coefficients.
+ *
+ * \returns a const reference to the vector of Householder coefficients
+ *
+ * \pre Either the constructor HessenbergDecomposition(const MatrixType&)
+ * or the member function compute(const MatrixType&) has been called
+ * before to compute the Hessenberg decomposition of a matrix.
+ *
+ * The Householder coefficients allow the reconstruction of the matrix
+ * \f$ Q \f$ in the Hessenberg decomposition from the packed data.
+ *
+ * \sa packedMatrix(), \ref Householder_Module "Householder module"
+ */
+ const CoeffVectorType& householderCoefficients() const
+ {
+ eigen_assert(m_isInitialized && "HessenbergDecomposition is not initialized.");
+ return m_hCoeffs;
+ }
+
+ /** \brief Returns the internal representation of the decomposition
+ *
+ * \returns a const reference to a matrix with the internal representation
+ * of the decomposition.
+ *
+ * \pre Either the constructor HessenbergDecomposition(const MatrixType&)
+ * or the member function compute(const MatrixType&) has been called
+ * before to compute the Hessenberg decomposition of a matrix.
+ *
+ * The returned matrix contains the following information:
+ * - the upper part and lower sub-diagonal represent the Hessenberg matrix H
+ * - the rest of the lower part contains the Householder vectors that, combined with
+ * Householder coefficients returned by householderCoefficients(),
+ * allows to reconstruct the matrix Q as
+ * \f$ Q = H_{N-1} \ldots H_1 H_0 \f$.
+ * Here, the matrices \f$ H_i \f$ are the Householder transformations
+ * \f$ H_i = (I - h_i v_i v_i^T) \f$
+ * where \f$ h_i \f$ is the \f$ i \f$th Householder coefficient and
+ * \f$ v_i \f$ is the Householder vector defined by
+ * \f$ v_i = [ 0, \ldots, 0, 1, M(i+2,i), \ldots, M(N-1,i) ]^T \f$
+ * with M the matrix returned by this function.
+ *
+ * See LAPACK for further details on this packed storage.
+ *
+ * Example: \include HessenbergDecomposition_packedMatrix.cpp
+ * Output: \verbinclude HessenbergDecomposition_packedMatrix.out
+ *
+ * \sa householderCoefficients()
+ */
+ const MatrixType& packedMatrix() const
+ {
+ eigen_assert(m_isInitialized && "HessenbergDecomposition is not initialized.");
+ return m_matrix;
+ }
+
+ /** \brief Reconstructs the orthogonal matrix Q in the decomposition
+ *
+ * \returns object representing the matrix Q
+ *
+ * \pre Either the constructor HessenbergDecomposition(const MatrixType&)
+ * or the member function compute(const MatrixType&) has been called
+ * before to compute the Hessenberg decomposition of a matrix.
+ *
+ * This function returns a light-weight object of template class
+ * HouseholderSequence. You can either apply it directly to a matrix or
+ * you can convert it to a matrix of type #MatrixType.
+ *
+ * \sa matrixH() for an example, class HouseholderSequence
+ */
+ HouseholderSequenceType matrixQ() const
+ {
+ eigen_assert(m_isInitialized && "HessenbergDecomposition is not initialized.");
+ return HouseholderSequenceType(m_matrix, m_hCoeffs.conjugate())
+ .setLength(m_matrix.rows() - 1)
+ .setShift(1);
+ }
+
+ /** \brief Constructs the Hessenberg matrix H in the decomposition
+ *
+ * \returns expression object representing the matrix H
+ *
+ * \pre Either the constructor HessenbergDecomposition(const MatrixType&)
+ * or the member function compute(const MatrixType&) has been called
+ * before to compute the Hessenberg decomposition of a matrix.
+ *
+ * The object returned by this function constructs the Hessenberg matrix H
+ * when it is assigned to a matrix or otherwise evaluated. The matrix H is
+ * constructed from the packed matrix as returned by packedMatrix(): The
+ * upper part (including the subdiagonal) of the packed matrix contains
+ * the matrix H. It may sometimes be better to directly use the packed
+ * matrix instead of constructing the matrix H.
+ *
+ * Example: \include HessenbergDecomposition_matrixH.cpp
+ * Output: \verbinclude HessenbergDecomposition_matrixH.out
+ *
+ * \sa matrixQ(), packedMatrix()
+ */
+ MatrixHReturnType matrixH() const
+ {
+ eigen_assert(m_isInitialized && "HessenbergDecomposition is not initialized.");
+ return MatrixHReturnType(*this);
+ }
+
+ private:
+
+ typedef Matrix<Scalar, 1, Size, Options | RowMajor, 1, MaxSize> VectorType;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ static void _compute(MatrixType& matA, CoeffVectorType& hCoeffs, VectorType& temp);
+
+ protected:
+ MatrixType m_matrix;
+ CoeffVectorType m_hCoeffs;
+ VectorType m_temp;
+ bool m_isInitialized;
+};
+
+/** \internal
+ * Performs a tridiagonal decomposition of \a matA in place.
+ *
+ * \param matA the input selfadjoint matrix
+ * \param hCoeffs returned Householder coefficients
+ *
+ * The result is written in the lower triangular part of \a matA.
+ *
+ * Implemented from Golub's "%Matrix Computations", algorithm 8.3.1.
+ *
+ * \sa packedMatrix()
+ */
+template<typename MatrixType>
+void HessenbergDecomposition<MatrixType>::_compute(MatrixType& matA, CoeffVectorType& hCoeffs, VectorType& temp)
+{
+ eigen_assert(matA.rows()==matA.cols());
+ Index n = matA.rows();
+ temp.resize(n);
+ for (Index i = 0; i<n-1; ++i)
+ {
+ // let's consider the vector v = i-th column starting at position i+1
+ Index remainingSize = n-i-1;
+ RealScalar beta;
+ Scalar h;
+ matA.col(i).tail(remainingSize).makeHouseholderInPlace(h, beta);
+ matA.col(i).coeffRef(i+1) = beta;
+ hCoeffs.coeffRef(i) = h;
+
+ // Apply similarity transformation to remaining columns,
+ // i.e., compute A = H A H'
+
+ // A = H A
+ matA.bottomRightCorner(remainingSize, remainingSize)
+ .applyHouseholderOnTheLeft(matA.col(i).tail(remainingSize-1), h, &temp.coeffRef(0));
+
+ // A = A H'
+ matA.rightCols(remainingSize)
+ .applyHouseholderOnTheRight(matA.col(i).tail(remainingSize-1).conjugate(), numext::conj(h), &temp.coeffRef(0));
+ }
+}
+
+namespace internal {
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+ *
+ *
+ * \brief Expression type for return value of HessenbergDecomposition::matrixH()
+ *
+ * \tparam MatrixType type of matrix in the Hessenberg decomposition
+ *
+ * Objects of this type represent the Hessenberg matrix in the Hessenberg
+ * decomposition of some matrix. The object holds a reference to the
+ * HessenbergDecomposition class until the it is assigned or evaluated for
+ * some other reason (the reference should remain valid during the life time
+ * of this object). This class is the return type of
+ * HessenbergDecomposition::matrixH(); there is probably no other use for this
+ * class.
+ */
+template<typename MatrixType> struct HessenbergDecompositionMatrixHReturnType
+: public ReturnByValue<HessenbergDecompositionMatrixHReturnType<MatrixType> >
+{
+ public:
+ /** \brief Constructor.
+ *
+ * \param[in] hess Hessenberg decomposition
+ */
+ HessenbergDecompositionMatrixHReturnType(const HessenbergDecomposition<MatrixType>& hess) : m_hess(hess) { }
+
+ /** \brief Hessenberg matrix in decomposition.
+ *
+ * \param[out] result Hessenberg matrix in decomposition \p hess which
+ * was passed to the constructor
+ */
+ template <typename ResultType>
+ inline void evalTo(ResultType& result) const
+ {
+ result = m_hess.packedMatrix();
+ Index n = result.rows();
+ if (n>2)
+ result.bottomLeftCorner(n-2, n-2).template triangularView<Lower>().setZero();
+ }
+
+ Index rows() const { return m_hess.packedMatrix().rows(); }
+ Index cols() const { return m_hess.packedMatrix().cols(); }
+
+ protected:
+ const HessenbergDecomposition<MatrixType>& m_hess;
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_HESSENBERGDECOMPOSITION_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
new file mode 100644
index 000000000..4fec8af0a
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
@@ -0,0 +1,160 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATRIXBASEEIGENVALUES_H
+#define EIGEN_MATRIXBASEEIGENVALUES_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename Derived, bool IsComplex>
+struct eigenvalues_selector
+{
+ // this is the implementation for the case IsComplex = true
+ static inline typename MatrixBase<Derived>::EigenvaluesReturnType const
+ run(const MatrixBase<Derived>& m)
+ {
+ typedef typename Derived::PlainObject PlainObject;
+ PlainObject m_eval(m);
+ return ComplexEigenSolver<PlainObject>(m_eval, false).eigenvalues();
+ }
+};
+
+template<typename Derived>
+struct eigenvalues_selector<Derived, false>
+{
+ static inline typename MatrixBase<Derived>::EigenvaluesReturnType const
+ run(const MatrixBase<Derived>& m)
+ {
+ typedef typename Derived::PlainObject PlainObject;
+ PlainObject m_eval(m);
+ return EigenSolver<PlainObject>(m_eval, false).eigenvalues();
+ }
+};
+
+} // end namespace internal
+
+/** \brief Computes the eigenvalues of a matrix
+ * \returns Column vector containing the eigenvalues.
+ *
+ * \eigenvalues_module
+ * This function computes the eigenvalues with the help of the EigenSolver
+ * class (for real matrices) or the ComplexEigenSolver class (for complex
+ * matrices).
+ *
+ * The eigenvalues are repeated according to their algebraic multiplicity,
+ * so there are as many eigenvalues as rows in the matrix.
+ *
+ * The SelfAdjointView class provides a better algorithm for selfadjoint
+ * matrices.
+ *
+ * Example: \include MatrixBase_eigenvalues.cpp
+ * Output: \verbinclude MatrixBase_eigenvalues.out
+ *
+ * \sa EigenSolver::eigenvalues(), ComplexEigenSolver::eigenvalues(),
+ * SelfAdjointView::eigenvalues()
+ */
+template<typename Derived>
+inline typename MatrixBase<Derived>::EigenvaluesReturnType
+MatrixBase<Derived>::eigenvalues() const
+{
+ typedef typename internal::traits<Derived>::Scalar Scalar;
+ return internal::eigenvalues_selector<Derived, NumTraits<Scalar>::IsComplex>::run(derived());
+}
+
+/** \brief Computes the eigenvalues of a matrix
+ * \returns Column vector containing the eigenvalues.
+ *
+ * \eigenvalues_module
+ * This function computes the eigenvalues with the help of the
+ * SelfAdjointEigenSolver class. The eigenvalues are repeated according to
+ * their algebraic multiplicity, so there are as many eigenvalues as rows in
+ * the matrix.
+ *
+ * Example: \include SelfAdjointView_eigenvalues.cpp
+ * Output: \verbinclude SelfAdjointView_eigenvalues.out
+ *
+ * \sa SelfAdjointEigenSolver::eigenvalues(), MatrixBase::eigenvalues()
+ */
+template<typename MatrixType, unsigned int UpLo>
+inline typename SelfAdjointView<MatrixType, UpLo>::EigenvaluesReturnType
+SelfAdjointView<MatrixType, UpLo>::eigenvalues() const
+{
+ typedef typename SelfAdjointView<MatrixType, UpLo>::PlainObject PlainObject;
+ PlainObject thisAsMatrix(*this);
+ return SelfAdjointEigenSolver<PlainObject>(thisAsMatrix, false).eigenvalues();
+}
+
+
+
+/** \brief Computes the L2 operator norm
+ * \returns Operator norm of the matrix.
+ *
+ * \eigenvalues_module
+ * This function computes the L2 operator norm of a matrix, which is also
+ * known as the spectral norm. The norm of a matrix \f$ A \f$ is defined to be
+ * \f[ \|A\|_2 = \max_x \frac{\|Ax\|_2}{\|x\|_2} \f]
+ * where the maximum is over all vectors and the norm on the right is the
+ * Euclidean vector norm. The norm equals the largest singular value, which is
+ * the square root of the largest eigenvalue of the positive semi-definite
+ * matrix \f$ A^*A \f$.
+ *
+ * The current implementation uses the eigenvalues of \f$ A^*A \f$, as computed
+ * by SelfAdjointView::eigenvalues(), to compute the operator norm of a
+ * matrix. The SelfAdjointView class provides a better algorithm for
+ * selfadjoint matrices.
+ *
+ * Example: \include MatrixBase_operatorNorm.cpp
+ * Output: \verbinclude MatrixBase_operatorNorm.out
+ *
+ * \sa SelfAdjointView::eigenvalues(), SelfAdjointView::operatorNorm()
+ */
+template<typename Derived>
+inline typename MatrixBase<Derived>::RealScalar
+MatrixBase<Derived>::operatorNorm() const
+{
+ using std::sqrt;
+ typename Derived::PlainObject m_eval(derived());
+ // FIXME if it is really guaranteed that the eigenvalues are already sorted,
+ // then we don't need to compute a maxCoeff() here, comparing the 1st and last ones is enough.
+ return sqrt((m_eval*m_eval.adjoint())
+ .eval()
+ .template selfadjointView<Lower>()
+ .eigenvalues()
+ .maxCoeff()
+ );
+}
+
+/** \brief Computes the L2 operator norm
+ * \returns Operator norm of the matrix.
+ *
+ * \eigenvalues_module
+ * This function computes the L2 operator norm of a self-adjoint matrix. For a
+ * self-adjoint matrix, the operator norm is the largest eigenvalue.
+ *
+ * The current implementation uses the eigenvalues of the matrix, as computed
+ * by eigenvalues(), to compute the operator norm of the matrix.
+ *
+ * Example: \include SelfAdjointView_operatorNorm.cpp
+ * Output: \verbinclude SelfAdjointView_operatorNorm.out
+ *
+ * \sa eigenvalues(), MatrixBase::operatorNorm()
+ */
+template<typename MatrixType, unsigned int UpLo>
+inline typename SelfAdjointView<MatrixType, UpLo>::RealScalar
+SelfAdjointView<MatrixType, UpLo>::operatorNorm() const
+{
+ return eigenvalues().cwiseAbs().maxCoeff();
+}
+
+} // end namespace Eigen
+
+#endif
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/RealQZ.h b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/RealQZ.h
new file mode 100644
index 000000000..b3a910dd9
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/RealQZ.h
@@ -0,0 +1,654 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Alexey Korepanov <kaikaikai@yandex.ru>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_REAL_QZ_H
+#define EIGEN_REAL_QZ_H
+
+namespace Eigen {
+
+ /** \eigenvalues_module \ingroup Eigenvalues_Module
+ *
+ *
+ * \class RealQZ
+ *
+ * \brief Performs a real QZ decomposition of a pair of square matrices
+ *
+ * \tparam _MatrixType the type of the matrix of which we are computing the
+ * real QZ decomposition; this is expected to be an instantiation of the
+ * Matrix class template.
+ *
+ * Given a real square matrices A and B, this class computes the real QZ
+ * decomposition: \f$ A = Q S Z \f$, \f$ B = Q T Z \f$ where Q and Z are
+ * real orthogonal matrixes, T is upper-triangular matrix, and S is upper
+ * quasi-triangular matrix. An orthogonal matrix is a matrix whose
+ * inverse is equal to its transpose, \f$ U^{-1} = U^T \f$. A quasi-triangular
+ * matrix is a block-triangular matrix whose diagonal consists of 1-by-1
+ * blocks and 2-by-2 blocks where further reduction is impossible due to
+ * complex eigenvalues.
+ *
+ * The eigenvalues of the pencil \f$ A - z B \f$ can be obtained from
+ * 1x1 and 2x2 blocks on the diagonals of S and T.
+ *
+ * Call the function compute() to compute the real QZ decomposition of a
+ * given pair of matrices. Alternatively, you can use the
+ * RealQZ(const MatrixType& B, const MatrixType& B, bool computeQZ)
+ * constructor which computes the real QZ decomposition at construction
+ * time. Once the decomposition is computed, you can use the matrixS(),
+ * matrixT(), matrixQ() and matrixZ() functions to retrieve the matrices
+ * S, T, Q and Z in the decomposition. If computeQZ==false, some time
+ * is saved by not computing matrices Q and Z.
+ *
+ * Example: \include RealQZ_compute.cpp
+ * Output: \include RealQZ_compute.out
+ *
+ * \note The implementation is based on the algorithm in "Matrix Computations"
+ * by Gene H. Golub and Charles F. Van Loan, and a paper "An algorithm for
+ * generalized eigenvalue problems" by C.B.Moler and G.W.Stewart.
+ *
+ * \sa class RealSchur, class ComplexSchur, class EigenSolver, class ComplexEigenSolver
+ */
+
+ template<typename _MatrixType> class RealQZ
+ {
+ public:
+ typedef _MatrixType MatrixType;
+ enum {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ Options = MatrixType::Options,
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+ typedef typename MatrixType::Scalar Scalar;
+ typedef std::complex<typename NumTraits<Scalar>::Real> ComplexScalar;
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
+
+ typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> EigenvalueType;
+ typedef Matrix<Scalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> ColumnVectorType;
+
+ /** \brief Default constructor.
+ *
+ * \param [in] size Positive integer, size of the matrix whose QZ decomposition will be computed.
+ *
+ * The default constructor is useful in cases in which the user intends to
+ * perform decompositions via compute(). The \p size parameter is only
+ * used as a hint. It is not an error to give a wrong \p size, but it may
+ * impair performance.
+ *
+ * \sa compute() for an example.
+ */
+ explicit RealQZ(Index size = RowsAtCompileTime==Dynamic ? 1 : RowsAtCompileTime) :
+ m_S(size, size),
+ m_T(size, size),
+ m_Q(size, size),
+ m_Z(size, size),
+ m_workspace(size*2),
+ m_maxIters(400),
+ m_isInitialized(false)
+ { }
+
+ /** \brief Constructor; computes real QZ decomposition of given matrices
+ *
+ * \param[in] A Matrix A.
+ * \param[in] B Matrix B.
+ * \param[in] computeQZ If false, A and Z are not computed.
+ *
+ * This constructor calls compute() to compute the QZ decomposition.
+ */
+ RealQZ(const MatrixType& A, const MatrixType& B, bool computeQZ = true) :
+ m_S(A.rows(),A.cols()),
+ m_T(A.rows(),A.cols()),
+ m_Q(A.rows(),A.cols()),
+ m_Z(A.rows(),A.cols()),
+ m_workspace(A.rows()*2),
+ m_maxIters(400),
+ m_isInitialized(false) {
+ compute(A, B, computeQZ);
+ }
+
+ /** \brief Returns matrix Q in the QZ decomposition.
+ *
+ * \returns A const reference to the matrix Q.
+ */
+ const MatrixType& matrixQ() const {
+ eigen_assert(m_isInitialized && "RealQZ is not initialized.");
+ eigen_assert(m_computeQZ && "The matrices Q and Z have not been computed during the QZ decomposition.");
+ return m_Q;
+ }
+
+ /** \brief Returns matrix Z in the QZ decomposition.
+ *
+ * \returns A const reference to the matrix Z.
+ */
+ const MatrixType& matrixZ() const {
+ eigen_assert(m_isInitialized && "RealQZ is not initialized.");
+ eigen_assert(m_computeQZ && "The matrices Q and Z have not been computed during the QZ decomposition.");
+ return m_Z;
+ }
+
+ /** \brief Returns matrix S in the QZ decomposition.
+ *
+ * \returns A const reference to the matrix S.
+ */
+ const MatrixType& matrixS() const {
+ eigen_assert(m_isInitialized && "RealQZ is not initialized.");
+ return m_S;
+ }
+
+ /** \brief Returns matrix S in the QZ decomposition.
+ *
+ * \returns A const reference to the matrix S.
+ */
+ const MatrixType& matrixT() const {
+ eigen_assert(m_isInitialized && "RealQZ is not initialized.");
+ return m_T;
+ }
+
+ /** \brief Computes QZ decomposition of given matrix.
+ *
+ * \param[in] A Matrix A.
+ * \param[in] B Matrix B.
+ * \param[in] computeQZ If false, A and Z are not computed.
+ * \returns Reference to \c *this
+ */
+ RealQZ& compute(const MatrixType& A, const MatrixType& B, bool computeQZ = true);
+
+ /** \brief Reports whether previous computation was successful.
+ *
+ * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
+ */
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "RealQZ is not initialized.");
+ return m_info;
+ }
+
+ /** \brief Returns number of performed QR-like iterations.
+ */
+ Index iterations() const
+ {
+ eigen_assert(m_isInitialized && "RealQZ is not initialized.");
+ return m_global_iter;
+ }
+
+ /** Sets the maximal number of iterations allowed to converge to one eigenvalue
+ * or decouple the problem.
+ */
+ RealQZ& setMaxIterations(Index maxIters)
+ {
+ m_maxIters = maxIters;
+ return *this;
+ }
+
+ private:
+
+ MatrixType m_S, m_T, m_Q, m_Z;
+ Matrix<Scalar,Dynamic,1> m_workspace;
+ ComputationInfo m_info;
+ Index m_maxIters;
+ bool m_isInitialized;
+ bool m_computeQZ;
+ Scalar m_normOfT, m_normOfS;
+ Index m_global_iter;
+
+ typedef Matrix<Scalar,3,1> Vector3s;
+ typedef Matrix<Scalar,2,1> Vector2s;
+ typedef Matrix<Scalar,2,2> Matrix2s;
+ typedef JacobiRotation<Scalar> JRs;
+
+ void hessenbergTriangular();
+ void computeNorms();
+ Index findSmallSubdiagEntry(Index iu);
+ Index findSmallDiagEntry(Index f, Index l);
+ void splitOffTwoRows(Index i);
+ void pushDownZero(Index z, Index f, Index l);
+ void step(Index f, Index l, Index iter);
+
+ }; // RealQZ
+
+ /** \internal Reduces S and T to upper Hessenberg - triangular form */
+ template<typename MatrixType>
+ void RealQZ<MatrixType>::hessenbergTriangular()
+ {
+
+ const Index dim = m_S.cols();
+
+ // perform QR decomposition of T, overwrite T with R, save Q
+ HouseholderQR<MatrixType> qrT(m_T);
+ m_T = qrT.matrixQR();
+ m_T.template triangularView<StrictlyLower>().setZero();
+ m_Q = qrT.householderQ();
+ // overwrite S with Q* S
+ m_S.applyOnTheLeft(m_Q.adjoint());
+ // init Z as Identity
+ if (m_computeQZ)
+ m_Z = MatrixType::Identity(dim,dim);
+ // reduce S to upper Hessenberg with Givens rotations
+ for (Index j=0; j<=dim-3; j++) {
+ for (Index i=dim-1; i>=j+2; i--) {
+ JRs G;
+ // kill S(i,j)
+ if(m_S.coeff(i,j) != 0)
+ {
+ G.makeGivens(m_S.coeff(i-1,j), m_S.coeff(i,j), &m_S.coeffRef(i-1, j));
+ m_S.coeffRef(i,j) = Scalar(0.0);
+ m_S.rightCols(dim-j-1).applyOnTheLeft(i-1,i,G.adjoint());
+ m_T.rightCols(dim-i+1).applyOnTheLeft(i-1,i,G.adjoint());
+ // update Q
+ if (m_computeQZ)
+ m_Q.applyOnTheRight(i-1,i,G);
+ }
+ // kill T(i,i-1)
+ if(m_T.coeff(i,i-1)!=Scalar(0))
+ {
+ G.makeGivens(m_T.coeff(i,i), m_T.coeff(i,i-1), &m_T.coeffRef(i,i));
+ m_T.coeffRef(i,i-1) = Scalar(0.0);
+ m_S.applyOnTheRight(i,i-1,G);
+ m_T.topRows(i).applyOnTheRight(i,i-1,G);
+ // update Z
+ if (m_computeQZ)
+ m_Z.applyOnTheLeft(i,i-1,G.adjoint());
+ }
+ }
+ }
+ }
+
+ /** \internal Computes vector L1 norms of S and T when in Hessenberg-Triangular form already */
+ template<typename MatrixType>
+ inline void RealQZ<MatrixType>::computeNorms()
+ {
+ const Index size = m_S.cols();
+ m_normOfS = Scalar(0.0);
+ m_normOfT = Scalar(0.0);
+ for (Index j = 0; j < size; ++j)
+ {
+ m_normOfS += m_S.col(j).segment(0, (std::min)(size,j+2)).cwiseAbs().sum();
+ m_normOfT += m_T.row(j).segment(j, size - j).cwiseAbs().sum();
+ }
+ }
+
+
+ /** \internal Look for single small sub-diagonal element S(res, res-1) and return res (or 0) */
+ template<typename MatrixType>
+ inline Index RealQZ<MatrixType>::findSmallSubdiagEntry(Index iu)
+ {
+ using std::abs;
+ Index res = iu;
+ while (res > 0)
+ {
+ Scalar s = abs(m_S.coeff(res-1,res-1)) + abs(m_S.coeff(res,res));
+ if (s == Scalar(0.0))
+ s = m_normOfS;
+ if (abs(m_S.coeff(res,res-1)) < NumTraits<Scalar>::epsilon() * s)
+ break;
+ res--;
+ }
+ return res;
+ }
+
+ /** \internal Look for single small diagonal element T(res, res) for res between f and l, and return res (or f-1) */
+ template<typename MatrixType>
+ inline Index RealQZ<MatrixType>::findSmallDiagEntry(Index f, Index l)
+ {
+ using std::abs;
+ Index res = l;
+ while (res >= f) {
+ if (abs(m_T.coeff(res,res)) <= NumTraits<Scalar>::epsilon() * m_normOfT)
+ break;
+ res--;
+ }
+ return res;
+ }
+
+ /** \internal decouple 2x2 diagonal block in rows i, i+1 if eigenvalues are real */
+ template<typename MatrixType>
+ inline void RealQZ<MatrixType>::splitOffTwoRows(Index i)
+ {
+ using std::abs;
+ using std::sqrt;
+ const Index dim=m_S.cols();
+ if (abs(m_S.coeff(i+1,i))==Scalar(0))
+ return;
+ Index j = findSmallDiagEntry(i,i+1);
+ if (j==i-1)
+ {
+ // block of (S T^{-1})
+ Matrix2s STi = m_T.template block<2,2>(i,i).template triangularView<Upper>().
+ template solve<OnTheRight>(m_S.template block<2,2>(i,i));
+ Scalar p = Scalar(0.5)*(STi(0,0)-STi(1,1));
+ Scalar q = p*p + STi(1,0)*STi(0,1);
+ if (q>=0) {
+ Scalar z = sqrt(q);
+ // one QR-like iteration for ABi - lambda I
+ // is enough - when we know exact eigenvalue in advance,
+ // convergence is immediate
+ JRs G;
+ if (p>=0)
+ G.makeGivens(p + z, STi(1,0));
+ else
+ G.makeGivens(p - z, STi(1,0));
+ m_S.rightCols(dim-i).applyOnTheLeft(i,i+1,G.adjoint());
+ m_T.rightCols(dim-i).applyOnTheLeft(i,i+1,G.adjoint());
+ // update Q
+ if (m_computeQZ)
+ m_Q.applyOnTheRight(i,i+1,G);
+
+ G.makeGivens(m_T.coeff(i+1,i+1), m_T.coeff(i+1,i));
+ m_S.topRows(i+2).applyOnTheRight(i+1,i,G);
+ m_T.topRows(i+2).applyOnTheRight(i+1,i,G);
+ // update Z
+ if (m_computeQZ)
+ m_Z.applyOnTheLeft(i+1,i,G.adjoint());
+
+ m_S.coeffRef(i+1,i) = Scalar(0.0);
+ m_T.coeffRef(i+1,i) = Scalar(0.0);
+ }
+ }
+ else
+ {
+ pushDownZero(j,i,i+1);
+ }
+ }
+
+ /** \internal use zero in T(z,z) to zero S(l,l-1), working in block f..l */
+ template<typename MatrixType>
+ inline void RealQZ<MatrixType>::pushDownZero(Index z, Index f, Index l)
+ {
+ JRs G;
+ const Index dim = m_S.cols();
+ for (Index zz=z; zz<l; zz++)
+ {
+ // push 0 down
+ Index firstColS = zz>f ? (zz-1) : zz;
+ G.makeGivens(m_T.coeff(zz, zz+1), m_T.coeff(zz+1, zz+1));
+ m_S.rightCols(dim-firstColS).applyOnTheLeft(zz,zz+1,G.adjoint());
+ m_T.rightCols(dim-zz).applyOnTheLeft(zz,zz+1,G.adjoint());
+ m_T.coeffRef(zz+1,zz+1) = Scalar(0.0);
+ // update Q
+ if (m_computeQZ)
+ m_Q.applyOnTheRight(zz,zz+1,G);
+ // kill S(zz+1, zz-1)
+ if (zz>f)
+ {
+ G.makeGivens(m_S.coeff(zz+1, zz), m_S.coeff(zz+1,zz-1));
+ m_S.topRows(zz+2).applyOnTheRight(zz, zz-1,G);
+ m_T.topRows(zz+1).applyOnTheRight(zz, zz-1,G);
+ m_S.coeffRef(zz+1,zz-1) = Scalar(0.0);
+ // update Z
+ if (m_computeQZ)
+ m_Z.applyOnTheLeft(zz,zz-1,G.adjoint());
+ }
+ }
+ // finally kill S(l,l-1)
+ G.makeGivens(m_S.coeff(l,l), m_S.coeff(l,l-1));
+ m_S.applyOnTheRight(l,l-1,G);
+ m_T.applyOnTheRight(l,l-1,G);
+ m_S.coeffRef(l,l-1)=Scalar(0.0);
+ // update Z
+ if (m_computeQZ)
+ m_Z.applyOnTheLeft(l,l-1,G.adjoint());
+ }
+
+ /** \internal QR-like iterative step for block f..l */
+ template<typename MatrixType>
+ inline void RealQZ<MatrixType>::step(Index f, Index l, Index iter)
+ {
+ using std::abs;
+ const Index dim = m_S.cols();
+
+ // x, y, z
+ Scalar x, y, z;
+ if (iter==10)
+ {
+ // Wilkinson ad hoc shift
+ const Scalar
+ a11=m_S.coeff(f+0,f+0), a12=m_S.coeff(f+0,f+1),
+ a21=m_S.coeff(f+1,f+0), a22=m_S.coeff(f+1,f+1), a32=m_S.coeff(f+2,f+1),
+ b12=m_T.coeff(f+0,f+1),
+ b11i=Scalar(1.0)/m_T.coeff(f+0,f+0),
+ b22i=Scalar(1.0)/m_T.coeff(f+1,f+1),
+ a87=m_S.coeff(l-1,l-2),
+ a98=m_S.coeff(l-0,l-1),
+ b77i=Scalar(1.0)/m_T.coeff(l-2,l-2),
+ b88i=Scalar(1.0)/m_T.coeff(l-1,l-1);
+ Scalar ss = abs(a87*b77i) + abs(a98*b88i),
+ lpl = Scalar(1.5)*ss,
+ ll = ss*ss;
+ x = ll + a11*a11*b11i*b11i - lpl*a11*b11i + a12*a21*b11i*b22i
+ - a11*a21*b12*b11i*b11i*b22i;
+ y = a11*a21*b11i*b11i - lpl*a21*b11i + a21*a22*b11i*b22i
+ - a21*a21*b12*b11i*b11i*b22i;
+ z = a21*a32*b11i*b22i;
+ }
+ else if (iter==16)
+ {
+ // another exceptional shift
+ x = m_S.coeff(f,f)/m_T.coeff(f,f)-m_S.coeff(l,l)/m_T.coeff(l,l) + m_S.coeff(l,l-1)*m_T.coeff(l-1,l) /
+ (m_T.coeff(l-1,l-1)*m_T.coeff(l,l));
+ y = m_S.coeff(f+1,f)/m_T.coeff(f,f);
+ z = 0;
+ }
+ else if (iter>23 && !(iter%8))
+ {
+ // extremely exceptional shift
+ x = internal::random<Scalar>(-1.0,1.0);
+ y = internal::random<Scalar>(-1.0,1.0);
+ z = internal::random<Scalar>(-1.0,1.0);
+ }
+ else
+ {
+ // Compute the shifts: (x,y,z,0...) = (AB^-1 - l1 I) (AB^-1 - l2 I) e1
+ // where l1 and l2 are the eigenvalues of the 2x2 matrix C = U V^-1 where
+ // U and V are 2x2 bottom right sub matrices of A and B. Thus:
+ // = AB^-1AB^-1 + l1 l2 I - (l1+l2)(AB^-1)
+ // = AB^-1AB^-1 + det(M) - tr(M)(AB^-1)
+ // Since we are only interested in having x, y, z with a correct ratio, we have:
+ const Scalar
+ a11 = m_S.coeff(f,f), a12 = m_S.coeff(f,f+1),
+ a21 = m_S.coeff(f+1,f), a22 = m_S.coeff(f+1,f+1),
+ a32 = m_S.coeff(f+2,f+1),
+
+ a88 = m_S.coeff(l-1,l-1), a89 = m_S.coeff(l-1,l),
+ a98 = m_S.coeff(l,l-1), a99 = m_S.coeff(l,l),
+
+ b11 = m_T.coeff(f,f), b12 = m_T.coeff(f,f+1),
+ b22 = m_T.coeff(f+1,f+1),
+
+ b88 = m_T.coeff(l-1,l-1), b89 = m_T.coeff(l-1,l),
+ b99 = m_T.coeff(l,l);
+
+ x = ( (a88/b88 - a11/b11)*(a99/b99 - a11/b11) - (a89/b99)*(a98/b88) + (a98/b88)*(b89/b99)*(a11/b11) ) * (b11/a21)
+ + a12/b22 - (a11/b11)*(b12/b22);
+ y = (a22/b22-a11/b11) - (a21/b11)*(b12/b22) - (a88/b88-a11/b11) - (a99/b99-a11/b11) + (a98/b88)*(b89/b99);
+ z = a32/b22;
+ }
+
+ JRs G;
+
+ for (Index k=f; k<=l-2; k++)
+ {
+ // variables for Householder reflections
+ Vector2s essential2;
+ Scalar tau, beta;
+
+ Vector3s hr(x,y,z);
+
+ // Q_k to annihilate S(k+1,k-1) and S(k+2,k-1)
+ hr.makeHouseholderInPlace(tau, beta);
+ essential2 = hr.template bottomRows<2>();
+ Index fc=(std::max)(k-1,Index(0)); // first col to update
+ m_S.template middleRows<3>(k).rightCols(dim-fc).applyHouseholderOnTheLeft(essential2, tau, m_workspace.data());
+ m_T.template middleRows<3>(k).rightCols(dim-fc).applyHouseholderOnTheLeft(essential2, tau, m_workspace.data());
+ if (m_computeQZ)
+ m_Q.template middleCols<3>(k).applyHouseholderOnTheRight(essential2, tau, m_workspace.data());
+ if (k>f)
+ m_S.coeffRef(k+2,k-1) = m_S.coeffRef(k+1,k-1) = Scalar(0.0);
+
+ // Z_{k1} to annihilate T(k+2,k+1) and T(k+2,k)
+ hr << m_T.coeff(k+2,k+2),m_T.coeff(k+2,k),m_T.coeff(k+2,k+1);
+ hr.makeHouseholderInPlace(tau, beta);
+ essential2 = hr.template bottomRows<2>();
+ {
+ Index lr = (std::min)(k+4,dim); // last row to update
+ Map<Matrix<Scalar,Dynamic,1> > tmp(m_workspace.data(),lr);
+ // S
+ tmp = m_S.template middleCols<2>(k).topRows(lr) * essential2;
+ tmp += m_S.col(k+2).head(lr);
+ m_S.col(k+2).head(lr) -= tau*tmp;
+ m_S.template middleCols<2>(k).topRows(lr) -= (tau*tmp) * essential2.adjoint();
+ // T
+ tmp = m_T.template middleCols<2>(k).topRows(lr) * essential2;
+ tmp += m_T.col(k+2).head(lr);
+ m_T.col(k+2).head(lr) -= tau*tmp;
+ m_T.template middleCols<2>(k).topRows(lr) -= (tau*tmp) * essential2.adjoint();
+ }
+ if (m_computeQZ)
+ {
+ // Z
+ Map<Matrix<Scalar,1,Dynamic> > tmp(m_workspace.data(),dim);
+ tmp = essential2.adjoint()*(m_Z.template middleRows<2>(k));
+ tmp += m_Z.row(k+2);
+ m_Z.row(k+2) -= tau*tmp;
+ m_Z.template middleRows<2>(k) -= essential2 * (tau*tmp);
+ }
+ m_T.coeffRef(k+2,k) = m_T.coeffRef(k+2,k+1) = Scalar(0.0);
+
+ // Z_{k2} to annihilate T(k+1,k)
+ G.makeGivens(m_T.coeff(k+1,k+1), m_T.coeff(k+1,k));
+ m_S.applyOnTheRight(k+1,k,G);
+ m_T.applyOnTheRight(k+1,k,G);
+ // update Z
+ if (m_computeQZ)
+ m_Z.applyOnTheLeft(k+1,k,G.adjoint());
+ m_T.coeffRef(k+1,k) = Scalar(0.0);
+
+ // update x,y,z
+ x = m_S.coeff(k+1,k);
+ y = m_S.coeff(k+2,k);
+ if (k < l-2)
+ z = m_S.coeff(k+3,k);
+ } // loop over k
+
+ // Q_{n-1} to annihilate y = S(l,l-2)
+ G.makeGivens(x,y);
+ m_S.applyOnTheLeft(l-1,l,G.adjoint());
+ m_T.applyOnTheLeft(l-1,l,G.adjoint());
+ if (m_computeQZ)
+ m_Q.applyOnTheRight(l-1,l,G);
+ m_S.coeffRef(l,l-2) = Scalar(0.0);
+
+ // Z_{n-1} to annihilate T(l,l-1)
+ G.makeGivens(m_T.coeff(l,l),m_T.coeff(l,l-1));
+ m_S.applyOnTheRight(l,l-1,G);
+ m_T.applyOnTheRight(l,l-1,G);
+ if (m_computeQZ)
+ m_Z.applyOnTheLeft(l,l-1,G.adjoint());
+ m_T.coeffRef(l,l-1) = Scalar(0.0);
+ }
+
+ template<typename MatrixType>
+ RealQZ<MatrixType>& RealQZ<MatrixType>::compute(const MatrixType& A_in, const MatrixType& B_in, bool computeQZ)
+ {
+
+ const Index dim = A_in.cols();
+
+ eigen_assert (A_in.rows()==dim && A_in.cols()==dim
+ && B_in.rows()==dim && B_in.cols()==dim
+ && "Need square matrices of the same dimension");
+
+ m_isInitialized = true;
+ m_computeQZ = computeQZ;
+ m_S = A_in; m_T = B_in;
+ m_workspace.resize(dim*2);
+ m_global_iter = 0;
+
+ // entrance point: hessenberg triangular decomposition
+ hessenbergTriangular();
+ // compute L1 vector norms of T, S into m_normOfS, m_normOfT
+ computeNorms();
+
+ Index l = dim-1,
+ f,
+ local_iter = 0;
+
+ while (l>0 && local_iter<m_maxIters)
+ {
+ f = findSmallSubdiagEntry(l);
+ // now rows and columns f..l (including) decouple from the rest of the problem
+ if (f>0) m_S.coeffRef(f,f-1) = Scalar(0.0);
+ if (f == l) // One root found
+ {
+ l--;
+ local_iter = 0;
+ }
+ else if (f == l-1) // Two roots found
+ {
+ splitOffTwoRows(f);
+ l -= 2;
+ local_iter = 0;
+ }
+ else // No convergence yet
+ {
+ // if there's zero on diagonal of T, we can isolate an eigenvalue with Givens rotations
+ Index z = findSmallDiagEntry(f,l);
+ if (z>=f)
+ {
+ // zero found
+ pushDownZero(z,f,l);
+ }
+ else
+ {
+ // We are sure now that S.block(f,f, l-f+1,l-f+1) is underuced upper-Hessenberg
+ // and T.block(f,f, l-f+1,l-f+1) is invertible uper-triangular, which allows to
+ // apply a QR-like iteration to rows and columns f..l.
+ step(f,l, local_iter);
+ local_iter++;
+ m_global_iter++;
+ }
+ }
+ }
+ // check if we converged before reaching iterations limit
+ m_info = (local_iter<m_maxIters) ? Success : NoConvergence;
+
+ // For each non triangular 2x2 diagonal block of S,
+ // reduce the respective 2x2 diagonal block of T to positive diagonal form using 2x2 SVD.
+ // This step is not mandatory for QZ, but it does help further extraction of eigenvalues/eigenvectors,
+ // and is in par with Lapack/Matlab QZ.
+ if(m_info==Success)
+ {
+ for(Index i=0; i<dim-1; ++i)
+ {
+ if(m_S.coeff(i+1, i) != Scalar(0))
+ {
+ JacobiRotation<Scalar> j_left, j_right;
+ internal::real_2x2_jacobi_svd(m_T, i, i+1, &j_left, &j_right);
+
+ // Apply resulting Jacobi rotations
+ m_S.applyOnTheLeft(i,i+1,j_left);
+ m_S.applyOnTheRight(i,i+1,j_right);
+ m_T.applyOnTheLeft(i,i+1,j_left);
+ m_T.applyOnTheRight(i,i+1,j_right);
+ m_T(i+1,i) = m_T(i,i+1) = Scalar(0);
+
+ if(m_computeQZ) {
+ m_Q.applyOnTheRight(i,i+1,j_left.transpose());
+ m_Z.applyOnTheLeft(i,i+1,j_right.transpose());
+ }
+
+ i++;
+ }
+ }
+ }
+
+ return *this;
+ } // end compute
+
+} // end namespace Eigen
+
+#endif //EIGEN_REAL_QZ
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/RealSchur.h b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/RealSchur.h
new file mode 100644
index 000000000..f5c86041d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/RealSchur.h
@@ -0,0 +1,546 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010,2012 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_REAL_SCHUR_H
+#define EIGEN_REAL_SCHUR_H
+
+#include "./HessenbergDecomposition.h"
+
+namespace Eigen {
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+ *
+ *
+ * \class RealSchur
+ *
+ * \brief Performs a real Schur decomposition of a square matrix
+ *
+ * \tparam _MatrixType the type of the matrix of which we are computing the
+ * real Schur decomposition; this is expected to be an instantiation of the
+ * Matrix class template.
+ *
+ * Given a real square matrix A, this class computes the real Schur
+ * decomposition: \f$ A = U T U^T \f$ where U is a real orthogonal matrix and
+ * T is a real quasi-triangular matrix. An orthogonal matrix is a matrix whose
+ * inverse is equal to its transpose, \f$ U^{-1} = U^T \f$. A quasi-triangular
+ * matrix is a block-triangular matrix whose diagonal consists of 1-by-1
+ * blocks and 2-by-2 blocks with complex eigenvalues. The eigenvalues of the
+ * blocks on the diagonal of T are the same as the eigenvalues of the matrix
+ * A, and thus the real Schur decomposition is used in EigenSolver to compute
+ * the eigendecomposition of a matrix.
+ *
+ * Call the function compute() to compute the real Schur decomposition of a
+ * given matrix. Alternatively, you can use the RealSchur(const MatrixType&, bool)
+ * constructor which computes the real Schur decomposition at construction
+ * time. Once the decomposition is computed, you can use the matrixU() and
+ * matrixT() functions to retrieve the matrices U and T in the decomposition.
+ *
+ * The documentation of RealSchur(const MatrixType&, bool) contains an example
+ * of the typical use of this class.
+ *
+ * \note The implementation is adapted from
+ * <a href="http://math.nist.gov/javanumerics/jama/">JAMA</a> (public domain).
+ * Their code is based on EISPACK.
+ *
+ * \sa class ComplexSchur, class EigenSolver, class ComplexEigenSolver
+ */
+template<typename _MatrixType> class RealSchur
+{
+ public:
+ typedef _MatrixType MatrixType;
+ enum {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ Options = MatrixType::Options,
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+ typedef typename MatrixType::Scalar Scalar;
+ typedef std::complex<typename NumTraits<Scalar>::Real> ComplexScalar;
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
+
+ typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> EigenvalueType;
+ typedef Matrix<Scalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> ColumnVectorType;
+
+ /** \brief Default constructor.
+ *
+ * \param [in] size Positive integer, size of the matrix whose Schur decomposition will be computed.
+ *
+ * The default constructor is useful in cases in which the user intends to
+ * perform decompositions via compute(). The \p size parameter is only
+ * used as a hint. It is not an error to give a wrong \p size, but it may
+ * impair performance.
+ *
+ * \sa compute() for an example.
+ */
+ explicit RealSchur(Index size = RowsAtCompileTime==Dynamic ? 1 : RowsAtCompileTime)
+ : m_matT(size, size),
+ m_matU(size, size),
+ m_workspaceVector(size),
+ m_hess(size),
+ m_isInitialized(false),
+ m_matUisUptodate(false),
+ m_maxIters(-1)
+ { }
+
+ /** \brief Constructor; computes real Schur decomposition of given matrix.
+ *
+ * \param[in] matrix Square matrix whose Schur decomposition is to be computed.
+ * \param[in] computeU If true, both T and U are computed; if false, only T is computed.
+ *
+ * This constructor calls compute() to compute the Schur decomposition.
+ *
+ * Example: \include RealSchur_RealSchur_MatrixType.cpp
+ * Output: \verbinclude RealSchur_RealSchur_MatrixType.out
+ */
+ template<typename InputType>
+ explicit RealSchur(const EigenBase<InputType>& matrix, bool computeU = true)
+ : m_matT(matrix.rows(),matrix.cols()),
+ m_matU(matrix.rows(),matrix.cols()),
+ m_workspaceVector(matrix.rows()),
+ m_hess(matrix.rows()),
+ m_isInitialized(false),
+ m_matUisUptodate(false),
+ m_maxIters(-1)
+ {
+ compute(matrix.derived(), computeU);
+ }
+
+ /** \brief Returns the orthogonal matrix in the Schur decomposition.
+ *
+ * \returns A const reference to the matrix U.
+ *
+ * \pre Either the constructor RealSchur(const MatrixType&, bool) or the
+ * member function compute(const MatrixType&, bool) has been called before
+ * to compute the Schur decomposition of a matrix, and \p computeU was set
+ * to true (the default value).
+ *
+ * \sa RealSchur(const MatrixType&, bool) for an example
+ */
+ const MatrixType& matrixU() const
+ {
+ eigen_assert(m_isInitialized && "RealSchur is not initialized.");
+ eigen_assert(m_matUisUptodate && "The matrix U has not been computed during the RealSchur decomposition.");
+ return m_matU;
+ }
+
+ /** \brief Returns the quasi-triangular matrix in the Schur decomposition.
+ *
+ * \returns A const reference to the matrix T.
+ *
+ * \pre Either the constructor RealSchur(const MatrixType&, bool) or the
+ * member function compute(const MatrixType&, bool) has been called before
+ * to compute the Schur decomposition of a matrix.
+ *
+ * \sa RealSchur(const MatrixType&, bool) for an example
+ */
+ const MatrixType& matrixT() const
+ {
+ eigen_assert(m_isInitialized && "RealSchur is not initialized.");
+ return m_matT;
+ }
+
+ /** \brief Computes Schur decomposition of given matrix.
+ *
+ * \param[in] matrix Square matrix whose Schur decomposition is to be computed.
+ * \param[in] computeU If true, both T and U are computed; if false, only T is computed.
+ * \returns Reference to \c *this
+ *
+ * The Schur decomposition is computed by first reducing the matrix to
+ * Hessenberg form using the class HessenbergDecomposition. The Hessenberg
+ * matrix is then reduced to triangular form by performing Francis QR
+ * iterations with implicit double shift. The cost of computing the Schur
+ * decomposition depends on the number of iterations; as a rough guide, it
+ * may be taken to be \f$25n^3\f$ flops if \a computeU is true and
+ * \f$10n^3\f$ flops if \a computeU is false.
+ *
+ * Example: \include RealSchur_compute.cpp
+ * Output: \verbinclude RealSchur_compute.out
+ *
+ * \sa compute(const MatrixType&, bool, Index)
+ */
+ template<typename InputType>
+ RealSchur& compute(const EigenBase<InputType>& matrix, bool computeU = true);
+
+ /** \brief Computes Schur decomposition of a Hessenberg matrix H = Z T Z^T
+ * \param[in] matrixH Matrix in Hessenberg form H
+ * \param[in] matrixQ orthogonal matrix Q that transform a matrix A to H : A = Q H Q^T
+ * \param computeU Computes the matriX U of the Schur vectors
+ * \return Reference to \c *this
+ *
+ * This routine assumes that the matrix is already reduced in Hessenberg form matrixH
+ * using either the class HessenbergDecomposition or another mean.
+ * It computes the upper quasi-triangular matrix T of the Schur decomposition of H
+ * When computeU is true, this routine computes the matrix U such that
+ * A = U T U^T = (QZ) T (QZ)^T = Q H Q^T where A is the initial matrix
+ *
+ * NOTE Q is referenced if computeU is true; so, if the initial orthogonal matrix
+ * is not available, the user should give an identity matrix (Q.setIdentity())
+ *
+ * \sa compute(const MatrixType&, bool)
+ */
+ template<typename HessMatrixType, typename OrthMatrixType>
+ RealSchur& computeFromHessenberg(const HessMatrixType& matrixH, const OrthMatrixType& matrixQ, bool computeU);
+ /** \brief Reports whether previous computation was successful.
+ *
+ * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
+ */
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "RealSchur is not initialized.");
+ return m_info;
+ }
+
+ /** \brief Sets the maximum number of iterations allowed.
+ *
+ * If not specified by the user, the maximum number of iterations is m_maxIterationsPerRow times the size
+ * of the matrix.
+ */
+ RealSchur& setMaxIterations(Index maxIters)
+ {
+ m_maxIters = maxIters;
+ return *this;
+ }
+
+ /** \brief Returns the maximum number of iterations. */
+ Index getMaxIterations()
+ {
+ return m_maxIters;
+ }
+
+ /** \brief Maximum number of iterations per row.
+ *
+ * If not otherwise specified, the maximum number of iterations is this number times the size of the
+ * matrix. It is currently set to 40.
+ */
+ static const int m_maxIterationsPerRow = 40;
+
+ private:
+
+ MatrixType m_matT;
+ MatrixType m_matU;
+ ColumnVectorType m_workspaceVector;
+ HessenbergDecomposition<MatrixType> m_hess;
+ ComputationInfo m_info;
+ bool m_isInitialized;
+ bool m_matUisUptodate;
+ Index m_maxIters;
+
+ typedef Matrix<Scalar,3,1> Vector3s;
+
+ Scalar computeNormOfT();
+ Index findSmallSubdiagEntry(Index iu);
+ void splitOffTwoRows(Index iu, bool computeU, const Scalar& exshift);
+ void computeShift(Index iu, Index iter, Scalar& exshift, Vector3s& shiftInfo);
+ void initFrancisQRStep(Index il, Index iu, const Vector3s& shiftInfo, Index& im, Vector3s& firstHouseholderVector);
+ void performFrancisQRStep(Index il, Index im, Index iu, bool computeU, const Vector3s& firstHouseholderVector, Scalar* workspace);
+};
+
+
+template<typename MatrixType>
+template<typename InputType>
+RealSchur<MatrixType>& RealSchur<MatrixType>::compute(const EigenBase<InputType>& matrix, bool computeU)
+{
+ const Scalar considerAsZero = (std::numeric_limits<Scalar>::min)();
+
+ eigen_assert(matrix.cols() == matrix.rows());
+ Index maxIters = m_maxIters;
+ if (maxIters == -1)
+ maxIters = m_maxIterationsPerRow * matrix.rows();
+
+ Scalar scale = matrix.derived().cwiseAbs().maxCoeff();
+ if(scale<considerAsZero)
+ {
+ m_matT.setZero(matrix.rows(),matrix.cols());
+ if(computeU)
+ m_matU.setIdentity(matrix.rows(),matrix.cols());
+ m_info = Success;
+ m_isInitialized = true;
+ m_matUisUptodate = computeU;
+ return *this;
+ }
+
+ // Step 1. Reduce to Hessenberg form
+ m_hess.compute(matrix.derived()/scale);
+
+ // Step 2. Reduce to real Schur form
+ computeFromHessenberg(m_hess.matrixH(), m_hess.matrixQ(), computeU);
+
+ m_matT *= scale;
+
+ return *this;
+}
+template<typename MatrixType>
+template<typename HessMatrixType, typename OrthMatrixType>
+RealSchur<MatrixType>& RealSchur<MatrixType>::computeFromHessenberg(const HessMatrixType& matrixH, const OrthMatrixType& matrixQ, bool computeU)
+{
+ using std::abs;
+
+ m_matT = matrixH;
+ if(computeU)
+ m_matU = matrixQ;
+
+ Index maxIters = m_maxIters;
+ if (maxIters == -1)
+ maxIters = m_maxIterationsPerRow * matrixH.rows();
+ m_workspaceVector.resize(m_matT.cols());
+ Scalar* workspace = &m_workspaceVector.coeffRef(0);
+
+ // The matrix m_matT is divided in three parts.
+ // Rows 0,...,il-1 are decoupled from the rest because m_matT(il,il-1) is zero.
+ // Rows il,...,iu is the part we are working on (the active window).
+ // Rows iu+1,...,end are already brought in triangular form.
+ Index iu = m_matT.cols() - 1;
+ Index iter = 0; // iteration count for current eigenvalue
+ Index totalIter = 0; // iteration count for whole matrix
+ Scalar exshift(0); // sum of exceptional shifts
+ Scalar norm = computeNormOfT();
+
+ if(norm!=0)
+ {
+ while (iu >= 0)
+ {
+ Index il = findSmallSubdiagEntry(iu);
+
+ // Check for convergence
+ if (il == iu) // One root found
+ {
+ m_matT.coeffRef(iu,iu) = m_matT.coeff(iu,iu) + exshift;
+ if (iu > 0)
+ m_matT.coeffRef(iu, iu-1) = Scalar(0);
+ iu--;
+ iter = 0;
+ }
+ else if (il == iu-1) // Two roots found
+ {
+ splitOffTwoRows(iu, computeU, exshift);
+ iu -= 2;
+ iter = 0;
+ }
+ else // No convergence yet
+ {
+ // The firstHouseholderVector vector has to be initialized to something to get rid of a silly GCC warning (-O1 -Wall -DNDEBUG )
+ Vector3s firstHouseholderVector(0,0,0), shiftInfo;
+ computeShift(iu, iter, exshift, shiftInfo);
+ iter = iter + 1;
+ totalIter = totalIter + 1;
+ if (totalIter > maxIters) break;
+ Index im;
+ initFrancisQRStep(il, iu, shiftInfo, im, firstHouseholderVector);
+ performFrancisQRStep(il, im, iu, computeU, firstHouseholderVector, workspace);
+ }
+ }
+ }
+ if(totalIter <= maxIters)
+ m_info = Success;
+ else
+ m_info = NoConvergence;
+
+ m_isInitialized = true;
+ m_matUisUptodate = computeU;
+ return *this;
+}
+
+/** \internal Computes and returns vector L1 norm of T */
+template<typename MatrixType>
+inline typename MatrixType::Scalar RealSchur<MatrixType>::computeNormOfT()
+{
+ const Index size = m_matT.cols();
+ // FIXME to be efficient the following would requires a triangular reduxion code
+ // Scalar norm = m_matT.upper().cwiseAbs().sum()
+ // + m_matT.bottomLeftCorner(size-1,size-1).diagonal().cwiseAbs().sum();
+ Scalar norm(0);
+ for (Index j = 0; j < size; ++j)
+ norm += m_matT.col(j).segment(0, (std::min)(size,j+2)).cwiseAbs().sum();
+ return norm;
+}
+
+/** \internal Look for single small sub-diagonal element and returns its index */
+template<typename MatrixType>
+inline Index RealSchur<MatrixType>::findSmallSubdiagEntry(Index iu)
+{
+ using std::abs;
+ Index res = iu;
+ while (res > 0)
+ {
+ Scalar s = abs(m_matT.coeff(res-1,res-1)) + abs(m_matT.coeff(res,res));
+ if (abs(m_matT.coeff(res,res-1)) <= NumTraits<Scalar>::epsilon() * s)
+ break;
+ res--;
+ }
+ return res;
+}
+
+/** \internal Update T given that rows iu-1 and iu decouple from the rest. */
+template<typename MatrixType>
+inline void RealSchur<MatrixType>::splitOffTwoRows(Index iu, bool computeU, const Scalar& exshift)
+{
+ using std::sqrt;
+ using std::abs;
+ const Index size = m_matT.cols();
+
+ // The eigenvalues of the 2x2 matrix [a b; c d] are
+ // trace +/- sqrt(discr/4) where discr = tr^2 - 4*det, tr = a + d, det = ad - bc
+ Scalar p = Scalar(0.5) * (m_matT.coeff(iu-1,iu-1) - m_matT.coeff(iu,iu));
+ Scalar q = p * p + m_matT.coeff(iu,iu-1) * m_matT.coeff(iu-1,iu); // q = tr^2 / 4 - det = discr/4
+ m_matT.coeffRef(iu,iu) += exshift;
+ m_matT.coeffRef(iu-1,iu-1) += exshift;
+
+ if (q >= Scalar(0)) // Two real eigenvalues
+ {
+ Scalar z = sqrt(abs(q));
+ JacobiRotation<Scalar> rot;
+ if (p >= Scalar(0))
+ rot.makeGivens(p + z, m_matT.coeff(iu, iu-1));
+ else
+ rot.makeGivens(p - z, m_matT.coeff(iu, iu-1));
+
+ m_matT.rightCols(size-iu+1).applyOnTheLeft(iu-1, iu, rot.adjoint());
+ m_matT.topRows(iu+1).applyOnTheRight(iu-1, iu, rot);
+ m_matT.coeffRef(iu, iu-1) = Scalar(0);
+ if (computeU)
+ m_matU.applyOnTheRight(iu-1, iu, rot);
+ }
+
+ if (iu > 1)
+ m_matT.coeffRef(iu-1, iu-2) = Scalar(0);
+}
+
+/** \internal Form shift in shiftInfo, and update exshift if an exceptional shift is performed. */
+template<typename MatrixType>
+inline void RealSchur<MatrixType>::computeShift(Index iu, Index iter, Scalar& exshift, Vector3s& shiftInfo)
+{
+ using std::sqrt;
+ using std::abs;
+ shiftInfo.coeffRef(0) = m_matT.coeff(iu,iu);
+ shiftInfo.coeffRef(1) = m_matT.coeff(iu-1,iu-1);
+ shiftInfo.coeffRef(2) = m_matT.coeff(iu,iu-1) * m_matT.coeff(iu-1,iu);
+
+ // Wilkinson's original ad hoc shift
+ if (iter == 10)
+ {
+ exshift += shiftInfo.coeff(0);
+ for (Index i = 0; i <= iu; ++i)
+ m_matT.coeffRef(i,i) -= shiftInfo.coeff(0);
+ Scalar s = abs(m_matT.coeff(iu,iu-1)) + abs(m_matT.coeff(iu-1,iu-2));
+ shiftInfo.coeffRef(0) = Scalar(0.75) * s;
+ shiftInfo.coeffRef(1) = Scalar(0.75) * s;
+ shiftInfo.coeffRef(2) = Scalar(-0.4375) * s * s;
+ }
+
+ // MATLAB's new ad hoc shift
+ if (iter == 30)
+ {
+ Scalar s = (shiftInfo.coeff(1) - shiftInfo.coeff(0)) / Scalar(2.0);
+ s = s * s + shiftInfo.coeff(2);
+ if (s > Scalar(0))
+ {
+ s = sqrt(s);
+ if (shiftInfo.coeff(1) < shiftInfo.coeff(0))
+ s = -s;
+ s = s + (shiftInfo.coeff(1) - shiftInfo.coeff(0)) / Scalar(2.0);
+ s = shiftInfo.coeff(0) - shiftInfo.coeff(2) / s;
+ exshift += s;
+ for (Index i = 0; i <= iu; ++i)
+ m_matT.coeffRef(i,i) -= s;
+ shiftInfo.setConstant(Scalar(0.964));
+ }
+ }
+}
+
+/** \internal Compute index im at which Francis QR step starts and the first Householder vector. */
+template<typename MatrixType>
+inline void RealSchur<MatrixType>::initFrancisQRStep(Index il, Index iu, const Vector3s& shiftInfo, Index& im, Vector3s& firstHouseholderVector)
+{
+ using std::abs;
+ Vector3s& v = firstHouseholderVector; // alias to save typing
+
+ for (im = iu-2; im >= il; --im)
+ {
+ const Scalar Tmm = m_matT.coeff(im,im);
+ const Scalar r = shiftInfo.coeff(0) - Tmm;
+ const Scalar s = shiftInfo.coeff(1) - Tmm;
+ v.coeffRef(0) = (r * s - shiftInfo.coeff(2)) / m_matT.coeff(im+1,im) + m_matT.coeff(im,im+1);
+ v.coeffRef(1) = m_matT.coeff(im+1,im+1) - Tmm - r - s;
+ v.coeffRef(2) = m_matT.coeff(im+2,im+1);
+ if (im == il) {
+ break;
+ }
+ const Scalar lhs = m_matT.coeff(im,im-1) * (abs(v.coeff(1)) + abs(v.coeff(2)));
+ const Scalar rhs = v.coeff(0) * (abs(m_matT.coeff(im-1,im-1)) + abs(Tmm) + abs(m_matT.coeff(im+1,im+1)));
+ if (abs(lhs) < NumTraits<Scalar>::epsilon() * rhs)
+ break;
+ }
+}
+
+/** \internal Perform a Francis QR step involving rows il:iu and columns im:iu. */
+template<typename MatrixType>
+inline void RealSchur<MatrixType>::performFrancisQRStep(Index il, Index im, Index iu, bool computeU, const Vector3s& firstHouseholderVector, Scalar* workspace)
+{
+ eigen_assert(im >= il);
+ eigen_assert(im <= iu-2);
+
+ const Index size = m_matT.cols();
+
+ for (Index k = im; k <= iu-2; ++k)
+ {
+ bool firstIteration = (k == im);
+
+ Vector3s v;
+ if (firstIteration)
+ v = firstHouseholderVector;
+ else
+ v = m_matT.template block<3,1>(k,k-1);
+
+ Scalar tau, beta;
+ Matrix<Scalar, 2, 1> ess;
+ v.makeHouseholder(ess, tau, beta);
+
+ if (beta != Scalar(0)) // if v is not zero
+ {
+ if (firstIteration && k > il)
+ m_matT.coeffRef(k,k-1) = -m_matT.coeff(k,k-1);
+ else if (!firstIteration)
+ m_matT.coeffRef(k,k-1) = beta;
+
+ // These Householder transformations form the O(n^3) part of the algorithm
+ m_matT.block(k, k, 3, size-k).applyHouseholderOnTheLeft(ess, tau, workspace);
+ m_matT.block(0, k, (std::min)(iu,k+3) + 1, 3).applyHouseholderOnTheRight(ess, tau, workspace);
+ if (computeU)
+ m_matU.block(0, k, size, 3).applyHouseholderOnTheRight(ess, tau, workspace);
+ }
+ }
+
+ Matrix<Scalar, 2, 1> v = m_matT.template block<2,1>(iu-1, iu-2);
+ Scalar tau, beta;
+ Matrix<Scalar, 1, 1> ess;
+ v.makeHouseholder(ess, tau, beta);
+
+ if (beta != Scalar(0)) // if v is not zero
+ {
+ m_matT.coeffRef(iu-1, iu-2) = beta;
+ m_matT.block(iu-1, iu-1, 2, size-iu+1).applyHouseholderOnTheLeft(ess, tau, workspace);
+ m_matT.block(0, iu-1, iu+1, 2).applyHouseholderOnTheRight(ess, tau, workspace);
+ if (computeU)
+ m_matU.block(0, iu-1, size, 2).applyHouseholderOnTheRight(ess, tau, workspace);
+ }
+
+ // clean up pollution due to round-off errors
+ for (Index i = im+2; i <= iu; ++i)
+ {
+ m_matT.coeffRef(i,i-2) = Scalar(0);
+ if (i > im+2)
+ m_matT.coeffRef(i,i-3) = Scalar(0);
+ }
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_REAL_SCHUR_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h
new file mode 100644
index 000000000..2c2251715
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h
@@ -0,0 +1,77 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ * Content : Eigen bindings to LAPACKe
+ * Real Schur needed to real unsymmetrical eigenvalues/eigenvectors.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_REAL_SCHUR_LAPACKE_H
+#define EIGEN_REAL_SCHUR_LAPACKE_H
+
+namespace Eigen {
+
+/** \internal Specialization for the data types supported by LAPACKe */
+
+#define EIGEN_LAPACKE_SCHUR_REAL(EIGTYPE, LAPACKE_TYPE, LAPACKE_PREFIX, LAPACKE_PREFIX_U, EIGCOLROW, LAPACKE_COLROW) \
+template<> template<typename InputType> inline \
+RealSchur<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >& \
+RealSchur<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >::compute(const EigenBase<InputType>& matrix, bool computeU) \
+{ \
+ eigen_assert(matrix.cols() == matrix.rows()); \
+\
+ lapack_int n = internal::convert_index<lapack_int>(matrix.cols()), sdim, info; \
+ lapack_int matrix_order = LAPACKE_COLROW; \
+ char jobvs, sort='N'; \
+ LAPACK_##LAPACKE_PREFIX_U##_SELECT2 select = 0; \
+ jobvs = (computeU) ? 'V' : 'N'; \
+ m_matU.resize(n, n); \
+ lapack_int ldvs = internal::convert_index<lapack_int>(m_matU.outerStride()); \
+ m_matT = matrix; \
+ lapack_int lda = internal::convert_index<lapack_int>(m_matT.outerStride()); \
+ Matrix<EIGTYPE, Dynamic, Dynamic> wr, wi; \
+ wr.resize(n, 1); wi.resize(n, 1); \
+ info = LAPACKE_##LAPACKE_PREFIX##gees( matrix_order, jobvs, sort, select, n, (LAPACKE_TYPE*)m_matT.data(), lda, &sdim, (LAPACKE_TYPE*)wr.data(), (LAPACKE_TYPE*)wi.data(), (LAPACKE_TYPE*)m_matU.data(), ldvs ); \
+ if(info == 0) \
+ m_info = Success; \
+ else \
+ m_info = NoConvergence; \
+\
+ m_isInitialized = true; \
+ m_matUisUptodate = computeU; \
+ return *this; \
+\
+}
+
+EIGEN_LAPACKE_SCHUR_REAL(double, double, d, D, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_LAPACKE_SCHUR_REAL(float, float, s, S, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_LAPACKE_SCHUR_REAL(double, double, d, D, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_LAPACKE_SCHUR_REAL(float, float, s, S, RowMajor, LAPACK_ROW_MAJOR)
+
+} // end namespace Eigen
+
+#endif // EIGEN_REAL_SCHUR_LAPACKE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
new file mode 100644
index 000000000..9ddd553f2
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
@@ -0,0 +1,870 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELFADJOINTEIGENSOLVER_H
+#define EIGEN_SELFADJOINTEIGENSOLVER_H
+
+#include "./Tridiagonalization.h"
+
+namespace Eigen {
+
+template<typename _MatrixType>
+class GeneralizedSelfAdjointEigenSolver;
+
+namespace internal {
+template<typename SolverType,int Size,bool IsComplex> struct direct_selfadjoint_eigenvalues;
+template<typename MatrixType, typename DiagType, typename SubDiagType>
+ComputationInfo computeFromTridiagonal_impl(DiagType& diag, SubDiagType& subdiag, const Index maxIterations, bool computeEigenvectors, MatrixType& eivec);
+}
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+ *
+ *
+ * \class SelfAdjointEigenSolver
+ *
+ * \brief Computes eigenvalues and eigenvectors of selfadjoint matrices
+ *
+ * \tparam _MatrixType the type of the matrix of which we are computing the
+ * eigendecomposition; this is expected to be an instantiation of the Matrix
+ * class template.
+ *
+ * A matrix \f$ A \f$ is selfadjoint if it equals its adjoint. For real
+ * matrices, this means that the matrix is symmetric: it equals its
+ * transpose. This class computes the eigenvalues and eigenvectors of a
+ * selfadjoint matrix. These are the scalars \f$ \lambda \f$ and vectors
+ * \f$ v \f$ such that \f$ Av = \lambda v \f$. The eigenvalues of a
+ * selfadjoint matrix are always real. If \f$ D \f$ is a diagonal matrix with
+ * the eigenvalues on the diagonal, and \f$ V \f$ is a matrix with the
+ * eigenvectors as its columns, then \f$ A = V D V^{-1} \f$ (for selfadjoint
+ * matrices, the matrix \f$ V \f$ is always invertible). This is called the
+ * eigendecomposition.
+ *
+ * The algorithm exploits the fact that the matrix is selfadjoint, making it
+ * faster and more accurate than the general purpose eigenvalue algorithms
+ * implemented in EigenSolver and ComplexEigenSolver.
+ *
+ * Only the \b lower \b triangular \b part of the input matrix is referenced.
+ *
+ * Call the function compute() to compute the eigenvalues and eigenvectors of
+ * a given matrix. Alternatively, you can use the
+ * SelfAdjointEigenSolver(const MatrixType&, int) constructor which computes
+ * the eigenvalues and eigenvectors at construction time. Once the eigenvalue
+ * and eigenvectors are computed, they can be retrieved with the eigenvalues()
+ * and eigenvectors() functions.
+ *
+ * The documentation for SelfAdjointEigenSolver(const MatrixType&, int)
+ * contains an example of the typical use of this class.
+ *
+ * To solve the \em generalized eigenvalue problem \f$ Av = \lambda Bv \f$ and
+ * the likes, see the class GeneralizedSelfAdjointEigenSolver.
+ *
+ * \sa MatrixBase::eigenvalues(), class EigenSolver, class ComplexEigenSolver
+ */
+template<typename _MatrixType> class SelfAdjointEigenSolver
+{
+ public:
+
+ typedef _MatrixType MatrixType;
+ enum {
+ Size = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ Options = MatrixType::Options,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+
+ /** \brief Scalar type for matrices of type \p _MatrixType. */
+ typedef typename MatrixType::Scalar Scalar;
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
+
+ typedef Matrix<Scalar,Size,Size,ColMajor,MaxColsAtCompileTime,MaxColsAtCompileTime> EigenvectorsType;
+
+ /** \brief Real scalar type for \p _MatrixType.
+ *
+ * This is just \c Scalar if #Scalar is real (e.g., \c float or
+ * \c double), and the type of the real part of \c Scalar if #Scalar is
+ * complex.
+ */
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+
+ friend struct internal::direct_selfadjoint_eigenvalues<SelfAdjointEigenSolver,Size,NumTraits<Scalar>::IsComplex>;
+
+ /** \brief Type for vector of eigenvalues as returned by eigenvalues().
+ *
+ * This is a column vector with entries of type #RealScalar.
+ * The length of the vector is the size of \p _MatrixType.
+ */
+ typedef typename internal::plain_col_type<MatrixType, RealScalar>::type RealVectorType;
+ typedef Tridiagonalization<MatrixType> TridiagonalizationType;
+ typedef typename TridiagonalizationType::SubDiagonalType SubDiagonalType;
+
+ /** \brief Default constructor for fixed-size matrices.
+ *
+ * The default constructor is useful in cases in which the user intends to
+ * perform decompositions via compute(). This constructor
+ * can only be used if \p _MatrixType is a fixed-size matrix; use
+ * SelfAdjointEigenSolver(Index) for dynamic-size matrices.
+ *
+ * Example: \include SelfAdjointEigenSolver_SelfAdjointEigenSolver.cpp
+ * Output: \verbinclude SelfAdjointEigenSolver_SelfAdjointEigenSolver.out
+ */
+ EIGEN_DEVICE_FUNC
+ SelfAdjointEigenSolver()
+ : m_eivec(),
+ m_eivalues(),
+ m_subdiag(),
+ m_isInitialized(false)
+ { }
+
+ /** \brief Constructor, pre-allocates memory for dynamic-size matrices.
+ *
+ * \param [in] size Positive integer, size of the matrix whose
+ * eigenvalues and eigenvectors will be computed.
+ *
+ * This constructor is useful for dynamic-size matrices, when the user
+ * intends to perform decompositions via compute(). The \p size
+ * parameter is only used as a hint. It is not an error to give a wrong
+ * \p size, but it may impair performance.
+ *
+ * \sa compute() for an example
+ */
+ EIGEN_DEVICE_FUNC
+ explicit SelfAdjointEigenSolver(Index size)
+ : m_eivec(size, size),
+ m_eivalues(size),
+ m_subdiag(size > 1 ? size - 1 : 1),
+ m_isInitialized(false)
+ {}
+
+ /** \brief Constructor; computes eigendecomposition of given matrix.
+ *
+ * \param[in] matrix Selfadjoint matrix whose eigendecomposition is to
+ * be computed. Only the lower triangular part of the matrix is referenced.
+ * \param[in] options Can be #ComputeEigenvectors (default) or #EigenvaluesOnly.
+ *
+ * This constructor calls compute(const MatrixType&, int) to compute the
+ * eigenvalues of the matrix \p matrix. The eigenvectors are computed if
+ * \p options equals #ComputeEigenvectors.
+ *
+ * Example: \include SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp
+ * Output: \verbinclude SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.out
+ *
+ * \sa compute(const MatrixType&, int)
+ */
+ template<typename InputType>
+ EIGEN_DEVICE_FUNC
+ explicit SelfAdjointEigenSolver(const EigenBase<InputType>& matrix, int options = ComputeEigenvectors)
+ : m_eivec(matrix.rows(), matrix.cols()),
+ m_eivalues(matrix.cols()),
+ m_subdiag(matrix.rows() > 1 ? matrix.rows() - 1 : 1),
+ m_isInitialized(false)
+ {
+ compute(matrix.derived(), options);
+ }
+
+ /** \brief Computes eigendecomposition of given matrix.
+ *
+ * \param[in] matrix Selfadjoint matrix whose eigendecomposition is to
+ * be computed. Only the lower triangular part of the matrix is referenced.
+ * \param[in] options Can be #ComputeEigenvectors (default) or #EigenvaluesOnly.
+ * \returns Reference to \c *this
+ *
+ * This function computes the eigenvalues of \p matrix. The eigenvalues()
+ * function can be used to retrieve them. If \p options equals #ComputeEigenvectors,
+ * then the eigenvectors are also computed and can be retrieved by
+ * calling eigenvectors().
+ *
+ * This implementation uses a symmetric QR algorithm. The matrix is first
+ * reduced to tridiagonal form using the Tridiagonalization class. The
+ * tridiagonal matrix is then brought to diagonal form with implicit
+ * symmetric QR steps with Wilkinson shift. Details can be found in
+ * Section 8.3 of Golub \& Van Loan, <i>%Matrix Computations</i>.
+ *
+ * The cost of the computation is about \f$ 9n^3 \f$ if the eigenvectors
+ * are required and \f$ 4n^3/3 \f$ if they are not required.
+ *
+ * This method reuses the memory in the SelfAdjointEigenSolver object that
+ * was allocated when the object was constructed, if the size of the
+ * matrix does not change.
+ *
+ * Example: \include SelfAdjointEigenSolver_compute_MatrixType.cpp
+ * Output: \verbinclude SelfAdjointEigenSolver_compute_MatrixType.out
+ *
+ * \sa SelfAdjointEigenSolver(const MatrixType&, int)
+ */
+ template<typename InputType>
+ EIGEN_DEVICE_FUNC
+ SelfAdjointEigenSolver& compute(const EigenBase<InputType>& matrix, int options = ComputeEigenvectors);
+
+ /** \brief Computes eigendecomposition of given matrix using a closed-form algorithm
+ *
+ * This is a variant of compute(const MatrixType&, int options) which
+ * directly solves the underlying polynomial equation.
+ *
+ * Currently only 2x2 and 3x3 matrices for which the sizes are known at compile time are supported (e.g., Matrix3d).
+ *
+ * This method is usually significantly faster than the QR iterative algorithm
+ * but it might also be less accurate. It is also worth noting that
+ * for 3x3 matrices it involves trigonometric operations which are
+ * not necessarily available for all scalar types.
+ *
+ * For the 3x3 case, we observed the following worst case relative error regarding the eigenvalues:
+ * - double: 1e-8
+ * - float: 1e-3
+ *
+ * \sa compute(const MatrixType&, int options)
+ */
+ EIGEN_DEVICE_FUNC
+ SelfAdjointEigenSolver& computeDirect(const MatrixType& matrix, int options = ComputeEigenvectors);
+
+ /**
+ *\brief Computes the eigen decomposition from a tridiagonal symmetric matrix
+ *
+ * \param[in] diag The vector containing the diagonal of the matrix.
+ * \param[in] subdiag The subdiagonal of the matrix.
+ * \param[in] options Can be #ComputeEigenvectors (default) or #EigenvaluesOnly.
+ * \returns Reference to \c *this
+ *
+ * This function assumes that the matrix has been reduced to tridiagonal form.
+ *
+ * \sa compute(const MatrixType&, int) for more information
+ */
+ SelfAdjointEigenSolver& computeFromTridiagonal(const RealVectorType& diag, const SubDiagonalType& subdiag , int options=ComputeEigenvectors);
+
+ /** \brief Returns the eigenvectors of given matrix.
+ *
+ * \returns A const reference to the matrix whose columns are the eigenvectors.
+ *
+ * \pre The eigenvectors have been computed before.
+ *
+ * Column \f$ k \f$ of the returned matrix is an eigenvector corresponding
+ * to eigenvalue number \f$ k \f$ as returned by eigenvalues(). The
+ * eigenvectors are normalized to have (Euclidean) norm equal to one. If
+ * this object was used to solve the eigenproblem for the selfadjoint
+ * matrix \f$ A \f$, then the matrix returned by this function is the
+ * matrix \f$ V \f$ in the eigendecomposition \f$ A = V D V^{-1} \f$.
+ *
+ * Example: \include SelfAdjointEigenSolver_eigenvectors.cpp
+ * Output: \verbinclude SelfAdjointEigenSolver_eigenvectors.out
+ *
+ * \sa eigenvalues()
+ */
+ EIGEN_DEVICE_FUNC
+ const EigenvectorsType& eigenvectors() const
+ {
+ eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
+ eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+ return m_eivec;
+ }
+
+ /** \brief Returns the eigenvalues of given matrix.
+ *
+ * \returns A const reference to the column vector containing the eigenvalues.
+ *
+ * \pre The eigenvalues have been computed before.
+ *
+ * The eigenvalues are repeated according to their algebraic multiplicity,
+ * so there are as many eigenvalues as rows in the matrix. The eigenvalues
+ * are sorted in increasing order.
+ *
+ * Example: \include SelfAdjointEigenSolver_eigenvalues.cpp
+ * Output: \verbinclude SelfAdjointEigenSolver_eigenvalues.out
+ *
+ * \sa eigenvectors(), MatrixBase::eigenvalues()
+ */
+ EIGEN_DEVICE_FUNC
+ const RealVectorType& eigenvalues() const
+ {
+ eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
+ return m_eivalues;
+ }
+
+ /** \brief Computes the positive-definite square root of the matrix.
+ *
+ * \returns the positive-definite square root of the matrix
+ *
+ * \pre The eigenvalues and eigenvectors of a positive-definite matrix
+ * have been computed before.
+ *
+ * The square root of a positive-definite matrix \f$ A \f$ is the
+ * positive-definite matrix whose square equals \f$ A \f$. This function
+ * uses the eigendecomposition \f$ A = V D V^{-1} \f$ to compute the
+ * square root as \f$ A^{1/2} = V D^{1/2} V^{-1} \f$.
+ *
+ * Example: \include SelfAdjointEigenSolver_operatorSqrt.cpp
+ * Output: \verbinclude SelfAdjointEigenSolver_operatorSqrt.out
+ *
+ * \sa operatorInverseSqrt(), <a href="unsupported/group__MatrixFunctions__Module.html">MatrixFunctions Module</a>
+ */
+ EIGEN_DEVICE_FUNC
+ MatrixType operatorSqrt() const
+ {
+ eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
+ eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+ return m_eivec * m_eivalues.cwiseSqrt().asDiagonal() * m_eivec.adjoint();
+ }
+
+ /** \brief Computes the inverse square root of the matrix.
+ *
+ * \returns the inverse positive-definite square root of the matrix
+ *
+ * \pre The eigenvalues and eigenvectors of a positive-definite matrix
+ * have been computed before.
+ *
+ * This function uses the eigendecomposition \f$ A = V D V^{-1} \f$ to
+ * compute the inverse square root as \f$ V D^{-1/2} V^{-1} \f$. This is
+ * cheaper than first computing the square root with operatorSqrt() and
+ * then its inverse with MatrixBase::inverse().
+ *
+ * Example: \include SelfAdjointEigenSolver_operatorInverseSqrt.cpp
+ * Output: \verbinclude SelfAdjointEigenSolver_operatorInverseSqrt.out
+ *
+ * \sa operatorSqrt(), MatrixBase::inverse(), <a href="unsupported/group__MatrixFunctions__Module.html">MatrixFunctions Module</a>
+ */
+ EIGEN_DEVICE_FUNC
+ MatrixType operatorInverseSqrt() const
+ {
+ eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
+ eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+ return m_eivec * m_eivalues.cwiseInverse().cwiseSqrt().asDiagonal() * m_eivec.adjoint();
+ }
+
+ /** \brief Reports whether previous computation was successful.
+ *
+ * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
+ */
+ EIGEN_DEVICE_FUNC
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
+ return m_info;
+ }
+
+ /** \brief Maximum number of iterations.
+ *
+ * The algorithm terminates if it does not converge within m_maxIterations * n iterations, where n
+ * denotes the size of the matrix. This value is currently set to 30 (copied from LAPACK).
+ */
+ static const int m_maxIterations = 30;
+
+ protected:
+ static void check_template_parameters()
+ {
+ EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+ }
+
+ EigenvectorsType m_eivec;
+ RealVectorType m_eivalues;
+ typename TridiagonalizationType::SubDiagonalType m_subdiag;
+ ComputationInfo m_info;
+ bool m_isInitialized;
+ bool m_eigenvectorsOk;
+};
+
+namespace internal {
+/** \internal
+ *
+ * \eigenvalues_module \ingroup Eigenvalues_Module
+ *
+ * Performs a QR step on a tridiagonal symmetric matrix represented as a
+ * pair of two vectors \a diag and \a subdiag.
+ *
+ * \param diag the diagonal part of the input selfadjoint tridiagonal matrix
+ * \param subdiag the sub-diagonal part of the input selfadjoint tridiagonal matrix
+ * \param start starting index of the submatrix to work on
+ * \param end last+1 index of the submatrix to work on
+ * \param matrixQ pointer to the column-major matrix holding the eigenvectors, can be 0
+ * \param n size of the input matrix
+ *
+ * For compilation efficiency reasons, this procedure does not use eigen expression
+ * for its arguments.
+ *
+ * Implemented from Golub's "Matrix Computations", algorithm 8.3.2:
+ * "implicit symmetric QR step with Wilkinson shift"
+ */
+template<int StorageOrder,typename RealScalar, typename Scalar, typename Index>
+EIGEN_DEVICE_FUNC
+static void tridiagonal_qr_step(RealScalar* diag, RealScalar* subdiag, Index start, Index end, Scalar* matrixQ, Index n);
+}
+
+template<typename MatrixType>
+template<typename InputType>
+EIGEN_DEVICE_FUNC
+SelfAdjointEigenSolver<MatrixType>& SelfAdjointEigenSolver<MatrixType>
+::compute(const EigenBase<InputType>& a_matrix, int options)
+{
+ check_template_parameters();
+
+ const InputType &matrix(a_matrix.derived());
+
+ using std::abs;
+ eigen_assert(matrix.cols() == matrix.rows());
+ eigen_assert((options&~(EigVecMask|GenEigMask))==0
+ && (options&EigVecMask)!=EigVecMask
+ && "invalid option parameter");
+ bool computeEigenvectors = (options&ComputeEigenvectors)==ComputeEigenvectors;
+ Index n = matrix.cols();
+ m_eivalues.resize(n,1);
+
+ if(n==1)
+ {
+ m_eivec = matrix;
+ m_eivalues.coeffRef(0,0) = numext::real(m_eivec.coeff(0,0));
+ if(computeEigenvectors)
+ m_eivec.setOnes(n,n);
+ m_info = Success;
+ m_isInitialized = true;
+ m_eigenvectorsOk = computeEigenvectors;
+ return *this;
+ }
+
+ // declare some aliases
+ RealVectorType& diag = m_eivalues;
+ EigenvectorsType& mat = m_eivec;
+
+ // map the matrix coefficients to [-1:1] to avoid over- and underflow.
+ mat = matrix.template triangularView<Lower>();
+ RealScalar scale = mat.cwiseAbs().maxCoeff();
+ if(scale==RealScalar(0)) scale = RealScalar(1);
+ mat.template triangularView<Lower>() /= scale;
+ m_subdiag.resize(n-1);
+ internal::tridiagonalization_inplace(mat, diag, m_subdiag, computeEigenvectors);
+
+ m_info = internal::computeFromTridiagonal_impl(diag, m_subdiag, m_maxIterations, computeEigenvectors, m_eivec);
+
+ // scale back the eigen values
+ m_eivalues *= scale;
+
+ m_isInitialized = true;
+ m_eigenvectorsOk = computeEigenvectors;
+ return *this;
+}
+
+template<typename MatrixType>
+SelfAdjointEigenSolver<MatrixType>& SelfAdjointEigenSolver<MatrixType>
+::computeFromTridiagonal(const RealVectorType& diag, const SubDiagonalType& subdiag , int options)
+{
+ //TODO : Add an option to scale the values beforehand
+ bool computeEigenvectors = (options&ComputeEigenvectors)==ComputeEigenvectors;
+
+ m_eivalues = diag;
+ m_subdiag = subdiag;
+ if (computeEigenvectors)
+ {
+ m_eivec.setIdentity(diag.size(), diag.size());
+ }
+ m_info = internal::computeFromTridiagonal_impl(m_eivalues, m_subdiag, m_maxIterations, computeEigenvectors, m_eivec);
+
+ m_isInitialized = true;
+ m_eigenvectorsOk = computeEigenvectors;
+ return *this;
+}
+
+namespace internal {
+/**
+ * \internal
+ * \brief Compute the eigendecomposition from a tridiagonal matrix
+ *
+ * \param[in,out] diag : On input, the diagonal of the matrix, on output the eigenvalues
+ * \param[in,out] subdiag : The subdiagonal part of the matrix (entries are modified during the decomposition)
+ * \param[in] maxIterations : the maximum number of iterations
+ * \param[in] computeEigenvectors : whether the eigenvectors have to be computed or not
+ * \param[out] eivec : The matrix to store the eigenvectors if computeEigenvectors==true. Must be allocated on input.
+ * \returns \c Success or \c NoConvergence
+ */
+template<typename MatrixType, typename DiagType, typename SubDiagType>
+ComputationInfo computeFromTridiagonal_impl(DiagType& diag, SubDiagType& subdiag, const Index maxIterations, bool computeEigenvectors, MatrixType& eivec)
+{
+ using std::abs;
+
+ ComputationInfo info;
+ typedef typename MatrixType::Scalar Scalar;
+
+ Index n = diag.size();
+ Index end = n-1;
+ Index start = 0;
+ Index iter = 0; // total number of iterations
+
+ typedef typename DiagType::RealScalar RealScalar;
+ const RealScalar considerAsZero = (std::numeric_limits<RealScalar>::min)();
+ const RealScalar precision = RealScalar(2)*NumTraits<RealScalar>::epsilon();
+
+ while (end>0)
+ {
+ for (Index i = start; i<end; ++i)
+ if (internal::isMuchSmallerThan(abs(subdiag[i]),(abs(diag[i])+abs(diag[i+1])),precision) || abs(subdiag[i]) <= considerAsZero)
+ subdiag[i] = 0;
+
+ // find the largest unreduced block
+ while (end>0 && subdiag[end-1]==RealScalar(0))
+ {
+ end--;
+ }
+ if (end<=0)
+ break;
+
+ // if we spent too many iterations, we give up
+ iter++;
+ if(iter > maxIterations * n) break;
+
+ start = end - 1;
+ while (start>0 && subdiag[start-1]!=0)
+ start--;
+
+ internal::tridiagonal_qr_step<MatrixType::Flags&RowMajorBit ? RowMajor : ColMajor>(diag.data(), subdiag.data(), start, end, computeEigenvectors ? eivec.data() : (Scalar*)0, n);
+ }
+ if (iter <= maxIterations * n)
+ info = Success;
+ else
+ info = NoConvergence;
+
+ // Sort eigenvalues and corresponding vectors.
+ // TODO make the sort optional ?
+ // TODO use a better sort algorithm !!
+ if (info == Success)
+ {
+ for (Index i = 0; i < n-1; ++i)
+ {
+ Index k;
+ diag.segment(i,n-i).minCoeff(&k);
+ if (k > 0)
+ {
+ std::swap(diag[i], diag[k+i]);
+ if(computeEigenvectors)
+ eivec.col(i).swap(eivec.col(k+i));
+ }
+ }
+ }
+ return info;
+}
+
+template<typename SolverType,int Size,bool IsComplex> struct direct_selfadjoint_eigenvalues
+{
+ EIGEN_DEVICE_FUNC
+ static inline void run(SolverType& eig, const typename SolverType::MatrixType& A, int options)
+ { eig.compute(A,options); }
+};
+
+template<typename SolverType> struct direct_selfadjoint_eigenvalues<SolverType,3,false>
+{
+ typedef typename SolverType::MatrixType MatrixType;
+ typedef typename SolverType::RealVectorType VectorType;
+ typedef typename SolverType::Scalar Scalar;
+ typedef typename SolverType::EigenvectorsType EigenvectorsType;
+
+
+ /** \internal
+ * Computes the roots of the characteristic polynomial of \a m.
+ * For numerical stability m.trace() should be near zero and to avoid over- or underflow m should be normalized.
+ */
+ EIGEN_DEVICE_FUNC
+ static inline void computeRoots(const MatrixType& m, VectorType& roots)
+ {
+ EIGEN_USING_STD_MATH(sqrt)
+ EIGEN_USING_STD_MATH(atan2)
+ EIGEN_USING_STD_MATH(cos)
+ EIGEN_USING_STD_MATH(sin)
+ const Scalar s_inv3 = Scalar(1)/Scalar(3);
+ const Scalar s_sqrt3 = sqrt(Scalar(3));
+
+ // The characteristic equation is x^3 - c2*x^2 + c1*x - c0 = 0. The
+ // eigenvalues are the roots to this equation, all guaranteed to be
+ // real-valued, because the matrix is symmetric.
+ Scalar c0 = m(0,0)*m(1,1)*m(2,2) + Scalar(2)*m(1,0)*m(2,0)*m(2,1) - m(0,0)*m(2,1)*m(2,1) - m(1,1)*m(2,0)*m(2,0) - m(2,2)*m(1,0)*m(1,0);
+ Scalar c1 = m(0,0)*m(1,1) - m(1,0)*m(1,0) + m(0,0)*m(2,2) - m(2,0)*m(2,0) + m(1,1)*m(2,2) - m(2,1)*m(2,1);
+ Scalar c2 = m(0,0) + m(1,1) + m(2,2);
+
+ // Construct the parameters used in classifying the roots of the equation
+ // and in solving the equation for the roots in closed form.
+ Scalar c2_over_3 = c2*s_inv3;
+ Scalar a_over_3 = (c2*c2_over_3 - c1)*s_inv3;
+ a_over_3 = numext::maxi(a_over_3, Scalar(0));
+
+ Scalar half_b = Scalar(0.5)*(c0 + c2_over_3*(Scalar(2)*c2_over_3*c2_over_3 - c1));
+
+ Scalar q = a_over_3*a_over_3*a_over_3 - half_b*half_b;
+ q = numext::maxi(q, Scalar(0));
+
+ // Compute the eigenvalues by solving for the roots of the polynomial.
+ Scalar rho = sqrt(a_over_3);
+ Scalar theta = atan2(sqrt(q),half_b)*s_inv3; // since sqrt(q) > 0, atan2 is in [0, pi] and theta is in [0, pi/3]
+ Scalar cos_theta = cos(theta);
+ Scalar sin_theta = sin(theta);
+ // roots are already sorted, since cos is monotonically decreasing on [0, pi]
+ roots(0) = c2_over_3 - rho*(cos_theta + s_sqrt3*sin_theta); // == 2*rho*cos(theta+2pi/3)
+ roots(1) = c2_over_3 - rho*(cos_theta - s_sqrt3*sin_theta); // == 2*rho*cos(theta+ pi/3)
+ roots(2) = c2_over_3 + Scalar(2)*rho*cos_theta;
+ }
+
+ EIGEN_DEVICE_FUNC
+ static inline bool extract_kernel(MatrixType& mat, Ref<VectorType> res, Ref<VectorType> representative)
+ {
+ using std::abs;
+ Index i0;
+ // Find non-zero column i0 (by construction, there must exist a non zero coefficient on the diagonal):
+ mat.diagonal().cwiseAbs().maxCoeff(&i0);
+ // mat.col(i0) is a good candidate for an orthogonal vector to the current eigenvector,
+ // so let's save it:
+ representative = mat.col(i0);
+ Scalar n0, n1;
+ VectorType c0, c1;
+ n0 = (c0 = representative.cross(mat.col((i0+1)%3))).squaredNorm();
+ n1 = (c1 = representative.cross(mat.col((i0+2)%3))).squaredNorm();
+ if(n0>n1) res = c0/std::sqrt(n0);
+ else res = c1/std::sqrt(n1);
+
+ return true;
+ }
+
+ EIGEN_DEVICE_FUNC
+ static inline void run(SolverType& solver, const MatrixType& mat, int options)
+ {
+ eigen_assert(mat.cols() == 3 && mat.cols() == mat.rows());
+ eigen_assert((options&~(EigVecMask|GenEigMask))==0
+ && (options&EigVecMask)!=EigVecMask
+ && "invalid option parameter");
+ bool computeEigenvectors = (options&ComputeEigenvectors)==ComputeEigenvectors;
+
+ EigenvectorsType& eivecs = solver.m_eivec;
+ VectorType& eivals = solver.m_eivalues;
+
+ // Shift the matrix to the mean eigenvalue and map the matrix coefficients to [-1:1] to avoid over- and underflow.
+ Scalar shift = mat.trace() / Scalar(3);
+ // TODO Avoid this copy. Currently it is necessary to suppress bogus values when determining maxCoeff and for computing the eigenvectors later
+ MatrixType scaledMat = mat.template selfadjointView<Lower>();
+ scaledMat.diagonal().array() -= shift;
+ Scalar scale = scaledMat.cwiseAbs().maxCoeff();
+ if(scale > 0) scaledMat /= scale; // TODO for scale==0 we could save the remaining operations
+
+ // compute the eigenvalues
+ computeRoots(scaledMat,eivals);
+
+ // compute the eigenvectors
+ if(computeEigenvectors)
+ {
+ if((eivals(2)-eivals(0))<=Eigen::NumTraits<Scalar>::epsilon())
+ {
+ // All three eigenvalues are numerically the same
+ eivecs.setIdentity();
+ }
+ else
+ {
+ MatrixType tmp;
+ tmp = scaledMat;
+
+ // Compute the eigenvector of the most distinct eigenvalue
+ Scalar d0 = eivals(2) - eivals(1);
+ Scalar d1 = eivals(1) - eivals(0);
+ Index k(0), l(2);
+ if(d0 > d1)
+ {
+ numext::swap(k,l);
+ d0 = d1;
+ }
+
+ // Compute the eigenvector of index k
+ {
+ tmp.diagonal().array () -= eivals(k);
+ // By construction, 'tmp' is of rank 2, and its kernel corresponds to the respective eigenvector.
+ extract_kernel(tmp, eivecs.col(k), eivecs.col(l));
+ }
+
+ // Compute eigenvector of index l
+ if(d0<=2*Eigen::NumTraits<Scalar>::epsilon()*d1)
+ {
+ // If d0 is too small, then the two other eigenvalues are numerically the same,
+ // and thus we only have to ortho-normalize the near orthogonal vector we saved above.
+ eivecs.col(l) -= eivecs.col(k).dot(eivecs.col(l))*eivecs.col(l);
+ eivecs.col(l).normalize();
+ }
+ else
+ {
+ tmp = scaledMat;
+ tmp.diagonal().array () -= eivals(l);
+
+ VectorType dummy;
+ extract_kernel(tmp, eivecs.col(l), dummy);
+ }
+
+ // Compute last eigenvector from the other two
+ eivecs.col(1) = eivecs.col(2).cross(eivecs.col(0)).normalized();
+ }
+ }
+
+ // Rescale back to the original size.
+ eivals *= scale;
+ eivals.array() += shift;
+
+ solver.m_info = Success;
+ solver.m_isInitialized = true;
+ solver.m_eigenvectorsOk = computeEigenvectors;
+ }
+};
+
+// 2x2 direct eigenvalues decomposition, code from Hauke Heibel
+template<typename SolverType>
+struct direct_selfadjoint_eigenvalues<SolverType,2,false>
+{
+ typedef typename SolverType::MatrixType MatrixType;
+ typedef typename SolverType::RealVectorType VectorType;
+ typedef typename SolverType::Scalar Scalar;
+ typedef typename SolverType::EigenvectorsType EigenvectorsType;
+
+ EIGEN_DEVICE_FUNC
+ static inline void computeRoots(const MatrixType& m, VectorType& roots)
+ {
+ using std::sqrt;
+ const Scalar t0 = Scalar(0.5) * sqrt( numext::abs2(m(0,0)-m(1,1)) + Scalar(4)*numext::abs2(m(1,0)));
+ const Scalar t1 = Scalar(0.5) * (m(0,0) + m(1,1));
+ roots(0) = t1 - t0;
+ roots(1) = t1 + t0;
+ }
+
+ EIGEN_DEVICE_FUNC
+ static inline void run(SolverType& solver, const MatrixType& mat, int options)
+ {
+ EIGEN_USING_STD_MATH(sqrt);
+ EIGEN_USING_STD_MATH(abs);
+
+ eigen_assert(mat.cols() == 2 && mat.cols() == mat.rows());
+ eigen_assert((options&~(EigVecMask|GenEigMask))==0
+ && (options&EigVecMask)!=EigVecMask
+ && "invalid option parameter");
+ bool computeEigenvectors = (options&ComputeEigenvectors)==ComputeEigenvectors;
+
+ EigenvectorsType& eivecs = solver.m_eivec;
+ VectorType& eivals = solver.m_eivalues;
+
+ // Shift the matrix to the mean eigenvalue and map the matrix coefficients to [-1:1] to avoid over- and underflow.
+ Scalar shift = mat.trace() / Scalar(2);
+ MatrixType scaledMat = mat;
+ scaledMat.coeffRef(0,1) = mat.coeff(1,0);
+ scaledMat.diagonal().array() -= shift;
+ Scalar scale = scaledMat.cwiseAbs().maxCoeff();
+ if(scale > Scalar(0))
+ scaledMat /= scale;
+
+ // Compute the eigenvalues
+ computeRoots(scaledMat,eivals);
+
+ // compute the eigen vectors
+ if(computeEigenvectors)
+ {
+ if((eivals(1)-eivals(0))<=abs(eivals(1))*Eigen::NumTraits<Scalar>::epsilon())
+ {
+ eivecs.setIdentity();
+ }
+ else
+ {
+ scaledMat.diagonal().array () -= eivals(1);
+ Scalar a2 = numext::abs2(scaledMat(0,0));
+ Scalar c2 = numext::abs2(scaledMat(1,1));
+ Scalar b2 = numext::abs2(scaledMat(1,0));
+ if(a2>c2)
+ {
+ eivecs.col(1) << -scaledMat(1,0), scaledMat(0,0);
+ eivecs.col(1) /= sqrt(a2+b2);
+ }
+ else
+ {
+ eivecs.col(1) << -scaledMat(1,1), scaledMat(1,0);
+ eivecs.col(1) /= sqrt(c2+b2);
+ }
+
+ eivecs.col(0) << eivecs.col(1).unitOrthogonal();
+ }
+ }
+
+ // Rescale back to the original size.
+ eivals *= scale;
+ eivals.array() += shift;
+
+ solver.m_info = Success;
+ solver.m_isInitialized = true;
+ solver.m_eigenvectorsOk = computeEigenvectors;
+ }
+};
+
+}
+
+template<typename MatrixType>
+EIGEN_DEVICE_FUNC
+SelfAdjointEigenSolver<MatrixType>& SelfAdjointEigenSolver<MatrixType>
+::computeDirect(const MatrixType& matrix, int options)
+{
+ internal::direct_selfadjoint_eigenvalues<SelfAdjointEigenSolver,Size,NumTraits<Scalar>::IsComplex>::run(*this,matrix,options);
+ return *this;
+}
+
+namespace internal {
+template<int StorageOrder,typename RealScalar, typename Scalar, typename Index>
+EIGEN_DEVICE_FUNC
+static void tridiagonal_qr_step(RealScalar* diag, RealScalar* subdiag, Index start, Index end, Scalar* matrixQ, Index n)
+{
+ using std::abs;
+ RealScalar td = (diag[end-1] - diag[end])*RealScalar(0.5);
+ RealScalar e = subdiag[end-1];
+ // Note that thanks to scaling, e^2 or td^2 cannot overflow, however they can still
+ // underflow thus leading to inf/NaN values when using the following commented code:
+// RealScalar e2 = numext::abs2(subdiag[end-1]);
+// RealScalar mu = diag[end] - e2 / (td + (td>0 ? 1 : -1) * sqrt(td*td + e2));
+ // This explain the following, somewhat more complicated, version:
+ RealScalar mu = diag[end];
+ if(td==RealScalar(0))
+ mu -= abs(e);
+ else
+ {
+ RealScalar e2 = numext::abs2(subdiag[end-1]);
+ RealScalar h = numext::hypot(td,e);
+ if(e2==RealScalar(0)) mu -= (e / (td + (td>RealScalar(0) ? RealScalar(1) : RealScalar(-1)))) * (e / h);
+ else mu -= e2 / (td + (td>RealScalar(0) ? h : -h));
+ }
+
+ RealScalar x = diag[start] - mu;
+ RealScalar z = subdiag[start];
+ for (Index k = start; k < end; ++k)
+ {
+ JacobiRotation<RealScalar> rot;
+ rot.makeGivens(x, z);
+
+ // do T = G' T G
+ RealScalar sdk = rot.s() * diag[k] + rot.c() * subdiag[k];
+ RealScalar dkp1 = rot.s() * subdiag[k] + rot.c() * diag[k+1];
+
+ diag[k] = rot.c() * (rot.c() * diag[k] - rot.s() * subdiag[k]) - rot.s() * (rot.c() * subdiag[k] - rot.s() * diag[k+1]);
+ diag[k+1] = rot.s() * sdk + rot.c() * dkp1;
+ subdiag[k] = rot.c() * sdk - rot.s() * dkp1;
+
+
+ if (k > start)
+ subdiag[k - 1] = rot.c() * subdiag[k-1] - rot.s() * z;
+
+ x = subdiag[k];
+
+ if (k < end - 1)
+ {
+ z = -rot.s() * subdiag[k+1];
+ subdiag[k + 1] = rot.c() * subdiag[k+1];
+ }
+
+ // apply the givens rotation to the unit matrix Q = Q * G
+ if (matrixQ)
+ {
+ // FIXME if StorageOrder == RowMajor this operation is not very efficient
+ Map<Matrix<Scalar,Dynamic,Dynamic,StorageOrder> > q(matrixQ,n,n);
+ q.applyOnTheRight(k,k+1,rot);
+ }
+ }
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINTEIGENSOLVER_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h
new file mode 100644
index 000000000..3891cf883
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h
@@ -0,0 +1,90 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ * Content : Eigen bindings to LAPACKe
+ * Self-adjoint eigenvalues/eigenvectors.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_SAEIGENSOLVER_LAPACKE_H
+#define EIGEN_SAEIGENSOLVER_LAPACKE_H
+
+namespace Eigen {
+
+/** \internal Specialization for the data types supported by LAPACKe */
+
+#define EIGEN_LAPACKE_EIG_SELFADJ(EIGTYPE, LAPACKE_TYPE, LAPACKE_RTYPE, LAPACKE_NAME, EIGCOLROW, LAPACKE_COLROW ) \
+template<> template<typename InputType> inline \
+SelfAdjointEigenSolver<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >& \
+SelfAdjointEigenSolver<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >::compute(const EigenBase<InputType>& matrix, int options) \
+{ \
+ eigen_assert(matrix.cols() == matrix.rows()); \
+ eigen_assert((options&~(EigVecMask|GenEigMask))==0 \
+ && (options&EigVecMask)!=EigVecMask \
+ && "invalid option parameter"); \
+ bool computeEigenvectors = (options&ComputeEigenvectors)==ComputeEigenvectors; \
+ lapack_int n = internal::convert_index<lapack_int>(matrix.cols()), lda, matrix_order, info; \
+ m_eivalues.resize(n,1); \
+ m_subdiag.resize(n-1); \
+ m_eivec = matrix; \
+\
+ if(n==1) \
+ { \
+ m_eivalues.coeffRef(0,0) = numext::real(m_eivec.coeff(0,0)); \
+ if(computeEigenvectors) m_eivec.setOnes(n,n); \
+ m_info = Success; \
+ m_isInitialized = true; \
+ m_eigenvectorsOk = computeEigenvectors; \
+ return *this; \
+ } \
+\
+ lda = internal::convert_index<lapack_int>(m_eivec.outerStride()); \
+ matrix_order=LAPACKE_COLROW; \
+ char jobz, uplo='L'/*, range='A'*/; \
+ jobz = computeEigenvectors ? 'V' : 'N'; \
+\
+ info = LAPACKE_##LAPACKE_NAME( matrix_order, jobz, uplo, n, (LAPACKE_TYPE*)m_eivec.data(), lda, (LAPACKE_RTYPE*)m_eivalues.data() ); \
+ m_info = (info==0) ? Success : NoConvergence; \
+ m_isInitialized = true; \
+ m_eigenvectorsOk = computeEigenvectors; \
+ return *this; \
+}
+
+
+EIGEN_LAPACKE_EIG_SELFADJ(double, double, double, dsyev, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_LAPACKE_EIG_SELFADJ(float, float, float, ssyev, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_LAPACKE_EIG_SELFADJ(dcomplex, lapack_complex_double, double, zheev, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_LAPACKE_EIG_SELFADJ(scomplex, lapack_complex_float, float, cheev, ColMajor, LAPACK_COL_MAJOR)
+
+EIGEN_LAPACKE_EIG_SELFADJ(double, double, double, dsyev, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_LAPACKE_EIG_SELFADJ(float, float, float, ssyev, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_LAPACKE_EIG_SELFADJ(dcomplex, lapack_complex_double, double, zheev, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_LAPACKE_EIG_SELFADJ(scomplex, lapack_complex_float, float, cheev, RowMajor, LAPACK_ROW_MAJOR)
+
+} // end namespace Eigen
+
+#endif // EIGEN_SAEIGENSOLVER_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h
new file mode 100644
index 000000000..1d102c17b
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h
@@ -0,0 +1,556 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRIDIAGONALIZATION_H
+#define EIGEN_TRIDIAGONALIZATION_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename MatrixType> struct TridiagonalizationMatrixTReturnType;
+template<typename MatrixType>
+struct traits<TridiagonalizationMatrixTReturnType<MatrixType> >
+ : public traits<typename MatrixType::PlainObject>
+{
+ typedef typename MatrixType::PlainObject ReturnType; // FIXME shall it be a BandMatrix?
+ enum { Flags = 0 };
+};
+
+template<typename MatrixType, typename CoeffVectorType>
+void tridiagonalization_inplace(MatrixType& matA, CoeffVectorType& hCoeffs);
+}
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+ *
+ *
+ * \class Tridiagonalization
+ *
+ * \brief Tridiagonal decomposition of a selfadjoint matrix
+ *
+ * \tparam _MatrixType the type of the matrix of which we are computing the
+ * tridiagonal decomposition; this is expected to be an instantiation of the
+ * Matrix class template.
+ *
+ * This class performs a tridiagonal decomposition of a selfadjoint matrix \f$ A \f$ such that:
+ * \f$ A = Q T Q^* \f$ where \f$ Q \f$ is unitary and \f$ T \f$ a real symmetric tridiagonal matrix.
+ *
+ * A tridiagonal matrix is a matrix which has nonzero elements only on the
+ * main diagonal and the first diagonal below and above it. The Hessenberg
+ * decomposition of a selfadjoint matrix is in fact a tridiagonal
+ * decomposition. This class is used in SelfAdjointEigenSolver to compute the
+ * eigenvalues and eigenvectors of a selfadjoint matrix.
+ *
+ * Call the function compute() to compute the tridiagonal decomposition of a
+ * given matrix. Alternatively, you can use the Tridiagonalization(const MatrixType&)
+ * constructor which computes the tridiagonal Schur decomposition at
+ * construction time. Once the decomposition is computed, you can use the
+ * matrixQ() and matrixT() functions to retrieve the matrices Q and T in the
+ * decomposition.
+ *
+ * The documentation of Tridiagonalization(const MatrixType&) contains an
+ * example of the typical use of this class.
+ *
+ * \sa class HessenbergDecomposition, class SelfAdjointEigenSolver
+ */
+template<typename _MatrixType> class Tridiagonalization
+{
+ public:
+
+ /** \brief Synonym for the template parameter \p _MatrixType. */
+ typedef _MatrixType MatrixType;
+
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
+
+ enum {
+ Size = MatrixType::RowsAtCompileTime,
+ SizeMinusOne = Size == Dynamic ? Dynamic : (Size > 1 ? Size - 1 : 1),
+ Options = MatrixType::Options,
+ MaxSize = MatrixType::MaxRowsAtCompileTime,
+ MaxSizeMinusOne = MaxSize == Dynamic ? Dynamic : (MaxSize > 1 ? MaxSize - 1 : 1)
+ };
+
+ typedef Matrix<Scalar, SizeMinusOne, 1, Options & ~RowMajor, MaxSizeMinusOne, 1> CoeffVectorType;
+ typedef typename internal::plain_col_type<MatrixType, RealScalar>::type DiagonalType;
+ typedef Matrix<RealScalar, SizeMinusOne, 1, Options & ~RowMajor, MaxSizeMinusOne, 1> SubDiagonalType;
+ typedef typename internal::remove_all<typename MatrixType::RealReturnType>::type MatrixTypeRealView;
+ typedef internal::TridiagonalizationMatrixTReturnType<MatrixTypeRealView> MatrixTReturnType;
+
+ typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
+ typename internal::add_const_on_value_type<typename Diagonal<const MatrixType>::RealReturnType>::type,
+ const Diagonal<const MatrixType>
+ >::type DiagonalReturnType;
+
+ typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
+ typename internal::add_const_on_value_type<typename Diagonal<const MatrixType, -1>::RealReturnType>::type,
+ const Diagonal<const MatrixType, -1>
+ >::type SubDiagonalReturnType;
+
+ /** \brief Return type of matrixQ() */
+ typedef HouseholderSequence<MatrixType,typename internal::remove_all<typename CoeffVectorType::ConjugateReturnType>::type> HouseholderSequenceType;
+
+ /** \brief Default constructor.
+ *
+ * \param [in] size Positive integer, size of the matrix whose tridiagonal
+ * decomposition will be computed.
+ *
+ * The default constructor is useful in cases in which the user intends to
+ * perform decompositions via compute(). The \p size parameter is only
+ * used as a hint. It is not an error to give a wrong \p size, but it may
+ * impair performance.
+ *
+ * \sa compute() for an example.
+ */
+ explicit Tridiagonalization(Index size = Size==Dynamic ? 2 : Size)
+ : m_matrix(size,size),
+ m_hCoeffs(size > 1 ? size-1 : 1),
+ m_isInitialized(false)
+ {}
+
+ /** \brief Constructor; computes tridiagonal decomposition of given matrix.
+ *
+ * \param[in] matrix Selfadjoint matrix whose tridiagonal decomposition
+ * is to be computed.
+ *
+ * This constructor calls compute() to compute the tridiagonal decomposition.
+ *
+ * Example: \include Tridiagonalization_Tridiagonalization_MatrixType.cpp
+ * Output: \verbinclude Tridiagonalization_Tridiagonalization_MatrixType.out
+ */
+ template<typename InputType>
+ explicit Tridiagonalization(const EigenBase<InputType>& matrix)
+ : m_matrix(matrix.derived()),
+ m_hCoeffs(matrix.cols() > 1 ? matrix.cols()-1 : 1),
+ m_isInitialized(false)
+ {
+ internal::tridiagonalization_inplace(m_matrix, m_hCoeffs);
+ m_isInitialized = true;
+ }
+
+ /** \brief Computes tridiagonal decomposition of given matrix.
+ *
+ * \param[in] matrix Selfadjoint matrix whose tridiagonal decomposition
+ * is to be computed.
+ * \returns Reference to \c *this
+ *
+ * The tridiagonal decomposition is computed by bringing the columns of
+ * the matrix successively in the required form using Householder
+ * reflections. The cost is \f$ 4n^3/3 \f$ flops, where \f$ n \f$ denotes
+ * the size of the given matrix.
+ *
+ * This method reuses of the allocated data in the Tridiagonalization
+ * object, if the size of the matrix does not change.
+ *
+ * Example: \include Tridiagonalization_compute.cpp
+ * Output: \verbinclude Tridiagonalization_compute.out
+ */
+ template<typename InputType>
+ Tridiagonalization& compute(const EigenBase<InputType>& matrix)
+ {
+ m_matrix = matrix.derived();
+ m_hCoeffs.resize(matrix.rows()-1, 1);
+ internal::tridiagonalization_inplace(m_matrix, m_hCoeffs);
+ m_isInitialized = true;
+ return *this;
+ }
+
+ /** \brief Returns the Householder coefficients.
+ *
+ * \returns a const reference to the vector of Householder coefficients
+ *
+ * \pre Either the constructor Tridiagonalization(const MatrixType&) or
+ * the member function compute(const MatrixType&) has been called before
+ * to compute the tridiagonal decomposition of a matrix.
+ *
+ * The Householder coefficients allow the reconstruction of the matrix
+ * \f$ Q \f$ in the tridiagonal decomposition from the packed data.
+ *
+ * Example: \include Tridiagonalization_householderCoefficients.cpp
+ * Output: \verbinclude Tridiagonalization_householderCoefficients.out
+ *
+ * \sa packedMatrix(), \ref Householder_Module "Householder module"
+ */
+ inline CoeffVectorType householderCoefficients() const
+ {
+ eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
+ return m_hCoeffs;
+ }
+
+ /** \brief Returns the internal representation of the decomposition
+ *
+ * \returns a const reference to a matrix with the internal representation
+ * of the decomposition.
+ *
+ * \pre Either the constructor Tridiagonalization(const MatrixType&) or
+ * the member function compute(const MatrixType&) has been called before
+ * to compute the tridiagonal decomposition of a matrix.
+ *
+ * The returned matrix contains the following information:
+ * - the strict upper triangular part is equal to the input matrix A.
+ * - the diagonal and lower sub-diagonal represent the real tridiagonal
+ * symmetric matrix T.
+ * - the rest of the lower part contains the Householder vectors that,
+ * combined with Householder coefficients returned by
+ * householderCoefficients(), allows to reconstruct the matrix Q as
+ * \f$ Q = H_{N-1} \ldots H_1 H_0 \f$.
+ * Here, the matrices \f$ H_i \f$ are the Householder transformations
+ * \f$ H_i = (I - h_i v_i v_i^T) \f$
+ * where \f$ h_i \f$ is the \f$ i \f$th Householder coefficient and
+ * \f$ v_i \f$ is the Householder vector defined by
+ * \f$ v_i = [ 0, \ldots, 0, 1, M(i+2,i), \ldots, M(N-1,i) ]^T \f$
+ * with M the matrix returned by this function.
+ *
+ * See LAPACK for further details on this packed storage.
+ *
+ * Example: \include Tridiagonalization_packedMatrix.cpp
+ * Output: \verbinclude Tridiagonalization_packedMatrix.out
+ *
+ * \sa householderCoefficients()
+ */
+ inline const MatrixType& packedMatrix() const
+ {
+ eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
+ return m_matrix;
+ }
+
+ /** \brief Returns the unitary matrix Q in the decomposition
+ *
+ * \returns object representing the matrix Q
+ *
+ * \pre Either the constructor Tridiagonalization(const MatrixType&) or
+ * the member function compute(const MatrixType&) has been called before
+ * to compute the tridiagonal decomposition of a matrix.
+ *
+ * This function returns a light-weight object of template class
+ * HouseholderSequence. You can either apply it directly to a matrix or
+ * you can convert it to a matrix of type #MatrixType.
+ *
+ * \sa Tridiagonalization(const MatrixType&) for an example,
+ * matrixT(), class HouseholderSequence
+ */
+ HouseholderSequenceType matrixQ() const
+ {
+ eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
+ return HouseholderSequenceType(m_matrix, m_hCoeffs.conjugate())
+ .setLength(m_matrix.rows() - 1)
+ .setShift(1);
+ }
+
+ /** \brief Returns an expression of the tridiagonal matrix T in the decomposition
+ *
+ * \returns expression object representing the matrix T
+ *
+ * \pre Either the constructor Tridiagonalization(const MatrixType&) or
+ * the member function compute(const MatrixType&) has been called before
+ * to compute the tridiagonal decomposition of a matrix.
+ *
+ * Currently, this function can be used to extract the matrix T from internal
+ * data and copy it to a dense matrix object. In most cases, it may be
+ * sufficient to directly use the packed matrix or the vector expressions
+ * returned by diagonal() and subDiagonal() instead of creating a new
+ * dense copy matrix with this function.
+ *
+ * \sa Tridiagonalization(const MatrixType&) for an example,
+ * matrixQ(), packedMatrix(), diagonal(), subDiagonal()
+ */
+ MatrixTReturnType matrixT() const
+ {
+ eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
+ return MatrixTReturnType(m_matrix.real());
+ }
+
+ /** \brief Returns the diagonal of the tridiagonal matrix T in the decomposition.
+ *
+ * \returns expression representing the diagonal of T
+ *
+ * \pre Either the constructor Tridiagonalization(const MatrixType&) or
+ * the member function compute(const MatrixType&) has been called before
+ * to compute the tridiagonal decomposition of a matrix.
+ *
+ * Example: \include Tridiagonalization_diagonal.cpp
+ * Output: \verbinclude Tridiagonalization_diagonal.out
+ *
+ * \sa matrixT(), subDiagonal()
+ */
+ DiagonalReturnType diagonal() const;
+
+ /** \brief Returns the subdiagonal of the tridiagonal matrix T in the decomposition.
+ *
+ * \returns expression representing the subdiagonal of T
+ *
+ * \pre Either the constructor Tridiagonalization(const MatrixType&) or
+ * the member function compute(const MatrixType&) has been called before
+ * to compute the tridiagonal decomposition of a matrix.
+ *
+ * \sa diagonal() for an example, matrixT()
+ */
+ SubDiagonalReturnType subDiagonal() const;
+
+ protected:
+
+ MatrixType m_matrix;
+ CoeffVectorType m_hCoeffs;
+ bool m_isInitialized;
+};
+
+template<typename MatrixType>
+typename Tridiagonalization<MatrixType>::DiagonalReturnType
+Tridiagonalization<MatrixType>::diagonal() const
+{
+ eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
+ return m_matrix.diagonal().real();
+}
+
+template<typename MatrixType>
+typename Tridiagonalization<MatrixType>::SubDiagonalReturnType
+Tridiagonalization<MatrixType>::subDiagonal() const
+{
+ eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
+ return m_matrix.template diagonal<-1>().real();
+}
+
+namespace internal {
+
+/** \internal
+ * Performs a tridiagonal decomposition of the selfadjoint matrix \a matA in-place.
+ *
+ * \param[in,out] matA On input the selfadjoint matrix. Only the \b lower triangular part is referenced.
+ * On output, the strict upper part is left unchanged, and the lower triangular part
+ * represents the T and Q matrices in packed format has detailed below.
+ * \param[out] hCoeffs returned Householder coefficients (see below)
+ *
+ * On output, the tridiagonal selfadjoint matrix T is stored in the diagonal
+ * and lower sub-diagonal of the matrix \a matA.
+ * The unitary matrix Q is represented in a compact way as a product of
+ * Householder reflectors \f$ H_i \f$ such that:
+ * \f$ Q = H_{N-1} \ldots H_1 H_0 \f$.
+ * The Householder reflectors are defined as
+ * \f$ H_i = (I - h_i v_i v_i^T) \f$
+ * where \f$ h_i = hCoeffs[i]\f$ is the \f$ i \f$th Householder coefficient and
+ * \f$ v_i \f$ is the Householder vector defined by
+ * \f$ v_i = [ 0, \ldots, 0, 1, matA(i+2,i), \ldots, matA(N-1,i) ]^T \f$.
+ *
+ * Implemented from Golub's "Matrix Computations", algorithm 8.3.1.
+ *
+ * \sa Tridiagonalization::packedMatrix()
+ */
+template<typename MatrixType, typename CoeffVectorType>
+void tridiagonalization_inplace(MatrixType& matA, CoeffVectorType& hCoeffs)
+{
+ using numext::conj;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ Index n = matA.rows();
+ eigen_assert(n==matA.cols());
+ eigen_assert(n==hCoeffs.size()+1 || n==1);
+
+ for (Index i = 0; i<n-1; ++i)
+ {
+ Index remainingSize = n-i-1;
+ RealScalar beta;
+ Scalar h;
+ matA.col(i).tail(remainingSize).makeHouseholderInPlace(h, beta);
+
+ // Apply similarity transformation to remaining columns,
+ // i.e., A = H A H' where H = I - h v v' and v = matA.col(i).tail(n-i-1)
+ matA.col(i).coeffRef(i+1) = 1;
+
+ hCoeffs.tail(n-i-1).noalias() = (matA.bottomRightCorner(remainingSize,remainingSize).template selfadjointView<Lower>()
+ * (conj(h) * matA.col(i).tail(remainingSize)));
+
+ hCoeffs.tail(n-i-1) += (conj(h)*RealScalar(-0.5)*(hCoeffs.tail(remainingSize).dot(matA.col(i).tail(remainingSize)))) * matA.col(i).tail(n-i-1);
+
+ matA.bottomRightCorner(remainingSize, remainingSize).template selfadjointView<Lower>()
+ .rankUpdate(matA.col(i).tail(remainingSize), hCoeffs.tail(remainingSize), Scalar(-1));
+
+ matA.col(i).coeffRef(i+1) = beta;
+ hCoeffs.coeffRef(i) = h;
+ }
+}
+
+// forward declaration, implementation at the end of this file
+template<typename MatrixType,
+ int Size=MatrixType::ColsAtCompileTime,
+ bool IsComplex=NumTraits<typename MatrixType::Scalar>::IsComplex>
+struct tridiagonalization_inplace_selector;
+
+/** \brief Performs a full tridiagonalization in place
+ *
+ * \param[in,out] mat On input, the selfadjoint matrix whose tridiagonal
+ * decomposition is to be computed. Only the lower triangular part referenced.
+ * The rest is left unchanged. On output, the orthogonal matrix Q
+ * in the decomposition if \p extractQ is true.
+ * \param[out] diag The diagonal of the tridiagonal matrix T in the
+ * decomposition.
+ * \param[out] subdiag The subdiagonal of the tridiagonal matrix T in
+ * the decomposition.
+ * \param[in] extractQ If true, the orthogonal matrix Q in the
+ * decomposition is computed and stored in \p mat.
+ *
+ * Computes the tridiagonal decomposition of the selfadjoint matrix \p mat in place
+ * such that \f$ mat = Q T Q^* \f$ where \f$ Q \f$ is unitary and \f$ T \f$ a real
+ * symmetric tridiagonal matrix.
+ *
+ * The tridiagonal matrix T is passed to the output parameters \p diag and \p subdiag. If
+ * \p extractQ is true, then the orthogonal matrix Q is passed to \p mat. Otherwise the lower
+ * part of the matrix \p mat is destroyed.
+ *
+ * The vectors \p diag and \p subdiag are not resized. The function
+ * assumes that they are already of the correct size. The length of the
+ * vector \p diag should equal the number of rows in \p mat, and the
+ * length of the vector \p subdiag should be one left.
+ *
+ * This implementation contains an optimized path for 3-by-3 matrices
+ * which is especially useful for plane fitting.
+ *
+ * \note Currently, it requires two temporary vectors to hold the intermediate
+ * Householder coefficients, and to reconstruct the matrix Q from the Householder
+ * reflectors.
+ *
+ * Example (this uses the same matrix as the example in
+ * Tridiagonalization::Tridiagonalization(const MatrixType&)):
+ * \include Tridiagonalization_decomposeInPlace.cpp
+ * Output: \verbinclude Tridiagonalization_decomposeInPlace.out
+ *
+ * \sa class Tridiagonalization
+ */
+template<typename MatrixType, typename DiagonalType, typename SubDiagonalType>
+void tridiagonalization_inplace(MatrixType& mat, DiagonalType& diag, SubDiagonalType& subdiag, bool extractQ)
+{
+ eigen_assert(mat.cols()==mat.rows() && diag.size()==mat.rows() && subdiag.size()==mat.rows()-1);
+ tridiagonalization_inplace_selector<MatrixType>::run(mat, diag, subdiag, extractQ);
+}
+
+/** \internal
+ * General full tridiagonalization
+ */
+template<typename MatrixType, int Size, bool IsComplex>
+struct tridiagonalization_inplace_selector
+{
+ typedef typename Tridiagonalization<MatrixType>::CoeffVectorType CoeffVectorType;
+ typedef typename Tridiagonalization<MatrixType>::HouseholderSequenceType HouseholderSequenceType;
+ template<typename DiagonalType, typename SubDiagonalType>
+ static void run(MatrixType& mat, DiagonalType& diag, SubDiagonalType& subdiag, bool extractQ)
+ {
+ CoeffVectorType hCoeffs(mat.cols()-1);
+ tridiagonalization_inplace(mat,hCoeffs);
+ diag = mat.diagonal().real();
+ subdiag = mat.template diagonal<-1>().real();
+ if(extractQ)
+ mat = HouseholderSequenceType(mat, hCoeffs.conjugate())
+ .setLength(mat.rows() - 1)
+ .setShift(1);
+ }
+};
+
+/** \internal
+ * Specialization for 3x3 real matrices.
+ * Especially useful for plane fitting.
+ */
+template<typename MatrixType>
+struct tridiagonalization_inplace_selector<MatrixType,3,false>
+{
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+
+ template<typename DiagonalType, typename SubDiagonalType>
+ static void run(MatrixType& mat, DiagonalType& diag, SubDiagonalType& subdiag, bool extractQ)
+ {
+ using std::sqrt;
+ const RealScalar tol = (std::numeric_limits<RealScalar>::min)();
+ diag[0] = mat(0,0);
+ RealScalar v1norm2 = numext::abs2(mat(2,0));
+ if(v1norm2 <= tol)
+ {
+ diag[1] = mat(1,1);
+ diag[2] = mat(2,2);
+ subdiag[0] = mat(1,0);
+ subdiag[1] = mat(2,1);
+ if (extractQ)
+ mat.setIdentity();
+ }
+ else
+ {
+ RealScalar beta = sqrt(numext::abs2(mat(1,0)) + v1norm2);
+ RealScalar invBeta = RealScalar(1)/beta;
+ Scalar m01 = mat(1,0) * invBeta;
+ Scalar m02 = mat(2,0) * invBeta;
+ Scalar q = RealScalar(2)*m01*mat(2,1) + m02*(mat(2,2) - mat(1,1));
+ diag[1] = mat(1,1) + m02*q;
+ diag[2] = mat(2,2) - m02*q;
+ subdiag[0] = beta;
+ subdiag[1] = mat(2,1) - m01 * q;
+ if (extractQ)
+ {
+ mat << 1, 0, 0,
+ 0, m01, m02,
+ 0, m02, -m01;
+ }
+ }
+ }
+};
+
+/** \internal
+ * Trivial specialization for 1x1 matrices
+ */
+template<typename MatrixType, bool IsComplex>
+struct tridiagonalization_inplace_selector<MatrixType,1,IsComplex>
+{
+ typedef typename MatrixType::Scalar Scalar;
+
+ template<typename DiagonalType, typename SubDiagonalType>
+ static void run(MatrixType& mat, DiagonalType& diag, SubDiagonalType&, bool extractQ)
+ {
+ diag(0,0) = numext::real(mat(0,0));
+ if(extractQ)
+ mat(0,0) = Scalar(1);
+ }
+};
+
+/** \internal
+ * \eigenvalues_module \ingroup Eigenvalues_Module
+ *
+ * \brief Expression type for return value of Tridiagonalization::matrixT()
+ *
+ * \tparam MatrixType type of underlying dense matrix
+ */
+template<typename MatrixType> struct TridiagonalizationMatrixTReturnType
+: public ReturnByValue<TridiagonalizationMatrixTReturnType<MatrixType> >
+{
+ public:
+ /** \brief Constructor.
+ *
+ * \param[in] mat The underlying dense matrix
+ */
+ TridiagonalizationMatrixTReturnType(const MatrixType& mat) : m_matrix(mat) { }
+
+ template <typename ResultType>
+ inline void evalTo(ResultType& result) const
+ {
+ result.setZero();
+ result.template diagonal<1>() = m_matrix.template diagonal<-1>().conjugate();
+ result.diagonal() = m_matrix.diagonal();
+ result.template diagonal<-1>() = m_matrix.template diagonal<-1>();
+ }
+
+ Index rows() const { return m_matrix.rows(); }
+ Index cols() const { return m_matrix.cols(); }
+
+ protected:
+ typename MatrixType::Nested m_matrix;
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIDIAGONALIZATION_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/AlignedBox.h b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/AlignedBox.h
new file mode 100644
index 000000000..066eae4f9
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/AlignedBox.h
@@ -0,0 +1,392 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ALIGNEDBOX_H
+#define EIGEN_ALIGNEDBOX_H
+
+namespace Eigen {
+
+/** \geometry_module \ingroup Geometry_Module
+ *
+ *
+ * \class AlignedBox
+ *
+ * \brief An axis aligned box
+ *
+ * \tparam _Scalar the type of the scalar coefficients
+ * \tparam _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
+ *
+ * This class represents an axis aligned box as a pair of the minimal and maximal corners.
+ * \warning The result of most methods is undefined when applied to an empty box. You can check for empty boxes using isEmpty().
+ * \sa alignedboxtypedefs
+ */
+template <typename _Scalar, int _AmbientDim>
+class AlignedBox
+{
+public:
+EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim)
+ enum { AmbientDimAtCompileTime = _AmbientDim };
+ typedef _Scalar Scalar;
+ typedef NumTraits<Scalar> ScalarTraits;
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
+ typedef typename ScalarTraits::Real RealScalar;
+ typedef typename ScalarTraits::NonInteger NonInteger;
+ typedef Matrix<Scalar,AmbientDimAtCompileTime,1> VectorType;
+ typedef CwiseBinaryOp<internal::scalar_sum_op<Scalar>, const VectorType, const VectorType> VectorTypeSum;
+
+ /** Define constants to name the corners of a 1D, 2D or 3D axis aligned bounding box */
+ enum CornerType
+ {
+ /** 1D names @{ */
+ Min=0, Max=1,
+ /** @} */
+
+ /** Identifier for 2D corner @{ */
+ BottomLeft=0, BottomRight=1,
+ TopLeft=2, TopRight=3,
+ /** @} */
+
+ /** Identifier for 3D corner @{ */
+ BottomLeftFloor=0, BottomRightFloor=1,
+ TopLeftFloor=2, TopRightFloor=3,
+ BottomLeftCeil=4, BottomRightCeil=5,
+ TopLeftCeil=6, TopRightCeil=7
+ /** @} */
+ };
+
+
+ /** Default constructor initializing a null box. */
+ EIGEN_DEVICE_FUNC inline AlignedBox()
+ { if (AmbientDimAtCompileTime!=Dynamic) setEmpty(); }
+
+ /** Constructs a null box with \a _dim the dimension of the ambient space. */
+ EIGEN_DEVICE_FUNC inline explicit AlignedBox(Index _dim) : m_min(_dim), m_max(_dim)
+ { setEmpty(); }
+
+ /** Constructs a box with extremities \a _min and \a _max.
+ * \warning If either component of \a _min is larger than the same component of \a _max, the constructed box is empty. */
+ template<typename OtherVectorType1, typename OtherVectorType2>
+ EIGEN_DEVICE_FUNC inline AlignedBox(const OtherVectorType1& _min, const OtherVectorType2& _max) : m_min(_min), m_max(_max) {}
+
+ /** Constructs a box containing a single point \a p. */
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC inline explicit AlignedBox(const MatrixBase<Derived>& p) : m_min(p), m_max(m_min)
+ { }
+
+ EIGEN_DEVICE_FUNC ~AlignedBox() {}
+
+ /** \returns the dimension in which the box holds */
+ EIGEN_DEVICE_FUNC inline Index dim() const { return AmbientDimAtCompileTime==Dynamic ? m_min.size() : Index(AmbientDimAtCompileTime); }
+
+ /** \deprecated use isEmpty() */
+ EIGEN_DEVICE_FUNC inline bool isNull() const { return isEmpty(); }
+
+ /** \deprecated use setEmpty() */
+ EIGEN_DEVICE_FUNC inline void setNull() { setEmpty(); }
+
+ /** \returns true if the box is empty.
+ * \sa setEmpty */
+ EIGEN_DEVICE_FUNC inline bool isEmpty() const { return (m_min.array() > m_max.array()).any(); }
+
+ /** Makes \c *this an empty box.
+ * \sa isEmpty */
+ EIGEN_DEVICE_FUNC inline void setEmpty()
+ {
+ m_min.setConstant( ScalarTraits::highest() );
+ m_max.setConstant( ScalarTraits::lowest() );
+ }
+
+ /** \returns the minimal corner */
+ EIGEN_DEVICE_FUNC inline const VectorType& (min)() const { return m_min; }
+ /** \returns a non const reference to the minimal corner */
+ EIGEN_DEVICE_FUNC inline VectorType& (min)() { return m_min; }
+ /** \returns the maximal corner */
+ EIGEN_DEVICE_FUNC inline const VectorType& (max)() const { return m_max; }
+ /** \returns a non const reference to the maximal corner */
+ EIGEN_DEVICE_FUNC inline VectorType& (max)() { return m_max; }
+
+ /** \returns the center of the box */
+ EIGEN_DEVICE_FUNC inline const EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(VectorTypeSum, RealScalar, quotient)
+ center() const
+ { return (m_min+m_max)/RealScalar(2); }
+
+ /** \returns the lengths of the sides of the bounding box.
+ * Note that this function does not get the same
+ * result for integral or floating scalar types: see
+ */
+ EIGEN_DEVICE_FUNC inline const CwiseBinaryOp< internal::scalar_difference_op<Scalar,Scalar>, const VectorType, const VectorType> sizes() const
+ { return m_max - m_min; }
+
+ /** \returns the volume of the bounding box */
+ EIGEN_DEVICE_FUNC inline Scalar volume() const
+ { return sizes().prod(); }
+
+ /** \returns an expression for the bounding box diagonal vector
+ * if the length of the diagonal is needed: diagonal().norm()
+ * will provide it.
+ */
+ EIGEN_DEVICE_FUNC inline CwiseBinaryOp< internal::scalar_difference_op<Scalar,Scalar>, const VectorType, const VectorType> diagonal() const
+ { return sizes(); }
+
+ /** \returns the vertex of the bounding box at the corner defined by
+ * the corner-id corner. It works only for a 1D, 2D or 3D bounding box.
+ * For 1D bounding boxes corners are named by 2 enum constants:
+ * BottomLeft and BottomRight.
+ * For 2D bounding boxes, corners are named by 4 enum constants:
+ * BottomLeft, BottomRight, TopLeft, TopRight.
+ * For 3D bounding boxes, the following names are added:
+ * BottomLeftCeil, BottomRightCeil, TopLeftCeil, TopRightCeil.
+ */
+ EIGEN_DEVICE_FUNC inline VectorType corner(CornerType corner) const
+ {
+ EIGEN_STATIC_ASSERT(_AmbientDim <= 3, THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE);
+
+ VectorType res;
+
+ Index mult = 1;
+ for(Index d=0; d<dim(); ++d)
+ {
+ if( mult & corner ) res[d] = m_max[d];
+ else res[d] = m_min[d];
+ mult *= 2;
+ }
+ return res;
+ }
+
+ /** \returns a random point inside the bounding box sampled with
+ * a uniform distribution */
+ EIGEN_DEVICE_FUNC inline VectorType sample() const
+ {
+ VectorType r(dim());
+ for(Index d=0; d<dim(); ++d)
+ {
+ if(!ScalarTraits::IsInteger)
+ {
+ r[d] = m_min[d] + (m_max[d]-m_min[d])
+ * internal::random<Scalar>(Scalar(0), Scalar(1));
+ }
+ else
+ r[d] = internal::random(m_min[d], m_max[d]);
+ }
+ return r;
+ }
+
+ /** \returns true if the point \a p is inside the box \c *this. */
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC inline bool contains(const MatrixBase<Derived>& p) const
+ {
+ typename internal::nested_eval<Derived,2>::type p_n(p.derived());
+ return (m_min.array()<=p_n.array()).all() && (p_n.array()<=m_max.array()).all();
+ }
+
+ /** \returns true if the box \a b is entirely inside the box \c *this. */
+ EIGEN_DEVICE_FUNC inline bool contains(const AlignedBox& b) const
+ { return (m_min.array()<=(b.min)().array()).all() && ((b.max)().array()<=m_max.array()).all(); }
+
+ /** \returns true if the box \a b is intersecting the box \c *this.
+ * \sa intersection, clamp */
+ EIGEN_DEVICE_FUNC inline bool intersects(const AlignedBox& b) const
+ { return (m_min.array()<=(b.max)().array()).all() && ((b.min)().array()<=m_max.array()).all(); }
+
+ /** Extends \c *this such that it contains the point \a p and returns a reference to \c *this.
+ * \sa extend(const AlignedBox&) */
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC inline AlignedBox& extend(const MatrixBase<Derived>& p)
+ {
+ typename internal::nested_eval<Derived,2>::type p_n(p.derived());
+ m_min = m_min.cwiseMin(p_n);
+ m_max = m_max.cwiseMax(p_n);
+ return *this;
+ }
+
+ /** Extends \c *this such that it contains the box \a b and returns a reference to \c *this.
+ * \sa merged, extend(const MatrixBase&) */
+ EIGEN_DEVICE_FUNC inline AlignedBox& extend(const AlignedBox& b)
+ {
+ m_min = m_min.cwiseMin(b.m_min);
+ m_max = m_max.cwiseMax(b.m_max);
+ return *this;
+ }
+
+ /** Clamps \c *this by the box \a b and returns a reference to \c *this.
+ * \note If the boxes don't intersect, the resulting box is empty.
+ * \sa intersection(), intersects() */
+ EIGEN_DEVICE_FUNC inline AlignedBox& clamp(const AlignedBox& b)
+ {
+ m_min = m_min.cwiseMax(b.m_min);
+ m_max = m_max.cwiseMin(b.m_max);
+ return *this;
+ }
+
+ /** Returns an AlignedBox that is the intersection of \a b and \c *this
+ * \note If the boxes don't intersect, the resulting box is empty.
+ * \sa intersects(), clamp, contains() */
+ EIGEN_DEVICE_FUNC inline AlignedBox intersection(const AlignedBox& b) const
+ {return AlignedBox(m_min.cwiseMax(b.m_min), m_max.cwiseMin(b.m_max)); }
+
+ /** Returns an AlignedBox that is the union of \a b and \c *this.
+ * \note Merging with an empty box may result in a box bigger than \c *this.
+ * \sa extend(const AlignedBox&) */
+ EIGEN_DEVICE_FUNC inline AlignedBox merged(const AlignedBox& b) const
+ { return AlignedBox(m_min.cwiseMin(b.m_min), m_max.cwiseMax(b.m_max)); }
+
+ /** Translate \c *this by the vector \a t and returns a reference to \c *this. */
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC inline AlignedBox& translate(const MatrixBase<Derived>& a_t)
+ {
+ const typename internal::nested_eval<Derived,2>::type t(a_t.derived());
+ m_min += t;
+ m_max += t;
+ return *this;
+ }
+
+ /** \returns the squared distance between the point \a p and the box \c *this,
+ * and zero if \a p is inside the box.
+ * \sa exteriorDistance(const MatrixBase&), squaredExteriorDistance(const AlignedBox&)
+ */
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC inline Scalar squaredExteriorDistance(const MatrixBase<Derived>& p) const;
+
+ /** \returns the squared distance between the boxes \a b and \c *this,
+ * and zero if the boxes intersect.
+ * \sa exteriorDistance(const AlignedBox&), squaredExteriorDistance(const MatrixBase&)
+ */
+ EIGEN_DEVICE_FUNC inline Scalar squaredExteriorDistance(const AlignedBox& b) const;
+
+ /** \returns the distance between the point \a p and the box \c *this,
+ * and zero if \a p is inside the box.
+ * \sa squaredExteriorDistance(const MatrixBase&), exteriorDistance(const AlignedBox&)
+ */
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC inline NonInteger exteriorDistance(const MatrixBase<Derived>& p) const
+ { EIGEN_USING_STD_MATH(sqrt) return sqrt(NonInteger(squaredExteriorDistance(p))); }
+
+ /** \returns the distance between the boxes \a b and \c *this,
+ * and zero if the boxes intersect.
+ * \sa squaredExteriorDistance(const AlignedBox&), exteriorDistance(const MatrixBase&)
+ */
+ EIGEN_DEVICE_FUNC inline NonInteger exteriorDistance(const AlignedBox& b) const
+ { EIGEN_USING_STD_MATH(sqrt) return sqrt(NonInteger(squaredExteriorDistance(b))); }
+
+ /** \returns \c *this with scalar type casted to \a NewScalarType
+ *
+ * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+ * then this function smartly returns a const reference to \c *this.
+ */
+ template<typename NewScalarType>
+ EIGEN_DEVICE_FUNC inline typename internal::cast_return_type<AlignedBox,
+ AlignedBox<NewScalarType,AmbientDimAtCompileTime> >::type cast() const
+ {
+ return typename internal::cast_return_type<AlignedBox,
+ AlignedBox<NewScalarType,AmbientDimAtCompileTime> >::type(*this);
+ }
+
+ /** Copy constructor with scalar type conversion */
+ template<typename OtherScalarType>
+ EIGEN_DEVICE_FUNC inline explicit AlignedBox(const AlignedBox<OtherScalarType,AmbientDimAtCompileTime>& other)
+ {
+ m_min = (other.min)().template cast<Scalar>();
+ m_max = (other.max)().template cast<Scalar>();
+ }
+
+ /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+ * determined by \a prec.
+ *
+ * \sa MatrixBase::isApprox() */
+ EIGEN_DEVICE_FUNC bool isApprox(const AlignedBox& other, const RealScalar& prec = ScalarTraits::dummy_precision()) const
+ { return m_min.isApprox(other.m_min, prec) && m_max.isApprox(other.m_max, prec); }
+
+protected:
+
+ VectorType m_min, m_max;
+};
+
+
+
+template<typename Scalar,int AmbientDim>
+template<typename Derived>
+EIGEN_DEVICE_FUNC inline Scalar AlignedBox<Scalar,AmbientDim>::squaredExteriorDistance(const MatrixBase<Derived>& a_p) const
+{
+ typename internal::nested_eval<Derived,2*AmbientDim>::type p(a_p.derived());
+ Scalar dist2(0);
+ Scalar aux;
+ for (Index k=0; k<dim(); ++k)
+ {
+ if( m_min[k] > p[k] )
+ {
+ aux = m_min[k] - p[k];
+ dist2 += aux*aux;
+ }
+ else if( p[k] > m_max[k] )
+ {
+ aux = p[k] - m_max[k];
+ dist2 += aux*aux;
+ }
+ }
+ return dist2;
+}
+
+template<typename Scalar,int AmbientDim>
+EIGEN_DEVICE_FUNC inline Scalar AlignedBox<Scalar,AmbientDim>::squaredExteriorDistance(const AlignedBox& b) const
+{
+ Scalar dist2(0);
+ Scalar aux;
+ for (Index k=0; k<dim(); ++k)
+ {
+ if( m_min[k] > b.m_max[k] )
+ {
+ aux = m_min[k] - b.m_max[k];
+ dist2 += aux*aux;
+ }
+ else if( b.m_min[k] > m_max[k] )
+ {
+ aux = b.m_min[k] - m_max[k];
+ dist2 += aux*aux;
+ }
+ }
+ return dist2;
+}
+
+/** \defgroup alignedboxtypedefs Global aligned box typedefs
+ *
+ * \ingroup Geometry_Module
+ *
+ * Eigen defines several typedef shortcuts for most common aligned box types.
+ *
+ * The general patterns are the following:
+ *
+ * \c AlignedBoxSizeType where \c Size can be \c 1, \c 2,\c 3,\c 4 for fixed size boxes or \c X for dynamic size,
+ * and where \c Type can be \c i for integer, \c f for float, \c d for double.
+ *
+ * For example, \c AlignedBox3d is a fixed-size 3x3 aligned box type of doubles, and \c AlignedBoxXf is a dynamic-size aligned box of floats.
+ *
+ * \sa class AlignedBox
+ */
+
+#define EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix) \
+/** \ingroup alignedboxtypedefs */ \
+typedef AlignedBox<Type, Size> AlignedBox##SizeSuffix##TypeSuffix;
+
+#define EIGEN_MAKE_TYPEDEFS_ALL_SIZES(Type, TypeSuffix) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 1, 1) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 2, 2) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 3, 3) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 4, 4) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Dynamic, X)
+
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(int, i)
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(float, f)
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(double, d)
+
+#undef EIGEN_MAKE_TYPEDEFS_ALL_SIZES
+#undef EIGEN_MAKE_TYPEDEFS
+
+} // end namespace Eigen
+
+#endif // EIGEN_ALIGNEDBOX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/AngleAxis.h b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/AngleAxis.h
new file mode 100644
index 000000000..0af3c1b08
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/AngleAxis.h
@@ -0,0 +1,247 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ANGLEAXIS_H
+#define EIGEN_ANGLEAXIS_H
+
+namespace Eigen {
+
+/** \geometry_module \ingroup Geometry_Module
+ *
+ * \class AngleAxis
+ *
+ * \brief Represents a 3D rotation as a rotation angle around an arbitrary 3D axis
+ *
+ * \param _Scalar the scalar type, i.e., the type of the coefficients.
+ *
+ * \warning When setting up an AngleAxis object, the axis vector \b must \b be \b normalized.
+ *
+ * The following two typedefs are provided for convenience:
+ * \li \c AngleAxisf for \c float
+ * \li \c AngleAxisd for \c double
+ *
+ * Combined with MatrixBase::Unit{X,Y,Z}, AngleAxis can be used to easily
+ * mimic Euler-angles. Here is an example:
+ * \include AngleAxis_mimic_euler.cpp
+ * Output: \verbinclude AngleAxis_mimic_euler.out
+ *
+ * \note This class is not aimed to be used to store a rotation transformation,
+ * but rather to make easier the creation of other rotation (Quaternion, rotation Matrix)
+ * and transformation objects.
+ *
+ * \sa class Quaternion, class Transform, MatrixBase::UnitX()
+ */
+
+namespace internal {
+template<typename _Scalar> struct traits<AngleAxis<_Scalar> >
+{
+ typedef _Scalar Scalar;
+};
+}
+
+template<typename _Scalar>
+class AngleAxis : public RotationBase<AngleAxis<_Scalar>,3>
+{
+ typedef RotationBase<AngleAxis<_Scalar>,3> Base;
+
+public:
+
+ using Base::operator*;
+
+ enum { Dim = 3 };
+ /** the scalar type of the coefficients */
+ typedef _Scalar Scalar;
+ typedef Matrix<Scalar,3,3> Matrix3;
+ typedef Matrix<Scalar,3,1> Vector3;
+ typedef Quaternion<Scalar> QuaternionType;
+
+protected:
+
+ Vector3 m_axis;
+ Scalar m_angle;
+
+public:
+
+ /** Default constructor without initialization. */
+ EIGEN_DEVICE_FUNC AngleAxis() {}
+ /** Constructs and initialize the angle-axis rotation from an \a angle in radian
+ * and an \a axis which \b must \b be \b normalized.
+ *
+ * \warning If the \a axis vector is not normalized, then the angle-axis object
+ * represents an invalid rotation. */
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC
+ inline AngleAxis(const Scalar& angle, const MatrixBase<Derived>& axis) : m_axis(axis), m_angle(angle) {}
+ /** Constructs and initialize the angle-axis rotation from a quaternion \a q.
+ * This function implicitly normalizes the quaternion \a q.
+ */
+ template<typename QuatDerived>
+ EIGEN_DEVICE_FUNC inline explicit AngleAxis(const QuaternionBase<QuatDerived>& q) { *this = q; }
+ /** Constructs and initialize the angle-axis rotation from a 3x3 rotation matrix. */
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC inline explicit AngleAxis(const MatrixBase<Derived>& m) { *this = m; }
+
+ /** \returns the value of the rotation angle in radian */
+ EIGEN_DEVICE_FUNC Scalar angle() const { return m_angle; }
+ /** \returns a read-write reference to the stored angle in radian */
+ EIGEN_DEVICE_FUNC Scalar& angle() { return m_angle; }
+
+ /** \returns the rotation axis */
+ EIGEN_DEVICE_FUNC const Vector3& axis() const { return m_axis; }
+ /** \returns a read-write reference to the stored rotation axis.
+ *
+ * \warning The rotation axis must remain a \b unit vector.
+ */
+ EIGEN_DEVICE_FUNC Vector3& axis() { return m_axis; }
+
+ /** Concatenates two rotations */
+ EIGEN_DEVICE_FUNC inline QuaternionType operator* (const AngleAxis& other) const
+ { return QuaternionType(*this) * QuaternionType(other); }
+
+ /** Concatenates two rotations */
+ EIGEN_DEVICE_FUNC inline QuaternionType operator* (const QuaternionType& other) const
+ { return QuaternionType(*this) * other; }
+
+ /** Concatenates two rotations */
+ friend EIGEN_DEVICE_FUNC inline QuaternionType operator* (const QuaternionType& a, const AngleAxis& b)
+ { return a * QuaternionType(b); }
+
+ /** \returns the inverse rotation, i.e., an angle-axis with opposite rotation angle */
+ EIGEN_DEVICE_FUNC AngleAxis inverse() const
+ { return AngleAxis(-m_angle, m_axis); }
+
+ template<class QuatDerived>
+ EIGEN_DEVICE_FUNC AngleAxis& operator=(const QuaternionBase<QuatDerived>& q);
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC AngleAxis& operator=(const MatrixBase<Derived>& m);
+
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC AngleAxis& fromRotationMatrix(const MatrixBase<Derived>& m);
+ EIGEN_DEVICE_FUNC Matrix3 toRotationMatrix(void) const;
+
+ /** \returns \c *this with scalar type casted to \a NewScalarType
+ *
+ * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+ * then this function smartly returns a const reference to \c *this.
+ */
+ template<typename NewScalarType>
+ EIGEN_DEVICE_FUNC inline typename internal::cast_return_type<AngleAxis,AngleAxis<NewScalarType> >::type cast() const
+ { return typename internal::cast_return_type<AngleAxis,AngleAxis<NewScalarType> >::type(*this); }
+
+ /** Copy constructor with scalar type conversion */
+ template<typename OtherScalarType>
+ EIGEN_DEVICE_FUNC inline explicit AngleAxis(const AngleAxis<OtherScalarType>& other)
+ {
+ m_axis = other.axis().template cast<Scalar>();
+ m_angle = Scalar(other.angle());
+ }
+
+ EIGEN_DEVICE_FUNC static inline const AngleAxis Identity() { return AngleAxis(Scalar(0), Vector3::UnitX()); }
+
+ /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+ * determined by \a prec.
+ *
+ * \sa MatrixBase::isApprox() */
+ EIGEN_DEVICE_FUNC bool isApprox(const AngleAxis& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
+ { return m_axis.isApprox(other.m_axis, prec) && internal::isApprox(m_angle,other.m_angle, prec); }
+};
+
+/** \ingroup Geometry_Module
+ * single precision angle-axis type */
+typedef AngleAxis<float> AngleAxisf;
+/** \ingroup Geometry_Module
+ * double precision angle-axis type */
+typedef AngleAxis<double> AngleAxisd;
+
+/** Set \c *this from a \b unit quaternion.
+ *
+ * The resulting axis is normalized, and the computed angle is in the [0,pi] range.
+ *
+ * This function implicitly normalizes the quaternion \a q.
+ */
+template<typename Scalar>
+template<typename QuatDerived>
+EIGEN_DEVICE_FUNC AngleAxis<Scalar>& AngleAxis<Scalar>::operator=(const QuaternionBase<QuatDerived>& q)
+{
+ EIGEN_USING_STD_MATH(atan2)
+ EIGEN_USING_STD_MATH(abs)
+ Scalar n = q.vec().norm();
+ if(n<NumTraits<Scalar>::epsilon())
+ n = q.vec().stableNorm();
+
+ if (n != Scalar(0))
+ {
+ m_angle = Scalar(2)*atan2(n, abs(q.w()));
+ if(q.w() < 0)
+ n = -n;
+ m_axis = q.vec() / n;
+ }
+ else
+ {
+ m_angle = Scalar(0);
+ m_axis << Scalar(1), Scalar(0), Scalar(0);
+ }
+ return *this;
+}
+
+/** Set \c *this from a 3x3 rotation matrix \a mat.
+ */
+template<typename Scalar>
+template<typename Derived>
+EIGEN_DEVICE_FUNC AngleAxis<Scalar>& AngleAxis<Scalar>::operator=(const MatrixBase<Derived>& mat)
+{
+ // Since a direct conversion would not be really faster,
+ // let's use the robust Quaternion implementation:
+ return *this = QuaternionType(mat);
+}
+
+/**
+* \brief Sets \c *this from a 3x3 rotation matrix.
+**/
+template<typename Scalar>
+template<typename Derived>
+EIGEN_DEVICE_FUNC AngleAxis<Scalar>& AngleAxis<Scalar>::fromRotationMatrix(const MatrixBase<Derived>& mat)
+{
+ return *this = QuaternionType(mat);
+}
+
+/** Constructs and \returns an equivalent 3x3 rotation matrix.
+ */
+template<typename Scalar>
+typename AngleAxis<Scalar>::Matrix3
+EIGEN_DEVICE_FUNC AngleAxis<Scalar>::toRotationMatrix(void) const
+{
+ EIGEN_USING_STD_MATH(sin)
+ EIGEN_USING_STD_MATH(cos)
+ Matrix3 res;
+ Vector3 sin_axis = sin(m_angle) * m_axis;
+ Scalar c = cos(m_angle);
+ Vector3 cos1_axis = (Scalar(1)-c) * m_axis;
+
+ Scalar tmp;
+ tmp = cos1_axis.x() * m_axis.y();
+ res.coeffRef(0,1) = tmp - sin_axis.z();
+ res.coeffRef(1,0) = tmp + sin_axis.z();
+
+ tmp = cos1_axis.x() * m_axis.z();
+ res.coeffRef(0,2) = tmp + sin_axis.y();
+ res.coeffRef(2,0) = tmp - sin_axis.y();
+
+ tmp = cos1_axis.y() * m_axis.z();
+ res.coeffRef(1,2) = tmp - sin_axis.x();
+ res.coeffRef(2,1) = tmp + sin_axis.x();
+
+ res.diagonal() = (cos1_axis.cwiseProduct(m_axis)).array() + c;
+
+ return res;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_ANGLEAXIS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/EulerAngles.h b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/EulerAngles.h
new file mode 100644
index 000000000..c633268af
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/EulerAngles.h
@@ -0,0 +1,114 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_EULERANGLES_H
+#define EIGEN_EULERANGLES_H
+
+namespace Eigen {
+
+/** \geometry_module \ingroup Geometry_Module
+ *
+ *
+ * \returns the Euler-angles of the rotation matrix \c *this using the convention defined by the triplet (\a a0,\a a1,\a a2)
+ *
+ * Each of the three parameters \a a0,\a a1,\a a2 represents the respective rotation axis as an integer in {0,1,2}.
+ * For instance, in:
+ * \code Vector3f ea = mat.eulerAngles(2, 0, 2); \endcode
+ * "2" represents the z axis and "0" the x axis, etc. The returned angles are such that
+ * we have the following equality:
+ * \code
+ * mat == AngleAxisf(ea[0], Vector3f::UnitZ())
+ * * AngleAxisf(ea[1], Vector3f::UnitX())
+ * * AngleAxisf(ea[2], Vector3f::UnitZ()); \endcode
+ * This corresponds to the right-multiply conventions (with right hand side frames).
+ *
+ * The returned angles are in the ranges [0:pi]x[-pi:pi]x[-pi:pi].
+ *
+ * \sa class AngleAxis
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC inline Matrix<typename MatrixBase<Derived>::Scalar,3,1>
+MatrixBase<Derived>::eulerAngles(Index a0, Index a1, Index a2) const
+{
+ EIGEN_USING_STD_MATH(atan2)
+ EIGEN_USING_STD_MATH(sin)
+ EIGEN_USING_STD_MATH(cos)
+ /* Implemented from Graphics Gems IV */
+ EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(Derived,3,3)
+
+ Matrix<Scalar,3,1> res;
+ typedef Matrix<typename Derived::Scalar,2,1> Vector2;
+
+ const Index odd = ((a0+1)%3 == a1) ? 0 : 1;
+ const Index i = a0;
+ const Index j = (a0 + 1 + odd)%3;
+ const Index k = (a0 + 2 - odd)%3;
+
+ if (a0==a2)
+ {
+ res[0] = atan2(coeff(j,i), coeff(k,i));
+ if((odd && res[0]<Scalar(0)) || ((!odd) && res[0]>Scalar(0)))
+ {
+ if(res[0] > Scalar(0)) {
+ res[0] -= Scalar(EIGEN_PI);
+ }
+ else {
+ res[0] += Scalar(EIGEN_PI);
+ }
+ Scalar s2 = Vector2(coeff(j,i), coeff(k,i)).norm();
+ res[1] = -atan2(s2, coeff(i,i));
+ }
+ else
+ {
+ Scalar s2 = Vector2(coeff(j,i), coeff(k,i)).norm();
+ res[1] = atan2(s2, coeff(i,i));
+ }
+
+ // With a=(0,1,0), we have i=0; j=1; k=2, and after computing the first two angles,
+ // we can compute their respective rotation, and apply its inverse to M. Since the result must
+ // be a rotation around x, we have:
+ //
+ // c2 s1.s2 c1.s2 1 0 0
+ // 0 c1 -s1 * M = 0 c3 s3
+ // -s2 s1.c2 c1.c2 0 -s3 c3
+ //
+ // Thus: m11.c1 - m21.s1 = c3 & m12.c1 - m22.s1 = s3
+
+ Scalar s1 = sin(res[0]);
+ Scalar c1 = cos(res[0]);
+ res[2] = atan2(c1*coeff(j,k)-s1*coeff(k,k), c1*coeff(j,j) - s1 * coeff(k,j));
+ }
+ else
+ {
+ res[0] = atan2(coeff(j,k), coeff(k,k));
+ Scalar c2 = Vector2(coeff(i,i), coeff(i,j)).norm();
+ if((odd && res[0]<Scalar(0)) || ((!odd) && res[0]>Scalar(0))) {
+ if(res[0] > Scalar(0)) {
+ res[0] -= Scalar(EIGEN_PI);
+ }
+ else {
+ res[0] += Scalar(EIGEN_PI);
+ }
+ res[1] = atan2(-coeff(i,k), -c2);
+ }
+ else
+ res[1] = atan2(-coeff(i,k), c2);
+ Scalar s1 = sin(res[0]);
+ Scalar c1 = cos(res[0]);
+ res[2] = atan2(s1*coeff(k,i)-c1*coeff(j,i), c1*coeff(j,j) - s1 * coeff(k,j));
+ }
+ if (!odd)
+ res = -res;
+
+ return res;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_EULERANGLES_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Homogeneous.h b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Homogeneous.h
new file mode 100644
index 000000000..5f0da1a9e
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Homogeneous.h
@@ -0,0 +1,497 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_HOMOGENEOUS_H
+#define EIGEN_HOMOGENEOUS_H
+
+namespace Eigen {
+
+/** \geometry_module \ingroup Geometry_Module
+ *
+ * \class Homogeneous
+ *
+ * \brief Expression of one (or a set of) homogeneous vector(s)
+ *
+ * \param MatrixType the type of the object in which we are making homogeneous
+ *
+ * This class represents an expression of one (or a set of) homogeneous vector(s).
+ * It is the return type of MatrixBase::homogeneous() and most of the time
+ * this is the only way it is used.
+ *
+ * \sa MatrixBase::homogeneous()
+ */
+
+namespace internal {
+
+template<typename MatrixType,int Direction>
+struct traits<Homogeneous<MatrixType,Direction> >
+ : traits<MatrixType>
+{
+ typedef typename traits<MatrixType>::StorageKind StorageKind;
+ typedef typename ref_selector<MatrixType>::type MatrixTypeNested;
+ typedef typename remove_reference<MatrixTypeNested>::type _MatrixTypeNested;
+ enum {
+ RowsPlusOne = (MatrixType::RowsAtCompileTime != Dynamic) ?
+ int(MatrixType::RowsAtCompileTime) + 1 : Dynamic,
+ ColsPlusOne = (MatrixType::ColsAtCompileTime != Dynamic) ?
+ int(MatrixType::ColsAtCompileTime) + 1 : Dynamic,
+ RowsAtCompileTime = Direction==Vertical ? RowsPlusOne : MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = Direction==Horizontal ? ColsPlusOne : MatrixType::ColsAtCompileTime,
+ MaxRowsAtCompileTime = RowsAtCompileTime,
+ MaxColsAtCompileTime = ColsAtCompileTime,
+ TmpFlags = _MatrixTypeNested::Flags & HereditaryBits,
+ Flags = ColsAtCompileTime==1 ? (TmpFlags & ~RowMajorBit)
+ : RowsAtCompileTime==1 ? (TmpFlags | RowMajorBit)
+ : TmpFlags
+ };
+};
+
+template<typename MatrixType,typename Lhs> struct homogeneous_left_product_impl;
+template<typename MatrixType,typename Rhs> struct homogeneous_right_product_impl;
+
+} // end namespace internal
+
+template<typename MatrixType,int _Direction> class Homogeneous
+ : public MatrixBase<Homogeneous<MatrixType,_Direction> >, internal::no_assignment_operator
+{
+ public:
+
+ typedef MatrixType NestedExpression;
+ enum { Direction = _Direction };
+
+ typedef MatrixBase<Homogeneous> Base;
+ EIGEN_DENSE_PUBLIC_INTERFACE(Homogeneous)
+
+ EIGEN_DEVICE_FUNC explicit inline Homogeneous(const MatrixType& matrix)
+ : m_matrix(matrix)
+ {}
+
+ EIGEN_DEVICE_FUNC inline Index rows() const { return m_matrix.rows() + (int(Direction)==Vertical ? 1 : 0); }
+ EIGEN_DEVICE_FUNC inline Index cols() const { return m_matrix.cols() + (int(Direction)==Horizontal ? 1 : 0); }
+
+ EIGEN_DEVICE_FUNC const NestedExpression& nestedExpression() const { return m_matrix; }
+
+ template<typename Rhs>
+ EIGEN_DEVICE_FUNC inline const Product<Homogeneous,Rhs>
+ operator* (const MatrixBase<Rhs>& rhs) const
+ {
+ eigen_assert(int(Direction)==Horizontal);
+ return Product<Homogeneous,Rhs>(*this,rhs.derived());
+ }
+
+ template<typename Lhs> friend
+ EIGEN_DEVICE_FUNC inline const Product<Lhs,Homogeneous>
+ operator* (const MatrixBase<Lhs>& lhs, const Homogeneous& rhs)
+ {
+ eigen_assert(int(Direction)==Vertical);
+ return Product<Lhs,Homogeneous>(lhs.derived(),rhs);
+ }
+
+ template<typename Scalar, int Dim, int Mode, int Options> friend
+ EIGEN_DEVICE_FUNC inline const Product<Transform<Scalar,Dim,Mode,Options>, Homogeneous >
+ operator* (const Transform<Scalar,Dim,Mode,Options>& lhs, const Homogeneous& rhs)
+ {
+ eigen_assert(int(Direction)==Vertical);
+ return Product<Transform<Scalar,Dim,Mode,Options>, Homogeneous>(lhs,rhs);
+ }
+
+ template<typename Func>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename internal::result_of<Func(Scalar,Scalar)>::type
+ redux(const Func& func) const
+ {
+ return func(m_matrix.redux(func), Scalar(1));
+ }
+
+ protected:
+ typename MatrixType::Nested m_matrix;
+};
+
+/** \geometry_module \ingroup Geometry_Module
+ *
+ * \returns a vector expression that is one longer than the vector argument, with the value 1 symbolically appended as the last coefficient.
+ *
+ * This can be used to convert affine coordinates to homogeneous coordinates.
+ *
+ * \only_for_vectors
+ *
+ * Example: \include MatrixBase_homogeneous.cpp
+ * Output: \verbinclude MatrixBase_homogeneous.out
+ *
+ * \sa VectorwiseOp::homogeneous(), class Homogeneous
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC inline typename MatrixBase<Derived>::HomogeneousReturnType
+MatrixBase<Derived>::homogeneous() const
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
+ return HomogeneousReturnType(derived());
+}
+
+/** \geometry_module \ingroup Geometry_Module
+ *
+ * \returns an expression where the value 1 is symbolically appended as the final coefficient to each column (or row) of the matrix.
+ *
+ * This can be used to convert affine coordinates to homogeneous coordinates.
+ *
+ * Example: \include VectorwiseOp_homogeneous.cpp
+ * Output: \verbinclude VectorwiseOp_homogeneous.out
+ *
+ * \sa MatrixBase::homogeneous(), class Homogeneous */
+template<typename ExpressionType, int Direction>
+EIGEN_DEVICE_FUNC inline Homogeneous<ExpressionType,Direction>
+VectorwiseOp<ExpressionType,Direction>::homogeneous() const
+{
+ return HomogeneousReturnType(_expression());
+}
+
+/** \geometry_module \ingroup Geometry_Module
+ *
+ * \brief homogeneous normalization
+ *
+ * \returns a vector expression of the N-1 first coefficients of \c *this divided by that last coefficient.
+ *
+ * This can be used to convert homogeneous coordinates to affine coordinates.
+ *
+ * It is essentially a shortcut for:
+ * \code
+ this->head(this->size()-1)/this->coeff(this->size()-1);
+ \endcode
+ *
+ * Example: \include MatrixBase_hnormalized.cpp
+ * Output: \verbinclude MatrixBase_hnormalized.out
+ *
+ * \sa VectorwiseOp::hnormalized() */
+template<typename Derived>
+EIGEN_DEVICE_FUNC inline const typename MatrixBase<Derived>::HNormalizedReturnType
+MatrixBase<Derived>::hnormalized() const
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
+ return ConstStartMinusOne(derived(),0,0,
+ ColsAtCompileTime==1?size()-1:1,
+ ColsAtCompileTime==1?1:size()-1) / coeff(size()-1);
+}
+
+/** \geometry_module \ingroup Geometry_Module
+ *
+ * \brief column or row-wise homogeneous normalization
+ *
+ * \returns an expression of the first N-1 coefficients of each column (or row) of \c *this divided by the last coefficient of each column (or row).
+ *
+ * This can be used to convert homogeneous coordinates to affine coordinates.
+ *
+ * It is conceptually equivalent to calling MatrixBase::hnormalized() to each column (or row) of \c *this.
+ *
+ * Example: \include DirectionWise_hnormalized.cpp
+ * Output: \verbinclude DirectionWise_hnormalized.out
+ *
+ * \sa MatrixBase::hnormalized() */
+template<typename ExpressionType, int Direction>
+EIGEN_DEVICE_FUNC inline const typename VectorwiseOp<ExpressionType,Direction>::HNormalizedReturnType
+VectorwiseOp<ExpressionType,Direction>::hnormalized() const
+{
+ return HNormalized_Block(_expression(),0,0,
+ Direction==Vertical ? _expression().rows()-1 : _expression().rows(),
+ Direction==Horizontal ? _expression().cols()-1 : _expression().cols()).cwiseQuotient(
+ Replicate<HNormalized_Factors,
+ Direction==Vertical ? HNormalized_SizeMinusOne : 1,
+ Direction==Horizontal ? HNormalized_SizeMinusOne : 1>
+ (HNormalized_Factors(_expression(),
+ Direction==Vertical ? _expression().rows()-1:0,
+ Direction==Horizontal ? _expression().cols()-1:0,
+ Direction==Vertical ? 1 : _expression().rows(),
+ Direction==Horizontal ? 1 : _expression().cols()),
+ Direction==Vertical ? _expression().rows()-1 : 1,
+ Direction==Horizontal ? _expression().cols()-1 : 1));
+}
+
+namespace internal {
+
+template<typename MatrixOrTransformType>
+struct take_matrix_for_product
+{
+ typedef MatrixOrTransformType type;
+ EIGEN_DEVICE_FUNC static const type& run(const type &x) { return x; }
+};
+
+template<typename Scalar, int Dim, int Mode,int Options>
+struct take_matrix_for_product<Transform<Scalar, Dim, Mode, Options> >
+{
+ typedef Transform<Scalar, Dim, Mode, Options> TransformType;
+ typedef typename internal::add_const<typename TransformType::ConstAffinePart>::type type;
+ EIGEN_DEVICE_FUNC static type run (const TransformType& x) { return x.affine(); }
+};
+
+template<typename Scalar, int Dim, int Options>
+struct take_matrix_for_product<Transform<Scalar, Dim, Projective, Options> >
+{
+ typedef Transform<Scalar, Dim, Projective, Options> TransformType;
+ typedef typename TransformType::MatrixType type;
+ EIGEN_DEVICE_FUNC static const type& run (const TransformType& x) { return x.matrix(); }
+};
+
+template<typename MatrixType,typename Lhs>
+struct traits<homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs> >
+{
+ typedef typename take_matrix_for_product<Lhs>::type LhsMatrixType;
+ typedef typename remove_all<MatrixType>::type MatrixTypeCleaned;
+ typedef typename remove_all<LhsMatrixType>::type LhsMatrixTypeCleaned;
+ typedef typename make_proper_matrix_type<
+ typename traits<MatrixTypeCleaned>::Scalar,
+ LhsMatrixTypeCleaned::RowsAtCompileTime,
+ MatrixTypeCleaned::ColsAtCompileTime,
+ MatrixTypeCleaned::PlainObject::Options,
+ LhsMatrixTypeCleaned::MaxRowsAtCompileTime,
+ MatrixTypeCleaned::MaxColsAtCompileTime>::type ReturnType;
+};
+
+template<typename MatrixType,typename Lhs>
+struct homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs>
+ : public ReturnByValue<homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs> >
+{
+ typedef typename traits<homogeneous_left_product_impl>::LhsMatrixType LhsMatrixType;
+ typedef typename remove_all<LhsMatrixType>::type LhsMatrixTypeCleaned;
+ typedef typename remove_all<typename LhsMatrixTypeCleaned::Nested>::type LhsMatrixTypeNested;
+ EIGEN_DEVICE_FUNC homogeneous_left_product_impl(const Lhs& lhs, const MatrixType& rhs)
+ : m_lhs(take_matrix_for_product<Lhs>::run(lhs)),
+ m_rhs(rhs)
+ {}
+
+ EIGEN_DEVICE_FUNC inline Index rows() const { return m_lhs.rows(); }
+ EIGEN_DEVICE_FUNC inline Index cols() const { return m_rhs.cols(); }
+
+ template<typename Dest> EIGEN_DEVICE_FUNC void evalTo(Dest& dst) const
+ {
+ // FIXME investigate how to allow lazy evaluation of this product when possible
+ dst = Block<const LhsMatrixTypeNested,
+ LhsMatrixTypeNested::RowsAtCompileTime,
+ LhsMatrixTypeNested::ColsAtCompileTime==Dynamic?Dynamic:LhsMatrixTypeNested::ColsAtCompileTime-1>
+ (m_lhs,0,0,m_lhs.rows(),m_lhs.cols()-1) * m_rhs;
+ dst += m_lhs.col(m_lhs.cols()-1).rowwise()
+ .template replicate<MatrixType::ColsAtCompileTime>(m_rhs.cols());
+ }
+
+ typename LhsMatrixTypeCleaned::Nested m_lhs;
+ typename MatrixType::Nested m_rhs;
+};
+
+template<typename MatrixType,typename Rhs>
+struct traits<homogeneous_right_product_impl<Homogeneous<MatrixType,Horizontal>,Rhs> >
+{
+ typedef typename make_proper_matrix_type<typename traits<MatrixType>::Scalar,
+ MatrixType::RowsAtCompileTime,
+ Rhs::ColsAtCompileTime,
+ MatrixType::PlainObject::Options,
+ MatrixType::MaxRowsAtCompileTime,
+ Rhs::MaxColsAtCompileTime>::type ReturnType;
+};
+
+template<typename MatrixType,typename Rhs>
+struct homogeneous_right_product_impl<Homogeneous<MatrixType,Horizontal>,Rhs>
+ : public ReturnByValue<homogeneous_right_product_impl<Homogeneous<MatrixType,Horizontal>,Rhs> >
+{
+ typedef typename remove_all<typename Rhs::Nested>::type RhsNested;
+ EIGEN_DEVICE_FUNC homogeneous_right_product_impl(const MatrixType& lhs, const Rhs& rhs)
+ : m_lhs(lhs), m_rhs(rhs)
+ {}
+
+ EIGEN_DEVICE_FUNC inline Index rows() const { return m_lhs.rows(); }
+ EIGEN_DEVICE_FUNC inline Index cols() const { return m_rhs.cols(); }
+
+ template<typename Dest> EIGEN_DEVICE_FUNC void evalTo(Dest& dst) const
+ {
+ // FIXME investigate how to allow lazy evaluation of this product when possible
+ dst = m_lhs * Block<const RhsNested,
+ RhsNested::RowsAtCompileTime==Dynamic?Dynamic:RhsNested::RowsAtCompileTime-1,
+ RhsNested::ColsAtCompileTime>
+ (m_rhs,0,0,m_rhs.rows()-1,m_rhs.cols());
+ dst += m_rhs.row(m_rhs.rows()-1).colwise()
+ .template replicate<MatrixType::RowsAtCompileTime>(m_lhs.rows());
+ }
+
+ typename MatrixType::Nested m_lhs;
+ typename Rhs::Nested m_rhs;
+};
+
+template<typename ArgType,int Direction>
+struct evaluator_traits<Homogeneous<ArgType,Direction> >
+{
+ typedef typename storage_kind_to_evaluator_kind<typename ArgType::StorageKind>::Kind Kind;
+ typedef HomogeneousShape Shape;
+};
+
+template<> struct AssignmentKind<DenseShape,HomogeneousShape> { typedef Dense2Dense Kind; };
+
+
+template<typename ArgType,int Direction>
+struct unary_evaluator<Homogeneous<ArgType,Direction>, IndexBased>
+ : evaluator<typename Homogeneous<ArgType,Direction>::PlainObject >
+{
+ typedef Homogeneous<ArgType,Direction> XprType;
+ typedef typename XprType::PlainObject PlainObject;
+ typedef evaluator<PlainObject> Base;
+
+ EIGEN_DEVICE_FUNC explicit unary_evaluator(const XprType& op)
+ : Base(), m_temp(op)
+ {
+ ::new (static_cast<Base*>(this)) Base(m_temp);
+ }
+
+protected:
+ PlainObject m_temp;
+};
+
+// dense = homogeneous
+template< typename DstXprType, typename ArgType, typename Scalar>
+struct Assignment<DstXprType, Homogeneous<ArgType,Vertical>, internal::assign_op<Scalar,typename ArgType::Scalar>, Dense2Dense>
+{
+ typedef Homogeneous<ArgType,Vertical> SrcXprType;
+ EIGEN_DEVICE_FUNC static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<Scalar,typename ArgType::Scalar> &)
+ {
+ Index dstRows = src.rows();
+ Index dstCols = src.cols();
+ if((dst.rows()!=dstRows) || (dst.cols()!=dstCols))
+ dst.resize(dstRows, dstCols);
+
+ dst.template topRows<ArgType::RowsAtCompileTime>(src.nestedExpression().rows()) = src.nestedExpression();
+ dst.row(dst.rows()-1).setOnes();
+ }
+};
+
+// dense = homogeneous
+template< typename DstXprType, typename ArgType, typename Scalar>
+struct Assignment<DstXprType, Homogeneous<ArgType,Horizontal>, internal::assign_op<Scalar,typename ArgType::Scalar>, Dense2Dense>
+{
+ typedef Homogeneous<ArgType,Horizontal> SrcXprType;
+ EIGEN_DEVICE_FUNC static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<Scalar,typename ArgType::Scalar> &)
+ {
+ Index dstRows = src.rows();
+ Index dstCols = src.cols();
+ if((dst.rows()!=dstRows) || (dst.cols()!=dstCols))
+ dst.resize(dstRows, dstCols);
+
+ dst.template leftCols<ArgType::ColsAtCompileTime>(src.nestedExpression().cols()) = src.nestedExpression();
+ dst.col(dst.cols()-1).setOnes();
+ }
+};
+
+template<typename LhsArg, typename Rhs, int ProductTag>
+struct generic_product_impl<Homogeneous<LhsArg,Horizontal>, Rhs, HomogeneousShape, DenseShape, ProductTag>
+{
+ template<typename Dest>
+ EIGEN_DEVICE_FUNC static void evalTo(Dest& dst, const Homogeneous<LhsArg,Horizontal>& lhs, const Rhs& rhs)
+ {
+ homogeneous_right_product_impl<Homogeneous<LhsArg,Horizontal>, Rhs>(lhs.nestedExpression(), rhs).evalTo(dst);
+ }
+};
+
+template<typename Lhs,typename Rhs>
+struct homogeneous_right_product_refactoring_helper
+{
+ enum {
+ Dim = Lhs::ColsAtCompileTime,
+ Rows = Lhs::RowsAtCompileTime
+ };
+ typedef typename Rhs::template ConstNRowsBlockXpr<Dim>::Type LinearBlockConst;
+ typedef typename remove_const<LinearBlockConst>::type LinearBlock;
+ typedef typename Rhs::ConstRowXpr ConstantColumn;
+ typedef Replicate<const ConstantColumn,Rows,1> ConstantBlock;
+ typedef Product<Lhs,LinearBlock,LazyProduct> LinearProduct;
+ typedef CwiseBinaryOp<internal::scalar_sum_op<typename Lhs::Scalar,typename Rhs::Scalar>, const LinearProduct, const ConstantBlock> Xpr;
+};
+
+template<typename Lhs, typename Rhs, int ProductTag>
+struct product_evaluator<Product<Lhs, Rhs, LazyProduct>, ProductTag, HomogeneousShape, DenseShape>
+ : public evaluator<typename homogeneous_right_product_refactoring_helper<typename Lhs::NestedExpression,Rhs>::Xpr>
+{
+ typedef Product<Lhs, Rhs, LazyProduct> XprType;
+ typedef homogeneous_right_product_refactoring_helper<typename Lhs::NestedExpression,Rhs> helper;
+ typedef typename helper::ConstantBlock ConstantBlock;
+ typedef typename helper::Xpr RefactoredXpr;
+ typedef evaluator<RefactoredXpr> Base;
+
+ EIGEN_DEVICE_FUNC explicit product_evaluator(const XprType& xpr)
+ : Base( xpr.lhs().nestedExpression() .lazyProduct( xpr.rhs().template topRows<helper::Dim>(xpr.lhs().nestedExpression().cols()) )
+ + ConstantBlock(xpr.rhs().row(xpr.rhs().rows()-1),xpr.lhs().rows(), 1) )
+ {}
+};
+
+template<typename Lhs, typename RhsArg, int ProductTag>
+struct generic_product_impl<Lhs, Homogeneous<RhsArg,Vertical>, DenseShape, HomogeneousShape, ProductTag>
+{
+ template<typename Dest>
+ EIGEN_DEVICE_FUNC static void evalTo(Dest& dst, const Lhs& lhs, const Homogeneous<RhsArg,Vertical>& rhs)
+ {
+ homogeneous_left_product_impl<Homogeneous<RhsArg,Vertical>, Lhs>(lhs, rhs.nestedExpression()).evalTo(dst);
+ }
+};
+
+// TODO: the following specialization is to address a regression from 3.2 to 3.3
+// In the future, this path should be optimized.
+template<typename Lhs, typename RhsArg, int ProductTag>
+struct generic_product_impl<Lhs, Homogeneous<RhsArg,Vertical>, TriangularShape, HomogeneousShape, ProductTag>
+{
+ template<typename Dest>
+ static void evalTo(Dest& dst, const Lhs& lhs, const Homogeneous<RhsArg,Vertical>& rhs)
+ {
+ dst.noalias() = lhs * rhs.eval();
+ }
+};
+
+template<typename Lhs,typename Rhs>
+struct homogeneous_left_product_refactoring_helper
+{
+ enum {
+ Dim = Rhs::RowsAtCompileTime,
+ Cols = Rhs::ColsAtCompileTime
+ };
+ typedef typename Lhs::template ConstNColsBlockXpr<Dim>::Type LinearBlockConst;
+ typedef typename remove_const<LinearBlockConst>::type LinearBlock;
+ typedef typename Lhs::ConstColXpr ConstantColumn;
+ typedef Replicate<const ConstantColumn,1,Cols> ConstantBlock;
+ typedef Product<LinearBlock,Rhs,LazyProduct> LinearProduct;
+ typedef CwiseBinaryOp<internal::scalar_sum_op<typename Lhs::Scalar,typename Rhs::Scalar>, const LinearProduct, const ConstantBlock> Xpr;
+};
+
+template<typename Lhs, typename Rhs, int ProductTag>
+struct product_evaluator<Product<Lhs, Rhs, LazyProduct>, ProductTag, DenseShape, HomogeneousShape>
+ : public evaluator<typename homogeneous_left_product_refactoring_helper<Lhs,typename Rhs::NestedExpression>::Xpr>
+{
+ typedef Product<Lhs, Rhs, LazyProduct> XprType;
+ typedef homogeneous_left_product_refactoring_helper<Lhs,typename Rhs::NestedExpression> helper;
+ typedef typename helper::ConstantBlock ConstantBlock;
+ typedef typename helper::Xpr RefactoredXpr;
+ typedef evaluator<RefactoredXpr> Base;
+
+ EIGEN_DEVICE_FUNC explicit product_evaluator(const XprType& xpr)
+ : Base( xpr.lhs().template leftCols<helper::Dim>(xpr.rhs().nestedExpression().rows()) .lazyProduct( xpr.rhs().nestedExpression() )
+ + ConstantBlock(xpr.lhs().col(xpr.lhs().cols()-1),1,xpr.rhs().cols()) )
+ {}
+};
+
+template<typename Scalar, int Dim, int Mode,int Options, typename RhsArg, int ProductTag>
+struct generic_product_impl<Transform<Scalar,Dim,Mode,Options>, Homogeneous<RhsArg,Vertical>, DenseShape, HomogeneousShape, ProductTag>
+{
+ typedef Transform<Scalar,Dim,Mode,Options> TransformType;
+ template<typename Dest>
+ EIGEN_DEVICE_FUNC static void evalTo(Dest& dst, const TransformType& lhs, const Homogeneous<RhsArg,Vertical>& rhs)
+ {
+ homogeneous_left_product_impl<Homogeneous<RhsArg,Vertical>, TransformType>(lhs, rhs.nestedExpression()).evalTo(dst);
+ }
+};
+
+template<typename ExpressionType, int Side, bool Transposed>
+struct permutation_matrix_product<ExpressionType, Side, Transposed, HomogeneousShape>
+ : public permutation_matrix_product<ExpressionType, Side, Transposed, DenseShape>
+{};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_HOMOGENEOUS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Hyperplane.h b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Hyperplane.h
new file mode 100644
index 000000000..05929b299
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Hyperplane.h
@@ -0,0 +1,282 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_HYPERPLANE_H
+#define EIGEN_HYPERPLANE_H
+
+namespace Eigen {
+
+/** \geometry_module \ingroup Geometry_Module
+ *
+ * \class Hyperplane
+ *
+ * \brief A hyperplane
+ *
+ * A hyperplane is an affine subspace of dimension n-1 in a space of dimension n.
+ * For example, a hyperplane in a plane is a line; a hyperplane in 3-space is a plane.
+ *
+ * \tparam _Scalar the scalar type, i.e., the type of the coefficients
+ * \tparam _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
+ * Notice that the dimension of the hyperplane is _AmbientDim-1.
+ *
+ * This class represents an hyperplane as the zero set of the implicit equation
+ * \f$ n \cdot x + d = 0 \f$ where \f$ n \f$ is a unit normal vector of the plane (linear part)
+ * and \f$ d \f$ is the distance (offset) to the origin.
+ */
+template <typename _Scalar, int _AmbientDim, int _Options>
+class Hyperplane
+{
+public:
+ EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim==Dynamic ? Dynamic : _AmbientDim+1)
+ enum {
+ AmbientDimAtCompileTime = _AmbientDim,
+ Options = _Options
+ };
+ typedef _Scalar Scalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
+ typedef Matrix<Scalar,AmbientDimAtCompileTime,1> VectorType;
+ typedef Matrix<Scalar,Index(AmbientDimAtCompileTime)==Dynamic
+ ? Dynamic
+ : Index(AmbientDimAtCompileTime)+1,1,Options> Coefficients;
+ typedef Block<Coefficients,AmbientDimAtCompileTime,1> NormalReturnType;
+ typedef const Block<const Coefficients,AmbientDimAtCompileTime,1> ConstNormalReturnType;
+
+ /** Default constructor without initialization */
+ EIGEN_DEVICE_FUNC inline Hyperplane() {}
+
+ template<int OtherOptions>
+ EIGEN_DEVICE_FUNC Hyperplane(const Hyperplane<Scalar,AmbientDimAtCompileTime,OtherOptions>& other)
+ : m_coeffs(other.coeffs())
+ {}
+
+ /** Constructs a dynamic-size hyperplane with \a _dim the dimension
+ * of the ambient space */
+ EIGEN_DEVICE_FUNC inline explicit Hyperplane(Index _dim) : m_coeffs(_dim+1) {}
+
+ /** Construct a plane from its normal \a n and a point \a e onto the plane.
+ * \warning the vector normal is assumed to be normalized.
+ */
+ EIGEN_DEVICE_FUNC inline Hyperplane(const VectorType& n, const VectorType& e)
+ : m_coeffs(n.size()+1)
+ {
+ normal() = n;
+ offset() = -n.dot(e);
+ }
+
+ /** Constructs a plane from its normal \a n and distance to the origin \a d
+ * such that the algebraic equation of the plane is \f$ n \cdot x + d = 0 \f$.
+ * \warning the vector normal is assumed to be normalized.
+ */
+ EIGEN_DEVICE_FUNC inline Hyperplane(const VectorType& n, const Scalar& d)
+ : m_coeffs(n.size()+1)
+ {
+ normal() = n;
+ offset() = d;
+ }
+
+ /** Constructs a hyperplane passing through the two points. If the dimension of the ambient space
+ * is greater than 2, then there isn't uniqueness, so an arbitrary choice is made.
+ */
+ EIGEN_DEVICE_FUNC static inline Hyperplane Through(const VectorType& p0, const VectorType& p1)
+ {
+ Hyperplane result(p0.size());
+ result.normal() = (p1 - p0).unitOrthogonal();
+ result.offset() = -p0.dot(result.normal());
+ return result;
+ }
+
+ /** Constructs a hyperplane passing through the three points. The dimension of the ambient space
+ * is required to be exactly 3.
+ */
+ EIGEN_DEVICE_FUNC static inline Hyperplane Through(const VectorType& p0, const VectorType& p1, const VectorType& p2)
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 3)
+ Hyperplane result(p0.size());
+ VectorType v0(p2 - p0), v1(p1 - p0);
+ result.normal() = v0.cross(v1);
+ RealScalar norm = result.normal().norm();
+ if(norm <= v0.norm() * v1.norm() * NumTraits<RealScalar>::epsilon())
+ {
+ Matrix<Scalar,2,3> m; m << v0.transpose(), v1.transpose();
+ JacobiSVD<Matrix<Scalar,2,3> > svd(m, ComputeFullV);
+ result.normal() = svd.matrixV().col(2);
+ }
+ else
+ result.normal() /= norm;
+ result.offset() = -p0.dot(result.normal());
+ return result;
+ }
+
+ /** Constructs a hyperplane passing through the parametrized line \a parametrized.
+ * If the dimension of the ambient space is greater than 2, then there isn't uniqueness,
+ * so an arbitrary choice is made.
+ */
+ // FIXME to be consitent with the rest this could be implemented as a static Through function ??
+ EIGEN_DEVICE_FUNC explicit Hyperplane(const ParametrizedLine<Scalar, AmbientDimAtCompileTime>& parametrized)
+ {
+ normal() = parametrized.direction().unitOrthogonal();
+ offset() = -parametrized.origin().dot(normal());
+ }
+
+ EIGEN_DEVICE_FUNC ~Hyperplane() {}
+
+ /** \returns the dimension in which the plane holds */
+ EIGEN_DEVICE_FUNC inline Index dim() const { return AmbientDimAtCompileTime==Dynamic ? m_coeffs.size()-1 : Index(AmbientDimAtCompileTime); }
+
+ /** normalizes \c *this */
+ EIGEN_DEVICE_FUNC void normalize(void)
+ {
+ m_coeffs /= normal().norm();
+ }
+
+ /** \returns the signed distance between the plane \c *this and a point \a p.
+ * \sa absDistance()
+ */
+ EIGEN_DEVICE_FUNC inline Scalar signedDistance(const VectorType& p) const { return normal().dot(p) + offset(); }
+
+ /** \returns the absolute distance between the plane \c *this and a point \a p.
+ * \sa signedDistance()
+ */
+ EIGEN_DEVICE_FUNC inline Scalar absDistance(const VectorType& p) const { return numext::abs(signedDistance(p)); }
+
+ /** \returns the projection of a point \a p onto the plane \c *this.
+ */
+ EIGEN_DEVICE_FUNC inline VectorType projection(const VectorType& p) const { return p - signedDistance(p) * normal(); }
+
+ /** \returns a constant reference to the unit normal vector of the plane, which corresponds
+ * to the linear part of the implicit equation.
+ */
+ EIGEN_DEVICE_FUNC inline ConstNormalReturnType normal() const { return ConstNormalReturnType(m_coeffs,0,0,dim(),1); }
+
+ /** \returns a non-constant reference to the unit normal vector of the plane, which corresponds
+ * to the linear part of the implicit equation.
+ */
+ EIGEN_DEVICE_FUNC inline NormalReturnType normal() { return NormalReturnType(m_coeffs,0,0,dim(),1); }
+
+ /** \returns the distance to the origin, which is also the "constant term" of the implicit equation
+ * \warning the vector normal is assumed to be normalized.
+ */
+ EIGEN_DEVICE_FUNC inline const Scalar& offset() const { return m_coeffs.coeff(dim()); }
+
+ /** \returns a non-constant reference to the distance to the origin, which is also the constant part
+ * of the implicit equation */
+ EIGEN_DEVICE_FUNC inline Scalar& offset() { return m_coeffs(dim()); }
+
+ /** \returns a constant reference to the coefficients c_i of the plane equation:
+ * \f$ c_0*x_0 + ... + c_{d-1}*x_{d-1} + c_d = 0 \f$
+ */
+ EIGEN_DEVICE_FUNC inline const Coefficients& coeffs() const { return m_coeffs; }
+
+ /** \returns a non-constant reference to the coefficients c_i of the plane equation:
+ * \f$ c_0*x_0 + ... + c_{d-1}*x_{d-1} + c_d = 0 \f$
+ */
+ EIGEN_DEVICE_FUNC inline Coefficients& coeffs() { return m_coeffs; }
+
+ /** \returns the intersection of *this with \a other.
+ *
+ * \warning The ambient space must be a plane, i.e. have dimension 2, so that \c *this and \a other are lines.
+ *
+ * \note If \a other is approximately parallel to *this, this method will return any point on *this.
+ */
+ EIGEN_DEVICE_FUNC VectorType intersection(const Hyperplane& other) const
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 2)
+ Scalar det = coeffs().coeff(0) * other.coeffs().coeff(1) - coeffs().coeff(1) * other.coeffs().coeff(0);
+ // since the line equations ax+by=c are normalized with a^2+b^2=1, the following tests
+ // whether the two lines are approximately parallel.
+ if(internal::isMuchSmallerThan(det, Scalar(1)))
+ { // special case where the two lines are approximately parallel. Pick any point on the first line.
+ if(numext::abs(coeffs().coeff(1))>numext::abs(coeffs().coeff(0)))
+ return VectorType(coeffs().coeff(1), -coeffs().coeff(2)/coeffs().coeff(1)-coeffs().coeff(0));
+ else
+ return VectorType(-coeffs().coeff(2)/coeffs().coeff(0)-coeffs().coeff(1), coeffs().coeff(0));
+ }
+ else
+ { // general case
+ Scalar invdet = Scalar(1) / det;
+ return VectorType(invdet*(coeffs().coeff(1)*other.coeffs().coeff(2)-other.coeffs().coeff(1)*coeffs().coeff(2)),
+ invdet*(other.coeffs().coeff(0)*coeffs().coeff(2)-coeffs().coeff(0)*other.coeffs().coeff(2)));
+ }
+ }
+
+ /** Applies the transformation matrix \a mat to \c *this and returns a reference to \c *this.
+ *
+ * \param mat the Dim x Dim transformation matrix
+ * \param traits specifies whether the matrix \a mat represents an #Isometry
+ * or a more generic #Affine transformation. The default is #Affine.
+ */
+ template<typename XprType>
+ EIGEN_DEVICE_FUNC inline Hyperplane& transform(const MatrixBase<XprType>& mat, TransformTraits traits = Affine)
+ {
+ if (traits==Affine)
+ {
+ normal() = mat.inverse().transpose() * normal();
+ m_coeffs /= normal().norm();
+ }
+ else if (traits==Isometry)
+ normal() = mat * normal();
+ else
+ {
+ eigen_assert(0 && "invalid traits value in Hyperplane::transform()");
+ }
+ return *this;
+ }
+
+ /** Applies the transformation \a t to \c *this and returns a reference to \c *this.
+ *
+ * \param t the transformation of dimension Dim
+ * \param traits specifies whether the transformation \a t represents an #Isometry
+ * or a more generic #Affine transformation. The default is #Affine.
+ * Other kind of transformations are not supported.
+ */
+ template<int TrOptions>
+ EIGEN_DEVICE_FUNC inline Hyperplane& transform(const Transform<Scalar,AmbientDimAtCompileTime,Affine,TrOptions>& t,
+ TransformTraits traits = Affine)
+ {
+ transform(t.linear(), traits);
+ offset() -= normal().dot(t.translation());
+ return *this;
+ }
+
+ /** \returns \c *this with scalar type casted to \a NewScalarType
+ *
+ * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+ * then this function smartly returns a const reference to \c *this.
+ */
+ template<typename NewScalarType>
+ EIGEN_DEVICE_FUNC inline typename internal::cast_return_type<Hyperplane,
+ Hyperplane<NewScalarType,AmbientDimAtCompileTime,Options> >::type cast() const
+ {
+ return typename internal::cast_return_type<Hyperplane,
+ Hyperplane<NewScalarType,AmbientDimAtCompileTime,Options> >::type(*this);
+ }
+
+ /** Copy constructor with scalar type conversion */
+ template<typename OtherScalarType,int OtherOptions>
+ EIGEN_DEVICE_FUNC inline explicit Hyperplane(const Hyperplane<OtherScalarType,AmbientDimAtCompileTime,OtherOptions>& other)
+ { m_coeffs = other.coeffs().template cast<Scalar>(); }
+
+ /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+ * determined by \a prec.
+ *
+ * \sa MatrixBase::isApprox() */
+ template<int OtherOptions>
+ EIGEN_DEVICE_FUNC bool isApprox(const Hyperplane<Scalar,AmbientDimAtCompileTime,OtherOptions>& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
+ { return m_coeffs.isApprox(other.m_coeffs, prec); }
+
+protected:
+
+ Coefficients m_coeffs;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_HYPERPLANE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/OrthoMethods.h b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/OrthoMethods.h
new file mode 100644
index 000000000..a035e6310
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/OrthoMethods.h
@@ -0,0 +1,234 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ORTHOMETHODS_H
+#define EIGEN_ORTHOMETHODS_H
+
+namespace Eigen {
+
+/** \geometry_module \ingroup Geometry_Module
+ *
+ * \returns the cross product of \c *this and \a other
+ *
+ * Here is a very good explanation of cross-product: http://xkcd.com/199/
+ *
+ * With complex numbers, the cross product is implemented as
+ * \f$ (\mathbf{a}+i\mathbf{b}) \times (\mathbf{c}+i\mathbf{d}) = (\mathbf{a} \times \mathbf{c} - \mathbf{b} \times \mathbf{d}) - i(\mathbf{a} \times \mathbf{d} - \mathbf{b} \times \mathbf{c})\f$
+ *
+ * \sa MatrixBase::cross3()
+ */
+template<typename Derived>
+template<typename OtherDerived>
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+EIGEN_DEVICE_FUNC inline typename MatrixBase<Derived>::template cross_product_return_type<OtherDerived>::type
+#else
+inline typename MatrixBase<Derived>::PlainObject
+#endif
+MatrixBase<Derived>::cross(const MatrixBase<OtherDerived>& other) const
+{
+ EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Derived,3)
+ EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,3)
+
+ // Note that there is no need for an expression here since the compiler
+ // optimize such a small temporary very well (even within a complex expression)
+ typename internal::nested_eval<Derived,2>::type lhs(derived());
+ typename internal::nested_eval<OtherDerived,2>::type rhs(other.derived());
+ return typename cross_product_return_type<OtherDerived>::type(
+ numext::conj(lhs.coeff(1) * rhs.coeff(2) - lhs.coeff(2) * rhs.coeff(1)),
+ numext::conj(lhs.coeff(2) * rhs.coeff(0) - lhs.coeff(0) * rhs.coeff(2)),
+ numext::conj(lhs.coeff(0) * rhs.coeff(1) - lhs.coeff(1) * rhs.coeff(0))
+ );
+}
+
+namespace internal {
+
+template< int Arch,typename VectorLhs,typename VectorRhs,
+ typename Scalar = typename VectorLhs::Scalar,
+ bool Vectorizable = bool((VectorLhs::Flags&VectorRhs::Flags)&PacketAccessBit)>
+struct cross3_impl {
+ EIGEN_DEVICE_FUNC static inline typename internal::plain_matrix_type<VectorLhs>::type
+ run(const VectorLhs& lhs, const VectorRhs& rhs)
+ {
+ return typename internal::plain_matrix_type<VectorLhs>::type(
+ numext::conj(lhs.coeff(1) * rhs.coeff(2) - lhs.coeff(2) * rhs.coeff(1)),
+ numext::conj(lhs.coeff(2) * rhs.coeff(0) - lhs.coeff(0) * rhs.coeff(2)),
+ numext::conj(lhs.coeff(0) * rhs.coeff(1) - lhs.coeff(1) * rhs.coeff(0)),
+ 0
+ );
+ }
+};
+
+}
+
+/** \geometry_module \ingroup Geometry_Module
+ *
+ * \returns the cross product of \c *this and \a other using only the x, y, and z coefficients
+ *
+ * The size of \c *this and \a other must be four. This function is especially useful
+ * when using 4D vectors instead of 3D ones to get advantage of SSE/AltiVec vectorization.
+ *
+ * \sa MatrixBase::cross()
+ */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC inline typename MatrixBase<Derived>::PlainObject
+MatrixBase<Derived>::cross3(const MatrixBase<OtherDerived>& other) const
+{
+ EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Derived,4)
+ EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,4)
+
+ typedef typename internal::nested_eval<Derived,2>::type DerivedNested;
+ typedef typename internal::nested_eval<OtherDerived,2>::type OtherDerivedNested;
+ DerivedNested lhs(derived());
+ OtherDerivedNested rhs(other.derived());
+
+ return internal::cross3_impl<Architecture::Target,
+ typename internal::remove_all<DerivedNested>::type,
+ typename internal::remove_all<OtherDerivedNested>::type>::run(lhs,rhs);
+}
+
+/** \geometry_module \ingroup Geometry_Module
+ *
+ * \returns a matrix expression of the cross product of each column or row
+ * of the referenced expression with the \a other vector.
+ *
+ * The referenced matrix must have one dimension equal to 3.
+ * The result matrix has the same dimensions than the referenced one.
+ *
+ * \sa MatrixBase::cross() */
+template<typename ExpressionType, int Direction>
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC
+const typename VectorwiseOp<ExpressionType,Direction>::CrossReturnType
+VectorwiseOp<ExpressionType,Direction>::cross(const MatrixBase<OtherDerived>& other) const
+{
+ EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,3)
+ EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
+ YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+ typename internal::nested_eval<ExpressionType,2>::type mat(_expression());
+ typename internal::nested_eval<OtherDerived,2>::type vec(other.derived());
+
+ CrossReturnType res(_expression().rows(),_expression().cols());
+ if(Direction==Vertical)
+ {
+ eigen_assert(CrossReturnType::RowsAtCompileTime==3 && "the matrix must have exactly 3 rows");
+ res.row(0) = (mat.row(1) * vec.coeff(2) - mat.row(2) * vec.coeff(1)).conjugate();
+ res.row(1) = (mat.row(2) * vec.coeff(0) - mat.row(0) * vec.coeff(2)).conjugate();
+ res.row(2) = (mat.row(0) * vec.coeff(1) - mat.row(1) * vec.coeff(0)).conjugate();
+ }
+ else
+ {
+ eigen_assert(CrossReturnType::ColsAtCompileTime==3 && "the matrix must have exactly 3 columns");
+ res.col(0) = (mat.col(1) * vec.coeff(2) - mat.col(2) * vec.coeff(1)).conjugate();
+ res.col(1) = (mat.col(2) * vec.coeff(0) - mat.col(0) * vec.coeff(2)).conjugate();
+ res.col(2) = (mat.col(0) * vec.coeff(1) - mat.col(1) * vec.coeff(0)).conjugate();
+ }
+ return res;
+}
+
+namespace internal {
+
+template<typename Derived, int Size = Derived::SizeAtCompileTime>
+struct unitOrthogonal_selector
+{
+ typedef typename plain_matrix_type<Derived>::type VectorType;
+ typedef typename traits<Derived>::Scalar Scalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ typedef Matrix<Scalar,2,1> Vector2;
+ EIGEN_DEVICE_FUNC
+ static inline VectorType run(const Derived& src)
+ {
+ VectorType perp = VectorType::Zero(src.size());
+ Index maxi = 0;
+ Index sndi = 0;
+ src.cwiseAbs().maxCoeff(&maxi);
+ if (maxi==0)
+ sndi = 1;
+ RealScalar invnm = RealScalar(1)/(Vector2() << src.coeff(sndi),src.coeff(maxi)).finished().norm();
+ perp.coeffRef(maxi) = -numext::conj(src.coeff(sndi)) * invnm;
+ perp.coeffRef(sndi) = numext::conj(src.coeff(maxi)) * invnm;
+
+ return perp;
+ }
+};
+
+template<typename Derived>
+struct unitOrthogonal_selector<Derived,3>
+{
+ typedef typename plain_matrix_type<Derived>::type VectorType;
+ typedef typename traits<Derived>::Scalar Scalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ EIGEN_DEVICE_FUNC
+ static inline VectorType run(const Derived& src)
+ {
+ VectorType perp;
+ /* Let us compute the crossed product of *this with a vector
+ * that is not too close to being colinear to *this.
+ */
+
+ /* unless the x and y coords are both close to zero, we can
+ * simply take ( -y, x, 0 ) and normalize it.
+ */
+ if((!isMuchSmallerThan(src.x(), src.z()))
+ || (!isMuchSmallerThan(src.y(), src.z())))
+ {
+ RealScalar invnm = RealScalar(1)/src.template head<2>().norm();
+ perp.coeffRef(0) = -numext::conj(src.y())*invnm;
+ perp.coeffRef(1) = numext::conj(src.x())*invnm;
+ perp.coeffRef(2) = 0;
+ }
+ /* if both x and y are close to zero, then the vector is close
+ * to the z-axis, so it's far from colinear to the x-axis for instance.
+ * So we take the crossed product with (1,0,0) and normalize it.
+ */
+ else
+ {
+ RealScalar invnm = RealScalar(1)/src.template tail<2>().norm();
+ perp.coeffRef(0) = 0;
+ perp.coeffRef(1) = -numext::conj(src.z())*invnm;
+ perp.coeffRef(2) = numext::conj(src.y())*invnm;
+ }
+
+ return perp;
+ }
+};
+
+template<typename Derived>
+struct unitOrthogonal_selector<Derived,2>
+{
+ typedef typename plain_matrix_type<Derived>::type VectorType;
+ EIGEN_DEVICE_FUNC
+ static inline VectorType run(const Derived& src)
+ { return VectorType(-numext::conj(src.y()), numext::conj(src.x())).normalized(); }
+};
+
+} // end namespace internal
+
+/** \geometry_module \ingroup Geometry_Module
+ *
+ * \returns a unit vector which is orthogonal to \c *this
+ *
+ * The size of \c *this must be at least 2. If the size is exactly 2,
+ * then the returned vector is a counter clock wise rotation of \c *this, i.e., (-y,x).normalized().
+ *
+ * \sa cross()
+ */
+template<typename Derived>
+EIGEN_DEVICE_FUNC typename MatrixBase<Derived>::PlainObject
+MatrixBase<Derived>::unitOrthogonal() const
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ return internal::unitOrthogonal_selector<Derived>::run(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_ORTHOMETHODS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/ParametrizedLine.h b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/ParametrizedLine.h
new file mode 100644
index 000000000..1e985d8cd
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/ParametrizedLine.h
@@ -0,0 +1,195 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PARAMETRIZEDLINE_H
+#define EIGEN_PARAMETRIZEDLINE_H
+
+namespace Eigen {
+
+/** \geometry_module \ingroup Geometry_Module
+ *
+ * \class ParametrizedLine
+ *
+ * \brief A parametrized line
+ *
+ * A parametrized line is defined by an origin point \f$ \mathbf{o} \f$ and a unit
+ * direction vector \f$ \mathbf{d} \f$ such that the line corresponds to
+ * the set \f$ l(t) = \mathbf{o} + t \mathbf{d} \f$, \f$ t \in \mathbf{R} \f$.
+ *
+ * \tparam _Scalar the scalar type, i.e., the type of the coefficients
+ * \tparam _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
+ */
+template <typename _Scalar, int _AmbientDim, int _Options>
+class ParametrizedLine
+{
+public:
+ EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim)
+ enum {
+ AmbientDimAtCompileTime = _AmbientDim,
+ Options = _Options
+ };
+ typedef _Scalar Scalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
+ typedef Matrix<Scalar,AmbientDimAtCompileTime,1,Options> VectorType;
+
+ /** Default constructor without initialization */
+ EIGEN_DEVICE_FUNC inline ParametrizedLine() {}
+
+ template<int OtherOptions>
+ EIGEN_DEVICE_FUNC ParametrizedLine(const ParametrizedLine<Scalar,AmbientDimAtCompileTime,OtherOptions>& other)
+ : m_origin(other.origin()), m_direction(other.direction())
+ {}
+
+ /** Constructs a dynamic-size line with \a _dim the dimension
+ * of the ambient space */
+ EIGEN_DEVICE_FUNC inline explicit ParametrizedLine(Index _dim) : m_origin(_dim), m_direction(_dim) {}
+
+ /** Initializes a parametrized line of direction \a direction and origin \a origin.
+ * \warning the vector direction is assumed to be normalized.
+ */
+ EIGEN_DEVICE_FUNC ParametrizedLine(const VectorType& origin, const VectorType& direction)
+ : m_origin(origin), m_direction(direction) {}
+
+ template <int OtherOptions>
+ EIGEN_DEVICE_FUNC explicit ParametrizedLine(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane);
+
+ /** Constructs a parametrized line going from \a p0 to \a p1. */
+ EIGEN_DEVICE_FUNC static inline ParametrizedLine Through(const VectorType& p0, const VectorType& p1)
+ { return ParametrizedLine(p0, (p1-p0).normalized()); }
+
+ EIGEN_DEVICE_FUNC ~ParametrizedLine() {}
+
+ /** \returns the dimension in which the line holds */
+ EIGEN_DEVICE_FUNC inline Index dim() const { return m_direction.size(); }
+
+ EIGEN_DEVICE_FUNC const VectorType& origin() const { return m_origin; }
+ EIGEN_DEVICE_FUNC VectorType& origin() { return m_origin; }
+
+ EIGEN_DEVICE_FUNC const VectorType& direction() const { return m_direction; }
+ EIGEN_DEVICE_FUNC VectorType& direction() { return m_direction; }
+
+ /** \returns the squared distance of a point \a p to its projection onto the line \c *this.
+ * \sa distance()
+ */
+ EIGEN_DEVICE_FUNC RealScalar squaredDistance(const VectorType& p) const
+ {
+ VectorType diff = p - origin();
+ return (diff - direction().dot(diff) * direction()).squaredNorm();
+ }
+ /** \returns the distance of a point \a p to its projection onto the line \c *this.
+ * \sa squaredDistance()
+ */
+ EIGEN_DEVICE_FUNC RealScalar distance(const VectorType& p) const { EIGEN_USING_STD_MATH(sqrt) return sqrt(squaredDistance(p)); }
+
+ /** \returns the projection of a point \a p onto the line \c *this. */
+ EIGEN_DEVICE_FUNC VectorType projection(const VectorType& p) const
+ { return origin() + direction().dot(p-origin()) * direction(); }
+
+ EIGEN_DEVICE_FUNC VectorType pointAt(const Scalar& t) const;
+
+ template <int OtherOptions>
+ EIGEN_DEVICE_FUNC Scalar intersectionParameter(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const;
+
+ template <int OtherOptions>
+ EIGEN_DEVICE_FUNC Scalar intersection(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const;
+
+ template <int OtherOptions>
+ EIGEN_DEVICE_FUNC VectorType intersectionPoint(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const;
+
+ /** \returns \c *this with scalar type casted to \a NewScalarType
+ *
+ * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+ * then this function smartly returns a const reference to \c *this.
+ */
+ template<typename NewScalarType>
+ EIGEN_DEVICE_FUNC inline typename internal::cast_return_type<ParametrizedLine,
+ ParametrizedLine<NewScalarType,AmbientDimAtCompileTime,Options> >::type cast() const
+ {
+ return typename internal::cast_return_type<ParametrizedLine,
+ ParametrizedLine<NewScalarType,AmbientDimAtCompileTime,Options> >::type(*this);
+ }
+
+ /** Copy constructor with scalar type conversion */
+ template<typename OtherScalarType,int OtherOptions>
+ EIGEN_DEVICE_FUNC inline explicit ParametrizedLine(const ParametrizedLine<OtherScalarType,AmbientDimAtCompileTime,OtherOptions>& other)
+ {
+ m_origin = other.origin().template cast<Scalar>();
+ m_direction = other.direction().template cast<Scalar>();
+ }
+
+ /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+ * determined by \a prec.
+ *
+ * \sa MatrixBase::isApprox() */
+ EIGEN_DEVICE_FUNC bool isApprox(const ParametrizedLine& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
+ { return m_origin.isApprox(other.m_origin, prec) && m_direction.isApprox(other.m_direction, prec); }
+
+protected:
+
+ VectorType m_origin, m_direction;
+};
+
+/** Constructs a parametrized line from a 2D hyperplane
+ *
+ * \warning the ambient space must have dimension 2 such that the hyperplane actually describes a line
+ */
+template <typename _Scalar, int _AmbientDim, int _Options>
+template <int OtherOptions>
+EIGEN_DEVICE_FUNC inline ParametrizedLine<_Scalar, _AmbientDim,_Options>::ParametrizedLine(const Hyperplane<_Scalar, _AmbientDim,OtherOptions>& hyperplane)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 2)
+ direction() = hyperplane.normal().unitOrthogonal();
+ origin() = -hyperplane.normal()*hyperplane.offset();
+}
+
+/** \returns the point at \a t along this line
+ */
+template <typename _Scalar, int _AmbientDim, int _Options>
+EIGEN_DEVICE_FUNC inline typename ParametrizedLine<_Scalar, _AmbientDim,_Options>::VectorType
+ParametrizedLine<_Scalar, _AmbientDim,_Options>::pointAt(const _Scalar& t) const
+{
+ return origin() + (direction()*t);
+}
+
+/** \returns the parameter value of the intersection between \c *this and the given \a hyperplane
+ */
+template <typename _Scalar, int _AmbientDim, int _Options>
+template <int OtherOptions>
+EIGEN_DEVICE_FUNC inline _Scalar ParametrizedLine<_Scalar, _AmbientDim,_Options>::intersectionParameter(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const
+{
+ return -(hyperplane.offset()+hyperplane.normal().dot(origin()))
+ / hyperplane.normal().dot(direction());
+}
+
+
+/** \deprecated use intersectionParameter()
+ * \returns the parameter value of the intersection between \c *this and the given \a hyperplane
+ */
+template <typename _Scalar, int _AmbientDim, int _Options>
+template <int OtherOptions>
+EIGEN_DEVICE_FUNC inline _Scalar ParametrizedLine<_Scalar, _AmbientDim,_Options>::intersection(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const
+{
+ return intersectionParameter(hyperplane);
+}
+
+/** \returns the point of the intersection between \c *this and the given hyperplane
+ */
+template <typename _Scalar, int _AmbientDim, int _Options>
+template <int OtherOptions>
+EIGEN_DEVICE_FUNC inline typename ParametrizedLine<_Scalar, _AmbientDim,_Options>::VectorType
+ParametrizedLine<_Scalar, _AmbientDim,_Options>::intersectionPoint(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const
+{
+ return pointAt(intersectionParameter(hyperplane));
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_PARAMETRIZEDLINE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Quaternion.h b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Quaternion.h
new file mode 100644
index 000000000..3e5a9badb
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Quaternion.h
@@ -0,0 +1,809 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Mathieu Gautier <mathieu.gautier@cea.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_QUATERNION_H
+#define EIGEN_QUATERNION_H
+namespace Eigen {
+
+
+/***************************************************************************
+* Definition of QuaternionBase<Derived>
+* The implementation is at the end of the file
+***************************************************************************/
+
+namespace internal {
+template<typename Other,
+ int OtherRows=Other::RowsAtCompileTime,
+ int OtherCols=Other::ColsAtCompileTime>
+struct quaternionbase_assign_impl;
+}
+
+/** \geometry_module \ingroup Geometry_Module
+ * \class QuaternionBase
+ * \brief Base class for quaternion expressions
+ * \tparam Derived derived type (CRTP)
+ * \sa class Quaternion
+ */
+template<class Derived>
+class QuaternionBase : public RotationBase<Derived, 3>
+{
+ public:
+ typedef RotationBase<Derived, 3> Base;
+
+ using Base::operator*;
+ using Base::derived;
+
+ typedef typename internal::traits<Derived>::Scalar Scalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ typedef typename internal::traits<Derived>::Coefficients Coefficients;
+ enum {
+ Flags = Eigen::internal::traits<Derived>::Flags
+ };
+
+ // typedef typename Matrix<Scalar,4,1> Coefficients;
+ /** the type of a 3D vector */
+ typedef Matrix<Scalar,3,1> Vector3;
+ /** the equivalent rotation matrix type */
+ typedef Matrix<Scalar,3,3> Matrix3;
+ /** the equivalent angle-axis type */
+ typedef AngleAxis<Scalar> AngleAxisType;
+
+
+
+ /** \returns the \c x coefficient */
+ EIGEN_DEVICE_FUNC inline Scalar x() const { return this->derived().coeffs().coeff(0); }
+ /** \returns the \c y coefficient */
+ EIGEN_DEVICE_FUNC inline Scalar y() const { return this->derived().coeffs().coeff(1); }
+ /** \returns the \c z coefficient */
+ EIGEN_DEVICE_FUNC inline Scalar z() const { return this->derived().coeffs().coeff(2); }
+ /** \returns the \c w coefficient */
+ EIGEN_DEVICE_FUNC inline Scalar w() const { return this->derived().coeffs().coeff(3); }
+
+ /** \returns a reference to the \c x coefficient */
+ EIGEN_DEVICE_FUNC inline Scalar& x() { return this->derived().coeffs().coeffRef(0); }
+ /** \returns a reference to the \c y coefficient */
+ EIGEN_DEVICE_FUNC inline Scalar& y() { return this->derived().coeffs().coeffRef(1); }
+ /** \returns a reference to the \c z coefficient */
+ EIGEN_DEVICE_FUNC inline Scalar& z() { return this->derived().coeffs().coeffRef(2); }
+ /** \returns a reference to the \c w coefficient */
+ EIGEN_DEVICE_FUNC inline Scalar& w() { return this->derived().coeffs().coeffRef(3); }
+
+ /** \returns a read-only vector expression of the imaginary part (x,y,z) */
+ EIGEN_DEVICE_FUNC inline const VectorBlock<const Coefficients,3> vec() const { return coeffs().template head<3>(); }
+
+ /** \returns a vector expression of the imaginary part (x,y,z) */
+ EIGEN_DEVICE_FUNC inline VectorBlock<Coefficients,3> vec() { return coeffs().template head<3>(); }
+
+ /** \returns a read-only vector expression of the coefficients (x,y,z,w) */
+ EIGEN_DEVICE_FUNC inline const typename internal::traits<Derived>::Coefficients& coeffs() const { return derived().coeffs(); }
+
+ /** \returns a vector expression of the coefficients (x,y,z,w) */
+ EIGEN_DEVICE_FUNC inline typename internal::traits<Derived>::Coefficients& coeffs() { return derived().coeffs(); }
+
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE QuaternionBase<Derived>& operator=(const QuaternionBase<Derived>& other);
+ template<class OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& operator=(const QuaternionBase<OtherDerived>& other);
+
+// disabled this copy operator as it is giving very strange compilation errors when compiling
+// test_stdvector with GCC 4.4.2. This looks like a GCC bug though, so feel free to re-enable it if it's
+// useful; however notice that we already have the templated operator= above and e.g. in MatrixBase
+// we didn't have to add, in addition to templated operator=, such a non-templated copy operator.
+// Derived& operator=(const QuaternionBase& other)
+// { return operator=<Derived>(other); }
+
+ EIGEN_DEVICE_FUNC Derived& operator=(const AngleAxisType& aa);
+ template<class OtherDerived> EIGEN_DEVICE_FUNC Derived& operator=(const MatrixBase<OtherDerived>& m);
+
+ /** \returns a quaternion representing an identity rotation
+ * \sa MatrixBase::Identity()
+ */
+ EIGEN_DEVICE_FUNC static inline Quaternion<Scalar> Identity() { return Quaternion<Scalar>(Scalar(1), Scalar(0), Scalar(0), Scalar(0)); }
+
+ /** \sa QuaternionBase::Identity(), MatrixBase::setIdentity()
+ */
+ EIGEN_DEVICE_FUNC inline QuaternionBase& setIdentity() { coeffs() << Scalar(0), Scalar(0), Scalar(0), Scalar(1); return *this; }
+
+ /** \returns the squared norm of the quaternion's coefficients
+ * \sa QuaternionBase::norm(), MatrixBase::squaredNorm()
+ */
+ EIGEN_DEVICE_FUNC inline Scalar squaredNorm() const { return coeffs().squaredNorm(); }
+
+ /** \returns the norm of the quaternion's coefficients
+ * \sa QuaternionBase::squaredNorm(), MatrixBase::norm()
+ */
+ EIGEN_DEVICE_FUNC inline Scalar norm() const { return coeffs().norm(); }
+
+ /** Normalizes the quaternion \c *this
+ * \sa normalized(), MatrixBase::normalize() */
+ EIGEN_DEVICE_FUNC inline void normalize() { coeffs().normalize(); }
+ /** \returns a normalized copy of \c *this
+ * \sa normalize(), MatrixBase::normalized() */
+ EIGEN_DEVICE_FUNC inline Quaternion<Scalar> normalized() const { return Quaternion<Scalar>(coeffs().normalized()); }
+
+ /** \returns the dot product of \c *this and \a other
+ * Geometrically speaking, the dot product of two unit quaternions
+ * corresponds to the cosine of half the angle between the two rotations.
+ * \sa angularDistance()
+ */
+ template<class OtherDerived> EIGEN_DEVICE_FUNC inline Scalar dot(const QuaternionBase<OtherDerived>& other) const { return coeffs().dot(other.coeffs()); }
+
+ template<class OtherDerived> EIGEN_DEVICE_FUNC Scalar angularDistance(const QuaternionBase<OtherDerived>& other) const;
+
+ /** \returns an equivalent 3x3 rotation matrix */
+ EIGEN_DEVICE_FUNC Matrix3 toRotationMatrix() const;
+
+ /** \returns the quaternion which transform \a a into \a b through a rotation */
+ template<typename Derived1, typename Derived2>
+ EIGEN_DEVICE_FUNC Derived& setFromTwoVectors(const MatrixBase<Derived1>& a, const MatrixBase<Derived2>& b);
+
+ template<class OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Quaternion<Scalar> operator* (const QuaternionBase<OtherDerived>& q) const;
+ template<class OtherDerived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& operator*= (const QuaternionBase<OtherDerived>& q);
+
+ /** \returns the quaternion describing the inverse rotation */
+ EIGEN_DEVICE_FUNC Quaternion<Scalar> inverse() const;
+
+ /** \returns the conjugated quaternion */
+ EIGEN_DEVICE_FUNC Quaternion<Scalar> conjugate() const;
+
+ template<class OtherDerived> EIGEN_DEVICE_FUNC Quaternion<Scalar> slerp(const Scalar& t, const QuaternionBase<OtherDerived>& other) const;
+
+ /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+ * determined by \a prec.
+ *
+ * \sa MatrixBase::isApprox() */
+ template<class OtherDerived>
+ EIGEN_DEVICE_FUNC bool isApprox(const QuaternionBase<OtherDerived>& other, const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const
+ { return coeffs().isApprox(other.coeffs(), prec); }
+
+ /** return the result vector of \a v through the rotation*/
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Vector3 _transformVector(const Vector3& v) const;
+
+ /** \returns \c *this with scalar type casted to \a NewScalarType
+ *
+ * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+ * then this function smartly returns a const reference to \c *this.
+ */
+ template<typename NewScalarType>
+ EIGEN_DEVICE_FUNC inline typename internal::cast_return_type<Derived,Quaternion<NewScalarType> >::type cast() const
+ {
+ return typename internal::cast_return_type<Derived,Quaternion<NewScalarType> >::type(derived());
+ }
+
+#ifdef EIGEN_QUATERNIONBASE_PLUGIN
+# include EIGEN_QUATERNIONBASE_PLUGIN
+#endif
+};
+
+/***************************************************************************
+* Definition/implementation of Quaternion<Scalar>
+***************************************************************************/
+
+/** \geometry_module \ingroup Geometry_Module
+ *
+ * \class Quaternion
+ *
+ * \brief The quaternion class used to represent 3D orientations and rotations
+ *
+ * \tparam _Scalar the scalar type, i.e., the type of the coefficients
+ * \tparam _Options controls the memory alignment of the coefficients. Can be \# AutoAlign or \# DontAlign. Default is AutoAlign.
+ *
+ * This class represents a quaternion \f$ w+xi+yj+zk \f$ that is a convenient representation of
+ * orientations and rotations of objects in three dimensions. Compared to other representations
+ * like Euler angles or 3x3 matrices, quaternions offer the following advantages:
+ * \li \b compact storage (4 scalars)
+ * \li \b efficient to compose (28 flops),
+ * \li \b stable spherical interpolation
+ *
+ * The following two typedefs are provided for convenience:
+ * \li \c Quaternionf for \c float
+ * \li \c Quaterniond for \c double
+ *
+ * \warning Operations interpreting the quaternion as rotation have undefined behavior if the quaternion is not normalized.
+ *
+ * \sa class AngleAxis, class Transform
+ */
+
+namespace internal {
+template<typename _Scalar,int _Options>
+struct traits<Quaternion<_Scalar,_Options> >
+{
+ typedef Quaternion<_Scalar,_Options> PlainObject;
+ typedef _Scalar Scalar;
+ typedef Matrix<_Scalar,4,1,_Options> Coefficients;
+ enum{
+ Alignment = internal::traits<Coefficients>::Alignment,
+ Flags = LvalueBit
+ };
+};
+}
+
+template<typename _Scalar, int _Options>
+class Quaternion : public QuaternionBase<Quaternion<_Scalar,_Options> >
+{
+public:
+ typedef QuaternionBase<Quaternion<_Scalar,_Options> > Base;
+ enum { NeedsAlignment = internal::traits<Quaternion>::Alignment>0 };
+
+ typedef _Scalar Scalar;
+
+ EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Quaternion)
+ using Base::operator*=;
+
+ typedef typename internal::traits<Quaternion>::Coefficients Coefficients;
+ typedef typename Base::AngleAxisType AngleAxisType;
+
+ /** Default constructor leaving the quaternion uninitialized. */
+ EIGEN_DEVICE_FUNC inline Quaternion() {}
+
+ /** Constructs and initializes the quaternion \f$ w+xi+yj+zk \f$ from
+ * its four coefficients \a w, \a x, \a y and \a z.
+ *
+ * \warning Note the order of the arguments: the real \a w coefficient first,
+ * while internally the coefficients are stored in the following order:
+ * [\c x, \c y, \c z, \c w]
+ */
+ EIGEN_DEVICE_FUNC inline Quaternion(const Scalar& w, const Scalar& x, const Scalar& y, const Scalar& z) : m_coeffs(x, y, z, w){}
+
+ /** Constructs and initialize a quaternion from the array data */
+ EIGEN_DEVICE_FUNC explicit inline Quaternion(const Scalar* data) : m_coeffs(data) {}
+
+ /** Copy constructor */
+ template<class Derived> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Quaternion(const QuaternionBase<Derived>& other) { this->Base::operator=(other); }
+
+ /** Constructs and initializes a quaternion from the angle-axis \a aa */
+ EIGEN_DEVICE_FUNC explicit inline Quaternion(const AngleAxisType& aa) { *this = aa; }
+
+ /** Constructs and initializes a quaternion from either:
+ * - a rotation matrix expression,
+ * - a 4D vector expression representing quaternion coefficients.
+ */
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC explicit inline Quaternion(const MatrixBase<Derived>& other) { *this = other; }
+
+ /** Explicit copy constructor with scalar conversion */
+ template<typename OtherScalar, int OtherOptions>
+ EIGEN_DEVICE_FUNC explicit inline Quaternion(const Quaternion<OtherScalar, OtherOptions>& other)
+ { m_coeffs = other.coeffs().template cast<Scalar>(); }
+
+ EIGEN_DEVICE_FUNC static Quaternion UnitRandom();
+
+ template<typename Derived1, typename Derived2>
+ EIGEN_DEVICE_FUNC static Quaternion FromTwoVectors(const MatrixBase<Derived1>& a, const MatrixBase<Derived2>& b);
+
+ EIGEN_DEVICE_FUNC inline Coefficients& coeffs() { return m_coeffs;}
+ EIGEN_DEVICE_FUNC inline const Coefficients& coeffs() const { return m_coeffs;}
+
+ EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(bool(NeedsAlignment))
+
+#ifdef EIGEN_QUATERNION_PLUGIN
+# include EIGEN_QUATERNION_PLUGIN
+#endif
+
+protected:
+ Coefficients m_coeffs;
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ static EIGEN_STRONG_INLINE void _check_template_params()
+ {
+ EIGEN_STATIC_ASSERT( (_Options & DontAlign) == _Options,
+ INVALID_MATRIX_TEMPLATE_PARAMETERS)
+ }
+#endif
+};
+
+/** \ingroup Geometry_Module
+ * single precision quaternion type */
+typedef Quaternion<float> Quaternionf;
+/** \ingroup Geometry_Module
+ * double precision quaternion type */
+typedef Quaternion<double> Quaterniond;
+
+/***************************************************************************
+* Specialization of Map<Quaternion<Scalar>>
+***************************************************************************/
+
+namespace internal {
+ template<typename _Scalar, int _Options>
+ struct traits<Map<Quaternion<_Scalar>, _Options> > : traits<Quaternion<_Scalar, (int(_Options)&Aligned)==Aligned ? AutoAlign : DontAlign> >
+ {
+ typedef Map<Matrix<_Scalar,4,1>, _Options> Coefficients;
+ };
+}
+
+namespace internal {
+ template<typename _Scalar, int _Options>
+ struct traits<Map<const Quaternion<_Scalar>, _Options> > : traits<Quaternion<_Scalar, (int(_Options)&Aligned)==Aligned ? AutoAlign : DontAlign> >
+ {
+ typedef Map<const Matrix<_Scalar,4,1>, _Options> Coefficients;
+ typedef traits<Quaternion<_Scalar, (int(_Options)&Aligned)==Aligned ? AutoAlign : DontAlign> > TraitsBase;
+ enum {
+ Flags = TraitsBase::Flags & ~LvalueBit
+ };
+ };
+}
+
+/** \ingroup Geometry_Module
+ * \brief Quaternion expression mapping a constant memory buffer
+ *
+ * \tparam _Scalar the type of the Quaternion coefficients
+ * \tparam _Options see class Map
+ *
+ * This is a specialization of class Map for Quaternion. This class allows to view
+ * a 4 scalar memory buffer as an Eigen's Quaternion object.
+ *
+ * \sa class Map, class Quaternion, class QuaternionBase
+ */
+template<typename _Scalar, int _Options>
+class Map<const Quaternion<_Scalar>, _Options >
+ : public QuaternionBase<Map<const Quaternion<_Scalar>, _Options> >
+{
+ public:
+ typedef QuaternionBase<Map<const Quaternion<_Scalar>, _Options> > Base;
+
+ typedef _Scalar Scalar;
+ typedef typename internal::traits<Map>::Coefficients Coefficients;
+ EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Map)
+ using Base::operator*=;
+
+ /** Constructs a Mapped Quaternion object from the pointer \a coeffs
+ *
+ * The pointer \a coeffs must reference the four coefficients of Quaternion in the following order:
+ * \code *coeffs == {x, y, z, w} \endcode
+ *
+ * If the template parameter _Options is set to #Aligned, then the pointer coeffs must be aligned. */
+ EIGEN_DEVICE_FUNC explicit EIGEN_STRONG_INLINE Map(const Scalar* coeffs) : m_coeffs(coeffs) {}
+
+ EIGEN_DEVICE_FUNC inline const Coefficients& coeffs() const { return m_coeffs;}
+
+ protected:
+ const Coefficients m_coeffs;
+};
+
+/** \ingroup Geometry_Module
+ * \brief Expression of a quaternion from a memory buffer
+ *
+ * \tparam _Scalar the type of the Quaternion coefficients
+ * \tparam _Options see class Map
+ *
+ * This is a specialization of class Map for Quaternion. This class allows to view
+ * a 4 scalar memory buffer as an Eigen's Quaternion object.
+ *
+ * \sa class Map, class Quaternion, class QuaternionBase
+ */
+template<typename _Scalar, int _Options>
+class Map<Quaternion<_Scalar>, _Options >
+ : public QuaternionBase<Map<Quaternion<_Scalar>, _Options> >
+{
+ public:
+ typedef QuaternionBase<Map<Quaternion<_Scalar>, _Options> > Base;
+
+ typedef _Scalar Scalar;
+ typedef typename internal::traits<Map>::Coefficients Coefficients;
+ EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Map)
+ using Base::operator*=;
+
+ /** Constructs a Mapped Quaternion object from the pointer \a coeffs
+ *
+ * The pointer \a coeffs must reference the four coefficients of Quaternion in the following order:
+ * \code *coeffs == {x, y, z, w} \endcode
+ *
+ * If the template parameter _Options is set to #Aligned, then the pointer coeffs must be aligned. */
+ EIGEN_DEVICE_FUNC explicit EIGEN_STRONG_INLINE Map(Scalar* coeffs) : m_coeffs(coeffs) {}
+
+ EIGEN_DEVICE_FUNC inline Coefficients& coeffs() { return m_coeffs; }
+ EIGEN_DEVICE_FUNC inline const Coefficients& coeffs() const { return m_coeffs; }
+
+ protected:
+ Coefficients m_coeffs;
+};
+
+/** \ingroup Geometry_Module
+ * Map an unaligned array of single precision scalars as a quaternion */
+typedef Map<Quaternion<float>, 0> QuaternionMapf;
+/** \ingroup Geometry_Module
+ * Map an unaligned array of double precision scalars as a quaternion */
+typedef Map<Quaternion<double>, 0> QuaternionMapd;
+/** \ingroup Geometry_Module
+ * Map a 16-byte aligned array of single precision scalars as a quaternion */
+typedef Map<Quaternion<float>, Aligned> QuaternionMapAlignedf;
+/** \ingroup Geometry_Module
+ * Map a 16-byte aligned array of double precision scalars as a quaternion */
+typedef Map<Quaternion<double>, Aligned> QuaternionMapAlignedd;
+
+/***************************************************************************
+* Implementation of QuaternionBase methods
+***************************************************************************/
+
+// Generic Quaternion * Quaternion product
+// This product can be specialized for a given architecture via the Arch template argument.
+namespace internal {
+template<int Arch, class Derived1, class Derived2, typename Scalar> struct quat_product
+{
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE Quaternion<Scalar> run(const QuaternionBase<Derived1>& a, const QuaternionBase<Derived2>& b){
+ return Quaternion<Scalar>
+ (
+ a.w() * b.w() - a.x() * b.x() - a.y() * b.y() - a.z() * b.z(),
+ a.w() * b.x() + a.x() * b.w() + a.y() * b.z() - a.z() * b.y(),
+ a.w() * b.y() + a.y() * b.w() + a.z() * b.x() - a.x() * b.z(),
+ a.w() * b.z() + a.z() * b.w() + a.x() * b.y() - a.y() * b.x()
+ );
+ }
+};
+}
+
+/** \returns the concatenation of two rotations as a quaternion-quaternion product */
+template <class Derived>
+template <class OtherDerived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Quaternion<typename internal::traits<Derived>::Scalar>
+QuaternionBase<Derived>::operator* (const QuaternionBase<OtherDerived>& other) const
+{
+ EIGEN_STATIC_ASSERT((internal::is_same<typename Derived::Scalar, typename OtherDerived::Scalar>::value),
+ YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+ return internal::quat_product<Architecture::Target, Derived, OtherDerived,
+ typename internal::traits<Derived>::Scalar>::run(*this, other);
+}
+
+/** \sa operator*(Quaternion) */
+template <class Derived>
+template <class OtherDerived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& QuaternionBase<Derived>::operator*= (const QuaternionBase<OtherDerived>& other)
+{
+ derived() = derived() * other.derived();
+ return derived();
+}
+
+/** Rotation of a vector by a quaternion.
+ * \remarks If the quaternion is used to rotate several points (>1)
+ * then it is much more efficient to first convert it to a 3x3 Matrix.
+ * Comparison of the operation cost for n transformations:
+ * - Quaternion2: 30n
+ * - Via a Matrix3: 24 + 15n
+ */
+template <class Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename QuaternionBase<Derived>::Vector3
+QuaternionBase<Derived>::_transformVector(const Vector3& v) const
+{
+ // Note that this algorithm comes from the optimization by hand
+ // of the conversion to a Matrix followed by a Matrix/Vector product.
+ // It appears to be much faster than the common algorithm found
+ // in the literature (30 versus 39 flops). It also requires two
+ // Vector3 as temporaries.
+ Vector3 uv = this->vec().cross(v);
+ uv += uv;
+ return v + this->w() * uv + this->vec().cross(uv);
+}
+
+template<class Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE QuaternionBase<Derived>& QuaternionBase<Derived>::operator=(const QuaternionBase<Derived>& other)
+{
+ coeffs() = other.coeffs();
+ return derived();
+}
+
+template<class Derived>
+template<class OtherDerived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& QuaternionBase<Derived>::operator=(const QuaternionBase<OtherDerived>& other)
+{
+ coeffs() = other.coeffs();
+ return derived();
+}
+
+/** Set \c *this from an angle-axis \a aa and returns a reference to \c *this
+ */
+template<class Derived>
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& QuaternionBase<Derived>::operator=(const AngleAxisType& aa)
+{
+ EIGEN_USING_STD_MATH(cos)
+ EIGEN_USING_STD_MATH(sin)
+ Scalar ha = Scalar(0.5)*aa.angle(); // Scalar(0.5) to suppress precision loss warnings
+ this->w() = cos(ha);
+ this->vec() = sin(ha) * aa.axis();
+ return derived();
+}
+
+/** Set \c *this from the expression \a xpr:
+ * - if \a xpr is a 4x1 vector, then \a xpr is assumed to be a quaternion
+ * - if \a xpr is a 3x3 matrix, then \a xpr is assumed to be rotation matrix
+ * and \a xpr is converted to a quaternion
+ */
+
+template<class Derived>
+template<class MatrixDerived>
+EIGEN_DEVICE_FUNC inline Derived& QuaternionBase<Derived>::operator=(const MatrixBase<MatrixDerived>& xpr)
+{
+ EIGEN_STATIC_ASSERT((internal::is_same<typename Derived::Scalar, typename MatrixDerived::Scalar>::value),
+ YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+ internal::quaternionbase_assign_impl<MatrixDerived>::run(*this, xpr.derived());
+ return derived();
+}
+
+/** Convert the quaternion to a 3x3 rotation matrix. The quaternion is required to
+ * be normalized, otherwise the result is undefined.
+ */
+template<class Derived>
+EIGEN_DEVICE_FUNC inline typename QuaternionBase<Derived>::Matrix3
+QuaternionBase<Derived>::toRotationMatrix(void) const
+{
+ // NOTE if inlined, then gcc 4.2 and 4.4 get rid of the temporary (not gcc 4.3 !!)
+ // if not inlined then the cost of the return by value is huge ~ +35%,
+ // however, not inlining this function is an order of magnitude slower, so
+ // it has to be inlined, and so the return by value is not an issue
+ Matrix3 res;
+
+ const Scalar tx = Scalar(2)*this->x();
+ const Scalar ty = Scalar(2)*this->y();
+ const Scalar tz = Scalar(2)*this->z();
+ const Scalar twx = tx*this->w();
+ const Scalar twy = ty*this->w();
+ const Scalar twz = tz*this->w();
+ const Scalar txx = tx*this->x();
+ const Scalar txy = ty*this->x();
+ const Scalar txz = tz*this->x();
+ const Scalar tyy = ty*this->y();
+ const Scalar tyz = tz*this->y();
+ const Scalar tzz = tz*this->z();
+
+ res.coeffRef(0,0) = Scalar(1)-(tyy+tzz);
+ res.coeffRef(0,1) = txy-twz;
+ res.coeffRef(0,2) = txz+twy;
+ res.coeffRef(1,0) = txy+twz;
+ res.coeffRef(1,1) = Scalar(1)-(txx+tzz);
+ res.coeffRef(1,2) = tyz-twx;
+ res.coeffRef(2,0) = txz-twy;
+ res.coeffRef(2,1) = tyz+twx;
+ res.coeffRef(2,2) = Scalar(1)-(txx+tyy);
+
+ return res;
+}
+
+/** Sets \c *this to be a quaternion representing a rotation between
+ * the two arbitrary vectors \a a and \a b. In other words, the built
+ * rotation represent a rotation sending the line of direction \a a
+ * to the line of direction \a b, both lines passing through the origin.
+ *
+ * \returns a reference to \c *this.
+ *
+ * Note that the two input vectors do \b not have to be normalized, and
+ * do not need to have the same norm.
+ */
+template<class Derived>
+template<typename Derived1, typename Derived2>
+EIGEN_DEVICE_FUNC inline Derived& QuaternionBase<Derived>::setFromTwoVectors(const MatrixBase<Derived1>& a, const MatrixBase<Derived2>& b)
+{
+ EIGEN_USING_STD_MATH(sqrt)
+ Vector3 v0 = a.normalized();
+ Vector3 v1 = b.normalized();
+ Scalar c = v1.dot(v0);
+
+ // if dot == -1, vectors are nearly opposites
+ // => accurately compute the rotation axis by computing the
+ // intersection of the two planes. This is done by solving:
+ // x^T v0 = 0
+ // x^T v1 = 0
+ // under the constraint:
+ // ||x|| = 1
+ // which yields a singular value problem
+ if (c < Scalar(-1)+NumTraits<Scalar>::dummy_precision())
+ {
+ c = numext::maxi(c,Scalar(-1));
+ Matrix<Scalar,2,3> m; m << v0.transpose(), v1.transpose();
+ JacobiSVD<Matrix<Scalar,2,3> > svd(m, ComputeFullV);
+ Vector3 axis = svd.matrixV().col(2);
+
+ Scalar w2 = (Scalar(1)+c)*Scalar(0.5);
+ this->w() = sqrt(w2);
+ this->vec() = axis * sqrt(Scalar(1) - w2);
+ return derived();
+ }
+ Vector3 axis = v0.cross(v1);
+ Scalar s = sqrt((Scalar(1)+c)*Scalar(2));
+ Scalar invs = Scalar(1)/s;
+ this->vec() = axis * invs;
+ this->w() = s * Scalar(0.5);
+
+ return derived();
+}
+
+/** \returns a random unit quaternion following a uniform distribution law on SO(3)
+ *
+ * \note The implementation is based on http://planning.cs.uiuc.edu/node198.html
+ */
+template<typename Scalar, int Options>
+EIGEN_DEVICE_FUNC Quaternion<Scalar,Options> Quaternion<Scalar,Options>::UnitRandom()
+{
+ EIGEN_USING_STD_MATH(sqrt)
+ EIGEN_USING_STD_MATH(sin)
+ EIGEN_USING_STD_MATH(cos)
+ const Scalar u1 = internal::random<Scalar>(0, 1),
+ u2 = internal::random<Scalar>(0, 2*EIGEN_PI),
+ u3 = internal::random<Scalar>(0, 2*EIGEN_PI);
+ const Scalar a = sqrt(1 - u1),
+ b = sqrt(u1);
+ return Quaternion (a * sin(u2), a * cos(u2), b * sin(u3), b * cos(u3));
+}
+
+
+/** Returns a quaternion representing a rotation between
+ * the two arbitrary vectors \a a and \a b. In other words, the built
+ * rotation represent a rotation sending the line of direction \a a
+ * to the line of direction \a b, both lines passing through the origin.
+ *
+ * \returns resulting quaternion
+ *
+ * Note that the two input vectors do \b not have to be normalized, and
+ * do not need to have the same norm.
+ */
+template<typename Scalar, int Options>
+template<typename Derived1, typename Derived2>
+EIGEN_DEVICE_FUNC Quaternion<Scalar,Options> Quaternion<Scalar,Options>::FromTwoVectors(const MatrixBase<Derived1>& a, const MatrixBase<Derived2>& b)
+{
+ Quaternion quat;
+ quat.setFromTwoVectors(a, b);
+ return quat;
+}
+
+
+/** \returns the multiplicative inverse of \c *this
+ * Note that in most cases, i.e., if you simply want the opposite rotation,
+ * and/or the quaternion is normalized, then it is enough to use the conjugate.
+ *
+ * \sa QuaternionBase::conjugate()
+ */
+template <class Derived>
+EIGEN_DEVICE_FUNC inline Quaternion<typename internal::traits<Derived>::Scalar> QuaternionBase<Derived>::inverse() const
+{
+ // FIXME should this function be called multiplicativeInverse and conjugate() be called inverse() or opposite() ??
+ Scalar n2 = this->squaredNorm();
+ if (n2 > Scalar(0))
+ return Quaternion<Scalar>(conjugate().coeffs() / n2);
+ else
+ {
+ // return an invalid result to flag the error
+ return Quaternion<Scalar>(Coefficients::Zero());
+ }
+}
+
+// Generic conjugate of a Quaternion
+namespace internal {
+template<int Arch, class Derived, typename Scalar> struct quat_conj
+{
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE Quaternion<Scalar> run(const QuaternionBase<Derived>& q){
+ return Quaternion<Scalar>(q.w(),-q.x(),-q.y(),-q.z());
+ }
+};
+}
+
+/** \returns the conjugate of the \c *this which is equal to the multiplicative inverse
+ * if the quaternion is normalized.
+ * The conjugate of a quaternion represents the opposite rotation.
+ *
+ * \sa Quaternion2::inverse()
+ */
+template <class Derived>
+EIGEN_DEVICE_FUNC inline Quaternion<typename internal::traits<Derived>::Scalar>
+QuaternionBase<Derived>::conjugate() const
+{
+ return internal::quat_conj<Architecture::Target, Derived,
+ typename internal::traits<Derived>::Scalar>::run(*this);
+
+}
+
+/** \returns the angle (in radian) between two rotations
+ * \sa dot()
+ */
+template <class Derived>
+template <class OtherDerived>
+EIGEN_DEVICE_FUNC inline typename internal::traits<Derived>::Scalar
+QuaternionBase<Derived>::angularDistance(const QuaternionBase<OtherDerived>& other) const
+{
+ EIGEN_USING_STD_MATH(atan2)
+ Quaternion<Scalar> d = (*this) * other.conjugate();
+ return Scalar(2) * atan2( d.vec().norm(), numext::abs(d.w()) );
+}
+
+
+
+/** \returns the spherical linear interpolation between the two quaternions
+ * \c *this and \a other at the parameter \a t in [0;1].
+ *
+ * This represents an interpolation for a constant motion between \c *this and \a other,
+ * see also http://en.wikipedia.org/wiki/Slerp.
+ */
+template <class Derived>
+template <class OtherDerived>
+EIGEN_DEVICE_FUNC Quaternion<typename internal::traits<Derived>::Scalar>
+QuaternionBase<Derived>::slerp(const Scalar& t, const QuaternionBase<OtherDerived>& other) const
+{
+ EIGEN_USING_STD_MATH(acos)
+ EIGEN_USING_STD_MATH(sin)
+ const Scalar one = Scalar(1) - NumTraits<Scalar>::epsilon();
+ Scalar d = this->dot(other);
+ Scalar absD = numext::abs(d);
+
+ Scalar scale0;
+ Scalar scale1;
+
+ if(absD>=one)
+ {
+ scale0 = Scalar(1) - t;
+ scale1 = t;
+ }
+ else
+ {
+ // theta is the angle between the 2 quaternions
+ Scalar theta = acos(absD);
+ Scalar sinTheta = sin(theta);
+
+ scale0 = sin( ( Scalar(1) - t ) * theta) / sinTheta;
+ scale1 = sin( ( t * theta) ) / sinTheta;
+ }
+ if(d<Scalar(0)) scale1 = -scale1;
+
+ return Quaternion<Scalar>(scale0 * coeffs() + scale1 * other.coeffs());
+}
+
+namespace internal {
+
+// set from a rotation matrix
+template<typename Other>
+struct quaternionbase_assign_impl<Other,3,3>
+{
+ typedef typename Other::Scalar Scalar;
+ template<class Derived> EIGEN_DEVICE_FUNC static inline void run(QuaternionBase<Derived>& q, const Other& a_mat)
+ {
+ const typename internal::nested_eval<Other,2>::type mat(a_mat);
+ EIGEN_USING_STD_MATH(sqrt)
+ // This algorithm comes from "Quaternion Calculus and Fast Animation",
+ // Ken Shoemake, 1987 SIGGRAPH course notes
+ Scalar t = mat.trace();
+ if (t > Scalar(0))
+ {
+ t = sqrt(t + Scalar(1.0));
+ q.w() = Scalar(0.5)*t;
+ t = Scalar(0.5)/t;
+ q.x() = (mat.coeff(2,1) - mat.coeff(1,2)) * t;
+ q.y() = (mat.coeff(0,2) - mat.coeff(2,0)) * t;
+ q.z() = (mat.coeff(1,0) - mat.coeff(0,1)) * t;
+ }
+ else
+ {
+ Index i = 0;
+ if (mat.coeff(1,1) > mat.coeff(0,0))
+ i = 1;
+ if (mat.coeff(2,2) > mat.coeff(i,i))
+ i = 2;
+ Index j = (i+1)%3;
+ Index k = (j+1)%3;
+
+ t = sqrt(mat.coeff(i,i)-mat.coeff(j,j)-mat.coeff(k,k) + Scalar(1.0));
+ q.coeffs().coeffRef(i) = Scalar(0.5) * t;
+ t = Scalar(0.5)/t;
+ q.w() = (mat.coeff(k,j)-mat.coeff(j,k))*t;
+ q.coeffs().coeffRef(j) = (mat.coeff(j,i)+mat.coeff(i,j))*t;
+ q.coeffs().coeffRef(k) = (mat.coeff(k,i)+mat.coeff(i,k))*t;
+ }
+ }
+};
+
+// set from a vector of coefficients assumed to be a quaternion
+template<typename Other>
+struct quaternionbase_assign_impl<Other,4,1>
+{
+ typedef typename Other::Scalar Scalar;
+ template<class Derived> EIGEN_DEVICE_FUNC static inline void run(QuaternionBase<Derived>& q, const Other& vec)
+ {
+ q.coeffs() = vec;
+ }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_QUATERNION_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Rotation2D.h b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Rotation2D.h
new file mode 100644
index 000000000..884b7d0ee
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Rotation2D.h
@@ -0,0 +1,199 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ROTATION2D_H
+#define EIGEN_ROTATION2D_H
+
+namespace Eigen {
+
+/** \geometry_module \ingroup Geometry_Module
+ *
+ * \class Rotation2D
+ *
+ * \brief Represents a rotation/orientation in a 2 dimensional space.
+ *
+ * \tparam _Scalar the scalar type, i.e., the type of the coefficients
+ *
+ * This class is equivalent to a single scalar representing a counter clock wise rotation
+ * as a single angle in radian. It provides some additional features such as the automatic
+ * conversion from/to a 2x2 rotation matrix. Moreover this class aims to provide a similar
+ * interface to Quaternion in order to facilitate the writing of generic algorithms
+ * dealing with rotations.
+ *
+ * \sa class Quaternion, class Transform
+ */
+
+namespace internal {
+
+template<typename _Scalar> struct traits<Rotation2D<_Scalar> >
+{
+ typedef _Scalar Scalar;
+};
+} // end namespace internal
+
+template<typename _Scalar>
+class Rotation2D : public RotationBase<Rotation2D<_Scalar>,2>
+{
+ typedef RotationBase<Rotation2D<_Scalar>,2> Base;
+
+public:
+
+ using Base::operator*;
+
+ enum { Dim = 2 };
+ /** the scalar type of the coefficients */
+ typedef _Scalar Scalar;
+ typedef Matrix<Scalar,2,1> Vector2;
+ typedef Matrix<Scalar,2,2> Matrix2;
+
+protected:
+
+ Scalar m_angle;
+
+public:
+
+ /** Construct a 2D counter clock wise rotation from the angle \a a in radian. */
+ EIGEN_DEVICE_FUNC explicit inline Rotation2D(const Scalar& a) : m_angle(a) {}
+
+ /** Default constructor wihtout initialization. The represented rotation is undefined. */
+ EIGEN_DEVICE_FUNC Rotation2D() {}
+
+ /** Construct a 2D rotation from a 2x2 rotation matrix \a mat.
+ *
+ * \sa fromRotationMatrix()
+ */
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC explicit Rotation2D(const MatrixBase<Derived>& m)
+ {
+ fromRotationMatrix(m.derived());
+ }
+
+ /** \returns the rotation angle */
+ EIGEN_DEVICE_FUNC inline Scalar angle() const { return m_angle; }
+
+ /** \returns a read-write reference to the rotation angle */
+ EIGEN_DEVICE_FUNC inline Scalar& angle() { return m_angle; }
+
+ /** \returns the rotation angle in [0,2pi] */
+ EIGEN_DEVICE_FUNC inline Scalar smallestPositiveAngle() const {
+ Scalar tmp = numext::fmod(m_angle,Scalar(2*EIGEN_PI));
+ return tmp<Scalar(0) ? tmp + Scalar(2*EIGEN_PI) : tmp;
+ }
+
+ /** \returns the rotation angle in [-pi,pi] */
+ EIGEN_DEVICE_FUNC inline Scalar smallestAngle() const {
+ Scalar tmp = numext::fmod(m_angle,Scalar(2*EIGEN_PI));
+ if(tmp>Scalar(EIGEN_PI)) tmp -= Scalar(2*EIGEN_PI);
+ else if(tmp<-Scalar(EIGEN_PI)) tmp += Scalar(2*EIGEN_PI);
+ return tmp;
+ }
+
+ /** \returns the inverse rotation */
+ EIGEN_DEVICE_FUNC inline Rotation2D inverse() const { return Rotation2D(-m_angle); }
+
+ /** Concatenates two rotations */
+ EIGEN_DEVICE_FUNC inline Rotation2D operator*(const Rotation2D& other) const
+ { return Rotation2D(m_angle + other.m_angle); }
+
+ /** Concatenates two rotations */
+ EIGEN_DEVICE_FUNC inline Rotation2D& operator*=(const Rotation2D& other)
+ { m_angle += other.m_angle; return *this; }
+
+ /** Applies the rotation to a 2D vector */
+ EIGEN_DEVICE_FUNC Vector2 operator* (const Vector2& vec) const
+ { return toRotationMatrix() * vec; }
+
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC Rotation2D& fromRotationMatrix(const MatrixBase<Derived>& m);
+ EIGEN_DEVICE_FUNC Matrix2 toRotationMatrix() const;
+
+ /** Set \c *this from a 2x2 rotation matrix \a mat.
+ * In other words, this function extract the rotation angle from the rotation matrix.
+ *
+ * This method is an alias for fromRotationMatrix()
+ *
+ * \sa fromRotationMatrix()
+ */
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC Rotation2D& operator=(const MatrixBase<Derived>& m)
+ { return fromRotationMatrix(m.derived()); }
+
+ /** \returns the spherical interpolation between \c *this and \a other using
+ * parameter \a t. It is in fact equivalent to a linear interpolation.
+ */
+ EIGEN_DEVICE_FUNC inline Rotation2D slerp(const Scalar& t, const Rotation2D& other) const
+ {
+ Scalar dist = Rotation2D(other.m_angle-m_angle).smallestAngle();
+ return Rotation2D(m_angle + dist*t);
+ }
+
+ /** \returns \c *this with scalar type casted to \a NewScalarType
+ *
+ * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+ * then this function smartly returns a const reference to \c *this.
+ */
+ template<typename NewScalarType>
+ EIGEN_DEVICE_FUNC inline typename internal::cast_return_type<Rotation2D,Rotation2D<NewScalarType> >::type cast() const
+ { return typename internal::cast_return_type<Rotation2D,Rotation2D<NewScalarType> >::type(*this); }
+
+ /** Copy constructor with scalar type conversion */
+ template<typename OtherScalarType>
+ EIGEN_DEVICE_FUNC inline explicit Rotation2D(const Rotation2D<OtherScalarType>& other)
+ {
+ m_angle = Scalar(other.angle());
+ }
+
+ EIGEN_DEVICE_FUNC static inline Rotation2D Identity() { return Rotation2D(0); }
+
+ /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+ * determined by \a prec.
+ *
+ * \sa MatrixBase::isApprox() */
+ EIGEN_DEVICE_FUNC bool isApprox(const Rotation2D& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
+ { return internal::isApprox(m_angle,other.m_angle, prec); }
+
+};
+
+/** \ingroup Geometry_Module
+ * single precision 2D rotation type */
+typedef Rotation2D<float> Rotation2Df;
+/** \ingroup Geometry_Module
+ * double precision 2D rotation type */
+typedef Rotation2D<double> Rotation2Dd;
+
+/** Set \c *this from a 2x2 rotation matrix \a mat.
+ * In other words, this function extract the rotation angle
+ * from the rotation matrix.
+ */
+template<typename Scalar>
+template<typename Derived>
+EIGEN_DEVICE_FUNC Rotation2D<Scalar>& Rotation2D<Scalar>::fromRotationMatrix(const MatrixBase<Derived>& mat)
+{
+ EIGEN_USING_STD_MATH(atan2)
+ EIGEN_STATIC_ASSERT(Derived::RowsAtCompileTime==2 && Derived::ColsAtCompileTime==2,YOU_MADE_A_PROGRAMMING_MISTAKE)
+ m_angle = atan2(mat.coeff(1,0), mat.coeff(0,0));
+ return *this;
+}
+
+/** Constructs and \returns an equivalent 2x2 rotation matrix.
+ */
+template<typename Scalar>
+typename Rotation2D<Scalar>::Matrix2
+EIGEN_DEVICE_FUNC Rotation2D<Scalar>::toRotationMatrix(void) const
+{
+ EIGEN_USING_STD_MATH(sin)
+ EIGEN_USING_STD_MATH(cos)
+ Scalar sinA = sin(m_angle);
+ Scalar cosA = cos(m_angle);
+ return (Matrix2() << cosA, -sinA, sinA, cosA).finished();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_ROTATION2D_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/RotationBase.h b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/RotationBase.h
new file mode 100644
index 000000000..f0ee0bd03
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/RotationBase.h
@@ -0,0 +1,206 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ROTATIONBASE_H
+#define EIGEN_ROTATIONBASE_H
+
+namespace Eigen {
+
+// forward declaration
+namespace internal {
+template<typename RotationDerived, typename MatrixType, bool IsVector=MatrixType::IsVectorAtCompileTime>
+struct rotation_base_generic_product_selector;
+}
+
+/** \class RotationBase
+ *
+ * \brief Common base class for compact rotation representations
+ *
+ * \tparam Derived is the derived type, i.e., a rotation type
+ * \tparam _Dim the dimension of the space
+ */
+template<typename Derived, int _Dim>
+class RotationBase
+{
+ public:
+ enum { Dim = _Dim };
+ /** the scalar type of the coefficients */
+ typedef typename internal::traits<Derived>::Scalar Scalar;
+
+ /** corresponding linear transformation matrix type */
+ typedef Matrix<Scalar,Dim,Dim> RotationMatrixType;
+ typedef Matrix<Scalar,Dim,1> VectorType;
+
+ public:
+ EIGEN_DEVICE_FUNC inline const Derived& derived() const { return *static_cast<const Derived*>(this); }
+ EIGEN_DEVICE_FUNC inline Derived& derived() { return *static_cast<Derived*>(this); }
+
+ /** \returns an equivalent rotation matrix */
+ EIGEN_DEVICE_FUNC inline RotationMatrixType toRotationMatrix() const { return derived().toRotationMatrix(); }
+
+ /** \returns an equivalent rotation matrix
+ * This function is added to be conform with the Transform class' naming scheme.
+ */
+ EIGEN_DEVICE_FUNC inline RotationMatrixType matrix() const { return derived().toRotationMatrix(); }
+
+ /** \returns the inverse rotation */
+ EIGEN_DEVICE_FUNC inline Derived inverse() const { return derived().inverse(); }
+
+ /** \returns the concatenation of the rotation \c *this with a translation \a t */
+ EIGEN_DEVICE_FUNC inline Transform<Scalar,Dim,Isometry> operator*(const Translation<Scalar,Dim>& t) const
+ { return Transform<Scalar,Dim,Isometry>(*this) * t; }
+
+ /** \returns the concatenation of the rotation \c *this with a uniform scaling \a s */
+ EIGEN_DEVICE_FUNC inline RotationMatrixType operator*(const UniformScaling<Scalar>& s) const
+ { return toRotationMatrix() * s.factor(); }
+
+ /** \returns the concatenation of the rotation \c *this with a generic expression \a e
+ * \a e can be:
+ * - a DimxDim linear transformation matrix
+ * - a DimxDim diagonal matrix (axis aligned scaling)
+ * - a vector of size Dim
+ */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename internal::rotation_base_generic_product_selector<Derived,OtherDerived,OtherDerived::IsVectorAtCompileTime>::ReturnType
+ operator*(const EigenBase<OtherDerived>& e) const
+ { return internal::rotation_base_generic_product_selector<Derived,OtherDerived>::run(derived(), e.derived()); }
+
+ /** \returns the concatenation of a linear transformation \a l with the rotation \a r */
+ template<typename OtherDerived> friend
+ EIGEN_DEVICE_FUNC inline RotationMatrixType operator*(const EigenBase<OtherDerived>& l, const Derived& r)
+ { return l.derived() * r.toRotationMatrix(); }
+
+ /** \returns the concatenation of a scaling \a l with the rotation \a r */
+ EIGEN_DEVICE_FUNC friend inline Transform<Scalar,Dim,Affine> operator*(const DiagonalMatrix<Scalar,Dim>& l, const Derived& r)
+ {
+ Transform<Scalar,Dim,Affine> res(r);
+ res.linear().applyOnTheLeft(l);
+ return res;
+ }
+
+ /** \returns the concatenation of the rotation \c *this with a transformation \a t */
+ template<int Mode, int Options>
+ EIGEN_DEVICE_FUNC inline Transform<Scalar,Dim,Mode> operator*(const Transform<Scalar,Dim,Mode,Options>& t) const
+ { return toRotationMatrix() * t; }
+
+ template<typename OtherVectorType>
+ EIGEN_DEVICE_FUNC inline VectorType _transformVector(const OtherVectorType& v) const
+ { return toRotationMatrix() * v; }
+};
+
+namespace internal {
+
+// implementation of the generic product rotation * matrix
+template<typename RotationDerived, typename MatrixType>
+struct rotation_base_generic_product_selector<RotationDerived,MatrixType,false>
+{
+ enum { Dim = RotationDerived::Dim };
+ typedef Matrix<typename RotationDerived::Scalar,Dim,Dim> ReturnType;
+ EIGEN_DEVICE_FUNC static inline ReturnType run(const RotationDerived& r, const MatrixType& m)
+ { return r.toRotationMatrix() * m; }
+};
+
+template<typename RotationDerived, typename Scalar, int Dim, int MaxDim>
+struct rotation_base_generic_product_selector< RotationDerived, DiagonalMatrix<Scalar,Dim,MaxDim>, false >
+{
+ typedef Transform<Scalar,Dim,Affine> ReturnType;
+ EIGEN_DEVICE_FUNC static inline ReturnType run(const RotationDerived& r, const DiagonalMatrix<Scalar,Dim,MaxDim>& m)
+ {
+ ReturnType res(r);
+ res.linear() *= m;
+ return res;
+ }
+};
+
+template<typename RotationDerived,typename OtherVectorType>
+struct rotation_base_generic_product_selector<RotationDerived,OtherVectorType,true>
+{
+ enum { Dim = RotationDerived::Dim };
+ typedef Matrix<typename RotationDerived::Scalar,Dim,1> ReturnType;
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE ReturnType run(const RotationDerived& r, const OtherVectorType& v)
+ {
+ return r._transformVector(v);
+ }
+};
+
+} // end namespace internal
+
+/** \geometry_module
+ *
+ * \brief Constructs a Dim x Dim rotation matrix from the rotation \a r
+ */
+template<typename _Scalar, int _Rows, int _Cols, int _Storage, int _MaxRows, int _MaxCols>
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC Matrix<_Scalar, _Rows, _Cols, _Storage, _MaxRows, _MaxCols>
+::Matrix(const RotationBase<OtherDerived,ColsAtCompileTime>& r)
+{
+ EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(Matrix,int(OtherDerived::Dim),int(OtherDerived::Dim))
+ *this = r.toRotationMatrix();
+}
+
+/** \geometry_module
+ *
+ * \brief Set a Dim x Dim rotation matrix from the rotation \a r
+ */
+template<typename _Scalar, int _Rows, int _Cols, int _Storage, int _MaxRows, int _MaxCols>
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC Matrix<_Scalar, _Rows, _Cols, _Storage, _MaxRows, _MaxCols>&
+Matrix<_Scalar, _Rows, _Cols, _Storage, _MaxRows, _MaxCols>
+::operator=(const RotationBase<OtherDerived,ColsAtCompileTime>& r)
+{
+ EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(Matrix,int(OtherDerived::Dim),int(OtherDerived::Dim))
+ return *this = r.toRotationMatrix();
+}
+
+namespace internal {
+
+/** \internal
+ *
+ * Helper function to return an arbitrary rotation object to a rotation matrix.
+ *
+ * \tparam Scalar the numeric type of the matrix coefficients
+ * \tparam Dim the dimension of the current space
+ *
+ * It returns a Dim x Dim fixed size matrix.
+ *
+ * Default specializations are provided for:
+ * - any scalar type (2D),
+ * - any matrix expression,
+ * - any type based on RotationBase (e.g., Quaternion, AngleAxis, Rotation2D)
+ *
+ * Currently toRotationMatrix is only used by Transform.
+ *
+ * \sa class Transform, class Rotation2D, class Quaternion, class AngleAxis
+ */
+template<typename Scalar, int Dim>
+EIGEN_DEVICE_FUNC static inline Matrix<Scalar,2,2> toRotationMatrix(const Scalar& s)
+{
+ EIGEN_STATIC_ASSERT(Dim==2,YOU_MADE_A_PROGRAMMING_MISTAKE)
+ return Rotation2D<Scalar>(s).toRotationMatrix();
+}
+
+template<typename Scalar, int Dim, typename OtherDerived>
+EIGEN_DEVICE_FUNC static inline Matrix<Scalar,Dim,Dim> toRotationMatrix(const RotationBase<OtherDerived,Dim>& r)
+{
+ return r.toRotationMatrix();
+}
+
+template<typename Scalar, int Dim, typename OtherDerived>
+EIGEN_DEVICE_FUNC static inline const MatrixBase<OtherDerived>& toRotationMatrix(const MatrixBase<OtherDerived>& mat)
+{
+ EIGEN_STATIC_ASSERT(OtherDerived::RowsAtCompileTime==Dim && OtherDerived::ColsAtCompileTime==Dim,
+ YOU_MADE_A_PROGRAMMING_MISTAKE)
+ return mat;
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_ROTATIONBASE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Scaling.h b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Scaling.h
new file mode 100755
index 000000000..f58ca03d9
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Scaling.h
@@ -0,0 +1,170 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SCALING_H
+#define EIGEN_SCALING_H
+
+namespace Eigen {
+
+/** \geometry_module \ingroup Geometry_Module
+ *
+ * \class Scaling
+ *
+ * \brief Represents a generic uniform scaling transformation
+ *
+ * \tparam _Scalar the scalar type, i.e., the type of the coefficients.
+ *
+ * This class represent a uniform scaling transformation. It is the return
+ * type of Scaling(Scalar), and most of the time this is the only way it
+ * is used. In particular, this class is not aimed to be used to store a scaling transformation,
+ * but rather to make easier the constructions and updates of Transform objects.
+ *
+ * To represent an axis aligned scaling, use the DiagonalMatrix class.
+ *
+ * \sa Scaling(), class DiagonalMatrix, MatrixBase::asDiagonal(), class Translation, class Transform
+ */
+template<typename _Scalar>
+class UniformScaling
+{
+public:
+ /** the scalar type of the coefficients */
+ typedef _Scalar Scalar;
+
+protected:
+
+ Scalar m_factor;
+
+public:
+
+ /** Default constructor without initialization. */
+ UniformScaling() {}
+ /** Constructs and initialize a uniform scaling transformation */
+ explicit inline UniformScaling(const Scalar& s) : m_factor(s) {}
+
+ inline const Scalar& factor() const { return m_factor; }
+ inline Scalar& factor() { return m_factor; }
+
+ /** Concatenates two uniform scaling */
+ inline UniformScaling operator* (const UniformScaling& other) const
+ { return UniformScaling(m_factor * other.factor()); }
+
+ /** Concatenates a uniform scaling and a translation */
+ template<int Dim>
+ inline Transform<Scalar,Dim,Affine> operator* (const Translation<Scalar,Dim>& t) const;
+
+ /** Concatenates a uniform scaling and an affine transformation */
+ template<int Dim, int Mode, int Options>
+ inline Transform<Scalar,Dim,(int(Mode)==int(Isometry)?Affine:Mode)> operator* (const Transform<Scalar,Dim, Mode, Options>& t) const
+ {
+ Transform<Scalar,Dim,(int(Mode)==int(Isometry)?Affine:Mode)> res = t;
+ res.prescale(factor());
+ return res;
+ }
+
+ /** Concatenates a uniform scaling and a linear transformation matrix */
+ // TODO returns an expression
+ template<typename Derived>
+ inline typename internal::plain_matrix_type<Derived>::type operator* (const MatrixBase<Derived>& other) const
+ { return other * m_factor; }
+
+ template<typename Derived,int Dim>
+ inline Matrix<Scalar,Dim,Dim> operator*(const RotationBase<Derived,Dim>& r) const
+ { return r.toRotationMatrix() * m_factor; }
+
+ /** \returns the inverse scaling */
+ inline UniformScaling inverse() const
+ { return UniformScaling(Scalar(1)/m_factor); }
+
+ /** \returns \c *this with scalar type casted to \a NewScalarType
+ *
+ * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+ * then this function smartly returns a const reference to \c *this.
+ */
+ template<typename NewScalarType>
+ inline UniformScaling<NewScalarType> cast() const
+ { return UniformScaling<NewScalarType>(NewScalarType(m_factor)); }
+
+ /** Copy constructor with scalar type conversion */
+ template<typename OtherScalarType>
+ inline explicit UniformScaling(const UniformScaling<OtherScalarType>& other)
+ { m_factor = Scalar(other.factor()); }
+
+ /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+ * determined by \a prec.
+ *
+ * \sa MatrixBase::isApprox() */
+ bool isApprox(const UniformScaling& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
+ { return internal::isApprox(m_factor, other.factor(), prec); }
+
+};
+
+/** \addtogroup Geometry_Module */
+//@{
+
+/** Concatenates a linear transformation matrix and a uniform scaling
+ * \relates UniformScaling
+ */
+// NOTE this operator is defiend in MatrixBase and not as a friend function
+// of UniformScaling to fix an internal crash of Intel's ICC
+template<typename Derived,typename Scalar>
+EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(Derived,Scalar,product)
+operator*(const MatrixBase<Derived>& matrix, const UniformScaling<Scalar>& s)
+{ return matrix.derived() * s.factor(); }
+
+/** Constructs a uniform scaling from scale factor \a s */
+inline UniformScaling<float> Scaling(float s) { return UniformScaling<float>(s); }
+/** Constructs a uniform scaling from scale factor \a s */
+inline UniformScaling<double> Scaling(double s) { return UniformScaling<double>(s); }
+/** Constructs a uniform scaling from scale factor \a s */
+template<typename RealScalar>
+inline UniformScaling<std::complex<RealScalar> > Scaling(const std::complex<RealScalar>& s)
+{ return UniformScaling<std::complex<RealScalar> >(s); }
+
+/** Constructs a 2D axis aligned scaling */
+template<typename Scalar>
+inline DiagonalMatrix<Scalar,2> Scaling(const Scalar& sx, const Scalar& sy)
+{ return DiagonalMatrix<Scalar,2>(sx, sy); }
+/** Constructs a 3D axis aligned scaling */
+template<typename Scalar>
+inline DiagonalMatrix<Scalar,3> Scaling(const Scalar& sx, const Scalar& sy, const Scalar& sz)
+{ return DiagonalMatrix<Scalar,3>(sx, sy, sz); }
+
+/** Constructs an axis aligned scaling expression from vector expression \a coeffs
+ * This is an alias for coeffs.asDiagonal()
+ */
+template<typename Derived>
+inline const DiagonalWrapper<const Derived> Scaling(const MatrixBase<Derived>& coeffs)
+{ return coeffs.asDiagonal(); }
+
+/** \deprecated */
+typedef DiagonalMatrix<float, 2> AlignedScaling2f;
+/** \deprecated */
+typedef DiagonalMatrix<double,2> AlignedScaling2d;
+/** \deprecated */
+typedef DiagonalMatrix<float, 3> AlignedScaling3f;
+/** \deprecated */
+typedef DiagonalMatrix<double,3> AlignedScaling3d;
+//@}
+
+template<typename Scalar>
+template<int Dim>
+inline Transform<Scalar,Dim,Affine>
+UniformScaling<Scalar>::operator* (const Translation<Scalar,Dim>& t) const
+{
+ Transform<Scalar,Dim,Affine> res;
+ res.matrix().setZero();
+ res.linear().diagonal().fill(factor());
+ res.translation() = factor() * t.vector();
+ res(Dim,Dim) = Scalar(1);
+ return res;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SCALING_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Transform.h b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Transform.h
new file mode 100644
index 000000000..3f31ee45d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Transform.h
@@ -0,0 +1,1542 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2010 Hauke Heibel <hauke.heibel@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRANSFORM_H
+#define EIGEN_TRANSFORM_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename Transform>
+struct transform_traits
+{
+ enum
+ {
+ Dim = Transform::Dim,
+ HDim = Transform::HDim,
+ Mode = Transform::Mode,
+ IsProjective = (int(Mode)==int(Projective))
+ };
+};
+
+template< typename TransformType,
+ typename MatrixType,
+ int Case = transform_traits<TransformType>::IsProjective ? 0
+ : int(MatrixType::RowsAtCompileTime) == int(transform_traits<TransformType>::HDim) ? 1
+ : 2,
+ int RhsCols = MatrixType::ColsAtCompileTime>
+struct transform_right_product_impl;
+
+template< typename Other,
+ int Mode,
+ int Options,
+ int Dim,
+ int HDim,
+ int OtherRows=Other::RowsAtCompileTime,
+ int OtherCols=Other::ColsAtCompileTime>
+struct transform_left_product_impl;
+
+template< typename Lhs,
+ typename Rhs,
+ bool AnyProjective =
+ transform_traits<Lhs>::IsProjective ||
+ transform_traits<Rhs>::IsProjective>
+struct transform_transform_product_impl;
+
+template< typename Other,
+ int Mode,
+ int Options,
+ int Dim,
+ int HDim,
+ int OtherRows=Other::RowsAtCompileTime,
+ int OtherCols=Other::ColsAtCompileTime>
+struct transform_construct_from_matrix;
+
+template<typename TransformType> struct transform_take_affine_part;
+
+template<typename _Scalar, int _Dim, int _Mode, int _Options>
+struct traits<Transform<_Scalar,_Dim,_Mode,_Options> >
+{
+ typedef _Scalar Scalar;
+ typedef Eigen::Index StorageIndex;
+ typedef Dense StorageKind;
+ enum {
+ Dim1 = _Dim==Dynamic ? _Dim : _Dim + 1,
+ RowsAtCompileTime = _Mode==Projective ? Dim1 : _Dim,
+ ColsAtCompileTime = Dim1,
+ MaxRowsAtCompileTime = RowsAtCompileTime,
+ MaxColsAtCompileTime = ColsAtCompileTime,
+ Flags = 0
+ };
+};
+
+template<int Mode> struct transform_make_affine;
+
+} // end namespace internal
+
+/** \geometry_module \ingroup Geometry_Module
+ *
+ * \class Transform
+ *
+ * \brief Represents an homogeneous transformation in a N dimensional space
+ *
+ * \tparam _Scalar the scalar type, i.e., the type of the coefficients
+ * \tparam _Dim the dimension of the space
+ * \tparam _Mode the type of the transformation. Can be:
+ * - #Affine: the transformation is stored as a (Dim+1)^2 matrix,
+ * where the last row is assumed to be [0 ... 0 1].
+ * - #AffineCompact: the transformation is stored as a (Dim)x(Dim+1) matrix.
+ * - #Projective: the transformation is stored as a (Dim+1)^2 matrix
+ * without any assumption.
+ * \tparam _Options has the same meaning as in class Matrix. It allows to specify DontAlign and/or RowMajor.
+ * These Options are passed directly to the underlying matrix type.
+ *
+ * The homography is internally represented and stored by a matrix which
+ * is available through the matrix() method. To understand the behavior of
+ * this class you have to think a Transform object as its internal
+ * matrix representation. The chosen convention is right multiply:
+ *
+ * \code v' = T * v \endcode
+ *
+ * Therefore, an affine transformation matrix M is shaped like this:
+ *
+ * \f$ \left( \begin{array}{cc}
+ * linear & translation\\
+ * 0 ... 0 & 1
+ * \end{array} \right) \f$
+ *
+ * Note that for a projective transformation the last row can be anything,
+ * and then the interpretation of different parts might be sightly different.
+ *
+ * However, unlike a plain matrix, the Transform class provides many features
+ * simplifying both its assembly and usage. In particular, it can be composed
+ * with any other transformations (Transform,Translation,RotationBase,DiagonalMatrix)
+ * and can be directly used to transform implicit homogeneous vectors. All these
+ * operations are handled via the operator*. For the composition of transformations,
+ * its principle consists to first convert the right/left hand sides of the product
+ * to a compatible (Dim+1)^2 matrix and then perform a pure matrix product.
+ * Of course, internally, operator* tries to perform the minimal number of operations
+ * according to the nature of each terms. Likewise, when applying the transform
+ * to points, the latters are automatically promoted to homogeneous vectors
+ * before doing the matrix product. The conventions to homogeneous representations
+ * are performed as follow:
+ *
+ * \b Translation t (Dim)x(1):
+ * \f$ \left( \begin{array}{cc}
+ * I & t \\
+ * 0\,...\,0 & 1
+ * \end{array} \right) \f$
+ *
+ * \b Rotation R (Dim)x(Dim):
+ * \f$ \left( \begin{array}{cc}
+ * R & 0\\
+ * 0\,...\,0 & 1
+ * \end{array} \right) \f$
+ *<!--
+ * \b Linear \b Matrix L (Dim)x(Dim):
+ * \f$ \left( \begin{array}{cc}
+ * L & 0\\
+ * 0\,...\,0 & 1
+ * \end{array} \right) \f$
+ *
+ * \b Affine \b Matrix A (Dim)x(Dim+1):
+ * \f$ \left( \begin{array}{c}
+ * A\\
+ * 0\,...\,0\,1
+ * \end{array} \right) \f$
+ *-->
+ * \b Scaling \b DiagonalMatrix S (Dim)x(Dim):
+ * \f$ \left( \begin{array}{cc}
+ * S & 0\\
+ * 0\,...\,0 & 1
+ * \end{array} \right) \f$
+ *
+ * \b Column \b point v (Dim)x(1):
+ * \f$ \left( \begin{array}{c}
+ * v\\
+ * 1
+ * \end{array} \right) \f$
+ *
+ * \b Set \b of \b column \b points V1...Vn (Dim)x(n):
+ * \f$ \left( \begin{array}{ccc}
+ * v_1 & ... & v_n\\
+ * 1 & ... & 1
+ * \end{array} \right) \f$
+ *
+ * The concatenation of a Transform object with any kind of other transformation
+ * always returns a Transform object.
+ *
+ * A little exception to the "as pure matrix product" rule is the case of the
+ * transformation of non homogeneous vectors by an affine transformation. In
+ * that case the last matrix row can be ignored, and the product returns non
+ * homogeneous vectors.
+ *
+ * Since, for instance, a Dim x Dim matrix is interpreted as a linear transformation,
+ * it is not possible to directly transform Dim vectors stored in a Dim x Dim matrix.
+ * The solution is either to use a Dim x Dynamic matrix or explicitly request a
+ * vector transformation by making the vector homogeneous:
+ * \code
+ * m' = T * m.colwise().homogeneous();
+ * \endcode
+ * Note that there is zero overhead.
+ *
+ * Conversion methods from/to Qt's QMatrix and QTransform are available if the
+ * preprocessor token EIGEN_QT_SUPPORT is defined.
+ *
+ * This class can be extended with the help of the plugin mechanism described on the page
+ * \ref TopicCustomizing_Plugins by defining the preprocessor symbol \c EIGEN_TRANSFORM_PLUGIN.
+ *
+ * \sa class Matrix, class Quaternion
+ */
+template<typename _Scalar, int _Dim, int _Mode, int _Options>
+class Transform
+{
+public:
+ EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_Dim==Dynamic ? Dynamic : (_Dim+1)*(_Dim+1))
+ enum {
+ Mode = _Mode,
+ Options = _Options,
+ Dim = _Dim, ///< space dimension in which the transformation holds
+ HDim = _Dim+1, ///< size of a respective homogeneous vector
+ Rows = int(Mode)==(AffineCompact) ? Dim : HDim
+ };
+ /** the scalar type of the coefficients */
+ typedef _Scalar Scalar;
+ typedef Eigen::Index StorageIndex;
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
+ /** type of the matrix used to represent the transformation */
+ typedef typename internal::make_proper_matrix_type<Scalar,Rows,HDim,Options>::type MatrixType;
+ /** constified MatrixType */
+ typedef const MatrixType ConstMatrixType;
+ /** type of the matrix used to represent the linear part of the transformation */
+ typedef Matrix<Scalar,Dim,Dim,Options> LinearMatrixType;
+ /** type of read/write reference to the linear part of the transformation */
+ typedef Block<MatrixType,Dim,Dim,int(Mode)==(AffineCompact) && (Options&RowMajor)==0> LinearPart;
+ /** type of read reference to the linear part of the transformation */
+ typedef const Block<ConstMatrixType,Dim,Dim,int(Mode)==(AffineCompact) && (Options&RowMajor)==0> ConstLinearPart;
+ /** type of read/write reference to the affine part of the transformation */
+ typedef typename internal::conditional<int(Mode)==int(AffineCompact),
+ MatrixType&,
+ Block<MatrixType,Dim,HDim> >::type AffinePart;
+ /** type of read reference to the affine part of the transformation */
+ typedef typename internal::conditional<int(Mode)==int(AffineCompact),
+ const MatrixType&,
+ const Block<const MatrixType,Dim,HDim> >::type ConstAffinePart;
+ /** type of a vector */
+ typedef Matrix<Scalar,Dim,1> VectorType;
+ /** type of a read/write reference to the translation part of the rotation */
+ typedef Block<MatrixType,Dim,1,!(internal::traits<MatrixType>::Flags & RowMajorBit)> TranslationPart;
+ /** type of a read reference to the translation part of the rotation */
+ typedef const Block<ConstMatrixType,Dim,1,!(internal::traits<MatrixType>::Flags & RowMajorBit)> ConstTranslationPart;
+ /** corresponding translation type */
+ typedef Translation<Scalar,Dim> TranslationType;
+
+ // this intermediate enum is needed to avoid an ICE with gcc 3.4 and 4.0
+ enum { TransformTimeDiagonalMode = ((Mode==int(Isometry))?Affine:int(Mode)) };
+ /** The return type of the product between a diagonal matrix and a transform */
+ typedef Transform<Scalar,Dim,TransformTimeDiagonalMode> TransformTimeDiagonalReturnType;
+
+protected:
+
+ MatrixType m_matrix;
+
+public:
+
+ /** Default constructor without initialization of the meaningful coefficients.
+ * If Mode==Affine, then the last row is set to [0 ... 0 1] */
+ EIGEN_DEVICE_FUNC inline Transform()
+ {
+ check_template_params();
+ internal::transform_make_affine<(int(Mode)==Affine) ? Affine : AffineCompact>::run(m_matrix);
+ }
+
+ EIGEN_DEVICE_FUNC inline Transform(const Transform& other)
+ {
+ check_template_params();
+ m_matrix = other.m_matrix;
+ }
+
+ EIGEN_DEVICE_FUNC inline explicit Transform(const TranslationType& t)
+ {
+ check_template_params();
+ *this = t;
+ }
+ EIGEN_DEVICE_FUNC inline explicit Transform(const UniformScaling<Scalar>& s)
+ {
+ check_template_params();
+ *this = s;
+ }
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC inline explicit Transform(const RotationBase<Derived, Dim>& r)
+ {
+ check_template_params();
+ *this = r;
+ }
+
+ EIGEN_DEVICE_FUNC inline Transform& operator=(const Transform& other)
+ { m_matrix = other.m_matrix; return *this; }
+
+ typedef internal::transform_take_affine_part<Transform> take_affine_part;
+
+ /** Constructs and initializes a transformation from a Dim^2 or a (Dim+1)^2 matrix. */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC inline explicit Transform(const EigenBase<OtherDerived>& other)
+ {
+ EIGEN_STATIC_ASSERT((internal::is_same<Scalar,typename OtherDerived::Scalar>::value),
+ YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY);
+
+ check_template_params();
+ internal::transform_construct_from_matrix<OtherDerived,Mode,Options,Dim,HDim>::run(this, other.derived());
+ }
+
+ /** Set \c *this from a Dim^2 or (Dim+1)^2 matrix. */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC inline Transform& operator=(const EigenBase<OtherDerived>& other)
+ {
+ EIGEN_STATIC_ASSERT((internal::is_same<Scalar,typename OtherDerived::Scalar>::value),
+ YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY);
+
+ internal::transform_construct_from_matrix<OtherDerived,Mode,Options,Dim,HDim>::run(this, other.derived());
+ return *this;
+ }
+
+ template<int OtherOptions>
+ EIGEN_DEVICE_FUNC inline Transform(const Transform<Scalar,Dim,Mode,OtherOptions>& other)
+ {
+ check_template_params();
+ // only the options change, we can directly copy the matrices
+ m_matrix = other.matrix();
+ }
+
+ template<int OtherMode,int OtherOptions>
+ EIGEN_DEVICE_FUNC inline Transform(const Transform<Scalar,Dim,OtherMode,OtherOptions>& other)
+ {
+ check_template_params();
+ // prevent conversions as:
+ // Affine | AffineCompact | Isometry = Projective
+ EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(OtherMode==int(Projective), Mode==int(Projective)),
+ YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION)
+
+ // prevent conversions as:
+ // Isometry = Affine | AffineCompact
+ EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(OtherMode==int(Affine)||OtherMode==int(AffineCompact), Mode!=int(Isometry)),
+ YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION)
+
+ enum { ModeIsAffineCompact = Mode == int(AffineCompact),
+ OtherModeIsAffineCompact = OtherMode == int(AffineCompact)
+ };
+
+ if(ModeIsAffineCompact == OtherModeIsAffineCompact)
+ {
+ // We need the block expression because the code is compiled for all
+ // combinations of transformations and will trigger a compile time error
+ // if one tries to assign the matrices directly
+ m_matrix.template block<Dim,Dim+1>(0,0) = other.matrix().template block<Dim,Dim+1>(0,0);
+ makeAffine();
+ }
+ else if(OtherModeIsAffineCompact)
+ {
+ typedef typename Transform<Scalar,Dim,OtherMode,OtherOptions>::MatrixType OtherMatrixType;
+ internal::transform_construct_from_matrix<OtherMatrixType,Mode,Options,Dim,HDim>::run(this, other.matrix());
+ }
+ else
+ {
+ // here we know that Mode == AffineCompact and OtherMode != AffineCompact.
+ // if OtherMode were Projective, the static assert above would already have caught it.
+ // So the only possibility is that OtherMode == Affine
+ linear() = other.linear();
+ translation() = other.translation();
+ }
+ }
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC Transform(const ReturnByValue<OtherDerived>& other)
+ {
+ check_template_params();
+ other.evalTo(*this);
+ }
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC Transform& operator=(const ReturnByValue<OtherDerived>& other)
+ {
+ other.evalTo(*this);
+ return *this;
+ }
+
+ #ifdef EIGEN_QT_SUPPORT
+ inline Transform(const QMatrix& other);
+ inline Transform& operator=(const QMatrix& other);
+ inline QMatrix toQMatrix(void) const;
+ inline Transform(const QTransform& other);
+ inline Transform& operator=(const QTransform& other);
+ inline QTransform toQTransform(void) const;
+ #endif
+
+ EIGEN_DEVICE_FUNC Index rows() const { return int(Mode)==int(Projective) ? m_matrix.cols() : (m_matrix.cols()-1); }
+ EIGEN_DEVICE_FUNC Index cols() const { return m_matrix.cols(); }
+
+ /** shortcut for m_matrix(row,col);
+ * \sa MatrixBase::operator(Index,Index) const */
+ EIGEN_DEVICE_FUNC inline Scalar operator() (Index row, Index col) const { return m_matrix(row,col); }
+ /** shortcut for m_matrix(row,col);
+ * \sa MatrixBase::operator(Index,Index) */
+ EIGEN_DEVICE_FUNC inline Scalar& operator() (Index row, Index col) { return m_matrix(row,col); }
+
+ /** \returns a read-only expression of the transformation matrix */
+ EIGEN_DEVICE_FUNC inline const MatrixType& matrix() const { return m_matrix; }
+ /** \returns a writable expression of the transformation matrix */
+ EIGEN_DEVICE_FUNC inline MatrixType& matrix() { return m_matrix; }
+
+ /** \returns a read-only expression of the linear part of the transformation */
+ EIGEN_DEVICE_FUNC inline ConstLinearPart linear() const { return ConstLinearPart(m_matrix,0,0); }
+ /** \returns a writable expression of the linear part of the transformation */
+ EIGEN_DEVICE_FUNC inline LinearPart linear() { return LinearPart(m_matrix,0,0); }
+
+ /** \returns a read-only expression of the Dim x HDim affine part of the transformation */
+ EIGEN_DEVICE_FUNC inline ConstAffinePart affine() const { return take_affine_part::run(m_matrix); }
+ /** \returns a writable expression of the Dim x HDim affine part of the transformation */
+ EIGEN_DEVICE_FUNC inline AffinePart affine() { return take_affine_part::run(m_matrix); }
+
+ /** \returns a read-only expression of the translation vector of the transformation */
+ EIGEN_DEVICE_FUNC inline ConstTranslationPart translation() const { return ConstTranslationPart(m_matrix,0,Dim); }
+ /** \returns a writable expression of the translation vector of the transformation */
+ EIGEN_DEVICE_FUNC inline TranslationPart translation() { return TranslationPart(m_matrix,0,Dim); }
+
+ /** \returns an expression of the product between the transform \c *this and a matrix expression \a other.
+ *
+ * The right-hand-side \a other can be either:
+ * \li an homogeneous vector of size Dim+1,
+ * \li a set of homogeneous vectors of size Dim+1 x N,
+ * \li a transformation matrix of size Dim+1 x Dim+1.
+ *
+ * Moreover, if \c *this represents an affine transformation (i.e., Mode!=Projective), then \a other can also be:
+ * \li a point of size Dim (computes: \code this->linear() * other + this->translation()\endcode),
+ * \li a set of N points as a Dim x N matrix (computes: \code (this->linear() * other).colwise() + this->translation()\endcode),
+ *
+ * In all cases, the return type is a matrix or vector of same sizes as the right-hand-side \a other.
+ *
+ * If you want to interpret \a other as a linear or affine transformation, then first convert it to a Transform<> type,
+ * or do your own cooking.
+ *
+ * Finally, if you want to apply Affine transformations to vectors, then explicitly apply the linear part only:
+ * \code
+ * Affine3f A;
+ * Vector3f v1, v2;
+ * v2 = A.linear() * v1;
+ * \endcode
+ *
+ */
+ // note: this function is defined here because some compilers cannot find the respective declaration
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename internal::transform_right_product_impl<Transform, OtherDerived>::ResultType
+ operator * (const EigenBase<OtherDerived> &other) const
+ { return internal::transform_right_product_impl<Transform, OtherDerived>::run(*this,other.derived()); }
+
+ /** \returns the product expression of a transformation matrix \a a times a transform \a b
+ *
+ * The left hand side \a other can be either:
+ * \li a linear transformation matrix of size Dim x Dim,
+ * \li an affine transformation matrix of size Dim x Dim+1,
+ * \li a general transformation matrix of size Dim+1 x Dim+1.
+ */
+ template<typename OtherDerived> friend
+ EIGEN_DEVICE_FUNC inline const typename internal::transform_left_product_impl<OtherDerived,Mode,Options,_Dim,_Dim+1>::ResultType
+ operator * (const EigenBase<OtherDerived> &a, const Transform &b)
+ { return internal::transform_left_product_impl<OtherDerived,Mode,Options,Dim,HDim>::run(a.derived(),b); }
+
+ /** \returns The product expression of a transform \a a times a diagonal matrix \a b
+ *
+ * The rhs diagonal matrix is interpreted as an affine scaling transformation. The
+ * product results in a Transform of the same type (mode) as the lhs only if the lhs
+ * mode is no isometry. In that case, the returned transform is an affinity.
+ */
+ template<typename DiagonalDerived>
+ EIGEN_DEVICE_FUNC inline const TransformTimeDiagonalReturnType
+ operator * (const DiagonalBase<DiagonalDerived> &b) const
+ {
+ TransformTimeDiagonalReturnType res(*this);
+ res.linearExt() *= b;
+ return res;
+ }
+
+ /** \returns The product expression of a diagonal matrix \a a times a transform \a b
+ *
+ * The lhs diagonal matrix is interpreted as an affine scaling transformation. The
+ * product results in a Transform of the same type (mode) as the lhs only if the lhs
+ * mode is no isometry. In that case, the returned transform is an affinity.
+ */
+ template<typename DiagonalDerived>
+ EIGEN_DEVICE_FUNC friend inline TransformTimeDiagonalReturnType
+ operator * (const DiagonalBase<DiagonalDerived> &a, const Transform &b)
+ {
+ TransformTimeDiagonalReturnType res;
+ res.linear().noalias() = a*b.linear();
+ res.translation().noalias() = a*b.translation();
+ if (Mode!=int(AffineCompact))
+ res.matrix().row(Dim) = b.matrix().row(Dim);
+ return res;
+ }
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC inline Transform& operator*=(const EigenBase<OtherDerived>& other) { return *this = *this * other; }
+
+ /** Concatenates two transformations */
+ EIGEN_DEVICE_FUNC inline const Transform operator * (const Transform& other) const
+ {
+ return internal::transform_transform_product_impl<Transform,Transform>::run(*this,other);
+ }
+
+ #if EIGEN_COMP_ICC
+private:
+ // this intermediate structure permits to workaround a bug in ICC 11:
+ // error: template instantiation resulted in unexpected function type of "Eigen::Transform<double, 3, 32, 0>
+ // (const Eigen::Transform<double, 3, 2, 0> &) const"
+ // (the meaning of a name may have changed since the template declaration -- the type of the template is:
+ // "Eigen::internal::transform_transform_product_impl<Eigen::Transform<double, 3, 32, 0>,
+ // Eigen::Transform<double, 3, Mode, Options>, <expression>>::ResultType (const Eigen::Transform<double, 3, Mode, Options> &) const")
+ //
+ template<int OtherMode,int OtherOptions> struct icc_11_workaround
+ {
+ typedef internal::transform_transform_product_impl<Transform,Transform<Scalar,Dim,OtherMode,OtherOptions> > ProductType;
+ typedef typename ProductType::ResultType ResultType;
+ };
+
+public:
+ /** Concatenates two different transformations */
+ template<int OtherMode,int OtherOptions>
+ inline typename icc_11_workaround<OtherMode,OtherOptions>::ResultType
+ operator * (const Transform<Scalar,Dim,OtherMode,OtherOptions>& other) const
+ {
+ typedef typename icc_11_workaround<OtherMode,OtherOptions>::ProductType ProductType;
+ return ProductType::run(*this,other);
+ }
+ #else
+ /** Concatenates two different transformations */
+ template<int OtherMode,int OtherOptions>
+ EIGEN_DEVICE_FUNC inline typename internal::transform_transform_product_impl<Transform,Transform<Scalar,Dim,OtherMode,OtherOptions> >::ResultType
+ operator * (const Transform<Scalar,Dim,OtherMode,OtherOptions>& other) const
+ {
+ return internal::transform_transform_product_impl<Transform,Transform<Scalar,Dim,OtherMode,OtherOptions> >::run(*this,other);
+ }
+ #endif
+
+ /** \sa MatrixBase::setIdentity() */
+ EIGEN_DEVICE_FUNC void setIdentity() { m_matrix.setIdentity(); }
+
+ /**
+ * \brief Returns an identity transformation.
+ * \todo In the future this function should be returning a Transform expression.
+ */
+ EIGEN_DEVICE_FUNC static const Transform Identity()
+ {
+ return Transform(MatrixType::Identity());
+ }
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ inline Transform& scale(const MatrixBase<OtherDerived> &other);
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ inline Transform& prescale(const MatrixBase<OtherDerived> &other);
+
+ EIGEN_DEVICE_FUNC inline Transform& scale(const Scalar& s);
+ EIGEN_DEVICE_FUNC inline Transform& prescale(const Scalar& s);
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ inline Transform& translate(const MatrixBase<OtherDerived> &other);
+
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC
+ inline Transform& pretranslate(const MatrixBase<OtherDerived> &other);
+
+ template<typename RotationType>
+ EIGEN_DEVICE_FUNC
+ inline Transform& rotate(const RotationType& rotation);
+
+ template<typename RotationType>
+ EIGEN_DEVICE_FUNC
+ inline Transform& prerotate(const RotationType& rotation);
+
+ EIGEN_DEVICE_FUNC Transform& shear(const Scalar& sx, const Scalar& sy);
+ EIGEN_DEVICE_FUNC Transform& preshear(const Scalar& sx, const Scalar& sy);
+
+ EIGEN_DEVICE_FUNC inline Transform& operator=(const TranslationType& t);
+
+ EIGEN_DEVICE_FUNC
+ inline Transform& operator*=(const TranslationType& t) { return translate(t.vector()); }
+
+ EIGEN_DEVICE_FUNC inline Transform operator*(const TranslationType& t) const;
+
+ EIGEN_DEVICE_FUNC
+ inline Transform& operator=(const UniformScaling<Scalar>& t);
+
+ EIGEN_DEVICE_FUNC
+ inline Transform& operator*=(const UniformScaling<Scalar>& s) { return scale(s.factor()); }
+
+ EIGEN_DEVICE_FUNC
+ inline TransformTimeDiagonalReturnType operator*(const UniformScaling<Scalar>& s) const
+ {
+ TransformTimeDiagonalReturnType res = *this;
+ res.scale(s.factor());
+ return res;
+ }
+
+ EIGEN_DEVICE_FUNC
+ inline Transform& operator*=(const DiagonalMatrix<Scalar,Dim>& s) { linearExt() *= s; return *this; }
+
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC inline Transform& operator=(const RotationBase<Derived,Dim>& r);
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC inline Transform& operator*=(const RotationBase<Derived,Dim>& r) { return rotate(r.toRotationMatrix()); }
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC inline Transform operator*(const RotationBase<Derived,Dim>& r) const;
+
+ EIGEN_DEVICE_FUNC const LinearMatrixType rotation() const;
+ template<typename RotationMatrixType, typename ScalingMatrixType>
+ EIGEN_DEVICE_FUNC
+ void computeRotationScaling(RotationMatrixType *rotation, ScalingMatrixType *scaling) const;
+ template<typename ScalingMatrixType, typename RotationMatrixType>
+ EIGEN_DEVICE_FUNC
+ void computeScalingRotation(ScalingMatrixType *scaling, RotationMatrixType *rotation) const;
+
+ template<typename PositionDerived, typename OrientationType, typename ScaleDerived>
+ EIGEN_DEVICE_FUNC
+ Transform& fromPositionOrientationScale(const MatrixBase<PositionDerived> &position,
+ const OrientationType& orientation, const MatrixBase<ScaleDerived> &scale);
+
+ EIGEN_DEVICE_FUNC
+ inline Transform inverse(TransformTraits traits = (TransformTraits)Mode) const;
+
+ /** \returns a const pointer to the column major internal matrix */
+ EIGEN_DEVICE_FUNC const Scalar* data() const { return m_matrix.data(); }
+ /** \returns a non-const pointer to the column major internal matrix */
+ EIGEN_DEVICE_FUNC Scalar* data() { return m_matrix.data(); }
+
+ /** \returns \c *this with scalar type casted to \a NewScalarType
+ *
+ * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+ * then this function smartly returns a const reference to \c *this.
+ */
+ template<typename NewScalarType>
+ EIGEN_DEVICE_FUNC inline typename internal::cast_return_type<Transform,Transform<NewScalarType,Dim,Mode,Options> >::type cast() const
+ { return typename internal::cast_return_type<Transform,Transform<NewScalarType,Dim,Mode,Options> >::type(*this); }
+
+ /** Copy constructor with scalar type conversion */
+ template<typename OtherScalarType>
+ EIGEN_DEVICE_FUNC inline explicit Transform(const Transform<OtherScalarType,Dim,Mode,Options>& other)
+ {
+ check_template_params();
+ m_matrix = other.matrix().template cast<Scalar>();
+ }
+
+ /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+ * determined by \a prec.
+ *
+ * \sa MatrixBase::isApprox() */
+ EIGEN_DEVICE_FUNC bool isApprox(const Transform& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
+ { return m_matrix.isApprox(other.m_matrix, prec); }
+
+ /** Sets the last row to [0 ... 0 1]
+ */
+ EIGEN_DEVICE_FUNC void makeAffine()
+ {
+ internal::transform_make_affine<int(Mode)>::run(m_matrix);
+ }
+
+ /** \internal
+ * \returns the Dim x Dim linear part if the transformation is affine,
+ * and the HDim x Dim part for projective transformations.
+ */
+ EIGEN_DEVICE_FUNC inline Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,Dim> linearExt()
+ { return m_matrix.template block<int(Mode)==int(Projective)?HDim:Dim,Dim>(0,0); }
+ /** \internal
+ * \returns the Dim x Dim linear part if the transformation is affine,
+ * and the HDim x Dim part for projective transformations.
+ */
+ EIGEN_DEVICE_FUNC inline const Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,Dim> linearExt() const
+ { return m_matrix.template block<int(Mode)==int(Projective)?HDim:Dim,Dim>(0,0); }
+
+ /** \internal
+ * \returns the translation part if the transformation is affine,
+ * and the last column for projective transformations.
+ */
+ EIGEN_DEVICE_FUNC inline Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,1> translationExt()
+ { return m_matrix.template block<int(Mode)==int(Projective)?HDim:Dim,1>(0,Dim); }
+ /** \internal
+ * \returns the translation part if the transformation is affine,
+ * and the last column for projective transformations.
+ */
+ EIGEN_DEVICE_FUNC inline const Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,1> translationExt() const
+ { return m_matrix.template block<int(Mode)==int(Projective)?HDim:Dim,1>(0,Dim); }
+
+
+ #ifdef EIGEN_TRANSFORM_PLUGIN
+ #include EIGEN_TRANSFORM_PLUGIN
+ #endif
+
+protected:
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE void check_template_params()
+ {
+ EIGEN_STATIC_ASSERT((Options & (DontAlign|RowMajor)) == Options, INVALID_MATRIX_TEMPLATE_PARAMETERS)
+ }
+ #endif
+
+};
+
+/** \ingroup Geometry_Module */
+typedef Transform<float,2,Isometry> Isometry2f;
+/** \ingroup Geometry_Module */
+typedef Transform<float,3,Isometry> Isometry3f;
+/** \ingroup Geometry_Module */
+typedef Transform<double,2,Isometry> Isometry2d;
+/** \ingroup Geometry_Module */
+typedef Transform<double,3,Isometry> Isometry3d;
+
+/** \ingroup Geometry_Module */
+typedef Transform<float,2,Affine> Affine2f;
+/** \ingroup Geometry_Module */
+typedef Transform<float,3,Affine> Affine3f;
+/** \ingroup Geometry_Module */
+typedef Transform<double,2,Affine> Affine2d;
+/** \ingroup Geometry_Module */
+typedef Transform<double,3,Affine> Affine3d;
+
+/** \ingroup Geometry_Module */
+typedef Transform<float,2,AffineCompact> AffineCompact2f;
+/** \ingroup Geometry_Module */
+typedef Transform<float,3,AffineCompact> AffineCompact3f;
+/** \ingroup Geometry_Module */
+typedef Transform<double,2,AffineCompact> AffineCompact2d;
+/** \ingroup Geometry_Module */
+typedef Transform<double,3,AffineCompact> AffineCompact3d;
+
+/** \ingroup Geometry_Module */
+typedef Transform<float,2,Projective> Projective2f;
+/** \ingroup Geometry_Module */
+typedef Transform<float,3,Projective> Projective3f;
+/** \ingroup Geometry_Module */
+typedef Transform<double,2,Projective> Projective2d;
+/** \ingroup Geometry_Module */
+typedef Transform<double,3,Projective> Projective3d;
+
+/**************************
+*** Optional QT support ***
+**************************/
+
+#ifdef EIGEN_QT_SUPPORT
+/** Initializes \c *this from a QMatrix assuming the dimension is 2.
+ *
+ * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+ */
+template<typename Scalar, int Dim, int Mode,int Options>
+Transform<Scalar,Dim,Mode,Options>::Transform(const QMatrix& other)
+{
+ check_template_params();
+ *this = other;
+}
+
+/** Set \c *this from a QMatrix assuming the dimension is 2.
+ *
+ * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+ */
+template<typename Scalar, int Dim, int Mode,int Options>
+Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const QMatrix& other)
+{
+ EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+ if (Mode == int(AffineCompact))
+ m_matrix << other.m11(), other.m21(), other.dx(),
+ other.m12(), other.m22(), other.dy();
+ else
+ m_matrix << other.m11(), other.m21(), other.dx(),
+ other.m12(), other.m22(), other.dy(),
+ 0, 0, 1;
+ return *this;
+}
+
+/** \returns a QMatrix from \c *this assuming the dimension is 2.
+ *
+ * \warning this conversion might loss data if \c *this is not affine
+ *
+ * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+ */
+template<typename Scalar, int Dim, int Mode, int Options>
+QMatrix Transform<Scalar,Dim,Mode,Options>::toQMatrix(void) const
+{
+ check_template_params();
+ EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+ return QMatrix(m_matrix.coeff(0,0), m_matrix.coeff(1,0),
+ m_matrix.coeff(0,1), m_matrix.coeff(1,1),
+ m_matrix.coeff(0,2), m_matrix.coeff(1,2));
+}
+
+/** Initializes \c *this from a QTransform assuming the dimension is 2.
+ *
+ * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+ */
+template<typename Scalar, int Dim, int Mode,int Options>
+Transform<Scalar,Dim,Mode,Options>::Transform(const QTransform& other)
+{
+ check_template_params();
+ *this = other;
+}
+
+/** Set \c *this from a QTransform assuming the dimension is 2.
+ *
+ * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+ */
+template<typename Scalar, int Dim, int Mode, int Options>
+Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const QTransform& other)
+{
+ check_template_params();
+ EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+ if (Mode == int(AffineCompact))
+ m_matrix << other.m11(), other.m21(), other.dx(),
+ other.m12(), other.m22(), other.dy();
+ else
+ m_matrix << other.m11(), other.m21(), other.dx(),
+ other.m12(), other.m22(), other.dy(),
+ other.m13(), other.m23(), other.m33();
+ return *this;
+}
+
+/** \returns a QTransform from \c *this assuming the dimension is 2.
+ *
+ * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+ */
+template<typename Scalar, int Dim, int Mode, int Options>
+QTransform Transform<Scalar,Dim,Mode,Options>::toQTransform(void) const
+{
+ EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+ if (Mode == int(AffineCompact))
+ return QTransform(m_matrix.coeff(0,0), m_matrix.coeff(1,0),
+ m_matrix.coeff(0,1), m_matrix.coeff(1,1),
+ m_matrix.coeff(0,2), m_matrix.coeff(1,2));
+ else
+ return QTransform(m_matrix.coeff(0,0), m_matrix.coeff(1,0), m_matrix.coeff(2,0),
+ m_matrix.coeff(0,1), m_matrix.coeff(1,1), m_matrix.coeff(2,1),
+ m_matrix.coeff(0,2), m_matrix.coeff(1,2), m_matrix.coeff(2,2));
+}
+#endif
+
+/*********************
+*** Procedural API ***
+*********************/
+
+/** Applies on the right the non uniform scale transformation represented
+ * by the vector \a other to \c *this and returns a reference to \c *this.
+ * \sa prescale()
+ */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::scale(const MatrixBase<OtherDerived> &other)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
+ EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
+ linearExt().noalias() = (linearExt() * other.asDiagonal());
+ return *this;
+}
+
+/** Applies on the right a uniform scale of a factor \a c to \c *this
+ * and returns a reference to \c *this.
+ * \sa prescale(Scalar)
+ */
+template<typename Scalar, int Dim, int Mode, int Options>
+EIGEN_DEVICE_FUNC inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::scale(const Scalar& s)
+{
+ EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
+ linearExt() *= s;
+ return *this;
+}
+
+/** Applies on the left the non uniform scale transformation represented
+ * by the vector \a other to \c *this and returns a reference to \c *this.
+ * \sa scale()
+ */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::prescale(const MatrixBase<OtherDerived> &other)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
+ EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
+ affine().noalias() = (other.asDiagonal() * affine());
+ return *this;
+}
+
+/** Applies on the left a uniform scale of a factor \a c to \c *this
+ * and returns a reference to \c *this.
+ * \sa scale(Scalar)
+ */
+template<typename Scalar, int Dim, int Mode, int Options>
+EIGEN_DEVICE_FUNC inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::prescale(const Scalar& s)
+{
+ EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
+ m_matrix.template topRows<Dim>() *= s;
+ return *this;
+}
+
+/** Applies on the right the translation matrix represented by the vector \a other
+ * to \c *this and returns a reference to \c *this.
+ * \sa pretranslate()
+ */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::translate(const MatrixBase<OtherDerived> &other)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
+ translationExt() += linearExt() * other;
+ return *this;
+}
+
+/** Applies on the left the translation matrix represented by the vector \a other
+ * to \c *this and returns a reference to \c *this.
+ * \sa translate()
+ */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::pretranslate(const MatrixBase<OtherDerived> &other)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
+ if(int(Mode)==int(Projective))
+ affine() += other * m_matrix.row(Dim);
+ else
+ translation() += other;
+ return *this;
+}
+
+/** Applies on the right the rotation represented by the rotation \a rotation
+ * to \c *this and returns a reference to \c *this.
+ *
+ * The template parameter \a RotationType is the type of the rotation which
+ * must be known by internal::toRotationMatrix<>.
+ *
+ * Natively supported types includes:
+ * - any scalar (2D),
+ * - a Dim x Dim matrix expression,
+ * - a Quaternion (3D),
+ * - a AngleAxis (3D)
+ *
+ * This mechanism is easily extendable to support user types such as Euler angles,
+ * or a pair of Quaternion for 4D rotations.
+ *
+ * \sa rotate(Scalar), class Quaternion, class AngleAxis, prerotate(RotationType)
+ */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename RotationType>
+EIGEN_DEVICE_FUNC Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::rotate(const RotationType& rotation)
+{
+ linearExt() *= internal::toRotationMatrix<Scalar,Dim>(rotation);
+ return *this;
+}
+
+/** Applies on the left the rotation represented by the rotation \a rotation
+ * to \c *this and returns a reference to \c *this.
+ *
+ * See rotate() for further details.
+ *
+ * \sa rotate()
+ */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename RotationType>
+EIGEN_DEVICE_FUNC Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::prerotate(const RotationType& rotation)
+{
+ m_matrix.template block<Dim,HDim>(0,0) = internal::toRotationMatrix<Scalar,Dim>(rotation)
+ * m_matrix.template block<Dim,HDim>(0,0);
+ return *this;
+}
+
+/** Applies on the right the shear transformation represented
+ * by the vector \a other to \c *this and returns a reference to \c *this.
+ * \warning 2D only.
+ * \sa preshear()
+ */
+template<typename Scalar, int Dim, int Mode, int Options>
+EIGEN_DEVICE_FUNC Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::shear(const Scalar& sx, const Scalar& sy)
+{
+ EIGEN_STATIC_ASSERT(int(Dim)==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+ EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
+ VectorType tmp = linear().col(0)*sy + linear().col(1);
+ linear() << linear().col(0) + linear().col(1)*sx, tmp;
+ return *this;
+}
+
+/** Applies on the left the shear transformation represented
+ * by the vector \a other to \c *this and returns a reference to \c *this.
+ * \warning 2D only.
+ * \sa shear()
+ */
+template<typename Scalar, int Dim, int Mode, int Options>
+EIGEN_DEVICE_FUNC Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::preshear(const Scalar& sx, const Scalar& sy)
+{
+ EIGEN_STATIC_ASSERT(int(Dim)==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+ EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
+ m_matrix.template block<Dim,HDim>(0,0) = LinearMatrixType(1, sx, sy, 1) * m_matrix.template block<Dim,HDim>(0,0);
+ return *this;
+}
+
+/******************************************************
+*** Scaling, Translation and Rotation compatibility ***
+******************************************************/
+
+template<typename Scalar, int Dim, int Mode, int Options>
+EIGEN_DEVICE_FUNC inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const TranslationType& t)
+{
+ linear().setIdentity();
+ translation() = t.vector();
+ makeAffine();
+ return *this;
+}
+
+template<typename Scalar, int Dim, int Mode, int Options>
+EIGEN_DEVICE_FUNC inline Transform<Scalar,Dim,Mode,Options> Transform<Scalar,Dim,Mode,Options>::operator*(const TranslationType& t) const
+{
+ Transform res = *this;
+ res.translate(t.vector());
+ return res;
+}
+
+template<typename Scalar, int Dim, int Mode, int Options>
+EIGEN_DEVICE_FUNC inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const UniformScaling<Scalar>& s)
+{
+ m_matrix.setZero();
+ linear().diagonal().fill(s.factor());
+ makeAffine();
+ return *this;
+}
+
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename Derived>
+EIGEN_DEVICE_FUNC inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const RotationBase<Derived,Dim>& r)
+{
+ linear() = internal::toRotationMatrix<Scalar,Dim>(r);
+ translation().setZero();
+ makeAffine();
+ return *this;
+}
+
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename Derived>
+EIGEN_DEVICE_FUNC inline Transform<Scalar,Dim,Mode,Options> Transform<Scalar,Dim,Mode,Options>::operator*(const RotationBase<Derived,Dim>& r) const
+{
+ Transform res = *this;
+ res.rotate(r.derived());
+ return res;
+}
+
+/************************
+*** Special functions ***
+************************/
+
+/** \returns the rotation part of the transformation
+ *
+ *
+ * \svd_module
+ *
+ * \sa computeRotationScaling(), computeScalingRotation(), class SVD
+ */
+template<typename Scalar, int Dim, int Mode, int Options>
+EIGEN_DEVICE_FUNC const typename Transform<Scalar,Dim,Mode,Options>::LinearMatrixType
+Transform<Scalar,Dim,Mode,Options>::rotation() const
+{
+ LinearMatrixType result;
+ computeRotationScaling(&result, (LinearMatrixType*)0);
+ return result;
+}
+
+
+/** decomposes the linear part of the transformation as a product rotation x scaling, the scaling being
+ * not necessarily positive.
+ *
+ * If either pointer is zero, the corresponding computation is skipped.
+ *
+ *
+ *
+ * \svd_module
+ *
+ * \sa computeScalingRotation(), rotation(), class SVD
+ */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename RotationMatrixType, typename ScalingMatrixType>
+EIGEN_DEVICE_FUNC void Transform<Scalar,Dim,Mode,Options>::computeRotationScaling(RotationMatrixType *rotation, ScalingMatrixType *scaling) const
+{
+ JacobiSVD<LinearMatrixType> svd(linear(), ComputeFullU | ComputeFullV);
+
+ Scalar x = (svd.matrixU() * svd.matrixV().adjoint()).determinant(); // so x has absolute value 1
+ VectorType sv(svd.singularValues());
+ sv.coeffRef(0) *= x;
+ if(scaling) scaling->lazyAssign(svd.matrixV() * sv.asDiagonal() * svd.matrixV().adjoint());
+ if(rotation)
+ {
+ LinearMatrixType m(svd.matrixU());
+ m.col(0) /= x;
+ rotation->lazyAssign(m * svd.matrixV().adjoint());
+ }
+}
+
+/** decomposes the linear part of the transformation as a product scaling x rotation, the scaling being
+ * not necessarily positive.
+ *
+ * If either pointer is zero, the corresponding computation is skipped.
+ *
+ *
+ *
+ * \svd_module
+ *
+ * \sa computeRotationScaling(), rotation(), class SVD
+ */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename ScalingMatrixType, typename RotationMatrixType>
+EIGEN_DEVICE_FUNC void Transform<Scalar,Dim,Mode,Options>::computeScalingRotation(ScalingMatrixType *scaling, RotationMatrixType *rotation) const
+{
+ JacobiSVD<LinearMatrixType> svd(linear(), ComputeFullU | ComputeFullV);
+
+ Scalar x = (svd.matrixU() * svd.matrixV().adjoint()).determinant(); // so x has absolute value 1
+ VectorType sv(svd.singularValues());
+ sv.coeffRef(0) *= x;
+ if(scaling) scaling->lazyAssign(svd.matrixU() * sv.asDiagonal() * svd.matrixU().adjoint());
+ if(rotation)
+ {
+ LinearMatrixType m(svd.matrixU());
+ m.col(0) /= x;
+ rotation->lazyAssign(m * svd.matrixV().adjoint());
+ }
+}
+
+/** Convenient method to set \c *this from a position, orientation and scale
+ * of a 3D object.
+ */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename PositionDerived, typename OrientationType, typename ScaleDerived>
+EIGEN_DEVICE_FUNC Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::fromPositionOrientationScale(const MatrixBase<PositionDerived> &position,
+ const OrientationType& orientation, const MatrixBase<ScaleDerived> &scale)
+{
+ linear() = internal::toRotationMatrix<Scalar,Dim>(orientation);
+ linear() *= scale.asDiagonal();
+ translation() = position;
+ makeAffine();
+ return *this;
+}
+
+namespace internal {
+
+template<int Mode>
+struct transform_make_affine
+{
+ template<typename MatrixType>
+ EIGEN_DEVICE_FUNC static void run(MatrixType &mat)
+ {
+ static const int Dim = MatrixType::ColsAtCompileTime-1;
+ mat.template block<1,Dim>(Dim,0).setZero();
+ mat.coeffRef(Dim,Dim) = typename MatrixType::Scalar(1);
+ }
+};
+
+template<>
+struct transform_make_affine<AffineCompact>
+{
+ template<typename MatrixType> EIGEN_DEVICE_FUNC static void run(MatrixType &) { }
+};
+
+// selector needed to avoid taking the inverse of a 3x4 matrix
+template<typename TransformType, int Mode=TransformType::Mode>
+struct projective_transform_inverse
+{
+ EIGEN_DEVICE_FUNC static inline void run(const TransformType&, TransformType&)
+ {}
+};
+
+template<typename TransformType>
+struct projective_transform_inverse<TransformType, Projective>
+{
+ EIGEN_DEVICE_FUNC static inline void run(const TransformType& m, TransformType& res)
+ {
+ res.matrix() = m.matrix().inverse();
+ }
+};
+
+} // end namespace internal
+
+
+/**
+ *
+ * \returns the inverse transformation according to some given knowledge
+ * on \c *this.
+ *
+ * \param hint allows to optimize the inversion process when the transformation
+ * is known to be not a general transformation (optional). The possible values are:
+ * - #Projective if the transformation is not necessarily affine, i.e., if the
+ * last row is not guaranteed to be [0 ... 0 1]
+ * - #Affine if the last row can be assumed to be [0 ... 0 1]
+ * - #Isometry if the transformation is only a concatenations of translations
+ * and rotations.
+ * The default is the template class parameter \c Mode.
+ *
+ * \warning unless \a traits is always set to NoShear or NoScaling, this function
+ * requires the generic inverse method of MatrixBase defined in the LU module. If
+ * you forget to include this module, then you will get hard to debug linking errors.
+ *
+ * \sa MatrixBase::inverse()
+ */
+template<typename Scalar, int Dim, int Mode, int Options>
+EIGEN_DEVICE_FUNC Transform<Scalar,Dim,Mode,Options>
+Transform<Scalar,Dim,Mode,Options>::inverse(TransformTraits hint) const
+{
+ Transform res;
+ if (hint == Projective)
+ {
+ internal::projective_transform_inverse<Transform>::run(*this, res);
+ }
+ else
+ {
+ if (hint == Isometry)
+ {
+ res.matrix().template topLeftCorner<Dim,Dim>() = linear().transpose();
+ }
+ else if(hint&Affine)
+ {
+ res.matrix().template topLeftCorner<Dim,Dim>() = linear().inverse();
+ }
+ else
+ {
+ eigen_assert(false && "Invalid transform traits in Transform::Inverse");
+ }
+ // translation and remaining parts
+ res.matrix().template topRightCorner<Dim,1>()
+ = - res.matrix().template topLeftCorner<Dim,Dim>() * translation();
+ res.makeAffine(); // we do need this, because in the beginning res is uninitialized
+ }
+ return res;
+}
+
+namespace internal {
+
+/*****************************************************
+*** Specializations of take affine part ***
+*****************************************************/
+
+template<typename TransformType> struct transform_take_affine_part {
+ typedef typename TransformType::MatrixType MatrixType;
+ typedef typename TransformType::AffinePart AffinePart;
+ typedef typename TransformType::ConstAffinePart ConstAffinePart;
+ static inline AffinePart run(MatrixType& m)
+ { return m.template block<TransformType::Dim,TransformType::HDim>(0,0); }
+ static inline ConstAffinePart run(const MatrixType& m)
+ { return m.template block<TransformType::Dim,TransformType::HDim>(0,0); }
+};
+
+template<typename Scalar, int Dim, int Options>
+struct transform_take_affine_part<Transform<Scalar,Dim,AffineCompact, Options> > {
+ typedef typename Transform<Scalar,Dim,AffineCompact,Options>::MatrixType MatrixType;
+ static inline MatrixType& run(MatrixType& m) { return m; }
+ static inline const MatrixType& run(const MatrixType& m) { return m; }
+};
+
+/*****************************************************
+*** Specializations of construct from matrix ***
+*****************************************************/
+
+template<typename Other, int Mode, int Options, int Dim, int HDim>
+struct transform_construct_from_matrix<Other, Mode,Options,Dim,HDim, Dim,Dim>
+{
+ static inline void run(Transform<typename Other::Scalar,Dim,Mode,Options> *transform, const Other& other)
+ {
+ transform->linear() = other;
+ transform->translation().setZero();
+ transform->makeAffine();
+ }
+};
+
+template<typename Other, int Mode, int Options, int Dim, int HDim>
+struct transform_construct_from_matrix<Other, Mode,Options,Dim,HDim, Dim,HDim>
+{
+ static inline void run(Transform<typename Other::Scalar,Dim,Mode,Options> *transform, const Other& other)
+ {
+ transform->affine() = other;
+ transform->makeAffine();
+ }
+};
+
+template<typename Other, int Mode, int Options, int Dim, int HDim>
+struct transform_construct_from_matrix<Other, Mode,Options,Dim,HDim, HDim,HDim>
+{
+ static inline void run(Transform<typename Other::Scalar,Dim,Mode,Options> *transform, const Other& other)
+ { transform->matrix() = other; }
+};
+
+template<typename Other, int Options, int Dim, int HDim>
+struct transform_construct_from_matrix<Other, AffineCompact,Options,Dim,HDim, HDim,HDim>
+{
+ static inline void run(Transform<typename Other::Scalar,Dim,AffineCompact,Options> *transform, const Other& other)
+ { transform->matrix() = other.template block<Dim,HDim>(0,0); }
+};
+
+/**********************************************************
+*** Specializations of operator* with rhs EigenBase ***
+**********************************************************/
+
+template<int LhsMode,int RhsMode>
+struct transform_product_result
+{
+ enum
+ {
+ Mode =
+ (LhsMode == (int)Projective || RhsMode == (int)Projective ) ? Projective :
+ (LhsMode == (int)Affine || RhsMode == (int)Affine ) ? Affine :
+ (LhsMode == (int)AffineCompact || RhsMode == (int)AffineCompact ) ? AffineCompact :
+ (LhsMode == (int)Isometry || RhsMode == (int)Isometry ) ? Isometry : Projective
+ };
+};
+
+template< typename TransformType, typename MatrixType, int RhsCols>
+struct transform_right_product_impl< TransformType, MatrixType, 0, RhsCols>
+{
+ typedef typename MatrixType::PlainObject ResultType;
+
+ static EIGEN_STRONG_INLINE ResultType run(const TransformType& T, const MatrixType& other)
+ {
+ return T.matrix() * other;
+ }
+};
+
+template< typename TransformType, typename MatrixType, int RhsCols>
+struct transform_right_product_impl< TransformType, MatrixType, 1, RhsCols>
+{
+ enum {
+ Dim = TransformType::Dim,
+ HDim = TransformType::HDim,
+ OtherRows = MatrixType::RowsAtCompileTime,
+ OtherCols = MatrixType::ColsAtCompileTime
+ };
+
+ typedef typename MatrixType::PlainObject ResultType;
+
+ static EIGEN_STRONG_INLINE ResultType run(const TransformType& T, const MatrixType& other)
+ {
+ EIGEN_STATIC_ASSERT(OtherRows==HDim, YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES);
+
+ typedef Block<ResultType, Dim, OtherCols, int(MatrixType::RowsAtCompileTime)==Dim> TopLeftLhs;
+
+ ResultType res(other.rows(),other.cols());
+ TopLeftLhs(res, 0, 0, Dim, other.cols()).noalias() = T.affine() * other;
+ res.row(OtherRows-1) = other.row(OtherRows-1);
+
+ return res;
+ }
+};
+
+template< typename TransformType, typename MatrixType, int RhsCols>
+struct transform_right_product_impl< TransformType, MatrixType, 2, RhsCols>
+{
+ enum {
+ Dim = TransformType::Dim,
+ HDim = TransformType::HDim,
+ OtherRows = MatrixType::RowsAtCompileTime,
+ OtherCols = MatrixType::ColsAtCompileTime
+ };
+
+ typedef typename MatrixType::PlainObject ResultType;
+
+ static EIGEN_STRONG_INLINE ResultType run(const TransformType& T, const MatrixType& other)
+ {
+ EIGEN_STATIC_ASSERT(OtherRows==Dim, YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES);
+
+ typedef Block<ResultType, Dim, OtherCols, true> TopLeftLhs;
+ ResultType res(Replicate<typename TransformType::ConstTranslationPart, 1, OtherCols>(T.translation(),1,other.cols()));
+ TopLeftLhs(res, 0, 0, Dim, other.cols()).noalias() += T.linear() * other;
+
+ return res;
+ }
+};
+
+template< typename TransformType, typename MatrixType >
+struct transform_right_product_impl< TransformType, MatrixType, 2, 1> // rhs is a vector of size Dim
+{
+ typedef typename TransformType::MatrixType TransformMatrix;
+ enum {
+ Dim = TransformType::Dim,
+ HDim = TransformType::HDim,
+ OtherRows = MatrixType::RowsAtCompileTime,
+ WorkingRows = EIGEN_PLAIN_ENUM_MIN(TransformMatrix::RowsAtCompileTime,HDim)
+ };
+
+ typedef typename MatrixType::PlainObject ResultType;
+
+ static EIGEN_STRONG_INLINE ResultType run(const TransformType& T, const MatrixType& other)
+ {
+ EIGEN_STATIC_ASSERT(OtherRows==Dim, YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES);
+
+ Matrix<typename ResultType::Scalar, Dim+1, 1> rhs;
+ rhs.template head<Dim>() = other; rhs[Dim] = typename ResultType::Scalar(1);
+ Matrix<typename ResultType::Scalar, WorkingRows, 1> res(T.matrix() * rhs);
+ return res.template head<Dim>();
+ }
+};
+
+/**********************************************************
+*** Specializations of operator* with lhs EigenBase ***
+**********************************************************/
+
+// generic HDim x HDim matrix * T => Projective
+template<typename Other,int Mode, int Options, int Dim, int HDim>
+struct transform_left_product_impl<Other,Mode,Options,Dim,HDim, HDim,HDim>
+{
+ typedef Transform<typename Other::Scalar,Dim,Mode,Options> TransformType;
+ typedef typename TransformType::MatrixType MatrixType;
+ typedef Transform<typename Other::Scalar,Dim,Projective,Options> ResultType;
+ static ResultType run(const Other& other,const TransformType& tr)
+ { return ResultType(other * tr.matrix()); }
+};
+
+// generic HDim x HDim matrix * AffineCompact => Projective
+template<typename Other, int Options, int Dim, int HDim>
+struct transform_left_product_impl<Other,AffineCompact,Options,Dim,HDim, HDim,HDim>
+{
+ typedef Transform<typename Other::Scalar,Dim,AffineCompact,Options> TransformType;
+ typedef typename TransformType::MatrixType MatrixType;
+ typedef Transform<typename Other::Scalar,Dim,Projective,Options> ResultType;
+ static ResultType run(const Other& other,const TransformType& tr)
+ {
+ ResultType res;
+ res.matrix().noalias() = other.template block<HDim,Dim>(0,0) * tr.matrix();
+ res.matrix().col(Dim) += other.col(Dim);
+ return res;
+ }
+};
+
+// affine matrix * T
+template<typename Other,int Mode, int Options, int Dim, int HDim>
+struct transform_left_product_impl<Other,Mode,Options,Dim,HDim, Dim,HDim>
+{
+ typedef Transform<typename Other::Scalar,Dim,Mode,Options> TransformType;
+ typedef typename TransformType::MatrixType MatrixType;
+ typedef TransformType ResultType;
+ static ResultType run(const Other& other,const TransformType& tr)
+ {
+ ResultType res;
+ res.affine().noalias() = other * tr.matrix();
+ res.matrix().row(Dim) = tr.matrix().row(Dim);
+ return res;
+ }
+};
+
+// affine matrix * AffineCompact
+template<typename Other, int Options, int Dim, int HDim>
+struct transform_left_product_impl<Other,AffineCompact,Options,Dim,HDim, Dim,HDim>
+{
+ typedef Transform<typename Other::Scalar,Dim,AffineCompact,Options> TransformType;
+ typedef typename TransformType::MatrixType MatrixType;
+ typedef TransformType ResultType;
+ static ResultType run(const Other& other,const TransformType& tr)
+ {
+ ResultType res;
+ res.matrix().noalias() = other.template block<Dim,Dim>(0,0) * tr.matrix();
+ res.translation() += other.col(Dim);
+ return res;
+ }
+};
+
+// linear matrix * T
+template<typename Other,int Mode, int Options, int Dim, int HDim>
+struct transform_left_product_impl<Other,Mode,Options,Dim,HDim, Dim,Dim>
+{
+ typedef Transform<typename Other::Scalar,Dim,Mode,Options> TransformType;
+ typedef typename TransformType::MatrixType MatrixType;
+ typedef TransformType ResultType;
+ static ResultType run(const Other& other, const TransformType& tr)
+ {
+ TransformType res;
+ if(Mode!=int(AffineCompact))
+ res.matrix().row(Dim) = tr.matrix().row(Dim);
+ res.matrix().template topRows<Dim>().noalias()
+ = other * tr.matrix().template topRows<Dim>();
+ return res;
+ }
+};
+
+/**********************************************************
+*** Specializations of operator* with another Transform ***
+**********************************************************/
+
+template<typename Scalar, int Dim, int LhsMode, int LhsOptions, int RhsMode, int RhsOptions>
+struct transform_transform_product_impl<Transform<Scalar,Dim,LhsMode,LhsOptions>,Transform<Scalar,Dim,RhsMode,RhsOptions>,false >
+{
+ enum { ResultMode = transform_product_result<LhsMode,RhsMode>::Mode };
+ typedef Transform<Scalar,Dim,LhsMode,LhsOptions> Lhs;
+ typedef Transform<Scalar,Dim,RhsMode,RhsOptions> Rhs;
+ typedef Transform<Scalar,Dim,ResultMode,LhsOptions> ResultType;
+ static ResultType run(const Lhs& lhs, const Rhs& rhs)
+ {
+ ResultType res;
+ res.linear() = lhs.linear() * rhs.linear();
+ res.translation() = lhs.linear() * rhs.translation() + lhs.translation();
+ res.makeAffine();
+ return res;
+ }
+};
+
+template<typename Scalar, int Dim, int LhsMode, int LhsOptions, int RhsMode, int RhsOptions>
+struct transform_transform_product_impl<Transform<Scalar,Dim,LhsMode,LhsOptions>,Transform<Scalar,Dim,RhsMode,RhsOptions>,true >
+{
+ typedef Transform<Scalar,Dim,LhsMode,LhsOptions> Lhs;
+ typedef Transform<Scalar,Dim,RhsMode,RhsOptions> Rhs;
+ typedef Transform<Scalar,Dim,Projective> ResultType;
+ static ResultType run(const Lhs& lhs, const Rhs& rhs)
+ {
+ return ResultType( lhs.matrix() * rhs.matrix() );
+ }
+};
+
+template<typename Scalar, int Dim, int LhsOptions, int RhsOptions>
+struct transform_transform_product_impl<Transform<Scalar,Dim,AffineCompact,LhsOptions>,Transform<Scalar,Dim,Projective,RhsOptions>,true >
+{
+ typedef Transform<Scalar,Dim,AffineCompact,LhsOptions> Lhs;
+ typedef Transform<Scalar,Dim,Projective,RhsOptions> Rhs;
+ typedef Transform<Scalar,Dim,Projective> ResultType;
+ static ResultType run(const Lhs& lhs, const Rhs& rhs)
+ {
+ ResultType res;
+ res.matrix().template topRows<Dim>() = lhs.matrix() * rhs.matrix();
+ res.matrix().row(Dim) = rhs.matrix().row(Dim);
+ return res;
+ }
+};
+
+template<typename Scalar, int Dim, int LhsOptions, int RhsOptions>
+struct transform_transform_product_impl<Transform<Scalar,Dim,Projective,LhsOptions>,Transform<Scalar,Dim,AffineCompact,RhsOptions>,true >
+{
+ typedef Transform<Scalar,Dim,Projective,LhsOptions> Lhs;
+ typedef Transform<Scalar,Dim,AffineCompact,RhsOptions> Rhs;
+ typedef Transform<Scalar,Dim,Projective> ResultType;
+ static ResultType run(const Lhs& lhs, const Rhs& rhs)
+ {
+ ResultType res(lhs.matrix().template leftCols<Dim>() * rhs.matrix());
+ res.matrix().col(Dim) += lhs.matrix().col(Dim);
+ return res;
+ }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRANSFORM_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Translation.h b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Translation.h
new file mode 100644
index 000000000..51d9a82eb
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Translation.h
@@ -0,0 +1,208 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRANSLATION_H
+#define EIGEN_TRANSLATION_H
+
+namespace Eigen {
+
+/** \geometry_module \ingroup Geometry_Module
+ *
+ * \class Translation
+ *
+ * \brief Represents a translation transformation
+ *
+ * \tparam _Scalar the scalar type, i.e., the type of the coefficients.
+ * \tparam _Dim the dimension of the space, can be a compile time value or Dynamic
+ *
+ * \note This class is not aimed to be used to store a translation transformation,
+ * but rather to make easier the constructions and updates of Transform objects.
+ *
+ * \sa class Scaling, class Transform
+ */
+template<typename _Scalar, int _Dim>
+class Translation
+{
+public:
+ EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_Dim)
+ /** dimension of the space */
+ enum { Dim = _Dim };
+ /** the scalar type of the coefficients */
+ typedef _Scalar Scalar;
+ /** corresponding vector type */
+ typedef Matrix<Scalar,Dim,1> VectorType;
+ /** corresponding linear transformation matrix type */
+ typedef Matrix<Scalar,Dim,Dim> LinearMatrixType;
+ /** corresponding affine transformation type */
+ typedef Transform<Scalar,Dim,Affine> AffineTransformType;
+ /** corresponding isometric transformation type */
+ typedef Transform<Scalar,Dim,Isometry> IsometryTransformType;
+
+protected:
+
+ VectorType m_coeffs;
+
+public:
+
+ /** Default constructor without initialization. */
+ EIGEN_DEVICE_FUNC Translation() {}
+ /** */
+ EIGEN_DEVICE_FUNC inline Translation(const Scalar& sx, const Scalar& sy)
+ {
+ eigen_assert(Dim==2);
+ m_coeffs.x() = sx;
+ m_coeffs.y() = sy;
+ }
+ /** */
+ EIGEN_DEVICE_FUNC inline Translation(const Scalar& sx, const Scalar& sy, const Scalar& sz)
+ {
+ eigen_assert(Dim==3);
+ m_coeffs.x() = sx;
+ m_coeffs.y() = sy;
+ m_coeffs.z() = sz;
+ }
+ /** Constructs and initialize the translation transformation from a vector of translation coefficients */
+ EIGEN_DEVICE_FUNC explicit inline Translation(const VectorType& vector) : m_coeffs(vector) {}
+
+ /** \brief Retruns the x-translation by value. **/
+ EIGEN_DEVICE_FUNC inline Scalar x() const { return m_coeffs.x(); }
+ /** \brief Retruns the y-translation by value. **/
+ EIGEN_DEVICE_FUNC inline Scalar y() const { return m_coeffs.y(); }
+ /** \brief Retruns the z-translation by value. **/
+ EIGEN_DEVICE_FUNC inline Scalar z() const { return m_coeffs.z(); }
+
+ /** \brief Retruns the x-translation as a reference. **/
+ EIGEN_DEVICE_FUNC inline Scalar& x() { return m_coeffs.x(); }
+ /** \brief Retruns the y-translation as a reference. **/
+ EIGEN_DEVICE_FUNC inline Scalar& y() { return m_coeffs.y(); }
+ /** \brief Retruns the z-translation as a reference. **/
+ EIGEN_DEVICE_FUNC inline Scalar& z() { return m_coeffs.z(); }
+
+ EIGEN_DEVICE_FUNC const VectorType& vector() const { return m_coeffs; }
+ EIGEN_DEVICE_FUNC VectorType& vector() { return m_coeffs; }
+
+ EIGEN_DEVICE_FUNC const VectorType& translation() const { return m_coeffs; }
+ EIGEN_DEVICE_FUNC VectorType& translation() { return m_coeffs; }
+
+ /** Concatenates two translation */
+ EIGEN_DEVICE_FUNC inline Translation operator* (const Translation& other) const
+ { return Translation(m_coeffs + other.m_coeffs); }
+
+ /** Concatenates a translation and a uniform scaling */
+ EIGEN_DEVICE_FUNC inline AffineTransformType operator* (const UniformScaling<Scalar>& other) const;
+
+ /** Concatenates a translation and a linear transformation */
+ template<typename OtherDerived>
+ EIGEN_DEVICE_FUNC inline AffineTransformType operator* (const EigenBase<OtherDerived>& linear) const;
+
+ /** Concatenates a translation and a rotation */
+ template<typename Derived>
+ EIGEN_DEVICE_FUNC inline IsometryTransformType operator*(const RotationBase<Derived,Dim>& r) const
+ { return *this * IsometryTransformType(r); }
+
+ /** \returns the concatenation of a linear transformation \a l with the translation \a t */
+ // its a nightmare to define a templated friend function outside its declaration
+ template<typename OtherDerived> friend
+ EIGEN_DEVICE_FUNC inline AffineTransformType operator*(const EigenBase<OtherDerived>& linear, const Translation& t)
+ {
+ AffineTransformType res;
+ res.matrix().setZero();
+ res.linear() = linear.derived();
+ res.translation() = linear.derived() * t.m_coeffs;
+ res.matrix().row(Dim).setZero();
+ res(Dim,Dim) = Scalar(1);
+ return res;
+ }
+
+ /** Concatenates a translation and a transformation */
+ template<int Mode, int Options>
+ EIGEN_DEVICE_FUNC inline Transform<Scalar,Dim,Mode> operator* (const Transform<Scalar,Dim,Mode,Options>& t) const
+ {
+ Transform<Scalar,Dim,Mode> res = t;
+ res.pretranslate(m_coeffs);
+ return res;
+ }
+
+ /** Applies translation to vector */
+ template<typename Derived>
+ inline typename internal::enable_if<Derived::IsVectorAtCompileTime,VectorType>::type
+ operator* (const MatrixBase<Derived>& vec) const
+ { return m_coeffs + vec.derived(); }
+
+ /** \returns the inverse translation (opposite) */
+ Translation inverse() const { return Translation(-m_coeffs); }
+
+ Translation& operator=(const Translation& other)
+ {
+ m_coeffs = other.m_coeffs;
+ return *this;
+ }
+
+ static const Translation Identity() { return Translation(VectorType::Zero()); }
+
+ /** \returns \c *this with scalar type casted to \a NewScalarType
+ *
+ * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+ * then this function smartly returns a const reference to \c *this.
+ */
+ template<typename NewScalarType>
+ EIGEN_DEVICE_FUNC inline typename internal::cast_return_type<Translation,Translation<NewScalarType,Dim> >::type cast() const
+ { return typename internal::cast_return_type<Translation,Translation<NewScalarType,Dim> >::type(*this); }
+
+ /** Copy constructor with scalar type conversion */
+ template<typename OtherScalarType>
+ EIGEN_DEVICE_FUNC inline explicit Translation(const Translation<OtherScalarType,Dim>& other)
+ { m_coeffs = other.vector().template cast<Scalar>(); }
+
+ /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+ * determined by \a prec.
+ *
+ * \sa MatrixBase::isApprox() */
+ EIGEN_DEVICE_FUNC bool isApprox(const Translation& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
+ { return m_coeffs.isApprox(other.m_coeffs, prec); }
+
+};
+
+/** \addtogroup Geometry_Module */
+//@{
+typedef Translation<float, 2> Translation2f;
+typedef Translation<double,2> Translation2d;
+typedef Translation<float, 3> Translation3f;
+typedef Translation<double,3> Translation3d;
+//@}
+
+template<typename Scalar, int Dim>
+EIGEN_DEVICE_FUNC inline typename Translation<Scalar,Dim>::AffineTransformType
+Translation<Scalar,Dim>::operator* (const UniformScaling<Scalar>& other) const
+{
+ AffineTransformType res;
+ res.matrix().setZero();
+ res.linear().diagonal().fill(other.factor());
+ res.translation() = m_coeffs;
+ res(Dim,Dim) = Scalar(1);
+ return res;
+}
+
+template<typename Scalar, int Dim>
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC inline typename Translation<Scalar,Dim>::AffineTransformType
+Translation<Scalar,Dim>::operator* (const EigenBase<OtherDerived>& linear) const
+{
+ AffineTransformType res;
+ res.matrix().setZero();
+ res.linear() = linear.derived();
+ res.translation() = m_coeffs;
+ res.matrix().row(Dim).setZero();
+ res(Dim,Dim) = Scalar(1);
+ return res;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRANSLATION_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Umeyama.h b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Umeyama.h
new file mode 100644
index 000000000..7e933fca1
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/Umeyama.h
@@ -0,0 +1,166 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Hauke Heibel <hauke.heibel@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_UMEYAMA_H
+#define EIGEN_UMEYAMA_H
+
+// This file requires the user to include
+// * Eigen/Core
+// * Eigen/LU
+// * Eigen/SVD
+// * Eigen/Array
+
+namespace Eigen {
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+
+// These helpers are required since it allows to use mixed types as parameters
+// for the Umeyama. The problem with mixed parameters is that the return type
+// cannot trivially be deduced when float and double types are mixed.
+namespace internal {
+
+// Compile time return type deduction for different MatrixBase types.
+// Different means here different alignment and parameters but the same underlying
+// real scalar type.
+template<typename MatrixType, typename OtherMatrixType>
+struct umeyama_transform_matrix_type
+{
+ enum {
+ MinRowsAtCompileTime = EIGEN_SIZE_MIN_PREFER_DYNAMIC(MatrixType::RowsAtCompileTime, OtherMatrixType::RowsAtCompileTime),
+
+ // When possible we want to choose some small fixed size value since the result
+ // is likely to fit on the stack. So here, EIGEN_SIZE_MIN_PREFER_DYNAMIC is not what we want.
+ HomogeneousDimension = int(MinRowsAtCompileTime) == Dynamic ? Dynamic : int(MinRowsAtCompileTime)+1
+ };
+
+ typedef Matrix<typename traits<MatrixType>::Scalar,
+ HomogeneousDimension,
+ HomogeneousDimension,
+ AutoAlign | (traits<MatrixType>::Flags & RowMajorBit ? RowMajor : ColMajor),
+ HomogeneousDimension,
+ HomogeneousDimension
+ > type;
+};
+
+}
+
+#endif
+
+/**
+* \geometry_module \ingroup Geometry_Module
+*
+* \brief Returns the transformation between two point sets.
+*
+* The algorithm is based on:
+* "Least-squares estimation of transformation parameters between two point patterns",
+* Shinji Umeyama, PAMI 1991, DOI: 10.1109/34.88573
+*
+* It estimates parameters \f$ c, \mathbf{R}, \f$ and \f$ \mathbf{t} \f$ such that
+* \f{align*}
+* \frac{1}{n} \sum_{i=1}^n \vert\vert y_i - (c\mathbf{R}x_i + \mathbf{t}) \vert\vert_2^2
+* \f}
+* is minimized.
+*
+* The algorithm is based on the analysis of the covariance matrix
+* \f$ \Sigma_{\mathbf{x}\mathbf{y}} \in \mathbb{R}^{d \times d} \f$
+* of the input point sets \f$ \mathbf{x} \f$ and \f$ \mathbf{y} \f$ where
+* \f$d\f$ is corresponding to the dimension (which is typically small).
+* The analysis is involving the SVD having a complexity of \f$O(d^3)\f$
+* though the actual computational effort lies in the covariance
+* matrix computation which has an asymptotic lower bound of \f$O(dm)\f$ when
+* the input point sets have dimension \f$d \times m\f$.
+*
+* Currently the method is working only for floating point matrices.
+*
+* \todo Should the return type of umeyama() become a Transform?
+*
+* \param src Source points \f$ \mathbf{x} = \left( x_1, \hdots, x_n \right) \f$.
+* \param dst Destination points \f$ \mathbf{y} = \left( y_1, \hdots, y_n \right) \f$.
+* \param with_scaling Sets \f$ c=1 \f$ when <code>false</code> is passed.
+* \return The homogeneous transformation
+* \f{align*}
+* T = \begin{bmatrix} c\mathbf{R} & \mathbf{t} \\ \mathbf{0} & 1 \end{bmatrix}
+* \f}
+* minimizing the resudiual above. This transformation is always returned as an
+* Eigen::Matrix.
+*/
+template <typename Derived, typename OtherDerived>
+typename internal::umeyama_transform_matrix_type<Derived, OtherDerived>::type
+umeyama(const MatrixBase<Derived>& src, const MatrixBase<OtherDerived>& dst, bool with_scaling = true)
+{
+ typedef typename internal::umeyama_transform_matrix_type<Derived, OtherDerived>::type TransformationMatrixType;
+ typedef typename internal::traits<TransformationMatrixType>::Scalar Scalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+
+ EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsComplex, NUMERIC_TYPE_MUST_BE_REAL)
+ EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename internal::traits<OtherDerived>::Scalar>::value),
+ YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+ enum { Dimension = EIGEN_SIZE_MIN_PREFER_DYNAMIC(Derived::RowsAtCompileTime, OtherDerived::RowsAtCompileTime) };
+
+ typedef Matrix<Scalar, Dimension, 1> VectorType;
+ typedef Matrix<Scalar, Dimension, Dimension> MatrixType;
+ typedef typename internal::plain_matrix_type_row_major<Derived>::type RowMajorMatrixType;
+
+ const Index m = src.rows(); // dimension
+ const Index n = src.cols(); // number of measurements
+
+ // required for demeaning ...
+ const RealScalar one_over_n = RealScalar(1) / static_cast<RealScalar>(n);
+
+ // computation of mean
+ const VectorType src_mean = src.rowwise().sum() * one_over_n;
+ const VectorType dst_mean = dst.rowwise().sum() * one_over_n;
+
+ // demeaning of src and dst points
+ const RowMajorMatrixType src_demean = src.colwise() - src_mean;
+ const RowMajorMatrixType dst_demean = dst.colwise() - dst_mean;
+
+ // Eq. (36)-(37)
+ const Scalar src_var = src_demean.rowwise().squaredNorm().sum() * one_over_n;
+
+ // Eq. (38)
+ const MatrixType sigma = one_over_n * dst_demean * src_demean.transpose();
+
+ JacobiSVD<MatrixType> svd(sigma, ComputeFullU | ComputeFullV);
+
+ // Initialize the resulting transformation with an identity matrix...
+ TransformationMatrixType Rt = TransformationMatrixType::Identity(m+1,m+1);
+
+ // Eq. (39)
+ VectorType S = VectorType::Ones(m);
+
+ if ( svd.matrixU().determinant() * svd.matrixV().determinant() < 0 )
+ S(m-1) = -1;
+
+ // Eq. (40) and (43)
+ Rt.block(0,0,m,m).noalias() = svd.matrixU() * S.asDiagonal() * svd.matrixV().transpose();
+
+ if (with_scaling)
+ {
+ // Eq. (42)
+ const Scalar c = Scalar(1)/src_var * svd.singularValues().dot(S);
+
+ // Eq. (41)
+ Rt.col(m).head(m) = dst_mean;
+ Rt.col(m).head(m).noalias() -= c*Rt.topLeftCorner(m,m)*src_mean;
+ Rt.block(0,0,m,m) *= c;
+ }
+ else
+ {
+ Rt.col(m).head(m) = dst_mean;
+ Rt.col(m).head(m).noalias() -= Rt.topLeftCorner(m,m)*src_mean;
+ }
+
+ return Rt;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_UMEYAMA_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h
new file mode 100644
index 000000000..f68cab583
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h
@@ -0,0 +1,161 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Rohit Garg <rpg.314@gmail.com>
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GEOMETRY_SSE_H
+#define EIGEN_GEOMETRY_SSE_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<class Derived, class OtherDerived>
+struct quat_product<Architecture::SSE, Derived, OtherDerived, float>
+{
+ enum {
+ AAlignment = traits<Derived>::Alignment,
+ BAlignment = traits<OtherDerived>::Alignment,
+ ResAlignment = traits<Quaternion<float> >::Alignment
+ };
+ static inline Quaternion<float> run(const QuaternionBase<Derived>& _a, const QuaternionBase<OtherDerived>& _b)
+ {
+ Quaternion<float> res;
+ const __m128 mask = _mm_setr_ps(0.f,0.f,0.f,-0.f);
+ __m128 a = _a.coeffs().template packet<AAlignment>(0);
+ __m128 b = _b.coeffs().template packet<BAlignment>(0);
+ __m128 s1 = _mm_mul_ps(vec4f_swizzle1(a,1,2,0,2),vec4f_swizzle1(b,2,0,1,2));
+ __m128 s2 = _mm_mul_ps(vec4f_swizzle1(a,3,3,3,1),vec4f_swizzle1(b,0,1,2,1));
+ pstoret<float,Packet4f,ResAlignment>(
+ &res.x(),
+ _mm_add_ps(_mm_sub_ps(_mm_mul_ps(a,vec4f_swizzle1(b,3,3,3,3)),
+ _mm_mul_ps(vec4f_swizzle1(a,2,0,1,0),
+ vec4f_swizzle1(b,1,2,0,0))),
+ _mm_xor_ps(mask,_mm_add_ps(s1,s2))));
+
+ return res;
+ }
+};
+
+template<class Derived>
+struct quat_conj<Architecture::SSE, Derived, float>
+{
+ enum {
+ ResAlignment = traits<Quaternion<float> >::Alignment
+ };
+ static inline Quaternion<float> run(const QuaternionBase<Derived>& q)
+ {
+ Quaternion<float> res;
+ const __m128 mask = _mm_setr_ps(-0.f,-0.f,-0.f,0.f);
+ pstoret<float,Packet4f,ResAlignment>(&res.x(), _mm_xor_ps(mask, q.coeffs().template packet<traits<Derived>::Alignment>(0)));
+ return res;
+ }
+};
+
+
+template<typename VectorLhs,typename VectorRhs>
+struct cross3_impl<Architecture::SSE,VectorLhs,VectorRhs,float,true>
+{
+ enum {
+ ResAlignment = traits<typename plain_matrix_type<VectorLhs>::type>::Alignment
+ };
+ static inline typename plain_matrix_type<VectorLhs>::type
+ run(const VectorLhs& lhs, const VectorRhs& rhs)
+ {
+ __m128 a = lhs.template packet<traits<VectorLhs>::Alignment>(0);
+ __m128 b = rhs.template packet<traits<VectorRhs>::Alignment>(0);
+ __m128 mul1=_mm_mul_ps(vec4f_swizzle1(a,1,2,0,3),vec4f_swizzle1(b,2,0,1,3));
+ __m128 mul2=_mm_mul_ps(vec4f_swizzle1(a,2,0,1,3),vec4f_swizzle1(b,1,2,0,3));
+ typename plain_matrix_type<VectorLhs>::type res;
+ pstoret<float,Packet4f,ResAlignment>(&res.x(),_mm_sub_ps(mul1,mul2));
+ return res;
+ }
+};
+
+
+
+
+template<class Derived, class OtherDerived>
+struct quat_product<Architecture::SSE, Derived, OtherDerived, double>
+{
+ enum {
+ BAlignment = traits<OtherDerived>::Alignment,
+ ResAlignment = traits<Quaternion<double> >::Alignment
+ };
+
+ static inline Quaternion<double> run(const QuaternionBase<Derived>& _a, const QuaternionBase<OtherDerived>& _b)
+ {
+ const Packet2d mask = _mm_castsi128_pd(_mm_set_epi32(0x0,0x0,0x80000000,0x0));
+
+ Quaternion<double> res;
+
+ const double* a = _a.coeffs().data();
+ Packet2d b_xy = _b.coeffs().template packet<BAlignment>(0);
+ Packet2d b_zw = _b.coeffs().template packet<BAlignment>(2);
+ Packet2d a_xx = pset1<Packet2d>(a[0]);
+ Packet2d a_yy = pset1<Packet2d>(a[1]);
+ Packet2d a_zz = pset1<Packet2d>(a[2]);
+ Packet2d a_ww = pset1<Packet2d>(a[3]);
+
+ // two temporaries:
+ Packet2d t1, t2;
+
+ /*
+ * t1 = ww*xy + yy*zw
+ * t2 = zz*xy - xx*zw
+ * res.xy = t1 +/- swap(t2)
+ */
+ t1 = padd(pmul(a_ww, b_xy), pmul(a_yy, b_zw));
+ t2 = psub(pmul(a_zz, b_xy), pmul(a_xx, b_zw));
+#ifdef EIGEN_VECTORIZE_SSE3
+ EIGEN_UNUSED_VARIABLE(mask)
+ pstoret<double,Packet2d,ResAlignment>(&res.x(), _mm_addsub_pd(t1, preverse(t2)));
+#else
+ pstoret<double,Packet2d,ResAlignment>(&res.x(), padd(t1, pxor(mask,preverse(t2))));
+#endif
+
+ /*
+ * t1 = ww*zw - yy*xy
+ * t2 = zz*zw + xx*xy
+ * res.zw = t1 -/+ swap(t2) = swap( swap(t1) +/- t2)
+ */
+ t1 = psub(pmul(a_ww, b_zw), pmul(a_yy, b_xy));
+ t2 = padd(pmul(a_zz, b_zw), pmul(a_xx, b_xy));
+#ifdef EIGEN_VECTORIZE_SSE3
+ EIGEN_UNUSED_VARIABLE(mask)
+ pstoret<double,Packet2d,ResAlignment>(&res.z(), preverse(_mm_addsub_pd(preverse(t1), t2)));
+#else
+ pstoret<double,Packet2d,ResAlignment>(&res.z(), psub(t1, pxor(mask,preverse(t2))));
+#endif
+
+ return res;
+}
+};
+
+template<class Derived>
+struct quat_conj<Architecture::SSE, Derived, double>
+{
+ enum {
+ ResAlignment = traits<Quaternion<double> >::Alignment
+ };
+ static inline Quaternion<double> run(const QuaternionBase<Derived>& q)
+ {
+ Quaternion<double> res;
+ const __m128d mask0 = _mm_setr_pd(-0.,-0.);
+ const __m128d mask2 = _mm_setr_pd(-0.,0.);
+ pstoret<double,Packet2d,ResAlignment>(&res.x(), _mm_xor_pd(mask0, q.coeffs().template packet<traits<Derived>::Alignment>(0)));
+ pstoret<double,Packet2d,ResAlignment>(&res.z(), _mm_xor_pd(mask2, q.coeffs().template packet<traits<Derived>::Alignment>(2)));
+ return res;
+ }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_GEOMETRY_SSE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Householder/BlockHouseholder.h b/runtimes/nn/depend/external/eigen/Eigen/src/Householder/BlockHouseholder.h
new file mode 100644
index 000000000..01a7ed188
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Householder/BlockHouseholder.h
@@ -0,0 +1,103 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Vincent Lejeune
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BLOCK_HOUSEHOLDER_H
+#define EIGEN_BLOCK_HOUSEHOLDER_H
+
+// This file contains some helper function to deal with block householder reflectors
+
+namespace Eigen {
+
+namespace internal {
+
+/** \internal */
+// template<typename TriangularFactorType,typename VectorsType,typename CoeffsType>
+// void make_block_householder_triangular_factor(TriangularFactorType& triFactor, const VectorsType& vectors, const CoeffsType& hCoeffs)
+// {
+// typedef typename VectorsType::Scalar Scalar;
+// const Index nbVecs = vectors.cols();
+// eigen_assert(triFactor.rows() == nbVecs && triFactor.cols() == nbVecs && vectors.rows()>=nbVecs);
+//
+// for(Index i = 0; i < nbVecs; i++)
+// {
+// Index rs = vectors.rows() - i;
+// // Warning, note that hCoeffs may alias with vectors.
+// // It is then necessary to copy it before modifying vectors(i,i).
+// typename CoeffsType::Scalar h = hCoeffs(i);
+// // This hack permits to pass trough nested Block<> and Transpose<> expressions.
+// Scalar *Vii_ptr = const_cast<Scalar*>(vectors.data() + vectors.outerStride()*i + vectors.innerStride()*i);
+// Scalar Vii = *Vii_ptr;
+// *Vii_ptr = Scalar(1);
+// triFactor.col(i).head(i).noalias() = -h * vectors.block(i, 0, rs, i).adjoint()
+// * vectors.col(i).tail(rs);
+// *Vii_ptr = Vii;
+// // FIXME add .noalias() once the triangular product can work inplace
+// triFactor.col(i).head(i) = triFactor.block(0,0,i,i).template triangularView<Upper>()
+// * triFactor.col(i).head(i);
+// triFactor(i,i) = hCoeffs(i);
+// }
+// }
+
+/** \internal */
+// This variant avoid modifications in vectors
+template<typename TriangularFactorType,typename VectorsType,typename CoeffsType>
+void make_block_householder_triangular_factor(TriangularFactorType& triFactor, const VectorsType& vectors, const CoeffsType& hCoeffs)
+{
+ const Index nbVecs = vectors.cols();
+ eigen_assert(triFactor.rows() == nbVecs && triFactor.cols() == nbVecs && vectors.rows()>=nbVecs);
+
+ for(Index i = nbVecs-1; i >=0 ; --i)
+ {
+ Index rs = vectors.rows() - i - 1;
+ Index rt = nbVecs-i-1;
+
+ if(rt>0)
+ {
+ triFactor.row(i).tail(rt).noalias() = -hCoeffs(i) * vectors.col(i).tail(rs).adjoint()
+ * vectors.bottomRightCorner(rs, rt).template triangularView<UnitLower>();
+
+ // FIXME add .noalias() once the triangular product can work inplace
+ triFactor.row(i).tail(rt) = triFactor.row(i).tail(rt) * triFactor.bottomRightCorner(rt,rt).template triangularView<Upper>();
+
+ }
+ triFactor(i,i) = hCoeffs(i);
+ }
+}
+
+/** \internal
+ * if forward then perform mat = H0 * H1 * H2 * mat
+ * otherwise perform mat = H2 * H1 * H0 * mat
+ */
+template<typename MatrixType,typename VectorsType,typename CoeffsType>
+void apply_block_householder_on_the_left(MatrixType& mat, const VectorsType& vectors, const CoeffsType& hCoeffs, bool forward)
+{
+ enum { TFactorSize = MatrixType::ColsAtCompileTime };
+ Index nbVecs = vectors.cols();
+ Matrix<typename MatrixType::Scalar, TFactorSize, TFactorSize, RowMajor> T(nbVecs,nbVecs);
+
+ if(forward) make_block_householder_triangular_factor(T, vectors, hCoeffs);
+ else make_block_householder_triangular_factor(T, vectors, hCoeffs.conjugate());
+ const TriangularView<const VectorsType, UnitLower> V(vectors);
+
+ // A -= V T V^* A
+ Matrix<typename MatrixType::Scalar,VectorsType::ColsAtCompileTime,MatrixType::ColsAtCompileTime,
+ (VectorsType::MaxColsAtCompileTime==1 && MatrixType::MaxColsAtCompileTime!=1)?RowMajor:ColMajor,
+ VectorsType::MaxColsAtCompileTime,MatrixType::MaxColsAtCompileTime> tmp = V.adjoint() * mat;
+ // FIXME add .noalias() once the triangular product can work inplace
+ if(forward) tmp = T.template triangularView<Upper>() * tmp;
+ else tmp = T.template triangularView<Upper>().adjoint() * tmp;
+ mat.noalias() -= V * tmp;
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_BLOCK_HOUSEHOLDER_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Householder/Householder.h b/runtimes/nn/depend/external/eigen/Eigen/src/Householder/Householder.h
new file mode 100644
index 000000000..80de2c305
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Householder/Householder.h
@@ -0,0 +1,172 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_HOUSEHOLDER_H
+#define EIGEN_HOUSEHOLDER_H
+
+namespace Eigen {
+
+namespace internal {
+template<int n> struct decrement_size
+{
+ enum {
+ ret = n==Dynamic ? n : n-1
+ };
+};
+}
+
+/** Computes the elementary reflector H such that:
+ * \f$ H *this = [ beta 0 ... 0]^T \f$
+ * where the transformation H is:
+ * \f$ H = I - tau v v^*\f$
+ * and the vector v is:
+ * \f$ v^T = [1 essential^T] \f$
+ *
+ * The essential part of the vector \c v is stored in *this.
+ *
+ * On output:
+ * \param tau the scaling factor of the Householder transformation
+ * \param beta the result of H * \c *this
+ *
+ * \sa MatrixBase::makeHouseholder(), MatrixBase::applyHouseholderOnTheLeft(),
+ * MatrixBase::applyHouseholderOnTheRight()
+ */
+template<typename Derived>
+void MatrixBase<Derived>::makeHouseholderInPlace(Scalar& tau, RealScalar& beta)
+{
+ VectorBlock<Derived, internal::decrement_size<Base::SizeAtCompileTime>::ret> essentialPart(derived(), 1, size()-1);
+ makeHouseholder(essentialPart, tau, beta);
+}
+
+/** Computes the elementary reflector H such that:
+ * \f$ H *this = [ beta 0 ... 0]^T \f$
+ * where the transformation H is:
+ * \f$ H = I - tau v v^*\f$
+ * and the vector v is:
+ * \f$ v^T = [1 essential^T] \f$
+ *
+ * On output:
+ * \param essential the essential part of the vector \c v
+ * \param tau the scaling factor of the Householder transformation
+ * \param beta the result of H * \c *this
+ *
+ * \sa MatrixBase::makeHouseholderInPlace(), MatrixBase::applyHouseholderOnTheLeft(),
+ * MatrixBase::applyHouseholderOnTheRight()
+ */
+template<typename Derived>
+template<typename EssentialPart>
+void MatrixBase<Derived>::makeHouseholder(
+ EssentialPart& essential,
+ Scalar& tau,
+ RealScalar& beta) const
+{
+ using std::sqrt;
+ using numext::conj;
+
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(EssentialPart)
+ VectorBlock<const Derived, EssentialPart::SizeAtCompileTime> tail(derived(), 1, size()-1);
+
+ RealScalar tailSqNorm = size()==1 ? RealScalar(0) : tail.squaredNorm();
+ Scalar c0 = coeff(0);
+ const RealScalar tol = (std::numeric_limits<RealScalar>::min)();
+
+ if(tailSqNorm <= tol && numext::abs2(numext::imag(c0))<=tol)
+ {
+ tau = RealScalar(0);
+ beta = numext::real(c0);
+ essential.setZero();
+ }
+ else
+ {
+ beta = sqrt(numext::abs2(c0) + tailSqNorm);
+ if (numext::real(c0)>=RealScalar(0))
+ beta = -beta;
+ essential = tail / (c0 - beta);
+ tau = conj((beta - c0) / beta);
+ }
+}
+
+/** Apply the elementary reflector H given by
+ * \f$ H = I - tau v v^*\f$
+ * with
+ * \f$ v^T = [1 essential^T] \f$
+ * from the left to a vector or matrix.
+ *
+ * On input:
+ * \param essential the essential part of the vector \c v
+ * \param tau the scaling factor of the Householder transformation
+ * \param workspace a pointer to working space with at least
+ * this->cols() * essential.size() entries
+ *
+ * \sa MatrixBase::makeHouseholder(), MatrixBase::makeHouseholderInPlace(),
+ * MatrixBase::applyHouseholderOnTheRight()
+ */
+template<typename Derived>
+template<typename EssentialPart>
+void MatrixBase<Derived>::applyHouseholderOnTheLeft(
+ const EssentialPart& essential,
+ const Scalar& tau,
+ Scalar* workspace)
+{
+ if(rows() == 1)
+ {
+ *this *= Scalar(1)-tau;
+ }
+ else if(tau!=Scalar(0))
+ {
+ Map<typename internal::plain_row_type<PlainObject>::type> tmp(workspace,cols());
+ Block<Derived, EssentialPart::SizeAtCompileTime, Derived::ColsAtCompileTime> bottom(derived(), 1, 0, rows()-1, cols());
+ tmp.noalias() = essential.adjoint() * bottom;
+ tmp += this->row(0);
+ this->row(0) -= tau * tmp;
+ bottom.noalias() -= tau * essential * tmp;
+ }
+}
+
+/** Apply the elementary reflector H given by
+ * \f$ H = I - tau v v^*\f$
+ * with
+ * \f$ v^T = [1 essential^T] \f$
+ * from the right to a vector or matrix.
+ *
+ * On input:
+ * \param essential the essential part of the vector \c v
+ * \param tau the scaling factor of the Householder transformation
+ * \param workspace a pointer to working space with at least
+ * this->cols() * essential.size() entries
+ *
+ * \sa MatrixBase::makeHouseholder(), MatrixBase::makeHouseholderInPlace(),
+ * MatrixBase::applyHouseholderOnTheLeft()
+ */
+template<typename Derived>
+template<typename EssentialPart>
+void MatrixBase<Derived>::applyHouseholderOnTheRight(
+ const EssentialPart& essential,
+ const Scalar& tau,
+ Scalar* workspace)
+{
+ if(cols() == 1)
+ {
+ *this *= Scalar(1)-tau;
+ }
+ else if(tau!=Scalar(0))
+ {
+ Map<typename internal::plain_col_type<PlainObject>::type> tmp(workspace,rows());
+ Block<Derived, Derived::RowsAtCompileTime, EssentialPart::SizeAtCompileTime> right(derived(), 0, 1, rows(), cols()-1);
+ tmp.noalias() = right * essential.conjugate();
+ tmp += this->col(0);
+ this->col(0) -= tau * tmp;
+ right.noalias() -= tau * tmp * essential.transpose();
+ }
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_HOUSEHOLDER_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Householder/HouseholderSequence.h b/runtimes/nn/depend/external/eigen/Eigen/src/Householder/HouseholderSequence.h
new file mode 100644
index 000000000..3ce0a693d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Householder/HouseholderSequence.h
@@ -0,0 +1,470 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_HOUSEHOLDER_SEQUENCE_H
+#define EIGEN_HOUSEHOLDER_SEQUENCE_H
+
+namespace Eigen {
+
+/** \ingroup Householder_Module
+ * \householder_module
+ * \class HouseholderSequence
+ * \brief Sequence of Householder reflections acting on subspaces with decreasing size
+ * \tparam VectorsType type of matrix containing the Householder vectors
+ * \tparam CoeffsType type of vector containing the Householder coefficients
+ * \tparam Side either OnTheLeft (the default) or OnTheRight
+ *
+ * This class represents a product sequence of Householder reflections where the first Householder reflection
+ * acts on the whole space, the second Householder reflection leaves the one-dimensional subspace spanned by
+ * the first unit vector invariant, the third Householder reflection leaves the two-dimensional subspace
+ * spanned by the first two unit vectors invariant, and so on up to the last reflection which leaves all but
+ * one dimensions invariant and acts only on the last dimension. Such sequences of Householder reflections
+ * are used in several algorithms to zero out certain parts of a matrix. Indeed, the methods
+ * HessenbergDecomposition::matrixQ(), Tridiagonalization::matrixQ(), HouseholderQR::householderQ(),
+ * and ColPivHouseholderQR::householderQ() all return a %HouseholderSequence.
+ *
+ * More precisely, the class %HouseholderSequence represents an \f$ n \times n \f$ matrix \f$ H \f$ of the
+ * form \f$ H = \prod_{i=0}^{n-1} H_i \f$ where the i-th Householder reflection is \f$ H_i = I - h_i v_i
+ * v_i^* \f$. The i-th Householder coefficient \f$ h_i \f$ is a scalar and the i-th Householder vector \f$
+ * v_i \f$ is a vector of the form
+ * \f[
+ * v_i = [\underbrace{0, \ldots, 0}_{i-1\mbox{ zeros}}, 1, \underbrace{*, \ldots,*}_{n-i\mbox{ arbitrary entries}} ].
+ * \f]
+ * The last \f$ n-i \f$ entries of \f$ v_i \f$ are called the essential part of the Householder vector.
+ *
+ * Typical usages are listed below, where H is a HouseholderSequence:
+ * \code
+ * A.applyOnTheRight(H); // A = A * H
+ * A.applyOnTheLeft(H); // A = H * A
+ * A.applyOnTheRight(H.adjoint()); // A = A * H^*
+ * A.applyOnTheLeft(H.adjoint()); // A = H^* * A
+ * MatrixXd Q = H; // conversion to a dense matrix
+ * \endcode
+ * In addition to the adjoint, you can also apply the inverse (=adjoint), the transpose, and the conjugate operators.
+ *
+ * See the documentation for HouseholderSequence(const VectorsType&, const CoeffsType&) for an example.
+ *
+ * \sa MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
+ */
+
+namespace internal {
+
+template<typename VectorsType, typename CoeffsType, int Side>
+struct traits<HouseholderSequence<VectorsType,CoeffsType,Side> >
+{
+ typedef typename VectorsType::Scalar Scalar;
+ typedef typename VectorsType::StorageIndex StorageIndex;
+ typedef typename VectorsType::StorageKind StorageKind;
+ enum {
+ RowsAtCompileTime = Side==OnTheLeft ? traits<VectorsType>::RowsAtCompileTime
+ : traits<VectorsType>::ColsAtCompileTime,
+ ColsAtCompileTime = RowsAtCompileTime,
+ MaxRowsAtCompileTime = Side==OnTheLeft ? traits<VectorsType>::MaxRowsAtCompileTime
+ : traits<VectorsType>::MaxColsAtCompileTime,
+ MaxColsAtCompileTime = MaxRowsAtCompileTime,
+ Flags = 0
+ };
+};
+
+struct HouseholderSequenceShape {};
+
+template<typename VectorsType, typename CoeffsType, int Side>
+struct evaluator_traits<HouseholderSequence<VectorsType,CoeffsType,Side> >
+ : public evaluator_traits_base<HouseholderSequence<VectorsType,CoeffsType,Side> >
+{
+ typedef HouseholderSequenceShape Shape;
+};
+
+template<typename VectorsType, typename CoeffsType, int Side>
+struct hseq_side_dependent_impl
+{
+ typedef Block<const VectorsType, Dynamic, 1> EssentialVectorType;
+ typedef HouseholderSequence<VectorsType, CoeffsType, OnTheLeft> HouseholderSequenceType;
+ static inline const EssentialVectorType essentialVector(const HouseholderSequenceType& h, Index k)
+ {
+ Index start = k+1+h.m_shift;
+ return Block<const VectorsType,Dynamic,1>(h.m_vectors, start, k, h.rows()-start, 1);
+ }
+};
+
+template<typename VectorsType, typename CoeffsType>
+struct hseq_side_dependent_impl<VectorsType, CoeffsType, OnTheRight>
+{
+ typedef Transpose<Block<const VectorsType, 1, Dynamic> > EssentialVectorType;
+ typedef HouseholderSequence<VectorsType, CoeffsType, OnTheRight> HouseholderSequenceType;
+ static inline const EssentialVectorType essentialVector(const HouseholderSequenceType& h, Index k)
+ {
+ Index start = k+1+h.m_shift;
+ return Block<const VectorsType,1,Dynamic>(h.m_vectors, k, start, 1, h.rows()-start).transpose();
+ }
+};
+
+template<typename OtherScalarType, typename MatrixType> struct matrix_type_times_scalar_type
+{
+ typedef typename ScalarBinaryOpTraits<OtherScalarType, typename MatrixType::Scalar>::ReturnType
+ ResultScalar;
+ typedef Matrix<ResultScalar, MatrixType::RowsAtCompileTime, MatrixType::ColsAtCompileTime,
+ 0, MatrixType::MaxRowsAtCompileTime, MatrixType::MaxColsAtCompileTime> Type;
+};
+
+} // end namespace internal
+
+template<typename VectorsType, typename CoeffsType, int Side> class HouseholderSequence
+ : public EigenBase<HouseholderSequence<VectorsType,CoeffsType,Side> >
+{
+ typedef typename internal::hseq_side_dependent_impl<VectorsType,CoeffsType,Side>::EssentialVectorType EssentialVectorType;
+
+ public:
+ enum {
+ RowsAtCompileTime = internal::traits<HouseholderSequence>::RowsAtCompileTime,
+ ColsAtCompileTime = internal::traits<HouseholderSequence>::ColsAtCompileTime,
+ MaxRowsAtCompileTime = internal::traits<HouseholderSequence>::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = internal::traits<HouseholderSequence>::MaxColsAtCompileTime
+ };
+ typedef typename internal::traits<HouseholderSequence>::Scalar Scalar;
+
+ typedef HouseholderSequence<
+ typename internal::conditional<NumTraits<Scalar>::IsComplex,
+ typename internal::remove_all<typename VectorsType::ConjugateReturnType>::type,
+ VectorsType>::type,
+ typename internal::conditional<NumTraits<Scalar>::IsComplex,
+ typename internal::remove_all<typename CoeffsType::ConjugateReturnType>::type,
+ CoeffsType>::type,
+ Side
+ > ConjugateReturnType;
+
+ /** \brief Constructor.
+ * \param[in] v %Matrix containing the essential parts of the Householder vectors
+ * \param[in] h Vector containing the Householder coefficients
+ *
+ * Constructs the Householder sequence with coefficients given by \p h and vectors given by \p v. The
+ * i-th Householder coefficient \f$ h_i \f$ is given by \p h(i) and the essential part of the i-th
+ * Householder vector \f$ v_i \f$ is given by \p v(k,i) with \p k > \p i (the subdiagonal part of the
+ * i-th column). If \p v has fewer columns than rows, then the Householder sequence contains as many
+ * Householder reflections as there are columns.
+ *
+ * \note The %HouseholderSequence object stores \p v and \p h by reference.
+ *
+ * Example: \include HouseholderSequence_HouseholderSequence.cpp
+ * Output: \verbinclude HouseholderSequence_HouseholderSequence.out
+ *
+ * \sa setLength(), setShift()
+ */
+ HouseholderSequence(const VectorsType& v, const CoeffsType& h)
+ : m_vectors(v), m_coeffs(h), m_trans(false), m_length(v.diagonalSize()),
+ m_shift(0)
+ {
+ }
+
+ /** \brief Copy constructor. */
+ HouseholderSequence(const HouseholderSequence& other)
+ : m_vectors(other.m_vectors),
+ m_coeffs(other.m_coeffs),
+ m_trans(other.m_trans),
+ m_length(other.m_length),
+ m_shift(other.m_shift)
+ {
+ }
+
+ /** \brief Number of rows of transformation viewed as a matrix.
+ * \returns Number of rows
+ * \details This equals the dimension of the space that the transformation acts on.
+ */
+ Index rows() const { return Side==OnTheLeft ? m_vectors.rows() : m_vectors.cols(); }
+
+ /** \brief Number of columns of transformation viewed as a matrix.
+ * \returns Number of columns
+ * \details This equals the dimension of the space that the transformation acts on.
+ */
+ Index cols() const { return rows(); }
+
+ /** \brief Essential part of a Householder vector.
+ * \param[in] k Index of Householder reflection
+ * \returns Vector containing non-trivial entries of k-th Householder vector
+ *
+ * This function returns the essential part of the Householder vector \f$ v_i \f$. This is a vector of
+ * length \f$ n-i \f$ containing the last \f$ n-i \f$ entries of the vector
+ * \f[
+ * v_i = [\underbrace{0, \ldots, 0}_{i-1\mbox{ zeros}}, 1, \underbrace{*, \ldots,*}_{n-i\mbox{ arbitrary entries}} ].
+ * \f]
+ * The index \f$ i \f$ equals \p k + shift(), corresponding to the k-th column of the matrix \p v
+ * passed to the constructor.
+ *
+ * \sa setShift(), shift()
+ */
+ const EssentialVectorType essentialVector(Index k) const
+ {
+ eigen_assert(k >= 0 && k < m_length);
+ return internal::hseq_side_dependent_impl<VectorsType,CoeffsType,Side>::essentialVector(*this, k);
+ }
+
+ /** \brief %Transpose of the Householder sequence. */
+ HouseholderSequence transpose() const
+ {
+ return HouseholderSequence(*this).setTrans(!m_trans);
+ }
+
+ /** \brief Complex conjugate of the Householder sequence. */
+ ConjugateReturnType conjugate() const
+ {
+ return ConjugateReturnType(m_vectors.conjugate(), m_coeffs.conjugate())
+ .setTrans(m_trans)
+ .setLength(m_length)
+ .setShift(m_shift);
+ }
+
+ /** \brief Adjoint (conjugate transpose) of the Householder sequence. */
+ ConjugateReturnType adjoint() const
+ {
+ return conjugate().setTrans(!m_trans);
+ }
+
+ /** \brief Inverse of the Householder sequence (equals the adjoint). */
+ ConjugateReturnType inverse() const { return adjoint(); }
+
+ /** \internal */
+ template<typename DestType> inline void evalTo(DestType& dst) const
+ {
+ Matrix<Scalar, DestType::RowsAtCompileTime, 1,
+ AutoAlign|ColMajor, DestType::MaxRowsAtCompileTime, 1> workspace(rows());
+ evalTo(dst, workspace);
+ }
+
+ /** \internal */
+ template<typename Dest, typename Workspace>
+ void evalTo(Dest& dst, Workspace& workspace) const
+ {
+ workspace.resize(rows());
+ Index vecs = m_length;
+ if(internal::is_same_dense(dst,m_vectors))
+ {
+ // in-place
+ dst.diagonal().setOnes();
+ dst.template triangularView<StrictlyUpper>().setZero();
+ for(Index k = vecs-1; k >= 0; --k)
+ {
+ Index cornerSize = rows() - k - m_shift;
+ if(m_trans)
+ dst.bottomRightCorner(cornerSize, cornerSize)
+ .applyHouseholderOnTheRight(essentialVector(k), m_coeffs.coeff(k), workspace.data());
+ else
+ dst.bottomRightCorner(cornerSize, cornerSize)
+ .applyHouseholderOnTheLeft(essentialVector(k), m_coeffs.coeff(k), workspace.data());
+
+ // clear the off diagonal vector
+ dst.col(k).tail(rows()-k-1).setZero();
+ }
+ // clear the remaining columns if needed
+ for(Index k = 0; k<cols()-vecs ; ++k)
+ dst.col(k).tail(rows()-k-1).setZero();
+ }
+ else
+ {
+ dst.setIdentity(rows(), rows());
+ for(Index k = vecs-1; k >= 0; --k)
+ {
+ Index cornerSize = rows() - k - m_shift;
+ if(m_trans)
+ dst.bottomRightCorner(cornerSize, cornerSize)
+ .applyHouseholderOnTheRight(essentialVector(k), m_coeffs.coeff(k), &workspace.coeffRef(0));
+ else
+ dst.bottomRightCorner(cornerSize, cornerSize)
+ .applyHouseholderOnTheLeft(essentialVector(k), m_coeffs.coeff(k), &workspace.coeffRef(0));
+ }
+ }
+ }
+
+ /** \internal */
+ template<typename Dest> inline void applyThisOnTheRight(Dest& dst) const
+ {
+ Matrix<Scalar,1,Dest::RowsAtCompileTime,RowMajor,1,Dest::MaxRowsAtCompileTime> workspace(dst.rows());
+ applyThisOnTheRight(dst, workspace);
+ }
+
+ /** \internal */
+ template<typename Dest, typename Workspace>
+ inline void applyThisOnTheRight(Dest& dst, Workspace& workspace) const
+ {
+ workspace.resize(dst.rows());
+ for(Index k = 0; k < m_length; ++k)
+ {
+ Index actual_k = m_trans ? m_length-k-1 : k;
+ dst.rightCols(rows()-m_shift-actual_k)
+ .applyHouseholderOnTheRight(essentialVector(actual_k), m_coeffs.coeff(actual_k), workspace.data());
+ }
+ }
+
+ /** \internal */
+ template<typename Dest> inline void applyThisOnTheLeft(Dest& dst) const
+ {
+ Matrix<Scalar,1,Dest::ColsAtCompileTime,RowMajor,1,Dest::MaxColsAtCompileTime> workspace;
+ applyThisOnTheLeft(dst, workspace);
+ }
+
+ /** \internal */
+ template<typename Dest, typename Workspace>
+ inline void applyThisOnTheLeft(Dest& dst, Workspace& workspace) const
+ {
+ const Index BlockSize = 48;
+ // if the entries are large enough, then apply the reflectors by block
+ if(m_length>=BlockSize && dst.cols()>1)
+ {
+ for(Index i = 0; i < m_length; i+=BlockSize)
+ {
+ Index end = m_trans ? (std::min)(m_length,i+BlockSize) : m_length-i;
+ Index k = m_trans ? i : (std::max)(Index(0),end-BlockSize);
+ Index bs = end-k;
+ Index start = k + m_shift;
+
+ typedef Block<typename internal::remove_all<VectorsType>::type,Dynamic,Dynamic> SubVectorsType;
+ SubVectorsType sub_vecs1(m_vectors.const_cast_derived(), Side==OnTheRight ? k : start,
+ Side==OnTheRight ? start : k,
+ Side==OnTheRight ? bs : m_vectors.rows()-start,
+ Side==OnTheRight ? m_vectors.cols()-start : bs);
+ typename internal::conditional<Side==OnTheRight, Transpose<SubVectorsType>, SubVectorsType&>::type sub_vecs(sub_vecs1);
+ Block<Dest,Dynamic,Dynamic> sub_dst(dst,dst.rows()-rows()+m_shift+k,0, rows()-m_shift-k,dst.cols());
+ apply_block_householder_on_the_left(sub_dst, sub_vecs, m_coeffs.segment(k, bs), !m_trans);
+ }
+ }
+ else
+ {
+ workspace.resize(dst.cols());
+ for(Index k = 0; k < m_length; ++k)
+ {
+ Index actual_k = m_trans ? k : m_length-k-1;
+ dst.bottomRows(rows()-m_shift-actual_k)
+ .applyHouseholderOnTheLeft(essentialVector(actual_k), m_coeffs.coeff(actual_k), workspace.data());
+ }
+ }
+ }
+
+ /** \brief Computes the product of a Householder sequence with a matrix.
+ * \param[in] other %Matrix being multiplied.
+ * \returns Expression object representing the product.
+ *
+ * This function computes \f$ HM \f$ where \f$ H \f$ is the Householder sequence represented by \p *this
+ * and \f$ M \f$ is the matrix \p other.
+ */
+ template<typename OtherDerived>
+ typename internal::matrix_type_times_scalar_type<Scalar, OtherDerived>::Type operator*(const MatrixBase<OtherDerived>& other) const
+ {
+ typename internal::matrix_type_times_scalar_type<Scalar, OtherDerived>::Type
+ res(other.template cast<typename internal::matrix_type_times_scalar_type<Scalar,OtherDerived>::ResultScalar>());
+ applyThisOnTheLeft(res);
+ return res;
+ }
+
+ template<typename _VectorsType, typename _CoeffsType, int _Side> friend struct internal::hseq_side_dependent_impl;
+
+ /** \brief Sets the length of the Householder sequence.
+ * \param [in] length New value for the length.
+ *
+ * By default, the length \f$ n \f$ of the Householder sequence \f$ H = H_0 H_1 \ldots H_{n-1} \f$ is set
+ * to the number of columns of the matrix \p v passed to the constructor, or the number of rows if that
+ * is smaller. After this function is called, the length equals \p length.
+ *
+ * \sa length()
+ */
+ HouseholderSequence& setLength(Index length)
+ {
+ m_length = length;
+ return *this;
+ }
+
+ /** \brief Sets the shift of the Householder sequence.
+ * \param [in] shift New value for the shift.
+ *
+ * By default, a %HouseholderSequence object represents \f$ H = H_0 H_1 \ldots H_{n-1} \f$ and the i-th
+ * column of the matrix \p v passed to the constructor corresponds to the i-th Householder
+ * reflection. After this function is called, the object represents \f$ H = H_{\mathrm{shift}}
+ * H_{\mathrm{shift}+1} \ldots H_{n-1} \f$ and the i-th column of \p v corresponds to the (shift+i)-th
+ * Householder reflection.
+ *
+ * \sa shift()
+ */
+ HouseholderSequence& setShift(Index shift)
+ {
+ m_shift = shift;
+ return *this;
+ }
+
+ Index length() const { return m_length; } /**< \brief Returns the length of the Householder sequence. */
+ Index shift() const { return m_shift; } /**< \brief Returns the shift of the Householder sequence. */
+
+ /* Necessary for .adjoint() and .conjugate() */
+ template <typename VectorsType2, typename CoeffsType2, int Side2> friend class HouseholderSequence;
+
+ protected:
+
+ /** \brief Sets the transpose flag.
+ * \param [in] trans New value of the transpose flag.
+ *
+ * By default, the transpose flag is not set. If the transpose flag is set, then this object represents
+ * \f$ H^T = H_{n-1}^T \ldots H_1^T H_0^T \f$ instead of \f$ H = H_0 H_1 \ldots H_{n-1} \f$.
+ *
+ * \sa trans()
+ */
+ HouseholderSequence& setTrans(bool trans)
+ {
+ m_trans = trans;
+ return *this;
+ }
+
+ bool trans() const { return m_trans; } /**< \brief Returns the transpose flag. */
+
+ typename VectorsType::Nested m_vectors;
+ typename CoeffsType::Nested m_coeffs;
+ bool m_trans;
+ Index m_length;
+ Index m_shift;
+};
+
+/** \brief Computes the product of a matrix with a Householder sequence.
+ * \param[in] other %Matrix being multiplied.
+ * \param[in] h %HouseholderSequence being multiplied.
+ * \returns Expression object representing the product.
+ *
+ * This function computes \f$ MH \f$ where \f$ M \f$ is the matrix \p other and \f$ H \f$ is the
+ * Householder sequence represented by \p h.
+ */
+template<typename OtherDerived, typename VectorsType, typename CoeffsType, int Side>
+typename internal::matrix_type_times_scalar_type<typename VectorsType::Scalar,OtherDerived>::Type operator*(const MatrixBase<OtherDerived>& other, const HouseholderSequence<VectorsType,CoeffsType,Side>& h)
+{
+ typename internal::matrix_type_times_scalar_type<typename VectorsType::Scalar,OtherDerived>::Type
+ res(other.template cast<typename internal::matrix_type_times_scalar_type<typename VectorsType::Scalar,OtherDerived>::ResultScalar>());
+ h.applyThisOnTheRight(res);
+ return res;
+}
+
+/** \ingroup Householder_Module \householder_module
+ * \brief Convenience function for constructing a Householder sequence.
+ * \returns A HouseholderSequence constructed from the specified arguments.
+ */
+template<typename VectorsType, typename CoeffsType>
+HouseholderSequence<VectorsType,CoeffsType> householderSequence(const VectorsType& v, const CoeffsType& h)
+{
+ return HouseholderSequence<VectorsType,CoeffsType,OnTheLeft>(v, h);
+}
+
+/** \ingroup Householder_Module \householder_module
+ * \brief Convenience function for constructing a Householder sequence.
+ * \returns A HouseholderSequence constructed from the specified arguments.
+ * \details This function differs from householderSequence() in that the template argument \p OnTheSide of
+ * the constructed HouseholderSequence is set to OnTheRight, instead of the default OnTheLeft.
+ */
+template<typename VectorsType, typename CoeffsType>
+HouseholderSequence<VectorsType,CoeffsType,OnTheRight> rightHouseholderSequence(const VectorsType& v, const CoeffsType& h)
+{
+ return HouseholderSequence<VectorsType,CoeffsType,OnTheRight>(v, h);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_HOUSEHOLDER_SEQUENCE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h b/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
new file mode 100644
index 000000000..facdaf890
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
@@ -0,0 +1,226 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BASIC_PRECONDITIONERS_H
+#define EIGEN_BASIC_PRECONDITIONERS_H
+
+namespace Eigen {
+
+/** \ingroup IterativeLinearSolvers_Module
+ * \brief A preconditioner based on the digonal entries
+ *
+ * This class allows to approximately solve for A.x = b problems assuming A is a diagonal matrix.
+ * In other words, this preconditioner neglects all off diagonal entries and, in Eigen's language, solves for:
+ \code
+ A.diagonal().asDiagonal() . x = b
+ \endcode
+ *
+ * \tparam _Scalar the type of the scalar.
+ *
+ * \implsparsesolverconcept
+ *
+ * This preconditioner is suitable for both selfadjoint and general problems.
+ * The diagonal entries are pre-inverted and stored into a dense vector.
+ *
+ * \note A variant that has yet to be implemented would attempt to preserve the norm of each column.
+ *
+ * \sa class LeastSquareDiagonalPreconditioner, class ConjugateGradient
+ */
+template <typename _Scalar>
+class DiagonalPreconditioner
+{
+ typedef _Scalar Scalar;
+ typedef Matrix<Scalar,Dynamic,1> Vector;
+ public:
+ typedef typename Vector::StorageIndex StorageIndex;
+ enum {
+ ColsAtCompileTime = Dynamic,
+ MaxColsAtCompileTime = Dynamic
+ };
+
+ DiagonalPreconditioner() : m_isInitialized(false) {}
+
+ template<typename MatType>
+ explicit DiagonalPreconditioner(const MatType& mat) : m_invdiag(mat.cols())
+ {
+ compute(mat);
+ }
+
+ Index rows() const { return m_invdiag.size(); }
+ Index cols() const { return m_invdiag.size(); }
+
+ template<typename MatType>
+ DiagonalPreconditioner& analyzePattern(const MatType& )
+ {
+ return *this;
+ }
+
+ template<typename MatType>
+ DiagonalPreconditioner& factorize(const MatType& mat)
+ {
+ m_invdiag.resize(mat.cols());
+ for(int j=0; j<mat.outerSize(); ++j)
+ {
+ typename MatType::InnerIterator it(mat,j);
+ while(it && it.index()!=j) ++it;
+ if(it && it.index()==j && it.value()!=Scalar(0))
+ m_invdiag(j) = Scalar(1)/it.value();
+ else
+ m_invdiag(j) = Scalar(1);
+ }
+ m_isInitialized = true;
+ return *this;
+ }
+
+ template<typename MatType>
+ DiagonalPreconditioner& compute(const MatType& mat)
+ {
+ return factorize(mat);
+ }
+
+ /** \internal */
+ template<typename Rhs, typename Dest>
+ void _solve_impl(const Rhs& b, Dest& x) const
+ {
+ x = m_invdiag.array() * b.array() ;
+ }
+
+ template<typename Rhs> inline const Solve<DiagonalPreconditioner, Rhs>
+ solve(const MatrixBase<Rhs>& b) const
+ {
+ eigen_assert(m_isInitialized && "DiagonalPreconditioner is not initialized.");
+ eigen_assert(m_invdiag.size()==b.rows()
+ && "DiagonalPreconditioner::solve(): invalid number of rows of the right hand side matrix b");
+ return Solve<DiagonalPreconditioner, Rhs>(*this, b.derived());
+ }
+
+ ComputationInfo info() { return Success; }
+
+ protected:
+ Vector m_invdiag;
+ bool m_isInitialized;
+};
+
+/** \ingroup IterativeLinearSolvers_Module
+ * \brief Jacobi preconditioner for LeastSquaresConjugateGradient
+ *
+ * This class allows to approximately solve for A' A x = A' b problems assuming A' A is a diagonal matrix.
+ * In other words, this preconditioner neglects all off diagonal entries and, in Eigen's language, solves for:
+ \code
+ (A.adjoint() * A).diagonal().asDiagonal() * x = b
+ \endcode
+ *
+ * \tparam _Scalar the type of the scalar.
+ *
+ * \implsparsesolverconcept
+ *
+ * The diagonal entries are pre-inverted and stored into a dense vector.
+ *
+ * \sa class LeastSquaresConjugateGradient, class DiagonalPreconditioner
+ */
+template <typename _Scalar>
+class LeastSquareDiagonalPreconditioner : public DiagonalPreconditioner<_Scalar>
+{
+ typedef _Scalar Scalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ typedef DiagonalPreconditioner<_Scalar> Base;
+ using Base::m_invdiag;
+ public:
+
+ LeastSquareDiagonalPreconditioner() : Base() {}
+
+ template<typename MatType>
+ explicit LeastSquareDiagonalPreconditioner(const MatType& mat) : Base()
+ {
+ compute(mat);
+ }
+
+ template<typename MatType>
+ LeastSquareDiagonalPreconditioner& analyzePattern(const MatType& )
+ {
+ return *this;
+ }
+
+ template<typename MatType>
+ LeastSquareDiagonalPreconditioner& factorize(const MatType& mat)
+ {
+ // Compute the inverse squared-norm of each column of mat
+ m_invdiag.resize(mat.cols());
+ if(MatType::IsRowMajor)
+ {
+ m_invdiag.setZero();
+ for(Index j=0; j<mat.outerSize(); ++j)
+ {
+ for(typename MatType::InnerIterator it(mat,j); it; ++it)
+ m_invdiag(it.index()) += numext::abs2(it.value());
+ }
+ for(Index j=0; j<mat.cols(); ++j)
+ if(numext::real(m_invdiag(j))>RealScalar(0))
+ m_invdiag(j) = RealScalar(1)/numext::real(m_invdiag(j));
+ }
+ else
+ {
+ for(Index j=0; j<mat.outerSize(); ++j)
+ {
+ RealScalar sum = mat.innerVector(j).squaredNorm();
+ if(sum>RealScalar(0))
+ m_invdiag(j) = RealScalar(1)/sum;
+ else
+ m_invdiag(j) = RealScalar(1);
+ }
+ }
+ Base::m_isInitialized = true;
+ return *this;
+ }
+
+ template<typename MatType>
+ LeastSquareDiagonalPreconditioner& compute(const MatType& mat)
+ {
+ return factorize(mat);
+ }
+
+ ComputationInfo info() { return Success; }
+
+ protected:
+};
+
+/** \ingroup IterativeLinearSolvers_Module
+ * \brief A naive preconditioner which approximates any matrix as the identity matrix
+ *
+ * \implsparsesolverconcept
+ *
+ * \sa class DiagonalPreconditioner
+ */
+class IdentityPreconditioner
+{
+ public:
+
+ IdentityPreconditioner() {}
+
+ template<typename MatrixType>
+ explicit IdentityPreconditioner(const MatrixType& ) {}
+
+ template<typename MatrixType>
+ IdentityPreconditioner& analyzePattern(const MatrixType& ) { return *this; }
+
+ template<typename MatrixType>
+ IdentityPreconditioner& factorize(const MatrixType& ) { return *this; }
+
+ template<typename MatrixType>
+ IdentityPreconditioner& compute(const MatrixType& ) { return *this; }
+
+ template<typename Rhs>
+ inline const Rhs& solve(const Rhs& b) const { return b; }
+
+ ComputationInfo info() { return Success; }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_BASIC_PRECONDITIONERS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h b/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
new file mode 100644
index 000000000..454f46814
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
@@ -0,0 +1,228 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BICGSTAB_H
+#define EIGEN_BICGSTAB_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** \internal Low-level bi conjugate gradient stabilized algorithm
+ * \param mat The matrix A
+ * \param rhs The right hand side vector b
+ * \param x On input and initial solution, on output the computed solution.
+ * \param precond A preconditioner being able to efficiently solve for an
+ * approximation of Ax=b (regardless of b)
+ * \param iters On input the max number of iteration, on output the number of performed iterations.
+ * \param tol_error On input the tolerance error, on output an estimation of the relative error.
+ * \return false in the case of numerical issue, for example a break down of BiCGSTAB.
+ */
+template<typename MatrixType, typename Rhs, typename Dest, typename Preconditioner>
+bool bicgstab(const MatrixType& mat, const Rhs& rhs, Dest& x,
+ const Preconditioner& precond, Index& iters,
+ typename Dest::RealScalar& tol_error)
+{
+ using std::sqrt;
+ using std::abs;
+ typedef typename Dest::RealScalar RealScalar;
+ typedef typename Dest::Scalar Scalar;
+ typedef Matrix<Scalar,Dynamic,1> VectorType;
+ RealScalar tol = tol_error;
+ Index maxIters = iters;
+
+ Index n = mat.cols();
+ VectorType r = rhs - mat * x;
+ VectorType r0 = r;
+
+ RealScalar r0_sqnorm = r0.squaredNorm();
+ RealScalar rhs_sqnorm = rhs.squaredNorm();
+ if(rhs_sqnorm == 0)
+ {
+ x.setZero();
+ return true;
+ }
+ Scalar rho = 1;
+ Scalar alpha = 1;
+ Scalar w = 1;
+
+ VectorType v = VectorType::Zero(n), p = VectorType::Zero(n);
+ VectorType y(n), z(n);
+ VectorType kt(n), ks(n);
+
+ VectorType s(n), t(n);
+
+ RealScalar tol2 = tol*tol*rhs_sqnorm;
+ RealScalar eps2 = NumTraits<Scalar>::epsilon()*NumTraits<Scalar>::epsilon();
+ Index i = 0;
+ Index restarts = 0;
+
+ while ( r.squaredNorm() > tol2 && i<maxIters )
+ {
+ Scalar rho_old = rho;
+
+ rho = r0.dot(r);
+ if (abs(rho) < eps2*r0_sqnorm)
+ {
+ // The new residual vector became too orthogonal to the arbitrarily chosen direction r0
+ // Let's restart with a new r0:
+ r = rhs - mat * x;
+ r0 = r;
+ rho = r0_sqnorm = r.squaredNorm();
+ if(restarts++ == 0)
+ i = 0;
+ }
+ Scalar beta = (rho/rho_old) * (alpha / w);
+ p = r + beta * (p - w * v);
+
+ y = precond.solve(p);
+
+ v.noalias() = mat * y;
+
+ alpha = rho / r0.dot(v);
+ s = r - alpha * v;
+
+ z = precond.solve(s);
+ t.noalias() = mat * z;
+
+ RealScalar tmp = t.squaredNorm();
+ if(tmp>RealScalar(0))
+ w = t.dot(s) / tmp;
+ else
+ w = Scalar(0);
+ x += alpha * y + w * z;
+ r = s - w * t;
+ ++i;
+ }
+ tol_error = sqrt(r.squaredNorm()/rhs_sqnorm);
+ iters = i;
+ return true;
+}
+
+}
+
+template< typename _MatrixType,
+ typename _Preconditioner = DiagonalPreconditioner<typename _MatrixType::Scalar> >
+class BiCGSTAB;
+
+namespace internal {
+
+template< typename _MatrixType, typename _Preconditioner>
+struct traits<BiCGSTAB<_MatrixType,_Preconditioner> >
+{
+ typedef _MatrixType MatrixType;
+ typedef _Preconditioner Preconditioner;
+};
+
+}
+
+/** \ingroup IterativeLinearSolvers_Module
+ * \brief A bi conjugate gradient stabilized solver for sparse square problems
+ *
+ * This class allows to solve for A.x = b sparse linear problems using a bi conjugate gradient
+ * stabilized algorithm. The vectors x and b can be either dense or sparse.
+ *
+ * \tparam _MatrixType the type of the sparse matrix A, can be a dense or a sparse matrix.
+ * \tparam _Preconditioner the type of the preconditioner. Default is DiagonalPreconditioner
+ *
+ * \implsparsesolverconcept
+ *
+ * The maximal number of iterations and tolerance value can be controlled via the setMaxIterations()
+ * and setTolerance() methods. The defaults are the size of the problem for the maximal number of iterations
+ * and NumTraits<Scalar>::epsilon() for the tolerance.
+ *
+ * The tolerance corresponds to the relative residual error: |Ax-b|/|b|
+ *
+ * \b Performance: when using sparse matrices, best performance is achied for a row-major sparse matrix format.
+ * Moreover, in this case multi-threading can be exploited if the user code is compiled with OpenMP enabled.
+ * See \ref TopicMultiThreading for details.
+ *
+ * This class can be used as the direct solver classes. Here is a typical usage example:
+ * \include BiCGSTAB_simple.cpp
+ *
+ * By default the iterations start with x=0 as an initial guess of the solution.
+ * One can control the start using the solveWithGuess() method.
+ *
+ * BiCGSTAB can also be used in a matrix-free context, see the following \link MatrixfreeSolverExample example \endlink.
+ *
+ * \sa class SimplicialCholesky, DiagonalPreconditioner, IdentityPreconditioner
+ */
+template< typename _MatrixType, typename _Preconditioner>
+class BiCGSTAB : public IterativeSolverBase<BiCGSTAB<_MatrixType,_Preconditioner> >
+{
+ typedef IterativeSolverBase<BiCGSTAB> Base;
+ using Base::matrix;
+ using Base::m_error;
+ using Base::m_iterations;
+ using Base::m_info;
+ using Base::m_isInitialized;
+public:
+ typedef _MatrixType MatrixType;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ typedef _Preconditioner Preconditioner;
+
+public:
+
+ /** Default constructor. */
+ BiCGSTAB() : Base() {}
+
+ /** Initialize the solver with matrix \a A for further \c Ax=b solving.
+ *
+ * This constructor is a shortcut for the default constructor followed
+ * by a call to compute().
+ *
+ * \warning this class stores a reference to the matrix A as well as some
+ * precomputed values that depend on it. Therefore, if \a A is changed
+ * this class becomes invalid. Call compute() to update it with the new
+ * matrix A, or modify a copy of A.
+ */
+ template<typename MatrixDerived>
+ explicit BiCGSTAB(const EigenBase<MatrixDerived>& A) : Base(A.derived()) {}
+
+ ~BiCGSTAB() {}
+
+ /** \internal */
+ template<typename Rhs,typename Dest>
+ void _solve_with_guess_impl(const Rhs& b, Dest& x) const
+ {
+ bool failed = false;
+ for(Index j=0; j<b.cols(); ++j)
+ {
+ m_iterations = Base::maxIterations();
+ m_error = Base::m_tolerance;
+
+ typename Dest::ColXpr xj(x,j);
+ if(!internal::bicgstab(matrix(), b.col(j), xj, Base::m_preconditioner, m_iterations, m_error))
+ failed = true;
+ }
+ m_info = failed ? NumericalIssue
+ : m_error <= Base::m_tolerance ? Success
+ : NoConvergence;
+ m_isInitialized = true;
+ }
+
+ /** \internal */
+ using Base::_solve_impl;
+ template<typename Rhs,typename Dest>
+ void _solve_impl(const MatrixBase<Rhs>& b, Dest& x) const
+ {
+ x.resize(this->rows(),b.cols());
+ x.setZero();
+ _solve_with_guess_impl(b,x);
+ }
+
+protected:
+
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_BICGSTAB_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h b/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
new file mode 100644
index 000000000..395daa8e4
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
@@ -0,0 +1,245 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CONJUGATE_GRADIENT_H
+#define EIGEN_CONJUGATE_GRADIENT_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** \internal Low-level conjugate gradient algorithm
+ * \param mat The matrix A
+ * \param rhs The right hand side vector b
+ * \param x On input and initial solution, on output the computed solution.
+ * \param precond A preconditioner being able to efficiently solve for an
+ * approximation of Ax=b (regardless of b)
+ * \param iters On input the max number of iteration, on output the number of performed iterations.
+ * \param tol_error On input the tolerance error, on output an estimation of the relative error.
+ */
+template<typename MatrixType, typename Rhs, typename Dest, typename Preconditioner>
+EIGEN_DONT_INLINE
+void conjugate_gradient(const MatrixType& mat, const Rhs& rhs, Dest& x,
+ const Preconditioner& precond, Index& iters,
+ typename Dest::RealScalar& tol_error)
+{
+ using std::sqrt;
+ using std::abs;
+ typedef typename Dest::RealScalar RealScalar;
+ typedef typename Dest::Scalar Scalar;
+ typedef Matrix<Scalar,Dynamic,1> VectorType;
+
+ RealScalar tol = tol_error;
+ Index maxIters = iters;
+
+ Index n = mat.cols();
+
+ VectorType residual = rhs - mat * x; //initial residual
+
+ RealScalar rhsNorm2 = rhs.squaredNorm();
+ if(rhsNorm2 == 0)
+ {
+ x.setZero();
+ iters = 0;
+ tol_error = 0;
+ return;
+ }
+ RealScalar threshold = tol*tol*rhsNorm2;
+ RealScalar residualNorm2 = residual.squaredNorm();
+ if (residualNorm2 < threshold)
+ {
+ iters = 0;
+ tol_error = sqrt(residualNorm2 / rhsNorm2);
+ return;
+ }
+
+ VectorType p(n);
+ p = precond.solve(residual); // initial search direction
+
+ VectorType z(n), tmp(n);
+ RealScalar absNew = numext::real(residual.dot(p)); // the square of the absolute value of r scaled by invM
+ Index i = 0;
+ while(i < maxIters)
+ {
+ tmp.noalias() = mat * p; // the bottleneck of the algorithm
+
+ Scalar alpha = absNew / p.dot(tmp); // the amount we travel on dir
+ x += alpha * p; // update solution
+ residual -= alpha * tmp; // update residual
+
+ residualNorm2 = residual.squaredNorm();
+ if(residualNorm2 < threshold)
+ break;
+
+ z = precond.solve(residual); // approximately solve for "A z = residual"
+
+ RealScalar absOld = absNew;
+ absNew = numext::real(residual.dot(z)); // update the absolute value of r
+ RealScalar beta = absNew / absOld; // calculate the Gram-Schmidt value used to create the new search direction
+ p = z + beta * p; // update search direction
+ i++;
+ }
+ tol_error = sqrt(residualNorm2 / rhsNorm2);
+ iters = i;
+}
+
+}
+
+template< typename _MatrixType, int _UpLo=Lower,
+ typename _Preconditioner = DiagonalPreconditioner<typename _MatrixType::Scalar> >
+class ConjugateGradient;
+
+namespace internal {
+
+template< typename _MatrixType, int _UpLo, typename _Preconditioner>
+struct traits<ConjugateGradient<_MatrixType,_UpLo,_Preconditioner> >
+{
+ typedef _MatrixType MatrixType;
+ typedef _Preconditioner Preconditioner;
+};
+
+}
+
+/** \ingroup IterativeLinearSolvers_Module
+ * \brief A conjugate gradient solver for sparse (or dense) self-adjoint problems
+ *
+ * This class allows to solve for A.x = b linear problems using an iterative conjugate gradient algorithm.
+ * The matrix A must be selfadjoint. The matrix A and the vectors x and b can be either dense or sparse.
+ *
+ * \tparam _MatrixType the type of the matrix A, can be a dense or a sparse matrix.
+ * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower,
+ * \c Upper, or \c Lower|Upper in which the full matrix entries will be considered.
+ * Default is \c Lower, best performance is \c Lower|Upper.
+ * \tparam _Preconditioner the type of the preconditioner. Default is DiagonalPreconditioner
+ *
+ * \implsparsesolverconcept
+ *
+ * The maximal number of iterations and tolerance value can be controlled via the setMaxIterations()
+ * and setTolerance() methods. The defaults are the size of the problem for the maximal number of iterations
+ * and NumTraits<Scalar>::epsilon() for the tolerance.
+ *
+ * The tolerance corresponds to the relative residual error: |Ax-b|/|b|
+ *
+ * \b Performance: Even though the default value of \c _UpLo is \c Lower, significantly higher performance is
+ * achieved when using a complete matrix and \b Lower|Upper as the \a _UpLo template parameter. Moreover, in this
+ * case multi-threading can be exploited if the user code is compiled with OpenMP enabled.
+ * See \ref TopicMultiThreading for details.
+ *
+ * This class can be used as the direct solver classes. Here is a typical usage example:
+ \code
+ int n = 10000;
+ VectorXd x(n), b(n);
+ SparseMatrix<double> A(n,n);
+ // fill A and b
+ ConjugateGradient<SparseMatrix<double>, Lower|Upper> cg;
+ cg.compute(A);
+ x = cg.solve(b);
+ std::cout << "#iterations: " << cg.iterations() << std::endl;
+ std::cout << "estimated error: " << cg.error() << std::endl;
+ // update b, and solve again
+ x = cg.solve(b);
+ \endcode
+ *
+ * By default the iterations start with x=0 as an initial guess of the solution.
+ * One can control the start using the solveWithGuess() method.
+ *
+ * ConjugateGradient can also be used in a matrix-free context, see the following \link MatrixfreeSolverExample example \endlink.
+ *
+ * \sa class LeastSquaresConjugateGradient, class SimplicialCholesky, DiagonalPreconditioner, IdentityPreconditioner
+ */
+template< typename _MatrixType, int _UpLo, typename _Preconditioner>
+class ConjugateGradient : public IterativeSolverBase<ConjugateGradient<_MatrixType,_UpLo,_Preconditioner> >
+{
+ typedef IterativeSolverBase<ConjugateGradient> Base;
+ using Base::matrix;
+ using Base::m_error;
+ using Base::m_iterations;
+ using Base::m_info;
+ using Base::m_isInitialized;
+public:
+ typedef _MatrixType MatrixType;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ typedef _Preconditioner Preconditioner;
+
+ enum {
+ UpLo = _UpLo
+ };
+
+public:
+
+ /** Default constructor. */
+ ConjugateGradient() : Base() {}
+
+ /** Initialize the solver with matrix \a A for further \c Ax=b solving.
+ *
+ * This constructor is a shortcut for the default constructor followed
+ * by a call to compute().
+ *
+ * \warning this class stores a reference to the matrix A as well as some
+ * precomputed values that depend on it. Therefore, if \a A is changed
+ * this class becomes invalid. Call compute() to update it with the new
+ * matrix A, or modify a copy of A.
+ */
+ template<typename MatrixDerived>
+ explicit ConjugateGradient(const EigenBase<MatrixDerived>& A) : Base(A.derived()) {}
+
+ ~ConjugateGradient() {}
+
+ /** \internal */
+ template<typename Rhs,typename Dest>
+ void _solve_with_guess_impl(const Rhs& b, Dest& x) const
+ {
+ typedef typename Base::MatrixWrapper MatrixWrapper;
+ typedef typename Base::ActualMatrixType ActualMatrixType;
+ enum {
+ TransposeInput = (!MatrixWrapper::MatrixFree)
+ && (UpLo==(Lower|Upper))
+ && (!MatrixType::IsRowMajor)
+ && (!NumTraits<Scalar>::IsComplex)
+ };
+ typedef typename internal::conditional<TransposeInput,Transpose<const ActualMatrixType>, ActualMatrixType const&>::type RowMajorWrapper;
+ EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(MatrixWrapper::MatrixFree,UpLo==(Lower|Upper)),MATRIX_FREE_CONJUGATE_GRADIENT_IS_COMPATIBLE_WITH_UPPER_UNION_LOWER_MODE_ONLY);
+ typedef typename internal::conditional<UpLo==(Lower|Upper),
+ RowMajorWrapper,
+ typename MatrixWrapper::template ConstSelfAdjointViewReturnType<UpLo>::Type
+ >::type SelfAdjointWrapper;
+ m_iterations = Base::maxIterations();
+ m_error = Base::m_tolerance;
+
+ for(Index j=0; j<b.cols(); ++j)
+ {
+ m_iterations = Base::maxIterations();
+ m_error = Base::m_tolerance;
+
+ typename Dest::ColXpr xj(x,j);
+ RowMajorWrapper row_mat(matrix());
+ internal::conjugate_gradient(SelfAdjointWrapper(row_mat), b.col(j), xj, Base::m_preconditioner, m_iterations, m_error);
+ }
+
+ m_isInitialized = true;
+ m_info = m_error <= Base::m_tolerance ? Success : NoConvergence;
+ }
+
+ /** \internal */
+ using Base::_solve_impl;
+ template<typename Rhs,typename Dest>
+ void _solve_impl(const MatrixBase<Rhs>& b, Dest& x) const
+ {
+ x.setZero();
+ _solve_with_guess_impl(b.derived(),x);
+ }
+
+protected:
+
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_CONJUGATE_GRADIENT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h b/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h
new file mode 100644
index 000000000..e45c272b4
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h
@@ -0,0 +1,400 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_INCOMPLETE_CHOlESKY_H
+#define EIGEN_INCOMPLETE_CHOlESKY_H
+
+#include <vector>
+#include <list>
+
+namespace Eigen {
+/**
+ * \brief Modified Incomplete Cholesky with dual threshold
+ *
+ * References : C-J. Lin and J. J. Moré, Incomplete Cholesky Factorizations with
+ * Limited memory, SIAM J. Sci. Comput. 21(1), pp. 24-45, 1999
+ *
+ * \tparam Scalar the scalar type of the input matrices
+ * \tparam _UpLo The triangular part that will be used for the computations. It can be Lower
+ * or Upper. Default is Lower.
+ * \tparam _OrderingType The ordering method to use, either AMDOrdering<> or NaturalOrdering<>. Default is AMDOrdering<int>,
+ * unless EIGEN_MPL2_ONLY is defined, in which case the default is NaturalOrdering<int>.
+ *
+ * \implsparsesolverconcept
+ *
+ * It performs the following incomplete factorization: \f$ S P A P' S \approx L L' \f$
+ * where L is a lower triangular factor, S is a diagonal scaling matrix, and P is a
+ * fill-in reducing permutation as computed by the ordering method.
+ *
+ * \b Shifting \b strategy: Let \f$ B = S P A P' S \f$ be the scaled matrix on which the factorization is carried out,
+ * and \f$ \beta \f$ be the minimum value of the diagonal. If \f$ \beta > 0 \f$ then, the factorization is directly performed
+ * on the matrix B. Otherwise, the factorization is performed on the shifted matrix \f$ B + (\sigma+|\beta| I \f$ where
+ * \f$ \sigma \f$ is the initial shift value as returned and set by setInitialShift() method. The default value is \f$ \sigma = 10^{-3} \f$.
+ * If the factorization fails, then the shift in doubled until it succeed or a maximum of ten attempts. If it still fails, as returned by
+ * the info() method, then you can either increase the initial shift, or better use another preconditioning technique.
+ *
+ */
+template <typename Scalar, int _UpLo = Lower, typename _OrderingType =
+#ifndef EIGEN_MPL2_ONLY
+AMDOrdering<int>
+#else
+NaturalOrdering<int>
+#endif
+>
+class IncompleteCholesky : public SparseSolverBase<IncompleteCholesky<Scalar,_UpLo,_OrderingType> >
+{
+ protected:
+ typedef SparseSolverBase<IncompleteCholesky<Scalar,_UpLo,_OrderingType> > Base;
+ using Base::m_isInitialized;
+ public:
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ typedef _OrderingType OrderingType;
+ typedef typename OrderingType::PermutationType PermutationType;
+ typedef typename PermutationType::StorageIndex StorageIndex;
+ typedef SparseMatrix<Scalar,ColMajor,StorageIndex> FactorType;
+ typedef Matrix<Scalar,Dynamic,1> VectorSx;
+ typedef Matrix<RealScalar,Dynamic,1> VectorRx;
+ typedef Matrix<StorageIndex,Dynamic, 1> VectorIx;
+ typedef std::vector<std::list<StorageIndex> > VectorList;
+ enum { UpLo = _UpLo };
+ enum {
+ ColsAtCompileTime = Dynamic,
+ MaxColsAtCompileTime = Dynamic
+ };
+ public:
+
+ /** Default constructor leaving the object in a partly non-initialized stage.
+ *
+ * You must call compute() or the pair analyzePattern()/factorize() to make it valid.
+ *
+ * \sa IncompleteCholesky(const MatrixType&)
+ */
+ IncompleteCholesky() : m_initialShift(1e-3),m_factorizationIsOk(false) {}
+
+ /** Constructor computing the incomplete factorization for the given matrix \a matrix.
+ */
+ template<typename MatrixType>
+ IncompleteCholesky(const MatrixType& matrix) : m_initialShift(1e-3),m_factorizationIsOk(false)
+ {
+ compute(matrix);
+ }
+
+ /** \returns number of rows of the factored matrix */
+ Index rows() const { return m_L.rows(); }
+
+ /** \returns number of columns of the factored matrix */
+ Index cols() const { return m_L.cols(); }
+
+
+ /** \brief Reports whether previous computation was successful.
+ *
+ * It triggers an assertion if \c *this has not been initialized through the respective constructor,
+ * or a call to compute() or analyzePattern().
+ *
+ * \returns \c Success if computation was successful,
+ * \c NumericalIssue if the matrix appears to be negative.
+ */
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "IncompleteCholesky is not initialized.");
+ return m_info;
+ }
+
+ /** \brief Set the initial shift parameter \f$ \sigma \f$.
+ */
+ void setInitialShift(RealScalar shift) { m_initialShift = shift; }
+
+ /** \brief Computes the fill reducing permutation vector using the sparsity pattern of \a mat
+ */
+ template<typename MatrixType>
+ void analyzePattern(const MatrixType& mat)
+ {
+ OrderingType ord;
+ PermutationType pinv;
+ ord(mat.template selfadjointView<UpLo>(), pinv);
+ if(pinv.size()>0) m_perm = pinv.inverse();
+ else m_perm.resize(0);
+ m_L.resize(mat.rows(), mat.cols());
+ m_analysisIsOk = true;
+ m_isInitialized = true;
+ m_info = Success;
+ }
+
+ /** \brief Performs the numerical factorization of the input matrix \a mat
+ *
+ * The method analyzePattern() or compute() must have been called beforehand
+ * with a matrix having the same pattern.
+ *
+ * \sa compute(), analyzePattern()
+ */
+ template<typename MatrixType>
+ void factorize(const MatrixType& mat);
+
+ /** Computes or re-computes the incomplete Cholesky factorization of the input matrix \a mat
+ *
+ * It is a shortcut for a sequential call to the analyzePattern() and factorize() methods.
+ *
+ * \sa analyzePattern(), factorize()
+ */
+ template<typename MatrixType>
+ void compute(const MatrixType& mat)
+ {
+ analyzePattern(mat);
+ factorize(mat);
+ }
+
+ // internal
+ template<typename Rhs, typename Dest>
+ void _solve_impl(const Rhs& b, Dest& x) const
+ {
+ eigen_assert(m_factorizationIsOk && "factorize() should be called first");
+ if (m_perm.rows() == b.rows()) x = m_perm * b;
+ else x = b;
+ x = m_scale.asDiagonal() * x;
+ x = m_L.template triangularView<Lower>().solve(x);
+ x = m_L.adjoint().template triangularView<Upper>().solve(x);
+ x = m_scale.asDiagonal() * x;
+ if (m_perm.rows() == b.rows())
+ x = m_perm.inverse() * x;
+ }
+
+ /** \returns the sparse lower triangular factor L */
+ const FactorType& matrixL() const { eigen_assert("m_factorizationIsOk"); return m_L; }
+
+ /** \returns a vector representing the scaling factor S */
+ const VectorRx& scalingS() const { eigen_assert("m_factorizationIsOk"); return m_scale; }
+
+ /** \returns the fill-in reducing permutation P (can be empty for a natural ordering) */
+ const PermutationType& permutationP() const { eigen_assert("m_analysisIsOk"); return m_perm; }
+
+ protected:
+ FactorType m_L; // The lower part stored in CSC
+ VectorRx m_scale; // The vector for scaling the matrix
+ RealScalar m_initialShift; // The initial shift parameter
+ bool m_analysisIsOk;
+ bool m_factorizationIsOk;
+ ComputationInfo m_info;
+ PermutationType m_perm;
+
+ private:
+ inline void updateList(Ref<const VectorIx> colPtr, Ref<VectorIx> rowIdx, Ref<VectorSx> vals, const Index& col, const Index& jk, VectorIx& firstElt, VectorList& listCol);
+};
+
+// Based on the following paper:
+// C-J. Lin and J. J. Moré, Incomplete Cholesky Factorizations with
+// Limited memory, SIAM J. Sci. Comput. 21(1), pp. 24-45, 1999
+// http://ftp.mcs.anl.gov/pub/tech_reports/reports/P682.pdf
+template<typename Scalar, int _UpLo, typename OrderingType>
+template<typename _MatrixType>
+void IncompleteCholesky<Scalar,_UpLo, OrderingType>::factorize(const _MatrixType& mat)
+{
+ using std::sqrt;
+ eigen_assert(m_analysisIsOk && "analyzePattern() should be called first");
+
+ // Dropping strategy : Keep only the p largest elements per column, where p is the number of elements in the column of the original matrix. Other strategies will be added
+
+ // Apply the fill-reducing permutation computed in analyzePattern()
+ if (m_perm.rows() == mat.rows() ) // To detect the null permutation
+ {
+ // The temporary is needed to make sure that the diagonal entry is properly sorted
+ FactorType tmp(mat.rows(), mat.cols());
+ tmp = mat.template selfadjointView<_UpLo>().twistedBy(m_perm);
+ m_L.template selfadjointView<Lower>() = tmp.template selfadjointView<Lower>();
+ }
+ else
+ {
+ m_L.template selfadjointView<Lower>() = mat.template selfadjointView<_UpLo>();
+ }
+
+ Index n = m_L.cols();
+ Index nnz = m_L.nonZeros();
+ Map<VectorSx> vals(m_L.valuePtr(), nnz); //values
+ Map<VectorIx> rowIdx(m_L.innerIndexPtr(), nnz); //Row indices
+ Map<VectorIx> colPtr( m_L.outerIndexPtr(), n+1); // Pointer to the beginning of each row
+ VectorIx firstElt(n-1); // for each j, points to the next entry in vals that will be used in the factorization
+ VectorList listCol(n); // listCol(j) is a linked list of columns to update column j
+ VectorSx col_vals(n); // Store a nonzero values in each column
+ VectorIx col_irow(n); // Row indices of nonzero elements in each column
+ VectorIx col_pattern(n);
+ col_pattern.fill(-1);
+ StorageIndex col_nnz;
+
+
+ // Computes the scaling factors
+ m_scale.resize(n);
+ m_scale.setZero();
+ for (Index j = 0; j < n; j++)
+ for (Index k = colPtr[j]; k < colPtr[j+1]; k++)
+ {
+ m_scale(j) += numext::abs2(vals(k));
+ if(rowIdx[k]!=j)
+ m_scale(rowIdx[k]) += numext::abs2(vals(k));
+ }
+
+ m_scale = m_scale.cwiseSqrt().cwiseSqrt();
+
+ for (Index j = 0; j < n; ++j)
+ if(m_scale(j)>(std::numeric_limits<RealScalar>::min)())
+ m_scale(j) = RealScalar(1)/m_scale(j);
+ else
+ m_scale(j) = 1;
+
+ // TODO disable scaling if not needed, i.e., if it is roughly uniform? (this will make solve() faster)
+
+ // Scale and compute the shift for the matrix
+ RealScalar mindiag = NumTraits<RealScalar>::highest();
+ for (Index j = 0; j < n; j++)
+ {
+ for (Index k = colPtr[j]; k < colPtr[j+1]; k++)
+ vals[k] *= (m_scale(j)*m_scale(rowIdx[k]));
+ eigen_internal_assert(rowIdx[colPtr[j]]==j && "IncompleteCholesky: only the lower triangular part must be stored");
+ mindiag = numext::mini(numext::real(vals[colPtr[j]]), mindiag);
+ }
+
+ FactorType L_save = m_L;
+
+ RealScalar shift = 0;
+ if(mindiag <= RealScalar(0.))
+ shift = m_initialShift - mindiag;
+
+ m_info = NumericalIssue;
+
+ // Try to perform the incomplete factorization using the current shift
+ int iter = 0;
+ do
+ {
+ // Apply the shift to the diagonal elements of the matrix
+ for (Index j = 0; j < n; j++)
+ vals[colPtr[j]] += shift;
+
+ // jki version of the Cholesky factorization
+ Index j=0;
+ for (; j < n; ++j)
+ {
+ // Left-looking factorization of the j-th column
+ // First, load the j-th column into col_vals
+ Scalar diag = vals[colPtr[j]]; // It is assumed that only the lower part is stored
+ col_nnz = 0;
+ for (Index i = colPtr[j] + 1; i < colPtr[j+1]; i++)
+ {
+ StorageIndex l = rowIdx[i];
+ col_vals(col_nnz) = vals[i];
+ col_irow(col_nnz) = l;
+ col_pattern(l) = col_nnz;
+ col_nnz++;
+ }
+ {
+ typename std::list<StorageIndex>::iterator k;
+ // Browse all previous columns that will update column j
+ for(k = listCol[j].begin(); k != listCol[j].end(); k++)
+ {
+ Index jk = firstElt(*k); // First element to use in the column
+ eigen_internal_assert(rowIdx[jk]==j);
+ Scalar v_j_jk = numext::conj(vals[jk]);
+
+ jk += 1;
+ for (Index i = jk; i < colPtr[*k+1]; i++)
+ {
+ StorageIndex l = rowIdx[i];
+ if(col_pattern[l]<0)
+ {
+ col_vals(col_nnz) = vals[i] * v_j_jk;
+ col_irow[col_nnz] = l;
+ col_pattern(l) = col_nnz;
+ col_nnz++;
+ }
+ else
+ col_vals(col_pattern[l]) -= vals[i] * v_j_jk;
+ }
+ updateList(colPtr,rowIdx,vals, *k, jk, firstElt, listCol);
+ }
+ }
+
+ // Scale the current column
+ if(numext::real(diag) <= 0)
+ {
+ if(++iter>=10)
+ return;
+
+ // increase shift
+ shift = numext::maxi(m_initialShift,RealScalar(2)*shift);
+ // restore m_L, col_pattern, and listCol
+ vals = Map<const VectorSx>(L_save.valuePtr(), nnz);
+ rowIdx = Map<const VectorIx>(L_save.innerIndexPtr(), nnz);
+ colPtr = Map<const VectorIx>(L_save.outerIndexPtr(), n+1);
+ col_pattern.fill(-1);
+ for(Index i=0; i<n; ++i)
+ listCol[i].clear();
+
+ break;
+ }
+
+ RealScalar rdiag = sqrt(numext::real(diag));
+ vals[colPtr[j]] = rdiag;
+ for (Index k = 0; k<col_nnz; ++k)
+ {
+ Index i = col_irow[k];
+ //Scale
+ col_vals(k) /= rdiag;
+ //Update the remaining diagonals with col_vals
+ vals[colPtr[i]] -= numext::abs2(col_vals(k));
+ }
+ // Select the largest p elements
+ // p is the original number of elements in the column (without the diagonal)
+ Index p = colPtr[j+1] - colPtr[j] - 1 ;
+ Ref<VectorSx> cvals = col_vals.head(col_nnz);
+ Ref<VectorIx> cirow = col_irow.head(col_nnz);
+ internal::QuickSplit(cvals,cirow, p);
+ // Insert the largest p elements in the matrix
+ Index cpt = 0;
+ for (Index i = colPtr[j]+1; i < colPtr[j+1]; i++)
+ {
+ vals[i] = col_vals(cpt);
+ rowIdx[i] = col_irow(cpt);
+ // restore col_pattern:
+ col_pattern(col_irow(cpt)) = -1;
+ cpt++;
+ }
+ // Get the first smallest row index and put it after the diagonal element
+ Index jk = colPtr(j)+1;
+ updateList(colPtr,rowIdx,vals,j,jk,firstElt,listCol);
+ }
+
+ if(j==n)
+ {
+ m_factorizationIsOk = true;
+ m_info = Success;
+ }
+ } while(m_info!=Success);
+}
+
+template<typename Scalar, int _UpLo, typename OrderingType>
+inline void IncompleteCholesky<Scalar,_UpLo, OrderingType>::updateList(Ref<const VectorIx> colPtr, Ref<VectorIx> rowIdx, Ref<VectorSx> vals, const Index& col, const Index& jk, VectorIx& firstElt, VectorList& listCol)
+{
+ if (jk < colPtr(col+1) )
+ {
+ Index p = colPtr(col+1) - jk;
+ Index minpos;
+ rowIdx.segment(jk,p).minCoeff(&minpos);
+ minpos += jk;
+ if (rowIdx(minpos) != rowIdx(jk))
+ {
+ //Swap
+ std::swap(rowIdx(jk),rowIdx(minpos));
+ std::swap(vals(jk),vals(minpos));
+ }
+ firstElt(col) = internal::convert_index<StorageIndex,Index>(jk);
+ listCol[rowIdx(jk)].push_back(internal::convert_index<StorageIndex,Index>(col));
+ }
+}
+
+} // end namespace Eigen
+
+#endif
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h b/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
new file mode 100644
index 000000000..338e6f10a
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
@@ -0,0 +1,462 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_INCOMPLETE_LUT_H
+#define EIGEN_INCOMPLETE_LUT_H
+
+
+namespace Eigen {
+
+namespace internal {
+
+/** \internal
+ * Compute a quick-sort split of a vector
+ * On output, the vector row is permuted such that its elements satisfy
+ * abs(row(i)) >= abs(row(ncut)) if i<ncut
+ * abs(row(i)) <= abs(row(ncut)) if i>ncut
+ * \param row The vector of values
+ * \param ind The array of index for the elements in @p row
+ * \param ncut The number of largest elements to keep
+ **/
+template <typename VectorV, typename VectorI>
+Index QuickSplit(VectorV &row, VectorI &ind, Index ncut)
+{
+ typedef typename VectorV::RealScalar RealScalar;
+ using std::swap;
+ using std::abs;
+ Index mid;
+ Index n = row.size(); /* length of the vector */
+ Index first, last ;
+
+ ncut--; /* to fit the zero-based indices */
+ first = 0;
+ last = n-1;
+ if (ncut < first || ncut > last ) return 0;
+
+ do {
+ mid = first;
+ RealScalar abskey = abs(row(mid));
+ for (Index j = first + 1; j <= last; j++) {
+ if ( abs(row(j)) > abskey) {
+ ++mid;
+ swap(row(mid), row(j));
+ swap(ind(mid), ind(j));
+ }
+ }
+ /* Interchange for the pivot element */
+ swap(row(mid), row(first));
+ swap(ind(mid), ind(first));
+
+ if (mid > ncut) last = mid - 1;
+ else if (mid < ncut ) first = mid + 1;
+ } while (mid != ncut );
+
+ return 0; /* mid is equal to ncut */
+}
+
+}// end namespace internal
+
+/** \ingroup IterativeLinearSolvers_Module
+ * \class IncompleteLUT
+ * \brief Incomplete LU factorization with dual-threshold strategy
+ *
+ * \implsparsesolverconcept
+ *
+ * During the numerical factorization, two dropping rules are used :
+ * 1) any element whose magnitude is less than some tolerance is dropped.
+ * This tolerance is obtained by multiplying the input tolerance @p droptol
+ * by the average magnitude of all the original elements in the current row.
+ * 2) After the elimination of the row, only the @p fill largest elements in
+ * the L part and the @p fill largest elements in the U part are kept
+ * (in addition to the diagonal element ). Note that @p fill is computed from
+ * the input parameter @p fillfactor which is used the ratio to control the fill_in
+ * relatively to the initial number of nonzero elements.
+ *
+ * The two extreme cases are when @p droptol=0 (to keep all the @p fill*2 largest elements)
+ * and when @p fill=n/2 with @p droptol being different to zero.
+ *
+ * References : Yousef Saad, ILUT: A dual threshold incomplete LU factorization,
+ * Numerical Linear Algebra with Applications, 1(4), pp 387-402, 1994.
+ *
+ * NOTE : The following implementation is derived from the ILUT implementation
+ * in the SPARSKIT package, Copyright (C) 2005, the Regents of the University of Minnesota
+ * released under the terms of the GNU LGPL:
+ * http://www-users.cs.umn.edu/~saad/software/SPARSKIT/README
+ * However, Yousef Saad gave us permission to relicense his ILUT code to MPL2.
+ * See the Eigen mailing list archive, thread: ILUT, date: July 8, 2012:
+ * http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2012/07/msg00064.html
+ * alternatively, on GMANE:
+ * http://comments.gmane.org/gmane.comp.lib.eigen/3302
+ */
+template <typename _Scalar, typename _StorageIndex = int>
+class IncompleteLUT : public SparseSolverBase<IncompleteLUT<_Scalar, _StorageIndex> >
+{
+ protected:
+ typedef SparseSolverBase<IncompleteLUT> Base;
+ using Base::m_isInitialized;
+ public:
+ typedef _Scalar Scalar;
+ typedef _StorageIndex StorageIndex;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ typedef Matrix<Scalar,Dynamic,1> Vector;
+ typedef Matrix<StorageIndex,Dynamic,1> VectorI;
+ typedef SparseMatrix<Scalar,RowMajor,StorageIndex> FactorType;
+
+ enum {
+ ColsAtCompileTime = Dynamic,
+ MaxColsAtCompileTime = Dynamic
+ };
+
+ public:
+
+ IncompleteLUT()
+ : m_droptol(NumTraits<Scalar>::dummy_precision()), m_fillfactor(10),
+ m_analysisIsOk(false), m_factorizationIsOk(false)
+ {}
+
+ template<typename MatrixType>
+ explicit IncompleteLUT(const MatrixType& mat, const RealScalar& droptol=NumTraits<Scalar>::dummy_precision(), int fillfactor = 10)
+ : m_droptol(droptol),m_fillfactor(fillfactor),
+ m_analysisIsOk(false),m_factorizationIsOk(false)
+ {
+ eigen_assert(fillfactor != 0);
+ compute(mat);
+ }
+
+ Index rows() const { return m_lu.rows(); }
+
+ Index cols() const { return m_lu.cols(); }
+
+ /** \brief Reports whether previous computation was successful.
+ *
+ * \returns \c Success if computation was succesful,
+ * \c NumericalIssue if the matrix.appears to be negative.
+ */
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "IncompleteLUT is not initialized.");
+ return m_info;
+ }
+
+ template<typename MatrixType>
+ void analyzePattern(const MatrixType& amat);
+
+ template<typename MatrixType>
+ void factorize(const MatrixType& amat);
+
+ /**
+ * Compute an incomplete LU factorization with dual threshold on the matrix mat
+ * No pivoting is done in this version
+ *
+ **/
+ template<typename MatrixType>
+ IncompleteLUT& compute(const MatrixType& amat)
+ {
+ analyzePattern(amat);
+ factorize(amat);
+ return *this;
+ }
+
+ void setDroptol(const RealScalar& droptol);
+ void setFillfactor(int fillfactor);
+
+ template<typename Rhs, typename Dest>
+ void _solve_impl(const Rhs& b, Dest& x) const
+ {
+ x = m_Pinv * b;
+ x = m_lu.template triangularView<UnitLower>().solve(x);
+ x = m_lu.template triangularView<Upper>().solve(x);
+ x = m_P * x;
+ }
+
+protected:
+
+ /** keeps off-diagonal entries; drops diagonal entries */
+ struct keep_diag {
+ inline bool operator() (const Index& row, const Index& col, const Scalar&) const
+ {
+ return row!=col;
+ }
+ };
+
+protected:
+
+ FactorType m_lu;
+ RealScalar m_droptol;
+ int m_fillfactor;
+ bool m_analysisIsOk;
+ bool m_factorizationIsOk;
+ ComputationInfo m_info;
+ PermutationMatrix<Dynamic,Dynamic,StorageIndex> m_P; // Fill-reducing permutation
+ PermutationMatrix<Dynamic,Dynamic,StorageIndex> m_Pinv; // Inverse permutation
+};
+
+/**
+ * Set control parameter droptol
+ * \param droptol Drop any element whose magnitude is less than this tolerance
+ **/
+template<typename Scalar, typename StorageIndex>
+void IncompleteLUT<Scalar,StorageIndex>::setDroptol(const RealScalar& droptol)
+{
+ this->m_droptol = droptol;
+}
+
+/**
+ * Set control parameter fillfactor
+ * \param fillfactor This is used to compute the number @p fill_in of largest elements to keep on each row.
+ **/
+template<typename Scalar, typename StorageIndex>
+void IncompleteLUT<Scalar,StorageIndex>::setFillfactor(int fillfactor)
+{
+ this->m_fillfactor = fillfactor;
+}
+
+template <typename Scalar, typename StorageIndex>
+template<typename _MatrixType>
+void IncompleteLUT<Scalar,StorageIndex>::analyzePattern(const _MatrixType& amat)
+{
+ // Compute the Fill-reducing permutation
+ // Since ILUT does not perform any numerical pivoting,
+ // it is highly preferable to keep the diagonal through symmetric permutations.
+#ifndef EIGEN_MPL2_ONLY
+ // To this end, let's symmetrize the pattern and perform AMD on it.
+ SparseMatrix<Scalar,ColMajor, StorageIndex> mat1 = amat;
+ SparseMatrix<Scalar,ColMajor, StorageIndex> mat2 = amat.transpose();
+ // FIXME for a matrix with nearly symmetric pattern, mat2+mat1 is the appropriate choice.
+ // on the other hand for a really non-symmetric pattern, mat2*mat1 should be prefered...
+ SparseMatrix<Scalar,ColMajor, StorageIndex> AtA = mat2 + mat1;
+ AMDOrdering<StorageIndex> ordering;
+ ordering(AtA,m_P);
+ m_Pinv = m_P.inverse(); // cache the inverse permutation
+#else
+ // If AMD is not available, (MPL2-only), then let's use the slower COLAMD routine.
+ SparseMatrix<Scalar,ColMajor, StorageIndex> mat1 = amat;
+ COLAMDOrdering<StorageIndex> ordering;
+ ordering(mat1,m_Pinv);
+ m_P = m_Pinv.inverse();
+#endif
+
+ m_analysisIsOk = true;
+ m_factorizationIsOk = false;
+ m_isInitialized = true;
+}
+
+template <typename Scalar, typename StorageIndex>
+template<typename _MatrixType>
+void IncompleteLUT<Scalar,StorageIndex>::factorize(const _MatrixType& amat)
+{
+ using std::sqrt;
+ using std::swap;
+ using std::abs;
+ using internal::convert_index;
+
+ eigen_assert((amat.rows() == amat.cols()) && "The factorization should be done on a square matrix");
+ Index n = amat.cols(); // Size of the matrix
+ m_lu.resize(n,n);
+ // Declare Working vectors and variables
+ Vector u(n) ; // real values of the row -- maximum size is n --
+ VectorI ju(n); // column position of the values in u -- maximum size is n
+ VectorI jr(n); // Indicate the position of the nonzero elements in the vector u -- A zero location is indicated by -1
+
+ // Apply the fill-reducing permutation
+ eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
+ SparseMatrix<Scalar,RowMajor, StorageIndex> mat;
+ mat = amat.twistedBy(m_Pinv);
+
+ // Initialization
+ jr.fill(-1);
+ ju.fill(0);
+ u.fill(0);
+
+ // number of largest elements to keep in each row:
+ Index fill_in = (amat.nonZeros()*m_fillfactor)/n + 1;
+ if (fill_in > n) fill_in = n;
+
+ // number of largest nonzero elements to keep in the L and the U part of the current row:
+ Index nnzL = fill_in/2;
+ Index nnzU = nnzL;
+ m_lu.reserve(n * (nnzL + nnzU + 1));
+
+ // global loop over the rows of the sparse matrix
+ for (Index ii = 0; ii < n; ii++)
+ {
+ // 1 - copy the lower and the upper part of the row i of mat in the working vector u
+
+ Index sizeu = 1; // number of nonzero elements in the upper part of the current row
+ Index sizel = 0; // number of nonzero elements in the lower part of the current row
+ ju(ii) = convert_index<StorageIndex>(ii);
+ u(ii) = 0;
+ jr(ii) = convert_index<StorageIndex>(ii);
+ RealScalar rownorm = 0;
+
+ typename FactorType::InnerIterator j_it(mat, ii); // Iterate through the current row ii
+ for (; j_it; ++j_it)
+ {
+ Index k = j_it.index();
+ if (k < ii)
+ {
+ // copy the lower part
+ ju(sizel) = convert_index<StorageIndex>(k);
+ u(sizel) = j_it.value();
+ jr(k) = convert_index<StorageIndex>(sizel);
+ ++sizel;
+ }
+ else if (k == ii)
+ {
+ u(ii) = j_it.value();
+ }
+ else
+ {
+ // copy the upper part
+ Index jpos = ii + sizeu;
+ ju(jpos) = convert_index<StorageIndex>(k);
+ u(jpos) = j_it.value();
+ jr(k) = convert_index<StorageIndex>(jpos);
+ ++sizeu;
+ }
+ rownorm += numext::abs2(j_it.value());
+ }
+
+ // 2 - detect possible zero row
+ if(rownorm==0)
+ {
+ m_info = NumericalIssue;
+ return;
+ }
+ // Take the 2-norm of the current row as a relative tolerance
+ rownorm = sqrt(rownorm);
+
+ // 3 - eliminate the previous nonzero rows
+ Index jj = 0;
+ Index len = 0;
+ while (jj < sizel)
+ {
+ // In order to eliminate in the correct order,
+ // we must select first the smallest column index among ju(jj:sizel)
+ Index k;
+ Index minrow = ju.segment(jj,sizel-jj).minCoeff(&k); // k is relative to the segment
+ k += jj;
+ if (minrow != ju(jj))
+ {
+ // swap the two locations
+ Index j = ju(jj);
+ swap(ju(jj), ju(k));
+ jr(minrow) = convert_index<StorageIndex>(jj);
+ jr(j) = convert_index<StorageIndex>(k);
+ swap(u(jj), u(k));
+ }
+ // Reset this location
+ jr(minrow) = -1;
+
+ // Start elimination
+ typename FactorType::InnerIterator ki_it(m_lu, minrow);
+ while (ki_it && ki_it.index() < minrow) ++ki_it;
+ eigen_internal_assert(ki_it && ki_it.col()==minrow);
+ Scalar fact = u(jj) / ki_it.value();
+
+ // drop too small elements
+ if(abs(fact) <= m_droptol)
+ {
+ jj++;
+ continue;
+ }
+
+ // linear combination of the current row ii and the row minrow
+ ++ki_it;
+ for (; ki_it; ++ki_it)
+ {
+ Scalar prod = fact * ki_it.value();
+ Index j = ki_it.index();
+ Index jpos = jr(j);
+ if (jpos == -1) // fill-in element
+ {
+ Index newpos;
+ if (j >= ii) // dealing with the upper part
+ {
+ newpos = ii + sizeu;
+ sizeu++;
+ eigen_internal_assert(sizeu<=n);
+ }
+ else // dealing with the lower part
+ {
+ newpos = sizel;
+ sizel++;
+ eigen_internal_assert(sizel<=ii);
+ }
+ ju(newpos) = convert_index<StorageIndex>(j);
+ u(newpos) = -prod;
+ jr(j) = convert_index<StorageIndex>(newpos);
+ }
+ else
+ u(jpos) -= prod;
+ }
+ // store the pivot element
+ u(len) = fact;
+ ju(len) = convert_index<StorageIndex>(minrow);
+ ++len;
+
+ jj++;
+ } // end of the elimination on the row ii
+
+ // reset the upper part of the pointer jr to zero
+ for(Index k = 0; k <sizeu; k++) jr(ju(ii+k)) = -1;
+
+ // 4 - partially sort and insert the elements in the m_lu matrix
+
+ // sort the L-part of the row
+ sizel = len;
+ len = (std::min)(sizel, nnzL);
+ typename Vector::SegmentReturnType ul(u.segment(0, sizel));
+ typename VectorI::SegmentReturnType jul(ju.segment(0, sizel));
+ internal::QuickSplit(ul, jul, len);
+
+ // store the largest m_fill elements of the L part
+ m_lu.startVec(ii);
+ for(Index k = 0; k < len; k++)
+ m_lu.insertBackByOuterInnerUnordered(ii,ju(k)) = u(k);
+
+ // store the diagonal element
+ // apply a shifting rule to avoid zero pivots (we are doing an incomplete factorization)
+ if (u(ii) == Scalar(0))
+ u(ii) = sqrt(m_droptol) * rownorm;
+ m_lu.insertBackByOuterInnerUnordered(ii, ii) = u(ii);
+
+ // sort the U-part of the row
+ // apply the dropping rule first
+ len = 0;
+ for(Index k = 1; k < sizeu; k++)
+ {
+ if(abs(u(ii+k)) > m_droptol * rownorm )
+ {
+ ++len;
+ u(ii + len) = u(ii + k);
+ ju(ii + len) = ju(ii + k);
+ }
+ }
+ sizeu = len + 1; // +1 to take into account the diagonal element
+ len = (std::min)(sizeu, nnzU);
+ typename Vector::SegmentReturnType uu(u.segment(ii+1, sizeu-1));
+ typename VectorI::SegmentReturnType juu(ju.segment(ii+1, sizeu-1));
+ internal::QuickSplit(uu, juu, len);
+
+ // store the largest elements of the U part
+ for(Index k = ii + 1; k < ii + len; k++)
+ m_lu.insertBackByOuterInnerUnordered(ii,ju(k)) = u(k);
+ }
+ m_lu.finalize();
+ m_lu.makeCompressed();
+
+ m_factorizationIsOk = true;
+ m_info = Success;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_INCOMPLETE_LUT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h b/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
new file mode 100644
index 000000000..7c2326eb7
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
@@ -0,0 +1,394 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ITERATIVE_SOLVER_BASE_H
+#define EIGEN_ITERATIVE_SOLVER_BASE_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename MatrixType>
+struct is_ref_compatible_impl
+{
+private:
+ template <typename T0>
+ struct any_conversion
+ {
+ template <typename T> any_conversion(const volatile T&);
+ template <typename T> any_conversion(T&);
+ };
+ struct yes {int a[1];};
+ struct no {int a[2];};
+
+ template<typename T>
+ static yes test(const Ref<const T>&, int);
+ template<typename T>
+ static no test(any_conversion<T>, ...);
+
+public:
+ static MatrixType ms_from;
+ enum { value = sizeof(test<MatrixType>(ms_from, 0))==sizeof(yes) };
+};
+
+template<typename MatrixType>
+struct is_ref_compatible
+{
+ enum { value = is_ref_compatible_impl<typename remove_all<MatrixType>::type>::value };
+};
+
+template<typename MatrixType, bool MatrixFree = !internal::is_ref_compatible<MatrixType>::value>
+class generic_matrix_wrapper;
+
+// We have an explicit matrix at hand, compatible with Ref<>
+template<typename MatrixType>
+class generic_matrix_wrapper<MatrixType,false>
+{
+public:
+ typedef Ref<const MatrixType> ActualMatrixType;
+ template<int UpLo> struct ConstSelfAdjointViewReturnType {
+ typedef typename ActualMatrixType::template ConstSelfAdjointViewReturnType<UpLo>::Type Type;
+ };
+
+ enum {
+ MatrixFree = false
+ };
+
+ generic_matrix_wrapper()
+ : m_dummy(0,0), m_matrix(m_dummy)
+ {}
+
+ template<typename InputType>
+ generic_matrix_wrapper(const InputType &mat)
+ : m_matrix(mat)
+ {}
+
+ const ActualMatrixType& matrix() const
+ {
+ return m_matrix;
+ }
+
+ template<typename MatrixDerived>
+ void grab(const EigenBase<MatrixDerived> &mat)
+ {
+ m_matrix.~Ref<const MatrixType>();
+ ::new (&m_matrix) Ref<const MatrixType>(mat.derived());
+ }
+
+ void grab(const Ref<const MatrixType> &mat)
+ {
+ if(&(mat.derived()) != &m_matrix)
+ {
+ m_matrix.~Ref<const MatrixType>();
+ ::new (&m_matrix) Ref<const MatrixType>(mat);
+ }
+ }
+
+protected:
+ MatrixType m_dummy; // used to default initialize the Ref<> object
+ ActualMatrixType m_matrix;
+};
+
+// MatrixType is not compatible with Ref<> -> matrix-free wrapper
+template<typename MatrixType>
+class generic_matrix_wrapper<MatrixType,true>
+{
+public:
+ typedef MatrixType ActualMatrixType;
+ template<int UpLo> struct ConstSelfAdjointViewReturnType
+ {
+ typedef ActualMatrixType Type;
+ };
+
+ enum {
+ MatrixFree = true
+ };
+
+ generic_matrix_wrapper()
+ : mp_matrix(0)
+ {}
+
+ generic_matrix_wrapper(const MatrixType &mat)
+ : mp_matrix(&mat)
+ {}
+
+ const ActualMatrixType& matrix() const
+ {
+ return *mp_matrix;
+ }
+
+ void grab(const MatrixType &mat)
+ {
+ mp_matrix = &mat;
+ }
+
+protected:
+ const ActualMatrixType *mp_matrix;
+};
+
+}
+
+/** \ingroup IterativeLinearSolvers_Module
+ * \brief Base class for linear iterative solvers
+ *
+ * \sa class SimplicialCholesky, DiagonalPreconditioner, IdentityPreconditioner
+ */
+template< typename Derived>
+class IterativeSolverBase : public SparseSolverBase<Derived>
+{
+protected:
+ typedef SparseSolverBase<Derived> Base;
+ using Base::m_isInitialized;
+
+public:
+ typedef typename internal::traits<Derived>::MatrixType MatrixType;
+ typedef typename internal::traits<Derived>::Preconditioner Preconditioner;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef typename MatrixType::RealScalar RealScalar;
+
+ enum {
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+
+public:
+
+ using Base::derived;
+
+ /** Default constructor. */
+ IterativeSolverBase()
+ {
+ init();
+ }
+
+ /** Initialize the solver with matrix \a A for further \c Ax=b solving.
+ *
+ * This constructor is a shortcut for the default constructor followed
+ * by a call to compute().
+ *
+ * \warning this class stores a reference to the matrix A as well as some
+ * precomputed values that depend on it. Therefore, if \a A is changed
+ * this class becomes invalid. Call compute() to update it with the new
+ * matrix A, or modify a copy of A.
+ */
+ template<typename MatrixDerived>
+ explicit IterativeSolverBase(const EigenBase<MatrixDerived>& A)
+ : m_matrixWrapper(A.derived())
+ {
+ init();
+ compute(matrix());
+ }
+
+ ~IterativeSolverBase() {}
+
+ /** Initializes the iterative solver for the sparsity pattern of the matrix \a A for further solving \c Ax=b problems.
+ *
+ * Currently, this function mostly calls analyzePattern on the preconditioner. In the future
+ * we might, for instance, implement column reordering for faster matrix vector products.
+ */
+ template<typename MatrixDerived>
+ Derived& analyzePattern(const EigenBase<MatrixDerived>& A)
+ {
+ grab(A.derived());
+ m_preconditioner.analyzePattern(matrix());
+ m_isInitialized = true;
+ m_analysisIsOk = true;
+ m_info = m_preconditioner.info();
+ return derived();
+ }
+
+ /** Initializes the iterative solver with the numerical values of the matrix \a A for further solving \c Ax=b problems.
+ *
+ * Currently, this function mostly calls factorize on the preconditioner.
+ *
+ * \warning this class stores a reference to the matrix A as well as some
+ * precomputed values that depend on it. Therefore, if \a A is changed
+ * this class becomes invalid. Call compute() to update it with the new
+ * matrix A, or modify a copy of A.
+ */
+ template<typename MatrixDerived>
+ Derived& factorize(const EigenBase<MatrixDerived>& A)
+ {
+ eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
+ grab(A.derived());
+ m_preconditioner.factorize(matrix());
+ m_factorizationIsOk = true;
+ m_info = m_preconditioner.info();
+ return derived();
+ }
+
+ /** Initializes the iterative solver with the matrix \a A for further solving \c Ax=b problems.
+ *
+ * Currently, this function mostly initializes/computes the preconditioner. In the future
+ * we might, for instance, implement column reordering for faster matrix vector products.
+ *
+ * \warning this class stores a reference to the matrix A as well as some
+ * precomputed values that depend on it. Therefore, if \a A is changed
+ * this class becomes invalid. Call compute() to update it with the new
+ * matrix A, or modify a copy of A.
+ */
+ template<typename MatrixDerived>
+ Derived& compute(const EigenBase<MatrixDerived>& A)
+ {
+ grab(A.derived());
+ m_preconditioner.compute(matrix());
+ m_isInitialized = true;
+ m_analysisIsOk = true;
+ m_factorizationIsOk = true;
+ m_info = m_preconditioner.info();
+ return derived();
+ }
+
+ /** \internal */
+ Index rows() const { return matrix().rows(); }
+
+ /** \internal */
+ Index cols() const { return matrix().cols(); }
+
+ /** \returns the tolerance threshold used by the stopping criteria.
+ * \sa setTolerance()
+ */
+ RealScalar tolerance() const { return m_tolerance; }
+
+ /** Sets the tolerance threshold used by the stopping criteria.
+ *
+ * This value is used as an upper bound to the relative residual error: |Ax-b|/|b|.
+ * The default value is the machine precision given by NumTraits<Scalar>::epsilon()
+ */
+ Derived& setTolerance(const RealScalar& tolerance)
+ {
+ m_tolerance = tolerance;
+ return derived();
+ }
+
+ /** \returns a read-write reference to the preconditioner for custom configuration. */
+ Preconditioner& preconditioner() { return m_preconditioner; }
+
+ /** \returns a read-only reference to the preconditioner. */
+ const Preconditioner& preconditioner() const { return m_preconditioner; }
+
+ /** \returns the max number of iterations.
+ * It is either the value setted by setMaxIterations or, by default,
+ * twice the number of columns of the matrix.
+ */
+ Index maxIterations() const
+ {
+ return (m_maxIterations<0) ? 2*matrix().cols() : m_maxIterations;
+ }
+
+ /** Sets the max number of iterations.
+ * Default is twice the number of columns of the matrix.
+ */
+ Derived& setMaxIterations(Index maxIters)
+ {
+ m_maxIterations = maxIters;
+ return derived();
+ }
+
+ /** \returns the number of iterations performed during the last solve */
+ Index iterations() const
+ {
+ eigen_assert(m_isInitialized && "ConjugateGradient is not initialized.");
+ return m_iterations;
+ }
+
+ /** \returns the tolerance error reached during the last solve.
+ * It is a close approximation of the true relative residual error |Ax-b|/|b|.
+ */
+ RealScalar error() const
+ {
+ eigen_assert(m_isInitialized && "ConjugateGradient is not initialized.");
+ return m_error;
+ }
+
+ /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A
+ * and \a x0 as an initial solution.
+ *
+ * \sa solve(), compute()
+ */
+ template<typename Rhs,typename Guess>
+ inline const SolveWithGuess<Derived, Rhs, Guess>
+ solveWithGuess(const MatrixBase<Rhs>& b, const Guess& x0) const
+ {
+ eigen_assert(m_isInitialized && "Solver is not initialized.");
+ eigen_assert(derived().rows()==b.rows() && "solve(): invalid number of rows of the right hand side matrix b");
+ return SolveWithGuess<Derived, Rhs, Guess>(derived(), b.derived(), x0);
+ }
+
+ /** \returns Success if the iterations converged, and NoConvergence otherwise. */
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "IterativeSolverBase is not initialized.");
+ return m_info;
+ }
+
+ /** \internal */
+ template<typename Rhs, typename DestDerived>
+ void _solve_impl(const Rhs& b, SparseMatrixBase<DestDerived> &aDest) const
+ {
+ eigen_assert(rows()==b.rows());
+
+ Index rhsCols = b.cols();
+ Index size = b.rows();
+ DestDerived& dest(aDest.derived());
+ typedef typename DestDerived::Scalar DestScalar;
+ Eigen::Matrix<DestScalar,Dynamic,1> tb(size);
+ Eigen::Matrix<DestScalar,Dynamic,1> tx(cols());
+ // We do not directly fill dest because sparse expressions have to be free of aliasing issue.
+ // For non square least-square problems, b and dest might not have the same size whereas they might alias each-other.
+ typename DestDerived::PlainObject tmp(cols(),rhsCols);
+ for(Index k=0; k<rhsCols; ++k)
+ {
+ tb = b.col(k);
+ tx = derived().solve(tb);
+ tmp.col(k) = tx.sparseView(0);
+ }
+ dest.swap(tmp);
+ }
+
+protected:
+ void init()
+ {
+ m_isInitialized = false;
+ m_analysisIsOk = false;
+ m_factorizationIsOk = false;
+ m_maxIterations = -1;
+ m_tolerance = NumTraits<Scalar>::epsilon();
+ }
+
+ typedef internal::generic_matrix_wrapper<MatrixType> MatrixWrapper;
+ typedef typename MatrixWrapper::ActualMatrixType ActualMatrixType;
+
+ const ActualMatrixType& matrix() const
+ {
+ return m_matrixWrapper.matrix();
+ }
+
+ template<typename InputType>
+ void grab(const InputType &A)
+ {
+ m_matrixWrapper.grab(A);
+ }
+
+ MatrixWrapper m_matrixWrapper;
+ Preconditioner m_preconditioner;
+
+ Index m_maxIterations;
+ RealScalar m_tolerance;
+
+ mutable RealScalar m_error;
+ mutable Index m_iterations;
+ mutable ComputationInfo m_info;
+ mutable bool m_analysisIsOk, m_factorizationIsOk;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_ITERATIVE_SOLVER_BASE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h b/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h
new file mode 100644
index 000000000..0aea0e099
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h
@@ -0,0 +1,216 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_LEAST_SQUARE_CONJUGATE_GRADIENT_H
+#define EIGEN_LEAST_SQUARE_CONJUGATE_GRADIENT_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** \internal Low-level conjugate gradient algorithm for least-square problems
+ * \param mat The matrix A
+ * \param rhs The right hand side vector b
+ * \param x On input and initial solution, on output the computed solution.
+ * \param precond A preconditioner being able to efficiently solve for an
+ * approximation of A'Ax=b (regardless of b)
+ * \param iters On input the max number of iteration, on output the number of performed iterations.
+ * \param tol_error On input the tolerance error, on output an estimation of the relative error.
+ */
+template<typename MatrixType, typename Rhs, typename Dest, typename Preconditioner>
+EIGEN_DONT_INLINE
+void least_square_conjugate_gradient(const MatrixType& mat, const Rhs& rhs, Dest& x,
+ const Preconditioner& precond, Index& iters,
+ typename Dest::RealScalar& tol_error)
+{
+ using std::sqrt;
+ using std::abs;
+ typedef typename Dest::RealScalar RealScalar;
+ typedef typename Dest::Scalar Scalar;
+ typedef Matrix<Scalar,Dynamic,1> VectorType;
+
+ RealScalar tol = tol_error;
+ Index maxIters = iters;
+
+ Index m = mat.rows(), n = mat.cols();
+
+ VectorType residual = rhs - mat * x;
+ VectorType normal_residual = mat.adjoint() * residual;
+
+ RealScalar rhsNorm2 = (mat.adjoint()*rhs).squaredNorm();
+ if(rhsNorm2 == 0)
+ {
+ x.setZero();
+ iters = 0;
+ tol_error = 0;
+ return;
+ }
+ RealScalar threshold = tol*tol*rhsNorm2;
+ RealScalar residualNorm2 = normal_residual.squaredNorm();
+ if (residualNorm2 < threshold)
+ {
+ iters = 0;
+ tol_error = sqrt(residualNorm2 / rhsNorm2);
+ return;
+ }
+
+ VectorType p(n);
+ p = precond.solve(normal_residual); // initial search direction
+
+ VectorType z(n), tmp(m);
+ RealScalar absNew = numext::real(normal_residual.dot(p)); // the square of the absolute value of r scaled by invM
+ Index i = 0;
+ while(i < maxIters)
+ {
+ tmp.noalias() = mat * p;
+
+ Scalar alpha = absNew / tmp.squaredNorm(); // the amount we travel on dir
+ x += alpha * p; // update solution
+ residual -= alpha * tmp; // update residual
+ normal_residual = mat.adjoint() * residual; // update residual of the normal equation
+
+ residualNorm2 = normal_residual.squaredNorm();
+ if(residualNorm2 < threshold)
+ break;
+
+ z = precond.solve(normal_residual); // approximately solve for "A'A z = normal_residual"
+
+ RealScalar absOld = absNew;
+ absNew = numext::real(normal_residual.dot(z)); // update the absolute value of r
+ RealScalar beta = absNew / absOld; // calculate the Gram-Schmidt value used to create the new search direction
+ p = z + beta * p; // update search direction
+ i++;
+ }
+ tol_error = sqrt(residualNorm2 / rhsNorm2);
+ iters = i;
+}
+
+}
+
+template< typename _MatrixType,
+ typename _Preconditioner = LeastSquareDiagonalPreconditioner<typename _MatrixType::Scalar> >
+class LeastSquaresConjugateGradient;
+
+namespace internal {
+
+template< typename _MatrixType, typename _Preconditioner>
+struct traits<LeastSquaresConjugateGradient<_MatrixType,_Preconditioner> >
+{
+ typedef _MatrixType MatrixType;
+ typedef _Preconditioner Preconditioner;
+};
+
+}
+
+/** \ingroup IterativeLinearSolvers_Module
+ * \brief A conjugate gradient solver for sparse (or dense) least-square problems
+ *
+ * This class allows to solve for A x = b linear problems using an iterative conjugate gradient algorithm.
+ * The matrix A can be non symmetric and rectangular, but the matrix A' A should be positive-definite to guaranty stability.
+ * Otherwise, the SparseLU or SparseQR classes might be preferable.
+ * The matrix A and the vectors x and b can be either dense or sparse.
+ *
+ * \tparam _MatrixType the type of the matrix A, can be a dense or a sparse matrix.
+ * \tparam _Preconditioner the type of the preconditioner. Default is LeastSquareDiagonalPreconditioner
+ *
+ * \implsparsesolverconcept
+ *
+ * The maximal number of iterations and tolerance value can be controlled via the setMaxIterations()
+ * and setTolerance() methods. The defaults are the size of the problem for the maximal number of iterations
+ * and NumTraits<Scalar>::epsilon() for the tolerance.
+ *
+ * This class can be used as the direct solver classes. Here is a typical usage example:
+ \code
+ int m=1000000, n = 10000;
+ VectorXd x(n), b(m);
+ SparseMatrix<double> A(m,n);
+ // fill A and b
+ LeastSquaresConjugateGradient<SparseMatrix<double> > lscg;
+ lscg.compute(A);
+ x = lscg.solve(b);
+ std::cout << "#iterations: " << lscg.iterations() << std::endl;
+ std::cout << "estimated error: " << lscg.error() << std::endl;
+ // update b, and solve again
+ x = lscg.solve(b);
+ \endcode
+ *
+ * By default the iterations start with x=0 as an initial guess of the solution.
+ * One can control the start using the solveWithGuess() method.
+ *
+ * \sa class ConjugateGradient, SparseLU, SparseQR
+ */
+template< typename _MatrixType, typename _Preconditioner>
+class LeastSquaresConjugateGradient : public IterativeSolverBase<LeastSquaresConjugateGradient<_MatrixType,_Preconditioner> >
+{
+ typedef IterativeSolverBase<LeastSquaresConjugateGradient> Base;
+ using Base::matrix;
+ using Base::m_error;
+ using Base::m_iterations;
+ using Base::m_info;
+ using Base::m_isInitialized;
+public:
+ typedef _MatrixType MatrixType;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ typedef _Preconditioner Preconditioner;
+
+public:
+
+ /** Default constructor. */
+ LeastSquaresConjugateGradient() : Base() {}
+
+ /** Initialize the solver with matrix \a A for further \c Ax=b solving.
+ *
+ * This constructor is a shortcut for the default constructor followed
+ * by a call to compute().
+ *
+ * \warning this class stores a reference to the matrix A as well as some
+ * precomputed values that depend on it. Therefore, if \a A is changed
+ * this class becomes invalid. Call compute() to update it with the new
+ * matrix A, or modify a copy of A.
+ */
+ template<typename MatrixDerived>
+ explicit LeastSquaresConjugateGradient(const EigenBase<MatrixDerived>& A) : Base(A.derived()) {}
+
+ ~LeastSquaresConjugateGradient() {}
+
+ /** \internal */
+ template<typename Rhs,typename Dest>
+ void _solve_with_guess_impl(const Rhs& b, Dest& x) const
+ {
+ m_iterations = Base::maxIterations();
+ m_error = Base::m_tolerance;
+
+ for(Index j=0; j<b.cols(); ++j)
+ {
+ m_iterations = Base::maxIterations();
+ m_error = Base::m_tolerance;
+
+ typename Dest::ColXpr xj(x,j);
+ internal::least_square_conjugate_gradient(matrix(), b.col(j), xj, Base::m_preconditioner, m_iterations, m_error);
+ }
+
+ m_isInitialized = true;
+ m_info = m_error <= Base::m_tolerance ? Success : NoConvergence;
+ }
+
+ /** \internal */
+ using Base::_solve_impl;
+ template<typename Rhs,typename Dest>
+ void _solve_impl(const MatrixBase<Rhs>& b, Dest& x) const
+ {
+ x.setZero();
+ _solve_with_guess_impl(b.derived(),x);
+ }
+
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_LEAST_SQUARE_CONJUGATE_GRADIENT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h b/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h
new file mode 100644
index 000000000..0ace45177
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h
@@ -0,0 +1,115 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SOLVEWITHGUESS_H
+#define EIGEN_SOLVEWITHGUESS_H
+
+namespace Eigen {
+
+template<typename Decomposition, typename RhsType, typename GuessType> class SolveWithGuess;
+
+/** \class SolveWithGuess
+ * \ingroup IterativeLinearSolvers_Module
+ *
+ * \brief Pseudo expression representing a solving operation
+ *
+ * \tparam Decomposition the type of the matrix or decomposion object
+ * \tparam Rhstype the type of the right-hand side
+ *
+ * This class represents an expression of A.solve(B)
+ * and most of the time this is the only way it is used.
+ *
+ */
+namespace internal {
+
+
+template<typename Decomposition, typename RhsType, typename GuessType>
+struct traits<SolveWithGuess<Decomposition, RhsType, GuessType> >
+ : traits<Solve<Decomposition,RhsType> >
+{};
+
+}
+
+
+template<typename Decomposition, typename RhsType, typename GuessType>
+class SolveWithGuess : public internal::generic_xpr_base<SolveWithGuess<Decomposition,RhsType,GuessType>, MatrixXpr, typename internal::traits<RhsType>::StorageKind>::type
+{
+public:
+ typedef typename internal::traits<SolveWithGuess>::Scalar Scalar;
+ typedef typename internal::traits<SolveWithGuess>::PlainObject PlainObject;
+ typedef typename internal::generic_xpr_base<SolveWithGuess<Decomposition,RhsType,GuessType>, MatrixXpr, typename internal::traits<RhsType>::StorageKind>::type Base;
+ typedef typename internal::ref_selector<SolveWithGuess>::type Nested;
+
+ SolveWithGuess(const Decomposition &dec, const RhsType &rhs, const GuessType &guess)
+ : m_dec(dec), m_rhs(rhs), m_guess(guess)
+ {}
+
+ EIGEN_DEVICE_FUNC Index rows() const { return m_dec.cols(); }
+ EIGEN_DEVICE_FUNC Index cols() const { return m_rhs.cols(); }
+
+ EIGEN_DEVICE_FUNC const Decomposition& dec() const { return m_dec; }
+ EIGEN_DEVICE_FUNC const RhsType& rhs() const { return m_rhs; }
+ EIGEN_DEVICE_FUNC const GuessType& guess() const { return m_guess; }
+
+protected:
+ const Decomposition &m_dec;
+ const RhsType &m_rhs;
+ const GuessType &m_guess;
+
+private:
+ Scalar coeff(Index row, Index col) const;
+ Scalar coeff(Index i) const;
+};
+
+namespace internal {
+
+// Evaluator of SolveWithGuess -> eval into a temporary
+template<typename Decomposition, typename RhsType, typename GuessType>
+struct evaluator<SolveWithGuess<Decomposition,RhsType, GuessType> >
+ : public evaluator<typename SolveWithGuess<Decomposition,RhsType,GuessType>::PlainObject>
+{
+ typedef SolveWithGuess<Decomposition,RhsType,GuessType> SolveType;
+ typedef typename SolveType::PlainObject PlainObject;
+ typedef evaluator<PlainObject> Base;
+
+ evaluator(const SolveType& solve)
+ : m_result(solve.rows(), solve.cols())
+ {
+ ::new (static_cast<Base*>(this)) Base(m_result);
+ m_result = solve.guess();
+ solve.dec()._solve_with_guess_impl(solve.rhs(), m_result);
+ }
+
+protected:
+ PlainObject m_result;
+};
+
+// Specialization for "dst = dec.solveWithGuess(rhs)"
+// NOTE we need to specialize it for Dense2Dense to avoid ambiguous specialization error and a Sparse2Sparse specialization must exist somewhere
+template<typename DstXprType, typename DecType, typename RhsType, typename GuessType, typename Scalar>
+struct Assignment<DstXprType, SolveWithGuess<DecType,RhsType,GuessType>, internal::assign_op<Scalar,Scalar>, Dense2Dense>
+{
+ typedef SolveWithGuess<DecType,RhsType,GuessType> SrcXprType;
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<Scalar,Scalar> &)
+ {
+ Index dstRows = src.rows();
+ Index dstCols = src.cols();
+ if((dst.rows()!=dstRows) || (dst.cols()!=dstCols))
+ dst.resize(dstRows, dstCols);
+
+ dst = src.guess();
+ src.dec()._solve_with_guess_impl(src.rhs(), dst/*, src.guess()*/);
+ }
+};
+
+} // end namepsace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SOLVEWITHGUESS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/Jacobi/Jacobi.h b/runtimes/nn/depend/external/eigen/Eigen/src/Jacobi/Jacobi.h
new file mode 100644
index 000000000..c30326e1d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/Jacobi/Jacobi.h
@@ -0,0 +1,441 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_JACOBI_H
+#define EIGEN_JACOBI_H
+
+namespace Eigen {
+
+/** \ingroup Jacobi_Module
+ * \jacobi_module
+ * \class JacobiRotation
+ * \brief Rotation given by a cosine-sine pair.
+ *
+ * This class represents a Jacobi or Givens rotation.
+ * This is a 2D rotation in the plane \c J of angle \f$ \theta \f$ defined by
+ * its cosine \c c and sine \c s as follow:
+ * \f$ J = \left ( \begin{array}{cc} c & \overline s \\ -s & \overline c \end{array} \right ) \f$
+ *
+ * You can apply the respective counter-clockwise rotation to a column vector \c v by
+ * applying its adjoint on the left: \f$ v = J^* v \f$ that translates to the following Eigen code:
+ * \code
+ * v.applyOnTheLeft(J.adjoint());
+ * \endcode
+ *
+ * \sa MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
+ */
+template<typename Scalar> class JacobiRotation
+{
+ public:
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+
+ /** Default constructor without any initialization. */
+ JacobiRotation() {}
+
+ /** Construct a planar rotation from a cosine-sine pair (\a c, \c s). */
+ JacobiRotation(const Scalar& c, const Scalar& s) : m_c(c), m_s(s) {}
+
+ Scalar& c() { return m_c; }
+ Scalar c() const { return m_c; }
+ Scalar& s() { return m_s; }
+ Scalar s() const { return m_s; }
+
+ /** Concatenates two planar rotation */
+ JacobiRotation operator*(const JacobiRotation& other)
+ {
+ using numext::conj;
+ return JacobiRotation(m_c * other.m_c - conj(m_s) * other.m_s,
+ conj(m_c * conj(other.m_s) + conj(m_s) * conj(other.m_c)));
+ }
+
+ /** Returns the transposed transformation */
+ JacobiRotation transpose() const { using numext::conj; return JacobiRotation(m_c, -conj(m_s)); }
+
+ /** Returns the adjoint transformation */
+ JacobiRotation adjoint() const { using numext::conj; return JacobiRotation(conj(m_c), -m_s); }
+
+ template<typename Derived>
+ bool makeJacobi(const MatrixBase<Derived>&, Index p, Index q);
+ bool makeJacobi(const RealScalar& x, const Scalar& y, const RealScalar& z);
+
+ void makeGivens(const Scalar& p, const Scalar& q, Scalar* z=0);
+
+ protected:
+ void makeGivens(const Scalar& p, const Scalar& q, Scalar* z, internal::true_type);
+ void makeGivens(const Scalar& p, const Scalar& q, Scalar* z, internal::false_type);
+
+ Scalar m_c, m_s;
+};
+
+/** Makes \c *this as a Jacobi rotation \a J such that applying \a J on both the right and left sides of the selfadjoint 2x2 matrix
+ * \f$ B = \left ( \begin{array}{cc} x & y \\ \overline y & z \end{array} \right )\f$ yields a diagonal matrix \f$ A = J^* B J \f$
+ *
+ * \sa MatrixBase::makeJacobi(const MatrixBase<Derived>&, Index, Index), MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
+ */
+template<typename Scalar>
+bool JacobiRotation<Scalar>::makeJacobi(const RealScalar& x, const Scalar& y, const RealScalar& z)
+{
+ using std::sqrt;
+ using std::abs;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+ RealScalar deno = RealScalar(2)*abs(y);
+ if(deno < (std::numeric_limits<RealScalar>::min)())
+ {
+ m_c = Scalar(1);
+ m_s = Scalar(0);
+ return false;
+ }
+ else
+ {
+ RealScalar tau = (x-z)/deno;
+ RealScalar w = sqrt(numext::abs2(tau) + RealScalar(1));
+ RealScalar t;
+ if(tau>RealScalar(0))
+ {
+ t = RealScalar(1) / (tau + w);
+ }
+ else
+ {
+ t = RealScalar(1) / (tau - w);
+ }
+ RealScalar sign_t = t > RealScalar(0) ? RealScalar(1) : RealScalar(-1);
+ RealScalar n = RealScalar(1) / sqrt(numext::abs2(t)+RealScalar(1));
+ m_s = - sign_t * (numext::conj(y) / abs(y)) * abs(t) * n;
+ m_c = n;
+ return true;
+ }
+}
+
+/** Makes \c *this as a Jacobi rotation \c J such that applying \a J on both the right and left sides of the 2x2 selfadjoint matrix
+ * \f$ B = \left ( \begin{array}{cc} \text{this}_{pp} & \text{this}_{pq} \\ (\text{this}_{pq})^* & \text{this}_{qq} \end{array} \right )\f$ yields
+ * a diagonal matrix \f$ A = J^* B J \f$
+ *
+ * Example: \include Jacobi_makeJacobi.cpp
+ * Output: \verbinclude Jacobi_makeJacobi.out
+ *
+ * \sa JacobiRotation::makeJacobi(RealScalar, Scalar, RealScalar), MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
+ */
+template<typename Scalar>
+template<typename Derived>
+inline bool JacobiRotation<Scalar>::makeJacobi(const MatrixBase<Derived>& m, Index p, Index q)
+{
+ return makeJacobi(numext::real(m.coeff(p,p)), m.coeff(p,q), numext::real(m.coeff(q,q)));
+}
+
+/** Makes \c *this as a Givens rotation \c G such that applying \f$ G^* \f$ to the left of the vector
+ * \f$ V = \left ( \begin{array}{c} p \\ q \end{array} \right )\f$ yields:
+ * \f$ G^* V = \left ( \begin{array}{c} r \\ 0 \end{array} \right )\f$.
+ *
+ * The value of \a z is returned if \a z is not null (the default is null).
+ * Also note that G is built such that the cosine is always real.
+ *
+ * Example: \include Jacobi_makeGivens.cpp
+ * Output: \verbinclude Jacobi_makeGivens.out
+ *
+ * This function implements the continuous Givens rotation generation algorithm
+ * found in Anderson (2000), Discontinuous Plane Rotations and the Symmetric Eigenvalue Problem.
+ * LAPACK Working Note 150, University of Tennessee, UT-CS-00-454, December 4, 2000.
+ *
+ * \sa MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
+ */
+template<typename Scalar>
+void JacobiRotation<Scalar>::makeGivens(const Scalar& p, const Scalar& q, Scalar* z)
+{
+ makeGivens(p, q, z, typename internal::conditional<NumTraits<Scalar>::IsComplex, internal::true_type, internal::false_type>::type());
+}
+
+
+// specialization for complexes
+template<typename Scalar>
+void JacobiRotation<Scalar>::makeGivens(const Scalar& p, const Scalar& q, Scalar* r, internal::true_type)
+{
+ using std::sqrt;
+ using std::abs;
+ using numext::conj;
+
+ if(q==Scalar(0))
+ {
+ m_c = numext::real(p)<0 ? Scalar(-1) : Scalar(1);
+ m_s = 0;
+ if(r) *r = m_c * p;
+ }
+ else if(p==Scalar(0))
+ {
+ m_c = 0;
+ m_s = -q/abs(q);
+ if(r) *r = abs(q);
+ }
+ else
+ {
+ RealScalar p1 = numext::norm1(p);
+ RealScalar q1 = numext::norm1(q);
+ if(p1>=q1)
+ {
+ Scalar ps = p / p1;
+ RealScalar p2 = numext::abs2(ps);
+ Scalar qs = q / p1;
+ RealScalar q2 = numext::abs2(qs);
+
+ RealScalar u = sqrt(RealScalar(1) + q2/p2);
+ if(numext::real(p)<RealScalar(0))
+ u = -u;
+
+ m_c = Scalar(1)/u;
+ m_s = -qs*conj(ps)*(m_c/p2);
+ if(r) *r = p * u;
+ }
+ else
+ {
+ Scalar ps = p / q1;
+ RealScalar p2 = numext::abs2(ps);
+ Scalar qs = q / q1;
+ RealScalar q2 = numext::abs2(qs);
+
+ RealScalar u = q1 * sqrt(p2 + q2);
+ if(numext::real(p)<RealScalar(0))
+ u = -u;
+
+ p1 = abs(p);
+ ps = p/p1;
+ m_c = p1/u;
+ m_s = -conj(ps) * (q/u);
+ if(r) *r = ps * u;
+ }
+ }
+}
+
+// specialization for reals
+template<typename Scalar>
+void JacobiRotation<Scalar>::makeGivens(const Scalar& p, const Scalar& q, Scalar* r, internal::false_type)
+{
+ using std::sqrt;
+ using std::abs;
+ if(q==Scalar(0))
+ {
+ m_c = p<Scalar(0) ? Scalar(-1) : Scalar(1);
+ m_s = Scalar(0);
+ if(r) *r = abs(p);
+ }
+ else if(p==Scalar(0))
+ {
+ m_c = Scalar(0);
+ m_s = q<Scalar(0) ? Scalar(1) : Scalar(-1);
+ if(r) *r = abs(q);
+ }
+ else if(abs(p) > abs(q))
+ {
+ Scalar t = q/p;
+ Scalar u = sqrt(Scalar(1) + numext::abs2(t));
+ if(p<Scalar(0))
+ u = -u;
+ m_c = Scalar(1)/u;
+ m_s = -t * m_c;
+ if(r) *r = p * u;
+ }
+ else
+ {
+ Scalar t = p/q;
+ Scalar u = sqrt(Scalar(1) + numext::abs2(t));
+ if(q<Scalar(0))
+ u = -u;
+ m_s = -Scalar(1)/u;
+ m_c = -t * m_s;
+ if(r) *r = q * u;
+ }
+
+}
+
+/****************************************************************************************
+* Implementation of MatrixBase methods
+****************************************************************************************/
+
+namespace internal {
+/** \jacobi_module
+ * Applies the clock wise 2D rotation \a j to the set of 2D vectors of cordinates \a x and \a y:
+ * \f$ \left ( \begin{array}{cc} x \\ y \end{array} \right ) = J \left ( \begin{array}{cc} x \\ y \end{array} \right ) \f$
+ *
+ * \sa MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
+ */
+template<typename VectorX, typename VectorY, typename OtherScalar>
+void apply_rotation_in_the_plane(DenseBase<VectorX>& xpr_x, DenseBase<VectorY>& xpr_y, const JacobiRotation<OtherScalar>& j);
+}
+
+/** \jacobi_module
+ * Applies the rotation in the plane \a j to the rows \a p and \a q of \c *this, i.e., it computes B = J * B,
+ * with \f$ B = \left ( \begin{array}{cc} \text{*this.row}(p) \\ \text{*this.row}(q) \end{array} \right ) \f$.
+ *
+ * \sa class JacobiRotation, MatrixBase::applyOnTheRight(), internal::apply_rotation_in_the_plane()
+ */
+template<typename Derived>
+template<typename OtherScalar>
+inline void MatrixBase<Derived>::applyOnTheLeft(Index p, Index q, const JacobiRotation<OtherScalar>& j)
+{
+ RowXpr x(this->row(p));
+ RowXpr y(this->row(q));
+ internal::apply_rotation_in_the_plane(x, y, j);
+}
+
+/** \ingroup Jacobi_Module
+ * Applies the rotation in the plane \a j to the columns \a p and \a q of \c *this, i.e., it computes B = B * J
+ * with \f$ B = \left ( \begin{array}{cc} \text{*this.col}(p) & \text{*this.col}(q) \end{array} \right ) \f$.
+ *
+ * \sa class JacobiRotation, MatrixBase::applyOnTheLeft(), internal::apply_rotation_in_the_plane()
+ */
+template<typename Derived>
+template<typename OtherScalar>
+inline void MatrixBase<Derived>::applyOnTheRight(Index p, Index q, const JacobiRotation<OtherScalar>& j)
+{
+ ColXpr x(this->col(p));
+ ColXpr y(this->col(q));
+ internal::apply_rotation_in_the_plane(x, y, j.transpose());
+}
+
+namespace internal {
+template<typename VectorX, typename VectorY, typename OtherScalar>
+void /*EIGEN_DONT_INLINE*/ apply_rotation_in_the_plane(DenseBase<VectorX>& xpr_x, DenseBase<VectorY>& xpr_y, const JacobiRotation<OtherScalar>& j)
+{
+ typedef typename VectorX::Scalar Scalar;
+ enum {
+ PacketSize = packet_traits<Scalar>::size,
+ OtherPacketSize = packet_traits<OtherScalar>::size
+ };
+ typedef typename packet_traits<Scalar>::type Packet;
+ typedef typename packet_traits<OtherScalar>::type OtherPacket;
+ eigen_assert(xpr_x.size() == xpr_y.size());
+ Index size = xpr_x.size();
+ Index incrx = xpr_x.derived().innerStride();
+ Index incry = xpr_y.derived().innerStride();
+
+ Scalar* EIGEN_RESTRICT x = &xpr_x.derived().coeffRef(0);
+ Scalar* EIGEN_RESTRICT y = &xpr_y.derived().coeffRef(0);
+
+ OtherScalar c = j.c();
+ OtherScalar s = j.s();
+ if (c==OtherScalar(1) && s==OtherScalar(0))
+ return;
+
+ /*** dynamic-size vectorized paths ***/
+
+ if(VectorX::SizeAtCompileTime == Dynamic &&
+ (VectorX::Flags & VectorY::Flags & PacketAccessBit) &&
+ (PacketSize == OtherPacketSize) &&
+ ((incrx==1 && incry==1) || PacketSize == 1))
+ {
+ // both vectors are sequentially stored in memory => vectorization
+ enum { Peeling = 2 };
+
+ Index alignedStart = internal::first_default_aligned(y, size);
+ Index alignedEnd = alignedStart + ((size-alignedStart)/PacketSize)*PacketSize;
+
+ const OtherPacket pc = pset1<OtherPacket>(c);
+ const OtherPacket ps = pset1<OtherPacket>(s);
+ conj_helper<OtherPacket,Packet,NumTraits<OtherScalar>::IsComplex,false> pcj;
+ conj_helper<OtherPacket,Packet,false,false> pm;
+
+ for(Index i=0; i<alignedStart; ++i)
+ {
+ Scalar xi = x[i];
+ Scalar yi = y[i];
+ x[i] = c * xi + numext::conj(s) * yi;
+ y[i] = -s * xi + numext::conj(c) * yi;
+ }
+
+ Scalar* EIGEN_RESTRICT px = x + alignedStart;
+ Scalar* EIGEN_RESTRICT py = y + alignedStart;
+
+ if(internal::first_default_aligned(x, size)==alignedStart)
+ {
+ for(Index i=alignedStart; i<alignedEnd; i+=PacketSize)
+ {
+ Packet xi = pload<Packet>(px);
+ Packet yi = pload<Packet>(py);
+ pstore(px, padd(pm.pmul(pc,xi),pcj.pmul(ps,yi)));
+ pstore(py, psub(pcj.pmul(pc,yi),pm.pmul(ps,xi)));
+ px += PacketSize;
+ py += PacketSize;
+ }
+ }
+ else
+ {
+ Index peelingEnd = alignedStart + ((size-alignedStart)/(Peeling*PacketSize))*(Peeling*PacketSize);
+ for(Index i=alignedStart; i<peelingEnd; i+=Peeling*PacketSize)
+ {
+ Packet xi = ploadu<Packet>(px);
+ Packet xi1 = ploadu<Packet>(px+PacketSize);
+ Packet yi = pload <Packet>(py);
+ Packet yi1 = pload <Packet>(py+PacketSize);
+ pstoreu(px, padd(pm.pmul(pc,xi),pcj.pmul(ps,yi)));
+ pstoreu(px+PacketSize, padd(pm.pmul(pc,xi1),pcj.pmul(ps,yi1)));
+ pstore (py, psub(pcj.pmul(pc,yi),pm.pmul(ps,xi)));
+ pstore (py+PacketSize, psub(pcj.pmul(pc,yi1),pm.pmul(ps,xi1)));
+ px += Peeling*PacketSize;
+ py += Peeling*PacketSize;
+ }
+ if(alignedEnd!=peelingEnd)
+ {
+ Packet xi = ploadu<Packet>(x+peelingEnd);
+ Packet yi = pload <Packet>(y+peelingEnd);
+ pstoreu(x+peelingEnd, padd(pm.pmul(pc,xi),pcj.pmul(ps,yi)));
+ pstore (y+peelingEnd, psub(pcj.pmul(pc,yi),pm.pmul(ps,xi)));
+ }
+ }
+
+ for(Index i=alignedEnd; i<size; ++i)
+ {
+ Scalar xi = x[i];
+ Scalar yi = y[i];
+ x[i] = c * xi + numext::conj(s) * yi;
+ y[i] = -s * xi + numext::conj(c) * yi;
+ }
+ }
+
+ /*** fixed-size vectorized path ***/
+ else if(VectorX::SizeAtCompileTime != Dynamic &&
+ (VectorX::Flags & VectorY::Flags & PacketAccessBit) &&
+ (PacketSize == OtherPacketSize) &&
+ (EIGEN_PLAIN_ENUM_MIN(evaluator<VectorX>::Alignment, evaluator<VectorY>::Alignment)>0)) // FIXME should be compared to the required alignment
+ {
+ const OtherPacket pc = pset1<OtherPacket>(c);
+ const OtherPacket ps = pset1<OtherPacket>(s);
+ conj_helper<OtherPacket,Packet,NumTraits<OtherPacket>::IsComplex,false> pcj;
+ conj_helper<OtherPacket,Packet,false,false> pm;
+ Scalar* EIGEN_RESTRICT px = x;
+ Scalar* EIGEN_RESTRICT py = y;
+ for(Index i=0; i<size; i+=PacketSize)
+ {
+ Packet xi = pload<Packet>(px);
+ Packet yi = pload<Packet>(py);
+ pstore(px, padd(pm.pmul(pc,xi),pcj.pmul(ps,yi)));
+ pstore(py, psub(pcj.pmul(pc,yi),pm.pmul(ps,xi)));
+ px += PacketSize;
+ py += PacketSize;
+ }
+ }
+
+ /*** non-vectorized path ***/
+ else
+ {
+ for(Index i=0; i<size; ++i)
+ {
+ Scalar xi = *x;
+ Scalar yi = *y;
+ *x = c * xi + numext::conj(s) * yi;
+ *y = -s * xi + numext::conj(c) * yi;
+ x += incrx;
+ y += incry;
+ }
+ }
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_JACOBI_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/LU/Determinant.h b/runtimes/nn/depend/external/eigen/Eigen/src/LU/Determinant.h
new file mode 100644
index 000000000..d6a3c1e5a
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/LU/Determinant.h
@@ -0,0 +1,101 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DETERMINANT_H
+#define EIGEN_DETERMINANT_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename Derived>
+inline const typename Derived::Scalar bruteforce_det3_helper
+(const MatrixBase<Derived>& matrix, int a, int b, int c)
+{
+ return matrix.coeff(0,a)
+ * (matrix.coeff(1,b) * matrix.coeff(2,c) - matrix.coeff(1,c) * matrix.coeff(2,b));
+}
+
+template<typename Derived>
+const typename Derived::Scalar bruteforce_det4_helper
+(const MatrixBase<Derived>& matrix, int j, int k, int m, int n)
+{
+ return (matrix.coeff(j,0) * matrix.coeff(k,1) - matrix.coeff(k,0) * matrix.coeff(j,1))
+ * (matrix.coeff(m,2) * matrix.coeff(n,3) - matrix.coeff(n,2) * matrix.coeff(m,3));
+}
+
+template<typename Derived,
+ int DeterminantType = Derived::RowsAtCompileTime
+> struct determinant_impl
+{
+ static inline typename traits<Derived>::Scalar run(const Derived& m)
+ {
+ if(Derived::ColsAtCompileTime==Dynamic && m.rows()==0)
+ return typename traits<Derived>::Scalar(1);
+ return m.partialPivLu().determinant();
+ }
+};
+
+template<typename Derived> struct determinant_impl<Derived, 1>
+{
+ static inline typename traits<Derived>::Scalar run(const Derived& m)
+ {
+ return m.coeff(0,0);
+ }
+};
+
+template<typename Derived> struct determinant_impl<Derived, 2>
+{
+ static inline typename traits<Derived>::Scalar run(const Derived& m)
+ {
+ return m.coeff(0,0) * m.coeff(1,1) - m.coeff(1,0) * m.coeff(0,1);
+ }
+};
+
+template<typename Derived> struct determinant_impl<Derived, 3>
+{
+ static inline typename traits<Derived>::Scalar run(const Derived& m)
+ {
+ return bruteforce_det3_helper(m,0,1,2)
+ - bruteforce_det3_helper(m,1,0,2)
+ + bruteforce_det3_helper(m,2,0,1);
+ }
+};
+
+template<typename Derived> struct determinant_impl<Derived, 4>
+{
+ static typename traits<Derived>::Scalar run(const Derived& m)
+ {
+ // trick by Martin Costabel to compute 4x4 det with only 30 muls
+ return bruteforce_det4_helper(m,0,1,2,3)
+ - bruteforce_det4_helper(m,0,2,1,3)
+ + bruteforce_det4_helper(m,0,3,1,2)
+ + bruteforce_det4_helper(m,1,2,0,3)
+ - bruteforce_det4_helper(m,1,3,0,2)
+ + bruteforce_det4_helper(m,2,3,0,1);
+ }
+};
+
+} // end namespace internal
+
+/** \lu_module
+ *
+ * \returns the determinant of this matrix
+ */
+template<typename Derived>
+inline typename internal::traits<Derived>::Scalar MatrixBase<Derived>::determinant() const
+{
+ eigen_assert(rows() == cols());
+ typedef typename internal::nested_eval<Derived,Base::RowsAtCompileTime>::type Nested;
+ return internal::determinant_impl<typename internal::remove_all<Nested>::type>::run(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_DETERMINANT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/LU/FullPivLU.h b/runtimes/nn/depend/external/eigen/Eigen/src/LU/FullPivLU.h
new file mode 100644
index 000000000..03b6af706
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/LU/FullPivLU.h
@@ -0,0 +1,891 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_LU_H
+#define EIGEN_LU_H
+
+namespace Eigen {
+
+namespace internal {
+template<typename _MatrixType> struct traits<FullPivLU<_MatrixType> >
+ : traits<_MatrixType>
+{
+ typedef MatrixXpr XprKind;
+ typedef SolverStorage StorageKind;
+ enum { Flags = 0 };
+};
+
+} // end namespace internal
+
+/** \ingroup LU_Module
+ *
+ * \class FullPivLU
+ *
+ * \brief LU decomposition of a matrix with complete pivoting, and related features
+ *
+ * \tparam _MatrixType the type of the matrix of which we are computing the LU decomposition
+ *
+ * This class represents a LU decomposition of any matrix, with complete pivoting: the matrix A is
+ * decomposed as \f$ A = P^{-1} L U Q^{-1} \f$ where L is unit-lower-triangular, U is
+ * upper-triangular, and P and Q are permutation matrices. This is a rank-revealing LU
+ * decomposition. The eigenvalues (diagonal coefficients) of U are sorted in such a way that any
+ * zeros are at the end.
+ *
+ * This decomposition provides the generic approach to solving systems of linear equations, computing
+ * the rank, invertibility, inverse, kernel, and determinant.
+ *
+ * This LU decomposition is very stable and well tested with large matrices. However there are use cases where the SVD
+ * decomposition is inherently more stable and/or flexible. For example, when computing the kernel of a matrix,
+ * working with the SVD allows to select the smallest singular values of the matrix, something that
+ * the LU decomposition doesn't see.
+ *
+ * The data of the LU decomposition can be directly accessed through the methods matrixLU(),
+ * permutationP(), permutationQ().
+ *
+ * As an exemple, here is how the original matrix can be retrieved:
+ * \include class_FullPivLU.cpp
+ * Output: \verbinclude class_FullPivLU.out
+ *
+ * This class supports the \link InplaceDecomposition inplace decomposition \endlink mechanism.
+ *
+ * \sa MatrixBase::fullPivLu(), MatrixBase::determinant(), MatrixBase::inverse()
+ */
+template<typename _MatrixType> class FullPivLU
+ : public SolverBase<FullPivLU<_MatrixType> >
+{
+ public:
+ typedef _MatrixType MatrixType;
+ typedef SolverBase<FullPivLU> Base;
+
+ EIGEN_GENERIC_PUBLIC_INTERFACE(FullPivLU)
+ // FIXME StorageIndex defined in EIGEN_GENERIC_PUBLIC_INTERFACE should be int
+ enum {
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+ typedef typename internal::plain_row_type<MatrixType, StorageIndex>::type IntRowVectorType;
+ typedef typename internal::plain_col_type<MatrixType, StorageIndex>::type IntColVectorType;
+ typedef PermutationMatrix<ColsAtCompileTime, MaxColsAtCompileTime> PermutationQType;
+ typedef PermutationMatrix<RowsAtCompileTime, MaxRowsAtCompileTime> PermutationPType;
+ typedef typename MatrixType::PlainObject PlainObject;
+
+ /**
+ * \brief Default Constructor.
+ *
+ * The default constructor is useful in cases in which the user intends to
+ * perform decompositions via LU::compute(const MatrixType&).
+ */
+ FullPivLU();
+
+ /** \brief Default Constructor with memory preallocation
+ *
+ * Like the default constructor but with preallocation of the internal data
+ * according to the specified problem \a size.
+ * \sa FullPivLU()
+ */
+ FullPivLU(Index rows, Index cols);
+
+ /** Constructor.
+ *
+ * \param matrix the matrix of which to compute the LU decomposition.
+ * It is required to be nonzero.
+ */
+ template<typename InputType>
+ explicit FullPivLU(const EigenBase<InputType>& matrix);
+
+ /** \brief Constructs a LU factorization from a given matrix
+ *
+ * This overloaded constructor is provided for \link InplaceDecomposition inplace decomposition \endlink when \c MatrixType is a Eigen::Ref.
+ *
+ * \sa FullPivLU(const EigenBase&)
+ */
+ template<typename InputType>
+ explicit FullPivLU(EigenBase<InputType>& matrix);
+
+ /** Computes the LU decomposition of the given matrix.
+ *
+ * \param matrix the matrix of which to compute the LU decomposition.
+ * It is required to be nonzero.
+ *
+ * \returns a reference to *this
+ */
+ template<typename InputType>
+ FullPivLU& compute(const EigenBase<InputType>& matrix) {
+ m_lu = matrix.derived();
+ computeInPlace();
+ return *this;
+ }
+
+ /** \returns the LU decomposition matrix: the upper-triangular part is U, the
+ * unit-lower-triangular part is L (at least for square matrices; in the non-square
+ * case, special care is needed, see the documentation of class FullPivLU).
+ *
+ * \sa matrixL(), matrixU()
+ */
+ inline const MatrixType& matrixLU() const
+ {
+ eigen_assert(m_isInitialized && "LU is not initialized.");
+ return m_lu;
+ }
+
+ /** \returns the number of nonzero pivots in the LU decomposition.
+ * Here nonzero is meant in the exact sense, not in a fuzzy sense.
+ * So that notion isn't really intrinsically interesting, but it is
+ * still useful when implementing algorithms.
+ *
+ * \sa rank()
+ */
+ inline Index nonzeroPivots() const
+ {
+ eigen_assert(m_isInitialized && "LU is not initialized.");
+ return m_nonzero_pivots;
+ }
+
+ /** \returns the absolute value of the biggest pivot, i.e. the biggest
+ * diagonal coefficient of U.
+ */
+ RealScalar maxPivot() const { return m_maxpivot; }
+
+ /** \returns the permutation matrix P
+ *
+ * \sa permutationQ()
+ */
+ EIGEN_DEVICE_FUNC inline const PermutationPType& permutationP() const
+ {
+ eigen_assert(m_isInitialized && "LU is not initialized.");
+ return m_p;
+ }
+
+ /** \returns the permutation matrix Q
+ *
+ * \sa permutationP()
+ */
+ inline const PermutationQType& permutationQ() const
+ {
+ eigen_assert(m_isInitialized && "LU is not initialized.");
+ return m_q;
+ }
+
+ /** \returns the kernel of the matrix, also called its null-space. The columns of the returned matrix
+ * will form a basis of the kernel.
+ *
+ * \note If the kernel has dimension zero, then the returned matrix is a column-vector filled with zeros.
+ *
+ * \note This method has to determine which pivots should be considered nonzero.
+ * For that, it uses the threshold value that you can control by calling
+ * setThreshold(const RealScalar&).
+ *
+ * Example: \include FullPivLU_kernel.cpp
+ * Output: \verbinclude FullPivLU_kernel.out
+ *
+ * \sa image()
+ */
+ inline const internal::kernel_retval<FullPivLU> kernel() const
+ {
+ eigen_assert(m_isInitialized && "LU is not initialized.");
+ return internal::kernel_retval<FullPivLU>(*this);
+ }
+
+ /** \returns the image of the matrix, also called its column-space. The columns of the returned matrix
+ * will form a basis of the image (column-space).
+ *
+ * \param originalMatrix the original matrix, of which *this is the LU decomposition.
+ * The reason why it is needed to pass it here, is that this allows
+ * a large optimization, as otherwise this method would need to reconstruct it
+ * from the LU decomposition.
+ *
+ * \note If the image has dimension zero, then the returned matrix is a column-vector filled with zeros.
+ *
+ * \note This method has to determine which pivots should be considered nonzero.
+ * For that, it uses the threshold value that you can control by calling
+ * setThreshold(const RealScalar&).
+ *
+ * Example: \include FullPivLU_image.cpp
+ * Output: \verbinclude FullPivLU_image.out
+ *
+ * \sa kernel()
+ */
+ inline const internal::image_retval<FullPivLU>
+ image(const MatrixType& originalMatrix) const
+ {
+ eigen_assert(m_isInitialized && "LU is not initialized.");
+ return internal::image_retval<FullPivLU>(*this, originalMatrix);
+ }
+
+ /** \return a solution x to the equation Ax=b, where A is the matrix of which
+ * *this is the LU decomposition.
+ *
+ * \param b the right-hand-side of the equation to solve. Can be a vector or a matrix,
+ * the only requirement in order for the equation to make sense is that
+ * b.rows()==A.rows(), where A is the matrix of which *this is the LU decomposition.
+ *
+ * \returns a solution.
+ *
+ * \note_about_checking_solutions
+ *
+ * \note_about_arbitrary_choice_of_solution
+ * \note_about_using_kernel_to_study_multiple_solutions
+ *
+ * Example: \include FullPivLU_solve.cpp
+ * Output: \verbinclude FullPivLU_solve.out
+ *
+ * \sa TriangularView::solve(), kernel(), inverse()
+ */
+ // FIXME this is a copy-paste of the base-class member to add the isInitialized assertion.
+ template<typename Rhs>
+ inline const Solve<FullPivLU, Rhs>
+ solve(const MatrixBase<Rhs>& b) const
+ {
+ eigen_assert(m_isInitialized && "LU is not initialized.");
+ return Solve<FullPivLU, Rhs>(*this, b.derived());
+ }
+
+ /** \returns an estimate of the reciprocal condition number of the matrix of which \c *this is
+ the LU decomposition.
+ */
+ inline RealScalar rcond() const
+ {
+ eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
+ return internal::rcond_estimate_helper(m_l1_norm, *this);
+ }
+
+ /** \returns the determinant of the matrix of which
+ * *this is the LU decomposition. It has only linear complexity
+ * (that is, O(n) where n is the dimension of the square matrix)
+ * as the LU decomposition has already been computed.
+ *
+ * \note This is only for square matrices.
+ *
+ * \note For fixed-size matrices of size up to 4, MatrixBase::determinant() offers
+ * optimized paths.
+ *
+ * \warning a determinant can be very big or small, so for matrices
+ * of large enough dimension, there is a risk of overflow/underflow.
+ *
+ * \sa MatrixBase::determinant()
+ */
+ typename internal::traits<MatrixType>::Scalar determinant() const;
+
+ /** Allows to prescribe a threshold to be used by certain methods, such as rank(),
+ * who need to determine when pivots are to be considered nonzero. This is not used for the
+ * LU decomposition itself.
+ *
+ * When it needs to get the threshold value, Eigen calls threshold(). By default, this
+ * uses a formula to automatically determine a reasonable threshold.
+ * Once you have called the present method setThreshold(const RealScalar&),
+ * your value is used instead.
+ *
+ * \param threshold The new value to use as the threshold.
+ *
+ * A pivot will be considered nonzero if its absolute value is strictly greater than
+ * \f$ \vert pivot \vert \leqslant threshold \times \vert maxpivot \vert \f$
+ * where maxpivot is the biggest pivot.
+ *
+ * If you want to come back to the default behavior, call setThreshold(Default_t)
+ */
+ FullPivLU& setThreshold(const RealScalar& threshold)
+ {
+ m_usePrescribedThreshold = true;
+ m_prescribedThreshold = threshold;
+ return *this;
+ }
+
+ /** Allows to come back to the default behavior, letting Eigen use its default formula for
+ * determining the threshold.
+ *
+ * You should pass the special object Eigen::Default as parameter here.
+ * \code lu.setThreshold(Eigen::Default); \endcode
+ *
+ * See the documentation of setThreshold(const RealScalar&).
+ */
+ FullPivLU& setThreshold(Default_t)
+ {
+ m_usePrescribedThreshold = false;
+ return *this;
+ }
+
+ /** Returns the threshold that will be used by certain methods such as rank().
+ *
+ * See the documentation of setThreshold(const RealScalar&).
+ */
+ RealScalar threshold() const
+ {
+ eigen_assert(m_isInitialized || m_usePrescribedThreshold);
+ return m_usePrescribedThreshold ? m_prescribedThreshold
+ // this formula comes from experimenting (see "LU precision tuning" thread on the list)
+ // and turns out to be identical to Higham's formula used already in LDLt.
+ : NumTraits<Scalar>::epsilon() * m_lu.diagonalSize();
+ }
+
+ /** \returns the rank of the matrix of which *this is the LU decomposition.
+ *
+ * \note This method has to determine which pivots should be considered nonzero.
+ * For that, it uses the threshold value that you can control by calling
+ * setThreshold(const RealScalar&).
+ */
+ inline Index rank() const
+ {
+ using std::abs;
+ eigen_assert(m_isInitialized && "LU is not initialized.");
+ RealScalar premultiplied_threshold = abs(m_maxpivot) * threshold();
+ Index result = 0;
+ for(Index i = 0; i < m_nonzero_pivots; ++i)
+ result += (abs(m_lu.coeff(i,i)) > premultiplied_threshold);
+ return result;
+ }
+
+ /** \returns the dimension of the kernel of the matrix of which *this is the LU decomposition.
+ *
+ * \note This method has to determine which pivots should be considered nonzero.
+ * For that, it uses the threshold value that you can control by calling
+ * setThreshold(const RealScalar&).
+ */
+ inline Index dimensionOfKernel() const
+ {
+ eigen_assert(m_isInitialized && "LU is not initialized.");
+ return cols() - rank();
+ }
+
+ /** \returns true if the matrix of which *this is the LU decomposition represents an injective
+ * linear map, i.e. has trivial kernel; false otherwise.
+ *
+ * \note This method has to determine which pivots should be considered nonzero.
+ * For that, it uses the threshold value that you can control by calling
+ * setThreshold(const RealScalar&).
+ */
+ inline bool isInjective() const
+ {
+ eigen_assert(m_isInitialized && "LU is not initialized.");
+ return rank() == cols();
+ }
+
+ /** \returns true if the matrix of which *this is the LU decomposition represents a surjective
+ * linear map; false otherwise.
+ *
+ * \note This method has to determine which pivots should be considered nonzero.
+ * For that, it uses the threshold value that you can control by calling
+ * setThreshold(const RealScalar&).
+ */
+ inline bool isSurjective() const
+ {
+ eigen_assert(m_isInitialized && "LU is not initialized.");
+ return rank() == rows();
+ }
+
+ /** \returns true if the matrix of which *this is the LU decomposition is invertible.
+ *
+ * \note This method has to determine which pivots should be considered nonzero.
+ * For that, it uses the threshold value that you can control by calling
+ * setThreshold(const RealScalar&).
+ */
+ inline bool isInvertible() const
+ {
+ eigen_assert(m_isInitialized && "LU is not initialized.");
+ return isInjective() && (m_lu.rows() == m_lu.cols());
+ }
+
+ /** \returns the inverse of the matrix of which *this is the LU decomposition.
+ *
+ * \note If this matrix is not invertible, the returned matrix has undefined coefficients.
+ * Use isInvertible() to first determine whether this matrix is invertible.
+ *
+ * \sa MatrixBase::inverse()
+ */
+ inline const Inverse<FullPivLU> inverse() const
+ {
+ eigen_assert(m_isInitialized && "LU is not initialized.");
+ eigen_assert(m_lu.rows() == m_lu.cols() && "You can't take the inverse of a non-square matrix!");
+ return Inverse<FullPivLU>(*this);
+ }
+
+ MatrixType reconstructedMatrix() const;
+
+ EIGEN_DEVICE_FUNC inline Index rows() const { return m_lu.rows(); }
+ EIGEN_DEVICE_FUNC inline Index cols() const { return m_lu.cols(); }
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ template<typename RhsType, typename DstType>
+ EIGEN_DEVICE_FUNC
+ void _solve_impl(const RhsType &rhs, DstType &dst) const;
+
+ template<bool Conjugate, typename RhsType, typename DstType>
+ EIGEN_DEVICE_FUNC
+ void _solve_impl_transposed(const RhsType &rhs, DstType &dst) const;
+ #endif
+
+ protected:
+
+ static void check_template_parameters()
+ {
+ EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+ }
+
+ void computeInPlace();
+
+ MatrixType m_lu;
+ PermutationPType m_p;
+ PermutationQType m_q;
+ IntColVectorType m_rowsTranspositions;
+ IntRowVectorType m_colsTranspositions;
+ Index m_nonzero_pivots;
+ RealScalar m_l1_norm;
+ RealScalar m_maxpivot, m_prescribedThreshold;
+ signed char m_det_pq;
+ bool m_isInitialized, m_usePrescribedThreshold;
+};
+
+template<typename MatrixType>
+FullPivLU<MatrixType>::FullPivLU()
+ : m_isInitialized(false), m_usePrescribedThreshold(false)
+{
+}
+
+template<typename MatrixType>
+FullPivLU<MatrixType>::FullPivLU(Index rows, Index cols)
+ : m_lu(rows, cols),
+ m_p(rows),
+ m_q(cols),
+ m_rowsTranspositions(rows),
+ m_colsTranspositions(cols),
+ m_isInitialized(false),
+ m_usePrescribedThreshold(false)
+{
+}
+
+template<typename MatrixType>
+template<typename InputType>
+FullPivLU<MatrixType>::FullPivLU(const EigenBase<InputType>& matrix)
+ : m_lu(matrix.rows(), matrix.cols()),
+ m_p(matrix.rows()),
+ m_q(matrix.cols()),
+ m_rowsTranspositions(matrix.rows()),
+ m_colsTranspositions(matrix.cols()),
+ m_isInitialized(false),
+ m_usePrescribedThreshold(false)
+{
+ compute(matrix.derived());
+}
+
+template<typename MatrixType>
+template<typename InputType>
+FullPivLU<MatrixType>::FullPivLU(EigenBase<InputType>& matrix)
+ : m_lu(matrix.derived()),
+ m_p(matrix.rows()),
+ m_q(matrix.cols()),
+ m_rowsTranspositions(matrix.rows()),
+ m_colsTranspositions(matrix.cols()),
+ m_isInitialized(false),
+ m_usePrescribedThreshold(false)
+{
+ computeInPlace();
+}
+
+template<typename MatrixType>
+void FullPivLU<MatrixType>::computeInPlace()
+{
+ check_template_parameters();
+
+ // the permutations are stored as int indices, so just to be sure:
+ eigen_assert(m_lu.rows()<=NumTraits<int>::highest() && m_lu.cols()<=NumTraits<int>::highest());
+
+ m_l1_norm = m_lu.cwiseAbs().colwise().sum().maxCoeff();
+
+ const Index size = m_lu.diagonalSize();
+ const Index rows = m_lu.rows();
+ const Index cols = m_lu.cols();
+
+ // will store the transpositions, before we accumulate them at the end.
+ // can't accumulate on-the-fly because that will be done in reverse order for the rows.
+ m_rowsTranspositions.resize(m_lu.rows());
+ m_colsTranspositions.resize(m_lu.cols());
+ Index number_of_transpositions = 0; // number of NONTRIVIAL transpositions, i.e. m_rowsTranspositions[i]!=i
+
+ m_nonzero_pivots = size; // the generic case is that in which all pivots are nonzero (invertible case)
+ m_maxpivot = RealScalar(0);
+
+ for(Index k = 0; k < size; ++k)
+ {
+ // First, we need to find the pivot.
+
+ // biggest coefficient in the remaining bottom-right corner (starting at row k, col k)
+ Index row_of_biggest_in_corner, col_of_biggest_in_corner;
+ typedef internal::scalar_score_coeff_op<Scalar> Scoring;
+ typedef typename Scoring::result_type Score;
+ Score biggest_in_corner;
+ biggest_in_corner = m_lu.bottomRightCorner(rows-k, cols-k)
+ .unaryExpr(Scoring())
+ .maxCoeff(&row_of_biggest_in_corner, &col_of_biggest_in_corner);
+ row_of_biggest_in_corner += k; // correct the values! since they were computed in the corner,
+ col_of_biggest_in_corner += k; // need to add k to them.
+
+ if(biggest_in_corner==Score(0))
+ {
+ // before exiting, make sure to initialize the still uninitialized transpositions
+ // in a sane state without destroying what we already have.
+ m_nonzero_pivots = k;
+ for(Index i = k; i < size; ++i)
+ {
+ m_rowsTranspositions.coeffRef(i) = i;
+ m_colsTranspositions.coeffRef(i) = i;
+ }
+ break;
+ }
+
+ RealScalar abs_pivot = internal::abs_knowing_score<Scalar>()(m_lu(row_of_biggest_in_corner, col_of_biggest_in_corner), biggest_in_corner);
+ if(abs_pivot > m_maxpivot) m_maxpivot = abs_pivot;
+
+ // Now that we've found the pivot, we need to apply the row/col swaps to
+ // bring it to the location (k,k).
+
+ m_rowsTranspositions.coeffRef(k) = row_of_biggest_in_corner;
+ m_colsTranspositions.coeffRef(k) = col_of_biggest_in_corner;
+ if(k != row_of_biggest_in_corner) {
+ m_lu.row(k).swap(m_lu.row(row_of_biggest_in_corner));
+ ++number_of_transpositions;
+ }
+ if(k != col_of_biggest_in_corner) {
+ m_lu.col(k).swap(m_lu.col(col_of_biggest_in_corner));
+ ++number_of_transpositions;
+ }
+
+ // Now that the pivot is at the right location, we update the remaining
+ // bottom-right corner by Gaussian elimination.
+
+ if(k<rows-1)
+ m_lu.col(k).tail(rows-k-1) /= m_lu.coeff(k,k);
+ if(k<size-1)
+ m_lu.block(k+1,k+1,rows-k-1,cols-k-1).noalias() -= m_lu.col(k).tail(rows-k-1) * m_lu.row(k).tail(cols-k-1);
+ }
+
+ // the main loop is over, we still have to accumulate the transpositions to find the
+ // permutations P and Q
+
+ m_p.setIdentity(rows);
+ for(Index k = size-1; k >= 0; --k)
+ m_p.applyTranspositionOnTheRight(k, m_rowsTranspositions.coeff(k));
+
+ m_q.setIdentity(cols);
+ for(Index k = 0; k < size; ++k)
+ m_q.applyTranspositionOnTheRight(k, m_colsTranspositions.coeff(k));
+
+ m_det_pq = (number_of_transpositions%2) ? -1 : 1;
+
+ m_isInitialized = true;
+}
+
+template<typename MatrixType>
+typename internal::traits<MatrixType>::Scalar FullPivLU<MatrixType>::determinant() const
+{
+ eigen_assert(m_isInitialized && "LU is not initialized.");
+ eigen_assert(m_lu.rows() == m_lu.cols() && "You can't take the determinant of a non-square matrix!");
+ return Scalar(m_det_pq) * Scalar(m_lu.diagonal().prod());
+}
+
+/** \returns the matrix represented by the decomposition,
+ * i.e., it returns the product: \f$ P^{-1} L U Q^{-1} \f$.
+ * This function is provided for debug purposes. */
+template<typename MatrixType>
+MatrixType FullPivLU<MatrixType>::reconstructedMatrix() const
+{
+ eigen_assert(m_isInitialized && "LU is not initialized.");
+ const Index smalldim = (std::min)(m_lu.rows(), m_lu.cols());
+ // LU
+ MatrixType res(m_lu.rows(),m_lu.cols());
+ // FIXME the .toDenseMatrix() should not be needed...
+ res = m_lu.leftCols(smalldim)
+ .template triangularView<UnitLower>().toDenseMatrix()
+ * m_lu.topRows(smalldim)
+ .template triangularView<Upper>().toDenseMatrix();
+
+ // P^{-1}(LU)
+ res = m_p.inverse() * res;
+
+ // (P^{-1}LU)Q^{-1}
+ res = res * m_q.inverse();
+
+ return res;
+}
+
+/********* Implementation of kernel() **************************************************/
+
+namespace internal {
+template<typename _MatrixType>
+struct kernel_retval<FullPivLU<_MatrixType> >
+ : kernel_retval_base<FullPivLU<_MatrixType> >
+{
+ EIGEN_MAKE_KERNEL_HELPERS(FullPivLU<_MatrixType>)
+
+ enum { MaxSmallDimAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(
+ MatrixType::MaxColsAtCompileTime,
+ MatrixType::MaxRowsAtCompileTime)
+ };
+
+ template<typename Dest> void evalTo(Dest& dst) const
+ {
+ using std::abs;
+ const Index cols = dec().matrixLU().cols(), dimker = cols - rank();
+ if(dimker == 0)
+ {
+ // The Kernel is just {0}, so it doesn't have a basis properly speaking, but let's
+ // avoid crashing/asserting as that depends on floating point calculations. Let's
+ // just return a single column vector filled with zeros.
+ dst.setZero();
+ return;
+ }
+
+ /* Let us use the following lemma:
+ *
+ * Lemma: If the matrix A has the LU decomposition PAQ = LU,
+ * then Ker A = Q(Ker U).
+ *
+ * Proof: trivial: just keep in mind that P, Q, L are invertible.
+ */
+
+ /* Thus, all we need to do is to compute Ker U, and then apply Q.
+ *
+ * U is upper triangular, with eigenvalues sorted so that any zeros appear at the end.
+ * Thus, the diagonal of U ends with exactly
+ * dimKer zero's. Let us use that to construct dimKer linearly
+ * independent vectors in Ker U.
+ */
+
+ Matrix<Index, Dynamic, 1, 0, MaxSmallDimAtCompileTime, 1> pivots(rank());
+ RealScalar premultiplied_threshold = dec().maxPivot() * dec().threshold();
+ Index p = 0;
+ for(Index i = 0; i < dec().nonzeroPivots(); ++i)
+ if(abs(dec().matrixLU().coeff(i,i)) > premultiplied_threshold)
+ pivots.coeffRef(p++) = i;
+ eigen_internal_assert(p == rank());
+
+ // we construct a temporaty trapezoid matrix m, by taking the U matrix and
+ // permuting the rows and cols to bring the nonnegligible pivots to the top of
+ // the main diagonal. We need that to be able to apply our triangular solvers.
+ // FIXME when we get triangularView-for-rectangular-matrices, this can be simplified
+ Matrix<typename MatrixType::Scalar, Dynamic, Dynamic, MatrixType::Options,
+ MaxSmallDimAtCompileTime, MatrixType::MaxColsAtCompileTime>
+ m(dec().matrixLU().block(0, 0, rank(), cols));
+ for(Index i = 0; i < rank(); ++i)
+ {
+ if(i) m.row(i).head(i).setZero();
+ m.row(i).tail(cols-i) = dec().matrixLU().row(pivots.coeff(i)).tail(cols-i);
+ }
+ m.block(0, 0, rank(), rank());
+ m.block(0, 0, rank(), rank()).template triangularView<StrictlyLower>().setZero();
+ for(Index i = 0; i < rank(); ++i)
+ m.col(i).swap(m.col(pivots.coeff(i)));
+
+ // ok, we have our trapezoid matrix, we can apply the triangular solver.
+ // notice that the math behind this suggests that we should apply this to the
+ // negative of the RHS, but for performance we just put the negative sign elsewhere, see below.
+ m.topLeftCorner(rank(), rank())
+ .template triangularView<Upper>().solveInPlace(
+ m.topRightCorner(rank(), dimker)
+ );
+
+ // now we must undo the column permutation that we had applied!
+ for(Index i = rank()-1; i >= 0; --i)
+ m.col(i).swap(m.col(pivots.coeff(i)));
+
+ // see the negative sign in the next line, that's what we were talking about above.
+ for(Index i = 0; i < rank(); ++i) dst.row(dec().permutationQ().indices().coeff(i)) = -m.row(i).tail(dimker);
+ for(Index i = rank(); i < cols; ++i) dst.row(dec().permutationQ().indices().coeff(i)).setZero();
+ for(Index k = 0; k < dimker; ++k) dst.coeffRef(dec().permutationQ().indices().coeff(rank()+k), k) = Scalar(1);
+ }
+};
+
+/***** Implementation of image() *****************************************************/
+
+template<typename _MatrixType>
+struct image_retval<FullPivLU<_MatrixType> >
+ : image_retval_base<FullPivLU<_MatrixType> >
+{
+ EIGEN_MAKE_IMAGE_HELPERS(FullPivLU<_MatrixType>)
+
+ enum { MaxSmallDimAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(
+ MatrixType::MaxColsAtCompileTime,
+ MatrixType::MaxRowsAtCompileTime)
+ };
+
+ template<typename Dest> void evalTo(Dest& dst) const
+ {
+ using std::abs;
+ if(rank() == 0)
+ {
+ // The Image is just {0}, so it doesn't have a basis properly speaking, but let's
+ // avoid crashing/asserting as that depends on floating point calculations. Let's
+ // just return a single column vector filled with zeros.
+ dst.setZero();
+ return;
+ }
+
+ Matrix<Index, Dynamic, 1, 0, MaxSmallDimAtCompileTime, 1> pivots(rank());
+ RealScalar premultiplied_threshold = dec().maxPivot() * dec().threshold();
+ Index p = 0;
+ for(Index i = 0; i < dec().nonzeroPivots(); ++i)
+ if(abs(dec().matrixLU().coeff(i,i)) > premultiplied_threshold)
+ pivots.coeffRef(p++) = i;
+ eigen_internal_assert(p == rank());
+
+ for(Index i = 0; i < rank(); ++i)
+ dst.col(i) = originalMatrix().col(dec().permutationQ().indices().coeff(pivots.coeff(i)));
+ }
+};
+
+/***** Implementation of solve() *****************************************************/
+
+} // end namespace internal
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+template<typename _MatrixType>
+template<typename RhsType, typename DstType>
+void FullPivLU<_MatrixType>::_solve_impl(const RhsType &rhs, DstType &dst) const
+{
+ /* The decomposition PAQ = LU can be rewritten as A = P^{-1} L U Q^{-1}.
+ * So we proceed as follows:
+ * Step 1: compute c = P * rhs.
+ * Step 2: replace c by the solution x to Lx = c. Exists because L is invertible.
+ * Step 3: replace c by the solution x to Ux = c. May or may not exist.
+ * Step 4: result = Q * c;
+ */
+
+ const Index rows = this->rows(),
+ cols = this->cols(),
+ nonzero_pivots = this->rank();
+ eigen_assert(rhs.rows() == rows);
+ const Index smalldim = (std::min)(rows, cols);
+
+ if(nonzero_pivots == 0)
+ {
+ dst.setZero();
+ return;
+ }
+
+ typename RhsType::PlainObject c(rhs.rows(), rhs.cols());
+
+ // Step 1
+ c = permutationP() * rhs;
+
+ // Step 2
+ m_lu.topLeftCorner(smalldim,smalldim)
+ .template triangularView<UnitLower>()
+ .solveInPlace(c.topRows(smalldim));
+ if(rows>cols)
+ c.bottomRows(rows-cols) -= m_lu.bottomRows(rows-cols) * c.topRows(cols);
+
+ // Step 3
+ m_lu.topLeftCorner(nonzero_pivots, nonzero_pivots)
+ .template triangularView<Upper>()
+ .solveInPlace(c.topRows(nonzero_pivots));
+
+ // Step 4
+ for(Index i = 0; i < nonzero_pivots; ++i)
+ dst.row(permutationQ().indices().coeff(i)) = c.row(i);
+ for(Index i = nonzero_pivots; i < m_lu.cols(); ++i)
+ dst.row(permutationQ().indices().coeff(i)).setZero();
+}
+
+template<typename _MatrixType>
+template<bool Conjugate, typename RhsType, typename DstType>
+void FullPivLU<_MatrixType>::_solve_impl_transposed(const RhsType &rhs, DstType &dst) const
+{
+ /* The decomposition PAQ = LU can be rewritten as A = P^{-1} L U Q^{-1},
+ * and since permutations are real and unitary, we can write this
+ * as A^T = Q U^T L^T P,
+ * So we proceed as follows:
+ * Step 1: compute c = Q^T rhs.
+ * Step 2: replace c by the solution x to U^T x = c. May or may not exist.
+ * Step 3: replace c by the solution x to L^T x = c.
+ * Step 4: result = P^T c.
+ * If Conjugate is true, replace "^T" by "^*" above.
+ */
+
+ const Index rows = this->rows(), cols = this->cols(),
+ nonzero_pivots = this->rank();
+ eigen_assert(rhs.rows() == cols);
+ const Index smalldim = (std::min)(rows, cols);
+
+ if(nonzero_pivots == 0)
+ {
+ dst.setZero();
+ return;
+ }
+
+ typename RhsType::PlainObject c(rhs.rows(), rhs.cols());
+
+ // Step 1
+ c = permutationQ().inverse() * rhs;
+
+ if (Conjugate) {
+ // Step 2
+ m_lu.topLeftCorner(nonzero_pivots, nonzero_pivots)
+ .template triangularView<Upper>()
+ .adjoint()
+ .solveInPlace(c.topRows(nonzero_pivots));
+ // Step 3
+ m_lu.topLeftCorner(smalldim, smalldim)
+ .template triangularView<UnitLower>()
+ .adjoint()
+ .solveInPlace(c.topRows(smalldim));
+ } else {
+ // Step 2
+ m_lu.topLeftCorner(nonzero_pivots, nonzero_pivots)
+ .template triangularView<Upper>()
+ .transpose()
+ .solveInPlace(c.topRows(nonzero_pivots));
+ // Step 3
+ m_lu.topLeftCorner(smalldim, smalldim)
+ .template triangularView<UnitLower>()
+ .transpose()
+ .solveInPlace(c.topRows(smalldim));
+ }
+
+ // Step 4
+ PermutationPType invp = permutationP().inverse().eval();
+ for(Index i = 0; i < smalldim; ++i)
+ dst.row(invp.indices().coeff(i)) = c.row(i);
+ for(Index i = smalldim; i < rows; ++i)
+ dst.row(invp.indices().coeff(i)).setZero();
+}
+
+#endif
+
+namespace internal {
+
+
+/***** Implementation of inverse() *****************************************************/
+template<typename DstXprType, typename MatrixType>
+struct Assignment<DstXprType, Inverse<FullPivLU<MatrixType> >, internal::assign_op<typename DstXprType::Scalar,typename FullPivLU<MatrixType>::Scalar>, Dense2Dense>
+{
+ typedef FullPivLU<MatrixType> LuType;
+ typedef Inverse<LuType> SrcXprType;
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<typename DstXprType::Scalar,typename MatrixType::Scalar> &)
+ {
+ dst = src.nestedExpression().solve(MatrixType::Identity(src.rows(), src.cols()));
+ }
+};
+} // end namespace internal
+
+/******* MatrixBase methods *****************************************************************/
+
+/** \lu_module
+ *
+ * \return the full-pivoting LU decomposition of \c *this.
+ *
+ * \sa class FullPivLU
+ */
+template<typename Derived>
+inline const FullPivLU<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::fullPivLu() const
+{
+ return FullPivLU<PlainObject>(eval());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_LU_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/LU/InverseImpl.h b/runtimes/nn/depend/external/eigen/Eigen/src/LU/InverseImpl.h
new file mode 100644
index 000000000..018f99b58
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/LU/InverseImpl.h
@@ -0,0 +1,415 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_INVERSE_IMPL_H
+#define EIGEN_INVERSE_IMPL_H
+
+namespace Eigen {
+
+namespace internal {
+
+/**********************************
+*** General case implementation ***
+**********************************/
+
+template<typename MatrixType, typename ResultType, int Size = MatrixType::RowsAtCompileTime>
+struct compute_inverse
+{
+ EIGEN_DEVICE_FUNC
+ static inline void run(const MatrixType& matrix, ResultType& result)
+ {
+ result = matrix.partialPivLu().inverse();
+ }
+};
+
+template<typename MatrixType, typename ResultType, int Size = MatrixType::RowsAtCompileTime>
+struct compute_inverse_and_det_with_check { /* nothing! general case not supported. */ };
+
+/****************************
+*** Size 1 implementation ***
+****************************/
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse<MatrixType, ResultType, 1>
+{
+ EIGEN_DEVICE_FUNC
+ static inline void run(const MatrixType& matrix, ResultType& result)
+ {
+ typedef typename MatrixType::Scalar Scalar;
+ internal::evaluator<MatrixType> matrixEval(matrix);
+ result.coeffRef(0,0) = Scalar(1) / matrixEval.coeff(0,0);
+ }
+};
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse_and_det_with_check<MatrixType, ResultType, 1>
+{
+ EIGEN_DEVICE_FUNC
+ static inline void run(
+ const MatrixType& matrix,
+ const typename MatrixType::RealScalar& absDeterminantThreshold,
+ ResultType& result,
+ typename ResultType::Scalar& determinant,
+ bool& invertible
+ )
+ {
+ using std::abs;
+ determinant = matrix.coeff(0,0);
+ invertible = abs(determinant) > absDeterminantThreshold;
+ if(invertible) result.coeffRef(0,0) = typename ResultType::Scalar(1) / determinant;
+ }
+};
+
+/****************************
+*** Size 2 implementation ***
+****************************/
+
+template<typename MatrixType, typename ResultType>
+EIGEN_DEVICE_FUNC
+inline void compute_inverse_size2_helper(
+ const MatrixType& matrix, const typename ResultType::Scalar& invdet,
+ ResultType& result)
+{
+ result.coeffRef(0,0) = matrix.coeff(1,1) * invdet;
+ result.coeffRef(1,0) = -matrix.coeff(1,0) * invdet;
+ result.coeffRef(0,1) = -matrix.coeff(0,1) * invdet;
+ result.coeffRef(1,1) = matrix.coeff(0,0) * invdet;
+}
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse<MatrixType, ResultType, 2>
+{
+ EIGEN_DEVICE_FUNC
+ static inline void run(const MatrixType& matrix, ResultType& result)
+ {
+ typedef typename ResultType::Scalar Scalar;
+ const Scalar invdet = typename MatrixType::Scalar(1) / matrix.determinant();
+ compute_inverse_size2_helper(matrix, invdet, result);
+ }
+};
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse_and_det_with_check<MatrixType, ResultType, 2>
+{
+ EIGEN_DEVICE_FUNC
+ static inline void run(
+ const MatrixType& matrix,
+ const typename MatrixType::RealScalar& absDeterminantThreshold,
+ ResultType& inverse,
+ typename ResultType::Scalar& determinant,
+ bool& invertible
+ )
+ {
+ using std::abs;
+ typedef typename ResultType::Scalar Scalar;
+ determinant = matrix.determinant();
+ invertible = abs(determinant) > absDeterminantThreshold;
+ if(!invertible) return;
+ const Scalar invdet = Scalar(1) / determinant;
+ compute_inverse_size2_helper(matrix, invdet, inverse);
+ }
+};
+
+/****************************
+*** Size 3 implementation ***
+****************************/
+
+template<typename MatrixType, int i, int j>
+EIGEN_DEVICE_FUNC
+inline typename MatrixType::Scalar cofactor_3x3(const MatrixType& m)
+{
+ enum {
+ i1 = (i+1) % 3,
+ i2 = (i+2) % 3,
+ j1 = (j+1) % 3,
+ j2 = (j+2) % 3
+ };
+ return m.coeff(i1, j1) * m.coeff(i2, j2)
+ - m.coeff(i1, j2) * m.coeff(i2, j1);
+}
+
+template<typename MatrixType, typename ResultType>
+EIGEN_DEVICE_FUNC
+inline void compute_inverse_size3_helper(
+ const MatrixType& matrix,
+ const typename ResultType::Scalar& invdet,
+ const Matrix<typename ResultType::Scalar,3,1>& cofactors_col0,
+ ResultType& result)
+{
+ result.row(0) = cofactors_col0 * invdet;
+ result.coeffRef(1,0) = cofactor_3x3<MatrixType,0,1>(matrix) * invdet;
+ result.coeffRef(1,1) = cofactor_3x3<MatrixType,1,1>(matrix) * invdet;
+ result.coeffRef(1,2) = cofactor_3x3<MatrixType,2,1>(matrix) * invdet;
+ result.coeffRef(2,0) = cofactor_3x3<MatrixType,0,2>(matrix) * invdet;
+ result.coeffRef(2,1) = cofactor_3x3<MatrixType,1,2>(matrix) * invdet;
+ result.coeffRef(2,2) = cofactor_3x3<MatrixType,2,2>(matrix) * invdet;
+}
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse<MatrixType, ResultType, 3>
+{
+ EIGEN_DEVICE_FUNC
+ static inline void run(const MatrixType& matrix, ResultType& result)
+ {
+ typedef typename ResultType::Scalar Scalar;
+ Matrix<typename MatrixType::Scalar,3,1> cofactors_col0;
+ cofactors_col0.coeffRef(0) = cofactor_3x3<MatrixType,0,0>(matrix);
+ cofactors_col0.coeffRef(1) = cofactor_3x3<MatrixType,1,0>(matrix);
+ cofactors_col0.coeffRef(2) = cofactor_3x3<MatrixType,2,0>(matrix);
+ const Scalar det = (cofactors_col0.cwiseProduct(matrix.col(0))).sum();
+ const Scalar invdet = Scalar(1) / det;
+ compute_inverse_size3_helper(matrix, invdet, cofactors_col0, result);
+ }
+};
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse_and_det_with_check<MatrixType, ResultType, 3>
+{
+ EIGEN_DEVICE_FUNC
+ static inline void run(
+ const MatrixType& matrix,
+ const typename MatrixType::RealScalar& absDeterminantThreshold,
+ ResultType& inverse,
+ typename ResultType::Scalar& determinant,
+ bool& invertible
+ )
+ {
+ using std::abs;
+ typedef typename ResultType::Scalar Scalar;
+ Matrix<Scalar,3,1> cofactors_col0;
+ cofactors_col0.coeffRef(0) = cofactor_3x3<MatrixType,0,0>(matrix);
+ cofactors_col0.coeffRef(1) = cofactor_3x3<MatrixType,1,0>(matrix);
+ cofactors_col0.coeffRef(2) = cofactor_3x3<MatrixType,2,0>(matrix);
+ determinant = (cofactors_col0.cwiseProduct(matrix.col(0))).sum();
+ invertible = abs(determinant) > absDeterminantThreshold;
+ if(!invertible) return;
+ const Scalar invdet = Scalar(1) / determinant;
+ compute_inverse_size3_helper(matrix, invdet, cofactors_col0, inverse);
+ }
+};
+
+/****************************
+*** Size 4 implementation ***
+****************************/
+
+template<typename Derived>
+EIGEN_DEVICE_FUNC
+inline const typename Derived::Scalar general_det3_helper
+(const MatrixBase<Derived>& matrix, int i1, int i2, int i3, int j1, int j2, int j3)
+{
+ return matrix.coeff(i1,j1)
+ * (matrix.coeff(i2,j2) * matrix.coeff(i3,j3) - matrix.coeff(i2,j3) * matrix.coeff(i3,j2));
+}
+
+template<typename MatrixType, int i, int j>
+EIGEN_DEVICE_FUNC
+inline typename MatrixType::Scalar cofactor_4x4(const MatrixType& matrix)
+{
+ enum {
+ i1 = (i+1) % 4,
+ i2 = (i+2) % 4,
+ i3 = (i+3) % 4,
+ j1 = (j+1) % 4,
+ j2 = (j+2) % 4,
+ j3 = (j+3) % 4
+ };
+ return general_det3_helper(matrix, i1, i2, i3, j1, j2, j3)
+ + general_det3_helper(matrix, i2, i3, i1, j1, j2, j3)
+ + general_det3_helper(matrix, i3, i1, i2, j1, j2, j3);
+}
+
+template<int Arch, typename Scalar, typename MatrixType, typename ResultType>
+struct compute_inverse_size4
+{
+ EIGEN_DEVICE_FUNC
+ static void run(const MatrixType& matrix, ResultType& result)
+ {
+ result.coeffRef(0,0) = cofactor_4x4<MatrixType,0,0>(matrix);
+ result.coeffRef(1,0) = -cofactor_4x4<MatrixType,0,1>(matrix);
+ result.coeffRef(2,0) = cofactor_4x4<MatrixType,0,2>(matrix);
+ result.coeffRef(3,0) = -cofactor_4x4<MatrixType,0,3>(matrix);
+ result.coeffRef(0,2) = cofactor_4x4<MatrixType,2,0>(matrix);
+ result.coeffRef(1,2) = -cofactor_4x4<MatrixType,2,1>(matrix);
+ result.coeffRef(2,2) = cofactor_4x4<MatrixType,2,2>(matrix);
+ result.coeffRef(3,2) = -cofactor_4x4<MatrixType,2,3>(matrix);
+ result.coeffRef(0,1) = -cofactor_4x4<MatrixType,1,0>(matrix);
+ result.coeffRef(1,1) = cofactor_4x4<MatrixType,1,1>(matrix);
+ result.coeffRef(2,1) = -cofactor_4x4<MatrixType,1,2>(matrix);
+ result.coeffRef(3,1) = cofactor_4x4<MatrixType,1,3>(matrix);
+ result.coeffRef(0,3) = -cofactor_4x4<MatrixType,3,0>(matrix);
+ result.coeffRef(1,3) = cofactor_4x4<MatrixType,3,1>(matrix);
+ result.coeffRef(2,3) = -cofactor_4x4<MatrixType,3,2>(matrix);
+ result.coeffRef(3,3) = cofactor_4x4<MatrixType,3,3>(matrix);
+ result /= (matrix.col(0).cwiseProduct(result.row(0).transpose())).sum();
+ }
+};
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse<MatrixType, ResultType, 4>
+ : compute_inverse_size4<Architecture::Target, typename MatrixType::Scalar,
+ MatrixType, ResultType>
+{
+};
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse_and_det_with_check<MatrixType, ResultType, 4>
+{
+ EIGEN_DEVICE_FUNC
+ static inline void run(
+ const MatrixType& matrix,
+ const typename MatrixType::RealScalar& absDeterminantThreshold,
+ ResultType& inverse,
+ typename ResultType::Scalar& determinant,
+ bool& invertible
+ )
+ {
+ using std::abs;
+ determinant = matrix.determinant();
+ invertible = abs(determinant) > absDeterminantThreshold;
+ if(invertible) compute_inverse<MatrixType, ResultType>::run(matrix, inverse);
+ }
+};
+
+/*************************
+*** MatrixBase methods ***
+*************************/
+
+} // end namespace internal
+
+namespace internal {
+
+// Specialization for "dense = dense_xpr.inverse()"
+template<typename DstXprType, typename XprType>
+struct Assignment<DstXprType, Inverse<XprType>, internal::assign_op<typename DstXprType::Scalar,typename XprType::Scalar>, Dense2Dense>
+{
+ typedef Inverse<XprType> SrcXprType;
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<typename DstXprType::Scalar,typename XprType::Scalar> &)
+ {
+ Index dstRows = src.rows();
+ Index dstCols = src.cols();
+ if((dst.rows()!=dstRows) || (dst.cols()!=dstCols))
+ dst.resize(dstRows, dstCols);
+
+ const int Size = EIGEN_PLAIN_ENUM_MIN(XprType::ColsAtCompileTime,DstXprType::ColsAtCompileTime);
+ EIGEN_ONLY_USED_FOR_DEBUG(Size);
+ eigen_assert(( (Size<=1) || (Size>4) || (extract_data(src.nestedExpression())!=extract_data(dst)))
+ && "Aliasing problem detected in inverse(), you need to do inverse().eval() here.");
+
+ typedef typename internal::nested_eval<XprType,XprType::ColsAtCompileTime>::type ActualXprType;
+ typedef typename internal::remove_all<ActualXprType>::type ActualXprTypeCleanded;
+
+ ActualXprType actual_xpr(src.nestedExpression());
+
+ compute_inverse<ActualXprTypeCleanded, DstXprType>::run(actual_xpr, dst);
+ }
+};
+
+
+} // end namespace internal
+
+/** \lu_module
+ *
+ * \returns the matrix inverse of this matrix.
+ *
+ * For small fixed sizes up to 4x4, this method uses cofactors.
+ * In the general case, this method uses class PartialPivLU.
+ *
+ * \note This matrix must be invertible, otherwise the result is undefined. If you need an
+ * invertibility check, do the following:
+ * \li for fixed sizes up to 4x4, use computeInverseAndDetWithCheck().
+ * \li for the general case, use class FullPivLU.
+ *
+ * Example: \include MatrixBase_inverse.cpp
+ * Output: \verbinclude MatrixBase_inverse.out
+ *
+ * \sa computeInverseAndDetWithCheck()
+ */
+template<typename Derived>
+inline const Inverse<Derived> MatrixBase<Derived>::inverse() const
+{
+ EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsInteger,THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES)
+ eigen_assert(rows() == cols());
+ return Inverse<Derived>(derived());
+}
+
+/** \lu_module
+ *
+ * Computation of matrix inverse and determinant, with invertibility check.
+ *
+ * This is only for fixed-size square matrices of size up to 4x4.
+ *
+ * \param inverse Reference to the matrix in which to store the inverse.
+ * \param determinant Reference to the variable in which to store the determinant.
+ * \param invertible Reference to the bool variable in which to store whether the matrix is invertible.
+ * \param absDeterminantThreshold Optional parameter controlling the invertibility check.
+ * The matrix will be declared invertible if the absolute value of its
+ * determinant is greater than this threshold.
+ *
+ * Example: \include MatrixBase_computeInverseAndDetWithCheck.cpp
+ * Output: \verbinclude MatrixBase_computeInverseAndDetWithCheck.out
+ *
+ * \sa inverse(), computeInverseWithCheck()
+ */
+template<typename Derived>
+template<typename ResultType>
+inline void MatrixBase<Derived>::computeInverseAndDetWithCheck(
+ ResultType& inverse,
+ typename ResultType::Scalar& determinant,
+ bool& invertible,
+ const RealScalar& absDeterminantThreshold
+ ) const
+{
+ // i'd love to put some static assertions there, but SFINAE means that they have no effect...
+ eigen_assert(rows() == cols());
+ // for 2x2, it's worth giving a chance to avoid evaluating.
+ // for larger sizes, evaluating has negligible cost and limits code size.
+ typedef typename internal::conditional<
+ RowsAtCompileTime == 2,
+ typename internal::remove_all<typename internal::nested_eval<Derived, 2>::type>::type,
+ PlainObject
+ >::type MatrixType;
+ internal::compute_inverse_and_det_with_check<MatrixType, ResultType>::run
+ (derived(), absDeterminantThreshold, inverse, determinant, invertible);
+}
+
+/** \lu_module
+ *
+ * Computation of matrix inverse, with invertibility check.
+ *
+ * This is only for fixed-size square matrices of size up to 4x4.
+ *
+ * \param inverse Reference to the matrix in which to store the inverse.
+ * \param invertible Reference to the bool variable in which to store whether the matrix is invertible.
+ * \param absDeterminantThreshold Optional parameter controlling the invertibility check.
+ * The matrix will be declared invertible if the absolute value of its
+ * determinant is greater than this threshold.
+ *
+ * Example: \include MatrixBase_computeInverseWithCheck.cpp
+ * Output: \verbinclude MatrixBase_computeInverseWithCheck.out
+ *
+ * \sa inverse(), computeInverseAndDetWithCheck()
+ */
+template<typename Derived>
+template<typename ResultType>
+inline void MatrixBase<Derived>::computeInverseWithCheck(
+ ResultType& inverse,
+ bool& invertible,
+ const RealScalar& absDeterminantThreshold
+ ) const
+{
+ RealScalar determinant;
+ // i'd love to put some static assertions there, but SFINAE means that they have no effect...
+ eigen_assert(rows() == cols());
+ computeInverseAndDetWithCheck(inverse,determinant,invertible,absDeterminantThreshold);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_INVERSE_IMPL_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/LU/PartialPivLU.h b/runtimes/nn/depend/external/eigen/Eigen/src/LU/PartialPivLU.h
new file mode 100644
index 000000000..d43961887
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/LU/PartialPivLU.h
@@ -0,0 +1,611 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PARTIALLU_H
+#define EIGEN_PARTIALLU_H
+
+namespace Eigen {
+
+namespace internal {
+template<typename _MatrixType> struct traits<PartialPivLU<_MatrixType> >
+ : traits<_MatrixType>
+{
+ typedef MatrixXpr XprKind;
+ typedef SolverStorage StorageKind;
+ typedef traits<_MatrixType> BaseTraits;
+ enum {
+ Flags = BaseTraits::Flags & RowMajorBit,
+ CoeffReadCost = Dynamic
+ };
+};
+
+template<typename T,typename Derived>
+struct enable_if_ref;
+// {
+// typedef Derived type;
+// };
+
+template<typename T,typename Derived>
+struct enable_if_ref<Ref<T>,Derived> {
+ typedef Derived type;
+};
+
+} // end namespace internal
+
+/** \ingroup LU_Module
+ *
+ * \class PartialPivLU
+ *
+ * \brief LU decomposition of a matrix with partial pivoting, and related features
+ *
+ * \tparam _MatrixType the type of the matrix of which we are computing the LU decomposition
+ *
+ * This class represents a LU decomposition of a \b square \b invertible matrix, with partial pivoting: the matrix A
+ * is decomposed as A = PLU where L is unit-lower-triangular, U is upper-triangular, and P
+ * is a permutation matrix.
+ *
+ * Typically, partial pivoting LU decomposition is only considered numerically stable for square invertible
+ * matrices. Thus LAPACK's dgesv and dgesvx require the matrix to be square and invertible. The present class
+ * does the same. It will assert that the matrix is square, but it won't (actually it can't) check that the
+ * matrix is invertible: it is your task to check that you only use this decomposition on invertible matrices.
+ *
+ * The guaranteed safe alternative, working for all matrices, is the full pivoting LU decomposition, provided
+ * by class FullPivLU.
+ *
+ * This is \b not a rank-revealing LU decomposition. Many features are intentionally absent from this class,
+ * such as rank computation. If you need these features, use class FullPivLU.
+ *
+ * This LU decomposition is suitable to invert invertible matrices. It is what MatrixBase::inverse() uses
+ * in the general case.
+ * On the other hand, it is \b not suitable to determine whether a given matrix is invertible.
+ *
+ * The data of the LU decomposition can be directly accessed through the methods matrixLU(), permutationP().
+ *
+ * This class supports the \link InplaceDecomposition inplace decomposition \endlink mechanism.
+ *
+ * \sa MatrixBase::partialPivLu(), MatrixBase::determinant(), MatrixBase::inverse(), MatrixBase::computeInverse(), class FullPivLU
+ */
+template<typename _MatrixType> class PartialPivLU
+ : public SolverBase<PartialPivLU<_MatrixType> >
+{
+ public:
+
+ typedef _MatrixType MatrixType;
+ typedef SolverBase<PartialPivLU> Base;
+ EIGEN_GENERIC_PUBLIC_INTERFACE(PartialPivLU)
+ // FIXME StorageIndex defined in EIGEN_GENERIC_PUBLIC_INTERFACE should be int
+ enum {
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+ typedef PermutationMatrix<RowsAtCompileTime, MaxRowsAtCompileTime> PermutationType;
+ typedef Transpositions<RowsAtCompileTime, MaxRowsAtCompileTime> TranspositionType;
+ typedef typename MatrixType::PlainObject PlainObject;
+
+ /**
+ * \brief Default Constructor.
+ *
+ * The default constructor is useful in cases in which the user intends to
+ * perform decompositions via PartialPivLU::compute(const MatrixType&).
+ */
+ PartialPivLU();
+
+ /** \brief Default Constructor with memory preallocation
+ *
+ * Like the default constructor but with preallocation of the internal data
+ * according to the specified problem \a size.
+ * \sa PartialPivLU()
+ */
+ explicit PartialPivLU(Index size);
+
+ /** Constructor.
+ *
+ * \param matrix the matrix of which to compute the LU decomposition.
+ *
+ * \warning The matrix should have full rank (e.g. if it's square, it should be invertible).
+ * If you need to deal with non-full rank, use class FullPivLU instead.
+ */
+ template<typename InputType>
+ explicit PartialPivLU(const EigenBase<InputType>& matrix);
+
+ /** Constructor for \link InplaceDecomposition inplace decomposition \endlink
+ *
+ * \param matrix the matrix of which to compute the LU decomposition.
+ *
+ * \warning The matrix should have full rank (e.g. if it's square, it should be invertible).
+ * If you need to deal with non-full rank, use class FullPivLU instead.
+ */
+ template<typename InputType>
+ explicit PartialPivLU(EigenBase<InputType>& matrix);
+
+ template<typename InputType>
+ PartialPivLU& compute(const EigenBase<InputType>& matrix) {
+ m_lu = matrix.derived();
+ compute();
+ return *this;
+ }
+
+ /** \returns the LU decomposition matrix: the upper-triangular part is U, the
+ * unit-lower-triangular part is L (at least for square matrices; in the non-square
+ * case, special care is needed, see the documentation of class FullPivLU).
+ *
+ * \sa matrixL(), matrixU()
+ */
+ inline const MatrixType& matrixLU() const
+ {
+ eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
+ return m_lu;
+ }
+
+ /** \returns the permutation matrix P.
+ */
+ inline const PermutationType& permutationP() const
+ {
+ eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
+ return m_p;
+ }
+
+ /** This method returns the solution x to the equation Ax=b, where A is the matrix of which
+ * *this is the LU decomposition.
+ *
+ * \param b the right-hand-side of the equation to solve. Can be a vector or a matrix,
+ * the only requirement in order for the equation to make sense is that
+ * b.rows()==A.rows(), where A is the matrix of which *this is the LU decomposition.
+ *
+ * \returns the solution.
+ *
+ * Example: \include PartialPivLU_solve.cpp
+ * Output: \verbinclude PartialPivLU_solve.out
+ *
+ * Since this PartialPivLU class assumes anyway that the matrix A is invertible, the solution
+ * theoretically exists and is unique regardless of b.
+ *
+ * \sa TriangularView::solve(), inverse(), computeInverse()
+ */
+ // FIXME this is a copy-paste of the base-class member to add the isInitialized assertion.
+ template<typename Rhs>
+ inline const Solve<PartialPivLU, Rhs>
+ solve(const MatrixBase<Rhs>& b) const
+ {
+ eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
+ return Solve<PartialPivLU, Rhs>(*this, b.derived());
+ }
+
+ /** \returns an estimate of the reciprocal condition number of the matrix of which \c *this is
+ the LU decomposition.
+ */
+ inline RealScalar rcond() const
+ {
+ eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
+ return internal::rcond_estimate_helper(m_l1_norm, *this);
+ }
+
+ /** \returns the inverse of the matrix of which *this is the LU decomposition.
+ *
+ * \warning The matrix being decomposed here is assumed to be invertible. If you need to check for
+ * invertibility, use class FullPivLU instead.
+ *
+ * \sa MatrixBase::inverse(), LU::inverse()
+ */
+ inline const Inverse<PartialPivLU> inverse() const
+ {
+ eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
+ return Inverse<PartialPivLU>(*this);
+ }
+
+ /** \returns the determinant of the matrix of which
+ * *this is the LU decomposition. It has only linear complexity
+ * (that is, O(n) where n is the dimension of the square matrix)
+ * as the LU decomposition has already been computed.
+ *
+ * \note For fixed-size matrices of size up to 4, MatrixBase::determinant() offers
+ * optimized paths.
+ *
+ * \warning a determinant can be very big or small, so for matrices
+ * of large enough dimension, there is a risk of overflow/underflow.
+ *
+ * \sa MatrixBase::determinant()
+ */
+ Scalar determinant() const;
+
+ MatrixType reconstructedMatrix() const;
+
+ inline Index rows() const { return m_lu.rows(); }
+ inline Index cols() const { return m_lu.cols(); }
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ template<typename RhsType, typename DstType>
+ EIGEN_DEVICE_FUNC
+ void _solve_impl(const RhsType &rhs, DstType &dst) const {
+ /* The decomposition PA = LU can be rewritten as A = P^{-1} L U.
+ * So we proceed as follows:
+ * Step 1: compute c = Pb.
+ * Step 2: replace c by the solution x to Lx = c.
+ * Step 3: replace c by the solution x to Ux = c.
+ */
+
+ eigen_assert(rhs.rows() == m_lu.rows());
+
+ // Step 1
+ dst = permutationP() * rhs;
+
+ // Step 2
+ m_lu.template triangularView<UnitLower>().solveInPlace(dst);
+
+ // Step 3
+ m_lu.template triangularView<Upper>().solveInPlace(dst);
+ }
+
+ template<bool Conjugate, typename RhsType, typename DstType>
+ EIGEN_DEVICE_FUNC
+ void _solve_impl_transposed(const RhsType &rhs, DstType &dst) const {
+ /* The decomposition PA = LU can be rewritten as A = P^{-1} L U.
+ * So we proceed as follows:
+ * Step 1: compute c = Pb.
+ * Step 2: replace c by the solution x to Lx = c.
+ * Step 3: replace c by the solution x to Ux = c.
+ */
+
+ eigen_assert(rhs.rows() == m_lu.cols());
+
+ if (Conjugate) {
+ // Step 1
+ dst = m_lu.template triangularView<Upper>().adjoint().solve(rhs);
+ // Step 2
+ m_lu.template triangularView<UnitLower>().adjoint().solveInPlace(dst);
+ } else {
+ // Step 1
+ dst = m_lu.template triangularView<Upper>().transpose().solve(rhs);
+ // Step 2
+ m_lu.template triangularView<UnitLower>().transpose().solveInPlace(dst);
+ }
+ // Step 3
+ dst = permutationP().transpose() * dst;
+ }
+ #endif
+
+ protected:
+
+ static void check_template_parameters()
+ {
+ EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+ }
+
+ void compute();
+
+ MatrixType m_lu;
+ PermutationType m_p;
+ TranspositionType m_rowsTranspositions;
+ RealScalar m_l1_norm;
+ signed char m_det_p;
+ bool m_isInitialized;
+};
+
+template<typename MatrixType>
+PartialPivLU<MatrixType>::PartialPivLU()
+ : m_lu(),
+ m_p(),
+ m_rowsTranspositions(),
+ m_l1_norm(0),
+ m_det_p(0),
+ m_isInitialized(false)
+{
+}
+
+template<typename MatrixType>
+PartialPivLU<MatrixType>::PartialPivLU(Index size)
+ : m_lu(size, size),
+ m_p(size),
+ m_rowsTranspositions(size),
+ m_l1_norm(0),
+ m_det_p(0),
+ m_isInitialized(false)
+{
+}
+
+template<typename MatrixType>
+template<typename InputType>
+PartialPivLU<MatrixType>::PartialPivLU(const EigenBase<InputType>& matrix)
+ : m_lu(matrix.rows(),matrix.cols()),
+ m_p(matrix.rows()),
+ m_rowsTranspositions(matrix.rows()),
+ m_l1_norm(0),
+ m_det_p(0),
+ m_isInitialized(false)
+{
+ compute(matrix.derived());
+}
+
+template<typename MatrixType>
+template<typename InputType>
+PartialPivLU<MatrixType>::PartialPivLU(EigenBase<InputType>& matrix)
+ : m_lu(matrix.derived()),
+ m_p(matrix.rows()),
+ m_rowsTranspositions(matrix.rows()),
+ m_l1_norm(0),
+ m_det_p(0),
+ m_isInitialized(false)
+{
+ compute();
+}
+
+namespace internal {
+
+/** \internal This is the blocked version of fullpivlu_unblocked() */
+template<typename Scalar, int StorageOrder, typename PivIndex>
+struct partial_lu_impl
+{
+ // FIXME add a stride to Map, so that the following mapping becomes easier,
+ // another option would be to create an expression being able to automatically
+ // warp any Map, Matrix, and Block expressions as a unique type, but since that's exactly
+ // a Map + stride, why not adding a stride to Map, and convenient ctors from a Matrix,
+ // and Block.
+ typedef Map<Matrix<Scalar, Dynamic, Dynamic, StorageOrder> > MapLU;
+ typedef Block<MapLU, Dynamic, Dynamic> MatrixType;
+ typedef Block<MatrixType,Dynamic,Dynamic> BlockType;
+ typedef typename MatrixType::RealScalar RealScalar;
+
+ /** \internal performs the LU decomposition in-place of the matrix \a lu
+ * using an unblocked algorithm.
+ *
+ * In addition, this function returns the row transpositions in the
+ * vector \a row_transpositions which must have a size equal to the number
+ * of columns of the matrix \a lu, and an integer \a nb_transpositions
+ * which returns the actual number of transpositions.
+ *
+ * \returns The index of the first pivot which is exactly zero if any, or a negative number otherwise.
+ */
+ static Index unblocked_lu(MatrixType& lu, PivIndex* row_transpositions, PivIndex& nb_transpositions)
+ {
+ typedef scalar_score_coeff_op<Scalar> Scoring;
+ typedef typename Scoring::result_type Score;
+ const Index rows = lu.rows();
+ const Index cols = lu.cols();
+ const Index size = (std::min)(rows,cols);
+ nb_transpositions = 0;
+ Index first_zero_pivot = -1;
+ for(Index k = 0; k < size; ++k)
+ {
+ Index rrows = rows-k-1;
+ Index rcols = cols-k-1;
+
+ Index row_of_biggest_in_col;
+ Score biggest_in_corner
+ = lu.col(k).tail(rows-k).unaryExpr(Scoring()).maxCoeff(&row_of_biggest_in_col);
+ row_of_biggest_in_col += k;
+
+ row_transpositions[k] = PivIndex(row_of_biggest_in_col);
+
+ if(biggest_in_corner != Score(0))
+ {
+ if(k != row_of_biggest_in_col)
+ {
+ lu.row(k).swap(lu.row(row_of_biggest_in_col));
+ ++nb_transpositions;
+ }
+
+ // FIXME shall we introduce a safe quotient expression in cas 1/lu.coeff(k,k)
+ // overflow but not the actual quotient?
+ lu.col(k).tail(rrows) /= lu.coeff(k,k);
+ }
+ else if(first_zero_pivot==-1)
+ {
+ // the pivot is exactly zero, we record the index of the first pivot which is exactly 0,
+ // and continue the factorization such we still have A = PLU
+ first_zero_pivot = k;
+ }
+
+ if(k<rows-1)
+ lu.bottomRightCorner(rrows,rcols).noalias() -= lu.col(k).tail(rrows) * lu.row(k).tail(rcols);
+ }
+ return first_zero_pivot;
+ }
+
+ /** \internal performs the LU decomposition in-place of the matrix represented
+ * by the variables \a rows, \a cols, \a lu_data, and \a lu_stride using a
+ * recursive, blocked algorithm.
+ *
+ * In addition, this function returns the row transpositions in the
+ * vector \a row_transpositions which must have a size equal to the number
+ * of columns of the matrix \a lu, and an integer \a nb_transpositions
+ * which returns the actual number of transpositions.
+ *
+ * \returns The index of the first pivot which is exactly zero if any, or a negative number otherwise.
+ *
+ * \note This very low level interface using pointers, etc. is to:
+ * 1 - reduce the number of instanciations to the strict minimum
+ * 2 - avoid infinite recursion of the instanciations with Block<Block<Block<...> > >
+ */
+ static Index blocked_lu(Index rows, Index cols, Scalar* lu_data, Index luStride, PivIndex* row_transpositions, PivIndex& nb_transpositions, Index maxBlockSize=256)
+ {
+ MapLU lu1(lu_data,StorageOrder==RowMajor?rows:luStride,StorageOrder==RowMajor?luStride:cols);
+ MatrixType lu(lu1,0,0,rows,cols);
+
+ const Index size = (std::min)(rows,cols);
+
+ // if the matrix is too small, no blocking:
+ if(size<=16)
+ {
+ return unblocked_lu(lu, row_transpositions, nb_transpositions);
+ }
+
+ // automatically adjust the number of subdivisions to the size
+ // of the matrix so that there is enough sub blocks:
+ Index blockSize;
+ {
+ blockSize = size/8;
+ blockSize = (blockSize/16)*16;
+ blockSize = (std::min)((std::max)(blockSize,Index(8)), maxBlockSize);
+ }
+
+ nb_transpositions = 0;
+ Index first_zero_pivot = -1;
+ for(Index k = 0; k < size; k+=blockSize)
+ {
+ Index bs = (std::min)(size-k,blockSize); // actual size of the block
+ Index trows = rows - k - bs; // trailing rows
+ Index tsize = size - k - bs; // trailing size
+
+ // partition the matrix:
+ // A00 | A01 | A02
+ // lu = A_0 | A_1 | A_2 = A10 | A11 | A12
+ // A20 | A21 | A22
+ BlockType A_0(lu,0,0,rows,k);
+ BlockType A_2(lu,0,k+bs,rows,tsize);
+ BlockType A11(lu,k,k,bs,bs);
+ BlockType A12(lu,k,k+bs,bs,tsize);
+ BlockType A21(lu,k+bs,k,trows,bs);
+ BlockType A22(lu,k+bs,k+bs,trows,tsize);
+
+ PivIndex nb_transpositions_in_panel;
+ // recursively call the blocked LU algorithm on [A11^T A21^T]^T
+ // with a very small blocking size:
+ Index ret = blocked_lu(trows+bs, bs, &lu.coeffRef(k,k), luStride,
+ row_transpositions+k, nb_transpositions_in_panel, 16);
+ if(ret>=0 && first_zero_pivot==-1)
+ first_zero_pivot = k+ret;
+
+ nb_transpositions += nb_transpositions_in_panel;
+ // update permutations and apply them to A_0
+ for(Index i=k; i<k+bs; ++i)
+ {
+ Index piv = (row_transpositions[i] += internal::convert_index<PivIndex>(k));
+ A_0.row(i).swap(A_0.row(piv));
+ }
+
+ if(trows)
+ {
+ // apply permutations to A_2
+ for(Index i=k;i<k+bs; ++i)
+ A_2.row(i).swap(A_2.row(row_transpositions[i]));
+
+ // A12 = A11^-1 A12
+ A11.template triangularView<UnitLower>().solveInPlace(A12);
+
+ A22.noalias() -= A21 * A12;
+ }
+ }
+ return first_zero_pivot;
+ }
+};
+
+/** \internal performs the LU decomposition with partial pivoting in-place.
+ */
+template<typename MatrixType, typename TranspositionType>
+void partial_lu_inplace(MatrixType& lu, TranspositionType& row_transpositions, typename TranspositionType::StorageIndex& nb_transpositions)
+{
+ eigen_assert(lu.cols() == row_transpositions.size());
+ eigen_assert((&row_transpositions.coeffRef(1)-&row_transpositions.coeffRef(0)) == 1);
+
+ partial_lu_impl
+ <typename MatrixType::Scalar, MatrixType::Flags&RowMajorBit?RowMajor:ColMajor, typename TranspositionType::StorageIndex>
+ ::blocked_lu(lu.rows(), lu.cols(), &lu.coeffRef(0,0), lu.outerStride(), &row_transpositions.coeffRef(0), nb_transpositions);
+}
+
+} // end namespace internal
+
+template<typename MatrixType>
+void PartialPivLU<MatrixType>::compute()
+{
+ check_template_parameters();
+
+ // the row permutation is stored as int indices, so just to be sure:
+ eigen_assert(m_lu.rows()<NumTraits<int>::highest());
+
+ m_l1_norm = m_lu.cwiseAbs().colwise().sum().maxCoeff();
+
+ eigen_assert(m_lu.rows() == m_lu.cols() && "PartialPivLU is only for square (and moreover invertible) matrices");
+ const Index size = m_lu.rows();
+
+ m_rowsTranspositions.resize(size);
+
+ typename TranspositionType::StorageIndex nb_transpositions;
+ internal::partial_lu_inplace(m_lu, m_rowsTranspositions, nb_transpositions);
+ m_det_p = (nb_transpositions%2) ? -1 : 1;
+
+ m_p = m_rowsTranspositions;
+
+ m_isInitialized = true;
+}
+
+template<typename MatrixType>
+typename PartialPivLU<MatrixType>::Scalar PartialPivLU<MatrixType>::determinant() const
+{
+ eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
+ return Scalar(m_det_p) * m_lu.diagonal().prod();
+}
+
+/** \returns the matrix represented by the decomposition,
+ * i.e., it returns the product: P^{-1} L U.
+ * This function is provided for debug purpose. */
+template<typename MatrixType>
+MatrixType PartialPivLU<MatrixType>::reconstructedMatrix() const
+{
+ eigen_assert(m_isInitialized && "LU is not initialized.");
+ // LU
+ MatrixType res = m_lu.template triangularView<UnitLower>().toDenseMatrix()
+ * m_lu.template triangularView<Upper>();
+
+ // P^{-1}(LU)
+ res = m_p.inverse() * res;
+
+ return res;
+}
+
+/***** Implementation details *****************************************************/
+
+namespace internal {
+
+/***** Implementation of inverse() *****************************************************/
+template<typename DstXprType, typename MatrixType>
+struct Assignment<DstXprType, Inverse<PartialPivLU<MatrixType> >, internal::assign_op<typename DstXprType::Scalar,typename PartialPivLU<MatrixType>::Scalar>, Dense2Dense>
+{
+ typedef PartialPivLU<MatrixType> LuType;
+ typedef Inverse<LuType> SrcXprType;
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<typename DstXprType::Scalar,typename LuType::Scalar> &)
+ {
+ dst = src.nestedExpression().solve(MatrixType::Identity(src.rows(), src.cols()));
+ }
+};
+} // end namespace internal
+
+/******** MatrixBase methods *******/
+
+/** \lu_module
+ *
+ * \return the partial-pivoting LU decomposition of \c *this.
+ *
+ * \sa class PartialPivLU
+ */
+template<typename Derived>
+inline const PartialPivLU<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::partialPivLu() const
+{
+ return PartialPivLU<PlainObject>(eval());
+}
+
+/** \lu_module
+ *
+ * Synonym of partialPivLu().
+ *
+ * \return the partial-pivoting LU decomposition of \c *this.
+ *
+ * \sa class PartialPivLU
+ */
+template<typename Derived>
+inline const PartialPivLU<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::lu() const
+{
+ return PartialPivLU<PlainObject>(eval());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_PARTIALLU_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h b/runtimes/nn/depend/external/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h
new file mode 100644
index 000000000..755168a94
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h
@@ -0,0 +1,83 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ * Content : Eigen bindings to LAPACKe
+ * LU decomposition with partial pivoting based on LAPACKE_?getrf function.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_PARTIALLU_LAPACK_H
+#define EIGEN_PARTIALLU_LAPACK_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** \internal Specialization for the data types supported by LAPACKe */
+
+#define EIGEN_LAPACKE_LU_PARTPIV(EIGTYPE, LAPACKE_TYPE, LAPACKE_PREFIX) \
+template<int StorageOrder> \
+struct partial_lu_impl<EIGTYPE, StorageOrder, lapack_int> \
+{ \
+ /* \internal performs the LU decomposition in-place of the matrix represented */ \
+ static lapack_int blocked_lu(Index rows, Index cols, EIGTYPE* lu_data, Index luStride, lapack_int* row_transpositions, lapack_int& nb_transpositions, lapack_int maxBlockSize=256) \
+ { \
+ EIGEN_UNUSED_VARIABLE(maxBlockSize);\
+ lapack_int matrix_order, first_zero_pivot; \
+ lapack_int m, n, lda, *ipiv, info; \
+ EIGTYPE* a; \
+/* Set up parameters for ?getrf */ \
+ matrix_order = StorageOrder==RowMajor ? LAPACK_ROW_MAJOR : LAPACK_COL_MAJOR; \
+ lda = convert_index<lapack_int>(luStride); \
+ a = lu_data; \
+ ipiv = row_transpositions; \
+ m = convert_index<lapack_int>(rows); \
+ n = convert_index<lapack_int>(cols); \
+ nb_transpositions = 0; \
+\
+ info = LAPACKE_##LAPACKE_PREFIX##getrf( matrix_order, m, n, (LAPACKE_TYPE*)a, lda, ipiv ); \
+\
+ for(int i=0;i<m;i++) { ipiv[i]--; if (ipiv[i]!=i) nb_transpositions++; } \
+\
+ eigen_assert(info >= 0); \
+/* something should be done with nb_transpositions */ \
+\
+ first_zero_pivot = info; \
+ return first_zero_pivot; \
+ } \
+};
+
+EIGEN_LAPACKE_LU_PARTPIV(double, double, d)
+EIGEN_LAPACKE_LU_PARTPIV(float, float, s)
+EIGEN_LAPACKE_LU_PARTPIV(dcomplex, lapack_complex_double, z)
+EIGEN_LAPACKE_LU_PARTPIV(scomplex, lapack_complex_float, c)
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PARTIALLU_LAPACK_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/LU/arch/Inverse_SSE.h b/runtimes/nn/depend/external/eigen/Eigen/src/LU/arch/Inverse_SSE.h
new file mode 100644
index 000000000..ebb64a62b
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/LU/arch/Inverse_SSE.h
@@ -0,0 +1,338 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2001 Intel Corporation
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// The SSE code for the 4x4 float and double matrix inverse in this file
+// comes from the following Intel's library:
+// http://software.intel.com/en-us/articles/optimized-matrix-library-for-use-with-the-intel-pentiumr-4-processors-sse2-instructions/
+//
+// Here is the respective copyright and license statement:
+//
+// Copyright (c) 2001 Intel Corporation.
+//
+// Permition is granted to use, copy, distribute and prepare derivative works
+// of this library for any purpose and without fee, provided, that the above
+// copyright notice and this statement appear in all copies.
+// Intel makes no representations about the suitability of this software for
+// any purpose, and specifically disclaims all warranties.
+// See LEGAL.TXT for all the legal information.
+
+#ifndef EIGEN_INVERSE_SSE_H
+#define EIGEN_INVERSE_SSE_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse_size4<Architecture::SSE, float, MatrixType, ResultType>
+{
+ enum {
+ MatrixAlignment = traits<MatrixType>::Alignment,
+ ResultAlignment = traits<ResultType>::Alignment,
+ StorageOrdersMatch = (MatrixType::Flags&RowMajorBit) == (ResultType::Flags&RowMajorBit)
+ };
+ typedef typename conditional<(MatrixType::Flags&LinearAccessBit),MatrixType const &,typename MatrixType::PlainObject>::type ActualMatrixType;
+
+ static void run(const MatrixType& mat, ResultType& result)
+ {
+ ActualMatrixType matrix(mat);
+ EIGEN_ALIGN16 const unsigned int _Sign_PNNP[4] = { 0x00000000, 0x80000000, 0x80000000, 0x00000000 };
+
+ // Load the full matrix into registers
+ __m128 _L1 = matrix.template packet<MatrixAlignment>( 0);
+ __m128 _L2 = matrix.template packet<MatrixAlignment>( 4);
+ __m128 _L3 = matrix.template packet<MatrixAlignment>( 8);
+ __m128 _L4 = matrix.template packet<MatrixAlignment>(12);
+
+ // The inverse is calculated using "Divide and Conquer" technique. The
+ // original matrix is divide into four 2x2 sub-matrices. Since each
+ // register holds four matrix element, the smaller matrices are
+ // represented as a registers. Hence we get a better locality of the
+ // calculations.
+
+ __m128 A, B, C, D; // the four sub-matrices
+ if(!StorageOrdersMatch)
+ {
+ A = _mm_unpacklo_ps(_L1, _L2);
+ B = _mm_unpacklo_ps(_L3, _L4);
+ C = _mm_unpackhi_ps(_L1, _L2);
+ D = _mm_unpackhi_ps(_L3, _L4);
+ }
+ else
+ {
+ A = _mm_movelh_ps(_L1, _L2);
+ B = _mm_movehl_ps(_L2, _L1);
+ C = _mm_movelh_ps(_L3, _L4);
+ D = _mm_movehl_ps(_L4, _L3);
+ }
+
+ __m128 iA, iB, iC, iD, // partial inverse of the sub-matrices
+ DC, AB;
+ __m128 dA, dB, dC, dD; // determinant of the sub-matrices
+ __m128 det, d, d1, d2;
+ __m128 rd; // reciprocal of the determinant
+
+ // AB = A# * B
+ AB = _mm_mul_ps(_mm_shuffle_ps(A,A,0x0F), B);
+ AB = _mm_sub_ps(AB,_mm_mul_ps(_mm_shuffle_ps(A,A,0xA5), _mm_shuffle_ps(B,B,0x4E)));
+ // DC = D# * C
+ DC = _mm_mul_ps(_mm_shuffle_ps(D,D,0x0F), C);
+ DC = _mm_sub_ps(DC,_mm_mul_ps(_mm_shuffle_ps(D,D,0xA5), _mm_shuffle_ps(C,C,0x4E)));
+
+ // dA = |A|
+ dA = _mm_mul_ps(_mm_shuffle_ps(A, A, 0x5F),A);
+ dA = _mm_sub_ss(dA, _mm_movehl_ps(dA,dA));
+ // dB = |B|
+ dB = _mm_mul_ps(_mm_shuffle_ps(B, B, 0x5F),B);
+ dB = _mm_sub_ss(dB, _mm_movehl_ps(dB,dB));
+
+ // dC = |C|
+ dC = _mm_mul_ps(_mm_shuffle_ps(C, C, 0x5F),C);
+ dC = _mm_sub_ss(dC, _mm_movehl_ps(dC,dC));
+ // dD = |D|
+ dD = _mm_mul_ps(_mm_shuffle_ps(D, D, 0x5F),D);
+ dD = _mm_sub_ss(dD, _mm_movehl_ps(dD,dD));
+
+ // d = trace(AB*DC) = trace(A#*B*D#*C)
+ d = _mm_mul_ps(_mm_shuffle_ps(DC,DC,0xD8),AB);
+
+ // iD = C*A#*B
+ iD = _mm_mul_ps(_mm_shuffle_ps(C,C,0xA0), _mm_movelh_ps(AB,AB));
+ iD = _mm_add_ps(iD,_mm_mul_ps(_mm_shuffle_ps(C,C,0xF5), _mm_movehl_ps(AB,AB)));
+ // iA = B*D#*C
+ iA = _mm_mul_ps(_mm_shuffle_ps(B,B,0xA0), _mm_movelh_ps(DC,DC));
+ iA = _mm_add_ps(iA,_mm_mul_ps(_mm_shuffle_ps(B,B,0xF5), _mm_movehl_ps(DC,DC)));
+
+ // d = trace(AB*DC) = trace(A#*B*D#*C) [continue]
+ d = _mm_add_ps(d, _mm_movehl_ps(d, d));
+ d = _mm_add_ss(d, _mm_shuffle_ps(d, d, 1));
+ d1 = _mm_mul_ss(dA,dD);
+ d2 = _mm_mul_ss(dB,dC);
+
+ // iD = D*|A| - C*A#*B
+ iD = _mm_sub_ps(_mm_mul_ps(D,_mm_shuffle_ps(dA,dA,0)), iD);
+
+ // iA = A*|D| - B*D#*C;
+ iA = _mm_sub_ps(_mm_mul_ps(A,_mm_shuffle_ps(dD,dD,0)), iA);
+
+ // det = |A|*|D| + |B|*|C| - trace(A#*B*D#*C)
+ det = _mm_sub_ss(_mm_add_ss(d1,d2),d);
+ rd = _mm_div_ss(_mm_set_ss(1.0f), det);
+
+// #ifdef ZERO_SINGULAR
+// rd = _mm_and_ps(_mm_cmpneq_ss(det,_mm_setzero_ps()), rd);
+// #endif
+
+ // iB = D * (A#B)# = D*B#*A
+ iB = _mm_mul_ps(D, _mm_shuffle_ps(AB,AB,0x33));
+ iB = _mm_sub_ps(iB, _mm_mul_ps(_mm_shuffle_ps(D,D,0xB1), _mm_shuffle_ps(AB,AB,0x66)));
+ // iC = A * (D#C)# = A*C#*D
+ iC = _mm_mul_ps(A, _mm_shuffle_ps(DC,DC,0x33));
+ iC = _mm_sub_ps(iC, _mm_mul_ps(_mm_shuffle_ps(A,A,0xB1), _mm_shuffle_ps(DC,DC,0x66)));
+
+ rd = _mm_shuffle_ps(rd,rd,0);
+ rd = _mm_xor_ps(rd, _mm_load_ps((float*)_Sign_PNNP));
+
+ // iB = C*|B| - D*B#*A
+ iB = _mm_sub_ps(_mm_mul_ps(C,_mm_shuffle_ps(dB,dB,0)), iB);
+
+ // iC = B*|C| - A*C#*D;
+ iC = _mm_sub_ps(_mm_mul_ps(B,_mm_shuffle_ps(dC,dC,0)), iC);
+
+ // iX = iX / det
+ iA = _mm_mul_ps(rd,iA);
+ iB = _mm_mul_ps(rd,iB);
+ iC = _mm_mul_ps(rd,iC);
+ iD = _mm_mul_ps(rd,iD);
+
+ Index res_stride = result.outerStride();
+ float* res = result.data();
+ pstoret<float, Packet4f, ResultAlignment>(res+0, _mm_shuffle_ps(iA,iB,0x77));
+ pstoret<float, Packet4f, ResultAlignment>(res+res_stride, _mm_shuffle_ps(iA,iB,0x22));
+ pstoret<float, Packet4f, ResultAlignment>(res+2*res_stride, _mm_shuffle_ps(iC,iD,0x77));
+ pstoret<float, Packet4f, ResultAlignment>(res+3*res_stride, _mm_shuffle_ps(iC,iD,0x22));
+ }
+
+};
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse_size4<Architecture::SSE, double, MatrixType, ResultType>
+{
+ enum {
+ MatrixAlignment = traits<MatrixType>::Alignment,
+ ResultAlignment = traits<ResultType>::Alignment,
+ StorageOrdersMatch = (MatrixType::Flags&RowMajorBit) == (ResultType::Flags&RowMajorBit)
+ };
+ typedef typename conditional<(MatrixType::Flags&LinearAccessBit),MatrixType const &,typename MatrixType::PlainObject>::type ActualMatrixType;
+
+ static void run(const MatrixType& mat, ResultType& result)
+ {
+ ActualMatrixType matrix(mat);
+ const __m128d _Sign_NP = _mm_castsi128_pd(_mm_set_epi32(0x0,0x0,0x80000000,0x0));
+ const __m128d _Sign_PN = _mm_castsi128_pd(_mm_set_epi32(0x80000000,0x0,0x0,0x0));
+
+ // The inverse is calculated using "Divide and Conquer" technique. The
+ // original matrix is divide into four 2x2 sub-matrices. Since each
+ // register of the matrix holds two elements, the smaller matrices are
+ // consisted of two registers. Hence we get a better locality of the
+ // calculations.
+
+ // the four sub-matrices
+ __m128d A1, A2, B1, B2, C1, C2, D1, D2;
+
+ if(StorageOrdersMatch)
+ {
+ A1 = matrix.template packet<MatrixAlignment>( 0); B1 = matrix.template packet<MatrixAlignment>( 2);
+ A2 = matrix.template packet<MatrixAlignment>( 4); B2 = matrix.template packet<MatrixAlignment>( 6);
+ C1 = matrix.template packet<MatrixAlignment>( 8); D1 = matrix.template packet<MatrixAlignment>(10);
+ C2 = matrix.template packet<MatrixAlignment>(12); D2 = matrix.template packet<MatrixAlignment>(14);
+ }
+ else
+ {
+ __m128d tmp;
+ A1 = matrix.template packet<MatrixAlignment>( 0); C1 = matrix.template packet<MatrixAlignment>( 2);
+ A2 = matrix.template packet<MatrixAlignment>( 4); C2 = matrix.template packet<MatrixAlignment>( 6);
+ tmp = A1;
+ A1 = _mm_unpacklo_pd(A1,A2);
+ A2 = _mm_unpackhi_pd(tmp,A2);
+ tmp = C1;
+ C1 = _mm_unpacklo_pd(C1,C2);
+ C2 = _mm_unpackhi_pd(tmp,C2);
+
+ B1 = matrix.template packet<MatrixAlignment>( 8); D1 = matrix.template packet<MatrixAlignment>(10);
+ B2 = matrix.template packet<MatrixAlignment>(12); D2 = matrix.template packet<MatrixAlignment>(14);
+ tmp = B1;
+ B1 = _mm_unpacklo_pd(B1,B2);
+ B2 = _mm_unpackhi_pd(tmp,B2);
+ tmp = D1;
+ D1 = _mm_unpacklo_pd(D1,D2);
+ D2 = _mm_unpackhi_pd(tmp,D2);
+ }
+
+ __m128d iA1, iA2, iB1, iB2, iC1, iC2, iD1, iD2, // partial invese of the sub-matrices
+ DC1, DC2, AB1, AB2;
+ __m128d dA, dB, dC, dD; // determinant of the sub-matrices
+ __m128d det, d1, d2, rd;
+
+ // dA = |A|
+ dA = _mm_shuffle_pd(A2, A2, 1);
+ dA = _mm_mul_pd(A1, dA);
+ dA = _mm_sub_sd(dA, _mm_shuffle_pd(dA,dA,3));
+ // dB = |B|
+ dB = _mm_shuffle_pd(B2, B2, 1);
+ dB = _mm_mul_pd(B1, dB);
+ dB = _mm_sub_sd(dB, _mm_shuffle_pd(dB,dB,3));
+
+ // AB = A# * B
+ AB1 = _mm_mul_pd(B1, _mm_shuffle_pd(A2,A2,3));
+ AB2 = _mm_mul_pd(B2, _mm_shuffle_pd(A1,A1,0));
+ AB1 = _mm_sub_pd(AB1, _mm_mul_pd(B2, _mm_shuffle_pd(A1,A1,3)));
+ AB2 = _mm_sub_pd(AB2, _mm_mul_pd(B1, _mm_shuffle_pd(A2,A2,0)));
+
+ // dC = |C|
+ dC = _mm_shuffle_pd(C2, C2, 1);
+ dC = _mm_mul_pd(C1, dC);
+ dC = _mm_sub_sd(dC, _mm_shuffle_pd(dC,dC,3));
+ // dD = |D|
+ dD = _mm_shuffle_pd(D2, D2, 1);
+ dD = _mm_mul_pd(D1, dD);
+ dD = _mm_sub_sd(dD, _mm_shuffle_pd(dD,dD,3));
+
+ // DC = D# * C
+ DC1 = _mm_mul_pd(C1, _mm_shuffle_pd(D2,D2,3));
+ DC2 = _mm_mul_pd(C2, _mm_shuffle_pd(D1,D1,0));
+ DC1 = _mm_sub_pd(DC1, _mm_mul_pd(C2, _mm_shuffle_pd(D1,D1,3)));
+ DC2 = _mm_sub_pd(DC2, _mm_mul_pd(C1, _mm_shuffle_pd(D2,D2,0)));
+
+ // rd = trace(AB*DC) = trace(A#*B*D#*C)
+ d1 = _mm_mul_pd(AB1, _mm_shuffle_pd(DC1, DC2, 0));
+ d2 = _mm_mul_pd(AB2, _mm_shuffle_pd(DC1, DC2, 3));
+ rd = _mm_add_pd(d1, d2);
+ rd = _mm_add_sd(rd, _mm_shuffle_pd(rd, rd,3));
+
+ // iD = C*A#*B
+ iD1 = _mm_mul_pd(AB1, _mm_shuffle_pd(C1,C1,0));
+ iD2 = _mm_mul_pd(AB1, _mm_shuffle_pd(C2,C2,0));
+ iD1 = _mm_add_pd(iD1, _mm_mul_pd(AB2, _mm_shuffle_pd(C1,C1,3)));
+ iD2 = _mm_add_pd(iD2, _mm_mul_pd(AB2, _mm_shuffle_pd(C2,C2,3)));
+
+ // iA = B*D#*C
+ iA1 = _mm_mul_pd(DC1, _mm_shuffle_pd(B1,B1,0));
+ iA2 = _mm_mul_pd(DC1, _mm_shuffle_pd(B2,B2,0));
+ iA1 = _mm_add_pd(iA1, _mm_mul_pd(DC2, _mm_shuffle_pd(B1,B1,3)));
+ iA2 = _mm_add_pd(iA2, _mm_mul_pd(DC2, _mm_shuffle_pd(B2,B2,3)));
+
+ // iD = D*|A| - C*A#*B
+ dA = _mm_shuffle_pd(dA,dA,0);
+ iD1 = _mm_sub_pd(_mm_mul_pd(D1, dA), iD1);
+ iD2 = _mm_sub_pd(_mm_mul_pd(D2, dA), iD2);
+
+ // iA = A*|D| - B*D#*C;
+ dD = _mm_shuffle_pd(dD,dD,0);
+ iA1 = _mm_sub_pd(_mm_mul_pd(A1, dD), iA1);
+ iA2 = _mm_sub_pd(_mm_mul_pd(A2, dD), iA2);
+
+ d1 = _mm_mul_sd(dA, dD);
+ d2 = _mm_mul_sd(dB, dC);
+
+ // iB = D * (A#B)# = D*B#*A
+ iB1 = _mm_mul_pd(D1, _mm_shuffle_pd(AB2,AB1,1));
+ iB2 = _mm_mul_pd(D2, _mm_shuffle_pd(AB2,AB1,1));
+ iB1 = _mm_sub_pd(iB1, _mm_mul_pd(_mm_shuffle_pd(D1,D1,1), _mm_shuffle_pd(AB2,AB1,2)));
+ iB2 = _mm_sub_pd(iB2, _mm_mul_pd(_mm_shuffle_pd(D2,D2,1), _mm_shuffle_pd(AB2,AB1,2)));
+
+ // det = |A|*|D| + |B|*|C| - trace(A#*B*D#*C)
+ det = _mm_add_sd(d1, d2);
+ det = _mm_sub_sd(det, rd);
+
+ // iC = A * (D#C)# = A*C#*D
+ iC1 = _mm_mul_pd(A1, _mm_shuffle_pd(DC2,DC1,1));
+ iC2 = _mm_mul_pd(A2, _mm_shuffle_pd(DC2,DC1,1));
+ iC1 = _mm_sub_pd(iC1, _mm_mul_pd(_mm_shuffle_pd(A1,A1,1), _mm_shuffle_pd(DC2,DC1,2)));
+ iC2 = _mm_sub_pd(iC2, _mm_mul_pd(_mm_shuffle_pd(A2,A2,1), _mm_shuffle_pd(DC2,DC1,2)));
+
+ rd = _mm_div_sd(_mm_set_sd(1.0), det);
+// #ifdef ZERO_SINGULAR
+// rd = _mm_and_pd(_mm_cmpneq_sd(det,_mm_setzero_pd()), rd);
+// #endif
+ rd = _mm_shuffle_pd(rd,rd,0);
+
+ // iB = C*|B| - D*B#*A
+ dB = _mm_shuffle_pd(dB,dB,0);
+ iB1 = _mm_sub_pd(_mm_mul_pd(C1, dB), iB1);
+ iB2 = _mm_sub_pd(_mm_mul_pd(C2, dB), iB2);
+
+ d1 = _mm_xor_pd(rd, _Sign_PN);
+ d2 = _mm_xor_pd(rd, _Sign_NP);
+
+ // iC = B*|C| - A*C#*D;
+ dC = _mm_shuffle_pd(dC,dC,0);
+ iC1 = _mm_sub_pd(_mm_mul_pd(B1, dC), iC1);
+ iC2 = _mm_sub_pd(_mm_mul_pd(B2, dC), iC2);
+
+ Index res_stride = result.outerStride();
+ double* res = result.data();
+ pstoret<double, Packet2d, ResultAlignment>(res+0, _mm_mul_pd(_mm_shuffle_pd(iA2, iA1, 3), d1));
+ pstoret<double, Packet2d, ResultAlignment>(res+res_stride, _mm_mul_pd(_mm_shuffle_pd(iA2, iA1, 0), d2));
+ pstoret<double, Packet2d, ResultAlignment>(res+2, _mm_mul_pd(_mm_shuffle_pd(iB2, iB1, 3), d1));
+ pstoret<double, Packet2d, ResultAlignment>(res+res_stride+2, _mm_mul_pd(_mm_shuffle_pd(iB2, iB1, 0), d2));
+ pstoret<double, Packet2d, ResultAlignment>(res+2*res_stride, _mm_mul_pd(_mm_shuffle_pd(iC2, iC1, 3), d1));
+ pstoret<double, Packet2d, ResultAlignment>(res+3*res_stride, _mm_mul_pd(_mm_shuffle_pd(iC2, iC1, 0), d2));
+ pstoret<double, Packet2d, ResultAlignment>(res+2*res_stride+2,_mm_mul_pd(_mm_shuffle_pd(iD2, iD1, 3), d1));
+ pstoret<double, Packet2d, ResultAlignment>(res+3*res_stride+2,_mm_mul_pd(_mm_shuffle_pd(iD2, iD1, 0), d2));
+ }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_INVERSE_SSE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/MetisSupport/MetisSupport.h b/runtimes/nn/depend/external/eigen/Eigen/src/MetisSupport/MetisSupport.h
new file mode 100644
index 000000000..4c15304ad
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/MetisSupport/MetisSupport.h
@@ -0,0 +1,137 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef METIS_SUPPORT_H
+#define METIS_SUPPORT_H
+
+namespace Eigen {
+/**
+ * Get the fill-reducing ordering from the METIS package
+ *
+ * If A is the original matrix and Ap is the permuted matrix,
+ * the fill-reducing permutation is defined as follows :
+ * Row (column) i of A is the matperm(i) row (column) of Ap.
+ * WARNING: As computed by METIS, this corresponds to the vector iperm (instead of perm)
+ */
+template <typename StorageIndex>
+class MetisOrdering
+{
+public:
+ typedef PermutationMatrix<Dynamic,Dynamic,StorageIndex> PermutationType;
+ typedef Matrix<StorageIndex,Dynamic,1> IndexVector;
+
+ template <typename MatrixType>
+ void get_symmetrized_graph(const MatrixType& A)
+ {
+ Index m = A.cols();
+ eigen_assert((A.rows() == A.cols()) && "ONLY FOR SQUARED MATRICES");
+ // Get the transpose of the input matrix
+ MatrixType At = A.transpose();
+ // Get the number of nonzeros elements in each row/col of At+A
+ Index TotNz = 0;
+ IndexVector visited(m);
+ visited.setConstant(-1);
+ for (StorageIndex j = 0; j < m; j++)
+ {
+ // Compute the union structure of of A(j,:) and At(j,:)
+ visited(j) = j; // Do not include the diagonal element
+ // Get the nonzeros in row/column j of A
+ for (typename MatrixType::InnerIterator it(A, j); it; ++it)
+ {
+ Index idx = it.index(); // Get the row index (for column major) or column index (for row major)
+ if (visited(idx) != j )
+ {
+ visited(idx) = j;
+ ++TotNz;
+ }
+ }
+ //Get the nonzeros in row/column j of At
+ for (typename MatrixType::InnerIterator it(At, j); it; ++it)
+ {
+ Index idx = it.index();
+ if(visited(idx) != j)
+ {
+ visited(idx) = j;
+ ++TotNz;
+ }
+ }
+ }
+ // Reserve place for A + At
+ m_indexPtr.resize(m+1);
+ m_innerIndices.resize(TotNz);
+
+ // Now compute the real adjacency list of each column/row
+ visited.setConstant(-1);
+ StorageIndex CurNz = 0;
+ for (StorageIndex j = 0; j < m; j++)
+ {
+ m_indexPtr(j) = CurNz;
+
+ visited(j) = j; // Do not include the diagonal element
+ // Add the pattern of row/column j of A to A+At
+ for (typename MatrixType::InnerIterator it(A,j); it; ++it)
+ {
+ StorageIndex idx = it.index(); // Get the row index (for column major) or column index (for row major)
+ if (visited(idx) != j )
+ {
+ visited(idx) = j;
+ m_innerIndices(CurNz) = idx;
+ CurNz++;
+ }
+ }
+ //Add the pattern of row/column j of At to A+At
+ for (typename MatrixType::InnerIterator it(At, j); it; ++it)
+ {
+ StorageIndex idx = it.index();
+ if(visited(idx) != j)
+ {
+ visited(idx) = j;
+ m_innerIndices(CurNz) = idx;
+ ++CurNz;
+ }
+ }
+ }
+ m_indexPtr(m) = CurNz;
+ }
+
+ template <typename MatrixType>
+ void operator() (const MatrixType& A, PermutationType& matperm)
+ {
+ StorageIndex m = internal::convert_index<StorageIndex>(A.cols()); // must be StorageIndex, because it is passed by address to METIS
+ IndexVector perm(m),iperm(m);
+ // First, symmetrize the matrix graph.
+ get_symmetrized_graph(A);
+ int output_error;
+
+ // Call the fill-reducing routine from METIS
+ output_error = METIS_NodeND(&m, m_indexPtr.data(), m_innerIndices.data(), NULL, NULL, perm.data(), iperm.data());
+
+ if(output_error != METIS_OK)
+ {
+ //FIXME The ordering interface should define a class of possible errors
+ std::cerr << "ERROR WHILE CALLING THE METIS PACKAGE \n";
+ return;
+ }
+
+ // Get the fill-reducing permutation
+ //NOTE: If Ap is the permuted matrix then perm and iperm vectors are defined as follows
+ // Row (column) i of Ap is the perm(i) row(column) of A, and row (column) i of A is the iperm(i) row(column) of Ap
+
+ matperm.resize(m);
+ for (int j = 0; j < m; j++)
+ matperm.indices()(iperm(j)) = j;
+
+ }
+
+ protected:
+ IndexVector m_indexPtr; // Pointer to the adjacenccy list of each row/column
+ IndexVector m_innerIndices; // Adjacency list
+};
+
+}// end namespace eigen
+#endif
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h b/runtimes/nn/depend/external/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h
new file mode 100644
index 000000000..da85b4d6e
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h
@@ -0,0 +1,1843 @@
+// // This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Desire Nuentsa Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// This file is modified from the colamd/symamd library. The copyright is below
+
+// The authors of the code itself are Stefan I. Larimore and Timothy A.
+// Davis (davis@cise.ufl.edu), University of Florida. The algorithm was
+// developed in collaboration with John Gilbert, Xerox PARC, and Esmond
+// Ng, Oak Ridge National Laboratory.
+//
+// Date:
+//
+// September 8, 2003. Version 2.3.
+//
+// Acknowledgements:
+//
+// This work was supported by the National Science Foundation, under
+// grants DMS-9504974 and DMS-9803599.
+//
+// Notice:
+//
+// Copyright (c) 1998-2003 by the University of Florida.
+// All Rights Reserved.
+//
+// THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+// EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
+//
+// Permission is hereby granted to use, copy, modify, and/or distribute
+// this program, provided that the Copyright, this License, and the
+// Availability of the original version is retained on all copies and made
+// accessible to the end-user of any code or package that includes COLAMD
+// or any modified version of COLAMD.
+//
+// Availability:
+//
+// The colamd/symamd library is available at
+//
+// http://www.suitesparse.com
+
+
+#ifndef EIGEN_COLAMD_H
+#define EIGEN_COLAMD_H
+
+namespace internal {
+/* Ensure that debugging is turned off: */
+#ifndef COLAMD_NDEBUG
+#define COLAMD_NDEBUG
+#endif /* NDEBUG */
+/* ========================================================================== */
+/* === Knob and statistics definitions ====================================== */
+/* ========================================================================== */
+
+/* size of the knobs [ ] array. Only knobs [0..1] are currently used. */
+#define COLAMD_KNOBS 20
+
+/* number of output statistics. Only stats [0..6] are currently used. */
+#define COLAMD_STATS 20
+
+/* knobs [0] and stats [0]: dense row knob and output statistic. */
+#define COLAMD_DENSE_ROW 0
+
+/* knobs [1] and stats [1]: dense column knob and output statistic. */
+#define COLAMD_DENSE_COL 1
+
+/* stats [2]: memory defragmentation count output statistic */
+#define COLAMD_DEFRAG_COUNT 2
+
+/* stats [3]: colamd status: zero OK, > 0 warning or notice, < 0 error */
+#define COLAMD_STATUS 3
+
+/* stats [4..6]: error info, or info on jumbled columns */
+#define COLAMD_INFO1 4
+#define COLAMD_INFO2 5
+#define COLAMD_INFO3 6
+
+/* error codes returned in stats [3]: */
+#define COLAMD_OK (0)
+#define COLAMD_OK_BUT_JUMBLED (1)
+#define COLAMD_ERROR_A_not_present (-1)
+#define COLAMD_ERROR_p_not_present (-2)
+#define COLAMD_ERROR_nrow_negative (-3)
+#define COLAMD_ERROR_ncol_negative (-4)
+#define COLAMD_ERROR_nnz_negative (-5)
+#define COLAMD_ERROR_p0_nonzero (-6)
+#define COLAMD_ERROR_A_too_small (-7)
+#define COLAMD_ERROR_col_length_negative (-8)
+#define COLAMD_ERROR_row_index_out_of_bounds (-9)
+#define COLAMD_ERROR_out_of_memory (-10)
+#define COLAMD_ERROR_internal_error (-999)
+
+/* ========================================================================== */
+/* === Definitions ========================================================== */
+/* ========================================================================== */
+
+#define ONES_COMPLEMENT(r) (-(r)-1)
+
+/* -------------------------------------------------------------------------- */
+
+#define COLAMD_EMPTY (-1)
+
+/* Row and column status */
+#define ALIVE (0)
+#define DEAD (-1)
+
+/* Column status */
+#define DEAD_PRINCIPAL (-1)
+#define DEAD_NON_PRINCIPAL (-2)
+
+/* Macros for row and column status update and checking. */
+#define ROW_IS_DEAD(r) ROW_IS_MARKED_DEAD (Row[r].shared2.mark)
+#define ROW_IS_MARKED_DEAD(row_mark) (row_mark < ALIVE)
+#define ROW_IS_ALIVE(r) (Row [r].shared2.mark >= ALIVE)
+#define COL_IS_DEAD(c) (Col [c].start < ALIVE)
+#define COL_IS_ALIVE(c) (Col [c].start >= ALIVE)
+#define COL_IS_DEAD_PRINCIPAL(c) (Col [c].start == DEAD_PRINCIPAL)
+#define KILL_ROW(r) { Row [r].shared2.mark = DEAD ; }
+#define KILL_PRINCIPAL_COL(c) { Col [c].start = DEAD_PRINCIPAL ; }
+#define KILL_NON_PRINCIPAL_COL(c) { Col [c].start = DEAD_NON_PRINCIPAL ; }
+
+/* ========================================================================== */
+/* === Colamd reporting mechanism =========================================== */
+/* ========================================================================== */
+
+// == Row and Column structures ==
+template <typename IndexType>
+struct colamd_col
+{
+ IndexType start ; /* index for A of first row in this column, or DEAD */
+ /* if column is dead */
+ IndexType length ; /* number of rows in this column */
+ union
+ {
+ IndexType thickness ; /* number of original columns represented by this */
+ /* col, if the column is alive */
+ IndexType parent ; /* parent in parent tree super-column structure, if */
+ /* the column is dead */
+ } shared1 ;
+ union
+ {
+ IndexType score ; /* the score used to maintain heap, if col is alive */
+ IndexType order ; /* pivot ordering of this column, if col is dead */
+ } shared2 ;
+ union
+ {
+ IndexType headhash ; /* head of a hash bucket, if col is at the head of */
+ /* a degree list */
+ IndexType hash ; /* hash value, if col is not in a degree list */
+ IndexType prev ; /* previous column in degree list, if col is in a */
+ /* degree list (but not at the head of a degree list) */
+ } shared3 ;
+ union
+ {
+ IndexType degree_next ; /* next column, if col is in a degree list */
+ IndexType hash_next ; /* next column, if col is in a hash list */
+ } shared4 ;
+
+};
+
+template <typename IndexType>
+struct Colamd_Row
+{
+ IndexType start ; /* index for A of first col in this row */
+ IndexType length ; /* number of principal columns in this row */
+ union
+ {
+ IndexType degree ; /* number of principal & non-principal columns in row */
+ IndexType p ; /* used as a row pointer in init_rows_cols () */
+ } shared1 ;
+ union
+ {
+ IndexType mark ; /* for computing set differences and marking dead rows*/
+ IndexType first_column ;/* first column in row (used in garbage collection) */
+ } shared2 ;
+
+};
+
+/* ========================================================================== */
+/* === Colamd recommended memory size ======================================= */
+/* ========================================================================== */
+
+/*
+ The recommended length Alen of the array A passed to colamd is given by
+ the COLAMD_RECOMMENDED (nnz, n_row, n_col) macro. It returns -1 if any
+ argument is negative. 2*nnz space is required for the row and column
+ indices of the matrix. colamd_c (n_col) + colamd_r (n_row) space is
+ required for the Col and Row arrays, respectively, which are internal to
+ colamd. An additional n_col space is the minimal amount of "elbow room",
+ and nnz/5 more space is recommended for run time efficiency.
+
+ This macro is not needed when using symamd.
+
+ Explicit typecast to IndexType added Sept. 23, 2002, COLAMD version 2.2, to avoid
+ gcc -pedantic warning messages.
+*/
+template <typename IndexType>
+inline IndexType colamd_c(IndexType n_col)
+{ return IndexType( ((n_col) + 1) * sizeof (colamd_col<IndexType>) / sizeof (IndexType) ) ; }
+
+template <typename IndexType>
+inline IndexType colamd_r(IndexType n_row)
+{ return IndexType(((n_row) + 1) * sizeof (Colamd_Row<IndexType>) / sizeof (IndexType)); }
+
+// Prototypes of non-user callable routines
+template <typename IndexType>
+static IndexType init_rows_cols (IndexType n_row, IndexType n_col, Colamd_Row<IndexType> Row [], colamd_col<IndexType> col [], IndexType A [], IndexType p [], IndexType stats[COLAMD_STATS] );
+
+template <typename IndexType>
+static void init_scoring (IndexType n_row, IndexType n_col, Colamd_Row<IndexType> Row [], colamd_col<IndexType> Col [], IndexType A [], IndexType head [], double knobs[COLAMD_KNOBS], IndexType *p_n_row2, IndexType *p_n_col2, IndexType *p_max_deg);
+
+template <typename IndexType>
+static IndexType find_ordering (IndexType n_row, IndexType n_col, IndexType Alen, Colamd_Row<IndexType> Row [], colamd_col<IndexType> Col [], IndexType A [], IndexType head [], IndexType n_col2, IndexType max_deg, IndexType pfree);
+
+template <typename IndexType>
+static void order_children (IndexType n_col, colamd_col<IndexType> Col [], IndexType p []);
+
+template <typename IndexType>
+static void detect_super_cols (colamd_col<IndexType> Col [], IndexType A [], IndexType head [], IndexType row_start, IndexType row_length ) ;
+
+template <typename IndexType>
+static IndexType garbage_collection (IndexType n_row, IndexType n_col, Colamd_Row<IndexType> Row [], colamd_col<IndexType> Col [], IndexType A [], IndexType *pfree) ;
+
+template <typename IndexType>
+static inline IndexType clear_mark (IndexType n_row, Colamd_Row<IndexType> Row [] ) ;
+
+/* === No debugging ========================================================= */
+
+#define COLAMD_DEBUG0(params) ;
+#define COLAMD_DEBUG1(params) ;
+#define COLAMD_DEBUG2(params) ;
+#define COLAMD_DEBUG3(params) ;
+#define COLAMD_DEBUG4(params) ;
+
+#define COLAMD_ASSERT(expression) ((void) 0)
+
+
+/**
+ * \brief Returns the recommended value of Alen
+ *
+ * Returns recommended value of Alen for use by colamd.
+ * Returns -1 if any input argument is negative.
+ * The use of this routine or macro is optional.
+ * Note that the macro uses its arguments more than once,
+ * so be careful for side effects, if you pass expressions as arguments to COLAMD_RECOMMENDED.
+ *
+ * \param nnz nonzeros in A
+ * \param n_row number of rows in A
+ * \param n_col number of columns in A
+ * \return recommended value of Alen for use by colamd
+ */
+template <typename IndexType>
+inline IndexType colamd_recommended ( IndexType nnz, IndexType n_row, IndexType n_col)
+{
+ if ((nnz) < 0 || (n_row) < 0 || (n_col) < 0)
+ return (-1);
+ else
+ return (2 * (nnz) + colamd_c (n_col) + colamd_r (n_row) + (n_col) + ((nnz) / 5));
+}
+
+/**
+ * \brief set default parameters The use of this routine is optional.
+ *
+ * Colamd: rows with more than (knobs [COLAMD_DENSE_ROW] * n_col)
+ * entries are removed prior to ordering. Columns with more than
+ * (knobs [COLAMD_DENSE_COL] * n_row) entries are removed prior to
+ * ordering, and placed last in the output column ordering.
+ *
+ * COLAMD_DENSE_ROW and COLAMD_DENSE_COL are defined as 0 and 1,
+ * respectively, in colamd.h. Default values of these two knobs
+ * are both 0.5. Currently, only knobs [0] and knobs [1] are
+ * used, but future versions may use more knobs. If so, they will
+ * be properly set to their defaults by the future version of
+ * colamd_set_defaults, so that the code that calls colamd will
+ * not need to change, assuming that you either use
+ * colamd_set_defaults, or pass a (double *) NULL pointer as the
+ * knobs array to colamd or symamd.
+ *
+ * \param knobs parameter settings for colamd
+ */
+
+static inline void colamd_set_defaults(double knobs[COLAMD_KNOBS])
+{
+ /* === Local variables ================================================== */
+
+ int i ;
+
+ if (!knobs)
+ {
+ return ; /* no knobs to initialize */
+ }
+ for (i = 0 ; i < COLAMD_KNOBS ; i++)
+ {
+ knobs [i] = 0 ;
+ }
+ knobs [COLAMD_DENSE_ROW] = 0.5 ; /* ignore rows over 50% dense */
+ knobs [COLAMD_DENSE_COL] = 0.5 ; /* ignore columns over 50% dense */
+}
+
+/**
+ * \brief Computes a column ordering using the column approximate minimum degree ordering
+ *
+ * Computes a column ordering (Q) of A such that P(AQ)=LU or
+ * (AQ)'AQ=LL' have less fill-in and require fewer floating point
+ * operations than factorizing the unpermuted matrix A or A'A,
+ * respectively.
+ *
+ *
+ * \param n_row number of rows in A
+ * \param n_col number of columns in A
+ * \param Alen, size of the array A
+ * \param A row indices of the matrix, of size ALen
+ * \param p column pointers of A, of size n_col+1
+ * \param knobs parameter settings for colamd
+ * \param stats colamd output statistics and error codes
+ */
+template <typename IndexType>
+static bool colamd(IndexType n_row, IndexType n_col, IndexType Alen, IndexType *A, IndexType *p, double knobs[COLAMD_KNOBS], IndexType stats[COLAMD_STATS])
+{
+ /* === Local variables ================================================== */
+
+ IndexType i ; /* loop index */
+ IndexType nnz ; /* nonzeros in A */
+ IndexType Row_size ; /* size of Row [], in integers */
+ IndexType Col_size ; /* size of Col [], in integers */
+ IndexType need ; /* minimum required length of A */
+ Colamd_Row<IndexType> *Row ; /* pointer into A of Row [0..n_row] array */
+ colamd_col<IndexType> *Col ; /* pointer into A of Col [0..n_col] array */
+ IndexType n_col2 ; /* number of non-dense, non-empty columns */
+ IndexType n_row2 ; /* number of non-dense, non-empty rows */
+ IndexType ngarbage ; /* number of garbage collections performed */
+ IndexType max_deg ; /* maximum row degree */
+ double default_knobs [COLAMD_KNOBS] ; /* default knobs array */
+
+
+ /* === Check the input arguments ======================================== */
+
+ if (!stats)
+ {
+ COLAMD_DEBUG0 (("colamd: stats not present\n")) ;
+ return (false) ;
+ }
+ for (i = 0 ; i < COLAMD_STATS ; i++)
+ {
+ stats [i] = 0 ;
+ }
+ stats [COLAMD_STATUS] = COLAMD_OK ;
+ stats [COLAMD_INFO1] = -1 ;
+ stats [COLAMD_INFO2] = -1 ;
+
+ if (!A) /* A is not present */
+ {
+ stats [COLAMD_STATUS] = COLAMD_ERROR_A_not_present ;
+ COLAMD_DEBUG0 (("colamd: A not present\n")) ;
+ return (false) ;
+ }
+
+ if (!p) /* p is not present */
+ {
+ stats [COLAMD_STATUS] = COLAMD_ERROR_p_not_present ;
+ COLAMD_DEBUG0 (("colamd: p not present\n")) ;
+ return (false) ;
+ }
+
+ if (n_row < 0) /* n_row must be >= 0 */
+ {
+ stats [COLAMD_STATUS] = COLAMD_ERROR_nrow_negative ;
+ stats [COLAMD_INFO1] = n_row ;
+ COLAMD_DEBUG0 (("colamd: nrow negative %d\n", n_row)) ;
+ return (false) ;
+ }
+
+ if (n_col < 0) /* n_col must be >= 0 */
+ {
+ stats [COLAMD_STATUS] = COLAMD_ERROR_ncol_negative ;
+ stats [COLAMD_INFO1] = n_col ;
+ COLAMD_DEBUG0 (("colamd: ncol negative %d\n", n_col)) ;
+ return (false) ;
+ }
+
+ nnz = p [n_col] ;
+ if (nnz < 0) /* nnz must be >= 0 */
+ {
+ stats [COLAMD_STATUS] = COLAMD_ERROR_nnz_negative ;
+ stats [COLAMD_INFO1] = nnz ;
+ COLAMD_DEBUG0 (("colamd: number of entries negative %d\n", nnz)) ;
+ return (false) ;
+ }
+
+ if (p [0] != 0)
+ {
+ stats [COLAMD_STATUS] = COLAMD_ERROR_p0_nonzero ;
+ stats [COLAMD_INFO1] = p [0] ;
+ COLAMD_DEBUG0 (("colamd: p[0] not zero %d\n", p [0])) ;
+ return (false) ;
+ }
+
+ /* === If no knobs, set default knobs =================================== */
+
+ if (!knobs)
+ {
+ colamd_set_defaults (default_knobs) ;
+ knobs = default_knobs ;
+ }
+
+ /* === Allocate the Row and Col arrays from array A ===================== */
+
+ Col_size = colamd_c (n_col) ;
+ Row_size = colamd_r (n_row) ;
+ need = 2*nnz + n_col + Col_size + Row_size ;
+
+ if (need > Alen)
+ {
+ /* not enough space in array A to perform the ordering */
+ stats [COLAMD_STATUS] = COLAMD_ERROR_A_too_small ;
+ stats [COLAMD_INFO1] = need ;
+ stats [COLAMD_INFO2] = Alen ;
+ COLAMD_DEBUG0 (("colamd: Need Alen >= %d, given only Alen = %d\n", need,Alen));
+ return (false) ;
+ }
+
+ Alen -= Col_size + Row_size ;
+ Col = (colamd_col<IndexType> *) &A [Alen] ;
+ Row = (Colamd_Row<IndexType> *) &A [Alen + Col_size] ;
+
+ /* === Construct the row and column data structures ===================== */
+
+ if (!Eigen::internal::init_rows_cols (n_row, n_col, Row, Col, A, p, stats))
+ {
+ /* input matrix is invalid */
+ COLAMD_DEBUG0 (("colamd: Matrix invalid\n")) ;
+ return (false) ;
+ }
+
+ /* === Initialize scores, kill dense rows/columns ======================= */
+
+ Eigen::internal::init_scoring (n_row, n_col, Row, Col, A, p, knobs,
+ &n_row2, &n_col2, &max_deg) ;
+
+ /* === Order the supercolumns =========================================== */
+
+ ngarbage = Eigen::internal::find_ordering (n_row, n_col, Alen, Row, Col, A, p,
+ n_col2, max_deg, 2*nnz) ;
+
+ /* === Order the non-principal columns ================================== */
+
+ Eigen::internal::order_children (n_col, Col, p) ;
+
+ /* === Return statistics in stats ======================================= */
+
+ stats [COLAMD_DENSE_ROW] = n_row - n_row2 ;
+ stats [COLAMD_DENSE_COL] = n_col - n_col2 ;
+ stats [COLAMD_DEFRAG_COUNT] = ngarbage ;
+ COLAMD_DEBUG0 (("colamd: done.\n")) ;
+ return (true) ;
+}
+
+/* ========================================================================== */
+/* === NON-USER-CALLABLE ROUTINES: ========================================== */
+/* ========================================================================== */
+
+/* There are no user-callable routines beyond this point in the file */
+
+
+/* ========================================================================== */
+/* === init_rows_cols ======================================================= */
+/* ========================================================================== */
+
+/*
+ Takes the column form of the matrix in A and creates the row form of the
+ matrix. Also, row and column attributes are stored in the Col and Row
+ structs. If the columns are un-sorted or contain duplicate row indices,
+ this routine will also sort and remove duplicate row indices from the
+ column form of the matrix. Returns false if the matrix is invalid,
+ true otherwise. Not user-callable.
+*/
+template <typename IndexType>
+static IndexType init_rows_cols /* returns true if OK, or false otherwise */
+ (
+ /* === Parameters ======================================================= */
+
+ IndexType n_row, /* number of rows of A */
+ IndexType n_col, /* number of columns of A */
+ Colamd_Row<IndexType> Row [], /* of size n_row+1 */
+ colamd_col<IndexType> Col [], /* of size n_col+1 */
+ IndexType A [], /* row indices of A, of size Alen */
+ IndexType p [], /* pointers to columns in A, of size n_col+1 */
+ IndexType stats [COLAMD_STATS] /* colamd statistics */
+ )
+{
+ /* === Local variables ================================================== */
+
+ IndexType col ; /* a column index */
+ IndexType row ; /* a row index */
+ IndexType *cp ; /* a column pointer */
+ IndexType *cp_end ; /* a pointer to the end of a column */
+ IndexType *rp ; /* a row pointer */
+ IndexType *rp_end ; /* a pointer to the end of a row */
+ IndexType last_row ; /* previous row */
+
+ /* === Initialize columns, and check column pointers ==================== */
+
+ for (col = 0 ; col < n_col ; col++)
+ {
+ Col [col].start = p [col] ;
+ Col [col].length = p [col+1] - p [col] ;
+
+ if ((Col [col].length) < 0) // extra parentheses to work-around gcc bug 10200
+ {
+ /* column pointers must be non-decreasing */
+ stats [COLAMD_STATUS] = COLAMD_ERROR_col_length_negative ;
+ stats [COLAMD_INFO1] = col ;
+ stats [COLAMD_INFO2] = Col [col].length ;
+ COLAMD_DEBUG0 (("colamd: col %d length %d < 0\n", col, Col [col].length)) ;
+ return (false) ;
+ }
+
+ Col [col].shared1.thickness = 1 ;
+ Col [col].shared2.score = 0 ;
+ Col [col].shared3.prev = COLAMD_EMPTY ;
+ Col [col].shared4.degree_next = COLAMD_EMPTY ;
+ }
+
+ /* p [0..n_col] no longer needed, used as "head" in subsequent routines */
+
+ /* === Scan columns, compute row degrees, and check row indices ========= */
+
+ stats [COLAMD_INFO3] = 0 ; /* number of duplicate or unsorted row indices*/
+
+ for (row = 0 ; row < n_row ; row++)
+ {
+ Row [row].length = 0 ;
+ Row [row].shared2.mark = -1 ;
+ }
+
+ for (col = 0 ; col < n_col ; col++)
+ {
+ last_row = -1 ;
+
+ cp = &A [p [col]] ;
+ cp_end = &A [p [col+1]] ;
+
+ while (cp < cp_end)
+ {
+ row = *cp++ ;
+
+ /* make sure row indices within range */
+ if (row < 0 || row >= n_row)
+ {
+ stats [COLAMD_STATUS] = COLAMD_ERROR_row_index_out_of_bounds ;
+ stats [COLAMD_INFO1] = col ;
+ stats [COLAMD_INFO2] = row ;
+ stats [COLAMD_INFO3] = n_row ;
+ COLAMD_DEBUG0 (("colamd: row %d col %d out of bounds\n", row, col)) ;
+ return (false) ;
+ }
+
+ if (row <= last_row || Row [row].shared2.mark == col)
+ {
+ /* row index are unsorted or repeated (or both), thus col */
+ /* is jumbled. This is a notice, not an error condition. */
+ stats [COLAMD_STATUS] = COLAMD_OK_BUT_JUMBLED ;
+ stats [COLAMD_INFO1] = col ;
+ stats [COLAMD_INFO2] = row ;
+ (stats [COLAMD_INFO3]) ++ ;
+ COLAMD_DEBUG1 (("colamd: row %d col %d unsorted/duplicate\n",row,col));
+ }
+
+ if (Row [row].shared2.mark != col)
+ {
+ Row [row].length++ ;
+ }
+ else
+ {
+ /* this is a repeated entry in the column, */
+ /* it will be removed */
+ Col [col].length-- ;
+ }
+
+ /* mark the row as having been seen in this column */
+ Row [row].shared2.mark = col ;
+
+ last_row = row ;
+ }
+ }
+
+ /* === Compute row pointers ============================================= */
+
+ /* row form of the matrix starts directly after the column */
+ /* form of matrix in A */
+ Row [0].start = p [n_col] ;
+ Row [0].shared1.p = Row [0].start ;
+ Row [0].shared2.mark = -1 ;
+ for (row = 1 ; row < n_row ; row++)
+ {
+ Row [row].start = Row [row-1].start + Row [row-1].length ;
+ Row [row].shared1.p = Row [row].start ;
+ Row [row].shared2.mark = -1 ;
+ }
+
+ /* === Create row form ================================================== */
+
+ if (stats [COLAMD_STATUS] == COLAMD_OK_BUT_JUMBLED)
+ {
+ /* if cols jumbled, watch for repeated row indices */
+ for (col = 0 ; col < n_col ; col++)
+ {
+ cp = &A [p [col]] ;
+ cp_end = &A [p [col+1]] ;
+ while (cp < cp_end)
+ {
+ row = *cp++ ;
+ if (Row [row].shared2.mark != col)
+ {
+ A [(Row [row].shared1.p)++] = col ;
+ Row [row].shared2.mark = col ;
+ }
+ }
+ }
+ }
+ else
+ {
+ /* if cols not jumbled, we don't need the mark (this is faster) */
+ for (col = 0 ; col < n_col ; col++)
+ {
+ cp = &A [p [col]] ;
+ cp_end = &A [p [col+1]] ;
+ while (cp < cp_end)
+ {
+ A [(Row [*cp++].shared1.p)++] = col ;
+ }
+ }
+ }
+
+ /* === Clear the row marks and set row degrees ========================== */
+
+ for (row = 0 ; row < n_row ; row++)
+ {
+ Row [row].shared2.mark = 0 ;
+ Row [row].shared1.degree = Row [row].length ;
+ }
+
+ /* === See if we need to re-create columns ============================== */
+
+ if (stats [COLAMD_STATUS] == COLAMD_OK_BUT_JUMBLED)
+ {
+ COLAMD_DEBUG0 (("colamd: reconstructing column form, matrix jumbled\n")) ;
+
+
+ /* === Compute col pointers ========================================= */
+
+ /* col form of the matrix starts at A [0]. */
+ /* Note, we may have a gap between the col form and the row */
+ /* form if there were duplicate entries, if so, it will be */
+ /* removed upon the first garbage collection */
+ Col [0].start = 0 ;
+ p [0] = Col [0].start ;
+ for (col = 1 ; col < n_col ; col++)
+ {
+ /* note that the lengths here are for pruned columns, i.e. */
+ /* no duplicate row indices will exist for these columns */
+ Col [col].start = Col [col-1].start + Col [col-1].length ;
+ p [col] = Col [col].start ;
+ }
+
+ /* === Re-create col form =========================================== */
+
+ for (row = 0 ; row < n_row ; row++)
+ {
+ rp = &A [Row [row].start] ;
+ rp_end = rp + Row [row].length ;
+ while (rp < rp_end)
+ {
+ A [(p [*rp++])++] = row ;
+ }
+ }
+ }
+
+ /* === Done. Matrix is not (or no longer) jumbled ====================== */
+
+ return (true) ;
+}
+
+
+/* ========================================================================== */
+/* === init_scoring ========================================================= */
+/* ========================================================================== */
+
+/*
+ Kills dense or empty columns and rows, calculates an initial score for
+ each column, and places all columns in the degree lists. Not user-callable.
+*/
+template <typename IndexType>
+static void init_scoring
+ (
+ /* === Parameters ======================================================= */
+
+ IndexType n_row, /* number of rows of A */
+ IndexType n_col, /* number of columns of A */
+ Colamd_Row<IndexType> Row [], /* of size n_row+1 */
+ colamd_col<IndexType> Col [], /* of size n_col+1 */
+ IndexType A [], /* column form and row form of A */
+ IndexType head [], /* of size n_col+1 */
+ double knobs [COLAMD_KNOBS],/* parameters */
+ IndexType *p_n_row2, /* number of non-dense, non-empty rows */
+ IndexType *p_n_col2, /* number of non-dense, non-empty columns */
+ IndexType *p_max_deg /* maximum row degree */
+ )
+{
+ /* === Local variables ================================================== */
+
+ IndexType c ; /* a column index */
+ IndexType r, row ; /* a row index */
+ IndexType *cp ; /* a column pointer */
+ IndexType deg ; /* degree of a row or column */
+ IndexType *cp_end ; /* a pointer to the end of a column */
+ IndexType *new_cp ; /* new column pointer */
+ IndexType col_length ; /* length of pruned column */
+ IndexType score ; /* current column score */
+ IndexType n_col2 ; /* number of non-dense, non-empty columns */
+ IndexType n_row2 ; /* number of non-dense, non-empty rows */
+ IndexType dense_row_count ; /* remove rows with more entries than this */
+ IndexType dense_col_count ; /* remove cols with more entries than this */
+ IndexType min_score ; /* smallest column score */
+ IndexType max_deg ; /* maximum row degree */
+ IndexType next_col ; /* Used to add to degree list.*/
+
+
+ /* === Extract knobs ==================================================== */
+
+ dense_row_count = numext::maxi(IndexType(0), numext::mini(IndexType(knobs [COLAMD_DENSE_ROW] * n_col), n_col)) ;
+ dense_col_count = numext::maxi(IndexType(0), numext::mini(IndexType(knobs [COLAMD_DENSE_COL] * n_row), n_row)) ;
+ COLAMD_DEBUG1 (("colamd: densecount: %d %d\n", dense_row_count, dense_col_count)) ;
+ max_deg = 0 ;
+ n_col2 = n_col ;
+ n_row2 = n_row ;
+
+ /* === Kill empty columns =============================================== */
+
+ /* Put the empty columns at the end in their natural order, so that LU */
+ /* factorization can proceed as far as possible. */
+ for (c = n_col-1 ; c >= 0 ; c--)
+ {
+ deg = Col [c].length ;
+ if (deg == 0)
+ {
+ /* this is a empty column, kill and order it last */
+ Col [c].shared2.order = --n_col2 ;
+ KILL_PRINCIPAL_COL (c) ;
+ }
+ }
+ COLAMD_DEBUG1 (("colamd: null columns killed: %d\n", n_col - n_col2)) ;
+
+ /* === Kill dense columns =============================================== */
+
+ /* Put the dense columns at the end, in their natural order */
+ for (c = n_col-1 ; c >= 0 ; c--)
+ {
+ /* skip any dead columns */
+ if (COL_IS_DEAD (c))
+ {
+ continue ;
+ }
+ deg = Col [c].length ;
+ if (deg > dense_col_count)
+ {
+ /* this is a dense column, kill and order it last */
+ Col [c].shared2.order = --n_col2 ;
+ /* decrement the row degrees */
+ cp = &A [Col [c].start] ;
+ cp_end = cp + Col [c].length ;
+ while (cp < cp_end)
+ {
+ Row [*cp++].shared1.degree-- ;
+ }
+ KILL_PRINCIPAL_COL (c) ;
+ }
+ }
+ COLAMD_DEBUG1 (("colamd: Dense and null columns killed: %d\n", n_col - n_col2)) ;
+
+ /* === Kill dense and empty rows ======================================== */
+
+ for (r = 0 ; r < n_row ; r++)
+ {
+ deg = Row [r].shared1.degree ;
+ COLAMD_ASSERT (deg >= 0 && deg <= n_col) ;
+ if (deg > dense_row_count || deg == 0)
+ {
+ /* kill a dense or empty row */
+ KILL_ROW (r) ;
+ --n_row2 ;
+ }
+ else
+ {
+ /* keep track of max degree of remaining rows */
+ max_deg = numext::maxi(max_deg, deg) ;
+ }
+ }
+ COLAMD_DEBUG1 (("colamd: Dense and null rows killed: %d\n", n_row - n_row2)) ;
+
+ /* === Compute initial column scores ==================================== */
+
+ /* At this point the row degrees are accurate. They reflect the number */
+ /* of "live" (non-dense) columns in each row. No empty rows exist. */
+ /* Some "live" columns may contain only dead rows, however. These are */
+ /* pruned in the code below. */
+
+ /* now find the initial matlab score for each column */
+ for (c = n_col-1 ; c >= 0 ; c--)
+ {
+ /* skip dead column */
+ if (COL_IS_DEAD (c))
+ {
+ continue ;
+ }
+ score = 0 ;
+ cp = &A [Col [c].start] ;
+ new_cp = cp ;
+ cp_end = cp + Col [c].length ;
+ while (cp < cp_end)
+ {
+ /* get a row */
+ row = *cp++ ;
+ /* skip if dead */
+ if (ROW_IS_DEAD (row))
+ {
+ continue ;
+ }
+ /* compact the column */
+ *new_cp++ = row ;
+ /* add row's external degree */
+ score += Row [row].shared1.degree - 1 ;
+ /* guard against integer overflow */
+ score = numext::mini(score, n_col) ;
+ }
+ /* determine pruned column length */
+ col_length = (IndexType) (new_cp - &A [Col [c].start]) ;
+ if (col_length == 0)
+ {
+ /* a newly-made null column (all rows in this col are "dense" */
+ /* and have already been killed) */
+ COLAMD_DEBUG2 (("Newly null killed: %d\n", c)) ;
+ Col [c].shared2.order = --n_col2 ;
+ KILL_PRINCIPAL_COL (c) ;
+ }
+ else
+ {
+ /* set column length and set score */
+ COLAMD_ASSERT (score >= 0) ;
+ COLAMD_ASSERT (score <= n_col) ;
+ Col [c].length = col_length ;
+ Col [c].shared2.score = score ;
+ }
+ }
+ COLAMD_DEBUG1 (("colamd: Dense, null, and newly-null columns killed: %d\n",
+ n_col-n_col2)) ;
+
+ /* At this point, all empty rows and columns are dead. All live columns */
+ /* are "clean" (containing no dead rows) and simplicial (no supercolumns */
+ /* yet). Rows may contain dead columns, but all live rows contain at */
+ /* least one live column. */
+
+ /* === Initialize degree lists ========================================== */
+
+
+ /* clear the hash buckets */
+ for (c = 0 ; c <= n_col ; c++)
+ {
+ head [c] = COLAMD_EMPTY ;
+ }
+ min_score = n_col ;
+ /* place in reverse order, so low column indices are at the front */
+ /* of the lists. This is to encourage natural tie-breaking */
+ for (c = n_col-1 ; c >= 0 ; c--)
+ {
+ /* only add principal columns to degree lists */
+ if (COL_IS_ALIVE (c))
+ {
+ COLAMD_DEBUG4 (("place %d score %d minscore %d ncol %d\n",
+ c, Col [c].shared2.score, min_score, n_col)) ;
+
+ /* === Add columns score to DList =============================== */
+
+ score = Col [c].shared2.score ;
+
+ COLAMD_ASSERT (min_score >= 0) ;
+ COLAMD_ASSERT (min_score <= n_col) ;
+ COLAMD_ASSERT (score >= 0) ;
+ COLAMD_ASSERT (score <= n_col) ;
+ COLAMD_ASSERT (head [score] >= COLAMD_EMPTY) ;
+
+ /* now add this column to dList at proper score location */
+ next_col = head [score] ;
+ Col [c].shared3.prev = COLAMD_EMPTY ;
+ Col [c].shared4.degree_next = next_col ;
+
+ /* if there already was a column with the same score, set its */
+ /* previous pointer to this new column */
+ if (next_col != COLAMD_EMPTY)
+ {
+ Col [next_col].shared3.prev = c ;
+ }
+ head [score] = c ;
+
+ /* see if this score is less than current min */
+ min_score = numext::mini(min_score, score) ;
+
+
+ }
+ }
+
+
+ /* === Return number of remaining columns, and max row degree =========== */
+
+ *p_n_col2 = n_col2 ;
+ *p_n_row2 = n_row2 ;
+ *p_max_deg = max_deg ;
+}
+
+
+/* ========================================================================== */
+/* === find_ordering ======================================================== */
+/* ========================================================================== */
+
+/*
+ Order the principal columns of the supercolumn form of the matrix
+ (no supercolumns on input). Uses a minimum approximate column minimum
+ degree ordering method. Not user-callable.
+*/
+template <typename IndexType>
+static IndexType find_ordering /* return the number of garbage collections */
+ (
+ /* === Parameters ======================================================= */
+
+ IndexType n_row, /* number of rows of A */
+ IndexType n_col, /* number of columns of A */
+ IndexType Alen, /* size of A, 2*nnz + n_col or larger */
+ Colamd_Row<IndexType> Row [], /* of size n_row+1 */
+ colamd_col<IndexType> Col [], /* of size n_col+1 */
+ IndexType A [], /* column form and row form of A */
+ IndexType head [], /* of size n_col+1 */
+ IndexType n_col2, /* Remaining columns to order */
+ IndexType max_deg, /* Maximum row degree */
+ IndexType pfree /* index of first free slot (2*nnz on entry) */
+ )
+{
+ /* === Local variables ================================================== */
+
+ IndexType k ; /* current pivot ordering step */
+ IndexType pivot_col ; /* current pivot column */
+ IndexType *cp ; /* a column pointer */
+ IndexType *rp ; /* a row pointer */
+ IndexType pivot_row ; /* current pivot row */
+ IndexType *new_cp ; /* modified column pointer */
+ IndexType *new_rp ; /* modified row pointer */
+ IndexType pivot_row_start ; /* pointer to start of pivot row */
+ IndexType pivot_row_degree ; /* number of columns in pivot row */
+ IndexType pivot_row_length ; /* number of supercolumns in pivot row */
+ IndexType pivot_col_score ; /* score of pivot column */
+ IndexType needed_memory ; /* free space needed for pivot row */
+ IndexType *cp_end ; /* pointer to the end of a column */
+ IndexType *rp_end ; /* pointer to the end of a row */
+ IndexType row ; /* a row index */
+ IndexType col ; /* a column index */
+ IndexType max_score ; /* maximum possible score */
+ IndexType cur_score ; /* score of current column */
+ unsigned int hash ; /* hash value for supernode detection */
+ IndexType head_column ; /* head of hash bucket */
+ IndexType first_col ; /* first column in hash bucket */
+ IndexType tag_mark ; /* marker value for mark array */
+ IndexType row_mark ; /* Row [row].shared2.mark */
+ IndexType set_difference ; /* set difference size of row with pivot row */
+ IndexType min_score ; /* smallest column score */
+ IndexType col_thickness ; /* "thickness" (no. of columns in a supercol) */
+ IndexType max_mark ; /* maximum value of tag_mark */
+ IndexType pivot_col_thickness ; /* number of columns represented by pivot col */
+ IndexType prev_col ; /* Used by Dlist operations. */
+ IndexType next_col ; /* Used by Dlist operations. */
+ IndexType ngarbage ; /* number of garbage collections performed */
+
+
+ /* === Initialization and clear mark ==================================== */
+
+ max_mark = INT_MAX - n_col ; /* INT_MAX defined in <limits.h> */
+ tag_mark = Eigen::internal::clear_mark (n_row, Row) ;
+ min_score = 0 ;
+ ngarbage = 0 ;
+ COLAMD_DEBUG1 (("colamd: Ordering, n_col2=%d\n", n_col2)) ;
+
+ /* === Order the columns ================================================ */
+
+ for (k = 0 ; k < n_col2 ; /* 'k' is incremented below */)
+ {
+
+ /* === Select pivot column, and order it ============================ */
+
+ /* make sure degree list isn't empty */
+ COLAMD_ASSERT (min_score >= 0) ;
+ COLAMD_ASSERT (min_score <= n_col) ;
+ COLAMD_ASSERT (head [min_score] >= COLAMD_EMPTY) ;
+
+ /* get pivot column from head of minimum degree list */
+ while (min_score < n_col && head [min_score] == COLAMD_EMPTY)
+ {
+ min_score++ ;
+ }
+ pivot_col = head [min_score] ;
+ COLAMD_ASSERT (pivot_col >= 0 && pivot_col <= n_col) ;
+ next_col = Col [pivot_col].shared4.degree_next ;
+ head [min_score] = next_col ;
+ if (next_col != COLAMD_EMPTY)
+ {
+ Col [next_col].shared3.prev = COLAMD_EMPTY ;
+ }
+
+ COLAMD_ASSERT (COL_IS_ALIVE (pivot_col)) ;
+ COLAMD_DEBUG3 (("Pivot col: %d\n", pivot_col)) ;
+
+ /* remember score for defrag check */
+ pivot_col_score = Col [pivot_col].shared2.score ;
+
+ /* the pivot column is the kth column in the pivot order */
+ Col [pivot_col].shared2.order = k ;
+
+ /* increment order count by column thickness */
+ pivot_col_thickness = Col [pivot_col].shared1.thickness ;
+ k += pivot_col_thickness ;
+ COLAMD_ASSERT (pivot_col_thickness > 0) ;
+
+ /* === Garbage_collection, if necessary ============================= */
+
+ needed_memory = numext::mini(pivot_col_score, n_col - k) ;
+ if (pfree + needed_memory >= Alen)
+ {
+ pfree = Eigen::internal::garbage_collection (n_row, n_col, Row, Col, A, &A [pfree]) ;
+ ngarbage++ ;
+ /* after garbage collection we will have enough */
+ COLAMD_ASSERT (pfree + needed_memory < Alen) ;
+ /* garbage collection has wiped out the Row[].shared2.mark array */
+ tag_mark = Eigen::internal::clear_mark (n_row, Row) ;
+
+ }
+
+ /* === Compute pivot row pattern ==================================== */
+
+ /* get starting location for this new merged row */
+ pivot_row_start = pfree ;
+
+ /* initialize new row counts to zero */
+ pivot_row_degree = 0 ;
+
+ /* tag pivot column as having been visited so it isn't included */
+ /* in merged pivot row */
+ Col [pivot_col].shared1.thickness = -pivot_col_thickness ;
+
+ /* pivot row is the union of all rows in the pivot column pattern */
+ cp = &A [Col [pivot_col].start] ;
+ cp_end = cp + Col [pivot_col].length ;
+ while (cp < cp_end)
+ {
+ /* get a row */
+ row = *cp++ ;
+ COLAMD_DEBUG4 (("Pivot col pattern %d %d\n", ROW_IS_ALIVE (row), row)) ;
+ /* skip if row is dead */
+ if (ROW_IS_DEAD (row))
+ {
+ continue ;
+ }
+ rp = &A [Row [row].start] ;
+ rp_end = rp + Row [row].length ;
+ while (rp < rp_end)
+ {
+ /* get a column */
+ col = *rp++ ;
+ /* add the column, if alive and untagged */
+ col_thickness = Col [col].shared1.thickness ;
+ if (col_thickness > 0 && COL_IS_ALIVE (col))
+ {
+ /* tag column in pivot row */
+ Col [col].shared1.thickness = -col_thickness ;
+ COLAMD_ASSERT (pfree < Alen) ;
+ /* place column in pivot row */
+ A [pfree++] = col ;
+ pivot_row_degree += col_thickness ;
+ }
+ }
+ }
+
+ /* clear tag on pivot column */
+ Col [pivot_col].shared1.thickness = pivot_col_thickness ;
+ max_deg = numext::maxi(max_deg, pivot_row_degree) ;
+
+
+ /* === Kill all rows used to construct pivot row ==================== */
+
+ /* also kill pivot row, temporarily */
+ cp = &A [Col [pivot_col].start] ;
+ cp_end = cp + Col [pivot_col].length ;
+ while (cp < cp_end)
+ {
+ /* may be killing an already dead row */
+ row = *cp++ ;
+ COLAMD_DEBUG3 (("Kill row in pivot col: %d\n", row)) ;
+ KILL_ROW (row) ;
+ }
+
+ /* === Select a row index to use as the new pivot row =============== */
+
+ pivot_row_length = pfree - pivot_row_start ;
+ if (pivot_row_length > 0)
+ {
+ /* pick the "pivot" row arbitrarily (first row in col) */
+ pivot_row = A [Col [pivot_col].start] ;
+ COLAMD_DEBUG3 (("Pivotal row is %d\n", pivot_row)) ;
+ }
+ else
+ {
+ /* there is no pivot row, since it is of zero length */
+ pivot_row = COLAMD_EMPTY ;
+ COLAMD_ASSERT (pivot_row_length == 0) ;
+ }
+ COLAMD_ASSERT (Col [pivot_col].length > 0 || pivot_row_length == 0) ;
+
+ /* === Approximate degree computation =============================== */
+
+ /* Here begins the computation of the approximate degree. The column */
+ /* score is the sum of the pivot row "length", plus the size of the */
+ /* set differences of each row in the column minus the pattern of the */
+ /* pivot row itself. The column ("thickness") itself is also */
+ /* excluded from the column score (we thus use an approximate */
+ /* external degree). */
+
+ /* The time taken by the following code (compute set differences, and */
+ /* add them up) is proportional to the size of the data structure */
+ /* being scanned - that is, the sum of the sizes of each column in */
+ /* the pivot row. Thus, the amortized time to compute a column score */
+ /* is proportional to the size of that column (where size, in this */
+ /* context, is the column "length", or the number of row indices */
+ /* in that column). The number of row indices in a column is */
+ /* monotonically non-decreasing, from the length of the original */
+ /* column on input to colamd. */
+
+ /* === Compute set differences ====================================== */
+
+ COLAMD_DEBUG3 (("** Computing set differences phase. **\n")) ;
+
+ /* pivot row is currently dead - it will be revived later. */
+
+ COLAMD_DEBUG3 (("Pivot row: ")) ;
+ /* for each column in pivot row */
+ rp = &A [pivot_row_start] ;
+ rp_end = rp + pivot_row_length ;
+ while (rp < rp_end)
+ {
+ col = *rp++ ;
+ COLAMD_ASSERT (COL_IS_ALIVE (col) && col != pivot_col) ;
+ COLAMD_DEBUG3 (("Col: %d\n", col)) ;
+
+ /* clear tags used to construct pivot row pattern */
+ col_thickness = -Col [col].shared1.thickness ;
+ COLAMD_ASSERT (col_thickness > 0) ;
+ Col [col].shared1.thickness = col_thickness ;
+
+ /* === Remove column from degree list =========================== */
+
+ cur_score = Col [col].shared2.score ;
+ prev_col = Col [col].shared3.prev ;
+ next_col = Col [col].shared4.degree_next ;
+ COLAMD_ASSERT (cur_score >= 0) ;
+ COLAMD_ASSERT (cur_score <= n_col) ;
+ COLAMD_ASSERT (cur_score >= COLAMD_EMPTY) ;
+ if (prev_col == COLAMD_EMPTY)
+ {
+ head [cur_score] = next_col ;
+ }
+ else
+ {
+ Col [prev_col].shared4.degree_next = next_col ;
+ }
+ if (next_col != COLAMD_EMPTY)
+ {
+ Col [next_col].shared3.prev = prev_col ;
+ }
+
+ /* === Scan the column ========================================== */
+
+ cp = &A [Col [col].start] ;
+ cp_end = cp + Col [col].length ;
+ while (cp < cp_end)
+ {
+ /* get a row */
+ row = *cp++ ;
+ row_mark = Row [row].shared2.mark ;
+ /* skip if dead */
+ if (ROW_IS_MARKED_DEAD (row_mark))
+ {
+ continue ;
+ }
+ COLAMD_ASSERT (row != pivot_row) ;
+ set_difference = row_mark - tag_mark ;
+ /* check if the row has been seen yet */
+ if (set_difference < 0)
+ {
+ COLAMD_ASSERT (Row [row].shared1.degree <= max_deg) ;
+ set_difference = Row [row].shared1.degree ;
+ }
+ /* subtract column thickness from this row's set difference */
+ set_difference -= col_thickness ;
+ COLAMD_ASSERT (set_difference >= 0) ;
+ /* absorb this row if the set difference becomes zero */
+ if (set_difference == 0)
+ {
+ COLAMD_DEBUG3 (("aggressive absorption. Row: %d\n", row)) ;
+ KILL_ROW (row) ;
+ }
+ else
+ {
+ /* save the new mark */
+ Row [row].shared2.mark = set_difference + tag_mark ;
+ }
+ }
+ }
+
+
+ /* === Add up set differences for each column ======================= */
+
+ COLAMD_DEBUG3 (("** Adding set differences phase. **\n")) ;
+
+ /* for each column in pivot row */
+ rp = &A [pivot_row_start] ;
+ rp_end = rp + pivot_row_length ;
+ while (rp < rp_end)
+ {
+ /* get a column */
+ col = *rp++ ;
+ COLAMD_ASSERT (COL_IS_ALIVE (col) && col != pivot_col) ;
+ hash = 0 ;
+ cur_score = 0 ;
+ cp = &A [Col [col].start] ;
+ /* compact the column */
+ new_cp = cp ;
+ cp_end = cp + Col [col].length ;
+
+ COLAMD_DEBUG4 (("Adding set diffs for Col: %d.\n", col)) ;
+
+ while (cp < cp_end)
+ {
+ /* get a row */
+ row = *cp++ ;
+ COLAMD_ASSERT(row >= 0 && row < n_row) ;
+ row_mark = Row [row].shared2.mark ;
+ /* skip if dead */
+ if (ROW_IS_MARKED_DEAD (row_mark))
+ {
+ continue ;
+ }
+ COLAMD_ASSERT (row_mark > tag_mark) ;
+ /* compact the column */
+ *new_cp++ = row ;
+ /* compute hash function */
+ hash += row ;
+ /* add set difference */
+ cur_score += row_mark - tag_mark ;
+ /* integer overflow... */
+ cur_score = numext::mini(cur_score, n_col) ;
+ }
+
+ /* recompute the column's length */
+ Col [col].length = (IndexType) (new_cp - &A [Col [col].start]) ;
+
+ /* === Further mass elimination ================================= */
+
+ if (Col [col].length == 0)
+ {
+ COLAMD_DEBUG4 (("further mass elimination. Col: %d\n", col)) ;
+ /* nothing left but the pivot row in this column */
+ KILL_PRINCIPAL_COL (col) ;
+ pivot_row_degree -= Col [col].shared1.thickness ;
+ COLAMD_ASSERT (pivot_row_degree >= 0) ;
+ /* order it */
+ Col [col].shared2.order = k ;
+ /* increment order count by column thickness */
+ k += Col [col].shared1.thickness ;
+ }
+ else
+ {
+ /* === Prepare for supercolumn detection ==================== */
+
+ COLAMD_DEBUG4 (("Preparing supercol detection for Col: %d.\n", col)) ;
+
+ /* save score so far */
+ Col [col].shared2.score = cur_score ;
+
+ /* add column to hash table, for supercolumn detection */
+ hash %= n_col + 1 ;
+
+ COLAMD_DEBUG4 ((" Hash = %d, n_col = %d.\n", hash, n_col)) ;
+ COLAMD_ASSERT (hash <= n_col) ;
+
+ head_column = head [hash] ;
+ if (head_column > COLAMD_EMPTY)
+ {
+ /* degree list "hash" is non-empty, use prev (shared3) of */
+ /* first column in degree list as head of hash bucket */
+ first_col = Col [head_column].shared3.headhash ;
+ Col [head_column].shared3.headhash = col ;
+ }
+ else
+ {
+ /* degree list "hash" is empty, use head as hash bucket */
+ first_col = - (head_column + 2) ;
+ head [hash] = - (col + 2) ;
+ }
+ Col [col].shared4.hash_next = first_col ;
+
+ /* save hash function in Col [col].shared3.hash */
+ Col [col].shared3.hash = (IndexType) hash ;
+ COLAMD_ASSERT (COL_IS_ALIVE (col)) ;
+ }
+ }
+
+ /* The approximate external column degree is now computed. */
+
+ /* === Supercolumn detection ======================================== */
+
+ COLAMD_DEBUG3 (("** Supercolumn detection phase. **\n")) ;
+
+ Eigen::internal::detect_super_cols (Col, A, head, pivot_row_start, pivot_row_length) ;
+
+ /* === Kill the pivotal column ====================================== */
+
+ KILL_PRINCIPAL_COL (pivot_col) ;
+
+ /* === Clear mark =================================================== */
+
+ tag_mark += (max_deg + 1) ;
+ if (tag_mark >= max_mark)
+ {
+ COLAMD_DEBUG2 (("clearing tag_mark\n")) ;
+ tag_mark = Eigen::internal::clear_mark (n_row, Row) ;
+ }
+
+ /* === Finalize the new pivot row, and column scores ================ */
+
+ COLAMD_DEBUG3 (("** Finalize scores phase. **\n")) ;
+
+ /* for each column in pivot row */
+ rp = &A [pivot_row_start] ;
+ /* compact the pivot row */
+ new_rp = rp ;
+ rp_end = rp + pivot_row_length ;
+ while (rp < rp_end)
+ {
+ col = *rp++ ;
+ /* skip dead columns */
+ if (COL_IS_DEAD (col))
+ {
+ continue ;
+ }
+ *new_rp++ = col ;
+ /* add new pivot row to column */
+ A [Col [col].start + (Col [col].length++)] = pivot_row ;
+
+ /* retrieve score so far and add on pivot row's degree. */
+ /* (we wait until here for this in case the pivot */
+ /* row's degree was reduced due to mass elimination). */
+ cur_score = Col [col].shared2.score + pivot_row_degree ;
+
+ /* calculate the max possible score as the number of */
+ /* external columns minus the 'k' value minus the */
+ /* columns thickness */
+ max_score = n_col - k - Col [col].shared1.thickness ;
+
+ /* make the score the external degree of the union-of-rows */
+ cur_score -= Col [col].shared1.thickness ;
+
+ /* make sure score is less or equal than the max score */
+ cur_score = numext::mini(cur_score, max_score) ;
+ COLAMD_ASSERT (cur_score >= 0) ;
+
+ /* store updated score */
+ Col [col].shared2.score = cur_score ;
+
+ /* === Place column back in degree list ========================= */
+
+ COLAMD_ASSERT (min_score >= 0) ;
+ COLAMD_ASSERT (min_score <= n_col) ;
+ COLAMD_ASSERT (cur_score >= 0) ;
+ COLAMD_ASSERT (cur_score <= n_col) ;
+ COLAMD_ASSERT (head [cur_score] >= COLAMD_EMPTY) ;
+ next_col = head [cur_score] ;
+ Col [col].shared4.degree_next = next_col ;
+ Col [col].shared3.prev = COLAMD_EMPTY ;
+ if (next_col != COLAMD_EMPTY)
+ {
+ Col [next_col].shared3.prev = col ;
+ }
+ head [cur_score] = col ;
+
+ /* see if this score is less than current min */
+ min_score = numext::mini(min_score, cur_score) ;
+
+ }
+
+ /* === Resurrect the new pivot row ================================== */
+
+ if (pivot_row_degree > 0)
+ {
+ /* update pivot row length to reflect any cols that were killed */
+ /* during super-col detection and mass elimination */
+ Row [pivot_row].start = pivot_row_start ;
+ Row [pivot_row].length = (IndexType) (new_rp - &A[pivot_row_start]) ;
+ Row [pivot_row].shared1.degree = pivot_row_degree ;
+ Row [pivot_row].shared2.mark = 0 ;
+ /* pivot row is no longer dead */
+ }
+ }
+
+ /* === All principal columns have now been ordered ====================== */
+
+ return (ngarbage) ;
+}
+
+
+/* ========================================================================== */
+/* === order_children ======================================================= */
+/* ========================================================================== */
+
+/*
+ The find_ordering routine has ordered all of the principal columns (the
+ representatives of the supercolumns). The non-principal columns have not
+ yet been ordered. This routine orders those columns by walking up the
+ parent tree (a column is a child of the column which absorbed it). The
+ final permutation vector is then placed in p [0 ... n_col-1], with p [0]
+ being the first column, and p [n_col-1] being the last. It doesn't look
+ like it at first glance, but be assured that this routine takes time linear
+ in the number of columns. Although not immediately obvious, the time
+ taken by this routine is O (n_col), that is, linear in the number of
+ columns. Not user-callable.
+*/
+template <typename IndexType>
+static inline void order_children
+(
+ /* === Parameters ======================================================= */
+
+ IndexType n_col, /* number of columns of A */
+ colamd_col<IndexType> Col [], /* of size n_col+1 */
+ IndexType p [] /* p [0 ... n_col-1] is the column permutation*/
+ )
+{
+ /* === Local variables ================================================== */
+
+ IndexType i ; /* loop counter for all columns */
+ IndexType c ; /* column index */
+ IndexType parent ; /* index of column's parent */
+ IndexType order ; /* column's order */
+
+ /* === Order each non-principal column ================================== */
+
+ for (i = 0 ; i < n_col ; i++)
+ {
+ /* find an un-ordered non-principal column */
+ COLAMD_ASSERT (COL_IS_DEAD (i)) ;
+ if (!COL_IS_DEAD_PRINCIPAL (i) && Col [i].shared2.order == COLAMD_EMPTY)
+ {
+ parent = i ;
+ /* once found, find its principal parent */
+ do
+ {
+ parent = Col [parent].shared1.parent ;
+ } while (!COL_IS_DEAD_PRINCIPAL (parent)) ;
+
+ /* now, order all un-ordered non-principal columns along path */
+ /* to this parent. collapse tree at the same time */
+ c = i ;
+ /* get order of parent */
+ order = Col [parent].shared2.order ;
+
+ do
+ {
+ COLAMD_ASSERT (Col [c].shared2.order == COLAMD_EMPTY) ;
+
+ /* order this column */
+ Col [c].shared2.order = order++ ;
+ /* collaps tree */
+ Col [c].shared1.parent = parent ;
+
+ /* get immediate parent of this column */
+ c = Col [c].shared1.parent ;
+
+ /* continue until we hit an ordered column. There are */
+ /* guarranteed not to be anymore unordered columns */
+ /* above an ordered column */
+ } while (Col [c].shared2.order == COLAMD_EMPTY) ;
+
+ /* re-order the super_col parent to largest order for this group */
+ Col [parent].shared2.order = order ;
+ }
+ }
+
+ /* === Generate the permutation ========================================= */
+
+ for (c = 0 ; c < n_col ; c++)
+ {
+ p [Col [c].shared2.order] = c ;
+ }
+}
+
+
+/* ========================================================================== */
+/* === detect_super_cols ==================================================== */
+/* ========================================================================== */
+
+/*
+ Detects supercolumns by finding matches between columns in the hash buckets.
+ Check amongst columns in the set A [row_start ... row_start + row_length-1].
+ The columns under consideration are currently *not* in the degree lists,
+ and have already been placed in the hash buckets.
+
+ The hash bucket for columns whose hash function is equal to h is stored
+ as follows:
+
+ if head [h] is >= 0, then head [h] contains a degree list, so:
+
+ head [h] is the first column in degree bucket h.
+ Col [head [h]].headhash gives the first column in hash bucket h.
+
+ otherwise, the degree list is empty, and:
+
+ -(head [h] + 2) is the first column in hash bucket h.
+
+ For a column c in a hash bucket, Col [c].shared3.prev is NOT a "previous
+ column" pointer. Col [c].shared3.hash is used instead as the hash number
+ for that column. The value of Col [c].shared4.hash_next is the next column
+ in the same hash bucket.
+
+ Assuming no, or "few" hash collisions, the time taken by this routine is
+ linear in the sum of the sizes (lengths) of each column whose score has
+ just been computed in the approximate degree computation.
+ Not user-callable.
+*/
+template <typename IndexType>
+static void detect_super_cols
+(
+ /* === Parameters ======================================================= */
+
+ colamd_col<IndexType> Col [], /* of size n_col+1 */
+ IndexType A [], /* row indices of A */
+ IndexType head [], /* head of degree lists and hash buckets */
+ IndexType row_start, /* pointer to set of columns to check */
+ IndexType row_length /* number of columns to check */
+)
+{
+ /* === Local variables ================================================== */
+
+ IndexType hash ; /* hash value for a column */
+ IndexType *rp ; /* pointer to a row */
+ IndexType c ; /* a column index */
+ IndexType super_c ; /* column index of the column to absorb into */
+ IndexType *cp1 ; /* column pointer for column super_c */
+ IndexType *cp2 ; /* column pointer for column c */
+ IndexType length ; /* length of column super_c */
+ IndexType prev_c ; /* column preceding c in hash bucket */
+ IndexType i ; /* loop counter */
+ IndexType *rp_end ; /* pointer to the end of the row */
+ IndexType col ; /* a column index in the row to check */
+ IndexType head_column ; /* first column in hash bucket or degree list */
+ IndexType first_col ; /* first column in hash bucket */
+
+ /* === Consider each column in the row ================================== */
+
+ rp = &A [row_start] ;
+ rp_end = rp + row_length ;
+ while (rp < rp_end)
+ {
+ col = *rp++ ;
+ if (COL_IS_DEAD (col))
+ {
+ continue ;
+ }
+
+ /* get hash number for this column */
+ hash = Col [col].shared3.hash ;
+ COLAMD_ASSERT (hash <= n_col) ;
+
+ /* === Get the first column in this hash bucket ===================== */
+
+ head_column = head [hash] ;
+ if (head_column > COLAMD_EMPTY)
+ {
+ first_col = Col [head_column].shared3.headhash ;
+ }
+ else
+ {
+ first_col = - (head_column + 2) ;
+ }
+
+ /* === Consider each column in the hash bucket ====================== */
+
+ for (super_c = first_col ; super_c != COLAMD_EMPTY ;
+ super_c = Col [super_c].shared4.hash_next)
+ {
+ COLAMD_ASSERT (COL_IS_ALIVE (super_c)) ;
+ COLAMD_ASSERT (Col [super_c].shared3.hash == hash) ;
+ length = Col [super_c].length ;
+
+ /* prev_c is the column preceding column c in the hash bucket */
+ prev_c = super_c ;
+
+ /* === Compare super_c with all columns after it ================ */
+
+ for (c = Col [super_c].shared4.hash_next ;
+ c != COLAMD_EMPTY ; c = Col [c].shared4.hash_next)
+ {
+ COLAMD_ASSERT (c != super_c) ;
+ COLAMD_ASSERT (COL_IS_ALIVE (c)) ;
+ COLAMD_ASSERT (Col [c].shared3.hash == hash) ;
+
+ /* not identical if lengths or scores are different */
+ if (Col [c].length != length ||
+ Col [c].shared2.score != Col [super_c].shared2.score)
+ {
+ prev_c = c ;
+ continue ;
+ }
+
+ /* compare the two columns */
+ cp1 = &A [Col [super_c].start] ;
+ cp2 = &A [Col [c].start] ;
+
+ for (i = 0 ; i < length ; i++)
+ {
+ /* the columns are "clean" (no dead rows) */
+ COLAMD_ASSERT (ROW_IS_ALIVE (*cp1)) ;
+ COLAMD_ASSERT (ROW_IS_ALIVE (*cp2)) ;
+ /* row indices will same order for both supercols, */
+ /* no gather scatter nessasary */
+ if (*cp1++ != *cp2++)
+ {
+ break ;
+ }
+ }
+
+ /* the two columns are different if the for-loop "broke" */
+ if (i != length)
+ {
+ prev_c = c ;
+ continue ;
+ }
+
+ /* === Got it! two columns are identical =================== */
+
+ COLAMD_ASSERT (Col [c].shared2.score == Col [super_c].shared2.score) ;
+
+ Col [super_c].shared1.thickness += Col [c].shared1.thickness ;
+ Col [c].shared1.parent = super_c ;
+ KILL_NON_PRINCIPAL_COL (c) ;
+ /* order c later, in order_children() */
+ Col [c].shared2.order = COLAMD_EMPTY ;
+ /* remove c from hash bucket */
+ Col [prev_c].shared4.hash_next = Col [c].shared4.hash_next ;
+ }
+ }
+
+ /* === Empty this hash bucket ======================================= */
+
+ if (head_column > COLAMD_EMPTY)
+ {
+ /* corresponding degree list "hash" is not empty */
+ Col [head_column].shared3.headhash = COLAMD_EMPTY ;
+ }
+ else
+ {
+ /* corresponding degree list "hash" is empty */
+ head [hash] = COLAMD_EMPTY ;
+ }
+ }
+}
+
+
+/* ========================================================================== */
+/* === garbage_collection =================================================== */
+/* ========================================================================== */
+
+/*
+ Defragments and compacts columns and rows in the workspace A. Used when
+ all avaliable memory has been used while performing row merging. Returns
+ the index of the first free position in A, after garbage collection. The
+ time taken by this routine is linear is the size of the array A, which is
+ itself linear in the number of nonzeros in the input matrix.
+ Not user-callable.
+*/
+template <typename IndexType>
+static IndexType garbage_collection /* returns the new value of pfree */
+ (
+ /* === Parameters ======================================================= */
+
+ IndexType n_row, /* number of rows */
+ IndexType n_col, /* number of columns */
+ Colamd_Row<IndexType> Row [], /* row info */
+ colamd_col<IndexType> Col [], /* column info */
+ IndexType A [], /* A [0 ... Alen-1] holds the matrix */
+ IndexType *pfree /* &A [0] ... pfree is in use */
+ )
+{
+ /* === Local variables ================================================== */
+
+ IndexType *psrc ; /* source pointer */
+ IndexType *pdest ; /* destination pointer */
+ IndexType j ; /* counter */
+ IndexType r ; /* a row index */
+ IndexType c ; /* a column index */
+ IndexType length ; /* length of a row or column */
+
+ /* === Defragment the columns =========================================== */
+
+ pdest = &A[0] ;
+ for (c = 0 ; c < n_col ; c++)
+ {
+ if (COL_IS_ALIVE (c))
+ {
+ psrc = &A [Col [c].start] ;
+
+ /* move and compact the column */
+ COLAMD_ASSERT (pdest <= psrc) ;
+ Col [c].start = (IndexType) (pdest - &A [0]) ;
+ length = Col [c].length ;
+ for (j = 0 ; j < length ; j++)
+ {
+ r = *psrc++ ;
+ if (ROW_IS_ALIVE (r))
+ {
+ *pdest++ = r ;
+ }
+ }
+ Col [c].length = (IndexType) (pdest - &A [Col [c].start]) ;
+ }
+ }
+
+ /* === Prepare to defragment the rows =================================== */
+
+ for (r = 0 ; r < n_row ; r++)
+ {
+ if (ROW_IS_ALIVE (r))
+ {
+ if (Row [r].length == 0)
+ {
+ /* this row is of zero length. cannot compact it, so kill it */
+ COLAMD_DEBUG3 (("Defrag row kill\n")) ;
+ KILL_ROW (r) ;
+ }
+ else
+ {
+ /* save first column index in Row [r].shared2.first_column */
+ psrc = &A [Row [r].start] ;
+ Row [r].shared2.first_column = *psrc ;
+ COLAMD_ASSERT (ROW_IS_ALIVE (r)) ;
+ /* flag the start of the row with the one's complement of row */
+ *psrc = ONES_COMPLEMENT (r) ;
+
+ }
+ }
+ }
+
+ /* === Defragment the rows ============================================== */
+
+ psrc = pdest ;
+ while (psrc < pfree)
+ {
+ /* find a negative number ... the start of a row */
+ if (*psrc++ < 0)
+ {
+ psrc-- ;
+ /* get the row index */
+ r = ONES_COMPLEMENT (*psrc) ;
+ COLAMD_ASSERT (r >= 0 && r < n_row) ;
+ /* restore first column index */
+ *psrc = Row [r].shared2.first_column ;
+ COLAMD_ASSERT (ROW_IS_ALIVE (r)) ;
+
+ /* move and compact the row */
+ COLAMD_ASSERT (pdest <= psrc) ;
+ Row [r].start = (IndexType) (pdest - &A [0]) ;
+ length = Row [r].length ;
+ for (j = 0 ; j < length ; j++)
+ {
+ c = *psrc++ ;
+ if (COL_IS_ALIVE (c))
+ {
+ *pdest++ = c ;
+ }
+ }
+ Row [r].length = (IndexType) (pdest - &A [Row [r].start]) ;
+
+ }
+ }
+ /* ensure we found all the rows */
+ COLAMD_ASSERT (debug_rows == 0) ;
+
+ /* === Return the new value of pfree ==================================== */
+
+ return ((IndexType) (pdest - &A [0])) ;
+}
+
+
+/* ========================================================================== */
+/* === clear_mark =========================================================== */
+/* ========================================================================== */
+
+/*
+ Clears the Row [].shared2.mark array, and returns the new tag_mark.
+ Return value is the new tag_mark. Not user-callable.
+*/
+template <typename IndexType>
+static inline IndexType clear_mark /* return the new value for tag_mark */
+ (
+ /* === Parameters ======================================================= */
+
+ IndexType n_row, /* number of rows in A */
+ Colamd_Row<IndexType> Row [] /* Row [0 ... n_row-1].shared2.mark is set to zero */
+ )
+{
+ /* === Local variables ================================================== */
+
+ IndexType r ;
+
+ for (r = 0 ; r < n_row ; r++)
+ {
+ if (ROW_IS_ALIVE (r))
+ {
+ Row [r].shared2.mark = 0 ;
+ }
+ }
+ return (1) ;
+}
+
+
+} // namespace internal
+#endif
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/OrderingMethods/Ordering.h b/runtimes/nn/depend/external/eigen/Eigen/src/OrderingMethods/Ordering.h
new file mode 100644
index 000000000..7ea9b14d7
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/OrderingMethods/Ordering.h
@@ -0,0 +1,157 @@
+
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ORDERING_H
+#define EIGEN_ORDERING_H
+
+namespace Eigen {
+
+#include "Eigen_Colamd.h"
+
+namespace internal {
+
+/** \internal
+ * \ingroup OrderingMethods_Module
+ * \param[in] A the input non-symmetric matrix
+ * \param[out] symmat the symmetric pattern A^T+A from the input matrix \a A.
+ * FIXME: The values should not be considered here
+ */
+template<typename MatrixType>
+void ordering_helper_at_plus_a(const MatrixType& A, MatrixType& symmat)
+{
+ MatrixType C;
+ C = A.transpose(); // NOTE: Could be costly
+ for (int i = 0; i < C.rows(); i++)
+ {
+ for (typename MatrixType::InnerIterator it(C, i); it; ++it)
+ it.valueRef() = 0.0;
+ }
+ symmat = C + A;
+}
+
+}
+
+#ifndef EIGEN_MPL2_ONLY
+
+/** \ingroup OrderingMethods_Module
+ * \class AMDOrdering
+ *
+ * Functor computing the \em approximate \em minimum \em degree ordering
+ * If the matrix is not structurally symmetric, an ordering of A^T+A is computed
+ * \tparam StorageIndex The type of indices of the matrix
+ * \sa COLAMDOrdering
+ */
+template <typename StorageIndex>
+class AMDOrdering
+{
+ public:
+ typedef PermutationMatrix<Dynamic, Dynamic, StorageIndex> PermutationType;
+
+ /** Compute the permutation vector from a sparse matrix
+ * This routine is much faster if the input matrix is column-major
+ */
+ template <typename MatrixType>
+ void operator()(const MatrixType& mat, PermutationType& perm)
+ {
+ // Compute the symmetric pattern
+ SparseMatrix<typename MatrixType::Scalar, ColMajor, StorageIndex> symm;
+ internal::ordering_helper_at_plus_a(mat,symm);
+
+ // Call the AMD routine
+ //m_mat.prune(keep_diag());
+ internal::minimum_degree_ordering(symm, perm);
+ }
+
+ /** Compute the permutation with a selfadjoint matrix */
+ template <typename SrcType, unsigned int SrcUpLo>
+ void operator()(const SparseSelfAdjointView<SrcType, SrcUpLo>& mat, PermutationType& perm)
+ {
+ SparseMatrix<typename SrcType::Scalar, ColMajor, StorageIndex> C; C = mat;
+
+ // Call the AMD routine
+ // m_mat.prune(keep_diag()); //Remove the diagonal elements
+ internal::minimum_degree_ordering(C, perm);
+ }
+};
+
+#endif // EIGEN_MPL2_ONLY
+
+/** \ingroup OrderingMethods_Module
+ * \class NaturalOrdering
+ *
+ * Functor computing the natural ordering (identity)
+ *
+ * \note Returns an empty permutation matrix
+ * \tparam StorageIndex The type of indices of the matrix
+ */
+template <typename StorageIndex>
+class NaturalOrdering
+{
+ public:
+ typedef PermutationMatrix<Dynamic, Dynamic, StorageIndex> PermutationType;
+
+ /** Compute the permutation vector from a column-major sparse matrix */
+ template <typename MatrixType>
+ void operator()(const MatrixType& /*mat*/, PermutationType& perm)
+ {
+ perm.resize(0);
+ }
+
+};
+
+/** \ingroup OrderingMethods_Module
+ * \class COLAMDOrdering
+ *
+ * \tparam StorageIndex The type of indices of the matrix
+ *
+ * Functor computing the \em column \em approximate \em minimum \em degree ordering
+ * The matrix should be in column-major and \b compressed format (see SparseMatrix::makeCompressed()).
+ */
+template<typename StorageIndex>
+class COLAMDOrdering
+{
+ public:
+ typedef PermutationMatrix<Dynamic, Dynamic, StorageIndex> PermutationType;
+ typedef Matrix<StorageIndex, Dynamic, 1> IndexVector;
+
+ /** Compute the permutation vector \a perm form the sparse matrix \a mat
+ * \warning The input sparse matrix \a mat must be in compressed mode (see SparseMatrix::makeCompressed()).
+ */
+ template <typename MatrixType>
+ void operator() (const MatrixType& mat, PermutationType& perm)
+ {
+ eigen_assert(mat.isCompressed() && "COLAMDOrdering requires a sparse matrix in compressed mode. Call .makeCompressed() before passing it to COLAMDOrdering");
+
+ StorageIndex m = StorageIndex(mat.rows());
+ StorageIndex n = StorageIndex(mat.cols());
+ StorageIndex nnz = StorageIndex(mat.nonZeros());
+ // Get the recommended value of Alen to be used by colamd
+ StorageIndex Alen = internal::colamd_recommended(nnz, m, n);
+ // Set the default parameters
+ double knobs [COLAMD_KNOBS];
+ StorageIndex stats [COLAMD_STATS];
+ internal::colamd_set_defaults(knobs);
+
+ IndexVector p(n+1), A(Alen);
+ for(StorageIndex i=0; i <= n; i++) p(i) = mat.outerIndexPtr()[i];
+ for(StorageIndex i=0; i < nnz; i++) A(i) = mat.innerIndexPtr()[i];
+ // Call Colamd routine to compute the ordering
+ StorageIndex info = internal::colamd(m, n, Alen, A.data(), p.data(), knobs, stats);
+ EIGEN_UNUSED_VARIABLE(info);
+ eigen_assert( info && "COLAMD failed " );
+
+ perm.resize(n);
+ for (StorageIndex i = 0; i < n; i++) perm.indices()(p(i)) = i;
+ }
+};
+
+} // end namespace Eigen
+
+#endif
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h b/runtimes/nn/depend/external/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h
new file mode 100644
index 000000000..d2ebfd7bb
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h
@@ -0,0 +1,678 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PASTIXSUPPORT_H
+#define EIGEN_PASTIXSUPPORT_H
+
+namespace Eigen {
+
+#if defined(DCOMPLEX)
+ #define PASTIX_COMPLEX COMPLEX
+ #define PASTIX_DCOMPLEX DCOMPLEX
+#else
+ #define PASTIX_COMPLEX std::complex<float>
+ #define PASTIX_DCOMPLEX std::complex<double>
+#endif
+
+/** \ingroup PaStiXSupport_Module
+ * \brief Interface to the PaStix solver
+ *
+ * This class is used to solve the linear systems A.X = B via the PaStix library.
+ * The matrix can be either real or complex, symmetric or not.
+ *
+ * \sa TutorialSparseDirectSolvers
+ */
+template<typename _MatrixType, bool IsStrSym = false> class PastixLU;
+template<typename _MatrixType, int Options> class PastixLLT;
+template<typename _MatrixType, int Options> class PastixLDLT;
+
+namespace internal
+{
+
+ template<class Pastix> struct pastix_traits;
+
+ template<typename _MatrixType>
+ struct pastix_traits< PastixLU<_MatrixType> >
+ {
+ typedef _MatrixType MatrixType;
+ typedef typename _MatrixType::Scalar Scalar;
+ typedef typename _MatrixType::RealScalar RealScalar;
+ typedef typename _MatrixType::StorageIndex StorageIndex;
+ };
+
+ template<typename _MatrixType, int Options>
+ struct pastix_traits< PastixLLT<_MatrixType,Options> >
+ {
+ typedef _MatrixType MatrixType;
+ typedef typename _MatrixType::Scalar Scalar;
+ typedef typename _MatrixType::RealScalar RealScalar;
+ typedef typename _MatrixType::StorageIndex StorageIndex;
+ };
+
+ template<typename _MatrixType, int Options>
+ struct pastix_traits< PastixLDLT<_MatrixType,Options> >
+ {
+ typedef _MatrixType MatrixType;
+ typedef typename _MatrixType::Scalar Scalar;
+ typedef typename _MatrixType::RealScalar RealScalar;
+ typedef typename _MatrixType::StorageIndex StorageIndex;
+ };
+
+ void eigen_pastix(pastix_data_t **pastix_data, int pastix_comm, int n, int *ptr, int *idx, float *vals, int *perm, int * invp, float *x, int nbrhs, int *iparm, double *dparm)
+ {
+ if (n == 0) { ptr = NULL; idx = NULL; vals = NULL; }
+ if (nbrhs == 0) {x = NULL; nbrhs=1;}
+ s_pastix(pastix_data, pastix_comm, n, ptr, idx, vals, perm, invp, x, nbrhs, iparm, dparm);
+ }
+
+ void eigen_pastix(pastix_data_t **pastix_data, int pastix_comm, int n, int *ptr, int *idx, double *vals, int *perm, int * invp, double *x, int nbrhs, int *iparm, double *dparm)
+ {
+ if (n == 0) { ptr = NULL; idx = NULL; vals = NULL; }
+ if (nbrhs == 0) {x = NULL; nbrhs=1;}
+ d_pastix(pastix_data, pastix_comm, n, ptr, idx, vals, perm, invp, x, nbrhs, iparm, dparm);
+ }
+
+ void eigen_pastix(pastix_data_t **pastix_data, int pastix_comm, int n, int *ptr, int *idx, std::complex<float> *vals, int *perm, int * invp, std::complex<float> *x, int nbrhs, int *iparm, double *dparm)
+ {
+ if (n == 0) { ptr = NULL; idx = NULL; vals = NULL; }
+ if (nbrhs == 0) {x = NULL; nbrhs=1;}
+ c_pastix(pastix_data, pastix_comm, n, ptr, idx, reinterpret_cast<PASTIX_COMPLEX*>(vals), perm, invp, reinterpret_cast<PASTIX_COMPLEX*>(x), nbrhs, iparm, dparm);
+ }
+
+ void eigen_pastix(pastix_data_t **pastix_data, int pastix_comm, int n, int *ptr, int *idx, std::complex<double> *vals, int *perm, int * invp, std::complex<double> *x, int nbrhs, int *iparm, double *dparm)
+ {
+ if (n == 0) { ptr = NULL; idx = NULL; vals = NULL; }
+ if (nbrhs == 0) {x = NULL; nbrhs=1;}
+ z_pastix(pastix_data, pastix_comm, n, ptr, idx, reinterpret_cast<PASTIX_DCOMPLEX*>(vals), perm, invp, reinterpret_cast<PASTIX_DCOMPLEX*>(x), nbrhs, iparm, dparm);
+ }
+
+ // Convert the matrix to Fortran-style Numbering
+ template <typename MatrixType>
+ void c_to_fortran_numbering (MatrixType& mat)
+ {
+ if ( !(mat.outerIndexPtr()[0]) )
+ {
+ int i;
+ for(i = 0; i <= mat.rows(); ++i)
+ ++mat.outerIndexPtr()[i];
+ for(i = 0; i < mat.nonZeros(); ++i)
+ ++mat.innerIndexPtr()[i];
+ }
+ }
+
+ // Convert to C-style Numbering
+ template <typename MatrixType>
+ void fortran_to_c_numbering (MatrixType& mat)
+ {
+ // Check the Numbering
+ if ( mat.outerIndexPtr()[0] == 1 )
+ { // Convert to C-style numbering
+ int i;
+ for(i = 0; i <= mat.rows(); ++i)
+ --mat.outerIndexPtr()[i];
+ for(i = 0; i < mat.nonZeros(); ++i)
+ --mat.innerIndexPtr()[i];
+ }
+ }
+}
+
+// This is the base class to interface with PaStiX functions.
+// Users should not used this class directly.
+template <class Derived>
+class PastixBase : public SparseSolverBase<Derived>
+{
+ protected:
+ typedef SparseSolverBase<Derived> Base;
+ using Base::derived;
+ using Base::m_isInitialized;
+ public:
+ using Base::_solve_impl;
+
+ typedef typename internal::pastix_traits<Derived>::MatrixType _MatrixType;
+ typedef _MatrixType MatrixType;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef Matrix<Scalar,Dynamic,1> Vector;
+ typedef SparseMatrix<Scalar, ColMajor> ColSpMatrix;
+ enum {
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+
+ public:
+
+ PastixBase() : m_initisOk(false), m_analysisIsOk(false), m_factorizationIsOk(false), m_pastixdata(0), m_size(0)
+ {
+ init();
+ }
+
+ ~PastixBase()
+ {
+ clean();
+ }
+
+ template<typename Rhs,typename Dest>
+ bool _solve_impl(const MatrixBase<Rhs> &b, MatrixBase<Dest> &x) const;
+
+ /** Returns a reference to the integer vector IPARM of PaStiX parameters
+ * to modify the default parameters.
+ * The statistics related to the different phases of factorization and solve are saved here as well
+ * \sa analyzePattern() factorize()
+ */
+ Array<StorageIndex,IPARM_SIZE,1>& iparm()
+ {
+ return m_iparm;
+ }
+
+ /** Return a reference to a particular index parameter of the IPARM vector
+ * \sa iparm()
+ */
+
+ int& iparm(int idxparam)
+ {
+ return m_iparm(idxparam);
+ }
+
+ /** Returns a reference to the double vector DPARM of PaStiX parameters
+ * The statistics related to the different phases of factorization and solve are saved here as well
+ * \sa analyzePattern() factorize()
+ */
+ Array<double,DPARM_SIZE,1>& dparm()
+ {
+ return m_dparm;
+ }
+
+
+ /** Return a reference to a particular index parameter of the DPARM vector
+ * \sa dparm()
+ */
+ double& dparm(int idxparam)
+ {
+ return m_dparm(idxparam);
+ }
+
+ inline Index cols() const { return m_size; }
+ inline Index rows() const { return m_size; }
+
+ /** \brief Reports whether previous computation was successful.
+ *
+ * \returns \c Success if computation was succesful,
+ * \c NumericalIssue if the PaStiX reports a problem
+ * \c InvalidInput if the input matrix is invalid
+ *
+ * \sa iparm()
+ */
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+ return m_info;
+ }
+
+ protected:
+
+ // Initialize the Pastix data structure, check the matrix
+ void init();
+
+ // Compute the ordering and the symbolic factorization
+ void analyzePattern(ColSpMatrix& mat);
+
+ // Compute the numerical factorization
+ void factorize(ColSpMatrix& mat);
+
+ // Free all the data allocated by Pastix
+ void clean()
+ {
+ eigen_assert(m_initisOk && "The Pastix structure should be allocated first");
+ m_iparm(IPARM_START_TASK) = API_TASK_CLEAN;
+ m_iparm(IPARM_END_TASK) = API_TASK_CLEAN;
+ internal::eigen_pastix(&m_pastixdata, MPI_COMM_WORLD, 0, 0, 0, (Scalar*)0,
+ m_perm.data(), m_invp.data(), 0, 0, m_iparm.data(), m_dparm.data());
+ }
+
+ void compute(ColSpMatrix& mat);
+
+ int m_initisOk;
+ int m_analysisIsOk;
+ int m_factorizationIsOk;
+ mutable ComputationInfo m_info;
+ mutable pastix_data_t *m_pastixdata; // Data structure for pastix
+ mutable int m_comm; // The MPI communicator identifier
+ mutable Array<int,IPARM_SIZE,1> m_iparm; // integer vector for the input parameters
+ mutable Array<double,DPARM_SIZE,1> m_dparm; // Scalar vector for the input parameters
+ mutable Matrix<StorageIndex,Dynamic,1> m_perm; // Permutation vector
+ mutable Matrix<StorageIndex,Dynamic,1> m_invp; // Inverse permutation vector
+ mutable int m_size; // Size of the matrix
+};
+
+ /** Initialize the PaStiX data structure.
+ *A first call to this function fills iparm and dparm with the default PaStiX parameters
+ * \sa iparm() dparm()
+ */
+template <class Derived>
+void PastixBase<Derived>::init()
+{
+ m_size = 0;
+ m_iparm.setZero(IPARM_SIZE);
+ m_dparm.setZero(DPARM_SIZE);
+
+ m_iparm(IPARM_MODIFY_PARAMETER) = API_NO;
+ pastix(&m_pastixdata, MPI_COMM_WORLD,
+ 0, 0, 0, 0,
+ 0, 0, 0, 1, m_iparm.data(), m_dparm.data());
+
+ m_iparm[IPARM_MATRIX_VERIFICATION] = API_NO;
+ m_iparm[IPARM_VERBOSE] = API_VERBOSE_NOT;
+ m_iparm[IPARM_ORDERING] = API_ORDER_SCOTCH;
+ m_iparm[IPARM_INCOMPLETE] = API_NO;
+ m_iparm[IPARM_OOC_LIMIT] = 2000;
+ m_iparm[IPARM_RHS_MAKING] = API_RHS_B;
+ m_iparm(IPARM_MATRIX_VERIFICATION) = API_NO;
+
+ m_iparm(IPARM_START_TASK) = API_TASK_INIT;
+ m_iparm(IPARM_END_TASK) = API_TASK_INIT;
+ internal::eigen_pastix(&m_pastixdata, MPI_COMM_WORLD, 0, 0, 0, (Scalar*)0,
+ 0, 0, 0, 0, m_iparm.data(), m_dparm.data());
+
+ // Check the returned error
+ if(m_iparm(IPARM_ERROR_NUMBER)) {
+ m_info = InvalidInput;
+ m_initisOk = false;
+ }
+ else {
+ m_info = Success;
+ m_initisOk = true;
+ }
+}
+
+template <class Derived>
+void PastixBase<Derived>::compute(ColSpMatrix& mat)
+{
+ eigen_assert(mat.rows() == mat.cols() && "The input matrix should be squared");
+
+ analyzePattern(mat);
+ factorize(mat);
+
+ m_iparm(IPARM_MATRIX_VERIFICATION) = API_NO;
+}
+
+
+template <class Derived>
+void PastixBase<Derived>::analyzePattern(ColSpMatrix& mat)
+{
+ eigen_assert(m_initisOk && "The initialization of PaSTiX failed");
+
+ // clean previous calls
+ if(m_size>0)
+ clean();
+
+ m_size = internal::convert_index<int>(mat.rows());
+ m_perm.resize(m_size);
+ m_invp.resize(m_size);
+
+ m_iparm(IPARM_START_TASK) = API_TASK_ORDERING;
+ m_iparm(IPARM_END_TASK) = API_TASK_ANALYSE;
+ internal::eigen_pastix(&m_pastixdata, MPI_COMM_WORLD, m_size, mat.outerIndexPtr(), mat.innerIndexPtr(),
+ mat.valuePtr(), m_perm.data(), m_invp.data(), 0, 0, m_iparm.data(), m_dparm.data());
+
+ // Check the returned error
+ if(m_iparm(IPARM_ERROR_NUMBER))
+ {
+ m_info = NumericalIssue;
+ m_analysisIsOk = false;
+ }
+ else
+ {
+ m_info = Success;
+ m_analysisIsOk = true;
+ }
+}
+
+template <class Derived>
+void PastixBase<Derived>::factorize(ColSpMatrix& mat)
+{
+// if(&m_cpyMat != &mat) m_cpyMat = mat;
+ eigen_assert(m_analysisIsOk && "The analysis phase should be called before the factorization phase");
+ m_iparm(IPARM_START_TASK) = API_TASK_NUMFACT;
+ m_iparm(IPARM_END_TASK) = API_TASK_NUMFACT;
+ m_size = internal::convert_index<int>(mat.rows());
+
+ internal::eigen_pastix(&m_pastixdata, MPI_COMM_WORLD, m_size, mat.outerIndexPtr(), mat.innerIndexPtr(),
+ mat.valuePtr(), m_perm.data(), m_invp.data(), 0, 0, m_iparm.data(), m_dparm.data());
+
+ // Check the returned error
+ if(m_iparm(IPARM_ERROR_NUMBER))
+ {
+ m_info = NumericalIssue;
+ m_factorizationIsOk = false;
+ m_isInitialized = false;
+ }
+ else
+ {
+ m_info = Success;
+ m_factorizationIsOk = true;
+ m_isInitialized = true;
+ }
+}
+
+/* Solve the system */
+template<typename Base>
+template<typename Rhs,typename Dest>
+bool PastixBase<Base>::_solve_impl(const MatrixBase<Rhs> &b, MatrixBase<Dest> &x) const
+{
+ eigen_assert(m_isInitialized && "The matrix should be factorized first");
+ EIGEN_STATIC_ASSERT((Dest::Flags&RowMajorBit)==0,
+ THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES);
+ int rhs = 1;
+
+ x = b; /* on return, x is overwritten by the computed solution */
+
+ for (int i = 0; i < b.cols(); i++){
+ m_iparm[IPARM_START_TASK] = API_TASK_SOLVE;
+ m_iparm[IPARM_END_TASK] = API_TASK_REFINE;
+
+ internal::eigen_pastix(&m_pastixdata, MPI_COMM_WORLD, internal::convert_index<int>(x.rows()), 0, 0, 0,
+ m_perm.data(), m_invp.data(), &x(0, i), rhs, m_iparm.data(), m_dparm.data());
+ }
+
+ // Check the returned error
+ m_info = m_iparm(IPARM_ERROR_NUMBER)==0 ? Success : NumericalIssue;
+
+ return m_iparm(IPARM_ERROR_NUMBER)==0;
+}
+
+/** \ingroup PaStiXSupport_Module
+ * \class PastixLU
+ * \brief Sparse direct LU solver based on PaStiX library
+ *
+ * This class is used to solve the linear systems A.X = B with a supernodal LU
+ * factorization in the PaStiX library. The matrix A should be squared and nonsingular
+ * PaStiX requires that the matrix A has a symmetric structural pattern.
+ * This interface can symmetrize the input matrix otherwise.
+ * The vectors or matrices X and B can be either dense or sparse.
+ *
+ * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+ * \tparam IsStrSym Indicates if the input matrix has a symmetric pattern, default is false
+ * NOTE : Note that if the analysis and factorization phase are called separately,
+ * the input matrix will be symmetrized at each call, hence it is advised to
+ * symmetrize the matrix in a end-user program and set \p IsStrSym to true
+ *
+ * \implsparsesolverconcept
+ *
+ * \sa \ref TutorialSparseSolverConcept, class SparseLU
+ *
+ */
+template<typename _MatrixType, bool IsStrSym>
+class PastixLU : public PastixBase< PastixLU<_MatrixType> >
+{
+ public:
+ typedef _MatrixType MatrixType;
+ typedef PastixBase<PastixLU<MatrixType> > Base;
+ typedef typename Base::ColSpMatrix ColSpMatrix;
+ typedef typename MatrixType::StorageIndex StorageIndex;
+
+ public:
+ PastixLU() : Base()
+ {
+ init();
+ }
+
+ explicit PastixLU(const MatrixType& matrix):Base()
+ {
+ init();
+ compute(matrix);
+ }
+ /** Compute the LU supernodal factorization of \p matrix.
+ * iparm and dparm can be used to tune the PaStiX parameters.
+ * see the PaStiX user's manual
+ * \sa analyzePattern() factorize()
+ */
+ void compute (const MatrixType& matrix)
+ {
+ m_structureIsUptodate = false;
+ ColSpMatrix temp;
+ grabMatrix(matrix, temp);
+ Base::compute(temp);
+ }
+ /** Compute the LU symbolic factorization of \p matrix using its sparsity pattern.
+ * Several ordering methods can be used at this step. See the PaStiX user's manual.
+ * The result of this operation can be used with successive matrices having the same pattern as \p matrix
+ * \sa factorize()
+ */
+ void analyzePattern(const MatrixType& matrix)
+ {
+ m_structureIsUptodate = false;
+ ColSpMatrix temp;
+ grabMatrix(matrix, temp);
+ Base::analyzePattern(temp);
+ }
+
+ /** Compute the LU supernodal factorization of \p matrix
+ * WARNING The matrix \p matrix should have the same structural pattern
+ * as the same used in the analysis phase.
+ * \sa analyzePattern()
+ */
+ void factorize(const MatrixType& matrix)
+ {
+ ColSpMatrix temp;
+ grabMatrix(matrix, temp);
+ Base::factorize(temp);
+ }
+ protected:
+
+ void init()
+ {
+ m_structureIsUptodate = false;
+ m_iparm(IPARM_SYM) = API_SYM_NO;
+ m_iparm(IPARM_FACTORIZATION) = API_FACT_LU;
+ }
+
+ void grabMatrix(const MatrixType& matrix, ColSpMatrix& out)
+ {
+ if(IsStrSym)
+ out = matrix;
+ else
+ {
+ if(!m_structureIsUptodate)
+ {
+ // update the transposed structure
+ m_transposedStructure = matrix.transpose();
+
+ // Set the elements of the matrix to zero
+ for (Index j=0; j<m_transposedStructure.outerSize(); ++j)
+ for(typename ColSpMatrix::InnerIterator it(m_transposedStructure, j); it; ++it)
+ it.valueRef() = 0.0;
+
+ m_structureIsUptodate = true;
+ }
+
+ out = m_transposedStructure + matrix;
+ }
+ internal::c_to_fortran_numbering(out);
+ }
+
+ using Base::m_iparm;
+ using Base::m_dparm;
+
+ ColSpMatrix m_transposedStructure;
+ bool m_structureIsUptodate;
+};
+
+/** \ingroup PaStiXSupport_Module
+ * \class PastixLLT
+ * \brief A sparse direct supernodal Cholesky (LLT) factorization and solver based on the PaStiX library
+ *
+ * This class is used to solve the linear systems A.X = B via a LL^T supernodal Cholesky factorization
+ * available in the PaStiX library. The matrix A should be symmetric and positive definite
+ * WARNING Selfadjoint complex matrices are not supported in the current version of PaStiX
+ * The vectors or matrices X and B can be either dense or sparse
+ *
+ * \tparam MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+ * \tparam UpLo The part of the matrix to use : Lower or Upper. The default is Lower as required by PaStiX
+ *
+ * \implsparsesolverconcept
+ *
+ * \sa \ref TutorialSparseSolverConcept, class SimplicialLLT
+ */
+template<typename _MatrixType, int _UpLo>
+class PastixLLT : public PastixBase< PastixLLT<_MatrixType, _UpLo> >
+{
+ public:
+ typedef _MatrixType MatrixType;
+ typedef PastixBase<PastixLLT<MatrixType, _UpLo> > Base;
+ typedef typename Base::ColSpMatrix ColSpMatrix;
+
+ public:
+ enum { UpLo = _UpLo };
+ PastixLLT() : Base()
+ {
+ init();
+ }
+
+ explicit PastixLLT(const MatrixType& matrix):Base()
+ {
+ init();
+ compute(matrix);
+ }
+
+ /** Compute the L factor of the LL^T supernodal factorization of \p matrix
+ * \sa analyzePattern() factorize()
+ */
+ void compute (const MatrixType& matrix)
+ {
+ ColSpMatrix temp;
+ grabMatrix(matrix, temp);
+ Base::compute(temp);
+ }
+
+ /** Compute the LL^T symbolic factorization of \p matrix using its sparsity pattern
+ * The result of this operation can be used with successive matrices having the same pattern as \p matrix
+ * \sa factorize()
+ */
+ void analyzePattern(const MatrixType& matrix)
+ {
+ ColSpMatrix temp;
+ grabMatrix(matrix, temp);
+ Base::analyzePattern(temp);
+ }
+ /** Compute the LL^T supernodal numerical factorization of \p matrix
+ * \sa analyzePattern()
+ */
+ void factorize(const MatrixType& matrix)
+ {
+ ColSpMatrix temp;
+ grabMatrix(matrix, temp);
+ Base::factorize(temp);
+ }
+ protected:
+ using Base::m_iparm;
+
+ void init()
+ {
+ m_iparm(IPARM_SYM) = API_SYM_YES;
+ m_iparm(IPARM_FACTORIZATION) = API_FACT_LLT;
+ }
+
+ void grabMatrix(const MatrixType& matrix, ColSpMatrix& out)
+ {
+ out.resize(matrix.rows(), matrix.cols());
+ // Pastix supports only lower, column-major matrices
+ out.template selfadjointView<Lower>() = matrix.template selfadjointView<UpLo>();
+ internal::c_to_fortran_numbering(out);
+ }
+};
+
+/** \ingroup PaStiXSupport_Module
+ * \class PastixLDLT
+ * \brief A sparse direct supernodal Cholesky (LLT) factorization and solver based on the PaStiX library
+ *
+ * This class is used to solve the linear systems A.X = B via a LDL^T supernodal Cholesky factorization
+ * available in the PaStiX library. The matrix A should be symmetric and positive definite
+ * WARNING Selfadjoint complex matrices are not supported in the current version of PaStiX
+ * The vectors or matrices X and B can be either dense or sparse
+ *
+ * \tparam MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+ * \tparam UpLo The part of the matrix to use : Lower or Upper. The default is Lower as required by PaStiX
+ *
+ * \implsparsesolverconcept
+ *
+ * \sa \ref TutorialSparseSolverConcept, class SimplicialLDLT
+ */
+template<typename _MatrixType, int _UpLo>
+class PastixLDLT : public PastixBase< PastixLDLT<_MatrixType, _UpLo> >
+{
+ public:
+ typedef _MatrixType MatrixType;
+ typedef PastixBase<PastixLDLT<MatrixType, _UpLo> > Base;
+ typedef typename Base::ColSpMatrix ColSpMatrix;
+
+ public:
+ enum { UpLo = _UpLo };
+ PastixLDLT():Base()
+ {
+ init();
+ }
+
+ explicit PastixLDLT(const MatrixType& matrix):Base()
+ {
+ init();
+ compute(matrix);
+ }
+
+ /** Compute the L and D factors of the LDL^T factorization of \p matrix
+ * \sa analyzePattern() factorize()
+ */
+ void compute (const MatrixType& matrix)
+ {
+ ColSpMatrix temp;
+ grabMatrix(matrix, temp);
+ Base::compute(temp);
+ }
+
+ /** Compute the LDL^T symbolic factorization of \p matrix using its sparsity pattern
+ * The result of this operation can be used with successive matrices having the same pattern as \p matrix
+ * \sa factorize()
+ */
+ void analyzePattern(const MatrixType& matrix)
+ {
+ ColSpMatrix temp;
+ grabMatrix(matrix, temp);
+ Base::analyzePattern(temp);
+ }
+ /** Compute the LDL^T supernodal numerical factorization of \p matrix
+ *
+ */
+ void factorize(const MatrixType& matrix)
+ {
+ ColSpMatrix temp;
+ grabMatrix(matrix, temp);
+ Base::factorize(temp);
+ }
+
+ protected:
+ using Base::m_iparm;
+
+ void init()
+ {
+ m_iparm(IPARM_SYM) = API_SYM_YES;
+ m_iparm(IPARM_FACTORIZATION) = API_FACT_LDLT;
+ }
+
+ void grabMatrix(const MatrixType& matrix, ColSpMatrix& out)
+ {
+ // Pastix supports only lower, column-major matrices
+ out.resize(matrix.rows(), matrix.cols());
+ out.template selfadjointView<Lower>() = matrix.template selfadjointView<UpLo>();
+ internal::c_to_fortran_numbering(out);
+ }
+};
+
+} // end namespace Eigen
+
+#endif
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/PardisoSupport/PardisoSupport.h b/runtimes/nn/depend/external/eigen/Eigen/src/PardisoSupport/PardisoSupport.h
new file mode 100644
index 000000000..091c3970e
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/PardisoSupport/PardisoSupport.h
@@ -0,0 +1,543 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ * Content : Eigen bindings to Intel(R) MKL PARDISO
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_PARDISOSUPPORT_H
+#define EIGEN_PARDISOSUPPORT_H
+
+namespace Eigen {
+
+template<typename _MatrixType> class PardisoLU;
+template<typename _MatrixType, int Options=Upper> class PardisoLLT;
+template<typename _MatrixType, int Options=Upper> class PardisoLDLT;
+
+namespace internal
+{
+ template<typename IndexType>
+ struct pardiso_run_selector
+ {
+ static IndexType run( _MKL_DSS_HANDLE_t pt, IndexType maxfct, IndexType mnum, IndexType type, IndexType phase, IndexType n, void *a,
+ IndexType *ia, IndexType *ja, IndexType *perm, IndexType nrhs, IndexType *iparm, IndexType msglvl, void *b, void *x)
+ {
+ IndexType error = 0;
+ ::pardiso(pt, &maxfct, &mnum, &type, &phase, &n, a, ia, ja, perm, &nrhs, iparm, &msglvl, b, x, &error);
+ return error;
+ }
+ };
+ template<>
+ struct pardiso_run_selector<long long int>
+ {
+ typedef long long int IndexType;
+ static IndexType run( _MKL_DSS_HANDLE_t pt, IndexType maxfct, IndexType mnum, IndexType type, IndexType phase, IndexType n, void *a,
+ IndexType *ia, IndexType *ja, IndexType *perm, IndexType nrhs, IndexType *iparm, IndexType msglvl, void *b, void *x)
+ {
+ IndexType error = 0;
+ ::pardiso_64(pt, &maxfct, &mnum, &type, &phase, &n, a, ia, ja, perm, &nrhs, iparm, &msglvl, b, x, &error);
+ return error;
+ }
+ };
+
+ template<class Pardiso> struct pardiso_traits;
+
+ template<typename _MatrixType>
+ struct pardiso_traits< PardisoLU<_MatrixType> >
+ {
+ typedef _MatrixType MatrixType;
+ typedef typename _MatrixType::Scalar Scalar;
+ typedef typename _MatrixType::RealScalar RealScalar;
+ typedef typename _MatrixType::StorageIndex StorageIndex;
+ };
+
+ template<typename _MatrixType, int Options>
+ struct pardiso_traits< PardisoLLT<_MatrixType, Options> >
+ {
+ typedef _MatrixType MatrixType;
+ typedef typename _MatrixType::Scalar Scalar;
+ typedef typename _MatrixType::RealScalar RealScalar;
+ typedef typename _MatrixType::StorageIndex StorageIndex;
+ };
+
+ template<typename _MatrixType, int Options>
+ struct pardiso_traits< PardisoLDLT<_MatrixType, Options> >
+ {
+ typedef _MatrixType MatrixType;
+ typedef typename _MatrixType::Scalar Scalar;
+ typedef typename _MatrixType::RealScalar RealScalar;
+ typedef typename _MatrixType::StorageIndex StorageIndex;
+ };
+
+} // end namespace internal
+
+template<class Derived>
+class PardisoImpl : public SparseSolverBase<Derived>
+{
+ protected:
+ typedef SparseSolverBase<Derived> Base;
+ using Base::derived;
+ using Base::m_isInitialized;
+
+ typedef internal::pardiso_traits<Derived> Traits;
+ public:
+ using Base::_solve_impl;
+
+ typedef typename Traits::MatrixType MatrixType;
+ typedef typename Traits::Scalar Scalar;
+ typedef typename Traits::RealScalar RealScalar;
+ typedef typename Traits::StorageIndex StorageIndex;
+ typedef SparseMatrix<Scalar,RowMajor,StorageIndex> SparseMatrixType;
+ typedef Matrix<Scalar,Dynamic,1> VectorType;
+ typedef Matrix<StorageIndex, 1, MatrixType::ColsAtCompileTime> IntRowVectorType;
+ typedef Matrix<StorageIndex, MatrixType::RowsAtCompileTime, 1> IntColVectorType;
+ typedef Array<StorageIndex,64,1,DontAlign> ParameterType;
+ enum {
+ ScalarIsComplex = NumTraits<Scalar>::IsComplex,
+ ColsAtCompileTime = Dynamic,
+ MaxColsAtCompileTime = Dynamic
+ };
+
+ PardisoImpl()
+ {
+ eigen_assert((sizeof(StorageIndex) >= sizeof(_INTEGER_t) && sizeof(StorageIndex) <= 8) && "Non-supported index type");
+ m_iparm.setZero();
+ m_msglvl = 0; // No output
+ m_isInitialized = false;
+ }
+
+ ~PardisoImpl()
+ {
+ pardisoRelease();
+ }
+
+ inline Index cols() const { return m_size; }
+ inline Index rows() const { return m_size; }
+
+ /** \brief Reports whether previous computation was successful.
+ *
+ * \returns \c Success if computation was succesful,
+ * \c NumericalIssue if the matrix appears to be negative.
+ */
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+ return m_info;
+ }
+
+ /** \warning for advanced usage only.
+ * \returns a reference to the parameter array controlling PARDISO.
+ * See the PARDISO manual to know how to use it. */
+ ParameterType& pardisoParameterArray()
+ {
+ return m_iparm;
+ }
+
+ /** Performs a symbolic decomposition on the sparcity of \a matrix.
+ *
+ * This function is particularly useful when solving for several problems having the same structure.
+ *
+ * \sa factorize()
+ */
+ Derived& analyzePattern(const MatrixType& matrix);
+
+ /** Performs a numeric decomposition of \a matrix
+ *
+ * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
+ *
+ * \sa analyzePattern()
+ */
+ Derived& factorize(const MatrixType& matrix);
+
+ Derived& compute(const MatrixType& matrix);
+
+ template<typename Rhs,typename Dest>
+ void _solve_impl(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const;
+
+ protected:
+ void pardisoRelease()
+ {
+ if(m_isInitialized) // Factorization ran at least once
+ {
+ internal::pardiso_run_selector<StorageIndex>::run(m_pt, 1, 1, m_type, -1, internal::convert_index<StorageIndex>(m_size),0, 0, 0, m_perm.data(), 0,
+ m_iparm.data(), m_msglvl, NULL, NULL);
+ m_isInitialized = false;
+ }
+ }
+
+ void pardisoInit(int type)
+ {
+ m_type = type;
+ bool symmetric = std::abs(m_type) < 10;
+ m_iparm[0] = 1; // No solver default
+ m_iparm[1] = 2; // use Metis for the ordering
+ m_iparm[2] = 0; // Reserved. Set to zero. (??Numbers of processors, value of OMP_NUM_THREADS??)
+ m_iparm[3] = 0; // No iterative-direct algorithm
+ m_iparm[4] = 0; // No user fill-in reducing permutation
+ m_iparm[5] = 0; // Write solution into x, b is left unchanged
+ m_iparm[6] = 0; // Not in use
+ m_iparm[7] = 2; // Max numbers of iterative refinement steps
+ m_iparm[8] = 0; // Not in use
+ m_iparm[9] = 13; // Perturb the pivot elements with 1E-13
+ m_iparm[10] = symmetric ? 0 : 1; // Use nonsymmetric permutation and scaling MPS
+ m_iparm[11] = 0; // Not in use
+ m_iparm[12] = symmetric ? 0 : 1; // Maximum weighted matching algorithm is switched-off (default for symmetric).
+ // Try m_iparm[12] = 1 in case of inappropriate accuracy
+ m_iparm[13] = 0; // Output: Number of perturbed pivots
+ m_iparm[14] = 0; // Not in use
+ m_iparm[15] = 0; // Not in use
+ m_iparm[16] = 0; // Not in use
+ m_iparm[17] = -1; // Output: Number of nonzeros in the factor LU
+ m_iparm[18] = -1; // Output: Mflops for LU factorization
+ m_iparm[19] = 0; // Output: Numbers of CG Iterations
+
+ m_iparm[20] = 0; // 1x1 pivoting
+ m_iparm[26] = 0; // No matrix checker
+ m_iparm[27] = (sizeof(RealScalar) == 4) ? 1 : 0;
+ m_iparm[34] = 1; // C indexing
+ m_iparm[36] = 0; // CSR
+ m_iparm[59] = 0; // 0 - In-Core ; 1 - Automatic switch between In-Core and Out-of-Core modes ; 2 - Out-of-Core
+
+ memset(m_pt, 0, sizeof(m_pt));
+ }
+
+ protected:
+ // cached data to reduce reallocation, etc.
+
+ void manageErrorCode(Index error) const
+ {
+ switch(error)
+ {
+ case 0:
+ m_info = Success;
+ break;
+ case -4:
+ case -7:
+ m_info = NumericalIssue;
+ break;
+ default:
+ m_info = InvalidInput;
+ }
+ }
+
+ mutable SparseMatrixType m_matrix;
+ mutable ComputationInfo m_info;
+ bool m_analysisIsOk, m_factorizationIsOk;
+ StorageIndex m_type, m_msglvl;
+ mutable void *m_pt[64];
+ mutable ParameterType m_iparm;
+ mutable IntColVectorType m_perm;
+ Index m_size;
+
+};
+
+template<class Derived>
+Derived& PardisoImpl<Derived>::compute(const MatrixType& a)
+{
+ m_size = a.rows();
+ eigen_assert(a.rows() == a.cols());
+
+ pardisoRelease();
+ m_perm.setZero(m_size);
+ derived().getMatrix(a);
+
+ Index error;
+ error = internal::pardiso_run_selector<StorageIndex>::run(m_pt, 1, 1, m_type, 12, internal::convert_index<StorageIndex>(m_size),
+ m_matrix.valuePtr(), m_matrix.outerIndexPtr(), m_matrix.innerIndexPtr(),
+ m_perm.data(), 0, m_iparm.data(), m_msglvl, NULL, NULL);
+ manageErrorCode(error);
+ m_analysisIsOk = true;
+ m_factorizationIsOk = true;
+ m_isInitialized = true;
+ return derived();
+}
+
+template<class Derived>
+Derived& PardisoImpl<Derived>::analyzePattern(const MatrixType& a)
+{
+ m_size = a.rows();
+ eigen_assert(m_size == a.cols());
+
+ pardisoRelease();
+ m_perm.setZero(m_size);
+ derived().getMatrix(a);
+
+ Index error;
+ error = internal::pardiso_run_selector<StorageIndex>::run(m_pt, 1, 1, m_type, 11, internal::convert_index<StorageIndex>(m_size),
+ m_matrix.valuePtr(), m_matrix.outerIndexPtr(), m_matrix.innerIndexPtr(),
+ m_perm.data(), 0, m_iparm.data(), m_msglvl, NULL, NULL);
+
+ manageErrorCode(error);
+ m_analysisIsOk = true;
+ m_factorizationIsOk = false;
+ m_isInitialized = true;
+ return derived();
+}
+
+template<class Derived>
+Derived& PardisoImpl<Derived>::factorize(const MatrixType& a)
+{
+ eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
+ eigen_assert(m_size == a.rows() && m_size == a.cols());
+
+ derived().getMatrix(a);
+
+ Index error;
+ error = internal::pardiso_run_selector<StorageIndex>::run(m_pt, 1, 1, m_type, 22, internal::convert_index<StorageIndex>(m_size),
+ m_matrix.valuePtr(), m_matrix.outerIndexPtr(), m_matrix.innerIndexPtr(),
+ m_perm.data(), 0, m_iparm.data(), m_msglvl, NULL, NULL);
+
+ manageErrorCode(error);
+ m_factorizationIsOk = true;
+ return derived();
+}
+
+template<class Derived>
+template<typename BDerived,typename XDerived>
+void PardisoImpl<Derived>::_solve_impl(const MatrixBase<BDerived> &b, MatrixBase<XDerived>& x) const
+{
+ if(m_iparm[0] == 0) // Factorization was not computed
+ {
+ m_info = InvalidInput;
+ return;
+ }
+
+ //Index n = m_matrix.rows();
+ Index nrhs = Index(b.cols());
+ eigen_assert(m_size==b.rows());
+ eigen_assert(((MatrixBase<BDerived>::Flags & RowMajorBit) == 0 || nrhs == 1) && "Row-major right hand sides are not supported");
+ eigen_assert(((MatrixBase<XDerived>::Flags & RowMajorBit) == 0 || nrhs == 1) && "Row-major matrices of unknowns are not supported");
+ eigen_assert(((nrhs == 1) || b.outerStride() == b.rows()));
+
+
+// switch (transposed) {
+// case SvNoTrans : m_iparm[11] = 0 ; break;
+// case SvTranspose : m_iparm[11] = 2 ; break;
+// case SvAdjoint : m_iparm[11] = 1 ; break;
+// default:
+// //std::cerr << "Eigen: transposition option \"" << transposed << "\" not supported by the PARDISO backend\n";
+// m_iparm[11] = 0;
+// }
+
+ Scalar* rhs_ptr = const_cast<Scalar*>(b.derived().data());
+ Matrix<Scalar,Dynamic,Dynamic,ColMajor> tmp;
+
+ // Pardiso cannot solve in-place
+ if(rhs_ptr == x.derived().data())
+ {
+ tmp = b;
+ rhs_ptr = tmp.data();
+ }
+
+ Index error;
+ error = internal::pardiso_run_selector<StorageIndex>::run(m_pt, 1, 1, m_type, 33, internal::convert_index<StorageIndex>(m_size),
+ m_matrix.valuePtr(), m_matrix.outerIndexPtr(), m_matrix.innerIndexPtr(),
+ m_perm.data(), internal::convert_index<StorageIndex>(nrhs), m_iparm.data(), m_msglvl,
+ rhs_ptr, x.derived().data());
+
+ manageErrorCode(error);
+}
+
+
+/** \ingroup PardisoSupport_Module
+ * \class PardisoLU
+ * \brief A sparse direct LU factorization and solver based on the PARDISO library
+ *
+ * This class allows to solve for A.X = B sparse linear problems via a direct LU factorization
+ * using the Intel MKL PARDISO library. The sparse matrix A must be squared and invertible.
+ * The vectors or matrices X and B can be either dense or sparse.
+ *
+ * By default, it runs in in-core mode. To enable PARDISO's out-of-core feature, set:
+ * \code solver.pardisoParameterArray()[59] = 1; \endcode
+ *
+ * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+ *
+ * \implsparsesolverconcept
+ *
+ * \sa \ref TutorialSparseSolverConcept, class SparseLU
+ */
+template<typename MatrixType>
+class PardisoLU : public PardisoImpl< PardisoLU<MatrixType> >
+{
+ protected:
+ typedef PardisoImpl<PardisoLU> Base;
+ typedef typename Base::Scalar Scalar;
+ typedef typename Base::RealScalar RealScalar;
+ using Base::pardisoInit;
+ using Base::m_matrix;
+ friend class PardisoImpl< PardisoLU<MatrixType> >;
+
+ public:
+
+ using Base::compute;
+ using Base::solve;
+
+ PardisoLU()
+ : Base()
+ {
+ pardisoInit(Base::ScalarIsComplex ? 13 : 11);
+ }
+
+ explicit PardisoLU(const MatrixType& matrix)
+ : Base()
+ {
+ pardisoInit(Base::ScalarIsComplex ? 13 : 11);
+ compute(matrix);
+ }
+ protected:
+ void getMatrix(const MatrixType& matrix)
+ {
+ m_matrix = matrix;
+ m_matrix.makeCompressed();
+ }
+};
+
+/** \ingroup PardisoSupport_Module
+ * \class PardisoLLT
+ * \brief A sparse direct Cholesky (LLT) factorization and solver based on the PARDISO library
+ *
+ * This class allows to solve for A.X = B sparse linear problems via a LL^T Cholesky factorization
+ * using the Intel MKL PARDISO library. The sparse matrix A must be selfajoint and positive definite.
+ * The vectors or matrices X and B can be either dense or sparse.
+ *
+ * By default, it runs in in-core mode. To enable PARDISO's out-of-core feature, set:
+ * \code solver.pardisoParameterArray()[59] = 1; \endcode
+ *
+ * \tparam MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+ * \tparam UpLo can be any bitwise combination of Upper, Lower. The default is Upper, meaning only the upper triangular part has to be used.
+ * Upper|Lower can be used to tell both triangular parts can be used as input.
+ *
+ * \implsparsesolverconcept
+ *
+ * \sa \ref TutorialSparseSolverConcept, class SimplicialLLT
+ */
+template<typename MatrixType, int _UpLo>
+class PardisoLLT : public PardisoImpl< PardisoLLT<MatrixType,_UpLo> >
+{
+ protected:
+ typedef PardisoImpl< PardisoLLT<MatrixType,_UpLo> > Base;
+ typedef typename Base::Scalar Scalar;
+ typedef typename Base::RealScalar RealScalar;
+ using Base::pardisoInit;
+ using Base::m_matrix;
+ friend class PardisoImpl< PardisoLLT<MatrixType,_UpLo> >;
+
+ public:
+
+ typedef typename Base::StorageIndex StorageIndex;
+ enum { UpLo = _UpLo };
+ using Base::compute;
+
+ PardisoLLT()
+ : Base()
+ {
+ pardisoInit(Base::ScalarIsComplex ? 4 : 2);
+ }
+
+ explicit PardisoLLT(const MatrixType& matrix)
+ : Base()
+ {
+ pardisoInit(Base::ScalarIsComplex ? 4 : 2);
+ compute(matrix);
+ }
+
+ protected:
+
+ void getMatrix(const MatrixType& matrix)
+ {
+ // PARDISO supports only upper, row-major matrices
+ PermutationMatrix<Dynamic,Dynamic,StorageIndex> p_null;
+ m_matrix.resize(matrix.rows(), matrix.cols());
+ m_matrix.template selfadjointView<Upper>() = matrix.template selfadjointView<UpLo>().twistedBy(p_null);
+ m_matrix.makeCompressed();
+ }
+};
+
+/** \ingroup PardisoSupport_Module
+ * \class PardisoLDLT
+ * \brief A sparse direct Cholesky (LDLT) factorization and solver based on the PARDISO library
+ *
+ * This class allows to solve for A.X = B sparse linear problems via a LDL^T Cholesky factorization
+ * using the Intel MKL PARDISO library. The sparse matrix A is assumed to be selfajoint and positive definite.
+ * For complex matrices, A can also be symmetric only, see the \a Options template parameter.
+ * The vectors or matrices X and B can be either dense or sparse.
+ *
+ * By default, it runs in in-core mode. To enable PARDISO's out-of-core feature, set:
+ * \code solver.pardisoParameterArray()[59] = 1; \endcode
+ *
+ * \tparam MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+ * \tparam Options can be any bitwise combination of Upper, Lower, and Symmetric. The default is Upper, meaning only the upper triangular part has to be used.
+ * Symmetric can be used for symmetric, non-selfadjoint complex matrices, the default being to assume a selfadjoint matrix.
+ * Upper|Lower can be used to tell both triangular parts can be used as input.
+ *
+ * \implsparsesolverconcept
+ *
+ * \sa \ref TutorialSparseSolverConcept, class SimplicialLDLT
+ */
+template<typename MatrixType, int Options>
+class PardisoLDLT : public PardisoImpl< PardisoLDLT<MatrixType,Options> >
+{
+ protected:
+ typedef PardisoImpl< PardisoLDLT<MatrixType,Options> > Base;
+ typedef typename Base::Scalar Scalar;
+ typedef typename Base::RealScalar RealScalar;
+ using Base::pardisoInit;
+ using Base::m_matrix;
+ friend class PardisoImpl< PardisoLDLT<MatrixType,Options> >;
+
+ public:
+
+ typedef typename Base::StorageIndex StorageIndex;
+ using Base::compute;
+ enum { UpLo = Options&(Upper|Lower) };
+
+ PardisoLDLT()
+ : Base()
+ {
+ pardisoInit(Base::ScalarIsComplex ? ( bool(Options&Symmetric) ? 6 : -4 ) : -2);
+ }
+
+ explicit PardisoLDLT(const MatrixType& matrix)
+ : Base()
+ {
+ pardisoInit(Base::ScalarIsComplex ? ( bool(Options&Symmetric) ? 6 : -4 ) : -2);
+ compute(matrix);
+ }
+
+ void getMatrix(const MatrixType& matrix)
+ {
+ // PARDISO supports only upper, row-major matrices
+ PermutationMatrix<Dynamic,Dynamic,StorageIndex> p_null;
+ m_matrix.resize(matrix.rows(), matrix.cols());
+ m_matrix.template selfadjointView<Upper>() = matrix.template selfadjointView<UpLo>().twistedBy(p_null);
+ m_matrix.makeCompressed();
+ }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_PARDISOSUPPORT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/QR/ColPivHouseholderQR.h b/runtimes/nn/depend/external/eigen/Eigen/src/QR/ColPivHouseholderQR.h
new file mode 100644
index 000000000..a7b47d55d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/QR/ColPivHouseholderQR.h
@@ -0,0 +1,653 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COLPIVOTINGHOUSEHOLDERQR_H
+#define EIGEN_COLPIVOTINGHOUSEHOLDERQR_H
+
+namespace Eigen {
+
+namespace internal {
+template<typename _MatrixType> struct traits<ColPivHouseholderQR<_MatrixType> >
+ : traits<_MatrixType>
+{
+ enum { Flags = 0 };
+};
+
+} // end namespace internal
+
+/** \ingroup QR_Module
+ *
+ * \class ColPivHouseholderQR
+ *
+ * \brief Householder rank-revealing QR decomposition of a matrix with column-pivoting
+ *
+ * \tparam _MatrixType the type of the matrix of which we are computing the QR decomposition
+ *
+ * This class performs a rank-revealing QR decomposition of a matrix \b A into matrices \b P, \b Q and \b R
+ * such that
+ * \f[
+ * \mathbf{A} \, \mathbf{P} = \mathbf{Q} \, \mathbf{R}
+ * \f]
+ * by using Householder transformations. Here, \b P is a permutation matrix, \b Q a unitary matrix and \b R an
+ * upper triangular matrix.
+ *
+ * This decomposition performs column pivoting in order to be rank-revealing and improve
+ * numerical stability. It is slower than HouseholderQR, and faster than FullPivHouseholderQR.
+ *
+ * This class supports the \link InplaceDecomposition inplace decomposition \endlink mechanism.
+ *
+ * \sa MatrixBase::colPivHouseholderQr()
+ */
+template<typename _MatrixType> class ColPivHouseholderQR
+{
+ public:
+
+ typedef _MatrixType MatrixType;
+ enum {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ // FIXME should be int
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef typename internal::plain_diag_type<MatrixType>::type HCoeffsType;
+ typedef PermutationMatrix<ColsAtCompileTime, MaxColsAtCompileTime> PermutationType;
+ typedef typename internal::plain_row_type<MatrixType, Index>::type IntRowVectorType;
+ typedef typename internal::plain_row_type<MatrixType>::type RowVectorType;
+ typedef typename internal::plain_row_type<MatrixType, RealScalar>::type RealRowVectorType;
+ typedef HouseholderSequence<MatrixType,typename internal::remove_all<typename HCoeffsType::ConjugateReturnType>::type> HouseholderSequenceType;
+ typedef typename MatrixType::PlainObject PlainObject;
+
+ private:
+
+ typedef typename PermutationType::StorageIndex PermIndexType;
+
+ public:
+
+ /**
+ * \brief Default Constructor.
+ *
+ * The default constructor is useful in cases in which the user intends to
+ * perform decompositions via ColPivHouseholderQR::compute(const MatrixType&).
+ */
+ ColPivHouseholderQR()
+ : m_qr(),
+ m_hCoeffs(),
+ m_colsPermutation(),
+ m_colsTranspositions(),
+ m_temp(),
+ m_colNormsUpdated(),
+ m_colNormsDirect(),
+ m_isInitialized(false),
+ m_usePrescribedThreshold(false) {}
+
+ /** \brief Default Constructor with memory preallocation
+ *
+ * Like the default constructor but with preallocation of the internal data
+ * according to the specified problem \a size.
+ * \sa ColPivHouseholderQR()
+ */
+ ColPivHouseholderQR(Index rows, Index cols)
+ : m_qr(rows, cols),
+ m_hCoeffs((std::min)(rows,cols)),
+ m_colsPermutation(PermIndexType(cols)),
+ m_colsTranspositions(cols),
+ m_temp(cols),
+ m_colNormsUpdated(cols),
+ m_colNormsDirect(cols),
+ m_isInitialized(false),
+ m_usePrescribedThreshold(false) {}
+
+ /** \brief Constructs a QR factorization from a given matrix
+ *
+ * This constructor computes the QR factorization of the matrix \a matrix by calling
+ * the method compute(). It is a short cut for:
+ *
+ * \code
+ * ColPivHouseholderQR<MatrixType> qr(matrix.rows(), matrix.cols());
+ * qr.compute(matrix);
+ * \endcode
+ *
+ * \sa compute()
+ */
+ template<typename InputType>
+ explicit ColPivHouseholderQR(const EigenBase<InputType>& matrix)
+ : m_qr(matrix.rows(), matrix.cols()),
+ m_hCoeffs((std::min)(matrix.rows(),matrix.cols())),
+ m_colsPermutation(PermIndexType(matrix.cols())),
+ m_colsTranspositions(matrix.cols()),
+ m_temp(matrix.cols()),
+ m_colNormsUpdated(matrix.cols()),
+ m_colNormsDirect(matrix.cols()),
+ m_isInitialized(false),
+ m_usePrescribedThreshold(false)
+ {
+ compute(matrix.derived());
+ }
+
+ /** \brief Constructs a QR factorization from a given matrix
+ *
+ * This overloaded constructor is provided for \link InplaceDecomposition inplace decomposition \endlink when \c MatrixType is a Eigen::Ref.
+ *
+ * \sa ColPivHouseholderQR(const EigenBase&)
+ */
+ template<typename InputType>
+ explicit ColPivHouseholderQR(EigenBase<InputType>& matrix)
+ : m_qr(matrix.derived()),
+ m_hCoeffs((std::min)(matrix.rows(),matrix.cols())),
+ m_colsPermutation(PermIndexType(matrix.cols())),
+ m_colsTranspositions(matrix.cols()),
+ m_temp(matrix.cols()),
+ m_colNormsUpdated(matrix.cols()),
+ m_colNormsDirect(matrix.cols()),
+ m_isInitialized(false),
+ m_usePrescribedThreshold(false)
+ {
+ computeInPlace();
+ }
+
+ /** This method finds a solution x to the equation Ax=b, where A is the matrix of which
+ * *this is the QR decomposition, if any exists.
+ *
+ * \param b the right-hand-side of the equation to solve.
+ *
+ * \returns a solution.
+ *
+ * \note_about_checking_solutions
+ *
+ * \note_about_arbitrary_choice_of_solution
+ *
+ * Example: \include ColPivHouseholderQR_solve.cpp
+ * Output: \verbinclude ColPivHouseholderQR_solve.out
+ */
+ template<typename Rhs>
+ inline const Solve<ColPivHouseholderQR, Rhs>
+ solve(const MatrixBase<Rhs>& b) const
+ {
+ eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+ return Solve<ColPivHouseholderQR, Rhs>(*this, b.derived());
+ }
+
+ HouseholderSequenceType householderQ() const;
+ HouseholderSequenceType matrixQ() const
+ {
+ return householderQ();
+ }
+
+ /** \returns a reference to the matrix where the Householder QR decomposition is stored
+ */
+ const MatrixType& matrixQR() const
+ {
+ eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+ return m_qr;
+ }
+
+ /** \returns a reference to the matrix where the result Householder QR is stored
+ * \warning The strict lower part of this matrix contains internal values.
+ * Only the upper triangular part should be referenced. To get it, use
+ * \code matrixR().template triangularView<Upper>() \endcode
+ * For rank-deficient matrices, use
+ * \code
+ * matrixR().topLeftCorner(rank(), rank()).template triangularView<Upper>()
+ * \endcode
+ */
+ const MatrixType& matrixR() const
+ {
+ eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+ return m_qr;
+ }
+
+ template<typename InputType>
+ ColPivHouseholderQR& compute(const EigenBase<InputType>& matrix);
+
+ /** \returns a const reference to the column permutation matrix */
+ const PermutationType& colsPermutation() const
+ {
+ eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+ return m_colsPermutation;
+ }
+
+ /** \returns the absolute value of the determinant of the matrix of which
+ * *this is the QR decomposition. It has only linear complexity
+ * (that is, O(n) where n is the dimension of the square matrix)
+ * as the QR decomposition has already been computed.
+ *
+ * \note This is only for square matrices.
+ *
+ * \warning a determinant can be very big or small, so for matrices
+ * of large enough dimension, there is a risk of overflow/underflow.
+ * One way to work around that is to use logAbsDeterminant() instead.
+ *
+ * \sa logAbsDeterminant(), MatrixBase::determinant()
+ */
+ typename MatrixType::RealScalar absDeterminant() const;
+
+ /** \returns the natural log of the absolute value of the determinant of the matrix of which
+ * *this is the QR decomposition. It has only linear complexity
+ * (that is, O(n) where n is the dimension of the square matrix)
+ * as the QR decomposition has already been computed.
+ *
+ * \note This is only for square matrices.
+ *
+ * \note This method is useful to work around the risk of overflow/underflow that's inherent
+ * to determinant computation.
+ *
+ * \sa absDeterminant(), MatrixBase::determinant()
+ */
+ typename MatrixType::RealScalar logAbsDeterminant() const;
+
+ /** \returns the rank of the matrix of which *this is the QR decomposition.
+ *
+ * \note This method has to determine which pivots should be considered nonzero.
+ * For that, it uses the threshold value that you can control by calling
+ * setThreshold(const RealScalar&).
+ */
+ inline Index rank() const
+ {
+ using std::abs;
+ eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+ RealScalar premultiplied_threshold = abs(m_maxpivot) * threshold();
+ Index result = 0;
+ for(Index i = 0; i < m_nonzero_pivots; ++i)
+ result += (abs(m_qr.coeff(i,i)) > premultiplied_threshold);
+ return result;
+ }
+
+ /** \returns the dimension of the kernel of the matrix of which *this is the QR decomposition.
+ *
+ * \note This method has to determine which pivots should be considered nonzero.
+ * For that, it uses the threshold value that you can control by calling
+ * setThreshold(const RealScalar&).
+ */
+ inline Index dimensionOfKernel() const
+ {
+ eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+ return cols() - rank();
+ }
+
+ /** \returns true if the matrix of which *this is the QR decomposition represents an injective
+ * linear map, i.e. has trivial kernel; false otherwise.
+ *
+ * \note This method has to determine which pivots should be considered nonzero.
+ * For that, it uses the threshold value that you can control by calling
+ * setThreshold(const RealScalar&).
+ */
+ inline bool isInjective() const
+ {
+ eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+ return rank() == cols();
+ }
+
+ /** \returns true if the matrix of which *this is the QR decomposition represents a surjective
+ * linear map; false otherwise.
+ *
+ * \note This method has to determine which pivots should be considered nonzero.
+ * For that, it uses the threshold value that you can control by calling
+ * setThreshold(const RealScalar&).
+ */
+ inline bool isSurjective() const
+ {
+ eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+ return rank() == rows();
+ }
+
+ /** \returns true if the matrix of which *this is the QR decomposition is invertible.
+ *
+ * \note This method has to determine which pivots should be considered nonzero.
+ * For that, it uses the threshold value that you can control by calling
+ * setThreshold(const RealScalar&).
+ */
+ inline bool isInvertible() const
+ {
+ eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+ return isInjective() && isSurjective();
+ }
+
+ /** \returns the inverse of the matrix of which *this is the QR decomposition.
+ *
+ * \note If this matrix is not invertible, the returned matrix has undefined coefficients.
+ * Use isInvertible() to first determine whether this matrix is invertible.
+ */
+ inline const Inverse<ColPivHouseholderQR> inverse() const
+ {
+ eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+ return Inverse<ColPivHouseholderQR>(*this);
+ }
+
+ inline Index rows() const { return m_qr.rows(); }
+ inline Index cols() const { return m_qr.cols(); }
+
+ /** \returns a const reference to the vector of Householder coefficients used to represent the factor \c Q.
+ *
+ * For advanced uses only.
+ */
+ const HCoeffsType& hCoeffs() const { return m_hCoeffs; }
+
+ /** Allows to prescribe a threshold to be used by certain methods, such as rank(),
+ * who need to determine when pivots are to be considered nonzero. This is not used for the
+ * QR decomposition itself.
+ *
+ * When it needs to get the threshold value, Eigen calls threshold(). By default, this
+ * uses a formula to automatically determine a reasonable threshold.
+ * Once you have called the present method setThreshold(const RealScalar&),
+ * your value is used instead.
+ *
+ * \param threshold The new value to use as the threshold.
+ *
+ * A pivot will be considered nonzero if its absolute value is strictly greater than
+ * \f$ \vert pivot \vert \leqslant threshold \times \vert maxpivot \vert \f$
+ * where maxpivot is the biggest pivot.
+ *
+ * If you want to come back to the default behavior, call setThreshold(Default_t)
+ */
+ ColPivHouseholderQR& setThreshold(const RealScalar& threshold)
+ {
+ m_usePrescribedThreshold = true;
+ m_prescribedThreshold = threshold;
+ return *this;
+ }
+
+ /** Allows to come back to the default behavior, letting Eigen use its default formula for
+ * determining the threshold.
+ *
+ * You should pass the special object Eigen::Default as parameter here.
+ * \code qr.setThreshold(Eigen::Default); \endcode
+ *
+ * See the documentation of setThreshold(const RealScalar&).
+ */
+ ColPivHouseholderQR& setThreshold(Default_t)
+ {
+ m_usePrescribedThreshold = false;
+ return *this;
+ }
+
+ /** Returns the threshold that will be used by certain methods such as rank().
+ *
+ * See the documentation of setThreshold(const RealScalar&).
+ */
+ RealScalar threshold() const
+ {
+ eigen_assert(m_isInitialized || m_usePrescribedThreshold);
+ return m_usePrescribedThreshold ? m_prescribedThreshold
+ // this formula comes from experimenting (see "LU precision tuning" thread on the list)
+ // and turns out to be identical to Higham's formula used already in LDLt.
+ : NumTraits<Scalar>::epsilon() * RealScalar(m_qr.diagonalSize());
+ }
+
+ /** \returns the number of nonzero pivots in the QR decomposition.
+ * Here nonzero is meant in the exact sense, not in a fuzzy sense.
+ * So that notion isn't really intrinsically interesting, but it is
+ * still useful when implementing algorithms.
+ *
+ * \sa rank()
+ */
+ inline Index nonzeroPivots() const
+ {
+ eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+ return m_nonzero_pivots;
+ }
+
+ /** \returns the absolute value of the biggest pivot, i.e. the biggest
+ * diagonal coefficient of R.
+ */
+ RealScalar maxPivot() const { return m_maxpivot; }
+
+ /** \brief Reports whether the QR factorization was succesful.
+ *
+ * \note This function always returns \c Success. It is provided for compatibility
+ * with other factorization routines.
+ * \returns \c Success
+ */
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+ return Success;
+ }
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ template<typename RhsType, typename DstType>
+ EIGEN_DEVICE_FUNC
+ void _solve_impl(const RhsType &rhs, DstType &dst) const;
+ #endif
+
+ protected:
+
+ friend class CompleteOrthogonalDecomposition<MatrixType>;
+
+ static void check_template_parameters()
+ {
+ EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+ }
+
+ void computeInPlace();
+
+ MatrixType m_qr;
+ HCoeffsType m_hCoeffs;
+ PermutationType m_colsPermutation;
+ IntRowVectorType m_colsTranspositions;
+ RowVectorType m_temp;
+ RealRowVectorType m_colNormsUpdated;
+ RealRowVectorType m_colNormsDirect;
+ bool m_isInitialized, m_usePrescribedThreshold;
+ RealScalar m_prescribedThreshold, m_maxpivot;
+ Index m_nonzero_pivots;
+ Index m_det_pq;
+};
+
+template<typename MatrixType>
+typename MatrixType::RealScalar ColPivHouseholderQR<MatrixType>::absDeterminant() const
+{
+ using std::abs;
+ eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+ eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
+ return abs(m_qr.diagonal().prod());
+}
+
+template<typename MatrixType>
+typename MatrixType::RealScalar ColPivHouseholderQR<MatrixType>::logAbsDeterminant() const
+{
+ eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+ eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
+ return m_qr.diagonal().cwiseAbs().array().log().sum();
+}
+
+/** Performs the QR factorization of the given matrix \a matrix. The result of
+ * the factorization is stored into \c *this, and a reference to \c *this
+ * is returned.
+ *
+ * \sa class ColPivHouseholderQR, ColPivHouseholderQR(const MatrixType&)
+ */
+template<typename MatrixType>
+template<typename InputType>
+ColPivHouseholderQR<MatrixType>& ColPivHouseholderQR<MatrixType>::compute(const EigenBase<InputType>& matrix)
+{
+ m_qr = matrix.derived();
+ computeInPlace();
+ return *this;
+}
+
+template<typename MatrixType>
+void ColPivHouseholderQR<MatrixType>::computeInPlace()
+{
+ check_template_parameters();
+
+ // the column permutation is stored as int indices, so just to be sure:
+ eigen_assert(m_qr.cols()<=NumTraits<int>::highest());
+
+ using std::abs;
+
+ Index rows = m_qr.rows();
+ Index cols = m_qr.cols();
+ Index size = m_qr.diagonalSize();
+
+ m_hCoeffs.resize(size);
+
+ m_temp.resize(cols);
+
+ m_colsTranspositions.resize(m_qr.cols());
+ Index number_of_transpositions = 0;
+
+ m_colNormsUpdated.resize(cols);
+ m_colNormsDirect.resize(cols);
+ for (Index k = 0; k < cols; ++k) {
+ // colNormsDirect(k) caches the most recent directly computed norm of
+ // column k.
+ m_colNormsDirect.coeffRef(k) = m_qr.col(k).norm();
+ m_colNormsUpdated.coeffRef(k) = m_colNormsDirect.coeffRef(k);
+ }
+
+ RealScalar threshold_helper = numext::abs2<RealScalar>(m_colNormsUpdated.maxCoeff() * NumTraits<RealScalar>::epsilon()) / RealScalar(rows);
+ RealScalar norm_downdate_threshold = numext::sqrt(NumTraits<RealScalar>::epsilon());
+
+ m_nonzero_pivots = size; // the generic case is that in which all pivots are nonzero (invertible case)
+ m_maxpivot = RealScalar(0);
+
+ for(Index k = 0; k < size; ++k)
+ {
+ // first, we look up in our table m_colNormsUpdated which column has the biggest norm
+ Index biggest_col_index;
+ RealScalar biggest_col_sq_norm = numext::abs2(m_colNormsUpdated.tail(cols-k).maxCoeff(&biggest_col_index));
+ biggest_col_index += k;
+
+ // Track the number of meaningful pivots but do not stop the decomposition to make
+ // sure that the initial matrix is properly reproduced. See bug 941.
+ if(m_nonzero_pivots==size && biggest_col_sq_norm < threshold_helper * RealScalar(rows-k))
+ m_nonzero_pivots = k;
+
+ // apply the transposition to the columns
+ m_colsTranspositions.coeffRef(k) = biggest_col_index;
+ if(k != biggest_col_index) {
+ m_qr.col(k).swap(m_qr.col(biggest_col_index));
+ std::swap(m_colNormsUpdated.coeffRef(k), m_colNormsUpdated.coeffRef(biggest_col_index));
+ std::swap(m_colNormsDirect.coeffRef(k), m_colNormsDirect.coeffRef(biggest_col_index));
+ ++number_of_transpositions;
+ }
+
+ // generate the householder vector, store it below the diagonal
+ RealScalar beta;
+ m_qr.col(k).tail(rows-k).makeHouseholderInPlace(m_hCoeffs.coeffRef(k), beta);
+
+ // apply the householder transformation to the diagonal coefficient
+ m_qr.coeffRef(k,k) = beta;
+
+ // remember the maximum absolute value of diagonal coefficients
+ if(abs(beta) > m_maxpivot) m_maxpivot = abs(beta);
+
+ // apply the householder transformation
+ m_qr.bottomRightCorner(rows-k, cols-k-1)
+ .applyHouseholderOnTheLeft(m_qr.col(k).tail(rows-k-1), m_hCoeffs.coeffRef(k), &m_temp.coeffRef(k+1));
+
+ // update our table of norms of the columns
+ for (Index j = k + 1; j < cols; ++j) {
+ // The following implements the stable norm downgrade step discussed in
+ // http://www.netlib.org/lapack/lawnspdf/lawn176.pdf
+ // and used in LAPACK routines xGEQPF and xGEQP3.
+ // See lines 278-297 in http://www.netlib.org/lapack/explore-html/dc/df4/sgeqpf_8f_source.html
+ if (m_colNormsUpdated.coeffRef(j) != RealScalar(0)) {
+ RealScalar temp = abs(m_qr.coeffRef(k, j)) / m_colNormsUpdated.coeffRef(j);
+ temp = (RealScalar(1) + temp) * (RealScalar(1) - temp);
+ temp = temp < RealScalar(0) ? RealScalar(0) : temp;
+ RealScalar temp2 = temp * numext::abs2<RealScalar>(m_colNormsUpdated.coeffRef(j) /
+ m_colNormsDirect.coeffRef(j));
+ if (temp2 <= norm_downdate_threshold) {
+ // The updated norm has become too inaccurate so re-compute the column
+ // norm directly.
+ m_colNormsDirect.coeffRef(j) = m_qr.col(j).tail(rows - k - 1).norm();
+ m_colNormsUpdated.coeffRef(j) = m_colNormsDirect.coeffRef(j);
+ } else {
+ m_colNormsUpdated.coeffRef(j) *= numext::sqrt(temp);
+ }
+ }
+ }
+ }
+
+ m_colsPermutation.setIdentity(PermIndexType(cols));
+ for(PermIndexType k = 0; k < size/*m_nonzero_pivots*/; ++k)
+ m_colsPermutation.applyTranspositionOnTheRight(k, PermIndexType(m_colsTranspositions.coeff(k)));
+
+ m_det_pq = (number_of_transpositions%2) ? -1 : 1;
+ m_isInitialized = true;
+}
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+template<typename _MatrixType>
+template<typename RhsType, typename DstType>
+void ColPivHouseholderQR<_MatrixType>::_solve_impl(const RhsType &rhs, DstType &dst) const
+{
+ eigen_assert(rhs.rows() == rows());
+
+ const Index nonzero_pivots = nonzeroPivots();
+
+ if(nonzero_pivots == 0)
+ {
+ dst.setZero();
+ return;
+ }
+
+ typename RhsType::PlainObject c(rhs);
+
+ // Note that the matrix Q = H_0^* H_1^*... so its inverse is Q^* = (H_0 H_1 ...)^T
+ c.applyOnTheLeft(householderSequence(m_qr, m_hCoeffs)
+ .setLength(nonzero_pivots)
+ .transpose()
+ );
+
+ m_qr.topLeftCorner(nonzero_pivots, nonzero_pivots)
+ .template triangularView<Upper>()
+ .solveInPlace(c.topRows(nonzero_pivots));
+
+ for(Index i = 0; i < nonzero_pivots; ++i) dst.row(m_colsPermutation.indices().coeff(i)) = c.row(i);
+ for(Index i = nonzero_pivots; i < cols(); ++i) dst.row(m_colsPermutation.indices().coeff(i)).setZero();
+}
+#endif
+
+namespace internal {
+
+template<typename DstXprType, typename MatrixType>
+struct Assignment<DstXprType, Inverse<ColPivHouseholderQR<MatrixType> >, internal::assign_op<typename DstXprType::Scalar,typename ColPivHouseholderQR<MatrixType>::Scalar>, Dense2Dense>
+{
+ typedef ColPivHouseholderQR<MatrixType> QrType;
+ typedef Inverse<QrType> SrcXprType;
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<typename DstXprType::Scalar,typename QrType::Scalar> &)
+ {
+ dst = src.nestedExpression().solve(MatrixType::Identity(src.rows(), src.cols()));
+ }
+};
+
+} // end namespace internal
+
+/** \returns the matrix Q as a sequence of householder transformations.
+ * You can extract the meaningful part only by using:
+ * \code qr.householderQ().setLength(qr.nonzeroPivots()) \endcode*/
+template<typename MatrixType>
+typename ColPivHouseholderQR<MatrixType>::HouseholderSequenceType ColPivHouseholderQR<MatrixType>
+ ::householderQ() const
+{
+ eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+ return HouseholderSequenceType(m_qr, m_hCoeffs.conjugate());
+}
+
+/** \return the column-pivoting Householder QR decomposition of \c *this.
+ *
+ * \sa class ColPivHouseholderQR
+ */
+template<typename Derived>
+const ColPivHouseholderQR<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::colPivHouseholderQr() const
+{
+ return ColPivHouseholderQR<PlainObject>(eval());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_COLPIVOTINGHOUSEHOLDERQR_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h b/runtimes/nn/depend/external/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h
new file mode 100644
index 000000000..4e9651f83
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h
@@ -0,0 +1,97 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ * Content : Eigen bindings to LAPACKe
+ * Householder QR decomposition of a matrix with column pivoting based on
+ * LAPACKE_?geqp3 function.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_COLPIVOTINGHOUSEHOLDERQR_LAPACKE_H
+#define EIGEN_COLPIVOTINGHOUSEHOLDERQR_LAPACKE_H
+
+namespace Eigen {
+
+/** \internal Specialization for the data types supported by LAPACKe */
+
+#define EIGEN_LAPACKE_QR_COLPIV(EIGTYPE, LAPACKE_TYPE, LAPACKE_PREFIX, EIGCOLROW, LAPACKE_COLROW) \
+template<> template<typename InputType> inline \
+ColPivHouseholderQR<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic> >& \
+ColPivHouseholderQR<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic> >::compute( \
+ const EigenBase<InputType>& matrix) \
+\
+{ \
+ using std::abs; \
+ typedef Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic> MatrixType; \
+ typedef MatrixType::RealScalar RealScalar; \
+ Index rows = matrix.rows();\
+ Index cols = matrix.cols();\
+\
+ m_qr = matrix;\
+ Index size = m_qr.diagonalSize();\
+ m_hCoeffs.resize(size);\
+\
+ m_colsTranspositions.resize(cols);\
+ /*Index number_of_transpositions = 0;*/ \
+\
+ m_nonzero_pivots = 0; \
+ m_maxpivot = RealScalar(0);\
+ m_colsPermutation.resize(cols); \
+ m_colsPermutation.indices().setZero(); \
+\
+ lapack_int lda = internal::convert_index<lapack_int,Index>(m_qr.outerStride()); \
+ lapack_int matrix_order = LAPACKE_COLROW; \
+ LAPACKE_##LAPACKE_PREFIX##geqp3( matrix_order, internal::convert_index<lapack_int,Index>(rows), internal::convert_index<lapack_int,Index>(cols), \
+ (LAPACKE_TYPE*)m_qr.data(), lda, (lapack_int*)m_colsPermutation.indices().data(), (LAPACKE_TYPE*)m_hCoeffs.data()); \
+ m_isInitialized = true; \
+ m_maxpivot=m_qr.diagonal().cwiseAbs().maxCoeff(); \
+ m_hCoeffs.adjointInPlace(); \
+ RealScalar premultiplied_threshold = abs(m_maxpivot) * threshold(); \
+ lapack_int *perm = m_colsPermutation.indices().data(); \
+ for(Index i=0;i<size;i++) { \
+ m_nonzero_pivots += (abs(m_qr.coeff(i,i)) > premultiplied_threshold);\
+ } \
+ for(Index i=0;i<cols;i++) perm[i]--;\
+\
+ /*m_det_pq = (number_of_transpositions%2) ? -1 : 1; // TODO: It's not needed now; fix upon availability in Eigen */ \
+\
+ return *this; \
+}
+
+EIGEN_LAPACKE_QR_COLPIV(double, double, d, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_LAPACKE_QR_COLPIV(float, float, s, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_LAPACKE_QR_COLPIV(dcomplex, lapack_complex_double, z, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_LAPACKE_QR_COLPIV(scomplex, lapack_complex_float, c, ColMajor, LAPACK_COL_MAJOR)
+
+EIGEN_LAPACKE_QR_COLPIV(double, double, d, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_LAPACKE_QR_COLPIV(float, float, s, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_LAPACKE_QR_COLPIV(dcomplex, lapack_complex_double, z, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_LAPACKE_QR_COLPIV(scomplex, lapack_complex_float, c, RowMajor, LAPACK_ROW_MAJOR)
+
+} // end namespace Eigen
+
+#endif // EIGEN_COLPIVOTINGHOUSEHOLDERQR_LAPACKE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h b/runtimes/nn/depend/external/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h
new file mode 100644
index 000000000..34c637b70
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h
@@ -0,0 +1,562 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2016 Rasmus Munk Larsen <rmlarsen@google.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPLETEORTHOGONALDECOMPOSITION_H
+#define EIGEN_COMPLETEORTHOGONALDECOMPOSITION_H
+
+namespace Eigen {
+
+namespace internal {
+template <typename _MatrixType>
+struct traits<CompleteOrthogonalDecomposition<_MatrixType> >
+ : traits<_MatrixType> {
+ enum { Flags = 0 };
+};
+
+} // end namespace internal
+
+/** \ingroup QR_Module
+ *
+ * \class CompleteOrthogonalDecomposition
+ *
+ * \brief Complete orthogonal decomposition (COD) of a matrix.
+ *
+ * \param MatrixType the type of the matrix of which we are computing the COD.
+ *
+ * This class performs a rank-revealing complete orthogonal decomposition of a
+ * matrix \b A into matrices \b P, \b Q, \b T, and \b Z such that
+ * \f[
+ * \mathbf{A} \, \mathbf{P} = \mathbf{Q} \,
+ * \begin{bmatrix} \mathbf{T} & \mathbf{0} \\
+ * \mathbf{0} & \mathbf{0} \end{bmatrix} \, \mathbf{Z}
+ * \f]
+ * by using Householder transformations. Here, \b P is a permutation matrix,
+ * \b Q and \b Z are unitary matrices and \b T an upper triangular matrix of
+ * size rank-by-rank. \b A may be rank deficient.
+ *
+ * This class supports the \link InplaceDecomposition inplace decomposition \endlink mechanism.
+ *
+ * \sa MatrixBase::completeOrthogonalDecomposition()
+ */
+template <typename _MatrixType>
+class CompleteOrthogonalDecomposition {
+ public:
+ typedef _MatrixType MatrixType;
+ enum {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef typename internal::plain_diag_type<MatrixType>::type HCoeffsType;
+ typedef PermutationMatrix<ColsAtCompileTime, MaxColsAtCompileTime>
+ PermutationType;
+ typedef typename internal::plain_row_type<MatrixType, Index>::type
+ IntRowVectorType;
+ typedef typename internal::plain_row_type<MatrixType>::type RowVectorType;
+ typedef typename internal::plain_row_type<MatrixType, RealScalar>::type
+ RealRowVectorType;
+ typedef HouseholderSequence<
+ MatrixType, typename internal::remove_all<
+ typename HCoeffsType::ConjugateReturnType>::type>
+ HouseholderSequenceType;
+ typedef typename MatrixType::PlainObject PlainObject;
+
+ private:
+ typedef typename PermutationType::Index PermIndexType;
+
+ public:
+ /**
+ * \brief Default Constructor.
+ *
+ * The default constructor is useful in cases in which the user intends to
+ * perform decompositions via
+ * \c CompleteOrthogonalDecomposition::compute(const* MatrixType&).
+ */
+ CompleteOrthogonalDecomposition() : m_cpqr(), m_zCoeffs(), m_temp() {}
+
+ /** \brief Default Constructor with memory preallocation
+ *
+ * Like the default constructor but with preallocation of the internal data
+ * according to the specified problem \a size.
+ * \sa CompleteOrthogonalDecomposition()
+ */
+ CompleteOrthogonalDecomposition(Index rows, Index cols)
+ : m_cpqr(rows, cols), m_zCoeffs((std::min)(rows, cols)), m_temp(cols) {}
+
+ /** \brief Constructs a complete orthogonal decomposition from a given
+ * matrix.
+ *
+ * This constructor computes the complete orthogonal decomposition of the
+ * matrix \a matrix by calling the method compute(). The default
+ * threshold for rank determination will be used. It is a short cut for:
+ *
+ * \code
+ * CompleteOrthogonalDecomposition<MatrixType> cod(matrix.rows(),
+ * matrix.cols());
+ * cod.setThreshold(Default);
+ * cod.compute(matrix);
+ * \endcode
+ *
+ * \sa compute()
+ */
+ template <typename InputType>
+ explicit CompleteOrthogonalDecomposition(const EigenBase<InputType>& matrix)
+ : m_cpqr(matrix.rows(), matrix.cols()),
+ m_zCoeffs((std::min)(matrix.rows(), matrix.cols())),
+ m_temp(matrix.cols())
+ {
+ compute(matrix.derived());
+ }
+
+ /** \brief Constructs a complete orthogonal decomposition from a given matrix
+ *
+ * This overloaded constructor is provided for \link InplaceDecomposition inplace decomposition \endlink when \c MatrixType is a Eigen::Ref.
+ *
+ * \sa CompleteOrthogonalDecomposition(const EigenBase&)
+ */
+ template<typename InputType>
+ explicit CompleteOrthogonalDecomposition(EigenBase<InputType>& matrix)
+ : m_cpqr(matrix.derived()),
+ m_zCoeffs((std::min)(matrix.rows(), matrix.cols())),
+ m_temp(matrix.cols())
+ {
+ computeInPlace();
+ }
+
+
+ /** This method computes the minimum-norm solution X to a least squares
+ * problem \f[\mathrm{minimize} \|A X - B\|, \f] where \b A is the matrix of
+ * which \c *this is the complete orthogonal decomposition.
+ *
+ * \param b the right-hand sides of the problem to solve.
+ *
+ * \returns a solution.
+ *
+ */
+ template <typename Rhs>
+ inline const Solve<CompleteOrthogonalDecomposition, Rhs> solve(
+ const MatrixBase<Rhs>& b) const {
+ eigen_assert(m_cpqr.m_isInitialized &&
+ "CompleteOrthogonalDecomposition is not initialized.");
+ return Solve<CompleteOrthogonalDecomposition, Rhs>(*this, b.derived());
+ }
+
+ HouseholderSequenceType householderQ(void) const;
+ HouseholderSequenceType matrixQ(void) const { return m_cpqr.householderQ(); }
+
+ /** \returns the matrix \b Z.
+ */
+ MatrixType matrixZ() const {
+ MatrixType Z = MatrixType::Identity(m_cpqr.cols(), m_cpqr.cols());
+ applyZAdjointOnTheLeftInPlace(Z);
+ return Z.adjoint();
+ }
+
+ /** \returns a reference to the matrix where the complete orthogonal
+ * decomposition is stored
+ */
+ const MatrixType& matrixQTZ() const { return m_cpqr.matrixQR(); }
+
+ /** \returns a reference to the matrix where the complete orthogonal
+ * decomposition is stored.
+ * \warning The strict lower part and \code cols() - rank() \endcode right
+ * columns of this matrix contains internal values.
+ * Only the upper triangular part should be referenced. To get it, use
+ * \code matrixT().template triangularView<Upper>() \endcode
+ * For rank-deficient matrices, use
+ * \code
+ * matrixR().topLeftCorner(rank(), rank()).template triangularView<Upper>()
+ * \endcode
+ */
+ const MatrixType& matrixT() const { return m_cpqr.matrixQR(); }
+
+ template <typename InputType>
+ CompleteOrthogonalDecomposition& compute(const EigenBase<InputType>& matrix) {
+ // Compute the column pivoted QR factorization A P = Q R.
+ m_cpqr.compute(matrix);
+ computeInPlace();
+ return *this;
+ }
+
+ /** \returns a const reference to the column permutation matrix */
+ const PermutationType& colsPermutation() const {
+ return m_cpqr.colsPermutation();
+ }
+
+ /** \returns the absolute value of the determinant of the matrix of which
+ * *this is the complete orthogonal decomposition. It has only linear
+ * complexity (that is, O(n) where n is the dimension of the square matrix)
+ * as the complete orthogonal decomposition has already been computed.
+ *
+ * \note This is only for square matrices.
+ *
+ * \warning a determinant can be very big or small, so for matrices
+ * of large enough dimension, there is a risk of overflow/underflow.
+ * One way to work around that is to use logAbsDeterminant() instead.
+ *
+ * \sa logAbsDeterminant(), MatrixBase::determinant()
+ */
+ typename MatrixType::RealScalar absDeterminant() const;
+
+ /** \returns the natural log of the absolute value of the determinant of the
+ * matrix of which *this is the complete orthogonal decomposition. It has
+ * only linear complexity (that is, O(n) where n is the dimension of the
+ * square matrix) as the complete orthogonal decomposition has already been
+ * computed.
+ *
+ * \note This is only for square matrices.
+ *
+ * \note This method is useful to work around the risk of overflow/underflow
+ * that's inherent to determinant computation.
+ *
+ * \sa absDeterminant(), MatrixBase::determinant()
+ */
+ typename MatrixType::RealScalar logAbsDeterminant() const;
+
+ /** \returns the rank of the matrix of which *this is the complete orthogonal
+ * decomposition.
+ *
+ * \note This method has to determine which pivots should be considered
+ * nonzero. For that, it uses the threshold value that you can control by
+ * calling setThreshold(const RealScalar&).
+ */
+ inline Index rank() const { return m_cpqr.rank(); }
+
+ /** \returns the dimension of the kernel of the matrix of which *this is the
+ * complete orthogonal decomposition.
+ *
+ * \note This method has to determine which pivots should be considered
+ * nonzero. For that, it uses the threshold value that you can control by
+ * calling setThreshold(const RealScalar&).
+ */
+ inline Index dimensionOfKernel() const { return m_cpqr.dimensionOfKernel(); }
+
+ /** \returns true if the matrix of which *this is the decomposition represents
+ * an injective linear map, i.e. has trivial kernel; false otherwise.
+ *
+ * \note This method has to determine which pivots should be considered
+ * nonzero. For that, it uses the threshold value that you can control by
+ * calling setThreshold(const RealScalar&).
+ */
+ inline bool isInjective() const { return m_cpqr.isInjective(); }
+
+ /** \returns true if the matrix of which *this is the decomposition represents
+ * a surjective linear map; false otherwise.
+ *
+ * \note This method has to determine which pivots should be considered
+ * nonzero. For that, it uses the threshold value that you can control by
+ * calling setThreshold(const RealScalar&).
+ */
+ inline bool isSurjective() const { return m_cpqr.isSurjective(); }
+
+ /** \returns true if the matrix of which *this is the complete orthogonal
+ * decomposition is invertible.
+ *
+ * \note This method has to determine which pivots should be considered
+ * nonzero. For that, it uses the threshold value that you can control by
+ * calling setThreshold(const RealScalar&).
+ */
+ inline bool isInvertible() const { return m_cpqr.isInvertible(); }
+
+ /** \returns the pseudo-inverse of the matrix of which *this is the complete
+ * orthogonal decomposition.
+ * \warning: Do not compute \c this->pseudoInverse()*rhs to solve a linear systems.
+ * It is more efficient and numerically stable to call \c this->solve(rhs).
+ */
+ inline const Inverse<CompleteOrthogonalDecomposition> pseudoInverse() const
+ {
+ return Inverse<CompleteOrthogonalDecomposition>(*this);
+ }
+
+ inline Index rows() const { return m_cpqr.rows(); }
+ inline Index cols() const { return m_cpqr.cols(); }
+
+ /** \returns a const reference to the vector of Householder coefficients used
+ * to represent the factor \c Q.
+ *
+ * For advanced uses only.
+ */
+ inline const HCoeffsType& hCoeffs() const { return m_cpqr.hCoeffs(); }
+
+ /** \returns a const reference to the vector of Householder coefficients
+ * used to represent the factor \c Z.
+ *
+ * For advanced uses only.
+ */
+ const HCoeffsType& zCoeffs() const { return m_zCoeffs; }
+
+ /** Allows to prescribe a threshold to be used by certain methods, such as
+ * rank(), who need to determine when pivots are to be considered nonzero.
+ * Most be called before calling compute().
+ *
+ * When it needs to get the threshold value, Eigen calls threshold(). By
+ * default, this uses a formula to automatically determine a reasonable
+ * threshold. Once you have called the present method
+ * setThreshold(const RealScalar&), your value is used instead.
+ *
+ * \param threshold The new value to use as the threshold.
+ *
+ * A pivot will be considered nonzero if its absolute value is strictly
+ * greater than
+ * \f$ \vert pivot \vert \leqslant threshold \times \vert maxpivot \vert \f$
+ * where maxpivot is the biggest pivot.
+ *
+ * If you want to come back to the default behavior, call
+ * setThreshold(Default_t)
+ */
+ CompleteOrthogonalDecomposition& setThreshold(const RealScalar& threshold) {
+ m_cpqr.setThreshold(threshold);
+ return *this;
+ }
+
+ /** Allows to come back to the default behavior, letting Eigen use its default
+ * formula for determining the threshold.
+ *
+ * You should pass the special object Eigen::Default as parameter here.
+ * \code qr.setThreshold(Eigen::Default); \endcode
+ *
+ * See the documentation of setThreshold(const RealScalar&).
+ */
+ CompleteOrthogonalDecomposition& setThreshold(Default_t) {
+ m_cpqr.setThreshold(Default);
+ return *this;
+ }
+
+ /** Returns the threshold that will be used by certain methods such as rank().
+ *
+ * See the documentation of setThreshold(const RealScalar&).
+ */
+ RealScalar threshold() const { return m_cpqr.threshold(); }
+
+ /** \returns the number of nonzero pivots in the complete orthogonal
+ * decomposition. Here nonzero is meant in the exact sense, not in a
+ * fuzzy sense. So that notion isn't really intrinsically interesting,
+ * but it is still useful when implementing algorithms.
+ *
+ * \sa rank()
+ */
+ inline Index nonzeroPivots() const { return m_cpqr.nonzeroPivots(); }
+
+ /** \returns the absolute value of the biggest pivot, i.e. the biggest
+ * diagonal coefficient of R.
+ */
+ inline RealScalar maxPivot() const { return m_cpqr.maxPivot(); }
+
+ /** \brief Reports whether the complete orthogonal decomposition was
+ * succesful.
+ *
+ * \note This function always returns \c Success. It is provided for
+ * compatibility
+ * with other factorization routines.
+ * \returns \c Success
+ */
+ ComputationInfo info() const {
+ eigen_assert(m_cpqr.m_isInitialized && "Decomposition is not initialized.");
+ return Success;
+ }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ template <typename RhsType, typename DstType>
+ EIGEN_DEVICE_FUNC void _solve_impl(const RhsType& rhs, DstType& dst) const;
+#endif
+
+ protected:
+ static void check_template_parameters() {
+ EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+ }
+
+ void computeInPlace();
+
+ /** Overwrites \b rhs with \f$ \mathbf{Z}^* * \mathbf{rhs} \f$.
+ */
+ template <typename Rhs>
+ void applyZAdjointOnTheLeftInPlace(Rhs& rhs) const;
+
+ ColPivHouseholderQR<MatrixType> m_cpqr;
+ HCoeffsType m_zCoeffs;
+ RowVectorType m_temp;
+};
+
+template <typename MatrixType>
+typename MatrixType::RealScalar
+CompleteOrthogonalDecomposition<MatrixType>::absDeterminant() const {
+ return m_cpqr.absDeterminant();
+}
+
+template <typename MatrixType>
+typename MatrixType::RealScalar
+CompleteOrthogonalDecomposition<MatrixType>::logAbsDeterminant() const {
+ return m_cpqr.logAbsDeterminant();
+}
+
+/** Performs the complete orthogonal decomposition of the given matrix \a
+ * matrix. The result of the factorization is stored into \c *this, and a
+ * reference to \c *this is returned.
+ *
+ * \sa class CompleteOrthogonalDecomposition,
+ * CompleteOrthogonalDecomposition(const MatrixType&)
+ */
+template <typename MatrixType>
+void CompleteOrthogonalDecomposition<MatrixType>::computeInPlace()
+{
+ check_template_parameters();
+
+ // the column permutation is stored as int indices, so just to be sure:
+ eigen_assert(m_cpqr.cols() <= NumTraits<int>::highest());
+
+ const Index rank = m_cpqr.rank();
+ const Index cols = m_cpqr.cols();
+ const Index rows = m_cpqr.rows();
+ m_zCoeffs.resize((std::min)(rows, cols));
+ m_temp.resize(cols);
+
+ if (rank < cols) {
+ // We have reduced the (permuted) matrix to the form
+ // [R11 R12]
+ // [ 0 R22]
+ // where R11 is r-by-r (r = rank) upper triangular, R12 is
+ // r-by-(n-r), and R22 is empty or the norm of R22 is negligible.
+ // We now compute the complete orthogonal decomposition by applying
+ // Householder transformations from the right to the upper trapezoidal
+ // matrix X = [R11 R12] to zero out R12 and obtain the factorization
+ // [R11 R12] = [T11 0] * Z, where T11 is r-by-r upper triangular and
+ // Z = Z(0) * Z(1) ... Z(r-1) is an n-by-n orthogonal matrix.
+ // We store the data representing Z in R12 and m_zCoeffs.
+ for (Index k = rank - 1; k >= 0; --k) {
+ if (k != rank - 1) {
+ // Given the API for Householder reflectors, it is more convenient if
+ // we swap the leading parts of columns k and r-1 (zero-based) to form
+ // the matrix X_k = [X(0:k, k), X(0:k, r:n)]
+ m_cpqr.m_qr.col(k).head(k + 1).swap(
+ m_cpqr.m_qr.col(rank - 1).head(k + 1));
+ }
+ // Construct Householder reflector Z(k) to zero out the last row of X_k,
+ // i.e. choose Z(k) such that
+ // [X(k, k), X(k, r:n)] * Z(k) = [beta, 0, .., 0].
+ RealScalar beta;
+ m_cpqr.m_qr.row(k)
+ .tail(cols - rank + 1)
+ .makeHouseholderInPlace(m_zCoeffs(k), beta);
+ m_cpqr.m_qr(k, rank - 1) = beta;
+ if (k > 0) {
+ // Apply Z(k) to the first k rows of X_k
+ m_cpqr.m_qr.topRightCorner(k, cols - rank + 1)
+ .applyHouseholderOnTheRight(
+ m_cpqr.m_qr.row(k).tail(cols - rank).transpose(), m_zCoeffs(k),
+ &m_temp(0));
+ }
+ if (k != rank - 1) {
+ // Swap X(0:k,k) back to its proper location.
+ m_cpqr.m_qr.col(k).head(k + 1).swap(
+ m_cpqr.m_qr.col(rank - 1).head(k + 1));
+ }
+ }
+ }
+}
+
+template <typename MatrixType>
+template <typename Rhs>
+void CompleteOrthogonalDecomposition<MatrixType>::applyZAdjointOnTheLeftInPlace(
+ Rhs& rhs) const {
+ const Index cols = this->cols();
+ const Index nrhs = rhs.cols();
+ const Index rank = this->rank();
+ Matrix<typename MatrixType::Scalar, Dynamic, 1> temp((std::max)(cols, nrhs));
+ for (Index k = 0; k < rank; ++k) {
+ if (k != rank - 1) {
+ rhs.row(k).swap(rhs.row(rank - 1));
+ }
+ rhs.middleRows(rank - 1, cols - rank + 1)
+ .applyHouseholderOnTheLeft(
+ matrixQTZ().row(k).tail(cols - rank).adjoint(), zCoeffs()(k),
+ &temp(0));
+ if (k != rank - 1) {
+ rhs.row(k).swap(rhs.row(rank - 1));
+ }
+ }
+}
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+template <typename _MatrixType>
+template <typename RhsType, typename DstType>
+void CompleteOrthogonalDecomposition<_MatrixType>::_solve_impl(
+ const RhsType& rhs, DstType& dst) const {
+ eigen_assert(rhs.rows() == this->rows());
+
+ const Index rank = this->rank();
+ if (rank == 0) {
+ dst.setZero();
+ return;
+ }
+
+ // Compute c = Q^* * rhs
+ // Note that the matrix Q = H_0^* H_1^*... so its inverse is
+ // Q^* = (H_0 H_1 ...)^T
+ typename RhsType::PlainObject c(rhs);
+ c.applyOnTheLeft(
+ householderSequence(matrixQTZ(), hCoeffs()).setLength(rank).transpose());
+
+ // Solve T z = c(1:rank, :)
+ dst.topRows(rank) = matrixT()
+ .topLeftCorner(rank, rank)
+ .template triangularView<Upper>()
+ .solve(c.topRows(rank));
+
+ const Index cols = this->cols();
+ if (rank < cols) {
+ // Compute y = Z^* * [ z ]
+ // [ 0 ]
+ dst.bottomRows(cols - rank).setZero();
+ applyZAdjointOnTheLeftInPlace(dst);
+ }
+
+ // Undo permutation to get x = P^{-1} * y.
+ dst = colsPermutation() * dst;
+}
+#endif
+
+namespace internal {
+
+template<typename DstXprType, typename MatrixType>
+struct Assignment<DstXprType, Inverse<CompleteOrthogonalDecomposition<MatrixType> >, internal::assign_op<typename DstXprType::Scalar,typename CompleteOrthogonalDecomposition<MatrixType>::Scalar>, Dense2Dense>
+{
+ typedef CompleteOrthogonalDecomposition<MatrixType> CodType;
+ typedef Inverse<CodType> SrcXprType;
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<typename DstXprType::Scalar,typename CodType::Scalar> &)
+ {
+ dst = src.nestedExpression().solve(MatrixType::Identity(src.rows(), src.rows()));
+ }
+};
+
+} // end namespace internal
+
+/** \returns the matrix Q as a sequence of householder transformations */
+template <typename MatrixType>
+typename CompleteOrthogonalDecomposition<MatrixType>::HouseholderSequenceType
+CompleteOrthogonalDecomposition<MatrixType>::householderQ() const {
+ return m_cpqr.householderQ();
+}
+
+/** \return the complete orthogonal decomposition of \c *this.
+ *
+ * \sa class CompleteOrthogonalDecomposition
+ */
+template <typename Derived>
+const CompleteOrthogonalDecomposition<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::completeOrthogonalDecomposition() const {
+ return CompleteOrthogonalDecomposition<PlainObject>(eval());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLETEORTHOGONALDECOMPOSITION_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/QR/FullPivHouseholderQR.h b/runtimes/nn/depend/external/eigen/Eigen/src/QR/FullPivHouseholderQR.h
new file mode 100644
index 000000000..e489bddc2
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/QR/FullPivHouseholderQR.h
@@ -0,0 +1,676 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_FULLPIVOTINGHOUSEHOLDERQR_H
+#define EIGEN_FULLPIVOTINGHOUSEHOLDERQR_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename _MatrixType> struct traits<FullPivHouseholderQR<_MatrixType> >
+ : traits<_MatrixType>
+{
+ enum { Flags = 0 };
+};
+
+template<typename MatrixType> struct FullPivHouseholderQRMatrixQReturnType;
+
+template<typename MatrixType>
+struct traits<FullPivHouseholderQRMatrixQReturnType<MatrixType> >
+{
+ typedef typename MatrixType::PlainObject ReturnType;
+};
+
+} // end namespace internal
+
+/** \ingroup QR_Module
+ *
+ * \class FullPivHouseholderQR
+ *
+ * \brief Householder rank-revealing QR decomposition of a matrix with full pivoting
+ *
+ * \tparam _MatrixType the type of the matrix of which we are computing the QR decomposition
+ *
+ * This class performs a rank-revealing QR decomposition of a matrix \b A into matrices \b P, \b P', \b Q and \b R
+ * such that
+ * \f[
+ * \mathbf{P} \, \mathbf{A} \, \mathbf{P}' = \mathbf{Q} \, \mathbf{R}
+ * \f]
+ * by using Householder transformations. Here, \b P and \b P' are permutation matrices, \b Q a unitary matrix
+ * and \b R an upper triangular matrix.
+ *
+ * This decomposition performs a very prudent full pivoting in order to be rank-revealing and achieve optimal
+ * numerical stability. The trade-off is that it is slower than HouseholderQR and ColPivHouseholderQR.
+ *
+ * This class supports the \link InplaceDecomposition inplace decomposition \endlink mechanism.
+ *
+ * \sa MatrixBase::fullPivHouseholderQr()
+ */
+template<typename _MatrixType> class FullPivHouseholderQR
+{
+ public:
+
+ typedef _MatrixType MatrixType;
+ enum {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ // FIXME should be int
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef internal::FullPivHouseholderQRMatrixQReturnType<MatrixType> MatrixQReturnType;
+ typedef typename internal::plain_diag_type<MatrixType>::type HCoeffsType;
+ typedef Matrix<StorageIndex, 1,
+ EIGEN_SIZE_MIN_PREFER_DYNAMIC(ColsAtCompileTime,RowsAtCompileTime), RowMajor, 1,
+ EIGEN_SIZE_MIN_PREFER_FIXED(MaxColsAtCompileTime,MaxRowsAtCompileTime)> IntDiagSizeVectorType;
+ typedef PermutationMatrix<ColsAtCompileTime, MaxColsAtCompileTime> PermutationType;
+ typedef typename internal::plain_row_type<MatrixType>::type RowVectorType;
+ typedef typename internal::plain_col_type<MatrixType>::type ColVectorType;
+ typedef typename MatrixType::PlainObject PlainObject;
+
+ /** \brief Default Constructor.
+ *
+ * The default constructor is useful in cases in which the user intends to
+ * perform decompositions via FullPivHouseholderQR::compute(const MatrixType&).
+ */
+ FullPivHouseholderQR()
+ : m_qr(),
+ m_hCoeffs(),
+ m_rows_transpositions(),
+ m_cols_transpositions(),
+ m_cols_permutation(),
+ m_temp(),
+ m_isInitialized(false),
+ m_usePrescribedThreshold(false) {}
+
+ /** \brief Default Constructor with memory preallocation
+ *
+ * Like the default constructor but with preallocation of the internal data
+ * according to the specified problem \a size.
+ * \sa FullPivHouseholderQR()
+ */
+ FullPivHouseholderQR(Index rows, Index cols)
+ : m_qr(rows, cols),
+ m_hCoeffs((std::min)(rows,cols)),
+ m_rows_transpositions((std::min)(rows,cols)),
+ m_cols_transpositions((std::min)(rows,cols)),
+ m_cols_permutation(cols),
+ m_temp(cols),
+ m_isInitialized(false),
+ m_usePrescribedThreshold(false) {}
+
+ /** \brief Constructs a QR factorization from a given matrix
+ *
+ * This constructor computes the QR factorization of the matrix \a matrix by calling
+ * the method compute(). It is a short cut for:
+ *
+ * \code
+ * FullPivHouseholderQR<MatrixType> qr(matrix.rows(), matrix.cols());
+ * qr.compute(matrix);
+ * \endcode
+ *
+ * \sa compute()
+ */
+ template<typename InputType>
+ explicit FullPivHouseholderQR(const EigenBase<InputType>& matrix)
+ : m_qr(matrix.rows(), matrix.cols()),
+ m_hCoeffs((std::min)(matrix.rows(), matrix.cols())),
+ m_rows_transpositions((std::min)(matrix.rows(), matrix.cols())),
+ m_cols_transpositions((std::min)(matrix.rows(), matrix.cols())),
+ m_cols_permutation(matrix.cols()),
+ m_temp(matrix.cols()),
+ m_isInitialized(false),
+ m_usePrescribedThreshold(false)
+ {
+ compute(matrix.derived());
+ }
+
+ /** \brief Constructs a QR factorization from a given matrix
+ *
+ * This overloaded constructor is provided for \link InplaceDecomposition inplace decomposition \endlink when \c MatrixType is a Eigen::Ref.
+ *
+ * \sa FullPivHouseholderQR(const EigenBase&)
+ */
+ template<typename InputType>
+ explicit FullPivHouseholderQR(EigenBase<InputType>& matrix)
+ : m_qr(matrix.derived()),
+ m_hCoeffs((std::min)(matrix.rows(), matrix.cols())),
+ m_rows_transpositions((std::min)(matrix.rows(), matrix.cols())),
+ m_cols_transpositions((std::min)(matrix.rows(), matrix.cols())),
+ m_cols_permutation(matrix.cols()),
+ m_temp(matrix.cols()),
+ m_isInitialized(false),
+ m_usePrescribedThreshold(false)
+ {
+ computeInPlace();
+ }
+
+ /** This method finds a solution x to the equation Ax=b, where A is the matrix of which
+ * \c *this is the QR decomposition.
+ *
+ * \param b the right-hand-side of the equation to solve.
+ *
+ * \returns the exact or least-square solution if the rank is greater or equal to the number of columns of A,
+ * and an arbitrary solution otherwise.
+ *
+ * \note_about_checking_solutions
+ *
+ * \note_about_arbitrary_choice_of_solution
+ *
+ * Example: \include FullPivHouseholderQR_solve.cpp
+ * Output: \verbinclude FullPivHouseholderQR_solve.out
+ */
+ template<typename Rhs>
+ inline const Solve<FullPivHouseholderQR, Rhs>
+ solve(const MatrixBase<Rhs>& b) const
+ {
+ eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+ return Solve<FullPivHouseholderQR, Rhs>(*this, b.derived());
+ }
+
+ /** \returns Expression object representing the matrix Q
+ */
+ MatrixQReturnType matrixQ(void) const;
+
+ /** \returns a reference to the matrix where the Householder QR decomposition is stored
+ */
+ const MatrixType& matrixQR() const
+ {
+ eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+ return m_qr;
+ }
+
+ template<typename InputType>
+ FullPivHouseholderQR& compute(const EigenBase<InputType>& matrix);
+
+ /** \returns a const reference to the column permutation matrix */
+ const PermutationType& colsPermutation() const
+ {
+ eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+ return m_cols_permutation;
+ }
+
+ /** \returns a const reference to the vector of indices representing the rows transpositions */
+ const IntDiagSizeVectorType& rowsTranspositions() const
+ {
+ eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+ return m_rows_transpositions;
+ }
+
+ /** \returns the absolute value of the determinant of the matrix of which
+ * *this is the QR decomposition. It has only linear complexity
+ * (that is, O(n) where n is the dimension of the square matrix)
+ * as the QR decomposition has already been computed.
+ *
+ * \note This is only for square matrices.
+ *
+ * \warning a determinant can be very big or small, so for matrices
+ * of large enough dimension, there is a risk of overflow/underflow.
+ * One way to work around that is to use logAbsDeterminant() instead.
+ *
+ * \sa logAbsDeterminant(), MatrixBase::determinant()
+ */
+ typename MatrixType::RealScalar absDeterminant() const;
+
+ /** \returns the natural log of the absolute value of the determinant of the matrix of which
+ * *this is the QR decomposition. It has only linear complexity
+ * (that is, O(n) where n is the dimension of the square matrix)
+ * as the QR decomposition has already been computed.
+ *
+ * \note This is only for square matrices.
+ *
+ * \note This method is useful to work around the risk of overflow/underflow that's inherent
+ * to determinant computation.
+ *
+ * \sa absDeterminant(), MatrixBase::determinant()
+ */
+ typename MatrixType::RealScalar logAbsDeterminant() const;
+
+ /** \returns the rank of the matrix of which *this is the QR decomposition.
+ *
+ * \note This method has to determine which pivots should be considered nonzero.
+ * For that, it uses the threshold value that you can control by calling
+ * setThreshold(const RealScalar&).
+ */
+ inline Index rank() const
+ {
+ using std::abs;
+ eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+ RealScalar premultiplied_threshold = abs(m_maxpivot) * threshold();
+ Index result = 0;
+ for(Index i = 0; i < m_nonzero_pivots; ++i)
+ result += (abs(m_qr.coeff(i,i)) > premultiplied_threshold);
+ return result;
+ }
+
+ /** \returns the dimension of the kernel of the matrix of which *this is the QR decomposition.
+ *
+ * \note This method has to determine which pivots should be considered nonzero.
+ * For that, it uses the threshold value that you can control by calling
+ * setThreshold(const RealScalar&).
+ */
+ inline Index dimensionOfKernel() const
+ {
+ eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+ return cols() - rank();
+ }
+
+ /** \returns true if the matrix of which *this is the QR decomposition represents an injective
+ * linear map, i.e. has trivial kernel; false otherwise.
+ *
+ * \note This method has to determine which pivots should be considered nonzero.
+ * For that, it uses the threshold value that you can control by calling
+ * setThreshold(const RealScalar&).
+ */
+ inline bool isInjective() const
+ {
+ eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+ return rank() == cols();
+ }
+
+ /** \returns true if the matrix of which *this is the QR decomposition represents a surjective
+ * linear map; false otherwise.
+ *
+ * \note This method has to determine which pivots should be considered nonzero.
+ * For that, it uses the threshold value that you can control by calling
+ * setThreshold(const RealScalar&).
+ */
+ inline bool isSurjective() const
+ {
+ eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+ return rank() == rows();
+ }
+
+ /** \returns true if the matrix of which *this is the QR decomposition is invertible.
+ *
+ * \note This method has to determine which pivots should be considered nonzero.
+ * For that, it uses the threshold value that you can control by calling
+ * setThreshold(const RealScalar&).
+ */
+ inline bool isInvertible() const
+ {
+ eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+ return isInjective() && isSurjective();
+ }
+
+ /** \returns the inverse of the matrix of which *this is the QR decomposition.
+ *
+ * \note If this matrix is not invertible, the returned matrix has undefined coefficients.
+ * Use isInvertible() to first determine whether this matrix is invertible.
+ */
+ inline const Inverse<FullPivHouseholderQR> inverse() const
+ {
+ eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+ return Inverse<FullPivHouseholderQR>(*this);
+ }
+
+ inline Index rows() const { return m_qr.rows(); }
+ inline Index cols() const { return m_qr.cols(); }
+
+ /** \returns a const reference to the vector of Householder coefficients used to represent the factor \c Q.
+ *
+ * For advanced uses only.
+ */
+ const HCoeffsType& hCoeffs() const { return m_hCoeffs; }
+
+ /** Allows to prescribe a threshold to be used by certain methods, such as rank(),
+ * who need to determine when pivots are to be considered nonzero. This is not used for the
+ * QR decomposition itself.
+ *
+ * When it needs to get the threshold value, Eigen calls threshold(). By default, this
+ * uses a formula to automatically determine a reasonable threshold.
+ * Once you have called the present method setThreshold(const RealScalar&),
+ * your value is used instead.
+ *
+ * \param threshold The new value to use as the threshold.
+ *
+ * A pivot will be considered nonzero if its absolute value is strictly greater than
+ * \f$ \vert pivot \vert \leqslant threshold \times \vert maxpivot \vert \f$
+ * where maxpivot is the biggest pivot.
+ *
+ * If you want to come back to the default behavior, call setThreshold(Default_t)
+ */
+ FullPivHouseholderQR& setThreshold(const RealScalar& threshold)
+ {
+ m_usePrescribedThreshold = true;
+ m_prescribedThreshold = threshold;
+ return *this;
+ }
+
+ /** Allows to come back to the default behavior, letting Eigen use its default formula for
+ * determining the threshold.
+ *
+ * You should pass the special object Eigen::Default as parameter here.
+ * \code qr.setThreshold(Eigen::Default); \endcode
+ *
+ * See the documentation of setThreshold(const RealScalar&).
+ */
+ FullPivHouseholderQR& setThreshold(Default_t)
+ {
+ m_usePrescribedThreshold = false;
+ return *this;
+ }
+
+ /** Returns the threshold that will be used by certain methods such as rank().
+ *
+ * See the documentation of setThreshold(const RealScalar&).
+ */
+ RealScalar threshold() const
+ {
+ eigen_assert(m_isInitialized || m_usePrescribedThreshold);
+ return m_usePrescribedThreshold ? m_prescribedThreshold
+ // this formula comes from experimenting (see "LU precision tuning" thread on the list)
+ // and turns out to be identical to Higham's formula used already in LDLt.
+ : NumTraits<Scalar>::epsilon() * RealScalar(m_qr.diagonalSize());
+ }
+
+ /** \returns the number of nonzero pivots in the QR decomposition.
+ * Here nonzero is meant in the exact sense, not in a fuzzy sense.
+ * So that notion isn't really intrinsically interesting, but it is
+ * still useful when implementing algorithms.
+ *
+ * \sa rank()
+ */
+ inline Index nonzeroPivots() const
+ {
+ eigen_assert(m_isInitialized && "LU is not initialized.");
+ return m_nonzero_pivots;
+ }
+
+ /** \returns the absolute value of the biggest pivot, i.e. the biggest
+ * diagonal coefficient of U.
+ */
+ RealScalar maxPivot() const { return m_maxpivot; }
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ template<typename RhsType, typename DstType>
+ EIGEN_DEVICE_FUNC
+ void _solve_impl(const RhsType &rhs, DstType &dst) const;
+ #endif
+
+ protected:
+
+ static void check_template_parameters()
+ {
+ EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+ }
+
+ void computeInPlace();
+
+ MatrixType m_qr;
+ HCoeffsType m_hCoeffs;
+ IntDiagSizeVectorType m_rows_transpositions;
+ IntDiagSizeVectorType m_cols_transpositions;
+ PermutationType m_cols_permutation;
+ RowVectorType m_temp;
+ bool m_isInitialized, m_usePrescribedThreshold;
+ RealScalar m_prescribedThreshold, m_maxpivot;
+ Index m_nonzero_pivots;
+ RealScalar m_precision;
+ Index m_det_pq;
+};
+
+template<typename MatrixType>
+typename MatrixType::RealScalar FullPivHouseholderQR<MatrixType>::absDeterminant() const
+{
+ using std::abs;
+ eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+ eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
+ return abs(m_qr.diagonal().prod());
+}
+
+template<typename MatrixType>
+typename MatrixType::RealScalar FullPivHouseholderQR<MatrixType>::logAbsDeterminant() const
+{
+ eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+ eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
+ return m_qr.diagonal().cwiseAbs().array().log().sum();
+}
+
+/** Performs the QR factorization of the given matrix \a matrix. The result of
+ * the factorization is stored into \c *this, and a reference to \c *this
+ * is returned.
+ *
+ * \sa class FullPivHouseholderQR, FullPivHouseholderQR(const MatrixType&)
+ */
+template<typename MatrixType>
+template<typename InputType>
+FullPivHouseholderQR<MatrixType>& FullPivHouseholderQR<MatrixType>::compute(const EigenBase<InputType>& matrix)
+{
+ m_qr = matrix.derived();
+ computeInPlace();
+ return *this;
+}
+
+template<typename MatrixType>
+void FullPivHouseholderQR<MatrixType>::computeInPlace()
+{
+ check_template_parameters();
+
+ using std::abs;
+ Index rows = m_qr.rows();
+ Index cols = m_qr.cols();
+ Index size = (std::min)(rows,cols);
+
+
+ m_hCoeffs.resize(size);
+
+ m_temp.resize(cols);
+
+ m_precision = NumTraits<Scalar>::epsilon() * RealScalar(size);
+
+ m_rows_transpositions.resize(size);
+ m_cols_transpositions.resize(size);
+ Index number_of_transpositions = 0;
+
+ RealScalar biggest(0);
+
+ m_nonzero_pivots = size; // the generic case is that in which all pivots are nonzero (invertible case)
+ m_maxpivot = RealScalar(0);
+
+ for (Index k = 0; k < size; ++k)
+ {
+ Index row_of_biggest_in_corner, col_of_biggest_in_corner;
+ typedef internal::scalar_score_coeff_op<Scalar> Scoring;
+ typedef typename Scoring::result_type Score;
+
+ Score score = m_qr.bottomRightCorner(rows-k, cols-k)
+ .unaryExpr(Scoring())
+ .maxCoeff(&row_of_biggest_in_corner, &col_of_biggest_in_corner);
+ row_of_biggest_in_corner += k;
+ col_of_biggest_in_corner += k;
+ RealScalar biggest_in_corner = internal::abs_knowing_score<Scalar>()(m_qr(row_of_biggest_in_corner, col_of_biggest_in_corner), score);
+ if(k==0) biggest = biggest_in_corner;
+
+ // if the corner is negligible, then we have less than full rank, and we can finish early
+ if(internal::isMuchSmallerThan(biggest_in_corner, biggest, m_precision))
+ {
+ m_nonzero_pivots = k;
+ for(Index i = k; i < size; i++)
+ {
+ m_rows_transpositions.coeffRef(i) = i;
+ m_cols_transpositions.coeffRef(i) = i;
+ m_hCoeffs.coeffRef(i) = Scalar(0);
+ }
+ break;
+ }
+
+ m_rows_transpositions.coeffRef(k) = row_of_biggest_in_corner;
+ m_cols_transpositions.coeffRef(k) = col_of_biggest_in_corner;
+ if(k != row_of_biggest_in_corner) {
+ m_qr.row(k).tail(cols-k).swap(m_qr.row(row_of_biggest_in_corner).tail(cols-k));
+ ++number_of_transpositions;
+ }
+ if(k != col_of_biggest_in_corner) {
+ m_qr.col(k).swap(m_qr.col(col_of_biggest_in_corner));
+ ++number_of_transpositions;
+ }
+
+ RealScalar beta;
+ m_qr.col(k).tail(rows-k).makeHouseholderInPlace(m_hCoeffs.coeffRef(k), beta);
+ m_qr.coeffRef(k,k) = beta;
+
+ // remember the maximum absolute value of diagonal coefficients
+ if(abs(beta) > m_maxpivot) m_maxpivot = abs(beta);
+
+ m_qr.bottomRightCorner(rows-k, cols-k-1)
+ .applyHouseholderOnTheLeft(m_qr.col(k).tail(rows-k-1), m_hCoeffs.coeffRef(k), &m_temp.coeffRef(k+1));
+ }
+
+ m_cols_permutation.setIdentity(cols);
+ for(Index k = 0; k < size; ++k)
+ m_cols_permutation.applyTranspositionOnTheRight(k, m_cols_transpositions.coeff(k));
+
+ m_det_pq = (number_of_transpositions%2) ? -1 : 1;
+ m_isInitialized = true;
+}
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+template<typename _MatrixType>
+template<typename RhsType, typename DstType>
+void FullPivHouseholderQR<_MatrixType>::_solve_impl(const RhsType &rhs, DstType &dst) const
+{
+ eigen_assert(rhs.rows() == rows());
+ const Index l_rank = rank();
+
+ // FIXME introduce nonzeroPivots() and use it here. and more generally,
+ // make the same improvements in this dec as in FullPivLU.
+ if(l_rank==0)
+ {
+ dst.setZero();
+ return;
+ }
+
+ typename RhsType::PlainObject c(rhs);
+
+ Matrix<Scalar,1,RhsType::ColsAtCompileTime> temp(rhs.cols());
+ for (Index k = 0; k < l_rank; ++k)
+ {
+ Index remainingSize = rows()-k;
+ c.row(k).swap(c.row(m_rows_transpositions.coeff(k)));
+ c.bottomRightCorner(remainingSize, rhs.cols())
+ .applyHouseholderOnTheLeft(m_qr.col(k).tail(remainingSize-1),
+ m_hCoeffs.coeff(k), &temp.coeffRef(0));
+ }
+
+ m_qr.topLeftCorner(l_rank, l_rank)
+ .template triangularView<Upper>()
+ .solveInPlace(c.topRows(l_rank));
+
+ for(Index i = 0; i < l_rank; ++i) dst.row(m_cols_permutation.indices().coeff(i)) = c.row(i);
+ for(Index i = l_rank; i < cols(); ++i) dst.row(m_cols_permutation.indices().coeff(i)).setZero();
+}
+#endif
+
+namespace internal {
+
+template<typename DstXprType, typename MatrixType>
+struct Assignment<DstXprType, Inverse<FullPivHouseholderQR<MatrixType> >, internal::assign_op<typename DstXprType::Scalar,typename FullPivHouseholderQR<MatrixType>::Scalar>, Dense2Dense>
+{
+ typedef FullPivHouseholderQR<MatrixType> QrType;
+ typedef Inverse<QrType> SrcXprType;
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<typename DstXprType::Scalar,typename QrType::Scalar> &)
+ {
+ dst = src.nestedExpression().solve(MatrixType::Identity(src.rows(), src.cols()));
+ }
+};
+
+/** \ingroup QR_Module
+ *
+ * \brief Expression type for return value of FullPivHouseholderQR::matrixQ()
+ *
+ * \tparam MatrixType type of underlying dense matrix
+ */
+template<typename MatrixType> struct FullPivHouseholderQRMatrixQReturnType
+ : public ReturnByValue<FullPivHouseholderQRMatrixQReturnType<MatrixType> >
+{
+public:
+ typedef typename FullPivHouseholderQR<MatrixType>::IntDiagSizeVectorType IntDiagSizeVectorType;
+ typedef typename internal::plain_diag_type<MatrixType>::type HCoeffsType;
+ typedef Matrix<typename MatrixType::Scalar, 1, MatrixType::RowsAtCompileTime, RowMajor, 1,
+ MatrixType::MaxRowsAtCompileTime> WorkVectorType;
+
+ FullPivHouseholderQRMatrixQReturnType(const MatrixType& qr,
+ const HCoeffsType& hCoeffs,
+ const IntDiagSizeVectorType& rowsTranspositions)
+ : m_qr(qr),
+ m_hCoeffs(hCoeffs),
+ m_rowsTranspositions(rowsTranspositions)
+ {}
+
+ template <typename ResultType>
+ void evalTo(ResultType& result) const
+ {
+ const Index rows = m_qr.rows();
+ WorkVectorType workspace(rows);
+ evalTo(result, workspace);
+ }
+
+ template <typename ResultType>
+ void evalTo(ResultType& result, WorkVectorType& workspace) const
+ {
+ using numext::conj;
+ // compute the product H'_0 H'_1 ... H'_n-1,
+ // where H_k is the k-th Householder transformation I - h_k v_k v_k'
+ // and v_k is the k-th Householder vector [1,m_qr(k+1,k), m_qr(k+2,k), ...]
+ const Index rows = m_qr.rows();
+ const Index cols = m_qr.cols();
+ const Index size = (std::min)(rows, cols);
+ workspace.resize(rows);
+ result.setIdentity(rows, rows);
+ for (Index k = size-1; k >= 0; k--)
+ {
+ result.block(k, k, rows-k, rows-k)
+ .applyHouseholderOnTheLeft(m_qr.col(k).tail(rows-k-1), conj(m_hCoeffs.coeff(k)), &workspace.coeffRef(k));
+ result.row(k).swap(result.row(m_rowsTranspositions.coeff(k)));
+ }
+ }
+
+ Index rows() const { return m_qr.rows(); }
+ Index cols() const { return m_qr.rows(); }
+
+protected:
+ typename MatrixType::Nested m_qr;
+ typename HCoeffsType::Nested m_hCoeffs;
+ typename IntDiagSizeVectorType::Nested m_rowsTranspositions;
+};
+
+// template<typename MatrixType>
+// struct evaluator<FullPivHouseholderQRMatrixQReturnType<MatrixType> >
+// : public evaluator<ReturnByValue<FullPivHouseholderQRMatrixQReturnType<MatrixType> > >
+// {};
+
+} // end namespace internal
+
+template<typename MatrixType>
+inline typename FullPivHouseholderQR<MatrixType>::MatrixQReturnType FullPivHouseholderQR<MatrixType>::matrixQ() const
+{
+ eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+ return MatrixQReturnType(m_qr, m_hCoeffs, m_rows_transpositions);
+}
+
+/** \return the full-pivoting Householder QR decomposition of \c *this.
+ *
+ * \sa class FullPivHouseholderQR
+ */
+template<typename Derived>
+const FullPivHouseholderQR<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::fullPivHouseholderQr() const
+{
+ return FullPivHouseholderQR<PlainObject>(eval());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_FULLPIVOTINGHOUSEHOLDERQR_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/QR/HouseholderQR.h b/runtimes/nn/depend/external/eigen/Eigen/src/QR/HouseholderQR.h
new file mode 100644
index 000000000..3513d995c
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/QR/HouseholderQR.h
@@ -0,0 +1,409 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2010 Vincent Lejeune
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_QR_H
+#define EIGEN_QR_H
+
+namespace Eigen {
+
+/** \ingroup QR_Module
+ *
+ *
+ * \class HouseholderQR
+ *
+ * \brief Householder QR decomposition of a matrix
+ *
+ * \tparam _MatrixType the type of the matrix of which we are computing the QR decomposition
+ *
+ * This class performs a QR decomposition of a matrix \b A into matrices \b Q and \b R
+ * such that
+ * \f[
+ * \mathbf{A} = \mathbf{Q} \, \mathbf{R}
+ * \f]
+ * by using Householder transformations. Here, \b Q a unitary matrix and \b R an upper triangular matrix.
+ * The result is stored in a compact way compatible with LAPACK.
+ *
+ * Note that no pivoting is performed. This is \b not a rank-revealing decomposition.
+ * If you want that feature, use FullPivHouseholderQR or ColPivHouseholderQR instead.
+ *
+ * This Householder QR decomposition is faster, but less numerically stable and less feature-full than
+ * FullPivHouseholderQR or ColPivHouseholderQR.
+ *
+ * This class supports the \link InplaceDecomposition inplace decomposition \endlink mechanism.
+ *
+ * \sa MatrixBase::householderQr()
+ */
+template<typename _MatrixType> class HouseholderQR
+{
+ public:
+
+ typedef _MatrixType MatrixType;
+ enum {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ // FIXME should be int
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime, (MatrixType::Flags&RowMajorBit) ? RowMajor : ColMajor, MaxRowsAtCompileTime, MaxRowsAtCompileTime> MatrixQType;
+ typedef typename internal::plain_diag_type<MatrixType>::type HCoeffsType;
+ typedef typename internal::plain_row_type<MatrixType>::type RowVectorType;
+ typedef HouseholderSequence<MatrixType,typename internal::remove_all<typename HCoeffsType::ConjugateReturnType>::type> HouseholderSequenceType;
+
+ /**
+ * \brief Default Constructor.
+ *
+ * The default constructor is useful in cases in which the user intends to
+ * perform decompositions via HouseholderQR::compute(const MatrixType&).
+ */
+ HouseholderQR() : m_qr(), m_hCoeffs(), m_temp(), m_isInitialized(false) {}
+
+ /** \brief Default Constructor with memory preallocation
+ *
+ * Like the default constructor but with preallocation of the internal data
+ * according to the specified problem \a size.
+ * \sa HouseholderQR()
+ */
+ HouseholderQR(Index rows, Index cols)
+ : m_qr(rows, cols),
+ m_hCoeffs((std::min)(rows,cols)),
+ m_temp(cols),
+ m_isInitialized(false) {}
+
+ /** \brief Constructs a QR factorization from a given matrix
+ *
+ * This constructor computes the QR factorization of the matrix \a matrix by calling
+ * the method compute(). It is a short cut for:
+ *
+ * \code
+ * HouseholderQR<MatrixType> qr(matrix.rows(), matrix.cols());
+ * qr.compute(matrix);
+ * \endcode
+ *
+ * \sa compute()
+ */
+ template<typename InputType>
+ explicit HouseholderQR(const EigenBase<InputType>& matrix)
+ : m_qr(matrix.rows(), matrix.cols()),
+ m_hCoeffs((std::min)(matrix.rows(),matrix.cols())),
+ m_temp(matrix.cols()),
+ m_isInitialized(false)
+ {
+ compute(matrix.derived());
+ }
+
+
+ /** \brief Constructs a QR factorization from a given matrix
+ *
+ * This overloaded constructor is provided for \link InplaceDecomposition inplace decomposition \endlink when
+ * \c MatrixType is a Eigen::Ref.
+ *
+ * \sa HouseholderQR(const EigenBase&)
+ */
+ template<typename InputType>
+ explicit HouseholderQR(EigenBase<InputType>& matrix)
+ : m_qr(matrix.derived()),
+ m_hCoeffs((std::min)(matrix.rows(),matrix.cols())),
+ m_temp(matrix.cols()),
+ m_isInitialized(false)
+ {
+ computeInPlace();
+ }
+
+ /** This method finds a solution x to the equation Ax=b, where A is the matrix of which
+ * *this is the QR decomposition, if any exists.
+ *
+ * \param b the right-hand-side of the equation to solve.
+ *
+ * \returns a solution.
+ *
+ * \note_about_checking_solutions
+ *
+ * \note_about_arbitrary_choice_of_solution
+ *
+ * Example: \include HouseholderQR_solve.cpp
+ * Output: \verbinclude HouseholderQR_solve.out
+ */
+ template<typename Rhs>
+ inline const Solve<HouseholderQR, Rhs>
+ solve(const MatrixBase<Rhs>& b) const
+ {
+ eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");
+ return Solve<HouseholderQR, Rhs>(*this, b.derived());
+ }
+
+ /** This method returns an expression of the unitary matrix Q as a sequence of Householder transformations.
+ *
+ * The returned expression can directly be used to perform matrix products. It can also be assigned to a dense Matrix object.
+ * Here is an example showing how to recover the full or thin matrix Q, as well as how to perform matrix products using operator*:
+ *
+ * Example: \include HouseholderQR_householderQ.cpp
+ * Output: \verbinclude HouseholderQR_householderQ.out
+ */
+ HouseholderSequenceType householderQ() const
+ {
+ eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");
+ return HouseholderSequenceType(m_qr, m_hCoeffs.conjugate());
+ }
+
+ /** \returns a reference to the matrix where the Householder QR decomposition is stored
+ * in a LAPACK-compatible way.
+ */
+ const MatrixType& matrixQR() const
+ {
+ eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");
+ return m_qr;
+ }
+
+ template<typename InputType>
+ HouseholderQR& compute(const EigenBase<InputType>& matrix) {
+ m_qr = matrix.derived();
+ computeInPlace();
+ return *this;
+ }
+
+ /** \returns the absolute value of the determinant of the matrix of which
+ * *this is the QR decomposition. It has only linear complexity
+ * (that is, O(n) where n is the dimension of the square matrix)
+ * as the QR decomposition has already been computed.
+ *
+ * \note This is only for square matrices.
+ *
+ * \warning a determinant can be very big or small, so for matrices
+ * of large enough dimension, there is a risk of overflow/underflow.
+ * One way to work around that is to use logAbsDeterminant() instead.
+ *
+ * \sa logAbsDeterminant(), MatrixBase::determinant()
+ */
+ typename MatrixType::RealScalar absDeterminant() const;
+
+ /** \returns the natural log of the absolute value of the determinant of the matrix of which
+ * *this is the QR decomposition. It has only linear complexity
+ * (that is, O(n) where n is the dimension of the square matrix)
+ * as the QR decomposition has already been computed.
+ *
+ * \note This is only for square matrices.
+ *
+ * \note This method is useful to work around the risk of overflow/underflow that's inherent
+ * to determinant computation.
+ *
+ * \sa absDeterminant(), MatrixBase::determinant()
+ */
+ typename MatrixType::RealScalar logAbsDeterminant() const;
+
+ inline Index rows() const { return m_qr.rows(); }
+ inline Index cols() const { return m_qr.cols(); }
+
+ /** \returns a const reference to the vector of Householder coefficients used to represent the factor \c Q.
+ *
+ * For advanced uses only.
+ */
+ const HCoeffsType& hCoeffs() const { return m_hCoeffs; }
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ template<typename RhsType, typename DstType>
+ EIGEN_DEVICE_FUNC
+ void _solve_impl(const RhsType &rhs, DstType &dst) const;
+ #endif
+
+ protected:
+
+ static void check_template_parameters()
+ {
+ EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+ }
+
+ void computeInPlace();
+
+ MatrixType m_qr;
+ HCoeffsType m_hCoeffs;
+ RowVectorType m_temp;
+ bool m_isInitialized;
+};
+
+template<typename MatrixType>
+typename MatrixType::RealScalar HouseholderQR<MatrixType>::absDeterminant() const
+{
+ using std::abs;
+ eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");
+ eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
+ return abs(m_qr.diagonal().prod());
+}
+
+template<typename MatrixType>
+typename MatrixType::RealScalar HouseholderQR<MatrixType>::logAbsDeterminant() const
+{
+ eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");
+ eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
+ return m_qr.diagonal().cwiseAbs().array().log().sum();
+}
+
+namespace internal {
+
+/** \internal */
+template<typename MatrixQR, typename HCoeffs>
+void householder_qr_inplace_unblocked(MatrixQR& mat, HCoeffs& hCoeffs, typename MatrixQR::Scalar* tempData = 0)
+{
+ typedef typename MatrixQR::Scalar Scalar;
+ typedef typename MatrixQR::RealScalar RealScalar;
+ Index rows = mat.rows();
+ Index cols = mat.cols();
+ Index size = (std::min)(rows,cols);
+
+ eigen_assert(hCoeffs.size() == size);
+
+ typedef Matrix<Scalar,MatrixQR::ColsAtCompileTime,1> TempType;
+ TempType tempVector;
+ if(tempData==0)
+ {
+ tempVector.resize(cols);
+ tempData = tempVector.data();
+ }
+
+ for(Index k = 0; k < size; ++k)
+ {
+ Index remainingRows = rows - k;
+ Index remainingCols = cols - k - 1;
+
+ RealScalar beta;
+ mat.col(k).tail(remainingRows).makeHouseholderInPlace(hCoeffs.coeffRef(k), beta);
+ mat.coeffRef(k,k) = beta;
+
+ // apply H to remaining part of m_qr from the left
+ mat.bottomRightCorner(remainingRows, remainingCols)
+ .applyHouseholderOnTheLeft(mat.col(k).tail(remainingRows-1), hCoeffs.coeffRef(k), tempData+k+1);
+ }
+}
+
+/** \internal */
+template<typename MatrixQR, typename HCoeffs,
+ typename MatrixQRScalar = typename MatrixQR::Scalar,
+ bool InnerStrideIsOne = (MatrixQR::InnerStrideAtCompileTime == 1 && HCoeffs::InnerStrideAtCompileTime == 1)>
+struct householder_qr_inplace_blocked
+{
+ // This is specialized for MKL-supported Scalar types in HouseholderQR_MKL.h
+ static void run(MatrixQR& mat, HCoeffs& hCoeffs, Index maxBlockSize=32,
+ typename MatrixQR::Scalar* tempData = 0)
+ {
+ typedef typename MatrixQR::Scalar Scalar;
+ typedef Block<MatrixQR,Dynamic,Dynamic> BlockType;
+
+ Index rows = mat.rows();
+ Index cols = mat.cols();
+ Index size = (std::min)(rows, cols);
+
+ typedef Matrix<Scalar,Dynamic,1,ColMajor,MatrixQR::MaxColsAtCompileTime,1> TempType;
+ TempType tempVector;
+ if(tempData==0)
+ {
+ tempVector.resize(cols);
+ tempData = tempVector.data();
+ }
+
+ Index blockSize = (std::min)(maxBlockSize,size);
+
+ Index k = 0;
+ for (k = 0; k < size; k += blockSize)
+ {
+ Index bs = (std::min)(size-k,blockSize); // actual size of the block
+ Index tcols = cols - k - bs; // trailing columns
+ Index brows = rows-k; // rows of the block
+
+ // partition the matrix:
+ // A00 | A01 | A02
+ // mat = A10 | A11 | A12
+ // A20 | A21 | A22
+ // and performs the qr dec of [A11^T A12^T]^T
+ // and update [A21^T A22^T]^T using level 3 operations.
+ // Finally, the algorithm continue on A22
+
+ BlockType A11_21 = mat.block(k,k,brows,bs);
+ Block<HCoeffs,Dynamic,1> hCoeffsSegment = hCoeffs.segment(k,bs);
+
+ householder_qr_inplace_unblocked(A11_21, hCoeffsSegment, tempData);
+
+ if(tcols)
+ {
+ BlockType A21_22 = mat.block(k,k+bs,brows,tcols);
+ apply_block_householder_on_the_left(A21_22,A11_21,hCoeffsSegment, false); // false == backward
+ }
+ }
+ }
+};
+
+} // end namespace internal
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+template<typename _MatrixType>
+template<typename RhsType, typename DstType>
+void HouseholderQR<_MatrixType>::_solve_impl(const RhsType &rhs, DstType &dst) const
+{
+ const Index rank = (std::min)(rows(), cols());
+ eigen_assert(rhs.rows() == rows());
+
+ typename RhsType::PlainObject c(rhs);
+
+ // Note that the matrix Q = H_0^* H_1^*... so its inverse is Q^* = (H_0 H_1 ...)^T
+ c.applyOnTheLeft(householderSequence(
+ m_qr.leftCols(rank),
+ m_hCoeffs.head(rank)).transpose()
+ );
+
+ m_qr.topLeftCorner(rank, rank)
+ .template triangularView<Upper>()
+ .solveInPlace(c.topRows(rank));
+
+ dst.topRows(rank) = c.topRows(rank);
+ dst.bottomRows(cols()-rank).setZero();
+}
+#endif
+
+/** Performs the QR factorization of the given matrix \a matrix. The result of
+ * the factorization is stored into \c *this, and a reference to \c *this
+ * is returned.
+ *
+ * \sa class HouseholderQR, HouseholderQR(const MatrixType&)
+ */
+template<typename MatrixType>
+void HouseholderQR<MatrixType>::computeInPlace()
+{
+ check_template_parameters();
+
+ Index rows = m_qr.rows();
+ Index cols = m_qr.cols();
+ Index size = (std::min)(rows,cols);
+
+ m_hCoeffs.resize(size);
+
+ m_temp.resize(cols);
+
+ internal::householder_qr_inplace_blocked<MatrixType, HCoeffsType>::run(m_qr, m_hCoeffs, 48, m_temp.data());
+
+ m_isInitialized = true;
+}
+
+/** \return the Householder QR decomposition of \c *this.
+ *
+ * \sa class HouseholderQR
+ */
+template<typename Derived>
+const HouseholderQR<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::householderQr() const
+{
+ return HouseholderQR<PlainObject>(eval());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_QR_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h b/runtimes/nn/depend/external/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h
new file mode 100644
index 000000000..1dc7d5363
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h
@@ -0,0 +1,68 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ * Content : Eigen bindings to LAPACKe
+ * Householder QR decomposition of a matrix w/o pivoting based on
+ * LAPACKE_?geqrf function.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_QR_LAPACKE_H
+#define EIGEN_QR_LAPACKE_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** \internal Specialization for the data types supported by LAPACKe */
+
+#define EIGEN_LAPACKE_QR_NOPIV(EIGTYPE, LAPACKE_TYPE, LAPACKE_PREFIX) \
+template<typename MatrixQR, typename HCoeffs> \
+struct householder_qr_inplace_blocked<MatrixQR, HCoeffs, EIGTYPE, true> \
+{ \
+ static void run(MatrixQR& mat, HCoeffs& hCoeffs, Index = 32, \
+ typename MatrixQR::Scalar* = 0) \
+ { \
+ lapack_int m = (lapack_int) mat.rows(); \
+ lapack_int n = (lapack_int) mat.cols(); \
+ lapack_int lda = (lapack_int) mat.outerStride(); \
+ lapack_int matrix_order = (MatrixQR::IsRowMajor) ? LAPACK_ROW_MAJOR : LAPACK_COL_MAJOR; \
+ LAPACKE_##LAPACKE_PREFIX##geqrf( matrix_order, m, n, (LAPACKE_TYPE*)mat.data(), lda, (LAPACKE_TYPE*)hCoeffs.data()); \
+ hCoeffs.adjointInPlace(); \
+ } \
+};
+
+EIGEN_LAPACKE_QR_NOPIV(double, double, d)
+EIGEN_LAPACKE_QR_NOPIV(float, float, s)
+EIGEN_LAPACKE_QR_NOPIV(dcomplex, lapack_complex_double, z)
+EIGEN_LAPACKE_QR_NOPIV(scomplex, lapack_complex_float, c)
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_QR_LAPACKE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h b/runtimes/nn/depend/external/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h
new file mode 100644
index 000000000..953d57c9d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h
@@ -0,0 +1,313 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Desire Nuentsa <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SUITESPARSEQRSUPPORT_H
+#define EIGEN_SUITESPARSEQRSUPPORT_H
+
+namespace Eigen {
+
+ template<typename MatrixType> class SPQR;
+ template<typename SPQRType> struct SPQRMatrixQReturnType;
+ template<typename SPQRType> struct SPQRMatrixQTransposeReturnType;
+ template <typename SPQRType, typename Derived> struct SPQR_QProduct;
+ namespace internal {
+ template <typename SPQRType> struct traits<SPQRMatrixQReturnType<SPQRType> >
+ {
+ typedef typename SPQRType::MatrixType ReturnType;
+ };
+ template <typename SPQRType> struct traits<SPQRMatrixQTransposeReturnType<SPQRType> >
+ {
+ typedef typename SPQRType::MatrixType ReturnType;
+ };
+ template <typename SPQRType, typename Derived> struct traits<SPQR_QProduct<SPQRType, Derived> >
+ {
+ typedef typename Derived::PlainObject ReturnType;
+ };
+ } // End namespace internal
+
+/**
+ * \ingroup SPQRSupport_Module
+ * \class SPQR
+ * \brief Sparse QR factorization based on SuiteSparseQR library
+ *
+ * This class is used to perform a multithreaded and multifrontal rank-revealing QR decomposition
+ * of sparse matrices. The result is then used to solve linear leasts_square systems.
+ * Clearly, a QR factorization is returned such that A*P = Q*R where :
+ *
+ * P is the column permutation. Use colsPermutation() to get it.
+ *
+ * Q is the orthogonal matrix represented as Householder reflectors.
+ * Use matrixQ() to get an expression and matrixQ().transpose() to get the transpose.
+ * You can then apply it to a vector.
+ *
+ * R is the sparse triangular factor. Use matrixQR() to get it as SparseMatrix.
+ * NOTE : The Index type of R is always SuiteSparse_long. You can get it with SPQR::Index
+ *
+ * \tparam _MatrixType The type of the sparse matrix A, must be a column-major SparseMatrix<>
+ *
+ * \implsparsesolverconcept
+ *
+ *
+ */
+template<typename _MatrixType>
+class SPQR : public SparseSolverBase<SPQR<_MatrixType> >
+{
+ protected:
+ typedef SparseSolverBase<SPQR<_MatrixType> > Base;
+ using Base::m_isInitialized;
+ public:
+ typedef typename _MatrixType::Scalar Scalar;
+ typedef typename _MatrixType::RealScalar RealScalar;
+ typedef SuiteSparse_long StorageIndex ;
+ typedef SparseMatrix<Scalar, ColMajor, StorageIndex> MatrixType;
+ typedef Map<PermutationMatrix<Dynamic, Dynamic, StorageIndex> > PermutationType;
+ enum {
+ ColsAtCompileTime = Dynamic,
+ MaxColsAtCompileTime = Dynamic
+ };
+ public:
+ SPQR()
+ : m_ordering(SPQR_ORDERING_DEFAULT), m_allow_tol(SPQR_DEFAULT_TOL), m_tolerance (NumTraits<Scalar>::epsilon()), m_useDefaultThreshold(true)
+ {
+ cholmod_l_start(&m_cc);
+ }
+
+ explicit SPQR(const _MatrixType& matrix)
+ : m_ordering(SPQR_ORDERING_DEFAULT), m_allow_tol(SPQR_DEFAULT_TOL), m_tolerance (NumTraits<Scalar>::epsilon()), m_useDefaultThreshold(true)
+ {
+ cholmod_l_start(&m_cc);
+ compute(matrix);
+ }
+
+ ~SPQR()
+ {
+ SPQR_free();
+ cholmod_l_finish(&m_cc);
+ }
+ void SPQR_free()
+ {
+ cholmod_l_free_sparse(&m_H, &m_cc);
+ cholmod_l_free_sparse(&m_cR, &m_cc);
+ cholmod_l_free_dense(&m_HTau, &m_cc);
+ std::free(m_E);
+ std::free(m_HPinv);
+ }
+
+ void compute(const _MatrixType& matrix)
+ {
+ if(m_isInitialized) SPQR_free();
+
+ MatrixType mat(matrix);
+
+ /* Compute the default threshold as in MatLab, see:
+ * Tim Davis, "Algorithm 915, SuiteSparseQR: Multifrontal Multithreaded Rank-Revealing
+ * Sparse QR Factorization, ACM Trans. on Math. Soft. 38(1), 2011, Page 8:3
+ */
+ RealScalar pivotThreshold = m_tolerance;
+ if(m_useDefaultThreshold)
+ {
+ RealScalar max2Norm = 0.0;
+ for (int j = 0; j < mat.cols(); j++) max2Norm = numext::maxi(max2Norm, mat.col(j).norm());
+ if(max2Norm==RealScalar(0))
+ max2Norm = RealScalar(1);
+ pivotThreshold = 20 * (mat.rows() + mat.cols()) * max2Norm * NumTraits<RealScalar>::epsilon();
+ }
+ cholmod_sparse A;
+ A = viewAsCholmod(mat);
+ m_rows = matrix.rows();
+ Index col = matrix.cols();
+ m_rank = SuiteSparseQR<Scalar>(m_ordering, pivotThreshold, col, &A,
+ &m_cR, &m_E, &m_H, &m_HPinv, &m_HTau, &m_cc);
+
+ if (!m_cR)
+ {
+ m_info = NumericalIssue;
+ m_isInitialized = false;
+ return;
+ }
+ m_info = Success;
+ m_isInitialized = true;
+ m_isRUpToDate = false;
+ }
+ /**
+ * Get the number of rows of the input matrix and the Q matrix
+ */
+ inline Index rows() const {return m_rows; }
+
+ /**
+ * Get the number of columns of the input matrix.
+ */
+ inline Index cols() const { return m_cR->ncol; }
+
+ template<typename Rhs, typename Dest>
+ void _solve_impl(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const
+ {
+ eigen_assert(m_isInitialized && " The QR factorization should be computed first, call compute()");
+ eigen_assert(b.cols()==1 && "This method is for vectors only");
+
+ //Compute Q^T * b
+ typename Dest::PlainObject y, y2;
+ y = matrixQ().transpose() * b;
+
+ // Solves with the triangular matrix R
+ Index rk = this->rank();
+ y2 = y;
+ y.resize((std::max)(cols(),Index(y.rows())),y.cols());
+ y.topRows(rk) = this->matrixR().topLeftCorner(rk, rk).template triangularView<Upper>().solve(y2.topRows(rk));
+
+ // Apply the column permutation
+ // colsPermutation() performs a copy of the permutation,
+ // so let's apply it manually:
+ for(Index i = 0; i < rk; ++i) dest.row(m_E[i]) = y.row(i);
+ for(Index i = rk; i < cols(); ++i) dest.row(m_E[i]).setZero();
+
+// y.bottomRows(y.rows()-rk).setZero();
+// dest = colsPermutation() * y.topRows(cols());
+
+ m_info = Success;
+ }
+
+ /** \returns the sparse triangular factor R. It is a sparse matrix
+ */
+ const MatrixType matrixR() const
+ {
+ eigen_assert(m_isInitialized && " The QR factorization should be computed first, call compute()");
+ if(!m_isRUpToDate) {
+ m_R = viewAsEigen<Scalar,ColMajor, typename MatrixType::StorageIndex>(*m_cR);
+ m_isRUpToDate = true;
+ }
+ return m_R;
+ }
+ /// Get an expression of the matrix Q
+ SPQRMatrixQReturnType<SPQR> matrixQ() const
+ {
+ return SPQRMatrixQReturnType<SPQR>(*this);
+ }
+ /// Get the permutation that was applied to columns of A
+ PermutationType colsPermutation() const
+ {
+ eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+ return PermutationType(m_E, m_cR->ncol);
+ }
+ /**
+ * Gets the rank of the matrix.
+ * It should be equal to matrixQR().cols if the matrix is full-rank
+ */
+ Index rank() const
+ {
+ eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+ return m_cc.SPQR_istat[4];
+ }
+ /// Set the fill-reducing ordering method to be used
+ void setSPQROrdering(int ord) { m_ordering = ord;}
+ /// Set the tolerance tol to treat columns with 2-norm < =tol as zero
+ void setPivotThreshold(const RealScalar& tol)
+ {
+ m_useDefaultThreshold = false;
+ m_tolerance = tol;
+ }
+
+ /** \returns a pointer to the SPQR workspace */
+ cholmod_common *cholmodCommon() const { return &m_cc; }
+
+
+ /** \brief Reports whether previous computation was successful.
+ *
+ * \returns \c Success if computation was succesful,
+ * \c NumericalIssue if the sparse QR can not be computed
+ */
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+ return m_info;
+ }
+ protected:
+ bool m_analysisIsOk;
+ bool m_factorizationIsOk;
+ mutable bool m_isRUpToDate;
+ mutable ComputationInfo m_info;
+ int m_ordering; // Ordering method to use, see SPQR's manual
+ int m_allow_tol; // Allow to use some tolerance during numerical factorization.
+ RealScalar m_tolerance; // treat columns with 2-norm below this tolerance as zero
+ mutable cholmod_sparse *m_cR; // The sparse R factor in cholmod format
+ mutable MatrixType m_R; // The sparse matrix R in Eigen format
+ mutable StorageIndex *m_E; // The permutation applied to columns
+ mutable cholmod_sparse *m_H; //The householder vectors
+ mutable StorageIndex *m_HPinv; // The row permutation of H
+ mutable cholmod_dense *m_HTau; // The Householder coefficients
+ mutable Index m_rank; // The rank of the matrix
+ mutable cholmod_common m_cc; // Workspace and parameters
+ bool m_useDefaultThreshold; // Use default threshold
+ Index m_rows;
+ template<typename ,typename > friend struct SPQR_QProduct;
+};
+
+template <typename SPQRType, typename Derived>
+struct SPQR_QProduct : ReturnByValue<SPQR_QProduct<SPQRType,Derived> >
+{
+ typedef typename SPQRType::Scalar Scalar;
+ typedef typename SPQRType::StorageIndex StorageIndex;
+ //Define the constructor to get reference to argument types
+ SPQR_QProduct(const SPQRType& spqr, const Derived& other, bool transpose) : m_spqr(spqr),m_other(other),m_transpose(transpose) {}
+
+ inline Index rows() const { return m_transpose ? m_spqr.rows() : m_spqr.cols(); }
+ inline Index cols() const { return m_other.cols(); }
+ // Assign to a vector
+ template<typename ResType>
+ void evalTo(ResType& res) const
+ {
+ cholmod_dense y_cd;
+ cholmod_dense *x_cd;
+ int method = m_transpose ? SPQR_QTX : SPQR_QX;
+ cholmod_common *cc = m_spqr.cholmodCommon();
+ y_cd = viewAsCholmod(m_other.const_cast_derived());
+ x_cd = SuiteSparseQR_qmult<Scalar>(method, m_spqr.m_H, m_spqr.m_HTau, m_spqr.m_HPinv, &y_cd, cc);
+ res = Matrix<Scalar,ResType::RowsAtCompileTime,ResType::ColsAtCompileTime>::Map(reinterpret_cast<Scalar*>(x_cd->x), x_cd->nrow, x_cd->ncol);
+ cholmod_l_free_dense(&x_cd, cc);
+ }
+ const SPQRType& m_spqr;
+ const Derived& m_other;
+ bool m_transpose;
+
+};
+template<typename SPQRType>
+struct SPQRMatrixQReturnType{
+
+ SPQRMatrixQReturnType(const SPQRType& spqr) : m_spqr(spqr) {}
+ template<typename Derived>
+ SPQR_QProduct<SPQRType, Derived> operator*(const MatrixBase<Derived>& other)
+ {
+ return SPQR_QProduct<SPQRType,Derived>(m_spqr,other.derived(),false);
+ }
+ SPQRMatrixQTransposeReturnType<SPQRType> adjoint() const
+ {
+ return SPQRMatrixQTransposeReturnType<SPQRType>(m_spqr);
+ }
+ // To use for operations with the transpose of Q
+ SPQRMatrixQTransposeReturnType<SPQRType> transpose() const
+ {
+ return SPQRMatrixQTransposeReturnType<SPQRType>(m_spqr);
+ }
+ const SPQRType& m_spqr;
+};
+
+template<typename SPQRType>
+struct SPQRMatrixQTransposeReturnType{
+ SPQRMatrixQTransposeReturnType(const SPQRType& spqr) : m_spqr(spqr) {}
+ template<typename Derived>
+ SPQR_QProduct<SPQRType,Derived> operator*(const MatrixBase<Derived>& other)
+ {
+ return SPQR_QProduct<SPQRType,Derived>(m_spqr,other.derived(), true);
+ }
+ const SPQRType& m_spqr;
+};
+
+}// End namespace Eigen
+#endif
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SVD/BDCSVD.h b/runtimes/nn/depend/external/eigen/Eigen/src/SVD/BDCSVD.h
new file mode 100644
index 000000000..d7a4271cb
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SVD/BDCSVD.h
@@ -0,0 +1,1231 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// We used the "A Divide-And-Conquer Algorithm for the Bidiagonal SVD"
+// research report written by Ming Gu and Stanley C.Eisenstat
+// The code variable names correspond to the names they used in their
+// report
+//
+// Copyright (C) 2013 Gauthier Brun <brun.gauthier@gmail.com>
+// Copyright (C) 2013 Nicolas Carre <nicolas.carre@ensimag.fr>
+// Copyright (C) 2013 Jean Ceccato <jean.ceccato@ensimag.fr>
+// Copyright (C) 2013 Pierre Zoppitelli <pierre.zoppitelli@ensimag.fr>
+// Copyright (C) 2013 Jitse Niesen <jitse@maths.leeds.ac.uk>
+// Copyright (C) 2014-2016 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BDCSVD_H
+#define EIGEN_BDCSVD_H
+// #define EIGEN_BDCSVD_DEBUG_VERBOSE
+// #define EIGEN_BDCSVD_SANITY_CHECKS
+
+namespace Eigen {
+
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+IOFormat bdcsvdfmt(8, 0, ", ", "\n", " [", "]");
+#endif
+
+template<typename _MatrixType> class BDCSVD;
+
+namespace internal {
+
+template<typename _MatrixType>
+struct traits<BDCSVD<_MatrixType> >
+{
+ typedef _MatrixType MatrixType;
+};
+
+} // end namespace internal
+
+
+/** \ingroup SVD_Module
+ *
+ *
+ * \class BDCSVD
+ *
+ * \brief class Bidiagonal Divide and Conquer SVD
+ *
+ * \tparam _MatrixType the type of the matrix of which we are computing the SVD decomposition
+ *
+ * This class first reduces the input matrix to bi-diagonal form using class UpperBidiagonalization,
+ * and then performs a divide-and-conquer diagonalization. Small blocks are diagonalized using class JacobiSVD.
+ * You can control the switching size with the setSwitchSize() method, default is 16.
+ * For small matrice (<16), it is thus preferable to directly use JacobiSVD. For larger ones, BDCSVD is highly
+ * recommended and can several order of magnitude faster.
+ *
+ * \warning this algorithm is unlikely to provide accurate result when compiled with unsafe math optimizations.
+ * For instance, this concerns Intel's compiler (ICC), which perfroms such optimization by default unless
+ * you compile with the \c -fp-model \c precise option. Likewise, the \c -ffast-math option of GCC or clang will
+ * significantly degrade the accuracy.
+ *
+ * \sa class JacobiSVD
+ */
+template<typename _MatrixType>
+class BDCSVD : public SVDBase<BDCSVD<_MatrixType> >
+{
+ typedef SVDBase<BDCSVD> Base;
+
+public:
+ using Base::rows;
+ using Base::cols;
+ using Base::computeU;
+ using Base::computeV;
+
+ typedef _MatrixType MatrixType;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+ typedef typename NumTraits<RealScalar>::Literal Literal;
+ enum {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ DiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_DYNAMIC(RowsAtCompileTime, ColsAtCompileTime),
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+ MaxDiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(MaxRowsAtCompileTime, MaxColsAtCompileTime),
+ MatrixOptions = MatrixType::Options
+ };
+
+ typedef typename Base::MatrixUType MatrixUType;
+ typedef typename Base::MatrixVType MatrixVType;
+ typedef typename Base::SingularValuesType SingularValuesType;
+
+ typedef Matrix<Scalar, Dynamic, Dynamic, ColMajor> MatrixX;
+ typedef Matrix<RealScalar, Dynamic, Dynamic, ColMajor> MatrixXr;
+ typedef Matrix<RealScalar, Dynamic, 1> VectorType;
+ typedef Array<RealScalar, Dynamic, 1> ArrayXr;
+ typedef Array<Index,1,Dynamic> ArrayXi;
+ typedef Ref<ArrayXr> ArrayRef;
+ typedef Ref<ArrayXi> IndicesRef;
+
+ /** \brief Default Constructor.
+ *
+ * The default constructor is useful in cases in which the user intends to
+ * perform decompositions via BDCSVD::compute(const MatrixType&).
+ */
+ BDCSVD() : m_algoswap(16), m_numIters(0)
+ {}
+
+
+ /** \brief Default Constructor with memory preallocation
+ *
+ * Like the default constructor but with preallocation of the internal data
+ * according to the specified problem size.
+ * \sa BDCSVD()
+ */
+ BDCSVD(Index rows, Index cols, unsigned int computationOptions = 0)
+ : m_algoswap(16), m_numIters(0)
+ {
+ allocate(rows, cols, computationOptions);
+ }
+
+ /** \brief Constructor performing the decomposition of given matrix.
+ *
+ * \param matrix the matrix to decompose
+ * \param computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed.
+ * By default, none is computed. This is a bit - field, the possible bits are #ComputeFullU, #ComputeThinU,
+ * #ComputeFullV, #ComputeThinV.
+ *
+ * Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not
+ * available with the (non - default) FullPivHouseholderQR preconditioner.
+ */
+ BDCSVD(const MatrixType& matrix, unsigned int computationOptions = 0)
+ : m_algoswap(16), m_numIters(0)
+ {
+ compute(matrix, computationOptions);
+ }
+
+ ~BDCSVD()
+ {
+ }
+
+ /** \brief Method performing the decomposition of given matrix using custom options.
+ *
+ * \param matrix the matrix to decompose
+ * \param computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed.
+ * By default, none is computed. This is a bit - field, the possible bits are #ComputeFullU, #ComputeThinU,
+ * #ComputeFullV, #ComputeThinV.
+ *
+ * Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not
+ * available with the (non - default) FullPivHouseholderQR preconditioner.
+ */
+ BDCSVD& compute(const MatrixType& matrix, unsigned int computationOptions);
+
+ /** \brief Method performing the decomposition of given matrix using current options.
+ *
+ * \param matrix the matrix to decompose
+ *
+ * This method uses the current \a computationOptions, as already passed to the constructor or to compute(const MatrixType&, unsigned int).
+ */
+ BDCSVD& compute(const MatrixType& matrix)
+ {
+ return compute(matrix, this->m_computationOptions);
+ }
+
+ void setSwitchSize(int s)
+ {
+ eigen_assert(s>3 && "BDCSVD the size of the algo switch has to be greater than 3");
+ m_algoswap = s;
+ }
+
+private:
+ void allocate(Index rows, Index cols, unsigned int computationOptions);
+ void divide(Index firstCol, Index lastCol, Index firstRowW, Index firstColW, Index shift);
+ void computeSVDofM(Index firstCol, Index n, MatrixXr& U, VectorType& singVals, MatrixXr& V);
+ void computeSingVals(const ArrayRef& col0, const ArrayRef& diag, const IndicesRef& perm, VectorType& singVals, ArrayRef shifts, ArrayRef mus);
+ void perturbCol0(const ArrayRef& col0, const ArrayRef& diag, const IndicesRef& perm, const VectorType& singVals, const ArrayRef& shifts, const ArrayRef& mus, ArrayRef zhat);
+ void computeSingVecs(const ArrayRef& zhat, const ArrayRef& diag, const IndicesRef& perm, const VectorType& singVals, const ArrayRef& shifts, const ArrayRef& mus, MatrixXr& U, MatrixXr& V);
+ void deflation43(Index firstCol, Index shift, Index i, Index size);
+ void deflation44(Index firstColu , Index firstColm, Index firstRowW, Index firstColW, Index i, Index j, Index size);
+ void deflation(Index firstCol, Index lastCol, Index k, Index firstRowW, Index firstColW, Index shift);
+ template<typename HouseholderU, typename HouseholderV, typename NaiveU, typename NaiveV>
+ void copyUV(const HouseholderU &householderU, const HouseholderV &householderV, const NaiveU &naiveU, const NaiveV &naivev);
+ void structured_update(Block<MatrixXr,Dynamic,Dynamic> A, const MatrixXr &B, Index n1);
+ static RealScalar secularEq(RealScalar x, const ArrayRef& col0, const ArrayRef& diag, const IndicesRef &perm, const ArrayRef& diagShifted, RealScalar shift);
+
+protected:
+ MatrixXr m_naiveU, m_naiveV;
+ MatrixXr m_computed;
+ Index m_nRec;
+ ArrayXr m_workspace;
+ ArrayXi m_workspaceI;
+ int m_algoswap;
+ bool m_isTranspose, m_compU, m_compV;
+
+ using Base::m_singularValues;
+ using Base::m_diagSize;
+ using Base::m_computeFullU;
+ using Base::m_computeFullV;
+ using Base::m_computeThinU;
+ using Base::m_computeThinV;
+ using Base::m_matrixU;
+ using Base::m_matrixV;
+ using Base::m_isInitialized;
+ using Base::m_nonzeroSingularValues;
+
+public:
+ int m_numIters;
+}; //end class BDCSVD
+
+
+// Method to allocate and initialize matrix and attributes
+template<typename MatrixType>
+void BDCSVD<MatrixType>::allocate(Index rows, Index cols, unsigned int computationOptions)
+{
+ m_isTranspose = (cols > rows);
+
+ if (Base::allocate(rows, cols, computationOptions))
+ return;
+
+ m_computed = MatrixXr::Zero(m_diagSize + 1, m_diagSize );
+ m_compU = computeV();
+ m_compV = computeU();
+ if (m_isTranspose)
+ std::swap(m_compU, m_compV);
+
+ if (m_compU) m_naiveU = MatrixXr::Zero(m_diagSize + 1, m_diagSize + 1 );
+ else m_naiveU = MatrixXr::Zero(2, m_diagSize + 1 );
+
+ if (m_compV) m_naiveV = MatrixXr::Zero(m_diagSize, m_diagSize);
+
+ m_workspace.resize((m_diagSize+1)*(m_diagSize+1)*3);
+ m_workspaceI.resize(3*m_diagSize);
+}// end allocate
+
+template<typename MatrixType>
+BDCSVD<MatrixType>& BDCSVD<MatrixType>::compute(const MatrixType& matrix, unsigned int computationOptions)
+{
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ std::cout << "\n\n\n======================================================================================================================\n\n\n";
+#endif
+ allocate(matrix.rows(), matrix.cols(), computationOptions);
+ using std::abs;
+
+ const RealScalar considerZero = (std::numeric_limits<RealScalar>::min)();
+
+ //**** step -1 - If the problem is too small, directly falls back to JacobiSVD and return
+ if(matrix.cols() < m_algoswap)
+ {
+ // FIXME this line involves temporaries
+ JacobiSVD<MatrixType> jsvd(matrix,computationOptions);
+ if(computeU()) m_matrixU = jsvd.matrixU();
+ if(computeV()) m_matrixV = jsvd.matrixV();
+ m_singularValues = jsvd.singularValues();
+ m_nonzeroSingularValues = jsvd.nonzeroSingularValues();
+ m_isInitialized = true;
+ return *this;
+ }
+
+ //**** step 0 - Copy the input matrix and apply scaling to reduce over/under-flows
+ RealScalar scale = matrix.cwiseAbs().maxCoeff();
+ if(scale==Literal(0)) scale = Literal(1);
+ MatrixX copy;
+ if (m_isTranspose) copy = matrix.adjoint()/scale;
+ else copy = matrix/scale;
+
+ //**** step 1 - Bidiagonalization
+ // FIXME this line involves temporaries
+ internal::UpperBidiagonalization<MatrixX> bid(copy);
+
+ //**** step 2 - Divide & Conquer
+ m_naiveU.setZero();
+ m_naiveV.setZero();
+ // FIXME this line involves a temporary matrix
+ m_computed.topRows(m_diagSize) = bid.bidiagonal().toDenseMatrix().transpose();
+ m_computed.template bottomRows<1>().setZero();
+ divide(0, m_diagSize - 1, 0, 0, 0);
+
+ //**** step 3 - Copy singular values and vectors
+ for (int i=0; i<m_diagSize; i++)
+ {
+ RealScalar a = abs(m_computed.coeff(i, i));
+ m_singularValues.coeffRef(i) = a * scale;
+ if (a<considerZero)
+ {
+ m_nonzeroSingularValues = i;
+ m_singularValues.tail(m_diagSize - i - 1).setZero();
+ break;
+ }
+ else if (i == m_diagSize - 1)
+ {
+ m_nonzeroSingularValues = i + 1;
+ break;
+ }
+ }
+
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+// std::cout << "m_naiveU\n" << m_naiveU << "\n\n";
+// std::cout << "m_naiveV\n" << m_naiveV << "\n\n";
+#endif
+ if(m_isTranspose) copyUV(bid.householderV(), bid.householderU(), m_naiveV, m_naiveU);
+ else copyUV(bid.householderU(), bid.householderV(), m_naiveU, m_naiveV);
+
+ m_isInitialized = true;
+ return *this;
+}// end compute
+
+
+template<typename MatrixType>
+template<typename HouseholderU, typename HouseholderV, typename NaiveU, typename NaiveV>
+void BDCSVD<MatrixType>::copyUV(const HouseholderU &householderU, const HouseholderV &householderV, const NaiveU &naiveU, const NaiveV &naiveV)
+{
+ // Note exchange of U and V: m_matrixU is set from m_naiveV and vice versa
+ if (computeU())
+ {
+ Index Ucols = m_computeThinU ? m_diagSize : householderU.cols();
+ m_matrixU = MatrixX::Identity(householderU.cols(), Ucols);
+ m_matrixU.topLeftCorner(m_diagSize, m_diagSize) = naiveV.template cast<Scalar>().topLeftCorner(m_diagSize, m_diagSize);
+ householderU.applyThisOnTheLeft(m_matrixU); // FIXME this line involves a temporary buffer
+ }
+ if (computeV())
+ {
+ Index Vcols = m_computeThinV ? m_diagSize : householderV.cols();
+ m_matrixV = MatrixX::Identity(householderV.cols(), Vcols);
+ m_matrixV.topLeftCorner(m_diagSize, m_diagSize) = naiveU.template cast<Scalar>().topLeftCorner(m_diagSize, m_diagSize);
+ householderV.applyThisOnTheLeft(m_matrixV); // FIXME this line involves a temporary buffer
+ }
+}
+
+/** \internal
+ * Performs A = A * B exploiting the special structure of the matrix A. Splitting A as:
+ * A = [A1]
+ * [A2]
+ * such that A1.rows()==n1, then we assume that at least half of the columns of A1 and A2 are zeros.
+ * We can thus pack them prior to the the matrix product. However, this is only worth the effort if the matrix is large
+ * enough.
+ */
+template<typename MatrixType>
+void BDCSVD<MatrixType>::structured_update(Block<MatrixXr,Dynamic,Dynamic> A, const MatrixXr &B, Index n1)
+{
+ Index n = A.rows();
+ if(n>100)
+ {
+ // If the matrices are large enough, let's exploit the sparse structure of A by
+ // splitting it in half (wrt n1), and packing the non-zero columns.
+ Index n2 = n - n1;
+ Map<MatrixXr> A1(m_workspace.data() , n1, n);
+ Map<MatrixXr> A2(m_workspace.data()+ n1*n, n2, n);
+ Map<MatrixXr> B1(m_workspace.data()+ n*n, n, n);
+ Map<MatrixXr> B2(m_workspace.data()+2*n*n, n, n);
+ Index k1=0, k2=0;
+ for(Index j=0; j<n; ++j)
+ {
+ if( (A.col(j).head(n1).array()!=Literal(0)).any() )
+ {
+ A1.col(k1) = A.col(j).head(n1);
+ B1.row(k1) = B.row(j);
+ ++k1;
+ }
+ if( (A.col(j).tail(n2).array()!=Literal(0)).any() )
+ {
+ A2.col(k2) = A.col(j).tail(n2);
+ B2.row(k2) = B.row(j);
+ ++k2;
+ }
+ }
+
+ A.topRows(n1).noalias() = A1.leftCols(k1) * B1.topRows(k1);
+ A.bottomRows(n2).noalias() = A2.leftCols(k2) * B2.topRows(k2);
+ }
+ else
+ {
+ Map<MatrixXr,Aligned> tmp(m_workspace.data(),n,n);
+ tmp.noalias() = A*B;
+ A = tmp;
+ }
+}
+
+// The divide algorithm is done "in place", we are always working on subsets of the same matrix. The divide methods takes as argument the
+// place of the submatrix we are currently working on.
+
+//@param firstCol : The Index of the first column of the submatrix of m_computed and for m_naiveU;
+//@param lastCol : The Index of the last column of the submatrix of m_computed and for m_naiveU;
+// lastCol + 1 - firstCol is the size of the submatrix.
+//@param firstRowW : The Index of the first row of the matrix W that we are to change. (see the reference paper section 1 for more information on W)
+//@param firstRowW : Same as firstRowW with the column.
+//@param shift : Each time one takes the left submatrix, one must add 1 to the shift. Why? Because! We actually want the last column of the U submatrix
+// to become the first column (*coeff) and to shift all the other columns to the right. There are more details on the reference paper.
+template<typename MatrixType>
+void BDCSVD<MatrixType>::divide (Index firstCol, Index lastCol, Index firstRowW, Index firstColW, Index shift)
+{
+ // requires rows = cols + 1;
+ using std::pow;
+ using std::sqrt;
+ using std::abs;
+ const Index n = lastCol - firstCol + 1;
+ const Index k = n/2;
+ const RealScalar considerZero = (std::numeric_limits<RealScalar>::min)();
+ RealScalar alphaK;
+ RealScalar betaK;
+ RealScalar r0;
+ RealScalar lambda, phi, c0, s0;
+ VectorType l, f;
+ // We use the other algorithm which is more efficient for small
+ // matrices.
+ if (n < m_algoswap)
+ {
+ // FIXME this line involves temporaries
+ JacobiSVD<MatrixXr> b(m_computed.block(firstCol, firstCol, n + 1, n), ComputeFullU | (m_compV ? ComputeFullV : 0));
+ if (m_compU)
+ m_naiveU.block(firstCol, firstCol, n + 1, n + 1).real() = b.matrixU();
+ else
+ {
+ m_naiveU.row(0).segment(firstCol, n + 1).real() = b.matrixU().row(0);
+ m_naiveU.row(1).segment(firstCol, n + 1).real() = b.matrixU().row(n);
+ }
+ if (m_compV) m_naiveV.block(firstRowW, firstColW, n, n).real() = b.matrixV();
+ m_computed.block(firstCol + shift, firstCol + shift, n + 1, n).setZero();
+ m_computed.diagonal().segment(firstCol + shift, n) = b.singularValues().head(n);
+ return;
+ }
+ // We use the divide and conquer algorithm
+ alphaK = m_computed(firstCol + k, firstCol + k);
+ betaK = m_computed(firstCol + k + 1, firstCol + k);
+ // The divide must be done in that order in order to have good results. Divide change the data inside the submatrices
+ // and the divide of the right submatrice reads one column of the left submatrice. That's why we need to treat the
+ // right submatrix before the left one.
+ divide(k + 1 + firstCol, lastCol, k + 1 + firstRowW, k + 1 + firstColW, shift);
+ divide(firstCol, k - 1 + firstCol, firstRowW, firstColW + 1, shift + 1);
+
+ if (m_compU)
+ {
+ lambda = m_naiveU(firstCol + k, firstCol + k);
+ phi = m_naiveU(firstCol + k + 1, lastCol + 1);
+ }
+ else
+ {
+ lambda = m_naiveU(1, firstCol + k);
+ phi = m_naiveU(0, lastCol + 1);
+ }
+ r0 = sqrt((abs(alphaK * lambda) * abs(alphaK * lambda)) + abs(betaK * phi) * abs(betaK * phi));
+ if (m_compU)
+ {
+ l = m_naiveU.row(firstCol + k).segment(firstCol, k);
+ f = m_naiveU.row(firstCol + k + 1).segment(firstCol + k + 1, n - k - 1);
+ }
+ else
+ {
+ l = m_naiveU.row(1).segment(firstCol, k);
+ f = m_naiveU.row(0).segment(firstCol + k + 1, n - k - 1);
+ }
+ if (m_compV) m_naiveV(firstRowW+k, firstColW) = Literal(1);
+ if (r0<considerZero)
+ {
+ c0 = Literal(1);
+ s0 = Literal(0);
+ }
+ else
+ {
+ c0 = alphaK * lambda / r0;
+ s0 = betaK * phi / r0;
+ }
+
+#ifdef EIGEN_BDCSVD_SANITY_CHECKS
+ assert(m_naiveU.allFinite());
+ assert(m_naiveV.allFinite());
+ assert(m_computed.allFinite());
+#endif
+
+ if (m_compU)
+ {
+ MatrixXr q1 (m_naiveU.col(firstCol + k).segment(firstCol, k + 1));
+ // we shiftW Q1 to the right
+ for (Index i = firstCol + k - 1; i >= firstCol; i--)
+ m_naiveU.col(i + 1).segment(firstCol, k + 1) = m_naiveU.col(i).segment(firstCol, k + 1);
+ // we shift q1 at the left with a factor c0
+ m_naiveU.col(firstCol).segment( firstCol, k + 1) = (q1 * c0);
+ // last column = q1 * - s0
+ m_naiveU.col(lastCol + 1).segment(firstCol, k + 1) = (q1 * ( - s0));
+ // first column = q2 * s0
+ m_naiveU.col(firstCol).segment(firstCol + k + 1, n - k) = m_naiveU.col(lastCol + 1).segment(firstCol + k + 1, n - k) * s0;
+ // q2 *= c0
+ m_naiveU.col(lastCol + 1).segment(firstCol + k + 1, n - k) *= c0;
+ }
+ else
+ {
+ RealScalar q1 = m_naiveU(0, firstCol + k);
+ // we shift Q1 to the right
+ for (Index i = firstCol + k - 1; i >= firstCol; i--)
+ m_naiveU(0, i + 1) = m_naiveU(0, i);
+ // we shift q1 at the left with a factor c0
+ m_naiveU(0, firstCol) = (q1 * c0);
+ // last column = q1 * - s0
+ m_naiveU(0, lastCol + 1) = (q1 * ( - s0));
+ // first column = q2 * s0
+ m_naiveU(1, firstCol) = m_naiveU(1, lastCol + 1) *s0;
+ // q2 *= c0
+ m_naiveU(1, lastCol + 1) *= c0;
+ m_naiveU.row(1).segment(firstCol + 1, k).setZero();
+ m_naiveU.row(0).segment(firstCol + k + 1, n - k - 1).setZero();
+ }
+
+#ifdef EIGEN_BDCSVD_SANITY_CHECKS
+ assert(m_naiveU.allFinite());
+ assert(m_naiveV.allFinite());
+ assert(m_computed.allFinite());
+#endif
+
+ m_computed(firstCol + shift, firstCol + shift) = r0;
+ m_computed.col(firstCol + shift).segment(firstCol + shift + 1, k) = alphaK * l.transpose().real();
+ m_computed.col(firstCol + shift).segment(firstCol + shift + k + 1, n - k - 1) = betaK * f.transpose().real();
+
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ ArrayXr tmp1 = (m_computed.block(firstCol+shift, firstCol+shift, n, n)).jacobiSvd().singularValues();
+#endif
+ // Second part: try to deflate singular values in combined matrix
+ deflation(firstCol, lastCol, k, firstRowW, firstColW, shift);
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ ArrayXr tmp2 = (m_computed.block(firstCol+shift, firstCol+shift, n, n)).jacobiSvd().singularValues();
+ std::cout << "\n\nj1 = " << tmp1.transpose().format(bdcsvdfmt) << "\n";
+ std::cout << "j2 = " << tmp2.transpose().format(bdcsvdfmt) << "\n\n";
+ std::cout << "err: " << ((tmp1-tmp2).abs()>1e-12*tmp2.abs()).transpose() << "\n";
+ static int count = 0;
+ std::cout << "# " << ++count << "\n\n";
+ assert((tmp1-tmp2).matrix().norm() < 1e-14*tmp2.matrix().norm());
+// assert(count<681);
+// assert(((tmp1-tmp2).abs()<1e-13*tmp2.abs()).all());
+#endif
+
+ // Third part: compute SVD of combined matrix
+ MatrixXr UofSVD, VofSVD;
+ VectorType singVals;
+ computeSVDofM(firstCol + shift, n, UofSVD, singVals, VofSVD);
+
+#ifdef EIGEN_BDCSVD_SANITY_CHECKS
+ assert(UofSVD.allFinite());
+ assert(VofSVD.allFinite());
+#endif
+
+ if (m_compU)
+ structured_update(m_naiveU.block(firstCol, firstCol, n + 1, n + 1), UofSVD, (n+2)/2);
+ else
+ {
+ Map<Matrix<RealScalar,2,Dynamic>,Aligned> tmp(m_workspace.data(),2,n+1);
+ tmp.noalias() = m_naiveU.middleCols(firstCol, n+1) * UofSVD;
+ m_naiveU.middleCols(firstCol, n + 1) = tmp;
+ }
+
+ if (m_compV) structured_update(m_naiveV.block(firstRowW, firstColW, n, n), VofSVD, (n+1)/2);
+
+#ifdef EIGEN_BDCSVD_SANITY_CHECKS
+ assert(m_naiveU.allFinite());
+ assert(m_naiveV.allFinite());
+ assert(m_computed.allFinite());
+#endif
+
+ m_computed.block(firstCol + shift, firstCol + shift, n, n).setZero();
+ m_computed.block(firstCol + shift, firstCol + shift, n, n).diagonal() = singVals;
+}// end divide
+
+// Compute SVD of m_computed.block(firstCol, firstCol, n + 1, n); this block only has non-zeros in
+// the first column and on the diagonal and has undergone deflation, so diagonal is in increasing
+// order except for possibly the (0,0) entry. The computed SVD is stored U, singVals and V, except
+// that if m_compV is false, then V is not computed. Singular values are sorted in decreasing order.
+//
+// TODO Opportunities for optimization: better root finding algo, better stopping criterion, better
+// handling of round-off errors, be consistent in ordering
+// For instance, to solve the secular equation using FMM, see http://www.stat.uchicago.edu/~lekheng/courses/302/classics/greengard-rokhlin.pdf
+template <typename MatrixType>
+void BDCSVD<MatrixType>::computeSVDofM(Index firstCol, Index n, MatrixXr& U, VectorType& singVals, MatrixXr& V)
+{
+ const RealScalar considerZero = (std::numeric_limits<RealScalar>::min)();
+ using std::abs;
+ ArrayRef col0 = m_computed.col(firstCol).segment(firstCol, n);
+ m_workspace.head(n) = m_computed.block(firstCol, firstCol, n, n).diagonal();
+ ArrayRef diag = m_workspace.head(n);
+ diag(0) = Literal(0);
+
+ // Allocate space for singular values and vectors
+ singVals.resize(n);
+ U.resize(n+1, n+1);
+ if (m_compV) V.resize(n, n);
+
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ if (col0.hasNaN() || diag.hasNaN())
+ std::cout << "\n\nHAS NAN\n\n";
+#endif
+
+ // Many singular values might have been deflated, the zero ones have been moved to the end,
+ // but others are interleaved and we must ignore them at this stage.
+ // To this end, let's compute a permutation skipping them:
+ Index actual_n = n;
+ while(actual_n>1 && diag(actual_n-1)==Literal(0)) --actual_n;
+ Index m = 0; // size of the deflated problem
+ for(Index k=0;k<actual_n;++k)
+ if(abs(col0(k))>considerZero)
+ m_workspaceI(m++) = k;
+ Map<ArrayXi> perm(m_workspaceI.data(),m);
+
+ Map<ArrayXr> shifts(m_workspace.data()+1*n, n);
+ Map<ArrayXr> mus(m_workspace.data()+2*n, n);
+ Map<ArrayXr> zhat(m_workspace.data()+3*n, n);
+
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ std::cout << "computeSVDofM using:\n";
+ std::cout << " z: " << col0.transpose() << "\n";
+ std::cout << " d: " << diag.transpose() << "\n";
+#endif
+
+ // Compute singVals, shifts, and mus
+ computeSingVals(col0, diag, perm, singVals, shifts, mus);
+
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ std::cout << " j: " << (m_computed.block(firstCol, firstCol, n, n)).jacobiSvd().singularValues().transpose().reverse() << "\n\n";
+ std::cout << " sing-val: " << singVals.transpose() << "\n";
+ std::cout << " mu: " << mus.transpose() << "\n";
+ std::cout << " shift: " << shifts.transpose() << "\n";
+
+ {
+ Index actual_n = n;
+ while(actual_n>1 && abs(col0(actual_n-1))<considerZero) --actual_n;
+ std::cout << "\n\n mus: " << mus.head(actual_n).transpose() << "\n\n";
+ std::cout << " check1 (expect0) : " << ((singVals.array()-(shifts+mus)) / singVals.array()).head(actual_n).transpose() << "\n\n";
+ std::cout << " check2 (>0) : " << ((singVals.array()-diag) / singVals.array()).head(actual_n).transpose() << "\n\n";
+ std::cout << " check3 (>0) : " << ((diag.segment(1,actual_n-1)-singVals.head(actual_n-1).array()) / singVals.head(actual_n-1).array()).transpose() << "\n\n\n";
+ std::cout << " check4 (>0) : " << ((singVals.segment(1,actual_n-1)-singVals.head(actual_n-1))).transpose() << "\n\n\n";
+ }
+#endif
+
+#ifdef EIGEN_BDCSVD_SANITY_CHECKS
+ assert(singVals.allFinite());
+ assert(mus.allFinite());
+ assert(shifts.allFinite());
+#endif
+
+ // Compute zhat
+ perturbCol0(col0, diag, perm, singVals, shifts, mus, zhat);
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ std::cout << " zhat: " << zhat.transpose() << "\n";
+#endif
+
+#ifdef EIGEN_BDCSVD_SANITY_CHECKS
+ assert(zhat.allFinite());
+#endif
+
+ computeSingVecs(zhat, diag, perm, singVals, shifts, mus, U, V);
+
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ std::cout << "U^T U: " << (U.transpose() * U - MatrixXr(MatrixXr::Identity(U.cols(),U.cols()))).norm() << "\n";
+ std::cout << "V^T V: " << (V.transpose() * V - MatrixXr(MatrixXr::Identity(V.cols(),V.cols()))).norm() << "\n";
+#endif
+
+#ifdef EIGEN_BDCSVD_SANITY_CHECKS
+ assert(U.allFinite());
+ assert(V.allFinite());
+ assert((U.transpose() * U - MatrixXr(MatrixXr::Identity(U.cols(),U.cols()))).norm() < 1e-14 * n);
+ assert((V.transpose() * V - MatrixXr(MatrixXr::Identity(V.cols(),V.cols()))).norm() < 1e-14 * n);
+ assert(m_naiveU.allFinite());
+ assert(m_naiveV.allFinite());
+ assert(m_computed.allFinite());
+#endif
+
+ // Because of deflation, the singular values might not be completely sorted.
+ // Fortunately, reordering them is a O(n) problem
+ for(Index i=0; i<actual_n-1; ++i)
+ {
+ if(singVals(i)>singVals(i+1))
+ {
+ using std::swap;
+ swap(singVals(i),singVals(i+1));
+ U.col(i).swap(U.col(i+1));
+ if(m_compV) V.col(i).swap(V.col(i+1));
+ }
+ }
+
+ // Reverse order so that singular values in increased order
+ // Because of deflation, the zeros singular-values are already at the end
+ singVals.head(actual_n).reverseInPlace();
+ U.leftCols(actual_n).rowwise().reverseInPlace();
+ if (m_compV) V.leftCols(actual_n).rowwise().reverseInPlace();
+
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ JacobiSVD<MatrixXr> jsvd(m_computed.block(firstCol, firstCol, n, n) );
+ std::cout << " * j: " << jsvd.singularValues().transpose() << "\n\n";
+ std::cout << " * sing-val: " << singVals.transpose() << "\n";
+// std::cout << " * err: " << ((jsvd.singularValues()-singVals)>1e-13*singVals.norm()).transpose() << "\n";
+#endif
+}
+
+template <typename MatrixType>
+typename BDCSVD<MatrixType>::RealScalar BDCSVD<MatrixType>::secularEq(RealScalar mu, const ArrayRef& col0, const ArrayRef& diag, const IndicesRef &perm, const ArrayRef& diagShifted, RealScalar shift)
+{
+ Index m = perm.size();
+ RealScalar res = Literal(1);
+ for(Index i=0; i<m; ++i)
+ {
+ Index j = perm(i);
+ res += numext::abs2(col0(j)) / ((diagShifted(j) - mu) * (diag(j) + shift + mu));
+ }
+ return res;
+
+}
+
+template <typename MatrixType>
+void BDCSVD<MatrixType>::computeSingVals(const ArrayRef& col0, const ArrayRef& diag, const IndicesRef &perm,
+ VectorType& singVals, ArrayRef shifts, ArrayRef mus)
+{
+ using std::abs;
+ using std::swap;
+
+ Index n = col0.size();
+ Index actual_n = n;
+ while(actual_n>1 && col0(actual_n-1)==Literal(0)) --actual_n;
+
+ for (Index k = 0; k < n; ++k)
+ {
+ if (col0(k) == Literal(0) || actual_n==1)
+ {
+ // if col0(k) == 0, then entry is deflated, so singular value is on diagonal
+ // if actual_n==1, then the deflated problem is already diagonalized
+ singVals(k) = k==0 ? col0(0) : diag(k);
+ mus(k) = Literal(0);
+ shifts(k) = k==0 ? col0(0) : diag(k);
+ continue;
+ }
+
+ // otherwise, use secular equation to find singular value
+ RealScalar left = diag(k);
+ RealScalar right; // was: = (k != actual_n-1) ? diag(k+1) : (diag(actual_n-1) + col0.matrix().norm());
+ if(k==actual_n-1)
+ right = (diag(actual_n-1) + col0.matrix().norm());
+ else
+ {
+ // Skip deflated singular values
+ Index l = k+1;
+ while(col0(l)==Literal(0)) { ++l; eigen_internal_assert(l<actual_n); }
+ right = diag(l);
+ }
+
+ // first decide whether it's closer to the left end or the right end
+ RealScalar mid = left + (right-left) / Literal(2);
+ RealScalar fMid = secularEq(mid, col0, diag, perm, diag, Literal(0));
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ std::cout << right-left << "\n";
+ std::cout << "fMid = " << fMid << " " << secularEq(mid-left, col0, diag, perm, diag-left, left) << " " << secularEq(mid-right, col0, diag, perm, diag-right, right) << "\n";
+ std::cout << " = " << secularEq(0.1*(left+right), col0, diag, perm, diag, 0)
+ << " " << secularEq(0.2*(left+right), col0, diag, perm, diag, 0)
+ << " " << secularEq(0.3*(left+right), col0, diag, perm, diag, 0)
+ << " " << secularEq(0.4*(left+right), col0, diag, perm, diag, 0)
+ << " " << secularEq(0.49*(left+right), col0, diag, perm, diag, 0)
+ << " " << secularEq(0.5*(left+right), col0, diag, perm, diag, 0)
+ << " " << secularEq(0.51*(left+right), col0, diag, perm, diag, 0)
+ << " " << secularEq(0.6*(left+right), col0, diag, perm, diag, 0)
+ << " " << secularEq(0.7*(left+right), col0, diag, perm, diag, 0)
+ << " " << secularEq(0.8*(left+right), col0, diag, perm, diag, 0)
+ << " " << secularEq(0.9*(left+right), col0, diag, perm, diag, 0) << "\n";
+#endif
+ RealScalar shift = (k == actual_n-1 || fMid > Literal(0)) ? left : right;
+
+ // measure everything relative to shift
+ Map<ArrayXr> diagShifted(m_workspace.data()+4*n, n);
+ diagShifted = diag - shift;
+
+ // initial guess
+ RealScalar muPrev, muCur;
+ if (shift == left)
+ {
+ muPrev = (right - left) * RealScalar(0.1);
+ if (k == actual_n-1) muCur = right - left;
+ else muCur = (right - left) * RealScalar(0.5);
+ }
+ else
+ {
+ muPrev = -(right - left) * RealScalar(0.1);
+ muCur = -(right - left) * RealScalar(0.5);
+ }
+
+ RealScalar fPrev = secularEq(muPrev, col0, diag, perm, diagShifted, shift);
+ RealScalar fCur = secularEq(muCur, col0, diag, perm, diagShifted, shift);
+ if (abs(fPrev) < abs(fCur))
+ {
+ swap(fPrev, fCur);
+ swap(muPrev, muCur);
+ }
+
+ // rational interpolation: fit a function of the form a / mu + b through the two previous
+ // iterates and use its zero to compute the next iterate
+ bool useBisection = fPrev*fCur>Literal(0);
+ while (fCur!=Literal(0) && abs(muCur - muPrev) > Literal(8) * NumTraits<RealScalar>::epsilon() * numext::maxi<RealScalar>(abs(muCur), abs(muPrev)) && abs(fCur - fPrev)>NumTraits<RealScalar>::epsilon() && !useBisection)
+ {
+ ++m_numIters;
+
+ // Find a and b such that the function f(mu) = a / mu + b matches the current and previous samples.
+ RealScalar a = (fCur - fPrev) / (Literal(1)/muCur - Literal(1)/muPrev);
+ RealScalar b = fCur - a / muCur;
+ // And find mu such that f(mu)==0:
+ RealScalar muZero = -a/b;
+ RealScalar fZero = secularEq(muZero, col0, diag, perm, diagShifted, shift);
+
+ muPrev = muCur;
+ fPrev = fCur;
+ muCur = muZero;
+ fCur = fZero;
+
+
+ if (shift == left && (muCur < Literal(0) || muCur > right - left)) useBisection = true;
+ if (shift == right && (muCur < -(right - left) || muCur > Literal(0))) useBisection = true;
+ if (abs(fCur)>abs(fPrev)) useBisection = true;
+ }
+
+ // fall back on bisection method if rational interpolation did not work
+ if (useBisection)
+ {
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ std::cout << "useBisection for k = " << k << ", actual_n = " << actual_n << "\n";
+#endif
+ RealScalar leftShifted, rightShifted;
+ if (shift == left)
+ {
+ leftShifted = (std::numeric_limits<RealScalar>::min)();
+ // I don't understand why the case k==0 would be special there:
+ // if (k == 0) rightShifted = right - left; else
+ rightShifted = (k==actual_n-1) ? right : ((right - left) * RealScalar(0.6)); // theoretically we can take 0.5, but let's be safe
+ }
+ else
+ {
+ leftShifted = -(right - left) * RealScalar(0.6);
+ rightShifted = -(std::numeric_limits<RealScalar>::min)();
+ }
+
+ RealScalar fLeft = secularEq(leftShifted, col0, diag, perm, diagShifted, shift);
+
+#if defined EIGEN_INTERNAL_DEBUGGING || defined EIGEN_BDCSVD_DEBUG_VERBOSE
+ RealScalar fRight = secularEq(rightShifted, col0, diag, perm, diagShifted, shift);
+#endif
+
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ if(!(fLeft * fRight<0))
+ {
+ std::cout << "fLeft: " << leftShifted << " - " << diagShifted.head(10).transpose() << "\n ; " << bool(left==shift) << " " << (left-shift) << "\n";
+ std::cout << k << " : " << fLeft << " * " << fRight << " == " << fLeft * fRight << " ; " << left << " - " << right << " -> " << leftShifted << " " << rightShifted << " shift=" << shift << "\n";
+ }
+#endif
+ eigen_internal_assert(fLeft * fRight < Literal(0));
+
+ while (rightShifted - leftShifted > Literal(2) * NumTraits<RealScalar>::epsilon() * numext::maxi<RealScalar>(abs(leftShifted), abs(rightShifted)))
+ {
+ RealScalar midShifted = (leftShifted + rightShifted) / Literal(2);
+ fMid = secularEq(midShifted, col0, diag, perm, diagShifted, shift);
+ if (fLeft * fMid < Literal(0))
+ {
+ rightShifted = midShifted;
+ }
+ else
+ {
+ leftShifted = midShifted;
+ fLeft = fMid;
+ }
+ }
+
+ muCur = (leftShifted + rightShifted) / Literal(2);
+ }
+
+ singVals[k] = shift + muCur;
+ shifts[k] = shift;
+ mus[k] = muCur;
+
+ // perturb singular value slightly if it equals diagonal entry to avoid division by zero later
+ // (deflation is supposed to avoid this from happening)
+ // - this does no seem to be necessary anymore -
+// if (singVals[k] == left) singVals[k] *= 1 + NumTraits<RealScalar>::epsilon();
+// if (singVals[k] == right) singVals[k] *= 1 - NumTraits<RealScalar>::epsilon();
+ }
+}
+
+
+// zhat is perturbation of col0 for which singular vectors can be computed stably (see Section 3.1)
+template <typename MatrixType>
+void BDCSVD<MatrixType>::perturbCol0
+ (const ArrayRef& col0, const ArrayRef& diag, const IndicesRef &perm, const VectorType& singVals,
+ const ArrayRef& shifts, const ArrayRef& mus, ArrayRef zhat)
+{
+ using std::sqrt;
+ Index n = col0.size();
+ Index m = perm.size();
+ if(m==0)
+ {
+ zhat.setZero();
+ return;
+ }
+ Index last = perm(m-1);
+ // The offset permits to skip deflated entries while computing zhat
+ for (Index k = 0; k < n; ++k)
+ {
+ if (col0(k) == Literal(0)) // deflated
+ zhat(k) = Literal(0);
+ else
+ {
+ // see equation (3.6)
+ RealScalar dk = diag(k);
+ RealScalar prod = (singVals(last) + dk) * (mus(last) + (shifts(last) - dk));
+
+ for(Index l = 0; l<m; ++l)
+ {
+ Index i = perm(l);
+ if(i!=k)
+ {
+ Index j = i<k ? i : perm(l-1);
+ prod *= ((singVals(j)+dk) / ((diag(i)+dk))) * ((mus(j)+(shifts(j)-dk)) / ((diag(i)-dk)));
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ if(i!=k && std::abs(((singVals(j)+dk)*(mus(j)+(shifts(j)-dk)))/((diag(i)+dk)*(diag(i)-dk)) - 1) > 0.9 )
+ std::cout << " " << ((singVals(j)+dk)*(mus(j)+(shifts(j)-dk)))/((diag(i)+dk)*(diag(i)-dk)) << " == (" << (singVals(j)+dk) << " * " << (mus(j)+(shifts(j)-dk))
+ << ") / (" << (diag(i)+dk) << " * " << (diag(i)-dk) << ")\n";
+#endif
+ }
+ }
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ std::cout << "zhat(" << k << ") = sqrt( " << prod << ") ; " << (singVals(last) + dk) << " * " << mus(last) + shifts(last) << " - " << dk << "\n";
+#endif
+ RealScalar tmp = sqrt(prod);
+ zhat(k) = col0(k) > Literal(0) ? tmp : -tmp;
+ }
+ }
+}
+
+// compute singular vectors
+template <typename MatrixType>
+void BDCSVD<MatrixType>::computeSingVecs
+ (const ArrayRef& zhat, const ArrayRef& diag, const IndicesRef &perm, const VectorType& singVals,
+ const ArrayRef& shifts, const ArrayRef& mus, MatrixXr& U, MatrixXr& V)
+{
+ Index n = zhat.size();
+ Index m = perm.size();
+
+ for (Index k = 0; k < n; ++k)
+ {
+ if (zhat(k) == Literal(0))
+ {
+ U.col(k) = VectorType::Unit(n+1, k);
+ if (m_compV) V.col(k) = VectorType::Unit(n, k);
+ }
+ else
+ {
+ U.col(k).setZero();
+ for(Index l=0;l<m;++l)
+ {
+ Index i = perm(l);
+ U(i,k) = zhat(i)/(((diag(i) - shifts(k)) - mus(k)) )/( (diag(i) + singVals[k]));
+ }
+ U(n,k) = Literal(0);
+ U.col(k).normalize();
+
+ if (m_compV)
+ {
+ V.col(k).setZero();
+ for(Index l=1;l<m;++l)
+ {
+ Index i = perm(l);
+ V(i,k) = diag(i) * zhat(i) / (((diag(i) - shifts(k)) - mus(k)) )/( (diag(i) + singVals[k]));
+ }
+ V(0,k) = Literal(-1);
+ V.col(k).normalize();
+ }
+ }
+ }
+ U.col(n) = VectorType::Unit(n+1, n);
+}
+
+
+// page 12_13
+// i >= 1, di almost null and zi non null.
+// We use a rotation to zero out zi applied to the left of M
+template <typename MatrixType>
+void BDCSVD<MatrixType>::deflation43(Index firstCol, Index shift, Index i, Index size)
+{
+ using std::abs;
+ using std::sqrt;
+ using std::pow;
+ Index start = firstCol + shift;
+ RealScalar c = m_computed(start, start);
+ RealScalar s = m_computed(start+i, start);
+ RealScalar r = sqrt(numext::abs2(c) + numext::abs2(s));
+ if (r == Literal(0))
+ {
+ m_computed(start+i, start+i) = Literal(0);
+ return;
+ }
+ m_computed(start,start) = r;
+ m_computed(start+i, start) = Literal(0);
+ m_computed(start+i, start+i) = Literal(0);
+
+ JacobiRotation<RealScalar> J(c/r,-s/r);
+ if (m_compU) m_naiveU.middleRows(firstCol, size+1).applyOnTheRight(firstCol, firstCol+i, J);
+ else m_naiveU.applyOnTheRight(firstCol, firstCol+i, J);
+}// end deflation 43
+
+
+// page 13
+// i,j >= 1, i!=j and |di - dj| < epsilon * norm2(M)
+// We apply two rotations to have zj = 0;
+// TODO deflation44 is still broken and not properly tested
+template <typename MatrixType>
+void BDCSVD<MatrixType>::deflation44(Index firstColu , Index firstColm, Index firstRowW, Index firstColW, Index i, Index j, Index size)
+{
+ using std::abs;
+ using std::sqrt;
+ using std::conj;
+ using std::pow;
+ RealScalar c = m_computed(firstColm+i, firstColm);
+ RealScalar s = m_computed(firstColm+j, firstColm);
+ RealScalar r = sqrt(numext::abs2(c) + numext::abs2(s));
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ std::cout << "deflation 4.4: " << i << "," << j << " -> " << c << " " << s << " " << r << " ; "
+ << m_computed(firstColm + i-1, firstColm) << " "
+ << m_computed(firstColm + i, firstColm) << " "
+ << m_computed(firstColm + i+1, firstColm) << " "
+ << m_computed(firstColm + i+2, firstColm) << "\n";
+ std::cout << m_computed(firstColm + i-1, firstColm + i-1) << " "
+ << m_computed(firstColm + i, firstColm+i) << " "
+ << m_computed(firstColm + i+1, firstColm+i+1) << " "
+ << m_computed(firstColm + i+2, firstColm+i+2) << "\n";
+#endif
+ if (r==Literal(0))
+ {
+ m_computed(firstColm + i, firstColm + i) = m_computed(firstColm + j, firstColm + j);
+ return;
+ }
+ c/=r;
+ s/=r;
+ m_computed(firstColm + i, firstColm) = r;
+ m_computed(firstColm + j, firstColm + j) = m_computed(firstColm + i, firstColm + i);
+ m_computed(firstColm + j, firstColm) = Literal(0);
+
+ JacobiRotation<RealScalar> J(c,-s);
+ if (m_compU) m_naiveU.middleRows(firstColu, size+1).applyOnTheRight(firstColu + i, firstColu + j, J);
+ else m_naiveU.applyOnTheRight(firstColu+i, firstColu+j, J);
+ if (m_compV) m_naiveV.middleRows(firstRowW, size).applyOnTheRight(firstColW + i, firstColW + j, J);
+}// end deflation 44
+
+
+// acts on block from (firstCol+shift, firstCol+shift) to (lastCol+shift, lastCol+shift) [inclusive]
+template <typename MatrixType>
+void BDCSVD<MatrixType>::deflation(Index firstCol, Index lastCol, Index k, Index firstRowW, Index firstColW, Index shift)
+{
+ using std::sqrt;
+ using std::abs;
+ const Index length = lastCol + 1 - firstCol;
+
+ Block<MatrixXr,Dynamic,1> col0(m_computed, firstCol+shift, firstCol+shift, length, 1);
+ Diagonal<MatrixXr> fulldiag(m_computed);
+ VectorBlock<Diagonal<MatrixXr>,Dynamic> diag(fulldiag, firstCol+shift, length);
+
+ const RealScalar considerZero = (std::numeric_limits<RealScalar>::min)();
+ RealScalar maxDiag = diag.tail((std::max)(Index(1),length-1)).cwiseAbs().maxCoeff();
+ RealScalar epsilon_strict = numext::maxi<RealScalar>(considerZero,NumTraits<RealScalar>::epsilon() * maxDiag);
+ RealScalar epsilon_coarse = Literal(8) * NumTraits<RealScalar>::epsilon() * numext::maxi<RealScalar>(col0.cwiseAbs().maxCoeff(), maxDiag);
+
+#ifdef EIGEN_BDCSVD_SANITY_CHECKS
+ assert(m_naiveU.allFinite());
+ assert(m_naiveV.allFinite());
+ assert(m_computed.allFinite());
+#endif
+
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ std::cout << "\ndeflate:" << diag.head(k+1).transpose() << " | " << diag.segment(k+1,length-k-1).transpose() << "\n";
+#endif
+
+ //condition 4.1
+ if (diag(0) < epsilon_coarse)
+ {
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ std::cout << "deflation 4.1, because " << diag(0) << " < " << epsilon_coarse << "\n";
+#endif
+ diag(0) = epsilon_coarse;
+ }
+
+ //condition 4.2
+ for (Index i=1;i<length;++i)
+ if (abs(col0(i)) < epsilon_strict)
+ {
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ std::cout << "deflation 4.2, set z(" << i << ") to zero because " << abs(col0(i)) << " < " << epsilon_strict << " (diag(" << i << ")=" << diag(i) << ")\n";
+#endif
+ col0(i) = Literal(0);
+ }
+
+ //condition 4.3
+ for (Index i=1;i<length; i++)
+ if (diag(i) < epsilon_coarse)
+ {
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ std::cout << "deflation 4.3, cancel z(" << i << ")=" << col0(i) << " because diag(" << i << ")=" << diag(i) << " < " << epsilon_coarse << "\n";
+#endif
+ deflation43(firstCol, shift, i, length);
+ }
+
+#ifdef EIGEN_BDCSVD_SANITY_CHECKS
+ assert(m_naiveU.allFinite());
+ assert(m_naiveV.allFinite());
+ assert(m_computed.allFinite());
+#endif
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ std::cout << "to be sorted: " << diag.transpose() << "\n\n";
+#endif
+ {
+ // Check for total deflation
+ // If we have a total deflation, then we have to consider col0(0)==diag(0) as a singular value during sorting
+ bool total_deflation = (col0.tail(length-1).array()<considerZero).all();
+
+ // Sort the diagonal entries, since diag(1:k-1) and diag(k:length) are already sorted, let's do a sorted merge.
+ // First, compute the respective permutation.
+ Index *permutation = m_workspaceI.data();
+ {
+ permutation[0] = 0;
+ Index p = 1;
+
+ // Move deflated diagonal entries at the end.
+ for(Index i=1; i<length; ++i)
+ if(abs(diag(i))<considerZero)
+ permutation[p++] = i;
+
+ Index i=1, j=k+1;
+ for( ; p < length; ++p)
+ {
+ if (i > k) permutation[p] = j++;
+ else if (j >= length) permutation[p] = i++;
+ else if (diag(i) < diag(j)) permutation[p] = j++;
+ else permutation[p] = i++;
+ }
+ }
+
+ // If we have a total deflation, then we have to insert diag(0) at the right place
+ if(total_deflation)
+ {
+ for(Index i=1; i<length; ++i)
+ {
+ Index pi = permutation[i];
+ if(abs(diag(pi))<considerZero || diag(0)<diag(pi))
+ permutation[i-1] = permutation[i];
+ else
+ {
+ permutation[i-1] = 0;
+ break;
+ }
+ }
+ }
+
+ // Current index of each col, and current column of each index
+ Index *realInd = m_workspaceI.data()+length;
+ Index *realCol = m_workspaceI.data()+2*length;
+
+ for(int pos = 0; pos< length; pos++)
+ {
+ realCol[pos] = pos;
+ realInd[pos] = pos;
+ }
+
+ for(Index i = total_deflation?0:1; i < length; i++)
+ {
+ const Index pi = permutation[length - (total_deflation ? i+1 : i)];
+ const Index J = realCol[pi];
+
+ using std::swap;
+ // swap diagonal and first column entries:
+ swap(diag(i), diag(J));
+ if(i!=0 && J!=0) swap(col0(i), col0(J));
+
+ // change columns
+ if (m_compU) m_naiveU.col(firstCol+i).segment(firstCol, length + 1).swap(m_naiveU.col(firstCol+J).segment(firstCol, length + 1));
+ else m_naiveU.col(firstCol+i).segment(0, 2) .swap(m_naiveU.col(firstCol+J).segment(0, 2));
+ if (m_compV) m_naiveV.col(firstColW + i).segment(firstRowW, length).swap(m_naiveV.col(firstColW + J).segment(firstRowW, length));
+
+ //update real pos
+ const Index realI = realInd[i];
+ realCol[realI] = J;
+ realCol[pi] = i;
+ realInd[J] = realI;
+ realInd[i] = pi;
+ }
+ }
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ std::cout << "sorted: " << diag.transpose().format(bdcsvdfmt) << "\n";
+ std::cout << " : " << col0.transpose() << "\n\n";
+#endif
+
+ //condition 4.4
+ {
+ Index i = length-1;
+ while(i>0 && (abs(diag(i))<considerZero || abs(col0(i))<considerZero)) --i;
+ for(; i>1;--i)
+ if( (diag(i) - diag(i-1)) < NumTraits<RealScalar>::epsilon()*maxDiag )
+ {
+#ifdef EIGEN_BDCSVD_DEBUG_VERBOSE
+ std::cout << "deflation 4.4 with i = " << i << " because " << (diag(i) - diag(i-1)) << " < " << NumTraits<RealScalar>::epsilon()*diag(i) << "\n";
+#endif
+ eigen_internal_assert(abs(diag(i) - diag(i-1))<epsilon_coarse && " diagonal entries are not properly sorted");
+ deflation44(firstCol, firstCol + shift, firstRowW, firstColW, i-1, i, length);
+ }
+ }
+
+#ifdef EIGEN_BDCSVD_SANITY_CHECKS
+ for(Index j=2;j<length;++j)
+ assert(diag(j-1)<=diag(j) || abs(diag(j))<considerZero);
+#endif
+
+#ifdef EIGEN_BDCSVD_SANITY_CHECKS
+ assert(m_naiveU.allFinite());
+ assert(m_naiveV.allFinite());
+ assert(m_computed.allFinite());
+#endif
+}//end deflation
+
+#ifndef __CUDACC__
+/** \svd_module
+ *
+ * \return the singular value decomposition of \c *this computed by Divide & Conquer algorithm
+ *
+ * \sa class BDCSVD
+ */
+template<typename Derived>
+BDCSVD<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::bdcSvd(unsigned int computationOptions) const
+{
+ return BDCSVD<PlainObject>(*this, computationOptions);
+}
+#endif
+
+} // end namespace Eigen
+
+#endif
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SVD/JacobiSVD.h b/runtimes/nn/depend/external/eigen/Eigen/src/SVD/JacobiSVD.h
new file mode 100644
index 000000000..43488b1e0
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SVD/JacobiSVD.h
@@ -0,0 +1,804 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2013-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_JACOBISVD_H
+#define EIGEN_JACOBISVD_H
+
+namespace Eigen {
+
+namespace internal {
+// forward declaration (needed by ICC)
+// the empty body is required by MSVC
+template<typename MatrixType, int QRPreconditioner,
+ bool IsComplex = NumTraits<typename MatrixType::Scalar>::IsComplex>
+struct svd_precondition_2x2_block_to_be_real {};
+
+/*** QR preconditioners (R-SVD)
+ ***
+ *** Their role is to reduce the problem of computing the SVD to the case of a square matrix.
+ *** This approach, known as R-SVD, is an optimization for rectangular-enough matrices, and is a requirement for
+ *** JacobiSVD which by itself is only able to work on square matrices.
+ ***/
+
+enum { PreconditionIfMoreColsThanRows, PreconditionIfMoreRowsThanCols };
+
+template<typename MatrixType, int QRPreconditioner, int Case>
+struct qr_preconditioner_should_do_anything
+{
+ enum { a = MatrixType::RowsAtCompileTime != Dynamic &&
+ MatrixType::ColsAtCompileTime != Dynamic &&
+ MatrixType::ColsAtCompileTime <= MatrixType::RowsAtCompileTime,
+ b = MatrixType::RowsAtCompileTime != Dynamic &&
+ MatrixType::ColsAtCompileTime != Dynamic &&
+ MatrixType::RowsAtCompileTime <= MatrixType::ColsAtCompileTime,
+ ret = !( (QRPreconditioner == NoQRPreconditioner) ||
+ (Case == PreconditionIfMoreColsThanRows && bool(a)) ||
+ (Case == PreconditionIfMoreRowsThanCols && bool(b)) )
+ };
+};
+
+template<typename MatrixType, int QRPreconditioner, int Case,
+ bool DoAnything = qr_preconditioner_should_do_anything<MatrixType, QRPreconditioner, Case>::ret
+> struct qr_preconditioner_impl {};
+
+template<typename MatrixType, int QRPreconditioner, int Case>
+class qr_preconditioner_impl<MatrixType, QRPreconditioner, Case, false>
+{
+public:
+ void allocate(const JacobiSVD<MatrixType, QRPreconditioner>&) {}
+ bool run(JacobiSVD<MatrixType, QRPreconditioner>&, const MatrixType&)
+ {
+ return false;
+ }
+};
+
+/*** preconditioner using FullPivHouseholderQR ***/
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, FullPivHouseholderQRPreconditioner, PreconditionIfMoreRowsThanCols, true>
+{
+public:
+ typedef typename MatrixType::Scalar Scalar;
+ enum
+ {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime
+ };
+ typedef Matrix<Scalar, 1, RowsAtCompileTime, RowMajor, 1, MaxRowsAtCompileTime> WorkspaceType;
+
+ void allocate(const JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd)
+ {
+ if (svd.rows() != m_qr.rows() || svd.cols() != m_qr.cols())
+ {
+ m_qr.~QRType();
+ ::new (&m_qr) QRType(svd.rows(), svd.cols());
+ }
+ if (svd.m_computeFullU) m_workspace.resize(svd.rows());
+ }
+
+ bool run(JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+ {
+ if(matrix.rows() > matrix.cols())
+ {
+ m_qr.compute(matrix);
+ svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.cols(),matrix.cols()).template triangularView<Upper>();
+ if(svd.m_computeFullU) m_qr.matrixQ().evalTo(svd.m_matrixU, m_workspace);
+ if(svd.computeV()) svd.m_matrixV = m_qr.colsPermutation();
+ return true;
+ }
+ return false;
+ }
+private:
+ typedef FullPivHouseholderQR<MatrixType> QRType;
+ QRType m_qr;
+ WorkspaceType m_workspace;
+};
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, FullPivHouseholderQRPreconditioner, PreconditionIfMoreColsThanRows, true>
+{
+public:
+ typedef typename MatrixType::Scalar Scalar;
+ enum
+ {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+ TrOptions = RowsAtCompileTime==1 ? (MatrixType::Options & ~(RowMajor))
+ : ColsAtCompileTime==1 ? (MatrixType::Options | RowMajor)
+ : MatrixType::Options
+ };
+ typedef Matrix<Scalar, ColsAtCompileTime, RowsAtCompileTime, TrOptions, MaxColsAtCompileTime, MaxRowsAtCompileTime>
+ TransposeTypeWithSameStorageOrder;
+
+ void allocate(const JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd)
+ {
+ if (svd.cols() != m_qr.rows() || svd.rows() != m_qr.cols())
+ {
+ m_qr.~QRType();
+ ::new (&m_qr) QRType(svd.cols(), svd.rows());
+ }
+ m_adjoint.resize(svd.cols(), svd.rows());
+ if (svd.m_computeFullV) m_workspace.resize(svd.cols());
+ }
+
+ bool run(JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+ {
+ if(matrix.cols() > matrix.rows())
+ {
+ m_adjoint = matrix.adjoint();
+ m_qr.compute(m_adjoint);
+ svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.rows(),matrix.rows()).template triangularView<Upper>().adjoint();
+ if(svd.m_computeFullV) m_qr.matrixQ().evalTo(svd.m_matrixV, m_workspace);
+ if(svd.computeU()) svd.m_matrixU = m_qr.colsPermutation();
+ return true;
+ }
+ else return false;
+ }
+private:
+ typedef FullPivHouseholderQR<TransposeTypeWithSameStorageOrder> QRType;
+ QRType m_qr;
+ TransposeTypeWithSameStorageOrder m_adjoint;
+ typename internal::plain_row_type<MatrixType>::type m_workspace;
+};
+
+/*** preconditioner using ColPivHouseholderQR ***/
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, ColPivHouseholderQRPreconditioner, PreconditionIfMoreRowsThanCols, true>
+{
+public:
+ void allocate(const JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd)
+ {
+ if (svd.rows() != m_qr.rows() || svd.cols() != m_qr.cols())
+ {
+ m_qr.~QRType();
+ ::new (&m_qr) QRType(svd.rows(), svd.cols());
+ }
+ if (svd.m_computeFullU) m_workspace.resize(svd.rows());
+ else if (svd.m_computeThinU) m_workspace.resize(svd.cols());
+ }
+
+ bool run(JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+ {
+ if(matrix.rows() > matrix.cols())
+ {
+ m_qr.compute(matrix);
+ svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.cols(),matrix.cols()).template triangularView<Upper>();
+ if(svd.m_computeFullU) m_qr.householderQ().evalTo(svd.m_matrixU, m_workspace);
+ else if(svd.m_computeThinU)
+ {
+ svd.m_matrixU.setIdentity(matrix.rows(), matrix.cols());
+ m_qr.householderQ().applyThisOnTheLeft(svd.m_matrixU, m_workspace);
+ }
+ if(svd.computeV()) svd.m_matrixV = m_qr.colsPermutation();
+ return true;
+ }
+ return false;
+ }
+
+private:
+ typedef ColPivHouseholderQR<MatrixType> QRType;
+ QRType m_qr;
+ typename internal::plain_col_type<MatrixType>::type m_workspace;
+};
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, ColPivHouseholderQRPreconditioner, PreconditionIfMoreColsThanRows, true>
+{
+public:
+ typedef typename MatrixType::Scalar Scalar;
+ enum
+ {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+ TrOptions = RowsAtCompileTime==1 ? (MatrixType::Options & ~(RowMajor))
+ : ColsAtCompileTime==1 ? (MatrixType::Options | RowMajor)
+ : MatrixType::Options
+ };
+
+ typedef Matrix<Scalar, ColsAtCompileTime, RowsAtCompileTime, TrOptions, MaxColsAtCompileTime, MaxRowsAtCompileTime>
+ TransposeTypeWithSameStorageOrder;
+
+ void allocate(const JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd)
+ {
+ if (svd.cols() != m_qr.rows() || svd.rows() != m_qr.cols())
+ {
+ m_qr.~QRType();
+ ::new (&m_qr) QRType(svd.cols(), svd.rows());
+ }
+ if (svd.m_computeFullV) m_workspace.resize(svd.cols());
+ else if (svd.m_computeThinV) m_workspace.resize(svd.rows());
+ m_adjoint.resize(svd.cols(), svd.rows());
+ }
+
+ bool run(JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+ {
+ if(matrix.cols() > matrix.rows())
+ {
+ m_adjoint = matrix.adjoint();
+ m_qr.compute(m_adjoint);
+
+ svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.rows(),matrix.rows()).template triangularView<Upper>().adjoint();
+ if(svd.m_computeFullV) m_qr.householderQ().evalTo(svd.m_matrixV, m_workspace);
+ else if(svd.m_computeThinV)
+ {
+ svd.m_matrixV.setIdentity(matrix.cols(), matrix.rows());
+ m_qr.householderQ().applyThisOnTheLeft(svd.m_matrixV, m_workspace);
+ }
+ if(svd.computeU()) svd.m_matrixU = m_qr.colsPermutation();
+ return true;
+ }
+ else return false;
+ }
+
+private:
+ typedef ColPivHouseholderQR<TransposeTypeWithSameStorageOrder> QRType;
+ QRType m_qr;
+ TransposeTypeWithSameStorageOrder m_adjoint;
+ typename internal::plain_row_type<MatrixType>::type m_workspace;
+};
+
+/*** preconditioner using HouseholderQR ***/
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, HouseholderQRPreconditioner, PreconditionIfMoreRowsThanCols, true>
+{
+public:
+ void allocate(const JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd)
+ {
+ if (svd.rows() != m_qr.rows() || svd.cols() != m_qr.cols())
+ {
+ m_qr.~QRType();
+ ::new (&m_qr) QRType(svd.rows(), svd.cols());
+ }
+ if (svd.m_computeFullU) m_workspace.resize(svd.rows());
+ else if (svd.m_computeThinU) m_workspace.resize(svd.cols());
+ }
+
+ bool run(JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+ {
+ if(matrix.rows() > matrix.cols())
+ {
+ m_qr.compute(matrix);
+ svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.cols(),matrix.cols()).template triangularView<Upper>();
+ if(svd.m_computeFullU) m_qr.householderQ().evalTo(svd.m_matrixU, m_workspace);
+ else if(svd.m_computeThinU)
+ {
+ svd.m_matrixU.setIdentity(matrix.rows(), matrix.cols());
+ m_qr.householderQ().applyThisOnTheLeft(svd.m_matrixU, m_workspace);
+ }
+ if(svd.computeV()) svd.m_matrixV.setIdentity(matrix.cols(), matrix.cols());
+ return true;
+ }
+ return false;
+ }
+private:
+ typedef HouseholderQR<MatrixType> QRType;
+ QRType m_qr;
+ typename internal::plain_col_type<MatrixType>::type m_workspace;
+};
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, HouseholderQRPreconditioner, PreconditionIfMoreColsThanRows, true>
+{
+public:
+ typedef typename MatrixType::Scalar Scalar;
+ enum
+ {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+ Options = MatrixType::Options
+ };
+
+ typedef Matrix<Scalar, ColsAtCompileTime, RowsAtCompileTime, Options, MaxColsAtCompileTime, MaxRowsAtCompileTime>
+ TransposeTypeWithSameStorageOrder;
+
+ void allocate(const JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd)
+ {
+ if (svd.cols() != m_qr.rows() || svd.rows() != m_qr.cols())
+ {
+ m_qr.~QRType();
+ ::new (&m_qr) QRType(svd.cols(), svd.rows());
+ }
+ if (svd.m_computeFullV) m_workspace.resize(svd.cols());
+ else if (svd.m_computeThinV) m_workspace.resize(svd.rows());
+ m_adjoint.resize(svd.cols(), svd.rows());
+ }
+
+ bool run(JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+ {
+ if(matrix.cols() > matrix.rows())
+ {
+ m_adjoint = matrix.adjoint();
+ m_qr.compute(m_adjoint);
+
+ svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.rows(),matrix.rows()).template triangularView<Upper>().adjoint();
+ if(svd.m_computeFullV) m_qr.householderQ().evalTo(svd.m_matrixV, m_workspace);
+ else if(svd.m_computeThinV)
+ {
+ svd.m_matrixV.setIdentity(matrix.cols(), matrix.rows());
+ m_qr.householderQ().applyThisOnTheLeft(svd.m_matrixV, m_workspace);
+ }
+ if(svd.computeU()) svd.m_matrixU.setIdentity(matrix.rows(), matrix.rows());
+ return true;
+ }
+ else return false;
+ }
+
+private:
+ typedef HouseholderQR<TransposeTypeWithSameStorageOrder> QRType;
+ QRType m_qr;
+ TransposeTypeWithSameStorageOrder m_adjoint;
+ typename internal::plain_row_type<MatrixType>::type m_workspace;
+};
+
+/*** 2x2 SVD implementation
+ ***
+ *** JacobiSVD consists in performing a series of 2x2 SVD subproblems
+ ***/
+
+template<typename MatrixType, int QRPreconditioner>
+struct svd_precondition_2x2_block_to_be_real<MatrixType, QRPreconditioner, false>
+{
+ typedef JacobiSVD<MatrixType, QRPreconditioner> SVD;
+ typedef typename MatrixType::RealScalar RealScalar;
+ static bool run(typename SVD::WorkMatrixType&, SVD&, Index, Index, RealScalar&) { return true; }
+};
+
+template<typename MatrixType, int QRPreconditioner>
+struct svd_precondition_2x2_block_to_be_real<MatrixType, QRPreconditioner, true>
+{
+ typedef JacobiSVD<MatrixType, QRPreconditioner> SVD;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ static bool run(typename SVD::WorkMatrixType& work_matrix, SVD& svd, Index p, Index q, RealScalar& maxDiagEntry)
+ {
+ using std::sqrt;
+ using std::abs;
+ Scalar z;
+ JacobiRotation<Scalar> rot;
+ RealScalar n = sqrt(numext::abs2(work_matrix.coeff(p,p)) + numext::abs2(work_matrix.coeff(q,p)));
+
+ const RealScalar considerAsZero = (std::numeric_limits<RealScalar>::min)();
+ const RealScalar precision = NumTraits<Scalar>::epsilon();
+
+ if(n==0)
+ {
+ // make sure first column is zero
+ work_matrix.coeffRef(p,p) = work_matrix.coeffRef(q,p) = Scalar(0);
+
+ if(abs(numext::imag(work_matrix.coeff(p,q)))>considerAsZero)
+ {
+ // work_matrix.coeff(p,q) can be zero if work_matrix.coeff(q,p) is not zero but small enough to underflow when computing n
+ z = abs(work_matrix.coeff(p,q)) / work_matrix.coeff(p,q);
+ work_matrix.row(p) *= z;
+ if(svd.computeU()) svd.m_matrixU.col(p) *= conj(z);
+ }
+ if(abs(numext::imag(work_matrix.coeff(q,q)))>considerAsZero)
+ {
+ z = abs(work_matrix.coeff(q,q)) / work_matrix.coeff(q,q);
+ work_matrix.row(q) *= z;
+ if(svd.computeU()) svd.m_matrixU.col(q) *= conj(z);
+ }
+ // otherwise the second row is already zero, so we have nothing to do.
+ }
+ else
+ {
+ rot.c() = conj(work_matrix.coeff(p,p)) / n;
+ rot.s() = work_matrix.coeff(q,p) / n;
+ work_matrix.applyOnTheLeft(p,q,rot);
+ if(svd.computeU()) svd.m_matrixU.applyOnTheRight(p,q,rot.adjoint());
+ if(abs(numext::imag(work_matrix.coeff(p,q)))>considerAsZero)
+ {
+ z = abs(work_matrix.coeff(p,q)) / work_matrix.coeff(p,q);
+ work_matrix.col(q) *= z;
+ if(svd.computeV()) svd.m_matrixV.col(q) *= z;
+ }
+ if(abs(numext::imag(work_matrix.coeff(q,q)))>considerAsZero)
+ {
+ z = abs(work_matrix.coeff(q,q)) / work_matrix.coeff(q,q);
+ work_matrix.row(q) *= z;
+ if(svd.computeU()) svd.m_matrixU.col(q) *= conj(z);
+ }
+ }
+
+ // update largest diagonal entry
+ maxDiagEntry = numext::maxi<RealScalar>(maxDiagEntry,numext::maxi<RealScalar>(abs(work_matrix.coeff(p,p)), abs(work_matrix.coeff(q,q))));
+ // and check whether the 2x2 block is already diagonal
+ RealScalar threshold = numext::maxi<RealScalar>(considerAsZero, precision * maxDiagEntry);
+ return abs(work_matrix.coeff(p,q))>threshold || abs(work_matrix.coeff(q,p)) > threshold;
+ }
+};
+
+template<typename _MatrixType, int QRPreconditioner>
+struct traits<JacobiSVD<_MatrixType,QRPreconditioner> >
+{
+ typedef _MatrixType MatrixType;
+};
+
+} // end namespace internal
+
+/** \ingroup SVD_Module
+ *
+ *
+ * \class JacobiSVD
+ *
+ * \brief Two-sided Jacobi SVD decomposition of a rectangular matrix
+ *
+ * \tparam _MatrixType the type of the matrix of which we are computing the SVD decomposition
+ * \tparam QRPreconditioner this optional parameter allows to specify the type of QR decomposition that will be used internally
+ * for the R-SVD step for non-square matrices. See discussion of possible values below.
+ *
+ * SVD decomposition consists in decomposing any n-by-p matrix \a A as a product
+ * \f[ A = U S V^* \f]
+ * where \a U is a n-by-n unitary, \a V is a p-by-p unitary, and \a S is a n-by-p real positive matrix which is zero outside of its main diagonal;
+ * the diagonal entries of S are known as the \em singular \em values of \a A and the columns of \a U and \a V are known as the left
+ * and right \em singular \em vectors of \a A respectively.
+ *
+ * Singular values are always sorted in decreasing order.
+ *
+ * This JacobiSVD decomposition computes only the singular values by default. If you want \a U or \a V, you need to ask for them explicitly.
+ *
+ * You can ask for only \em thin \a U or \a V to be computed, meaning the following. In case of a rectangular n-by-p matrix, letting \a m be the
+ * smaller value among \a n and \a p, there are only \a m singular vectors; the remaining columns of \a U and \a V do not correspond to actual
+ * singular vectors. Asking for \em thin \a U or \a V means asking for only their \a m first columns to be formed. So \a U is then a n-by-m matrix,
+ * and \a V is then a p-by-m matrix. Notice that thin \a U and \a V are all you need for (least squares) solving.
+ *
+ * Here's an example demonstrating basic usage:
+ * \include JacobiSVD_basic.cpp
+ * Output: \verbinclude JacobiSVD_basic.out
+ *
+ * This JacobiSVD class is a two-sided Jacobi R-SVD decomposition, ensuring optimal reliability and accuracy. The downside is that it's slower than
+ * bidiagonalizing SVD algorithms for large square matrices; however its complexity is still \f$ O(n^2p) \f$ where \a n is the smaller dimension and
+ * \a p is the greater dimension, meaning that it is still of the same order of complexity as the faster bidiagonalizing R-SVD algorithms.
+ * In particular, like any R-SVD, it takes advantage of non-squareness in that its complexity is only linear in the greater dimension.
+ *
+ * If the input matrix has inf or nan coefficients, the result of the computation is undefined, but the computation is guaranteed to
+ * terminate in finite (and reasonable) time.
+ *
+ * The possible values for QRPreconditioner are:
+ * \li ColPivHouseholderQRPreconditioner is the default. In practice it's very safe. It uses column-pivoting QR.
+ * \li FullPivHouseholderQRPreconditioner, is the safest and slowest. It uses full-pivoting QR.
+ * Contrary to other QRs, it doesn't allow computing thin unitaries.
+ * \li HouseholderQRPreconditioner is the fastest, and less safe and accurate than the pivoting variants. It uses non-pivoting QR.
+ * This is very similar in safety and accuracy to the bidiagonalization process used by bidiagonalizing SVD algorithms (since bidiagonalization
+ * is inherently non-pivoting). However the resulting SVD is still more reliable than bidiagonalizing SVDs because the Jacobi-based iterarive
+ * process is more reliable than the optimized bidiagonal SVD iterations.
+ * \li NoQRPreconditioner allows not to use a QR preconditioner at all. This is useful if you know that you will only be computing
+ * JacobiSVD decompositions of square matrices. Non-square matrices require a QR preconditioner. Using this option will result in
+ * faster compilation and smaller executable code. It won't significantly speed up computation, since JacobiSVD is always checking
+ * if QR preconditioning is needed before applying it anyway.
+ *
+ * \sa MatrixBase::jacobiSvd()
+ */
+template<typename _MatrixType, int QRPreconditioner> class JacobiSVD
+ : public SVDBase<JacobiSVD<_MatrixType,QRPreconditioner> >
+{
+ typedef SVDBase<JacobiSVD> Base;
+ public:
+
+ typedef _MatrixType MatrixType;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+ enum {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ DiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_DYNAMIC(RowsAtCompileTime,ColsAtCompileTime),
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+ MaxDiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(MaxRowsAtCompileTime,MaxColsAtCompileTime),
+ MatrixOptions = MatrixType::Options
+ };
+
+ typedef typename Base::MatrixUType MatrixUType;
+ typedef typename Base::MatrixVType MatrixVType;
+ typedef typename Base::SingularValuesType SingularValuesType;
+
+ typedef typename internal::plain_row_type<MatrixType>::type RowType;
+ typedef typename internal::plain_col_type<MatrixType>::type ColType;
+ typedef Matrix<Scalar, DiagSizeAtCompileTime, DiagSizeAtCompileTime,
+ MatrixOptions, MaxDiagSizeAtCompileTime, MaxDiagSizeAtCompileTime>
+ WorkMatrixType;
+
+ /** \brief Default Constructor.
+ *
+ * The default constructor is useful in cases in which the user intends to
+ * perform decompositions via JacobiSVD::compute(const MatrixType&).
+ */
+ JacobiSVD()
+ {}
+
+
+ /** \brief Default Constructor with memory preallocation
+ *
+ * Like the default constructor but with preallocation of the internal data
+ * according to the specified problem size.
+ * \sa JacobiSVD()
+ */
+ JacobiSVD(Index rows, Index cols, unsigned int computationOptions = 0)
+ {
+ allocate(rows, cols, computationOptions);
+ }
+
+ /** \brief Constructor performing the decomposition of given matrix.
+ *
+ * \param matrix the matrix to decompose
+ * \param computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed.
+ * By default, none is computed. This is a bit-field, the possible bits are #ComputeFullU, #ComputeThinU,
+ * #ComputeFullV, #ComputeThinV.
+ *
+ * Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not
+ * available with the (non-default) FullPivHouseholderQR preconditioner.
+ */
+ explicit JacobiSVD(const MatrixType& matrix, unsigned int computationOptions = 0)
+ {
+ compute(matrix, computationOptions);
+ }
+
+ /** \brief Method performing the decomposition of given matrix using custom options.
+ *
+ * \param matrix the matrix to decompose
+ * \param computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed.
+ * By default, none is computed. This is a bit-field, the possible bits are #ComputeFullU, #ComputeThinU,
+ * #ComputeFullV, #ComputeThinV.
+ *
+ * Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not
+ * available with the (non-default) FullPivHouseholderQR preconditioner.
+ */
+ JacobiSVD& compute(const MatrixType& matrix, unsigned int computationOptions);
+
+ /** \brief Method performing the decomposition of given matrix using current options.
+ *
+ * \param matrix the matrix to decompose
+ *
+ * This method uses the current \a computationOptions, as already passed to the constructor or to compute(const MatrixType&, unsigned int).
+ */
+ JacobiSVD& compute(const MatrixType& matrix)
+ {
+ return compute(matrix, m_computationOptions);
+ }
+
+ using Base::computeU;
+ using Base::computeV;
+ using Base::rows;
+ using Base::cols;
+ using Base::rank;
+
+ private:
+ void allocate(Index rows, Index cols, unsigned int computationOptions);
+
+ protected:
+ using Base::m_matrixU;
+ using Base::m_matrixV;
+ using Base::m_singularValues;
+ using Base::m_isInitialized;
+ using Base::m_isAllocated;
+ using Base::m_usePrescribedThreshold;
+ using Base::m_computeFullU;
+ using Base::m_computeThinU;
+ using Base::m_computeFullV;
+ using Base::m_computeThinV;
+ using Base::m_computationOptions;
+ using Base::m_nonzeroSingularValues;
+ using Base::m_rows;
+ using Base::m_cols;
+ using Base::m_diagSize;
+ using Base::m_prescribedThreshold;
+ WorkMatrixType m_workMatrix;
+
+ template<typename __MatrixType, int _QRPreconditioner, bool _IsComplex>
+ friend struct internal::svd_precondition_2x2_block_to_be_real;
+ template<typename __MatrixType, int _QRPreconditioner, int _Case, bool _DoAnything>
+ friend struct internal::qr_preconditioner_impl;
+
+ internal::qr_preconditioner_impl<MatrixType, QRPreconditioner, internal::PreconditionIfMoreColsThanRows> m_qr_precond_morecols;
+ internal::qr_preconditioner_impl<MatrixType, QRPreconditioner, internal::PreconditionIfMoreRowsThanCols> m_qr_precond_morerows;
+ MatrixType m_scaledMatrix;
+};
+
+template<typename MatrixType, int QRPreconditioner>
+void JacobiSVD<MatrixType, QRPreconditioner>::allocate(Index rows, Index cols, unsigned int computationOptions)
+{
+ eigen_assert(rows >= 0 && cols >= 0);
+
+ if (m_isAllocated &&
+ rows == m_rows &&
+ cols == m_cols &&
+ computationOptions == m_computationOptions)
+ {
+ return;
+ }
+
+ m_rows = rows;
+ m_cols = cols;
+ m_isInitialized = false;
+ m_isAllocated = true;
+ m_computationOptions = computationOptions;
+ m_computeFullU = (computationOptions & ComputeFullU) != 0;
+ m_computeThinU = (computationOptions & ComputeThinU) != 0;
+ m_computeFullV = (computationOptions & ComputeFullV) != 0;
+ m_computeThinV = (computationOptions & ComputeThinV) != 0;
+ eigen_assert(!(m_computeFullU && m_computeThinU) && "JacobiSVD: you can't ask for both full and thin U");
+ eigen_assert(!(m_computeFullV && m_computeThinV) && "JacobiSVD: you can't ask for both full and thin V");
+ eigen_assert(EIGEN_IMPLIES(m_computeThinU || m_computeThinV, MatrixType::ColsAtCompileTime==Dynamic) &&
+ "JacobiSVD: thin U and V are only available when your matrix has a dynamic number of columns.");
+ if (QRPreconditioner == FullPivHouseholderQRPreconditioner)
+ {
+ eigen_assert(!(m_computeThinU || m_computeThinV) &&
+ "JacobiSVD: can't compute thin U or thin V with the FullPivHouseholderQR preconditioner. "
+ "Use the ColPivHouseholderQR preconditioner instead.");
+ }
+ m_diagSize = (std::min)(m_rows, m_cols);
+ m_singularValues.resize(m_diagSize);
+ if(RowsAtCompileTime==Dynamic)
+ m_matrixU.resize(m_rows, m_computeFullU ? m_rows
+ : m_computeThinU ? m_diagSize
+ : 0);
+ if(ColsAtCompileTime==Dynamic)
+ m_matrixV.resize(m_cols, m_computeFullV ? m_cols
+ : m_computeThinV ? m_diagSize
+ : 0);
+ m_workMatrix.resize(m_diagSize, m_diagSize);
+
+ if(m_cols>m_rows) m_qr_precond_morecols.allocate(*this);
+ if(m_rows>m_cols) m_qr_precond_morerows.allocate(*this);
+ if(m_rows!=m_cols) m_scaledMatrix.resize(rows,cols);
+}
+
+template<typename MatrixType, int QRPreconditioner>
+JacobiSVD<MatrixType, QRPreconditioner>&
+JacobiSVD<MatrixType, QRPreconditioner>::compute(const MatrixType& matrix, unsigned int computationOptions)
+{
+ using std::abs;
+ allocate(matrix.rows(), matrix.cols(), computationOptions);
+
+ // currently we stop when we reach precision 2*epsilon as the last bit of precision can require an unreasonable number of iterations,
+ // only worsening the precision of U and V as we accumulate more rotations
+ const RealScalar precision = RealScalar(2) * NumTraits<Scalar>::epsilon();
+
+ // limit for denormal numbers to be considered zero in order to avoid infinite loops (see bug 286)
+ const RealScalar considerAsZero = (std::numeric_limits<RealScalar>::min)();
+
+ // Scaling factor to reduce over/under-flows
+ RealScalar scale = matrix.cwiseAbs().maxCoeff();
+ if(scale==RealScalar(0)) scale = RealScalar(1);
+
+ /*** step 1. The R-SVD step: we use a QR decomposition to reduce to the case of a square matrix */
+
+ if(m_rows!=m_cols)
+ {
+ m_scaledMatrix = matrix / scale;
+ m_qr_precond_morecols.run(*this, m_scaledMatrix);
+ m_qr_precond_morerows.run(*this, m_scaledMatrix);
+ }
+ else
+ {
+ m_workMatrix = matrix.block(0,0,m_diagSize,m_diagSize) / scale;
+ if(m_computeFullU) m_matrixU.setIdentity(m_rows,m_rows);
+ if(m_computeThinU) m_matrixU.setIdentity(m_rows,m_diagSize);
+ if(m_computeFullV) m_matrixV.setIdentity(m_cols,m_cols);
+ if(m_computeThinV) m_matrixV.setIdentity(m_cols, m_diagSize);
+ }
+
+ /*** step 2. The main Jacobi SVD iteration. ***/
+ RealScalar maxDiagEntry = m_workMatrix.cwiseAbs().diagonal().maxCoeff();
+
+ bool finished = false;
+ while(!finished)
+ {
+ finished = true;
+
+ // do a sweep: for all index pairs (p,q), perform SVD of the corresponding 2x2 sub-matrix
+
+ for(Index p = 1; p < m_diagSize; ++p)
+ {
+ for(Index q = 0; q < p; ++q)
+ {
+ // if this 2x2 sub-matrix is not diagonal already...
+ // notice that this comparison will evaluate to false if any NaN is involved, ensuring that NaN's don't
+ // keep us iterating forever. Similarly, small denormal numbers are considered zero.
+ RealScalar threshold = numext::maxi<RealScalar>(considerAsZero, precision * maxDiagEntry);
+ if(abs(m_workMatrix.coeff(p,q))>threshold || abs(m_workMatrix.coeff(q,p)) > threshold)
+ {
+ finished = false;
+ // perform SVD decomposition of 2x2 sub-matrix corresponding to indices p,q to make it diagonal
+ // the complex to real operation returns true if the updated 2x2 block is not already diagonal
+ if(internal::svd_precondition_2x2_block_to_be_real<MatrixType, QRPreconditioner>::run(m_workMatrix, *this, p, q, maxDiagEntry))
+ {
+ JacobiRotation<RealScalar> j_left, j_right;
+ internal::real_2x2_jacobi_svd(m_workMatrix, p, q, &j_left, &j_right);
+
+ // accumulate resulting Jacobi rotations
+ m_workMatrix.applyOnTheLeft(p,q,j_left);
+ if(computeU()) m_matrixU.applyOnTheRight(p,q,j_left.transpose());
+
+ m_workMatrix.applyOnTheRight(p,q,j_right);
+ if(computeV()) m_matrixV.applyOnTheRight(p,q,j_right);
+
+ // keep track of the largest diagonal coefficient
+ maxDiagEntry = numext::maxi<RealScalar>(maxDiagEntry,numext::maxi<RealScalar>(abs(m_workMatrix.coeff(p,p)), abs(m_workMatrix.coeff(q,q))));
+ }
+ }
+ }
+ }
+ }
+
+ /*** step 3. The work matrix is now diagonal, so ensure it's positive so its diagonal entries are the singular values ***/
+
+ for(Index i = 0; i < m_diagSize; ++i)
+ {
+ // For a complex matrix, some diagonal coefficients might note have been
+ // treated by svd_precondition_2x2_block_to_be_real, and the imaginary part
+ // of some diagonal entry might not be null.
+ if(NumTraits<Scalar>::IsComplex && abs(numext::imag(m_workMatrix.coeff(i,i)))>considerAsZero)
+ {
+ RealScalar a = abs(m_workMatrix.coeff(i,i));
+ m_singularValues.coeffRef(i) = abs(a);
+ if(computeU()) m_matrixU.col(i) *= m_workMatrix.coeff(i,i)/a;
+ }
+ else
+ {
+ // m_workMatrix.coeff(i,i) is already real, no difficulty:
+ RealScalar a = numext::real(m_workMatrix.coeff(i,i));
+ m_singularValues.coeffRef(i) = abs(a);
+ if(computeU() && (a<RealScalar(0))) m_matrixU.col(i) = -m_matrixU.col(i);
+ }
+ }
+
+ m_singularValues *= scale;
+
+ /*** step 4. Sort singular values in descending order and compute the number of nonzero singular values ***/
+
+ m_nonzeroSingularValues = m_diagSize;
+ for(Index i = 0; i < m_diagSize; i++)
+ {
+ Index pos;
+ RealScalar maxRemainingSingularValue = m_singularValues.tail(m_diagSize-i).maxCoeff(&pos);
+ if(maxRemainingSingularValue == RealScalar(0))
+ {
+ m_nonzeroSingularValues = i;
+ break;
+ }
+ if(pos)
+ {
+ pos += i;
+ std::swap(m_singularValues.coeffRef(i), m_singularValues.coeffRef(pos));
+ if(computeU()) m_matrixU.col(pos).swap(m_matrixU.col(i));
+ if(computeV()) m_matrixV.col(pos).swap(m_matrixV.col(i));
+ }
+ }
+
+ m_isInitialized = true;
+ return *this;
+}
+
+/** \svd_module
+ *
+ * \return the singular value decomposition of \c *this computed by two-sided
+ * Jacobi transformations.
+ *
+ * \sa class JacobiSVD
+ */
+template<typename Derived>
+JacobiSVD<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::jacobiSvd(unsigned int computationOptions) const
+{
+ return JacobiSVD<PlainObject>(*this, computationOptions);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_JACOBISVD_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h b/runtimes/nn/depend/external/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h
new file mode 100644
index 000000000..50272154f
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h
@@ -0,0 +1,90 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+ be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ * Content : Eigen bindings to LAPACKe
+ * Singular Value Decomposition - SVD.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_JACOBISVD_LAPACKE_H
+#define EIGEN_JACOBISVD_LAPACKE_H
+
+namespace Eigen {
+
+/** \internal Specialization for the data types supported by LAPACKe */
+
+#define EIGEN_LAPACKE_SVD(EIGTYPE, LAPACKE_TYPE, LAPACKE_RTYPE, LAPACKE_PREFIX, EIGCOLROW, LAPACKE_COLROW) \
+template<> inline \
+JacobiSVD<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic>, ColPivHouseholderQRPreconditioner>& \
+JacobiSVD<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic>, ColPivHouseholderQRPreconditioner>::compute(const Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic>& matrix, unsigned int computationOptions) \
+{ \
+ typedef Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic> MatrixType; \
+ /*typedef MatrixType::Scalar Scalar;*/ \
+ /*typedef MatrixType::RealScalar RealScalar;*/ \
+ allocate(matrix.rows(), matrix.cols(), computationOptions); \
+\
+ /*const RealScalar precision = RealScalar(2) * NumTraits<Scalar>::epsilon();*/ \
+ m_nonzeroSingularValues = m_diagSize; \
+\
+ lapack_int lda = internal::convert_index<lapack_int>(matrix.outerStride()), ldu, ldvt; \
+ lapack_int matrix_order = LAPACKE_COLROW; \
+ char jobu, jobvt; \
+ LAPACKE_TYPE *u, *vt, dummy; \
+ jobu = (m_computeFullU) ? 'A' : (m_computeThinU) ? 'S' : 'N'; \
+ jobvt = (m_computeFullV) ? 'A' : (m_computeThinV) ? 'S' : 'N'; \
+ if (computeU()) { \
+ ldu = internal::convert_index<lapack_int>(m_matrixU.outerStride()); \
+ u = (LAPACKE_TYPE*)m_matrixU.data(); \
+ } else { ldu=1; u=&dummy; }\
+ MatrixType localV; \
+ ldvt = (m_computeFullV) ? internal::convert_index<lapack_int>(m_cols) : (m_computeThinV) ? internal::convert_index<lapack_int>(m_diagSize) : 1; \
+ if (computeV()) { \
+ localV.resize(ldvt, m_cols); \
+ vt = (LAPACKE_TYPE*)localV.data(); \
+ } else { ldvt=1; vt=&dummy; }\
+ Matrix<LAPACKE_RTYPE, Dynamic, Dynamic> superb; superb.resize(m_diagSize, 1); \
+ MatrixType m_temp; m_temp = matrix; \
+ LAPACKE_##LAPACKE_PREFIX##gesvd( matrix_order, jobu, jobvt, internal::convert_index<lapack_int>(m_rows), internal::convert_index<lapack_int>(m_cols), (LAPACKE_TYPE*)m_temp.data(), lda, (LAPACKE_RTYPE*)m_singularValues.data(), u, ldu, vt, ldvt, superb.data()); \
+ if (computeV()) m_matrixV = localV.adjoint(); \
+ /* for(int i=0;i<m_diagSize;i++) if (m_singularValues.coeffRef(i) < precision) { m_nonzeroSingularValues--; m_singularValues.coeffRef(i)=RealScalar(0);}*/ \
+ m_isInitialized = true; \
+ return *this; \
+}
+
+EIGEN_LAPACKE_SVD(double, double, double, d, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_LAPACKE_SVD(float, float, float , s, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_LAPACKE_SVD(dcomplex, lapack_complex_double, double, z, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_LAPACKE_SVD(scomplex, lapack_complex_float, float , c, ColMajor, LAPACK_COL_MAJOR)
+
+EIGEN_LAPACKE_SVD(double, double, double, d, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_LAPACKE_SVD(float, float, float , s, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_LAPACKE_SVD(dcomplex, lapack_complex_double, double, z, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_LAPACKE_SVD(scomplex, lapack_complex_float, float , c, RowMajor, LAPACK_ROW_MAJOR)
+
+} // end namespace Eigen
+
+#endif // EIGEN_JACOBISVD_LAPACKE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SVD/SVDBase.h b/runtimes/nn/depend/external/eigen/Eigen/src/SVD/SVDBase.h
new file mode 100644
index 000000000..cc90a3b75
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SVD/SVDBase.h
@@ -0,0 +1,313 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// Copyright (C) 2013 Gauthier Brun <brun.gauthier@gmail.com>
+// Copyright (C) 2013 Nicolas Carre <nicolas.carre@ensimag.fr>
+// Copyright (C) 2013 Jean Ceccato <jean.ceccato@ensimag.fr>
+// Copyright (C) 2013 Pierre Zoppitelli <pierre.zoppitelli@ensimag.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SVDBASE_H
+#define EIGEN_SVDBASE_H
+
+namespace Eigen {
+/** \ingroup SVD_Module
+ *
+ *
+ * \class SVDBase
+ *
+ * \brief Base class of SVD algorithms
+ *
+ * \tparam Derived the type of the actual SVD decomposition
+ *
+ * SVD decomposition consists in decomposing any n-by-p matrix \a A as a product
+ * \f[ A = U S V^* \f]
+ * where \a U is a n-by-n unitary, \a V is a p-by-p unitary, and \a S is a n-by-p real positive matrix which is zero outside of its main diagonal;
+ * the diagonal entries of S are known as the \em singular \em values of \a A and the columns of \a U and \a V are known as the left
+ * and right \em singular \em vectors of \a A respectively.
+ *
+ * Singular values are always sorted in decreasing order.
+ *
+ *
+ * You can ask for only \em thin \a U or \a V to be computed, meaning the following. In case of a rectangular n-by-p matrix, letting \a m be the
+ * smaller value among \a n and \a p, there are only \a m singular vectors; the remaining columns of \a U and \a V do not correspond to actual
+ * singular vectors. Asking for \em thin \a U or \a V means asking for only their \a m first columns to be formed. So \a U is then a n-by-m matrix,
+ * and \a V is then a p-by-m matrix. Notice that thin \a U and \a V are all you need for (least squares) solving.
+ *
+ * If the input matrix has inf or nan coefficients, the result of the computation is undefined, but the computation is guaranteed to
+ * terminate in finite (and reasonable) time.
+ * \sa class BDCSVD, class JacobiSVD
+ */
+template<typename Derived>
+class SVDBase
+{
+
+public:
+ typedef typename internal::traits<Derived>::MatrixType MatrixType;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
+ enum {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ DiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_DYNAMIC(RowsAtCompileTime,ColsAtCompileTime),
+ MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+ MaxDiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(MaxRowsAtCompileTime,MaxColsAtCompileTime),
+ MatrixOptions = MatrixType::Options
+ };
+
+ typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime, MatrixOptions, MaxRowsAtCompileTime, MaxRowsAtCompileTime> MatrixUType;
+ typedef Matrix<Scalar, ColsAtCompileTime, ColsAtCompileTime, MatrixOptions, MaxColsAtCompileTime, MaxColsAtCompileTime> MatrixVType;
+ typedef typename internal::plain_diag_type<MatrixType, RealScalar>::type SingularValuesType;
+
+ Derived& derived() { return *static_cast<Derived*>(this); }
+ const Derived& derived() const { return *static_cast<const Derived*>(this); }
+
+ /** \returns the \a U matrix.
+ *
+ * For the SVD decomposition of a n-by-p matrix, letting \a m be the minimum of \a n and \a p,
+ * the U matrix is n-by-n if you asked for \link Eigen::ComputeFullU ComputeFullU \endlink, and is n-by-m if you asked for \link Eigen::ComputeThinU ComputeThinU \endlink.
+ *
+ * The \a m first columns of \a U are the left singular vectors of the matrix being decomposed.
+ *
+ * This method asserts that you asked for \a U to be computed.
+ */
+ const MatrixUType& matrixU() const
+ {
+ eigen_assert(m_isInitialized && "SVD is not initialized.");
+ eigen_assert(computeU() && "This SVD decomposition didn't compute U. Did you ask for it?");
+ return m_matrixU;
+ }
+
+ /** \returns the \a V matrix.
+ *
+ * For the SVD decomposition of a n-by-p matrix, letting \a m be the minimum of \a n and \a p,
+ * the V matrix is p-by-p if you asked for \link Eigen::ComputeFullV ComputeFullV \endlink, and is p-by-m if you asked for \link Eigen::ComputeThinV ComputeThinV \endlink.
+ *
+ * The \a m first columns of \a V are the right singular vectors of the matrix being decomposed.
+ *
+ * This method asserts that you asked for \a V to be computed.
+ */
+ const MatrixVType& matrixV() const
+ {
+ eigen_assert(m_isInitialized && "SVD is not initialized.");
+ eigen_assert(computeV() && "This SVD decomposition didn't compute V. Did you ask for it?");
+ return m_matrixV;
+ }
+
+ /** \returns the vector of singular values.
+ *
+ * For the SVD decomposition of a n-by-p matrix, letting \a m be the minimum of \a n and \a p, the
+ * returned vector has size \a m. Singular values are always sorted in decreasing order.
+ */
+ const SingularValuesType& singularValues() const
+ {
+ eigen_assert(m_isInitialized && "SVD is not initialized.");
+ return m_singularValues;
+ }
+
+ /** \returns the number of singular values that are not exactly 0 */
+ Index nonzeroSingularValues() const
+ {
+ eigen_assert(m_isInitialized && "SVD is not initialized.");
+ return m_nonzeroSingularValues;
+ }
+
+ /** \returns the rank of the matrix of which \c *this is the SVD.
+ *
+ * \note This method has to determine which singular values should be considered nonzero.
+ * For that, it uses the threshold value that you can control by calling
+ * setThreshold(const RealScalar&).
+ */
+ inline Index rank() const
+ {
+ using std::abs;
+ eigen_assert(m_isInitialized && "JacobiSVD is not initialized.");
+ if(m_singularValues.size()==0) return 0;
+ RealScalar premultiplied_threshold = numext::maxi<RealScalar>(m_singularValues.coeff(0) * threshold(), (std::numeric_limits<RealScalar>::min)());
+ Index i = m_nonzeroSingularValues-1;
+ while(i>=0 && m_singularValues.coeff(i) < premultiplied_threshold) --i;
+ return i+1;
+ }
+
+ /** Allows to prescribe a threshold to be used by certain methods, such as rank() and solve(),
+ * which need to determine when singular values are to be considered nonzero.
+ * This is not used for the SVD decomposition itself.
+ *
+ * When it needs to get the threshold value, Eigen calls threshold().
+ * The default is \c NumTraits<Scalar>::epsilon()
+ *
+ * \param threshold The new value to use as the threshold.
+ *
+ * A singular value will be considered nonzero if its value is strictly greater than
+ * \f$ \vert singular value \vert \leqslant threshold \times \vert max singular value \vert \f$.
+ *
+ * If you want to come back to the default behavior, call setThreshold(Default_t)
+ */
+ Derived& setThreshold(const RealScalar& threshold)
+ {
+ m_usePrescribedThreshold = true;
+ m_prescribedThreshold = threshold;
+ return derived();
+ }
+
+ /** Allows to come back to the default behavior, letting Eigen use its default formula for
+ * determining the threshold.
+ *
+ * You should pass the special object Eigen::Default as parameter here.
+ * \code svd.setThreshold(Eigen::Default); \endcode
+ *
+ * See the documentation of setThreshold(const RealScalar&).
+ */
+ Derived& setThreshold(Default_t)
+ {
+ m_usePrescribedThreshold = false;
+ return derived();
+ }
+
+ /** Returns the threshold that will be used by certain methods such as rank().
+ *
+ * See the documentation of setThreshold(const RealScalar&).
+ */
+ RealScalar threshold() const
+ {
+ eigen_assert(m_isInitialized || m_usePrescribedThreshold);
+ return m_usePrescribedThreshold ? m_prescribedThreshold
+ : (std::max<Index>)(1,m_diagSize)*NumTraits<Scalar>::epsilon();
+ }
+
+ /** \returns true if \a U (full or thin) is asked for in this SVD decomposition */
+ inline bool computeU() const { return m_computeFullU || m_computeThinU; }
+ /** \returns true if \a V (full or thin) is asked for in this SVD decomposition */
+ inline bool computeV() const { return m_computeFullV || m_computeThinV; }
+
+ inline Index rows() const { return m_rows; }
+ inline Index cols() const { return m_cols; }
+
+ /** \returns a (least squares) solution of \f$ A x = b \f$ using the current SVD decomposition of A.
+ *
+ * \param b the right-hand-side of the equation to solve.
+ *
+ * \note Solving requires both U and V to be computed. Thin U and V are enough, there is no need for full U or V.
+ *
+ * \note SVD solving is implicitly least-squares. Thus, this method serves both purposes of exact solving and least-squares solving.
+ * In other words, the returned solution is guaranteed to minimize the Euclidean norm \f$ \Vert A x - b \Vert \f$.
+ */
+ template<typename Rhs>
+ inline const Solve<Derived, Rhs>
+ solve(const MatrixBase<Rhs>& b) const
+ {
+ eigen_assert(m_isInitialized && "SVD is not initialized.");
+ eigen_assert(computeU() && computeV() && "SVD::solve() requires both unitaries U and V to be computed (thin unitaries suffice).");
+ return Solve<Derived, Rhs>(derived(), b.derived());
+ }
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ template<typename RhsType, typename DstType>
+ EIGEN_DEVICE_FUNC
+ void _solve_impl(const RhsType &rhs, DstType &dst) const;
+ #endif
+
+protected:
+
+ static void check_template_parameters()
+ {
+ EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+ }
+
+ // return true if already allocated
+ bool allocate(Index rows, Index cols, unsigned int computationOptions) ;
+
+ MatrixUType m_matrixU;
+ MatrixVType m_matrixV;
+ SingularValuesType m_singularValues;
+ bool m_isInitialized, m_isAllocated, m_usePrescribedThreshold;
+ bool m_computeFullU, m_computeThinU;
+ bool m_computeFullV, m_computeThinV;
+ unsigned int m_computationOptions;
+ Index m_nonzeroSingularValues, m_rows, m_cols, m_diagSize;
+ RealScalar m_prescribedThreshold;
+
+ /** \brief Default Constructor.
+ *
+ * Default constructor of SVDBase
+ */
+ SVDBase()
+ : m_isInitialized(false),
+ m_isAllocated(false),
+ m_usePrescribedThreshold(false),
+ m_computationOptions(0),
+ m_rows(-1), m_cols(-1), m_diagSize(0)
+ {
+ check_template_parameters();
+ }
+
+
+};
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+template<typename Derived>
+template<typename RhsType, typename DstType>
+void SVDBase<Derived>::_solve_impl(const RhsType &rhs, DstType &dst) const
+{
+ eigen_assert(rhs.rows() == rows());
+
+ // A = U S V^*
+ // So A^{-1} = V S^{-1} U^*
+
+ Matrix<Scalar, Dynamic, RhsType::ColsAtCompileTime, 0, MatrixType::MaxRowsAtCompileTime, RhsType::MaxColsAtCompileTime> tmp;
+ Index l_rank = rank();
+ tmp.noalias() = m_matrixU.leftCols(l_rank).adjoint() * rhs;
+ tmp = m_singularValues.head(l_rank).asDiagonal().inverse() * tmp;
+ dst = m_matrixV.leftCols(l_rank) * tmp;
+}
+#endif
+
+template<typename MatrixType>
+bool SVDBase<MatrixType>::allocate(Index rows, Index cols, unsigned int computationOptions)
+{
+ eigen_assert(rows >= 0 && cols >= 0);
+
+ if (m_isAllocated &&
+ rows == m_rows &&
+ cols == m_cols &&
+ computationOptions == m_computationOptions)
+ {
+ return true;
+ }
+
+ m_rows = rows;
+ m_cols = cols;
+ m_isInitialized = false;
+ m_isAllocated = true;
+ m_computationOptions = computationOptions;
+ m_computeFullU = (computationOptions & ComputeFullU) != 0;
+ m_computeThinU = (computationOptions & ComputeThinU) != 0;
+ m_computeFullV = (computationOptions & ComputeFullV) != 0;
+ m_computeThinV = (computationOptions & ComputeThinV) != 0;
+ eigen_assert(!(m_computeFullU && m_computeThinU) && "SVDBase: you can't ask for both full and thin U");
+ eigen_assert(!(m_computeFullV && m_computeThinV) && "SVDBase: you can't ask for both full and thin V");
+ eigen_assert(EIGEN_IMPLIES(m_computeThinU || m_computeThinV, MatrixType::ColsAtCompileTime==Dynamic) &&
+ "SVDBase: thin U and V are only available when your matrix has a dynamic number of columns.");
+
+ m_diagSize = (std::min)(m_rows, m_cols);
+ m_singularValues.resize(m_diagSize);
+ if(RowsAtCompileTime==Dynamic)
+ m_matrixU.resize(m_rows, m_computeFullU ? m_rows : m_computeThinU ? m_diagSize : 0);
+ if(ColsAtCompileTime==Dynamic)
+ m_matrixV.resize(m_cols, m_computeFullV ? m_cols : m_computeThinV ? m_diagSize : 0);
+
+ return false;
+}
+
+}// end namespace
+
+#endif // EIGEN_SVDBASE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SVD/UpperBidiagonalization.h b/runtimes/nn/depend/external/eigen/Eigen/src/SVD/UpperBidiagonalization.h
new file mode 100644
index 000000000..11ac847e1
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SVD/UpperBidiagonalization.h
@@ -0,0 +1,414 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2013-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BIDIAGONALIZATION_H
+#define EIGEN_BIDIAGONALIZATION_H
+
+namespace Eigen {
+
+namespace internal {
+// UpperBidiagonalization will probably be replaced by a Bidiagonalization class, don't want to make it stable API.
+// At the same time, it's useful to keep for now as it's about the only thing that is testing the BandMatrix class.
+
+template<typename _MatrixType> class UpperBidiagonalization
+{
+ public:
+
+ typedef _MatrixType MatrixType;
+ enum {
+ RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ ColsAtCompileTimeMinusOne = internal::decrement_size<ColsAtCompileTime>::ret
+ };
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
+ typedef Matrix<Scalar, 1, ColsAtCompileTime> RowVectorType;
+ typedef Matrix<Scalar, RowsAtCompileTime, 1> ColVectorType;
+ typedef BandMatrix<RealScalar, ColsAtCompileTime, ColsAtCompileTime, 1, 0, RowMajor> BidiagonalType;
+ typedef Matrix<Scalar, ColsAtCompileTime, 1> DiagVectorType;
+ typedef Matrix<Scalar, ColsAtCompileTimeMinusOne, 1> SuperDiagVectorType;
+ typedef HouseholderSequence<
+ const MatrixType,
+ const typename internal::remove_all<typename Diagonal<const MatrixType,0>::ConjugateReturnType>::type
+ > HouseholderUSequenceType;
+ typedef HouseholderSequence<
+ const typename internal::remove_all<typename MatrixType::ConjugateReturnType>::type,
+ Diagonal<const MatrixType,1>,
+ OnTheRight
+ > HouseholderVSequenceType;
+
+ /**
+ * \brief Default Constructor.
+ *
+ * The default constructor is useful in cases in which the user intends to
+ * perform decompositions via Bidiagonalization::compute(const MatrixType&).
+ */
+ UpperBidiagonalization() : m_householder(), m_bidiagonal(), m_isInitialized(false) {}
+
+ explicit UpperBidiagonalization(const MatrixType& matrix)
+ : m_householder(matrix.rows(), matrix.cols()),
+ m_bidiagonal(matrix.cols(), matrix.cols()),
+ m_isInitialized(false)
+ {
+ compute(matrix);
+ }
+
+ UpperBidiagonalization& compute(const MatrixType& matrix);
+ UpperBidiagonalization& computeUnblocked(const MatrixType& matrix);
+
+ const MatrixType& householder() const { return m_householder; }
+ const BidiagonalType& bidiagonal() const { return m_bidiagonal; }
+
+ const HouseholderUSequenceType householderU() const
+ {
+ eigen_assert(m_isInitialized && "UpperBidiagonalization is not initialized.");
+ return HouseholderUSequenceType(m_householder, m_householder.diagonal().conjugate());
+ }
+
+ const HouseholderVSequenceType householderV() // const here gives nasty errors and i'm lazy
+ {
+ eigen_assert(m_isInitialized && "UpperBidiagonalization is not initialized.");
+ return HouseholderVSequenceType(m_householder.conjugate(), m_householder.const_derived().template diagonal<1>())
+ .setLength(m_householder.cols()-1)
+ .setShift(1);
+ }
+
+ protected:
+ MatrixType m_householder;
+ BidiagonalType m_bidiagonal;
+ bool m_isInitialized;
+};
+
+// Standard upper bidiagonalization without fancy optimizations
+// This version should be faster for small matrix size
+template<typename MatrixType>
+void upperbidiagonalization_inplace_unblocked(MatrixType& mat,
+ typename MatrixType::RealScalar *diagonal,
+ typename MatrixType::RealScalar *upper_diagonal,
+ typename MatrixType::Scalar* tempData = 0)
+{
+ typedef typename MatrixType::Scalar Scalar;
+
+ Index rows = mat.rows();
+ Index cols = mat.cols();
+
+ typedef Matrix<Scalar,Dynamic,1,ColMajor,MatrixType::MaxRowsAtCompileTime,1> TempType;
+ TempType tempVector;
+ if(tempData==0)
+ {
+ tempVector.resize(rows);
+ tempData = tempVector.data();
+ }
+
+ for (Index k = 0; /* breaks at k==cols-1 below */ ; ++k)
+ {
+ Index remainingRows = rows - k;
+ Index remainingCols = cols - k - 1;
+
+ // construct left householder transform in-place in A
+ mat.col(k).tail(remainingRows)
+ .makeHouseholderInPlace(mat.coeffRef(k,k), diagonal[k]);
+ // apply householder transform to remaining part of A on the left
+ mat.bottomRightCorner(remainingRows, remainingCols)
+ .applyHouseholderOnTheLeft(mat.col(k).tail(remainingRows-1), mat.coeff(k,k), tempData);
+
+ if(k == cols-1) break;
+
+ // construct right householder transform in-place in mat
+ mat.row(k).tail(remainingCols)
+ .makeHouseholderInPlace(mat.coeffRef(k,k+1), upper_diagonal[k]);
+ // apply householder transform to remaining part of mat on the left
+ mat.bottomRightCorner(remainingRows-1, remainingCols)
+ .applyHouseholderOnTheRight(mat.row(k).tail(remainingCols-1).transpose(), mat.coeff(k,k+1), tempData);
+ }
+}
+
+/** \internal
+ * Helper routine for the block reduction to upper bidiagonal form.
+ *
+ * Let's partition the matrix A:
+ *
+ * | A00 A01 |
+ * A = | |
+ * | A10 A11 |
+ *
+ * This function reduces to bidiagonal form the left \c rows x \a blockSize vertical panel [A00/A10]
+ * and the \a blockSize x \c cols horizontal panel [A00 A01] of the matrix \a A. The bottom-right block A11
+ * is updated using matrix-matrix products:
+ * A22 -= V * Y^T - X * U^T
+ * where V and U contains the left and right Householder vectors. U and V are stored in A10, and A01
+ * respectively, and the update matrices X and Y are computed during the reduction.
+ *
+ */
+template<typename MatrixType>
+void upperbidiagonalization_blocked_helper(MatrixType& A,
+ typename MatrixType::RealScalar *diagonal,
+ typename MatrixType::RealScalar *upper_diagonal,
+ Index bs,
+ Ref<Matrix<typename MatrixType::Scalar, Dynamic, Dynamic,
+ traits<MatrixType>::Flags & RowMajorBit> > X,
+ Ref<Matrix<typename MatrixType::Scalar, Dynamic, Dynamic,
+ traits<MatrixType>::Flags & RowMajorBit> > Y)
+{
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ typedef typename NumTraits<RealScalar>::Literal Literal;
+ enum { StorageOrder = traits<MatrixType>::Flags & RowMajorBit };
+ typedef InnerStride<int(StorageOrder) == int(ColMajor) ? 1 : Dynamic> ColInnerStride;
+ typedef InnerStride<int(StorageOrder) == int(ColMajor) ? Dynamic : 1> RowInnerStride;
+ typedef Ref<Matrix<Scalar, Dynamic, 1>, 0, ColInnerStride> SubColumnType;
+ typedef Ref<Matrix<Scalar, 1, Dynamic>, 0, RowInnerStride> SubRowType;
+ typedef Ref<Matrix<Scalar, Dynamic, Dynamic, StorageOrder > > SubMatType;
+
+ Index brows = A.rows();
+ Index bcols = A.cols();
+
+ Scalar tau_u, tau_u_prev(0), tau_v;
+
+ for(Index k = 0; k < bs; ++k)
+ {
+ Index remainingRows = brows - k;
+ Index remainingCols = bcols - k - 1;
+
+ SubMatType X_k1( X.block(k,0, remainingRows,k) );
+ SubMatType V_k1( A.block(k,0, remainingRows,k) );
+
+ // 1 - update the k-th column of A
+ SubColumnType v_k = A.col(k).tail(remainingRows);
+ v_k -= V_k1 * Y.row(k).head(k).adjoint();
+ if(k) v_k -= X_k1 * A.col(k).head(k);
+
+ // 2 - construct left Householder transform in-place
+ v_k.makeHouseholderInPlace(tau_v, diagonal[k]);
+
+ if(k+1<bcols)
+ {
+ SubMatType Y_k ( Y.block(k+1,0, remainingCols, k+1) );
+ SubMatType U_k1 ( A.block(0,k+1, k,remainingCols) );
+
+ // this eases the application of Householder transforAions
+ // A(k,k) will store tau_v later
+ A(k,k) = Scalar(1);
+
+ // 3 - Compute y_k^T = tau_v * ( A^T*v_k - Y_k-1*V_k-1^T*v_k - U_k-1*X_k-1^T*v_k )
+ {
+ SubColumnType y_k( Y.col(k).tail(remainingCols) );
+
+ // let's use the begining of column k of Y as a temporary vector
+ SubColumnType tmp( Y.col(k).head(k) );
+ y_k.noalias() = A.block(k,k+1, remainingRows,remainingCols).adjoint() * v_k; // bottleneck
+ tmp.noalias() = V_k1.adjoint() * v_k;
+ y_k.noalias() -= Y_k.leftCols(k) * tmp;
+ tmp.noalias() = X_k1.adjoint() * v_k;
+ y_k.noalias() -= U_k1.adjoint() * tmp;
+ y_k *= numext::conj(tau_v);
+ }
+
+ // 4 - update k-th row of A (it will become u_k)
+ SubRowType u_k( A.row(k).tail(remainingCols) );
+ u_k = u_k.conjugate();
+ {
+ u_k -= Y_k * A.row(k).head(k+1).adjoint();
+ if(k) u_k -= U_k1.adjoint() * X.row(k).head(k).adjoint();
+ }
+
+ // 5 - construct right Householder transform in-place
+ u_k.makeHouseholderInPlace(tau_u, upper_diagonal[k]);
+
+ // this eases the application of Householder transformations
+ // A(k,k+1) will store tau_u later
+ A(k,k+1) = Scalar(1);
+
+ // 6 - Compute x_k = tau_u * ( A*u_k - X_k-1*U_k-1^T*u_k - V_k*Y_k^T*u_k )
+ {
+ SubColumnType x_k ( X.col(k).tail(remainingRows-1) );
+
+ // let's use the begining of column k of X as a temporary vectors
+ // note that tmp0 and tmp1 overlaps
+ SubColumnType tmp0 ( X.col(k).head(k) ),
+ tmp1 ( X.col(k).head(k+1) );
+
+ x_k.noalias() = A.block(k+1,k+1, remainingRows-1,remainingCols) * u_k.transpose(); // bottleneck
+ tmp0.noalias() = U_k1 * u_k.transpose();
+ x_k.noalias() -= X_k1.bottomRows(remainingRows-1) * tmp0;
+ tmp1.noalias() = Y_k.adjoint() * u_k.transpose();
+ x_k.noalias() -= A.block(k+1,0, remainingRows-1,k+1) * tmp1;
+ x_k *= numext::conj(tau_u);
+ tau_u = numext::conj(tau_u);
+ u_k = u_k.conjugate();
+ }
+
+ if(k>0) A.coeffRef(k-1,k) = tau_u_prev;
+ tau_u_prev = tau_u;
+ }
+ else
+ A.coeffRef(k-1,k) = tau_u_prev;
+
+ A.coeffRef(k,k) = tau_v;
+ }
+
+ if(bs<bcols)
+ A.coeffRef(bs-1,bs) = tau_u_prev;
+
+ // update A22
+ if(bcols>bs && brows>bs)
+ {
+ SubMatType A11( A.bottomRightCorner(brows-bs,bcols-bs) );
+ SubMatType A10( A.block(bs,0, brows-bs,bs) );
+ SubMatType A01( A.block(0,bs, bs,bcols-bs) );
+ Scalar tmp = A01(bs-1,0);
+ A01(bs-1,0) = Literal(1);
+ A11.noalias() -= A10 * Y.topLeftCorner(bcols,bs).bottomRows(bcols-bs).adjoint();
+ A11.noalias() -= X.topLeftCorner(brows,bs).bottomRows(brows-bs) * A01;
+ A01(bs-1,0) = tmp;
+ }
+}
+
+/** \internal
+ *
+ * Implementation of a block-bidiagonal reduction.
+ * It is based on the following paper:
+ * The Design of a Parallel Dense Linear Algebra Software Library: Reduction to Hessenberg, Tridiagonal, and Bidiagonal Form.
+ * by Jaeyoung Choi, Jack J. Dongarra, David W. Walker. (1995)
+ * section 3.3
+ */
+template<typename MatrixType, typename BidiagType>
+void upperbidiagonalization_inplace_blocked(MatrixType& A, BidiagType& bidiagonal,
+ Index maxBlockSize=32,
+ typename MatrixType::Scalar* /*tempData*/ = 0)
+{
+ typedef typename MatrixType::Scalar Scalar;
+ typedef Block<MatrixType,Dynamic,Dynamic> BlockType;
+
+ Index rows = A.rows();
+ Index cols = A.cols();
+ Index size = (std::min)(rows, cols);
+
+ // X and Y are work space
+ enum { StorageOrder = traits<MatrixType>::Flags & RowMajorBit };
+ Matrix<Scalar,
+ MatrixType::RowsAtCompileTime,
+ Dynamic,
+ StorageOrder,
+ MatrixType::MaxRowsAtCompileTime> X(rows,maxBlockSize);
+ Matrix<Scalar,
+ MatrixType::ColsAtCompileTime,
+ Dynamic,
+ StorageOrder,
+ MatrixType::MaxColsAtCompileTime> Y(cols,maxBlockSize);
+ Index blockSize = (std::min)(maxBlockSize,size);
+
+ Index k = 0;
+ for(k = 0; k < size; k += blockSize)
+ {
+ Index bs = (std::min)(size-k,blockSize); // actual size of the block
+ Index brows = rows - k; // rows of the block
+ Index bcols = cols - k; // columns of the block
+
+ // partition the matrix A:
+ //
+ // | A00 A01 A02 |
+ // | |
+ // A = | A10 A11 A12 |
+ // | |
+ // | A20 A21 A22 |
+ //
+ // where A11 is a bs x bs diagonal block,
+ // and let:
+ // | A11 A12 |
+ // B = | |
+ // | A21 A22 |
+
+ BlockType B = A.block(k,k,brows,bcols);
+
+ // This stage performs the bidiagonalization of A11, A21, A12, and updating of A22.
+ // Finally, the algorithm continue on the updated A22.
+ //
+ // However, if B is too small, or A22 empty, then let's use an unblocked strategy
+ if(k+bs==cols || bcols<48) // somewhat arbitrary threshold
+ {
+ upperbidiagonalization_inplace_unblocked(B,
+ &(bidiagonal.template diagonal<0>().coeffRef(k)),
+ &(bidiagonal.template diagonal<1>().coeffRef(k)),
+ X.data()
+ );
+ break; // We're done
+ }
+ else
+ {
+ upperbidiagonalization_blocked_helper<BlockType>( B,
+ &(bidiagonal.template diagonal<0>().coeffRef(k)),
+ &(bidiagonal.template diagonal<1>().coeffRef(k)),
+ bs,
+ X.topLeftCorner(brows,bs),
+ Y.topLeftCorner(bcols,bs)
+ );
+ }
+ }
+}
+
+template<typename _MatrixType>
+UpperBidiagonalization<_MatrixType>& UpperBidiagonalization<_MatrixType>::computeUnblocked(const _MatrixType& matrix)
+{
+ Index rows = matrix.rows();
+ Index cols = matrix.cols();
+ EIGEN_ONLY_USED_FOR_DEBUG(cols);
+
+ eigen_assert(rows >= cols && "UpperBidiagonalization is only for Arices satisfying rows>=cols.");
+
+ m_householder = matrix;
+
+ ColVectorType temp(rows);
+
+ upperbidiagonalization_inplace_unblocked(m_householder,
+ &(m_bidiagonal.template diagonal<0>().coeffRef(0)),
+ &(m_bidiagonal.template diagonal<1>().coeffRef(0)),
+ temp.data());
+
+ m_isInitialized = true;
+ return *this;
+}
+
+template<typename _MatrixType>
+UpperBidiagonalization<_MatrixType>& UpperBidiagonalization<_MatrixType>::compute(const _MatrixType& matrix)
+{
+ Index rows = matrix.rows();
+ Index cols = matrix.cols();
+ EIGEN_ONLY_USED_FOR_DEBUG(rows);
+ EIGEN_ONLY_USED_FOR_DEBUG(cols);
+
+ eigen_assert(rows >= cols && "UpperBidiagonalization is only for Arices satisfying rows>=cols.");
+
+ m_householder = matrix;
+ upperbidiagonalization_inplace_blocked(m_householder, m_bidiagonal);
+
+ m_isInitialized = true;
+ return *this;
+}
+
+#if 0
+/** \return the Householder QR decomposition of \c *this.
+ *
+ * \sa class Bidiagonalization
+ */
+template<typename Derived>
+const UpperBidiagonalization<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::bidiagonalization() const
+{
+ return UpperBidiagonalization<PlainObject>(eval());
+}
+#endif
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_BIDIAGONALIZATION_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h
new file mode 100644
index 000000000..2907f6529
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h
@@ -0,0 +1,689 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SIMPLICIAL_CHOLESKY_H
+#define EIGEN_SIMPLICIAL_CHOLESKY_H
+
+namespace Eigen {
+
+enum SimplicialCholeskyMode {
+ SimplicialCholeskyLLT,
+ SimplicialCholeskyLDLT
+};
+
+namespace internal {
+ template<typename CholMatrixType, typename InputMatrixType>
+ struct simplicial_cholesky_grab_input {
+ typedef CholMatrixType const * ConstCholMatrixPtr;
+ static void run(const InputMatrixType& input, ConstCholMatrixPtr &pmat, CholMatrixType &tmp)
+ {
+ tmp = input;
+ pmat = &tmp;
+ }
+ };
+
+ template<typename MatrixType>
+ struct simplicial_cholesky_grab_input<MatrixType,MatrixType> {
+ typedef MatrixType const * ConstMatrixPtr;
+ static void run(const MatrixType& input, ConstMatrixPtr &pmat, MatrixType &/*tmp*/)
+ {
+ pmat = &input;
+ }
+ };
+} // end namespace internal
+
+/** \ingroup SparseCholesky_Module
+ * \brief A base class for direct sparse Cholesky factorizations
+ *
+ * This is a base class for LL^T and LDL^T Cholesky factorizations of sparse matrices that are
+ * selfadjoint and positive definite. These factorizations allow for solving A.X = B where
+ * X and B can be either dense or sparse.
+ *
+ * In order to reduce the fill-in, a symmetric permutation P is applied prior to the factorization
+ * such that the factorized matrix is P A P^-1.
+ *
+ * \tparam Derived the type of the derived class, that is the actual factorization type.
+ *
+ */
+template<typename Derived>
+class SimplicialCholeskyBase : public SparseSolverBase<Derived>
+{
+ typedef SparseSolverBase<Derived> Base;
+ using Base::m_isInitialized;
+
+ public:
+ typedef typename internal::traits<Derived>::MatrixType MatrixType;
+ typedef typename internal::traits<Derived>::OrderingType OrderingType;
+ enum { UpLo = internal::traits<Derived>::UpLo };
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef SparseMatrix<Scalar,ColMajor,StorageIndex> CholMatrixType;
+ typedef CholMatrixType const * ConstCholMatrixPtr;
+ typedef Matrix<Scalar,Dynamic,1> VectorType;
+ typedef Matrix<StorageIndex,Dynamic,1> VectorI;
+
+ enum {
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+
+ public:
+
+ using Base::derived;
+
+ /** Default constructor */
+ SimplicialCholeskyBase()
+ : m_info(Success), m_shiftOffset(0), m_shiftScale(1)
+ {}
+
+ explicit SimplicialCholeskyBase(const MatrixType& matrix)
+ : m_info(Success), m_shiftOffset(0), m_shiftScale(1)
+ {
+ derived().compute(matrix);
+ }
+
+ ~SimplicialCholeskyBase()
+ {
+ }
+
+ Derived& derived() { return *static_cast<Derived*>(this); }
+ const Derived& derived() const { return *static_cast<const Derived*>(this); }
+
+ inline Index cols() const { return m_matrix.cols(); }
+ inline Index rows() const { return m_matrix.rows(); }
+
+ /** \brief Reports whether previous computation was successful.
+ *
+ * \returns \c Success if computation was succesful,
+ * \c NumericalIssue if the matrix.appears to be negative.
+ */
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+ return m_info;
+ }
+
+ /** \returns the permutation P
+ * \sa permutationPinv() */
+ const PermutationMatrix<Dynamic,Dynamic,StorageIndex>& permutationP() const
+ { return m_P; }
+
+ /** \returns the inverse P^-1 of the permutation P
+ * \sa permutationP() */
+ const PermutationMatrix<Dynamic,Dynamic,StorageIndex>& permutationPinv() const
+ { return m_Pinv; }
+
+ /** Sets the shift parameters that will be used to adjust the diagonal coefficients during the numerical factorization.
+ *
+ * During the numerical factorization, the diagonal coefficients are transformed by the following linear model:\n
+ * \c d_ii = \a offset + \a scale * \c d_ii
+ *
+ * The default is the identity transformation with \a offset=0, and \a scale=1.
+ *
+ * \returns a reference to \c *this.
+ */
+ Derived& setShift(const RealScalar& offset, const RealScalar& scale = 1)
+ {
+ m_shiftOffset = offset;
+ m_shiftScale = scale;
+ return derived();
+ }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** \internal */
+ template<typename Stream>
+ void dumpMemory(Stream& s)
+ {
+ int total = 0;
+ s << " L: " << ((total+=(m_matrix.cols()+1) * sizeof(int) + m_matrix.nonZeros()*(sizeof(int)+sizeof(Scalar))) >> 20) << "Mb" << "\n";
+ s << " diag: " << ((total+=m_diag.size() * sizeof(Scalar)) >> 20) << "Mb" << "\n";
+ s << " tree: " << ((total+=m_parent.size() * sizeof(int)) >> 20) << "Mb" << "\n";
+ s << " nonzeros: " << ((total+=m_nonZerosPerCol.size() * sizeof(int)) >> 20) << "Mb" << "\n";
+ s << " perm: " << ((total+=m_P.size() * sizeof(int)) >> 20) << "Mb" << "\n";
+ s << " perm^-1: " << ((total+=m_Pinv.size() * sizeof(int)) >> 20) << "Mb" << "\n";
+ s << " TOTAL: " << (total>> 20) << "Mb" << "\n";
+ }
+
+ /** \internal */
+ template<typename Rhs,typename Dest>
+ void _solve_impl(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const
+ {
+ eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
+ eigen_assert(m_matrix.rows()==b.rows());
+
+ if(m_info!=Success)
+ return;
+
+ if(m_P.size()>0)
+ dest = m_P * b;
+ else
+ dest = b;
+
+ if(m_matrix.nonZeros()>0) // otherwise L==I
+ derived().matrixL().solveInPlace(dest);
+
+ if(m_diag.size()>0)
+ dest = m_diag.asDiagonal().inverse() * dest;
+
+ if (m_matrix.nonZeros()>0) // otherwise U==I
+ derived().matrixU().solveInPlace(dest);
+
+ if(m_P.size()>0)
+ dest = m_Pinv * dest;
+ }
+
+ template<typename Rhs,typename Dest>
+ void _solve_impl(const SparseMatrixBase<Rhs> &b, SparseMatrixBase<Dest> &dest) const
+ {
+ internal::solve_sparse_through_dense_panels(derived(), b, dest);
+ }
+
+#endif // EIGEN_PARSED_BY_DOXYGEN
+
+ protected:
+
+ /** Computes the sparse Cholesky decomposition of \a matrix */
+ template<bool DoLDLT>
+ void compute(const MatrixType& matrix)
+ {
+ eigen_assert(matrix.rows()==matrix.cols());
+ Index size = matrix.cols();
+ CholMatrixType tmp(size,size);
+ ConstCholMatrixPtr pmat;
+ ordering(matrix, pmat, tmp);
+ analyzePattern_preordered(*pmat, DoLDLT);
+ factorize_preordered<DoLDLT>(*pmat);
+ }
+
+ template<bool DoLDLT>
+ void factorize(const MatrixType& a)
+ {
+ eigen_assert(a.rows()==a.cols());
+ Index size = a.cols();
+ CholMatrixType tmp(size,size);
+ ConstCholMatrixPtr pmat;
+
+ if(m_P.size()==0 && (UpLo&Upper)==Upper)
+ {
+ // If there is no ordering, try to directly use the input matrix without any copy
+ internal::simplicial_cholesky_grab_input<CholMatrixType,MatrixType>::run(a, pmat, tmp);
+ }
+ else
+ {
+ tmp.template selfadjointView<Upper>() = a.template selfadjointView<UpLo>().twistedBy(m_P);
+ pmat = &tmp;
+ }
+
+ factorize_preordered<DoLDLT>(*pmat);
+ }
+
+ template<bool DoLDLT>
+ void factorize_preordered(const CholMatrixType& a);
+
+ void analyzePattern(const MatrixType& a, bool doLDLT)
+ {
+ eigen_assert(a.rows()==a.cols());
+ Index size = a.cols();
+ CholMatrixType tmp(size,size);
+ ConstCholMatrixPtr pmat;
+ ordering(a, pmat, tmp);
+ analyzePattern_preordered(*pmat,doLDLT);
+ }
+ void analyzePattern_preordered(const CholMatrixType& a, bool doLDLT);
+
+ void ordering(const MatrixType& a, ConstCholMatrixPtr &pmat, CholMatrixType& ap);
+
+ /** keeps off-diagonal entries; drops diagonal entries */
+ struct keep_diag {
+ inline bool operator() (const Index& row, const Index& col, const Scalar&) const
+ {
+ return row!=col;
+ }
+ };
+
+ mutable ComputationInfo m_info;
+ bool m_factorizationIsOk;
+ bool m_analysisIsOk;
+
+ CholMatrixType m_matrix;
+ VectorType m_diag; // the diagonal coefficients (LDLT mode)
+ VectorI m_parent; // elimination tree
+ VectorI m_nonZerosPerCol;
+ PermutationMatrix<Dynamic,Dynamic,StorageIndex> m_P; // the permutation
+ PermutationMatrix<Dynamic,Dynamic,StorageIndex> m_Pinv; // the inverse permutation
+
+ RealScalar m_shiftOffset;
+ RealScalar m_shiftScale;
+};
+
+template<typename _MatrixType, int _UpLo = Lower, typename _Ordering = AMDOrdering<typename _MatrixType::StorageIndex> > class SimplicialLLT;
+template<typename _MatrixType, int _UpLo = Lower, typename _Ordering = AMDOrdering<typename _MatrixType::StorageIndex> > class SimplicialLDLT;
+template<typename _MatrixType, int _UpLo = Lower, typename _Ordering = AMDOrdering<typename _MatrixType::StorageIndex> > class SimplicialCholesky;
+
+namespace internal {
+
+template<typename _MatrixType, int _UpLo, typename _Ordering> struct traits<SimplicialLLT<_MatrixType,_UpLo,_Ordering> >
+{
+ typedef _MatrixType MatrixType;
+ typedef _Ordering OrderingType;
+ enum { UpLo = _UpLo };
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef SparseMatrix<Scalar, ColMajor, StorageIndex> CholMatrixType;
+ typedef TriangularView<const CholMatrixType, Eigen::Lower> MatrixL;
+ typedef TriangularView<const typename CholMatrixType::AdjointReturnType, Eigen::Upper> MatrixU;
+ static inline MatrixL getL(const MatrixType& m) { return MatrixL(m); }
+ static inline MatrixU getU(const MatrixType& m) { return MatrixU(m.adjoint()); }
+};
+
+template<typename _MatrixType,int _UpLo, typename _Ordering> struct traits<SimplicialLDLT<_MatrixType,_UpLo,_Ordering> >
+{
+ typedef _MatrixType MatrixType;
+ typedef _Ordering OrderingType;
+ enum { UpLo = _UpLo };
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef SparseMatrix<Scalar, ColMajor, StorageIndex> CholMatrixType;
+ typedef TriangularView<const CholMatrixType, Eigen::UnitLower> MatrixL;
+ typedef TriangularView<const typename CholMatrixType::AdjointReturnType, Eigen::UnitUpper> MatrixU;
+ static inline MatrixL getL(const MatrixType& m) { return MatrixL(m); }
+ static inline MatrixU getU(const MatrixType& m) { return MatrixU(m.adjoint()); }
+};
+
+template<typename _MatrixType, int _UpLo, typename _Ordering> struct traits<SimplicialCholesky<_MatrixType,_UpLo,_Ordering> >
+{
+ typedef _MatrixType MatrixType;
+ typedef _Ordering OrderingType;
+ enum { UpLo = _UpLo };
+};
+
+}
+
+/** \ingroup SparseCholesky_Module
+ * \class SimplicialLLT
+ * \brief A direct sparse LLT Cholesky factorizations
+ *
+ * This class provides a LL^T Cholesky factorizations of sparse matrices that are
+ * selfadjoint and positive definite. The factorization allows for solving A.X = B where
+ * X and B can be either dense or sparse.
+ *
+ * In order to reduce the fill-in, a symmetric permutation P is applied prior to the factorization
+ * such that the factorized matrix is P A P^-1.
+ *
+ * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+ * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+ * or Upper. Default is Lower.
+ * \tparam _Ordering The ordering method to use, either AMDOrdering<> or NaturalOrdering<>. Default is AMDOrdering<>
+ *
+ * \implsparsesolverconcept
+ *
+ * \sa class SimplicialLDLT, class AMDOrdering, class NaturalOrdering
+ */
+template<typename _MatrixType, int _UpLo, typename _Ordering>
+ class SimplicialLLT : public SimplicialCholeskyBase<SimplicialLLT<_MatrixType,_UpLo,_Ordering> >
+{
+public:
+ typedef _MatrixType MatrixType;
+ enum { UpLo = _UpLo };
+ typedef SimplicialCholeskyBase<SimplicialLLT> Base;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef SparseMatrix<Scalar,ColMajor,Index> CholMatrixType;
+ typedef Matrix<Scalar,Dynamic,1> VectorType;
+ typedef internal::traits<SimplicialLLT> Traits;
+ typedef typename Traits::MatrixL MatrixL;
+ typedef typename Traits::MatrixU MatrixU;
+public:
+ /** Default constructor */
+ SimplicialLLT() : Base() {}
+ /** Constructs and performs the LLT factorization of \a matrix */
+ explicit SimplicialLLT(const MatrixType& matrix)
+ : Base(matrix) {}
+
+ /** \returns an expression of the factor L */
+ inline const MatrixL matrixL() const {
+ eigen_assert(Base::m_factorizationIsOk && "Simplicial LLT not factorized");
+ return Traits::getL(Base::m_matrix);
+ }
+
+ /** \returns an expression of the factor U (= L^*) */
+ inline const MatrixU matrixU() const {
+ eigen_assert(Base::m_factorizationIsOk && "Simplicial LLT not factorized");
+ return Traits::getU(Base::m_matrix);
+ }
+
+ /** Computes the sparse Cholesky decomposition of \a matrix */
+ SimplicialLLT& compute(const MatrixType& matrix)
+ {
+ Base::template compute<false>(matrix);
+ return *this;
+ }
+
+ /** Performs a symbolic decomposition on the sparcity of \a matrix.
+ *
+ * This function is particularly useful when solving for several problems having the same structure.
+ *
+ * \sa factorize()
+ */
+ void analyzePattern(const MatrixType& a)
+ {
+ Base::analyzePattern(a, false);
+ }
+
+ /** Performs a numeric decomposition of \a matrix
+ *
+ * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
+ *
+ * \sa analyzePattern()
+ */
+ void factorize(const MatrixType& a)
+ {
+ Base::template factorize<false>(a);
+ }
+
+ /** \returns the determinant of the underlying matrix from the current factorization */
+ Scalar determinant() const
+ {
+ Scalar detL = Base::m_matrix.diagonal().prod();
+ return numext::abs2(detL);
+ }
+};
+
+/** \ingroup SparseCholesky_Module
+ * \class SimplicialLDLT
+ * \brief A direct sparse LDLT Cholesky factorizations without square root.
+ *
+ * This class provides a LDL^T Cholesky factorizations without square root of sparse matrices that are
+ * selfadjoint and positive definite. The factorization allows for solving A.X = B where
+ * X and B can be either dense or sparse.
+ *
+ * In order to reduce the fill-in, a symmetric permutation P is applied prior to the factorization
+ * such that the factorized matrix is P A P^-1.
+ *
+ * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+ * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+ * or Upper. Default is Lower.
+ * \tparam _Ordering The ordering method to use, either AMDOrdering<> or NaturalOrdering<>. Default is AMDOrdering<>
+ *
+ * \implsparsesolverconcept
+ *
+ * \sa class SimplicialLLT, class AMDOrdering, class NaturalOrdering
+ */
+template<typename _MatrixType, int _UpLo, typename _Ordering>
+ class SimplicialLDLT : public SimplicialCholeskyBase<SimplicialLDLT<_MatrixType,_UpLo,_Ordering> >
+{
+public:
+ typedef _MatrixType MatrixType;
+ enum { UpLo = _UpLo };
+ typedef SimplicialCholeskyBase<SimplicialLDLT> Base;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef SparseMatrix<Scalar,ColMajor,StorageIndex> CholMatrixType;
+ typedef Matrix<Scalar,Dynamic,1> VectorType;
+ typedef internal::traits<SimplicialLDLT> Traits;
+ typedef typename Traits::MatrixL MatrixL;
+ typedef typename Traits::MatrixU MatrixU;
+public:
+ /** Default constructor */
+ SimplicialLDLT() : Base() {}
+
+ /** Constructs and performs the LLT factorization of \a matrix */
+ explicit SimplicialLDLT(const MatrixType& matrix)
+ : Base(matrix) {}
+
+ /** \returns a vector expression of the diagonal D */
+ inline const VectorType vectorD() const {
+ eigen_assert(Base::m_factorizationIsOk && "Simplicial LDLT not factorized");
+ return Base::m_diag;
+ }
+ /** \returns an expression of the factor L */
+ inline const MatrixL matrixL() const {
+ eigen_assert(Base::m_factorizationIsOk && "Simplicial LDLT not factorized");
+ return Traits::getL(Base::m_matrix);
+ }
+
+ /** \returns an expression of the factor U (= L^*) */
+ inline const MatrixU matrixU() const {
+ eigen_assert(Base::m_factorizationIsOk && "Simplicial LDLT not factorized");
+ return Traits::getU(Base::m_matrix);
+ }
+
+ /** Computes the sparse Cholesky decomposition of \a matrix */
+ SimplicialLDLT& compute(const MatrixType& matrix)
+ {
+ Base::template compute<true>(matrix);
+ return *this;
+ }
+
+ /** Performs a symbolic decomposition on the sparcity of \a matrix.
+ *
+ * This function is particularly useful when solving for several problems having the same structure.
+ *
+ * \sa factorize()
+ */
+ void analyzePattern(const MatrixType& a)
+ {
+ Base::analyzePattern(a, true);
+ }
+
+ /** Performs a numeric decomposition of \a matrix
+ *
+ * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
+ *
+ * \sa analyzePattern()
+ */
+ void factorize(const MatrixType& a)
+ {
+ Base::template factorize<true>(a);
+ }
+
+ /** \returns the determinant of the underlying matrix from the current factorization */
+ Scalar determinant() const
+ {
+ return Base::m_diag.prod();
+ }
+};
+
+/** \deprecated use SimplicialLDLT or class SimplicialLLT
+ * \ingroup SparseCholesky_Module
+ * \class SimplicialCholesky
+ *
+ * \sa class SimplicialLDLT, class SimplicialLLT
+ */
+template<typename _MatrixType, int _UpLo, typename _Ordering>
+ class SimplicialCholesky : public SimplicialCholeskyBase<SimplicialCholesky<_MatrixType,_UpLo,_Ordering> >
+{
+public:
+ typedef _MatrixType MatrixType;
+ enum { UpLo = _UpLo };
+ typedef SimplicialCholeskyBase<SimplicialCholesky> Base;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef SparseMatrix<Scalar,ColMajor,StorageIndex> CholMatrixType;
+ typedef Matrix<Scalar,Dynamic,1> VectorType;
+ typedef internal::traits<SimplicialCholesky> Traits;
+ typedef internal::traits<SimplicialLDLT<MatrixType,UpLo> > LDLTTraits;
+ typedef internal::traits<SimplicialLLT<MatrixType,UpLo> > LLTTraits;
+ public:
+ SimplicialCholesky() : Base(), m_LDLT(true) {}
+
+ explicit SimplicialCholesky(const MatrixType& matrix)
+ : Base(), m_LDLT(true)
+ {
+ compute(matrix);
+ }
+
+ SimplicialCholesky& setMode(SimplicialCholeskyMode mode)
+ {
+ switch(mode)
+ {
+ case SimplicialCholeskyLLT:
+ m_LDLT = false;
+ break;
+ case SimplicialCholeskyLDLT:
+ m_LDLT = true;
+ break;
+ default:
+ break;
+ }
+
+ return *this;
+ }
+
+ inline const VectorType vectorD() const {
+ eigen_assert(Base::m_factorizationIsOk && "Simplicial Cholesky not factorized");
+ return Base::m_diag;
+ }
+ inline const CholMatrixType rawMatrix() const {
+ eigen_assert(Base::m_factorizationIsOk && "Simplicial Cholesky not factorized");
+ return Base::m_matrix;
+ }
+
+ /** Computes the sparse Cholesky decomposition of \a matrix */
+ SimplicialCholesky& compute(const MatrixType& matrix)
+ {
+ if(m_LDLT)
+ Base::template compute<true>(matrix);
+ else
+ Base::template compute<false>(matrix);
+ return *this;
+ }
+
+ /** Performs a symbolic decomposition on the sparcity of \a matrix.
+ *
+ * This function is particularly useful when solving for several problems having the same structure.
+ *
+ * \sa factorize()
+ */
+ void analyzePattern(const MatrixType& a)
+ {
+ Base::analyzePattern(a, m_LDLT);
+ }
+
+ /** Performs a numeric decomposition of \a matrix
+ *
+ * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
+ *
+ * \sa analyzePattern()
+ */
+ void factorize(const MatrixType& a)
+ {
+ if(m_LDLT)
+ Base::template factorize<true>(a);
+ else
+ Base::template factorize<false>(a);
+ }
+
+ /** \internal */
+ template<typename Rhs,typename Dest>
+ void _solve_impl(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const
+ {
+ eigen_assert(Base::m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
+ eigen_assert(Base::m_matrix.rows()==b.rows());
+
+ if(Base::m_info!=Success)
+ return;
+
+ if(Base::m_P.size()>0)
+ dest = Base::m_P * b;
+ else
+ dest = b;
+
+ if(Base::m_matrix.nonZeros()>0) // otherwise L==I
+ {
+ if(m_LDLT)
+ LDLTTraits::getL(Base::m_matrix).solveInPlace(dest);
+ else
+ LLTTraits::getL(Base::m_matrix).solveInPlace(dest);
+ }
+
+ if(Base::m_diag.size()>0)
+ dest = Base::m_diag.asDiagonal().inverse() * dest;
+
+ if (Base::m_matrix.nonZeros()>0) // otherwise I==I
+ {
+ if(m_LDLT)
+ LDLTTraits::getU(Base::m_matrix).solveInPlace(dest);
+ else
+ LLTTraits::getU(Base::m_matrix).solveInPlace(dest);
+ }
+
+ if(Base::m_P.size()>0)
+ dest = Base::m_Pinv * dest;
+ }
+
+ /** \internal */
+ template<typename Rhs,typename Dest>
+ void _solve_impl(const SparseMatrixBase<Rhs> &b, SparseMatrixBase<Dest> &dest) const
+ {
+ internal::solve_sparse_through_dense_panels(*this, b, dest);
+ }
+
+ Scalar determinant() const
+ {
+ if(m_LDLT)
+ {
+ return Base::m_diag.prod();
+ }
+ else
+ {
+ Scalar detL = Diagonal<const CholMatrixType>(Base::m_matrix).prod();
+ return numext::abs2(detL);
+ }
+ }
+
+ protected:
+ bool m_LDLT;
+};
+
+template<typename Derived>
+void SimplicialCholeskyBase<Derived>::ordering(const MatrixType& a, ConstCholMatrixPtr &pmat, CholMatrixType& ap)
+{
+ eigen_assert(a.rows()==a.cols());
+ const Index size = a.rows();
+ pmat = &ap;
+ // Note that ordering methods compute the inverse permutation
+ if(!internal::is_same<OrderingType,NaturalOrdering<Index> >::value)
+ {
+ {
+ CholMatrixType C;
+ C = a.template selfadjointView<UpLo>();
+
+ OrderingType ordering;
+ ordering(C,m_Pinv);
+ }
+
+ if(m_Pinv.size()>0) m_P = m_Pinv.inverse();
+ else m_P.resize(0);
+
+ ap.resize(size,size);
+ ap.template selfadjointView<Upper>() = a.template selfadjointView<UpLo>().twistedBy(m_P);
+ }
+ else
+ {
+ m_Pinv.resize(0);
+ m_P.resize(0);
+ if(int(UpLo)==int(Lower) || MatrixType::IsRowMajor)
+ {
+ // we have to transpose the lower part to to the upper one
+ ap.resize(size,size);
+ ap.template selfadjointView<Upper>() = a.template selfadjointView<UpLo>();
+ }
+ else
+ internal::simplicial_cholesky_grab_input<CholMatrixType,MatrixType>::run(a, pmat, ap);
+ }
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SIMPLICIAL_CHOLESKY_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/AmbiVector.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/AmbiVector.h
new file mode 100644
index 000000000..8a5cc91f2
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/AmbiVector.h
@@ -0,0 +1,377 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_AMBIVECTOR_H
+#define EIGEN_AMBIVECTOR_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** \internal
+ * Hybrid sparse/dense vector class designed for intensive read-write operations.
+ *
+ * See BasicSparseLLT and SparseProduct for usage examples.
+ */
+template<typename _Scalar, typename _StorageIndex>
+class AmbiVector
+{
+ public:
+ typedef _Scalar Scalar;
+ typedef _StorageIndex StorageIndex;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+
+ explicit AmbiVector(Index size)
+ : m_buffer(0), m_zero(0), m_size(0), m_allocatedSize(0), m_allocatedElements(0), m_mode(-1)
+ {
+ resize(size);
+ }
+
+ void init(double estimatedDensity);
+ void init(int mode);
+
+ Index nonZeros() const;
+
+ /** Specifies a sub-vector to work on */
+ void setBounds(Index start, Index end) { m_start = convert_index(start); m_end = convert_index(end); }
+
+ void setZero();
+
+ void restart();
+ Scalar& coeffRef(Index i);
+ Scalar& coeff(Index i);
+
+ class Iterator;
+
+ ~AmbiVector() { delete[] m_buffer; }
+
+ void resize(Index size)
+ {
+ if (m_allocatedSize < size)
+ reallocate(size);
+ m_size = convert_index(size);
+ }
+
+ StorageIndex size() const { return m_size; }
+
+ protected:
+ StorageIndex convert_index(Index idx)
+ {
+ return internal::convert_index<StorageIndex>(idx);
+ }
+
+ void reallocate(Index size)
+ {
+ // if the size of the matrix is not too large, let's allocate a bit more than needed such
+ // that we can handle dense vector even in sparse mode.
+ delete[] m_buffer;
+ if (size<1000)
+ {
+ Index allocSize = (size * sizeof(ListEl) + sizeof(Scalar) - 1)/sizeof(Scalar);
+ m_allocatedElements = convert_index((allocSize*sizeof(Scalar))/sizeof(ListEl));
+ m_buffer = new Scalar[allocSize];
+ }
+ else
+ {
+ m_allocatedElements = convert_index((size*sizeof(Scalar))/sizeof(ListEl));
+ m_buffer = new Scalar[size];
+ }
+ m_size = convert_index(size);
+ m_start = 0;
+ m_end = m_size;
+ }
+
+ void reallocateSparse()
+ {
+ Index copyElements = m_allocatedElements;
+ m_allocatedElements = (std::min)(StorageIndex(m_allocatedElements*1.5),m_size);
+ Index allocSize = m_allocatedElements * sizeof(ListEl);
+ allocSize = (allocSize + sizeof(Scalar) - 1)/sizeof(Scalar);
+ Scalar* newBuffer = new Scalar[allocSize];
+ memcpy(newBuffer, m_buffer, copyElements * sizeof(ListEl));
+ delete[] m_buffer;
+ m_buffer = newBuffer;
+ }
+
+ protected:
+ // element type of the linked list
+ struct ListEl
+ {
+ StorageIndex next;
+ StorageIndex index;
+ Scalar value;
+ };
+
+ // used to store data in both mode
+ Scalar* m_buffer;
+ Scalar m_zero;
+ StorageIndex m_size;
+ StorageIndex m_start;
+ StorageIndex m_end;
+ StorageIndex m_allocatedSize;
+ StorageIndex m_allocatedElements;
+ StorageIndex m_mode;
+
+ // linked list mode
+ StorageIndex m_llStart;
+ StorageIndex m_llCurrent;
+ StorageIndex m_llSize;
+};
+
+/** \returns the number of non zeros in the current sub vector */
+template<typename _Scalar,typename _StorageIndex>
+Index AmbiVector<_Scalar,_StorageIndex>::nonZeros() const
+{
+ if (m_mode==IsSparse)
+ return m_llSize;
+ else
+ return m_end - m_start;
+}
+
+template<typename _Scalar,typename _StorageIndex>
+void AmbiVector<_Scalar,_StorageIndex>::init(double estimatedDensity)
+{
+ if (estimatedDensity>0.1)
+ init(IsDense);
+ else
+ init(IsSparse);
+}
+
+template<typename _Scalar,typename _StorageIndex>
+void AmbiVector<_Scalar,_StorageIndex>::init(int mode)
+{
+ m_mode = mode;
+ if (m_mode==IsSparse)
+ {
+ m_llSize = 0;
+ m_llStart = -1;
+ }
+}
+
+/** Must be called whenever we might perform a write access
+ * with an index smaller than the previous one.
+ *
+ * Don't worry, this function is extremely cheap.
+ */
+template<typename _Scalar,typename _StorageIndex>
+void AmbiVector<_Scalar,_StorageIndex>::restart()
+{
+ m_llCurrent = m_llStart;
+}
+
+/** Set all coefficients of current subvector to zero */
+template<typename _Scalar,typename _StorageIndex>
+void AmbiVector<_Scalar,_StorageIndex>::setZero()
+{
+ if (m_mode==IsDense)
+ {
+ for (Index i=m_start; i<m_end; ++i)
+ m_buffer[i] = Scalar(0);
+ }
+ else
+ {
+ eigen_assert(m_mode==IsSparse);
+ m_llSize = 0;
+ m_llStart = -1;
+ }
+}
+
+template<typename _Scalar,typename _StorageIndex>
+_Scalar& AmbiVector<_Scalar,_StorageIndex>::coeffRef(Index i)
+{
+ if (m_mode==IsDense)
+ return m_buffer[i];
+ else
+ {
+ ListEl* EIGEN_RESTRICT llElements = reinterpret_cast<ListEl*>(m_buffer);
+ // TODO factorize the following code to reduce code generation
+ eigen_assert(m_mode==IsSparse);
+ if (m_llSize==0)
+ {
+ // this is the first element
+ m_llStart = 0;
+ m_llCurrent = 0;
+ ++m_llSize;
+ llElements[0].value = Scalar(0);
+ llElements[0].index = convert_index(i);
+ llElements[0].next = -1;
+ return llElements[0].value;
+ }
+ else if (i<llElements[m_llStart].index)
+ {
+ // this is going to be the new first element of the list
+ ListEl& el = llElements[m_llSize];
+ el.value = Scalar(0);
+ el.index = convert_index(i);
+ el.next = m_llStart;
+ m_llStart = m_llSize;
+ ++m_llSize;
+ m_llCurrent = m_llStart;
+ return el.value;
+ }
+ else
+ {
+ StorageIndex nextel = llElements[m_llCurrent].next;
+ eigen_assert(i>=llElements[m_llCurrent].index && "you must call restart() before inserting an element with lower or equal index");
+ while (nextel >= 0 && llElements[nextel].index<=i)
+ {
+ m_llCurrent = nextel;
+ nextel = llElements[nextel].next;
+ }
+
+ if (llElements[m_llCurrent].index==i)
+ {
+ // the coefficient already exists and we found it !
+ return llElements[m_llCurrent].value;
+ }
+ else
+ {
+ if (m_llSize>=m_allocatedElements)
+ {
+ reallocateSparse();
+ llElements = reinterpret_cast<ListEl*>(m_buffer);
+ }
+ eigen_internal_assert(m_llSize<m_allocatedElements && "internal error: overflow in sparse mode");
+ // let's insert a new coefficient
+ ListEl& el = llElements[m_llSize];
+ el.value = Scalar(0);
+ el.index = convert_index(i);
+ el.next = llElements[m_llCurrent].next;
+ llElements[m_llCurrent].next = m_llSize;
+ ++m_llSize;
+ return el.value;
+ }
+ }
+ }
+}
+
+template<typename _Scalar,typename _StorageIndex>
+_Scalar& AmbiVector<_Scalar,_StorageIndex>::coeff(Index i)
+{
+ if (m_mode==IsDense)
+ return m_buffer[i];
+ else
+ {
+ ListEl* EIGEN_RESTRICT llElements = reinterpret_cast<ListEl*>(m_buffer);
+ eigen_assert(m_mode==IsSparse);
+ if ((m_llSize==0) || (i<llElements[m_llStart].index))
+ {
+ return m_zero;
+ }
+ else
+ {
+ Index elid = m_llStart;
+ while (elid >= 0 && llElements[elid].index<i)
+ elid = llElements[elid].next;
+
+ if (llElements[elid].index==i)
+ return llElements[m_llCurrent].value;
+ else
+ return m_zero;
+ }
+ }
+}
+
+/** Iterator over the nonzero coefficients */
+template<typename _Scalar,typename _StorageIndex>
+class AmbiVector<_Scalar,_StorageIndex>::Iterator
+{
+ public:
+ typedef _Scalar Scalar;
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+
+ /** Default constructor
+ * \param vec the vector on which we iterate
+ * \param epsilon the minimal value used to prune zero coefficients.
+ * In practice, all coefficients having a magnitude smaller than \a epsilon
+ * are skipped.
+ */
+ explicit Iterator(const AmbiVector& vec, const RealScalar& epsilon = 0)
+ : m_vector(vec)
+ {
+ using std::abs;
+ m_epsilon = epsilon;
+ m_isDense = m_vector.m_mode==IsDense;
+ if (m_isDense)
+ {
+ m_currentEl = 0; // this is to avoid a compilation warning
+ m_cachedValue = 0; // this is to avoid a compilation warning
+ m_cachedIndex = m_vector.m_start-1;
+ ++(*this);
+ }
+ else
+ {
+ ListEl* EIGEN_RESTRICT llElements = reinterpret_cast<ListEl*>(m_vector.m_buffer);
+ m_currentEl = m_vector.m_llStart;
+ while (m_currentEl>=0 && abs(llElements[m_currentEl].value)<=m_epsilon)
+ m_currentEl = llElements[m_currentEl].next;
+ if (m_currentEl<0)
+ {
+ m_cachedValue = 0; // this is to avoid a compilation warning
+ m_cachedIndex = -1;
+ }
+ else
+ {
+ m_cachedIndex = llElements[m_currentEl].index;
+ m_cachedValue = llElements[m_currentEl].value;
+ }
+ }
+ }
+
+ StorageIndex index() const { return m_cachedIndex; }
+ Scalar value() const { return m_cachedValue; }
+
+ operator bool() const { return m_cachedIndex>=0; }
+
+ Iterator& operator++()
+ {
+ using std::abs;
+ if (m_isDense)
+ {
+ do {
+ ++m_cachedIndex;
+ } while (m_cachedIndex<m_vector.m_end && abs(m_vector.m_buffer[m_cachedIndex])<=m_epsilon);
+ if (m_cachedIndex<m_vector.m_end)
+ m_cachedValue = m_vector.m_buffer[m_cachedIndex];
+ else
+ m_cachedIndex=-1;
+ }
+ else
+ {
+ ListEl* EIGEN_RESTRICT llElements = reinterpret_cast<ListEl*>(m_vector.m_buffer);
+ do {
+ m_currentEl = llElements[m_currentEl].next;
+ } while (m_currentEl>=0 && abs(llElements[m_currentEl].value)<=m_epsilon);
+ if (m_currentEl<0)
+ {
+ m_cachedIndex = -1;
+ }
+ else
+ {
+ m_cachedIndex = llElements[m_currentEl].index;
+ m_cachedValue = llElements[m_currentEl].value;
+ }
+ }
+ return *this;
+ }
+
+ protected:
+ const AmbiVector& m_vector; // the target vector
+ StorageIndex m_currentEl; // the current element in sparse/linked-list mode
+ RealScalar m_epsilon; // epsilon used to prune zero coefficients
+ StorageIndex m_cachedIndex; // current coordinate
+ Scalar m_cachedValue; // current value
+ bool m_isDense; // mode of the vector
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_AMBIVECTOR_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/CompressedStorage.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/CompressedStorage.h
new file mode 100644
index 000000000..d89fa0dae
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/CompressedStorage.h
@@ -0,0 +1,258 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPRESSED_STORAGE_H
+#define EIGEN_COMPRESSED_STORAGE_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** \internal
+ * Stores a sparse set of values as a list of values and a list of indices.
+ *
+ */
+template<typename _Scalar,typename _StorageIndex>
+class CompressedStorage
+{
+ public:
+
+ typedef _Scalar Scalar;
+ typedef _StorageIndex StorageIndex;
+
+ protected:
+
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+
+ public:
+
+ CompressedStorage()
+ : m_values(0), m_indices(0), m_size(0), m_allocatedSize(0)
+ {}
+
+ explicit CompressedStorage(Index size)
+ : m_values(0), m_indices(0), m_size(0), m_allocatedSize(0)
+ {
+ resize(size);
+ }
+
+ CompressedStorage(const CompressedStorage& other)
+ : m_values(0), m_indices(0), m_size(0), m_allocatedSize(0)
+ {
+ *this = other;
+ }
+
+ CompressedStorage& operator=(const CompressedStorage& other)
+ {
+ resize(other.size());
+ if(other.size()>0)
+ {
+ internal::smart_copy(other.m_values, other.m_values + m_size, m_values);
+ internal::smart_copy(other.m_indices, other.m_indices + m_size, m_indices);
+ }
+ return *this;
+ }
+
+ void swap(CompressedStorage& other)
+ {
+ std::swap(m_values, other.m_values);
+ std::swap(m_indices, other.m_indices);
+ std::swap(m_size, other.m_size);
+ std::swap(m_allocatedSize, other.m_allocatedSize);
+ }
+
+ ~CompressedStorage()
+ {
+ delete[] m_values;
+ delete[] m_indices;
+ }
+
+ void reserve(Index size)
+ {
+ Index newAllocatedSize = m_size + size;
+ if (newAllocatedSize > m_allocatedSize)
+ reallocate(newAllocatedSize);
+ }
+
+ void squeeze()
+ {
+ if (m_allocatedSize>m_size)
+ reallocate(m_size);
+ }
+
+ void resize(Index size, double reserveSizeFactor = 0)
+ {
+ if (m_allocatedSize<size)
+ {
+ Index realloc_size = (std::min<Index>)(NumTraits<StorageIndex>::highest(), size + Index(reserveSizeFactor*double(size)));
+ if(realloc_size<size)
+ internal::throw_std_bad_alloc();
+ reallocate(realloc_size);
+ }
+ m_size = size;
+ }
+
+ void append(const Scalar& v, Index i)
+ {
+ Index id = m_size;
+ resize(m_size+1, 1);
+ m_values[id] = v;
+ m_indices[id] = internal::convert_index<StorageIndex>(i);
+ }
+
+ inline Index size() const { return m_size; }
+ inline Index allocatedSize() const { return m_allocatedSize; }
+ inline void clear() { m_size = 0; }
+
+ const Scalar* valuePtr() const { return m_values; }
+ Scalar* valuePtr() { return m_values; }
+ const StorageIndex* indexPtr() const { return m_indices; }
+ StorageIndex* indexPtr() { return m_indices; }
+
+ inline Scalar& value(Index i) { eigen_internal_assert(m_values!=0); return m_values[i]; }
+ inline const Scalar& value(Index i) const { eigen_internal_assert(m_values!=0); return m_values[i]; }
+
+ inline StorageIndex& index(Index i) { eigen_internal_assert(m_indices!=0); return m_indices[i]; }
+ inline const StorageIndex& index(Index i) const { eigen_internal_assert(m_indices!=0); return m_indices[i]; }
+
+ /** \returns the largest \c k such that for all \c j in [0,k) index[\c j]\<\a key */
+ inline Index searchLowerIndex(Index key) const
+ {
+ return searchLowerIndex(0, m_size, key);
+ }
+
+ /** \returns the largest \c k in [start,end) such that for all \c j in [start,k) index[\c j]\<\a key */
+ inline Index searchLowerIndex(Index start, Index end, Index key) const
+ {
+ while(end>start)
+ {
+ Index mid = (end+start)>>1;
+ if (m_indices[mid]<key)
+ start = mid+1;
+ else
+ end = mid;
+ }
+ return start;
+ }
+
+ /** \returns the stored value at index \a key
+ * If the value does not exist, then the value \a defaultValue is returned without any insertion. */
+ inline Scalar at(Index key, const Scalar& defaultValue = Scalar(0)) const
+ {
+ if (m_size==0)
+ return defaultValue;
+ else if (key==m_indices[m_size-1])
+ return m_values[m_size-1];
+ // ^^ optimization: let's first check if it is the last coefficient
+ // (very common in high level algorithms)
+ const Index id = searchLowerIndex(0,m_size-1,key);
+ return ((id<m_size) && (m_indices[id]==key)) ? m_values[id] : defaultValue;
+ }
+
+ /** Like at(), but the search is performed in the range [start,end) */
+ inline Scalar atInRange(Index start, Index end, Index key, const Scalar &defaultValue = Scalar(0)) const
+ {
+ if (start>=end)
+ return defaultValue;
+ else if (end>start && key==m_indices[end-1])
+ return m_values[end-1];
+ // ^^ optimization: let's first check if it is the last coefficient
+ // (very common in high level algorithms)
+ const Index id = searchLowerIndex(start,end-1,key);
+ return ((id<end) && (m_indices[id]==key)) ? m_values[id] : defaultValue;
+ }
+
+ /** \returns a reference to the value at index \a key
+ * If the value does not exist, then the value \a defaultValue is inserted
+ * such that the keys are sorted. */
+ inline Scalar& atWithInsertion(Index key, const Scalar& defaultValue = Scalar(0))
+ {
+ Index id = searchLowerIndex(0,m_size,key);
+ if (id>=m_size || m_indices[id]!=key)
+ {
+ if (m_allocatedSize<m_size+1)
+ {
+ m_allocatedSize = 2*(m_size+1);
+ internal::scoped_array<Scalar> newValues(m_allocatedSize);
+ internal::scoped_array<StorageIndex> newIndices(m_allocatedSize);
+
+ // copy first chunk
+ internal::smart_copy(m_values, m_values +id, newValues.ptr());
+ internal::smart_copy(m_indices, m_indices+id, newIndices.ptr());
+
+ // copy the rest
+ if(m_size>id)
+ {
+ internal::smart_copy(m_values +id, m_values +m_size, newValues.ptr() +id+1);
+ internal::smart_copy(m_indices+id, m_indices+m_size, newIndices.ptr()+id+1);
+ }
+ std::swap(m_values,newValues.ptr());
+ std::swap(m_indices,newIndices.ptr());
+ }
+ else if(m_size>id)
+ {
+ internal::smart_memmove(m_values +id, m_values +m_size, m_values +id+1);
+ internal::smart_memmove(m_indices+id, m_indices+m_size, m_indices+id+1);
+ }
+ m_size++;
+ m_indices[id] = internal::convert_index<StorageIndex>(key);
+ m_values[id] = defaultValue;
+ }
+ return m_values[id];
+ }
+
+ void prune(const Scalar& reference, const RealScalar& epsilon = NumTraits<RealScalar>::dummy_precision())
+ {
+ Index k = 0;
+ Index n = size();
+ for (Index i=0; i<n; ++i)
+ {
+ if (!internal::isMuchSmallerThan(value(i), reference, epsilon))
+ {
+ value(k) = value(i);
+ index(k) = index(i);
+ ++k;
+ }
+ }
+ resize(k,0);
+ }
+
+ protected:
+
+ inline void reallocate(Index size)
+ {
+ #ifdef EIGEN_SPARSE_COMPRESSED_STORAGE_REALLOCATE_PLUGIN
+ EIGEN_SPARSE_COMPRESSED_STORAGE_REALLOCATE_PLUGIN
+ #endif
+ eigen_internal_assert(size!=m_allocatedSize);
+ internal::scoped_array<Scalar> newValues(size);
+ internal::scoped_array<StorageIndex> newIndices(size);
+ Index copySize = (std::min)(size, m_size);
+ if (copySize>0) {
+ internal::smart_copy(m_values, m_values+copySize, newValues.ptr());
+ internal::smart_copy(m_indices, m_indices+copySize, newIndices.ptr());
+ }
+ std::swap(m_values,newValues.ptr());
+ std::swap(m_indices,newIndices.ptr());
+ m_allocatedSize = size;
+ }
+
+ protected:
+ Scalar* m_values;
+ StorageIndex* m_indices;
+ Index m_size;
+ Index m_allocatedSize;
+
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPRESSED_STORAGE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
new file mode 100644
index 000000000..492eb0a29
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
@@ -0,0 +1,345 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CONSERVATIVESPARSESPARSEPRODUCT_H
+#define EIGEN_CONSERVATIVESPARSESPARSEPRODUCT_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, typename ResultType>
+static void conservative_sparse_sparse_product_impl(const Lhs& lhs, const Rhs& rhs, ResultType& res, bool sortedInsertion = false)
+{
+ typedef typename remove_all<Lhs>::type::Scalar Scalar;
+
+ // make sure to call innerSize/outerSize since we fake the storage order.
+ Index rows = lhs.innerSize();
+ Index cols = rhs.outerSize();
+ eigen_assert(lhs.outerSize() == rhs.innerSize());
+
+ ei_declare_aligned_stack_constructed_variable(bool, mask, rows, 0);
+ ei_declare_aligned_stack_constructed_variable(Scalar, values, rows, 0);
+ ei_declare_aligned_stack_constructed_variable(Index, indices, rows, 0);
+
+ std::memset(mask,0,sizeof(bool)*rows);
+
+ evaluator<Lhs> lhsEval(lhs);
+ evaluator<Rhs> rhsEval(rhs);
+
+ // estimate the number of non zero entries
+ // given a rhs column containing Y non zeros, we assume that the respective Y columns
+ // of the lhs differs in average of one non zeros, thus the number of non zeros for
+ // the product of a rhs column with the lhs is X+Y where X is the average number of non zero
+ // per column of the lhs.
+ // Therefore, we have nnz(lhs*rhs) = nnz(lhs) + nnz(rhs)
+ Index estimated_nnz_prod = lhsEval.nonZerosEstimate() + rhsEval.nonZerosEstimate();
+
+ res.setZero();
+ res.reserve(Index(estimated_nnz_prod));
+ // we compute each column of the result, one after the other
+ for (Index j=0; j<cols; ++j)
+ {
+
+ res.startVec(j);
+ Index nnz = 0;
+ for (typename evaluator<Rhs>::InnerIterator rhsIt(rhsEval, j); rhsIt; ++rhsIt)
+ {
+ Scalar y = rhsIt.value();
+ Index k = rhsIt.index();
+ for (typename evaluator<Lhs>::InnerIterator lhsIt(lhsEval, k); lhsIt; ++lhsIt)
+ {
+ Index i = lhsIt.index();
+ Scalar x = lhsIt.value();
+ if(!mask[i])
+ {
+ mask[i] = true;
+ values[i] = x * y;
+ indices[nnz] = i;
+ ++nnz;
+ }
+ else
+ values[i] += x * y;
+ }
+ }
+ if(!sortedInsertion)
+ {
+ // unordered insertion
+ for(Index k=0; k<nnz; ++k)
+ {
+ Index i = indices[k];
+ res.insertBackByOuterInnerUnordered(j,i) = values[i];
+ mask[i] = false;
+ }
+ }
+ else
+ {
+ // alternative ordered insertion code:
+ const Index t200 = rows/11; // 11 == (log2(200)*1.39)
+ const Index t = (rows*100)/139;
+
+ // FIXME reserve nnz non zeros
+ // FIXME implement faster sorting algorithms for very small nnz
+ // if the result is sparse enough => use a quick sort
+ // otherwise => loop through the entire vector
+ // In order to avoid to perform an expensive log2 when the
+ // result is clearly very sparse we use a linear bound up to 200.
+ if((nnz<200 && nnz<t200) || nnz * numext::log2(int(nnz)) < t)
+ {
+ if(nnz>1) std::sort(indices,indices+nnz);
+ for(Index k=0; k<nnz; ++k)
+ {
+ Index i = indices[k];
+ res.insertBackByOuterInner(j,i) = values[i];
+ mask[i] = false;
+ }
+ }
+ else
+ {
+ // dense path
+ for(Index i=0; i<rows; ++i)
+ {
+ if(mask[i])
+ {
+ mask[i] = false;
+ res.insertBackByOuterInner(j,i) = values[i];
+ }
+ }
+ }
+ }
+ }
+ res.finalize();
+}
+
+
+} // end namespace internal
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, typename ResultType,
+ int LhsStorageOrder = (traits<Lhs>::Flags&RowMajorBit) ? RowMajor : ColMajor,
+ int RhsStorageOrder = (traits<Rhs>::Flags&RowMajorBit) ? RowMajor : ColMajor,
+ int ResStorageOrder = (traits<ResultType>::Flags&RowMajorBit) ? RowMajor : ColMajor>
+struct conservative_sparse_sparse_product_selector;
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor,ColMajor>
+{
+ typedef typename remove_all<Lhs>::type LhsCleaned;
+ typedef typename LhsCleaned::Scalar Scalar;
+
+ static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+ {
+ typedef SparseMatrix<typename ResultType::Scalar,RowMajor,typename ResultType::StorageIndex> RowMajorMatrix;
+ typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename ResultType::StorageIndex> ColMajorMatrixAux;
+ typedef typename sparse_eval<ColMajorMatrixAux,ResultType::RowsAtCompileTime,ResultType::ColsAtCompileTime,ColMajorMatrixAux::Flags>::type ColMajorMatrix;
+
+ // If the result is tall and thin (in the extreme case a column vector)
+ // then it is faster to sort the coefficients inplace instead of transposing twice.
+ // FIXME, the following heuristic is probably not very good.
+ if(lhs.rows()>rhs.cols())
+ {
+ ColMajorMatrix resCol(lhs.rows(),rhs.cols());
+ // perform sorted insertion
+ internal::conservative_sparse_sparse_product_impl<Lhs,Rhs,ColMajorMatrix>(lhs, rhs, resCol, true);
+ res = resCol.markAsRValue();
+ }
+ else
+ {
+ ColMajorMatrixAux resCol(lhs.rows(),rhs.cols());
+ // ressort to transpose to sort the entries
+ internal::conservative_sparse_sparse_product_impl<Lhs,Rhs,ColMajorMatrixAux>(lhs, rhs, resCol, false);
+ RowMajorMatrix resRow(resCol);
+ res = resRow.markAsRValue();
+ }
+ }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,RowMajor,ColMajor,ColMajor>
+{
+ static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+ {
+ typedef SparseMatrix<typename ResultType::Scalar,RowMajor,typename ResultType::StorageIndex> RowMajorMatrix;
+ RowMajorMatrix rhsRow = rhs;
+ RowMajorMatrix resRow(lhs.rows(), rhs.cols());
+ internal::conservative_sparse_sparse_product_impl<RowMajorMatrix,Lhs,RowMajorMatrix>(rhsRow, lhs, resRow);
+ res = resRow;
+ }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,RowMajor,ColMajor>
+{
+ static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+ {
+ typedef SparseMatrix<typename ResultType::Scalar,RowMajor,typename ResultType::StorageIndex> RowMajorMatrix;
+ RowMajorMatrix lhsRow = lhs;
+ RowMajorMatrix resRow(lhs.rows(), rhs.cols());
+ internal::conservative_sparse_sparse_product_impl<Rhs,RowMajorMatrix,RowMajorMatrix>(rhs, lhsRow, resRow);
+ res = resRow;
+ }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,RowMajor,RowMajor,ColMajor>
+{
+ static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+ {
+ typedef SparseMatrix<typename ResultType::Scalar,RowMajor,typename ResultType::StorageIndex> RowMajorMatrix;
+ RowMajorMatrix resRow(lhs.rows(), rhs.cols());
+ internal::conservative_sparse_sparse_product_impl<Rhs,Lhs,RowMajorMatrix>(rhs, lhs, resRow);
+ res = resRow;
+ }
+};
+
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor,RowMajor>
+{
+ typedef typename traits<typename remove_all<Lhs>::type>::Scalar Scalar;
+
+ static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+ {
+ typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename ResultType::StorageIndex> ColMajorMatrix;
+ ColMajorMatrix resCol(lhs.rows(), rhs.cols());
+ internal::conservative_sparse_sparse_product_impl<Lhs,Rhs,ColMajorMatrix>(lhs, rhs, resCol);
+ res = resCol;
+ }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,RowMajor,ColMajor,RowMajor>
+{
+ static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+ {
+ typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename ResultType::StorageIndex> ColMajorMatrix;
+ ColMajorMatrix lhsCol = lhs;
+ ColMajorMatrix resCol(lhs.rows(), rhs.cols());
+ internal::conservative_sparse_sparse_product_impl<ColMajorMatrix,Rhs,ColMajorMatrix>(lhsCol, rhs, resCol);
+ res = resCol;
+ }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,RowMajor,RowMajor>
+{
+ static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+ {
+ typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename ResultType::StorageIndex> ColMajorMatrix;
+ ColMajorMatrix rhsCol = rhs;
+ ColMajorMatrix resCol(lhs.rows(), rhs.cols());
+ internal::conservative_sparse_sparse_product_impl<Lhs,ColMajorMatrix,ColMajorMatrix>(lhs, rhsCol, resCol);
+ res = resCol;
+ }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,RowMajor,RowMajor,RowMajor>
+{
+ static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+ {
+ typedef SparseMatrix<typename ResultType::Scalar,RowMajor,typename ResultType::StorageIndex> RowMajorMatrix;
+ typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename ResultType::StorageIndex> ColMajorMatrix;
+ RowMajorMatrix resRow(lhs.rows(),rhs.cols());
+ internal::conservative_sparse_sparse_product_impl<Rhs,Lhs,RowMajorMatrix>(rhs, lhs, resRow);
+ // sort the non zeros:
+ ColMajorMatrix resCol(resRow);
+ res = resCol;
+ }
+};
+
+} // end namespace internal
+
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, typename ResultType>
+static void sparse_sparse_to_dense_product_impl(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+{
+ typedef typename remove_all<Lhs>::type::Scalar Scalar;
+ Index cols = rhs.outerSize();
+ eigen_assert(lhs.outerSize() == rhs.innerSize());
+
+ evaluator<Lhs> lhsEval(lhs);
+ evaluator<Rhs> rhsEval(rhs);
+
+ for (Index j=0; j<cols; ++j)
+ {
+ for (typename evaluator<Rhs>::InnerIterator rhsIt(rhsEval, j); rhsIt; ++rhsIt)
+ {
+ Scalar y = rhsIt.value();
+ Index k = rhsIt.index();
+ for (typename evaluator<Lhs>::InnerIterator lhsIt(lhsEval, k); lhsIt; ++lhsIt)
+ {
+ Index i = lhsIt.index();
+ Scalar x = lhsIt.value();
+ res.coeffRef(i,j) += x * y;
+ }
+ }
+ }
+}
+
+
+} // end namespace internal
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, typename ResultType,
+ int LhsStorageOrder = (traits<Lhs>::Flags&RowMajorBit) ? RowMajor : ColMajor,
+ int RhsStorageOrder = (traits<Rhs>::Flags&RowMajorBit) ? RowMajor : ColMajor>
+struct sparse_sparse_to_dense_product_selector;
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct sparse_sparse_to_dense_product_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor>
+{
+ static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+ {
+ internal::sparse_sparse_to_dense_product_impl<Lhs,Rhs,ResultType>(lhs, rhs, res);
+ }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct sparse_sparse_to_dense_product_selector<Lhs,Rhs,ResultType,RowMajor,ColMajor>
+{
+ static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+ {
+ typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename ResultType::StorageIndex> ColMajorMatrix;
+ ColMajorMatrix lhsCol(lhs);
+ internal::sparse_sparse_to_dense_product_impl<ColMajorMatrix,Rhs,ResultType>(lhsCol, rhs, res);
+ }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct sparse_sparse_to_dense_product_selector<Lhs,Rhs,ResultType,ColMajor,RowMajor>
+{
+ static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+ {
+ typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename ResultType::StorageIndex> ColMajorMatrix;
+ ColMajorMatrix rhsCol(rhs);
+ internal::sparse_sparse_to_dense_product_impl<Lhs,ColMajorMatrix,ResultType>(lhs, rhsCol, res);
+ }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct sparse_sparse_to_dense_product_selector<Lhs,Rhs,ResultType,RowMajor,RowMajor>
+{
+ static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+ {
+ Transpose<ResultType> trRes(res);
+ internal::sparse_sparse_to_dense_product_impl<Rhs,Lhs,Transpose<ResultType> >(rhs, lhs, trRes);
+ }
+};
+
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_CONSERVATIVESPARSESPARSEPRODUCT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h
new file mode 100644
index 000000000..67718c85b
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h
@@ -0,0 +1,67 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MAPPED_SPARSEMATRIX_H
+#define EIGEN_MAPPED_SPARSEMATRIX_H
+
+namespace Eigen {
+
+/** \deprecated Use Map<SparseMatrix<> >
+ * \class MappedSparseMatrix
+ *
+ * \brief Sparse matrix
+ *
+ * \param _Scalar the scalar type, i.e. the type of the coefficients
+ *
+ * See http://www.netlib.org/linalg/html_templates/node91.html for details on the storage scheme.
+ *
+ */
+namespace internal {
+template<typename _Scalar, int _Flags, typename _StorageIndex>
+struct traits<MappedSparseMatrix<_Scalar, _Flags, _StorageIndex> > : traits<SparseMatrix<_Scalar, _Flags, _StorageIndex> >
+{};
+} // end namespace internal
+
+template<typename _Scalar, int _Flags, typename _StorageIndex>
+class MappedSparseMatrix
+ : public Map<SparseMatrix<_Scalar, _Flags, _StorageIndex> >
+{
+ typedef Map<SparseMatrix<_Scalar, _Flags, _StorageIndex> > Base;
+
+ public:
+
+ typedef typename Base::StorageIndex StorageIndex;
+ typedef typename Base::Scalar Scalar;
+
+ inline MappedSparseMatrix(Index rows, Index cols, Index nnz, StorageIndex* outerIndexPtr, StorageIndex* innerIndexPtr, Scalar* valuePtr, StorageIndex* innerNonZeroPtr = 0)
+ : Base(rows, cols, nnz, outerIndexPtr, innerIndexPtr, valuePtr, innerNonZeroPtr)
+ {}
+
+ /** Empty destructor */
+ inline ~MappedSparseMatrix() {}
+};
+
+namespace internal {
+
+template<typename _Scalar, int _Options, typename _StorageIndex>
+struct evaluator<MappedSparseMatrix<_Scalar,_Options,_StorageIndex> >
+ : evaluator<SparseCompressedBase<MappedSparseMatrix<_Scalar,_Options,_StorageIndex> > >
+{
+ typedef MappedSparseMatrix<_Scalar,_Options,_StorageIndex> XprType;
+ typedef evaluator<SparseCompressedBase<XprType> > Base;
+
+ evaluator() : Base() {}
+ explicit evaluator(const XprType &mat) : Base(mat) {}
+};
+
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_MAPPED_SPARSEMATRIX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseAssign.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseAssign.h
new file mode 100644
index 000000000..18352a847
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseAssign.h
@@ -0,0 +1,216 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEASSIGN_H
+#define EIGEN_SPARSEASSIGN_H
+
+namespace Eigen {
+
+template<typename Derived>
+template<typename OtherDerived>
+Derived& SparseMatrixBase<Derived>::operator=(const EigenBase<OtherDerived> &other)
+{
+ internal::call_assignment_no_alias(derived(), other.derived());
+ return derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+Derived& SparseMatrixBase<Derived>::operator=(const ReturnByValue<OtherDerived>& other)
+{
+ // TODO use the evaluator mechanism
+ other.evalTo(derived());
+ return derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+inline Derived& SparseMatrixBase<Derived>::operator=(const SparseMatrixBase<OtherDerived>& other)
+{
+ // by default sparse evaluation do not alias, so we can safely bypass the generic call_assignment routine
+ internal::Assignment<Derived,OtherDerived,internal::assign_op<Scalar,typename OtherDerived::Scalar> >
+ ::run(derived(), other.derived(), internal::assign_op<Scalar,typename OtherDerived::Scalar>());
+ return derived();
+}
+
+template<typename Derived>
+inline Derived& SparseMatrixBase<Derived>::operator=(const Derived& other)
+{
+ internal::call_assignment_no_alias(derived(), other.derived());
+ return derived();
+}
+
+namespace internal {
+
+template<>
+struct storage_kind_to_evaluator_kind<Sparse> {
+ typedef IteratorBased Kind;
+};
+
+template<>
+struct storage_kind_to_shape<Sparse> {
+ typedef SparseShape Shape;
+};
+
+struct Sparse2Sparse {};
+struct Sparse2Dense {};
+
+template<> struct AssignmentKind<SparseShape, SparseShape> { typedef Sparse2Sparse Kind; };
+template<> struct AssignmentKind<SparseShape, SparseTriangularShape> { typedef Sparse2Sparse Kind; };
+template<> struct AssignmentKind<DenseShape, SparseShape> { typedef Sparse2Dense Kind; };
+template<> struct AssignmentKind<DenseShape, SparseTriangularShape> { typedef Sparse2Dense Kind; };
+
+
+template<typename DstXprType, typename SrcXprType>
+void assign_sparse_to_sparse(DstXprType &dst, const SrcXprType &src)
+{
+ typedef typename DstXprType::Scalar Scalar;
+ typedef internal::evaluator<DstXprType> DstEvaluatorType;
+ typedef internal::evaluator<SrcXprType> SrcEvaluatorType;
+
+ SrcEvaluatorType srcEvaluator(src);
+
+ const bool transpose = (DstEvaluatorType::Flags & RowMajorBit) != (SrcEvaluatorType::Flags & RowMajorBit);
+ const Index outerEvaluationSize = (SrcEvaluatorType::Flags&RowMajorBit) ? src.rows() : src.cols();
+ if ((!transpose) && src.isRValue())
+ {
+ // eval without temporary
+ dst.resize(src.rows(), src.cols());
+ dst.setZero();
+ dst.reserve((std::max)(src.rows(),src.cols())*2);
+ for (Index j=0; j<outerEvaluationSize; ++j)
+ {
+ dst.startVec(j);
+ for (typename SrcEvaluatorType::InnerIterator it(srcEvaluator, j); it; ++it)
+ {
+ Scalar v = it.value();
+ dst.insertBackByOuterInner(j,it.index()) = v;
+ }
+ }
+ dst.finalize();
+ }
+ else
+ {
+ // eval through a temporary
+ eigen_assert(( ((internal::traits<DstXprType>::SupportedAccessPatterns & OuterRandomAccessPattern)==OuterRandomAccessPattern) ||
+ (!((DstEvaluatorType::Flags & RowMajorBit) != (SrcEvaluatorType::Flags & RowMajorBit)))) &&
+ "the transpose operation is supposed to be handled in SparseMatrix::operator=");
+
+ enum { Flip = (DstEvaluatorType::Flags & RowMajorBit) != (SrcEvaluatorType::Flags & RowMajorBit) };
+
+
+ DstXprType temp(src.rows(), src.cols());
+
+ temp.reserve((std::max)(src.rows(),src.cols())*2);
+ for (Index j=0; j<outerEvaluationSize; ++j)
+ {
+ temp.startVec(j);
+ for (typename SrcEvaluatorType::InnerIterator it(srcEvaluator, j); it; ++it)
+ {
+ Scalar v = it.value();
+ temp.insertBackByOuterInner(Flip?it.index():j,Flip?j:it.index()) = v;
+ }
+ }
+ temp.finalize();
+
+ dst = temp.markAsRValue();
+ }
+}
+
+// Generic Sparse to Sparse assignment
+template< typename DstXprType, typename SrcXprType, typename Functor>
+struct Assignment<DstXprType, SrcXprType, Functor, Sparse2Sparse>
+{
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<typename DstXprType::Scalar,typename SrcXprType::Scalar> &/*func*/)
+ {
+ assign_sparse_to_sparse(dst.derived(), src.derived());
+ }
+};
+
+// Generic Sparse to Dense assignment
+template< typename DstXprType, typename SrcXprType, typename Functor>
+struct Assignment<DstXprType, SrcXprType, Functor, Sparse2Dense>
+{
+ static void run(DstXprType &dst, const SrcXprType &src, const Functor &func)
+ {
+ if(internal::is_same<Functor,internal::assign_op<typename DstXprType::Scalar,typename SrcXprType::Scalar> >::value)
+ dst.setZero();
+
+ internal::evaluator<SrcXprType> srcEval(src);
+ resize_if_allowed(dst, src, func);
+ internal::evaluator<DstXprType> dstEval(dst);
+
+ const Index outerEvaluationSize = (internal::evaluator<SrcXprType>::Flags&RowMajorBit) ? src.rows() : src.cols();
+ for (Index j=0; j<outerEvaluationSize; ++j)
+ for (typename internal::evaluator<SrcXprType>::InnerIterator i(srcEval,j); i; ++i)
+ func.assignCoeff(dstEval.coeffRef(i.row(),i.col()), i.value());
+ }
+};
+
+// Specialization for "dst = dec.solve(rhs)"
+// NOTE we need to specialize it for Sparse2Sparse to avoid ambiguous specialization error
+template<typename DstXprType, typename DecType, typename RhsType, typename Scalar>
+struct Assignment<DstXprType, Solve<DecType,RhsType>, internal::assign_op<Scalar,Scalar>, Sparse2Sparse>
+{
+ typedef Solve<DecType,RhsType> SrcXprType;
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<Scalar,Scalar> &)
+ {
+ Index dstRows = src.rows();
+ Index dstCols = src.cols();
+ if((dst.rows()!=dstRows) || (dst.cols()!=dstCols))
+ dst.resize(dstRows, dstCols);
+
+ src.dec()._solve_impl(src.rhs(), dst);
+ }
+};
+
+struct Diagonal2Sparse {};
+
+template<> struct AssignmentKind<SparseShape,DiagonalShape> { typedef Diagonal2Sparse Kind; };
+
+template< typename DstXprType, typename SrcXprType, typename Functor>
+struct Assignment<DstXprType, SrcXprType, Functor, Diagonal2Sparse>
+{
+ typedef typename DstXprType::StorageIndex StorageIndex;
+ typedef typename DstXprType::Scalar Scalar;
+ typedef Array<StorageIndex,Dynamic,1> ArrayXI;
+ typedef Array<Scalar,Dynamic,1> ArrayXS;
+ template<int Options>
+ static void run(SparseMatrix<Scalar,Options,StorageIndex> &dst, const SrcXprType &src, const internal::assign_op<typename DstXprType::Scalar,typename SrcXprType::Scalar> &/*func*/)
+ {
+ Index dstRows = src.rows();
+ Index dstCols = src.cols();
+ if((dst.rows()!=dstRows) || (dst.cols()!=dstCols))
+ dst.resize(dstRows, dstCols);
+
+ Index size = src.diagonal().size();
+ dst.makeCompressed();
+ dst.resizeNonZeros(size);
+ Map<ArrayXI>(dst.innerIndexPtr(), size).setLinSpaced(0,StorageIndex(size)-1);
+ Map<ArrayXI>(dst.outerIndexPtr(), size+1).setLinSpaced(0,StorageIndex(size));
+ Map<ArrayXS>(dst.valuePtr(), size) = src.diagonal();
+ }
+
+ template<typename DstDerived>
+ static void run(SparseMatrixBase<DstDerived> &dst, const SrcXprType &src, const internal::assign_op<typename DstXprType::Scalar,typename SrcXprType::Scalar> &/*func*/)
+ {
+ dst.diagonal() = src.diagonal();
+ }
+
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::add_assign_op<typename DstXprType::Scalar,typename SrcXprType::Scalar> &/*func*/)
+ { dst.diagonal() += src.diagonal(); }
+
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::sub_assign_op<typename DstXprType::Scalar,typename SrcXprType::Scalar> &/*func*/)
+ { dst.diagonal() -= src.diagonal(); }
+};
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEASSIGN_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseBlock.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseBlock.h
new file mode 100644
index 000000000..511e92b2f
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseBlock.h
@@ -0,0 +1,603 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_BLOCK_H
+#define EIGEN_SPARSE_BLOCK_H
+
+namespace Eigen {
+
+// Subset of columns or rows
+template<typename XprType, int BlockRows, int BlockCols>
+class BlockImpl<XprType,BlockRows,BlockCols,true,Sparse>
+ : public SparseMatrixBase<Block<XprType,BlockRows,BlockCols,true> >
+{
+ typedef typename internal::remove_all<typename XprType::Nested>::type _MatrixTypeNested;
+ typedef Block<XprType, BlockRows, BlockCols, true> BlockType;
+public:
+ enum { IsRowMajor = internal::traits<BlockType>::IsRowMajor };
+protected:
+ enum { OuterSize = IsRowMajor ? BlockRows : BlockCols };
+ typedef SparseMatrixBase<BlockType> Base;
+ using Base::convert_index;
+public:
+ EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType)
+
+ inline BlockImpl(XprType& xpr, Index i)
+ : m_matrix(xpr), m_outerStart(convert_index(i)), m_outerSize(OuterSize)
+ {}
+
+ inline BlockImpl(XprType& xpr, Index startRow, Index startCol, Index blockRows, Index blockCols)
+ : m_matrix(xpr), m_outerStart(convert_index(IsRowMajor ? startRow : startCol)), m_outerSize(convert_index(IsRowMajor ? blockRows : blockCols))
+ {}
+
+ EIGEN_STRONG_INLINE Index rows() const { return IsRowMajor ? m_outerSize.value() : m_matrix.rows(); }
+ EIGEN_STRONG_INLINE Index cols() const { return IsRowMajor ? m_matrix.cols() : m_outerSize.value(); }
+
+ Index nonZeros() const
+ {
+ typedef internal::evaluator<XprType> EvaluatorType;
+ EvaluatorType matEval(m_matrix);
+ Index nnz = 0;
+ Index end = m_outerStart + m_outerSize.value();
+ for(Index j=m_outerStart; j<end; ++j)
+ for(typename EvaluatorType::InnerIterator it(matEval, j); it; ++it)
+ ++nnz;
+ return nnz;
+ }
+
+ inline const Scalar coeff(Index row, Index col) const
+ {
+ return m_matrix.coeff(row + (IsRowMajor ? m_outerStart : 0), col + (IsRowMajor ? 0 : m_outerStart));
+ }
+
+ inline const Scalar coeff(Index index) const
+ {
+ return m_matrix.coeff(IsRowMajor ? m_outerStart : index, IsRowMajor ? index : m_outerStart);
+ }
+
+ inline const XprType& nestedExpression() const { return m_matrix; }
+ inline XprType& nestedExpression() { return m_matrix; }
+ Index startRow() const { return IsRowMajor ? m_outerStart : 0; }
+ Index startCol() const { return IsRowMajor ? 0 : m_outerStart; }
+ Index blockRows() const { return IsRowMajor ? m_outerSize.value() : m_matrix.rows(); }
+ Index blockCols() const { return IsRowMajor ? m_matrix.cols() : m_outerSize.value(); }
+
+ protected:
+
+ typename internal::ref_selector<XprType>::non_const_type m_matrix;
+ Index m_outerStart;
+ const internal::variable_if_dynamic<Index, OuterSize> m_outerSize;
+
+ protected:
+ // Disable assignment with clear error message.
+ // Note that simply removing operator= yields compilation errors with ICC+MSVC
+ template<typename T>
+ BlockImpl& operator=(const T&)
+ {
+ EIGEN_STATIC_ASSERT(sizeof(T)==0, THIS_SPARSE_BLOCK_SUBEXPRESSION_IS_READ_ONLY);
+ return *this;
+ }
+};
+
+
+/***************************************************************************
+* specialization for SparseMatrix
+***************************************************************************/
+
+namespace internal {
+
+template<typename SparseMatrixType, int BlockRows, int BlockCols>
+class sparse_matrix_block_impl
+ : public SparseCompressedBase<Block<SparseMatrixType,BlockRows,BlockCols,true> >
+{
+ typedef typename internal::remove_all<typename SparseMatrixType::Nested>::type _MatrixTypeNested;
+ typedef Block<SparseMatrixType, BlockRows, BlockCols, true> BlockType;
+ typedef SparseCompressedBase<Block<SparseMatrixType,BlockRows,BlockCols,true> > Base;
+ using Base::convert_index;
+public:
+ enum { IsRowMajor = internal::traits<BlockType>::IsRowMajor };
+ EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType)
+protected:
+ typedef typename Base::IndexVector IndexVector;
+ enum { OuterSize = IsRowMajor ? BlockRows : BlockCols };
+public:
+
+ inline sparse_matrix_block_impl(SparseMatrixType& xpr, Index i)
+ : m_matrix(xpr), m_outerStart(convert_index(i)), m_outerSize(OuterSize)
+ {}
+
+ inline sparse_matrix_block_impl(SparseMatrixType& xpr, Index startRow, Index startCol, Index blockRows, Index blockCols)
+ : m_matrix(xpr), m_outerStart(convert_index(IsRowMajor ? startRow : startCol)), m_outerSize(convert_index(IsRowMajor ? blockRows : blockCols))
+ {}
+
+ template<typename OtherDerived>
+ inline BlockType& operator=(const SparseMatrixBase<OtherDerived>& other)
+ {
+ typedef typename internal::remove_all<typename SparseMatrixType::Nested>::type _NestedMatrixType;
+ _NestedMatrixType& matrix = m_matrix;
+ // This assignment is slow if this vector set is not empty
+ // and/or it is not at the end of the nonzeros of the underlying matrix.
+
+ // 1 - eval to a temporary to avoid transposition and/or aliasing issues
+ Ref<const SparseMatrix<Scalar, IsRowMajor ? RowMajor : ColMajor, StorageIndex> > tmp(other.derived());
+ eigen_internal_assert(tmp.outerSize()==m_outerSize.value());
+
+ // 2 - let's check whether there is enough allocated memory
+ Index nnz = tmp.nonZeros();
+ Index start = m_outerStart==0 ? 0 : m_matrix.outerIndexPtr()[m_outerStart]; // starting position of the current block
+ Index end = m_matrix.outerIndexPtr()[m_outerStart+m_outerSize.value()]; // ending position of the current block
+ Index block_size = end - start; // available room in the current block
+ Index tail_size = m_matrix.outerIndexPtr()[m_matrix.outerSize()] - end;
+
+ Index free_size = m_matrix.isCompressed()
+ ? Index(matrix.data().allocatedSize()) + block_size
+ : block_size;
+
+ Index tmp_start = tmp.outerIndexPtr()[0];
+
+ bool update_trailing_pointers = false;
+ if(nnz>free_size)
+ {
+ // realloc manually to reduce copies
+ typename SparseMatrixType::Storage newdata(m_matrix.data().allocatedSize() - block_size + nnz);
+
+ internal::smart_copy(m_matrix.valuePtr(), m_matrix.valuePtr() + start, newdata.valuePtr());
+ internal::smart_copy(m_matrix.innerIndexPtr(), m_matrix.innerIndexPtr() + start, newdata.indexPtr());
+
+ internal::smart_copy(tmp.valuePtr() + tmp_start, tmp.valuePtr() + tmp_start + nnz, newdata.valuePtr() + start);
+ internal::smart_copy(tmp.innerIndexPtr() + tmp_start, tmp.innerIndexPtr() + tmp_start + nnz, newdata.indexPtr() + start);
+
+ internal::smart_copy(matrix.valuePtr()+end, matrix.valuePtr()+end + tail_size, newdata.valuePtr()+start+nnz);
+ internal::smart_copy(matrix.innerIndexPtr()+end, matrix.innerIndexPtr()+end + tail_size, newdata.indexPtr()+start+nnz);
+
+ newdata.resize(m_matrix.outerIndexPtr()[m_matrix.outerSize()] - block_size + nnz);
+
+ matrix.data().swap(newdata);
+
+ update_trailing_pointers = true;
+ }
+ else
+ {
+ if(m_matrix.isCompressed())
+ {
+ // no need to realloc, simply copy the tail at its respective position and insert tmp
+ matrix.data().resize(start + nnz + tail_size);
+
+ internal::smart_memmove(matrix.valuePtr()+end, matrix.valuePtr() + end+tail_size, matrix.valuePtr() + start+nnz);
+ internal::smart_memmove(matrix.innerIndexPtr()+end, matrix.innerIndexPtr() + end+tail_size, matrix.innerIndexPtr() + start+nnz);
+
+ update_trailing_pointers = true;
+ }
+
+ internal::smart_copy(tmp.valuePtr() + tmp_start, tmp.valuePtr() + tmp_start + nnz, matrix.valuePtr() + start);
+ internal::smart_copy(tmp.innerIndexPtr() + tmp_start, tmp.innerIndexPtr() + tmp_start + nnz, matrix.innerIndexPtr() + start);
+ }
+
+ // update outer index pointers and innerNonZeros
+ if(IsVectorAtCompileTime)
+ {
+ if(!m_matrix.isCompressed())
+ matrix.innerNonZeroPtr()[m_outerStart] = StorageIndex(nnz);
+ matrix.outerIndexPtr()[m_outerStart] = StorageIndex(start);
+ }
+ else
+ {
+ StorageIndex p = StorageIndex(start);
+ for(Index k=0; k<m_outerSize.value(); ++k)
+ {
+ StorageIndex nnz_k = internal::convert_index<StorageIndex>(tmp.innerVector(k).nonZeros());
+ if(!m_matrix.isCompressed())
+ matrix.innerNonZeroPtr()[m_outerStart+k] = nnz_k;
+ matrix.outerIndexPtr()[m_outerStart+k] = p;
+ p += nnz_k;
+ }
+ }
+
+ if(update_trailing_pointers)
+ {
+ StorageIndex offset = internal::convert_index<StorageIndex>(nnz - block_size);
+ for(Index k = m_outerStart + m_outerSize.value(); k<=matrix.outerSize(); ++k)
+ {
+ matrix.outerIndexPtr()[k] += offset;
+ }
+ }
+
+ return derived();
+ }
+
+ inline BlockType& operator=(const BlockType& other)
+ {
+ return operator=<BlockType>(other);
+ }
+
+ inline const Scalar* valuePtr() const
+ { return m_matrix.valuePtr(); }
+ inline Scalar* valuePtr()
+ { return m_matrix.valuePtr(); }
+
+ inline const StorageIndex* innerIndexPtr() const
+ { return m_matrix.innerIndexPtr(); }
+ inline StorageIndex* innerIndexPtr()
+ { return m_matrix.innerIndexPtr(); }
+
+ inline const StorageIndex* outerIndexPtr() const
+ { return m_matrix.outerIndexPtr() + m_outerStart; }
+ inline StorageIndex* outerIndexPtr()
+ { return m_matrix.outerIndexPtr() + m_outerStart; }
+
+ inline const StorageIndex* innerNonZeroPtr() const
+ { return isCompressed() ? 0 : (m_matrix.innerNonZeroPtr()+m_outerStart); }
+ inline StorageIndex* innerNonZeroPtr()
+ { return isCompressed() ? 0 : (m_matrix.innerNonZeroPtr()+m_outerStart); }
+
+ bool isCompressed() const { return m_matrix.innerNonZeroPtr()==0; }
+
+ inline Scalar& coeffRef(Index row, Index col)
+ {
+ return m_matrix.coeffRef(row + (IsRowMajor ? m_outerStart : 0), col + (IsRowMajor ? 0 : m_outerStart));
+ }
+
+ inline const Scalar coeff(Index row, Index col) const
+ {
+ return m_matrix.coeff(row + (IsRowMajor ? m_outerStart : 0), col + (IsRowMajor ? 0 : m_outerStart));
+ }
+
+ inline const Scalar coeff(Index index) const
+ {
+ return m_matrix.coeff(IsRowMajor ? m_outerStart : index, IsRowMajor ? index : m_outerStart);
+ }
+
+ const Scalar& lastCoeff() const
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(sparse_matrix_block_impl);
+ eigen_assert(Base::nonZeros()>0);
+ if(m_matrix.isCompressed())
+ return m_matrix.valuePtr()[m_matrix.outerIndexPtr()[m_outerStart+1]-1];
+ else
+ return m_matrix.valuePtr()[m_matrix.outerIndexPtr()[m_outerStart]+m_matrix.innerNonZeroPtr()[m_outerStart]-1];
+ }
+
+ EIGEN_STRONG_INLINE Index rows() const { return IsRowMajor ? m_outerSize.value() : m_matrix.rows(); }
+ EIGEN_STRONG_INLINE Index cols() const { return IsRowMajor ? m_matrix.cols() : m_outerSize.value(); }
+
+ inline const SparseMatrixType& nestedExpression() const { return m_matrix; }
+ inline SparseMatrixType& nestedExpression() { return m_matrix; }
+ Index startRow() const { return IsRowMajor ? m_outerStart : 0; }
+ Index startCol() const { return IsRowMajor ? 0 : m_outerStart; }
+ Index blockRows() const { return IsRowMajor ? m_outerSize.value() : m_matrix.rows(); }
+ Index blockCols() const { return IsRowMajor ? m_matrix.cols() : m_outerSize.value(); }
+
+ protected:
+
+ typename internal::ref_selector<SparseMatrixType>::non_const_type m_matrix;
+ Index m_outerStart;
+ const internal::variable_if_dynamic<Index, OuterSize> m_outerSize;
+
+};
+
+} // namespace internal
+
+template<typename _Scalar, int _Options, typename _StorageIndex, int BlockRows, int BlockCols>
+class BlockImpl<SparseMatrix<_Scalar, _Options, _StorageIndex>,BlockRows,BlockCols,true,Sparse>
+ : public internal::sparse_matrix_block_impl<SparseMatrix<_Scalar, _Options, _StorageIndex>,BlockRows,BlockCols>
+{
+public:
+ typedef _StorageIndex StorageIndex;
+ typedef SparseMatrix<_Scalar, _Options, _StorageIndex> SparseMatrixType;
+ typedef internal::sparse_matrix_block_impl<SparseMatrixType,BlockRows,BlockCols> Base;
+ inline BlockImpl(SparseMatrixType& xpr, Index i)
+ : Base(xpr, i)
+ {}
+
+ inline BlockImpl(SparseMatrixType& xpr, Index startRow, Index startCol, Index blockRows, Index blockCols)
+ : Base(xpr, startRow, startCol, blockRows, blockCols)
+ {}
+
+ using Base::operator=;
+};
+
+template<typename _Scalar, int _Options, typename _StorageIndex, int BlockRows, int BlockCols>
+class BlockImpl<const SparseMatrix<_Scalar, _Options, _StorageIndex>,BlockRows,BlockCols,true,Sparse>
+ : public internal::sparse_matrix_block_impl<const SparseMatrix<_Scalar, _Options, _StorageIndex>,BlockRows,BlockCols>
+{
+public:
+ typedef _StorageIndex StorageIndex;
+ typedef const SparseMatrix<_Scalar, _Options, _StorageIndex> SparseMatrixType;
+ typedef internal::sparse_matrix_block_impl<SparseMatrixType,BlockRows,BlockCols> Base;
+ inline BlockImpl(SparseMatrixType& xpr, Index i)
+ : Base(xpr, i)
+ {}
+
+ inline BlockImpl(SparseMatrixType& xpr, Index startRow, Index startCol, Index blockRows, Index blockCols)
+ : Base(xpr, startRow, startCol, blockRows, blockCols)
+ {}
+
+ using Base::operator=;
+private:
+ template<typename Derived> BlockImpl(const SparseMatrixBase<Derived>& xpr, Index i);
+ template<typename Derived> BlockImpl(const SparseMatrixBase<Derived>& xpr);
+};
+
+//----------
+
+/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
+ * is col-major (resp. row-major).
+ */
+template<typename Derived>
+typename SparseMatrixBase<Derived>::InnerVectorReturnType SparseMatrixBase<Derived>::innerVector(Index outer)
+{ return InnerVectorReturnType(derived(), outer); }
+
+/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
+ * is col-major (resp. row-major). Read-only.
+ */
+template<typename Derived>
+const typename SparseMatrixBase<Derived>::ConstInnerVectorReturnType SparseMatrixBase<Derived>::innerVector(Index outer) const
+{ return ConstInnerVectorReturnType(derived(), outer); }
+
+/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
+ * is col-major (resp. row-major).
+ */
+template<typename Derived>
+typename SparseMatrixBase<Derived>::InnerVectorsReturnType
+SparseMatrixBase<Derived>::innerVectors(Index outerStart, Index outerSize)
+{
+ return Block<Derived,Dynamic,Dynamic,true>(derived(),
+ IsRowMajor ? outerStart : 0, IsRowMajor ? 0 : outerStart,
+ IsRowMajor ? outerSize : rows(), IsRowMajor ? cols() : outerSize);
+
+}
+
+/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
+ * is col-major (resp. row-major). Read-only.
+ */
+template<typename Derived>
+const typename SparseMatrixBase<Derived>::ConstInnerVectorsReturnType
+SparseMatrixBase<Derived>::innerVectors(Index outerStart, Index outerSize) const
+{
+ return Block<const Derived,Dynamic,Dynamic,true>(derived(),
+ IsRowMajor ? outerStart : 0, IsRowMajor ? 0 : outerStart,
+ IsRowMajor ? outerSize : rows(), IsRowMajor ? cols() : outerSize);
+
+}
+
+/** Generic implementation of sparse Block expression.
+ * Real-only.
+ */
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel>
+class BlockImpl<XprType,BlockRows,BlockCols,InnerPanel,Sparse>
+ : public SparseMatrixBase<Block<XprType,BlockRows,BlockCols,InnerPanel> >, internal::no_assignment_operator
+{
+ typedef Block<XprType, BlockRows, BlockCols, InnerPanel> BlockType;
+ typedef SparseMatrixBase<BlockType> Base;
+ using Base::convert_index;
+public:
+ enum { IsRowMajor = internal::traits<BlockType>::IsRowMajor };
+ EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType)
+
+ typedef typename internal::remove_all<typename XprType::Nested>::type _MatrixTypeNested;
+
+ /** Column or Row constructor
+ */
+ inline BlockImpl(XprType& xpr, Index i)
+ : m_matrix(xpr),
+ m_startRow( (BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) ? convert_index(i) : 0),
+ m_startCol( (BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) ? convert_index(i) : 0),
+ m_blockRows(BlockRows==1 ? 1 : xpr.rows()),
+ m_blockCols(BlockCols==1 ? 1 : xpr.cols())
+ {}
+
+ /** Dynamic-size constructor
+ */
+ inline BlockImpl(XprType& xpr, Index startRow, Index startCol, Index blockRows, Index blockCols)
+ : m_matrix(xpr), m_startRow(convert_index(startRow)), m_startCol(convert_index(startCol)), m_blockRows(convert_index(blockRows)), m_blockCols(convert_index(blockCols))
+ {}
+
+ inline Index rows() const { return m_blockRows.value(); }
+ inline Index cols() const { return m_blockCols.value(); }
+
+ inline Scalar& coeffRef(Index row, Index col)
+ {
+ return m_matrix.coeffRef(row + m_startRow.value(), col + m_startCol.value());
+ }
+
+ inline const Scalar coeff(Index row, Index col) const
+ {
+ return m_matrix.coeff(row + m_startRow.value(), col + m_startCol.value());
+ }
+
+ inline Scalar& coeffRef(Index index)
+ {
+ return m_matrix.coeffRef(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+ m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
+ }
+
+ inline const Scalar coeff(Index index) const
+ {
+ return m_matrix.coeff(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+ m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
+ }
+
+ inline const XprType& nestedExpression() const { return m_matrix; }
+ inline XprType& nestedExpression() { return m_matrix; }
+ Index startRow() const { return m_startRow.value(); }
+ Index startCol() const { return m_startCol.value(); }
+ Index blockRows() const { return m_blockRows.value(); }
+ Index blockCols() const { return m_blockCols.value(); }
+
+ protected:
+// friend class internal::GenericSparseBlockInnerIteratorImpl<XprType,BlockRows,BlockCols,InnerPanel>;
+ friend struct internal::unary_evaluator<Block<XprType,BlockRows,BlockCols,InnerPanel>, internal::IteratorBased, Scalar >;
+
+ Index nonZeros() const { return Dynamic; }
+
+ typename internal::ref_selector<XprType>::non_const_type m_matrix;
+ const internal::variable_if_dynamic<Index, XprType::RowsAtCompileTime == 1 ? 0 : Dynamic> m_startRow;
+ const internal::variable_if_dynamic<Index, XprType::ColsAtCompileTime == 1 ? 0 : Dynamic> m_startCol;
+ const internal::variable_if_dynamic<Index, RowsAtCompileTime> m_blockRows;
+ const internal::variable_if_dynamic<Index, ColsAtCompileTime> m_blockCols;
+
+ protected:
+ // Disable assignment with clear error message.
+ // Note that simply removing operator= yields compilation errors with ICC+MSVC
+ template<typename T>
+ BlockImpl& operator=(const T&)
+ {
+ EIGEN_STATIC_ASSERT(sizeof(T)==0, THIS_SPARSE_BLOCK_SUBEXPRESSION_IS_READ_ONLY);
+ return *this;
+ }
+
+};
+
+namespace internal {
+
+template<typename ArgType, int BlockRows, int BlockCols, bool InnerPanel>
+struct unary_evaluator<Block<ArgType,BlockRows,BlockCols,InnerPanel>, IteratorBased >
+ : public evaluator_base<Block<ArgType,BlockRows,BlockCols,InnerPanel> >
+{
+ class InnerVectorInnerIterator;
+ class OuterVectorInnerIterator;
+ public:
+ typedef Block<ArgType,BlockRows,BlockCols,InnerPanel> XprType;
+ typedef typename XprType::StorageIndex StorageIndex;
+ typedef typename XprType::Scalar Scalar;
+
+ enum {
+ IsRowMajor = XprType::IsRowMajor,
+
+ OuterVector = (BlockCols==1 && ArgType::IsRowMajor)
+ | // FIXME | instead of || to please GCC 4.4.0 stupid warning "suggest parentheses around &&".
+ // revert to || as soon as not needed anymore.
+ (BlockRows==1 && !ArgType::IsRowMajor),
+
+ CoeffReadCost = evaluator<ArgType>::CoeffReadCost,
+ Flags = XprType::Flags
+ };
+
+ typedef typename internal::conditional<OuterVector,OuterVectorInnerIterator,InnerVectorInnerIterator>::type InnerIterator;
+
+ explicit unary_evaluator(const XprType& op)
+ : m_argImpl(op.nestedExpression()), m_block(op)
+ {}
+
+ inline Index nonZerosEstimate() const {
+ Index nnz = m_block.nonZeros();
+ if(nnz<0)
+ return m_argImpl.nonZerosEstimate() * m_block.size() / m_block.nestedExpression().size();
+ return nnz;
+ }
+
+ protected:
+ typedef typename evaluator<ArgType>::InnerIterator EvalIterator;
+
+ evaluator<ArgType> m_argImpl;
+ const XprType &m_block;
+};
+
+template<typename ArgType, int BlockRows, int BlockCols, bool InnerPanel>
+class unary_evaluator<Block<ArgType,BlockRows,BlockCols,InnerPanel>, IteratorBased>::InnerVectorInnerIterator
+ : public EvalIterator
+{
+ enum { IsRowMajor = unary_evaluator::IsRowMajor };
+ const XprType& m_block;
+ Index m_end;
+public:
+
+ EIGEN_STRONG_INLINE InnerVectorInnerIterator(const unary_evaluator& aEval, Index outer)
+ : EvalIterator(aEval.m_argImpl, outer + (IsRowMajor ? aEval.m_block.startRow() : aEval.m_block.startCol())),
+ m_block(aEval.m_block),
+ m_end(IsRowMajor ? aEval.m_block.startCol()+aEval.m_block.blockCols() : aEval.m_block.startRow()+aEval.m_block.blockRows())
+ {
+ while( (EvalIterator::operator bool()) && (EvalIterator::index() < (IsRowMajor ? m_block.startCol() : m_block.startRow())) )
+ EvalIterator::operator++();
+ }
+
+ inline StorageIndex index() const { return EvalIterator::index() - convert_index<StorageIndex>(IsRowMajor ? m_block.startCol() : m_block.startRow()); }
+ inline Index outer() const { return EvalIterator::outer() - (IsRowMajor ? m_block.startRow() : m_block.startCol()); }
+ inline Index row() const { return EvalIterator::row() - m_block.startRow(); }
+ inline Index col() const { return EvalIterator::col() - m_block.startCol(); }
+
+ inline operator bool() const { return EvalIterator::operator bool() && EvalIterator::index() < m_end; }
+};
+
+template<typename ArgType, int BlockRows, int BlockCols, bool InnerPanel>
+class unary_evaluator<Block<ArgType,BlockRows,BlockCols,InnerPanel>, IteratorBased>::OuterVectorInnerIterator
+{
+ enum { IsRowMajor = unary_evaluator::IsRowMajor };
+ const unary_evaluator& m_eval;
+ Index m_outerPos;
+ const Index m_innerIndex;
+ Index m_end;
+ EvalIterator m_it;
+public:
+
+ EIGEN_STRONG_INLINE OuterVectorInnerIterator(const unary_evaluator& aEval, Index outer)
+ : m_eval(aEval),
+ m_outerPos( (IsRowMajor ? aEval.m_block.startCol() : aEval.m_block.startRow()) ),
+ m_innerIndex(IsRowMajor ? aEval.m_block.startRow() : aEval.m_block.startCol()),
+ m_end(IsRowMajor ? aEval.m_block.startCol()+aEval.m_block.blockCols() : aEval.m_block.startRow()+aEval.m_block.blockRows()),
+ m_it(m_eval.m_argImpl, m_outerPos)
+ {
+ EIGEN_UNUSED_VARIABLE(outer);
+ eigen_assert(outer==0);
+
+ while(m_it && m_it.index() < m_innerIndex) ++m_it;
+ if((!m_it) || (m_it.index()!=m_innerIndex))
+ ++(*this);
+ }
+
+ inline StorageIndex index() const { return convert_index<StorageIndex>(m_outerPos - (IsRowMajor ? m_eval.m_block.startCol() : m_eval.m_block.startRow())); }
+ inline Index outer() const { return 0; }
+ inline Index row() const { return IsRowMajor ? 0 : index(); }
+ inline Index col() const { return IsRowMajor ? index() : 0; }
+
+ inline Scalar value() const { return m_it.value(); }
+ inline Scalar& valueRef() { return m_it.valueRef(); }
+
+ inline OuterVectorInnerIterator& operator++()
+ {
+ // search next non-zero entry
+ while(++m_outerPos<m_end)
+ {
+ // Restart iterator at the next inner-vector:
+ m_it.~EvalIterator();
+ ::new (&m_it) EvalIterator(m_eval.m_argImpl, m_outerPos);
+ // search for the key m_innerIndex in the current outer-vector
+ while(m_it && m_it.index() < m_innerIndex) ++m_it;
+ if(m_it && m_it.index()==m_innerIndex) break;
+ }
+ return *this;
+ }
+
+ inline operator bool() const { return m_outerPos < m_end; }
+};
+
+template<typename _Scalar, int _Options, typename _StorageIndex, int BlockRows, int BlockCols>
+struct unary_evaluator<Block<SparseMatrix<_Scalar, _Options, _StorageIndex>,BlockRows,BlockCols,true>, IteratorBased>
+ : evaluator<SparseCompressedBase<Block<SparseMatrix<_Scalar, _Options, _StorageIndex>,BlockRows,BlockCols,true> > >
+{
+ typedef Block<SparseMatrix<_Scalar, _Options, _StorageIndex>,BlockRows,BlockCols,true> XprType;
+ typedef evaluator<SparseCompressedBase<XprType> > Base;
+ explicit unary_evaluator(const XprType &xpr) : Base(xpr) {}
+};
+
+template<typename _Scalar, int _Options, typename _StorageIndex, int BlockRows, int BlockCols>
+struct unary_evaluator<Block<const SparseMatrix<_Scalar, _Options, _StorageIndex>,BlockRows,BlockCols,true>, IteratorBased>
+ : evaluator<SparseCompressedBase<Block<const SparseMatrix<_Scalar, _Options, _StorageIndex>,BlockRows,BlockCols,true> > >
+{
+ typedef Block<const SparseMatrix<_Scalar, _Options, _StorageIndex>,BlockRows,BlockCols,true> XprType;
+ typedef evaluator<SparseCompressedBase<XprType> > Base;
+ explicit unary_evaluator(const XprType &xpr) : Base(xpr) {}
+};
+
+} // end namespace internal
+
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_BLOCK_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseColEtree.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseColEtree.h
new file mode 100644
index 000000000..ebe02d1ab
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseColEtree.h
@@ -0,0 +1,206 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+/*
+
+ * NOTE: This file is the modified version of sp_coletree.c file in SuperLU
+
+ * -- SuperLU routine (version 3.1) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * August 1, 2008
+ *
+ * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSE_COLETREE_H
+#define SPARSE_COLETREE_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** Find the root of the tree/set containing the vertex i : Use Path halving */
+template<typename Index, typename IndexVector>
+Index etree_find (Index i, IndexVector& pp)
+{
+ Index p = pp(i); // Parent
+ Index gp = pp(p); // Grand parent
+ while (gp != p)
+ {
+ pp(i) = gp; // Parent pointer on find path is changed to former grand parent
+ i = gp;
+ p = pp(i);
+ gp = pp(p);
+ }
+ return p;
+}
+
+/** Compute the column elimination tree of a sparse matrix
+ * \param mat The matrix in column-major format.
+ * \param parent The elimination tree
+ * \param firstRowElt The column index of the first element in each row
+ * \param perm The permutation to apply to the column of \b mat
+ */
+template <typename MatrixType, typename IndexVector>
+int coletree(const MatrixType& mat, IndexVector& parent, IndexVector& firstRowElt, typename MatrixType::StorageIndex *perm=0)
+{
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ StorageIndex nc = convert_index<StorageIndex>(mat.cols()); // Number of columns
+ StorageIndex m = convert_index<StorageIndex>(mat.rows());
+ StorageIndex diagSize = (std::min)(nc,m);
+ IndexVector root(nc); // root of subtree of etree
+ root.setZero();
+ IndexVector pp(nc); // disjoint sets
+ pp.setZero(); // Initialize disjoint sets
+ parent.resize(mat.cols());
+ //Compute first nonzero column in each row
+ firstRowElt.resize(m);
+ firstRowElt.setConstant(nc);
+ firstRowElt.segment(0, diagSize).setLinSpaced(diagSize, 0, diagSize-1);
+ bool found_diag;
+ for (StorageIndex col = 0; col < nc; col++)
+ {
+ StorageIndex pcol = col;
+ if(perm) pcol = perm[col];
+ for (typename MatrixType::InnerIterator it(mat, pcol); it; ++it)
+ {
+ Index row = it.row();
+ firstRowElt(row) = (std::min)(firstRowElt(row), col);
+ }
+ }
+ /* Compute etree by Liu's algorithm for symmetric matrices,
+ except use (firstRowElt[r],c) in place of an edge (r,c) of A.
+ Thus each row clique in A'*A is replaced by a star
+ centered at its first vertex, which has the same fill. */
+ StorageIndex rset, cset, rroot;
+ for (StorageIndex col = 0; col < nc; col++)
+ {
+ found_diag = col>=m;
+ pp(col) = col;
+ cset = col;
+ root(cset) = col;
+ parent(col) = nc;
+ /* The diagonal element is treated here even if it does not exist in the matrix
+ * hence the loop is executed once more */
+ StorageIndex pcol = col;
+ if(perm) pcol = perm[col];
+ for (typename MatrixType::InnerIterator it(mat, pcol); it||!found_diag; ++it)
+ { // A sequence of interleaved find and union is performed
+ Index i = col;
+ if(it) i = it.index();
+ if (i == col) found_diag = true;
+
+ StorageIndex row = firstRowElt(i);
+ if (row >= col) continue;
+ rset = internal::etree_find(row, pp); // Find the name of the set containing row
+ rroot = root(rset);
+ if (rroot != col)
+ {
+ parent(rroot) = col;
+ pp(cset) = rset;
+ cset = rset;
+ root(cset) = col;
+ }
+ }
+ }
+ return 0;
+}
+
+/**
+ * Depth-first search from vertex n. No recursion.
+ * This routine was contributed by Cédric Doucet, CEDRAT Group, Meylan, France.
+*/
+template <typename IndexVector>
+void nr_etdfs (typename IndexVector::Scalar n, IndexVector& parent, IndexVector& first_kid, IndexVector& next_kid, IndexVector& post, typename IndexVector::Scalar postnum)
+{
+ typedef typename IndexVector::Scalar StorageIndex;
+ StorageIndex current = n, first, next;
+ while (postnum != n)
+ {
+ // No kid for the current node
+ first = first_kid(current);
+
+ // no kid for the current node
+ if (first == -1)
+ {
+ // Numbering this node because it has no kid
+ post(current) = postnum++;
+
+ // looking for the next kid
+ next = next_kid(current);
+ while (next == -1)
+ {
+ // No more kids : back to the parent node
+ current = parent(current);
+ // numbering the parent node
+ post(current) = postnum++;
+
+ // Get the next kid
+ next = next_kid(current);
+ }
+ // stopping criterion
+ if (postnum == n+1) return;
+
+ // Updating current node
+ current = next;
+ }
+ else
+ {
+ current = first;
+ }
+ }
+}
+
+
+/**
+ * \brief Post order a tree
+ * \param n the number of nodes
+ * \param parent Input tree
+ * \param post postordered tree
+ */
+template <typename IndexVector>
+void treePostorder(typename IndexVector::Scalar n, IndexVector& parent, IndexVector& post)
+{
+ typedef typename IndexVector::Scalar StorageIndex;
+ IndexVector first_kid, next_kid; // Linked list of children
+ StorageIndex postnum;
+ // Allocate storage for working arrays and results
+ first_kid.resize(n+1);
+ next_kid.setZero(n+1);
+ post.setZero(n+1);
+
+ // Set up structure describing children
+ first_kid.setConstant(-1);
+ for (StorageIndex v = n-1; v >= 0; v--)
+ {
+ StorageIndex dad = parent(v);
+ next_kid(v) = first_kid(dad);
+ first_kid(dad) = v;
+ }
+
+ // Depth-first search from dummy root vertex #n
+ postnum = 0;
+ internal::nr_etdfs(n, parent, first_kid, next_kid, post, postnum);
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // SPARSE_COLETREE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseCompressedBase.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseCompressedBase.h
new file mode 100644
index 000000000..5ccb46656
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseCompressedBase.h
@@ -0,0 +1,341 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_COMPRESSED_BASE_H
+#define EIGEN_SPARSE_COMPRESSED_BASE_H
+
+namespace Eigen {
+
+template<typename Derived> class SparseCompressedBase;
+
+namespace internal {
+
+template<typename Derived>
+struct traits<SparseCompressedBase<Derived> > : traits<Derived>
+{};
+
+} // end namespace internal
+
+/** \ingroup SparseCore_Module
+ * \class SparseCompressedBase
+ * \brief Common base class for sparse [compressed]-{row|column}-storage format.
+ *
+ * This class defines the common interface for all derived classes implementing the compressed sparse storage format, such as:
+ * - SparseMatrix
+ * - Ref<SparseMatrixType,Options>
+ * - Map<SparseMatrixType>
+ *
+ */
+template<typename Derived>
+class SparseCompressedBase
+ : public SparseMatrixBase<Derived>
+{
+ public:
+ typedef SparseMatrixBase<Derived> Base;
+ EIGEN_SPARSE_PUBLIC_INTERFACE(SparseCompressedBase)
+ using Base::operator=;
+ using Base::IsRowMajor;
+
+ class InnerIterator;
+ class ReverseInnerIterator;
+
+ protected:
+ typedef typename Base::IndexVector IndexVector;
+ Eigen::Map<IndexVector> innerNonZeros() { return Eigen::Map<IndexVector>(innerNonZeroPtr(), isCompressed()?0:derived().outerSize()); }
+ const Eigen::Map<const IndexVector> innerNonZeros() const { return Eigen::Map<const IndexVector>(innerNonZeroPtr(), isCompressed()?0:derived().outerSize()); }
+
+ public:
+
+ /** \returns the number of non zero coefficients */
+ inline Index nonZeros() const
+ {
+ if(Derived::IsVectorAtCompileTime && outerIndexPtr()==0)
+ return derived().nonZeros();
+ else if(isCompressed())
+ return outerIndexPtr()[derived().outerSize()]-outerIndexPtr()[0];
+ else if(derived().outerSize()==0)
+ return 0;
+ else
+ return innerNonZeros().sum();
+ }
+
+ /** \returns a const pointer to the array of values.
+ * This function is aimed at interoperability with other libraries.
+ * \sa innerIndexPtr(), outerIndexPtr() */
+ inline const Scalar* valuePtr() const { return derived().valuePtr(); }
+ /** \returns a non-const pointer to the array of values.
+ * This function is aimed at interoperability with other libraries.
+ * \sa innerIndexPtr(), outerIndexPtr() */
+ inline Scalar* valuePtr() { return derived().valuePtr(); }
+
+ /** \returns a const pointer to the array of inner indices.
+ * This function is aimed at interoperability with other libraries.
+ * \sa valuePtr(), outerIndexPtr() */
+ inline const StorageIndex* innerIndexPtr() const { return derived().innerIndexPtr(); }
+ /** \returns a non-const pointer to the array of inner indices.
+ * This function is aimed at interoperability with other libraries.
+ * \sa valuePtr(), outerIndexPtr() */
+ inline StorageIndex* innerIndexPtr() { return derived().innerIndexPtr(); }
+
+ /** \returns a const pointer to the array of the starting positions of the inner vectors.
+ * This function is aimed at interoperability with other libraries.
+ * \warning it returns the null pointer 0 for SparseVector
+ * \sa valuePtr(), innerIndexPtr() */
+ inline const StorageIndex* outerIndexPtr() const { return derived().outerIndexPtr(); }
+ /** \returns a non-const pointer to the array of the starting positions of the inner vectors.
+ * This function is aimed at interoperability with other libraries.
+ * \warning it returns the null pointer 0 for SparseVector
+ * \sa valuePtr(), innerIndexPtr() */
+ inline StorageIndex* outerIndexPtr() { return derived().outerIndexPtr(); }
+
+ /** \returns a const pointer to the array of the number of non zeros of the inner vectors.
+ * This function is aimed at interoperability with other libraries.
+ * \warning it returns the null pointer 0 in compressed mode */
+ inline const StorageIndex* innerNonZeroPtr() const { return derived().innerNonZeroPtr(); }
+ /** \returns a non-const pointer to the array of the number of non zeros of the inner vectors.
+ * This function is aimed at interoperability with other libraries.
+ * \warning it returns the null pointer 0 in compressed mode */
+ inline StorageIndex* innerNonZeroPtr() { return derived().innerNonZeroPtr(); }
+
+ /** \returns whether \c *this is in compressed form. */
+ inline bool isCompressed() const { return innerNonZeroPtr()==0; }
+
+ /** \returns a read-only view of the stored coefficients as a 1D array expression.
+ *
+ * \warning this method is for \b compressed \b storage \b only, and it will trigger an assertion otherwise.
+ *
+ * \sa valuePtr(), isCompressed() */
+ const Map<const Array<Scalar,Dynamic,1> > coeffs() const { eigen_assert(isCompressed()); return Array<Scalar,Dynamic,1>::Map(valuePtr(),nonZeros()); }
+
+ /** \returns a read-write view of the stored coefficients as a 1D array expression
+ *
+ * \warning this method is for \b compressed \b storage \b only, and it will trigger an assertion otherwise.
+ *
+ * Here is an example:
+ * \include SparseMatrix_coeffs.cpp
+ * and the output is:
+ * \include SparseMatrix_coeffs.out
+ *
+ * \sa valuePtr(), isCompressed() */
+ Map<Array<Scalar,Dynamic,1> > coeffs() { eigen_assert(isCompressed()); return Array<Scalar,Dynamic,1>::Map(valuePtr(),nonZeros()); }
+
+ protected:
+ /** Default constructor. Do nothing. */
+ SparseCompressedBase() {}
+ private:
+ template<typename OtherDerived> explicit SparseCompressedBase(const SparseCompressedBase<OtherDerived>&);
+};
+
+template<typename Derived>
+class SparseCompressedBase<Derived>::InnerIterator
+{
+ public:
+ InnerIterator()
+ : m_values(0), m_indices(0), m_outer(0), m_id(0), m_end(0)
+ {}
+
+ InnerIterator(const InnerIterator& other)
+ : m_values(other.m_values), m_indices(other.m_indices), m_outer(other.m_outer), m_id(other.m_id), m_end(other.m_end)
+ {}
+
+ InnerIterator& operator=(const InnerIterator& other)
+ {
+ m_values = other.m_values;
+ m_indices = other.m_indices;
+ const_cast<OuterType&>(m_outer).setValue(other.m_outer.value());
+ m_id = other.m_id;
+ m_end = other.m_end;
+ return *this;
+ }
+
+ InnerIterator(const SparseCompressedBase& mat, Index outer)
+ : m_values(mat.valuePtr()), m_indices(mat.innerIndexPtr()), m_outer(outer)
+ {
+ if(Derived::IsVectorAtCompileTime && mat.outerIndexPtr()==0)
+ {
+ m_id = 0;
+ m_end = mat.nonZeros();
+ }
+ else
+ {
+ m_id = mat.outerIndexPtr()[outer];
+ if(mat.isCompressed())
+ m_end = mat.outerIndexPtr()[outer+1];
+ else
+ m_end = m_id + mat.innerNonZeroPtr()[outer];
+ }
+ }
+
+ explicit InnerIterator(const SparseCompressedBase& mat)
+ : m_values(mat.valuePtr()), m_indices(mat.innerIndexPtr()), m_outer(0), m_id(0), m_end(mat.nonZeros())
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
+ }
+
+ explicit InnerIterator(const internal::CompressedStorage<Scalar,StorageIndex>& data)
+ : m_values(data.valuePtr()), m_indices(data.indexPtr()), m_outer(0), m_id(0), m_end(data.size())
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
+ }
+
+ inline InnerIterator& operator++() { m_id++; return *this; }
+
+ inline const Scalar& value() const { return m_values[m_id]; }
+ inline Scalar& valueRef() { return const_cast<Scalar&>(m_values[m_id]); }
+
+ inline StorageIndex index() const { return m_indices[m_id]; }
+ inline Index outer() const { return m_outer.value(); }
+ inline Index row() const { return IsRowMajor ? m_outer.value() : index(); }
+ inline Index col() const { return IsRowMajor ? index() : m_outer.value(); }
+
+ inline operator bool() const { return (m_id < m_end); }
+
+ protected:
+ const Scalar* m_values;
+ const StorageIndex* m_indices;
+ typedef internal::variable_if_dynamic<Index,Derived::IsVectorAtCompileTime?0:Dynamic> OuterType;
+ const OuterType m_outer;
+ Index m_id;
+ Index m_end;
+ private:
+ // If you get here, then you're not using the right InnerIterator type, e.g.:
+ // SparseMatrix<double,RowMajor> A;
+ // SparseMatrix<double>::InnerIterator it(A,0);
+ template<typename T> InnerIterator(const SparseMatrixBase<T>&, Index outer);
+};
+
+template<typename Derived>
+class SparseCompressedBase<Derived>::ReverseInnerIterator
+{
+ public:
+ ReverseInnerIterator(const SparseCompressedBase& mat, Index outer)
+ : m_values(mat.valuePtr()), m_indices(mat.innerIndexPtr()), m_outer(outer)
+ {
+ if(Derived::IsVectorAtCompileTime && mat.outerIndexPtr()==0)
+ {
+ m_start = 0;
+ m_id = mat.nonZeros();
+ }
+ else
+ {
+ m_start = mat.outerIndexPtr()[outer];
+ if(mat.isCompressed())
+ m_id = mat.outerIndexPtr()[outer+1];
+ else
+ m_id = m_start + mat.innerNonZeroPtr()[outer];
+ }
+ }
+
+ explicit ReverseInnerIterator(const SparseCompressedBase& mat)
+ : m_values(mat.valuePtr()), m_indices(mat.innerIndexPtr()), m_outer(0), m_start(0), m_id(mat.nonZeros())
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
+ }
+
+ explicit ReverseInnerIterator(const internal::CompressedStorage<Scalar,StorageIndex>& data)
+ : m_values(data.valuePtr()), m_indices(data.indexPtr()), m_outer(0), m_start(0), m_id(data.size())
+ {
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
+ }
+
+ inline ReverseInnerIterator& operator--() { --m_id; return *this; }
+
+ inline const Scalar& value() const { return m_values[m_id-1]; }
+ inline Scalar& valueRef() { return const_cast<Scalar&>(m_values[m_id-1]); }
+
+ inline StorageIndex index() const { return m_indices[m_id-1]; }
+ inline Index outer() const { return m_outer.value(); }
+ inline Index row() const { return IsRowMajor ? m_outer.value() : index(); }
+ inline Index col() const { return IsRowMajor ? index() : m_outer.value(); }
+
+ inline operator bool() const { return (m_id > m_start); }
+
+ protected:
+ const Scalar* m_values;
+ const StorageIndex* m_indices;
+ typedef internal::variable_if_dynamic<Index,Derived::IsVectorAtCompileTime?0:Dynamic> OuterType;
+ const OuterType m_outer;
+ Index m_start;
+ Index m_id;
+};
+
+namespace internal {
+
+template<typename Derived>
+struct evaluator<SparseCompressedBase<Derived> >
+ : evaluator_base<Derived>
+{
+ typedef typename Derived::Scalar Scalar;
+ typedef typename Derived::InnerIterator InnerIterator;
+
+ enum {
+ CoeffReadCost = NumTraits<Scalar>::ReadCost,
+ Flags = Derived::Flags
+ };
+
+ evaluator() : m_matrix(0), m_zero(0)
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+ explicit evaluator(const Derived &mat) : m_matrix(&mat), m_zero(0)
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ inline Index nonZerosEstimate() const {
+ return m_matrix->nonZeros();
+ }
+
+ operator Derived&() { return m_matrix->const_cast_derived(); }
+ operator const Derived&() const { return *m_matrix; }
+
+ typedef typename DenseCoeffsBase<Derived,ReadOnlyAccessors>::CoeffReturnType CoeffReturnType;
+ const Scalar& coeff(Index row, Index col) const
+ {
+ Index p = find(row,col);
+
+ if(p==Dynamic)
+ return m_zero;
+ else
+ return m_matrix->const_cast_derived().valuePtr()[p];
+ }
+
+ Scalar& coeffRef(Index row, Index col)
+ {
+ Index p = find(row,col);
+ eigen_assert(p!=Dynamic && "written coefficient does not exist");
+ return m_matrix->const_cast_derived().valuePtr()[p];
+ }
+
+protected:
+
+ Index find(Index row, Index col) const
+ {
+ eigen_internal_assert(row>=0 && row<m_matrix->rows() && col>=0 && col<m_matrix->cols());
+
+ const Index outer = Derived::IsRowMajor ? row : col;
+ const Index inner = Derived::IsRowMajor ? col : row;
+
+ Index start = m_matrix->outerIndexPtr()[outer];
+ Index end = m_matrix->isCompressed() ? m_matrix->outerIndexPtr()[outer+1] : m_matrix->outerIndexPtr()[outer] + m_matrix->innerNonZeroPtr()[outer];
+ eigen_assert(end>=start && "you are using a non finalized sparse matrix or written coefficient does not exist");
+ const Index p = std::lower_bound(m_matrix->innerIndexPtr()+start, m_matrix->innerIndexPtr()+end,inner) - m_matrix->innerIndexPtr();
+
+ return ((p<end) && (m_matrix->innerIndexPtr()[p]==inner)) ? p : Dynamic;
+ }
+
+ const Derived *m_matrix;
+ const Scalar m_zero;
+};
+
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_COMPRESSED_BASE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
new file mode 100644
index 000000000..e315e3550
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
@@ -0,0 +1,726 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_CWISE_BINARY_OP_H
+#define EIGEN_SPARSE_CWISE_BINARY_OP_H
+
+namespace Eigen {
+
+// Here we have to handle 3 cases:
+// 1 - sparse op dense
+// 2 - dense op sparse
+// 3 - sparse op sparse
+// We also need to implement a 4th iterator for:
+// 4 - dense op dense
+// Finally, we also need to distinguish between the product and other operations :
+// configuration returned mode
+// 1 - sparse op dense product sparse
+// generic dense
+// 2 - dense op sparse product sparse
+// generic dense
+// 3 - sparse op sparse product sparse
+// generic sparse
+// 4 - dense op dense product dense
+// generic dense
+//
+// TODO to ease compiler job, we could specialize product/quotient with a scalar
+// and fallback to cwise-unary evaluator using bind1st_op and bind2nd_op.
+
+template<typename BinaryOp, typename Lhs, typename Rhs>
+class CwiseBinaryOpImpl<BinaryOp, Lhs, Rhs, Sparse>
+ : public SparseMatrixBase<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >
+{
+ public:
+ typedef CwiseBinaryOp<BinaryOp, Lhs, Rhs> Derived;
+ typedef SparseMatrixBase<Derived> Base;
+ EIGEN_SPARSE_PUBLIC_INTERFACE(Derived)
+ CwiseBinaryOpImpl()
+ {
+ EIGEN_STATIC_ASSERT((
+ (!internal::is_same<typename internal::traits<Lhs>::StorageKind,
+ typename internal::traits<Rhs>::StorageKind>::value)
+ || ((internal::evaluator<Lhs>::Flags&RowMajorBit) == (internal::evaluator<Rhs>::Flags&RowMajorBit))),
+ THE_STORAGE_ORDER_OF_BOTH_SIDES_MUST_MATCH);
+ }
+};
+
+namespace internal {
+
+
+// Generic "sparse OP sparse"
+template<typename XprType> struct binary_sparse_evaluator;
+
+template<typename BinaryOp, typename Lhs, typename Rhs>
+struct binary_evaluator<CwiseBinaryOp<BinaryOp, Lhs, Rhs>, IteratorBased, IteratorBased>
+ : evaluator_base<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >
+{
+protected:
+ typedef typename evaluator<Lhs>::InnerIterator LhsIterator;
+ typedef typename evaluator<Rhs>::InnerIterator RhsIterator;
+ typedef CwiseBinaryOp<BinaryOp, Lhs, Rhs> XprType;
+ typedef typename traits<XprType>::Scalar Scalar;
+ typedef typename XprType::StorageIndex StorageIndex;
+public:
+
+ class InnerIterator
+ {
+ public:
+
+ EIGEN_STRONG_INLINE InnerIterator(const binary_evaluator& aEval, Index outer)
+ : m_lhsIter(aEval.m_lhsImpl,outer), m_rhsIter(aEval.m_rhsImpl,outer), m_functor(aEval.m_functor)
+ {
+ this->operator++();
+ }
+
+ EIGEN_STRONG_INLINE InnerIterator& operator++()
+ {
+ if (m_lhsIter && m_rhsIter && (m_lhsIter.index() == m_rhsIter.index()))
+ {
+ m_id = m_lhsIter.index();
+ m_value = m_functor(m_lhsIter.value(), m_rhsIter.value());
+ ++m_lhsIter;
+ ++m_rhsIter;
+ }
+ else if (m_lhsIter && (!m_rhsIter || (m_lhsIter.index() < m_rhsIter.index())))
+ {
+ m_id = m_lhsIter.index();
+ m_value = m_functor(m_lhsIter.value(), Scalar(0));
+ ++m_lhsIter;
+ }
+ else if (m_rhsIter && (!m_lhsIter || (m_lhsIter.index() > m_rhsIter.index())))
+ {
+ m_id = m_rhsIter.index();
+ m_value = m_functor(Scalar(0), m_rhsIter.value());
+ ++m_rhsIter;
+ }
+ else
+ {
+ m_value = 0; // this is to avoid a compilation warning
+ m_id = -1;
+ }
+ return *this;
+ }
+
+ EIGEN_STRONG_INLINE Scalar value() const { return m_value; }
+
+ EIGEN_STRONG_INLINE StorageIndex index() const { return m_id; }
+ EIGEN_STRONG_INLINE Index outer() const { return m_lhsIter.outer(); }
+ EIGEN_STRONG_INLINE Index row() const { return Lhs::IsRowMajor ? m_lhsIter.row() : index(); }
+ EIGEN_STRONG_INLINE Index col() const { return Lhs::IsRowMajor ? index() : m_lhsIter.col(); }
+
+ EIGEN_STRONG_INLINE operator bool() const { return m_id>=0; }
+
+ protected:
+ LhsIterator m_lhsIter;
+ RhsIterator m_rhsIter;
+ const BinaryOp& m_functor;
+ Scalar m_value;
+ StorageIndex m_id;
+ };
+
+
+ enum {
+ CoeffReadCost = evaluator<Lhs>::CoeffReadCost + evaluator<Rhs>::CoeffReadCost + functor_traits<BinaryOp>::Cost,
+ Flags = XprType::Flags
+ };
+
+ explicit binary_evaluator(const XprType& xpr)
+ : m_functor(xpr.functor()),
+ m_lhsImpl(xpr.lhs()),
+ m_rhsImpl(xpr.rhs())
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(functor_traits<BinaryOp>::Cost);
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ inline Index nonZerosEstimate() const {
+ return m_lhsImpl.nonZerosEstimate() + m_rhsImpl.nonZerosEstimate();
+ }
+
+protected:
+ const BinaryOp m_functor;
+ evaluator<Lhs> m_lhsImpl;
+ evaluator<Rhs> m_rhsImpl;
+};
+
+// dense op sparse
+template<typename BinaryOp, typename Lhs, typename Rhs>
+struct binary_evaluator<CwiseBinaryOp<BinaryOp, Lhs, Rhs>, IndexBased, IteratorBased>
+ : evaluator_base<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >
+{
+protected:
+ typedef typename evaluator<Rhs>::InnerIterator RhsIterator;
+ typedef CwiseBinaryOp<BinaryOp, Lhs, Rhs> XprType;
+ typedef typename traits<XprType>::Scalar Scalar;
+ typedef typename XprType::StorageIndex StorageIndex;
+public:
+
+ class InnerIterator
+ {
+ enum { IsRowMajor = (int(Rhs::Flags)&RowMajorBit)==RowMajorBit };
+ public:
+
+ EIGEN_STRONG_INLINE InnerIterator(const binary_evaluator& aEval, Index outer)
+ : m_lhsEval(aEval.m_lhsImpl), m_rhsIter(aEval.m_rhsImpl,outer), m_functor(aEval.m_functor), m_value(0), m_id(-1), m_innerSize(aEval.m_expr.rhs().innerSize())
+ {
+ this->operator++();
+ }
+
+ EIGEN_STRONG_INLINE InnerIterator& operator++()
+ {
+ ++m_id;
+ if(m_id<m_innerSize)
+ {
+ Scalar lhsVal = m_lhsEval.coeff(IsRowMajor?m_rhsIter.outer():m_id,
+ IsRowMajor?m_id:m_rhsIter.outer());
+ if(m_rhsIter && m_rhsIter.index()==m_id)
+ {
+ m_value = m_functor(lhsVal, m_rhsIter.value());
+ ++m_rhsIter;
+ }
+ else
+ m_value = m_functor(lhsVal, Scalar(0));
+ }
+
+ return *this;
+ }
+
+ EIGEN_STRONG_INLINE Scalar value() const { eigen_internal_assert(m_id<m_innerSize); return m_value; }
+
+ EIGEN_STRONG_INLINE StorageIndex index() const { return m_id; }
+ EIGEN_STRONG_INLINE Index outer() const { return m_rhsIter.outer(); }
+ EIGEN_STRONG_INLINE Index row() const { return IsRowMajor ? m_rhsIter.outer() : m_id; }
+ EIGEN_STRONG_INLINE Index col() const { return IsRowMajor ? m_id : m_rhsIter.outer(); }
+
+ EIGEN_STRONG_INLINE operator bool() const { return m_id<m_innerSize; }
+
+ protected:
+ const evaluator<Lhs> &m_lhsEval;
+ RhsIterator m_rhsIter;
+ const BinaryOp& m_functor;
+ Scalar m_value;
+ StorageIndex m_id;
+ StorageIndex m_innerSize;
+ };
+
+
+ enum {
+ CoeffReadCost = evaluator<Lhs>::CoeffReadCost + evaluator<Rhs>::CoeffReadCost + functor_traits<BinaryOp>::Cost,
+ // Expose storage order of the sparse expression
+ Flags = (XprType::Flags & ~RowMajorBit) | (int(Rhs::Flags)&RowMajorBit)
+ };
+
+ explicit binary_evaluator(const XprType& xpr)
+ : m_functor(xpr.functor()),
+ m_lhsImpl(xpr.lhs()),
+ m_rhsImpl(xpr.rhs()),
+ m_expr(xpr)
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(functor_traits<BinaryOp>::Cost);
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ inline Index nonZerosEstimate() const {
+ return m_expr.size();
+ }
+
+protected:
+ const BinaryOp m_functor;
+ evaluator<Lhs> m_lhsImpl;
+ evaluator<Rhs> m_rhsImpl;
+ const XprType &m_expr;
+};
+
+// sparse op dense
+template<typename BinaryOp, typename Lhs, typename Rhs>
+struct binary_evaluator<CwiseBinaryOp<BinaryOp, Lhs, Rhs>, IteratorBased, IndexBased>
+ : evaluator_base<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >
+{
+protected:
+ typedef typename evaluator<Lhs>::InnerIterator LhsIterator;
+ typedef CwiseBinaryOp<BinaryOp, Lhs, Rhs> XprType;
+ typedef typename traits<XprType>::Scalar Scalar;
+ typedef typename XprType::StorageIndex StorageIndex;
+public:
+
+ class InnerIterator
+ {
+ enum { IsRowMajor = (int(Lhs::Flags)&RowMajorBit)==RowMajorBit };
+ public:
+
+ EIGEN_STRONG_INLINE InnerIterator(const binary_evaluator& aEval, Index outer)
+ : m_lhsIter(aEval.m_lhsImpl,outer), m_rhsEval(aEval.m_rhsImpl), m_functor(aEval.m_functor), m_value(0), m_id(-1), m_innerSize(aEval.m_expr.lhs().innerSize())
+ {
+ this->operator++();
+ }
+
+ EIGEN_STRONG_INLINE InnerIterator& operator++()
+ {
+ ++m_id;
+ if(m_id<m_innerSize)
+ {
+ Scalar rhsVal = m_rhsEval.coeff(IsRowMajor?m_lhsIter.outer():m_id,
+ IsRowMajor?m_id:m_lhsIter.outer());
+ if(m_lhsIter && m_lhsIter.index()==m_id)
+ {
+ m_value = m_functor(m_lhsIter.value(), rhsVal);
+ ++m_lhsIter;
+ }
+ else
+ m_value = m_functor(Scalar(0),rhsVal);
+ }
+
+ return *this;
+ }
+
+ EIGEN_STRONG_INLINE Scalar value() const { eigen_internal_assert(m_id<m_innerSize); return m_value; }
+
+ EIGEN_STRONG_INLINE StorageIndex index() const { return m_id; }
+ EIGEN_STRONG_INLINE Index outer() const { return m_lhsIter.outer(); }
+ EIGEN_STRONG_INLINE Index row() const { return IsRowMajor ? m_lhsIter.outer() : m_id; }
+ EIGEN_STRONG_INLINE Index col() const { return IsRowMajor ? m_id : m_lhsIter.outer(); }
+
+ EIGEN_STRONG_INLINE operator bool() const { return m_id<m_innerSize; }
+
+ protected:
+ LhsIterator m_lhsIter;
+ const evaluator<Rhs> &m_rhsEval;
+ const BinaryOp& m_functor;
+ Scalar m_value;
+ StorageIndex m_id;
+ StorageIndex m_innerSize;
+ };
+
+
+ enum {
+ CoeffReadCost = evaluator<Lhs>::CoeffReadCost + evaluator<Rhs>::CoeffReadCost + functor_traits<BinaryOp>::Cost,
+ // Expose storage order of the sparse expression
+ Flags = (XprType::Flags & ~RowMajorBit) | (int(Lhs::Flags)&RowMajorBit)
+ };
+
+ explicit binary_evaluator(const XprType& xpr)
+ : m_functor(xpr.functor()),
+ m_lhsImpl(xpr.lhs()),
+ m_rhsImpl(xpr.rhs()),
+ m_expr(xpr)
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(functor_traits<BinaryOp>::Cost);
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ inline Index nonZerosEstimate() const {
+ return m_expr.size();
+ }
+
+protected:
+ const BinaryOp m_functor;
+ evaluator<Lhs> m_lhsImpl;
+ evaluator<Rhs> m_rhsImpl;
+ const XprType &m_expr;
+};
+
+template<typename T,
+ typename LhsKind = typename evaluator_traits<typename T::Lhs>::Kind,
+ typename RhsKind = typename evaluator_traits<typename T::Rhs>::Kind,
+ typename LhsScalar = typename traits<typename T::Lhs>::Scalar,
+ typename RhsScalar = typename traits<typename T::Rhs>::Scalar> struct sparse_conjunction_evaluator;
+
+// "sparse .* sparse"
+template<typename T1, typename T2, typename Lhs, typename Rhs>
+struct binary_evaluator<CwiseBinaryOp<scalar_product_op<T1,T2>, Lhs, Rhs>, IteratorBased, IteratorBased>
+ : sparse_conjunction_evaluator<CwiseBinaryOp<scalar_product_op<T1,T2>, Lhs, Rhs> >
+{
+ typedef CwiseBinaryOp<scalar_product_op<T1,T2>, Lhs, Rhs> XprType;
+ typedef sparse_conjunction_evaluator<XprType> Base;
+ explicit binary_evaluator(const XprType& xpr) : Base(xpr) {}
+};
+// "dense .* sparse"
+template<typename T1, typename T2, typename Lhs, typename Rhs>
+struct binary_evaluator<CwiseBinaryOp<scalar_product_op<T1,T2>, Lhs, Rhs>, IndexBased, IteratorBased>
+ : sparse_conjunction_evaluator<CwiseBinaryOp<scalar_product_op<T1,T2>, Lhs, Rhs> >
+{
+ typedef CwiseBinaryOp<scalar_product_op<T1,T2>, Lhs, Rhs> XprType;
+ typedef sparse_conjunction_evaluator<XprType> Base;
+ explicit binary_evaluator(const XprType& xpr) : Base(xpr) {}
+};
+// "sparse .* dense"
+template<typename T1, typename T2, typename Lhs, typename Rhs>
+struct binary_evaluator<CwiseBinaryOp<scalar_product_op<T1,T2>, Lhs, Rhs>, IteratorBased, IndexBased>
+ : sparse_conjunction_evaluator<CwiseBinaryOp<scalar_product_op<T1,T2>, Lhs, Rhs> >
+{
+ typedef CwiseBinaryOp<scalar_product_op<T1,T2>, Lhs, Rhs> XprType;
+ typedef sparse_conjunction_evaluator<XprType> Base;
+ explicit binary_evaluator(const XprType& xpr) : Base(xpr) {}
+};
+
+// "sparse ./ dense"
+template<typename T1, typename T2, typename Lhs, typename Rhs>
+struct binary_evaluator<CwiseBinaryOp<scalar_quotient_op<T1,T2>, Lhs, Rhs>, IteratorBased, IndexBased>
+ : sparse_conjunction_evaluator<CwiseBinaryOp<scalar_quotient_op<T1,T2>, Lhs, Rhs> >
+{
+ typedef CwiseBinaryOp<scalar_quotient_op<T1,T2>, Lhs, Rhs> XprType;
+ typedef sparse_conjunction_evaluator<XprType> Base;
+ explicit binary_evaluator(const XprType& xpr) : Base(xpr) {}
+};
+
+// "sparse && sparse"
+template<typename Lhs, typename Rhs>
+struct binary_evaluator<CwiseBinaryOp<scalar_boolean_and_op, Lhs, Rhs>, IteratorBased, IteratorBased>
+ : sparse_conjunction_evaluator<CwiseBinaryOp<scalar_boolean_and_op, Lhs, Rhs> >
+{
+ typedef CwiseBinaryOp<scalar_boolean_and_op, Lhs, Rhs> XprType;
+ typedef sparse_conjunction_evaluator<XprType> Base;
+ explicit binary_evaluator(const XprType& xpr) : Base(xpr) {}
+};
+// "dense && sparse"
+template<typename Lhs, typename Rhs>
+struct binary_evaluator<CwiseBinaryOp<scalar_boolean_and_op, Lhs, Rhs>, IndexBased, IteratorBased>
+ : sparse_conjunction_evaluator<CwiseBinaryOp<scalar_boolean_and_op, Lhs, Rhs> >
+{
+ typedef CwiseBinaryOp<scalar_boolean_and_op, Lhs, Rhs> XprType;
+ typedef sparse_conjunction_evaluator<XprType> Base;
+ explicit binary_evaluator(const XprType& xpr) : Base(xpr) {}
+};
+// "sparse && dense"
+template<typename Lhs, typename Rhs>
+struct binary_evaluator<CwiseBinaryOp<scalar_boolean_and_op, Lhs, Rhs>, IteratorBased, IndexBased>
+ : sparse_conjunction_evaluator<CwiseBinaryOp<scalar_boolean_and_op, Lhs, Rhs> >
+{
+ typedef CwiseBinaryOp<scalar_boolean_and_op, Lhs, Rhs> XprType;
+ typedef sparse_conjunction_evaluator<XprType> Base;
+ explicit binary_evaluator(const XprType& xpr) : Base(xpr) {}
+};
+
+// "sparse ^ sparse"
+template<typename XprType>
+struct sparse_conjunction_evaluator<XprType, IteratorBased, IteratorBased>
+ : evaluator_base<XprType>
+{
+protected:
+ typedef typename XprType::Functor BinaryOp;
+ typedef typename XprType::Lhs LhsArg;
+ typedef typename XprType::Rhs RhsArg;
+ typedef typename evaluator<LhsArg>::InnerIterator LhsIterator;
+ typedef typename evaluator<RhsArg>::InnerIterator RhsIterator;
+ typedef typename XprType::StorageIndex StorageIndex;
+ typedef typename traits<XprType>::Scalar Scalar;
+public:
+
+ class InnerIterator
+ {
+ public:
+
+ EIGEN_STRONG_INLINE InnerIterator(const sparse_conjunction_evaluator& aEval, Index outer)
+ : m_lhsIter(aEval.m_lhsImpl,outer), m_rhsIter(aEval.m_rhsImpl,outer), m_functor(aEval.m_functor)
+ {
+ while (m_lhsIter && m_rhsIter && (m_lhsIter.index() != m_rhsIter.index()))
+ {
+ if (m_lhsIter.index() < m_rhsIter.index())
+ ++m_lhsIter;
+ else
+ ++m_rhsIter;
+ }
+ }
+
+ EIGEN_STRONG_INLINE InnerIterator& operator++()
+ {
+ ++m_lhsIter;
+ ++m_rhsIter;
+ while (m_lhsIter && m_rhsIter && (m_lhsIter.index() != m_rhsIter.index()))
+ {
+ if (m_lhsIter.index() < m_rhsIter.index())
+ ++m_lhsIter;
+ else
+ ++m_rhsIter;
+ }
+ return *this;
+ }
+
+ EIGEN_STRONG_INLINE Scalar value() const { return m_functor(m_lhsIter.value(), m_rhsIter.value()); }
+
+ EIGEN_STRONG_INLINE StorageIndex index() const { return m_lhsIter.index(); }
+ EIGEN_STRONG_INLINE Index outer() const { return m_lhsIter.outer(); }
+ EIGEN_STRONG_INLINE Index row() const { return m_lhsIter.row(); }
+ EIGEN_STRONG_INLINE Index col() const { return m_lhsIter.col(); }
+
+ EIGEN_STRONG_INLINE operator bool() const { return (m_lhsIter && m_rhsIter); }
+
+ protected:
+ LhsIterator m_lhsIter;
+ RhsIterator m_rhsIter;
+ const BinaryOp& m_functor;
+ };
+
+
+ enum {
+ CoeffReadCost = evaluator<LhsArg>::CoeffReadCost + evaluator<RhsArg>::CoeffReadCost + functor_traits<BinaryOp>::Cost,
+ Flags = XprType::Flags
+ };
+
+ explicit sparse_conjunction_evaluator(const XprType& xpr)
+ : m_functor(xpr.functor()),
+ m_lhsImpl(xpr.lhs()),
+ m_rhsImpl(xpr.rhs())
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(functor_traits<BinaryOp>::Cost);
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ inline Index nonZerosEstimate() const {
+ return (std::min)(m_lhsImpl.nonZerosEstimate(), m_rhsImpl.nonZerosEstimate());
+ }
+
+protected:
+ const BinaryOp m_functor;
+ evaluator<LhsArg> m_lhsImpl;
+ evaluator<RhsArg> m_rhsImpl;
+};
+
+// "dense ^ sparse"
+template<typename XprType>
+struct sparse_conjunction_evaluator<XprType, IndexBased, IteratorBased>
+ : evaluator_base<XprType>
+{
+protected:
+ typedef typename XprType::Functor BinaryOp;
+ typedef typename XprType::Lhs LhsArg;
+ typedef typename XprType::Rhs RhsArg;
+ typedef evaluator<LhsArg> LhsEvaluator;
+ typedef typename evaluator<RhsArg>::InnerIterator RhsIterator;
+ typedef typename XprType::StorageIndex StorageIndex;
+ typedef typename traits<XprType>::Scalar Scalar;
+public:
+
+ class InnerIterator
+ {
+ enum { IsRowMajor = (int(RhsArg::Flags)&RowMajorBit)==RowMajorBit };
+
+ public:
+
+ EIGEN_STRONG_INLINE InnerIterator(const sparse_conjunction_evaluator& aEval, Index outer)
+ : m_lhsEval(aEval.m_lhsImpl), m_rhsIter(aEval.m_rhsImpl,outer), m_functor(aEval.m_functor), m_outer(outer)
+ {}
+
+ EIGEN_STRONG_INLINE InnerIterator& operator++()
+ {
+ ++m_rhsIter;
+ return *this;
+ }
+
+ EIGEN_STRONG_INLINE Scalar value() const
+ { return m_functor(m_lhsEval.coeff(IsRowMajor?m_outer:m_rhsIter.index(),IsRowMajor?m_rhsIter.index():m_outer), m_rhsIter.value()); }
+
+ EIGEN_STRONG_INLINE StorageIndex index() const { return m_rhsIter.index(); }
+ EIGEN_STRONG_INLINE Index outer() const { return m_rhsIter.outer(); }
+ EIGEN_STRONG_INLINE Index row() const { return m_rhsIter.row(); }
+ EIGEN_STRONG_INLINE Index col() const { return m_rhsIter.col(); }
+
+ EIGEN_STRONG_INLINE operator bool() const { return m_rhsIter; }
+
+ protected:
+ const LhsEvaluator &m_lhsEval;
+ RhsIterator m_rhsIter;
+ const BinaryOp& m_functor;
+ const Index m_outer;
+ };
+
+
+ enum {
+ CoeffReadCost = evaluator<LhsArg>::CoeffReadCost + evaluator<RhsArg>::CoeffReadCost + functor_traits<BinaryOp>::Cost,
+ // Expose storage order of the sparse expression
+ Flags = (XprType::Flags & ~RowMajorBit) | (int(RhsArg::Flags)&RowMajorBit)
+ };
+
+ explicit sparse_conjunction_evaluator(const XprType& xpr)
+ : m_functor(xpr.functor()),
+ m_lhsImpl(xpr.lhs()),
+ m_rhsImpl(xpr.rhs())
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(functor_traits<BinaryOp>::Cost);
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ inline Index nonZerosEstimate() const {
+ return m_rhsImpl.nonZerosEstimate();
+ }
+
+protected:
+ const BinaryOp m_functor;
+ evaluator<LhsArg> m_lhsImpl;
+ evaluator<RhsArg> m_rhsImpl;
+};
+
+// "sparse ^ dense"
+template<typename XprType>
+struct sparse_conjunction_evaluator<XprType, IteratorBased, IndexBased>
+ : evaluator_base<XprType>
+{
+protected:
+ typedef typename XprType::Functor BinaryOp;
+ typedef typename XprType::Lhs LhsArg;
+ typedef typename XprType::Rhs RhsArg;
+ typedef typename evaluator<LhsArg>::InnerIterator LhsIterator;
+ typedef evaluator<RhsArg> RhsEvaluator;
+ typedef typename XprType::StorageIndex StorageIndex;
+ typedef typename traits<XprType>::Scalar Scalar;
+public:
+
+ class InnerIterator
+ {
+ enum { IsRowMajor = (int(LhsArg::Flags)&RowMajorBit)==RowMajorBit };
+
+ public:
+
+ EIGEN_STRONG_INLINE InnerIterator(const sparse_conjunction_evaluator& aEval, Index outer)
+ : m_lhsIter(aEval.m_lhsImpl,outer), m_rhsEval(aEval.m_rhsImpl), m_functor(aEval.m_functor), m_outer(outer)
+ {}
+
+ EIGEN_STRONG_INLINE InnerIterator& operator++()
+ {
+ ++m_lhsIter;
+ return *this;
+ }
+
+ EIGEN_STRONG_INLINE Scalar value() const
+ { return m_functor(m_lhsIter.value(),
+ m_rhsEval.coeff(IsRowMajor?m_outer:m_lhsIter.index(),IsRowMajor?m_lhsIter.index():m_outer)); }
+
+ EIGEN_STRONG_INLINE StorageIndex index() const { return m_lhsIter.index(); }
+ EIGEN_STRONG_INLINE Index outer() const { return m_lhsIter.outer(); }
+ EIGEN_STRONG_INLINE Index row() const { return m_lhsIter.row(); }
+ EIGEN_STRONG_INLINE Index col() const { return m_lhsIter.col(); }
+
+ EIGEN_STRONG_INLINE operator bool() const { return m_lhsIter; }
+
+ protected:
+ LhsIterator m_lhsIter;
+ const evaluator<RhsArg> &m_rhsEval;
+ const BinaryOp& m_functor;
+ const Index m_outer;
+ };
+
+
+ enum {
+ CoeffReadCost = evaluator<LhsArg>::CoeffReadCost + evaluator<RhsArg>::CoeffReadCost + functor_traits<BinaryOp>::Cost,
+ // Expose storage order of the sparse expression
+ Flags = (XprType::Flags & ~RowMajorBit) | (int(LhsArg::Flags)&RowMajorBit)
+ };
+
+ explicit sparse_conjunction_evaluator(const XprType& xpr)
+ : m_functor(xpr.functor()),
+ m_lhsImpl(xpr.lhs()),
+ m_rhsImpl(xpr.rhs())
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(functor_traits<BinaryOp>::Cost);
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ inline Index nonZerosEstimate() const {
+ return m_lhsImpl.nonZerosEstimate();
+ }
+
+protected:
+ const BinaryOp m_functor;
+ evaluator<LhsArg> m_lhsImpl;
+ evaluator<RhsArg> m_rhsImpl;
+};
+
+}
+
+/***************************************************************************
+* Implementation of SparseMatrixBase and SparseCwise functions/operators
+***************************************************************************/
+
+template<typename Derived>
+template<typename OtherDerived>
+Derived& SparseMatrixBase<Derived>::operator+=(const EigenBase<OtherDerived> &other)
+{
+ call_assignment(derived(), other.derived(), internal::add_assign_op<Scalar,typename OtherDerived::Scalar>());
+ return derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+Derived& SparseMatrixBase<Derived>::operator-=(const EigenBase<OtherDerived> &other)
+{
+ call_assignment(derived(), other.derived(), internal::assign_op<Scalar,typename OtherDerived::Scalar>());
+ return derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived &
+SparseMatrixBase<Derived>::operator-=(const SparseMatrixBase<OtherDerived> &other)
+{
+ return derived() = derived() - other.derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived &
+SparseMatrixBase<Derived>::operator+=(const SparseMatrixBase<OtherDerived>& other)
+{
+ return derived() = derived() + other.derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+Derived& SparseMatrixBase<Derived>::operator+=(const DiagonalBase<OtherDerived>& other)
+{
+ call_assignment_no_alias(derived(), other.derived(), internal::add_assign_op<Scalar,typename OtherDerived::Scalar>());
+ return derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+Derived& SparseMatrixBase<Derived>::operator-=(const DiagonalBase<OtherDerived>& other)
+{
+ call_assignment_no_alias(derived(), other.derived(), internal::sub_assign_op<Scalar,typename OtherDerived::Scalar>());
+ return derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE const typename SparseMatrixBase<Derived>::template CwiseProductDenseReturnType<OtherDerived>::Type
+SparseMatrixBase<Derived>::cwiseProduct(const MatrixBase<OtherDerived> &other) const
+{
+ return typename CwiseProductDenseReturnType<OtherDerived>::Type(derived(), other.derived());
+}
+
+template<typename DenseDerived, typename SparseDerived>
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_sum_op<typename DenseDerived::Scalar,typename SparseDerived::Scalar>, const DenseDerived, const SparseDerived>
+operator+(const MatrixBase<DenseDerived> &a, const SparseMatrixBase<SparseDerived> &b)
+{
+ return CwiseBinaryOp<internal::scalar_sum_op<typename DenseDerived::Scalar,typename SparseDerived::Scalar>, const DenseDerived, const SparseDerived>(a.derived(), b.derived());
+}
+
+template<typename SparseDerived, typename DenseDerived>
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_sum_op<typename SparseDerived::Scalar,typename DenseDerived::Scalar>, const SparseDerived, const DenseDerived>
+operator+(const SparseMatrixBase<SparseDerived> &a, const MatrixBase<DenseDerived> &b)
+{
+ return CwiseBinaryOp<internal::scalar_sum_op<typename SparseDerived::Scalar,typename DenseDerived::Scalar>, const SparseDerived, const DenseDerived>(a.derived(), b.derived());
+}
+
+template<typename DenseDerived, typename SparseDerived>
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_difference_op<typename DenseDerived::Scalar,typename SparseDerived::Scalar>, const DenseDerived, const SparseDerived>
+operator-(const MatrixBase<DenseDerived> &a, const SparseMatrixBase<SparseDerived> &b)
+{
+ return CwiseBinaryOp<internal::scalar_difference_op<typename DenseDerived::Scalar,typename SparseDerived::Scalar>, const DenseDerived, const SparseDerived>(a.derived(), b.derived());
+}
+
+template<typename SparseDerived, typename DenseDerived>
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_difference_op<typename SparseDerived::Scalar,typename DenseDerived::Scalar>, const SparseDerived, const DenseDerived>
+operator-(const SparseMatrixBase<SparseDerived> &a, const MatrixBase<DenseDerived> &b)
+{
+ return CwiseBinaryOp<internal::scalar_difference_op<typename SparseDerived::Scalar,typename DenseDerived::Scalar>, const SparseDerived, const DenseDerived>(a.derived(), b.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_CWISE_BINARY_OP_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h
new file mode 100644
index 000000000..ea7973790
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h
@@ -0,0 +1,148 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_CWISE_UNARY_OP_H
+#define EIGEN_SPARSE_CWISE_UNARY_OP_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename UnaryOp, typename ArgType>
+struct unary_evaluator<CwiseUnaryOp<UnaryOp,ArgType>, IteratorBased>
+ : public evaluator_base<CwiseUnaryOp<UnaryOp,ArgType> >
+{
+ public:
+ typedef CwiseUnaryOp<UnaryOp, ArgType> XprType;
+
+ class InnerIterator;
+
+ enum {
+ CoeffReadCost = evaluator<ArgType>::CoeffReadCost + functor_traits<UnaryOp>::Cost,
+ Flags = XprType::Flags
+ };
+
+ explicit unary_evaluator(const XprType& op) : m_functor(op.functor()), m_argImpl(op.nestedExpression())
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(functor_traits<UnaryOp>::Cost);
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ inline Index nonZerosEstimate() const {
+ return m_argImpl.nonZerosEstimate();
+ }
+
+ protected:
+ typedef typename evaluator<ArgType>::InnerIterator EvalIterator;
+
+ const UnaryOp m_functor;
+ evaluator<ArgType> m_argImpl;
+};
+
+template<typename UnaryOp, typename ArgType>
+class unary_evaluator<CwiseUnaryOp<UnaryOp,ArgType>, IteratorBased>::InnerIterator
+ : public unary_evaluator<CwiseUnaryOp<UnaryOp,ArgType>, IteratorBased>::EvalIterator
+{
+ typedef typename XprType::Scalar Scalar;
+ typedef typename unary_evaluator<CwiseUnaryOp<UnaryOp,ArgType>, IteratorBased>::EvalIterator Base;
+ public:
+
+ EIGEN_STRONG_INLINE InnerIterator(const unary_evaluator& unaryOp, Index outer)
+ : Base(unaryOp.m_argImpl,outer), m_functor(unaryOp.m_functor)
+ {}
+
+ EIGEN_STRONG_INLINE InnerIterator& operator++()
+ { Base::operator++(); return *this; }
+
+ EIGEN_STRONG_INLINE Scalar value() const { return m_functor(Base::value()); }
+
+ protected:
+ const UnaryOp m_functor;
+ private:
+ Scalar& valueRef();
+};
+
+template<typename ViewOp, typename ArgType>
+struct unary_evaluator<CwiseUnaryView<ViewOp,ArgType>, IteratorBased>
+ : public evaluator_base<CwiseUnaryView<ViewOp,ArgType> >
+{
+ public:
+ typedef CwiseUnaryView<ViewOp, ArgType> XprType;
+
+ class InnerIterator;
+
+ enum {
+ CoeffReadCost = evaluator<ArgType>::CoeffReadCost + functor_traits<ViewOp>::Cost,
+ Flags = XprType::Flags
+ };
+
+ explicit unary_evaluator(const XprType& op) : m_functor(op.functor()), m_argImpl(op.nestedExpression())
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(functor_traits<ViewOp>::Cost);
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ protected:
+ typedef typename evaluator<ArgType>::InnerIterator EvalIterator;
+
+ const ViewOp m_functor;
+ evaluator<ArgType> m_argImpl;
+};
+
+template<typename ViewOp, typename ArgType>
+class unary_evaluator<CwiseUnaryView<ViewOp,ArgType>, IteratorBased>::InnerIterator
+ : public unary_evaluator<CwiseUnaryView<ViewOp,ArgType>, IteratorBased>::EvalIterator
+{
+ typedef typename XprType::Scalar Scalar;
+ typedef typename unary_evaluator<CwiseUnaryView<ViewOp,ArgType>, IteratorBased>::EvalIterator Base;
+ public:
+
+ EIGEN_STRONG_INLINE InnerIterator(const unary_evaluator& unaryOp, Index outer)
+ : Base(unaryOp.m_argImpl,outer), m_functor(unaryOp.m_functor)
+ {}
+
+ EIGEN_STRONG_INLINE InnerIterator& operator++()
+ { Base::operator++(); return *this; }
+
+ EIGEN_STRONG_INLINE Scalar value() const { return m_functor(Base::value()); }
+ EIGEN_STRONG_INLINE Scalar& valueRef() { return m_functor(Base::valueRef()); }
+
+ protected:
+ const ViewOp m_functor;
+};
+
+} // end namespace internal
+
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived&
+SparseMatrixBase<Derived>::operator*=(const Scalar& other)
+{
+ typedef typename internal::evaluator<Derived>::InnerIterator EvalIterator;
+ internal::evaluator<Derived> thisEval(derived());
+ for (Index j=0; j<outerSize(); ++j)
+ for (EvalIterator i(thisEval,j); i; ++i)
+ i.valueRef() *= other;
+ return derived();
+}
+
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived&
+SparseMatrixBase<Derived>::operator/=(const Scalar& other)
+{
+ typedef typename internal::evaluator<Derived>::InnerIterator EvalIterator;
+ internal::evaluator<Derived> thisEval(derived());
+ for (Index j=0; j<outerSize(); ++j)
+ for (EvalIterator i(thisEval,j); i; ++i)
+ i.valueRef() /= other;
+ return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_CWISE_UNARY_OP_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseDenseProduct.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseDenseProduct.h
new file mode 100644
index 000000000..0547db596
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseDenseProduct.h
@@ -0,0 +1,320 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEDENSEPRODUCT_H
+#define EIGEN_SPARSEDENSEPRODUCT_H
+
+namespace Eigen {
+
+namespace internal {
+
+template <> struct product_promote_storage_type<Sparse,Dense, OuterProduct> { typedef Sparse ret; };
+template <> struct product_promote_storage_type<Dense,Sparse, OuterProduct> { typedef Sparse ret; };
+
+template<typename SparseLhsType, typename DenseRhsType, typename DenseResType,
+ typename AlphaType,
+ int LhsStorageOrder = ((SparseLhsType::Flags&RowMajorBit)==RowMajorBit) ? RowMajor : ColMajor,
+ bool ColPerCol = ((DenseRhsType::Flags&RowMajorBit)==0) || DenseRhsType::ColsAtCompileTime==1>
+struct sparse_time_dense_product_impl;
+
+template<typename SparseLhsType, typename DenseRhsType, typename DenseResType>
+struct sparse_time_dense_product_impl<SparseLhsType,DenseRhsType,DenseResType, typename DenseResType::Scalar, RowMajor, true>
+{
+ typedef typename internal::remove_all<SparseLhsType>::type Lhs;
+ typedef typename internal::remove_all<DenseRhsType>::type Rhs;
+ typedef typename internal::remove_all<DenseResType>::type Res;
+ typedef typename evaluator<Lhs>::InnerIterator LhsInnerIterator;
+ typedef evaluator<Lhs> LhsEval;
+ static void run(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const typename Res::Scalar& alpha)
+ {
+ LhsEval lhsEval(lhs);
+
+ Index n = lhs.outerSize();
+#ifdef EIGEN_HAS_OPENMP
+ Eigen::initParallel();
+ Index threads = Eigen::nbThreads();
+#endif
+
+ for(Index c=0; c<rhs.cols(); ++c)
+ {
+#ifdef EIGEN_HAS_OPENMP
+ // This 20000 threshold has been found experimentally on 2D and 3D Poisson problems.
+ // It basically represents the minimal amount of work to be done to be worth it.
+ if(threads>1 && lhsEval.nonZerosEstimate() > 20000)
+ {
+ #pragma omp parallel for schedule(dynamic,(n+threads*4-1)/(threads*4)) num_threads(threads)
+ for(Index i=0; i<n; ++i)
+ processRow(lhsEval,rhs,res,alpha,i,c);
+ }
+ else
+#endif
+ {
+ for(Index i=0; i<n; ++i)
+ processRow(lhsEval,rhs,res,alpha,i,c);
+ }
+ }
+ }
+
+ static void processRow(const LhsEval& lhsEval, const DenseRhsType& rhs, DenseResType& res, const typename Res::Scalar& alpha, Index i, Index col)
+ {
+ typename Res::Scalar tmp(0);
+ for(LhsInnerIterator it(lhsEval,i); it ;++it)
+ tmp += it.value() * rhs.coeff(it.index(),col);
+ res.coeffRef(i,col) += alpha * tmp;
+ }
+
+};
+
+// FIXME: what is the purpose of the following specialization? Is it for the BlockedSparse format?
+// -> let's disable it for now as it is conflicting with generic scalar*matrix and matrix*scalar operators
+// template<typename T1, typename T2/*, int _Options, typename _StrideType*/>
+// struct ScalarBinaryOpTraits<T1, Ref<T2/*, _Options, _StrideType*/> >
+// {
+// enum {
+// Defined = 1
+// };
+// typedef typename CwiseUnaryOp<scalar_multiple2_op<T1, typename T2::Scalar>, T2>::PlainObject ReturnType;
+// };
+
+template<typename SparseLhsType, typename DenseRhsType, typename DenseResType, typename AlphaType>
+struct sparse_time_dense_product_impl<SparseLhsType,DenseRhsType,DenseResType, AlphaType, ColMajor, true>
+{
+ typedef typename internal::remove_all<SparseLhsType>::type Lhs;
+ typedef typename internal::remove_all<DenseRhsType>::type Rhs;
+ typedef typename internal::remove_all<DenseResType>::type Res;
+ typedef typename evaluator<Lhs>::InnerIterator LhsInnerIterator;
+ static void run(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const AlphaType& alpha)
+ {
+ evaluator<Lhs> lhsEval(lhs);
+ for(Index c=0; c<rhs.cols(); ++c)
+ {
+ for(Index j=0; j<lhs.outerSize(); ++j)
+ {
+// typename Res::Scalar rhs_j = alpha * rhs.coeff(j,c);
+ typename ScalarBinaryOpTraits<AlphaType, typename Rhs::Scalar>::ReturnType rhs_j(alpha * rhs.coeff(j,c));
+ for(LhsInnerIterator it(lhsEval,j); it ;++it)
+ res.coeffRef(it.index(),c) += it.value() * rhs_j;
+ }
+ }
+ }
+};
+
+template<typename SparseLhsType, typename DenseRhsType, typename DenseResType>
+struct sparse_time_dense_product_impl<SparseLhsType,DenseRhsType,DenseResType, typename DenseResType::Scalar, RowMajor, false>
+{
+ typedef typename internal::remove_all<SparseLhsType>::type Lhs;
+ typedef typename internal::remove_all<DenseRhsType>::type Rhs;
+ typedef typename internal::remove_all<DenseResType>::type Res;
+ typedef typename evaluator<Lhs>::InnerIterator LhsInnerIterator;
+ static void run(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const typename Res::Scalar& alpha)
+ {
+ evaluator<Lhs> lhsEval(lhs);
+ for(Index j=0; j<lhs.outerSize(); ++j)
+ {
+ typename Res::RowXpr res_j(res.row(j));
+ for(LhsInnerIterator it(lhsEval,j); it ;++it)
+ res_j += (alpha*it.value()) * rhs.row(it.index());
+ }
+ }
+};
+
+template<typename SparseLhsType, typename DenseRhsType, typename DenseResType>
+struct sparse_time_dense_product_impl<SparseLhsType,DenseRhsType,DenseResType, typename DenseResType::Scalar, ColMajor, false>
+{
+ typedef typename internal::remove_all<SparseLhsType>::type Lhs;
+ typedef typename internal::remove_all<DenseRhsType>::type Rhs;
+ typedef typename internal::remove_all<DenseResType>::type Res;
+ typedef typename evaluator<Lhs>::InnerIterator LhsInnerIterator;
+ static void run(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const typename Res::Scalar& alpha)
+ {
+ evaluator<Lhs> lhsEval(lhs);
+ for(Index j=0; j<lhs.outerSize(); ++j)
+ {
+ typename Rhs::ConstRowXpr rhs_j(rhs.row(j));
+ for(LhsInnerIterator it(lhsEval,j); it ;++it)
+ res.row(it.index()) += (alpha*it.value()) * rhs_j;
+ }
+ }
+};
+
+template<typename SparseLhsType, typename DenseRhsType, typename DenseResType,typename AlphaType>
+inline void sparse_time_dense_product(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const AlphaType& alpha)
+{
+ sparse_time_dense_product_impl<SparseLhsType,DenseRhsType,DenseResType, AlphaType>::run(lhs, rhs, res, alpha);
+}
+
+} // end namespace internal
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, int ProductType>
+struct generic_product_impl<Lhs, Rhs, SparseShape, DenseShape, ProductType>
+ : generic_product_impl_base<Lhs,Rhs,generic_product_impl<Lhs,Rhs,SparseShape,DenseShape,ProductType> >
+{
+ typedef typename Product<Lhs,Rhs>::Scalar Scalar;
+
+ template<typename Dest>
+ static void scaleAndAddTo(Dest& dst, const Lhs& lhs, const Rhs& rhs, const Scalar& alpha)
+ {
+ typedef typename nested_eval<Lhs,((Rhs::Flags&RowMajorBit)==0) ? 1 : Rhs::ColsAtCompileTime>::type LhsNested;
+ typedef typename nested_eval<Rhs,((Lhs::Flags&RowMajorBit)==0) ? 1 : Dynamic>::type RhsNested;
+ LhsNested lhsNested(lhs);
+ RhsNested rhsNested(rhs);
+ internal::sparse_time_dense_product(lhsNested, rhsNested, dst, alpha);
+ }
+};
+
+template<typename Lhs, typename Rhs, int ProductType>
+struct generic_product_impl<Lhs, Rhs, SparseTriangularShape, DenseShape, ProductType>
+ : generic_product_impl<Lhs, Rhs, SparseShape, DenseShape, ProductType>
+{};
+
+template<typename Lhs, typename Rhs, int ProductType>
+struct generic_product_impl<Lhs, Rhs, DenseShape, SparseShape, ProductType>
+ : generic_product_impl_base<Lhs,Rhs,generic_product_impl<Lhs,Rhs,DenseShape,SparseShape,ProductType> >
+{
+ typedef typename Product<Lhs,Rhs>::Scalar Scalar;
+
+ template<typename Dst>
+ static void scaleAndAddTo(Dst& dst, const Lhs& lhs, const Rhs& rhs, const Scalar& alpha)
+ {
+ typedef typename nested_eval<Lhs,((Rhs::Flags&RowMajorBit)==0) ? Dynamic : 1>::type LhsNested;
+ typedef typename nested_eval<Rhs,((Lhs::Flags&RowMajorBit)==RowMajorBit) ? 1 : Lhs::RowsAtCompileTime>::type RhsNested;
+ LhsNested lhsNested(lhs);
+ RhsNested rhsNested(rhs);
+
+ // transpose everything
+ Transpose<Dst> dstT(dst);
+ internal::sparse_time_dense_product(rhsNested.transpose(), lhsNested.transpose(), dstT, alpha);
+ }
+};
+
+template<typename Lhs, typename Rhs, int ProductType>
+struct generic_product_impl<Lhs, Rhs, DenseShape, SparseTriangularShape, ProductType>
+ : generic_product_impl<Lhs, Rhs, DenseShape, SparseShape, ProductType>
+{};
+
+template<typename LhsT, typename RhsT, bool NeedToTranspose>
+struct sparse_dense_outer_product_evaluator
+{
+protected:
+ typedef typename conditional<NeedToTranspose,RhsT,LhsT>::type Lhs1;
+ typedef typename conditional<NeedToTranspose,LhsT,RhsT>::type ActualRhs;
+ typedef Product<LhsT,RhsT,DefaultProduct> ProdXprType;
+
+ // if the actual left-hand side is a dense vector,
+ // then build a sparse-view so that we can seamlessly iterate over it.
+ typedef typename conditional<is_same<typename internal::traits<Lhs1>::StorageKind,Sparse>::value,
+ Lhs1, SparseView<Lhs1> >::type ActualLhs;
+ typedef typename conditional<is_same<typename internal::traits<Lhs1>::StorageKind,Sparse>::value,
+ Lhs1 const&, SparseView<Lhs1> >::type LhsArg;
+
+ typedef evaluator<ActualLhs> LhsEval;
+ typedef evaluator<ActualRhs> RhsEval;
+ typedef typename evaluator<ActualLhs>::InnerIterator LhsIterator;
+ typedef typename ProdXprType::Scalar Scalar;
+
+public:
+ enum {
+ Flags = NeedToTranspose ? RowMajorBit : 0,
+ CoeffReadCost = HugeCost
+ };
+
+ class InnerIterator : public LhsIterator
+ {
+ public:
+ InnerIterator(const sparse_dense_outer_product_evaluator &xprEval, Index outer)
+ : LhsIterator(xprEval.m_lhsXprImpl, 0),
+ m_outer(outer),
+ m_empty(false),
+ m_factor(get(xprEval.m_rhsXprImpl, outer, typename internal::traits<ActualRhs>::StorageKind() ))
+ {}
+
+ EIGEN_STRONG_INLINE Index outer() const { return m_outer; }
+ EIGEN_STRONG_INLINE Index row() const { return NeedToTranspose ? m_outer : LhsIterator::index(); }
+ EIGEN_STRONG_INLINE Index col() const { return NeedToTranspose ? LhsIterator::index() : m_outer; }
+
+ EIGEN_STRONG_INLINE Scalar value() const { return LhsIterator::value() * m_factor; }
+ EIGEN_STRONG_INLINE operator bool() const { return LhsIterator::operator bool() && (!m_empty); }
+
+ protected:
+ Scalar get(const RhsEval &rhs, Index outer, Dense = Dense()) const
+ {
+ return rhs.coeff(outer);
+ }
+
+ Scalar get(const RhsEval &rhs, Index outer, Sparse = Sparse())
+ {
+ typename RhsEval::InnerIterator it(rhs, outer);
+ if (it && it.index()==0 && it.value()!=Scalar(0))
+ return it.value();
+ m_empty = true;
+ return Scalar(0);
+ }
+
+ Index m_outer;
+ bool m_empty;
+ Scalar m_factor;
+ };
+
+ sparse_dense_outer_product_evaluator(const Lhs1 &lhs, const ActualRhs &rhs)
+ : m_lhs(lhs), m_lhsXprImpl(m_lhs), m_rhsXprImpl(rhs)
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ // transpose case
+ sparse_dense_outer_product_evaluator(const ActualRhs &rhs, const Lhs1 &lhs)
+ : m_lhs(lhs), m_lhsXprImpl(m_lhs), m_rhsXprImpl(rhs)
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+protected:
+ const LhsArg m_lhs;
+ evaluator<ActualLhs> m_lhsXprImpl;
+ evaluator<ActualRhs> m_rhsXprImpl;
+};
+
+// sparse * dense outer product
+template<typename Lhs, typename Rhs>
+struct product_evaluator<Product<Lhs, Rhs, DefaultProduct>, OuterProduct, SparseShape, DenseShape>
+ : sparse_dense_outer_product_evaluator<Lhs,Rhs, Lhs::IsRowMajor>
+{
+ typedef sparse_dense_outer_product_evaluator<Lhs,Rhs, Lhs::IsRowMajor> Base;
+
+ typedef Product<Lhs, Rhs> XprType;
+ typedef typename XprType::PlainObject PlainObject;
+
+ explicit product_evaluator(const XprType& xpr)
+ : Base(xpr.lhs(), xpr.rhs())
+ {}
+
+};
+
+template<typename Lhs, typename Rhs>
+struct product_evaluator<Product<Lhs, Rhs, DefaultProduct>, OuterProduct, DenseShape, SparseShape>
+ : sparse_dense_outer_product_evaluator<Lhs,Rhs, Rhs::IsRowMajor>
+{
+ typedef sparse_dense_outer_product_evaluator<Lhs,Rhs, Rhs::IsRowMajor> Base;
+
+ typedef Product<Lhs, Rhs> XprType;
+ typedef typename XprType::PlainObject PlainObject;
+
+ explicit product_evaluator(const XprType& xpr)
+ : Base(xpr.lhs(), xpr.rhs())
+ {}
+
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEDENSEPRODUCT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h
new file mode 100644
index 000000000..941c03be3
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h
@@ -0,0 +1,138 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_DIAGONAL_PRODUCT_H
+#define EIGEN_SPARSE_DIAGONAL_PRODUCT_H
+
+namespace Eigen {
+
+// The product of a diagonal matrix with a sparse matrix can be easily
+// implemented using expression template.
+// We have two consider very different cases:
+// 1 - diag * row-major sparse
+// => each inner vector <=> scalar * sparse vector product
+// => so we can reuse CwiseUnaryOp::InnerIterator
+// 2 - diag * col-major sparse
+// => each inner vector <=> densevector * sparse vector cwise product
+// => again, we can reuse specialization of CwiseBinaryOp::InnerIterator
+// for that particular case
+// The two other cases are symmetric.
+
+namespace internal {
+
+enum {
+ SDP_AsScalarProduct,
+ SDP_AsCwiseProduct
+};
+
+template<typename SparseXprType, typename DiagonalCoeffType, int SDP_Tag>
+struct sparse_diagonal_product_evaluator;
+
+template<typename Lhs, typename Rhs, int ProductTag>
+struct product_evaluator<Product<Lhs, Rhs, DefaultProduct>, ProductTag, DiagonalShape, SparseShape>
+ : public sparse_diagonal_product_evaluator<Rhs, typename Lhs::DiagonalVectorType, Rhs::Flags&RowMajorBit?SDP_AsScalarProduct:SDP_AsCwiseProduct>
+{
+ typedef Product<Lhs, Rhs, DefaultProduct> XprType;
+ enum { CoeffReadCost = HugeCost, Flags = Rhs::Flags&RowMajorBit, Alignment = 0 }; // FIXME CoeffReadCost & Flags
+
+ typedef sparse_diagonal_product_evaluator<Rhs, typename Lhs::DiagonalVectorType, Rhs::Flags&RowMajorBit?SDP_AsScalarProduct:SDP_AsCwiseProduct> Base;
+ explicit product_evaluator(const XprType& xpr) : Base(xpr.rhs(), xpr.lhs().diagonal()) {}
+};
+
+template<typename Lhs, typename Rhs, int ProductTag>
+struct product_evaluator<Product<Lhs, Rhs, DefaultProduct>, ProductTag, SparseShape, DiagonalShape>
+ : public sparse_diagonal_product_evaluator<Lhs, Transpose<const typename Rhs::DiagonalVectorType>, Lhs::Flags&RowMajorBit?SDP_AsCwiseProduct:SDP_AsScalarProduct>
+{
+ typedef Product<Lhs, Rhs, DefaultProduct> XprType;
+ enum { CoeffReadCost = HugeCost, Flags = Lhs::Flags&RowMajorBit, Alignment = 0 }; // FIXME CoeffReadCost & Flags
+
+ typedef sparse_diagonal_product_evaluator<Lhs, Transpose<const typename Rhs::DiagonalVectorType>, Lhs::Flags&RowMajorBit?SDP_AsCwiseProduct:SDP_AsScalarProduct> Base;
+ explicit product_evaluator(const XprType& xpr) : Base(xpr.lhs(), xpr.rhs().diagonal().transpose()) {}
+};
+
+template<typename SparseXprType, typename DiagonalCoeffType>
+struct sparse_diagonal_product_evaluator<SparseXprType, DiagonalCoeffType, SDP_AsScalarProduct>
+{
+protected:
+ typedef typename evaluator<SparseXprType>::InnerIterator SparseXprInnerIterator;
+ typedef typename SparseXprType::Scalar Scalar;
+
+public:
+ class InnerIterator : public SparseXprInnerIterator
+ {
+ public:
+ InnerIterator(const sparse_diagonal_product_evaluator &xprEval, Index outer)
+ : SparseXprInnerIterator(xprEval.m_sparseXprImpl, outer),
+ m_coeff(xprEval.m_diagCoeffImpl.coeff(outer))
+ {}
+
+ EIGEN_STRONG_INLINE Scalar value() const { return m_coeff * SparseXprInnerIterator::value(); }
+ protected:
+ typename DiagonalCoeffType::Scalar m_coeff;
+ };
+
+ sparse_diagonal_product_evaluator(const SparseXprType &sparseXpr, const DiagonalCoeffType &diagCoeff)
+ : m_sparseXprImpl(sparseXpr), m_diagCoeffImpl(diagCoeff)
+ {}
+
+ Index nonZerosEstimate() const { return m_sparseXprImpl.nonZerosEstimate(); }
+
+protected:
+ evaluator<SparseXprType> m_sparseXprImpl;
+ evaluator<DiagonalCoeffType> m_diagCoeffImpl;
+};
+
+
+template<typename SparseXprType, typename DiagCoeffType>
+struct sparse_diagonal_product_evaluator<SparseXprType, DiagCoeffType, SDP_AsCwiseProduct>
+{
+ typedef typename SparseXprType::Scalar Scalar;
+ typedef typename SparseXprType::StorageIndex StorageIndex;
+
+ typedef typename nested_eval<DiagCoeffType,SparseXprType::IsRowMajor ? SparseXprType::RowsAtCompileTime
+ : SparseXprType::ColsAtCompileTime>::type DiagCoeffNested;
+
+ class InnerIterator
+ {
+ typedef typename evaluator<SparseXprType>::InnerIterator SparseXprIter;
+ public:
+ InnerIterator(const sparse_diagonal_product_evaluator &xprEval, Index outer)
+ : m_sparseIter(xprEval.m_sparseXprEval, outer), m_diagCoeffNested(xprEval.m_diagCoeffNested)
+ {}
+
+ inline Scalar value() const { return m_sparseIter.value() * m_diagCoeffNested.coeff(index()); }
+ inline StorageIndex index() const { return m_sparseIter.index(); }
+ inline Index outer() const { return m_sparseIter.outer(); }
+ inline Index col() const { return SparseXprType::IsRowMajor ? m_sparseIter.index() : m_sparseIter.outer(); }
+ inline Index row() const { return SparseXprType::IsRowMajor ? m_sparseIter.outer() : m_sparseIter.index(); }
+
+ EIGEN_STRONG_INLINE InnerIterator& operator++() { ++m_sparseIter; return *this; }
+ inline operator bool() const { return m_sparseIter; }
+
+ protected:
+ SparseXprIter m_sparseIter;
+ DiagCoeffNested m_diagCoeffNested;
+ };
+
+ sparse_diagonal_product_evaluator(const SparseXprType &sparseXpr, const DiagCoeffType &diagCoeff)
+ : m_sparseXprEval(sparseXpr), m_diagCoeffNested(diagCoeff)
+ {}
+
+ Index nonZerosEstimate() const { return m_sparseXprEval.nonZerosEstimate(); }
+
+protected:
+ evaluator<SparseXprType> m_sparseXprEval;
+ DiagCoeffNested m_diagCoeffNested;
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_DIAGONAL_PRODUCT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseDot.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseDot.h
new file mode 100644
index 000000000..38bc4aa9e
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseDot.h
@@ -0,0 +1,98 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_DOT_H
+#define EIGEN_SPARSE_DOT_H
+
+namespace Eigen {
+
+template<typename Derived>
+template<typename OtherDerived>
+typename internal::traits<Derived>::Scalar
+SparseMatrixBase<Derived>::dot(const MatrixBase<OtherDerived>& other) const
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+ EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived)
+ EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
+ YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+ eigen_assert(size() == other.size());
+ eigen_assert(other.size()>0 && "you are using a non initialized vector");
+
+ internal::evaluator<Derived> thisEval(derived());
+ typename internal::evaluator<Derived>::InnerIterator i(thisEval, 0);
+ Scalar res(0);
+ while (i)
+ {
+ res += numext::conj(i.value()) * other.coeff(i.index());
+ ++i;
+ }
+ return res;
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+typename internal::traits<Derived>::Scalar
+SparseMatrixBase<Derived>::dot(const SparseMatrixBase<OtherDerived>& other) const
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+ EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived)
+ EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
+ YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+ eigen_assert(size() == other.size());
+
+ internal::evaluator<Derived> thisEval(derived());
+ typename internal::evaluator<Derived>::InnerIterator i(thisEval, 0);
+
+ internal::evaluator<OtherDerived> otherEval(other.derived());
+ typename internal::evaluator<OtherDerived>::InnerIterator j(otherEval, 0);
+
+ Scalar res(0);
+ while (i && j)
+ {
+ if (i.index()==j.index())
+ {
+ res += numext::conj(i.value()) * j.value();
+ ++i; ++j;
+ }
+ else if (i.index()<j.index())
+ ++i;
+ else
+ ++j;
+ }
+ return res;
+}
+
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+SparseMatrixBase<Derived>::squaredNorm() const
+{
+ return numext::real((*this).cwiseAbs2().sum());
+}
+
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+SparseMatrixBase<Derived>::norm() const
+{
+ using std::sqrt;
+ return sqrt(squaredNorm());
+}
+
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+SparseMatrixBase<Derived>::blueNorm() const
+{
+ return internal::blueNorm_impl(*this);
+}
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_DOT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseFuzzy.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseFuzzy.h
new file mode 100644
index 000000000..7d47eb94d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseFuzzy.h
@@ -0,0 +1,29 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_FUZZY_H
+#define EIGEN_SPARSE_FUZZY_H
+
+namespace Eigen {
+
+template<typename Derived>
+template<typename OtherDerived>
+bool SparseMatrixBase<Derived>::isApprox(const SparseMatrixBase<OtherDerived>& other, const RealScalar &prec) const
+{
+ const typename internal::nested_eval<Derived,2,PlainObject>::type actualA(derived());
+ typename internal::conditional<bool(IsRowMajor)==bool(OtherDerived::IsRowMajor),
+ const typename internal::nested_eval<OtherDerived,2,PlainObject>::type,
+ const PlainObject>::type actualB(other.derived());
+
+ return (actualA - actualB).squaredNorm() <= prec * prec * numext::mini(actualA.squaredNorm(), actualB.squaredNorm());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_FUZZY_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseMap.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseMap.h
new file mode 100644
index 000000000..f99be3379
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseMap.h
@@ -0,0 +1,305 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_MAP_H
+#define EIGEN_SPARSE_MAP_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
+struct traits<Map<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> >
+ : public traits<SparseMatrix<MatScalar,MatOptions,MatIndex> >
+{
+ typedef SparseMatrix<MatScalar,MatOptions,MatIndex> PlainObjectType;
+ typedef traits<PlainObjectType> TraitsBase;
+ enum {
+ Flags = TraitsBase::Flags & (~NestByRefBit)
+ };
+};
+
+template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
+struct traits<Map<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> >
+ : public traits<SparseMatrix<MatScalar,MatOptions,MatIndex> >
+{
+ typedef SparseMatrix<MatScalar,MatOptions,MatIndex> PlainObjectType;
+ typedef traits<PlainObjectType> TraitsBase;
+ enum {
+ Flags = TraitsBase::Flags & (~ (NestByRefBit | LvalueBit))
+ };
+};
+
+} // end namespace internal
+
+template<typename Derived,
+ int Level = internal::accessors_level<Derived>::has_write_access ? WriteAccessors : ReadOnlyAccessors
+> class SparseMapBase;
+
+/** \ingroup SparseCore_Module
+ * class SparseMapBase
+ * \brief Common base class for Map and Ref instance of sparse matrix and vector.
+ */
+template<typename Derived>
+class SparseMapBase<Derived,ReadOnlyAccessors>
+ : public SparseCompressedBase<Derived>
+{
+ public:
+ typedef SparseCompressedBase<Derived> Base;
+ typedef typename Base::Scalar Scalar;
+ typedef typename Base::StorageIndex StorageIndex;
+ enum { IsRowMajor = Base::IsRowMajor };
+ using Base::operator=;
+ protected:
+
+ typedef typename internal::conditional<
+ bool(internal::is_lvalue<Derived>::value),
+ Scalar *, const Scalar *>::type ScalarPointer;
+ typedef typename internal::conditional<
+ bool(internal::is_lvalue<Derived>::value),
+ StorageIndex *, const StorageIndex *>::type IndexPointer;
+
+ Index m_outerSize;
+ Index m_innerSize;
+ Array<StorageIndex,2,1> m_zero_nnz;
+ IndexPointer m_outerIndex;
+ IndexPointer m_innerIndices;
+ ScalarPointer m_values;
+ IndexPointer m_innerNonZeros;
+
+ public:
+
+ /** \copydoc SparseMatrixBase::rows() */
+ inline Index rows() const { return IsRowMajor ? m_outerSize : m_innerSize; }
+ /** \copydoc SparseMatrixBase::cols() */
+ inline Index cols() const { return IsRowMajor ? m_innerSize : m_outerSize; }
+ /** \copydoc SparseMatrixBase::innerSize() */
+ inline Index innerSize() const { return m_innerSize; }
+ /** \copydoc SparseMatrixBase::outerSize() */
+ inline Index outerSize() const { return m_outerSize; }
+ /** \copydoc SparseCompressedBase::nonZeros */
+ inline Index nonZeros() const { return m_zero_nnz[1]; }
+
+ /** \copydoc SparseCompressedBase::isCompressed */
+ bool isCompressed() const { return m_innerNonZeros==0; }
+
+ //----------------------------------------
+ // direct access interface
+ /** \copydoc SparseMatrix::valuePtr */
+ inline const Scalar* valuePtr() const { return m_values; }
+ /** \copydoc SparseMatrix::innerIndexPtr */
+ inline const StorageIndex* innerIndexPtr() const { return m_innerIndices; }
+ /** \copydoc SparseMatrix::outerIndexPtr */
+ inline const StorageIndex* outerIndexPtr() const { return m_outerIndex; }
+ /** \copydoc SparseMatrix::innerNonZeroPtr */
+ inline const StorageIndex* innerNonZeroPtr() const { return m_innerNonZeros; }
+ //----------------------------------------
+
+ /** \copydoc SparseMatrix::coeff */
+ inline Scalar coeff(Index row, Index col) const
+ {
+ const Index outer = IsRowMajor ? row : col;
+ const Index inner = IsRowMajor ? col : row;
+
+ Index start = m_outerIndex[outer];
+ Index end = isCompressed() ? m_outerIndex[outer+1] : start + m_innerNonZeros[outer];
+ if (start==end)
+ return Scalar(0);
+ else if (end>0 && inner==m_innerIndices[end-1])
+ return m_values[end-1];
+ // ^^ optimization: let's first check if it is the last coefficient
+ // (very common in high level algorithms)
+
+ const StorageIndex* r = std::lower_bound(&m_innerIndices[start],&m_innerIndices[end-1],inner);
+ const Index id = r-&m_innerIndices[0];
+ return ((*r==inner) && (id<end)) ? m_values[id] : Scalar(0);
+ }
+
+ inline SparseMapBase(Index rows, Index cols, Index nnz, IndexPointer outerIndexPtr, IndexPointer innerIndexPtr,
+ ScalarPointer valuePtr, IndexPointer innerNonZerosPtr = 0)
+ : m_outerSize(IsRowMajor?rows:cols), m_innerSize(IsRowMajor?cols:rows), m_zero_nnz(0,internal::convert_index<StorageIndex>(nnz)), m_outerIndex(outerIndexPtr),
+ m_innerIndices(innerIndexPtr), m_values(valuePtr), m_innerNonZeros(innerNonZerosPtr)
+ {}
+
+ // for vectors
+ inline SparseMapBase(Index size, Index nnz, IndexPointer innerIndexPtr, ScalarPointer valuePtr)
+ : m_outerSize(1), m_innerSize(size), m_zero_nnz(0,internal::convert_index<StorageIndex>(nnz)), m_outerIndex(m_zero_nnz.data()),
+ m_innerIndices(innerIndexPtr), m_values(valuePtr), m_innerNonZeros(0)
+ {}
+
+ /** Empty destructor */
+ inline ~SparseMapBase() {}
+
+ protected:
+ inline SparseMapBase() {}
+};
+
+/** \ingroup SparseCore_Module
+ * class SparseMapBase
+ * \brief Common base class for writable Map and Ref instance of sparse matrix and vector.
+ */
+template<typename Derived>
+class SparseMapBase<Derived,WriteAccessors>
+ : public SparseMapBase<Derived,ReadOnlyAccessors>
+{
+ typedef MapBase<Derived, ReadOnlyAccessors> ReadOnlyMapBase;
+
+ public:
+ typedef SparseMapBase<Derived, ReadOnlyAccessors> Base;
+ typedef typename Base::Scalar Scalar;
+ typedef typename Base::StorageIndex StorageIndex;
+ enum { IsRowMajor = Base::IsRowMajor };
+
+ using Base::operator=;
+
+ public:
+
+ //----------------------------------------
+ // direct access interface
+ using Base::valuePtr;
+ using Base::innerIndexPtr;
+ using Base::outerIndexPtr;
+ using Base::innerNonZeroPtr;
+ /** \copydoc SparseMatrix::valuePtr */
+ inline Scalar* valuePtr() { return Base::m_values; }
+ /** \copydoc SparseMatrix::innerIndexPtr */
+ inline StorageIndex* innerIndexPtr() { return Base::m_innerIndices; }
+ /** \copydoc SparseMatrix::outerIndexPtr */
+ inline StorageIndex* outerIndexPtr() { return Base::m_outerIndex; }
+ /** \copydoc SparseMatrix::innerNonZeroPtr */
+ inline StorageIndex* innerNonZeroPtr() { return Base::m_innerNonZeros; }
+ //----------------------------------------
+
+ /** \copydoc SparseMatrix::coeffRef */
+ inline Scalar& coeffRef(Index row, Index col)
+ {
+ const Index outer = IsRowMajor ? row : col;
+ const Index inner = IsRowMajor ? col : row;
+
+ Index start = Base::m_outerIndex[outer];
+ Index end = Base::isCompressed() ? Base::m_outerIndex[outer+1] : start + Base::m_innerNonZeros[outer];
+ eigen_assert(end>=start && "you probably called coeffRef on a non finalized matrix");
+ eigen_assert(end>start && "coeffRef cannot be called on a zero coefficient");
+ StorageIndex* r = std::lower_bound(&Base::m_innerIndices[start],&Base::m_innerIndices[end],inner);
+ const Index id = r - &Base::m_innerIndices[0];
+ eigen_assert((*r==inner) && (id<end) && "coeffRef cannot be called on a zero coefficient");
+ return const_cast<Scalar*>(Base::m_values)[id];
+ }
+
+ inline SparseMapBase(Index rows, Index cols, Index nnz, StorageIndex* outerIndexPtr, StorageIndex* innerIndexPtr,
+ Scalar* valuePtr, StorageIndex* innerNonZerosPtr = 0)
+ : Base(rows, cols, nnz, outerIndexPtr, innerIndexPtr, valuePtr, innerNonZerosPtr)
+ {}
+
+ // for vectors
+ inline SparseMapBase(Index size, Index nnz, StorageIndex* innerIndexPtr, Scalar* valuePtr)
+ : Base(size, nnz, innerIndexPtr, valuePtr)
+ {}
+
+ /** Empty destructor */
+ inline ~SparseMapBase() {}
+
+ protected:
+ inline SparseMapBase() {}
+};
+
+/** \ingroup SparseCore_Module
+ *
+ * \brief Specialization of class Map for SparseMatrix-like storage.
+ *
+ * \tparam SparseMatrixType the equivalent sparse matrix type of the referenced data, it must be a template instance of class SparseMatrix.
+ *
+ * \sa class Map, class SparseMatrix, class Ref<SparseMatrixType,Options>
+ */
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
+class Map<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType>
+ : public SparseMapBase<Map<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> >
+#else
+template<typename SparseMatrixType>
+class Map<SparseMatrixType>
+ : public SparseMapBase<Derived,WriteAccessors>
+#endif
+{
+ public:
+ typedef SparseMapBase<Map> Base;
+ EIGEN_SPARSE_PUBLIC_INTERFACE(Map)
+ enum { IsRowMajor = Base::IsRowMajor };
+
+ public:
+
+ /** Constructs a read-write Map to a sparse matrix of size \a rows x \a cols, containing \a nnz non-zero coefficients,
+ * stored as a sparse format as defined by the pointers \a outerIndexPtr, \a innerIndexPtr, and \a valuePtr.
+ * If the optional parameter \a innerNonZerosPtr is the null pointer, then a standard compressed format is assumed.
+ *
+ * This constructor is available only if \c SparseMatrixType is non-const.
+ *
+ * More details on the expected storage schemes are given in the \ref TutorialSparse "manual pages".
+ */
+ inline Map(Index rows, Index cols, Index nnz, StorageIndex* outerIndexPtr,
+ StorageIndex* innerIndexPtr, Scalar* valuePtr, StorageIndex* innerNonZerosPtr = 0)
+ : Base(rows, cols, nnz, outerIndexPtr, innerIndexPtr, valuePtr, innerNonZerosPtr)
+ {}
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** Empty destructor */
+ inline ~Map() {}
+};
+
+template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
+class Map<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType>
+ : public SparseMapBase<Map<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> >
+{
+ public:
+ typedef SparseMapBase<Map> Base;
+ EIGEN_SPARSE_PUBLIC_INTERFACE(Map)
+ enum { IsRowMajor = Base::IsRowMajor };
+
+ public:
+#endif
+ /** This is the const version of the above constructor.
+ *
+ * This constructor is available only if \c SparseMatrixType is const, e.g.:
+ * \code Map<const SparseMatrix<double> > \endcode
+ */
+ inline Map(Index rows, Index cols, Index nnz, const StorageIndex* outerIndexPtr,
+ const StorageIndex* innerIndexPtr, const Scalar* valuePtr, const StorageIndex* innerNonZerosPtr = 0)
+ : Base(rows, cols, nnz, outerIndexPtr, innerIndexPtr, valuePtr, innerNonZerosPtr)
+ {}
+
+ /** Empty destructor */
+ inline ~Map() {}
+};
+
+namespace internal {
+
+template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
+struct evaluator<Map<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> >
+ : evaluator<SparseCompressedBase<Map<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> > >
+{
+ typedef evaluator<SparseCompressedBase<Map<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> > > Base;
+ typedef Map<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> XprType;
+ evaluator() : Base() {}
+ explicit evaluator(const XprType &mat) : Base(mat) {}
+};
+
+template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
+struct evaluator<Map<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> >
+ : evaluator<SparseCompressedBase<Map<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> > >
+{
+ typedef evaluator<SparseCompressedBase<Map<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> > > Base;
+ typedef Map<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> XprType;
+ evaluator() : Base() {}
+ explicit evaluator(const XprType &mat) : Base(mat) {}
+};
+
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_MAP_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseMatrix.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseMatrix.h
new file mode 100644
index 000000000..323c2323b
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseMatrix.h
@@ -0,0 +1,1403 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEMATRIX_H
+#define EIGEN_SPARSEMATRIX_H
+
+namespace Eigen {
+
+/** \ingroup SparseCore_Module
+ *
+ * \class SparseMatrix
+ *
+ * \brief A versatible sparse matrix representation
+ *
+ * This class implements a more versatile variants of the common \em compressed row/column storage format.
+ * Each colmun's (resp. row) non zeros are stored as a pair of value with associated row (resp. colmiun) index.
+ * All the non zeros are stored in a single large buffer. Unlike the \em compressed format, there might be extra
+ * space inbetween the nonzeros of two successive colmuns (resp. rows) such that insertion of new non-zero
+ * can be done with limited memory reallocation and copies.
+ *
+ * A call to the function makeCompressed() turns the matrix into the standard \em compressed format
+ * compatible with many library.
+ *
+ * More details on this storage sceheme are given in the \ref TutorialSparse "manual pages".
+ *
+ * \tparam _Scalar the scalar type, i.e. the type of the coefficients
+ * \tparam _Options Union of bit flags controlling the storage scheme. Currently the only possibility
+ * is ColMajor or RowMajor. The default is 0 which means column-major.
+ * \tparam _StorageIndex the type of the indices. It has to be a \b signed type (e.g., short, int, std::ptrdiff_t). Default is \c int.
+ *
+ * \warning In %Eigen 3.2, the undocumented type \c SparseMatrix::Index was improperly defined as the storage index type (e.g., int),
+ * whereas it is now (starting from %Eigen 3.3) deprecated and always defined as Eigen::Index.
+ * Codes making use of \c SparseMatrix::Index, might thus likely have to be changed to use \c SparseMatrix::StorageIndex instead.
+ *
+ * This class can be extended with the help of the plugin mechanism described on the page
+ * \ref TopicCustomizing_Plugins by defining the preprocessor symbol \c EIGEN_SPARSEMATRIX_PLUGIN.
+ */
+
+namespace internal {
+template<typename _Scalar, int _Options, typename _StorageIndex>
+struct traits<SparseMatrix<_Scalar, _Options, _StorageIndex> >
+{
+ typedef _Scalar Scalar;
+ typedef _StorageIndex StorageIndex;
+ typedef Sparse StorageKind;
+ typedef MatrixXpr XprKind;
+ enum {
+ RowsAtCompileTime = Dynamic,
+ ColsAtCompileTime = Dynamic,
+ MaxRowsAtCompileTime = Dynamic,
+ MaxColsAtCompileTime = Dynamic,
+ Flags = _Options | NestByRefBit | LvalueBit | CompressedAccessBit,
+ SupportedAccessPatterns = InnerRandomAccessPattern
+ };
+};
+
+template<typename _Scalar, int _Options, typename _StorageIndex, int DiagIndex>
+struct traits<Diagonal<SparseMatrix<_Scalar, _Options, _StorageIndex>, DiagIndex> >
+{
+ typedef SparseMatrix<_Scalar, _Options, _StorageIndex> MatrixType;
+ typedef typename ref_selector<MatrixType>::type MatrixTypeNested;
+ typedef typename remove_reference<MatrixTypeNested>::type _MatrixTypeNested;
+
+ typedef _Scalar Scalar;
+ typedef Dense StorageKind;
+ typedef _StorageIndex StorageIndex;
+ typedef MatrixXpr XprKind;
+
+ enum {
+ RowsAtCompileTime = Dynamic,
+ ColsAtCompileTime = 1,
+ MaxRowsAtCompileTime = Dynamic,
+ MaxColsAtCompileTime = 1,
+ Flags = LvalueBit
+ };
+};
+
+template<typename _Scalar, int _Options, typename _StorageIndex, int DiagIndex>
+struct traits<Diagonal<const SparseMatrix<_Scalar, _Options, _StorageIndex>, DiagIndex> >
+ : public traits<Diagonal<SparseMatrix<_Scalar, _Options, _StorageIndex>, DiagIndex> >
+{
+ enum {
+ Flags = 0
+ };
+};
+
+} // end namespace internal
+
+template<typename _Scalar, int _Options, typename _StorageIndex>
+class SparseMatrix
+ : public SparseCompressedBase<SparseMatrix<_Scalar, _Options, _StorageIndex> >
+{
+ typedef SparseCompressedBase<SparseMatrix> Base;
+ using Base::convert_index;
+ friend class SparseVector<_Scalar,0,_StorageIndex>;
+ public:
+ using Base::isCompressed;
+ using Base::nonZeros;
+ EIGEN_SPARSE_PUBLIC_INTERFACE(SparseMatrix)
+ using Base::operator+=;
+ using Base::operator-=;
+
+ typedef MappedSparseMatrix<Scalar,Flags> Map;
+ typedef Diagonal<SparseMatrix> DiagonalReturnType;
+ typedef Diagonal<const SparseMatrix> ConstDiagonalReturnType;
+ typedef typename Base::InnerIterator InnerIterator;
+ typedef typename Base::ReverseInnerIterator ReverseInnerIterator;
+
+
+ using Base::IsRowMajor;
+ typedef internal::CompressedStorage<Scalar,StorageIndex> Storage;
+ enum {
+ Options = _Options
+ };
+
+ typedef typename Base::IndexVector IndexVector;
+ typedef typename Base::ScalarVector ScalarVector;
+ protected:
+ typedef SparseMatrix<Scalar,(Flags&~RowMajorBit)|(IsRowMajor?RowMajorBit:0)> TransposedSparseMatrix;
+
+ Index m_outerSize;
+ Index m_innerSize;
+ StorageIndex* m_outerIndex;
+ StorageIndex* m_innerNonZeros; // optional, if null then the data is compressed
+ Storage m_data;
+
+ public:
+
+ /** \returns the number of rows of the matrix */
+ inline Index rows() const { return IsRowMajor ? m_outerSize : m_innerSize; }
+ /** \returns the number of columns of the matrix */
+ inline Index cols() const { return IsRowMajor ? m_innerSize : m_outerSize; }
+
+ /** \returns the number of rows (resp. columns) of the matrix if the storage order column major (resp. row major) */
+ inline Index innerSize() const { return m_innerSize; }
+ /** \returns the number of columns (resp. rows) of the matrix if the storage order column major (resp. row major) */
+ inline Index outerSize() const { return m_outerSize; }
+
+ /** \returns a const pointer to the array of values.
+ * This function is aimed at interoperability with other libraries.
+ * \sa innerIndexPtr(), outerIndexPtr() */
+ inline const Scalar* valuePtr() const { return m_data.valuePtr(); }
+ /** \returns a non-const pointer to the array of values.
+ * This function is aimed at interoperability with other libraries.
+ * \sa innerIndexPtr(), outerIndexPtr() */
+ inline Scalar* valuePtr() { return m_data.valuePtr(); }
+
+ /** \returns a const pointer to the array of inner indices.
+ * This function is aimed at interoperability with other libraries.
+ * \sa valuePtr(), outerIndexPtr() */
+ inline const StorageIndex* innerIndexPtr() const { return m_data.indexPtr(); }
+ /** \returns a non-const pointer to the array of inner indices.
+ * This function is aimed at interoperability with other libraries.
+ * \sa valuePtr(), outerIndexPtr() */
+ inline StorageIndex* innerIndexPtr() { return m_data.indexPtr(); }
+
+ /** \returns a const pointer to the array of the starting positions of the inner vectors.
+ * This function is aimed at interoperability with other libraries.
+ * \sa valuePtr(), innerIndexPtr() */
+ inline const StorageIndex* outerIndexPtr() const { return m_outerIndex; }
+ /** \returns a non-const pointer to the array of the starting positions of the inner vectors.
+ * This function is aimed at interoperability with other libraries.
+ * \sa valuePtr(), innerIndexPtr() */
+ inline StorageIndex* outerIndexPtr() { return m_outerIndex; }
+
+ /** \returns a const pointer to the array of the number of non zeros of the inner vectors.
+ * This function is aimed at interoperability with other libraries.
+ * \warning it returns the null pointer 0 in compressed mode */
+ inline const StorageIndex* innerNonZeroPtr() const { return m_innerNonZeros; }
+ /** \returns a non-const pointer to the array of the number of non zeros of the inner vectors.
+ * This function is aimed at interoperability with other libraries.
+ * \warning it returns the null pointer 0 in compressed mode */
+ inline StorageIndex* innerNonZeroPtr() { return m_innerNonZeros; }
+
+ /** \internal */
+ inline Storage& data() { return m_data; }
+ /** \internal */
+ inline const Storage& data() const { return m_data; }
+
+ /** \returns the value of the matrix at position \a i, \a j
+ * This function returns Scalar(0) if the element is an explicit \em zero */
+ inline Scalar coeff(Index row, Index col) const
+ {
+ eigen_assert(row>=0 && row<rows() && col>=0 && col<cols());
+
+ const Index outer = IsRowMajor ? row : col;
+ const Index inner = IsRowMajor ? col : row;
+ Index end = m_innerNonZeros ? m_outerIndex[outer] + m_innerNonZeros[outer] : m_outerIndex[outer+1];
+ return m_data.atInRange(m_outerIndex[outer], end, StorageIndex(inner));
+ }
+
+ /** \returns a non-const reference to the value of the matrix at position \a i, \a j
+ *
+ * If the element does not exist then it is inserted via the insert(Index,Index) function
+ * which itself turns the matrix into a non compressed form if that was not the case.
+ *
+ * This is a O(log(nnz_j)) operation (binary search) plus the cost of insert(Index,Index)
+ * function if the element does not already exist.
+ */
+ inline Scalar& coeffRef(Index row, Index col)
+ {
+ eigen_assert(row>=0 && row<rows() && col>=0 && col<cols());
+
+ const Index outer = IsRowMajor ? row : col;
+ const Index inner = IsRowMajor ? col : row;
+
+ Index start = m_outerIndex[outer];
+ Index end = m_innerNonZeros ? m_outerIndex[outer] + m_innerNonZeros[outer] : m_outerIndex[outer+1];
+ eigen_assert(end>=start && "you probably called coeffRef on a non finalized matrix");
+ if(end<=start)
+ return insert(row,col);
+ const Index p = m_data.searchLowerIndex(start,end-1,StorageIndex(inner));
+ if((p<end) && (m_data.index(p)==inner))
+ return m_data.value(p);
+ else
+ return insert(row,col);
+ }
+
+ /** \returns a reference to a novel non zero coefficient with coordinates \a row x \a col.
+ * The non zero coefficient must \b not already exist.
+ *
+ * If the matrix \c *this is in compressed mode, then \c *this is turned into uncompressed
+ * mode while reserving room for 2 x this->innerSize() non zeros if reserve(Index) has not been called earlier.
+ * In this case, the insertion procedure is optimized for a \e sequential insertion mode where elements are assumed to be
+ * inserted by increasing outer-indices.
+ *
+ * If that's not the case, then it is strongly recommended to either use a triplet-list to assemble the matrix, or to first
+ * call reserve(const SizesType &) to reserve the appropriate number of non-zero elements per inner vector.
+ *
+ * Assuming memory has been appropriately reserved, this function performs a sorted insertion in O(1)
+ * if the elements of each inner vector are inserted in increasing inner index order, and in O(nnz_j) for a random insertion.
+ *
+ */
+ Scalar& insert(Index row, Index col);
+
+ public:
+
+ /** Removes all non zeros but keep allocated memory
+ *
+ * This function does not free the currently allocated memory. To release as much as memory as possible,
+ * call \code mat.data().squeeze(); \endcode after resizing it.
+ *
+ * \sa resize(Index,Index), data()
+ */
+ inline void setZero()
+ {
+ m_data.clear();
+ memset(m_outerIndex, 0, (m_outerSize+1)*sizeof(StorageIndex));
+ if(m_innerNonZeros)
+ memset(m_innerNonZeros, 0, (m_outerSize)*sizeof(StorageIndex));
+ }
+
+ /** Preallocates \a reserveSize non zeros.
+ *
+ * Precondition: the matrix must be in compressed mode. */
+ inline void reserve(Index reserveSize)
+ {
+ eigen_assert(isCompressed() && "This function does not make sense in non compressed mode.");
+ m_data.reserve(reserveSize);
+ }
+
+ #ifdef EIGEN_PARSED_BY_DOXYGEN
+ /** Preallocates \a reserveSize[\c j] non zeros for each column (resp. row) \c j.
+ *
+ * This function turns the matrix in non-compressed mode.
+ *
+ * The type \c SizesType must expose the following interface:
+ \code
+ typedef value_type;
+ const value_type& operator[](i) const;
+ \endcode
+ * for \c i in the [0,this->outerSize()[ range.
+ * Typical choices include std::vector<int>, Eigen::VectorXi, Eigen::VectorXi::Constant, etc.
+ */
+ template<class SizesType>
+ inline void reserve(const SizesType& reserveSizes);
+ #else
+ template<class SizesType>
+ inline void reserve(const SizesType& reserveSizes, const typename SizesType::value_type& enableif =
+ #if (!EIGEN_COMP_MSVC) || (EIGEN_COMP_MSVC>=1500) // MSVC 2005 fails to compile with this typename
+ typename
+ #endif
+ SizesType::value_type())
+ {
+ EIGEN_UNUSED_VARIABLE(enableif);
+ reserveInnerVectors(reserveSizes);
+ }
+ #endif // EIGEN_PARSED_BY_DOXYGEN
+ protected:
+ template<class SizesType>
+ inline void reserveInnerVectors(const SizesType& reserveSizes)
+ {
+ if(isCompressed())
+ {
+ Index totalReserveSize = 0;
+ // turn the matrix into non-compressed mode
+ m_innerNonZeros = static_cast<StorageIndex*>(std::malloc(m_outerSize * sizeof(StorageIndex)));
+ if (!m_innerNonZeros) internal::throw_std_bad_alloc();
+
+ // temporarily use m_innerSizes to hold the new starting points.
+ StorageIndex* newOuterIndex = m_innerNonZeros;
+
+ StorageIndex count = 0;
+ for(Index j=0; j<m_outerSize; ++j)
+ {
+ newOuterIndex[j] = count;
+ count += reserveSizes[j] + (m_outerIndex[j+1]-m_outerIndex[j]);
+ totalReserveSize += reserveSizes[j];
+ }
+ m_data.reserve(totalReserveSize);
+ StorageIndex previousOuterIndex = m_outerIndex[m_outerSize];
+ for(Index j=m_outerSize-1; j>=0; --j)
+ {
+ StorageIndex innerNNZ = previousOuterIndex - m_outerIndex[j];
+ for(Index i=innerNNZ-1; i>=0; --i)
+ {
+ m_data.index(newOuterIndex[j]+i) = m_data.index(m_outerIndex[j]+i);
+ m_data.value(newOuterIndex[j]+i) = m_data.value(m_outerIndex[j]+i);
+ }
+ previousOuterIndex = m_outerIndex[j];
+ m_outerIndex[j] = newOuterIndex[j];
+ m_innerNonZeros[j] = innerNNZ;
+ }
+ m_outerIndex[m_outerSize] = m_outerIndex[m_outerSize-1] + m_innerNonZeros[m_outerSize-1] + reserveSizes[m_outerSize-1];
+
+ m_data.resize(m_outerIndex[m_outerSize]);
+ }
+ else
+ {
+ StorageIndex* newOuterIndex = static_cast<StorageIndex*>(std::malloc((m_outerSize+1)*sizeof(StorageIndex)));
+ if (!newOuterIndex) internal::throw_std_bad_alloc();
+
+ StorageIndex count = 0;
+ for(Index j=0; j<m_outerSize; ++j)
+ {
+ newOuterIndex[j] = count;
+ StorageIndex alreadyReserved = (m_outerIndex[j+1]-m_outerIndex[j]) - m_innerNonZeros[j];
+ StorageIndex toReserve = std::max<StorageIndex>(reserveSizes[j], alreadyReserved);
+ count += toReserve + m_innerNonZeros[j];
+ }
+ newOuterIndex[m_outerSize] = count;
+
+ m_data.resize(count);
+ for(Index j=m_outerSize-1; j>=0; --j)
+ {
+ Index offset = newOuterIndex[j] - m_outerIndex[j];
+ if(offset>0)
+ {
+ StorageIndex innerNNZ = m_innerNonZeros[j];
+ for(Index i=innerNNZ-1; i>=0; --i)
+ {
+ m_data.index(newOuterIndex[j]+i) = m_data.index(m_outerIndex[j]+i);
+ m_data.value(newOuterIndex[j]+i) = m_data.value(m_outerIndex[j]+i);
+ }
+ }
+ }
+
+ std::swap(m_outerIndex, newOuterIndex);
+ std::free(newOuterIndex);
+ }
+
+ }
+ public:
+
+ //--- low level purely coherent filling ---
+
+ /** \internal
+ * \returns a reference to the non zero coefficient at position \a row, \a col assuming that:
+ * - the nonzero does not already exist
+ * - the new coefficient is the last one according to the storage order
+ *
+ * Before filling a given inner vector you must call the statVec(Index) function.
+ *
+ * After an insertion session, you should call the finalize() function.
+ *
+ * \sa insert, insertBackByOuterInner, startVec */
+ inline Scalar& insertBack(Index row, Index col)
+ {
+ return insertBackByOuterInner(IsRowMajor?row:col, IsRowMajor?col:row);
+ }
+
+ /** \internal
+ * \sa insertBack, startVec */
+ inline Scalar& insertBackByOuterInner(Index outer, Index inner)
+ {
+ eigen_assert(Index(m_outerIndex[outer+1]) == m_data.size() && "Invalid ordered insertion (invalid outer index)");
+ eigen_assert( (m_outerIndex[outer+1]-m_outerIndex[outer]==0 || m_data.index(m_data.size()-1)<inner) && "Invalid ordered insertion (invalid inner index)");
+ Index p = m_outerIndex[outer+1];
+ ++m_outerIndex[outer+1];
+ m_data.append(Scalar(0), inner);
+ return m_data.value(p);
+ }
+
+ /** \internal
+ * \warning use it only if you know what you are doing */
+ inline Scalar& insertBackByOuterInnerUnordered(Index outer, Index inner)
+ {
+ Index p = m_outerIndex[outer+1];
+ ++m_outerIndex[outer+1];
+ m_data.append(Scalar(0), inner);
+ return m_data.value(p);
+ }
+
+ /** \internal
+ * \sa insertBack, insertBackByOuterInner */
+ inline void startVec(Index outer)
+ {
+ eigen_assert(m_outerIndex[outer]==Index(m_data.size()) && "You must call startVec for each inner vector sequentially");
+ eigen_assert(m_outerIndex[outer+1]==0 && "You must call startVec for each inner vector sequentially");
+ m_outerIndex[outer+1] = m_outerIndex[outer];
+ }
+
+ /** \internal
+ * Must be called after inserting a set of non zero entries using the low level compressed API.
+ */
+ inline void finalize()
+ {
+ if(isCompressed())
+ {
+ StorageIndex size = internal::convert_index<StorageIndex>(m_data.size());
+ Index i = m_outerSize;
+ // find the last filled column
+ while (i>=0 && m_outerIndex[i]==0)
+ --i;
+ ++i;
+ while (i<=m_outerSize)
+ {
+ m_outerIndex[i] = size;
+ ++i;
+ }
+ }
+ }
+
+ //---
+
+ template<typename InputIterators>
+ void setFromTriplets(const InputIterators& begin, const InputIterators& end);
+
+ template<typename InputIterators,typename DupFunctor>
+ void setFromTriplets(const InputIterators& begin, const InputIterators& end, DupFunctor dup_func);
+
+ void sumupDuplicates() { collapseDuplicates(internal::scalar_sum_op<Scalar,Scalar>()); }
+
+ template<typename DupFunctor>
+ void collapseDuplicates(DupFunctor dup_func = DupFunctor());
+
+ //---
+
+ /** \internal
+ * same as insert(Index,Index) except that the indices are given relative to the storage order */
+ Scalar& insertByOuterInner(Index j, Index i)
+ {
+ return insert(IsRowMajor ? j : i, IsRowMajor ? i : j);
+ }
+
+ /** Turns the matrix into the \em compressed format.
+ */
+ void makeCompressed()
+ {
+ if(isCompressed())
+ return;
+
+ eigen_internal_assert(m_outerIndex!=0 && m_outerSize>0);
+
+ Index oldStart = m_outerIndex[1];
+ m_outerIndex[1] = m_innerNonZeros[0];
+ for(Index j=1; j<m_outerSize; ++j)
+ {
+ Index nextOldStart = m_outerIndex[j+1];
+ Index offset = oldStart - m_outerIndex[j];
+ if(offset>0)
+ {
+ for(Index k=0; k<m_innerNonZeros[j]; ++k)
+ {
+ m_data.index(m_outerIndex[j]+k) = m_data.index(oldStart+k);
+ m_data.value(m_outerIndex[j]+k) = m_data.value(oldStart+k);
+ }
+ }
+ m_outerIndex[j+1] = m_outerIndex[j] + m_innerNonZeros[j];
+ oldStart = nextOldStart;
+ }
+ std::free(m_innerNonZeros);
+ m_innerNonZeros = 0;
+ m_data.resize(m_outerIndex[m_outerSize]);
+ m_data.squeeze();
+ }
+
+ /** Turns the matrix into the uncompressed mode */
+ void uncompress()
+ {
+ if(m_innerNonZeros != 0)
+ return;
+ m_innerNonZeros = static_cast<StorageIndex*>(std::malloc(m_outerSize * sizeof(StorageIndex)));
+ for (Index i = 0; i < m_outerSize; i++)
+ {
+ m_innerNonZeros[i] = m_outerIndex[i+1] - m_outerIndex[i];
+ }
+ }
+
+ /** Suppresses all nonzeros which are \b much \b smaller \b than \a reference under the tolerence \a epsilon */
+ void prune(const Scalar& reference, const RealScalar& epsilon = NumTraits<RealScalar>::dummy_precision())
+ {
+ prune(default_prunning_func(reference,epsilon));
+ }
+
+ /** Turns the matrix into compressed format, and suppresses all nonzeros which do not satisfy the predicate \a keep.
+ * The functor type \a KeepFunc must implement the following function:
+ * \code
+ * bool operator() (const Index& row, const Index& col, const Scalar& value) const;
+ * \endcode
+ * \sa prune(Scalar,RealScalar)
+ */
+ template<typename KeepFunc>
+ void prune(const KeepFunc& keep = KeepFunc())
+ {
+ // TODO optimize the uncompressed mode to avoid moving and allocating the data twice
+ makeCompressed();
+
+ StorageIndex k = 0;
+ for(Index j=0; j<m_outerSize; ++j)
+ {
+ Index previousStart = m_outerIndex[j];
+ m_outerIndex[j] = k;
+ Index end = m_outerIndex[j+1];
+ for(Index i=previousStart; i<end; ++i)
+ {
+ if(keep(IsRowMajor?j:m_data.index(i), IsRowMajor?m_data.index(i):j, m_data.value(i)))
+ {
+ m_data.value(k) = m_data.value(i);
+ m_data.index(k) = m_data.index(i);
+ ++k;
+ }
+ }
+ }
+ m_outerIndex[m_outerSize] = k;
+ m_data.resize(k,0);
+ }
+
+ /** Resizes the matrix to a \a rows x \a cols matrix leaving old values untouched.
+ *
+ * If the sizes of the matrix are decreased, then the matrix is turned to \b uncompressed-mode
+ * and the storage of the out of bounds coefficients is kept and reserved.
+ * Call makeCompressed() to pack the entries and squeeze extra memory.
+ *
+ * \sa reserve(), setZero(), makeCompressed()
+ */
+ void conservativeResize(Index rows, Index cols)
+ {
+ // No change
+ if (this->rows() == rows && this->cols() == cols) return;
+
+ // If one dimension is null, then there is nothing to be preserved
+ if(rows==0 || cols==0) return resize(rows,cols);
+
+ Index innerChange = IsRowMajor ? cols - this->cols() : rows - this->rows();
+ Index outerChange = IsRowMajor ? rows - this->rows() : cols - this->cols();
+ StorageIndex newInnerSize = convert_index(IsRowMajor ? cols : rows);
+
+ // Deals with inner non zeros
+ if (m_innerNonZeros)
+ {
+ // Resize m_innerNonZeros
+ StorageIndex *newInnerNonZeros = static_cast<StorageIndex*>(std::realloc(m_innerNonZeros, (m_outerSize + outerChange) * sizeof(StorageIndex)));
+ if (!newInnerNonZeros) internal::throw_std_bad_alloc();
+ m_innerNonZeros = newInnerNonZeros;
+
+ for(Index i=m_outerSize; i<m_outerSize+outerChange; i++)
+ m_innerNonZeros[i] = 0;
+ }
+ else if (innerChange < 0)
+ {
+ // Inner size decreased: allocate a new m_innerNonZeros
+ m_innerNonZeros = static_cast<StorageIndex*>(std::malloc((m_outerSize+outerChange+1) * sizeof(StorageIndex)));
+ if (!m_innerNonZeros) internal::throw_std_bad_alloc();
+ for(Index i = 0; i < m_outerSize; i++)
+ m_innerNonZeros[i] = m_outerIndex[i+1] - m_outerIndex[i];
+ }
+
+ // Change the m_innerNonZeros in case of a decrease of inner size
+ if (m_innerNonZeros && innerChange < 0)
+ {
+ for(Index i = 0; i < m_outerSize + (std::min)(outerChange, Index(0)); i++)
+ {
+ StorageIndex &n = m_innerNonZeros[i];
+ StorageIndex start = m_outerIndex[i];
+ while (n > 0 && m_data.index(start+n-1) >= newInnerSize) --n;
+ }
+ }
+
+ m_innerSize = newInnerSize;
+
+ // Re-allocate outer index structure if necessary
+ if (outerChange == 0)
+ return;
+
+ StorageIndex *newOuterIndex = static_cast<StorageIndex*>(std::realloc(m_outerIndex, (m_outerSize + outerChange + 1) * sizeof(StorageIndex)));
+ if (!newOuterIndex) internal::throw_std_bad_alloc();
+ m_outerIndex = newOuterIndex;
+ if (outerChange > 0)
+ {
+ StorageIndex last = m_outerSize == 0 ? 0 : m_outerIndex[m_outerSize];
+ for(Index i=m_outerSize; i<m_outerSize+outerChange+1; i++)
+ m_outerIndex[i] = last;
+ }
+ m_outerSize += outerChange;
+ }
+
+ /** Resizes the matrix to a \a rows x \a cols matrix and initializes it to zero.
+ *
+ * This function does not free the currently allocated memory. To release as much as memory as possible,
+ * call \code mat.data().squeeze(); \endcode after resizing it.
+ *
+ * \sa reserve(), setZero()
+ */
+ void resize(Index rows, Index cols)
+ {
+ const Index outerSize = IsRowMajor ? rows : cols;
+ m_innerSize = IsRowMajor ? cols : rows;
+ m_data.clear();
+ if (m_outerSize != outerSize || m_outerSize==0)
+ {
+ std::free(m_outerIndex);
+ m_outerIndex = static_cast<StorageIndex*>(std::malloc((outerSize + 1) * sizeof(StorageIndex)));
+ if (!m_outerIndex) internal::throw_std_bad_alloc();
+
+ m_outerSize = outerSize;
+ }
+ if(m_innerNonZeros)
+ {
+ std::free(m_innerNonZeros);
+ m_innerNonZeros = 0;
+ }
+ memset(m_outerIndex, 0, (m_outerSize+1)*sizeof(StorageIndex));
+ }
+
+ /** \internal
+ * Resize the nonzero vector to \a size */
+ void resizeNonZeros(Index size)
+ {
+ m_data.resize(size);
+ }
+
+ /** \returns a const expression of the diagonal coefficients. */
+ const ConstDiagonalReturnType diagonal() const { return ConstDiagonalReturnType(*this); }
+
+ /** \returns a read-write expression of the diagonal coefficients.
+ * \warning If the diagonal entries are written, then all diagonal
+ * entries \b must already exist, otherwise an assertion will be raised.
+ */
+ DiagonalReturnType diagonal() { return DiagonalReturnType(*this); }
+
+ /** Default constructor yielding an empty \c 0 \c x \c 0 matrix */
+ inline SparseMatrix()
+ : m_outerSize(-1), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
+ {
+ check_template_parameters();
+ resize(0, 0);
+ }
+
+ /** Constructs a \a rows \c x \a cols empty matrix */
+ inline SparseMatrix(Index rows, Index cols)
+ : m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
+ {
+ check_template_parameters();
+ resize(rows, cols);
+ }
+
+ /** Constructs a sparse matrix from the sparse expression \a other */
+ template<typename OtherDerived>
+ inline SparseMatrix(const SparseMatrixBase<OtherDerived>& other)
+ : m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
+ {
+ EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
+ YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+ check_template_parameters();
+ const bool needToTranspose = (Flags & RowMajorBit) != (internal::evaluator<OtherDerived>::Flags & RowMajorBit);
+ if (needToTranspose)
+ *this = other.derived();
+ else
+ {
+ #ifdef EIGEN_SPARSE_CREATE_TEMPORARY_PLUGIN
+ EIGEN_SPARSE_CREATE_TEMPORARY_PLUGIN
+ #endif
+ internal::call_assignment_no_alias(*this, other.derived());
+ }
+ }
+
+ /** Constructs a sparse matrix from the sparse selfadjoint view \a other */
+ template<typename OtherDerived, unsigned int UpLo>
+ inline SparseMatrix(const SparseSelfAdjointView<OtherDerived, UpLo>& other)
+ : m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
+ {
+ check_template_parameters();
+ Base::operator=(other);
+ }
+
+ /** Copy constructor (it performs a deep copy) */
+ inline SparseMatrix(const SparseMatrix& other)
+ : Base(), m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
+ {
+ check_template_parameters();
+ *this = other.derived();
+ }
+
+ /** \brief Copy constructor with in-place evaluation */
+ template<typename OtherDerived>
+ SparseMatrix(const ReturnByValue<OtherDerived>& other)
+ : Base(), m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
+ {
+ check_template_parameters();
+ initAssignment(other);
+ other.evalTo(*this);
+ }
+
+ /** \brief Copy constructor with in-place evaluation */
+ template<typename OtherDerived>
+ explicit SparseMatrix(const DiagonalBase<OtherDerived>& other)
+ : Base(), m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
+ {
+ check_template_parameters();
+ *this = other.derived();
+ }
+
+ /** Swaps the content of two sparse matrices of the same type.
+ * This is a fast operation that simply swaps the underlying pointers and parameters. */
+ inline void swap(SparseMatrix& other)
+ {
+ //EIGEN_DBG_SPARSE(std::cout << "SparseMatrix:: swap\n");
+ std::swap(m_outerIndex, other.m_outerIndex);
+ std::swap(m_innerSize, other.m_innerSize);
+ std::swap(m_outerSize, other.m_outerSize);
+ std::swap(m_innerNonZeros, other.m_innerNonZeros);
+ m_data.swap(other.m_data);
+ }
+
+ /** Sets *this to the identity matrix.
+ * This function also turns the matrix into compressed mode, and drop any reserved memory. */
+ inline void setIdentity()
+ {
+ eigen_assert(rows() == cols() && "ONLY FOR SQUARED MATRICES");
+ this->m_data.resize(rows());
+ Eigen::Map<IndexVector>(this->m_data.indexPtr(), rows()).setLinSpaced(0, StorageIndex(rows()-1));
+ Eigen::Map<ScalarVector>(this->m_data.valuePtr(), rows()).setOnes();
+ Eigen::Map<IndexVector>(this->m_outerIndex, rows()+1).setLinSpaced(0, StorageIndex(rows()));
+ std::free(m_innerNonZeros);
+ m_innerNonZeros = 0;
+ }
+ inline SparseMatrix& operator=(const SparseMatrix& other)
+ {
+ if (other.isRValue())
+ {
+ swap(other.const_cast_derived());
+ }
+ else if(this!=&other)
+ {
+ #ifdef EIGEN_SPARSE_CREATE_TEMPORARY_PLUGIN
+ EIGEN_SPARSE_CREATE_TEMPORARY_PLUGIN
+ #endif
+ initAssignment(other);
+ if(other.isCompressed())
+ {
+ internal::smart_copy(other.m_outerIndex, other.m_outerIndex + m_outerSize + 1, m_outerIndex);
+ m_data = other.m_data;
+ }
+ else
+ {
+ Base::operator=(other);
+ }
+ }
+ return *this;
+ }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ template<typename OtherDerived>
+ inline SparseMatrix& operator=(const EigenBase<OtherDerived>& other)
+ { return Base::operator=(other.derived()); }
+#endif // EIGEN_PARSED_BY_DOXYGEN
+
+ template<typename OtherDerived>
+ EIGEN_DONT_INLINE SparseMatrix& operator=(const SparseMatrixBase<OtherDerived>& other);
+
+ friend std::ostream & operator << (std::ostream & s, const SparseMatrix& m)
+ {
+ EIGEN_DBG_SPARSE(
+ s << "Nonzero entries:\n";
+ if(m.isCompressed())
+ {
+ for (Index i=0; i<m.nonZeros(); ++i)
+ s << "(" << m.m_data.value(i) << "," << m.m_data.index(i) << ") ";
+ }
+ else
+ {
+ for (Index i=0; i<m.outerSize(); ++i)
+ {
+ Index p = m.m_outerIndex[i];
+ Index pe = m.m_outerIndex[i]+m.m_innerNonZeros[i];
+ Index k=p;
+ for (; k<pe; ++k) {
+ s << "(" << m.m_data.value(k) << "," << m.m_data.index(k) << ") ";
+ }
+ for (; k<m.m_outerIndex[i+1]; ++k) {
+ s << "(_,_) ";
+ }
+ }
+ }
+ s << std::endl;
+ s << std::endl;
+ s << "Outer pointers:\n";
+ for (Index i=0; i<m.outerSize(); ++i) {
+ s << m.m_outerIndex[i] << " ";
+ }
+ s << " $" << std::endl;
+ if(!m.isCompressed())
+ {
+ s << "Inner non zeros:\n";
+ for (Index i=0; i<m.outerSize(); ++i) {
+ s << m.m_innerNonZeros[i] << " ";
+ }
+ s << " $" << std::endl;
+ }
+ s << std::endl;
+ );
+ s << static_cast<const SparseMatrixBase<SparseMatrix>&>(m);
+ return s;
+ }
+
+ /** Destructor */
+ inline ~SparseMatrix()
+ {
+ std::free(m_outerIndex);
+ std::free(m_innerNonZeros);
+ }
+
+ /** Overloaded for performance */
+ Scalar sum() const;
+
+# ifdef EIGEN_SPARSEMATRIX_PLUGIN
+# include EIGEN_SPARSEMATRIX_PLUGIN
+# endif
+
+protected:
+
+ template<typename Other>
+ void initAssignment(const Other& other)
+ {
+ resize(other.rows(), other.cols());
+ if(m_innerNonZeros)
+ {
+ std::free(m_innerNonZeros);
+ m_innerNonZeros = 0;
+ }
+ }
+
+ /** \internal
+ * \sa insert(Index,Index) */
+ EIGEN_DONT_INLINE Scalar& insertCompressed(Index row, Index col);
+
+ /** \internal
+ * A vector object that is equal to 0 everywhere but v at the position i */
+ class SingletonVector
+ {
+ StorageIndex m_index;
+ StorageIndex m_value;
+ public:
+ typedef StorageIndex value_type;
+ SingletonVector(Index i, Index v)
+ : m_index(convert_index(i)), m_value(convert_index(v))
+ {}
+
+ StorageIndex operator[](Index i) const { return i==m_index ? m_value : 0; }
+ };
+
+ /** \internal
+ * \sa insert(Index,Index) */
+ EIGEN_DONT_INLINE Scalar& insertUncompressed(Index row, Index col);
+
+public:
+ /** \internal
+ * \sa insert(Index,Index) */
+ EIGEN_STRONG_INLINE Scalar& insertBackUncompressed(Index row, Index col)
+ {
+ const Index outer = IsRowMajor ? row : col;
+ const Index inner = IsRowMajor ? col : row;
+
+ eigen_assert(!isCompressed());
+ eigen_assert(m_innerNonZeros[outer]<=(m_outerIndex[outer+1] - m_outerIndex[outer]));
+
+ Index p = m_outerIndex[outer] + m_innerNonZeros[outer]++;
+ m_data.index(p) = convert_index(inner);
+ return (m_data.value(p) = 0);
+ }
+
+private:
+ static void check_template_parameters()
+ {
+ EIGEN_STATIC_ASSERT(NumTraits<StorageIndex>::IsSigned,THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE);
+ EIGEN_STATIC_ASSERT((Options&(ColMajor|RowMajor))==Options,INVALID_MATRIX_TEMPLATE_PARAMETERS);
+ }
+
+ struct default_prunning_func {
+ default_prunning_func(const Scalar& ref, const RealScalar& eps) : reference(ref), epsilon(eps) {}
+ inline bool operator() (const Index&, const Index&, const Scalar& value) const
+ {
+ return !internal::isMuchSmallerThan(value, reference, epsilon);
+ }
+ Scalar reference;
+ RealScalar epsilon;
+ };
+};
+
+namespace internal {
+
+template<typename InputIterator, typename SparseMatrixType, typename DupFunctor>
+void set_from_triplets(const InputIterator& begin, const InputIterator& end, SparseMatrixType& mat, DupFunctor dup_func)
+{
+ enum { IsRowMajor = SparseMatrixType::IsRowMajor };
+ typedef typename SparseMatrixType::Scalar Scalar;
+ typedef typename SparseMatrixType::StorageIndex StorageIndex;
+ SparseMatrix<Scalar,IsRowMajor?ColMajor:RowMajor,StorageIndex> trMat(mat.rows(),mat.cols());
+
+ if(begin!=end)
+ {
+ // pass 1: count the nnz per inner-vector
+ typename SparseMatrixType::IndexVector wi(trMat.outerSize());
+ wi.setZero();
+ for(InputIterator it(begin); it!=end; ++it)
+ {
+ eigen_assert(it->row()>=0 && it->row()<mat.rows() && it->col()>=0 && it->col()<mat.cols());
+ wi(IsRowMajor ? it->col() : it->row())++;
+ }
+
+ // pass 2: insert all the elements into trMat
+ trMat.reserve(wi);
+ for(InputIterator it(begin); it!=end; ++it)
+ trMat.insertBackUncompressed(it->row(),it->col()) = it->value();
+
+ // pass 3:
+ trMat.collapseDuplicates(dup_func);
+ }
+
+ // pass 4: transposed copy -> implicit sorting
+ mat = trMat;
+}
+
+}
+
+
+/** Fill the matrix \c *this with the list of \em triplets defined by the iterator range \a begin - \a end.
+ *
+ * A \em triplet is a tuple (i,j,value) defining a non-zero element.
+ * The input list of triplets does not have to be sorted, and can contains duplicated elements.
+ * In any case, the result is a \b sorted and \b compressed sparse matrix where the duplicates have been summed up.
+ * This is a \em O(n) operation, with \em n the number of triplet elements.
+ * The initial contents of \c *this is destroyed.
+ * The matrix \c *this must be properly resized beforehand using the SparseMatrix(Index,Index) constructor,
+ * or the resize(Index,Index) method. The sizes are not extracted from the triplet list.
+ *
+ * The \a InputIterators value_type must provide the following interface:
+ * \code
+ * Scalar value() const; // the value
+ * Scalar row() const; // the row index i
+ * Scalar col() const; // the column index j
+ * \endcode
+ * See for instance the Eigen::Triplet template class.
+ *
+ * Here is a typical usage example:
+ * \code
+ typedef Triplet<double> T;
+ std::vector<T> tripletList;
+ triplets.reserve(estimation_of_entries);
+ for(...)
+ {
+ // ...
+ tripletList.push_back(T(i,j,v_ij));
+ }
+ SparseMatrixType m(rows,cols);
+ m.setFromTriplets(tripletList.begin(), tripletList.end());
+ // m is ready to go!
+ * \endcode
+ *
+ * \warning The list of triplets is read multiple times (at least twice). Therefore, it is not recommended to define
+ * an abstract iterator over a complex data-structure that would be expensive to evaluate. The triplets should rather
+ * be explicitely stored into a std::vector for instance.
+ */
+template<typename Scalar, int _Options, typename _StorageIndex>
+template<typename InputIterators>
+void SparseMatrix<Scalar,_Options,_StorageIndex>::setFromTriplets(const InputIterators& begin, const InputIterators& end)
+{
+ internal::set_from_triplets<InputIterators, SparseMatrix<Scalar,_Options,_StorageIndex> >(begin, end, *this, internal::scalar_sum_op<Scalar,Scalar>());
+}
+
+/** The same as setFromTriplets but when duplicates are met the functor \a dup_func is applied:
+ * \code
+ * value = dup_func(OldValue, NewValue)
+ * \endcode
+ * Here is a C++11 example keeping the latest entry only:
+ * \code
+ * mat.setFromTriplets(triplets.begin(), triplets.end(), [] (const Scalar&,const Scalar &b) { return b; });
+ * \endcode
+ */
+template<typename Scalar, int _Options, typename _StorageIndex>
+template<typename InputIterators,typename DupFunctor>
+void SparseMatrix<Scalar,_Options,_StorageIndex>::setFromTriplets(const InputIterators& begin, const InputIterators& end, DupFunctor dup_func)
+{
+ internal::set_from_triplets<InputIterators, SparseMatrix<Scalar,_Options,_StorageIndex>, DupFunctor>(begin, end, *this, dup_func);
+}
+
+/** \internal */
+template<typename Scalar, int _Options, typename _StorageIndex>
+template<typename DupFunctor>
+void SparseMatrix<Scalar,_Options,_StorageIndex>::collapseDuplicates(DupFunctor dup_func)
+{
+ eigen_assert(!isCompressed());
+ // TODO, in practice we should be able to use m_innerNonZeros for that task
+ IndexVector wi(innerSize());
+ wi.fill(-1);
+ StorageIndex count = 0;
+ // for each inner-vector, wi[inner_index] will hold the position of first element into the index/value buffers
+ for(Index j=0; j<outerSize(); ++j)
+ {
+ StorageIndex start = count;
+ Index oldEnd = m_outerIndex[j]+m_innerNonZeros[j];
+ for(Index k=m_outerIndex[j]; k<oldEnd; ++k)
+ {
+ Index i = m_data.index(k);
+ if(wi(i)>=start)
+ {
+ // we already meet this entry => accumulate it
+ m_data.value(wi(i)) = dup_func(m_data.value(wi(i)), m_data.value(k));
+ }
+ else
+ {
+ m_data.value(count) = m_data.value(k);
+ m_data.index(count) = m_data.index(k);
+ wi(i) = count;
+ ++count;
+ }
+ }
+ m_outerIndex[j] = start;
+ }
+ m_outerIndex[m_outerSize] = count;
+
+ // turn the matrix into compressed form
+ std::free(m_innerNonZeros);
+ m_innerNonZeros = 0;
+ m_data.resize(m_outerIndex[m_outerSize]);
+}
+
+template<typename Scalar, int _Options, typename _StorageIndex>
+template<typename OtherDerived>
+EIGEN_DONT_INLINE SparseMatrix<Scalar,_Options,_StorageIndex>& SparseMatrix<Scalar,_Options,_StorageIndex>::operator=(const SparseMatrixBase<OtherDerived>& other)
+{
+ EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
+ YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+ #ifdef EIGEN_SPARSE_CREATE_TEMPORARY_PLUGIN
+ EIGEN_SPARSE_CREATE_TEMPORARY_PLUGIN
+ #endif
+
+ const bool needToTranspose = (Flags & RowMajorBit) != (internal::evaluator<OtherDerived>::Flags & RowMajorBit);
+ if (needToTranspose)
+ {
+ #ifdef EIGEN_SPARSE_TRANSPOSED_COPY_PLUGIN
+ EIGEN_SPARSE_TRANSPOSED_COPY_PLUGIN
+ #endif
+ // two passes algorithm:
+ // 1 - compute the number of coeffs per dest inner vector
+ // 2 - do the actual copy/eval
+ // Since each coeff of the rhs has to be evaluated twice, let's evaluate it if needed
+ typedef typename internal::nested_eval<OtherDerived,2,typename internal::plain_matrix_type<OtherDerived>::type >::type OtherCopy;
+ typedef typename internal::remove_all<OtherCopy>::type _OtherCopy;
+ typedef internal::evaluator<_OtherCopy> OtherCopyEval;
+ OtherCopy otherCopy(other.derived());
+ OtherCopyEval otherCopyEval(otherCopy);
+
+ SparseMatrix dest(other.rows(),other.cols());
+ Eigen::Map<IndexVector> (dest.m_outerIndex,dest.outerSize()).setZero();
+
+ // pass 1
+ // FIXME the above copy could be merged with that pass
+ for (Index j=0; j<otherCopy.outerSize(); ++j)
+ for (typename OtherCopyEval::InnerIterator it(otherCopyEval, j); it; ++it)
+ ++dest.m_outerIndex[it.index()];
+
+ // prefix sum
+ StorageIndex count = 0;
+ IndexVector positions(dest.outerSize());
+ for (Index j=0; j<dest.outerSize(); ++j)
+ {
+ StorageIndex tmp = dest.m_outerIndex[j];
+ dest.m_outerIndex[j] = count;
+ positions[j] = count;
+ count += tmp;
+ }
+ dest.m_outerIndex[dest.outerSize()] = count;
+ // alloc
+ dest.m_data.resize(count);
+ // pass 2
+ for (StorageIndex j=0; j<otherCopy.outerSize(); ++j)
+ {
+ for (typename OtherCopyEval::InnerIterator it(otherCopyEval, j); it; ++it)
+ {
+ Index pos = positions[it.index()]++;
+ dest.m_data.index(pos) = j;
+ dest.m_data.value(pos) = it.value();
+ }
+ }
+ this->swap(dest);
+ return *this;
+ }
+ else
+ {
+ if(other.isRValue())
+ {
+ initAssignment(other.derived());
+ }
+ // there is no special optimization
+ return Base::operator=(other.derived());
+ }
+}
+
+template<typename _Scalar, int _Options, typename _StorageIndex>
+typename SparseMatrix<_Scalar,_Options,_StorageIndex>::Scalar& SparseMatrix<_Scalar,_Options,_StorageIndex>::insert(Index row, Index col)
+{
+ eigen_assert(row>=0 && row<rows() && col>=0 && col<cols());
+
+ const Index outer = IsRowMajor ? row : col;
+ const Index inner = IsRowMajor ? col : row;
+
+ if(isCompressed())
+ {
+ if(nonZeros()==0)
+ {
+ // reserve space if not already done
+ if(m_data.allocatedSize()==0)
+ m_data.reserve(2*m_innerSize);
+
+ // turn the matrix into non-compressed mode
+ m_innerNonZeros = static_cast<StorageIndex*>(std::malloc(m_outerSize * sizeof(StorageIndex)));
+ if(!m_innerNonZeros) internal::throw_std_bad_alloc();
+
+ memset(m_innerNonZeros, 0, (m_outerSize)*sizeof(StorageIndex));
+
+ // pack all inner-vectors to the end of the pre-allocated space
+ // and allocate the entire free-space to the first inner-vector
+ StorageIndex end = convert_index(m_data.allocatedSize());
+ for(Index j=1; j<=m_outerSize; ++j)
+ m_outerIndex[j] = end;
+ }
+ else
+ {
+ // turn the matrix into non-compressed mode
+ m_innerNonZeros = static_cast<StorageIndex*>(std::malloc(m_outerSize * sizeof(StorageIndex)));
+ if(!m_innerNonZeros) internal::throw_std_bad_alloc();
+ for(Index j=0; j<m_outerSize; ++j)
+ m_innerNonZeros[j] = m_outerIndex[j+1]-m_outerIndex[j];
+ }
+ }
+
+ // check whether we can do a fast "push back" insertion
+ Index data_end = m_data.allocatedSize();
+
+ // First case: we are filling a new inner vector which is packed at the end.
+ // We assume that all remaining inner-vectors are also empty and packed to the end.
+ if(m_outerIndex[outer]==data_end)
+ {
+ eigen_internal_assert(m_innerNonZeros[outer]==0);
+
+ // pack previous empty inner-vectors to end of the used-space
+ // and allocate the entire free-space to the current inner-vector.
+ StorageIndex p = convert_index(m_data.size());
+ Index j = outer;
+ while(j>=0 && m_innerNonZeros[j]==0)
+ m_outerIndex[j--] = p;
+
+ // push back the new element
+ ++m_innerNonZeros[outer];
+ m_data.append(Scalar(0), inner);
+
+ // check for reallocation
+ if(data_end != m_data.allocatedSize())
+ {
+ // m_data has been reallocated
+ // -> move remaining inner-vectors back to the end of the free-space
+ // so that the entire free-space is allocated to the current inner-vector.
+ eigen_internal_assert(data_end < m_data.allocatedSize());
+ StorageIndex new_end = convert_index(m_data.allocatedSize());
+ for(Index k=outer+1; k<=m_outerSize; ++k)
+ if(m_outerIndex[k]==data_end)
+ m_outerIndex[k] = new_end;
+ }
+ return m_data.value(p);
+ }
+
+ // Second case: the next inner-vector is packed to the end
+ // and the current inner-vector end match the used-space.
+ if(m_outerIndex[outer+1]==data_end && m_outerIndex[outer]+m_innerNonZeros[outer]==m_data.size())
+ {
+ eigen_internal_assert(outer+1==m_outerSize || m_innerNonZeros[outer+1]==0);
+
+ // add space for the new element
+ ++m_innerNonZeros[outer];
+ m_data.resize(m_data.size()+1);
+
+ // check for reallocation
+ if(data_end != m_data.allocatedSize())
+ {
+ // m_data has been reallocated
+ // -> move remaining inner-vectors back to the end of the free-space
+ // so that the entire free-space is allocated to the current inner-vector.
+ eigen_internal_assert(data_end < m_data.allocatedSize());
+ StorageIndex new_end = convert_index(m_data.allocatedSize());
+ for(Index k=outer+1; k<=m_outerSize; ++k)
+ if(m_outerIndex[k]==data_end)
+ m_outerIndex[k] = new_end;
+ }
+
+ // and insert it at the right position (sorted insertion)
+ Index startId = m_outerIndex[outer];
+ Index p = m_outerIndex[outer]+m_innerNonZeros[outer]-1;
+ while ( (p > startId) && (m_data.index(p-1) > inner) )
+ {
+ m_data.index(p) = m_data.index(p-1);
+ m_data.value(p) = m_data.value(p-1);
+ --p;
+ }
+
+ m_data.index(p) = convert_index(inner);
+ return (m_data.value(p) = 0);
+ }
+
+ if(m_data.size() != m_data.allocatedSize())
+ {
+ // make sure the matrix is compatible to random un-compressed insertion:
+ m_data.resize(m_data.allocatedSize());
+ this->reserveInnerVectors(Array<StorageIndex,Dynamic,1>::Constant(m_outerSize, 2));
+ }
+
+ return insertUncompressed(row,col);
+}
+
+template<typename _Scalar, int _Options, typename _StorageIndex>
+EIGEN_DONT_INLINE typename SparseMatrix<_Scalar,_Options,_StorageIndex>::Scalar& SparseMatrix<_Scalar,_Options,_StorageIndex>::insertUncompressed(Index row, Index col)
+{
+ eigen_assert(!isCompressed());
+
+ const Index outer = IsRowMajor ? row : col;
+ const StorageIndex inner = convert_index(IsRowMajor ? col : row);
+
+ Index room = m_outerIndex[outer+1] - m_outerIndex[outer];
+ StorageIndex innerNNZ = m_innerNonZeros[outer];
+ if(innerNNZ>=room)
+ {
+ // this inner vector is full, we need to reallocate the whole buffer :(
+ reserve(SingletonVector(outer,std::max<StorageIndex>(2,innerNNZ)));
+ }
+
+ Index startId = m_outerIndex[outer];
+ Index p = startId + m_innerNonZeros[outer];
+ while ( (p > startId) && (m_data.index(p-1) > inner) )
+ {
+ m_data.index(p) = m_data.index(p-1);
+ m_data.value(p) = m_data.value(p-1);
+ --p;
+ }
+ eigen_assert((p<=startId || m_data.index(p-1)!=inner) && "you cannot insert an element that already exists, you must call coeffRef to this end");
+
+ m_innerNonZeros[outer]++;
+
+ m_data.index(p) = inner;
+ return (m_data.value(p) = 0);
+}
+
+template<typename _Scalar, int _Options, typename _StorageIndex>
+EIGEN_DONT_INLINE typename SparseMatrix<_Scalar,_Options,_StorageIndex>::Scalar& SparseMatrix<_Scalar,_Options,_StorageIndex>::insertCompressed(Index row, Index col)
+{
+ eigen_assert(isCompressed());
+
+ const Index outer = IsRowMajor ? row : col;
+ const Index inner = IsRowMajor ? col : row;
+
+ Index previousOuter = outer;
+ if (m_outerIndex[outer+1]==0)
+ {
+ // we start a new inner vector
+ while (previousOuter>=0 && m_outerIndex[previousOuter]==0)
+ {
+ m_outerIndex[previousOuter] = convert_index(m_data.size());
+ --previousOuter;
+ }
+ m_outerIndex[outer+1] = m_outerIndex[outer];
+ }
+
+ // here we have to handle the tricky case where the outerIndex array
+ // starts with: [ 0 0 0 0 0 1 ...] and we are inserted in, e.g.,
+ // the 2nd inner vector...
+ bool isLastVec = (!(previousOuter==-1 && m_data.size()!=0))
+ && (std::size_t(m_outerIndex[outer+1]) == m_data.size());
+
+ std::size_t startId = m_outerIndex[outer];
+ // FIXME let's make sure sizeof(long int) == sizeof(std::size_t)
+ std::size_t p = m_outerIndex[outer+1];
+ ++m_outerIndex[outer+1];
+
+ double reallocRatio = 1;
+ if (m_data.allocatedSize()<=m_data.size())
+ {
+ // if there is no preallocated memory, let's reserve a minimum of 32 elements
+ if (m_data.size()==0)
+ {
+ m_data.reserve(32);
+ }
+ else
+ {
+ // we need to reallocate the data, to reduce multiple reallocations
+ // we use a smart resize algorithm based on the current filling ratio
+ // in addition, we use double to avoid integers overflows
+ double nnzEstimate = double(m_outerIndex[outer])*double(m_outerSize)/double(outer+1);
+ reallocRatio = (nnzEstimate-double(m_data.size()))/double(m_data.size());
+ // furthermore we bound the realloc ratio to:
+ // 1) reduce multiple minor realloc when the matrix is almost filled
+ // 2) avoid to allocate too much memory when the matrix is almost empty
+ reallocRatio = (std::min)((std::max)(reallocRatio,1.5),8.);
+ }
+ }
+ m_data.resize(m_data.size()+1,reallocRatio);
+
+ if (!isLastVec)
+ {
+ if (previousOuter==-1)
+ {
+ // oops wrong guess.
+ // let's correct the outer offsets
+ for (Index k=0; k<=(outer+1); ++k)
+ m_outerIndex[k] = 0;
+ Index k=outer+1;
+ while(m_outerIndex[k]==0)
+ m_outerIndex[k++] = 1;
+ while (k<=m_outerSize && m_outerIndex[k]!=0)
+ m_outerIndex[k++]++;
+ p = 0;
+ --k;
+ k = m_outerIndex[k]-1;
+ while (k>0)
+ {
+ m_data.index(k) = m_data.index(k-1);
+ m_data.value(k) = m_data.value(k-1);
+ k--;
+ }
+ }
+ else
+ {
+ // we are not inserting into the last inner vec
+ // update outer indices:
+ Index j = outer+2;
+ while (j<=m_outerSize && m_outerIndex[j]!=0)
+ m_outerIndex[j++]++;
+ --j;
+ // shift data of last vecs:
+ Index k = m_outerIndex[j]-1;
+ while (k>=Index(p))
+ {
+ m_data.index(k) = m_data.index(k-1);
+ m_data.value(k) = m_data.value(k-1);
+ k--;
+ }
+ }
+ }
+
+ while ( (p > startId) && (m_data.index(p-1) > inner) )
+ {
+ m_data.index(p) = m_data.index(p-1);
+ m_data.value(p) = m_data.value(p-1);
+ --p;
+ }
+
+ m_data.index(p) = inner;
+ return (m_data.value(p) = 0);
+}
+
+namespace internal {
+
+template<typename _Scalar, int _Options, typename _StorageIndex>
+struct evaluator<SparseMatrix<_Scalar,_Options,_StorageIndex> >
+ : evaluator<SparseCompressedBase<SparseMatrix<_Scalar,_Options,_StorageIndex> > >
+{
+ typedef evaluator<SparseCompressedBase<SparseMatrix<_Scalar,_Options,_StorageIndex> > > Base;
+ typedef SparseMatrix<_Scalar,_Options,_StorageIndex> SparseMatrixType;
+ evaluator() : Base() {}
+ explicit evaluator(const SparseMatrixType &mat) : Base(mat) {}
+};
+
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEMATRIX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseMatrixBase.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseMatrixBase.h
new file mode 100644
index 000000000..c6b548f11
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseMatrixBase.h
@@ -0,0 +1,405 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEMATRIXBASE_H
+#define EIGEN_SPARSEMATRIXBASE_H
+
+namespace Eigen {
+
+/** \ingroup SparseCore_Module
+ *
+ * \class SparseMatrixBase
+ *
+ * \brief Base class of any sparse matrices or sparse expressions
+ *
+ * \tparam Derived is the derived type, e.g. a sparse matrix type, or an expression, etc.
+ *
+ * This class can be extended with the help of the plugin mechanism described on the page
+ * \ref TopicCustomizing_Plugins by defining the preprocessor symbol \c EIGEN_SPARSEMATRIXBASE_PLUGIN.
+ */
+template<typename Derived> class SparseMatrixBase
+ : public EigenBase<Derived>
+{
+ public:
+
+ typedef typename internal::traits<Derived>::Scalar Scalar;
+
+ /** The numeric type of the expression' coefficients, e.g. float, double, int or std::complex<float>, etc.
+ *
+ * It is an alias for the Scalar type */
+ typedef Scalar value_type;
+
+ typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+ typedef typename internal::traits<Derived>::StorageKind StorageKind;
+
+ /** The integer type used to \b store indices within a SparseMatrix.
+ * For a \c SparseMatrix<Scalar,Options,IndexType> it an alias of the third template parameter \c IndexType. */
+ typedef typename internal::traits<Derived>::StorageIndex StorageIndex;
+
+ typedef typename internal::add_const_on_value_type_if_arithmetic<
+ typename internal::packet_traits<Scalar>::type
+ >::type PacketReturnType;
+
+ typedef SparseMatrixBase StorageBaseType;
+
+ typedef Matrix<StorageIndex,Dynamic,1> IndexVector;
+ typedef Matrix<Scalar,Dynamic,1> ScalarVector;
+
+ template<typename OtherDerived>
+ Derived& operator=(const EigenBase<OtherDerived> &other);
+
+ enum {
+
+ RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
+ /**< The number of rows at compile-time. This is just a copy of the value provided
+ * by the \a Derived type. If a value is not known at compile-time,
+ * it is set to the \a Dynamic constant.
+ * \sa MatrixBase::rows(), MatrixBase::cols(), ColsAtCompileTime, SizeAtCompileTime */
+
+ ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
+ /**< The number of columns at compile-time. This is just a copy of the value provided
+ * by the \a Derived type. If a value is not known at compile-time,
+ * it is set to the \a Dynamic constant.
+ * \sa MatrixBase::rows(), MatrixBase::cols(), RowsAtCompileTime, SizeAtCompileTime */
+
+
+ SizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::RowsAtCompileTime,
+ internal::traits<Derived>::ColsAtCompileTime>::ret),
+ /**< This is equal to the number of coefficients, i.e. the number of
+ * rows times the number of columns, or to \a Dynamic if this is not
+ * known at compile-time. \sa RowsAtCompileTime, ColsAtCompileTime */
+
+ MaxRowsAtCompileTime = RowsAtCompileTime,
+ MaxColsAtCompileTime = ColsAtCompileTime,
+
+ MaxSizeAtCompileTime = (internal::size_at_compile_time<MaxRowsAtCompileTime,
+ MaxColsAtCompileTime>::ret),
+
+ IsVectorAtCompileTime = RowsAtCompileTime == 1 || ColsAtCompileTime == 1,
+ /**< This is set to true if either the number of rows or the number of
+ * columns is known at compile-time to be equal to 1. Indeed, in that case,
+ * we are dealing with a column-vector (if there is only one column) or with
+ * a row-vector (if there is only one row). */
+
+ Flags = internal::traits<Derived>::Flags,
+ /**< This stores expression \ref flags flags which may or may not be inherited by new expressions
+ * constructed from this one. See the \ref flags "list of flags".
+ */
+
+ IsRowMajor = Flags&RowMajorBit ? 1 : 0,
+
+ InnerSizeAtCompileTime = int(IsVectorAtCompileTime) ? int(SizeAtCompileTime)
+ : int(IsRowMajor) ? int(ColsAtCompileTime) : int(RowsAtCompileTime),
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ _HasDirectAccess = (int(Flags)&DirectAccessBit) ? 1 : 0 // workaround sunCC
+ #endif
+ };
+
+ /** \internal the return type of MatrixBase::adjoint() */
+ typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
+ CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, Eigen::Transpose<const Derived> >,
+ Transpose<const Derived>
+ >::type AdjointReturnType;
+ typedef Transpose<Derived> TransposeReturnType;
+ typedef typename internal::add_const<Transpose<const Derived> >::type ConstTransposeReturnType;
+
+ // FIXME storage order do not match evaluator storage order
+ typedef SparseMatrix<Scalar, Flags&RowMajorBit ? RowMajor : ColMajor, StorageIndex> PlainObject;
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** This is the "real scalar" type; if the \a Scalar type is already real numbers
+ * (e.g. int, float or double) then \a RealScalar is just the same as \a Scalar. If
+ * \a Scalar is \a std::complex<T> then RealScalar is \a T.
+ *
+ * \sa class NumTraits
+ */
+ typedef typename NumTraits<Scalar>::Real RealScalar;
+
+ /** \internal the return type of coeff()
+ */
+ typedef typename internal::conditional<_HasDirectAccess, const Scalar&, Scalar>::type CoeffReturnType;
+
+ /** \internal Represents a matrix with all coefficients equal to one another*/
+ typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,Matrix<Scalar,Dynamic,Dynamic> > ConstantReturnType;
+
+ /** type of the equivalent dense matrix */
+ typedef Matrix<Scalar,RowsAtCompileTime,ColsAtCompileTime> DenseMatrixType;
+ /** type of the equivalent square matrix */
+ typedef Matrix<Scalar,EIGEN_SIZE_MAX(RowsAtCompileTime,ColsAtCompileTime),
+ EIGEN_SIZE_MAX(RowsAtCompileTime,ColsAtCompileTime)> SquareMatrixType;
+
+ inline const Derived& derived() const { return *static_cast<const Derived*>(this); }
+ inline Derived& derived() { return *static_cast<Derived*>(this); }
+ inline Derived& const_cast_derived() const
+ { return *static_cast<Derived*>(const_cast<SparseMatrixBase*>(this)); }
+
+ typedef EigenBase<Derived> Base;
+
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+#define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::SparseMatrixBase
+#ifdef EIGEN_PARSED_BY_DOXYGEN
+#define EIGEN_DOC_UNARY_ADDONS(METHOD,OP) /** <p>This method does not change the sparsity of \c *this: the OP is applied to explicitly stored coefficients only. \sa SparseCompressedBase::coeffs() </p> */
+#define EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL /** <p> \warning This method returns a read-only expression for any sparse matrices. \sa \ref TutorialSparse_SubMatrices "Sparse block operations" </p> */
+#define EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(COND) /** <p> \warning This method returns a read-write expression for COND sparse matrices only. Otherwise, the returned expression is read-only. \sa \ref TutorialSparse_SubMatrices "Sparse block operations" </p> */
+#else
+#define EIGEN_DOC_UNARY_ADDONS(X,Y)
+#define EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
+#define EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(COND)
+#endif
+# include "../plugins/CommonCwiseUnaryOps.h"
+# include "../plugins/CommonCwiseBinaryOps.h"
+# include "../plugins/MatrixCwiseUnaryOps.h"
+# include "../plugins/MatrixCwiseBinaryOps.h"
+# include "../plugins/BlockMethods.h"
+# ifdef EIGEN_SPARSEMATRIXBASE_PLUGIN
+# include EIGEN_SPARSEMATRIXBASE_PLUGIN
+# endif
+#undef EIGEN_CURRENT_STORAGE_BASE_CLASS
+#undef EIGEN_DOC_UNARY_ADDONS
+#undef EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
+#undef EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF
+
+ /** \returns the number of rows. \sa cols() */
+ inline Index rows() const { return derived().rows(); }
+ /** \returns the number of columns. \sa rows() */
+ inline Index cols() const { return derived().cols(); }
+ /** \returns the number of coefficients, which is \a rows()*cols().
+ * \sa rows(), cols(). */
+ inline Index size() const { return rows() * cols(); }
+ /** \returns true if either the number of rows or the number of columns is equal to 1.
+ * In other words, this function returns
+ * \code rows()==1 || cols()==1 \endcode
+ * \sa rows(), cols(), IsVectorAtCompileTime. */
+ inline bool isVector() const { return rows()==1 || cols()==1; }
+ /** \returns the size of the storage major dimension,
+ * i.e., the number of columns for a columns major matrix, and the number of rows otherwise */
+ Index outerSize() const { return (int(Flags)&RowMajorBit) ? this->rows() : this->cols(); }
+ /** \returns the size of the inner dimension according to the storage order,
+ * i.e., the number of rows for a columns major matrix, and the number of cols otherwise */
+ Index innerSize() const { return (int(Flags)&RowMajorBit) ? this->cols() : this->rows(); }
+
+ bool isRValue() const { return m_isRValue; }
+ Derived& markAsRValue() { m_isRValue = true; return derived(); }
+
+ SparseMatrixBase() : m_isRValue(false) { /* TODO check flags */ }
+
+
+ template<typename OtherDerived>
+ Derived& operator=(const ReturnByValue<OtherDerived>& other);
+
+ template<typename OtherDerived>
+ inline Derived& operator=(const SparseMatrixBase<OtherDerived>& other);
+
+ inline Derived& operator=(const Derived& other);
+
+ protected:
+
+ template<typename OtherDerived>
+ inline Derived& assign(const OtherDerived& other);
+
+ template<typename OtherDerived>
+ inline void assignGeneric(const OtherDerived& other);
+
+ public:
+
+ friend std::ostream & operator << (std::ostream & s, const SparseMatrixBase& m)
+ {
+ typedef typename Derived::Nested Nested;
+ typedef typename internal::remove_all<Nested>::type NestedCleaned;
+
+ if (Flags&RowMajorBit)
+ {
+ Nested nm(m.derived());
+ internal::evaluator<NestedCleaned> thisEval(nm);
+ for (Index row=0; row<nm.outerSize(); ++row)
+ {
+ Index col = 0;
+ for (typename internal::evaluator<NestedCleaned>::InnerIterator it(thisEval, row); it; ++it)
+ {
+ for ( ; col<it.index(); ++col)
+ s << "0 ";
+ s << it.value() << " ";
+ ++col;
+ }
+ for ( ; col<m.cols(); ++col)
+ s << "0 ";
+ s << std::endl;
+ }
+ }
+ else
+ {
+ Nested nm(m.derived());
+ internal::evaluator<NestedCleaned> thisEval(nm);
+ if (m.cols() == 1) {
+ Index row = 0;
+ for (typename internal::evaluator<NestedCleaned>::InnerIterator it(thisEval, 0); it; ++it)
+ {
+ for ( ; row<it.index(); ++row)
+ s << "0" << std::endl;
+ s << it.value() << std::endl;
+ ++row;
+ }
+ for ( ; row<m.rows(); ++row)
+ s << "0" << std::endl;
+ }
+ else
+ {
+ SparseMatrix<Scalar, RowMajorBit, StorageIndex> trans = m;
+ s << static_cast<const SparseMatrixBase<SparseMatrix<Scalar, RowMajorBit, StorageIndex> >&>(trans);
+ }
+ }
+ return s;
+ }
+
+ template<typename OtherDerived>
+ Derived& operator+=(const SparseMatrixBase<OtherDerived>& other);
+ template<typename OtherDerived>
+ Derived& operator-=(const SparseMatrixBase<OtherDerived>& other);
+
+ template<typename OtherDerived>
+ Derived& operator+=(const DiagonalBase<OtherDerived>& other);
+ template<typename OtherDerived>
+ Derived& operator-=(const DiagonalBase<OtherDerived>& other);
+
+ template<typename OtherDerived>
+ Derived& operator+=(const EigenBase<OtherDerived> &other);
+ template<typename OtherDerived>
+ Derived& operator-=(const EigenBase<OtherDerived> &other);
+
+ Derived& operator*=(const Scalar& other);
+ Derived& operator/=(const Scalar& other);
+
+ template<typename OtherDerived> struct CwiseProductDenseReturnType {
+ typedef CwiseBinaryOp<internal::scalar_product_op<typename ScalarBinaryOpTraits<
+ typename internal::traits<Derived>::Scalar,
+ typename internal::traits<OtherDerived>::Scalar
+ >::ReturnType>,
+ const Derived,
+ const OtherDerived
+ > Type;
+ };
+
+ template<typename OtherDerived>
+ EIGEN_STRONG_INLINE const typename CwiseProductDenseReturnType<OtherDerived>::Type
+ cwiseProduct(const MatrixBase<OtherDerived> &other) const;
+
+ // sparse * diagonal
+ template<typename OtherDerived>
+ const Product<Derived,OtherDerived>
+ operator*(const DiagonalBase<OtherDerived> &other) const
+ { return Product<Derived,OtherDerived>(derived(), other.derived()); }
+
+ // diagonal * sparse
+ template<typename OtherDerived> friend
+ const Product<OtherDerived,Derived>
+ operator*(const DiagonalBase<OtherDerived> &lhs, const SparseMatrixBase& rhs)
+ { return Product<OtherDerived,Derived>(lhs.derived(), rhs.derived()); }
+
+ // sparse * sparse
+ template<typename OtherDerived>
+ const Product<Derived,OtherDerived,AliasFreeProduct>
+ operator*(const SparseMatrixBase<OtherDerived> &other) const;
+
+ // sparse * dense
+ template<typename OtherDerived>
+ const Product<Derived,OtherDerived>
+ operator*(const MatrixBase<OtherDerived> &other) const
+ { return Product<Derived,OtherDerived>(derived(), other.derived()); }
+
+ // dense * sparse
+ template<typename OtherDerived> friend
+ const Product<OtherDerived,Derived>
+ operator*(const MatrixBase<OtherDerived> &lhs, const SparseMatrixBase& rhs)
+ { return Product<OtherDerived,Derived>(lhs.derived(), rhs.derived()); }
+
+ /** \returns an expression of P H P^-1 where H is the matrix represented by \c *this */
+ SparseSymmetricPermutationProduct<Derived,Upper|Lower> twistedBy(const PermutationMatrix<Dynamic,Dynamic,StorageIndex>& perm) const
+ {
+ return SparseSymmetricPermutationProduct<Derived,Upper|Lower>(derived(), perm);
+ }
+
+ template<typename OtherDerived>
+ Derived& operator*=(const SparseMatrixBase<OtherDerived>& other);
+
+ template<int Mode>
+ inline const TriangularView<const Derived, Mode> triangularView() const;
+
+ template<unsigned int UpLo> struct SelfAdjointViewReturnType { typedef SparseSelfAdjointView<Derived, UpLo> Type; };
+ template<unsigned int UpLo> struct ConstSelfAdjointViewReturnType { typedef const SparseSelfAdjointView<const Derived, UpLo> Type; };
+
+ template<unsigned int UpLo> inline
+ typename ConstSelfAdjointViewReturnType<UpLo>::Type selfadjointView() const;
+ template<unsigned int UpLo> inline
+ typename SelfAdjointViewReturnType<UpLo>::Type selfadjointView();
+
+ template<typename OtherDerived> Scalar dot(const MatrixBase<OtherDerived>& other) const;
+ template<typename OtherDerived> Scalar dot(const SparseMatrixBase<OtherDerived>& other) const;
+ RealScalar squaredNorm() const;
+ RealScalar norm() const;
+ RealScalar blueNorm() const;
+
+ TransposeReturnType transpose() { return TransposeReturnType(derived()); }
+ const ConstTransposeReturnType transpose() const { return ConstTransposeReturnType(derived()); }
+ const AdjointReturnType adjoint() const { return AdjointReturnType(transpose()); }
+
+ // inner-vector
+ typedef Block<Derived,IsRowMajor?1:Dynamic,IsRowMajor?Dynamic:1,true> InnerVectorReturnType;
+ typedef Block<const Derived,IsRowMajor?1:Dynamic,IsRowMajor?Dynamic:1,true> ConstInnerVectorReturnType;
+ InnerVectorReturnType innerVector(Index outer);
+ const ConstInnerVectorReturnType innerVector(Index outer) const;
+
+ // set of inner-vectors
+ typedef Block<Derived,Dynamic,Dynamic,true> InnerVectorsReturnType;
+ typedef Block<const Derived,Dynamic,Dynamic,true> ConstInnerVectorsReturnType;
+ InnerVectorsReturnType innerVectors(Index outerStart, Index outerSize);
+ const ConstInnerVectorsReturnType innerVectors(Index outerStart, Index outerSize) const;
+
+ DenseMatrixType toDense() const
+ {
+ return DenseMatrixType(derived());
+ }
+
+ template<typename OtherDerived>
+ bool isApprox(const SparseMatrixBase<OtherDerived>& other,
+ const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+
+ template<typename OtherDerived>
+ bool isApprox(const MatrixBase<OtherDerived>& other,
+ const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const
+ { return toDense().isApprox(other,prec); }
+
+ /** \returns the matrix or vector obtained by evaluating this expression.
+ *
+ * Notice that in the case of a plain matrix or vector (not an expression) this function just returns
+ * a const reference, in order to avoid a useless copy.
+ */
+ inline const typename internal::eval<Derived>::type eval() const
+ { return typename internal::eval<Derived>::type(derived()); }
+
+ Scalar sum() const;
+
+ inline const SparseView<Derived>
+ pruned(const Scalar& reference = Scalar(0), const RealScalar& epsilon = NumTraits<Scalar>::dummy_precision()) const;
+
+ protected:
+
+ bool m_isRValue;
+
+ static inline StorageIndex convert_index(const Index idx) {
+ return internal::convert_index<StorageIndex>(idx);
+ }
+ private:
+ template<typename Dest> void evalTo(Dest &) const;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEMATRIXBASE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparsePermutation.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparsePermutation.h
new file mode 100644
index 000000000..ef38357ae
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparsePermutation.h
@@ -0,0 +1,178 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_PERMUTATION_H
+#define EIGEN_SPARSE_PERMUTATION_H
+
+// This file implements sparse * permutation products
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename ExpressionType, int Side, bool Transposed>
+struct permutation_matrix_product<ExpressionType, Side, Transposed, SparseShape>
+{
+ typedef typename nested_eval<ExpressionType, 1>::type MatrixType;
+ typedef typename remove_all<MatrixType>::type MatrixTypeCleaned;
+
+ typedef typename MatrixTypeCleaned::Scalar Scalar;
+ typedef typename MatrixTypeCleaned::StorageIndex StorageIndex;
+
+ enum {
+ SrcStorageOrder = MatrixTypeCleaned::Flags&RowMajorBit ? RowMajor : ColMajor,
+ MoveOuter = SrcStorageOrder==RowMajor ? Side==OnTheLeft : Side==OnTheRight
+ };
+
+ typedef typename internal::conditional<MoveOuter,
+ SparseMatrix<Scalar,SrcStorageOrder,StorageIndex>,
+ SparseMatrix<Scalar,int(SrcStorageOrder)==RowMajor?ColMajor:RowMajor,StorageIndex> >::type ReturnType;
+
+ template<typename Dest,typename PermutationType>
+ static inline void run(Dest& dst, const PermutationType& perm, const ExpressionType& xpr)
+ {
+ MatrixType mat(xpr);
+ if(MoveOuter)
+ {
+ SparseMatrix<Scalar,SrcStorageOrder,StorageIndex> tmp(mat.rows(), mat.cols());
+ Matrix<StorageIndex,Dynamic,1> sizes(mat.outerSize());
+ for(Index j=0; j<mat.outerSize(); ++j)
+ {
+ Index jp = perm.indices().coeff(j);
+ sizes[((Side==OnTheLeft) ^ Transposed) ? jp : j] = StorageIndex(mat.innerVector(((Side==OnTheRight) ^ Transposed) ? jp : j).nonZeros());
+ }
+ tmp.reserve(sizes);
+ for(Index j=0; j<mat.outerSize(); ++j)
+ {
+ Index jp = perm.indices().coeff(j);
+ Index jsrc = ((Side==OnTheRight) ^ Transposed) ? jp : j;
+ Index jdst = ((Side==OnTheLeft) ^ Transposed) ? jp : j;
+ for(typename MatrixTypeCleaned::InnerIterator it(mat,jsrc); it; ++it)
+ tmp.insertByOuterInner(jdst,it.index()) = it.value();
+ }
+ dst = tmp;
+ }
+ else
+ {
+ SparseMatrix<Scalar,int(SrcStorageOrder)==RowMajor?ColMajor:RowMajor,StorageIndex> tmp(mat.rows(), mat.cols());
+ Matrix<StorageIndex,Dynamic,1> sizes(tmp.outerSize());
+ sizes.setZero();
+ PermutationMatrix<Dynamic,Dynamic,StorageIndex> perm_cpy;
+ if((Side==OnTheLeft) ^ Transposed)
+ perm_cpy = perm;
+ else
+ perm_cpy = perm.transpose();
+
+ for(Index j=0; j<mat.outerSize(); ++j)
+ for(typename MatrixTypeCleaned::InnerIterator it(mat,j); it; ++it)
+ sizes[perm_cpy.indices().coeff(it.index())]++;
+ tmp.reserve(sizes);
+ for(Index j=0; j<mat.outerSize(); ++j)
+ for(typename MatrixTypeCleaned::InnerIterator it(mat,j); it; ++it)
+ tmp.insertByOuterInner(perm_cpy.indices().coeff(it.index()),j) = it.value();
+ dst = tmp;
+ }
+ }
+};
+
+}
+
+namespace internal {
+
+template <int ProductTag> struct product_promote_storage_type<Sparse, PermutationStorage, ProductTag> { typedef Sparse ret; };
+template <int ProductTag> struct product_promote_storage_type<PermutationStorage, Sparse, ProductTag> { typedef Sparse ret; };
+
+// TODO, the following two overloads are only needed to define the right temporary type through
+// typename traits<permutation_sparse_matrix_product<Rhs,Lhs,OnTheRight,false> >::ReturnType
+// whereas it should be correctly handled by traits<Product<> >::PlainObject
+
+template<typename Lhs, typename Rhs, int ProductTag>
+struct product_evaluator<Product<Lhs, Rhs, AliasFreeProduct>, ProductTag, PermutationShape, SparseShape>
+ : public evaluator<typename permutation_matrix_product<Rhs,OnTheLeft,false,SparseShape>::ReturnType>
+{
+ typedef Product<Lhs, Rhs, AliasFreeProduct> XprType;
+ typedef typename permutation_matrix_product<Rhs,OnTheLeft,false,SparseShape>::ReturnType PlainObject;
+ typedef evaluator<PlainObject> Base;
+
+ enum {
+ Flags = Base::Flags | EvalBeforeNestingBit
+ };
+
+ explicit product_evaluator(const XprType& xpr)
+ : m_result(xpr.rows(), xpr.cols())
+ {
+ ::new (static_cast<Base*>(this)) Base(m_result);
+ generic_product_impl<Lhs, Rhs, PermutationShape, SparseShape, ProductTag>::evalTo(m_result, xpr.lhs(), xpr.rhs());
+ }
+
+protected:
+ PlainObject m_result;
+};
+
+template<typename Lhs, typename Rhs, int ProductTag>
+struct product_evaluator<Product<Lhs, Rhs, AliasFreeProduct>, ProductTag, SparseShape, PermutationShape >
+ : public evaluator<typename permutation_matrix_product<Lhs,OnTheRight,false,SparseShape>::ReturnType>
+{
+ typedef Product<Lhs, Rhs, AliasFreeProduct> XprType;
+ typedef typename permutation_matrix_product<Lhs,OnTheRight,false,SparseShape>::ReturnType PlainObject;
+ typedef evaluator<PlainObject> Base;
+
+ enum {
+ Flags = Base::Flags | EvalBeforeNestingBit
+ };
+
+ explicit product_evaluator(const XprType& xpr)
+ : m_result(xpr.rows(), xpr.cols())
+ {
+ ::new (static_cast<Base*>(this)) Base(m_result);
+ generic_product_impl<Lhs, Rhs, SparseShape, PermutationShape, ProductTag>::evalTo(m_result, xpr.lhs(), xpr.rhs());
+ }
+
+protected:
+ PlainObject m_result;
+};
+
+} // end namespace internal
+
+/** \returns the matrix with the permutation applied to the columns
+ */
+template<typename SparseDerived, typename PermDerived>
+inline const Product<SparseDerived, PermDerived, AliasFreeProduct>
+operator*(const SparseMatrixBase<SparseDerived>& matrix, const PermutationBase<PermDerived>& perm)
+{ return Product<SparseDerived, PermDerived, AliasFreeProduct>(matrix.derived(), perm.derived()); }
+
+/** \returns the matrix with the permutation applied to the rows
+ */
+template<typename SparseDerived, typename PermDerived>
+inline const Product<PermDerived, SparseDerived, AliasFreeProduct>
+operator*( const PermutationBase<PermDerived>& perm, const SparseMatrixBase<SparseDerived>& matrix)
+{ return Product<PermDerived, SparseDerived, AliasFreeProduct>(perm.derived(), matrix.derived()); }
+
+
+/** \returns the matrix with the inverse permutation applied to the columns.
+ */
+template<typename SparseDerived, typename PermutationType>
+inline const Product<SparseDerived, Inverse<PermutationType>, AliasFreeProduct>
+operator*(const SparseMatrixBase<SparseDerived>& matrix, const InverseImpl<PermutationType, PermutationStorage>& tperm)
+{
+ return Product<SparseDerived, Inverse<PermutationType>, AliasFreeProduct>(matrix.derived(), tperm.derived());
+}
+
+/** \returns the matrix with the inverse permutation applied to the rows.
+ */
+template<typename SparseDerived, typename PermutationType>
+inline const Product<Inverse<PermutationType>, SparseDerived, AliasFreeProduct>
+operator*(const InverseImpl<PermutationType,PermutationStorage>& tperm, const SparseMatrixBase<SparseDerived>& matrix)
+{
+ return Product<Inverse<PermutationType>, SparseDerived, AliasFreeProduct>(tperm.derived(), matrix.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_SELFADJOINTVIEW_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseProduct.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseProduct.h
new file mode 100644
index 000000000..4cbf68781
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseProduct.h
@@ -0,0 +1,169 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEPRODUCT_H
+#define EIGEN_SPARSEPRODUCT_H
+
+namespace Eigen {
+
+/** \returns an expression of the product of two sparse matrices.
+ * By default a conservative product preserving the symbolic non zeros is performed.
+ * The automatic pruning of the small values can be achieved by calling the pruned() function
+ * in which case a totally different product algorithm is employed:
+ * \code
+ * C = (A*B).pruned(); // supress numerical zeros (exact)
+ * C = (A*B).pruned(ref);
+ * C = (A*B).pruned(ref,epsilon);
+ * \endcode
+ * where \c ref is a meaningful non zero reference value.
+ * */
+template<typename Derived>
+template<typename OtherDerived>
+inline const Product<Derived,OtherDerived,AliasFreeProduct>
+SparseMatrixBase<Derived>::operator*(const SparseMatrixBase<OtherDerived> &other) const
+{
+ return Product<Derived,OtherDerived,AliasFreeProduct>(derived(), other.derived());
+}
+
+namespace internal {
+
+// sparse * sparse
+template<typename Lhs, typename Rhs, int ProductType>
+struct generic_product_impl<Lhs, Rhs, SparseShape, SparseShape, ProductType>
+{
+ template<typename Dest>
+ static void evalTo(Dest& dst, const Lhs& lhs, const Rhs& rhs)
+ {
+ evalTo(dst, lhs, rhs, typename evaluator_traits<Dest>::Shape());
+ }
+
+ // dense += sparse * sparse
+ template<typename Dest,typename ActualLhs>
+ static void addTo(Dest& dst, const ActualLhs& lhs, const Rhs& rhs, typename enable_if<is_same<typename evaluator_traits<Dest>::Shape,DenseShape>::value,int*>::type* = 0)
+ {
+ typedef typename nested_eval<ActualLhs,Dynamic>::type LhsNested;
+ typedef typename nested_eval<Rhs,Dynamic>::type RhsNested;
+ LhsNested lhsNested(lhs);
+ RhsNested rhsNested(rhs);
+ internal::sparse_sparse_to_dense_product_selector<typename remove_all<LhsNested>::type,
+ typename remove_all<RhsNested>::type, Dest>::run(lhsNested,rhsNested,dst);
+ }
+
+ // dense -= sparse * sparse
+ template<typename Dest>
+ static void subTo(Dest& dst, const Lhs& lhs, const Rhs& rhs, typename enable_if<is_same<typename evaluator_traits<Dest>::Shape,DenseShape>::value,int*>::type* = 0)
+ {
+ addTo(dst, -lhs, rhs);
+ }
+
+protected:
+
+ // sparse = sparse * sparse
+ template<typename Dest>
+ static void evalTo(Dest& dst, const Lhs& lhs, const Rhs& rhs, SparseShape)
+ {
+ typedef typename nested_eval<Lhs,Dynamic>::type LhsNested;
+ typedef typename nested_eval<Rhs,Dynamic>::type RhsNested;
+ LhsNested lhsNested(lhs);
+ RhsNested rhsNested(rhs);
+ internal::conservative_sparse_sparse_product_selector<typename remove_all<LhsNested>::type,
+ typename remove_all<RhsNested>::type, Dest>::run(lhsNested,rhsNested,dst);
+ }
+
+ // dense = sparse * sparse
+ template<typename Dest>
+ static void evalTo(Dest& dst, const Lhs& lhs, const Rhs& rhs, DenseShape)
+ {
+ dst.setZero();
+ addTo(dst, lhs, rhs);
+ }
+};
+
+// sparse * sparse-triangular
+template<typename Lhs, typename Rhs, int ProductType>
+struct generic_product_impl<Lhs, Rhs, SparseShape, SparseTriangularShape, ProductType>
+ : public generic_product_impl<Lhs, Rhs, SparseShape, SparseShape, ProductType>
+{};
+
+// sparse-triangular * sparse
+template<typename Lhs, typename Rhs, int ProductType>
+struct generic_product_impl<Lhs, Rhs, SparseTriangularShape, SparseShape, ProductType>
+ : public generic_product_impl<Lhs, Rhs, SparseShape, SparseShape, ProductType>
+{};
+
+// dense = sparse-product (can be sparse*sparse, sparse*perm, etc.)
+template< typename DstXprType, typename Lhs, typename Rhs>
+struct Assignment<DstXprType, Product<Lhs,Rhs,AliasFreeProduct>, internal::assign_op<typename DstXprType::Scalar,typename Product<Lhs,Rhs,AliasFreeProduct>::Scalar>, Sparse2Dense>
+{
+ typedef Product<Lhs,Rhs,AliasFreeProduct> SrcXprType;
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<typename DstXprType::Scalar,typename SrcXprType::Scalar> &)
+ {
+ Index dstRows = src.rows();
+ Index dstCols = src.cols();
+ if((dst.rows()!=dstRows) || (dst.cols()!=dstCols))
+ dst.resize(dstRows, dstCols);
+
+ generic_product_impl<Lhs, Rhs>::evalTo(dst,src.lhs(),src.rhs());
+ }
+};
+
+// dense += sparse-product (can be sparse*sparse, sparse*perm, etc.)
+template< typename DstXprType, typename Lhs, typename Rhs>
+struct Assignment<DstXprType, Product<Lhs,Rhs,AliasFreeProduct>, internal::add_assign_op<typename DstXprType::Scalar,typename Product<Lhs,Rhs,AliasFreeProduct>::Scalar>, Sparse2Dense>
+{
+ typedef Product<Lhs,Rhs,AliasFreeProduct> SrcXprType;
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::add_assign_op<typename DstXprType::Scalar,typename SrcXprType::Scalar> &)
+ {
+ generic_product_impl<Lhs, Rhs>::addTo(dst,src.lhs(),src.rhs());
+ }
+};
+
+// dense -= sparse-product (can be sparse*sparse, sparse*perm, etc.)
+template< typename DstXprType, typename Lhs, typename Rhs>
+struct Assignment<DstXprType, Product<Lhs,Rhs,AliasFreeProduct>, internal::sub_assign_op<typename DstXprType::Scalar,typename Product<Lhs,Rhs,AliasFreeProduct>::Scalar>, Sparse2Dense>
+{
+ typedef Product<Lhs,Rhs,AliasFreeProduct> SrcXprType;
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::sub_assign_op<typename DstXprType::Scalar,typename SrcXprType::Scalar> &)
+ {
+ generic_product_impl<Lhs, Rhs>::subTo(dst,src.lhs(),src.rhs());
+ }
+};
+
+template<typename Lhs, typename Rhs, int Options>
+struct unary_evaluator<SparseView<Product<Lhs, Rhs, Options> >, IteratorBased>
+ : public evaluator<typename Product<Lhs, Rhs, DefaultProduct>::PlainObject>
+{
+ typedef SparseView<Product<Lhs, Rhs, Options> > XprType;
+ typedef typename XprType::PlainObject PlainObject;
+ typedef evaluator<PlainObject> Base;
+
+ explicit unary_evaluator(const XprType& xpr)
+ : m_result(xpr.rows(), xpr.cols())
+ {
+ using std::abs;
+ ::new (static_cast<Base*>(this)) Base(m_result);
+ typedef typename nested_eval<Lhs,Dynamic>::type LhsNested;
+ typedef typename nested_eval<Rhs,Dynamic>::type RhsNested;
+ LhsNested lhsNested(xpr.nestedExpression().lhs());
+ RhsNested rhsNested(xpr.nestedExpression().rhs());
+
+ internal::sparse_sparse_product_with_pruning_selector<typename remove_all<LhsNested>::type,
+ typename remove_all<RhsNested>::type, PlainObject>::run(lhsNested,rhsNested,m_result,
+ abs(xpr.reference())*xpr.epsilon());
+ }
+
+protected:
+ PlainObject m_result;
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEPRODUCT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseRedux.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseRedux.h
new file mode 100644
index 000000000..458774962
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseRedux.h
@@ -0,0 +1,49 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEREDUX_H
+#define EIGEN_SPARSEREDUX_H
+
+namespace Eigen {
+
+template<typename Derived>
+typename internal::traits<Derived>::Scalar
+SparseMatrixBase<Derived>::sum() const
+{
+ eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix");
+ Scalar res(0);
+ internal::evaluator<Derived> thisEval(derived());
+ for (Index j=0; j<outerSize(); ++j)
+ for (typename internal::evaluator<Derived>::InnerIterator iter(thisEval,j); iter; ++iter)
+ res += iter.value();
+ return res;
+}
+
+template<typename _Scalar, int _Options, typename _Index>
+typename internal::traits<SparseMatrix<_Scalar,_Options,_Index> >::Scalar
+SparseMatrix<_Scalar,_Options,_Index>::sum() const
+{
+ eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix");
+ if(this->isCompressed())
+ return Matrix<Scalar,1,Dynamic>::Map(m_data.valuePtr(), m_data.size()).sum();
+ else
+ return Base::sum();
+}
+
+template<typename _Scalar, int _Options, typename _Index>
+typename internal::traits<SparseVector<_Scalar,_Options, _Index> >::Scalar
+SparseVector<_Scalar,_Options,_Index>::sum() const
+{
+ eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix");
+ return Matrix<Scalar,1,Dynamic>::Map(m_data.valuePtr(), m_data.size()).sum();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEREDUX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseRef.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseRef.h
new file mode 100644
index 000000000..d91f38f97
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseRef.h
@@ -0,0 +1,397 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_REF_H
+#define EIGEN_SPARSE_REF_H
+
+namespace Eigen {
+
+enum {
+ StandardCompressedFormat = 2 /**< used by Ref<SparseMatrix> to specify whether the input storage must be in standard compressed form */
+};
+
+namespace internal {
+
+template<typename Derived> class SparseRefBase;
+
+template<typename MatScalar, int MatOptions, typename MatIndex, int _Options, typename _StrideType>
+struct traits<Ref<SparseMatrix<MatScalar,MatOptions,MatIndex>, _Options, _StrideType> >
+ : public traits<SparseMatrix<MatScalar,MatOptions,MatIndex> >
+{
+ typedef SparseMatrix<MatScalar,MatOptions,MatIndex> PlainObjectType;
+ enum {
+ Options = _Options,
+ Flags = traits<PlainObjectType>::Flags | CompressedAccessBit | NestByRefBit
+ };
+
+ template<typename Derived> struct match {
+ enum {
+ StorageOrderMatch = PlainObjectType::IsVectorAtCompileTime || Derived::IsVectorAtCompileTime || ((PlainObjectType::Flags&RowMajorBit)==(Derived::Flags&RowMajorBit)),
+ MatchAtCompileTime = (Derived::Flags&CompressedAccessBit) && StorageOrderMatch
+ };
+ typedef typename internal::conditional<MatchAtCompileTime,internal::true_type,internal::false_type>::type type;
+ };
+
+};
+
+template<typename MatScalar, int MatOptions, typename MatIndex, int _Options, typename _StrideType>
+struct traits<Ref<const SparseMatrix<MatScalar,MatOptions,MatIndex>, _Options, _StrideType> >
+ : public traits<Ref<SparseMatrix<MatScalar,MatOptions,MatIndex>, _Options, _StrideType> >
+{
+ enum {
+ Flags = (traits<SparseMatrix<MatScalar,MatOptions,MatIndex> >::Flags | CompressedAccessBit | NestByRefBit) & ~LvalueBit
+ };
+};
+
+template<typename MatScalar, int MatOptions, typename MatIndex, int _Options, typename _StrideType>
+struct traits<Ref<SparseVector<MatScalar,MatOptions,MatIndex>, _Options, _StrideType> >
+ : public traits<SparseVector<MatScalar,MatOptions,MatIndex> >
+{
+ typedef SparseVector<MatScalar,MatOptions,MatIndex> PlainObjectType;
+ enum {
+ Options = _Options,
+ Flags = traits<PlainObjectType>::Flags | CompressedAccessBit | NestByRefBit
+ };
+
+ template<typename Derived> struct match {
+ enum {
+ MatchAtCompileTime = (Derived::Flags&CompressedAccessBit) && Derived::IsVectorAtCompileTime
+ };
+ typedef typename internal::conditional<MatchAtCompileTime,internal::true_type,internal::false_type>::type type;
+ };
+
+};
+
+template<typename MatScalar, int MatOptions, typename MatIndex, int _Options, typename _StrideType>
+struct traits<Ref<const SparseVector<MatScalar,MatOptions,MatIndex>, _Options, _StrideType> >
+ : public traits<Ref<SparseVector<MatScalar,MatOptions,MatIndex>, _Options, _StrideType> >
+{
+ enum {
+ Flags = (traits<SparseVector<MatScalar,MatOptions,MatIndex> >::Flags | CompressedAccessBit | NestByRefBit) & ~LvalueBit
+ };
+};
+
+template<typename Derived>
+struct traits<SparseRefBase<Derived> > : public traits<Derived> {};
+
+template<typename Derived> class SparseRefBase
+ : public SparseMapBase<Derived>
+{
+public:
+
+ typedef SparseMapBase<Derived> Base;
+ EIGEN_SPARSE_PUBLIC_INTERFACE(SparseRefBase)
+
+ SparseRefBase()
+ : Base(RowsAtCompileTime==Dynamic?0:RowsAtCompileTime,ColsAtCompileTime==Dynamic?0:ColsAtCompileTime, 0, 0, 0, 0, 0)
+ {}
+
+protected:
+
+ template<typename Expression>
+ void construct(Expression& expr)
+ {
+ if(expr.outerIndexPtr()==0)
+ ::new (static_cast<Base*>(this)) Base(expr.size(), expr.nonZeros(), expr.innerIndexPtr(), expr.valuePtr());
+ else
+ ::new (static_cast<Base*>(this)) Base(expr.rows(), expr.cols(), expr.nonZeros(), expr.outerIndexPtr(), expr.innerIndexPtr(), expr.valuePtr(), expr.innerNonZeroPtr());
+ }
+};
+
+} // namespace internal
+
+
+/**
+ * \ingroup SparseCore_Module
+ *
+ * \brief A sparse matrix expression referencing an existing sparse expression
+ *
+ * \tparam SparseMatrixType the equivalent sparse matrix type of the referenced data, it must be a template instance of class SparseMatrix.
+ * \tparam Options specifies whether the a standard compressed format is required \c Options is \c #StandardCompressedFormat, or \c 0.
+ * The default is \c 0.
+ *
+ * \sa class Ref
+ */
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
+class Ref<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType >
+ : public internal::SparseRefBase<Ref<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType > >
+#else
+template<typename SparseMatrixType, int Options>
+class Ref<SparseMatrixType, Options>
+ : public SparseMapBase<Derived,WriteAccessors> // yes, that's weird to use Derived here, but that works!
+#endif
+{
+ typedef SparseMatrix<MatScalar,MatOptions,MatIndex> PlainObjectType;
+ typedef internal::traits<Ref> Traits;
+ template<int OtherOptions>
+ inline Ref(const SparseMatrix<MatScalar,OtherOptions,MatIndex>& expr);
+ template<int OtherOptions>
+ inline Ref(const MappedSparseMatrix<MatScalar,OtherOptions,MatIndex>& expr);
+ public:
+
+ typedef internal::SparseRefBase<Ref> Base;
+ EIGEN_SPARSE_PUBLIC_INTERFACE(Ref)
+
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ template<int OtherOptions>
+ inline Ref(SparseMatrix<MatScalar,OtherOptions,MatIndex>& expr)
+ {
+ EIGEN_STATIC_ASSERT(bool(Traits::template match<SparseMatrix<MatScalar,OtherOptions,MatIndex> >::MatchAtCompileTime), STORAGE_LAYOUT_DOES_NOT_MATCH);
+ eigen_assert( ((Options & int(StandardCompressedFormat))==0) || (expr.isCompressed()) );
+ Base::construct(expr.derived());
+ }
+
+ template<int OtherOptions>
+ inline Ref(MappedSparseMatrix<MatScalar,OtherOptions,MatIndex>& expr)
+ {
+ EIGEN_STATIC_ASSERT(bool(Traits::template match<SparseMatrix<MatScalar,OtherOptions,MatIndex> >::MatchAtCompileTime), STORAGE_LAYOUT_DOES_NOT_MATCH);
+ eigen_assert( ((Options & int(StandardCompressedFormat))==0) || (expr.isCompressed()) );
+ Base::construct(expr.derived());
+ }
+
+ template<typename Derived>
+ inline Ref(const SparseCompressedBase<Derived>& expr)
+ #else
+ /** Implicit constructor from any sparse expression (2D matrix or 1D vector) */
+ template<typename Derived>
+ inline Ref(SparseCompressedBase<Derived>& expr)
+ #endif
+ {
+ EIGEN_STATIC_ASSERT(bool(internal::is_lvalue<Derived>::value), THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY);
+ EIGEN_STATIC_ASSERT(bool(Traits::template match<Derived>::MatchAtCompileTime), STORAGE_LAYOUT_DOES_NOT_MATCH);
+ eigen_assert( ((Options & int(StandardCompressedFormat))==0) || (expr.isCompressed()) );
+ Base::construct(expr.const_cast_derived());
+ }
+};
+
+// this is the const ref version
+template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
+class Ref<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType>
+ : public internal::SparseRefBase<Ref<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> >
+{
+ typedef SparseMatrix<MatScalar,MatOptions,MatIndex> TPlainObjectType;
+ typedef internal::traits<Ref> Traits;
+ public:
+
+ typedef internal::SparseRefBase<Ref> Base;
+ EIGEN_SPARSE_PUBLIC_INTERFACE(Ref)
+
+ template<typename Derived>
+ inline Ref(const SparseMatrixBase<Derived>& expr) : m_hasCopy(false)
+ {
+ construct(expr.derived(), typename Traits::template match<Derived>::type());
+ }
+
+ inline Ref(const Ref& other) : Base(other), m_hasCopy(false) {
+ // copy constructor shall not copy the m_object, to avoid unnecessary malloc and copy
+ }
+
+ template<typename OtherRef>
+ inline Ref(const RefBase<OtherRef>& other) : m_hasCopy(false) {
+ construct(other.derived(), typename Traits::template match<OtherRef>::type());
+ }
+
+ ~Ref() {
+ if(m_hasCopy) {
+ TPlainObjectType* obj = reinterpret_cast<TPlainObjectType*>(m_object_bytes);
+ obj->~TPlainObjectType();
+ }
+ }
+
+ protected:
+
+ template<typename Expression>
+ void construct(const Expression& expr,internal::true_type)
+ {
+ if((Options & int(StandardCompressedFormat)) && (!expr.isCompressed()))
+ {
+ TPlainObjectType* obj = reinterpret_cast<TPlainObjectType*>(m_object_bytes);
+ ::new (obj) TPlainObjectType(expr);
+ m_hasCopy = true;
+ Base::construct(*obj);
+ }
+ else
+ {
+ Base::construct(expr);
+ }
+ }
+
+ template<typename Expression>
+ void construct(const Expression& expr, internal::false_type)
+ {
+ TPlainObjectType* obj = reinterpret_cast<TPlainObjectType*>(m_object_bytes);
+ ::new (obj) TPlainObjectType(expr);
+ m_hasCopy = true;
+ Base::construct(*obj);
+ }
+
+ protected:
+ char m_object_bytes[sizeof(TPlainObjectType)];
+ bool m_hasCopy;
+};
+
+
+
+/**
+ * \ingroup SparseCore_Module
+ *
+ * \brief A sparse vector expression referencing an existing sparse vector expression
+ *
+ * \tparam SparseVectorType the equivalent sparse vector type of the referenced data, it must be a template instance of class SparseVector.
+ *
+ * \sa class Ref
+ */
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
+class Ref<SparseVector<MatScalar,MatOptions,MatIndex>, Options, StrideType >
+ : public internal::SparseRefBase<Ref<SparseVector<MatScalar,MatOptions,MatIndex>, Options, StrideType > >
+#else
+template<typename SparseVectorType>
+class Ref<SparseVectorType>
+ : public SparseMapBase<Derived,WriteAccessors>
+#endif
+{
+ typedef SparseVector<MatScalar,MatOptions,MatIndex> PlainObjectType;
+ typedef internal::traits<Ref> Traits;
+ template<int OtherOptions>
+ inline Ref(const SparseVector<MatScalar,OtherOptions,MatIndex>& expr);
+ public:
+
+ typedef internal::SparseRefBase<Ref> Base;
+ EIGEN_SPARSE_PUBLIC_INTERFACE(Ref)
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ template<int OtherOptions>
+ inline Ref(SparseVector<MatScalar,OtherOptions,MatIndex>& expr)
+ {
+ EIGEN_STATIC_ASSERT(bool(Traits::template match<SparseVector<MatScalar,OtherOptions,MatIndex> >::MatchAtCompileTime), STORAGE_LAYOUT_DOES_NOT_MATCH);
+ Base::construct(expr.derived());
+ }
+
+ template<typename Derived>
+ inline Ref(const SparseCompressedBase<Derived>& expr)
+ #else
+ /** Implicit constructor from any 1D sparse vector expression */
+ template<typename Derived>
+ inline Ref(SparseCompressedBase<Derived>& expr)
+ #endif
+ {
+ EIGEN_STATIC_ASSERT(bool(internal::is_lvalue<Derived>::value), THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY);
+ EIGEN_STATIC_ASSERT(bool(Traits::template match<Derived>::MatchAtCompileTime), STORAGE_LAYOUT_DOES_NOT_MATCH);
+ Base::construct(expr.const_cast_derived());
+ }
+};
+
+// this is the const ref version
+template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
+class Ref<const SparseVector<MatScalar,MatOptions,MatIndex>, Options, StrideType>
+ : public internal::SparseRefBase<Ref<const SparseVector<MatScalar,MatOptions,MatIndex>, Options, StrideType> >
+{
+ typedef SparseVector<MatScalar,MatOptions,MatIndex> TPlainObjectType;
+ typedef internal::traits<Ref> Traits;
+ public:
+
+ typedef internal::SparseRefBase<Ref> Base;
+ EIGEN_SPARSE_PUBLIC_INTERFACE(Ref)
+
+ template<typename Derived>
+ inline Ref(const SparseMatrixBase<Derived>& expr) : m_hasCopy(false)
+ {
+ construct(expr.derived(), typename Traits::template match<Derived>::type());
+ }
+
+ inline Ref(const Ref& other) : Base(other), m_hasCopy(false) {
+ // copy constructor shall not copy the m_object, to avoid unnecessary malloc and copy
+ }
+
+ template<typename OtherRef>
+ inline Ref(const RefBase<OtherRef>& other) : m_hasCopy(false) {
+ construct(other.derived(), typename Traits::template match<OtherRef>::type());
+ }
+
+ ~Ref() {
+ if(m_hasCopy) {
+ TPlainObjectType* obj = reinterpret_cast<TPlainObjectType*>(m_object_bytes);
+ obj->~TPlainObjectType();
+ }
+ }
+
+ protected:
+
+ template<typename Expression>
+ void construct(const Expression& expr,internal::true_type)
+ {
+ Base::construct(expr);
+ }
+
+ template<typename Expression>
+ void construct(const Expression& expr, internal::false_type)
+ {
+ TPlainObjectType* obj = reinterpret_cast<TPlainObjectType*>(m_object_bytes);
+ ::new (obj) TPlainObjectType(expr);
+ m_hasCopy = true;
+ Base::construct(*obj);
+ }
+
+ protected:
+ char m_object_bytes[sizeof(TPlainObjectType)];
+ bool m_hasCopy;
+};
+
+namespace internal {
+
+// FIXME shall we introduce a general evaluatior_ref that we can specialize for any sparse object once, and thus remove this copy-pasta thing...
+
+template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
+struct evaluator<Ref<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> >
+ : evaluator<SparseCompressedBase<Ref<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> > >
+{
+ typedef evaluator<SparseCompressedBase<Ref<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> > > Base;
+ typedef Ref<SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> XprType;
+ evaluator() : Base() {}
+ explicit evaluator(const XprType &mat) : Base(mat) {}
+};
+
+template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
+struct evaluator<Ref<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> >
+ : evaluator<SparseCompressedBase<Ref<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> > >
+{
+ typedef evaluator<SparseCompressedBase<Ref<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> > > Base;
+ typedef Ref<const SparseMatrix<MatScalar,MatOptions,MatIndex>, Options, StrideType> XprType;
+ evaluator() : Base() {}
+ explicit evaluator(const XprType &mat) : Base(mat) {}
+};
+
+template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
+struct evaluator<Ref<SparseVector<MatScalar,MatOptions,MatIndex>, Options, StrideType> >
+ : evaluator<SparseCompressedBase<Ref<SparseVector<MatScalar,MatOptions,MatIndex>, Options, StrideType> > >
+{
+ typedef evaluator<SparseCompressedBase<Ref<SparseVector<MatScalar,MatOptions,MatIndex>, Options, StrideType> > > Base;
+ typedef Ref<SparseVector<MatScalar,MatOptions,MatIndex>, Options, StrideType> XprType;
+ evaluator() : Base() {}
+ explicit evaluator(const XprType &mat) : Base(mat) {}
+};
+
+template<typename MatScalar, int MatOptions, typename MatIndex, int Options, typename StrideType>
+struct evaluator<Ref<const SparseVector<MatScalar,MatOptions,MatIndex>, Options, StrideType> >
+ : evaluator<SparseCompressedBase<Ref<const SparseVector<MatScalar,MatOptions,MatIndex>, Options, StrideType> > >
+{
+ typedef evaluator<SparseCompressedBase<Ref<const SparseVector<MatScalar,MatOptions,MatIndex>, Options, StrideType> > > Base;
+ typedef Ref<const SparseVector<MatScalar,MatOptions,MatIndex>, Options, StrideType> XprType;
+ evaluator() : Base() {}
+ explicit evaluator(const XprType &mat) : Base(mat) {}
+};
+
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_REF_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h
new file mode 100644
index 000000000..5ab64f1a8
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h
@@ -0,0 +1,656 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_SELFADJOINTVIEW_H
+#define EIGEN_SPARSE_SELFADJOINTVIEW_H
+
+namespace Eigen {
+
+/** \ingroup SparseCore_Module
+ * \class SparseSelfAdjointView
+ *
+ * \brief Pseudo expression to manipulate a triangular sparse matrix as a selfadjoint matrix.
+ *
+ * \param MatrixType the type of the dense matrix storing the coefficients
+ * \param Mode can be either \c #Lower or \c #Upper
+ *
+ * This class is an expression of a sefladjoint matrix from a triangular part of a matrix
+ * with given dense storage of the coefficients. It is the return type of MatrixBase::selfadjointView()
+ * and most of the time this is the only way that it is used.
+ *
+ * \sa SparseMatrixBase::selfadjointView()
+ */
+namespace internal {
+
+template<typename MatrixType, unsigned int Mode>
+struct traits<SparseSelfAdjointView<MatrixType,Mode> > : traits<MatrixType> {
+};
+
+template<int SrcMode,int DstMode,typename MatrixType,int DestOrder>
+void permute_symm_to_symm(const MatrixType& mat, SparseMatrix<typename MatrixType::Scalar,DestOrder,typename MatrixType::StorageIndex>& _dest, const typename MatrixType::StorageIndex* perm = 0);
+
+template<int Mode,typename MatrixType,int DestOrder>
+void permute_symm_to_fullsymm(const MatrixType& mat, SparseMatrix<typename MatrixType::Scalar,DestOrder,typename MatrixType::StorageIndex>& _dest, const typename MatrixType::StorageIndex* perm = 0);
+
+}
+
+template<typename MatrixType, unsigned int _Mode> class SparseSelfAdjointView
+ : public EigenBase<SparseSelfAdjointView<MatrixType,_Mode> >
+{
+ public:
+
+ enum {
+ Mode = _Mode,
+ TransposeMode = ((Mode & Upper) ? Lower : 0) | ((Mode & Lower) ? Upper : 0),
+ RowsAtCompileTime = internal::traits<SparseSelfAdjointView>::RowsAtCompileTime,
+ ColsAtCompileTime = internal::traits<SparseSelfAdjointView>::ColsAtCompileTime
+ };
+
+ typedef EigenBase<SparseSelfAdjointView> Base;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef Matrix<StorageIndex,Dynamic,1> VectorI;
+ typedef typename internal::ref_selector<MatrixType>::non_const_type MatrixTypeNested;
+ typedef typename internal::remove_all<MatrixTypeNested>::type _MatrixTypeNested;
+
+ explicit inline SparseSelfAdjointView(MatrixType& matrix) : m_matrix(matrix)
+ {
+ eigen_assert(rows()==cols() && "SelfAdjointView is only for squared matrices");
+ }
+
+ inline Index rows() const { return m_matrix.rows(); }
+ inline Index cols() const { return m_matrix.cols(); }
+
+ /** \internal \returns a reference to the nested matrix */
+ const _MatrixTypeNested& matrix() const { return m_matrix; }
+ typename internal::remove_reference<MatrixTypeNested>::type& matrix() { return m_matrix; }
+
+ /** \returns an expression of the matrix product between a sparse self-adjoint matrix \c *this and a sparse matrix \a rhs.
+ *
+ * Note that there is no algorithmic advantage of performing such a product compared to a general sparse-sparse matrix product.
+ * Indeed, the SparseSelfadjointView operand is first copied into a temporary SparseMatrix before computing the product.
+ */
+ template<typename OtherDerived>
+ Product<SparseSelfAdjointView, OtherDerived>
+ operator*(const SparseMatrixBase<OtherDerived>& rhs) const
+ {
+ return Product<SparseSelfAdjointView, OtherDerived>(*this, rhs.derived());
+ }
+
+ /** \returns an expression of the matrix product between a sparse matrix \a lhs and a sparse self-adjoint matrix \a rhs.
+ *
+ * Note that there is no algorithmic advantage of performing such a product compared to a general sparse-sparse matrix product.
+ * Indeed, the SparseSelfadjointView operand is first copied into a temporary SparseMatrix before computing the product.
+ */
+ template<typename OtherDerived> friend
+ Product<OtherDerived, SparseSelfAdjointView>
+ operator*(const SparseMatrixBase<OtherDerived>& lhs, const SparseSelfAdjointView& rhs)
+ {
+ return Product<OtherDerived, SparseSelfAdjointView>(lhs.derived(), rhs);
+ }
+
+ /** Efficient sparse self-adjoint matrix times dense vector/matrix product */
+ template<typename OtherDerived>
+ Product<SparseSelfAdjointView,OtherDerived>
+ operator*(const MatrixBase<OtherDerived>& rhs) const
+ {
+ return Product<SparseSelfAdjointView,OtherDerived>(*this, rhs.derived());
+ }
+
+ /** Efficient dense vector/matrix times sparse self-adjoint matrix product */
+ template<typename OtherDerived> friend
+ Product<OtherDerived,SparseSelfAdjointView>
+ operator*(const MatrixBase<OtherDerived>& lhs, const SparseSelfAdjointView& rhs)
+ {
+ return Product<OtherDerived,SparseSelfAdjointView>(lhs.derived(), rhs);
+ }
+
+ /** Perform a symmetric rank K update of the selfadjoint matrix \c *this:
+ * \f$ this = this + \alpha ( u u^* ) \f$ where \a u is a vector or matrix.
+ *
+ * \returns a reference to \c *this
+ *
+ * To perform \f$ this = this + \alpha ( u^* u ) \f$ you can simply
+ * call this function with u.adjoint().
+ */
+ template<typename DerivedU>
+ SparseSelfAdjointView& rankUpdate(const SparseMatrixBase<DerivedU>& u, const Scalar& alpha = Scalar(1));
+
+ /** \returns an expression of P H P^-1 */
+ // TODO implement twists in a more evaluator friendly fashion
+ SparseSymmetricPermutationProduct<_MatrixTypeNested,Mode> twistedBy(const PermutationMatrix<Dynamic,Dynamic,StorageIndex>& perm) const
+ {
+ return SparseSymmetricPermutationProduct<_MatrixTypeNested,Mode>(m_matrix, perm);
+ }
+
+ template<typename SrcMatrixType,int SrcMode>
+ SparseSelfAdjointView& operator=(const SparseSymmetricPermutationProduct<SrcMatrixType,SrcMode>& permutedMatrix)
+ {
+ internal::call_assignment_no_alias_no_transpose(*this, permutedMatrix);
+ return *this;
+ }
+
+ SparseSelfAdjointView& operator=(const SparseSelfAdjointView& src)
+ {
+ PermutationMatrix<Dynamic,Dynamic,StorageIndex> pnull;
+ return *this = src.twistedBy(pnull);
+ }
+
+ template<typename SrcMatrixType,unsigned int SrcMode>
+ SparseSelfAdjointView& operator=(const SparseSelfAdjointView<SrcMatrixType,SrcMode>& src)
+ {
+ PermutationMatrix<Dynamic,Dynamic,StorageIndex> pnull;
+ return *this = src.twistedBy(pnull);
+ }
+
+ void resize(Index rows, Index cols)
+ {
+ EIGEN_ONLY_USED_FOR_DEBUG(rows);
+ EIGEN_ONLY_USED_FOR_DEBUG(cols);
+ eigen_assert(rows == this->rows() && cols == this->cols()
+ && "SparseSelfadjointView::resize() does not actually allow to resize.");
+ }
+
+ protected:
+
+ MatrixTypeNested m_matrix;
+ //mutable VectorI m_countPerRow;
+ //mutable VectorI m_countPerCol;
+ private:
+ template<typename Dest> void evalTo(Dest &) const;
+};
+
+/***************************************************************************
+* Implementation of SparseMatrixBase methods
+***************************************************************************/
+
+template<typename Derived>
+template<unsigned int UpLo>
+typename SparseMatrixBase<Derived>::template ConstSelfAdjointViewReturnType<UpLo>::Type SparseMatrixBase<Derived>::selfadjointView() const
+{
+ return SparseSelfAdjointView<const Derived, UpLo>(derived());
+}
+
+template<typename Derived>
+template<unsigned int UpLo>
+typename SparseMatrixBase<Derived>::template SelfAdjointViewReturnType<UpLo>::Type SparseMatrixBase<Derived>::selfadjointView()
+{
+ return SparseSelfAdjointView<Derived, UpLo>(derived());
+}
+
+/***************************************************************************
+* Implementation of SparseSelfAdjointView methods
+***************************************************************************/
+
+template<typename MatrixType, unsigned int Mode>
+template<typename DerivedU>
+SparseSelfAdjointView<MatrixType,Mode>&
+SparseSelfAdjointView<MatrixType,Mode>::rankUpdate(const SparseMatrixBase<DerivedU>& u, const Scalar& alpha)
+{
+ SparseMatrix<Scalar,(MatrixType::Flags&RowMajorBit)?RowMajor:ColMajor> tmp = u * u.adjoint();
+ if(alpha==Scalar(0))
+ m_matrix = tmp.template triangularView<Mode>();
+ else
+ m_matrix += alpha * tmp.template triangularView<Mode>();
+
+ return *this;
+}
+
+namespace internal {
+
+// TODO currently a selfadjoint expression has the form SelfAdjointView<.,.>
+// in the future selfadjoint-ness should be defined by the expression traits
+// such that Transpose<SelfAdjointView<.,.> > is valid. (currently TriangularBase::transpose() is overloaded to make it work)
+template<typename MatrixType, unsigned int Mode>
+struct evaluator_traits<SparseSelfAdjointView<MatrixType,Mode> >
+{
+ typedef typename storage_kind_to_evaluator_kind<typename MatrixType::StorageKind>::Kind Kind;
+ typedef SparseSelfAdjointShape Shape;
+};
+
+struct SparseSelfAdjoint2Sparse {};
+
+template<> struct AssignmentKind<SparseShape,SparseSelfAdjointShape> { typedef SparseSelfAdjoint2Sparse Kind; };
+template<> struct AssignmentKind<SparseSelfAdjointShape,SparseShape> { typedef Sparse2Sparse Kind; };
+
+template< typename DstXprType, typename SrcXprType, typename Functor>
+struct Assignment<DstXprType, SrcXprType, Functor, SparseSelfAdjoint2Sparse>
+{
+ typedef typename DstXprType::StorageIndex StorageIndex;
+ typedef internal::assign_op<typename DstXprType::Scalar,typename SrcXprType::Scalar> AssignOpType;
+
+ template<typename DestScalar,int StorageOrder>
+ static void run(SparseMatrix<DestScalar,StorageOrder,StorageIndex> &dst, const SrcXprType &src, const AssignOpType&/*func*/)
+ {
+ internal::permute_symm_to_fullsymm<SrcXprType::Mode>(src.matrix(), dst);
+ }
+
+ // FIXME: the handling of += and -= in sparse matrices should be cleanup so that next two overloads could be reduced to:
+ template<typename DestScalar,int StorageOrder,typename AssignFunc>
+ static void run(SparseMatrix<DestScalar,StorageOrder,StorageIndex> &dst, const SrcXprType &src, const AssignFunc& func)
+ {
+ SparseMatrix<DestScalar,StorageOrder,StorageIndex> tmp(src.rows(),src.cols());
+ run(tmp, src, AssignOpType());
+ call_assignment_no_alias_no_transpose(dst, tmp, func);
+ }
+
+ template<typename DestScalar,int StorageOrder>
+ static void run(SparseMatrix<DestScalar,StorageOrder,StorageIndex> &dst, const SrcXprType &src,
+ const internal::add_assign_op<typename DstXprType::Scalar,typename SrcXprType::Scalar>& /* func */)
+ {
+ SparseMatrix<DestScalar,StorageOrder,StorageIndex> tmp(src.rows(),src.cols());
+ run(tmp, src, AssignOpType());
+ dst += tmp;
+ }
+
+ template<typename DestScalar,int StorageOrder>
+ static void run(SparseMatrix<DestScalar,StorageOrder,StorageIndex> &dst, const SrcXprType &src,
+ const internal::sub_assign_op<typename DstXprType::Scalar,typename SrcXprType::Scalar>& /* func */)
+ {
+ SparseMatrix<DestScalar,StorageOrder,StorageIndex> tmp(src.rows(),src.cols());
+ run(tmp, src, AssignOpType());
+ dst -= tmp;
+ }
+
+ template<typename DestScalar>
+ static void run(DynamicSparseMatrix<DestScalar,ColMajor,StorageIndex>& dst, const SrcXprType &src, const AssignOpType&/*func*/)
+ {
+ // TODO directly evaluate into dst;
+ SparseMatrix<DestScalar,ColMajor,StorageIndex> tmp(dst.rows(),dst.cols());
+ internal::permute_symm_to_fullsymm<SrcXprType::Mode>(src.matrix(), tmp);
+ dst = tmp;
+ }
+};
+
+} // end namespace internal
+
+/***************************************************************************
+* Implementation of sparse self-adjoint time dense matrix
+***************************************************************************/
+
+namespace internal {
+
+template<int Mode, typename SparseLhsType, typename DenseRhsType, typename DenseResType, typename AlphaType>
+inline void sparse_selfadjoint_time_dense_product(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const AlphaType& alpha)
+{
+ EIGEN_ONLY_USED_FOR_DEBUG(alpha);
+
+ typedef typename internal::nested_eval<SparseLhsType,DenseRhsType::MaxColsAtCompileTime>::type SparseLhsTypeNested;
+ typedef typename internal::remove_all<SparseLhsTypeNested>::type SparseLhsTypeNestedCleaned;
+ typedef evaluator<SparseLhsTypeNestedCleaned> LhsEval;
+ typedef typename LhsEval::InnerIterator LhsIterator;
+ typedef typename SparseLhsType::Scalar LhsScalar;
+
+ enum {
+ LhsIsRowMajor = (LhsEval::Flags&RowMajorBit)==RowMajorBit,
+ ProcessFirstHalf =
+ ((Mode&(Upper|Lower))==(Upper|Lower))
+ || ( (Mode&Upper) && !LhsIsRowMajor)
+ || ( (Mode&Lower) && LhsIsRowMajor),
+ ProcessSecondHalf = !ProcessFirstHalf
+ };
+
+ SparseLhsTypeNested lhs_nested(lhs);
+ LhsEval lhsEval(lhs_nested);
+
+ // work on one column at once
+ for (Index k=0; k<rhs.cols(); ++k)
+ {
+ for (Index j=0; j<lhs.outerSize(); ++j)
+ {
+ LhsIterator i(lhsEval,j);
+ // handle diagonal coeff
+ if (ProcessSecondHalf)
+ {
+ while (i && i.index()<j) ++i;
+ if(i && i.index()==j)
+ {
+ res(j,k) += alpha * i.value() * rhs(j,k);
+ ++i;
+ }
+ }
+
+ // premultiplied rhs for scatters
+ typename ScalarBinaryOpTraits<AlphaType, typename DenseRhsType::Scalar>::ReturnType rhs_j(alpha*rhs(j,k));
+ // accumulator for partial scalar product
+ typename DenseResType::Scalar res_j(0);
+ for(; (ProcessFirstHalf ? i && i.index() < j : i) ; ++i)
+ {
+ LhsScalar lhs_ij = i.value();
+ if(!LhsIsRowMajor) lhs_ij = numext::conj(lhs_ij);
+ res_j += lhs_ij * rhs(i.index(),k);
+ res(i.index(),k) += numext::conj(lhs_ij) * rhs_j;
+ }
+ res(j,k) += alpha * res_j;
+
+ // handle diagonal coeff
+ if (ProcessFirstHalf && i && (i.index()==j))
+ res(j,k) += alpha * i.value() * rhs(j,k);
+ }
+ }
+}
+
+
+template<typename LhsView, typename Rhs, int ProductType>
+struct generic_product_impl<LhsView, Rhs, SparseSelfAdjointShape, DenseShape, ProductType>
+: generic_product_impl_base<LhsView, Rhs, generic_product_impl<LhsView, Rhs, SparseSelfAdjointShape, DenseShape, ProductType> >
+{
+ template<typename Dest>
+ static void scaleAndAddTo(Dest& dst, const LhsView& lhsView, const Rhs& rhs, const typename Dest::Scalar& alpha)
+ {
+ typedef typename LhsView::_MatrixTypeNested Lhs;
+ typedef typename nested_eval<Lhs,Dynamic>::type LhsNested;
+ typedef typename nested_eval<Rhs,Dynamic>::type RhsNested;
+ LhsNested lhsNested(lhsView.matrix());
+ RhsNested rhsNested(rhs);
+
+ internal::sparse_selfadjoint_time_dense_product<LhsView::Mode>(lhsNested, rhsNested, dst, alpha);
+ }
+};
+
+template<typename Lhs, typename RhsView, int ProductType>
+struct generic_product_impl<Lhs, RhsView, DenseShape, SparseSelfAdjointShape, ProductType>
+: generic_product_impl_base<Lhs, RhsView, generic_product_impl<Lhs, RhsView, DenseShape, SparseSelfAdjointShape, ProductType> >
+{
+ template<typename Dest>
+ static void scaleAndAddTo(Dest& dst, const Lhs& lhs, const RhsView& rhsView, const typename Dest::Scalar& alpha)
+ {
+ typedef typename RhsView::_MatrixTypeNested Rhs;
+ typedef typename nested_eval<Lhs,Dynamic>::type LhsNested;
+ typedef typename nested_eval<Rhs,Dynamic>::type RhsNested;
+ LhsNested lhsNested(lhs);
+ RhsNested rhsNested(rhsView.matrix());
+
+ // transpose everything
+ Transpose<Dest> dstT(dst);
+ internal::sparse_selfadjoint_time_dense_product<RhsView::TransposeMode>(rhsNested.transpose(), lhsNested.transpose(), dstT, alpha);
+ }
+};
+
+// NOTE: these two overloads are needed to evaluate the sparse selfadjoint view into a full sparse matrix
+// TODO: maybe the copy could be handled by generic_product_impl so that these overloads would not be needed anymore
+
+template<typename LhsView, typename Rhs, int ProductTag>
+struct product_evaluator<Product<LhsView, Rhs, DefaultProduct>, ProductTag, SparseSelfAdjointShape, SparseShape>
+ : public evaluator<typename Product<typename Rhs::PlainObject, Rhs, DefaultProduct>::PlainObject>
+{
+ typedef Product<LhsView, Rhs, DefaultProduct> XprType;
+ typedef typename XprType::PlainObject PlainObject;
+ typedef evaluator<PlainObject> Base;
+
+ product_evaluator(const XprType& xpr)
+ : m_lhs(xpr.lhs()), m_result(xpr.rows(), xpr.cols())
+ {
+ ::new (static_cast<Base*>(this)) Base(m_result);
+ generic_product_impl<typename Rhs::PlainObject, Rhs, SparseShape, SparseShape, ProductTag>::evalTo(m_result, m_lhs, xpr.rhs());
+ }
+
+protected:
+ typename Rhs::PlainObject m_lhs;
+ PlainObject m_result;
+};
+
+template<typename Lhs, typename RhsView, int ProductTag>
+struct product_evaluator<Product<Lhs, RhsView, DefaultProduct>, ProductTag, SparseShape, SparseSelfAdjointShape>
+ : public evaluator<typename Product<Lhs, typename Lhs::PlainObject, DefaultProduct>::PlainObject>
+{
+ typedef Product<Lhs, RhsView, DefaultProduct> XprType;
+ typedef typename XprType::PlainObject PlainObject;
+ typedef evaluator<PlainObject> Base;
+
+ product_evaluator(const XprType& xpr)
+ : m_rhs(xpr.rhs()), m_result(xpr.rows(), xpr.cols())
+ {
+ ::new (static_cast<Base*>(this)) Base(m_result);
+ generic_product_impl<Lhs, typename Lhs::PlainObject, SparseShape, SparseShape, ProductTag>::evalTo(m_result, xpr.lhs(), m_rhs);
+ }
+
+protected:
+ typename Lhs::PlainObject m_rhs;
+ PlainObject m_result;
+};
+
+} // namespace internal
+
+/***************************************************************************
+* Implementation of symmetric copies and permutations
+***************************************************************************/
+namespace internal {
+
+template<int Mode,typename MatrixType,int DestOrder>
+void permute_symm_to_fullsymm(const MatrixType& mat, SparseMatrix<typename MatrixType::Scalar,DestOrder,typename MatrixType::StorageIndex>& _dest, const typename MatrixType::StorageIndex* perm)
+{
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef SparseMatrix<Scalar,DestOrder,StorageIndex> Dest;
+ typedef Matrix<StorageIndex,Dynamic,1> VectorI;
+ typedef evaluator<MatrixType> MatEval;
+ typedef typename evaluator<MatrixType>::InnerIterator MatIterator;
+
+ MatEval matEval(mat);
+ Dest& dest(_dest.derived());
+ enum {
+ StorageOrderMatch = int(Dest::IsRowMajor) == int(MatrixType::IsRowMajor)
+ };
+
+ Index size = mat.rows();
+ VectorI count;
+ count.resize(size);
+ count.setZero();
+ dest.resize(size,size);
+ for(Index j = 0; j<size; ++j)
+ {
+ Index jp = perm ? perm[j] : j;
+ for(MatIterator it(matEval,j); it; ++it)
+ {
+ Index i = it.index();
+ Index r = it.row();
+ Index c = it.col();
+ Index ip = perm ? perm[i] : i;
+ if(Mode==(Upper|Lower))
+ count[StorageOrderMatch ? jp : ip]++;
+ else if(r==c)
+ count[ip]++;
+ else if(( Mode==Lower && r>c) || ( Mode==Upper && r<c))
+ {
+ count[ip]++;
+ count[jp]++;
+ }
+ }
+ }
+ Index nnz = count.sum();
+
+ // reserve space
+ dest.resizeNonZeros(nnz);
+ dest.outerIndexPtr()[0] = 0;
+ for(Index j=0; j<size; ++j)
+ dest.outerIndexPtr()[j+1] = dest.outerIndexPtr()[j] + count[j];
+ for(Index j=0; j<size; ++j)
+ count[j] = dest.outerIndexPtr()[j];
+
+ // copy data
+ for(StorageIndex j = 0; j<size; ++j)
+ {
+ for(MatIterator it(matEval,j); it; ++it)
+ {
+ StorageIndex i = internal::convert_index<StorageIndex>(it.index());
+ Index r = it.row();
+ Index c = it.col();
+
+ StorageIndex jp = perm ? perm[j] : j;
+ StorageIndex ip = perm ? perm[i] : i;
+
+ if(Mode==(Upper|Lower))
+ {
+ Index k = count[StorageOrderMatch ? jp : ip]++;
+ dest.innerIndexPtr()[k] = StorageOrderMatch ? ip : jp;
+ dest.valuePtr()[k] = it.value();
+ }
+ else if(r==c)
+ {
+ Index k = count[ip]++;
+ dest.innerIndexPtr()[k] = ip;
+ dest.valuePtr()[k] = it.value();
+ }
+ else if(( (Mode&Lower)==Lower && r>c) || ( (Mode&Upper)==Upper && r<c))
+ {
+ if(!StorageOrderMatch)
+ std::swap(ip,jp);
+ Index k = count[jp]++;
+ dest.innerIndexPtr()[k] = ip;
+ dest.valuePtr()[k] = it.value();
+ k = count[ip]++;
+ dest.innerIndexPtr()[k] = jp;
+ dest.valuePtr()[k] = numext::conj(it.value());
+ }
+ }
+ }
+}
+
+template<int _SrcMode,int _DstMode,typename MatrixType,int DstOrder>
+void permute_symm_to_symm(const MatrixType& mat, SparseMatrix<typename MatrixType::Scalar,DstOrder,typename MatrixType::StorageIndex>& _dest, const typename MatrixType::StorageIndex* perm)
+{
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef typename MatrixType::Scalar Scalar;
+ SparseMatrix<Scalar,DstOrder,StorageIndex>& dest(_dest.derived());
+ typedef Matrix<StorageIndex,Dynamic,1> VectorI;
+ typedef evaluator<MatrixType> MatEval;
+ typedef typename evaluator<MatrixType>::InnerIterator MatIterator;
+
+ enum {
+ SrcOrder = MatrixType::IsRowMajor ? RowMajor : ColMajor,
+ StorageOrderMatch = int(SrcOrder) == int(DstOrder),
+ DstMode = DstOrder==RowMajor ? (_DstMode==Upper ? Lower : Upper) : _DstMode,
+ SrcMode = SrcOrder==RowMajor ? (_SrcMode==Upper ? Lower : Upper) : _SrcMode
+ };
+
+ MatEval matEval(mat);
+
+ Index size = mat.rows();
+ VectorI count(size);
+ count.setZero();
+ dest.resize(size,size);
+ for(StorageIndex j = 0; j<size; ++j)
+ {
+ StorageIndex jp = perm ? perm[j] : j;
+ for(MatIterator it(matEval,j); it; ++it)
+ {
+ StorageIndex i = it.index();
+ if((int(SrcMode)==int(Lower) && i<j) || (int(SrcMode)==int(Upper) && i>j))
+ continue;
+
+ StorageIndex ip = perm ? perm[i] : i;
+ count[int(DstMode)==int(Lower) ? (std::min)(ip,jp) : (std::max)(ip,jp)]++;
+ }
+ }
+ dest.outerIndexPtr()[0] = 0;
+ for(Index j=0; j<size; ++j)
+ dest.outerIndexPtr()[j+1] = dest.outerIndexPtr()[j] + count[j];
+ dest.resizeNonZeros(dest.outerIndexPtr()[size]);
+ for(Index j=0; j<size; ++j)
+ count[j] = dest.outerIndexPtr()[j];
+
+ for(StorageIndex j = 0; j<size; ++j)
+ {
+
+ for(MatIterator it(matEval,j); it; ++it)
+ {
+ StorageIndex i = it.index();
+ if((int(SrcMode)==int(Lower) && i<j) || (int(SrcMode)==int(Upper) && i>j))
+ continue;
+
+ StorageIndex jp = perm ? perm[j] : j;
+ StorageIndex ip = perm? perm[i] : i;
+
+ Index k = count[int(DstMode)==int(Lower) ? (std::min)(ip,jp) : (std::max)(ip,jp)]++;
+ dest.innerIndexPtr()[k] = int(DstMode)==int(Lower) ? (std::max)(ip,jp) : (std::min)(ip,jp);
+
+ if(!StorageOrderMatch) std::swap(ip,jp);
+ if( ((int(DstMode)==int(Lower) && ip<jp) || (int(DstMode)==int(Upper) && ip>jp)))
+ dest.valuePtr()[k] = numext::conj(it.value());
+ else
+ dest.valuePtr()[k] = it.value();
+ }
+ }
+}
+
+}
+
+// TODO implement twists in a more evaluator friendly fashion
+
+namespace internal {
+
+template<typename MatrixType, int Mode>
+struct traits<SparseSymmetricPermutationProduct<MatrixType,Mode> > : traits<MatrixType> {
+};
+
+}
+
+template<typename MatrixType,int Mode>
+class SparseSymmetricPermutationProduct
+ : public EigenBase<SparseSymmetricPermutationProduct<MatrixType,Mode> >
+{
+ public:
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ enum {
+ RowsAtCompileTime = internal::traits<SparseSymmetricPermutationProduct>::RowsAtCompileTime,
+ ColsAtCompileTime = internal::traits<SparseSymmetricPermutationProduct>::ColsAtCompileTime
+ };
+ protected:
+ typedef PermutationMatrix<Dynamic,Dynamic,StorageIndex> Perm;
+ public:
+ typedef Matrix<StorageIndex,Dynamic,1> VectorI;
+ typedef typename MatrixType::Nested MatrixTypeNested;
+ typedef typename internal::remove_all<MatrixTypeNested>::type NestedExpression;
+
+ SparseSymmetricPermutationProduct(const MatrixType& mat, const Perm& perm)
+ : m_matrix(mat), m_perm(perm)
+ {}
+
+ inline Index rows() const { return m_matrix.rows(); }
+ inline Index cols() const { return m_matrix.cols(); }
+
+ const NestedExpression& matrix() const { return m_matrix; }
+ const Perm& perm() const { return m_perm; }
+
+ protected:
+ MatrixTypeNested m_matrix;
+ const Perm& m_perm;
+
+};
+
+namespace internal {
+
+template<typename DstXprType, typename MatrixType, int Mode, typename Scalar>
+struct Assignment<DstXprType, SparseSymmetricPermutationProduct<MatrixType,Mode>, internal::assign_op<Scalar,typename MatrixType::Scalar>, Sparse2Sparse>
+{
+ typedef SparseSymmetricPermutationProduct<MatrixType,Mode> SrcXprType;
+ typedef typename DstXprType::StorageIndex DstIndex;
+ template<int Options>
+ static void run(SparseMatrix<Scalar,Options,DstIndex> &dst, const SrcXprType &src, const internal::assign_op<Scalar,typename MatrixType::Scalar> &)
+ {
+ // internal::permute_symm_to_fullsymm<Mode>(m_matrix,_dest,m_perm.indices().data());
+ SparseMatrix<Scalar,(Options&RowMajor)==RowMajor ? ColMajor : RowMajor, DstIndex> tmp;
+ internal::permute_symm_to_fullsymm<Mode>(src.matrix(),tmp,src.perm().indices().data());
+ dst = tmp;
+ }
+
+ template<typename DestType,unsigned int DestMode>
+ static void run(SparseSelfAdjointView<DestType,DestMode>& dst, const SrcXprType &src, const internal::assign_op<Scalar,typename MatrixType::Scalar> &)
+ {
+ internal::permute_symm_to_symm<Mode,DestMode>(src.matrix(),dst.matrix(),src.perm().indices().data());
+ }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_SELFADJOINTVIEW_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseSolverBase.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseSolverBase.h
new file mode 100644
index 000000000..b4c9a422f
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseSolverBase.h
@@ -0,0 +1,124 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSESOLVERBASE_H
+#define EIGEN_SPARSESOLVERBASE_H
+
+namespace Eigen {
+
+namespace internal {
+
+ /** \internal
+ * Helper functions to solve with a sparse right-hand-side and result.
+ * The rhs is decomposed into small vertical panels which are solved through dense temporaries.
+ */
+template<typename Decomposition, typename Rhs, typename Dest>
+typename enable_if<Rhs::ColsAtCompileTime!=1 && Dest::ColsAtCompileTime!=1>::type
+solve_sparse_through_dense_panels(const Decomposition &dec, const Rhs& rhs, Dest &dest)
+{
+ EIGEN_STATIC_ASSERT((Dest::Flags&RowMajorBit)==0,THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES);
+ typedef typename Dest::Scalar DestScalar;
+ // we process the sparse rhs per block of NbColsAtOnce columns temporarily stored into a dense matrix.
+ static const Index NbColsAtOnce = 4;
+ Index rhsCols = rhs.cols();
+ Index size = rhs.rows();
+ // the temporary matrices do not need more columns than NbColsAtOnce:
+ Index tmpCols = (std::min)(rhsCols, NbColsAtOnce);
+ Eigen::Matrix<DestScalar,Dynamic,Dynamic> tmp(size,tmpCols);
+ Eigen::Matrix<DestScalar,Dynamic,Dynamic> tmpX(size,tmpCols);
+ for(Index k=0; k<rhsCols; k+=NbColsAtOnce)
+ {
+ Index actualCols = std::min<Index>(rhsCols-k, NbColsAtOnce);
+ tmp.leftCols(actualCols) = rhs.middleCols(k,actualCols);
+ tmpX.leftCols(actualCols) = dec.solve(tmp.leftCols(actualCols));
+ dest.middleCols(k,actualCols) = tmpX.leftCols(actualCols).sparseView();
+ }
+}
+
+// Overload for vector as rhs
+template<typename Decomposition, typename Rhs, typename Dest>
+typename enable_if<Rhs::ColsAtCompileTime==1 || Dest::ColsAtCompileTime==1>::type
+solve_sparse_through_dense_panels(const Decomposition &dec, const Rhs& rhs, Dest &dest)
+{
+ typedef typename Dest::Scalar DestScalar;
+ Index size = rhs.rows();
+ Eigen::Matrix<DestScalar,Dynamic,1> rhs_dense(rhs);
+ Eigen::Matrix<DestScalar,Dynamic,1> dest_dense(size);
+ dest_dense = dec.solve(rhs_dense);
+ dest = dest_dense.sparseView();
+}
+
+} // end namespace internal
+
+/** \class SparseSolverBase
+ * \ingroup SparseCore_Module
+ * \brief A base class for sparse solvers
+ *
+ * \tparam Derived the actual type of the solver.
+ *
+ */
+template<typename Derived>
+class SparseSolverBase : internal::noncopyable
+{
+ public:
+
+ /** Default constructor */
+ SparseSolverBase()
+ : m_isInitialized(false)
+ {}
+
+ ~SparseSolverBase()
+ {}
+
+ Derived& derived() { return *static_cast<Derived*>(this); }
+ const Derived& derived() const { return *static_cast<const Derived*>(this); }
+
+ /** \returns an expression of the solution x of \f$ A x = b \f$ using the current decomposition of A.
+ *
+ * \sa compute()
+ */
+ template<typename Rhs>
+ inline const Solve<Derived, Rhs>
+ solve(const MatrixBase<Rhs>& b) const
+ {
+ eigen_assert(m_isInitialized && "Solver is not initialized.");
+ eigen_assert(derived().rows()==b.rows() && "solve(): invalid number of rows of the right hand side matrix b");
+ return Solve<Derived, Rhs>(derived(), b.derived());
+ }
+
+ /** \returns an expression of the solution x of \f$ A x = b \f$ using the current decomposition of A.
+ *
+ * \sa compute()
+ */
+ template<typename Rhs>
+ inline const Solve<Derived, Rhs>
+ solve(const SparseMatrixBase<Rhs>& b) const
+ {
+ eigen_assert(m_isInitialized && "Solver is not initialized.");
+ eigen_assert(derived().rows()==b.rows() && "solve(): invalid number of rows of the right hand side matrix b");
+ return Solve<Derived, Rhs>(derived(), b.derived());
+ }
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** \internal default implementation of solving with a sparse rhs */
+ template<typename Rhs,typename Dest>
+ void _solve_impl(const SparseMatrixBase<Rhs> &b, SparseMatrixBase<Dest> &dest) const
+ {
+ internal::solve_sparse_through_dense_panels(derived(), b.derived(), dest.derived());
+ }
+ #endif // EIGEN_PARSED_BY_DOXYGEN
+
+ protected:
+
+ mutable bool m_isInitialized;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSESOLVERBASE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
new file mode 100644
index 000000000..21c419002
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
@@ -0,0 +1,198 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSESPARSEPRODUCTWITHPRUNING_H
+#define EIGEN_SPARSESPARSEPRODUCTWITHPRUNING_H
+
+namespace Eigen {
+
+namespace internal {
+
+
+// perform a pseudo in-place sparse * sparse product assuming all matrices are col major
+template<typename Lhs, typename Rhs, typename ResultType>
+static void sparse_sparse_product_with_pruning_impl(const Lhs& lhs, const Rhs& rhs, ResultType& res, const typename ResultType::RealScalar& tolerance)
+{
+ // return sparse_sparse_product_with_pruning_impl2(lhs,rhs,res);
+
+ typedef typename remove_all<Lhs>::type::Scalar Scalar;
+ typedef typename remove_all<Lhs>::type::StorageIndex StorageIndex;
+
+ // make sure to call innerSize/outerSize since we fake the storage order.
+ Index rows = lhs.innerSize();
+ Index cols = rhs.outerSize();
+ //Index size = lhs.outerSize();
+ eigen_assert(lhs.outerSize() == rhs.innerSize());
+
+ // allocate a temporary buffer
+ AmbiVector<Scalar,StorageIndex> tempVector(rows);
+
+ // mimics a resizeByInnerOuter:
+ if(ResultType::IsRowMajor)
+ res.resize(cols, rows);
+ else
+ res.resize(rows, cols);
+
+ evaluator<Lhs> lhsEval(lhs);
+ evaluator<Rhs> rhsEval(rhs);
+
+ // estimate the number of non zero entries
+ // given a rhs column containing Y non zeros, we assume that the respective Y columns
+ // of the lhs differs in average of one non zeros, thus the number of non zeros for
+ // the product of a rhs column with the lhs is X+Y where X is the average number of non zero
+ // per column of the lhs.
+ // Therefore, we have nnz(lhs*rhs) = nnz(lhs) + nnz(rhs)
+ Index estimated_nnz_prod = lhsEval.nonZerosEstimate() + rhsEval.nonZerosEstimate();
+
+ res.reserve(estimated_nnz_prod);
+ double ratioColRes = double(estimated_nnz_prod)/(double(lhs.rows())*double(rhs.cols()));
+ for (Index j=0; j<cols; ++j)
+ {
+ // FIXME:
+ //double ratioColRes = (double(rhs.innerVector(j).nonZeros()) + double(lhs.nonZeros())/double(lhs.cols()))/double(lhs.rows());
+ // let's do a more accurate determination of the nnz ratio for the current column j of res
+ tempVector.init(ratioColRes);
+ tempVector.setZero();
+ for (typename evaluator<Rhs>::InnerIterator rhsIt(rhsEval, j); rhsIt; ++rhsIt)
+ {
+ // FIXME should be written like this: tmp += rhsIt.value() * lhs.col(rhsIt.index())
+ tempVector.restart();
+ Scalar x = rhsIt.value();
+ for (typename evaluator<Lhs>::InnerIterator lhsIt(lhsEval, rhsIt.index()); lhsIt; ++lhsIt)
+ {
+ tempVector.coeffRef(lhsIt.index()) += lhsIt.value() * x;
+ }
+ }
+ res.startVec(j);
+ for (typename AmbiVector<Scalar,StorageIndex>::Iterator it(tempVector,tolerance); it; ++it)
+ res.insertBackByOuterInner(j,it.index()) = it.value();
+ }
+ res.finalize();
+}
+
+template<typename Lhs, typename Rhs, typename ResultType,
+ int LhsStorageOrder = traits<Lhs>::Flags&RowMajorBit,
+ int RhsStorageOrder = traits<Rhs>::Flags&RowMajorBit,
+ int ResStorageOrder = traits<ResultType>::Flags&RowMajorBit>
+struct sparse_sparse_product_with_pruning_selector;
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor,ColMajor>
+{
+ typedef typename traits<typename remove_all<Lhs>::type>::Scalar Scalar;
+ typedef typename ResultType::RealScalar RealScalar;
+
+ static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, const RealScalar& tolerance)
+ {
+ typename remove_all<ResultType>::type _res(res.rows(), res.cols());
+ internal::sparse_sparse_product_with_pruning_impl<Lhs,Rhs,ResultType>(lhs, rhs, _res, tolerance);
+ res.swap(_res);
+ }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor,RowMajor>
+{
+ typedef typename ResultType::RealScalar RealScalar;
+ static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, const RealScalar& tolerance)
+ {
+ // we need a col-major matrix to hold the result
+ typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename ResultType::StorageIndex> SparseTemporaryType;
+ SparseTemporaryType _res(res.rows(), res.cols());
+ internal::sparse_sparse_product_with_pruning_impl<Lhs,Rhs,SparseTemporaryType>(lhs, rhs, _res, tolerance);
+ res = _res;
+ }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,RowMajor,RowMajor,RowMajor>
+{
+ typedef typename ResultType::RealScalar RealScalar;
+ static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, const RealScalar& tolerance)
+ {
+ // let's transpose the product to get a column x column product
+ typename remove_all<ResultType>::type _res(res.rows(), res.cols());
+ internal::sparse_sparse_product_with_pruning_impl<Rhs,Lhs,ResultType>(rhs, lhs, _res, tolerance);
+ res.swap(_res);
+ }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,RowMajor,RowMajor,ColMajor>
+{
+ typedef typename ResultType::RealScalar RealScalar;
+ static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, const RealScalar& tolerance)
+ {
+ typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename Lhs::StorageIndex> ColMajorMatrixLhs;
+ typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename Lhs::StorageIndex> ColMajorMatrixRhs;
+ ColMajorMatrixLhs colLhs(lhs);
+ ColMajorMatrixRhs colRhs(rhs);
+ internal::sparse_sparse_product_with_pruning_impl<ColMajorMatrixLhs,ColMajorMatrixRhs,ResultType>(colLhs, colRhs, res, tolerance);
+
+ // let's transpose the product to get a column x column product
+// typedef SparseMatrix<typename ResultType::Scalar> SparseTemporaryType;
+// SparseTemporaryType _res(res.cols(), res.rows());
+// sparse_sparse_product_with_pruning_impl<Rhs,Lhs,SparseTemporaryType>(rhs, lhs, _res);
+// res = _res.transpose();
+ }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,ColMajor,RowMajor,RowMajor>
+{
+ typedef typename ResultType::RealScalar RealScalar;
+ static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, const RealScalar& tolerance)
+ {
+ typedef SparseMatrix<typename ResultType::Scalar,RowMajor,typename Lhs::StorageIndex> RowMajorMatrixLhs;
+ RowMajorMatrixLhs rowLhs(lhs);
+ sparse_sparse_product_with_pruning_selector<RowMajorMatrixLhs,Rhs,ResultType,RowMajor,RowMajor>(rowLhs,rhs,res,tolerance);
+ }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,RowMajor,ColMajor,RowMajor>
+{
+ typedef typename ResultType::RealScalar RealScalar;
+ static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, const RealScalar& tolerance)
+ {
+ typedef SparseMatrix<typename ResultType::Scalar,RowMajor,typename Lhs::StorageIndex> RowMajorMatrixRhs;
+ RowMajorMatrixRhs rowRhs(rhs);
+ sparse_sparse_product_with_pruning_selector<Lhs,RowMajorMatrixRhs,ResultType,RowMajor,RowMajor,RowMajor>(lhs,rowRhs,res,tolerance);
+ }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,ColMajor,RowMajor,ColMajor>
+{
+ typedef typename ResultType::RealScalar RealScalar;
+ static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, const RealScalar& tolerance)
+ {
+ typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename Lhs::StorageIndex> ColMajorMatrixRhs;
+ ColMajorMatrixRhs colRhs(rhs);
+ internal::sparse_sparse_product_with_pruning_impl<Lhs,ColMajorMatrixRhs,ResultType>(lhs, colRhs, res, tolerance);
+ }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,RowMajor,ColMajor,ColMajor>
+{
+ typedef typename ResultType::RealScalar RealScalar;
+ static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, const RealScalar& tolerance)
+ {
+ typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename Lhs::StorageIndex> ColMajorMatrixLhs;
+ ColMajorMatrixLhs colLhs(lhs);
+ internal::sparse_sparse_product_with_pruning_impl<ColMajorMatrixLhs,Rhs,ResultType>(colLhs, rhs, res, tolerance);
+ }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSESPARSEPRODUCTWITHPRUNING_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseTranspose.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseTranspose.h
new file mode 100644
index 000000000..3757d4c6b
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseTranspose.h
@@ -0,0 +1,92 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSETRANSPOSE_H
+#define EIGEN_SPARSETRANSPOSE_H
+
+namespace Eigen {
+
+namespace internal {
+ template<typename MatrixType,int CompressedAccess=int(MatrixType::Flags&CompressedAccessBit)>
+ class SparseTransposeImpl
+ : public SparseMatrixBase<Transpose<MatrixType> >
+ {};
+
+ template<typename MatrixType>
+ class SparseTransposeImpl<MatrixType,CompressedAccessBit>
+ : public SparseCompressedBase<Transpose<MatrixType> >
+ {
+ typedef SparseCompressedBase<Transpose<MatrixType> > Base;
+ public:
+ using Base::derived;
+ typedef typename Base::Scalar Scalar;
+ typedef typename Base::StorageIndex StorageIndex;
+
+ inline Index nonZeros() const { return derived().nestedExpression().nonZeros(); }
+
+ inline const Scalar* valuePtr() const { return derived().nestedExpression().valuePtr(); }
+ inline const StorageIndex* innerIndexPtr() const { return derived().nestedExpression().innerIndexPtr(); }
+ inline const StorageIndex* outerIndexPtr() const { return derived().nestedExpression().outerIndexPtr(); }
+ inline const StorageIndex* innerNonZeroPtr() const { return derived().nestedExpression().innerNonZeroPtr(); }
+
+ inline Scalar* valuePtr() { return derived().nestedExpression().valuePtr(); }
+ inline StorageIndex* innerIndexPtr() { return derived().nestedExpression().innerIndexPtr(); }
+ inline StorageIndex* outerIndexPtr() { return derived().nestedExpression().outerIndexPtr(); }
+ inline StorageIndex* innerNonZeroPtr() { return derived().nestedExpression().innerNonZeroPtr(); }
+ };
+}
+
+template<typename MatrixType> class TransposeImpl<MatrixType,Sparse>
+ : public internal::SparseTransposeImpl<MatrixType>
+{
+ protected:
+ typedef internal::SparseTransposeImpl<MatrixType> Base;
+};
+
+namespace internal {
+
+template<typename ArgType>
+struct unary_evaluator<Transpose<ArgType>, IteratorBased>
+ : public evaluator_base<Transpose<ArgType> >
+{
+ typedef typename evaluator<ArgType>::InnerIterator EvalIterator;
+ public:
+ typedef Transpose<ArgType> XprType;
+
+ inline Index nonZerosEstimate() const {
+ return m_argImpl.nonZerosEstimate();
+ }
+
+ class InnerIterator : public EvalIterator
+ {
+ public:
+ EIGEN_STRONG_INLINE InnerIterator(const unary_evaluator& unaryOp, Index outer)
+ : EvalIterator(unaryOp.m_argImpl,outer)
+ {}
+
+ Index row() const { return EvalIterator::col(); }
+ Index col() const { return EvalIterator::row(); }
+ };
+
+ enum {
+ CoeffReadCost = evaluator<ArgType>::CoeffReadCost,
+ Flags = XprType::Flags
+ };
+
+ explicit unary_evaluator(const XprType& op) :m_argImpl(op.nestedExpression()) {}
+
+ protected:
+ evaluator<ArgType> m_argImpl;
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSETRANSPOSE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseTriangularView.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseTriangularView.h
new file mode 100644
index 000000000..9ac120266
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseTriangularView.h
@@ -0,0 +1,189 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_TRIANGULARVIEW_H
+#define EIGEN_SPARSE_TRIANGULARVIEW_H
+
+namespace Eigen {
+
+/** \ingroup SparseCore_Module
+ *
+ * \brief Base class for a triangular part in a \b sparse matrix
+ *
+ * This class is an abstract base class of class TriangularView, and objects of type TriangularViewImpl cannot be instantiated.
+ * It extends class TriangularView with additional methods which are available for sparse expressions only.
+ *
+ * \sa class TriangularView, SparseMatrixBase::triangularView()
+ */
+template<typename MatrixType, unsigned int Mode> class TriangularViewImpl<MatrixType,Mode,Sparse>
+ : public SparseMatrixBase<TriangularView<MatrixType,Mode> >
+{
+ enum { SkipFirst = ((Mode&Lower) && !(MatrixType::Flags&RowMajorBit))
+ || ((Mode&Upper) && (MatrixType::Flags&RowMajorBit)),
+ SkipLast = !SkipFirst,
+ SkipDiag = (Mode&ZeroDiag) ? 1 : 0,
+ HasUnitDiag = (Mode&UnitDiag) ? 1 : 0
+ };
+
+ typedef TriangularView<MatrixType,Mode> TriangularViewType;
+
+ protected:
+ // dummy solve function to make TriangularView happy.
+ void solve() const;
+
+ typedef SparseMatrixBase<TriangularViewType> Base;
+ public:
+
+ EIGEN_SPARSE_PUBLIC_INTERFACE(TriangularViewType)
+
+ typedef typename MatrixType::Nested MatrixTypeNested;
+ typedef typename internal::remove_reference<MatrixTypeNested>::type MatrixTypeNestedNonRef;
+ typedef typename internal::remove_all<MatrixTypeNested>::type MatrixTypeNestedCleaned;
+
+ template<typename RhsType, typename DstType>
+ EIGEN_DEVICE_FUNC
+ EIGEN_STRONG_INLINE void _solve_impl(const RhsType &rhs, DstType &dst) const {
+ if(!(internal::is_same<RhsType,DstType>::value && internal::extract_data(dst) == internal::extract_data(rhs)))
+ dst = rhs;
+ this->solveInPlace(dst);
+ }
+
+ /** Applies the inverse of \c *this to the dense vector or matrix \a other, "in-place" */
+ template<typename OtherDerived> void solveInPlace(MatrixBase<OtherDerived>& other) const;
+
+ /** Applies the inverse of \c *this to the sparse vector or matrix \a other, "in-place" */
+ template<typename OtherDerived> void solveInPlace(SparseMatrixBase<OtherDerived>& other) const;
+
+};
+
+namespace internal {
+
+template<typename ArgType, unsigned int Mode>
+struct unary_evaluator<TriangularView<ArgType,Mode>, IteratorBased>
+ : evaluator_base<TriangularView<ArgType,Mode> >
+{
+ typedef TriangularView<ArgType,Mode> XprType;
+
+protected:
+
+ typedef typename XprType::Scalar Scalar;
+ typedef typename XprType::StorageIndex StorageIndex;
+ typedef typename evaluator<ArgType>::InnerIterator EvalIterator;
+
+ enum { SkipFirst = ((Mode&Lower) && !(ArgType::Flags&RowMajorBit))
+ || ((Mode&Upper) && (ArgType::Flags&RowMajorBit)),
+ SkipLast = !SkipFirst,
+ SkipDiag = (Mode&ZeroDiag) ? 1 : 0,
+ HasUnitDiag = (Mode&UnitDiag) ? 1 : 0
+ };
+
+public:
+
+ enum {
+ CoeffReadCost = evaluator<ArgType>::CoeffReadCost,
+ Flags = XprType::Flags
+ };
+
+ explicit unary_evaluator(const XprType &xpr) : m_argImpl(xpr.nestedExpression()), m_arg(xpr.nestedExpression()) {}
+
+ inline Index nonZerosEstimate() const {
+ return m_argImpl.nonZerosEstimate();
+ }
+
+ class InnerIterator : public EvalIterator
+ {
+ typedef EvalIterator Base;
+ public:
+
+ EIGEN_STRONG_INLINE InnerIterator(const unary_evaluator& xprEval, Index outer)
+ : Base(xprEval.m_argImpl,outer), m_returnOne(false), m_containsDiag(Base::outer()<xprEval.m_arg.innerSize())
+ {
+ if(SkipFirst)
+ {
+ while((*this) && ((HasUnitDiag||SkipDiag) ? this->index()<=outer : this->index()<outer))
+ Base::operator++();
+ if(HasUnitDiag)
+ m_returnOne = m_containsDiag;
+ }
+ else if(HasUnitDiag && ((!Base::operator bool()) || Base::index()>=Base::outer()))
+ {
+ if((!SkipFirst) && Base::operator bool())
+ Base::operator++();
+ m_returnOne = m_containsDiag;
+ }
+ }
+
+ EIGEN_STRONG_INLINE InnerIterator& operator++()
+ {
+ if(HasUnitDiag && m_returnOne)
+ m_returnOne = false;
+ else
+ {
+ Base::operator++();
+ if(HasUnitDiag && (!SkipFirst) && ((!Base::operator bool()) || Base::index()>=Base::outer()))
+ {
+ if((!SkipFirst) && Base::operator bool())
+ Base::operator++();
+ m_returnOne = m_containsDiag;
+ }
+ }
+ return *this;
+ }
+
+ EIGEN_STRONG_INLINE operator bool() const
+ {
+ if(HasUnitDiag && m_returnOne)
+ return true;
+ if(SkipFirst) return Base::operator bool();
+ else
+ {
+ if (SkipDiag) return (Base::operator bool() && this->index() < this->outer());
+ else return (Base::operator bool() && this->index() <= this->outer());
+ }
+ }
+
+// inline Index row() const { return (ArgType::Flags&RowMajorBit ? Base::outer() : this->index()); }
+// inline Index col() const { return (ArgType::Flags&RowMajorBit ? this->index() : Base::outer()); }
+ inline StorageIndex index() const
+ {
+ if(HasUnitDiag && m_returnOne) return internal::convert_index<StorageIndex>(Base::outer());
+ else return Base::index();
+ }
+ inline Scalar value() const
+ {
+ if(HasUnitDiag && m_returnOne) return Scalar(1);
+ else return Base::value();
+ }
+
+ protected:
+ bool m_returnOne;
+ bool m_containsDiag;
+ private:
+ Scalar& valueRef();
+ };
+
+protected:
+ evaluator<ArgType> m_argImpl;
+ const ArgType& m_arg;
+};
+
+} // end namespace internal
+
+template<typename Derived>
+template<int Mode>
+inline const TriangularView<const Derived, Mode>
+SparseMatrixBase<Derived>::triangularView() const
+{
+ return TriangularView<const Derived, Mode>(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_TRIANGULARVIEW_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseUtil.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseUtil.h
new file mode 100644
index 000000000..74df0d496
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseUtil.h
@@ -0,0 +1,178 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEUTIL_H
+#define EIGEN_SPARSEUTIL_H
+
+namespace Eigen {
+
+#ifdef NDEBUG
+#define EIGEN_DBG_SPARSE(X)
+#else
+#define EIGEN_DBG_SPARSE(X) X
+#endif
+
+#define EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(Derived, Op) \
+template<typename OtherDerived> \
+EIGEN_STRONG_INLINE Derived& operator Op(const Eigen::SparseMatrixBase<OtherDerived>& other) \
+{ \
+ return Base::operator Op(other.derived()); \
+} \
+EIGEN_STRONG_INLINE Derived& operator Op(const Derived& other) \
+{ \
+ return Base::operator Op(other); \
+}
+
+#define EIGEN_SPARSE_INHERIT_SCALAR_ASSIGNMENT_OPERATOR(Derived, Op) \
+template<typename Other> \
+EIGEN_STRONG_INLINE Derived& operator Op(const Other& scalar) \
+{ \
+ return Base::operator Op(scalar); \
+}
+
+#define EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATORS(Derived) \
+EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(Derived, =)
+
+
+#define EIGEN_SPARSE_PUBLIC_INTERFACE(Derived) \
+ EIGEN_GENERIC_PUBLIC_INTERFACE(Derived)
+
+
+const int CoherentAccessPattern = 0x1;
+const int InnerRandomAccessPattern = 0x2 | CoherentAccessPattern;
+const int OuterRandomAccessPattern = 0x4 | CoherentAccessPattern;
+const int RandomAccessPattern = 0x8 | OuterRandomAccessPattern | InnerRandomAccessPattern;
+
+template<typename _Scalar, int _Flags = 0, typename _StorageIndex = int> class SparseMatrix;
+template<typename _Scalar, int _Flags = 0, typename _StorageIndex = int> class DynamicSparseMatrix;
+template<typename _Scalar, int _Flags = 0, typename _StorageIndex = int> class SparseVector;
+template<typename _Scalar, int _Flags = 0, typename _StorageIndex = int> class MappedSparseMatrix;
+
+template<typename MatrixType, unsigned int UpLo> class SparseSelfAdjointView;
+template<typename Lhs, typename Rhs> class SparseDiagonalProduct;
+template<typename MatrixType> class SparseView;
+
+template<typename Lhs, typename Rhs> class SparseSparseProduct;
+template<typename Lhs, typename Rhs> class SparseTimeDenseProduct;
+template<typename Lhs, typename Rhs> class DenseTimeSparseProduct;
+template<typename Lhs, typename Rhs, bool Transpose> class SparseDenseOuterProduct;
+
+template<typename Lhs, typename Rhs> struct SparseSparseProductReturnType;
+template<typename Lhs, typename Rhs,
+ int InnerSize = EIGEN_SIZE_MIN_PREFER_FIXED(internal::traits<Lhs>::ColsAtCompileTime,internal::traits<Rhs>::RowsAtCompileTime)> struct DenseSparseProductReturnType;
+
+template<typename Lhs, typename Rhs,
+ int InnerSize = EIGEN_SIZE_MIN_PREFER_FIXED(internal::traits<Lhs>::ColsAtCompileTime,internal::traits<Rhs>::RowsAtCompileTime)> struct SparseDenseProductReturnType;
+template<typename MatrixType,int UpLo> class SparseSymmetricPermutationProduct;
+
+namespace internal {
+
+template<typename T,int Rows,int Cols,int Flags> struct sparse_eval;
+
+template<typename T> struct eval<T,Sparse>
+ : sparse_eval<T, traits<T>::RowsAtCompileTime,traits<T>::ColsAtCompileTime,traits<T>::Flags>
+{};
+
+template<typename T,int Cols,int Flags> struct sparse_eval<T,1,Cols,Flags> {
+ typedef typename traits<T>::Scalar _Scalar;
+ typedef typename traits<T>::StorageIndex _StorageIndex;
+ public:
+ typedef SparseVector<_Scalar, RowMajor, _StorageIndex> type;
+};
+
+template<typename T,int Rows,int Flags> struct sparse_eval<T,Rows,1,Flags> {
+ typedef typename traits<T>::Scalar _Scalar;
+ typedef typename traits<T>::StorageIndex _StorageIndex;
+ public:
+ typedef SparseVector<_Scalar, ColMajor, _StorageIndex> type;
+};
+
+// TODO this seems almost identical to plain_matrix_type<T, Sparse>
+template<typename T,int Rows,int Cols,int Flags> struct sparse_eval {
+ typedef typename traits<T>::Scalar _Scalar;
+ typedef typename traits<T>::StorageIndex _StorageIndex;
+ enum { _Options = ((Flags&RowMajorBit)==RowMajorBit) ? RowMajor : ColMajor };
+ public:
+ typedef SparseMatrix<_Scalar, _Options, _StorageIndex> type;
+};
+
+template<typename T,int Flags> struct sparse_eval<T,1,1,Flags> {
+ typedef typename traits<T>::Scalar _Scalar;
+ public:
+ typedef Matrix<_Scalar, 1, 1> type;
+};
+
+template<typename T> struct plain_matrix_type<T,Sparse>
+{
+ typedef typename traits<T>::Scalar _Scalar;
+ typedef typename traits<T>::StorageIndex _StorageIndex;
+ enum { _Options = ((evaluator<T>::Flags&RowMajorBit)==RowMajorBit) ? RowMajor : ColMajor };
+ public:
+ typedef SparseMatrix<_Scalar, _Options, _StorageIndex> type;
+};
+
+template<typename T>
+struct plain_object_eval<T,Sparse>
+ : sparse_eval<T, traits<T>::RowsAtCompileTime,traits<T>::ColsAtCompileTime, evaluator<T>::Flags>
+{};
+
+template<typename Decomposition, typename RhsType>
+struct solve_traits<Decomposition,RhsType,Sparse>
+{
+ typedef typename sparse_eval<RhsType, RhsType::RowsAtCompileTime, RhsType::ColsAtCompileTime,traits<RhsType>::Flags>::type PlainObject;
+};
+
+template<typename Derived>
+struct generic_xpr_base<Derived, MatrixXpr, Sparse>
+{
+ typedef SparseMatrixBase<Derived> type;
+};
+
+struct SparseTriangularShape { static std::string debugName() { return "SparseTriangularShape"; } };
+struct SparseSelfAdjointShape { static std::string debugName() { return "SparseSelfAdjointShape"; } };
+
+template<> struct glue_shapes<SparseShape,SelfAdjointShape> { typedef SparseSelfAdjointShape type; };
+template<> struct glue_shapes<SparseShape,TriangularShape > { typedef SparseTriangularShape type; };
+
+} // end namespace internal
+
+/** \ingroup SparseCore_Module
+ *
+ * \class Triplet
+ *
+ * \brief A small structure to hold a non zero as a triplet (i,j,value).
+ *
+ * \sa SparseMatrix::setFromTriplets()
+ */
+template<typename Scalar, typename StorageIndex=typename SparseMatrix<Scalar>::StorageIndex >
+class Triplet
+{
+public:
+ Triplet() : m_row(0), m_col(0), m_value(0) {}
+
+ Triplet(const StorageIndex& i, const StorageIndex& j, const Scalar& v = Scalar(0))
+ : m_row(i), m_col(j), m_value(v)
+ {}
+
+ /** \returns the row index of the element */
+ const StorageIndex& row() const { return m_row; }
+
+ /** \returns the column index of the element */
+ const StorageIndex& col() const { return m_col; }
+
+ /** \returns the value of the element */
+ const Scalar& value() const { return m_value; }
+protected:
+ StorageIndex m_row, m_col;
+ Scalar m_value;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEUTIL_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseVector.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseVector.h
new file mode 100644
index 000000000..19b0fbc9d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseVector.h
@@ -0,0 +1,478 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEVECTOR_H
+#define EIGEN_SPARSEVECTOR_H
+
+namespace Eigen {
+
+/** \ingroup SparseCore_Module
+ * \class SparseVector
+ *
+ * \brief a sparse vector class
+ *
+ * \tparam _Scalar the scalar type, i.e. the type of the coefficients
+ *
+ * See http://www.netlib.org/linalg/html_templates/node91.html for details on the storage scheme.
+ *
+ * This class can be extended with the help of the plugin mechanism described on the page
+ * \ref TopicCustomizing_Plugins by defining the preprocessor symbol \c EIGEN_SPARSEVECTOR_PLUGIN.
+ */
+
+namespace internal {
+template<typename _Scalar, int _Options, typename _StorageIndex>
+struct traits<SparseVector<_Scalar, _Options, _StorageIndex> >
+{
+ typedef _Scalar Scalar;
+ typedef _StorageIndex StorageIndex;
+ typedef Sparse StorageKind;
+ typedef MatrixXpr XprKind;
+ enum {
+ IsColVector = (_Options & RowMajorBit) ? 0 : 1,
+
+ RowsAtCompileTime = IsColVector ? Dynamic : 1,
+ ColsAtCompileTime = IsColVector ? 1 : Dynamic,
+ MaxRowsAtCompileTime = RowsAtCompileTime,
+ MaxColsAtCompileTime = ColsAtCompileTime,
+ Flags = _Options | NestByRefBit | LvalueBit | (IsColVector ? 0 : RowMajorBit) | CompressedAccessBit,
+ SupportedAccessPatterns = InnerRandomAccessPattern
+ };
+};
+
+// Sparse-Vector-Assignment kinds:
+enum {
+ SVA_RuntimeSwitch,
+ SVA_Inner,
+ SVA_Outer
+};
+
+template< typename Dest, typename Src,
+ int AssignmentKind = !bool(Src::IsVectorAtCompileTime) ? SVA_RuntimeSwitch
+ : Src::InnerSizeAtCompileTime==1 ? SVA_Outer
+ : SVA_Inner>
+struct sparse_vector_assign_selector;
+
+}
+
+template<typename _Scalar, int _Options, typename _StorageIndex>
+class SparseVector
+ : public SparseCompressedBase<SparseVector<_Scalar, _Options, _StorageIndex> >
+{
+ typedef SparseCompressedBase<SparseVector> Base;
+ using Base::convert_index;
+ public:
+ EIGEN_SPARSE_PUBLIC_INTERFACE(SparseVector)
+ EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(SparseVector, +=)
+ EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(SparseVector, -=)
+
+ typedef internal::CompressedStorage<Scalar,StorageIndex> Storage;
+ enum { IsColVector = internal::traits<SparseVector>::IsColVector };
+
+ enum {
+ Options = _Options
+ };
+
+ EIGEN_STRONG_INLINE Index rows() const { return IsColVector ? m_size : 1; }
+ EIGEN_STRONG_INLINE Index cols() const { return IsColVector ? 1 : m_size; }
+ EIGEN_STRONG_INLINE Index innerSize() const { return m_size; }
+ EIGEN_STRONG_INLINE Index outerSize() const { return 1; }
+
+ EIGEN_STRONG_INLINE const Scalar* valuePtr() const { return m_data.valuePtr(); }
+ EIGEN_STRONG_INLINE Scalar* valuePtr() { return m_data.valuePtr(); }
+
+ EIGEN_STRONG_INLINE const StorageIndex* innerIndexPtr() const { return m_data.indexPtr(); }
+ EIGEN_STRONG_INLINE StorageIndex* innerIndexPtr() { return m_data.indexPtr(); }
+
+ inline const StorageIndex* outerIndexPtr() const { return 0; }
+ inline StorageIndex* outerIndexPtr() { return 0; }
+ inline const StorageIndex* innerNonZeroPtr() const { return 0; }
+ inline StorageIndex* innerNonZeroPtr() { return 0; }
+
+ /** \internal */
+ inline Storage& data() { return m_data; }
+ /** \internal */
+ inline const Storage& data() const { return m_data; }
+
+ inline Scalar coeff(Index row, Index col) const
+ {
+ eigen_assert(IsColVector ? (col==0 && row>=0 && row<m_size) : (row==0 && col>=0 && col<m_size));
+ return coeff(IsColVector ? row : col);
+ }
+ inline Scalar coeff(Index i) const
+ {
+ eigen_assert(i>=0 && i<m_size);
+ return m_data.at(StorageIndex(i));
+ }
+
+ inline Scalar& coeffRef(Index row, Index col)
+ {
+ eigen_assert(IsColVector ? (col==0 && row>=0 && row<m_size) : (row==0 && col>=0 && col<m_size));
+ return coeffRef(IsColVector ? row : col);
+ }
+
+ /** \returns a reference to the coefficient value at given index \a i
+ * This operation involes a log(rho*size) binary search. If the coefficient does not
+ * exist yet, then a sorted insertion into a sequential buffer is performed.
+ *
+ * This insertion might be very costly if the number of nonzeros above \a i is large.
+ */
+ inline Scalar& coeffRef(Index i)
+ {
+ eigen_assert(i>=0 && i<m_size);
+
+ return m_data.atWithInsertion(StorageIndex(i));
+ }
+
+ public:
+
+ typedef typename Base::InnerIterator InnerIterator;
+ typedef typename Base::ReverseInnerIterator ReverseInnerIterator;
+
+ inline void setZero() { m_data.clear(); }
+
+ /** \returns the number of non zero coefficients */
+ inline Index nonZeros() const { return m_data.size(); }
+
+ inline void startVec(Index outer)
+ {
+ EIGEN_UNUSED_VARIABLE(outer);
+ eigen_assert(outer==0);
+ }
+
+ inline Scalar& insertBackByOuterInner(Index outer, Index inner)
+ {
+ EIGEN_UNUSED_VARIABLE(outer);
+ eigen_assert(outer==0);
+ return insertBack(inner);
+ }
+ inline Scalar& insertBack(Index i)
+ {
+ m_data.append(0, i);
+ return m_data.value(m_data.size()-1);
+ }
+
+ Scalar& insertBackByOuterInnerUnordered(Index outer, Index inner)
+ {
+ EIGEN_UNUSED_VARIABLE(outer);
+ eigen_assert(outer==0);
+ return insertBackUnordered(inner);
+ }
+ inline Scalar& insertBackUnordered(Index i)
+ {
+ m_data.append(0, i);
+ return m_data.value(m_data.size()-1);
+ }
+
+ inline Scalar& insert(Index row, Index col)
+ {
+ eigen_assert(IsColVector ? (col==0 && row>=0 && row<m_size) : (row==0 && col>=0 && col<m_size));
+
+ Index inner = IsColVector ? row : col;
+ Index outer = IsColVector ? col : row;
+ EIGEN_ONLY_USED_FOR_DEBUG(outer);
+ eigen_assert(outer==0);
+ return insert(inner);
+ }
+ Scalar& insert(Index i)
+ {
+ eigen_assert(i>=0 && i<m_size);
+
+ Index startId = 0;
+ Index p = Index(m_data.size()) - 1;
+ // TODO smart realloc
+ m_data.resize(p+2,1);
+
+ while ( (p >= startId) && (m_data.index(p) > i) )
+ {
+ m_data.index(p+1) = m_data.index(p);
+ m_data.value(p+1) = m_data.value(p);
+ --p;
+ }
+ m_data.index(p+1) = convert_index(i);
+ m_data.value(p+1) = 0;
+ return m_data.value(p+1);
+ }
+
+ /**
+ */
+ inline void reserve(Index reserveSize) { m_data.reserve(reserveSize); }
+
+
+ inline void finalize() {}
+
+ /** \copydoc SparseMatrix::prune(const Scalar&,const RealScalar&) */
+ void prune(const Scalar& reference, const RealScalar& epsilon = NumTraits<RealScalar>::dummy_precision())
+ {
+ m_data.prune(reference,epsilon);
+ }
+
+ /** Resizes the sparse vector to \a rows x \a cols
+ *
+ * This method is provided for compatibility with matrices.
+ * For a column vector, \a cols must be equal to 1.
+ * For a row vector, \a rows must be equal to 1.
+ *
+ * \sa resize(Index)
+ */
+ void resize(Index rows, Index cols)
+ {
+ eigen_assert((IsColVector ? cols : rows)==1 && "Outer dimension must equal 1");
+ resize(IsColVector ? rows : cols);
+ }
+
+ /** Resizes the sparse vector to \a newSize
+ * This method deletes all entries, thus leaving an empty sparse vector
+ *
+ * \sa conservativeResize(), setZero() */
+ void resize(Index newSize)
+ {
+ m_size = newSize;
+ m_data.clear();
+ }
+
+ /** Resizes the sparse vector to \a newSize, while leaving old values untouched.
+ *
+ * If the size of the vector is decreased, then the storage of the out-of bounds coefficients is kept and reserved.
+ * Call .data().squeeze() to free extra memory.
+ *
+ * \sa reserve(), setZero()
+ */
+ void conservativeResize(Index newSize)
+ {
+ if (newSize < m_size)
+ {
+ Index i = 0;
+ while (i<m_data.size() && m_data.index(i)<newSize) ++i;
+ m_data.resize(i);
+ }
+ m_size = newSize;
+ }
+
+ void resizeNonZeros(Index size) { m_data.resize(size); }
+
+ inline SparseVector() : m_size(0) { check_template_parameters(); resize(0); }
+
+ explicit inline SparseVector(Index size) : m_size(0) { check_template_parameters(); resize(size); }
+
+ inline SparseVector(Index rows, Index cols) : m_size(0) { check_template_parameters(); resize(rows,cols); }
+
+ template<typename OtherDerived>
+ inline SparseVector(const SparseMatrixBase<OtherDerived>& other)
+ : m_size(0)
+ {
+ #ifdef EIGEN_SPARSE_CREATE_TEMPORARY_PLUGIN
+ EIGEN_SPARSE_CREATE_TEMPORARY_PLUGIN
+ #endif
+ check_template_parameters();
+ *this = other.derived();
+ }
+
+ inline SparseVector(const SparseVector& other)
+ : Base(other), m_size(0)
+ {
+ check_template_parameters();
+ *this = other.derived();
+ }
+
+ /** Swaps the values of \c *this and \a other.
+ * Overloaded for performance: this version performs a \em shallow swap by swaping pointers and attributes only.
+ * \sa SparseMatrixBase::swap()
+ */
+ inline void swap(SparseVector& other)
+ {
+ std::swap(m_size, other.m_size);
+ m_data.swap(other.m_data);
+ }
+
+ template<int OtherOptions>
+ inline void swap(SparseMatrix<Scalar,OtherOptions,StorageIndex>& other)
+ {
+ eigen_assert(other.outerSize()==1);
+ std::swap(m_size, other.m_innerSize);
+ m_data.swap(other.m_data);
+ }
+
+ inline SparseVector& operator=(const SparseVector& other)
+ {
+ if (other.isRValue())
+ {
+ swap(other.const_cast_derived());
+ }
+ else
+ {
+ resize(other.size());
+ m_data = other.m_data;
+ }
+ return *this;
+ }
+
+ template<typename OtherDerived>
+ inline SparseVector& operator=(const SparseMatrixBase<OtherDerived>& other)
+ {
+ SparseVector tmp(other.size());
+ internal::sparse_vector_assign_selector<SparseVector,OtherDerived>::run(tmp,other.derived());
+ this->swap(tmp);
+ return *this;
+ }
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ template<typename Lhs, typename Rhs>
+ inline SparseVector& operator=(const SparseSparseProduct<Lhs,Rhs>& product)
+ {
+ return Base::operator=(product);
+ }
+ #endif
+
+ friend std::ostream & operator << (std::ostream & s, const SparseVector& m)
+ {
+ for (Index i=0; i<m.nonZeros(); ++i)
+ s << "(" << m.m_data.value(i) << "," << m.m_data.index(i) << ") ";
+ s << std::endl;
+ return s;
+ }
+
+ /** Destructor */
+ inline ~SparseVector() {}
+
+ /** Overloaded for performance */
+ Scalar sum() const;
+
+ public:
+
+ /** \internal \deprecated use setZero() and reserve() */
+ EIGEN_DEPRECATED void startFill(Index reserve)
+ {
+ setZero();
+ m_data.reserve(reserve);
+ }
+
+ /** \internal \deprecated use insertBack(Index,Index) */
+ EIGEN_DEPRECATED Scalar& fill(Index r, Index c)
+ {
+ eigen_assert(r==0 || c==0);
+ return fill(IsColVector ? r : c);
+ }
+
+ /** \internal \deprecated use insertBack(Index) */
+ EIGEN_DEPRECATED Scalar& fill(Index i)
+ {
+ m_data.append(0, i);
+ return m_data.value(m_data.size()-1);
+ }
+
+ /** \internal \deprecated use insert(Index,Index) */
+ EIGEN_DEPRECATED Scalar& fillrand(Index r, Index c)
+ {
+ eigen_assert(r==0 || c==0);
+ return fillrand(IsColVector ? r : c);
+ }
+
+ /** \internal \deprecated use insert(Index) */
+ EIGEN_DEPRECATED Scalar& fillrand(Index i)
+ {
+ return insert(i);
+ }
+
+ /** \internal \deprecated use finalize() */
+ EIGEN_DEPRECATED void endFill() {}
+
+ // These two functions were here in the 3.1 release, so let's keep them in case some code rely on them.
+ /** \internal \deprecated use data() */
+ EIGEN_DEPRECATED Storage& _data() { return m_data; }
+ /** \internal \deprecated use data() */
+ EIGEN_DEPRECATED const Storage& _data() const { return m_data; }
+
+# ifdef EIGEN_SPARSEVECTOR_PLUGIN
+# include EIGEN_SPARSEVECTOR_PLUGIN
+# endif
+
+protected:
+
+ static void check_template_parameters()
+ {
+ EIGEN_STATIC_ASSERT(NumTraits<StorageIndex>::IsSigned,THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE);
+ EIGEN_STATIC_ASSERT((_Options&(ColMajor|RowMajor))==Options,INVALID_MATRIX_TEMPLATE_PARAMETERS);
+ }
+
+ Storage m_data;
+ Index m_size;
+};
+
+namespace internal {
+
+template<typename _Scalar, int _Options, typename _Index>
+struct evaluator<SparseVector<_Scalar,_Options,_Index> >
+ : evaluator_base<SparseVector<_Scalar,_Options,_Index> >
+{
+ typedef SparseVector<_Scalar,_Options,_Index> SparseVectorType;
+ typedef evaluator_base<SparseVectorType> Base;
+ typedef typename SparseVectorType::InnerIterator InnerIterator;
+ typedef typename SparseVectorType::ReverseInnerIterator ReverseInnerIterator;
+
+ enum {
+ CoeffReadCost = NumTraits<_Scalar>::ReadCost,
+ Flags = SparseVectorType::Flags
+ };
+
+ evaluator() : Base() {}
+
+ explicit evaluator(const SparseVectorType &mat) : m_matrix(&mat)
+ {
+ EIGEN_INTERNAL_CHECK_COST_VALUE(CoeffReadCost);
+ }
+
+ inline Index nonZerosEstimate() const {
+ return m_matrix->nonZeros();
+ }
+
+ operator SparseVectorType&() { return m_matrix->const_cast_derived(); }
+ operator const SparseVectorType&() const { return *m_matrix; }
+
+ const SparseVectorType *m_matrix;
+};
+
+template< typename Dest, typename Src>
+struct sparse_vector_assign_selector<Dest,Src,SVA_Inner> {
+ static void run(Dest& dst, const Src& src) {
+ eigen_internal_assert(src.innerSize()==src.size());
+ typedef internal::evaluator<Src> SrcEvaluatorType;
+ SrcEvaluatorType srcEval(src);
+ for(typename SrcEvaluatorType::InnerIterator it(srcEval, 0); it; ++it)
+ dst.insert(it.index()) = it.value();
+ }
+};
+
+template< typename Dest, typename Src>
+struct sparse_vector_assign_selector<Dest,Src,SVA_Outer> {
+ static void run(Dest& dst, const Src& src) {
+ eigen_internal_assert(src.outerSize()==src.size());
+ typedef internal::evaluator<Src> SrcEvaluatorType;
+ SrcEvaluatorType srcEval(src);
+ for(Index i=0; i<src.size(); ++i)
+ {
+ typename SrcEvaluatorType::InnerIterator it(srcEval, i);
+ if(it)
+ dst.insert(i) = it.value();
+ }
+ }
+};
+
+template< typename Dest, typename Src>
+struct sparse_vector_assign_selector<Dest,Src,SVA_RuntimeSwitch> {
+ static void run(Dest& dst, const Src& src) {
+ if(src.outerSize()==1) sparse_vector_assign_selector<Dest,Src,SVA_Inner>::run(dst, src);
+ else sparse_vector_assign_selector<Dest,Src,SVA_Outer>::run(dst, src);
+ }
+};
+
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEVECTOR_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseView.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseView.h
new file mode 100644
index 000000000..7c4aea743
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/SparseView.h
@@ -0,0 +1,253 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010 Daniel Lowengrub <lowdanie@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEVIEW_H
+#define EIGEN_SPARSEVIEW_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename MatrixType>
+struct traits<SparseView<MatrixType> > : traits<MatrixType>
+{
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef Sparse StorageKind;
+ enum {
+ Flags = int(traits<MatrixType>::Flags) & (RowMajorBit)
+ };
+};
+
+} // end namespace internal
+
+/** \ingroup SparseCore_Module
+ * \class SparseView
+ *
+ * \brief Expression of a dense or sparse matrix with zero or too small values removed
+ *
+ * \tparam MatrixType the type of the object of which we are removing the small entries
+ *
+ * This class represents an expression of a given dense or sparse matrix with
+ * entries smaller than \c reference * \c epsilon are removed.
+ * It is the return type of MatrixBase::sparseView() and SparseMatrixBase::pruned()
+ * and most of the time this is the only way it is used.
+ *
+ * \sa MatrixBase::sparseView(), SparseMatrixBase::pruned()
+ */
+template<typename MatrixType>
+class SparseView : public SparseMatrixBase<SparseView<MatrixType> >
+{
+ typedef typename MatrixType::Nested MatrixTypeNested;
+ typedef typename internal::remove_all<MatrixTypeNested>::type _MatrixTypeNested;
+ typedef SparseMatrixBase<SparseView > Base;
+public:
+ EIGEN_SPARSE_PUBLIC_INTERFACE(SparseView)
+ typedef typename internal::remove_all<MatrixType>::type NestedExpression;
+
+ explicit SparseView(const MatrixType& mat, const Scalar& reference = Scalar(0),
+ const RealScalar &epsilon = NumTraits<Scalar>::dummy_precision())
+ : m_matrix(mat), m_reference(reference), m_epsilon(epsilon) {}
+
+ inline Index rows() const { return m_matrix.rows(); }
+ inline Index cols() const { return m_matrix.cols(); }
+
+ inline Index innerSize() const { return m_matrix.innerSize(); }
+ inline Index outerSize() const { return m_matrix.outerSize(); }
+
+ /** \returns the nested expression */
+ const typename internal::remove_all<MatrixTypeNested>::type&
+ nestedExpression() const { return m_matrix; }
+
+ Scalar reference() const { return m_reference; }
+ RealScalar epsilon() const { return m_epsilon; }
+
+protected:
+ MatrixTypeNested m_matrix;
+ Scalar m_reference;
+ RealScalar m_epsilon;
+};
+
+namespace internal {
+
+// TODO find a way to unify the two following variants
+// This is tricky because implementing an inner iterator on top of an IndexBased evaluator is
+// not easy because the evaluators do not expose the sizes of the underlying expression.
+
+template<typename ArgType>
+struct unary_evaluator<SparseView<ArgType>, IteratorBased>
+ : public evaluator_base<SparseView<ArgType> >
+{
+ typedef typename evaluator<ArgType>::InnerIterator EvalIterator;
+ public:
+ typedef SparseView<ArgType> XprType;
+
+ class InnerIterator : public EvalIterator
+ {
+ typedef typename XprType::Scalar Scalar;
+ public:
+
+ EIGEN_STRONG_INLINE InnerIterator(const unary_evaluator& sve, Index outer)
+ : EvalIterator(sve.m_argImpl,outer), m_view(sve.m_view)
+ {
+ incrementToNonZero();
+ }
+
+ EIGEN_STRONG_INLINE InnerIterator& operator++()
+ {
+ EvalIterator::operator++();
+ incrementToNonZero();
+ return *this;
+ }
+
+ using EvalIterator::value;
+
+ protected:
+ const XprType &m_view;
+
+ private:
+ void incrementToNonZero()
+ {
+ while((bool(*this)) && internal::isMuchSmallerThan(value(), m_view.reference(), m_view.epsilon()))
+ {
+ EvalIterator::operator++();
+ }
+ }
+ };
+
+ enum {
+ CoeffReadCost = evaluator<ArgType>::CoeffReadCost,
+ Flags = XprType::Flags
+ };
+
+ explicit unary_evaluator(const XprType& xpr) : m_argImpl(xpr.nestedExpression()), m_view(xpr) {}
+
+ protected:
+ evaluator<ArgType> m_argImpl;
+ const XprType &m_view;
+};
+
+template<typename ArgType>
+struct unary_evaluator<SparseView<ArgType>, IndexBased>
+ : public evaluator_base<SparseView<ArgType> >
+{
+ public:
+ typedef SparseView<ArgType> XprType;
+ protected:
+ enum { IsRowMajor = (XprType::Flags&RowMajorBit)==RowMajorBit };
+ typedef typename XprType::Scalar Scalar;
+ typedef typename XprType::StorageIndex StorageIndex;
+ public:
+
+ class InnerIterator
+ {
+ public:
+
+ EIGEN_STRONG_INLINE InnerIterator(const unary_evaluator& sve, Index outer)
+ : m_sve(sve), m_inner(0), m_outer(outer), m_end(sve.m_view.innerSize())
+ {
+ incrementToNonZero();
+ }
+
+ EIGEN_STRONG_INLINE InnerIterator& operator++()
+ {
+ m_inner++;
+ incrementToNonZero();
+ return *this;
+ }
+
+ EIGEN_STRONG_INLINE Scalar value() const
+ {
+ return (IsRowMajor) ? m_sve.m_argImpl.coeff(m_outer, m_inner)
+ : m_sve.m_argImpl.coeff(m_inner, m_outer);
+ }
+
+ EIGEN_STRONG_INLINE StorageIndex index() const { return m_inner; }
+ inline Index row() const { return IsRowMajor ? m_outer : index(); }
+ inline Index col() const { return IsRowMajor ? index() : m_outer; }
+
+ EIGEN_STRONG_INLINE operator bool() const { return m_inner < m_end && m_inner>=0; }
+
+ protected:
+ const unary_evaluator &m_sve;
+ Index m_inner;
+ const Index m_outer;
+ const Index m_end;
+
+ private:
+ void incrementToNonZero()
+ {
+ while((bool(*this)) && internal::isMuchSmallerThan(value(), m_sve.m_view.reference(), m_sve.m_view.epsilon()))
+ {
+ m_inner++;
+ }
+ }
+ };
+
+ enum {
+ CoeffReadCost = evaluator<ArgType>::CoeffReadCost,
+ Flags = XprType::Flags
+ };
+
+ explicit unary_evaluator(const XprType& xpr) : m_argImpl(xpr.nestedExpression()), m_view(xpr) {}
+
+ protected:
+ evaluator<ArgType> m_argImpl;
+ const XprType &m_view;
+};
+
+} // end namespace internal
+
+/** \ingroup SparseCore_Module
+ *
+ * \returns a sparse expression of the dense expression \c *this with values smaller than
+ * \a reference * \a epsilon removed.
+ *
+ * This method is typically used when prototyping to convert a quickly assembled dense Matrix \c D to a SparseMatrix \c S:
+ * \code
+ * MatrixXd D(n,m);
+ * SparseMatrix<double> S;
+ * S = D.sparseView(); // suppress numerical zeros (exact)
+ * S = D.sparseView(reference);
+ * S = D.sparseView(reference,epsilon);
+ * \endcode
+ * where \a reference is a meaningful non zero reference value,
+ * and \a epsilon is a tolerance factor defaulting to NumTraits<Scalar>::dummy_precision().
+ *
+ * \sa SparseMatrixBase::pruned(), class SparseView */
+template<typename Derived>
+const SparseView<Derived> MatrixBase<Derived>::sparseView(const Scalar& reference,
+ const typename NumTraits<Scalar>::Real& epsilon) const
+{
+ return SparseView<Derived>(derived(), reference, epsilon);
+}
+
+/** \returns an expression of \c *this with values smaller than
+ * \a reference * \a epsilon removed.
+ *
+ * This method is typically used in conjunction with the product of two sparse matrices
+ * to automatically prune the smallest values as follows:
+ * \code
+ * C = (A*B).pruned(); // suppress numerical zeros (exact)
+ * C = (A*B).pruned(ref);
+ * C = (A*B).pruned(ref,epsilon);
+ * \endcode
+ * where \c ref is a meaningful non zero reference value.
+ * */
+template<typename Derived>
+const SparseView<Derived>
+SparseMatrixBase<Derived>::pruned(const Scalar& reference,
+ const RealScalar& epsilon) const
+{
+ return SparseView<Derived>(derived(), reference, epsilon);
+}
+
+} // end namespace Eigen
+
+#endif
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/TriangularSolver.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/TriangularSolver.h
new file mode 100644
index 000000000..f9c56ba79
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseCore/TriangularSolver.h
@@ -0,0 +1,315 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSETRIANGULARSOLVER_H
+#define EIGEN_SPARSETRIANGULARSOLVER_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, int Mode,
+ int UpLo = (Mode & Lower)
+ ? Lower
+ : (Mode & Upper)
+ ? Upper
+ : -1,
+ int StorageOrder = int(traits<Lhs>::Flags) & RowMajorBit>
+struct sparse_solve_triangular_selector;
+
+// forward substitution, row-major
+template<typename Lhs, typename Rhs, int Mode>
+struct sparse_solve_triangular_selector<Lhs,Rhs,Mode,Lower,RowMajor>
+{
+ typedef typename Rhs::Scalar Scalar;
+ typedef evaluator<Lhs> LhsEval;
+ typedef typename evaluator<Lhs>::InnerIterator LhsIterator;
+ static void run(const Lhs& lhs, Rhs& other)
+ {
+ LhsEval lhsEval(lhs);
+ for(Index col=0 ; col<other.cols() ; ++col)
+ {
+ for(Index i=0; i<lhs.rows(); ++i)
+ {
+ Scalar tmp = other.coeff(i,col);
+ Scalar lastVal(0);
+ Index lastIndex = 0;
+ for(LhsIterator it(lhsEval, i); it; ++it)
+ {
+ lastVal = it.value();
+ lastIndex = it.index();
+ if(lastIndex==i)
+ break;
+ tmp -= lastVal * other.coeff(lastIndex,col);
+ }
+ if (Mode & UnitDiag)
+ other.coeffRef(i,col) = tmp;
+ else
+ {
+ eigen_assert(lastIndex==i);
+ other.coeffRef(i,col) = tmp/lastVal;
+ }
+ }
+ }
+ }
+};
+
+// backward substitution, row-major
+template<typename Lhs, typename Rhs, int Mode>
+struct sparse_solve_triangular_selector<Lhs,Rhs,Mode,Upper,RowMajor>
+{
+ typedef typename Rhs::Scalar Scalar;
+ typedef evaluator<Lhs> LhsEval;
+ typedef typename evaluator<Lhs>::InnerIterator LhsIterator;
+ static void run(const Lhs& lhs, Rhs& other)
+ {
+ LhsEval lhsEval(lhs);
+ for(Index col=0 ; col<other.cols() ; ++col)
+ {
+ for(Index i=lhs.rows()-1 ; i>=0 ; --i)
+ {
+ Scalar tmp = other.coeff(i,col);
+ Scalar l_ii(0);
+ LhsIterator it(lhsEval, i);
+ while(it && it.index()<i)
+ ++it;
+ if(!(Mode & UnitDiag))
+ {
+ eigen_assert(it && it.index()==i);
+ l_ii = it.value();
+ ++it;
+ }
+ else if (it && it.index() == i)
+ ++it;
+ for(; it; ++it)
+ {
+ tmp -= it.value() * other.coeff(it.index(),col);
+ }
+
+ if (Mode & UnitDiag) other.coeffRef(i,col) = tmp;
+ else other.coeffRef(i,col) = tmp/l_ii;
+ }
+ }
+ }
+};
+
+// forward substitution, col-major
+template<typename Lhs, typename Rhs, int Mode>
+struct sparse_solve_triangular_selector<Lhs,Rhs,Mode,Lower,ColMajor>
+{
+ typedef typename Rhs::Scalar Scalar;
+ typedef evaluator<Lhs> LhsEval;
+ typedef typename evaluator<Lhs>::InnerIterator LhsIterator;
+ static void run(const Lhs& lhs, Rhs& other)
+ {
+ LhsEval lhsEval(lhs);
+ for(Index col=0 ; col<other.cols() ; ++col)
+ {
+ for(Index i=0; i<lhs.cols(); ++i)
+ {
+ Scalar& tmp = other.coeffRef(i,col);
+ if (tmp!=Scalar(0)) // optimization when other is actually sparse
+ {
+ LhsIterator it(lhsEval, i);
+ while(it && it.index()<i)
+ ++it;
+ if(!(Mode & UnitDiag))
+ {
+ eigen_assert(it && it.index()==i);
+ tmp /= it.value();
+ }
+ if (it && it.index()==i)
+ ++it;
+ for(; it; ++it)
+ other.coeffRef(it.index(), col) -= tmp * it.value();
+ }
+ }
+ }
+ }
+};
+
+// backward substitution, col-major
+template<typename Lhs, typename Rhs, int Mode>
+struct sparse_solve_triangular_selector<Lhs,Rhs,Mode,Upper,ColMajor>
+{
+ typedef typename Rhs::Scalar Scalar;
+ typedef evaluator<Lhs> LhsEval;
+ typedef typename evaluator<Lhs>::InnerIterator LhsIterator;
+ static void run(const Lhs& lhs, Rhs& other)
+ {
+ LhsEval lhsEval(lhs);
+ for(Index col=0 ; col<other.cols() ; ++col)
+ {
+ for(Index i=lhs.cols()-1; i>=0; --i)
+ {
+ Scalar& tmp = other.coeffRef(i,col);
+ if (tmp!=Scalar(0)) // optimization when other is actually sparse
+ {
+ if(!(Mode & UnitDiag))
+ {
+ // TODO replace this by a binary search. make sure the binary search is safe for partially sorted elements
+ LhsIterator it(lhsEval, i);
+ while(it && it.index()!=i)
+ ++it;
+ eigen_assert(it && it.index()==i);
+ other.coeffRef(i,col) /= it.value();
+ }
+ LhsIterator it(lhsEval, i);
+ for(; it && it.index()<i; ++it)
+ other.coeffRef(it.index(), col) -= tmp * it.value();
+ }
+ }
+ }
+ }
+};
+
+} // end namespace internal
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+
+template<typename ExpressionType,unsigned int Mode>
+template<typename OtherDerived>
+void TriangularViewImpl<ExpressionType,Mode,Sparse>::solveInPlace(MatrixBase<OtherDerived>& other) const
+{
+ eigen_assert(derived().cols() == derived().rows() && derived().cols() == other.rows());
+ eigen_assert((!(Mode & ZeroDiag)) && bool(Mode & (Upper|Lower)));
+
+ enum { copy = internal::traits<OtherDerived>::Flags & RowMajorBit };
+
+ typedef typename internal::conditional<copy,
+ typename internal::plain_matrix_type_column_major<OtherDerived>::type, OtherDerived&>::type OtherCopy;
+ OtherCopy otherCopy(other.derived());
+
+ internal::sparse_solve_triangular_selector<ExpressionType, typename internal::remove_reference<OtherCopy>::type, Mode>::run(derived().nestedExpression(), otherCopy);
+
+ if (copy)
+ other = otherCopy;
+}
+#endif
+
+// pure sparse path
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, int Mode,
+ int UpLo = (Mode & Lower)
+ ? Lower
+ : (Mode & Upper)
+ ? Upper
+ : -1,
+ int StorageOrder = int(Lhs::Flags) & (RowMajorBit)>
+struct sparse_solve_triangular_sparse_selector;
+
+// forward substitution, col-major
+template<typename Lhs, typename Rhs, int Mode, int UpLo>
+struct sparse_solve_triangular_sparse_selector<Lhs,Rhs,Mode,UpLo,ColMajor>
+{
+ typedef typename Rhs::Scalar Scalar;
+ typedef typename promote_index_type<typename traits<Lhs>::StorageIndex,
+ typename traits<Rhs>::StorageIndex>::type StorageIndex;
+ static void run(const Lhs& lhs, Rhs& other)
+ {
+ const bool IsLower = (UpLo==Lower);
+ AmbiVector<Scalar,StorageIndex> tempVector(other.rows()*2);
+ tempVector.setBounds(0,other.rows());
+
+ Rhs res(other.rows(), other.cols());
+ res.reserve(other.nonZeros());
+
+ for(Index col=0 ; col<other.cols() ; ++col)
+ {
+ // FIXME estimate number of non zeros
+ tempVector.init(.99/*float(other.col(col).nonZeros())/float(other.rows())*/);
+ tempVector.setZero();
+ tempVector.restart();
+ for (typename Rhs::InnerIterator rhsIt(other, col); rhsIt; ++rhsIt)
+ {
+ tempVector.coeffRef(rhsIt.index()) = rhsIt.value();
+ }
+
+ for(Index i=IsLower?0:lhs.cols()-1;
+ IsLower?i<lhs.cols():i>=0;
+ i+=IsLower?1:-1)
+ {
+ tempVector.restart();
+ Scalar& ci = tempVector.coeffRef(i);
+ if (ci!=Scalar(0))
+ {
+ // find
+ typename Lhs::InnerIterator it(lhs, i);
+ if(!(Mode & UnitDiag))
+ {
+ if (IsLower)
+ {
+ eigen_assert(it.index()==i);
+ ci /= it.value();
+ }
+ else
+ ci /= lhs.coeff(i,i);
+ }
+ tempVector.restart();
+ if (IsLower)
+ {
+ if (it.index()==i)
+ ++it;
+ for(; it; ++it)
+ tempVector.coeffRef(it.index()) -= ci * it.value();
+ }
+ else
+ {
+ for(; it && it.index()<i; ++it)
+ tempVector.coeffRef(it.index()) -= ci * it.value();
+ }
+ }
+ }
+
+
+ Index count = 0;
+ // FIXME compute a reference value to filter zeros
+ for (typename AmbiVector<Scalar,StorageIndex>::Iterator it(tempVector/*,1e-12*/); it; ++it)
+ {
+ ++ count;
+// std::cerr << "fill " << it.index() << ", " << col << "\n";
+// std::cout << it.value() << " ";
+ // FIXME use insertBack
+ res.insert(it.index(), col) = it.value();
+ }
+// std::cout << "tempVector.nonZeros() == " << int(count) << " / " << (other.rows()) << "\n";
+ }
+ res.finalize();
+ other = res.markAsRValue();
+ }
+};
+
+} // end namespace internal
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+template<typename ExpressionType,unsigned int Mode>
+template<typename OtherDerived>
+void TriangularViewImpl<ExpressionType,Mode,Sparse>::solveInPlace(SparseMatrixBase<OtherDerived>& other) const
+{
+ eigen_assert(derived().cols() == derived().rows() && derived().cols() == other.rows());
+ eigen_assert( (!(Mode & ZeroDiag)) && bool(Mode & (Upper|Lower)));
+
+// enum { copy = internal::traits<OtherDerived>::Flags & RowMajorBit };
+
+// typedef typename internal::conditional<copy,
+// typename internal::plain_matrix_type_column_major<OtherDerived>::type, OtherDerived&>::type OtherCopy;
+// OtherCopy otherCopy(other.derived());
+
+ internal::sparse_solve_triangular_sparse_selector<ExpressionType, OtherDerived, Mode>::run(derived().nestedExpression(), other.derived());
+
+// if (copy)
+// other = otherCopy;
+}
+#endif
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSETRIANGULARSOLVER_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU.h
new file mode 100644
index 000000000..f883ab383
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU.h
@@ -0,0 +1,775 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2012-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+#ifndef EIGEN_SPARSE_LU_H
+#define EIGEN_SPARSE_LU_H
+
+namespace Eigen {
+
+template <typename _MatrixType, typename _OrderingType = COLAMDOrdering<typename _MatrixType::StorageIndex> > class SparseLU;
+template <typename MappedSparseMatrixType> struct SparseLUMatrixLReturnType;
+template <typename MatrixLType, typename MatrixUType> struct SparseLUMatrixUReturnType;
+
+/** \ingroup SparseLU_Module
+ * \class SparseLU
+ *
+ * \brief Sparse supernodal LU factorization for general matrices
+ *
+ * This class implements the supernodal LU factorization for general matrices.
+ * It uses the main techniques from the sequential SuperLU package
+ * (http://crd-legacy.lbl.gov/~xiaoye/SuperLU/). It handles transparently real
+ * and complex arithmetics with single and double precision, depending on the
+ * scalar type of your input matrix.
+ * The code has been optimized to provide BLAS-3 operations during supernode-panel updates.
+ * It benefits directly from the built-in high-performant Eigen BLAS routines.
+ * Moreover, when the size of a supernode is very small, the BLAS calls are avoided to
+ * enable a better optimization from the compiler. For best performance,
+ * you should compile it with NDEBUG flag to avoid the numerous bounds checking on vectors.
+ *
+ * An important parameter of this class is the ordering method. It is used to reorder the columns
+ * (and eventually the rows) of the matrix to reduce the number of new elements that are created during
+ * numerical factorization. The cheapest method available is COLAMD.
+ * See \link OrderingMethods_Module the OrderingMethods module \endlink for the list of
+ * built-in and external ordering methods.
+ *
+ * Simple example with key steps
+ * \code
+ * VectorXd x(n), b(n);
+ * SparseMatrix<double, ColMajor> A;
+ * SparseLU<SparseMatrix<scalar, ColMajor>, COLAMDOrdering<Index> > solver;
+ * // fill A and b;
+ * // Compute the ordering permutation vector from the structural pattern of A
+ * solver.analyzePattern(A);
+ * // Compute the numerical factorization
+ * solver.factorize(A);
+ * //Use the factors to solve the linear system
+ * x = solver.solve(b);
+ * \endcode
+ *
+ * \warning The input matrix A should be in a \b compressed and \b column-major form.
+ * Otherwise an expensive copy will be made. You can call the inexpensive makeCompressed() to get a compressed matrix.
+ *
+ * \note Unlike the initial SuperLU implementation, there is no step to equilibrate the matrix.
+ * For badly scaled matrices, this step can be useful to reduce the pivoting during factorization.
+ * If this is the case for your matrices, you can try the basic scaling method at
+ * "unsupported/Eigen/src/IterativeSolvers/Scaling.h"
+ *
+ * \tparam _MatrixType The type of the sparse matrix. It must be a column-major SparseMatrix<>
+ * \tparam _OrderingType The ordering method to use, either AMD, COLAMD or METIS. Default is COLMAD
+ *
+ * \implsparsesolverconcept
+ *
+ * \sa \ref TutorialSparseSolverConcept
+ * \sa \ref OrderingMethods_Module
+ */
+template <typename _MatrixType, typename _OrderingType>
+class SparseLU : public SparseSolverBase<SparseLU<_MatrixType,_OrderingType> >, public internal::SparseLUImpl<typename _MatrixType::Scalar, typename _MatrixType::StorageIndex>
+{
+ protected:
+ typedef SparseSolverBase<SparseLU<_MatrixType,_OrderingType> > APIBase;
+ using APIBase::m_isInitialized;
+ public:
+ using APIBase::_solve_impl;
+
+ typedef _MatrixType MatrixType;
+ typedef _OrderingType OrderingType;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef SparseMatrix<Scalar,ColMajor,StorageIndex> NCMatrix;
+ typedef internal::MappedSuperNodalMatrix<Scalar, StorageIndex> SCMatrix;
+ typedef Matrix<Scalar,Dynamic,1> ScalarVector;
+ typedef Matrix<StorageIndex,Dynamic,1> IndexVector;
+ typedef PermutationMatrix<Dynamic, Dynamic, StorageIndex> PermutationType;
+ typedef internal::SparseLUImpl<Scalar, StorageIndex> Base;
+
+ enum {
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+
+ public:
+ SparseLU():m_lastError(""),m_Ustore(0,0,0,0,0,0),m_symmetricmode(false),m_diagpivotthresh(1.0),m_detPermR(1)
+ {
+ initperfvalues();
+ }
+ explicit SparseLU(const MatrixType& matrix)
+ : m_lastError(""),m_Ustore(0,0,0,0,0,0),m_symmetricmode(false),m_diagpivotthresh(1.0),m_detPermR(1)
+ {
+ initperfvalues();
+ compute(matrix);
+ }
+
+ ~SparseLU()
+ {
+ // Free all explicit dynamic pointers
+ }
+
+ void analyzePattern (const MatrixType& matrix);
+ void factorize (const MatrixType& matrix);
+ void simplicialfactorize(const MatrixType& matrix);
+
+ /**
+ * Compute the symbolic and numeric factorization of the input sparse matrix.
+ * The input matrix should be in column-major storage.
+ */
+ void compute (const MatrixType& matrix)
+ {
+ // Analyze
+ analyzePattern(matrix);
+ //Factorize
+ factorize(matrix);
+ }
+
+ inline Index rows() const { return m_mat.rows(); }
+ inline Index cols() const { return m_mat.cols(); }
+ /** Indicate that the pattern of the input matrix is symmetric */
+ void isSymmetric(bool sym)
+ {
+ m_symmetricmode = sym;
+ }
+
+ /** \returns an expression of the matrix L, internally stored as supernodes
+ * The only operation available with this expression is the triangular solve
+ * \code
+ * y = b; matrixL().solveInPlace(y);
+ * \endcode
+ */
+ SparseLUMatrixLReturnType<SCMatrix> matrixL() const
+ {
+ return SparseLUMatrixLReturnType<SCMatrix>(m_Lstore);
+ }
+ /** \returns an expression of the matrix U,
+ * The only operation available with this expression is the triangular solve
+ * \code
+ * y = b; matrixU().solveInPlace(y);
+ * \endcode
+ */
+ SparseLUMatrixUReturnType<SCMatrix,MappedSparseMatrix<Scalar,ColMajor,StorageIndex> > matrixU() const
+ {
+ return SparseLUMatrixUReturnType<SCMatrix, MappedSparseMatrix<Scalar,ColMajor,StorageIndex> >(m_Lstore, m_Ustore);
+ }
+
+ /**
+ * \returns a reference to the row matrix permutation \f$ P_r \f$ such that \f$P_r A P_c^T = L U\f$
+ * \sa colsPermutation()
+ */
+ inline const PermutationType& rowsPermutation() const
+ {
+ return m_perm_r;
+ }
+ /**
+ * \returns a reference to the column matrix permutation\f$ P_c^T \f$ such that \f$P_r A P_c^T = L U\f$
+ * \sa rowsPermutation()
+ */
+ inline const PermutationType& colsPermutation() const
+ {
+ return m_perm_c;
+ }
+ /** Set the threshold used for a diagonal entry to be an acceptable pivot. */
+ void setPivotThreshold(const RealScalar& thresh)
+ {
+ m_diagpivotthresh = thresh;
+ }
+
+#ifdef EIGEN_PARSED_BY_DOXYGEN
+ /** \returns the solution X of \f$ A X = B \f$ using the current decomposition of A.
+ *
+ * \warning the destination matrix X in X = this->solve(B) must be colmun-major.
+ *
+ * \sa compute()
+ */
+ template<typename Rhs>
+ inline const Solve<SparseLU, Rhs> solve(const MatrixBase<Rhs>& B) const;
+#endif // EIGEN_PARSED_BY_DOXYGEN
+
+ /** \brief Reports whether previous computation was successful.
+ *
+ * \returns \c Success if computation was succesful,
+ * \c NumericalIssue if the LU factorization reports a problem, zero diagonal for instance
+ * \c InvalidInput if the input matrix is invalid
+ *
+ * \sa iparm()
+ */
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+ return m_info;
+ }
+
+ /**
+ * \returns A string describing the type of error
+ */
+ std::string lastErrorMessage() const
+ {
+ return m_lastError;
+ }
+
+ template<typename Rhs, typename Dest>
+ bool _solve_impl(const MatrixBase<Rhs> &B, MatrixBase<Dest> &X_base) const
+ {
+ Dest& X(X_base.derived());
+ eigen_assert(m_factorizationIsOk && "The matrix should be factorized first");
+ EIGEN_STATIC_ASSERT((Dest::Flags&RowMajorBit)==0,
+ THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES);
+
+ // Permute the right hand side to form X = Pr*B
+ // on return, X is overwritten by the computed solution
+ X.resize(B.rows(),B.cols());
+
+ // this ugly const_cast_derived() helps to detect aliasing when applying the permutations
+ for(Index j = 0; j < B.cols(); ++j)
+ X.col(j) = rowsPermutation() * B.const_cast_derived().col(j);
+
+ //Forward substitution with L
+ this->matrixL().solveInPlace(X);
+ this->matrixU().solveInPlace(X);
+
+ // Permute back the solution
+ for (Index j = 0; j < B.cols(); ++j)
+ X.col(j) = colsPermutation().inverse() * X.col(j);
+
+ return true;
+ }
+
+ /**
+ * \returns the absolute value of the determinant of the matrix of which
+ * *this is the QR decomposition.
+ *
+ * \warning a determinant can be very big or small, so for matrices
+ * of large enough dimension, there is a risk of overflow/underflow.
+ * One way to work around that is to use logAbsDeterminant() instead.
+ *
+ * \sa logAbsDeterminant(), signDeterminant()
+ */
+ Scalar absDeterminant()
+ {
+ using std::abs;
+ eigen_assert(m_factorizationIsOk && "The matrix should be factorized first.");
+ // Initialize with the determinant of the row matrix
+ Scalar det = Scalar(1.);
+ // Note that the diagonal blocks of U are stored in supernodes,
+ // which are available in the L part :)
+ for (Index j = 0; j < this->cols(); ++j)
+ {
+ for (typename SCMatrix::InnerIterator it(m_Lstore, j); it; ++it)
+ {
+ if(it.index() == j)
+ {
+ det *= abs(it.value());
+ break;
+ }
+ }
+ }
+ return det;
+ }
+
+ /** \returns the natural log of the absolute value of the determinant of the matrix
+ * of which **this is the QR decomposition
+ *
+ * \note This method is useful to work around the risk of overflow/underflow that's
+ * inherent to the determinant computation.
+ *
+ * \sa absDeterminant(), signDeterminant()
+ */
+ Scalar logAbsDeterminant() const
+ {
+ using std::log;
+ using std::abs;
+
+ eigen_assert(m_factorizationIsOk && "The matrix should be factorized first.");
+ Scalar det = Scalar(0.);
+ for (Index j = 0; j < this->cols(); ++j)
+ {
+ for (typename SCMatrix::InnerIterator it(m_Lstore, j); it; ++it)
+ {
+ if(it.row() < j) continue;
+ if(it.row() == j)
+ {
+ det += log(abs(it.value()));
+ break;
+ }
+ }
+ }
+ return det;
+ }
+
+ /** \returns A number representing the sign of the determinant
+ *
+ * \sa absDeterminant(), logAbsDeterminant()
+ */
+ Scalar signDeterminant()
+ {
+ eigen_assert(m_factorizationIsOk && "The matrix should be factorized first.");
+ // Initialize with the determinant of the row matrix
+ Index det = 1;
+ // Note that the diagonal blocks of U are stored in supernodes,
+ // which are available in the L part :)
+ for (Index j = 0; j < this->cols(); ++j)
+ {
+ for (typename SCMatrix::InnerIterator it(m_Lstore, j); it; ++it)
+ {
+ if(it.index() == j)
+ {
+ if(it.value()<0)
+ det = -det;
+ else if(it.value()==0)
+ return 0;
+ break;
+ }
+ }
+ }
+ return det * m_detPermR * m_detPermC;
+ }
+
+ /** \returns The determinant of the matrix.
+ *
+ * \sa absDeterminant(), logAbsDeterminant()
+ */
+ Scalar determinant()
+ {
+ eigen_assert(m_factorizationIsOk && "The matrix should be factorized first.");
+ // Initialize with the determinant of the row matrix
+ Scalar det = Scalar(1.);
+ // Note that the diagonal blocks of U are stored in supernodes,
+ // which are available in the L part :)
+ for (Index j = 0; j < this->cols(); ++j)
+ {
+ for (typename SCMatrix::InnerIterator it(m_Lstore, j); it; ++it)
+ {
+ if(it.index() == j)
+ {
+ det *= it.value();
+ break;
+ }
+ }
+ }
+ return (m_detPermR * m_detPermC) > 0 ? det : -det;
+ }
+
+ protected:
+ // Functions
+ void initperfvalues()
+ {
+ m_perfv.panel_size = 16;
+ m_perfv.relax = 1;
+ m_perfv.maxsuper = 128;
+ m_perfv.rowblk = 16;
+ m_perfv.colblk = 8;
+ m_perfv.fillfactor = 20;
+ }
+
+ // Variables
+ mutable ComputationInfo m_info;
+ bool m_factorizationIsOk;
+ bool m_analysisIsOk;
+ std::string m_lastError;
+ NCMatrix m_mat; // The input (permuted ) matrix
+ SCMatrix m_Lstore; // The lower triangular matrix (supernodal)
+ MappedSparseMatrix<Scalar,ColMajor,StorageIndex> m_Ustore; // The upper triangular matrix
+ PermutationType m_perm_c; // Column permutation
+ PermutationType m_perm_r ; // Row permutation
+ IndexVector m_etree; // Column elimination tree
+
+ typename Base::GlobalLU_t m_glu;
+
+ // SparseLU options
+ bool m_symmetricmode;
+ // values for performance
+ internal::perfvalues m_perfv;
+ RealScalar m_diagpivotthresh; // Specifies the threshold used for a diagonal entry to be an acceptable pivot
+ Index m_nnzL, m_nnzU; // Nonzeros in L and U factors
+ Index m_detPermR, m_detPermC; // Determinants of the permutation matrices
+ private:
+ // Disable copy constructor
+ SparseLU (const SparseLU& );
+
+}; // End class SparseLU
+
+
+
+// Functions needed by the anaysis phase
+/**
+ * Compute the column permutation to minimize the fill-in
+ *
+ * - Apply this permutation to the input matrix -
+ *
+ * - Compute the column elimination tree on the permuted matrix
+ *
+ * - Postorder the elimination tree and the column permutation
+ *
+ */
+template <typename MatrixType, typename OrderingType>
+void SparseLU<MatrixType, OrderingType>::analyzePattern(const MatrixType& mat)
+{
+
+ //TODO It is possible as in SuperLU to compute row and columns scaling vectors to equilibrate the matrix mat.
+
+ // Firstly, copy the whole input matrix.
+ m_mat = mat;
+
+ // Compute fill-in ordering
+ OrderingType ord;
+ ord(m_mat,m_perm_c);
+
+ // Apply the permutation to the column of the input matrix
+ if (m_perm_c.size())
+ {
+ m_mat.uncompress(); //NOTE: The effect of this command is only to create the InnerNonzeros pointers. FIXME : This vector is filled but not subsequently used.
+ // Then, permute only the column pointers
+ ei_declare_aligned_stack_constructed_variable(StorageIndex,outerIndexPtr,mat.cols()+1,mat.isCompressed()?const_cast<StorageIndex*>(mat.outerIndexPtr()):0);
+
+ // If the input matrix 'mat' is uncompressed, then the outer-indices do not match the ones of m_mat, and a copy is thus needed.
+ if(!mat.isCompressed())
+ IndexVector::Map(outerIndexPtr, mat.cols()+1) = IndexVector::Map(m_mat.outerIndexPtr(),mat.cols()+1);
+
+ // Apply the permutation and compute the nnz per column.
+ for (Index i = 0; i < mat.cols(); i++)
+ {
+ m_mat.outerIndexPtr()[m_perm_c.indices()(i)] = outerIndexPtr[i];
+ m_mat.innerNonZeroPtr()[m_perm_c.indices()(i)] = outerIndexPtr[i+1] - outerIndexPtr[i];
+ }
+ }
+
+ // Compute the column elimination tree of the permuted matrix
+ IndexVector firstRowElt;
+ internal::coletree(m_mat, m_etree,firstRowElt);
+
+ // In symmetric mode, do not do postorder here
+ if (!m_symmetricmode) {
+ IndexVector post, iwork;
+ // Post order etree
+ internal::treePostorder(StorageIndex(m_mat.cols()), m_etree, post);
+
+
+ // Renumber etree in postorder
+ Index m = m_mat.cols();
+ iwork.resize(m+1);
+ for (Index i = 0; i < m; ++i) iwork(post(i)) = post(m_etree(i));
+ m_etree = iwork;
+
+ // Postmultiply A*Pc by post, i.e reorder the matrix according to the postorder of the etree
+ PermutationType post_perm(m);
+ for (Index i = 0; i < m; i++)
+ post_perm.indices()(i) = post(i);
+
+ // Combine the two permutations : postorder the permutation for future use
+ if(m_perm_c.size()) {
+ m_perm_c = post_perm * m_perm_c;
+ }
+
+ } // end postordering
+
+ m_analysisIsOk = true;
+}
+
+// Functions needed by the numerical factorization phase
+
+
+/**
+ * - Numerical factorization
+ * - Interleaved with the symbolic factorization
+ * On exit, info is
+ *
+ * = 0: successful factorization
+ *
+ * > 0: if info = i, and i is
+ *
+ * <= A->ncol: U(i,i) is exactly zero. The factorization has
+ * been completed, but the factor U is exactly singular,
+ * and division by zero will occur if it is used to solve a
+ * system of equations.
+ *
+ * > A->ncol: number of bytes allocated when memory allocation
+ * failure occurred, plus A->ncol. If lwork = -1, it is
+ * the estimated amount of space needed, plus A->ncol.
+ */
+template <typename MatrixType, typename OrderingType>
+void SparseLU<MatrixType, OrderingType>::factorize(const MatrixType& matrix)
+{
+ using internal::emptyIdxLU;
+ eigen_assert(m_analysisIsOk && "analyzePattern() should be called first");
+ eigen_assert((matrix.rows() == matrix.cols()) && "Only for squared matrices");
+
+ typedef typename IndexVector::Scalar StorageIndex;
+
+ m_isInitialized = true;
+
+
+ // Apply the column permutation computed in analyzepattern()
+ // m_mat = matrix * m_perm_c.inverse();
+ m_mat = matrix;
+ if (m_perm_c.size())
+ {
+ m_mat.uncompress(); //NOTE: The effect of this command is only to create the InnerNonzeros pointers.
+ //Then, permute only the column pointers
+ const StorageIndex * outerIndexPtr;
+ if (matrix.isCompressed()) outerIndexPtr = matrix.outerIndexPtr();
+ else
+ {
+ StorageIndex* outerIndexPtr_t = new StorageIndex[matrix.cols()+1];
+ for(Index i = 0; i <= matrix.cols(); i++) outerIndexPtr_t[i] = m_mat.outerIndexPtr()[i];
+ outerIndexPtr = outerIndexPtr_t;
+ }
+ for (Index i = 0; i < matrix.cols(); i++)
+ {
+ m_mat.outerIndexPtr()[m_perm_c.indices()(i)] = outerIndexPtr[i];
+ m_mat.innerNonZeroPtr()[m_perm_c.indices()(i)] = outerIndexPtr[i+1] - outerIndexPtr[i];
+ }
+ if(!matrix.isCompressed()) delete[] outerIndexPtr;
+ }
+ else
+ { //FIXME This should not be needed if the empty permutation is handled transparently
+ m_perm_c.resize(matrix.cols());
+ for(StorageIndex i = 0; i < matrix.cols(); ++i) m_perm_c.indices()(i) = i;
+ }
+
+ Index m = m_mat.rows();
+ Index n = m_mat.cols();
+ Index nnz = m_mat.nonZeros();
+ Index maxpanel = m_perfv.panel_size * m;
+ // Allocate working storage common to the factor routines
+ Index lwork = 0;
+ Index info = Base::memInit(m, n, nnz, lwork, m_perfv.fillfactor, m_perfv.panel_size, m_glu);
+ if (info)
+ {
+ m_lastError = "UNABLE TO ALLOCATE WORKING MEMORY\n\n" ;
+ m_factorizationIsOk = false;
+ return ;
+ }
+
+ // Set up pointers for integer working arrays
+ IndexVector segrep(m); segrep.setZero();
+ IndexVector parent(m); parent.setZero();
+ IndexVector xplore(m); xplore.setZero();
+ IndexVector repfnz(maxpanel);
+ IndexVector panel_lsub(maxpanel);
+ IndexVector xprune(n); xprune.setZero();
+ IndexVector marker(m*internal::LUNoMarker); marker.setZero();
+
+ repfnz.setConstant(-1);
+ panel_lsub.setConstant(-1);
+
+ // Set up pointers for scalar working arrays
+ ScalarVector dense;
+ dense.setZero(maxpanel);
+ ScalarVector tempv;
+ tempv.setZero(internal::LUnumTempV(m, m_perfv.panel_size, m_perfv.maxsuper, /*m_perfv.rowblk*/m) );
+
+ // Compute the inverse of perm_c
+ PermutationType iperm_c(m_perm_c.inverse());
+
+ // Identify initial relaxed snodes
+ IndexVector relax_end(n);
+ if ( m_symmetricmode == true )
+ Base::heap_relax_snode(n, m_etree, m_perfv.relax, marker, relax_end);
+ else
+ Base::relax_snode(n, m_etree, m_perfv.relax, marker, relax_end);
+
+
+ m_perm_r.resize(m);
+ m_perm_r.indices().setConstant(-1);
+ marker.setConstant(-1);
+ m_detPermR = 1; // Record the determinant of the row permutation
+
+ m_glu.supno(0) = emptyIdxLU; m_glu.xsup.setConstant(0);
+ m_glu.xsup(0) = m_glu.xlsub(0) = m_glu.xusub(0) = m_glu.xlusup(0) = Index(0);
+
+ // Work on one 'panel' at a time. A panel is one of the following :
+ // (a) a relaxed supernode at the bottom of the etree, or
+ // (b) panel_size contiguous columns, <panel_size> defined by the user
+ Index jcol;
+ IndexVector panel_histo(n);
+ Index pivrow; // Pivotal row number in the original row matrix
+ Index nseg1; // Number of segments in U-column above panel row jcol
+ Index nseg; // Number of segments in each U-column
+ Index irep;
+ Index i, k, jj;
+ for (jcol = 0; jcol < n; )
+ {
+ // Adjust panel size so that a panel won't overlap with the next relaxed snode.
+ Index panel_size = m_perfv.panel_size; // upper bound on panel width
+ for (k = jcol + 1; k < (std::min)(jcol+panel_size, n); k++)
+ {
+ if (relax_end(k) != emptyIdxLU)
+ {
+ panel_size = k - jcol;
+ break;
+ }
+ }
+ if (k == n)
+ panel_size = n - jcol;
+
+ // Symbolic outer factorization on a panel of columns
+ Base::panel_dfs(m, panel_size, jcol, m_mat, m_perm_r.indices(), nseg1, dense, panel_lsub, segrep, repfnz, xprune, marker, parent, xplore, m_glu);
+
+ // Numeric sup-panel updates in topological order
+ Base::panel_bmod(m, panel_size, jcol, nseg1, dense, tempv, segrep, repfnz, m_glu);
+
+ // Sparse LU within the panel, and below the panel diagonal
+ for ( jj = jcol; jj< jcol + panel_size; jj++)
+ {
+ k = (jj - jcol) * m; // Column index for w-wide arrays
+
+ nseg = nseg1; // begin after all the panel segments
+ //Depth-first-search for the current column
+ VectorBlock<IndexVector> panel_lsubk(panel_lsub, k, m);
+ VectorBlock<IndexVector> repfnz_k(repfnz, k, m);
+ info = Base::column_dfs(m, jj, m_perm_r.indices(), m_perfv.maxsuper, nseg, panel_lsubk, segrep, repfnz_k, xprune, marker, parent, xplore, m_glu);
+ if ( info )
+ {
+ m_lastError = "UNABLE TO EXPAND MEMORY IN COLUMN_DFS() ";
+ m_info = NumericalIssue;
+ m_factorizationIsOk = false;
+ return;
+ }
+ // Numeric updates to this column
+ VectorBlock<ScalarVector> dense_k(dense, k, m);
+ VectorBlock<IndexVector> segrep_k(segrep, nseg1, m-nseg1);
+ info = Base::column_bmod(jj, (nseg - nseg1), dense_k, tempv, segrep_k, repfnz_k, jcol, m_glu);
+ if ( info )
+ {
+ m_lastError = "UNABLE TO EXPAND MEMORY IN COLUMN_BMOD() ";
+ m_info = NumericalIssue;
+ m_factorizationIsOk = false;
+ return;
+ }
+
+ // Copy the U-segments to ucol(*)
+ info = Base::copy_to_ucol(jj, nseg, segrep, repfnz_k ,m_perm_r.indices(), dense_k, m_glu);
+ if ( info )
+ {
+ m_lastError = "UNABLE TO EXPAND MEMORY IN COPY_TO_UCOL() ";
+ m_info = NumericalIssue;
+ m_factorizationIsOk = false;
+ return;
+ }
+
+ // Form the L-segment
+ info = Base::pivotL(jj, m_diagpivotthresh, m_perm_r.indices(), iperm_c.indices(), pivrow, m_glu);
+ if ( info )
+ {
+ m_lastError = "THE MATRIX IS STRUCTURALLY SINGULAR ... ZERO COLUMN AT ";
+ std::ostringstream returnInfo;
+ returnInfo << info;
+ m_lastError += returnInfo.str();
+ m_info = NumericalIssue;
+ m_factorizationIsOk = false;
+ return;
+ }
+
+ // Update the determinant of the row permutation matrix
+ // FIXME: the following test is not correct, we should probably take iperm_c into account and pivrow is not directly the row pivot.
+ if (pivrow != jj) m_detPermR = -m_detPermR;
+
+ // Prune columns (0:jj-1) using column jj
+ Base::pruneL(jj, m_perm_r.indices(), pivrow, nseg, segrep, repfnz_k, xprune, m_glu);
+
+ // Reset repfnz for this column
+ for (i = 0; i < nseg; i++)
+ {
+ irep = segrep(i);
+ repfnz_k(irep) = emptyIdxLU;
+ }
+ } // end SparseLU within the panel
+ jcol += panel_size; // Move to the next panel
+ } // end for -- end elimination
+
+ m_detPermR = m_perm_r.determinant();
+ m_detPermC = m_perm_c.determinant();
+
+ // Count the number of nonzeros in factors
+ Base::countnz(n, m_nnzL, m_nnzU, m_glu);
+ // Apply permutation to the L subscripts
+ Base::fixupL(n, m_perm_r.indices(), m_glu);
+
+ // Create supernode matrix L
+ m_Lstore.setInfos(m, n, m_glu.lusup, m_glu.xlusup, m_glu.lsub, m_glu.xlsub, m_glu.supno, m_glu.xsup);
+ // Create the column major upper sparse matrix U;
+ new (&m_Ustore) MappedSparseMatrix<Scalar, ColMajor, StorageIndex> ( m, n, m_nnzU, m_glu.xusub.data(), m_glu.usub.data(), m_glu.ucol.data() );
+
+ m_info = Success;
+ m_factorizationIsOk = true;
+}
+
+template<typename MappedSupernodalType>
+struct SparseLUMatrixLReturnType : internal::no_assignment_operator
+{
+ typedef typename MappedSupernodalType::Scalar Scalar;
+ explicit SparseLUMatrixLReturnType(const MappedSupernodalType& mapL) : m_mapL(mapL)
+ { }
+ Index rows() { return m_mapL.rows(); }
+ Index cols() { return m_mapL.cols(); }
+ template<typename Dest>
+ void solveInPlace( MatrixBase<Dest> &X) const
+ {
+ m_mapL.solveInPlace(X);
+ }
+ const MappedSupernodalType& m_mapL;
+};
+
+template<typename MatrixLType, typename MatrixUType>
+struct SparseLUMatrixUReturnType : internal::no_assignment_operator
+{
+ typedef typename MatrixLType::Scalar Scalar;
+ SparseLUMatrixUReturnType(const MatrixLType& mapL, const MatrixUType& mapU)
+ : m_mapL(mapL),m_mapU(mapU)
+ { }
+ Index rows() { return m_mapL.rows(); }
+ Index cols() { return m_mapL.cols(); }
+
+ template<typename Dest> void solveInPlace(MatrixBase<Dest> &X) const
+ {
+ Index nrhs = X.cols();
+ Index n = X.rows();
+ // Backward solve with U
+ for (Index k = m_mapL.nsuper(); k >= 0; k--)
+ {
+ Index fsupc = m_mapL.supToCol()[k];
+ Index lda = m_mapL.colIndexPtr()[fsupc+1] - m_mapL.colIndexPtr()[fsupc]; // leading dimension
+ Index nsupc = m_mapL.supToCol()[k+1] - fsupc;
+ Index luptr = m_mapL.colIndexPtr()[fsupc];
+
+ if (nsupc == 1)
+ {
+ for (Index j = 0; j < nrhs; j++)
+ {
+ X(fsupc, j) /= m_mapL.valuePtr()[luptr];
+ }
+ }
+ else
+ {
+ Map<const Matrix<Scalar,Dynamic,Dynamic, ColMajor>, 0, OuterStride<> > A( &(m_mapL.valuePtr()[luptr]), nsupc, nsupc, OuterStride<>(lda) );
+ Map< Matrix<Scalar,Dynamic,Dest::ColsAtCompileTime, ColMajor>, 0, OuterStride<> > U (&(X(fsupc,0)), nsupc, nrhs, OuterStride<>(n) );
+ U = A.template triangularView<Upper>().solve(U);
+ }
+
+ for (Index j = 0; j < nrhs; ++j)
+ {
+ for (Index jcol = fsupc; jcol < fsupc + nsupc; jcol++)
+ {
+ typename MatrixUType::InnerIterator it(m_mapU, jcol);
+ for ( ; it; ++it)
+ {
+ Index irow = it.index();
+ X(irow, j) -= X(jcol, j) * it.value();
+ }
+ }
+ }
+ } // End For U-solve
+ }
+ const MatrixLType& m_mapL;
+ const MatrixUType& m_mapU;
+};
+
+} // End namespace Eigen
+
+#endif
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLUImpl.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLUImpl.h
new file mode 100644
index 000000000..fc0cfc4de
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLUImpl.h
@@ -0,0 +1,66 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef SPARSELU_IMPL_H
+#define SPARSELU_IMPL_H
+
+namespace Eigen {
+namespace internal {
+
+/** \ingroup SparseLU_Module
+ * \class SparseLUImpl
+ * Base class for sparseLU
+ */
+template <typename Scalar, typename StorageIndex>
+class SparseLUImpl
+{
+ public:
+ typedef Matrix<Scalar,Dynamic,1> ScalarVector;
+ typedef Matrix<StorageIndex,Dynamic,1> IndexVector;
+ typedef Matrix<Scalar,Dynamic,Dynamic,ColMajor> ScalarMatrix;
+ typedef Map<ScalarMatrix, 0, OuterStride<> > MappedMatrixBlock;
+ typedef typename ScalarVector::RealScalar RealScalar;
+ typedef Ref<Matrix<Scalar,Dynamic,1> > BlockScalarVector;
+ typedef Ref<Matrix<StorageIndex,Dynamic,1> > BlockIndexVector;
+ typedef LU_GlobalLU_t<IndexVector, ScalarVector> GlobalLU_t;
+ typedef SparseMatrix<Scalar,ColMajor,StorageIndex> MatrixType;
+
+ protected:
+ template <typename VectorType>
+ Index expand(VectorType& vec, Index& length, Index nbElts, Index keep_prev, Index& num_expansions);
+ Index memInit(Index m, Index n, Index annz, Index lwork, Index fillratio, Index panel_size, GlobalLU_t& glu);
+ template <typename VectorType>
+ Index memXpand(VectorType& vec, Index& maxlen, Index nbElts, MemType memtype, Index& num_expansions);
+ void heap_relax_snode (const Index n, IndexVector& et, const Index relax_columns, IndexVector& descendants, IndexVector& relax_end);
+ void relax_snode (const Index n, IndexVector& et, const Index relax_columns, IndexVector& descendants, IndexVector& relax_end);
+ Index snode_dfs(const Index jcol, const Index kcol,const MatrixType& mat, IndexVector& xprune, IndexVector& marker, GlobalLU_t& glu);
+ Index snode_bmod (const Index jcol, const Index fsupc, ScalarVector& dense, GlobalLU_t& glu);
+ Index pivotL(const Index jcol, const RealScalar& diagpivotthresh, IndexVector& perm_r, IndexVector& iperm_c, Index& pivrow, GlobalLU_t& glu);
+ template <typename Traits>
+ void dfs_kernel(const StorageIndex jj, IndexVector& perm_r,
+ Index& nseg, IndexVector& panel_lsub, IndexVector& segrep,
+ Ref<IndexVector> repfnz_col, IndexVector& xprune, Ref<IndexVector> marker, IndexVector& parent,
+ IndexVector& xplore, GlobalLU_t& glu, Index& nextl_col, Index krow, Traits& traits);
+ void panel_dfs(const Index m, const Index w, const Index jcol, MatrixType& A, IndexVector& perm_r, Index& nseg, ScalarVector& dense, IndexVector& panel_lsub, IndexVector& segrep, IndexVector& repfnz, IndexVector& xprune, IndexVector& marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu);
+
+ void panel_bmod(const Index m, const Index w, const Index jcol, const Index nseg, ScalarVector& dense, ScalarVector& tempv, IndexVector& segrep, IndexVector& repfnz, GlobalLU_t& glu);
+ Index column_dfs(const Index m, const Index jcol, IndexVector& perm_r, Index maxsuper, Index& nseg, BlockIndexVector lsub_col, IndexVector& segrep, BlockIndexVector repfnz, IndexVector& xprune, IndexVector& marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu);
+ Index column_bmod(const Index jcol, const Index nseg, BlockScalarVector dense, ScalarVector& tempv, BlockIndexVector segrep, BlockIndexVector repfnz, Index fpanelc, GlobalLU_t& glu);
+ Index copy_to_ucol(const Index jcol, const Index nseg, IndexVector& segrep, BlockIndexVector repfnz ,IndexVector& perm_r, BlockScalarVector dense, GlobalLU_t& glu);
+ void pruneL(const Index jcol, const IndexVector& perm_r, const Index pivrow, const Index nseg, const IndexVector& segrep, BlockIndexVector repfnz, IndexVector& xprune, GlobalLU_t& glu);
+ void countnz(const Index n, Index& nnzL, Index& nnzU, GlobalLU_t& glu);
+ void fixupL(const Index n, const IndexVector& perm_r, GlobalLU_t& glu);
+
+ template<typename , typename >
+ friend struct column_dfs_traits;
+};
+
+} // end namespace internal
+} // namespace Eigen
+
+#endif
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_Memory.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_Memory.h
new file mode 100644
index 000000000..4dc42e87b
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_Memory.h
@@ -0,0 +1,226 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/*
+
+ * NOTE: This file is the modified version of [s,d,c,z]memory.c files in SuperLU
+
+ * -- SuperLU routine (version 3.1) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * August 1, 2008
+ *
+ * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+
+#ifndef EIGEN_SPARSELU_MEMORY
+#define EIGEN_SPARSELU_MEMORY
+
+namespace Eigen {
+namespace internal {
+
+enum { LUNoMarker = 3 };
+enum {emptyIdxLU = -1};
+inline Index LUnumTempV(Index& m, Index& w, Index& t, Index& b)
+{
+ return (std::max)(m, (t+b)*w);
+}
+
+template< typename Scalar>
+inline Index LUTempSpace(Index&m, Index& w)
+{
+ return (2*w + 4 + LUNoMarker) * m * sizeof(Index) + (w + 1) * m * sizeof(Scalar);
+}
+
+
+
+
+/**
+ * Expand the existing storage to accomodate more fill-ins
+ * \param vec Valid pointer to the vector to allocate or expand
+ * \param[in,out] length At input, contain the current length of the vector that is to be increased. At output, length of the newly allocated vector
+ * \param[in] nbElts Current number of elements in the factors
+ * \param keep_prev 1: use length and do not expand the vector; 0: compute new_len and expand
+ * \param[in,out] num_expansions Number of times the memory has been expanded
+ */
+template <typename Scalar, typename StorageIndex>
+template <typename VectorType>
+Index SparseLUImpl<Scalar,StorageIndex>::expand(VectorType& vec, Index& length, Index nbElts, Index keep_prev, Index& num_expansions)
+{
+
+ float alpha = 1.5; // Ratio of the memory increase
+ Index new_len; // New size of the allocated memory
+
+ if(num_expansions == 0 || keep_prev)
+ new_len = length ; // First time allocate requested
+ else
+ new_len = (std::max)(length+1,Index(alpha * length));
+
+ VectorType old_vec; // Temporary vector to hold the previous values
+ if (nbElts > 0 )
+ old_vec = vec.segment(0,nbElts);
+
+ //Allocate or expand the current vector
+#ifdef EIGEN_EXCEPTIONS
+ try
+#endif
+ {
+ vec.resize(new_len);
+ }
+#ifdef EIGEN_EXCEPTIONS
+ catch(std::bad_alloc& )
+#else
+ if(!vec.size())
+#endif
+ {
+ if (!num_expansions)
+ {
+ // First time to allocate from LUMemInit()
+ // Let LUMemInit() deals with it.
+ return -1;
+ }
+ if (keep_prev)
+ {
+ // In this case, the memory length should not not be reduced
+ return new_len;
+ }
+ else
+ {
+ // Reduce the size and increase again
+ Index tries = 0; // Number of attempts
+ do
+ {
+ alpha = (alpha + 1)/2;
+ new_len = (std::max)(length+1,Index(alpha * length));
+#ifdef EIGEN_EXCEPTIONS
+ try
+#endif
+ {
+ vec.resize(new_len);
+ }
+#ifdef EIGEN_EXCEPTIONS
+ catch(std::bad_alloc& )
+#else
+ if (!vec.size())
+#endif
+ {
+ tries += 1;
+ if ( tries > 10) return new_len;
+ }
+ } while (!vec.size());
+ }
+ }
+ //Copy the previous values to the newly allocated space
+ if (nbElts > 0)
+ vec.segment(0, nbElts) = old_vec;
+
+
+ length = new_len;
+ if(num_expansions) ++num_expansions;
+ return 0;
+}
+
+/**
+ * \brief Allocate various working space for the numerical factorization phase.
+ * \param m number of rows of the input matrix
+ * \param n number of columns
+ * \param annz number of initial nonzeros in the matrix
+ * \param lwork if lwork=-1, this routine returns an estimated size of the required memory
+ * \param glu persistent data to facilitate multiple factors : will be deleted later ??
+ * \param fillratio estimated ratio of fill in the factors
+ * \param panel_size Size of a panel
+ * \return an estimated size of the required memory if lwork = -1; otherwise, return the size of actually allocated memory when allocation failed, and 0 on success
+ * \note Unlike SuperLU, this routine does not support successive factorization with the same pattern and the same row permutation
+ */
+template <typename Scalar, typename StorageIndex>
+Index SparseLUImpl<Scalar,StorageIndex>::memInit(Index m, Index n, Index annz, Index lwork, Index fillratio, Index panel_size, GlobalLU_t& glu)
+{
+ Index& num_expansions = glu.num_expansions; //No memory expansions so far
+ num_expansions = 0;
+ glu.nzumax = glu.nzlumax = (std::min)(fillratio * (annz+1) / n, m) * n; // estimated number of nonzeros in U
+ glu.nzlmax = (std::max)(Index(4), fillratio) * (annz+1) / 4; // estimated nnz in L factor
+ // Return the estimated size to the user if necessary
+ Index tempSpace;
+ tempSpace = (2*panel_size + 4 + LUNoMarker) * m * sizeof(Index) + (panel_size + 1) * m * sizeof(Scalar);
+ if (lwork == emptyIdxLU)
+ {
+ Index estimated_size;
+ estimated_size = (5 * n + 5) * sizeof(Index) + tempSpace
+ + (glu.nzlmax + glu.nzumax) * sizeof(Index) + (glu.nzlumax+glu.nzumax) * sizeof(Scalar) + n;
+ return estimated_size;
+ }
+
+ // Setup the required space
+
+ // First allocate Integer pointers for L\U factors
+ glu.xsup.resize(n+1);
+ glu.supno.resize(n+1);
+ glu.xlsub.resize(n+1);
+ glu.xlusup.resize(n+1);
+ glu.xusub.resize(n+1);
+
+ // Reserve memory for L/U factors
+ do
+ {
+ if( (expand<ScalarVector>(glu.lusup, glu.nzlumax, 0, 0, num_expansions)<0)
+ || (expand<ScalarVector>(glu.ucol, glu.nzumax, 0, 0, num_expansions)<0)
+ || (expand<IndexVector> (glu.lsub, glu.nzlmax, 0, 0, num_expansions)<0)
+ || (expand<IndexVector> (glu.usub, glu.nzumax, 0, 1, num_expansions)<0) )
+ {
+ //Reduce the estimated size and retry
+ glu.nzlumax /= 2;
+ glu.nzumax /= 2;
+ glu.nzlmax /= 2;
+ if (glu.nzlumax < annz ) return glu.nzlumax;
+ }
+ } while (!glu.lusup.size() || !glu.ucol.size() || !glu.lsub.size() || !glu.usub.size());
+
+ ++num_expansions;
+ return 0;
+
+} // end LuMemInit
+
+/**
+ * \brief Expand the existing storage
+ * \param vec vector to expand
+ * \param[in,out] maxlen On input, previous size of vec (Number of elements to copy ). on output, new size
+ * \param nbElts current number of elements in the vector.
+ * \param memtype Type of the element to expand
+ * \param num_expansions Number of expansions
+ * \return 0 on success, > 0 size of the memory allocated so far
+ */
+template <typename Scalar, typename StorageIndex>
+template <typename VectorType>
+Index SparseLUImpl<Scalar,StorageIndex>::memXpand(VectorType& vec, Index& maxlen, Index nbElts, MemType memtype, Index& num_expansions)
+{
+ Index failed_size;
+ if (memtype == USUB)
+ failed_size = this->expand<VectorType>(vec, maxlen, nbElts, 1, num_expansions);
+ else
+ failed_size = this->expand<VectorType>(vec, maxlen, nbElts, 0, num_expansions);
+
+ if (failed_size)
+ return failed_size;
+
+ return 0 ;
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+#endif // EIGEN_SPARSELU_MEMORY
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_Structs.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_Structs.h
new file mode 100644
index 000000000..cf5ec449b
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_Structs.h
@@ -0,0 +1,110 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/*
+ * NOTE: This file comes from a partly modified version of files slu_[s,d,c,z]defs.h
+ * -- SuperLU routine (version 4.1) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * November, 2010
+ *
+ * Global data structures used in LU factorization -
+ *
+ * nsuper: #supernodes = nsuper + 1, numbered [0, nsuper].
+ * (xsup,supno): supno[i] is the supernode no to which i belongs;
+ * xsup(s) points to the beginning of the s-th supernode.
+ * e.g. supno 0 1 2 2 3 3 3 4 4 4 4 4 (n=12)
+ * xsup 0 1 2 4 7 12
+ * Note: dfs will be performed on supernode rep. relative to the new
+ * row pivoting ordering
+ *
+ * (xlsub,lsub): lsub[*] contains the compressed subscript of
+ * rectangular supernodes; xlsub[j] points to the starting
+ * location of the j-th column in lsub[*]. Note that xlsub
+ * is indexed by column.
+ * Storage: original row subscripts
+ *
+ * During the course of sparse LU factorization, we also use
+ * (xlsub,lsub) for the purpose of symmetric pruning. For each
+ * supernode {s,s+1,...,t=s+r} with first column s and last
+ * column t, the subscript set
+ * lsub[j], j=xlsub[s], .., xlsub[s+1]-1
+ * is the structure of column s (i.e. structure of this supernode).
+ * It is used for the storage of numerical values.
+ * Furthermore,
+ * lsub[j], j=xlsub[t], .., xlsub[t+1]-1
+ * is the structure of the last column t of this supernode.
+ * It is for the purpose of symmetric pruning. Therefore, the
+ * structural subscripts can be rearranged without making physical
+ * interchanges among the numerical values.
+ *
+ * However, if the supernode has only one column, then we
+ * only keep one set of subscripts. For any subscript interchange
+ * performed, similar interchange must be done on the numerical
+ * values.
+ *
+ * The last column structures (for pruning) will be removed
+ * after the numercial LU factorization phase.
+ *
+ * (xlusup,lusup): lusup[*] contains the numerical values of the
+ * rectangular supernodes; xlusup[j] points to the starting
+ * location of the j-th column in storage vector lusup[*]
+ * Note: xlusup is indexed by column.
+ * Each rectangular supernode is stored by column-major
+ * scheme, consistent with Fortran 2-dim array storage.
+ *
+ * (xusub,ucol,usub): ucol[*] stores the numerical values of
+ * U-columns outside the rectangular supernodes. The row
+ * subscript of nonzero ucol[k] is stored in usub[k].
+ * xusub[i] points to the starting location of column i in ucol.
+ * Storage: new row subscripts; that is subscripts of PA.
+ */
+
+#ifndef EIGEN_LU_STRUCTS
+#define EIGEN_LU_STRUCTS
+namespace Eigen {
+namespace internal {
+
+typedef enum {LUSUP, UCOL, LSUB, USUB, LLVL, ULVL} MemType;
+
+template <typename IndexVector, typename ScalarVector>
+struct LU_GlobalLU_t {
+ typedef typename IndexVector::Scalar StorageIndex;
+ IndexVector xsup; //First supernode column ... xsup(s) points to the beginning of the s-th supernode
+ IndexVector supno; // Supernode number corresponding to this column (column to supernode mapping)
+ ScalarVector lusup; // nonzero values of L ordered by columns
+ IndexVector lsub; // Compressed row indices of L rectangular supernodes.
+ IndexVector xlusup; // pointers to the beginning of each column in lusup
+ IndexVector xlsub; // pointers to the beginning of each column in lsub
+ Index nzlmax; // Current max size of lsub
+ Index nzlumax; // Current max size of lusup
+ ScalarVector ucol; // nonzero values of U ordered by columns
+ IndexVector usub; // row indices of U columns in ucol
+ IndexVector xusub; // Pointers to the beginning of each column of U in ucol
+ Index nzumax; // Current max size of ucol
+ Index n; // Number of columns in the matrix
+ Index num_expansions;
+};
+
+// Values to set for performance
+struct perfvalues {
+ Index panel_size; // a panel consists of at most <panel_size> consecutive columns
+ Index relax; // To control degree of relaxing supernodes. If the number of nodes (columns)
+ // in a subtree of the elimination tree is less than relax, this subtree is considered
+ // as one supernode regardless of the row structures of those columns
+ Index maxsuper; // The maximum size for a supernode in complete LU
+ Index rowblk; // The minimum row dimension for 2-D blocking to be used;
+ Index colblk; // The minimum column dimension for 2-D blocking to be used;
+ Index fillfactor; // The estimated fills factors for L and U, compared with A
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+#endif // EIGEN_LU_STRUCTS
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
new file mode 100644
index 000000000..721e1883b
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
@@ -0,0 +1,301 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSELU_SUPERNODAL_MATRIX_H
+#define EIGEN_SPARSELU_SUPERNODAL_MATRIX_H
+
+namespace Eigen {
+namespace internal {
+
+/** \ingroup SparseLU_Module
+ * \brief a class to manipulate the L supernodal factor from the SparseLU factorization
+ *
+ * This class contain the data to easily store
+ * and manipulate the supernodes during the factorization and solution phase of Sparse LU.
+ * Only the lower triangular matrix has supernodes.
+ *
+ * NOTE : This class corresponds to the SCformat structure in SuperLU
+ *
+ */
+/* TODO
+ * InnerIterator as for sparsematrix
+ * SuperInnerIterator to iterate through all supernodes
+ * Function for triangular solve
+ */
+template <typename _Scalar, typename _StorageIndex>
+class MappedSuperNodalMatrix
+{
+ public:
+ typedef _Scalar Scalar;
+ typedef _StorageIndex StorageIndex;
+ typedef Matrix<StorageIndex,Dynamic,1> IndexVector;
+ typedef Matrix<Scalar,Dynamic,1> ScalarVector;
+ public:
+ MappedSuperNodalMatrix()
+ {
+
+ }
+ MappedSuperNodalMatrix(Index m, Index n, ScalarVector& nzval, IndexVector& nzval_colptr, IndexVector& rowind,
+ IndexVector& rowind_colptr, IndexVector& col_to_sup, IndexVector& sup_to_col )
+ {
+ setInfos(m, n, nzval, nzval_colptr, rowind, rowind_colptr, col_to_sup, sup_to_col);
+ }
+
+ ~MappedSuperNodalMatrix()
+ {
+
+ }
+ /**
+ * Set appropriate pointers for the lower triangular supernodal matrix
+ * These infos are available at the end of the numerical factorization
+ * FIXME This class will be modified such that it can be use in the course
+ * of the factorization.
+ */
+ void setInfos(Index m, Index n, ScalarVector& nzval, IndexVector& nzval_colptr, IndexVector& rowind,
+ IndexVector& rowind_colptr, IndexVector& col_to_sup, IndexVector& sup_to_col )
+ {
+ m_row = m;
+ m_col = n;
+ m_nzval = nzval.data();
+ m_nzval_colptr = nzval_colptr.data();
+ m_rowind = rowind.data();
+ m_rowind_colptr = rowind_colptr.data();
+ m_nsuper = col_to_sup(n);
+ m_col_to_sup = col_to_sup.data();
+ m_sup_to_col = sup_to_col.data();
+ }
+
+ /**
+ * Number of rows
+ */
+ Index rows() { return m_row; }
+
+ /**
+ * Number of columns
+ */
+ Index cols() { return m_col; }
+
+ /**
+ * Return the array of nonzero values packed by column
+ *
+ * The size is nnz
+ */
+ Scalar* valuePtr() { return m_nzval; }
+
+ const Scalar* valuePtr() const
+ {
+ return m_nzval;
+ }
+ /**
+ * Return the pointers to the beginning of each column in \ref valuePtr()
+ */
+ StorageIndex* colIndexPtr()
+ {
+ return m_nzval_colptr;
+ }
+
+ const StorageIndex* colIndexPtr() const
+ {
+ return m_nzval_colptr;
+ }
+
+ /**
+ * Return the array of compressed row indices of all supernodes
+ */
+ StorageIndex* rowIndex() { return m_rowind; }
+
+ const StorageIndex* rowIndex() const
+ {
+ return m_rowind;
+ }
+
+ /**
+ * Return the location in \em rowvaluePtr() which starts each column
+ */
+ StorageIndex* rowIndexPtr() { return m_rowind_colptr; }
+
+ const StorageIndex* rowIndexPtr() const
+ {
+ return m_rowind_colptr;
+ }
+
+ /**
+ * Return the array of column-to-supernode mapping
+ */
+ StorageIndex* colToSup() { return m_col_to_sup; }
+
+ const StorageIndex* colToSup() const
+ {
+ return m_col_to_sup;
+ }
+ /**
+ * Return the array of supernode-to-column mapping
+ */
+ StorageIndex* supToCol() { return m_sup_to_col; }
+
+ const StorageIndex* supToCol() const
+ {
+ return m_sup_to_col;
+ }
+
+ /**
+ * Return the number of supernodes
+ */
+ Index nsuper() const
+ {
+ return m_nsuper;
+ }
+
+ class InnerIterator;
+ template<typename Dest>
+ void solveInPlace( MatrixBase<Dest>&X) const;
+
+
+
+
+ protected:
+ Index m_row; // Number of rows
+ Index m_col; // Number of columns
+ Index m_nsuper; // Number of supernodes
+ Scalar* m_nzval; //array of nonzero values packed by column
+ StorageIndex* m_nzval_colptr; //nzval_colptr[j] Stores the location in nzval[] which starts column j
+ StorageIndex* m_rowind; // Array of compressed row indices of rectangular supernodes
+ StorageIndex* m_rowind_colptr; //rowind_colptr[j] stores the location in rowind[] which starts column j
+ StorageIndex* m_col_to_sup; // col_to_sup[j] is the supernode number to which column j belongs
+ StorageIndex* m_sup_to_col; //sup_to_col[s] points to the starting column of the s-th supernode
+
+ private :
+};
+
+/**
+ * \brief InnerIterator class to iterate over nonzero values of the current column in the supernodal matrix L
+ *
+ */
+template<typename Scalar, typename StorageIndex>
+class MappedSuperNodalMatrix<Scalar,StorageIndex>::InnerIterator
+{
+ public:
+ InnerIterator(const MappedSuperNodalMatrix& mat, Index outer)
+ : m_matrix(mat),
+ m_outer(outer),
+ m_supno(mat.colToSup()[outer]),
+ m_idval(mat.colIndexPtr()[outer]),
+ m_startidval(m_idval),
+ m_endidval(mat.colIndexPtr()[outer+1]),
+ m_idrow(mat.rowIndexPtr()[mat.supToCol()[mat.colToSup()[outer]]]),
+ m_endidrow(mat.rowIndexPtr()[mat.supToCol()[mat.colToSup()[outer]]+1])
+ {}
+ inline InnerIterator& operator++()
+ {
+ m_idval++;
+ m_idrow++;
+ return *this;
+ }
+ inline Scalar value() const { return m_matrix.valuePtr()[m_idval]; }
+
+ inline Scalar& valueRef() { return const_cast<Scalar&>(m_matrix.valuePtr()[m_idval]); }
+
+ inline Index index() const { return m_matrix.rowIndex()[m_idrow]; }
+ inline Index row() const { return index(); }
+ inline Index col() const { return m_outer; }
+
+ inline Index supIndex() const { return m_supno; }
+
+ inline operator bool() const
+ {
+ return ( (m_idval < m_endidval) && (m_idval >= m_startidval)
+ && (m_idrow < m_endidrow) );
+ }
+
+ protected:
+ const MappedSuperNodalMatrix& m_matrix; // Supernodal lower triangular matrix
+ const Index m_outer; // Current column
+ const Index m_supno; // Current SuperNode number
+ Index m_idval; // Index to browse the values in the current column
+ const Index m_startidval; // Start of the column value
+ const Index m_endidval; // End of the column value
+ Index m_idrow; // Index to browse the row indices
+ Index m_endidrow; // End index of row indices of the current column
+};
+
+/**
+ * \brief Solve with the supernode triangular matrix
+ *
+ */
+template<typename Scalar, typename Index_>
+template<typename Dest>
+void MappedSuperNodalMatrix<Scalar,Index_>::solveInPlace( MatrixBase<Dest>&X) const
+{
+ /* Explicit type conversion as the Index type of MatrixBase<Dest> may be wider than Index */
+// eigen_assert(X.rows() <= NumTraits<Index>::highest());
+// eigen_assert(X.cols() <= NumTraits<Index>::highest());
+ Index n = int(X.rows());
+ Index nrhs = Index(X.cols());
+ const Scalar * Lval = valuePtr(); // Nonzero values
+ Matrix<Scalar,Dynamic,Dest::ColsAtCompileTime, ColMajor> work(n, nrhs); // working vector
+ work.setZero();
+ for (Index k = 0; k <= nsuper(); k ++)
+ {
+ Index fsupc = supToCol()[k]; // First column of the current supernode
+ Index istart = rowIndexPtr()[fsupc]; // Pointer index to the subscript of the current column
+ Index nsupr = rowIndexPtr()[fsupc+1] - istart; // Number of rows in the current supernode
+ Index nsupc = supToCol()[k+1] - fsupc; // Number of columns in the current supernode
+ Index nrow = nsupr - nsupc; // Number of rows in the non-diagonal part of the supernode
+ Index irow; //Current index row
+
+ if (nsupc == 1 )
+ {
+ for (Index j = 0; j < nrhs; j++)
+ {
+ InnerIterator it(*this, fsupc);
+ ++it; // Skip the diagonal element
+ for (; it; ++it)
+ {
+ irow = it.row();
+ X(irow, j) -= X(fsupc, j) * it.value();
+ }
+ }
+ }
+ else
+ {
+ // The supernode has more than one column
+ Index luptr = colIndexPtr()[fsupc];
+ Index lda = colIndexPtr()[fsupc+1] - luptr;
+
+ // Triangular solve
+ Map<const Matrix<Scalar,Dynamic,Dynamic, ColMajor>, 0, OuterStride<> > A( &(Lval[luptr]), nsupc, nsupc, OuterStride<>(lda) );
+ Map< Matrix<Scalar,Dynamic,Dest::ColsAtCompileTime, ColMajor>, 0, OuterStride<> > U (&(X(fsupc,0)), nsupc, nrhs, OuterStride<>(n) );
+ U = A.template triangularView<UnitLower>().solve(U);
+
+ // Matrix-vector product
+ new (&A) Map<const Matrix<Scalar,Dynamic,Dynamic, ColMajor>, 0, OuterStride<> > ( &(Lval[luptr+nsupc]), nrow, nsupc, OuterStride<>(lda) );
+ work.topRows(nrow).noalias() = A * U;
+
+ //Begin Scatter
+ for (Index j = 0; j < nrhs; j++)
+ {
+ Index iptr = istart + nsupc;
+ for (Index i = 0; i < nrow; i++)
+ {
+ irow = rowIndex()[iptr];
+ X(irow, j) -= work(i, j); // Scatter operation
+ work(i, j) = Scalar(0);
+ iptr++;
+ }
+ }
+ }
+ }
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSELU_MATRIX_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_Utils.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_Utils.h
new file mode 100644
index 000000000..9e3dab44d
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_Utils.h
@@ -0,0 +1,80 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+#ifndef EIGEN_SPARSELU_UTILS_H
+#define EIGEN_SPARSELU_UTILS_H
+
+namespace Eigen {
+namespace internal {
+
+/**
+ * \brief Count Nonzero elements in the factors
+ */
+template <typename Scalar, typename StorageIndex>
+void SparseLUImpl<Scalar,StorageIndex>::countnz(const Index n, Index& nnzL, Index& nnzU, GlobalLU_t& glu)
+{
+ nnzL = 0;
+ nnzU = (glu.xusub)(n);
+ Index nsuper = (glu.supno)(n);
+ Index jlen;
+ Index i, j, fsupc;
+ if (n <= 0 ) return;
+ // For each supernode
+ for (i = 0; i <= nsuper; i++)
+ {
+ fsupc = glu.xsup(i);
+ jlen = glu.xlsub(fsupc+1) - glu.xlsub(fsupc);
+
+ for (j = fsupc; j < glu.xsup(i+1); j++)
+ {
+ nnzL += jlen;
+ nnzU += j - fsupc + 1;
+ jlen--;
+ }
+ }
+}
+
+/**
+ * \brief Fix up the data storage lsub for L-subscripts.
+ *
+ * It removes the subscripts sets for structural pruning,
+ * and applies permutation to the remaining subscripts
+ *
+ */
+template <typename Scalar, typename StorageIndex>
+void SparseLUImpl<Scalar,StorageIndex>::fixupL(const Index n, const IndexVector& perm_r, GlobalLU_t& glu)
+{
+ Index fsupc, i, j, k, jstart;
+
+ StorageIndex nextl = 0;
+ Index nsuper = (glu.supno)(n);
+
+ // For each supernode
+ for (i = 0; i <= nsuper; i++)
+ {
+ fsupc = glu.xsup(i);
+ jstart = glu.xlsub(fsupc);
+ glu.xlsub(fsupc) = nextl;
+ for (j = jstart; j < glu.xlsub(fsupc + 1); j++)
+ {
+ glu.lsub(nextl) = perm_r(glu.lsub(j)); // Now indexed into P*A
+ nextl++;
+ }
+ for (k = fsupc+1; k < glu.xsup(i+1); k++)
+ glu.xlsub(k) = nextl; // other columns in supernode i
+ }
+
+ glu.xlsub(n) = nextl;
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+#endif // EIGEN_SPARSELU_UTILS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h
new file mode 100644
index 000000000..b57f06802
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h
@@ -0,0 +1,181 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/*
+
+ * NOTE: This file is the modified version of xcolumn_bmod.c file in SuperLU
+
+ * -- SuperLU routine (version 3.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * October 15, 2003
+ *
+ * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_COLUMN_BMOD_H
+#define SPARSELU_COLUMN_BMOD_H
+
+namespace Eigen {
+
+namespace internal {
+/**
+ * \brief Performs numeric block updates (sup-col) in topological order
+ *
+ * \param jcol current column to update
+ * \param nseg Number of segments in the U part
+ * \param dense Store the full representation of the column
+ * \param tempv working array
+ * \param segrep segment representative ...
+ * \param repfnz ??? First nonzero column in each row ??? ...
+ * \param fpanelc First column in the current panel
+ * \param glu Global LU data.
+ * \return 0 - successful return
+ * > 0 - number of bytes allocated when run out of space
+ *
+ */
+template <typename Scalar, typename StorageIndex>
+Index SparseLUImpl<Scalar,StorageIndex>::column_bmod(const Index jcol, const Index nseg, BlockScalarVector dense, ScalarVector& tempv,
+ BlockIndexVector segrep, BlockIndexVector repfnz, Index fpanelc, GlobalLU_t& glu)
+{
+ Index jsupno, k, ksub, krep, ksupno;
+ Index lptr, nrow, isub, irow, nextlu, new_next, ufirst;
+ Index fsupc, nsupc, nsupr, luptr, kfnz, no_zeros;
+ /* krep = representative of current k-th supernode
+ * fsupc = first supernodal column
+ * nsupc = number of columns in a supernode
+ * nsupr = number of rows in a supernode
+ * luptr = location of supernodal LU-block in storage
+ * kfnz = first nonz in the k-th supernodal segment
+ * no_zeros = no lf leading zeros in a supernodal U-segment
+ */
+
+ jsupno = glu.supno(jcol);
+ // For each nonzero supernode segment of U[*,j] in topological order
+ k = nseg - 1;
+ Index d_fsupc; // distance between the first column of the current panel and the
+ // first column of the current snode
+ Index fst_col; // First column within small LU update
+ Index segsize;
+ for (ksub = 0; ksub < nseg; ksub++)
+ {
+ krep = segrep(k); k--;
+ ksupno = glu.supno(krep);
+ if (jsupno != ksupno )
+ {
+ // outside the rectangular supernode
+ fsupc = glu.xsup(ksupno);
+ fst_col = (std::max)(fsupc, fpanelc);
+
+ // Distance from the current supernode to the current panel;
+ // d_fsupc = 0 if fsupc > fpanelc
+ d_fsupc = fst_col - fsupc;
+
+ luptr = glu.xlusup(fst_col) + d_fsupc;
+ lptr = glu.xlsub(fsupc) + d_fsupc;
+
+ kfnz = repfnz(krep);
+ kfnz = (std::max)(kfnz, fpanelc);
+
+ segsize = krep - kfnz + 1;
+ nsupc = krep - fst_col + 1;
+ nsupr = glu.xlsub(fsupc+1) - glu.xlsub(fsupc);
+ nrow = nsupr - d_fsupc - nsupc;
+ Index lda = glu.xlusup(fst_col+1) - glu.xlusup(fst_col);
+
+
+ // Perform a triangular solver and block update,
+ // then scatter the result of sup-col update to dense
+ no_zeros = kfnz - fst_col;
+ if(segsize==1)
+ LU_kernel_bmod<1>::run(segsize, dense, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+ else
+ LU_kernel_bmod<Dynamic>::run(segsize, dense, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+ } // end if jsupno
+ } // end for each segment
+
+ // Process the supernodal portion of L\U[*,j]
+ nextlu = glu.xlusup(jcol);
+ fsupc = glu.xsup(jsupno);
+
+ // copy the SPA dense into L\U[*,j]
+ Index mem;
+ new_next = nextlu + glu.xlsub(fsupc + 1) - glu.xlsub(fsupc);
+ Index offset = internal::first_multiple<Index>(new_next, internal::packet_traits<Scalar>::size) - new_next;
+ if(offset)
+ new_next += offset;
+ while (new_next > glu.nzlumax )
+ {
+ mem = memXpand<ScalarVector>(glu.lusup, glu.nzlumax, nextlu, LUSUP, glu.num_expansions);
+ if (mem) return mem;
+ }
+
+ for (isub = glu.xlsub(fsupc); isub < glu.xlsub(fsupc+1); isub++)
+ {
+ irow = glu.lsub(isub);
+ glu.lusup(nextlu) = dense(irow);
+ dense(irow) = Scalar(0.0);
+ ++nextlu;
+ }
+
+ if(offset)
+ {
+ glu.lusup.segment(nextlu,offset).setZero();
+ nextlu += offset;
+ }
+ glu.xlusup(jcol + 1) = StorageIndex(nextlu); // close L\U(*,jcol);
+
+ /* For more updates within the panel (also within the current supernode),
+ * should start from the first column of the panel, or the first column
+ * of the supernode, whichever is bigger. There are two cases:
+ * 1) fsupc < fpanelc, then fst_col <-- fpanelc
+ * 2) fsupc >= fpanelc, then fst_col <-- fsupc
+ */
+ fst_col = (std::max)(fsupc, fpanelc);
+
+ if (fst_col < jcol)
+ {
+ // Distance between the current supernode and the current panel
+ // d_fsupc = 0 if fsupc >= fpanelc
+ d_fsupc = fst_col - fsupc;
+
+ lptr = glu.xlsub(fsupc) + d_fsupc;
+ luptr = glu.xlusup(fst_col) + d_fsupc;
+ nsupr = glu.xlsub(fsupc+1) - glu.xlsub(fsupc); // leading dimension
+ nsupc = jcol - fst_col; // excluding jcol
+ nrow = nsupr - d_fsupc - nsupc;
+
+ // points to the beginning of jcol in snode L\U(jsupno)
+ ufirst = glu.xlusup(jcol) + d_fsupc;
+ Index lda = glu.xlusup(jcol+1) - glu.xlusup(jcol);
+ MappedMatrixBlock A( &(glu.lusup.data()[luptr]), nsupc, nsupc, OuterStride<>(lda) );
+ VectorBlock<ScalarVector> u(glu.lusup, ufirst, nsupc);
+ u = A.template triangularView<UnitLower>().solve(u);
+
+ new (&A) MappedMatrixBlock ( &(glu.lusup.data()[luptr+nsupc]), nrow, nsupc, OuterStride<>(lda) );
+ VectorBlock<ScalarVector> l(glu.lusup, ufirst+nsupc, nrow);
+ l.noalias() -= A * u;
+
+ } // End if fst_col
+ return 0;
+}
+
+} // end namespace internal
+} // end namespace Eigen
+
+#endif // SPARSELU_COLUMN_BMOD_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h
new file mode 100644
index 000000000..c98b30e32
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h
@@ -0,0 +1,179 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/*
+
+ * NOTE: This file is the modified version of [s,d,c,z]column_dfs.c file in SuperLU
+
+ * -- SuperLU routine (version 2.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * November 15, 1997
+ *
+ * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_COLUMN_DFS_H
+#define SPARSELU_COLUMN_DFS_H
+
+template <typename Scalar, typename StorageIndex> class SparseLUImpl;
+namespace Eigen {
+
+namespace internal {
+
+template<typename IndexVector, typename ScalarVector>
+struct column_dfs_traits : no_assignment_operator
+{
+ typedef typename ScalarVector::Scalar Scalar;
+ typedef typename IndexVector::Scalar StorageIndex;
+ column_dfs_traits(Index jcol, Index& jsuper, typename SparseLUImpl<Scalar, StorageIndex>::GlobalLU_t& glu, SparseLUImpl<Scalar, StorageIndex>& luImpl)
+ : m_jcol(jcol), m_jsuper_ref(jsuper), m_glu(glu), m_luImpl(luImpl)
+ {}
+ bool update_segrep(Index /*krep*/, Index /*jj*/)
+ {
+ return true;
+ }
+ void mem_expand(IndexVector& lsub, Index& nextl, Index chmark)
+ {
+ if (nextl >= m_glu.nzlmax)
+ m_luImpl.memXpand(lsub, m_glu.nzlmax, nextl, LSUB, m_glu.num_expansions);
+ if (chmark != (m_jcol-1)) m_jsuper_ref = emptyIdxLU;
+ }
+ enum { ExpandMem = true };
+
+ Index m_jcol;
+ Index& m_jsuper_ref;
+ typename SparseLUImpl<Scalar, StorageIndex>::GlobalLU_t& m_glu;
+ SparseLUImpl<Scalar, StorageIndex>& m_luImpl;
+};
+
+
+/**
+ * \brief Performs a symbolic factorization on column jcol and decide the supernode boundary
+ *
+ * A supernode representative is the last column of a supernode.
+ * The nonzeros in U[*,j] are segments that end at supernodes representatives.
+ * The routine returns a list of the supernodal representatives
+ * in topological order of the dfs that generates them.
+ * The location of the first nonzero in each supernodal segment
+ * (supernodal entry location) is also returned.
+ *
+ * \param m number of rows in the matrix
+ * \param jcol Current column
+ * \param perm_r Row permutation
+ * \param maxsuper Maximum number of column allowed in a supernode
+ * \param [in,out] nseg Number of segments in current U[*,j] - new segments appended
+ * \param lsub_col defines the rhs vector to start the dfs
+ * \param [in,out] segrep Segment representatives - new segments appended
+ * \param repfnz First nonzero location in each row
+ * \param xprune
+ * \param marker marker[i] == jj, if i was visited during dfs of current column jj;
+ * \param parent
+ * \param xplore working array
+ * \param glu global LU data
+ * \return 0 success
+ * > 0 number of bytes allocated when run out of space
+ *
+ */
+template <typename Scalar, typename StorageIndex>
+Index SparseLUImpl<Scalar,StorageIndex>::column_dfs(const Index m, const Index jcol, IndexVector& perm_r, Index maxsuper, Index& nseg,
+ BlockIndexVector lsub_col, IndexVector& segrep, BlockIndexVector repfnz, IndexVector& xprune,
+ IndexVector& marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu)
+{
+
+ Index jsuper = glu.supno(jcol);
+ Index nextl = glu.xlsub(jcol);
+ VectorBlock<IndexVector> marker2(marker, 2*m, m);
+
+
+ column_dfs_traits<IndexVector, ScalarVector> traits(jcol, jsuper, glu, *this);
+
+ // For each nonzero in A(*,jcol) do dfs
+ for (Index k = 0; ((k < m) ? lsub_col[k] != emptyIdxLU : false) ; k++)
+ {
+ Index krow = lsub_col(k);
+ lsub_col(k) = emptyIdxLU;
+ Index kmark = marker2(krow);
+
+ // krow was visited before, go to the next nonz;
+ if (kmark == jcol) continue;
+
+ dfs_kernel(StorageIndex(jcol), perm_r, nseg, glu.lsub, segrep, repfnz, xprune, marker2, parent,
+ xplore, glu, nextl, krow, traits);
+ } // for each nonzero ...
+
+ Index fsupc;
+ StorageIndex nsuper = glu.supno(jcol);
+ StorageIndex jcolp1 = StorageIndex(jcol) + 1;
+ Index jcolm1 = jcol - 1;
+
+ // check to see if j belongs in the same supernode as j-1
+ if ( jcol == 0 )
+ { // Do nothing for column 0
+ nsuper = glu.supno(0) = 0 ;
+ }
+ else
+ {
+ fsupc = glu.xsup(nsuper);
+ StorageIndex jptr = glu.xlsub(jcol); // Not yet compressed
+ StorageIndex jm1ptr = glu.xlsub(jcolm1);
+
+ // Use supernodes of type T2 : see SuperLU paper
+ if ( (nextl-jptr != jptr-jm1ptr-1) ) jsuper = emptyIdxLU;
+
+ // Make sure the number of columns in a supernode doesn't
+ // exceed threshold
+ if ( (jcol - fsupc) >= maxsuper) jsuper = emptyIdxLU;
+
+ /* If jcol starts a new supernode, reclaim storage space in
+ * glu.lsub from previous supernode. Note we only store
+ * the subscript set of the first and last columns of
+ * a supernode. (first for num values, last for pruning)
+ */
+ if (jsuper == emptyIdxLU)
+ { // starts a new supernode
+ if ( (fsupc < jcolm1-1) )
+ { // >= 3 columns in nsuper
+ StorageIndex ito = glu.xlsub(fsupc+1);
+ glu.xlsub(jcolm1) = ito;
+ StorageIndex istop = ito + jptr - jm1ptr;
+ xprune(jcolm1) = istop; // intialize xprune(jcol-1)
+ glu.xlsub(jcol) = istop;
+
+ for (StorageIndex ifrom = jm1ptr; ifrom < nextl; ++ifrom, ++ito)
+ glu.lsub(ito) = glu.lsub(ifrom);
+ nextl = ito; // = istop + length(jcol)
+ }
+ nsuper++;
+ glu.supno(jcol) = nsuper;
+ } // if a new supernode
+ } // end else: jcol > 0
+
+ // Tidy up the pointers before exit
+ glu.xsup(nsuper+1) = jcolp1;
+ glu.supno(jcolp1) = nsuper;
+ xprune(jcol) = StorageIndex(nextl); // Intialize upper bound for pruning
+ glu.xlsub(jcolp1) = StorageIndex(nextl);
+
+ return 0;
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
new file mode 100644
index 000000000..c32d8d8b1
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
@@ -0,0 +1,107 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+/*
+
+ * NOTE: This file is the modified version of [s,d,c,z]copy_to_ucol.c file in SuperLU
+
+ * -- SuperLU routine (version 2.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * November 15, 1997
+ *
+ * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_COPY_TO_UCOL_H
+#define SPARSELU_COPY_TO_UCOL_H
+
+namespace Eigen {
+namespace internal {
+
+/**
+ * \brief Performs numeric block updates (sup-col) in topological order
+ *
+ * \param jcol current column to update
+ * \param nseg Number of segments in the U part
+ * \param segrep segment representative ...
+ * \param repfnz First nonzero column in each row ...
+ * \param perm_r Row permutation
+ * \param dense Store the full representation of the column
+ * \param glu Global LU data.
+ * \return 0 - successful return
+ * > 0 - number of bytes allocated when run out of space
+ *
+ */
+template <typename Scalar, typename StorageIndex>
+Index SparseLUImpl<Scalar,StorageIndex>::copy_to_ucol(const Index jcol, const Index nseg, IndexVector& segrep,
+ BlockIndexVector repfnz ,IndexVector& perm_r, BlockScalarVector dense, GlobalLU_t& glu)
+{
+ Index ksub, krep, ksupno;
+
+ Index jsupno = glu.supno(jcol);
+
+ // For each nonzero supernode segment of U[*,j] in topological order
+ Index k = nseg - 1, i;
+ StorageIndex nextu = glu.xusub(jcol);
+ Index kfnz, isub, segsize;
+ Index new_next,irow;
+ Index fsupc, mem;
+ for (ksub = 0; ksub < nseg; ksub++)
+ {
+ krep = segrep(k); k--;
+ ksupno = glu.supno(krep);
+ if (jsupno != ksupno ) // should go into ucol();
+ {
+ kfnz = repfnz(krep);
+ if (kfnz != emptyIdxLU)
+ { // Nonzero U-segment
+ fsupc = glu.xsup(ksupno);
+ isub = glu.xlsub(fsupc) + kfnz - fsupc;
+ segsize = krep - kfnz + 1;
+ new_next = nextu + segsize;
+ while (new_next > glu.nzumax)
+ {
+ mem = memXpand<ScalarVector>(glu.ucol, glu.nzumax, nextu, UCOL, glu.num_expansions);
+ if (mem) return mem;
+ mem = memXpand<IndexVector>(glu.usub, glu.nzumax, nextu, USUB, glu.num_expansions);
+ if (mem) return mem;
+
+ }
+
+ for (i = 0; i < segsize; i++)
+ {
+ irow = glu.lsub(isub);
+ glu.usub(nextu) = perm_r(irow); // Unlike the L part, the U part is stored in its final order
+ glu.ucol(nextu) = dense(irow);
+ dense(irow) = Scalar(0.0);
+ nextu++;
+ isub++;
+ }
+
+ } // end nonzero U-segment
+
+ } // end if jsupno
+
+ } // end for each segment
+ glu.xusub(jcol + 1) = nextu; // close U(*,jcol)
+ return 0;
+}
+
+} // namespace internal
+} // end namespace Eigen
+
+#endif // SPARSELU_COPY_TO_UCOL_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h
new file mode 100644
index 000000000..95ba7413f
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h
@@ -0,0 +1,280 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSELU_GEMM_KERNEL_H
+#define EIGEN_SPARSELU_GEMM_KERNEL_H
+
+namespace Eigen {
+
+namespace internal {
+
+
+/** \internal
+ * A general matrix-matrix product kernel optimized for the SparseLU factorization.
+ * - A, B, and C must be column major
+ * - lda and ldc must be multiples of the respective packet size
+ * - C must have the same alignment as A
+ */
+template<typename Scalar>
+EIGEN_DONT_INLINE
+void sparselu_gemm(Index m, Index n, Index d, const Scalar* A, Index lda, const Scalar* B, Index ldb, Scalar* C, Index ldc)
+{
+ using namespace Eigen::internal;
+
+ typedef typename packet_traits<Scalar>::type Packet;
+ enum {
+ NumberOfRegisters = EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS,
+ PacketSize = packet_traits<Scalar>::size,
+ PM = 8, // peeling in M
+ RN = 2, // register blocking
+ RK = NumberOfRegisters>=16 ? 4 : 2, // register blocking
+ BM = 4096/sizeof(Scalar), // number of rows of A-C per chunk
+ SM = PM*PacketSize // step along M
+ };
+ Index d_end = (d/RK)*RK; // number of columns of A (rows of B) suitable for full register blocking
+ Index n_end = (n/RN)*RN; // number of columns of B-C suitable for processing RN columns at once
+ Index i0 = internal::first_default_aligned(A,m);
+
+ eigen_internal_assert(((lda%PacketSize)==0) && ((ldc%PacketSize)==0) && (i0==internal::first_default_aligned(C,m)));
+
+ // handle the non aligned rows of A and C without any optimization:
+ for(Index i=0; i<i0; ++i)
+ {
+ for(Index j=0; j<n; ++j)
+ {
+ Scalar c = C[i+j*ldc];
+ for(Index k=0; k<d; ++k)
+ c += B[k+j*ldb] * A[i+k*lda];
+ C[i+j*ldc] = c;
+ }
+ }
+ // process the remaining rows per chunk of BM rows
+ for(Index ib=i0; ib<m; ib+=BM)
+ {
+ Index actual_b = std::min<Index>(BM, m-ib); // actual number of rows
+ Index actual_b_end1 = (actual_b/SM)*SM; // actual number of rows suitable for peeling
+ Index actual_b_end2 = (actual_b/PacketSize)*PacketSize; // actual number of rows suitable for vectorization
+
+ // Let's process two columns of B-C at once
+ for(Index j=0; j<n_end; j+=RN)
+ {
+ const Scalar* Bc0 = B+(j+0)*ldb;
+ const Scalar* Bc1 = B+(j+1)*ldb;
+
+ for(Index k=0; k<d_end; k+=RK)
+ {
+
+ // load and expand a RN x RK block of B
+ Packet b00, b10, b20, b30, b01, b11, b21, b31;
+ { b00 = pset1<Packet>(Bc0[0]); }
+ { b10 = pset1<Packet>(Bc0[1]); }
+ if(RK==4) { b20 = pset1<Packet>(Bc0[2]); }
+ if(RK==4) { b30 = pset1<Packet>(Bc0[3]); }
+ { b01 = pset1<Packet>(Bc1[0]); }
+ { b11 = pset1<Packet>(Bc1[1]); }
+ if(RK==4) { b21 = pset1<Packet>(Bc1[2]); }
+ if(RK==4) { b31 = pset1<Packet>(Bc1[3]); }
+
+ Packet a0, a1, a2, a3, c0, c1, t0, t1;
+
+ const Scalar* A0 = A+ib+(k+0)*lda;
+ const Scalar* A1 = A+ib+(k+1)*lda;
+ const Scalar* A2 = A+ib+(k+2)*lda;
+ const Scalar* A3 = A+ib+(k+3)*lda;
+
+ Scalar* C0 = C+ib+(j+0)*ldc;
+ Scalar* C1 = C+ib+(j+1)*ldc;
+
+ a0 = pload<Packet>(A0);
+ a1 = pload<Packet>(A1);
+ if(RK==4)
+ {
+ a2 = pload<Packet>(A2);
+ a3 = pload<Packet>(A3);
+ }
+ else
+ {
+ // workaround "may be used uninitialized in this function" warning
+ a2 = a3 = a0;
+ }
+
+#define KMADD(c, a, b, tmp) {tmp = b; tmp = pmul(a,tmp); c = padd(c,tmp);}
+#define WORK(I) \
+ c0 = pload<Packet>(C0+i+(I)*PacketSize); \
+ c1 = pload<Packet>(C1+i+(I)*PacketSize); \
+ KMADD(c0, a0, b00, t0) \
+ KMADD(c1, a0, b01, t1) \
+ a0 = pload<Packet>(A0+i+(I+1)*PacketSize); \
+ KMADD(c0, a1, b10, t0) \
+ KMADD(c1, a1, b11, t1) \
+ a1 = pload<Packet>(A1+i+(I+1)*PacketSize); \
+ if(RK==4){ KMADD(c0, a2, b20, t0) }\
+ if(RK==4){ KMADD(c1, a2, b21, t1) }\
+ if(RK==4){ a2 = pload<Packet>(A2+i+(I+1)*PacketSize); }\
+ if(RK==4){ KMADD(c0, a3, b30, t0) }\
+ if(RK==4){ KMADD(c1, a3, b31, t1) }\
+ if(RK==4){ a3 = pload<Packet>(A3+i+(I+1)*PacketSize); }\
+ pstore(C0+i+(I)*PacketSize, c0); \
+ pstore(C1+i+(I)*PacketSize, c1)
+
+ // process rows of A' - C' with aggressive vectorization and peeling
+ for(Index i=0; i<actual_b_end1; i+=PacketSize*8)
+ {
+ EIGEN_ASM_COMMENT("SPARSELU_GEMML_KERNEL1");
+ prefetch((A0+i+(5)*PacketSize));
+ prefetch((A1+i+(5)*PacketSize));
+ if(RK==4) prefetch((A2+i+(5)*PacketSize));
+ if(RK==4) prefetch((A3+i+(5)*PacketSize));
+
+ WORK(0);
+ WORK(1);
+ WORK(2);
+ WORK(3);
+ WORK(4);
+ WORK(5);
+ WORK(6);
+ WORK(7);
+ }
+ // process the remaining rows with vectorization only
+ for(Index i=actual_b_end1; i<actual_b_end2; i+=PacketSize)
+ {
+ WORK(0);
+ }
+#undef WORK
+ // process the remaining rows without vectorization
+ for(Index i=actual_b_end2; i<actual_b; ++i)
+ {
+ if(RK==4)
+ {
+ C0[i] += A0[i]*Bc0[0]+A1[i]*Bc0[1]+A2[i]*Bc0[2]+A3[i]*Bc0[3];
+ C1[i] += A0[i]*Bc1[0]+A1[i]*Bc1[1]+A2[i]*Bc1[2]+A3[i]*Bc1[3];
+ }
+ else
+ {
+ C0[i] += A0[i]*Bc0[0]+A1[i]*Bc0[1];
+ C1[i] += A0[i]*Bc1[0]+A1[i]*Bc1[1];
+ }
+ }
+
+ Bc0 += RK;
+ Bc1 += RK;
+ } // peeled loop on k
+ } // peeled loop on the columns j
+ // process the last column (we now perform a matrix-vector product)
+ if((n-n_end)>0)
+ {
+ const Scalar* Bc0 = B+(n-1)*ldb;
+
+ for(Index k=0; k<d_end; k+=RK)
+ {
+
+ // load and expand a 1 x RK block of B
+ Packet b00, b10, b20, b30;
+ b00 = pset1<Packet>(Bc0[0]);
+ b10 = pset1<Packet>(Bc0[1]);
+ if(RK==4) b20 = pset1<Packet>(Bc0[2]);
+ if(RK==4) b30 = pset1<Packet>(Bc0[3]);
+
+ Packet a0, a1, a2, a3, c0, t0/*, t1*/;
+
+ const Scalar* A0 = A+ib+(k+0)*lda;
+ const Scalar* A1 = A+ib+(k+1)*lda;
+ const Scalar* A2 = A+ib+(k+2)*lda;
+ const Scalar* A3 = A+ib+(k+3)*lda;
+
+ Scalar* C0 = C+ib+(n_end)*ldc;
+
+ a0 = pload<Packet>(A0);
+ a1 = pload<Packet>(A1);
+ if(RK==4)
+ {
+ a2 = pload<Packet>(A2);
+ a3 = pload<Packet>(A3);
+ }
+ else
+ {
+ // workaround "may be used uninitialized in this function" warning
+ a2 = a3 = a0;
+ }
+
+#define WORK(I) \
+ c0 = pload<Packet>(C0+i+(I)*PacketSize); \
+ KMADD(c0, a0, b00, t0) \
+ a0 = pload<Packet>(A0+i+(I+1)*PacketSize); \
+ KMADD(c0, a1, b10, t0) \
+ a1 = pload<Packet>(A1+i+(I+1)*PacketSize); \
+ if(RK==4){ KMADD(c0, a2, b20, t0) }\
+ if(RK==4){ a2 = pload<Packet>(A2+i+(I+1)*PacketSize); }\
+ if(RK==4){ KMADD(c0, a3, b30, t0) }\
+ if(RK==4){ a3 = pload<Packet>(A3+i+(I+1)*PacketSize); }\
+ pstore(C0+i+(I)*PacketSize, c0);
+
+ // agressive vectorization and peeling
+ for(Index i=0; i<actual_b_end1; i+=PacketSize*8)
+ {
+ EIGEN_ASM_COMMENT("SPARSELU_GEMML_KERNEL2");
+ WORK(0);
+ WORK(1);
+ WORK(2);
+ WORK(3);
+ WORK(4);
+ WORK(5);
+ WORK(6);
+ WORK(7);
+ }
+ // vectorization only
+ for(Index i=actual_b_end1; i<actual_b_end2; i+=PacketSize)
+ {
+ WORK(0);
+ }
+ // remaining scalars
+ for(Index i=actual_b_end2; i<actual_b; ++i)
+ {
+ if(RK==4)
+ C0[i] += A0[i]*Bc0[0]+A1[i]*Bc0[1]+A2[i]*Bc0[2]+A3[i]*Bc0[3];
+ else
+ C0[i] += A0[i]*Bc0[0]+A1[i]*Bc0[1];
+ }
+
+ Bc0 += RK;
+#undef WORK
+ }
+ }
+
+ // process the last columns of A, corresponding to the last rows of B
+ Index rd = d-d_end;
+ if(rd>0)
+ {
+ for(Index j=0; j<n; ++j)
+ {
+ enum {
+ Alignment = PacketSize>1 ? Aligned : 0
+ };
+ typedef Map<Matrix<Scalar,Dynamic,1>, Alignment > MapVector;
+ typedef Map<const Matrix<Scalar,Dynamic,1>, Alignment > ConstMapVector;
+ if(rd==1) MapVector(C+j*ldc+ib,actual_b) += B[0+d_end+j*ldb] * ConstMapVector(A+(d_end+0)*lda+ib, actual_b);
+
+ else if(rd==2) MapVector(C+j*ldc+ib,actual_b) += B[0+d_end+j*ldb] * ConstMapVector(A+(d_end+0)*lda+ib, actual_b)
+ + B[1+d_end+j*ldb] * ConstMapVector(A+(d_end+1)*lda+ib, actual_b);
+
+ else MapVector(C+j*ldc+ib,actual_b) += B[0+d_end+j*ldb] * ConstMapVector(A+(d_end+0)*lda+ib, actual_b)
+ + B[1+d_end+j*ldb] * ConstMapVector(A+(d_end+1)*lda+ib, actual_b)
+ + B[2+d_end+j*ldb] * ConstMapVector(A+(d_end+2)*lda+ib, actual_b);
+ }
+ }
+
+ } // blocking on the rows of A and C
+}
+#undef KMADD
+
+} // namespace internal
+
+} // namespace Eigen
+
+#endif // EIGEN_SPARSELU_GEMM_KERNEL_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
new file mode 100644
index 000000000..6f75d500e
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
@@ -0,0 +1,126 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* This file is a modified version of heap_relax_snode.c file in SuperLU
+ * -- SuperLU routine (version 3.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * October 15, 2003
+ *
+ * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+
+#ifndef SPARSELU_HEAP_RELAX_SNODE_H
+#define SPARSELU_HEAP_RELAX_SNODE_H
+
+namespace Eigen {
+namespace internal {
+
+/**
+ * \brief Identify the initial relaxed supernodes
+ *
+ * This routine applied to a symmetric elimination tree.
+ * It assumes that the matrix has been reordered according to the postorder of the etree
+ * \param n The number of columns
+ * \param et elimination tree
+ * \param relax_columns Maximum number of columns allowed in a relaxed snode
+ * \param descendants Number of descendants of each node in the etree
+ * \param relax_end last column in a supernode
+ */
+template <typename Scalar, typename StorageIndex>
+void SparseLUImpl<Scalar,StorageIndex>::heap_relax_snode (const Index n, IndexVector& et, const Index relax_columns, IndexVector& descendants, IndexVector& relax_end)
+{
+
+ // The etree may not be postordered, but its heap ordered
+ IndexVector post;
+ internal::treePostorder(StorageIndex(n), et, post); // Post order etree
+ IndexVector inv_post(n+1);
+ for (StorageIndex i = 0; i < n+1; ++i) inv_post(post(i)) = i; // inv_post = post.inverse()???
+
+ // Renumber etree in postorder
+ IndexVector iwork(n);
+ IndexVector et_save(n+1);
+ for (Index i = 0; i < n; ++i)
+ {
+ iwork(post(i)) = post(et(i));
+ }
+ et_save = et; // Save the original etree
+ et = iwork;
+
+ // compute the number of descendants of each node in the etree
+ relax_end.setConstant(emptyIdxLU);
+ Index j, parent;
+ descendants.setZero();
+ for (j = 0; j < n; j++)
+ {
+ parent = et(j);
+ if (parent != n) // not the dummy root
+ descendants(parent) += descendants(j) + 1;
+ }
+ // Identify the relaxed supernodes by postorder traversal of the etree
+ Index snode_start; // beginning of a snode
+ StorageIndex k;
+ Index nsuper_et_post = 0; // Number of relaxed snodes in postordered etree
+ Index nsuper_et = 0; // Number of relaxed snodes in the original etree
+ StorageIndex l;
+ for (j = 0; j < n; )
+ {
+ parent = et(j);
+ snode_start = j;
+ while ( parent != n && descendants(parent) < relax_columns )
+ {
+ j = parent;
+ parent = et(j);
+ }
+ // Found a supernode in postordered etree, j is the last column
+ ++nsuper_et_post;
+ k = StorageIndex(n);
+ for (Index i = snode_start; i <= j; ++i)
+ k = (std::min)(k, inv_post(i));
+ l = inv_post(j);
+ if ( (l - k) == (j - snode_start) ) // Same number of columns in the snode
+ {
+ // This is also a supernode in the original etree
+ relax_end(k) = l; // Record last column
+ ++nsuper_et;
+ }
+ else
+ {
+ for (Index i = snode_start; i <= j; ++i)
+ {
+ l = inv_post(i);
+ if (descendants(i) == 0)
+ {
+ relax_end(l) = l;
+ ++nsuper_et;
+ }
+ }
+ }
+ j++;
+ // Search for a new leaf
+ while (descendants(j) != 0 && j < n) j++;
+ } // End postorder traversal of the etree
+
+ // Recover the original etree
+ et = et_save;
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+#endif // SPARSELU_HEAP_RELAX_SNODE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h
new file mode 100644
index 000000000..8c1b3e8bc
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h
@@ -0,0 +1,130 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef SPARSELU_KERNEL_BMOD_H
+#define SPARSELU_KERNEL_BMOD_H
+
+namespace Eigen {
+namespace internal {
+
+template <int SegSizeAtCompileTime> struct LU_kernel_bmod
+{
+ /** \internal
+ * \brief Performs numeric block updates from a given supernode to a single column
+ *
+ * \param segsize Size of the segment (and blocks ) to use for updates
+ * \param[in,out] dense Packed values of the original matrix
+ * \param tempv temporary vector to use for updates
+ * \param lusup array containing the supernodes
+ * \param lda Leading dimension in the supernode
+ * \param nrow Number of rows in the rectangular part of the supernode
+ * \param lsub compressed row subscripts of supernodes
+ * \param lptr pointer to the first column of the current supernode in lsub
+ * \param no_zeros Number of nonzeros elements before the diagonal part of the supernode
+ */
+ template <typename BlockScalarVector, typename ScalarVector, typename IndexVector>
+ static EIGEN_DONT_INLINE void run(const Index segsize, BlockScalarVector& dense, ScalarVector& tempv, ScalarVector& lusup, Index& luptr, const Index lda,
+ const Index nrow, IndexVector& lsub, const Index lptr, const Index no_zeros);
+};
+
+template <int SegSizeAtCompileTime>
+template <typename BlockScalarVector, typename ScalarVector, typename IndexVector>
+EIGEN_DONT_INLINE void LU_kernel_bmod<SegSizeAtCompileTime>::run(const Index segsize, BlockScalarVector& dense, ScalarVector& tempv, ScalarVector& lusup, Index& luptr, const Index lda,
+ const Index nrow, IndexVector& lsub, const Index lptr, const Index no_zeros)
+{
+ typedef typename ScalarVector::Scalar Scalar;
+ // First, copy U[*,j] segment from dense(*) to tempv(*)
+ // The result of triangular solve is in tempv[*];
+ // The result of matric-vector update is in dense[*]
+ Index isub = lptr + no_zeros;
+ Index i;
+ Index irow;
+ for (i = 0; i < ((SegSizeAtCompileTime==Dynamic)?segsize:SegSizeAtCompileTime); i++)
+ {
+ irow = lsub(isub);
+ tempv(i) = dense(irow);
+ ++isub;
+ }
+ // Dense triangular solve -- start effective triangle
+ luptr += lda * no_zeros + no_zeros;
+ // Form Eigen matrix and vector
+ Map<Matrix<Scalar,SegSizeAtCompileTime,SegSizeAtCompileTime, ColMajor>, 0, OuterStride<> > A( &(lusup.data()[luptr]), segsize, segsize, OuterStride<>(lda) );
+ Map<Matrix<Scalar,SegSizeAtCompileTime,1> > u(tempv.data(), segsize);
+
+ u = A.template triangularView<UnitLower>().solve(u);
+
+ // Dense matrix-vector product y <-- B*x
+ luptr += segsize;
+ const Index PacketSize = internal::packet_traits<Scalar>::size;
+ Index ldl = internal::first_multiple(nrow, PacketSize);
+ Map<Matrix<Scalar,Dynamic,SegSizeAtCompileTime, ColMajor>, 0, OuterStride<> > B( &(lusup.data()[luptr]), nrow, segsize, OuterStride<>(lda) );
+ Index aligned_offset = internal::first_default_aligned(tempv.data()+segsize, PacketSize);
+ Index aligned_with_B_offset = (PacketSize-internal::first_default_aligned(B.data(), PacketSize))%PacketSize;
+ Map<Matrix<Scalar,Dynamic,1>, 0, OuterStride<> > l(tempv.data()+segsize+aligned_offset+aligned_with_B_offset, nrow, OuterStride<>(ldl) );
+
+ l.setZero();
+ internal::sparselu_gemm<Scalar>(l.rows(), l.cols(), B.cols(), B.data(), B.outerStride(), u.data(), u.outerStride(), l.data(), l.outerStride());
+
+ // Scatter tempv[] into SPA dense[] as a temporary storage
+ isub = lptr + no_zeros;
+ for (i = 0; i < ((SegSizeAtCompileTime==Dynamic)?segsize:SegSizeAtCompileTime); i++)
+ {
+ irow = lsub(isub++);
+ dense(irow) = tempv(i);
+ }
+
+ // Scatter l into SPA dense[]
+ for (i = 0; i < nrow; i++)
+ {
+ irow = lsub(isub++);
+ dense(irow) -= l(i);
+ }
+}
+
+template <> struct LU_kernel_bmod<1>
+{
+ template <typename BlockScalarVector, typename ScalarVector, typename IndexVector>
+ static EIGEN_DONT_INLINE void run(const Index /*segsize*/, BlockScalarVector& dense, ScalarVector& /*tempv*/, ScalarVector& lusup, Index& luptr,
+ const Index lda, const Index nrow, IndexVector& lsub, const Index lptr, const Index no_zeros);
+};
+
+
+template <typename BlockScalarVector, typename ScalarVector, typename IndexVector>
+EIGEN_DONT_INLINE void LU_kernel_bmod<1>::run(const Index /*segsize*/, BlockScalarVector& dense, ScalarVector& /*tempv*/, ScalarVector& lusup, Index& luptr,
+ const Index lda, const Index nrow, IndexVector& lsub, const Index lptr, const Index no_zeros)
+{
+ typedef typename ScalarVector::Scalar Scalar;
+ typedef typename IndexVector::Scalar StorageIndex;
+ Scalar f = dense(lsub(lptr + no_zeros));
+ luptr += lda * no_zeros + no_zeros + 1;
+ const Scalar* a(lusup.data() + luptr);
+ const StorageIndex* irow(lsub.data()+lptr + no_zeros + 1);
+ Index i = 0;
+ for (; i+1 < nrow; i+=2)
+ {
+ Index i0 = *(irow++);
+ Index i1 = *(irow++);
+ Scalar a0 = *(a++);
+ Scalar a1 = *(a++);
+ Scalar d0 = dense.coeff(i0);
+ Scalar d1 = dense.coeff(i1);
+ d0 -= f*a0;
+ d1 -= f*a1;
+ dense.coeffRef(i0) = d0;
+ dense.coeffRef(i1) = d1;
+ }
+ if(i<nrow)
+ dense.coeffRef(*(irow++)) -= f * *(a++);
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+#endif // SPARSELU_KERNEL_BMOD_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h
new file mode 100644
index 000000000..822cf32c3
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h
@@ -0,0 +1,223 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/*
+
+ * NOTE: This file is the modified version of [s,d,c,z]panel_bmod.c file in SuperLU
+
+ * -- SuperLU routine (version 3.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * October 15, 2003
+ *
+ * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_PANEL_BMOD_H
+#define SPARSELU_PANEL_BMOD_H
+
+namespace Eigen {
+namespace internal {
+
+/**
+ * \brief Performs numeric block updates (sup-panel) in topological order.
+ *
+ * Before entering this routine, the original nonzeros in the panel
+ * were already copied i nto the spa[m,w]
+ *
+ * \param m number of rows in the matrix
+ * \param w Panel size
+ * \param jcol Starting column of the panel
+ * \param nseg Number of segments in the U part
+ * \param dense Store the full representation of the panel
+ * \param tempv working array
+ * \param segrep segment representative... first row in the segment
+ * \param repfnz First nonzero rows
+ * \param glu Global LU data.
+ *
+ *
+ */
+template <typename Scalar, typename StorageIndex>
+void SparseLUImpl<Scalar,StorageIndex>::panel_bmod(const Index m, const Index w, const Index jcol,
+ const Index nseg, ScalarVector& dense, ScalarVector& tempv,
+ IndexVector& segrep, IndexVector& repfnz, GlobalLU_t& glu)
+{
+
+ Index ksub,jj,nextl_col;
+ Index fsupc, nsupc, nsupr, nrow;
+ Index krep, kfnz;
+ Index lptr; // points to the row subscripts of a supernode
+ Index luptr; // ...
+ Index segsize,no_zeros ;
+ // For each nonz supernode segment of U[*,j] in topological order
+ Index k = nseg - 1;
+ const Index PacketSize = internal::packet_traits<Scalar>::size;
+
+ for (ksub = 0; ksub < nseg; ksub++)
+ { // For each updating supernode
+ /* krep = representative of current k-th supernode
+ * fsupc = first supernodal column
+ * nsupc = number of columns in a supernode
+ * nsupr = number of rows in a supernode
+ */
+ krep = segrep(k); k--;
+ fsupc = glu.xsup(glu.supno(krep));
+ nsupc = krep - fsupc + 1;
+ nsupr = glu.xlsub(fsupc+1) - glu.xlsub(fsupc);
+ nrow = nsupr - nsupc;
+ lptr = glu.xlsub(fsupc);
+
+ // loop over the panel columns to detect the actual number of columns and rows
+ Index u_rows = 0;
+ Index u_cols = 0;
+ for (jj = jcol; jj < jcol + w; jj++)
+ {
+ nextl_col = (jj-jcol) * m;
+ VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero column index for each row
+
+ kfnz = repfnz_col(krep);
+ if ( kfnz == emptyIdxLU )
+ continue; // skip any zero segment
+
+ segsize = krep - kfnz + 1;
+ u_cols++;
+ u_rows = (std::max)(segsize,u_rows);
+ }
+
+ if(nsupc >= 2)
+ {
+ Index ldu = internal::first_multiple<Index>(u_rows, PacketSize);
+ Map<ScalarMatrix, Aligned, OuterStride<> > U(tempv.data(), u_rows, u_cols, OuterStride<>(ldu));
+
+ // gather U
+ Index u_col = 0;
+ for (jj = jcol; jj < jcol + w; jj++)
+ {
+ nextl_col = (jj-jcol) * m;
+ VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero column index for each row
+ VectorBlock<ScalarVector> dense_col(dense, nextl_col, m); // Scatter/gather entire matrix column from/to here
+
+ kfnz = repfnz_col(krep);
+ if ( kfnz == emptyIdxLU )
+ continue; // skip any zero segment
+
+ segsize = krep - kfnz + 1;
+ luptr = glu.xlusup(fsupc);
+ no_zeros = kfnz - fsupc;
+
+ Index isub = lptr + no_zeros;
+ Index off = u_rows-segsize;
+ for (Index i = 0; i < off; i++) U(i,u_col) = 0;
+ for (Index i = 0; i < segsize; i++)
+ {
+ Index irow = glu.lsub(isub);
+ U(i+off,u_col) = dense_col(irow);
+ ++isub;
+ }
+ u_col++;
+ }
+ // solve U = A^-1 U
+ luptr = glu.xlusup(fsupc);
+ Index lda = glu.xlusup(fsupc+1) - glu.xlusup(fsupc);
+ no_zeros = (krep - u_rows + 1) - fsupc;
+ luptr += lda * no_zeros + no_zeros;
+ MappedMatrixBlock A(glu.lusup.data()+luptr, u_rows, u_rows, OuterStride<>(lda) );
+ U = A.template triangularView<UnitLower>().solve(U);
+
+ // update
+ luptr += u_rows;
+ MappedMatrixBlock B(glu.lusup.data()+luptr, nrow, u_rows, OuterStride<>(lda) );
+ eigen_assert(tempv.size()>w*ldu + nrow*w + 1);
+
+ Index ldl = internal::first_multiple<Index>(nrow, PacketSize);
+ Index offset = (PacketSize-internal::first_default_aligned(B.data(), PacketSize)) % PacketSize;
+ MappedMatrixBlock L(tempv.data()+w*ldu+offset, nrow, u_cols, OuterStride<>(ldl));
+
+ L.setZero();
+ internal::sparselu_gemm<Scalar>(L.rows(), L.cols(), B.cols(), B.data(), B.outerStride(), U.data(), U.outerStride(), L.data(), L.outerStride());
+
+ // scatter U and L
+ u_col = 0;
+ for (jj = jcol; jj < jcol + w; jj++)
+ {
+ nextl_col = (jj-jcol) * m;
+ VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero column index for each row
+ VectorBlock<ScalarVector> dense_col(dense, nextl_col, m); // Scatter/gather entire matrix column from/to here
+
+ kfnz = repfnz_col(krep);
+ if ( kfnz == emptyIdxLU )
+ continue; // skip any zero segment
+
+ segsize = krep - kfnz + 1;
+ no_zeros = kfnz - fsupc;
+ Index isub = lptr + no_zeros;
+
+ Index off = u_rows-segsize;
+ for (Index i = 0; i < segsize; i++)
+ {
+ Index irow = glu.lsub(isub++);
+ dense_col(irow) = U.coeff(i+off,u_col);
+ U.coeffRef(i+off,u_col) = 0;
+ }
+
+ // Scatter l into SPA dense[]
+ for (Index i = 0; i < nrow; i++)
+ {
+ Index irow = glu.lsub(isub++);
+ dense_col(irow) -= L.coeff(i,u_col);
+ L.coeffRef(i,u_col) = 0;
+ }
+ u_col++;
+ }
+ }
+ else // level 2 only
+ {
+ // Sequence through each column in the panel
+ for (jj = jcol; jj < jcol + w; jj++)
+ {
+ nextl_col = (jj-jcol) * m;
+ VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero column index for each row
+ VectorBlock<ScalarVector> dense_col(dense, nextl_col, m); // Scatter/gather entire matrix column from/to here
+
+ kfnz = repfnz_col(krep);
+ if ( kfnz == emptyIdxLU )
+ continue; // skip any zero segment
+
+ segsize = krep - kfnz + 1;
+ luptr = glu.xlusup(fsupc);
+
+ Index lda = glu.xlusup(fsupc+1)-glu.xlusup(fsupc);// nsupr
+
+ // Perform a trianglar solve and block update,
+ // then scatter the result of sup-col update to dense[]
+ no_zeros = kfnz - fsupc;
+ if(segsize==1) LU_kernel_bmod<1>::run(segsize, dense_col, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+ else if(segsize==2) LU_kernel_bmod<2>::run(segsize, dense_col, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+ else if(segsize==3) LU_kernel_bmod<3>::run(segsize, dense_col, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+ else LU_kernel_bmod<Dynamic>::run(segsize, dense_col, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+ } // End for each column in the panel
+ }
+
+ } // End for each updating supernode
+} // end panel bmod
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // SPARSELU_PANEL_BMOD_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h
new file mode 100644
index 000000000..155df7336
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h
@@ -0,0 +1,258 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/*
+
+ * NOTE: This file is the modified version of [s,d,c,z]panel_dfs.c file in SuperLU
+
+ * -- SuperLU routine (version 2.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * November 15, 1997
+ *
+ * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_PANEL_DFS_H
+#define SPARSELU_PANEL_DFS_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename IndexVector>
+struct panel_dfs_traits
+{
+ typedef typename IndexVector::Scalar StorageIndex;
+ panel_dfs_traits(Index jcol, StorageIndex* marker)
+ : m_jcol(jcol), m_marker(marker)
+ {}
+ bool update_segrep(Index krep, StorageIndex jj)
+ {
+ if(m_marker[krep]<m_jcol)
+ {
+ m_marker[krep] = jj;
+ return true;
+ }
+ return false;
+ }
+ void mem_expand(IndexVector& /*glu.lsub*/, Index /*nextl*/, Index /*chmark*/) {}
+ enum { ExpandMem = false };
+ Index m_jcol;
+ StorageIndex* m_marker;
+};
+
+
+template <typename Scalar, typename StorageIndex>
+template <typename Traits>
+void SparseLUImpl<Scalar,StorageIndex>::dfs_kernel(const StorageIndex jj, IndexVector& perm_r,
+ Index& nseg, IndexVector& panel_lsub, IndexVector& segrep,
+ Ref<IndexVector> repfnz_col, IndexVector& xprune, Ref<IndexVector> marker, IndexVector& parent,
+ IndexVector& xplore, GlobalLU_t& glu,
+ Index& nextl_col, Index krow, Traits& traits
+ )
+{
+
+ StorageIndex kmark = marker(krow);
+
+ // For each unmarked krow of jj
+ marker(krow) = jj;
+ StorageIndex kperm = perm_r(krow);
+ if (kperm == emptyIdxLU ) {
+ // krow is in L : place it in structure of L(*, jj)
+ panel_lsub(nextl_col++) = StorageIndex(krow); // krow is indexed into A
+
+ traits.mem_expand(panel_lsub, nextl_col, kmark);
+ }
+ else
+ {
+ // krow is in U : if its supernode-representative krep
+ // has been explored, update repfnz(*)
+ // krep = supernode representative of the current row
+ StorageIndex krep = glu.xsup(glu.supno(kperm)+1) - 1;
+ // First nonzero element in the current column:
+ StorageIndex myfnz = repfnz_col(krep);
+
+ if (myfnz != emptyIdxLU )
+ {
+ // Representative visited before
+ if (myfnz > kperm ) repfnz_col(krep) = kperm;
+
+ }
+ else
+ {
+ // Otherwise, perform dfs starting at krep
+ StorageIndex oldrep = emptyIdxLU;
+ parent(krep) = oldrep;
+ repfnz_col(krep) = kperm;
+ StorageIndex xdfs = glu.xlsub(krep);
+ Index maxdfs = xprune(krep);
+
+ StorageIndex kpar;
+ do
+ {
+ // For each unmarked kchild of krep
+ while (xdfs < maxdfs)
+ {
+ StorageIndex kchild = glu.lsub(xdfs);
+ xdfs++;
+ StorageIndex chmark = marker(kchild);
+
+ if (chmark != jj )
+ {
+ marker(kchild) = jj;
+ StorageIndex chperm = perm_r(kchild);
+
+ if (chperm == emptyIdxLU)
+ {
+ // case kchild is in L: place it in L(*, j)
+ panel_lsub(nextl_col++) = kchild;
+ traits.mem_expand(panel_lsub, nextl_col, chmark);
+ }
+ else
+ {
+ // case kchild is in U :
+ // chrep = its supernode-rep. If its rep has been explored,
+ // update its repfnz(*)
+ StorageIndex chrep = glu.xsup(glu.supno(chperm)+1) - 1;
+ myfnz = repfnz_col(chrep);
+
+ if (myfnz != emptyIdxLU)
+ { // Visited before
+ if (myfnz > chperm)
+ repfnz_col(chrep) = chperm;
+ }
+ else
+ { // Cont. dfs at snode-rep of kchild
+ xplore(krep) = xdfs;
+ oldrep = krep;
+ krep = chrep; // Go deeper down G(L)
+ parent(krep) = oldrep;
+ repfnz_col(krep) = chperm;
+ xdfs = glu.xlsub(krep);
+ maxdfs = xprune(krep);
+
+ } // end if myfnz != -1
+ } // end if chperm == -1
+
+ } // end if chmark !=jj
+ } // end while xdfs < maxdfs
+
+ // krow has no more unexplored nbrs :
+ // Place snode-rep krep in postorder DFS, if this
+ // segment is seen for the first time. (Note that
+ // "repfnz(krep)" may change later.)
+ // Baktrack dfs to its parent
+ if(traits.update_segrep(krep,jj))
+ //if (marker1(krep) < jcol )
+ {
+ segrep(nseg) = krep;
+ ++nseg;
+ //marker1(krep) = jj;
+ }
+
+ kpar = parent(krep); // Pop recursion, mimic recursion
+ if (kpar == emptyIdxLU)
+ break; // dfs done
+ krep = kpar;
+ xdfs = xplore(krep);
+ maxdfs = xprune(krep);
+
+ } while (kpar != emptyIdxLU); // Do until empty stack
+
+ } // end if (myfnz = -1)
+
+ } // end if (kperm == -1)
+}
+
+/**
+ * \brief Performs a symbolic factorization on a panel of columns [jcol, jcol+w)
+ *
+ * A supernode representative is the last column of a supernode.
+ * The nonzeros in U[*,j] are segments that end at supernodes representatives
+ *
+ * The routine returns a list of the supernodal representatives
+ * in topological order of the dfs that generates them. This list is
+ * a superset of the topological order of each individual column within
+ * the panel.
+ * The location of the first nonzero in each supernodal segment
+ * (supernodal entry location) is also returned. Each column has
+ * a separate list for this purpose.
+ *
+ * Two markers arrays are used for dfs :
+ * marker[i] == jj, if i was visited during dfs of current column jj;
+ * marker1[i] >= jcol, if i was visited by earlier columns in this panel;
+ *
+ * \param[in] m number of rows in the matrix
+ * \param[in] w Panel size
+ * \param[in] jcol Starting column of the panel
+ * \param[in] A Input matrix in column-major storage
+ * \param[in] perm_r Row permutation
+ * \param[out] nseg Number of U segments
+ * \param[out] dense Accumulate the column vectors of the panel
+ * \param[out] panel_lsub Subscripts of the row in the panel
+ * \param[out] segrep Segment representative i.e first nonzero row of each segment
+ * \param[out] repfnz First nonzero location in each row
+ * \param[out] xprune The pruned elimination tree
+ * \param[out] marker work vector
+ * \param parent The elimination tree
+ * \param xplore work vector
+ * \param glu The global data structure
+ *
+ */
+
+template <typename Scalar, typename StorageIndex>
+void SparseLUImpl<Scalar,StorageIndex>::panel_dfs(const Index m, const Index w, const Index jcol, MatrixType& A, IndexVector& perm_r, Index& nseg, ScalarVector& dense, IndexVector& panel_lsub, IndexVector& segrep, IndexVector& repfnz, IndexVector& xprune, IndexVector& marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu)
+{
+ Index nextl_col; // Next available position in panel_lsub[*,jj]
+
+ // Initialize pointers
+ VectorBlock<IndexVector> marker1(marker, m, m);
+ nseg = 0;
+
+ panel_dfs_traits<IndexVector> traits(jcol, marker1.data());
+
+ // For each column in the panel
+ for (StorageIndex jj = StorageIndex(jcol); jj < jcol + w; jj++)
+ {
+ nextl_col = (jj - jcol) * m;
+
+ VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero location in each row
+ VectorBlock<ScalarVector> dense_col(dense,nextl_col, m); // Accumulate a column vector here
+
+
+ // For each nnz in A[*, jj] do depth first search
+ for (typename MatrixType::InnerIterator it(A, jj); it; ++it)
+ {
+ Index krow = it.row();
+ dense_col(krow) = it.value();
+
+ StorageIndex kmark = marker(krow);
+ if (kmark == jj)
+ continue; // krow visited before, go to the next nonzero
+
+ dfs_kernel(jj, perm_r, nseg, panel_lsub, segrep, repfnz_col, xprune, marker, parent,
+ xplore, glu, nextl_col, krow, traits);
+ }// end for nonzeros in column jj
+
+ } // end for column jj
+}
+
+} // end namespace internal
+} // end namespace Eigen
+
+#endif // SPARSELU_PANEL_DFS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h
new file mode 100644
index 000000000..a86dac93f
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h
@@ -0,0 +1,137 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/*
+
+ * NOTE: This file is the modified version of xpivotL.c file in SuperLU
+
+ * -- SuperLU routine (version 3.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * October 15, 2003
+ *
+ * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_PIVOTL_H
+#define SPARSELU_PIVOTL_H
+
+namespace Eigen {
+namespace internal {
+
+/**
+ * \brief Performs the numerical pivotin on the current column of L, and the CDIV operation.
+ *
+ * Pivot policy :
+ * (1) Compute thresh = u * max_(i>=j) abs(A_ij);
+ * (2) IF user specifies pivot row k and abs(A_kj) >= thresh THEN
+ * pivot row = k;
+ * ELSE IF abs(A_jj) >= thresh THEN
+ * pivot row = j;
+ * ELSE
+ * pivot row = m;
+ *
+ * Note: If you absolutely want to use a given pivot order, then set u=0.0.
+ *
+ * \param jcol The current column of L
+ * \param diagpivotthresh diagonal pivoting threshold
+ * \param[in,out] perm_r Row permutation (threshold pivoting)
+ * \param[in] iperm_c column permutation - used to finf diagonal of Pc*A*Pc'
+ * \param[out] pivrow The pivot row
+ * \param glu Global LU data
+ * \return 0 if success, i > 0 if U(i,i) is exactly zero
+ *
+ */
+template <typename Scalar, typename StorageIndex>
+Index SparseLUImpl<Scalar,StorageIndex>::pivotL(const Index jcol, const RealScalar& diagpivotthresh, IndexVector& perm_r, IndexVector& iperm_c, Index& pivrow, GlobalLU_t& glu)
+{
+
+ Index fsupc = (glu.xsup)((glu.supno)(jcol)); // First column in the supernode containing the column jcol
+ Index nsupc = jcol - fsupc; // Number of columns in the supernode portion, excluding jcol; nsupc >=0
+ Index lptr = glu.xlsub(fsupc); // pointer to the starting location of the row subscripts for this supernode portion
+ Index nsupr = glu.xlsub(fsupc+1) - lptr; // Number of rows in the supernode
+ Index lda = glu.xlusup(fsupc+1) - glu.xlusup(fsupc); // leading dimension
+ Scalar* lu_sup_ptr = &(glu.lusup.data()[glu.xlusup(fsupc)]); // Start of the current supernode
+ Scalar* lu_col_ptr = &(glu.lusup.data()[glu.xlusup(jcol)]); // Start of jcol in the supernode
+ StorageIndex* lsub_ptr = &(glu.lsub.data()[lptr]); // Start of row indices of the supernode
+
+ // Determine the largest abs numerical value for partial pivoting
+ Index diagind = iperm_c(jcol); // diagonal index
+ RealScalar pivmax(-1.0);
+ Index pivptr = nsupc;
+ Index diag = emptyIdxLU;
+ RealScalar rtemp;
+ Index isub, icol, itemp, k;
+ for (isub = nsupc; isub < nsupr; ++isub) {
+ using std::abs;
+ rtemp = abs(lu_col_ptr[isub]);
+ if (rtemp > pivmax) {
+ pivmax = rtemp;
+ pivptr = isub;
+ }
+ if (lsub_ptr[isub] == diagind) diag = isub;
+ }
+
+ // Test for singularity
+ if ( pivmax <= RealScalar(0.0) ) {
+ // if pivmax == -1, the column is structurally empty, otherwise it is only numerically zero
+ pivrow = pivmax < RealScalar(0.0) ? diagind : lsub_ptr[pivptr];
+ perm_r(pivrow) = StorageIndex(jcol);
+ return (jcol+1);
+ }
+
+ RealScalar thresh = diagpivotthresh * pivmax;
+
+ // Choose appropriate pivotal element
+
+ {
+ // Test if the diagonal element can be used as a pivot (given the threshold value)
+ if (diag >= 0 )
+ {
+ // Diagonal element exists
+ using std::abs;
+ rtemp = abs(lu_col_ptr[diag]);
+ if (rtemp != RealScalar(0.0) && rtemp >= thresh) pivptr = diag;
+ }
+ pivrow = lsub_ptr[pivptr];
+ }
+
+ // Record pivot row
+ perm_r(pivrow) = StorageIndex(jcol);
+ // Interchange row subscripts
+ if (pivptr != nsupc )
+ {
+ std::swap( lsub_ptr[pivptr], lsub_ptr[nsupc] );
+ // Interchange numerical values as well, for the two rows in the whole snode
+ // such that L is indexed the same way as A
+ for (icol = 0; icol <= nsupc; icol++)
+ {
+ itemp = pivptr + icol * lda;
+ std::swap(lu_sup_ptr[itemp], lu_sup_ptr[nsupc + icol * lda]);
+ }
+ }
+ // cdiv operations
+ Scalar temp = Scalar(1.0) / lu_col_ptr[nsupc];
+ for (k = nsupc+1; k < nsupr; k++)
+ lu_col_ptr[k] *= temp;
+ return 0;
+}
+
+} // end namespace internal
+} // end namespace Eigen
+
+#endif // SPARSELU_PIVOTL_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h
new file mode 100644
index 000000000..ad32fed5e
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h
@@ -0,0 +1,136 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/*
+
+ * NOTE: This file is the modified version of [s,d,c,z]pruneL.c file in SuperLU
+
+ * -- SuperLU routine (version 2.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * November 15, 1997
+ *
+ * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_PRUNEL_H
+#define SPARSELU_PRUNEL_H
+
+namespace Eigen {
+namespace internal {
+
+/**
+ * \brief Prunes the L-structure.
+ *
+ * It prunes the L-structure of supernodes whose L-structure contains the current pivot row "pivrow"
+ *
+ *
+ * \param jcol The current column of L
+ * \param[in] perm_r Row permutation
+ * \param[out] pivrow The pivot row
+ * \param nseg Number of segments
+ * \param segrep
+ * \param repfnz
+ * \param[out] xprune
+ * \param glu Global LU data
+ *
+ */
+template <typename Scalar, typename StorageIndex>
+void SparseLUImpl<Scalar,StorageIndex>::pruneL(const Index jcol, const IndexVector& perm_r, const Index pivrow, const Index nseg,
+ const IndexVector& segrep, BlockIndexVector repfnz, IndexVector& xprune, GlobalLU_t& glu)
+{
+ // For each supernode-rep irep in U(*,j]
+ Index jsupno = glu.supno(jcol);
+ Index i,irep,irep1;
+ bool movnum, do_prune = false;
+ Index kmin = 0, kmax = 0, minloc, maxloc,krow;
+ for (i = 0; i < nseg; i++)
+ {
+ irep = segrep(i);
+ irep1 = irep + 1;
+ do_prune = false;
+
+ // Don't prune with a zero U-segment
+ if (repfnz(irep) == emptyIdxLU) continue;
+
+ // If a snode overlaps with the next panel, then the U-segment
+ // is fragmented into two parts -- irep and irep1. We should let
+ // pruning occur at the rep-column in irep1s snode.
+ if (glu.supno(irep) == glu.supno(irep1) ) continue; // don't prune
+
+ // If it has not been pruned & it has a nonz in row L(pivrow,i)
+ if (glu.supno(irep) != jsupno )
+ {
+ if ( xprune (irep) >= glu.xlsub(irep1) )
+ {
+ kmin = glu.xlsub(irep);
+ kmax = glu.xlsub(irep1) - 1;
+ for (krow = kmin; krow <= kmax; krow++)
+ {
+ if (glu.lsub(krow) == pivrow)
+ {
+ do_prune = true;
+ break;
+ }
+ }
+ }
+
+ if (do_prune)
+ {
+ // do a quicksort-type partition
+ // movnum=true means that the num values have to be exchanged
+ movnum = false;
+ if (irep == glu.xsup(glu.supno(irep)) ) // Snode of size 1
+ movnum = true;
+
+ while (kmin <= kmax)
+ {
+ if (perm_r(glu.lsub(kmax)) == emptyIdxLU)
+ kmax--;
+ else if ( perm_r(glu.lsub(kmin)) != emptyIdxLU)
+ kmin++;
+ else
+ {
+ // kmin below pivrow (not yet pivoted), and kmax
+ // above pivrow: interchange the two suscripts
+ std::swap(glu.lsub(kmin), glu.lsub(kmax));
+
+ // If the supernode has only one column, then we
+ // only keep one set of subscripts. For any subscript
+ // intercnahge performed, similar interchange must be
+ // done on the numerical values.
+ if (movnum)
+ {
+ minloc = glu.xlusup(irep) + ( kmin - glu.xlsub(irep) );
+ maxloc = glu.xlusup(irep) + ( kmax - glu.xlsub(irep) );
+ std::swap(glu.lusup(minloc), glu.lusup(maxloc));
+ }
+ kmin++;
+ kmax--;
+ }
+ } // end while
+
+ xprune(irep) = StorageIndex(kmin); //Pruning
+ } // end if do_prune
+ } // end pruning
+ } // End for each U-segment
+}
+
+} // end namespace internal
+} // end namespace Eigen
+
+#endif // SPARSELU_PRUNEL_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h
new file mode 100644
index 000000000..c408d01b4
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h
@@ -0,0 +1,83 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* This file is a modified version of heap_relax_snode.c file in SuperLU
+ * -- SuperLU routine (version 3.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * October 15, 2003
+ *
+ * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+
+#ifndef SPARSELU_RELAX_SNODE_H
+#define SPARSELU_RELAX_SNODE_H
+
+namespace Eigen {
+
+namespace internal {
+
+/**
+ * \brief Identify the initial relaxed supernodes
+ *
+ * This routine is applied to a column elimination tree.
+ * It assumes that the matrix has been reordered according to the postorder of the etree
+ * \param n the number of columns
+ * \param et elimination tree
+ * \param relax_columns Maximum number of columns allowed in a relaxed snode
+ * \param descendants Number of descendants of each node in the etree
+ * \param relax_end last column in a supernode
+ */
+template <typename Scalar, typename StorageIndex>
+void SparseLUImpl<Scalar,StorageIndex>::relax_snode (const Index n, IndexVector& et, const Index relax_columns, IndexVector& descendants, IndexVector& relax_end)
+{
+
+ // compute the number of descendants of each node in the etree
+ Index parent;
+ relax_end.setConstant(emptyIdxLU);
+ descendants.setZero();
+ for (Index j = 0; j < n; j++)
+ {
+ parent = et(j);
+ if (parent != n) // not the dummy root
+ descendants(parent) += descendants(j) + 1;
+ }
+ // Identify the relaxed supernodes by postorder traversal of the etree
+ Index snode_start; // beginning of a snode
+ for (Index j = 0; j < n; )
+ {
+ parent = et(j);
+ snode_start = j;
+ while ( parent != n && descendants(parent) < relax_columns )
+ {
+ j = parent;
+ parent = et(j);
+ }
+ // Found a supernode in postordered etree, j is the last column
+ relax_end(snode_start) = StorageIndex(j); // Record last column
+ j++;
+ // Search for a new leaf
+ while (descendants(j) != 0 && j < n) j++;
+ } // End postorder traversal of the etree
+
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+#endif
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SparseQR/SparseQR.h b/runtimes/nn/depend/external/eigen/Eigen/src/SparseQR/SparseQR.h
new file mode 100644
index 000000000..2d4498b03
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SparseQR/SparseQR.h
@@ -0,0 +1,739 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012-2013 Desire Nuentsa <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2012-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_QR_H
+#define EIGEN_SPARSE_QR_H
+
+namespace Eigen {
+
+template<typename MatrixType, typename OrderingType> class SparseQR;
+template<typename SparseQRType> struct SparseQRMatrixQReturnType;
+template<typename SparseQRType> struct SparseQRMatrixQTransposeReturnType;
+template<typename SparseQRType, typename Derived> struct SparseQR_QProduct;
+namespace internal {
+ template <typename SparseQRType> struct traits<SparseQRMatrixQReturnType<SparseQRType> >
+ {
+ typedef typename SparseQRType::MatrixType ReturnType;
+ typedef typename ReturnType::StorageIndex StorageIndex;
+ typedef typename ReturnType::StorageKind StorageKind;
+ enum {
+ RowsAtCompileTime = Dynamic,
+ ColsAtCompileTime = Dynamic
+ };
+ };
+ template <typename SparseQRType> struct traits<SparseQRMatrixQTransposeReturnType<SparseQRType> >
+ {
+ typedef typename SparseQRType::MatrixType ReturnType;
+ };
+ template <typename SparseQRType, typename Derived> struct traits<SparseQR_QProduct<SparseQRType, Derived> >
+ {
+ typedef typename Derived::PlainObject ReturnType;
+ };
+} // End namespace internal
+
+/**
+ * \ingroup SparseQR_Module
+ * \class SparseQR
+ * \brief Sparse left-looking rank-revealing QR factorization
+ *
+ * This class implements a left-looking rank-revealing QR decomposition
+ * of sparse matrices. When a column has a norm less than a given tolerance
+ * it is implicitly permuted to the end. The QR factorization thus obtained is
+ * given by A*P = Q*R where R is upper triangular or trapezoidal.
+ *
+ * P is the column permutation which is the product of the fill-reducing and the
+ * rank-revealing permutations. Use colsPermutation() to get it.
+ *
+ * Q is the orthogonal matrix represented as products of Householder reflectors.
+ * Use matrixQ() to get an expression and matrixQ().transpose() to get the transpose.
+ * You can then apply it to a vector.
+ *
+ * R is the sparse triangular or trapezoidal matrix. The later occurs when A is rank-deficient.
+ * matrixR().topLeftCorner(rank(), rank()) always returns a triangular factor of full rank.
+ *
+ * \tparam _MatrixType The type of the sparse matrix A, must be a column-major SparseMatrix<>
+ * \tparam _OrderingType The fill-reducing ordering method. See the \link OrderingMethods_Module
+ * OrderingMethods \endlink module for the list of built-in and external ordering methods.
+ *
+ * \implsparsesolverconcept
+ *
+ * \warning The input sparse matrix A must be in compressed mode (see SparseMatrix::makeCompressed()).
+ *
+ */
+template<typename _MatrixType, typename _OrderingType>
+class SparseQR : public SparseSolverBase<SparseQR<_MatrixType,_OrderingType> >
+{
+ protected:
+ typedef SparseSolverBase<SparseQR<_MatrixType,_OrderingType> > Base;
+ using Base::m_isInitialized;
+ public:
+ using Base::_solve_impl;
+ typedef _MatrixType MatrixType;
+ typedef _OrderingType OrderingType;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef SparseMatrix<Scalar,ColMajor,StorageIndex> QRMatrixType;
+ typedef Matrix<StorageIndex, Dynamic, 1> IndexVector;
+ typedef Matrix<Scalar, Dynamic, 1> ScalarVector;
+ typedef PermutationMatrix<Dynamic, Dynamic, StorageIndex> PermutationType;
+
+ enum {
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+
+ public:
+ SparseQR () : m_analysisIsok(false), m_lastError(""), m_useDefaultThreshold(true),m_isQSorted(false),m_isEtreeOk(false)
+ { }
+
+ /** Construct a QR factorization of the matrix \a mat.
+ *
+ * \warning The matrix \a mat must be in compressed mode (see SparseMatrix::makeCompressed()).
+ *
+ * \sa compute()
+ */
+ explicit SparseQR(const MatrixType& mat) : m_analysisIsok(false), m_lastError(""), m_useDefaultThreshold(true),m_isQSorted(false),m_isEtreeOk(false)
+ {
+ compute(mat);
+ }
+
+ /** Computes the QR factorization of the sparse matrix \a mat.
+ *
+ * \warning The matrix \a mat must be in compressed mode (see SparseMatrix::makeCompressed()).
+ *
+ * \sa analyzePattern(), factorize()
+ */
+ void compute(const MatrixType& mat)
+ {
+ analyzePattern(mat);
+ factorize(mat);
+ }
+ void analyzePattern(const MatrixType& mat);
+ void factorize(const MatrixType& mat);
+
+ /** \returns the number of rows of the represented matrix.
+ */
+ inline Index rows() const { return m_pmat.rows(); }
+
+ /** \returns the number of columns of the represented matrix.
+ */
+ inline Index cols() const { return m_pmat.cols();}
+
+ /** \returns a const reference to the \b sparse upper triangular matrix R of the QR factorization.
+ * \warning The entries of the returned matrix are not sorted. This means that using it in algorithms
+ * expecting sorted entries will fail. This include random coefficient accesses (SpaseMatrix::coeff()),
+ * and coefficient-wise operations. Matrix products and triangular solves are fine though.
+ *
+ * To sort the entries, you can assign it to a row-major matrix, and if a column-major matrix
+ * is required, you can copy it again:
+ * \code
+ * SparseMatrix<double> R = qr.matrixR(); // column-major, not sorted!
+ * SparseMatrix<double,RowMajor> Rr = qr.matrixR(); // row-major, sorted
+ * SparseMatrix<double> Rc = Rr; // column-major, sorted
+ * \endcode
+ */
+ const QRMatrixType& matrixR() const { return m_R; }
+
+ /** \returns the number of non linearly dependent columns as determined by the pivoting threshold.
+ *
+ * \sa setPivotThreshold()
+ */
+ Index rank() const
+ {
+ eigen_assert(m_isInitialized && "The factorization should be called first, use compute()");
+ return m_nonzeropivots;
+ }
+
+ /** \returns an expression of the matrix Q as products of sparse Householder reflectors.
+ * The common usage of this function is to apply it to a dense matrix or vector
+ * \code
+ * VectorXd B1, B2;
+ * // Initialize B1
+ * B2 = matrixQ() * B1;
+ * \endcode
+ *
+ * To get a plain SparseMatrix representation of Q:
+ * \code
+ * SparseMatrix<double> Q;
+ * Q = SparseQR<SparseMatrix<double> >(A).matrixQ();
+ * \endcode
+ * Internally, this call simply performs a sparse product between the matrix Q
+ * and a sparse identity matrix. However, due to the fact that the sparse
+ * reflectors are stored unsorted, two transpositions are needed to sort
+ * them before performing the product.
+ */
+ SparseQRMatrixQReturnType<SparseQR> matrixQ() const
+ { return SparseQRMatrixQReturnType<SparseQR>(*this); }
+
+ /** \returns a const reference to the column permutation P that was applied to A such that A*P = Q*R
+ * It is the combination of the fill-in reducing permutation and numerical column pivoting.
+ */
+ const PermutationType& colsPermutation() const
+ {
+ eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+ return m_outputPerm_c;
+ }
+
+ /** \returns A string describing the type of error.
+ * This method is provided to ease debugging, not to handle errors.
+ */
+ std::string lastErrorMessage() const { return m_lastError; }
+
+ /** \internal */
+ template<typename Rhs, typename Dest>
+ bool _solve_impl(const MatrixBase<Rhs> &B, MatrixBase<Dest> &dest) const
+ {
+ eigen_assert(m_isInitialized && "The factorization should be called first, use compute()");
+ eigen_assert(this->rows() == B.rows() && "SparseQR::solve() : invalid number of rows in the right hand side matrix");
+
+ Index rank = this->rank();
+
+ // Compute Q^T * b;
+ typename Dest::PlainObject y, b;
+ y = this->matrixQ().transpose() * B;
+ b = y;
+
+ // Solve with the triangular matrix R
+ y.resize((std::max<Index>)(cols(),y.rows()),y.cols());
+ y.topRows(rank) = this->matrixR().topLeftCorner(rank, rank).template triangularView<Upper>().solve(b.topRows(rank));
+ y.bottomRows(y.rows()-rank).setZero();
+
+ // Apply the column permutation
+ if (m_perm_c.size()) dest = colsPermutation() * y.topRows(cols());
+ else dest = y.topRows(cols());
+
+ m_info = Success;
+ return true;
+ }
+
+ /** Sets the threshold that is used to determine linearly dependent columns during the factorization.
+ *
+ * In practice, if during the factorization the norm of the column that has to be eliminated is below
+ * this threshold, then the entire column is treated as zero, and it is moved at the end.
+ */
+ void setPivotThreshold(const RealScalar& threshold)
+ {
+ m_useDefaultThreshold = false;
+ m_threshold = threshold;
+ }
+
+ /** \returns the solution X of \f$ A X = B \f$ using the current decomposition of A.
+ *
+ * \sa compute()
+ */
+ template<typename Rhs>
+ inline const Solve<SparseQR, Rhs> solve(const MatrixBase<Rhs>& B) const
+ {
+ eigen_assert(m_isInitialized && "The factorization should be called first, use compute()");
+ eigen_assert(this->rows() == B.rows() && "SparseQR::solve() : invalid number of rows in the right hand side matrix");
+ return Solve<SparseQR, Rhs>(*this, B.derived());
+ }
+ template<typename Rhs>
+ inline const Solve<SparseQR, Rhs> solve(const SparseMatrixBase<Rhs>& B) const
+ {
+ eigen_assert(m_isInitialized && "The factorization should be called first, use compute()");
+ eigen_assert(this->rows() == B.rows() && "SparseQR::solve() : invalid number of rows in the right hand side matrix");
+ return Solve<SparseQR, Rhs>(*this, B.derived());
+ }
+
+ /** \brief Reports whether previous computation was successful.
+ *
+ * \returns \c Success if computation was successful,
+ * \c NumericalIssue if the QR factorization reports a numerical problem
+ * \c InvalidInput if the input matrix is invalid
+ *
+ * \sa iparm()
+ */
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+ return m_info;
+ }
+
+
+ /** \internal */
+ inline void _sort_matrix_Q()
+ {
+ if(this->m_isQSorted) return;
+ // The matrix Q is sorted during the transposition
+ SparseMatrix<Scalar, RowMajor, Index> mQrm(this->m_Q);
+ this->m_Q = mQrm;
+ this->m_isQSorted = true;
+ }
+
+
+ protected:
+ bool m_analysisIsok;
+ bool m_factorizationIsok;
+ mutable ComputationInfo m_info;
+ std::string m_lastError;
+ QRMatrixType m_pmat; // Temporary matrix
+ QRMatrixType m_R; // The triangular factor matrix
+ QRMatrixType m_Q; // The orthogonal reflectors
+ ScalarVector m_hcoeffs; // The Householder coefficients
+ PermutationType m_perm_c; // Fill-reducing Column permutation
+ PermutationType m_pivotperm; // The permutation for rank revealing
+ PermutationType m_outputPerm_c; // The final column permutation
+ RealScalar m_threshold; // Threshold to determine null Householder reflections
+ bool m_useDefaultThreshold; // Use default threshold
+ Index m_nonzeropivots; // Number of non zero pivots found
+ IndexVector m_etree; // Column elimination tree
+ IndexVector m_firstRowElt; // First element in each row
+ bool m_isQSorted; // whether Q is sorted or not
+ bool m_isEtreeOk; // whether the elimination tree match the initial input matrix
+
+ template <typename, typename > friend struct SparseQR_QProduct;
+
+};
+
+/** \brief Preprocessing step of a QR factorization
+ *
+ * \warning The matrix \a mat must be in compressed mode (see SparseMatrix::makeCompressed()).
+ *
+ * In this step, the fill-reducing permutation is computed and applied to the columns of A
+ * and the column elimination tree is computed as well. Only the sparsity pattern of \a mat is exploited.
+ *
+ * \note In this step it is assumed that there is no empty row in the matrix \a mat.
+ */
+template <typename MatrixType, typename OrderingType>
+void SparseQR<MatrixType,OrderingType>::analyzePattern(const MatrixType& mat)
+{
+ eigen_assert(mat.isCompressed() && "SparseQR requires a sparse matrix in compressed mode. Call .makeCompressed() before passing it to SparseQR");
+ // Copy to a column major matrix if the input is rowmajor
+ typename internal::conditional<MatrixType::IsRowMajor,QRMatrixType,const MatrixType&>::type matCpy(mat);
+ // Compute the column fill reducing ordering
+ OrderingType ord;
+ ord(matCpy, m_perm_c);
+ Index n = mat.cols();
+ Index m = mat.rows();
+ Index diagSize = (std::min)(m,n);
+
+ if (!m_perm_c.size())
+ {
+ m_perm_c.resize(n);
+ m_perm_c.indices().setLinSpaced(n, 0,StorageIndex(n-1));
+ }
+
+ // Compute the column elimination tree of the permuted matrix
+ m_outputPerm_c = m_perm_c.inverse();
+ internal::coletree(matCpy, m_etree, m_firstRowElt, m_outputPerm_c.indices().data());
+ m_isEtreeOk = true;
+
+ m_R.resize(m, n);
+ m_Q.resize(m, diagSize);
+
+ // Allocate space for nonzero elements : rough estimation
+ m_R.reserve(2*mat.nonZeros()); //FIXME Get a more accurate estimation through symbolic factorization with the etree
+ m_Q.reserve(2*mat.nonZeros());
+ m_hcoeffs.resize(diagSize);
+ m_analysisIsok = true;
+}
+
+/** \brief Performs the numerical QR factorization of the input matrix
+ *
+ * The function SparseQR::analyzePattern(const MatrixType&) must have been called beforehand with
+ * a matrix having the same sparsity pattern than \a mat.
+ *
+ * \param mat The sparse column-major matrix
+ */
+template <typename MatrixType, typename OrderingType>
+void SparseQR<MatrixType,OrderingType>::factorize(const MatrixType& mat)
+{
+ using std::abs;
+
+ eigen_assert(m_analysisIsok && "analyzePattern() should be called before this step");
+ StorageIndex m = StorageIndex(mat.rows());
+ StorageIndex n = StorageIndex(mat.cols());
+ StorageIndex diagSize = (std::min)(m,n);
+ IndexVector mark((std::max)(m,n)); mark.setConstant(-1); // Record the visited nodes
+ IndexVector Ridx(n), Qidx(m); // Store temporarily the row indexes for the current column of R and Q
+ Index nzcolR, nzcolQ; // Number of nonzero for the current column of R and Q
+ ScalarVector tval(m); // The dense vector used to compute the current column
+ RealScalar pivotThreshold = m_threshold;
+
+ m_R.setZero();
+ m_Q.setZero();
+ m_pmat = mat;
+ if(!m_isEtreeOk)
+ {
+ m_outputPerm_c = m_perm_c.inverse();
+ internal::coletree(m_pmat, m_etree, m_firstRowElt, m_outputPerm_c.indices().data());
+ m_isEtreeOk = true;
+ }
+
+ m_pmat.uncompress(); // To have the innerNonZeroPtr allocated
+
+ // Apply the fill-in reducing permutation lazily:
+ {
+ // If the input is row major, copy the original column indices,
+ // otherwise directly use the input matrix
+ //
+ IndexVector originalOuterIndicesCpy;
+ const StorageIndex *originalOuterIndices = mat.outerIndexPtr();
+ if(MatrixType::IsRowMajor)
+ {
+ originalOuterIndicesCpy = IndexVector::Map(m_pmat.outerIndexPtr(),n+1);
+ originalOuterIndices = originalOuterIndicesCpy.data();
+ }
+
+ for (int i = 0; i < n; i++)
+ {
+ Index p = m_perm_c.size() ? m_perm_c.indices()(i) : i;
+ m_pmat.outerIndexPtr()[p] = originalOuterIndices[i];
+ m_pmat.innerNonZeroPtr()[p] = originalOuterIndices[i+1] - originalOuterIndices[i];
+ }
+ }
+
+ /* Compute the default threshold as in MatLab, see:
+ * Tim Davis, "Algorithm 915, SuiteSparseQR: Multifrontal Multithreaded Rank-Revealing
+ * Sparse QR Factorization, ACM Trans. on Math. Soft. 38(1), 2011, Page 8:3
+ */
+ if(m_useDefaultThreshold)
+ {
+ RealScalar max2Norm = 0.0;
+ for (int j = 0; j < n; j++) max2Norm = numext::maxi(max2Norm, m_pmat.col(j).norm());
+ if(max2Norm==RealScalar(0))
+ max2Norm = RealScalar(1);
+ pivotThreshold = 20 * (m + n) * max2Norm * NumTraits<RealScalar>::epsilon();
+ }
+
+ // Initialize the numerical permutation
+ m_pivotperm.setIdentity(n);
+
+ StorageIndex nonzeroCol = 0; // Record the number of valid pivots
+ m_Q.startVec(0);
+
+ // Left looking rank-revealing QR factorization: compute a column of R and Q at a time
+ for (StorageIndex col = 0; col < n; ++col)
+ {
+ mark.setConstant(-1);
+ m_R.startVec(col);
+ mark(nonzeroCol) = col;
+ Qidx(0) = nonzeroCol;
+ nzcolR = 0; nzcolQ = 1;
+ bool found_diag = nonzeroCol>=m;
+ tval.setZero();
+
+ // Symbolic factorization: find the nonzero locations of the column k of the factors R and Q, i.e.,
+ // all the nodes (with indexes lower than rank) reachable through the column elimination tree (etree) rooted at node k.
+ // Note: if the diagonal entry does not exist, then its contribution must be explicitly added,
+ // thus the trick with found_diag that permits to do one more iteration on the diagonal element if this one has not been found.
+ for (typename QRMatrixType::InnerIterator itp(m_pmat, col); itp || !found_diag; ++itp)
+ {
+ StorageIndex curIdx = nonzeroCol;
+ if(itp) curIdx = StorageIndex(itp.row());
+ if(curIdx == nonzeroCol) found_diag = true;
+
+ // Get the nonzeros indexes of the current column of R
+ StorageIndex st = m_firstRowElt(curIdx); // The traversal of the etree starts here
+ if (st < 0 )
+ {
+ m_lastError = "Empty row found during numerical factorization";
+ m_info = InvalidInput;
+ return;
+ }
+
+ // Traverse the etree
+ Index bi = nzcolR;
+ for (; mark(st) != col; st = m_etree(st))
+ {
+ Ridx(nzcolR) = st; // Add this row to the list,
+ mark(st) = col; // and mark this row as visited
+ nzcolR++;
+ }
+
+ // Reverse the list to get the topological ordering
+ Index nt = nzcolR-bi;
+ for(Index i = 0; i < nt/2; i++) std::swap(Ridx(bi+i), Ridx(nzcolR-i-1));
+
+ // Copy the current (curIdx,pcol) value of the input matrix
+ if(itp) tval(curIdx) = itp.value();
+ else tval(curIdx) = Scalar(0);
+
+ // Compute the pattern of Q(:,k)
+ if(curIdx > nonzeroCol && mark(curIdx) != col )
+ {
+ Qidx(nzcolQ) = curIdx; // Add this row to the pattern of Q,
+ mark(curIdx) = col; // and mark it as visited
+ nzcolQ++;
+ }
+ }
+
+ // Browse all the indexes of R(:,col) in reverse order
+ for (Index i = nzcolR-1; i >= 0; i--)
+ {
+ Index curIdx = Ridx(i);
+
+ // Apply the curIdx-th householder vector to the current column (temporarily stored into tval)
+ Scalar tdot(0);
+
+ // First compute q' * tval
+ tdot = m_Q.col(curIdx).dot(tval);
+
+ tdot *= m_hcoeffs(curIdx);
+
+ // Then update tval = tval - q * tau
+ // FIXME: tval -= tdot * m_Q.col(curIdx) should amount to the same (need to check/add support for efficient "dense ?= sparse")
+ for (typename QRMatrixType::InnerIterator itq(m_Q, curIdx); itq; ++itq)
+ tval(itq.row()) -= itq.value() * tdot;
+
+ // Detect fill-in for the current column of Q
+ if(m_etree(Ridx(i)) == nonzeroCol)
+ {
+ for (typename QRMatrixType::InnerIterator itq(m_Q, curIdx); itq; ++itq)
+ {
+ StorageIndex iQ = StorageIndex(itq.row());
+ if (mark(iQ) != col)
+ {
+ Qidx(nzcolQ++) = iQ; // Add this row to the pattern of Q,
+ mark(iQ) = col; // and mark it as visited
+ }
+ }
+ }
+ } // End update current column
+
+ Scalar tau = RealScalar(0);
+ RealScalar beta = 0;
+
+ if(nonzeroCol < diagSize)
+ {
+ // Compute the Householder reflection that eliminate the current column
+ // FIXME this step should call the Householder module.
+ Scalar c0 = nzcolQ ? tval(Qidx(0)) : Scalar(0);
+
+ // First, the squared norm of Q((col+1):m, col)
+ RealScalar sqrNorm = 0.;
+ for (Index itq = 1; itq < nzcolQ; ++itq) sqrNorm += numext::abs2(tval(Qidx(itq)));
+ if(sqrNorm == RealScalar(0) && numext::imag(c0) == RealScalar(0))
+ {
+ beta = numext::real(c0);
+ tval(Qidx(0)) = 1;
+ }
+ else
+ {
+ using std::sqrt;
+ beta = sqrt(numext::abs2(c0) + sqrNorm);
+ if(numext::real(c0) >= RealScalar(0))
+ beta = -beta;
+ tval(Qidx(0)) = 1;
+ for (Index itq = 1; itq < nzcolQ; ++itq)
+ tval(Qidx(itq)) /= (c0 - beta);
+ tau = numext::conj((beta-c0) / beta);
+
+ }
+ }
+
+ // Insert values in R
+ for (Index i = nzcolR-1; i >= 0; i--)
+ {
+ Index curIdx = Ridx(i);
+ if(curIdx < nonzeroCol)
+ {
+ m_R.insertBackByOuterInnerUnordered(col, curIdx) = tval(curIdx);
+ tval(curIdx) = Scalar(0.);
+ }
+ }
+
+ if(nonzeroCol < diagSize && abs(beta) >= pivotThreshold)
+ {
+ m_R.insertBackByOuterInner(col, nonzeroCol) = beta;
+ // The householder coefficient
+ m_hcoeffs(nonzeroCol) = tau;
+ // Record the householder reflections
+ for (Index itq = 0; itq < nzcolQ; ++itq)
+ {
+ Index iQ = Qidx(itq);
+ m_Q.insertBackByOuterInnerUnordered(nonzeroCol,iQ) = tval(iQ);
+ tval(iQ) = Scalar(0.);
+ }
+ nonzeroCol++;
+ if(nonzeroCol<diagSize)
+ m_Q.startVec(nonzeroCol);
+ }
+ else
+ {
+ // Zero pivot found: move implicitly this column to the end
+ for (Index j = nonzeroCol; j < n-1; j++)
+ std::swap(m_pivotperm.indices()(j), m_pivotperm.indices()[j+1]);
+
+ // Recompute the column elimination tree
+ internal::coletree(m_pmat, m_etree, m_firstRowElt, m_pivotperm.indices().data());
+ m_isEtreeOk = false;
+ }
+ }
+
+ m_hcoeffs.tail(diagSize-nonzeroCol).setZero();
+
+ // Finalize the column pointers of the sparse matrices R and Q
+ m_Q.finalize();
+ m_Q.makeCompressed();
+ m_R.finalize();
+ m_R.makeCompressed();
+ m_isQSorted = false;
+
+ m_nonzeropivots = nonzeroCol;
+
+ if(nonzeroCol<n)
+ {
+ // Permute the triangular factor to put the 'dead' columns to the end
+ QRMatrixType tempR(m_R);
+ m_R = tempR * m_pivotperm;
+
+ // Update the column permutation
+ m_outputPerm_c = m_outputPerm_c * m_pivotperm;
+ }
+
+ m_isInitialized = true;
+ m_factorizationIsok = true;
+ m_info = Success;
+}
+
+template <typename SparseQRType, typename Derived>
+struct SparseQR_QProduct : ReturnByValue<SparseQR_QProduct<SparseQRType, Derived> >
+{
+ typedef typename SparseQRType::QRMatrixType MatrixType;
+ typedef typename SparseQRType::Scalar Scalar;
+ // Get the references
+ SparseQR_QProduct(const SparseQRType& qr, const Derived& other, bool transpose) :
+ m_qr(qr),m_other(other),m_transpose(transpose) {}
+ inline Index rows() const { return m_transpose ? m_qr.rows() : m_qr.cols(); }
+ inline Index cols() const { return m_other.cols(); }
+
+ // Assign to a vector
+ template<typename DesType>
+ void evalTo(DesType& res) const
+ {
+ Index m = m_qr.rows();
+ Index n = m_qr.cols();
+ Index diagSize = (std::min)(m,n);
+ res = m_other;
+ if (m_transpose)
+ {
+ eigen_assert(m_qr.m_Q.rows() == m_other.rows() && "Non conforming object sizes");
+ //Compute res = Q' * other column by column
+ for(Index j = 0; j < res.cols(); j++){
+ for (Index k = 0; k < diagSize; k++)
+ {
+ Scalar tau = Scalar(0);
+ tau = m_qr.m_Q.col(k).dot(res.col(j));
+ if(tau==Scalar(0)) continue;
+ tau = tau * m_qr.m_hcoeffs(k);
+ res.col(j) -= tau * m_qr.m_Q.col(k);
+ }
+ }
+ }
+ else
+ {
+ eigen_assert(m_qr.m_Q.rows() == m_other.rows() && "Non conforming object sizes");
+ // Compute res = Q * other column by column
+ for(Index j = 0; j < res.cols(); j++)
+ {
+ for (Index k = diagSize-1; k >=0; k--)
+ {
+ Scalar tau = Scalar(0);
+ tau = m_qr.m_Q.col(k).dot(res.col(j));
+ if(tau==Scalar(0)) continue;
+ tau = tau * m_qr.m_hcoeffs(k);
+ res.col(j) -= tau * m_qr.m_Q.col(k);
+ }
+ }
+ }
+ }
+
+ const SparseQRType& m_qr;
+ const Derived& m_other;
+ bool m_transpose;
+};
+
+template<typename SparseQRType>
+struct SparseQRMatrixQReturnType : public EigenBase<SparseQRMatrixQReturnType<SparseQRType> >
+{
+ typedef typename SparseQRType::Scalar Scalar;
+ typedef Matrix<Scalar,Dynamic,Dynamic> DenseMatrix;
+ enum {
+ RowsAtCompileTime = Dynamic,
+ ColsAtCompileTime = Dynamic
+ };
+ explicit SparseQRMatrixQReturnType(const SparseQRType& qr) : m_qr(qr) {}
+ template<typename Derived>
+ SparseQR_QProduct<SparseQRType, Derived> operator*(const MatrixBase<Derived>& other)
+ {
+ return SparseQR_QProduct<SparseQRType,Derived>(m_qr,other.derived(),false);
+ }
+ SparseQRMatrixQTransposeReturnType<SparseQRType> adjoint() const
+ {
+ return SparseQRMatrixQTransposeReturnType<SparseQRType>(m_qr);
+ }
+ inline Index rows() const { return m_qr.rows(); }
+ inline Index cols() const { return (std::min)(m_qr.rows(),m_qr.cols()); }
+ // To use for operations with the transpose of Q
+ SparseQRMatrixQTransposeReturnType<SparseQRType> transpose() const
+ {
+ return SparseQRMatrixQTransposeReturnType<SparseQRType>(m_qr);
+ }
+ const SparseQRType& m_qr;
+};
+
+template<typename SparseQRType>
+struct SparseQRMatrixQTransposeReturnType
+{
+ explicit SparseQRMatrixQTransposeReturnType(const SparseQRType& qr) : m_qr(qr) {}
+ template<typename Derived>
+ SparseQR_QProduct<SparseQRType,Derived> operator*(const MatrixBase<Derived>& other)
+ {
+ return SparseQR_QProduct<SparseQRType,Derived>(m_qr,other.derived(), true);
+ }
+ const SparseQRType& m_qr;
+};
+
+namespace internal {
+
+template<typename SparseQRType>
+struct evaluator_traits<SparseQRMatrixQReturnType<SparseQRType> >
+{
+ typedef typename SparseQRType::MatrixType MatrixType;
+ typedef typename storage_kind_to_evaluator_kind<typename MatrixType::StorageKind>::Kind Kind;
+ typedef SparseShape Shape;
+};
+
+template< typename DstXprType, typename SparseQRType>
+struct Assignment<DstXprType, SparseQRMatrixQReturnType<SparseQRType>, internal::assign_op<typename DstXprType::Scalar,typename DstXprType::Scalar>, Sparse2Sparse>
+{
+ typedef SparseQRMatrixQReturnType<SparseQRType> SrcXprType;
+ typedef typename DstXprType::Scalar Scalar;
+ typedef typename DstXprType::StorageIndex StorageIndex;
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<Scalar,Scalar> &/*func*/)
+ {
+ typename DstXprType::PlainObject idMat(src.m_qr.rows(), src.m_qr.rows());
+ idMat.setIdentity();
+ // Sort the sparse householder reflectors if needed
+ const_cast<SparseQRType *>(&src.m_qr)->_sort_matrix_Q();
+ dst = SparseQR_QProduct<SparseQRType, DstXprType>(src.m_qr, idMat, false);
+ }
+};
+
+template< typename DstXprType, typename SparseQRType>
+struct Assignment<DstXprType, SparseQRMatrixQReturnType<SparseQRType>, internal::assign_op<typename DstXprType::Scalar,typename DstXprType::Scalar>, Sparse2Dense>
+{
+ typedef SparseQRMatrixQReturnType<SparseQRType> SrcXprType;
+ typedef typename DstXprType::Scalar Scalar;
+ typedef typename DstXprType::StorageIndex StorageIndex;
+ static void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op<Scalar,Scalar> &/*func*/)
+ {
+ dst = src.m_qr.matrixQ() * DstXprType::Identity(src.m_qr.rows(), src.m_qr.rows());
+ }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/StlSupport/StdDeque.h b/runtimes/nn/depend/external/eigen/Eigen/src/StlSupport/StdDeque.h
new file mode 100644
index 000000000..cf1fedf92
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/StlSupport/StdDeque.h
@@ -0,0 +1,126 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Hauke Heibel <hauke.heibel@googlemail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STDDEQUE_H
+#define EIGEN_STDDEQUE_H
+
+#include "details.h"
+
+/**
+ * This section contains a convenience MACRO which allows an easy specialization of
+ * std::deque such that for data types with alignment issues the correct allocator
+ * is used automatically.
+ */
+#define EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(...) \
+namespace std \
+{ \
+ template<> \
+ class deque<__VA_ARGS__, std::allocator<__VA_ARGS__> > \
+ : public deque<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > \
+ { \
+ typedef deque<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > deque_base; \
+ public: \
+ typedef __VA_ARGS__ value_type; \
+ typedef deque_base::allocator_type allocator_type; \
+ typedef deque_base::size_type size_type; \
+ typedef deque_base::iterator iterator; \
+ explicit deque(const allocator_type& a = allocator_type()) : deque_base(a) {} \
+ template<typename InputIterator> \
+ deque(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) : deque_base(first, last, a) {} \
+ deque(const deque& c) : deque_base(c) {} \
+ explicit deque(size_type num, const value_type& val = value_type()) : deque_base(num, val) {} \
+ deque(iterator start, iterator end) : deque_base(start, end) {} \
+ deque& operator=(const deque& x) { \
+ deque_base::operator=(x); \
+ return *this; \
+ } \
+ }; \
+}
+
+// check whether we really need the std::deque specialization
+#if !EIGEN_HAS_CXX11_CONTAINERS && !(defined(_GLIBCXX_DEQUE) && (!EIGEN_GNUC_AT_LEAST(4,1))) /* Note that before gcc-4.1 we already have: std::deque::resize(size_type,const T&). */
+
+namespace std {
+
+#define EIGEN_STD_DEQUE_SPECIALIZATION_BODY \
+ public: \
+ typedef T value_type; \
+ typedef typename deque_base::allocator_type allocator_type; \
+ typedef typename deque_base::size_type size_type; \
+ typedef typename deque_base::iterator iterator; \
+ typedef typename deque_base::const_iterator const_iterator; \
+ explicit deque(const allocator_type& a = allocator_type()) : deque_base(a) {} \
+ template<typename InputIterator> \
+ deque(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) \
+ : deque_base(first, last, a) {} \
+ deque(const deque& c) : deque_base(c) {} \
+ explicit deque(size_type num, const value_type& val = value_type()) : deque_base(num, val) {} \
+ deque(iterator start, iterator end) : deque_base(start, end) {} \
+ deque& operator=(const deque& x) { \
+ deque_base::operator=(x); \
+ return *this; \
+ }
+
+ template<typename T>
+ class deque<T,EIGEN_ALIGNED_ALLOCATOR<T> >
+ : public deque<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
+ Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> >
+{
+ typedef deque<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
+ Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> > deque_base;
+ EIGEN_STD_DEQUE_SPECIALIZATION_BODY
+
+ void resize(size_type new_size)
+ { resize(new_size, T()); }
+
+#if defined(_DEQUE_)
+ // workaround MSVC std::deque implementation
+ void resize(size_type new_size, const value_type& x)
+ {
+ if (deque_base::size() < new_size)
+ deque_base::_Insert_n(deque_base::end(), new_size - deque_base::size(), x);
+ else if (new_size < deque_base::size())
+ deque_base::erase(deque_base::begin() + new_size, deque_base::end());
+ }
+ void push_back(const value_type& x)
+ { deque_base::push_back(x); }
+ void push_front(const value_type& x)
+ { deque_base::push_front(x); }
+ using deque_base::insert;
+ iterator insert(const_iterator position, const value_type& x)
+ { return deque_base::insert(position,x); }
+ void insert(const_iterator position, size_type new_size, const value_type& x)
+ { deque_base::insert(position, new_size, x); }
+#elif defined(_GLIBCXX_DEQUE) && EIGEN_GNUC_AT_LEAST(4,2)
+ // workaround GCC std::deque implementation
+ void resize(size_type new_size, const value_type& x)
+ {
+ if (new_size < deque_base::size())
+ deque_base::_M_erase_at_end(this->_M_impl._M_start + new_size);
+ else
+ deque_base::insert(deque_base::end(), new_size - deque_base::size(), x);
+ }
+#else
+ // either GCC 4.1 or non-GCC
+ // default implementation which should always work.
+ void resize(size_type new_size, const value_type& x)
+ {
+ if (new_size < deque_base::size())
+ deque_base::erase(deque_base::begin() + new_size, deque_base::end());
+ else if (new_size > deque_base::size())
+ deque_base::insert(deque_base::end(), new_size - deque_base::size(), x);
+ }
+#endif
+ };
+}
+
+#endif // check whether specialization is actually required
+
+#endif // EIGEN_STDDEQUE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/StlSupport/StdList.h b/runtimes/nn/depend/external/eigen/Eigen/src/StlSupport/StdList.h
new file mode 100644
index 000000000..e1eba4985
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/StlSupport/StdList.h
@@ -0,0 +1,106 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Hauke Heibel <hauke.heibel@googlemail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STDLIST_H
+#define EIGEN_STDLIST_H
+
+#include "details.h"
+
+/**
+ * This section contains a convenience MACRO which allows an easy specialization of
+ * std::list such that for data types with alignment issues the correct allocator
+ * is used automatically.
+ */
+#define EIGEN_DEFINE_STL_LIST_SPECIALIZATION(...) \
+namespace std \
+{ \
+ template<> \
+ class list<__VA_ARGS__, std::allocator<__VA_ARGS__> > \
+ : public list<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > \
+ { \
+ typedef list<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > list_base; \
+ public: \
+ typedef __VA_ARGS__ value_type; \
+ typedef list_base::allocator_type allocator_type; \
+ typedef list_base::size_type size_type; \
+ typedef list_base::iterator iterator; \
+ explicit list(const allocator_type& a = allocator_type()) : list_base(a) {} \
+ template<typename InputIterator> \
+ list(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) : list_base(first, last, a) {} \
+ list(const list& c) : list_base(c) {} \
+ explicit list(size_type num, const value_type& val = value_type()) : list_base(num, val) {} \
+ list(iterator start, iterator end) : list_base(start, end) {} \
+ list& operator=(const list& x) { \
+ list_base::operator=(x); \
+ return *this; \
+ } \
+ }; \
+}
+
+// check whether we really need the std::list specialization
+#if !EIGEN_HAS_CXX11_CONTAINERS && !(defined(_GLIBCXX_LIST) && (!EIGEN_GNUC_AT_LEAST(4,1))) /* Note that before gcc-4.1 we already have: std::list::resize(size_type,const T&). */
+
+namespace std
+{
+
+#define EIGEN_STD_LIST_SPECIALIZATION_BODY \
+ public: \
+ typedef T value_type; \
+ typedef typename list_base::allocator_type allocator_type; \
+ typedef typename list_base::size_type size_type; \
+ typedef typename list_base::iterator iterator; \
+ typedef typename list_base::const_iterator const_iterator; \
+ explicit list(const allocator_type& a = allocator_type()) : list_base(a) {} \
+ template<typename InputIterator> \
+ list(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) \
+ : list_base(first, last, a) {} \
+ list(const list& c) : list_base(c) {} \
+ explicit list(size_type num, const value_type& val = value_type()) : list_base(num, val) {} \
+ list(iterator start, iterator end) : list_base(start, end) {} \
+ list& operator=(const list& x) { \
+ list_base::operator=(x); \
+ return *this; \
+ }
+
+ template<typename T>
+ class list<T,EIGEN_ALIGNED_ALLOCATOR<T> >
+ : public list<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
+ Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> >
+ {
+ typedef list<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
+ Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> > list_base;
+ EIGEN_STD_LIST_SPECIALIZATION_BODY
+
+ void resize(size_type new_size)
+ { resize(new_size, T()); }
+
+ void resize(size_type new_size, const value_type& x)
+ {
+ if (list_base::size() < new_size)
+ list_base::insert(list_base::end(), new_size - list_base::size(), x);
+ else
+ while (new_size < list_base::size()) list_base::pop_back();
+ }
+
+#if defined(_LIST_)
+ // workaround MSVC std::list implementation
+ void push_back(const value_type& x)
+ { list_base::push_back(x); }
+ using list_base::insert;
+ iterator insert(const_iterator position, const value_type& x)
+ { return list_base::insert(position,x); }
+ void insert(const_iterator position, size_type new_size, const value_type& x)
+ { list_base::insert(position, new_size, x); }
+#endif
+ };
+}
+
+#endif // check whether specialization is actually required
+
+#endif // EIGEN_STDLIST_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/StlSupport/StdVector.h b/runtimes/nn/depend/external/eigen/Eigen/src/StlSupport/StdVector.h
new file mode 100644
index 000000000..ec22821d2
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/StlSupport/StdVector.h
@@ -0,0 +1,131 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Hauke Heibel <hauke.heibel@googlemail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STDVECTOR_H
+#define EIGEN_STDVECTOR_H
+
+#include "details.h"
+
+/**
+ * This section contains a convenience MACRO which allows an easy specialization of
+ * std::vector such that for data types with alignment issues the correct allocator
+ * is used automatically.
+ */
+#define EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION(...) \
+namespace std \
+{ \
+ template<> \
+ class vector<__VA_ARGS__, std::allocator<__VA_ARGS__> > \
+ : public vector<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > \
+ { \
+ typedef vector<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > vector_base; \
+ public: \
+ typedef __VA_ARGS__ value_type; \
+ typedef vector_base::allocator_type allocator_type; \
+ typedef vector_base::size_type size_type; \
+ typedef vector_base::iterator iterator; \
+ explicit vector(const allocator_type& a = allocator_type()) : vector_base(a) {} \
+ template<typename InputIterator> \
+ vector(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) : vector_base(first, last, a) {} \
+ vector(const vector& c) : vector_base(c) {} \
+ explicit vector(size_type num, const value_type& val = value_type()) : vector_base(num, val) {} \
+ vector(iterator start, iterator end) : vector_base(start, end) {} \
+ vector& operator=(const vector& x) { \
+ vector_base::operator=(x); \
+ return *this; \
+ } \
+ }; \
+}
+
+// Don't specialize if containers are implemented according to C++11
+#if !EIGEN_HAS_CXX11_CONTAINERS
+
+namespace std {
+
+#define EIGEN_STD_VECTOR_SPECIALIZATION_BODY \
+ public: \
+ typedef T value_type; \
+ typedef typename vector_base::allocator_type allocator_type; \
+ typedef typename vector_base::size_type size_type; \
+ typedef typename vector_base::iterator iterator; \
+ typedef typename vector_base::const_iterator const_iterator; \
+ explicit vector(const allocator_type& a = allocator_type()) : vector_base(a) {} \
+ template<typename InputIterator> \
+ vector(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) \
+ : vector_base(first, last, a) {} \
+ vector(const vector& c) : vector_base(c) {} \
+ explicit vector(size_type num, const value_type& val = value_type()) : vector_base(num, val) {} \
+ vector(iterator start, iterator end) : vector_base(start, end) {} \
+ vector& operator=(const vector& x) { \
+ vector_base::operator=(x); \
+ return *this; \
+ }
+
+ template<typename T>
+ class vector<T,EIGEN_ALIGNED_ALLOCATOR<T> >
+ : public vector<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
+ Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> >
+{
+ typedef vector<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
+ Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> > vector_base;
+ EIGEN_STD_VECTOR_SPECIALIZATION_BODY
+
+ void resize(size_type new_size)
+ { resize(new_size, T()); }
+
+#if defined(_VECTOR_)
+ // workaround MSVC std::vector implementation
+ void resize(size_type new_size, const value_type& x)
+ {
+ if (vector_base::size() < new_size)
+ vector_base::_Insert_n(vector_base::end(), new_size - vector_base::size(), x);
+ else if (new_size < vector_base::size())
+ vector_base::erase(vector_base::begin() + new_size, vector_base::end());
+ }
+ void push_back(const value_type& x)
+ { vector_base::push_back(x); }
+ using vector_base::insert;
+ iterator insert(const_iterator position, const value_type& x)
+ { return vector_base::insert(position,x); }
+ void insert(const_iterator position, size_type new_size, const value_type& x)
+ { vector_base::insert(position, new_size, x); }
+#elif defined(_GLIBCXX_VECTOR) && (!(EIGEN_GNUC_AT_LEAST(4,1)))
+ /* Note that before gcc-4.1 we already have: std::vector::resize(size_type,const T&).
+ * However, this specialization is still needed to make the above EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION trick to work. */
+ void resize(size_type new_size, const value_type& x)
+ {
+ vector_base::resize(new_size,x);
+ }
+#elif defined(_GLIBCXX_VECTOR) && EIGEN_GNUC_AT_LEAST(4,2)
+ // workaround GCC std::vector implementation
+ void resize(size_type new_size, const value_type& x)
+ {
+ if (new_size < vector_base::size())
+ vector_base::_M_erase_at_end(this->_M_impl._M_start + new_size);
+ else
+ vector_base::insert(vector_base::end(), new_size - vector_base::size(), x);
+ }
+#else
+ // either GCC 4.1 or non-GCC
+ // default implementation which should always work.
+ void resize(size_type new_size, const value_type& x)
+ {
+ if (new_size < vector_base::size())
+ vector_base::erase(vector_base::begin() + new_size, vector_base::end());
+ else if (new_size > vector_base::size())
+ vector_base::insert(vector_base::end(), new_size - vector_base::size(), x);
+ }
+#endif
+ };
+}
+#endif // !EIGEN_HAS_CXX11_CONTAINERS
+
+
+#endif // EIGEN_STDVECTOR_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/StlSupport/details.h b/runtimes/nn/depend/external/eigen/Eigen/src/StlSupport/details.h
new file mode 100644
index 000000000..2cfd13e03
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/StlSupport/details.h
@@ -0,0 +1,84 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Hauke Heibel <hauke.heibel@googlemail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STL_DETAILS_H
+#define EIGEN_STL_DETAILS_H
+
+#ifndef EIGEN_ALIGNED_ALLOCATOR
+ #define EIGEN_ALIGNED_ALLOCATOR Eigen::aligned_allocator
+#endif
+
+namespace Eigen {
+
+ // This one is needed to prevent reimplementing the whole std::vector.
+ template <class T>
+ class aligned_allocator_indirection : public EIGEN_ALIGNED_ALLOCATOR<T>
+ {
+ public:
+ typedef std::size_t size_type;
+ typedef std::ptrdiff_t difference_type;
+ typedef T* pointer;
+ typedef const T* const_pointer;
+ typedef T& reference;
+ typedef const T& const_reference;
+ typedef T value_type;
+
+ template<class U>
+ struct rebind
+ {
+ typedef aligned_allocator_indirection<U> other;
+ };
+
+ aligned_allocator_indirection() {}
+ aligned_allocator_indirection(const aligned_allocator_indirection& ) : EIGEN_ALIGNED_ALLOCATOR<T>() {}
+ aligned_allocator_indirection(const EIGEN_ALIGNED_ALLOCATOR<T>& ) {}
+ template<class U>
+ aligned_allocator_indirection(const aligned_allocator_indirection<U>& ) {}
+ template<class U>
+ aligned_allocator_indirection(const EIGEN_ALIGNED_ALLOCATOR<U>& ) {}
+ ~aligned_allocator_indirection() {}
+ };
+
+#if EIGEN_COMP_MSVC
+
+ // sometimes, MSVC detects, at compile time, that the argument x
+ // in std::vector::resize(size_t s,T x) won't be aligned and generate an error
+ // even if this function is never called. Whence this little wrapper.
+#define EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T) \
+ typename Eigen::internal::conditional< \
+ Eigen::internal::is_arithmetic<T>::value, \
+ T, \
+ Eigen::internal::workaround_msvc_stl_support<T> \
+ >::type
+
+ namespace internal {
+ template<typename T> struct workaround_msvc_stl_support : public T
+ {
+ inline workaround_msvc_stl_support() : T() {}
+ inline workaround_msvc_stl_support(const T& other) : T(other) {}
+ inline operator T& () { return *static_cast<T*>(this); }
+ inline operator const T& () const { return *static_cast<const T*>(this); }
+ template<typename OtherT>
+ inline T& operator=(const OtherT& other)
+ { T::operator=(other); return *this; }
+ inline workaround_msvc_stl_support& operator=(const workaround_msvc_stl_support& other)
+ { T::operator=(other); return *this; }
+ };
+ }
+
+#else
+
+#define EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T) T
+
+#endif
+
+}
+
+#endif // EIGEN_STL_DETAILS_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h b/runtimes/nn/depend/external/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h
new file mode 100644
index 000000000..50a69f306
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h
@@ -0,0 +1,1027 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2015 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SUPERLUSUPPORT_H
+#define EIGEN_SUPERLUSUPPORT_H
+
+namespace Eigen {
+
+#if defined(SUPERLU_MAJOR_VERSION) && (SUPERLU_MAJOR_VERSION >= 5)
+#define DECL_GSSVX(PREFIX,FLOATTYPE,KEYTYPE) \
+ extern "C" { \
+ extern void PREFIX##gssvx(superlu_options_t *, SuperMatrix *, int *, int *, int *, \
+ char *, FLOATTYPE *, FLOATTYPE *, SuperMatrix *, SuperMatrix *, \
+ void *, int, SuperMatrix *, SuperMatrix *, \
+ FLOATTYPE *, FLOATTYPE *, FLOATTYPE *, FLOATTYPE *, \
+ GlobalLU_t *, mem_usage_t *, SuperLUStat_t *, int *); \
+ } \
+ inline float SuperLU_gssvx(superlu_options_t *options, SuperMatrix *A, \
+ int *perm_c, int *perm_r, int *etree, char *equed, \
+ FLOATTYPE *R, FLOATTYPE *C, SuperMatrix *L, \
+ SuperMatrix *U, void *work, int lwork, \
+ SuperMatrix *B, SuperMatrix *X, \
+ FLOATTYPE *recip_pivot_growth, \
+ FLOATTYPE *rcond, FLOATTYPE *ferr, FLOATTYPE *berr, \
+ SuperLUStat_t *stats, int *info, KEYTYPE) { \
+ mem_usage_t mem_usage; \
+ GlobalLU_t gLU; \
+ PREFIX##gssvx(options, A, perm_c, perm_r, etree, equed, R, C, L, \
+ U, work, lwork, B, X, recip_pivot_growth, rcond, \
+ ferr, berr, &gLU, &mem_usage, stats, info); \
+ return mem_usage.for_lu; /* bytes used by the factor storage */ \
+ }
+#else // version < 5.0
+#define DECL_GSSVX(PREFIX,FLOATTYPE,KEYTYPE) \
+ extern "C" { \
+ extern void PREFIX##gssvx(superlu_options_t *, SuperMatrix *, int *, int *, int *, \
+ char *, FLOATTYPE *, FLOATTYPE *, SuperMatrix *, SuperMatrix *, \
+ void *, int, SuperMatrix *, SuperMatrix *, \
+ FLOATTYPE *, FLOATTYPE *, FLOATTYPE *, FLOATTYPE *, \
+ mem_usage_t *, SuperLUStat_t *, int *); \
+ } \
+ inline float SuperLU_gssvx(superlu_options_t *options, SuperMatrix *A, \
+ int *perm_c, int *perm_r, int *etree, char *equed, \
+ FLOATTYPE *R, FLOATTYPE *C, SuperMatrix *L, \
+ SuperMatrix *U, void *work, int lwork, \
+ SuperMatrix *B, SuperMatrix *X, \
+ FLOATTYPE *recip_pivot_growth, \
+ FLOATTYPE *rcond, FLOATTYPE *ferr, FLOATTYPE *berr, \
+ SuperLUStat_t *stats, int *info, KEYTYPE) { \
+ mem_usage_t mem_usage; \
+ PREFIX##gssvx(options, A, perm_c, perm_r, etree, equed, R, C, L, \
+ U, work, lwork, B, X, recip_pivot_growth, rcond, \
+ ferr, berr, &mem_usage, stats, info); \
+ return mem_usage.for_lu; /* bytes used by the factor storage */ \
+ }
+#endif
+
+DECL_GSSVX(s,float,float)
+DECL_GSSVX(c,float,std::complex<float>)
+DECL_GSSVX(d,double,double)
+DECL_GSSVX(z,double,std::complex<double>)
+
+#ifdef MILU_ALPHA
+#define EIGEN_SUPERLU_HAS_ILU
+#endif
+
+#ifdef EIGEN_SUPERLU_HAS_ILU
+
+// similarly for the incomplete factorization using gsisx
+#define DECL_GSISX(PREFIX,FLOATTYPE,KEYTYPE) \
+ extern "C" { \
+ extern void PREFIX##gsisx(superlu_options_t *, SuperMatrix *, int *, int *, int *, \
+ char *, FLOATTYPE *, FLOATTYPE *, SuperMatrix *, SuperMatrix *, \
+ void *, int, SuperMatrix *, SuperMatrix *, FLOATTYPE *, FLOATTYPE *, \
+ mem_usage_t *, SuperLUStat_t *, int *); \
+ } \
+ inline float SuperLU_gsisx(superlu_options_t *options, SuperMatrix *A, \
+ int *perm_c, int *perm_r, int *etree, char *equed, \
+ FLOATTYPE *R, FLOATTYPE *C, SuperMatrix *L, \
+ SuperMatrix *U, void *work, int lwork, \
+ SuperMatrix *B, SuperMatrix *X, \
+ FLOATTYPE *recip_pivot_growth, \
+ FLOATTYPE *rcond, \
+ SuperLUStat_t *stats, int *info, KEYTYPE) { \
+ mem_usage_t mem_usage; \
+ PREFIX##gsisx(options, A, perm_c, perm_r, etree, equed, R, C, L, \
+ U, work, lwork, B, X, recip_pivot_growth, rcond, \
+ &mem_usage, stats, info); \
+ return mem_usage.for_lu; /* bytes used by the factor storage */ \
+ }
+
+DECL_GSISX(s,float,float)
+DECL_GSISX(c,float,std::complex<float>)
+DECL_GSISX(d,double,double)
+DECL_GSISX(z,double,std::complex<double>)
+
+#endif
+
+template<typename MatrixType>
+struct SluMatrixMapHelper;
+
+/** \internal
+ *
+ * A wrapper class for SuperLU matrices. It supports only compressed sparse matrices
+ * and dense matrices. Supernodal and other fancy format are not supported by this wrapper.
+ *
+ * This wrapper class mainly aims to avoids the need of dynamic allocation of the storage structure.
+ */
+struct SluMatrix : SuperMatrix
+{
+ SluMatrix()
+ {
+ Store = &storage;
+ }
+
+ SluMatrix(const SluMatrix& other)
+ : SuperMatrix(other)
+ {
+ Store = &storage;
+ storage = other.storage;
+ }
+
+ SluMatrix& operator=(const SluMatrix& other)
+ {
+ SuperMatrix::operator=(static_cast<const SuperMatrix&>(other));
+ Store = &storage;
+ storage = other.storage;
+ return *this;
+ }
+
+ struct
+ {
+ union {int nnz;int lda;};
+ void *values;
+ int *innerInd;
+ int *outerInd;
+ } storage;
+
+ void setStorageType(Stype_t t)
+ {
+ Stype = t;
+ if (t==SLU_NC || t==SLU_NR || t==SLU_DN)
+ Store = &storage;
+ else
+ {
+ eigen_assert(false && "storage type not supported");
+ Store = 0;
+ }
+ }
+
+ template<typename Scalar>
+ void setScalarType()
+ {
+ if (internal::is_same<Scalar,float>::value)
+ Dtype = SLU_S;
+ else if (internal::is_same<Scalar,double>::value)
+ Dtype = SLU_D;
+ else if (internal::is_same<Scalar,std::complex<float> >::value)
+ Dtype = SLU_C;
+ else if (internal::is_same<Scalar,std::complex<double> >::value)
+ Dtype = SLU_Z;
+ else
+ {
+ eigen_assert(false && "Scalar type not supported by SuperLU");
+ }
+ }
+
+ template<typename MatrixType>
+ static SluMatrix Map(MatrixBase<MatrixType>& _mat)
+ {
+ MatrixType& mat(_mat.derived());
+ eigen_assert( ((MatrixType::Flags&RowMajorBit)!=RowMajorBit) && "row-major dense matrices are not supported by SuperLU");
+ SluMatrix res;
+ res.setStorageType(SLU_DN);
+ res.setScalarType<typename MatrixType::Scalar>();
+ res.Mtype = SLU_GE;
+
+ res.nrow = internal::convert_index<int>(mat.rows());
+ res.ncol = internal::convert_index<int>(mat.cols());
+
+ res.storage.lda = internal::convert_index<int>(MatrixType::IsVectorAtCompileTime ? mat.size() : mat.outerStride());
+ res.storage.values = (void*)(mat.data());
+ return res;
+ }
+
+ template<typename MatrixType>
+ static SluMatrix Map(SparseMatrixBase<MatrixType>& a_mat)
+ {
+ MatrixType &mat(a_mat.derived());
+ SluMatrix res;
+ if ((MatrixType::Flags&RowMajorBit)==RowMajorBit)
+ {
+ res.setStorageType(SLU_NR);
+ res.nrow = internal::convert_index<int>(mat.cols());
+ res.ncol = internal::convert_index<int>(mat.rows());
+ }
+ else
+ {
+ res.setStorageType(SLU_NC);
+ res.nrow = internal::convert_index<int>(mat.rows());
+ res.ncol = internal::convert_index<int>(mat.cols());
+ }
+
+ res.Mtype = SLU_GE;
+
+ res.storage.nnz = internal::convert_index<int>(mat.nonZeros());
+ res.storage.values = mat.valuePtr();
+ res.storage.innerInd = mat.innerIndexPtr();
+ res.storage.outerInd = mat.outerIndexPtr();
+
+ res.setScalarType<typename MatrixType::Scalar>();
+
+ // FIXME the following is not very accurate
+ if (MatrixType::Flags & Upper)
+ res.Mtype = SLU_TRU;
+ if (MatrixType::Flags & Lower)
+ res.Mtype = SLU_TRL;
+
+ eigen_assert(((MatrixType::Flags & SelfAdjoint)==0) && "SelfAdjoint matrix shape not supported by SuperLU");
+
+ return res;
+ }
+};
+
+template<typename Scalar, int Rows, int Cols, int Options, int MRows, int MCols>
+struct SluMatrixMapHelper<Matrix<Scalar,Rows,Cols,Options,MRows,MCols> >
+{
+ typedef Matrix<Scalar,Rows,Cols,Options,MRows,MCols> MatrixType;
+ static void run(MatrixType& mat, SluMatrix& res)
+ {
+ eigen_assert( ((Options&RowMajor)!=RowMajor) && "row-major dense matrices is not supported by SuperLU");
+ res.setStorageType(SLU_DN);
+ res.setScalarType<Scalar>();
+ res.Mtype = SLU_GE;
+
+ res.nrow = mat.rows();
+ res.ncol = mat.cols();
+
+ res.storage.lda = mat.outerStride();
+ res.storage.values = mat.data();
+ }
+};
+
+template<typename Derived>
+struct SluMatrixMapHelper<SparseMatrixBase<Derived> >
+{
+ typedef Derived MatrixType;
+ static void run(MatrixType& mat, SluMatrix& res)
+ {
+ if ((MatrixType::Flags&RowMajorBit)==RowMajorBit)
+ {
+ res.setStorageType(SLU_NR);
+ res.nrow = mat.cols();
+ res.ncol = mat.rows();
+ }
+ else
+ {
+ res.setStorageType(SLU_NC);
+ res.nrow = mat.rows();
+ res.ncol = mat.cols();
+ }
+
+ res.Mtype = SLU_GE;
+
+ res.storage.nnz = mat.nonZeros();
+ res.storage.values = mat.valuePtr();
+ res.storage.innerInd = mat.innerIndexPtr();
+ res.storage.outerInd = mat.outerIndexPtr();
+
+ res.setScalarType<typename MatrixType::Scalar>();
+
+ // FIXME the following is not very accurate
+ if (MatrixType::Flags & Upper)
+ res.Mtype = SLU_TRU;
+ if (MatrixType::Flags & Lower)
+ res.Mtype = SLU_TRL;
+
+ eigen_assert(((MatrixType::Flags & SelfAdjoint)==0) && "SelfAdjoint matrix shape not supported by SuperLU");
+ }
+};
+
+namespace internal {
+
+template<typename MatrixType>
+SluMatrix asSluMatrix(MatrixType& mat)
+{
+ return SluMatrix::Map(mat);
+}
+
+/** View a Super LU matrix as an Eigen expression */
+template<typename Scalar, int Flags, typename Index>
+MappedSparseMatrix<Scalar,Flags,Index> map_superlu(SluMatrix& sluMat)
+{
+ eigen_assert((Flags&RowMajor)==RowMajor && sluMat.Stype == SLU_NR
+ || (Flags&ColMajor)==ColMajor && sluMat.Stype == SLU_NC);
+
+ Index outerSize = (Flags&RowMajor)==RowMajor ? sluMat.ncol : sluMat.nrow;
+
+ return MappedSparseMatrix<Scalar,Flags,Index>(
+ sluMat.nrow, sluMat.ncol, sluMat.storage.outerInd[outerSize],
+ sluMat.storage.outerInd, sluMat.storage.innerInd, reinterpret_cast<Scalar*>(sluMat.storage.values) );
+}
+
+} // end namespace internal
+
+/** \ingroup SuperLUSupport_Module
+ * \class SuperLUBase
+ * \brief The base class for the direct and incomplete LU factorization of SuperLU
+ */
+template<typename _MatrixType, typename Derived>
+class SuperLUBase : public SparseSolverBase<Derived>
+{
+ protected:
+ typedef SparseSolverBase<Derived> Base;
+ using Base::derived;
+ using Base::m_isInitialized;
+ public:
+ typedef _MatrixType MatrixType;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef Matrix<Scalar,Dynamic,1> Vector;
+ typedef Matrix<int, 1, MatrixType::ColsAtCompileTime> IntRowVectorType;
+ typedef Matrix<int, MatrixType::RowsAtCompileTime, 1> IntColVectorType;
+ typedef Map<PermutationMatrix<Dynamic,Dynamic,int> > PermutationMap;
+ typedef SparseMatrix<Scalar> LUMatrixType;
+ enum {
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+
+ public:
+
+ SuperLUBase() {}
+
+ ~SuperLUBase()
+ {
+ clearFactors();
+ }
+
+ inline Index rows() const { return m_matrix.rows(); }
+ inline Index cols() const { return m_matrix.cols(); }
+
+ /** \returns a reference to the Super LU option object to configure the Super LU algorithms. */
+ inline superlu_options_t& options() { return m_sluOptions; }
+
+ /** \brief Reports whether previous computation was successful.
+ *
+ * \returns \c Success if computation was succesful,
+ * \c NumericalIssue if the matrix.appears to be negative.
+ */
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+ return m_info;
+ }
+
+ /** Computes the sparse Cholesky decomposition of \a matrix */
+ void compute(const MatrixType& matrix)
+ {
+ derived().analyzePattern(matrix);
+ derived().factorize(matrix);
+ }
+
+ /** Performs a symbolic decomposition on the sparcity of \a matrix.
+ *
+ * This function is particularly useful when solving for several problems having the same structure.
+ *
+ * \sa factorize()
+ */
+ void analyzePattern(const MatrixType& /*matrix*/)
+ {
+ m_isInitialized = true;
+ m_info = Success;
+ m_analysisIsOk = true;
+ m_factorizationIsOk = false;
+ }
+
+ template<typename Stream>
+ void dumpMemory(Stream& /*s*/)
+ {}
+
+ protected:
+
+ void initFactorization(const MatrixType& a)
+ {
+ set_default_options(&this->m_sluOptions);
+
+ const Index size = a.rows();
+ m_matrix = a;
+
+ m_sluA = internal::asSluMatrix(m_matrix);
+ clearFactors();
+
+ m_p.resize(size);
+ m_q.resize(size);
+ m_sluRscale.resize(size);
+ m_sluCscale.resize(size);
+ m_sluEtree.resize(size);
+
+ // set empty B and X
+ m_sluB.setStorageType(SLU_DN);
+ m_sluB.setScalarType<Scalar>();
+ m_sluB.Mtype = SLU_GE;
+ m_sluB.storage.values = 0;
+ m_sluB.nrow = 0;
+ m_sluB.ncol = 0;
+ m_sluB.storage.lda = internal::convert_index<int>(size);
+ m_sluX = m_sluB;
+
+ m_extractedDataAreDirty = true;
+ }
+
+ void init()
+ {
+ m_info = InvalidInput;
+ m_isInitialized = false;
+ m_sluL.Store = 0;
+ m_sluU.Store = 0;
+ }
+
+ void extractData() const;
+
+ void clearFactors()
+ {
+ if(m_sluL.Store)
+ Destroy_SuperNode_Matrix(&m_sluL);
+ if(m_sluU.Store)
+ Destroy_CompCol_Matrix(&m_sluU);
+
+ m_sluL.Store = 0;
+ m_sluU.Store = 0;
+
+ memset(&m_sluL,0,sizeof m_sluL);
+ memset(&m_sluU,0,sizeof m_sluU);
+ }
+
+ // cached data to reduce reallocation, etc.
+ mutable LUMatrixType m_l;
+ mutable LUMatrixType m_u;
+ mutable IntColVectorType m_p;
+ mutable IntRowVectorType m_q;
+
+ mutable LUMatrixType m_matrix; // copy of the factorized matrix
+ mutable SluMatrix m_sluA;
+ mutable SuperMatrix m_sluL, m_sluU;
+ mutable SluMatrix m_sluB, m_sluX;
+ mutable SuperLUStat_t m_sluStat;
+ mutable superlu_options_t m_sluOptions;
+ mutable std::vector<int> m_sluEtree;
+ mutable Matrix<RealScalar,Dynamic,1> m_sluRscale, m_sluCscale;
+ mutable Matrix<RealScalar,Dynamic,1> m_sluFerr, m_sluBerr;
+ mutable char m_sluEqued;
+
+ mutable ComputationInfo m_info;
+ int m_factorizationIsOk;
+ int m_analysisIsOk;
+ mutable bool m_extractedDataAreDirty;
+
+ private:
+ SuperLUBase(SuperLUBase& ) { }
+};
+
+
+/** \ingroup SuperLUSupport_Module
+ * \class SuperLU
+ * \brief A sparse direct LU factorization and solver based on the SuperLU library
+ *
+ * This class allows to solve for A.X = B sparse linear problems via a direct LU factorization
+ * using the SuperLU library. The sparse matrix A must be squared and invertible. The vectors or matrices
+ * X and B can be either dense or sparse.
+ *
+ * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+ *
+ * \warning This class is only for the 4.x versions of SuperLU. The 3.x and 5.x versions are not supported.
+ *
+ * \implsparsesolverconcept
+ *
+ * \sa \ref TutorialSparseSolverConcept, class SparseLU
+ */
+template<typename _MatrixType>
+class SuperLU : public SuperLUBase<_MatrixType,SuperLU<_MatrixType> >
+{
+ public:
+ typedef SuperLUBase<_MatrixType,SuperLU> Base;
+ typedef _MatrixType MatrixType;
+ typedef typename Base::Scalar Scalar;
+ typedef typename Base::RealScalar RealScalar;
+ typedef typename Base::StorageIndex StorageIndex;
+ typedef typename Base::IntRowVectorType IntRowVectorType;
+ typedef typename Base::IntColVectorType IntColVectorType;
+ typedef typename Base::PermutationMap PermutationMap;
+ typedef typename Base::LUMatrixType LUMatrixType;
+ typedef TriangularView<LUMatrixType, Lower|UnitDiag> LMatrixType;
+ typedef TriangularView<LUMatrixType, Upper> UMatrixType;
+
+ public:
+ using Base::_solve_impl;
+
+ SuperLU() : Base() { init(); }
+
+ explicit SuperLU(const MatrixType& matrix) : Base()
+ {
+ init();
+ Base::compute(matrix);
+ }
+
+ ~SuperLU()
+ {
+ }
+
+ /** Performs a symbolic decomposition on the sparcity of \a matrix.
+ *
+ * This function is particularly useful when solving for several problems having the same structure.
+ *
+ * \sa factorize()
+ */
+ void analyzePattern(const MatrixType& matrix)
+ {
+ m_info = InvalidInput;
+ m_isInitialized = false;
+ Base::analyzePattern(matrix);
+ }
+
+ /** Performs a numeric decomposition of \a matrix
+ *
+ * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
+ *
+ * \sa analyzePattern()
+ */
+ void factorize(const MatrixType& matrix);
+
+ /** \internal */
+ template<typename Rhs,typename Dest>
+ void _solve_impl(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const;
+
+ inline const LMatrixType& matrixL() const
+ {
+ if (m_extractedDataAreDirty) this->extractData();
+ return m_l;
+ }
+
+ inline const UMatrixType& matrixU() const
+ {
+ if (m_extractedDataAreDirty) this->extractData();
+ return m_u;
+ }
+
+ inline const IntColVectorType& permutationP() const
+ {
+ if (m_extractedDataAreDirty) this->extractData();
+ return m_p;
+ }
+
+ inline const IntRowVectorType& permutationQ() const
+ {
+ if (m_extractedDataAreDirty) this->extractData();
+ return m_q;
+ }
+
+ Scalar determinant() const;
+
+ protected:
+
+ using Base::m_matrix;
+ using Base::m_sluOptions;
+ using Base::m_sluA;
+ using Base::m_sluB;
+ using Base::m_sluX;
+ using Base::m_p;
+ using Base::m_q;
+ using Base::m_sluEtree;
+ using Base::m_sluEqued;
+ using Base::m_sluRscale;
+ using Base::m_sluCscale;
+ using Base::m_sluL;
+ using Base::m_sluU;
+ using Base::m_sluStat;
+ using Base::m_sluFerr;
+ using Base::m_sluBerr;
+ using Base::m_l;
+ using Base::m_u;
+
+ using Base::m_analysisIsOk;
+ using Base::m_factorizationIsOk;
+ using Base::m_extractedDataAreDirty;
+ using Base::m_isInitialized;
+ using Base::m_info;
+
+ void init()
+ {
+ Base::init();
+
+ set_default_options(&this->m_sluOptions);
+ m_sluOptions.PrintStat = NO;
+ m_sluOptions.ConditionNumber = NO;
+ m_sluOptions.Trans = NOTRANS;
+ m_sluOptions.ColPerm = COLAMD;
+ }
+
+
+ private:
+ SuperLU(SuperLU& ) { }
+};
+
+template<typename MatrixType>
+void SuperLU<MatrixType>::factorize(const MatrixType& a)
+{
+ eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
+ if(!m_analysisIsOk)
+ {
+ m_info = InvalidInput;
+ return;
+ }
+
+ this->initFactorization(a);
+
+ m_sluOptions.ColPerm = COLAMD;
+ int info = 0;
+ RealScalar recip_pivot_growth, rcond;
+ RealScalar ferr, berr;
+
+ StatInit(&m_sluStat);
+ SuperLU_gssvx(&m_sluOptions, &m_sluA, m_q.data(), m_p.data(), &m_sluEtree[0],
+ &m_sluEqued, &m_sluRscale[0], &m_sluCscale[0],
+ &m_sluL, &m_sluU,
+ NULL, 0,
+ &m_sluB, &m_sluX,
+ &recip_pivot_growth, &rcond,
+ &ferr, &berr,
+ &m_sluStat, &info, Scalar());
+ StatFree(&m_sluStat);
+
+ m_extractedDataAreDirty = true;
+
+ // FIXME how to better check for errors ???
+ m_info = info == 0 ? Success : NumericalIssue;
+ m_factorizationIsOk = true;
+}
+
+template<typename MatrixType>
+template<typename Rhs,typename Dest>
+void SuperLU<MatrixType>::_solve_impl(const MatrixBase<Rhs> &b, MatrixBase<Dest>& x) const
+{
+ eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or analyzePattern()/factorize()");
+
+ const Index size = m_matrix.rows();
+ const Index rhsCols = b.cols();
+ eigen_assert(size==b.rows());
+
+ m_sluOptions.Trans = NOTRANS;
+ m_sluOptions.Fact = FACTORED;
+ m_sluOptions.IterRefine = NOREFINE;
+
+
+ m_sluFerr.resize(rhsCols);
+ m_sluBerr.resize(rhsCols);
+
+ Ref<const Matrix<typename Rhs::Scalar,Dynamic,Dynamic,ColMajor> > b_ref(b);
+ Ref<const Matrix<typename Dest::Scalar,Dynamic,Dynamic,ColMajor> > x_ref(x);
+
+ m_sluB = SluMatrix::Map(b_ref.const_cast_derived());
+ m_sluX = SluMatrix::Map(x_ref.const_cast_derived());
+
+ typename Rhs::PlainObject b_cpy;
+ if(m_sluEqued!='N')
+ {
+ b_cpy = b;
+ m_sluB = SluMatrix::Map(b_cpy.const_cast_derived());
+ }
+
+ StatInit(&m_sluStat);
+ int info = 0;
+ RealScalar recip_pivot_growth, rcond;
+ SuperLU_gssvx(&m_sluOptions, &m_sluA,
+ m_q.data(), m_p.data(),
+ &m_sluEtree[0], &m_sluEqued,
+ &m_sluRscale[0], &m_sluCscale[0],
+ &m_sluL, &m_sluU,
+ NULL, 0,
+ &m_sluB, &m_sluX,
+ &recip_pivot_growth, &rcond,
+ &m_sluFerr[0], &m_sluBerr[0],
+ &m_sluStat, &info, Scalar());
+ StatFree(&m_sluStat);
+
+ if(x.derived().data() != x_ref.data())
+ x = x_ref;
+
+ m_info = info==0 ? Success : NumericalIssue;
+}
+
+// the code of this extractData() function has been adapted from the SuperLU's Matlab support code,
+//
+// Copyright (c) 1994 by Xerox Corporation. All rights reserved.
+//
+// THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+// EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
+//
+template<typename MatrixType, typename Derived>
+void SuperLUBase<MatrixType,Derived>::extractData() const
+{
+ eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for extracting factors, you must first call either compute() or analyzePattern()/factorize()");
+ if (m_extractedDataAreDirty)
+ {
+ int upper;
+ int fsupc, istart, nsupr;
+ int lastl = 0, lastu = 0;
+ SCformat *Lstore = static_cast<SCformat*>(m_sluL.Store);
+ NCformat *Ustore = static_cast<NCformat*>(m_sluU.Store);
+ Scalar *SNptr;
+
+ const Index size = m_matrix.rows();
+ m_l.resize(size,size);
+ m_l.resizeNonZeros(Lstore->nnz);
+ m_u.resize(size,size);
+ m_u.resizeNonZeros(Ustore->nnz);
+
+ int* Lcol = m_l.outerIndexPtr();
+ int* Lrow = m_l.innerIndexPtr();
+ Scalar* Lval = m_l.valuePtr();
+
+ int* Ucol = m_u.outerIndexPtr();
+ int* Urow = m_u.innerIndexPtr();
+ Scalar* Uval = m_u.valuePtr();
+
+ Ucol[0] = 0;
+ Ucol[0] = 0;
+
+ /* for each supernode */
+ for (int k = 0; k <= Lstore->nsuper; ++k)
+ {
+ fsupc = L_FST_SUPC(k);
+ istart = L_SUB_START(fsupc);
+ nsupr = L_SUB_START(fsupc+1) - istart;
+ upper = 1;
+
+ /* for each column in the supernode */
+ for (int j = fsupc; j < L_FST_SUPC(k+1); ++j)
+ {
+ SNptr = &((Scalar*)Lstore->nzval)[L_NZ_START(j)];
+
+ /* Extract U */
+ for (int i = U_NZ_START(j); i < U_NZ_START(j+1); ++i)
+ {
+ Uval[lastu] = ((Scalar*)Ustore->nzval)[i];
+ /* Matlab doesn't like explicit zero. */
+ if (Uval[lastu] != 0.0)
+ Urow[lastu++] = U_SUB(i);
+ }
+ for (int i = 0; i < upper; ++i)
+ {
+ /* upper triangle in the supernode */
+ Uval[lastu] = SNptr[i];
+ /* Matlab doesn't like explicit zero. */
+ if (Uval[lastu] != 0.0)
+ Urow[lastu++] = L_SUB(istart+i);
+ }
+ Ucol[j+1] = lastu;
+
+ /* Extract L */
+ Lval[lastl] = 1.0; /* unit diagonal */
+ Lrow[lastl++] = L_SUB(istart + upper - 1);
+ for (int i = upper; i < nsupr; ++i)
+ {
+ Lval[lastl] = SNptr[i];
+ /* Matlab doesn't like explicit zero. */
+ if (Lval[lastl] != 0.0)
+ Lrow[lastl++] = L_SUB(istart+i);
+ }
+ Lcol[j+1] = lastl;
+
+ ++upper;
+ } /* for j ... */
+
+ } /* for k ... */
+
+ // squeeze the matrices :
+ m_l.resizeNonZeros(lastl);
+ m_u.resizeNonZeros(lastu);
+
+ m_extractedDataAreDirty = false;
+ }
+}
+
+template<typename MatrixType>
+typename SuperLU<MatrixType>::Scalar SuperLU<MatrixType>::determinant() const
+{
+ eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for computing the determinant, you must first call either compute() or analyzePattern()/factorize()");
+
+ if (m_extractedDataAreDirty)
+ this->extractData();
+
+ Scalar det = Scalar(1);
+ for (int j=0; j<m_u.cols(); ++j)
+ {
+ if (m_u.outerIndexPtr()[j+1]-m_u.outerIndexPtr()[j] > 0)
+ {
+ int lastId = m_u.outerIndexPtr()[j+1]-1;
+ eigen_assert(m_u.innerIndexPtr()[lastId]<=j);
+ if (m_u.innerIndexPtr()[lastId]==j)
+ det *= m_u.valuePtr()[lastId];
+ }
+ }
+ if(PermutationMap(m_p.data(),m_p.size()).determinant()*PermutationMap(m_q.data(),m_q.size()).determinant()<0)
+ det = -det;
+ if(m_sluEqued!='N')
+ return det/m_sluRscale.prod()/m_sluCscale.prod();
+ else
+ return det;
+}
+
+#ifdef EIGEN_PARSED_BY_DOXYGEN
+#define EIGEN_SUPERLU_HAS_ILU
+#endif
+
+#ifdef EIGEN_SUPERLU_HAS_ILU
+
+/** \ingroup SuperLUSupport_Module
+ * \class SuperILU
+ * \brief A sparse direct \b incomplete LU factorization and solver based on the SuperLU library
+ *
+ * This class allows to solve for an approximate solution of A.X = B sparse linear problems via an incomplete LU factorization
+ * using the SuperLU library. This class is aimed to be used as a preconditioner of the iterative linear solvers.
+ *
+ * \warning This class is only for the 4.x versions of SuperLU. The 3.x and 5.x versions are not supported.
+ *
+ * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+ *
+ * \implsparsesolverconcept
+ *
+ * \sa \ref TutorialSparseSolverConcept, class IncompleteLUT, class ConjugateGradient, class BiCGSTAB
+ */
+
+template<typename _MatrixType>
+class SuperILU : public SuperLUBase<_MatrixType,SuperILU<_MatrixType> >
+{
+ public:
+ typedef SuperLUBase<_MatrixType,SuperILU> Base;
+ typedef _MatrixType MatrixType;
+ typedef typename Base::Scalar Scalar;
+ typedef typename Base::RealScalar RealScalar;
+
+ public:
+ using Base::_solve_impl;
+
+ SuperILU() : Base() { init(); }
+
+ SuperILU(const MatrixType& matrix) : Base()
+ {
+ init();
+ Base::compute(matrix);
+ }
+
+ ~SuperILU()
+ {
+ }
+
+ /** Performs a symbolic decomposition on the sparcity of \a matrix.
+ *
+ * This function is particularly useful when solving for several problems having the same structure.
+ *
+ * \sa factorize()
+ */
+ void analyzePattern(const MatrixType& matrix)
+ {
+ Base::analyzePattern(matrix);
+ }
+
+ /** Performs a numeric decomposition of \a matrix
+ *
+ * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
+ *
+ * \sa analyzePattern()
+ */
+ void factorize(const MatrixType& matrix);
+
+ #ifndef EIGEN_PARSED_BY_DOXYGEN
+ /** \internal */
+ template<typename Rhs,typename Dest>
+ void _solve_impl(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const;
+ #endif // EIGEN_PARSED_BY_DOXYGEN
+
+ protected:
+
+ using Base::m_matrix;
+ using Base::m_sluOptions;
+ using Base::m_sluA;
+ using Base::m_sluB;
+ using Base::m_sluX;
+ using Base::m_p;
+ using Base::m_q;
+ using Base::m_sluEtree;
+ using Base::m_sluEqued;
+ using Base::m_sluRscale;
+ using Base::m_sluCscale;
+ using Base::m_sluL;
+ using Base::m_sluU;
+ using Base::m_sluStat;
+ using Base::m_sluFerr;
+ using Base::m_sluBerr;
+ using Base::m_l;
+ using Base::m_u;
+
+ using Base::m_analysisIsOk;
+ using Base::m_factorizationIsOk;
+ using Base::m_extractedDataAreDirty;
+ using Base::m_isInitialized;
+ using Base::m_info;
+
+ void init()
+ {
+ Base::init();
+
+ ilu_set_default_options(&m_sluOptions);
+ m_sluOptions.PrintStat = NO;
+ m_sluOptions.ConditionNumber = NO;
+ m_sluOptions.Trans = NOTRANS;
+ m_sluOptions.ColPerm = MMD_AT_PLUS_A;
+
+ // no attempt to preserve column sum
+ m_sluOptions.ILU_MILU = SILU;
+ // only basic ILU(k) support -- no direct control over memory consumption
+ // better to use ILU_DropRule = DROP_BASIC | DROP_AREA
+ // and set ILU_FillFactor to max memory growth
+ m_sluOptions.ILU_DropRule = DROP_BASIC;
+ m_sluOptions.ILU_DropTol = NumTraits<Scalar>::dummy_precision()*10;
+ }
+
+ private:
+ SuperILU(SuperILU& ) { }
+};
+
+template<typename MatrixType>
+void SuperILU<MatrixType>::factorize(const MatrixType& a)
+{
+ eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
+ if(!m_analysisIsOk)
+ {
+ m_info = InvalidInput;
+ return;
+ }
+
+ this->initFactorization(a);
+
+ int info = 0;
+ RealScalar recip_pivot_growth, rcond;
+
+ StatInit(&m_sluStat);
+ SuperLU_gsisx(&m_sluOptions, &m_sluA, m_q.data(), m_p.data(), &m_sluEtree[0],
+ &m_sluEqued, &m_sluRscale[0], &m_sluCscale[0],
+ &m_sluL, &m_sluU,
+ NULL, 0,
+ &m_sluB, &m_sluX,
+ &recip_pivot_growth, &rcond,
+ &m_sluStat, &info, Scalar());
+ StatFree(&m_sluStat);
+
+ // FIXME how to better check for errors ???
+ m_info = info == 0 ? Success : NumericalIssue;
+ m_factorizationIsOk = true;
+}
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+template<typename MatrixType>
+template<typename Rhs,typename Dest>
+void SuperILU<MatrixType>::_solve_impl(const MatrixBase<Rhs> &b, MatrixBase<Dest>& x) const
+{
+ eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or analyzePattern()/factorize()");
+
+ const int size = m_matrix.rows();
+ const int rhsCols = b.cols();
+ eigen_assert(size==b.rows());
+
+ m_sluOptions.Trans = NOTRANS;
+ m_sluOptions.Fact = FACTORED;
+ m_sluOptions.IterRefine = NOREFINE;
+
+ m_sluFerr.resize(rhsCols);
+ m_sluBerr.resize(rhsCols);
+
+ Ref<const Matrix<typename Rhs::Scalar,Dynamic,Dynamic,ColMajor> > b_ref(b);
+ Ref<const Matrix<typename Dest::Scalar,Dynamic,Dynamic,ColMajor> > x_ref(x);
+
+ m_sluB = SluMatrix::Map(b_ref.const_cast_derived());
+ m_sluX = SluMatrix::Map(x_ref.const_cast_derived());
+
+ typename Rhs::PlainObject b_cpy;
+ if(m_sluEqued!='N')
+ {
+ b_cpy = b;
+ m_sluB = SluMatrix::Map(b_cpy.const_cast_derived());
+ }
+
+ int info = 0;
+ RealScalar recip_pivot_growth, rcond;
+
+ StatInit(&m_sluStat);
+ SuperLU_gsisx(&m_sluOptions, &m_sluA,
+ m_q.data(), m_p.data(),
+ &m_sluEtree[0], &m_sluEqued,
+ &m_sluRscale[0], &m_sluCscale[0],
+ &m_sluL, &m_sluU,
+ NULL, 0,
+ &m_sluB, &m_sluX,
+ &recip_pivot_growth, &rcond,
+ &m_sluStat, &info, Scalar());
+ StatFree(&m_sluStat);
+
+ if(x.derived().data() != x_ref.data())
+ x = x_ref;
+
+ m_info = info==0 ? Success : NumericalIssue;
+}
+#endif
+
+#endif
+
+} // end namespace Eigen
+
+#endif // EIGEN_SUPERLUSUPPORT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h b/runtimes/nn/depend/external/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h
new file mode 100644
index 000000000..91c09ab13
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h
@@ -0,0 +1,506 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_UMFPACKSUPPORT_H
+#define EIGEN_UMFPACKSUPPORT_H
+
+namespace Eigen {
+
+/* TODO extract L, extract U, compute det, etc... */
+
+// generic double/complex<double> wrapper functions:
+
+
+inline void umfpack_defaults(double control[UMFPACK_CONTROL], double)
+{ umfpack_di_defaults(control); }
+
+inline void umfpack_defaults(double control[UMFPACK_CONTROL], std::complex<double>)
+{ umfpack_zi_defaults(control); }
+
+inline void umfpack_report_info(double control[UMFPACK_CONTROL], double info[UMFPACK_INFO], double)
+{ umfpack_di_report_info(control, info);}
+
+inline void umfpack_report_info(double control[UMFPACK_CONTROL], double info[UMFPACK_INFO], std::complex<double>)
+{ umfpack_zi_report_info(control, info);}
+
+inline void umfpack_report_status(double control[UMFPACK_CONTROL], int status, double)
+{ umfpack_di_report_status(control, status);}
+
+inline void umfpack_report_status(double control[UMFPACK_CONTROL], int status, std::complex<double>)
+{ umfpack_zi_report_status(control, status);}
+
+inline void umfpack_report_control(double control[UMFPACK_CONTROL], double)
+{ umfpack_di_report_control(control);}
+
+inline void umfpack_report_control(double control[UMFPACK_CONTROL], std::complex<double>)
+{ umfpack_zi_report_control(control);}
+
+inline void umfpack_free_numeric(void **Numeric, double)
+{ umfpack_di_free_numeric(Numeric); *Numeric = 0; }
+
+inline void umfpack_free_numeric(void **Numeric, std::complex<double>)
+{ umfpack_zi_free_numeric(Numeric); *Numeric = 0; }
+
+inline void umfpack_free_symbolic(void **Symbolic, double)
+{ umfpack_di_free_symbolic(Symbolic); *Symbolic = 0; }
+
+inline void umfpack_free_symbolic(void **Symbolic, std::complex<double>)
+{ umfpack_zi_free_symbolic(Symbolic); *Symbolic = 0; }
+
+inline int umfpack_symbolic(int n_row,int n_col,
+ const int Ap[], const int Ai[], const double Ax[], void **Symbolic,
+ const double Control [UMFPACK_CONTROL], double Info [UMFPACK_INFO])
+{
+ return umfpack_di_symbolic(n_row,n_col,Ap,Ai,Ax,Symbolic,Control,Info);
+}
+
+inline int umfpack_symbolic(int n_row,int n_col,
+ const int Ap[], const int Ai[], const std::complex<double> Ax[], void **Symbolic,
+ const double Control [UMFPACK_CONTROL], double Info [UMFPACK_INFO])
+{
+ return umfpack_zi_symbolic(n_row,n_col,Ap,Ai,&numext::real_ref(Ax[0]),0,Symbolic,Control,Info);
+}
+
+inline int umfpack_numeric( const int Ap[], const int Ai[], const double Ax[],
+ void *Symbolic, void **Numeric,
+ const double Control[UMFPACK_CONTROL],double Info [UMFPACK_INFO])
+{
+ return umfpack_di_numeric(Ap,Ai,Ax,Symbolic,Numeric,Control,Info);
+}
+
+inline int umfpack_numeric( const int Ap[], const int Ai[], const std::complex<double> Ax[],
+ void *Symbolic, void **Numeric,
+ const double Control[UMFPACK_CONTROL],double Info [UMFPACK_INFO])
+{
+ return umfpack_zi_numeric(Ap,Ai,&numext::real_ref(Ax[0]),0,Symbolic,Numeric,Control,Info);
+}
+
+inline int umfpack_solve( int sys, const int Ap[], const int Ai[], const double Ax[],
+ double X[], const double B[], void *Numeric,
+ const double Control[UMFPACK_CONTROL], double Info[UMFPACK_INFO])
+{
+ return umfpack_di_solve(sys,Ap,Ai,Ax,X,B,Numeric,Control,Info);
+}
+
+inline int umfpack_solve( int sys, const int Ap[], const int Ai[], const std::complex<double> Ax[],
+ std::complex<double> X[], const std::complex<double> B[], void *Numeric,
+ const double Control[UMFPACK_CONTROL], double Info[UMFPACK_INFO])
+{
+ return umfpack_zi_solve(sys,Ap,Ai,&numext::real_ref(Ax[0]),0,&numext::real_ref(X[0]),0,&numext::real_ref(B[0]),0,Numeric,Control,Info);
+}
+
+inline int umfpack_get_lunz(int *lnz, int *unz, int *n_row, int *n_col, int *nz_udiag, void *Numeric, double)
+{
+ return umfpack_di_get_lunz(lnz,unz,n_row,n_col,nz_udiag,Numeric);
+}
+
+inline int umfpack_get_lunz(int *lnz, int *unz, int *n_row, int *n_col, int *nz_udiag, void *Numeric, std::complex<double>)
+{
+ return umfpack_zi_get_lunz(lnz,unz,n_row,n_col,nz_udiag,Numeric);
+}
+
+inline int umfpack_get_numeric(int Lp[], int Lj[], double Lx[], int Up[], int Ui[], double Ux[],
+ int P[], int Q[], double Dx[], int *do_recip, double Rs[], void *Numeric)
+{
+ return umfpack_di_get_numeric(Lp,Lj,Lx,Up,Ui,Ux,P,Q,Dx,do_recip,Rs,Numeric);
+}
+
+inline int umfpack_get_numeric(int Lp[], int Lj[], std::complex<double> Lx[], int Up[], int Ui[], std::complex<double> Ux[],
+ int P[], int Q[], std::complex<double> Dx[], int *do_recip, double Rs[], void *Numeric)
+{
+ double& lx0_real = numext::real_ref(Lx[0]);
+ double& ux0_real = numext::real_ref(Ux[0]);
+ double& dx0_real = numext::real_ref(Dx[0]);
+ return umfpack_zi_get_numeric(Lp,Lj,Lx?&lx0_real:0,0,Up,Ui,Ux?&ux0_real:0,0,P,Q,
+ Dx?&dx0_real:0,0,do_recip,Rs,Numeric);
+}
+
+inline int umfpack_get_determinant(double *Mx, double *Ex, void *NumericHandle, double User_Info [UMFPACK_INFO])
+{
+ return umfpack_di_get_determinant(Mx,Ex,NumericHandle,User_Info);
+}
+
+inline int umfpack_get_determinant(std::complex<double> *Mx, double *Ex, void *NumericHandle, double User_Info [UMFPACK_INFO])
+{
+ double& mx_real = numext::real_ref(*Mx);
+ return umfpack_zi_get_determinant(&mx_real,0,Ex,NumericHandle,User_Info);
+}
+
+
+/** \ingroup UmfPackSupport_Module
+ * \brief A sparse LU factorization and solver based on UmfPack
+ *
+ * This class allows to solve for A.X = B sparse linear problems via a LU factorization
+ * using the UmfPack library. The sparse matrix A must be squared and full rank.
+ * The vectors or matrices X and B can be either dense or sparse.
+ *
+ * \warning The input matrix A should be in a \b compressed and \b column-major form.
+ * Otherwise an expensive copy will be made. You can call the inexpensive makeCompressed() to get a compressed matrix.
+ * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+ *
+ * \implsparsesolverconcept
+ *
+ * \sa \ref TutorialSparseSolverConcept, class SparseLU
+ */
+template<typename _MatrixType>
+class UmfPackLU : public SparseSolverBase<UmfPackLU<_MatrixType> >
+{
+ protected:
+ typedef SparseSolverBase<UmfPackLU<_MatrixType> > Base;
+ using Base::m_isInitialized;
+ public:
+ using Base::_solve_impl;
+ typedef _MatrixType MatrixType;
+ typedef typename MatrixType::Scalar Scalar;
+ typedef typename MatrixType::RealScalar RealScalar;
+ typedef typename MatrixType::StorageIndex StorageIndex;
+ typedef Matrix<Scalar,Dynamic,1> Vector;
+ typedef Matrix<int, 1, MatrixType::ColsAtCompileTime> IntRowVectorType;
+ typedef Matrix<int, MatrixType::RowsAtCompileTime, 1> IntColVectorType;
+ typedef SparseMatrix<Scalar> LUMatrixType;
+ typedef SparseMatrix<Scalar,ColMajor,int> UmfpackMatrixType;
+ typedef Ref<const UmfpackMatrixType, StandardCompressedFormat> UmfpackMatrixRef;
+ enum {
+ ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+ MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+ };
+
+ public:
+
+ typedef Array<double, UMFPACK_CONTROL, 1> UmfpackControl;
+ typedef Array<double, UMFPACK_INFO, 1> UmfpackInfo;
+
+ UmfPackLU()
+ : m_dummy(0,0), mp_matrix(m_dummy)
+ {
+ init();
+ }
+
+ template<typename InputMatrixType>
+ explicit UmfPackLU(const InputMatrixType& matrix)
+ : mp_matrix(matrix)
+ {
+ init();
+ compute(matrix);
+ }
+
+ ~UmfPackLU()
+ {
+ if(m_symbolic) umfpack_free_symbolic(&m_symbolic,Scalar());
+ if(m_numeric) umfpack_free_numeric(&m_numeric,Scalar());
+ }
+
+ inline Index rows() const { return mp_matrix.rows(); }
+ inline Index cols() const { return mp_matrix.cols(); }
+
+ /** \brief Reports whether previous computation was successful.
+ *
+ * \returns \c Success if computation was succesful,
+ * \c NumericalIssue if the matrix.appears to be negative.
+ */
+ ComputationInfo info() const
+ {
+ eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+ return m_info;
+ }
+
+ inline const LUMatrixType& matrixL() const
+ {
+ if (m_extractedDataAreDirty) extractData();
+ return m_l;
+ }
+
+ inline const LUMatrixType& matrixU() const
+ {
+ if (m_extractedDataAreDirty) extractData();
+ return m_u;
+ }
+
+ inline const IntColVectorType& permutationP() const
+ {
+ if (m_extractedDataAreDirty) extractData();
+ return m_p;
+ }
+
+ inline const IntRowVectorType& permutationQ() const
+ {
+ if (m_extractedDataAreDirty) extractData();
+ return m_q;
+ }
+
+ /** Computes the sparse Cholesky decomposition of \a matrix
+ * Note that the matrix should be column-major, and in compressed format for best performance.
+ * \sa SparseMatrix::makeCompressed().
+ */
+ template<typename InputMatrixType>
+ void compute(const InputMatrixType& matrix)
+ {
+ if(m_symbolic) umfpack_free_symbolic(&m_symbolic,Scalar());
+ if(m_numeric) umfpack_free_numeric(&m_numeric,Scalar());
+ grab(matrix.derived());
+ analyzePattern_impl();
+ factorize_impl();
+ }
+
+ /** Performs a symbolic decomposition on the sparcity of \a matrix.
+ *
+ * This function is particularly useful when solving for several problems having the same structure.
+ *
+ * \sa factorize(), compute()
+ */
+ template<typename InputMatrixType>
+ void analyzePattern(const InputMatrixType& matrix)
+ {
+ if(m_symbolic) umfpack_free_symbolic(&m_symbolic,Scalar());
+ if(m_numeric) umfpack_free_numeric(&m_numeric,Scalar());
+
+ grab(matrix.derived());
+
+ analyzePattern_impl();
+ }
+
+ /** Provides the return status code returned by UmfPack during the numeric
+ * factorization.
+ *
+ * \sa factorize(), compute()
+ */
+ inline int umfpackFactorizeReturncode() const
+ {
+ eigen_assert(m_numeric && "UmfPackLU: you must first call factorize()");
+ return m_fact_errorCode;
+ }
+
+ /** Provides access to the control settings array used by UmfPack.
+ *
+ * If this array contains NaN's, the default values are used.
+ *
+ * See UMFPACK documentation for details.
+ */
+ inline const UmfpackControl& umfpackControl() const
+ {
+ return m_control;
+ }
+
+ /** Provides access to the control settings array used by UmfPack.
+ *
+ * If this array contains NaN's, the default values are used.
+ *
+ * See UMFPACK documentation for details.
+ */
+ inline UmfpackControl& umfpackControl()
+ {
+ return m_control;
+ }
+
+ /** Performs a numeric decomposition of \a matrix
+ *
+ * The given matrix must has the same sparcity than the matrix on which the pattern anylysis has been performed.
+ *
+ * \sa analyzePattern(), compute()
+ */
+ template<typename InputMatrixType>
+ void factorize(const InputMatrixType& matrix)
+ {
+ eigen_assert(m_analysisIsOk && "UmfPackLU: you must first call analyzePattern()");
+ if(m_numeric)
+ umfpack_free_numeric(&m_numeric,Scalar());
+
+ grab(matrix.derived());
+
+ factorize_impl();
+ }
+
+ /** Prints the current UmfPack control settings.
+ *
+ * \sa umfpackControl()
+ */
+ void umfpackReportControl()
+ {
+ umfpack_report_control(m_control.data(), Scalar());
+ }
+
+ /** Prints statistics collected by UmfPack.
+ *
+ * \sa analyzePattern(), compute()
+ */
+ void umfpackReportInfo()
+ {
+ eigen_assert(m_analysisIsOk && "UmfPackLU: you must first call analyzePattern()");
+ umfpack_report_info(m_control.data(), m_umfpackInfo.data(), Scalar());
+ }
+
+ /** Prints the status of the previous factorization operation performed by UmfPack (symbolic or numerical factorization).
+ *
+ * \sa analyzePattern(), compute()
+ */
+ void umfpackReportStatus() {
+ eigen_assert(m_analysisIsOk && "UmfPackLU: you must first call analyzePattern()");
+ umfpack_report_status(m_control.data(), m_fact_errorCode, Scalar());
+ }
+
+ /** \internal */
+ template<typename BDerived,typename XDerived>
+ bool _solve_impl(const MatrixBase<BDerived> &b, MatrixBase<XDerived> &x) const;
+
+ Scalar determinant() const;
+
+ void extractData() const;
+
+ protected:
+
+ void init()
+ {
+ m_info = InvalidInput;
+ m_isInitialized = false;
+ m_numeric = 0;
+ m_symbolic = 0;
+ m_extractedDataAreDirty = true;
+
+ umfpack_defaults(m_control.data(), Scalar());
+ }
+
+ void analyzePattern_impl()
+ {
+ m_fact_errorCode = umfpack_symbolic(internal::convert_index<int>(mp_matrix.rows()),
+ internal::convert_index<int>(mp_matrix.cols()),
+ mp_matrix.outerIndexPtr(), mp_matrix.innerIndexPtr(), mp_matrix.valuePtr(),
+ &m_symbolic, m_control.data(), m_umfpackInfo.data());
+
+ m_isInitialized = true;
+ m_info = m_fact_errorCode ? InvalidInput : Success;
+ m_analysisIsOk = true;
+ m_factorizationIsOk = false;
+ m_extractedDataAreDirty = true;
+ }
+
+ void factorize_impl()
+ {
+
+ m_fact_errorCode = umfpack_numeric(mp_matrix.outerIndexPtr(), mp_matrix.innerIndexPtr(), mp_matrix.valuePtr(),
+ m_symbolic, &m_numeric, m_control.data(), m_umfpackInfo.data());
+
+ m_info = m_fact_errorCode == UMFPACK_OK ? Success : NumericalIssue;
+ m_factorizationIsOk = true;
+ m_extractedDataAreDirty = true;
+ }
+
+ template<typename MatrixDerived>
+ void grab(const EigenBase<MatrixDerived> &A)
+ {
+ mp_matrix.~UmfpackMatrixRef();
+ ::new (&mp_matrix) UmfpackMatrixRef(A.derived());
+ }
+
+ void grab(const UmfpackMatrixRef &A)
+ {
+ if(&(A.derived()) != &mp_matrix)
+ {
+ mp_matrix.~UmfpackMatrixRef();
+ ::new (&mp_matrix) UmfpackMatrixRef(A);
+ }
+ }
+
+ // cached data to reduce reallocation, etc.
+ mutable LUMatrixType m_l;
+ int m_fact_errorCode;
+ UmfpackControl m_control;
+ mutable UmfpackInfo m_umfpackInfo;
+
+ mutable LUMatrixType m_u;
+ mutable IntColVectorType m_p;
+ mutable IntRowVectorType m_q;
+
+ UmfpackMatrixType m_dummy;
+ UmfpackMatrixRef mp_matrix;
+
+ void* m_numeric;
+ void* m_symbolic;
+
+ mutable ComputationInfo m_info;
+ int m_factorizationIsOk;
+ int m_analysisIsOk;
+ mutable bool m_extractedDataAreDirty;
+
+ private:
+ UmfPackLU(const UmfPackLU& ) { }
+};
+
+
+template<typename MatrixType>
+void UmfPackLU<MatrixType>::extractData() const
+{
+ if (m_extractedDataAreDirty)
+ {
+ // get size of the data
+ int lnz, unz, rows, cols, nz_udiag;
+ umfpack_get_lunz(&lnz, &unz, &rows, &cols, &nz_udiag, m_numeric, Scalar());
+
+ // allocate data
+ m_l.resize(rows,(std::min)(rows,cols));
+ m_l.resizeNonZeros(lnz);
+
+ m_u.resize((std::min)(rows,cols),cols);
+ m_u.resizeNonZeros(unz);
+
+ m_p.resize(rows);
+ m_q.resize(cols);
+
+ // extract
+ umfpack_get_numeric(m_l.outerIndexPtr(), m_l.innerIndexPtr(), m_l.valuePtr(),
+ m_u.outerIndexPtr(), m_u.innerIndexPtr(), m_u.valuePtr(),
+ m_p.data(), m_q.data(), 0, 0, 0, m_numeric);
+
+ m_extractedDataAreDirty = false;
+ }
+}
+
+template<typename MatrixType>
+typename UmfPackLU<MatrixType>::Scalar UmfPackLU<MatrixType>::determinant() const
+{
+ Scalar det;
+ umfpack_get_determinant(&det, 0, m_numeric, 0);
+ return det;
+}
+
+template<typename MatrixType>
+template<typename BDerived,typename XDerived>
+bool UmfPackLU<MatrixType>::_solve_impl(const MatrixBase<BDerived> &b, MatrixBase<XDerived> &x) const
+{
+ Index rhsCols = b.cols();
+ eigen_assert((BDerived::Flags&RowMajorBit)==0 && "UmfPackLU backend does not support non col-major rhs yet");
+ eigen_assert((XDerived::Flags&RowMajorBit)==0 && "UmfPackLU backend does not support non col-major result yet");
+ eigen_assert(b.derived().data() != x.derived().data() && " Umfpack does not support inplace solve");
+
+ int errorCode;
+ Scalar* x_ptr = 0;
+ Matrix<Scalar,Dynamic,1> x_tmp;
+ if(x.innerStride()!=1)
+ {
+ x_tmp.resize(x.rows());
+ x_ptr = x_tmp.data();
+ }
+ for (int j=0; j<rhsCols; ++j)
+ {
+ if(x.innerStride()==1)
+ x_ptr = &x.col(j).coeffRef(0);
+ errorCode = umfpack_solve(UMFPACK_A,
+ mp_matrix.outerIndexPtr(), mp_matrix.innerIndexPtr(), mp_matrix.valuePtr(),
+ x_ptr, &b.const_cast_derived().col(j).coeffRef(0), m_numeric, m_control.data(), m_umfpackInfo.data());
+ if(x.innerStride()!=1)
+ x.col(j) = x_tmp;
+ if (errorCode!=0)
+ return false;
+ }
+
+ return true;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_UMFPACKSUPPORT_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/misc/Image.h b/runtimes/nn/depend/external/eigen/Eigen/src/misc/Image.h
new file mode 100644
index 000000000..b8b8a0455
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/misc/Image.h
@@ -0,0 +1,82 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MISC_IMAGE_H
+#define EIGEN_MISC_IMAGE_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** \class image_retval_base
+ *
+ */
+template<typename DecompositionType>
+struct traits<image_retval_base<DecompositionType> >
+{
+ typedef typename DecompositionType::MatrixType MatrixType;
+ typedef Matrix<
+ typename MatrixType::Scalar,
+ MatrixType::RowsAtCompileTime, // the image is a subspace of the destination space, whose
+ // dimension is the number of rows of the original matrix
+ Dynamic, // we don't know at compile time the dimension of the image (the rank)
+ MatrixType::Options,
+ MatrixType::MaxRowsAtCompileTime, // the image matrix will consist of columns from the original matrix,
+ MatrixType::MaxColsAtCompileTime // so it has the same number of rows and at most as many columns.
+ > ReturnType;
+};
+
+template<typename _DecompositionType> struct image_retval_base
+ : public ReturnByValue<image_retval_base<_DecompositionType> >
+{
+ typedef _DecompositionType DecompositionType;
+ typedef typename DecompositionType::MatrixType MatrixType;
+ typedef ReturnByValue<image_retval_base> Base;
+
+ image_retval_base(const DecompositionType& dec, const MatrixType& originalMatrix)
+ : m_dec(dec), m_rank(dec.rank()),
+ m_cols(m_rank == 0 ? 1 : m_rank),
+ m_originalMatrix(originalMatrix)
+ {}
+
+ inline Index rows() const { return m_dec.rows(); }
+ inline Index cols() const { return m_cols; }
+ inline Index rank() const { return m_rank; }
+ inline const DecompositionType& dec() const { return m_dec; }
+ inline const MatrixType& originalMatrix() const { return m_originalMatrix; }
+
+ template<typename Dest> inline void evalTo(Dest& dst) const
+ {
+ static_cast<const image_retval<DecompositionType>*>(this)->evalTo(dst);
+ }
+
+ protected:
+ const DecompositionType& m_dec;
+ Index m_rank, m_cols;
+ const MatrixType& m_originalMatrix;
+};
+
+} // end namespace internal
+
+#define EIGEN_MAKE_IMAGE_HELPERS(DecompositionType) \
+ typedef typename DecompositionType::MatrixType MatrixType; \
+ typedef typename MatrixType::Scalar Scalar; \
+ typedef typename MatrixType::RealScalar RealScalar; \
+ typedef Eigen::internal::image_retval_base<DecompositionType> Base; \
+ using Base::dec; \
+ using Base::originalMatrix; \
+ using Base::rank; \
+ using Base::rows; \
+ using Base::cols; \
+ image_retval(const DecompositionType& dec, const MatrixType& originalMatrix) \
+ : Base(dec, originalMatrix) {}
+
+} // end namespace Eigen
+
+#endif // EIGEN_MISC_IMAGE_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/misc/Kernel.h b/runtimes/nn/depend/external/eigen/Eigen/src/misc/Kernel.h
new file mode 100644
index 000000000..bef5d6ff5
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/misc/Kernel.h
@@ -0,0 +1,79 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MISC_KERNEL_H
+#define EIGEN_MISC_KERNEL_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** \class kernel_retval_base
+ *
+ */
+template<typename DecompositionType>
+struct traits<kernel_retval_base<DecompositionType> >
+{
+ typedef typename DecompositionType::MatrixType MatrixType;
+ typedef Matrix<
+ typename MatrixType::Scalar,
+ MatrixType::ColsAtCompileTime, // the number of rows in the "kernel matrix"
+ // is the number of cols of the original matrix
+ // so that the product "matrix * kernel = zero" makes sense
+ Dynamic, // we don't know at compile-time the dimension of the kernel
+ MatrixType::Options,
+ MatrixType::MaxColsAtCompileTime, // see explanation for 2nd template parameter
+ MatrixType::MaxColsAtCompileTime // the kernel is a subspace of the domain space,
+ // whose dimension is the number of columns of the original matrix
+ > ReturnType;
+};
+
+template<typename _DecompositionType> struct kernel_retval_base
+ : public ReturnByValue<kernel_retval_base<_DecompositionType> >
+{
+ typedef _DecompositionType DecompositionType;
+ typedef ReturnByValue<kernel_retval_base> Base;
+
+ explicit kernel_retval_base(const DecompositionType& dec)
+ : m_dec(dec),
+ m_rank(dec.rank()),
+ m_cols(m_rank==dec.cols() ? 1 : dec.cols() - m_rank)
+ {}
+
+ inline Index rows() const { return m_dec.cols(); }
+ inline Index cols() const { return m_cols; }
+ inline Index rank() const { return m_rank; }
+ inline const DecompositionType& dec() const { return m_dec; }
+
+ template<typename Dest> inline void evalTo(Dest& dst) const
+ {
+ static_cast<const kernel_retval<DecompositionType>*>(this)->evalTo(dst);
+ }
+
+ protected:
+ const DecompositionType& m_dec;
+ Index m_rank, m_cols;
+};
+
+} // end namespace internal
+
+#define EIGEN_MAKE_KERNEL_HELPERS(DecompositionType) \
+ typedef typename DecompositionType::MatrixType MatrixType; \
+ typedef typename MatrixType::Scalar Scalar; \
+ typedef typename MatrixType::RealScalar RealScalar; \
+ typedef Eigen::internal::kernel_retval_base<DecompositionType> Base; \
+ using Base::dec; \
+ using Base::rank; \
+ using Base::rows; \
+ using Base::cols; \
+ kernel_retval(const DecompositionType& dec) : Base(dec) {}
+
+} // end namespace Eigen
+
+#endif // EIGEN_MISC_KERNEL_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/misc/RealSvd2x2.h b/runtimes/nn/depend/external/eigen/Eigen/src/misc/RealSvd2x2.h
new file mode 100644
index 000000000..abb4d3c2f
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/misc/RealSvd2x2.h
@@ -0,0 +1,55 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2013-2016 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_REALSVD2X2_H
+#define EIGEN_REALSVD2X2_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename MatrixType, typename RealScalar, typename Index>
+void real_2x2_jacobi_svd(const MatrixType& matrix, Index p, Index q,
+ JacobiRotation<RealScalar> *j_left,
+ JacobiRotation<RealScalar> *j_right)
+{
+ using std::sqrt;
+ using std::abs;
+ Matrix<RealScalar,2,2> m;
+ m << numext::real(matrix.coeff(p,p)), numext::real(matrix.coeff(p,q)),
+ numext::real(matrix.coeff(q,p)), numext::real(matrix.coeff(q,q));
+ JacobiRotation<RealScalar> rot1;
+ RealScalar t = m.coeff(0,0) + m.coeff(1,1);
+ RealScalar d = m.coeff(1,0) - m.coeff(0,1);
+
+ if(abs(d) < (std::numeric_limits<RealScalar>::min)())
+ {
+ rot1.s() = RealScalar(0);
+ rot1.c() = RealScalar(1);
+ }
+ else
+ {
+ // If d!=0, then t/d cannot overflow because the magnitude of the
+ // entries forming d are not too small compared to the ones forming t.
+ RealScalar u = t / d;
+ RealScalar tmp = sqrt(RealScalar(1) + numext::abs2(u));
+ rot1.s() = RealScalar(1) / tmp;
+ rot1.c() = u / tmp;
+ }
+ m.applyOnTheLeft(0,1,rot1);
+ j_right->makeJacobi(m,0,1);
+ *j_left = rot1 * j_right->transpose();
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_REALSVD2X2_H
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/misc/blas.h b/runtimes/nn/depend/external/eigen/Eigen/src/misc/blas.h
new file mode 100644
index 000000000..25215b15e
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/misc/blas.h
@@ -0,0 +1,440 @@
+#ifndef BLAS_H
+#define BLAS_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#define BLASFUNC(FUNC) FUNC##_
+
+#ifdef __WIN64__
+typedef long long BLASLONG;
+typedef unsigned long long BLASULONG;
+#else
+typedef long BLASLONG;
+typedef unsigned long BLASULONG;
+#endif
+
+int BLASFUNC(xerbla)(const char *, int *info, int);
+
+float BLASFUNC(sdot) (int *, float *, int *, float *, int *);
+float BLASFUNC(sdsdot)(int *, float *, float *, int *, float *, int *);
+
+double BLASFUNC(dsdot) (int *, float *, int *, float *, int *);
+double BLASFUNC(ddot) (int *, double *, int *, double *, int *);
+double BLASFUNC(qdot) (int *, double *, int *, double *, int *);
+
+int BLASFUNC(cdotuw) (int *, float *, int *, float *, int *, float*);
+int BLASFUNC(cdotcw) (int *, float *, int *, float *, int *, float*);
+int BLASFUNC(zdotuw) (int *, double *, int *, double *, int *, double*);
+int BLASFUNC(zdotcw) (int *, double *, int *, double *, int *, double*);
+
+int BLASFUNC(saxpy) (const int *, const float *, const float *, const int *, float *, const int *);
+int BLASFUNC(daxpy) (const int *, const double *, const double *, const int *, double *, const int *);
+int BLASFUNC(qaxpy) (const int *, const double *, const double *, const int *, double *, const int *);
+int BLASFUNC(caxpy) (const int *, const float *, const float *, const int *, float *, const int *);
+int BLASFUNC(zaxpy) (const int *, const double *, const double *, const int *, double *, const int *);
+int BLASFUNC(xaxpy) (const int *, const double *, const double *, const int *, double *, const int *);
+int BLASFUNC(caxpyc)(const int *, const float *, const float *, const int *, float *, const int *);
+int BLASFUNC(zaxpyc)(const int *, const double *, const double *, const int *, double *, const int *);
+int BLASFUNC(xaxpyc)(const int *, const double *, const double *, const int *, double *, const int *);
+
+int BLASFUNC(scopy) (int *, float *, int *, float *, int *);
+int BLASFUNC(dcopy) (int *, double *, int *, double *, int *);
+int BLASFUNC(qcopy) (int *, double *, int *, double *, int *);
+int BLASFUNC(ccopy) (int *, float *, int *, float *, int *);
+int BLASFUNC(zcopy) (int *, double *, int *, double *, int *);
+int BLASFUNC(xcopy) (int *, double *, int *, double *, int *);
+
+int BLASFUNC(sswap) (int *, float *, int *, float *, int *);
+int BLASFUNC(dswap) (int *, double *, int *, double *, int *);
+int BLASFUNC(qswap) (int *, double *, int *, double *, int *);
+int BLASFUNC(cswap) (int *, float *, int *, float *, int *);
+int BLASFUNC(zswap) (int *, double *, int *, double *, int *);
+int BLASFUNC(xswap) (int *, double *, int *, double *, int *);
+
+float BLASFUNC(sasum) (int *, float *, int *);
+float BLASFUNC(scasum)(int *, float *, int *);
+double BLASFUNC(dasum) (int *, double *, int *);
+double BLASFUNC(qasum) (int *, double *, int *);
+double BLASFUNC(dzasum)(int *, double *, int *);
+double BLASFUNC(qxasum)(int *, double *, int *);
+
+int BLASFUNC(isamax)(int *, float *, int *);
+int BLASFUNC(idamax)(int *, double *, int *);
+int BLASFUNC(iqamax)(int *, double *, int *);
+int BLASFUNC(icamax)(int *, float *, int *);
+int BLASFUNC(izamax)(int *, double *, int *);
+int BLASFUNC(ixamax)(int *, double *, int *);
+
+int BLASFUNC(ismax) (int *, float *, int *);
+int BLASFUNC(idmax) (int *, double *, int *);
+int BLASFUNC(iqmax) (int *, double *, int *);
+int BLASFUNC(icmax) (int *, float *, int *);
+int BLASFUNC(izmax) (int *, double *, int *);
+int BLASFUNC(ixmax) (int *, double *, int *);
+
+int BLASFUNC(isamin)(int *, float *, int *);
+int BLASFUNC(idamin)(int *, double *, int *);
+int BLASFUNC(iqamin)(int *, double *, int *);
+int BLASFUNC(icamin)(int *, float *, int *);
+int BLASFUNC(izamin)(int *, double *, int *);
+int BLASFUNC(ixamin)(int *, double *, int *);
+
+int BLASFUNC(ismin)(int *, float *, int *);
+int BLASFUNC(idmin)(int *, double *, int *);
+int BLASFUNC(iqmin)(int *, double *, int *);
+int BLASFUNC(icmin)(int *, float *, int *);
+int BLASFUNC(izmin)(int *, double *, int *);
+int BLASFUNC(ixmin)(int *, double *, int *);
+
+float BLASFUNC(samax) (int *, float *, int *);
+double BLASFUNC(damax) (int *, double *, int *);
+double BLASFUNC(qamax) (int *, double *, int *);
+float BLASFUNC(scamax)(int *, float *, int *);
+double BLASFUNC(dzamax)(int *, double *, int *);
+double BLASFUNC(qxamax)(int *, double *, int *);
+
+float BLASFUNC(samin) (int *, float *, int *);
+double BLASFUNC(damin) (int *, double *, int *);
+double BLASFUNC(qamin) (int *, double *, int *);
+float BLASFUNC(scamin)(int *, float *, int *);
+double BLASFUNC(dzamin)(int *, double *, int *);
+double BLASFUNC(qxamin)(int *, double *, int *);
+
+float BLASFUNC(smax) (int *, float *, int *);
+double BLASFUNC(dmax) (int *, double *, int *);
+double BLASFUNC(qmax) (int *, double *, int *);
+float BLASFUNC(scmax) (int *, float *, int *);
+double BLASFUNC(dzmax) (int *, double *, int *);
+double BLASFUNC(qxmax) (int *, double *, int *);
+
+float BLASFUNC(smin) (int *, float *, int *);
+double BLASFUNC(dmin) (int *, double *, int *);
+double BLASFUNC(qmin) (int *, double *, int *);
+float BLASFUNC(scmin) (int *, float *, int *);
+double BLASFUNC(dzmin) (int *, double *, int *);
+double BLASFUNC(qxmin) (int *, double *, int *);
+
+int BLASFUNC(sscal) (int *, float *, float *, int *);
+int BLASFUNC(dscal) (int *, double *, double *, int *);
+int BLASFUNC(qscal) (int *, double *, double *, int *);
+int BLASFUNC(cscal) (int *, float *, float *, int *);
+int BLASFUNC(zscal) (int *, double *, double *, int *);
+int BLASFUNC(xscal) (int *, double *, double *, int *);
+int BLASFUNC(csscal)(int *, float *, float *, int *);
+int BLASFUNC(zdscal)(int *, double *, double *, int *);
+int BLASFUNC(xqscal)(int *, double *, double *, int *);
+
+float BLASFUNC(snrm2) (int *, float *, int *);
+float BLASFUNC(scnrm2)(int *, float *, int *);
+
+double BLASFUNC(dnrm2) (int *, double *, int *);
+double BLASFUNC(qnrm2) (int *, double *, int *);
+double BLASFUNC(dznrm2)(int *, double *, int *);
+double BLASFUNC(qxnrm2)(int *, double *, int *);
+
+int BLASFUNC(srot) (int *, float *, int *, float *, int *, float *, float *);
+int BLASFUNC(drot) (int *, double *, int *, double *, int *, double *, double *);
+int BLASFUNC(qrot) (int *, double *, int *, double *, int *, double *, double *);
+int BLASFUNC(csrot) (int *, float *, int *, float *, int *, float *, float *);
+int BLASFUNC(zdrot) (int *, double *, int *, double *, int *, double *, double *);
+int BLASFUNC(xqrot) (int *, double *, int *, double *, int *, double *, double *);
+
+int BLASFUNC(srotg) (float *, float *, float *, float *);
+int BLASFUNC(drotg) (double *, double *, double *, double *);
+int BLASFUNC(qrotg) (double *, double *, double *, double *);
+int BLASFUNC(crotg) (float *, float *, float *, float *);
+int BLASFUNC(zrotg) (double *, double *, double *, double *);
+int BLASFUNC(xrotg) (double *, double *, double *, double *);
+
+int BLASFUNC(srotmg)(float *, float *, float *, float *, float *);
+int BLASFUNC(drotmg)(double *, double *, double *, double *, double *);
+
+int BLASFUNC(srotm) (int *, float *, int *, float *, int *, float *);
+int BLASFUNC(drotm) (int *, double *, int *, double *, int *, double *);
+int BLASFUNC(qrotm) (int *, double *, int *, double *, int *, double *);
+
+/* Level 2 routines */
+
+int BLASFUNC(sger)(int *, int *, float *, float *, int *,
+ float *, int *, float *, int *);
+int BLASFUNC(dger)(int *, int *, double *, double *, int *,
+ double *, int *, double *, int *);
+int BLASFUNC(qger)(int *, int *, double *, double *, int *,
+ double *, int *, double *, int *);
+int BLASFUNC(cgeru)(int *, int *, float *, float *, int *,
+ float *, int *, float *, int *);
+int BLASFUNC(cgerc)(int *, int *, float *, float *, int *,
+ float *, int *, float *, int *);
+int BLASFUNC(zgeru)(int *, int *, double *, double *, int *,
+ double *, int *, double *, int *);
+int BLASFUNC(zgerc)(int *, int *, double *, double *, int *,
+ double *, int *, double *, int *);
+int BLASFUNC(xgeru)(int *, int *, double *, double *, int *,
+ double *, int *, double *, int *);
+int BLASFUNC(xgerc)(int *, int *, double *, double *, int *,
+ double *, int *, double *, int *);
+
+int BLASFUNC(sgemv)(const char *, const int *, const int *, const float *, const float *, const int *, const float *, const int *, const float *, float *, const int *);
+int BLASFUNC(dgemv)(const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+int BLASFUNC(qgemv)(const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+int BLASFUNC(cgemv)(const char *, const int *, const int *, const float *, const float *, const int *, const float *, const int *, const float *, float *, const int *);
+int BLASFUNC(zgemv)(const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+int BLASFUNC(xgemv)(const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+
+int BLASFUNC(strsv) (const char *, const char *, const char *, const int *, const float *, const int *, float *, const int *);
+int BLASFUNC(dtrsv) (const char *, const char *, const char *, const int *, const double *, const int *, double *, const int *);
+int BLASFUNC(qtrsv) (const char *, const char *, const char *, const int *, const double *, const int *, double *, const int *);
+int BLASFUNC(ctrsv) (const char *, const char *, const char *, const int *, const float *, const int *, float *, const int *);
+int BLASFUNC(ztrsv) (const char *, const char *, const char *, const int *, const double *, const int *, double *, const int *);
+int BLASFUNC(xtrsv) (const char *, const char *, const char *, const int *, const double *, const int *, double *, const int *);
+
+int BLASFUNC(stpsv) (char *, char *, char *, int *, float *, float *, int *);
+int BLASFUNC(dtpsv) (char *, char *, char *, int *, double *, double *, int *);
+int BLASFUNC(qtpsv) (char *, char *, char *, int *, double *, double *, int *);
+int BLASFUNC(ctpsv) (char *, char *, char *, int *, float *, float *, int *);
+int BLASFUNC(ztpsv) (char *, char *, char *, int *, double *, double *, int *);
+int BLASFUNC(xtpsv) (char *, char *, char *, int *, double *, double *, int *);
+
+int BLASFUNC(strmv) (const char *, const char *, const char *, const int *, const float *, const int *, float *, const int *);
+int BLASFUNC(dtrmv) (const char *, const char *, const char *, const int *, const double *, const int *, double *, const int *);
+int BLASFUNC(qtrmv) (const char *, const char *, const char *, const int *, const double *, const int *, double *, const int *);
+int BLASFUNC(ctrmv) (const char *, const char *, const char *, const int *, const float *, const int *, float *, const int *);
+int BLASFUNC(ztrmv) (const char *, const char *, const char *, const int *, const double *, const int *, double *, const int *);
+int BLASFUNC(xtrmv) (const char *, const char *, const char *, const int *, const double *, const int *, double *, const int *);
+
+int BLASFUNC(stpmv) (char *, char *, char *, int *, float *, float *, int *);
+int BLASFUNC(dtpmv) (char *, char *, char *, int *, double *, double *, int *);
+int BLASFUNC(qtpmv) (char *, char *, char *, int *, double *, double *, int *);
+int BLASFUNC(ctpmv) (char *, char *, char *, int *, float *, float *, int *);
+int BLASFUNC(ztpmv) (char *, char *, char *, int *, double *, double *, int *);
+int BLASFUNC(xtpmv) (char *, char *, char *, int *, double *, double *, int *);
+
+int BLASFUNC(stbmv) (char *, char *, char *, int *, int *, float *, int *, float *, int *);
+int BLASFUNC(dtbmv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
+int BLASFUNC(qtbmv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
+int BLASFUNC(ctbmv) (char *, char *, char *, int *, int *, float *, int *, float *, int *);
+int BLASFUNC(ztbmv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
+int BLASFUNC(xtbmv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
+
+int BLASFUNC(stbsv) (char *, char *, char *, int *, int *, float *, int *, float *, int *);
+int BLASFUNC(dtbsv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
+int BLASFUNC(qtbsv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
+int BLASFUNC(ctbsv) (char *, char *, char *, int *, int *, float *, int *, float *, int *);
+int BLASFUNC(ztbsv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
+int BLASFUNC(xtbsv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
+
+int BLASFUNC(ssymv) (const char *, const int *, const float *, const float *, const int *, const float *, const int *, const float *, float *, const int *);
+int BLASFUNC(dsymv) (const char *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+int BLASFUNC(qsymv) (const char *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+
+int BLASFUNC(sspmv) (char *, int *, float *, float *,
+ float *, int *, float *, float *, int *);
+int BLASFUNC(dspmv) (char *, int *, double *, double *,
+ double *, int *, double *, double *, int *);
+int BLASFUNC(qspmv) (char *, int *, double *, double *,
+ double *, int *, double *, double *, int *);
+
+int BLASFUNC(ssyr) (const char *, const int *, const float *, const float *, const int *, float *, const int *);
+int BLASFUNC(dsyr) (const char *, const int *, const double *, const double *, const int *, double *, const int *);
+int BLASFUNC(qsyr) (const char *, const int *, const double *, const double *, const int *, double *, const int *);
+
+int BLASFUNC(ssyr2) (const char *, const int *, const float *, const float *, const int *, const float *, const int *, float *, const int *);
+int BLASFUNC(dsyr2) (const char *, const int *, const double *, const double *, const int *, const double *, const int *, double *, const int *);
+int BLASFUNC(qsyr2) (const char *, const int *, const double *, const double *, const int *, const double *, const int *, double *, const int *);
+int BLASFUNC(csyr2) (const char *, const int *, const float *, const float *, const int *, const float *, const int *, float *, const int *);
+int BLASFUNC(zsyr2) (const char *, const int *, const double *, const double *, const int *, const double *, const int *, double *, const int *);
+int BLASFUNC(xsyr2) (const char *, const int *, const double *, const double *, const int *, const double *, const int *, double *, const int *);
+
+int BLASFUNC(sspr) (char *, int *, float *, float *, int *,
+ float *);
+int BLASFUNC(dspr) (char *, int *, double *, double *, int *,
+ double *);
+int BLASFUNC(qspr) (char *, int *, double *, double *, int *,
+ double *);
+
+int BLASFUNC(sspr2) (char *, int *, float *,
+ float *, int *, float *, int *, float *);
+int BLASFUNC(dspr2) (char *, int *, double *,
+ double *, int *, double *, int *, double *);
+int BLASFUNC(qspr2) (char *, int *, double *,
+ double *, int *, double *, int *, double *);
+int BLASFUNC(cspr2) (char *, int *, float *,
+ float *, int *, float *, int *, float *);
+int BLASFUNC(zspr2) (char *, int *, double *,
+ double *, int *, double *, int *, double *);
+int BLASFUNC(xspr2) (char *, int *, double *,
+ double *, int *, double *, int *, double *);
+
+int BLASFUNC(cher) (char *, int *, float *, float *, int *,
+ float *, int *);
+int BLASFUNC(zher) (char *, int *, double *, double *, int *,
+ double *, int *);
+int BLASFUNC(xher) (char *, int *, double *, double *, int *,
+ double *, int *);
+
+int BLASFUNC(chpr) (char *, int *, float *, float *, int *, float *);
+int BLASFUNC(zhpr) (char *, int *, double *, double *, int *, double *);
+int BLASFUNC(xhpr) (char *, int *, double *, double *, int *, double *);
+
+int BLASFUNC(cher2) (char *, int *, float *,
+ float *, int *, float *, int *, float *, int *);
+int BLASFUNC(zher2) (char *, int *, double *,
+ double *, int *, double *, int *, double *, int *);
+int BLASFUNC(xher2) (char *, int *, double *,
+ double *, int *, double *, int *, double *, int *);
+
+int BLASFUNC(chpr2) (char *, int *, float *,
+ float *, int *, float *, int *, float *);
+int BLASFUNC(zhpr2) (char *, int *, double *,
+ double *, int *, double *, int *, double *);
+int BLASFUNC(xhpr2) (char *, int *, double *,
+ double *, int *, double *, int *, double *);
+
+int BLASFUNC(chemv) (const char *, const int *, const float *, const float *, const int *, const float *, const int *, const float *, float *, const int *);
+int BLASFUNC(zhemv) (const char *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+int BLASFUNC(xhemv) (const char *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+
+int BLASFUNC(chpmv) (char *, int *, float *, float *,
+ float *, int *, float *, float *, int *);
+int BLASFUNC(zhpmv) (char *, int *, double *, double *,
+ double *, int *, double *, double *, int *);
+int BLASFUNC(xhpmv) (char *, int *, double *, double *,
+ double *, int *, double *, double *, int *);
+
+int BLASFUNC(snorm)(char *, int *, int *, float *, int *);
+int BLASFUNC(dnorm)(char *, int *, int *, double *, int *);
+int BLASFUNC(cnorm)(char *, int *, int *, float *, int *);
+int BLASFUNC(znorm)(char *, int *, int *, double *, int *);
+
+int BLASFUNC(sgbmv)(char *, int *, int *, int *, int *, float *, float *, int *,
+ float *, int *, float *, float *, int *);
+int BLASFUNC(dgbmv)(char *, int *, int *, int *, int *, double *, double *, int *,
+ double *, int *, double *, double *, int *);
+int BLASFUNC(qgbmv)(char *, int *, int *, int *, int *, double *, double *, int *,
+ double *, int *, double *, double *, int *);
+int BLASFUNC(cgbmv)(char *, int *, int *, int *, int *, float *, float *, int *,
+ float *, int *, float *, float *, int *);
+int BLASFUNC(zgbmv)(char *, int *, int *, int *, int *, double *, double *, int *,
+ double *, int *, double *, double *, int *);
+int BLASFUNC(xgbmv)(char *, int *, int *, int *, int *, double *, double *, int *,
+ double *, int *, double *, double *, int *);
+
+int BLASFUNC(ssbmv)(char *, int *, int *, float *, float *, int *,
+ float *, int *, float *, float *, int *);
+int BLASFUNC(dsbmv)(char *, int *, int *, double *, double *, int *,
+ double *, int *, double *, double *, int *);
+int BLASFUNC(qsbmv)(char *, int *, int *, double *, double *, int *,
+ double *, int *, double *, double *, int *);
+int BLASFUNC(csbmv)(char *, int *, int *, float *, float *, int *,
+ float *, int *, float *, float *, int *);
+int BLASFUNC(zsbmv)(char *, int *, int *, double *, double *, int *,
+ double *, int *, double *, double *, int *);
+int BLASFUNC(xsbmv)(char *, int *, int *, double *, double *, int *,
+ double *, int *, double *, double *, int *);
+
+int BLASFUNC(chbmv)(char *, int *, int *, float *, float *, int *,
+ float *, int *, float *, float *, int *);
+int BLASFUNC(zhbmv)(char *, int *, int *, double *, double *, int *,
+ double *, int *, double *, double *, int *);
+int BLASFUNC(xhbmv)(char *, int *, int *, double *, double *, int *,
+ double *, int *, double *, double *, int *);
+
+/* Level 3 routines */
+
+int BLASFUNC(sgemm)(const char *, const char *, const int *, const int *, const int *, const float *, const float *, const int *, const float *, const int *, const float *, float *, const int *);
+int BLASFUNC(dgemm)(const char *, const char *, const int *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+int BLASFUNC(qgemm)(const char *, const char *, const int *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+int BLASFUNC(cgemm)(const char *, const char *, const int *, const int *, const int *, const float *, const float *, const int *, const float *, const int *, const float *, float *, const int *);
+int BLASFUNC(zgemm)(const char *, const char *, const int *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+int BLASFUNC(xgemm)(const char *, const char *, const int *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+
+int BLASFUNC(cgemm3m)(char *, char *, int *, int *, int *, float *,
+ float *, int *, float *, int *, float *, float *, int *);
+int BLASFUNC(zgemm3m)(char *, char *, int *, int *, int *, double *,
+ double *, int *, double *, int *, double *, double *, int *);
+int BLASFUNC(xgemm3m)(char *, char *, int *, int *, int *, double *,
+ double *, int *, double *, int *, double *, double *, int *);
+
+int BLASFUNC(sge2mm)(char *, char *, char *, int *, int *,
+ float *, float *, int *, float *, int *,
+ float *, float *, int *);
+int BLASFUNC(dge2mm)(char *, char *, char *, int *, int *,
+ double *, double *, int *, double *, int *,
+ double *, double *, int *);
+int BLASFUNC(cge2mm)(char *, char *, char *, int *, int *,
+ float *, float *, int *, float *, int *,
+ float *, float *, int *);
+int BLASFUNC(zge2mm)(char *, char *, char *, int *, int *,
+ double *, double *, int *, double *, int *,
+ double *, double *, int *);
+
+int BLASFUNC(strsm)(const char *, const char *, const char *, const char *, const int *, const int *, const float *, const float *, const int *, float *, const int *);
+int BLASFUNC(dtrsm)(const char *, const char *, const char *, const char *, const int *, const int *, const double *, const double *, const int *, double *, const int *);
+int BLASFUNC(qtrsm)(const char *, const char *, const char *, const char *, const int *, const int *, const double *, const double *, const int *, double *, const int *);
+int BLASFUNC(ctrsm)(const char *, const char *, const char *, const char *, const int *, const int *, const float *, const float *, const int *, float *, const int *);
+int BLASFUNC(ztrsm)(const char *, const char *, const char *, const char *, const int *, const int *, const double *, const double *, const int *, double *, const int *);
+int BLASFUNC(xtrsm)(const char *, const char *, const char *, const char *, const int *, const int *, const double *, const double *, const int *, double *, const int *);
+
+int BLASFUNC(strmm)(const char *, const char *, const char *, const char *, const int *, const int *, const float *, const float *, const int *, float *, const int *);
+int BLASFUNC(dtrmm)(const char *, const char *, const char *, const char *, const int *, const int *, const double *, const double *, const int *, double *, const int *);
+int BLASFUNC(qtrmm)(const char *, const char *, const char *, const char *, const int *, const int *, const double *, const double *, const int *, double *, const int *);
+int BLASFUNC(ctrmm)(const char *, const char *, const char *, const char *, const int *, const int *, const float *, const float *, const int *, float *, const int *);
+int BLASFUNC(ztrmm)(const char *, const char *, const char *, const char *, const int *, const int *, const double *, const double *, const int *, double *, const int *);
+int BLASFUNC(xtrmm)(const char *, const char *, const char *, const char *, const int *, const int *, const double *, const double *, const int *, double *, const int *);
+
+int BLASFUNC(ssymm)(const char *, const char *, const int *, const int *, const float *, const float *, const int *, const float *, const int *, const float *, float *, const int *);
+int BLASFUNC(dsymm)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+int BLASFUNC(qsymm)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+int BLASFUNC(csymm)(const char *, const char *, const int *, const int *, const float *, const float *, const int *, const float *, const int *, const float *, float *, const int *);
+int BLASFUNC(zsymm)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+int BLASFUNC(xsymm)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+
+int BLASFUNC(csymm3m)(char *, char *, int *, int *, float *, float *, int *, float *, int *, float *, float *, int *);
+int BLASFUNC(zsymm3m)(char *, char *, int *, int *, double *, double *, int *, double *, int *, double *, double *, int *);
+int BLASFUNC(xsymm3m)(char *, char *, int *, int *, double *, double *, int *, double *, int *, double *, double *, int *);
+
+int BLASFUNC(ssyrk)(const char *, const char *, const int *, const int *, const float *, const float *, const int *, const float *, float *, const int *);
+int BLASFUNC(dsyrk)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, double *, const int *);
+int BLASFUNC(qsyrk)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, double *, const int *);
+int BLASFUNC(csyrk)(const char *, const char *, const int *, const int *, const float *, const float *, const int *, const float *, float *, const int *);
+int BLASFUNC(zsyrk)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, double *, const int *);
+int BLASFUNC(xsyrk)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, double *, const int *);
+
+int BLASFUNC(ssyr2k)(const char *, const char *, const int *, const int *, const float *, const float *, const int *, const float *, const int *, const float *, float *, const int *);
+int BLASFUNC(dsyr2k)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double*, const int *, const double *, double *, const int *);
+int BLASFUNC(qsyr2k)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double*, const int *, const double *, double *, const int *);
+int BLASFUNC(csyr2k)(const char *, const char *, const int *, const int *, const float *, const float *, const int *, const float *, const int *, const float *, float *, const int *);
+int BLASFUNC(zsyr2k)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double*, const int *, const double *, double *, const int *);
+int BLASFUNC(xsyr2k)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double*, const int *, const double *, double *, const int *);
+
+int BLASFUNC(chemm)(const char *, const char *, const int *, const int *, const float *, const float *, const int *, const float *, const int *, const float *, float *, const int *);
+int BLASFUNC(zhemm)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+int BLASFUNC(xhemm)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+
+int BLASFUNC(chemm3m)(char *, char *, int *, int *, float *, float *, int *,
+ float *, int *, float *, float *, int *);
+int BLASFUNC(zhemm3m)(char *, char *, int *, int *, double *, double *, int *,
+ double *, int *, double *, double *, int *);
+int BLASFUNC(xhemm3m)(char *, char *, int *, int *, double *, double *, int *,
+ double *, int *, double *, double *, int *);
+
+int BLASFUNC(cherk)(const char *, const char *, const int *, const int *, const float *, const float *, const int *, const float *, float *, const int *);
+int BLASFUNC(zherk)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, double *, const int *);
+int BLASFUNC(xherk)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, double *, const int *);
+
+int BLASFUNC(cher2k)(const char *, const char *, const int *, const int *, const float *, const float *, const int *, const float *, const int *, const float *, float *, const int *);
+int BLASFUNC(zher2k)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+int BLASFUNC(xher2k)(const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+int BLASFUNC(cher2m)(const char *, const char *, const char *, const int *, const int *, const float *, const float *, const int *, const float *, const int *, const float *, float *, const int *);
+int BLASFUNC(zher2m)(const char *, const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double*, const int *, const double *, double *, const int *);
+int BLASFUNC(xher2m)(const char *, const char *, const char *, const int *, const int *, const double *, const double *, const int *, const double*, const int *, const double *, double *, const int *);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/misc/lapack.h b/runtimes/nn/depend/external/eigen/Eigen/src/misc/lapack.h
new file mode 100644
index 000000000..249f3575c
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/misc/lapack.h
@@ -0,0 +1,152 @@
+#ifndef LAPACK_H
+#define LAPACK_H
+
+#include "blas.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+int BLASFUNC(csymv) (const char *, const int *, const float *, const float *, const int *, const float *, const int *, const float *, float *, const int *);
+int BLASFUNC(zsymv) (const char *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+int BLASFUNC(xsymv) (const char *, const int *, const double *, const double *, const int *, const double *, const int *, const double *, double *, const int *);
+
+
+int BLASFUNC(cspmv) (char *, int *, float *, float *,
+ float *, int *, float *, float *, int *);
+int BLASFUNC(zspmv) (char *, int *, double *, double *,
+ double *, int *, double *, double *, int *);
+int BLASFUNC(xspmv) (char *, int *, double *, double *,
+ double *, int *, double *, double *, int *);
+
+int BLASFUNC(csyr) (char *, int *, float *, float *, int *,
+ float *, int *);
+int BLASFUNC(zsyr) (char *, int *, double *, double *, int *,
+ double *, int *);
+int BLASFUNC(xsyr) (char *, int *, double *, double *, int *,
+ double *, int *);
+
+int BLASFUNC(cspr) (char *, int *, float *, float *, int *,
+ float *);
+int BLASFUNC(zspr) (char *, int *, double *, double *, int *,
+ double *);
+int BLASFUNC(xspr) (char *, int *, double *, double *, int *,
+ double *);
+
+int BLASFUNC(sgemt)(char *, int *, int *, float *, float *, int *,
+ float *, int *);
+int BLASFUNC(dgemt)(char *, int *, int *, double *, double *, int *,
+ double *, int *);
+int BLASFUNC(cgemt)(char *, int *, int *, float *, float *, int *,
+ float *, int *);
+int BLASFUNC(zgemt)(char *, int *, int *, double *, double *, int *,
+ double *, int *);
+
+int BLASFUNC(sgema)(char *, char *, int *, int *, float *,
+ float *, int *, float *, float *, int *, float *, int *);
+int BLASFUNC(dgema)(char *, char *, int *, int *, double *,
+ double *, int *, double*, double *, int *, double*, int *);
+int BLASFUNC(cgema)(char *, char *, int *, int *, float *,
+ float *, int *, float *, float *, int *, float *, int *);
+int BLASFUNC(zgema)(char *, char *, int *, int *, double *,
+ double *, int *, double*, double *, int *, double*, int *);
+
+int BLASFUNC(sgems)(char *, char *, int *, int *, float *,
+ float *, int *, float *, float *, int *, float *, int *);
+int BLASFUNC(dgems)(char *, char *, int *, int *, double *,
+ double *, int *, double*, double *, int *, double*, int *);
+int BLASFUNC(cgems)(char *, char *, int *, int *, float *,
+ float *, int *, float *, float *, int *, float *, int *);
+int BLASFUNC(zgems)(char *, char *, int *, int *, double *,
+ double *, int *, double*, double *, int *, double*, int *);
+
+int BLASFUNC(sgetf2)(int *, int *, float *, int *, int *, int *);
+int BLASFUNC(dgetf2)(int *, int *, double *, int *, int *, int *);
+int BLASFUNC(qgetf2)(int *, int *, double *, int *, int *, int *);
+int BLASFUNC(cgetf2)(int *, int *, float *, int *, int *, int *);
+int BLASFUNC(zgetf2)(int *, int *, double *, int *, int *, int *);
+int BLASFUNC(xgetf2)(int *, int *, double *, int *, int *, int *);
+
+int BLASFUNC(sgetrf)(int *, int *, float *, int *, int *, int *);
+int BLASFUNC(dgetrf)(int *, int *, double *, int *, int *, int *);
+int BLASFUNC(qgetrf)(int *, int *, double *, int *, int *, int *);
+int BLASFUNC(cgetrf)(int *, int *, float *, int *, int *, int *);
+int BLASFUNC(zgetrf)(int *, int *, double *, int *, int *, int *);
+int BLASFUNC(xgetrf)(int *, int *, double *, int *, int *, int *);
+
+int BLASFUNC(slaswp)(int *, float *, int *, int *, int *, int *, int *);
+int BLASFUNC(dlaswp)(int *, double *, int *, int *, int *, int *, int *);
+int BLASFUNC(qlaswp)(int *, double *, int *, int *, int *, int *, int *);
+int BLASFUNC(claswp)(int *, float *, int *, int *, int *, int *, int *);
+int BLASFUNC(zlaswp)(int *, double *, int *, int *, int *, int *, int *);
+int BLASFUNC(xlaswp)(int *, double *, int *, int *, int *, int *, int *);
+
+int BLASFUNC(sgetrs)(char *, int *, int *, float *, int *, int *, float *, int *, int *);
+int BLASFUNC(dgetrs)(char *, int *, int *, double *, int *, int *, double *, int *, int *);
+int BLASFUNC(qgetrs)(char *, int *, int *, double *, int *, int *, double *, int *, int *);
+int BLASFUNC(cgetrs)(char *, int *, int *, float *, int *, int *, float *, int *, int *);
+int BLASFUNC(zgetrs)(char *, int *, int *, double *, int *, int *, double *, int *, int *);
+int BLASFUNC(xgetrs)(char *, int *, int *, double *, int *, int *, double *, int *, int *);
+
+int BLASFUNC(sgesv)(int *, int *, float *, int *, int *, float *, int *, int *);
+int BLASFUNC(dgesv)(int *, int *, double *, int *, int *, double*, int *, int *);
+int BLASFUNC(qgesv)(int *, int *, double *, int *, int *, double*, int *, int *);
+int BLASFUNC(cgesv)(int *, int *, float *, int *, int *, float *, int *, int *);
+int BLASFUNC(zgesv)(int *, int *, double *, int *, int *, double*, int *, int *);
+int BLASFUNC(xgesv)(int *, int *, double *, int *, int *, double*, int *, int *);
+
+int BLASFUNC(spotf2)(char *, int *, float *, int *, int *);
+int BLASFUNC(dpotf2)(char *, int *, double *, int *, int *);
+int BLASFUNC(qpotf2)(char *, int *, double *, int *, int *);
+int BLASFUNC(cpotf2)(char *, int *, float *, int *, int *);
+int BLASFUNC(zpotf2)(char *, int *, double *, int *, int *);
+int BLASFUNC(xpotf2)(char *, int *, double *, int *, int *);
+
+int BLASFUNC(spotrf)(char *, int *, float *, int *, int *);
+int BLASFUNC(dpotrf)(char *, int *, double *, int *, int *);
+int BLASFUNC(qpotrf)(char *, int *, double *, int *, int *);
+int BLASFUNC(cpotrf)(char *, int *, float *, int *, int *);
+int BLASFUNC(zpotrf)(char *, int *, double *, int *, int *);
+int BLASFUNC(xpotrf)(char *, int *, double *, int *, int *);
+
+int BLASFUNC(slauu2)(char *, int *, float *, int *, int *);
+int BLASFUNC(dlauu2)(char *, int *, double *, int *, int *);
+int BLASFUNC(qlauu2)(char *, int *, double *, int *, int *);
+int BLASFUNC(clauu2)(char *, int *, float *, int *, int *);
+int BLASFUNC(zlauu2)(char *, int *, double *, int *, int *);
+int BLASFUNC(xlauu2)(char *, int *, double *, int *, int *);
+
+int BLASFUNC(slauum)(char *, int *, float *, int *, int *);
+int BLASFUNC(dlauum)(char *, int *, double *, int *, int *);
+int BLASFUNC(qlauum)(char *, int *, double *, int *, int *);
+int BLASFUNC(clauum)(char *, int *, float *, int *, int *);
+int BLASFUNC(zlauum)(char *, int *, double *, int *, int *);
+int BLASFUNC(xlauum)(char *, int *, double *, int *, int *);
+
+int BLASFUNC(strti2)(char *, char *, int *, float *, int *, int *);
+int BLASFUNC(dtrti2)(char *, char *, int *, double *, int *, int *);
+int BLASFUNC(qtrti2)(char *, char *, int *, double *, int *, int *);
+int BLASFUNC(ctrti2)(char *, char *, int *, float *, int *, int *);
+int BLASFUNC(ztrti2)(char *, char *, int *, double *, int *, int *);
+int BLASFUNC(xtrti2)(char *, char *, int *, double *, int *, int *);
+
+int BLASFUNC(strtri)(char *, char *, int *, float *, int *, int *);
+int BLASFUNC(dtrtri)(char *, char *, int *, double *, int *, int *);
+int BLASFUNC(qtrtri)(char *, char *, int *, double *, int *, int *);
+int BLASFUNC(ctrtri)(char *, char *, int *, float *, int *, int *);
+int BLASFUNC(ztrtri)(char *, char *, int *, double *, int *, int *);
+int BLASFUNC(xtrtri)(char *, char *, int *, double *, int *, int *);
+
+int BLASFUNC(spotri)(char *, int *, float *, int *, int *);
+int BLASFUNC(dpotri)(char *, int *, double *, int *, int *);
+int BLASFUNC(qpotri)(char *, int *, double *, int *, int *);
+int BLASFUNC(cpotri)(char *, int *, float *, int *, int *);
+int BLASFUNC(zpotri)(char *, int *, double *, int *, int *);
+int BLASFUNC(xpotri)(char *, int *, double *, int *, int *);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/misc/lapacke.h b/runtimes/nn/depend/external/eigen/Eigen/src/misc/lapacke.h
new file mode 100755
index 000000000..8c7e79b03
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/misc/lapacke.h
@@ -0,0 +1,16291 @@
+/*****************************************************************************
+ Copyright (c) 2010, Intel Corp.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ THE POSSIBILITY OF SUCH DAMAGE.
+******************************************************************************
+* Contents: Native C interface to LAPACK
+* Author: Intel Corporation
+* Generated November, 2011
+*****************************************************************************/
+
+#ifndef _MKL_LAPACKE_H_
+
+#ifndef _LAPACKE_H_
+#define _LAPACKE_H_
+
+/*
+* Turn on HAVE_LAPACK_CONFIG_H to redefine C-LAPACK datatypes
+*/
+#ifdef HAVE_LAPACK_CONFIG_H
+#include "lapacke_config.h"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <stdlib.h>
+
+#ifndef lapack_int
+#define lapack_int int
+#endif
+
+#ifndef lapack_logical
+#define lapack_logical lapack_int
+#endif
+
+/* Complex types are structures equivalent to the
+* Fortran complex types COMPLEX(4) and COMPLEX(8).
+*
+* One can also redefine the types with his own types
+* for example by including in the code definitions like
+*
+* #define lapack_complex_float std::complex<float>
+* #define lapack_complex_double std::complex<double>
+*
+* or define these types in the command line:
+*
+* -Dlapack_complex_float="std::complex<float>"
+* -Dlapack_complex_double="std::complex<double>"
+*/
+
+#ifndef LAPACK_COMPLEX_CUSTOM
+
+/* Complex type (single precision) */
+#ifndef lapack_complex_float
+#include <complex.h>
+#define lapack_complex_float float _Complex
+#endif
+
+#ifndef lapack_complex_float_real
+#define lapack_complex_float_real(z) (creal(z))
+#endif
+
+#ifndef lapack_complex_float_imag
+#define lapack_complex_float_imag(z) (cimag(z))
+#endif
+
+lapack_complex_float lapack_make_complex_float( float re, float im );
+
+/* Complex type (double precision) */
+#ifndef lapack_complex_double
+#include <complex.h>
+#define lapack_complex_double double _Complex
+#endif
+
+#ifndef lapack_complex_double_real
+#define lapack_complex_double_real(z) (creal(z))
+#endif
+
+#ifndef lapack_complex_double_imag
+#define lapack_complex_double_imag(z) (cimag(z))
+#endif
+
+lapack_complex_double lapack_make_complex_double( double re, double im );
+
+#endif
+
+#ifndef LAPACKE_malloc
+#define LAPACKE_malloc( size ) malloc( size )
+#endif
+#ifndef LAPACKE_free
+#define LAPACKE_free( p ) free( p )
+#endif
+
+#define LAPACK_C2INT( x ) (lapack_int)(*((float*)&x ))
+#define LAPACK_Z2INT( x ) (lapack_int)(*((double*)&x ))
+
+#define LAPACK_ROW_MAJOR 101
+#define LAPACK_COL_MAJOR 102
+
+#define LAPACK_WORK_MEMORY_ERROR -1010
+#define LAPACK_TRANSPOSE_MEMORY_ERROR -1011
+
+/* Callback logical functions of one, two, or three arguments are used
+* to select eigenvalues to sort to the top left of the Schur form.
+* The value is selected if function returns TRUE (non-zero). */
+
+typedef lapack_logical (*LAPACK_S_SELECT2) ( const float*, const float* );
+typedef lapack_logical (*LAPACK_S_SELECT3)
+ ( const float*, const float*, const float* );
+typedef lapack_logical (*LAPACK_D_SELECT2) ( const double*, const double* );
+typedef lapack_logical (*LAPACK_D_SELECT3)
+ ( const double*, const double*, const double* );
+
+typedef lapack_logical (*LAPACK_C_SELECT1) ( const lapack_complex_float* );
+typedef lapack_logical (*LAPACK_C_SELECT2)
+ ( const lapack_complex_float*, const lapack_complex_float* );
+typedef lapack_logical (*LAPACK_Z_SELECT1) ( const lapack_complex_double* );
+typedef lapack_logical (*LAPACK_Z_SELECT2)
+ ( const lapack_complex_double*, const lapack_complex_double* );
+
+#include "lapacke_mangling.h"
+
+#define LAPACK_lsame LAPACK_GLOBAL(lsame,LSAME)
+lapack_logical LAPACK_lsame( char* ca, char* cb,
+ lapack_int lca, lapack_int lcb );
+
+/* C-LAPACK function prototypes */
+
+lapack_int LAPACKE_sbdsdc( int matrix_order, char uplo, char compq,
+ lapack_int n, float* d, float* e, float* u,
+ lapack_int ldu, float* vt, lapack_int ldvt, float* q,
+ lapack_int* iq );
+lapack_int LAPACKE_dbdsdc( int matrix_order, char uplo, char compq,
+ lapack_int n, double* d, double* e, double* u,
+ lapack_int ldu, double* vt, lapack_int ldvt,
+ double* q, lapack_int* iq );
+
+lapack_int LAPACKE_sbdsqr( int matrix_order, char uplo, lapack_int n,
+ lapack_int ncvt, lapack_int nru, lapack_int ncc,
+ float* d, float* e, float* vt, lapack_int ldvt,
+ float* u, lapack_int ldu, float* c, lapack_int ldc );
+lapack_int LAPACKE_dbdsqr( int matrix_order, char uplo, lapack_int n,
+ lapack_int ncvt, lapack_int nru, lapack_int ncc,
+ double* d, double* e, double* vt, lapack_int ldvt,
+ double* u, lapack_int ldu, double* c,
+ lapack_int ldc );
+lapack_int LAPACKE_cbdsqr( int matrix_order, char uplo, lapack_int n,
+ lapack_int ncvt, lapack_int nru, lapack_int ncc,
+ float* d, float* e, lapack_complex_float* vt,
+ lapack_int ldvt, lapack_complex_float* u,
+ lapack_int ldu, lapack_complex_float* c,
+ lapack_int ldc );
+lapack_int LAPACKE_zbdsqr( int matrix_order, char uplo, lapack_int n,
+ lapack_int ncvt, lapack_int nru, lapack_int ncc,
+ double* d, double* e, lapack_complex_double* vt,
+ lapack_int ldvt, lapack_complex_double* u,
+ lapack_int ldu, lapack_complex_double* c,
+ lapack_int ldc );
+
+lapack_int LAPACKE_sdisna( char job, lapack_int m, lapack_int n, const float* d,
+ float* sep );
+lapack_int LAPACKE_ddisna( char job, lapack_int m, lapack_int n,
+ const double* d, double* sep );
+
+lapack_int LAPACKE_sgbbrd( int matrix_order, char vect, lapack_int m,
+ lapack_int n, lapack_int ncc, lapack_int kl,
+ lapack_int ku, float* ab, lapack_int ldab, float* d,
+ float* e, float* q, lapack_int ldq, float* pt,
+ lapack_int ldpt, float* c, lapack_int ldc );
+lapack_int LAPACKE_dgbbrd( int matrix_order, char vect, lapack_int m,
+ lapack_int n, lapack_int ncc, lapack_int kl,
+ lapack_int ku, double* ab, lapack_int ldab,
+ double* d, double* e, double* q, lapack_int ldq,
+ double* pt, lapack_int ldpt, double* c,
+ lapack_int ldc );
+lapack_int LAPACKE_cgbbrd( int matrix_order, char vect, lapack_int m,
+ lapack_int n, lapack_int ncc, lapack_int kl,
+ lapack_int ku, lapack_complex_float* ab,
+ lapack_int ldab, float* d, float* e,
+ lapack_complex_float* q, lapack_int ldq,
+ lapack_complex_float* pt, lapack_int ldpt,
+ lapack_complex_float* c, lapack_int ldc );
+lapack_int LAPACKE_zgbbrd( int matrix_order, char vect, lapack_int m,
+ lapack_int n, lapack_int ncc, lapack_int kl,
+ lapack_int ku, lapack_complex_double* ab,
+ lapack_int ldab, double* d, double* e,
+ lapack_complex_double* q, lapack_int ldq,
+ lapack_complex_double* pt, lapack_int ldpt,
+ lapack_complex_double* c, lapack_int ldc );
+
+lapack_int LAPACKE_sgbcon( int matrix_order, char norm, lapack_int n,
+ lapack_int kl, lapack_int ku, const float* ab,
+ lapack_int ldab, const lapack_int* ipiv, float anorm,
+ float* rcond );
+lapack_int LAPACKE_dgbcon( int matrix_order, char norm, lapack_int n,
+ lapack_int kl, lapack_int ku, const double* ab,
+ lapack_int ldab, const lapack_int* ipiv,
+ double anorm, double* rcond );
+lapack_int LAPACKE_cgbcon( int matrix_order, char norm, lapack_int n,
+ lapack_int kl, lapack_int ku,
+ const lapack_complex_float* ab, lapack_int ldab,
+ const lapack_int* ipiv, float anorm, float* rcond );
+lapack_int LAPACKE_zgbcon( int matrix_order, char norm, lapack_int n,
+ lapack_int kl, lapack_int ku,
+ const lapack_complex_double* ab, lapack_int ldab,
+ const lapack_int* ipiv, double anorm,
+ double* rcond );
+
+lapack_int LAPACKE_sgbequ( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku, const float* ab,
+ lapack_int ldab, float* r, float* c, float* rowcnd,
+ float* colcnd, float* amax );
+lapack_int LAPACKE_dgbequ( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku, const double* ab,
+ lapack_int ldab, double* r, double* c,
+ double* rowcnd, double* colcnd, double* amax );
+lapack_int LAPACKE_cgbequ( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku,
+ const lapack_complex_float* ab, lapack_int ldab,
+ float* r, float* c, float* rowcnd, float* colcnd,
+ float* amax );
+lapack_int LAPACKE_zgbequ( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku,
+ const lapack_complex_double* ab, lapack_int ldab,
+ double* r, double* c, double* rowcnd, double* colcnd,
+ double* amax );
+
+lapack_int LAPACKE_sgbequb( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku, const float* ab,
+ lapack_int ldab, float* r, float* c, float* rowcnd,
+ float* colcnd, float* amax );
+lapack_int LAPACKE_dgbequb( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku, const double* ab,
+ lapack_int ldab, double* r, double* c,
+ double* rowcnd, double* colcnd, double* amax );
+lapack_int LAPACKE_cgbequb( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku,
+ const lapack_complex_float* ab, lapack_int ldab,
+ float* r, float* c, float* rowcnd, float* colcnd,
+ float* amax );
+lapack_int LAPACKE_zgbequb( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku,
+ const lapack_complex_double* ab, lapack_int ldab,
+ double* r, double* c, double* rowcnd,
+ double* colcnd, double* amax );
+
+lapack_int LAPACKE_sgbrfs( int matrix_order, char trans, lapack_int n,
+ lapack_int kl, lapack_int ku, lapack_int nrhs,
+ const float* ab, lapack_int ldab, const float* afb,
+ lapack_int ldafb, const lapack_int* ipiv,
+ const float* b, lapack_int ldb, float* x,
+ lapack_int ldx, float* ferr, float* berr );
+lapack_int LAPACKE_dgbrfs( int matrix_order, char trans, lapack_int n,
+ lapack_int kl, lapack_int ku, lapack_int nrhs,
+ const double* ab, lapack_int ldab, const double* afb,
+ lapack_int ldafb, const lapack_int* ipiv,
+ const double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* ferr, double* berr );
+lapack_int LAPACKE_cgbrfs( int matrix_order, char trans, lapack_int n,
+ lapack_int kl, lapack_int ku, lapack_int nrhs,
+ const lapack_complex_float* ab, lapack_int ldab,
+ const lapack_complex_float* afb, lapack_int ldafb,
+ const lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx, float* ferr,
+ float* berr );
+lapack_int LAPACKE_zgbrfs( int matrix_order, char trans, lapack_int n,
+ lapack_int kl, lapack_int ku, lapack_int nrhs,
+ const lapack_complex_double* ab, lapack_int ldab,
+ const lapack_complex_double* afb, lapack_int ldafb,
+ const lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr );
+
+lapack_int LAPACKE_sgbrfsx( int matrix_order, char trans, char equed,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, const float* ab, lapack_int ldab,
+ const float* afb, lapack_int ldafb,
+ const lapack_int* ipiv, const float* r,
+ const float* c, const float* b, lapack_int ldb,
+ float* x, lapack_int ldx, float* rcond, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params );
+lapack_int LAPACKE_dgbrfsx( int matrix_order, char trans, char equed,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, const double* ab, lapack_int ldab,
+ const double* afb, lapack_int ldafb,
+ const lapack_int* ipiv, const double* r,
+ const double* c, const double* b, lapack_int ldb,
+ double* x, lapack_int ldx, double* rcond,
+ double* berr, lapack_int n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int nparams, double* params );
+lapack_int LAPACKE_cgbrfsx( int matrix_order, char trans, char equed,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, const lapack_complex_float* ab,
+ lapack_int ldab, const lapack_complex_float* afb,
+ lapack_int ldafb, const lapack_int* ipiv,
+ const float* r, const float* c,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* berr, lapack_int n_err_bnds,
+ float* err_bnds_norm, float* err_bnds_comp,
+ lapack_int nparams, float* params );
+lapack_int LAPACKE_zgbrfsx( int matrix_order, char trans, char equed,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, const lapack_complex_double* ab,
+ lapack_int ldab, const lapack_complex_double* afb,
+ lapack_int ldafb, const lapack_int* ipiv,
+ const double* r, const double* c,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* berr, lapack_int n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int nparams, double* params );
+
+lapack_int LAPACKE_sgbsv( int matrix_order, lapack_int n, lapack_int kl,
+ lapack_int ku, lapack_int nrhs, float* ab,
+ lapack_int ldab, lapack_int* ipiv, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dgbsv( int matrix_order, lapack_int n, lapack_int kl,
+ lapack_int ku, lapack_int nrhs, double* ab,
+ lapack_int ldab, lapack_int* ipiv, double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_cgbsv( int matrix_order, lapack_int n, lapack_int kl,
+ lapack_int ku, lapack_int nrhs,
+ lapack_complex_float* ab, lapack_int ldab,
+ lapack_int* ipiv, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zgbsv( int matrix_order, lapack_int n, lapack_int kl,
+ lapack_int ku, lapack_int nrhs,
+ lapack_complex_double* ab, lapack_int ldab,
+ lapack_int* ipiv, lapack_complex_double* b,
+ lapack_int ldb );
+
+lapack_int LAPACKE_sgbsvx( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, float* ab, lapack_int ldab,
+ float* afb, lapack_int ldafb, lapack_int* ipiv,
+ char* equed, float* r, float* c, float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr,
+ float* rpivot );
+lapack_int LAPACKE_dgbsvx( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, double* ab, lapack_int ldab,
+ double* afb, lapack_int ldafb, lapack_int* ipiv,
+ char* equed, double* r, double* c, double* b,
+ lapack_int ldb, double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr,
+ double* rpivot );
+lapack_int LAPACKE_cgbsvx( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, lapack_complex_float* ab,
+ lapack_int ldab, lapack_complex_float* afb,
+ lapack_int ldafb, lapack_int* ipiv, char* equed,
+ float* r, float* c, lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* rcond, float* ferr,
+ float* berr, float* rpivot );
+lapack_int LAPACKE_zgbsvx( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, lapack_complex_double* ab,
+ lapack_int ldab, lapack_complex_double* afb,
+ lapack_int ldafb, lapack_int* ipiv, char* equed,
+ double* r, double* c, lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* x,
+ lapack_int ldx, double* rcond, double* ferr,
+ double* berr, double* rpivot );
+
+lapack_int LAPACKE_sgbsvxx( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, float* ab, lapack_int ldab,
+ float* afb, lapack_int ldafb, lapack_int* ipiv,
+ char* equed, float* r, float* c, float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* rcond, float* rpvgrw, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params );
+lapack_int LAPACKE_dgbsvxx( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, double* ab, lapack_int ldab,
+ double* afb, lapack_int ldafb, lapack_int* ipiv,
+ char* equed, double* r, double* c, double* b,
+ lapack_int ldb, double* x, lapack_int ldx,
+ double* rcond, double* rpvgrw, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params );
+lapack_int LAPACKE_cgbsvxx( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, lapack_complex_float* ab,
+ lapack_int ldab, lapack_complex_float* afb,
+ lapack_int ldafb, lapack_int* ipiv, char* equed,
+ float* r, float* c, lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* rcond, float* rpvgrw,
+ float* berr, lapack_int n_err_bnds,
+ float* err_bnds_norm, float* err_bnds_comp,
+ lapack_int nparams, float* params );
+lapack_int LAPACKE_zgbsvxx( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, lapack_complex_double* ab,
+ lapack_int ldab, lapack_complex_double* afb,
+ lapack_int ldafb, lapack_int* ipiv, char* equed,
+ double* r, double* c, lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* x,
+ lapack_int ldx, double* rcond, double* rpvgrw,
+ double* berr, lapack_int n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int nparams, double* params );
+
+lapack_int LAPACKE_sgbtrf( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku, float* ab,
+ lapack_int ldab, lapack_int* ipiv );
+lapack_int LAPACKE_dgbtrf( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku, double* ab,
+ lapack_int ldab, lapack_int* ipiv );
+lapack_int LAPACKE_cgbtrf( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku,
+ lapack_complex_float* ab, lapack_int ldab,
+ lapack_int* ipiv );
+lapack_int LAPACKE_zgbtrf( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku,
+ lapack_complex_double* ab, lapack_int ldab,
+ lapack_int* ipiv );
+
+lapack_int LAPACKE_sgbtrs( int matrix_order, char trans, lapack_int n,
+ lapack_int kl, lapack_int ku, lapack_int nrhs,
+ const float* ab, lapack_int ldab,
+ const lapack_int* ipiv, float* b, lapack_int ldb );
+lapack_int LAPACKE_dgbtrs( int matrix_order, char trans, lapack_int n,
+ lapack_int kl, lapack_int ku, lapack_int nrhs,
+ const double* ab, lapack_int ldab,
+ const lapack_int* ipiv, double* b, lapack_int ldb );
+lapack_int LAPACKE_cgbtrs( int matrix_order, char trans, lapack_int n,
+ lapack_int kl, lapack_int ku, lapack_int nrhs,
+ const lapack_complex_float* ab, lapack_int ldab,
+ const lapack_int* ipiv, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zgbtrs( int matrix_order, char trans, lapack_int n,
+ lapack_int kl, lapack_int ku, lapack_int nrhs,
+ const lapack_complex_double* ab, lapack_int ldab,
+ const lapack_int* ipiv, lapack_complex_double* b,
+ lapack_int ldb );
+
+lapack_int LAPACKE_sgebak( int matrix_order, char job, char side, lapack_int n,
+ lapack_int ilo, lapack_int ihi, const float* scale,
+ lapack_int m, float* v, lapack_int ldv );
+lapack_int LAPACKE_dgebak( int matrix_order, char job, char side, lapack_int n,
+ lapack_int ilo, lapack_int ihi, const double* scale,
+ lapack_int m, double* v, lapack_int ldv );
+lapack_int LAPACKE_cgebak( int matrix_order, char job, char side, lapack_int n,
+ lapack_int ilo, lapack_int ihi, const float* scale,
+ lapack_int m, lapack_complex_float* v,
+ lapack_int ldv );
+lapack_int LAPACKE_zgebak( int matrix_order, char job, char side, lapack_int n,
+ lapack_int ilo, lapack_int ihi, const double* scale,
+ lapack_int m, lapack_complex_double* v,
+ lapack_int ldv );
+
+lapack_int LAPACKE_sgebal( int matrix_order, char job, lapack_int n, float* a,
+ lapack_int lda, lapack_int* ilo, lapack_int* ihi,
+ float* scale );
+lapack_int LAPACKE_dgebal( int matrix_order, char job, lapack_int n, double* a,
+ lapack_int lda, lapack_int* ilo, lapack_int* ihi,
+ double* scale );
+lapack_int LAPACKE_cgebal( int matrix_order, char job, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* ilo, lapack_int* ihi, float* scale );
+lapack_int LAPACKE_zgebal( int matrix_order, char job, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* ilo, lapack_int* ihi, double* scale );
+
+lapack_int LAPACKE_sgebrd( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* d, float* e,
+ float* tauq, float* taup );
+lapack_int LAPACKE_dgebrd( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* d, double* e,
+ double* tauq, double* taup );
+lapack_int LAPACKE_cgebrd( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda, float* d,
+ float* e, lapack_complex_float* tauq,
+ lapack_complex_float* taup );
+lapack_int LAPACKE_zgebrd( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda, double* d,
+ double* e, lapack_complex_double* tauq,
+ lapack_complex_double* taup );
+
+lapack_int LAPACKE_sgecon( int matrix_order, char norm, lapack_int n,
+ const float* a, lapack_int lda, float anorm,
+ float* rcond );
+lapack_int LAPACKE_dgecon( int matrix_order, char norm, lapack_int n,
+ const double* a, lapack_int lda, double anorm,
+ double* rcond );
+lapack_int LAPACKE_cgecon( int matrix_order, char norm, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ float anorm, float* rcond );
+lapack_int LAPACKE_zgecon( int matrix_order, char norm, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ double anorm, double* rcond );
+
+lapack_int LAPACKE_sgeequ( int matrix_order, lapack_int m, lapack_int n,
+ const float* a, lapack_int lda, float* r, float* c,
+ float* rowcnd, float* colcnd, float* amax );
+lapack_int LAPACKE_dgeequ( int matrix_order, lapack_int m, lapack_int n,
+ const double* a, lapack_int lda, double* r,
+ double* c, double* rowcnd, double* colcnd,
+ double* amax );
+lapack_int LAPACKE_cgeequ( int matrix_order, lapack_int m, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ float* r, float* c, float* rowcnd, float* colcnd,
+ float* amax );
+lapack_int LAPACKE_zgeequ( int matrix_order, lapack_int m, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ double* r, double* c, double* rowcnd, double* colcnd,
+ double* amax );
+
+lapack_int LAPACKE_sgeequb( int matrix_order, lapack_int m, lapack_int n,
+ const float* a, lapack_int lda, float* r, float* c,
+ float* rowcnd, float* colcnd, float* amax );
+lapack_int LAPACKE_dgeequb( int matrix_order, lapack_int m, lapack_int n,
+ const double* a, lapack_int lda, double* r,
+ double* c, double* rowcnd, double* colcnd,
+ double* amax );
+lapack_int LAPACKE_cgeequb( int matrix_order, lapack_int m, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ float* r, float* c, float* rowcnd, float* colcnd,
+ float* amax );
+lapack_int LAPACKE_zgeequb( int matrix_order, lapack_int m, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ double* r, double* c, double* rowcnd,
+ double* colcnd, double* amax );
+
+lapack_int LAPACKE_sgees( int matrix_order, char jobvs, char sort,
+ LAPACK_S_SELECT2 select, lapack_int n, float* a,
+ lapack_int lda, lapack_int* sdim, float* wr,
+ float* wi, float* vs, lapack_int ldvs );
+lapack_int LAPACKE_dgees( int matrix_order, char jobvs, char sort,
+ LAPACK_D_SELECT2 select, lapack_int n, double* a,
+ lapack_int lda, lapack_int* sdim, double* wr,
+ double* wi, double* vs, lapack_int ldvs );
+lapack_int LAPACKE_cgees( int matrix_order, char jobvs, char sort,
+ LAPACK_C_SELECT1 select, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* sdim, lapack_complex_float* w,
+ lapack_complex_float* vs, lapack_int ldvs );
+lapack_int LAPACKE_zgees( int matrix_order, char jobvs, char sort,
+ LAPACK_Z_SELECT1 select, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* sdim, lapack_complex_double* w,
+ lapack_complex_double* vs, lapack_int ldvs );
+
+lapack_int LAPACKE_sgeesx( int matrix_order, char jobvs, char sort,
+ LAPACK_S_SELECT2 select, char sense, lapack_int n,
+ float* a, lapack_int lda, lapack_int* sdim,
+ float* wr, float* wi, float* vs, lapack_int ldvs,
+ float* rconde, float* rcondv );
+lapack_int LAPACKE_dgeesx( int matrix_order, char jobvs, char sort,
+ LAPACK_D_SELECT2 select, char sense, lapack_int n,
+ double* a, lapack_int lda, lapack_int* sdim,
+ double* wr, double* wi, double* vs, lapack_int ldvs,
+ double* rconde, double* rcondv );
+lapack_int LAPACKE_cgeesx( int matrix_order, char jobvs, char sort,
+ LAPACK_C_SELECT1 select, char sense, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* sdim, lapack_complex_float* w,
+ lapack_complex_float* vs, lapack_int ldvs,
+ float* rconde, float* rcondv );
+lapack_int LAPACKE_zgeesx( int matrix_order, char jobvs, char sort,
+ LAPACK_Z_SELECT1 select, char sense, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* sdim, lapack_complex_double* w,
+ lapack_complex_double* vs, lapack_int ldvs,
+ double* rconde, double* rcondv );
+
+lapack_int LAPACKE_sgeev( int matrix_order, char jobvl, char jobvr,
+ lapack_int n, float* a, lapack_int lda, float* wr,
+ float* wi, float* vl, lapack_int ldvl, float* vr,
+ lapack_int ldvr );
+lapack_int LAPACKE_dgeev( int matrix_order, char jobvl, char jobvr,
+ lapack_int n, double* a, lapack_int lda, double* wr,
+ double* wi, double* vl, lapack_int ldvl, double* vr,
+ lapack_int ldvr );
+lapack_int LAPACKE_cgeev( int matrix_order, char jobvl, char jobvr,
+ lapack_int n, lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* w, lapack_complex_float* vl,
+ lapack_int ldvl, lapack_complex_float* vr,
+ lapack_int ldvr );
+lapack_int LAPACKE_zgeev( int matrix_order, char jobvl, char jobvr,
+ lapack_int n, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* w,
+ lapack_complex_double* vl, lapack_int ldvl,
+ lapack_complex_double* vr, lapack_int ldvr );
+
+lapack_int LAPACKE_sgeevx( int matrix_order, char balanc, char jobvl,
+ char jobvr, char sense, lapack_int n, float* a,
+ lapack_int lda, float* wr, float* wi, float* vl,
+ lapack_int ldvl, float* vr, lapack_int ldvr,
+ lapack_int* ilo, lapack_int* ihi, float* scale,
+ float* abnrm, float* rconde, float* rcondv );
+lapack_int LAPACKE_dgeevx( int matrix_order, char balanc, char jobvl,
+ char jobvr, char sense, lapack_int n, double* a,
+ lapack_int lda, double* wr, double* wi, double* vl,
+ lapack_int ldvl, double* vr, lapack_int ldvr,
+ lapack_int* ilo, lapack_int* ihi, double* scale,
+ double* abnrm, double* rconde, double* rcondv );
+lapack_int LAPACKE_cgeevx( int matrix_order, char balanc, char jobvl,
+ char jobvr, char sense, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* w, lapack_complex_float* vl,
+ lapack_int ldvl, lapack_complex_float* vr,
+ lapack_int ldvr, lapack_int* ilo, lapack_int* ihi,
+ float* scale, float* abnrm, float* rconde,
+ float* rcondv );
+lapack_int LAPACKE_zgeevx( int matrix_order, char balanc, char jobvl,
+ char jobvr, char sense, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* w, lapack_complex_double* vl,
+ lapack_int ldvl, lapack_complex_double* vr,
+ lapack_int ldvr, lapack_int* ilo, lapack_int* ihi,
+ double* scale, double* abnrm, double* rconde,
+ double* rcondv );
+
+lapack_int LAPACKE_sgehrd( int matrix_order, lapack_int n, lapack_int ilo,
+ lapack_int ihi, float* a, lapack_int lda,
+ float* tau );
+lapack_int LAPACKE_dgehrd( int matrix_order, lapack_int n, lapack_int ilo,
+ lapack_int ihi, double* a, lapack_int lda,
+ double* tau );
+lapack_int LAPACKE_cgehrd( int matrix_order, lapack_int n, lapack_int ilo,
+ lapack_int ihi, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* tau );
+lapack_int LAPACKE_zgehrd( int matrix_order, lapack_int n, lapack_int ilo,
+ lapack_int ihi, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* tau );
+
+lapack_int LAPACKE_sgejsv( int matrix_order, char joba, char jobu, char jobv,
+ char jobr, char jobt, char jobp, lapack_int m,
+ lapack_int n, float* a, lapack_int lda, float* sva,
+ float* u, lapack_int ldu, float* v, lapack_int ldv,
+ float* stat, lapack_int* istat );
+lapack_int LAPACKE_dgejsv( int matrix_order, char joba, char jobu, char jobv,
+ char jobr, char jobt, char jobp, lapack_int m,
+ lapack_int n, double* a, lapack_int lda, double* sva,
+ double* u, lapack_int ldu, double* v, lapack_int ldv,
+ double* stat, lapack_int* istat );
+
+lapack_int LAPACKE_sgelq2( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* tau );
+lapack_int LAPACKE_dgelq2( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* tau );
+lapack_int LAPACKE_cgelq2( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* tau );
+lapack_int LAPACKE_zgelq2( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* tau );
+
+lapack_int LAPACKE_sgelqf( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* tau );
+lapack_int LAPACKE_dgelqf( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* tau );
+lapack_int LAPACKE_cgelqf( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* tau );
+lapack_int LAPACKE_zgelqf( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* tau );
+
+lapack_int LAPACKE_sgels( int matrix_order, char trans, lapack_int m,
+ lapack_int n, lapack_int nrhs, float* a,
+ lapack_int lda, float* b, lapack_int ldb );
+lapack_int LAPACKE_dgels( int matrix_order, char trans, lapack_int m,
+ lapack_int n, lapack_int nrhs, double* a,
+ lapack_int lda, double* b, lapack_int ldb );
+lapack_int LAPACKE_cgels( int matrix_order, char trans, lapack_int m,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zgels( int matrix_order, char trans, lapack_int m,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_sgelsd( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, float* a, lapack_int lda, float* b,
+ lapack_int ldb, float* s, float rcond,
+ lapack_int* rank );
+lapack_int LAPACKE_dgelsd( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, double* a, lapack_int lda,
+ double* b, lapack_int ldb, double* s, double rcond,
+ lapack_int* rank );
+lapack_int LAPACKE_cgelsd( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb, float* s, float rcond,
+ lapack_int* rank );
+lapack_int LAPACKE_zgelsd( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb, double* s, double rcond,
+ lapack_int* rank );
+
+lapack_int LAPACKE_sgelss( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, float* a, lapack_int lda, float* b,
+ lapack_int ldb, float* s, float rcond,
+ lapack_int* rank );
+lapack_int LAPACKE_dgelss( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, double* a, lapack_int lda,
+ double* b, lapack_int ldb, double* s, double rcond,
+ lapack_int* rank );
+lapack_int LAPACKE_cgelss( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb, float* s, float rcond,
+ lapack_int* rank );
+lapack_int LAPACKE_zgelss( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb, double* s, double rcond,
+ lapack_int* rank );
+
+lapack_int LAPACKE_sgelsy( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, float* a, lapack_int lda, float* b,
+ lapack_int ldb, lapack_int* jpvt, float rcond,
+ lapack_int* rank );
+lapack_int LAPACKE_dgelsy( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, double* a, lapack_int lda,
+ double* b, lapack_int ldb, lapack_int* jpvt,
+ double rcond, lapack_int* rank );
+lapack_int LAPACKE_cgelsy( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb, lapack_int* jpvt, float rcond,
+ lapack_int* rank );
+lapack_int LAPACKE_zgelsy( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb, lapack_int* jpvt, double rcond,
+ lapack_int* rank );
+
+lapack_int LAPACKE_sgeqlf( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* tau );
+lapack_int LAPACKE_dgeqlf( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* tau );
+lapack_int LAPACKE_cgeqlf( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* tau );
+lapack_int LAPACKE_zgeqlf( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* tau );
+
+lapack_int LAPACKE_sgeqp3( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, lapack_int* jpvt,
+ float* tau );
+lapack_int LAPACKE_dgeqp3( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, lapack_int* jpvt,
+ double* tau );
+lapack_int LAPACKE_cgeqp3( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* jpvt, lapack_complex_float* tau );
+lapack_int LAPACKE_zgeqp3( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* jpvt, lapack_complex_double* tau );
+
+lapack_int LAPACKE_sgeqpf( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, lapack_int* jpvt,
+ float* tau );
+lapack_int LAPACKE_dgeqpf( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, lapack_int* jpvt,
+ double* tau );
+lapack_int LAPACKE_cgeqpf( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* jpvt, lapack_complex_float* tau );
+lapack_int LAPACKE_zgeqpf( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* jpvt, lapack_complex_double* tau );
+
+lapack_int LAPACKE_sgeqr2( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* tau );
+lapack_int LAPACKE_dgeqr2( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* tau );
+lapack_int LAPACKE_cgeqr2( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* tau );
+lapack_int LAPACKE_zgeqr2( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* tau );
+
+lapack_int LAPACKE_sgeqrf( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* tau );
+lapack_int LAPACKE_dgeqrf( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* tau );
+lapack_int LAPACKE_cgeqrf( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* tau );
+lapack_int LAPACKE_zgeqrf( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* tau );
+
+lapack_int LAPACKE_sgeqrfp( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* tau );
+lapack_int LAPACKE_dgeqrfp( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* tau );
+lapack_int LAPACKE_cgeqrfp( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* tau );
+lapack_int LAPACKE_zgeqrfp( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* tau );
+
+lapack_int LAPACKE_sgerfs( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const float* a, lapack_int lda,
+ const float* af, lapack_int ldaf,
+ const lapack_int* ipiv, const float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* ferr, float* berr );
+lapack_int LAPACKE_dgerfs( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const double* a, lapack_int lda,
+ const double* af, lapack_int ldaf,
+ const lapack_int* ipiv, const double* b,
+ lapack_int ldb, double* x, lapack_int ldx,
+ double* ferr, double* berr );
+lapack_int LAPACKE_cgerfs( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx, float* ferr,
+ float* berr );
+lapack_int LAPACKE_zgerfs( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, const lapack_complex_double* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr );
+
+lapack_int LAPACKE_sgerfsx( int matrix_order, char trans, char equed,
+ lapack_int n, lapack_int nrhs, const float* a,
+ lapack_int lda, const float* af, lapack_int ldaf,
+ const lapack_int* ipiv, const float* r,
+ const float* c, const float* b, lapack_int ldb,
+ float* x, lapack_int ldx, float* rcond, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params );
+lapack_int LAPACKE_dgerfsx( int matrix_order, char trans, char equed,
+ lapack_int n, lapack_int nrhs, const double* a,
+ lapack_int lda, const double* af, lapack_int ldaf,
+ const lapack_int* ipiv, const double* r,
+ const double* c, const double* b, lapack_int ldb,
+ double* x, lapack_int ldx, double* rcond,
+ double* berr, lapack_int n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int nparams, double* params );
+lapack_int LAPACKE_cgerfsx( int matrix_order, char trans, char equed,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* af, lapack_int ldaf,
+ const lapack_int* ipiv, const float* r,
+ const float* c, const lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* rcond, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params );
+lapack_int LAPACKE_zgerfsx( int matrix_order, char trans, char equed,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* af, lapack_int ldaf,
+ const lapack_int* ipiv, const double* r,
+ const double* c, const lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* x,
+ lapack_int ldx, double* rcond, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params );
+
+lapack_int LAPACKE_sgerqf( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* tau );
+lapack_int LAPACKE_dgerqf( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* tau );
+lapack_int LAPACKE_cgerqf( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* tau );
+lapack_int LAPACKE_zgerqf( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* tau );
+
+lapack_int LAPACKE_sgesdd( int matrix_order, char jobz, lapack_int m,
+ lapack_int n, float* a, lapack_int lda, float* s,
+ float* u, lapack_int ldu, float* vt,
+ lapack_int ldvt );
+lapack_int LAPACKE_dgesdd( int matrix_order, char jobz, lapack_int m,
+ lapack_int n, double* a, lapack_int lda, double* s,
+ double* u, lapack_int ldu, double* vt,
+ lapack_int ldvt );
+lapack_int LAPACKE_cgesdd( int matrix_order, char jobz, lapack_int m,
+ lapack_int n, lapack_complex_float* a,
+ lapack_int lda, float* s, lapack_complex_float* u,
+ lapack_int ldu, lapack_complex_float* vt,
+ lapack_int ldvt );
+lapack_int LAPACKE_zgesdd( int matrix_order, char jobz, lapack_int m,
+ lapack_int n, lapack_complex_double* a,
+ lapack_int lda, double* s, lapack_complex_double* u,
+ lapack_int ldu, lapack_complex_double* vt,
+ lapack_int ldvt );
+
+lapack_int LAPACKE_sgesv( int matrix_order, lapack_int n, lapack_int nrhs,
+ float* a, lapack_int lda, lapack_int* ipiv, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dgesv( int matrix_order, lapack_int n, lapack_int nrhs,
+ double* a, lapack_int lda, lapack_int* ipiv,
+ double* b, lapack_int ldb );
+lapack_int LAPACKE_cgesv( int matrix_order, lapack_int n, lapack_int nrhs,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* ipiv, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zgesv( int matrix_order, lapack_int n, lapack_int nrhs,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* ipiv, lapack_complex_double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dsgesv( int matrix_order, lapack_int n, lapack_int nrhs,
+ double* a, lapack_int lda, lapack_int* ipiv,
+ double* b, lapack_int ldb, double* x, lapack_int ldx,
+ lapack_int* iter );
+lapack_int LAPACKE_zcgesv( int matrix_order, lapack_int n, lapack_int nrhs,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* ipiv, lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* x,
+ lapack_int ldx, lapack_int* iter );
+
+lapack_int LAPACKE_sgesvd( int matrix_order, char jobu, char jobvt,
+ lapack_int m, lapack_int n, float* a, lapack_int lda,
+ float* s, float* u, lapack_int ldu, float* vt,
+ lapack_int ldvt, float* superb );
+lapack_int LAPACKE_dgesvd( int matrix_order, char jobu, char jobvt,
+ lapack_int m, lapack_int n, double* a,
+ lapack_int lda, double* s, double* u, lapack_int ldu,
+ double* vt, lapack_int ldvt, double* superb );
+lapack_int LAPACKE_cgesvd( int matrix_order, char jobu, char jobvt,
+ lapack_int m, lapack_int n, lapack_complex_float* a,
+ lapack_int lda, float* s, lapack_complex_float* u,
+ lapack_int ldu, lapack_complex_float* vt,
+ lapack_int ldvt, float* superb );
+lapack_int LAPACKE_zgesvd( int matrix_order, char jobu, char jobvt,
+ lapack_int m, lapack_int n, lapack_complex_double* a,
+ lapack_int lda, double* s, lapack_complex_double* u,
+ lapack_int ldu, lapack_complex_double* vt,
+ lapack_int ldvt, double* superb );
+
+lapack_int LAPACKE_sgesvj( int matrix_order, char joba, char jobu, char jobv,
+ lapack_int m, lapack_int n, float* a, lapack_int lda,
+ float* sva, lapack_int mv, float* v, lapack_int ldv,
+ float* stat );
+lapack_int LAPACKE_dgesvj( int matrix_order, char joba, char jobu, char jobv,
+ lapack_int m, lapack_int n, double* a,
+ lapack_int lda, double* sva, lapack_int mv,
+ double* v, lapack_int ldv, double* stat );
+
+lapack_int LAPACKE_sgesvx( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs, float* a,
+ lapack_int lda, float* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, float* r, float* c,
+ float* b, lapack_int ldb, float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr,
+ float* rpivot );
+lapack_int LAPACKE_dgesvx( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs, double* a,
+ lapack_int lda, double* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, double* r, double* c,
+ double* b, lapack_int ldb, double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr,
+ double* rpivot );
+lapack_int LAPACKE_cgesvx( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, float* r, float* c,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr,
+ float* rpivot );
+lapack_int LAPACKE_zgesvx( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, double* r, double* c,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr,
+ double* rpivot );
+
+lapack_int LAPACKE_sgesvxx( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs, float* a,
+ lapack_int lda, float* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, float* r, float* c,
+ float* b, lapack_int ldb, float* x, lapack_int ldx,
+ float* rcond, float* rpvgrw, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params );
+lapack_int LAPACKE_dgesvxx( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs, double* a,
+ lapack_int lda, double* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, double* r, double* c,
+ double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* rcond, double* rpvgrw,
+ double* berr, lapack_int n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int nparams, double* params );
+lapack_int LAPACKE_cgesvxx( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, float* r, float* c,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* rpvgrw, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params );
+lapack_int LAPACKE_zgesvxx( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, double* r, double* c,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* rpvgrw, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params );
+
+lapack_int LAPACKE_sgetf2( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, lapack_int* ipiv );
+lapack_int LAPACKE_dgetf2( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, lapack_int* ipiv );
+lapack_int LAPACKE_cgetf2( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* ipiv );
+lapack_int LAPACKE_zgetf2( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* ipiv );
+
+lapack_int LAPACKE_sgetrf( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, lapack_int* ipiv );
+lapack_int LAPACKE_dgetrf( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, lapack_int* ipiv );
+lapack_int LAPACKE_cgetrf( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* ipiv );
+lapack_int LAPACKE_zgetrf( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* ipiv );
+
+lapack_int LAPACKE_sgetri( int matrix_order, lapack_int n, float* a,
+ lapack_int lda, const lapack_int* ipiv );
+lapack_int LAPACKE_dgetri( int matrix_order, lapack_int n, double* a,
+ lapack_int lda, const lapack_int* ipiv );
+lapack_int LAPACKE_cgetri( int matrix_order, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ const lapack_int* ipiv );
+lapack_int LAPACKE_zgetri( int matrix_order, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ const lapack_int* ipiv );
+
+lapack_int LAPACKE_sgetrs( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const float* a, lapack_int lda,
+ const lapack_int* ipiv, float* b, lapack_int ldb );
+lapack_int LAPACKE_dgetrs( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const double* a, lapack_int lda,
+ const lapack_int* ipiv, double* b, lapack_int ldb );
+lapack_int LAPACKE_cgetrs( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zgetrs( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_sggbak( int matrix_order, char job, char side, lapack_int n,
+ lapack_int ilo, lapack_int ihi, const float* lscale,
+ const float* rscale, lapack_int m, float* v,
+ lapack_int ldv );
+lapack_int LAPACKE_dggbak( int matrix_order, char job, char side, lapack_int n,
+ lapack_int ilo, lapack_int ihi, const double* lscale,
+ const double* rscale, lapack_int m, double* v,
+ lapack_int ldv );
+lapack_int LAPACKE_cggbak( int matrix_order, char job, char side, lapack_int n,
+ lapack_int ilo, lapack_int ihi, const float* lscale,
+ const float* rscale, lapack_int m,
+ lapack_complex_float* v, lapack_int ldv );
+lapack_int LAPACKE_zggbak( int matrix_order, char job, char side, lapack_int n,
+ lapack_int ilo, lapack_int ihi, const double* lscale,
+ const double* rscale, lapack_int m,
+ lapack_complex_double* v, lapack_int ldv );
+
+lapack_int LAPACKE_sggbal( int matrix_order, char job, lapack_int n, float* a,
+ lapack_int lda, float* b, lapack_int ldb,
+ lapack_int* ilo, lapack_int* ihi, float* lscale,
+ float* rscale );
+lapack_int LAPACKE_dggbal( int matrix_order, char job, lapack_int n, double* a,
+ lapack_int lda, double* b, lapack_int ldb,
+ lapack_int* ilo, lapack_int* ihi, double* lscale,
+ double* rscale );
+lapack_int LAPACKE_cggbal( int matrix_order, char job, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_int* ilo, lapack_int* ihi, float* lscale,
+ float* rscale );
+lapack_int LAPACKE_zggbal( int matrix_order, char job, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_int* ilo, lapack_int* ihi, double* lscale,
+ double* rscale );
+
+lapack_int LAPACKE_sgges( int matrix_order, char jobvsl, char jobvsr, char sort,
+ LAPACK_S_SELECT3 selctg, lapack_int n, float* a,
+ lapack_int lda, float* b, lapack_int ldb,
+ lapack_int* sdim, float* alphar, float* alphai,
+ float* beta, float* vsl, lapack_int ldvsl, float* vsr,
+ lapack_int ldvsr );
+lapack_int LAPACKE_dgges( int matrix_order, char jobvsl, char jobvsr, char sort,
+ LAPACK_D_SELECT3 selctg, lapack_int n, double* a,
+ lapack_int lda, double* b, lapack_int ldb,
+ lapack_int* sdim, double* alphar, double* alphai,
+ double* beta, double* vsl, lapack_int ldvsl,
+ double* vsr, lapack_int ldvsr );
+lapack_int LAPACKE_cgges( int matrix_order, char jobvsl, char jobvsr, char sort,
+ LAPACK_C_SELECT2 selctg, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_int* sdim, lapack_complex_float* alpha,
+ lapack_complex_float* beta, lapack_complex_float* vsl,
+ lapack_int ldvsl, lapack_complex_float* vsr,
+ lapack_int ldvsr );
+lapack_int LAPACKE_zgges( int matrix_order, char jobvsl, char jobvsr, char sort,
+ LAPACK_Z_SELECT2 selctg, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_int* sdim, lapack_complex_double* alpha,
+ lapack_complex_double* beta,
+ lapack_complex_double* vsl, lapack_int ldvsl,
+ lapack_complex_double* vsr, lapack_int ldvsr );
+
+lapack_int LAPACKE_sggesx( int matrix_order, char jobvsl, char jobvsr,
+ char sort, LAPACK_S_SELECT3 selctg, char sense,
+ lapack_int n, float* a, lapack_int lda, float* b,
+ lapack_int ldb, lapack_int* sdim, float* alphar,
+ float* alphai, float* beta, float* vsl,
+ lapack_int ldvsl, float* vsr, lapack_int ldvsr,
+ float* rconde, float* rcondv );
+lapack_int LAPACKE_dggesx( int matrix_order, char jobvsl, char jobvsr,
+ char sort, LAPACK_D_SELECT3 selctg, char sense,
+ lapack_int n, double* a, lapack_int lda, double* b,
+ lapack_int ldb, lapack_int* sdim, double* alphar,
+ double* alphai, double* beta, double* vsl,
+ lapack_int ldvsl, double* vsr, lapack_int ldvsr,
+ double* rconde, double* rcondv );
+lapack_int LAPACKE_cggesx( int matrix_order, char jobvsl, char jobvsr,
+ char sort, LAPACK_C_SELECT2 selctg, char sense,
+ lapack_int n, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb, lapack_int* sdim,
+ lapack_complex_float* alpha,
+ lapack_complex_float* beta,
+ lapack_complex_float* vsl, lapack_int ldvsl,
+ lapack_complex_float* vsr, lapack_int ldvsr,
+ float* rconde, float* rcondv );
+lapack_int LAPACKE_zggesx( int matrix_order, char jobvsl, char jobvsr,
+ char sort, LAPACK_Z_SELECT2 selctg, char sense,
+ lapack_int n, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb, lapack_int* sdim,
+ lapack_complex_double* alpha,
+ lapack_complex_double* beta,
+ lapack_complex_double* vsl, lapack_int ldvsl,
+ lapack_complex_double* vsr, lapack_int ldvsr,
+ double* rconde, double* rcondv );
+
+lapack_int LAPACKE_sggev( int matrix_order, char jobvl, char jobvr,
+ lapack_int n, float* a, lapack_int lda, float* b,
+ lapack_int ldb, float* alphar, float* alphai,
+ float* beta, float* vl, lapack_int ldvl, float* vr,
+ lapack_int ldvr );
+lapack_int LAPACKE_dggev( int matrix_order, char jobvl, char jobvr,
+ lapack_int n, double* a, lapack_int lda, double* b,
+ lapack_int ldb, double* alphar, double* alphai,
+ double* beta, double* vl, lapack_int ldvl, double* vr,
+ lapack_int ldvr );
+lapack_int LAPACKE_cggev( int matrix_order, char jobvl, char jobvr,
+ lapack_int n, lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* alpha,
+ lapack_complex_float* beta, lapack_complex_float* vl,
+ lapack_int ldvl, lapack_complex_float* vr,
+ lapack_int ldvr );
+lapack_int LAPACKE_zggev( int matrix_order, char jobvl, char jobvr,
+ lapack_int n, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* alpha,
+ lapack_complex_double* beta,
+ lapack_complex_double* vl, lapack_int ldvl,
+ lapack_complex_double* vr, lapack_int ldvr );
+
+lapack_int LAPACKE_sggevx( int matrix_order, char balanc, char jobvl,
+ char jobvr, char sense, lapack_int n, float* a,
+ lapack_int lda, float* b, lapack_int ldb,
+ float* alphar, float* alphai, float* beta, float* vl,
+ lapack_int ldvl, float* vr, lapack_int ldvr,
+ lapack_int* ilo, lapack_int* ihi, float* lscale,
+ float* rscale, float* abnrm, float* bbnrm,
+ float* rconde, float* rcondv );
+lapack_int LAPACKE_dggevx( int matrix_order, char balanc, char jobvl,
+ char jobvr, char sense, lapack_int n, double* a,
+ lapack_int lda, double* b, lapack_int ldb,
+ double* alphar, double* alphai, double* beta,
+ double* vl, lapack_int ldvl, double* vr,
+ lapack_int ldvr, lapack_int* ilo, lapack_int* ihi,
+ double* lscale, double* rscale, double* abnrm,
+ double* bbnrm, double* rconde, double* rcondv );
+lapack_int LAPACKE_cggevx( int matrix_order, char balanc, char jobvl,
+ char jobvr, char sense, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* alpha,
+ lapack_complex_float* beta, lapack_complex_float* vl,
+ lapack_int ldvl, lapack_complex_float* vr,
+ lapack_int ldvr, lapack_int* ilo, lapack_int* ihi,
+ float* lscale, float* rscale, float* abnrm,
+ float* bbnrm, float* rconde, float* rcondv );
+lapack_int LAPACKE_zggevx( int matrix_order, char balanc, char jobvl,
+ char jobvr, char sense, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* alpha,
+ lapack_complex_double* beta,
+ lapack_complex_double* vl, lapack_int ldvl,
+ lapack_complex_double* vr, lapack_int ldvr,
+ lapack_int* ilo, lapack_int* ihi, double* lscale,
+ double* rscale, double* abnrm, double* bbnrm,
+ double* rconde, double* rcondv );
+
+lapack_int LAPACKE_sggglm( int matrix_order, lapack_int n, lapack_int m,
+ lapack_int p, float* a, lapack_int lda, float* b,
+ lapack_int ldb, float* d, float* x, float* y );
+lapack_int LAPACKE_dggglm( int matrix_order, lapack_int n, lapack_int m,
+ lapack_int p, double* a, lapack_int lda, double* b,
+ lapack_int ldb, double* d, double* x, double* y );
+lapack_int LAPACKE_cggglm( int matrix_order, lapack_int n, lapack_int m,
+ lapack_int p, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* d,
+ lapack_complex_float* x, lapack_complex_float* y );
+lapack_int LAPACKE_zggglm( int matrix_order, lapack_int n, lapack_int m,
+ lapack_int p, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* d,
+ lapack_complex_double* x, lapack_complex_double* y );
+
+lapack_int LAPACKE_sgghrd( int matrix_order, char compq, char compz,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ float* a, lapack_int lda, float* b, lapack_int ldb,
+ float* q, lapack_int ldq, float* z, lapack_int ldz );
+lapack_int LAPACKE_dgghrd( int matrix_order, char compq, char compz,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ double* a, lapack_int lda, double* b, lapack_int ldb,
+ double* q, lapack_int ldq, double* z,
+ lapack_int ldz );
+lapack_int LAPACKE_cgghrd( int matrix_order, char compq, char compz,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* q, lapack_int ldq,
+ lapack_complex_float* z, lapack_int ldz );
+lapack_int LAPACKE_zgghrd( int matrix_order, char compq, char compz,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* q, lapack_int ldq,
+ lapack_complex_double* z, lapack_int ldz );
+
+lapack_int LAPACKE_sgglse( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int p, float* a, lapack_int lda, float* b,
+ lapack_int ldb, float* c, float* d, float* x );
+lapack_int LAPACKE_dgglse( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int p, double* a, lapack_int lda, double* b,
+ lapack_int ldb, double* c, double* d, double* x );
+lapack_int LAPACKE_cgglse( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int p, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* c,
+ lapack_complex_float* d, lapack_complex_float* x );
+lapack_int LAPACKE_zgglse( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int p, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* c,
+ lapack_complex_double* d, lapack_complex_double* x );
+
+lapack_int LAPACKE_sggqrf( int matrix_order, lapack_int n, lapack_int m,
+ lapack_int p, float* a, lapack_int lda, float* taua,
+ float* b, lapack_int ldb, float* taub );
+lapack_int LAPACKE_dggqrf( int matrix_order, lapack_int n, lapack_int m,
+ lapack_int p, double* a, lapack_int lda,
+ double* taua, double* b, lapack_int ldb,
+ double* taub );
+lapack_int LAPACKE_cggqrf( int matrix_order, lapack_int n, lapack_int m,
+ lapack_int p, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* taua,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* taub );
+lapack_int LAPACKE_zggqrf( int matrix_order, lapack_int n, lapack_int m,
+ lapack_int p, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* taua,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* taub );
+
+lapack_int LAPACKE_sggrqf( int matrix_order, lapack_int m, lapack_int p,
+ lapack_int n, float* a, lapack_int lda, float* taua,
+ float* b, lapack_int ldb, float* taub );
+lapack_int LAPACKE_dggrqf( int matrix_order, lapack_int m, lapack_int p,
+ lapack_int n, double* a, lapack_int lda,
+ double* taua, double* b, lapack_int ldb,
+ double* taub );
+lapack_int LAPACKE_cggrqf( int matrix_order, lapack_int m, lapack_int p,
+ lapack_int n, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* taua,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* taub );
+lapack_int LAPACKE_zggrqf( int matrix_order, lapack_int m, lapack_int p,
+ lapack_int n, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* taua,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* taub );
+
+lapack_int LAPACKE_sggsvd( int matrix_order, char jobu, char jobv, char jobq,
+ lapack_int m, lapack_int n, lapack_int p,
+ lapack_int* k, lapack_int* l, float* a,
+ lapack_int lda, float* b, lapack_int ldb,
+ float* alpha, float* beta, float* u, lapack_int ldu,
+ float* v, lapack_int ldv, float* q, lapack_int ldq,
+ lapack_int* iwork );
+lapack_int LAPACKE_dggsvd( int matrix_order, char jobu, char jobv, char jobq,
+ lapack_int m, lapack_int n, lapack_int p,
+ lapack_int* k, lapack_int* l, double* a,
+ lapack_int lda, double* b, lapack_int ldb,
+ double* alpha, double* beta, double* u,
+ lapack_int ldu, double* v, lapack_int ldv, double* q,
+ lapack_int ldq, lapack_int* iwork );
+lapack_int LAPACKE_cggsvd( int matrix_order, char jobu, char jobv, char jobq,
+ lapack_int m, lapack_int n, lapack_int p,
+ lapack_int* k, lapack_int* l,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ float* alpha, float* beta, lapack_complex_float* u,
+ lapack_int ldu, lapack_complex_float* v,
+ lapack_int ldv, lapack_complex_float* q,
+ lapack_int ldq, lapack_int* iwork );
+lapack_int LAPACKE_zggsvd( int matrix_order, char jobu, char jobv, char jobq,
+ lapack_int m, lapack_int n, lapack_int p,
+ lapack_int* k, lapack_int* l,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ double* alpha, double* beta,
+ lapack_complex_double* u, lapack_int ldu,
+ lapack_complex_double* v, lapack_int ldv,
+ lapack_complex_double* q, lapack_int ldq,
+ lapack_int* iwork );
+
+lapack_int LAPACKE_sggsvp( int matrix_order, char jobu, char jobv, char jobq,
+ lapack_int m, lapack_int p, lapack_int n, float* a,
+ lapack_int lda, float* b, lapack_int ldb, float tola,
+ float tolb, lapack_int* k, lapack_int* l, float* u,
+ lapack_int ldu, float* v, lapack_int ldv, float* q,
+ lapack_int ldq );
+lapack_int LAPACKE_dggsvp( int matrix_order, char jobu, char jobv, char jobq,
+ lapack_int m, lapack_int p, lapack_int n, double* a,
+ lapack_int lda, double* b, lapack_int ldb,
+ double tola, double tolb, lapack_int* k,
+ lapack_int* l, double* u, lapack_int ldu, double* v,
+ lapack_int ldv, double* q, lapack_int ldq );
+lapack_int LAPACKE_cggsvp( int matrix_order, char jobu, char jobv, char jobq,
+ lapack_int m, lapack_int p, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb, float tola,
+ float tolb, lapack_int* k, lapack_int* l,
+ lapack_complex_float* u, lapack_int ldu,
+ lapack_complex_float* v, lapack_int ldv,
+ lapack_complex_float* q, lapack_int ldq );
+lapack_int LAPACKE_zggsvp( int matrix_order, char jobu, char jobv, char jobq,
+ lapack_int m, lapack_int p, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ double tola, double tolb, lapack_int* k,
+ lapack_int* l, lapack_complex_double* u,
+ lapack_int ldu, lapack_complex_double* v,
+ lapack_int ldv, lapack_complex_double* q,
+ lapack_int ldq );
+
+lapack_int LAPACKE_sgtcon( char norm, lapack_int n, const float* dl,
+ const float* d, const float* du, const float* du2,
+ const lapack_int* ipiv, float anorm, float* rcond );
+lapack_int LAPACKE_dgtcon( char norm, lapack_int n, const double* dl,
+ const double* d, const double* du, const double* du2,
+ const lapack_int* ipiv, double anorm,
+ double* rcond );
+lapack_int LAPACKE_cgtcon( char norm, lapack_int n,
+ const lapack_complex_float* dl,
+ const lapack_complex_float* d,
+ const lapack_complex_float* du,
+ const lapack_complex_float* du2,
+ const lapack_int* ipiv, float anorm, float* rcond );
+lapack_int LAPACKE_zgtcon( char norm, lapack_int n,
+ const lapack_complex_double* dl,
+ const lapack_complex_double* d,
+ const lapack_complex_double* du,
+ const lapack_complex_double* du2,
+ const lapack_int* ipiv, double anorm,
+ double* rcond );
+
+lapack_int LAPACKE_sgtrfs( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const float* dl, const float* d,
+ const float* du, const float* dlf, const float* df,
+ const float* duf, const float* du2,
+ const lapack_int* ipiv, const float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* ferr, float* berr );
+lapack_int LAPACKE_dgtrfs( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const double* dl, const double* d,
+ const double* du, const double* dlf,
+ const double* df, const double* duf,
+ const double* du2, const lapack_int* ipiv,
+ const double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* ferr, double* berr );
+lapack_int LAPACKE_cgtrfs( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* dl,
+ const lapack_complex_float* d,
+ const lapack_complex_float* du,
+ const lapack_complex_float* dlf,
+ const lapack_complex_float* df,
+ const lapack_complex_float* duf,
+ const lapack_complex_float* du2,
+ const lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx, float* ferr,
+ float* berr );
+lapack_int LAPACKE_zgtrfs( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* dl,
+ const lapack_complex_double* d,
+ const lapack_complex_double* du,
+ const lapack_complex_double* dlf,
+ const lapack_complex_double* df,
+ const lapack_complex_double* duf,
+ const lapack_complex_double* du2,
+ const lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr );
+
+lapack_int LAPACKE_sgtsv( int matrix_order, lapack_int n, lapack_int nrhs,
+ float* dl, float* d, float* du, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dgtsv( int matrix_order, lapack_int n, lapack_int nrhs,
+ double* dl, double* d, double* du, double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_cgtsv( int matrix_order, lapack_int n, lapack_int nrhs,
+ lapack_complex_float* dl, lapack_complex_float* d,
+ lapack_complex_float* du, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zgtsv( int matrix_order, lapack_int n, lapack_int nrhs,
+ lapack_complex_double* dl, lapack_complex_double* d,
+ lapack_complex_double* du, lapack_complex_double* b,
+ lapack_int ldb );
+
+lapack_int LAPACKE_sgtsvx( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs, const float* dl,
+ const float* d, const float* du, float* dlf,
+ float* df, float* duf, float* du2, lapack_int* ipiv,
+ const float* b, lapack_int ldb, float* x,
+ lapack_int ldx, float* rcond, float* ferr,
+ float* berr );
+lapack_int LAPACKE_dgtsvx( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs, const double* dl,
+ const double* d, const double* du, double* dlf,
+ double* df, double* duf, double* du2,
+ lapack_int* ipiv, const double* b, lapack_int ldb,
+ double* x, lapack_int ldx, double* rcond,
+ double* ferr, double* berr );
+lapack_int LAPACKE_cgtsvx( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* dl,
+ const lapack_complex_float* d,
+ const lapack_complex_float* du,
+ lapack_complex_float* dlf, lapack_complex_float* df,
+ lapack_complex_float* duf, lapack_complex_float* du2,
+ lapack_int* ipiv, const lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* rcond, float* ferr,
+ float* berr );
+lapack_int LAPACKE_zgtsvx( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* dl,
+ const lapack_complex_double* d,
+ const lapack_complex_double* du,
+ lapack_complex_double* dlf,
+ lapack_complex_double* df,
+ lapack_complex_double* duf,
+ lapack_complex_double* du2, lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr );
+
+lapack_int LAPACKE_sgttrf( lapack_int n, float* dl, float* d, float* du,
+ float* du2, lapack_int* ipiv );
+lapack_int LAPACKE_dgttrf( lapack_int n, double* dl, double* d, double* du,
+ double* du2, lapack_int* ipiv );
+lapack_int LAPACKE_cgttrf( lapack_int n, lapack_complex_float* dl,
+ lapack_complex_float* d, lapack_complex_float* du,
+ lapack_complex_float* du2, lapack_int* ipiv );
+lapack_int LAPACKE_zgttrf( lapack_int n, lapack_complex_double* dl,
+ lapack_complex_double* d, lapack_complex_double* du,
+ lapack_complex_double* du2, lapack_int* ipiv );
+
+lapack_int LAPACKE_sgttrs( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const float* dl, const float* d,
+ const float* du, const float* du2,
+ const lapack_int* ipiv, float* b, lapack_int ldb );
+lapack_int LAPACKE_dgttrs( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const double* dl, const double* d,
+ const double* du, const double* du2,
+ const lapack_int* ipiv, double* b, lapack_int ldb );
+lapack_int LAPACKE_cgttrs( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* dl,
+ const lapack_complex_float* d,
+ const lapack_complex_float* du,
+ const lapack_complex_float* du2,
+ const lapack_int* ipiv, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zgttrs( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* dl,
+ const lapack_complex_double* d,
+ const lapack_complex_double* du,
+ const lapack_complex_double* du2,
+ const lapack_int* ipiv, lapack_complex_double* b,
+ lapack_int ldb );
+
+lapack_int LAPACKE_chbev( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_int kd, lapack_complex_float* ab,
+ lapack_int ldab, float* w, lapack_complex_float* z,
+ lapack_int ldz );
+lapack_int LAPACKE_zhbev( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_int kd, lapack_complex_double* ab,
+ lapack_int ldab, double* w, lapack_complex_double* z,
+ lapack_int ldz );
+
+lapack_int LAPACKE_chbevd( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_int kd, lapack_complex_float* ab,
+ lapack_int ldab, float* w, lapack_complex_float* z,
+ lapack_int ldz );
+lapack_int LAPACKE_zhbevd( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_int kd, lapack_complex_double* ab,
+ lapack_int ldab, double* w, lapack_complex_double* z,
+ lapack_int ldz );
+
+lapack_int LAPACKE_chbevx( int matrix_order, char jobz, char range, char uplo,
+ lapack_int n, lapack_int kd,
+ lapack_complex_float* ab, lapack_int ldab,
+ lapack_complex_float* q, lapack_int ldq, float vl,
+ float vu, lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w, lapack_complex_float* z,
+ lapack_int ldz, lapack_int* ifail );
+lapack_int LAPACKE_zhbevx( int matrix_order, char jobz, char range, char uplo,
+ lapack_int n, lapack_int kd,
+ lapack_complex_double* ab, lapack_int ldab,
+ lapack_complex_double* q, lapack_int ldq, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ double abstol, lapack_int* m, double* w,
+ lapack_complex_double* z, lapack_int ldz,
+ lapack_int* ifail );
+
+lapack_int LAPACKE_chbgst( int matrix_order, char vect, char uplo, lapack_int n,
+ lapack_int ka, lapack_int kb,
+ lapack_complex_float* ab, lapack_int ldab,
+ const lapack_complex_float* bb, lapack_int ldbb,
+ lapack_complex_float* x, lapack_int ldx );
+lapack_int LAPACKE_zhbgst( int matrix_order, char vect, char uplo, lapack_int n,
+ lapack_int ka, lapack_int kb,
+ lapack_complex_double* ab, lapack_int ldab,
+ const lapack_complex_double* bb, lapack_int ldbb,
+ lapack_complex_double* x, lapack_int ldx );
+
+lapack_int LAPACKE_chbgv( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_int ka, lapack_int kb,
+ lapack_complex_float* ab, lapack_int ldab,
+ lapack_complex_float* bb, lapack_int ldbb, float* w,
+ lapack_complex_float* z, lapack_int ldz );
+lapack_int LAPACKE_zhbgv( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_int ka, lapack_int kb,
+ lapack_complex_double* ab, lapack_int ldab,
+ lapack_complex_double* bb, lapack_int ldbb, double* w,
+ lapack_complex_double* z, lapack_int ldz );
+
+lapack_int LAPACKE_chbgvd( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_int ka, lapack_int kb,
+ lapack_complex_float* ab, lapack_int ldab,
+ lapack_complex_float* bb, lapack_int ldbb, float* w,
+ lapack_complex_float* z, lapack_int ldz );
+lapack_int LAPACKE_zhbgvd( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_int ka, lapack_int kb,
+ lapack_complex_double* ab, lapack_int ldab,
+ lapack_complex_double* bb, lapack_int ldbb,
+ double* w, lapack_complex_double* z,
+ lapack_int ldz );
+
+lapack_int LAPACKE_chbgvx( int matrix_order, char jobz, char range, char uplo,
+ lapack_int n, lapack_int ka, lapack_int kb,
+ lapack_complex_float* ab, lapack_int ldab,
+ lapack_complex_float* bb, lapack_int ldbb,
+ lapack_complex_float* q, lapack_int ldq, float vl,
+ float vu, lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w, lapack_complex_float* z,
+ lapack_int ldz, lapack_int* ifail );
+lapack_int LAPACKE_zhbgvx( int matrix_order, char jobz, char range, char uplo,
+ lapack_int n, lapack_int ka, lapack_int kb,
+ lapack_complex_double* ab, lapack_int ldab,
+ lapack_complex_double* bb, lapack_int ldbb,
+ lapack_complex_double* q, lapack_int ldq, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ double abstol, lapack_int* m, double* w,
+ lapack_complex_double* z, lapack_int ldz,
+ lapack_int* ifail );
+
+lapack_int LAPACKE_chbtrd( int matrix_order, char vect, char uplo, lapack_int n,
+ lapack_int kd, lapack_complex_float* ab,
+ lapack_int ldab, float* d, float* e,
+ lapack_complex_float* q, lapack_int ldq );
+lapack_int LAPACKE_zhbtrd( int matrix_order, char vect, char uplo, lapack_int n,
+ lapack_int kd, lapack_complex_double* ab,
+ lapack_int ldab, double* d, double* e,
+ lapack_complex_double* q, lapack_int ldq );
+
+lapack_int LAPACKE_checon( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_int* ipiv, float anorm, float* rcond );
+lapack_int LAPACKE_zhecon( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_int* ipiv, double anorm,
+ double* rcond );
+
+lapack_int LAPACKE_cheequb( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ float* s, float* scond, float* amax );
+lapack_int LAPACKE_zheequb( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ double* s, double* scond, double* amax );
+
+lapack_int LAPACKE_cheev( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda, float* w );
+lapack_int LAPACKE_zheev( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda, double* w );
+
+lapack_int LAPACKE_cheevd( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda, float* w );
+lapack_int LAPACKE_zheevd( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ double* w );
+
+lapack_int LAPACKE_cheevr( int matrix_order, char jobz, char range, char uplo,
+ lapack_int n, lapack_complex_float* a,
+ lapack_int lda, float vl, float vu, lapack_int il,
+ lapack_int iu, float abstol, lapack_int* m, float* w,
+ lapack_complex_float* z, lapack_int ldz,
+ lapack_int* isuppz );
+lapack_int LAPACKE_zheevr( int matrix_order, char jobz, char range, char uplo,
+ lapack_int n, lapack_complex_double* a,
+ lapack_int lda, double vl, double vu, lapack_int il,
+ lapack_int iu, double abstol, lapack_int* m,
+ double* w, lapack_complex_double* z, lapack_int ldz,
+ lapack_int* isuppz );
+
+lapack_int LAPACKE_cheevx( int matrix_order, char jobz, char range, char uplo,
+ lapack_int n, lapack_complex_float* a,
+ lapack_int lda, float vl, float vu, lapack_int il,
+ lapack_int iu, float abstol, lapack_int* m, float* w,
+ lapack_complex_float* z, lapack_int ldz,
+ lapack_int* ifail );
+lapack_int LAPACKE_zheevx( int matrix_order, char jobz, char range, char uplo,
+ lapack_int n, lapack_complex_double* a,
+ lapack_int lda, double vl, double vu, lapack_int il,
+ lapack_int iu, double abstol, lapack_int* m,
+ double* w, lapack_complex_double* z, lapack_int ldz,
+ lapack_int* ifail );
+
+lapack_int LAPACKE_chegst( int matrix_order, lapack_int itype, char uplo,
+ lapack_int n, lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zhegst( int matrix_order, lapack_int itype, char uplo,
+ lapack_int n, lapack_complex_double* a,
+ lapack_int lda, const lapack_complex_double* b,
+ lapack_int ldb );
+
+lapack_int LAPACKE_chegv( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb, float* w );
+lapack_int LAPACKE_zhegv( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb, double* w );
+
+lapack_int LAPACKE_chegvd( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb, float* w );
+lapack_int LAPACKE_zhegvd( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb, double* w );
+
+lapack_int LAPACKE_chegvx( int matrix_order, lapack_int itype, char jobz,
+ char range, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb, float vl,
+ float vu, lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w, lapack_complex_float* z,
+ lapack_int ldz, lapack_int* ifail );
+lapack_int LAPACKE_zhegvx( int matrix_order, lapack_int itype, char jobz,
+ char range, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ double abstol, lapack_int* m, double* w,
+ lapack_complex_double* z, lapack_int ldz,
+ lapack_int* ifail );
+
+lapack_int LAPACKE_cherfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx, float* ferr,
+ float* berr );
+lapack_int LAPACKE_zherfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, const lapack_complex_double* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr );
+
+lapack_int LAPACKE_cherfsx( int matrix_order, char uplo, char equed,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* af, lapack_int ldaf,
+ const lapack_int* ipiv, const float* s,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* berr, lapack_int n_err_bnds,
+ float* err_bnds_norm, float* err_bnds_comp,
+ lapack_int nparams, float* params );
+lapack_int LAPACKE_zherfsx( int matrix_order, char uplo, char equed,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* af, lapack_int ldaf,
+ const lapack_int* ipiv, const double* s,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* berr, lapack_int n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int nparams, double* params );
+
+lapack_int LAPACKE_chesv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_float* a,
+ lapack_int lda, lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zhesv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* a,
+ lapack_int lda, lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_chesvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* af,
+ lapack_int ldaf, lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr );
+lapack_int LAPACKE_zhesvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* af,
+ lapack_int ldaf, lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr );
+
+lapack_int LAPACKE_chesvxx( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, float* s,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* rpvgrw, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params );
+lapack_int LAPACKE_zhesvxx( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, double* s,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* rpvgrw, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params );
+
+lapack_int LAPACKE_chetrd( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda, float* d,
+ float* e, lapack_complex_float* tau );
+lapack_int LAPACKE_zhetrd( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda, double* d,
+ double* e, lapack_complex_double* tau );
+
+lapack_int LAPACKE_chetrf( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* ipiv );
+lapack_int LAPACKE_zhetrf( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* ipiv );
+
+lapack_int LAPACKE_chetri( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ const lapack_int* ipiv );
+lapack_int LAPACKE_zhetri( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ const lapack_int* ipiv );
+
+lapack_int LAPACKE_chetrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zhetrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_chfrk( int matrix_order, char transr, char uplo, char trans,
+ lapack_int n, lapack_int k, float alpha,
+ const lapack_complex_float* a, lapack_int lda,
+ float beta, lapack_complex_float* c );
+lapack_int LAPACKE_zhfrk( int matrix_order, char transr, char uplo, char trans,
+ lapack_int n, lapack_int k, double alpha,
+ const lapack_complex_double* a, lapack_int lda,
+ double beta, lapack_complex_double* c );
+
+lapack_int LAPACKE_shgeqz( int matrix_order, char job, char compq, char compz,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ float* h, lapack_int ldh, float* t, lapack_int ldt,
+ float* alphar, float* alphai, float* beta, float* q,
+ lapack_int ldq, float* z, lapack_int ldz );
+lapack_int LAPACKE_dhgeqz( int matrix_order, char job, char compq, char compz,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ double* h, lapack_int ldh, double* t, lapack_int ldt,
+ double* alphar, double* alphai, double* beta,
+ double* q, lapack_int ldq, double* z,
+ lapack_int ldz );
+lapack_int LAPACKE_chgeqz( int matrix_order, char job, char compq, char compz,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ lapack_complex_float* h, lapack_int ldh,
+ lapack_complex_float* t, lapack_int ldt,
+ lapack_complex_float* alpha,
+ lapack_complex_float* beta, lapack_complex_float* q,
+ lapack_int ldq, lapack_complex_float* z,
+ lapack_int ldz );
+lapack_int LAPACKE_zhgeqz( int matrix_order, char job, char compq, char compz,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ lapack_complex_double* h, lapack_int ldh,
+ lapack_complex_double* t, lapack_int ldt,
+ lapack_complex_double* alpha,
+ lapack_complex_double* beta,
+ lapack_complex_double* q, lapack_int ldq,
+ lapack_complex_double* z, lapack_int ldz );
+
+lapack_int LAPACKE_chpcon( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* ap,
+ const lapack_int* ipiv, float anorm, float* rcond );
+lapack_int LAPACKE_zhpcon( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* ap,
+ const lapack_int* ipiv, double anorm,
+ double* rcond );
+
+lapack_int LAPACKE_chpev( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_complex_float* ap, float* w,
+ lapack_complex_float* z, lapack_int ldz );
+lapack_int LAPACKE_zhpev( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_complex_double* ap, double* w,
+ lapack_complex_double* z, lapack_int ldz );
+
+lapack_int LAPACKE_chpevd( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_complex_float* ap, float* w,
+ lapack_complex_float* z, lapack_int ldz );
+lapack_int LAPACKE_zhpevd( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_complex_double* ap, double* w,
+ lapack_complex_double* z, lapack_int ldz );
+
+lapack_int LAPACKE_chpevx( int matrix_order, char jobz, char range, char uplo,
+ lapack_int n, lapack_complex_float* ap, float vl,
+ float vu, lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w, lapack_complex_float* z,
+ lapack_int ldz, lapack_int* ifail );
+lapack_int LAPACKE_zhpevx( int matrix_order, char jobz, char range, char uplo,
+ lapack_int n, lapack_complex_double* ap, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ double abstol, lapack_int* m, double* w,
+ lapack_complex_double* z, lapack_int ldz,
+ lapack_int* ifail );
+
+lapack_int LAPACKE_chpgst( int matrix_order, lapack_int itype, char uplo,
+ lapack_int n, lapack_complex_float* ap,
+ const lapack_complex_float* bp );
+lapack_int LAPACKE_zhpgst( int matrix_order, lapack_int itype, char uplo,
+ lapack_int n, lapack_complex_double* ap,
+ const lapack_complex_double* bp );
+
+lapack_int LAPACKE_chpgv( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, lapack_complex_float* ap,
+ lapack_complex_float* bp, float* w,
+ lapack_complex_float* z, lapack_int ldz );
+lapack_int LAPACKE_zhpgv( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, lapack_complex_double* ap,
+ lapack_complex_double* bp, double* w,
+ lapack_complex_double* z, lapack_int ldz );
+
+lapack_int LAPACKE_chpgvd( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, lapack_complex_float* ap,
+ lapack_complex_float* bp, float* w,
+ lapack_complex_float* z, lapack_int ldz );
+lapack_int LAPACKE_zhpgvd( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, lapack_complex_double* ap,
+ lapack_complex_double* bp, double* w,
+ lapack_complex_double* z, lapack_int ldz );
+
+lapack_int LAPACKE_chpgvx( int matrix_order, lapack_int itype, char jobz,
+ char range, char uplo, lapack_int n,
+ lapack_complex_float* ap, lapack_complex_float* bp,
+ float vl, float vu, lapack_int il, lapack_int iu,
+ float abstol, lapack_int* m, float* w,
+ lapack_complex_float* z, lapack_int ldz,
+ lapack_int* ifail );
+lapack_int LAPACKE_zhpgvx( int matrix_order, lapack_int itype, char jobz,
+ char range, char uplo, lapack_int n,
+ lapack_complex_double* ap, lapack_complex_double* bp,
+ double vl, double vu, lapack_int il, lapack_int iu,
+ double abstol, lapack_int* m, double* w,
+ lapack_complex_double* z, lapack_int ldz,
+ lapack_int* ifail );
+
+lapack_int LAPACKE_chprfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* ap,
+ const lapack_complex_float* afp,
+ const lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx, float* ferr,
+ float* berr );
+lapack_int LAPACKE_zhprfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* ap,
+ const lapack_complex_double* afp,
+ const lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr );
+
+lapack_int LAPACKE_chpsv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_float* ap,
+ lapack_int* ipiv, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zhpsv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* ap,
+ lapack_int* ipiv, lapack_complex_double* b,
+ lapack_int ldb );
+
+lapack_int LAPACKE_chpsvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* ap,
+ lapack_complex_float* afp, lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr );
+lapack_int LAPACKE_zhpsvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* ap,
+ lapack_complex_double* afp, lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr );
+
+lapack_int LAPACKE_chptrd( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* ap, float* d, float* e,
+ lapack_complex_float* tau );
+lapack_int LAPACKE_zhptrd( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* ap, double* d, double* e,
+ lapack_complex_double* tau );
+
+lapack_int LAPACKE_chptrf( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* ap, lapack_int* ipiv );
+lapack_int LAPACKE_zhptrf( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* ap, lapack_int* ipiv );
+
+lapack_int LAPACKE_chptri( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* ap, const lapack_int* ipiv );
+lapack_int LAPACKE_zhptri( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* ap, const lapack_int* ipiv );
+
+lapack_int LAPACKE_chptrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* ap,
+ const lapack_int* ipiv, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zhptrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* ap,
+ const lapack_int* ipiv, lapack_complex_double* b,
+ lapack_int ldb );
+
+lapack_int LAPACKE_shsein( int matrix_order, char job, char eigsrc, char initv,
+ lapack_logical* select, lapack_int n, const float* h,
+ lapack_int ldh, float* wr, const float* wi,
+ float* vl, lapack_int ldvl, float* vr,
+ lapack_int ldvr, lapack_int mm, lapack_int* m,
+ lapack_int* ifaill, lapack_int* ifailr );
+lapack_int LAPACKE_dhsein( int matrix_order, char job, char eigsrc, char initv,
+ lapack_logical* select, lapack_int n,
+ const double* h, lapack_int ldh, double* wr,
+ const double* wi, double* vl, lapack_int ldvl,
+ double* vr, lapack_int ldvr, lapack_int mm,
+ lapack_int* m, lapack_int* ifaill,
+ lapack_int* ifailr );
+lapack_int LAPACKE_chsein( int matrix_order, char job, char eigsrc, char initv,
+ const lapack_logical* select, lapack_int n,
+ const lapack_complex_float* h, lapack_int ldh,
+ lapack_complex_float* w, lapack_complex_float* vl,
+ lapack_int ldvl, lapack_complex_float* vr,
+ lapack_int ldvr, lapack_int mm, lapack_int* m,
+ lapack_int* ifaill, lapack_int* ifailr );
+lapack_int LAPACKE_zhsein( int matrix_order, char job, char eigsrc, char initv,
+ const lapack_logical* select, lapack_int n,
+ const lapack_complex_double* h, lapack_int ldh,
+ lapack_complex_double* w, lapack_complex_double* vl,
+ lapack_int ldvl, lapack_complex_double* vr,
+ lapack_int ldvr, lapack_int mm, lapack_int* m,
+ lapack_int* ifaill, lapack_int* ifailr );
+
+lapack_int LAPACKE_shseqr( int matrix_order, char job, char compz, lapack_int n,
+ lapack_int ilo, lapack_int ihi, float* h,
+ lapack_int ldh, float* wr, float* wi, float* z,
+ lapack_int ldz );
+lapack_int LAPACKE_dhseqr( int matrix_order, char job, char compz, lapack_int n,
+ lapack_int ilo, lapack_int ihi, double* h,
+ lapack_int ldh, double* wr, double* wi, double* z,
+ lapack_int ldz );
+lapack_int LAPACKE_chseqr( int matrix_order, char job, char compz, lapack_int n,
+ lapack_int ilo, lapack_int ihi,
+ lapack_complex_float* h, lapack_int ldh,
+ lapack_complex_float* w, lapack_complex_float* z,
+ lapack_int ldz );
+lapack_int LAPACKE_zhseqr( int matrix_order, char job, char compz, lapack_int n,
+ lapack_int ilo, lapack_int ihi,
+ lapack_complex_double* h, lapack_int ldh,
+ lapack_complex_double* w, lapack_complex_double* z,
+ lapack_int ldz );
+
+lapack_int LAPACKE_clacgv( lapack_int n, lapack_complex_float* x,
+ lapack_int incx );
+lapack_int LAPACKE_zlacgv( lapack_int n, lapack_complex_double* x,
+ lapack_int incx );
+
+lapack_int LAPACKE_slacpy( int matrix_order, char uplo, lapack_int m,
+ lapack_int n, const float* a, lapack_int lda, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dlacpy( int matrix_order, char uplo, lapack_int m,
+ lapack_int n, const double* a, lapack_int lda, double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_clacpy( int matrix_order, char uplo, lapack_int m,
+ lapack_int n, const lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zlacpy( int matrix_order, char uplo, lapack_int m,
+ lapack_int n, const lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb );
+
+lapack_int LAPACKE_zlag2c( int matrix_order, lapack_int m, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ lapack_complex_float* sa, lapack_int ldsa );
+
+lapack_int LAPACKE_slag2d( int matrix_order, lapack_int m, lapack_int n,
+ const float* sa, lapack_int ldsa, double* a,
+ lapack_int lda );
+
+lapack_int LAPACKE_dlag2s( int matrix_order, lapack_int m, lapack_int n,
+ const double* a, lapack_int lda, float* sa,
+ lapack_int ldsa );
+
+lapack_int LAPACKE_clag2z( int matrix_order, lapack_int m, lapack_int n,
+ const lapack_complex_float* sa, lapack_int ldsa,
+ lapack_complex_double* a, lapack_int lda );
+
+lapack_int LAPACKE_slagge( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku, const float* d,
+ float* a, lapack_int lda, lapack_int* iseed );
+lapack_int LAPACKE_dlagge( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku, const double* d,
+ double* a, lapack_int lda, lapack_int* iseed );
+lapack_int LAPACKE_clagge( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku, const float* d,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* iseed );
+lapack_int LAPACKE_zlagge( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku, const double* d,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* iseed );
+
+float LAPACKE_slamch( char cmach );
+double LAPACKE_dlamch( char cmach );
+
+float LAPACKE_slange( int matrix_order, char norm, lapack_int m,
+ lapack_int n, const float* a, lapack_int lda );
+double LAPACKE_dlange( int matrix_order, char norm, lapack_int m,
+ lapack_int n, const double* a, lapack_int lda );
+float LAPACKE_clange( int matrix_order, char norm, lapack_int m,
+ lapack_int n, const lapack_complex_float* a,
+ lapack_int lda );
+double LAPACKE_zlange( int matrix_order, char norm, lapack_int m,
+ lapack_int n, const lapack_complex_double* a,
+ lapack_int lda );
+
+float LAPACKE_clanhe( int matrix_order, char norm, char uplo, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda );
+double LAPACKE_zlanhe( int matrix_order, char norm, char uplo, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda );
+
+float LAPACKE_slansy( int matrix_order, char norm, char uplo, lapack_int n,
+ const float* a, lapack_int lda );
+double LAPACKE_dlansy( int matrix_order, char norm, char uplo, lapack_int n,
+ const double* a, lapack_int lda );
+float LAPACKE_clansy( int matrix_order, char norm, char uplo, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda );
+double LAPACKE_zlansy( int matrix_order, char norm, char uplo, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda );
+
+float LAPACKE_slantr( int matrix_order, char norm, char uplo, char diag,
+ lapack_int m, lapack_int n, const float* a,
+ lapack_int lda );
+double LAPACKE_dlantr( int matrix_order, char norm, char uplo, char diag,
+ lapack_int m, lapack_int n, const double* a,
+ lapack_int lda );
+float LAPACKE_clantr( int matrix_order, char norm, char uplo, char diag,
+ lapack_int m, lapack_int n, const lapack_complex_float* a,
+ lapack_int lda );
+double LAPACKE_zlantr( int matrix_order, char norm, char uplo, char diag,
+ lapack_int m, lapack_int n, const lapack_complex_double* a,
+ lapack_int lda );
+
+
+lapack_int LAPACKE_slarfb( int matrix_order, char side, char trans, char direct,
+ char storev, lapack_int m, lapack_int n,
+ lapack_int k, const float* v, lapack_int ldv,
+ const float* t, lapack_int ldt, float* c,
+ lapack_int ldc );
+lapack_int LAPACKE_dlarfb( int matrix_order, char side, char trans, char direct,
+ char storev, lapack_int m, lapack_int n,
+ lapack_int k, const double* v, lapack_int ldv,
+ const double* t, lapack_int ldt, double* c,
+ lapack_int ldc );
+lapack_int LAPACKE_clarfb( int matrix_order, char side, char trans, char direct,
+ char storev, lapack_int m, lapack_int n,
+ lapack_int k, const lapack_complex_float* v,
+ lapack_int ldv, const lapack_complex_float* t,
+ lapack_int ldt, lapack_complex_float* c,
+ lapack_int ldc );
+lapack_int LAPACKE_zlarfb( int matrix_order, char side, char trans, char direct,
+ char storev, lapack_int m, lapack_int n,
+ lapack_int k, const lapack_complex_double* v,
+ lapack_int ldv, const lapack_complex_double* t,
+ lapack_int ldt, lapack_complex_double* c,
+ lapack_int ldc );
+
+lapack_int LAPACKE_slarfg( lapack_int n, float* alpha, float* x,
+ lapack_int incx, float* tau );
+lapack_int LAPACKE_dlarfg( lapack_int n, double* alpha, double* x,
+ lapack_int incx, double* tau );
+lapack_int LAPACKE_clarfg( lapack_int n, lapack_complex_float* alpha,
+ lapack_complex_float* x, lapack_int incx,
+ lapack_complex_float* tau );
+lapack_int LAPACKE_zlarfg( lapack_int n, lapack_complex_double* alpha,
+ lapack_complex_double* x, lapack_int incx,
+ lapack_complex_double* tau );
+
+lapack_int LAPACKE_slarft( int matrix_order, char direct, char storev,
+ lapack_int n, lapack_int k, const float* v,
+ lapack_int ldv, const float* tau, float* t,
+ lapack_int ldt );
+lapack_int LAPACKE_dlarft( int matrix_order, char direct, char storev,
+ lapack_int n, lapack_int k, const double* v,
+ lapack_int ldv, const double* tau, double* t,
+ lapack_int ldt );
+lapack_int LAPACKE_clarft( int matrix_order, char direct, char storev,
+ lapack_int n, lapack_int k,
+ const lapack_complex_float* v, lapack_int ldv,
+ const lapack_complex_float* tau,
+ lapack_complex_float* t, lapack_int ldt );
+lapack_int LAPACKE_zlarft( int matrix_order, char direct, char storev,
+ lapack_int n, lapack_int k,
+ const lapack_complex_double* v, lapack_int ldv,
+ const lapack_complex_double* tau,
+ lapack_complex_double* t, lapack_int ldt );
+
+lapack_int LAPACKE_slarfx( int matrix_order, char side, lapack_int m,
+ lapack_int n, const float* v, float tau, float* c,
+ lapack_int ldc, float* work );
+lapack_int LAPACKE_dlarfx( int matrix_order, char side, lapack_int m,
+ lapack_int n, const double* v, double tau, double* c,
+ lapack_int ldc, double* work );
+lapack_int LAPACKE_clarfx( int matrix_order, char side, lapack_int m,
+ lapack_int n, const lapack_complex_float* v,
+ lapack_complex_float tau, lapack_complex_float* c,
+ lapack_int ldc, lapack_complex_float* work );
+lapack_int LAPACKE_zlarfx( int matrix_order, char side, lapack_int m,
+ lapack_int n, const lapack_complex_double* v,
+ lapack_complex_double tau, lapack_complex_double* c,
+ lapack_int ldc, lapack_complex_double* work );
+
+lapack_int LAPACKE_slarnv( lapack_int idist, lapack_int* iseed, lapack_int n,
+ float* x );
+lapack_int LAPACKE_dlarnv( lapack_int idist, lapack_int* iseed, lapack_int n,
+ double* x );
+lapack_int LAPACKE_clarnv( lapack_int idist, lapack_int* iseed, lapack_int n,
+ lapack_complex_float* x );
+lapack_int LAPACKE_zlarnv( lapack_int idist, lapack_int* iseed, lapack_int n,
+ lapack_complex_double* x );
+
+lapack_int LAPACKE_slaset( int matrix_order, char uplo, lapack_int m,
+ lapack_int n, float alpha, float beta, float* a,
+ lapack_int lda );
+lapack_int LAPACKE_dlaset( int matrix_order, char uplo, lapack_int m,
+ lapack_int n, double alpha, double beta, double* a,
+ lapack_int lda );
+lapack_int LAPACKE_claset( int matrix_order, char uplo, lapack_int m,
+ lapack_int n, lapack_complex_float alpha,
+ lapack_complex_float beta, lapack_complex_float* a,
+ lapack_int lda );
+lapack_int LAPACKE_zlaset( int matrix_order, char uplo, lapack_int m,
+ lapack_int n, lapack_complex_double alpha,
+ lapack_complex_double beta, lapack_complex_double* a,
+ lapack_int lda );
+
+lapack_int LAPACKE_slasrt( char id, lapack_int n, float* d );
+lapack_int LAPACKE_dlasrt( char id, lapack_int n, double* d );
+
+lapack_int LAPACKE_slaswp( int matrix_order, lapack_int n, float* a,
+ lapack_int lda, lapack_int k1, lapack_int k2,
+ const lapack_int* ipiv, lapack_int incx );
+lapack_int LAPACKE_dlaswp( int matrix_order, lapack_int n, double* a,
+ lapack_int lda, lapack_int k1, lapack_int k2,
+ const lapack_int* ipiv, lapack_int incx );
+lapack_int LAPACKE_claswp( int matrix_order, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int k1, lapack_int k2, const lapack_int* ipiv,
+ lapack_int incx );
+lapack_int LAPACKE_zlaswp( int matrix_order, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int k1, lapack_int k2, const lapack_int* ipiv,
+ lapack_int incx );
+
+lapack_int LAPACKE_slatms( int matrix_order, lapack_int m, lapack_int n,
+ char dist, lapack_int* iseed, char sym, float* d,
+ lapack_int mode, float cond, float dmax,
+ lapack_int kl, lapack_int ku, char pack, float* a,
+ lapack_int lda );
+lapack_int LAPACKE_dlatms( int matrix_order, lapack_int m, lapack_int n,
+ char dist, lapack_int* iseed, char sym, double* d,
+ lapack_int mode, double cond, double dmax,
+ lapack_int kl, lapack_int ku, char pack, double* a,
+ lapack_int lda );
+lapack_int LAPACKE_clatms( int matrix_order, lapack_int m, lapack_int n,
+ char dist, lapack_int* iseed, char sym, float* d,
+ lapack_int mode, float cond, float dmax,
+ lapack_int kl, lapack_int ku, char pack,
+ lapack_complex_float* a, lapack_int lda );
+lapack_int LAPACKE_zlatms( int matrix_order, lapack_int m, lapack_int n,
+ char dist, lapack_int* iseed, char sym, double* d,
+ lapack_int mode, double cond, double dmax,
+ lapack_int kl, lapack_int ku, char pack,
+ lapack_complex_double* a, lapack_int lda );
+
+lapack_int LAPACKE_slauum( int matrix_order, char uplo, lapack_int n, float* a,
+ lapack_int lda );
+lapack_int LAPACKE_dlauum( int matrix_order, char uplo, lapack_int n, double* a,
+ lapack_int lda );
+lapack_int LAPACKE_clauum( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda );
+lapack_int LAPACKE_zlauum( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda );
+
+lapack_int LAPACKE_sopgtr( int matrix_order, char uplo, lapack_int n,
+ const float* ap, const float* tau, float* q,
+ lapack_int ldq );
+lapack_int LAPACKE_dopgtr( int matrix_order, char uplo, lapack_int n,
+ const double* ap, const double* tau, double* q,
+ lapack_int ldq );
+
+lapack_int LAPACKE_sopmtr( int matrix_order, char side, char uplo, char trans,
+ lapack_int m, lapack_int n, const float* ap,
+ const float* tau, float* c, lapack_int ldc );
+lapack_int LAPACKE_dopmtr( int matrix_order, char side, char uplo, char trans,
+ lapack_int m, lapack_int n, const double* ap,
+ const double* tau, double* c, lapack_int ldc );
+
+lapack_int LAPACKE_sorgbr( int matrix_order, char vect, lapack_int m,
+ lapack_int n, lapack_int k, float* a, lapack_int lda,
+ const float* tau );
+lapack_int LAPACKE_dorgbr( int matrix_order, char vect, lapack_int m,
+ lapack_int n, lapack_int k, double* a,
+ lapack_int lda, const double* tau );
+
+lapack_int LAPACKE_sorghr( int matrix_order, lapack_int n, lapack_int ilo,
+ lapack_int ihi, float* a, lapack_int lda,
+ const float* tau );
+lapack_int LAPACKE_dorghr( int matrix_order, lapack_int n, lapack_int ilo,
+ lapack_int ihi, double* a, lapack_int lda,
+ const double* tau );
+
+lapack_int LAPACKE_sorglq( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, float* a, lapack_int lda,
+ const float* tau );
+lapack_int LAPACKE_dorglq( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, double* a, lapack_int lda,
+ const double* tau );
+
+lapack_int LAPACKE_sorgql( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, float* a, lapack_int lda,
+ const float* tau );
+lapack_int LAPACKE_dorgql( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, double* a, lapack_int lda,
+ const double* tau );
+
+lapack_int LAPACKE_sorgqr( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, float* a, lapack_int lda,
+ const float* tau );
+lapack_int LAPACKE_dorgqr( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, double* a, lapack_int lda,
+ const double* tau );
+
+lapack_int LAPACKE_sorgrq( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, float* a, lapack_int lda,
+ const float* tau );
+lapack_int LAPACKE_dorgrq( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, double* a, lapack_int lda,
+ const double* tau );
+
+lapack_int LAPACKE_sorgtr( int matrix_order, char uplo, lapack_int n, float* a,
+ lapack_int lda, const float* tau );
+lapack_int LAPACKE_dorgtr( int matrix_order, char uplo, lapack_int n, double* a,
+ lapack_int lda, const double* tau );
+
+lapack_int LAPACKE_sormbr( int matrix_order, char vect, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const float* a, lapack_int lda, const float* tau,
+ float* c, lapack_int ldc );
+lapack_int LAPACKE_dormbr( int matrix_order, char vect, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const double* a, lapack_int lda, const double* tau,
+ double* c, lapack_int ldc );
+
+lapack_int LAPACKE_sormhr( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int ilo,
+ lapack_int ihi, const float* a, lapack_int lda,
+ const float* tau, float* c, lapack_int ldc );
+lapack_int LAPACKE_dormhr( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int ilo,
+ lapack_int ihi, const double* a, lapack_int lda,
+ const double* tau, double* c, lapack_int ldc );
+
+lapack_int LAPACKE_sormlq( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const float* a, lapack_int lda, const float* tau,
+ float* c, lapack_int ldc );
+lapack_int LAPACKE_dormlq( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const double* a, lapack_int lda, const double* tau,
+ double* c, lapack_int ldc );
+
+lapack_int LAPACKE_sormql( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const float* a, lapack_int lda, const float* tau,
+ float* c, lapack_int ldc );
+lapack_int LAPACKE_dormql( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const double* a, lapack_int lda, const double* tau,
+ double* c, lapack_int ldc );
+
+lapack_int LAPACKE_sormqr( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const float* a, lapack_int lda, const float* tau,
+ float* c, lapack_int ldc );
+lapack_int LAPACKE_dormqr( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const double* a, lapack_int lda, const double* tau,
+ double* c, lapack_int ldc );
+
+lapack_int LAPACKE_sormrq( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const float* a, lapack_int lda, const float* tau,
+ float* c, lapack_int ldc );
+lapack_int LAPACKE_dormrq( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const double* a, lapack_int lda, const double* tau,
+ double* c, lapack_int ldc );
+
+lapack_int LAPACKE_sormrz( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int l, const float* a, lapack_int lda,
+ const float* tau, float* c, lapack_int ldc );
+lapack_int LAPACKE_dormrz( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int l, const double* a, lapack_int lda,
+ const double* tau, double* c, lapack_int ldc );
+
+lapack_int LAPACKE_sormtr( int matrix_order, char side, char uplo, char trans,
+ lapack_int m, lapack_int n, const float* a,
+ lapack_int lda, const float* tau, float* c,
+ lapack_int ldc );
+lapack_int LAPACKE_dormtr( int matrix_order, char side, char uplo, char trans,
+ lapack_int m, lapack_int n, const double* a,
+ lapack_int lda, const double* tau, double* c,
+ lapack_int ldc );
+
+lapack_int LAPACKE_spbcon( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, const float* ab, lapack_int ldab,
+ float anorm, float* rcond );
+lapack_int LAPACKE_dpbcon( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, const double* ab, lapack_int ldab,
+ double anorm, double* rcond );
+lapack_int LAPACKE_cpbcon( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, const lapack_complex_float* ab,
+ lapack_int ldab, float anorm, float* rcond );
+lapack_int LAPACKE_zpbcon( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, const lapack_complex_double* ab,
+ lapack_int ldab, double anorm, double* rcond );
+
+lapack_int LAPACKE_spbequ( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, const float* ab, lapack_int ldab,
+ float* s, float* scond, float* amax );
+lapack_int LAPACKE_dpbequ( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, const double* ab, lapack_int ldab,
+ double* s, double* scond, double* amax );
+lapack_int LAPACKE_cpbequ( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, const lapack_complex_float* ab,
+ lapack_int ldab, float* s, float* scond,
+ float* amax );
+lapack_int LAPACKE_zpbequ( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, const lapack_complex_double* ab,
+ lapack_int ldab, double* s, double* scond,
+ double* amax );
+
+lapack_int LAPACKE_spbrfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs, const float* ab,
+ lapack_int ldab, const float* afb, lapack_int ldafb,
+ const float* b, lapack_int ldb, float* x,
+ lapack_int ldx, float* ferr, float* berr );
+lapack_int LAPACKE_dpbrfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs, const double* ab,
+ lapack_int ldab, const double* afb, lapack_int ldafb,
+ const double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* ferr, double* berr );
+lapack_int LAPACKE_cpbrfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs,
+ const lapack_complex_float* ab, lapack_int ldab,
+ const lapack_complex_float* afb, lapack_int ldafb,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx, float* ferr,
+ float* berr );
+lapack_int LAPACKE_zpbrfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs,
+ const lapack_complex_double* ab, lapack_int ldab,
+ const lapack_complex_double* afb, lapack_int ldafb,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr );
+
+lapack_int LAPACKE_spbstf( int matrix_order, char uplo, lapack_int n,
+ lapack_int kb, float* bb, lapack_int ldbb );
+lapack_int LAPACKE_dpbstf( int matrix_order, char uplo, lapack_int n,
+ lapack_int kb, double* bb, lapack_int ldbb );
+lapack_int LAPACKE_cpbstf( int matrix_order, char uplo, lapack_int n,
+ lapack_int kb, lapack_complex_float* bb,
+ lapack_int ldbb );
+lapack_int LAPACKE_zpbstf( int matrix_order, char uplo, lapack_int n,
+ lapack_int kb, lapack_complex_double* bb,
+ lapack_int ldbb );
+
+lapack_int LAPACKE_spbsv( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs, float* ab,
+ lapack_int ldab, float* b, lapack_int ldb );
+lapack_int LAPACKE_dpbsv( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs, double* ab,
+ lapack_int ldab, double* b, lapack_int ldb );
+lapack_int LAPACKE_cpbsv( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs,
+ lapack_complex_float* ab, lapack_int ldab,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zpbsv( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs,
+ lapack_complex_double* ab, lapack_int ldab,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_spbsvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs, float* ab,
+ lapack_int ldab, float* afb, lapack_int ldafb,
+ char* equed, float* s, float* b, lapack_int ldb,
+ float* x, lapack_int ldx, float* rcond, float* ferr,
+ float* berr );
+lapack_int LAPACKE_dpbsvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs, double* ab,
+ lapack_int ldab, double* afb, lapack_int ldafb,
+ char* equed, double* s, double* b, lapack_int ldb,
+ double* x, lapack_int ldx, double* rcond,
+ double* ferr, double* berr );
+lapack_int LAPACKE_cpbsvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs,
+ lapack_complex_float* ab, lapack_int ldab,
+ lapack_complex_float* afb, lapack_int ldafb,
+ char* equed, float* s, lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* rcond, float* ferr,
+ float* berr );
+lapack_int LAPACKE_zpbsvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs,
+ lapack_complex_double* ab, lapack_int ldab,
+ lapack_complex_double* afb, lapack_int ldafb,
+ char* equed, double* s, lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* x,
+ lapack_int ldx, double* rcond, double* ferr,
+ double* berr );
+
+lapack_int LAPACKE_spbtrf( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, float* ab, lapack_int ldab );
+lapack_int LAPACKE_dpbtrf( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, double* ab, lapack_int ldab );
+lapack_int LAPACKE_cpbtrf( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_complex_float* ab,
+ lapack_int ldab );
+lapack_int LAPACKE_zpbtrf( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_complex_double* ab,
+ lapack_int ldab );
+
+lapack_int LAPACKE_spbtrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs, const float* ab,
+ lapack_int ldab, float* b, lapack_int ldb );
+lapack_int LAPACKE_dpbtrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs, const double* ab,
+ lapack_int ldab, double* b, lapack_int ldb );
+lapack_int LAPACKE_cpbtrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs,
+ const lapack_complex_float* ab, lapack_int ldab,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zpbtrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs,
+ const lapack_complex_double* ab, lapack_int ldab,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_spftrf( int matrix_order, char transr, char uplo,
+ lapack_int n, float* a );
+lapack_int LAPACKE_dpftrf( int matrix_order, char transr, char uplo,
+ lapack_int n, double* a );
+lapack_int LAPACKE_cpftrf( int matrix_order, char transr, char uplo,
+ lapack_int n, lapack_complex_float* a );
+lapack_int LAPACKE_zpftrf( int matrix_order, char transr, char uplo,
+ lapack_int n, lapack_complex_double* a );
+
+lapack_int LAPACKE_spftri( int matrix_order, char transr, char uplo,
+ lapack_int n, float* a );
+lapack_int LAPACKE_dpftri( int matrix_order, char transr, char uplo,
+ lapack_int n, double* a );
+lapack_int LAPACKE_cpftri( int matrix_order, char transr, char uplo,
+ lapack_int n, lapack_complex_float* a );
+lapack_int LAPACKE_zpftri( int matrix_order, char transr, char uplo,
+ lapack_int n, lapack_complex_double* a );
+
+lapack_int LAPACKE_spftrs( int matrix_order, char transr, char uplo,
+ lapack_int n, lapack_int nrhs, const float* a,
+ float* b, lapack_int ldb );
+lapack_int LAPACKE_dpftrs( int matrix_order, char transr, char uplo,
+ lapack_int n, lapack_int nrhs, const double* a,
+ double* b, lapack_int ldb );
+lapack_int LAPACKE_cpftrs( int matrix_order, char transr, char uplo,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* a,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zpftrs( int matrix_order, char transr, char uplo,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* a,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_spocon( int matrix_order, char uplo, lapack_int n,
+ const float* a, lapack_int lda, float anorm,
+ float* rcond );
+lapack_int LAPACKE_dpocon( int matrix_order, char uplo, lapack_int n,
+ const double* a, lapack_int lda, double anorm,
+ double* rcond );
+lapack_int LAPACKE_cpocon( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ float anorm, float* rcond );
+lapack_int LAPACKE_zpocon( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ double anorm, double* rcond );
+
+lapack_int LAPACKE_spoequ( int matrix_order, lapack_int n, const float* a,
+ lapack_int lda, float* s, float* scond,
+ float* amax );
+lapack_int LAPACKE_dpoequ( int matrix_order, lapack_int n, const double* a,
+ lapack_int lda, double* s, double* scond,
+ double* amax );
+lapack_int LAPACKE_cpoequ( int matrix_order, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ float* s, float* scond, float* amax );
+lapack_int LAPACKE_zpoequ( int matrix_order, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ double* s, double* scond, double* amax );
+
+lapack_int LAPACKE_spoequb( int matrix_order, lapack_int n, const float* a,
+ lapack_int lda, float* s, float* scond,
+ float* amax );
+lapack_int LAPACKE_dpoequb( int matrix_order, lapack_int n, const double* a,
+ lapack_int lda, double* s, double* scond,
+ double* amax );
+lapack_int LAPACKE_cpoequb( int matrix_order, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ float* s, float* scond, float* amax );
+lapack_int LAPACKE_zpoequb( int matrix_order, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ double* s, double* scond, double* amax );
+
+lapack_int LAPACKE_sporfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* a, lapack_int lda,
+ const float* af, lapack_int ldaf, const float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* ferr, float* berr );
+lapack_int LAPACKE_dporfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* a, lapack_int lda,
+ const double* af, lapack_int ldaf, const double* b,
+ lapack_int ldb, double* x, lapack_int ldx,
+ double* ferr, double* berr );
+lapack_int LAPACKE_cporfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* af,
+ lapack_int ldaf, const lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* ferr, float* berr );
+lapack_int LAPACKE_zporfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, const lapack_complex_double* af,
+ lapack_int ldaf, const lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* x,
+ lapack_int ldx, double* ferr, double* berr );
+
+lapack_int LAPACKE_sporfsx( int matrix_order, char uplo, char equed,
+ lapack_int n, lapack_int nrhs, const float* a,
+ lapack_int lda, const float* af, lapack_int ldaf,
+ const float* s, const float* b, lapack_int ldb,
+ float* x, lapack_int ldx, float* rcond, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params );
+lapack_int LAPACKE_dporfsx( int matrix_order, char uplo, char equed,
+ lapack_int n, lapack_int nrhs, const double* a,
+ lapack_int lda, const double* af, lapack_int ldaf,
+ const double* s, const double* b, lapack_int ldb,
+ double* x, lapack_int ldx, double* rcond,
+ double* berr, lapack_int n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int nparams, double* params );
+lapack_int LAPACKE_cporfsx( int matrix_order, char uplo, char equed,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* af, lapack_int ldaf,
+ const float* s, const lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* rcond, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params );
+lapack_int LAPACKE_zporfsx( int matrix_order, char uplo, char equed,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* af, lapack_int ldaf,
+ const double* s, const lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* x,
+ lapack_int ldx, double* rcond, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params );
+
+lapack_int LAPACKE_sposv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, float* a, lapack_int lda, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dposv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, double* a, lapack_int lda, double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_cposv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zposv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dsposv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, double* a, lapack_int lda,
+ double* b, lapack_int ldb, double* x, lapack_int ldx,
+ lapack_int* iter );
+lapack_int LAPACKE_zcposv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* x,
+ lapack_int ldx, lapack_int* iter );
+
+lapack_int LAPACKE_sposvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int nrhs, float* a, lapack_int lda, float* af,
+ lapack_int ldaf, char* equed, float* s, float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr );
+lapack_int LAPACKE_dposvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int nrhs, double* a, lapack_int lda,
+ double* af, lapack_int ldaf, char* equed, double* s,
+ double* b, lapack_int ldb, double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr );
+lapack_int LAPACKE_cposvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* af,
+ lapack_int ldaf, char* equed, float* s,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr );
+lapack_int LAPACKE_zposvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* af,
+ lapack_int ldaf, char* equed, double* s,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr );
+
+lapack_int LAPACKE_sposvxx( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs, float* a,
+ lapack_int lda, float* af, lapack_int ldaf,
+ char* equed, float* s, float* b, lapack_int ldb,
+ float* x, lapack_int ldx, float* rcond,
+ float* rpvgrw, float* berr, lapack_int n_err_bnds,
+ float* err_bnds_norm, float* err_bnds_comp,
+ lapack_int nparams, float* params );
+lapack_int LAPACKE_dposvxx( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs, double* a,
+ lapack_int lda, double* af, lapack_int ldaf,
+ char* equed, double* s, double* b, lapack_int ldb,
+ double* x, lapack_int ldx, double* rcond,
+ double* rpvgrw, double* berr, lapack_int n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int nparams, double* params );
+lapack_int LAPACKE_cposvxx( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* af, lapack_int ldaf,
+ char* equed, float* s, lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* rcond, float* rpvgrw,
+ float* berr, lapack_int n_err_bnds,
+ float* err_bnds_norm, float* err_bnds_comp,
+ lapack_int nparams, float* params );
+lapack_int LAPACKE_zposvxx( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* af, lapack_int ldaf,
+ char* equed, double* s, lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* x,
+ lapack_int ldx, double* rcond, double* rpvgrw,
+ double* berr, lapack_int n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int nparams, double* params );
+
+lapack_int LAPACKE_spotrf( int matrix_order, char uplo, lapack_int n, float* a,
+ lapack_int lda );
+lapack_int LAPACKE_dpotrf( int matrix_order, char uplo, lapack_int n, double* a,
+ lapack_int lda );
+lapack_int LAPACKE_cpotrf( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda );
+lapack_int LAPACKE_zpotrf( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda );
+
+lapack_int LAPACKE_spotri( int matrix_order, char uplo, lapack_int n, float* a,
+ lapack_int lda );
+lapack_int LAPACKE_dpotri( int matrix_order, char uplo, lapack_int n, double* a,
+ lapack_int lda );
+lapack_int LAPACKE_cpotri( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda );
+lapack_int LAPACKE_zpotri( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda );
+
+lapack_int LAPACKE_spotrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* a, lapack_int lda,
+ float* b, lapack_int ldb );
+lapack_int LAPACKE_dpotrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* a, lapack_int lda,
+ double* b, lapack_int ldb );
+lapack_int LAPACKE_cpotrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zpotrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb );
+
+lapack_int LAPACKE_sppcon( int matrix_order, char uplo, lapack_int n,
+ const float* ap, float anorm, float* rcond );
+lapack_int LAPACKE_dppcon( int matrix_order, char uplo, lapack_int n,
+ const double* ap, double anorm, double* rcond );
+lapack_int LAPACKE_cppcon( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* ap, float anorm,
+ float* rcond );
+lapack_int LAPACKE_zppcon( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* ap, double anorm,
+ double* rcond );
+
+lapack_int LAPACKE_sppequ( int matrix_order, char uplo, lapack_int n,
+ const float* ap, float* s, float* scond,
+ float* amax );
+lapack_int LAPACKE_dppequ( int matrix_order, char uplo, lapack_int n,
+ const double* ap, double* s, double* scond,
+ double* amax );
+lapack_int LAPACKE_cppequ( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* ap, float* s,
+ float* scond, float* amax );
+lapack_int LAPACKE_zppequ( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* ap, double* s,
+ double* scond, double* amax );
+
+lapack_int LAPACKE_spprfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* ap, const float* afp,
+ const float* b, lapack_int ldb, float* x,
+ lapack_int ldx, float* ferr, float* berr );
+lapack_int LAPACKE_dpprfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* ap, const double* afp,
+ const double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* ferr, double* berr );
+lapack_int LAPACKE_cpprfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* ap,
+ const lapack_complex_float* afp,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx, float* ferr,
+ float* berr );
+lapack_int LAPACKE_zpprfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* ap,
+ const lapack_complex_double* afp,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr );
+
+lapack_int LAPACKE_sppsv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, float* ap, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dppsv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, double* ap, double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_cppsv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_float* ap,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zppsv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* ap,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_sppsvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int nrhs, float* ap, float* afp, char* equed,
+ float* s, float* b, lapack_int ldb, float* x,
+ lapack_int ldx, float* rcond, float* ferr,
+ float* berr );
+lapack_int LAPACKE_dppsvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int nrhs, double* ap, double* afp,
+ char* equed, double* s, double* b, lapack_int ldb,
+ double* x, lapack_int ldx, double* rcond,
+ double* ferr, double* berr );
+lapack_int LAPACKE_cppsvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_float* ap,
+ lapack_complex_float* afp, char* equed, float* s,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr );
+lapack_int LAPACKE_zppsvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* ap,
+ lapack_complex_double* afp, char* equed, double* s,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr );
+
+lapack_int LAPACKE_spptrf( int matrix_order, char uplo, lapack_int n,
+ float* ap );
+lapack_int LAPACKE_dpptrf( int matrix_order, char uplo, lapack_int n,
+ double* ap );
+lapack_int LAPACKE_cpptrf( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* ap );
+lapack_int LAPACKE_zpptrf( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* ap );
+
+lapack_int LAPACKE_spptri( int matrix_order, char uplo, lapack_int n,
+ float* ap );
+lapack_int LAPACKE_dpptri( int matrix_order, char uplo, lapack_int n,
+ double* ap );
+lapack_int LAPACKE_cpptri( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* ap );
+lapack_int LAPACKE_zpptri( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* ap );
+
+lapack_int LAPACKE_spptrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* ap, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dpptrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* ap, double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_cpptrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* ap,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zpptrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* ap,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_spstrf( int matrix_order, char uplo, lapack_int n, float* a,
+ lapack_int lda, lapack_int* piv, lapack_int* rank,
+ float tol );
+lapack_int LAPACKE_dpstrf( int matrix_order, char uplo, lapack_int n, double* a,
+ lapack_int lda, lapack_int* piv, lapack_int* rank,
+ double tol );
+lapack_int LAPACKE_cpstrf( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* piv, lapack_int* rank, float tol );
+lapack_int LAPACKE_zpstrf( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* piv, lapack_int* rank, double tol );
+
+lapack_int LAPACKE_sptcon( lapack_int n, const float* d, const float* e,
+ float anorm, float* rcond );
+lapack_int LAPACKE_dptcon( lapack_int n, const double* d, const double* e,
+ double anorm, double* rcond );
+lapack_int LAPACKE_cptcon( lapack_int n, const float* d,
+ const lapack_complex_float* e, float anorm,
+ float* rcond );
+lapack_int LAPACKE_zptcon( lapack_int n, const double* d,
+ const lapack_complex_double* e, double anorm,
+ double* rcond );
+
+lapack_int LAPACKE_spteqr( int matrix_order, char compz, lapack_int n, float* d,
+ float* e, float* z, lapack_int ldz );
+lapack_int LAPACKE_dpteqr( int matrix_order, char compz, lapack_int n,
+ double* d, double* e, double* z, lapack_int ldz );
+lapack_int LAPACKE_cpteqr( int matrix_order, char compz, lapack_int n, float* d,
+ float* e, lapack_complex_float* z, lapack_int ldz );
+lapack_int LAPACKE_zpteqr( int matrix_order, char compz, lapack_int n,
+ double* d, double* e, lapack_complex_double* z,
+ lapack_int ldz );
+
+lapack_int LAPACKE_sptrfs( int matrix_order, lapack_int n, lapack_int nrhs,
+ const float* d, const float* e, const float* df,
+ const float* ef, const float* b, lapack_int ldb,
+ float* x, lapack_int ldx, float* ferr, float* berr );
+lapack_int LAPACKE_dptrfs( int matrix_order, lapack_int n, lapack_int nrhs,
+ const double* d, const double* e, const double* df,
+ const double* ef, const double* b, lapack_int ldb,
+ double* x, lapack_int ldx, double* ferr,
+ double* berr );
+lapack_int LAPACKE_cptrfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* d,
+ const lapack_complex_float* e, const float* df,
+ const lapack_complex_float* ef,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx, float* ferr,
+ float* berr );
+lapack_int LAPACKE_zptrfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* d,
+ const lapack_complex_double* e, const double* df,
+ const lapack_complex_double* ef,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr );
+
+lapack_int LAPACKE_sptsv( int matrix_order, lapack_int n, lapack_int nrhs,
+ float* d, float* e, float* b, lapack_int ldb );
+lapack_int LAPACKE_dptsv( int matrix_order, lapack_int n, lapack_int nrhs,
+ double* d, double* e, double* b, lapack_int ldb );
+lapack_int LAPACKE_cptsv( int matrix_order, lapack_int n, lapack_int nrhs,
+ float* d, lapack_complex_float* e,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zptsv( int matrix_order, lapack_int n, lapack_int nrhs,
+ double* d, lapack_complex_double* e,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_sptsvx( int matrix_order, char fact, lapack_int n,
+ lapack_int nrhs, const float* d, const float* e,
+ float* df, float* ef, const float* b, lapack_int ldb,
+ float* x, lapack_int ldx, float* rcond, float* ferr,
+ float* berr );
+lapack_int LAPACKE_dptsvx( int matrix_order, char fact, lapack_int n,
+ lapack_int nrhs, const double* d, const double* e,
+ double* df, double* ef, const double* b,
+ lapack_int ldb, double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr );
+lapack_int LAPACKE_cptsvx( int matrix_order, char fact, lapack_int n,
+ lapack_int nrhs, const float* d,
+ const lapack_complex_float* e, float* df,
+ lapack_complex_float* ef,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr );
+lapack_int LAPACKE_zptsvx( int matrix_order, char fact, lapack_int n,
+ lapack_int nrhs, const double* d,
+ const lapack_complex_double* e, double* df,
+ lapack_complex_double* ef,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr );
+
+lapack_int LAPACKE_spttrf( lapack_int n, float* d, float* e );
+lapack_int LAPACKE_dpttrf( lapack_int n, double* d, double* e );
+lapack_int LAPACKE_cpttrf( lapack_int n, float* d, lapack_complex_float* e );
+lapack_int LAPACKE_zpttrf( lapack_int n, double* d, lapack_complex_double* e );
+
+lapack_int LAPACKE_spttrs( int matrix_order, lapack_int n, lapack_int nrhs,
+ const float* d, const float* e, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dpttrs( int matrix_order, lapack_int n, lapack_int nrhs,
+ const double* d, const double* e, double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_cpttrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* d,
+ const lapack_complex_float* e,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zpttrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* d,
+ const lapack_complex_double* e,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_ssbev( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_int kd, float* ab, lapack_int ldab, float* w,
+ float* z, lapack_int ldz );
+lapack_int LAPACKE_dsbev( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_int kd, double* ab, lapack_int ldab, double* w,
+ double* z, lapack_int ldz );
+
+lapack_int LAPACKE_ssbevd( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_int kd, float* ab, lapack_int ldab, float* w,
+ float* z, lapack_int ldz );
+lapack_int LAPACKE_dsbevd( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_int kd, double* ab, lapack_int ldab,
+ double* w, double* z, lapack_int ldz );
+
+lapack_int LAPACKE_ssbevx( int matrix_order, char jobz, char range, char uplo,
+ lapack_int n, lapack_int kd, float* ab,
+ lapack_int ldab, float* q, lapack_int ldq, float vl,
+ float vu, lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w, float* z, lapack_int ldz,
+ lapack_int* ifail );
+lapack_int LAPACKE_dsbevx( int matrix_order, char jobz, char range, char uplo,
+ lapack_int n, lapack_int kd, double* ab,
+ lapack_int ldab, double* q, lapack_int ldq,
+ double vl, double vu, lapack_int il, lapack_int iu,
+ double abstol, lapack_int* m, double* w, double* z,
+ lapack_int ldz, lapack_int* ifail );
+
+lapack_int LAPACKE_ssbgst( int matrix_order, char vect, char uplo, lapack_int n,
+ lapack_int ka, lapack_int kb, float* ab,
+ lapack_int ldab, const float* bb, lapack_int ldbb,
+ float* x, lapack_int ldx );
+lapack_int LAPACKE_dsbgst( int matrix_order, char vect, char uplo, lapack_int n,
+ lapack_int ka, lapack_int kb, double* ab,
+ lapack_int ldab, const double* bb, lapack_int ldbb,
+ double* x, lapack_int ldx );
+
+lapack_int LAPACKE_ssbgv( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_int ka, lapack_int kb, float* ab,
+ lapack_int ldab, float* bb, lapack_int ldbb, float* w,
+ float* z, lapack_int ldz );
+lapack_int LAPACKE_dsbgv( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_int ka, lapack_int kb, double* ab,
+ lapack_int ldab, double* bb, lapack_int ldbb,
+ double* w, double* z, lapack_int ldz );
+
+lapack_int LAPACKE_ssbgvd( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_int ka, lapack_int kb, float* ab,
+ lapack_int ldab, float* bb, lapack_int ldbb,
+ float* w, float* z, lapack_int ldz );
+lapack_int LAPACKE_dsbgvd( int matrix_order, char jobz, char uplo, lapack_int n,
+ lapack_int ka, lapack_int kb, double* ab,
+ lapack_int ldab, double* bb, lapack_int ldbb,
+ double* w, double* z, lapack_int ldz );
+
+lapack_int LAPACKE_ssbgvx( int matrix_order, char jobz, char range, char uplo,
+ lapack_int n, lapack_int ka, lapack_int kb,
+ float* ab, lapack_int ldab, float* bb,
+ lapack_int ldbb, float* q, lapack_int ldq, float vl,
+ float vu, lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w, float* z, lapack_int ldz,
+ lapack_int* ifail );
+lapack_int LAPACKE_dsbgvx( int matrix_order, char jobz, char range, char uplo,
+ lapack_int n, lapack_int ka, lapack_int kb,
+ double* ab, lapack_int ldab, double* bb,
+ lapack_int ldbb, double* q, lapack_int ldq,
+ double vl, double vu, lapack_int il, lapack_int iu,
+ double abstol, lapack_int* m, double* w, double* z,
+ lapack_int ldz, lapack_int* ifail );
+
+lapack_int LAPACKE_ssbtrd( int matrix_order, char vect, char uplo, lapack_int n,
+ lapack_int kd, float* ab, lapack_int ldab, float* d,
+ float* e, float* q, lapack_int ldq );
+lapack_int LAPACKE_dsbtrd( int matrix_order, char vect, char uplo, lapack_int n,
+ lapack_int kd, double* ab, lapack_int ldab,
+ double* d, double* e, double* q, lapack_int ldq );
+
+lapack_int LAPACKE_ssfrk( int matrix_order, char transr, char uplo, char trans,
+ lapack_int n, lapack_int k, float alpha,
+ const float* a, lapack_int lda, float beta,
+ float* c );
+lapack_int LAPACKE_dsfrk( int matrix_order, char transr, char uplo, char trans,
+ lapack_int n, lapack_int k, double alpha,
+ const double* a, lapack_int lda, double beta,
+ double* c );
+
+lapack_int LAPACKE_sspcon( int matrix_order, char uplo, lapack_int n,
+ const float* ap, const lapack_int* ipiv, float anorm,
+ float* rcond );
+lapack_int LAPACKE_dspcon( int matrix_order, char uplo, lapack_int n,
+ const double* ap, const lapack_int* ipiv,
+ double anorm, double* rcond );
+lapack_int LAPACKE_cspcon( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* ap,
+ const lapack_int* ipiv, float anorm, float* rcond );
+lapack_int LAPACKE_zspcon( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* ap,
+ const lapack_int* ipiv, double anorm,
+ double* rcond );
+
+lapack_int LAPACKE_sspev( int matrix_order, char jobz, char uplo, lapack_int n,
+ float* ap, float* w, float* z, lapack_int ldz );
+lapack_int LAPACKE_dspev( int matrix_order, char jobz, char uplo, lapack_int n,
+ double* ap, double* w, double* z, lapack_int ldz );
+
+lapack_int LAPACKE_sspevd( int matrix_order, char jobz, char uplo, lapack_int n,
+ float* ap, float* w, float* z, lapack_int ldz );
+lapack_int LAPACKE_dspevd( int matrix_order, char jobz, char uplo, lapack_int n,
+ double* ap, double* w, double* z, lapack_int ldz );
+
+lapack_int LAPACKE_sspevx( int matrix_order, char jobz, char range, char uplo,
+ lapack_int n, float* ap, float vl, float vu,
+ lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w, float* z, lapack_int ldz,
+ lapack_int* ifail );
+lapack_int LAPACKE_dspevx( int matrix_order, char jobz, char range, char uplo,
+ lapack_int n, double* ap, double vl, double vu,
+ lapack_int il, lapack_int iu, double abstol,
+ lapack_int* m, double* w, double* z, lapack_int ldz,
+ lapack_int* ifail );
+
+lapack_int LAPACKE_sspgst( int matrix_order, lapack_int itype, char uplo,
+ lapack_int n, float* ap, const float* bp );
+lapack_int LAPACKE_dspgst( int matrix_order, lapack_int itype, char uplo,
+ lapack_int n, double* ap, const double* bp );
+
+lapack_int LAPACKE_sspgv( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, float* ap, float* bp,
+ float* w, float* z, lapack_int ldz );
+lapack_int LAPACKE_dspgv( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, double* ap, double* bp,
+ double* w, double* z, lapack_int ldz );
+
+lapack_int LAPACKE_sspgvd( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, float* ap, float* bp,
+ float* w, float* z, lapack_int ldz );
+lapack_int LAPACKE_dspgvd( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, double* ap, double* bp,
+ double* w, double* z, lapack_int ldz );
+
+lapack_int LAPACKE_sspgvx( int matrix_order, lapack_int itype, char jobz,
+ char range, char uplo, lapack_int n, float* ap,
+ float* bp, float vl, float vu, lapack_int il,
+ lapack_int iu, float abstol, lapack_int* m, float* w,
+ float* z, lapack_int ldz, lapack_int* ifail );
+lapack_int LAPACKE_dspgvx( int matrix_order, lapack_int itype, char jobz,
+ char range, char uplo, lapack_int n, double* ap,
+ double* bp, double vl, double vu, lapack_int il,
+ lapack_int iu, double abstol, lapack_int* m,
+ double* w, double* z, lapack_int ldz,
+ lapack_int* ifail );
+
+lapack_int LAPACKE_ssprfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* ap, const float* afp,
+ const lapack_int* ipiv, const float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* ferr, float* berr );
+lapack_int LAPACKE_dsprfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* ap, const double* afp,
+ const lapack_int* ipiv, const double* b,
+ lapack_int ldb, double* x, lapack_int ldx,
+ double* ferr, double* berr );
+lapack_int LAPACKE_csprfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* ap,
+ const lapack_complex_float* afp,
+ const lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx, float* ferr,
+ float* berr );
+lapack_int LAPACKE_zsprfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* ap,
+ const lapack_complex_double* afp,
+ const lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr );
+
+lapack_int LAPACKE_sspsv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, float* ap, lapack_int* ipiv,
+ float* b, lapack_int ldb );
+lapack_int LAPACKE_dspsv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, double* ap, lapack_int* ipiv,
+ double* b, lapack_int ldb );
+lapack_int LAPACKE_cspsv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_float* ap,
+ lapack_int* ipiv, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zspsv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* ap,
+ lapack_int* ipiv, lapack_complex_double* b,
+ lapack_int ldb );
+
+lapack_int LAPACKE_sspsvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int nrhs, const float* ap, float* afp,
+ lapack_int* ipiv, const float* b, lapack_int ldb,
+ float* x, lapack_int ldx, float* rcond, float* ferr,
+ float* berr );
+lapack_int LAPACKE_dspsvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int nrhs, const double* ap, double* afp,
+ lapack_int* ipiv, const double* b, lapack_int ldb,
+ double* x, lapack_int ldx, double* rcond,
+ double* ferr, double* berr );
+lapack_int LAPACKE_cspsvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* ap,
+ lapack_complex_float* afp, lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr );
+lapack_int LAPACKE_zspsvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* ap,
+ lapack_complex_double* afp, lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr );
+
+lapack_int LAPACKE_ssptrd( int matrix_order, char uplo, lapack_int n, float* ap,
+ float* d, float* e, float* tau );
+lapack_int LAPACKE_dsptrd( int matrix_order, char uplo, lapack_int n,
+ double* ap, double* d, double* e, double* tau );
+
+lapack_int LAPACKE_ssptrf( int matrix_order, char uplo, lapack_int n, float* ap,
+ lapack_int* ipiv );
+lapack_int LAPACKE_dsptrf( int matrix_order, char uplo, lapack_int n,
+ double* ap, lapack_int* ipiv );
+lapack_int LAPACKE_csptrf( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* ap, lapack_int* ipiv );
+lapack_int LAPACKE_zsptrf( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* ap, lapack_int* ipiv );
+
+lapack_int LAPACKE_ssptri( int matrix_order, char uplo, lapack_int n, float* ap,
+ const lapack_int* ipiv );
+lapack_int LAPACKE_dsptri( int matrix_order, char uplo, lapack_int n,
+ double* ap, const lapack_int* ipiv );
+lapack_int LAPACKE_csptri( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* ap, const lapack_int* ipiv );
+lapack_int LAPACKE_zsptri( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* ap, const lapack_int* ipiv );
+
+lapack_int LAPACKE_ssptrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* ap,
+ const lapack_int* ipiv, float* b, lapack_int ldb );
+lapack_int LAPACKE_dsptrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* ap,
+ const lapack_int* ipiv, double* b, lapack_int ldb );
+lapack_int LAPACKE_csptrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* ap,
+ const lapack_int* ipiv, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zsptrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* ap,
+ const lapack_int* ipiv, lapack_complex_double* b,
+ lapack_int ldb );
+
+lapack_int LAPACKE_sstebz( char range, char order, lapack_int n, float vl,
+ float vu, lapack_int il, lapack_int iu, float abstol,
+ const float* d, const float* e, lapack_int* m,
+ lapack_int* nsplit, float* w, lapack_int* iblock,
+ lapack_int* isplit );
+lapack_int LAPACKE_dstebz( char range, char order, lapack_int n, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ double abstol, const double* d, const double* e,
+ lapack_int* m, lapack_int* nsplit, double* w,
+ lapack_int* iblock, lapack_int* isplit );
+
+lapack_int LAPACKE_sstedc( int matrix_order, char compz, lapack_int n, float* d,
+ float* e, float* z, lapack_int ldz );
+lapack_int LAPACKE_dstedc( int matrix_order, char compz, lapack_int n,
+ double* d, double* e, double* z, lapack_int ldz );
+lapack_int LAPACKE_cstedc( int matrix_order, char compz, lapack_int n, float* d,
+ float* e, lapack_complex_float* z, lapack_int ldz );
+lapack_int LAPACKE_zstedc( int matrix_order, char compz, lapack_int n,
+ double* d, double* e, lapack_complex_double* z,
+ lapack_int ldz );
+
+lapack_int LAPACKE_sstegr( int matrix_order, char jobz, char range,
+ lapack_int n, float* d, float* e, float vl, float vu,
+ lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w, float* z, lapack_int ldz,
+ lapack_int* isuppz );
+lapack_int LAPACKE_dstegr( int matrix_order, char jobz, char range,
+ lapack_int n, double* d, double* e, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ double abstol, lapack_int* m, double* w, double* z,
+ lapack_int ldz, lapack_int* isuppz );
+lapack_int LAPACKE_cstegr( int matrix_order, char jobz, char range,
+ lapack_int n, float* d, float* e, float vl, float vu,
+ lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w, lapack_complex_float* z,
+ lapack_int ldz, lapack_int* isuppz );
+lapack_int LAPACKE_zstegr( int matrix_order, char jobz, char range,
+ lapack_int n, double* d, double* e, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ double abstol, lapack_int* m, double* w,
+ lapack_complex_double* z, lapack_int ldz,
+ lapack_int* isuppz );
+
+lapack_int LAPACKE_sstein( int matrix_order, lapack_int n, const float* d,
+ const float* e, lapack_int m, const float* w,
+ const lapack_int* iblock, const lapack_int* isplit,
+ float* z, lapack_int ldz, lapack_int* ifailv );
+lapack_int LAPACKE_dstein( int matrix_order, lapack_int n, const double* d,
+ const double* e, lapack_int m, const double* w,
+ const lapack_int* iblock, const lapack_int* isplit,
+ double* z, lapack_int ldz, lapack_int* ifailv );
+lapack_int LAPACKE_cstein( int matrix_order, lapack_int n, const float* d,
+ const float* e, lapack_int m, const float* w,
+ const lapack_int* iblock, const lapack_int* isplit,
+ lapack_complex_float* z, lapack_int ldz,
+ lapack_int* ifailv );
+lapack_int LAPACKE_zstein( int matrix_order, lapack_int n, const double* d,
+ const double* e, lapack_int m, const double* w,
+ const lapack_int* iblock, const lapack_int* isplit,
+ lapack_complex_double* z, lapack_int ldz,
+ lapack_int* ifailv );
+
+lapack_int LAPACKE_sstemr( int matrix_order, char jobz, char range,
+ lapack_int n, float* d, float* e, float vl, float vu,
+ lapack_int il, lapack_int iu, lapack_int* m,
+ float* w, float* z, lapack_int ldz, lapack_int nzc,
+ lapack_int* isuppz, lapack_logical* tryrac );
+lapack_int LAPACKE_dstemr( int matrix_order, char jobz, char range,
+ lapack_int n, double* d, double* e, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ lapack_int* m, double* w, double* z, lapack_int ldz,
+ lapack_int nzc, lapack_int* isuppz,
+ lapack_logical* tryrac );
+lapack_int LAPACKE_cstemr( int matrix_order, char jobz, char range,
+ lapack_int n, float* d, float* e, float vl, float vu,
+ lapack_int il, lapack_int iu, lapack_int* m,
+ float* w, lapack_complex_float* z, lapack_int ldz,
+ lapack_int nzc, lapack_int* isuppz,
+ lapack_logical* tryrac );
+lapack_int LAPACKE_zstemr( int matrix_order, char jobz, char range,
+ lapack_int n, double* d, double* e, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ lapack_int* m, double* w, lapack_complex_double* z,
+ lapack_int ldz, lapack_int nzc, lapack_int* isuppz,
+ lapack_logical* tryrac );
+
+lapack_int LAPACKE_ssteqr( int matrix_order, char compz, lapack_int n, float* d,
+ float* e, float* z, lapack_int ldz );
+lapack_int LAPACKE_dsteqr( int matrix_order, char compz, lapack_int n,
+ double* d, double* e, double* z, lapack_int ldz );
+lapack_int LAPACKE_csteqr( int matrix_order, char compz, lapack_int n, float* d,
+ float* e, lapack_complex_float* z, lapack_int ldz );
+lapack_int LAPACKE_zsteqr( int matrix_order, char compz, lapack_int n,
+ double* d, double* e, lapack_complex_double* z,
+ lapack_int ldz );
+
+lapack_int LAPACKE_ssterf( lapack_int n, float* d, float* e );
+lapack_int LAPACKE_dsterf( lapack_int n, double* d, double* e );
+
+lapack_int LAPACKE_sstev( int matrix_order, char jobz, lapack_int n, float* d,
+ float* e, float* z, lapack_int ldz );
+lapack_int LAPACKE_dstev( int matrix_order, char jobz, lapack_int n, double* d,
+ double* e, double* z, lapack_int ldz );
+
+lapack_int LAPACKE_sstevd( int matrix_order, char jobz, lapack_int n, float* d,
+ float* e, float* z, lapack_int ldz );
+lapack_int LAPACKE_dstevd( int matrix_order, char jobz, lapack_int n, double* d,
+ double* e, double* z, lapack_int ldz );
+
+lapack_int LAPACKE_sstevr( int matrix_order, char jobz, char range,
+ lapack_int n, float* d, float* e, float vl, float vu,
+ lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w, float* z, lapack_int ldz,
+ lapack_int* isuppz );
+lapack_int LAPACKE_dstevr( int matrix_order, char jobz, char range,
+ lapack_int n, double* d, double* e, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ double abstol, lapack_int* m, double* w, double* z,
+ lapack_int ldz, lapack_int* isuppz );
+
+lapack_int LAPACKE_sstevx( int matrix_order, char jobz, char range,
+ lapack_int n, float* d, float* e, float vl, float vu,
+ lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w, float* z, lapack_int ldz,
+ lapack_int* ifail );
+lapack_int LAPACKE_dstevx( int matrix_order, char jobz, char range,
+ lapack_int n, double* d, double* e, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ double abstol, lapack_int* m, double* w, double* z,
+ lapack_int ldz, lapack_int* ifail );
+
+lapack_int LAPACKE_ssycon( int matrix_order, char uplo, lapack_int n,
+ const float* a, lapack_int lda,
+ const lapack_int* ipiv, float anorm, float* rcond );
+lapack_int LAPACKE_dsycon( int matrix_order, char uplo, lapack_int n,
+ const double* a, lapack_int lda,
+ const lapack_int* ipiv, double anorm,
+ double* rcond );
+lapack_int LAPACKE_csycon( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_int* ipiv, float anorm, float* rcond );
+lapack_int LAPACKE_zsycon( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_int* ipiv, double anorm,
+ double* rcond );
+
+lapack_int LAPACKE_ssyequb( int matrix_order, char uplo, lapack_int n,
+ const float* a, lapack_int lda, float* s,
+ float* scond, float* amax );
+lapack_int LAPACKE_dsyequb( int matrix_order, char uplo, lapack_int n,
+ const double* a, lapack_int lda, double* s,
+ double* scond, double* amax );
+lapack_int LAPACKE_csyequb( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ float* s, float* scond, float* amax );
+lapack_int LAPACKE_zsyequb( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ double* s, double* scond, double* amax );
+
+lapack_int LAPACKE_ssyev( int matrix_order, char jobz, char uplo, lapack_int n,
+ float* a, lapack_int lda, float* w );
+lapack_int LAPACKE_dsyev( int matrix_order, char jobz, char uplo, lapack_int n,
+ double* a, lapack_int lda, double* w );
+
+lapack_int LAPACKE_ssyevd( int matrix_order, char jobz, char uplo, lapack_int n,
+ float* a, lapack_int lda, float* w );
+lapack_int LAPACKE_dsyevd( int matrix_order, char jobz, char uplo, lapack_int n,
+ double* a, lapack_int lda, double* w );
+
+lapack_int LAPACKE_ssyevr( int matrix_order, char jobz, char range, char uplo,
+ lapack_int n, float* a, lapack_int lda, float vl,
+ float vu, lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w, float* z, lapack_int ldz,
+ lapack_int* isuppz );
+lapack_int LAPACKE_dsyevr( int matrix_order, char jobz, char range, char uplo,
+ lapack_int n, double* a, lapack_int lda, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ double abstol, lapack_int* m, double* w, double* z,
+ lapack_int ldz, lapack_int* isuppz );
+
+lapack_int LAPACKE_ssyevx( int matrix_order, char jobz, char range, char uplo,
+ lapack_int n, float* a, lapack_int lda, float vl,
+ float vu, lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w, float* z, lapack_int ldz,
+ lapack_int* ifail );
+lapack_int LAPACKE_dsyevx( int matrix_order, char jobz, char range, char uplo,
+ lapack_int n, double* a, lapack_int lda, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ double abstol, lapack_int* m, double* w, double* z,
+ lapack_int ldz, lapack_int* ifail );
+
+lapack_int LAPACKE_ssygst( int matrix_order, lapack_int itype, char uplo,
+ lapack_int n, float* a, lapack_int lda,
+ const float* b, lapack_int ldb );
+lapack_int LAPACKE_dsygst( int matrix_order, lapack_int itype, char uplo,
+ lapack_int n, double* a, lapack_int lda,
+ const double* b, lapack_int ldb );
+
+lapack_int LAPACKE_ssygv( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, float* a, lapack_int lda,
+ float* b, lapack_int ldb, float* w );
+lapack_int LAPACKE_dsygv( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, double* a, lapack_int lda,
+ double* b, lapack_int ldb, double* w );
+
+lapack_int LAPACKE_ssygvd( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, float* a, lapack_int lda,
+ float* b, lapack_int ldb, float* w );
+lapack_int LAPACKE_dsygvd( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, double* a, lapack_int lda,
+ double* b, lapack_int ldb, double* w );
+
+lapack_int LAPACKE_ssygvx( int matrix_order, lapack_int itype, char jobz,
+ char range, char uplo, lapack_int n, float* a,
+ lapack_int lda, float* b, lapack_int ldb, float vl,
+ float vu, lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w, float* z, lapack_int ldz,
+ lapack_int* ifail );
+lapack_int LAPACKE_dsygvx( int matrix_order, lapack_int itype, char jobz,
+ char range, char uplo, lapack_int n, double* a,
+ lapack_int lda, double* b, lapack_int ldb, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ double abstol, lapack_int* m, double* w, double* z,
+ lapack_int ldz, lapack_int* ifail );
+
+lapack_int LAPACKE_ssyrfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* a, lapack_int lda,
+ const float* af, lapack_int ldaf,
+ const lapack_int* ipiv, const float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* ferr, float* berr );
+lapack_int LAPACKE_dsyrfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* a, lapack_int lda,
+ const double* af, lapack_int ldaf,
+ const lapack_int* ipiv, const double* b,
+ lapack_int ldb, double* x, lapack_int ldx,
+ double* ferr, double* berr );
+lapack_int LAPACKE_csyrfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx, float* ferr,
+ float* berr );
+lapack_int LAPACKE_zsyrfs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, const lapack_complex_double* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr );
+
+lapack_int LAPACKE_ssyrfsx( int matrix_order, char uplo, char equed,
+ lapack_int n, lapack_int nrhs, const float* a,
+ lapack_int lda, const float* af, lapack_int ldaf,
+ const lapack_int* ipiv, const float* s,
+ const float* b, lapack_int ldb, float* x,
+ lapack_int ldx, float* rcond, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params );
+lapack_int LAPACKE_dsyrfsx( int matrix_order, char uplo, char equed,
+ lapack_int n, lapack_int nrhs, const double* a,
+ lapack_int lda, const double* af, lapack_int ldaf,
+ const lapack_int* ipiv, const double* s,
+ const double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* rcond, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params );
+lapack_int LAPACKE_csyrfsx( int matrix_order, char uplo, char equed,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* af, lapack_int ldaf,
+ const lapack_int* ipiv, const float* s,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* berr, lapack_int n_err_bnds,
+ float* err_bnds_norm, float* err_bnds_comp,
+ lapack_int nparams, float* params );
+lapack_int LAPACKE_zsyrfsx( int matrix_order, char uplo, char equed,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* af, lapack_int ldaf,
+ const lapack_int* ipiv, const double* s,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* berr, lapack_int n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int nparams, double* params );
+
+lapack_int LAPACKE_ssysv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, float* a, lapack_int lda,
+ lapack_int* ipiv, float* b, lapack_int ldb );
+lapack_int LAPACKE_dsysv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, double* a, lapack_int lda,
+ lapack_int* ipiv, double* b, lapack_int ldb );
+lapack_int LAPACKE_csysv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_float* a,
+ lapack_int lda, lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zsysv( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* a,
+ lapack_int lda, lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_ssysvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int nrhs, const float* a, lapack_int lda,
+ float* af, lapack_int ldaf, lapack_int* ipiv,
+ const float* b, lapack_int ldb, float* x,
+ lapack_int ldx, float* rcond, float* ferr,
+ float* berr );
+lapack_int LAPACKE_dsysvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int nrhs, const double* a, lapack_int lda,
+ double* af, lapack_int ldaf, lapack_int* ipiv,
+ const double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* rcond, double* ferr,
+ double* berr );
+lapack_int LAPACKE_csysvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* af,
+ lapack_int ldaf, lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr );
+lapack_int LAPACKE_zsysvx( int matrix_order, char fact, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* af,
+ lapack_int ldaf, lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr );
+
+lapack_int LAPACKE_ssysvxx( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs, float* a,
+ lapack_int lda, float* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, float* s, float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* rcond, float* rpvgrw, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params );
+lapack_int LAPACKE_dsysvxx( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs, double* a,
+ lapack_int lda, double* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, double* s, double* b,
+ lapack_int ldb, double* x, lapack_int ldx,
+ double* rcond, double* rpvgrw, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params );
+lapack_int LAPACKE_csysvxx( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, float* s,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* rpvgrw, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params );
+lapack_int LAPACKE_zsysvxx( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, double* s,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* rpvgrw, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params );
+
+lapack_int LAPACKE_ssytrd( int matrix_order, char uplo, lapack_int n, float* a,
+ lapack_int lda, float* d, float* e, float* tau );
+lapack_int LAPACKE_dsytrd( int matrix_order, char uplo, lapack_int n, double* a,
+ lapack_int lda, double* d, double* e, double* tau );
+
+lapack_int LAPACKE_ssytrf( int matrix_order, char uplo, lapack_int n, float* a,
+ lapack_int lda, lapack_int* ipiv );
+lapack_int LAPACKE_dsytrf( int matrix_order, char uplo, lapack_int n, double* a,
+ lapack_int lda, lapack_int* ipiv );
+lapack_int LAPACKE_csytrf( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* ipiv );
+lapack_int LAPACKE_zsytrf( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* ipiv );
+
+lapack_int LAPACKE_ssytri( int matrix_order, char uplo, lapack_int n, float* a,
+ lapack_int lda, const lapack_int* ipiv );
+lapack_int LAPACKE_dsytri( int matrix_order, char uplo, lapack_int n, double* a,
+ lapack_int lda, const lapack_int* ipiv );
+lapack_int LAPACKE_csytri( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ const lapack_int* ipiv );
+lapack_int LAPACKE_zsytri( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ const lapack_int* ipiv );
+
+lapack_int LAPACKE_ssytrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* a, lapack_int lda,
+ const lapack_int* ipiv, float* b, lapack_int ldb );
+lapack_int LAPACKE_dsytrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* a, lapack_int lda,
+ const lapack_int* ipiv, double* b, lapack_int ldb );
+lapack_int LAPACKE_csytrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zsytrs( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_stbcon( int matrix_order, char norm, char uplo, char diag,
+ lapack_int n, lapack_int kd, const float* ab,
+ lapack_int ldab, float* rcond );
+lapack_int LAPACKE_dtbcon( int matrix_order, char norm, char uplo, char diag,
+ lapack_int n, lapack_int kd, const double* ab,
+ lapack_int ldab, double* rcond );
+lapack_int LAPACKE_ctbcon( int matrix_order, char norm, char uplo, char diag,
+ lapack_int n, lapack_int kd,
+ const lapack_complex_float* ab, lapack_int ldab,
+ float* rcond );
+lapack_int LAPACKE_ztbcon( int matrix_order, char norm, char uplo, char diag,
+ lapack_int n, lapack_int kd,
+ const lapack_complex_double* ab, lapack_int ldab,
+ double* rcond );
+
+lapack_int LAPACKE_stbrfs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int kd, lapack_int nrhs,
+ const float* ab, lapack_int ldab, const float* b,
+ lapack_int ldb, const float* x, lapack_int ldx,
+ float* ferr, float* berr );
+lapack_int LAPACKE_dtbrfs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int kd, lapack_int nrhs,
+ const double* ab, lapack_int ldab, const double* b,
+ lapack_int ldb, const double* x, lapack_int ldx,
+ double* ferr, double* berr );
+lapack_int LAPACKE_ctbrfs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int kd, lapack_int nrhs,
+ const lapack_complex_float* ab, lapack_int ldab,
+ const lapack_complex_float* b, lapack_int ldb,
+ const lapack_complex_float* x, lapack_int ldx,
+ float* ferr, float* berr );
+lapack_int LAPACKE_ztbrfs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int kd, lapack_int nrhs,
+ const lapack_complex_double* ab, lapack_int ldab,
+ const lapack_complex_double* b, lapack_int ldb,
+ const lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr );
+
+lapack_int LAPACKE_stbtrs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int kd, lapack_int nrhs,
+ const float* ab, lapack_int ldab, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dtbtrs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int kd, lapack_int nrhs,
+ const double* ab, lapack_int ldab, double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_ctbtrs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int kd, lapack_int nrhs,
+ const lapack_complex_float* ab, lapack_int ldab,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_ztbtrs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int kd, lapack_int nrhs,
+ const lapack_complex_double* ab, lapack_int ldab,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_stfsm( int matrix_order, char transr, char side, char uplo,
+ char trans, char diag, lapack_int m, lapack_int n,
+ float alpha, const float* a, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dtfsm( int matrix_order, char transr, char side, char uplo,
+ char trans, char diag, lapack_int m, lapack_int n,
+ double alpha, const double* a, double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_ctfsm( int matrix_order, char transr, char side, char uplo,
+ char trans, char diag, lapack_int m, lapack_int n,
+ lapack_complex_float alpha,
+ const lapack_complex_float* a,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_ztfsm( int matrix_order, char transr, char side, char uplo,
+ char trans, char diag, lapack_int m, lapack_int n,
+ lapack_complex_double alpha,
+ const lapack_complex_double* a,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_stftri( int matrix_order, char transr, char uplo, char diag,
+ lapack_int n, float* a );
+lapack_int LAPACKE_dtftri( int matrix_order, char transr, char uplo, char diag,
+ lapack_int n, double* a );
+lapack_int LAPACKE_ctftri( int matrix_order, char transr, char uplo, char diag,
+ lapack_int n, lapack_complex_float* a );
+lapack_int LAPACKE_ztftri( int matrix_order, char transr, char uplo, char diag,
+ lapack_int n, lapack_complex_double* a );
+
+lapack_int LAPACKE_stfttp( int matrix_order, char transr, char uplo,
+ lapack_int n, const float* arf, float* ap );
+lapack_int LAPACKE_dtfttp( int matrix_order, char transr, char uplo,
+ lapack_int n, const double* arf, double* ap );
+lapack_int LAPACKE_ctfttp( int matrix_order, char transr, char uplo,
+ lapack_int n, const lapack_complex_float* arf,
+ lapack_complex_float* ap );
+lapack_int LAPACKE_ztfttp( int matrix_order, char transr, char uplo,
+ lapack_int n, const lapack_complex_double* arf,
+ lapack_complex_double* ap );
+
+lapack_int LAPACKE_stfttr( int matrix_order, char transr, char uplo,
+ lapack_int n, const float* arf, float* a,
+ lapack_int lda );
+lapack_int LAPACKE_dtfttr( int matrix_order, char transr, char uplo,
+ lapack_int n, const double* arf, double* a,
+ lapack_int lda );
+lapack_int LAPACKE_ctfttr( int matrix_order, char transr, char uplo,
+ lapack_int n, const lapack_complex_float* arf,
+ lapack_complex_float* a, lapack_int lda );
+lapack_int LAPACKE_ztfttr( int matrix_order, char transr, char uplo,
+ lapack_int n, const lapack_complex_double* arf,
+ lapack_complex_double* a, lapack_int lda );
+
+lapack_int LAPACKE_stgevc( int matrix_order, char side, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const float* s, lapack_int lds, const float* p,
+ lapack_int ldp, float* vl, lapack_int ldvl,
+ float* vr, lapack_int ldvr, lapack_int mm,
+ lapack_int* m );
+lapack_int LAPACKE_dtgevc( int matrix_order, char side, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const double* s, lapack_int lds, const double* p,
+ lapack_int ldp, double* vl, lapack_int ldvl,
+ double* vr, lapack_int ldvr, lapack_int mm,
+ lapack_int* m );
+lapack_int LAPACKE_ctgevc( int matrix_order, char side, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const lapack_complex_float* s, lapack_int lds,
+ const lapack_complex_float* p, lapack_int ldp,
+ lapack_complex_float* vl, lapack_int ldvl,
+ lapack_complex_float* vr, lapack_int ldvr,
+ lapack_int mm, lapack_int* m );
+lapack_int LAPACKE_ztgevc( int matrix_order, char side, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const lapack_complex_double* s, lapack_int lds,
+ const lapack_complex_double* p, lapack_int ldp,
+ lapack_complex_double* vl, lapack_int ldvl,
+ lapack_complex_double* vr, lapack_int ldvr,
+ lapack_int mm, lapack_int* m );
+
+lapack_int LAPACKE_stgexc( int matrix_order, lapack_logical wantq,
+ lapack_logical wantz, lapack_int n, float* a,
+ lapack_int lda, float* b, lapack_int ldb, float* q,
+ lapack_int ldq, float* z, lapack_int ldz,
+ lapack_int* ifst, lapack_int* ilst );
+lapack_int LAPACKE_dtgexc( int matrix_order, lapack_logical wantq,
+ lapack_logical wantz, lapack_int n, double* a,
+ lapack_int lda, double* b, lapack_int ldb, double* q,
+ lapack_int ldq, double* z, lapack_int ldz,
+ lapack_int* ifst, lapack_int* ilst );
+lapack_int LAPACKE_ctgexc( int matrix_order, lapack_logical wantq,
+ lapack_logical wantz, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* q, lapack_int ldq,
+ lapack_complex_float* z, lapack_int ldz,
+ lapack_int ifst, lapack_int ilst );
+lapack_int LAPACKE_ztgexc( int matrix_order, lapack_logical wantq,
+ lapack_logical wantz, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* q, lapack_int ldq,
+ lapack_complex_double* z, lapack_int ldz,
+ lapack_int ifst, lapack_int ilst );
+
+lapack_int LAPACKE_stgsen( int matrix_order, lapack_int ijob,
+ lapack_logical wantq, lapack_logical wantz,
+ const lapack_logical* select, lapack_int n, float* a,
+ lapack_int lda, float* b, lapack_int ldb,
+ float* alphar, float* alphai, float* beta, float* q,
+ lapack_int ldq, float* z, lapack_int ldz,
+ lapack_int* m, float* pl, float* pr, float* dif );
+lapack_int LAPACKE_dtgsen( int matrix_order, lapack_int ijob,
+ lapack_logical wantq, lapack_logical wantz,
+ const lapack_logical* select, lapack_int n,
+ double* a, lapack_int lda, double* b, lapack_int ldb,
+ double* alphar, double* alphai, double* beta,
+ double* q, lapack_int ldq, double* z, lapack_int ldz,
+ lapack_int* m, double* pl, double* pr, double* dif );
+lapack_int LAPACKE_ctgsen( int matrix_order, lapack_int ijob,
+ lapack_logical wantq, lapack_logical wantz,
+ const lapack_logical* select, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* alpha,
+ lapack_complex_float* beta, lapack_complex_float* q,
+ lapack_int ldq, lapack_complex_float* z,
+ lapack_int ldz, lapack_int* m, float* pl, float* pr,
+ float* dif );
+lapack_int LAPACKE_ztgsen( int matrix_order, lapack_int ijob,
+ lapack_logical wantq, lapack_logical wantz,
+ const lapack_logical* select, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* alpha,
+ lapack_complex_double* beta,
+ lapack_complex_double* q, lapack_int ldq,
+ lapack_complex_double* z, lapack_int ldz,
+ lapack_int* m, double* pl, double* pr, double* dif );
+
+lapack_int LAPACKE_stgsja( int matrix_order, char jobu, char jobv, char jobq,
+ lapack_int m, lapack_int p, lapack_int n,
+ lapack_int k, lapack_int l, float* a, lapack_int lda,
+ float* b, lapack_int ldb, float tola, float tolb,
+ float* alpha, float* beta, float* u, lapack_int ldu,
+ float* v, lapack_int ldv, float* q, lapack_int ldq,
+ lapack_int* ncycle );
+lapack_int LAPACKE_dtgsja( int matrix_order, char jobu, char jobv, char jobq,
+ lapack_int m, lapack_int p, lapack_int n,
+ lapack_int k, lapack_int l, double* a,
+ lapack_int lda, double* b, lapack_int ldb,
+ double tola, double tolb, double* alpha,
+ double* beta, double* u, lapack_int ldu, double* v,
+ lapack_int ldv, double* q, lapack_int ldq,
+ lapack_int* ncycle );
+lapack_int LAPACKE_ctgsja( int matrix_order, char jobu, char jobv, char jobq,
+ lapack_int m, lapack_int p, lapack_int n,
+ lapack_int k, lapack_int l, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb, float tola, float tolb, float* alpha,
+ float* beta, lapack_complex_float* u, lapack_int ldu,
+ lapack_complex_float* v, lapack_int ldv,
+ lapack_complex_float* q, lapack_int ldq,
+ lapack_int* ncycle );
+lapack_int LAPACKE_ztgsja( int matrix_order, char jobu, char jobv, char jobq,
+ lapack_int m, lapack_int p, lapack_int n,
+ lapack_int k, lapack_int l, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb, double tola, double tolb,
+ double* alpha, double* beta,
+ lapack_complex_double* u, lapack_int ldu,
+ lapack_complex_double* v, lapack_int ldv,
+ lapack_complex_double* q, lapack_int ldq,
+ lapack_int* ncycle );
+
+lapack_int LAPACKE_stgsna( int matrix_order, char job, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const float* a, lapack_int lda, const float* b,
+ lapack_int ldb, const float* vl, lapack_int ldvl,
+ const float* vr, lapack_int ldvr, float* s,
+ float* dif, lapack_int mm, lapack_int* m );
+lapack_int LAPACKE_dtgsna( int matrix_order, char job, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const double* a, lapack_int lda, const double* b,
+ lapack_int ldb, const double* vl, lapack_int ldvl,
+ const double* vr, lapack_int ldvr, double* s,
+ double* dif, lapack_int mm, lapack_int* m );
+lapack_int LAPACKE_ctgsna( int matrix_order, char job, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* b, lapack_int ldb,
+ const lapack_complex_float* vl, lapack_int ldvl,
+ const lapack_complex_float* vr, lapack_int ldvr,
+ float* s, float* dif, lapack_int mm, lapack_int* m );
+lapack_int LAPACKE_ztgsna( int matrix_order, char job, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* b, lapack_int ldb,
+ const lapack_complex_double* vl, lapack_int ldvl,
+ const lapack_complex_double* vr, lapack_int ldvr,
+ double* s, double* dif, lapack_int mm,
+ lapack_int* m );
+
+lapack_int LAPACKE_stgsyl( int matrix_order, char trans, lapack_int ijob,
+ lapack_int m, lapack_int n, const float* a,
+ lapack_int lda, const float* b, lapack_int ldb,
+ float* c, lapack_int ldc, const float* d,
+ lapack_int ldd, const float* e, lapack_int lde,
+ float* f, lapack_int ldf, float* scale, float* dif );
+lapack_int LAPACKE_dtgsyl( int matrix_order, char trans, lapack_int ijob,
+ lapack_int m, lapack_int n, const double* a,
+ lapack_int lda, const double* b, lapack_int ldb,
+ double* c, lapack_int ldc, const double* d,
+ lapack_int ldd, const double* e, lapack_int lde,
+ double* f, lapack_int ldf, double* scale,
+ double* dif );
+lapack_int LAPACKE_ctgsyl( int matrix_order, char trans, lapack_int ijob,
+ lapack_int m, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* c, lapack_int ldc,
+ const lapack_complex_float* d, lapack_int ldd,
+ const lapack_complex_float* e, lapack_int lde,
+ lapack_complex_float* f, lapack_int ldf,
+ float* scale, float* dif );
+lapack_int LAPACKE_ztgsyl( int matrix_order, char trans, lapack_int ijob,
+ lapack_int m, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* c, lapack_int ldc,
+ const lapack_complex_double* d, lapack_int ldd,
+ const lapack_complex_double* e, lapack_int lde,
+ lapack_complex_double* f, lapack_int ldf,
+ double* scale, double* dif );
+
+lapack_int LAPACKE_stpcon( int matrix_order, char norm, char uplo, char diag,
+ lapack_int n, const float* ap, float* rcond );
+lapack_int LAPACKE_dtpcon( int matrix_order, char norm, char uplo, char diag,
+ lapack_int n, const double* ap, double* rcond );
+lapack_int LAPACKE_ctpcon( int matrix_order, char norm, char uplo, char diag,
+ lapack_int n, const lapack_complex_float* ap,
+ float* rcond );
+lapack_int LAPACKE_ztpcon( int matrix_order, char norm, char uplo, char diag,
+ lapack_int n, const lapack_complex_double* ap,
+ double* rcond );
+
+lapack_int LAPACKE_stprfs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int nrhs, const float* ap,
+ const float* b, lapack_int ldb, const float* x,
+ lapack_int ldx, float* ferr, float* berr );
+lapack_int LAPACKE_dtprfs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int nrhs, const double* ap,
+ const double* b, lapack_int ldb, const double* x,
+ lapack_int ldx, double* ferr, double* berr );
+lapack_int LAPACKE_ctprfs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* ap,
+ const lapack_complex_float* b, lapack_int ldb,
+ const lapack_complex_float* x, lapack_int ldx,
+ float* ferr, float* berr );
+lapack_int LAPACKE_ztprfs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* ap,
+ const lapack_complex_double* b, lapack_int ldb,
+ const lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr );
+
+lapack_int LAPACKE_stptri( int matrix_order, char uplo, char diag, lapack_int n,
+ float* ap );
+lapack_int LAPACKE_dtptri( int matrix_order, char uplo, char diag, lapack_int n,
+ double* ap );
+lapack_int LAPACKE_ctptri( int matrix_order, char uplo, char diag, lapack_int n,
+ lapack_complex_float* ap );
+lapack_int LAPACKE_ztptri( int matrix_order, char uplo, char diag, lapack_int n,
+ lapack_complex_double* ap );
+
+lapack_int LAPACKE_stptrs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int nrhs, const float* ap,
+ float* b, lapack_int ldb );
+lapack_int LAPACKE_dtptrs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int nrhs, const double* ap,
+ double* b, lapack_int ldb );
+lapack_int LAPACKE_ctptrs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* ap,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_ztptrs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* ap,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_stpttf( int matrix_order, char transr, char uplo,
+ lapack_int n, const float* ap, float* arf );
+lapack_int LAPACKE_dtpttf( int matrix_order, char transr, char uplo,
+ lapack_int n, const double* ap, double* arf );
+lapack_int LAPACKE_ctpttf( int matrix_order, char transr, char uplo,
+ lapack_int n, const lapack_complex_float* ap,
+ lapack_complex_float* arf );
+lapack_int LAPACKE_ztpttf( int matrix_order, char transr, char uplo,
+ lapack_int n, const lapack_complex_double* ap,
+ lapack_complex_double* arf );
+
+lapack_int LAPACKE_stpttr( int matrix_order, char uplo, lapack_int n,
+ const float* ap, float* a, lapack_int lda );
+lapack_int LAPACKE_dtpttr( int matrix_order, char uplo, lapack_int n,
+ const double* ap, double* a, lapack_int lda );
+lapack_int LAPACKE_ctpttr( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* ap,
+ lapack_complex_float* a, lapack_int lda );
+lapack_int LAPACKE_ztpttr( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* ap,
+ lapack_complex_double* a, lapack_int lda );
+
+lapack_int LAPACKE_strcon( int matrix_order, char norm, char uplo, char diag,
+ lapack_int n, const float* a, lapack_int lda,
+ float* rcond );
+lapack_int LAPACKE_dtrcon( int matrix_order, char norm, char uplo, char diag,
+ lapack_int n, const double* a, lapack_int lda,
+ double* rcond );
+lapack_int LAPACKE_ctrcon( int matrix_order, char norm, char uplo, char diag,
+ lapack_int n, const lapack_complex_float* a,
+ lapack_int lda, float* rcond );
+lapack_int LAPACKE_ztrcon( int matrix_order, char norm, char uplo, char diag,
+ lapack_int n, const lapack_complex_double* a,
+ lapack_int lda, double* rcond );
+
+lapack_int LAPACKE_strevc( int matrix_order, char side, char howmny,
+ lapack_logical* select, lapack_int n, const float* t,
+ lapack_int ldt, float* vl, lapack_int ldvl,
+ float* vr, lapack_int ldvr, lapack_int mm,
+ lapack_int* m );
+lapack_int LAPACKE_dtrevc( int matrix_order, char side, char howmny,
+ lapack_logical* select, lapack_int n,
+ const double* t, lapack_int ldt, double* vl,
+ lapack_int ldvl, double* vr, lapack_int ldvr,
+ lapack_int mm, lapack_int* m );
+lapack_int LAPACKE_ctrevc( int matrix_order, char side, char howmny,
+ const lapack_logical* select, lapack_int n,
+ lapack_complex_float* t, lapack_int ldt,
+ lapack_complex_float* vl, lapack_int ldvl,
+ lapack_complex_float* vr, lapack_int ldvr,
+ lapack_int mm, lapack_int* m );
+lapack_int LAPACKE_ztrevc( int matrix_order, char side, char howmny,
+ const lapack_logical* select, lapack_int n,
+ lapack_complex_double* t, lapack_int ldt,
+ lapack_complex_double* vl, lapack_int ldvl,
+ lapack_complex_double* vr, lapack_int ldvr,
+ lapack_int mm, lapack_int* m );
+
+lapack_int LAPACKE_strexc( int matrix_order, char compq, lapack_int n, float* t,
+ lapack_int ldt, float* q, lapack_int ldq,
+ lapack_int* ifst, lapack_int* ilst );
+lapack_int LAPACKE_dtrexc( int matrix_order, char compq, lapack_int n,
+ double* t, lapack_int ldt, double* q, lapack_int ldq,
+ lapack_int* ifst, lapack_int* ilst );
+lapack_int LAPACKE_ctrexc( int matrix_order, char compq, lapack_int n,
+ lapack_complex_float* t, lapack_int ldt,
+ lapack_complex_float* q, lapack_int ldq,
+ lapack_int ifst, lapack_int ilst );
+lapack_int LAPACKE_ztrexc( int matrix_order, char compq, lapack_int n,
+ lapack_complex_double* t, lapack_int ldt,
+ lapack_complex_double* q, lapack_int ldq,
+ lapack_int ifst, lapack_int ilst );
+
+lapack_int LAPACKE_strrfs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int nrhs, const float* a,
+ lapack_int lda, const float* b, lapack_int ldb,
+ const float* x, lapack_int ldx, float* ferr,
+ float* berr );
+lapack_int LAPACKE_dtrrfs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int nrhs, const double* a,
+ lapack_int lda, const double* b, lapack_int ldb,
+ const double* x, lapack_int ldx, double* ferr,
+ double* berr );
+lapack_int LAPACKE_ctrrfs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* b, lapack_int ldb,
+ const lapack_complex_float* x, lapack_int ldx,
+ float* ferr, float* berr );
+lapack_int LAPACKE_ztrrfs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* b, lapack_int ldb,
+ const lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr );
+
+lapack_int LAPACKE_strsen( int matrix_order, char job, char compq,
+ const lapack_logical* select, lapack_int n, float* t,
+ lapack_int ldt, float* q, lapack_int ldq, float* wr,
+ float* wi, lapack_int* m, float* s, float* sep );
+lapack_int LAPACKE_dtrsen( int matrix_order, char job, char compq,
+ const lapack_logical* select, lapack_int n,
+ double* t, lapack_int ldt, double* q, lapack_int ldq,
+ double* wr, double* wi, lapack_int* m, double* s,
+ double* sep );
+lapack_int LAPACKE_ctrsen( int matrix_order, char job, char compq,
+ const lapack_logical* select, lapack_int n,
+ lapack_complex_float* t, lapack_int ldt,
+ lapack_complex_float* q, lapack_int ldq,
+ lapack_complex_float* w, lapack_int* m, float* s,
+ float* sep );
+lapack_int LAPACKE_ztrsen( int matrix_order, char job, char compq,
+ const lapack_logical* select, lapack_int n,
+ lapack_complex_double* t, lapack_int ldt,
+ lapack_complex_double* q, lapack_int ldq,
+ lapack_complex_double* w, lapack_int* m, double* s,
+ double* sep );
+
+lapack_int LAPACKE_strsna( int matrix_order, char job, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const float* t, lapack_int ldt, const float* vl,
+ lapack_int ldvl, const float* vr, lapack_int ldvr,
+ float* s, float* sep, lapack_int mm, lapack_int* m );
+lapack_int LAPACKE_dtrsna( int matrix_order, char job, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const double* t, lapack_int ldt, const double* vl,
+ lapack_int ldvl, const double* vr, lapack_int ldvr,
+ double* s, double* sep, lapack_int mm,
+ lapack_int* m );
+lapack_int LAPACKE_ctrsna( int matrix_order, char job, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const lapack_complex_float* t, lapack_int ldt,
+ const lapack_complex_float* vl, lapack_int ldvl,
+ const lapack_complex_float* vr, lapack_int ldvr,
+ float* s, float* sep, lapack_int mm, lapack_int* m );
+lapack_int LAPACKE_ztrsna( int matrix_order, char job, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const lapack_complex_double* t, lapack_int ldt,
+ const lapack_complex_double* vl, lapack_int ldvl,
+ const lapack_complex_double* vr, lapack_int ldvr,
+ double* s, double* sep, lapack_int mm,
+ lapack_int* m );
+
+lapack_int LAPACKE_strsyl( int matrix_order, char trana, char tranb,
+ lapack_int isgn, lapack_int m, lapack_int n,
+ const float* a, lapack_int lda, const float* b,
+ lapack_int ldb, float* c, lapack_int ldc,
+ float* scale );
+lapack_int LAPACKE_dtrsyl( int matrix_order, char trana, char tranb,
+ lapack_int isgn, lapack_int m, lapack_int n,
+ const double* a, lapack_int lda, const double* b,
+ lapack_int ldb, double* c, lapack_int ldc,
+ double* scale );
+lapack_int LAPACKE_ctrsyl( int matrix_order, char trana, char tranb,
+ lapack_int isgn, lapack_int m, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* c, lapack_int ldc,
+ float* scale );
+lapack_int LAPACKE_ztrsyl( int matrix_order, char trana, char tranb,
+ lapack_int isgn, lapack_int m, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* c, lapack_int ldc,
+ double* scale );
+
+lapack_int LAPACKE_strtri( int matrix_order, char uplo, char diag, lapack_int n,
+ float* a, lapack_int lda );
+lapack_int LAPACKE_dtrtri( int matrix_order, char uplo, char diag, lapack_int n,
+ double* a, lapack_int lda );
+lapack_int LAPACKE_ctrtri( int matrix_order, char uplo, char diag, lapack_int n,
+ lapack_complex_float* a, lapack_int lda );
+lapack_int LAPACKE_ztrtri( int matrix_order, char uplo, char diag, lapack_int n,
+ lapack_complex_double* a, lapack_int lda );
+
+lapack_int LAPACKE_strtrs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int nrhs, const float* a,
+ lapack_int lda, float* b, lapack_int ldb );
+lapack_int LAPACKE_dtrtrs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int nrhs, const double* a,
+ lapack_int lda, double* b, lapack_int ldb );
+lapack_int LAPACKE_ctrtrs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_ztrtrs( int matrix_order, char uplo, char trans, char diag,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_strttf( int matrix_order, char transr, char uplo,
+ lapack_int n, const float* a, lapack_int lda,
+ float* arf );
+lapack_int LAPACKE_dtrttf( int matrix_order, char transr, char uplo,
+ lapack_int n, const double* a, lapack_int lda,
+ double* arf );
+lapack_int LAPACKE_ctrttf( int matrix_order, char transr, char uplo,
+ lapack_int n, const lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* arf );
+lapack_int LAPACKE_ztrttf( int matrix_order, char transr, char uplo,
+ lapack_int n, const lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* arf );
+
+lapack_int LAPACKE_strttp( int matrix_order, char uplo, lapack_int n,
+ const float* a, lapack_int lda, float* ap );
+lapack_int LAPACKE_dtrttp( int matrix_order, char uplo, lapack_int n,
+ const double* a, lapack_int lda, double* ap );
+lapack_int LAPACKE_ctrttp( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* ap );
+lapack_int LAPACKE_ztrttp( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* ap );
+
+lapack_int LAPACKE_stzrzf( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* tau );
+lapack_int LAPACKE_dtzrzf( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* tau );
+lapack_int LAPACKE_ctzrzf( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* tau );
+lapack_int LAPACKE_ztzrzf( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* tau );
+
+lapack_int LAPACKE_cungbr( int matrix_order, char vect, lapack_int m,
+ lapack_int n, lapack_int k, lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* tau );
+lapack_int LAPACKE_zungbr( int matrix_order, char vect, lapack_int m,
+ lapack_int n, lapack_int k, lapack_complex_double* a,
+ lapack_int lda, const lapack_complex_double* tau );
+
+lapack_int LAPACKE_cunghr( int matrix_order, lapack_int n, lapack_int ilo,
+ lapack_int ihi, lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* tau );
+lapack_int LAPACKE_zunghr( int matrix_order, lapack_int n, lapack_int ilo,
+ lapack_int ihi, lapack_complex_double* a,
+ lapack_int lda, const lapack_complex_double* tau );
+
+lapack_int LAPACKE_cunglq( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* tau );
+lapack_int LAPACKE_zunglq( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, lapack_complex_double* a,
+ lapack_int lda, const lapack_complex_double* tau );
+
+lapack_int LAPACKE_cungql( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* tau );
+lapack_int LAPACKE_zungql( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, lapack_complex_double* a,
+ lapack_int lda, const lapack_complex_double* tau );
+
+lapack_int LAPACKE_cungqr( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* tau );
+lapack_int LAPACKE_zungqr( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, lapack_complex_double* a,
+ lapack_int lda, const lapack_complex_double* tau );
+
+lapack_int LAPACKE_cungrq( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* tau );
+lapack_int LAPACKE_zungrq( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, lapack_complex_double* a,
+ lapack_int lda, const lapack_complex_double* tau );
+
+lapack_int LAPACKE_cungtr( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* tau );
+lapack_int LAPACKE_zungtr( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* tau );
+
+lapack_int LAPACKE_cunmbr( int matrix_order, char vect, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int ldc );
+lapack_int LAPACKE_zunmbr( int matrix_order, char vect, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int ldc );
+
+lapack_int LAPACKE_cunmhr( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int ilo,
+ lapack_int ihi, const lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int ldc );
+lapack_int LAPACKE_zunmhr( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int ilo,
+ lapack_int ihi, const lapack_complex_double* a,
+ lapack_int lda, const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int ldc );
+
+lapack_int LAPACKE_cunmlq( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int ldc );
+lapack_int LAPACKE_zunmlq( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int ldc );
+
+lapack_int LAPACKE_cunmql( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int ldc );
+lapack_int LAPACKE_zunmql( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int ldc );
+
+lapack_int LAPACKE_cunmqr( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int ldc );
+lapack_int LAPACKE_zunmqr( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int ldc );
+
+lapack_int LAPACKE_cunmrq( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int ldc );
+lapack_int LAPACKE_zunmrq( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int ldc );
+
+lapack_int LAPACKE_cunmrz( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int l, const lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int ldc );
+lapack_int LAPACKE_zunmrz( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int l, const lapack_complex_double* a,
+ lapack_int lda, const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int ldc );
+
+lapack_int LAPACKE_cunmtr( int matrix_order, char side, char uplo, char trans,
+ lapack_int m, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int ldc );
+lapack_int LAPACKE_zunmtr( int matrix_order, char side, char uplo, char trans,
+ lapack_int m, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int ldc );
+
+lapack_int LAPACKE_cupgtr( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* ap,
+ const lapack_complex_float* tau,
+ lapack_complex_float* q, lapack_int ldq );
+lapack_int LAPACKE_zupgtr( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* ap,
+ const lapack_complex_double* tau,
+ lapack_complex_double* q, lapack_int ldq );
+
+lapack_int LAPACKE_cupmtr( int matrix_order, char side, char uplo, char trans,
+ lapack_int m, lapack_int n,
+ const lapack_complex_float* ap,
+ const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int ldc );
+lapack_int LAPACKE_zupmtr( int matrix_order, char side, char uplo, char trans,
+ lapack_int m, lapack_int n,
+ const lapack_complex_double* ap,
+ const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int ldc );
+
+lapack_int LAPACKE_sbdsdc_work( int matrix_order, char uplo, char compq,
+ lapack_int n, float* d, float* e, float* u,
+ lapack_int ldu, float* vt, lapack_int ldvt,
+ float* q, lapack_int* iq, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dbdsdc_work( int matrix_order, char uplo, char compq,
+ lapack_int n, double* d, double* e, double* u,
+ lapack_int ldu, double* vt, lapack_int ldvt,
+ double* q, lapack_int* iq, double* work,
+ lapack_int* iwork );
+
+lapack_int LAPACKE_sbdsqr_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int ncvt, lapack_int nru, lapack_int ncc,
+ float* d, float* e, float* vt, lapack_int ldvt,
+ float* u, lapack_int ldu, float* c,
+ lapack_int ldc, float* work );
+lapack_int LAPACKE_dbdsqr_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int ncvt, lapack_int nru, lapack_int ncc,
+ double* d, double* e, double* vt,
+ lapack_int ldvt, double* u, lapack_int ldu,
+ double* c, lapack_int ldc, double* work );
+lapack_int LAPACKE_cbdsqr_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int ncvt, lapack_int nru, lapack_int ncc,
+ float* d, float* e, lapack_complex_float* vt,
+ lapack_int ldvt, lapack_complex_float* u,
+ lapack_int ldu, lapack_complex_float* c,
+ lapack_int ldc, float* work );
+lapack_int LAPACKE_zbdsqr_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int ncvt, lapack_int nru, lapack_int ncc,
+ double* d, double* e, lapack_complex_double* vt,
+ lapack_int ldvt, lapack_complex_double* u,
+ lapack_int ldu, lapack_complex_double* c,
+ lapack_int ldc, double* work );
+
+lapack_int LAPACKE_sdisna_work( char job, lapack_int m, lapack_int n,
+ const float* d, float* sep );
+lapack_int LAPACKE_ddisna_work( char job, lapack_int m, lapack_int n,
+ const double* d, double* sep );
+
+lapack_int LAPACKE_sgbbrd_work( int matrix_order, char vect, lapack_int m,
+ lapack_int n, lapack_int ncc, lapack_int kl,
+ lapack_int ku, float* ab, lapack_int ldab,
+ float* d, float* e, float* q, lapack_int ldq,
+ float* pt, lapack_int ldpt, float* c,
+ lapack_int ldc, float* work );
+lapack_int LAPACKE_dgbbrd_work( int matrix_order, char vect, lapack_int m,
+ lapack_int n, lapack_int ncc, lapack_int kl,
+ lapack_int ku, double* ab, lapack_int ldab,
+ double* d, double* e, double* q, lapack_int ldq,
+ double* pt, lapack_int ldpt, double* c,
+ lapack_int ldc, double* work );
+lapack_int LAPACKE_cgbbrd_work( int matrix_order, char vect, lapack_int m,
+ lapack_int n, lapack_int ncc, lapack_int kl,
+ lapack_int ku, lapack_complex_float* ab,
+ lapack_int ldab, float* d, float* e,
+ lapack_complex_float* q, lapack_int ldq,
+ lapack_complex_float* pt, lapack_int ldpt,
+ lapack_complex_float* c, lapack_int ldc,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zgbbrd_work( int matrix_order, char vect, lapack_int m,
+ lapack_int n, lapack_int ncc, lapack_int kl,
+ lapack_int ku, lapack_complex_double* ab,
+ lapack_int ldab, double* d, double* e,
+ lapack_complex_double* q, lapack_int ldq,
+ lapack_complex_double* pt, lapack_int ldpt,
+ lapack_complex_double* c, lapack_int ldc,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_sgbcon_work( int matrix_order, char norm, lapack_int n,
+ lapack_int kl, lapack_int ku, const float* ab,
+ lapack_int ldab, const lapack_int* ipiv,
+ float anorm, float* rcond, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dgbcon_work( int matrix_order, char norm, lapack_int n,
+ lapack_int kl, lapack_int ku, const double* ab,
+ lapack_int ldab, const lapack_int* ipiv,
+ double anorm, double* rcond, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_cgbcon_work( int matrix_order, char norm, lapack_int n,
+ lapack_int kl, lapack_int ku,
+ const lapack_complex_float* ab, lapack_int ldab,
+ const lapack_int* ipiv, float anorm,
+ float* rcond, lapack_complex_float* work,
+ float* rwork );
+lapack_int LAPACKE_zgbcon_work( int matrix_order, char norm, lapack_int n,
+ lapack_int kl, lapack_int ku,
+ const lapack_complex_double* ab,
+ lapack_int ldab, const lapack_int* ipiv,
+ double anorm, double* rcond,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_sgbequ_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku, const float* ab,
+ lapack_int ldab, float* r, float* c,
+ float* rowcnd, float* colcnd, float* amax );
+lapack_int LAPACKE_dgbequ_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku, const double* ab,
+ lapack_int ldab, double* r, double* c,
+ double* rowcnd, double* colcnd, double* amax );
+lapack_int LAPACKE_cgbequ_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku,
+ const lapack_complex_float* ab, lapack_int ldab,
+ float* r, float* c, float* rowcnd,
+ float* colcnd, float* amax );
+lapack_int LAPACKE_zgbequ_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku,
+ const lapack_complex_double* ab,
+ lapack_int ldab, double* r, double* c,
+ double* rowcnd, double* colcnd, double* amax );
+
+lapack_int LAPACKE_sgbequb_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku, const float* ab,
+ lapack_int ldab, float* r, float* c,
+ float* rowcnd, float* colcnd, float* amax );
+lapack_int LAPACKE_dgbequb_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku, const double* ab,
+ lapack_int ldab, double* r, double* c,
+ double* rowcnd, double* colcnd, double* amax );
+lapack_int LAPACKE_cgbequb_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku,
+ const lapack_complex_float* ab,
+ lapack_int ldab, float* r, float* c,
+ float* rowcnd, float* colcnd, float* amax );
+lapack_int LAPACKE_zgbequb_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku,
+ const lapack_complex_double* ab,
+ lapack_int ldab, double* r, double* c,
+ double* rowcnd, double* colcnd, double* amax );
+
+lapack_int LAPACKE_sgbrfs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int kl, lapack_int ku, lapack_int nrhs,
+ const float* ab, lapack_int ldab,
+ const float* afb, lapack_int ldafb,
+ const lapack_int* ipiv, const float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* ferr, float* berr, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dgbrfs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int kl, lapack_int ku, lapack_int nrhs,
+ const double* ab, lapack_int ldab,
+ const double* afb, lapack_int ldafb,
+ const lapack_int* ipiv, const double* b,
+ lapack_int ldb, double* x, lapack_int ldx,
+ double* ferr, double* berr, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_cgbrfs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int kl, lapack_int ku, lapack_int nrhs,
+ const lapack_complex_float* ab, lapack_int ldab,
+ const lapack_complex_float* afb,
+ lapack_int ldafb, const lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zgbrfs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int kl, lapack_int ku, lapack_int nrhs,
+ const lapack_complex_double* ab,
+ lapack_int ldab,
+ const lapack_complex_double* afb,
+ lapack_int ldafb, const lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_sgbrfsx_work( int matrix_order, char trans, char equed,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, const float* ab,
+ lapack_int ldab, const float* afb,
+ lapack_int ldafb, const lapack_int* ipiv,
+ const float* r, const float* c, const float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* rcond, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dgbrfsx_work( int matrix_order, char trans, char equed,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, const double* ab,
+ lapack_int ldab, const double* afb,
+ lapack_int ldafb, const lapack_int* ipiv,
+ const double* r, const double* c,
+ const double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* rcond, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_cgbrfsx_work( int matrix_order, char trans, char equed,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs,
+ const lapack_complex_float* ab,
+ lapack_int ldab,
+ const lapack_complex_float* afb,
+ lapack_int ldafb, const lapack_int* ipiv,
+ const float* r, const float* c,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params, lapack_complex_float* work,
+ float* rwork );
+lapack_int LAPACKE_zgbrfsx_work( int matrix_order, char trans, char equed,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs,
+ const lapack_complex_double* ab,
+ lapack_int ldab,
+ const lapack_complex_double* afb,
+ lapack_int ldafb, const lapack_int* ipiv,
+ const double* r, const double* c,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params, lapack_complex_double* work,
+ double* rwork );
+
+lapack_int LAPACKE_sgbsv_work( int matrix_order, lapack_int n, lapack_int kl,
+ lapack_int ku, lapack_int nrhs, float* ab,
+ lapack_int ldab, lapack_int* ipiv, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dgbsv_work( int matrix_order, lapack_int n, lapack_int kl,
+ lapack_int ku, lapack_int nrhs, double* ab,
+ lapack_int ldab, lapack_int* ipiv, double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_cgbsv_work( int matrix_order, lapack_int n, lapack_int kl,
+ lapack_int ku, lapack_int nrhs,
+ lapack_complex_float* ab, lapack_int ldab,
+ lapack_int* ipiv, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zgbsv_work( int matrix_order, lapack_int n, lapack_int kl,
+ lapack_int ku, lapack_int nrhs,
+ lapack_complex_double* ab, lapack_int ldab,
+ lapack_int* ipiv, lapack_complex_double* b,
+ lapack_int ldb );
+
+lapack_int LAPACKE_sgbsvx_work( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, float* ab, lapack_int ldab,
+ float* afb, lapack_int ldafb, lapack_int* ipiv,
+ char* equed, float* r, float* c, float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr,
+ float* work, lapack_int* iwork );
+lapack_int LAPACKE_dgbsvx_work( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, double* ab, lapack_int ldab,
+ double* afb, lapack_int ldafb, lapack_int* ipiv,
+ char* equed, double* r, double* c, double* b,
+ lapack_int ldb, double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr,
+ double* work, lapack_int* iwork );
+lapack_int LAPACKE_cgbsvx_work( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, lapack_complex_float* ab,
+ lapack_int ldab, lapack_complex_float* afb,
+ lapack_int ldafb, lapack_int* ipiv, char* equed,
+ float* r, float* c, lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* rcond, float* ferr,
+ float* berr, lapack_complex_float* work,
+ float* rwork );
+lapack_int LAPACKE_zgbsvx_work( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, lapack_complex_double* ab,
+ lapack_int ldab, lapack_complex_double* afb,
+ lapack_int ldafb, lapack_int* ipiv, char* equed,
+ double* r, double* c, lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* x,
+ lapack_int ldx, double* rcond, double* ferr,
+ double* berr, lapack_complex_double* work,
+ double* rwork );
+
+lapack_int LAPACKE_sgbsvxx_work( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, float* ab, lapack_int ldab,
+ float* afb, lapack_int ldafb, lapack_int* ipiv,
+ char* equed, float* r, float* c, float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* rcond, float* rpvgrw, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dgbsvxx_work( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, double* ab, lapack_int ldab,
+ double* afb, lapack_int ldafb,
+ lapack_int* ipiv, char* equed, double* r,
+ double* c, double* b, lapack_int ldb,
+ double* x, lapack_int ldx, double* rcond,
+ double* rpvgrw, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_cgbsvxx_work( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, lapack_complex_float* ab,
+ lapack_int ldab, lapack_complex_float* afb,
+ lapack_int ldafb, lapack_int* ipiv,
+ char* equed, float* r, float* c,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* rpvgrw, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params, lapack_complex_float* work,
+ float* rwork );
+lapack_int LAPACKE_zgbsvxx_work( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int kl, lapack_int ku,
+ lapack_int nrhs, lapack_complex_double* ab,
+ lapack_int ldab, lapack_complex_double* afb,
+ lapack_int ldafb, lapack_int* ipiv,
+ char* equed, double* r, double* c,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* rpvgrw, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params, lapack_complex_double* work,
+ double* rwork );
+
+lapack_int LAPACKE_sgbtrf_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku, float* ab,
+ lapack_int ldab, lapack_int* ipiv );
+lapack_int LAPACKE_dgbtrf_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku, double* ab,
+ lapack_int ldab, lapack_int* ipiv );
+lapack_int LAPACKE_cgbtrf_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku,
+ lapack_complex_float* ab, lapack_int ldab,
+ lapack_int* ipiv );
+lapack_int LAPACKE_zgbtrf_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku,
+ lapack_complex_double* ab, lapack_int ldab,
+ lapack_int* ipiv );
+
+lapack_int LAPACKE_sgbtrs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int kl, lapack_int ku, lapack_int nrhs,
+ const float* ab, lapack_int ldab,
+ const lapack_int* ipiv, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dgbtrs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int kl, lapack_int ku, lapack_int nrhs,
+ const double* ab, lapack_int ldab,
+ const lapack_int* ipiv, double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_cgbtrs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int kl, lapack_int ku, lapack_int nrhs,
+ const lapack_complex_float* ab, lapack_int ldab,
+ const lapack_int* ipiv, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zgbtrs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int kl, lapack_int ku, lapack_int nrhs,
+ const lapack_complex_double* ab,
+ lapack_int ldab, const lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_sgebak_work( int matrix_order, char job, char side,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ const float* scale, lapack_int m, float* v,
+ lapack_int ldv );
+lapack_int LAPACKE_dgebak_work( int matrix_order, char job, char side,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ const double* scale, lapack_int m, double* v,
+ lapack_int ldv );
+lapack_int LAPACKE_cgebak_work( int matrix_order, char job, char side,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ const float* scale, lapack_int m,
+ lapack_complex_float* v, lapack_int ldv );
+lapack_int LAPACKE_zgebak_work( int matrix_order, char job, char side,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ const double* scale, lapack_int m,
+ lapack_complex_double* v, lapack_int ldv );
+
+lapack_int LAPACKE_sgebal_work( int matrix_order, char job, lapack_int n,
+ float* a, lapack_int lda, lapack_int* ilo,
+ lapack_int* ihi, float* scale );
+lapack_int LAPACKE_dgebal_work( int matrix_order, char job, lapack_int n,
+ double* a, lapack_int lda, lapack_int* ilo,
+ lapack_int* ihi, double* scale );
+lapack_int LAPACKE_cgebal_work( int matrix_order, char job, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* ilo, lapack_int* ihi,
+ float* scale );
+lapack_int LAPACKE_zgebal_work( int matrix_order, char job, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* ilo, lapack_int* ihi,
+ double* scale );
+
+lapack_int LAPACKE_sgebrd_work( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* d, float* e,
+ float* tauq, float* taup, float* work,
+ lapack_int lwork );
+lapack_int LAPACKE_dgebrd_work( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* d, double* e,
+ double* tauq, double* taup, double* work,
+ lapack_int lwork );
+lapack_int LAPACKE_cgebrd_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ float* d, float* e, lapack_complex_float* tauq,
+ lapack_complex_float* taup,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zgebrd_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ double* d, double* e,
+ lapack_complex_double* tauq,
+ lapack_complex_double* taup,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sgecon_work( int matrix_order, char norm, lapack_int n,
+ const float* a, lapack_int lda, float anorm,
+ float* rcond, float* work, lapack_int* iwork );
+lapack_int LAPACKE_dgecon_work( int matrix_order, char norm, lapack_int n,
+ const double* a, lapack_int lda, double anorm,
+ double* rcond, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_cgecon_work( int matrix_order, char norm, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ float anorm, float* rcond,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zgecon_work( int matrix_order, char norm, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ double anorm, double* rcond,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_sgeequ_work( int matrix_order, lapack_int m, lapack_int n,
+ const float* a, lapack_int lda, float* r,
+ float* c, float* rowcnd, float* colcnd,
+ float* amax );
+lapack_int LAPACKE_dgeequ_work( int matrix_order, lapack_int m, lapack_int n,
+ const double* a, lapack_int lda, double* r,
+ double* c, double* rowcnd, double* colcnd,
+ double* amax );
+lapack_int LAPACKE_cgeequ_work( int matrix_order, lapack_int m, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ float* r, float* c, float* rowcnd,
+ float* colcnd, float* amax );
+lapack_int LAPACKE_zgeequ_work( int matrix_order, lapack_int m, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ double* r, double* c, double* rowcnd,
+ double* colcnd, double* amax );
+
+lapack_int LAPACKE_sgeequb_work( int matrix_order, lapack_int m, lapack_int n,
+ const float* a, lapack_int lda, float* r,
+ float* c, float* rowcnd, float* colcnd,
+ float* amax );
+lapack_int LAPACKE_dgeequb_work( int matrix_order, lapack_int m, lapack_int n,
+ const double* a, lapack_int lda, double* r,
+ double* c, double* rowcnd, double* colcnd,
+ double* amax );
+lapack_int LAPACKE_cgeequb_work( int matrix_order, lapack_int m, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ float* r, float* c, float* rowcnd,
+ float* colcnd, float* amax );
+lapack_int LAPACKE_zgeequb_work( int matrix_order, lapack_int m, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ double* r, double* c, double* rowcnd,
+ double* colcnd, double* amax );
+
+lapack_int LAPACKE_sgees_work( int matrix_order, char jobvs, char sort,
+ LAPACK_S_SELECT2 select, lapack_int n, float* a,
+ lapack_int lda, lapack_int* sdim, float* wr,
+ float* wi, float* vs, lapack_int ldvs,
+ float* work, lapack_int lwork,
+ lapack_logical* bwork );
+lapack_int LAPACKE_dgees_work( int matrix_order, char jobvs, char sort,
+ LAPACK_D_SELECT2 select, lapack_int n, double* a,
+ lapack_int lda, lapack_int* sdim, double* wr,
+ double* wi, double* vs, lapack_int ldvs,
+ double* work, lapack_int lwork,
+ lapack_logical* bwork );
+lapack_int LAPACKE_cgees_work( int matrix_order, char jobvs, char sort,
+ LAPACK_C_SELECT1 select, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* sdim, lapack_complex_float* w,
+ lapack_complex_float* vs, lapack_int ldvs,
+ lapack_complex_float* work, lapack_int lwork,
+ float* rwork, lapack_logical* bwork );
+lapack_int LAPACKE_zgees_work( int matrix_order, char jobvs, char sort,
+ LAPACK_Z_SELECT1 select, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* sdim, lapack_complex_double* w,
+ lapack_complex_double* vs, lapack_int ldvs,
+ lapack_complex_double* work, lapack_int lwork,
+ double* rwork, lapack_logical* bwork );
+
+lapack_int LAPACKE_sgeesx_work( int matrix_order, char jobvs, char sort,
+ LAPACK_S_SELECT2 select, char sense,
+ lapack_int n, float* a, lapack_int lda,
+ lapack_int* sdim, float* wr, float* wi,
+ float* vs, lapack_int ldvs, float* rconde,
+ float* rcondv, float* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork,
+ lapack_logical* bwork );
+lapack_int LAPACKE_dgeesx_work( int matrix_order, char jobvs, char sort,
+ LAPACK_D_SELECT2 select, char sense,
+ lapack_int n, double* a, lapack_int lda,
+ lapack_int* sdim, double* wr, double* wi,
+ double* vs, lapack_int ldvs, double* rconde,
+ double* rcondv, double* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork,
+ lapack_logical* bwork );
+lapack_int LAPACKE_cgeesx_work( int matrix_order, char jobvs, char sort,
+ LAPACK_C_SELECT1 select, char sense,
+ lapack_int n, lapack_complex_float* a,
+ lapack_int lda, lapack_int* sdim,
+ lapack_complex_float* w,
+ lapack_complex_float* vs, lapack_int ldvs,
+ float* rconde, float* rcondv,
+ lapack_complex_float* work, lapack_int lwork,
+ float* rwork, lapack_logical* bwork );
+lapack_int LAPACKE_zgeesx_work( int matrix_order, char jobvs, char sort,
+ LAPACK_Z_SELECT1 select, char sense,
+ lapack_int n, lapack_complex_double* a,
+ lapack_int lda, lapack_int* sdim,
+ lapack_complex_double* w,
+ lapack_complex_double* vs, lapack_int ldvs,
+ double* rconde, double* rcondv,
+ lapack_complex_double* work, lapack_int lwork,
+ double* rwork, lapack_logical* bwork );
+
+lapack_int LAPACKE_sgeev_work( int matrix_order, char jobvl, char jobvr,
+ lapack_int n, float* a, lapack_int lda,
+ float* wr, float* wi, float* vl, lapack_int ldvl,
+ float* vr, lapack_int ldvr, float* work,
+ lapack_int lwork );
+lapack_int LAPACKE_dgeev_work( int matrix_order, char jobvl, char jobvr,
+ lapack_int n, double* a, lapack_int lda,
+ double* wr, double* wi, double* vl,
+ lapack_int ldvl, double* vr, lapack_int ldvr,
+ double* work, lapack_int lwork );
+lapack_int LAPACKE_cgeev_work( int matrix_order, char jobvl, char jobvr,
+ lapack_int n, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* w,
+ lapack_complex_float* vl, lapack_int ldvl,
+ lapack_complex_float* vr, lapack_int ldvr,
+ lapack_complex_float* work, lapack_int lwork,
+ float* rwork );
+lapack_int LAPACKE_zgeev_work( int matrix_order, char jobvl, char jobvr,
+ lapack_int n, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* w,
+ lapack_complex_double* vl, lapack_int ldvl,
+ lapack_complex_double* vr, lapack_int ldvr,
+ lapack_complex_double* work, lapack_int lwork,
+ double* rwork );
+
+lapack_int LAPACKE_sgeevx_work( int matrix_order, char balanc, char jobvl,
+ char jobvr, char sense, lapack_int n, float* a,
+ lapack_int lda, float* wr, float* wi, float* vl,
+ lapack_int ldvl, float* vr, lapack_int ldvr,
+ lapack_int* ilo, lapack_int* ihi, float* scale,
+ float* abnrm, float* rconde, float* rcondv,
+ float* work, lapack_int lwork,
+ lapack_int* iwork );
+lapack_int LAPACKE_dgeevx_work( int matrix_order, char balanc, char jobvl,
+ char jobvr, char sense, lapack_int n, double* a,
+ lapack_int lda, double* wr, double* wi,
+ double* vl, lapack_int ldvl, double* vr,
+ lapack_int ldvr, lapack_int* ilo,
+ lapack_int* ihi, double* scale, double* abnrm,
+ double* rconde, double* rcondv, double* work,
+ lapack_int lwork, lapack_int* iwork );
+lapack_int LAPACKE_cgeevx_work( int matrix_order, char balanc, char jobvl,
+ char jobvr, char sense, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* w,
+ lapack_complex_float* vl, lapack_int ldvl,
+ lapack_complex_float* vr, lapack_int ldvr,
+ lapack_int* ilo, lapack_int* ihi, float* scale,
+ float* abnrm, float* rconde, float* rcondv,
+ lapack_complex_float* work, lapack_int lwork,
+ float* rwork );
+lapack_int LAPACKE_zgeevx_work( int matrix_order, char balanc, char jobvl,
+ char jobvr, char sense, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* w,
+ lapack_complex_double* vl, lapack_int ldvl,
+ lapack_complex_double* vr, lapack_int ldvr,
+ lapack_int* ilo, lapack_int* ihi, double* scale,
+ double* abnrm, double* rconde, double* rcondv,
+ lapack_complex_double* work, lapack_int lwork,
+ double* rwork );
+
+lapack_int LAPACKE_sgehrd_work( int matrix_order, lapack_int n, lapack_int ilo,
+ lapack_int ihi, float* a, lapack_int lda,
+ float* tau, float* work, lapack_int lwork );
+lapack_int LAPACKE_dgehrd_work( int matrix_order, lapack_int n, lapack_int ilo,
+ lapack_int ihi, double* a, lapack_int lda,
+ double* tau, double* work, lapack_int lwork );
+lapack_int LAPACKE_cgehrd_work( int matrix_order, lapack_int n, lapack_int ilo,
+ lapack_int ihi, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zgehrd_work( int matrix_order, lapack_int n, lapack_int ilo,
+ lapack_int ihi, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sgejsv_work( int matrix_order, char joba, char jobu,
+ char jobv, char jobr, char jobt, char jobp,
+ lapack_int m, lapack_int n, float* a,
+ lapack_int lda, float* sva, float* u,
+ lapack_int ldu, float* v, lapack_int ldv,
+ float* work, lapack_int lwork,
+ lapack_int* iwork );
+lapack_int LAPACKE_dgejsv_work( int matrix_order, char joba, char jobu,
+ char jobv, char jobr, char jobt, char jobp,
+ lapack_int m, lapack_int n, double* a,
+ lapack_int lda, double* sva, double* u,
+ lapack_int ldu, double* v, lapack_int ldv,
+ double* work, lapack_int lwork,
+ lapack_int* iwork );
+
+lapack_int LAPACKE_sgelq2_work( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* tau,
+ float* work );
+lapack_int LAPACKE_dgelq2_work( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* tau,
+ double* work );
+lapack_int LAPACKE_cgelq2_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* tau,
+ lapack_complex_float* work );
+lapack_int LAPACKE_zgelq2_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* tau,
+ lapack_complex_double* work );
+
+lapack_int LAPACKE_sgelqf_work( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* tau,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dgelqf_work( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* tau,
+ double* work, lapack_int lwork );
+lapack_int LAPACKE_cgelqf_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zgelqf_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sgels_work( int matrix_order, char trans, lapack_int m,
+ lapack_int n, lapack_int nrhs, float* a,
+ lapack_int lda, float* b, lapack_int ldb,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dgels_work( int matrix_order, char trans, lapack_int m,
+ lapack_int n, lapack_int nrhs, double* a,
+ lapack_int lda, double* b, lapack_int ldb,
+ double* work, lapack_int lwork );
+lapack_int LAPACKE_cgels_work( int matrix_order, char trans, lapack_int m,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zgels_work( int matrix_order, char trans, lapack_int m,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sgelsd_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, float* a, lapack_int lda,
+ float* b, lapack_int ldb, float* s, float rcond,
+ lapack_int* rank, float* work, lapack_int lwork,
+ lapack_int* iwork );
+lapack_int LAPACKE_dgelsd_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, double* a, lapack_int lda,
+ double* b, lapack_int ldb, double* s,
+ double rcond, lapack_int* rank, double* work,
+ lapack_int lwork, lapack_int* iwork );
+lapack_int LAPACKE_cgelsd_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb, float* s, float rcond,
+ lapack_int* rank, lapack_complex_float* work,
+ lapack_int lwork, float* rwork,
+ lapack_int* iwork );
+lapack_int LAPACKE_zgelsd_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb, double* s, double rcond,
+ lapack_int* rank, lapack_complex_double* work,
+ lapack_int lwork, double* rwork,
+ lapack_int* iwork );
+
+lapack_int LAPACKE_sgelss_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, float* a, lapack_int lda,
+ float* b, lapack_int ldb, float* s, float rcond,
+ lapack_int* rank, float* work,
+ lapack_int lwork );
+lapack_int LAPACKE_dgelss_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, double* a, lapack_int lda,
+ double* b, lapack_int ldb, double* s,
+ double rcond, lapack_int* rank, double* work,
+ lapack_int lwork );
+lapack_int LAPACKE_cgelss_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb, float* s, float rcond,
+ lapack_int* rank, lapack_complex_float* work,
+ lapack_int lwork, float* rwork );
+lapack_int LAPACKE_zgelss_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb, double* s, double rcond,
+ lapack_int* rank, lapack_complex_double* work,
+ lapack_int lwork, double* rwork );
+
+lapack_int LAPACKE_sgelsy_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, float* a, lapack_int lda,
+ float* b, lapack_int ldb, lapack_int* jpvt,
+ float rcond, lapack_int* rank, float* work,
+ lapack_int lwork );
+lapack_int LAPACKE_dgelsy_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, double* a, lapack_int lda,
+ double* b, lapack_int ldb, lapack_int* jpvt,
+ double rcond, lapack_int* rank, double* work,
+ lapack_int lwork );
+lapack_int LAPACKE_cgelsy_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb, lapack_int* jpvt, float rcond,
+ lapack_int* rank, lapack_complex_float* work,
+ lapack_int lwork, float* rwork );
+lapack_int LAPACKE_zgelsy_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb, lapack_int* jpvt, double rcond,
+ lapack_int* rank, lapack_complex_double* work,
+ lapack_int lwork, double* rwork );
+
+lapack_int LAPACKE_sgeqlf_work( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* tau,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dgeqlf_work( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* tau,
+ double* work, lapack_int lwork );
+lapack_int LAPACKE_cgeqlf_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zgeqlf_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sgeqp3_work( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, lapack_int* jpvt,
+ float* tau, float* work, lapack_int lwork );
+lapack_int LAPACKE_dgeqp3_work( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, lapack_int* jpvt,
+ double* tau, double* work, lapack_int lwork );
+lapack_int LAPACKE_cgeqp3_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* jpvt, lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int lwork,
+ float* rwork );
+lapack_int LAPACKE_zgeqp3_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* jpvt, lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int lwork,
+ double* rwork );
+
+lapack_int LAPACKE_sgeqpf_work( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, lapack_int* jpvt,
+ float* tau, float* work );
+lapack_int LAPACKE_dgeqpf_work( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, lapack_int* jpvt,
+ double* tau, double* work );
+lapack_int LAPACKE_cgeqpf_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* jpvt, lapack_complex_float* tau,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zgeqpf_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* jpvt, lapack_complex_double* tau,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_sgeqr2_work( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* tau,
+ float* work );
+lapack_int LAPACKE_dgeqr2_work( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* tau,
+ double* work );
+lapack_int LAPACKE_cgeqr2_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* tau,
+ lapack_complex_float* work );
+lapack_int LAPACKE_zgeqr2_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* tau,
+ lapack_complex_double* work );
+
+lapack_int LAPACKE_sgeqrf_work( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* tau,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dgeqrf_work( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* tau,
+ double* work, lapack_int lwork );
+lapack_int LAPACKE_cgeqrf_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zgeqrf_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sgeqrfp_work( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* tau,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dgeqrfp_work( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* tau,
+ double* work, lapack_int lwork );
+lapack_int LAPACKE_cgeqrfp_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zgeqrfp_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* tau,
+ lapack_complex_double* work,
+ lapack_int lwork );
+
+lapack_int LAPACKE_sgerfs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const float* a, lapack_int lda,
+ const float* af, lapack_int ldaf,
+ const lapack_int* ipiv, const float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* ferr, float* berr, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dgerfs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const double* a,
+ lapack_int lda, const double* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* ferr, double* berr,
+ double* work, lapack_int* iwork );
+lapack_int LAPACKE_cgerfs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zgerfs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, const lapack_complex_double* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_sgerfsx_work( int matrix_order, char trans, char equed,
+ lapack_int n, lapack_int nrhs, const float* a,
+ lapack_int lda, const float* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const float* r, const float* c, const float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* rcond, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dgerfsx_work( int matrix_order, char trans, char equed,
+ lapack_int n, lapack_int nrhs, const double* a,
+ lapack_int lda, const double* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const double* r, const double* c,
+ const double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* rcond, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_cgerfsx_work( int matrix_order, char trans, char equed,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const float* r, const float* c,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params, lapack_complex_float* work,
+ float* rwork );
+lapack_int LAPACKE_zgerfsx_work( int matrix_order, char trans, char equed,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const double* r, const double* c,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params, lapack_complex_double* work,
+ double* rwork );
+
+lapack_int LAPACKE_sgerqf_work( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* tau,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dgerqf_work( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* tau,
+ double* work, lapack_int lwork );
+lapack_int LAPACKE_cgerqf_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zgerqf_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sgesdd_work( int matrix_order, char jobz, lapack_int m,
+ lapack_int n, float* a, lapack_int lda,
+ float* s, float* u, lapack_int ldu, float* vt,
+ lapack_int ldvt, float* work, lapack_int lwork,
+ lapack_int* iwork );
+lapack_int LAPACKE_dgesdd_work( int matrix_order, char jobz, lapack_int m,
+ lapack_int n, double* a, lapack_int lda,
+ double* s, double* u, lapack_int ldu,
+ double* vt, lapack_int ldvt, double* work,
+ lapack_int lwork, lapack_int* iwork );
+lapack_int LAPACKE_cgesdd_work( int matrix_order, char jobz, lapack_int m,
+ lapack_int n, lapack_complex_float* a,
+ lapack_int lda, float* s,
+ lapack_complex_float* u, lapack_int ldu,
+ lapack_complex_float* vt, lapack_int ldvt,
+ lapack_complex_float* work, lapack_int lwork,
+ float* rwork, lapack_int* iwork );
+lapack_int LAPACKE_zgesdd_work( int matrix_order, char jobz, lapack_int m,
+ lapack_int n, lapack_complex_double* a,
+ lapack_int lda, double* s,
+ lapack_complex_double* u, lapack_int ldu,
+ lapack_complex_double* vt, lapack_int ldvt,
+ lapack_complex_double* work, lapack_int lwork,
+ double* rwork, lapack_int* iwork );
+
+lapack_int LAPACKE_sgesv_work( int matrix_order, lapack_int n, lapack_int nrhs,
+ float* a, lapack_int lda, lapack_int* ipiv,
+ float* b, lapack_int ldb );
+lapack_int LAPACKE_dgesv_work( int matrix_order, lapack_int n, lapack_int nrhs,
+ double* a, lapack_int lda, lapack_int* ipiv,
+ double* b, lapack_int ldb );
+lapack_int LAPACKE_cgesv_work( int matrix_order, lapack_int n, lapack_int nrhs,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* ipiv, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zgesv_work( int matrix_order, lapack_int n, lapack_int nrhs,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* ipiv, lapack_complex_double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dsgesv_work( int matrix_order, lapack_int n, lapack_int nrhs,
+ double* a, lapack_int lda, lapack_int* ipiv,
+ double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* work, float* swork,
+ lapack_int* iter );
+lapack_int LAPACKE_zcgesv_work( int matrix_order, lapack_int n, lapack_int nrhs,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* ipiv, lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* x,
+ lapack_int ldx, lapack_complex_double* work,
+ lapack_complex_float* swork, double* rwork,
+ lapack_int* iter );
+
+lapack_int LAPACKE_sgesvd_work( int matrix_order, char jobu, char jobvt,
+ lapack_int m, lapack_int n, float* a,
+ lapack_int lda, float* s, float* u,
+ lapack_int ldu, float* vt, lapack_int ldvt,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dgesvd_work( int matrix_order, char jobu, char jobvt,
+ lapack_int m, lapack_int n, double* a,
+ lapack_int lda, double* s, double* u,
+ lapack_int ldu, double* vt, lapack_int ldvt,
+ double* work, lapack_int lwork );
+lapack_int LAPACKE_cgesvd_work( int matrix_order, char jobu, char jobvt,
+ lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ float* s, lapack_complex_float* u,
+ lapack_int ldu, lapack_complex_float* vt,
+ lapack_int ldvt, lapack_complex_float* work,
+ lapack_int lwork, float* rwork );
+lapack_int LAPACKE_zgesvd_work( int matrix_order, char jobu, char jobvt,
+ lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ double* s, lapack_complex_double* u,
+ lapack_int ldu, lapack_complex_double* vt,
+ lapack_int ldvt, lapack_complex_double* work,
+ lapack_int lwork, double* rwork );
+
+lapack_int LAPACKE_sgesvj_work( int matrix_order, char joba, char jobu,
+ char jobv, lapack_int m, lapack_int n, float* a,
+ lapack_int lda, float* sva, lapack_int mv,
+ float* v, lapack_int ldv, float* work,
+ lapack_int lwork );
+lapack_int LAPACKE_dgesvj_work( int matrix_order, char joba, char jobu,
+ char jobv, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* sva,
+ lapack_int mv, double* v, lapack_int ldv,
+ double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sgesvx_work( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs, float* a,
+ lapack_int lda, float* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, float* r,
+ float* c, float* b, lapack_int ldb, float* x,
+ lapack_int ldx, float* rcond, float* ferr,
+ float* berr, float* work, lapack_int* iwork );
+lapack_int LAPACKE_dgesvx_work( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs, double* a,
+ lapack_int lda, double* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, double* r,
+ double* c, double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* rcond, double* ferr,
+ double* berr, double* work, lapack_int* iwork );
+lapack_int LAPACKE_cgesvx_work( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, float* r,
+ float* c, lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* rcond, float* ferr,
+ float* berr, lapack_complex_float* work,
+ float* rwork );
+lapack_int LAPACKE_zgesvx_work( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, double* r,
+ double* c, lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* x,
+ lapack_int ldx, double* rcond, double* ferr,
+ double* berr, lapack_complex_double* work,
+ double* rwork );
+
+lapack_int LAPACKE_sgesvxx_work( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs, float* a,
+ lapack_int lda, float* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, float* r,
+ float* c, float* b, lapack_int ldb, float* x,
+ lapack_int ldx, float* rcond, float* rpvgrw,
+ float* berr, lapack_int n_err_bnds,
+ float* err_bnds_norm, float* err_bnds_comp,
+ lapack_int nparams, float* params, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dgesvxx_work( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs, double* a,
+ lapack_int lda, double* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, double* r,
+ double* c, double* b, lapack_int ldb,
+ double* x, lapack_int ldx, double* rcond,
+ double* rpvgrw, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_cgesvxx_work( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, float* r,
+ float* c, lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* rcond, float* rpvgrw,
+ float* berr, lapack_int n_err_bnds,
+ float* err_bnds_norm, float* err_bnds_comp,
+ lapack_int nparams, float* params,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zgesvxx_work( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, double* r,
+ double* c, lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* x,
+ lapack_int ldx, double* rcond, double* rpvgrw,
+ double* berr, lapack_int n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int nparams, double* params,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_sgetf2_work( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, lapack_int* ipiv );
+lapack_int LAPACKE_dgetf2_work( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, lapack_int* ipiv );
+lapack_int LAPACKE_cgetf2_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* ipiv );
+lapack_int LAPACKE_zgetf2_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* ipiv );
+
+lapack_int LAPACKE_sgetrf_work( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, lapack_int* ipiv );
+lapack_int LAPACKE_dgetrf_work( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, lapack_int* ipiv );
+lapack_int LAPACKE_cgetrf_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* ipiv );
+lapack_int LAPACKE_zgetrf_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* ipiv );
+
+lapack_int LAPACKE_sgetri_work( int matrix_order, lapack_int n, float* a,
+ lapack_int lda, const lapack_int* ipiv,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dgetri_work( int matrix_order, lapack_int n, double* a,
+ lapack_int lda, const lapack_int* ipiv,
+ double* work, lapack_int lwork );
+lapack_int LAPACKE_cgetri_work( int matrix_order, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ const lapack_int* ipiv,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zgetri_work( int matrix_order, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ const lapack_int* ipiv,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sgetrs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const float* a, lapack_int lda,
+ const lapack_int* ipiv, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dgetrs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const double* a,
+ lapack_int lda, const lapack_int* ipiv,
+ double* b, lapack_int ldb );
+lapack_int LAPACKE_cgetrs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zgetrs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_sggbak_work( int matrix_order, char job, char side,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ const float* lscale, const float* rscale,
+ lapack_int m, float* v, lapack_int ldv );
+lapack_int LAPACKE_dggbak_work( int matrix_order, char job, char side,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ const double* lscale, const double* rscale,
+ lapack_int m, double* v, lapack_int ldv );
+lapack_int LAPACKE_cggbak_work( int matrix_order, char job, char side,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ const float* lscale, const float* rscale,
+ lapack_int m, lapack_complex_float* v,
+ lapack_int ldv );
+lapack_int LAPACKE_zggbak_work( int matrix_order, char job, char side,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ const double* lscale, const double* rscale,
+ lapack_int m, lapack_complex_double* v,
+ lapack_int ldv );
+
+lapack_int LAPACKE_sggbal_work( int matrix_order, char job, lapack_int n,
+ float* a, lapack_int lda, float* b,
+ lapack_int ldb, lapack_int* ilo,
+ lapack_int* ihi, float* lscale, float* rscale,
+ float* work );
+lapack_int LAPACKE_dggbal_work( int matrix_order, char job, lapack_int n,
+ double* a, lapack_int lda, double* b,
+ lapack_int ldb, lapack_int* ilo,
+ lapack_int* ihi, double* lscale, double* rscale,
+ double* work );
+lapack_int LAPACKE_cggbal_work( int matrix_order, char job, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_int* ilo, lapack_int* ihi, float* lscale,
+ float* rscale, float* work );
+lapack_int LAPACKE_zggbal_work( int matrix_order, char job, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_int* ilo, lapack_int* ihi,
+ double* lscale, double* rscale, double* work );
+
+lapack_int LAPACKE_sgges_work( int matrix_order, char jobvsl, char jobvsr,
+ char sort, LAPACK_S_SELECT3 selctg, lapack_int n,
+ float* a, lapack_int lda, float* b,
+ lapack_int ldb, lapack_int* sdim, float* alphar,
+ float* alphai, float* beta, float* vsl,
+ lapack_int ldvsl, float* vsr, lapack_int ldvsr,
+ float* work, lapack_int lwork,
+ lapack_logical* bwork );
+lapack_int LAPACKE_dgges_work( int matrix_order, char jobvsl, char jobvsr,
+ char sort, LAPACK_D_SELECT3 selctg, lapack_int n,
+ double* a, lapack_int lda, double* b,
+ lapack_int ldb, lapack_int* sdim, double* alphar,
+ double* alphai, double* beta, double* vsl,
+ lapack_int ldvsl, double* vsr, lapack_int ldvsr,
+ double* work, lapack_int lwork,
+ lapack_logical* bwork );
+lapack_int LAPACKE_cgges_work( int matrix_order, char jobvsl, char jobvsr,
+ char sort, LAPACK_C_SELECT2 selctg, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_int* sdim, lapack_complex_float* alpha,
+ lapack_complex_float* beta,
+ lapack_complex_float* vsl, lapack_int ldvsl,
+ lapack_complex_float* vsr, lapack_int ldvsr,
+ lapack_complex_float* work, lapack_int lwork,
+ float* rwork, lapack_logical* bwork );
+lapack_int LAPACKE_zgges_work( int matrix_order, char jobvsl, char jobvsr,
+ char sort, LAPACK_Z_SELECT2 selctg, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_int* sdim, lapack_complex_double* alpha,
+ lapack_complex_double* beta,
+ lapack_complex_double* vsl, lapack_int ldvsl,
+ lapack_complex_double* vsr, lapack_int ldvsr,
+ lapack_complex_double* work, lapack_int lwork,
+ double* rwork, lapack_logical* bwork );
+
+lapack_int LAPACKE_sggesx_work( int matrix_order, char jobvsl, char jobvsr,
+ char sort, LAPACK_S_SELECT3 selctg, char sense,
+ lapack_int n, float* a, lapack_int lda,
+ float* b, lapack_int ldb, lapack_int* sdim,
+ float* alphar, float* alphai, float* beta,
+ float* vsl, lapack_int ldvsl, float* vsr,
+ lapack_int ldvsr, float* rconde, float* rcondv,
+ float* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork,
+ lapack_logical* bwork );
+lapack_int LAPACKE_dggesx_work( int matrix_order, char jobvsl, char jobvsr,
+ char sort, LAPACK_D_SELECT3 selctg, char sense,
+ lapack_int n, double* a, lapack_int lda,
+ double* b, lapack_int ldb, lapack_int* sdim,
+ double* alphar, double* alphai, double* beta,
+ double* vsl, lapack_int ldvsl, double* vsr,
+ lapack_int ldvsr, double* rconde,
+ double* rcondv, double* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork,
+ lapack_logical* bwork );
+lapack_int LAPACKE_cggesx_work( int matrix_order, char jobvsl, char jobvsr,
+ char sort, LAPACK_C_SELECT2 selctg, char sense,
+ lapack_int n, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb, lapack_int* sdim,
+ lapack_complex_float* alpha,
+ lapack_complex_float* beta,
+ lapack_complex_float* vsl, lapack_int ldvsl,
+ lapack_complex_float* vsr, lapack_int ldvsr,
+ float* rconde, float* rcondv,
+ lapack_complex_float* work, lapack_int lwork,
+ float* rwork, lapack_int* iwork,
+ lapack_int liwork, lapack_logical* bwork );
+lapack_int LAPACKE_zggesx_work( int matrix_order, char jobvsl, char jobvsr,
+ char sort, LAPACK_Z_SELECT2 selctg, char sense,
+ lapack_int n, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb, lapack_int* sdim,
+ lapack_complex_double* alpha,
+ lapack_complex_double* beta,
+ lapack_complex_double* vsl, lapack_int ldvsl,
+ lapack_complex_double* vsr, lapack_int ldvsr,
+ double* rconde, double* rcondv,
+ lapack_complex_double* work, lapack_int lwork,
+ double* rwork, lapack_int* iwork,
+ lapack_int liwork, lapack_logical* bwork );
+
+lapack_int LAPACKE_sggev_work( int matrix_order, char jobvl, char jobvr,
+ lapack_int n, float* a, lapack_int lda, float* b,
+ lapack_int ldb, float* alphar, float* alphai,
+ float* beta, float* vl, lapack_int ldvl,
+ float* vr, lapack_int ldvr, float* work,
+ lapack_int lwork );
+lapack_int LAPACKE_dggev_work( int matrix_order, char jobvl, char jobvr,
+ lapack_int n, double* a, lapack_int lda,
+ double* b, lapack_int ldb, double* alphar,
+ double* alphai, double* beta, double* vl,
+ lapack_int ldvl, double* vr, lapack_int ldvr,
+ double* work, lapack_int lwork );
+lapack_int LAPACKE_cggev_work( int matrix_order, char jobvl, char jobvr,
+ lapack_int n, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* alpha,
+ lapack_complex_float* beta,
+ lapack_complex_float* vl, lapack_int ldvl,
+ lapack_complex_float* vr, lapack_int ldvr,
+ lapack_complex_float* work, lapack_int lwork,
+ float* rwork );
+lapack_int LAPACKE_zggev_work( int matrix_order, char jobvl, char jobvr,
+ lapack_int n, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* alpha,
+ lapack_complex_double* beta,
+ lapack_complex_double* vl, lapack_int ldvl,
+ lapack_complex_double* vr, lapack_int ldvr,
+ lapack_complex_double* work, lapack_int lwork,
+ double* rwork );
+
+lapack_int LAPACKE_sggevx_work( int matrix_order, char balanc, char jobvl,
+ char jobvr, char sense, lapack_int n, float* a,
+ lapack_int lda, float* b, lapack_int ldb,
+ float* alphar, float* alphai, float* beta,
+ float* vl, lapack_int ldvl, float* vr,
+ lapack_int ldvr, lapack_int* ilo,
+ lapack_int* ihi, float* lscale, float* rscale,
+ float* abnrm, float* bbnrm, float* rconde,
+ float* rcondv, float* work, lapack_int lwork,
+ lapack_int* iwork, lapack_logical* bwork );
+lapack_int LAPACKE_dggevx_work( int matrix_order, char balanc, char jobvl,
+ char jobvr, char sense, lapack_int n, double* a,
+ lapack_int lda, double* b, lapack_int ldb,
+ double* alphar, double* alphai, double* beta,
+ double* vl, lapack_int ldvl, double* vr,
+ lapack_int ldvr, lapack_int* ilo,
+ lapack_int* ihi, double* lscale, double* rscale,
+ double* abnrm, double* bbnrm, double* rconde,
+ double* rcondv, double* work, lapack_int lwork,
+ lapack_int* iwork, lapack_logical* bwork );
+lapack_int LAPACKE_cggevx_work( int matrix_order, char balanc, char jobvl,
+ char jobvr, char sense, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* alpha,
+ lapack_complex_float* beta,
+ lapack_complex_float* vl, lapack_int ldvl,
+ lapack_complex_float* vr, lapack_int ldvr,
+ lapack_int* ilo, lapack_int* ihi, float* lscale,
+ float* rscale, float* abnrm, float* bbnrm,
+ float* rconde, float* rcondv,
+ lapack_complex_float* work, lapack_int lwork,
+ float* rwork, lapack_int* iwork,
+ lapack_logical* bwork );
+lapack_int LAPACKE_zggevx_work( int matrix_order, char balanc, char jobvl,
+ char jobvr, char sense, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* alpha,
+ lapack_complex_double* beta,
+ lapack_complex_double* vl, lapack_int ldvl,
+ lapack_complex_double* vr, lapack_int ldvr,
+ lapack_int* ilo, lapack_int* ihi,
+ double* lscale, double* rscale, double* abnrm,
+ double* bbnrm, double* rconde, double* rcondv,
+ lapack_complex_double* work, lapack_int lwork,
+ double* rwork, lapack_int* iwork,
+ lapack_logical* bwork );
+
+lapack_int LAPACKE_sggglm_work( int matrix_order, lapack_int n, lapack_int m,
+ lapack_int p, float* a, lapack_int lda,
+ float* b, lapack_int ldb, float* d, float* x,
+ float* y, float* work, lapack_int lwork );
+lapack_int LAPACKE_dggglm_work( int matrix_order, lapack_int n, lapack_int m,
+ lapack_int p, double* a, lapack_int lda,
+ double* b, lapack_int ldb, double* d, double* x,
+ double* y, double* work, lapack_int lwork );
+lapack_int LAPACKE_cggglm_work( int matrix_order, lapack_int n, lapack_int m,
+ lapack_int p, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* d,
+ lapack_complex_float* x,
+ lapack_complex_float* y,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zggglm_work( int matrix_order, lapack_int n, lapack_int m,
+ lapack_int p, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* d,
+ lapack_complex_double* x,
+ lapack_complex_double* y,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sgghrd_work( int matrix_order, char compq, char compz,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ float* a, lapack_int lda, float* b,
+ lapack_int ldb, float* q, lapack_int ldq,
+ float* z, lapack_int ldz );
+lapack_int LAPACKE_dgghrd_work( int matrix_order, char compq, char compz,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ double* a, lapack_int lda, double* b,
+ lapack_int ldb, double* q, lapack_int ldq,
+ double* z, lapack_int ldz );
+lapack_int LAPACKE_cgghrd_work( int matrix_order, char compq, char compz,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* q, lapack_int ldq,
+ lapack_complex_float* z, lapack_int ldz );
+lapack_int LAPACKE_zgghrd_work( int matrix_order, char compq, char compz,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* q, lapack_int ldq,
+ lapack_complex_double* z, lapack_int ldz );
+
+lapack_int LAPACKE_sgglse_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int p, float* a, lapack_int lda,
+ float* b, lapack_int ldb, float* c, float* d,
+ float* x, float* work, lapack_int lwork );
+lapack_int LAPACKE_dgglse_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int p, double* a, lapack_int lda,
+ double* b, lapack_int ldb, double* c, double* d,
+ double* x, double* work, lapack_int lwork );
+lapack_int LAPACKE_cgglse_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int p, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* c,
+ lapack_complex_float* d,
+ lapack_complex_float* x,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zgglse_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int p, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* c,
+ lapack_complex_double* d,
+ lapack_complex_double* x,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sggqrf_work( int matrix_order, lapack_int n, lapack_int m,
+ lapack_int p, float* a, lapack_int lda,
+ float* taua, float* b, lapack_int ldb,
+ float* taub, float* work, lapack_int lwork );
+lapack_int LAPACKE_dggqrf_work( int matrix_order, lapack_int n, lapack_int m,
+ lapack_int p, double* a, lapack_int lda,
+ double* taua, double* b, lapack_int ldb,
+ double* taub, double* work, lapack_int lwork );
+lapack_int LAPACKE_cggqrf_work( int matrix_order, lapack_int n, lapack_int m,
+ lapack_int p, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* taua,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* taub,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zggqrf_work( int matrix_order, lapack_int n, lapack_int m,
+ lapack_int p, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* taua,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* taub,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sggrqf_work( int matrix_order, lapack_int m, lapack_int p,
+ lapack_int n, float* a, lapack_int lda,
+ float* taua, float* b, lapack_int ldb,
+ float* taub, float* work, lapack_int lwork );
+lapack_int LAPACKE_dggrqf_work( int matrix_order, lapack_int m, lapack_int p,
+ lapack_int n, double* a, lapack_int lda,
+ double* taua, double* b, lapack_int ldb,
+ double* taub, double* work, lapack_int lwork );
+lapack_int LAPACKE_cggrqf_work( int matrix_order, lapack_int m, lapack_int p,
+ lapack_int n, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* taua,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* taub,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zggrqf_work( int matrix_order, lapack_int m, lapack_int p,
+ lapack_int n, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* taua,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* taub,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sggsvd_work( int matrix_order, char jobu, char jobv,
+ char jobq, lapack_int m, lapack_int n,
+ lapack_int p, lapack_int* k, lapack_int* l,
+ float* a, lapack_int lda, float* b,
+ lapack_int ldb, float* alpha, float* beta,
+ float* u, lapack_int ldu, float* v,
+ lapack_int ldv, float* q, lapack_int ldq,
+ float* work, lapack_int* iwork );
+lapack_int LAPACKE_dggsvd_work( int matrix_order, char jobu, char jobv,
+ char jobq, lapack_int m, lapack_int n,
+ lapack_int p, lapack_int* k, lapack_int* l,
+ double* a, lapack_int lda, double* b,
+ lapack_int ldb, double* alpha, double* beta,
+ double* u, lapack_int ldu, double* v,
+ lapack_int ldv, double* q, lapack_int ldq,
+ double* work, lapack_int* iwork );
+lapack_int LAPACKE_cggsvd_work( int matrix_order, char jobu, char jobv,
+ char jobq, lapack_int m, lapack_int n,
+ lapack_int p, lapack_int* k, lapack_int* l,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ float* alpha, float* beta,
+ lapack_complex_float* u, lapack_int ldu,
+ lapack_complex_float* v, lapack_int ldv,
+ lapack_complex_float* q, lapack_int ldq,
+ lapack_complex_float* work, float* rwork,
+ lapack_int* iwork );
+lapack_int LAPACKE_zggsvd_work( int matrix_order, char jobu, char jobv,
+ char jobq, lapack_int m, lapack_int n,
+ lapack_int p, lapack_int* k, lapack_int* l,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ double* alpha, double* beta,
+ lapack_complex_double* u, lapack_int ldu,
+ lapack_complex_double* v, lapack_int ldv,
+ lapack_complex_double* q, lapack_int ldq,
+ lapack_complex_double* work, double* rwork,
+ lapack_int* iwork );
+
+lapack_int LAPACKE_sggsvp_work( int matrix_order, char jobu, char jobv,
+ char jobq, lapack_int m, lapack_int p,
+ lapack_int n, float* a, lapack_int lda,
+ float* b, lapack_int ldb, float tola,
+ float tolb, lapack_int* k, lapack_int* l,
+ float* u, lapack_int ldu, float* v,
+ lapack_int ldv, float* q, lapack_int ldq,
+ lapack_int* iwork, float* tau, float* work );
+lapack_int LAPACKE_dggsvp_work( int matrix_order, char jobu, char jobv,
+ char jobq, lapack_int m, lapack_int p,
+ lapack_int n, double* a, lapack_int lda,
+ double* b, lapack_int ldb, double tola,
+ double tolb, lapack_int* k, lapack_int* l,
+ double* u, lapack_int ldu, double* v,
+ lapack_int ldv, double* q, lapack_int ldq,
+ lapack_int* iwork, double* tau, double* work );
+lapack_int LAPACKE_cggsvp_work( int matrix_order, char jobu, char jobv,
+ char jobq, lapack_int m, lapack_int p,
+ lapack_int n, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb, float tola, float tolb,
+ lapack_int* k, lapack_int* l,
+ lapack_complex_float* u, lapack_int ldu,
+ lapack_complex_float* v, lapack_int ldv,
+ lapack_complex_float* q, lapack_int ldq,
+ lapack_int* iwork, float* rwork,
+ lapack_complex_float* tau,
+ lapack_complex_float* work );
+lapack_int LAPACKE_zggsvp_work( int matrix_order, char jobu, char jobv,
+ char jobq, lapack_int m, lapack_int p,
+ lapack_int n, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb, double tola, double tolb,
+ lapack_int* k, lapack_int* l,
+ lapack_complex_double* u, lapack_int ldu,
+ lapack_complex_double* v, lapack_int ldv,
+ lapack_complex_double* q, lapack_int ldq,
+ lapack_int* iwork, double* rwork,
+ lapack_complex_double* tau,
+ lapack_complex_double* work );
+
+lapack_int LAPACKE_sgtcon_work( char norm, lapack_int n, const float* dl,
+ const float* d, const float* du,
+ const float* du2, const lapack_int* ipiv,
+ float anorm, float* rcond, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dgtcon_work( char norm, lapack_int n, const double* dl,
+ const double* d, const double* du,
+ const double* du2, const lapack_int* ipiv,
+ double anorm, double* rcond, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_cgtcon_work( char norm, lapack_int n,
+ const lapack_complex_float* dl,
+ const lapack_complex_float* d,
+ const lapack_complex_float* du,
+ const lapack_complex_float* du2,
+ const lapack_int* ipiv, float anorm,
+ float* rcond, lapack_complex_float* work );
+lapack_int LAPACKE_zgtcon_work( char norm, lapack_int n,
+ const lapack_complex_double* dl,
+ const lapack_complex_double* d,
+ const lapack_complex_double* du,
+ const lapack_complex_double* du2,
+ const lapack_int* ipiv, double anorm,
+ double* rcond, lapack_complex_double* work );
+
+lapack_int LAPACKE_sgtrfs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const float* dl,
+ const float* d, const float* du,
+ const float* dlf, const float* df,
+ const float* duf, const float* du2,
+ const lapack_int* ipiv, const float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* ferr, float* berr, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dgtrfs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const double* dl,
+ const double* d, const double* du,
+ const double* dlf, const double* df,
+ const double* duf, const double* du2,
+ const lapack_int* ipiv, const double* b,
+ lapack_int ldb, double* x, lapack_int ldx,
+ double* ferr, double* berr, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_cgtrfs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* dl,
+ const lapack_complex_float* d,
+ const lapack_complex_float* du,
+ const lapack_complex_float* dlf,
+ const lapack_complex_float* df,
+ const lapack_complex_float* duf,
+ const lapack_complex_float* du2,
+ const lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zgtrfs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs,
+ const lapack_complex_double* dl,
+ const lapack_complex_double* d,
+ const lapack_complex_double* du,
+ const lapack_complex_double* dlf,
+ const lapack_complex_double* df,
+ const lapack_complex_double* duf,
+ const lapack_complex_double* du2,
+ const lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_sgtsv_work( int matrix_order, lapack_int n, lapack_int nrhs,
+ float* dl, float* d, float* du, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dgtsv_work( int matrix_order, lapack_int n, lapack_int nrhs,
+ double* dl, double* d, double* du, double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_cgtsv_work( int matrix_order, lapack_int n, lapack_int nrhs,
+ lapack_complex_float* dl,
+ lapack_complex_float* d,
+ lapack_complex_float* du,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zgtsv_work( int matrix_order, lapack_int n, lapack_int nrhs,
+ lapack_complex_double* dl,
+ lapack_complex_double* d,
+ lapack_complex_double* du,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_sgtsvx_work( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs, const float* dl,
+ const float* d, const float* du, float* dlf,
+ float* df, float* duf, float* du2,
+ lapack_int* ipiv, const float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr,
+ float* work, lapack_int* iwork );
+lapack_int LAPACKE_dgtsvx_work( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs, const double* dl,
+ const double* d, const double* du, double* dlf,
+ double* df, double* duf, double* du2,
+ lapack_int* ipiv, const double* b,
+ lapack_int ldb, double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr,
+ double* work, lapack_int* iwork );
+lapack_int LAPACKE_cgtsvx_work( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* dl,
+ const lapack_complex_float* d,
+ const lapack_complex_float* du,
+ lapack_complex_float* dlf,
+ lapack_complex_float* df,
+ lapack_complex_float* duf,
+ lapack_complex_float* du2, lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zgtsvx_work( int matrix_order, char fact, char trans,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* dl,
+ const lapack_complex_double* d,
+ const lapack_complex_double* du,
+ lapack_complex_double* dlf,
+ lapack_complex_double* df,
+ lapack_complex_double* duf,
+ lapack_complex_double* du2, lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_sgttrf_work( lapack_int n, float* dl, float* d, float* du,
+ float* du2, lapack_int* ipiv );
+lapack_int LAPACKE_dgttrf_work( lapack_int n, double* dl, double* d, double* du,
+ double* du2, lapack_int* ipiv );
+lapack_int LAPACKE_cgttrf_work( lapack_int n, lapack_complex_float* dl,
+ lapack_complex_float* d,
+ lapack_complex_float* du,
+ lapack_complex_float* du2, lapack_int* ipiv );
+lapack_int LAPACKE_zgttrf_work( lapack_int n, lapack_complex_double* dl,
+ lapack_complex_double* d,
+ lapack_complex_double* du,
+ lapack_complex_double* du2, lapack_int* ipiv );
+
+lapack_int LAPACKE_sgttrs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const float* dl,
+ const float* d, const float* du,
+ const float* du2, const lapack_int* ipiv,
+ float* b, lapack_int ldb );
+lapack_int LAPACKE_dgttrs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const double* dl,
+ const double* d, const double* du,
+ const double* du2, const lapack_int* ipiv,
+ double* b, lapack_int ldb );
+lapack_int LAPACKE_cgttrs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* dl,
+ const lapack_complex_float* d,
+ const lapack_complex_float* du,
+ const lapack_complex_float* du2,
+ const lapack_int* ipiv, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zgttrs_work( int matrix_order, char trans, lapack_int n,
+ lapack_int nrhs,
+ const lapack_complex_double* dl,
+ const lapack_complex_double* d,
+ const lapack_complex_double* du,
+ const lapack_complex_double* du2,
+ const lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_chbev_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_int kd,
+ lapack_complex_float* ab, lapack_int ldab,
+ float* w, lapack_complex_float* z,
+ lapack_int ldz, lapack_complex_float* work,
+ float* rwork );
+lapack_int LAPACKE_zhbev_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_int kd,
+ lapack_complex_double* ab, lapack_int ldab,
+ double* w, lapack_complex_double* z,
+ lapack_int ldz, lapack_complex_double* work,
+ double* rwork );
+
+lapack_int LAPACKE_chbevd_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_int kd,
+ lapack_complex_float* ab, lapack_int ldab,
+ float* w, lapack_complex_float* z,
+ lapack_int ldz, lapack_complex_float* work,
+ lapack_int lwork, float* rwork,
+ lapack_int lrwork, lapack_int* iwork,
+ lapack_int liwork );
+lapack_int LAPACKE_zhbevd_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_int kd,
+ lapack_complex_double* ab, lapack_int ldab,
+ double* w, lapack_complex_double* z,
+ lapack_int ldz, lapack_complex_double* work,
+ lapack_int lwork, double* rwork,
+ lapack_int lrwork, lapack_int* iwork,
+ lapack_int liwork );
+
+lapack_int LAPACKE_chbevx_work( int matrix_order, char jobz, char range,
+ char uplo, lapack_int n, lapack_int kd,
+ lapack_complex_float* ab, lapack_int ldab,
+ lapack_complex_float* q, lapack_int ldq,
+ float vl, float vu, lapack_int il,
+ lapack_int iu, float abstol, lapack_int* m,
+ float* w, lapack_complex_float* z,
+ lapack_int ldz, lapack_complex_float* work,
+ float* rwork, lapack_int* iwork,
+ lapack_int* ifail );
+lapack_int LAPACKE_zhbevx_work( int matrix_order, char jobz, char range,
+ char uplo, lapack_int n, lapack_int kd,
+ lapack_complex_double* ab, lapack_int ldab,
+ lapack_complex_double* q, lapack_int ldq,
+ double vl, double vu, lapack_int il,
+ lapack_int iu, double abstol, lapack_int* m,
+ double* w, lapack_complex_double* z,
+ lapack_int ldz, lapack_complex_double* work,
+ double* rwork, lapack_int* iwork,
+ lapack_int* ifail );
+
+lapack_int LAPACKE_chbgst_work( int matrix_order, char vect, char uplo,
+ lapack_int n, lapack_int ka, lapack_int kb,
+ lapack_complex_float* ab, lapack_int ldab,
+ const lapack_complex_float* bb, lapack_int ldbb,
+ lapack_complex_float* x, lapack_int ldx,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zhbgst_work( int matrix_order, char vect, char uplo,
+ lapack_int n, lapack_int ka, lapack_int kb,
+ lapack_complex_double* ab, lapack_int ldab,
+ const lapack_complex_double* bb,
+ lapack_int ldbb, lapack_complex_double* x,
+ lapack_int ldx, lapack_complex_double* work,
+ double* rwork );
+
+lapack_int LAPACKE_chbgv_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_int ka, lapack_int kb,
+ lapack_complex_float* ab, lapack_int ldab,
+ lapack_complex_float* bb, lapack_int ldbb,
+ float* w, lapack_complex_float* z,
+ lapack_int ldz, lapack_complex_float* work,
+ float* rwork );
+lapack_int LAPACKE_zhbgv_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_int ka, lapack_int kb,
+ lapack_complex_double* ab, lapack_int ldab,
+ lapack_complex_double* bb, lapack_int ldbb,
+ double* w, lapack_complex_double* z,
+ lapack_int ldz, lapack_complex_double* work,
+ double* rwork );
+
+lapack_int LAPACKE_chbgvd_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_int ka, lapack_int kb,
+ lapack_complex_float* ab, lapack_int ldab,
+ lapack_complex_float* bb, lapack_int ldbb,
+ float* w, lapack_complex_float* z,
+ lapack_int ldz, lapack_complex_float* work,
+ lapack_int lwork, float* rwork,
+ lapack_int lrwork, lapack_int* iwork,
+ lapack_int liwork );
+lapack_int LAPACKE_zhbgvd_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_int ka, lapack_int kb,
+ lapack_complex_double* ab, lapack_int ldab,
+ lapack_complex_double* bb, lapack_int ldbb,
+ double* w, lapack_complex_double* z,
+ lapack_int ldz, lapack_complex_double* work,
+ lapack_int lwork, double* rwork,
+ lapack_int lrwork, lapack_int* iwork,
+ lapack_int liwork );
+
+lapack_int LAPACKE_chbgvx_work( int matrix_order, char jobz, char range,
+ char uplo, lapack_int n, lapack_int ka,
+ lapack_int kb, lapack_complex_float* ab,
+ lapack_int ldab, lapack_complex_float* bb,
+ lapack_int ldbb, lapack_complex_float* q,
+ lapack_int ldq, float vl, float vu,
+ lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w,
+ lapack_complex_float* z, lapack_int ldz,
+ lapack_complex_float* work, float* rwork,
+ lapack_int* iwork, lapack_int* ifail );
+lapack_int LAPACKE_zhbgvx_work( int matrix_order, char jobz, char range,
+ char uplo, lapack_int n, lapack_int ka,
+ lapack_int kb, lapack_complex_double* ab,
+ lapack_int ldab, lapack_complex_double* bb,
+ lapack_int ldbb, lapack_complex_double* q,
+ lapack_int ldq, double vl, double vu,
+ lapack_int il, lapack_int iu, double abstol,
+ lapack_int* m, double* w,
+ lapack_complex_double* z, lapack_int ldz,
+ lapack_complex_double* work, double* rwork,
+ lapack_int* iwork, lapack_int* ifail );
+
+lapack_int LAPACKE_chbtrd_work( int matrix_order, char vect, char uplo,
+ lapack_int n, lapack_int kd,
+ lapack_complex_float* ab, lapack_int ldab,
+ float* d, float* e, lapack_complex_float* q,
+ lapack_int ldq, lapack_complex_float* work );
+lapack_int LAPACKE_zhbtrd_work( int matrix_order, char vect, char uplo,
+ lapack_int n, lapack_int kd,
+ lapack_complex_double* ab, lapack_int ldab,
+ double* d, double* e, lapack_complex_double* q,
+ lapack_int ldq, lapack_complex_double* work );
+
+lapack_int LAPACKE_checon_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_int* ipiv, float anorm,
+ float* rcond, lapack_complex_float* work );
+lapack_int LAPACKE_zhecon_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_int* ipiv, double anorm,
+ double* rcond, lapack_complex_double* work );
+
+lapack_int LAPACKE_cheequb_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ float* s, float* scond, float* amax,
+ lapack_complex_float* work );
+lapack_int LAPACKE_zheequb_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ double* s, double* scond, double* amax,
+ lapack_complex_double* work );
+
+lapack_int LAPACKE_cheev_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_complex_float* a,
+ lapack_int lda, float* w,
+ lapack_complex_float* work, lapack_int lwork,
+ float* rwork );
+lapack_int LAPACKE_zheev_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_complex_double* a,
+ lapack_int lda, double* w,
+ lapack_complex_double* work, lapack_int lwork,
+ double* rwork );
+
+lapack_int LAPACKE_cheevd_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_complex_float* a,
+ lapack_int lda, float* w,
+ lapack_complex_float* work, lapack_int lwork,
+ float* rwork, lapack_int lrwork,
+ lapack_int* iwork, lapack_int liwork );
+lapack_int LAPACKE_zheevd_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_complex_double* a,
+ lapack_int lda, double* w,
+ lapack_complex_double* work, lapack_int lwork,
+ double* rwork, lapack_int lrwork,
+ lapack_int* iwork, lapack_int liwork );
+
+lapack_int LAPACKE_cheevr_work( int matrix_order, char jobz, char range,
+ char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ float vl, float vu, lapack_int il,
+ lapack_int iu, float abstol, lapack_int* m,
+ float* w, lapack_complex_float* z,
+ lapack_int ldz, lapack_int* isuppz,
+ lapack_complex_float* work, lapack_int lwork,
+ float* rwork, lapack_int lrwork,
+ lapack_int* iwork, lapack_int liwork );
+lapack_int LAPACKE_zheevr_work( int matrix_order, char jobz, char range,
+ char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ double vl, double vu, lapack_int il,
+ lapack_int iu, double abstol, lapack_int* m,
+ double* w, lapack_complex_double* z,
+ lapack_int ldz, lapack_int* isuppz,
+ lapack_complex_double* work, lapack_int lwork,
+ double* rwork, lapack_int lrwork,
+ lapack_int* iwork, lapack_int liwork );
+
+lapack_int LAPACKE_cheevx_work( int matrix_order, char jobz, char range,
+ char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ float vl, float vu, lapack_int il,
+ lapack_int iu, float abstol, lapack_int* m,
+ float* w, lapack_complex_float* z,
+ lapack_int ldz, lapack_complex_float* work,
+ lapack_int lwork, float* rwork,
+ lapack_int* iwork, lapack_int* ifail );
+lapack_int LAPACKE_zheevx_work( int matrix_order, char jobz, char range,
+ char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ double vl, double vu, lapack_int il,
+ lapack_int iu, double abstol, lapack_int* m,
+ double* w, lapack_complex_double* z,
+ lapack_int ldz, lapack_complex_double* work,
+ lapack_int lwork, double* rwork,
+ lapack_int* iwork, lapack_int* ifail );
+
+lapack_int LAPACKE_chegst_work( int matrix_order, lapack_int itype, char uplo,
+ lapack_int n, lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zhegst_work( int matrix_order, lapack_int itype, char uplo,
+ lapack_int n, lapack_complex_double* a,
+ lapack_int lda, const lapack_complex_double* b,
+ lapack_int ldb );
+
+lapack_int LAPACKE_chegv_work( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb, float* w,
+ lapack_complex_float* work, lapack_int lwork,
+ float* rwork );
+lapack_int LAPACKE_zhegv_work( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ double* w, lapack_complex_double* work,
+ lapack_int lwork, double* rwork );
+
+lapack_int LAPACKE_chegvd_work( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ float* w, lapack_complex_float* work,
+ lapack_int lwork, float* rwork,
+ lapack_int lrwork, lapack_int* iwork,
+ lapack_int liwork );
+lapack_int LAPACKE_zhegvd_work( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ double* w, lapack_complex_double* work,
+ lapack_int lwork, double* rwork,
+ lapack_int lrwork, lapack_int* iwork,
+ lapack_int liwork );
+
+lapack_int LAPACKE_chegvx_work( int matrix_order, lapack_int itype, char jobz,
+ char range, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ float vl, float vu, lapack_int il,
+ lapack_int iu, float abstol, lapack_int* m,
+ float* w, lapack_complex_float* z,
+ lapack_int ldz, lapack_complex_float* work,
+ lapack_int lwork, float* rwork,
+ lapack_int* iwork, lapack_int* ifail );
+lapack_int LAPACKE_zhegvx_work( int matrix_order, lapack_int itype, char jobz,
+ char range, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ double vl, double vu, lapack_int il,
+ lapack_int iu, double abstol, lapack_int* m,
+ double* w, lapack_complex_double* z,
+ lapack_int ldz, lapack_complex_double* work,
+ lapack_int lwork, double* rwork,
+ lapack_int* iwork, lapack_int* ifail );
+
+lapack_int LAPACKE_cherfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zherfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, const lapack_complex_double* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_cherfsx_work( int matrix_order, char uplo, char equed,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const float* s, const lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* rcond, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params, lapack_complex_float* work,
+ float* rwork );
+lapack_int LAPACKE_zherfsx_work( int matrix_order, char uplo, char equed,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const double* s,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params, lapack_complex_double* work,
+ double* rwork );
+
+lapack_int LAPACKE_chesv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_float* a,
+ lapack_int lda, lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zhesv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* a,
+ lapack_int lda, lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_chesvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* af, lapack_int ldaf,
+ lapack_int* ipiv, const lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* rcond, float* ferr,
+ float* berr, lapack_complex_float* work,
+ lapack_int lwork, float* rwork );
+lapack_int LAPACKE_zhesvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* af, lapack_int ldaf,
+ lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr,
+ lapack_complex_double* work, lapack_int lwork,
+ double* rwork );
+
+lapack_int LAPACKE_chesvxx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, float* s,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* rpvgrw, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params, lapack_complex_float* work,
+ float* rwork );
+lapack_int LAPACKE_zhesvxx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, double* s,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* rpvgrw, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params, lapack_complex_double* work,
+ double* rwork );
+
+lapack_int LAPACKE_chetrd_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ float* d, float* e, lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zhetrd_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ double* d, double* e,
+ lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_chetrf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* ipiv, lapack_complex_float* work,
+ lapack_int lwork );
+lapack_int LAPACKE_zhetrf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* ipiv, lapack_complex_double* work,
+ lapack_int lwork );
+
+lapack_int LAPACKE_chetri_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ const lapack_int* ipiv,
+ lapack_complex_float* work );
+lapack_int LAPACKE_zhetri_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ const lapack_int* ipiv,
+ lapack_complex_double* work );
+
+lapack_int LAPACKE_chetrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zhetrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_chfrk_work( int matrix_order, char transr, char uplo,
+ char trans, lapack_int n, lapack_int k,
+ float alpha, const lapack_complex_float* a,
+ lapack_int lda, float beta,
+ lapack_complex_float* c );
+lapack_int LAPACKE_zhfrk_work( int matrix_order, char transr, char uplo,
+ char trans, lapack_int n, lapack_int k,
+ double alpha, const lapack_complex_double* a,
+ lapack_int lda, double beta,
+ lapack_complex_double* c );
+
+lapack_int LAPACKE_shgeqz_work( int matrix_order, char job, char compq,
+ char compz, lapack_int n, lapack_int ilo,
+ lapack_int ihi, float* h, lapack_int ldh,
+ float* t, lapack_int ldt, float* alphar,
+ float* alphai, float* beta, float* q,
+ lapack_int ldq, float* z, lapack_int ldz,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dhgeqz_work( int matrix_order, char job, char compq,
+ char compz, lapack_int n, lapack_int ilo,
+ lapack_int ihi, double* h, lapack_int ldh,
+ double* t, lapack_int ldt, double* alphar,
+ double* alphai, double* beta, double* q,
+ lapack_int ldq, double* z, lapack_int ldz,
+ double* work, lapack_int lwork );
+lapack_int LAPACKE_chgeqz_work( int matrix_order, char job, char compq,
+ char compz, lapack_int n, lapack_int ilo,
+ lapack_int ihi, lapack_complex_float* h,
+ lapack_int ldh, lapack_complex_float* t,
+ lapack_int ldt, lapack_complex_float* alpha,
+ lapack_complex_float* beta,
+ lapack_complex_float* q, lapack_int ldq,
+ lapack_complex_float* z, lapack_int ldz,
+ lapack_complex_float* work, lapack_int lwork,
+ float* rwork );
+lapack_int LAPACKE_zhgeqz_work( int matrix_order, char job, char compq,
+ char compz, lapack_int n, lapack_int ilo,
+ lapack_int ihi, lapack_complex_double* h,
+ lapack_int ldh, lapack_complex_double* t,
+ lapack_int ldt, lapack_complex_double* alpha,
+ lapack_complex_double* beta,
+ lapack_complex_double* q, lapack_int ldq,
+ lapack_complex_double* z, lapack_int ldz,
+ lapack_complex_double* work, lapack_int lwork,
+ double* rwork );
+
+lapack_int LAPACKE_chpcon_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* ap,
+ const lapack_int* ipiv, float anorm,
+ float* rcond, lapack_complex_float* work );
+lapack_int LAPACKE_zhpcon_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* ap,
+ const lapack_int* ipiv, double anorm,
+ double* rcond, lapack_complex_double* work );
+
+lapack_int LAPACKE_chpev_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_complex_float* ap, float* w,
+ lapack_complex_float* z, lapack_int ldz,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zhpev_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_complex_double* ap,
+ double* w, lapack_complex_double* z,
+ lapack_int ldz, lapack_complex_double* work,
+ double* rwork );
+
+lapack_int LAPACKE_chpevd_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_complex_float* ap,
+ float* w, lapack_complex_float* z,
+ lapack_int ldz, lapack_complex_float* work,
+ lapack_int lwork, float* rwork,
+ lapack_int lrwork, lapack_int* iwork,
+ lapack_int liwork );
+lapack_int LAPACKE_zhpevd_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_complex_double* ap,
+ double* w, lapack_complex_double* z,
+ lapack_int ldz, lapack_complex_double* work,
+ lapack_int lwork, double* rwork,
+ lapack_int lrwork, lapack_int* iwork,
+ lapack_int liwork );
+
+lapack_int LAPACKE_chpevx_work( int matrix_order, char jobz, char range,
+ char uplo, lapack_int n,
+ lapack_complex_float* ap, float vl, float vu,
+ lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w,
+ lapack_complex_float* z, lapack_int ldz,
+ lapack_complex_float* work, float* rwork,
+ lapack_int* iwork, lapack_int* ifail );
+lapack_int LAPACKE_zhpevx_work( int matrix_order, char jobz, char range,
+ char uplo, lapack_int n,
+ lapack_complex_double* ap, double vl, double vu,
+ lapack_int il, lapack_int iu, double abstol,
+ lapack_int* m, double* w,
+ lapack_complex_double* z, lapack_int ldz,
+ lapack_complex_double* work, double* rwork,
+ lapack_int* iwork, lapack_int* ifail );
+
+lapack_int LAPACKE_chpgst_work( int matrix_order, lapack_int itype, char uplo,
+ lapack_int n, lapack_complex_float* ap,
+ const lapack_complex_float* bp );
+lapack_int LAPACKE_zhpgst_work( int matrix_order, lapack_int itype, char uplo,
+ lapack_int n, lapack_complex_double* ap,
+ const lapack_complex_double* bp );
+
+lapack_int LAPACKE_chpgv_work( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n,
+ lapack_complex_float* ap,
+ lapack_complex_float* bp, float* w,
+ lapack_complex_float* z, lapack_int ldz,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zhpgv_work( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n,
+ lapack_complex_double* ap,
+ lapack_complex_double* bp, double* w,
+ lapack_complex_double* z, lapack_int ldz,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_chpgvd_work( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n,
+ lapack_complex_float* ap,
+ lapack_complex_float* bp, float* w,
+ lapack_complex_float* z, lapack_int ldz,
+ lapack_complex_float* work, lapack_int lwork,
+ float* rwork, lapack_int lrwork,
+ lapack_int* iwork, lapack_int liwork );
+lapack_int LAPACKE_zhpgvd_work( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n,
+ lapack_complex_double* ap,
+ lapack_complex_double* bp, double* w,
+ lapack_complex_double* z, lapack_int ldz,
+ lapack_complex_double* work, lapack_int lwork,
+ double* rwork, lapack_int lrwork,
+ lapack_int* iwork, lapack_int liwork );
+
+lapack_int LAPACKE_chpgvx_work( int matrix_order, lapack_int itype, char jobz,
+ char range, char uplo, lapack_int n,
+ lapack_complex_float* ap,
+ lapack_complex_float* bp, float vl, float vu,
+ lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w,
+ lapack_complex_float* z, lapack_int ldz,
+ lapack_complex_float* work, float* rwork,
+ lapack_int* iwork, lapack_int* ifail );
+lapack_int LAPACKE_zhpgvx_work( int matrix_order, lapack_int itype, char jobz,
+ char range, char uplo, lapack_int n,
+ lapack_complex_double* ap,
+ lapack_complex_double* bp, double vl, double vu,
+ lapack_int il, lapack_int iu, double abstol,
+ lapack_int* m, double* w,
+ lapack_complex_double* z, lapack_int ldz,
+ lapack_complex_double* work, double* rwork,
+ lapack_int* iwork, lapack_int* ifail );
+
+lapack_int LAPACKE_chprfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* ap,
+ const lapack_complex_float* afp,
+ const lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zhprfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs,
+ const lapack_complex_double* ap,
+ const lapack_complex_double* afp,
+ const lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_chpsv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_float* ap,
+ lapack_int* ipiv, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zhpsv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* ap,
+ lapack_int* ipiv, lapack_complex_double* b,
+ lapack_int ldb );
+
+lapack_int LAPACKE_chpsvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* ap,
+ lapack_complex_float* afp, lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zhpsvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* ap,
+ lapack_complex_double* afp, lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_chptrd_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* ap, float* d, float* e,
+ lapack_complex_float* tau );
+lapack_int LAPACKE_zhptrd_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* ap, double* d, double* e,
+ lapack_complex_double* tau );
+
+lapack_int LAPACKE_chptrf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* ap, lapack_int* ipiv );
+lapack_int LAPACKE_zhptrf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* ap, lapack_int* ipiv );
+
+lapack_int LAPACKE_chptri_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* ap,
+ const lapack_int* ipiv,
+ lapack_complex_float* work );
+lapack_int LAPACKE_zhptri_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* ap,
+ const lapack_int* ipiv,
+ lapack_complex_double* work );
+
+lapack_int LAPACKE_chptrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* ap,
+ const lapack_int* ipiv, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zhptrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs,
+ const lapack_complex_double* ap,
+ const lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_shsein_work( int matrix_order, char job, char eigsrc,
+ char initv, lapack_logical* select,
+ lapack_int n, const float* h, lapack_int ldh,
+ float* wr, const float* wi, float* vl,
+ lapack_int ldvl, float* vr, lapack_int ldvr,
+ lapack_int mm, lapack_int* m, float* work,
+ lapack_int* ifaill, lapack_int* ifailr );
+lapack_int LAPACKE_dhsein_work( int matrix_order, char job, char eigsrc,
+ char initv, lapack_logical* select,
+ lapack_int n, const double* h, lapack_int ldh,
+ double* wr, const double* wi, double* vl,
+ lapack_int ldvl, double* vr, lapack_int ldvr,
+ lapack_int mm, lapack_int* m, double* work,
+ lapack_int* ifaill, lapack_int* ifailr );
+lapack_int LAPACKE_chsein_work( int matrix_order, char job, char eigsrc,
+ char initv, const lapack_logical* select,
+ lapack_int n, const lapack_complex_float* h,
+ lapack_int ldh, lapack_complex_float* w,
+ lapack_complex_float* vl, lapack_int ldvl,
+ lapack_complex_float* vr, lapack_int ldvr,
+ lapack_int mm, lapack_int* m,
+ lapack_complex_float* work, float* rwork,
+ lapack_int* ifaill, lapack_int* ifailr );
+lapack_int LAPACKE_zhsein_work( int matrix_order, char job, char eigsrc,
+ char initv, const lapack_logical* select,
+ lapack_int n, const lapack_complex_double* h,
+ lapack_int ldh, lapack_complex_double* w,
+ lapack_complex_double* vl, lapack_int ldvl,
+ lapack_complex_double* vr, lapack_int ldvr,
+ lapack_int mm, lapack_int* m,
+ lapack_complex_double* work, double* rwork,
+ lapack_int* ifaill, lapack_int* ifailr );
+
+lapack_int LAPACKE_shseqr_work( int matrix_order, char job, char compz,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ float* h, lapack_int ldh, float* wr, float* wi,
+ float* z, lapack_int ldz, float* work,
+ lapack_int lwork );
+lapack_int LAPACKE_dhseqr_work( int matrix_order, char job, char compz,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ double* h, lapack_int ldh, double* wr,
+ double* wi, double* z, lapack_int ldz,
+ double* work, lapack_int lwork );
+lapack_int LAPACKE_chseqr_work( int matrix_order, char job, char compz,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ lapack_complex_float* h, lapack_int ldh,
+ lapack_complex_float* w,
+ lapack_complex_float* z, lapack_int ldz,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zhseqr_work( int matrix_order, char job, char compz,
+ lapack_int n, lapack_int ilo, lapack_int ihi,
+ lapack_complex_double* h, lapack_int ldh,
+ lapack_complex_double* w,
+ lapack_complex_double* z, lapack_int ldz,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_clacgv_work( lapack_int n, lapack_complex_float* x,
+ lapack_int incx );
+lapack_int LAPACKE_zlacgv_work( lapack_int n, lapack_complex_double* x,
+ lapack_int incx );
+
+lapack_int LAPACKE_slacpy_work( int matrix_order, char uplo, lapack_int m,
+ lapack_int n, const float* a, lapack_int lda,
+ float* b, lapack_int ldb );
+lapack_int LAPACKE_dlacpy_work( int matrix_order, char uplo, lapack_int m,
+ lapack_int n, const double* a, lapack_int lda,
+ double* b, lapack_int ldb );
+lapack_int LAPACKE_clacpy_work( int matrix_order, char uplo, lapack_int m,
+ lapack_int n, const lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zlacpy_work( int matrix_order, char uplo, lapack_int m,
+ lapack_int n, const lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb );
+
+lapack_int LAPACKE_zlag2c_work( int matrix_order, lapack_int m, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ lapack_complex_float* sa, lapack_int ldsa );
+
+lapack_int LAPACKE_slag2d_work( int matrix_order, lapack_int m, lapack_int n,
+ const float* sa, lapack_int ldsa, double* a,
+ lapack_int lda );
+
+lapack_int LAPACKE_dlag2s_work( int matrix_order, lapack_int m, lapack_int n,
+ const double* a, lapack_int lda, float* sa,
+ lapack_int ldsa );
+
+lapack_int LAPACKE_clag2z_work( int matrix_order, lapack_int m, lapack_int n,
+ const lapack_complex_float* sa, lapack_int ldsa,
+ lapack_complex_double* a, lapack_int lda );
+
+lapack_int LAPACKE_slagge_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku, const float* d,
+ float* a, lapack_int lda, lapack_int* iseed,
+ float* work );
+lapack_int LAPACKE_dlagge_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku, const double* d,
+ double* a, lapack_int lda, lapack_int* iseed,
+ double* work );
+lapack_int LAPACKE_clagge_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku, const float* d,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* iseed, lapack_complex_float* work );
+lapack_int LAPACKE_zlagge_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int kl, lapack_int ku, const double* d,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* iseed,
+ lapack_complex_double* work );
+
+lapack_int LAPACKE_claghe_work( int matrix_order, lapack_int n, lapack_int k,
+ const float* d, lapack_complex_float* a,
+ lapack_int lda, lapack_int* iseed,
+ lapack_complex_float* work );
+lapack_int LAPACKE_zlaghe_work( int matrix_order, lapack_int n, lapack_int k,
+ const double* d, lapack_complex_double* a,
+ lapack_int lda, lapack_int* iseed,
+ lapack_complex_double* work );
+
+lapack_int LAPACKE_slagsy_work( int matrix_order, lapack_int n, lapack_int k,
+ const float* d, float* a, lapack_int lda,
+ lapack_int* iseed, float* work );
+lapack_int LAPACKE_dlagsy_work( int matrix_order, lapack_int n, lapack_int k,
+ const double* d, double* a, lapack_int lda,
+ lapack_int* iseed, double* work );
+lapack_int LAPACKE_clagsy_work( int matrix_order, lapack_int n, lapack_int k,
+ const float* d, lapack_complex_float* a,
+ lapack_int lda, lapack_int* iseed,
+ lapack_complex_float* work );
+lapack_int LAPACKE_zlagsy_work( int matrix_order, lapack_int n, lapack_int k,
+ const double* d, lapack_complex_double* a,
+ lapack_int lda, lapack_int* iseed,
+ lapack_complex_double* work );
+
+lapack_int LAPACKE_slapmr_work( int matrix_order, lapack_logical forwrd,
+ lapack_int m, lapack_int n, float* x,
+ lapack_int ldx, lapack_int* k );
+lapack_int LAPACKE_dlapmr_work( int matrix_order, lapack_logical forwrd,
+ lapack_int m, lapack_int n, double* x,
+ lapack_int ldx, lapack_int* k );
+lapack_int LAPACKE_clapmr_work( int matrix_order, lapack_logical forwrd,
+ lapack_int m, lapack_int n,
+ lapack_complex_float* x, lapack_int ldx,
+ lapack_int* k );
+lapack_int LAPACKE_zlapmr_work( int matrix_order, lapack_logical forwrd,
+ lapack_int m, lapack_int n,
+ lapack_complex_double* x, lapack_int ldx,
+ lapack_int* k );
+
+lapack_int LAPACKE_slartgp_work( float f, float g, float* cs, float* sn,
+ float* r );
+lapack_int LAPACKE_dlartgp_work( double f, double g, double* cs, double* sn,
+ double* r );
+
+lapack_int LAPACKE_slartgs_work( float x, float y, float sigma, float* cs,
+ float* sn );
+lapack_int LAPACKE_dlartgs_work( double x, double y, double sigma, double* cs,
+ double* sn );
+
+float LAPACKE_slapy2_work( float x, float y );
+double LAPACKE_dlapy2_work( double x, double y );
+
+float LAPACKE_slapy3_work( float x, float y, float z );
+double LAPACKE_dlapy3_work( double x, double y, double z );
+
+float LAPACKE_slamch_work( char cmach );
+double LAPACKE_dlamch_work( char cmach );
+
+float LAPACKE_slange_work( int matrix_order, char norm, lapack_int m,
+ lapack_int n, const float* a, lapack_int lda,
+ float* work );
+double LAPACKE_dlange_work( int matrix_order, char norm, lapack_int m,
+ lapack_int n, const double* a, lapack_int lda,
+ double* work );
+float LAPACKE_clange_work( int matrix_order, char norm, lapack_int m,
+ lapack_int n, const lapack_complex_float* a,
+ lapack_int lda, float* work );
+double LAPACKE_zlange_work( int matrix_order, char norm, lapack_int m,
+ lapack_int n, const lapack_complex_double* a,
+ lapack_int lda, double* work );
+
+float LAPACKE_clanhe_work( int matrix_order, char norm, char uplo,
+ lapack_int n, const lapack_complex_float* a,
+ lapack_int lda, float* work );
+double LAPACKE_zlanhe_work( int matrix_order, char norm, char uplo,
+ lapack_int n, const lapack_complex_double* a,
+ lapack_int lda, double* work );
+
+float LAPACKE_slansy_work( int matrix_order, char norm, char uplo,
+ lapack_int n, const float* a, lapack_int lda,
+ float* work );
+double LAPACKE_dlansy_work( int matrix_order, char norm, char uplo,
+ lapack_int n, const double* a, lapack_int lda,
+ double* work );
+float LAPACKE_clansy_work( int matrix_order, char norm, char uplo,
+ lapack_int n, const lapack_complex_float* a,
+ lapack_int lda, float* work );
+double LAPACKE_zlansy_work( int matrix_order, char norm, char uplo,
+ lapack_int n, const lapack_complex_double* a,
+ lapack_int lda, double* work );
+
+float LAPACKE_slantr_work( int matrix_order, char norm, char uplo,
+ char diag, lapack_int m, lapack_int n, const float* a,
+ lapack_int lda, float* work );
+double LAPACKE_dlantr_work( int matrix_order, char norm, char uplo,
+ char diag, lapack_int m, lapack_int n,
+ const double* a, lapack_int lda, double* work );
+float LAPACKE_clantr_work( int matrix_order, char norm, char uplo,
+ char diag, lapack_int m, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ float* work );
+double LAPACKE_zlantr_work( int matrix_order, char norm, char uplo,
+ char diag, lapack_int m, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ double* work );
+
+lapack_int LAPACKE_slarfb_work( int matrix_order, char side, char trans,
+ char direct, char storev, lapack_int m,
+ lapack_int n, lapack_int k, const float* v,
+ lapack_int ldv, const float* t, lapack_int ldt,
+ float* c, lapack_int ldc, float* work,
+ lapack_int ldwork );
+lapack_int LAPACKE_dlarfb_work( int matrix_order, char side, char trans,
+ char direct, char storev, lapack_int m,
+ lapack_int n, lapack_int k, const double* v,
+ lapack_int ldv, const double* t, lapack_int ldt,
+ double* c, lapack_int ldc, double* work,
+ lapack_int ldwork );
+lapack_int LAPACKE_clarfb_work( int matrix_order, char side, char trans,
+ char direct, char storev, lapack_int m,
+ lapack_int n, lapack_int k,
+ const lapack_complex_float* v, lapack_int ldv,
+ const lapack_complex_float* t, lapack_int ldt,
+ lapack_complex_float* c, lapack_int ldc,
+ lapack_complex_float* work, lapack_int ldwork );
+lapack_int LAPACKE_zlarfb_work( int matrix_order, char side, char trans,
+ char direct, char storev, lapack_int m,
+ lapack_int n, lapack_int k,
+ const lapack_complex_double* v, lapack_int ldv,
+ const lapack_complex_double* t, lapack_int ldt,
+ lapack_complex_double* c, lapack_int ldc,
+ lapack_complex_double* work,
+ lapack_int ldwork );
+
+lapack_int LAPACKE_slarfg_work( lapack_int n, float* alpha, float* x,
+ lapack_int incx, float* tau );
+lapack_int LAPACKE_dlarfg_work( lapack_int n, double* alpha, double* x,
+ lapack_int incx, double* tau );
+lapack_int LAPACKE_clarfg_work( lapack_int n, lapack_complex_float* alpha,
+ lapack_complex_float* x, lapack_int incx,
+ lapack_complex_float* tau );
+lapack_int LAPACKE_zlarfg_work( lapack_int n, lapack_complex_double* alpha,
+ lapack_complex_double* x, lapack_int incx,
+ lapack_complex_double* tau );
+
+lapack_int LAPACKE_slarft_work( int matrix_order, char direct, char storev,
+ lapack_int n, lapack_int k, const float* v,
+ lapack_int ldv, const float* tau, float* t,
+ lapack_int ldt );
+lapack_int LAPACKE_dlarft_work( int matrix_order, char direct, char storev,
+ lapack_int n, lapack_int k, const double* v,
+ lapack_int ldv, const double* tau, double* t,
+ lapack_int ldt );
+lapack_int LAPACKE_clarft_work( int matrix_order, char direct, char storev,
+ lapack_int n, lapack_int k,
+ const lapack_complex_float* v, lapack_int ldv,
+ const lapack_complex_float* tau,
+ lapack_complex_float* t, lapack_int ldt );
+lapack_int LAPACKE_zlarft_work( int matrix_order, char direct, char storev,
+ lapack_int n, lapack_int k,
+ const lapack_complex_double* v, lapack_int ldv,
+ const lapack_complex_double* tau,
+ lapack_complex_double* t, lapack_int ldt );
+
+lapack_int LAPACKE_slarfx_work( int matrix_order, char side, lapack_int m,
+ lapack_int n, const float* v, float tau,
+ float* c, lapack_int ldc, float* work );
+lapack_int LAPACKE_dlarfx_work( int matrix_order, char side, lapack_int m,
+ lapack_int n, const double* v, double tau,
+ double* c, lapack_int ldc, double* work );
+lapack_int LAPACKE_clarfx_work( int matrix_order, char side, lapack_int m,
+ lapack_int n, const lapack_complex_float* v,
+ lapack_complex_float tau,
+ lapack_complex_float* c, lapack_int ldc,
+ lapack_complex_float* work );
+lapack_int LAPACKE_zlarfx_work( int matrix_order, char side, lapack_int m,
+ lapack_int n, const lapack_complex_double* v,
+ lapack_complex_double tau,
+ lapack_complex_double* c, lapack_int ldc,
+ lapack_complex_double* work );
+
+lapack_int LAPACKE_slarnv_work( lapack_int idist, lapack_int* iseed,
+ lapack_int n, float* x );
+lapack_int LAPACKE_dlarnv_work( lapack_int idist, lapack_int* iseed,
+ lapack_int n, double* x );
+lapack_int LAPACKE_clarnv_work( lapack_int idist, lapack_int* iseed,
+ lapack_int n, lapack_complex_float* x );
+lapack_int LAPACKE_zlarnv_work( lapack_int idist, lapack_int* iseed,
+ lapack_int n, lapack_complex_double* x );
+
+lapack_int LAPACKE_slaset_work( int matrix_order, char uplo, lapack_int m,
+ lapack_int n, float alpha, float beta, float* a,
+ lapack_int lda );
+lapack_int LAPACKE_dlaset_work( int matrix_order, char uplo, lapack_int m,
+ lapack_int n, double alpha, double beta,
+ double* a, lapack_int lda );
+lapack_int LAPACKE_claset_work( int matrix_order, char uplo, lapack_int m,
+ lapack_int n, lapack_complex_float alpha,
+ lapack_complex_float beta,
+ lapack_complex_float* a, lapack_int lda );
+lapack_int LAPACKE_zlaset_work( int matrix_order, char uplo, lapack_int m,
+ lapack_int n, lapack_complex_double alpha,
+ lapack_complex_double beta,
+ lapack_complex_double* a, lapack_int lda );
+
+lapack_int LAPACKE_slasrt_work( char id, lapack_int n, float* d );
+lapack_int LAPACKE_dlasrt_work( char id, lapack_int n, double* d );
+
+lapack_int LAPACKE_slaswp_work( int matrix_order, lapack_int n, float* a,
+ lapack_int lda, lapack_int k1, lapack_int k2,
+ const lapack_int* ipiv, lapack_int incx );
+lapack_int LAPACKE_dlaswp_work( int matrix_order, lapack_int n, double* a,
+ lapack_int lda, lapack_int k1, lapack_int k2,
+ const lapack_int* ipiv, lapack_int incx );
+lapack_int LAPACKE_claswp_work( int matrix_order, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int k1, lapack_int k2,
+ const lapack_int* ipiv, lapack_int incx );
+lapack_int LAPACKE_zlaswp_work( int matrix_order, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int k1, lapack_int k2,
+ const lapack_int* ipiv, lapack_int incx );
+
+lapack_int LAPACKE_slatms_work( int matrix_order, lapack_int m, lapack_int n,
+ char dist, lapack_int* iseed, char sym,
+ float* d, lapack_int mode, float cond,
+ float dmax, lapack_int kl, lapack_int ku,
+ char pack, float* a, lapack_int lda,
+ float* work );
+lapack_int LAPACKE_dlatms_work( int matrix_order, lapack_int m, lapack_int n,
+ char dist, lapack_int* iseed, char sym,
+ double* d, lapack_int mode, double cond,
+ double dmax, lapack_int kl, lapack_int ku,
+ char pack, double* a, lapack_int lda,
+ double* work );
+lapack_int LAPACKE_clatms_work( int matrix_order, lapack_int m, lapack_int n,
+ char dist, lapack_int* iseed, char sym,
+ float* d, lapack_int mode, float cond,
+ float dmax, lapack_int kl, lapack_int ku,
+ char pack, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* work );
+lapack_int LAPACKE_zlatms_work( int matrix_order, lapack_int m, lapack_int n,
+ char dist, lapack_int* iseed, char sym,
+ double* d, lapack_int mode, double cond,
+ double dmax, lapack_int kl, lapack_int ku,
+ char pack, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* work );
+
+lapack_int LAPACKE_slauum_work( int matrix_order, char uplo, lapack_int n,
+ float* a, lapack_int lda );
+lapack_int LAPACKE_dlauum_work( int matrix_order, char uplo, lapack_int n,
+ double* a, lapack_int lda );
+lapack_int LAPACKE_clauum_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda );
+lapack_int LAPACKE_zlauum_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda );
+
+lapack_int LAPACKE_sopgtr_work( int matrix_order, char uplo, lapack_int n,
+ const float* ap, const float* tau, float* q,
+ lapack_int ldq, float* work );
+lapack_int LAPACKE_dopgtr_work( int matrix_order, char uplo, lapack_int n,
+ const double* ap, const double* tau, double* q,
+ lapack_int ldq, double* work );
+
+lapack_int LAPACKE_sopmtr_work( int matrix_order, char side, char uplo,
+ char trans, lapack_int m, lapack_int n,
+ const float* ap, const float* tau, float* c,
+ lapack_int ldc, float* work );
+lapack_int LAPACKE_dopmtr_work( int matrix_order, char side, char uplo,
+ char trans, lapack_int m, lapack_int n,
+ const double* ap, const double* tau, double* c,
+ lapack_int ldc, double* work );
+
+lapack_int LAPACKE_sorgbr_work( int matrix_order, char vect, lapack_int m,
+ lapack_int n, lapack_int k, float* a,
+ lapack_int lda, const float* tau, float* work,
+ lapack_int lwork );
+lapack_int LAPACKE_dorgbr_work( int matrix_order, char vect, lapack_int m,
+ lapack_int n, lapack_int k, double* a,
+ lapack_int lda, const double* tau, double* work,
+ lapack_int lwork );
+
+lapack_int LAPACKE_sorghr_work( int matrix_order, lapack_int n, lapack_int ilo,
+ lapack_int ihi, float* a, lapack_int lda,
+ const float* tau, float* work,
+ lapack_int lwork );
+lapack_int LAPACKE_dorghr_work( int matrix_order, lapack_int n, lapack_int ilo,
+ lapack_int ihi, double* a, lapack_int lda,
+ const double* tau, double* work,
+ lapack_int lwork );
+
+lapack_int LAPACKE_sorglq_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, float* a, lapack_int lda,
+ const float* tau, float* work,
+ lapack_int lwork );
+lapack_int LAPACKE_dorglq_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, double* a, lapack_int lda,
+ const double* tau, double* work,
+ lapack_int lwork );
+
+lapack_int LAPACKE_sorgql_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, float* a, lapack_int lda,
+ const float* tau, float* work,
+ lapack_int lwork );
+lapack_int LAPACKE_dorgql_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, double* a, lapack_int lda,
+ const double* tau, double* work,
+ lapack_int lwork );
+
+lapack_int LAPACKE_sorgqr_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, float* a, lapack_int lda,
+ const float* tau, float* work,
+ lapack_int lwork );
+lapack_int LAPACKE_dorgqr_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, double* a, lapack_int lda,
+ const double* tau, double* work,
+ lapack_int lwork );
+
+lapack_int LAPACKE_sorgrq_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, float* a, lapack_int lda,
+ const float* tau, float* work,
+ lapack_int lwork );
+lapack_int LAPACKE_dorgrq_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, double* a, lapack_int lda,
+ const double* tau, double* work,
+ lapack_int lwork );
+
+lapack_int LAPACKE_sorgtr_work( int matrix_order, char uplo, lapack_int n,
+ float* a, lapack_int lda, const float* tau,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dorgtr_work( int matrix_order, char uplo, lapack_int n,
+ double* a, lapack_int lda, const double* tau,
+ double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sormbr_work( int matrix_order, char vect, char side,
+ char trans, lapack_int m, lapack_int n,
+ lapack_int k, const float* a, lapack_int lda,
+ const float* tau, float* c, lapack_int ldc,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dormbr_work( int matrix_order, char vect, char side,
+ char trans, lapack_int m, lapack_int n,
+ lapack_int k, const double* a, lapack_int lda,
+ const double* tau, double* c, lapack_int ldc,
+ double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sormhr_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int ilo,
+ lapack_int ihi, const float* a, lapack_int lda,
+ const float* tau, float* c, lapack_int ldc,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dormhr_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int ilo,
+ lapack_int ihi, const double* a, lapack_int lda,
+ const double* tau, double* c, lapack_int ldc,
+ double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sormlq_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const float* a, lapack_int lda,
+ const float* tau, float* c, lapack_int ldc,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dormlq_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const double* a, lapack_int lda,
+ const double* tau, double* c, lapack_int ldc,
+ double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sormql_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const float* a, lapack_int lda,
+ const float* tau, float* c, lapack_int ldc,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dormql_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const double* a, lapack_int lda,
+ const double* tau, double* c, lapack_int ldc,
+ double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sormqr_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const float* a, lapack_int lda,
+ const float* tau, float* c, lapack_int ldc,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dormqr_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const double* a, lapack_int lda,
+ const double* tau, double* c, lapack_int ldc,
+ double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sormrq_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const float* a, lapack_int lda,
+ const float* tau, float* c, lapack_int ldc,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dormrq_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const double* a, lapack_int lda,
+ const double* tau, double* c, lapack_int ldc,
+ double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sormrz_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int l, const float* a, lapack_int lda,
+ const float* tau, float* c, lapack_int ldc,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dormrz_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int l, const double* a, lapack_int lda,
+ const double* tau, double* c, lapack_int ldc,
+ double* work, lapack_int lwork );
+
+lapack_int LAPACKE_sormtr_work( int matrix_order, char side, char uplo,
+ char trans, lapack_int m, lapack_int n,
+ const float* a, lapack_int lda,
+ const float* tau, float* c, lapack_int ldc,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dormtr_work( int matrix_order, char side, char uplo,
+ char trans, lapack_int m, lapack_int n,
+ const double* a, lapack_int lda,
+ const double* tau, double* c, lapack_int ldc,
+ double* work, lapack_int lwork );
+
+lapack_int LAPACKE_spbcon_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, const float* ab, lapack_int ldab,
+ float anorm, float* rcond, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dpbcon_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, const double* ab,
+ lapack_int ldab, double anorm, double* rcond,
+ double* work, lapack_int* iwork );
+lapack_int LAPACKE_cpbcon_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, const lapack_complex_float* ab,
+ lapack_int ldab, float anorm, float* rcond,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zpbcon_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, const lapack_complex_double* ab,
+ lapack_int ldab, double anorm, double* rcond,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_spbequ_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, const float* ab, lapack_int ldab,
+ float* s, float* scond, float* amax );
+lapack_int LAPACKE_dpbequ_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, const double* ab,
+ lapack_int ldab, double* s, double* scond,
+ double* amax );
+lapack_int LAPACKE_cpbequ_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, const lapack_complex_float* ab,
+ lapack_int ldab, float* s, float* scond,
+ float* amax );
+lapack_int LAPACKE_zpbequ_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, const lapack_complex_double* ab,
+ lapack_int ldab, double* s, double* scond,
+ double* amax );
+
+lapack_int LAPACKE_spbrfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs, const float* ab,
+ lapack_int ldab, const float* afb,
+ lapack_int ldafb, const float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* ferr, float* berr, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dpbrfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs,
+ const double* ab, lapack_int ldab,
+ const double* afb, lapack_int ldafb,
+ const double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* ferr, double* berr,
+ double* work, lapack_int* iwork );
+lapack_int LAPACKE_cpbrfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs,
+ const lapack_complex_float* ab, lapack_int ldab,
+ const lapack_complex_float* afb,
+ lapack_int ldafb, const lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zpbrfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs,
+ const lapack_complex_double* ab,
+ lapack_int ldab,
+ const lapack_complex_double* afb,
+ lapack_int ldafb,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_spbstf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kb, float* bb, lapack_int ldbb );
+lapack_int LAPACKE_dpbstf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kb, double* bb, lapack_int ldbb );
+lapack_int LAPACKE_cpbstf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kb, lapack_complex_float* bb,
+ lapack_int ldbb );
+lapack_int LAPACKE_zpbstf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kb, lapack_complex_double* bb,
+ lapack_int ldbb );
+
+lapack_int LAPACKE_spbsv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs, float* ab,
+ lapack_int ldab, float* b, lapack_int ldb );
+lapack_int LAPACKE_dpbsv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs, double* ab,
+ lapack_int ldab, double* b, lapack_int ldb );
+lapack_int LAPACKE_cpbsv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs,
+ lapack_complex_float* ab, lapack_int ldab,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zpbsv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs,
+ lapack_complex_double* ab, lapack_int ldab,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_spbsvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int kd, lapack_int nrhs,
+ float* ab, lapack_int ldab, float* afb,
+ lapack_int ldafb, char* equed, float* s,
+ float* b, lapack_int ldb, float* x,
+ lapack_int ldx, float* rcond, float* ferr,
+ float* berr, float* work, lapack_int* iwork );
+lapack_int LAPACKE_dpbsvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int kd, lapack_int nrhs,
+ double* ab, lapack_int ldab, double* afb,
+ lapack_int ldafb, char* equed, double* s,
+ double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* rcond, double* ferr,
+ double* berr, double* work, lapack_int* iwork );
+lapack_int LAPACKE_cpbsvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int kd, lapack_int nrhs,
+ lapack_complex_float* ab, lapack_int ldab,
+ lapack_complex_float* afb, lapack_int ldafb,
+ char* equed, float* s, lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* rcond, float* ferr,
+ float* berr, lapack_complex_float* work,
+ float* rwork );
+lapack_int LAPACKE_zpbsvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int kd, lapack_int nrhs,
+ lapack_complex_double* ab, lapack_int ldab,
+ lapack_complex_double* afb, lapack_int ldafb,
+ char* equed, double* s,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_spbtrf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, float* ab, lapack_int ldab );
+lapack_int LAPACKE_dpbtrf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, double* ab, lapack_int ldab );
+lapack_int LAPACKE_cpbtrf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_complex_float* ab,
+ lapack_int ldab );
+lapack_int LAPACKE_zpbtrf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_complex_double* ab,
+ lapack_int ldab );
+
+lapack_int LAPACKE_spbtrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs, const float* ab,
+ lapack_int ldab, float* b, lapack_int ldb );
+lapack_int LAPACKE_dpbtrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs,
+ const double* ab, lapack_int ldab, double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_cpbtrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs,
+ const lapack_complex_float* ab, lapack_int ldab,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zpbtrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int kd, lapack_int nrhs,
+ const lapack_complex_double* ab,
+ lapack_int ldab, lapack_complex_double* b,
+ lapack_int ldb );
+
+lapack_int LAPACKE_spftrf_work( int matrix_order, char transr, char uplo,
+ lapack_int n, float* a );
+lapack_int LAPACKE_dpftrf_work( int matrix_order, char transr, char uplo,
+ lapack_int n, double* a );
+lapack_int LAPACKE_cpftrf_work( int matrix_order, char transr, char uplo,
+ lapack_int n, lapack_complex_float* a );
+lapack_int LAPACKE_zpftrf_work( int matrix_order, char transr, char uplo,
+ lapack_int n, lapack_complex_double* a );
+
+lapack_int LAPACKE_spftri_work( int matrix_order, char transr, char uplo,
+ lapack_int n, float* a );
+lapack_int LAPACKE_dpftri_work( int matrix_order, char transr, char uplo,
+ lapack_int n, double* a );
+lapack_int LAPACKE_cpftri_work( int matrix_order, char transr, char uplo,
+ lapack_int n, lapack_complex_float* a );
+lapack_int LAPACKE_zpftri_work( int matrix_order, char transr, char uplo,
+ lapack_int n, lapack_complex_double* a );
+
+lapack_int LAPACKE_spftrs_work( int matrix_order, char transr, char uplo,
+ lapack_int n, lapack_int nrhs, const float* a,
+ float* b, lapack_int ldb );
+lapack_int LAPACKE_dpftrs_work( int matrix_order, char transr, char uplo,
+ lapack_int n, lapack_int nrhs, const double* a,
+ double* b, lapack_int ldb );
+lapack_int LAPACKE_cpftrs_work( int matrix_order, char transr, char uplo,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* a,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zpftrs_work( int matrix_order, char transr, char uplo,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* a,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_spocon_work( int matrix_order, char uplo, lapack_int n,
+ const float* a, lapack_int lda, float anorm,
+ float* rcond, float* work, lapack_int* iwork );
+lapack_int LAPACKE_dpocon_work( int matrix_order, char uplo, lapack_int n,
+ const double* a, lapack_int lda, double anorm,
+ double* rcond, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_cpocon_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ float anorm, float* rcond,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zpocon_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ double anorm, double* rcond,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_spoequ_work( int matrix_order, lapack_int n, const float* a,
+ lapack_int lda, float* s, float* scond,
+ float* amax );
+lapack_int LAPACKE_dpoequ_work( int matrix_order, lapack_int n, const double* a,
+ lapack_int lda, double* s, double* scond,
+ double* amax );
+lapack_int LAPACKE_cpoequ_work( int matrix_order, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ float* s, float* scond, float* amax );
+lapack_int LAPACKE_zpoequ_work( int matrix_order, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ double* s, double* scond, double* amax );
+
+lapack_int LAPACKE_spoequb_work( int matrix_order, lapack_int n, const float* a,
+ lapack_int lda, float* s, float* scond,
+ float* amax );
+lapack_int LAPACKE_dpoequb_work( int matrix_order, lapack_int n,
+ const double* a, lapack_int lda, double* s,
+ double* scond, double* amax );
+lapack_int LAPACKE_cpoequb_work( int matrix_order, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ float* s, float* scond, float* amax );
+lapack_int LAPACKE_zpoequb_work( int matrix_order, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ double* s, double* scond, double* amax );
+
+lapack_int LAPACKE_sporfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* a, lapack_int lda,
+ const float* af, lapack_int ldaf,
+ const float* b, lapack_int ldb, float* x,
+ lapack_int ldx, float* ferr, float* berr,
+ float* work, lapack_int* iwork );
+lapack_int LAPACKE_dporfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* a,
+ lapack_int lda, const double* af,
+ lapack_int ldaf, const double* b,
+ lapack_int ldb, double* x, lapack_int ldx,
+ double* ferr, double* berr, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_cporfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* af,
+ lapack_int ldaf, const lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zporfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, const lapack_complex_double* af,
+ lapack_int ldaf, const lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* x,
+ lapack_int ldx, double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_sporfsx_work( int matrix_order, char uplo, char equed,
+ lapack_int n, lapack_int nrhs, const float* a,
+ lapack_int lda, const float* af,
+ lapack_int ldaf, const float* s,
+ const float* b, lapack_int ldb, float* x,
+ lapack_int ldx, float* rcond, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dporfsx_work( int matrix_order, char uplo, char equed,
+ lapack_int n, lapack_int nrhs, const double* a,
+ lapack_int lda, const double* af,
+ lapack_int ldaf, const double* s,
+ const double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* rcond, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_cporfsx_work( int matrix_order, char uplo, char equed,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* af,
+ lapack_int ldaf, const float* s,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params, lapack_complex_float* work,
+ float* rwork );
+lapack_int LAPACKE_zporfsx_work( int matrix_order, char uplo, char equed,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* af,
+ lapack_int ldaf, const double* s,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params, lapack_complex_double* work,
+ double* rwork );
+
+lapack_int LAPACKE_sposv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, float* a, lapack_int lda,
+ float* b, lapack_int ldb );
+lapack_int LAPACKE_dposv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, double* a, lapack_int lda,
+ double* b, lapack_int ldb );
+lapack_int LAPACKE_cposv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zposv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dsposv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, double* a, lapack_int lda,
+ double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* work, float* swork,
+ lapack_int* iter );
+lapack_int LAPACKE_zcposv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* x,
+ lapack_int ldx, lapack_complex_double* work,
+ lapack_complex_float* swork, double* rwork,
+ lapack_int* iter );
+
+lapack_int LAPACKE_sposvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs, float* a,
+ lapack_int lda, float* af, lapack_int ldaf,
+ char* equed, float* s, float* b, lapack_int ldb,
+ float* x, lapack_int ldx, float* rcond,
+ float* ferr, float* berr, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dposvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs, double* a,
+ lapack_int lda, double* af, lapack_int ldaf,
+ char* equed, double* s, double* b,
+ lapack_int ldb, double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr,
+ double* work, lapack_int* iwork );
+lapack_int LAPACKE_cposvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* af, lapack_int ldaf,
+ char* equed, float* s, lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* rcond, float* ferr,
+ float* berr, lapack_complex_float* work,
+ float* rwork );
+lapack_int LAPACKE_zposvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* af, lapack_int ldaf,
+ char* equed, double* s,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_sposvxx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs, float* a,
+ lapack_int lda, float* af, lapack_int ldaf,
+ char* equed, float* s, float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* rcond, float* rpvgrw, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dposvxx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs, double* a,
+ lapack_int lda, double* af, lapack_int ldaf,
+ char* equed, double* s, double* b,
+ lapack_int ldb, double* x, lapack_int ldx,
+ double* rcond, double* rpvgrw, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_cposvxx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* af, lapack_int ldaf,
+ char* equed, float* s, lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* rcond, float* rpvgrw,
+ float* berr, lapack_int n_err_bnds,
+ float* err_bnds_norm, float* err_bnds_comp,
+ lapack_int nparams, float* params,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zposvxx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* af, lapack_int ldaf,
+ char* equed, double* s,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* rpvgrw, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params, lapack_complex_double* work,
+ double* rwork );
+
+lapack_int LAPACKE_spotrf_work( int matrix_order, char uplo, lapack_int n,
+ float* a, lapack_int lda );
+lapack_int LAPACKE_dpotrf_work( int matrix_order, char uplo, lapack_int n,
+ double* a, lapack_int lda );
+lapack_int LAPACKE_cpotrf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda );
+lapack_int LAPACKE_zpotrf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda );
+
+lapack_int LAPACKE_spotri_work( int matrix_order, char uplo, lapack_int n,
+ float* a, lapack_int lda );
+lapack_int LAPACKE_dpotri_work( int matrix_order, char uplo, lapack_int n,
+ double* a, lapack_int lda );
+lapack_int LAPACKE_cpotri_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda );
+lapack_int LAPACKE_zpotri_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda );
+
+lapack_int LAPACKE_spotrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* a, lapack_int lda,
+ float* b, lapack_int ldb );
+lapack_int LAPACKE_dpotrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* a,
+ lapack_int lda, double* b, lapack_int ldb );
+lapack_int LAPACKE_cpotrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zpotrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* b,
+ lapack_int ldb );
+
+lapack_int LAPACKE_sppcon_work( int matrix_order, char uplo, lapack_int n,
+ const float* ap, float anorm, float* rcond,
+ float* work, lapack_int* iwork );
+lapack_int LAPACKE_dppcon_work( int matrix_order, char uplo, lapack_int n,
+ const double* ap, double anorm, double* rcond,
+ double* work, lapack_int* iwork );
+lapack_int LAPACKE_cppcon_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* ap, float anorm,
+ float* rcond, lapack_complex_float* work,
+ float* rwork );
+lapack_int LAPACKE_zppcon_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* ap, double anorm,
+ double* rcond, lapack_complex_double* work,
+ double* rwork );
+
+lapack_int LAPACKE_sppequ_work( int matrix_order, char uplo, lapack_int n,
+ const float* ap, float* s, float* scond,
+ float* amax );
+lapack_int LAPACKE_dppequ_work( int matrix_order, char uplo, lapack_int n,
+ const double* ap, double* s, double* scond,
+ double* amax );
+lapack_int LAPACKE_cppequ_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* ap, float* s,
+ float* scond, float* amax );
+lapack_int LAPACKE_zppequ_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* ap, double* s,
+ double* scond, double* amax );
+
+lapack_int LAPACKE_spprfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* ap,
+ const float* afp, const float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* ferr, float* berr, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dpprfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* ap,
+ const double* afp, const double* b,
+ lapack_int ldb, double* x, lapack_int ldx,
+ double* ferr, double* berr, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_cpprfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* ap,
+ const lapack_complex_float* afp,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zpprfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs,
+ const lapack_complex_double* ap,
+ const lapack_complex_double* afp,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_sppsv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, float* ap, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dppsv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, double* ap, double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_cppsv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_float* ap,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zppsv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* ap,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_sppsvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs, float* ap,
+ float* afp, char* equed, float* s, float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr,
+ float* work, lapack_int* iwork );
+lapack_int LAPACKE_dppsvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs, double* ap,
+ double* afp, char* equed, double* s, double* b,
+ lapack_int ldb, double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr,
+ double* work, lapack_int* iwork );
+lapack_int LAPACKE_cppsvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_float* ap,
+ lapack_complex_float* afp, char* equed,
+ float* s, lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* rcond, float* ferr,
+ float* berr, lapack_complex_float* work,
+ float* rwork );
+lapack_int LAPACKE_zppsvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_double* ap,
+ lapack_complex_double* afp, char* equed,
+ double* s, lapack_complex_double* b,
+ lapack_int ldb, lapack_complex_double* x,
+ lapack_int ldx, double* rcond, double* ferr,
+ double* berr, lapack_complex_double* work,
+ double* rwork );
+
+lapack_int LAPACKE_spptrf_work( int matrix_order, char uplo, lapack_int n,
+ float* ap );
+lapack_int LAPACKE_dpptrf_work( int matrix_order, char uplo, lapack_int n,
+ double* ap );
+lapack_int LAPACKE_cpptrf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* ap );
+lapack_int LAPACKE_zpptrf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* ap );
+
+lapack_int LAPACKE_spptri_work( int matrix_order, char uplo, lapack_int n,
+ float* ap );
+lapack_int LAPACKE_dpptri_work( int matrix_order, char uplo, lapack_int n,
+ double* ap );
+lapack_int LAPACKE_cpptri_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* ap );
+lapack_int LAPACKE_zpptri_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* ap );
+
+lapack_int LAPACKE_spptrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* ap, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dpptrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* ap, double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_cpptrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* ap,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zpptrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs,
+ const lapack_complex_double* ap,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_spstrf_work( int matrix_order, char uplo, lapack_int n,
+ float* a, lapack_int lda, lapack_int* piv,
+ lapack_int* rank, float tol, float* work );
+lapack_int LAPACKE_dpstrf_work( int matrix_order, char uplo, lapack_int n,
+ double* a, lapack_int lda, lapack_int* piv,
+ lapack_int* rank, double tol, double* work );
+lapack_int LAPACKE_cpstrf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* piv, lapack_int* rank, float tol,
+ float* work );
+lapack_int LAPACKE_zpstrf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* piv, lapack_int* rank, double tol,
+ double* work );
+
+lapack_int LAPACKE_sptcon_work( lapack_int n, const float* d, const float* e,
+ float anorm, float* rcond, float* work );
+lapack_int LAPACKE_dptcon_work( lapack_int n, const double* d, const double* e,
+ double anorm, double* rcond, double* work );
+lapack_int LAPACKE_cptcon_work( lapack_int n, const float* d,
+ const lapack_complex_float* e, float anorm,
+ float* rcond, float* work );
+lapack_int LAPACKE_zptcon_work( lapack_int n, const double* d,
+ const lapack_complex_double* e, double anorm,
+ double* rcond, double* work );
+
+lapack_int LAPACKE_spteqr_work( int matrix_order, char compz, lapack_int n,
+ float* d, float* e, float* z, lapack_int ldz,
+ float* work );
+lapack_int LAPACKE_dpteqr_work( int matrix_order, char compz, lapack_int n,
+ double* d, double* e, double* z, lapack_int ldz,
+ double* work );
+lapack_int LAPACKE_cpteqr_work( int matrix_order, char compz, lapack_int n,
+ float* d, float* e, lapack_complex_float* z,
+ lapack_int ldz, float* work );
+lapack_int LAPACKE_zpteqr_work( int matrix_order, char compz, lapack_int n,
+ double* d, double* e, lapack_complex_double* z,
+ lapack_int ldz, double* work );
+
+lapack_int LAPACKE_sptrfs_work( int matrix_order, lapack_int n, lapack_int nrhs,
+ const float* d, const float* e, const float* df,
+ const float* ef, const float* b, lapack_int ldb,
+ float* x, lapack_int ldx, float* ferr,
+ float* berr, float* work );
+lapack_int LAPACKE_dptrfs_work( int matrix_order, lapack_int n, lapack_int nrhs,
+ const double* d, const double* e,
+ const double* df, const double* ef,
+ const double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* ferr, double* berr,
+ double* work );
+lapack_int LAPACKE_cptrfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* d,
+ const lapack_complex_float* e, const float* df,
+ const lapack_complex_float* ef,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zptrfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* d,
+ const lapack_complex_double* e,
+ const double* df,
+ const lapack_complex_double* ef,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_sptsv_work( int matrix_order, lapack_int n, lapack_int nrhs,
+ float* d, float* e, float* b, lapack_int ldb );
+lapack_int LAPACKE_dptsv_work( int matrix_order, lapack_int n, lapack_int nrhs,
+ double* d, double* e, double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_cptsv_work( int matrix_order, lapack_int n, lapack_int nrhs,
+ float* d, lapack_complex_float* e,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zptsv_work( int matrix_order, lapack_int n, lapack_int nrhs,
+ double* d, lapack_complex_double* e,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_sptsvx_work( int matrix_order, char fact, lapack_int n,
+ lapack_int nrhs, const float* d, const float* e,
+ float* df, float* ef, const float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr,
+ float* work );
+lapack_int LAPACKE_dptsvx_work( int matrix_order, char fact, lapack_int n,
+ lapack_int nrhs, const double* d,
+ const double* e, double* df, double* ef,
+ const double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* rcond, double* ferr,
+ double* berr, double* work );
+lapack_int LAPACKE_cptsvx_work( int matrix_order, char fact, lapack_int n,
+ lapack_int nrhs, const float* d,
+ const lapack_complex_float* e, float* df,
+ lapack_complex_float* ef,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zptsvx_work( int matrix_order, char fact, lapack_int n,
+ lapack_int nrhs, const double* d,
+ const lapack_complex_double* e, double* df,
+ lapack_complex_double* ef,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_spttrf_work( lapack_int n, float* d, float* e );
+lapack_int LAPACKE_dpttrf_work( lapack_int n, double* d, double* e );
+lapack_int LAPACKE_cpttrf_work( lapack_int n, float* d,
+ lapack_complex_float* e );
+lapack_int LAPACKE_zpttrf_work( lapack_int n, double* d,
+ lapack_complex_double* e );
+
+lapack_int LAPACKE_spttrs_work( int matrix_order, lapack_int n, lapack_int nrhs,
+ const float* d, const float* e, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dpttrs_work( int matrix_order, lapack_int n, lapack_int nrhs,
+ const double* d, const double* e, double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_cpttrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* d,
+ const lapack_complex_float* e,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zpttrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* d,
+ const lapack_complex_double* e,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_ssbev_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_int kd, float* ab,
+ lapack_int ldab, float* w, float* z,
+ lapack_int ldz, float* work );
+lapack_int LAPACKE_dsbev_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_int kd, double* ab,
+ lapack_int ldab, double* w, double* z,
+ lapack_int ldz, double* work );
+
+lapack_int LAPACKE_ssbevd_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_int kd, float* ab,
+ lapack_int ldab, float* w, float* z,
+ lapack_int ldz, float* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+lapack_int LAPACKE_dsbevd_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_int kd, double* ab,
+ lapack_int ldab, double* w, double* z,
+ lapack_int ldz, double* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+
+lapack_int LAPACKE_ssbevx_work( int matrix_order, char jobz, char range,
+ char uplo, lapack_int n, lapack_int kd,
+ float* ab, lapack_int ldab, float* q,
+ lapack_int ldq, float vl, float vu,
+ lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w, float* z,
+ lapack_int ldz, float* work, lapack_int* iwork,
+ lapack_int* ifail );
+lapack_int LAPACKE_dsbevx_work( int matrix_order, char jobz, char range,
+ char uplo, lapack_int n, lapack_int kd,
+ double* ab, lapack_int ldab, double* q,
+ lapack_int ldq, double vl, double vu,
+ lapack_int il, lapack_int iu, double abstol,
+ lapack_int* m, double* w, double* z,
+ lapack_int ldz, double* work, lapack_int* iwork,
+ lapack_int* ifail );
+
+lapack_int LAPACKE_ssbgst_work( int matrix_order, char vect, char uplo,
+ lapack_int n, lapack_int ka, lapack_int kb,
+ float* ab, lapack_int ldab, const float* bb,
+ lapack_int ldbb, float* x, lapack_int ldx,
+ float* work );
+lapack_int LAPACKE_dsbgst_work( int matrix_order, char vect, char uplo,
+ lapack_int n, lapack_int ka, lapack_int kb,
+ double* ab, lapack_int ldab, const double* bb,
+ lapack_int ldbb, double* x, lapack_int ldx,
+ double* work );
+
+lapack_int LAPACKE_ssbgv_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_int ka, lapack_int kb,
+ float* ab, lapack_int ldab, float* bb,
+ lapack_int ldbb, float* w, float* z,
+ lapack_int ldz, float* work );
+lapack_int LAPACKE_dsbgv_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_int ka, lapack_int kb,
+ double* ab, lapack_int ldab, double* bb,
+ lapack_int ldbb, double* w, double* z,
+ lapack_int ldz, double* work );
+
+lapack_int LAPACKE_ssbgvd_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_int ka, lapack_int kb,
+ float* ab, lapack_int ldab, float* bb,
+ lapack_int ldbb, float* w, float* z,
+ lapack_int ldz, float* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+lapack_int LAPACKE_dsbgvd_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, lapack_int ka, lapack_int kb,
+ double* ab, lapack_int ldab, double* bb,
+ lapack_int ldbb, double* w, double* z,
+ lapack_int ldz, double* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+
+lapack_int LAPACKE_ssbgvx_work( int matrix_order, char jobz, char range,
+ char uplo, lapack_int n, lapack_int ka,
+ lapack_int kb, float* ab, lapack_int ldab,
+ float* bb, lapack_int ldbb, float* q,
+ lapack_int ldq, float vl, float vu,
+ lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w, float* z,
+ lapack_int ldz, float* work, lapack_int* iwork,
+ lapack_int* ifail );
+lapack_int LAPACKE_dsbgvx_work( int matrix_order, char jobz, char range,
+ char uplo, lapack_int n, lapack_int ka,
+ lapack_int kb, double* ab, lapack_int ldab,
+ double* bb, lapack_int ldbb, double* q,
+ lapack_int ldq, double vl, double vu,
+ lapack_int il, lapack_int iu, double abstol,
+ lapack_int* m, double* w, double* z,
+ lapack_int ldz, double* work, lapack_int* iwork,
+ lapack_int* ifail );
+
+lapack_int LAPACKE_ssbtrd_work( int matrix_order, char vect, char uplo,
+ lapack_int n, lapack_int kd, float* ab,
+ lapack_int ldab, float* d, float* e, float* q,
+ lapack_int ldq, float* work );
+lapack_int LAPACKE_dsbtrd_work( int matrix_order, char vect, char uplo,
+ lapack_int n, lapack_int kd, double* ab,
+ lapack_int ldab, double* d, double* e,
+ double* q, lapack_int ldq, double* work );
+
+lapack_int LAPACKE_ssfrk_work( int matrix_order, char transr, char uplo,
+ char trans, lapack_int n, lapack_int k,
+ float alpha, const float* a, lapack_int lda,
+ float beta, float* c );
+lapack_int LAPACKE_dsfrk_work( int matrix_order, char transr, char uplo,
+ char trans, lapack_int n, lapack_int k,
+ double alpha, const double* a, lapack_int lda,
+ double beta, double* c );
+
+lapack_int LAPACKE_sspcon_work( int matrix_order, char uplo, lapack_int n,
+ const float* ap, const lapack_int* ipiv,
+ float anorm, float* rcond, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dspcon_work( int matrix_order, char uplo, lapack_int n,
+ const double* ap, const lapack_int* ipiv,
+ double anorm, double* rcond, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_cspcon_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* ap,
+ const lapack_int* ipiv, float anorm,
+ float* rcond, lapack_complex_float* work );
+lapack_int LAPACKE_zspcon_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* ap,
+ const lapack_int* ipiv, double anorm,
+ double* rcond, lapack_complex_double* work );
+
+lapack_int LAPACKE_sspev_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, float* ap, float* w, float* z,
+ lapack_int ldz, float* work );
+lapack_int LAPACKE_dspev_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, double* ap, double* w, double* z,
+ lapack_int ldz, double* work );
+
+lapack_int LAPACKE_sspevd_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, float* ap, float* w, float* z,
+ lapack_int ldz, float* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+lapack_int LAPACKE_dspevd_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, double* ap, double* w, double* z,
+ lapack_int ldz, double* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+
+lapack_int LAPACKE_sspevx_work( int matrix_order, char jobz, char range,
+ char uplo, lapack_int n, float* ap, float vl,
+ float vu, lapack_int il, lapack_int iu,
+ float abstol, lapack_int* m, float* w, float* z,
+ lapack_int ldz, float* work, lapack_int* iwork,
+ lapack_int* ifail );
+lapack_int LAPACKE_dspevx_work( int matrix_order, char jobz, char range,
+ char uplo, lapack_int n, double* ap, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ double abstol, lapack_int* m, double* w,
+ double* z, lapack_int ldz, double* work,
+ lapack_int* iwork, lapack_int* ifail );
+
+lapack_int LAPACKE_sspgst_work( int matrix_order, lapack_int itype, char uplo,
+ lapack_int n, float* ap, const float* bp );
+lapack_int LAPACKE_dspgst_work( int matrix_order, lapack_int itype, char uplo,
+ lapack_int n, double* ap, const double* bp );
+
+lapack_int LAPACKE_sspgv_work( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, float* ap, float* bp,
+ float* w, float* z, lapack_int ldz,
+ float* work );
+lapack_int LAPACKE_dspgv_work( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, double* ap, double* bp,
+ double* w, double* z, lapack_int ldz,
+ double* work );
+
+lapack_int LAPACKE_sspgvd_work( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, float* ap, float* bp,
+ float* w, float* z, lapack_int ldz, float* work,
+ lapack_int lwork, lapack_int* iwork,
+ lapack_int liwork );
+lapack_int LAPACKE_dspgvd_work( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, double* ap, double* bp,
+ double* w, double* z, lapack_int ldz,
+ double* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+
+lapack_int LAPACKE_sspgvx_work( int matrix_order, lapack_int itype, char jobz,
+ char range, char uplo, lapack_int n, float* ap,
+ float* bp, float vl, float vu, lapack_int il,
+ lapack_int iu, float abstol, lapack_int* m,
+ float* w, float* z, lapack_int ldz, float* work,
+ lapack_int* iwork, lapack_int* ifail );
+lapack_int LAPACKE_dspgvx_work( int matrix_order, lapack_int itype, char jobz,
+ char range, char uplo, lapack_int n, double* ap,
+ double* bp, double vl, double vu, lapack_int il,
+ lapack_int iu, double abstol, lapack_int* m,
+ double* w, double* z, lapack_int ldz,
+ double* work, lapack_int* iwork,
+ lapack_int* ifail );
+
+lapack_int LAPACKE_ssprfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* ap,
+ const float* afp, const lapack_int* ipiv,
+ const float* b, lapack_int ldb, float* x,
+ lapack_int ldx, float* ferr, float* berr,
+ float* work, lapack_int* iwork );
+lapack_int LAPACKE_dsprfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* ap,
+ const double* afp, const lapack_int* ipiv,
+ const double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* ferr, double* berr,
+ double* work, lapack_int* iwork );
+lapack_int LAPACKE_csprfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* ap,
+ const lapack_complex_float* afp,
+ const lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zsprfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs,
+ const lapack_complex_double* ap,
+ const lapack_complex_double* afp,
+ const lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_sspsv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, float* ap, lapack_int* ipiv,
+ float* b, lapack_int ldb );
+lapack_int LAPACKE_dspsv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, double* ap, lapack_int* ipiv,
+ double* b, lapack_int ldb );
+lapack_int LAPACKE_cspsv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_float* ap,
+ lapack_int* ipiv, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zspsv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* ap,
+ lapack_int* ipiv, lapack_complex_double* b,
+ lapack_int ldb );
+
+lapack_int LAPACKE_sspsvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs, const float* ap,
+ float* afp, lapack_int* ipiv, const float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr,
+ float* work, lapack_int* iwork );
+lapack_int LAPACKE_dspsvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs, const double* ap,
+ double* afp, lapack_int* ipiv, const double* b,
+ lapack_int ldb, double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr,
+ double* work, lapack_int* iwork );
+lapack_int LAPACKE_cspsvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* ap,
+ lapack_complex_float* afp, lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zspsvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* ap,
+ lapack_complex_double* afp, lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_ssptrd_work( int matrix_order, char uplo, lapack_int n,
+ float* ap, float* d, float* e, float* tau );
+lapack_int LAPACKE_dsptrd_work( int matrix_order, char uplo, lapack_int n,
+ double* ap, double* d, double* e, double* tau );
+
+lapack_int LAPACKE_ssptrf_work( int matrix_order, char uplo, lapack_int n,
+ float* ap, lapack_int* ipiv );
+lapack_int LAPACKE_dsptrf_work( int matrix_order, char uplo, lapack_int n,
+ double* ap, lapack_int* ipiv );
+lapack_int LAPACKE_csptrf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* ap, lapack_int* ipiv );
+lapack_int LAPACKE_zsptrf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* ap, lapack_int* ipiv );
+
+lapack_int LAPACKE_ssptri_work( int matrix_order, char uplo, lapack_int n,
+ float* ap, const lapack_int* ipiv,
+ float* work );
+lapack_int LAPACKE_dsptri_work( int matrix_order, char uplo, lapack_int n,
+ double* ap, const lapack_int* ipiv,
+ double* work );
+lapack_int LAPACKE_csptri_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* ap,
+ const lapack_int* ipiv,
+ lapack_complex_float* work );
+lapack_int LAPACKE_zsptri_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* ap,
+ const lapack_int* ipiv,
+ lapack_complex_double* work );
+
+lapack_int LAPACKE_ssptrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* ap,
+ const lapack_int* ipiv, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dsptrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* ap,
+ const lapack_int* ipiv, double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_csptrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* ap,
+ const lapack_int* ipiv, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_zsptrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs,
+ const lapack_complex_double* ap,
+ const lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_sstebz_work( char range, char order, lapack_int n, float vl,
+ float vu, lapack_int il, lapack_int iu,
+ float abstol, const float* d, const float* e,
+ lapack_int* m, lapack_int* nsplit, float* w,
+ lapack_int* iblock, lapack_int* isplit,
+ float* work, lapack_int* iwork );
+lapack_int LAPACKE_dstebz_work( char range, char order, lapack_int n, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ double abstol, const double* d, const double* e,
+ lapack_int* m, lapack_int* nsplit, double* w,
+ lapack_int* iblock, lapack_int* isplit,
+ double* work, lapack_int* iwork );
+
+lapack_int LAPACKE_sstedc_work( int matrix_order, char compz, lapack_int n,
+ float* d, float* e, float* z, lapack_int ldz,
+ float* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+lapack_int LAPACKE_dstedc_work( int matrix_order, char compz, lapack_int n,
+ double* d, double* e, double* z, lapack_int ldz,
+ double* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+lapack_int LAPACKE_cstedc_work( int matrix_order, char compz, lapack_int n,
+ float* d, float* e, lapack_complex_float* z,
+ lapack_int ldz, lapack_complex_float* work,
+ lapack_int lwork, float* rwork,
+ lapack_int lrwork, lapack_int* iwork,
+ lapack_int liwork );
+lapack_int LAPACKE_zstedc_work( int matrix_order, char compz, lapack_int n,
+ double* d, double* e, lapack_complex_double* z,
+ lapack_int ldz, lapack_complex_double* work,
+ lapack_int lwork, double* rwork,
+ lapack_int lrwork, lapack_int* iwork,
+ lapack_int liwork );
+
+lapack_int LAPACKE_sstegr_work( int matrix_order, char jobz, char range,
+ lapack_int n, float* d, float* e, float vl,
+ float vu, lapack_int il, lapack_int iu,
+ float abstol, lapack_int* m, float* w, float* z,
+ lapack_int ldz, lapack_int* isuppz, float* work,
+ lapack_int lwork, lapack_int* iwork,
+ lapack_int liwork );
+lapack_int LAPACKE_dstegr_work( int matrix_order, char jobz, char range,
+ lapack_int n, double* d, double* e, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ double abstol, lapack_int* m, double* w,
+ double* z, lapack_int ldz, lapack_int* isuppz,
+ double* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+lapack_int LAPACKE_cstegr_work( int matrix_order, char jobz, char range,
+ lapack_int n, float* d, float* e, float vl,
+ float vu, lapack_int il, lapack_int iu,
+ float abstol, lapack_int* m, float* w,
+ lapack_complex_float* z, lapack_int ldz,
+ lapack_int* isuppz, float* work,
+ lapack_int lwork, lapack_int* iwork,
+ lapack_int liwork );
+lapack_int LAPACKE_zstegr_work( int matrix_order, char jobz, char range,
+ lapack_int n, double* d, double* e, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ double abstol, lapack_int* m, double* w,
+ lapack_complex_double* z, lapack_int ldz,
+ lapack_int* isuppz, double* work,
+ lapack_int lwork, lapack_int* iwork,
+ lapack_int liwork );
+
+lapack_int LAPACKE_sstein_work( int matrix_order, lapack_int n, const float* d,
+ const float* e, lapack_int m, const float* w,
+ const lapack_int* iblock,
+ const lapack_int* isplit, float* z,
+ lapack_int ldz, float* work, lapack_int* iwork,
+ lapack_int* ifailv );
+lapack_int LAPACKE_dstein_work( int matrix_order, lapack_int n, const double* d,
+ const double* e, lapack_int m, const double* w,
+ const lapack_int* iblock,
+ const lapack_int* isplit, double* z,
+ lapack_int ldz, double* work, lapack_int* iwork,
+ lapack_int* ifailv );
+lapack_int LAPACKE_cstein_work( int matrix_order, lapack_int n, const float* d,
+ const float* e, lapack_int m, const float* w,
+ const lapack_int* iblock,
+ const lapack_int* isplit,
+ lapack_complex_float* z, lapack_int ldz,
+ float* work, lapack_int* iwork,
+ lapack_int* ifailv );
+lapack_int LAPACKE_zstein_work( int matrix_order, lapack_int n, const double* d,
+ const double* e, lapack_int m, const double* w,
+ const lapack_int* iblock,
+ const lapack_int* isplit,
+ lapack_complex_double* z, lapack_int ldz,
+ double* work, lapack_int* iwork,
+ lapack_int* ifailv );
+
+lapack_int LAPACKE_sstemr_work( int matrix_order, char jobz, char range,
+ lapack_int n, float* d, float* e, float vl,
+ float vu, lapack_int il, lapack_int iu,
+ lapack_int* m, float* w, float* z,
+ lapack_int ldz, lapack_int nzc,
+ lapack_int* isuppz, lapack_logical* tryrac,
+ float* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+lapack_int LAPACKE_dstemr_work( int matrix_order, char jobz, char range,
+ lapack_int n, double* d, double* e, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ lapack_int* m, double* w, double* z,
+ lapack_int ldz, lapack_int nzc,
+ lapack_int* isuppz, lapack_logical* tryrac,
+ double* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+lapack_int LAPACKE_cstemr_work( int matrix_order, char jobz, char range,
+ lapack_int n, float* d, float* e, float vl,
+ float vu, lapack_int il, lapack_int iu,
+ lapack_int* m, float* w,
+ lapack_complex_float* z, lapack_int ldz,
+ lapack_int nzc, lapack_int* isuppz,
+ lapack_logical* tryrac, float* work,
+ lapack_int lwork, lapack_int* iwork,
+ lapack_int liwork );
+lapack_int LAPACKE_zstemr_work( int matrix_order, char jobz, char range,
+ lapack_int n, double* d, double* e, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ lapack_int* m, double* w,
+ lapack_complex_double* z, lapack_int ldz,
+ lapack_int nzc, lapack_int* isuppz,
+ lapack_logical* tryrac, double* work,
+ lapack_int lwork, lapack_int* iwork,
+ lapack_int liwork );
+
+lapack_int LAPACKE_ssteqr_work( int matrix_order, char compz, lapack_int n,
+ float* d, float* e, float* z, lapack_int ldz,
+ float* work );
+lapack_int LAPACKE_dsteqr_work( int matrix_order, char compz, lapack_int n,
+ double* d, double* e, double* z, lapack_int ldz,
+ double* work );
+lapack_int LAPACKE_csteqr_work( int matrix_order, char compz, lapack_int n,
+ float* d, float* e, lapack_complex_float* z,
+ lapack_int ldz, float* work );
+lapack_int LAPACKE_zsteqr_work( int matrix_order, char compz, lapack_int n,
+ double* d, double* e, lapack_complex_double* z,
+ lapack_int ldz, double* work );
+
+lapack_int LAPACKE_ssterf_work( lapack_int n, float* d, float* e );
+lapack_int LAPACKE_dsterf_work( lapack_int n, double* d, double* e );
+
+lapack_int LAPACKE_sstev_work( int matrix_order, char jobz, lapack_int n,
+ float* d, float* e, float* z, lapack_int ldz,
+ float* work );
+lapack_int LAPACKE_dstev_work( int matrix_order, char jobz, lapack_int n,
+ double* d, double* e, double* z, lapack_int ldz,
+ double* work );
+
+lapack_int LAPACKE_sstevd_work( int matrix_order, char jobz, lapack_int n,
+ float* d, float* e, float* z, lapack_int ldz,
+ float* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+lapack_int LAPACKE_dstevd_work( int matrix_order, char jobz, lapack_int n,
+ double* d, double* e, double* z, lapack_int ldz,
+ double* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+
+lapack_int LAPACKE_sstevr_work( int matrix_order, char jobz, char range,
+ lapack_int n, float* d, float* e, float vl,
+ float vu, lapack_int il, lapack_int iu,
+ float abstol, lapack_int* m, float* w, float* z,
+ lapack_int ldz, lapack_int* isuppz, float* work,
+ lapack_int lwork, lapack_int* iwork,
+ lapack_int liwork );
+lapack_int LAPACKE_dstevr_work( int matrix_order, char jobz, char range,
+ lapack_int n, double* d, double* e, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ double abstol, lapack_int* m, double* w,
+ double* z, lapack_int ldz, lapack_int* isuppz,
+ double* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+
+lapack_int LAPACKE_sstevx_work( int matrix_order, char jobz, char range,
+ lapack_int n, float* d, float* e, float vl,
+ float vu, lapack_int il, lapack_int iu,
+ float abstol, lapack_int* m, float* w, float* z,
+ lapack_int ldz, float* work, lapack_int* iwork,
+ lapack_int* ifail );
+lapack_int LAPACKE_dstevx_work( int matrix_order, char jobz, char range,
+ lapack_int n, double* d, double* e, double vl,
+ double vu, lapack_int il, lapack_int iu,
+ double abstol, lapack_int* m, double* w,
+ double* z, lapack_int ldz, double* work,
+ lapack_int* iwork, lapack_int* ifail );
+
+lapack_int LAPACKE_ssycon_work( int matrix_order, char uplo, lapack_int n,
+ const float* a, lapack_int lda,
+ const lapack_int* ipiv, float anorm,
+ float* rcond, float* work, lapack_int* iwork );
+lapack_int LAPACKE_dsycon_work( int matrix_order, char uplo, lapack_int n,
+ const double* a, lapack_int lda,
+ const lapack_int* ipiv, double anorm,
+ double* rcond, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_csycon_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_int* ipiv, float anorm,
+ float* rcond, lapack_complex_float* work );
+lapack_int LAPACKE_zsycon_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_int* ipiv, double anorm,
+ double* rcond, lapack_complex_double* work );
+
+lapack_int LAPACKE_ssyequb_work( int matrix_order, char uplo, lapack_int n,
+ const float* a, lapack_int lda, float* s,
+ float* scond, float* amax, float* work );
+lapack_int LAPACKE_dsyequb_work( int matrix_order, char uplo, lapack_int n,
+ const double* a, lapack_int lda, double* s,
+ double* scond, double* amax, double* work );
+lapack_int LAPACKE_csyequb_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ float* s, float* scond, float* amax,
+ lapack_complex_float* work );
+lapack_int LAPACKE_zsyequb_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ double* s, double* scond, double* amax,
+ lapack_complex_double* work );
+
+lapack_int LAPACKE_ssyev_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, float* a, lapack_int lda, float* w,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dsyev_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, double* a, lapack_int lda,
+ double* w, double* work, lapack_int lwork );
+
+lapack_int LAPACKE_ssyevd_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, float* a, lapack_int lda,
+ float* w, float* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+lapack_int LAPACKE_dsyevd_work( int matrix_order, char jobz, char uplo,
+ lapack_int n, double* a, lapack_int lda,
+ double* w, double* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+
+lapack_int LAPACKE_ssyevr_work( int matrix_order, char jobz, char range,
+ char uplo, lapack_int n, float* a,
+ lapack_int lda, float vl, float vu,
+ lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w, float* z,
+ lapack_int ldz, lapack_int* isuppz, float* work,
+ lapack_int lwork, lapack_int* iwork,
+ lapack_int liwork );
+lapack_int LAPACKE_dsyevr_work( int matrix_order, char jobz, char range,
+ char uplo, lapack_int n, double* a,
+ lapack_int lda, double vl, double vu,
+ lapack_int il, lapack_int iu, double abstol,
+ lapack_int* m, double* w, double* z,
+ lapack_int ldz, lapack_int* isuppz,
+ double* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+
+lapack_int LAPACKE_ssyevx_work( int matrix_order, char jobz, char range,
+ char uplo, lapack_int n, float* a,
+ lapack_int lda, float vl, float vu,
+ lapack_int il, lapack_int iu, float abstol,
+ lapack_int* m, float* w, float* z,
+ lapack_int ldz, float* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int* ifail );
+lapack_int LAPACKE_dsyevx_work( int matrix_order, char jobz, char range,
+ char uplo, lapack_int n, double* a,
+ lapack_int lda, double vl, double vu,
+ lapack_int il, lapack_int iu, double abstol,
+ lapack_int* m, double* w, double* z,
+ lapack_int ldz, double* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int* ifail );
+
+lapack_int LAPACKE_ssygst_work( int matrix_order, lapack_int itype, char uplo,
+ lapack_int n, float* a, lapack_int lda,
+ const float* b, lapack_int ldb );
+lapack_int LAPACKE_dsygst_work( int matrix_order, lapack_int itype, char uplo,
+ lapack_int n, double* a, lapack_int lda,
+ const double* b, lapack_int ldb );
+
+lapack_int LAPACKE_ssygv_work( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, float* a,
+ lapack_int lda, float* b, lapack_int ldb,
+ float* w, float* work, lapack_int lwork );
+lapack_int LAPACKE_dsygv_work( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, double* a,
+ lapack_int lda, double* b, lapack_int ldb,
+ double* w, double* work, lapack_int lwork );
+
+lapack_int LAPACKE_ssygvd_work( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, float* a,
+ lapack_int lda, float* b, lapack_int ldb,
+ float* w, float* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+lapack_int LAPACKE_dsygvd_work( int matrix_order, lapack_int itype, char jobz,
+ char uplo, lapack_int n, double* a,
+ lapack_int lda, double* b, lapack_int ldb,
+ double* w, double* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+
+lapack_int LAPACKE_ssygvx_work( int matrix_order, lapack_int itype, char jobz,
+ char range, char uplo, lapack_int n, float* a,
+ lapack_int lda, float* b, lapack_int ldb,
+ float vl, float vu, lapack_int il,
+ lapack_int iu, float abstol, lapack_int* m,
+ float* w, float* z, lapack_int ldz, float* work,
+ lapack_int lwork, lapack_int* iwork,
+ lapack_int* ifail );
+lapack_int LAPACKE_dsygvx_work( int matrix_order, lapack_int itype, char jobz,
+ char range, char uplo, lapack_int n, double* a,
+ lapack_int lda, double* b, lapack_int ldb,
+ double vl, double vu, lapack_int il,
+ lapack_int iu, double abstol, lapack_int* m,
+ double* w, double* z, lapack_int ldz,
+ double* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int* ifail );
+
+lapack_int LAPACKE_ssyrfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* a, lapack_int lda,
+ const float* af, lapack_int ldaf,
+ const lapack_int* ipiv, const float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* ferr, float* berr, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dsyrfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* a,
+ lapack_int lda, const double* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* ferr, double* berr,
+ double* work, lapack_int* iwork );
+lapack_int LAPACKE_csyrfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_zsyrfs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, const lapack_complex_double* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_ssyrfsx_work( int matrix_order, char uplo, char equed,
+ lapack_int n, lapack_int nrhs, const float* a,
+ lapack_int lda, const float* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const float* s, const float* b, lapack_int ldb,
+ float* x, lapack_int ldx, float* rcond,
+ float* berr, lapack_int n_err_bnds,
+ float* err_bnds_norm, float* err_bnds_comp,
+ lapack_int nparams, float* params, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dsyrfsx_work( int matrix_order, char uplo, char equed,
+ lapack_int n, lapack_int nrhs, const double* a,
+ lapack_int lda, const double* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const double* s, const double* b,
+ lapack_int ldb, double* x, lapack_int ldx,
+ double* rcond, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_csyrfsx_work( int matrix_order, char uplo, char equed,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const float* s, const lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* rcond, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params, lapack_complex_float* work,
+ float* rwork );
+lapack_int LAPACKE_zsyrfsx_work( int matrix_order, char uplo, char equed,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* af,
+ lapack_int ldaf, const lapack_int* ipiv,
+ const double* s,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params, lapack_complex_double* work,
+ double* rwork );
+
+lapack_int LAPACKE_ssysv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, float* a, lapack_int lda,
+ lapack_int* ipiv, float* b, lapack_int ldb,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dsysv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, double* a, lapack_int lda,
+ lapack_int* ipiv, double* b, lapack_int ldb,
+ double* work, lapack_int lwork );
+lapack_int LAPACKE_csysv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_float* a,
+ lapack_int lda, lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zsysv_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, lapack_complex_double* a,
+ lapack_int lda, lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_ssysvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs, const float* a,
+ lapack_int lda, float* af, lapack_int ldaf,
+ lapack_int* ipiv, const float* b,
+ lapack_int ldb, float* x, lapack_int ldx,
+ float* rcond, float* ferr, float* berr,
+ float* work, lapack_int lwork,
+ lapack_int* iwork );
+lapack_int LAPACKE_dsysvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs, const double* a,
+ lapack_int lda, double* af, lapack_int ldaf,
+ lapack_int* ipiv, const double* b,
+ lapack_int ldb, double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr,
+ double* work, lapack_int lwork,
+ lapack_int* iwork );
+lapack_int LAPACKE_csysvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* af, lapack_int ldaf,
+ lapack_int* ipiv, const lapack_complex_float* b,
+ lapack_int ldb, lapack_complex_float* x,
+ lapack_int ldx, float* rcond, float* ferr,
+ float* berr, lapack_complex_float* work,
+ lapack_int lwork, float* rwork );
+lapack_int LAPACKE_zsysvx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* af, lapack_int ldaf,
+ lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* ferr, double* berr,
+ lapack_complex_double* work, lapack_int lwork,
+ double* rwork );
+
+lapack_int LAPACKE_ssysvxx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs, float* a,
+ lapack_int lda, float* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, float* s,
+ float* b, lapack_int ldb, float* x,
+ lapack_int ldx, float* rcond, float* rpvgrw,
+ float* berr, lapack_int n_err_bnds,
+ float* err_bnds_norm, float* err_bnds_comp,
+ lapack_int nparams, float* params, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dsysvxx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs, double* a,
+ lapack_int lda, double* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, double* s,
+ double* b, lapack_int ldb, double* x,
+ lapack_int ldx, double* rcond, double* rpvgrw,
+ double* berr, lapack_int n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int nparams, double* params,
+ double* work, lapack_int* iwork );
+lapack_int LAPACKE_csysvxx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, float* s,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* x, lapack_int ldx,
+ float* rcond, float* rpvgrw, float* berr,
+ lapack_int n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int nparams,
+ float* params, lapack_complex_float* work,
+ float* rwork );
+lapack_int LAPACKE_zsysvxx_work( int matrix_order, char fact, char uplo,
+ lapack_int n, lapack_int nrhs,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* af, lapack_int ldaf,
+ lapack_int* ipiv, char* equed, double* s,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* x, lapack_int ldx,
+ double* rcond, double* rpvgrw, double* berr,
+ lapack_int n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int nparams,
+ double* params, lapack_complex_double* work,
+ double* rwork );
+
+lapack_int LAPACKE_ssytrd_work( int matrix_order, char uplo, lapack_int n,
+ float* a, lapack_int lda, float* d, float* e,
+ float* tau, float* work, lapack_int lwork );
+lapack_int LAPACKE_dsytrd_work( int matrix_order, char uplo, lapack_int n,
+ double* a, lapack_int lda, double* d, double* e,
+ double* tau, double* work, lapack_int lwork );
+
+lapack_int LAPACKE_ssytrf_work( int matrix_order, char uplo, lapack_int n,
+ float* a, lapack_int lda, lapack_int* ipiv,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dsytrf_work( int matrix_order, char uplo, lapack_int n,
+ double* a, lapack_int lda, lapack_int* ipiv,
+ double* work, lapack_int lwork );
+lapack_int LAPACKE_csytrf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_int* ipiv, lapack_complex_float* work,
+ lapack_int lwork );
+lapack_int LAPACKE_zsytrf_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_int* ipiv, lapack_complex_double* work,
+ lapack_int lwork );
+
+lapack_int LAPACKE_ssytri_work( int matrix_order, char uplo, lapack_int n,
+ float* a, lapack_int lda,
+ const lapack_int* ipiv, float* work );
+lapack_int LAPACKE_dsytri_work( int matrix_order, char uplo, lapack_int n,
+ double* a, lapack_int lda,
+ const lapack_int* ipiv, double* work );
+lapack_int LAPACKE_csytri_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ const lapack_int* ipiv,
+ lapack_complex_float* work );
+lapack_int LAPACKE_zsytri_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ const lapack_int* ipiv,
+ lapack_complex_double* work );
+
+lapack_int LAPACKE_ssytrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* a, lapack_int lda,
+ const lapack_int* ipiv, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dsytrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* a,
+ lapack_int lda, const lapack_int* ipiv,
+ double* b, lapack_int ldb );
+lapack_int LAPACKE_csytrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_zsytrs_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_stbcon_work( int matrix_order, char norm, char uplo,
+ char diag, lapack_int n, lapack_int kd,
+ const float* ab, lapack_int ldab, float* rcond,
+ float* work, lapack_int* iwork );
+lapack_int LAPACKE_dtbcon_work( int matrix_order, char norm, char uplo,
+ char diag, lapack_int n, lapack_int kd,
+ const double* ab, lapack_int ldab,
+ double* rcond, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_ctbcon_work( int matrix_order, char norm, char uplo,
+ char diag, lapack_int n, lapack_int kd,
+ const lapack_complex_float* ab, lapack_int ldab,
+ float* rcond, lapack_complex_float* work,
+ float* rwork );
+lapack_int LAPACKE_ztbcon_work( int matrix_order, char norm, char uplo,
+ char diag, lapack_int n, lapack_int kd,
+ const lapack_complex_double* ab,
+ lapack_int ldab, double* rcond,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_stbrfs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int kd,
+ lapack_int nrhs, const float* ab,
+ lapack_int ldab, const float* b, lapack_int ldb,
+ const float* x, lapack_int ldx, float* ferr,
+ float* berr, float* work, lapack_int* iwork );
+lapack_int LAPACKE_dtbrfs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int kd,
+ lapack_int nrhs, const double* ab,
+ lapack_int ldab, const double* b,
+ lapack_int ldb, const double* x, lapack_int ldx,
+ double* ferr, double* berr, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_ctbrfs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int kd,
+ lapack_int nrhs, const lapack_complex_float* ab,
+ lapack_int ldab, const lapack_complex_float* b,
+ lapack_int ldb, const lapack_complex_float* x,
+ lapack_int ldx, float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_ztbrfs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int kd,
+ lapack_int nrhs,
+ const lapack_complex_double* ab,
+ lapack_int ldab, const lapack_complex_double* b,
+ lapack_int ldb, const lapack_complex_double* x,
+ lapack_int ldx, double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_stbtrs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int kd,
+ lapack_int nrhs, const float* ab,
+ lapack_int ldab, float* b, lapack_int ldb );
+lapack_int LAPACKE_dtbtrs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int kd,
+ lapack_int nrhs, const double* ab,
+ lapack_int ldab, double* b, lapack_int ldb );
+lapack_int LAPACKE_ctbtrs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int kd,
+ lapack_int nrhs, const lapack_complex_float* ab,
+ lapack_int ldab, lapack_complex_float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_ztbtrs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int kd,
+ lapack_int nrhs,
+ const lapack_complex_double* ab,
+ lapack_int ldab, lapack_complex_double* b,
+ lapack_int ldb );
+
+lapack_int LAPACKE_stfsm_work( int matrix_order, char transr, char side,
+ char uplo, char trans, char diag, lapack_int m,
+ lapack_int n, float alpha, const float* a,
+ float* b, lapack_int ldb );
+lapack_int LAPACKE_dtfsm_work( int matrix_order, char transr, char side,
+ char uplo, char trans, char diag, lapack_int m,
+ lapack_int n, double alpha, const double* a,
+ double* b, lapack_int ldb );
+lapack_int LAPACKE_ctfsm_work( int matrix_order, char transr, char side,
+ char uplo, char trans, char diag, lapack_int m,
+ lapack_int n, lapack_complex_float alpha,
+ const lapack_complex_float* a,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_ztfsm_work( int matrix_order, char transr, char side,
+ char uplo, char trans, char diag, lapack_int m,
+ lapack_int n, lapack_complex_double alpha,
+ const lapack_complex_double* a,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_stftri_work( int matrix_order, char transr, char uplo,
+ char diag, lapack_int n, float* a );
+lapack_int LAPACKE_dtftri_work( int matrix_order, char transr, char uplo,
+ char diag, lapack_int n, double* a );
+lapack_int LAPACKE_ctftri_work( int matrix_order, char transr, char uplo,
+ char diag, lapack_int n,
+ lapack_complex_float* a );
+lapack_int LAPACKE_ztftri_work( int matrix_order, char transr, char uplo,
+ char diag, lapack_int n,
+ lapack_complex_double* a );
+
+lapack_int LAPACKE_stfttp_work( int matrix_order, char transr, char uplo,
+ lapack_int n, const float* arf, float* ap );
+lapack_int LAPACKE_dtfttp_work( int matrix_order, char transr, char uplo,
+ lapack_int n, const double* arf, double* ap );
+lapack_int LAPACKE_ctfttp_work( int matrix_order, char transr, char uplo,
+ lapack_int n, const lapack_complex_float* arf,
+ lapack_complex_float* ap );
+lapack_int LAPACKE_ztfttp_work( int matrix_order, char transr, char uplo,
+ lapack_int n, const lapack_complex_double* arf,
+ lapack_complex_double* ap );
+
+lapack_int LAPACKE_stfttr_work( int matrix_order, char transr, char uplo,
+ lapack_int n, const float* arf, float* a,
+ lapack_int lda );
+lapack_int LAPACKE_dtfttr_work( int matrix_order, char transr, char uplo,
+ lapack_int n, const double* arf, double* a,
+ lapack_int lda );
+lapack_int LAPACKE_ctfttr_work( int matrix_order, char transr, char uplo,
+ lapack_int n, const lapack_complex_float* arf,
+ lapack_complex_float* a, lapack_int lda );
+lapack_int LAPACKE_ztfttr_work( int matrix_order, char transr, char uplo,
+ lapack_int n, const lapack_complex_double* arf,
+ lapack_complex_double* a, lapack_int lda );
+
+lapack_int LAPACKE_stgevc_work( int matrix_order, char side, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const float* s, lapack_int lds, const float* p,
+ lapack_int ldp, float* vl, lapack_int ldvl,
+ float* vr, lapack_int ldvr, lapack_int mm,
+ lapack_int* m, float* work );
+lapack_int LAPACKE_dtgevc_work( int matrix_order, char side, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const double* s, lapack_int lds,
+ const double* p, lapack_int ldp, double* vl,
+ lapack_int ldvl, double* vr, lapack_int ldvr,
+ lapack_int mm, lapack_int* m, double* work );
+lapack_int LAPACKE_ctgevc_work( int matrix_order, char side, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const lapack_complex_float* s, lapack_int lds,
+ const lapack_complex_float* p, lapack_int ldp,
+ lapack_complex_float* vl, lapack_int ldvl,
+ lapack_complex_float* vr, lapack_int ldvr,
+ lapack_int mm, lapack_int* m,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_ztgevc_work( int matrix_order, char side, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const lapack_complex_double* s, lapack_int lds,
+ const lapack_complex_double* p, lapack_int ldp,
+ lapack_complex_double* vl, lapack_int ldvl,
+ lapack_complex_double* vr, lapack_int ldvr,
+ lapack_int mm, lapack_int* m,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_stgexc_work( int matrix_order, lapack_logical wantq,
+ lapack_logical wantz, lapack_int n, float* a,
+ lapack_int lda, float* b, lapack_int ldb,
+ float* q, lapack_int ldq, float* z,
+ lapack_int ldz, lapack_int* ifst,
+ lapack_int* ilst, float* work,
+ lapack_int lwork );
+lapack_int LAPACKE_dtgexc_work( int matrix_order, lapack_logical wantq,
+ lapack_logical wantz, lapack_int n, double* a,
+ lapack_int lda, double* b, lapack_int ldb,
+ double* q, lapack_int ldq, double* z,
+ lapack_int ldz, lapack_int* ifst,
+ lapack_int* ilst, double* work,
+ lapack_int lwork );
+lapack_int LAPACKE_ctgexc_work( int matrix_order, lapack_logical wantq,
+ lapack_logical wantz, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* q, lapack_int ldq,
+ lapack_complex_float* z, lapack_int ldz,
+ lapack_int ifst, lapack_int ilst );
+lapack_int LAPACKE_ztgexc_work( int matrix_order, lapack_logical wantq,
+ lapack_logical wantz, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* q, lapack_int ldq,
+ lapack_complex_double* z, lapack_int ldz,
+ lapack_int ifst, lapack_int ilst );
+
+lapack_int LAPACKE_stgsen_work( int matrix_order, lapack_int ijob,
+ lapack_logical wantq, lapack_logical wantz,
+ const lapack_logical* select, lapack_int n,
+ float* a, lapack_int lda, float* b,
+ lapack_int ldb, float* alphar, float* alphai,
+ float* beta, float* q, lapack_int ldq, float* z,
+ lapack_int ldz, lapack_int* m, float* pl,
+ float* pr, float* dif, float* work,
+ lapack_int lwork, lapack_int* iwork,
+ lapack_int liwork );
+lapack_int LAPACKE_dtgsen_work( int matrix_order, lapack_int ijob,
+ lapack_logical wantq, lapack_logical wantz,
+ const lapack_logical* select, lapack_int n,
+ double* a, lapack_int lda, double* b,
+ lapack_int ldb, double* alphar, double* alphai,
+ double* beta, double* q, lapack_int ldq,
+ double* z, lapack_int ldz, lapack_int* m,
+ double* pl, double* pr, double* dif,
+ double* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+lapack_int LAPACKE_ctgsen_work( int matrix_order, lapack_int ijob,
+ lapack_logical wantq, lapack_logical wantz,
+ const lapack_logical* select, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* alpha,
+ lapack_complex_float* beta,
+ lapack_complex_float* q, lapack_int ldq,
+ lapack_complex_float* z, lapack_int ldz,
+ lapack_int* m, float* pl, float* pr, float* dif,
+ lapack_complex_float* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+lapack_int LAPACKE_ztgsen_work( int matrix_order, lapack_int ijob,
+ lapack_logical wantq, lapack_logical wantz,
+ const lapack_logical* select, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* alpha,
+ lapack_complex_double* beta,
+ lapack_complex_double* q, lapack_int ldq,
+ lapack_complex_double* z, lapack_int ldz,
+ lapack_int* m, double* pl, double* pr,
+ double* dif, lapack_complex_double* work,
+ lapack_int lwork, lapack_int* iwork,
+ lapack_int liwork );
+
+lapack_int LAPACKE_stgsja_work( int matrix_order, char jobu, char jobv,
+ char jobq, lapack_int m, lapack_int p,
+ lapack_int n, lapack_int k, lapack_int l,
+ float* a, lapack_int lda, float* b,
+ lapack_int ldb, float tola, float tolb,
+ float* alpha, float* beta, float* u,
+ lapack_int ldu, float* v, lapack_int ldv,
+ float* q, lapack_int ldq, float* work,
+ lapack_int* ncycle );
+lapack_int LAPACKE_dtgsja_work( int matrix_order, char jobu, char jobv,
+ char jobq, lapack_int m, lapack_int p,
+ lapack_int n, lapack_int k, lapack_int l,
+ double* a, lapack_int lda, double* b,
+ lapack_int ldb, double tola, double tolb,
+ double* alpha, double* beta, double* u,
+ lapack_int ldu, double* v, lapack_int ldv,
+ double* q, lapack_int ldq, double* work,
+ lapack_int* ncycle );
+lapack_int LAPACKE_ctgsja_work( int matrix_order, char jobu, char jobv,
+ char jobq, lapack_int m, lapack_int p,
+ lapack_int n, lapack_int k, lapack_int l,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ float tola, float tolb, float* alpha,
+ float* beta, lapack_complex_float* u,
+ lapack_int ldu, lapack_complex_float* v,
+ lapack_int ldv, lapack_complex_float* q,
+ lapack_int ldq, lapack_complex_float* work,
+ lapack_int* ncycle );
+lapack_int LAPACKE_ztgsja_work( int matrix_order, char jobu, char jobv,
+ char jobq, lapack_int m, lapack_int p,
+ lapack_int n, lapack_int k, lapack_int l,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ double tola, double tolb, double* alpha,
+ double* beta, lapack_complex_double* u,
+ lapack_int ldu, lapack_complex_double* v,
+ lapack_int ldv, lapack_complex_double* q,
+ lapack_int ldq, lapack_complex_double* work,
+ lapack_int* ncycle );
+
+lapack_int LAPACKE_stgsna_work( int matrix_order, char job, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const float* a, lapack_int lda, const float* b,
+ lapack_int ldb, const float* vl,
+ lapack_int ldvl, const float* vr,
+ lapack_int ldvr, float* s, float* dif,
+ lapack_int mm, lapack_int* m, float* work,
+ lapack_int lwork, lapack_int* iwork );
+lapack_int LAPACKE_dtgsna_work( int matrix_order, char job, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const double* a, lapack_int lda,
+ const double* b, lapack_int ldb,
+ const double* vl, lapack_int ldvl,
+ const double* vr, lapack_int ldvr, double* s,
+ double* dif, lapack_int mm, lapack_int* m,
+ double* work, lapack_int lwork,
+ lapack_int* iwork );
+lapack_int LAPACKE_ctgsna_work( int matrix_order, char job, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* b, lapack_int ldb,
+ const lapack_complex_float* vl, lapack_int ldvl,
+ const lapack_complex_float* vr, lapack_int ldvr,
+ float* s, float* dif, lapack_int mm,
+ lapack_int* m, lapack_complex_float* work,
+ lapack_int lwork, lapack_int* iwork );
+lapack_int LAPACKE_ztgsna_work( int matrix_order, char job, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* b, lapack_int ldb,
+ const lapack_complex_double* vl,
+ lapack_int ldvl,
+ const lapack_complex_double* vr,
+ lapack_int ldvr, double* s, double* dif,
+ lapack_int mm, lapack_int* m,
+ lapack_complex_double* work, lapack_int lwork,
+ lapack_int* iwork );
+
+lapack_int LAPACKE_stgsyl_work( int matrix_order, char trans, lapack_int ijob,
+ lapack_int m, lapack_int n, const float* a,
+ lapack_int lda, const float* b, lapack_int ldb,
+ float* c, lapack_int ldc, const float* d,
+ lapack_int ldd, const float* e, lapack_int lde,
+ float* f, lapack_int ldf, float* scale,
+ float* dif, float* work, lapack_int lwork,
+ lapack_int* iwork );
+lapack_int LAPACKE_dtgsyl_work( int matrix_order, char trans, lapack_int ijob,
+ lapack_int m, lapack_int n, const double* a,
+ lapack_int lda, const double* b, lapack_int ldb,
+ double* c, lapack_int ldc, const double* d,
+ lapack_int ldd, const double* e, lapack_int lde,
+ double* f, lapack_int ldf, double* scale,
+ double* dif, double* work, lapack_int lwork,
+ lapack_int* iwork );
+lapack_int LAPACKE_ctgsyl_work( int matrix_order, char trans, lapack_int ijob,
+ lapack_int m, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* c, lapack_int ldc,
+ const lapack_complex_float* d, lapack_int ldd,
+ const lapack_complex_float* e, lapack_int lde,
+ lapack_complex_float* f, lapack_int ldf,
+ float* scale, float* dif,
+ lapack_complex_float* work, lapack_int lwork,
+ lapack_int* iwork );
+lapack_int LAPACKE_ztgsyl_work( int matrix_order, char trans, lapack_int ijob,
+ lapack_int m, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* c, lapack_int ldc,
+ const lapack_complex_double* d, lapack_int ldd,
+ const lapack_complex_double* e, lapack_int lde,
+ lapack_complex_double* f, lapack_int ldf,
+ double* scale, double* dif,
+ lapack_complex_double* work, lapack_int lwork,
+ lapack_int* iwork );
+
+lapack_int LAPACKE_stpcon_work( int matrix_order, char norm, char uplo,
+ char diag, lapack_int n, const float* ap,
+ float* rcond, float* work, lapack_int* iwork );
+lapack_int LAPACKE_dtpcon_work( int matrix_order, char norm, char uplo,
+ char diag, lapack_int n, const double* ap,
+ double* rcond, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_ctpcon_work( int matrix_order, char norm, char uplo,
+ char diag, lapack_int n,
+ const lapack_complex_float* ap, float* rcond,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_ztpcon_work( int matrix_order, char norm, char uplo,
+ char diag, lapack_int n,
+ const lapack_complex_double* ap, double* rcond,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_stprfs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int nrhs,
+ const float* ap, const float* b, lapack_int ldb,
+ const float* x, lapack_int ldx, float* ferr,
+ float* berr, float* work, lapack_int* iwork );
+lapack_int LAPACKE_dtprfs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int nrhs,
+ const double* ap, const double* b,
+ lapack_int ldb, const double* x, lapack_int ldx,
+ double* ferr, double* berr, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_ctprfs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* ap,
+ const lapack_complex_float* b, lapack_int ldb,
+ const lapack_complex_float* x, lapack_int ldx,
+ float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_ztprfs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* ap,
+ const lapack_complex_double* b, lapack_int ldb,
+ const lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_stptri_work( int matrix_order, char uplo, char diag,
+ lapack_int n, float* ap );
+lapack_int LAPACKE_dtptri_work( int matrix_order, char uplo, char diag,
+ lapack_int n, double* ap );
+lapack_int LAPACKE_ctptri_work( int matrix_order, char uplo, char diag,
+ lapack_int n, lapack_complex_float* ap );
+lapack_int LAPACKE_ztptri_work( int matrix_order, char uplo, char diag,
+ lapack_int n, lapack_complex_double* ap );
+
+lapack_int LAPACKE_stptrs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int nrhs,
+ const float* ap, float* b, lapack_int ldb );
+lapack_int LAPACKE_dtptrs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int nrhs,
+ const double* ap, double* b, lapack_int ldb );
+lapack_int LAPACKE_ctptrs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* ap,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_ztptrs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* ap,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_stpttf_work( int matrix_order, char transr, char uplo,
+ lapack_int n, const float* ap, float* arf );
+lapack_int LAPACKE_dtpttf_work( int matrix_order, char transr, char uplo,
+ lapack_int n, const double* ap, double* arf );
+lapack_int LAPACKE_ctpttf_work( int matrix_order, char transr, char uplo,
+ lapack_int n, const lapack_complex_float* ap,
+ lapack_complex_float* arf );
+lapack_int LAPACKE_ztpttf_work( int matrix_order, char transr, char uplo,
+ lapack_int n, const lapack_complex_double* ap,
+ lapack_complex_double* arf );
+
+lapack_int LAPACKE_stpttr_work( int matrix_order, char uplo, lapack_int n,
+ const float* ap, float* a, lapack_int lda );
+lapack_int LAPACKE_dtpttr_work( int matrix_order, char uplo, lapack_int n,
+ const double* ap, double* a, lapack_int lda );
+lapack_int LAPACKE_ctpttr_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* ap,
+ lapack_complex_float* a, lapack_int lda );
+lapack_int LAPACKE_ztpttr_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* ap,
+ lapack_complex_double* a, lapack_int lda );
+
+lapack_int LAPACKE_strcon_work( int matrix_order, char norm, char uplo,
+ char diag, lapack_int n, const float* a,
+ lapack_int lda, float* rcond, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dtrcon_work( int matrix_order, char norm, char uplo,
+ char diag, lapack_int n, const double* a,
+ lapack_int lda, double* rcond, double* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_ctrcon_work( int matrix_order, char norm, char uplo,
+ char diag, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ float* rcond, lapack_complex_float* work,
+ float* rwork );
+lapack_int LAPACKE_ztrcon_work( int matrix_order, char norm, char uplo,
+ char diag, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ double* rcond, lapack_complex_double* work,
+ double* rwork );
+
+lapack_int LAPACKE_strevc_work( int matrix_order, char side, char howmny,
+ lapack_logical* select, lapack_int n,
+ const float* t, lapack_int ldt, float* vl,
+ lapack_int ldvl, float* vr, lapack_int ldvr,
+ lapack_int mm, lapack_int* m, float* work );
+lapack_int LAPACKE_dtrevc_work( int matrix_order, char side, char howmny,
+ lapack_logical* select, lapack_int n,
+ const double* t, lapack_int ldt, double* vl,
+ lapack_int ldvl, double* vr, lapack_int ldvr,
+ lapack_int mm, lapack_int* m, double* work );
+lapack_int LAPACKE_ctrevc_work( int matrix_order, char side, char howmny,
+ const lapack_logical* select, lapack_int n,
+ lapack_complex_float* t, lapack_int ldt,
+ lapack_complex_float* vl, lapack_int ldvl,
+ lapack_complex_float* vr, lapack_int ldvr,
+ lapack_int mm, lapack_int* m,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_ztrevc_work( int matrix_order, char side, char howmny,
+ const lapack_logical* select, lapack_int n,
+ lapack_complex_double* t, lapack_int ldt,
+ lapack_complex_double* vl, lapack_int ldvl,
+ lapack_complex_double* vr, lapack_int ldvr,
+ lapack_int mm, lapack_int* m,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_strexc_work( int matrix_order, char compq, lapack_int n,
+ float* t, lapack_int ldt, float* q,
+ lapack_int ldq, lapack_int* ifst,
+ lapack_int* ilst, float* work );
+lapack_int LAPACKE_dtrexc_work( int matrix_order, char compq, lapack_int n,
+ double* t, lapack_int ldt, double* q,
+ lapack_int ldq, lapack_int* ifst,
+ lapack_int* ilst, double* work );
+lapack_int LAPACKE_ctrexc_work( int matrix_order, char compq, lapack_int n,
+ lapack_complex_float* t, lapack_int ldt,
+ lapack_complex_float* q, lapack_int ldq,
+ lapack_int ifst, lapack_int ilst );
+lapack_int LAPACKE_ztrexc_work( int matrix_order, char compq, lapack_int n,
+ lapack_complex_double* t, lapack_int ldt,
+ lapack_complex_double* q, lapack_int ldq,
+ lapack_int ifst, lapack_int ilst );
+
+lapack_int LAPACKE_strrfs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int nrhs,
+ const float* a, lapack_int lda, const float* b,
+ lapack_int ldb, const float* x, lapack_int ldx,
+ float* ferr, float* berr, float* work,
+ lapack_int* iwork );
+lapack_int LAPACKE_dtrrfs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int nrhs,
+ const double* a, lapack_int lda,
+ const double* b, lapack_int ldb,
+ const double* x, lapack_int ldx, double* ferr,
+ double* berr, double* work, lapack_int* iwork );
+lapack_int LAPACKE_ctrrfs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* b, lapack_int ldb,
+ const lapack_complex_float* x, lapack_int ldx,
+ float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork );
+lapack_int LAPACKE_ztrrfs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* b, lapack_int ldb,
+ const lapack_complex_double* x, lapack_int ldx,
+ double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork );
+
+lapack_int LAPACKE_strsen_work( int matrix_order, char job, char compq,
+ const lapack_logical* select, lapack_int n,
+ float* t, lapack_int ldt, float* q,
+ lapack_int ldq, float* wr, float* wi,
+ lapack_int* m, float* s, float* sep,
+ float* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+lapack_int LAPACKE_dtrsen_work( int matrix_order, char job, char compq,
+ const lapack_logical* select, lapack_int n,
+ double* t, lapack_int ldt, double* q,
+ lapack_int ldq, double* wr, double* wi,
+ lapack_int* m, double* s, double* sep,
+ double* work, lapack_int lwork,
+ lapack_int* iwork, lapack_int liwork );
+lapack_int LAPACKE_ctrsen_work( int matrix_order, char job, char compq,
+ const lapack_logical* select, lapack_int n,
+ lapack_complex_float* t, lapack_int ldt,
+ lapack_complex_float* q, lapack_int ldq,
+ lapack_complex_float* w, lapack_int* m,
+ float* s, float* sep,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_ztrsen_work( int matrix_order, char job, char compq,
+ const lapack_logical* select, lapack_int n,
+ lapack_complex_double* t, lapack_int ldt,
+ lapack_complex_double* q, lapack_int ldq,
+ lapack_complex_double* w, lapack_int* m,
+ double* s, double* sep,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_strsna_work( int matrix_order, char job, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const float* t, lapack_int ldt, const float* vl,
+ lapack_int ldvl, const float* vr,
+ lapack_int ldvr, float* s, float* sep,
+ lapack_int mm, lapack_int* m, float* work,
+ lapack_int ldwork, lapack_int* iwork );
+lapack_int LAPACKE_dtrsna_work( int matrix_order, char job, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const double* t, lapack_int ldt,
+ const double* vl, lapack_int ldvl,
+ const double* vr, lapack_int ldvr, double* s,
+ double* sep, lapack_int mm, lapack_int* m,
+ double* work, lapack_int ldwork,
+ lapack_int* iwork );
+lapack_int LAPACKE_ctrsna_work( int matrix_order, char job, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const lapack_complex_float* t, lapack_int ldt,
+ const lapack_complex_float* vl, lapack_int ldvl,
+ const lapack_complex_float* vr, lapack_int ldvr,
+ float* s, float* sep, lapack_int mm,
+ lapack_int* m, lapack_complex_float* work,
+ lapack_int ldwork, float* rwork );
+lapack_int LAPACKE_ztrsna_work( int matrix_order, char job, char howmny,
+ const lapack_logical* select, lapack_int n,
+ const lapack_complex_double* t, lapack_int ldt,
+ const lapack_complex_double* vl,
+ lapack_int ldvl,
+ const lapack_complex_double* vr,
+ lapack_int ldvr, double* s, double* sep,
+ lapack_int mm, lapack_int* m,
+ lapack_complex_double* work, lapack_int ldwork,
+ double* rwork );
+
+lapack_int LAPACKE_strsyl_work( int matrix_order, char trana, char tranb,
+ lapack_int isgn, lapack_int m, lapack_int n,
+ const float* a, lapack_int lda, const float* b,
+ lapack_int ldb, float* c, lapack_int ldc,
+ float* scale );
+lapack_int LAPACKE_dtrsyl_work( int matrix_order, char trana, char tranb,
+ lapack_int isgn, lapack_int m, lapack_int n,
+ const double* a, lapack_int lda,
+ const double* b, lapack_int ldb, double* c,
+ lapack_int ldc, double* scale );
+lapack_int LAPACKE_ctrsyl_work( int matrix_order, char trana, char tranb,
+ lapack_int isgn, lapack_int m, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* c, lapack_int ldc,
+ float* scale );
+lapack_int LAPACKE_ztrsyl_work( int matrix_order, char trana, char tranb,
+ lapack_int isgn, lapack_int m, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* c, lapack_int ldc,
+ double* scale );
+
+lapack_int LAPACKE_strtri_work( int matrix_order, char uplo, char diag,
+ lapack_int n, float* a, lapack_int lda );
+lapack_int LAPACKE_dtrtri_work( int matrix_order, char uplo, char diag,
+ lapack_int n, double* a, lapack_int lda );
+lapack_int LAPACKE_ctrtri_work( int matrix_order, char uplo, char diag,
+ lapack_int n, lapack_complex_float* a,
+ lapack_int lda );
+lapack_int LAPACKE_ztrtri_work( int matrix_order, char uplo, char diag,
+ lapack_int n, lapack_complex_double* a,
+ lapack_int lda );
+
+lapack_int LAPACKE_strtrs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int nrhs,
+ const float* a, lapack_int lda, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dtrtrs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int nrhs,
+ const double* a, lapack_int lda, double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_ctrtrs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int nrhs,
+ const lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_ztrtrs_work( int matrix_order, char uplo, char trans,
+ char diag, lapack_int n, lapack_int nrhs,
+ const lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_strttf_work( int matrix_order, char transr, char uplo,
+ lapack_int n, const float* a, lapack_int lda,
+ float* arf );
+lapack_int LAPACKE_dtrttf_work( int matrix_order, char transr, char uplo,
+ lapack_int n, const double* a, lapack_int lda,
+ double* arf );
+lapack_int LAPACKE_ctrttf_work( int matrix_order, char transr, char uplo,
+ lapack_int n, const lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* arf );
+lapack_int LAPACKE_ztrttf_work( int matrix_order, char transr, char uplo,
+ lapack_int n, const lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* arf );
+
+lapack_int LAPACKE_strttp_work( int matrix_order, char uplo, lapack_int n,
+ const float* a, lapack_int lda, float* ap );
+lapack_int LAPACKE_dtrttp_work( int matrix_order, char uplo, lapack_int n,
+ const double* a, lapack_int lda, double* ap );
+lapack_int LAPACKE_ctrttp_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* ap );
+lapack_int LAPACKE_ztrttp_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* ap );
+
+lapack_int LAPACKE_stzrzf_work( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* tau,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_dtzrzf_work( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* tau,
+ double* work, lapack_int lwork );
+lapack_int LAPACKE_ctzrzf_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_ztzrzf_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_cungbr_work( int matrix_order, char vect, lapack_int m,
+ lapack_int n, lapack_int k,
+ lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zungbr_work( int matrix_order, char vect, lapack_int m,
+ lapack_int n, lapack_int k,
+ lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_cunghr_work( int matrix_order, lapack_int n, lapack_int ilo,
+ lapack_int ihi, lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zunghr_work( int matrix_order, lapack_int n, lapack_int ilo,
+ lapack_int ihi, lapack_complex_double* a,
+ lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_cunglq_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zunglq_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, lapack_complex_double* a,
+ lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_cungql_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zungql_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, lapack_complex_double* a,
+ lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_cungqr_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zungqr_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, lapack_complex_double* a,
+ lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_cungrq_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zungrq_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int k, lapack_complex_double* a,
+ lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_cungtr_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zungtr_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_cunmbr_work( int matrix_order, char vect, char side,
+ char trans, lapack_int m, lapack_int n,
+ lapack_int k, const lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int ldc,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zunmbr_work( int matrix_order, char vect, char side,
+ char trans, lapack_int m, lapack_int n,
+ lapack_int k, const lapack_complex_double* a,
+ lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int ldc,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_cunmhr_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int ilo,
+ lapack_int ihi, const lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int ldc,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zunmhr_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int ilo,
+ lapack_int ihi, const lapack_complex_double* a,
+ lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int ldc,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_cunmlq_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int ldc,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zunmlq_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int ldc,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_cunmql_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int ldc,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zunmql_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int ldc,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_cunmqr_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int ldc,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zunmqr_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int ldc,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_cunmrq_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int ldc,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zunmrq_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int ldc,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_cunmrz_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int l, const lapack_complex_float* a,
+ lapack_int lda, const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int ldc,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zunmrz_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int l, const lapack_complex_double* a,
+ lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int ldc,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_cunmtr_work( int matrix_order, char side, char uplo,
+ char trans, lapack_int m, lapack_int n,
+ const lapack_complex_float* a, lapack_int lda,
+ const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int ldc,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_zunmtr_work( int matrix_order, char side, char uplo,
+ char trans, lapack_int m, lapack_int n,
+ const lapack_complex_double* a, lapack_int lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int ldc,
+ lapack_complex_double* work, lapack_int lwork );
+
+lapack_int LAPACKE_cupgtr_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_float* ap,
+ const lapack_complex_float* tau,
+ lapack_complex_float* q, lapack_int ldq,
+ lapack_complex_float* work );
+lapack_int LAPACKE_zupgtr_work( int matrix_order, char uplo, lapack_int n,
+ const lapack_complex_double* ap,
+ const lapack_complex_double* tau,
+ lapack_complex_double* q, lapack_int ldq,
+ lapack_complex_double* work );
+
+lapack_int LAPACKE_cupmtr_work( int matrix_order, char side, char uplo,
+ char trans, lapack_int m, lapack_int n,
+ const lapack_complex_float* ap,
+ const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int ldc,
+ lapack_complex_float* work );
+lapack_int LAPACKE_zupmtr_work( int matrix_order, char side, char uplo,
+ char trans, lapack_int m, lapack_int n,
+ const lapack_complex_double* ap,
+ const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int ldc,
+ lapack_complex_double* work );
+
+lapack_int LAPACKE_claghe( int matrix_order, lapack_int n, lapack_int k,
+ const float* d, lapack_complex_float* a,
+ lapack_int lda, lapack_int* iseed );
+lapack_int LAPACKE_zlaghe( int matrix_order, lapack_int n, lapack_int k,
+ const double* d, lapack_complex_double* a,
+ lapack_int lda, lapack_int* iseed );
+
+lapack_int LAPACKE_slagsy( int matrix_order, lapack_int n, lapack_int k,
+ const float* d, float* a, lapack_int lda,
+ lapack_int* iseed );
+lapack_int LAPACKE_dlagsy( int matrix_order, lapack_int n, lapack_int k,
+ const double* d, double* a, lapack_int lda,
+ lapack_int* iseed );
+lapack_int LAPACKE_clagsy( int matrix_order, lapack_int n, lapack_int k,
+ const float* d, lapack_complex_float* a,
+ lapack_int lda, lapack_int* iseed );
+lapack_int LAPACKE_zlagsy( int matrix_order, lapack_int n, lapack_int k,
+ const double* d, lapack_complex_double* a,
+ lapack_int lda, lapack_int* iseed );
+
+lapack_int LAPACKE_slapmr( int matrix_order, lapack_logical forwrd,
+ lapack_int m, lapack_int n, float* x, lapack_int ldx,
+ lapack_int* k );
+lapack_int LAPACKE_dlapmr( int matrix_order, lapack_logical forwrd,
+ lapack_int m, lapack_int n, double* x,
+ lapack_int ldx, lapack_int* k );
+lapack_int LAPACKE_clapmr( int matrix_order, lapack_logical forwrd,
+ lapack_int m, lapack_int n, lapack_complex_float* x,
+ lapack_int ldx, lapack_int* k );
+lapack_int LAPACKE_zlapmr( int matrix_order, lapack_logical forwrd,
+ lapack_int m, lapack_int n, lapack_complex_double* x,
+ lapack_int ldx, lapack_int* k );
+
+
+float LAPACKE_slapy2( float x, float y );
+double LAPACKE_dlapy2( double x, double y );
+
+float LAPACKE_slapy3( float x, float y, float z );
+double LAPACKE_dlapy3( double x, double y, double z );
+
+lapack_int LAPACKE_slartgp( float f, float g, float* cs, float* sn, float* r );
+lapack_int LAPACKE_dlartgp( double f, double g, double* cs, double* sn,
+ double* r );
+
+lapack_int LAPACKE_slartgs( float x, float y, float sigma, float* cs,
+ float* sn );
+lapack_int LAPACKE_dlartgs( double x, double y, double sigma, double* cs,
+ double* sn );
+
+
+//LAPACK 3.3.0
+lapack_int LAPACKE_cbbcsd( int matrix_order, char jobu1, char jobu2,
+ char jobv1t, char jobv2t, char trans, lapack_int m,
+ lapack_int p, lapack_int q, float* theta, float* phi,
+ lapack_complex_float* u1, lapack_int ldu1,
+ lapack_complex_float* u2, lapack_int ldu2,
+ lapack_complex_float* v1t, lapack_int ldv1t,
+ lapack_complex_float* v2t, lapack_int ldv2t,
+ float* b11d, float* b11e, float* b12d, float* b12e,
+ float* b21d, float* b21e, float* b22d, float* b22e );
+lapack_int LAPACKE_cbbcsd_work( int matrix_order, char jobu1, char jobu2,
+ char jobv1t, char jobv2t, char trans,
+ lapack_int m, lapack_int p, lapack_int q,
+ float* theta, float* phi,
+ lapack_complex_float* u1, lapack_int ldu1,
+ lapack_complex_float* u2, lapack_int ldu2,
+ lapack_complex_float* v1t, lapack_int ldv1t,
+ lapack_complex_float* v2t, lapack_int ldv2t,
+ float* b11d, float* b11e, float* b12d,
+ float* b12e, float* b21d, float* b21e,
+ float* b22d, float* b22e, float* rwork,
+ lapack_int lrwork );
+lapack_int LAPACKE_cheswapr( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int i1,
+ lapack_int i2 );
+lapack_int LAPACKE_cheswapr_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int i1,
+ lapack_int i2 );
+lapack_int LAPACKE_chetri2( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ const lapack_int* ipiv );
+lapack_int LAPACKE_chetri2_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ const lapack_int* ipiv,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_chetri2x( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ const lapack_int* ipiv, lapack_int nb );
+lapack_int LAPACKE_chetri2x_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ const lapack_int* ipiv,
+ lapack_complex_float* work, lapack_int nb );
+lapack_int LAPACKE_chetrs2( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_chetrs2_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* work );
+lapack_int LAPACKE_csyconv( int matrix_order, char uplo, char way, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ const lapack_int* ipiv );
+lapack_int LAPACKE_csyconv_work( int matrix_order, char uplo, char way,
+ lapack_int n, lapack_complex_float* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_float* work );
+lapack_int LAPACKE_csyswapr( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int i1,
+ lapack_int i2 );
+lapack_int LAPACKE_csyswapr_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int i1,
+ lapack_int i2 );
+lapack_int LAPACKE_csytri2( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ const lapack_int* ipiv );
+lapack_int LAPACKE_csytri2_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ const lapack_int* ipiv,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_csytri2x( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ const lapack_int* ipiv, lapack_int nb );
+lapack_int LAPACKE_csytri2x_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ const lapack_int* ipiv,
+ lapack_complex_float* work, lapack_int nb );
+lapack_int LAPACKE_csytrs2( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_csytrs2_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_float* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* work );
+lapack_int LAPACKE_cunbdb( int matrix_order, char trans, char signs,
+ lapack_int m, lapack_int p, lapack_int q,
+ lapack_complex_float* x11, lapack_int ldx11,
+ lapack_complex_float* x12, lapack_int ldx12,
+ lapack_complex_float* x21, lapack_int ldx21,
+ lapack_complex_float* x22, lapack_int ldx22,
+ float* theta, float* phi,
+ lapack_complex_float* taup1,
+ lapack_complex_float* taup2,
+ lapack_complex_float* tauq1,
+ lapack_complex_float* tauq2 );
+lapack_int LAPACKE_cunbdb_work( int matrix_order, char trans, char signs,
+ lapack_int m, lapack_int p, lapack_int q,
+ lapack_complex_float* x11, lapack_int ldx11,
+ lapack_complex_float* x12, lapack_int ldx12,
+ lapack_complex_float* x21, lapack_int ldx21,
+ lapack_complex_float* x22, lapack_int ldx22,
+ float* theta, float* phi,
+ lapack_complex_float* taup1,
+ lapack_complex_float* taup2,
+ lapack_complex_float* tauq1,
+ lapack_complex_float* tauq2,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_cuncsd( int matrix_order, char jobu1, char jobu2,
+ char jobv1t, char jobv2t, char trans, char signs,
+ lapack_int m, lapack_int p, lapack_int q,
+ lapack_complex_float* x11, lapack_int ldx11,
+ lapack_complex_float* x12, lapack_int ldx12,
+ lapack_complex_float* x21, lapack_int ldx21,
+ lapack_complex_float* x22, lapack_int ldx22,
+ float* theta, lapack_complex_float* u1,
+ lapack_int ldu1, lapack_complex_float* u2,
+ lapack_int ldu2, lapack_complex_float* v1t,
+ lapack_int ldv1t, lapack_complex_float* v2t,
+ lapack_int ldv2t );
+lapack_int LAPACKE_cuncsd_work( int matrix_order, char jobu1, char jobu2,
+ char jobv1t, char jobv2t, char trans,
+ char signs, lapack_int m, lapack_int p,
+ lapack_int q, lapack_complex_float* x11,
+ lapack_int ldx11, lapack_complex_float* x12,
+ lapack_int ldx12, lapack_complex_float* x21,
+ lapack_int ldx21, lapack_complex_float* x22,
+ lapack_int ldx22, float* theta,
+ lapack_complex_float* u1, lapack_int ldu1,
+ lapack_complex_float* u2, lapack_int ldu2,
+ lapack_complex_float* v1t, lapack_int ldv1t,
+ lapack_complex_float* v2t, lapack_int ldv2t,
+ lapack_complex_float* work, lapack_int lwork,
+ float* rwork, lapack_int lrwork,
+ lapack_int* iwork );
+lapack_int LAPACKE_dbbcsd( int matrix_order, char jobu1, char jobu2,
+ char jobv1t, char jobv2t, char trans, lapack_int m,
+ lapack_int p, lapack_int q, double* theta,
+ double* phi, double* u1, lapack_int ldu1, double* u2,
+ lapack_int ldu2, double* v1t, lapack_int ldv1t,
+ double* v2t, lapack_int ldv2t, double* b11d,
+ double* b11e, double* b12d, double* b12e,
+ double* b21d, double* b21e, double* b22d,
+ double* b22e );
+lapack_int LAPACKE_dbbcsd_work( int matrix_order, char jobu1, char jobu2,
+ char jobv1t, char jobv2t, char trans,
+ lapack_int m, lapack_int p, lapack_int q,
+ double* theta, double* phi, double* u1,
+ lapack_int ldu1, double* u2, lapack_int ldu2,
+ double* v1t, lapack_int ldv1t, double* v2t,
+ lapack_int ldv2t, double* b11d, double* b11e,
+ double* b12d, double* b12e, double* b21d,
+ double* b21e, double* b22d, double* b22e,
+ double* work, lapack_int lwork );
+lapack_int LAPACKE_dorbdb( int matrix_order, char trans, char signs,
+ lapack_int m, lapack_int p, lapack_int q,
+ double* x11, lapack_int ldx11, double* x12,
+ lapack_int ldx12, double* x21, lapack_int ldx21,
+ double* x22, lapack_int ldx22, double* theta,
+ double* phi, double* taup1, double* taup2,
+ double* tauq1, double* tauq2 );
+lapack_int LAPACKE_dorbdb_work( int matrix_order, char trans, char signs,
+ lapack_int m, lapack_int p, lapack_int q,
+ double* x11, lapack_int ldx11, double* x12,
+ lapack_int ldx12, double* x21, lapack_int ldx21,
+ double* x22, lapack_int ldx22, double* theta,
+ double* phi, double* taup1, double* taup2,
+ double* tauq1, double* tauq2, double* work,
+ lapack_int lwork );
+lapack_int LAPACKE_dorcsd( int matrix_order, char jobu1, char jobu2,
+ char jobv1t, char jobv2t, char trans, char signs,
+ lapack_int m, lapack_int p, lapack_int q,
+ double* x11, lapack_int ldx11, double* x12,
+ lapack_int ldx12, double* x21, lapack_int ldx21,
+ double* x22, lapack_int ldx22, double* theta,
+ double* u1, lapack_int ldu1, double* u2,
+ lapack_int ldu2, double* v1t, lapack_int ldv1t,
+ double* v2t, lapack_int ldv2t );
+lapack_int LAPACKE_dorcsd_work( int matrix_order, char jobu1, char jobu2,
+ char jobv1t, char jobv2t, char trans,
+ char signs, lapack_int m, lapack_int p,
+ lapack_int q, double* x11, lapack_int ldx11,
+ double* x12, lapack_int ldx12, double* x21,
+ lapack_int ldx21, double* x22, lapack_int ldx22,
+ double* theta, double* u1, lapack_int ldu1,
+ double* u2, lapack_int ldu2, double* v1t,
+ lapack_int ldv1t, double* v2t, lapack_int ldv2t,
+ double* work, lapack_int lwork,
+ lapack_int* iwork );
+lapack_int LAPACKE_dsyconv( int matrix_order, char uplo, char way, lapack_int n,
+ double* a, lapack_int lda, const lapack_int* ipiv );
+lapack_int LAPACKE_dsyconv_work( int matrix_order, char uplo, char way,
+ lapack_int n, double* a, lapack_int lda,
+ const lapack_int* ipiv, double* work );
+lapack_int LAPACKE_dsyswapr( int matrix_order, char uplo, lapack_int n,
+ double* a, lapack_int i1, lapack_int i2 );
+lapack_int LAPACKE_dsyswapr_work( int matrix_order, char uplo, lapack_int n,
+ double* a, lapack_int i1, lapack_int i2 );
+lapack_int LAPACKE_dsytri2( int matrix_order, char uplo, lapack_int n,
+ double* a, lapack_int lda, const lapack_int* ipiv );
+lapack_int LAPACKE_dsytri2_work( int matrix_order, char uplo, lapack_int n,
+ double* a, lapack_int lda,
+ const lapack_int* ipiv,
+ lapack_complex_double* work, lapack_int lwork );
+lapack_int LAPACKE_dsytri2x( int matrix_order, char uplo, lapack_int n,
+ double* a, lapack_int lda, const lapack_int* ipiv,
+ lapack_int nb );
+lapack_int LAPACKE_dsytri2x_work( int matrix_order, char uplo, lapack_int n,
+ double* a, lapack_int lda,
+ const lapack_int* ipiv, double* work,
+ lapack_int nb );
+lapack_int LAPACKE_dsytrs2( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* a, lapack_int lda,
+ const lapack_int* ipiv, double* b, lapack_int ldb );
+lapack_int LAPACKE_dsytrs2_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const double* a,
+ lapack_int lda, const lapack_int* ipiv,
+ double* b, lapack_int ldb, double* work );
+lapack_int LAPACKE_sbbcsd( int matrix_order, char jobu1, char jobu2,
+ char jobv1t, char jobv2t, char trans, lapack_int m,
+ lapack_int p, lapack_int q, float* theta, float* phi,
+ float* u1, lapack_int ldu1, float* u2,
+ lapack_int ldu2, float* v1t, lapack_int ldv1t,
+ float* v2t, lapack_int ldv2t, float* b11d,
+ float* b11e, float* b12d, float* b12e, float* b21d,
+ float* b21e, float* b22d, float* b22e );
+lapack_int LAPACKE_sbbcsd_work( int matrix_order, char jobu1, char jobu2,
+ char jobv1t, char jobv2t, char trans,
+ lapack_int m, lapack_int p, lapack_int q,
+ float* theta, float* phi, float* u1,
+ lapack_int ldu1, float* u2, lapack_int ldu2,
+ float* v1t, lapack_int ldv1t, float* v2t,
+ lapack_int ldv2t, float* b11d, float* b11e,
+ float* b12d, float* b12e, float* b21d,
+ float* b21e, float* b22d, float* b22e,
+ float* work, lapack_int lwork );
+lapack_int LAPACKE_sorbdb( int matrix_order, char trans, char signs,
+ lapack_int m, lapack_int p, lapack_int q, float* x11,
+ lapack_int ldx11, float* x12, lapack_int ldx12,
+ float* x21, lapack_int ldx21, float* x22,
+ lapack_int ldx22, float* theta, float* phi,
+ float* taup1, float* taup2, float* tauq1,
+ float* tauq2 );
+lapack_int LAPACKE_sorbdb_work( int matrix_order, char trans, char signs,
+ lapack_int m, lapack_int p, lapack_int q,
+ float* x11, lapack_int ldx11, float* x12,
+ lapack_int ldx12, float* x21, lapack_int ldx21,
+ float* x22, lapack_int ldx22, float* theta,
+ float* phi, float* taup1, float* taup2,
+ float* tauq1, float* tauq2, float* work,
+ lapack_int lwork );
+lapack_int LAPACKE_sorcsd( int matrix_order, char jobu1, char jobu2,
+ char jobv1t, char jobv2t, char trans, char signs,
+ lapack_int m, lapack_int p, lapack_int q, float* x11,
+ lapack_int ldx11, float* x12, lapack_int ldx12,
+ float* x21, lapack_int ldx21, float* x22,
+ lapack_int ldx22, float* theta, float* u1,
+ lapack_int ldu1, float* u2, lapack_int ldu2,
+ float* v1t, lapack_int ldv1t, float* v2t,
+ lapack_int ldv2t );
+lapack_int LAPACKE_sorcsd_work( int matrix_order, char jobu1, char jobu2,
+ char jobv1t, char jobv2t, char trans,
+ char signs, lapack_int m, lapack_int p,
+ lapack_int q, float* x11, lapack_int ldx11,
+ float* x12, lapack_int ldx12, float* x21,
+ lapack_int ldx21, float* x22, lapack_int ldx22,
+ float* theta, float* u1, lapack_int ldu1,
+ float* u2, lapack_int ldu2, float* v1t,
+ lapack_int ldv1t, float* v2t, lapack_int ldv2t,
+ float* work, lapack_int lwork,
+ lapack_int* iwork );
+lapack_int LAPACKE_ssyconv( int matrix_order, char uplo, char way, lapack_int n,
+ float* a, lapack_int lda, const lapack_int* ipiv );
+lapack_int LAPACKE_ssyconv_work( int matrix_order, char uplo, char way,
+ lapack_int n, float* a, lapack_int lda,
+ const lapack_int* ipiv, float* work );
+lapack_int LAPACKE_ssyswapr( int matrix_order, char uplo, lapack_int n,
+ float* a, lapack_int i1, lapack_int i2 );
+lapack_int LAPACKE_ssyswapr_work( int matrix_order, char uplo, lapack_int n,
+ float* a, lapack_int i1, lapack_int i2 );
+lapack_int LAPACKE_ssytri2( int matrix_order, char uplo, lapack_int n, float* a,
+ lapack_int lda, const lapack_int* ipiv );
+lapack_int LAPACKE_ssytri2_work( int matrix_order, char uplo, lapack_int n,
+ float* a, lapack_int lda,
+ const lapack_int* ipiv,
+ lapack_complex_float* work, lapack_int lwork );
+lapack_int LAPACKE_ssytri2x( int matrix_order, char uplo, lapack_int n,
+ float* a, lapack_int lda, const lapack_int* ipiv,
+ lapack_int nb );
+lapack_int LAPACKE_ssytri2x_work( int matrix_order, char uplo, lapack_int n,
+ float* a, lapack_int lda,
+ const lapack_int* ipiv, float* work,
+ lapack_int nb );
+lapack_int LAPACKE_ssytrs2( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* a, lapack_int lda,
+ const lapack_int* ipiv, float* b, lapack_int ldb );
+lapack_int LAPACKE_ssytrs2_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const float* a,
+ lapack_int lda, const lapack_int* ipiv,
+ float* b, lapack_int ldb, float* work );
+lapack_int LAPACKE_zbbcsd( int matrix_order, char jobu1, char jobu2,
+ char jobv1t, char jobv2t, char trans, lapack_int m,
+ lapack_int p, lapack_int q, double* theta,
+ double* phi, lapack_complex_double* u1,
+ lapack_int ldu1, lapack_complex_double* u2,
+ lapack_int ldu2, lapack_complex_double* v1t,
+ lapack_int ldv1t, lapack_complex_double* v2t,
+ lapack_int ldv2t, double* b11d, double* b11e,
+ double* b12d, double* b12e, double* b21d,
+ double* b21e, double* b22d, double* b22e );
+lapack_int LAPACKE_zbbcsd_work( int matrix_order, char jobu1, char jobu2,
+ char jobv1t, char jobv2t, char trans,
+ lapack_int m, lapack_int p, lapack_int q,
+ double* theta, double* phi,
+ lapack_complex_double* u1, lapack_int ldu1,
+ lapack_complex_double* u2, lapack_int ldu2,
+ lapack_complex_double* v1t, lapack_int ldv1t,
+ lapack_complex_double* v2t, lapack_int ldv2t,
+ double* b11d, double* b11e, double* b12d,
+ double* b12e, double* b21d, double* b21e,
+ double* b22d, double* b22e, double* rwork,
+ lapack_int lrwork );
+lapack_int LAPACKE_zheswapr( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int i1,
+ lapack_int i2 );
+lapack_int LAPACKE_zheswapr_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int i1,
+ lapack_int i2 );
+lapack_int LAPACKE_zhetri2( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ const lapack_int* ipiv );
+lapack_int LAPACKE_zhetri2_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ const lapack_int* ipiv,
+ lapack_complex_double* work, lapack_int lwork );
+lapack_int LAPACKE_zhetri2x( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ const lapack_int* ipiv, lapack_int nb );
+lapack_int LAPACKE_zhetri2x_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ const lapack_int* ipiv,
+ lapack_complex_double* work, lapack_int nb );
+lapack_int LAPACKE_zhetrs2( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int ldb );
+lapack_int LAPACKE_zhetrs2_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* work );
+lapack_int LAPACKE_zsyconv( int matrix_order, char uplo, char way, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ const lapack_int* ipiv );
+lapack_int LAPACKE_zsyconv_work( int matrix_order, char uplo, char way,
+ lapack_int n, lapack_complex_double* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_double* work );
+lapack_int LAPACKE_zsyswapr( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int i1,
+ lapack_int i2 );
+lapack_int LAPACKE_zsyswapr_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int i1,
+ lapack_int i2 );
+lapack_int LAPACKE_zsytri2( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ const lapack_int* ipiv );
+lapack_int LAPACKE_zsytri2_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ const lapack_int* ipiv,
+ lapack_complex_double* work, lapack_int lwork );
+lapack_int LAPACKE_zsytri2x( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ const lapack_int* ipiv, lapack_int nb );
+lapack_int LAPACKE_zsytri2x_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ const lapack_int* ipiv,
+ lapack_complex_double* work, lapack_int nb );
+lapack_int LAPACKE_zsytrs2( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int ldb );
+lapack_int LAPACKE_zsytrs2_work( int matrix_order, char uplo, lapack_int n,
+ lapack_int nrhs, const lapack_complex_double* a,
+ lapack_int lda, const lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* work );
+lapack_int LAPACKE_zunbdb( int matrix_order, char trans, char signs,
+ lapack_int m, lapack_int p, lapack_int q,
+ lapack_complex_double* x11, lapack_int ldx11,
+ lapack_complex_double* x12, lapack_int ldx12,
+ lapack_complex_double* x21, lapack_int ldx21,
+ lapack_complex_double* x22, lapack_int ldx22,
+ double* theta, double* phi,
+ lapack_complex_double* taup1,
+ lapack_complex_double* taup2,
+ lapack_complex_double* tauq1,
+ lapack_complex_double* tauq2 );
+lapack_int LAPACKE_zunbdb_work( int matrix_order, char trans, char signs,
+ lapack_int m, lapack_int p, lapack_int q,
+ lapack_complex_double* x11, lapack_int ldx11,
+ lapack_complex_double* x12, lapack_int ldx12,
+ lapack_complex_double* x21, lapack_int ldx21,
+ lapack_complex_double* x22, lapack_int ldx22,
+ double* theta, double* phi,
+ lapack_complex_double* taup1,
+ lapack_complex_double* taup2,
+ lapack_complex_double* tauq1,
+ lapack_complex_double* tauq2,
+ lapack_complex_double* work, lapack_int lwork );
+lapack_int LAPACKE_zuncsd( int matrix_order, char jobu1, char jobu2,
+ char jobv1t, char jobv2t, char trans, char signs,
+ lapack_int m, lapack_int p, lapack_int q,
+ lapack_complex_double* x11, lapack_int ldx11,
+ lapack_complex_double* x12, lapack_int ldx12,
+ lapack_complex_double* x21, lapack_int ldx21,
+ lapack_complex_double* x22, lapack_int ldx22,
+ double* theta, lapack_complex_double* u1,
+ lapack_int ldu1, lapack_complex_double* u2,
+ lapack_int ldu2, lapack_complex_double* v1t,
+ lapack_int ldv1t, lapack_complex_double* v2t,
+ lapack_int ldv2t );
+lapack_int LAPACKE_zuncsd_work( int matrix_order, char jobu1, char jobu2,
+ char jobv1t, char jobv2t, char trans,
+ char signs, lapack_int m, lapack_int p,
+ lapack_int q, lapack_complex_double* x11,
+ lapack_int ldx11, lapack_complex_double* x12,
+ lapack_int ldx12, lapack_complex_double* x21,
+ lapack_int ldx21, lapack_complex_double* x22,
+ lapack_int ldx22, double* theta,
+ lapack_complex_double* u1, lapack_int ldu1,
+ lapack_complex_double* u2, lapack_int ldu2,
+ lapack_complex_double* v1t, lapack_int ldv1t,
+ lapack_complex_double* v2t, lapack_int ldv2t,
+ lapack_complex_double* work, lapack_int lwork,
+ double* rwork, lapack_int lrwork,
+ lapack_int* iwork );
+//LAPACK 3.4.0
+lapack_int LAPACKE_sgemqrt( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int nb, const float* v, lapack_int ldv,
+ const float* t, lapack_int ldt, float* c,
+ lapack_int ldc );
+lapack_int LAPACKE_dgemqrt( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int nb, const double* v, lapack_int ldv,
+ const double* t, lapack_int ldt, double* c,
+ lapack_int ldc );
+lapack_int LAPACKE_cgemqrt( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int nb, const lapack_complex_float* v,
+ lapack_int ldv, const lapack_complex_float* t,
+ lapack_int ldt, lapack_complex_float* c,
+ lapack_int ldc );
+lapack_int LAPACKE_zgemqrt( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int nb, const lapack_complex_double* v,
+ lapack_int ldv, const lapack_complex_double* t,
+ lapack_int ldt, lapack_complex_double* c,
+ lapack_int ldc );
+
+lapack_int LAPACKE_sgeqrt( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nb, float* a, lapack_int lda, float* t,
+ lapack_int ldt );
+lapack_int LAPACKE_dgeqrt( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nb, double* a, lapack_int lda, double* t,
+ lapack_int ldt );
+lapack_int LAPACKE_cgeqrt( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nb, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* t,
+ lapack_int ldt );
+lapack_int LAPACKE_zgeqrt( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nb, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* t,
+ lapack_int ldt );
+
+lapack_int LAPACKE_sgeqrt2( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* t,
+ lapack_int ldt );
+lapack_int LAPACKE_dgeqrt2( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* t,
+ lapack_int ldt );
+lapack_int LAPACKE_cgeqrt2( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* t, lapack_int ldt );
+lapack_int LAPACKE_zgeqrt2( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* t, lapack_int ldt );
+
+lapack_int LAPACKE_sgeqrt3( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* t,
+ lapack_int ldt );
+lapack_int LAPACKE_dgeqrt3( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* t,
+ lapack_int ldt );
+lapack_int LAPACKE_cgeqrt3( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* t, lapack_int ldt );
+lapack_int LAPACKE_zgeqrt3( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* t, lapack_int ldt );
+
+lapack_int LAPACKE_stpmqrt( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int l, lapack_int nb, const float* v,
+ lapack_int ldv, const float* t, lapack_int ldt,
+ float* a, lapack_int lda, float* b,
+ lapack_int ldb );
+lapack_int LAPACKE_dtpmqrt( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int l, lapack_int nb, const double* v,
+ lapack_int ldv, const double* t, lapack_int ldt,
+ double* a, lapack_int lda, double* b,
+ lapack_int ldb );
+lapack_int LAPACKE_ctpmqrt( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int l, lapack_int nb,
+ const lapack_complex_float* v, lapack_int ldv,
+ const lapack_complex_float* t, lapack_int ldt,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb );
+lapack_int LAPACKE_ztpmqrt( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int l, lapack_int nb,
+ const lapack_complex_double* v, lapack_int ldv,
+ const lapack_complex_double* t, lapack_int ldt,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb );
+
+lapack_int LAPACKE_dtpqrt( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int l, lapack_int nb, double* a,
+ lapack_int lda, double* b, lapack_int ldb, double* t,
+ lapack_int ldt );
+lapack_int LAPACKE_ctpqrt( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int l, lapack_int nb, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* t,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_int ldt );
+lapack_int LAPACKE_ztpqrt( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int l, lapack_int nb,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* t, lapack_int ldt );
+
+lapack_int LAPACKE_stpqrt2( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* b, lapack_int ldb,
+ float* t, lapack_int ldt );
+lapack_int LAPACKE_dtpqrt2( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* b,
+ lapack_int ldb, double* t, lapack_int ldt );
+lapack_int LAPACKE_ctpqrt2( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* t, lapack_int ldt );
+lapack_int LAPACKE_ztpqrt2( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* t, lapack_int ldt );
+
+lapack_int LAPACKE_stprfb( int matrix_order, char side, char trans, char direct,
+ char storev, lapack_int m, lapack_int n,
+ lapack_int k, lapack_int l, const float* v,
+ lapack_int ldv, const float* t, lapack_int ldt,
+ float* a, lapack_int lda, float* b, lapack_int ldb,
+ lapack_int myldwork );
+lapack_int LAPACKE_dtprfb( int matrix_order, char side, char trans, char direct,
+ char storev, lapack_int m, lapack_int n,
+ lapack_int k, lapack_int l, const double* v,
+ lapack_int ldv, const double* t, lapack_int ldt,
+ double* a, lapack_int lda, double* b, lapack_int ldb,
+ lapack_int myldwork );
+lapack_int LAPACKE_ctprfb( int matrix_order, char side, char trans, char direct,
+ char storev, lapack_int m, lapack_int n,
+ lapack_int k, lapack_int l,
+ const lapack_complex_float* v, lapack_int ldv,
+ const lapack_complex_float* t, lapack_int ldt,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_int myldwork );
+lapack_int LAPACKE_ztprfb( int matrix_order, char side, char trans, char direct,
+ char storev, lapack_int m, lapack_int n,
+ lapack_int k, lapack_int l,
+ const lapack_complex_double* v, lapack_int ldv,
+ const lapack_complex_double* t, lapack_int ldt,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_int myldwork );
+
+lapack_int LAPACKE_sgemqrt_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int nb, const float* v, lapack_int ldv,
+ const float* t, lapack_int ldt, float* c,
+ lapack_int ldc, float* work );
+lapack_int LAPACKE_dgemqrt_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int nb, const double* v, lapack_int ldv,
+ const double* t, lapack_int ldt, double* c,
+ lapack_int ldc, double* work );
+lapack_int LAPACKE_cgemqrt_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int nb, const lapack_complex_float* v,
+ lapack_int ldv, const lapack_complex_float* t,
+ lapack_int ldt, lapack_complex_float* c,
+ lapack_int ldc, lapack_complex_float* work );
+lapack_int LAPACKE_zgemqrt_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int nb, const lapack_complex_double* v,
+ lapack_int ldv, const lapack_complex_double* t,
+ lapack_int ldt, lapack_complex_double* c,
+ lapack_int ldc, lapack_complex_double* work );
+
+lapack_int LAPACKE_sgeqrt_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nb, float* a, lapack_int lda,
+ float* t, lapack_int ldt, float* work );
+lapack_int LAPACKE_dgeqrt_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nb, double* a, lapack_int lda,
+ double* t, lapack_int ldt, double* work );
+lapack_int LAPACKE_cgeqrt_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nb, lapack_complex_float* a,
+ lapack_int lda, lapack_complex_float* t,
+ lapack_int ldt, lapack_complex_float* work );
+lapack_int LAPACKE_zgeqrt_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int nb, lapack_complex_double* a,
+ lapack_int lda, lapack_complex_double* t,
+ lapack_int ldt, lapack_complex_double* work );
+
+lapack_int LAPACKE_sgeqrt2_work( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* t,
+ lapack_int ldt );
+lapack_int LAPACKE_dgeqrt2_work( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* t,
+ lapack_int ldt );
+lapack_int LAPACKE_cgeqrt2_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* t, lapack_int ldt );
+lapack_int LAPACKE_zgeqrt2_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* t, lapack_int ldt );
+
+lapack_int LAPACKE_sgeqrt3_work( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* t,
+ lapack_int ldt );
+lapack_int LAPACKE_dgeqrt3_work( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* t,
+ lapack_int ldt );
+lapack_int LAPACKE_cgeqrt3_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* t, lapack_int ldt );
+lapack_int LAPACKE_zgeqrt3_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* t, lapack_int ldt );
+
+lapack_int LAPACKE_stpmqrt_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int l, lapack_int nb, const float* v,
+ lapack_int ldv, const float* t, lapack_int ldt,
+ float* a, lapack_int lda, float* b,
+ lapack_int ldb, float* work );
+lapack_int LAPACKE_dtpmqrt_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int l, lapack_int nb, const double* v,
+ lapack_int ldv, const double* t,
+ lapack_int ldt, double* a, lapack_int lda,
+ double* b, lapack_int ldb, double* work );
+lapack_int LAPACKE_ctpmqrt_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int l, lapack_int nb,
+ const lapack_complex_float* v, lapack_int ldv,
+ const lapack_complex_float* t, lapack_int ldt,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* work );
+lapack_int LAPACKE_ztpmqrt_work( int matrix_order, char side, char trans,
+ lapack_int m, lapack_int n, lapack_int k,
+ lapack_int l, lapack_int nb,
+ const lapack_complex_double* v, lapack_int ldv,
+ const lapack_complex_double* t, lapack_int ldt,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* work );
+
+lapack_int LAPACKE_dtpqrt_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int l, lapack_int nb, double* a,
+ lapack_int lda, double* b, lapack_int ldb,
+ double* t, lapack_int ldt, double* work );
+lapack_int LAPACKE_ctpqrt_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int l, lapack_int nb,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* t,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_int ldt, lapack_complex_float* work );
+lapack_int LAPACKE_ztpqrt_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_int l, lapack_int nb,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* t, lapack_int ldt,
+ lapack_complex_double* work );
+
+lapack_int LAPACKE_stpqrt2_work( int matrix_order, lapack_int m, lapack_int n,
+ float* a, lapack_int lda, float* b,
+ lapack_int ldb, float* t, lapack_int ldt );
+lapack_int LAPACKE_dtpqrt2_work( int matrix_order, lapack_int m, lapack_int n,
+ double* a, lapack_int lda, double* b,
+ lapack_int ldb, double* t, lapack_int ldt );
+lapack_int LAPACKE_ctpqrt2_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ lapack_complex_float* t, lapack_int ldt );
+lapack_int LAPACKE_ztpqrt2_work( int matrix_order, lapack_int m, lapack_int n,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ lapack_complex_double* t, lapack_int ldt );
+
+lapack_int LAPACKE_stprfb_work( int matrix_order, char side, char trans,
+ char direct, char storev, lapack_int m,
+ lapack_int n, lapack_int k, lapack_int l,
+ const float* v, lapack_int ldv, const float* t,
+ lapack_int ldt, float* a, lapack_int lda,
+ float* b, lapack_int ldb, const float* mywork,
+ lapack_int myldwork );
+lapack_int LAPACKE_dtprfb_work( int matrix_order, char side, char trans,
+ char direct, char storev, lapack_int m,
+ lapack_int n, lapack_int k, lapack_int l,
+ const double* v, lapack_int ldv,
+ const double* t, lapack_int ldt, double* a,
+ lapack_int lda, double* b, lapack_int ldb,
+ const double* mywork, lapack_int myldwork );
+lapack_int LAPACKE_ctprfb_work( int matrix_order, char side, char trans,
+ char direct, char storev, lapack_int m,
+ lapack_int n, lapack_int k, lapack_int l,
+ const lapack_complex_float* v, lapack_int ldv,
+ const lapack_complex_float* t, lapack_int ldt,
+ lapack_complex_float* a, lapack_int lda,
+ lapack_complex_float* b, lapack_int ldb,
+ const float* mywork, lapack_int myldwork );
+lapack_int LAPACKE_ztprfb_work( int matrix_order, char side, char trans,
+ char direct, char storev, lapack_int m,
+ lapack_int n, lapack_int k, lapack_int l,
+ const lapack_complex_double* v, lapack_int ldv,
+ const lapack_complex_double* t, lapack_int ldt,
+ lapack_complex_double* a, lapack_int lda,
+ lapack_complex_double* b, lapack_int ldb,
+ const double* mywork, lapack_int myldwork );
+//LAPACK 3.X.X
+lapack_int LAPACKE_csyr( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float alpha,
+ const lapack_complex_float* x, lapack_int incx,
+ lapack_complex_float* a, lapack_int lda );
+lapack_int LAPACKE_zsyr( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double alpha,
+ const lapack_complex_double* x, lapack_int incx,
+ lapack_complex_double* a, lapack_int lda );
+
+lapack_int LAPACKE_csyr_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_float alpha,
+ const lapack_complex_float* x,
+ lapack_int incx, lapack_complex_float* a,
+ lapack_int lda );
+lapack_int LAPACKE_zsyr_work( int matrix_order, char uplo, lapack_int n,
+ lapack_complex_double alpha,
+ const lapack_complex_double* x,
+ lapack_int incx, lapack_complex_double* a,
+ lapack_int lda );
+
+
+
+#define LAPACK_sgetrf LAPACK_GLOBAL(sgetrf,SGETRF)
+#define LAPACK_dgetrf LAPACK_GLOBAL(dgetrf,DGETRF)
+#define LAPACK_cgetrf LAPACK_GLOBAL(cgetrf,CGETRF)
+#define LAPACK_zgetrf LAPACK_GLOBAL(zgetrf,ZGETRF)
+#define LAPACK_sgbtrf LAPACK_GLOBAL(sgbtrf,SGBTRF)
+#define LAPACK_dgbtrf LAPACK_GLOBAL(dgbtrf,DGBTRF)
+#define LAPACK_cgbtrf LAPACK_GLOBAL(cgbtrf,CGBTRF)
+#define LAPACK_zgbtrf LAPACK_GLOBAL(zgbtrf,ZGBTRF)
+#define LAPACK_sgttrf LAPACK_GLOBAL(sgttrf,SGTTRF)
+#define LAPACK_dgttrf LAPACK_GLOBAL(dgttrf,DGTTRF)
+#define LAPACK_cgttrf LAPACK_GLOBAL(cgttrf,CGTTRF)
+#define LAPACK_zgttrf LAPACK_GLOBAL(zgttrf,ZGTTRF)
+#define LAPACK_spotrf LAPACK_GLOBAL(spotrf,SPOTRF)
+#define LAPACK_dpotrf LAPACK_GLOBAL(dpotrf,DPOTRF)
+#define LAPACK_cpotrf LAPACK_GLOBAL(cpotrf,CPOTRF)
+#define LAPACK_zpotrf LAPACK_GLOBAL(zpotrf,ZPOTRF)
+#define LAPACK_dpstrf LAPACK_GLOBAL(dpstrf,DPSTRF)
+#define LAPACK_spstrf LAPACK_GLOBAL(spstrf,SPSTRF)
+#define LAPACK_zpstrf LAPACK_GLOBAL(zpstrf,ZPSTRF)
+#define LAPACK_cpstrf LAPACK_GLOBAL(cpstrf,CPSTRF)
+#define LAPACK_dpftrf LAPACK_GLOBAL(dpftrf,DPFTRF)
+#define LAPACK_spftrf LAPACK_GLOBAL(spftrf,SPFTRF)
+#define LAPACK_zpftrf LAPACK_GLOBAL(zpftrf,ZPFTRF)
+#define LAPACK_cpftrf LAPACK_GLOBAL(cpftrf,CPFTRF)
+#define LAPACK_spptrf LAPACK_GLOBAL(spptrf,SPPTRF)
+#define LAPACK_dpptrf LAPACK_GLOBAL(dpptrf,DPPTRF)
+#define LAPACK_cpptrf LAPACK_GLOBAL(cpptrf,CPPTRF)
+#define LAPACK_zpptrf LAPACK_GLOBAL(zpptrf,ZPPTRF)
+#define LAPACK_spbtrf LAPACK_GLOBAL(spbtrf,SPBTRF)
+#define LAPACK_dpbtrf LAPACK_GLOBAL(dpbtrf,DPBTRF)
+#define LAPACK_cpbtrf LAPACK_GLOBAL(cpbtrf,CPBTRF)
+#define LAPACK_zpbtrf LAPACK_GLOBAL(zpbtrf,ZPBTRF)
+#define LAPACK_spttrf LAPACK_GLOBAL(spttrf,SPTTRF)
+#define LAPACK_dpttrf LAPACK_GLOBAL(dpttrf,DPTTRF)
+#define LAPACK_cpttrf LAPACK_GLOBAL(cpttrf,CPTTRF)
+#define LAPACK_zpttrf LAPACK_GLOBAL(zpttrf,ZPTTRF)
+#define LAPACK_ssytrf LAPACK_GLOBAL(ssytrf,SSYTRF)
+#define LAPACK_dsytrf LAPACK_GLOBAL(dsytrf,DSYTRF)
+#define LAPACK_csytrf LAPACK_GLOBAL(csytrf,CSYTRF)
+#define LAPACK_zsytrf LAPACK_GLOBAL(zsytrf,ZSYTRF)
+#define LAPACK_chetrf LAPACK_GLOBAL(chetrf,CHETRF)
+#define LAPACK_zhetrf LAPACK_GLOBAL(zhetrf,ZHETRF)
+#define LAPACK_ssptrf LAPACK_GLOBAL(ssptrf,SSPTRF)
+#define LAPACK_dsptrf LAPACK_GLOBAL(dsptrf,DSPTRF)
+#define LAPACK_csptrf LAPACK_GLOBAL(csptrf,CSPTRF)
+#define LAPACK_zsptrf LAPACK_GLOBAL(zsptrf,ZSPTRF)
+#define LAPACK_chptrf LAPACK_GLOBAL(chptrf,CHPTRF)
+#define LAPACK_zhptrf LAPACK_GLOBAL(zhptrf,ZHPTRF)
+#define LAPACK_sgetrs LAPACK_GLOBAL(sgetrs,SGETRS)
+#define LAPACK_dgetrs LAPACK_GLOBAL(dgetrs,DGETRS)
+#define LAPACK_cgetrs LAPACK_GLOBAL(cgetrs,CGETRS)
+#define LAPACK_zgetrs LAPACK_GLOBAL(zgetrs,ZGETRS)
+#define LAPACK_sgbtrs LAPACK_GLOBAL(sgbtrs,SGBTRS)
+#define LAPACK_dgbtrs LAPACK_GLOBAL(dgbtrs,DGBTRS)
+#define LAPACK_cgbtrs LAPACK_GLOBAL(cgbtrs,CGBTRS)
+#define LAPACK_zgbtrs LAPACK_GLOBAL(zgbtrs,ZGBTRS)
+#define LAPACK_sgttrs LAPACK_GLOBAL(sgttrs,SGTTRS)
+#define LAPACK_dgttrs LAPACK_GLOBAL(dgttrs,DGTTRS)
+#define LAPACK_cgttrs LAPACK_GLOBAL(cgttrs,CGTTRS)
+#define LAPACK_zgttrs LAPACK_GLOBAL(zgttrs,ZGTTRS)
+#define LAPACK_spotrs LAPACK_GLOBAL(spotrs,SPOTRS)
+#define LAPACK_dpotrs LAPACK_GLOBAL(dpotrs,DPOTRS)
+#define LAPACK_cpotrs LAPACK_GLOBAL(cpotrs,CPOTRS)
+#define LAPACK_zpotrs LAPACK_GLOBAL(zpotrs,ZPOTRS)
+#define LAPACK_dpftrs LAPACK_GLOBAL(dpftrs,DPFTRS)
+#define LAPACK_spftrs LAPACK_GLOBAL(spftrs,SPFTRS)
+#define LAPACK_zpftrs LAPACK_GLOBAL(zpftrs,ZPFTRS)
+#define LAPACK_cpftrs LAPACK_GLOBAL(cpftrs,CPFTRS)
+#define LAPACK_spptrs LAPACK_GLOBAL(spptrs,SPPTRS)
+#define LAPACK_dpptrs LAPACK_GLOBAL(dpptrs,DPPTRS)
+#define LAPACK_cpptrs LAPACK_GLOBAL(cpptrs,CPPTRS)
+#define LAPACK_zpptrs LAPACK_GLOBAL(zpptrs,ZPPTRS)
+#define LAPACK_spbtrs LAPACK_GLOBAL(spbtrs,SPBTRS)
+#define LAPACK_dpbtrs LAPACK_GLOBAL(dpbtrs,DPBTRS)
+#define LAPACK_cpbtrs LAPACK_GLOBAL(cpbtrs,CPBTRS)
+#define LAPACK_zpbtrs LAPACK_GLOBAL(zpbtrs,ZPBTRS)
+#define LAPACK_spttrs LAPACK_GLOBAL(spttrs,SPTTRS)
+#define LAPACK_dpttrs LAPACK_GLOBAL(dpttrs,DPTTRS)
+#define LAPACK_cpttrs LAPACK_GLOBAL(cpttrs,CPTTRS)
+#define LAPACK_zpttrs LAPACK_GLOBAL(zpttrs,ZPTTRS)
+#define LAPACK_ssytrs LAPACK_GLOBAL(ssytrs,SSYTRS)
+#define LAPACK_dsytrs LAPACK_GLOBAL(dsytrs,DSYTRS)
+#define LAPACK_csytrs LAPACK_GLOBAL(csytrs,CSYTRS)
+#define LAPACK_zsytrs LAPACK_GLOBAL(zsytrs,ZSYTRS)
+#define LAPACK_chetrs LAPACK_GLOBAL(chetrs,CHETRS)
+#define LAPACK_zhetrs LAPACK_GLOBAL(zhetrs,ZHETRS)
+#define LAPACK_ssptrs LAPACK_GLOBAL(ssptrs,SSPTRS)
+#define LAPACK_dsptrs LAPACK_GLOBAL(dsptrs,DSPTRS)
+#define LAPACK_csptrs LAPACK_GLOBAL(csptrs,CSPTRS)
+#define LAPACK_zsptrs LAPACK_GLOBAL(zsptrs,ZSPTRS)
+#define LAPACK_chptrs LAPACK_GLOBAL(chptrs,CHPTRS)
+#define LAPACK_zhptrs LAPACK_GLOBAL(zhptrs,ZHPTRS)
+#define LAPACK_strtrs LAPACK_GLOBAL(strtrs,STRTRS)
+#define LAPACK_dtrtrs LAPACK_GLOBAL(dtrtrs,DTRTRS)
+#define LAPACK_ctrtrs LAPACK_GLOBAL(ctrtrs,CTRTRS)
+#define LAPACK_ztrtrs LAPACK_GLOBAL(ztrtrs,ZTRTRS)
+#define LAPACK_stptrs LAPACK_GLOBAL(stptrs,STPTRS)
+#define LAPACK_dtptrs LAPACK_GLOBAL(dtptrs,DTPTRS)
+#define LAPACK_ctptrs LAPACK_GLOBAL(ctptrs,CTPTRS)
+#define LAPACK_ztptrs LAPACK_GLOBAL(ztptrs,ZTPTRS)
+#define LAPACK_stbtrs LAPACK_GLOBAL(stbtrs,STBTRS)
+#define LAPACK_dtbtrs LAPACK_GLOBAL(dtbtrs,DTBTRS)
+#define LAPACK_ctbtrs LAPACK_GLOBAL(ctbtrs,CTBTRS)
+#define LAPACK_ztbtrs LAPACK_GLOBAL(ztbtrs,ZTBTRS)
+#define LAPACK_sgecon LAPACK_GLOBAL(sgecon,SGECON)
+#define LAPACK_dgecon LAPACK_GLOBAL(dgecon,DGECON)
+#define LAPACK_cgecon LAPACK_GLOBAL(cgecon,CGECON)
+#define LAPACK_zgecon LAPACK_GLOBAL(zgecon,ZGECON)
+#define LAPACK_sgbcon LAPACK_GLOBAL(sgbcon,SGBCON)
+#define LAPACK_dgbcon LAPACK_GLOBAL(dgbcon,DGBCON)
+#define LAPACK_cgbcon LAPACK_GLOBAL(cgbcon,CGBCON)
+#define LAPACK_zgbcon LAPACK_GLOBAL(zgbcon,ZGBCON)
+#define LAPACK_sgtcon LAPACK_GLOBAL(sgtcon,SGTCON)
+#define LAPACK_dgtcon LAPACK_GLOBAL(dgtcon,DGTCON)
+#define LAPACK_cgtcon LAPACK_GLOBAL(cgtcon,CGTCON)
+#define LAPACK_zgtcon LAPACK_GLOBAL(zgtcon,ZGTCON)
+#define LAPACK_spocon LAPACK_GLOBAL(spocon,SPOCON)
+#define LAPACK_dpocon LAPACK_GLOBAL(dpocon,DPOCON)
+#define LAPACK_cpocon LAPACK_GLOBAL(cpocon,CPOCON)
+#define LAPACK_zpocon LAPACK_GLOBAL(zpocon,ZPOCON)
+#define LAPACK_sppcon LAPACK_GLOBAL(sppcon,SPPCON)
+#define LAPACK_dppcon LAPACK_GLOBAL(dppcon,DPPCON)
+#define LAPACK_cppcon LAPACK_GLOBAL(cppcon,CPPCON)
+#define LAPACK_zppcon LAPACK_GLOBAL(zppcon,ZPPCON)
+#define LAPACK_spbcon LAPACK_GLOBAL(spbcon,SPBCON)
+#define LAPACK_dpbcon LAPACK_GLOBAL(dpbcon,DPBCON)
+#define LAPACK_cpbcon LAPACK_GLOBAL(cpbcon,CPBCON)
+#define LAPACK_zpbcon LAPACK_GLOBAL(zpbcon,ZPBCON)
+#define LAPACK_sptcon LAPACK_GLOBAL(sptcon,SPTCON)
+#define LAPACK_dptcon LAPACK_GLOBAL(dptcon,DPTCON)
+#define LAPACK_cptcon LAPACK_GLOBAL(cptcon,CPTCON)
+#define LAPACK_zptcon LAPACK_GLOBAL(zptcon,ZPTCON)
+#define LAPACK_ssycon LAPACK_GLOBAL(ssycon,SSYCON)
+#define LAPACK_dsycon LAPACK_GLOBAL(dsycon,DSYCON)
+#define LAPACK_csycon LAPACK_GLOBAL(csycon,CSYCON)
+#define LAPACK_zsycon LAPACK_GLOBAL(zsycon,ZSYCON)
+#define LAPACK_checon LAPACK_GLOBAL(checon,CHECON)
+#define LAPACK_zhecon LAPACK_GLOBAL(zhecon,ZHECON)
+#define LAPACK_sspcon LAPACK_GLOBAL(sspcon,SSPCON)
+#define LAPACK_dspcon LAPACK_GLOBAL(dspcon,DSPCON)
+#define LAPACK_cspcon LAPACK_GLOBAL(cspcon,CSPCON)
+#define LAPACK_zspcon LAPACK_GLOBAL(zspcon,ZSPCON)
+#define LAPACK_chpcon LAPACK_GLOBAL(chpcon,CHPCON)
+#define LAPACK_zhpcon LAPACK_GLOBAL(zhpcon,ZHPCON)
+#define LAPACK_strcon LAPACK_GLOBAL(strcon,STRCON)
+#define LAPACK_dtrcon LAPACK_GLOBAL(dtrcon,DTRCON)
+#define LAPACK_ctrcon LAPACK_GLOBAL(ctrcon,CTRCON)
+#define LAPACK_ztrcon LAPACK_GLOBAL(ztrcon,ZTRCON)
+#define LAPACK_stpcon LAPACK_GLOBAL(stpcon,STPCON)
+#define LAPACK_dtpcon LAPACK_GLOBAL(dtpcon,DTPCON)
+#define LAPACK_ctpcon LAPACK_GLOBAL(ctpcon,CTPCON)
+#define LAPACK_ztpcon LAPACK_GLOBAL(ztpcon,ZTPCON)
+#define LAPACK_stbcon LAPACK_GLOBAL(stbcon,STBCON)
+#define LAPACK_dtbcon LAPACK_GLOBAL(dtbcon,DTBCON)
+#define LAPACK_ctbcon LAPACK_GLOBAL(ctbcon,CTBCON)
+#define LAPACK_ztbcon LAPACK_GLOBAL(ztbcon,ZTBCON)
+#define LAPACK_sgerfs LAPACK_GLOBAL(sgerfs,SGERFS)
+#define LAPACK_dgerfs LAPACK_GLOBAL(dgerfs,DGERFS)
+#define LAPACK_cgerfs LAPACK_GLOBAL(cgerfs,CGERFS)
+#define LAPACK_zgerfs LAPACK_GLOBAL(zgerfs,ZGERFS)
+#define LAPACK_dgerfsx LAPACK_GLOBAL(dgerfsx,DGERFSX)
+#define LAPACK_sgerfsx LAPACK_GLOBAL(sgerfsx,SGERFSX)
+#define LAPACK_zgerfsx LAPACK_GLOBAL(zgerfsx,ZGERFSX)
+#define LAPACK_cgerfsx LAPACK_GLOBAL(cgerfsx,CGERFSX)
+#define LAPACK_sgbrfs LAPACK_GLOBAL(sgbrfs,SGBRFS)
+#define LAPACK_dgbrfs LAPACK_GLOBAL(dgbrfs,DGBRFS)
+#define LAPACK_cgbrfs LAPACK_GLOBAL(cgbrfs,CGBRFS)
+#define LAPACK_zgbrfs LAPACK_GLOBAL(zgbrfs,ZGBRFS)
+#define LAPACK_dgbrfsx LAPACK_GLOBAL(dgbrfsx,DGBRFSX)
+#define LAPACK_sgbrfsx LAPACK_GLOBAL(sgbrfsx,SGBRFSX)
+#define LAPACK_zgbrfsx LAPACK_GLOBAL(zgbrfsx,ZGBRFSX)
+#define LAPACK_cgbrfsx LAPACK_GLOBAL(cgbrfsx,CGBRFSX)
+#define LAPACK_sgtrfs LAPACK_GLOBAL(sgtrfs,SGTRFS)
+#define LAPACK_dgtrfs LAPACK_GLOBAL(dgtrfs,DGTRFS)
+#define LAPACK_cgtrfs LAPACK_GLOBAL(cgtrfs,CGTRFS)
+#define LAPACK_zgtrfs LAPACK_GLOBAL(zgtrfs,ZGTRFS)
+#define LAPACK_sporfs LAPACK_GLOBAL(sporfs,SPORFS)
+#define LAPACK_dporfs LAPACK_GLOBAL(dporfs,DPORFS)
+#define LAPACK_cporfs LAPACK_GLOBAL(cporfs,CPORFS)
+#define LAPACK_zporfs LAPACK_GLOBAL(zporfs,ZPORFS)
+#define LAPACK_dporfsx LAPACK_GLOBAL(dporfsx,DPORFSX)
+#define LAPACK_sporfsx LAPACK_GLOBAL(sporfsx,SPORFSX)
+#define LAPACK_zporfsx LAPACK_GLOBAL(zporfsx,ZPORFSX)
+#define LAPACK_cporfsx LAPACK_GLOBAL(cporfsx,CPORFSX)
+#define LAPACK_spprfs LAPACK_GLOBAL(spprfs,SPPRFS)
+#define LAPACK_dpprfs LAPACK_GLOBAL(dpprfs,DPPRFS)
+#define LAPACK_cpprfs LAPACK_GLOBAL(cpprfs,CPPRFS)
+#define LAPACK_zpprfs LAPACK_GLOBAL(zpprfs,ZPPRFS)
+#define LAPACK_spbrfs LAPACK_GLOBAL(spbrfs,SPBRFS)
+#define LAPACK_dpbrfs LAPACK_GLOBAL(dpbrfs,DPBRFS)
+#define LAPACK_cpbrfs LAPACK_GLOBAL(cpbrfs,CPBRFS)
+#define LAPACK_zpbrfs LAPACK_GLOBAL(zpbrfs,ZPBRFS)
+#define LAPACK_sptrfs LAPACK_GLOBAL(sptrfs,SPTRFS)
+#define LAPACK_dptrfs LAPACK_GLOBAL(dptrfs,DPTRFS)
+#define LAPACK_cptrfs LAPACK_GLOBAL(cptrfs,CPTRFS)
+#define LAPACK_zptrfs LAPACK_GLOBAL(zptrfs,ZPTRFS)
+#define LAPACK_ssyrfs LAPACK_GLOBAL(ssyrfs,SSYRFS)
+#define LAPACK_dsyrfs LAPACK_GLOBAL(dsyrfs,DSYRFS)
+#define LAPACK_csyrfs LAPACK_GLOBAL(csyrfs,CSYRFS)
+#define LAPACK_zsyrfs LAPACK_GLOBAL(zsyrfs,ZSYRFS)
+#define LAPACK_dsyrfsx LAPACK_GLOBAL(dsyrfsx,DSYRFSX)
+#define LAPACK_ssyrfsx LAPACK_GLOBAL(ssyrfsx,SSYRFSX)
+#define LAPACK_zsyrfsx LAPACK_GLOBAL(zsyrfsx,ZSYRFSX)
+#define LAPACK_csyrfsx LAPACK_GLOBAL(csyrfsx,CSYRFSX)
+#define LAPACK_cherfs LAPACK_GLOBAL(cherfs,CHERFS)
+#define LAPACK_zherfs LAPACK_GLOBAL(zherfs,ZHERFS)
+#define LAPACK_zherfsx LAPACK_GLOBAL(zherfsx,ZHERFSX)
+#define LAPACK_cherfsx LAPACK_GLOBAL(cherfsx,CHERFSX)
+#define LAPACK_ssprfs LAPACK_GLOBAL(ssprfs,SSPRFS)
+#define LAPACK_dsprfs LAPACK_GLOBAL(dsprfs,DSPRFS)
+#define LAPACK_csprfs LAPACK_GLOBAL(csprfs,CSPRFS)
+#define LAPACK_zsprfs LAPACK_GLOBAL(zsprfs,ZSPRFS)
+#define LAPACK_chprfs LAPACK_GLOBAL(chprfs,CHPRFS)
+#define LAPACK_zhprfs LAPACK_GLOBAL(zhprfs,ZHPRFS)
+#define LAPACK_strrfs LAPACK_GLOBAL(strrfs,STRRFS)
+#define LAPACK_dtrrfs LAPACK_GLOBAL(dtrrfs,DTRRFS)
+#define LAPACK_ctrrfs LAPACK_GLOBAL(ctrrfs,CTRRFS)
+#define LAPACK_ztrrfs LAPACK_GLOBAL(ztrrfs,ZTRRFS)
+#define LAPACK_stprfs LAPACK_GLOBAL(stprfs,STPRFS)
+#define LAPACK_dtprfs LAPACK_GLOBAL(dtprfs,DTPRFS)
+#define LAPACK_ctprfs LAPACK_GLOBAL(ctprfs,CTPRFS)
+#define LAPACK_ztprfs LAPACK_GLOBAL(ztprfs,ZTPRFS)
+#define LAPACK_stbrfs LAPACK_GLOBAL(stbrfs,STBRFS)
+#define LAPACK_dtbrfs LAPACK_GLOBAL(dtbrfs,DTBRFS)
+#define LAPACK_ctbrfs LAPACK_GLOBAL(ctbrfs,CTBRFS)
+#define LAPACK_ztbrfs LAPACK_GLOBAL(ztbrfs,ZTBRFS)
+#define LAPACK_sgetri LAPACK_GLOBAL(sgetri,SGETRI)
+#define LAPACK_dgetri LAPACK_GLOBAL(dgetri,DGETRI)
+#define LAPACK_cgetri LAPACK_GLOBAL(cgetri,CGETRI)
+#define LAPACK_zgetri LAPACK_GLOBAL(zgetri,ZGETRI)
+#define LAPACK_spotri LAPACK_GLOBAL(spotri,SPOTRI)
+#define LAPACK_dpotri LAPACK_GLOBAL(dpotri,DPOTRI)
+#define LAPACK_cpotri LAPACK_GLOBAL(cpotri,CPOTRI)
+#define LAPACK_zpotri LAPACK_GLOBAL(zpotri,ZPOTRI)
+#define LAPACK_dpftri LAPACK_GLOBAL(dpftri,DPFTRI)
+#define LAPACK_spftri LAPACK_GLOBAL(spftri,SPFTRI)
+#define LAPACK_zpftri LAPACK_GLOBAL(zpftri,ZPFTRI)
+#define LAPACK_cpftri LAPACK_GLOBAL(cpftri,CPFTRI)
+#define LAPACK_spptri LAPACK_GLOBAL(spptri,SPPTRI)
+#define LAPACK_dpptri LAPACK_GLOBAL(dpptri,DPPTRI)
+#define LAPACK_cpptri LAPACK_GLOBAL(cpptri,CPPTRI)
+#define LAPACK_zpptri LAPACK_GLOBAL(zpptri,ZPPTRI)
+#define LAPACK_ssytri LAPACK_GLOBAL(ssytri,SSYTRI)
+#define LAPACK_dsytri LAPACK_GLOBAL(dsytri,DSYTRI)
+#define LAPACK_csytri LAPACK_GLOBAL(csytri,CSYTRI)
+#define LAPACK_zsytri LAPACK_GLOBAL(zsytri,ZSYTRI)
+#define LAPACK_chetri LAPACK_GLOBAL(chetri,CHETRI)
+#define LAPACK_zhetri LAPACK_GLOBAL(zhetri,ZHETRI)
+#define LAPACK_ssptri LAPACK_GLOBAL(ssptri,SSPTRI)
+#define LAPACK_dsptri LAPACK_GLOBAL(dsptri,DSPTRI)
+#define LAPACK_csptri LAPACK_GLOBAL(csptri,CSPTRI)
+#define LAPACK_zsptri LAPACK_GLOBAL(zsptri,ZSPTRI)
+#define LAPACK_chptri LAPACK_GLOBAL(chptri,CHPTRI)
+#define LAPACK_zhptri LAPACK_GLOBAL(zhptri,ZHPTRI)
+#define LAPACK_strtri LAPACK_GLOBAL(strtri,STRTRI)
+#define LAPACK_dtrtri LAPACK_GLOBAL(dtrtri,DTRTRI)
+#define LAPACK_ctrtri LAPACK_GLOBAL(ctrtri,CTRTRI)
+#define LAPACK_ztrtri LAPACK_GLOBAL(ztrtri,ZTRTRI)
+#define LAPACK_dtftri LAPACK_GLOBAL(dtftri,DTFTRI)
+#define LAPACK_stftri LAPACK_GLOBAL(stftri,STFTRI)
+#define LAPACK_ztftri LAPACK_GLOBAL(ztftri,ZTFTRI)
+#define LAPACK_ctftri LAPACK_GLOBAL(ctftri,CTFTRI)
+#define LAPACK_stptri LAPACK_GLOBAL(stptri,STPTRI)
+#define LAPACK_dtptri LAPACK_GLOBAL(dtptri,DTPTRI)
+#define LAPACK_ctptri LAPACK_GLOBAL(ctptri,CTPTRI)
+#define LAPACK_ztptri LAPACK_GLOBAL(ztptri,ZTPTRI)
+#define LAPACK_sgeequ LAPACK_GLOBAL(sgeequ,SGEEQU)
+#define LAPACK_dgeequ LAPACK_GLOBAL(dgeequ,DGEEQU)
+#define LAPACK_cgeequ LAPACK_GLOBAL(cgeequ,CGEEQU)
+#define LAPACK_zgeequ LAPACK_GLOBAL(zgeequ,ZGEEQU)
+#define LAPACK_dgeequb LAPACK_GLOBAL(dgeequb,DGEEQUB)
+#define LAPACK_sgeequb LAPACK_GLOBAL(sgeequb,SGEEQUB)
+#define LAPACK_zgeequb LAPACK_GLOBAL(zgeequb,ZGEEQUB)
+#define LAPACK_cgeequb LAPACK_GLOBAL(cgeequb,CGEEQUB)
+#define LAPACK_sgbequ LAPACK_GLOBAL(sgbequ,SGBEQU)
+#define LAPACK_dgbequ LAPACK_GLOBAL(dgbequ,DGBEQU)
+#define LAPACK_cgbequ LAPACK_GLOBAL(cgbequ,CGBEQU)
+#define LAPACK_zgbequ LAPACK_GLOBAL(zgbequ,ZGBEQU)
+#define LAPACK_dgbequb LAPACK_GLOBAL(dgbequb,DGBEQUB)
+#define LAPACK_sgbequb LAPACK_GLOBAL(sgbequb,SGBEQUB)
+#define LAPACK_zgbequb LAPACK_GLOBAL(zgbequb,ZGBEQUB)
+#define LAPACK_cgbequb LAPACK_GLOBAL(cgbequb,CGBEQUB)
+#define LAPACK_spoequ LAPACK_GLOBAL(spoequ,SPOEQU)
+#define LAPACK_dpoequ LAPACK_GLOBAL(dpoequ,DPOEQU)
+#define LAPACK_cpoequ LAPACK_GLOBAL(cpoequ,CPOEQU)
+#define LAPACK_zpoequ LAPACK_GLOBAL(zpoequ,ZPOEQU)
+#define LAPACK_dpoequb LAPACK_GLOBAL(dpoequb,DPOEQUB)
+#define LAPACK_spoequb LAPACK_GLOBAL(spoequb,SPOEQUB)
+#define LAPACK_zpoequb LAPACK_GLOBAL(zpoequb,ZPOEQUB)
+#define LAPACK_cpoequb LAPACK_GLOBAL(cpoequb,CPOEQUB)
+#define LAPACK_sppequ LAPACK_GLOBAL(sppequ,SPPEQU)
+#define LAPACK_dppequ LAPACK_GLOBAL(dppequ,DPPEQU)
+#define LAPACK_cppequ LAPACK_GLOBAL(cppequ,CPPEQU)
+#define LAPACK_zppequ LAPACK_GLOBAL(zppequ,ZPPEQU)
+#define LAPACK_spbequ LAPACK_GLOBAL(spbequ,SPBEQU)
+#define LAPACK_dpbequ LAPACK_GLOBAL(dpbequ,DPBEQU)
+#define LAPACK_cpbequ LAPACK_GLOBAL(cpbequ,CPBEQU)
+#define LAPACK_zpbequ LAPACK_GLOBAL(zpbequ,ZPBEQU)
+#define LAPACK_dsyequb LAPACK_GLOBAL(dsyequb,DSYEQUB)
+#define LAPACK_ssyequb LAPACK_GLOBAL(ssyequb,SSYEQUB)
+#define LAPACK_zsyequb LAPACK_GLOBAL(zsyequb,ZSYEQUB)
+#define LAPACK_csyequb LAPACK_GLOBAL(csyequb,CSYEQUB)
+#define LAPACK_zheequb LAPACK_GLOBAL(zheequb,ZHEEQUB)
+#define LAPACK_cheequb LAPACK_GLOBAL(cheequb,CHEEQUB)
+#define LAPACK_sgesv LAPACK_GLOBAL(sgesv,SGESV)
+#define LAPACK_dgesv LAPACK_GLOBAL(dgesv,DGESV)
+#define LAPACK_cgesv LAPACK_GLOBAL(cgesv,CGESV)
+#define LAPACK_zgesv LAPACK_GLOBAL(zgesv,ZGESV)
+#define LAPACK_dsgesv LAPACK_GLOBAL(dsgesv,DSGESV)
+#define LAPACK_zcgesv LAPACK_GLOBAL(zcgesv,ZCGESV)
+#define LAPACK_sgesvx LAPACK_GLOBAL(sgesvx,SGESVX)
+#define LAPACK_dgesvx LAPACK_GLOBAL(dgesvx,DGESVX)
+#define LAPACK_cgesvx LAPACK_GLOBAL(cgesvx,CGESVX)
+#define LAPACK_zgesvx LAPACK_GLOBAL(zgesvx,ZGESVX)
+#define LAPACK_dgesvxx LAPACK_GLOBAL(dgesvxx,DGESVXX)
+#define LAPACK_sgesvxx LAPACK_GLOBAL(sgesvxx,SGESVXX)
+#define LAPACK_zgesvxx LAPACK_GLOBAL(zgesvxx,ZGESVXX)
+#define LAPACK_cgesvxx LAPACK_GLOBAL(cgesvxx,CGESVXX)
+#define LAPACK_sgbsv LAPACK_GLOBAL(sgbsv,SGBSV)
+#define LAPACK_dgbsv LAPACK_GLOBAL(dgbsv,DGBSV)
+#define LAPACK_cgbsv LAPACK_GLOBAL(cgbsv,CGBSV)
+#define LAPACK_zgbsv LAPACK_GLOBAL(zgbsv,ZGBSV)
+#define LAPACK_sgbsvx LAPACK_GLOBAL(sgbsvx,SGBSVX)
+#define LAPACK_dgbsvx LAPACK_GLOBAL(dgbsvx,DGBSVX)
+#define LAPACK_cgbsvx LAPACK_GLOBAL(cgbsvx,CGBSVX)
+#define LAPACK_zgbsvx LAPACK_GLOBAL(zgbsvx,ZGBSVX)
+#define LAPACK_dgbsvxx LAPACK_GLOBAL(dgbsvxx,DGBSVXX)
+#define LAPACK_sgbsvxx LAPACK_GLOBAL(sgbsvxx,SGBSVXX)
+#define LAPACK_zgbsvxx LAPACK_GLOBAL(zgbsvxx,ZGBSVXX)
+#define LAPACK_cgbsvxx LAPACK_GLOBAL(cgbsvxx,CGBSVXX)
+#define LAPACK_sgtsv LAPACK_GLOBAL(sgtsv,SGTSV)
+#define LAPACK_dgtsv LAPACK_GLOBAL(dgtsv,DGTSV)
+#define LAPACK_cgtsv LAPACK_GLOBAL(cgtsv,CGTSV)
+#define LAPACK_zgtsv LAPACK_GLOBAL(zgtsv,ZGTSV)
+#define LAPACK_sgtsvx LAPACK_GLOBAL(sgtsvx,SGTSVX)
+#define LAPACK_dgtsvx LAPACK_GLOBAL(dgtsvx,DGTSVX)
+#define LAPACK_cgtsvx LAPACK_GLOBAL(cgtsvx,CGTSVX)
+#define LAPACK_zgtsvx LAPACK_GLOBAL(zgtsvx,ZGTSVX)
+#define LAPACK_sposv LAPACK_GLOBAL(sposv,SPOSV)
+#define LAPACK_dposv LAPACK_GLOBAL(dposv,DPOSV)
+#define LAPACK_cposv LAPACK_GLOBAL(cposv,CPOSV)
+#define LAPACK_zposv LAPACK_GLOBAL(zposv,ZPOSV)
+#define LAPACK_dsposv LAPACK_GLOBAL(dsposv,DSPOSV)
+#define LAPACK_zcposv LAPACK_GLOBAL(zcposv,ZCPOSV)
+#define LAPACK_sposvx LAPACK_GLOBAL(sposvx,SPOSVX)
+#define LAPACK_dposvx LAPACK_GLOBAL(dposvx,DPOSVX)
+#define LAPACK_cposvx LAPACK_GLOBAL(cposvx,CPOSVX)
+#define LAPACK_zposvx LAPACK_GLOBAL(zposvx,ZPOSVX)
+#define LAPACK_dposvxx LAPACK_GLOBAL(dposvxx,DPOSVXX)
+#define LAPACK_sposvxx LAPACK_GLOBAL(sposvxx,SPOSVXX)
+#define LAPACK_zposvxx LAPACK_GLOBAL(zposvxx,ZPOSVXX)
+#define LAPACK_cposvxx LAPACK_GLOBAL(cposvxx,CPOSVXX)
+#define LAPACK_sppsv LAPACK_GLOBAL(sppsv,SPPSV)
+#define LAPACK_dppsv LAPACK_GLOBAL(dppsv,DPPSV)
+#define LAPACK_cppsv LAPACK_GLOBAL(cppsv,CPPSV)
+#define LAPACK_zppsv LAPACK_GLOBAL(zppsv,ZPPSV)
+#define LAPACK_sppsvx LAPACK_GLOBAL(sppsvx,SPPSVX)
+#define LAPACK_dppsvx LAPACK_GLOBAL(dppsvx,DPPSVX)
+#define LAPACK_cppsvx LAPACK_GLOBAL(cppsvx,CPPSVX)
+#define LAPACK_zppsvx LAPACK_GLOBAL(zppsvx,ZPPSVX)
+#define LAPACK_spbsv LAPACK_GLOBAL(spbsv,SPBSV)
+#define LAPACK_dpbsv LAPACK_GLOBAL(dpbsv,DPBSV)
+#define LAPACK_cpbsv LAPACK_GLOBAL(cpbsv,CPBSV)
+#define LAPACK_zpbsv LAPACK_GLOBAL(zpbsv,ZPBSV)
+#define LAPACK_spbsvx LAPACK_GLOBAL(spbsvx,SPBSVX)
+#define LAPACK_dpbsvx LAPACK_GLOBAL(dpbsvx,DPBSVX)
+#define LAPACK_cpbsvx LAPACK_GLOBAL(cpbsvx,CPBSVX)
+#define LAPACK_zpbsvx LAPACK_GLOBAL(zpbsvx,ZPBSVX)
+#define LAPACK_sptsv LAPACK_GLOBAL(sptsv,SPTSV)
+#define LAPACK_dptsv LAPACK_GLOBAL(dptsv,DPTSV)
+#define LAPACK_cptsv LAPACK_GLOBAL(cptsv,CPTSV)
+#define LAPACK_zptsv LAPACK_GLOBAL(zptsv,ZPTSV)
+#define LAPACK_sptsvx LAPACK_GLOBAL(sptsvx,SPTSVX)
+#define LAPACK_dptsvx LAPACK_GLOBAL(dptsvx,DPTSVX)
+#define LAPACK_cptsvx LAPACK_GLOBAL(cptsvx,CPTSVX)
+#define LAPACK_zptsvx LAPACK_GLOBAL(zptsvx,ZPTSVX)
+#define LAPACK_ssysv LAPACK_GLOBAL(ssysv,SSYSV)
+#define LAPACK_dsysv LAPACK_GLOBAL(dsysv,DSYSV)
+#define LAPACK_csysv LAPACK_GLOBAL(csysv,CSYSV)
+#define LAPACK_zsysv LAPACK_GLOBAL(zsysv,ZSYSV)
+#define LAPACK_ssysvx LAPACK_GLOBAL(ssysvx,SSYSVX)
+#define LAPACK_dsysvx LAPACK_GLOBAL(dsysvx,DSYSVX)
+#define LAPACK_csysvx LAPACK_GLOBAL(csysvx,CSYSVX)
+#define LAPACK_zsysvx LAPACK_GLOBAL(zsysvx,ZSYSVX)
+#define LAPACK_dsysvxx LAPACK_GLOBAL(dsysvxx,DSYSVXX)
+#define LAPACK_ssysvxx LAPACK_GLOBAL(ssysvxx,SSYSVXX)
+#define LAPACK_zsysvxx LAPACK_GLOBAL(zsysvxx,ZSYSVXX)
+#define LAPACK_csysvxx LAPACK_GLOBAL(csysvxx,CSYSVXX)
+#define LAPACK_chesv LAPACK_GLOBAL(chesv,CHESV)
+#define LAPACK_zhesv LAPACK_GLOBAL(zhesv,ZHESV)
+#define LAPACK_chesvx LAPACK_GLOBAL(chesvx,CHESVX)
+#define LAPACK_zhesvx LAPACK_GLOBAL(zhesvx,ZHESVX)
+#define LAPACK_zhesvxx LAPACK_GLOBAL(zhesvxx,ZHESVXX)
+#define LAPACK_chesvxx LAPACK_GLOBAL(chesvxx,CHESVXX)
+#define LAPACK_sspsv LAPACK_GLOBAL(sspsv,SSPSV)
+#define LAPACK_dspsv LAPACK_GLOBAL(dspsv,DSPSV)
+#define LAPACK_cspsv LAPACK_GLOBAL(cspsv,CSPSV)
+#define LAPACK_zspsv LAPACK_GLOBAL(zspsv,ZSPSV)
+#define LAPACK_sspsvx LAPACK_GLOBAL(sspsvx,SSPSVX)
+#define LAPACK_dspsvx LAPACK_GLOBAL(dspsvx,DSPSVX)
+#define LAPACK_cspsvx LAPACK_GLOBAL(cspsvx,CSPSVX)
+#define LAPACK_zspsvx LAPACK_GLOBAL(zspsvx,ZSPSVX)
+#define LAPACK_chpsv LAPACK_GLOBAL(chpsv,CHPSV)
+#define LAPACK_zhpsv LAPACK_GLOBAL(zhpsv,ZHPSV)
+#define LAPACK_chpsvx LAPACK_GLOBAL(chpsvx,CHPSVX)
+#define LAPACK_zhpsvx LAPACK_GLOBAL(zhpsvx,ZHPSVX)
+#define LAPACK_sgeqrf LAPACK_GLOBAL(sgeqrf,SGEQRF)
+#define LAPACK_dgeqrf LAPACK_GLOBAL(dgeqrf,DGEQRF)
+#define LAPACK_cgeqrf LAPACK_GLOBAL(cgeqrf,CGEQRF)
+#define LAPACK_zgeqrf LAPACK_GLOBAL(zgeqrf,ZGEQRF)
+#define LAPACK_sgeqpf LAPACK_GLOBAL(sgeqpf,SGEQPF)
+#define LAPACK_dgeqpf LAPACK_GLOBAL(dgeqpf,DGEQPF)
+#define LAPACK_cgeqpf LAPACK_GLOBAL(cgeqpf,CGEQPF)
+#define LAPACK_zgeqpf LAPACK_GLOBAL(zgeqpf,ZGEQPF)
+#define LAPACK_sgeqp3 LAPACK_GLOBAL(sgeqp3,SGEQP3)
+#define LAPACK_dgeqp3 LAPACK_GLOBAL(dgeqp3,DGEQP3)
+#define LAPACK_cgeqp3 LAPACK_GLOBAL(cgeqp3,CGEQP3)
+#define LAPACK_zgeqp3 LAPACK_GLOBAL(zgeqp3,ZGEQP3)
+#define LAPACK_sorgqr LAPACK_GLOBAL(sorgqr,SORGQR)
+#define LAPACK_dorgqr LAPACK_GLOBAL(dorgqr,DORGQR)
+#define LAPACK_sormqr LAPACK_GLOBAL(sormqr,SORMQR)
+#define LAPACK_dormqr LAPACK_GLOBAL(dormqr,DORMQR)
+#define LAPACK_cungqr LAPACK_GLOBAL(cungqr,CUNGQR)
+#define LAPACK_zungqr LAPACK_GLOBAL(zungqr,ZUNGQR)
+#define LAPACK_cunmqr LAPACK_GLOBAL(cunmqr,CUNMQR)
+#define LAPACK_zunmqr LAPACK_GLOBAL(zunmqr,ZUNMQR)
+#define LAPACK_sgelqf LAPACK_GLOBAL(sgelqf,SGELQF)
+#define LAPACK_dgelqf LAPACK_GLOBAL(dgelqf,DGELQF)
+#define LAPACK_cgelqf LAPACK_GLOBAL(cgelqf,CGELQF)
+#define LAPACK_zgelqf LAPACK_GLOBAL(zgelqf,ZGELQF)
+#define LAPACK_sorglq LAPACK_GLOBAL(sorglq,SORGLQ)
+#define LAPACK_dorglq LAPACK_GLOBAL(dorglq,DORGLQ)
+#define LAPACK_sormlq LAPACK_GLOBAL(sormlq,SORMLQ)
+#define LAPACK_dormlq LAPACK_GLOBAL(dormlq,DORMLQ)
+#define LAPACK_cunglq LAPACK_GLOBAL(cunglq,CUNGLQ)
+#define LAPACK_zunglq LAPACK_GLOBAL(zunglq,ZUNGLQ)
+#define LAPACK_cunmlq LAPACK_GLOBAL(cunmlq,CUNMLQ)
+#define LAPACK_zunmlq LAPACK_GLOBAL(zunmlq,ZUNMLQ)
+#define LAPACK_sgeqlf LAPACK_GLOBAL(sgeqlf,SGEQLF)
+#define LAPACK_dgeqlf LAPACK_GLOBAL(dgeqlf,DGEQLF)
+#define LAPACK_cgeqlf LAPACK_GLOBAL(cgeqlf,CGEQLF)
+#define LAPACK_zgeqlf LAPACK_GLOBAL(zgeqlf,ZGEQLF)
+#define LAPACK_sorgql LAPACK_GLOBAL(sorgql,SORGQL)
+#define LAPACK_dorgql LAPACK_GLOBAL(dorgql,DORGQL)
+#define LAPACK_cungql LAPACK_GLOBAL(cungql,CUNGQL)
+#define LAPACK_zungql LAPACK_GLOBAL(zungql,ZUNGQL)
+#define LAPACK_sormql LAPACK_GLOBAL(sormql,SORMQL)
+#define LAPACK_dormql LAPACK_GLOBAL(dormql,DORMQL)
+#define LAPACK_cunmql LAPACK_GLOBAL(cunmql,CUNMQL)
+#define LAPACK_zunmql LAPACK_GLOBAL(zunmql,ZUNMQL)
+#define LAPACK_sgerqf LAPACK_GLOBAL(sgerqf,SGERQF)
+#define LAPACK_dgerqf LAPACK_GLOBAL(dgerqf,DGERQF)
+#define LAPACK_cgerqf LAPACK_GLOBAL(cgerqf,CGERQF)
+#define LAPACK_zgerqf LAPACK_GLOBAL(zgerqf,ZGERQF)
+#define LAPACK_sorgrq LAPACK_GLOBAL(sorgrq,SORGRQ)
+#define LAPACK_dorgrq LAPACK_GLOBAL(dorgrq,DORGRQ)
+#define LAPACK_cungrq LAPACK_GLOBAL(cungrq,CUNGRQ)
+#define LAPACK_zungrq LAPACK_GLOBAL(zungrq,ZUNGRQ)
+#define LAPACK_sormrq LAPACK_GLOBAL(sormrq,SORMRQ)
+#define LAPACK_dormrq LAPACK_GLOBAL(dormrq,DORMRQ)
+#define LAPACK_cunmrq LAPACK_GLOBAL(cunmrq,CUNMRQ)
+#define LAPACK_zunmrq LAPACK_GLOBAL(zunmrq,ZUNMRQ)
+#define LAPACK_stzrzf LAPACK_GLOBAL(stzrzf,STZRZF)
+#define LAPACK_dtzrzf LAPACK_GLOBAL(dtzrzf,DTZRZF)
+#define LAPACK_ctzrzf LAPACK_GLOBAL(ctzrzf,CTZRZF)
+#define LAPACK_ztzrzf LAPACK_GLOBAL(ztzrzf,ZTZRZF)
+#define LAPACK_sormrz LAPACK_GLOBAL(sormrz,SORMRZ)
+#define LAPACK_dormrz LAPACK_GLOBAL(dormrz,DORMRZ)
+#define LAPACK_cunmrz LAPACK_GLOBAL(cunmrz,CUNMRZ)
+#define LAPACK_zunmrz LAPACK_GLOBAL(zunmrz,ZUNMRZ)
+#define LAPACK_sggqrf LAPACK_GLOBAL(sggqrf,SGGQRF)
+#define LAPACK_dggqrf LAPACK_GLOBAL(dggqrf,DGGQRF)
+#define LAPACK_cggqrf LAPACK_GLOBAL(cggqrf,CGGQRF)
+#define LAPACK_zggqrf LAPACK_GLOBAL(zggqrf,ZGGQRF)
+#define LAPACK_sggrqf LAPACK_GLOBAL(sggrqf,SGGRQF)
+#define LAPACK_dggrqf LAPACK_GLOBAL(dggrqf,DGGRQF)
+#define LAPACK_cggrqf LAPACK_GLOBAL(cggrqf,CGGRQF)
+#define LAPACK_zggrqf LAPACK_GLOBAL(zggrqf,ZGGRQF)
+#define LAPACK_sgebrd LAPACK_GLOBAL(sgebrd,SGEBRD)
+#define LAPACK_dgebrd LAPACK_GLOBAL(dgebrd,DGEBRD)
+#define LAPACK_cgebrd LAPACK_GLOBAL(cgebrd,CGEBRD)
+#define LAPACK_zgebrd LAPACK_GLOBAL(zgebrd,ZGEBRD)
+#define LAPACK_sgbbrd LAPACK_GLOBAL(sgbbrd,SGBBRD)
+#define LAPACK_dgbbrd LAPACK_GLOBAL(dgbbrd,DGBBRD)
+#define LAPACK_cgbbrd LAPACK_GLOBAL(cgbbrd,CGBBRD)
+#define LAPACK_zgbbrd LAPACK_GLOBAL(zgbbrd,ZGBBRD)
+#define LAPACK_sorgbr LAPACK_GLOBAL(sorgbr,SORGBR)
+#define LAPACK_dorgbr LAPACK_GLOBAL(dorgbr,DORGBR)
+#define LAPACK_sormbr LAPACK_GLOBAL(sormbr,SORMBR)
+#define LAPACK_dormbr LAPACK_GLOBAL(dormbr,DORMBR)
+#define LAPACK_cungbr LAPACK_GLOBAL(cungbr,CUNGBR)
+#define LAPACK_zungbr LAPACK_GLOBAL(zungbr,ZUNGBR)
+#define LAPACK_cunmbr LAPACK_GLOBAL(cunmbr,CUNMBR)
+#define LAPACK_zunmbr LAPACK_GLOBAL(zunmbr,ZUNMBR)
+#define LAPACK_sbdsqr LAPACK_GLOBAL(sbdsqr,SBDSQR)
+#define LAPACK_dbdsqr LAPACK_GLOBAL(dbdsqr,DBDSQR)
+#define LAPACK_cbdsqr LAPACK_GLOBAL(cbdsqr,CBDSQR)
+#define LAPACK_zbdsqr LAPACK_GLOBAL(zbdsqr,ZBDSQR)
+#define LAPACK_sbdsdc LAPACK_GLOBAL(sbdsdc,SBDSDC)
+#define LAPACK_dbdsdc LAPACK_GLOBAL(dbdsdc,DBDSDC)
+#define LAPACK_ssytrd LAPACK_GLOBAL(ssytrd,SSYTRD)
+#define LAPACK_dsytrd LAPACK_GLOBAL(dsytrd,DSYTRD)
+#define LAPACK_sorgtr LAPACK_GLOBAL(sorgtr,SORGTR)
+#define LAPACK_dorgtr LAPACK_GLOBAL(dorgtr,DORGTR)
+#define LAPACK_sormtr LAPACK_GLOBAL(sormtr,SORMTR)
+#define LAPACK_dormtr LAPACK_GLOBAL(dormtr,DORMTR)
+#define LAPACK_chetrd LAPACK_GLOBAL(chetrd,CHETRD)
+#define LAPACK_zhetrd LAPACK_GLOBAL(zhetrd,ZHETRD)
+#define LAPACK_cungtr LAPACK_GLOBAL(cungtr,CUNGTR)
+#define LAPACK_zungtr LAPACK_GLOBAL(zungtr,ZUNGTR)
+#define LAPACK_cunmtr LAPACK_GLOBAL(cunmtr,CUNMTR)
+#define LAPACK_zunmtr LAPACK_GLOBAL(zunmtr,ZUNMTR)
+#define LAPACK_ssptrd LAPACK_GLOBAL(ssptrd,SSPTRD)
+#define LAPACK_dsptrd LAPACK_GLOBAL(dsptrd,DSPTRD)
+#define LAPACK_sopgtr LAPACK_GLOBAL(sopgtr,SOPGTR)
+#define LAPACK_dopgtr LAPACK_GLOBAL(dopgtr,DOPGTR)
+#define LAPACK_sopmtr LAPACK_GLOBAL(sopmtr,SOPMTR)
+#define LAPACK_dopmtr LAPACK_GLOBAL(dopmtr,DOPMTR)
+#define LAPACK_chptrd LAPACK_GLOBAL(chptrd,CHPTRD)
+#define LAPACK_zhptrd LAPACK_GLOBAL(zhptrd,ZHPTRD)
+#define LAPACK_cupgtr LAPACK_GLOBAL(cupgtr,CUPGTR)
+#define LAPACK_zupgtr LAPACK_GLOBAL(zupgtr,ZUPGTR)
+#define LAPACK_cupmtr LAPACK_GLOBAL(cupmtr,CUPMTR)
+#define LAPACK_zupmtr LAPACK_GLOBAL(zupmtr,ZUPMTR)
+#define LAPACK_ssbtrd LAPACK_GLOBAL(ssbtrd,SSBTRD)
+#define LAPACK_dsbtrd LAPACK_GLOBAL(dsbtrd,DSBTRD)
+#define LAPACK_chbtrd LAPACK_GLOBAL(chbtrd,CHBTRD)
+#define LAPACK_zhbtrd LAPACK_GLOBAL(zhbtrd,ZHBTRD)
+#define LAPACK_ssterf LAPACK_GLOBAL(ssterf,SSTERF)
+#define LAPACK_dsterf LAPACK_GLOBAL(dsterf,DSTERF)
+#define LAPACK_ssteqr LAPACK_GLOBAL(ssteqr,SSTEQR)
+#define LAPACK_dsteqr LAPACK_GLOBAL(dsteqr,DSTEQR)
+#define LAPACK_csteqr LAPACK_GLOBAL(csteqr,CSTEQR)
+#define LAPACK_zsteqr LAPACK_GLOBAL(zsteqr,ZSTEQR)
+#define LAPACK_sstemr LAPACK_GLOBAL(sstemr,SSTEMR)
+#define LAPACK_dstemr LAPACK_GLOBAL(dstemr,DSTEMR)
+#define LAPACK_cstemr LAPACK_GLOBAL(cstemr,CSTEMR)
+#define LAPACK_zstemr LAPACK_GLOBAL(zstemr,ZSTEMR)
+#define LAPACK_sstedc LAPACK_GLOBAL(sstedc,SSTEDC)
+#define LAPACK_dstedc LAPACK_GLOBAL(dstedc,DSTEDC)
+#define LAPACK_cstedc LAPACK_GLOBAL(cstedc,CSTEDC)
+#define LAPACK_zstedc LAPACK_GLOBAL(zstedc,ZSTEDC)
+#define LAPACK_sstegr LAPACK_GLOBAL(sstegr,SSTEGR)
+#define LAPACK_dstegr LAPACK_GLOBAL(dstegr,DSTEGR)
+#define LAPACK_cstegr LAPACK_GLOBAL(cstegr,CSTEGR)
+#define LAPACK_zstegr LAPACK_GLOBAL(zstegr,ZSTEGR)
+#define LAPACK_spteqr LAPACK_GLOBAL(spteqr,SPTEQR)
+#define LAPACK_dpteqr LAPACK_GLOBAL(dpteqr,DPTEQR)
+#define LAPACK_cpteqr LAPACK_GLOBAL(cpteqr,CPTEQR)
+#define LAPACK_zpteqr LAPACK_GLOBAL(zpteqr,ZPTEQR)
+#define LAPACK_sstebz LAPACK_GLOBAL(sstebz,SSTEBZ)
+#define LAPACK_dstebz LAPACK_GLOBAL(dstebz,DSTEBZ)
+#define LAPACK_sstein LAPACK_GLOBAL(sstein,SSTEIN)
+#define LAPACK_dstein LAPACK_GLOBAL(dstein,DSTEIN)
+#define LAPACK_cstein LAPACK_GLOBAL(cstein,CSTEIN)
+#define LAPACK_zstein LAPACK_GLOBAL(zstein,ZSTEIN)
+#define LAPACK_sdisna LAPACK_GLOBAL(sdisna,SDISNA)
+#define LAPACK_ddisna LAPACK_GLOBAL(ddisna,DDISNA)
+#define LAPACK_ssygst LAPACK_GLOBAL(ssygst,SSYGST)
+#define LAPACK_dsygst LAPACK_GLOBAL(dsygst,DSYGST)
+#define LAPACK_chegst LAPACK_GLOBAL(chegst,CHEGST)
+#define LAPACK_zhegst LAPACK_GLOBAL(zhegst,ZHEGST)
+#define LAPACK_sspgst LAPACK_GLOBAL(sspgst,SSPGST)
+#define LAPACK_dspgst LAPACK_GLOBAL(dspgst,DSPGST)
+#define LAPACK_chpgst LAPACK_GLOBAL(chpgst,CHPGST)
+#define LAPACK_zhpgst LAPACK_GLOBAL(zhpgst,ZHPGST)
+#define LAPACK_ssbgst LAPACK_GLOBAL(ssbgst,SSBGST)
+#define LAPACK_dsbgst LAPACK_GLOBAL(dsbgst,DSBGST)
+#define LAPACK_chbgst LAPACK_GLOBAL(chbgst,CHBGST)
+#define LAPACK_zhbgst LAPACK_GLOBAL(zhbgst,ZHBGST)
+#define LAPACK_spbstf LAPACK_GLOBAL(spbstf,SPBSTF)
+#define LAPACK_dpbstf LAPACK_GLOBAL(dpbstf,DPBSTF)
+#define LAPACK_cpbstf LAPACK_GLOBAL(cpbstf,CPBSTF)
+#define LAPACK_zpbstf LAPACK_GLOBAL(zpbstf,ZPBSTF)
+#define LAPACK_sgehrd LAPACK_GLOBAL(sgehrd,SGEHRD)
+#define LAPACK_dgehrd LAPACK_GLOBAL(dgehrd,DGEHRD)
+#define LAPACK_cgehrd LAPACK_GLOBAL(cgehrd,CGEHRD)
+#define LAPACK_zgehrd LAPACK_GLOBAL(zgehrd,ZGEHRD)
+#define LAPACK_sorghr LAPACK_GLOBAL(sorghr,SORGHR)
+#define LAPACK_dorghr LAPACK_GLOBAL(dorghr,DORGHR)
+#define LAPACK_sormhr LAPACK_GLOBAL(sormhr,SORMHR)
+#define LAPACK_dormhr LAPACK_GLOBAL(dormhr,DORMHR)
+#define LAPACK_cunghr LAPACK_GLOBAL(cunghr,CUNGHR)
+#define LAPACK_zunghr LAPACK_GLOBAL(zunghr,ZUNGHR)
+#define LAPACK_cunmhr LAPACK_GLOBAL(cunmhr,CUNMHR)
+#define LAPACK_zunmhr LAPACK_GLOBAL(zunmhr,ZUNMHR)
+#define LAPACK_sgebal LAPACK_GLOBAL(sgebal,SGEBAL)
+#define LAPACK_dgebal LAPACK_GLOBAL(dgebal,DGEBAL)
+#define LAPACK_cgebal LAPACK_GLOBAL(cgebal,CGEBAL)
+#define LAPACK_zgebal LAPACK_GLOBAL(zgebal,ZGEBAL)
+#define LAPACK_sgebak LAPACK_GLOBAL(sgebak,SGEBAK)
+#define LAPACK_dgebak LAPACK_GLOBAL(dgebak,DGEBAK)
+#define LAPACK_cgebak LAPACK_GLOBAL(cgebak,CGEBAK)
+#define LAPACK_zgebak LAPACK_GLOBAL(zgebak,ZGEBAK)
+#define LAPACK_shseqr LAPACK_GLOBAL(shseqr,SHSEQR)
+#define LAPACK_dhseqr LAPACK_GLOBAL(dhseqr,DHSEQR)
+#define LAPACK_chseqr LAPACK_GLOBAL(chseqr,CHSEQR)
+#define LAPACK_zhseqr LAPACK_GLOBAL(zhseqr,ZHSEQR)
+#define LAPACK_shsein LAPACK_GLOBAL(shsein,SHSEIN)
+#define LAPACK_dhsein LAPACK_GLOBAL(dhsein,DHSEIN)
+#define LAPACK_chsein LAPACK_GLOBAL(chsein,CHSEIN)
+#define LAPACK_zhsein LAPACK_GLOBAL(zhsein,ZHSEIN)
+#define LAPACK_strevc LAPACK_GLOBAL(strevc,STREVC)
+#define LAPACK_dtrevc LAPACK_GLOBAL(dtrevc,DTREVC)
+#define LAPACK_ctrevc LAPACK_GLOBAL(ctrevc,CTREVC)
+#define LAPACK_ztrevc LAPACK_GLOBAL(ztrevc,ZTREVC)
+#define LAPACK_strsna LAPACK_GLOBAL(strsna,STRSNA)
+#define LAPACK_dtrsna LAPACK_GLOBAL(dtrsna,DTRSNA)
+#define LAPACK_ctrsna LAPACK_GLOBAL(ctrsna,CTRSNA)
+#define LAPACK_ztrsna LAPACK_GLOBAL(ztrsna,ZTRSNA)
+#define LAPACK_strexc LAPACK_GLOBAL(strexc,STREXC)
+#define LAPACK_dtrexc LAPACK_GLOBAL(dtrexc,DTREXC)
+#define LAPACK_ctrexc LAPACK_GLOBAL(ctrexc,CTREXC)
+#define LAPACK_ztrexc LAPACK_GLOBAL(ztrexc,ZTREXC)
+#define LAPACK_strsen LAPACK_GLOBAL(strsen,STRSEN)
+#define LAPACK_dtrsen LAPACK_GLOBAL(dtrsen,DTRSEN)
+#define LAPACK_ctrsen LAPACK_GLOBAL(ctrsen,CTRSEN)
+#define LAPACK_ztrsen LAPACK_GLOBAL(ztrsen,ZTRSEN)
+#define LAPACK_strsyl LAPACK_GLOBAL(strsyl,STRSYL)
+#define LAPACK_dtrsyl LAPACK_GLOBAL(dtrsyl,DTRSYL)
+#define LAPACK_ctrsyl LAPACK_GLOBAL(ctrsyl,CTRSYL)
+#define LAPACK_ztrsyl LAPACK_GLOBAL(ztrsyl,ZTRSYL)
+#define LAPACK_sgghrd LAPACK_GLOBAL(sgghrd,SGGHRD)
+#define LAPACK_dgghrd LAPACK_GLOBAL(dgghrd,DGGHRD)
+#define LAPACK_cgghrd LAPACK_GLOBAL(cgghrd,CGGHRD)
+#define LAPACK_zgghrd LAPACK_GLOBAL(zgghrd,ZGGHRD)
+#define LAPACK_sggbal LAPACK_GLOBAL(sggbal,SGGBAL)
+#define LAPACK_dggbal LAPACK_GLOBAL(dggbal,DGGBAL)
+#define LAPACK_cggbal LAPACK_GLOBAL(cggbal,CGGBAL)
+#define LAPACK_zggbal LAPACK_GLOBAL(zggbal,ZGGBAL)
+#define LAPACK_sggbak LAPACK_GLOBAL(sggbak,SGGBAK)
+#define LAPACK_dggbak LAPACK_GLOBAL(dggbak,DGGBAK)
+#define LAPACK_cggbak LAPACK_GLOBAL(cggbak,CGGBAK)
+#define LAPACK_zggbak LAPACK_GLOBAL(zggbak,ZGGBAK)
+#define LAPACK_shgeqz LAPACK_GLOBAL(shgeqz,SHGEQZ)
+#define LAPACK_dhgeqz LAPACK_GLOBAL(dhgeqz,DHGEQZ)
+#define LAPACK_chgeqz LAPACK_GLOBAL(chgeqz,CHGEQZ)
+#define LAPACK_zhgeqz LAPACK_GLOBAL(zhgeqz,ZHGEQZ)
+#define LAPACK_stgevc LAPACK_GLOBAL(stgevc,STGEVC)
+#define LAPACK_dtgevc LAPACK_GLOBAL(dtgevc,DTGEVC)
+#define LAPACK_ctgevc LAPACK_GLOBAL(ctgevc,CTGEVC)
+#define LAPACK_ztgevc LAPACK_GLOBAL(ztgevc,ZTGEVC)
+#define LAPACK_stgexc LAPACK_GLOBAL(stgexc,STGEXC)
+#define LAPACK_dtgexc LAPACK_GLOBAL(dtgexc,DTGEXC)
+#define LAPACK_ctgexc LAPACK_GLOBAL(ctgexc,CTGEXC)
+#define LAPACK_ztgexc LAPACK_GLOBAL(ztgexc,ZTGEXC)
+#define LAPACK_stgsen LAPACK_GLOBAL(stgsen,STGSEN)
+#define LAPACK_dtgsen LAPACK_GLOBAL(dtgsen,DTGSEN)
+#define LAPACK_ctgsen LAPACK_GLOBAL(ctgsen,CTGSEN)
+#define LAPACK_ztgsen LAPACK_GLOBAL(ztgsen,ZTGSEN)
+#define LAPACK_stgsyl LAPACK_GLOBAL(stgsyl,STGSYL)
+#define LAPACK_dtgsyl LAPACK_GLOBAL(dtgsyl,DTGSYL)
+#define LAPACK_ctgsyl LAPACK_GLOBAL(ctgsyl,CTGSYL)
+#define LAPACK_ztgsyl LAPACK_GLOBAL(ztgsyl,ZTGSYL)
+#define LAPACK_stgsna LAPACK_GLOBAL(stgsna,STGSNA)
+#define LAPACK_dtgsna LAPACK_GLOBAL(dtgsna,DTGSNA)
+#define LAPACK_ctgsna LAPACK_GLOBAL(ctgsna,CTGSNA)
+#define LAPACK_ztgsna LAPACK_GLOBAL(ztgsna,ZTGSNA)
+#define LAPACK_sggsvp LAPACK_GLOBAL(sggsvp,SGGSVP)
+#define LAPACK_dggsvp LAPACK_GLOBAL(dggsvp,DGGSVP)
+#define LAPACK_cggsvp LAPACK_GLOBAL(cggsvp,CGGSVP)
+#define LAPACK_zggsvp LAPACK_GLOBAL(zggsvp,ZGGSVP)
+#define LAPACK_stgsja LAPACK_GLOBAL(stgsja,STGSJA)
+#define LAPACK_dtgsja LAPACK_GLOBAL(dtgsja,DTGSJA)
+#define LAPACK_ctgsja LAPACK_GLOBAL(ctgsja,CTGSJA)
+#define LAPACK_ztgsja LAPACK_GLOBAL(ztgsja,ZTGSJA)
+#define LAPACK_sgels LAPACK_GLOBAL(sgels,SGELS)
+#define LAPACK_dgels LAPACK_GLOBAL(dgels,DGELS)
+#define LAPACK_cgels LAPACK_GLOBAL(cgels,CGELS)
+#define LAPACK_zgels LAPACK_GLOBAL(zgels,ZGELS)
+#define LAPACK_sgelsy LAPACK_GLOBAL(sgelsy,SGELSY)
+#define LAPACK_dgelsy LAPACK_GLOBAL(dgelsy,DGELSY)
+#define LAPACK_cgelsy LAPACK_GLOBAL(cgelsy,CGELSY)
+#define LAPACK_zgelsy LAPACK_GLOBAL(zgelsy,ZGELSY)
+#define LAPACK_sgelss LAPACK_GLOBAL(sgelss,SGELSS)
+#define LAPACK_dgelss LAPACK_GLOBAL(dgelss,DGELSS)
+#define LAPACK_cgelss LAPACK_GLOBAL(cgelss,CGELSS)
+#define LAPACK_zgelss LAPACK_GLOBAL(zgelss,ZGELSS)
+#define LAPACK_sgelsd LAPACK_GLOBAL(sgelsd,SGELSD)
+#define LAPACK_dgelsd LAPACK_GLOBAL(dgelsd,DGELSD)
+#define LAPACK_cgelsd LAPACK_GLOBAL(cgelsd,CGELSD)
+#define LAPACK_zgelsd LAPACK_GLOBAL(zgelsd,ZGELSD)
+#define LAPACK_sgglse LAPACK_GLOBAL(sgglse,SGGLSE)
+#define LAPACK_dgglse LAPACK_GLOBAL(dgglse,DGGLSE)
+#define LAPACK_cgglse LAPACK_GLOBAL(cgglse,CGGLSE)
+#define LAPACK_zgglse LAPACK_GLOBAL(zgglse,ZGGLSE)
+#define LAPACK_sggglm LAPACK_GLOBAL(sggglm,SGGGLM)
+#define LAPACK_dggglm LAPACK_GLOBAL(dggglm,DGGGLM)
+#define LAPACK_cggglm LAPACK_GLOBAL(cggglm,CGGGLM)
+#define LAPACK_zggglm LAPACK_GLOBAL(zggglm,ZGGGLM)
+#define LAPACK_ssyev LAPACK_GLOBAL(ssyev,SSYEV)
+#define LAPACK_dsyev LAPACK_GLOBAL(dsyev,DSYEV)
+#define LAPACK_cheev LAPACK_GLOBAL(cheev,CHEEV)
+#define LAPACK_zheev LAPACK_GLOBAL(zheev,ZHEEV)
+#define LAPACK_ssyevd LAPACK_GLOBAL(ssyevd,SSYEVD)
+#define LAPACK_dsyevd LAPACK_GLOBAL(dsyevd,DSYEVD)
+#define LAPACK_cheevd LAPACK_GLOBAL(cheevd,CHEEVD)
+#define LAPACK_zheevd LAPACK_GLOBAL(zheevd,ZHEEVD)
+#define LAPACK_ssyevx LAPACK_GLOBAL(ssyevx,SSYEVX)
+#define LAPACK_dsyevx LAPACK_GLOBAL(dsyevx,DSYEVX)
+#define LAPACK_cheevx LAPACK_GLOBAL(cheevx,CHEEVX)
+#define LAPACK_zheevx LAPACK_GLOBAL(zheevx,ZHEEVX)
+#define LAPACK_ssyevr LAPACK_GLOBAL(ssyevr,SSYEVR)
+#define LAPACK_dsyevr LAPACK_GLOBAL(dsyevr,DSYEVR)
+#define LAPACK_cheevr LAPACK_GLOBAL(cheevr,CHEEVR)
+#define LAPACK_zheevr LAPACK_GLOBAL(zheevr,ZHEEVR)
+#define LAPACK_sspev LAPACK_GLOBAL(sspev,SSPEV)
+#define LAPACK_dspev LAPACK_GLOBAL(dspev,DSPEV)
+#define LAPACK_chpev LAPACK_GLOBAL(chpev,CHPEV)
+#define LAPACK_zhpev LAPACK_GLOBAL(zhpev,ZHPEV)
+#define LAPACK_sspevd LAPACK_GLOBAL(sspevd,SSPEVD)
+#define LAPACK_dspevd LAPACK_GLOBAL(dspevd,DSPEVD)
+#define LAPACK_chpevd LAPACK_GLOBAL(chpevd,CHPEVD)
+#define LAPACK_zhpevd LAPACK_GLOBAL(zhpevd,ZHPEVD)
+#define LAPACK_sspevx LAPACK_GLOBAL(sspevx,SSPEVX)
+#define LAPACK_dspevx LAPACK_GLOBAL(dspevx,DSPEVX)
+#define LAPACK_chpevx LAPACK_GLOBAL(chpevx,CHPEVX)
+#define LAPACK_zhpevx LAPACK_GLOBAL(zhpevx,ZHPEVX)
+#define LAPACK_ssbev LAPACK_GLOBAL(ssbev,SSBEV)
+#define LAPACK_dsbev LAPACK_GLOBAL(dsbev,DSBEV)
+#define LAPACK_chbev LAPACK_GLOBAL(chbev,CHBEV)
+#define LAPACK_zhbev LAPACK_GLOBAL(zhbev,ZHBEV)
+#define LAPACK_ssbevd LAPACK_GLOBAL(ssbevd,SSBEVD)
+#define LAPACK_dsbevd LAPACK_GLOBAL(dsbevd,DSBEVD)
+#define LAPACK_chbevd LAPACK_GLOBAL(chbevd,CHBEVD)
+#define LAPACK_zhbevd LAPACK_GLOBAL(zhbevd,ZHBEVD)
+#define LAPACK_ssbevx LAPACK_GLOBAL(ssbevx,SSBEVX)
+#define LAPACK_dsbevx LAPACK_GLOBAL(dsbevx,DSBEVX)
+#define LAPACK_chbevx LAPACK_GLOBAL(chbevx,CHBEVX)
+#define LAPACK_zhbevx LAPACK_GLOBAL(zhbevx,ZHBEVX)
+#define LAPACK_sstev LAPACK_GLOBAL(sstev,SSTEV)
+#define LAPACK_dstev LAPACK_GLOBAL(dstev,DSTEV)
+#define LAPACK_sstevd LAPACK_GLOBAL(sstevd,SSTEVD)
+#define LAPACK_dstevd LAPACK_GLOBAL(dstevd,DSTEVD)
+#define LAPACK_sstevx LAPACK_GLOBAL(sstevx,SSTEVX)
+#define LAPACK_dstevx LAPACK_GLOBAL(dstevx,DSTEVX)
+#define LAPACK_sstevr LAPACK_GLOBAL(sstevr,SSTEVR)
+#define LAPACK_dstevr LAPACK_GLOBAL(dstevr,DSTEVR)
+#define LAPACK_sgees LAPACK_GLOBAL(sgees,SGEES)
+#define LAPACK_dgees LAPACK_GLOBAL(dgees,DGEES)
+#define LAPACK_cgees LAPACK_GLOBAL(cgees,CGEES)
+#define LAPACK_zgees LAPACK_GLOBAL(zgees,ZGEES)
+#define LAPACK_sgeesx LAPACK_GLOBAL(sgeesx,SGEESX)
+#define LAPACK_dgeesx LAPACK_GLOBAL(dgeesx,DGEESX)
+#define LAPACK_cgeesx LAPACK_GLOBAL(cgeesx,CGEESX)
+#define LAPACK_zgeesx LAPACK_GLOBAL(zgeesx,ZGEESX)
+#define LAPACK_sgeev LAPACK_GLOBAL(sgeev,SGEEV)
+#define LAPACK_dgeev LAPACK_GLOBAL(dgeev,DGEEV)
+#define LAPACK_cgeev LAPACK_GLOBAL(cgeev,CGEEV)
+#define LAPACK_zgeev LAPACK_GLOBAL(zgeev,ZGEEV)
+#define LAPACK_sgeevx LAPACK_GLOBAL(sgeevx,SGEEVX)
+#define LAPACK_dgeevx LAPACK_GLOBAL(dgeevx,DGEEVX)
+#define LAPACK_cgeevx LAPACK_GLOBAL(cgeevx,CGEEVX)
+#define LAPACK_zgeevx LAPACK_GLOBAL(zgeevx,ZGEEVX)
+#define LAPACK_sgesvd LAPACK_GLOBAL(sgesvd,SGESVD)
+#define LAPACK_dgesvd LAPACK_GLOBAL(dgesvd,DGESVD)
+#define LAPACK_cgesvd LAPACK_GLOBAL(cgesvd,CGESVD)
+#define LAPACK_zgesvd LAPACK_GLOBAL(zgesvd,ZGESVD)
+#define LAPACK_sgesdd LAPACK_GLOBAL(sgesdd,SGESDD)
+#define LAPACK_dgesdd LAPACK_GLOBAL(dgesdd,DGESDD)
+#define LAPACK_cgesdd LAPACK_GLOBAL(cgesdd,CGESDD)
+#define LAPACK_zgesdd LAPACK_GLOBAL(zgesdd,ZGESDD)
+#define LAPACK_dgejsv LAPACK_GLOBAL(dgejsv,DGEJSV)
+#define LAPACK_sgejsv LAPACK_GLOBAL(sgejsv,SGEJSV)
+#define LAPACK_dgesvj LAPACK_GLOBAL(dgesvj,DGESVJ)
+#define LAPACK_sgesvj LAPACK_GLOBAL(sgesvj,SGESVJ)
+#define LAPACK_sggsvd LAPACK_GLOBAL(sggsvd,SGGSVD)
+#define LAPACK_dggsvd LAPACK_GLOBAL(dggsvd,DGGSVD)
+#define LAPACK_cggsvd LAPACK_GLOBAL(cggsvd,CGGSVD)
+#define LAPACK_zggsvd LAPACK_GLOBAL(zggsvd,ZGGSVD)
+#define LAPACK_ssygv LAPACK_GLOBAL(ssygv,SSYGV)
+#define LAPACK_dsygv LAPACK_GLOBAL(dsygv,DSYGV)
+#define LAPACK_chegv LAPACK_GLOBAL(chegv,CHEGV)
+#define LAPACK_zhegv LAPACK_GLOBAL(zhegv,ZHEGV)
+#define LAPACK_ssygvd LAPACK_GLOBAL(ssygvd,SSYGVD)
+#define LAPACK_dsygvd LAPACK_GLOBAL(dsygvd,DSYGVD)
+#define LAPACK_chegvd LAPACK_GLOBAL(chegvd,CHEGVD)
+#define LAPACK_zhegvd LAPACK_GLOBAL(zhegvd,ZHEGVD)
+#define LAPACK_ssygvx LAPACK_GLOBAL(ssygvx,SSYGVX)
+#define LAPACK_dsygvx LAPACK_GLOBAL(dsygvx,DSYGVX)
+#define LAPACK_chegvx LAPACK_GLOBAL(chegvx,CHEGVX)
+#define LAPACK_zhegvx LAPACK_GLOBAL(zhegvx,ZHEGVX)
+#define LAPACK_sspgv LAPACK_GLOBAL(sspgv,SSPGV)
+#define LAPACK_dspgv LAPACK_GLOBAL(dspgv,DSPGV)
+#define LAPACK_chpgv LAPACK_GLOBAL(chpgv,CHPGV)
+#define LAPACK_zhpgv LAPACK_GLOBAL(zhpgv,ZHPGV)
+#define LAPACK_sspgvd LAPACK_GLOBAL(sspgvd,SSPGVD)
+#define LAPACK_dspgvd LAPACK_GLOBAL(dspgvd,DSPGVD)
+#define LAPACK_chpgvd LAPACK_GLOBAL(chpgvd,CHPGVD)
+#define LAPACK_zhpgvd LAPACK_GLOBAL(zhpgvd,ZHPGVD)
+#define LAPACK_sspgvx LAPACK_GLOBAL(sspgvx,SSPGVX)
+#define LAPACK_dspgvx LAPACK_GLOBAL(dspgvx,DSPGVX)
+#define LAPACK_chpgvx LAPACK_GLOBAL(chpgvx,CHPGVX)
+#define LAPACK_zhpgvx LAPACK_GLOBAL(zhpgvx,ZHPGVX)
+#define LAPACK_ssbgv LAPACK_GLOBAL(ssbgv,SSBGV)
+#define LAPACK_dsbgv LAPACK_GLOBAL(dsbgv,DSBGV)
+#define LAPACK_chbgv LAPACK_GLOBAL(chbgv,CHBGV)
+#define LAPACK_zhbgv LAPACK_GLOBAL(zhbgv,ZHBGV)
+#define LAPACK_ssbgvd LAPACK_GLOBAL(ssbgvd,SSBGVD)
+#define LAPACK_dsbgvd LAPACK_GLOBAL(dsbgvd,DSBGVD)
+#define LAPACK_chbgvd LAPACK_GLOBAL(chbgvd,CHBGVD)
+#define LAPACK_zhbgvd LAPACK_GLOBAL(zhbgvd,ZHBGVD)
+#define LAPACK_ssbgvx LAPACK_GLOBAL(ssbgvx,SSBGVX)
+#define LAPACK_dsbgvx LAPACK_GLOBAL(dsbgvx,DSBGVX)
+#define LAPACK_chbgvx LAPACK_GLOBAL(chbgvx,CHBGVX)
+#define LAPACK_zhbgvx LAPACK_GLOBAL(zhbgvx,ZHBGVX)
+#define LAPACK_sgges LAPACK_GLOBAL(sgges,SGGES)
+#define LAPACK_dgges LAPACK_GLOBAL(dgges,DGGES)
+#define LAPACK_cgges LAPACK_GLOBAL(cgges,CGGES)
+#define LAPACK_zgges LAPACK_GLOBAL(zgges,ZGGES)
+#define LAPACK_sggesx LAPACK_GLOBAL(sggesx,SGGESX)
+#define LAPACK_dggesx LAPACK_GLOBAL(dggesx,DGGESX)
+#define LAPACK_cggesx LAPACK_GLOBAL(cggesx,CGGESX)
+#define LAPACK_zggesx LAPACK_GLOBAL(zggesx,ZGGESX)
+#define LAPACK_sggev LAPACK_GLOBAL(sggev,SGGEV)
+#define LAPACK_dggev LAPACK_GLOBAL(dggev,DGGEV)
+#define LAPACK_cggev LAPACK_GLOBAL(cggev,CGGEV)
+#define LAPACK_zggev LAPACK_GLOBAL(zggev,ZGGEV)
+#define LAPACK_sggevx LAPACK_GLOBAL(sggevx,SGGEVX)
+#define LAPACK_dggevx LAPACK_GLOBAL(dggevx,DGGEVX)
+#define LAPACK_cggevx LAPACK_GLOBAL(cggevx,CGGEVX)
+#define LAPACK_zggevx LAPACK_GLOBAL(zggevx,ZGGEVX)
+#define LAPACK_dsfrk LAPACK_GLOBAL(dsfrk,DSFRK)
+#define LAPACK_ssfrk LAPACK_GLOBAL(ssfrk,SSFRK)
+#define LAPACK_zhfrk LAPACK_GLOBAL(zhfrk,ZHFRK)
+#define LAPACK_chfrk LAPACK_GLOBAL(chfrk,CHFRK)
+#define LAPACK_dtfsm LAPACK_GLOBAL(dtfsm,DTFSM)
+#define LAPACK_stfsm LAPACK_GLOBAL(stfsm,STFSM)
+#define LAPACK_ztfsm LAPACK_GLOBAL(ztfsm,ZTFSM)
+#define LAPACK_ctfsm LAPACK_GLOBAL(ctfsm,CTFSM)
+#define LAPACK_dtfttp LAPACK_GLOBAL(dtfttp,DTFTTP)
+#define LAPACK_stfttp LAPACK_GLOBAL(stfttp,STFTTP)
+#define LAPACK_ztfttp LAPACK_GLOBAL(ztfttp,ZTFTTP)
+#define LAPACK_ctfttp LAPACK_GLOBAL(ctfttp,CTFTTP)
+#define LAPACK_dtfttr LAPACK_GLOBAL(dtfttr,DTFTTR)
+#define LAPACK_stfttr LAPACK_GLOBAL(stfttr,STFTTR)
+#define LAPACK_ztfttr LAPACK_GLOBAL(ztfttr,ZTFTTR)
+#define LAPACK_ctfttr LAPACK_GLOBAL(ctfttr,CTFTTR)
+#define LAPACK_dtpttf LAPACK_GLOBAL(dtpttf,DTPTTF)
+#define LAPACK_stpttf LAPACK_GLOBAL(stpttf,STPTTF)
+#define LAPACK_ztpttf LAPACK_GLOBAL(ztpttf,ZTPTTF)
+#define LAPACK_ctpttf LAPACK_GLOBAL(ctpttf,CTPTTF)
+#define LAPACK_dtpttr LAPACK_GLOBAL(dtpttr,DTPTTR)
+#define LAPACK_stpttr LAPACK_GLOBAL(stpttr,STPTTR)
+#define LAPACK_ztpttr LAPACK_GLOBAL(ztpttr,ZTPTTR)
+#define LAPACK_ctpttr LAPACK_GLOBAL(ctpttr,CTPTTR)
+#define LAPACK_dtrttf LAPACK_GLOBAL(dtrttf,DTRTTF)
+#define LAPACK_strttf LAPACK_GLOBAL(strttf,STRTTF)
+#define LAPACK_ztrttf LAPACK_GLOBAL(ztrttf,ZTRTTF)
+#define LAPACK_ctrttf LAPACK_GLOBAL(ctrttf,CTRTTF)
+#define LAPACK_dtrttp LAPACK_GLOBAL(dtrttp,DTRTTP)
+#define LAPACK_strttp LAPACK_GLOBAL(strttp,STRTTP)
+#define LAPACK_ztrttp LAPACK_GLOBAL(ztrttp,ZTRTTP)
+#define LAPACK_ctrttp LAPACK_GLOBAL(ctrttp,CTRTTP)
+#define LAPACK_sgeqrfp LAPACK_GLOBAL(sgeqrfp,SGEQRFP)
+#define LAPACK_dgeqrfp LAPACK_GLOBAL(dgeqrfp,DGEQRFP)
+#define LAPACK_cgeqrfp LAPACK_GLOBAL(cgeqrfp,CGEQRFP)
+#define LAPACK_zgeqrfp LAPACK_GLOBAL(zgeqrfp,ZGEQRFP)
+#define LAPACK_clacgv LAPACK_GLOBAL(clacgv,CLACGV)
+#define LAPACK_zlacgv LAPACK_GLOBAL(zlacgv,ZLACGV)
+#define LAPACK_slarnv LAPACK_GLOBAL(slarnv,SLARNV)
+#define LAPACK_dlarnv LAPACK_GLOBAL(dlarnv,DLARNV)
+#define LAPACK_clarnv LAPACK_GLOBAL(clarnv,CLARNV)
+#define LAPACK_zlarnv LAPACK_GLOBAL(zlarnv,ZLARNV)
+#define LAPACK_sgeqr2 LAPACK_GLOBAL(sgeqr2,SGEQR2)
+#define LAPACK_dgeqr2 LAPACK_GLOBAL(dgeqr2,DGEQR2)
+#define LAPACK_cgeqr2 LAPACK_GLOBAL(cgeqr2,CGEQR2)
+#define LAPACK_zgeqr2 LAPACK_GLOBAL(zgeqr2,ZGEQR2)
+#define LAPACK_slacpy LAPACK_GLOBAL(slacpy,SLACPY)
+#define LAPACK_dlacpy LAPACK_GLOBAL(dlacpy,DLACPY)
+#define LAPACK_clacpy LAPACK_GLOBAL(clacpy,CLACPY)
+#define LAPACK_zlacpy LAPACK_GLOBAL(zlacpy,ZLACPY)
+#define LAPACK_sgetf2 LAPACK_GLOBAL(sgetf2,SGETF2)
+#define LAPACK_dgetf2 LAPACK_GLOBAL(dgetf2,DGETF2)
+#define LAPACK_cgetf2 LAPACK_GLOBAL(cgetf2,CGETF2)
+#define LAPACK_zgetf2 LAPACK_GLOBAL(zgetf2,ZGETF2)
+#define LAPACK_slaswp LAPACK_GLOBAL(slaswp,SLASWP)
+#define LAPACK_dlaswp LAPACK_GLOBAL(dlaswp,DLASWP)
+#define LAPACK_claswp LAPACK_GLOBAL(claswp,CLASWP)
+#define LAPACK_zlaswp LAPACK_GLOBAL(zlaswp,ZLASWP)
+#define LAPACK_slange LAPACK_GLOBAL(slange,SLANGE)
+#define LAPACK_dlange LAPACK_GLOBAL(dlange,DLANGE)
+#define LAPACK_clange LAPACK_GLOBAL(clange,CLANGE)
+#define LAPACK_zlange LAPACK_GLOBAL(zlange,ZLANGE)
+#define LAPACK_clanhe LAPACK_GLOBAL(clanhe,CLANHE)
+#define LAPACK_zlanhe LAPACK_GLOBAL(zlanhe,ZLANHE)
+#define LAPACK_slansy LAPACK_GLOBAL(slansy,SLANSY)
+#define LAPACK_dlansy LAPACK_GLOBAL(dlansy,DLANSY)
+#define LAPACK_clansy LAPACK_GLOBAL(clansy,CLANSY)
+#define LAPACK_zlansy LAPACK_GLOBAL(zlansy,ZLANSY)
+#define LAPACK_slantr LAPACK_GLOBAL(slantr,SLANTR)
+#define LAPACK_dlantr LAPACK_GLOBAL(dlantr,DLANTR)
+#define LAPACK_clantr LAPACK_GLOBAL(clantr,CLANTR)
+#define LAPACK_zlantr LAPACK_GLOBAL(zlantr,ZLANTR)
+#define LAPACK_slamch LAPACK_GLOBAL(slamch,SLAMCH)
+#define LAPACK_dlamch LAPACK_GLOBAL(dlamch,DLAMCH)
+#define LAPACK_sgelq2 LAPACK_GLOBAL(sgelq2,SGELQ2)
+#define LAPACK_dgelq2 LAPACK_GLOBAL(dgelq2,DGELQ2)
+#define LAPACK_cgelq2 LAPACK_GLOBAL(cgelq2,CGELQ2)
+#define LAPACK_zgelq2 LAPACK_GLOBAL(zgelq2,ZGELQ2)
+#define LAPACK_slarfb LAPACK_GLOBAL(slarfb,SLARFB)
+#define LAPACK_dlarfb LAPACK_GLOBAL(dlarfb,DLARFB)
+#define LAPACK_clarfb LAPACK_GLOBAL(clarfb,CLARFB)
+#define LAPACK_zlarfb LAPACK_GLOBAL(zlarfb,ZLARFB)
+#define LAPACK_slarfg LAPACK_GLOBAL(slarfg,SLARFG)
+#define LAPACK_dlarfg LAPACK_GLOBAL(dlarfg,DLARFG)
+#define LAPACK_clarfg LAPACK_GLOBAL(clarfg,CLARFG)
+#define LAPACK_zlarfg LAPACK_GLOBAL(zlarfg,ZLARFG)
+#define LAPACK_slarft LAPACK_GLOBAL(slarft,SLARFT)
+#define LAPACK_dlarft LAPACK_GLOBAL(dlarft,DLARFT)
+#define LAPACK_clarft LAPACK_GLOBAL(clarft,CLARFT)
+#define LAPACK_zlarft LAPACK_GLOBAL(zlarft,ZLARFT)
+#define LAPACK_slarfx LAPACK_GLOBAL(slarfx,SLARFX)
+#define LAPACK_dlarfx LAPACK_GLOBAL(dlarfx,DLARFX)
+#define LAPACK_clarfx LAPACK_GLOBAL(clarfx,CLARFX)
+#define LAPACK_zlarfx LAPACK_GLOBAL(zlarfx,ZLARFX)
+#define LAPACK_slatms LAPACK_GLOBAL(slatms,SLATMS)
+#define LAPACK_dlatms LAPACK_GLOBAL(dlatms,DLATMS)
+#define LAPACK_clatms LAPACK_GLOBAL(clatms,CLATMS)
+#define LAPACK_zlatms LAPACK_GLOBAL(zlatms,ZLATMS)
+#define LAPACK_slag2d LAPACK_GLOBAL(slag2d,SLAG2D)
+#define LAPACK_dlag2s LAPACK_GLOBAL(dlag2s,DLAG2S)
+#define LAPACK_clag2z LAPACK_GLOBAL(clag2z,CLAG2Z)
+#define LAPACK_zlag2c LAPACK_GLOBAL(zlag2c,ZLAG2C)
+#define LAPACK_slauum LAPACK_GLOBAL(slauum,SLAUUM)
+#define LAPACK_dlauum LAPACK_GLOBAL(dlauum,DLAUUM)
+#define LAPACK_clauum LAPACK_GLOBAL(clauum,CLAUUM)
+#define LAPACK_zlauum LAPACK_GLOBAL(zlauum,ZLAUUM)
+#define LAPACK_slagge LAPACK_GLOBAL(slagge,SLAGGE)
+#define LAPACK_dlagge LAPACK_GLOBAL(dlagge,DLAGGE)
+#define LAPACK_clagge LAPACK_GLOBAL(clagge,CLAGGE)
+#define LAPACK_zlagge LAPACK_GLOBAL(zlagge,ZLAGGE)
+#define LAPACK_slaset LAPACK_GLOBAL(slaset,SLASET)
+#define LAPACK_dlaset LAPACK_GLOBAL(dlaset,DLASET)
+#define LAPACK_claset LAPACK_GLOBAL(claset,CLASET)
+#define LAPACK_zlaset LAPACK_GLOBAL(zlaset,ZLASET)
+#define LAPACK_slasrt LAPACK_GLOBAL(slasrt,SLASRT)
+#define LAPACK_dlasrt LAPACK_GLOBAL(dlasrt,DLASRT)
+#define LAPACK_slagsy LAPACK_GLOBAL(slagsy,SLAGSY)
+#define LAPACK_dlagsy LAPACK_GLOBAL(dlagsy,DLAGSY)
+#define LAPACK_clagsy LAPACK_GLOBAL(clagsy,CLAGSY)
+#define LAPACK_zlagsy LAPACK_GLOBAL(zlagsy,ZLAGSY)
+#define LAPACK_claghe LAPACK_GLOBAL(claghe,CLAGHE)
+#define LAPACK_zlaghe LAPACK_GLOBAL(zlaghe,ZLAGHE)
+#define LAPACK_slapmr LAPACK_GLOBAL(slapmr,SLAPMR)
+#define LAPACK_dlapmr LAPACK_GLOBAL(dlapmr,DLAPMR)
+#define LAPACK_clapmr LAPACK_GLOBAL(clapmr,CLAPMR)
+#define LAPACK_zlapmr LAPACK_GLOBAL(zlapmr,ZLAPMR)
+#define LAPACK_slapy2 LAPACK_GLOBAL(slapy2,SLAPY2)
+#define LAPACK_dlapy2 LAPACK_GLOBAL(dlapy2,DLAPY2)
+#define LAPACK_slapy3 LAPACK_GLOBAL(slapy3,SLAPY3)
+#define LAPACK_dlapy3 LAPACK_GLOBAL(dlapy3,DLAPY3)
+#define LAPACK_slartgp LAPACK_GLOBAL(slartgp,SLARTGP)
+#define LAPACK_dlartgp LAPACK_GLOBAL(dlartgp,DLARTGP)
+#define LAPACK_slartgs LAPACK_GLOBAL(slartgs,SLARTGS)
+#define LAPACK_dlartgs LAPACK_GLOBAL(dlartgs,DLARTGS)
+// LAPACK 3.3.0
+#define LAPACK_cbbcsd LAPACK_GLOBAL(cbbcsd,CBBCSD)
+#define LAPACK_cheswapr LAPACK_GLOBAL(cheswapr,CHESWAPR)
+#define LAPACK_chetri2 LAPACK_GLOBAL(chetri2,CHETRI2)
+#define LAPACK_chetri2x LAPACK_GLOBAL(chetri2x,CHETRI2X)
+#define LAPACK_chetrs2 LAPACK_GLOBAL(chetrs2,CHETRS2)
+#define LAPACK_csyconv LAPACK_GLOBAL(csyconv,CSYCONV)
+#define LAPACK_csyswapr LAPACK_GLOBAL(csyswapr,CSYSWAPR)
+#define LAPACK_csytri2 LAPACK_GLOBAL(csytri2,CSYTRI2)
+#define LAPACK_csytri2x LAPACK_GLOBAL(csytri2x,CSYTRI2X)
+#define LAPACK_csytrs2 LAPACK_GLOBAL(csytrs2,CSYTRS2)
+#define LAPACK_cunbdb LAPACK_GLOBAL(cunbdb,CUNBDB)
+#define LAPACK_cuncsd LAPACK_GLOBAL(cuncsd,CUNCSD)
+#define LAPACK_dbbcsd LAPACK_GLOBAL(dbbcsd,DBBCSD)
+#define LAPACK_dorbdb LAPACK_GLOBAL(dorbdb,DORBDB)
+#define LAPACK_dorcsd LAPACK_GLOBAL(dorcsd,DORCSD)
+#define LAPACK_dsyconv LAPACK_GLOBAL(dsyconv,DSYCONV)
+#define LAPACK_dsyswapr LAPACK_GLOBAL(dsyswapr,DSYSWAPR)
+#define LAPACK_dsytri2 LAPACK_GLOBAL(dsytri2,DSYTRI2)
+#define LAPACK_dsytri2x LAPACK_GLOBAL(dsytri2x,DSYTRI2X)
+#define LAPACK_dsytrs2 LAPACK_GLOBAL(dsytrs2,DSYTRS2)
+#define LAPACK_sbbcsd LAPACK_GLOBAL(sbbcsd,SBBCSD)
+#define LAPACK_sorbdb LAPACK_GLOBAL(sorbdb,SORBDB)
+#define LAPACK_sorcsd LAPACK_GLOBAL(sorcsd,SORCSD)
+#define LAPACK_ssyconv LAPACK_GLOBAL(ssyconv,SSYCONV)
+#define LAPACK_ssyswapr LAPACK_GLOBAL(ssyswapr,SSYSWAPR)
+#define LAPACK_ssytri2 LAPACK_GLOBAL(ssytri2,SSYTRI2)
+#define LAPACK_ssytri2x LAPACK_GLOBAL(ssytri2x,SSYTRI2X)
+#define LAPACK_ssytrs2 LAPACK_GLOBAL(ssytrs2,SSYTRS2)
+#define LAPACK_zbbcsd LAPACK_GLOBAL(zbbcsd,ZBBCSD)
+#define LAPACK_zheswapr LAPACK_GLOBAL(zheswapr,ZHESWAPR)
+#define LAPACK_zhetri2 LAPACK_GLOBAL(zhetri2,ZHETRI2)
+#define LAPACK_zhetri2x LAPACK_GLOBAL(zhetri2x,ZHETRI2X)
+#define LAPACK_zhetrs2 LAPACK_GLOBAL(zhetrs2,ZHETRS2)
+#define LAPACK_zsyconv LAPACK_GLOBAL(zsyconv,ZSYCONV)
+#define LAPACK_zsyswapr LAPACK_GLOBAL(zsyswapr,ZSYSWAPR)
+#define LAPACK_zsytri2 LAPACK_GLOBAL(zsytri2,ZSYTRI2)
+#define LAPACK_zsytri2x LAPACK_GLOBAL(zsytri2x,ZSYTRI2X)
+#define LAPACK_zsytrs2 LAPACK_GLOBAL(zsytrs2,ZSYTRS2)
+#define LAPACK_zunbdb LAPACK_GLOBAL(zunbdb,ZUNBDB)
+#define LAPACK_zuncsd LAPACK_GLOBAL(zuncsd,ZUNCSD)
+// LAPACK 3.4.0
+#define LAPACK_sgemqrt LAPACK_GLOBAL(sgemqrt,SGEMQRT)
+#define LAPACK_dgemqrt LAPACK_GLOBAL(dgemqrt,DGEMQRT)
+#define LAPACK_cgemqrt LAPACK_GLOBAL(cgemqrt,CGEMQRT)
+#define LAPACK_zgemqrt LAPACK_GLOBAL(zgemqrt,ZGEMQRT)
+#define LAPACK_sgeqrt LAPACK_GLOBAL(sgeqrt,SGEQRT)
+#define LAPACK_dgeqrt LAPACK_GLOBAL(dgeqrt,DGEQRT)
+#define LAPACK_cgeqrt LAPACK_GLOBAL(cgeqrt,CGEQRT)
+#define LAPACK_zgeqrt LAPACK_GLOBAL(zgeqrt,ZGEQRT)
+#define LAPACK_sgeqrt2 LAPACK_GLOBAL(sgeqrt2,SGEQRT2)
+#define LAPACK_dgeqrt2 LAPACK_GLOBAL(dgeqrt2,DGEQRT2)
+#define LAPACK_cgeqrt2 LAPACK_GLOBAL(cgeqrt2,CGEQRT2)
+#define LAPACK_zgeqrt2 LAPACK_GLOBAL(zgeqrt2,ZGEQRT2)
+#define LAPACK_sgeqrt3 LAPACK_GLOBAL(sgeqrt3,SGEQRT3)
+#define LAPACK_dgeqrt3 LAPACK_GLOBAL(dgeqrt3,DGEQRT3)
+#define LAPACK_cgeqrt3 LAPACK_GLOBAL(cgeqrt3,CGEQRT3)
+#define LAPACK_zgeqrt3 LAPACK_GLOBAL(zgeqrt3,ZGEQRT3)
+#define LAPACK_stpmqrt LAPACK_GLOBAL(stpmqrt,STPMQRT)
+#define LAPACK_dtpmqrt LAPACK_GLOBAL(dtpmqrt,DTPMQRT)
+#define LAPACK_ctpmqrt LAPACK_GLOBAL(ctpmqrt,CTPMQRT)
+#define LAPACK_ztpmqrt LAPACK_GLOBAL(ztpmqrt,ZTPMQRT)
+#define LAPACK_dtpqrt LAPACK_GLOBAL(dtpqrt,DTPQRT)
+#define LAPACK_ctpqrt LAPACK_GLOBAL(ctpqrt,CTPQRT)
+#define LAPACK_ztpqrt LAPACK_GLOBAL(ztpqrt,ZTPQRT)
+#define LAPACK_stpqrt2 LAPACK_GLOBAL(stpqrt2,STPQRT2)
+#define LAPACK_dtpqrt2 LAPACK_GLOBAL(dtpqrt2,DTPQRT2)
+#define LAPACK_ctpqrt2 LAPACK_GLOBAL(ctpqrt2,CTPQRT2)
+#define LAPACK_ztpqrt2 LAPACK_GLOBAL(ztpqrt2,ZTPQRT2)
+#define LAPACK_stprfb LAPACK_GLOBAL(stprfb,STPRFB)
+#define LAPACK_dtprfb LAPACK_GLOBAL(dtprfb,DTPRFB)
+#define LAPACK_ctprfb LAPACK_GLOBAL(ctprfb,CTPRFB)
+#define LAPACK_ztprfb LAPACK_GLOBAL(ztprfb,ZTPRFB)
+// LAPACK 3.X.X
+#define LAPACK_csyr LAPACK_GLOBAL(csyr,CSYR)
+#define LAPACK_zsyr LAPACK_GLOBAL(zsyr,ZSYR)
+
+
+void LAPACK_sgetrf( lapack_int* m, lapack_int* n, float* a, lapack_int* lda,
+ lapack_int* ipiv, lapack_int *info );
+void LAPACK_dgetrf( lapack_int* m, lapack_int* n, double* a, lapack_int* lda,
+ lapack_int* ipiv, lapack_int *info );
+void LAPACK_cgetrf( lapack_int* m, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_int* ipiv, lapack_int *info );
+void LAPACK_zgetrf( lapack_int* m, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_int* ipiv, lapack_int *info );
+void LAPACK_sgbtrf( lapack_int* m, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, float* ab, lapack_int* ldab,
+ lapack_int* ipiv, lapack_int *info );
+void LAPACK_dgbtrf( lapack_int* m, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, double* ab, lapack_int* ldab,
+ lapack_int* ipiv, lapack_int *info );
+void LAPACK_cgbtrf( lapack_int* m, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, lapack_complex_float* ab, lapack_int* ldab,
+ lapack_int* ipiv, lapack_int *info );
+void LAPACK_zgbtrf( lapack_int* m, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, lapack_complex_double* ab, lapack_int* ldab,
+ lapack_int* ipiv, lapack_int *info );
+void LAPACK_sgttrf( lapack_int* n, float* dl, float* d, float* du, float* du2,
+ lapack_int* ipiv, lapack_int *info );
+void LAPACK_dgttrf( lapack_int* n, double* dl, double* d, double* du,
+ double* du2, lapack_int* ipiv, lapack_int *info );
+void LAPACK_cgttrf( lapack_int* n, lapack_complex_float* dl,
+ lapack_complex_float* d, lapack_complex_float* du,
+ lapack_complex_float* du2, lapack_int* ipiv,
+ lapack_int *info );
+void LAPACK_zgttrf( lapack_int* n, lapack_complex_double* dl,
+ lapack_complex_double* d, lapack_complex_double* du,
+ lapack_complex_double* du2, lapack_int* ipiv,
+ lapack_int *info );
+void LAPACK_spotrf( char* uplo, lapack_int* n, float* a, lapack_int* lda,
+ lapack_int *info );
+void LAPACK_dpotrf( char* uplo, lapack_int* n, double* a, lapack_int* lda,
+ lapack_int *info );
+void LAPACK_cpotrf( char* uplo, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_int *info );
+void LAPACK_zpotrf( char* uplo, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_int *info );
+void LAPACK_dpstrf( char* uplo, lapack_int* n, double* a, lapack_int* lda,
+ lapack_int* piv, lapack_int* rank, double* tol,
+ double* work, lapack_int *info );
+void LAPACK_spstrf( char* uplo, lapack_int* n, float* a, lapack_int* lda,
+ lapack_int* piv, lapack_int* rank, float* tol, float* work,
+ lapack_int *info );
+void LAPACK_zpstrf( char* uplo, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_int* piv, lapack_int* rank,
+ double* tol, double* work, lapack_int *info );
+void LAPACK_cpstrf( char* uplo, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_int* piv, lapack_int* rank,
+ float* tol, float* work, lapack_int *info );
+void LAPACK_dpftrf( char* transr, char* uplo, lapack_int* n, double* a,
+ lapack_int *info );
+void LAPACK_spftrf( char* transr, char* uplo, lapack_int* n, float* a,
+ lapack_int *info );
+void LAPACK_zpftrf( char* transr, char* uplo, lapack_int* n,
+ lapack_complex_double* a, lapack_int *info );
+void LAPACK_cpftrf( char* transr, char* uplo, lapack_int* n,
+ lapack_complex_float* a, lapack_int *info );
+void LAPACK_spptrf( char* uplo, lapack_int* n, float* ap, lapack_int *info );
+void LAPACK_dpptrf( char* uplo, lapack_int* n, double* ap, lapack_int *info );
+void LAPACK_cpptrf( char* uplo, lapack_int* n, lapack_complex_float* ap,
+ lapack_int *info );
+void LAPACK_zpptrf( char* uplo, lapack_int* n, lapack_complex_double* ap,
+ lapack_int *info );
+void LAPACK_spbtrf( char* uplo, lapack_int* n, lapack_int* kd, float* ab,
+ lapack_int* ldab, lapack_int *info );
+void LAPACK_dpbtrf( char* uplo, lapack_int* n, lapack_int* kd, double* ab,
+ lapack_int* ldab, lapack_int *info );
+void LAPACK_cpbtrf( char* uplo, lapack_int* n, lapack_int* kd,
+ lapack_complex_float* ab, lapack_int* ldab,
+ lapack_int *info );
+void LAPACK_zpbtrf( char* uplo, lapack_int* n, lapack_int* kd,
+ lapack_complex_double* ab, lapack_int* ldab,
+ lapack_int *info );
+void LAPACK_spttrf( lapack_int* n, float* d, float* e, lapack_int *info );
+void LAPACK_dpttrf( lapack_int* n, double* d, double* e, lapack_int *info );
+void LAPACK_cpttrf( lapack_int* n, float* d, lapack_complex_float* e,
+ lapack_int *info );
+void LAPACK_zpttrf( lapack_int* n, double* d, lapack_complex_double* e,
+ lapack_int *info );
+void LAPACK_ssytrf( char* uplo, lapack_int* n, float* a, lapack_int* lda,
+ lapack_int* ipiv, float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_dsytrf( char* uplo, lapack_int* n, double* a, lapack_int* lda,
+ lapack_int* ipiv, double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_csytrf( char* uplo, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_int* ipiv,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zsytrf( char* uplo, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_int* ipiv,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_chetrf( char* uplo, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_int* ipiv,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zhetrf( char* uplo, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_int* ipiv,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_ssptrf( char* uplo, lapack_int* n, float* ap, lapack_int* ipiv,
+ lapack_int *info );
+void LAPACK_dsptrf( char* uplo, lapack_int* n, double* ap, lapack_int* ipiv,
+ lapack_int *info );
+void LAPACK_csptrf( char* uplo, lapack_int* n, lapack_complex_float* ap,
+ lapack_int* ipiv, lapack_int *info );
+void LAPACK_zsptrf( char* uplo, lapack_int* n, lapack_complex_double* ap,
+ lapack_int* ipiv, lapack_int *info );
+void LAPACK_chptrf( char* uplo, lapack_int* n, lapack_complex_float* ap,
+ lapack_int* ipiv, lapack_int *info );
+void LAPACK_zhptrf( char* uplo, lapack_int* n, lapack_complex_double* ap,
+ lapack_int* ipiv, lapack_int *info );
+void LAPACK_sgetrs( char* trans, lapack_int* n, lapack_int* nrhs,
+ const float* a, lapack_int* lda, const lapack_int* ipiv,
+ float* b, lapack_int* ldb, lapack_int *info );
+void LAPACK_dgetrs( char* trans, lapack_int* n, lapack_int* nrhs,
+ const double* a, lapack_int* lda, const lapack_int* ipiv,
+ double* b, lapack_int* ldb, lapack_int *info );
+void LAPACK_cgetrs( char* trans, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* a, lapack_int* lda,
+ const lapack_int* ipiv, lapack_complex_float* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_zgetrs( char* trans, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* a, lapack_int* lda,
+ const lapack_int* ipiv, lapack_complex_double* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_sgbtrs( char* trans, lapack_int* n, lapack_int* kl, lapack_int* ku,
+ lapack_int* nrhs, const float* ab, lapack_int* ldab,
+ const lapack_int* ipiv, float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_dgbtrs( char* trans, lapack_int* n, lapack_int* kl, lapack_int* ku,
+ lapack_int* nrhs, const double* ab, lapack_int* ldab,
+ const lapack_int* ipiv, double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_cgbtrs( char* trans, lapack_int* n, lapack_int* kl, lapack_int* ku,
+ lapack_int* nrhs, const lapack_complex_float* ab,
+ lapack_int* ldab, const lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_zgbtrs( char* trans, lapack_int* n, lapack_int* kl, lapack_int* ku,
+ lapack_int* nrhs, const lapack_complex_double* ab,
+ lapack_int* ldab, const lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_sgttrs( char* trans, lapack_int* n, lapack_int* nrhs,
+ const float* dl, const float* d, const float* du,
+ const float* du2, const lapack_int* ipiv, float* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_dgttrs( char* trans, lapack_int* n, lapack_int* nrhs,
+ const double* dl, const double* d, const double* du,
+ const double* du2, const lapack_int* ipiv, double* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_cgttrs( char* trans, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* dl,
+ const lapack_complex_float* d,
+ const lapack_complex_float* du,
+ const lapack_complex_float* du2, const lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_zgttrs( char* trans, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* dl,
+ const lapack_complex_double* d,
+ const lapack_complex_double* du,
+ const lapack_complex_double* du2, const lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_spotrs( char* uplo, lapack_int* n, lapack_int* nrhs, const float* a,
+ lapack_int* lda, float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_dpotrs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const double* a, lapack_int* lda, double* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_cpotrs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_zpotrs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_dpftrs( char* transr, char* uplo, lapack_int* n, lapack_int* nrhs,
+ const double* a, double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_spftrs( char* transr, char* uplo, lapack_int* n, lapack_int* nrhs,
+ const float* a, float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_zpftrs( char* transr, char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* a, lapack_complex_double* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_cpftrs( char* transr, char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* a, lapack_complex_float* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_spptrs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const float* ap, float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_dpptrs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const double* ap, double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_cpptrs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* ap, lapack_complex_float* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_zpptrs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* ap, lapack_complex_double* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_spbtrs( char* uplo, lapack_int* n, lapack_int* kd, lapack_int* nrhs,
+ const float* ab, lapack_int* ldab, float* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_dpbtrs( char* uplo, lapack_int* n, lapack_int* kd, lapack_int* nrhs,
+ const double* ab, lapack_int* ldab, double* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_cpbtrs( char* uplo, lapack_int* n, lapack_int* kd, lapack_int* nrhs,
+ const lapack_complex_float* ab, lapack_int* ldab,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_zpbtrs( char* uplo, lapack_int* n, lapack_int* kd, lapack_int* nrhs,
+ const lapack_complex_double* ab, lapack_int* ldab,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_spttrs( lapack_int* n, lapack_int* nrhs, const float* d,
+ const float* e, float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_dpttrs( lapack_int* n, lapack_int* nrhs, const double* d,
+ const double* e, double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_cpttrs( char* uplo, lapack_int* n, lapack_int* nrhs, const float* d,
+ const lapack_complex_float* e, lapack_complex_float* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_zpttrs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const double* d, const lapack_complex_double* e,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_ssytrs( char* uplo, lapack_int* n, lapack_int* nrhs, const float* a,
+ lapack_int* lda, const lapack_int* ipiv, float* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_dsytrs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const double* a, lapack_int* lda, const lapack_int* ipiv,
+ double* b, lapack_int* ldb, lapack_int *info );
+void LAPACK_csytrs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* a, lapack_int* lda,
+ const lapack_int* ipiv, lapack_complex_float* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_zsytrs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* a, lapack_int* lda,
+ const lapack_int* ipiv, lapack_complex_double* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_chetrs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* a, lapack_int* lda,
+ const lapack_int* ipiv, lapack_complex_float* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_zhetrs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* a, lapack_int* lda,
+ const lapack_int* ipiv, lapack_complex_double* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_ssptrs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const float* ap, const lapack_int* ipiv, float* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_dsptrs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const double* ap, const lapack_int* ipiv, double* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_csptrs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* ap, const lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_zsptrs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* ap, const lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_chptrs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* ap, const lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_zhptrs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* ap, const lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_strtrs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* nrhs, const float* a, lapack_int* lda, float* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_dtrtrs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* nrhs, const double* a, lapack_int* lda,
+ double* b, lapack_int* ldb, lapack_int *info );
+void LAPACK_ctrtrs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* nrhs, const lapack_complex_float* a,
+ lapack_int* lda, lapack_complex_float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_ztrtrs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* nrhs, const lapack_complex_double* a,
+ lapack_int* lda, lapack_complex_double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_stptrs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* nrhs, const float* ap, float* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_dtptrs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* nrhs, const double* ap, double* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_ctptrs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* nrhs, const lapack_complex_float* ap,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_ztptrs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* nrhs, const lapack_complex_double* ap,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_stbtrs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* kd, lapack_int* nrhs, const float* ab,
+ lapack_int* ldab, float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_dtbtrs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* kd, lapack_int* nrhs, const double* ab,
+ lapack_int* ldab, double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_ctbtrs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* kd, lapack_int* nrhs,
+ const lapack_complex_float* ab, lapack_int* ldab,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_ztbtrs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* kd, lapack_int* nrhs,
+ const lapack_complex_double* ab, lapack_int* ldab,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_sgecon( char* norm, lapack_int* n, const float* a, lapack_int* lda,
+ float* anorm, float* rcond, float* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dgecon( char* norm, lapack_int* n, const double* a, lapack_int* lda,
+ double* anorm, double* rcond, double* work,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_cgecon( char* norm, lapack_int* n, const lapack_complex_float* a,
+ lapack_int* lda, float* anorm, float* rcond,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_zgecon( char* norm, lapack_int* n, const lapack_complex_double* a,
+ lapack_int* lda, double* anorm, double* rcond,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_sgbcon( char* norm, lapack_int* n, lapack_int* kl, lapack_int* ku,
+ const float* ab, lapack_int* ldab, const lapack_int* ipiv,
+ float* anorm, float* rcond, float* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dgbcon( char* norm, lapack_int* n, lapack_int* kl, lapack_int* ku,
+ const double* ab, lapack_int* ldab, const lapack_int* ipiv,
+ double* anorm, double* rcond, double* work,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_cgbcon( char* norm, lapack_int* n, lapack_int* kl, lapack_int* ku,
+ const lapack_complex_float* ab, lapack_int* ldab,
+ const lapack_int* ipiv, float* anorm, float* rcond,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_zgbcon( char* norm, lapack_int* n, lapack_int* kl, lapack_int* ku,
+ const lapack_complex_double* ab, lapack_int* ldab,
+ const lapack_int* ipiv, double* anorm, double* rcond,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_sgtcon( char* norm, lapack_int* n, const float* dl, const float* d,
+ const float* du, const float* du2, const lapack_int* ipiv,
+ float* anorm, float* rcond, float* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dgtcon( char* norm, lapack_int* n, const double* dl,
+ const double* d, const double* du, const double* du2,
+ const lapack_int* ipiv, double* anorm, double* rcond,
+ double* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_cgtcon( char* norm, lapack_int* n, const lapack_complex_float* dl,
+ const lapack_complex_float* d,
+ const lapack_complex_float* du,
+ const lapack_complex_float* du2, const lapack_int* ipiv,
+ float* anorm, float* rcond, lapack_complex_float* work,
+ lapack_int *info );
+void LAPACK_zgtcon( char* norm, lapack_int* n, const lapack_complex_double* dl,
+ const lapack_complex_double* d,
+ const lapack_complex_double* du,
+ const lapack_complex_double* du2, const lapack_int* ipiv,
+ double* anorm, double* rcond, lapack_complex_double* work,
+ lapack_int *info );
+void LAPACK_spocon( char* uplo, lapack_int* n, const float* a, lapack_int* lda,
+ float* anorm, float* rcond, float* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dpocon( char* uplo, lapack_int* n, const double* a, lapack_int* lda,
+ double* anorm, double* rcond, double* work,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_cpocon( char* uplo, lapack_int* n, const lapack_complex_float* a,
+ lapack_int* lda, float* anorm, float* rcond,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_zpocon( char* uplo, lapack_int* n, const lapack_complex_double* a,
+ lapack_int* lda, double* anorm, double* rcond,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_sppcon( char* uplo, lapack_int* n, const float* ap, float* anorm,
+ float* rcond, float* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dppcon( char* uplo, lapack_int* n, const double* ap, double* anorm,
+ double* rcond, double* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_cppcon( char* uplo, lapack_int* n, const lapack_complex_float* ap,
+ float* anorm, float* rcond, lapack_complex_float* work,
+ float* rwork, lapack_int *info );
+void LAPACK_zppcon( char* uplo, lapack_int* n, const lapack_complex_double* ap,
+ double* anorm, double* rcond, lapack_complex_double* work,
+ double* rwork, lapack_int *info );
+void LAPACK_spbcon( char* uplo, lapack_int* n, lapack_int* kd, const float* ab,
+ lapack_int* ldab, float* anorm, float* rcond, float* work,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_dpbcon( char* uplo, lapack_int* n, lapack_int* kd, const double* ab,
+ lapack_int* ldab, double* anorm, double* rcond,
+ double* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_cpbcon( char* uplo, lapack_int* n, lapack_int* kd,
+ const lapack_complex_float* ab, lapack_int* ldab,
+ float* anorm, float* rcond, lapack_complex_float* work,
+ float* rwork, lapack_int *info );
+void LAPACK_zpbcon( char* uplo, lapack_int* n, lapack_int* kd,
+ const lapack_complex_double* ab, lapack_int* ldab,
+ double* anorm, double* rcond, lapack_complex_double* work,
+ double* rwork, lapack_int *info );
+void LAPACK_sptcon( lapack_int* n, const float* d, const float* e, float* anorm,
+ float* rcond, float* work, lapack_int *info );
+void LAPACK_dptcon( lapack_int* n, const double* d, const double* e,
+ double* anorm, double* rcond, double* work,
+ lapack_int *info );
+void LAPACK_cptcon( lapack_int* n, const float* d,
+ const lapack_complex_float* e, float* anorm, float* rcond,
+ float* work, lapack_int *info );
+void LAPACK_zptcon( lapack_int* n, const double* d,
+ const lapack_complex_double* e, double* anorm,
+ double* rcond, double* work, lapack_int *info );
+void LAPACK_ssycon( char* uplo, lapack_int* n, const float* a, lapack_int* lda,
+ const lapack_int* ipiv, float* anorm, float* rcond,
+ float* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_dsycon( char* uplo, lapack_int* n, const double* a, lapack_int* lda,
+ const lapack_int* ipiv, double* anorm, double* rcond,
+ double* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_csycon( char* uplo, lapack_int* n, const lapack_complex_float* a,
+ lapack_int* lda, const lapack_int* ipiv, float* anorm,
+ float* rcond, lapack_complex_float* work,
+ lapack_int *info );
+void LAPACK_zsycon( char* uplo, lapack_int* n, const lapack_complex_double* a,
+ lapack_int* lda, const lapack_int* ipiv, double* anorm,
+ double* rcond, lapack_complex_double* work,
+ lapack_int *info );
+void LAPACK_checon( char* uplo, lapack_int* n, const lapack_complex_float* a,
+ lapack_int* lda, const lapack_int* ipiv, float* anorm,
+ float* rcond, lapack_complex_float* work,
+ lapack_int *info );
+void LAPACK_zhecon( char* uplo, lapack_int* n, const lapack_complex_double* a,
+ lapack_int* lda, const lapack_int* ipiv, double* anorm,
+ double* rcond, lapack_complex_double* work,
+ lapack_int *info );
+void LAPACK_sspcon( char* uplo, lapack_int* n, const float* ap,
+ const lapack_int* ipiv, float* anorm, float* rcond,
+ float* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_dspcon( char* uplo, lapack_int* n, const double* ap,
+ const lapack_int* ipiv, double* anorm, double* rcond,
+ double* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_cspcon( char* uplo, lapack_int* n, const lapack_complex_float* ap,
+ const lapack_int* ipiv, float* anorm, float* rcond,
+ lapack_complex_float* work, lapack_int *info );
+void LAPACK_zspcon( char* uplo, lapack_int* n, const lapack_complex_double* ap,
+ const lapack_int* ipiv, double* anorm, double* rcond,
+ lapack_complex_double* work, lapack_int *info );
+void LAPACK_chpcon( char* uplo, lapack_int* n, const lapack_complex_float* ap,
+ const lapack_int* ipiv, float* anorm, float* rcond,
+ lapack_complex_float* work, lapack_int *info );
+void LAPACK_zhpcon( char* uplo, lapack_int* n, const lapack_complex_double* ap,
+ const lapack_int* ipiv, double* anorm, double* rcond,
+ lapack_complex_double* work, lapack_int *info );
+void LAPACK_strcon( char* norm, char* uplo, char* diag, lapack_int* n,
+ const float* a, lapack_int* lda, float* rcond, float* work,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_dtrcon( char* norm, char* uplo, char* diag, lapack_int* n,
+ const double* a, lapack_int* lda, double* rcond,
+ double* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_ctrcon( char* norm, char* uplo, char* diag, lapack_int* n,
+ const lapack_complex_float* a, lapack_int* lda,
+ float* rcond, lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_ztrcon( char* norm, char* uplo, char* diag, lapack_int* n,
+ const lapack_complex_double* a, lapack_int* lda,
+ double* rcond, lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_stpcon( char* norm, char* uplo, char* diag, lapack_int* n,
+ const float* ap, float* rcond, float* work,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_dtpcon( char* norm, char* uplo, char* diag, lapack_int* n,
+ const double* ap, double* rcond, double* work,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_ctpcon( char* norm, char* uplo, char* diag, lapack_int* n,
+ const lapack_complex_float* ap, float* rcond,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_ztpcon( char* norm, char* uplo, char* diag, lapack_int* n,
+ const lapack_complex_double* ap, double* rcond,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_stbcon( char* norm, char* uplo, char* diag, lapack_int* n,
+ lapack_int* kd, const float* ab, lapack_int* ldab,
+ float* rcond, float* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dtbcon( char* norm, char* uplo, char* diag, lapack_int* n,
+ lapack_int* kd, const double* ab, lapack_int* ldab,
+ double* rcond, double* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_ctbcon( char* norm, char* uplo, char* diag, lapack_int* n,
+ lapack_int* kd, const lapack_complex_float* ab,
+ lapack_int* ldab, float* rcond, lapack_complex_float* work,
+ float* rwork, lapack_int *info );
+void LAPACK_ztbcon( char* norm, char* uplo, char* diag, lapack_int* n,
+ lapack_int* kd, const lapack_complex_double* ab,
+ lapack_int* ldab, double* rcond,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_sgerfs( char* trans, lapack_int* n, lapack_int* nrhs,
+ const float* a, lapack_int* lda, const float* af,
+ lapack_int* ldaf, const lapack_int* ipiv, const float* b,
+ lapack_int* ldb, float* x, lapack_int* ldx, float* ferr,
+ float* berr, float* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dgerfs( char* trans, lapack_int* n, lapack_int* nrhs,
+ const double* a, lapack_int* lda, const double* af,
+ lapack_int* ldaf, const lapack_int* ipiv, const double* b,
+ lapack_int* ldb, double* x, lapack_int* ldx, double* ferr,
+ double* berr, double* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_cgerfs( char* trans, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* a, lapack_int* lda,
+ const lapack_complex_float* af, lapack_int* ldaf,
+ const lapack_int* ipiv, const lapack_complex_float* b,
+ lapack_int* ldb, lapack_complex_float* x, lapack_int* ldx,
+ float* ferr, float* berr, lapack_complex_float* work,
+ float* rwork, lapack_int *info );
+void LAPACK_zgerfs( char* trans, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* a, lapack_int* lda,
+ const lapack_complex_double* af, lapack_int* ldaf,
+ const lapack_int* ipiv, const lapack_complex_double* b,
+ lapack_int* ldb, lapack_complex_double* x, lapack_int* ldx,
+ double* ferr, double* berr, lapack_complex_double* work,
+ double* rwork, lapack_int *info );
+void LAPACK_dgerfsx( char* trans, char* equed, lapack_int* n, lapack_int* nrhs,
+ const double* a, lapack_int* lda, const double* af,
+ lapack_int* ldaf, const lapack_int* ipiv, const double* r,
+ const double* c, const double* b, lapack_int* ldb,
+ double* x, lapack_int* ldx, double* rcond, double* berr,
+ lapack_int* n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int* nparams, double* params,
+ double* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_sgerfsx( char* trans, char* equed, lapack_int* n, lapack_int* nrhs,
+ const float* a, lapack_int* lda, const float* af,
+ lapack_int* ldaf, const lapack_int* ipiv, const float* r,
+ const float* c, const float* b, lapack_int* ldb, float* x,
+ lapack_int* ldx, float* rcond, float* berr,
+ lapack_int* n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int* nparams, float* params,
+ float* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_zgerfsx( char* trans, char* equed, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* a, lapack_int* lda,
+ const lapack_complex_double* af, lapack_int* ldaf,
+ const lapack_int* ipiv, const double* r, const double* c,
+ const lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* rcond,
+ double* berr, lapack_int* n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int* nparams, double* params,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_cgerfsx( char* trans, char* equed, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* a, lapack_int* lda,
+ const lapack_complex_float* af, lapack_int* ldaf,
+ const lapack_int* ipiv, const float* r, const float* c,
+ const lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* rcond,
+ float* berr, lapack_int* n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int* nparams, float* params,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_sgbrfs( char* trans, lapack_int* n, lapack_int* kl, lapack_int* ku,
+ lapack_int* nrhs, const float* ab, lapack_int* ldab,
+ const float* afb, lapack_int* ldafb, const lapack_int* ipiv,
+ const float* b, lapack_int* ldb, float* x, lapack_int* ldx,
+ float* ferr, float* berr, float* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dgbrfs( char* trans, lapack_int* n, lapack_int* kl, lapack_int* ku,
+ lapack_int* nrhs, const double* ab, lapack_int* ldab,
+ const double* afb, lapack_int* ldafb,
+ const lapack_int* ipiv, const double* b, lapack_int* ldb,
+ double* x, lapack_int* ldx, double* ferr, double* berr,
+ double* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_cgbrfs( char* trans, lapack_int* n, lapack_int* kl, lapack_int* ku,
+ lapack_int* nrhs, const lapack_complex_float* ab,
+ lapack_int* ldab, const lapack_complex_float* afb,
+ lapack_int* ldafb, const lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* ferr,
+ float* berr, lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_zgbrfs( char* trans, lapack_int* n, lapack_int* kl, lapack_int* ku,
+ lapack_int* nrhs, const lapack_complex_double* ab,
+ lapack_int* ldab, const lapack_complex_double* afb,
+ lapack_int* ldafb, const lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* ferr,
+ double* berr, lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_dgbrfsx( char* trans, char* equed, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, lapack_int* nrhs, const double* ab,
+ lapack_int* ldab, const double* afb, lapack_int* ldafb,
+ const lapack_int* ipiv, const double* r, const double* c,
+ const double* b, lapack_int* ldb, double* x,
+ lapack_int* ldx, double* rcond, double* berr,
+ lapack_int* n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int* nparams, double* params,
+ double* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_sgbrfsx( char* trans, char* equed, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, lapack_int* nrhs, const float* ab,
+ lapack_int* ldab, const float* afb, lapack_int* ldafb,
+ const lapack_int* ipiv, const float* r, const float* c,
+ const float* b, lapack_int* ldb, float* x, lapack_int* ldx,
+ float* rcond, float* berr, lapack_int* n_err_bnds,
+ float* err_bnds_norm, float* err_bnds_comp,
+ lapack_int* nparams, float* params, float* work,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_zgbrfsx( char* trans, char* equed, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, lapack_int* nrhs,
+ const lapack_complex_double* ab, lapack_int* ldab,
+ const lapack_complex_double* afb, lapack_int* ldafb,
+ const lapack_int* ipiv, const double* r, const double* c,
+ const lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* rcond,
+ double* berr, lapack_int* n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int* nparams, double* params,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_cgbrfsx( char* trans, char* equed, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, lapack_int* nrhs,
+ const lapack_complex_float* ab, lapack_int* ldab,
+ const lapack_complex_float* afb, lapack_int* ldafb,
+ const lapack_int* ipiv, const float* r, const float* c,
+ const lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* rcond,
+ float* berr, lapack_int* n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int* nparams, float* params,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_sgtrfs( char* trans, lapack_int* n, lapack_int* nrhs,
+ const float* dl, const float* d, const float* du,
+ const float* dlf, const float* df, const float* duf,
+ const float* du2, const lapack_int* ipiv, const float* b,
+ lapack_int* ldb, float* x, lapack_int* ldx, float* ferr,
+ float* berr, float* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dgtrfs( char* trans, lapack_int* n, lapack_int* nrhs,
+ const double* dl, const double* d, const double* du,
+ const double* dlf, const double* df, const double* duf,
+ const double* du2, const lapack_int* ipiv, const double* b,
+ lapack_int* ldb, double* x, lapack_int* ldx, double* ferr,
+ double* berr, double* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_cgtrfs( char* trans, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* dl,
+ const lapack_complex_float* d,
+ const lapack_complex_float* du,
+ const lapack_complex_float* dlf,
+ const lapack_complex_float* df,
+ const lapack_complex_float* duf,
+ const lapack_complex_float* du2, const lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* ferr,
+ float* berr, lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_zgtrfs( char* trans, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* dl,
+ const lapack_complex_double* d,
+ const lapack_complex_double* du,
+ const lapack_complex_double* dlf,
+ const lapack_complex_double* df,
+ const lapack_complex_double* duf,
+ const lapack_complex_double* du2, const lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* ferr,
+ double* berr, lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_sporfs( char* uplo, lapack_int* n, lapack_int* nrhs, const float* a,
+ lapack_int* lda, const float* af, lapack_int* ldaf,
+ const float* b, lapack_int* ldb, float* x, lapack_int* ldx,
+ float* ferr, float* berr, float* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dporfs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const double* a, lapack_int* lda, const double* af,
+ lapack_int* ldaf, const double* b, lapack_int* ldb,
+ double* x, lapack_int* ldx, double* ferr, double* berr,
+ double* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_cporfs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* a, lapack_int* lda,
+ const lapack_complex_float* af, lapack_int* ldaf,
+ const lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* ferr,
+ float* berr, lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_zporfs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* a, lapack_int* lda,
+ const lapack_complex_double* af, lapack_int* ldaf,
+ const lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* ferr,
+ double* berr, lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_dporfsx( char* uplo, char* equed, lapack_int* n, lapack_int* nrhs,
+ const double* a, lapack_int* lda, const double* af,
+ lapack_int* ldaf, const double* s, const double* b,
+ lapack_int* ldb, double* x, lapack_int* ldx, double* rcond,
+ double* berr, lapack_int* n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int* nparams, double* params, double* work,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_sporfsx( char* uplo, char* equed, lapack_int* n, lapack_int* nrhs,
+ const float* a, lapack_int* lda, const float* af,
+ lapack_int* ldaf, const float* s, const float* b,
+ lapack_int* ldb, float* x, lapack_int* ldx, float* rcond,
+ float* berr, lapack_int* n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int* nparams, float* params,
+ float* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_zporfsx( char* uplo, char* equed, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* a, lapack_int* lda,
+ const lapack_complex_double* af, lapack_int* ldaf,
+ const double* s, const lapack_complex_double* b,
+ lapack_int* ldb, lapack_complex_double* x, lapack_int* ldx,
+ double* rcond, double* berr, lapack_int* n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int* nparams, double* params,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_cporfsx( char* uplo, char* equed, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* a, lapack_int* lda,
+ const lapack_complex_float* af, lapack_int* ldaf,
+ const float* s, const lapack_complex_float* b,
+ lapack_int* ldb, lapack_complex_float* x, lapack_int* ldx,
+ float* rcond, float* berr, lapack_int* n_err_bnds,
+ float* err_bnds_norm, float* err_bnds_comp,
+ lapack_int* nparams, float* params,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_spprfs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const float* ap, const float* afp, const float* b,
+ lapack_int* ldb, float* x, lapack_int* ldx, float* ferr,
+ float* berr, float* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dpprfs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const double* ap, const double* afp, const double* b,
+ lapack_int* ldb, double* x, lapack_int* ldx, double* ferr,
+ double* berr, double* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_cpprfs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* ap,
+ const lapack_complex_float* afp,
+ const lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* ferr,
+ float* berr, lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_zpprfs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* ap,
+ const lapack_complex_double* afp,
+ const lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* ferr,
+ double* berr, lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_spbrfs( char* uplo, lapack_int* n, lapack_int* kd, lapack_int* nrhs,
+ const float* ab, lapack_int* ldab, const float* afb,
+ lapack_int* ldafb, const float* b, lapack_int* ldb,
+ float* x, lapack_int* ldx, float* ferr, float* berr,
+ float* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_dpbrfs( char* uplo, lapack_int* n, lapack_int* kd, lapack_int* nrhs,
+ const double* ab, lapack_int* ldab, const double* afb,
+ lapack_int* ldafb, const double* b, lapack_int* ldb,
+ double* x, lapack_int* ldx, double* ferr, double* berr,
+ double* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_cpbrfs( char* uplo, lapack_int* n, lapack_int* kd, lapack_int* nrhs,
+ const lapack_complex_float* ab, lapack_int* ldab,
+ const lapack_complex_float* afb, lapack_int* ldafb,
+ const lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* ferr,
+ float* berr, lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_zpbrfs( char* uplo, lapack_int* n, lapack_int* kd, lapack_int* nrhs,
+ const lapack_complex_double* ab, lapack_int* ldab,
+ const lapack_complex_double* afb, lapack_int* ldafb,
+ const lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* ferr,
+ double* berr, lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_sptrfs( lapack_int* n, lapack_int* nrhs, const float* d,
+ const float* e, const float* df, const float* ef,
+ const float* b, lapack_int* ldb, float* x, lapack_int* ldx,
+ float* ferr, float* berr, float* work, lapack_int *info );
+void LAPACK_dptrfs( lapack_int* n, lapack_int* nrhs, const double* d,
+ const double* e, const double* df, const double* ef,
+ const double* b, lapack_int* ldb, double* x,
+ lapack_int* ldx, double* ferr, double* berr, double* work,
+ lapack_int *info );
+void LAPACK_cptrfs( char* uplo, lapack_int* n, lapack_int* nrhs, const float* d,
+ const lapack_complex_float* e, const float* df,
+ const lapack_complex_float* ef,
+ const lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* ferr,
+ float* berr, lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_zptrfs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const double* d, const lapack_complex_double* e,
+ const double* df, const lapack_complex_double* ef,
+ const lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* ferr,
+ double* berr, lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_ssyrfs( char* uplo, lapack_int* n, lapack_int* nrhs, const float* a,
+ lapack_int* lda, const float* af, lapack_int* ldaf,
+ const lapack_int* ipiv, const float* b, lapack_int* ldb,
+ float* x, lapack_int* ldx, float* ferr, float* berr,
+ float* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_dsyrfs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const double* a, lapack_int* lda, const double* af,
+ lapack_int* ldaf, const lapack_int* ipiv, const double* b,
+ lapack_int* ldb, double* x, lapack_int* ldx, double* ferr,
+ double* berr, double* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_csyrfs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* a, lapack_int* lda,
+ const lapack_complex_float* af, lapack_int* ldaf,
+ const lapack_int* ipiv, const lapack_complex_float* b,
+ lapack_int* ldb, lapack_complex_float* x, lapack_int* ldx,
+ float* ferr, float* berr, lapack_complex_float* work,
+ float* rwork, lapack_int *info );
+void LAPACK_zsyrfs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* a, lapack_int* lda,
+ const lapack_complex_double* af, lapack_int* ldaf,
+ const lapack_int* ipiv, const lapack_complex_double* b,
+ lapack_int* ldb, lapack_complex_double* x, lapack_int* ldx,
+ double* ferr, double* berr, lapack_complex_double* work,
+ double* rwork, lapack_int *info );
+void LAPACK_dsyrfsx( char* uplo, char* equed, lapack_int* n, lapack_int* nrhs,
+ const double* a, lapack_int* lda, const double* af,
+ lapack_int* ldaf, const lapack_int* ipiv, const double* s,
+ const double* b, lapack_int* ldb, double* x,
+ lapack_int* ldx, double* rcond, double* berr,
+ lapack_int* n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int* nparams, double* params,
+ double* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_ssyrfsx( char* uplo, char* equed, lapack_int* n, lapack_int* nrhs,
+ const float* a, lapack_int* lda, const float* af,
+ lapack_int* ldaf, const lapack_int* ipiv, const float* s,
+ const float* b, lapack_int* ldb, float* x, lapack_int* ldx,
+ float* rcond, float* berr, lapack_int* n_err_bnds,
+ float* err_bnds_norm, float* err_bnds_comp,
+ lapack_int* nparams, float* params, float* work,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_zsyrfsx( char* uplo, char* equed, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* a, lapack_int* lda,
+ const lapack_complex_double* af, lapack_int* ldaf,
+ const lapack_int* ipiv, const double* s,
+ const lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* rcond,
+ double* berr, lapack_int* n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int* nparams, double* params,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_csyrfsx( char* uplo, char* equed, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* a, lapack_int* lda,
+ const lapack_complex_float* af, lapack_int* ldaf,
+ const lapack_int* ipiv, const float* s,
+ const lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* rcond,
+ float* berr, lapack_int* n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int* nparams, float* params,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_cherfs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* a, lapack_int* lda,
+ const lapack_complex_float* af, lapack_int* ldaf,
+ const lapack_int* ipiv, const lapack_complex_float* b,
+ lapack_int* ldb, lapack_complex_float* x, lapack_int* ldx,
+ float* ferr, float* berr, lapack_complex_float* work,
+ float* rwork, lapack_int *info );
+void LAPACK_zherfs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* a, lapack_int* lda,
+ const lapack_complex_double* af, lapack_int* ldaf,
+ const lapack_int* ipiv, const lapack_complex_double* b,
+ lapack_int* ldb, lapack_complex_double* x, lapack_int* ldx,
+ double* ferr, double* berr, lapack_complex_double* work,
+ double* rwork, lapack_int *info );
+void LAPACK_zherfsx( char* uplo, char* equed, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* a, lapack_int* lda,
+ const lapack_complex_double* af, lapack_int* ldaf,
+ const lapack_int* ipiv, const double* s,
+ const lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* rcond,
+ double* berr, lapack_int* n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int* nparams, double* params,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_cherfsx( char* uplo, char* equed, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* a, lapack_int* lda,
+ const lapack_complex_float* af, lapack_int* ldaf,
+ const lapack_int* ipiv, const float* s,
+ const lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* rcond,
+ float* berr, lapack_int* n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int* nparams, float* params,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_ssprfs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const float* ap, const float* afp, const lapack_int* ipiv,
+ const float* b, lapack_int* ldb, float* x, lapack_int* ldx,
+ float* ferr, float* berr, float* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dsprfs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const double* ap, const double* afp, const lapack_int* ipiv,
+ const double* b, lapack_int* ldb, double* x,
+ lapack_int* ldx, double* ferr, double* berr, double* work,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_csprfs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* ap,
+ const lapack_complex_float* afp, const lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* ferr,
+ float* berr, lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_zsprfs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* ap,
+ const lapack_complex_double* afp, const lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* ferr,
+ double* berr, lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_chprfs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* ap,
+ const lapack_complex_float* afp, const lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* ferr,
+ float* berr, lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_zhprfs( char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* ap,
+ const lapack_complex_double* afp, const lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* ferr,
+ double* berr, lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_strrfs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* nrhs, const float* a, lapack_int* lda,
+ const float* b, lapack_int* ldb, const float* x,
+ lapack_int* ldx, float* ferr, float* berr, float* work,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_dtrrfs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* nrhs, const double* a, lapack_int* lda,
+ const double* b, lapack_int* ldb, const double* x,
+ lapack_int* ldx, double* ferr, double* berr, double* work,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_ctrrfs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* nrhs, const lapack_complex_float* a,
+ lapack_int* lda, const lapack_complex_float* b,
+ lapack_int* ldb, const lapack_complex_float* x,
+ lapack_int* ldx, float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_ztrrfs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* nrhs, const lapack_complex_double* a,
+ lapack_int* lda, const lapack_complex_double* b,
+ lapack_int* ldb, const lapack_complex_double* x,
+ lapack_int* ldx, double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_stprfs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* nrhs, const float* ap, const float* b,
+ lapack_int* ldb, const float* x, lapack_int* ldx,
+ float* ferr, float* berr, float* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dtprfs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* nrhs, const double* ap, const double* b,
+ lapack_int* ldb, const double* x, lapack_int* ldx,
+ double* ferr, double* berr, double* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_ctprfs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* nrhs, const lapack_complex_float* ap,
+ const lapack_complex_float* b, lapack_int* ldb,
+ const lapack_complex_float* x, lapack_int* ldx, float* ferr,
+ float* berr, lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_ztprfs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* nrhs, const lapack_complex_double* ap,
+ const lapack_complex_double* b, lapack_int* ldb,
+ const lapack_complex_double* x, lapack_int* ldx,
+ double* ferr, double* berr, lapack_complex_double* work,
+ double* rwork, lapack_int *info );
+void LAPACK_stbrfs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* kd, lapack_int* nrhs, const float* ab,
+ lapack_int* ldab, const float* b, lapack_int* ldb,
+ const float* x, lapack_int* ldx, float* ferr, float* berr,
+ float* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_dtbrfs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* kd, lapack_int* nrhs, const double* ab,
+ lapack_int* ldab, const double* b, lapack_int* ldb,
+ const double* x, lapack_int* ldx, double* ferr,
+ double* berr, double* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_ctbrfs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* kd, lapack_int* nrhs,
+ const lapack_complex_float* ab, lapack_int* ldab,
+ const lapack_complex_float* b, lapack_int* ldb,
+ const lapack_complex_float* x, lapack_int* ldx, float* ferr,
+ float* berr, lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_ztbrfs( char* uplo, char* trans, char* diag, lapack_int* n,
+ lapack_int* kd, lapack_int* nrhs,
+ const lapack_complex_double* ab, lapack_int* ldab,
+ const lapack_complex_double* b, lapack_int* ldb,
+ const lapack_complex_double* x, lapack_int* ldx,
+ double* ferr, double* berr, lapack_complex_double* work,
+ double* rwork, lapack_int *info );
+void LAPACK_sgetri( lapack_int* n, float* a, lapack_int* lda,
+ const lapack_int* ipiv, float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_dgetri( lapack_int* n, double* a, lapack_int* lda,
+ const lapack_int* ipiv, double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_cgetri( lapack_int* n, lapack_complex_float* a, lapack_int* lda,
+ const lapack_int* ipiv, lapack_complex_float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_zgetri( lapack_int* n, lapack_complex_double* a, lapack_int* lda,
+ const lapack_int* ipiv, lapack_complex_double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_spotri( char* uplo, lapack_int* n, float* a, lapack_int* lda,
+ lapack_int *info );
+void LAPACK_dpotri( char* uplo, lapack_int* n, double* a, lapack_int* lda,
+ lapack_int *info );
+void LAPACK_cpotri( char* uplo, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_int *info );
+void LAPACK_zpotri( char* uplo, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_int *info );
+void LAPACK_dpftri( char* transr, char* uplo, lapack_int* n, double* a,
+ lapack_int *info );
+void LAPACK_spftri( char* transr, char* uplo, lapack_int* n, float* a,
+ lapack_int *info );
+void LAPACK_zpftri( char* transr, char* uplo, lapack_int* n,
+ lapack_complex_double* a, lapack_int *info );
+void LAPACK_cpftri( char* transr, char* uplo, lapack_int* n,
+ lapack_complex_float* a, lapack_int *info );
+void LAPACK_spptri( char* uplo, lapack_int* n, float* ap, lapack_int *info );
+void LAPACK_dpptri( char* uplo, lapack_int* n, double* ap, lapack_int *info );
+void LAPACK_cpptri( char* uplo, lapack_int* n, lapack_complex_float* ap,
+ lapack_int *info );
+void LAPACK_zpptri( char* uplo, lapack_int* n, lapack_complex_double* ap,
+ lapack_int *info );
+void LAPACK_ssytri( char* uplo, lapack_int* n, float* a, lapack_int* lda,
+ const lapack_int* ipiv, float* work, lapack_int *info );
+void LAPACK_dsytri( char* uplo, lapack_int* n, double* a, lapack_int* lda,
+ const lapack_int* ipiv, double* work, lapack_int *info );
+void LAPACK_csytri( char* uplo, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, const lapack_int* ipiv,
+ lapack_complex_float* work, lapack_int *info );
+void LAPACK_zsytri( char* uplo, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, const lapack_int* ipiv,
+ lapack_complex_double* work, lapack_int *info );
+void LAPACK_chetri( char* uplo, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, const lapack_int* ipiv,
+ lapack_complex_float* work, lapack_int *info );
+void LAPACK_zhetri( char* uplo, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, const lapack_int* ipiv,
+ lapack_complex_double* work, lapack_int *info );
+void LAPACK_ssptri( char* uplo, lapack_int* n, float* ap,
+ const lapack_int* ipiv, float* work, lapack_int *info );
+void LAPACK_dsptri( char* uplo, lapack_int* n, double* ap,
+ const lapack_int* ipiv, double* work, lapack_int *info );
+void LAPACK_csptri( char* uplo, lapack_int* n, lapack_complex_float* ap,
+ const lapack_int* ipiv, lapack_complex_float* work,
+ lapack_int *info );
+void LAPACK_zsptri( char* uplo, lapack_int* n, lapack_complex_double* ap,
+ const lapack_int* ipiv, lapack_complex_double* work,
+ lapack_int *info );
+void LAPACK_chptri( char* uplo, lapack_int* n, lapack_complex_float* ap,
+ const lapack_int* ipiv, lapack_complex_float* work,
+ lapack_int *info );
+void LAPACK_zhptri( char* uplo, lapack_int* n, lapack_complex_double* ap,
+ const lapack_int* ipiv, lapack_complex_double* work,
+ lapack_int *info );
+void LAPACK_strtri( char* uplo, char* diag, lapack_int* n, float* a,
+ lapack_int* lda, lapack_int *info );
+void LAPACK_dtrtri( char* uplo, char* diag, lapack_int* n, double* a,
+ lapack_int* lda, lapack_int *info );
+void LAPACK_ctrtri( char* uplo, char* diag, lapack_int* n,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_int *info );
+void LAPACK_ztrtri( char* uplo, char* diag, lapack_int* n,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_int *info );
+void LAPACK_dtftri( char* transr, char* uplo, char* diag, lapack_int* n,
+ double* a, lapack_int *info );
+void LAPACK_stftri( char* transr, char* uplo, char* diag, lapack_int* n,
+ float* a, lapack_int *info );
+void LAPACK_ztftri( char* transr, char* uplo, char* diag, lapack_int* n,
+ lapack_complex_double* a, lapack_int *info );
+void LAPACK_ctftri( char* transr, char* uplo, char* diag, lapack_int* n,
+ lapack_complex_float* a, lapack_int *info );
+void LAPACK_stptri( char* uplo, char* diag, lapack_int* n, float* ap,
+ lapack_int *info );
+void LAPACK_dtptri( char* uplo, char* diag, lapack_int* n, double* ap,
+ lapack_int *info );
+void LAPACK_ctptri( char* uplo, char* diag, lapack_int* n,
+ lapack_complex_float* ap, lapack_int *info );
+void LAPACK_ztptri( char* uplo, char* diag, lapack_int* n,
+ lapack_complex_double* ap, lapack_int *info );
+void LAPACK_sgeequ( lapack_int* m, lapack_int* n, const float* a,
+ lapack_int* lda, float* r, float* c, float* rowcnd,
+ float* colcnd, float* amax, lapack_int *info );
+void LAPACK_dgeequ( lapack_int* m, lapack_int* n, const double* a,
+ lapack_int* lda, double* r, double* c, double* rowcnd,
+ double* colcnd, double* amax, lapack_int *info );
+void LAPACK_cgeequ( lapack_int* m, lapack_int* n, const lapack_complex_float* a,
+ lapack_int* lda, float* r, float* c, float* rowcnd,
+ float* colcnd, float* amax, lapack_int *info );
+void LAPACK_zgeequ( lapack_int* m, lapack_int* n,
+ const lapack_complex_double* a, lapack_int* lda, double* r,
+ double* c, double* rowcnd, double* colcnd, double* amax,
+ lapack_int *info );
+void LAPACK_dgeequb( lapack_int* m, lapack_int* n, const double* a,
+ lapack_int* lda, double* r, double* c, double* rowcnd,
+ double* colcnd, double* amax, lapack_int *info );
+void LAPACK_sgeequb( lapack_int* m, lapack_int* n, const float* a,
+ lapack_int* lda, float* r, float* c, float* rowcnd,
+ float* colcnd, float* amax, lapack_int *info );
+void LAPACK_zgeequb( lapack_int* m, lapack_int* n,
+ const lapack_complex_double* a, lapack_int* lda, double* r,
+ double* c, double* rowcnd, double* colcnd, double* amax,
+ lapack_int *info );
+void LAPACK_cgeequb( lapack_int* m, lapack_int* n,
+ const lapack_complex_float* a, lapack_int* lda, float* r,
+ float* c, float* rowcnd, float* colcnd, float* amax,
+ lapack_int *info );
+void LAPACK_sgbequ( lapack_int* m, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, const float* ab, lapack_int* ldab, float* r,
+ float* c, float* rowcnd, float* colcnd, float* amax,
+ lapack_int *info );
+void LAPACK_dgbequ( lapack_int* m, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, const double* ab, lapack_int* ldab,
+ double* r, double* c, double* rowcnd, double* colcnd,
+ double* amax, lapack_int *info );
+void LAPACK_cgbequ( lapack_int* m, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, const lapack_complex_float* ab,
+ lapack_int* ldab, float* r, float* c, float* rowcnd,
+ float* colcnd, float* amax, lapack_int *info );
+void LAPACK_zgbequ( lapack_int* m, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, const lapack_complex_double* ab,
+ lapack_int* ldab, double* r, double* c, double* rowcnd,
+ double* colcnd, double* amax, lapack_int *info );
+void LAPACK_dgbequb( lapack_int* m, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, const double* ab, lapack_int* ldab,
+ double* r, double* c, double* rowcnd, double* colcnd,
+ double* amax, lapack_int *info );
+void LAPACK_sgbequb( lapack_int* m, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, const float* ab, lapack_int* ldab,
+ float* r, float* c, float* rowcnd, float* colcnd,
+ float* amax, lapack_int *info );
+void LAPACK_zgbequb( lapack_int* m, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, const lapack_complex_double* ab,
+ lapack_int* ldab, double* r, double* c, double* rowcnd,
+ double* colcnd, double* amax, lapack_int *info );
+void LAPACK_cgbequb( lapack_int* m, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, const lapack_complex_float* ab,
+ lapack_int* ldab, float* r, float* c, float* rowcnd,
+ float* colcnd, float* amax, lapack_int *info );
+void LAPACK_spoequ( lapack_int* n, const float* a, lapack_int* lda, float* s,
+ float* scond, float* amax, lapack_int *info );
+void LAPACK_dpoequ( lapack_int* n, const double* a, lapack_int* lda, double* s,
+ double* scond, double* amax, lapack_int *info );
+void LAPACK_cpoequ( lapack_int* n, const lapack_complex_float* a,
+ lapack_int* lda, float* s, float* scond, float* amax,
+ lapack_int *info );
+void LAPACK_zpoequ( lapack_int* n, const lapack_complex_double* a,
+ lapack_int* lda, double* s, double* scond, double* amax,
+ lapack_int *info );
+void LAPACK_dpoequb( lapack_int* n, const double* a, lapack_int* lda, double* s,
+ double* scond, double* amax, lapack_int *info );
+void LAPACK_spoequb( lapack_int* n, const float* a, lapack_int* lda, float* s,
+ float* scond, float* amax, lapack_int *info );
+void LAPACK_zpoequb( lapack_int* n, const lapack_complex_double* a,
+ lapack_int* lda, double* s, double* scond, double* amax,
+ lapack_int *info );
+void LAPACK_cpoequb( lapack_int* n, const lapack_complex_float* a,
+ lapack_int* lda, float* s, float* scond, float* amax,
+ lapack_int *info );
+void LAPACK_sppequ( char* uplo, lapack_int* n, const float* ap, float* s,
+ float* scond, float* amax, lapack_int *info );
+void LAPACK_dppequ( char* uplo, lapack_int* n, const double* ap, double* s,
+ double* scond, double* amax, lapack_int *info );
+void LAPACK_cppequ( char* uplo, lapack_int* n, const lapack_complex_float* ap,
+ float* s, float* scond, float* amax, lapack_int *info );
+void LAPACK_zppequ( char* uplo, lapack_int* n, const lapack_complex_double* ap,
+ double* s, double* scond, double* amax, lapack_int *info );
+void LAPACK_spbequ( char* uplo, lapack_int* n, lapack_int* kd, const float* ab,
+ lapack_int* ldab, float* s, float* scond, float* amax,
+ lapack_int *info );
+void LAPACK_dpbequ( char* uplo, lapack_int* n, lapack_int* kd, const double* ab,
+ lapack_int* ldab, double* s, double* scond, double* amax,
+ lapack_int *info );
+void LAPACK_cpbequ( char* uplo, lapack_int* n, lapack_int* kd,
+ const lapack_complex_float* ab, lapack_int* ldab, float* s,
+ float* scond, float* amax, lapack_int *info );
+void LAPACK_zpbequ( char* uplo, lapack_int* n, lapack_int* kd,
+ const lapack_complex_double* ab, lapack_int* ldab,
+ double* s, double* scond, double* amax, lapack_int *info );
+void LAPACK_dsyequb( char* uplo, lapack_int* n, const double* a,
+ lapack_int* lda, double* s, double* scond, double* amax,
+ double* work, lapack_int *info );
+void LAPACK_ssyequb( char* uplo, lapack_int* n, const float* a, lapack_int* lda,
+ float* s, float* scond, float* amax, float* work,
+ lapack_int *info );
+void LAPACK_zsyequb( char* uplo, lapack_int* n, const lapack_complex_double* a,
+ lapack_int* lda, double* s, double* scond, double* amax,
+ lapack_complex_double* work, lapack_int *info );
+void LAPACK_csyequb( char* uplo, lapack_int* n, const lapack_complex_float* a,
+ lapack_int* lda, float* s, float* scond, float* amax,
+ lapack_complex_float* work, lapack_int *info );
+void LAPACK_zheequb( char* uplo, lapack_int* n, const lapack_complex_double* a,
+ lapack_int* lda, double* s, double* scond, double* amax,
+ lapack_complex_double* work, lapack_int *info );
+void LAPACK_cheequb( char* uplo, lapack_int* n, const lapack_complex_float* a,
+ lapack_int* lda, float* s, float* scond, float* amax,
+ lapack_complex_float* work, lapack_int *info );
+void LAPACK_sgesv( lapack_int* n, lapack_int* nrhs, float* a, lapack_int* lda,
+ lapack_int* ipiv, float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_dgesv( lapack_int* n, lapack_int* nrhs, double* a, lapack_int* lda,
+ lapack_int* ipiv, double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_cgesv( lapack_int* n, lapack_int* nrhs, lapack_complex_float* a,
+ lapack_int* lda, lapack_int* ipiv, lapack_complex_float* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_zgesv( lapack_int* n, lapack_int* nrhs, lapack_complex_double* a,
+ lapack_int* lda, lapack_int* ipiv, lapack_complex_double* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_dsgesv( lapack_int* n, lapack_int* nrhs, double* a, lapack_int* lda,
+ lapack_int* ipiv, double* b, lapack_int* ldb, double* x,
+ lapack_int* ldx, double* work, float* swork,
+ lapack_int* iter, lapack_int *info );
+void LAPACK_zcgesv( lapack_int* n, lapack_int* nrhs, lapack_complex_double* a,
+ lapack_int* lda, lapack_int* ipiv, lapack_complex_double* b,
+ lapack_int* ldb, lapack_complex_double* x, lapack_int* ldx,
+ lapack_complex_double* work, lapack_complex_float* swork,
+ double* rwork, lapack_int* iter, lapack_int *info );
+void LAPACK_sgesvx( char* fact, char* trans, lapack_int* n, lapack_int* nrhs,
+ float* a, lapack_int* lda, float* af, lapack_int* ldaf,
+ lapack_int* ipiv, char* equed, float* r, float* c, float* b,
+ lapack_int* ldb, float* x, lapack_int* ldx, float* rcond,
+ float* ferr, float* berr, float* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dgesvx( char* fact, char* trans, lapack_int* n, lapack_int* nrhs,
+ double* a, lapack_int* lda, double* af, lapack_int* ldaf,
+ lapack_int* ipiv, char* equed, double* r, double* c,
+ double* b, lapack_int* ldb, double* x, lapack_int* ldx,
+ double* rcond, double* ferr, double* berr, double* work,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_cgesvx( char* fact, char* trans, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* af, lapack_int* ldaf,
+ lapack_int* ipiv, char* equed, float* r, float* c,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* rcond,
+ float* ferr, float* berr, lapack_complex_float* work,
+ float* rwork, lapack_int *info );
+void LAPACK_zgesvx( char* fact, char* trans, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* af, lapack_int* ldaf,
+ lapack_int* ipiv, char* equed, double* r, double* c,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* rcond,
+ double* ferr, double* berr, lapack_complex_double* work,
+ double* rwork, lapack_int *info );
+void LAPACK_dgesvxx( char* fact, char* trans, lapack_int* n, lapack_int* nrhs,
+ double* a, lapack_int* lda, double* af, lapack_int* ldaf,
+ lapack_int* ipiv, char* equed, double* r, double* c,
+ double* b, lapack_int* ldb, double* x, lapack_int* ldx,
+ double* rcond, double* rpvgrw, double* berr,
+ lapack_int* n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int* nparams, double* params,
+ double* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_sgesvxx( char* fact, char* trans, lapack_int* n, lapack_int* nrhs,
+ float* a, lapack_int* lda, float* af, lapack_int* ldaf,
+ lapack_int* ipiv, char* equed, float* r, float* c,
+ float* b, lapack_int* ldb, float* x, lapack_int* ldx,
+ float* rcond, float* rpvgrw, float* berr,
+ lapack_int* n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int* nparams, float* params,
+ float* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_zgesvxx( char* fact, char* trans, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* af, lapack_int* ldaf,
+ lapack_int* ipiv, char* equed, double* r, double* c,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* rcond,
+ double* rpvgrw, double* berr, lapack_int* n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int* nparams, double* params,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_cgesvxx( char* fact, char* trans, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* af, lapack_int* ldaf,
+ lapack_int* ipiv, char* equed, float* r, float* c,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* rcond,
+ float* rpvgrw, float* berr, lapack_int* n_err_bnds,
+ float* err_bnds_norm, float* err_bnds_comp,
+ lapack_int* nparams, float* params,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_sgbsv( lapack_int* n, lapack_int* kl, lapack_int* ku,
+ lapack_int* nrhs, float* ab, lapack_int* ldab,
+ lapack_int* ipiv, float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_dgbsv( lapack_int* n, lapack_int* kl, lapack_int* ku,
+ lapack_int* nrhs, double* ab, lapack_int* ldab,
+ lapack_int* ipiv, double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_cgbsv( lapack_int* n, lapack_int* kl, lapack_int* ku,
+ lapack_int* nrhs, lapack_complex_float* ab, lapack_int* ldab,
+ lapack_int* ipiv, lapack_complex_float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_zgbsv( lapack_int* n, lapack_int* kl, lapack_int* ku,
+ lapack_int* nrhs, lapack_complex_double* ab,
+ lapack_int* ldab, lapack_int* ipiv, lapack_complex_double* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_sgbsvx( char* fact, char* trans, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, lapack_int* nrhs, float* ab,
+ lapack_int* ldab, float* afb, lapack_int* ldafb,
+ lapack_int* ipiv, char* equed, float* r, float* c, float* b,
+ lapack_int* ldb, float* x, lapack_int* ldx, float* rcond,
+ float* ferr, float* berr, float* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dgbsvx( char* fact, char* trans, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, lapack_int* nrhs, double* ab,
+ lapack_int* ldab, double* afb, lapack_int* ldafb,
+ lapack_int* ipiv, char* equed, double* r, double* c,
+ double* b, lapack_int* ldb, double* x, lapack_int* ldx,
+ double* rcond, double* ferr, double* berr, double* work,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_cgbsvx( char* fact, char* trans, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, lapack_int* nrhs, lapack_complex_float* ab,
+ lapack_int* ldab, lapack_complex_float* afb,
+ lapack_int* ldafb, lapack_int* ipiv, char* equed, float* r,
+ float* c, lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* rcond,
+ float* ferr, float* berr, lapack_complex_float* work,
+ float* rwork, lapack_int *info );
+void LAPACK_zgbsvx( char* fact, char* trans, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, lapack_int* nrhs, lapack_complex_double* ab,
+ lapack_int* ldab, lapack_complex_double* afb,
+ lapack_int* ldafb, lapack_int* ipiv, char* equed, double* r,
+ double* c, lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* rcond,
+ double* ferr, double* berr, lapack_complex_double* work,
+ double* rwork, lapack_int *info );
+void LAPACK_dgbsvxx( char* fact, char* trans, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, lapack_int* nrhs, double* ab,
+ lapack_int* ldab, double* afb, lapack_int* ldafb,
+ lapack_int* ipiv, char* equed, double* r, double* c,
+ double* b, lapack_int* ldb, double* x, lapack_int* ldx,
+ double* rcond, double* rpvgrw, double* berr,
+ lapack_int* n_err_bnds, double* err_bnds_norm,
+ double* err_bnds_comp, lapack_int* nparams, double* params,
+ double* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_sgbsvxx( char* fact, char* trans, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, lapack_int* nrhs, float* ab,
+ lapack_int* ldab, float* afb, lapack_int* ldafb,
+ lapack_int* ipiv, char* equed, float* r, float* c,
+ float* b, lapack_int* ldb, float* x, lapack_int* ldx,
+ float* rcond, float* rpvgrw, float* berr,
+ lapack_int* n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int* nparams, float* params,
+ float* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_zgbsvxx( char* fact, char* trans, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, lapack_int* nrhs,
+ lapack_complex_double* ab, lapack_int* ldab,
+ lapack_complex_double* afb, lapack_int* ldafb,
+ lapack_int* ipiv, char* equed, double* r, double* c,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* rcond,
+ double* rpvgrw, double* berr, lapack_int* n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int* nparams, double* params,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_cgbsvxx( char* fact, char* trans, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, lapack_int* nrhs, lapack_complex_float* ab,
+ lapack_int* ldab, lapack_complex_float* afb,
+ lapack_int* ldafb, lapack_int* ipiv, char* equed, float* r,
+ float* c, lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* rcond,
+ float* rpvgrw, float* berr, lapack_int* n_err_bnds,
+ float* err_bnds_norm, float* err_bnds_comp,
+ lapack_int* nparams, float* params,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_sgtsv( lapack_int* n, lapack_int* nrhs, float* dl, float* d,
+ float* du, float* b, lapack_int* ldb, lapack_int *info );
+void LAPACK_dgtsv( lapack_int* n, lapack_int* nrhs, double* dl, double* d,
+ double* du, double* b, lapack_int* ldb, lapack_int *info );
+void LAPACK_cgtsv( lapack_int* n, lapack_int* nrhs, lapack_complex_float* dl,
+ lapack_complex_float* d, lapack_complex_float* du,
+ lapack_complex_float* b, lapack_int* ldb, lapack_int *info );
+void LAPACK_zgtsv( lapack_int* n, lapack_int* nrhs, lapack_complex_double* dl,
+ lapack_complex_double* d, lapack_complex_double* du,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_sgtsvx( char* fact, char* trans, lapack_int* n, lapack_int* nrhs,
+ const float* dl, const float* d, const float* du,
+ float* dlf, float* df, float* duf, float* du2,
+ lapack_int* ipiv, const float* b, lapack_int* ldb, float* x,
+ lapack_int* ldx, float* rcond, float* ferr, float* berr,
+ float* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_dgtsvx( char* fact, char* trans, lapack_int* n, lapack_int* nrhs,
+ const double* dl, const double* d, const double* du,
+ double* dlf, double* df, double* duf, double* du2,
+ lapack_int* ipiv, const double* b, lapack_int* ldb,
+ double* x, lapack_int* ldx, double* rcond, double* ferr,
+ double* berr, double* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_cgtsvx( char* fact, char* trans, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* dl,
+ const lapack_complex_float* d,
+ const lapack_complex_float* du, lapack_complex_float* dlf,
+ lapack_complex_float* df, lapack_complex_float* duf,
+ lapack_complex_float* du2, lapack_int* ipiv,
+ const lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* rcond,
+ float* ferr, float* berr, lapack_complex_float* work,
+ float* rwork, lapack_int *info );
+void LAPACK_zgtsvx( char* fact, char* trans, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* dl,
+ const lapack_complex_double* d,
+ const lapack_complex_double* du, lapack_complex_double* dlf,
+ lapack_complex_double* df, lapack_complex_double* duf,
+ lapack_complex_double* du2, lapack_int* ipiv,
+ const lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* rcond,
+ double* ferr, double* berr, lapack_complex_double* work,
+ double* rwork, lapack_int *info );
+void LAPACK_sposv( char* uplo, lapack_int* n, lapack_int* nrhs, float* a,
+ lapack_int* lda, float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_dposv( char* uplo, lapack_int* n, lapack_int* nrhs, double* a,
+ lapack_int* lda, double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_cposv( char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb, lapack_int *info );
+void LAPACK_zposv( char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_dsposv( char* uplo, lapack_int* n, lapack_int* nrhs, double* a,
+ lapack_int* lda, double* b, lapack_int* ldb, double* x,
+ lapack_int* ldx, double* work, float* swork,
+ lapack_int* iter, lapack_int *info );
+void LAPACK_zcposv( char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx,
+ lapack_complex_double* work, lapack_complex_float* swork,
+ double* rwork, lapack_int* iter, lapack_int *info );
+void LAPACK_sposvx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ float* a, lapack_int* lda, float* af, lapack_int* ldaf,
+ char* equed, float* s, float* b, lapack_int* ldb, float* x,
+ lapack_int* ldx, float* rcond, float* ferr, float* berr,
+ float* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_dposvx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ double* a, lapack_int* lda, double* af, lapack_int* ldaf,
+ char* equed, double* s, double* b, lapack_int* ldb,
+ double* x, lapack_int* ldx, double* rcond, double* ferr,
+ double* berr, double* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_cposvx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* af, lapack_int* ldaf, char* equed,
+ float* s, lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* rcond,
+ float* ferr, float* berr, lapack_complex_float* work,
+ float* rwork, lapack_int *info );
+void LAPACK_zposvx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* af, lapack_int* ldaf, char* equed,
+ double* s, lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* rcond,
+ double* ferr, double* berr, lapack_complex_double* work,
+ double* rwork, lapack_int *info );
+void LAPACK_dposvxx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ double* a, lapack_int* lda, double* af, lapack_int* ldaf,
+ char* equed, double* s, double* b, lapack_int* ldb,
+ double* x, lapack_int* ldx, double* rcond, double* rpvgrw,
+ double* berr, lapack_int* n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int* nparams, double* params, double* work,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_sposvxx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ float* a, lapack_int* lda, float* af, lapack_int* ldaf,
+ char* equed, float* s, float* b, lapack_int* ldb, float* x,
+ lapack_int* ldx, float* rcond, float* rpvgrw, float* berr,
+ lapack_int* n_err_bnds, float* err_bnds_norm,
+ float* err_bnds_comp, lapack_int* nparams, float* params,
+ float* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_zposvxx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* af, lapack_int* ldaf, char* equed,
+ double* s, lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* rcond,
+ double* rpvgrw, double* berr, lapack_int* n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int* nparams, double* params,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_cposvxx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* af, lapack_int* ldaf, char* equed,
+ float* s, lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* rcond,
+ float* rpvgrw, float* berr, lapack_int* n_err_bnds,
+ float* err_bnds_norm, float* err_bnds_comp,
+ lapack_int* nparams, float* params,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_sppsv( char* uplo, lapack_int* n, lapack_int* nrhs, float* ap,
+ float* b, lapack_int* ldb, lapack_int *info );
+void LAPACK_dppsv( char* uplo, lapack_int* n, lapack_int* nrhs, double* ap,
+ double* b, lapack_int* ldb, lapack_int *info );
+void LAPACK_cppsv( char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_float* ap, lapack_complex_float* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_zppsv( char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_double* ap, lapack_complex_double* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_sppsvx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ float* ap, float* afp, char* equed, float* s, float* b,
+ lapack_int* ldb, float* x, lapack_int* ldx, float* rcond,
+ float* ferr, float* berr, float* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dppsvx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ double* ap, double* afp, char* equed, double* s, double* b,
+ lapack_int* ldb, double* x, lapack_int* ldx, double* rcond,
+ double* ferr, double* berr, double* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_cppsvx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_float* ap, lapack_complex_float* afp,
+ char* equed, float* s, lapack_complex_float* b,
+ lapack_int* ldb, lapack_complex_float* x, lapack_int* ldx,
+ float* rcond, float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_zppsvx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_double* ap, lapack_complex_double* afp,
+ char* equed, double* s, lapack_complex_double* b,
+ lapack_int* ldb, lapack_complex_double* x, lapack_int* ldx,
+ double* rcond, double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_spbsv( char* uplo, lapack_int* n, lapack_int* kd, lapack_int* nrhs,
+ float* ab, lapack_int* ldab, float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_dpbsv( char* uplo, lapack_int* n, lapack_int* kd, lapack_int* nrhs,
+ double* ab, lapack_int* ldab, double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_cpbsv( char* uplo, lapack_int* n, lapack_int* kd, lapack_int* nrhs,
+ lapack_complex_float* ab, lapack_int* ldab,
+ lapack_complex_float* b, lapack_int* ldb, lapack_int *info );
+void LAPACK_zpbsv( char* uplo, lapack_int* n, lapack_int* kd, lapack_int* nrhs,
+ lapack_complex_double* ab, lapack_int* ldab,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_spbsvx( char* fact, char* uplo, lapack_int* n, lapack_int* kd,
+ lapack_int* nrhs, float* ab, lapack_int* ldab, float* afb,
+ lapack_int* ldafb, char* equed, float* s, float* b,
+ lapack_int* ldb, float* x, lapack_int* ldx, float* rcond,
+ float* ferr, float* berr, float* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dpbsvx( char* fact, char* uplo, lapack_int* n, lapack_int* kd,
+ lapack_int* nrhs, double* ab, lapack_int* ldab, double* afb,
+ lapack_int* ldafb, char* equed, double* s, double* b,
+ lapack_int* ldb, double* x, lapack_int* ldx, double* rcond,
+ double* ferr, double* berr, double* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_cpbsvx( char* fact, char* uplo, lapack_int* n, lapack_int* kd,
+ lapack_int* nrhs, lapack_complex_float* ab,
+ lapack_int* ldab, lapack_complex_float* afb,
+ lapack_int* ldafb, char* equed, float* s,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* rcond,
+ float* ferr, float* berr, lapack_complex_float* work,
+ float* rwork, lapack_int *info );
+void LAPACK_zpbsvx( char* fact, char* uplo, lapack_int* n, lapack_int* kd,
+ lapack_int* nrhs, lapack_complex_double* ab,
+ lapack_int* ldab, lapack_complex_double* afb,
+ lapack_int* ldafb, char* equed, double* s,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* rcond,
+ double* ferr, double* berr, lapack_complex_double* work,
+ double* rwork, lapack_int *info );
+void LAPACK_sptsv( lapack_int* n, lapack_int* nrhs, float* d, float* e,
+ float* b, lapack_int* ldb, lapack_int *info );
+void LAPACK_dptsv( lapack_int* n, lapack_int* nrhs, double* d, double* e,
+ double* b, lapack_int* ldb, lapack_int *info );
+void LAPACK_cptsv( lapack_int* n, lapack_int* nrhs, float* d,
+ lapack_complex_float* e, lapack_complex_float* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_zptsv( lapack_int* n, lapack_int* nrhs, double* d,
+ lapack_complex_double* e, lapack_complex_double* b,
+ lapack_int* ldb, lapack_int *info );
+void LAPACK_sptsvx( char* fact, lapack_int* n, lapack_int* nrhs, const float* d,
+ const float* e, float* df, float* ef, const float* b,
+ lapack_int* ldb, float* x, lapack_int* ldx, float* rcond,
+ float* ferr, float* berr, float* work, lapack_int *info );
+void LAPACK_dptsvx( char* fact, lapack_int* n, lapack_int* nrhs,
+ const double* d, const double* e, double* df, double* ef,
+ const double* b, lapack_int* ldb, double* x,
+ lapack_int* ldx, double* rcond, double* ferr, double* berr,
+ double* work, lapack_int *info );
+void LAPACK_cptsvx( char* fact, lapack_int* n, lapack_int* nrhs, const float* d,
+ const lapack_complex_float* e, float* df,
+ lapack_complex_float* ef, const lapack_complex_float* b,
+ lapack_int* ldb, lapack_complex_float* x, lapack_int* ldx,
+ float* rcond, float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_zptsvx( char* fact, lapack_int* n, lapack_int* nrhs,
+ const double* d, const lapack_complex_double* e, double* df,
+ lapack_complex_double* ef, const lapack_complex_double* b,
+ lapack_int* ldb, lapack_complex_double* x, lapack_int* ldx,
+ double* rcond, double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_ssysv( char* uplo, lapack_int* n, lapack_int* nrhs, float* a,
+ lapack_int* lda, lapack_int* ipiv, float* b, lapack_int* ldb,
+ float* work, lapack_int* lwork, lapack_int *info );
+void LAPACK_dsysv( char* uplo, lapack_int* n, lapack_int* nrhs, double* a,
+ lapack_int* lda, lapack_int* ipiv, double* b,
+ lapack_int* ldb, double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_csysv( char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_float* a, lapack_int* lda, lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zsysv( char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_double* a, lapack_int* lda, lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_ssysvx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ const float* a, lapack_int* lda, float* af,
+ lapack_int* ldaf, lapack_int* ipiv, const float* b,
+ lapack_int* ldb, float* x, lapack_int* ldx, float* rcond,
+ float* ferr, float* berr, float* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_dsysvx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ const double* a, lapack_int* lda, double* af,
+ lapack_int* ldaf, lapack_int* ipiv, const double* b,
+ lapack_int* ldb, double* x, lapack_int* ldx, double* rcond,
+ double* ferr, double* berr, double* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_csysvx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* af, lapack_int* ldaf,
+ lapack_int* ipiv, const lapack_complex_float* b,
+ lapack_int* ldb, lapack_complex_float* x, lapack_int* ldx,
+ float* rcond, float* ferr, float* berr,
+ lapack_complex_float* work, lapack_int* lwork, float* rwork,
+ lapack_int *info );
+void LAPACK_zsysvx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* af, lapack_int* ldaf,
+ lapack_int* ipiv, const lapack_complex_double* b,
+ lapack_int* ldb, lapack_complex_double* x, lapack_int* ldx,
+ double* rcond, double* ferr, double* berr,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_int *info );
+void LAPACK_dsysvxx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ double* a, lapack_int* lda, double* af, lapack_int* ldaf,
+ lapack_int* ipiv, char* equed, double* s, double* b,
+ lapack_int* ldb, double* x, lapack_int* ldx, double* rcond,
+ double* rpvgrw, double* berr, lapack_int* n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int* nparams, double* params, double* work,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_ssysvxx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ float* a, lapack_int* lda, float* af, lapack_int* ldaf,
+ lapack_int* ipiv, char* equed, float* s, float* b,
+ lapack_int* ldb, float* x, lapack_int* ldx, float* rcond,
+ float* rpvgrw, float* berr, lapack_int* n_err_bnds,
+ float* err_bnds_norm, float* err_bnds_comp,
+ lapack_int* nparams, float* params, float* work,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_zsysvxx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* af, lapack_int* ldaf,
+ lapack_int* ipiv, char* equed, double* s,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* rcond,
+ double* rpvgrw, double* berr, lapack_int* n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int* nparams, double* params,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_csysvxx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* af, lapack_int* ldaf,
+ lapack_int* ipiv, char* equed, float* s,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* rcond,
+ float* rpvgrw, float* berr, lapack_int* n_err_bnds,
+ float* err_bnds_norm, float* err_bnds_comp,
+ lapack_int* nparams, float* params,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_chesv( char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_float* a, lapack_int* lda, lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zhesv( char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_double* a, lapack_int* lda, lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_chesvx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* af, lapack_int* ldaf,
+ lapack_int* ipiv, const lapack_complex_float* b,
+ lapack_int* ldb, lapack_complex_float* x, lapack_int* ldx,
+ float* rcond, float* ferr, float* berr,
+ lapack_complex_float* work, lapack_int* lwork, float* rwork,
+ lapack_int *info );
+void LAPACK_zhesvx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* af, lapack_int* ldaf,
+ lapack_int* ipiv, const lapack_complex_double* b,
+ lapack_int* ldb, lapack_complex_double* x, lapack_int* ldx,
+ double* rcond, double* ferr, double* berr,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_int *info );
+void LAPACK_zhesvxx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* af, lapack_int* ldaf,
+ lapack_int* ipiv, char* equed, double* s,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* x, lapack_int* ldx, double* rcond,
+ double* rpvgrw, double* berr, lapack_int* n_err_bnds,
+ double* err_bnds_norm, double* err_bnds_comp,
+ lapack_int* nparams, double* params,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_chesvxx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* af, lapack_int* ldaf,
+ lapack_int* ipiv, char* equed, float* s,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* x, lapack_int* ldx, float* rcond,
+ float* rpvgrw, float* berr, lapack_int* n_err_bnds,
+ float* err_bnds_norm, float* err_bnds_comp,
+ lapack_int* nparams, float* params,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_sspsv( char* uplo, lapack_int* n, lapack_int* nrhs, float* ap,
+ lapack_int* ipiv, float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_dspsv( char* uplo, lapack_int* n, lapack_int* nrhs, double* ap,
+ lapack_int* ipiv, double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_cspsv( char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_float* ap, lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int* ldb, lapack_int *info );
+void LAPACK_zspsv( char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_double* ap, lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_sspsvx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ const float* ap, float* afp, lapack_int* ipiv,
+ const float* b, lapack_int* ldb, float* x, lapack_int* ldx,
+ float* rcond, float* ferr, float* berr, float* work,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_dspsvx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ const double* ap, double* afp, lapack_int* ipiv,
+ const double* b, lapack_int* ldb, double* x,
+ lapack_int* ldx, double* rcond, double* ferr, double* berr,
+ double* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_cspsvx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* ap, lapack_complex_float* afp,
+ lapack_int* ipiv, const lapack_complex_float* b,
+ lapack_int* ldb, lapack_complex_float* x, lapack_int* ldx,
+ float* rcond, float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_zspsvx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* ap, lapack_complex_double* afp,
+ lapack_int* ipiv, const lapack_complex_double* b,
+ lapack_int* ldb, lapack_complex_double* x, lapack_int* ldx,
+ double* rcond, double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_chpsv( char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_float* ap, lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int* ldb, lapack_int *info );
+void LAPACK_zhpsv( char* uplo, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_double* ap, lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_chpsvx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_float* ap, lapack_complex_float* afp,
+ lapack_int* ipiv, const lapack_complex_float* b,
+ lapack_int* ldb, lapack_complex_float* x, lapack_int* ldx,
+ float* rcond, float* ferr, float* berr,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_zhpsvx( char* fact, char* uplo, lapack_int* n, lapack_int* nrhs,
+ const lapack_complex_double* ap, lapack_complex_double* afp,
+ lapack_int* ipiv, const lapack_complex_double* b,
+ lapack_int* ldb, lapack_complex_double* x, lapack_int* ldx,
+ double* rcond, double* ferr, double* berr,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_sgeqrf( lapack_int* m, lapack_int* n, float* a, lapack_int* lda,
+ float* tau, float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_dgeqrf( lapack_int* m, lapack_int* n, double* a, lapack_int* lda,
+ double* tau, double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_cgeqrf( lapack_int* m, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zgeqrf( lapack_int* m, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_sgeqpf( lapack_int* m, lapack_int* n, float* a, lapack_int* lda,
+ lapack_int* jpvt, float* tau, float* work,
+ lapack_int *info );
+void LAPACK_dgeqpf( lapack_int* m, lapack_int* n, double* a, lapack_int* lda,
+ lapack_int* jpvt, double* tau, double* work,
+ lapack_int *info );
+void LAPACK_cgeqpf( lapack_int* m, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_int* jpvt,
+ lapack_complex_float* tau, lapack_complex_float* work,
+ float* rwork, lapack_int *info );
+void LAPACK_zgeqpf( lapack_int* m, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_int* jpvt,
+ lapack_complex_double* tau, lapack_complex_double* work,
+ double* rwork, lapack_int *info );
+void LAPACK_sgeqp3( lapack_int* m, lapack_int* n, float* a, lapack_int* lda,
+ lapack_int* jpvt, float* tau, float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_dgeqp3( lapack_int* m, lapack_int* n, double* a, lapack_int* lda,
+ lapack_int* jpvt, double* tau, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_cgeqp3( lapack_int* m, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_int* jpvt,
+ lapack_complex_float* tau, lapack_complex_float* work,
+ lapack_int* lwork, float* rwork, lapack_int *info );
+void LAPACK_zgeqp3( lapack_int* m, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_int* jpvt,
+ lapack_complex_double* tau, lapack_complex_double* work,
+ lapack_int* lwork, double* rwork, lapack_int *info );
+void LAPACK_sorgqr( lapack_int* m, lapack_int* n, lapack_int* k, float* a,
+ lapack_int* lda, const float* tau, float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_dorgqr( lapack_int* m, lapack_int* n, lapack_int* k, double* a,
+ lapack_int* lda, const double* tau, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_sormqr( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, const float* a, lapack_int* lda,
+ const float* tau, float* c, lapack_int* ldc, float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_dormqr( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, const double* a, lapack_int* lda,
+ const double* tau, double* c, lapack_int* ldc, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_cungqr( lapack_int* m, lapack_int* n, lapack_int* k,
+ lapack_complex_float* a, lapack_int* lda,
+ const lapack_complex_float* tau, lapack_complex_float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_zungqr( lapack_int* m, lapack_int* n, lapack_int* k,
+ lapack_complex_double* a, lapack_int* lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_cunmqr( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, const lapack_complex_float* a,
+ lapack_int* lda, const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int* ldc,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zunmqr( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, const lapack_complex_double* a,
+ lapack_int* lda, const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int* ldc,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_sgelqf( lapack_int* m, lapack_int* n, float* a, lapack_int* lda,
+ float* tau, float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_dgelqf( lapack_int* m, lapack_int* n, double* a, lapack_int* lda,
+ double* tau, double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_cgelqf( lapack_int* m, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zgelqf( lapack_int* m, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_sorglq( lapack_int* m, lapack_int* n, lapack_int* k, float* a,
+ lapack_int* lda, const float* tau, float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_dorglq( lapack_int* m, lapack_int* n, lapack_int* k, double* a,
+ lapack_int* lda, const double* tau, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_sormlq( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, const float* a, lapack_int* lda,
+ const float* tau, float* c, lapack_int* ldc, float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_dormlq( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, const double* a, lapack_int* lda,
+ const double* tau, double* c, lapack_int* ldc, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_cunglq( lapack_int* m, lapack_int* n, lapack_int* k,
+ lapack_complex_float* a, lapack_int* lda,
+ const lapack_complex_float* tau, lapack_complex_float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_zunglq( lapack_int* m, lapack_int* n, lapack_int* k,
+ lapack_complex_double* a, lapack_int* lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_cunmlq( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, const lapack_complex_float* a,
+ lapack_int* lda, const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int* ldc,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zunmlq( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, const lapack_complex_double* a,
+ lapack_int* lda, const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int* ldc,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_sgeqlf( lapack_int* m, lapack_int* n, float* a, lapack_int* lda,
+ float* tau, float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_dgeqlf( lapack_int* m, lapack_int* n, double* a, lapack_int* lda,
+ double* tau, double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_cgeqlf( lapack_int* m, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zgeqlf( lapack_int* m, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_sorgql( lapack_int* m, lapack_int* n, lapack_int* k, float* a,
+ lapack_int* lda, const float* tau, float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_dorgql( lapack_int* m, lapack_int* n, lapack_int* k, double* a,
+ lapack_int* lda, const double* tau, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_cungql( lapack_int* m, lapack_int* n, lapack_int* k,
+ lapack_complex_float* a, lapack_int* lda,
+ const lapack_complex_float* tau, lapack_complex_float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_zungql( lapack_int* m, lapack_int* n, lapack_int* k,
+ lapack_complex_double* a, lapack_int* lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_sormql( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, const float* a, lapack_int* lda,
+ const float* tau, float* c, lapack_int* ldc, float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_dormql( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, const double* a, lapack_int* lda,
+ const double* tau, double* c, lapack_int* ldc, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_cunmql( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, const lapack_complex_float* a,
+ lapack_int* lda, const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int* ldc,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zunmql( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, const lapack_complex_double* a,
+ lapack_int* lda, const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int* ldc,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_sgerqf( lapack_int* m, lapack_int* n, float* a, lapack_int* lda,
+ float* tau, float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_dgerqf( lapack_int* m, lapack_int* n, double* a, lapack_int* lda,
+ double* tau, double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_cgerqf( lapack_int* m, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zgerqf( lapack_int* m, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_sorgrq( lapack_int* m, lapack_int* n, lapack_int* k, float* a,
+ lapack_int* lda, const float* tau, float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_dorgrq( lapack_int* m, lapack_int* n, lapack_int* k, double* a,
+ lapack_int* lda, const double* tau, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_cungrq( lapack_int* m, lapack_int* n, lapack_int* k,
+ lapack_complex_float* a, lapack_int* lda,
+ const lapack_complex_float* tau, lapack_complex_float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_zungrq( lapack_int* m, lapack_int* n, lapack_int* k,
+ lapack_complex_double* a, lapack_int* lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_sormrq( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, const float* a, lapack_int* lda,
+ const float* tau, float* c, lapack_int* ldc, float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_dormrq( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, const double* a, lapack_int* lda,
+ const double* tau, double* c, lapack_int* ldc, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_cunmrq( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, const lapack_complex_float* a,
+ lapack_int* lda, const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int* ldc,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zunmrq( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, const lapack_complex_double* a,
+ lapack_int* lda, const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int* ldc,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_stzrzf( lapack_int* m, lapack_int* n, float* a, lapack_int* lda,
+ float* tau, float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_dtzrzf( lapack_int* m, lapack_int* n, double* a, lapack_int* lda,
+ double* tau, double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_ctzrzf( lapack_int* m, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_ztzrzf( lapack_int* m, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_sormrz( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, lapack_int* l, const float* a,
+ lapack_int* lda, const float* tau, float* c,
+ lapack_int* ldc, float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_dormrz( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, lapack_int* l, const double* a,
+ lapack_int* lda, const double* tau, double* c,
+ lapack_int* ldc, double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_cunmrz( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, lapack_int* l, const lapack_complex_float* a,
+ lapack_int* lda, const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int* ldc,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zunmrz( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, lapack_int* l,
+ const lapack_complex_double* a, lapack_int* lda,
+ const lapack_complex_double* tau, lapack_complex_double* c,
+ lapack_int* ldc, lapack_complex_double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_sggqrf( lapack_int* n, lapack_int* m, lapack_int* p, float* a,
+ lapack_int* lda, float* taua, float* b, lapack_int* ldb,
+ float* taub, float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_dggqrf( lapack_int* n, lapack_int* m, lapack_int* p, double* a,
+ lapack_int* lda, double* taua, double* b, lapack_int* ldb,
+ double* taub, double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_cggqrf( lapack_int* n, lapack_int* m, lapack_int* p,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* taua, lapack_complex_float* b,
+ lapack_int* ldb, lapack_complex_float* taub,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zggqrf( lapack_int* n, lapack_int* m, lapack_int* p,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* taua, lapack_complex_double* b,
+ lapack_int* ldb, lapack_complex_double* taub,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_sggrqf( lapack_int* m, lapack_int* p, lapack_int* n, float* a,
+ lapack_int* lda, float* taua, float* b, lapack_int* ldb,
+ float* taub, float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_dggrqf( lapack_int* m, lapack_int* p, lapack_int* n, double* a,
+ lapack_int* lda, double* taua, double* b, lapack_int* ldb,
+ double* taub, double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_cggrqf( lapack_int* m, lapack_int* p, lapack_int* n,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* taua, lapack_complex_float* b,
+ lapack_int* ldb, lapack_complex_float* taub,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zggrqf( lapack_int* m, lapack_int* p, lapack_int* n,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* taua, lapack_complex_double* b,
+ lapack_int* ldb, lapack_complex_double* taub,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_sgebrd( lapack_int* m, lapack_int* n, float* a, lapack_int* lda,
+ float* d, float* e, float* tauq, float* taup, float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_dgebrd( lapack_int* m, lapack_int* n, double* a, lapack_int* lda,
+ double* d, double* e, double* tauq, double* taup,
+ double* work, lapack_int* lwork, lapack_int *info );
+void LAPACK_cgebrd( lapack_int* m, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, float* d, float* e,
+ lapack_complex_float* tauq, lapack_complex_float* taup,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zgebrd( lapack_int* m, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, double* d, double* e,
+ lapack_complex_double* tauq, lapack_complex_double* taup,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_sgbbrd( char* vect, lapack_int* m, lapack_int* n, lapack_int* ncc,
+ lapack_int* kl, lapack_int* ku, float* ab, lapack_int* ldab,
+ float* d, float* e, float* q, lapack_int* ldq, float* pt,
+ lapack_int* ldpt, float* c, lapack_int* ldc, float* work,
+ lapack_int *info );
+void LAPACK_dgbbrd( char* vect, lapack_int* m, lapack_int* n, lapack_int* ncc,
+ lapack_int* kl, lapack_int* ku, double* ab,
+ lapack_int* ldab, double* d, double* e, double* q,
+ lapack_int* ldq, double* pt, lapack_int* ldpt, double* c,
+ lapack_int* ldc, double* work, lapack_int *info );
+void LAPACK_cgbbrd( char* vect, lapack_int* m, lapack_int* n, lapack_int* ncc,
+ lapack_int* kl, lapack_int* ku, lapack_complex_float* ab,
+ lapack_int* ldab, float* d, float* e,
+ lapack_complex_float* q, lapack_int* ldq,
+ lapack_complex_float* pt, lapack_int* ldpt,
+ lapack_complex_float* c, lapack_int* ldc,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_zgbbrd( char* vect, lapack_int* m, lapack_int* n, lapack_int* ncc,
+ lapack_int* kl, lapack_int* ku, lapack_complex_double* ab,
+ lapack_int* ldab, double* d, double* e,
+ lapack_complex_double* q, lapack_int* ldq,
+ lapack_complex_double* pt, lapack_int* ldpt,
+ lapack_complex_double* c, lapack_int* ldc,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_sorgbr( char* vect, lapack_int* m, lapack_int* n, lapack_int* k,
+ float* a, lapack_int* lda, const float* tau, float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_dorgbr( char* vect, lapack_int* m, lapack_int* n, lapack_int* k,
+ double* a, lapack_int* lda, const double* tau, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_sormbr( char* vect, char* side, char* trans, lapack_int* m,
+ lapack_int* n, lapack_int* k, const float* a,
+ lapack_int* lda, const float* tau, float* c,
+ lapack_int* ldc, float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_dormbr( char* vect, char* side, char* trans, lapack_int* m,
+ lapack_int* n, lapack_int* k, const double* a,
+ lapack_int* lda, const double* tau, double* c,
+ lapack_int* ldc, double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_cungbr( char* vect, lapack_int* m, lapack_int* n, lapack_int* k,
+ lapack_complex_float* a, lapack_int* lda,
+ const lapack_complex_float* tau, lapack_complex_float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_zungbr( char* vect, lapack_int* m, lapack_int* n, lapack_int* k,
+ lapack_complex_double* a, lapack_int* lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_cunmbr( char* vect, char* side, char* trans, lapack_int* m,
+ lapack_int* n, lapack_int* k, const lapack_complex_float* a,
+ lapack_int* lda, const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int* ldc,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zunmbr( char* vect, char* side, char* trans, lapack_int* m,
+ lapack_int* n, lapack_int* k,
+ const lapack_complex_double* a, lapack_int* lda,
+ const lapack_complex_double* tau, lapack_complex_double* c,
+ lapack_int* ldc, lapack_complex_double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_sbdsqr( char* uplo, lapack_int* n, lapack_int* ncvt,
+ lapack_int* nru, lapack_int* ncc, float* d, float* e,
+ float* vt, lapack_int* ldvt, float* u, lapack_int* ldu,
+ float* c, lapack_int* ldc, float* work, lapack_int *info );
+void LAPACK_dbdsqr( char* uplo, lapack_int* n, lapack_int* ncvt,
+ lapack_int* nru, lapack_int* ncc, double* d, double* e,
+ double* vt, lapack_int* ldvt, double* u, lapack_int* ldu,
+ double* c, lapack_int* ldc, double* work,
+ lapack_int *info );
+void LAPACK_cbdsqr( char* uplo, lapack_int* n, lapack_int* ncvt,
+ lapack_int* nru, lapack_int* ncc, float* d, float* e,
+ lapack_complex_float* vt, lapack_int* ldvt,
+ lapack_complex_float* u, lapack_int* ldu,
+ lapack_complex_float* c, lapack_int* ldc, float* work,
+ lapack_int *info );
+void LAPACK_zbdsqr( char* uplo, lapack_int* n, lapack_int* ncvt,
+ lapack_int* nru, lapack_int* ncc, double* d, double* e,
+ lapack_complex_double* vt, lapack_int* ldvt,
+ lapack_complex_double* u, lapack_int* ldu,
+ lapack_complex_double* c, lapack_int* ldc, double* work,
+ lapack_int *info );
+void LAPACK_sbdsdc( char* uplo, char* compq, lapack_int* n, float* d, float* e,
+ float* u, lapack_int* ldu, float* vt, lapack_int* ldvt,
+ float* q, lapack_int* iq, float* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dbdsdc( char* uplo, char* compq, lapack_int* n, double* d,
+ double* e, double* u, lapack_int* ldu, double* vt,
+ lapack_int* ldvt, double* q, lapack_int* iq, double* work,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_ssytrd( char* uplo, lapack_int* n, float* a, lapack_int* lda,
+ float* d, float* e, float* tau, float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_dsytrd( char* uplo, lapack_int* n, double* a, lapack_int* lda,
+ double* d, double* e, double* tau, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_sorgtr( char* uplo, lapack_int* n, float* a, lapack_int* lda,
+ const float* tau, float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_dorgtr( char* uplo, lapack_int* n, double* a, lapack_int* lda,
+ const double* tau, double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_sormtr( char* side, char* uplo, char* trans, lapack_int* m,
+ lapack_int* n, const float* a, lapack_int* lda,
+ const float* tau, float* c, lapack_int* ldc, float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_dormtr( char* side, char* uplo, char* trans, lapack_int* m,
+ lapack_int* n, const double* a, lapack_int* lda,
+ const double* tau, double* c, lapack_int* ldc, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_chetrd( char* uplo, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, float* d, float* e,
+ lapack_complex_float* tau, lapack_complex_float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_zhetrd( char* uplo, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, double* d, double* e,
+ lapack_complex_double* tau, lapack_complex_double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_cungtr( char* uplo, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, const lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zungtr( char* uplo, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, const lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_cunmtr( char* side, char* uplo, char* trans, lapack_int* m,
+ lapack_int* n, const lapack_complex_float* a,
+ lapack_int* lda, const lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int* ldc,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zunmtr( char* side, char* uplo, char* trans, lapack_int* m,
+ lapack_int* n, const lapack_complex_double* a,
+ lapack_int* lda, const lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int* ldc,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_ssptrd( char* uplo, lapack_int* n, float* ap, float* d, float* e,
+ float* tau, lapack_int *info );
+void LAPACK_dsptrd( char* uplo, lapack_int* n, double* ap, double* d, double* e,
+ double* tau, lapack_int *info );
+void LAPACK_sopgtr( char* uplo, lapack_int* n, const float* ap,
+ const float* tau, float* q, lapack_int* ldq, float* work,
+ lapack_int *info );
+void LAPACK_dopgtr( char* uplo, lapack_int* n, const double* ap,
+ const double* tau, double* q, lapack_int* ldq, double* work,
+ lapack_int *info );
+void LAPACK_sopmtr( char* side, char* uplo, char* trans, lapack_int* m,
+ lapack_int* n, const float* ap, const float* tau, float* c,
+ lapack_int* ldc, float* work, lapack_int *info );
+void LAPACK_dopmtr( char* side, char* uplo, char* trans, lapack_int* m,
+ lapack_int* n, const double* ap, const double* tau,
+ double* c, lapack_int* ldc, double* work,
+ lapack_int *info );
+void LAPACK_chptrd( char* uplo, lapack_int* n, lapack_complex_float* ap,
+ float* d, float* e, lapack_complex_float* tau,
+ lapack_int *info );
+void LAPACK_zhptrd( char* uplo, lapack_int* n, lapack_complex_double* ap,
+ double* d, double* e, lapack_complex_double* tau,
+ lapack_int *info );
+void LAPACK_cupgtr( char* uplo, lapack_int* n, const lapack_complex_float* ap,
+ const lapack_complex_float* tau, lapack_complex_float* q,
+ lapack_int* ldq, lapack_complex_float* work,
+ lapack_int *info );
+void LAPACK_zupgtr( char* uplo, lapack_int* n, const lapack_complex_double* ap,
+ const lapack_complex_double* tau, lapack_complex_double* q,
+ lapack_int* ldq, lapack_complex_double* work,
+ lapack_int *info );
+void LAPACK_cupmtr( char* side, char* uplo, char* trans, lapack_int* m,
+ lapack_int* n, const lapack_complex_float* ap,
+ const lapack_complex_float* tau, lapack_complex_float* c,
+ lapack_int* ldc, lapack_complex_float* work,
+ lapack_int *info );
+void LAPACK_zupmtr( char* side, char* uplo, char* trans, lapack_int* m,
+ lapack_int* n, const lapack_complex_double* ap,
+ const lapack_complex_double* tau, lapack_complex_double* c,
+ lapack_int* ldc, lapack_complex_double* work,
+ lapack_int *info );
+void LAPACK_ssbtrd( char* vect, char* uplo, lapack_int* n, lapack_int* kd,
+ float* ab, lapack_int* ldab, float* d, float* e, float* q,
+ lapack_int* ldq, float* work, lapack_int *info );
+void LAPACK_dsbtrd( char* vect, char* uplo, lapack_int* n, lapack_int* kd,
+ double* ab, lapack_int* ldab, double* d, double* e,
+ double* q, lapack_int* ldq, double* work,
+ lapack_int *info );
+void LAPACK_chbtrd( char* vect, char* uplo, lapack_int* n, lapack_int* kd,
+ lapack_complex_float* ab, lapack_int* ldab, float* d,
+ float* e, lapack_complex_float* q, lapack_int* ldq,
+ lapack_complex_float* work, lapack_int *info );
+void LAPACK_zhbtrd( char* vect, char* uplo, lapack_int* n, lapack_int* kd,
+ lapack_complex_double* ab, lapack_int* ldab, double* d,
+ double* e, lapack_complex_double* q, lapack_int* ldq,
+ lapack_complex_double* work, lapack_int *info );
+void LAPACK_ssterf( lapack_int* n, float* d, float* e, lapack_int *info );
+void LAPACK_dsterf( lapack_int* n, double* d, double* e, lapack_int *info );
+void LAPACK_ssteqr( char* compz, lapack_int* n, float* d, float* e, float* z,
+ lapack_int* ldz, float* work, lapack_int *info );
+void LAPACK_dsteqr( char* compz, lapack_int* n, double* d, double* e, double* z,
+ lapack_int* ldz, double* work, lapack_int *info );
+void LAPACK_csteqr( char* compz, lapack_int* n, float* d, float* e,
+ lapack_complex_float* z, lapack_int* ldz, float* work,
+ lapack_int *info );
+void LAPACK_zsteqr( char* compz, lapack_int* n, double* d, double* e,
+ lapack_complex_double* z, lapack_int* ldz, double* work,
+ lapack_int *info );
+void LAPACK_sstemr( char* jobz, char* range, lapack_int* n, float* d, float* e,
+ float* vl, float* vu, lapack_int* il, lapack_int* iu,
+ lapack_int* m, float* w, float* z, lapack_int* ldz,
+ lapack_int* nzc, lapack_int* isuppz, lapack_logical* tryrac,
+ float* work, lapack_int* lwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_int *info );
+void LAPACK_dstemr( char* jobz, char* range, lapack_int* n, double* d,
+ double* e, double* vl, double* vu, lapack_int* il,
+ lapack_int* iu, lapack_int* m, double* w, double* z,
+ lapack_int* ldz, lapack_int* nzc, lapack_int* isuppz,
+ lapack_logical* tryrac, double* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_cstemr( char* jobz, char* range, lapack_int* n, float* d, float* e,
+ float* vl, float* vu, lapack_int* il, lapack_int* iu,
+ lapack_int* m, float* w, lapack_complex_float* z,
+ lapack_int* ldz, lapack_int* nzc, lapack_int* isuppz,
+ lapack_logical* tryrac, float* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_zstemr( char* jobz, char* range, lapack_int* n, double* d,
+ double* e, double* vl, double* vu, lapack_int* il,
+ lapack_int* iu, lapack_int* m, double* w,
+ lapack_complex_double* z, lapack_int* ldz, lapack_int* nzc,
+ lapack_int* isuppz, lapack_logical* tryrac, double* work,
+ lapack_int* lwork, lapack_int* iwork, lapack_int* liwork,
+ lapack_int *info );
+void LAPACK_sstedc( char* compz, lapack_int* n, float* d, float* e, float* z,
+ lapack_int* ldz, float* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_dstedc( char* compz, lapack_int* n, double* d, double* e, double* z,
+ lapack_int* ldz, double* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_cstedc( char* compz, lapack_int* n, float* d, float* e,
+ lapack_complex_float* z, lapack_int* ldz,
+ lapack_complex_float* work, lapack_int* lwork, float* rwork,
+ lapack_int* lrwork, lapack_int* iwork, lapack_int* liwork,
+ lapack_int *info );
+void LAPACK_zstedc( char* compz, lapack_int* n, double* d, double* e,
+ lapack_complex_double* z, lapack_int* ldz,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_int* lrwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_int *info );
+void LAPACK_sstegr( char* jobz, char* range, lapack_int* n, float* d, float* e,
+ float* vl, float* vu, lapack_int* il, lapack_int* iu,
+ float* abstol, lapack_int* m, float* w, float* z,
+ lapack_int* ldz, lapack_int* isuppz, float* work,
+ lapack_int* lwork, lapack_int* iwork, lapack_int* liwork,
+ lapack_int *info );
+void LAPACK_dstegr( char* jobz, char* range, lapack_int* n, double* d,
+ double* e, double* vl, double* vu, lapack_int* il,
+ lapack_int* iu, double* abstol, lapack_int* m, double* w,
+ double* z, lapack_int* ldz, lapack_int* isuppz,
+ double* work, lapack_int* lwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_int *info );
+void LAPACK_cstegr( char* jobz, char* range, lapack_int* n, float* d, float* e,
+ float* vl, float* vu, lapack_int* il, lapack_int* iu,
+ float* abstol, lapack_int* m, float* w,
+ lapack_complex_float* z, lapack_int* ldz,
+ lapack_int* isuppz, float* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_zstegr( char* jobz, char* range, lapack_int* n, double* d,
+ double* e, double* vl, double* vu, lapack_int* il,
+ lapack_int* iu, double* abstol, lapack_int* m, double* w,
+ lapack_complex_double* z, lapack_int* ldz,
+ lapack_int* isuppz, double* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_spteqr( char* compz, lapack_int* n, float* d, float* e, float* z,
+ lapack_int* ldz, float* work, lapack_int *info );
+void LAPACK_dpteqr( char* compz, lapack_int* n, double* d, double* e, double* z,
+ lapack_int* ldz, double* work, lapack_int *info );
+void LAPACK_cpteqr( char* compz, lapack_int* n, float* d, float* e,
+ lapack_complex_float* z, lapack_int* ldz, float* work,
+ lapack_int *info );
+void LAPACK_zpteqr( char* compz, lapack_int* n, double* d, double* e,
+ lapack_complex_double* z, lapack_int* ldz, double* work,
+ lapack_int *info );
+void LAPACK_sstebz( char* range, char* order, lapack_int* n, float* vl,
+ float* vu, lapack_int* il, lapack_int* iu, float* abstol,
+ const float* d, const float* e, lapack_int* m,
+ lapack_int* nsplit, float* w, lapack_int* iblock,
+ lapack_int* isplit, float* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dstebz( char* range, char* order, lapack_int* n, double* vl,
+ double* vu, lapack_int* il, lapack_int* iu, double* abstol,
+ const double* d, const double* e, lapack_int* m,
+ lapack_int* nsplit, double* w, lapack_int* iblock,
+ lapack_int* isplit, double* work, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_sstein( lapack_int* n, const float* d, const float* e,
+ lapack_int* m, const float* w, const lapack_int* iblock,
+ const lapack_int* isplit, float* z, lapack_int* ldz,
+ float* work, lapack_int* iwork, lapack_int* ifailv,
+ lapack_int *info );
+void LAPACK_dstein( lapack_int* n, const double* d, const double* e,
+ lapack_int* m, const double* w, const lapack_int* iblock,
+ const lapack_int* isplit, double* z, lapack_int* ldz,
+ double* work, lapack_int* iwork, lapack_int* ifailv,
+ lapack_int *info );
+void LAPACK_cstein( lapack_int* n, const float* d, const float* e,
+ lapack_int* m, const float* w, const lapack_int* iblock,
+ const lapack_int* isplit, lapack_complex_float* z,
+ lapack_int* ldz, float* work, lapack_int* iwork,
+ lapack_int* ifailv, lapack_int *info );
+void LAPACK_zstein( lapack_int* n, const double* d, const double* e,
+ lapack_int* m, const double* w, const lapack_int* iblock,
+ const lapack_int* isplit, lapack_complex_double* z,
+ lapack_int* ldz, double* work, lapack_int* iwork,
+ lapack_int* ifailv, lapack_int *info );
+void LAPACK_sdisna( char* job, lapack_int* m, lapack_int* n, const float* d,
+ float* sep, lapack_int *info );
+void LAPACK_ddisna( char* job, lapack_int* m, lapack_int* n, const double* d,
+ double* sep, lapack_int *info );
+void LAPACK_ssygst( lapack_int* itype, char* uplo, lapack_int* n, float* a,
+ lapack_int* lda, const float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_dsygst( lapack_int* itype, char* uplo, lapack_int* n, double* a,
+ lapack_int* lda, const double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_chegst( lapack_int* itype, char* uplo, lapack_int* n,
+ lapack_complex_float* a, lapack_int* lda,
+ const lapack_complex_float* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_zhegst( lapack_int* itype, char* uplo, lapack_int* n,
+ lapack_complex_double* a, lapack_int* lda,
+ const lapack_complex_double* b, lapack_int* ldb,
+ lapack_int *info );
+void LAPACK_sspgst( lapack_int* itype, char* uplo, lapack_int* n, float* ap,
+ const float* bp, lapack_int *info );
+void LAPACK_dspgst( lapack_int* itype, char* uplo, lapack_int* n, double* ap,
+ const double* bp, lapack_int *info );
+void LAPACK_chpgst( lapack_int* itype, char* uplo, lapack_int* n,
+ lapack_complex_float* ap, const lapack_complex_float* bp,
+ lapack_int *info );
+void LAPACK_zhpgst( lapack_int* itype, char* uplo, lapack_int* n,
+ lapack_complex_double* ap, const lapack_complex_double* bp,
+ lapack_int *info );
+void LAPACK_ssbgst( char* vect, char* uplo, lapack_int* n, lapack_int* ka,
+ lapack_int* kb, float* ab, lapack_int* ldab,
+ const float* bb, lapack_int* ldbb, float* x,
+ lapack_int* ldx, float* work, lapack_int *info );
+void LAPACK_dsbgst( char* vect, char* uplo, lapack_int* n, lapack_int* ka,
+ lapack_int* kb, double* ab, lapack_int* ldab,
+ const double* bb, lapack_int* ldbb, double* x,
+ lapack_int* ldx, double* work, lapack_int *info );
+void LAPACK_chbgst( char* vect, char* uplo, lapack_int* n, lapack_int* ka,
+ lapack_int* kb, lapack_complex_float* ab, lapack_int* ldab,
+ const lapack_complex_float* bb, lapack_int* ldbb,
+ lapack_complex_float* x, lapack_int* ldx,
+ lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_zhbgst( char* vect, char* uplo, lapack_int* n, lapack_int* ka,
+ lapack_int* kb, lapack_complex_double* ab, lapack_int* ldab,
+ const lapack_complex_double* bb, lapack_int* ldbb,
+ lapack_complex_double* x, lapack_int* ldx,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_spbstf( char* uplo, lapack_int* n, lapack_int* kb, float* bb,
+ lapack_int* ldbb, lapack_int *info );
+void LAPACK_dpbstf( char* uplo, lapack_int* n, lapack_int* kb, double* bb,
+ lapack_int* ldbb, lapack_int *info );
+void LAPACK_cpbstf( char* uplo, lapack_int* n, lapack_int* kb,
+ lapack_complex_float* bb, lapack_int* ldbb,
+ lapack_int *info );
+void LAPACK_zpbstf( char* uplo, lapack_int* n, lapack_int* kb,
+ lapack_complex_double* bb, lapack_int* ldbb,
+ lapack_int *info );
+void LAPACK_sgehrd( lapack_int* n, lapack_int* ilo, lapack_int* ihi, float* a,
+ lapack_int* lda, float* tau, float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_dgehrd( lapack_int* n, lapack_int* ilo, lapack_int* ihi, double* a,
+ lapack_int* lda, double* tau, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_cgehrd( lapack_int* n, lapack_int* ilo, lapack_int* ihi,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* tau, lapack_complex_float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_zgehrd( lapack_int* n, lapack_int* ilo, lapack_int* ihi,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* tau, lapack_complex_double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_sorghr( lapack_int* n, lapack_int* ilo, lapack_int* ihi, float* a,
+ lapack_int* lda, const float* tau, float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_dorghr( lapack_int* n, lapack_int* ilo, lapack_int* ihi, double* a,
+ lapack_int* lda, const double* tau, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_sormhr( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* ilo, lapack_int* ihi, const float* a,
+ lapack_int* lda, const float* tau, float* c,
+ lapack_int* ldc, float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_dormhr( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* ilo, lapack_int* ihi, const double* a,
+ lapack_int* lda, const double* tau, double* c,
+ lapack_int* ldc, double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_cunghr( lapack_int* n, lapack_int* ilo, lapack_int* ihi,
+ lapack_complex_float* a, lapack_int* lda,
+ const lapack_complex_float* tau, lapack_complex_float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_zunghr( lapack_int* n, lapack_int* ilo, lapack_int* ihi,
+ lapack_complex_double* a, lapack_int* lda,
+ const lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_cunmhr( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* ilo, lapack_int* ihi,
+ const lapack_complex_float* a, lapack_int* lda,
+ const lapack_complex_float* tau, lapack_complex_float* c,
+ lapack_int* ldc, lapack_complex_float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_zunmhr( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* ilo, lapack_int* ihi,
+ const lapack_complex_double* a, lapack_int* lda,
+ const lapack_complex_double* tau, lapack_complex_double* c,
+ lapack_int* ldc, lapack_complex_double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_sgebal( char* job, lapack_int* n, float* a, lapack_int* lda,
+ lapack_int* ilo, lapack_int* ihi, float* scale,
+ lapack_int *info );
+void LAPACK_dgebal( char* job, lapack_int* n, double* a, lapack_int* lda,
+ lapack_int* ilo, lapack_int* ihi, double* scale,
+ lapack_int *info );
+void LAPACK_cgebal( char* job, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_int* ilo, lapack_int* ihi,
+ float* scale, lapack_int *info );
+void LAPACK_zgebal( char* job, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_int* ilo, lapack_int* ihi,
+ double* scale, lapack_int *info );
+void LAPACK_sgebak( char* job, char* side, lapack_int* n, lapack_int* ilo,
+ lapack_int* ihi, const float* scale, lapack_int* m,
+ float* v, lapack_int* ldv, lapack_int *info );
+void LAPACK_dgebak( char* job, char* side, lapack_int* n, lapack_int* ilo,
+ lapack_int* ihi, const double* scale, lapack_int* m,
+ double* v, lapack_int* ldv, lapack_int *info );
+void LAPACK_cgebak( char* job, char* side, lapack_int* n, lapack_int* ilo,
+ lapack_int* ihi, const float* scale, lapack_int* m,
+ lapack_complex_float* v, lapack_int* ldv,
+ lapack_int *info );
+void LAPACK_zgebak( char* job, char* side, lapack_int* n, lapack_int* ilo,
+ lapack_int* ihi, const double* scale, lapack_int* m,
+ lapack_complex_double* v, lapack_int* ldv,
+ lapack_int *info );
+void LAPACK_shseqr( char* job, char* compz, lapack_int* n, lapack_int* ilo,
+ lapack_int* ihi, float* h, lapack_int* ldh, float* wr,
+ float* wi, float* z, lapack_int* ldz, float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_dhseqr( char* job, char* compz, lapack_int* n, lapack_int* ilo,
+ lapack_int* ihi, double* h, lapack_int* ldh, double* wr,
+ double* wi, double* z, lapack_int* ldz, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_chseqr( char* job, char* compz, lapack_int* n, lapack_int* ilo,
+ lapack_int* ihi, lapack_complex_float* h, lapack_int* ldh,
+ lapack_complex_float* w, lapack_complex_float* z,
+ lapack_int* ldz, lapack_complex_float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_zhseqr( char* job, char* compz, lapack_int* n, lapack_int* ilo,
+ lapack_int* ihi, lapack_complex_double* h, lapack_int* ldh,
+ lapack_complex_double* w, lapack_complex_double* z,
+ lapack_int* ldz, lapack_complex_double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_shsein( char* job, char* eigsrc, char* initv,
+ lapack_logical* select, lapack_int* n, const float* h,
+ lapack_int* ldh, float* wr, const float* wi, float* vl,
+ lapack_int* ldvl, float* vr, lapack_int* ldvr,
+ lapack_int* mm, lapack_int* m, float* work,
+ lapack_int* ifaill, lapack_int* ifailr, lapack_int *info );
+void LAPACK_dhsein( char* job, char* eigsrc, char* initv,
+ lapack_logical* select, lapack_int* n, const double* h,
+ lapack_int* ldh, double* wr, const double* wi, double* vl,
+ lapack_int* ldvl, double* vr, lapack_int* ldvr,
+ lapack_int* mm, lapack_int* m, double* work,
+ lapack_int* ifaill, lapack_int* ifailr, lapack_int *info );
+void LAPACK_chsein( char* job, char* eigsrc, char* initv,
+ const lapack_logical* select, lapack_int* n,
+ const lapack_complex_float* h, lapack_int* ldh,
+ lapack_complex_float* w, lapack_complex_float* vl,
+ lapack_int* ldvl, lapack_complex_float* vr,
+ lapack_int* ldvr, lapack_int* mm, lapack_int* m,
+ lapack_complex_float* work, float* rwork,
+ lapack_int* ifaill, lapack_int* ifailr, lapack_int *info );
+void LAPACK_zhsein( char* job, char* eigsrc, char* initv,
+ const lapack_logical* select, lapack_int* n,
+ const lapack_complex_double* h, lapack_int* ldh,
+ lapack_complex_double* w, lapack_complex_double* vl,
+ lapack_int* ldvl, lapack_complex_double* vr,
+ lapack_int* ldvr, lapack_int* mm, lapack_int* m,
+ lapack_complex_double* work, double* rwork,
+ lapack_int* ifaill, lapack_int* ifailr, lapack_int *info );
+void LAPACK_strevc( char* side, char* howmny, lapack_logical* select,
+ lapack_int* n, const float* t, lapack_int* ldt, float* vl,
+ lapack_int* ldvl, float* vr, lapack_int* ldvr,
+ lapack_int* mm, lapack_int* m, float* work,
+ lapack_int *info );
+void LAPACK_dtrevc( char* side, char* howmny, lapack_logical* select,
+ lapack_int* n, const double* t, lapack_int* ldt, double* vl,
+ lapack_int* ldvl, double* vr, lapack_int* ldvr,
+ lapack_int* mm, lapack_int* m, double* work,
+ lapack_int *info );
+void LAPACK_ctrevc( char* side, char* howmny, const lapack_logical* select,
+ lapack_int* n, lapack_complex_float* t, lapack_int* ldt,
+ lapack_complex_float* vl, lapack_int* ldvl,
+ lapack_complex_float* vr, lapack_int* ldvr, lapack_int* mm,
+ lapack_int* m, lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_ztrevc( char* side, char* howmny, const lapack_logical* select,
+ lapack_int* n, lapack_complex_double* t, lapack_int* ldt,
+ lapack_complex_double* vl, lapack_int* ldvl,
+ lapack_complex_double* vr, lapack_int* ldvr, lapack_int* mm,
+ lapack_int* m, lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_strsna( char* job, char* howmny, const lapack_logical* select,
+ lapack_int* n, const float* t, lapack_int* ldt,
+ const float* vl, lapack_int* ldvl, const float* vr,
+ lapack_int* ldvr, float* s, float* sep, lapack_int* mm,
+ lapack_int* m, float* work, lapack_int* ldwork,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_dtrsna( char* job, char* howmny, const lapack_logical* select,
+ lapack_int* n, const double* t, lapack_int* ldt,
+ const double* vl, lapack_int* ldvl, const double* vr,
+ lapack_int* ldvr, double* s, double* sep, lapack_int* mm,
+ lapack_int* m, double* work, lapack_int* ldwork,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_ctrsna( char* job, char* howmny, const lapack_logical* select,
+ lapack_int* n, const lapack_complex_float* t,
+ lapack_int* ldt, const lapack_complex_float* vl,
+ lapack_int* ldvl, const lapack_complex_float* vr,
+ lapack_int* ldvr, float* s, float* sep, lapack_int* mm,
+ lapack_int* m, lapack_complex_float* work,
+ lapack_int* ldwork, float* rwork, lapack_int *info );
+void LAPACK_ztrsna( char* job, char* howmny, const lapack_logical* select,
+ lapack_int* n, const lapack_complex_double* t,
+ lapack_int* ldt, const lapack_complex_double* vl,
+ lapack_int* ldvl, const lapack_complex_double* vr,
+ lapack_int* ldvr, double* s, double* sep, lapack_int* mm,
+ lapack_int* m, lapack_complex_double* work,
+ lapack_int* ldwork, double* rwork, lapack_int *info );
+void LAPACK_strexc( char* compq, lapack_int* n, float* t, lapack_int* ldt,
+ float* q, lapack_int* ldq, lapack_int* ifst,
+ lapack_int* ilst, float* work, lapack_int *info );
+void LAPACK_dtrexc( char* compq, lapack_int* n, double* t, lapack_int* ldt,
+ double* q, lapack_int* ldq, lapack_int* ifst,
+ lapack_int* ilst, double* work, lapack_int *info );
+void LAPACK_ctrexc( char* compq, lapack_int* n, lapack_complex_float* t,
+ lapack_int* ldt, lapack_complex_float* q, lapack_int* ldq,
+ lapack_int* ifst, lapack_int* ilst, lapack_int *info );
+void LAPACK_ztrexc( char* compq, lapack_int* n, lapack_complex_double* t,
+ lapack_int* ldt, lapack_complex_double* q, lapack_int* ldq,
+ lapack_int* ifst, lapack_int* ilst, lapack_int *info );
+void LAPACK_strsen( char* job, char* compq, const lapack_logical* select,
+ lapack_int* n, float* t, lapack_int* ldt, float* q,
+ lapack_int* ldq, float* wr, float* wi, lapack_int* m,
+ float* s, float* sep, float* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_dtrsen( char* job, char* compq, const lapack_logical* select,
+ lapack_int* n, double* t, lapack_int* ldt, double* q,
+ lapack_int* ldq, double* wr, double* wi, lapack_int* m,
+ double* s, double* sep, double* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_ctrsen( char* job, char* compq, const lapack_logical* select,
+ lapack_int* n, lapack_complex_float* t, lapack_int* ldt,
+ lapack_complex_float* q, lapack_int* ldq,
+ lapack_complex_float* w, lapack_int* m, float* s,
+ float* sep, lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_ztrsen( char* job, char* compq, const lapack_logical* select,
+ lapack_int* n, lapack_complex_double* t, lapack_int* ldt,
+ lapack_complex_double* q, lapack_int* ldq,
+ lapack_complex_double* w, lapack_int* m, double* s,
+ double* sep, lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_strsyl( char* trana, char* tranb, lapack_int* isgn, lapack_int* m,
+ lapack_int* n, const float* a, lapack_int* lda,
+ const float* b, lapack_int* ldb, float* c, lapack_int* ldc,
+ float* scale, lapack_int *info );
+void LAPACK_dtrsyl( char* trana, char* tranb, lapack_int* isgn, lapack_int* m,
+ lapack_int* n, const double* a, lapack_int* lda,
+ const double* b, lapack_int* ldb, double* c,
+ lapack_int* ldc, double* scale, lapack_int *info );
+void LAPACK_ctrsyl( char* trana, char* tranb, lapack_int* isgn, lapack_int* m,
+ lapack_int* n, const lapack_complex_float* a,
+ lapack_int* lda, const lapack_complex_float* b,
+ lapack_int* ldb, lapack_complex_float* c, lapack_int* ldc,
+ float* scale, lapack_int *info );
+void LAPACK_ztrsyl( char* trana, char* tranb, lapack_int* isgn, lapack_int* m,
+ lapack_int* n, const lapack_complex_double* a,
+ lapack_int* lda, const lapack_complex_double* b,
+ lapack_int* ldb, lapack_complex_double* c, lapack_int* ldc,
+ double* scale, lapack_int *info );
+void LAPACK_sgghrd( char* compq, char* compz, lapack_int* n, lapack_int* ilo,
+ lapack_int* ihi, float* a, lapack_int* lda, float* b,
+ lapack_int* ldb, float* q, lapack_int* ldq, float* z,
+ lapack_int* ldz, lapack_int *info );
+void LAPACK_dgghrd( char* compq, char* compz, lapack_int* n, lapack_int* ilo,
+ lapack_int* ihi, double* a, lapack_int* lda, double* b,
+ lapack_int* ldb, double* q, lapack_int* ldq, double* z,
+ lapack_int* ldz, lapack_int *info );
+void LAPACK_cgghrd( char* compq, char* compz, lapack_int* n, lapack_int* ilo,
+ lapack_int* ihi, lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* q, lapack_int* ldq,
+ lapack_complex_float* z, lapack_int* ldz,
+ lapack_int *info );
+void LAPACK_zgghrd( char* compq, char* compz, lapack_int* n, lapack_int* ilo,
+ lapack_int* ihi, lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* q, lapack_int* ldq,
+ lapack_complex_double* z, lapack_int* ldz,
+ lapack_int *info );
+void LAPACK_sggbal( char* job, lapack_int* n, float* a, lapack_int* lda,
+ float* b, lapack_int* ldb, lapack_int* ilo, lapack_int* ihi,
+ float* lscale, float* rscale, float* work,
+ lapack_int *info );
+void LAPACK_dggbal( char* job, lapack_int* n, double* a, lapack_int* lda,
+ double* b, lapack_int* ldb, lapack_int* ilo,
+ lapack_int* ihi, double* lscale, double* rscale,
+ double* work, lapack_int *info );
+void LAPACK_cggbal( char* job, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_complex_float* b, lapack_int* ldb,
+ lapack_int* ilo, lapack_int* ihi, float* lscale,
+ float* rscale, float* work, lapack_int *info );
+void LAPACK_zggbal( char* job, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_complex_double* b, lapack_int* ldb,
+ lapack_int* ilo, lapack_int* ihi, double* lscale,
+ double* rscale, double* work, lapack_int *info );
+void LAPACK_sggbak( char* job, char* side, lapack_int* n, lapack_int* ilo,
+ lapack_int* ihi, const float* lscale, const float* rscale,
+ lapack_int* m, float* v, lapack_int* ldv,
+ lapack_int *info );
+void LAPACK_dggbak( char* job, char* side, lapack_int* n, lapack_int* ilo,
+ lapack_int* ihi, const double* lscale, const double* rscale,
+ lapack_int* m, double* v, lapack_int* ldv,
+ lapack_int *info );
+void LAPACK_cggbak( char* job, char* side, lapack_int* n, lapack_int* ilo,
+ lapack_int* ihi, const float* lscale, const float* rscale,
+ lapack_int* m, lapack_complex_float* v, lapack_int* ldv,
+ lapack_int *info );
+void LAPACK_zggbak( char* job, char* side, lapack_int* n, lapack_int* ilo,
+ lapack_int* ihi, const double* lscale, const double* rscale,
+ lapack_int* m, lapack_complex_double* v, lapack_int* ldv,
+ lapack_int *info );
+void LAPACK_shgeqz( char* job, char* compq, char* compz, lapack_int* n,
+ lapack_int* ilo, lapack_int* ihi, float* h, lapack_int* ldh,
+ float* t, lapack_int* ldt, float* alphar, float* alphai,
+ float* beta, float* q, lapack_int* ldq, float* z,
+ lapack_int* ldz, float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_dhgeqz( char* job, char* compq, char* compz, lapack_int* n,
+ lapack_int* ilo, lapack_int* ihi, double* h,
+ lapack_int* ldh, double* t, lapack_int* ldt, double* alphar,
+ double* alphai, double* beta, double* q, lapack_int* ldq,
+ double* z, lapack_int* ldz, double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_chgeqz( char* job, char* compq, char* compz, lapack_int* n,
+ lapack_int* ilo, lapack_int* ihi, lapack_complex_float* h,
+ lapack_int* ldh, lapack_complex_float* t, lapack_int* ldt,
+ lapack_complex_float* alpha, lapack_complex_float* beta,
+ lapack_complex_float* q, lapack_int* ldq,
+ lapack_complex_float* z, lapack_int* ldz,
+ lapack_complex_float* work, lapack_int* lwork, float* rwork,
+ lapack_int *info );
+void LAPACK_zhgeqz( char* job, char* compq, char* compz, lapack_int* n,
+ lapack_int* ilo, lapack_int* ihi, lapack_complex_double* h,
+ lapack_int* ldh, lapack_complex_double* t, lapack_int* ldt,
+ lapack_complex_double* alpha, lapack_complex_double* beta,
+ lapack_complex_double* q, lapack_int* ldq,
+ lapack_complex_double* z, lapack_int* ldz,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_int *info );
+void LAPACK_stgevc( char* side, char* howmny, const lapack_logical* select,
+ lapack_int* n, const float* s, lapack_int* lds,
+ const float* p, lapack_int* ldp, float* vl,
+ lapack_int* ldvl, float* vr, lapack_int* ldvr,
+ lapack_int* mm, lapack_int* m, float* work,
+ lapack_int *info );
+void LAPACK_dtgevc( char* side, char* howmny, const lapack_logical* select,
+ lapack_int* n, const double* s, lapack_int* lds,
+ const double* p, lapack_int* ldp, double* vl,
+ lapack_int* ldvl, double* vr, lapack_int* ldvr,
+ lapack_int* mm, lapack_int* m, double* work,
+ lapack_int *info );
+void LAPACK_ctgevc( char* side, char* howmny, const lapack_logical* select,
+ lapack_int* n, const lapack_complex_float* s,
+ lapack_int* lds, const lapack_complex_float* p,
+ lapack_int* ldp, lapack_complex_float* vl, lapack_int* ldvl,
+ lapack_complex_float* vr, lapack_int* ldvr, lapack_int* mm,
+ lapack_int* m, lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_ztgevc( char* side, char* howmny, const lapack_logical* select,
+ lapack_int* n, const lapack_complex_double* s,
+ lapack_int* lds, const lapack_complex_double* p,
+ lapack_int* ldp, lapack_complex_double* vl,
+ lapack_int* ldvl, lapack_complex_double* vr,
+ lapack_int* ldvr, lapack_int* mm, lapack_int* m,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_stgexc( lapack_logical* wantq, lapack_logical* wantz, lapack_int* n,
+ float* a, lapack_int* lda, float* b, lapack_int* ldb,
+ float* q, lapack_int* ldq, float* z, lapack_int* ldz,
+ lapack_int* ifst, lapack_int* ilst, float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_dtgexc( lapack_logical* wantq, lapack_logical* wantz, lapack_int* n,
+ double* a, lapack_int* lda, double* b, lapack_int* ldb,
+ double* q, lapack_int* ldq, double* z, lapack_int* ldz,
+ lapack_int* ifst, lapack_int* ilst, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_ctgexc( lapack_logical* wantq, lapack_logical* wantz, lapack_int* n,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* q, lapack_int* ldq,
+ lapack_complex_float* z, lapack_int* ldz, lapack_int* ifst,
+ lapack_int* ilst, lapack_int *info );
+void LAPACK_ztgexc( lapack_logical* wantq, lapack_logical* wantz, lapack_int* n,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* q, lapack_int* ldq,
+ lapack_complex_double* z, lapack_int* ldz, lapack_int* ifst,
+ lapack_int* ilst, lapack_int *info );
+void LAPACK_stgsen( lapack_int* ijob, lapack_logical* wantq,
+ lapack_logical* wantz, const lapack_logical* select,
+ lapack_int* n, float* a, lapack_int* lda, float* b,
+ lapack_int* ldb, float* alphar, float* alphai, float* beta,
+ float* q, lapack_int* ldq, float* z, lapack_int* ldz,
+ lapack_int* m, float* pl, float* pr, float* dif,
+ float* work, lapack_int* lwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_int *info );
+void LAPACK_dtgsen( lapack_int* ijob, lapack_logical* wantq,
+ lapack_logical* wantz, const lapack_logical* select,
+ lapack_int* n, double* a, lapack_int* lda, double* b,
+ lapack_int* ldb, double* alphar, double* alphai,
+ double* beta, double* q, lapack_int* ldq, double* z,
+ lapack_int* ldz, lapack_int* m, double* pl, double* pr,
+ double* dif, double* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_ctgsen( lapack_int* ijob, lapack_logical* wantq,
+ lapack_logical* wantz, const lapack_logical* select,
+ lapack_int* n, lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* alpha, lapack_complex_float* beta,
+ lapack_complex_float* q, lapack_int* ldq,
+ lapack_complex_float* z, lapack_int* ldz, lapack_int* m,
+ float* pl, float* pr, float* dif,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_ztgsen( lapack_int* ijob, lapack_logical* wantq,
+ lapack_logical* wantz, const lapack_logical* select,
+ lapack_int* n, lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* alpha, lapack_complex_double* beta,
+ lapack_complex_double* q, lapack_int* ldq,
+ lapack_complex_double* z, lapack_int* ldz, lapack_int* m,
+ double* pl, double* pr, double* dif,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_stgsyl( char* trans, lapack_int* ijob, lapack_int* m, lapack_int* n,
+ const float* a, lapack_int* lda, const float* b,
+ lapack_int* ldb, float* c, lapack_int* ldc, const float* d,
+ lapack_int* ldd, const float* e, lapack_int* lde, float* f,
+ lapack_int* ldf, float* scale, float* dif, float* work,
+ lapack_int* lwork, lapack_int* iwork, lapack_int *info );
+void LAPACK_dtgsyl( char* trans, lapack_int* ijob, lapack_int* m, lapack_int* n,
+ const double* a, lapack_int* lda, const double* b,
+ lapack_int* ldb, double* c, lapack_int* ldc,
+ const double* d, lapack_int* ldd, const double* e,
+ lapack_int* lde, double* f, lapack_int* ldf, double* scale,
+ double* dif, double* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_ctgsyl( char* trans, lapack_int* ijob, lapack_int* m, lapack_int* n,
+ const lapack_complex_float* a, lapack_int* lda,
+ const lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* c, lapack_int* ldc,
+ const lapack_complex_float* d, lapack_int* ldd,
+ const lapack_complex_float* e, lapack_int* lde,
+ lapack_complex_float* f, lapack_int* ldf, float* scale,
+ float* dif, lapack_complex_float* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_ztgsyl( char* trans, lapack_int* ijob, lapack_int* m, lapack_int* n,
+ const lapack_complex_double* a, lapack_int* lda,
+ const lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* c, lapack_int* ldc,
+ const lapack_complex_double* d, lapack_int* ldd,
+ const lapack_complex_double* e, lapack_int* lde,
+ lapack_complex_double* f, lapack_int* ldf, double* scale,
+ double* dif, lapack_complex_double* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_stgsna( char* job, char* howmny, const lapack_logical* select,
+ lapack_int* n, const float* a, lapack_int* lda,
+ const float* b, lapack_int* ldb, const float* vl,
+ lapack_int* ldvl, const float* vr, lapack_int* ldvr,
+ float* s, float* dif, lapack_int* mm, lapack_int* m,
+ float* work, lapack_int* lwork, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dtgsna( char* job, char* howmny, const lapack_logical* select,
+ lapack_int* n, const double* a, lapack_int* lda,
+ const double* b, lapack_int* ldb, const double* vl,
+ lapack_int* ldvl, const double* vr, lapack_int* ldvr,
+ double* s, double* dif, lapack_int* mm, lapack_int* m,
+ double* work, lapack_int* lwork, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_ctgsna( char* job, char* howmny, const lapack_logical* select,
+ lapack_int* n, const lapack_complex_float* a,
+ lapack_int* lda, const lapack_complex_float* b,
+ lapack_int* ldb, const lapack_complex_float* vl,
+ lapack_int* ldvl, const lapack_complex_float* vr,
+ lapack_int* ldvr, float* s, float* dif, lapack_int* mm,
+ lapack_int* m, lapack_complex_float* work,
+ lapack_int* lwork, lapack_int* iwork, lapack_int *info );
+void LAPACK_ztgsna( char* job, char* howmny, const lapack_logical* select,
+ lapack_int* n, const lapack_complex_double* a,
+ lapack_int* lda, const lapack_complex_double* b,
+ lapack_int* ldb, const lapack_complex_double* vl,
+ lapack_int* ldvl, const lapack_complex_double* vr,
+ lapack_int* ldvr, double* s, double* dif, lapack_int* mm,
+ lapack_int* m, lapack_complex_double* work,
+ lapack_int* lwork, lapack_int* iwork, lapack_int *info );
+void LAPACK_sggsvp( char* jobu, char* jobv, char* jobq, lapack_int* m,
+ lapack_int* p, lapack_int* n, float* a, lapack_int* lda,
+ float* b, lapack_int* ldb, float* tola, float* tolb,
+ lapack_int* k, lapack_int* l, float* u, lapack_int* ldu,
+ float* v, lapack_int* ldv, float* q, lapack_int* ldq,
+ lapack_int* iwork, float* tau, float* work,
+ lapack_int *info );
+void LAPACK_dggsvp( char* jobu, char* jobv, char* jobq, lapack_int* m,
+ lapack_int* p, lapack_int* n, double* a, lapack_int* lda,
+ double* b, lapack_int* ldb, double* tola, double* tolb,
+ lapack_int* k, lapack_int* l, double* u, lapack_int* ldu,
+ double* v, lapack_int* ldv, double* q, lapack_int* ldq,
+ lapack_int* iwork, double* tau, double* work,
+ lapack_int *info );
+void LAPACK_cggsvp( char* jobu, char* jobv, char* jobq, lapack_int* m,
+ lapack_int* p, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_complex_float* b, lapack_int* ldb,
+ float* tola, float* tolb, lapack_int* k, lapack_int* l,
+ lapack_complex_float* u, lapack_int* ldu,
+ lapack_complex_float* v, lapack_int* ldv,
+ lapack_complex_float* q, lapack_int* ldq, lapack_int* iwork,
+ float* rwork, lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int *info );
+void LAPACK_zggsvp( char* jobu, char* jobv, char* jobq, lapack_int* m,
+ lapack_int* p, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_complex_double* b, lapack_int* ldb,
+ double* tola, double* tolb, lapack_int* k, lapack_int* l,
+ lapack_complex_double* u, lapack_int* ldu,
+ lapack_complex_double* v, lapack_int* ldv,
+ lapack_complex_double* q, lapack_int* ldq,
+ lapack_int* iwork, double* rwork,
+ lapack_complex_double* tau, lapack_complex_double* work,
+ lapack_int *info );
+void LAPACK_stgsja( char* jobu, char* jobv, char* jobq, lapack_int* m,
+ lapack_int* p, lapack_int* n, lapack_int* k, lapack_int* l,
+ float* a, lapack_int* lda, float* b, lapack_int* ldb,
+ float* tola, float* tolb, float* alpha, float* beta,
+ float* u, lapack_int* ldu, float* v, lapack_int* ldv,
+ float* q, lapack_int* ldq, float* work, lapack_int* ncycle,
+ lapack_int *info );
+void LAPACK_dtgsja( char* jobu, char* jobv, char* jobq, lapack_int* m,
+ lapack_int* p, lapack_int* n, lapack_int* k, lapack_int* l,
+ double* a, lapack_int* lda, double* b, lapack_int* ldb,
+ double* tola, double* tolb, double* alpha, double* beta,
+ double* u, lapack_int* ldu, double* v, lapack_int* ldv,
+ double* q, lapack_int* ldq, double* work,
+ lapack_int* ncycle, lapack_int *info );
+void LAPACK_ctgsja( char* jobu, char* jobv, char* jobq, lapack_int* m,
+ lapack_int* p, lapack_int* n, lapack_int* k, lapack_int* l,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb, float* tola,
+ float* tolb, float* alpha, float* beta,
+ lapack_complex_float* u, lapack_int* ldu,
+ lapack_complex_float* v, lapack_int* ldv,
+ lapack_complex_float* q, lapack_int* ldq,
+ lapack_complex_float* work, lapack_int* ncycle,
+ lapack_int *info );
+void LAPACK_ztgsja( char* jobu, char* jobv, char* jobq, lapack_int* m,
+ lapack_int* p, lapack_int* n, lapack_int* k, lapack_int* l,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb, double* tola,
+ double* tolb, double* alpha, double* beta,
+ lapack_complex_double* u, lapack_int* ldu,
+ lapack_complex_double* v, lapack_int* ldv,
+ lapack_complex_double* q, lapack_int* ldq,
+ lapack_complex_double* work, lapack_int* ncycle,
+ lapack_int *info );
+void LAPACK_sgels( char* trans, lapack_int* m, lapack_int* n, lapack_int* nrhs,
+ float* a, lapack_int* lda, float* b, lapack_int* ldb,
+ float* work, lapack_int* lwork, lapack_int *info );
+void LAPACK_dgels( char* trans, lapack_int* m, lapack_int* n, lapack_int* nrhs,
+ double* a, lapack_int* lda, double* b, lapack_int* ldb,
+ double* work, lapack_int* lwork, lapack_int *info );
+void LAPACK_cgels( char* trans, lapack_int* m, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zgels( char* trans, lapack_int* m, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_sgelsy( lapack_int* m, lapack_int* n, lapack_int* nrhs, float* a,
+ lapack_int* lda, float* b, lapack_int* ldb,
+ lapack_int* jpvt, float* rcond, lapack_int* rank,
+ float* work, lapack_int* lwork, lapack_int *info );
+void LAPACK_dgelsy( lapack_int* m, lapack_int* n, lapack_int* nrhs, double* a,
+ lapack_int* lda, double* b, lapack_int* ldb,
+ lapack_int* jpvt, double* rcond, lapack_int* rank,
+ double* work, lapack_int* lwork, lapack_int *info );
+void LAPACK_cgelsy( lapack_int* m, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb, lapack_int* jpvt,
+ float* rcond, lapack_int* rank, lapack_complex_float* work,
+ lapack_int* lwork, float* rwork, lapack_int *info );
+void LAPACK_zgelsy( lapack_int* m, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb, lapack_int* jpvt,
+ double* rcond, lapack_int* rank,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_int *info );
+void LAPACK_sgelss( lapack_int* m, lapack_int* n, lapack_int* nrhs, float* a,
+ lapack_int* lda, float* b, lapack_int* ldb, float* s,
+ float* rcond, lapack_int* rank, float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_dgelss( lapack_int* m, lapack_int* n, lapack_int* nrhs, double* a,
+ lapack_int* lda, double* b, lapack_int* ldb, double* s,
+ double* rcond, lapack_int* rank, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_cgelss( lapack_int* m, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb, float* s,
+ float* rcond, lapack_int* rank, lapack_complex_float* work,
+ lapack_int* lwork, float* rwork, lapack_int *info );
+void LAPACK_zgelss( lapack_int* m, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb, double* s,
+ double* rcond, lapack_int* rank,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_int *info );
+void LAPACK_sgelsd( lapack_int* m, lapack_int* n, lapack_int* nrhs, float* a,
+ lapack_int* lda, float* b, lapack_int* ldb, float* s,
+ float* rcond, lapack_int* rank, float* work,
+ lapack_int* lwork, lapack_int* iwork, lapack_int *info );
+void LAPACK_dgelsd( lapack_int* m, lapack_int* n, lapack_int* nrhs, double* a,
+ lapack_int* lda, double* b, lapack_int* ldb, double* s,
+ double* rcond, lapack_int* rank, double* work,
+ lapack_int* lwork, lapack_int* iwork, lapack_int *info );
+void LAPACK_cgelsd( lapack_int* m, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb, float* s,
+ float* rcond, lapack_int* rank, lapack_complex_float* work,
+ lapack_int* lwork, float* rwork, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_zgelsd( lapack_int* m, lapack_int* n, lapack_int* nrhs,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb, double* s,
+ double* rcond, lapack_int* rank,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_int* iwork, lapack_int *info );
+void LAPACK_sgglse( lapack_int* m, lapack_int* n, lapack_int* p, float* a,
+ lapack_int* lda, float* b, lapack_int* ldb, float* c,
+ float* d, float* x, float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_dgglse( lapack_int* m, lapack_int* n, lapack_int* p, double* a,
+ lapack_int* lda, double* b, lapack_int* ldb, double* c,
+ double* d, double* x, double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_cgglse( lapack_int* m, lapack_int* n, lapack_int* p,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* c, lapack_complex_float* d,
+ lapack_complex_float* x, lapack_complex_float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_zgglse( lapack_int* m, lapack_int* n, lapack_int* p,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* c, lapack_complex_double* d,
+ lapack_complex_double* x, lapack_complex_double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_sggglm( lapack_int* n, lapack_int* m, lapack_int* p, float* a,
+ lapack_int* lda, float* b, lapack_int* ldb, float* d,
+ float* x, float* y, float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_dggglm( lapack_int* n, lapack_int* m, lapack_int* p, double* a,
+ lapack_int* lda, double* b, lapack_int* ldb, double* d,
+ double* x, double* y, double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_cggglm( lapack_int* n, lapack_int* m, lapack_int* p,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* d, lapack_complex_float* x,
+ lapack_complex_float* y, lapack_complex_float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_zggglm( lapack_int* n, lapack_int* m, lapack_int* p,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* d, lapack_complex_double* x,
+ lapack_complex_double* y, lapack_complex_double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_ssyev( char* jobz, char* uplo, lapack_int* n, float* a,
+ lapack_int* lda, float* w, float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_dsyev( char* jobz, char* uplo, lapack_int* n, double* a,
+ lapack_int* lda, double* w, double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_cheev( char* jobz, char* uplo, lapack_int* n,
+ lapack_complex_float* a, lapack_int* lda, float* w,
+ lapack_complex_float* work, lapack_int* lwork, float* rwork,
+ lapack_int *info );
+void LAPACK_zheev( char* jobz, char* uplo, lapack_int* n,
+ lapack_complex_double* a, lapack_int* lda, double* w,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_int *info );
+void LAPACK_ssyevd( char* jobz, char* uplo, lapack_int* n, float* a,
+ lapack_int* lda, float* w, float* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_dsyevd( char* jobz, char* uplo, lapack_int* n, double* a,
+ lapack_int* lda, double* w, double* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_cheevd( char* jobz, char* uplo, lapack_int* n,
+ lapack_complex_float* a, lapack_int* lda, float* w,
+ lapack_complex_float* work, lapack_int* lwork, float* rwork,
+ lapack_int* lrwork, lapack_int* iwork, lapack_int* liwork,
+ lapack_int *info );
+void LAPACK_zheevd( char* jobz, char* uplo, lapack_int* n,
+ lapack_complex_double* a, lapack_int* lda, double* w,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_int* lrwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_int *info );
+void LAPACK_ssyevx( char* jobz, char* range, char* uplo, lapack_int* n,
+ float* a, lapack_int* lda, float* vl, float* vu,
+ lapack_int* il, lapack_int* iu, float* abstol,
+ lapack_int* m, float* w, float* z, lapack_int* ldz,
+ float* work, lapack_int* lwork, lapack_int* iwork,
+ lapack_int* ifail, lapack_int *info );
+void LAPACK_dsyevx( char* jobz, char* range, char* uplo, lapack_int* n,
+ double* a, lapack_int* lda, double* vl, double* vu,
+ lapack_int* il, lapack_int* iu, double* abstol,
+ lapack_int* m, double* w, double* z, lapack_int* ldz,
+ double* work, lapack_int* lwork, lapack_int* iwork,
+ lapack_int* ifail, lapack_int *info );
+void LAPACK_cheevx( char* jobz, char* range, char* uplo, lapack_int* n,
+ lapack_complex_float* a, lapack_int* lda, float* vl,
+ float* vu, lapack_int* il, lapack_int* iu, float* abstol,
+ lapack_int* m, float* w, lapack_complex_float* z,
+ lapack_int* ldz, lapack_complex_float* work,
+ lapack_int* lwork, float* rwork, lapack_int* iwork,
+ lapack_int* ifail, lapack_int *info );
+void LAPACK_zheevx( char* jobz, char* range, char* uplo, lapack_int* n,
+ lapack_complex_double* a, lapack_int* lda, double* vl,
+ double* vu, lapack_int* il, lapack_int* iu, double* abstol,
+ lapack_int* m, double* w, lapack_complex_double* z,
+ lapack_int* ldz, lapack_complex_double* work,
+ lapack_int* lwork, double* rwork, lapack_int* iwork,
+ lapack_int* ifail, lapack_int *info );
+void LAPACK_ssyevr( char* jobz, char* range, char* uplo, lapack_int* n,
+ float* a, lapack_int* lda, float* vl, float* vu,
+ lapack_int* il, lapack_int* iu, float* abstol,
+ lapack_int* m, float* w, float* z, lapack_int* ldz,
+ lapack_int* isuppz, float* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_dsyevr( char* jobz, char* range, char* uplo, lapack_int* n,
+ double* a, lapack_int* lda, double* vl, double* vu,
+ lapack_int* il, lapack_int* iu, double* abstol,
+ lapack_int* m, double* w, double* z, lapack_int* ldz,
+ lapack_int* isuppz, double* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_cheevr( char* jobz, char* range, char* uplo, lapack_int* n,
+ lapack_complex_float* a, lapack_int* lda, float* vl,
+ float* vu, lapack_int* il, lapack_int* iu, float* abstol,
+ lapack_int* m, float* w, lapack_complex_float* z,
+ lapack_int* ldz, lapack_int* isuppz,
+ lapack_complex_float* work, lapack_int* lwork, float* rwork,
+ lapack_int* lrwork, lapack_int* iwork, lapack_int* liwork,
+ lapack_int *info );
+void LAPACK_zheevr( char* jobz, char* range, char* uplo, lapack_int* n,
+ lapack_complex_double* a, lapack_int* lda, double* vl,
+ double* vu, lapack_int* il, lapack_int* iu, double* abstol,
+ lapack_int* m, double* w, lapack_complex_double* z,
+ lapack_int* ldz, lapack_int* isuppz,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_int* lrwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_int *info );
+void LAPACK_sspev( char* jobz, char* uplo, lapack_int* n, float* ap, float* w,
+ float* z, lapack_int* ldz, float* work, lapack_int *info );
+void LAPACK_dspev( char* jobz, char* uplo, lapack_int* n, double* ap, double* w,
+ double* z, lapack_int* ldz, double* work, lapack_int *info );
+void LAPACK_chpev( char* jobz, char* uplo, lapack_int* n,
+ lapack_complex_float* ap, float* w, lapack_complex_float* z,
+ lapack_int* ldz, lapack_complex_float* work, float* rwork,
+ lapack_int *info );
+void LAPACK_zhpev( char* jobz, char* uplo, lapack_int* n,
+ lapack_complex_double* ap, double* w,
+ lapack_complex_double* z, lapack_int* ldz,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_sspevd( char* jobz, char* uplo, lapack_int* n, float* ap, float* w,
+ float* z, lapack_int* ldz, float* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_dspevd( char* jobz, char* uplo, lapack_int* n, double* ap,
+ double* w, double* z, lapack_int* ldz, double* work,
+ lapack_int* lwork, lapack_int* iwork, lapack_int* liwork,
+ lapack_int *info );
+void LAPACK_chpevd( char* jobz, char* uplo, lapack_int* n,
+ lapack_complex_float* ap, float* w, lapack_complex_float* z,
+ lapack_int* ldz, lapack_complex_float* work,
+ lapack_int* lwork, float* rwork, lapack_int* lrwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_zhpevd( char* jobz, char* uplo, lapack_int* n,
+ lapack_complex_double* ap, double* w,
+ lapack_complex_double* z, lapack_int* ldz,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_int* lrwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_int *info );
+void LAPACK_sspevx( char* jobz, char* range, char* uplo, lapack_int* n,
+ float* ap, float* vl, float* vu, lapack_int* il,
+ lapack_int* iu, float* abstol, lapack_int* m, float* w,
+ float* z, lapack_int* ldz, float* work, lapack_int* iwork,
+ lapack_int* ifail, lapack_int *info );
+void LAPACK_dspevx( char* jobz, char* range, char* uplo, lapack_int* n,
+ double* ap, double* vl, double* vu, lapack_int* il,
+ lapack_int* iu, double* abstol, lapack_int* m, double* w,
+ double* z, lapack_int* ldz, double* work, lapack_int* iwork,
+ lapack_int* ifail, lapack_int *info );
+void LAPACK_chpevx( char* jobz, char* range, char* uplo, lapack_int* n,
+ lapack_complex_float* ap, float* vl, float* vu,
+ lapack_int* il, lapack_int* iu, float* abstol,
+ lapack_int* m, float* w, lapack_complex_float* z,
+ lapack_int* ldz, lapack_complex_float* work, float* rwork,
+ lapack_int* iwork, lapack_int* ifail, lapack_int *info );
+void LAPACK_zhpevx( char* jobz, char* range, char* uplo, lapack_int* n,
+ lapack_complex_double* ap, double* vl, double* vu,
+ lapack_int* il, lapack_int* iu, double* abstol,
+ lapack_int* m, double* w, lapack_complex_double* z,
+ lapack_int* ldz, lapack_complex_double* work, double* rwork,
+ lapack_int* iwork, lapack_int* ifail, lapack_int *info );
+void LAPACK_ssbev( char* jobz, char* uplo, lapack_int* n, lapack_int* kd,
+ float* ab, lapack_int* ldab, float* w, float* z,
+ lapack_int* ldz, float* work, lapack_int *info );
+void LAPACK_dsbev( char* jobz, char* uplo, lapack_int* n, lapack_int* kd,
+ double* ab, lapack_int* ldab, double* w, double* z,
+ lapack_int* ldz, double* work, lapack_int *info );
+void LAPACK_chbev( char* jobz, char* uplo, lapack_int* n, lapack_int* kd,
+ lapack_complex_float* ab, lapack_int* ldab, float* w,
+ lapack_complex_float* z, lapack_int* ldz,
+ lapack_complex_float* work, float* rwork, lapack_int *info );
+void LAPACK_zhbev( char* jobz, char* uplo, lapack_int* n, lapack_int* kd,
+ lapack_complex_double* ab, lapack_int* ldab, double* w,
+ lapack_complex_double* z, lapack_int* ldz,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_ssbevd( char* jobz, char* uplo, lapack_int* n, lapack_int* kd,
+ float* ab, lapack_int* ldab, float* w, float* z,
+ lapack_int* ldz, float* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_dsbevd( char* jobz, char* uplo, lapack_int* n, lapack_int* kd,
+ double* ab, lapack_int* ldab, double* w, double* z,
+ lapack_int* ldz, double* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_chbevd( char* jobz, char* uplo, lapack_int* n, lapack_int* kd,
+ lapack_complex_float* ab, lapack_int* ldab, float* w,
+ lapack_complex_float* z, lapack_int* ldz,
+ lapack_complex_float* work, lapack_int* lwork, float* rwork,
+ lapack_int* lrwork, lapack_int* iwork, lapack_int* liwork,
+ lapack_int *info );
+void LAPACK_zhbevd( char* jobz, char* uplo, lapack_int* n, lapack_int* kd,
+ lapack_complex_double* ab, lapack_int* ldab, double* w,
+ lapack_complex_double* z, lapack_int* ldz,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_int* lrwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_int *info );
+void LAPACK_ssbevx( char* jobz, char* range, char* uplo, lapack_int* n,
+ lapack_int* kd, float* ab, lapack_int* ldab, float* q,
+ lapack_int* ldq, float* vl, float* vu, lapack_int* il,
+ lapack_int* iu, float* abstol, lapack_int* m, float* w,
+ float* z, lapack_int* ldz, float* work, lapack_int* iwork,
+ lapack_int* ifail, lapack_int *info );
+void LAPACK_dsbevx( char* jobz, char* range, char* uplo, lapack_int* n,
+ lapack_int* kd, double* ab, lapack_int* ldab, double* q,
+ lapack_int* ldq, double* vl, double* vu, lapack_int* il,
+ lapack_int* iu, double* abstol, lapack_int* m, double* w,
+ double* z, lapack_int* ldz, double* work, lapack_int* iwork,
+ lapack_int* ifail, lapack_int *info );
+void LAPACK_chbevx( char* jobz, char* range, char* uplo, lapack_int* n,
+ lapack_int* kd, lapack_complex_float* ab, lapack_int* ldab,
+ lapack_complex_float* q, lapack_int* ldq, float* vl,
+ float* vu, lapack_int* il, lapack_int* iu, float* abstol,
+ lapack_int* m, float* w, lapack_complex_float* z,
+ lapack_int* ldz, lapack_complex_float* work, float* rwork,
+ lapack_int* iwork, lapack_int* ifail, lapack_int *info );
+void LAPACK_zhbevx( char* jobz, char* range, char* uplo, lapack_int* n,
+ lapack_int* kd, lapack_complex_double* ab, lapack_int* ldab,
+ lapack_complex_double* q, lapack_int* ldq, double* vl,
+ double* vu, lapack_int* il, lapack_int* iu, double* abstol,
+ lapack_int* m, double* w, lapack_complex_double* z,
+ lapack_int* ldz, lapack_complex_double* work, double* rwork,
+ lapack_int* iwork, lapack_int* ifail, lapack_int *info );
+void LAPACK_sstev( char* jobz, lapack_int* n, float* d, float* e, float* z,
+ lapack_int* ldz, float* work, lapack_int *info );
+void LAPACK_dstev( char* jobz, lapack_int* n, double* d, double* e, double* z,
+ lapack_int* ldz, double* work, lapack_int *info );
+void LAPACK_sstevd( char* jobz, lapack_int* n, float* d, float* e, float* z,
+ lapack_int* ldz, float* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_dstevd( char* jobz, lapack_int* n, double* d, double* e, double* z,
+ lapack_int* ldz, double* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_sstevx( char* jobz, char* range, lapack_int* n, float* d, float* e,
+ float* vl, float* vu, lapack_int* il, lapack_int* iu,
+ float* abstol, lapack_int* m, float* w, float* z,
+ lapack_int* ldz, float* work, lapack_int* iwork,
+ lapack_int* ifail, lapack_int *info );
+void LAPACK_dstevx( char* jobz, char* range, lapack_int* n, double* d,
+ double* e, double* vl, double* vu, lapack_int* il,
+ lapack_int* iu, double* abstol, lapack_int* m, double* w,
+ double* z, lapack_int* ldz, double* work, lapack_int* iwork,
+ lapack_int* ifail, lapack_int *info );
+void LAPACK_sstevr( char* jobz, char* range, lapack_int* n, float* d, float* e,
+ float* vl, float* vu, lapack_int* il, lapack_int* iu,
+ float* abstol, lapack_int* m, float* w, float* z,
+ lapack_int* ldz, lapack_int* isuppz, float* work,
+ lapack_int* lwork, lapack_int* iwork, lapack_int* liwork,
+ lapack_int *info );
+void LAPACK_dstevr( char* jobz, char* range, lapack_int* n, double* d,
+ double* e, double* vl, double* vu, lapack_int* il,
+ lapack_int* iu, double* abstol, lapack_int* m, double* w,
+ double* z, lapack_int* ldz, lapack_int* isuppz,
+ double* work, lapack_int* lwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_int *info );
+void LAPACK_sgees( char* jobvs, char* sort, LAPACK_S_SELECT2 select,
+ lapack_int* n, float* a, lapack_int* lda, lapack_int* sdim,
+ float* wr, float* wi, float* vs, lapack_int* ldvs,
+ float* work, lapack_int* lwork, lapack_logical* bwork,
+ lapack_int *info );
+void LAPACK_dgees( char* jobvs, char* sort, LAPACK_D_SELECT2 select,
+ lapack_int* n, double* a, lapack_int* lda, lapack_int* sdim,
+ double* wr, double* wi, double* vs, lapack_int* ldvs,
+ double* work, lapack_int* lwork, lapack_logical* bwork,
+ lapack_int *info );
+void LAPACK_cgees( char* jobvs, char* sort, LAPACK_C_SELECT1 select,
+ lapack_int* n, lapack_complex_float* a, lapack_int* lda,
+ lapack_int* sdim, lapack_complex_float* w,
+ lapack_complex_float* vs, lapack_int* ldvs,
+ lapack_complex_float* work, lapack_int* lwork, float* rwork,
+ lapack_logical* bwork, lapack_int *info );
+void LAPACK_zgees( char* jobvs, char* sort, LAPACK_Z_SELECT1 select,
+ lapack_int* n, lapack_complex_double* a, lapack_int* lda,
+ lapack_int* sdim, lapack_complex_double* w,
+ lapack_complex_double* vs, lapack_int* ldvs,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_logical* bwork, lapack_int *info );
+void LAPACK_sgeesx( char* jobvs, char* sort, LAPACK_S_SELECT2 select,
+ char* sense, lapack_int* n, float* a, lapack_int* lda,
+ lapack_int* sdim, float* wr, float* wi, float* vs,
+ lapack_int* ldvs, float* rconde, float* rcondv, float* work,
+ lapack_int* lwork, lapack_int* iwork, lapack_int* liwork,
+ lapack_logical* bwork, lapack_int *info );
+void LAPACK_dgeesx( char* jobvs, char* sort, LAPACK_D_SELECT2 select,
+ char* sense, lapack_int* n, double* a, lapack_int* lda,
+ lapack_int* sdim, double* wr, double* wi, double* vs,
+ lapack_int* ldvs, double* rconde, double* rcondv,
+ double* work, lapack_int* lwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_logical* bwork,
+ lapack_int *info );
+void LAPACK_cgeesx( char* jobvs, char* sort, LAPACK_C_SELECT1 select,
+ char* sense, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_int* sdim, lapack_complex_float* w,
+ lapack_complex_float* vs, lapack_int* ldvs, float* rconde,
+ float* rcondv, lapack_complex_float* work,
+ lapack_int* lwork, float* rwork, lapack_logical* bwork,
+ lapack_int *info );
+void LAPACK_zgeesx( char* jobvs, char* sort, LAPACK_Z_SELECT1 select,
+ char* sense, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_int* sdim, lapack_complex_double* w,
+ lapack_complex_double* vs, lapack_int* ldvs, double* rconde,
+ double* rcondv, lapack_complex_double* work,
+ lapack_int* lwork, double* rwork, lapack_logical* bwork,
+ lapack_int *info );
+void LAPACK_sgeev( char* jobvl, char* jobvr, lapack_int* n, float* a,
+ lapack_int* lda, float* wr, float* wi, float* vl,
+ lapack_int* ldvl, float* vr, lapack_int* ldvr, float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_dgeev( char* jobvl, char* jobvr, lapack_int* n, double* a,
+ lapack_int* lda, double* wr, double* wi, double* vl,
+ lapack_int* ldvl, double* vr, lapack_int* ldvr, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_cgeev( char* jobvl, char* jobvr, lapack_int* n,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* w, lapack_complex_float* vl,
+ lapack_int* ldvl, lapack_complex_float* vr, lapack_int* ldvr,
+ lapack_complex_float* work, lapack_int* lwork, float* rwork,
+ lapack_int *info );
+void LAPACK_zgeev( char* jobvl, char* jobvr, lapack_int* n,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* w, lapack_complex_double* vl,
+ lapack_int* ldvl, lapack_complex_double* vr,
+ lapack_int* ldvr, lapack_complex_double* work,
+ lapack_int* lwork, double* rwork, lapack_int *info );
+void LAPACK_sgeevx( char* balanc, char* jobvl, char* jobvr, char* sense,
+ lapack_int* n, float* a, lapack_int* lda, float* wr,
+ float* wi, float* vl, lapack_int* ldvl, float* vr,
+ lapack_int* ldvr, lapack_int* ilo, lapack_int* ihi,
+ float* scale, float* abnrm, float* rconde, float* rcondv,
+ float* work, lapack_int* lwork, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_dgeevx( char* balanc, char* jobvl, char* jobvr, char* sense,
+ lapack_int* n, double* a, lapack_int* lda, double* wr,
+ double* wi, double* vl, lapack_int* ldvl, double* vr,
+ lapack_int* ldvr, lapack_int* ilo, lapack_int* ihi,
+ double* scale, double* abnrm, double* rconde,
+ double* rcondv, double* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_cgeevx( char* balanc, char* jobvl, char* jobvr, char* sense,
+ lapack_int* n, lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* w, lapack_complex_float* vl,
+ lapack_int* ldvl, lapack_complex_float* vr,
+ lapack_int* ldvr, lapack_int* ilo, lapack_int* ihi,
+ float* scale, float* abnrm, float* rconde, float* rcondv,
+ lapack_complex_float* work, lapack_int* lwork, float* rwork,
+ lapack_int *info );
+void LAPACK_zgeevx( char* balanc, char* jobvl, char* jobvr, char* sense,
+ lapack_int* n, lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* w, lapack_complex_double* vl,
+ lapack_int* ldvl, lapack_complex_double* vr,
+ lapack_int* ldvr, lapack_int* ilo, lapack_int* ihi,
+ double* scale, double* abnrm, double* rconde,
+ double* rcondv, lapack_complex_double* work,
+ lapack_int* lwork, double* rwork, lapack_int *info );
+void LAPACK_sgesvd( char* jobu, char* jobvt, lapack_int* m, lapack_int* n,
+ float* a, lapack_int* lda, float* s, float* u,
+ lapack_int* ldu, float* vt, lapack_int* ldvt, float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_dgesvd( char* jobu, char* jobvt, lapack_int* m, lapack_int* n,
+ double* a, lapack_int* lda, double* s, double* u,
+ lapack_int* ldu, double* vt, lapack_int* ldvt, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_cgesvd( char* jobu, char* jobvt, lapack_int* m, lapack_int* n,
+ lapack_complex_float* a, lapack_int* lda, float* s,
+ lapack_complex_float* u, lapack_int* ldu,
+ lapack_complex_float* vt, lapack_int* ldvt,
+ lapack_complex_float* work, lapack_int* lwork, float* rwork,
+ lapack_int *info );
+void LAPACK_zgesvd( char* jobu, char* jobvt, lapack_int* m, lapack_int* n,
+ lapack_complex_double* a, lapack_int* lda, double* s,
+ lapack_complex_double* u, lapack_int* ldu,
+ lapack_complex_double* vt, lapack_int* ldvt,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_int *info );
+void LAPACK_sgesdd( char* jobz, lapack_int* m, lapack_int* n, float* a,
+ lapack_int* lda, float* s, float* u, lapack_int* ldu,
+ float* vt, lapack_int* ldvt, float* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_dgesdd( char* jobz, lapack_int* m, lapack_int* n, double* a,
+ lapack_int* lda, double* s, double* u, lapack_int* ldu,
+ double* vt, lapack_int* ldvt, double* work,
+ lapack_int* lwork, lapack_int* iwork, lapack_int *info );
+void LAPACK_cgesdd( char* jobz, lapack_int* m, lapack_int* n,
+ lapack_complex_float* a, lapack_int* lda, float* s,
+ lapack_complex_float* u, lapack_int* ldu,
+ lapack_complex_float* vt, lapack_int* ldvt,
+ lapack_complex_float* work, lapack_int* lwork, float* rwork,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_zgesdd( char* jobz, lapack_int* m, lapack_int* n,
+ lapack_complex_double* a, lapack_int* lda, double* s,
+ lapack_complex_double* u, lapack_int* ldu,
+ lapack_complex_double* vt, lapack_int* ldvt,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_int* iwork, lapack_int *info );
+void LAPACK_dgejsv( char* joba, char* jobu, char* jobv, char* jobr, char* jobt,
+ char* jobp, lapack_int* m, lapack_int* n, double* a,
+ lapack_int* lda, double* sva, double* u, lapack_int* ldu,
+ double* v, lapack_int* ldv, double* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_sgejsv( char* joba, char* jobu, char* jobv, char* jobr, char* jobt,
+ char* jobp, lapack_int* m, lapack_int* n, float* a,
+ lapack_int* lda, float* sva, float* u, lapack_int* ldu,
+ float* v, lapack_int* ldv, float* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_dgesvj( char* joba, char* jobu, char* jobv, lapack_int* m,
+ lapack_int* n, double* a, lapack_int* lda, double* sva,
+ lapack_int* mv, double* v, lapack_int* ldv, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_sgesvj( char* joba, char* jobu, char* jobv, lapack_int* m,
+ lapack_int* n, float* a, lapack_int* lda, float* sva,
+ lapack_int* mv, float* v, lapack_int* ldv, float* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_sggsvd( char* jobu, char* jobv, char* jobq, lapack_int* m,
+ lapack_int* n, lapack_int* p, lapack_int* k, lapack_int* l,
+ float* a, lapack_int* lda, float* b, lapack_int* ldb,
+ float* alpha, float* beta, float* u, lapack_int* ldu,
+ float* v, lapack_int* ldv, float* q, lapack_int* ldq,
+ float* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_dggsvd( char* jobu, char* jobv, char* jobq, lapack_int* m,
+ lapack_int* n, lapack_int* p, lapack_int* k, lapack_int* l,
+ double* a, lapack_int* lda, double* b, lapack_int* ldb,
+ double* alpha, double* beta, double* u, lapack_int* ldu,
+ double* v, lapack_int* ldv, double* q, lapack_int* ldq,
+ double* work, lapack_int* iwork, lapack_int *info );
+void LAPACK_cggsvd( char* jobu, char* jobv, char* jobq, lapack_int* m,
+ lapack_int* n, lapack_int* p, lapack_int* k, lapack_int* l,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb, float* alpha,
+ float* beta, lapack_complex_float* u, lapack_int* ldu,
+ lapack_complex_float* v, lapack_int* ldv,
+ lapack_complex_float* q, lapack_int* ldq,
+ lapack_complex_float* work, float* rwork, lapack_int* iwork,
+ lapack_int *info );
+void LAPACK_zggsvd( char* jobu, char* jobv, char* jobq, lapack_int* m,
+ lapack_int* n, lapack_int* p, lapack_int* k, lapack_int* l,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb, double* alpha,
+ double* beta, lapack_complex_double* u, lapack_int* ldu,
+ lapack_complex_double* v, lapack_int* ldv,
+ lapack_complex_double* q, lapack_int* ldq,
+ lapack_complex_double* work, double* rwork,
+ lapack_int* iwork, lapack_int *info );
+void LAPACK_ssygv( lapack_int* itype, char* jobz, char* uplo, lapack_int* n,
+ float* a, lapack_int* lda, float* b, lapack_int* ldb,
+ float* w, float* work, lapack_int* lwork, lapack_int *info );
+void LAPACK_dsygv( lapack_int* itype, char* jobz, char* uplo, lapack_int* n,
+ double* a, lapack_int* lda, double* b, lapack_int* ldb,
+ double* w, double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_chegv( lapack_int* itype, char* jobz, char* uplo, lapack_int* n,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb, float* w,
+ lapack_complex_float* work, lapack_int* lwork, float* rwork,
+ lapack_int *info );
+void LAPACK_zhegv( lapack_int* itype, char* jobz, char* uplo, lapack_int* n,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb, double* w,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_int *info );
+void LAPACK_ssygvd( lapack_int* itype, char* jobz, char* uplo, lapack_int* n,
+ float* a, lapack_int* lda, float* b, lapack_int* ldb,
+ float* w, float* work, lapack_int* lwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_int *info );
+void LAPACK_dsygvd( lapack_int* itype, char* jobz, char* uplo, lapack_int* n,
+ double* a, lapack_int* lda, double* b, lapack_int* ldb,
+ double* w, double* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_chegvd( lapack_int* itype, char* jobz, char* uplo, lapack_int* n,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb, float* w,
+ lapack_complex_float* work, lapack_int* lwork, float* rwork,
+ lapack_int* lrwork, lapack_int* iwork, lapack_int* liwork,
+ lapack_int *info );
+void LAPACK_zhegvd( lapack_int* itype, char* jobz, char* uplo, lapack_int* n,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb, double* w,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_int* lrwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_int *info );
+void LAPACK_ssygvx( lapack_int* itype, char* jobz, char* range, char* uplo,
+ lapack_int* n, float* a, lapack_int* lda, float* b,
+ lapack_int* ldb, float* vl, float* vu, lapack_int* il,
+ lapack_int* iu, float* abstol, lapack_int* m, float* w,
+ float* z, lapack_int* ldz, float* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* ifail, lapack_int *info );
+void LAPACK_dsygvx( lapack_int* itype, char* jobz, char* range, char* uplo,
+ lapack_int* n, double* a, lapack_int* lda, double* b,
+ lapack_int* ldb, double* vl, double* vu, lapack_int* il,
+ lapack_int* iu, double* abstol, lapack_int* m, double* w,
+ double* z, lapack_int* ldz, double* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* ifail, lapack_int *info );
+void LAPACK_chegvx( lapack_int* itype, char* jobz, char* range, char* uplo,
+ lapack_int* n, lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb, float* vl,
+ float* vu, lapack_int* il, lapack_int* iu, float* abstol,
+ lapack_int* m, float* w, lapack_complex_float* z,
+ lapack_int* ldz, lapack_complex_float* work,
+ lapack_int* lwork, float* rwork, lapack_int* iwork,
+ lapack_int* ifail, lapack_int *info );
+void LAPACK_zhegvx( lapack_int* itype, char* jobz, char* range, char* uplo,
+ lapack_int* n, lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb, double* vl,
+ double* vu, lapack_int* il, lapack_int* iu, double* abstol,
+ lapack_int* m, double* w, lapack_complex_double* z,
+ lapack_int* ldz, lapack_complex_double* work,
+ lapack_int* lwork, double* rwork, lapack_int* iwork,
+ lapack_int* ifail, lapack_int *info );
+void LAPACK_sspgv( lapack_int* itype, char* jobz, char* uplo, lapack_int* n,
+ float* ap, float* bp, float* w, float* z, lapack_int* ldz,
+ float* work, lapack_int *info );
+void LAPACK_dspgv( lapack_int* itype, char* jobz, char* uplo, lapack_int* n,
+ double* ap, double* bp, double* w, double* z,
+ lapack_int* ldz, double* work, lapack_int *info );
+void LAPACK_chpgv( lapack_int* itype, char* jobz, char* uplo, lapack_int* n,
+ lapack_complex_float* ap, lapack_complex_float* bp, float* w,
+ lapack_complex_float* z, lapack_int* ldz,
+ lapack_complex_float* work, float* rwork, lapack_int *info );
+void LAPACK_zhpgv( lapack_int* itype, char* jobz, char* uplo, lapack_int* n,
+ lapack_complex_double* ap, lapack_complex_double* bp,
+ double* w, lapack_complex_double* z, lapack_int* ldz,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_sspgvd( lapack_int* itype, char* jobz, char* uplo, lapack_int* n,
+ float* ap, float* bp, float* w, float* z, lapack_int* ldz,
+ float* work, lapack_int* lwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_int *info );
+void LAPACK_dspgvd( lapack_int* itype, char* jobz, char* uplo, lapack_int* n,
+ double* ap, double* bp, double* w, double* z,
+ lapack_int* ldz, double* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_int* liwork, lapack_int *info );
+void LAPACK_chpgvd( lapack_int* itype, char* jobz, char* uplo, lapack_int* n,
+ lapack_complex_float* ap, lapack_complex_float* bp,
+ float* w, lapack_complex_float* z, lapack_int* ldz,
+ lapack_complex_float* work, lapack_int* lwork, float* rwork,
+ lapack_int* lrwork, lapack_int* iwork, lapack_int* liwork,
+ lapack_int *info );
+void LAPACK_zhpgvd( lapack_int* itype, char* jobz, char* uplo, lapack_int* n,
+ lapack_complex_double* ap, lapack_complex_double* bp,
+ double* w, lapack_complex_double* z, lapack_int* ldz,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_int* lrwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_int *info );
+void LAPACK_sspgvx( lapack_int* itype, char* jobz, char* range, char* uplo,
+ lapack_int* n, float* ap, float* bp, float* vl, float* vu,
+ lapack_int* il, lapack_int* iu, float* abstol,
+ lapack_int* m, float* w, float* z, lapack_int* ldz,
+ float* work, lapack_int* iwork, lapack_int* ifail,
+ lapack_int *info );
+void LAPACK_dspgvx( lapack_int* itype, char* jobz, char* range, char* uplo,
+ lapack_int* n, double* ap, double* bp, double* vl,
+ double* vu, lapack_int* il, lapack_int* iu, double* abstol,
+ lapack_int* m, double* w, double* z, lapack_int* ldz,
+ double* work, lapack_int* iwork, lapack_int* ifail,
+ lapack_int *info );
+void LAPACK_chpgvx( lapack_int* itype, char* jobz, char* range, char* uplo,
+ lapack_int* n, lapack_complex_float* ap,
+ lapack_complex_float* bp, float* vl, float* vu,
+ lapack_int* il, lapack_int* iu, float* abstol,
+ lapack_int* m, float* w, lapack_complex_float* z,
+ lapack_int* ldz, lapack_complex_float* work, float* rwork,
+ lapack_int* iwork, lapack_int* ifail, lapack_int *info );
+void LAPACK_zhpgvx( lapack_int* itype, char* jobz, char* range, char* uplo,
+ lapack_int* n, lapack_complex_double* ap,
+ lapack_complex_double* bp, double* vl, double* vu,
+ lapack_int* il, lapack_int* iu, double* abstol,
+ lapack_int* m, double* w, lapack_complex_double* z,
+ lapack_int* ldz, lapack_complex_double* work, double* rwork,
+ lapack_int* iwork, lapack_int* ifail, lapack_int *info );
+void LAPACK_ssbgv( char* jobz, char* uplo, lapack_int* n, lapack_int* ka,
+ lapack_int* kb, float* ab, lapack_int* ldab, float* bb,
+ lapack_int* ldbb, float* w, float* z, lapack_int* ldz,
+ float* work, lapack_int *info );
+void LAPACK_dsbgv( char* jobz, char* uplo, lapack_int* n, lapack_int* ka,
+ lapack_int* kb, double* ab, lapack_int* ldab, double* bb,
+ lapack_int* ldbb, double* w, double* z, lapack_int* ldz,
+ double* work, lapack_int *info );
+void LAPACK_chbgv( char* jobz, char* uplo, lapack_int* n, lapack_int* ka,
+ lapack_int* kb, lapack_complex_float* ab, lapack_int* ldab,
+ lapack_complex_float* bb, lapack_int* ldbb, float* w,
+ lapack_complex_float* z, lapack_int* ldz,
+ lapack_complex_float* work, float* rwork, lapack_int *info );
+void LAPACK_zhbgv( char* jobz, char* uplo, lapack_int* n, lapack_int* ka,
+ lapack_int* kb, lapack_complex_double* ab, lapack_int* ldab,
+ lapack_complex_double* bb, lapack_int* ldbb, double* w,
+ lapack_complex_double* z, lapack_int* ldz,
+ lapack_complex_double* work, double* rwork,
+ lapack_int *info );
+void LAPACK_ssbgvd( char* jobz, char* uplo, lapack_int* n, lapack_int* ka,
+ lapack_int* kb, float* ab, lapack_int* ldab, float* bb,
+ lapack_int* ldbb, float* w, float* z, lapack_int* ldz,
+ float* work, lapack_int* lwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_int *info );
+void LAPACK_dsbgvd( char* jobz, char* uplo, lapack_int* n, lapack_int* ka,
+ lapack_int* kb, double* ab, lapack_int* ldab, double* bb,
+ lapack_int* ldbb, double* w, double* z, lapack_int* ldz,
+ double* work, lapack_int* lwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_int *info );
+void LAPACK_chbgvd( char* jobz, char* uplo, lapack_int* n, lapack_int* ka,
+ lapack_int* kb, lapack_complex_float* ab, lapack_int* ldab,
+ lapack_complex_float* bb, lapack_int* ldbb, float* w,
+ lapack_complex_float* z, lapack_int* ldz,
+ lapack_complex_float* work, lapack_int* lwork, float* rwork,
+ lapack_int* lrwork, lapack_int* iwork, lapack_int* liwork,
+ lapack_int *info );
+void LAPACK_zhbgvd( char* jobz, char* uplo, lapack_int* n, lapack_int* ka,
+ lapack_int* kb, lapack_complex_double* ab, lapack_int* ldab,
+ lapack_complex_double* bb, lapack_int* ldbb, double* w,
+ lapack_complex_double* z, lapack_int* ldz,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_int* lrwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_int *info );
+void LAPACK_ssbgvx( char* jobz, char* range, char* uplo, lapack_int* n,
+ lapack_int* ka, lapack_int* kb, float* ab, lapack_int* ldab,
+ float* bb, lapack_int* ldbb, float* q, lapack_int* ldq,
+ float* vl, float* vu, lapack_int* il, lapack_int* iu,
+ float* abstol, lapack_int* m, float* w, float* z,
+ lapack_int* ldz, float* work, lapack_int* iwork,
+ lapack_int* ifail, lapack_int *info );
+void LAPACK_dsbgvx( char* jobz, char* range, char* uplo, lapack_int* n,
+ lapack_int* ka, lapack_int* kb, double* ab,
+ lapack_int* ldab, double* bb, lapack_int* ldbb, double* q,
+ lapack_int* ldq, double* vl, double* vu, lapack_int* il,
+ lapack_int* iu, double* abstol, lapack_int* m, double* w,
+ double* z, lapack_int* ldz, double* work, lapack_int* iwork,
+ lapack_int* ifail, lapack_int *info );
+void LAPACK_chbgvx( char* jobz, char* range, char* uplo, lapack_int* n,
+ lapack_int* ka, lapack_int* kb, lapack_complex_float* ab,
+ lapack_int* ldab, lapack_complex_float* bb,
+ lapack_int* ldbb, lapack_complex_float* q, lapack_int* ldq,
+ float* vl, float* vu, lapack_int* il, lapack_int* iu,
+ float* abstol, lapack_int* m, float* w,
+ lapack_complex_float* z, lapack_int* ldz,
+ lapack_complex_float* work, float* rwork, lapack_int* iwork,
+ lapack_int* ifail, lapack_int *info );
+void LAPACK_zhbgvx( char* jobz, char* range, char* uplo, lapack_int* n,
+ lapack_int* ka, lapack_int* kb, lapack_complex_double* ab,
+ lapack_int* ldab, lapack_complex_double* bb,
+ lapack_int* ldbb, lapack_complex_double* q, lapack_int* ldq,
+ double* vl, double* vu, lapack_int* il, lapack_int* iu,
+ double* abstol, lapack_int* m, double* w,
+ lapack_complex_double* z, lapack_int* ldz,
+ lapack_complex_double* work, double* rwork,
+ lapack_int* iwork, lapack_int* ifail, lapack_int *info );
+void LAPACK_sgges( char* jobvsl, char* jobvsr, char* sort,
+ LAPACK_S_SELECT3 selctg, lapack_int* n, float* a,
+ lapack_int* lda, float* b, lapack_int* ldb, lapack_int* sdim,
+ float* alphar, float* alphai, float* beta, float* vsl,
+ lapack_int* ldvsl, float* vsr, lapack_int* ldvsr,
+ float* work, lapack_int* lwork, lapack_logical* bwork,
+ lapack_int *info );
+void LAPACK_dgges( char* jobvsl, char* jobvsr, char* sort,
+ LAPACK_D_SELECT3 selctg, lapack_int* n, double* a,
+ lapack_int* lda, double* b, lapack_int* ldb,
+ lapack_int* sdim, double* alphar, double* alphai,
+ double* beta, double* vsl, lapack_int* ldvsl, double* vsr,
+ lapack_int* ldvsr, double* work, lapack_int* lwork,
+ lapack_logical* bwork, lapack_int *info );
+void LAPACK_cgges( char* jobvsl, char* jobvsr, char* sort,
+ LAPACK_C_SELECT2 selctg, lapack_int* n,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb, lapack_int* sdim,
+ lapack_complex_float* alpha, lapack_complex_float* beta,
+ lapack_complex_float* vsl, lapack_int* ldvsl,
+ lapack_complex_float* vsr, lapack_int* ldvsr,
+ lapack_complex_float* work, lapack_int* lwork, float* rwork,
+ lapack_logical* bwork, lapack_int *info );
+void LAPACK_zgges( char* jobvsl, char* jobvsr, char* sort,
+ LAPACK_Z_SELECT2 selctg, lapack_int* n,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb, lapack_int* sdim,
+ lapack_complex_double* alpha, lapack_complex_double* beta,
+ lapack_complex_double* vsl, lapack_int* ldvsl,
+ lapack_complex_double* vsr, lapack_int* ldvsr,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_logical* bwork, lapack_int *info );
+void LAPACK_sggesx( char* jobvsl, char* jobvsr, char* sort,
+ LAPACK_S_SELECT3 selctg, char* sense, lapack_int* n,
+ float* a, lapack_int* lda, float* b, lapack_int* ldb,
+ lapack_int* sdim, float* alphar, float* alphai, float* beta,
+ float* vsl, lapack_int* ldvsl, float* vsr,
+ lapack_int* ldvsr, float* rconde, float* rcondv,
+ float* work, lapack_int* lwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_logical* bwork,
+ lapack_int *info );
+void LAPACK_dggesx( char* jobvsl, char* jobvsr, char* sort,
+ LAPACK_D_SELECT3 selctg, char* sense, lapack_int* n,
+ double* a, lapack_int* lda, double* b, lapack_int* ldb,
+ lapack_int* sdim, double* alphar, double* alphai,
+ double* beta, double* vsl, lapack_int* ldvsl, double* vsr,
+ lapack_int* ldvsr, double* rconde, double* rcondv,
+ double* work, lapack_int* lwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_logical* bwork,
+ lapack_int *info );
+void LAPACK_cggesx( char* jobvsl, char* jobvsr, char* sort,
+ LAPACK_C_SELECT2 selctg, char* sense, lapack_int* n,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb, lapack_int* sdim,
+ lapack_complex_float* alpha, lapack_complex_float* beta,
+ lapack_complex_float* vsl, lapack_int* ldvsl,
+ lapack_complex_float* vsr, lapack_int* ldvsr, float* rconde,
+ float* rcondv, lapack_complex_float* work,
+ lapack_int* lwork, float* rwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_logical* bwork,
+ lapack_int *info );
+void LAPACK_zggesx( char* jobvsl, char* jobvsr, char* sort,
+ LAPACK_Z_SELECT2 selctg, char* sense, lapack_int* n,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb, lapack_int* sdim,
+ lapack_complex_double* alpha, lapack_complex_double* beta,
+ lapack_complex_double* vsl, lapack_int* ldvsl,
+ lapack_complex_double* vsr, lapack_int* ldvsr,
+ double* rconde, double* rcondv, lapack_complex_double* work,
+ lapack_int* lwork, double* rwork, lapack_int* iwork,
+ lapack_int* liwork, lapack_logical* bwork,
+ lapack_int *info );
+void LAPACK_sggev( char* jobvl, char* jobvr, lapack_int* n, float* a,
+ lapack_int* lda, float* b, lapack_int* ldb, float* alphar,
+ float* alphai, float* beta, float* vl, lapack_int* ldvl,
+ float* vr, lapack_int* ldvr, float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_dggev( char* jobvl, char* jobvr, lapack_int* n, double* a,
+ lapack_int* lda, double* b, lapack_int* ldb, double* alphar,
+ double* alphai, double* beta, double* vl, lapack_int* ldvl,
+ double* vr, lapack_int* ldvr, double* work,
+ lapack_int* lwork, lapack_int *info );
+void LAPACK_cggev( char* jobvl, char* jobvr, lapack_int* n,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* alpha, lapack_complex_float* beta,
+ lapack_complex_float* vl, lapack_int* ldvl,
+ lapack_complex_float* vr, lapack_int* ldvr,
+ lapack_complex_float* work, lapack_int* lwork, float* rwork,
+ lapack_int *info );
+void LAPACK_zggev( char* jobvl, char* jobvr, lapack_int* n,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* alpha, lapack_complex_double* beta,
+ lapack_complex_double* vl, lapack_int* ldvl,
+ lapack_complex_double* vr, lapack_int* ldvr,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_int *info );
+void LAPACK_sggevx( char* balanc, char* jobvl, char* jobvr, char* sense,
+ lapack_int* n, float* a, lapack_int* lda, float* b,
+ lapack_int* ldb, float* alphar, float* alphai, float* beta,
+ float* vl, lapack_int* ldvl, float* vr, lapack_int* ldvr,
+ lapack_int* ilo, lapack_int* ihi, float* lscale,
+ float* rscale, float* abnrm, float* bbnrm, float* rconde,
+ float* rcondv, float* work, lapack_int* lwork,
+ lapack_int* iwork, lapack_logical* bwork,
+ lapack_int *info );
+void LAPACK_dggevx( char* balanc, char* jobvl, char* jobvr, char* sense,
+ lapack_int* n, double* a, lapack_int* lda, double* b,
+ lapack_int* ldb, double* alphar, double* alphai,
+ double* beta, double* vl, lapack_int* ldvl, double* vr,
+ lapack_int* ldvr, lapack_int* ilo, lapack_int* ihi,
+ double* lscale, double* rscale, double* abnrm,
+ double* bbnrm, double* rconde, double* rcondv, double* work,
+ lapack_int* lwork, lapack_int* iwork, lapack_logical* bwork,
+ lapack_int *info );
+void LAPACK_cggevx( char* balanc, char* jobvl, char* jobvr, char* sense,
+ lapack_int* n, lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* alpha, lapack_complex_float* beta,
+ lapack_complex_float* vl, lapack_int* ldvl,
+ lapack_complex_float* vr, lapack_int* ldvr, lapack_int* ilo,
+ lapack_int* ihi, float* lscale, float* rscale, float* abnrm,
+ float* bbnrm, float* rconde, float* rcondv,
+ lapack_complex_float* work, lapack_int* lwork, float* rwork,
+ lapack_int* iwork, lapack_logical* bwork,
+ lapack_int *info );
+void LAPACK_zggevx( char* balanc, char* jobvl, char* jobvr, char* sense,
+ lapack_int* n, lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* alpha, lapack_complex_double* beta,
+ lapack_complex_double* vl, lapack_int* ldvl,
+ lapack_complex_double* vr, lapack_int* ldvr,
+ lapack_int* ilo, lapack_int* ihi, double* lscale,
+ double* rscale, double* abnrm, double* bbnrm,
+ double* rconde, double* rcondv, lapack_complex_double* work,
+ lapack_int* lwork, double* rwork, lapack_int* iwork,
+ lapack_logical* bwork, lapack_int *info );
+void LAPACK_dsfrk( char* transr, char* uplo, char* trans, lapack_int* n,
+ lapack_int* k, double* alpha, const double* a,
+ lapack_int* lda, double* beta, double* c );
+void LAPACK_ssfrk( char* transr, char* uplo, char* trans, lapack_int* n,
+ lapack_int* k, float* alpha, const float* a, lapack_int* lda,
+ float* beta, float* c );
+void LAPACK_zhfrk( char* transr, char* uplo, char* trans, lapack_int* n,
+ lapack_int* k, double* alpha, const lapack_complex_double* a,
+ lapack_int* lda, double* beta, lapack_complex_double* c );
+void LAPACK_chfrk( char* transr, char* uplo, char* trans, lapack_int* n,
+ lapack_int* k, float* alpha, const lapack_complex_float* a,
+ lapack_int* lda, float* beta, lapack_complex_float* c );
+void LAPACK_dtfsm( char* transr, char* side, char* uplo, char* trans,
+ char* diag, lapack_int* m, lapack_int* n, double* alpha,
+ const double* a, double* b, lapack_int* ldb );
+void LAPACK_stfsm( char* transr, char* side, char* uplo, char* trans,
+ char* diag, lapack_int* m, lapack_int* n, float* alpha,
+ const float* a, float* b, lapack_int* ldb );
+void LAPACK_ztfsm( char* transr, char* side, char* uplo, char* trans,
+ char* diag, lapack_int* m, lapack_int* n,
+ lapack_complex_double* alpha, const lapack_complex_double* a,
+ lapack_complex_double* b, lapack_int* ldb );
+void LAPACK_ctfsm( char* transr, char* side, char* uplo, char* trans,
+ char* diag, lapack_int* m, lapack_int* n,
+ lapack_complex_float* alpha, const lapack_complex_float* a,
+ lapack_complex_float* b, lapack_int* ldb );
+void LAPACK_dtfttp( char* transr, char* uplo, lapack_int* n, const double* arf,
+ double* ap, lapack_int *info );
+void LAPACK_stfttp( char* transr, char* uplo, lapack_int* n, const float* arf,
+ float* ap, lapack_int *info );
+void LAPACK_ztfttp( char* transr, char* uplo, lapack_int* n,
+ const lapack_complex_double* arf, lapack_complex_double* ap,
+ lapack_int *info );
+void LAPACK_ctfttp( char* transr, char* uplo, lapack_int* n,
+ const lapack_complex_float* arf, lapack_complex_float* ap,
+ lapack_int *info );
+void LAPACK_dtfttr( char* transr, char* uplo, lapack_int* n, const double* arf,
+ double* a, lapack_int* lda, lapack_int *info );
+void LAPACK_stfttr( char* transr, char* uplo, lapack_int* n, const float* arf,
+ float* a, lapack_int* lda, lapack_int *info );
+void LAPACK_ztfttr( char* transr, char* uplo, lapack_int* n,
+ const lapack_complex_double* arf, lapack_complex_double* a,
+ lapack_int* lda, lapack_int *info );
+void LAPACK_ctfttr( char* transr, char* uplo, lapack_int* n,
+ const lapack_complex_float* arf, lapack_complex_float* a,
+ lapack_int* lda, lapack_int *info );
+void LAPACK_dtpttf( char* transr, char* uplo, lapack_int* n, const double* ap,
+ double* arf, lapack_int *info );
+void LAPACK_stpttf( char* transr, char* uplo, lapack_int* n, const float* ap,
+ float* arf, lapack_int *info );
+void LAPACK_ztpttf( char* transr, char* uplo, lapack_int* n,
+ const lapack_complex_double* ap, lapack_complex_double* arf,
+ lapack_int *info );
+void LAPACK_ctpttf( char* transr, char* uplo, lapack_int* n,
+ const lapack_complex_float* ap, lapack_complex_float* arf,
+ lapack_int *info );
+void LAPACK_dtpttr( char* uplo, lapack_int* n, const double* ap, double* a,
+ lapack_int* lda, lapack_int *info );
+void LAPACK_stpttr( char* uplo, lapack_int* n, const float* ap, float* a,
+ lapack_int* lda, lapack_int *info );
+void LAPACK_ztpttr( char* uplo, lapack_int* n, const lapack_complex_double* ap,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_int *info );
+void LAPACK_ctpttr( char* uplo, lapack_int* n, const lapack_complex_float* ap,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_int *info );
+void LAPACK_dtrttf( char* transr, char* uplo, lapack_int* n, const double* a,
+ lapack_int* lda, double* arf, lapack_int *info );
+void LAPACK_strttf( char* transr, char* uplo, lapack_int* n, const float* a,
+ lapack_int* lda, float* arf, lapack_int *info );
+void LAPACK_ztrttf( char* transr, char* uplo, lapack_int* n,
+ const lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* arf, lapack_int *info );
+void LAPACK_ctrttf( char* transr, char* uplo, lapack_int* n,
+ const lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* arf, lapack_int *info );
+void LAPACK_dtrttp( char* uplo, lapack_int* n, const double* a, lapack_int* lda,
+ double* ap, lapack_int *info );
+void LAPACK_strttp( char* uplo, lapack_int* n, const float* a, lapack_int* lda,
+ float* ap, lapack_int *info );
+void LAPACK_ztrttp( char* uplo, lapack_int* n, const lapack_complex_double* a,
+ lapack_int* lda, lapack_complex_double* ap,
+ lapack_int *info );
+void LAPACK_ctrttp( char* uplo, lapack_int* n, const lapack_complex_float* a,
+ lapack_int* lda, lapack_complex_float* ap,
+ lapack_int *info );
+void LAPACK_sgeqrfp( lapack_int* m, lapack_int* n, float* a, lapack_int* lda,
+ float* tau, float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_dgeqrfp( lapack_int* m, lapack_int* n, double* a, lapack_int* lda,
+ double* tau, double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_cgeqrfp( lapack_int* m, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_zgeqrfp( lapack_int* m, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int* lwork,
+ lapack_int *info );
+void LAPACK_clacgv( lapack_int* n, lapack_complex_float* x, lapack_int* incx );
+void LAPACK_zlacgv( lapack_int* n, lapack_complex_double* x, lapack_int* incx );
+void LAPACK_slarnv( lapack_int* idist, lapack_int* iseed, lapack_int* n,
+ float* x );
+void LAPACK_dlarnv( lapack_int* idist, lapack_int* iseed, lapack_int* n,
+ double* x );
+void LAPACK_clarnv( lapack_int* idist, lapack_int* iseed, lapack_int* n,
+ lapack_complex_float* x );
+void LAPACK_zlarnv( lapack_int* idist, lapack_int* iseed, lapack_int* n,
+ lapack_complex_double* x );
+void LAPACK_sgeqr2( lapack_int* m, lapack_int* n, float* a, lapack_int* lda,
+ float* tau, float* work, lapack_int *info );
+void LAPACK_dgeqr2( lapack_int* m, lapack_int* n, double* a, lapack_int* lda,
+ double* tau, double* work, lapack_int *info );
+void LAPACK_cgeqr2( lapack_int* m, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int *info );
+void LAPACK_zgeqr2( lapack_int* m, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int *info );
+void LAPACK_slacpy( char* uplo, lapack_int* m, lapack_int* n, const float* a,
+ lapack_int* lda, float* b, lapack_int* ldb );
+void LAPACK_dlacpy( char* uplo, lapack_int* m, lapack_int* n, const double* a,
+ lapack_int* lda, double* b, lapack_int* ldb );
+void LAPACK_clacpy( char* uplo, lapack_int* m, lapack_int* n,
+ const lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb );
+void LAPACK_zlacpy( char* uplo, lapack_int* m, lapack_int* n,
+ const lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb );
+void LAPACK_sgetf2( lapack_int* m, lapack_int* n, float* a, lapack_int* lda,
+ lapack_int* ipiv, lapack_int *info );
+void LAPACK_dgetf2( lapack_int* m, lapack_int* n, double* a, lapack_int* lda,
+ lapack_int* ipiv, lapack_int *info );
+void LAPACK_cgetf2( lapack_int* m, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_int* ipiv, lapack_int *info );
+void LAPACK_zgetf2( lapack_int* m, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_int* ipiv, lapack_int *info );
+void LAPACK_slaswp( lapack_int* n, float* a, lapack_int* lda, lapack_int* k1,
+ lapack_int* k2, const lapack_int* ipiv, lapack_int* incx );
+void LAPACK_dlaswp( lapack_int* n, double* a, lapack_int* lda, lapack_int* k1,
+ lapack_int* k2, const lapack_int* ipiv, lapack_int* incx );
+void LAPACK_claswp( lapack_int* n, lapack_complex_float* a, lapack_int* lda,
+ lapack_int* k1, lapack_int* k2, const lapack_int* ipiv,
+ lapack_int* incx );
+void LAPACK_zlaswp( lapack_int* n, lapack_complex_double* a, lapack_int* lda,
+ lapack_int* k1, lapack_int* k2, const lapack_int* ipiv,
+ lapack_int* incx );
+float LAPACK_slange( char* norm, lapack_int* m, lapack_int* n, const float* a,
+ lapack_int* lda, float* work );
+double LAPACK_dlange( char* norm, lapack_int* m, lapack_int* n, const double* a,
+ lapack_int* lda, double* work );
+float LAPACK_clange( char* norm, lapack_int* m, lapack_int* n,
+ const lapack_complex_float* a, lapack_int* lda, float* work );
+double LAPACK_zlange( char* norm, lapack_int* m, lapack_int* n,
+ const lapack_complex_double* a, lapack_int* lda, double* work );
+float LAPACK_clanhe( char* norm, char* uplo, lapack_int* n,
+ const lapack_complex_float* a, lapack_int* lda, float* work );
+double LAPACK_zlanhe( char* norm, char* uplo, lapack_int* n,
+ const lapack_complex_double* a, lapack_int* lda, double* work );
+float LAPACK_slansy( char* norm, char* uplo, lapack_int* n, const float* a,
+ lapack_int* lda, float* work );
+double LAPACK_dlansy( char* norm, char* uplo, lapack_int* n, const double* a,
+ lapack_int* lda, double* work );
+float LAPACK_clansy( char* norm, char* uplo, lapack_int* n,
+ const lapack_complex_float* a, lapack_int* lda, float* work );
+double LAPACK_zlansy( char* norm, char* uplo, lapack_int* n,
+ const lapack_complex_double* a, lapack_int* lda, double* work );
+float LAPACK_slantr( char* norm, char* uplo, char* diag, lapack_int* m,
+ lapack_int* n, const float* a, lapack_int* lda, float* work );
+double LAPACK_dlantr( char* norm, char* uplo, char* diag, lapack_int* m,
+ lapack_int* n, const double* a, lapack_int* lda, double* work );
+float LAPACK_clantr( char* norm, char* uplo, char* diag, lapack_int* m,
+ lapack_int* n, const lapack_complex_float* a, lapack_int* lda,
+ float* work );
+double LAPACK_zlantr( char* norm, char* uplo, char* diag, lapack_int* m,
+ lapack_int* n, const lapack_complex_double* a, lapack_int* lda,
+ double* work );
+float LAPACK_slamch( char* cmach );
+double LAPACK_dlamch( char* cmach );
+void LAPACK_sgelq2( lapack_int* m, lapack_int* n, float* a, lapack_int* lda,
+ float* tau, float* work, lapack_int *info );
+void LAPACK_dgelq2( lapack_int* m, lapack_int* n, double* a, lapack_int* lda,
+ double* tau, double* work, lapack_int *info );
+void LAPACK_cgelq2( lapack_int* m, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_complex_float* tau,
+ lapack_complex_float* work, lapack_int *info );
+void LAPACK_zgelq2( lapack_int* m, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_complex_double* tau,
+ lapack_complex_double* work, lapack_int *info );
+void LAPACK_slarfb( char* side, char* trans, char* direct, char* storev,
+ lapack_int* m, lapack_int* n, lapack_int* k, const float* v,
+ lapack_int* ldv, const float* t, lapack_int* ldt, float* c,
+ lapack_int* ldc, float* work, lapack_int* ldwork );
+void LAPACK_dlarfb( char* side, char* trans, char* direct, char* storev,
+ lapack_int* m, lapack_int* n, lapack_int* k,
+ const double* v, lapack_int* ldv, const double* t,
+ lapack_int* ldt, double* c, lapack_int* ldc, double* work,
+ lapack_int* ldwork );
+void LAPACK_clarfb( char* side, char* trans, char* direct, char* storev,
+ lapack_int* m, lapack_int* n, lapack_int* k,
+ const lapack_complex_float* v, lapack_int* ldv,
+ const lapack_complex_float* t, lapack_int* ldt,
+ lapack_complex_float* c, lapack_int* ldc,
+ lapack_complex_float* work, lapack_int* ldwork );
+void LAPACK_zlarfb( char* side, char* trans, char* direct, char* storev,
+ lapack_int* m, lapack_int* n, lapack_int* k,
+ const lapack_complex_double* v, lapack_int* ldv,
+ const lapack_complex_double* t, lapack_int* ldt,
+ lapack_complex_double* c, lapack_int* ldc,
+ lapack_complex_double* work, lapack_int* ldwork );
+void LAPACK_slarfg( lapack_int* n, float* alpha, float* x, lapack_int* incx,
+ float* tau );
+void LAPACK_dlarfg( lapack_int* n, double* alpha, double* x, lapack_int* incx,
+ double* tau );
+void LAPACK_clarfg( lapack_int* n, lapack_complex_float* alpha,
+ lapack_complex_float* x, lapack_int* incx,
+ lapack_complex_float* tau );
+void LAPACK_zlarfg( lapack_int* n, lapack_complex_double* alpha,
+ lapack_complex_double* x, lapack_int* incx,
+ lapack_complex_double* tau );
+void LAPACK_slarft( char* direct, char* storev, lapack_int* n, lapack_int* k,
+ const float* v, lapack_int* ldv, const float* tau, float* t,
+ lapack_int* ldt );
+void LAPACK_dlarft( char* direct, char* storev, lapack_int* n, lapack_int* k,
+ const double* v, lapack_int* ldv, const double* tau,
+ double* t, lapack_int* ldt );
+void LAPACK_clarft( char* direct, char* storev, lapack_int* n, lapack_int* k,
+ const lapack_complex_float* v, lapack_int* ldv,
+ const lapack_complex_float* tau, lapack_complex_float* t,
+ lapack_int* ldt );
+void LAPACK_zlarft( char* direct, char* storev, lapack_int* n, lapack_int* k,
+ const lapack_complex_double* v, lapack_int* ldv,
+ const lapack_complex_double* tau, lapack_complex_double* t,
+ lapack_int* ldt );
+void LAPACK_slarfx( char* side, lapack_int* m, lapack_int* n, const float* v,
+ float* tau, float* c, lapack_int* ldc, float* work );
+void LAPACK_dlarfx( char* side, lapack_int* m, lapack_int* n, const double* v,
+ double* tau, double* c, lapack_int* ldc, double* work );
+void LAPACK_clarfx( char* side, lapack_int* m, lapack_int* n,
+ const lapack_complex_float* v, lapack_complex_float* tau,
+ lapack_complex_float* c, lapack_int* ldc,
+ lapack_complex_float* work );
+void LAPACK_zlarfx( char* side, lapack_int* m, lapack_int* n,
+ const lapack_complex_double* v, lapack_complex_double* tau,
+ lapack_complex_double* c, lapack_int* ldc,
+ lapack_complex_double* work );
+void LAPACK_slatms( lapack_int* m, lapack_int* n, char* dist, lapack_int* iseed,
+ char* sym, float* d, lapack_int* mode, float* cond,
+ float* dmax, lapack_int* kl, lapack_int* ku, char* pack,
+ float* a, lapack_int* lda, float* work, lapack_int *info );
+void LAPACK_dlatms( lapack_int* m, lapack_int* n, char* dist, lapack_int* iseed,
+ char* sym, double* d, lapack_int* mode, double* cond,
+ double* dmax, lapack_int* kl, lapack_int* ku, char* pack,
+ double* a, lapack_int* lda, double* work,
+ lapack_int *info );
+void LAPACK_clatms( lapack_int* m, lapack_int* n, char* dist, lapack_int* iseed,
+ char* sym, float* d, lapack_int* mode, float* cond,
+ float* dmax, lapack_int* kl, lapack_int* ku, char* pack,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* work, lapack_int *info );
+void LAPACK_zlatms( lapack_int* m, lapack_int* n, char* dist, lapack_int* iseed,
+ char* sym, double* d, lapack_int* mode, double* cond,
+ double* dmax, lapack_int* kl, lapack_int* ku, char* pack,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* work, lapack_int *info );
+void LAPACK_slag2d( lapack_int* m, lapack_int* n, const float* sa,
+ lapack_int* ldsa, double* a, lapack_int* lda,
+ lapack_int *info );
+void LAPACK_dlag2s( lapack_int* m, lapack_int* n, const double* a,
+ lapack_int* lda, float* sa, lapack_int* ldsa,
+ lapack_int *info );
+void LAPACK_clag2z( lapack_int* m, lapack_int* n,
+ const lapack_complex_float* sa, lapack_int* ldsa,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_int *info );
+void LAPACK_zlag2c( lapack_int* m, lapack_int* n,
+ const lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_float* sa, lapack_int* ldsa,
+ lapack_int *info );
+void LAPACK_slauum( char* uplo, lapack_int* n, float* a, lapack_int* lda,
+ lapack_int *info );
+void LAPACK_dlauum( char* uplo, lapack_int* n, double* a, lapack_int* lda,
+ lapack_int *info );
+void LAPACK_clauum( char* uplo, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_int *info );
+void LAPACK_zlauum( char* uplo, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_int *info );
+void LAPACK_slagge( lapack_int* m, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, const float* d, float* a, lapack_int* lda,
+ lapack_int* iseed, float* work, lapack_int *info );
+void LAPACK_dlagge( lapack_int* m, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, const double* d, double* a, lapack_int* lda,
+ lapack_int* iseed, double* work, lapack_int *info );
+void LAPACK_clagge( lapack_int* m, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, const float* d, lapack_complex_float* a,
+ lapack_int* lda, lapack_int* iseed,
+ lapack_complex_float* work, lapack_int *info );
+void LAPACK_zlagge( lapack_int* m, lapack_int* n, lapack_int* kl,
+ lapack_int* ku, const double* d, lapack_complex_double* a,
+ lapack_int* lda, lapack_int* iseed,
+ lapack_complex_double* work, lapack_int *info );
+void LAPACK_slaset( char* uplo, lapack_int* m, lapack_int* n, float* alpha,
+ float* beta, float* a, lapack_int* lda );
+void LAPACK_dlaset( char* uplo, lapack_int* m, lapack_int* n, double* alpha,
+ double* beta, double* a, lapack_int* lda );
+void LAPACK_claset( char* uplo, lapack_int* m, lapack_int* n,
+ lapack_complex_float* alpha, lapack_complex_float* beta,
+ lapack_complex_float* a, lapack_int* lda );
+void LAPACK_zlaset( char* uplo, lapack_int* m, lapack_int* n,
+ lapack_complex_double* alpha, lapack_complex_double* beta,
+ lapack_complex_double* a, lapack_int* lda );
+void LAPACK_slasrt( char* id, lapack_int* n, float* d, lapack_int *info );
+void LAPACK_dlasrt( char* id, lapack_int* n, double* d, lapack_int *info );
+void LAPACK_claghe( lapack_int* n, lapack_int* k, const float* d,
+ lapack_complex_float* a, lapack_int* lda, lapack_int* iseed,
+ lapack_complex_float* work, lapack_int *info );
+void LAPACK_zlaghe( lapack_int* n, lapack_int* k, const double* d,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_int* iseed, lapack_complex_double* work,
+ lapack_int *info );
+void LAPACK_slagsy( lapack_int* n, lapack_int* k, const float* d, float* a,
+ lapack_int* lda, lapack_int* iseed, float* work,
+ lapack_int *info );
+void LAPACK_dlagsy( lapack_int* n, lapack_int* k, const double* d, double* a,
+ lapack_int* lda, lapack_int* iseed, double* work,
+ lapack_int *info );
+void LAPACK_clagsy( lapack_int* n, lapack_int* k, const float* d,
+ lapack_complex_float* a, lapack_int* lda, lapack_int* iseed,
+ lapack_complex_float* work, lapack_int *info );
+void LAPACK_zlagsy( lapack_int* n, lapack_int* k, const double* d,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_int* iseed, lapack_complex_double* work,
+ lapack_int *info );
+void LAPACK_slapmr( lapack_logical* forwrd, lapack_int* m, lapack_int* n,
+ float* x, lapack_int* ldx, lapack_int* k );
+void LAPACK_dlapmr( lapack_logical* forwrd, lapack_int* m, lapack_int* n,
+ double* x, lapack_int* ldx, lapack_int* k );
+void LAPACK_clapmr( lapack_logical* forwrd, lapack_int* m, lapack_int* n,
+ lapack_complex_float* x, lapack_int* ldx, lapack_int* k );
+void LAPACK_zlapmr( lapack_logical* forwrd, lapack_int* m, lapack_int* n,
+ lapack_complex_double* x, lapack_int* ldx, lapack_int* k );
+float LAPACK_slapy2( float* x, float* y );
+double LAPACK_dlapy2( double* x, double* y );
+float LAPACK_slapy3( float* x, float* y, float* z );
+double LAPACK_dlapy3( double* x, double* y, double* z );
+void LAPACK_slartgp( float* f, float* g, float* cs, float* sn, float* r );
+void LAPACK_dlartgp( double* f, double* g, double* cs, double* sn, double* r );
+void LAPACK_slartgs( float* x, float* y, float* sigma, float* cs, float* sn );
+void LAPACK_dlartgs( double* x, double* y, double* sigma, double* cs,
+ double* sn );
+// LAPACK 3.3.0
+void LAPACK_cbbcsd( char* jobu1, char* jobu2,
+ char* jobv1t, char* jobv2t, char* trans,
+ lapack_int* m, lapack_int* p, lapack_int* q,
+ float* theta, float* phi,
+ lapack_complex_float* u1, lapack_int* ldu1,
+ lapack_complex_float* u2, lapack_int* ldu2,
+ lapack_complex_float* v1t, lapack_int* ldv1t,
+ lapack_complex_float* v2t, lapack_int* ldv2t,
+ float* b11d, float* b11e, float* b12d,
+ float* b12e, float* b21d, float* b21e,
+ float* b22d, float* b22e, float* rwork,
+ lapack_int* lrwork , lapack_int *info );
+void LAPACK_cheswapr( char* uplo, lapack_int* n,
+ lapack_complex_float* a, lapack_int* i1,
+ lapack_int* i2 );
+void LAPACK_chetri2( char* uplo, lapack_int* n,
+ lapack_complex_float* a, lapack_int* lda,
+ const lapack_int* ipiv,
+ lapack_complex_float* work, lapack_int* lwork , lapack_int *info );
+void LAPACK_chetri2x( char* uplo, lapack_int* n,
+ lapack_complex_float* a, lapack_int* lda,
+ const lapack_int* ipiv,
+ lapack_complex_float* work, lapack_int* nb , lapack_int *info );
+void LAPACK_chetrs2( char* uplo, lapack_int* n,
+ lapack_int* nrhs, const lapack_complex_float* a,
+ lapack_int* lda, const lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* work , lapack_int *info );
+void LAPACK_csyconv( char* uplo, char* way,
+ lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, const lapack_int* ipiv,
+ lapack_complex_float* work , lapack_int *info );
+void LAPACK_csyswapr( char* uplo, lapack_int* n,
+ lapack_complex_float* a, lapack_int* i1,
+ lapack_int* i2 );
+void LAPACK_csytri2( char* uplo, lapack_int* n,
+ lapack_complex_float* a, lapack_int* lda,
+ const lapack_int* ipiv,
+ lapack_complex_float* work, lapack_int* lwork , lapack_int *info );
+void LAPACK_csytri2x( char* uplo, lapack_int* n,
+ lapack_complex_float* a, lapack_int* lda,
+ const lapack_int* ipiv,
+ lapack_complex_float* work, lapack_int* nb , lapack_int *info );
+void LAPACK_csytrs2( char* uplo, lapack_int* n,
+ lapack_int* nrhs, const lapack_complex_float* a,
+ lapack_int* lda, const lapack_int* ipiv,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* work , lapack_int *info );
+void LAPACK_cunbdb( char* trans, char* signs,
+ lapack_int* m, lapack_int* p, lapack_int* q,
+ lapack_complex_float* x11, lapack_int* ldx11,
+ lapack_complex_float* x12, lapack_int* ldx12,
+ lapack_complex_float* x21, lapack_int* ldx21,
+ lapack_complex_float* x22, lapack_int* ldx22,
+ float* theta, float* phi,
+ lapack_complex_float* taup1,
+ lapack_complex_float* taup2,
+ lapack_complex_float* tauq1,
+ lapack_complex_float* tauq2,
+ lapack_complex_float* work, lapack_int* lwork , lapack_int *info );
+void LAPACK_cuncsd( char* jobu1, char* jobu2,
+ char* jobv1t, char* jobv2t, char* trans,
+ char* signs, lapack_int* m, lapack_int* p,
+ lapack_int* q, lapack_complex_float* x11,
+ lapack_int* ldx11, lapack_complex_float* x12,
+ lapack_int* ldx12, lapack_complex_float* x21,
+ lapack_int* ldx21, lapack_complex_float* x22,
+ lapack_int* ldx22, float* theta,
+ lapack_complex_float* u1, lapack_int* ldu1,
+ lapack_complex_float* u2, lapack_int* ldu2,
+ lapack_complex_float* v1t, lapack_int* ldv1t,
+ lapack_complex_float* v2t, lapack_int* ldv2t,
+ lapack_complex_float* work, lapack_int* lwork,
+ float* rwork, lapack_int* lrwork,
+ lapack_int* iwork , lapack_int *info );
+void LAPACK_dbbcsd( char* jobu1, char* jobu2,
+ char* jobv1t, char* jobv2t, char* trans,
+ lapack_int* m, lapack_int* p, lapack_int* q,
+ double* theta, double* phi, double* u1,
+ lapack_int* ldu1, double* u2, lapack_int* ldu2,
+ double* v1t, lapack_int* ldv1t, double* v2t,
+ lapack_int* ldv2t, double* b11d, double* b11e,
+ double* b12d, double* b12e, double* b21d,
+ double* b21e, double* b22d, double* b22e,
+ double* work, lapack_int* lwork , lapack_int *info );
+void LAPACK_dorbdb( char* trans, char* signs,
+ lapack_int* m, lapack_int* p, lapack_int* q,
+ double* x11, lapack_int* ldx11, double* x12,
+ lapack_int* ldx12, double* x21, lapack_int* ldx21,
+ double* x22, lapack_int* ldx22, double* theta,
+ double* phi, double* taup1, double* taup2,
+ double* tauq1, double* tauq2, double* work,
+ lapack_int* lwork , lapack_int *info );
+void LAPACK_dorcsd( char* jobu1, char* jobu2,
+ char* jobv1t, char* jobv2t, char* trans,
+ char* signs, lapack_int* m, lapack_int* p,
+ lapack_int* q, double* x11, lapack_int* ldx11,
+ double* x12, lapack_int* ldx12, double* x21,
+ lapack_int* ldx21, double* x22, lapack_int* ldx22,
+ double* theta, double* u1, lapack_int* ldu1,
+ double* u2, lapack_int* ldu2, double* v1t,
+ lapack_int* ldv1t, double* v2t, lapack_int* ldv2t,
+ double* work, lapack_int* lwork,
+ lapack_int* iwork , lapack_int *info );
+void LAPACK_dsyconv( char* uplo, char* way,
+ lapack_int* n, double* a, lapack_int* lda,
+ const lapack_int* ipiv, double* work , lapack_int *info );
+void LAPACK_dsyswapr( char* uplo, lapack_int* n,
+ double* a, lapack_int* i1, lapack_int* i2 );
+void LAPACK_dsytri2( char* uplo, lapack_int* n,
+ double* a, lapack_int* lda,
+ const lapack_int* ipiv,
+ lapack_complex_double* work, lapack_int* lwork , lapack_int *info );
+void LAPACK_dsytri2x( char* uplo, lapack_int* n,
+ double* a, lapack_int* lda,
+ const lapack_int* ipiv, double* work,
+ lapack_int* nb , lapack_int *info );
+void LAPACK_dsytrs2( char* uplo, lapack_int* n,
+ lapack_int* nrhs, const double* a,
+ lapack_int* lda, const lapack_int* ipiv,
+ double* b, lapack_int* ldb, double* work , lapack_int *info );
+void LAPACK_sbbcsd( char* jobu1, char* jobu2,
+ char* jobv1t, char* jobv2t, char* trans,
+ lapack_int* m, lapack_int* p, lapack_int* q,
+ float* theta, float* phi, float* u1,
+ lapack_int* ldu1, float* u2, lapack_int* ldu2,
+ float* v1t, lapack_int* ldv1t, float* v2t,
+ lapack_int* ldv2t, float* b11d, float* b11e,
+ float* b12d, float* b12e, float* b21d,
+ float* b21e, float* b22d, float* b22e,
+ float* work, lapack_int* lwork , lapack_int *info );
+void LAPACK_sorbdb( char* trans, char* signs,
+ lapack_int* m, lapack_int* p, lapack_int* q,
+ float* x11, lapack_int* ldx11, float* x12,
+ lapack_int* ldx12, float* x21, lapack_int* ldx21,
+ float* x22, lapack_int* ldx22, float* theta,
+ float* phi, float* taup1, float* taup2,
+ float* tauq1, float* tauq2, float* work,
+ lapack_int* lwork , lapack_int *info );
+void LAPACK_sorcsd( char* jobu1, char* jobu2,
+ char* jobv1t, char* jobv2t, char* trans,
+ char* signs, lapack_int* m, lapack_int* p,
+ lapack_int* q, float* x11, lapack_int* ldx11,
+ float* x12, lapack_int* ldx12, float* x21,
+ lapack_int* ldx21, float* x22, lapack_int* ldx22,
+ float* theta, float* u1, lapack_int* ldu1,
+ float* u2, lapack_int* ldu2, float* v1t,
+ lapack_int* ldv1t, float* v2t, lapack_int* ldv2t,
+ float* work, lapack_int* lwork,
+ lapack_int* iwork , lapack_int *info );
+void LAPACK_ssyconv( char* uplo, char* way,
+ lapack_int* n, float* a, lapack_int* lda,
+ const lapack_int* ipiv, float* work , lapack_int *info );
+void LAPACK_ssyswapr( char* uplo, lapack_int* n,
+ float* a, lapack_int* i1, lapack_int* i2 );
+void LAPACK_ssytri2( char* uplo, lapack_int* n,
+ float* a, lapack_int* lda,
+ const lapack_int* ipiv,
+ lapack_complex_float* work, lapack_int* lwork , lapack_int *info );
+void LAPACK_ssytri2x( char* uplo, lapack_int* n,
+ float* a, lapack_int* lda,
+ const lapack_int* ipiv, float* work,
+ lapack_int* nb , lapack_int *info );
+void LAPACK_ssytrs2( char* uplo, lapack_int* n,
+ lapack_int* nrhs, const float* a,
+ lapack_int* lda, const lapack_int* ipiv,
+ float* b, lapack_int* ldb, float* work , lapack_int *info );
+void LAPACK_zbbcsd( char* jobu1, char* jobu2,
+ char* jobv1t, char* jobv2t, char* trans,
+ lapack_int* m, lapack_int* p, lapack_int* q,
+ double* theta, double* phi,
+ lapack_complex_double* u1, lapack_int* ldu1,
+ lapack_complex_double* u2, lapack_int* ldu2,
+ lapack_complex_double* v1t, lapack_int* ldv1t,
+ lapack_complex_double* v2t, lapack_int* ldv2t,
+ double* b11d, double* b11e, double* b12d,
+ double* b12e, double* b21d, double* b21e,
+ double* b22d, double* b22e, double* rwork,
+ lapack_int* lrwork , lapack_int *info );
+void LAPACK_zheswapr( char* uplo, lapack_int* n,
+ lapack_complex_double* a, lapack_int* i1,
+ lapack_int* i2 );
+void LAPACK_zhetri2( char* uplo, lapack_int* n,
+ lapack_complex_double* a, lapack_int* lda,
+ const lapack_int* ipiv,
+ lapack_complex_double* work, lapack_int* lwork , lapack_int *info );
+void LAPACK_zhetri2x( char* uplo, lapack_int* n,
+ lapack_complex_double* a, lapack_int* lda,
+ const lapack_int* ipiv,
+ lapack_complex_double* work, lapack_int* nb , lapack_int *info );
+void LAPACK_zhetrs2( char* uplo, lapack_int* n,
+ lapack_int* nrhs,
+ const lapack_complex_double* a, lapack_int* lda,
+ const lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* work , lapack_int *info );
+void LAPACK_zsyconv( char* uplo, char* way,
+ lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, const lapack_int* ipiv,
+ lapack_complex_double* work , lapack_int *info );
+void LAPACK_zsyswapr( char* uplo, lapack_int* n,
+ lapack_complex_double* a, lapack_int* i1,
+ lapack_int* i2 );
+void LAPACK_zsytri2( char* uplo, lapack_int* n,
+ lapack_complex_double* a, lapack_int* lda,
+ const lapack_int* ipiv,
+ lapack_complex_double* work, lapack_int* lwork , lapack_int *info );
+void LAPACK_zsytri2x( char* uplo, lapack_int* n,
+ lapack_complex_double* a, lapack_int* lda,
+ const lapack_int* ipiv,
+ lapack_complex_double* work, lapack_int* nb , lapack_int *info );
+void LAPACK_zsytrs2( char* uplo, lapack_int* n,
+ lapack_int* nrhs,
+ const lapack_complex_double* a, lapack_int* lda,
+ const lapack_int* ipiv,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* work , lapack_int *info );
+void LAPACK_zunbdb( char* trans, char* signs,
+ lapack_int* m, lapack_int* p, lapack_int* q,
+ lapack_complex_double* x11, lapack_int* ldx11,
+ lapack_complex_double* x12, lapack_int* ldx12,
+ lapack_complex_double* x21, lapack_int* ldx21,
+ lapack_complex_double* x22, lapack_int* ldx22,
+ double* theta, double* phi,
+ lapack_complex_double* taup1,
+ lapack_complex_double* taup2,
+ lapack_complex_double* tauq1,
+ lapack_complex_double* tauq2,
+ lapack_complex_double* work, lapack_int* lwork , lapack_int *info );
+void LAPACK_zuncsd( char* jobu1, char* jobu2,
+ char* jobv1t, char* jobv2t, char* trans,
+ char* signs, lapack_int* m, lapack_int* p,
+ lapack_int* q, lapack_complex_double* x11,
+ lapack_int* ldx11, lapack_complex_double* x12,
+ lapack_int* ldx12, lapack_complex_double* x21,
+ lapack_int* ldx21, lapack_complex_double* x22,
+ lapack_int* ldx22, double* theta,
+ lapack_complex_double* u1, lapack_int* ldu1,
+ lapack_complex_double* u2, lapack_int* ldu2,
+ lapack_complex_double* v1t, lapack_int* ldv1t,
+ lapack_complex_double* v2t, lapack_int* ldv2t,
+ lapack_complex_double* work, lapack_int* lwork,
+ double* rwork, lapack_int* lrwork,
+ lapack_int* iwork , lapack_int *info );
+// LAPACK 3.4.0
+void LAPACK_sgemqrt( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, lapack_int* nb, const float* v,
+ lapack_int* ldv, const float* t, lapack_int* ldt, float* c,
+ lapack_int* ldc, float* work, lapack_int *info );
+void LAPACK_dgemqrt( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, lapack_int* nb, const double* v,
+ lapack_int* ldv, const double* t, lapack_int* ldt,
+ double* c, lapack_int* ldc, double* work,
+ lapack_int *info );
+void LAPACK_cgemqrt( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, lapack_int* nb,
+ const lapack_complex_float* v, lapack_int* ldv,
+ const lapack_complex_float* t, lapack_int* ldt,
+ lapack_complex_float* c, lapack_int* ldc,
+ lapack_complex_float* work, lapack_int *info );
+void LAPACK_zgemqrt( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, lapack_int* nb,
+ const lapack_complex_double* v, lapack_int* ldv,
+ const lapack_complex_double* t, lapack_int* ldt,
+ lapack_complex_double* c, lapack_int* ldc,
+ lapack_complex_double* work, lapack_int *info );
+void LAPACK_sgeqrt( lapack_int* m, lapack_int* n, lapack_int* nb, float* a,
+ lapack_int* lda, float* t, lapack_int* ldt, float* work,
+ lapack_int *info );
+void LAPACK_dgeqrt( lapack_int* m, lapack_int* n, lapack_int* nb, double* a,
+ lapack_int* lda, double* t, lapack_int* ldt, double* work,
+ lapack_int *info );
+void LAPACK_cgeqrt( lapack_int* m, lapack_int* n, lapack_int* nb,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* t, lapack_int* ldt,
+ lapack_complex_float* work, lapack_int *info );
+void LAPACK_zgeqrt( lapack_int* m, lapack_int* n, lapack_int* nb,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* t, lapack_int* ldt,
+ lapack_complex_double* work, lapack_int *info );
+void LAPACK_sgeqrt2( lapack_int* m, lapack_int* n, float* a, lapack_int* lda,
+ float* t, lapack_int* ldt, lapack_int *info );
+void LAPACK_dgeqrt2( lapack_int* m, lapack_int* n, double* a, lapack_int* lda,
+ double* t, lapack_int* ldt, lapack_int *info );
+void LAPACK_cgeqrt2( lapack_int* m, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_complex_float* t, lapack_int* ldt,
+ lapack_int *info );
+void LAPACK_zgeqrt2( lapack_int* m, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_complex_double* t, lapack_int* ldt,
+ lapack_int *info );
+void LAPACK_sgeqrt3( lapack_int* m, lapack_int* n, float* a, lapack_int* lda,
+ float* t, lapack_int* ldt, lapack_int *info );
+void LAPACK_dgeqrt3( lapack_int* m, lapack_int* n, double* a, lapack_int* lda,
+ double* t, lapack_int* ldt, lapack_int *info );
+void LAPACK_cgeqrt3( lapack_int* m, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_complex_float* t, lapack_int* ldt,
+ lapack_int *info );
+void LAPACK_zgeqrt3( lapack_int* m, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_complex_double* t, lapack_int* ldt,
+ lapack_int *info );
+void LAPACK_stpmqrt( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, lapack_int* l, lapack_int* nb,
+ const float* v, lapack_int* ldv, const float* t,
+ lapack_int* ldt, float* a, lapack_int* lda, float* b,
+ lapack_int* ldb, float* work, lapack_int *info );
+void LAPACK_dtpmqrt( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, lapack_int* l, lapack_int* nb,
+ const double* v, lapack_int* ldv, const double* t,
+ lapack_int* ldt, double* a, lapack_int* lda, double* b,
+ lapack_int* ldb, double* work, lapack_int *info );
+void LAPACK_ctpmqrt( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, lapack_int* l, lapack_int* nb,
+ const lapack_complex_float* v, lapack_int* ldv,
+ const lapack_complex_float* t, lapack_int* ldt,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* work, lapack_int *info );
+void LAPACK_ztpmqrt( char* side, char* trans, lapack_int* m, lapack_int* n,
+ lapack_int* k, lapack_int* l, lapack_int* nb,
+ const lapack_complex_double* v, lapack_int* ldv,
+ const lapack_complex_double* t, lapack_int* ldt,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* work, lapack_int *info );
+void LAPACK_dtpqrt( lapack_int* m, lapack_int* n, lapack_int* l, lapack_int* nb,
+ double* a, lapack_int* lda, double* b, lapack_int* ldb,
+ double* t, lapack_int* ldt, double* work,
+ lapack_int *info );
+void LAPACK_ctpqrt( lapack_int* m, lapack_int* n, lapack_int* l, lapack_int* nb,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* t, lapack_complex_float* b,
+ lapack_int* ldb, lapack_int* ldt,
+ lapack_complex_float* work, lapack_int *info );
+void LAPACK_ztpqrt( lapack_int* m, lapack_int* n, lapack_int* l, lapack_int* nb,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* t, lapack_int* ldt,
+ lapack_complex_double* work, lapack_int *info );
+void LAPACK_stpqrt2( lapack_int* m, lapack_int* n, float* a, lapack_int* lda,
+ float* b, lapack_int* ldb, float* t, lapack_int* ldt,
+ lapack_int *info );
+void LAPACK_dtpqrt2( lapack_int* m, lapack_int* n, double* a, lapack_int* lda,
+ double* b, lapack_int* ldb, double* t, lapack_int* ldt,
+ lapack_int *info );
+void LAPACK_ctpqrt2( lapack_int* m, lapack_int* n, lapack_complex_float* a,
+ lapack_int* lda, lapack_complex_float* b, lapack_int* ldb,
+ lapack_complex_float* t, lapack_int* ldt,
+ lapack_int *info );
+void LAPACK_ztpqrt2( lapack_int* m, lapack_int* n, lapack_complex_double* a,
+ lapack_int* lda, lapack_complex_double* b, lapack_int* ldb,
+ lapack_complex_double* t, lapack_int* ldt,
+ lapack_int *info );
+void LAPACK_stprfb( char* side, char* trans, char* direct, char* storev,
+ lapack_int* m, lapack_int* n, lapack_int* k, lapack_int* l,
+ const float* v, lapack_int* ldv, const float* t,
+ lapack_int* ldt, float* a, lapack_int* lda, float* b,
+ lapack_int* ldb, const float* mywork,
+ lapack_int* myldwork );
+void LAPACK_dtprfb( char* side, char* trans, char* direct, char* storev,
+ lapack_int* m, lapack_int* n, lapack_int* k, lapack_int* l,
+ const double* v, lapack_int* ldv, const double* t,
+ lapack_int* ldt, double* a, lapack_int* lda, double* b,
+ lapack_int* ldb, const double* mywork,
+ lapack_int* myldwork );
+void LAPACK_ctprfb( char* side, char* trans, char* direct, char* storev,
+ lapack_int* m, lapack_int* n, lapack_int* k, lapack_int* l,
+ const lapack_complex_float* v, lapack_int* ldv,
+ const lapack_complex_float* t, lapack_int* ldt,
+ lapack_complex_float* a, lapack_int* lda,
+ lapack_complex_float* b, lapack_int* ldb,
+ const float* mywork, lapack_int* myldwork );
+void LAPACK_ztprfb( char* side, char* trans, char* direct, char* storev,
+ lapack_int* m, lapack_int* n, lapack_int* k, lapack_int* l,
+ const lapack_complex_double* v, lapack_int* ldv,
+ const lapack_complex_double* t, lapack_int* ldt,
+ lapack_complex_double* a, lapack_int* lda,
+ lapack_complex_double* b, lapack_int* ldb,
+ const double* mywork, lapack_int* myldwork );
+// LAPACK 3.X.X
+void LAPACK_csyr( char* uplo, lapack_int* n, lapack_complex_float* alpha,
+ const lapack_complex_float* x, lapack_int* incx,
+ lapack_complex_float* a, lapack_int* lda );
+void LAPACK_zsyr( char* uplo, lapack_int* n, lapack_complex_double* alpha,
+ const lapack_complex_double* x, lapack_int* incx,
+ lapack_complex_double* a, lapack_int* lda );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* _LAPACKE_H_ */
+
+#endif /* _MKL_LAPACKE_H_ */
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/misc/lapacke_mangling.h b/runtimes/nn/depend/external/eigen/Eigen/src/misc/lapacke_mangling.h
new file mode 100644
index 000000000..6211fd144
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/misc/lapacke_mangling.h
@@ -0,0 +1,17 @@
+#ifndef LAPACK_HEADER_INCLUDED
+#define LAPACK_HEADER_INCLUDED
+
+#ifndef LAPACK_GLOBAL
+#if defined(LAPACK_GLOBAL_PATTERN_LC) || defined(ADD_)
+#define LAPACK_GLOBAL(lcname,UCNAME) lcname##_
+#elif defined(LAPACK_GLOBAL_PATTERN_UC) || defined(UPPER)
+#define LAPACK_GLOBAL(lcname,UCNAME) UCNAME
+#elif defined(LAPACK_GLOBAL_PATTERN_MC) || defined(NOCHANGE)
+#define LAPACK_GLOBAL(lcname,UCNAME) lcname
+#else
+#define LAPACK_GLOBAL(lcname,UCNAME) lcname##_
+#endif
+#endif
+
+#endif
+
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h b/runtimes/nn/depend/external/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h
new file mode 100644
index 000000000..1f8a531af
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h
@@ -0,0 +1,332 @@
+
+/** \returns an expression of the coefficient wise product of \c *this and \a other
+ *
+ * \sa MatrixBase::cwiseProduct
+ */
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE const EIGEN_CWISE_BINARY_RETURN_TYPE(Derived,OtherDerived,product)
+operator*(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+ return EIGEN_CWISE_BINARY_RETURN_TYPE(Derived,OtherDerived,product)(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient wise quotient of \c *this and \a other
+ *
+ * \sa MatrixBase::cwiseQuotient
+ */
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_quotient_op<Scalar,typename OtherDerived::Scalar>, const Derived, const OtherDerived>
+operator/(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+ return CwiseBinaryOp<internal::scalar_quotient_op<Scalar,typename OtherDerived::Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient-wise min of \c *this and \a other
+ *
+ * Example: \include Cwise_min.cpp
+ * Output: \verbinclude Cwise_min.out
+ *
+ * \sa max()
+ */
+EIGEN_MAKE_CWISE_BINARY_OP(min,min)
+
+/** \returns an expression of the coefficient-wise min of \c *this and scalar \a other
+ *
+ * \sa max()
+ */
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_min_op<Scalar,Scalar>, const Derived,
+ const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject> >
+#ifdef EIGEN_PARSED_BY_DOXYGEN
+min
+#else
+(min)
+#endif
+(const Scalar &other) const
+{
+ return (min)(Derived::PlainObject::Constant(rows(), cols(), other));
+}
+
+/** \returns an expression of the coefficient-wise max of \c *this and \a other
+ *
+ * Example: \include Cwise_max.cpp
+ * Output: \verbinclude Cwise_max.out
+ *
+ * \sa min()
+ */
+EIGEN_MAKE_CWISE_BINARY_OP(max,max)
+
+/** \returns an expression of the coefficient-wise max of \c *this and scalar \a other
+ *
+ * \sa min()
+ */
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_max_op<Scalar,Scalar>, const Derived,
+ const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject> >
+#ifdef EIGEN_PARSED_BY_DOXYGEN
+max
+#else
+(max)
+#endif
+(const Scalar &other) const
+{
+ return (max)(Derived::PlainObject::Constant(rows(), cols(), other));
+}
+
+/** \returns an expression of the coefficient-wise power of \c *this to the given array of \a exponents.
+ *
+ * This function computes the coefficient-wise power.
+ *
+ * Example: \include Cwise_array_power_array.cpp
+ * Output: \verbinclude Cwise_array_power_array.out
+ */
+EIGEN_MAKE_CWISE_BINARY_OP(pow,pow)
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+EIGEN_MAKE_SCALAR_BINARY_OP_ONTHERIGHT(pow,pow)
+#else
+/** \returns an expression of the coefficients of \c *this rasied to the constant power \a exponent
+ *
+ * \tparam T is the scalar type of \a exponent. It must be compatible with the scalar type of the given expression.
+ *
+ * This function computes the coefficient-wise power. The function MatrixBase::pow() in the
+ * unsupported module MatrixFunctions computes the matrix power.
+ *
+ * Example: \include Cwise_pow.cpp
+ * Output: \verbinclude Cwise_pow.out
+ *
+ * \sa ArrayBase::pow(ArrayBase), square(), cube(), exp(), log()
+ */
+template<typename T>
+const CwiseBinaryOp<internal::scalar_pow_op<Scalar,T>,Derived,Constant<T> > pow(const T& exponent) const;
+#endif
+
+
+// TODO code generating macros could be moved to Macros.h and could include generation of documentation
+#define EIGEN_MAKE_CWISE_COMP_OP(OP, COMPARATOR) \
+template<typename OtherDerived> \
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_cmp_op<Scalar, typename OtherDerived::Scalar, internal::cmp_ ## COMPARATOR>, const Derived, const OtherDerived> \
+OP(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const \
+{ \
+ return CwiseBinaryOp<internal::scalar_cmp_op<Scalar, typename OtherDerived::Scalar, internal::cmp_ ## COMPARATOR>, const Derived, const OtherDerived>(derived(), other.derived()); \
+}\
+typedef CwiseBinaryOp<internal::scalar_cmp_op<Scalar,Scalar, internal::cmp_ ## COMPARATOR>, const Derived, const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject> > Cmp ## COMPARATOR ## ReturnType; \
+typedef CwiseBinaryOp<internal::scalar_cmp_op<Scalar,Scalar, internal::cmp_ ## COMPARATOR>, const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject>, const Derived > RCmp ## COMPARATOR ## ReturnType; \
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Cmp ## COMPARATOR ## ReturnType \
+OP(const Scalar& s) const { \
+ return this->OP(Derived::PlainObject::Constant(rows(), cols(), s)); \
+} \
+EIGEN_DEVICE_FUNC friend EIGEN_STRONG_INLINE const RCmp ## COMPARATOR ## ReturnType \
+OP(const Scalar& s, const Derived& d) { \
+ return Derived::PlainObject::Constant(d.rows(), d.cols(), s).OP(d); \
+}
+
+#define EIGEN_MAKE_CWISE_COMP_R_OP(OP, R_OP, RCOMPARATOR) \
+template<typename OtherDerived> \
+EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_cmp_op<typename OtherDerived::Scalar, Scalar, internal::cmp_##RCOMPARATOR>, const OtherDerived, const Derived> \
+OP(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const \
+{ \
+ return CwiseBinaryOp<internal::scalar_cmp_op<typename OtherDerived::Scalar, Scalar, internal::cmp_##RCOMPARATOR>, const OtherDerived, const Derived>(other.derived(), derived()); \
+} \
+EIGEN_DEVICE_FUNC \
+inline const RCmp ## RCOMPARATOR ## ReturnType \
+OP(const Scalar& s) const { \
+ return Derived::PlainObject::Constant(rows(), cols(), s).R_OP(*this); \
+} \
+friend inline const Cmp ## RCOMPARATOR ## ReturnType \
+OP(const Scalar& s, const Derived& d) { \
+ return d.R_OP(Derived::PlainObject::Constant(d.rows(), d.cols(), s)); \
+}
+
+
+
+/** \returns an expression of the coefficient-wise \< operator of *this and \a other
+ *
+ * Example: \include Cwise_less.cpp
+ * Output: \verbinclude Cwise_less.out
+ *
+ * \sa all(), any(), operator>(), operator<=()
+ */
+EIGEN_MAKE_CWISE_COMP_OP(operator<, LT)
+
+/** \returns an expression of the coefficient-wise \<= operator of *this and \a other
+ *
+ * Example: \include Cwise_less_equal.cpp
+ * Output: \verbinclude Cwise_less_equal.out
+ *
+ * \sa all(), any(), operator>=(), operator<()
+ */
+EIGEN_MAKE_CWISE_COMP_OP(operator<=, LE)
+
+/** \returns an expression of the coefficient-wise \> operator of *this and \a other
+ *
+ * Example: \include Cwise_greater.cpp
+ * Output: \verbinclude Cwise_greater.out
+ *
+ * \sa all(), any(), operator>=(), operator<()
+ */
+EIGEN_MAKE_CWISE_COMP_R_OP(operator>, operator<, LT)
+
+/** \returns an expression of the coefficient-wise \>= operator of *this and \a other
+ *
+ * Example: \include Cwise_greater_equal.cpp
+ * Output: \verbinclude Cwise_greater_equal.out
+ *
+ * \sa all(), any(), operator>(), operator<=()
+ */
+EIGEN_MAKE_CWISE_COMP_R_OP(operator>=, operator<=, LE)
+
+/** \returns an expression of the coefficient-wise == operator of *this and \a other
+ *
+ * \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
+ * In order to check for equality between two vectors or matrices with floating-point coefficients, it is
+ * generally a far better idea to use a fuzzy comparison as provided by isApprox() and
+ * isMuchSmallerThan().
+ *
+ * Example: \include Cwise_equal_equal.cpp
+ * Output: \verbinclude Cwise_equal_equal.out
+ *
+ * \sa all(), any(), isApprox(), isMuchSmallerThan()
+ */
+EIGEN_MAKE_CWISE_COMP_OP(operator==, EQ)
+
+/** \returns an expression of the coefficient-wise != operator of *this and \a other
+ *
+ * \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
+ * In order to check for equality between two vectors or matrices with floating-point coefficients, it is
+ * generally a far better idea to use a fuzzy comparison as provided by isApprox() and
+ * isMuchSmallerThan().
+ *
+ * Example: \include Cwise_not_equal.cpp
+ * Output: \verbinclude Cwise_not_equal.out
+ *
+ * \sa all(), any(), isApprox(), isMuchSmallerThan()
+ */
+EIGEN_MAKE_CWISE_COMP_OP(operator!=, NEQ)
+
+
+#undef EIGEN_MAKE_CWISE_COMP_OP
+#undef EIGEN_MAKE_CWISE_COMP_R_OP
+
+// scalar addition
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+EIGEN_MAKE_SCALAR_BINARY_OP(operator+,sum)
+#else
+/** \returns an expression of \c *this with each coeff incremented by the constant \a scalar
+ *
+ * \tparam T is the scalar type of \a scalar. It must be compatible with the scalar type of the given expression.
+ *
+ * Example: \include Cwise_plus.cpp
+ * Output: \verbinclude Cwise_plus.out
+ *
+ * \sa operator+=(), operator-()
+ */
+template<typename T>
+const CwiseBinaryOp<internal::scalar_sum_op<Scalar,T>,Derived,Constant<T> > operator+(const T& scalar) const;
+/** \returns an expression of \a expr with each coeff incremented by the constant \a scalar
+ *
+ * \tparam T is the scalar type of \a scalar. It must be compatible with the scalar type of the given expression.
+ */
+template<typename T> friend
+const CwiseBinaryOp<internal::scalar_sum_op<T,Scalar>,Constant<T>,Derived> operator+(const T& scalar, const StorageBaseType& expr);
+#endif
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+EIGEN_MAKE_SCALAR_BINARY_OP(operator-,difference)
+#else
+/** \returns an expression of \c *this with each coeff decremented by the constant \a scalar
+ *
+ * \tparam T is the scalar type of \a scalar. It must be compatible with the scalar type of the given expression.
+ *
+ * Example: \include Cwise_minus.cpp
+ * Output: \verbinclude Cwise_minus.out
+ *
+ * \sa operator+=(), operator-()
+ */
+template<typename T>
+const CwiseBinaryOp<internal::scalar_difference_op<Scalar,T>,Derived,Constant<T> > operator-(const T& scalar) const;
+/** \returns an expression of the constant matrix of value \a scalar decremented by the coefficients of \a expr
+ *
+ * \tparam T is the scalar type of \a scalar. It must be compatible with the scalar type of the given expression.
+ */
+template<typename T> friend
+const CwiseBinaryOp<internal::scalar_difference_op<T,Scalar>,Constant<T>,Derived> operator-(const T& scalar, const StorageBaseType& expr);
+#endif
+
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+ EIGEN_MAKE_SCALAR_BINARY_OP_ONTHELEFT(operator/,quotient)
+#else
+ /**
+ * \brief Component-wise division of the scalar \a s by array elements of \a a.
+ *
+ * \tparam Scalar is the scalar type of \a x. It must be compatible with the scalar type of the given array expression (\c Derived::Scalar).
+ */
+ template<typename T> friend
+ inline const CwiseBinaryOp<internal::scalar_quotient_op<T,Scalar>,Constant<T>,Derived>
+ operator/(const T& s,const StorageBaseType& a);
+#endif
+
+/** \returns an expression of the coefficient-wise ^ operator of *this and \a other
+ *
+ * \warning this operator is for expression of bool only.
+ *
+ * Example: \include Cwise_boolean_xor.cpp
+ * Output: \verbinclude Cwise_boolean_xor.out
+ *
+ * \sa operator&&(), select()
+ */
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC
+inline const CwiseBinaryOp<internal::scalar_boolean_xor_op, const Derived, const OtherDerived>
+operator^(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+ EIGEN_STATIC_ASSERT((internal::is_same<bool,Scalar>::value && internal::is_same<bool,typename OtherDerived::Scalar>::value),
+ THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL);
+ return CwiseBinaryOp<internal::scalar_boolean_xor_op, const Derived, const OtherDerived>(derived(),other.derived());
+}
+
+// NOTE disabled until we agree on argument order
+#if 0
+/** \cpp11 \returns an expression of the coefficient-wise polygamma function.
+ *
+ * \specialfunctions_module
+ *
+ * It returns the \a n -th derivative of the digamma(psi) evaluated at \c *this.
+ *
+ * \warning Be careful with the order of the parameters: x.polygamma(n) is equivalent to polygamma(n,x)
+ *
+ * \sa Eigen::polygamma()
+ */
+template<typename DerivedN>
+inline const CwiseBinaryOp<internal::scalar_polygamma_op<Scalar>, const DerivedN, const Derived>
+polygamma(const EIGEN_CURRENT_STORAGE_BASE_CLASS<DerivedN> &n) const
+{
+ return CwiseBinaryOp<internal::scalar_polygamma_op<Scalar>, const DerivedN, const Derived>(n.derived(), this->derived());
+}
+#endif
+
+/** \returns an expression of the coefficient-wise zeta function.
+ *
+ * \specialfunctions_module
+ *
+ * It returns the Riemann zeta function of two arguments \c *this and \a q:
+ *
+ * \param *this is the exposent, it must be > 1
+ * \param q is the shift, it must be > 0
+ *
+ * \note This function supports only float and double scalar types. To support other scalar types, the user has
+ * to provide implementations of zeta(T,T) for any scalar type T to be supported.
+ *
+ * This method is an alias for zeta(*this,q);
+ *
+ * \sa Eigen::zeta()
+ */
+template<typename DerivedQ>
+inline const CwiseBinaryOp<internal::scalar_zeta_op<Scalar>, const Derived, const DerivedQ>
+zeta(const EIGEN_CURRENT_STORAGE_BASE_CLASS<DerivedQ> &q) const
+{
+ return CwiseBinaryOp<internal::scalar_zeta_op<Scalar>, const Derived, const DerivedQ>(this->derived(), q.derived());
+}
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h b/runtimes/nn/depend/external/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h
new file mode 100644
index 000000000..ebaa3f192
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h
@@ -0,0 +1,552 @@
+
+
+typedef CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const Derived> AbsReturnType;
+typedef CwiseUnaryOp<internal::scalar_arg_op<Scalar>, const Derived> ArgReturnType;
+typedef CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, const Derived> Abs2ReturnType;
+typedef CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, const Derived> SqrtReturnType;
+typedef CwiseUnaryOp<internal::scalar_rsqrt_op<Scalar>, const Derived> RsqrtReturnType;
+typedef CwiseUnaryOp<internal::scalar_sign_op<Scalar>, const Derived> SignReturnType;
+typedef CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const Derived> InverseReturnType;
+typedef CwiseUnaryOp<internal::scalar_boolean_not_op<Scalar>, const Derived> BooleanNotReturnType;
+
+typedef CwiseUnaryOp<internal::scalar_exp_op<Scalar>, const Derived> ExpReturnType;
+typedef CwiseUnaryOp<internal::scalar_log_op<Scalar>, const Derived> LogReturnType;
+typedef CwiseUnaryOp<internal::scalar_log1p_op<Scalar>, const Derived> Log1pReturnType;
+typedef CwiseUnaryOp<internal::scalar_log10_op<Scalar>, const Derived> Log10ReturnType;
+typedef CwiseUnaryOp<internal::scalar_cos_op<Scalar>, const Derived> CosReturnType;
+typedef CwiseUnaryOp<internal::scalar_sin_op<Scalar>, const Derived> SinReturnType;
+typedef CwiseUnaryOp<internal::scalar_tan_op<Scalar>, const Derived> TanReturnType;
+typedef CwiseUnaryOp<internal::scalar_acos_op<Scalar>, const Derived> AcosReturnType;
+typedef CwiseUnaryOp<internal::scalar_asin_op<Scalar>, const Derived> AsinReturnType;
+typedef CwiseUnaryOp<internal::scalar_atan_op<Scalar>, const Derived> AtanReturnType;
+typedef CwiseUnaryOp<internal::scalar_tanh_op<Scalar>, const Derived> TanhReturnType;
+typedef CwiseUnaryOp<internal::scalar_sinh_op<Scalar>, const Derived> SinhReturnType;
+typedef CwiseUnaryOp<internal::scalar_cosh_op<Scalar>, const Derived> CoshReturnType;
+typedef CwiseUnaryOp<internal::scalar_square_op<Scalar>, const Derived> SquareReturnType;
+typedef CwiseUnaryOp<internal::scalar_cube_op<Scalar>, const Derived> CubeReturnType;
+typedef CwiseUnaryOp<internal::scalar_round_op<Scalar>, const Derived> RoundReturnType;
+typedef CwiseUnaryOp<internal::scalar_floor_op<Scalar>, const Derived> FloorReturnType;
+typedef CwiseUnaryOp<internal::scalar_ceil_op<Scalar>, const Derived> CeilReturnType;
+typedef CwiseUnaryOp<internal::scalar_isnan_op<Scalar>, const Derived> IsNaNReturnType;
+typedef CwiseUnaryOp<internal::scalar_isinf_op<Scalar>, const Derived> IsInfReturnType;
+typedef CwiseUnaryOp<internal::scalar_isfinite_op<Scalar>, const Derived> IsFiniteReturnType;
+
+/** \returns an expression of the coefficient-wise absolute value of \c *this
+ *
+ * Example: \include Cwise_abs.cpp
+ * Output: \verbinclude Cwise_abs.out
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_abs">Math functions</a>, abs2()
+ */
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE const AbsReturnType
+abs() const
+{
+ return AbsReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise phase angle of \c *this
+ *
+ * Example: \include Cwise_arg.cpp
+ * Output: \verbinclude Cwise_arg.out
+ *
+ * \sa abs()
+ */
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE const ArgReturnType
+arg() const
+{
+ return ArgReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise squared absolute value of \c *this
+ *
+ * Example: \include Cwise_abs2.cpp
+ * Output: \verbinclude Cwise_abs2.out
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_abs2">Math functions</a>, abs(), square()
+ */
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE const Abs2ReturnType
+abs2() const
+{
+ return Abs2ReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise exponential of *this.
+ *
+ * This function computes the coefficient-wise exponential. The function MatrixBase::exp() in the
+ * unsupported module MatrixFunctions computes the matrix exponential.
+ *
+ * Example: \include Cwise_exp.cpp
+ * Output: \verbinclude Cwise_exp.out
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_exp">Math functions</a>, pow(), log(), sin(), cos()
+ */
+EIGEN_DEVICE_FUNC
+inline const ExpReturnType
+exp() const
+{
+ return ExpReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise logarithm of *this.
+ *
+ * This function computes the coefficient-wise logarithm. The function MatrixBase::log() in the
+ * unsupported module MatrixFunctions computes the matrix logarithm.
+ *
+ * Example: \include Cwise_log.cpp
+ * Output: \verbinclude Cwise_log.out
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_log">Math functions</a>, exp()
+ */
+EIGEN_DEVICE_FUNC
+inline const LogReturnType
+log() const
+{
+ return LogReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise logarithm of 1 plus \c *this.
+ *
+ * In exact arithmetic, \c x.log() is equivalent to \c (x+1).log(),
+ * however, with finite precision, this function is much more accurate when \c x is close to zero.
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_log1p">Math functions</a>, log()
+ */
+EIGEN_DEVICE_FUNC
+inline const Log1pReturnType
+log1p() const
+{
+ return Log1pReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise base-10 logarithm of *this.
+ *
+ * This function computes the coefficient-wise base-10 logarithm.
+ *
+ * Example: \include Cwise_log10.cpp
+ * Output: \verbinclude Cwise_log10.out
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_log10">Math functions</a>, log()
+ */
+EIGEN_DEVICE_FUNC
+inline const Log10ReturnType
+log10() const
+{
+ return Log10ReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise square root of *this.
+ *
+ * This function computes the coefficient-wise square root. The function MatrixBase::sqrt() in the
+ * unsupported module MatrixFunctions computes the matrix square root.
+ *
+ * Example: \include Cwise_sqrt.cpp
+ * Output: \verbinclude Cwise_sqrt.out
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_sqrt">Math functions</a>, pow(), square()
+ */
+EIGEN_DEVICE_FUNC
+inline const SqrtReturnType
+sqrt() const
+{
+ return SqrtReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise inverse square root of *this.
+ *
+ * This function computes the coefficient-wise inverse square root.
+ *
+ * Example: \include Cwise_sqrt.cpp
+ * Output: \verbinclude Cwise_sqrt.out
+ *
+ * \sa pow(), square()
+ */
+EIGEN_DEVICE_FUNC
+inline const RsqrtReturnType
+rsqrt() const
+{
+ return RsqrtReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise signum of *this.
+ *
+ * This function computes the coefficient-wise signum.
+ *
+ * Example: \include Cwise_sign.cpp
+ * Output: \verbinclude Cwise_sign.out
+ *
+ * \sa pow(), square()
+ */
+EIGEN_DEVICE_FUNC
+inline const SignReturnType
+sign() const
+{
+ return SignReturnType(derived());
+}
+
+
+/** \returns an expression of the coefficient-wise cosine of *this.
+ *
+ * This function computes the coefficient-wise cosine. The function MatrixBase::cos() in the
+ * unsupported module MatrixFunctions computes the matrix cosine.
+ *
+ * Example: \include Cwise_cos.cpp
+ * Output: \verbinclude Cwise_cos.out
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_cos">Math functions</a>, sin(), acos()
+ */
+EIGEN_DEVICE_FUNC
+inline const CosReturnType
+cos() const
+{
+ return CosReturnType(derived());
+}
+
+
+/** \returns an expression of the coefficient-wise sine of *this.
+ *
+ * This function computes the coefficient-wise sine. The function MatrixBase::sin() in the
+ * unsupported module MatrixFunctions computes the matrix sine.
+ *
+ * Example: \include Cwise_sin.cpp
+ * Output: \verbinclude Cwise_sin.out
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_sin">Math functions</a>, cos(), asin()
+ */
+EIGEN_DEVICE_FUNC
+inline const SinReturnType
+sin() const
+{
+ return SinReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise tan of *this.
+ *
+ * Example: \include Cwise_tan.cpp
+ * Output: \verbinclude Cwise_tan.out
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_tan">Math functions</a>, cos(), sin()
+ */
+EIGEN_DEVICE_FUNC
+inline const TanReturnType
+tan() const
+{
+ return TanReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise arc tan of *this.
+ *
+ * Example: \include Cwise_atan.cpp
+ * Output: \verbinclude Cwise_atan.out
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_atan">Math functions</a>, tan(), asin(), acos()
+ */
+EIGEN_DEVICE_FUNC
+inline const AtanReturnType
+atan() const
+{
+ return AtanReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise arc cosine of *this.
+ *
+ * Example: \include Cwise_acos.cpp
+ * Output: \verbinclude Cwise_acos.out
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_acos">Math functions</a>, cos(), asin()
+ */
+EIGEN_DEVICE_FUNC
+inline const AcosReturnType
+acos() const
+{
+ return AcosReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise arc sine of *this.
+ *
+ * Example: \include Cwise_asin.cpp
+ * Output: \verbinclude Cwise_asin.out
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_asin">Math functions</a>, sin(), acos()
+ */
+EIGEN_DEVICE_FUNC
+inline const AsinReturnType
+asin() const
+{
+ return AsinReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise hyperbolic tan of *this.
+ *
+ * Example: \include Cwise_tanh.cpp
+ * Output: \verbinclude Cwise_tanh.out
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_tanh">Math functions</a>, tan(), sinh(), cosh()
+ */
+EIGEN_DEVICE_FUNC
+inline const TanhReturnType
+tanh() const
+{
+ return TanhReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise hyperbolic sin of *this.
+ *
+ * Example: \include Cwise_sinh.cpp
+ * Output: \verbinclude Cwise_sinh.out
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_sinh">Math functions</a>, sin(), tanh(), cosh()
+ */
+EIGEN_DEVICE_FUNC
+inline const SinhReturnType
+sinh() const
+{
+ return SinhReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise hyperbolic cos of *this.
+ *
+ * Example: \include Cwise_cosh.cpp
+ * Output: \verbinclude Cwise_cosh.out
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_cosh">Math functions</a>, tan(), sinh(), cosh()
+ */
+EIGEN_DEVICE_FUNC
+inline const CoshReturnType
+cosh() const
+{
+ return CoshReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise inverse of *this.
+ *
+ * Example: \include Cwise_inverse.cpp
+ * Output: \verbinclude Cwise_inverse.out
+ *
+ * \sa operator/(), operator*()
+ */
+EIGEN_DEVICE_FUNC
+inline const InverseReturnType
+inverse() const
+{
+ return InverseReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise square of *this.
+ *
+ * Example: \include Cwise_square.cpp
+ * Output: \verbinclude Cwise_square.out
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_squareE">Math functions</a>, abs2(), cube(), pow()
+ */
+EIGEN_DEVICE_FUNC
+inline const SquareReturnType
+square() const
+{
+ return SquareReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise cube of *this.
+ *
+ * Example: \include Cwise_cube.cpp
+ * Output: \verbinclude Cwise_cube.out
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_cube">Math functions</a>, square(), pow()
+ */
+EIGEN_DEVICE_FUNC
+inline const CubeReturnType
+cube() const
+{
+ return CubeReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise round of *this.
+ *
+ * Example: \include Cwise_round.cpp
+ * Output: \verbinclude Cwise_round.out
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_round">Math functions</a>, ceil(), floor()
+ */
+EIGEN_DEVICE_FUNC
+inline const RoundReturnType
+round() const
+{
+ return RoundReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise floor of *this.
+ *
+ * Example: \include Cwise_floor.cpp
+ * Output: \verbinclude Cwise_floor.out
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_floor">Math functions</a>, ceil(), round()
+ */
+EIGEN_DEVICE_FUNC
+inline const FloorReturnType
+floor() const
+{
+ return FloorReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise ceil of *this.
+ *
+ * Example: \include Cwise_ceil.cpp
+ * Output: \verbinclude Cwise_ceil.out
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_ceil">Math functions</a>, floor(), round()
+ */
+EIGEN_DEVICE_FUNC
+inline const CeilReturnType
+ceil() const
+{
+ return CeilReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise isnan of *this.
+ *
+ * Example: \include Cwise_isNaN.cpp
+ * Output: \verbinclude Cwise_isNaN.out
+ *
+ * \sa isfinite(), isinf()
+ */
+EIGEN_DEVICE_FUNC
+inline const IsNaNReturnType
+isNaN() const
+{
+ return IsNaNReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise isinf of *this.
+ *
+ * Example: \include Cwise_isInf.cpp
+ * Output: \verbinclude Cwise_isInf.out
+ *
+ * \sa isnan(), isfinite()
+ */
+EIGEN_DEVICE_FUNC
+inline const IsInfReturnType
+isInf() const
+{
+ return IsInfReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise isfinite of *this.
+ *
+ * Example: \include Cwise_isFinite.cpp
+ * Output: \verbinclude Cwise_isFinite.out
+ *
+ * \sa isnan(), isinf()
+ */
+EIGEN_DEVICE_FUNC
+inline const IsFiniteReturnType
+isFinite() const
+{
+ return IsFiniteReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise ! operator of *this
+ *
+ * \warning this operator is for expression of bool only.
+ *
+ * Example: \include Cwise_boolean_not.cpp
+ * Output: \verbinclude Cwise_boolean_not.out
+ *
+ * \sa operator!=()
+ */
+EIGEN_DEVICE_FUNC
+inline const BooleanNotReturnType
+operator!() const
+{
+ EIGEN_STATIC_ASSERT((internal::is_same<bool,Scalar>::value),
+ THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL);
+ return BooleanNotReturnType(derived());
+}
+
+
+// --- SpecialFunctions module ---
+
+typedef CwiseUnaryOp<internal::scalar_lgamma_op<Scalar>, const Derived> LgammaReturnType;
+typedef CwiseUnaryOp<internal::scalar_digamma_op<Scalar>, const Derived> DigammaReturnType;
+typedef CwiseUnaryOp<internal::scalar_erf_op<Scalar>, const Derived> ErfReturnType;
+typedef CwiseUnaryOp<internal::scalar_erfc_op<Scalar>, const Derived> ErfcReturnType;
+
+/** \cpp11 \returns an expression of the coefficient-wise ln(|gamma(*this)|).
+ *
+ * \specialfunctions_module
+ *
+ * Example: \include Cwise_lgamma.cpp
+ * Output: \verbinclude Cwise_lgamma.out
+ *
+ * \note This function supports only float and double scalar types in c++11 mode. To support other scalar types,
+ * or float/double in non c++11 mode, the user has to provide implementations of lgamma(T) for any scalar
+ * type T to be supported.
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_lgamma">Math functions</a>, digamma()
+ */
+EIGEN_DEVICE_FUNC
+inline const LgammaReturnType
+lgamma() const
+{
+ return LgammaReturnType(derived());
+}
+
+/** \returns an expression of the coefficient-wise digamma (psi, derivative of lgamma).
+ *
+ * \specialfunctions_module
+ *
+ * \note This function supports only float and double scalar types. To support other scalar types,
+ * the user has to provide implementations of digamma(T) for any scalar
+ * type T to be supported.
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_digamma">Math functions</a>, Eigen::digamma(), Eigen::polygamma(), lgamma()
+ */
+EIGEN_DEVICE_FUNC
+inline const DigammaReturnType
+digamma() const
+{
+ return DigammaReturnType(derived());
+}
+
+/** \cpp11 \returns an expression of the coefficient-wise Gauss error
+ * function of *this.
+ *
+ * \specialfunctions_module
+ *
+ * Example: \include Cwise_erf.cpp
+ * Output: \verbinclude Cwise_erf.out
+ *
+ * \note This function supports only float and double scalar types in c++11 mode. To support other scalar types,
+ * or float/double in non c++11 mode, the user has to provide implementations of erf(T) for any scalar
+ * type T to be supported.
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_erf">Math functions</a>, erfc()
+ */
+EIGEN_DEVICE_FUNC
+inline const ErfReturnType
+erf() const
+{
+ return ErfReturnType(derived());
+}
+
+/** \cpp11 \returns an expression of the coefficient-wise Complementary error
+ * function of *this.
+ *
+ * \specialfunctions_module
+ *
+ * Example: \include Cwise_erfc.cpp
+ * Output: \verbinclude Cwise_erfc.out
+ *
+ * \note This function supports only float and double scalar types in c++11 mode. To support other scalar types,
+ * or float/double in non c++11 mode, the user has to provide implementations of erfc(T) for any scalar
+ * type T to be supported.
+ *
+ * \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_erfc">Math functions</a>, erf()
+ */
+EIGEN_DEVICE_FUNC
+inline const ErfcReturnType
+erfc() const
+{
+ return ErfcReturnType(derived());
+}
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/plugins/BlockMethods.h b/runtimes/nn/depend/external/eigen/Eigen/src/plugins/BlockMethods.h
new file mode 100644
index 000000000..ac35a0086
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/plugins/BlockMethods.h
@@ -0,0 +1,1058 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+
+/// \internal expression type of a column */
+typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, 1, !IsRowMajor> ColXpr;
+typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, 1, !IsRowMajor> ConstColXpr;
+/// \internal expression type of a row */
+typedef Block<Derived, 1, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> RowXpr;
+typedef const Block<const Derived, 1, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> ConstRowXpr;
+/// \internal expression type of a block of whole columns */
+typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, Dynamic, !IsRowMajor> ColsBlockXpr;
+typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, Dynamic, !IsRowMajor> ConstColsBlockXpr;
+/// \internal expression type of a block of whole rows */
+typedef Block<Derived, Dynamic, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> RowsBlockXpr;
+typedef const Block<const Derived, Dynamic, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> ConstRowsBlockXpr;
+/// \internal expression type of a block of whole columns */
+template<int N> struct NColsBlockXpr { typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, N, !IsRowMajor> Type; };
+template<int N> struct ConstNColsBlockXpr { typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, N, !IsRowMajor> Type; };
+/// \internal expression type of a block of whole rows */
+template<int N> struct NRowsBlockXpr { typedef Block<Derived, N, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> Type; };
+template<int N> struct ConstNRowsBlockXpr { typedef const Block<const Derived, N, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> Type; };
+/// \internal expression of a block */
+typedef Block<Derived> BlockXpr;
+typedef const Block<const Derived> ConstBlockXpr;
+/// \internal expression of a block of fixed sizes */
+template<int Rows, int Cols> struct FixedBlockXpr { typedef Block<Derived,Rows,Cols> Type; };
+template<int Rows, int Cols> struct ConstFixedBlockXpr { typedef Block<const Derived,Rows,Cols> Type; };
+
+typedef VectorBlock<Derived> SegmentReturnType;
+typedef const VectorBlock<const Derived> ConstSegmentReturnType;
+template<int Size> struct FixedSegmentReturnType { typedef VectorBlock<Derived, Size> Type; };
+template<int Size> struct ConstFixedSegmentReturnType { typedef const VectorBlock<const Derived, Size> Type; };
+
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+/// \returns a dynamic-size expression of a block in *this.
+///
+/// \param startRow the first row in the block
+/// \param startCol the first column in the block
+/// \param blockRows the number of rows in the block
+/// \param blockCols the number of columns in the block
+///
+/// Example: \include MatrixBase_block_int_int_int_int.cpp
+/// Output: \verbinclude MatrixBase_block_int_int_int_int.out
+///
+/// \note Even though the returned expression has dynamic size, in the case
+/// when it is applied to a fixed-size matrix, it inherits a fixed maximal size,
+/// which means that evaluating it does not cause a dynamic memory allocation.
+///
+EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
+///
+/// \sa class Block, block(Index,Index)
+///
+EIGEN_DEVICE_FUNC
+inline BlockXpr block(Index startRow, Index startCol, Index blockRows, Index blockCols)
+{
+ return BlockXpr(derived(), startRow, startCol, blockRows, blockCols);
+}
+
+/// This is the const version of block(Index,Index,Index,Index). */
+EIGEN_DEVICE_FUNC
+inline const ConstBlockXpr block(Index startRow, Index startCol, Index blockRows, Index blockCols) const
+{
+ return ConstBlockXpr(derived(), startRow, startCol, blockRows, blockCols);
+}
+
+
+
+
+/// \returns a dynamic-size expression of a top-right corner of *this.
+///
+/// \param cRows the number of rows in the corner
+/// \param cCols the number of columns in the corner
+///
+/// Example: \include MatrixBase_topRightCorner_int_int.cpp
+/// Output: \verbinclude MatrixBase_topRightCorner_int_int.out
+///
+EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+EIGEN_DEVICE_FUNC
+inline BlockXpr topRightCorner(Index cRows, Index cCols)
+{
+ return BlockXpr(derived(), 0, cols() - cCols, cRows, cCols);
+}
+
+/// This is the const version of topRightCorner(Index, Index).
+EIGEN_DEVICE_FUNC
+inline const ConstBlockXpr topRightCorner(Index cRows, Index cCols) const
+{
+ return ConstBlockXpr(derived(), 0, cols() - cCols, cRows, cCols);
+}
+
+/// \returns an expression of a fixed-size top-right corner of *this.
+///
+/// \tparam CRows the number of rows in the corner
+/// \tparam CCols the number of columns in the corner
+///
+/// Example: \include MatrixBase_template_int_int_topRightCorner.cpp
+/// Output: \verbinclude MatrixBase_template_int_int_topRightCorner.out
+///
+EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
+///
+/// \sa class Block, block<int,int>(Index,Index)
+///
+template<int CRows, int CCols>
+EIGEN_DEVICE_FUNC
+inline typename FixedBlockXpr<CRows,CCols>::Type topRightCorner()
+{
+ return typename FixedBlockXpr<CRows,CCols>::Type(derived(), 0, cols() - CCols);
+}
+
+/// This is the const version of topRightCorner<int, int>().
+template<int CRows, int CCols>
+EIGEN_DEVICE_FUNC
+inline const typename ConstFixedBlockXpr<CRows,CCols>::Type topRightCorner() const
+{
+ return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), 0, cols() - CCols);
+}
+
+/// \returns an expression of a top-right corner of *this.
+///
+/// \tparam CRows number of rows in corner as specified at compile-time
+/// \tparam CCols number of columns in corner as specified at compile-time
+/// \param cRows number of rows in corner as specified at run-time
+/// \param cCols number of columns in corner as specified at run-time
+///
+/// This function is mainly useful for corners where the number of rows is specified at compile-time
+/// and the number of columns is specified at run-time, or vice versa. The compile-time and run-time
+/// information should not contradict. In other words, \a cRows should equal \a CRows unless
+/// \a CRows is \a Dynamic, and the same for the number of columns.
+///
+/// Example: \include MatrixBase_template_int_int_topRightCorner_int_int.cpp
+/// Output: \verbinclude MatrixBase_template_int_int_topRightCorner_int_int.out
+///
+EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
+///
+/// \sa class Block
+///
+template<int CRows, int CCols>
+inline typename FixedBlockXpr<CRows,CCols>::Type topRightCorner(Index cRows, Index cCols)
+{
+ return typename FixedBlockXpr<CRows,CCols>::Type(derived(), 0, cols() - cCols, cRows, cCols);
+}
+
+/// This is the const version of topRightCorner<int, int>(Index, Index).
+template<int CRows, int CCols>
+inline const typename ConstFixedBlockXpr<CRows,CCols>::Type topRightCorner(Index cRows, Index cCols) const
+{
+ return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), 0, cols() - cCols, cRows, cCols);
+}
+
+
+
+/// \returns a dynamic-size expression of a top-left corner of *this.
+///
+/// \param cRows the number of rows in the corner
+/// \param cCols the number of columns in the corner
+///
+/// Example: \include MatrixBase_topLeftCorner_int_int.cpp
+/// Output: \verbinclude MatrixBase_topLeftCorner_int_int.out
+///
+EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+EIGEN_DEVICE_FUNC
+inline BlockXpr topLeftCorner(Index cRows, Index cCols)
+{
+ return BlockXpr(derived(), 0, 0, cRows, cCols);
+}
+
+/// This is the const version of topLeftCorner(Index, Index).
+EIGEN_DEVICE_FUNC
+inline const ConstBlockXpr topLeftCorner(Index cRows, Index cCols) const
+{
+ return ConstBlockXpr(derived(), 0, 0, cRows, cCols);
+}
+
+/// \returns an expression of a fixed-size top-left corner of *this.
+///
+/// The template parameters CRows and CCols are the number of rows and columns in the corner.
+///
+/// Example: \include MatrixBase_template_int_int_topLeftCorner.cpp
+/// Output: \verbinclude MatrixBase_template_int_int_topLeftCorner.out
+///
+EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+template<int CRows, int CCols>
+EIGEN_DEVICE_FUNC
+inline typename FixedBlockXpr<CRows,CCols>::Type topLeftCorner()
+{
+ return typename FixedBlockXpr<CRows,CCols>::Type(derived(), 0, 0);
+}
+
+/// This is the const version of topLeftCorner<int, int>().
+template<int CRows, int CCols>
+EIGEN_DEVICE_FUNC
+inline const typename ConstFixedBlockXpr<CRows,CCols>::Type topLeftCorner() const
+{
+ return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), 0, 0);
+}
+
+/// \returns an expression of a top-left corner of *this.
+///
+/// \tparam CRows number of rows in corner as specified at compile-time
+/// \tparam CCols number of columns in corner as specified at compile-time
+/// \param cRows number of rows in corner as specified at run-time
+/// \param cCols number of columns in corner as specified at run-time
+///
+/// This function is mainly useful for corners where the number of rows is specified at compile-time
+/// and the number of columns is specified at run-time, or vice versa. The compile-time and run-time
+/// information should not contradict. In other words, \a cRows should equal \a CRows unless
+/// \a CRows is \a Dynamic, and the same for the number of columns.
+///
+/// Example: \include MatrixBase_template_int_int_topLeftCorner_int_int.cpp
+/// Output: \verbinclude MatrixBase_template_int_int_topLeftCorner_int_int.out
+///
+EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
+///
+/// \sa class Block
+///
+template<int CRows, int CCols>
+inline typename FixedBlockXpr<CRows,CCols>::Type topLeftCorner(Index cRows, Index cCols)
+{
+ return typename FixedBlockXpr<CRows,CCols>::Type(derived(), 0, 0, cRows, cCols);
+}
+
+/// This is the const version of topLeftCorner<int, int>(Index, Index).
+template<int CRows, int CCols>
+inline const typename ConstFixedBlockXpr<CRows,CCols>::Type topLeftCorner(Index cRows, Index cCols) const
+{
+ return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), 0, 0, cRows, cCols);
+}
+
+
+
+/// \returns a dynamic-size expression of a bottom-right corner of *this.
+///
+/// \param cRows the number of rows in the corner
+/// \param cCols the number of columns in the corner
+///
+/// Example: \include MatrixBase_bottomRightCorner_int_int.cpp
+/// Output: \verbinclude MatrixBase_bottomRightCorner_int_int.out
+///
+EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+EIGEN_DEVICE_FUNC
+inline BlockXpr bottomRightCorner(Index cRows, Index cCols)
+{
+ return BlockXpr(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
+}
+
+/// This is the const version of bottomRightCorner(Index, Index).
+EIGEN_DEVICE_FUNC
+inline const ConstBlockXpr bottomRightCorner(Index cRows, Index cCols) const
+{
+ return ConstBlockXpr(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
+}
+
+/// \returns an expression of a fixed-size bottom-right corner of *this.
+///
+/// The template parameters CRows and CCols are the number of rows and columns in the corner.
+///
+/// Example: \include MatrixBase_template_int_int_bottomRightCorner.cpp
+/// Output: \verbinclude MatrixBase_template_int_int_bottomRightCorner.out
+///
+EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+template<int CRows, int CCols>
+EIGEN_DEVICE_FUNC
+inline typename FixedBlockXpr<CRows,CCols>::Type bottomRightCorner()
+{
+ return typename FixedBlockXpr<CRows,CCols>::Type(derived(), rows() - CRows, cols() - CCols);
+}
+
+/// This is the const version of bottomRightCorner<int, int>().
+template<int CRows, int CCols>
+EIGEN_DEVICE_FUNC
+inline const typename ConstFixedBlockXpr<CRows,CCols>::Type bottomRightCorner() const
+{
+ return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), rows() - CRows, cols() - CCols);
+}
+
+/// \returns an expression of a bottom-right corner of *this.
+///
+/// \tparam CRows number of rows in corner as specified at compile-time
+/// \tparam CCols number of columns in corner as specified at compile-time
+/// \param cRows number of rows in corner as specified at run-time
+/// \param cCols number of columns in corner as specified at run-time
+///
+/// This function is mainly useful for corners where the number of rows is specified at compile-time
+/// and the number of columns is specified at run-time, or vice versa. The compile-time and run-time
+/// information should not contradict. In other words, \a cRows should equal \a CRows unless
+/// \a CRows is \a Dynamic, and the same for the number of columns.
+///
+/// Example: \include MatrixBase_template_int_int_bottomRightCorner_int_int.cpp
+/// Output: \verbinclude MatrixBase_template_int_int_bottomRightCorner_int_int.out
+///
+EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
+///
+/// \sa class Block
+///
+template<int CRows, int CCols>
+inline typename FixedBlockXpr<CRows,CCols>::Type bottomRightCorner(Index cRows, Index cCols)
+{
+ return typename FixedBlockXpr<CRows,CCols>::Type(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
+}
+
+/// This is the const version of bottomRightCorner<int, int>(Index, Index).
+template<int CRows, int CCols>
+inline const typename ConstFixedBlockXpr<CRows,CCols>::Type bottomRightCorner(Index cRows, Index cCols) const
+{
+ return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
+}
+
+
+
+/// \returns a dynamic-size expression of a bottom-left corner of *this.
+///
+/// \param cRows the number of rows in the corner
+/// \param cCols the number of columns in the corner
+///
+/// Example: \include MatrixBase_bottomLeftCorner_int_int.cpp
+/// Output: \verbinclude MatrixBase_bottomLeftCorner_int_int.out
+///
+EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+EIGEN_DEVICE_FUNC
+inline BlockXpr bottomLeftCorner(Index cRows, Index cCols)
+{
+ return BlockXpr(derived(), rows() - cRows, 0, cRows, cCols);
+}
+
+/// This is the const version of bottomLeftCorner(Index, Index).
+EIGEN_DEVICE_FUNC
+inline const ConstBlockXpr bottomLeftCorner(Index cRows, Index cCols) const
+{
+ return ConstBlockXpr(derived(), rows() - cRows, 0, cRows, cCols);
+}
+
+/// \returns an expression of a fixed-size bottom-left corner of *this.
+///
+/// The template parameters CRows and CCols are the number of rows and columns in the corner.
+///
+/// Example: \include MatrixBase_template_int_int_bottomLeftCorner.cpp
+/// Output: \verbinclude MatrixBase_template_int_int_bottomLeftCorner.out
+///
+EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+template<int CRows, int CCols>
+EIGEN_DEVICE_FUNC
+inline typename FixedBlockXpr<CRows,CCols>::Type bottomLeftCorner()
+{
+ return typename FixedBlockXpr<CRows,CCols>::Type(derived(), rows() - CRows, 0);
+}
+
+/// This is the const version of bottomLeftCorner<int, int>().
+template<int CRows, int CCols>
+EIGEN_DEVICE_FUNC
+inline const typename ConstFixedBlockXpr<CRows,CCols>::Type bottomLeftCorner() const
+{
+ return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), rows() - CRows, 0);
+}
+
+/// \returns an expression of a bottom-left corner of *this.
+///
+/// \tparam CRows number of rows in corner as specified at compile-time
+/// \tparam CCols number of columns in corner as specified at compile-time
+/// \param cRows number of rows in corner as specified at run-time
+/// \param cCols number of columns in corner as specified at run-time
+///
+/// This function is mainly useful for corners where the number of rows is specified at compile-time
+/// and the number of columns is specified at run-time, or vice versa. The compile-time and run-time
+/// information should not contradict. In other words, \a cRows should equal \a CRows unless
+/// \a CRows is \a Dynamic, and the same for the number of columns.
+///
+/// Example: \include MatrixBase_template_int_int_bottomLeftCorner_int_int.cpp
+/// Output: \verbinclude MatrixBase_template_int_int_bottomLeftCorner_int_int.out
+///
+EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
+///
+/// \sa class Block
+///
+template<int CRows, int CCols>
+inline typename FixedBlockXpr<CRows,CCols>::Type bottomLeftCorner(Index cRows, Index cCols)
+{
+ return typename FixedBlockXpr<CRows,CCols>::Type(derived(), rows() - cRows, 0, cRows, cCols);
+}
+
+/// This is the const version of bottomLeftCorner<int, int>(Index, Index).
+template<int CRows, int CCols>
+inline const typename ConstFixedBlockXpr<CRows,CCols>::Type bottomLeftCorner(Index cRows, Index cCols) const
+{
+ return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), rows() - cRows, 0, cRows, cCols);
+}
+
+
+
+/// \returns a block consisting of the top rows of *this.
+///
+/// \param n the number of rows in the block
+///
+/// Example: \include MatrixBase_topRows_int.cpp
+/// Output: \verbinclude MatrixBase_topRows_int.out
+///
+EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+EIGEN_DEVICE_FUNC
+inline RowsBlockXpr topRows(Index n)
+{
+ return RowsBlockXpr(derived(), 0, 0, n, cols());
+}
+
+/// This is the const version of topRows(Index).
+EIGEN_DEVICE_FUNC
+inline ConstRowsBlockXpr topRows(Index n) const
+{
+ return ConstRowsBlockXpr(derived(), 0, 0, n, cols());
+}
+
+/// \returns a block consisting of the top rows of *this.
+///
+/// \tparam N the number of rows in the block as specified at compile-time
+/// \param n the number of rows in the block as specified at run-time
+///
+/// The compile-time and run-time information should not contradict. In other words,
+/// \a n should equal \a N unless \a N is \a Dynamic.
+///
+/// Example: \include MatrixBase_template_int_topRows.cpp
+/// Output: \verbinclude MatrixBase_template_int_topRows.out
+///
+EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+template<int N>
+EIGEN_DEVICE_FUNC
+inline typename NRowsBlockXpr<N>::Type topRows(Index n = N)
+{
+ return typename NRowsBlockXpr<N>::Type(derived(), 0, 0, n, cols());
+}
+
+/// This is the const version of topRows<int>().
+template<int N>
+EIGEN_DEVICE_FUNC
+inline typename ConstNRowsBlockXpr<N>::Type topRows(Index n = N) const
+{
+ return typename ConstNRowsBlockXpr<N>::Type(derived(), 0, 0, n, cols());
+}
+
+
+
+/// \returns a block consisting of the bottom rows of *this.
+///
+/// \param n the number of rows in the block
+///
+/// Example: \include MatrixBase_bottomRows_int.cpp
+/// Output: \verbinclude MatrixBase_bottomRows_int.out
+///
+EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+EIGEN_DEVICE_FUNC
+inline RowsBlockXpr bottomRows(Index n)
+{
+ return RowsBlockXpr(derived(), rows() - n, 0, n, cols());
+}
+
+/// This is the const version of bottomRows(Index).
+EIGEN_DEVICE_FUNC
+inline ConstRowsBlockXpr bottomRows(Index n) const
+{
+ return ConstRowsBlockXpr(derived(), rows() - n, 0, n, cols());
+}
+
+/// \returns a block consisting of the bottom rows of *this.
+///
+/// \tparam N the number of rows in the block as specified at compile-time
+/// \param n the number of rows in the block as specified at run-time
+///
+/// The compile-time and run-time information should not contradict. In other words,
+/// \a n should equal \a N unless \a N is \a Dynamic.
+///
+/// Example: \include MatrixBase_template_int_bottomRows.cpp
+/// Output: \verbinclude MatrixBase_template_int_bottomRows.out
+///
+EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+template<int N>
+EIGEN_DEVICE_FUNC
+inline typename NRowsBlockXpr<N>::Type bottomRows(Index n = N)
+{
+ return typename NRowsBlockXpr<N>::Type(derived(), rows() - n, 0, n, cols());
+}
+
+/// This is the const version of bottomRows<int>().
+template<int N>
+EIGEN_DEVICE_FUNC
+inline typename ConstNRowsBlockXpr<N>::Type bottomRows(Index n = N) const
+{
+ return typename ConstNRowsBlockXpr<N>::Type(derived(), rows() - n, 0, n, cols());
+}
+
+
+
+/// \returns a block consisting of a range of rows of *this.
+///
+/// \param startRow the index of the first row in the block
+/// \param n the number of rows in the block
+///
+/// Example: \include DenseBase_middleRows_int.cpp
+/// Output: \verbinclude DenseBase_middleRows_int.out
+///
+EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+EIGEN_DEVICE_FUNC
+inline RowsBlockXpr middleRows(Index startRow, Index n)
+{
+ return RowsBlockXpr(derived(), startRow, 0, n, cols());
+}
+
+/// This is the const version of middleRows(Index,Index).
+EIGEN_DEVICE_FUNC
+inline ConstRowsBlockXpr middleRows(Index startRow, Index n) const
+{
+ return ConstRowsBlockXpr(derived(), startRow, 0, n, cols());
+}
+
+/// \returns a block consisting of a range of rows of *this.
+///
+/// \tparam N the number of rows in the block as specified at compile-time
+/// \param startRow the index of the first row in the block
+/// \param n the number of rows in the block as specified at run-time
+///
+/// The compile-time and run-time information should not contradict. In other words,
+/// \a n should equal \a N unless \a N is \a Dynamic.
+///
+/// Example: \include DenseBase_template_int_middleRows.cpp
+/// Output: \verbinclude DenseBase_template_int_middleRows.out
+///
+EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+template<int N>
+EIGEN_DEVICE_FUNC
+inline typename NRowsBlockXpr<N>::Type middleRows(Index startRow, Index n = N)
+{
+ return typename NRowsBlockXpr<N>::Type(derived(), startRow, 0, n, cols());
+}
+
+/// This is the const version of middleRows<int>().
+template<int N>
+EIGEN_DEVICE_FUNC
+inline typename ConstNRowsBlockXpr<N>::Type middleRows(Index startRow, Index n = N) const
+{
+ return typename ConstNRowsBlockXpr<N>::Type(derived(), startRow, 0, n, cols());
+}
+
+
+
+/// \returns a block consisting of the left columns of *this.
+///
+/// \param n the number of columns in the block
+///
+/// Example: \include MatrixBase_leftCols_int.cpp
+/// Output: \verbinclude MatrixBase_leftCols_int.out
+///
+EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+EIGEN_DEVICE_FUNC
+inline ColsBlockXpr leftCols(Index n)
+{
+ return ColsBlockXpr(derived(), 0, 0, rows(), n);
+}
+
+/// This is the const version of leftCols(Index).
+EIGEN_DEVICE_FUNC
+inline ConstColsBlockXpr leftCols(Index n) const
+{
+ return ConstColsBlockXpr(derived(), 0, 0, rows(), n);
+}
+
+/// \returns a block consisting of the left columns of *this.
+///
+/// \tparam N the number of columns in the block as specified at compile-time
+/// \param n the number of columns in the block as specified at run-time
+///
+/// The compile-time and run-time information should not contradict. In other words,
+/// \a n should equal \a N unless \a N is \a Dynamic.
+///
+/// Example: \include MatrixBase_template_int_leftCols.cpp
+/// Output: \verbinclude MatrixBase_template_int_leftCols.out
+///
+EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+template<int N>
+EIGEN_DEVICE_FUNC
+inline typename NColsBlockXpr<N>::Type leftCols(Index n = N)
+{
+ return typename NColsBlockXpr<N>::Type(derived(), 0, 0, rows(), n);
+}
+
+/// This is the const version of leftCols<int>().
+template<int N>
+EIGEN_DEVICE_FUNC
+inline typename ConstNColsBlockXpr<N>::Type leftCols(Index n = N) const
+{
+ return typename ConstNColsBlockXpr<N>::Type(derived(), 0, 0, rows(), n);
+}
+
+
+
+/// \returns a block consisting of the right columns of *this.
+///
+/// \param n the number of columns in the block
+///
+/// Example: \include MatrixBase_rightCols_int.cpp
+/// Output: \verbinclude MatrixBase_rightCols_int.out
+///
+EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+EIGEN_DEVICE_FUNC
+inline ColsBlockXpr rightCols(Index n)
+{
+ return ColsBlockXpr(derived(), 0, cols() - n, rows(), n);
+}
+
+/// This is the const version of rightCols(Index).
+EIGEN_DEVICE_FUNC
+inline ConstColsBlockXpr rightCols(Index n) const
+{
+ return ConstColsBlockXpr(derived(), 0, cols() - n, rows(), n);
+}
+
+/// \returns a block consisting of the right columns of *this.
+///
+/// \tparam N the number of columns in the block as specified at compile-time
+/// \param n the number of columns in the block as specified at run-time
+///
+/// The compile-time and run-time information should not contradict. In other words,
+/// \a n should equal \a N unless \a N is \a Dynamic.
+///
+/// Example: \include MatrixBase_template_int_rightCols.cpp
+/// Output: \verbinclude MatrixBase_template_int_rightCols.out
+///
+EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+template<int N>
+EIGEN_DEVICE_FUNC
+inline typename NColsBlockXpr<N>::Type rightCols(Index n = N)
+{
+ return typename NColsBlockXpr<N>::Type(derived(), 0, cols() - n, rows(), n);
+}
+
+/// This is the const version of rightCols<int>().
+template<int N>
+EIGEN_DEVICE_FUNC
+inline typename ConstNColsBlockXpr<N>::Type rightCols(Index n = N) const
+{
+ return typename ConstNColsBlockXpr<N>::Type(derived(), 0, cols() - n, rows(), n);
+}
+
+
+
+/// \returns a block consisting of a range of columns of *this.
+///
+/// \param startCol the index of the first column in the block
+/// \param numCols the number of columns in the block
+///
+/// Example: \include DenseBase_middleCols_int.cpp
+/// Output: \verbinclude DenseBase_middleCols_int.out
+///
+EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+EIGEN_DEVICE_FUNC
+inline ColsBlockXpr middleCols(Index startCol, Index numCols)
+{
+ return ColsBlockXpr(derived(), 0, startCol, rows(), numCols);
+}
+
+/// This is the const version of middleCols(Index,Index).
+EIGEN_DEVICE_FUNC
+inline ConstColsBlockXpr middleCols(Index startCol, Index numCols) const
+{
+ return ConstColsBlockXpr(derived(), 0, startCol, rows(), numCols);
+}
+
+/// \returns a block consisting of a range of columns of *this.
+///
+/// \tparam N the number of columns in the block as specified at compile-time
+/// \param startCol the index of the first column in the block
+/// \param n the number of columns in the block as specified at run-time
+///
+/// The compile-time and run-time information should not contradict. In other words,
+/// \a n should equal \a N unless \a N is \a Dynamic.
+///
+/// Example: \include DenseBase_template_int_middleCols.cpp
+/// Output: \verbinclude DenseBase_template_int_middleCols.out
+///
+EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+template<int N>
+EIGEN_DEVICE_FUNC
+inline typename NColsBlockXpr<N>::Type middleCols(Index startCol, Index n = N)
+{
+ return typename NColsBlockXpr<N>::Type(derived(), 0, startCol, rows(), n);
+}
+
+/// This is the const version of middleCols<int>().
+template<int N>
+EIGEN_DEVICE_FUNC
+inline typename ConstNColsBlockXpr<N>::Type middleCols(Index startCol, Index n = N) const
+{
+ return typename ConstNColsBlockXpr<N>::Type(derived(), 0, startCol, rows(), n);
+}
+
+
+
+/// \returns a fixed-size expression of a block in *this.
+///
+/// The template parameters \a NRows and \a NCols are the number of
+/// rows and columns in the block.
+///
+/// \param startRow the first row in the block
+/// \param startCol the first column in the block
+///
+/// Example: \include MatrixBase_block_int_int.cpp
+/// Output: \verbinclude MatrixBase_block_int_int.out
+///
+/// \note since block is a templated member, the keyword template has to be used
+/// if the matrix type is also a template parameter: \code m.template block<3,3>(1,1); \endcode
+///
+EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+template<int NRows, int NCols>
+EIGEN_DEVICE_FUNC
+inline typename FixedBlockXpr<NRows,NCols>::Type block(Index startRow, Index startCol)
+{
+ return typename FixedBlockXpr<NRows,NCols>::Type(derived(), startRow, startCol);
+}
+
+/// This is the const version of block<>(Index, Index). */
+template<int NRows, int NCols>
+EIGEN_DEVICE_FUNC
+inline const typename ConstFixedBlockXpr<NRows,NCols>::Type block(Index startRow, Index startCol) const
+{
+ return typename ConstFixedBlockXpr<NRows,NCols>::Type(derived(), startRow, startCol);
+}
+
+/// \returns an expression of a block in *this.
+///
+/// \tparam NRows number of rows in block as specified at compile-time
+/// \tparam NCols number of columns in block as specified at compile-time
+/// \param startRow the first row in the block
+/// \param startCol the first column in the block
+/// \param blockRows number of rows in block as specified at run-time
+/// \param blockCols number of columns in block as specified at run-time
+///
+/// This function is mainly useful for blocks where the number of rows is specified at compile-time
+/// and the number of columns is specified at run-time, or vice versa. The compile-time and run-time
+/// information should not contradict. In other words, \a blockRows should equal \a NRows unless
+/// \a NRows is \a Dynamic, and the same for the number of columns.
+///
+/// Example: \include MatrixBase_template_int_int_block_int_int_int_int.cpp
+/// Output: \verbinclude MatrixBase_template_int_int_block_int_int_int_int.cpp
+///
+EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
+///
+/// \sa class Block, block(Index,Index,Index,Index)
+///
+template<int NRows, int NCols>
+inline typename FixedBlockXpr<NRows,NCols>::Type block(Index startRow, Index startCol,
+ Index blockRows, Index blockCols)
+{
+ return typename FixedBlockXpr<NRows,NCols>::Type(derived(), startRow, startCol, blockRows, blockCols);
+}
+
+/// This is the const version of block<>(Index, Index, Index, Index).
+template<int NRows, int NCols>
+inline const typename ConstFixedBlockXpr<NRows,NCols>::Type block(Index startRow, Index startCol,
+ Index blockRows, Index blockCols) const
+{
+ return typename ConstFixedBlockXpr<NRows,NCols>::Type(derived(), startRow, startCol, blockRows, blockCols);
+}
+
+/// \returns an expression of the \a i-th column of *this. Note that the numbering starts at 0.
+///
+/// Example: \include MatrixBase_col.cpp
+/// Output: \verbinclude MatrixBase_col.out
+///
+EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
+/**
+ * \sa row(), class Block */
+EIGEN_DEVICE_FUNC
+inline ColXpr col(Index i)
+{
+ return ColXpr(derived(), i);
+}
+
+/// This is the const version of col().
+EIGEN_DEVICE_FUNC
+inline ConstColXpr col(Index i) const
+{
+ return ConstColXpr(derived(), i);
+}
+
+/// \returns an expression of the \a i-th row of *this. Note that the numbering starts at 0.
+///
+/// Example: \include MatrixBase_row.cpp
+/// Output: \verbinclude MatrixBase_row.out
+///
+EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
+/**
+ * \sa col(), class Block */
+EIGEN_DEVICE_FUNC
+inline RowXpr row(Index i)
+{
+ return RowXpr(derived(), i);
+}
+
+/// This is the const version of row(). */
+EIGEN_DEVICE_FUNC
+inline ConstRowXpr row(Index i) const
+{
+ return ConstRowXpr(derived(), i);
+}
+
+/// \returns a dynamic-size expression of a segment (i.e. a vector block) in *this.
+///
+/// \only_for_vectors
+///
+/// \param start the first coefficient in the segment
+/// \param n the number of coefficients in the segment
+///
+/// Example: \include MatrixBase_segment_int_int.cpp
+/// Output: \verbinclude MatrixBase_segment_int_int.out
+///
+/// \note Even though the returned expression has dynamic size, in the case
+/// when it is applied to a fixed-size vector, it inherits a fixed maximal size,
+/// which means that evaluating it does not cause a dynamic memory allocation.
+///
+/// \sa class Block, segment(Index)
+///
+EIGEN_DEVICE_FUNC
+inline SegmentReturnType segment(Index start, Index n)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ return SegmentReturnType(derived(), start, n);
+}
+
+
+/// This is the const version of segment(Index,Index).
+EIGEN_DEVICE_FUNC
+inline ConstSegmentReturnType segment(Index start, Index n) const
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ return ConstSegmentReturnType(derived(), start, n);
+}
+
+/// \returns a dynamic-size expression of the first coefficients of *this.
+///
+/// \only_for_vectors
+///
+/// \param n the number of coefficients in the segment
+///
+/// Example: \include MatrixBase_start_int.cpp
+/// Output: \verbinclude MatrixBase_start_int.out
+///
+/// \note Even though the returned expression has dynamic size, in the case
+/// when it is applied to a fixed-size vector, it inherits a fixed maximal size,
+/// which means that evaluating it does not cause a dynamic memory allocation.
+///
+/// \sa class Block, block(Index,Index)
+///
+EIGEN_DEVICE_FUNC
+inline SegmentReturnType head(Index n)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ return SegmentReturnType(derived(), 0, n);
+}
+
+/// This is the const version of head(Index).
+EIGEN_DEVICE_FUNC
+inline ConstSegmentReturnType head(Index n) const
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ return ConstSegmentReturnType(derived(), 0, n);
+}
+
+/// \returns a dynamic-size expression of the last coefficients of *this.
+///
+/// \only_for_vectors
+///
+/// \param n the number of coefficients in the segment
+///
+/// Example: \include MatrixBase_end_int.cpp
+/// Output: \verbinclude MatrixBase_end_int.out
+///
+/// \note Even though the returned expression has dynamic size, in the case
+/// when it is applied to a fixed-size vector, it inherits a fixed maximal size,
+/// which means that evaluating it does not cause a dynamic memory allocation.
+///
+/// \sa class Block, block(Index,Index)
+///
+EIGEN_DEVICE_FUNC
+inline SegmentReturnType tail(Index n)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ return SegmentReturnType(derived(), this->size() - n, n);
+}
+
+/// This is the const version of tail(Index).
+EIGEN_DEVICE_FUNC
+inline ConstSegmentReturnType tail(Index n) const
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ return ConstSegmentReturnType(derived(), this->size() - n, n);
+}
+
+/// \returns a fixed-size expression of a segment (i.e. a vector block) in \c *this
+///
+/// \only_for_vectors
+///
+/// \tparam N the number of coefficients in the segment as specified at compile-time
+/// \param start the index of the first element in the segment
+/// \param n the number of coefficients in the segment as specified at compile-time
+///
+/// The compile-time and run-time information should not contradict. In other words,
+/// \a n should equal \a N unless \a N is \a Dynamic.
+///
+/// Example: \include MatrixBase_template_int_segment.cpp
+/// Output: \verbinclude MatrixBase_template_int_segment.out
+///
+/// \sa class Block
+///
+template<int N>
+EIGEN_DEVICE_FUNC
+inline typename FixedSegmentReturnType<N>::Type segment(Index start, Index n = N)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ return typename FixedSegmentReturnType<N>::Type(derived(), start, n);
+}
+
+/// This is the const version of segment<int>(Index).
+template<int N>
+EIGEN_DEVICE_FUNC
+inline typename ConstFixedSegmentReturnType<N>::Type segment(Index start, Index n = N) const
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ return typename ConstFixedSegmentReturnType<N>::Type(derived(), start, n);
+}
+
+/// \returns a fixed-size expression of the first coefficients of *this.
+///
+/// \only_for_vectors
+///
+/// \tparam N the number of coefficients in the segment as specified at compile-time
+/// \param n the number of coefficients in the segment as specified at run-time
+///
+/// The compile-time and run-time information should not contradict. In other words,
+/// \a n should equal \a N unless \a N is \a Dynamic.
+///
+/// Example: \include MatrixBase_template_int_start.cpp
+/// Output: \verbinclude MatrixBase_template_int_start.out
+///
+/// \sa class Block
+///
+template<int N>
+EIGEN_DEVICE_FUNC
+inline typename FixedSegmentReturnType<N>::Type head(Index n = N)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ return typename FixedSegmentReturnType<N>::Type(derived(), 0, n);
+}
+
+/// This is the const version of head<int>().
+template<int N>
+EIGEN_DEVICE_FUNC
+inline typename ConstFixedSegmentReturnType<N>::Type head(Index n = N) const
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ return typename ConstFixedSegmentReturnType<N>::Type(derived(), 0, n);
+}
+
+/// \returns a fixed-size expression of the last coefficients of *this.
+///
+/// \only_for_vectors
+///
+/// \tparam N the number of coefficients in the segment as specified at compile-time
+/// \param n the number of coefficients in the segment as specified at run-time
+///
+/// The compile-time and run-time information should not contradict. In other words,
+/// \a n should equal \a N unless \a N is \a Dynamic.
+///
+/// Example: \include MatrixBase_template_int_end.cpp
+/// Output: \verbinclude MatrixBase_template_int_end.out
+///
+/// \sa class Block
+///
+template<int N>
+EIGEN_DEVICE_FUNC
+inline typename FixedSegmentReturnType<N>::Type tail(Index n = N)
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ return typename FixedSegmentReturnType<N>::Type(derived(), size() - n);
+}
+
+/// This is the const version of tail<int>.
+template<int N>
+EIGEN_DEVICE_FUNC
+inline typename ConstFixedSegmentReturnType<N>::Type tail(Index n = N) const
+{
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+ return typename ConstFixedSegmentReturnType<N>::Type(derived(), size() - n);
+}
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h b/runtimes/nn/depend/external/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h
new file mode 100644
index 000000000..8b6730ede
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h
@@ -0,0 +1,115 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2016 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// This file is a base class plugin containing common coefficient wise functions.
+
+/** \returns an expression of the difference of \c *this and \a other
+ *
+ * \note If you want to substract a given scalar from all coefficients, see Cwise::operator-().
+ *
+ * \sa class CwiseBinaryOp, operator-=()
+ */
+EIGEN_MAKE_CWISE_BINARY_OP(operator-,difference)
+
+/** \returns an expression of the sum of \c *this and \a other
+ *
+ * \note If you want to add a given scalar to all coefficients, see Cwise::operator+().
+ *
+ * \sa class CwiseBinaryOp, operator+=()
+ */
+EIGEN_MAKE_CWISE_BINARY_OP(operator+,sum)
+
+/** \returns an expression of a custom coefficient-wise operator \a func of *this and \a other
+ *
+ * The template parameter \a CustomBinaryOp is the type of the functor
+ * of the custom operator (see class CwiseBinaryOp for an example)
+ *
+ * Here is an example illustrating the use of custom functors:
+ * \include class_CwiseBinaryOp.cpp
+ * Output: \verbinclude class_CwiseBinaryOp.out
+ *
+ * \sa class CwiseBinaryOp, operator+(), operator-(), cwiseProduct()
+ */
+template<typename CustomBinaryOp, typename OtherDerived>
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE const CwiseBinaryOp<CustomBinaryOp, const Derived, const OtherDerived>
+binaryExpr(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other, const CustomBinaryOp& func = CustomBinaryOp()) const
+{
+ return CwiseBinaryOp<CustomBinaryOp, const Derived, const OtherDerived>(derived(), other.derived(), func);
+}
+
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+EIGEN_MAKE_SCALAR_BINARY_OP(operator*,product)
+#else
+/** \returns an expression of \c *this scaled by the scalar factor \a scalar
+ *
+ * \tparam T is the scalar type of \a scalar. It must be compatible with the scalar type of the given expression.
+ */
+template<typename T>
+const CwiseBinaryOp<internal::scalar_product_op<Scalar,T>,Derived,Constant<T> > operator*(const T& scalar) const;
+/** \returns an expression of \a expr scaled by the scalar factor \a scalar
+ *
+ * \tparam T is the scalar type of \a scalar. It must be compatible with the scalar type of the given expression.
+ */
+template<typename T> friend
+const CwiseBinaryOp<internal::scalar_product_op<T,Scalar>,Constant<T>,Derived> operator*(const T& scalar, const StorageBaseType& expr);
+#endif
+
+
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+EIGEN_MAKE_SCALAR_BINARY_OP_ONTHERIGHT(operator/,quotient)
+#else
+/** \returns an expression of \c *this divided by the scalar value \a scalar
+ *
+ * \tparam T is the scalar type of \a scalar. It must be compatible with the scalar type of the given expression.
+ */
+template<typename T>
+const CwiseBinaryOp<internal::scalar_quotient_op<Scalar,T>,Derived,Constant<T> > operator/(const T& scalar) const;
+#endif
+
+/** \returns an expression of the coefficient-wise boolean \b and operator of \c *this and \a other
+ *
+ * \warning this operator is for expression of bool only.
+ *
+ * Example: \include Cwise_boolean_and.cpp
+ * Output: \verbinclude Cwise_boolean_and.out
+ *
+ * \sa operator||(), select()
+ */
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC
+inline const CwiseBinaryOp<internal::scalar_boolean_and_op, const Derived, const OtherDerived>
+operator&&(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+ EIGEN_STATIC_ASSERT((internal::is_same<bool,Scalar>::value && internal::is_same<bool,typename OtherDerived::Scalar>::value),
+ THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL);
+ return CwiseBinaryOp<internal::scalar_boolean_and_op, const Derived, const OtherDerived>(derived(),other.derived());
+}
+
+/** \returns an expression of the coefficient-wise boolean \b or operator of \c *this and \a other
+ *
+ * \warning this operator is for expression of bool only.
+ *
+ * Example: \include Cwise_boolean_or.cpp
+ * Output: \verbinclude Cwise_boolean_or.out
+ *
+ * \sa operator&&(), select()
+ */
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC
+inline const CwiseBinaryOp<internal::scalar_boolean_or_op, const Derived, const OtherDerived>
+operator||(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+ EIGEN_STATIC_ASSERT((internal::is_same<bool,Scalar>::value && internal::is_same<bool,typename OtherDerived::Scalar>::value),
+ THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL);
+ return CwiseBinaryOp<internal::scalar_boolean_or_op, const Derived, const OtherDerived>(derived(),other.derived());
+}
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h b/runtimes/nn/depend/external/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h
new file mode 100644
index 000000000..89f4faaac
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h
@@ -0,0 +1,163 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// This file is a base class plugin containing common coefficient wise functions.
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+
+/** \internal the return type of conjugate() */
+typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
+ const CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, const Derived>,
+ const Derived&
+ >::type ConjugateReturnType;
+/** \internal the return type of real() const */
+typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
+ const CwiseUnaryOp<internal::scalar_real_op<Scalar>, const Derived>,
+ const Derived&
+ >::type RealReturnType;
+/** \internal the return type of real() */
+typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
+ CwiseUnaryView<internal::scalar_real_ref_op<Scalar>, Derived>,
+ Derived&
+ >::type NonConstRealReturnType;
+/** \internal the return type of imag() const */
+typedef CwiseUnaryOp<internal::scalar_imag_op<Scalar>, const Derived> ImagReturnType;
+/** \internal the return type of imag() */
+typedef CwiseUnaryView<internal::scalar_imag_ref_op<Scalar>, Derived> NonConstImagReturnType;
+
+typedef CwiseUnaryOp<internal::scalar_opposite_op<Scalar>, const Derived> NegativeReturnType;
+
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+/// \returns an expression of the opposite of \c *this
+///
+EIGEN_DOC_UNARY_ADDONS(operator-,opposite)
+///
+EIGEN_DEVICE_FUNC
+inline const NegativeReturnType
+operator-() const { return NegativeReturnType(derived()); }
+
+
+template<class NewType> struct CastXpr { typedef typename internal::cast_return_type<Derived,const CwiseUnaryOp<internal::scalar_cast_op<Scalar, NewType>, const Derived> >::type Type; };
+
+/// \returns an expression of \c *this with the \a Scalar type casted to
+/// \a NewScalar.
+///
+/// The template parameter \a NewScalar is the type we are casting the scalars to.
+///
+EIGEN_DOC_UNARY_ADDONS(cast,conversion function)
+///
+/// \sa class CwiseUnaryOp
+///
+template<typename NewType>
+EIGEN_DEVICE_FUNC
+typename CastXpr<NewType>::Type
+cast() const
+{
+ return typename CastXpr<NewType>::Type(derived());
+}
+
+/// \returns an expression of the complex conjugate of \c *this.
+///
+EIGEN_DOC_UNARY_ADDONS(conjugate,complex conjugate)
+///
+/// \sa <a href="group__CoeffwiseMathFunctions.html#cwisetable_conj">Math functions</a>, MatrixBase::adjoint()
+EIGEN_DEVICE_FUNC
+inline ConjugateReturnType
+conjugate() const
+{
+ return ConjugateReturnType(derived());
+}
+
+/// \returns a read-only expression of the real part of \c *this.
+///
+EIGEN_DOC_UNARY_ADDONS(real,real part function)
+///
+/// \sa imag()
+EIGEN_DEVICE_FUNC
+inline RealReturnType
+real() const { return RealReturnType(derived()); }
+
+/// \returns an read-only expression of the imaginary part of \c *this.
+///
+EIGEN_DOC_UNARY_ADDONS(imag,imaginary part function)
+///
+/// \sa real()
+EIGEN_DEVICE_FUNC
+inline const ImagReturnType
+imag() const { return ImagReturnType(derived()); }
+
+/// \brief Apply a unary operator coefficient-wise
+/// \param[in] func Functor implementing the unary operator
+/// \tparam CustomUnaryOp Type of \a func
+/// \returns An expression of a custom coefficient-wise unary operator \a func of *this
+///
+/// The function \c ptr_fun() from the C++ standard library can be used to make functors out of normal functions.
+///
+/// Example:
+/// \include class_CwiseUnaryOp_ptrfun.cpp
+/// Output: \verbinclude class_CwiseUnaryOp_ptrfun.out
+///
+/// Genuine functors allow for more possibilities, for instance it may contain a state.
+///
+/// Example:
+/// \include class_CwiseUnaryOp.cpp
+/// Output: \verbinclude class_CwiseUnaryOp.out
+///
+EIGEN_DOC_UNARY_ADDONS(unaryExpr,unary function)
+///
+/// \sa unaryViewExpr, binaryExpr, class CwiseUnaryOp
+///
+template<typename CustomUnaryOp>
+EIGEN_DEVICE_FUNC
+inline const CwiseUnaryOp<CustomUnaryOp, const Derived>
+unaryExpr(const CustomUnaryOp& func = CustomUnaryOp()) const
+{
+ return CwiseUnaryOp<CustomUnaryOp, const Derived>(derived(), func);
+}
+
+/// \returns an expression of a custom coefficient-wise unary operator \a func of *this
+///
+/// The template parameter \a CustomUnaryOp is the type of the functor
+/// of the custom unary operator.
+///
+/// Example:
+/// \include class_CwiseUnaryOp.cpp
+/// Output: \verbinclude class_CwiseUnaryOp.out
+///
+EIGEN_DOC_UNARY_ADDONS(unaryViewExpr,unary function)
+///
+/// \sa unaryExpr, binaryExpr class CwiseUnaryOp
+///
+template<typename CustomViewOp>
+EIGEN_DEVICE_FUNC
+inline const CwiseUnaryView<CustomViewOp, const Derived>
+unaryViewExpr(const CustomViewOp& func = CustomViewOp()) const
+{
+ return CwiseUnaryView<CustomViewOp, const Derived>(derived(), func);
+}
+
+/// \returns a non const expression of the real part of \c *this.
+///
+EIGEN_DOC_UNARY_ADDONS(real,real part function)
+///
+/// \sa imag()
+EIGEN_DEVICE_FUNC
+inline NonConstRealReturnType
+real() { return NonConstRealReturnType(derived()); }
+
+/// \returns a non const expression of the imaginary part of \c *this.
+///
+EIGEN_DOC_UNARY_ADDONS(imag,imaginary part function)
+///
+/// \sa real()
+EIGEN_DEVICE_FUNC
+inline NonConstImagReturnType
+imag() { return NonConstImagReturnType(derived()); }
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h b/runtimes/nn/depend/external/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h
new file mode 100644
index 000000000..f1084abef
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h
@@ -0,0 +1,152 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// This file is a base class plugin containing matrix specifics coefficient wise functions.
+
+/** \returns an expression of the Schur product (coefficient wise product) of *this and \a other
+ *
+ * Example: \include MatrixBase_cwiseProduct.cpp
+ * Output: \verbinclude MatrixBase_cwiseProduct.out
+ *
+ * \sa class CwiseBinaryOp, cwiseAbs2
+ */
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE const EIGEN_CWISE_BINARY_RETURN_TYPE(Derived,OtherDerived,product)
+cwiseProduct(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+ return EIGEN_CWISE_BINARY_RETURN_TYPE(Derived,OtherDerived,product)(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient-wise == operator of *this and \a other
+ *
+ * \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
+ * In order to check for equality between two vectors or matrices with floating-point coefficients, it is
+ * generally a far better idea to use a fuzzy comparison as provided by isApprox() and
+ * isMuchSmallerThan().
+ *
+ * Example: \include MatrixBase_cwiseEqual.cpp
+ * Output: \verbinclude MatrixBase_cwiseEqual.out
+ *
+ * \sa cwiseNotEqual(), isApprox(), isMuchSmallerThan()
+ */
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC
+inline const CwiseBinaryOp<std::equal_to<Scalar>, const Derived, const OtherDerived>
+cwiseEqual(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+ return CwiseBinaryOp<std::equal_to<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient-wise != operator of *this and \a other
+ *
+ * \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
+ * In order to check for equality between two vectors or matrices with floating-point coefficients, it is
+ * generally a far better idea to use a fuzzy comparison as provided by isApprox() and
+ * isMuchSmallerThan().
+ *
+ * Example: \include MatrixBase_cwiseNotEqual.cpp
+ * Output: \verbinclude MatrixBase_cwiseNotEqual.out
+ *
+ * \sa cwiseEqual(), isApprox(), isMuchSmallerThan()
+ */
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC
+inline const CwiseBinaryOp<std::not_equal_to<Scalar>, const Derived, const OtherDerived>
+cwiseNotEqual(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+ return CwiseBinaryOp<std::not_equal_to<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient-wise min of *this and \a other
+ *
+ * Example: \include MatrixBase_cwiseMin.cpp
+ * Output: \verbinclude MatrixBase_cwiseMin.out
+ *
+ * \sa class CwiseBinaryOp, max()
+ */
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_min_op<Scalar,Scalar>, const Derived, const OtherDerived>
+cwiseMin(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+ return CwiseBinaryOp<internal::scalar_min_op<Scalar,Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient-wise min of *this and scalar \a other
+ *
+ * \sa class CwiseBinaryOp, min()
+ */
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_min_op<Scalar,Scalar>, const Derived, const ConstantReturnType>
+cwiseMin(const Scalar &other) const
+{
+ return cwiseMin(Derived::Constant(rows(), cols(), other));
+}
+
+/** \returns an expression of the coefficient-wise max of *this and \a other
+ *
+ * Example: \include MatrixBase_cwiseMax.cpp
+ * Output: \verbinclude MatrixBase_cwiseMax.out
+ *
+ * \sa class CwiseBinaryOp, min()
+ */
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_max_op<Scalar,Scalar>, const Derived, const OtherDerived>
+cwiseMax(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+ return CwiseBinaryOp<internal::scalar_max_op<Scalar,Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient-wise max of *this and scalar \a other
+ *
+ * \sa class CwiseBinaryOp, min()
+ */
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_max_op<Scalar,Scalar>, const Derived, const ConstantReturnType>
+cwiseMax(const Scalar &other) const
+{
+ return cwiseMax(Derived::Constant(rows(), cols(), other));
+}
+
+
+/** \returns an expression of the coefficient-wise quotient of *this and \a other
+ *
+ * Example: \include MatrixBase_cwiseQuotient.cpp
+ * Output: \verbinclude MatrixBase_cwiseQuotient.out
+ *
+ * \sa class CwiseBinaryOp, cwiseProduct(), cwiseInverse()
+ */
+template<typename OtherDerived>
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, const Derived, const OtherDerived>
+cwiseQuotient(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+ return CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
+}
+
+typedef CwiseBinaryOp<internal::scalar_cmp_op<Scalar,Scalar,internal::cmp_EQ>, const Derived, const ConstantReturnType> CwiseScalarEqualReturnType;
+
+/** \returns an expression of the coefficient-wise == operator of \c *this and a scalar \a s
+ *
+ * \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
+ * In order to check for equality between two vectors or matrices with floating-point coefficients, it is
+ * generally a far better idea to use a fuzzy comparison as provided by isApprox() and
+ * isMuchSmallerThan().
+ *
+ * \sa cwiseEqual(const MatrixBase<OtherDerived> &) const
+ */
+EIGEN_DEVICE_FUNC
+inline const CwiseScalarEqualReturnType
+cwiseEqual(const Scalar& s) const
+{
+ return CwiseScalarEqualReturnType(derived(), Derived::Constant(rows(), cols(), s), internal::scalar_cmp_op<Scalar,Scalar,internal::cmp_EQ>());
+}
diff --git a/runtimes/nn/depend/external/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h b/runtimes/nn/depend/external/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h
new file mode 100644
index 000000000..b1be3d566
--- /dev/null
+++ b/runtimes/nn/depend/external/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h
@@ -0,0 +1,85 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// This file is included into the body of the base classes supporting matrix specific coefficient-wise functions.
+// This include MatrixBase and SparseMatrixBase.
+
+
+typedef CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const Derived> CwiseAbsReturnType;
+typedef CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, const Derived> CwiseAbs2ReturnType;
+typedef CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, const Derived> CwiseSqrtReturnType;
+typedef CwiseUnaryOp<internal::scalar_sign_op<Scalar>, const Derived> CwiseSignReturnType;
+typedef CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const Derived> CwiseInverseReturnType;
+
+/// \returns an expression of the coefficient-wise absolute value of \c *this
+///
+/// Example: \include MatrixBase_cwiseAbs.cpp
+/// Output: \verbinclude MatrixBase_cwiseAbs.out
+///
+EIGEN_DOC_UNARY_ADDONS(cwiseAbs,absolute value)
+///
+/// \sa cwiseAbs2()
+///
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE const CwiseAbsReturnType
+cwiseAbs() const { return CwiseAbsReturnType(derived()); }
+
+/// \returns an expression of the coefficient-wise squared absolute value of \c *this
+///
+/// Example: \include MatrixBase_cwiseAbs2.cpp
+/// Output: \verbinclude MatrixBase_cwiseAbs2.out
+///
+EIGEN_DOC_UNARY_ADDONS(cwiseAbs2,squared absolute value)
+///
+/// \sa cwiseAbs()
+///
+EIGEN_DEVICE_FUNC
+EIGEN_STRONG_INLINE const CwiseAbs2ReturnType
+cwiseAbs2() const { return CwiseAbs2ReturnType(derived()); }
+
+/// \returns an expression of the coefficient-wise square root of *this.
+///
+/// Example: \include MatrixBase_cwiseSqrt.cpp
+/// Output: \verbinclude MatrixBase_cwiseSqrt.out
+///
+EIGEN_DOC_UNARY_ADDONS(cwiseSqrt,square-root)
+///
+/// \sa cwisePow(), cwiseSquare()
+///
+EIGEN_DEVICE_FUNC
+inline const CwiseSqrtReturnType
+cwiseSqrt() const { return CwiseSqrtReturnType(derived()); }
+
+/// \returns an expression of the coefficient-wise signum of *this.
+///
+/// Example: \include MatrixBase_cwiseSign.cpp
+/// Output: \verbinclude MatrixBase_cwiseSign.out
+///
+EIGEN_DOC_UNARY_ADDONS(cwiseSign,sign function)
+///
+EIGEN_DEVICE_FUNC
+inline const CwiseSignReturnType
+cwiseSign() const { return CwiseSignReturnType(derived()); }
+
+
+/// \returns an expression of the coefficient-wise inverse of *this.
+///
+/// Example: \include MatrixBase_cwiseInverse.cpp
+/// Output: \verbinclude MatrixBase_cwiseInverse.out
+///
+EIGEN_DOC_UNARY_ADDONS(cwiseInverse,inverse)
+///
+/// \sa cwiseProduct()
+///
+EIGEN_DEVICE_FUNC
+inline const CwiseInverseReturnType
+cwiseInverse() const { return CwiseInverseReturnType(derived()); }
+
+
diff --git a/runtimes/nn/depend/external/gemmlowp/CMakeLists.txt b/runtimes/nn/depend/external/gemmlowp/CMakeLists.txt
new file mode 100644
index 000000000..4e4f4b129
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/CMakeLists.txt
@@ -0,0 +1,11 @@
+
+SET(CUR_INCS
+ ${CMAKE_CURRENT_SOURCE_DIR}/fixedpoint
+ ${CMAKE_CURRENT_SOURCE_DIR}/public
+)
+
+SET(INC_DIRS
+ ${INC_DIRS}
+ ${CUR_INCS}
+ PARENT_SCOPE
+)
diff --git a/runtimes/nn/depend/external/gemmlowp/fixedpoint/fixedpoint.h b/runtimes/nn/depend/external/gemmlowp/fixedpoint/fixedpoint.h
new file mode 100644
index 000000000..e21337f28
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/fixedpoint/fixedpoint.h
@@ -0,0 +1,779 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// fixedpoint.h: fixed-point arithmetic, with basic operations and
+// a few math functions such as tanh.
+
+#ifndef GEMMLOWP_INTERNAL_FIXEDPOINT_H_
+#define GEMMLOWP_INTERNAL_FIXEDPOINT_H_
+
+#include <cassert>
+#include <limits>
+
+#include "../internal/common.h"
+
+namespace gemmlowp {
+
+// Part 1: Low-level integer-arithmetic primitives.
+// The implementations here are generic implementations valid for
+// scalar types (e.g. std::int32_t). Architecture-specific SIMD types
+// (e.g. NEON int32x4_t) may be supported by providing
+// specializations for them in separate files.
+//
+// The purpose of these primitives is two-fold:
+// - They will be used to implement higher-level fixed-point
+// abstractions, namely the FixedPoint class and its arithmetic
+// operators.
+// - They will be directly used to implement some more involved
+// fixed-point computations, e.g. the fixed-point implementation
+// of math functions such as tanh.
+
+// Some compile-time traits around raw types to handle SIMD aspects:
+// number of lanes, underlying scalar type.
+template <typename tIntegerType>
+struct FixedPointRawTypeTraits {};
+
+template <>
+struct FixedPointRawTypeTraits<std::int32_t> {
+ typedef std::int32_t ScalarRawType;
+ static const int kLanes = 1;
+};
+
+// Returns a SIMD value duplicating a scalar value across all lanes.
+template <typename tRawType>
+tRawType Dup(typename FixedPointRawTypeTraits<tRawType>::ScalarRawType x) {
+ return x;
+}
+
+// Plain bit-wise AND
+template <typename tIntegerType>
+tIntegerType BitAnd(tIntegerType a, tIntegerType b) {
+ return a & b;
+}
+
+// Plain bit-wise OR
+template <typename tIntegerType>
+tIntegerType BitOr(tIntegerType a, tIntegerType b) {
+ return a | b;
+}
+
+// Plain bit-wise XOR
+template <typename tIntegerType>
+tIntegerType BitXor(tIntegerType a, tIntegerType b) {
+ return a ^ b;
+}
+
+// Plain bit-wise NOT
+template <typename tIntegerType>
+tIntegerType BitNot(tIntegerType a) {
+ return ~a;
+}
+
+// Integer addition. Not saturating. Overflow is undefined behavior.
+template <typename tIntegerType>
+tIntegerType Add(tIntegerType a, tIntegerType b) {
+ return a + b;
+}
+
+// Integer subtraction. Not saturating. Overflow is undefined behavior.
+template <typename tIntegerType>
+tIntegerType Mul(tIntegerType a, tIntegerType b) {
+ return a * b;
+}
+
+template <typename tIntegerType>
+tIntegerType Sub(tIntegerType a, tIntegerType b) {
+ return a - b;
+}
+
+// Integer unary negative. Not saturating. Overflow is undefined behavior.
+template <typename tIntegerType>
+tIntegerType Neg(tIntegerType a) {
+ return -a;
+}
+
+// Integer arithmetic left-shift, equivalent to multiplying with a
+// power of two. Not saturating. Overflow is undefined behavior.
+template <typename tIntegerType>
+tIntegerType ShiftLeft(tIntegerType a, int offset) {
+ return a << offset;
+}
+
+// Integer arithmetic right-shift. Not rounding.
+// Relying on implementation-defined, but in-practice-consistent,
+// C++ compiler behavior.
+template <typename tIntegerType>
+tIntegerType ShiftRight(tIntegerType a, int offset) {
+ return a >> offset;
+}
+
+// Each bit of the result is set to the corresponding bit of either then_val or
+// else_val depending on whether the corresponding bit of if_mask is set.
+// Equivalent to the VBSL instruction in ARM NEON.
+template <typename tIntegerType>
+tIntegerType SelectUsingMask(tIntegerType if_mask, tIntegerType then_val,
+ tIntegerType else_val) {
+ return BitXor(BitAnd(if_mask, then_val), BitAnd(BitNot(if_mask), else_val));
+}
+
+// For each input scalar, the corresponding bits of the result are set if the
+// input scalar is non-zero.
+template <typename tIntegerType>
+tIntegerType MaskIfNonZero(tIntegerType a) {
+ static const tIntegerType zero = 0;
+ return a ? BitNot(zero) : zero;
+}
+
+// For each input scalar, the corresponding bits of the result are set if the
+// input scalar is zero.
+template <typename tIntegerType>
+tIntegerType MaskIfZero(tIntegerType a) {
+ return MaskIfNonZero<tIntegerType>(!a);
+}
+
+// For each pair of input scalars, the corresponding bits of the result are
+// set if the input scalars are equal.
+template <typename tIntegerType>
+tIntegerType MaskIfEqual(tIntegerType a, tIntegerType b) {
+ return MaskIfNonZero<tIntegerType>(a == b);
+}
+
+// For each pair of input scalars, the corresponding bits of the result are
+// set if the input scalars are not equal.
+template <typename tIntegerType>
+tIntegerType MaskIfNotEqual(tIntegerType a, tIntegerType b) {
+ return MaskIfNonZero<tIntegerType>(a != b);
+}
+
+// For each pair of input scalars, the corresponding bits of the result are
+// set if the input scalars a, b satisfy a > b.
+template <typename tIntegerType>
+tIntegerType MaskIfGreaterThan(tIntegerType a, tIntegerType b) {
+ return MaskIfNonZero<tIntegerType>(a > b);
+}
+
+// For each pair of input scalars, the corresponding bits of the result are
+// set if the input scalars a, b satisfy a >= b.
+template <typename tIntegerType>
+tIntegerType MaskIfGreaterThanOrEqual(tIntegerType a, tIntegerType b) {
+ return MaskIfNonZero<tIntegerType>(a >= b);
+}
+
+// For each pair of input scalars, the corresponding bits of the result are
+// set if the input scalars a, b satisfy a < b.
+template <typename tIntegerType>
+tIntegerType MaskIfLessThan(tIntegerType a, tIntegerType b) {
+ return MaskIfNonZero<tIntegerType>(a < b);
+}
+
+// For each pair of input scalars, the corresponding bits of the result are
+// set if the input scalars a, b satisfy a <= b.
+template <typename tIntegerType>
+tIntegerType MaskIfLessThanOrEqual(tIntegerType a, tIntegerType b) {
+ return MaskIfNonZero<tIntegerType>(a <= b);
+}
+
+// Returns true if all of the input scalars are nonzero.
+// This function may currently assume that each of the input scalars has either
+// all or none of its bits set. Otherwise, its behavior is currently undefined.
+template <typename tIntegerType>
+bool All(tIntegerType a) {
+ return a;
+}
+
+// Returns true if any of the input scalars are nonzero.
+// This function may currently assume that each of the input scalars has either
+// all or none of its bits set. Otherwise, its behavior is currently undefined.
+template <typename tIntegerType>
+bool Any(tIntegerType a) {
+ return a;
+}
+
+// Returns (a+b)/2, rounded to the nearest integer.
+// Equivalent to VRHADD in the ARM NEON instruction set.
+template <typename IntegerType>
+IntegerType RoundingHalfSum(IntegerType a, IntegerType b) {
+ static_assert(std::is_same<IntegerType, void>::value, "unimplemented");
+ return a;
+}
+
+template <>
+inline std::int32_t RoundingHalfSum(std::int32_t a, std::int32_t b) {
+ std::int64_t a64 = a;
+ std::int64_t b64 = b;
+ std::int64_t sum = a64 + b64;
+ std::int64_t sign = sum >= 0 ? 1 : -1;
+ return static_cast<std::int32_t>((sum + sign) / 2);
+}
+
+// Returns the integer that represents the product of two fixed-point
+// numbers, interpreting all integers as fixed-point values in the
+// interval [-1, 1), rounding to the nearest value, and saturating
+// -1 * -1 to the maximum value (since 1 is not in the half-open
+// interval [-1, 1)).
+//
+// [The explanation below specializes to std::int32_t for example purpose.]
+//
+// The mapping between IntegerType and the interval [-1, 1) is unique and
+// implied by IntegerType, which is assumed to be signed. For example,
+// for IntegerType==std::int32_t, the mapping is
+// real_value = integer_value / 2^31.
+// So in this case, and leaving aside rounding and saturating, this
+// function computes ((a / 2^31) * (b / 2^31)) * 2^31, which simplifies to
+// (a * b) / 2^31.
+//
+// The 'doubling' part in the name of this function comes from the fact that
+// this operation is very close to a "multiply-high" operation, keeping only
+// the top half bits, except that that would be effectively computing
+// (a * b) / 2^32,
+// so here we are computing 2x that, since
+// 1/2^31 = 2 * 1/2^32.
+// The idea is to use all of the available 32 bits in the destination int32
+// value.
+//
+// [End of the explanation specializing to int32.]
+//
+// This is equivalent to the VQRDMULH instruction in ARM NEON.
+template <typename IntegerType>
+IntegerType SaturatingRoundingDoublingHighMul(IntegerType a, IntegerType b) {
+ static_assert(std::is_same<IntegerType, void>::value, "unimplemented");
+ return a;
+}
+
+// This function implements the same computation as the ARMv7 NEON VQRDMULH
+// instruction.
+template <>
+inline std::int32_t SaturatingRoundingDoublingHighMul(std::int32_t a,
+ std::int32_t b) {
+ bool overflow = a == b && a == std::numeric_limits<std::int32_t>::min();
+ std::int64_t a_64(a);
+ std::int64_t b_64(b);
+ std::int64_t ab_64 = a_64 * b_64;
+ std::int32_t nudge = ab_64 >= 0 ? (1 << 30) : (1 - (1 << 30));
+ std::int32_t ab_x2_high32 =
+ static_cast<std::int32_t>((ab_64 + nudge) / (1ll << 31));
+ return overflow ? std::numeric_limits<std::int32_t>::max() : ab_x2_high32;
+}
+
+// Correctly-rounded-to-nearest division by a power-of-two.
+// Also known as a rounding arithmetic right shift.
+template <typename IntegerType>
+inline IntegerType RoundingDivideByPOT(IntegerType x, int exponent) {
+ using ScalarIntegerType =
+ typename FixedPointRawTypeTraits<IntegerType>::ScalarRawType;
+ static_assert(std::is_same<ScalarIntegerType, std::int32_t>::value,
+ "Currently only supporting int32 scalar and SIMD types");
+ assert(exponent >= 0);
+ assert(exponent <= 31);
+ const IntegerType mask = Dup<IntegerType>((1ll << exponent) - 1);
+ const IntegerType zero = Dup<IntegerType>(0);
+ const IntegerType one = Dup<IntegerType>(1);
+ const IntegerType remainder = BitAnd(x, mask);
+ const IntegerType threshold =
+ Add(ShiftRight(mask, 1), BitAnd(MaskIfLessThan(x, zero), one));
+ return Add(ShiftRight(x, exponent),
+ BitAnd(MaskIfGreaterThan(remainder, threshold), one));
+}
+
+// Returns the product of a run-time integer value by a compile-time power
+// of two, with either a positive exponent (equivalent to an arithmetic
+// left shift, saturating) or a negative exponent (equivalent to an arithmetic
+// right shift, rounding to nearest).
+template <int Exponent, typename IntegerType,
+ int ExponentSign = (Exponent > 0 ? 1 : Exponent < 0 ? -1 : 0)>
+struct ImplSaturatingRoundingMultiplyByPOT {};
+
+template <int Exponent, typename IntegerType>
+struct ImplSaturatingRoundingMultiplyByPOT<Exponent, IntegerType, 0> {
+ static IntegerType eval(IntegerType x) { return x; }
+};
+
+template <int Exponent, typename IntegerType>
+struct ImplSaturatingRoundingMultiplyByPOT<Exponent, IntegerType, 1> {
+ static IntegerType eval(IntegerType x) {
+ using ScalarIntegerType =
+ typename FixedPointRawTypeTraits<IntegerType>::ScalarRawType;
+ static_assert(std::is_same<ScalarIntegerType, std::int32_t>::value,
+ "Currently only supporting int32 scalar and SIMD types");
+ const IntegerType min =
+ Dup<IntegerType>(std::numeric_limits<std::int32_t>::min());
+ const IntegerType max =
+ Dup<IntegerType>(std::numeric_limits<std::int32_t>::max());
+
+ const std::int32_t threshold = ((1 << (31 - Exponent)) - 1);
+ const IntegerType positive_mask =
+ MaskIfGreaterThan(x, Dup<IntegerType>(threshold));
+ const IntegerType negative_mask =
+ MaskIfLessThan(x, Dup<IntegerType>(-threshold));
+
+ IntegerType result = ShiftLeft(x, Exponent);
+ result = SelectUsingMask(positive_mask, max, result);
+ result = SelectUsingMask(negative_mask, min, result);
+ return result;
+ }
+};
+
+template <int Exponent, typename IntegerType>
+struct ImplSaturatingRoundingMultiplyByPOT<Exponent, IntegerType, -1> {
+ static IntegerType eval(IntegerType x) {
+ return RoundingDivideByPOT<IntegerType>(x, -Exponent);
+ }
+};
+
+template <int Exponent, typename IntegerType>
+IntegerType SaturatingRoundingMultiplyByPOT(IntegerType x) {
+ return ImplSaturatingRoundingMultiplyByPOT<Exponent, IntegerType>::eval(x);
+}
+
+// Part 2: the FixedPoint class.
+
+// A FixedPoint object represents a fixed-point value stored in the underlying
+// integer type tRawType, if tRawType is a plain scalar integer type.
+// Alternatively, tRawType may be a SIMD type (e.g. NEON int32x4_t) in which
+// case a FixedPoint object represents a corresponding SIMD vector of fixed
+// point values.
+//
+// tIntegerBits describes the range of the fixed-point format: if
+// tIntegerBits == m then the range of representable values is the half-open
+// interval [-2^m; 2^m) where the open boundary on the right side means that
+// 2^m is not representable (how close the maximum representable value is to
+// it, depends on bit-depth of tRawType).
+//
+// In "Q format notation",
+// https://en.wikipedia.org/wiki/Q_(number_format)
+// we are describing the format
+// Qm.n
+// where
+// m = tIntegerBits
+// and
+// n = NumberOfBits(tRawType) - (m + 1)
+// Note that the (m + 1) in the above line is because we adopt the convention
+// that we count the integer bits exclusively of the sign bit; so (m + 1) is
+// the total number of integer bits inclusive of the sign bit.
+//
+// Accordingly, the number of integral representable values in our range
+// [-2^m ; 2^m)
+// is equal to 2^(m+1).
+template <typename tRawType, int tIntegerBits>
+class FixedPoint {
+ public:
+ typedef tRawType RawType;
+
+ typedef FixedPointRawTypeTraits<RawType> RawTypeTraits;
+ typedef typename RawTypeTraits::ScalarRawType ScalarRawType;
+
+ static const int kTotalBits = 8 * sizeof(ScalarRawType);
+ static const int kIntegerBits = tIntegerBits;
+ static const int kFractionalBits = kTotalBits - 1 - kIntegerBits;
+ static_assert(kIntegerBits >= 0 && kIntegerBits < kTotalBits,
+ "bad IntegerBits");
+
+ typedef FixedPoint<ScalarRawType, kIntegerBits> ScalarFixedPointType;
+
+ static const ScalarRawType ScalarRawMin() {
+ return std::numeric_limits<ScalarRawType>::min();
+ }
+
+ static const ScalarRawType ScalarRawMax() {
+ return std::numeric_limits<ScalarRawType>::max();
+ }
+
+ static const ScalarRawType RawMin() {
+ return VectorFromScalar(ScalarRawMin());
+ }
+
+ static const ScalarRawType RawMax() {
+ return VectorFromScalar(ScalarRawMax());
+ }
+
+ static FixedPoint FromRaw(RawType x) {
+ FixedPoint retval;
+ retval.raw() = x;
+ return retval;
+ }
+
+ static FixedPoint FromScalarRaw(ScalarRawType x) {
+ FixedPoint retval;
+ retval.raw() = Dup<RawType>(x);
+ return retval;
+ }
+
+ static FixedPoint FromScalarFixedPoint(ScalarFixedPointType x) {
+ return FromScalarRaw(x.raw());
+ }
+
+ template <int Exponent>
+ static FixedPoint ConstantPOT() {
+ static const int kOffset = kFractionalBits + Exponent;
+ static_assert(
+ kOffset < 31,
+ "Constant not exactly representable in this fixed-point format");
+ return FromScalarRaw(ScalarRawType(1) << kOffset);
+ }
+
+ static FixedPoint Zero() { return FromScalarRaw(0); }
+
+ static FixedPoint One() {
+ return FromScalarRaw(kIntegerBits == 0
+ ? ScalarRawMax()
+ : (ScalarRawType(1) << kFractionalBits));
+ }
+
+ static FixedPoint FromDouble(double x) {
+ const double min_bound = static_cast<double>(ScalarRawMin());
+ const double max_bound = static_cast<double>(ScalarRawMax());
+ return FromScalarRaw(static_cast<std::int32_t>(std::min(
+ std::max(round(x * static_cast<double>(1ll << kFractionalBits)),
+ min_bound),
+ max_bound)));
+ }
+
+ RawType raw() const { return i_; }
+ RawType& raw() { return i_; }
+
+ private:
+ RawType i_;
+};
+
+// Part 3: implementation of arithmetic operators for the
+// FixedPoint class, and a few related functions.
+
+// A FixedPoint multiplication is just a
+// SaturatingRoundingDoublingHighMul operation on the underlying
+// raw integer values. The IntegerBits simply add up, as is obvious
+// from the fact that the range is [-2^IntegerBits, 2^IntegerBits).
+template <typename tRawType, int tIntegerBits_a, int tIntegerBits_b>
+FixedPoint<tRawType, tIntegerBits_a + tIntegerBits_b> operator*(
+ FixedPoint<tRawType, tIntegerBits_a> a,
+ FixedPoint<tRawType, tIntegerBits_b> b) {
+ FixedPoint<tRawType, tIntegerBits_a + tIntegerBits_b> c;
+ c.raw() = SaturatingRoundingDoublingHighMul(a.raw(), b.raw());
+ return c;
+}
+
+// Tweaking IntegerBits gives exact multiplication by a power of two.
+template <int tExponent, typename tRawType, int tIntegerBits>
+FixedPoint<tRawType, tExponent + tIntegerBits> ExactMulByPot(
+ FixedPoint<tRawType, tIntegerBits> a) {
+ FixedPoint<tRawType, tExponent + tIntegerBits> c;
+ c.raw() = a.raw();
+ return c;
+}
+
+// If we want to leave IntegerBits fixed, then multiplication
+// by a power of two has to be saturating/rounding, not exact anymore.
+template <int tExponent, typename tRawType, int tIntegerBits>
+FixedPoint<tRawType, tIntegerBits> SaturatingRoundingMultiplyByPOT(
+ FixedPoint<tRawType, tIntegerBits> a) {
+ return FixedPoint<tRawType, tIntegerBits>::FromRaw(
+ SaturatingRoundingMultiplyByPOT<tExponent>(a.raw()));
+}
+
+// Generic arithmetic operators.
+
+#define MAKE_FIXEDPOINT_UNARY_FUNC(FuncName, ImplFuncName) \
+ template <typename tRawType, int tIntegerBits> \
+ FixedPoint<tRawType, tIntegerBits> FuncName( \
+ FixedPoint<tRawType, tIntegerBits> a) { \
+ return FixedPoint<tRawType, tIntegerBits>::FromRaw(ImplFuncName(a.raw())); \
+ }
+
+#define MAKE_FIXEDPOINT_BINARY_FUNC(FuncName, ImplFuncName) \
+ template <typename tRawType, int tIntegerBits> \
+ FixedPoint<tRawType, tIntegerBits> FuncName( \
+ FixedPoint<tRawType, tIntegerBits> a, \
+ FixedPoint<tRawType, tIntegerBits> b) { \
+ return FixedPoint<tRawType, tIntegerBits>::FromRaw( \
+ ImplFuncName(a.raw(), b.raw())); \
+ }
+
+MAKE_FIXEDPOINT_UNARY_FUNC(operator-, Neg)
+MAKE_FIXEDPOINT_UNARY_FUNC(operator~, BitNot)
+MAKE_FIXEDPOINT_BINARY_FUNC(operator+, Add)
+MAKE_FIXEDPOINT_BINARY_FUNC(operator-, Sub)
+MAKE_FIXEDPOINT_BINARY_FUNC(operator&, BitAnd)
+MAKE_FIXEDPOINT_BINARY_FUNC(operator^, BitXor)
+MAKE_FIXEDPOINT_BINARY_FUNC(operator|, BitOr)
+MAKE_FIXEDPOINT_BINARY_FUNC(RoundingHalfSum, RoundingHalfSum)
+
+#undef MAKE_FIXEDPOINT_UNARY_FUNC
+#undef MAKE_FIXEDPOINT_BINARY_FUNC
+
+#define MAKE_FIXEDPOINT_UNARY_FUNC_RETURNING_RAW(FuncName) \
+ template <typename tRawType, int tIntegerBits> \
+ tRawType FuncName(FixedPoint<tRawType, tIntegerBits> a) { \
+ return FuncName(a.raw()); \
+ }
+
+#define MAKE_FIXEDPOINT_BINARY_FUNC_RETURNING_RAW(FuncName) \
+ template <typename tRawType, int tIntegerBits> \
+ tRawType FuncName(FixedPoint<tRawType, tIntegerBits> a, \
+ FixedPoint<tRawType, tIntegerBits> b) { \
+ return FuncName(a.raw(), b.raw()); \
+ }
+
+MAKE_FIXEDPOINT_UNARY_FUNC_RETURNING_RAW(MaskIfZero)
+MAKE_FIXEDPOINT_UNARY_FUNC_RETURNING_RAW(MaskIfNonZero)
+MAKE_FIXEDPOINT_BINARY_FUNC_RETURNING_RAW(MaskIfEqual)
+MAKE_FIXEDPOINT_BINARY_FUNC_RETURNING_RAW(MaskIfNotEqual)
+MAKE_FIXEDPOINT_BINARY_FUNC_RETURNING_RAW(MaskIfGreaterThan)
+MAKE_FIXEDPOINT_BINARY_FUNC_RETURNING_RAW(MaskIfGreaterThanOrEqual)
+MAKE_FIXEDPOINT_BINARY_FUNC_RETURNING_RAW(MaskIfLessThan)
+MAKE_FIXEDPOINT_BINARY_FUNC_RETURNING_RAW(MaskIfLessThanOrEqual)
+
+#undef MAKE_FIXEDPOINT_UNARY_FUNC_RETURNING_RAW
+#undef MAKE_FIXEDPOINT_BINARY_FUNC_RETURNING_RAW
+
+template <typename tRawType, int tIntegerBits>
+FixedPoint<tRawType, tIntegerBits> SelectUsingMask(
+ tRawType if_mask, FixedPoint<tRawType, tIntegerBits> then_val,
+ FixedPoint<tRawType, tIntegerBits> else_val) {
+ return FixedPoint<tRawType, tIntegerBits>::FromRaw(
+ SelectUsingMask(if_mask, then_val.raw(), else_val.raw()));
+}
+
+template <typename tRawType, int tIntegerBits>
+bool operator==(FixedPoint<tRawType, tIntegerBits> a,
+ FixedPoint<tRawType, tIntegerBits> b) {
+ return All(MaskIfEqual(a.raw(), b.raw()));
+}
+
+template <typename tRawType, int tIntegerBits>
+bool operator!=(FixedPoint<tRawType, tIntegerBits> a,
+ FixedPoint<tRawType, tIntegerBits> b) {
+ return !(a == b);
+}
+
+// Conversion to floating-point.
+template <typename tRawType, int tIntegerBits>
+double ToDouble(FixedPoint<tRawType, tIntegerBits> x) {
+ static_assert(FixedPointRawTypeTraits<tRawType>::kLanes == 1,
+ "not applicable to SIMD types");
+ typedef FixedPoint<tRawType, tIntegerBits> F;
+ return x.raw() / static_cast<double>(1ll << F::kFractionalBits);
+}
+
+// Rescale changes the number of IntegerBits and updates the underlying
+// raw integer value accordingly.
+template <int tIntegerBitsDst, typename tRawType, int tIntegerBitsSrc>
+FixedPoint<tRawType, tIntegerBitsDst> Rescale(
+ FixedPoint<tRawType, tIntegerBitsSrc> x) {
+ static const int kExponent = tIntegerBitsSrc - tIntegerBitsDst;
+ FixedPoint<tRawType, tIntegerBitsDst> result;
+ result.raw() = SaturatingRoundingMultiplyByPOT<kExponent>(x.raw());
+ return result;
+}
+
+// CheckedFixedPointConstant allows to specify fixed-point constants
+// initialized as real numbers, in a way that does not compile floating-point
+// arithmetic in production code, yet still checks agreement with the
+// floating-point expressions when asserts are enabled.
+#ifdef GEMMLOWP_ENABLE_FIXEDPOINT_CONSTANTS_CHECKS
+template <typename FixedPointType>
+FixedPointType CheckedFixedPointConstant(
+ typename FixedPointType::ScalarRawType raw_value, double double_value) {
+ typedef typename FixedPointType::RawType RawType;
+ const FixedPointType result = FixedPointType::FromScalarRaw(raw_value);
+ assert(result == FixedPointType::FromDouble(double_value));
+ return result;
+}
+#define GEMMLOWP_CHECKED_FIXEDPOINT_CONSTANT(FixedPointType, ScalarRawValue, \
+ DoubleValue) \
+ (CheckedFixedPointConstant<FixedPointType>(ScalarRawValue, DoubleValue))
+
+#else
+#define GEMMLOWP_CHECKED_FIXEDPOINT_CONSTANT(FixedPointType, ScalarRawValue, \
+ DoubleValue) \
+ (FixedPointType::FromScalarRaw(ScalarRawValue))
+#endif
+
+// Implementation of exponential function.
+
+// Returns exp(x) for x in [-1/4, 0).
+template <typename tRawType>
+FixedPoint<tRawType, 0> exp_on_interval_between_negative_one_quarter_and_0_excl(
+ FixedPoint<tRawType, 0> a) {
+ typedef FixedPoint<tRawType, 0> F;
+ const F constant_term =
+ GEMMLOWP_CHECKED_FIXEDPOINT_CONSTANT(F, 1895147668, std::exp(-1.0 / 8.0));
+ const F constant_1_over_3 =
+ GEMMLOWP_CHECKED_FIXEDPOINT_CONSTANT(F, 715827883, 1.0 / 3.0);
+ // We're evaluating a Taylor expansion around -1/8, so we do the change of
+ // variable: x = a + 1/8.
+ // In fixed-point with 0 integer bits, 1/8 is represented by 1 << 28.
+ F x = a + F::template ConstantPOT<-3>();
+ F x2 = x * x;
+ F x3 = x2 * x;
+ F x4 = x2 * x2;
+ F x4_over_4 = SaturatingRoundingMultiplyByPOT<-2>(x4);
+ F x4_over_24_plus_x3_over_6_plus_x2_over_2 =
+ SaturatingRoundingMultiplyByPOT<-1>(
+ ((x4_over_4 + x3) * constant_1_over_3) + x2);
+ return constant_term +
+ constant_term * (x + x4_over_24_plus_x3_over_6_plus_x2_over_2);
+}
+
+// Returns exp(x) for x < 0.
+template <typename tRawType, int tIntegerBits>
+FixedPoint<tRawType, 0> exp_on_negative_values(
+ FixedPoint<tRawType, tIntegerBits> a) {
+ typedef FixedPoint<tRawType, tIntegerBits> InputF;
+ typedef FixedPoint<tRawType, 0> ResultF;
+ static const int kFractionalBits = InputF::kFractionalBits;
+ static const int kIntegerBits = InputF::kIntegerBits;
+ static const InputF kOneQuarter = InputF::template ConstantPOT<-2>();
+ InputF mask = kOneQuarter - InputF::FromScalarRaw(1);
+ InputF a_mod_quarter_minus_one_quarter = (a & mask) - kOneQuarter;
+ ResultF result = exp_on_interval_between_negative_one_quarter_and_0_excl(
+ Rescale<0>(a_mod_quarter_minus_one_quarter));
+ tRawType remainder = (a_mod_quarter_minus_one_quarter - a).raw();
+
+#define GEMMLOWP_EXP_BARREL_SHIFTER(Exponent, FixedPointMultiplier) \
+ if (kIntegerBits > Exponent) { \
+ const ResultF kMultiplier = GEMMLOWP_CHECKED_FIXEDPOINT_CONSTANT( \
+ ResultF, FixedPointMultiplier, std::exp(-std::pow(2.0, Exponent))); \
+ static constexpr int kShiftAmount = \
+ kIntegerBits > Exponent ? kFractionalBits + Exponent : 0; \
+ result = SelectUsingMask( \
+ MaskIfNonZero(BitAnd(remainder, Dup<tRawType>(1 << kShiftAmount))), \
+ result * kMultiplier, result); \
+ }
+
+ GEMMLOWP_EXP_BARREL_SHIFTER(-2, 1672461947);
+ GEMMLOWP_EXP_BARREL_SHIFTER(-1, 1302514674);
+ GEMMLOWP_EXP_BARREL_SHIFTER(+0, 790015084);
+ GEMMLOWP_EXP_BARREL_SHIFTER(+1, 290630308);
+ GEMMLOWP_EXP_BARREL_SHIFTER(+2, 39332535);
+ GEMMLOWP_EXP_BARREL_SHIFTER(+3, 720401);
+ GEMMLOWP_EXP_BARREL_SHIFTER(+4, 242);
+
+#undef GEMMLOWP_EXP_BARREL_SHIFTER
+
+ if (kIntegerBits > 5) {
+ static const int b = kIntegerBits > 5 ? kFractionalBits + 5 : 0;
+ const InputF clamp =
+ GEMMLOWP_CHECKED_FIXEDPOINT_CONSTANT(InputF, -(1 << b), -32.0);
+ result = SelectUsingMask(MaskIfLessThan(a, clamp), ResultF::Zero(), result);
+ }
+
+ result = SelectUsingMask(MaskIfZero(a), ResultF::One(), result);
+ return result;
+}
+
+// Implementation of tanh: (1 - exp(-2x)) / (1 + exp(-2x)).
+
+// Returns (1 - x) / (1 + x) for x in (0, 1).
+template <typename tRawType>
+FixedPoint<tRawType, 0> one_minus_x_over_one_plus_x_for_x_in_0_1(
+ FixedPoint<tRawType, 0> a) {
+ typedef FixedPoint<tRawType, 0> F0;
+ typedef FixedPoint<tRawType, 2> F2;
+ F0 half_denominator = RoundingHalfSum(a, F0::One());
+ // Newton-Raphson division
+ // https://en.wikipedia.org/wiki/Division_algorithm#Newton.E2.80.93Raphson_division
+ // Refer to that page for the logic behind the 48/17 and 32/17 constants.
+ const F2 constant_48_over_17 =
+ GEMMLOWP_CHECKED_FIXEDPOINT_CONSTANT(F2, 1515870810, 48.0 / 17.0);
+ const F2 constant_neg_32_over_17 =
+ GEMMLOWP_CHECKED_FIXEDPOINT_CONSTANT(F2, -1010580540, -32.0 / 17.0);
+ F2 x = constant_48_over_17 + half_denominator * constant_neg_32_over_17;
+ for (int i = 0; i < 3; i++) {
+ F2 half_denominator_times_x = half_denominator * x;
+ F2 one_minus_half_denominator_times_x =
+ F2::One() - half_denominator_times_x;
+ x = x + Rescale<2>(x * one_minus_half_denominator_times_x);
+ }
+ return Rescale<0>(x - F2::One());
+}
+
+// Returns -tanh(x) for x < 0.
+template <typename tRawType, int tIntegerBits>
+FixedPoint<tRawType, 0> neg_tanh_on_negative_values(
+ FixedPoint<tRawType, tIntegerBits> a) {
+ return one_minus_x_over_one_plus_x_for_x_in_0_1(
+ exp_on_negative_values(ExactMulByPot<1>(a)));
+}
+
+// Returns tanh(x) for any x.
+template <typename tRawType, int tIntegerBits>
+FixedPoint<tRawType, 0> tanh(FixedPoint<tRawType, tIntegerBits> a) {
+ typedef FixedPoint<tRawType, tIntegerBits> InputF;
+ typedef FixedPoint<tRawType, 0> ResultF;
+ tRawType mask_if_negative = MaskIfLessThan(a, InputF::Zero());
+ tRawType mask_if_zero = MaskIfZero(a);
+ InputF n = SelectUsingMask(mask_if_negative, a, -a);
+ ResultF t = neg_tanh_on_negative_values(n);
+ return SelectUsingMask(mask_if_zero, ResultF::Zero(),
+ SelectUsingMask(mask_if_negative, -t, t));
+}
+
+// Implementation of logistic function.
+
+// Returns 1 / (1 + x) for x in (0, 1).
+template <typename tRawType>
+FixedPoint<tRawType, 0> one_over_one_plus_x_for_x_in_0_1(
+ FixedPoint<tRawType, 0> a) {
+ typedef FixedPoint<tRawType, 0> F0;
+ typedef FixedPoint<tRawType, 2> F2;
+ F0 half_denominator = RoundingHalfSum(a, F0::One());
+ // Newton-Raphson division
+ // https://en.wikipedia.org/wiki/Division_algorithm#Newton.E2.80.93Raphson_division
+ // Refer to that page for the logic behind the 48/17 and 32/17 constants.
+ const F2 constant_48_over_17 =
+ GEMMLOWP_CHECKED_FIXEDPOINT_CONSTANT(F2, 1515870810, 48.0 / 17.0);
+ const F2 constant_neg_32_over_17 =
+ GEMMLOWP_CHECKED_FIXEDPOINT_CONSTANT(F2, -1010580540, -32.0 / 17.0);
+ F2 x = constant_48_over_17 + half_denominator * constant_neg_32_over_17;
+ for (int i = 0; i < 3; i++) {
+ F2 half_denominator_times_x = half_denominator * x;
+ F2 one_minus_half_denominator_times_x =
+ F2::One() - half_denominator_times_x;
+ x = x + Rescale<2>(x * one_minus_half_denominator_times_x);
+ }
+ return Rescale<0>(ExactMulByPot<-1>(x));
+}
+
+// Returns logistic(x) = 1 / (1 + exp(-x)) for x > 0.
+template <typename tRawType, int tIntegerBits>
+FixedPoint<tRawType, 0> logistic_on_positive_values(
+ FixedPoint<tRawType, tIntegerBits> a) {
+ return one_over_one_plus_x_for_x_in_0_1(exp_on_negative_values(-a));
+}
+
+// Returns logistic(x) = 1 / (1 + exp(-x)) for any x.
+template <typename tRawType, int tIntegerBits>
+FixedPoint<tRawType, 0> logistic(FixedPoint<tRawType, tIntegerBits> a) {
+ typedef FixedPoint<tRawType, tIntegerBits> InputF;
+ typedef FixedPoint<tRawType, 0> ResultF;
+ tRawType mask_if_positive = MaskIfGreaterThan(a, InputF::Zero());
+ tRawType mask_if_zero = MaskIfZero(a);
+ InputF abs_input = SelectUsingMask(mask_if_positive, a, -a);
+ ResultF result_if_positive = logistic_on_positive_values(abs_input);
+ ResultF result_if_negative = ResultF::One() - result_if_positive;
+ const ResultF one_half =
+ GEMMLOWP_CHECKED_FIXEDPOINT_CONSTANT(ResultF, 1 << 30, 0.5);
+ return SelectUsingMask(mask_if_zero, one_half,
+ SelectUsingMask(mask_if_positive, result_if_positive,
+ result_if_negative));
+}
+
+} // end namespace gemmlowp
+
+#ifdef GEMMLOWP_NEON
+#include "./fixedpoint_neon.h"
+#elif defined(GEMMLOWP_SSE4)
+#include "./fixedpoint_sse.h"
+#endif
+
+#endif // GEMMLOWP_INTERNAL_FIXEDPOINT_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/fixedpoint/fixedpoint_neon.h b/runtimes/nn/depend/external/gemmlowp/fixedpoint/fixedpoint_neon.h
new file mode 100644
index 000000000..8b23de274
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/fixedpoint/fixedpoint_neon.h
@@ -0,0 +1,175 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// fixedpoint_neon.h: optimized NEON specializations of the templates
+// in fixedpoint.h.
+
+#ifndef GEMMLOWP_INTERNAL_FIXEDPOINT_NEON_H_
+#define GEMMLOWP_INTERNAL_FIXEDPOINT_NEON_H_
+
+#include <arm_neon.h>
+
+namespace gemmlowp {
+
+template <>
+struct FixedPointRawTypeTraits<int32x4_t> {
+ typedef std::int32_t ScalarRawType;
+ static const int kLanes = 4;
+};
+
+template <>
+inline int32x4_t BitAnd(int32x4_t a, int32x4_t b) {
+ return vandq_s32(a, b);
+}
+
+template <>
+inline int32x4_t BitOr(int32x4_t a, int32x4_t b) {
+ return vorrq_s32(a, b);
+}
+
+template <>
+inline int32x4_t BitXor(int32x4_t a, int32x4_t b) {
+ return veorq_s32(a, b);
+}
+
+template <>
+inline int32x4_t BitNot(int32x4_t a) {
+ return veorq_s32(a, vdupq_n_s32(-1));
+}
+
+template <>
+inline int32x4_t Add(int32x4_t a, int32x4_t b) {
+ return vaddq_s32(a, b);
+}
+
+template <>
+inline int32x4_t Sub(int32x4_t a, int32x4_t b) {
+ return vsubq_s32(a, b);
+}
+
+template <>
+inline int32x4_t Neg(int32x4_t a) {
+ return vnegq_s32(a);
+}
+
+template <>
+inline int32x4_t ShiftLeft(int32x4_t a, int offset) {
+ return vshlq_s32(a, vdupq_n_s32(offset));
+}
+
+template <>
+inline int32x4_t ShiftRight(int32x4_t a, int offset) {
+ return vshlq_s32(a, vdupq_n_s32(-offset));
+}
+
+template <>
+inline int32x4_t SelectUsingMask(int32x4_t if_mask, int32x4_t then_val,
+ int32x4_t else_val) {
+ return vbslq_s32(vreinterpretq_u32_s32(if_mask), then_val, else_val);
+}
+
+template <>
+inline int32x4_t MaskIfEqual(int32x4_t a, int32x4_t b) {
+ return vreinterpretq_s32_u32(vceqq_s32(a, b));
+}
+
+template <>
+inline int32x4_t MaskIfNotEqual(int32x4_t a, int32x4_t b) {
+ return BitNot(MaskIfEqual(a, b));
+}
+
+template <>
+inline int32x4_t MaskIfZero(int32x4_t a) {
+ return MaskIfEqual(a, vdupq_n_s32(0));
+}
+
+template <>
+inline int32x4_t MaskIfNonZero(int32x4_t a) {
+ return vreinterpretq_s32_u32(vtstq_s32(a, a));
+}
+
+template <>
+inline int32x4_t MaskIfGreaterThan(int32x4_t a, int32x4_t b) {
+ return vreinterpretq_s32_u32(vcgtq_s32(a, b));
+}
+
+template <>
+inline int32x4_t MaskIfGreaterThanOrEqual(int32x4_t a, int32x4_t b) {
+ return vreinterpretq_s32_u32(vcgeq_s32(a, b));
+}
+
+template <>
+inline int32x4_t MaskIfLessThan(int32x4_t a, int32x4_t b) {
+ return vreinterpretq_s32_u32(vcltq_s32(a, b));
+}
+
+template <>
+inline int32x4_t MaskIfLessThanOrEqual(int32x4_t a, int32x4_t b) {
+ return vreinterpretq_s32_u32(vcleq_s32(a, b));
+}
+
+template <>
+inline bool All(int32x4_t a) {
+ a = vandq_s32(a, vextq_s32(a, a, 1));
+ a = vandq_s32(a, vextq_s32(a, a, 2));
+ return vgetq_lane_s32(a, 0);
+}
+
+template <>
+inline bool Any(int32x4_t a) {
+ a = vorrq_s32(a, vextq_s32(a, a, 1));
+ a = vorrq_s32(a, vextq_s32(a, a, 2));
+ return vgetq_lane_s32(a, 0);
+}
+
+template <>
+inline int32x4_t RoundingHalfSum(int32x4_t a, int32x4_t b) {
+ return vrhaddq_s32(a, b);
+}
+
+template <>
+inline int32x4_t SaturatingRoundingDoublingHighMul(int32x4_t a, int32x4_t b) {
+ return vqrdmulhq_s32(a, b);
+}
+
+template <>
+inline int32x4_t RoundingDivideByPOT(int32x4_t x, int exponent) {
+ const int32x4_t shift_vec = vdupq_n_s32(-exponent);
+ const int32x4_t fixup = vshrq_n_s32(vandq_s32(x, shift_vec), 31);
+ const int32x4_t fixed_up_x = vqaddq_s32(x, fixup);
+ return vrshlq_s32(fixed_up_x, shift_vec);
+}
+
+template <int Exponent>
+struct ImplSaturatingRoundingMultiplyByPOT<Exponent, int32x4_t, 1> {
+ static int32x4_t eval(int32x4_t x) { return vqshlq_n_s32(x, Exponent); }
+};
+
+template <int Exponent>
+struct ImplSaturatingRoundingMultiplyByPOT<Exponent, int32x4_t, -1> {
+ static int32x4_t eval(int32x4_t x) {
+ const int32x4_t fixup = vshrq_n_s32(x, 31);
+ const int32x4_t fixed_up_x = vqaddq_s32(x, fixup);
+ return vrshrq_n_s32(fixed_up_x, -Exponent);
+ }
+};
+
+template <>
+inline int32x4_t Dup<int32x4_t>(std::int32_t x) {
+ return vdupq_n_s32(x);
+}
+
+} // end namespace gemmlowp
+
+#endif // GEMMLOWP_INTERNAL_FIXEDPOINT_NEON_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/fixedpoint/fixedpoint_sse.h b/runtimes/nn/depend/external/gemmlowp/fixedpoint/fixedpoint_sse.h
new file mode 100644
index 000000000..3f2654d22
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/fixedpoint/fixedpoint_sse.h
@@ -0,0 +1,218 @@
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// fixedpoint_SSE.h: optimized SSE specializations of the templates
+// in fixedpoint.h.
+
+#ifndef GEMMLOWP_INTERNAL_FIXEDPOINT_SSE_H_
+#define GEMMLOWP_INTERNAL_FIXEDPOINT_SSE_H_
+
+#include <smmintrin.h>
+#include "fixedpoint.h"
+
+namespace gemmlowp {
+
+template <>
+struct FixedPointRawTypeTraits<__m128i> {
+ typedef std::int32_t ScalarRawType;
+ static const int kLanes = 4;
+};
+
+template <>
+inline __m128i BitAnd(__m128i a, __m128i b) {
+ return _mm_and_si128(a, b);
+}
+
+template <>
+inline __m128i BitOr(__m128i a, __m128i b) {
+ return _mm_or_si128(a, b);
+}
+
+template <>
+inline __m128i BitXor(__m128i a, __m128i b) {
+ return _mm_xor_si128(a, b);
+}
+
+template <>
+inline __m128i BitNot(__m128i a) {
+ return _mm_andnot_si128(a, _mm_set1_epi32(-1));
+}
+
+template <>
+inline __m128i Add(__m128i a, __m128i b) {
+ return _mm_add_epi32(a, b);
+}
+
+template <>
+inline __m128i Mul(__m128i a, __m128i b) {
+ return _mm_mullo_epi32(a, b);
+}
+
+template <>
+inline __m128i Sub(__m128i a, __m128i b) {
+ return _mm_sub_epi32(a, b);
+}
+
+template <>
+inline __m128i Neg(__m128i a) {
+ return _mm_sign_epi32(a, _mm_set1_epi32(-1));
+}
+
+template <>
+inline __m128i ShiftLeft(__m128i a, int offset) {
+ return _mm_slli_epi32(a, offset);
+}
+
+template <>
+inline __m128i ShiftRight(__m128i a, int offset) {
+ return _mm_srai_epi32(a, offset);
+}
+
+template <>
+inline __m128i SelectUsingMask(__m128i if_mask, __m128i then_val,
+ __m128i else_val) {
+ return _mm_castps_si128(_mm_blendv_ps(_mm_castsi128_ps(else_val),
+ _mm_castsi128_ps(then_val),
+ _mm_castsi128_ps(if_mask)));
+}
+
+template <>
+inline __m128i MaskIfEqual(__m128i a, __m128i b) {
+ return _mm_cmpeq_epi32(a, b);
+}
+
+template <>
+inline __m128i MaskIfNotEqual(__m128i a, __m128i b) {
+ return BitNot(MaskIfEqual(a, b));
+}
+
+template <>
+inline __m128i MaskIfZero(__m128i a) {
+ return MaskIfEqual(a, _mm_set1_epi32(0));
+}
+
+template <>
+inline __m128i MaskIfNonZero(__m128i a) {
+ return MaskIfNotEqual(a, _mm_set1_epi32(0));
+}
+
+template <>
+inline __m128i MaskIfGreaterThan(__m128i a, __m128i b) {
+ return _mm_cmpgt_epi32(a, b);
+}
+
+template <>
+inline __m128i MaskIfLessThan(__m128i a, __m128i b) {
+ return _mm_cmplt_epi32(a, b);
+}
+
+template <>
+inline __m128i MaskIfGreaterThanOrEqual(__m128i a, __m128i b) {
+ return BitNot(MaskIfLessThan(a, b));
+}
+
+template <>
+inline __m128i MaskIfLessThanOrEqual(__m128i a, __m128i b) {
+ return BitNot(MaskIfGreaterThan(a, b));
+}
+
+/* Assumptions:
+ - All and Any are used on masks.
+ - masks are all_ones for true lanes, all_zeroes otherwise.
+Hence, All means all 128bits set, and Any means any bit set.
+*/
+
+template <>
+inline bool All(__m128i a) {
+ return _mm_testc_si128(a, a);
+}
+
+template <>
+inline bool Any(__m128i a) {
+ return BitNot(_mm_testz_si128(a, a));
+}
+
+template <>
+inline __m128i RoundingHalfSum(__m128i a, __m128i b) {
+ /* __m128i round_bit_mask, a_over_2, b_over_2, round_bit, sum; */
+ /* We divide the inputs before the add to avoid the overflow and costly test
+ */
+ /* of checking if an overflow occured on signed add */
+ /* round_bit_mask = _mm_set1_epi32(1); */
+ /* a_over_2 = _mm_srai_epi32(a, 1); */
+ /* b_over_2 = _mm_srai_epi32(b, 1); */
+ /* sum = Add(a_over_2, b_over_2); */
+ /* round_bit = _mm_sign_epi32(BitAnd(BitOr(a,b), round_bit_mask), sum); */
+ /* return Add(sum, round_bit); */
+
+ /* Other possibility detecting overflow and xor the sign if an overflow
+ * happened*/
+ __m128i one, sign_bit_mask, sum, rounded_half_sum, overflow, result;
+ one = _mm_set1_epi32(1);
+ sign_bit_mask = _mm_set1_epi32(0x80000000);
+ sum = Add(a, b);
+ rounded_half_sum = _mm_srai_epi32(Add(sum, one), 1);
+ overflow =
+ BitAnd(BitAnd(BitXor(a, rounded_half_sum), BitXor(b, rounded_half_sum)),
+ sign_bit_mask);
+ result = BitXor(rounded_half_sum, overflow);
+ return result;
+}
+
+template <>
+inline __m128i SaturatingRoundingDoublingHighMul(__m128i a, __m128i b) {
+ __m128i min, saturation_mask, a0_a2, a1_a3, b0_b2, b1_b3;
+ __m128i a0b0_a2b2, a1b1_a3b3, a0b0_a2b2_rounded, a1b1_a3b3_rounded;
+ __m128i a0b0_a2b2_rounded_2x, a1b1_a3b3_rounded_2x, result;
+ __m128i nudge;
+
+ // saturation only happen if a == b == INT_MIN
+ min = _mm_set1_epi32(std::numeric_limits<std::int32_t>::min());
+ saturation_mask = BitAnd(MaskIfEqual(a, b), MaskIfEqual(a, min));
+
+ // a = a0 | a1 | a2 | a3
+ // b = b0 | b1 | b2 | b3
+ a0_a2 = a;
+ a1_a3 = _mm_srli_si128(a, 4);
+ b0_b2 = b;
+ b1_b3 = _mm_srli_si128(b, 4);
+
+ a0b0_a2b2 = _mm_mul_epi32(a0_a2, b0_b2);
+ a1b1_a3b3 = _mm_mul_epi32(a1_a3, b1_b3);
+
+ // do the rounding and take into account that it will be doubled
+ nudge = _mm_set1_epi64x(1 << 30);
+ a0b0_a2b2_rounded = _mm_add_epi64(a0b0_a2b2, nudge);
+ a1b1_a3b3_rounded = _mm_add_epi64(a1b1_a3b3, nudge);
+
+ // do the doubling
+ a0b0_a2b2_rounded_2x = _mm_slli_epi64(a0b0_a2b2_rounded, 1);
+ a1b1_a3b3_rounded_2x = _mm_slli_epi64(a1b1_a3b3_rounded, 1);
+
+ // get the high part of the products
+ result = _mm_blend_epi16(_mm_srli_si128(a0b0_a2b2_rounded_2x, 4),
+ a1b1_a3b3_rounded_2x, 0xcc);
+
+ // saturate those which overflowed
+ return SelectUsingMask(saturation_mask, min, result);
+}
+
+template <>
+inline __m128i Dup<__m128i>(std::int32_t x) {
+ return _mm_set1_epi32(x);
+}
+
+} // end namespace gemmlowp
+
+#endif // GEMMLOWP_INTERNAL_FIXEDPOINT_SSE_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/allocator.h b/runtimes/nn/depend/external/gemmlowp/internal/allocator.h
new file mode 100644
index 000000000..da325a4c4
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/allocator.h
@@ -0,0 +1,220 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// allocator.h: a buffer allocator that allows avoiding most of the
+// malloc/free overhead, by:
+// 1. Requiring all N allocations to be reserved in advance, and
+// then commited at once, turning N allocations into 1.
+// 2. Being persistent, the allocated storage is reused across commits,
+// and only reallocated as needed when the commit size gets larger.
+//
+// This is driven by Android-specific needs:
+// 1. On Android, the default (Bionic) allocator tends to aggressively
+// unmap pages, which means that malloc/free can be surprisingly expensive.
+// 2. On Android, stack allocations with alloca() can't be as large as on
+// desktop platforms.
+//
+// General usage:
+// 1. Reserve blocks by calling Reserve(), which returns a Handle.
+// 2. Call Commit() once.
+// 3. Now it is possible to get pointers to allocated buffers by calling
+// GetPointer().
+// 4. Call Decommit() once.
+// 5. The allocator is now reverted to its original state, except that
+// it retained its allocated storage, so the next Commit() will be faster.
+// The allocated storage is only freed when the Allocator object is
+// destroyed.
+
+#ifndef GEMMLOWP_INTERNAL_ALLOCATOR_H_
+#define GEMMLOWP_INTERNAL_ALLOCATOR_H_
+
+#include "common.h"
+
+#if defined(__ANDROID__)
+#include <android/api-level.h>
+// The 18 here should be 16, but has to be 18 for now due
+// to a Google-internal issue.
+#if __ANDROID_API__ < 18
+#include <malloc.h>
+#define GEMMLOWP_USE_MEMALIGN
+#endif
+// posix_memalign is missing on some 4.1 x86 devices
+#if __ANDROID_API__ == 18
+#ifdef GEMMLOWP_X86_32
+#include <malloc.h>
+#define GEMMLOWP_USE_MEMALIGN
+#endif
+#endif
+#endif
+
+namespace gemmlowp {
+
+enum class TypeId : std::uint8_t { Uint8, Int8, Uint16, Int16, Uint32, Int32 };
+
+template <typename T>
+struct GetTypeIdImpl {};
+
+template <typename T>
+inline TypeId GetTypeId() {
+ return GetTypeIdImpl<T>::Value;
+}
+
+template <typename T>
+struct GetTypeIdImpl<const T> : GetTypeIdImpl<T> {};
+
+#define GEMMLOWP_REGISTER_TYPEID(type_, id) \
+ template <> \
+ struct GetTypeIdImpl<type_> { \
+ static const TypeId Value = TypeId::id; \
+ };
+
+GEMMLOWP_REGISTER_TYPEID(std::uint8_t, Uint8)
+GEMMLOWP_REGISTER_TYPEID(std::int8_t, Int8)
+GEMMLOWP_REGISTER_TYPEID(std::uint16_t, Uint16)
+GEMMLOWP_REGISTER_TYPEID(std::int16_t, Int16)
+GEMMLOWP_REGISTER_TYPEID(std::uint32_t, Uint32)
+GEMMLOWP_REGISTER_TYPEID(std::int32_t, Int32)
+
+class Allocator {
+ public:
+ Allocator()
+ : committed_(false),
+ storage_size_(0),
+ storage_(nullptr),
+ reserved_blocks_(0),
+ reserved_bytes_(0),
+ generation_(0) {}
+
+ ~Allocator() {
+ assert(!committed_);
+ assert(!reserved_blocks_);
+ DeallocateStorage();
+ }
+
+ // Alignment of allocated blocks.
+ static const std::size_t kAlignment = kDefaultCacheLineSize;
+
+ // This is all we need so far, and since the usage pattern is fixed,
+ // there is no point in allowing more until we need to.
+ static const std::size_t kMaxBlocks = 5;
+
+ void Commit() {
+ assert(!committed_);
+
+ if (reserved_bytes_ > storage_size_) {
+ DeallocateStorage();
+ storage_size_ = RoundUpToPowerOfTwo(reserved_bytes_);
+#ifdef GEMMLOWP_USE_MEMALIGN
+ storage_ = memalign(kAlignment, storage_size_);
+#else
+ if (posix_memalign(&storage_, kAlignment, storage_size_)) {
+ storage_ = nullptr;
+ }
+#endif
+ }
+
+ ReleaseBuildAssertion(!storage_size_ || storage_, "allocation failure");
+ committed_ = true;
+ }
+
+ void Decommit() {
+ assert(committed_);
+ committed_ = false;
+ generation_++;
+
+ reserved_blocks_ = 0;
+ reserved_bytes_ = 0;
+ }
+
+ // See generation_
+ typedef std::size_t generation_t;
+
+ // A handle on a reserved block. The user obtains
+ // one by calling Reserve() and, after committing,
+ // passes it to GetPointer().
+ class Handle {
+ std::uint8_t index_;
+ generation_t generation_;
+ TypeId type_;
+
+ friend class Allocator;
+ };
+
+ // Reserves a block sized for n elements of type T, and
+ // returns a handle to it. Must be called before committing.
+ template <typename T>
+ Handle Reserve(std::size_t n) {
+ assert(!committed_ && "can't reserve blocks while committed");
+ assert(reserved_blocks_ < kMaxBlocks &&
+ "didn't expect to allocate this many blocks");
+ const std::size_t bytes = RoundUp<kAlignment>(n * sizeof(T));
+ const std::size_t offset = reserved_bytes_;
+ const std::size_t index = reserved_blocks_;
+
+ reserved_blocks_offsets_[index] = offset;
+ Handle h;
+ h.index_ = index;
+ h.generation_ = generation_;
+ h.type_ = GetTypeId<T>();
+
+ reserved_blocks_++;
+ reserved_bytes_ += bytes;
+
+ return h;
+ }
+
+ // Returns the pointer to the allocated buffer for the given handle.
+ // Must be called after committing.
+ template <typename T>
+ T* GetPointer(const Handle& h) const {
+ assert(committed_ && "can't get block pointers unless committed");
+ assert(h.index_ < reserved_blocks_ &&
+ "bad handle, points to inexistant block");
+ assert(h.generation_ == generation_ &&
+ "handle from earlier generation, have decommitted since");
+ assert(h.type_ == GetTypeId<T>() && "type mismatch");
+ std::size_t offset = reserved_blocks_offsets_[h.index_];
+ std::uintptr_t addr = reinterpret_cast<std::uintptr_t>(storage_) + offset;
+ return reinterpret_cast<T*>(addr);
+ }
+
+ private:
+ void DeallocateStorage() {
+ assert(!committed_);
+ free(storage_);
+ storage_size_ = 0;
+ }
+
+ // Set to true by Commit() and to false by Decommit(). Initially false.
+ bool committed_;
+
+ // The actually allocated storage size and buffer pointer.
+ std::size_t storage_size_;
+ mutable void* storage_;
+
+ // The number of blocks that have been reserved by Reserve().
+ std::size_t reserved_blocks_;
+ // The number of bytes that have been reserved by Reserve().
+ std::size_t reserved_bytes_;
+ // The offsets of reserved blocks into the storage buffer.
+ std::size_t reserved_blocks_offsets_[kMaxBlocks];
+
+ // The 'generation' is incremented on Decommit() and allows catching
+ // bad GetPointer() calls still referring to a previous commit.
+ generation_t generation_;
+};
+
+} // namespace gemmlowp
+
+#endif // GEMMLOWP_INTERNAL_ALLOCATOR_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/block_params.h b/runtimes/nn/depend/external/gemmlowp/internal/block_params.h
new file mode 100644
index 000000000..b2fc3ff78
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/block_params.h
@@ -0,0 +1,174 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// block_params.h: Logic to choose L1 and L2 block sizes
+// to optimize cache-friendliness.
+
+#ifndef GEMMLOWP_INTERNAL_BLOCK_PARAMS_H_
+#define GEMMLOWP_INTERNAL_BLOCK_PARAMS_H_
+
+#include "common.h"
+
+namespace gemmlowp {
+
+// A BlockParams instance contains a full description of all the block size
+// parameters to be used by a Gemm.
+// There are two nested levels of block subdivisions: first a subdivision
+// into large blocks that should fit in last-level cache (what we call L2 here)
+// and then another subdivision into smaller blocks that should fit in
+// L1 cache. There is then actually a third level of subdivision to fit
+// in registers, but we are not concerned with that here.
+struct BlockParams {
+ // L1 block parameters determine the size of small blocks that should
+ // fit in L1 cache.
+ int l1_rows;
+ int l1_cols;
+ int l1_depth;
+
+ // L2 block parameters determine the size of larger blocks that should
+ // fit in L2 cache.
+ int l2_rows;
+ int l2_cols;
+ int l2_depth;
+
+ template <typename KernelFormat>
+ void Init(int rows, int cols, int depth, int num_threads,
+ int l1_bytes_to_use, int l2_bytes_to_use, float l2_rhs_factor) {
+ FindL2BlockSizes<KernelFormat>(rows, cols, depth, num_threads,
+ l2_bytes_to_use, l2_rhs_factor,
+ &l2_rows, &l2_cols, &l2_depth);
+ FindL1BlockSizes<KernelFormat>(l2_rows, l2_cols, l2_depth,
+ l1_bytes_to_use,
+ &l1_rows, &l1_cols, &l1_depth);
+ }
+
+ template <typename KernelFormat>
+ static void FindL2BlockSizes(int rows, int cols, int depth, int num_threads,
+ int l2_bytes_to_use, float l2_rhs_factor,
+ int* out_l2_rows, int* out_l2_cols,
+ int* out_l2_depth) {
+ int l2_rows = 0;
+ int l2_cols = 0;
+ int l2_depth = 0;
+ // No L2 blocking in the depth dimension at the moment.
+ // Too much loss of accuracy due to storing intermediate results in
+ // low precision.
+ // However, we still want to round l2_depth up to the next multiple
+ // of register size, so as to avoid having to special-case unaligned depths.
+ l2_depth = RoundUp<kRegisterSize>(depth);
+
+ {
+ int max_cache_friendly_l2_cols = std::max(
+ 1, static_cast<int>(l2_rhs_factor * (l2_bytes_to_use / l2_depth)));
+ int min_l2_cols_blocks =
+ std::max(1, CeilQuotient(cols, max_cache_friendly_l2_cols));
+ l2_cols =
+ RoundUp<KernelFormat::kCols>(CeilQuotient(cols, min_l2_cols_blocks));
+ }
+
+ // No L2 blocking in the row dimension if l2_rhs_factor is 1.0 as the row
+ // dimension concerns only the LHS. Blocking only RHS matrix for L2 enhances
+ // the performance on x86.
+ if (l2_rhs_factor == 1.0f) {
+ l2_rows = RoundUp<KernelFormat::kRows>(rows);
+ } else {
+ int max_cache_friendly_l2_rows =
+ std::max(1, (l2_bytes_to_use - l2_depth * l2_cols) /
+ (num_threads * (l2_depth + 4 * l2_cols)));
+ int min_l2_rows_blocks =
+ std::max(1, CeilQuotient(rows, max_cache_friendly_l2_rows));
+ l2_rows =
+ RoundUp<KernelFormat::kRows>(CeilQuotient(rows, min_l2_rows_blocks));
+ }
+
+ *out_l2_rows = l2_rows;
+ *out_l2_cols = l2_cols;
+ *out_l2_depth = l2_depth;
+ }
+
+ template <typename KernelFormat>
+ static void FindL1BlockSizes(int rows, int cols, int depth,
+ int l1_bytes_to_use, int* out_l1_rows,
+ int* out_l1_cols, int* out_l1_depth) {
+ int l1_rows = 0;
+ int l1_cols = 0;
+ int l1_depth = 0;
+
+ // L2 block sizes should already be multiples of kernel block sizes.
+ assert(rows % KernelFormat::kRows == 0);
+ assert(cols % KernelFormat::kCols == 0);
+ assert(depth % KernelFormat::kDepth == 0);
+
+ // No L1 blocking in the columns dimension at the moment.
+ // Thought not to be needed. Similar to Eigen.
+ l1_cols = cols;
+
+ {
+ int max_cache_friendly_l1_depth = std::max(
+ 1, (l1_bytes_to_use - 4 * KernelFormat::kRows * KernelFormat::kCols) /
+ (KernelFormat::kRows + KernelFormat::kCols));
+ int min_l1_depth_blocks =
+ std::max(1, CeilQuotient(depth, max_cache_friendly_l1_depth));
+ l1_depth =
+ RoundUp<kRegisterSize>(CeilQuotient(depth, min_l1_depth_blocks));
+ }
+
+ {
+ int max_cache_friendly_l1_rows =
+ std::max(1, l1_bytes_to_use / (l1_depth + 4 * l1_cols));
+ int min_l1_rows_blocks =
+ std::max(1, CeilQuotient(rows, max_cache_friendly_l1_rows));
+ l1_rows =
+ RoundUp<KernelFormat::kRows>(CeilQuotient(rows, min_l1_rows_blocks));
+ }
+
+ *out_l1_rows = l1_rows;
+ *out_l1_cols = l1_cols;
+ *out_l1_depth = l1_depth;
+ }
+};
+
+// A SideBlockParams instance contains only the block params relevant to
+// one side (LHS or RHS), expressed in terms of 'width' instead of
+// rows/colums. See the explanation in kernel.h: in the LHS, 'width' means
+// the number of rows, while in the RHS, 'width' means the number of columns.
+// That allows us to write generic code that applies to either LHS or RHS.
+struct SideBlockParams {
+ // L1 block parameters determine the size of small blocks that should
+ // fit in L1 cache.
+ int l1_width;
+ int l1_depth;
+
+ // L2 block parameters determine the size of larger blocks that should
+ // fit in L2 cache.
+ int l2_width;
+ int l2_depth;
+};
+
+enum class Side { Lhs, Rhs };
+
+inline void GetSideBlockParams(Side side, SideBlockParams* side_block_params,
+ const BlockParams& block_params) {
+ side_block_params->l1_width =
+ side == Side::Lhs ? block_params.l1_rows : block_params.l1_cols;
+ side_block_params->l2_width =
+ side == Side::Lhs ? block_params.l2_rows : block_params.l2_cols;
+
+ side_block_params->l1_depth = block_params.l1_depth;
+ side_block_params->l2_depth = block_params.l2_depth;
+}
+
+} // namespace gemmlowp
+
+#endif // GEMMLOWP_INTERNAL_BLOCK_PARAMS_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/common.h b/runtimes/nn/depend/external/gemmlowp/internal/common.h
new file mode 100644
index 000000000..511809d28
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/common.h
@@ -0,0 +1,256 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// common.h: contains stuff that's used throughout gemmlowp
+// and should always be available.
+
+#ifndef GEMMLOWP_INTERNAL_COMMON_H_
+#define GEMMLOWP_INTERNAL_COMMON_H_
+
+#include <pthread.h>
+
+#include <algorithm>
+#include <cassert>
+#include <cmath>
+#include <cstdlib>
+
+#include "../profiling/instrumentation.h"
+
+// Our inline assembly path assume GCC/Clang syntax.
+// Native Client doesn't seem to support inline assembly(?).
+#if defined(__GNUC__) && !defined(__native_client__)
+#define GEMMLOWP_ALLOW_INLINE_ASM
+#endif
+
+// Define macro statement that avoids inlining for GCC.
+// For non-GCC, define as empty macro.
+#if defined(__GNUC__)
+#define GEMMLOWP_NOINLINE __attribute__((noinline))
+#else
+#define GEMMLOWP_NOINLINE
+#endif
+
+// Detect ARM, 32-bit or 64-bit
+#ifdef __arm__
+#define GEMMLOWP_ARM_32
+#endif
+
+#ifdef __aarch64__
+#define GEMMLOWP_ARM_64
+#endif
+
+#if defined(GEMMLOWP_ARM_32) || defined(GEMMLOWP_ARM_64)
+#define GEMMLOWP_ARM
+#endif
+
+// Detect x86, 32-bit or 64-bit
+#if defined(__i386__) || defined(_M_IX86) || defined(_X86_) || defined(__i386)
+#define GEMMLOWP_X86_32
+#endif
+
+#if defined(__x86_64__) || defined(_M_X64) || defined(__amd64)
+#define GEMMLOWP_X86_64
+#endif
+
+#if defined(GEMMLOWP_X86_32) || defined(GEMMLOWP_X86_64)
+#define GEMMLOWP_X86
+#endif
+
+// Some of our optimized paths use inline assembly and for
+// now we don't bother enabling some other optimized paths using intrinddics
+// where we can't use inline assembly paths.
+#ifdef GEMMLOWP_ALLOW_INLINE_ASM
+
+// Detect NEON. It's important to check for both tokens.
+#if (defined __ARM_NEON) || (defined __ARM_NEON__)
+#define GEMMLOWP_NEON
+#endif
+
+// Convenience NEON tokens for 32-bit or 64-bit
+#if defined(GEMMLOWP_NEON) && defined(GEMMLOWP_ARM_32)
+#define GEMMLOWP_NEON_32
+#endif
+
+#if defined(GEMMLOWP_NEON) && defined(GEMMLOWP_ARM_64)
+#define GEMMLOWP_NEON_64
+#endif
+
+// Detect SSE.
+#ifdef __SSE4_1__
+#define GEMMLOWP_SSE4
+#endif
+
+#ifdef __SSE3__
+#define GEMMLOWP_SSE3
+#endif
+
+// Convenience SSE4 tokens for 32-bit or 64-bit
+#if defined(GEMMLOWP_SSE4) && defined(GEMMLOWP_X86_32)
+#define GEMMLOWP_SSE4_32
+#endif
+
+#if defined(GEMMLOWP_SSE3) && defined(GEMMLOWP_X86_32)
+#define GEMMLOWP_SSE3_32
+#endif
+
+#if defined(GEMMLOWP_SSE4) && defined(GEMMLOWP_X86_64)
+#define GEMMLOWP_SSE4_64
+#endif
+
+#if defined(GEMMLOWP_SSE3) && defined(GEMMLOWP_X86_64)
+#define GEMMLOWP_SSE3_64
+#endif
+
+#endif // GEMMLOWP_ALLOW_INLINE_ASM
+
+// Detect Android. Don't conflate with ARM - we care about tuning
+// for non-ARM Android devices too. This can be used in conjunction
+// with x86 to tune differently for mobile x86 CPUs (Atom) vs. desktop x86 CPUs.
+#if defined(__ANDROID__)
+#define GEMMLOWP_ANDROID
+#endif
+
+namespace gemmlowp {
+
+// Standard cache line size. Useful to optimize alignment and
+// prefetches. Ideally we would query this at runtime, however
+// 64 byte cache lines are the vast majority, and even if it's
+// wrong on some device, it will be wrong by no more than a 2x factor,
+// which should be acceptable.
+const int kDefaultCacheLineSize = 64;
+
+// Default L1 and L2 data cache sizes.
+// The L1 cache size is assumed to be for each core.
+// The L2 cache size is assumed to be shared among all cores. What
+// we call 'L2' here is effectively top-level cache.
+//
+// On x86, we should ideally query this at
+// runtime. On ARM, the instruction to query this is privileged and
+// Android kernels do not expose it to userspace. Fortunately, the majority
+// of ARM devices have roughly comparable values:
+// Nexus 5: L1 16k, L2 1M
+// Android One: L1 32k, L2 512k
+// The following values are equal to or somewhat lower than that, and were
+// found to perform well on both the Nexus 5 and Android One.
+// Of course, these values are in principle too low for typical x86 CPUs
+// where we should set the L2 value to (L3 cache size / number of cores) at
+// least.
+//
+#if defined(GEMMLOWP_ARM) && defined(__APPLE__)
+// iPhone/iPad
+const int kDefaultL1CacheSize = 48 * 1024;
+const int kDefaultL2CacheSize = 2 * 1024 * 1024;
+#elif defined(GEMMLOWP_ARM) || defined(GEMMLOWP_ANDROID)
+// Other ARM or ARM-like hardware (Android implies ARM-like) so here it's OK
+// to tune for ARM, although on x86 Atom we might be able to query
+// cache sizes at runtime, which would be better.
+const int kDefaultL1CacheSize = 16 * 1024;
+const int kDefaultL2CacheSize = 384 * 1024;
+#elif defined(GEMMLOWP_X86_64)
+// x86-64 and not Android. Therefore, likely desktop-class x86 hardware.
+// Thus we assume larger cache sizes, though we really should query
+// them at runtime.
+const int kDefaultL1CacheSize = 32 * 1024;
+const int kDefaultL2CacheSize = 4 * 1024 * 1024;
+#elif defined(GEMMLOWP_X86_32)
+// x86-32 and not Android. Same as x86-64 but less bullish.
+const int kDefaultL1CacheSize = 32 * 1024;
+const int kDefaultL2CacheSize = 2 * 1024 * 1024;
+#else
+// Less common hardware. Maybe some unusual or older or embedded thing.
+// Assume smaller caches, but don't depart too far from what we do
+// on ARM/Android to avoid accidentally exposing unexpected behavior.
+const int kDefaultL1CacheSize = 16 * 1024;
+const int kDefaultL2CacheSize = 256 * 1024;
+#endif
+
+// The proportion of the cache that we intend to use for storing
+// RHS blocks. This should be between 0 and 1, and typically closer to 1,
+// as we typically want to use most of the L2 cache for storing a large
+// RHS block.
+#if defined(GEMMLOWP_X86)
+// For IA, use the entire L2 cache for the RHS matrix. LHS matrix is not blocked
+// for L2 cache.
+const float kDefaultL2RhsFactor = 1.00f;
+#else
+const float kDefaultL2RhsFactor = 0.75f;
+#endif
+
+// The number of bytes in a SIMD register. This is used to determine
+// the dimensions of PackingRegisterBlock so that such blocks can
+// be efficiently loaded into registers, so that packing code can
+// work within registers as much as possible.
+// In the non-SIMD generic fallback code, this is just a generic array
+// size, so any size would work there. Different platforms may set this
+// to different values but must ensure that their own optimized packing paths
+// are consistent with this value.
+const int kRegisterSize = 16;
+
+// Hints the CPU to prefetch the cache line containing ptr.
+inline void Prefetch(const void* ptr) {
+#if defined GEMMLOWP_ARM_64 && defined GEMMLOWP_ALLOW_INLINE_ASM
+ // Aarch64 has very detailed prefetch instructions, that compilers
+ // can't know how to map __builtin_prefetch to, and as a result, don't,
+ // leaving __builtin_prefetch a no-op on this architecture.
+ // For our purposes, "pldl1keep" is usually what we want, meaning:
+ // "prefetch for load, into L1 cache, using each value multiple times".
+ asm volatile("prfm pldl1keep, [%[ptr]]\n" ::[ptr] "r"(ptr) : );
+#elif defined \
+ __GNUC__ // Clang and GCC define __GNUC__ and have __builtin_prefetch.
+ __builtin_prefetch(ptr);
+#else
+ (void)ptr;
+#endif
+}
+
+// Returns the runtime argument rounded down to the nearest multiple of
+// the fixed Modulus.
+template <unsigned Modulus, typename Integer>
+Integer RoundDown(Integer i) {
+ return i - (i % Modulus);
+}
+
+// Returns the runtime argument rounded up to the nearest multiple of
+// the fixed Modulus.
+template <unsigned Modulus, typename Integer>
+Integer RoundUp(Integer i) {
+ return RoundDown<Modulus>(i + Modulus - 1);
+}
+
+// Returns the quotient a / b rounded up ('ceil') to the nearest integer.
+template <typename Integer>
+Integer CeilQuotient(Integer a, Integer b) {
+ return (a + b - 1) / b;
+}
+
+// Returns the argument rounded up to the nearest power of two.
+template <typename Integer>
+Integer RoundUpToPowerOfTwo(Integer n) {
+ Integer i = n - 1;
+ i |= i >> 1;
+ i |= i >> 2;
+ i |= i >> 4;
+ i |= i >> 8;
+ i |= i >> 16;
+ return i + 1;
+}
+
+template <int N>
+struct IsPowerOfTwo {
+ static const bool value = !(N & (N - 1));
+};
+
+} // namespace gemmlowp
+
+#endif // GEMMLOWP_INTERNAL_COMMON_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/compute.h b/runtimes/nn/depend/external/gemmlowp/internal/compute.h
new file mode 100644
index 000000000..bbc9e2a0e
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/compute.h
@@ -0,0 +1,104 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// compute.h: the central stage of the Gemm computation, operates
+// on already-packed LHS and RHS blocks and calls the Gemm kernel
+// to compute a block of the product.
+
+#ifndef GEMMLOWP_INTERNAL_COMPUTE_H_
+#define GEMMLOWP_INTERNAL_COMPUTE_H_
+
+#include "block_params.h"
+#include "kernel.h"
+#include "pack.h"
+
+namespace gemmlowp {
+
+template <typename PackedLhs, typename PackedRhs, typename PackedResult>
+class ComputeImpl {
+ typedef typename PackedLhs::KernelSideFormat KernelLhsFormat;
+ typedef typename PackedRhs::KernelSideFormat KernelRhsFormat;
+ typedef KernelFormat<KernelLhsFormat, KernelRhsFormat> Format;
+
+ const KernelBase& kernel_;
+ const BlockParams& block_params_;
+
+ PackedResult* const packed_result_;
+ const PackedLhs& packed_lhs_;
+ const PackedRhs& packed_rhs_;
+
+ public:
+ ComputeImpl(const KernelBase& _kernel, const BlockParams& _block_params,
+ PackedResult* _packed_result, const PackedLhs& _packed_lhs,
+ const PackedRhs& _packed_rhs)
+ : kernel_(_kernel),
+ block_params_(_block_params),
+ packed_result_(_packed_result),
+ packed_lhs_(_packed_lhs),
+ packed_rhs_(_packed_rhs) {}
+
+ void Compute(int depth) {
+ depth = RoundUp<Format::kDepth>(depth);
+ assert(depth <= block_params_.l2_depth);
+ for (int d = 0; d < depth; d += block_params_.l1_depth) {
+ int ds = std::min(block_params_.l1_depth, depth - d);
+
+ for (int r = 0; r < block_params_.l2_rows; r += block_params_.l1_rows) {
+ int rs = std::min(block_params_.l1_rows, block_params_.l2_rows - r);
+
+ ComputeL1(r, rs, 0, block_params_.l2_cols, d, ds);
+ }
+ }
+ }
+
+ private:
+ void ComputeRun(int start_row, int start_col, int start_depth,
+ int depth) GEMMLOWP_NOINLINE {
+ packed_lhs_.seek_run(start_row, start_depth);
+ packed_rhs_.seek_run(start_col, start_depth);
+ auto packed_result_block = packed_result_->Map().block(
+ start_row, start_col, Format::kRows, Format::kCols);
+ kernel_.Run(packed_result_block.data(), packed_result_block.rows_stride(),
+ packed_result_block.cols_stride(), packed_lhs_.current_data(),
+ packed_rhs_.current_data(), start_depth, depth);
+ }
+
+ void ComputeL1(int start_row, int rows, int start_col, int cols,
+ int start_depth, int depth) {
+ assert(rows % Format::kRows == 0);
+ assert(cols % Format::kCols == 0);
+ assert(depth % Format::kDepth == 0);
+
+ for (int c = 0; c < cols; c += Format::kCols) {
+ for (int r = 0; r < rows; r += Format::kRows) {
+ ComputeRun(start_row + r, start_col + c, start_depth, depth);
+ }
+ }
+ }
+};
+
+template <typename PackedLhs, typename PackedRhs, typename PackedResult>
+void Compute(const KernelBase& kernel, const BlockParams& block_params,
+ PackedResult* packed_result, const PackedLhs& packed_lhs,
+ const PackedRhs& packed_rhs, int depth) {
+ ScopedProfilingLabel label("compute");
+ ComputeImpl<PackedLhs, PackedRhs, PackedResult> impl(
+ kernel, block_params, packed_result, packed_lhs, packed_rhs);
+
+ impl.Compute(depth);
+}
+
+} // namespace gemmlowp
+
+#endif // GEMMLOWP_INTERNAL_COMPUTE_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/dispatch_gemm_shape.h b/runtimes/nn/depend/external/gemmlowp/internal/dispatch_gemm_shape.h
new file mode 100644
index 000000000..0be0bf360
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/dispatch_gemm_shape.h
@@ -0,0 +1,189 @@
+// Copyright 2017 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// dispatch_gemm_shape.h: dispatch GEMM calls according to their shape
+
+#ifndef GEMMLOWP_INTERNAL_DISPATCH_GEMM_SHAPE_H_
+#define GEMMLOWP_INTERNAL_DISPATCH_GEMM_SHAPE_H_
+
+#include "../internal/kernel_default.h"
+#include "../public/map.h"
+#include "../public/output_stages.h"
+#include "multi_thread_gemm.h"
+
+namespace gemmlowp {
+
+template <typename T>
+struct TransposeImpl {
+ typedef T DstType;
+ static T Run(const T& t) { return t; }
+};
+
+template <typename T>
+using TransposeType = typename TransposeImpl<T>::DstType;
+
+template <typename T>
+TransposeType<T> Transpose(const T& t) {
+ return TransposeImpl<T>::Run(t);
+}
+
+template <MapOrder Order>
+struct TransposeMapOrder {
+ static constexpr MapOrder Value =
+ Order == MapOrder::RowMajor ? MapOrder::ColMajor : MapOrder::RowMajor;
+};
+
+template <VectorShape Shape>
+struct TransposeVectorShape {
+ static constexpr VectorShape Value =
+ Shape == VectorShape::Row ? VectorShape::Col : VectorShape::Row;
+};
+
+template <typename Scalar, VectorShape Shape>
+struct TransposeImpl<VectorMap<Scalar, Shape>> {
+ typedef VectorMap<Scalar, Shape> SrcType;
+ static constexpr VectorShape TransposedShape =
+ TransposeVectorShape<Shape>::Value;
+ typedef VectorMap<Scalar, TransposedShape> DstType;
+ static DstType Run(const SrcType& src) {
+ return DstType(src.data(), src.size());
+ }
+};
+
+template <typename Scalar, MapOrder Order>
+struct TransposeImpl<MatrixMap<Scalar, Order>> {
+ typedef MatrixMap<Scalar, Order> SrcType;
+ static constexpr MapOrder TransposedOrder = TransposeMapOrder<Order>::Value;
+ typedef MatrixMap<Scalar, TransposedOrder> DstType;
+ static DstType Run(const SrcType& src) {
+ return DstType(src.data(), src.cols(), src.rows(), src.stride());
+ }
+};
+
+template <VectorShape Shape>
+struct TransposeImpl<OutputStageQuantizeDownInt32ToUint8ScalePC<Shape>> {
+ typedef OutputStageQuantizeDownInt32ToUint8ScalePC<Shape> SrcType;
+ static const VectorShape TransposedShape = TransposeVectorShape<Shape>::Value;
+ typedef OutputStageQuantizeDownInt32ToUint8ScalePC<TransposedShape> DstType;
+ static DstType Run(const SrcType& src) {
+ DstType dst;
+ dst.result_shift = src.result_shift;
+ dst.result_offset = Transpose(src.result_offset);
+ dst.result_mult_int = Transpose(src.result_mult_int);
+ return dst;
+ }
+};
+
+template <typename VectorMapType>
+struct TransposeImpl<OutputStageBiasAddition<VectorMapType>> {
+ typedef OutputStageBiasAddition<VectorMapType> SrcType;
+ typedef TransposeType<VectorMapType> TransposedVectorMapType;
+ typedef OutputStageBiasAddition<TransposedVectorMapType> DstType;
+ static DstType Run(const SrcType& src) {
+ DstType dst;
+ dst.bias_vector = Transpose(src.bias_vector);
+ return dst;
+ }
+};
+
+// TODO(benoitjacob) - does anyone understand C++ variadic templates?
+// How to use them to implement TransposeTuple? Note: there are lots
+// of answers on StackOverflow but they seem to all involve either
+// C++14/C++17 (we can only use C++11) or lots of abstract nonsense.
+inline std::tuple<> TransposeTuple(const std::tuple<>& t) { return t; }
+
+template <typename T0>
+std::tuple<TransposeType<T0>> TransposeTuple(const std::tuple<T0>& t) {
+ return std::make_tuple(Transpose(std::get<0>(t)));
+}
+
+template <typename T0, typename T1>
+std::tuple<TransposeType<T0>, TransposeType<T1>> TransposeTuple(
+ const std::tuple<T0, T1>& t) {
+ return std::make_tuple(Transpose(std::get<0>(t)), Transpose(std::get<1>(t)));
+}
+
+template <typename T0, typename T1, typename T2>
+std::tuple<TransposeType<T0>, TransposeType<T1>, TransposeType<T2>>
+TransposeTuple(const std::tuple<T0, T1, T2>& t) {
+ return std::make_tuple(Transpose(std::get<0>(t)), Transpose(std::get<1>(t)),
+ Transpose(std::get<2>(t)));
+}
+
+template <typename T0, typename T1, typename T2, typename T3>
+std::tuple<TransposeType<T0>, TransposeType<T1>, TransposeType<T2>,
+ TransposeType<T3>>
+TransposeTuple(const std::tuple<T0, T1, T2, T3>& t) {
+ return std::make_tuple(Transpose(std::get<0>(t)), Transpose(std::get<1>(t)),
+ Transpose(std::get<2>(t)), Transpose(std::get<3>(t)));
+}
+
+template <typename T0, typename T1, typename T2, typename T3, typename T4>
+std::tuple<TransposeType<T0>, TransposeType<T1>, TransposeType<T2>,
+ TransposeType<T3>, TransposeType<T4>>
+TransposeTuple(const std::tuple<T0, T1, T2, T3, T4>& t) {
+ return std::make_tuple(Transpose(std::get<0>(t)), Transpose(std::get<1>(t)),
+ Transpose(std::get<2>(t)), Transpose(std::get<3>(t)),
+ Transpose(std::get<4>(t)));
+}
+
+template <typename T0, typename T1, typename T2, typename T3, typename T4,
+ typename T5>
+std::tuple<TransposeType<T0>, TransposeType<T1>, TransposeType<T2>,
+ TransposeType<T3>, TransposeType<T4>, TransposeType<T5>>
+TransposeTuple(const std::tuple<T0, T1, T2, T3, T4, T5>& t) {
+ return std::make_tuple(Transpose(std::get<0>(t)), Transpose(std::get<1>(t)),
+ Transpose(std::get<2>(t)), Transpose(std::get<3>(t)),
+ Transpose(std::get<4>(t)), Transpose(std::get<5>(t)));
+}
+
+template <typename InputScalar, typename OutputScalar, typename BitDepthParams,
+ MapOrder LhsOrder, MapOrder RhsOrder, MapOrder ResultOrder,
+ typename LhsOffset, typename RhsOffset, typename OutputPipelineType,
+ typename GemmContextType>
+void DispatchGemmShape(GemmContextType* context,
+ const MatrixMap<const InputScalar, LhsOrder>& lhs,
+ const MatrixMap<const InputScalar, RhsOrder>& rhs,
+ MatrixMap<OutputScalar, ResultOrder>* result,
+ const LhsOffset& lhs_offset, const RhsOffset& rhs_offset,
+ const OutputPipelineType& output_pipeline) {
+ assert(lhs.cols() == rhs.rows());
+
+ int rows = result->rows();
+ int cols = result->cols();
+ int depth = lhs.cols();
+
+ if (rows == 0 || cols == 0 || depth == 0) {
+ // Vacuous GEMM, return early to avoid having to deal with
+ // zero sizes below.
+ return;
+ }
+
+ if (rows < cols) {
+ auto transposed_result_map = Transpose(*result);
+ return DispatchGemmShape<InputScalar, OutputScalar, BitDepthParams>(
+ context, Transpose(rhs), Transpose(lhs), &transposed_result_map,
+ Transpose(rhs_offset), Transpose(lhs_offset),
+ TransposeTuple(output_pipeline));
+ }
+
+ typedef DefaultKernel<BitDepthParams> Kernel;
+ MultiThreadGemm<typename Kernel::Format, InputScalar, OutputScalar,
+ BitDepthParams>(context, Kernel(), lhs, rhs, result,
+ lhs_offset, rhs_offset, output_pipeline);
+}
+
+} // end namespace gemmlowp
+
+#endif // GEMMLOWP_INTERNAL_DISPATCH_GEMM_SHAPE_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/kernel.h b/runtimes/nn/depend/external/gemmlowp/internal/kernel.h
new file mode 100644
index 000000000..4d006af92
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/kernel.h
@@ -0,0 +1,234 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// kernel.h: general definitions for kernels.
+
+#ifndef GEMMLOWP_INTERNAL_KERNEL_H_
+#define GEMMLOWP_INTERNAL_KERNEL_H_
+
+#include "../public/bit_depth.h"
+#include "common.h"
+
+namespace gemmlowp {
+
+// Explanation of general gemmlowp terminology
+// ===========================================
+//
+// We use the following abbreviations:
+// LHS = "left-hand side"
+// RHS = "right-hand side"
+// Sometimes when referring to either LHS or RHS, we just say a "Side".
+//
+// In a matrix product of a MxK matrix times a KxN matrix,
+// we call K the 'depth'. Note that M is the number of rows
+// of the result (and of the LHS), and N is the number of columns
+// of the result (and of the RHS).
+//
+// In each of the LHS and RHS matrices, we call 'width' the
+// other dimension, besides the depth. So in the LHS, 'width'
+// is the number of rows, while in the RHS, 'width' is the number
+// of columns.
+//
+// So in the LHS MxK matrix, the depth is K and the width in M.
+// And in the RHS KxN matrix, the depth is K and the width in N.
+//
+// This is illustrated in this picture:
+//
+// RHS width
+// <----------------->
+// +-----------------+ ^
+// | RHS | | Depth
+// +-----------------+ v
+// ^ +--+ +-----------------+
+// | |L | | |
+// LHS width | |H | | Result |
+// | |S | | |
+// v +--+ +-----------------+
+// <-->
+// Depth
+
+// Explanation of gemmlowp kernel formats and "cells"
+// ==================================================
+//
+// Kernels operate on small LHS and RHS blocks that fit in registers.
+// These blocks are stored contiguously in memory, but not always
+// in a traditional column-major or row-major order; instead,
+// they consist of a number of sub-blocks, which we call "cells",
+// that are stored in column-major or row-major order. However,
+// what really matters to us is not so much rows vs columns, but
+// rather width vs depth. So we refer to "width-major" and "depth-major"
+// storage orders. In the LHS, width-major means row-major,
+// while in the RHS, width-major means column-major.
+// There is also a third possibility, "diagonal order",
+// which is unused at the moment.
+//
+// We aim to treat both sides, LHS and RHS, on an equal footing,
+// so we call them both 'sides'. A KernelFormat thus is just a pair
+// of KernelSideFormat's, one for LHS and one for RHS; each KernelSideFormat
+// contains a CellFormat and a number of cells; cells are only ever
+// stacked in the width dimension, which means stacked vertically in the
+// LHS and stacked horizondally in the RHS.
+//
+// Example
+// =======
+//
+// Let's work out the data layout expected by a kernel having the
+// following format (the struct names here are defined below in this file):
+//
+// KernelFormat<
+// KernelSideFormat<CellFormat<3, 4>, 3>,
+// KernelSideFormat<CellFormat<5, 4>, 2>
+// >
+//
+// The LHS format, KernelSideFormat<CellFormat<3, 4>, 3>, means:
+// 3 cells, each cell having dimensions (width=3, depth=4), laid out in
+// DepthMajor order (the default value, see CellFormat). In the LHS,
+// DepthMajor means column-major, so the LHS cells are of size 3x4 in
+// column-major order, so the LHS layout is:
+//
+// 0 3 6 9
+// 1 4 7 10
+// 2 5 8 11
+// 12 15 18 21
+// 13 16 19 22
+// 14 17 20 23
+// 24 27 30 33
+// 25 28 31 34
+// 26 29 32 35
+//
+// The RHS format, KernelSideFormat<CellFormat<5, 4>, 2>, means:
+// 2 cells each having dimensions (width=5, depth=4), laid out in
+// DepthMajor order (the default value, see CellFormat). In the RHS,
+// DepthMajor means row-major, so the RHS cells are of size 4x5 in
+// row-major order, so the RHS layout is:
+//
+// 0 1 2 3 4 20 21 22 23 24
+// 5 6 7 8 9 25 26 27 28 29
+// 10 11 12 13 14 30 31 32 33 34
+// 15 16 17 18 19 35 36 37 38 39
+
+// CellOrder enumerates the possible storage orders (=layouts) for
+// a cell (see explanation above).
+enum class CellOrder { DepthMajor, WidthMajor, Diagonal };
+
+// CellFormat describes how data is laid
+// out in a cell. That is, a CellOrder together with actual dimensions.
+template <int tWidth, int tDepth, CellOrder tOrder = CellOrder::DepthMajor>
+struct CellFormat {
+ static const int kWidth = tWidth;
+ static const int kDepth = tDepth;
+ static const CellOrder kOrder = tOrder;
+
+ static const int kSize = kWidth * kDepth;
+};
+
+// KernelSideFormat describes how data is laid out in a kernel side
+// (i.e. LHS or RHS). That is, a CellFormat together with a number of
+// cells. These cells are always stacked in the Width dimension.
+// For example, in the LHS case, the Width dimension is the rows dimension,
+// se we're saying that in the LHS, cells are stacked vertically.
+// We never stack cells in the Depth dimension.
+template <typename tCellFormat, int tCells>
+struct KernelSideFormat {
+ typedef tCellFormat Cell;
+ static const int kCells = tCells;
+ static const int kWidth = kCells * Cell::kWidth;
+ static const int kDepth = Cell::kDepth;
+ typedef std::uint8_t Scalar;
+};
+
+template <typename tCellFormat, int tCells>
+struct KernelSideFormatInt8 : KernelSideFormat<tCellFormat, tCells> {
+ typedef std::int8_t Scalar;
+};
+
+// KernelFormat describes fully the input data layout that a kernel expects.
+// It consists of two KernelSideFormat's, one for LHS and one for RHS.
+template <typename tLhs, typename tRhs>
+struct KernelFormat {
+ typedef tLhs Lhs;
+ typedef tRhs Rhs;
+
+ static_assert(Lhs::Cell::kDepth == Rhs::Cell::kDepth, "");
+ static const int kDepth = Lhs::Cell::kDepth;
+ static const int kRows = Lhs::Cell::kWidth * Lhs::kCells;
+ static const int kCols = Rhs::Cell::kWidth * Rhs::kCells;
+};
+
+inline const char* CellOrderName(CellOrder o) {
+ switch (o) {
+ case CellOrder::DepthMajor:
+ return "DepthMajor";
+ case CellOrder::WidthMajor:
+ return "WidthMajor";
+ case CellOrder::Diagonal:
+ return "Diagonal";
+ default:
+ assert(false);
+ return nullptr;
+ }
+}
+
+// Returns the offset into a cell, at which a given coefficient is stored.
+template <typename CellFormat>
+inline int OffsetIntoCell(int w, int d) {
+ switch (CellFormat::kOrder) {
+ case CellOrder::DepthMajor:
+ return w + d * CellFormat::kWidth;
+ case CellOrder::WidthMajor:
+ return d + w * CellFormat::kDepth;
+ case CellOrder::Diagonal:
+ assert(CellFormat::kWidth == CellFormat::kDepth);
+ static const int size = CellFormat::kWidth;
+ return ((size + w - d) * size + d) % (size * size);
+ default:
+ assert(false);
+ return 0;
+ }
+}
+
+// KernelBase is the virtual base class below all kernels.
+// The idea is that we don't need to templatize all our code on the exact
+// kernel type; we only need to templatize on kernel format. Kernels
+// sharing the same format can thus share the same packing/unpacking code.
+struct KernelBase {
+ virtual const char* Name() const = 0;
+
+ // This is the kernel implementation. We use the word 'run' consistently
+ // throughout gemmlowp to mean an inner loop, the implementation of which
+ // is to be provided by a separate optimized function.
+ virtual void Run(std::int32_t* dst_ptr, std::size_t dst_row_stride,
+ std::size_t dst_col_stride, const std::uint8_t* lhs_ptr,
+ const std::uint8_t* rhs_ptr, std::size_t start_depth,
+ std::size_t run_depth) const = 0;
+
+ virtual ~KernelBase() {}
+};
+
+template <typename KernelScalarType>
+struct ZeroPointInputValue {};
+
+template <>
+struct ZeroPointInputValue<std::uint8_t> {
+ static constexpr std::uint8_t kValue = 0;
+};
+
+template <>
+struct ZeroPointInputValue<std::int8_t> {
+ static constexpr std::uint8_t kValue = 128;
+};
+
+} // namespace gemmlowp
+
+#endif // GEMMLOWP_INTERNAL_KERNEL_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/kernel_default.h b/runtimes/nn/depend/external/gemmlowp/internal/kernel_default.h
new file mode 100644
index 000000000..7ed55b83d
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/kernel_default.h
@@ -0,0 +1,109 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// kernel_default.h: Chooses default GEMM and GEMV kernels for the
+// host platform.
+
+#ifndef GEMMLOWP_INTERNAL_KERNEL_DEFAULT_H_
+#define GEMMLOWP_INTERNAL_KERNEL_DEFAULT_H_
+
+#ifndef GEMMLOWP_ALLOW_SLOW_SCALAR_FALLBACK
+#define GEMMLOWP_ALLOW_SLOW_SCALAR_FALLBACK
+#endif
+
+#include "../public/bit_depth.h"
+#include "common.h"
+#include "kernel_reference.h"
+
+namespace gemmlowp {
+
+template <bool MaxProductIsLessThan4096,
+ bool LhsAlwaysNonzero>
+struct DefaultKernelImpl {};
+
+// Partial specialization implementing the logic that if we want to use
+// a kernel for LhsAlwaysNonzero but do not have such a kernel, then we fall
+// back to a generic kernel not taking advantage of LhsAlwaysNonzero.
+template <bool LhsAlwaysNonzero>
+struct DefaultKernelImpl<true, LhsAlwaysNonzero>
+ : DefaultKernelImpl<false, LhsAlwaysNonzero> {};
+
+// Partial specialization implementing the logic that if we want to use
+// a kernel for MaxProductIsLessThan4096 but do not have such a kernel, then we
+// fall back to a generic kernel not taking advantage of
+// MaxProductIsLessThan4096.
+template <bool MaxProductIsLessThan4096>
+struct DefaultKernelImpl<MaxProductIsLessThan4096, true>
+ : DefaultKernelImpl<MaxProductIsLessThan4096, false> {};
+
+template <typename BitDepthParams>
+struct DefaultKernel
+ : DefaultKernelImpl<(BitDepthParams::LhsRange::kMaxValue *
+ BitDepthParams::RhsRange::kMaxValue <
+ 4096),
+ (BitDepthParams::LhsRange::kMinValue > 0)> {};
+
+} // end namespace gemmlowp
+
+#define GEMMLOWP_SET_DEFAULT_KERNEL(MaxProductIsLessThan4096, \
+ LhsAlwaysNonzero, Kernel) \
+ namespace gemmlowp { \
+ template <> \
+ struct DefaultKernelImpl<MaxProductIsLessThan4096, \
+ LhsAlwaysNonzero> : Kernel {}; \
+ }
+
+#if defined GEMMLOWP_NEON_32
+#include "kernel_neon.h"
+GEMMLOWP_SET_DEFAULT_KERNEL(false, false, NEON_32_Kernel12x4Depth2)
+GEMMLOWP_SET_DEFAULT_KERNEL(true, false,
+ NEON_32_Kernel12x4Depth2Assuming12BitProducts)
+GEMMLOWP_SET_DEFAULT_KERNEL(false, true,
+ NEON_32bit_GEMM_Int8Operands_LhsNonzero)
+#elif defined GEMMLOWP_NEON_64
+#include "kernel_neon.h"
+GEMMLOWP_SET_DEFAULT_KERNEL(false, false, NEON_64_Kernel12x8Depth2)
+GEMMLOWP_SET_DEFAULT_KERNEL(false, true,
+ NEON_64bit_GEMM_Int8Operands_LhsNonzero)
+#elif defined GEMMLOWP_SSE4_32
+#include "kernel_sse.h"
+GEMMLOWP_SET_DEFAULT_KERNEL(false, false, SSE4_32_Kernel4x4Depth2)
+#elif defined GEMMLOWP_SSE4_64
+#include "kernel_sse.h"
+GEMMLOWP_SET_DEFAULT_KERNEL(false, false, SSE4_64_Kernel12x4Depth2)
+#else
+#ifndef GEMMLOWP_ALLOW_SLOW_SCALAR_FALLBACK
+#if defined __ARM_ARCH_5TE__
+// SIMD is not available on this platform. The slow fallback will be used.
+// Don't require GEMMLOWP_ALLOW_SLOW_SCALAR_FALLBACK because there's nothing
+// the user can do about it.
+#else
+#error \
+ "SIMD not enabled, you'd be getting a slow software fallback. Consider \
+enabling SIMD extensions (for example using -msse4 if you're on modern x86). \
+If that's not an option, and you would like to continue with the \
+slow fallback, define GEMMLOWP_ALLOW_SLOW_SCALAR_FALLBACK."
+#endif
+#endif
+#include "kernel_reference.h"
+namespace gemmlowp {
+typedef ReferenceKernel<KernelFormat<
+ KernelSideFormat<CellFormat<4, 16, CellOrder::WidthMajor>, 1>,
+ KernelSideFormat<CellFormat<4, 16, CellOrder::WidthMajor>, 1> > >
+ DefaultReferenceKernel;
+}
+GEMMLOWP_SET_DEFAULT_KERNEL(false, false, DefaultReferenceKernel)
+#endif
+
+#endif // GEMMLOWP_INTERNAL_KERNEL_DEFAULT_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/kernel_neon.h b/runtimes/nn/depend/external/gemmlowp/internal/kernel_neon.h
new file mode 100644
index 000000000..5c253babe
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/kernel_neon.h
@@ -0,0 +1,1619 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// kernel_neon.h: a collection of NEON optimized kernels.
+// Check in kernel_default.h which one(s) are actually used by default.
+// Others are mere experiments; they are still covered by tests
+// in case they might be useful some day.
+
+#ifndef GEMMLOWP_INTERNAL_KERNEL_NEON_H_
+#define GEMMLOWP_INTERNAL_KERNEL_NEON_H_
+
+#include "kernel.h"
+
+#include <arm_neon.h>
+#include <cassert>
+
+namespace gemmlowp {
+
+// The kernels here are specifically arm 32bit assembly, not arm 64bit.
+#ifdef GEMMLOWP_NEON_32
+
+// Our main GEMM kernel.
+struct NEON_32_Kernel12x4Depth2 : KernelBase {
+ typedef KernelFormat<KernelSideFormat<CellFormat<4, 2>, 3>,
+ KernelSideFormat<CellFormat<4, 2>, 1> >
+ Format;
+
+ const char* Name() const override { return "NEON, 12x4, depth 2"; }
+
+ // TODO(benoitjacob): reorder function arguments so dst comes last
+ void Run(std::int32_t* dst_ptr, std::size_t dst_row_stride,
+ std::size_t dst_col_stride, const std::uint8_t* lhs_ptr,
+ const std::uint8_t* rhs_ptr, std::size_t start_depth,
+ std::size_t run_depth) const override {
+ ScopedProfilingLabel label("optimized kernel (NEON 12x4)");
+
+// For iOS assembler, the %= style of local labels cause compilation errors,
+// so use numerical ones instead. See
+// http://stackoverflow.com/questions/3898435/labels-in-gcc-inline-assembly
+// If you add any labels, remember to undef them at the end.
+#define GEMMLOWP_LABEL_CLEAR_ACCUMULATORS "1"
+#define GEMMLOWP_LABEL_BEFORE_LOOP "2"
+#define GEMMLOWP_LABEL_LOOP "3"
+#define GEMMLOWP_LABEL_AFTER_LOOP "4"
+
+ assert(dst_row_stride == 1);
+ asm volatile(
+ // Overview of register layout:
+ //
+ // A 2x4 cell of Rhs is stored in 16bit in d0--d1 (q0).
+ // A 12x2 block of 3 4x2 cells Lhs is stored in 16bit in d2--d7
+ // (q1--q3).
+ // A 12x4 block of accumulators is stored in 32bit in q4--q15.
+ //
+ // +-----+-----+-----+-----+
+ // |d0[0]|d0[1]|d0[2]|d0[3]|
+ // Rhs +-----+-----+-----+-----+
+ // |d1[0]|d1[1]|d1[2]|d1[3]|
+ // +-----+-----+-----+-----+
+ //
+ // | | | | |
+ //
+ // Lhs | | | | |
+ //
+ // +--+--+ - - - - +-----+-----+-----+-----+
+ // |d2|d3| | q4 | q5 | q6 | q7 |
+ // |d2|d3| | q4 | q5 | q6 | q7 |
+ // |d2|d3| | q4 | q5 | q6 | q7 |
+ // |d2|d3| | q4 | q5 | q6 | q7 |
+ // +--+--+ - - - - +-----+-----+-----+-----+
+ // |d4|d5| | q8 | q9 | q10 | q11 |
+ // |d4|d5| | q8 | q9 | q10 | q11 |
+ // |d4|d5| | q8 | q9 | q10 | q11 |
+ // |d4|d5| | q8 | q9 | q10 | q11 |
+ // +--+--+ - - - - +-----+-----+-----+-----+
+ // |d6|d7| | q12 | q13 | q14 | q15 |
+ // |d6|d7| | q12 | q13 | q14 | q15 |
+ // |d6|d7| | q12 | q13 | q14 | q15 |
+ // |d6|d7| | q12 | q13 | q14 | q15 |
+ // +--+--+ - - - - +-----+-----+-----+-----+
+ //
+ // Accumulator
+
+ // Load 1 Rhs cell of size 2x4
+ "vld1.8 {d0}, [%[rhs_ptr]]!\n"
+ // Load 3 Lhs cells of size 4x2 each
+ "vld1.8 {d2}, [%[lhs_ptr]]!\n"
+ "vld1.8 {d4}, [%[lhs_ptr]]!\n"
+ "vld1.8 {d6}, [%[lhs_ptr]]!\n"
+
+ // Check if start_depth==0 to decide whether we will clear
+ // accumulators or load existing accumulators.
+ "cmp %[start_depth], #0\n"
+
+ // Multiply dst_col_stride by 4 == sizeof(int32) to use
+ // it as a byte offset below.
+ "lsl %[dst_col_stride], #2\n"
+
+ "beq " GEMMLOWP_LABEL_CLEAR_ACCUMULATORS
+ "f\n"
+
+ // Load accumulators (start_depth != 0)
+ "mov r1, %[dst_ptr]\n"
+ "subs %[run_depth], #2\n"
+ "mov r0, r1\n"
+ "vld1.32 {d8, d9}, [r0]!\n"
+ "add r1, %[dst_col_stride]\n"
+ "vld1.32 {d16, d17}, [r0]!\n"
+ "vld1.32 {d24, d25}, [r0]\n"
+ "mov r0, r1\n"
+ "vld1.32 {d10, d11}, [r0]!\n"
+ "add r1, %[dst_col_stride]\n"
+ "vld1.32 {d18, d19}, [r0]!\n"
+ "vld1.32 {d26, d27}, [r0]\n"
+ "mov r0, r1\n"
+ "vld1.32 {d12, d13}, [r0]!\n"
+ "add r1, %[dst_col_stride]\n"
+ "vld1.32 {d20, d21}, [r0]!\n"
+ "vld1.32 {d28, d29}, [r0]\n"
+ "mov r0, r1\n"
+ "vld1.32 {d14, d15}, [r0]!\n"
+ "vld1.32 {d22, d23}, [r0]!\n"
+ "vld1.32 {d30, d31}, [r0]\n"
+
+ "b " GEMMLOWP_LABEL_BEFORE_LOOP "f\n"
+
+ GEMMLOWP_LABEL_CLEAR_ACCUMULATORS
+ ":\n"
+
+ // Clear accumulators (start_depth == 0)
+ "vmov.s32 q4, #0\n"
+ "subs %[run_depth], #2\n"
+ "vmov.s32 q8, q4\n"
+ "vmov.s32 q12, q4\n"
+ "vmov.s32 q5, q4\n"
+ "vmov.s32 q9, q4\n"
+ "vmov.s32 q13, q4\n"
+ "vmov.s32 q6, q4\n"
+ "vmov.s32 q10, q4\n"
+ "vmov.s32 q14, q4\n"
+ "vmov.s32 q7, q4\n"
+ "vmov.s32 q11, q4\n"
+ "vmov.s32 q15, q4\n"
+
+ GEMMLOWP_LABEL_BEFORE_LOOP
+ ":\n"
+
+ // If there are only two levels of depth, skip the loop.
+ "beq " GEMMLOWP_LABEL_AFTER_LOOP "f\n"
+
+ GEMMLOWP_LABEL_LOOP
+ ":\n"
+ // Expand Lhs/Rhs cells to 16 bit.
+ // Note: moving theses vmovls further down to allow for
+ // longer data pipelining helps a little on A57 but is
+ // harmful on A53 --- It looks as if A53 doesn't like
+ // interleaving vmovl's into the vmlal's.
+ "vmovl.u8 q0, d0\n"
+ "vmovl.u8 q1, d2\n"
+ "vmovl.u8 q2, d4\n"
+ "vmovl.u8 q3, d6\n"
+
+ // Multiply-accumulate, level of depth 0
+ "vmlal.u16 q4, d2, d0[0]\n"
+ "vmlal.u16 q5, d2, d0[1]\n"
+ "vmlal.u16 q6, d2, d0[2]\n"
+ "vmlal.u16 q7, d2, d0[3]\n"
+ "vldr d2, [%[lhs_ptr]]\n"
+ "vmlal.u16 q8, d4, d0[0]\n"
+ "vmlal.u16 q9, d4, d0[1]\n"
+ "vmlal.u16 q10, d4, d0[2]\n"
+ "vmlal.u16 q11, d4, d0[3]\n"
+ "vldr d4, [%[lhs_ptr], #8]\n"
+ "vmlal.u16 q12, d6, d0[0]\n"
+ "vmlal.u16 q13, d6, d0[1]\n"
+ "vmlal.u16 q14, d6, d0[2]\n"
+ "vmlal.u16 q15, d6, d0[3]\n"
+ "vldr d6, [%[lhs_ptr], #16]\n"
+ "vldr d0, [%[rhs_ptr]]\n"
+
+ // Multiply-accumulate, level of depth 1
+ "vmlal.u16 q4, d3, d1[0]\n"
+ "vmlal.u16 q5, d3, d1[1]\n"
+ "add %[lhs_ptr], #24\n"
+ "vmlal.u16 q6, d3, d1[2]\n"
+ "vmlal.u16 q7, d3, d1[3]\n"
+ "add %[rhs_ptr], #8\n"
+ "vmlal.u16 q8, d5, d1[0]\n"
+ "vmlal.u16 q9, d5, d1[1]\n"
+ "subs %[run_depth], #2\n"
+ "vmlal.u16 q10, d5, d1[2]\n"
+ "vmlal.u16 q11, d5, d1[3]\n"
+ "vmlal.u16 q12, d7, d1[0]\n"
+ "vmlal.u16 q13, d7, d1[1]\n"
+ "vmlal.u16 q14, d7, d1[2]\n"
+ "vmlal.u16 q15, d7, d1[3]\n"
+
+ "bne " GEMMLOWP_LABEL_LOOP "b\n"
+
+ GEMMLOWP_LABEL_AFTER_LOOP
+ ":\n"
+
+ // Do remaining arithmetic for the last 2 levels of depth.
+
+ // Expand Lhs/Rhs cells to 16 bit.
+ "vmovl.u8 q0, d0\n"
+ "vmovl.u8 q1, d2\n"
+ "vmovl.u8 q2, d4\n"
+ "vmovl.u8 q3, d6\n"
+
+ // Multiply-accumulate, level of depth 0
+ "vmlal.u16 q4, d2, d0[0]\n"
+ "vmlal.u16 q5, d2, d0[1]\n"
+ "vmlal.u16 q6, d2, d0[2]\n"
+ "vmlal.u16 q7, d2, d0[3]\n"
+ "vmlal.u16 q8, d4, d0[0]\n"
+ "vmlal.u16 q9, d4, d0[1]\n"
+ "vmlal.u16 q10, d4, d0[2]\n"
+ "vmlal.u16 q11, d4, d0[3]\n"
+ "vmlal.u16 q12, d6, d0[0]\n"
+ "vmlal.u16 q13, d6, d0[1]\n"
+ "vmlal.u16 q14, d6, d0[2]\n"
+ "vmlal.u16 q15, d6, d0[3]\n"
+
+ // Multiply-accumulate, level of depth 1
+ "vmlal.u16 q4, d3, d1[0]\n"
+ "vmlal.u16 q5, d3, d1[1]\n"
+ "vmlal.u16 q6, d3, d1[2]\n"
+ "vmlal.u16 q7, d3, d1[3]\n"
+ "vmlal.u16 q8, d5, d1[0]\n"
+ "vmlal.u16 q9, d5, d1[1]\n"
+ "vmlal.u16 q10, d5, d1[2]\n"
+ "vmlal.u16 q11, d5, d1[3]\n"
+ "vmlal.u16 q12, d7, d1[0]\n"
+ "vmlal.u16 q13, d7, d1[1]\n"
+ "vmlal.u16 q14, d7, d1[2]\n"
+ "vmlal.u16 q15, d7, d1[3]\n"
+
+ // Store accumulators
+ "mov r1, %[dst_ptr]\n"
+ "mov r0, r1\n"
+ "vst1.32 {d8, d9}, [r0]!\n"
+ "add r1, %[dst_col_stride]\n"
+ "vst1.32 {d16, d17}, [r0]!\n"
+ "vst1.32 {d24, d25}, [r0]\n"
+ "mov r0, r1\n"
+ "vst1.32 {d10, d11}, [r0]!\n"
+ "add r1, %[dst_col_stride]\n"
+ "vst1.32 {d18, d19}, [r0]!\n"
+ "vst1.32 {d26, d27}, [r0]\n"
+ "mov r0, r1\n"
+ "vst1.32 {d12, d13}, [r0]!\n"
+ "add r1, %[dst_col_stride]\n"
+ "vst1.32 {d20, d21}, [r0]!\n"
+ "vst1.32 {d28, d29}, [r0]\n"
+ "mov r0, r1\n"
+ "vst1.32 {d14, d15}, [r0]!\n"
+ "vst1.32 {d22, d23}, [r0]!\n"
+ "vst1.32 {d30, d31}, [r0]\n"
+ : // outputs
+ [lhs_ptr] "+r"(lhs_ptr), [rhs_ptr] "+r"(rhs_ptr),
+ [dst_ptr] "+r"(dst_ptr),
+ [run_depth] "+r"(run_depth)
+ : // inputs
+ [start_depth] "r"(start_depth),
+ [dst_col_stride] "r"(dst_col_stride)
+ : // clobbers
+ "cc", "memory", "r0", "r1",
+ // note: someone on internet says that quad registers are
+ // unsupported in the clobber list!
+ "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8", "d9", "d10",
+ "d11", "d12", "d13", "d14", "d15", "d16", "d17", "d18", "d19", "d20",
+ "d21", "d22", "d23", "d24", "d25", "d26", "d27", "d28", "d29", "d30",
+ "d31");
+#undef GEMMLOWP_LABEL_CLEAR_ACCUMULATORS
+#undef GEMMLOWP_LABEL_BEFORE_LOOP
+#undef GEMMLOWP_LABEL_LOOP
+#undef GEMMLOWP_LABEL_AFTER_LOOP
+ }
+};
+
+struct NEON_32_Kernel12x4Depth2Assuming12BitProducts : KernelBase {
+ typedef KernelFormat<
+ KernelSideFormat<CellFormat<4, 2, CellOrder::WidthMajor>, 3>,
+ KernelSideFormat<CellFormat<4, 2, CellOrder::WidthMajor>, 1> >
+ Format;
+
+ const char* Name() const override {
+ return "NEON, 12x4, depth 2, assuming 12-bit products";
+ }
+
+ // TODO(benoitjacob): reorder function arguments so dst comes last
+ void Run(std::int32_t* dst_ptr, std::size_t dst_row_stride,
+ std::size_t dst_col_stride, const std::uint8_t* lhs_ptr,
+ const std::uint8_t* rhs_ptr, std::size_t start_depth,
+ std::size_t run_depth) const override {
+ ScopedProfilingLabel label(
+ "optimized kernel (NEON 12x4, assuming 12-bit products)");
+ assert(dst_row_stride == 1);
+
+// See comments above for why we need local numerical labels in our asm.
+#define GEMMLOWP_LOOP_NEON_32_KERNEL_12X4_DEPTH2_ASSUMING_12BIT_PRODUCTS "1"
+#define GEMMLOWP_LOAD_GLOBAL_ACCUMULATORS_NEON_32_KERNEL_12X4_DEPTH2_12BIT "2"
+#define GEMMLOWP_LABEL_32 "3"
+#define GEMMLOWP_LABEL_24 "4"
+#define GEMMLOWP_LABEL_16 "5"
+#define GEMMLOWP_LABEL_8 "6"
+#define GEMMLOWP_LABEL_2 "7"
+
+ // This kernel is special in that it uses local 16-bit accumulators.
+ // Because it assumes that each product fits in 12 bits, it can accumulate
+ // 16 products into a local 16-bit accumulator without risking overflow.
+ // At that point, it must accumulate these local 16-bit accumulators back
+ // into global 32-bit accumulators, which have to be stored in memory for
+ // lack of register space.
+ // This 12x4 block of global accumulators is laid out as 3 cells of size 4x4
+ // stored in diagonal-major order like this for the first 4x4 cell:
+ //
+ // 0 4 8 12
+ // 13 1 5 9
+ // 10 14 2 6
+ // 7 11 15 3
+ //
+ // and likewise for the 2nd cell (16--31) and 3rd cell (32--47)
+ std::int32_t global_accumulators[3 * 4 * 4];
+ asm volatile(
+ // Compute stride between consecutive columns, in bytes
+ "mov r0, #4\n" // multiply by 4 = sizeof(int32)
+ "mul %[dst_col_stride], r0\n"
+
+ "cmp %[start_depth], #0\n"
+ "bne"
+ " " GEMMLOWP_LOAD_GLOBAL_ACCUMULATORS_NEON_32_KERNEL_12X4_DEPTH2_12BIT
+ "f\n"
+
+ // If start_depth==0, we need to clear our global accumulators
+ "mov r0, %[global_accumulators]\n"
+ "vmov.s32 q8, #0\n"
+ "vmov.s32 q9, q8\n"
+ "vst1.32 {d16,d17,d18,d19}, [r0]!\n"
+ "vst1.32 {d16,d17,d18,d19}, [r0]!\n"
+ "vst1.32 {d16,d17,d18,d19}, [r0]!\n"
+ "vst1.32 {d16,d17,d18,d19}, [r0]!\n"
+ "vst1.32 {d16,d17,d18,d19}, [r0]!\n"
+ "vst1.32 {d16,d17,d18,d19}, [r0]!\n"
+ "b " GEMMLOWP_LOOP_NEON_32_KERNEL_12X4_DEPTH2_ASSUMING_12BIT_PRODUCTS
+ "f\n"
+
+ // If start_depth!=0, we need to load our existing global accumulators
+ GEMMLOWP_LOAD_GLOBAL_ACCUMULATORS_NEON_32_KERNEL_12X4_DEPTH2_12BIT
+ ":\n"
+ // Load global accumulators from destination matrix, column-major
+ "mov r1, %[dst_ptr]\n"
+ "mov r0, %[dst_col_stride]\n"
+ "sub r0, #32\n"
+ "vld1.32 {d0,d1}, [r1]!\n"
+ "vld1.32 {d8,d9}, [r1]!\n"
+ "vld1.32 {d16,d17}, [r1], r0\n"
+ "vld1.32 {d2,d3}, [r1]!\n"
+ "vld1.32 {d10,d11}, [r1]!\n"
+ "vld1.32 {d18,d19}, [r1], r0\n"
+ "vld1.32 {d4,d5}, [r1]!\n"
+ "vld1.32 {d12,d13}, [r1]!\n"
+ "vld1.32 {d20,d21}, [r1], r0\n"
+ "vld1.32 {d6,d7}, [r1]!\n"
+ "vld1.32 {d14,d15}, [r1]!\n"
+ "vld1.32 {d22,d23}, [r1], r0\n"
+ // Now we need to convert the global accumulator registers to
+ // 4x4-block-wise diagonal-major order. What we effectively want to do
+ // is to rotate the rows, however the accumulators are stored in
+ // column-major order in registers. So we achieve this by
+ // transposing, rotating the registers, and transposing again each
+ // 4x4 block.
+ //
+ // Transpose 3 4x4 blocks separately
+ "vtrn.32 q0, q1\n"
+ "vtrn.32 q2, q3\n"
+ "vswp d1, d4\n"
+ "vswp d3, d6\n"
+ "vtrn.32 q4, q5\n"
+ "vtrn.32 q6, q7\n"
+ "vswp d9, d12\n"
+ "vswp d11, d14\n"
+ "vtrn.32 q8, q9\n"
+ "vtrn.32 q10, q11\n"
+ "vswp d17, d20\n"
+ "vswp d19, d22\n"
+ // Rotate the registers
+ "vext.32 q1, q1, q1, #1\n"
+ "vext.32 q2, q2, q2, #2\n"
+ "vext.32 q3, q3, q3, #3\n"
+ "vext.32 q5, q5, q5, #1\n"
+ "vext.32 q6, q6, q6, #2\n"
+ "vext.32 q7, q7, q7, #3\n"
+ "vext.32 q9, q9, q9, #1\n"
+ "vext.32 q10, q10, q10, #2\n"
+ "vext.32 q11, q11, q11, #3\n"
+ // Transpose again and store into our global accumulators
+ // buffer. These two operations are done at once using vst4.
+ "mov r0, %[global_accumulators]\n"
+ "vst4.32 {d0,d2,d4,d6}, [r0]!\n"
+ "vst4.32 {d1,d3,d5,d7}, [r0]!\n"
+ "vst4.32 {d8,d10,d12,d14}, [r0]!\n"
+ "vst4.32 {d9,d11,d13,d15}, [r0]!\n"
+ "vst4.32 {d16,d18,d20,d22}, [r0]!\n"
+ "vst4.32 {d17,d19,d21,d23}, [r0]!\n"
+
+ /* Main loop */
+
+ GEMMLOWP_LOOP_NEON_32_KERNEL_12X4_DEPTH2_ASSUMING_12BIT_PRODUCTS
+ ":\n"
+
+// Overview of register layout:
+//
+// Registers q4--q16 are the local 16-bit accumulators.
+// However, each entry in the result matrix is represented
+// by *two* local 16-bit accumulators: one for even levels
+// of depth and one for odd levels of depth. These correspond
+// to the scalars at even and odd indices within each q-register.
+// Thus we effectively use 32 bits of register space for each
+// entry in the result matrix. The accumulators register layout
+// is the same as was described above for the global 32-bit
+// accumulators (3 cells of size 4x4 in diagonal-major order)
+// with the only difference that instead of 32bit values we have
+// pairs of 16bit values.
+//
+// A 2x4 cell of Rhs is stored in 8bit in d0.
+// A 12x2 block of 3 4x2 cells Lhs is stored in 8bit in d1--d3.
+//
+// +--------+--------+--------+--------+
+// |d0[0] |d0[2] |d0[4] |d0[6] |
+// Rhs +--------+--------+--------+--------+
+// |d0[1] |d0[3] |d0[5] |d0[7] |
+// +--------+--------+--------+--------+
+//
+// | | | | |
+//
+// Lhs | | | | |
+//
+// +-----+-----+ - - - +--------+--------+--------+--------+
+// |d1[0]|d1[1]| |q4[0,1] |q5[0,1] |q6[0,1] |q7[0,1] |
+// |d1[2]|d1[3]| |q7[2,3] |q4[2,3] |q5[2,3] |q6[2,3] |
+// |d1[4]|d1[5]| |q6[4,5] |q7[4,5] |q4[4,5] |q5[4,5] |
+// |d1[6]|d1[7]| |q5[6,7] |q6[6,7] |q7[6,7] |q4[6,7] |
+// +-----+-----+ - - - +--------+--------+--------+--------+
+// |d2[0]|d2[1]| |q8[0,1] |q8[0,1] |q8[0,1] |q8[0,1] |
+// |d2[2]|d2[3]| |q9[2,3] |q9[2,3] |q9[2,3] |q9[2,3] |
+// |d2[4]|d2[5]| |q10[4,5]|q10[4,5]|q10[4,5]|q10[4,5]|
+// |d2[6]|d2[7]| |q11[6,7]|q11[6,7]|q11[6,7]|q11[6,7]|
+// +-----+-----+ - - - +--------+--------+--------+--------+
+// |d3[0]|d3[1]| |q12[0,1]|q12[0,1]|q12[0,1]|q12[0,1]|
+// |d3[2]|d3[3]| |q13[2,3]|q13[2,3]|q13[2,3]|q13[2,3]|
+// |d3[4]|d3[5]| |q14[4,5]|q14[4,5]|q14[4,5]|q14[4,5]|
+// |d3[6]|d3[7]| |q15[6,7]|q15[6,7]|q15[6,7]|q15[6,7]|
+// +-----+-----+ - - - +--------+--------+--------+--------+
+//
+// Local 16-bit accumulators
+// Note: 2 scalars per matrix entry
+
+#define GEMMLOWP_ACCUMULATE_2_LEVELS_OF_DEPTH \
+ /* Load 3 Lhs cells of size 4x2 */ \
+ "vld1.8 {d1,d2,d3}, [%[lhs_ptr]:64]!\n" \
+ \
+ /* Load 1 Rhs cell of size 2x4 */ \
+ "vld1.8 {d0}, [%[rhs_ptr]:64]!\n" \
+ \
+ /* Multiply-accumulate */ \
+ "vmlal.u8 q4, d1, d0\n" \
+ "vmlal.u8 q8, d2, d0\n" \
+ "vmlal.u8 q12, d3, d0\n" \
+ "vext.8 d0, d0, d0, #2\n" \
+ "vmlal.u8 q5, d1, d0\n" \
+ "vmlal.u8 q9, d2, d0\n" \
+ "vmlal.u8 q13, d3, d0\n" \
+ "vext.8 d0, d0, d0, #2\n" \
+ "vmlal.u8 q6, d1, d0\n" \
+ "vmlal.u8 q10, d2, d0\n" \
+ "vmlal.u8 q14, d3, d0\n" \
+ "vext.8 d0, d0, d0, #2\n" \
+ "vmlal.u8 q7, d1, d0\n" \
+ "vmlal.u8 q11, d2, d0\n" \
+ "vmlal.u8 q15, d3, d0\n" \
+ \
+ "sub %[run_depth], #2\n"
+
+#define GEMMLOWP_ACCUMULATE_8_LEVELS_OF_DEPTH \
+ GEMMLOWP_ACCUMULATE_2_LEVELS_OF_DEPTH \
+ GEMMLOWP_ACCUMULATE_2_LEVELS_OF_DEPTH \
+ GEMMLOWP_ACCUMULATE_2_LEVELS_OF_DEPTH \
+ GEMMLOWP_ACCUMULATE_2_LEVELS_OF_DEPTH
+
+ // Clear local 16-bit accumulators
+ "vmov.s32 q4, #0\n"
+ "vmov.s32 q5, q4\n"
+ "vmov.s32 q6, q4\n"
+ "vmov.s32 q7, q4\n"
+ "vmov.s32 q8, q4\n"
+ "vmov.s32 q9, q4\n"
+ "vmov.s32 q10, q4\n"
+ "vmov.s32 q11, q4\n"
+ "vmov.s32 q12, q4\n"
+ "vmov.s32 q13, q4\n"
+ "vmov.s32 q14, q4\n"
+ "vmov.s32 q15, q4\n"
+
+ // Select a suitable number of depth levels
+ // to process at this iteration. TODO (benoitjacob) I guess that
+ // someone who really knows asm should make this a jump table.
+ "cmp %[run_depth], #32\n"
+ "bge " GEMMLOWP_LABEL_32
+ "f\n"
+ "cmp %[run_depth], #24\n"
+ "bge " GEMMLOWP_LABEL_24
+ "f\n"
+ "cmp %[run_depth], #16\n"
+ "bge " GEMMLOWP_LABEL_16
+ "f\n"
+ "cmp %[run_depth], #8\n"
+ "bge " GEMMLOWP_LABEL_8
+ "f\n"
+ "b " GEMMLOWP_LABEL_2 "f\n"
+
+ GEMMLOWP_LABEL_32
+ ":\n" GEMMLOWP_ACCUMULATE_8_LEVELS_OF_DEPTH GEMMLOWP_LABEL_24
+ ":\n" GEMMLOWP_ACCUMULATE_8_LEVELS_OF_DEPTH GEMMLOWP_LABEL_16
+ ":\n" GEMMLOWP_ACCUMULATE_8_LEVELS_OF_DEPTH GEMMLOWP_LABEL_8
+ ":\n" GEMMLOWP_ACCUMULATE_2_LEVELS_OF_DEPTH
+ GEMMLOWP_ACCUMULATE_2_LEVELS_OF_DEPTH
+ GEMMLOWP_ACCUMULATE_2_LEVELS_OF_DEPTH GEMMLOWP_LABEL_2
+ ":\n" GEMMLOWP_ACCUMULATE_2_LEVELS_OF_DEPTH
+
+ // Accumulate the local accumulators into the global accumulators.
+ // This is about summing adjacent pairs of 16-bit scalars into
+ // single 32-bit scalars, so we use pairwise long addition (vpadal).
+ "mov r0, %[global_accumulators]\n"
+ "mov r1, %[global_accumulators]\n"
+ "vld1.32 {d0,d1,d2,d3}, [r0]!\n"
+ "vld1.32 {d4,d5,d6,d7}, [r0]!\n"
+ "vpadal.u16 q0, q4\n"
+ "vpadal.u16 q1, q5\n"
+ "vpadal.u16 q2, q6\n"
+ "vpadal.u16 q3, q7\n"
+ "vst1.32 {d0,d1,d2,d3}, [r1]!\n"
+ "vst1.32 {d4,d5,d6,d7}, [r1]!\n"
+ "vld1.32 {d0,d1,d2,d3}, [r0]!\n"
+ "vld1.32 {d4,d5,d6,d7}, [r0]!\n"
+ "vpadal.u16 q0, q8\n"
+ "vpadal.u16 q1, q9\n"
+ "vpadal.u16 q2, q10\n"
+ "vpadal.u16 q3, q11\n"
+ "vst1.32 {d0,d1,d2,d3}, [r1]!\n"
+ "vst1.32 {d4,d5,d6,d7}, [r1]!\n"
+ "vld1.32 {d0,d1,d2,d3}, [r0]!\n"
+ "vld1.32 {d4,d5,d6,d7}, [r0]!\n"
+ "vpadal.u16 q0, q12\n"
+ "vpadal.u16 q1, q13\n"
+ "vpadal.u16 q2, q14\n"
+ "vpadal.u16 q3, q15\n"
+ "vst1.32 {d0,d1,d2,d3}, [r1]!\n"
+ "vst1.32 {d4,d5,d6,d7}, [r1]!\n"
+
+ // Loop.
+ "cmp %[run_depth], #0\n"
+ "bne " GEMMLOWP_LOOP_NEON_32_KERNEL_12X4_DEPTH2_ASSUMING_12BIT_PRODUCTS
+ "b\n"
+
+#undef GEMMLOWP_CLEAR_LOCAL_ACCUMULATORS
+#undef GEMMLOWP_ACCUMULATE_8_LEVELS_OF_DEPTH
+#undef GEMMLOWP_ACCUMULATE_2_LEVELS_OF_DEPTH
+#undef GEMMLOWP_ADD_TO_GLOBAL_ACCUMULATORS
+
+ /* end of main loop */
+
+ // Store the global accumulators to the destination matrix
+ // (column-major)
+ // This is the reverse of the steps that we followed at the beginning
+ // when we load the global accumulators from the destination matrix.
+ // The problem is the same: how to convert 4x4 blocks
+ // between column-major and diagonal-major orders.
+ // Like above, we do this by rotating rows, and we achieve that by
+ // tranposing, rotating columns, and transposing again.
+ //
+ // Load and transpose 4x4 blocks of global accumulators
+ // These two steps are done at once by the vld4 instruction.
+ "mov r0, %[global_accumulators]\n"
+ "vld4.32 {d0,d2,d4,d6}, [r0]!\n"
+ "vld4.32 {d1,d3,d5,d7}, [r0]!\n"
+ "vld4.32 {d8,d10,d12,d14}, [r0]!\n"
+ "vld4.32 {d9,d11,d13,d15}, [r0]!\n"
+ "vld4.32 {d16,d18,d20,d22}, [r0]!\n"
+ "vld4.32 {d17,d19,d21,d23}, [r0]!\n"
+ // Rotate the rows of each 4x4 block
+ "vext.32 q1, q1, q1, #3\n"
+ "vext.32 q2, q2, q2, #2\n"
+ "vext.32 q3, q3, q3, #1\n"
+ "vext.32 q5, q5, q5, #3\n"
+ "vext.32 q6, q6, q6, #2\n"
+ "vext.32 q7, q7, q7, #1\n"
+ "vext.32 q9, q9, q9, #3\n"
+ "vext.32 q10, q10, q10, #2\n"
+ "vext.32 q11, q11, q11, #1\n"
+ // Transpose again each 4x4 block
+ "vtrn.32 q0, q1\n"
+ "vtrn.32 q2, q3\n"
+ "vswp d1, d4\n"
+ "vswp d3, d6\n"
+ "vtrn.32 q4, q5\n"
+ "vtrn.32 q6, q7\n"
+ "vswp d9, d12\n"
+ "vswp d11, d14\n"
+ "vtrn.32 q8, q9\n"
+ "vtrn.32 q10, q11\n"
+ "vswp d17, d20\n"
+ "vswp d19, d22\n"
+ // Store into the column-major destination matrix
+ "mov r1, %[dst_ptr]\n"
+ "mov r0, %[dst_col_stride]\n"
+ "sub r0, #32\n"
+ "vst1.32 {d0,d1}, [r1]!\n"
+ "vst1.32 {d8,d9}, [r1]!\n"
+ "vst1.32 {d16,d17}, [r1], r0\n"
+ "vst1.32 {d2,d3}, [r1]!\n"
+ "vst1.32 {d10,d11}, [r1]!\n"
+ "vst1.32 {d18,d19}, [r1], r0\n"
+ "vst1.32 {d4,d5}, [r1]!\n"
+ "vst1.32 {d12,d13}, [r1]!\n"
+ "vst1.32 {d20,d21}, [r1], r0\n"
+ "vst1.32 {d6,d7}, [r1]!\n"
+ "vst1.32 {d14,d15}, [r1]!\n"
+ "vst1.32 {d22,d23}, [r1], r0\n"
+ : // outputs
+ [lhs_ptr] "+r"(lhs_ptr), [rhs_ptr] "+r"(rhs_ptr),
+ [dst_ptr] "+r"(dst_ptr),
+ [run_depth] "+r"(run_depth)
+ : // inputs
+ [start_depth] "r"(start_depth), [dst_col_stride] "r"(dst_col_stride),
+ [global_accumulators] "r"(&global_accumulators[0])
+ : // clobbers
+ "cc", "memory", "r0", "r1",
+ // note: someone on internet says that quad registers are
+ // unsupported in the clobber list!
+ "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8", "d9", "d10",
+ "d11", "d12", "d13", "d14", "d15", "d16", "d17", "d18", "d19", "d20",
+ "d21", "d22", "d23", "d24", "d25", "d26", "d27", "d28", "d29", "d30",
+ "d31");
+#undef GEMMLOWP_LOOP_NEON_32_KERNEL_12X4_DEPTH2_ASSUMING_12BIT_PRODUCTS
+#undef GEMMLOWP_LOAD_GLOBAL_ACCUMULATORS_NEON_32_KERNEL_12X4_DEPTH2_12BIT
+#undef GEMMLOWP_LABEL_32
+#undef GEMMLOWP_LABEL_24
+#undef GEMMLOWP_LABEL_16
+#undef GEMMLOWP_LABEL_8
+#undef GEMMLOWP_LABEL_2
+ }
+};
+
+struct NEON_32bit_GEMM_Int8Operands_LhsNonzero : KernelBase {
+ typedef KernelFormat<
+ KernelSideFormatInt8<CellFormat<4, 16, CellOrder::WidthMajor>, 1>,
+ KernelSideFormatInt8<CellFormat<2, 16, CellOrder::WidthMajor>, 1> >
+ Format;
+ const char* Name() const override {
+ return "NEON, 4x2, depth 16, accumulating two within signed int16";
+ }
+
+ // TODO(benoitjacob): reorder function arguments so dst comes last
+ void Run(std::int32_t* dst_ptr, std::size_t dst_row_stride,
+ std::size_t dst_col_stride, const std::uint8_t* lhs_ptr,
+ const std::uint8_t* rhs_ptr, std::size_t start_depth,
+ std::size_t run_depth) const override {
+#define GEMMLOWP_LABEL_AFTER_LOOP "1"
+#define GEMMLOWP_LABEL_LOOP "2"
+#define GEMMLOWP_LABEL_ACCUMULATE_EXISTING_DST_VALUES "3"
+#define GEMMLOWP_LABEL_STORE "4"
+ asm volatile(
+ // Multiply dst_col_stride by 4 == sizeof(int32) to use
+ // it as a byte offset below.
+ "lsl %[dst_col_stride], %[dst_col_stride], #2\n"
+
+ // Overview of register layout:
+ //
+ // A 2x16 block of Rhs is stored in 8 bit in d0--d3.
+ // A 4x16 block of Lhs is stored in 8 bit in d4--d7. That is only
+ // half of the register space required, so we loop over these registers
+ // twice. Only half of it, a 2x16 block, is stored in d4--d7 at
+ // any given time.
+ //
+ // A 4x2 block of accumulators is stored in q8--q15 (as 4x32 bit
+ // components which need to be horizontally-added at the end)
+ //
+ // The Lhs vectors are multiplied by the Rhs vectors with a widening
+ // multiply over the 8 first levels of depth, producing int16x8
+ // vectors of products for each position in the accumulator matrix.
+ // Here comes the special trick: since the operands are signed int8,
+ // their range being [ -2^7 , 2^7 ), their products are in range
+ // [ -2^14 , 2^14 - 1 ), meaning that we can add two such values
+ // without any risk of overflowing int16.
+ // We thus proceed with the 8 next levels of depth, multiplying
+ // again Lhs by Rhs, accumulating into this existing int16x8 vector.
+ //
+ // Only then, having processed 16 levels of depth, do we need to
+ // horizontally add these int16x8 accumulators into the final
+ // int32x4 accumulators.
+ //
+ // As we do not have enough registers to store all 16 int16x8
+ // temporary-16bit-accumulators, we have them cycle through q4--q7.
+ //
+ //
+ // Register layout (ignoring the q4--q7 temporary 16bit accumulators):
+ //
+ // +----+----+
+ // | d0 | d2 |
+ // | . | . |
+ // | . | . |
+ // | . | . |
+ // Rhs +----+----+
+ // | d1 | d3 |
+ // | . | . |
+ // | . | . |
+ // | . | . |
+ // +----+----+
+ //
+ // | | |
+ //
+ // Lhs | | |
+ //
+ // +--------+--------+ - - - - +----+----+
+ // | d4 ... | d5 ... | | q8 | q9 |
+ // | d6 ... | d7 ... | | q10| q11|
+ // | d4 ... | d5 ... | | q12| q13|
+ // | d6 ... | d7 ... | | q14| q15|
+ // +--------+--------+ - - - - +----+----+
+ //
+ // Accumulator
+ //
+
+ // Clear accumulators, and, interleaved with it,
+ // initial loads of the first loop iteration,
+ // taken out of the loop so that in the loop itself we have
+ // optimal streaming of data from memory.
+ "vldr d0, [%[rhs_ptr], #0]\n"
+ "vmov.i32 q8, #0\n"
+ "vldr d4, [%[lhs_ptr], #0]\n"
+ "vmov.i32 q9, #0\n"
+ "vldr d2, [%[rhs_ptr], #16]\n"
+ "vmov.i32 q10, q8\n"
+ "vldr d6, [%[lhs_ptr], #16]\n"
+ "vmov.i32 q11, q8\n"
+ "vldr d1, [%[rhs_ptr], #8]\n"
+ "vmov.i32 q12, q8\n"
+ "vldr d5, [%[lhs_ptr], #8]\n"
+ "vmov.i32 q13, q8\n"
+ "vldr d3, [%[rhs_ptr], #24]\n"
+ "vmov.i32 q14, q8\n"
+ "vldr d7, [%[lhs_ptr], #24]\n"
+ "vmov.i32 q15, q8\n"
+
+ // General loop.
+ GEMMLOWP_LABEL_LOOP
+ ":\n"
+
+ // Multiply 8 first levels of depth.
+ "vmull.s8 q4, d0, d4\n"
+ "add %[rhs_ptr], %[rhs_ptr], #32\n"
+ "vmull.s8 q5, d2, d4\n"
+ "vldr d4, [%[lhs_ptr], #32]\n"
+ "vmull.s8 q6, d0, d6\n"
+ "vmull.s8 q7, d2, d6\n"
+ "vldr d6, [%[lhs_ptr], #48]\n"
+
+ // Multiply-accumulate second-half, again into the same
+ // 16bit local accumulator registers. This is where we
+ // take advantage of having int8 instead of uint8 and therefore
+ // being able to accumulate two products into int16.
+ "vmlal.s8 q4, d1, d5\n"
+ "vmlal.s8 q5, d3, d5\n"
+ "vldr d5, [%[lhs_ptr], #40]\n"
+ "vmlal.s8 q6, d1, d7\n"
+ "vmlal.s8 q7, d3, d7\n"
+ "vldr d7, [%[lhs_ptr], #56]\n"
+
+ // Add pairwise, accumulate into 32-bit accumulators.
+ "vpadal.s16 q8, q4\n"
+ "add %[lhs_ptr], %[lhs_ptr], #64\n"
+ "vpadal.s16 q9, q5\n"
+ "subs %[run_depth], %[run_depth], #16\n"
+ "vpadal.s16 q10, q6\n"
+ "vpadal.s16 q11, q7\n"
+
+ "beq " GEMMLOWP_LABEL_AFTER_LOOP
+ "f\n"
+
+ // Multiply first half.
+ "vmull.s8 q4, d0, d4\n"
+ "vmull.s8 q5, d2, d4\n"
+ "vldr d4, [%[lhs_ptr], #0]\n"
+ "vmull.s8 q6, d0, d6\n"
+ "vldr d0, [%[rhs_ptr], #0]\n"
+ "vmull.s8 q7, d2, d6\n"
+ "vldr d2, [%[rhs_ptr], #16]\n"
+
+ // Multiply-accumulate second-half, again into the same
+ // 16bit local accumulator registers. This is where we
+ // take advantage of having int8 instead of uint8 and therefore
+ // being able to accumulate two products into int16.
+ "vmlal.s8 q4, d1, d5\n"
+ "vldr d6, [%[lhs_ptr], #16]\n"
+ "vmlal.s8 q5, d3, d5\n"
+ "vldr d5, [%[lhs_ptr], #8]\n"
+ "vmlal.s8 q6, d1, d7\n"
+ "vldr d1, [%[rhs_ptr], #8]\n"
+ "vmlal.s8 q7, d3, d7\n"
+ "vldr d3, [%[rhs_ptr], #24]\n"
+
+ // Add pairwise, accumulate into 32-bit accumulators.
+ "vpadal.s16 q12, q4\n"
+ "vldr d7, [%[lhs_ptr], #24]\n"
+ "vpadal.s16 q13, q5\n"
+ "vpadal.s16 q14, q6\n"
+ "vpadal.s16 q15, q7\n"
+
+ "b " GEMMLOWP_LABEL_LOOP "b\n"
+
+ GEMMLOWP_LABEL_AFTER_LOOP
+ ":\n"
+
+ // Multiply first half.
+ "vmull.s8 q4, d0, d4\n"
+ "vmull.s8 q5, d2, d4\n"
+ "vmull.s8 q6, d0, d6\n"
+ "vmull.s8 q7, d2, d6\n"
+
+ // Multiply-accumulate second-half, again into the same
+ // 16bit local accumulator registers. This is where we
+ // take advantage of having int8 instead of uint8 and therefore
+ // being able to accumulate two products into int16.
+ "vmlal.s8 q4, d1, d5\n"
+ "vmlal.s8 q5, d3, d5\n"
+ "vmlal.s8 q6, d1, d7\n"
+ "vmlal.s8 q7, d3, d7\n"
+
+ // Add pairwise, accumulate into 32-bit accumulators.
+ "vpadal.s16 q12, q4\n"
+ "vpadal.s16 q13, q5\n"
+ "vpadal.s16 q14, q6\n"
+ "vpadal.s16 q15, q7\n"
+ "cmp %[start_depth], #0\n"
+
+ // Reduce 32bit accumulators horizontally.
+ "vpadd.s32 d0, d16, d17\n"
+ "vpadd.s32 d1, d18, d19\n"
+ "vpadd.s32 d2, d20, d21\n"
+ "vpadd.s32 d3, d22, d23\n"
+ "vpadd.s32 d4, d24, d25\n"
+ "vpadd.s32 d5, d26, d27\n"
+ "vpadd.s32 d6, d28, d29\n"
+ "vpadd.s32 d7, d30, d31\n"
+
+ "bne " GEMMLOWP_LABEL_ACCUMULATE_EXISTING_DST_VALUES
+ "f\n"
+
+ // Reduce 32bit accumulators horizontally, second pass
+ // (each pass adds pairwise. we need to add 4-wise).
+ "vpadd.s32 d8, d0, d2\n"
+ "vpadd.s32 d9, d4, d6\n"
+ "vpadd.s32 d10, d1, d3\n"
+ "vpadd.s32 d11, d5, d7\n"
+
+ "b " GEMMLOWP_LABEL_STORE "f\n"
+
+ GEMMLOWP_LABEL_ACCUMULATE_EXISTING_DST_VALUES
+ ":\n"
+
+ // Reduce 32bit accumulators horizontally, second pass
+ // (each pass adds pairwise. we need to add 4-wise),
+ // and load destination values from memory.
+ "mov r0, %[dst_ptr]\n"
+ "vld1.32 {d16, d17}, [r0], %[dst_col_stride]\n"
+ "vpadd.s32 d8, d0, d2\n"
+ "vpadd.s32 d9, d4, d6\n"
+ "vld1.32 {d18, d19}, [r0]\n"
+ "vpadd.s32 d10, d1, d3\n"
+ "vpadd.s32 d11, d5, d7\n"
+
+ // Add horizontally-reduced accumulators into
+ // the values loaded from memory
+ "vadd.s32 q4, q8, q4\n"
+ "vadd.s32 q5, q9, q5\n"
+
+ GEMMLOWP_LABEL_STORE
+ ":\n"
+ // Store back into memory
+ "mov r0, %[dst_ptr]\n"
+ "vst1.32 {d8, d9}, [r0], %[dst_col_stride]\n"
+ "vst1.32 {d10, d11}, [r0]\n"
+ : // outputs
+ [lhs_ptr] "+r"(lhs_ptr), [rhs_ptr] "+r"(rhs_ptr),
+ [dst_ptr] "+r"(dst_ptr), [run_depth] "+r"(run_depth)
+ : // inputs
+ [start_depth] "r"(start_depth),
+ [dst_col_stride] "r"(dst_col_stride)
+ : // clobbers
+ "cc", "memory", "r0", "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7",
+ "d8", "d9", "d10", "d11", "d12", "d13", "d14", "d15", "d16", "d17",
+ "d18", "d19", "d20", "d21", "d22", "d23", "d24", "d25", "d26", "d27",
+ "d28", "d29", "d30", "d31");
+#undef GEMMLOWP_LABEL_LOOP
+#undef GEMMLOWP_LABEL_AFTER_LOOP
+#undef GEMMLOWP_LABEL_ACCUMULATE_EXISTING_DST_VALUES
+#undef GEMMLOWP_LABEL_STORE
+ }
+};
+
+#endif // GEMMLOWP_NEON_32
+
+// The kernels here are specifically arm 64bit assembly, not arm 32bit.
+#ifdef GEMMLOWP_NEON_64
+
+struct NEON_64bit_GEMM_Int8Operands_LhsNonzero : KernelBase {
+ typedef KernelFormat<
+ KernelSideFormatInt8<CellFormat<4, 16, CellOrder::WidthMajor>, 1>,
+ KernelSideFormatInt8<CellFormat<4, 16, CellOrder::WidthMajor>, 1> >
+ Format;
+ const char* Name() const override {
+ return "NEON, 4x4, depth 16, accumulating two within signed int16";
+ }
+
+ // TODO(benoitjacob): reorder function arguments so dst comes last
+ void Run(std::int32_t* dst_ptr, std::size_t dst_row_stride,
+ std::size_t dst_col_stride, const std::uint8_t* lhs_ptr,
+ const std::uint8_t* rhs_ptr, std::size_t start_depth,
+ std::size_t run_depth) const override {
+#define GEMMLOWP_LABEL_AFTER_LOOP_LAST16 "1"
+#define GEMMLOWP_LABEL_LOOP "2"
+#define GEMMLOWP_LABEL_ACCUMULATE_EXISTING_DST_VALUES "3"
+#define GEMMLOWP_LABEL_STORE "4"
+ asm volatile(
+ // Clear accumulators, and, interleaved with it,
+ // initial loads of the first loop iteration,
+ // taken out of the loop so that in the loop itself we have
+ // optimal streaming of data from memory.
+ "ld1 {v0.16b}, [%[rhs_ptr]], #16\n"
+ "dup v16.4s, wzr\n"
+ "ld1 {v4.16b}, [%[lhs_ptr]], #16\n"
+ "dup v17.4s, wzr\n"
+ "ld1 {v1.16b}, [%[rhs_ptr]], #16\n"
+ "dup v18.4s, wzr\n"
+ "ld1 {v5.16b}, [%[lhs_ptr]], #16\n"
+ "dup v19.4s, wzr\n"
+ "ld1 {v2.16b}, [%[rhs_ptr]], #16\n"
+ "dup v20.4s, wzr\n"
+ "ld1 {v3.16b}, [%[rhs_ptr]], #16\n"
+ "dup v21.4s, wzr\n"
+ "ld1 {v6.16b}, [%[lhs_ptr]], #16\n"
+ "dup v22.4s, wzr\n"
+ "ld1 {v7.16b}, [%[lhs_ptr]], #16\n"
+ "dup v23.4s, wzr\n"
+ "dup v24.4s, wzr\n"
+ "dup v25.4s, wzr\n"
+ "dup v26.4s, wzr\n"
+ "dup v27.4s, wzr\n"
+ "dup v28.4s, wzr\n"
+ "dup v29.4s, wzr\n"
+ "dup v30.4s, wzr\n"
+ "dup v31.4s, wzr\n"
+
+ // Multiply dst_col_stride by 4 == sizeof(int32) to use
+ // it as a byte offset below.
+ "lsl %[dst_col_stride], %[dst_col_stride], #2\n"
+
+ // Initial arithmetic of the first loop iteration,
+ // taken out of the loop so that in the loop itself we have
+ // optimal streaming of data from memory.
+ "smull v8.8h, v0.8b, v4.8b\n"
+ "smull v9.8h, v1.8b, v4.8b\n"
+ "smull v10.8h, v2.8b, v4.8b\n"
+ "smull v11.8h, v3.8b, v4.8b\n"
+ "smull v12.8h, v0.8b, v5.8b\n"
+ "smull v13.8h, v1.8b, v5.8b\n"
+ "smull v14.8h, v2.8b, v5.8b\n"
+ "smull v15.8h, v3.8b, v5.8b\n"
+
+ // Multiply-accumulate second-half, again into the same
+ // 16bit local accumulator registers. This is where we
+ // take advantage of having int8 instead of uint8 and therefore
+ // being able to accumulate two products into int16.
+ "smlal2 v8.8h, v0.16b, v4.16b\n"
+ "smlal2 v9.8h, v1.16b, v4.16b\n"
+ "smlal2 v10.8h, v2.16b, v4.16b\n"
+ "smlal2 v11.8h, v3.16b, v4.16b\n"
+ "smlal2 v12.8h, v0.16b, v5.16b\n"
+ "smlal2 v13.8h, v1.16b, v5.16b\n"
+ "smlal2 v14.8h, v2.16b, v5.16b\n"
+ "smlal2 v15.8h, v3.16b, v5.16b\n"
+
+ "subs %[run_depth], %[run_depth], #16\n"
+
+ // If the loop depth is only 16, then we can skip the general loop
+ // and go straight to the final part of the code.
+ "beq " GEMMLOWP_LABEL_AFTER_LOOP_LAST16 "f\n"
+
+ // General loop.
+ GEMMLOWP_LABEL_LOOP
+ ":\n"
+
+ // Overview of register layout:
+ //
+ // A 4x16 block of Rhs is stored in 8 bit in v0--v3.
+ // A 4x16 block of Lhs is stored in 8 bit in v4--v7.
+ //
+ // A 4x4 block of accumulators is stored in v16-v31 (as 4x32 bit
+ // components which need to be horizontally-added at the end)
+ //
+ // The Lhs vectors are multiplied by the Rhs vectors with a widening
+ // multiply over the 8 first levels of depth, producing int16x8
+ // vectors of products for each position in the accumulator matrix.
+ // Here comes the special trick: since the operands are signed int8,
+ // their range being [ -2^7 , 2^7 ), their products are in range
+ // [ -2^14 , 2^14 - 1 ), meaning that we can add two such values
+ // without any risk of overflowing int16.
+ // We thus proceed with the 8 next levels of depth, multiplying
+ // again Lhs by Rhs, accumulating into this existing int16x8 vector.
+ //
+ // Only then, having processed 16 levels of depth, do we need to
+ // horizontally add these int16x8 accumulators into the final
+ // int32x4 accumulators.
+ //
+ // As we do not have enough registers to store all 16 int16x8
+ // temporary-16bit-accumulators, we have them cycle through v8--v15.
+ //
+ //
+ // Register layout (ignoring the v8--v15 temporary 16bit accumulators):
+ //
+ // +--------+--------+--------+--------+
+ // |v0.b[0] |v1.b[0] |v2.b[0] |v3.b[0] |
+ // Rhs +--------+--------+--------+--------+
+ // | ... | ... | ... | ... |
+ // +--------+--------+--------+--------|
+ // |v0.b[15]|v1.b[15]|v2.b[15]|v3.b[15]|
+ // +--------+--------+--------+--------+
+ //
+ // | | | | |
+ //
+ // Lhs | | | | |
+ //
+ // +-------+-----+--------+ - - +--------+--------+--------+--------+
+ // |v4.b[0]| ... |v4.b[15]| | v16.4s | v17.4s | v18.4s | v19.4s |
+ // |v5.b[0]| ... |v5.b[15]| | v20.4s | v21.4s | v22.4s | v23.4s |
+ // |v6.b[0]| ... |v6.b[15]| | v24.4s | v25.4s | v26.4s | v27.4s |
+ // |v7.b[0]| ... |v7.b[15]| | v28.4s | v29.4s | v30.4s | v31.4s |
+ // +-------+--------------+ - - +--------+--------+--------+--------+
+ //
+ // Accumulator
+ //
+
+ // Some multiplications and 16-bit accumulation were already done above,
+ // so we start right away in the middle.
+ "sadalp v16.4s, v8.8h\n"
+ "ld1 {v4.16b}, [%[lhs_ptr]], #16\n"
+ "smull v8.8h, v0.8b, v6.8b\n"
+ "sadalp v17.4s, v9.8h\n"
+ "ld1 {v5.16b}, [%[lhs_ptr]], #16\n"
+ "smull v9.8h, v1.8b, v6.8b\n"
+ "sadalp v18.4s, v10.8h\n"
+ "smull v10.8h, v2.8b, v6.8b\n"
+ "sadalp v19.4s, v11.8h\n"
+ "smull v11.8h, v3.8b, v6.8b\n"
+ "sadalp v20.4s, v12.8h\n"
+ "smull v12.8h, v0.8b, v7.8b\n"
+ "sadalp v21.4s, v13.8h\n"
+ "smull v13.8h, v1.8b, v7.8b\n"
+ "sadalp v22.4s, v14.8h\n"
+ "smull v14.8h, v2.8b, v7.8b\n"
+ "sadalp v23.4s, v15.8h\n"
+ "smull v15.8h, v3.8b, v7.8b\n"
+
+ // Multiply-accumulate second-half, again into the same
+ // 16bit local accumulator registers. This is where we
+ // take advantage of having int8 instead of uint8 and therefore
+ // being able to accumulate two products into int16.
+ "smlal2 v8.8h, v0.16b, v6.16b\n"
+ "smlal2 v9.8h, v1.16b, v6.16b\n"
+ "smlal2 v10.8h, v2.16b, v6.16b\n"
+ "smlal2 v11.8h, v3.16b, v6.16b\n"
+
+ "ld1 {v6.16b}, [%[lhs_ptr]], #16\n"
+
+ "smlal2 v12.8h, v0.16b, v7.16b\n"
+ "ld1 {v0.16b}, [%[rhs_ptr]], #16\n"
+ "smlal2 v13.8h, v1.16b, v7.16b\n"
+ "ld1 {v1.16b}, [%[rhs_ptr]], #16\n"
+ "smlal2 v14.8h, v2.16b, v7.16b\n"
+ "ld1 {v2.16b}, [%[rhs_ptr]], #16\n"
+ "smlal2 v15.8h, v3.16b, v7.16b\n"
+ "ld1 {v3.16b}, [%[rhs_ptr]], #16\n"
+
+ "sadalp v24.4s, v8.8h\n"
+ "smull v8.8h, v0.8b, v4.8b\n"
+ "sadalp v25.4s, v9.8h\n"
+ "ld1 {v7.16b}, [%[lhs_ptr]], #16\n"
+ "smull v9.8h, v1.8b, v4.8b\n"
+ "sadalp v26.4s, v10.8h\n"
+ "smull v10.8h, v2.8b, v4.8b\n"
+ "sadalp v27.4s, v11.8h\n"
+ "smull v11.8h, v3.8b, v4.8b\n"
+ "sadalp v28.4s, v12.8h\n"
+ "smull v12.8h, v0.8b, v5.8b\n"
+ "sadalp v29.4s, v13.8h\n"
+ "smull v13.8h, v1.8b, v5.8b\n"
+ "sadalp v30.4s, v14.8h\n"
+ "smull v14.8h, v2.8b, v5.8b\n"
+ "sadalp v31.4s, v15.8h\n"
+ "smull v15.8h, v3.8b, v5.8b\n"
+
+ // Multiply-accumulate second-half, again into the same
+ // 16bit local accumulator registers. This is where we
+ // take advantage of having int8 instead of uint8 and therefore
+ // being able to accumulate two products into int16.
+ "smlal2 v8.8h, v0.16b, v4.16b\n"
+ "smlal2 v9.8h, v1.16b, v4.16b\n"
+ "smlal2 v10.8h, v2.16b, v4.16b\n"
+ "smlal2 v11.8h, v3.16b, v4.16b\n"
+
+ // Loop. Decrement loop index (depth) by 16, since we just handled
+ // 16 levels of depth. Do this subs a bit before the end of the loop
+ // for better dispatch on A57.
+ "subs %[run_depth], %[run_depth], #16\n"
+
+ "smlal2 v12.8h, v0.16b, v5.16b\n"
+ "smlal2 v13.8h, v1.16b, v5.16b\n"
+ "smlal2 v14.8h, v2.16b, v5.16b\n"
+ "smlal2 v15.8h, v3.16b, v5.16b\n"
+
+ "bne " GEMMLOWP_LABEL_LOOP "b\n"
+
+ // Final code for the last 16 levels of depth.
+ // There is nothing to load anymore, only some arithmetic to finish.
+ GEMMLOWP_LABEL_AFTER_LOOP_LAST16
+ ":\n"
+
+ // Some multiplications and 16-bit accumulation were already done above,
+ // so we start right away in the middle.
+ "sadalp v16.4s, v8.8h\n"
+ "smull v8.8h, v0.8b, v6.8b\n"
+ "sadalp v17.4s, v9.8h\n"
+ "smull v9.8h, v1.8b, v6.8b\n"
+ "sadalp v18.4s, v10.8h\n"
+ "smull v10.8h, v2.8b, v6.8b\n"
+ "sadalp v19.4s, v11.8h\n"
+ "smull v11.8h, v3.8b, v6.8b\n"
+ "sadalp v20.4s, v12.8h\n"
+ "smull v12.8h, v0.8b, v7.8b\n"
+ "sadalp v21.4s, v13.8h\n"
+ "smull v13.8h, v1.8b, v7.8b\n"
+ "sadalp v22.4s, v14.8h\n"
+ "smull v14.8h, v2.8b, v7.8b\n"
+ "sadalp v23.4s, v15.8h\n"
+ "smull v15.8h, v3.8b, v7.8b\n"
+
+ // Multiply-accumulate second-half, again into the same
+ // 16bit local accumulator registers. This is where we
+ // take advantage of having int8 instead of uint8 and therefore
+ // being able to accumulate two products into int16.
+ "smlal2 v8.8h, v0.16b, v6.16b\n"
+ "smlal2 v9.8h, v1.16b, v6.16b\n"
+ "smlal2 v10.8h, v2.16b, v6.16b\n"
+ "smlal2 v11.8h, v3.16b, v6.16b\n"
+ "smlal2 v12.8h, v0.16b, v7.16b\n"
+ "smlal2 v13.8h, v1.16b, v7.16b\n"
+ "smlal2 v14.8h, v2.16b, v7.16b\n"
+ "smlal2 v15.8h, v3.16b, v7.16b\n"
+
+ "sadalp v24.4s, v8.8h\n"
+ "sadalp v25.4s, v9.8h\n"
+ "sadalp v26.4s, v10.8h\n"
+ "sadalp v27.4s, v11.8h\n"
+ "sadalp v28.4s, v12.8h\n"
+ "sadalp v29.4s, v13.8h\n"
+ "sadalp v30.4s, v14.8h\n"
+ "sadalp v31.4s, v15.8h\n"
+
+ // Reduce 32bit accumulators horizontally.
+ "addp v0.4s, v16.4s, v20.4s\n"
+ "addp v2.4s, v17.4s, v21.4s\n"
+ "addp v4.4s, v18.4s, v22.4s\n"
+ "addp v6.4s, v19.4s, v23.4s\n"
+ "addp v1.4s, v24.4s, v28.4s\n"
+ "addp v3.4s, v25.4s, v29.4s\n"
+ "addp v5.4s, v26.4s, v30.4s\n"
+ "addp v7.4s, v27.4s, v31.4s\n"
+
+ "cmp %[start_depth], #0\n"
+ "bne " GEMMLOWP_LABEL_ACCUMULATE_EXISTING_DST_VALUES
+ "f\n"
+
+ // Reduce 32bit accumulators horizontally, second pass
+ // (each pass adds pairwise. we need to add 4-wise).
+ "addp v12.4s, v0.4s, v1.4s\n"
+ "addp v13.4s, v2.4s, v3.4s\n"
+ "addp v14.4s, v4.4s, v5.4s\n"
+ "addp v15.4s, v6.4s, v7.4s\n"
+
+ "b " GEMMLOWP_LABEL_STORE "f\n"
+
+ GEMMLOWP_LABEL_ACCUMULATE_EXISTING_DST_VALUES
+ ":\n"
+
+ // Reduce 32bit accumulators horizontally, second pass
+ // (each pass adds pairwise. we need to add 4-wise),
+ // and load destination values from memory.
+ "mov x0, %[dst_ptr]\n"
+ "ld1 {v12.16b}, [x0], %[dst_col_stride]\n"
+ "addp v8.4s, v0.4s, v1.4s\n"
+ "ld1 {v13.16b}, [x0], %[dst_col_stride]\n"
+ "addp v9.4s, v2.4s, v3.4s\n"
+ "ld1 {v14.16b}, [x0], %[dst_col_stride]\n"
+ "addp v10.4s, v4.4s, v5.4s\n"
+ "ld1 {v15.16b}, [x0]\n"
+ "addp v11.4s, v6.4s, v7.4s\n"
+
+ // Add horizontally-reduced accumulators into
+ // the values loaded from memory
+ "add v12.4s, v12.4s, v8.4s\n"
+ "add v13.4s, v13.4s, v9.4s\n"
+ "add v14.4s, v14.4s, v10.4s\n"
+ "add v15.4s, v15.4s, v11.4s\n"
+
+ GEMMLOWP_LABEL_STORE
+ ":\n"
+ // Store back into memory
+ "mov x0, %[dst_ptr]\n"
+ "st1 {v12.16b}, [x0], %[dst_col_stride]\n"
+ "st1 {v13.16b}, [x0], %[dst_col_stride]\n"
+ "st1 {v14.16b}, [x0], %[dst_col_stride]\n"
+ "st1 {v15.16b}, [x0]\n"
+ : // outputs
+ [lhs_ptr] "+r"(lhs_ptr), [rhs_ptr] "+r"(rhs_ptr),
+ [dst_ptr] "+r"(dst_ptr), [run_depth] "+r"(run_depth),
+ [dst_col_stride] "+r"(dst_col_stride)
+ : // inputs
+ [start_depth] "r"(start_depth)
+ : // clobbers
+ "cc", "memory", "x0", "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7",
+ "v8", "v9", "v10", "v11", "v12", "v13", "v14", "v15", "v16", "v17",
+ "v18", "v19", "v20", "v21", "v22", "v23", "v24", "v25", "v26", "v27",
+ "v28", "v29", "v30", "v31");
+#undef GEMMLOWP_LABEL_LOOP
+#undef GEMMLOWP_LABEL_AFTER_LOOP_LAST16
+#undef GEMMLOWP_LABEL_ACCUMULATE_EXISTING_DST_VALUES
+#undef GEMMLOWP_LABEL_STORE
+ }
+};
+
+
+// Our main GEMM kernel.
+struct NEON_64_Kernel12x8Depth2 : KernelBase {
+ typedef KernelFormat<KernelSideFormat<CellFormat<4, 2>, 3>,
+ KernelSideFormat<CellFormat<4, 2>, 2> >
+ Format;
+
+ const char* Name() const override { return "NEON, 12x8, depth 2"; }
+
+ // TODO(benoitjacob): reorder function arguments so dst comes last
+ void Run(std::int32_t* dst_ptr, std::size_t dst_row_stride,
+ std::size_t dst_col_stride, const std::uint8_t* lhs_ptr,
+ const std::uint8_t* rhs_ptr, std::size_t start_depth,
+ std::size_t run_depth) const override {
+ ScopedProfilingLabel label("optimized kernel (NEON 12x8)");
+// See comments above for why we need local numerical labels in our asm.
+#define GEMMLOWP_LABEL_CLEAR_ACCUMULATORS "1"
+#define GEMMLOWP_LABEL_BEFORE_LOOP "2"
+#define GEMMLOWP_LABEL_LOOP "3"
+#define GEMMLOWP_LABEL_AFTER_LOOP "4"
+
+ assert(dst_row_stride == 1);
+ asm volatile(
+ // Load 1 Rhs cell of size 2x8
+ "ld1 {v5.8b}, [%[rhs_ptr]], #8\n"
+ "ld1 {v6.8b}, [%[rhs_ptr]], #8\n"
+
+ // Load 3 Lhs cells of size 4x2 each
+ "ld1 {v2.8b}, [%[lhs_ptr]], #8\n"
+ "ld1 {v3.8b}, [%[lhs_ptr]], #8\n"
+ "ld1 {v4.8b}, [%[lhs_ptr]], #8\n"
+
+ // Multiply dst_col_stride by 4 == sizeof(int32) to use
+ // it as a byte offset below.
+ "lsl %[dst_col_stride], %[dst_col_stride], #2\n"
+
+ "cmp %[start_depth], #0\n"
+ "beq " GEMMLOWP_LABEL_CLEAR_ACCUMULATORS
+ "f\n"
+
+ // Load accumulators
+ "mov x1, %[dst_ptr]\n"
+ "mov x0, x1\n"
+ "ld1 {v8.16b}, [x0], #16\n"
+ "subs %[run_depth], %[run_depth], #2\n"
+ "ld1 {v16.16b}, [x0], #16\n"
+ "add x1, x1, %[dst_col_stride]\n"
+ "ld1 {v24.16b}, [x0]\n"
+ "mov x0, x1\n"
+ "ld1 {v9.16b}, [x0], #16\n"
+ "add x1, x1, %[dst_col_stride]\n"
+ "ld1 {v17.16b}, [x0], #16\n"
+ "ld1 {v25.16b}, [x0]\n"
+ "mov x0, x1\n"
+ "ld1 {v10.16b}, [x0], #16\n"
+ "add x1, x1, %[dst_col_stride]\n"
+ "ld1 {v18.16b}, [x0], #16\n"
+ "ld1 {v26.16b}, [x0]\n"
+ "mov x0, x1\n"
+ "ld1 {v11.16b}, [x0], #16\n"
+ "add x1, x1, %[dst_col_stride]\n"
+ "ld1 {v19.16b}, [x0], #16\n"
+ "ld1 {v27.16b}, [x0]\n"
+ "mov x0, x1\n"
+ "ld1 {v12.16b}, [x0], #16\n"
+ "add x1, x1, %[dst_col_stride]\n"
+ "ld1 {v20.16b}, [x0], #16\n"
+ "ld1 {v28.16b}, [x0]\n"
+ "mov x0, x1\n"
+ "ld1 {v13.16b}, [x0], #16\n"
+ "add x1, x1, %[dst_col_stride]\n"
+ "ld1 {v21.16b}, [x0], #16\n"
+ "ld1 {v29.16b}, [x0]\n"
+ "mov x0, x1\n"
+ "ld1 {v14.16b}, [x0], #16\n"
+ "add x1, x1, %[dst_col_stride]\n"
+ "ld1 {v22.16b}, [x0], #16\n"
+ "ld1 {v30.16b}, [x0]\n"
+ "mov x0, x1\n"
+ "ld1 {v15.16b}, [x0], #16\n"
+ "ld1 {v23.16b}, [x0], #16\n"
+ "ld1 {v31.16b}, [x0]\n"
+
+ "b " GEMMLOWP_LABEL_BEFORE_LOOP "f\n"
+
+ GEMMLOWP_LABEL_CLEAR_ACCUMULATORS
+ ":\n"
+
+ // Clear accumulator registers (see layout below)
+ "dup v8.4s, wzr\n"
+ "subs %[run_depth], %[run_depth], #2\n"
+ "dup v9.4s, wzr\n"
+ "dup v10.4s, wzr\n"
+ "dup v11.4s, wzr\n"
+ "dup v12.4s, wzr\n"
+ "dup v13.4s, wzr\n"
+ "dup v14.4s, wzr\n"
+ "dup v15.4s, wzr\n"
+ "dup v16.4s, wzr\n"
+ "dup v17.4s, wzr\n"
+ "dup v18.4s, wzr\n"
+ "dup v19.4s, wzr\n"
+ "dup v20.4s, wzr\n"
+ "dup v21.4s, wzr\n"
+ "dup v22.4s, wzr\n"
+ "dup v23.4s, wzr\n"
+ "dup v24.4s, wzr\n"
+ "dup v25.4s, wzr\n"
+ "dup v26.4s, wzr\n"
+ "dup v27.4s, wzr\n"
+ "dup v28.4s, wzr\n"
+ "dup v29.4s, wzr\n"
+ "dup v30.4s, wzr\n"
+ "dup v31.4s, wzr\n"
+
+ GEMMLOWP_LABEL_BEFORE_LOOP
+ ":\n"
+
+ "beq " GEMMLOWP_LABEL_AFTER_LOOP "f\n"
+
+ GEMMLOWP_LABEL_LOOP
+ ":\n"
+
+ // Overview of register layout:
+ //
+ // A 2x8 block of 2 2x4 cells of Rhs is stored in 16bit in v0--v1.
+ // A 12x2 block of 3 4x2 cells Lhs is stored in 16bit in v2--v4.
+ // A 12x8 block of accumulators is stored in 32bit in v8--v31.
+ //
+ // +--------+--------+-----+--------+--------+
+ // |v0.h[0] |v0.h[1] | ... |v1.h[2] |v1.h[3] |
+ // Rhs +--------+--------+-----+--------+--------+
+ // |v0.h[4] |v0.h[5] | ... |v1.h[6] |v1.h[7] |
+ // +--------+--------+-----+--------+--------+
+ //
+ // | | | | | |
+ //
+ // Lhs | | | | | |
+ //
+ // +-------+-------+ - - +--------+--------+-----+--------+--------+
+ // |v2.h[0]|v2.h[4]| |v8.s[0] |v9.s[0] | ... |v14.s[0]|v15.s[0]|
+ // |v2.h[1]|v2.h[5]| |v8.s[1] |v9.s[1] | ... |v14.s[1]|v15.s[1]|
+ // |v2.h[2]|v2.h[6]| |v8.s[2] |v9.s[2] | ... |v14.s[2]|v15.s[2]|
+ // |v2.h[3]|v2.h[7]| |v8.s[3] |v9.s[3] | ... |v14.s[3]|v15.s[3]|
+ // +-------+-------+ - - +--------+--------+-----+--------+--------+
+ // |v3.h[0]|v3.h[4]| |v16.s[0]|v17.s[0]| ... |v22.s[0]|v23.s[0]|
+ // |v3.h[1]|v3.h[5]| |v16.s[1]|v17.s[1]| ... |v22.s[1]|v23.s[1]|
+ // |v3.h[2]|v3.h[6]| |v16.s[2]|v17.s[2]| ... |v22.s[2]|v23.s[2]|
+ // |v3.h[3]|v3.h[7]| |v16.s[3]|v17.s[3]| ... |v22.s[3]|v23.s[3]|
+ // +-------+-------+ - - +--------+--------+-----+--------+--------+
+ // |v4.h[0]|v4.h[4]| |v24.s[0]|v25.s[0]| ... |v30.s[0]|v31.s[0]|
+ // |v4.h[1]|v4.h[5]| |v24.s[1]|v25.s[1]| ... |v30.s[1]|v31.s[1]|
+ // |v4.h[2]|v4.h[6]| |v24.s[2]|v25.s[2]| ... |v30.s[2]|v31.s[2]|
+ // |v4.h[3]|v4.h[7]| |v24.s[3]|v25.s[3]| ... |v30.s[3]|v31.s[3]|
+ // +-------+-------+ - - +--------+--------+-----+--------+--------+
+ //
+ // Accumulator
+
+ // Expand Lhs/Rhs cells to 16 bit.
+ "uxtl v0.8h, v5.8b\n"
+ "ld1 {v5.8b}, [%[rhs_ptr]], #8\n"
+ "uxtl v1.8h, v6.8b\n"
+ "ld1 {v6.8b}, [%[rhs_ptr]], #8\n"
+ "uxtl v2.8h, v2.8b\n"
+ "uxtl v3.8h, v3.8b\n"
+ "uxtl v4.8h, v4.8b\n"
+
+ // Multiply-accumulate, top third
+ "umlal v8.4s, v2.4h, v0.h[0]\n"
+ "umlal v9.4s, v2.4h, v0.h[1]\n"
+ "umlal v10.4s, v2.4h, v0.h[2]\n"
+ "umlal v11.4s, v2.4h, v0.h[3]\n"
+ "umlal v12.4s, v2.4h, v1.h[0]\n"
+ "umlal v13.4s, v2.4h, v1.h[1]\n"
+ "umlal v14.4s, v2.4h, v1.h[2]\n"
+ "umlal v15.4s, v2.4h, v1.h[3]\n"
+ "umlal2 v8.4s, v2.8h, v0.h[4]\n"
+ "umlal2 v9.4s, v2.8h, v0.h[5]\n"
+ "umlal2 v10.4s, v2.8h, v0.h[6]\n"
+ "umlal2 v11.4s, v2.8h, v0.h[7]\n"
+ "umlal2 v12.4s, v2.8h, v1.h[4]\n"
+ "umlal2 v13.4s, v2.8h, v1.h[5]\n"
+ "umlal2 v14.4s, v2.8h, v1.h[6]\n"
+ "umlal2 v15.4s, v2.8h, v1.h[7]\n"
+ "ld1 {v2.8b}, [%[lhs_ptr]], #8\n"
+
+ // Multiply-accumulate, middle third
+ "umlal v16.4s, v3.4h, v0.h[0]\n"
+ "umlal v17.4s, v3.4h, v0.h[1]\n"
+ "umlal v18.4s, v3.4h, v0.h[2]\n"
+ "umlal v19.4s, v3.4h, v0.h[3]\n"
+ "umlal v20.4s, v3.4h, v1.h[0]\n"
+ "umlal v21.4s, v3.4h, v1.h[1]\n"
+ "umlal v22.4s, v3.4h, v1.h[2]\n"
+ "umlal v23.4s, v3.4h, v1.h[3]\n"
+ "umlal2 v16.4s, v3.8h, v0.h[4]\n"
+ "umlal2 v17.4s, v3.8h, v0.h[5]\n"
+ "umlal2 v18.4s, v3.8h, v0.h[6]\n"
+ "umlal2 v19.4s, v3.8h, v0.h[7]\n"
+ "umlal2 v20.4s, v3.8h, v1.h[4]\n"
+ "umlal2 v21.4s, v3.8h, v1.h[5]\n"
+ "umlal2 v22.4s, v3.8h, v1.h[6]\n"
+ "umlal2 v23.4s, v3.8h, v1.h[7]\n"
+ "ld1 {v3.8b}, [%[lhs_ptr]], #8\n"
+
+ "subs %[run_depth], %[run_depth], #2\n"
+
+ // Multiply-accumulate, bottom third
+ "umlal v24.4s, v4.4h, v0.h[0]\n"
+ "umlal v25.4s, v4.4h, v0.h[1]\n"
+ "umlal v26.4s, v4.4h, v0.h[2]\n"
+ "umlal v27.4s, v4.4h, v0.h[3]\n"
+ "umlal v28.4s, v4.4h, v1.h[0]\n"
+ "umlal v29.4s, v4.4h, v1.h[1]\n"
+ "umlal v30.4s, v4.4h, v1.h[2]\n"
+ "umlal v31.4s, v4.4h, v1.h[3]\n"
+ "umlal2 v24.4s, v4.8h, v0.h[4]\n"
+ "umlal2 v25.4s, v4.8h, v0.h[5]\n"
+ "umlal2 v26.4s, v4.8h, v0.h[6]\n"
+ "umlal2 v27.4s, v4.8h, v0.h[7]\n"
+ "umlal2 v28.4s, v4.8h, v1.h[4]\n"
+ "umlal2 v29.4s, v4.8h, v1.h[5]\n"
+ "umlal2 v30.4s, v4.8h, v1.h[6]\n"
+ "umlal2 v31.4s, v4.8h, v1.h[7]\n"
+ "ld1 {v4.8b}, [%[lhs_ptr]], #8\n"
+
+ "bne " GEMMLOWP_LABEL_LOOP "b\n"
+
+ GEMMLOWP_LABEL_AFTER_LOOP
+ ":\n"
+
+ // Expand Lhs/Rhs cells to 16 bit.
+ "uxtl v0.8h, v5.8b\n"
+ "uxtl v1.8h, v6.8b\n"
+ "uxtl v2.8h, v2.8b\n"
+ "uxtl v3.8h, v3.8b\n"
+ "uxtl v4.8h, v4.8b\n"
+
+ // Multiply-accumulate, level of depth 0
+ "umlal v8.4s, v2.4h, v0.h[0]\n"
+ "umlal v9.4s, v2.4h, v0.h[1]\n"
+ "umlal v10.4s, v2.4h, v0.h[2]\n"
+ "umlal v11.4s, v2.4h, v0.h[3]\n"
+ "umlal v12.4s, v2.4h, v1.h[0]\n"
+ "umlal v13.4s, v2.4h, v1.h[1]\n"
+ "umlal v14.4s, v2.4h, v1.h[2]\n"
+ "umlal v15.4s, v2.4h, v1.h[3]\n"
+ "umlal v16.4s, v3.4h, v0.h[0]\n"
+ "umlal v17.4s, v3.4h, v0.h[1]\n"
+ "umlal v18.4s, v3.4h, v0.h[2]\n"
+ "umlal v19.4s, v3.4h, v0.h[3]\n"
+ "umlal v20.4s, v3.4h, v1.h[0]\n"
+ "umlal v21.4s, v3.4h, v1.h[1]\n"
+ "umlal v22.4s, v3.4h, v1.h[2]\n"
+ "umlal v23.4s, v3.4h, v1.h[3]\n"
+ "umlal v24.4s, v4.4h, v0.h[0]\n"
+ "umlal v25.4s, v4.4h, v0.h[1]\n"
+ "umlal v26.4s, v4.4h, v0.h[2]\n"
+ "umlal v27.4s, v4.4h, v0.h[3]\n"
+ "umlal v28.4s, v4.4h, v1.h[0]\n"
+ "umlal v29.4s, v4.4h, v1.h[1]\n"
+ "umlal v30.4s, v4.4h, v1.h[2]\n"
+ "umlal v31.4s, v4.4h, v1.h[3]\n"
+
+ // Multiply-accumulate, level of depth 1
+ "umlal2 v8.4s, v2.8h, v0.h[4]\n"
+ "umlal2 v9.4s, v2.8h, v0.h[5]\n"
+ "umlal2 v10.4s, v2.8h, v0.h[6]\n"
+ "umlal2 v11.4s, v2.8h, v0.h[7]\n"
+ "umlal2 v12.4s, v2.8h, v1.h[4]\n"
+ "umlal2 v13.4s, v2.8h, v1.h[5]\n"
+ "umlal2 v14.4s, v2.8h, v1.h[6]\n"
+ "umlal2 v15.4s, v2.8h, v1.h[7]\n"
+ "umlal2 v16.4s, v3.8h, v0.h[4]\n"
+ "umlal2 v17.4s, v3.8h, v0.h[5]\n"
+ "umlal2 v18.4s, v3.8h, v0.h[6]\n"
+ "umlal2 v19.4s, v3.8h, v0.h[7]\n"
+ "umlal2 v20.4s, v3.8h, v1.h[4]\n"
+ "umlal2 v21.4s, v3.8h, v1.h[5]\n"
+ "umlal2 v22.4s, v3.8h, v1.h[6]\n"
+ "umlal2 v23.4s, v3.8h, v1.h[7]\n"
+ "umlal2 v24.4s, v4.8h, v0.h[4]\n"
+ "umlal2 v25.4s, v4.8h, v0.h[5]\n"
+ "umlal2 v26.4s, v4.8h, v0.h[6]\n"
+ "umlal2 v27.4s, v4.8h, v0.h[7]\n"
+ "umlal2 v28.4s, v4.8h, v1.h[4]\n"
+ "umlal2 v29.4s, v4.8h, v1.h[5]\n"
+ "umlal2 v30.4s, v4.8h, v1.h[6]\n"
+ "umlal2 v31.4s, v4.8h, v1.h[7]\n"
+
+ // Store accumulators
+ "mov x1, %[dst_ptr]\n"
+ "mov x0, x1\n"
+ "st1 {v8.16b}, [x0], #16\n"
+ "subs %[run_depth], %[run_depth], #2\n"
+ "st1 {v16.16b}, [x0], #16\n"
+ "add x1, x1, %[dst_col_stride]\n"
+ "st1 {v24.16b}, [x0]\n"
+ "mov x0, x1\n"
+ "st1 {v9.16b}, [x0], #16\n"
+ "add x1, x1, %[dst_col_stride]\n"
+ "st1 {v17.16b}, [x0], #16\n"
+ "st1 {v25.16b}, [x0]\n"
+ "mov x0, x1\n"
+ "st1 {v10.16b}, [x0], #16\n"
+ "add x1, x1, %[dst_col_stride]\n"
+ "st1 {v18.16b}, [x0], #16\n"
+ "st1 {v26.16b}, [x0]\n"
+ "mov x0, x1\n"
+ "st1 {v11.16b}, [x0], #16\n"
+ "add x1, x1, %[dst_col_stride]\n"
+ "st1 {v19.16b}, [x0], #16\n"
+ "st1 {v27.16b}, [x0]\n"
+ "mov x0, x1\n"
+ "st1 {v12.16b}, [x0], #16\n"
+ "add x1, x1, %[dst_col_stride]\n"
+ "st1 {v20.16b}, [x0], #16\n"
+ "st1 {v28.16b}, [x0]\n"
+ "mov x0, x1\n"
+ "st1 {v13.16b}, [x0], #16\n"
+ "add x1, x1, %[dst_col_stride]\n"
+ "st1 {v21.16b}, [x0], #16\n"
+ "st1 {v29.16b}, [x0]\n"
+ "mov x0, x1\n"
+ "st1 {v14.16b}, [x0], #16\n"
+ "add x1, x1, %[dst_col_stride]\n"
+ "st1 {v22.16b}, [x0], #16\n"
+ "st1 {v30.16b}, [x0]\n"
+ "mov x0, x1\n"
+ "st1 {v15.16b}, [x0], #16\n"
+ "st1 {v23.16b}, [x0], #16\n"
+ "st1 {v31.16b}, [x0]\n"
+#undef GEMMLOWP_LABEL_CLEAR_ACCUMULATORS
+#undef GEMMLOWP_LABEL_BEFORE_LOOP
+#undef GEMMLOWP_LABEL_LOOP
+#undef GEMMLOWP_LABEL_AFTER_LOOP
+ : // outputs
+ [lhs_ptr] "+r"(lhs_ptr), [rhs_ptr] "+r"(rhs_ptr),
+ [dst_ptr] "+r"(dst_ptr),
+ [run_depth] "+r"(run_depth)
+ : // inputs
+ [start_depth] "r"(start_depth),
+ [dst_col_stride] "r"(dst_col_stride)
+ : // clobbers
+ "cc", "memory", "x0", "x1", "v0", "v1", "v2", "v3", "v4", "v5", "v6",
+ "v7", "v8", "v9", "v10", "v11", "v12", "v13", "v14", "v15", "v16",
+ "v17", "v18", "v19", "v20", "v21", "v22", "v23", "v24", "v25", "v26",
+ "v27", "v28", "v29", "v30", "v31");
+ }
+};
+
+#endif // GEMMLOWP_NEON_64
+
+} // namespace gemmlowp
+
+#endif // GEMMLOWP_INTERNAL_KERNEL_NEON_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/kernel_reference.h b/runtimes/nn/depend/external/gemmlowp/internal/kernel_reference.h
new file mode 100644
index 000000000..3458c6a99
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/kernel_reference.h
@@ -0,0 +1,118 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// kernel_reference.h: a reference kernel for CPU architectures where we don't
+// have optimized kernels yet. Also useful for testing, as it's templatized
+// to have any arbitrary format, allowing tests to cover all sorts of corner
+// cases.
+
+#ifndef GEMMLOWP_INTERNAL_KERNEL_REFERENCE_H_
+#define GEMMLOWP_INTERNAL_KERNEL_REFERENCE_H_
+
+#include "kernel.h"
+
+#include <cstdio>
+#include <cstring>
+
+namespace gemmlowp {
+
+// This kernel is templatized in an arbitrary Format template parameter,
+// allowing it to have any arbitrary format.
+template <typename tFormat>
+struct ReferenceKernel : KernelBase {
+ typedef tFormat Format;
+
+ const char* Name() const override {
+ static char buf[256];
+ snprintf(buf, sizeof(buf),
+ "reference(Lhs: %d cells %dx%d %s, Rhs: %d cells %dx%d %s)",
+ Format::Lhs::kCells, Format::Lhs::Cell::kWidth,
+ Format::Lhs::Cell::kDepth,
+ CellOrderName(Format::Lhs::Cell::kOrder), Format::Rhs::kCells,
+ Format::Rhs::Cell::kDepth, Format::Rhs::Cell::kWidth,
+ CellOrderName(Format::Rhs::Cell::kOrder));
+ return buf;
+ }
+
+ void Run(std::int32_t* dst_ptr, std::size_t dst_row_stride,
+ std::size_t dst_col_stride, const std::uint8_t* lhs_ptr,
+ const std::uint8_t* rhs_ptr, std::size_t start_depth,
+ std::size_t run_depth) const override {
+ std::int32_t accumulator[Format::kRows * Format::kCols];
+ memset(accumulator, 0, sizeof(accumulator));
+
+ const int run_depth_cells = static_cast<int>(run_depth / Format::kDepth);
+
+ // The outer loop is over the depth dimension.
+ for (int dc = 0; dc < run_depth_cells; dc++) {
+ // The next two loops are over cells of the Lhs (stacked vertically),
+ // and over cells of the Rhs (stacked horizontally).
+ for (int rc = 0; rc < Format::Lhs::kCells; rc++) {
+ const std::uint8_t* lhs_cell_ptr =
+ lhs_ptr + (dc * Format::Lhs::kCells + rc) *
+ Format::Lhs::Cell::kWidth * Format::kDepth;
+ for (int cc = 0; cc < Format::Rhs::kCells; cc++) {
+ const std::uint8_t* rhs_cell_ptr =
+ rhs_ptr + (dc * Format::Rhs::kCells + cc) *
+ Format::Rhs::Cell::kWidth * Format::kDepth;
+
+ // Now we are inside one cell of the Lhs and inside one cell
+ // of the Rhs, so the remaining inner loops are just
+ // traditional three loops of matrix multiplication.
+ for (int di = 0; di < Format::kDepth; di++) {
+ for (int ri = 0; ri < Format::Lhs::Cell::kWidth; ri++) {
+ for (int ci = 0; ci < Format::Rhs::Cell::kWidth; ci++) {
+ const std::uint8_t* lhs_coeff_ptr =
+ lhs_cell_ptr +
+ OffsetIntoCell<typename Format::Lhs::Cell>(ri, di);
+ const std::uint8_t* rhs_coeff_ptr =
+ rhs_cell_ptr +
+ OffsetIntoCell<typename Format::Rhs::Cell>(ci, di);
+ std::int32_t* accumulator_coeff_ptr =
+ accumulator + (ri + rc * Format::Lhs::Cell::kWidth) +
+ (ci + cc * Format::Rhs::Cell::kWidth) * Format::kRows;
+ *accumulator_coeff_ptr +=
+ std::int32_t(*lhs_coeff_ptr) * std::int32_t(*rhs_coeff_ptr);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if (start_depth == 0) {
+ // start_depth == 0 means we haven't accumulated anything yet, so we need
+ // to overwrite the accumulator, as it hasn't been initialized to zero.
+ for (int r = 0; r < Format::kRows; r++) {
+ for (int c = 0; c < Format::kCols; c++) {
+ dst_ptr[r * dst_row_stride + c * dst_col_stride] =
+ accumulator[r + c * Format::kRows];
+ }
+ }
+ } else {
+ // We have already accumulated stuff, so we need to continue accumulating
+ // instead of just overwriting.
+ for (int r = 0; r < Format::kRows; r++) {
+ for (int c = 0; c < Format::kCols; c++) {
+ dst_ptr[r * dst_row_stride + c * dst_col_stride] +=
+ accumulator[r + c * Format::kRows];
+ }
+ }
+ }
+ }
+};
+
+} // namespace gemmlowp
+
+#endif // GEMMLOWP_INTERNAL_KERNEL_REFERENCE_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/kernel_sse.h b/runtimes/nn/depend/external/gemmlowp/internal/kernel_sse.h
new file mode 100644
index 000000000..b879fd7c1
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/kernel_sse.h
@@ -0,0 +1,517 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// kernel_SSE.h: a collection of Intel SSE optimized kernels.
+// Check in kernel_default.h which one(s) are actually used by default.
+// Others are mere experiments; they are still covered by tests
+// in case they might be useful some day.
+//
+
+#ifndef GEMMLOWP_INTERNAL_KERNEL_SSE_H_
+#define GEMMLOWP_INTERNAL_KERNEL_SSE_H_
+
+#include "kernel.h"
+
+#include <string.h>
+#include <cassert>
+
+namespace gemmlowp {
+
+#ifdef GEMMLOWP_SSE4_32
+struct SSE4_32_Kernel4x4Depth2 : KernelBase {
+ typedef KernelFormat<
+ KernelSideFormat<CellFormat<4, 2, CellOrder::WidthMajor>, 1>,
+ KernelSideFormat<CellFormat<4, 2, CellOrder::WidthMajor>, 1> >
+ Format;
+
+ const char* Name() const override { return "SSE, 4x4, depth 2"; }
+
+ void Run(std::int32_t* dst_ptr, std::size_t dst_row_stride,
+ std::size_t dst_col_stride, const std::uint8_t* lhs_ptr,
+ const std::uint8_t* rhs_ptr, std::size_t start_depth,
+ std::size_t run_depth) const override {
+ ScopedProfilingLabel label("optimized kernel");
+ assert(dst_row_stride == 1);
+ std::int32_t run_depth_cells = run_depth / Format::kDepth;
+ /* Main loop */
+
+ // A 2x4 cell of Rhs is stored in 16bit in xmm1 .
+ // A 4x2 block Lhs is stored in 16bit in xmm0.
+ // A 4x4 block of accumulators is stored in 32bit in xmm4--xmm7.
+ //
+ // +-------+-------+-------+-------+
+ // |xmm1[0]|xmm1[2]|xmm1[4]|xmm1[6]|
+ // Rhs +-------+---------------+-------+
+ // |xmm1[1]|xmm1[3]|xmm1[5]|xmm1[7]|
+ // +-------+-------+-------+-------+
+ //
+ // | | | | |
+ //
+ // Lhs | | | | |
+ //
+ // +--+--+ - - - - +-------+-------+-------+-------+
+ // |xmm0 | | xmm4 | xmm5 | xmm6 | xmm7 |
+ // |xmm0 | (Iter1) | xmm4 | xmm5 | xmm6 | xmm7 |
+ // |xmm0 | | xmm4 | xmm5 | xmm6 | xmm7 |
+ // |xmm0 | | xmm4 | xmm5 | xmm6 | xmm7 |
+ // +--+--+ - - - - +-------+-------+-------+-------+
+ //
+ // Accumulator
+
+ asm volatile(
+
+ // set accumulators to zero.
+ "pxor %%xmm4 , %%xmm4 \n\t"
+ "pxor %%xmm5 , %%xmm5 \n\t"
+ "pxor %%xmm6 , %%xmm6 \n\t"
+ "pxor %%xmm7 , %%xmm7 \n\t"
+
+ "movl %[run_depth_cells], %%eax\n\t"
+ "subl $2, %%eax\n\t"
+ "js outerLoop1%=\n\t"
+
+ // Loop for K unrolled by 4
+ "outerLoop2%=:\n\t"
+
+ // K = 1,2
+ // RHS cell to xmm1
+ "pmovzxbw (%[rhs_ptr]), %%xmm1\n\t"
+
+ // LHS cell
+ "pmovzxbw 0x00(%[lhs_ptr]), %%xmm0\n\t"
+ "pshufd $0x00,%%xmm1,%%xmm2 \n\t"
+ "pshufd $0x55,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm2, %%xmm4 \n\t"
+ "paddd %%xmm3, %%xmm5 \n\t"
+
+ "prefetcht0 0x80(%[lhs_ptr]) \n\t"
+
+ "pshufd $0xaa,%%xmm1,%%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pshufd $0xff,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+
+ "prefetcht0 0x80(%[rhs_ptr]) \n\t"
+
+ // K = 3,4
+ // RHS cell to xmm1
+ "pmovzxbw 0x08(%[rhs_ptr]), %%xmm1\n\t"
+
+ "paddd %%xmm2, %%xmm6 \n\t"
+ "paddd %%xmm3, %%xmm7 \n\t"
+
+ // LHS cell
+ "pmovzxbw 0x08(%[lhs_ptr]), %%xmm0\n\t"
+ "pshufd $0x00,%%xmm1,%%xmm2 \n\t"
+ "pshufd $0x55,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm2, %%xmm4 \n\t"
+ "paddd %%xmm3, %%xmm5 \n\t"
+ "pshufd $0xaa,%%xmm1,%%xmm2 \n\t"
+ "pshufd $0xff,%%xmm1,%%xmm3 \n\t"
+
+ "addl $0x10, %[lhs_ptr] \n\t"
+ "addl $0x10, %[rhs_ptr] \n\t"
+
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm3, %%xmm7 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "paddd %%xmm2, %%xmm6 \n\t"
+
+ "subl $2, %[run_depth_cells]\n\t"
+ "ja outerLoop2%=\n\t"
+
+ "movl %[run_depth_cells], %%eax\n\t"
+ "decl %%eax\n\t"
+ "js finish%=\n\t"
+
+ // Loop for K unrolled by 2
+ "outerLoop1%=:\n\t"
+
+ // RHS cell to xmm1
+ "pmovzxbw (%[rhs_ptr]), %%xmm1\n\t"
+
+ // LHS cell
+ "pmovzxbw 0x00(%[lhs_ptr]), %%xmm0\n\t"
+ "pshufd $0x00,%%xmm1,%%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "paddd %%xmm2, %%xmm4 \n\t"
+ "pshufd $0x55,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm3, %%xmm5 \n\t"
+
+ "pshufd $0xaa,%%xmm1,%%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "paddd %%xmm2, %%xmm6 \n\t"
+ "pshufd $0xff,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm3, %%xmm7 \n\t"
+
+ "addl $0x08, %[lhs_ptr]\n\t"
+ "addl $0x08, %[rhs_ptr]\n\t"
+
+ "decl %[run_depth_cells]\n\t"
+ "jnz outerLoop1%=\n\t"
+
+ "finish%=:\n\t"
+
+ "movl %[dst_col_stride], %%eax\n\t"
+ "shll $2, %%eax\n\t"
+
+ "movl %[start_depth], %%ecx\n\t"
+ "test %%ecx, %%ecx\n\t"
+ "jz storeDst%=\n\t"
+
+ "leal (%%eax,%%eax,0x2), %%ecx\n\t"
+ "paddd 0x00(%[dst_ptr]) , %%xmm4 \n\t"
+ "paddd 0x00(%[dst_ptr], %%eax, 1) , %%xmm5 \n\t"
+ "paddd 0x00(%[dst_ptr], %%eax, 2) , %%xmm6 \n\t"
+ "paddd 0x00(%[dst_ptr], %%ecx, 1) , %%xmm7 \n\t"
+
+ "storeDst%=:\n\t"
+
+ "leal (%%eax,%%eax,0x2), %%ecx\n\t"
+ "movdqu %%xmm4 , 0x00(%[dst_ptr]) \n\t"
+ "movdqu %%xmm5 , 0x00(%[dst_ptr], %%eax, 1)\n\t"
+ "movdqu %%xmm6 , 0x00(%[dst_ptr], %%eax, 2)\n\t"
+ "movdqu %%xmm7 , 0x00(%[dst_ptr], %%ecx, 1)\n\t"
+
+ : // outputs
+ [lhs_ptr] "+r"(lhs_ptr), [rhs_ptr] "+r"(rhs_ptr),
+ [dst_ptr] "+r"(dst_ptr)
+ : // inputs
+ [start_depth] "g"(start_depth), [dst_col_stride] "g"(dst_col_stride),
+ [run_depth_cells] "g"(run_depth_cells)
+ : // clobbers
+ "cc", "memory", "%xmm0", "%xmm1", "%xmm3", "%xmm2", "%xmm4", "%xmm5",
+ "%xmm6", "%xmm7", "%eax", "%ecx");
+ }
+};
+#endif
+#ifdef GEMMLOWP_SSE4_64
+struct SSE4_64_Kernel12x4Depth2 : KernelBase {
+ typedef KernelFormat<
+ KernelSideFormat<CellFormat<4, 2, CellOrder::WidthMajor>, 3>,
+ KernelSideFormat<CellFormat<4, 2, CellOrder::WidthMajor>, 1> >
+ Format;
+
+ const char* Name() const override { return "SSE, 12x4, depth 2"; }
+
+ void Run(std::int32_t* dst_ptr, std::size_t dst_row_stride,
+ std::size_t dst_col_stride, const std::uint8_t* lhs_ptr,
+ const std::uint8_t* rhs_ptr, std::size_t start_depth,
+ std::size_t run_depth) const override {
+ ScopedProfilingLabel label("optimized kernel");
+ assert(dst_row_stride == 1);
+ const std::int64_t run_depth_cells = run_depth / Format::kDepth;
+ const std::int64_t dst_col_stride_q = dst_col_stride;
+
+ /* Main loop */
+
+ // A 2x4 cell of Rhs is stored in 16bit in xmm1 .
+ // A 12x2 block of 3 4x2 cells Lhs is stored in 16bit in xmm0, replaced
+ // every Iteration.
+ // A 12x4 block of accumulators is stored in 32bit in xmm4--xmm15.
+ //
+ // +-------+-------+-------+-------+
+ // |xmm1[0]|xmm1[2]|xmm1[4]|xmm1[6]|
+ // Rhs +-------+---------------+-------+
+ // |xmm1[1]|xmm1[3]|xmm1[5]|xmm1[7]|
+ // +-------+-------+-------+-------+
+ //
+ // | | | | |
+ //
+ // Lhs | | | | |
+ //
+ // +--+--+ - - - - +-------+-------+-------+-------+
+ // |xmm0 | | xmm4 | xmm5 | xmm6 | xmm7 |
+ // |xmm0 | (Iter1) | xmm4 | xmm5 | xmm6 | xmm7 |
+ // |xmm0 | | xmm4 | xmm5 | xmm6 | xmm7 |
+ // |xmm0 | | xmm4 | xmm5 | xmm6 | xmm7 |
+ // +--+--+ - - - - +-------+-------+-------+-------+
+ // |xmm0 | | xmm8 | xmm9 | xmm10 | xmm11 |
+ // |xmm0 | (Iter2) | xmm8 | xmm9 | xmm10 | xmm11 |
+ // |xmm0 | | xmm8 | xmm9 | xmm10 | xmm11 |
+ // |xmm0 | | xmm8 | xmm9 | xmm10 | xmm11 |
+ // +--+--+ - - - - +-------+-------+-------+-------+
+ // |xmm0 | | xmm12 | xmm13 | xmm14 | xmm15 |
+ // |xmm0 | (Iter3) | xmm12 | xmm13 | xmm14 | xmm15 |
+ // |xmm0 | | xmm12 | xmm13 | xmm14 | xmm15 |
+ // |xmm0 | | xmm12 | xmm13 | xmm14 | xmm15 |
+ // +--+--+ - - - - +-------+-------+-------+-------+
+ //
+ // Accumulator
+
+ asm volatile(
+
+ // Set registers for destination
+ "movq %[dst_col_stride_q], %%r12\n\t"
+ "shlq $2, %%r12\n\t"
+ "leaq (%%r12,%%r12,0x2), %%r13\n\t"
+
+ // Set accumulators to zero.
+ "pxor %%xmm4 , %%xmm4 \n\t"
+ "pxor %%xmm5 , %%xmm5 \n\t"
+ "pxor %%xmm6 , %%xmm6 \n\t"
+ "pxor %%xmm7 , %%xmm7 \n\t"
+ "pxor %%xmm8 , %%xmm8 \n\t"
+ "pxor %%xmm9 , %%xmm9 \n\t"
+ "pxor %%xmm10 , %%xmm10\n\t"
+ "pxor %%xmm11 , %%xmm11\n\t"
+ "pxor %%xmm12 , %%xmm12\n\t"
+ "pxor %%xmm13 , %%xmm13\n\t"
+ "pxor %%xmm14 , %%xmm14\n\t"
+ "pxor %%xmm15 , %%xmm15\n\t"
+
+ "movq %[run_depth_cells], %%r14\n\t"
+ "subq $2, %%r14\n\t"
+ "js outerLoop1%=\n\t"
+
+ // Loop for K unrolled by 4
+ "outerLoop2%=:\n\t"
+
+ // K = 1,2
+ // RHS cell to xmm1
+
+ "pmovzxbw (%[rhs_ptr]), %%xmm1\n\t"
+
+ // LHS cell
+ "pmovzxbw 0x00(%[lhs_ptr]), %%xmm0\n\t"
+ "pshufd $0x00,%%xmm1,%%xmm2 \n\t"
+ "pshufd $0x55,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm2, %%xmm4 \n\t"
+ "paddd %%xmm3, %%xmm5 \n\t"
+
+ "prefetcht0 0x80(%[lhs_ptr]) \n\t"
+
+ "pshufd $0xaa,%%xmm1,%%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pshufd $0xff,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+
+ // next LHS cell
+ "pmovzxbw 0x08(%[lhs_ptr]), %%xmm0\n\t"
+
+ "paddd %%xmm2, %%xmm6 \n\t"
+ "paddd %%xmm3, %%xmm7 \n\t"
+
+ "pshufd $0x00,%%xmm1,%%xmm2 \n\t"
+ "pshufd $0x55,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm2, %%xmm8 \n\t"
+ "paddd %%xmm3, %%xmm9 \n\t"
+
+ "prefetcht0 0x80(%[rhs_ptr]) \n\t"
+
+ "pshufd $0xaa,%%xmm1,%%xmm2 \n\t"
+ "pshufd $0xff,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm2, %%xmm10 \n\t"
+ "paddd %%xmm3, %%xmm11 \n\t"
+
+ // next LHS cell
+ "pmovzxbw 0x10(%[lhs_ptr]), %%xmm0\n\t"
+ "pshufd $0x00,%%xmm1,%%xmm2 \n\t"
+ "pshufd $0x55,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm2, %%xmm12 \n\t"
+ "paddd %%xmm3, %%xmm13 \n\t"
+
+ "pshufd $0xaa,%%xmm1,%%xmm2 \n\t"
+ "pshufd $0xff,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm2, %%xmm14 \n\t"
+ "paddd %%xmm3, %%xmm15 \n\t"
+
+ // K = 3,4
+ // RHS cell to xmm1
+ "pmovzxbw 0x08(%[rhs_ptr]), %%xmm1\n\t"
+
+ // LHS cell
+ "pmovzxbw 0x18(%[lhs_ptr]), %%xmm0\n\t"
+ "pshufd $0x00,%%xmm1,%%xmm2 \n\t"
+ "pshufd $0x55,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm2, %%xmm4 \n\t"
+ "paddd %%xmm3, %%xmm5 \n\t"
+
+ "pshufd $0xaa,%%xmm1,%%xmm2 \n\t"
+ "pshufd $0xff,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm2, %%xmm6 \n\t"
+ "paddd %%xmm3, %%xmm7 \n\t"
+
+ // next LHS cell
+ "pmovzxbw 0x20(%[lhs_ptr]), %%xmm0\n\t"
+ "pshufd $0x00,%%xmm1,%%xmm2 \n\t"
+ "pshufd $0x55,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm2, %%xmm8 \n\t"
+ "paddd %%xmm3, %%xmm9 \n\t"
+
+ "pshufd $0xaa,%%xmm1,%%xmm2 \n\t"
+ "pshufd $0xff,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm2, %%xmm10 \n\t"
+ "paddd %%xmm3, %%xmm11 \n\t"
+
+ // next LHS cell
+ "pmovzxbw 0x28(%[lhs_ptr]), %%xmm0\n\t"
+
+ "addq $0x30, %[lhs_ptr] \n\t"
+ "addq $0x10, %[rhs_ptr] \n\t"
+
+ "pshufd $0x00,%%xmm1,%%xmm2 \n\t"
+ "pshufd $0x55,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm2, %%xmm12 \n\t"
+ "paddd %%xmm3, %%xmm13 \n\t"
+
+ "pshufd $0xaa,%%xmm1,%%xmm2 \n\t"
+ "pshufd $0xff,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm2, %%xmm14 \n\t"
+ "paddd %%xmm3, %%xmm15 \n\t"
+
+ "subq $2, %[run_depth_cells]\n\t"
+ "ja outerLoop2%=\n\t"
+
+ "movq %[run_depth_cells], %%r14\n\t"
+ "decq %%r14\n\t"
+ "js finish%=\n\t"
+
+ // Loop for K unrolled by 2
+ "outerLoop1%=:\n\t"
+
+ // RHS cell to xmm1
+ "pmovzxbw (%[rhs_ptr]), %%xmm1\n\t"
+
+ // LHS cell
+ "pmovzxbw 0x00(%[lhs_ptr]), %%xmm0\n\t"
+ "pshufd $0x00,%%xmm1,%%xmm2 \n\t"
+ "pshufd $0x55,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm2, %%xmm4 \n\t"
+ "paddd %%xmm3, %%xmm5 \n\t"
+ "pshufd $0xaa,%%xmm1,%%xmm2 \n\t"
+ "pshufd $0xff,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm2, %%xmm6 \n\t"
+ "paddd %%xmm3, %%xmm7 \n\t"
+
+ // next LHS cell
+ "pmovzxbw 0x08(%[lhs_ptr]), %%xmm0\n\t"
+ "pshufd $0x00,%%xmm1,%%xmm2 \n\t"
+ "pshufd $0x55,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm2, %%xmm8 \n\t"
+ "paddd %%xmm3, %%xmm9 \n\t"
+ "pshufd $0xaa,%%xmm1,%%xmm2 \n\t"
+ "pshufd $0xff,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm2, %%xmm10 \n\t"
+ "paddd %%xmm3, %%xmm11 \n\t"
+
+ // next LHS cell
+ "pmovzxbw 0x10(%[lhs_ptr]), %%xmm0\n\t"
+
+ "addq $0x18, %[lhs_ptr] \n\t"
+ "addq $0x08, %[rhs_ptr] \n\t"
+
+ "pshufd $0x00,%%xmm1,%%xmm2 \n\t"
+ "pshufd $0x55,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm2, %%xmm12 \n\t"
+ "paddd %%xmm3, %%xmm13 \n\t"
+ "pshufd $0xaa,%%xmm1,%%xmm2 \n\t"
+ "pshufd $0xff,%%xmm1,%%xmm3 \n\t"
+ "pmaddwd %%xmm0, %%xmm2 \n\t"
+ "pmaddwd %%xmm0, %%xmm3 \n\t"
+ "paddd %%xmm2, %%xmm14 \n\t"
+ "paddd %%xmm3, %%xmm15 \n\t"
+
+ "decq %[run_depth_cells]\n\t"
+ "jnz outerLoop1%=\n\t"
+
+ "finish%=:\n\t"
+
+ "test %[start_depth], %[start_depth]\n\t"
+ "jz storeDst%=\n\t"
+
+ "paddd 0x00(%[dst_ptr]) , %%xmm4 \n\t"
+ "paddd 0x10(%[dst_ptr]) , %%xmm8 \n\t"
+ "paddd 0x20(%[dst_ptr]) , %%xmm12\n\t"
+ "paddd 0x00(%[dst_ptr], %%r12, 1) , %%xmm5 \n\t"
+ "paddd 0x10(%[dst_ptr], %%r12, 1) , %%xmm9 \n\t"
+ "paddd 0x20(%[dst_ptr], %%r12, 1) , %%xmm13\n\t"
+ "paddd 0x00(%[dst_ptr], %%r12, 2) , %%xmm6 \n\t"
+ "paddd 0x10(%[dst_ptr], %%r12, 2) , %%xmm10\n\t"
+ "paddd 0x20(%[dst_ptr], %%r12, 2) , %%xmm14\n\t"
+ "paddd 0x00(%[dst_ptr], %%r13, 1) , %%xmm7 \n\t"
+ "paddd 0x10(%[dst_ptr], %%r13, 1) , %%xmm11\n\t"
+ "paddd 0x20(%[dst_ptr], %%r13, 1) , %%xmm15\n\t"
+
+ "storeDst%=:\n\t"
+
+ "movdqu %%xmm4 , 0x00(%[dst_ptr]) \n\t"
+ "movdqu %%xmm8 , 0x10(%[dst_ptr]) \n\t"
+ "movdqu %%xmm12 , 0x20(%[dst_ptr]) \n\t"
+ "movdqu %%xmm5 , 0x00(%[dst_ptr], %%r12, 1)\n\t"
+ "movdqu %%xmm9 , 0x10(%[dst_ptr], %%r12, 1)\n\t"
+ "movdqu %%xmm13 , 0x20(%[dst_ptr], %%r12, 1)\n\t"
+ "movdqu %%xmm6 , 0x00(%[dst_ptr], %%r12, 2)\n\t"
+ "movdqu %%xmm10 , 0x10(%[dst_ptr], %%r12, 2)\n\t"
+ "movdqu %%xmm14 , 0x20(%[dst_ptr], %%r12, 2)\n\t"
+ "movdqu %%xmm7 , 0x00(%[dst_ptr], %%r13, 1)\n\t"
+ "movdqu %%xmm11 , 0x10(%[dst_ptr], %%r13, 1)\n\t"
+ "movdqu %%xmm15 , 0x20(%[dst_ptr], %%r13, 1)\n\t"
+
+ : // outputs
+ [lhs_ptr] "+r"(lhs_ptr), [rhs_ptr] "+r"(rhs_ptr),
+ [dst_ptr] "+r"(dst_ptr)
+ : // inputs
+ [start_depth] "r"(start_depth),
+ [dst_col_stride_q] "r"(dst_col_stride_q),
+ [run_depth_cells] "r"(run_depth_cells)
+ : // clobbers
+ "cc", "memory", "%xmm0", "%xmm1", "%xmm3", "%xmm2", "%xmm4", "%xmm5",
+ "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%r12", "%r13", "%r14",
+ "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15");
+ }
+};
+#endif
+
+} // namespace gemmlowp
+
+#endif // GEMMLOWP_INTERNAL_KERNEL_SSE_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/multi_thread_gemm.h b/runtimes/nn/depend/external/gemmlowp/internal/multi_thread_gemm.h
new file mode 100644
index 000000000..0234b26e9
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/multi_thread_gemm.h
@@ -0,0 +1,701 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// multi_thread_gemm.h: Multi-threaded GEMM entry point.
+// Readers note: To understand this file, it is useful to first
+// read and understand the much simpler single_thread_gemm.h.
+
+#ifndef GEMMLOWP_INTERNAL_MULTI_THREAD_GEMM_H_
+#define GEMMLOWP_INTERNAL_MULTI_THREAD_GEMM_H_
+
+#include <pthread.h>
+#include <unistd.h>
+#include <vector>
+
+#include "single_thread_gemm.h"
+
+namespace gemmlowp {
+
+// On X86 and ARM platforms we enable a busy-wait spinlock before waiting on a
+// pthread conditional variable. In order to implement that correctly we need
+// to put some explicit memory load/store barriers.
+
+#if defined(GEMMLOWP_ALLOW_INLINE_ASM) && !defined(GEMMLOWP_NO_BUSYWAIT) && \
+ (defined(GEMMLOWP_ARM) || defined(GEMMLOWP_X86))
+
+#define GEMMLOWP_USE_BUSYWAIT
+
+const int kMaxBusyWaitNOPs = 32 * 1000 * 1000;
+
+#define GEMMLOWP_NOP "nop\n"
+
+#define GEMMLOWP_STRING_CONCAT_4(X) X X X X
+#define GEMMLOWP_NOP4 GEMMLOWP_STRING_CONCAT_4(GEMMLOWP_NOP)
+#define GEMMLOWP_NOP16 GEMMLOWP_STRING_CONCAT_4(GEMMLOWP_NOP4)
+#define GEMMLOWP_NOP64 GEMMLOWP_STRING_CONCAT_4(GEMMLOWP_NOP16)
+
+inline int Do256NOPs() {
+ asm volatile(GEMMLOWP_NOP64);
+ return 64;
+}
+
+#undef GEMMLOWP_STRING_CONCAT_4
+#undef GEMMLOWP_NOP256
+#undef GEMMLOWP_NOP64
+#undef GEMMLOWP_NOP16
+#undef GEMMLOWP_NOP4
+#undef GEMMLOWP_NOP
+
+inline void WriteBarrier() {
+#ifdef GEMMLOWP_ARM_32
+ MemoryBarrier();
+#elif defined(GEMMLOWP_ARM_64)
+ asm volatile("dmb ishst" ::: "memory");
+#elif defined(GEMMLOWP_X86)
+ asm volatile("sfence" ::: "memory");
+#else
+#error "Unsupported architecture for WriteBarrier."
+#endif
+}
+
+inline void ReadBarrier() {
+#ifdef GEMMLOWP_ARM_32
+ MemoryBarrier();
+#elif defined(GEMMLOWP_ARM_64)
+ asm volatile("dmb ishld" ::: "memory");
+#elif defined(GEMMLOWP_X86)
+ asm volatile("lfence" ::: "memory");
+#else
+#error "Unsupported architecture for ReadBarrier."
+#endif
+}
+
+#endif
+
+// Waits until *var != initial_value.
+//
+// Returns the new value of *var. The guarantee here is that
+// the return value is different from initial_value, and that that
+// new value has been taken by *var at some point during the
+// execution of this function. There is no guarantee that this is
+// still the value of *var when this function returns, since *var is
+// not assumed to be guarded by any lock.
+//
+// First does some busy-waiting for a fixed number of no-op cycles,
+// then falls back to passive waiting for the given condvar, guarded
+// by the given mutex.
+//
+// The idea of doing some initial busy-waiting is to help get
+// better and more consistent multithreading benefits for small GEMM sizes.
+// Busy-waiting help ensuring that if we need to wake up soon after having
+// started waiting, then we can wake up quickly (as opposed to, say,
+// having to wait to be scheduled again by the OS). On the other hand,
+// we must still eventually revert to passive waiting for longer waits
+// (e.g. worker threads having finished a GEMM and waiting until the next GEMM)
+// so as to avoid permanently spinning.
+//
+template <typename T>
+T WaitForVariableChange(volatile T* var, T initial_value, pthread_cond_t* cond,
+ pthread_mutex_t* mutex) {
+#ifdef GEMMLOWP_USE_BUSYWAIT
+ // If we are on a platform that supports it, spin for some time.
+ {
+ int nops = 0;
+ // First, trivial case where the variable already changed value.
+ T new_value = *var;
+ if (new_value != initial_value) {
+ ReadBarrier();
+ return new_value;
+ }
+ // Then try busy-waiting.
+ while (nops < kMaxBusyWaitNOPs) {
+ nops += Do256NOPs();
+ new_value = *var;
+ if (new_value != initial_value) {
+ ReadBarrier();
+ return new_value;
+ }
+ }
+ }
+#endif
+
+ // Finally, do real passive waiting.
+ pthread_mutex_lock(mutex);
+ T new_value = *var;
+ if (new_value == initial_value) {
+ pthread_cond_wait(cond, mutex);
+ new_value = *var;
+ assert(new_value != initial_value);
+ }
+ pthread_mutex_unlock(mutex);
+ return new_value;
+}
+
+// A BlockingCounter lets one thread to wait for N events to occur.
+// This is how the master thread waits for all the worker threads
+// to have finished working.
+class BlockingCounter {
+ public:
+ BlockingCounter()
+ : cond_(PTHREAD_COND_INITIALIZER),
+ mutex_(PTHREAD_MUTEX_INITIALIZER),
+ count_(0),
+ initial_count_(0) {}
+
+ // Sets/resets the counter; initial_count is the number of
+ // decrementing events that the Wait() call will be waiting for.
+ void Reset(std::size_t initial_count) {
+ pthread_mutex_lock(&mutex_);
+ assert(count_ == 0);
+ initial_count_ = initial_count;
+ count_ = initial_count_;
+ pthread_mutex_unlock(&mutex_);
+ }
+
+ // Decrements the counter; if the counter hits zero, signals
+ // the thread that was waiting for that, and returns true.
+ // Otherwise (if the decremented count is still nonzero),
+ // returns false.
+ bool DecrementCount() {
+ pthread_mutex_lock(&mutex_);
+ assert(count_ > 0);
+ count_--;
+#ifdef GEMMLOWP_USE_BUSYWAIT
+ WriteBarrier();
+#endif
+ if (count_ == 0) {
+ pthread_cond_signal(&cond_);
+ }
+ bool retval = count_ == 0;
+ pthread_mutex_unlock(&mutex_);
+ return retval;
+ }
+
+ // Waits for the N other threads (N having been set by Reset())
+ // to hit the BlockingCounter.
+ void Wait() {
+ ScopedProfilingLabel label("BlockingCounter::Wait");
+ while (count_) {
+ MemoryBarrier();
+ const std::size_t count_value = count_;
+ if (count_value) {
+ WaitForVariableChange(&count_, count_value, &cond_, &mutex_);
+ }
+ }
+ }
+
+ private:
+ pthread_cond_t cond_;
+ pthread_mutex_t mutex_;
+ std::size_t count_;
+ std::size_t initial_count_;
+};
+
+// A workload for a worker.
+struct Task {
+ Task() : local_allocator(nullptr) {}
+ virtual ~Task() {}
+ virtual void Run() = 0;
+ Allocator* local_allocator;
+};
+
+// A worker thread.
+class Worker {
+ public:
+ enum class State {
+ ThreadStartup, // The initial state before the thread main loop runs.
+ Ready, // Is not working, has not yet received new work to do.
+ HasWork, // Has work to do.
+ ExitAsSoonAsPossible // Should exit at earliest convenience.
+ };
+
+ explicit Worker(BlockingCounter* counter_to_decrement_when_ready)
+ : task_(nullptr),
+ state_cond_(PTHREAD_COND_INITIALIZER),
+ state_mutex_(PTHREAD_MUTEX_INITIALIZER),
+ state_(State::ThreadStartup),
+ counter_to_decrement_when_ready_(counter_to_decrement_when_ready) {
+ pthread_create(&thread_, nullptr, ThreadFunc, this);
+ }
+
+ ~Worker() {
+ ChangeState(State::ExitAsSoonAsPossible);
+ pthread_join(thread_, nullptr);
+ }
+
+ // Changes State; may be called from either the worker thread
+ // or the master thread; however, not all state transitions are legal,
+ // which is guarded by assertions.
+ void ChangeState(State new_state) {
+ ScopedProfilingLabel label("Worker::ChangeState");
+ pthread_mutex_lock(&state_mutex_);
+ assert(new_state != state_);
+ switch (state_) {
+ case State::ThreadStartup:
+ assert(new_state == State::Ready);
+ break;
+ case State::Ready:
+ assert(new_state == State::HasWork ||
+ new_state == State::ExitAsSoonAsPossible);
+ break;
+ case State::HasWork:
+ assert(new_state == State::Ready ||
+ new_state == State::ExitAsSoonAsPossible);
+ break;
+ default:
+ abort();
+ }
+ state_ = new_state;
+ pthread_cond_signal(&state_cond_);
+ if (state_ == State::Ready) {
+ counter_to_decrement_when_ready_->DecrementCount();
+ }
+ pthread_mutex_unlock(&state_mutex_);
+ }
+
+ // Thread entry point.
+ void ThreadFunc() {
+ ScopedProfilingLabel label("Worker::ThreadFunc");
+ RegisterCurrentThreadForProfiling();
+
+ ChangeState(State::Ready);
+
+ // Thread main loop
+ while (true) {
+ // Get a state to act on
+ // In the 'Ready' state, we have nothing to do but to wait until
+ // we switch to another state.
+ State state_to_act_upon = WaitForVariableChange(
+ &state_, State::Ready, &state_cond_, &state_mutex_);
+
+ // We now have a state to act on, so act.
+ switch (state_to_act_upon) {
+ case State::HasWork:
+ // Got work to do! So do it, and then revert to 'Ready' state.
+ assert(task_);
+ task_->Run();
+ task_ = nullptr;
+ ChangeState(State::Ready);
+ break;
+ case State::ExitAsSoonAsPossible:
+ return;
+ default:
+ abort();
+ }
+ }
+ }
+
+ static void* ThreadFunc(void* arg) {
+ static_cast<Worker*>(arg)->ThreadFunc();
+ return nullptr;
+ }
+
+ // Called by the master thead to give this worker work to do.
+ // It is only legal to call this if the worker
+ void StartWork(Task* task) {
+ assert(!task_);
+ task->local_allocator = &local_allocator_;
+ task_ = task;
+#ifdef GEMMLOWP_USE_BUSYWAIT
+ WriteBarrier();
+#endif
+ assert(state_ == State::Ready);
+ ChangeState(State::HasWork);
+ }
+
+ private:
+ // The underlying thread.
+ pthread_t thread_;
+
+ // The task to be worked on.
+ Task* task_;
+
+ // The condition variable and mutex guarding state changes.
+ pthread_cond_t state_cond_;
+ pthread_mutex_t state_mutex_;
+
+ // The state enum tells if we're currently working, waiting for work, etc.
+ State state_;
+
+ // Each thread had a local allocator so they can allocate temporary
+ // buffers without blocking each other.
+ Allocator local_allocator_;
+
+ // pointer to the master's thread BlockingCounter object, to notify the
+ // master thread of when this worker switches to the 'Ready' state.
+ BlockingCounter* const counter_to_decrement_when_ready_;
+};
+
+// A very simple pool of workers, that only allows the very
+// specific parallelization pattern that we use here:
+// a fixed number of workers can be given work, and one then
+// waits for all of them to finish.
+//
+// See MultiThreadGemmContextBase for how other WorkersPool implementations can
+// be used. Note that in those implementations, StartWorker can be free to
+// ignore the <index> value; that is, the caller of WorkersPool does not rely on
+// <index> to order tasks with equal <index>.
+class WorkersPool {
+ public:
+ WorkersPool() {}
+
+ ~WorkersPool() {
+ for (auto w : workers_) {
+ delete w;
+ }
+ }
+
+ void Execute(const std::vector<Task*>& tasks) {
+ assert(tasks.size() >= 1);
+ // One of the tasks will be run on the current thread.
+ int workers_count = tasks.size() - 1;
+ CreateWorkers(workers_count);
+ assert(workers_count <= workers_.size());
+ counter_to_decrement_when_ready_.Reset(workers_count);
+ int n = 0;
+ std::for_each(tasks.begin(), --tasks.end(), [this, &n](Task *task) {
+ workers_[n++]->StartWork(task);
+ });
+ // Execute the remaining workload immediately on the current thread.
+ Task* task = tasks.back();
+ task->local_allocator = &main_thread_task_allocator_;
+ task->Run();
+ // Wait for the workers submitted above to finish.
+ counter_to_decrement_when_ready_.Wait();
+ // Cleanup tasks (best to do this from the same thread that allocated
+ // the memory).
+ std::for_each(tasks.begin(), tasks.end(), [](Task *task) {
+ delete task;
+ });
+ }
+
+ private:
+ // Ensures that the pool has at least the given count of workers.
+ // If any new worker has to be created, this function waits for it to
+ // be ready.
+ void CreateWorkers(std::size_t workers_count) {
+ if (workers_.size() >= workers_count) {
+ return;
+ }
+ counter_to_decrement_when_ready_.Reset(workers_count - workers_.size());
+ while (workers_.size() < workers_count) {
+ workers_.push_back(new Worker(&counter_to_decrement_when_ready_));
+ }
+ counter_to_decrement_when_ready_.Wait();
+ }
+
+ // copy construction disallowed
+ WorkersPool(const WorkersPool&) = delete;
+
+ // The workers in this pool. They are owned by the pool:
+ // the pool creates workers and destroys them in its destructor.
+ std::vector<Worker*> workers_;
+
+ // The BlockingCounter used to wait for the workers.
+ BlockingCounter counter_to_decrement_when_ready_;
+
+ // For N-threaded operations, we will use only N-1 worker threads
+ // while the last task will be run directly on the main thread.
+ // It will then use this main_thread_task_allocator_; having a
+ // dedicated allocator for that (separate from the base allocator_)
+ // allows to use the same code for all tasks regardless of which
+ // thread they run on.
+ Allocator main_thread_task_allocator_;
+};
+
+// The task we use to implement a multi-threaded Gemm: a block of the
+// RHS has been packed by the master thread; each worker thread
+// then has to pack a block of the LHS and accumulate the Gemm of these
+// packed LHS and RHS blocks.
+template <typename KernelFormat, typename InputScalar, typename OutputScalar,
+ typename BitDepthParams, MapOrder LhsOrder, MapOrder RhsOrder,
+ MapOrder ResultOrder, typename LhsOffset, typename RhsOffset,
+ typename OutputPipelineType, typename GemmContextType>
+struct GemmWithPackedRhsTask : Task {
+ typedef PackedSideBlock<typename KernelFormat::Lhs> PackedLhs;
+ typedef PackedSideBlock<typename KernelFormat::Rhs> PackedRhs;
+ GemmWithPackedRhsTask(GemmContextType* _context,
+ const KernelBase& _kernel,
+ const MatrixMap<const InputScalar, LhsOrder>& _lhs,
+ const PackedRhs& _packed_rhs,
+ MatrixMap<OutputScalar, ResultOrder>* _result,
+ const MatrixBlockBounds& _result_block,
+ const LhsOffset& _lhs_offset,
+ const RhsOffset& _rhs_offset,
+ const OutputPipelineType& _output_pipeline)
+ : context(_context),
+ kernel(_kernel),
+ lhs(_lhs),
+ packed_rhs(_packed_rhs),
+ result(*_result),
+ result_block(_result_block),
+ lhs_offset(_lhs_offset),
+ rhs_offset(_rhs_offset),
+ output_pipeline(_output_pipeline) {}
+
+ void Run() override {
+ ScopedProfilingLabel label("GemmWithPackedRhsTask");
+
+ const int rows = result_block.rows;
+ const int cols = result_block.cols;
+ const int depth = lhs.cols();
+
+ BlockParams block_params;
+ block_params.Init<KernelFormat>(rows, cols, depth, 1,
+ context->l1_bytes_to_use(),
+ context->l2_bytes_to_use(),
+ context->l2_rhs_factor());
+
+ PackedLhs packed_lhs(Side::Lhs, local_allocator, block_params);
+
+ PackedResult packed_result(local_allocator, block_params);
+
+ local_allocator->Commit();
+
+ for (int c = 0; c < cols; c += block_params.l2_cols) {
+ int cs = std::min(block_params.l2_cols, cols - c);
+
+ for (int r = 0; r < rows; r += block_params.l2_rows) {
+ int rs = std::min(block_params.l2_rows, rows - r);
+
+ PackLhs(&packed_lhs, lhs.block(r, 0, rs, depth));
+
+ Compute(kernel, block_params, &packed_result, packed_lhs, packed_rhs,
+ depth);
+
+ auto curr_result_block = MatrixBlockBounds(
+ result_block.start_row + r, result_block.start_col + c, rs, cs);
+ UnpackResult<KernelFormat>(
+ &result, curr_result_block, packed_result, depth,
+ packed_lhs.sums_of_each_slice(), packed_rhs.sums_of_each_slice(),
+ lhs_offset.block(curr_result_block.start_row, rs),
+ rhs_offset.block(curr_result_block.start_col, cs), output_pipeline);
+ }
+ }
+
+ local_allocator->Decommit();
+ }
+
+ const GemmContextType* context;
+ const KernelBase& kernel;
+ const MatrixMap<const InputScalar, LhsOrder> lhs;
+ const PackedRhs packed_rhs;
+ MatrixMap<OutputScalar, ResultOrder> result;
+ const MatrixBlockBounds result_block;
+ const LhsOffset& lhs_offset;
+ const RhsOffset& rhs_offset;
+ const OutputPipelineType& output_pipeline;
+};
+
+// This base class for multi-threading allows subclasses to implement their own
+// workers_pool() method. See MultiThreadGemmContext below for an example;
+// any other implementation of workers_pool() must return an object with the
+// same public methods as WorkersPool.
+class MultiThreadGemmContextBase : public SingleThreadGemmContext {
+ public:
+ void set_max_num_threads(int n) { max_num_threads_ = n; }
+
+ int max_num_threads() const { return max_num_threads_; }
+
+ protected:
+ // The maximum number of worker threads to use (including
+ // the master thread).
+ // The default value 1 means single-threading. That is the default
+ // because gemmlowp's primary target is mobile hardware, where thermal
+ // constraints usually mean that it may not be realistic to use more
+ // than 1 CPU core even if multiple cores are present.
+ // The special value 0 means try to detect the number of hardware threads.
+ // Note: this assumes that all CPU cores are equivalent. That assumption
+ // is defeated on big.LITTLE ARM devices, where we have no API to query
+ // the number of big cores (which is typically what we would want to use,
+ // leaving aside above-mentioned thermal issues). That is the other reason
+ // why the best compromise here is to let max_num_threads_ default to 1,
+ // so users who want multi-threading have to make the decision of how many
+ // threads to use by themselves.
+ int max_num_threads_ = 1;
+};
+
+class MultiThreadGemmContext : public MultiThreadGemmContextBase {
+ public:
+ WorkersPool* workers_pool() { return &workers_pool_; }
+
+ private:
+ // The workers pool used by MultiThreadGemm. Making
+ // this part of the context allows it to be persistent,
+ // avoiding recreating threads on every Gemm.
+ WorkersPool workers_pool_;
+};
+
+// Needed by chrome native builds
+#ifndef _SC_NPROCESSORS_CONF
+#define _SC_NPROCESSORS_CONF _SC_NPROCESSORS_ONLN
+#endif
+
+// Determines how many threads should be used for a given Gemm
+// operation.
+template <int KernelRows>
+inline int HowManyThreads(int max_num_threads, int rows, int cols, int depth) {
+ // Early-exit in the default case where multi-threading is disabled.
+ if (max_num_threads == 1) {
+ return 1;
+ }
+
+ // Determine the maximum number of threads.
+ int max_count = max_num_threads;
+ // The special value 0 means try to determine the total number of cores.
+ if (max_count == 0) {
+ // No user-set maximum number of threads, so we need to
+ // do some hardware detection.
+ // This is expensive to query so we do it only once.
+ // Too bad for dynamicness. Also, we dont use the c++11 standard getter
+ // because Google's coding style currently bans #include <thread_>.
+ static const int hardware_threads_count =
+ static_cast<int>(sysconf(_SC_NPROCESSORS_CONF));
+
+ max_count = hardware_threads_count;
+ }
+
+ // Basic calculation: take into account max pool size, and
+ // how many rows we have to feed our kernel.
+ // The motivation for an absolute minimum number of rows per thread,
+ // potentially higher than KernelRows, is that very thin thread workload
+ // currently defeat assumptions of the AddMod generator, resulting
+ // in substantial bias in TestWithRealData on 24 threads.
+ // Ideally, the AddMod generator should be aware of global (r,c) coordinates
+ // so as to be independent of the number of threads.
+ static const int AbsoluteMinRowsPerThread = 16;
+ static const int MinRowsPerThread = KernelRows > AbsoluteMinRowsPerThread
+ ? KernelRows
+ : AbsoluteMinRowsPerThread;
+ int thread_count = std::min(max_count, CeilQuotient(rows, MinRowsPerThread));
+
+ // At this point for small products we already have thread_count==1 so
+ // we can avoid doing more work; otherwise, we still want to check
+ // that the cubic size (rows*cols*depth) is big enough to keep
+ // workers_ busy.
+ if (thread_count > 1) {
+ // Empirically determined value.
+ static const std::uint64_t min_cubic_size_per_thread = 64 * 1024;
+
+ // We can only multiply two out of three sizes without risking overflow
+ const std::uint64_t cubic_size =
+ std::uint64_t(rows) * std::uint64_t(cols) * std::uint64_t(depth);
+
+ thread_count =
+ std::min(thread_count, int(cubic_size / min_cubic_size_per_thread));
+
+ if (thread_count < 1) {
+ thread_count = 1;
+ }
+ }
+
+ assert(thread_count > 0 && thread_count <= max_count);
+ return thread_count;
+}
+
+// The main multi-threaded Gemm function.
+// To understand it, first read the code of SingleThreadGemm().
+// The parallelization scheme used here is to have this master function
+// pack a block of RHS and then start worker threads to pack a block of LHS
+// each, and accumulate the corresponding products.
+template <typename KernelFormat, typename InputScalar, typename OutputScalar,
+ typename BitDepthParams, MapOrder LhsOrder, MapOrder RhsOrder,
+ MapOrder ResultOrder, typename LhsOffset, typename RhsOffset,
+ typename OutputPipelineType, typename GemmContextType>
+void MultiThreadGemm(GemmContextType* context, const KernelBase& kernel,
+ const MatrixMap<const InputScalar, LhsOrder>& lhs,
+ const MatrixMap<const InputScalar, RhsOrder>& rhs,
+ MatrixMap<OutputScalar, ResultOrder>* result,
+ const LhsOffset& lhs_offset, const RhsOffset& rhs_offset,
+ const OutputPipelineType& output_pipeline) {
+ ScopedProfilingLabel label("gemmlowp::MultiThreadGemm");
+
+ assert(lhs.cols() == rhs.rows());
+
+ int rows = result->rows();
+ int cols = result->cols();
+ int depth = lhs.cols();
+
+ // zero sizes should have been caught earlier and early-returned.
+ assert(rows > 0);
+ assert(cols > 0);
+ assert(depth > 0);
+
+ // The case of rows<cols should have been caught earlier and transposed.
+ assert(rows >= cols);
+
+ const int thread_count = HowManyThreads<KernelFormat::kRows>(
+ context->max_num_threads(), rows, cols, depth);
+ if (thread_count == 1) {
+ return SingleThreadGemm<KernelFormat, InputScalar, OutputScalar,
+ BitDepthParams>(context, kernel, lhs, rhs, result,
+ lhs_offset, rhs_offset,
+ output_pipeline);
+ }
+ assert(thread_count > 1);
+
+ // Simple 1:1 mapping of tasks to physical cores, which is very important
+ // to getting good multithreaded performance, specially for not-very-large
+ // GEMMs, and especially on Android.
+ const int task_count = thread_count;
+
+ Allocator* allocator = context->allocator();
+ auto* workers_pool = context->workers_pool();
+
+ BlockParams block_params;
+ block_params.Init<KernelFormat>(rows, cols, depth, task_count,
+ context->l1_bytes_to_use(),
+ context->l2_bytes_to_use(),
+ context->l2_rhs_factor());
+
+ PackedSideBlock<typename KernelFormat::Rhs> packed_rhs(Side::Rhs, allocator,
+ block_params);
+ allocator->Commit();
+
+ // We loop over large blocks of the RHS.
+ for (int c = 0; c < cols; c += block_params.l2_cols) {
+ int cs = std::min(block_params.l2_cols, cols - c);
+
+ // Pack a large block of the RHS.
+ PackRhs(&packed_rhs, rhs.block(0, c, depth, cs));
+
+ // Give work to each worker.
+ std::vector<Task*> tasks;
+ int next_start_row = 0;
+ for (int n = 0; n < task_count; ++n) {
+ int start_row = next_start_row;
+ next_start_row = std::min(rows, RoundUp<KernelFormat::kRows>(
+ rows * (n + 1) / task_count));
+
+ int block_rows = next_start_row - start_row;
+ auto lhs_block = lhs.block(start_row, 0, block_rows, depth);
+ typedef GemmWithPackedRhsTask<
+ KernelFormat, InputScalar, OutputScalar, BitDepthParams, LhsOrder,
+ RhsOrder, ResultOrder, LhsOffset, RhsOffset, OutputPipelineType,
+ GemmContextType>
+ TaskType;
+ tasks.push_back(new TaskType(context, kernel, lhs_block, packed_rhs, result,
+ MatrixBlockBounds(start_row, c, block_rows, cs),
+ lhs_offset, rhs_offset, output_pipeline));
+ }
+ // Execute the work on the workers (and partially on this thread).
+ workers_pool->Execute(tasks);
+ }
+
+ allocator->Decommit();
+}
+
+} // namespace gemmlowp
+
+#endif // GEMMLOWP_INTERNAL_MULTI_THREAD_GEMM_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/output.h b/runtimes/nn/depend/external/gemmlowp/internal/output.h
new file mode 100644
index 000000000..8ccb8ee1f
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/output.h
@@ -0,0 +1,435 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// output.h: processing the 32-bit accumulators output by the unpack
+// stage, obtaining the final result matrix entries and storing them into
+// the destination matrix.
+
+#ifndef GEMMLOWP_INTERNAL_OUTPUT_H_
+#define GEMMLOWP_INTERNAL_OUTPUT_H_
+
+#include <cmath>
+#include <tuple>
+#include <type_traits>
+
+#include "../fixedpoint/fixedpoint.h"
+#include "../public/output_stages.h"
+#include "simd_wrappers.h"
+
+namespace gemmlowp {
+
+template <typename OutputStage, typename InputBufferType>
+struct OutputStageEvalBufferImpl {
+ // This generic template body should never be hit.
+ static_assert(
+ std::is_same<InputBufferType, void>::value,
+ "Unimplemented: missing implementation of this output pipeline stage "
+ "for this data type. This would happen if some architecture-specific "
+ "SIMD back-end (output_$arch.h) were incomplete.");
+};
+
+template <typename OutputStage, typename InputType>
+struct OutputStageEvalImpl {
+ static constexpr int kRows = InputType::kRows;
+ static constexpr int kCols = InputType::kCols;
+ using InputBufferType = typename InputType::BufferType;
+ using BufferEvalImplType =
+ OutputStageEvalBufferImpl<OutputStage, InputBufferType>;
+ using OutputBufferType = typename BufferEvalImplType::OutputType;
+ using OutputScalarType = typename OutputBufferType::ScalarType;
+ using OutputType = RegisterBlock<OutputScalarType, kRows, kCols>;
+
+ OutputStageEvalImpl(const OutputStage& s) : buffer_eval_impl(s) {}
+
+ OutputType Eval(InputType input, int, int) const {
+ OutputType output;
+ output.buf = buffer_eval_impl.Eval(input.buf);
+ return output;
+ }
+
+ const BufferEvalImplType buffer_eval_impl;
+};
+
+template <int Size>
+struct OutputStageEvalBufferImpl<OutputStageQuantizeDownInt32ToUint8Scale,
+ RegisterBuffer<std::int32_t, Size>> {
+ using InputType = RegisterBuffer<std::int32_t, Size>;
+ using OutputType = RegisterBuffer<std::int32_t, Size>;
+
+ typedef OutputStageQuantizeDownInt32ToUint8Scale OutputStage;
+
+ OutputStageEvalBufferImpl(const OutputStage& s) : output_stage(s) {}
+
+ OutputType Eval(InputType input) const {
+ const int result_shift = output_stage.result_shift;
+ const std::int32_t result_mult_int = output_stage.result_mult_int;
+ using RegisterType = typename InputType::RegisterType;
+ const RegisterType result_offset =
+ Dup<RegisterType>(output_stage.result_offset);
+ OutputType output;
+ for (int i = 0; i < InputType::kRegisterCount; i++) {
+ output.reg[i] = RoundingDivideByPOT(
+ Mul(Add(input.reg[i], result_offset), result_mult_int), result_shift);
+ }
+ return output;
+ }
+
+ const OutputStage& output_stage;
+};
+
+template <int Rows, int Cols, VectorShape Shape>
+struct OutputStageEvalImpl<OutputStageQuantizeDownInt32ToUint8ScalePC<Shape>,
+ RegisterBlock<std::int32_t, Rows, Cols>> {
+ typedef RegisterBlock<std::int32_t, Rows, Cols> InputType;
+ typedef RegisterBlock<std::int32_t, Rows, Cols> OutputType;
+ typedef OutputStageQuantizeDownInt32ToUint8ScalePC<Shape> OutputStage;
+
+ OutputStageEvalImpl(const OutputStage& s) : output_stage(s) {}
+
+ OutputType Eval(InputType input, int row, int col) const {
+ OutputType output;
+ const int result_shift = output_stage.result_shift;
+ const int pos = Shape == VectorShape::Col ? row : col;
+ const auto result_mult_int =
+ LoadForBroadcasting<InputType>(output_stage.result_mult_int, pos);
+ const auto result_offset =
+ LoadForBroadcasting<InputType>(output_stage.result_offset, pos);
+ const auto dividend = BroadcastMul<InputType>(
+ BroadcastAdd<InputType>(input, result_offset), result_mult_int);
+ for (int i = 0; i < InputType::kRegisterCount; i++) {
+ output.buf.reg[i] =
+ RoundingDivideByPOT(dividend.buf.reg[i], result_shift);
+ }
+ return output;
+ }
+
+ const OutputStage& output_stage;
+};
+
+template <int Size>
+struct OutputStageEvalBufferImpl<
+ OutputStageQuantizeDownInt32ToUint8ScaleByFixedPoint,
+ RegisterBuffer<std::int32_t, Size>> {
+ typedef RegisterBuffer<std::int32_t, Size> InputType;
+ typedef RegisterBuffer<std::int32_t, Size> OutputType;
+
+ typedef OutputStageQuantizeDownInt32ToUint8ScaleByFixedPoint OutputStage;
+
+ OutputStageEvalBufferImpl(const OutputStage& s) : output_stage(s) {}
+
+ OutputType Eval(InputType input) const {
+ OutputType output;
+ using RegisterType = typename InputType::RegisterType;
+ const RegisterType result_offset_after_shift =
+ Dup<RegisterType>(output_stage.result_offset_after_shift);
+ for (int i = 0; i < InputType::kRegisterCount; i++) {
+ const RegisterType mulhigh_val = SaturatingRoundingDoublingHighMul(
+ input.reg[i], output_stage.result_fixedpoint_multiplier);
+ output.reg[i] =
+ Add(RoundingDivideByPOT(mulhigh_val, output_stage.result_shift),
+ result_offset_after_shift);
+ }
+ return output;
+ }
+
+ const OutputStage& output_stage;
+};
+
+// Implementation of OutputStageSaturatingCastToUint8 for scalar data
+template <int Size>
+struct OutputStageEvalBufferImpl<OutputStageSaturatingCastToUint8,
+ RegisterBuffer<std::int32_t, Size>> {
+ typedef RegisterBuffer<std::int32_t, Size> InputType;
+ typedef RegisterBuffer<std::uint8_t, Size> OutputType;
+ static_assert(InputType::kRegisterLanes == 1,
+ "This path is only for scalar values");
+
+ typedef OutputStageSaturatingCastToUint8 OutputStage;
+
+ OutputStageEvalBufferImpl(const OutputStage&) {}
+
+ OutputType Eval(InputType input) const {
+ OutputType output;
+ for (int i = 0; i < InputType::kRegisterCount; i++) {
+ std::int32_t data = input.reg[i];
+ output.reg[i] = data > 255 ? 255 : data < 0 ? 0 : data;
+ }
+ return output;
+ }
+};
+
+template <int Rows, int Cols, typename VectorType>
+struct OutputStageEvalImpl<OutputStageBiasAddition<VectorType>,
+ RegisterBlock<std::int32_t, Rows, Cols>> {
+ typedef RegisterBlock<std::int32_t, Rows, Cols> InputType;
+ typedef RegisterBlock<std::int32_t, Rows, Cols> OutputType;
+ typedef OutputStageBiasAddition<VectorType> OutputStage;
+
+ OutputStageEvalImpl(const OutputStage& s) : output_stage(s) {}
+
+ OutputType Eval(InputType input, int row, int col) const {
+ const int pos = VectorType::kShape == VectorShape::Row ? col : row;
+ return BroadcastAdd<InputType>(
+ input, LoadForBroadcasting<InputType>(output_stage.bias_vector, pos));
+ }
+
+ const OutputStage& output_stage;
+};
+
+template <int Size>
+struct OutputStageEvalBufferImpl<OutputStageClamp,
+ RegisterBuffer<std::int32_t, Size>> {
+ typedef RegisterBuffer<std::int32_t, Size> InputType;
+ typedef RegisterBuffer<std::int32_t, Size> OutputType;
+
+ typedef OutputStageClamp OutputStage;
+
+ OutputStageEvalBufferImpl(const OutputStage& s) : output_stage(s) {}
+
+ OutputType Eval(InputType input) const {
+ using RegisterType = typename InputType::RegisterType;
+ const RegisterType min = Dup<RegisterType>(output_stage.min);
+ const RegisterType max = Dup<RegisterType>(output_stage.max);
+ OutputType output;
+ for (int i = 0; i < InputType::kRegisterCount; i++) {
+ output.reg[i] = Min(Max(input.reg[i], min), max);
+ }
+ return output;
+ }
+
+ const OutputStage& output_stage;
+};
+
+template <int Size>
+struct OutputStageEvalBufferImpl<OutputStageTanh,
+ RegisterBuffer<std::int32_t, Size>> {
+ typedef RegisterBuffer<std::int32_t, Size> InputType;
+ typedef RegisterBuffer<std::int32_t, Size> OutputType;
+ using RegisterType = typename InputType::RegisterType;
+ typedef RegisterType DataType;
+ typedef OutputStageTanh OutputStage;
+
+ OutputStageEvalBufferImpl(const OutputStage& s) : output_stage(s) {
+ const std::int32_t real_zero_as_int32 = output_stage.real_zero_as_int32;
+ const std::int32_t real_amplitude_as_int32 =
+ output_stage.real_amplitude_as_int32;
+
+ input_cutoff_min = real_zero_as_int32 - 8 * real_amplitude_as_int32;
+ input_cutoff_max = real_zero_as_int32 + 8 * real_amplitude_as_int32;
+ output_min = real_zero_as_int32 - real_amplitude_as_int32;
+ output_max = real_zero_as_int32 + real_amplitude_as_int32;
+
+ double inverse_amplitude_normalized_double = 1.0 / real_amplitude_as_int32;
+ inverse_amplitude_neg_exponent = 0;
+ while (inverse_amplitude_normalized_double < 0.5) {
+ inverse_amplitude_normalized_double *= 2;
+ inverse_amplitude_neg_exponent++;
+ }
+ inverse_amplitude_normalized = FixedPoint<DataType, 0>::FromDouble(
+ inverse_amplitude_normalized_double);
+
+ double amplitude_normalized_double = real_amplitude_as_int32;
+ amplitude_exponent = 0;
+ while (amplitude_normalized_double >= 1.0) {
+ amplitude_normalized_double *= 0.5;
+ amplitude_exponent++;
+ }
+ amplitude_normalized =
+ FixedPoint<DataType, 0>::FromDouble(amplitude_normalized_double);
+ }
+
+ OutputType Eval(InputType input) const {
+ const std::int32_t real_zero_as_int32 = output_stage.real_zero_as_int32;
+
+ typedef FixedPoint<DataType, 3> F3;
+ typedef FixedPoint<DataType, 0> F0;
+
+ OutputType output;
+
+ for (int i = 0; i < OutputType::kRegisterCount; i++) {
+ // fixed-point affine transformation
+ DataType input_centered =
+ Sub(input.reg[i], Dup<DataType>(real_zero_as_int32));
+ F3 fixedpoint_input =
+ F3::FromRaw(input_centered) * inverse_amplitude_normalized;
+ // left shift
+ fixedpoint_input.raw() = ShiftLeft(fixedpoint_input.raw(),
+ 28 - inverse_amplitude_neg_exponent);
+ // fixed-point tanh and multiplication
+ F0 fixedpoint_output = tanh(fixedpoint_input) * amplitude_normalized;
+ // right shift
+ DataType int32_output =
+ Add(Dup<DataType>(real_zero_as_int32),
+ ShiftRight(fixedpoint_output.raw(), 31 - amplitude_exponent));
+
+ DataType mask_if_below_cutoff_min =
+ MaskIfLessThanOrEqual(input.reg[i], Dup<DataType>(input_cutoff_min));
+ DataType mask_if_above_cutoff_max = MaskIfGreaterThanOrEqual(
+ input.reg[i], Dup<DataType>(input_cutoff_max));
+
+ output.reg[i] = SelectUsingMask(
+ mask_if_below_cutoff_min, Dup<DataType>(output_min),
+ SelectUsingMask(mask_if_above_cutoff_max, Dup<DataType>(output_max),
+ int32_output));
+ }
+ return output;
+ }
+
+ const OutputStage& output_stage;
+ std::int32_t input_cutoff_min, input_cutoff_max;
+ std::int32_t output_min, output_max;
+ FixedPoint<DataType, 0> inverse_amplitude_normalized;
+ int inverse_amplitude_neg_exponent;
+ FixedPoint<DataType, 0> amplitude_normalized;
+ int amplitude_exponent;
+};
+
+// OutputPipelineOutputType is a helper to determine the output data type of a
+// pipeline, for a
+// given input data type. It is a recursive template; see the explanation on
+// OutputPipelineEvalImpl below.
+template <typename OutputPipelineType, int FirstStage, typename InputType,
+ bool StopRecursion =
+ FirstStage == std::tuple_size<OutputPipelineType>::value>
+struct OutputPipelineOutputType {
+ typedef typename std::tuple_element<FirstStage, OutputPipelineType>::type
+ FirstStageType;
+ typedef typename OutputStageEvalImpl<FirstStageType, InputType>::OutputType
+ FirstStageOutputType;
+ typedef typename OutputPipelineOutputType<OutputPipelineType, FirstStage + 1,
+ FirstStageOutputType>::Type Type;
+};
+
+template <typename OutputPipelineType, int FirstStage, typename InputType>
+struct OutputPipelineOutputType<OutputPipelineType, FirstStage, InputType,
+ true> {
+ typedef InputType Type;
+};
+
+// OutputPipelineEvalImpl is a helper to implement the evaluation of
+// the whole pipeline. It is a recursive template to implement compile-time
+// unrolling of the loop over all pipeline stages. The 'FirstStage' parameter
+// is how we implement recursion: each specialization implements only
+// evaluation starting at 'FirstStage'. The StopRecursion parameter is just a
+// helper to implement the termination of the recursion as a partial
+// specialization below.
+template <typename OutputPipelineType, int FirstStage, typename InputType,
+ bool StopRecursion =
+ FirstStage == std::tuple_size<OutputPipelineType>::value>
+struct OutputPipelineEvalImpl {
+ typedef typename std::tuple_element<FirstStage, OutputPipelineType>::type
+ FirstStageType;
+ typedef typename OutputStageEvalImpl<FirstStageType, InputType>::OutputType
+ FirstStageOutputType;
+ typedef typename OutputPipelineOutputType<OutputPipelineType, FirstStage,
+ InputType>::Type OutputType;
+
+ OutputPipelineEvalImpl(const OutputPipelineType& output_pipeline)
+ : head_impl(std::get<FirstStage>(output_pipeline)),
+ tail_impl(output_pipeline) {}
+
+ OutputType Eval(InputType input, int row, int col) const {
+ // Evaluate the first stage.
+ FirstStageOutputType first_stage_output = head_impl.Eval(input, row, col);
+ // Recurse into the remaining stages.
+ return tail_impl.Eval(first_stage_output, row, col);
+ }
+
+ const OutputStageEvalImpl<FirstStageType, InputType> head_impl;
+ const OutputPipelineEvalImpl<OutputPipelineType, FirstStage + 1,
+ FirstStageOutputType>
+ tail_impl;
+};
+
+// Specialization on 'StopRecursion' for terminating the recursion.
+template <typename OutputPipelineType, int FirstStage, typename InputType>
+struct OutputPipelineEvalImpl<OutputPipelineType, FirstStage, InputType, true> {
+ OutputPipelineEvalImpl(const OutputPipelineType&) {}
+
+ InputType Eval(InputType input, int, int) const {
+ // Terminating the recursion.
+ return input;
+ }
+};
+
+template <typename RegisterBlockType, typename DstType>
+struct StoreFinalOutputImpl {
+ static_assert(std::is_same<RegisterBlockType, void>::value,
+ "This generic impl should never be hit");
+};
+
+template <typename ScalarType, int Rows, int Cols, typename DstType>
+struct StoreFinalOutputImpl<RegisterBlock<ScalarType, Rows, Cols>, DstType> {
+ using RegisterBlockType = RegisterBlock<ScalarType, Rows, Cols>;
+ static void Run(const RegisterBlockType& src, DstType* dst, int row,
+ int col) {
+ for (int r = 0; r < Rows; r++) {
+ for (int c = 0; c < Cols; c++) {
+ *dst->data(row + r, col + c) = src.buf.reg[r + c * Rows];
+ }
+ }
+ }
+};
+
+// StoreFinalOutput takes the final value at the end of the output pipeline and
+// stores it into the destination matrix. It can be specialized for different
+// data types; the generic implementation here is typically used only for plain
+// old scalar (not SIMD) types.
+template <typename RegisterBlockType, typename DstType>
+void StoreFinalOutput(RegisterBlockType src, DstType* dst, int row, int col) {
+ StoreFinalOutputImpl<RegisterBlockType, DstType>::Run(src, dst, row, col);
+}
+
+template <typename OutputPipelineType, typename InputType>
+struct OutputPipelineExecutor {
+ OutputPipelineExecutor(const OutputPipelineType& output_pipeline)
+ : output_pipeline_eval_impl_(output_pipeline) {}
+
+ // RunOutputPipeline is the entry point into the output pipeline evaluation
+ // code. It should be the only thing that unpack code calls. It takes the
+ // result
+ // of the unpack stage and stores it into the destination matrix.
+ template <typename DstType>
+ void Execute(InputType input, DstType* dst, int src_global_row,
+ int src_global_col, int dst_row, int dst_col) const {
+ // Statically assert that the output pipeline matches the given destination
+ // matrix's scalar type.
+ typedef typename OutputPipelineOutputType<
+ OutputPipelineType, 0, InputType>::Type::BufferType::ScalarType
+
+ ScalarOutputType;
+ typedef typename DstType::Scalar ScalarDstType;
+ static_assert(std::is_same<ScalarOutputType, ScalarDstType>::value,
+ "mismatched destination scalar type and output pipeline");
+
+ // Evaluate the output pipeline.
+ auto output =
+ output_pipeline_eval_impl_.Eval(input, src_global_row, src_global_col);
+ // Store the result into the destination matrix.
+ StoreFinalOutput(output, dst, dst_row, dst_col);
+ }
+
+ const OutputPipelineEvalImpl<OutputPipelineType, 0, InputType>
+ output_pipeline_eval_impl_;
+};
+
+} // namespace gemmlowp
+
+#ifdef GEMMLOWP_NEON
+#include "output_neon.h"
+#elif defined(GEMMLOWP_SSE4)
+#include "output_sse.h"
+#endif
+
+#endif // GEMMLOWP_INTERNAL_OUTPUT_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/output_neon.h b/runtimes/nn/depend/external/gemmlowp/internal/output_neon.h
new file mode 100644
index 000000000..7e111e586
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/output_neon.h
@@ -0,0 +1,432 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// output_neon.h: optimized NEON specializations of the templates in output.h.
+
+#ifndef GEMMLOWP_INTERNAL_OUTPUT_NEON_H_
+#define GEMMLOWP_INTERNAL_OUTPUT_NEON_H_
+
+#include "output.h"
+
+#include <arm_neon.h>
+
+namespace gemmlowp {
+
+template <>
+struct OutputStageEvalBufferImpl<OutputStageSaturatingCastToUint8,
+ RegBufferInt32<4>> {
+ typedef RegBufferInt32<4> InputType;
+ typedef RegBufferUint8<4> OutputType;
+
+ typedef OutputStageSaturatingCastToUint8 OutputStage;
+
+ OutputStageEvalBufferImpl(const OutputStage&) {}
+
+ OutputType Eval(InputType input) const {
+ OutputType output;
+ int16x4_t res_16 = vqmovn_s32(input.reg[0]);
+ uint8x8_t res_8 = vqmovun_s16(vcombine_s16(res_16, res_16));
+ output.reg[0] = vget_lane_u32(vreinterpret_u32_u8(res_8), 0);
+ return output;
+ }
+};
+
+template <>
+struct OutputStageEvalBufferImpl<OutputStageSaturatingCastToUint8,
+ RegBufferInt32<8>> {
+ typedef RegBufferInt32<8> InputType;
+ typedef RegBufferUint8<8> OutputType;
+
+ typedef OutputStageSaturatingCastToUint8 OutputStage;
+
+ OutputStageEvalBufferImpl(const OutputStage&) {}
+
+ OutputType Eval(InputType input) const {
+ OutputType output;
+ int16x8_t res_16 =
+ vcombine_s16(vqmovn_s32(input.reg[0]), vqmovn_s32(input.reg[1]));
+ output.reg[0] = vqmovun_s16(res_16);
+ return output;
+ }
+};
+
+template <>
+struct OutputStageEvalBufferImpl<OutputStageSaturatingCastToUint8,
+ RegBufferInt32<16>> {
+ typedef RegBufferInt32<16> InputType;
+ typedef RegBufferUint8<16> OutputType;
+
+ typedef OutputStageSaturatingCastToUint8 OutputStage;
+
+ OutputStageEvalBufferImpl(const OutputStage&) {}
+
+ OutputType Eval(InputType input) const {
+ OutputType output;
+ int16x8_t res_16_0 =
+ vcombine_s16(vqmovn_s32(input.reg[0]), vqmovn_s32(input.reg[1]));
+ int16x8_t res_16_1 =
+ vcombine_s16(vqmovn_s32(input.reg[2]), vqmovn_s32(input.reg[3]));
+ output.reg[0] = vqmovun_s16(res_16_0);
+ output.reg[1] = vqmovun_s16(res_16_1);
+ return output;
+ }
+};
+
+template <>
+struct OutputStageEvalBufferImpl<OutputStageSaturatingCastToUint8,
+ RegBufferInt32<32>> {
+ typedef RegBufferInt32<32> InputType;
+ typedef RegBufferUint8<32> OutputType;
+
+ typedef OutputStageSaturatingCastToUint8 OutputStage;
+
+ OutputStageEvalBufferImpl(const OutputStage&) {}
+
+ OutputType Eval(InputType input) const {
+ OutputType output;
+ int16x8_t res_16[4];
+ for (int i = 0; i < 4; i++) {
+ res_16[i] = vcombine_s16(vqmovn_s32(input.reg[2 * i]),
+ vqmovn_s32(input.reg[2 * i + 1]));
+ }
+ for (int i = 0; i < 4; i++) {
+ output.reg[i] = vqmovun_s16(res_16[i]);
+ }
+ return output;
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockInt32<8, 1>, DstType> {
+ static void Run(const RegBlockInt32<8, 1>& src, DstType* dst, int row,
+ int col) {
+ if (DstType::kOrder == MapOrder::ColMajor) {
+ StoreInt32x4(dst->data(row, col), src.buf.reg[0]);
+ StoreInt32x4(dst->data(row + 4, col), src.buf.reg[1]);
+ } else {
+ *dst->data(row + 0, col) = GetLane<0>(src.buf.reg[0]);
+ *dst->data(row + 1, col) = GetLane<1>(src.buf.reg[0]);
+ *dst->data(row + 2, col) = GetLane<2>(src.buf.reg[0]);
+ *dst->data(row + 3, col) = GetLane<3>(src.buf.reg[0]);
+ *dst->data(row + 4, col) = GetLane<0>(src.buf.reg[1]);
+ *dst->data(row + 5, col) = GetLane<1>(src.buf.reg[1]);
+ *dst->data(row + 6, col) = GetLane<2>(src.buf.reg[1]);
+ *dst->data(row + 7, col) = GetLane<3>(src.buf.reg[1]);
+ }
+ }
+};
+
+inline RegBlockInt32<4, 4> Transpose(const RegBlockInt32<4, 4>& src) {
+ const int32x4x2_t t0 = vtrnq_s32(src.buf.reg[0], src.buf.reg[1]);
+ const int32x4x2_t t1 = vtrnq_s32(src.buf.reg[2], src.buf.reg[3]);
+ RegBlockInt32<4, 4> result;
+ result.buf.reg[0] =
+ vcombine_s32(vget_low_s32(t0.val[0]), vget_low_s32(t1.val[0]));
+ result.buf.reg[1] =
+ vcombine_s32(vget_low_s32(t0.val[1]), vget_low_s32(t1.val[1]));
+ result.buf.reg[2] =
+ vcombine_s32(vget_high_s32(t0.val[0]), vget_high_s32(t1.val[0]));
+ result.buf.reg[3] =
+ vcombine_s32(vget_high_s32(t0.val[1]), vget_high_s32(t1.val[1]));
+ return result;
+}
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockInt32<4, 4>, DstType> {
+ static void Run(const RegBlockInt32<4, 4>& src, DstType* dst, int row,
+ int col) {
+ const auto& block =
+ DstType::kOrder == MapOrder::ColMajor ? src : Transpose(src);
+ std::int32_t* dst_ptr = dst->data(row, col);
+ int stride = dst->stride();
+ for (int i = 0; i < 4; i++) {
+ vst1q_s32(dst_ptr + i * stride, block.buf.reg[i]);
+ }
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockInt32<8, 4>, DstType> {
+ static void Run(const RegBlockInt32<8, 4>& src, DstType* dst, int row,
+ int col) {
+ std::int32_t* dst_ptr = dst->data(row, col);
+ if (DstType::kOrder == MapOrder::ColMajor) {
+ int col_stride = dst->cols_stride();
+ for (int i = 0; i < 4; i++) {
+ vst1q_s32(dst_ptr + i * col_stride + 0, src.buf.reg[2 * i + 0]);
+ vst1q_s32(dst_ptr + i * col_stride + 4, src.buf.reg[2 * i + 1]);
+ }
+ } else {
+ int row_stride = dst->rows_stride();
+ RegBlockInt32<4, 4> top;
+ top.buf.reg[0] = src.buf.reg[0];
+ top.buf.reg[1] = src.buf.reg[2];
+ top.buf.reg[2] = src.buf.reg[4];
+ top.buf.reg[3] = src.buf.reg[6];
+ const auto transpose_top = Transpose(top);
+ for (int i = 0; i < 4; i++) {
+ vst1q_s32(dst_ptr + i * row_stride, transpose_top.buf.reg[i]);
+ }
+ RegBlockInt32<4, 4> bottom;
+ bottom.buf.reg[0] = src.buf.reg[1];
+ bottom.buf.reg[1] = src.buf.reg[3];
+ bottom.buf.reg[2] = src.buf.reg[5];
+ bottom.buf.reg[3] = src.buf.reg[7];
+ const auto transpose_bottom = Transpose(bottom);
+ for (int i = 0; i < 4; i++) {
+ vst1q_s32(dst_ptr + (i + 4) * row_stride, transpose_bottom.buf.reg[i]);
+ }
+ }
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockInt32<8, 8>, DstType> {
+ static void Run(const RegBlockInt32<8, 8>& src, DstType* dst, int row,
+ int col) {
+ std::int32_t* dst_ptr = dst->data(row, col);
+ if (DstType::kOrder == MapOrder::ColMajor) {
+ int col_stride = dst->cols_stride();
+ for (int i = 0; i < 8; i++) {
+ vst1q_s32(dst_ptr + i * col_stride, src.buf.reg[2 * i]);
+ vst1q_s32(dst_ptr + i * col_stride + 4, src.buf.reg[2 * i + 1]);
+ }
+ } else {
+ int row_stride = dst->rows_stride();
+ RegBlockInt32<4, 4> top_left;
+ top_left.buf.reg[0] = src.buf.reg[0];
+ top_left.buf.reg[1] = src.buf.reg[2];
+ top_left.buf.reg[2] = src.buf.reg[4];
+ top_left.buf.reg[3] = src.buf.reg[6];
+ const auto transpose_top_left = Transpose(top_left);
+ for (int i = 0; i < 4; i++) {
+ vst1q_s32(dst_ptr + i * row_stride, transpose_top_left.buf.reg[i]);
+ }
+ RegBlockInt32<4, 4> bottom_left;
+ bottom_left.buf.reg[0] = src.buf.reg[1];
+ bottom_left.buf.reg[1] = src.buf.reg[3];
+ bottom_left.buf.reg[2] = src.buf.reg[5];
+ bottom_left.buf.reg[3] = src.buf.reg[7];
+ const auto transpose_bottom_left = Transpose(bottom_left);
+ for (int i = 0; i < 4; i++) {
+ vst1q_s32(dst_ptr + (i + 4) * row_stride,
+ transpose_bottom_left.buf.reg[i]);
+ }
+ RegBlockInt32<4, 4> top_right;
+ top_right.buf.reg[0] = src.buf.reg[8];
+ top_right.buf.reg[1] = src.buf.reg[10];
+ top_right.buf.reg[2] = src.buf.reg[12];
+ top_right.buf.reg[3] = src.buf.reg[14];
+ const auto transpose_top_right = Transpose(top_right);
+ for (int i = 0; i < 4; i++) {
+ vst1q_s32(dst_ptr + i * row_stride + 4, transpose_top_right.buf.reg[i]);
+ }
+ RegBlockInt32<4, 4> bottom_right;
+ bottom_right.buf.reg[0] = src.buf.reg[9];
+ bottom_right.buf.reg[1] = src.buf.reg[11];
+ bottom_right.buf.reg[2] = src.buf.reg[13];
+ bottom_right.buf.reg[3] = src.buf.reg[15];
+ const auto transpose_bottom_right = Transpose(bottom_right);
+ for (int i = 0; i < 4; i++) {
+ vst1q_s32(dst_ptr + (i + 4) * row_stride + 4,
+ transpose_bottom_right.buf.reg[i]);
+ }
+ }
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockInt32<4, 1>, DstType> {
+ static void Run(const RegBlockInt32<4, 1>& src, DstType* dst, int row,
+ int col) {
+ std::int32_t* dst_ptr = dst->data(row, col);
+ if (DstType::kOrder == MapOrder::ColMajor) {
+ vst1q_s32(dst_ptr, src.buf.reg[0]);
+ } else {
+ int row_stride = dst->rows_stride();
+ vst1q_lane_s32(dst_ptr + 0 * row_stride, src.buf.reg[0], 0);
+ vst1q_lane_s32(dst_ptr + 1 * row_stride, src.buf.reg[0], 1);
+ vst1q_lane_s32(dst_ptr + 2 * row_stride, src.buf.reg[0], 2);
+ vst1q_lane_s32(dst_ptr + 3 * row_stride, src.buf.reg[0], 3);
+ }
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockInt32<1, 4>, DstType> {
+ static void Run(const RegBlockInt32<1, 4>& src, DstType* dst, int row,
+ int col) {
+ std::int32_t* dst_ptr = dst->data(row, col);
+ if (DstType::kOrder == MapOrder::RowMajor) {
+ vst1q_s32(dst_ptr, src.buf.reg[0]);
+ } else {
+ int col_stride = dst->cols_stride();
+ vst1q_lane_s32(dst_ptr + 0 * col_stride, src.buf.reg[0], 0);
+ vst1q_lane_s32(dst_ptr + 1 * col_stride, src.buf.reg[0], 1);
+ vst1q_lane_s32(dst_ptr + 2 * col_stride, src.buf.reg[0], 2);
+ vst1q_lane_s32(dst_ptr + 3 * col_stride, src.buf.reg[0], 3);
+ }
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockUint8<4, 1>, DstType> {
+ static void Run(const RegBlockUint8<4, 1>& src, DstType* dst, int row,
+ int col) {
+ const std::uint32_t src_reg = src.buf.reg[0];
+ for (int i = 0; i < 4; i++) {
+ *dst->data(row + i, col) = (src_reg >> (8 * i));
+ }
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockUint8<1, 4>, DstType> {
+ static void Run(const RegBlockUint8<1, 4>& src, DstType* dst, int row,
+ int col) {
+ for (int i = 0; i < 4; i++) {
+ *dst->data(row, col + i) = (src.buf.reg[0] >> (8 * i));
+ }
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockUint8<8, 1>, DstType> {
+ static void Run(const RegBlockUint8<8, 1>& src, DstType* dst, int row,
+ int col) {
+ std::uint8_t* dst_ptr = dst->data(row, col);
+ if (DstType::kOrder == MapOrder::ColMajor) {
+ vst1_u8(dst_ptr, src.buf.reg[0]);
+ } else {
+ const int row_stride = dst->rows_stride();
+ vst1_lane_u8(dst_ptr + 0 * row_stride, src.buf.reg[0], 0);
+ vst1_lane_u8(dst_ptr + 1 * row_stride, src.buf.reg[0], 1);
+ vst1_lane_u8(dst_ptr + 2 * row_stride, src.buf.reg[0], 2);
+ vst1_lane_u8(dst_ptr + 3 * row_stride, src.buf.reg[0], 3);
+ vst1_lane_u8(dst_ptr + 4 * row_stride, src.buf.reg[0], 4);
+ vst1_lane_u8(dst_ptr + 5 * row_stride, src.buf.reg[0], 5);
+ vst1_lane_u8(dst_ptr + 6 * row_stride, src.buf.reg[0], 6);
+ vst1_lane_u8(dst_ptr + 7 * row_stride, src.buf.reg[0], 7);
+ }
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockUint8<4, 4>, DstType> {
+ static void Run(const RegBlockUint8<4, 4>& src, DstType* dst, int row,
+ int col) {
+ std::uint8_t* dst_ptr = dst->data(row, col);
+ const int row_stride = dst->rows_stride();
+ const int col_stride = dst->cols_stride();
+ for (int i = 0; i < 2; i++) {
+ vst1_lane_u8(dst_ptr + 0 * row_stride + (2 * i + 0) * col_stride,
+ src.buf.reg[i], 0);
+ vst1_lane_u8(dst_ptr + 1 * row_stride + (2 * i + 0) * col_stride,
+ src.buf.reg[i], 1);
+ vst1_lane_u8(dst_ptr + 2 * row_stride + (2 * i + 0) * col_stride,
+ src.buf.reg[i], 2);
+ vst1_lane_u8(dst_ptr + 3 * row_stride + (2 * i + 0) * col_stride,
+ src.buf.reg[i], 3);
+ vst1_lane_u8(dst_ptr + 0 * row_stride + (2 * i + 1) * col_stride,
+ src.buf.reg[i], 4);
+ vst1_lane_u8(dst_ptr + 1 * row_stride + (2 * i + 1) * col_stride,
+ src.buf.reg[i], 5);
+ vst1_lane_u8(dst_ptr + 2 * row_stride + (2 * i + 1) * col_stride,
+ src.buf.reg[i], 6);
+ vst1_lane_u8(dst_ptr + 3 * row_stride + (2 * i + 1) * col_stride,
+ src.buf.reg[i], 7);
+ }
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockUint8<8, 4>, DstType> {
+ static void Run(const RegBlockUint8<8, 4>& src, DstType* dst, int row,
+ int col) {
+ std::uint8_t* dst_ptr = dst->data(row, col);
+ if (DstType::kOrder == MapOrder::ColMajor) {
+ int col_stride = dst->cols_stride();
+ for (int i = 0; i < 4; i++) {
+ vst1_u8(dst_ptr + i * col_stride, src.buf.reg[i]);
+ }
+ } else {
+ for (int i = 0; i < 4; i++) {
+ int row_stride = dst->rows_stride();
+ std::uint8_t* col_ptr = dst_ptr + i;
+ vst1_lane_u8(col_ptr + 0 * row_stride, src.buf.reg[i], 0);
+ vst1_lane_u8(col_ptr + 1 * row_stride, src.buf.reg[i], 1);
+ vst1_lane_u8(col_ptr + 2 * row_stride, src.buf.reg[i], 2);
+ vst1_lane_u8(col_ptr + 3 * row_stride, src.buf.reg[i], 3);
+ vst1_lane_u8(col_ptr + 4 * row_stride, src.buf.reg[i], 4);
+ vst1_lane_u8(col_ptr + 5 * row_stride, src.buf.reg[i], 5);
+ vst1_lane_u8(col_ptr + 6 * row_stride, src.buf.reg[i], 6);
+ vst1_lane_u8(col_ptr + 7 * row_stride, src.buf.reg[i], 7);
+ }
+ }
+ }
+};
+
+inline RegBlockUint8<8, 8> Transpose(const RegBlockUint8<8, 8>& src) {
+ uint8x8x2_t a[4];
+ a[0] = vtrn_u8(src.buf.reg[0], src.buf.reg[1]);
+ a[1] = vtrn_u8(src.buf.reg[2], src.buf.reg[3]);
+ a[2] = vtrn_u8(src.buf.reg[4], src.buf.reg[5]);
+ a[3] = vtrn_u8(src.buf.reg[6], src.buf.reg[7]);
+ uint16x4x2_t b[4];
+ b[0] = vtrn_u16(vreinterpret_u16_u8(a[0].val[0]),
+ vreinterpret_u16_u8(a[1].val[0]));
+ b[1] = vtrn_u16(vreinterpret_u16_u8(a[0].val[1]),
+ vreinterpret_u16_u8(a[1].val[1]));
+ b[2] = vtrn_u16(vreinterpret_u16_u8(a[2].val[0]),
+ vreinterpret_u16_u8(a[3].val[0]));
+ b[3] = vtrn_u16(vreinterpret_u16_u8(a[2].val[1]),
+ vreinterpret_u16_u8(a[3].val[1]));
+ uint32x2x2_t c[4];
+ c[0] = vtrn_u32(vreinterpret_u32_u16(b[0].val[0]),
+ vreinterpret_u32_u16(b[2].val[0]));
+ c[1] = vtrn_u32(vreinterpret_u32_u16(b[1].val[0]),
+ vreinterpret_u32_u16(b[3].val[0]));
+ c[2] = vtrn_u32(vreinterpret_u32_u16(b[0].val[1]),
+ vreinterpret_u32_u16(b[2].val[1]));
+ c[3] = vtrn_u32(vreinterpret_u32_u16(b[1].val[1]),
+ vreinterpret_u32_u16(b[3].val[1]));
+ RegBlockUint8<8, 8> result;
+ result.buf.reg[0] = vreinterpret_u8_u32(c[0].val[0]);
+ result.buf.reg[1] = vreinterpret_u8_u32(c[1].val[0]);
+ result.buf.reg[2] = vreinterpret_u8_u32(c[2].val[0]);
+ result.buf.reg[3] = vreinterpret_u8_u32(c[3].val[0]);
+ result.buf.reg[4] = vreinterpret_u8_u32(c[0].val[1]);
+ result.buf.reg[5] = vreinterpret_u8_u32(c[1].val[1]);
+ result.buf.reg[6] = vreinterpret_u8_u32(c[2].val[1]);
+ result.buf.reg[7] = vreinterpret_u8_u32(c[3].val[1]);
+ return result;
+}
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockUint8<8, 8>, DstType> {
+ static void Run(const RegBlockUint8<8, 8>& src, DstType* dst, int row,
+ int col) {
+ const auto& block =
+ DstType::kOrder == MapOrder::ColMajor ? src : Transpose(src);
+ std::uint8_t* dst_ptr = dst->data(row, col);
+ int stride = dst->stride();
+ for (int i = 0; i < 8; i++) {
+ vst1_u8(dst_ptr + i * stride, block.buf.reg[i]);
+ }
+ }
+};
+
+} // namespace gemmlowp
+
+#endif // GEMMLOWP_INTERNAL_OUTPUT_NEON_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/output_sse.h b/runtimes/nn/depend/external/gemmlowp/internal/output_sse.h
new file mode 100644
index 000000000..5c0625398
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/output_sse.h
@@ -0,0 +1,354 @@
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// output_sse.h: optimized SSE4.2 specializations of the templates in output.h.
+
+#ifndef GEMMLOWP_INTERNAL_OUTPUT_SSE_H_
+#define GEMMLOWP_INTERNAL_OUTPUT_SSE_H_
+
+#include "output.h"
+
+#include <smmintrin.h>
+
+namespace gemmlowp {
+
+template <>
+struct OutputStageEvalBufferImpl<OutputStageSaturatingCastToUint8,
+ RegBufferInt32<4>> {
+ typedef RegBufferInt32<4> InputType;
+ typedef RegBufferUint8<4> OutputType;
+
+ typedef OutputStageSaturatingCastToUint8 OutputStage;
+
+ OutputStageEvalBufferImpl(const OutputStage&) {}
+
+ OutputType Eval(InputType input) const {
+ OutputType output;
+ __m128i res_16 = _mm_packs_epi32(input.reg[0], input.reg[0]);
+ __m128i res_8 = _mm_packus_epi16(res_16, res_16);
+ output.reg[0] = _mm_cvtsi128_si32(res_8);
+ return output;
+ }
+};
+
+template <>
+struct OutputStageEvalBufferImpl<OutputStageSaturatingCastToUint8,
+ RegBufferInt32<8>> {
+ typedef RegBufferInt32<8> InputType;
+ typedef RegBufferUint8<8> OutputType;
+
+ typedef OutputStageSaturatingCastToUint8 OutputStage;
+
+ OutputStageEvalBufferImpl(const OutputStage&) {}
+
+ OutputType Eval(InputType input) const {
+ OutputType output;
+ __m128i res_16 = _mm_packs_epi32(input.reg[0], input.reg[1]);
+ __m128i res_8 = _mm_packus_epi16(res_16, res_16);
+ output.reg[0] = _mm_extract_epi32(res_8, 0);
+ output.reg[1] = _mm_extract_epi32(res_8, 1);
+ return output;
+ }
+};
+
+template <>
+struct OutputStageEvalBufferImpl<OutputStageSaturatingCastToUint8,
+ RegBufferInt32<16>> {
+ typedef RegBufferInt32<16> InputType;
+ typedef RegBufferUint8<16> OutputType;
+
+ typedef OutputStageSaturatingCastToUint8 OutputStage;
+
+ OutputStageEvalBufferImpl(const OutputStage&) {}
+
+ OutputType Eval(InputType input) const {
+ OutputType output;
+ __m128i res_16_0 = _mm_packs_epi32(input.reg[0], input.reg[1]);
+ __m128i res_16_1 = _mm_packs_epi32(input.reg[2], input.reg[3]);
+ output.reg[0] = _mm_packus_epi16(res_16_0, res_16_1);
+ return output;
+ }
+};
+
+template <>
+struct OutputStageEvalBufferImpl<OutputStageSaturatingCastToUint8,
+ RegBufferInt32<32>> {
+ typedef RegBufferInt32<32> InputType;
+ typedef RegBufferUint8<32> OutputType;
+
+ typedef OutputStageSaturatingCastToUint8 OutputStage;
+
+ OutputStageEvalBufferImpl(const OutputStage&) {}
+
+ OutputType Eval(InputType input) const {
+ OutputType output;
+ __m128i res_16_0 = _mm_packs_epi32(input.reg[0], input.reg[1]);
+ __m128i res_16_1 = _mm_packs_epi32(input.reg[2], input.reg[3]);
+ output.reg[0] = _mm_packus_epi16(res_16_0, res_16_1);
+ __m128i res_16_2 = _mm_packs_epi32(input.reg[4], input.reg[5]);
+ __m128i res_16_3 = _mm_packs_epi32(input.reg[6], input.reg[7]);
+ output.reg[1] = _mm_packus_epi16(res_16_2, res_16_3);
+ return output;
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockInt32<4, 1>, DstType> {
+ static void Run(const RegBlockInt32<4, 1>& src, DstType* dst, int row,
+ int col) {
+ if (DstType::kOrder == MapOrder::ColMajor) {
+ StoreInt32x4(dst->data(row, col), src.buf.reg[0]);
+ } else {
+ *dst->data(row + 0, col) = GetLane<0>(src.buf.reg[0]);
+ *dst->data(row + 1, col) = GetLane<1>(src.buf.reg[0]);
+ *dst->data(row + 2, col) = GetLane<2>(src.buf.reg[0]);
+ *dst->data(row + 3, col) = GetLane<3>(src.buf.reg[0]);
+ }
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockInt32<8, 1>, DstType> {
+ static void Run(const RegBlockInt32<8, 1>& src, DstType* dst, int row,
+ int col) {
+ if (DstType::kOrder == MapOrder::ColMajor) {
+ StoreInt32x4(dst->data(row, col), src.buf.reg[0]);
+ StoreInt32x4(dst->data(row + 4, col), src.buf.reg[1]);
+ } else {
+ *dst->data(row + 0, col) = GetLane<0>(src.buf.reg[0]);
+ *dst->data(row + 1, col) = GetLane<1>(src.buf.reg[0]);
+ *dst->data(row + 2, col) = GetLane<2>(src.buf.reg[0]);
+ *dst->data(row + 3, col) = GetLane<3>(src.buf.reg[0]);
+ *dst->data(row + 4, col) = GetLane<0>(src.buf.reg[1]);
+ *dst->data(row + 5, col) = GetLane<1>(src.buf.reg[1]);
+ *dst->data(row + 6, col) = GetLane<2>(src.buf.reg[1]);
+ *dst->data(row + 7, col) = GetLane<3>(src.buf.reg[1]);
+ }
+ }
+};
+
+inline RegBlockInt32<4, 4> Transpose(const RegBlockInt32<4, 4>& src) {
+ __m128i t0 = _mm_unpacklo_epi32(src.buf.reg[0], src.buf.reg[1]);
+ __m128i t1 = _mm_unpacklo_epi32(src.buf.reg[2], src.buf.reg[3]);
+ __m128i t2 = _mm_unpackhi_epi32(src.buf.reg[0], src.buf.reg[1]);
+ __m128i t3 = _mm_unpackhi_epi32(src.buf.reg[2], src.buf.reg[3]);
+
+ RegBlockInt32<4, 4> result;
+ result.buf.reg[0] = _mm_unpacklo_epi64(t0, t1);
+ result.buf.reg[1] = _mm_unpackhi_epi64(t0, t1);
+ result.buf.reg[2] = _mm_unpacklo_epi64(t2, t3);
+ result.buf.reg[3] = _mm_unpackhi_epi64(t2, t3);
+ return result;
+}
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockInt32<4, 4>, DstType> {
+ static void Run(const RegBlockInt32<4, 4>& src, DstType* dst, int row,
+ int col) {
+ if (DstType::kOrder == MapOrder::ColMajor) {
+ for (int i = 0; i < 4; i++) {
+ StoreInt32x4(dst->data(row, col + i), src.buf.reg[i]);
+ }
+ } else {
+ const auto transpose = Transpose(src);
+ for (int i = 0; i < 4; i++) {
+ StoreInt32x4(dst->data(row + i, col), transpose.buf.reg[i]);
+ }
+ }
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockInt32<8, 4>, DstType> {
+ static void Run(const RegBlockInt32<8, 4>& src, DstType* dst, int row,
+ int col) {
+ if (DstType::kOrder == MapOrder::ColMajor) {
+ for (int i = 0; i < 4; i++) {
+ StoreInt32x4(dst->data(row, col + i), src.buf.reg[2 * i]);
+ StoreInt32x4(dst->data(row + 4, col + i), src.buf.reg[2 * i + 1]);
+ }
+ } else {
+ RegBlockInt32<4, 4> top;
+ top.buf.reg[0] = src.buf.reg[0];
+ top.buf.reg[1] = src.buf.reg[2];
+ top.buf.reg[2] = src.buf.reg[4];
+ top.buf.reg[3] = src.buf.reg[6];
+ const auto transpose_top = Transpose(top);
+ for (int i = 0; i < 4; i++) {
+ StoreInt32x4(dst->data(row + i, col), transpose_top.buf.reg[i]);
+ }
+ RegBlockInt32<4, 4> bottom;
+ bottom.buf.reg[0] = src.buf.reg[1];
+ bottom.buf.reg[1] = src.buf.reg[3];
+ bottom.buf.reg[2] = src.buf.reg[5];
+ bottom.buf.reg[3] = src.buf.reg[7];
+ const auto transpose_bottom = Transpose(bottom);
+ for (int i = 0; i < 4; i++) {
+ StoreInt32x4(dst->data(row + 4 + i, col), transpose_bottom.buf.reg[i]);
+ }
+ }
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockInt32<8, 8>, DstType> {
+ static void Run(const RegBlockInt32<8, 8>& src, DstType* dst, int row,
+ int col) {
+ if (DstType::kOrder == MapOrder::ColMajor) {
+ for (int i = 0; i < 8; i++) {
+ StoreInt32x4(dst->data(row, col + i), src.buf.reg[2 * i]);
+ StoreInt32x4(dst->data(row + 4, col + i), src.buf.reg[2 * i + 1]);
+ }
+ } else {
+ RegBlockInt32<4, 4> top_left;
+ top_left.buf.reg[0] = src.buf.reg[0];
+ top_left.buf.reg[1] = src.buf.reg[2];
+ top_left.buf.reg[2] = src.buf.reg[4];
+ top_left.buf.reg[3] = src.buf.reg[6];
+ const auto transpose_top_left = Transpose(top_left);
+ for (int i = 0; i < 4; i++) {
+ StoreInt32x4(dst->data(row + i, col), transpose_top_left.buf.reg[i]);
+ }
+ RegBlockInt32<4, 4> bottom_left;
+ bottom_left.buf.reg[0] = src.buf.reg[1];
+ bottom_left.buf.reg[1] = src.buf.reg[3];
+ bottom_left.buf.reg[2] = src.buf.reg[5];
+ bottom_left.buf.reg[3] = src.buf.reg[7];
+ const auto transpose_bottom_left = Transpose(bottom_left);
+ for (int i = 0; i < 4; i++) {
+ StoreInt32x4(dst->data(row + 4 + i, col),
+ transpose_bottom_left.buf.reg[i]);
+ }
+ RegBlockInt32<4, 4> top_right;
+ top_right.buf.reg[0] = src.buf.reg[8];
+ top_right.buf.reg[1] = src.buf.reg[10];
+ top_right.buf.reg[2] = src.buf.reg[12];
+ top_right.buf.reg[3] = src.buf.reg[14];
+ const auto transpose_top_right = Transpose(top_right);
+ for (int i = 0; i < 4; i++) {
+ StoreInt32x4(dst->data(row + i, col + 4),
+ transpose_top_right.buf.reg[i]);
+ }
+ RegBlockInt32<4, 4> bottom_right;
+ bottom_right.buf.reg[0] = src.buf.reg[9];
+ bottom_right.buf.reg[1] = src.buf.reg[11];
+ bottom_right.buf.reg[2] = src.buf.reg[13];
+ bottom_right.buf.reg[3] = src.buf.reg[15];
+ const auto transpose_bottom_right = Transpose(bottom_right);
+ for (int i = 0; i < 4; i++) {
+ StoreInt32x4(dst->data(row + 4 + i, col + 4),
+ transpose_bottom_right.buf.reg[i]);
+ }
+ }
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockInt32<1, 4>, DstType> {
+ static void Run(const RegBlockInt32<1, 4>& src, DstType* dst, int row,
+ int col) {
+ if (DstType::kOrder == MapOrder::ColMajor) {
+ *dst->data(row, col + 0) = GetLane<0>(src.buf.reg[0]);
+ *dst->data(row, col + 1) = GetLane<1>(src.buf.reg[0]);
+ *dst->data(row, col + 2) = GetLane<2>(src.buf.reg[0]);
+ *dst->data(row, col + 3) = GetLane<3>(src.buf.reg[0]);
+ } else {
+ StoreInt32x4(dst->data(row, col), src.buf.reg[0]);
+ }
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockUint8<4, 1>, DstType> {
+ static void Run(const RegBlockUint8<4, 1>& src, DstType* dst, int row,
+ int col) {
+ const std::uint32_t src_reg = src.buf.reg[0];
+ for (int i = 0; i < 4; i++) {
+ *dst->data(row + i, col) = (src_reg >> (8 * i));
+ }
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockUint8<8, 1>, DstType> {
+ static void Run(const RegBlockUint8<8, 1>& src, DstType* dst, int row,
+ int col) {
+ for (int i = 0; i < 4; i++) {
+ *dst->data(row + i, col) = (src.buf.reg[0] >> (8 * i));
+ }
+ for (int i = 0; i < 4; i++) {
+ *dst->data(row + 4 + i, col) = (src.buf.reg[1] >> (8 * i));
+ }
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockUint8<1, 4>, DstType> {
+ static void Run(const RegBlockUint8<1, 4>& src, DstType* dst, int row,
+ int col) {
+ for (int i = 0; i < 4; i++) {
+ *dst->data(row, col + i) = (src.buf.reg[0] >> (8 * i));
+ }
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockUint8<4, 4>, DstType> {
+ static void Run(const RegBlockUint8<4, 4>& src, DstType* dst, int row,
+ int col) {
+ std::uint8_t buf[16];
+ StoreUint8x16(buf, src.buf.reg[0]);
+ for (int c = 0; c < 4; c++) {
+ for (int r = 0; r < 4; r++) {
+ *dst->data(row + r, col + c) = buf[r + 4 * c];
+ }
+ }
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockUint8<8, 4>, DstType> {
+ static void Run(const RegBlockUint8<8, 4>& src, DstType* dst, int row,
+ int col) {
+ std::uint8_t buf[32];
+ StoreUint8x16(buf, src.buf.reg[0]);
+ StoreUint8x16(buf + 16, src.buf.reg[1]);
+ for (int c = 0; c < 4; c++) {
+ for (int r = 0; r < 8; r++) {
+ *dst->data(row + r, col + c) = buf[r + 8 * c];
+ }
+ }
+ }
+};
+
+template <typename DstType>
+struct StoreFinalOutputImpl<RegBlockUint8<8, 8>, DstType> {
+ static void Run(const RegBlockUint8<8, 8>& src, DstType* dst, int row,
+ int col) {
+ std::uint8_t buf[64];
+ StoreUint8x16(buf, src.buf.reg[0]);
+ StoreUint8x16(buf + 16, src.buf.reg[1]);
+ StoreUint8x16(buf + 32, src.buf.reg[2]);
+ StoreUint8x16(buf + 48, src.buf.reg[3]);
+ for (int c = 0; c < 8; c++) {
+ for (int r = 0; r < 8; r++) {
+ *dst->data(row + r, col + c) = buf[r + 8 * c];
+ }
+ }
+ }
+};
+
+} // namespace gemmlowp
+
+#endif // GEMMLOWP_INTERNAL_OUTPUT_SSE_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/pack.h b/runtimes/nn/depend/external/gemmlowp/internal/pack.h
new file mode 100644
index 000000000..339539602
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/pack.h
@@ -0,0 +1,435 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// pack.h: packing blocks of the LHS and RHS into the data layout
+// that is expected by compute.h and eventually by kernels.
+// Because this data layout depends on the kernel format, code here
+// is templated in KernelLhsFormat/KernelRhsFormat.
+//
+// Readers note: an important theme around here is that we try hard
+// to handle both Lhs and Rhs with a single piece of code. We indifferently
+// refer to the Lhs and Rhs as a 'Side'. Instead of addressing matrices
+// by (row, column) indices, we address them by (width, depth), as explained
+// in kernel.h. This allows us to handle both Lhs and Rhs on an equal footing,
+// at once.
+
+#ifndef GEMMLOWP_INTERNAL_PACK_H_
+#define GEMMLOWP_INTERNAL_PACK_H_
+
+#include <cstring>
+
+#include "allocator.h"
+#include "block_params.h"
+#include "common.h"
+#include "kernel.h"
+
+namespace gemmlowp {
+
+// A PackedSideBlock instance is a packed block of either the LHS or RHS
+// (whence the generic 'Side' name).
+//
+// 'Packed' means that it is laid out in the storage order that
+// is expected by the specified kernel format. From a block of the input
+// LHS or RHS matrix, one obtains a PackedSideBlock by calling PackLhs()
+// or PackRhs().
+template <typename tKernelSideFormat>
+class PackedSideBlock {
+ public:
+ typedef tKernelSideFormat KernelSideFormat;
+
+ PackedSideBlock(Side side, Allocator* allocator,
+ const BlockParams& block_params)
+ : allocator_(allocator), pos_(0) {
+ GetSideBlockParams(side, &params_, block_params);
+ data_handle_ =
+ allocator_->Reserve<std::uint8_t>(params_.l2_width * params_.l2_depth);
+ sums_of_each_slice_handle_ =
+ allocator_->Reserve<std::int32_t>(params_.l2_width);
+ }
+
+ ~PackedSideBlock() {}
+
+ void seek_run(int start_width, int start_depth) const {
+ int kernel_run_depth =
+ std::min<int>(params_.l1_depth, params_.l2_depth - start_depth);
+ pos_ = params_.l2_width * start_depth + start_width * kernel_run_depth;
+ }
+
+ void seek_next_cell() const { pos_ += KernelSideFormat::Cell::kSize; }
+
+ void seek_forward_n_cells(int n) const {
+ pos_ += n * KernelSideFormat::Cell::kSize;
+ }
+
+ const std::uint8_t* current_data() const {
+ return allocator_->GetPointer<std::uint8_t>(data_handle_) + pos_;
+ }
+
+ std::uint8_t* current_data() {
+ return allocator_->GetPointer<std::uint8_t>(data_handle_) + pos_;
+ }
+
+ std::int32_t* sums_of_each_slice() {
+ return allocator_->GetPointer<std::int32_t>(sums_of_each_slice_handle_);
+ }
+
+ const std::int32_t* sums_of_each_slice() const {
+ return allocator_->GetPointer<const std::int32_t>(
+ sums_of_each_slice_handle_);
+ }
+
+ const SideBlockParams& params() const { return params_; }
+
+ private:
+ // The block size parameters that this PackedSizeBlock follows.
+ // The L2 parameters determine its overall size, while the L1 parameters,
+ // together with the kernel format template parameter, determine
+ // the fine details of the storage/traversal order.
+ SideBlockParams params_;
+
+ // Pointer to the allocator provided by the caller. Not owned.
+ // The Allocator is assumed to outlive the PackedSideBlock.
+ Allocator* const allocator_;
+
+ // Handle on the buffer backing this packed block. Owned.
+ Allocator::Handle data_handle_;
+
+ // Handle on the additional buffer backing the vector of sums of slices
+ // associated with this block. Owned.
+ Allocator::Handle sums_of_each_slice_handle_;
+
+ // pos_ is the current position in the buffer, which we access
+ // sequentially, like a file.
+ // The idea is that we pack data in the same order as it is
+ // going to be traversed during the computation, which for
+ // cache-friendliness reasons is complicated to random-access,
+ // as the offsets calculations would be intricate. So we
+ // give up random-access addressing, and instead content ourselves
+ // with sequential access.
+ //
+ // pos_ is mutable because during the computation we will want to
+ // be able to iterate on the data in a const PackedSideBlock.
+ mutable int pos_;
+};
+
+// WidthMajor and DepthMajor are custom phrases modelled after the
+// standard terminology 'row-major' and 'column-major'. Their meaning
+// should be transparent once one has read the explanation in kernel.h:
+// for example, in the Lhs, the 'width' dimension is the rows dimension,
+// so there WidthMajor means RowMajor, while in the Rhs it is the opposite.
+// Another way to put it: WidthMajor means that contiguous storage is used
+// for entries having the same 'width' index.
+enum class SideMapOrder { WidthMajor, DepthMajor };
+
+// Similar to MatrixMap from map.h, but in terms of width/depth instead of
+// rows/columns. Used to address blocks of the input LHS/RHS matrices when
+// packing them.
+template <typename tScalar, SideMapOrder tOrder>
+class SideMap {
+ public:
+ typedef tScalar Scalar;
+ static const SideMapOrder kOrder = tOrder;
+
+ SideMap(Scalar* data, int width, int depth, int stride)
+ : data_(data), width_(width), depth_(depth), stride_(stride) {}
+
+ SideMap(Scalar* data, int width, int depth)
+ : data_(data), width_(width), depth_(depth) {
+ stride_ = kOrder == SideMapOrder::WidthMajor ? depth_ : width_;
+ }
+
+ SideMap(const SideMap& other)
+ : data_(other.data_),
+ width_(other.width_),
+ depth_(other.depth_),
+ stride_(other.stride_) {}
+
+ int width() const { return width_; }
+ int depth() const { return depth_; }
+ int stride() const { return stride_; }
+ int width_stride() const {
+ return kOrder == SideMapOrder::DepthMajor ? 1 : stride_;
+ }
+ int depth_stride() const {
+ return kOrder == SideMapOrder::WidthMajor ? 1 : stride_;
+ }
+ Scalar* data() const { return data_; }
+ Scalar* data(int w, int d) const {
+ return data_ + w * width_stride() + d * depth_stride();
+ }
+ Scalar operator()(int w, int d) const { return *data(w, d); }
+ Scalar& operator()(int w, int d) { return *data(w, d); }
+
+ SideMap block(int start_width, int start_depth, int block_width,
+ int block_depth) const {
+ assert(start_width >= 0);
+ assert(start_width + block_width <= width_);
+ assert(start_depth >= 0);
+ assert(start_depth + block_depth <= depth_);
+
+ return SideMap(data(start_width, start_depth), block_width, block_depth,
+ stride_);
+ }
+
+ private:
+ Scalar* data_; // not owned.
+ int width_, depth_, stride_;
+};
+
+// A PackingRegisterBlock is a small fixed-size block of a matrix being
+// packed. This class is the generic non-optimized implementation,
+// it is inherited by the generic implementation of PackingRegisterBlock,
+// which may be overriden by template specialization. Overriding it is how
+// one may provide optimized packing code paths.
+//
+// The packing of a block proceeds in two steps:
+// 1. Ensuring that we have a complete block of source data, i.e. a block of
+// the compile-time prescribed size. This is where we handle unaligned
+// boundaries: if we don't have a complete block of source data, then
+// we copy and zero-extend it into a local temporary (complete_src_),
+// see MakeCompleteSrc. In the generic case, we do have a complete block,
+// so we just use it in-place, see UseCompleteSrcInPlace.
+// 2. Packing a complete block into the destination, see Pack. This is the
+// most critical part, so it's convenient that unaligned boundaries have
+// already been handled in step 1.
+template <typename SrcMapType, typename PackedSideBlock>
+class PackingRegisterBlockBase {
+ public:
+ typedef typename PackedSideBlock::KernelSideFormat KernelSideFormat;
+ typedef typename KernelSideFormat::Cell CellFormat;
+ typedef typename KernelSideFormat::Scalar KernelScalar;
+ static const int kCells = KernelSideFormat::kCells;
+ static const int kCellWidth = CellFormat::kWidth;
+ static const int kKernelWidth = CellFormat::kWidth * kCells;
+ static const int kCellDepth = CellFormat::kDepth;
+ static const int kCellSize = CellFormat::kSize;
+ static const SideMapOrder kSrcOrder = SrcMapType::kOrder;
+ static const int kZeroPointInputValue =
+ ZeroPointInputValue<KernelScalar>::kValue;
+
+ PackingRegisterBlockBase() : complete_src_(nullptr, 0, 0, 0) {}
+
+ protected:
+ // The source data that's ready for packing. May point to
+ // in-place actual source data if it's already a complete block,
+ // (see UseCompleteSrcInPlace)
+ // or to the local buf_ below into which we copy incomplete blocks
+ // (see MakeCompleteSrc)
+ SrcMapType complete_src_;
+
+ // Temporary buffer for loading incomplete blocks to,
+ // in the source storage order
+ std::uint8_t buf_[kKernelWidth * kRegisterSize];
+
+ public:
+ // Selects a block if in-place source data that's already a complete block
+ void UseCompleteSrcInPlace(const SrcMapType& src) { complete_src_ = src; }
+ // Copies an incomplete block of source data into a local temporary
+ // complete block by zero-extending it.
+ void MakeCompleteSrc(const SrcMapType& src) {
+ memset(buf_, kZeroPointInputValue, kKernelWidth * kRegisterSize);
+ if (kSrcOrder == SideMapOrder::WidthMajor) {
+ for (int w = 0; w < src.width(); w++) {
+ memcpy(buf_ + w * kRegisterSize, src.data(w, 0), src.depth());
+ }
+ } else {
+ assert(kSrcOrder == SideMapOrder::DepthMajor);
+ for (int d = 0; d < src.depth(); d++) {
+ memcpy(buf_ + d * kKernelWidth, src.data(0, d), src.width());
+ }
+ }
+ complete_src_ = SrcMapType(buf_, kKernelWidth, kRegisterSize);
+ }
+ // Packs a complete block into the destination. This is the most
+ // critical part and the part that we most typically want to
+ // override in architecture-specific optimized specializations.
+ void Pack(PackedSideBlock* dst, int start_width) {
+ std::uint8_t* dst_ptr = dst->current_data();
+ for (int cell_start_depth = 0; cell_start_depth < kRegisterSize;
+ cell_start_depth += kCellDepth) {
+ for (int cell_start_width = 0; cell_start_width < kKernelWidth;
+ cell_start_width += kCellWidth) {
+ std::int32_t* cell_sums_of_each_slice_ptr =
+ dst->sums_of_each_slice() + start_width + cell_start_width;
+ const SideMap<const std::uint8_t, kSrcOrder> src_cell_map(
+ complete_src_.block(cell_start_width, cell_start_depth, kCellWidth,
+ kCellDepth));
+ for (int w = 0; w < kCellWidth; w++) {
+ std::int32_t sum = 0;
+ for (int d = 0; d < kCellDepth; d++) {
+ const std::uint8_t src_val = src_cell_map(w, d);
+ const std::int16_t kernel_val_unwrapped =
+ src_val - kZeroPointInputValue;
+ const std::uint8_t kernel_val_uint8 = kernel_val_unwrapped;
+ dst_ptr[OffsetIntoCell<CellFormat>(w, d)] = kernel_val_uint8;
+ sum += kernel_val_unwrapped;
+ }
+ cell_sums_of_each_slice_ptr[w] += sum;
+ }
+ dst_ptr += kCellSize;
+ }
+ }
+ dst->seek_forward_n_cells(kCells * kRegisterSize / kCellDepth);
+ }
+};
+
+template <typename SrcMapType, typename PackedSideBlock>
+class PackingRegisterBlock
+ : public PackingRegisterBlockBase<SrcMapType, PackedSideBlock> {};
+
+// Large-scale implementation of packing.
+template <typename SrcMapType, typename PackedSideBlock>
+class PackSideBlockImpl {
+ public:
+ typedef typename PackedSideBlock::KernelSideFormat KernelSideFormat;
+ typedef typename KernelSideFormat::Cell CellFormat;
+ static const int kCells = KernelSideFormat::kCells;
+ static const int kCellWidth = CellFormat::kWidth;
+ static const int kKernelWidth = CellFormat::kWidth * kCells;
+ static const int kCellDepth = CellFormat::kDepth;
+
+ typedef PackingRegisterBlock<SrcMapType, PackedSideBlock>
+ PackingRegisterBlockType;
+
+ PackSideBlockImpl(PackedSideBlock* packed_side_block,
+ const SrcMapType& src_map)
+ : packed_side_block_(packed_side_block), src_map_(src_map) {}
+
+ PackedSideBlock* packed_side_block() const { return packed_side_block_; }
+
+ const SrcMapType& src_map() const { return src_map_; }
+
+ // The public entry point to pack a block.
+ void PackL2() {
+ memset(packed_side_block_->sums_of_each_slice(), 0,
+ sizeof(std::int32_t) * packed_side_block_->params().l2_width);
+ for (int d = 0; d < src_map_.depth();
+ d += packed_side_block_->params().l1_depth) {
+ int ds = std::min<int>(packed_side_block_->params().l1_depth,
+ src_map_.depth() - d);
+
+ for (int w = 0; w < src_map_.width();
+ w += packed_side_block_->params().l1_width) {
+ int ws = std::min<int>(packed_side_block_->params().l1_width,
+ src_map_.width() - w);
+
+ PrefetchL1(w, ws, d, ds);
+ PackL1(w, ws, d, ds);
+ }
+ }
+ }
+
+ protected:
+ // The intermediate-level loops, between PackL2 and PackRun.
+ void PackL1(int start_width, int width, int start_depth, int depth) {
+ for (int w = 0; w < width; w += kKernelWidth) {
+ int ws = std::min(+kKernelWidth, width - w);
+ packed_side_block_->seek_run(start_width + w, start_depth);
+ PackRun(start_width + w, ws, start_depth, depth);
+ }
+ }
+
+ // Prefetches the data that will be read by PackL1
+ void PrefetchL1(int start_width, int width, int start_depth, int depth) {
+ if (SrcMapType::kOrder == SideMapOrder::WidthMajor) {
+ for (int d = 0; d < depth; d += kDefaultCacheLineSize) {
+ for (int w = 0; w < width; w += 1) {
+ Prefetch(src_map_.data(start_width + w, start_depth + d));
+ }
+ }
+ } else {
+ for (int d = 0; d < depth; d++) {
+ for (int w = 0; w < width; w += kDefaultCacheLineSize) {
+ Prefetch(src_map_.data(start_width + w, start_depth + d));
+ }
+ }
+ }
+ }
+
+ // PackRun packs only a run i.e. is the inner loop in the depth dimension.
+ void PackRun(int start_width, int width, int start_depth, int depth) {
+ PackingRegisterBlockType b;
+ if (width == kKernelWidth) {
+ const int register_aligned_depth = RoundDown<kRegisterSize>(depth);
+ if (register_aligned_depth) {
+ for (int d = 0; d < register_aligned_depth; d += kRegisterSize) {
+ b.UseCompleteSrcInPlace(src_map_.block(start_width, start_depth + d,
+ width, kRegisterSize));
+ b.Pack(packed_side_block_, start_width);
+ }
+ }
+ if (register_aligned_depth < depth) {
+ b.MakeCompleteSrc(
+ src_map_.block(start_width, start_depth + register_aligned_depth,
+ width, depth - register_aligned_depth));
+ b.Pack(packed_side_block_, start_width);
+ }
+ } else {
+ assert(width < kKernelWidth);
+ for (int d = 0; d < depth; d += kRegisterSize) {
+ const int ds = std::min(+kRegisterSize, depth - d);
+ b.MakeCompleteSrc(
+ src_map_.block(start_width, start_depth + d, width, ds));
+ b.Pack(packed_side_block_, start_width);
+ }
+ }
+ }
+
+ // The PackedSideBlock being packed, i.e. the 'destination'.
+ PackedSideBlock* const packed_side_block_;
+
+ // A map on the block of the original matrix block being packed,
+ // i.e. the 'source'.
+ const SrcMapType& src_map_;
+};
+
+// Packs a block of the input LHS matrix, into a PackedSideBlock
+template <typename PackedSideBlock, typename MatrixMapType>
+void PackLhs(PackedSideBlock* dst, const MatrixMapType& src) {
+ ScopedProfilingLabel label("pack LHS");
+ static const SideMapOrder kSideMapOrder =
+ MatrixMapType::kOrder == MapOrder::RowMajor ? SideMapOrder::WidthMajor
+ : SideMapOrder::DepthMajor;
+ typedef typename MatrixMapType::Scalar Scalar;
+ typedef SideMap<Scalar, kSideMapOrder> SideMapType;
+ SideMapType src_side_map(src.data(), src.rows(), src.cols(), src.stride());
+ typedef PackSideBlockImpl<SideMapType, PackedSideBlock> ImplType;
+ ImplType impl(dst, src_side_map);
+ impl.PackL2();
+}
+
+// Packs a block of the input RHS matrix, into a PackedSideBlock
+template <typename PackedSideBlock, typename MatrixMapType>
+void PackRhs(PackedSideBlock* dst, const MatrixMapType& src) {
+ ScopedProfilingLabel label("pack RHS");
+ static const SideMapOrder kSideMapOrder =
+ MatrixMapType::kOrder == MapOrder::ColMajor ? SideMapOrder::WidthMajor
+ : SideMapOrder::DepthMajor;
+ typedef typename MatrixMapType::Scalar Scalar;
+ typedef SideMap<Scalar, kSideMapOrder> SideMapType;
+ SideMapType src_side_map(src.data(), src.cols(), src.rows(), src.stride());
+ typedef PackSideBlockImpl<SideMapType, PackedSideBlock> ImplType;
+ ImplType impl(dst, src_side_map);
+ impl.PackL2();
+}
+
+} // namespace gemmlowp
+
+#ifdef GEMMLOWP_NEON
+#include "pack_neon.h"
+#elif defined(GEMMLOWP_SSE4)
+#include "pack_sse.h"
+#endif
+
+#endif // GEMMLOWP_INTERNAL_PACK_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/pack_neon.h b/runtimes/nn/depend/external/gemmlowp/internal/pack_neon.h
new file mode 100644
index 000000000..e212d0756
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/pack_neon.h
@@ -0,0 +1,320 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// pack_neon.h: optimized NEON specializations of the templates in pack.h.
+
+#ifndef GEMMLOWP_INTERNAL_PACK_NEON_H_
+#define GEMMLOWP_INTERNAL_PACK_NEON_H_
+
+#include "pack.h"
+
+#include <arm_neon.h>
+
+namespace gemmlowp {
+
+typedef SideMap<const std::uint8_t, SideMapOrder::WidthMajor>
+ WidthMajorUint8SideMap;
+
+template <int Cells>
+using DepthMajorSideFormatNCells4x2 = KernelSideFormat<CellFormat<4, 2>, Cells>;
+
+template <int Cells>
+class PackingRegisterBlock<
+ WidthMajorUint8SideMap,
+ PackedSideBlock<DepthMajorSideFormatNCells4x2<Cells>>>
+ : public PackingRegisterBlockBase<
+ WidthMajorUint8SideMap,
+ PackedSideBlock<DepthMajorSideFormatNCells4x2<Cells>>> {
+ public:
+ typedef DepthMajorSideFormatNCells4x2<Cells> KernelSideFormat;
+ typedef typename KernelSideFormat::Cell CellFormat;
+ static const int kCells = KernelSideFormat::kCells;
+ static const int kCellWidth = CellFormat::kWidth;
+ static const int kKernelWidth = CellFormat::kWidth * kCells;
+ static const int kCellDepth = CellFormat::kDepth;
+ static const int kCellSize = CellFormat::kSize;
+
+ void Pack(PackedSideBlock<KernelSideFormat>* dst, int start_width) {
+ std::uint8_t* dst_ptr = dst->current_data();
+ const std::uint8_t* const src_ptr = this->complete_src_.data();
+ const int stride = this->complete_src_.stride();
+ // Load source WidthMajor data
+ uint8x16_t src_lines[4 * kCells];
+ for (int i = 0; i < 4 * kCells; i++) {
+ src_lines[i] = vld1q_u8(src_ptr + i * stride);
+ }
+ // Reorder the data within registers to make DepthMajor 4x2 cells
+ uint8x16x2_t src_lines_intertwined_2x[2 * kCells];
+ for (int i = 0; i < kCells; i++) {
+ src_lines_intertwined_2x[2 * i] =
+ vzipq_u8(src_lines[4 * i], src_lines[4 * i + 2]);
+ src_lines_intertwined_2x[2 * i + 1] =
+ vzipq_u8(src_lines[4 * i + 1], src_lines[4 * i + 3]);
+ }
+ uint8x16x2_t src_lines_intertwined_4x[2 * kCells];
+ for (int i = 0; i < kCells; i++) {
+ src_lines_intertwined_4x[2 * i] =
+ vzipq_u8(src_lines_intertwined_2x[2 * i].val[0],
+ src_lines_intertwined_2x[2 * i + 1].val[0]);
+ src_lines_intertwined_4x[2 * i + 1] =
+ vzipq_u8(src_lines_intertwined_2x[2 * i].val[1],
+ src_lines_intertwined_2x[2 * i + 1].val[1]);
+ }
+ // Store the resulting DepthMajor 4x2 cells in the destination packed block
+ for (int outer = 0; outer < 2; outer++) {
+ for (int inner = 0; inner < 2; inner++) {
+ for (int cell = 0; cell < kCells; cell++) {
+ uint8x8_t value = vget_low_u8(
+ src_lines_intertwined_4x[2 * cell + outer].val[inner]);
+ vst1_u8(dst_ptr, value);
+ dst_ptr += 8;
+ }
+ for (int cell = 0; cell < kCells; cell++) {
+ uint8x8_t value = vget_high_u8(
+ src_lines_intertwined_4x[2 * cell + outer].val[inner]);
+ vst1_u8(dst_ptr, value);
+ dst_ptr += 8;
+ }
+ }
+ }
+ // Compute sums across the depth dimension
+ uint16x8_t sums_of_2_cells[kCells][4];
+ for (int outer = 0; outer < 2; outer++) {
+ for (int inner = 0; inner < 2; inner++) {
+ int i = 2 * outer + inner;
+ for (int cell = 0; cell < kCells; cell++) {
+ sums_of_2_cells[cell][i] = vaddl_u8(
+ vget_low_u8(
+ src_lines_intertwined_4x[2 * cell + outer].val[inner]),
+ vget_high_u8(
+ src_lines_intertwined_4x[2 * cell + outer].val[inner]));
+ }
+ }
+ }
+ int32x4_t sums_of_4_cells[kCells][4];
+ for (int i = 0; i < 4; i++) {
+ for (int cell = 0; cell < kCells; cell++) {
+ sums_of_4_cells[cell][i] = vreinterpretq_s32_u32(
+ vaddl_u16(vget_low_u16(sums_of_2_cells[cell][i]),
+ vget_high_u16(sums_of_2_cells[cell][i])));
+ }
+ }
+ // Update the sums_of_each_slice vector
+ for (int cell = 0; cell < kCells; cell++) {
+ int32x4_t s01 =
+ vaddq_s32(sums_of_4_cells[cell][0], sums_of_4_cells[cell][1]);
+ int32x4_t s23 =
+ vaddq_s32(sums_of_4_cells[cell][2], sums_of_4_cells[cell][3]);
+ int32x4_t s = vaddq_s32(s01, s23);
+ std::int32_t* sums_of_each_slice_ptr =
+ dst->sums_of_each_slice() + start_width + 4 * cell;
+ vst1q_s32(sums_of_each_slice_ptr,
+ vaddq_s32(s, vld1q_s32(sums_of_each_slice_ptr)));
+ }
+ dst->seek_forward_n_cells(kCells * kRegisterSize / kCellDepth);
+ }
+};
+
+template <int Cells>
+using WidthMajorSideFormatNCells4x2 =
+ KernelSideFormat<CellFormat<4, 2, CellOrder::WidthMajor>, Cells>;
+
+template <int Cells>
+class PackingRegisterBlock<
+ WidthMajorUint8SideMap,
+ PackedSideBlock<WidthMajorSideFormatNCells4x2<Cells>>>
+ : public PackingRegisterBlockBase<
+ WidthMajorUint8SideMap,
+ PackedSideBlock<WidthMajorSideFormatNCells4x2<Cells>>> {
+ public:
+ typedef WidthMajorSideFormatNCells4x2<Cells> KernelSideFormat;
+ typedef typename KernelSideFormat::Cell CellFormat;
+ static const int kCells = KernelSideFormat::kCells;
+ static const int kCellWidth = CellFormat::kWidth;
+ static const int kKernelWidth = CellFormat::kWidth * kCells;
+ static const int kCellDepth = CellFormat::kDepth;
+ static const int kCellSize = CellFormat::kSize;
+
+ void Pack(PackedSideBlock<KernelSideFormat>* dst, int start_width) {
+ std::uint8_t* dst_ptr = dst->current_data();
+ const std::uint8_t* src_ptr = this->complete_src_.data();
+ const int stride = this->complete_src_.stride();
+ // Load source WidthMajor data
+ uint16x8_t src_lines[kCells * 4];
+ for (int i = 0; i < kCells; i++) {
+// This packing path is used with our current
+// less-than-8-bit kernel, and the partial unrolling of this loop
+// results in substantially faster code (thanks to better
+// register allocation) on Nexus 5.
+
+#define GEMMLOWP_UNROLLED_LOOP_ITER(k) \
+ src_lines[4 * i + k] = vreinterpretq_u16_u8(vld1q_u8(src_ptr)); \
+ src_ptr += stride;
+
+ GEMMLOWP_UNROLLED_LOOP_ITER(0)
+ GEMMLOWP_UNROLLED_LOOP_ITER(1)
+ GEMMLOWP_UNROLLED_LOOP_ITER(2)
+ GEMMLOWP_UNROLLED_LOOP_ITER(3)
+
+#undef GEMMLOWP_UNROLLED_LOOP_ITER
+ }
+ // Reorder the data within registers to make WidthMajor 4x2 cells
+ uint16x8x2_t src_lines_intertwined_2x[2 * kCells];
+ for (int i = 0; i < kCells; i++) {
+ src_lines_intertwined_2x[2 * i] =
+ vzipq_u16(src_lines[4 * i], src_lines[4 * i + 2]);
+ src_lines_intertwined_2x[2 * i + 1] =
+ vzipq_u16(src_lines[4 * i + 1], src_lines[4 * i + 3]);
+ }
+ uint16x8x2_t src_lines_intertwined_4x[2 * kCells];
+ for (int i = 0; i < kCells; i++) {
+ src_lines_intertwined_4x[2 * i] =
+ vzipq_u16(src_lines_intertwined_2x[2 * i].val[0],
+ src_lines_intertwined_2x[2 * i + 1].val[0]);
+ src_lines_intertwined_4x[2 * i + 1] =
+ vzipq_u16(src_lines_intertwined_2x[2 * i].val[1],
+ src_lines_intertwined_2x[2 * i + 1].val[1]);
+ }
+ // Store the resulting WidthMajor 4x2 cells in the destination packed block
+ for (int outer = 0; outer < 2; outer++) {
+ for (int inner = 0; inner < 2; inner++) {
+ for (int cell = 0; cell < kCells; cell++) {
+ uint8x8_t value = vreinterpret_u8_u16(vget_low_u16(
+ src_lines_intertwined_4x[2 * cell + outer].val[inner]));
+ vst1_u8(dst_ptr, value);
+ dst_ptr += 8;
+ }
+ for (int cell = 0; cell < kCells; cell++) {
+ uint8x8_t value = vreinterpret_u8_u16(vget_high_u16(
+ src_lines_intertwined_4x[2 * cell + outer].val[inner]));
+ vst1_u8(dst_ptr, value);
+ dst_ptr += 8;
+ }
+ }
+ }
+ // Compute sums across the depth dimension
+ uint16x8_t sums_of_2[kCells][4];
+ for (int outer = 0; outer < 2; outer++) {
+ for (int inner = 0; inner < 2; inner++) {
+ int i = 2 * outer + inner;
+ for (int cell = 0; cell < kCells; cell++) {
+ sums_of_2[cell][i] = vpaddlq_u8(vreinterpretq_u8_u16(
+ src_lines_intertwined_4x[2 * cell + outer].val[inner]));
+ }
+ }
+ }
+ uint16x8_t sums_of_4[kCells][2];
+ for (int i = 0; i < 2; i++) {
+ for (int cell = 0; cell < kCells; cell++) {
+ sums_of_4[cell][i] =
+ vaddq_u16(sums_of_2[cell][2 * i], sums_of_2[cell][2 * i + 1]);
+ }
+ }
+ uint16x8_t sums_of_8[kCells];
+ for (int cell = 0; cell < kCells; cell++) {
+ sums_of_8[cell] = vaddq_u16(sums_of_4[cell][0], sums_of_4[cell][1]);
+ }
+
+ uint16x4_t sums_of_16[kCells];
+ for (int cell = 0; cell < kCells; cell++) {
+ sums_of_16[cell] = vadd_u16(vget_low_u16(sums_of_8[cell]),
+ vget_high_u16(sums_of_8[cell]));
+ }
+ // Update the sums_of_each_slice vector
+ for (int cell = 0; cell < kCells; cell++) {
+ int32x4_t s = vreinterpretq_s32_u32(vmovl_u16(sums_of_16[cell]));
+ std::int32_t* sums_of_each_slice_ptr =
+ dst->sums_of_each_slice() + start_width + 4 * cell;
+ vst1q_s32(sums_of_each_slice_ptr,
+ vaddq_s32(s, vld1q_s32(sums_of_each_slice_ptr)));
+ }
+ dst->seek_forward_n_cells(kCells * kRegisterSize / kCellDepth);
+ }
+};
+
+#ifdef GEMMLOWP_NEON_32
+inline int16x8_t vpaddq_s16(int16x8_t a, int16x8_t b) {
+ const int16x4_t c = vpadd_s16(vget_low_s16(a), vget_high_s16(a));
+ const int16x4_t d = vpadd_s16(vget_low_s16(b), vget_high_s16(b));
+ return vcombine_s16(c, d);
+}
+#endif
+
+template <int Width>
+using Int8FastKernelFormat =
+ KernelSideFormatInt8<CellFormat<Width, 16, CellOrder::WidthMajor>, 1>;
+
+template <int Width>
+class PackingRegisterBlock<WidthMajorUint8SideMap,
+ PackedSideBlock<Int8FastKernelFormat<Width>>>
+ : public PackingRegisterBlockBase<
+ WidthMajorUint8SideMap,
+ PackedSideBlock<Int8FastKernelFormat<Width>>> {
+ public:
+ static_assert(Width == 2 || Width == 4, "");
+ typedef Int8FastKernelFormat<Width> KernelSideFormat;
+ typedef typename KernelSideFormat::Cell CellFormat;
+ static const int kCells = KernelSideFormat::kCells;
+ static const int kCellWidth = CellFormat::kWidth;
+ static const int kKernelWidth = CellFormat::kWidth * kCells;
+ static const int kCellDepth = CellFormat::kDepth;
+ static const int kCellSize = CellFormat::kSize;
+
+ void Pack(PackedSideBlock<KernelSideFormat>* dst, int start_width) {
+ std::int32_t* sums_ptr = dst->sums_of_each_slice() + start_width;
+ std::uint8_t* dst_ptr = dst->current_data();
+ const std::uint8_t* const src_ptr = this->complete_src_.data();
+ const int stride = this->complete_src_.stride();
+ // Load source WidthMajor data
+ uint8x16_t src_lines[Width];
+ for (int i = 0; i < Width; i++) {
+ src_lines[i] = vld1q_u8(src_ptr + i * stride);
+ }
+ const uint8x16_t sign_bit_dup = vdupq_n_u8(0x80);
+ for (int i = 0; i < Width; i++) {
+ src_lines[i] = veorq_u8(src_lines[i], sign_bit_dup);
+ }
+ for (int i = 0; i < Width; i++) {
+ vst1q_u8(dst_ptr + 16 * i, src_lines[i]);
+ }
+ int16x8_t sums2[Width];
+ for (int i = 0; i < Width; i++) {
+ const int8x8_t lo = vreinterpret_s8_u8(vget_low_u8(src_lines[i]));
+ const int8x8_t hi = vreinterpret_s8_u8(vget_high_u8(src_lines[i]));
+ sums2[i] = vaddl_s8(lo, hi);
+ }
+ int16x8_t sums4[Width / 2];
+ for (int i = 0; i < Width / 2; i++) {
+ sums4[i] = vpaddq_s16(sums2[2 * i], sums2[2 * i + 1]);
+ }
+ if (Width == 4) {
+ int32x4_t sum = vld1q_s32(sums_ptr);
+ int16x8_t sums8 = vpaddq_s16(sums4[0], sums4[1]);
+ sum = vpadalq_s16(sum, sums8);
+ vst1q_s32(sums_ptr, sum);
+ } else {
+ assert(Width == 2);
+ int32x2_t sum = vld1_s32(sums_ptr);
+ int16x4_t sums8 =
+ vpadd_s16(vget_low_s16(sums4[0]), vget_high_s16(sums4[0]));
+ sum = vpadal_s16(sum, sums8);
+ vst1_s32(sums_ptr, sum);
+ }
+ dst->seek_forward_n_cells(1);
+ }
+};
+
+} // namespace gemmlowp
+
+#endif // GEMMLOWP_INTERNAL_PACK_NEON_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/pack_sse.h b/runtimes/nn/depend/external/gemmlowp/internal/pack_sse.h
new file mode 100644
index 000000000..52163c4e5
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/pack_sse.h
@@ -0,0 +1,128 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// pack_SSE.h: optimized SSE specializations of the templates in pack.h.
+
+#ifndef GEMMLOWP_INTERNAL_PACK_SSE_H_
+#define GEMMLOWP_INTERNAL_PACK_SSE_H_
+
+#include <smmintrin.h>
+#include "pack.h"
+
+namespace gemmlowp {
+
+// TODO: Add DepthMajorUint8SideMap
+
+typedef SideMap<const std::uint8_t, SideMapOrder::WidthMajor>
+ WidthMajorUint8SideMap;
+
+template <int Cells>
+using WidthMajorSideFormatNCells4x2 =
+ KernelSideFormat<CellFormat<4, 2, CellOrder::WidthMajor>, Cells>;
+
+template <int Cells>
+class PackingRegisterBlock<
+ WidthMajorUint8SideMap,
+ PackedSideBlock<WidthMajorSideFormatNCells4x2<Cells> > >
+ : public PackingRegisterBlockBase<
+ WidthMajorUint8SideMap,
+ PackedSideBlock<WidthMajorSideFormatNCells4x2<Cells> > > {
+ public:
+ typedef WidthMajorSideFormatNCells4x2<Cells> KernelSideFormat;
+ typedef typename KernelSideFormat::Cell CellFormat;
+ static const int kCells = KernelSideFormat::kCells;
+ static const int kCellWidth = CellFormat::kWidth;
+ static const int kKernelWidth = CellFormat::kWidth * kCells;
+ static const int kCellDepth = CellFormat::kDepth;
+ static const int kCellSize = CellFormat::kSize;
+
+ void Pack(PackedSideBlock<KernelSideFormat>* dst, int start_width) {
+ std::uint8_t* dst_ptr = dst->current_data();
+ const int width_stride = this->complete_src_.width_stride();
+ int depth_step = 8;
+
+ __m128i one = _mm_set1_epi16(1);
+ for (int cell_start_depth = 0; cell_start_depth < kRegisterSize;
+ cell_start_depth += depth_step) {
+ for (int cell_start_width = 0; cell_start_width < kKernelWidth;
+ cell_start_width += kCellWidth) {
+ std::int32_t* cell_sums_of_each_slice_ptr =
+ dst->sums_of_each_slice() + start_width + cell_start_width;
+ const std::uint8_t* src_data =
+ this->complete_src_.data(cell_start_width, cell_start_depth);
+
+ __m128i xmm1 =
+ _mm_loadl_epi64(reinterpret_cast<const __m128i*>(&src_data[0]));
+ __m128i xmm2 = _mm_loadl_epi64(
+ reinterpret_cast<const __m128i*>(&src_data[1 * width_stride]));
+ __m128i xmm3 = _mm_loadl_epi64(
+ reinterpret_cast<const __m128i*>(&src_data[2 * width_stride]));
+ __m128i xmm4 = _mm_loadl_epi64(
+ reinterpret_cast<const __m128i*>(&src_data[3 * width_stride]));
+
+ __m128i xmm5 = _mm_unpacklo_epi16(xmm1, xmm2);
+ __m128i xmm8 = _mm_shuffle_epi32(xmm5, 0x31);
+
+ __m128i xmm6 = _mm_unpacklo_epi16(xmm3, xmm4);
+ __m128i xmm7 = _mm_shuffle_epi32(xmm6, 0x80);
+
+ __m128i xmm9 = _mm_blend_epi16(xmm5, xmm7, 0xcc);
+ __m128i xmm10 = _mm_blend_epi16(xmm8, xmm6, 0xcc);
+
+ _mm_storel_epi64(reinterpret_cast<__m128i*>(&dst_ptr[0]), xmm9);
+ _mm_storel_epi64(
+ reinterpret_cast<__m128i*>(&dst_ptr[kCellSize * kCells]), xmm10);
+
+ __m128i xmm11 = _mm_shuffle_epi32(xmm9, 0xee);
+ __m128i xmm12 = _mm_shuffle_epi32(xmm10, 0xee);
+
+ _mm_storel_epi64(
+ reinterpret_cast<__m128i*>(&dst_ptr[2 * kCellSize * kCells]),
+ xmm11);
+ _mm_storel_epi64(
+ reinterpret_cast<__m128i*>(&dst_ptr[3 * kCellSize * kCells]),
+ xmm12);
+
+ xmm1 = _mm_cvtepu8_epi16(xmm9);
+ xmm2 = _mm_madd_epi16(xmm1, one);
+ __m128i sums_of_each_slice_xmm = _mm_loadu_si128(
+ reinterpret_cast<const __m128i*>(&cell_sums_of_each_slice_ptr[0]));
+ sums_of_each_slice_xmm = _mm_add_epi32(sums_of_each_slice_xmm, xmm2);
+
+ xmm1 = _mm_cvtepu8_epi16(xmm10);
+ xmm2 = _mm_madd_epi16(xmm1, one);
+ sums_of_each_slice_xmm = _mm_add_epi32(sums_of_each_slice_xmm, xmm2);
+
+ xmm1 = _mm_cvtepu8_epi16(xmm11);
+ xmm2 = _mm_madd_epi16(xmm1, one);
+ sums_of_each_slice_xmm = _mm_add_epi32(sums_of_each_slice_xmm, xmm2);
+
+ xmm1 = _mm_cvtepu8_epi16(xmm12);
+ xmm2 = _mm_madd_epi16(xmm1, one);
+ sums_of_each_slice_xmm = _mm_add_epi32(sums_of_each_slice_xmm, xmm2);
+
+ _mm_storeu_si128(
+ reinterpret_cast<__m128i*>(&cell_sums_of_each_slice_ptr[0]),
+ sums_of_each_slice_xmm);
+ dst_ptr += kCellSize;
+ }
+ dst_ptr += 3 * kCellSize * kCells;
+ }
+ dst->seek_forward_n_cells(kCells * kRegisterSize / kCellDepth);
+ }
+};
+
+} // namespace gemmlowp
+
+#endif // GEMMLOWP_INTERNAL_PACK_SSE_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/simd_wrappers.h b/runtimes/nn/depend/external/gemmlowp/internal/simd_wrappers.h
new file mode 100644
index 000000000..e39eaf89f
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/simd_wrappers.h
@@ -0,0 +1,508 @@
+// Copyright 2017 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// simd_wrappers.h: some inline functions wrapping SIMD intrinsics,
+// extending the set of such functions from fixedpoint.h.
+
+#ifndef GEMMLOWP_INTERNAL_SIMD_WRAPPERS_H_
+#define GEMMLOWP_INTERNAL_SIMD_WRAPPERS_H_
+
+#include <algorithm>
+#include <type_traits>
+#include "../fixedpoint/fixedpoint.h"
+
+namespace gemmlowp {
+
+template <typename ScalarType, int ScalarCount>
+struct RegisterType {
+ using Type = ScalarType;
+};
+
+inline std::int32_t Min(std::int32_t a, std::int32_t b) {
+ return std::min(a, b);
+}
+
+inline std::int32_t Max(std::int32_t a, std::int32_t b) {
+ return std::max(a, b);
+}
+
+inline void MulAdd(std::int32_t lhs, std::int32_t rhs, std::int32_t* acc) {
+ *acc += lhs * rhs;
+}
+
+template <typename tScalarType, int tScalarCount>
+struct RegisterBuffer {
+ using ScalarType = tScalarType;
+ static constexpr int kScalarCount = tScalarCount;
+ using RegisterType = typename RegisterType<ScalarType, kScalarCount>::Type;
+ static_assert((kScalarCount & (kScalarCount - 1)) == 0,
+ "kScalarCount must be a power of two");
+ static_assert(sizeof(RegisterType) % sizeof(ScalarType) == 0, "");
+ static constexpr int kRegisterLanes =
+ sizeof(RegisterType) / sizeof(ScalarType);
+ static constexpr int kRegisterCount =
+ (kScalarCount * sizeof(ScalarType) + sizeof(RegisterType) - 1) /
+ sizeof(RegisterType);
+
+ RegisterType reg[kRegisterCount];
+};
+
+template <typename tScalarType, int tRows, int tCols>
+struct RegisterBlock {
+ using ScalarType = tScalarType;
+ static constexpr int kRows = tRows;
+ static constexpr int kCols = tCols;
+ static constexpr int kScalarCount = kRows * kCols;
+ using BufferType = RegisterBuffer<ScalarType, kScalarCount>;
+ using RegisterType = typename BufferType::RegisterType;
+ static constexpr int kRegisterCount = BufferType::kRegisterCount;
+ static constexpr int kRegisterLanes = BufferType::kRegisterLanes;
+
+ BufferType buf;
+};
+
+template <typename RegisterBlockType>
+struct RegisterBlockAddImpl {
+ static RegisterBlockType Run(const RegisterBlockType& lhs,
+ const RegisterBlockType& rhs) {
+ RegisterBlockType result;
+ for (int i = 0; i < RegisterBlockType::kRegisterCount; i++) {
+ result.buf.reg[i] = Add(lhs.buf.reg[i], rhs.buf.reg[i]);
+ }
+ return result;
+ }
+};
+
+template <typename RegisterBlockType>
+RegisterBlockType RegisterBlockAdd(const RegisterBlockType& lhs,
+ const RegisterBlockType& rhs) {
+ return RegisterBlockAddImpl<RegisterBlockType>::Run(lhs, rhs);
+}
+
+template <typename LhsType, typename RhsType>
+struct ShouldFlipLhsRhs {
+ static constexpr bool kValue =
+ (LhsType::kScalarCount < RhsType::kScalarCount) ||
+ (LhsType::kScalarCount == RhsType::kScalarCount &&
+ (LhsType::kRows < RhsType::kRows));
+};
+
+template <typename LhsType, typename RhsType,
+ bool Flip = ShouldFlipLhsRhs<LhsType, RhsType>::kValue>
+struct FlipLhsRhs {
+ using FlippedLhsType = LhsType;
+ using FlippedRhsType = RhsType;
+ static const FlippedLhsType& FlippedLhs(const LhsType& lhs,
+ const RhsType& rhs) {
+ return lhs;
+ }
+ static const FlippedRhsType& FlippedRhs(const LhsType& lhs,
+ const RhsType& rhs) {
+ return rhs;
+ }
+};
+
+template <typename LhsType, typename RhsType>
+struct FlipLhsRhs<LhsType, RhsType, true> {
+ using FlippedLhsType = RhsType;
+ using FlippedRhsType = LhsType;
+ static const FlippedLhsType& FlippedLhs(const LhsType& lhs,
+ const RhsType& rhs) {
+ return rhs;
+ }
+ static const FlippedRhsType& FlippedRhs(const LhsType& lhs,
+ const RhsType& rhs) {
+ return lhs;
+ }
+};
+
+template <typename Lhs, typename Rhs>
+struct BroadcastBinaryOpShape {
+ static constexpr int kRows =
+ Lhs::kRows > Rhs::kRows ? Lhs::kRows : Rhs::kRows;
+ static constexpr int kCols =
+ Lhs::kCols > Rhs::kCols ? Lhs::kCols : Rhs::kCols;
+};
+
+template <typename Lhs, typename Rhs>
+struct BroadcastBinaryOpRegisterBlock {
+ using Shape = BroadcastBinaryOpShape<Lhs, Rhs>;
+ using ScalarType = typename Lhs::ScalarType;
+ using Type = RegisterBlock<ScalarType, Shape::kRows, Shape::kCols>;
+};
+
+template <typename Lhs, typename Rhs>
+struct BroadcastAddImpl {
+ using ResultBlockType =
+ typename BroadcastBinaryOpRegisterBlock<Lhs, Rhs>::Type;
+ static ResultBlockType Run(const Lhs& lhs, const Rhs& rhs) {
+ ResultBlockType result;
+ static constexpr int Rows = ResultBlockType::kRows;
+ static constexpr int Cols = ResultBlockType::kCols;
+ static constexpr int LhsRows = Lhs::kRows;
+ static constexpr int LhsCols = Lhs::kCols;
+ static constexpr int RhsRows = Rhs::kRows;
+ static constexpr int RhsCols = Rhs::kCols;
+
+ static_assert(LhsRows == Rows || LhsRows == 1, "");
+ static_assert(RhsRows == Rows || RhsRows == 1, "");
+ static_assert(LhsCols == Cols || LhsCols == 1, "");
+ static_assert(RhsCols == Cols || RhsCols == 1, "");
+ static_assert(ResultBlockType::kRegisterLanes == 1,
+ "This path is only for scalar values");
+ static_assert(Lhs::kRegisterLanes == 1,
+ "This path is only for scalar values");
+ static_assert(Rhs::kRegisterLanes == 1,
+ "This path is only for scalar values");
+
+ for (int c = 0; c < Cols; c++) {
+ const int lhs_c = LhsCols == Cols ? c : 0;
+ const int rhs_c = RhsCols == Cols ? c : 0;
+ for (int r = 0; r < Rows; r++) {
+ const int lhs_r = LhsRows == Rows ? r : 0;
+ const int rhs_r = RhsRows == Rows ? r : 0;
+ result.buf.reg[r + c * Rows] =
+ Add(lhs.buf.reg[lhs_r + lhs_c * LhsRows],
+ rhs.buf.reg[rhs_r + rhs_c * RhsRows]);
+ }
+ }
+ return result;
+ }
+};
+
+template <typename Lhs, typename Rhs>
+typename BroadcastBinaryOpRegisterBlock<Lhs, Rhs>::Type BroadcastAdd(
+ const Lhs& lhs, const Rhs& rhs) {
+ using Flip = FlipLhsRhs<Lhs, Rhs>;
+ return BroadcastAddImpl<
+ typename Flip::FlippedLhsType,
+ typename Flip::FlippedRhsType>::Run(Flip::FlippedLhs(lhs, rhs),
+ Flip::FlippedRhs(lhs, rhs));
+}
+
+template <typename Lhs, typename Rhs>
+struct BroadcastMulImpl {
+ using ResultBlockType =
+ typename BroadcastBinaryOpRegisterBlock<Lhs, Rhs>::Type;
+ static ResultBlockType Run(const Lhs& lhs, const Rhs& rhs) {
+ ResultBlockType result;
+ static constexpr int Rows = ResultBlockType::kRows;
+ static constexpr int Cols = ResultBlockType::kCols;
+ static constexpr int LhsRows = Lhs::kRows;
+ static constexpr int LhsCols = Lhs::kCols;
+ static constexpr int RhsRows = Rhs::kRows;
+ static constexpr int RhsCols = Rhs::kCols;
+ static_assert(ResultBlockType::kRegisterLanes == 1,
+ "This path is only for scalar values");
+ static_assert(Lhs::kRegisterLanes == 1,
+ "This path is only for scalar values");
+ static_assert(Rhs::kRegisterLanes == 1,
+ "This path is only for scalar values");
+
+ static_assert(LhsRows == Rows || LhsRows == 1, "");
+ static_assert(RhsRows == Rows || RhsRows == 1, "");
+ static_assert(LhsCols == Cols || LhsCols == 1, "");
+ static_assert(RhsCols == Cols || RhsCols == 1, "");
+ for (int c = 0; c < Cols; c++) {
+ const int lhs_c = LhsCols == Cols ? c : 0;
+ const int rhs_c = RhsCols == Cols ? c : 0;
+ for (int r = 0; r < Rows; r++) {
+ const int lhs_r = LhsRows == Rows ? r : 0;
+ const int rhs_r = RhsRows == Rows ? r : 0;
+ result.buf.reg[r + c * Rows] =
+ Mul(lhs.buf.reg[lhs_r + lhs_c * LhsRows],
+ rhs.buf.reg[rhs_r + rhs_c * RhsRows]);
+ }
+ }
+ return result;
+ }
+};
+
+template <typename Lhs, typename Rhs>
+typename BroadcastBinaryOpRegisterBlock<Lhs, Rhs>::Type BroadcastMul(
+ const Lhs& lhs, const Rhs& rhs) {
+ using Flip = FlipLhsRhs<Lhs, Rhs>;
+ return BroadcastMulImpl<
+ typename Flip::FlippedLhsType,
+ typename Flip::FlippedRhsType>::Run(Flip::FlippedLhs(lhs, rhs),
+ Flip::FlippedRhs(lhs, rhs));
+}
+
+template <typename Lhs, typename Rhs, typename Acc>
+struct BroadcastMulAddImpl {
+ static void Run(const Lhs& lhs, const Rhs& rhs, Acc* acc) {
+ static constexpr int Rows = Acc::kRows;
+ static constexpr int Cols = Acc::kCols;
+ static constexpr int LhsRows = Lhs::kRows;
+ static constexpr int LhsCols = Lhs::kCols;
+ static constexpr int RhsRows = Rhs::kRows;
+ static constexpr int RhsCols = Rhs::kCols;
+ static_assert(Acc::kRegisterLanes == 1,
+ "This path is only for scalar values");
+ static_assert(Lhs::kRegisterLanes == 1,
+ "This path is only for scalar values");
+ static_assert(Rhs::kRegisterLanes == 1,
+ "This path is only for scalar values");
+
+ static_assert(LhsRows == Rows || LhsRows == 1, "");
+ static_assert(RhsRows == Rows || RhsRows == 1, "");
+ static_assert(LhsCols == Cols || LhsCols == 1, "");
+ static_assert(RhsCols == Cols || RhsCols == 1, "");
+ for (int c = 0; c < Cols; c++) {
+ const int lhs_c = LhsCols == Cols ? c : 0;
+ const int rhs_c = RhsCols == Cols ? c : 0;
+ for (int r = 0; r < Rows; r++) {
+ const int lhs_r = LhsRows == Rows ? r : 0;
+ const int rhs_r = RhsRows == Rows ? r : 0;
+ MulAdd(lhs.buf.reg[lhs_r + lhs_c * LhsRows],
+ rhs.buf.reg[rhs_r + rhs_c * RhsRows],
+ &acc->buf.reg[r + c * Rows]);
+ }
+ }
+ }
+};
+
+template <typename Lhs, typename Rhs, typename Acc>
+void BroadcastMulAdd(const Lhs& lhs, const Rhs& rhs, Acc* acc) {
+ using Flip = FlipLhsRhs<Lhs, Rhs>;
+ BroadcastMulAddImpl<typename Flip::FlippedLhsType,
+ typename Flip::FlippedRhsType,
+ Acc>::Run(Flip::FlippedLhs(lhs, rhs),
+ Flip::FlippedRhs(lhs, rhs), acc);
+}
+
+template <typename RegisterBlockType, typename SrcObjectType>
+struct LoadImpl {
+ static_assert(std::is_same<SrcObjectType, void>::value,
+ "This generic impl should never be hit");
+};
+
+template <typename ScalarType, int Rows, int Cols, typename SrcScalarType>
+struct LoadImpl<RegisterBlock<ScalarType, Rows, Cols>,
+ MatrixMap<SrcScalarType, MapOrder::ColMajor>> {
+ using RegisterBlockType = RegisterBlock<ScalarType, Rows, Cols>;
+ using SrcObjectType = MatrixMap<SrcScalarType, MapOrder::ColMajor>;
+ static RegisterBlockType Run(const SrcObjectType& src, int row, int col) {
+ RegisterBlockType result;
+ int i = 0;
+ for (int c = 0; c < Cols; c++) {
+ const ScalarType* src_ptr = src.data(row, col + c);
+ for (int r = 0; r < Rows; r++) {
+ result.buf.reg[i++] = *src_ptr++;
+ }
+ }
+ return result;
+ }
+};
+
+template <typename ScalarType, int Rows, int Cols, typename SrcScalarType,
+ VectorShape Shape>
+struct LoadImpl<RegisterBlock<ScalarType, Rows, Cols>,
+ VectorMap<SrcScalarType, Shape>> {
+ using RegisterBlockType = RegisterBlock<ScalarType, Rows, Cols>;
+ using SrcObjectType = VectorMap<SrcScalarType, Shape>;
+ static RegisterBlockType Run(const SrcObjectType& src, int pos) {
+ static_assert(Shape == VectorShape::Col || Rows == 1, "");
+ static_assert(Shape == VectorShape::Row || Cols == 1, "");
+ RegisterBlockType result;
+ for (int i = 0; i < Rows * Cols; i++) {
+ result.buf.reg[i] = src(pos + i);
+ }
+ return result;
+ }
+};
+
+template <typename ScalarType, int Rows, int Cols, typename SrcScalarType,
+ VectorShape Shape>
+struct LoadImpl<RegisterBlock<ScalarType, Rows, Cols>,
+ VectorDup<SrcScalarType, Shape>> {
+ using RegisterBlockType = RegisterBlock<ScalarType, Rows, Cols>;
+ using SrcObjectType = VectorDup<SrcScalarType, Shape>;
+ static RegisterBlockType Run(const SrcObjectType& src, int) {
+ static_assert(Shape == VectorShape::Col || Rows == 1, "");
+ static_assert(Shape == VectorShape::Row || Cols == 1, "");
+ RegisterBlockType result;
+ for (int i = 0; i < Rows * Cols; i++) {
+ result.buf.reg[i] = src(0);
+ }
+ return result;
+ }
+};
+
+template <typename RegisterBlockType, typename SrcObjectType>
+RegisterBlockType Load(const SrcObjectType& src, int row, int col) {
+ return LoadImpl<RegisterBlockType, SrcObjectType>::Run(src, row, col);
+}
+
+template <typename RegisterBlockType, typename SrcObjectType>
+RegisterBlockType Load(const SrcObjectType& src, int pos) {
+ return LoadImpl<RegisterBlockType, SrcObjectType>::Run(src, pos);
+}
+
+template <typename RegisterBlockType>
+struct LoadContiguousImpl {
+ using ScalarType = typename RegisterBlockType::ScalarType;
+ static_assert(RegisterBlockType::kRegisterLanes == 1,
+ "This path is only for scalar values");
+ static RegisterBlockType Run(const ScalarType* src) {
+ RegisterBlockType result;
+ for (int i = 0; i < RegisterBlockType::kScalarCount; i++) {
+ result.buf.reg[i] = src[i];
+ }
+ return result;
+ }
+};
+
+template <typename RegisterBlockType>
+RegisterBlockType LoadContiguous(
+ const typename RegisterBlockType::ScalarType* src) {
+ return LoadContiguousImpl<RegisterBlockType>::Run(src);
+}
+
+template <int BroadcastRows, int BroadcastCols, typename SrcObjectType>
+struct LoadForBroadcastingShape {};
+
+template <int BroadcastRows, int BroadcastCols, typename ScalarType,
+ VectorShape Shape>
+struct LoadForBroadcastingShape<BroadcastRows, BroadcastCols,
+ VectorMap<ScalarType, Shape>> {
+ static constexpr int kRows = Shape == VectorShape::Col ? BroadcastRows : 1;
+ static constexpr int kCols = Shape == VectorShape::Row ? BroadcastCols : 1;
+};
+
+template <int BroadcastRows, int BroadcastCols, typename ScalarType,
+ VectorShape Shape>
+struct LoadForBroadcastingShape<BroadcastRows, BroadcastCols,
+ VectorDup<ScalarType, Shape>> {
+ static constexpr int kRows = 1;
+ static constexpr int kCols = 1;
+};
+
+template <typename RegisterBlockType, typename SrcObjectType>
+struct LoadForBroadcastingRegisterBlock {
+ using Shape =
+ LoadForBroadcastingShape<RegisterBlockType::kRows,
+ RegisterBlockType::kCols, SrcObjectType>;
+ using ScalarType = typename RegisterBlockType::ScalarType;
+ using Type = RegisterBlock<ScalarType, Shape::kRows, Shape::kCols>;
+};
+
+template <typename RegisterBlockType, typename SrcObjectType>
+struct LoadForBroadcastingImpl {
+ static_assert(std::is_same<SrcObjectType, void>::value,
+ "This generic impl should never be hit");
+};
+
+template <typename ScalarType, int Rows, int Cols, typename SrcScalarType,
+ VectorShape Shape>
+struct LoadForBroadcastingImpl<RegisterBlock<ScalarType, Rows, Cols>,
+ VectorMap<SrcScalarType, Shape>> {
+ using RegisterBlockType = RegisterBlock<ScalarType, Rows, Cols>;
+ using SrcObjectType = VectorMap<SrcScalarType, Shape>;
+ using ResultBlockType =
+ typename LoadForBroadcastingRegisterBlock<RegisterBlockType,
+ SrcObjectType>::Type;
+ static_assert(ResultBlockType::kRegisterLanes == 1,
+ "This path is only for scalar values");
+ static ResultBlockType Run(const SrcObjectType& src, int pos) {
+ ResultBlockType result;
+ for (int c = 0; c < ResultBlockType::kCols; c++) {
+ for (int r = 0; r < ResultBlockType::kRows; r++) {
+ const int i = Shape == VectorShape::Col ? r : c;
+ result.buf.reg[r + c * ResultBlockType::kRows] = src(pos + i);
+ }
+ }
+ return result;
+ }
+};
+
+template <typename ScalarType, int Rows, int Cols, typename SrcScalarType,
+ VectorShape Shape>
+struct LoadForBroadcastingImpl<RegisterBlock<ScalarType, Rows, Cols>,
+ VectorDup<SrcScalarType, Shape>> {
+ using RegisterBlockType = RegisterBlock<ScalarType, Rows, Cols>;
+ using SrcObjectType = VectorDup<SrcScalarType, Shape>;
+ using ResultBlockType =
+ typename LoadForBroadcastingRegisterBlock<RegisterBlockType,
+ SrcObjectType>::Type;
+ static_assert(ResultBlockType::kRegisterLanes == 1,
+ "This path is only for scalar values");
+ static ResultBlockType Run(const SrcObjectType& src, int) {
+ ResultBlockType result;
+ for (int c = 0; c < ResultBlockType::kCols; c++) {
+ for (int r = 0; r < ResultBlockType::kRows; r++) {
+ result.buf.reg[r + c * ResultBlockType::kRows] = src(0);
+ }
+ }
+ return result;
+ }
+};
+
+template <typename RegisterBlockType, typename SrcObjectType>
+typename LoadForBroadcastingRegisterBlock<RegisterBlockType,
+ SrcObjectType>::Type
+LoadForBroadcasting(const SrcObjectType& src, int row, int col) {
+ return LoadForBroadcastingImpl<RegisterBlockType, SrcObjectType>::Run(
+ src, row, col);
+}
+
+template <typename RegisterBlockType, typename SrcObjectType>
+typename LoadForBroadcastingRegisterBlock<RegisterBlockType,
+ SrcObjectType>::Type
+LoadForBroadcasting(const SrcObjectType& src, int pos) {
+ return LoadForBroadcastingImpl<RegisterBlockType, SrcObjectType>::Run(src,
+ pos);
+}
+
+template <int ConstantValue, typename RegisterBlockType>
+struct AddConstantImpl {
+ static void Run(RegisterBlockType* block) {
+ using RegisterType = typename RegisterBlockType::RegisterType;
+ const RegisterType dup = Dup<RegisterType>(ConstantValue);
+ for (int i = 0; i < RegisterBlockType::kRegisterCount; i++) {
+ block->buf.reg[i] = Add(block->buf.reg[i], dup);
+ }
+ }
+};
+
+template <typename RegisterBlockType>
+struct AddConstantImpl<0, RegisterBlockType> {
+ static void Run(RegisterBlockType*) {
+ // This is a no-op.
+ }
+};
+
+template <int ConstantValue, typename RegisterBlockType>
+void AddConstant(RegisterBlockType* block) {
+ AddConstantImpl<ConstantValue, RegisterBlockType>::Run(block);
+}
+
+template <int N>
+using RegBufferInt32 = RegisterBuffer<std::int32_t, N>;
+template <int N>
+using RegBufferUint8 = RegisterBuffer<std::uint8_t, N>;
+template <int R, int C>
+using RegBlockInt32 = RegisterBlock<std::int32_t, R, C>;
+template <int R, int C>
+using RegBlockUint8 = RegisterBlock<std::uint8_t, R, C>;
+
+} // end namespace gemmlowp
+
+#if defined GEMMLOWP_NEON
+#include "simd_wrappers_neon.h"
+#elif defined GEMMLOWP_SSE4
+#include "simd_wrappers_sse.h"
+#endif
+
+#endif // GEMMLOWP_INTERNAL_SIMD_WRAPPERS_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/simd_wrappers_common_neon_sse.h b/runtimes/nn/depend/external/gemmlowp/internal/simd_wrappers_common_neon_sse.h
new file mode 100644
index 000000000..3830eb169
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/simd_wrappers_common_neon_sse.h
@@ -0,0 +1,646 @@
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// simd_wrappers_common_neon_sse.h: common SIMD (NEON and SSE) wrapper code
+
+#ifndef GEMMLOWP_INTERNAL_SIMD_WRAPPERS_COMMON_NEON_SSE_H_
+#define GEMMLOWP_INTERNAL_SIMD_WRAPPERS_COMMON_NEON_SSE_H_
+
+#include "simd_wrappers.h"
+
+namespace gemmlowp {
+
+template <typename SrcScalarType, int N>
+struct LoadImpl<RegBlockInt32<4, N>,
+ MatrixMap<SrcScalarType, MapOrder::ColMajor>> {
+ static RegBlockInt32<4, N> Run(
+ const MatrixMap<SrcScalarType, MapOrder::ColMajor>& src, int row,
+ int col) {
+ RegBlockInt32<4, N> result;
+ for (int i = 0; i < N; i++) {
+ result.buf.reg[i] = LoadInt32x4(src.data(row, col + i));
+ }
+ return result;
+ }
+};
+
+template <typename SrcScalarType, int N>
+struct LoadImpl<RegBlockInt32<8, N>,
+ MatrixMap<SrcScalarType, MapOrder::ColMajor>> {
+ static RegBlockInt32<8, N> Run(
+ const MatrixMap<SrcScalarType, MapOrder::ColMajor>& src, int row,
+ int col) {
+ RegBlockInt32<8, N> result;
+ for (int i = 0; i < N; i++) {
+ result.buf.reg[2 * i + 0] = LoadInt32x4(src.data(row + 0, col + i));
+ result.buf.reg[2 * i + 1] = LoadInt32x4(src.data(row + 4, col + i));
+ }
+ return result;
+ }
+};
+
+template <typename SrcScalarType>
+struct LoadImpl<RegBlockInt32<1, 4>,
+ MatrixMap<SrcScalarType, MapOrder::ColMajor>> {
+ static RegBlockInt32<1, 4> Run(
+ const MatrixMap<SrcScalarType, MapOrder::ColMajor>& src, int row,
+ int col) {
+ RegBlockInt32<1, 4> result;
+ std::int32_t buf[4];
+ for (int i = 0; i < 4; i++) {
+ buf[i] = src(row, col + i);
+ }
+ result.buf.reg[0] = LoadInt32x4(buf);
+ return result;
+ }
+};
+
+template <typename SrcScalarType>
+struct LoadImpl<RegBlockInt32<1, 8>,
+ MatrixMap<SrcScalarType, MapOrder::ColMajor>> {
+ static RegBlockInt32<1, 8> Run(
+ const MatrixMap<SrcScalarType, MapOrder::ColMajor>& src, int row,
+ int col) {
+ RegBlockInt32<1, 8> result;
+ std::int32_t buf[8];
+ for (int i = 0; i < 8; i++) {
+ buf[i] = src(row, col + i);
+ }
+ result.buf.reg[0] = LoadInt32x4(buf);
+ result.buf.reg[1] = LoadInt32x4(buf + 4);
+ return result;
+ }
+};
+
+template <typename SrcScalarType>
+struct LoadImpl<RegBlockInt32<4, 1>,
+ VectorMap<SrcScalarType, VectorShape::Col>> {
+ static RegBlockInt32<4, 1> Run(
+ const VectorMap<SrcScalarType, VectorShape::Col>& src, int pos) {
+ RegBlockInt32<4, 1> result;
+ result.buf.reg[0] = LoadInt32x4(src.data(pos));
+ return result;
+ }
+};
+
+template <typename SrcScalarType>
+struct LoadImpl<RegBlockInt32<4, 1>,
+ VectorDup<SrcScalarType, VectorShape::Col>> {
+ static RegBlockInt32<4, 1> Run(
+ const VectorDup<SrcScalarType, VectorShape::Col>& src, int) {
+ RegBlockInt32<4, 1> result;
+ result.buf.reg[0] = LoadInt32x4(src(0));
+ return result;
+ }
+};
+
+template <typename SrcScalarType, int N>
+struct LoadForBroadcastingImpl<RegBlockInt32<4, N>,
+ VectorMap<SrcScalarType, VectorShape::Col>> {
+ using SrcObjectType = VectorMap<SrcScalarType, VectorShape::Col>;
+ using RegisterBlockType = RegBlockInt32<4, N>;
+ using ResultBlockType =
+ typename LoadForBroadcastingRegisterBlock<RegisterBlockType,
+ SrcObjectType>::Type;
+
+ static ResultBlockType Run(const SrcObjectType& src, int pos) {
+ ResultBlockType result;
+ static_assert(ResultBlockType::kRegisterCount == 1, "");
+ result.buf.reg[0] = LoadInt32x4(src.data(pos));
+ return result;
+ }
+};
+
+template <typename SrcScalarType, int N>
+struct LoadForBroadcastingImpl<RegBlockInt32<8, N>,
+ VectorMap<SrcScalarType, VectorShape::Col>> {
+ using SrcObjectType = VectorMap<SrcScalarType, VectorShape::Col>;
+ using RegisterBlockType = RegBlockInt32<8, N>;
+ using ResultBlockType =
+ typename LoadForBroadcastingRegisterBlock<RegisterBlockType,
+ SrcObjectType>::Type;
+
+ static ResultBlockType Run(const SrcObjectType& src, int pos) {
+ ResultBlockType result;
+ static_assert(ResultBlockType::kRegisterCount == 2, "");
+ result.buf.reg[0] = LoadInt32x4(src.data(pos));
+ result.buf.reg[1] = LoadInt32x4(src.data(pos + 4));
+ return result;
+ }
+};
+
+template <typename SrcScalarType>
+struct LoadForBroadcastingImpl<RegBlockInt32<4, 1>,
+ VectorMap<SrcScalarType, VectorShape::Row>> {
+ using SrcObjectType = VectorMap<SrcScalarType, VectorShape::Row>;
+ using RegisterBlockType = RegBlockInt32<4, 1>;
+ using ResultBlockType =
+ typename LoadForBroadcastingRegisterBlock<RegisterBlockType,
+ SrcObjectType>::Type;
+
+ static ResultBlockType Run(const SrcObjectType& src, int pos) {
+ ResultBlockType result;
+ result.buf.reg[0] = src(pos);
+ return result;
+ }
+};
+
+template <typename SrcScalarType, int N>
+struct LoadForBroadcastingImpl<RegBlockInt32<N, 4>,
+ VectorMap<SrcScalarType, VectorShape::Row>> {
+ using SrcObjectType = VectorMap<SrcScalarType, VectorShape::Row>;
+ using RegisterBlockType = RegBlockInt32<N, 4>;
+ using ResultBlockType =
+ typename LoadForBroadcastingRegisterBlock<RegisterBlockType,
+ SrcObjectType>::Type;
+
+ static ResultBlockType Run(const SrcObjectType& src, int pos) {
+ ResultBlockType result;
+ static_assert(ResultBlockType::kRegisterCount == 1, "");
+ result.buf.reg[0] = LoadInt32x4(src.data(pos));
+ return result;
+ }
+};
+
+template <typename SrcScalarType, int N>
+struct LoadForBroadcastingImpl<RegBlockInt32<N, 8>,
+ VectorMap<SrcScalarType, VectorShape::Row>> {
+ using SrcObjectType = VectorMap<SrcScalarType, VectorShape::Row>;
+ using RegisterBlockType = RegBlockInt32<N, 8>;
+ using ResultBlockType =
+ typename LoadForBroadcastingRegisterBlock<RegisterBlockType,
+ SrcObjectType>::Type;
+
+ static ResultBlockType Run(const SrcObjectType& src, int pos) {
+ ResultBlockType result;
+ static_assert(ResultBlockType::kRegisterCount == 2, "");
+ result.buf.reg[0] = LoadInt32x4(src.data(pos));
+ result.buf.reg[1] = LoadInt32x4(src.data(pos + 4));
+ return result;
+ }
+};
+
+// 4x1 := 4x1 + 1x1
+template <>
+struct BroadcastAddImpl<RegBlockInt32<4, 1>, RegBlockInt32<1, 1>> {
+ static RegBlockInt32<4, 1> Run(const RegBlockInt32<4, 1>& lhs,
+ const RegBlockInt32<1, 1>& rhs) {
+ RegBlockInt32<4, 1> result;
+ result.buf.reg[0] = Add(lhs.buf.reg[0], Dup<Int32x4>(rhs.buf.reg[0]));
+ return result;
+ }
+};
+
+// 1x4 := 1x4 + 1x1
+template <>
+struct BroadcastAddImpl<RegBlockInt32<1, 4>, RegBlockInt32<1, 1>> {
+ static RegBlockInt32<1, 4> Run(const RegBlockInt32<1, 4>& lhs,
+ const RegBlockInt32<1, 1>& rhs) {
+ RegBlockInt32<1, 4> result;
+ result.buf.reg[0] = Add(lhs.buf.reg[0], Dup<Int32x4>(rhs.buf.reg[0]));
+ return result;
+ }
+};
+
+// 4x1 := 4x1 + 4x1
+template <>
+struct BroadcastAddImpl<RegBlockInt32<4, 1>, RegBlockInt32<4, 1>> {
+ static RegBlockInt32<4, 1> Run(const RegBlockInt32<4, 1>& lhs,
+ const RegBlockInt32<4, 1>& rhs) {
+ RegBlockInt32<4, 1> result;
+ result.buf.reg[0] = Add(lhs.buf.reg[0], rhs.buf.reg[0]);
+ return result;
+ }
+};
+
+// 1x4 := 1x4 + 1x4
+template <>
+struct BroadcastAddImpl<RegBlockInt32<1, 4>, RegBlockInt32<1, 4>> {
+ static RegBlockInt32<1, 4> Run(const RegBlockInt32<1, 4>& lhs,
+ const RegBlockInt32<1, 4>& rhs) {
+ RegBlockInt32<1, 4> result;
+ result.buf.reg[0] = Add(lhs.buf.reg[0], rhs.buf.reg[0]);
+ return result;
+ }
+};
+
+// 4x4 := 4x4 + 1x4
+template <>
+struct BroadcastAddImpl<RegBlockInt32<4, 4>, RegBlockInt32<1, 4>> {
+ static RegBlockInt32<4, 4> Run(const RegBlockInt32<4, 4>& lhs,
+ const RegBlockInt32<1, 4>& rhs) {
+ RegBlockInt32<4, 4> result;
+ result.buf.reg[0] = Add(lhs.buf.reg[0], DupLane<0>(rhs.buf.reg[0]));
+ result.buf.reg[1] = Add(lhs.buf.reg[1], DupLane<1>(rhs.buf.reg[0]));
+ result.buf.reg[2] = Add(lhs.buf.reg[2], DupLane<2>(rhs.buf.reg[0]));
+ result.buf.reg[3] = Add(lhs.buf.reg[3], DupLane<3>(rhs.buf.reg[0]));
+ return result;
+ }
+};
+
+// 4x4 := 4x4 + 4x1
+template <>
+struct BroadcastAddImpl<RegBlockInt32<4, 4>, RegBlockInt32<4, 1>> {
+ static RegBlockInt32<4, 4> Run(const RegBlockInt32<4, 4>& lhs,
+ const RegBlockInt32<4, 1>& rhs) {
+ RegBlockInt32<4, 4> result;
+ result.buf.reg[0] = Add(lhs.buf.reg[0], rhs.buf.reg[0]);
+ result.buf.reg[1] = Add(lhs.buf.reg[1], rhs.buf.reg[0]);
+ result.buf.reg[2] = Add(lhs.buf.reg[2], rhs.buf.reg[0]);
+ result.buf.reg[3] = Add(lhs.buf.reg[3], rhs.buf.reg[0]);
+ return result;
+ }
+};
+
+// 8x1 := 8x1 + 1x1
+template <>
+struct BroadcastAddImpl<RegBlockInt32<8, 1>, RegBlockInt32<1, 1>> {
+ static RegBlockInt32<8, 1> Run(const RegBlockInt32<8, 1>& lhs,
+ const RegBlockInt32<1, 1>& rhs) {
+ RegBlockInt32<8, 1> result;
+ const Int32x4 p = Dup<Int32x4>(rhs.buf.reg[0]);
+ for (int i = 0; i < 2; i++) {
+ result.buf.reg[i] = Add(lhs.buf.reg[i], p);
+ }
+ return result;
+ }
+};
+
+// 8x1 := 8x1 + 8x1
+template <>
+struct BroadcastAddImpl<RegBlockInt32<8, 1>, RegBlockInt32<8, 1>> {
+ static RegBlockInt32<8, 1> Run(const RegBlockInt32<8, 1>& lhs,
+ const RegBlockInt32<8, 1>& rhs) {
+ RegBlockInt32<8, 1> result;
+ for (int i = 0; i < 2; i++) {
+ result.buf.reg[i] = Add(lhs.buf.reg[i], rhs.buf.reg[i]);
+ }
+ return result;
+ }
+};
+
+// 8x4 := 8x4 + 1x4
+template <>
+struct BroadcastAddImpl<RegBlockInt32<8, 4>, RegBlockInt32<1, 4>> {
+ static RegBlockInt32<8, 4> Run(const RegBlockInt32<8, 4>& lhs,
+ const RegBlockInt32<1, 4>& rhs) {
+ RegBlockInt32<8, 4> result;
+ result.buf.reg[0] = Add(lhs.buf.reg[0], DupLane<0>(rhs.buf.reg[0]));
+ result.buf.reg[1] = Add(lhs.buf.reg[1], DupLane<0>(rhs.buf.reg[0]));
+ result.buf.reg[2] = Add(lhs.buf.reg[2], DupLane<1>(rhs.buf.reg[0]));
+ result.buf.reg[3] = Add(lhs.buf.reg[3], DupLane<1>(rhs.buf.reg[0]));
+ result.buf.reg[4] = Add(lhs.buf.reg[4], DupLane<2>(rhs.buf.reg[0]));
+ result.buf.reg[5] = Add(lhs.buf.reg[5], DupLane<2>(rhs.buf.reg[0]));
+ result.buf.reg[6] = Add(lhs.buf.reg[6], DupLane<3>(rhs.buf.reg[0]));
+ result.buf.reg[7] = Add(lhs.buf.reg[7], DupLane<3>(rhs.buf.reg[0]));
+ return result;
+ }
+};
+
+// 8x4 := 8x4 + 8x1
+template <>
+struct BroadcastAddImpl<RegBlockInt32<8, 4>, RegBlockInt32<8, 1>> {
+ static RegBlockInt32<8, 4> Run(const RegBlockInt32<8, 4>& lhs,
+ const RegBlockInt32<8, 1>& rhs) {
+ RegBlockInt32<8, 4> result;
+ result.buf.reg[0] = Add(lhs.buf.reg[0], rhs.buf.reg[0]);
+ result.buf.reg[1] = Add(lhs.buf.reg[1], rhs.buf.reg[1]);
+ result.buf.reg[2] = Add(lhs.buf.reg[2], rhs.buf.reg[0]);
+ result.buf.reg[3] = Add(lhs.buf.reg[3], rhs.buf.reg[1]);
+ result.buf.reg[4] = Add(lhs.buf.reg[4], rhs.buf.reg[0]);
+ result.buf.reg[5] = Add(lhs.buf.reg[5], rhs.buf.reg[1]);
+ result.buf.reg[6] = Add(lhs.buf.reg[6], rhs.buf.reg[0]);
+ result.buf.reg[7] = Add(lhs.buf.reg[7], rhs.buf.reg[1]);
+ return result;
+ }
+};
+
+// 1x8 := 1x8 + 1x8
+template <>
+struct BroadcastAddImpl<RegBlockInt32<1, 8>, RegBlockInt32<1, 8>> {
+ static RegBlockInt32<1, 8> Run(const RegBlockInt32<1, 8>& lhs,
+ const RegBlockInt32<1, 8>& rhs) {
+ RegBlockInt32<1, 8> result;
+ result.buf.reg[0] = Add(lhs.buf.reg[0], rhs.buf.reg[0]);
+ result.buf.reg[1] = Add(lhs.buf.reg[1], rhs.buf.reg[1]);
+ return result;
+ }
+};
+
+// 1x8 := 1x8 + 1x1
+template <>
+struct BroadcastAddImpl<RegBlockInt32<1, 8>, RegBlockInt32<1, 1>> {
+ static RegBlockInt32<1, 8> Run(const RegBlockInt32<1, 8>& lhs,
+ const RegBlockInt32<1, 1>& rhs) {
+ RegBlockInt32<1, 8> result;
+ result.buf.reg[0] = Add(lhs.buf.reg[0], Dup<Int32x4>(rhs.buf.reg[0]));
+ result.buf.reg[1] = Add(lhs.buf.reg[1], Dup<Int32x4>(rhs.buf.reg[0]));
+ return result;
+ }
+};
+
+// 4x1 := 4x1 * 1x1
+template <>
+struct BroadcastMulImpl<RegBlockInt32<4, 1>, RegBlockInt32<1, 1>> {
+ static RegBlockInt32<4, 1> Run(const RegBlockInt32<4, 1>& lhs,
+ const RegBlockInt32<1, 1>& rhs) {
+ RegBlockInt32<4, 1> result;
+ result.buf.reg[0] = Mul(lhs.buf.reg[0], Dup<Int32x4>(rhs.buf.reg[0]));
+ return result;
+ }
+};
+
+// 4x1 := 4x1 * 4x1
+template <>
+struct BroadcastMulImpl<RegBlockInt32<4, 1>, RegBlockInt32<4, 1>> {
+ static RegBlockInt32<4, 1> Run(const RegBlockInt32<4, 1>& lhs,
+ const RegBlockInt32<4, 1>& rhs) {
+ RegBlockInt32<4, 1> result;
+ result.buf.reg[0] = Mul(lhs.buf.reg[0], rhs.buf.reg[0]);
+ return result;
+ }
+};
+
+// 1x4 := 1x4 * 1x4
+template <>
+struct BroadcastMulImpl<RegBlockInt32<1, 4>, RegBlockInt32<1, 4>> {
+ static RegBlockInt32<1, 4> Run(const RegBlockInt32<1, 4>& lhs,
+ const RegBlockInt32<1, 4>& rhs) {
+ RegBlockInt32<1, 4> result;
+ result.buf.reg[0] = Mul(lhs.buf.reg[0], rhs.buf.reg[0]);
+ return result;
+ }
+};
+
+// 1x4 := 1x4 * 1x1
+template <>
+struct BroadcastMulImpl<RegBlockInt32<1, 4>, RegBlockInt32<1, 1>> {
+ static RegBlockInt32<1, 4> Run(const RegBlockInt32<1, 4>& lhs,
+ const RegBlockInt32<1, 1>& rhs) {
+ RegBlockInt32<1, 4> result;
+ result.buf.reg[0] = Mul(lhs.buf.reg[0], rhs.buf.reg[0]);
+ return result;
+ }
+};
+
+// 4x4 := 4x4 * 1x4
+template <>
+struct BroadcastMulImpl<RegBlockInt32<4, 4>, RegBlockInt32<1, 4>> {
+ static RegBlockInt32<4, 4> Run(const RegBlockInt32<4, 4>& lhs,
+ const RegBlockInt32<1, 4>& rhs) {
+ RegBlockInt32<4, 4> result;
+ const Int32x4 p = rhs.buf.reg[0];
+ result.buf.reg[0] = MulByRhsLane<0>(lhs.buf.reg[0], p);
+ result.buf.reg[1] = MulByRhsLane<1>(lhs.buf.reg[1], p);
+ result.buf.reg[2] = MulByRhsLane<2>(lhs.buf.reg[2], p);
+ result.buf.reg[3] = MulByRhsLane<3>(lhs.buf.reg[3], p);
+ return result;
+ }
+};
+
+// 4x4 := 4x4 * 4x1
+template <>
+struct BroadcastMulImpl<RegBlockInt32<4, 4>, RegBlockInt32<4, 1>> {
+ static RegBlockInt32<4, 4> Run(const RegBlockInt32<4, 4>& lhs,
+ const RegBlockInt32<4, 1>& rhs) {
+ RegBlockInt32<4, 4> result;
+ const Int32x4 p = rhs.buf.reg[0];
+ result.buf.reg[0] = Mul(lhs.buf.reg[0], p);
+ result.buf.reg[1] = Mul(lhs.buf.reg[1], p);
+ result.buf.reg[2] = Mul(lhs.buf.reg[2], p);
+ result.buf.reg[3] = Mul(lhs.buf.reg[3], p);
+ return result;
+ }
+};
+
+// 8x1 := 8x1 * 1x1
+template <>
+struct BroadcastMulImpl<RegBlockInt32<8, 1>, RegBlockInt32<1, 1>> {
+ static RegBlockInt32<8, 1> Run(const RegBlockInt32<8, 1>& lhs,
+ const RegBlockInt32<1, 1>& rhs) {
+ RegBlockInt32<8, 1> result;
+ const std::int32_t p = rhs.buf.reg[0];
+ for (int i = 0; i < 2; i++) {
+ result.buf.reg[i] = Mul(lhs.buf.reg[i], p);
+ }
+ return result;
+ }
+};
+
+// 8x1 := 8x1 * 8x1
+template <>
+struct BroadcastMulImpl<RegBlockInt32<8, 1>, RegBlockInt32<8, 1>> {
+ static RegBlockInt32<8, 1> Run(const RegBlockInt32<8, 1>& lhs,
+ const RegBlockInt32<8, 1>& rhs) {
+ RegBlockInt32<8, 1> result;
+ for (int i = 0; i < 2; i++) {
+ result.buf.reg[i] = Mul(lhs.buf.reg[i], rhs.buf.reg[i]);
+ }
+ return result;
+ }
+};
+
+// 8x4 := 8x4 * 1x4
+template <>
+struct BroadcastMulImpl<RegBlockInt32<8, 4>, RegBlockInt32<1, 4>> {
+ static RegBlockInt32<8, 4> Run(const RegBlockInt32<8, 4>& lhs,
+ const RegBlockInt32<1, 4>& rhs) {
+ RegBlockInt32<8, 4> result;
+ const Int32x4 p = rhs.buf.reg[0];
+ for (int i = 0; i < 2; i++) {
+ result.buf.reg[i + 0] = MulByRhsLane<0>(lhs.buf.reg[i + 0], p);
+ result.buf.reg[i + 2] = MulByRhsLane<1>(lhs.buf.reg[i + 2], p);
+ result.buf.reg[i + 4] = MulByRhsLane<2>(lhs.buf.reg[i + 4], p);
+ result.buf.reg[i + 6] = MulByRhsLane<3>(lhs.buf.reg[i + 6], p);
+ }
+ return result;
+ }
+};
+
+// 8x4 := 8x4 * 8x1
+template <>
+struct BroadcastMulImpl<RegBlockInt32<8, 4>, RegBlockInt32<8, 1>> {
+ static RegBlockInt32<8, 4> Run(const RegBlockInt32<8, 4>& lhs,
+ const RegBlockInt32<8, 1>& rhs) {
+ RegBlockInt32<8, 4> result;
+ const Int32x4 p[2]{rhs.buf.reg[0], rhs.buf.reg[1]};
+ for (int i = 0; i < 4; i++) {
+ for (int j = 0; j < 2; j++) {
+ const int k = j + 2 * i;
+ result.buf.reg[k] = Mul(lhs.buf.reg[k], p[j]);
+ }
+ }
+ return result;
+ }
+};
+
+// Rx1 += Rx1 * 1x1
+template <int Rows>
+struct BroadcastMulAddImpl<RegBlockInt32<Rows, 1>, RegBlockInt32<1, 1>,
+ RegBlockInt32<Rows, 1>> {
+ static void Run(const RegBlockInt32<Rows, 1>& lhs,
+ const RegBlockInt32<1, 1>& rhs, RegBlockInt32<Rows, 1>* acc) {
+ const std::int32_t p = rhs.buf.reg[0];
+ for (int i = 0; i < RegBlockInt32<Rows, 1>::kRegisterCount; i++) {
+ MulAdd(lhs.buf.reg[i], p, &acc->buf.reg[i]);
+ }
+ }
+};
+
+// RxC += Rx1 * 1x1
+template <int Rows, int Cols>
+struct BroadcastMulAddImpl<RegBlockInt32<Rows, 1>, RegBlockInt32<1, 1>,
+ RegBlockInt32<Rows, Cols>> {
+ static void Run(const RegBlockInt32<Rows, 1>& lhs,
+ const RegBlockInt32<1, 1>& rhs,
+ RegBlockInt32<Rows, Cols>* acc) {
+ const std::int32_t p = rhs.buf.reg[0];
+ static constexpr int kRegsPerCol = RegBlockInt32<Rows, 1>::kRegisterCount;
+ for (int i = 0; i < kRegsPerCol; i++) {
+ const Int32x4 q = Mul(lhs.buf.reg[i], p);
+ for (int j = 0; j < Cols; j++) {
+ acc->buf.reg[i + j * kRegsPerCol] =
+ Add(acc->buf.reg[i + j * kRegsPerCol], q);
+ }
+ }
+ }
+};
+
+// 1xC += 1xC * 1x1
+template <int Cols>
+struct BroadcastMulAddImpl<RegBlockInt32<1, Cols>, RegBlockInt32<1, 1>,
+ RegBlockInt32<1, Cols>> {
+ static void Run(const RegBlockInt32<1, Cols>& lhs,
+ const RegBlockInt32<1, 1>& rhs, RegBlockInt32<1, Cols>* acc) {
+ const std::int32_t p = rhs.buf.reg[0];
+ for (int i = 0; i < RegBlockInt32<1, Cols>::kRegisterCount; i++) {
+ MulAdd(lhs.buf.reg[i], p, &acc->buf.reg[i]);
+ }
+ }
+};
+
+// RxC += 1x1 * 1x1
+template <int Rows, int Cols>
+struct BroadcastMulAddImpl<RegBlockInt32<1, 1>, RegBlockInt32<1, 1>,
+ RegBlockInt32<Rows, Cols>> {
+ static void Run(const RegBlockInt32<1, 1>& lhs,
+ const RegBlockInt32<1, 1>& rhs,
+ RegBlockInt32<Rows, Cols>* acc) {
+ const Int32x4 p = Dup<Int32x4>(Mul(lhs.buf.reg[0], rhs.buf.reg[0]));
+ for (int i = 0; i < RegBlockInt32<Rows, Cols>::kRegisterCount; i++) {
+ acc->buf.reg[i] = Add(acc->buf.reg[i], p);
+ }
+ }
+};
+
+// 1x1 += 1x1 * 1x1
+template <>
+struct BroadcastMulAddImpl<RegBlockInt32<1, 1>, RegBlockInt32<1, 1>,
+ RegBlockInt32<1, 1>> {
+ static void Run(const RegBlockInt32<1, 1>& lhs,
+ const RegBlockInt32<1, 1>& rhs, RegBlockInt32<1, 1>* acc) {
+ MulAdd(lhs.buf.reg[0], rhs.buf.reg[0], &acc->buf.reg[0]);
+ }
+};
+
+// Rx4 += Rx1 * 1x4
+template <int Rows>
+struct BroadcastMulAddImpl<RegBlockInt32<Rows, 1>, RegBlockInt32<1, 4>,
+ RegBlockInt32<Rows, 4>> {
+ static void Run(const RegBlockInt32<Rows, 1>& lhs,
+ const RegBlockInt32<1, 4>& rhs, RegBlockInt32<Rows, 4>* acc) {
+ const Int32x4 p = rhs.buf.reg[0];
+ static constexpr int kRegsPerCol = RegBlockInt32<Rows, 1>::kRegisterCount;
+ for (int i = 0; i < kRegsPerCol; i++) {
+ MulAddByRhsLane<0>(lhs.buf.reg[i], p, &acc->buf.reg[i + 0 * kRegsPerCol]);
+ MulAddByRhsLane<1>(lhs.buf.reg[i], p, &acc->buf.reg[i + 1 * kRegsPerCol]);
+ MulAddByRhsLane<2>(lhs.buf.reg[i], p, &acc->buf.reg[i + 2 * kRegsPerCol]);
+ MulAddByRhsLane<3>(lhs.buf.reg[i], p, &acc->buf.reg[i + 3 * kRegsPerCol]);
+ }
+ }
+};
+
+// Rx4 += 1x4 * 1x1
+template <int Rows>
+struct BroadcastMulAddImpl<RegBlockInt32<1, 4>, RegBlockInt32<1, 1>,
+ RegBlockInt32<Rows, 4>> {
+ static void Run(const RegBlockInt32<1, 4>& lhs,
+ const RegBlockInt32<1, 1>& rhs, RegBlockInt32<Rows, 4>* acc) {
+ const Int32x4 p = Mul(lhs.buf.reg[0], rhs.buf.reg[0]);
+ Int32x4 q[4];
+ q[0] = DupLane<0>(p);
+ q[1] = DupLane<1>(p);
+ q[2] = DupLane<2>(p);
+ q[3] = DupLane<3>(p);
+ static constexpr int kRegsPerCol = RegBlockInt32<Rows, 1>::kRegisterCount;
+ for (int i = 0; i < kRegsPerCol; i++) {
+ for (int j = 0; j < 4; j++) {
+ acc->buf.reg[i + j * kRegsPerCol] =
+ Add(q[j], acc->buf.reg[i + j * kRegsPerCol]);
+ }
+ }
+ }
+};
+
+// 1xC += 1x1 * 1x1
+template <int Cols>
+struct BroadcastMulAddImpl<RegBlockInt32<1, 1>, RegBlockInt32<1, 1>,
+ RegBlockInt32<1, Cols>> {
+ static void Run(const RegBlockInt32<1, 1>& lhs,
+ const RegBlockInt32<1, 1>& rhs, RegBlockInt32<1, Cols>* acc) {
+ const Int32x4 p = Dup<Int32x4>(Mul(lhs.buf.reg[0], rhs.buf.reg[0]));
+ for (int i = 0; i < RegBlockInt32<1, Cols>::kRegisterCount; i++) {
+ acc->buf.reg[i] = Add(acc->buf.reg[i], p);
+ }
+ }
+};
+
+// 1x4 += 1x4 * 1x1
+template <>
+struct BroadcastMulAddImpl<RegBlockInt32<1, 4>, RegBlockInt32<1, 1>,
+ RegBlockInt32<1, 4>> {
+ static void Run(const RegBlockInt32<1, 4>& lhs,
+ const RegBlockInt32<1, 1>& rhs, RegBlockInt32<1, 4>* acc) {
+ const std::int32_t p = rhs.buf.reg[0];
+ MulAdd(lhs.buf.reg[0], p, &acc->buf.reg[0]);
+ }
+};
+
+// 4xC += 4x1 * 1x1
+template <int Cols>
+struct BroadcastMulAddImpl<RegBlockInt32<4, 1>, RegBlockInt32<1, 1>,
+ RegBlockInt32<4, Cols>> {
+ static void Run(const RegBlockInt32<4, 1>& lhs,
+ const RegBlockInt32<1, 1>& rhs, RegBlockInt32<4, Cols>* acc) {
+ const Int32x4 p = Mul(lhs.buf.reg[0], rhs.buf.reg[0]);
+ for (int i = 0; i < Cols; i++) {
+ acc->buf.reg[i] = Add(p, acc->buf.reg[i]);
+ }
+ }
+};
+
+// 4x1 += 4x1 * 1x1
+template <>
+struct BroadcastMulAddImpl<RegBlockInt32<4, 1>, RegBlockInt32<1, 1>,
+ RegBlockInt32<4, 1>> {
+ static void Run(const RegBlockInt32<4, 1>& lhs,
+ const RegBlockInt32<1, 1>& rhs, RegBlockInt32<4, 1>* acc) {
+ const std::int32_t p = rhs.buf.reg[0];
+ MulAdd(lhs.buf.reg[0], p, &acc->buf.reg[0]);
+ }
+};
+
+} // namespace gemmlowp
+
+#endif // GEMMLOWP_INTERNAL_SIMD_WRAPPERS_COMMON_NEON_SSE_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/simd_wrappers_neon.h b/runtimes/nn/depend/external/gemmlowp/internal/simd_wrappers_neon.h
new file mode 100644
index 000000000..c992b1597
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/simd_wrappers_neon.h
@@ -0,0 +1,150 @@
+// Copyright 2017 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// simd_wrappers_neon.h: NEON specialization of simd_wrappers.h
+
+#ifndef GEMMLOWP_INTERNAL_SIMD_WRAPPERS_NEON_H_
+#define GEMMLOWP_INTERNAL_SIMD_WRAPPERS_NEON_H_
+
+#include <arm_neon.h>
+
+namespace gemmlowp {
+
+using Int32x4 = int32x4_t;
+using Uint8x8 = uint8x8_t;
+
+template <int ScalarCount>
+struct RegisterType<std::int32_t, ScalarCount> {
+ using Type =
+ typename std::conditional<ScalarCount >= 4, Int32x4, std::int32_t>::type;
+};
+
+template <int ScalarCount>
+struct RegisterType<std::uint8_t, ScalarCount> {
+ using Type = typename std::conditional<
+ ScalarCount >= 8, Uint8x8,
+ typename std::conditional<ScalarCount >= 4, std::uint32_t,
+ std::uint8_t>::type>::type;
+};
+
+inline Int32x4 LoadInt32x4(const std::int32_t* src) { return vld1q_s32(src); }
+
+inline void StoreInt32x4(std::int32_t* dst, Int32x4 value) {
+ vst1q_s32(dst, value);
+}
+
+template <int Lane>
+std::int32_t GetLane(Int32x4 value) {
+ return vgetq_lane_s32(value, Lane);
+}
+
+template <int Lane>
+Int32x4 DupLane(Int32x4 value) {
+ switch (Lane) {
+ case 0:
+ return vdupq_lane_s32(vget_low_s32(value), 0);
+ case 1:
+ return vdupq_lane_s32(vget_low_s32(value), 1);
+ case 2:
+ return vdupq_lane_s32(vget_high_s32(value), 0);
+ case 3:
+ return vdupq_lane_s32(vget_high_s32(value), 1);
+ default:
+ static_assert(Lane >= 0 && Lane <= 3, "");
+ return vdupq_n_s32(0);
+ }
+}
+
+inline Int32x4 Mul(Int32x4 a, std::int32_t b) { return vmulq_n_s32(a, b); }
+
+inline Int32x4 Min(Int32x4 a, Int32x4 b) { return vminq_s32(a, b); }
+
+inline Int32x4 Max(Int32x4 a, Int32x4 b) { return vmaxq_s32(a, b); }
+
+inline Int32x4 SaturatingRoundingDoublingHighMul(Int32x4 a, std::int32_t b) {
+ return vqrdmulhq_n_s32(a, b);
+}
+
+template <int Lane>
+Int32x4 MulByRhsLane(Int32x4 a, Int32x4 b) {
+ switch (Lane) {
+ case 0:
+ return vmulq_lane_s32(a, vget_low_s32(b), 0);
+ case 1:
+ return vmulq_lane_s32(a, vget_low_s32(b), 1);
+ case 2:
+ return vmulq_lane_s32(a, vget_high_s32(b), 0);
+ case 3:
+ return vmulq_lane_s32(a, vget_high_s32(b), 1);
+ default:
+ static_assert(Lane >= 0 && Lane <= 3, "");
+ return vdupq_n_s32(0);
+ }
+}
+
+inline void MulAdd(Int32x4 lhs, Int32x4 rhs, Int32x4* acc) {
+ *acc = vmlaq_s32(*acc, lhs, rhs);
+}
+
+inline void MulAdd(Int32x4 lhs, std::int32_t rhs, Int32x4* acc) {
+ *acc = vmlaq_n_s32(*acc, lhs, rhs);
+}
+
+template <int Lane>
+inline void MulAddByRhsLane(Int32x4 lhs, Int32x4 rhs, Int32x4* acc) {
+ switch (Lane) {
+ case 0:
+ *acc = vmlaq_lane_s32(*acc, lhs, vget_low_s32(rhs), 0);
+ break;
+ case 1:
+ *acc = vmlaq_lane_s32(*acc, lhs, vget_low_s32(rhs), 1);
+ break;
+ case 2:
+ *acc = vmlaq_lane_s32(*acc, lhs, vget_high_s32(rhs), 0);
+ break;
+ case 3:
+ *acc = vmlaq_lane_s32(*acc, lhs, vget_high_s32(rhs), 1);
+ break;
+ default:
+ static_assert(Lane >= 0 && Lane <= 3, "");
+ }
+}
+
+template <>
+struct LoadContiguousImpl<RegBlockUint8<8, 8>> {
+ static RegBlockUint8<8, 8> Run(const std::uint8_t* src) {
+ RegBlockUint8<8, 8> result;
+ for (int i = 0; i < 8; i++) {
+ result.buf.reg[i] = vld1_u8(src + 8 * i);
+ }
+ return result;
+ }
+};
+
+template <>
+struct LoadContiguousImpl<RegBlockInt32<8, 8>> {
+ static RegBlockInt32<8, 8> Run(const std::int32_t* src) {
+ RegBlockInt32<8, 8> result;
+ for (int i = 0; i < 16; i++) {
+ result.buf.reg[i] = vld1q_s32(src + 4 * i);
+ }
+ return result;
+ }
+};
+
+} // end namespace gemmlowp
+
+#include "simd_wrappers_common_neon_sse.h"
+
+#endif // GEMMLOWP_INTERNAL_SIMD_WRAPPERS_NEON_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/simd_wrappers_sse.h b/runtimes/nn/depend/external/gemmlowp/internal/simd_wrappers_sse.h
new file mode 100644
index 000000000..6480b6690
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/simd_wrappers_sse.h
@@ -0,0 +1,123 @@
+// Copyright 2017 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// simd_wrappers_neon.h: SSE SIMD wrappers
+
+#ifndef GEMMLOWP_INTERNAL_SIMD_WRAPPERS_SSE_H_
+#define GEMMLOWP_INTERNAL_SIMD_WRAPPERS_SSE_H_
+
+#include <smmintrin.h>
+
+namespace gemmlowp {
+
+using Int32x4 = __m128i;
+using Uint8x16 = __m128i;
+
+template <int ScalarCount>
+struct RegisterType<std::int32_t, ScalarCount> {
+ using Type =
+ typename std::conditional<ScalarCount >= 4, Int32x4, std::int32_t>::type;
+};
+
+template <int ScalarCount>
+struct RegisterType<std::uint8_t, ScalarCount> {
+ using Type = typename std::conditional<
+ ScalarCount >= 16, Uint8x16,
+ typename std::conditional<ScalarCount >= 4, std::uint32_t,
+ std::uint8_t>::type>::type;
+};
+
+inline Int32x4 LoadInt32x4(const std::int32_t* src) {
+ return _mm_loadu_si128(reinterpret_cast<const Int32x4*>(src));
+}
+
+inline void StoreInt32x4(std::int32_t* dst, Int32x4 value) {
+ _mm_storeu_si128(reinterpret_cast<__m128i*>(dst), value);
+}
+
+inline Uint8x16 LoadUint8x16(const std::uint8_t* src) {
+ return _mm_loadu_si128(reinterpret_cast<const Uint8x16*>(src));
+}
+
+inline void StoreUint8x16(std::uint8_t* dst, Uint8x16 value) {
+ _mm_storeu_si128(reinterpret_cast<__m128i*>(dst), value);
+}
+
+template <int Lane>
+std::int32_t GetLane(Int32x4 value) {
+ return _mm_extract_epi32(value, Lane);
+}
+
+template <int Lane>
+Int32x4 DupLane(Int32x4 value) {
+ return _mm_shuffle_epi32(value, _MM_SHUFFLE(Lane, Lane, Lane, Lane));
+}
+
+inline Int32x4 Mul(Int32x4 a, std::int32_t b) {
+ return Mul(a, Dup<Int32x4>(b));
+}
+
+inline Int32x4 Min(Int32x4 a, Int32x4 b) { return _mm_min_epi32(a, b); }
+
+inline Int32x4 Max(Int32x4 a, Int32x4 b) { return _mm_max_epi32(a, b); }
+
+inline Int32x4 SaturatingRoundingDoublingHighMul(Int32x4 a, std::int32_t b) {
+ return SaturatingRoundingDoublingHighMul(a, Dup<Int32x4>(b));
+}
+
+template <int Lane>
+Int32x4 MulByRhsLane(Int32x4 a, Int32x4 b) {
+ return Mul(a, DupLane<Lane>(b));
+}
+
+inline void MulAdd(Int32x4 lhs, Int32x4 rhs, Int32x4* acc) {
+ *acc = Add(*acc, Mul(lhs, rhs));
+}
+
+inline void MulAdd(Int32x4 lhs, std::int32_t rhs, Int32x4* acc) {
+ *acc = Add(*acc, Mul(lhs, rhs));
+}
+
+template <int Lane>
+inline void MulAddByRhsLane(Int32x4 lhs, Int32x4 rhs, Int32x4* acc) {
+ *acc = Add(*acc, MulByRhsLane<Lane>(lhs, rhs));
+}
+
+template <>
+struct LoadContiguousImpl<RegBlockUint8<8, 8>> {
+ static RegBlockUint8<8, 8> Run(const std::uint8_t* src) {
+ RegBlockUint8<8, 8> result;
+ for (int i = 0; i < 4; i++) {
+ result.buf.reg[i] = LoadUint8x16(src + 16 * i);
+ }
+ return result;
+ }
+};
+
+template <>
+struct LoadContiguousImpl<RegBlockInt32<8, 8>> {
+ static RegBlockInt32<8, 8> Run(const std::int32_t* src) {
+ RegBlockInt32<8, 8> result;
+ for (int i = 0; i < 16; i++) {
+ result.buf.reg[i] = LoadInt32x4(src + 4 * i);
+ }
+ return result;
+ }
+};
+
+} // end namespace gemmlowp
+
+#include "simd_wrappers_common_neon_sse.h"
+
+#endif // GEMMLOWP_INTERNAL_SIMD_WRAPPERS_SSE_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/single_thread_gemm.h b/runtimes/nn/depend/external/gemmlowp/internal/single_thread_gemm.h
new file mode 100644
index 000000000..3d430c5d4
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/single_thread_gemm.h
@@ -0,0 +1,158 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// single_thread_gemm.h: Single-threaded GEMM implementation.
+// This is a good place to start reading code, as it shows the overall
+// structure of a GEMM and is much simpler than multi_thread_gemm.h.
+
+#ifndef GEMMLOWP_INTERNAL_SINGLE_THREAD_GEMM_H_
+#define GEMMLOWP_INTERNAL_SINGLE_THREAD_GEMM_H_
+
+#include <cassert>
+
+#include "../public/map.h"
+#include "allocator.h"
+#include "compute.h"
+#include "kernel.h"
+#include "pack.h"
+#include "unpack.h"
+
+#ifdef GEMMLOWP_PROFILING_SIZES
+#ifndef GEMMLOWP_PROFILING
+#error GEMMLOWP_PROFILING_SIZES without GEMMLOWP_PROFILING
+#endif
+#include <string>
+#include <unordered_map>
+#endif
+
+namespace gemmlowp {
+
+class SingleThreadGemmContext {
+ public:
+ Allocator* allocator() { return &allocator_; }
+
+ void set_l1_bytes_to_use(int n) { l1_bytes_to_use_ = n; }
+ void set_l2_bytes_to_use(int n) { l2_bytes_to_use_ = n; }
+ void set_l2_rhs_factor(float n) { l2_rhs_factor_ = n; }
+
+ int l1_bytes_to_use() const { return l1_bytes_to_use_; }
+ int l2_bytes_to_use() const { return l2_bytes_to_use_; }
+ float l2_rhs_factor() const { return l2_rhs_factor_; }
+
+ protected:
+ Allocator allocator_;
+
+ // The cache configurationt to use.
+ int l1_bytes_to_use_ = kDefaultL1CacheSize;
+ int l2_bytes_to_use_ = kDefaultL2CacheSize;
+ float l2_rhs_factor_ = kDefaultL2RhsFactor;
+};
+
+template <typename KernelFormat, typename InputScalar, typename OutputScalar,
+ typename BitDepthParams, MapOrder LhsOrder, MapOrder RhsOrder,
+ MapOrder ResultOrder, typename LhsOffset, typename RhsOffset,
+ typename OutputPipelineType>
+void SingleThreadGemm(SingleThreadGemmContext* context,
+ const KernelBase& kernel,
+ const MatrixMap<const InputScalar, LhsOrder>& lhs,
+ const MatrixMap<const InputScalar, RhsOrder>& rhs,
+ MatrixMap<OutputScalar, ResultOrder>* result,
+ const LhsOffset& lhs_offset, const RhsOffset& rhs_offset,
+ const OutputPipelineType& output_pipeline) {
+ ScopedProfilingLabel label("gemmlowp::SingleThreadGemm");
+
+ assert(lhs.cols() == rhs.rows());
+
+ int rows = result->rows();
+ int cols = result->cols();
+ int depth = lhs.cols();
+
+ // zero sizes should have been caught earlier and early-returned.
+ assert(rows > 0);
+ assert(cols > 0);
+ assert(depth > 0);
+
+ // The case of rows<cols should have been caught earlier and transposed.
+ assert(rows >= cols);
+
+ Allocator* allocator = context->allocator();
+
+ BlockParams block_params;
+ block_params.Init<KernelFormat>(rows, cols, depth, 1,
+ context->l1_bytes_to_use(),
+ context->l2_bytes_to_use(),
+ context->l2_rhs_factor());
+
+#ifdef GEMMLOWP_PROFILING_SIZES
+ // Using a static map of label strings. Not reentrant at all!
+ static std::unordered_map<std::uint64_t, std::string> labels_map;
+ std::uint64_t sizes_hash = static_cast<std::uint64_t>(rows) ^
+ (static_cast<std::uint64_t>(depth) << 16) ^
+ (static_cast<std::uint64_t>(cols) << 32);
+ if (!labels_map.count(sizes_hash)) {
+ char label[256];
+ snprintf(label, sizeof(label),
+ "(rows = %d, depth = %d, cols = %d, l2_rows = %d, l2_depth = %d, "
+ "l2_cols = %d, l1_rows = %d, l1_depth = %d, l1_cols = %d)",
+ rows, depth, cols, block_params.l2_rows, block_params.l2_depth,
+ block_params.l2_cols, block_params.l1_rows, block_params.l1_depth,
+ block_params.l1_cols);
+ labels_map[sizes_hash] = label;
+ }
+ ScopedProfilingLabel size_label(labels_map[sizes_hash].c_str());
+#endif
+
+ PackedSideBlock<typename KernelFormat::Lhs> packed_lhs(Side::Lhs, allocator,
+ block_params);
+ PackedSideBlock<typename KernelFormat::Rhs> packed_rhs(Side::Rhs, allocator,
+ block_params);
+
+ PackedResult packed_result(allocator, block_params);
+
+ allocator->Commit();
+
+ const bool pack_rhs_once = block_params.l2_cols >= cols;
+
+ if (pack_rhs_once) {
+ PackRhs(&packed_rhs, rhs);
+ }
+
+ for (int r = 0; r < rows; r += block_params.l2_rows) {
+ int rs = std::min(block_params.l2_rows, rows - r);
+
+ PackLhs(&packed_lhs, lhs.block(r, 0, rs, depth));
+
+ for (int c = 0; c < cols; c += block_params.l2_cols) {
+ int cs = std::min(block_params.l2_cols, cols - c);
+
+ if (!pack_rhs_once) {
+ PackRhs(&packed_rhs, rhs.block(0, c, depth, cs));
+ }
+
+ Compute(kernel, block_params, &packed_result, packed_lhs, packed_rhs,
+ depth);
+
+ UnpackResult<KernelFormat>(
+ result, MatrixBlockBounds(r, c, rs, cs), packed_result, depth,
+ packed_lhs.sums_of_each_slice(), packed_rhs.sums_of_each_slice(),
+ lhs_offset.block(r, rs), rhs_offset.block(c, cs), output_pipeline);
+ }
+ }
+
+ allocator->Decommit();
+}
+
+} // namespace gemmlowp
+
+#endif // GEMMLOWP_INTERNAL_SINGLE_THREAD_GEMM_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/internal/unpack.h b/runtimes/nn/depend/external/gemmlowp/internal/unpack.h
new file mode 100644
index 000000000..33aee13b8
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/internal/unpack.h
@@ -0,0 +1,278 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// unpack.h: unpacking the result blocks computed by compute.h,
+// storing them into the destination matrix.
+
+#ifndef GEMMLOWP_INTERNAL_UNPACK_H_
+#define GEMMLOWP_INTERNAL_UNPACK_H_
+
+#include "allocator.h"
+#include "block_params.h"
+#include "output.h"
+#include "pack.h"
+
+#include <cmath>
+
+namespace gemmlowp {
+
+class PackedResult {
+ public:
+ PackedResult(Allocator* _allocator, const BlockParams& _block_params)
+ : allocator_(_allocator), block_params_(_block_params) {
+ matrix_handle_ = allocator_->Reserve<std::int32_t>(block_params_.l2_rows *
+ block_params_.l2_cols);
+ }
+
+ ~PackedResult() {}
+
+ MatrixMap<std::int32_t, MapOrder::ColMajor> Map() {
+ return MatrixMap<std::int32_t, MapOrder::ColMajor>(
+ allocator_->GetPointer<std::int32_t>(matrix_handle_),
+ block_params_.l2_rows, block_params_.l2_cols, block_params_.l2_rows);
+ }
+
+ MatrixMap<const std::int32_t, MapOrder::ColMajor> Map() const {
+ return MatrixMap<const std::int32_t, MapOrder::ColMajor>(
+ allocator_->GetPointer<const std::int32_t>(matrix_handle_),
+ block_params_.l2_rows, block_params_.l2_cols, block_params_.l2_rows);
+ }
+
+ private:
+ Allocator* allocator_;
+ Allocator::Handle matrix_handle_;
+ const BlockParams& block_params_;
+};
+
+struct MatrixBlockBounds {
+ int start_row;
+ int start_col;
+ int rows;
+ int cols;
+
+ MatrixBlockBounds(int start_row_, int start_col_, int rows_, int cols_)
+ : start_row(start_row_),
+ start_col(start_col_),
+ rows(rows_),
+ cols(cols_) {}
+};
+
+template <int Rows, int Cols, typename SrcMapType>
+void PrefetchResultBlock(const SrcMapType& src,
+ const VectorMap<const std::int32_t, VectorShape::Col>&
+ lhs_sums_of_each_slice,
+ int src_row, int src_col) {
+ const std::int32_t* src_data = src.data(src_row, src_col);
+ const int src_stride = src.stride();
+ const std::int32_t* lhs_sums_data = lhs_sums_of_each_slice.data(src_row);
+ for (int r = 0; r < Rows; r += 4) {
+ Prefetch(lhs_sums_data + r);
+ }
+ for (int c = 0; c < Cols; c++) {
+ for (int r = 0; r < Rows; r += 4) {
+ Prefetch(src_data + r + c * src_stride);
+ }
+ }
+}
+
+template <typename KernelFormat, typename RegisterBlockType,
+ typename SrcMapType, typename LhsOffset, typename RhsOffset,
+ typename OutputPipelineExecutorType, typename DstType>
+void UnpackResultBlock(const SrcMapType& src,
+ const OutputPipelineExecutorType& executor, DstType* dst,
+ const VectorMap<const std::int32_t, VectorShape::Col>&
+ lhs_sums_of_each_slice,
+ const VectorMap<const std::int32_t, VectorShape::Row>&
+ rhs_sums_of_each_slice,
+ const LhsOffset& lhs_offset, const RhsOffset& rhs_offset,
+ int depth, int src_row, int src_col, int src_global_row,
+ int src_global_col, int dst_row, int dst_col) {
+ using KernelLhsScalar = typename KernelFormat::Lhs::Scalar;
+ using KernelRhsScalar = typename KernelFormat::Rhs::Scalar;
+ static constexpr int KernelLhsZeroPointInput =
+ ZeroPointInputValue<KernelLhsScalar>::kValue;
+ static constexpr int KernelRhsZeroPointInput =
+ ZeroPointInputValue<KernelRhsScalar>::kValue;
+ auto acc = Load<RegisterBlockType>(src, src_row, src_col);
+ const auto& lhs_sums_of_each_slice_block =
+ LoadForBroadcasting<RegisterBlockType>(lhs_sums_of_each_slice, src_row);
+ const auto& rhs_sums_of_each_slice_block =
+ LoadForBroadcasting<RegisterBlockType>(rhs_sums_of_each_slice, src_col);
+ auto lhs_offset_block =
+ LoadForBroadcasting<RegisterBlockType>(lhs_offset, src_row);
+ auto rhs_offset_block =
+ LoadForBroadcasting<RegisterBlockType>(rhs_offset, src_col);
+ AddConstant<KernelLhsZeroPointInput>(&lhs_offset_block);
+ AddConstant<KernelRhsZeroPointInput>(&rhs_offset_block);
+ BroadcastMulAdd(lhs_sums_of_each_slice_block, rhs_offset_block, &acc);
+ for (int i = 0; i < decltype(rhs_offset_block)::kRegisterCount; i++) {
+ rhs_offset_block.buf.reg[i] = Mul(rhs_offset_block.buf.reg[i], depth);
+ }
+ BroadcastMulAdd(BroadcastAdd(rhs_sums_of_each_slice_block, rhs_offset_block),
+ lhs_offset_block, &acc);
+ executor.Execute(acc, dst, src_global_row, src_global_col, dst_row, dst_col);
+}
+
+template <typename KernelFormat, typename ResultBlockType,
+ typename PackedResultType, typename LhsOffset, typename RhsOffset,
+ typename OutputPipelineType>
+void UnpackResult(ResultBlockType* dst, const MatrixBlockBounds& dst_block,
+ const PackedResultType& src, int depth,
+ const std::int32_t* lhs_sums_of_each_slice_ptr,
+ const std::int32_t* rhs_sums_of_each_slice_ptr,
+ const LhsOffset& lhs_offset, const RhsOffset& rhs_offset,
+ const OutputPipelineType& output_pipeline) {
+ ScopedProfilingLabel label(ResultBlockType::kOrder == MapOrder::ColMajor
+ ? "unpack to column-major"
+ : "unpack to row-major");
+ assert(dst_block.start_row >= 0);
+ assert(dst_block.start_row + dst_block.rows <= dst->rows());
+ assert(dst_block.start_col >= 0);
+ assert(dst_block.start_col + dst_block.cols <= dst->cols());
+ const auto src_map = src.Map();
+ const VectorMap<const std::int32_t, VectorShape::Col> lhs_sums_of_each_slice(
+ lhs_sums_of_each_slice_ptr, dst_block.rows);
+ const VectorMap<const std::int32_t, VectorShape::Row> rhs_sums_of_each_slice(
+ rhs_sums_of_each_slice_ptr, dst_block.cols);
+ using Int32x1x1 = RegisterBlock<std::int32_t, 1, 1>;
+ using Int32x4x1 = RegisterBlock<std::int32_t, 4, 1>;
+ using Int32x8x1 = RegisterBlock<std::int32_t, 8, 1>;
+ using Int32x1x4 = RegisterBlock<std::int32_t, 1, 4>;
+ using Int32x4x4 = RegisterBlock<std::int32_t, 4, 4>;
+ using Int32x8x4 = RegisterBlock<std::int32_t, 8, 4>;
+
+ using DstScalarType = typename ResultBlockType::Scalar;
+ using DstScalarx8x8 = RegisterBlock<DstScalarType, 8, 8>;
+
+ OutputPipelineExecutor<OutputPipelineType, Int32x1x1>
+ output_pipeline_executor_1x1(output_pipeline);
+ OutputPipelineExecutor<OutputPipelineType, Int32x4x1>
+ output_pipeline_executor_4x1(output_pipeline);
+ OutputPipelineExecutor<OutputPipelineType, Int32x8x1>
+ output_pipeline_executor_8x1(output_pipeline);
+ OutputPipelineExecutor<OutputPipelineType, Int32x1x4>
+ output_pipeline_executor_1x4(output_pipeline);
+ OutputPipelineExecutor<OutputPipelineType, Int32x4x4>
+ output_pipeline_executor_4x4(output_pipeline);
+ OutputPipelineExecutor<OutputPipelineType, Int32x8x4>
+ output_pipeline_executor_8x4(output_pipeline);
+
+ int c8 = 0;
+ if (ResultBlockType::kOrder == MapOrder::RowMajor) {
+ for (; c8 <= dst_block.cols - 8; c8 += 8) {
+ PrefetchResultBlock<8, 8>(src_map, lhs_sums_of_each_slice, 0, c8);
+ int r = 0;
+ for (; r <= dst_block.rows - 8; r += 8) {
+ const int global_row = r + dst_block.start_row;
+ PrefetchResultBlock<8, 8>(src_map, lhs_sums_of_each_slice, r + 8, c8);
+ DstScalarType dst_colmajor_buf[64];
+ MatrixMap<DstScalarType, MapOrder::ColMajor> dst_colmajor_map(
+ dst_colmajor_buf, 8, 8);
+ for (int cx = 0; cx < 8; cx += 4) {
+ const int c = c8 + cx;
+ const int global_col = c + dst_block.start_col;
+ UnpackResultBlock<KernelFormat, Int32x8x4>(
+ src_map, output_pipeline_executor_8x4, &dst_colmajor_map,
+ lhs_sums_of_each_slice, rhs_sums_of_each_slice, lhs_offset,
+ rhs_offset, depth, r, c, global_row, global_col, 0, cx);
+ }
+ StoreFinalOutput(LoadContiguous<DstScalarx8x8>(dst_colmajor_buf), dst,
+ r + dst_block.start_row, c8 + dst_block.start_col);
+ }
+ for (; r <= dst_block.rows - 4; r += 4) {
+ const int global_row = r + dst_block.start_row;
+ for (int cx = 0; cx < 8; cx += 4) {
+ const int c = c8 + cx;
+ const int global_col = c + dst_block.start_col;
+ UnpackResultBlock<KernelFormat, Int32x4x4>(
+ src_map, output_pipeline_executor_4x4, dst,
+ lhs_sums_of_each_slice, rhs_sums_of_each_slice, lhs_offset,
+ rhs_offset, depth, r, c, global_row, global_col, global_row,
+ global_col);
+ }
+ }
+ for (; r < dst_block.rows; r++) {
+ const int global_row = r + dst_block.start_row;
+ for (int cx = 0; cx < 8; cx += 4) {
+ const int c = c8 + cx;
+ const int global_col = c + dst_block.start_col;
+ UnpackResultBlock<KernelFormat, Int32x1x4>(
+ src_map, output_pipeline_executor_1x4, dst,
+ lhs_sums_of_each_slice, rhs_sums_of_each_slice, lhs_offset,
+ rhs_offset, depth, r, c, global_row, global_col, global_row,
+ global_col);
+ }
+ }
+ }
+ }
+ int c = c8;
+ for (; c <= dst_block.cols - 4; c += 4) {
+ const int global_col = c + dst_block.start_col;
+ PrefetchResultBlock<8, 4>(src_map, lhs_sums_of_each_slice, 0, c);
+ int r = 0;
+ for (; r <= dst_block.rows - 8; r += 8) {
+ const int global_row = r + dst_block.start_row;
+ PrefetchResultBlock<8, 4>(src_map, lhs_sums_of_each_slice, r + 8, c);
+ UnpackResultBlock<KernelFormat, Int32x8x4>(
+ src_map, output_pipeline_executor_8x4, dst, lhs_sums_of_each_slice,
+ rhs_sums_of_each_slice, lhs_offset, rhs_offset, depth, r, c,
+ global_row, global_col, global_row, global_col);
+ }
+ for (; r <= dst_block.rows - 4; r += 4) {
+ const int global_row = r + dst_block.start_row;
+ UnpackResultBlock<KernelFormat, Int32x4x4>(
+ src_map, output_pipeline_executor_4x4, dst, lhs_sums_of_each_slice,
+ rhs_sums_of_each_slice, lhs_offset, rhs_offset, depth, r, c,
+ global_row, global_col, global_row, global_col);
+ }
+ for (; r < dst_block.rows; r++) {
+ const int global_row = r + dst_block.start_row;
+ UnpackResultBlock<KernelFormat, Int32x1x4>(
+ src_map, output_pipeline_executor_1x4, dst, lhs_sums_of_each_slice,
+ rhs_sums_of_each_slice, lhs_offset, rhs_offset, depth, r, c,
+ global_row, global_col, global_row, global_col);
+ }
+ }
+ for (; c < dst_block.cols; c++) {
+ const int global_col = c + dst_block.start_col;
+ PrefetchResultBlock<8, 1>(src_map, lhs_sums_of_each_slice, 0, c);
+ int r = 0;
+ for (; r <= dst_block.rows - 8; r += 8) {
+ const int global_row = r + dst_block.start_row;
+ PrefetchResultBlock<8, 1>(src_map, lhs_sums_of_each_slice, r + 8, c);
+ UnpackResultBlock<KernelFormat, Int32x8x1>(
+ src_map, output_pipeline_executor_8x1, dst, lhs_sums_of_each_slice,
+ rhs_sums_of_each_slice, lhs_offset, rhs_offset, depth, r, c,
+ global_row, global_col, global_row, global_col);
+ }
+ for (; r <= dst_block.rows - 4; r += 4) {
+ const int global_row = r + dst_block.start_row;
+ UnpackResultBlock<KernelFormat, Int32x4x1>(
+ src_map, output_pipeline_executor_4x1, dst, lhs_sums_of_each_slice,
+ rhs_sums_of_each_slice, lhs_offset, rhs_offset, depth, r, c,
+ global_row, global_col, global_row, global_col);
+ }
+ for (; r < dst_block.rows; r++) {
+ const int global_row = r + dst_block.start_row;
+ UnpackResultBlock<KernelFormat, Int32x1x1>(
+ src_map, output_pipeline_executor_1x1, dst, lhs_sums_of_each_slice,
+ rhs_sums_of_each_slice, lhs_offset, rhs_offset, depth, r, c,
+ global_row, global_col, global_row, global_col);
+ }
+ }
+}
+
+} // end namespace gemmlowp
+
+#endif // GEMMLOWP_INTERNAL_UNPACK_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/profiling/instrumentation.h b/runtimes/nn/depend/external/gemmlowp/profiling/instrumentation.h
new file mode 100644
index 000000000..51b652590
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/profiling/instrumentation.h
@@ -0,0 +1,244 @@
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// instrumentation.h: contains the definitions needed to
+// instrument code for profiling:
+// ScopedProfilingLabel, RegisterCurrentThreadForProfiling.
+//
+// profiler.h is only needed to drive the profiler:
+// StartProfiling, FinishProfiling.
+//
+// See the usage example in profiler.h.
+
+#ifndef GEMMLOWP_PROFILING_INSTRUMENTATION_H_
+#define GEMMLOWP_PROFILING_INSTRUMENTATION_H_
+
+#include <pthread.h>
+#include <cstdio>
+
+#ifndef GEMMLOWP_USE_STLPORT
+#include <cstdint>
+#else
+#include <stdint.h>
+namespace std {
+using ::uint8_t;
+using ::uint16_t;
+using ::uint32_t;
+using ::int8_t;
+using ::int16_t;
+using ::int32_t;
+using ::size_t;
+using ::uintptr_t;
+}
+#endif
+
+#include <algorithm>
+#include <cassert>
+#include <cstdlib>
+
+#ifdef GEMMLOWP_PROFILING
+#include <cstring>
+#include <set>
+#endif
+
+// We should always use C++11 thread_local; unfortunately that
+// isn't fully supported on Apple yet.
+#ifdef __APPLE__
+#define GEMMLOWP_THREAD_LOCAL static __thread
+#define GEMMLOWP_USING_OLD_THREAD_LOCAL
+#else
+#define GEMMLOWP_THREAD_LOCAL thread_local
+#endif
+
+namespace gemmlowp {
+
+inline void ReleaseBuildAssertion(bool condition, const char* msg) {
+ if (!condition) {
+ fprintf(stderr, "gemmlowp error: %s\n", msg);
+ abort();
+ }
+}
+
+// To be used as template parameter for GlobalLock.
+// GlobalLock<ProfilerLockId> is the profiler global lock:
+// registering threads, starting profiling, finishing profiling, and
+// the profiler itself as it samples threads, all need to lock it.
+struct ProfilerLockId;
+
+// A very plain global lock. Templated in LockId so we can have multiple
+// locks, one for each LockId type.
+template <typename LockId>
+class GlobalLock {
+ static pthread_mutex_t* Mutex() {
+ static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
+ return &m;
+ }
+
+ public:
+ static void Lock() { pthread_mutex_lock(Mutex()); }
+ static void Unlock() { pthread_mutex_unlock(Mutex()); }
+};
+
+// A very simple RAII helper to lock and unlock a GlobalLock
+template <typename LockId>
+struct AutoGlobalLock {
+ AutoGlobalLock() { GlobalLock<LockId>::Lock(); }
+ ~AutoGlobalLock() { GlobalLock<LockId>::Unlock(); }
+};
+
+// MemoryBarrier is purely a compile-time thing; it tells two things
+// to the compiler:
+// 1) It prevents reordering code across it
+// (thanks to the 'volatile' after 'asm')
+// 2) It requires the compiler to assume that any value previously
+// read from memory, may have changed. Thus it offers an alternative
+// to using 'volatile' variables.
+inline void MemoryBarrier() { asm volatile("" ::: "memory"); }
+
+// Profiling definitions. Two paths: when profiling is enabled,
+// and when profiling is disabled.
+#ifdef GEMMLOWP_PROFILING
+// This code path is when profiling is enabled.
+
+// A pseudo-call-stack. Contrary to a real call-stack, this only
+// contains pointers to literal strings that were manually entered
+// in the instrumented code (see ScopedProfilingLabel).
+struct ProfilingStack {
+ static const std::size_t kMaxSize = 15;
+ typedef const char* LabelsArrayType[kMaxSize];
+ LabelsArrayType labels;
+ std::size_t size;
+
+ ProfilingStack() { memset(this, 0, sizeof(ProfilingStack)); }
+
+ void Push(const char* label) {
+ MemoryBarrier();
+ ReleaseBuildAssertion(size < kMaxSize, "ProfilingStack overflow");
+ labels[size] = label;
+ MemoryBarrier();
+ size++;
+ MemoryBarrier();
+ }
+
+ void Pop() {
+ MemoryBarrier();
+ ReleaseBuildAssertion(size > 0, "ProfilingStack underflow");
+ size--;
+ MemoryBarrier();
+ }
+
+ void UpdateTop(const char* new_label) {
+ MemoryBarrier();
+ assert(size);
+ labels[size - 1] = new_label;
+ MemoryBarrier();
+ }
+
+ ProfilingStack& operator=(const ProfilingStack& other) {
+ memcpy(this, &other, sizeof(ProfilingStack));
+ return *this;
+ }
+
+ bool operator==(const ProfilingStack& other) const {
+ return !memcmp(this, &other, sizeof(ProfilingStack));
+ }
+};
+
+static_assert(
+ !(sizeof(ProfilingStack) & (sizeof(ProfilingStack) - 1)),
+ "ProfilingStack should have power-of-two size to fit in cache lines");
+
+struct ThreadInfo;
+
+// The global set of threads being profiled.
+inline std::set<ThreadInfo*>& ThreadsUnderProfiling() {
+ static std::set<ThreadInfo*> v;
+ return v;
+}
+
+struct ThreadInfo {
+ pthread_key_t key; // used only to get a callback at thread exit.
+ ProfilingStack stack;
+
+ ThreadInfo() {
+ pthread_key_create(&key, ThreadExitCallback);
+ pthread_setspecific(key, this);
+ }
+
+ static void ThreadExitCallback(void* ptr) {
+ AutoGlobalLock<ProfilerLockId> lock;
+ ThreadInfo* self = static_cast<ThreadInfo*>(ptr);
+ ThreadsUnderProfiling().erase(self);
+ pthread_key_delete(self->key);
+ }
+};
+
+inline ThreadInfo& ThreadLocalThreadInfo() {
+#ifdef GEMMLOWP_USING_OLD_THREAD_LOCAL
+ // We're leaking this ThreadInfo structure, because Apple doesn't support
+ // non-trivial constructors or destructors for their __thread type modifier.
+ GEMMLOWP_THREAD_LOCAL ThreadInfo* i = nullptr;
+ if (i == nullptr) {
+ i = new ThreadInfo();
+ }
+ return *i;
+#else
+ GEMMLOWP_THREAD_LOCAL ThreadInfo i;
+ return i;
+#endif
+}
+
+// ScopedProfilingLabel is how one instruments code for profiling
+// with this profiler. Construct local ScopedProfilingLabel variables,
+// passing a literal string describing the local code. Profile
+// samples will then be annotated with this label, while it is in scope
+// (whence the name --- also known as RAII).
+// See the example in profiler.h.
+class ScopedProfilingLabel {
+ ProfilingStack* profiling_stack_;
+
+ public:
+ explicit ScopedProfilingLabel(const char* label)
+ : profiling_stack_(&ThreadLocalThreadInfo().stack) {
+ profiling_stack_->Push(label);
+ }
+
+ ~ScopedProfilingLabel() { profiling_stack_->Pop(); }
+
+ void Update(const char* new_label) { profiling_stack_->UpdateTop(new_label); }
+};
+
+// To be called once on each thread to be profiled.
+inline void RegisterCurrentThreadForProfiling() {
+ AutoGlobalLock<ProfilerLockId> lock;
+ ThreadsUnderProfiling().insert(&ThreadLocalThreadInfo());
+}
+
+#else // not GEMMLOWP_PROFILING
+// This code path is when profiling is disabled.
+
+// This empty definition of ScopedProfilingLabel ensures that
+// it has zero runtime overhead when profiling is disabled.
+struct ScopedProfilingLabel {
+ explicit ScopedProfilingLabel(const char*) {}
+ void Update(const char*) {}
+};
+
+inline void RegisterCurrentThreadForProfiling() {}
+
+#endif
+
+} // end namespace gemmlowp
+
+#endif // GEMMLOWP_PROFILING_INSTRUMENTATION_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/profiling/profiler.h b/runtimes/nn/depend/external/gemmlowp/profiling/profiler.h
new file mode 100644
index 000000000..a18c036c8
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/profiling/profiler.h
@@ -0,0 +1,373 @@
+// Copyright 2015 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// profiler.h: a simple sampling profiler that's always just one #include away!
+//
+// Overview
+// ========
+//
+// This profiler only samples a pseudo-stack, not the actual call stack.
+// The code to be profiled needs to be instrumented with
+// pseudo-stack "labels", see ScopedProfilingLabel.
+// Using pseudo-stacks allows this profiler to be very simple, low-overhead,
+// portable, and independent of compilation details such as function inlining
+// and frame pointers. The granularity of instrumentation can be freely chosen,
+// and it is possible to get some annotate-like detail, i.e. detail within one
+// function without splitting it into multiple functions.
+//
+// This profiler should remain small and simple; its key feature is to fit in
+// a single header file so that there should never be a reason to refrain
+// from profiling. More complex and feature-rich alternatives are
+// readily available. This one offers a strict superset of its
+// functionality: https://github.com/bgirard/GeckoProfiler, including
+// intertwining pseudostacks with real call stacks, more annotation options,
+// and advanced visualization.
+//
+// Usage
+// =====
+//
+// 0. Enable profiling by defining GEMMLOWP_PROFILING. When profiling is
+// not enabled, profiling instrumentation from instrumentation.h
+// (ScopedProfilingLabel, RegisterCurrentThreadForProfiling)
+// is still defined but does nothing. On the other hand,
+// when profiling is not enabled, it is an error to #include the
+// present file.
+//
+// 1. Each thread can opt in to profiling by calling
+// RegisterCurrentThreadForProfiling() defined in instrumentation.h.
+// This can be done at any time, before or during profiling.
+// No sample will be collected from a thread until
+// it has called RegisterCurrentThreadForProfiling().
+//
+// 2. Instrument your code to be profiled with ScopedProfilingLabel,
+// which is a RAII helper defined in instrumentation.h. The identifier
+// names (some_label, etc) do not matter; what will show up
+// in the profile is the string passed to the constructor, which
+// must be a literal string. See the full example below.
+//
+// Note: the overhead of ScopedProfilingLabel is zero when not
+// enabling profiling (when not defining GEMMLOWP_PROFILING).
+//
+// 3. Use the profiler.h interface to control profiling. There are two
+// functions: StartProfiling() and FinishProfiling(). They must be
+// called on the same thread. FinishProfiling() prints the profile
+// on stdout.
+//
+// Full example
+// ============
+/*
+ #define GEMMLOWP_PROFILING
+ #include "profiling/instrumentation.h"
+ using namespace gemmlowp;
+
+ const int iters = 100000000;
+ volatile int i;
+
+ void Bar() {
+ ScopedProfilingLabel label("Bar");
+ for (i = 0; i < iters; i++) {}
+ }
+
+ void Foo() {
+ ScopedProfilingLabel label("Foo");
+ for (i = 0; i < iters; i++) {}
+ Bar();
+ }
+
+ void Init() {
+ RegisterCurrentThreadForProfiling();
+ }
+
+ #include "profiling/profiler.h"
+
+ int main() {
+ Init();
+ StartProfiling();
+ Foo();
+ FinishProfiling();
+ }
+*
+* Output:
+*
+ gemmlowp profile (1 threads, 304 samples)
+ 100.00% Foo
+ 51.32% other
+ 48.68% Bar
+ 0.00% other (outside of any label)
+*/
+//
+// Interpreting results
+// ====================
+//
+// Each node shows the absolute percentage, among all the samples,
+// of the number of samples that recorded the given pseudo-stack.
+// The percentages are *NOT* relative to the parent node. In addition
+// to your own labels, you will also see 'other' nodes that collect
+// the remainder of samples under the parent node that didn't fall into
+// any of the labelled child nodes. Example:
+//
+// 20% Foo
+// 12% Bar
+// 6% Xyz
+// 2% other
+//
+// This means that 20% of all labels were under Foo, of which 12%/20%==60%
+// were under Bar, 6%/20%==30% were under Xyz, and 2%/20%==10% were not
+// under either Bar or Xyz.
+//
+// Typically, one wants to keep adding ScopedProfilingLabel's until
+// the 'other' nodes show low percentages.
+//
+// Interpreting results with multiple threads
+// ==========================================
+//
+// At each sample, each thread registered for profiling gets sampled once.
+// So if there is one "main thread" spending its time in MainFunc() and
+// 4 "worker threads" spending time in WorkerFunc(), then 80% (=4/5) of the
+// samples will be in WorkerFunc, so the profile will look like this:
+//
+// 80% WorkerFunc
+// 20% MainFunc
+
+#ifndef GEMMLOWP_PROFILING_PROFILER_H_
+#define GEMMLOWP_PROFILING_PROFILER_H_
+
+#ifndef GEMMLOWP_PROFILING
+#error Profiling is not enabled!
+#endif
+
+#include <vector>
+
+#include "instrumentation.h"
+
+namespace gemmlowp {
+
+// A tree view of a profile.
+class ProfileTreeView {
+ struct Node {
+ std::vector<Node*> children;
+ const char* label;
+ std::size_t weight;
+ Node() : label(nullptr), weight(0) {}
+ ~Node() {
+ for (auto child : children) {
+ delete child;
+ }
+ }
+ };
+
+ static bool CompareNodes(Node* n1, Node* n2) {
+ return n1->weight > n2->weight;
+ }
+
+ Node root_;
+
+ void PrintNode(const Node* node, int level) const {
+ if (level) {
+ for (int i = 1; i < level; i++) {
+ printf(" ");
+ }
+ printf("%.2f%% %s\n", 100.0f * node->weight / root_.weight, node->label);
+ }
+ for (auto child : node->children) {
+ PrintNode(child, level + 1);
+ }
+ }
+
+ static void AddStackToNode(const ProfilingStack& stack, Node* node,
+ std::size_t level) {
+ node->weight++;
+ if (stack.size == level) {
+ return;
+ }
+ Node* child_to_add_to = nullptr;
+ for (auto child : node->children) {
+ if (child->label == stack.labels[level]) {
+ child_to_add_to = child;
+ break;
+ }
+ }
+ if (!child_to_add_to) {
+ child_to_add_to = new Node;
+ child_to_add_to->label = stack.labels[level];
+ node->children.push_back(child_to_add_to);
+ }
+ AddStackToNode(stack, child_to_add_to, level + 1);
+ return;
+ }
+
+ void AddStack(const ProfilingStack& stack) {
+ AddStackToNode(stack, &root_, 0);
+ }
+
+ void AddOtherChildrenToNode(Node* node) {
+ std::size_t top_level_children_weight = 0;
+ for (auto c : node->children) {
+ AddOtherChildrenToNode(c);
+ top_level_children_weight += c->weight;
+ }
+ if (top_level_children_weight) {
+ Node* other_child = new Node;
+ other_child->label =
+ node == &root_ ? "other (outside of any label)" : "other";
+ other_child->weight = node->weight - top_level_children_weight;
+ node->children.push_back(other_child);
+ }
+ }
+
+ void AddOtherNodes() { AddOtherChildrenToNode(&root_); }
+
+ void SortNode(Node* node) {
+ std::sort(node->children.begin(), node->children.end(), CompareNodes);
+ for (auto child : node->children) {
+ SortNode(child);
+ }
+ }
+
+ void Sort() { SortNode(&root_); }
+
+ public:
+ explicit ProfileTreeView(const std::vector<ProfilingStack>& stacks) {
+ for (auto stack : stacks) {
+ AddStack(stack);
+ }
+ AddOtherNodes();
+ Sort();
+ }
+
+ void Print() const {
+ printf("\n");
+ printf("gemmlowp profile (%d threads, %d samples)\n",
+ static_cast<int>(ThreadsUnderProfiling().size()),
+ static_cast<int>(root_.weight));
+ PrintNode(&root_, 0);
+ printf("\n");
+ }
+};
+
+// This function is the only place that determines our sampling frequency.
+inline void WaitOneProfilerTick() {
+ static const int millisecond = 1000000;
+
+#if defined __arm__ || defined __aarch64__
+ // Reduced sampling frequency on mobile devices helps limit time and memory
+ // overhead there.
+ static const int interval = 10 * millisecond;
+#else
+ static const int interval = 1 * millisecond;
+#endif
+
+ timespec ts;
+ ts.tv_sec = 0;
+ ts.tv_nsec = interval;
+ nanosleep(&ts, nullptr);
+}
+
+// This is how we track whether we've already started profiling,
+// to guard against misuse of the API.
+inline bool& IsProfiling() {
+ static bool b;
+ return b;
+}
+
+// This is how we tell the profiler thread to finish.
+inline bool& ProfilerThreadShouldFinish() {
+ static bool b;
+ return b;
+}
+
+// The profiler thread. See ProfilerThreadFunc.
+inline pthread_t& ProfilerThread() {
+ static pthread_t t;
+ return t;
+}
+
+// Records a stack from a running thread.
+// The tricky part is that we're not interrupting the thread.
+// This is OK because we're looking at a pseudo-stack of labels,
+// not at the real thread stack, and if the pseudo-stack changes
+// while we're recording it, we are OK with getting either the
+// old or the new stack. Note that ProfilingStack::Pop
+// only decrements the size, and doesn't null the popped label,
+// so if we're concurrently recording it, it shouldn't change
+// under our feet until another label is pushed, at which point
+// we are OK with getting either this new label or the old one.
+// In the end, the key atomicity property that we are relying on
+// here is that pointers are changed atomically, and the labels
+// are pointers (to literal strings).
+inline void RecordStack(const ThreadInfo* thread, ProfilingStack* dst) {
+ assert(!dst->size);
+ while (dst->size < thread->stack.size) {
+ dst->labels[dst->size] = thread->stack.labels[dst->size];
+ dst->size++;
+ MemoryBarrier(); // thread->stack can change at any time
+ }
+}
+
+// The profiler thread's entry point.
+// Note that a separate thread is to be started each time we call
+// StartProfiling(), and finishes when we call FinishProfiling().
+// So here we only need to handle the recording and reporting of
+// a single profile.
+inline void* ProfilerThreadFunc(void*) {
+ assert(ProfilerThread() == pthread_self());
+
+ // Since we only handle one profile per profiler thread, the
+ // profile data (the array of recorded stacks) can be a local variable here.
+ std::vector<ProfilingStack> stacks;
+
+ while (!ProfilerThreadShouldFinish()) {
+ WaitOneProfilerTick();
+ {
+ AutoGlobalLock<ProfilerLockId> lock;
+ for (auto t : ThreadsUnderProfiling()) {
+ ProfilingStack s;
+ RecordStack(t, &s);
+ stacks.push_back(s);
+ }
+ }
+ }
+
+ // Profiling is finished and we now report the results.
+ ProfileTreeView(stacks).Print();
+
+ return nullptr;
+}
+
+// Starts recording samples.
+inline void StartProfiling() {
+ AutoGlobalLock<ProfilerLockId> lock;
+ ReleaseBuildAssertion(!IsProfiling(), "We're already profiling!");
+ IsProfiling() = true;
+ ProfilerThreadShouldFinish() = false;
+ pthread_create(&ProfilerThread(), nullptr, ProfilerThreadFunc, nullptr);
+}
+
+// Stops recording samples, and prints a profile tree-view on stdout.
+inline void FinishProfiling() {
+ {
+ AutoGlobalLock<ProfilerLockId> lock;
+ ReleaseBuildAssertion(IsProfiling(), "We weren't profiling!");
+ // The ProfilerThreadShouldFinish() mechanism here is really naive and bad,
+ // as the scary comments below should make clear.
+ // Should we use a condition variable?
+ ProfilerThreadShouldFinish() = true;
+ } // must release the lock here to avoid deadlock with profiler thread.
+ pthread_join(ProfilerThread(), nullptr);
+ IsProfiling() = false; // yikes, this should be guarded by the lock!
+}
+
+} // namespace gemmlowp
+
+#endif // GEMMLOWP_PROFILING_PROFILER_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/public/bit_depth.h b/runtimes/nn/depend/external/gemmlowp/public/bit_depth.h
new file mode 100644
index 000000000..6cb4ecf0d
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/public/bit_depth.h
@@ -0,0 +1,62 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// bit_depth.h: defines the settins controlling LHS/RHS bit depth
+
+#ifndef GEMMLOWP_PUBLIC_BIT_DEPTH_H_
+#define GEMMLOWP_PUBLIC_BIT_DEPTH_H_
+
+namespace gemmlowp {
+
+// The range of allowed values for an operand.
+template <int tMinValue, int tMaxValue>
+struct OperandRange {
+ static const int kMinValue = tMinValue;
+ static const int kMaxValue = tMaxValue;
+ static_assert(0 <= kMinValue, "");
+ static_assert(kMinValue < kMaxValue, "");
+ static_assert(kMaxValue <= 255, "");
+};
+
+using Uint8Range = OperandRange<0, 255>;
+using Uint8RangeExcludingZero = OperandRange<1, 255>;
+
+template <typename tLhsRange, typename tRhsRange>
+struct BitDepthParams {
+ using LhsRange = tLhsRange;
+ using RhsRange = tRhsRange;
+};
+
+// Default: LHS and RHS are 8bit.
+using DefaultL8R8BitDepthParams = BitDepthParams<Uint8Range, Uint8Range>;
+
+// Variant: LHS may not take the value 0. This allows using
+// faster kernels using signed arithmetic, see
+// NEON_64bit_GEMM_Int8Operands_Int32Accumulators_AccumTwoWithin16Bits
+using L8R8WithLhsNonzeroBitDepthParams =
+ BitDepthParams<Uint8RangeExcludingZero, Uint8Range>;
+
+// Deprecated: when gemmlowp used to allow requantizing 8bit
+// inputs to less-than-8-bit depths, the public setting allowing
+// that was DefaultL7R5BitDepthParams. That requantization
+// feature has been removed, but as the whole point of that
+// requantization was to make less-than-8-bit an internal
+// optimization without any impact on the API (other than lowering
+// accuracy), we can temporarily support users who were using it
+// by mapping it to the default 8bit behavior.
+using DefaultL7R5BitDepthParams = DefaultL8R8BitDepthParams;
+
+} // namespace gemmlowp
+
+#endif // GEMMLOWP_PUBLIC_BIT_DEPTH_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/public/gemmlowp.h b/runtimes/nn/depend/external/gemmlowp/public/gemmlowp.h
new file mode 100644
index 000000000..05b0f4714
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/public/gemmlowp.h
@@ -0,0 +1,87 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// gemmlowp.h: the main public interface header of gemmlowp.
+
+#ifndef GEMMLOWP_PUBLIC_GEMMLOWP_H_
+#define GEMMLOWP_PUBLIC_GEMMLOWP_H_
+#include "../internal/dispatch_gemm_shape.h"
+#include "bit_depth.h"
+#include "map.h"
+#include "output_stages.h"
+
+namespace gemmlowp {
+
+class GemmContext : public MultiThreadGemmContext {};
+
+// Computes a general matrix product ("GEMM").
+// This is a version that supports per channel quantization.
+template <typename InputScalar, typename OutputScalar, typename BitDepthParams,
+ MapOrder LhsOrder, MapOrder RhsOrder, MapOrder ResultOrder,
+ typename LhsOffset, typename RhsOffset, typename OutputPipelineType,
+ typename GemmContextType>
+void GemmWithOutputPipelinePC(GemmContextType* context,
+ const MatrixMap<const InputScalar, LhsOrder>& lhs,
+ const MatrixMap<const InputScalar, RhsOrder>& rhs,
+ MatrixMap<OutputScalar, ResultOrder>* result,
+ const LhsOffset& lhs_offset,
+ const RhsOffset& rhs_offset,
+ const OutputPipelineType& output_pipeline) {
+ DispatchGemmShape<InputScalar, OutputScalar, BitDepthParams>(
+ context, lhs, rhs, result, lhs_offset, rhs_offset, output_pipeline);
+}
+
+// Computes a general matrix product ("GEMM").
+// This is the legacy version that does not support per channel quantization.
+// The meaning of the offsets, result_mult_int and result_shift
+// parameters is the same as in the standard EightBitIntGemm interface
+// (which is also implemented in the eight_bit_int_gemm directory).
+template <typename InputScalar, typename OutputScalar, typename BitDepthParams,
+ MapOrder LhsOrder, MapOrder RhsOrder, MapOrder ResultOrder,
+ typename OutputPipelineType, typename GemmContextType>
+void GemmWithOutputPipeline(GemmContextType* context,
+ const MatrixMap<const InputScalar, LhsOrder>& lhs,
+ const MatrixMap<const InputScalar, RhsOrder>& rhs,
+ MatrixMap<OutputScalar, ResultOrder>* result,
+ int lhs_offset, int rhs_offset,
+ const OutputPipelineType& output_pipeline) {
+ typedef VectorDup<const std::int32_t, VectorShape::Col> OffsetColDup;
+ typedef VectorDup<const std::int32_t, VectorShape::Row> OffsetRowDup;
+ const OffsetColDup lhs_offset_vector(lhs_offset, lhs.rows());
+ const OffsetRowDup rhs_offset_vector(rhs_offset, rhs.cols());
+ DispatchGemmShape<InputScalar, OutputScalar, BitDepthParams>(
+ context, lhs, rhs, result, lhs_offset_vector, rhs_offset_vector,
+ output_pipeline);
+}
+
+// Computes a general matrix product ("GEMM").
+// The meaning of the offsets, result_mult_int and result_shift
+// parameters is the same as in the standard EightBitIntGemm interface
+// (which is also implemented in the eight_bit_int_gemm directory).
+template <typename Scalar, typename BitDepthParams, MapOrder LhsOrder,
+ MapOrder RhsOrder, MapOrder ResultOrder, typename GemmContextType>
+void Gemm(GemmContextType* context,
+ const MatrixMap<const Scalar, LhsOrder>& lhs,
+ const MatrixMap<const Scalar, RhsOrder>& rhs,
+ MatrixMap<Scalar, ResultOrder>* result, int lhs_offset,
+ int rhs_offset, int result_offset, int result_mult_int,
+ int result_shift) {
+ GemmWithOutputPipeline<Scalar, Scalar, BitDepthParams>(
+ context, lhs, rhs, result, lhs_offset, rhs_offset,
+ MakeStandardOutputPipeline(result_offset, result_mult_int, result_shift));
+}
+
+} // namespace gemmlowp
+
+#endif // GEMMLOWP_PUBLIC_GEMMLOWP_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/public/map.h b/runtimes/nn/depend/external/gemmlowp/public/map.h
new file mode 100644
index 000000000..3073e05f5
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/public/map.h
@@ -0,0 +1,140 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// map.h: a minimalist view-existing-buffer-as-a-matrix class,
+// which is how gemmlowp interfaces with external matrix data.
+
+#ifndef GEMMLOWP_PUBLIC_MAP_H_
+#define GEMMLOWP_PUBLIC_MAP_H_
+
+#include "../internal/common.h"
+
+namespace gemmlowp {
+
+// The two storage orders allowed to map buffers as matrices: ColMajor
+// means column-major, RowMajor means row-major.
+enum class MapOrder { ColMajor, RowMajor };
+
+// A MatrixMap is a view of an existing buffer as a matrix. It does not own
+// the buffer.
+template <typename tScalar, MapOrder tOrder>
+class MatrixMap {
+ public:
+ typedef tScalar Scalar;
+ static const MapOrder kOrder = tOrder;
+
+ protected:
+ Scalar* data_; // not owned.
+ int rows_, cols_, stride_;
+
+ public:
+ MatrixMap() : data_(nullptr), rows_(0), cols_(0), stride_(0) {}
+ MatrixMap(Scalar* data, int rows, int cols)
+ : data_(data),
+ rows_(rows),
+ cols_(cols),
+ stride_(kOrder == MapOrder::ColMajor ? rows : cols) {}
+ MatrixMap(Scalar* data, int rows, int cols, int stride)
+ : data_(data), rows_(rows), cols_(cols), stride_(stride) {}
+ MatrixMap(const MatrixMap& other)
+ : data_(other.data_),
+ rows_(other.rows_),
+ cols_(other.cols_),
+ stride_(other.stride_) {}
+
+ int rows() const { return rows_; }
+ int cols() const { return cols_; }
+ int stride() const { return stride_; }
+ int rows_stride() const { return kOrder == MapOrder::ColMajor ? 1 : stride_; }
+ int cols_stride() const { return kOrder == MapOrder::RowMajor ? 1 : stride_; }
+ Scalar* data() const { return data_; }
+ Scalar* data(int row, int col) const {
+ return data_ + row * rows_stride() + col * cols_stride();
+ }
+ Scalar& operator()(int row, int col) const { return *data(row, col); }
+
+ MatrixMap block(int start_row, int start_col, int block_rows,
+ int block_cols) const {
+ assert(start_row >= 0);
+ assert(start_row + block_rows <= rows_);
+ assert(start_col >= 0);
+ assert(start_col + block_cols <= cols_);
+
+ return MatrixMap(data(start_row, start_col), block_rows, block_cols,
+ stride_);
+ }
+};
+
+enum class VectorShape { Col, Row };
+
+// A VectorMap is a view of an existing buffer as a vector. It does not own
+// the buffer.
+template <typename tScalar, VectorShape tShape>
+class VectorMap {
+ public:
+ typedef tScalar Scalar;
+ static const VectorShape kShape = tShape;
+
+ protected:
+ Scalar* data_; // not owned.
+ int size_;
+
+ public:
+ VectorMap() : data_(nullptr), size_(0) {}
+ VectorMap(Scalar* data, int size) : data_(data), size_(size) {}
+ VectorMap(const VectorMap& other) : data_(other.data_), size_(other.size_) {}
+
+ int size() const { return size_; }
+ Scalar* data() const { return data_; }
+ Scalar* data(int index) const { return data_ + index; }
+ Scalar& operator()(int index) const { return *data(index); }
+
+ VectorMap block(int start, int len) const {
+ assert(start >= 0);
+ assert(start + len <= size_);
+
+ return VectorMap(data(start), len);
+ }
+};
+
+// A VectorDup is a (duplicated value) vector where all components are the same.
+template <typename tScalar, VectorShape tShape>
+class VectorDup {
+ public:
+ typedef tScalar Scalar;
+ static const VectorShape kShape = tShape;
+
+ protected:
+ Scalar data_;
+ int size_;
+
+ public:
+ VectorDup() : data_(0), size_(0) {}
+ VectorDup(Scalar data, int size) : data_(data), size_(size) {}
+ VectorDup(const VectorDup& other) : data_(other.data_), size_(other.size_) {}
+
+ int size() const { return size_; }
+ Scalar& operator()(int) const { return data_; }
+
+ VectorDup block(int start, int len) const {
+ assert(start >= 0);
+ assert(start + len <= size_);
+
+ return VectorDup(data_, len);
+ }
+};
+
+} // namespace gemmlowp
+
+#endif // GEMMLOWP_PUBLIC_MAP_H_
diff --git a/runtimes/nn/depend/external/gemmlowp/public/output_stages.h b/runtimes/nn/depend/external/gemmlowp/public/output_stages.h
new file mode 100644
index 000000000..23bcdc05f
--- /dev/null
+++ b/runtimes/nn/depend/external/gemmlowp/public/output_stages.h
@@ -0,0 +1,185 @@
+// Copyright 2015 The Gemmlowp Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// output_stages.h: public definitions of the output stages that can
+// be assembled into an output pipeline, to control how internal
+// 32-bit accumulators are transformed to obtain the final uint8
+// result matrix entries.
+
+#ifndef GEMMLOWP_PUBLIC_OUTPUT_STAGES_H_
+#define GEMMLOWP_PUBLIC_OUTPUT_STAGES_H_
+
+#include <tuple>
+
+#include "../internal/common.h"
+
+namespace gemmlowp {
+
+// This output stage takes int32 values and returns still int32 values,
+// but "quantized down" to the uint8 scale; in other words, its output
+// is typically what one would then clamp to [0..255] and cast to uint8
+// (see OutputStageSaturatingCastToUint8).
+//
+// This "quantization down" process depends on 3 parameters,
+// result_offset, result_mult_int, result_shift,
+// and the result is:
+// ((input + result_offset) * result_mult_int + rounding) >> result_shift
+// where
+// rounding = (result_shift < 1) ? 0 : (1 << (result_shift - 1));
+struct OutputStageQuantizeDownInt32ToUint8Scale {
+ std::int32_t result_offset;
+ std::int32_t result_mult_int;
+ std::int32_t result_shift;
+};
+
+// This output stage takes int32 values and returns still int32 values,
+// but "quantized down" to the uint8 scale; in other words, its output
+// is typically what one would then clamp to [0..255] and cast to uint8
+// (see OutputStageSaturatingCastToUint8).
+//
+// This "quantization down" process depends on 3 parameters,
+// result_offset, result_mult_int, result_shift,
+// and the result is:
+// ((input + result_offset) * result_mult_int + rounding) >> result_shift
+// where
+// rounding = (result_shift < 1) ? 0 : (1 << (result_shift - 1));
+//
+// Difference from OutputStageQuantizeDownInt32ToUint8Scale here is that each
+// row or column of the output (depending on tShape) has its own result_offset
+// and result_mult_int numbers.
+template <VectorShape tShape>
+struct OutputStageQuantizeDownInt32ToUint8ScalePC {
+ VectorMap<const std::int32_t, tShape> result_offset;
+ VectorMap<const std::int32_t, tShape> result_mult_int;
+ std::int32_t result_shift;
+};
+
+// This output stage takes int32 values and returns still int32 values,
+// but "quantized down" to the uint8 scale; in other words, its output
+// is typically what one would then clamp to [0..255] and cast to uint8
+// (see OutputStageSaturatingCastToUint8).
+//
+// This "quantization down" process depends on 3 parameters,
+// result_offset, result_fixedpoint_multiplier, result_shift,
+// and the result is:
+// ((FixedPointMul(input, result_fixedpoint_multiplier) +
+// rounding) >> result_shift) + result_offset_after_shift
+// where
+// rounding = (result_shift < 1) ? 0 : (1 << (result_shift - 1));
+// and where FixedPointMul(x, y) is the nearest integer to the following
+// mathematical expression, evaluated without overflow or intermediate
+// rounding:
+// (x * y) / 2^31
+// In practice, it is expected that FixedPointMul will be implemented
+// using hardware "rounding doubling int32 multiply high" instructions,
+// such as VQRDMULH on ARM. See in fixedpoint.h the generic function,
+// SaturatingRoundingDoublingHighMul.
+//
+// Notice that the other difference from
+// OutputStageQuantizeDownInt32ToUint8Scale is that the result offset
+// is applied after the multiplier and shift, not before. This ensures
+// that no matter what the multiplier and shift are, the result offset
+// is effectively integral: offsetting the final result by an integer.
+// The motivation for this is to faithfully support quantization schemes
+// where the formula linking quantized values to the real mathematical
+// values that they represent, is of the form
+//
+// real_value = scale * (quantized_value - zero_point)
+//
+// where scale is a real number (represented in quantized form by
+// result_fixedpoint_multiplier and result_shift) and zero_point
+// is an integer telling which quantized value correspond to the
+// real value 0, and is represented here by (the opposite of)
+// result_offset_after_shift.
+// The motivation for such a quantization scheme, designed to
+// ensure that 0 is always a representable value, is that in
+// many applications, we need to 0-pad arrays and that can only be
+// done for quantized arrays if 0 is a representable value in
+// quantized form. In particular, convolution-like operations
+// are often implemented using 0-padding, or "im2col"-like
+// expansions that implicitly rely on 0-padding. If 0 were not
+// a representable value, such operations would have to pad
+// using a nonzero value, introducing bias in the computation.
+struct OutputStageQuantizeDownInt32ToUint8ScaleByFixedPoint {
+ std::int32_t result_fixedpoint_multiplier;
+ std::int32_t result_shift;
+ std::int32_t result_offset_after_shift;
+};
+
+// This output stage takes int32 values that are expected to be already
+// on the final uint8 scale, but not necessarily in the [0..255] range.
+// It clamps them to the [0..255] range and returns them casted to uint8.
+struct OutputStageSaturatingCastToUint8 {};
+
+// This output stage depends on a "bias vector" that should contain int32
+// entries, and be either a row-vector of the same number of columns as the
+// result matrix, or a column-vector of the same number of rows as the
+// result matrix. This output stage takes int32 values and adds to them
+// the corresponding entry of the bias vector (broadcasted in the other
+// direction to fit the matrix's shape), outputting int32 values.
+template <typename VectorType>
+struct OutputStageBiasAddition {
+ VectorType bias_vector;
+};
+
+// This output stage clamps value between the specified min and max bounds.
+// It can be used to implement "rectified linear unit" activation functions
+// in neural networks.
+struct OutputStageClamp {
+ std::int32_t min;
+ std::int32_t max;
+};
+
+struct OutputStageTanh {
+ std::int32_t real_zero_as_int32;
+ std::int32_t real_amplitude_as_int32;
+};
+
+// An output pipeline is just a std::tuple of output stages.
+// This function generates a standard output pipeline consisting of two stages:
+// OutputStageQuantizeDownInt32ToUint8Scale, OutputStageSaturatingCastToUint8.
+inline std::tuple<OutputStageQuantizeDownInt32ToUint8Scale,
+ OutputStageSaturatingCastToUint8>
+MakeStandardOutputPipeline(std::int32_t result_offset,
+ std::int32_t result_mult_int,
+ std::int32_t result_shift) {
+ OutputStageQuantizeDownInt32ToUint8Scale quantize_down_stage;
+ quantize_down_stage.result_offset = result_offset;
+ quantize_down_stage.result_mult_int = result_mult_int;
+ quantize_down_stage.result_shift = result_shift;
+ OutputStageSaturatingCastToUint8 saturating_cast_stage;
+ return std::make_tuple(quantize_down_stage, saturating_cast_stage);
+}
+
+// An output pipeline is just a std::tuple of output stages.
+// This function generates a standard output pipeline consisting of two stages:
+// OutputStageQuantizeDownInt32ToUint8ScalePC, OutputStageSaturatingCastToUint8.
+template <VectorShape tShape>
+inline std::tuple<OutputStageQuantizeDownInt32ToUint8ScalePC<tShape>,
+ OutputStageSaturatingCastToUint8>
+MakeStandardOutputPipeline(
+ const VectorMap<const std::int32_t, tShape>& result_offset,
+ const VectorMap<const std::int32_t, tShape>& result_mult_int,
+ std::int32_t result_shift) {
+ OutputStageQuantizeDownInt32ToUint8ScalePC<tShape> quantize_down_stage;
+ quantize_down_stage.result_offset = result_offset;
+ quantize_down_stage.result_mult_int = result_mult_int;
+ quantize_down_stage.result_shift = result_shift;
+ OutputStageSaturatingCastToUint8 saturating_cast_stage;
+ return std::make_tuple(quantize_down_stage, saturating_cast_stage);
+}
+
+} // namespace gemmlowp
+
+#endif // GEMMLOWP_PUBLIC_OUTPUT_STAGES_H_
diff --git a/runtimes/nn/depend/hal/CMakeLists.txt b/runtimes/nn/depend/hal/CMakeLists.txt
new file mode 100644
index 000000000..9c77411ef
--- /dev/null
+++ b/runtimes/nn/depend/hal/CMakeLists.txt
@@ -0,0 +1,10 @@
+
+SET(HAL_INCS
+ ${CMAKE_CURRENT_SOURCE_DIR}/include
+)
+
+SET(INC_DIRS
+ ${INC_DIRS}
+ ${HAL_INCS}
+ PARENT_SCOPE
+)
diff --git a/runtimes/nn/depend/hal/include/android/hardware/neuralnetworks/1.0/types.h b/runtimes/nn/depend/hal/include/android/hardware/neuralnetworks/1.0/types.h
new file mode 100644
index 000000000..146d18d2a
--- /dev/null
+++ b/runtimes/nn/depend/hal/include/android/hardware/neuralnetworks/1.0/types.h
@@ -0,0 +1,493 @@
+#ifndef HIDL_GENERATED_ANDROID_HARDWARE_NEURALNETWORKS_V1_0_TYPES_H
+#define HIDL_GENERATED_ANDROID_HARDWARE_NEURALNETWORKS_V1_0_TYPES_H
+
+#include <hidl/HidlSupport.h>
+#if 0 // REF-ANN
+#include <hidl/MQDescriptor.h>
+#include <utils/NativeHandle.h>
+#include <utils/misc.h>
+#endif
+
+namespace android {
+namespace hardware {
+namespace neuralnetworks {
+namespace V1_0 {
+
+enum class OperandType : int32_t {
+ FLOAT32 = 0,
+ INT32 = 1,
+ UINT32 = 2,
+ TENSOR_FLOAT32 = 3,
+ TENSOR_INT32 = 4,
+ TENSOR_QUANT8_ASYMM = 5,
+ OEM = 10000,
+ TENSOR_OEM_BYTE = 10001,
+};
+
+enum class OperationType : int32_t {
+ ADD = 0,
+ AVERAGE_POOL_2D = 1,
+ CONCATENATION = 2,
+ CONV_2D = 3,
+ DEPTHWISE_CONV_2D = 4,
+ DEPTH_TO_SPACE = 5,
+ DEQUANTIZE = 6,
+ EMBEDDING_LOOKUP = 7,
+ FLOOR = 8,
+ FULLY_CONNECTED = 9,
+ HASHTABLE_LOOKUP = 10,
+ L2_NORMALIZATION = 11,
+ L2_POOL_2D = 12,
+ LOCAL_RESPONSE_NORMALIZATION = 13,
+ LOGISTIC = 14,
+ LSH_PROJECTION = 15,
+ LSTM = 16,
+ MAX_POOL_2D = 17,
+ MUL = 18,
+ RELU = 19,
+ RELU1 = 20,
+ RELU6 = 21,
+ RESHAPE = 22,
+ RESIZE_BILINEAR = 23,
+ RNN = 24,
+ SOFTMAX = 25,
+ SPACE_TO_DEPTH = 26,
+ SVDF = 27,
+ TANH = 28,
+ OEM_OPERATION = 10000,
+};
+
+enum class FusedActivationFunc : int32_t {
+ NONE = 0,
+ RELU = 1,
+ RELU1 = 2,
+ RELU6 = 3,
+};
+
+enum class OperandLifeTime : int32_t {
+ TEMPORARY_VARIABLE = 0,
+ MODEL_INPUT = 1,
+ MODEL_OUTPUT = 2,
+ CONSTANT_COPY = 3,
+ CONSTANT_REFERENCE = 4,
+ NO_VALUE = 5,
+};
+
+enum class DeviceStatus : int32_t {
+ AVAILABLE = 0,
+ BUSY = 1,
+ OFFLINE = 2,
+ UNKNOWN = 3,
+};
+
+struct PerformanceInfo final {
+ float execTime __attribute__ ((aligned(4)));
+ float powerUsage __attribute__ ((aligned(4)));
+};
+
+static_assert(offsetof(PerformanceInfo, execTime) == 0, "wrong offset");
+static_assert(offsetof(PerformanceInfo, powerUsage) == 4, "wrong offset");
+static_assert(sizeof(PerformanceInfo) == 8, "wrong size");
+static_assert(__alignof(PerformanceInfo) == 4, "wrong alignment");
+
+struct Capabilities final {
+ PerformanceInfo float32Performance __attribute__ ((aligned(4)));
+ PerformanceInfo quantized8Performance __attribute__ ((aligned(4)));
+};
+
+static_assert(offsetof(Capabilities, float32Performance) == 0, "wrong offset");
+static_assert(offsetof(Capabilities, quantized8Performance) == 8, "wrong offset");
+static_assert(sizeof(Capabilities) == 16, "wrong size");
+static_assert(__alignof(Capabilities) == 4, "wrong alignment");
+
+struct DataLocation final {
+ uint32_t poolIndex __attribute__ ((aligned(4)));
+ uint32_t offset __attribute__ ((aligned(4)));
+ uint32_t length __attribute__ ((aligned(4)));
+};
+
+static_assert(offsetof(DataLocation, poolIndex) == 0, "wrong offset");
+static_assert(offsetof(DataLocation, offset) == 4, "wrong offset");
+static_assert(offsetof(DataLocation, length) == 8, "wrong offset");
+static_assert(sizeof(DataLocation) == 12, "wrong size");
+static_assert(__alignof(DataLocation) == 4, "wrong alignment");
+
+struct Operand final {
+ OperandType type __attribute__ ((aligned(4)));
+ ::android::hardware::hidl_vec<uint32_t> dimensions __attribute__ ((aligned(8)));
+ uint32_t numberOfConsumers __attribute__ ((aligned(4)));
+ float scale __attribute__ ((aligned(4)));
+ int32_t zeroPoint __attribute__ ((aligned(4)));
+ OperandLifeTime lifetime __attribute__ ((aligned(4)));
+ DataLocation location __attribute__ ((aligned(4)));
+};
+
+static_assert(offsetof(Operand, type) == 0, "wrong offset");
+static_assert(offsetof(Operand, dimensions) == 8, "wrong offset");
+static_assert(offsetof(Operand, numberOfConsumers) == 24, "wrong offset");
+static_assert(offsetof(Operand, scale) == 28, "wrong offset");
+static_assert(offsetof(Operand, zeroPoint) == 32, "wrong offset");
+static_assert(offsetof(Operand, lifetime) == 36, "wrong offset");
+static_assert(offsetof(Operand, location) == 40, "wrong offset");
+static_assert(sizeof(Operand) == 56, "wrong size");
+static_assert(__alignof(Operand) == 8, "wrong alignment");
+
+struct Operation final {
+ OperationType type __attribute__ ((aligned(4)));
+ ::android::hardware::hidl_vec<uint32_t> inputs __attribute__ ((aligned(8)));
+ ::android::hardware::hidl_vec<uint32_t> outputs __attribute__ ((aligned(8)));
+};
+
+static_assert(offsetof(Operation, type) == 0, "wrong offset");
+static_assert(offsetof(Operation, inputs) == 8, "wrong offset");
+static_assert(offsetof(Operation, outputs) == 24, "wrong offset");
+static_assert(sizeof(Operation) == 40, "wrong size");
+static_assert(__alignof(Operation) == 8, "wrong alignment");
+
+struct Model final {
+ ::android::hardware::hidl_vec<Operand> operands __attribute__ ((aligned(8)));
+ ::android::hardware::hidl_vec<Operation> operations __attribute__ ((aligned(8)));
+ ::android::hardware::hidl_vec<uint32_t> inputIndexes __attribute__ ((aligned(8)));
+ ::android::hardware::hidl_vec<uint32_t> outputIndexes __attribute__ ((aligned(8)));
+ ::android::hardware::hidl_vec<uint8_t> operandValues __attribute__ ((aligned(8)));
+ ::android::hardware::hidl_vec<::android::hardware::hidl_memory> pools __attribute__ ((aligned(8)));
+};
+
+static_assert(offsetof(Model, operands) == 0, "wrong offset");
+static_assert(offsetof(Model, operations) == 16, "wrong offset");
+static_assert(offsetof(Model, inputIndexes) == 32, "wrong offset");
+static_assert(offsetof(Model, outputIndexes) == 48, "wrong offset");
+static_assert(offsetof(Model, operandValues) == 64, "wrong offset");
+static_assert(offsetof(Model, pools) == 80, "wrong offset");
+static_assert(sizeof(Model) == 96, "wrong size");
+static_assert(__alignof(Model) == 8, "wrong alignment");
+
+struct RequestArgument final {
+ bool hasNoValue __attribute__ ((aligned(1)));
+ DataLocation location __attribute__ ((aligned(4)));
+ ::android::hardware::hidl_vec<uint32_t> dimensions __attribute__ ((aligned(8)));
+};
+
+static_assert(offsetof(RequestArgument, hasNoValue) == 0, "wrong offset");
+static_assert(offsetof(RequestArgument, location) == 4, "wrong offset");
+static_assert(offsetof(RequestArgument, dimensions) == 16, "wrong offset");
+static_assert(sizeof(RequestArgument) == 32, "wrong size");
+static_assert(__alignof(RequestArgument) == 8, "wrong alignment");
+
+struct Request final {
+ ::android::hardware::hidl_vec<RequestArgument> inputs __attribute__ ((aligned(8)));
+ ::android::hardware::hidl_vec<RequestArgument> outputs __attribute__ ((aligned(8)));
+ ::android::hardware::hidl_vec<::android::hardware::hidl_memory> pools __attribute__ ((aligned(8)));
+};
+
+static_assert(offsetof(Request, inputs) == 0, "wrong offset");
+static_assert(offsetof(Request, outputs) == 16, "wrong offset");
+static_assert(offsetof(Request, pools) == 32, "wrong offset");
+static_assert(sizeof(Request) == 48, "wrong size");
+static_assert(__alignof(Request) == 8, "wrong alignment");
+
+enum class ErrorStatus : int32_t {
+ NONE = 0,
+ DEVICE_UNAVAILABLE = 1,
+ GENERAL_FAILURE = 2,
+ OUTPUT_INSUFFICIENT_SIZE = 3,
+ INVALID_ARGUMENT = 4,
+};
+
+constexpr int32_t operator|(const OperandType lhs, const OperandType rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator|(const int32_t lhs, const OperandType rhs) {
+ return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator|(const OperandType lhs, const int32_t rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
+}
+
+constexpr int32_t operator&(const OperandType lhs, const OperandType rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator&(const int32_t lhs, const OperandType rhs) {
+ return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator&(const OperandType lhs, const int32_t rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
+}
+
+constexpr int32_t &operator|=(int32_t& v, const OperandType e) {
+ v |= static_cast<int32_t>(e);
+ return v;
+}
+
+constexpr int32_t &operator&=(int32_t& v, const OperandType e) {
+ v &= static_cast<int32_t>(e);
+ return v;
+}
+
+template<typename>
+std::string toString(int32_t o);
+template<>
+std::string toString<OperandType>(int32_t o);
+
+std::string toString(OperandType o);
+
+constexpr int32_t operator|(const OperationType lhs, const OperationType rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator|(const int32_t lhs, const OperationType rhs) {
+ return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator|(const OperationType lhs, const int32_t rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
+}
+
+constexpr int32_t operator&(const OperationType lhs, const OperationType rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator&(const int32_t lhs, const OperationType rhs) {
+ return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator&(const OperationType lhs, const int32_t rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
+}
+
+constexpr int32_t &operator|=(int32_t& v, const OperationType e) {
+ v |= static_cast<int32_t>(e);
+ return v;
+}
+
+constexpr int32_t &operator&=(int32_t& v, const OperationType e) {
+ v &= static_cast<int32_t>(e);
+ return v;
+}
+
+template<typename>
+std::string toString(int32_t o);
+template<>
+std::string toString<OperationType>(int32_t o);
+
+std::string toString(OperationType o);
+
+constexpr int32_t operator|(const FusedActivationFunc lhs, const FusedActivationFunc rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator|(const int32_t lhs, const FusedActivationFunc rhs) {
+ return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator|(const FusedActivationFunc lhs, const int32_t rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
+}
+
+constexpr int32_t operator&(const FusedActivationFunc lhs, const FusedActivationFunc rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator&(const int32_t lhs, const FusedActivationFunc rhs) {
+ return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator&(const FusedActivationFunc lhs, const int32_t rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
+}
+
+constexpr int32_t &operator|=(int32_t& v, const FusedActivationFunc e) {
+ v |= static_cast<int32_t>(e);
+ return v;
+}
+
+constexpr int32_t &operator&=(int32_t& v, const FusedActivationFunc e) {
+ v &= static_cast<int32_t>(e);
+ return v;
+}
+
+template<typename>
+std::string toString(int32_t o);
+template<>
+std::string toString<FusedActivationFunc>(int32_t o);
+
+std::string toString(FusedActivationFunc o);
+
+constexpr int32_t operator|(const OperandLifeTime lhs, const OperandLifeTime rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator|(const int32_t lhs, const OperandLifeTime rhs) {
+ return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator|(const OperandLifeTime lhs, const int32_t rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
+}
+
+constexpr int32_t operator&(const OperandLifeTime lhs, const OperandLifeTime rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator&(const int32_t lhs, const OperandLifeTime rhs) {
+ return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator&(const OperandLifeTime lhs, const int32_t rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
+}
+
+constexpr int32_t &operator|=(int32_t& v, const OperandLifeTime e) {
+ v |= static_cast<int32_t>(e);
+ return v;
+}
+
+constexpr int32_t &operator&=(int32_t& v, const OperandLifeTime e) {
+ v &= static_cast<int32_t>(e);
+ return v;
+}
+
+template<typename>
+std::string toString(int32_t o);
+template<>
+std::string toString<OperandLifeTime>(int32_t o);
+
+std::string toString(OperandLifeTime o);
+
+constexpr int32_t operator|(const DeviceStatus lhs, const DeviceStatus rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator|(const int32_t lhs, const DeviceStatus rhs) {
+ return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator|(const DeviceStatus lhs, const int32_t rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
+}
+
+constexpr int32_t operator&(const DeviceStatus lhs, const DeviceStatus rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator&(const int32_t lhs, const DeviceStatus rhs) {
+ return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator&(const DeviceStatus lhs, const int32_t rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
+}
+
+constexpr int32_t &operator|=(int32_t& v, const DeviceStatus e) {
+ v |= static_cast<int32_t>(e);
+ return v;
+}
+
+constexpr int32_t &operator&=(int32_t& v, const DeviceStatus e) {
+ v &= static_cast<int32_t>(e);
+ return v;
+}
+
+template<typename>
+std::string toString(int32_t o);
+template<>
+std::string toString<DeviceStatus>(int32_t o);
+
+std::string toString(DeviceStatus o);
+
+std::string toString(const PerformanceInfo&);
+
+bool operator==(const PerformanceInfo&, const PerformanceInfo&);
+
+bool operator!=(const PerformanceInfo&, const PerformanceInfo&);
+
+std::string toString(const Capabilities&);
+
+bool operator==(const Capabilities&, const Capabilities&);
+
+bool operator!=(const Capabilities&, const Capabilities&);
+
+std::string toString(const DataLocation&);
+
+bool operator==(const DataLocation&, const DataLocation&);
+
+bool operator!=(const DataLocation&, const DataLocation&);
+
+std::string toString(const Operand&);
+
+bool operator==(const Operand&, const Operand&);
+
+bool operator!=(const Operand&, const Operand&);
+
+std::string toString(const Operation&);
+
+bool operator==(const Operation&, const Operation&);
+
+bool operator!=(const Operation&, const Operation&);
+
+std::string toString(const Model&);
+
+// operator== and operator!= are not generated for Model
+
+std::string toString(const RequestArgument&);
+
+bool operator==(const RequestArgument&, const RequestArgument&);
+
+bool operator!=(const RequestArgument&, const RequestArgument&);
+
+std::string toString(const Request&);
+
+// operator== and operator!= are not generated for Request
+
+constexpr int32_t operator|(const ErrorStatus lhs, const ErrorStatus rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator|(const int32_t lhs, const ErrorStatus rhs) {
+ return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator|(const ErrorStatus lhs, const int32_t rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
+}
+
+constexpr int32_t operator&(const ErrorStatus lhs, const ErrorStatus rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator&(const int32_t lhs, const ErrorStatus rhs) {
+ return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
+}
+
+constexpr int32_t operator&(const ErrorStatus lhs, const int32_t rhs) {
+ return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
+}
+
+constexpr int32_t &operator|=(int32_t& v, const ErrorStatus e) {
+ v |= static_cast<int32_t>(e);
+ return v;
+}
+
+constexpr int32_t &operator&=(int32_t& v, const ErrorStatus e) {
+ v &= static_cast<int32_t>(e);
+ return v;
+}
+
+template<typename>
+std::string toString(int32_t o);
+template<>
+std::string toString<ErrorStatus>(int32_t o);
+
+std::string toString(ErrorStatus o);
+
+
+} // namespace V1_0
+} // namespace neuralnetworks
+} // namespace hardware
+} // namespace android
+
+#endif // HIDL_GENERATED_ANDROID_HARDWARE_NEURALNETWORKS_V1_0_TYPES_H
diff --git a/runtimes/nn/depend/libcutils/CMakeLists.txt b/runtimes/nn/depend/libcutils/CMakeLists.txt
new file mode 100644
index 000000000..153271f31
--- /dev/null
+++ b/runtimes/nn/depend/libcutils/CMakeLists.txt
@@ -0,0 +1,22 @@
+
+SET(CUR_INCS
+ ${CMAKE_CURRENT_SOURCE_DIR}/include
+)
+
+
+SET(INC_DIRS
+ ${INC_DIRS}
+ ${CUR_INCS}
+ PARENT_SCOPE
+)
+
+SET(CUR_SRCS
+ ${CMAKE_CURRENT_SOURCE_DIR}/ashmem-host.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/native_handle.c
+)
+
+SET(SRCS
+ ${SRCS}
+ ${CUR_SRCS}
+ PARENT_SCOPE
+)
diff --git a/runtimes/nn/depend/libcutils/ashmem-host.c b/runtimes/nn/depend/libcutils/ashmem-host.c
new file mode 100644
index 000000000..95a7ff12f
--- /dev/null
+++ b/runtimes/nn/depend/libcutils/ashmem-host.c
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * Implementation of the user-space ashmem API for the simulator, which lacks
+ * an ashmem-enabled kernel. See ashmem-dev.c for the real ashmem-based version.
+ */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <time.h>
+#include <unistd.h>
+
+#include <cutils/ashmem.h>
+#include <utils/Compat.h>
+
+#ifndef __unused
+#define __unused __attribute__((__unused__))
+#endif
+
+static int ashmem_num = 0;
+
+int ashmem_create_region(const char *ignored __unused, size_t size)
+{
+ char template[PATH_MAX];
+ snprintf(template, sizeof(template), "/tmp/android-ashmem-%d-%d-XXXXXXXXX", getpid(), ashmem_num++);
+#if 0 // REF-ANN
+ snprintf(template, sizeof(template), "/tmp/android-ashmem-%d-XXXXXXXXX", getpid());
+#endif // REF-ANN
+ int fd = mkstemp(template);
+ if (fd == -1) return -1;
+
+ unlink(template);
+
+ if (TEMP_FAILURE_RETRY(ftruncate(fd, size)) == -1) {
+ close(fd);
+ return -1;
+ }
+
+ return fd;
+}
+
+int ashmem_set_prot_region(int fd __unused, int prot __unused)
+{
+ return 0;
+}
+
+int ashmem_pin_region(int fd __unused, size_t offset __unused, size_t len __unused)
+{
+ return 0 /*ASHMEM_NOT_PURGED*/;
+}
+
+int ashmem_unpin_region(int fd __unused, size_t offset __unused, size_t len __unused)
+{
+ return 0 /*ASHMEM_IS_UNPINNED*/;
+}
+
+int ashmem_get_size_region(int fd)
+{
+ struct stat buf;
+ int result = fstat(fd, &buf);
+ if (result == -1) {
+ return -1;
+ }
+
+ /*
+ * Check if this is an "ashmem" region.
+ * TODO: This is very hacky, and can easily break.
+ * We need some reliable indicator.
+ */
+ if (!(buf.st_nlink == 0 && S_ISREG(buf.st_mode))) {
+ errno = ENOTTY;
+ return -1;
+ }
+
+ return buf.st_size;
+}
diff --git a/runtimes/nn/depend/libcutils/include/cutils/ashmem.h b/runtimes/nn/depend/libcutils/include/cutils/ashmem.h
new file mode 100644
index 000000000..d80caa698
--- /dev/null
+++ b/runtimes/nn/depend/libcutils/include/cutils/ashmem.h
@@ -0,0 +1,34 @@
+/* cutils/ashmem.h
+ **
+ ** Copyright 2008 The Android Open Source Project
+ **
+ ** This file is dual licensed. It may be redistributed and/or modified
+ ** under the terms of the Apache 2.0 License OR version 2 of the GNU
+ ** General Public License.
+ */
+
+#ifndef _CUTILS_ASHMEM_H
+#define _CUTILS_ASHMEM_H
+
+#include <stddef.h>
+
+#if defined(__BIONIC__)
+#include <linux/ashmem.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int ashmem_valid(int fd);
+int ashmem_create_region(const char *name, size_t size);
+int ashmem_set_prot_region(int fd, int prot);
+int ashmem_pin_region(int fd, size_t offset, size_t len);
+int ashmem_unpin_region(int fd, size_t offset, size_t len);
+int ashmem_get_size_region(int fd);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _CUTILS_ASHMEM_H */
diff --git a/runtimes/nn/depend/libcutils/include/cutils/native_handle.h b/runtimes/nn/depend/libcutils/include/cutils/native_handle.h
new file mode 100644
index 000000000..abe6dd614
--- /dev/null
+++ b/runtimes/nn/depend/libcutils/include/cutils/native_handle.h
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef NATIVE_HANDLE_H_
+#define NATIVE_HANDLE_H_
+
+#include <stdalign.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Declare a char array for use with native_handle_init */
+#define NATIVE_HANDLE_DECLARE_STORAGE(name, maxFds, maxInts) \
+ alignas(native_handle_t) char name[ \
+ sizeof(native_handle_t) + sizeof(int) * (maxFds + maxInts)]
+
+typedef struct native_handle
+{
+ int version; /* sizeof(native_handle_t) */
+ int numFds; /* number of file-descriptors at &data[0] */
+ int numInts; /* number of ints at &data[numFds] */
+#if defined(__clang__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wzero-length-array"
+#endif
+ int data[0]; /* numFds + numInts ints */
+#if defined(__clang__)
+#pragma clang diagnostic pop
+#endif
+} native_handle_t;
+
+typedef const native_handle_t* buffer_handle_t;
+
+/*
+ * native_handle_close
+ *
+ * closes the file descriptors contained in this native_handle_t
+ *
+ * return 0 on success, or a negative error code on failure
+ *
+ */
+int native_handle_close(const native_handle_t* h);
+
+/*
+ * native_handle_init
+ *
+ * Initializes a native_handle_t from storage. storage must be declared with
+ * NATIVE_HANDLE_DECLARE_STORAGE. numFds and numInts must not respectively
+ * exceed maxFds and maxInts used to declare the storage.
+ */
+native_handle_t* native_handle_init(char* storage, int numFds, int numInts);
+
+/*
+ * native_handle_create
+ *
+ * creates a native_handle_t and initializes it. must be destroyed with
+ * native_handle_delete().
+ *
+ */
+native_handle_t* native_handle_create(int numFds, int numInts);
+
+/*
+ * native_handle_clone
+ *
+ * creates a native_handle_t and initializes it from another native_handle_t.
+ * Must be destroyed with native_handle_delete().
+ *
+ */
+native_handle_t* native_handle_clone(const native_handle_t* handle);
+
+/*
+ * native_handle_delete
+ *
+ * frees a native_handle_t allocated with native_handle_create().
+ * This ONLY frees the memory allocated for the native_handle_t, but doesn't
+ * close the file descriptors; which can be achieved with native_handle_close().
+ *
+ * return 0 on success, or a negative error code on failure
+ *
+ */
+int native_handle_delete(native_handle_t* h);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* NATIVE_HANDLE_H_ */
diff --git a/runtimes/nn/depend/libcutils/native_handle.c b/runtimes/nn/depend/libcutils/native_handle.c
new file mode 100644
index 000000000..95bbc41c4
--- /dev/null
+++ b/runtimes/nn/depend/libcutils/native_handle.c
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 2007 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <cutils/native_handle.h>
+
+#include <errno.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+static const int kMaxNativeFds = 1024;
+static const int kMaxNativeInts = 1024;
+
+native_handle_t* native_handle_init(char* storage, int numFds, int numInts) {
+ if ((uintptr_t) storage % alignof(native_handle_t)) {
+ errno = EINVAL;
+ return NULL;
+ }
+
+ native_handle_t* handle = (native_handle_t*) storage;
+ handle->version = sizeof(native_handle_t);
+ handle->numFds = numFds;
+ handle->numInts = numInts;
+ return handle;
+}
+
+native_handle_t* native_handle_create(int numFds, int numInts) {
+ if (numFds < 0 || numInts < 0 || numFds > kMaxNativeFds || numInts > kMaxNativeInts) {
+ errno = EINVAL;
+ return NULL;
+ }
+
+ size_t mallocSize = sizeof(native_handle_t) + (sizeof(int) * (numFds + numInts));
+ native_handle_t* h = malloc(mallocSize);
+ if (h) {
+ h->version = sizeof(native_handle_t);
+ h->numFds = numFds;
+ h->numInts = numInts;
+ }
+ return h;
+}
+
+native_handle_t* native_handle_clone(const native_handle_t* handle) {
+ native_handle_t* clone = native_handle_create(handle->numFds, handle->numInts);
+ if (clone == NULL) return NULL;
+
+ for (int i = 0; i < handle->numFds; i++) {
+ clone->data[i] = dup(handle->data[i]);
+ if (clone->data[i] == -1) {
+ clone->numFds = i;
+ native_handle_close(clone);
+ native_handle_delete(clone);
+ return NULL;
+ }
+ }
+
+ memcpy(&clone->data[handle->numFds], &handle->data[handle->numFds],
+ sizeof(int) * handle->numInts);
+
+ return clone;
+}
+
+int native_handle_delete(native_handle_t* h) {
+ if (h) {
+ if (h->version != sizeof(native_handle_t)) return -EINVAL;
+ free(h);
+ }
+ return 0;
+}
+
+int native_handle_close(const native_handle_t* h) {
+ if (h->version != sizeof(native_handle_t)) return -EINVAL;
+
+ int saved_errno = errno;
+ const int numFds = h->numFds;
+ for (int i = 0; i < numFds; ++i) {
+ close(h->data[i]);
+ }
+ errno = saved_errno;
+ return 0;
+}
diff --git a/runtimes/nn/depend/libhidl/CMakeLists.txt b/runtimes/nn/depend/libhidl/CMakeLists.txt
new file mode 100644
index 000000000..cb1648c33
--- /dev/null
+++ b/runtimes/nn/depend/libhidl/CMakeLists.txt
@@ -0,0 +1,11 @@
+ADD_SUBDIRECTORY(base)
+
+SET(INC_DIRS
+ ${INC_DIRS}
+ PARENT_SCOPE
+)
+
+SET(SRCS
+ ${SRCS}
+ PARENT_SCOPE
+)
diff --git a/runtimes/nn/depend/libhidl/base/CMakeLists.txt b/runtimes/nn/depend/libhidl/base/CMakeLists.txt
new file mode 100644
index 000000000..370e13e76
--- /dev/null
+++ b/runtimes/nn/depend/libhidl/base/CMakeLists.txt
@@ -0,0 +1,22 @@
+
+SET(CUR_INCS
+ ${CMAKE_CURRENT_SOURCE_DIR}/include
+)
+
+
+SET(INC_DIRS
+ ${INC_DIRS}
+ ${CUR_INCS}
+ PARENT_SCOPE
+)
+
+SET(CUR_SRCS
+ ${CMAKE_CURRENT_SOURCE_DIR}/HidlSupport.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/Status.cpp
+)
+
+SET(SRCS
+ ${SRCS}
+ ${CUR_SRCS}
+ PARENT_SCOPE
+)
diff --git a/runtimes/nn/depend/libhidl/base/HidlSupport.cpp b/runtimes/nn/depend/libhidl/base/HidlSupport.cpp
new file mode 100644
index 000000000..7481c74cc
--- /dev/null
+++ b/runtimes/nn/depend/libhidl/base/HidlSupport.cpp
@@ -0,0 +1,283 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#define LOG_TAG "HidlSupport"
+
+#include <hidl/HidlSupport.h>
+#include "Logging.h"
+
+#include <unordered_map>
+
+#if 0 // REF-ANN
+#include <android-base/parseint.h>
+#endif
+
+namespace android {
+namespace hardware {
+
+#if 0 // REF-ANN
+namespace details {
+bool debuggable() {
+#ifdef LIBHIDL_TARGET_DEBUGGABLE
+ return true;
+#else
+ return false;
+#endif
+}
+} // namespace details
+
+hidl_handle::hidl_handle() {
+ mHandle = nullptr;
+ mOwnsHandle = false;
+}
+
+hidl_handle::~hidl_handle() {
+ freeHandle();
+}
+
+hidl_handle::hidl_handle(const native_handle_t *handle) {
+ mHandle = handle;
+ mOwnsHandle = false;
+}
+
+// copy constructor.
+hidl_handle::hidl_handle(const hidl_handle &other) {
+ mOwnsHandle = false;
+ *this = other;
+}
+
+// move constructor.
+hidl_handle::hidl_handle(hidl_handle &&other) noexcept {
+ mOwnsHandle = false;
+ *this = std::move(other);
+}
+
+// assignment operators
+hidl_handle &hidl_handle::operator=(const hidl_handle &other) {
+ if (this == &other) {
+ return *this;
+ }
+ freeHandle();
+ if (other.mHandle != nullptr) {
+ mHandle = native_handle_clone(other.mHandle);
+ if (mHandle == nullptr) {
+ PLOG(FATAL) << "Failed to clone native_handle in hidl_handle";
+ }
+ mOwnsHandle = true;
+ } else {
+ mHandle = nullptr;
+ mOwnsHandle = false;
+ }
+ return *this;
+}
+
+hidl_handle &hidl_handle::operator=(const native_handle_t *native_handle) {
+ freeHandle();
+ mHandle = native_handle;
+ mOwnsHandle = false;
+ return *this;
+}
+
+hidl_handle &hidl_handle::operator=(hidl_handle &&other) noexcept {
+ if (this != &other) {
+ freeHandle();
+ mHandle = other.mHandle;
+ mOwnsHandle = other.mOwnsHandle;
+ other.mHandle = nullptr;
+ other.mOwnsHandle = false;
+ }
+ return *this;
+}
+
+void hidl_handle::setTo(native_handle_t* handle, bool shouldOwn) {
+ freeHandle();
+ mHandle = handle;
+ mOwnsHandle = shouldOwn;
+}
+
+const native_handle_t* hidl_handle::operator->() const {
+ return mHandle;
+}
+
+// implicit conversion to const native_handle_t*
+hidl_handle::operator const native_handle_t *() const {
+ return mHandle;
+}
+
+// explicit conversion
+const native_handle_t *hidl_handle::getNativeHandle() const {
+ return mHandle;
+}
+
+void hidl_handle::freeHandle() {
+ if (mOwnsHandle && mHandle != nullptr) {
+ // This can only be true if:
+ // 1. Somebody called setTo() with shouldOwn=true, so we know the handle
+ // wasn't const to begin with.
+ // 2. Copy/assignment from another hidl_handle, in which case we have
+ // cloned the handle.
+ // 3. Move constructor from another hidl_handle, in which case the original
+ // hidl_handle must have been non-const as well.
+ native_handle_t *handle = const_cast<native_handle_t*>(
+ static_cast<const native_handle_t*>(mHandle));
+ native_handle_close(handle);
+ native_handle_delete(handle);
+ mHandle = nullptr;
+ }
+}
+#endif
+
+static const char *const kEmptyString = "";
+
+hidl_string::hidl_string()
+ : mBuffer(kEmptyString),
+ mSize(0),
+ mOwnsBuffer(false) {
+}
+
+hidl_string::~hidl_string() {
+ clear();
+}
+
+hidl_string::hidl_string(const char *s) : hidl_string() {
+ if (s == nullptr) {
+ return;
+ }
+
+ copyFrom(s, strlen(s));
+}
+
+hidl_string::hidl_string(const char *s, size_t length) : hidl_string() {
+ copyFrom(s, length);
+}
+
+hidl_string::hidl_string(const hidl_string &other): hidl_string() {
+ copyFrom(other.c_str(), other.size());
+}
+
+hidl_string::hidl_string(const std::string &s) : hidl_string() {
+ copyFrom(s.c_str(), s.size());
+}
+
+hidl_string::hidl_string(hidl_string &&other) noexcept : hidl_string() {
+ moveFrom(std::forward<hidl_string>(other));
+}
+
+hidl_string &hidl_string::operator=(hidl_string &&other) noexcept {
+ if (this != &other) {
+ clear();
+ moveFrom(std::forward<hidl_string>(other));
+ }
+ return *this;
+}
+
+hidl_string &hidl_string::operator=(const hidl_string &other) {
+ if (this != &other) {
+ clear();
+ copyFrom(other.c_str(), other.size());
+ }
+
+ return *this;
+}
+
+hidl_string &hidl_string::operator=(const char *s) {
+ clear();
+
+ if (s == nullptr) {
+ return *this;
+ }
+
+ copyFrom(s, strlen(s));
+ return *this;
+}
+
+hidl_string &hidl_string::operator=(const std::string &s) {
+ clear();
+ copyFrom(s.c_str(), s.size());
+ return *this;
+}
+
+hidl_string::operator std::string() const {
+ return std::string(mBuffer, mSize);
+}
+
+std::ostream& operator<<(std::ostream& os, const hidl_string& str) {
+ os << str.c_str();
+ return os;
+}
+
+void hidl_string::copyFrom(const char *data, size_t size) {
+ // assume my resources are freed.
+
+ if (size > UINT32_MAX) {
+ LOG(FATAL) << "string size can't exceed 2^32 bytes: " << size;
+ }
+ char *buf = (char *)malloc(size + 1);
+ memcpy(buf, data, size);
+ buf[size] = '\0';
+ mBuffer = buf;
+
+ mSize = static_cast<uint32_t>(size);
+ mOwnsBuffer = true;
+}
+
+void hidl_string::moveFrom(hidl_string &&other) {
+ // assume my resources are freed.
+
+ mBuffer = std::move(other.mBuffer);
+ mSize = other.mSize;
+ mOwnsBuffer = other.mOwnsBuffer;
+
+ other.mOwnsBuffer = false;
+ other.clear();
+}
+
+void hidl_string::clear() {
+ if (mOwnsBuffer && (mBuffer != kEmptyString)) {
+ free(const_cast<char *>(static_cast<const char *>(mBuffer)));
+ }
+
+ mBuffer = kEmptyString;
+ mSize = 0;
+ mOwnsBuffer = false;
+}
+
+void hidl_string::setToExternal(const char *data, size_t size) {
+ if (size > UINT32_MAX) {
+ LOG(FATAL) << "string size can't exceed 2^32 bytes: " << size;
+ }
+ clear();
+
+ mBuffer = data;
+ mSize = static_cast<uint32_t>(size);
+ mOwnsBuffer = false;
+}
+
+const char *hidl_string::c_str() const {
+ return mBuffer;
+}
+
+size_t hidl_string::size() const {
+ return mSize;
+}
+
+bool hidl_string::empty() const {
+ return mSize == 0;
+}
+
+} // namespace hardware
+} // namespace android
+
+
diff --git a/runtimes/nn/depend/libhidl/base/Status.cpp b/runtimes/nn/depend/libhidl/base/Status.cpp
new file mode 100644
index 000000000..6e05b100b
--- /dev/null
+++ b/runtimes/nn/depend/libhidl/base/Status.cpp
@@ -0,0 +1,166 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "HidlStatus"
+#include "Logging.h"
+
+#include <hidl/Status.h>
+
+#include <unordered_map>
+#include <cstring>
+
+namespace android {
+namespace hardware {
+
+static std::string statusToString(status_t s) {
+ const std::unordered_map<status_t, std::string> statusStrings{{
+ #define STATUS_TO_STRING_PAIR(STATUS) {STATUS, #STATUS}
+ STATUS_TO_STRING_PAIR(OK),
+ STATUS_TO_STRING_PAIR(UNKNOWN_ERROR),
+ STATUS_TO_STRING_PAIR(NO_MEMORY),
+ STATUS_TO_STRING_PAIR(INVALID_OPERATION),
+ STATUS_TO_STRING_PAIR(BAD_VALUE),
+ STATUS_TO_STRING_PAIR(BAD_TYPE),
+ STATUS_TO_STRING_PAIR(NAME_NOT_FOUND),
+ STATUS_TO_STRING_PAIR(PERMISSION_DENIED),
+ STATUS_TO_STRING_PAIR(NO_INIT),
+ STATUS_TO_STRING_PAIR(ALREADY_EXISTS),
+ STATUS_TO_STRING_PAIR(DEAD_OBJECT),
+ STATUS_TO_STRING_PAIR(FAILED_TRANSACTION),
+ STATUS_TO_STRING_PAIR(BAD_INDEX),
+ STATUS_TO_STRING_PAIR(NOT_ENOUGH_DATA),
+ STATUS_TO_STRING_PAIR(WOULD_BLOCK),
+ STATUS_TO_STRING_PAIR(TIMED_OUT),
+ STATUS_TO_STRING_PAIR(UNKNOWN_TRANSACTION),
+ STATUS_TO_STRING_PAIR(FDS_NOT_ALLOWED),
+ STATUS_TO_STRING_PAIR(UNEXPECTED_NULL)
+ }};
+ auto it = statusStrings.find(s);
+ if (it != statusStrings.end()) {
+ return it->second;
+ }
+ std::string str = std::to_string(s);
+ char *err = strerror(-s);
+ if (err != NULL) {
+ str.append(1, ' ').append(err);
+ }
+ return str;
+}
+
+static std::string exceptionToString(int32_t ex) {
+ const std::unordered_map<int32_t, std::string> exceptionStrings{{
+ #define EXCEPTION_TO_STRING_PAIR(EXCEPTION) {Status::Exception::EXCEPTION, #EXCEPTION}
+ EXCEPTION_TO_STRING_PAIR(EX_NONE),
+ EXCEPTION_TO_STRING_PAIR(EX_SECURITY),
+ EXCEPTION_TO_STRING_PAIR(EX_BAD_PARCELABLE),
+ EXCEPTION_TO_STRING_PAIR(EX_ILLEGAL_ARGUMENT),
+ EXCEPTION_TO_STRING_PAIR(EX_NULL_POINTER),
+ EXCEPTION_TO_STRING_PAIR(EX_ILLEGAL_STATE),
+ EXCEPTION_TO_STRING_PAIR(EX_NETWORK_MAIN_THREAD),
+ EXCEPTION_TO_STRING_PAIR(EX_UNSUPPORTED_OPERATION),
+ EXCEPTION_TO_STRING_PAIR(EX_HAS_REPLY_HEADER),
+ EXCEPTION_TO_STRING_PAIR(EX_TRANSACTION_FAILED)
+ }};
+ auto it = exceptionStrings.find(ex);
+ return it == exceptionStrings.end() ? std::to_string(ex) : it->second;
+}
+
+Status Status::ok() {
+ return Status();
+}
+
+Status Status::fromExceptionCode(int32_t exceptionCode) {
+ return Status(exceptionCode, OK);
+}
+
+Status Status::fromExceptionCode(int32_t exceptionCode,
+ const char *message) {
+ return Status(exceptionCode, OK, message);
+}
+
+Status Status::fromStatusT(status_t status) {
+ Status ret;
+ ret.setFromStatusT(status);
+ return ret;
+}
+
+Status::Status(int32_t exceptionCode, int32_t errorCode)
+ : mException(exceptionCode),
+ mErrorCode(errorCode) {}
+
+Status::Status(int32_t exceptionCode, int32_t errorCode, const char *message)
+ : mException(exceptionCode),
+ mErrorCode(errorCode),
+ mMessage(message) {}
+
+void Status::setException(int32_t ex, const char *message) {
+ mException = ex;
+ mErrorCode = NO_ERROR; // an exception, not a transaction failure.
+ mMessage = message;
+}
+
+void Status::setFromStatusT(status_t status) {
+ mException = (status == NO_ERROR) ? EX_NONE : EX_TRANSACTION_FAILED;
+ mErrorCode = status;
+ mMessage.clear();
+}
+
+std::string Status::description() const {
+ std::ostringstream oss;
+ oss << (*this);
+ return oss.str();
+}
+
+std::ostream& operator<< (std::ostream& stream, const Status& s) {
+ if (s.exceptionCode() == Status::EX_NONE) {
+ stream << "No error";
+ } else {
+ stream << "Status(" << exceptionToString(s.exceptionCode()) << "): '";
+ if (s.exceptionCode() == Status::EX_TRANSACTION_FAILED) {
+ stream << statusToString(s.transactionError()) << ": ";
+ }
+ stream << s.exceptionMessage() << "'";
+ }
+ return stream;
+}
+
+namespace details {
+ void return_status::assertOk() const {
+ if (!isOk()) {
+ LOG(FATAL) << "Attempted to retrieve value from failed HIDL call: " << description();
+ }
+ }
+
+ return_status::~return_status() {
+ // mCheckedStatus must be checked before isOk since isOk modifies mCheckedStatus
+ if (!mCheckedStatus && !isOk()) {
+ LOG(FATAL) << "Failed HIDL return status not checked: " << description();
+ }
+ }
+
+ return_status &return_status::operator=(return_status &&other) {
+ if (!mCheckedStatus && !isOk()) {
+ LOG(FATAL) << "Failed HIDL return status not checked: " << description();
+ }
+ std::swap(mStatus, other.mStatus);
+ std::swap(mCheckedStatus, other.mCheckedStatus);
+ return *this;
+ }
+
+} // namespace details
+
+} // namespace hardware
+} // namespace android
diff --git a/runtimes/nn/depend/libhidl/base/include/hidl/HidlInternal.h b/runtimes/nn/depend/libhidl/base/include/hidl/HidlInternal.h
new file mode 100644
index 000000000..39f80f09b
--- /dev/null
+++ b/runtimes/nn/depend/libhidl/base/include/hidl/HidlInternal.h
@@ -0,0 +1,193 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ANDROID_HIDL_INTERNAL_H
+#define ANDROID_HIDL_INTERNAL_H
+
+#include <cstdint>
+#include <dirent.h>
+#include <functional>
+#include <string>
+#include <vector>
+#include <utility>
+
+namespace android {
+namespace hardware {
+namespace details {
+
+//Templated classes can use the below method
+//to avoid creating dependencies on liblog.
+void logAlwaysFatal(const char *message);
+
+// HIDL client/server code should *NOT* use this class.
+//
+// hidl_pointer wraps a pointer without taking ownership,
+// and stores it in a union with a uint64_t. This ensures
+// that we always have enough space to store a pointer,
+// regardless of whether we're running in a 32-bit or 64-bit
+// process.
+template<typename T>
+struct hidl_pointer {
+ hidl_pointer()
+ : _pad(0) {
+ }
+ hidl_pointer(T* ptr) : hidl_pointer() { mPointer = ptr; }
+ hidl_pointer(const hidl_pointer<T>& other) : hidl_pointer() { mPointer = other.mPointer; }
+ hidl_pointer(hidl_pointer<T>&& other) : hidl_pointer() { *this = std::move(other); }
+
+ hidl_pointer &operator=(const hidl_pointer<T>& other) {
+ mPointer = other.mPointer;
+ return *this;
+ }
+ hidl_pointer &operator=(hidl_pointer<T>&& other) {
+ mPointer = other.mPointer;
+ other.mPointer = nullptr;
+ return *this;
+ }
+ hidl_pointer &operator=(T* ptr) {
+ mPointer = ptr;
+ return *this;
+ }
+
+ operator T*() const {
+ return mPointer;
+ }
+ explicit operator void*() const { // requires explicit cast to avoid ambiguity
+ return mPointer;
+ }
+ T& operator*() const {
+ return *mPointer;
+ }
+ T* operator->() const {
+ return mPointer;
+ }
+ T &operator[](size_t index) {
+ return mPointer[index];
+ }
+ const T &operator[](size_t index) const {
+ return mPointer[index];
+ }
+
+private:
+ union {
+ T* mPointer;
+ uint64_t _pad;
+ };
+};
+
+#define HAL_LIBRARY_PATH_SYSTEM_64BIT "/system/lib64/hw/"
+#define HAL_LIBRARY_PATH_VNDK_SP_64BIT "/system/lib64/vndk-sp/hw/"
+#define HAL_LIBRARY_PATH_VENDOR_64BIT "/vendor/lib64/hw/"
+#define HAL_LIBRARY_PATH_ODM_64BIT "/odm/lib64/hw/"
+#define HAL_LIBRARY_PATH_SYSTEM_32BIT "/system/lib/hw/"
+#define HAL_LIBRARY_PATH_VNDK_SP_32BIT "/system/lib/vndk-sp/hw/"
+#define HAL_LIBRARY_PATH_VENDOR_32BIT "/vendor/lib/hw/"
+#define HAL_LIBRARY_PATH_ODM_32BIT "/odm/lib/hw/"
+
+#if defined(__LP64__)
+#define HAL_LIBRARY_PATH_SYSTEM HAL_LIBRARY_PATH_SYSTEM_64BIT
+#define HAL_LIBRARY_PATH_VNDK_SP HAL_LIBRARY_PATH_VNDK_SP_64BIT
+#define HAL_LIBRARY_PATH_VENDOR HAL_LIBRARY_PATH_VENDOR_64BIT
+#define HAL_LIBRARY_PATH_ODM HAL_LIBRARY_PATH_ODM_64BIT
+#else
+#define HAL_LIBRARY_PATH_SYSTEM HAL_LIBRARY_PATH_SYSTEM_32BIT
+#define HAL_LIBRARY_PATH_VNDK_SP HAL_LIBRARY_PATH_VNDK_SP_32BIT
+#define HAL_LIBRARY_PATH_VENDOR HAL_LIBRARY_PATH_VENDOR_32BIT
+#define HAL_LIBRARY_PATH_ODM HAL_LIBRARY_PATH_ODM_32BIT
+#endif
+
+#if 0 // REF-ANN
+// ----------------------------------------------------------------------
+// Class that provides Hidl instrumentation utilities.
+struct HidlInstrumentor {
+ // Event that triggers the instrumentation. e.g. enter of an API call on
+ // the server/client side, exit of an API call on the server/client side
+ // etc.
+ enum InstrumentationEvent {
+ SERVER_API_ENTRY = 0,
+ SERVER_API_EXIT,
+ CLIENT_API_ENTRY,
+ CLIENT_API_EXIT,
+ SYNC_CALLBACK_ENTRY,
+ SYNC_CALLBACK_EXIT,
+ ASYNC_CALLBACK_ENTRY,
+ ASYNC_CALLBACK_EXIT,
+ PASSTHROUGH_ENTRY,
+ PASSTHROUGH_EXIT,
+ };
+
+ // Signature of the instrumentation callback function.
+ using InstrumentationCallback = std::function<void(
+ const InstrumentationEvent event,
+ const char *package,
+ const char *version,
+ const char *interface,
+ const char *method,
+ std::vector<void *> *args)>;
+
+ explicit HidlInstrumentor(
+ const std::string &package,
+ const std::string &insterface);
+ virtual ~HidlInstrumentor();
+
+ public:
+ const std::vector<InstrumentationCallback>& getInstrumentationCallbacks() {
+ return mInstrumentationCallbacks;
+ }
+ bool isInstrumentationEnabled() { return mEnableInstrumentation; }
+
+ protected:
+ // Set mEnableInstrumentation based on system property
+ // hal.instrumentation.enable, register/de-register instrumentation
+ // callbacks if mEnableInstrumentation is true/false.
+ void configureInstrumentation(bool log=true);
+ // Function that lookup and dynamically loads the hidl instrumentation
+ // libraries and registers the instrumentation callback functions.
+ //
+ // The instrumentation libraries should be stored under any of the following
+ // directories: HAL_LIBRARY_PATH_SYSTEM, HAL_LIBRARY_PATH_VNDK_SP,
+ // HAL_LIBRARY_PATH_VENDOR and HAL_LIBRARY_PATH_ODM.
+ // The name of instrumentation libraries should follow pattern:
+ // ^profilerPrefix(.*).profiler.so$
+ //
+ // Each instrumentation library is expected to implement the instrumentation
+ // function called HIDL_INSTRUMENTATION_FUNCTION.
+ //
+ // A no-op for user build.
+ void registerInstrumentationCallbacks(
+ std::vector<InstrumentationCallback> *instrumentationCallbacks);
+
+ // Utility function to determine whether a give file is a instrumentation
+ // library (i.e. the file name follow the expected pattern).
+ bool isInstrumentationLib(const dirent *file);
+
+ // A list of registered instrumentation callbacks.
+ std::vector<InstrumentationCallback> mInstrumentationCallbacks;
+ // Flag whether to enable instrumentation.
+ bool mEnableInstrumentation;
+ // Prefix to lookup the instrumentation libraries.
+ std::string mInstrumentationLibPackage;
+ // Used for dlsym to load the profiling method for given interface.
+ std::string mInterfaceName;
+
+};
+#endif
+
+} // namespace details
+} // namespace hardware
+} // namespace android
+
+#endif // ANDROID_HIDL_INTERNAL_H
diff --git a/runtimes/nn/depend/libhidl/base/include/hidl/HidlSupport.h b/runtimes/nn/depend/libhidl/base/include/hidl/HidlSupport.h
new file mode 100644
index 000000000..bc8d56ea7
--- /dev/null
+++ b/runtimes/nn/depend/libhidl/base/include/hidl/HidlSupport.h
@@ -0,0 +1,989 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ANDROID_HIDL_SUPPORT_H
+#define ANDROID_HIDL_SUPPORT_H
+
+#include <cstring>
+
+#include <string>
+#include <iterator>
+#include <cutils/native_handle.h>
+#include <hidl/HidlInternal.h>
+#include <map>
+#include <stddef.h>
+#include <tuple>
+#include <type_traits>
+#include <utils/StrongPointer.h>
+#include <utils/RefBase.h>
+
+#if 0 // REF-ANN
+#include <algorithm>
+#include <array>
+#include <iterator>
+#include <cutils/native_handle.h>
+#include <hidl/HidlInternal.h>
+#include <hidl/Status.h>
+#include <map>
+#include <sstream>
+#include <stddef.h>
+#include <tuple>
+#include <type_traits>
+#include <utils/Errors.h>
+#include <utils/RefBase.h>
+#include <vector>
+#endif
+
+namespace android {
+
+// this file is included by all hidl interface, so we must forward declare the
+// IMemory and IBase types.
+namespace hidl {
+namespace memory {
+namespace V1_0 {
+ struct IMemory;
+}; // namespace V1_0
+}; // namespace manager
+}; // namespace hidl
+
+namespace hidl {
+namespace base {
+namespace V1_0 {
+ struct IBase;
+}; // namespace V1_0
+}; // namespace base
+}; // namespace hidl
+
+namespace hardware {
+
+#if 0 // REF-ANN
+namespace details {
+// Return true on userdebug / eng builds and false on user builds.
+bool debuggable();
+} // namespace details
+
+// hidl_death_recipient is a callback interfaced that can be used with
+// linkToDeath() / unlinkToDeath()
+struct hidl_death_recipient : public virtual RefBase {
+ virtual void serviceDied(uint64_t cookie,
+ const ::android::wp<::android::hidl::base::V1_0::IBase>& who) = 0;
+};
+
+// hidl_handle wraps a pointer to a native_handle_t in a hidl_pointer,
+// so that it can safely be transferred between 32-bit and 64-bit processes.
+// The ownership semantics for this are:
+// 1) The conversion constructor and assignment operator taking a const native_handle_t*
+// do not take ownership of the handle; this is because these operations are usually
+// just done for IPC, and cloning by default is a waste of resources. If you want
+// a hidl_handle to take ownership, call setTo(handle, true /*shouldOwn*/);
+// 2) The copy constructor/assignment operator taking a hidl_handle *DO* take ownership;
+// that is because it's not intuitive that this class encapsulates a native_handle_t
+// which needs cloning to be valid; in particular, this allows constructs like this:
+// hidl_handle copy;
+// foo->someHidlCall([&](auto incoming_handle) {
+// copy = incoming_handle;
+// });
+// // copy and its enclosed file descriptors will remain valid here.
+// 3) The move constructor does what you would expect; it only owns the handle if the
+// original did.
+struct hidl_handle {
+ hidl_handle();
+ ~hidl_handle();
+
+ hidl_handle(const native_handle_t *handle);
+
+ // copy constructor.
+ hidl_handle(const hidl_handle &other);
+
+ // move constructor.
+ hidl_handle(hidl_handle &&other) noexcept;
+
+ // assignment operators
+ hidl_handle &operator=(const hidl_handle &other);
+
+ hidl_handle &operator=(const native_handle_t *native_handle);
+
+ hidl_handle &operator=(hidl_handle &&other) noexcept;
+
+ void setTo(native_handle_t* handle, bool shouldOwn = false);
+
+ const native_handle_t* operator->() const;
+
+ // implicit conversion to const native_handle_t*
+ operator const native_handle_t *() const;
+
+ // explicit conversion
+ const native_handle_t *getNativeHandle() const;
+private:
+ void freeHandle();
+
+ details::hidl_pointer<const native_handle_t> mHandle __attribute__ ((aligned(8)));
+ bool mOwnsHandle __attribute ((aligned(8)));
+};
+#endif
+
+struct hidl_string {
+ hidl_string();
+ ~hidl_string();
+
+ // copy constructor.
+ hidl_string(const hidl_string &);
+ // copy from a C-style string. nullptr will create an empty string
+ hidl_string(const char *);
+ // copy the first length characters from a C-style string.
+ hidl_string(const char *, size_t length);
+ // copy from an std::string.
+ hidl_string(const std::string &);
+
+ // move constructor.
+ hidl_string(hidl_string &&) noexcept;
+
+ const char *c_str() const;
+ size_t size() const;
+ bool empty() const;
+
+ // copy assignment operator.
+ hidl_string &operator=(const hidl_string &);
+ // copy from a C-style string.
+ hidl_string &operator=(const char *s);
+ // copy from an std::string.
+ hidl_string &operator=(const std::string &);
+ // move assignment operator.
+ hidl_string &operator=(hidl_string &&other) noexcept;
+ // cast to std::string.
+ operator std::string() const;
+
+ void clear();
+
+ // Reference an external char array. Ownership is _not_ transferred.
+ // Caller is responsible for ensuring that underlying memory is valid
+ // for the lifetime of this hidl_string.
+ void setToExternal(const char *data, size_t size);
+
+ // offsetof(hidl_string, mBuffer) exposed since mBuffer is private.
+ static const size_t kOffsetOfBuffer;
+
+private:
+ details::hidl_pointer<const char> mBuffer;
+ uint32_t mSize; // NOT including the terminating '\0'.
+ bool mOwnsBuffer; // if true then mBuffer is a mutable char *
+
+ // copy from data with size. Assume that my memory is freed
+ // (through clear(), for example)
+ void copyFrom(const char *data, size_t size);
+ // move from another hidl_string
+ void moveFrom(hidl_string &&);
+};
+
+#define HIDL_STRING_OPERATOR(OP) \
+ inline bool operator OP(const hidl_string &hs1, const hidl_string &hs2) { \
+ return strcmp(hs1.c_str(), hs2.c_str()) OP 0; \
+ } \
+ inline bool operator OP(const hidl_string &hs, const char *s) { \
+ return strcmp(hs.c_str(), s) OP 0; \
+ } \
+ inline bool operator OP(const char *s, const hidl_string &hs) { \
+ return strcmp(hs.c_str(), s) OP 0; \
+ }
+
+HIDL_STRING_OPERATOR(==)
+HIDL_STRING_OPERATOR(!=)
+HIDL_STRING_OPERATOR(<)
+HIDL_STRING_OPERATOR(<=)
+HIDL_STRING_OPERATOR(>)
+HIDL_STRING_OPERATOR(>=)
+
+#undef HIDL_STRING_OPERATOR
+
+// Send our content to the output stream
+std::ostream& operator<<(std::ostream& os, const hidl_string& str);
+
+
+// hidl_memory is a structure that can be used to transfer
+// pieces of shared memory between processes. The assumption
+// of this object is that the memory remains accessible as
+// long as the file descriptors in the enclosed mHandle
+// - as well as all of its cross-process dups() - remain opened.
+struct hidl_memory {
+
+ hidl_memory() : mHandle(nullptr), mSize(0), mName("") {
+ }
+
+ /**
+ * Creates a hidl_memory object, but doesn't take ownership of
+ * the passed in native_handle_t; callers are responsible for
+ * making sure the handle remains valid while this object is
+ * used.
+ */
+ hidl_memory(const std::string &name, const native_handle_t *handle, size_t size)
+#if 0 // REF-ANN
+ hidl_memory(const hidl_string &name, const native_handle_t *handle, size_t size)
+#endif
+ : mHandle(handle),
+ mSize(size),
+ mName(name)
+ {}
+
+ // copy constructor
+ hidl_memory(const hidl_memory& other) {
+ *this = other;
+ }
+
+ // copy assignment
+ hidl_memory &operator=(const hidl_memory &other) {
+ if (this != &other) {
+ mHandle = other.mHandle;
+ mSize = other.mSize;
+ mName = other.mName;
+ }
+
+ return *this;
+ }
+
+ // move constructor
+ hidl_memory(hidl_memory&& other) noexcept {
+ *this = std::move(other);
+ }
+
+ // move assignment
+ hidl_memory &operator=(hidl_memory &&other) noexcept {
+ if (this != &other) {
+ mHandle = std::move(other.mHandle);
+ mSize = other.mSize;
+ mName = std::move(other.mName);
+ other.mSize = 0;
+ }
+
+ return *this;
+ }
+
+
+ ~hidl_memory() {
+ }
+
+ const native_handle_t* handle() const {
+ return mHandle;
+ }
+
+ const hidl_string &name() const {
+ return mName;
+ }
+
+ uint64_t size() const {
+ return mSize;
+ }
+
+ // offsetof(hidl_memory, mHandle) exposed since mHandle is private.
+ static const size_t kOffsetOfHandle;
+ // offsetof(hidl_memory, mName) exposed since mHandle is private.
+ static const size_t kOffsetOfName;
+
+private:
+ const native_handle_t *mHandle __attribute__ ((aligned(8))); // TODO-NNRT: This was hidl_handle.
+ uint64_t mSize __attribute__ ((aligned(8)));
+ hidl_string mName __attribute__ ((aligned(8)));
+#if 0 // REF-ANN
+ hidl_handle mHandle __attribute__ ((aligned(8)));
+ uint64_t mSize __attribute__ ((aligned(8)));
+ hidl_string mName __attribute__ ((aligned(8)));
+#endif
+};
+
+////////////////////////////////////////////////////////////////////////////////
+
+template<typename T>
+struct hidl_vec {
+ hidl_vec()
+ : mBuffer(NULL),
+ mSize(0),
+ mOwnsBuffer(true) {
+ static_assert(hidl_vec<T>::kOffsetOfBuffer == 0, "wrong offset");
+ }
+
+ // Note, does not initialize primitive types.
+ hidl_vec(size_t size) : hidl_vec() { resize(size); }
+
+ hidl_vec(const hidl_vec<T> &other) : hidl_vec() {
+ *this = other;
+ }
+
+ hidl_vec(hidl_vec<T> &&other) noexcept
+ : mOwnsBuffer(false) {
+ *this = std::move(other);
+ }
+
+ hidl_vec(const std::initializer_list<T> list)
+ : mOwnsBuffer(true) {
+ if (list.size() > UINT32_MAX) {
+#if 0 // TODO-NNRT : Implement dummy logAlwaysFatal
+ details::logAlwaysFatal("hidl_vec can't hold more than 2^32 elements.");
+#endif
+ }
+ mSize = static_cast<uint32_t>(list.size());
+ mBuffer = new T[mSize];
+
+ size_t idx = 0;
+ for (auto it = list.begin(); it != list.end(); ++it) {
+ mBuffer[idx++] = *it;
+ }
+ }
+
+ hidl_vec(const std::vector<T> &other) : hidl_vec() {
+ *this = other;
+ }
+
+ template <typename InputIterator,
+ typename = typename std::enable_if<std::is_convertible<
+ typename std::iterator_traits<InputIterator>::iterator_category,
+ std::input_iterator_tag>::value>::type>
+ hidl_vec(InputIterator first, InputIterator last) : mOwnsBuffer(true) {
+ auto size = std::distance(first, last);
+ if (size > static_cast<int64_t>(UINT32_MAX)) {
+#if 0 // TODO-NNRT : Implement dummy logAlwaysFatal
+ details::logAlwaysFatal("hidl_vec can't hold more than 2^32 elements.");
+#endif
+ }
+ if (size < 0) {
+#if 0 // TODO-NNRT : Implement dummy logAlwaysFatal
+ details::logAlwaysFatal("size can't be negative.");
+#endif
+ }
+ mSize = static_cast<uint32_t>(size);
+ mBuffer = new T[mSize];
+
+ size_t idx = 0;
+ for (; first != last; ++first) {
+ mBuffer[idx++] = static_cast<T>(*first);
+ }
+ }
+
+ ~hidl_vec() {
+ if (mOwnsBuffer) {
+ delete[] mBuffer;
+ }
+ mBuffer = NULL;
+ }
+
+ // Reference an existing array, optionally taking ownership. It is the
+ // caller's responsibility to ensure that the underlying memory stays
+ // valid for the lifetime of this hidl_vec.
+ void setToExternal(T *data, size_t size, bool shouldOwn = false) {
+ if (mOwnsBuffer) {
+ delete [] mBuffer;
+ }
+ mBuffer = data;
+ if (size > UINT32_MAX) {
+#if 0 // TODO-NNRT : Implement dummy logAlwaysFatal
+ details::logAlwaysFatal("external vector size exceeds 2^32 elements.");
+#endif
+ }
+ mSize = static_cast<uint32_t>(size);
+ mOwnsBuffer = shouldOwn;
+ }
+
+ T *data() {
+ return mBuffer;
+ }
+
+ const T *data() const {
+ return mBuffer;
+ }
+
+ T *releaseData() {
+ if (!mOwnsBuffer && mSize > 0) {
+ resize(mSize);
+ }
+ mOwnsBuffer = false;
+ return mBuffer;
+ }
+
+ hidl_vec &operator=(hidl_vec &&other) noexcept {
+ if (mOwnsBuffer) {
+ delete[] mBuffer;
+ }
+ mBuffer = other.mBuffer;
+ mSize = other.mSize;
+ mOwnsBuffer = other.mOwnsBuffer;
+ other.mOwnsBuffer = false;
+ return *this;
+ }
+
+ hidl_vec &operator=(const hidl_vec &other) {
+ if (this != &other) {
+ if (mOwnsBuffer) {
+ delete[] mBuffer;
+ }
+ copyFrom(other, other.mSize);
+ }
+
+ return *this;
+ }
+
+ // copy from an std::vector.
+ hidl_vec &operator=(const std::vector<T> &other) {
+ if (mOwnsBuffer) {
+ delete[] mBuffer;
+ }
+ copyFrom(other, other.size());
+ return *this;
+ }
+
+ // cast to an std::vector.
+ operator std::vector<T>() const {
+ std::vector<T> v(mSize);
+ for (size_t i = 0; i < mSize; ++i) {
+ v[i] = mBuffer[i];
+ }
+ return v;
+ }
+
+ // equality check, assuming that T::operator== is defined.
+ bool operator==(const hidl_vec &other) const {
+ if (mSize != other.size()) {
+ return false;
+ }
+ for (size_t i = 0; i < mSize; ++i) {
+ if (!(mBuffer[i] == other.mBuffer[i])) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ // inequality check, assuming that T::operator== is defined.
+ inline bool operator!=(const hidl_vec &other) const {
+ return !((*this) == other);
+ }
+
+ size_t size() const {
+ return mSize;
+ }
+
+ T &operator[](size_t index) {
+ return mBuffer[index];
+ }
+
+ const T &operator[](size_t index) const {
+ return mBuffer[index];
+ }
+
+ void resize(size_t size) {
+ if (size > UINT32_MAX) {
+#if 0 // TODO-NNRT : Implement dummy logAlwaysFatal
+ details::logAlwaysFatal("hidl_vec can't hold more than 2^32 elements.");
+#endif
+ }
+ T *newBuffer = new T[size];
+
+ for (size_t i = 0; i < std::min(static_cast<uint32_t>(size), mSize); ++i) {
+ newBuffer[i] = mBuffer[i];
+ }
+
+ if (mOwnsBuffer) {
+ delete[] mBuffer;
+ }
+ mBuffer = newBuffer;
+
+ mSize = static_cast<uint32_t>(size);
+ mOwnsBuffer = true;
+ }
+
+ // offsetof(hidl_string, mBuffer) exposed since mBuffer is private.
+ static const size_t kOffsetOfBuffer = offsetof(hidl_vec<T>, mBuffer);
+
+private:
+ // Define std interator interface for walking the array contents
+ template<bool is_const>
+ class iter : public std::iterator<
+ std::random_access_iterator_tag, /* Category */
+ T,
+ ptrdiff_t, /* Distance */
+ typename std::conditional<is_const, const T *, T *>::type /* Pointer */,
+ typename std::conditional<is_const, const T &, T &>::type /* Reference */>
+ {
+ using traits = std::iterator_traits<iter>;
+ using ptr_type = typename traits::pointer;
+ using ref_type = typename traits::reference;
+ using diff_type = typename traits::difference_type;
+ public:
+ iter(ptr_type ptr) : mPtr(ptr) { }
+ inline iter &operator++() { mPtr++; return *this; }
+ inline iter operator++(int) { iter i = *this; mPtr++; return i; }
+ inline iter &operator--() { mPtr--; return *this; }
+ inline iter operator--(int) { iter i = *this; mPtr--; return i; }
+ inline friend iter operator+(diff_type n, const iter &it) { return it.mPtr + n; }
+ inline iter operator+(diff_type n) const { return mPtr + n; }
+ inline iter operator-(diff_type n) const { return mPtr - n; }
+ inline diff_type operator-(const iter &other) const { return mPtr - other.mPtr; }
+ inline iter &operator+=(diff_type n) { mPtr += n; return *this; }
+ inline iter &operator-=(diff_type n) { mPtr -= n; return *this; }
+ inline ref_type operator*() const { return *mPtr; }
+ inline ptr_type operator->() const { return mPtr; }
+ inline bool operator==(const iter &rhs) const { return mPtr == rhs.mPtr; }
+ inline bool operator!=(const iter &rhs) const { return mPtr != rhs.mPtr; }
+ inline bool operator< (const iter &rhs) const { return mPtr < rhs.mPtr; }
+ inline bool operator> (const iter &rhs) const { return mPtr > rhs.mPtr; }
+ inline bool operator<=(const iter &rhs) const { return mPtr <= rhs.mPtr; }
+ inline bool operator>=(const iter &rhs) const { return mPtr >= rhs.mPtr; }
+ inline ref_type operator[](size_t n) const { return mPtr[n]; }
+ private:
+ ptr_type mPtr;
+ };
+public:
+ using iterator = iter<false /* is_const */>;
+ using const_iterator = iter<true /* is_const */>;
+
+ iterator begin() { return data(); }
+ iterator end() { return data()+mSize; }
+ const_iterator begin() const { return data(); }
+ const_iterator end() const { return data()+mSize; }
+
+private:
+ details::hidl_pointer<T> mBuffer;
+ uint32_t mSize;
+ bool mOwnsBuffer;
+
+ // copy from an array-like object, assuming my resources are freed.
+ template <typename Array>
+ void copyFrom(const Array &data, size_t size) {
+ mSize = static_cast<uint32_t>(size);
+ mOwnsBuffer = true;
+ if (mSize > 0) {
+ mBuffer = new T[size];
+ for (size_t i = 0; i < size; ++i) {
+ mBuffer[i] = data[i];
+ }
+ } else {
+ mBuffer = NULL;
+ }
+ }
+};
+
+
+#if 0 // REF-ANN
+////////////////////////////////////////////////////////////////////////////////
+
+namespace details {
+
+ template<size_t SIZE1, size_t... SIZES>
+ struct product {
+ static constexpr size_t value = SIZE1 * product<SIZES...>::value;
+ };
+
+ template<size_t SIZE1>
+ struct product<SIZE1> {
+ static constexpr size_t value = SIZE1;
+ };
+
+ template<typename T, size_t SIZE1, size_t... SIZES>
+ struct std_array {
+ using type = std::array<typename std_array<T, SIZES...>::type, SIZE1>;
+ };
+
+ template<typename T, size_t SIZE1>
+ struct std_array<T, SIZE1> {
+ using type = std::array<T, SIZE1>;
+ };
+
+ template<typename T, size_t SIZE1, size_t... SIZES>
+ struct accessor {
+
+ using std_array_type = typename std_array<T, SIZE1, SIZES...>::type;
+
+ explicit accessor(T *base)
+ : mBase(base) {
+ }
+
+ accessor<T, SIZES...> operator[](size_t index) {
+ return accessor<T, SIZES...>(
+ &mBase[index * product<SIZES...>::value]);
+ }
+
+ accessor &operator=(const std_array_type &other) {
+ for (size_t i = 0; i < SIZE1; ++i) {
+ (*this)[i] = other[i];
+ }
+ return *this;
+ }
+
+ private:
+ T *mBase;
+ };
+
+ template<typename T, size_t SIZE1>
+ struct accessor<T, SIZE1> {
+
+ using std_array_type = typename std_array<T, SIZE1>::type;
+
+ explicit accessor(T *base)
+ : mBase(base) {
+ }
+
+ T &operator[](size_t index) {
+ return mBase[index];
+ }
+
+ accessor &operator=(const std_array_type &other) {
+ for (size_t i = 0; i < SIZE1; ++i) {
+ (*this)[i] = other[i];
+ }
+ return *this;
+ }
+
+ private:
+ T *mBase;
+ };
+
+ template<typename T, size_t SIZE1, size_t... SIZES>
+ struct const_accessor {
+
+ using std_array_type = typename std_array<T, SIZE1, SIZES...>::type;
+
+ explicit const_accessor(const T *base)
+ : mBase(base) {
+ }
+
+ const_accessor<T, SIZES...> operator[](size_t index) const {
+ return const_accessor<T, SIZES...>(
+ &mBase[index * product<SIZES...>::value]);
+ }
+
+ operator std_array_type() {
+ std_array_type array;
+ for (size_t i = 0; i < SIZE1; ++i) {
+ array[i] = (*this)[i];
+ }
+ return array;
+ }
+
+ private:
+ const T *mBase;
+ };
+
+ template<typename T, size_t SIZE1>
+ struct const_accessor<T, SIZE1> {
+
+ using std_array_type = typename std_array<T, SIZE1>::type;
+
+ explicit const_accessor(const T *base)
+ : mBase(base) {
+ }
+
+ const T &operator[](size_t index) const {
+ return mBase[index];
+ }
+
+ operator std_array_type() {
+ std_array_type array;
+ for (size_t i = 0; i < SIZE1; ++i) {
+ array[i] = (*this)[i];
+ }
+ return array;
+ }
+
+ private:
+ const T *mBase;
+ };
+
+} // namespace details
+
+////////////////////////////////////////////////////////////////////////////////
+
+// A multidimensional array of T's. Assumes that T::operator=(const T &) is defined.
+template<typename T, size_t SIZE1, size_t... SIZES>
+struct hidl_array {
+
+ using std_array_type = typename details::std_array<T, SIZE1, SIZES...>::type;
+
+ hidl_array() = default;
+
+ // Copies the data from source, using T::operator=(const T &).
+ hidl_array(const T *source) {
+ for (size_t i = 0; i < elementCount(); ++i) {
+ mBuffer[i] = source[i];
+ }
+ }
+
+ // Copies the data from the given std::array, using T::operator=(const T &).
+ hidl_array(const std_array_type &array) {
+ details::accessor<T, SIZE1, SIZES...> modifier(mBuffer);
+ modifier = array;
+ }
+
+ T *data() { return mBuffer; }
+ const T *data() const { return mBuffer; }
+
+ details::accessor<T, SIZES...> operator[](size_t index) {
+ return details::accessor<T, SIZES...>(
+ &mBuffer[index * details::product<SIZES...>::value]);
+ }
+
+ details::const_accessor<T, SIZES...> operator[](size_t index) const {
+ return details::const_accessor<T, SIZES...>(
+ &mBuffer[index * details::product<SIZES...>::value]);
+ }
+
+ // equality check, assuming that T::operator== is defined.
+ bool operator==(const hidl_array &other) const {
+ for (size_t i = 0; i < elementCount(); ++i) {
+ if (!(mBuffer[i] == other.mBuffer[i])) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ inline bool operator!=(const hidl_array &other) const {
+ return !((*this) == other);
+ }
+
+ using size_tuple_type = std::tuple<decltype(SIZE1), decltype(SIZES)...>;
+
+ static constexpr size_tuple_type size() {
+ return std::make_tuple(SIZE1, SIZES...);
+ }
+
+ static constexpr size_t elementCount() {
+ return details::product<SIZE1, SIZES...>::value;
+ }
+
+ operator std_array_type() const {
+ return details::const_accessor<T, SIZE1, SIZES...>(mBuffer);
+ }
+
+private:
+ T mBuffer[elementCount()];
+};
+
+// An array of T's. Assumes that T::operator=(const T &) is defined.
+template<typename T, size_t SIZE1>
+struct hidl_array<T, SIZE1> {
+
+ using std_array_type = typename details::std_array<T, SIZE1>::type;
+
+ hidl_array() = default;
+
+ // Copies the data from source, using T::operator=(const T &).
+ hidl_array(const T *source) {
+ for (size_t i = 0; i < elementCount(); ++i) {
+ mBuffer[i] = source[i];
+ }
+ }
+
+ // Copies the data from the given std::array, using T::operator=(const T &).
+ hidl_array(const std_array_type &array) : hidl_array(array.data()) {}
+
+ T *data() { return mBuffer; }
+ const T *data() const { return mBuffer; }
+
+ T &operator[](size_t index) {
+ return mBuffer[index];
+ }
+
+ const T &operator[](size_t index) const {
+ return mBuffer[index];
+ }
+
+ // equality check, assuming that T::operator== is defined.
+ bool operator==(const hidl_array &other) const {
+ for (size_t i = 0; i < elementCount(); ++i) {
+ if (!(mBuffer[i] == other.mBuffer[i])) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ inline bool operator!=(const hidl_array &other) const {
+ return !((*this) == other);
+ }
+
+ static constexpr size_t size() { return SIZE1; }
+ static constexpr size_t elementCount() { return SIZE1; }
+
+ // Copies the data to an std::array, using T::operator=(T).
+ operator std_array_type() const {
+ std_array_type array;
+ for (size_t i = 0; i < SIZE1; ++i) {
+ array[i] = mBuffer[i];
+ }
+ return array;
+ }
+
+private:
+ T mBuffer[SIZE1];
+};
+
+// ----------------------------------------------------------------------
+// Version functions
+struct hidl_version {
+public:
+ constexpr hidl_version(uint16_t major, uint16_t minor) : mMajor(major), mMinor(minor) {}
+
+ bool operator==(const hidl_version& other) const {
+ return (mMajor == other.get_major() && mMinor == other.get_minor());
+ }
+
+ bool operator<(const hidl_version& other) const {
+ return (mMajor < other.get_major() ||
+ (mMajor == other.get_major() && mMinor < other.get_minor()));
+ }
+
+ bool operator>(const hidl_version& other) const {
+ return other < *this;
+ }
+
+ bool operator<=(const hidl_version& other) const {
+ return !(*this > other);
+ }
+
+ bool operator>=(const hidl_version& other) const {
+ return !(*this < other);
+ }
+
+ constexpr uint16_t get_major() const { return mMajor; }
+ constexpr uint16_t get_minor() const { return mMinor; }
+
+private:
+ uint16_t mMajor;
+ uint16_t mMinor;
+};
+
+inline android::hardware::hidl_version make_hidl_version(uint16_t major, uint16_t minor) {
+ return hidl_version(major,minor);
+}
+
+///////////////////// toString functions
+
+std::string toString(const void *t);
+
+// toString alias for numeric types
+template<typename T, typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
+inline std::string toString(T t) {
+ return std::to_string(t);
+}
+
+namespace details {
+
+template<typename T, typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
+inline std::string toHexString(T t, bool prefix = true) {
+ std::ostringstream os;
+ if (prefix) { os << std::showbase; }
+ os << std::hex << t;
+ return os.str();
+}
+
+template<>
+inline std::string toHexString(uint8_t t, bool prefix) {
+ return toHexString(static_cast<int32_t>(t), prefix);
+}
+
+template<>
+inline std::string toHexString(int8_t t, bool prefix) {
+ return toHexString(static_cast<int32_t>(t), prefix);
+}
+
+template<typename Array>
+std::string arrayToString(const Array &a, size_t size);
+
+template<size_t SIZE1>
+std::string arraySizeToString() {
+ return std::string{"["} + toString(SIZE1) + "]";
+}
+
+template<size_t SIZE1, size_t SIZE2, size_t... SIZES>
+std::string arraySizeToString() {
+ return std::string{"["} + toString(SIZE1) + "]" + arraySizeToString<SIZE2, SIZES...>();
+}
+
+template<typename T, size_t SIZE1>
+std::string toString(details::const_accessor<T, SIZE1> a) {
+ return arrayToString(a, SIZE1);
+}
+
+template<typename Array>
+std::string arrayToString(const Array &a, size_t size) {
+ using android::hardware::toString;
+ std::string os;
+ os += "{";
+ for (size_t i = 0; i < size; ++i) {
+ if (i > 0) {
+ os += ", ";
+ }
+ os += toString(a[i]);
+ }
+ os += "}";
+ return os;
+}
+
+template<typename T, size_t SIZE1, size_t SIZE2, size_t... SIZES>
+std::string toString(details::const_accessor<T, SIZE1, SIZE2, SIZES...> a) {
+ return arrayToString(a, SIZE1);
+}
+
+} //namespace details
+
+inline std::string toString(const void *t) {
+ return details::toHexString(reinterpret_cast<uintptr_t>(t));
+}
+
+// debug string dump. There will be quotes around the string!
+inline std::string toString(const hidl_string &hs) {
+ return std::string{"\""} + hs.c_str() + "\"";
+}
+
+// debug string dump
+inline std::string toString(const hidl_handle &hs) {
+ return toString(hs.getNativeHandle());
+}
+
+inline std::string toString(const hidl_memory &mem) {
+ return std::string{"memory {.name = "} + toString(mem.name()) + ", .size = "
+ + toString(mem.size())
+ + ", .handle = " + toString(mem.handle()) + "}";
+}
+
+inline std::string toString(const sp<hidl_death_recipient> &dr) {
+ return std::string{"death_recipient@"} + toString(dr.get());
+}
+
+// debug string dump, assuming that toString(T) is defined.
+template<typename T>
+std::string toString(const hidl_vec<T> &a) {
+ std::string os;
+ os += "[" + toString(a.size()) + "]";
+ os += details::arrayToString(a, a.size());
+ return os;
+}
+
+template<typename T, size_t SIZE1>
+std::string toString(const hidl_array<T, SIZE1> &a) {
+ return details::arraySizeToString<SIZE1>()
+ + details::toString(details::const_accessor<T, SIZE1>(a.data()));
+}
+
+template<typename T, size_t SIZE1, size_t SIZE2, size_t... SIZES>
+std::string toString(const hidl_array<T, SIZE1, SIZE2, SIZES...> &a) {
+ return details::arraySizeToString<SIZE1, SIZE2, SIZES...>()
+ + details::toString(details::const_accessor<T, SIZE1, SIZE2, SIZES...>(a.data()));
+}
+#endif
+
+} // namespace hardware
+} // namespace android
+
+
+#endif // ANDROID_HIDL_SUPPORT_H
diff --git a/runtimes/nn/depend/libhidl/base/include/hidl/Status.h b/runtimes/nn/depend/libhidl/base/include/hidl/Status.h
new file mode 100644
index 000000000..f812ebbc9
--- /dev/null
+++ b/runtimes/nn/depend/libhidl/base/include/hidl/Status.h
@@ -0,0 +1,273 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ANDROID_HARDWARE_BINDER_STATUS_H
+#define ANDROID_HARDWARE_BINDER_STATUS_H
+
+#include <cstdint>
+#include <sstream>
+
+#include <hidl/HidlInternal.h>
+#include <utils/Errors.h>
+#include <utils/StrongPointer.h>
+
+namespace android {
+namespace hardware {
+
+// An object similar in function to a status_t except that it understands
+// how exceptions are encoded in the prefix of a Parcel. Used like:
+//
+// Parcel data;
+// Parcel reply;
+// status_t status;
+// binder::Status remote_exception;
+// if ((status = data.writeInterfaceToken(interface_descriptor)) != OK ||
+// (status = data.writeInt32(function_input)) != OK) {
+// // We failed to write into the memory of our local parcel?
+// }
+// if ((status = remote()->transact(transaction, data, &reply)) != OK) {
+// // Something has gone wrong in the binder driver or libbinder.
+// }
+// if ((status = remote_exception.readFromParcel(reply)) != OK) {
+// // The remote didn't correctly write the exception header to the
+// // reply.
+// }
+// if (!remote_exception.isOk()) {
+// // The transaction went through correctly, but the remote reported an
+// // exception during handling.
+// }
+//
+class Status final {
+public:
+ // Keep the exception codes in sync with android/os/Parcel.java.
+ enum Exception {
+ EX_NONE = 0,
+ EX_SECURITY = -1,
+ EX_BAD_PARCELABLE = -2,
+ EX_ILLEGAL_ARGUMENT = -3,
+ EX_NULL_POINTER = -4,
+ EX_ILLEGAL_STATE = -5,
+ EX_NETWORK_MAIN_THREAD = -6,
+ EX_UNSUPPORTED_OPERATION = -7,
+
+ // This is special and Java specific; see Parcel.java.
+ EX_HAS_REPLY_HEADER = -128,
+ // This is special, and indicates to C++ binder proxies that the
+ // transaction has failed at a low level.
+ EX_TRANSACTION_FAILED = -129,
+ };
+
+ // A more readable alias for the default constructor.
+ static Status ok();
+ // Authors should explicitly pick whether their integer is:
+ // - an exception code (EX_* above)
+ // - status_t
+ //
+ // Prefer a generic exception code when possible or a status_t
+ // for low level transport errors. Service specific errors
+ // should be at a higher level in HIDL.
+ static Status fromExceptionCode(int32_t exceptionCode);
+ static Status fromExceptionCode(int32_t exceptionCode,
+ const char *message);
+ static Status fromStatusT(status_t status);
+
+ Status() = default;
+ ~Status() = default;
+
+ // Status objects are copyable and contain just simple data.
+ Status(const Status& status) = default;
+ Status(Status&& status) = default;
+ Status& operator=(const Status& status) = default;
+
+ // Set one of the pre-defined exception types defined above.
+ void setException(int32_t ex, const char *message);
+ // Setting a |status| != OK causes generated code to return |status|
+ // from Binder transactions, rather than writing an exception into the
+ // reply Parcel. This is the least preferable way of reporting errors.
+ void setFromStatusT(status_t status);
+
+ // Get information about an exception.
+ int32_t exceptionCode() const { return mException; }
+ const char *exceptionMessage() const { return mMessage.c_str(); }
+ status_t transactionError() const {
+ return mException == EX_TRANSACTION_FAILED ? mErrorCode : OK;
+ }
+
+ bool isOk() const { return mException == EX_NONE; }
+
+ // For debugging purposes only
+ std::string description() const;
+
+private:
+ Status(int32_t exceptionCode, int32_t errorCode);
+ Status(int32_t exceptionCode, int32_t errorCode, const char *message);
+
+ // If |mException| == EX_TRANSACTION_FAILED, generated code will return
+ // |mErrorCode| as the result of the transaction rather than write an
+ // exception to the reply parcel.
+ //
+ // Otherwise, we always write |mException| to the parcel.
+ // If |mException| != EX_NONE, we write |mMessage| as well.
+ int32_t mException = EX_NONE;
+ int32_t mErrorCode = 0;
+ std::string mMessage;
+}; // class Status
+
+// For gtest output logging
+std::ostream& operator<< (std::ostream& stream, const Status& s);
+
+template<typename T> class Return;
+
+namespace details {
+ class return_status {
+ private:
+ Status mStatus {};
+ mutable bool mCheckedStatus = false;
+
+ template <typename T, typename U>
+ friend Return<U> StatusOf(const Return<T> &other);
+ protected:
+ void assertOk() const;
+ public:
+ return_status() {}
+ return_status(Status s) : mStatus(s) {}
+
+ return_status(const return_status &) = delete;
+ return_status &operator=(const return_status &) = delete;
+
+ return_status(return_status &&other) {
+ *this = std::move(other);
+ }
+ return_status &operator=(return_status &&other);
+
+ ~return_status();
+
+ bool isOk() const {
+ mCheckedStatus = true;
+ return mStatus.isOk();
+ }
+
+ // Check if underlying error is DEAD_OBJECT.
+ // Check mCheckedStatus only if this method returns true.
+ bool isDeadObject() const {
+ bool dead = mStatus.transactionError() == DEAD_OBJECT;
+
+ // This way, if you only check isDeadObject your process will
+ // only be killed for more serious unchecked errors
+ if (dead) {
+ mCheckedStatus = true;
+ }
+
+ return dead;
+ }
+
+ // For debugging purposes only
+ std::string description() const {
+ // Doesn't consider checked.
+ return mStatus.description();
+ }
+ };
+} // namespace details
+
+template<typename T> class Return : public details::return_status {
+private:
+ T mVal {};
+public:
+ Return(T v) : details::return_status(), mVal{v} {}
+ Return(Status s) : details::return_status(s) {}
+
+ // move-able.
+ // precondition: "this" has checked status
+ // postcondition: other is safe to destroy after moving to *this.
+ Return(Return &&other) = default;
+ Return &operator=(Return &&) = default;
+
+ ~Return() = default;
+
+ operator T() const {
+ assertOk();
+ return mVal;
+ }
+
+ T withDefault(T t) {
+ return isOk() ? mVal : t;
+ }
+};
+
+template<typename T> class Return<sp<T>> : public details::return_status {
+private:
+ sp<T> mVal {};
+public:
+ Return(sp<T> v) : details::return_status(), mVal{v} {}
+ Return(T* v) : details::return_status(), mVal{v} {}
+ // Constructors matching a different type (that is related by inheritance)
+ template<typename U> Return(sp<U> v) : details::return_status(), mVal{v} {}
+ template<typename U> Return(U* v) : details::return_status(), mVal{v} {}
+ Return(Status s) : details::return_status(s) {}
+
+ // move-able.
+ // precondition: "this" has checked status
+ // postcondition: other is safe to destroy after moving to *this.
+ Return(Return &&other) = default;
+ Return &operator=(Return &&) = default;
+
+ ~Return() = default;
+
+ operator sp<T>() const {
+ assertOk();
+ return mVal;
+ }
+
+ sp<T> withDefault(sp<T> t) {
+ return isOk() ? mVal : t;
+ }
+};
+
+
+template<> class Return<void> : public details::return_status {
+public:
+ Return() : details::return_status() {}
+ Return(Status s) : details::return_status(s) {}
+
+ // move-able.
+ // precondition: "this" has checked status
+ // postcondition: other is safe to destroy after moving to *this.
+ Return(Return &&) = default;
+ Return &operator=(Return &&) = default;
+
+ ~Return() = default;
+};
+
+static inline Return<void> Void() {
+ return Return<void>();
+}
+
+namespace details {
+// Create a Return<U> from the Status of Return<T>. The provided
+// Return<T> must have an error status and have it checked.
+template <typename T, typename U>
+Return<U> StatusOf(const Return<T> &other) {
+ if (other.mStatus.isOk() || !other.mCheckedStatus) {
+ details::logAlwaysFatal("cannot call statusOf on an OK Status or an unchecked status");
+ }
+ return Return<U>{other.mStatus};
+}
+} // namespace details
+
+} // namespace hardware
+} // namespace android
+
+#endif // ANDROID_HARDWARE_BINDER_STATUS_H
diff --git a/runtimes/nn/depend/libutils/CMakeLists.txt b/runtimes/nn/depend/libutils/CMakeLists.txt
new file mode 100644
index 000000000..343389ed7
--- /dev/null
+++ b/runtimes/nn/depend/libutils/CMakeLists.txt
@@ -0,0 +1,22 @@
+
+SET(CUR_INCS
+ ${CMAKE_CURRENT_SOURCE_DIR}/include
+)
+
+
+SET(INC_DIRS
+ ${INC_DIRS}
+ ${CUR_INCS}
+ PARENT_SCOPE
+)
+
+SET(CUR_SRCS
+ ${CMAKE_CURRENT_SOURCE_DIR}/RefBase.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/StrongPointer.cpp
+)
+
+SET(SRCS
+ ${SRCS}
+ ${CUR_SRCS}
+ PARENT_SCOPE
+)
diff --git a/runtimes/nn/depend/libutils/RefBase.cpp b/runtimes/nn/depend/libutils/RefBase.cpp
new file mode 100644
index 000000000..7f9c95b31
--- /dev/null
+++ b/runtimes/nn/depend/libutils/RefBase.cpp
@@ -0,0 +1,809 @@
+/*
+ * Copyright (C) 2005 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "RefBase"
+// #define LOG_NDEBUG 0
+
+#include <utils/RefBase.h>
+
+//#include <utils/CallStack.h>
+#if 0 // REF-ANN
+#include <log/log.h>
+#endif // REF-ANN
+#ifndef __unused
+#define __unused __attribute__((__unused__))
+#endif
+
+// compile with refcounting debugging enabled
+#define DEBUG_REFS 0
+
+// whether ref-tracking is enabled by default, if not, trackMe(true, false)
+// needs to be called explicitly
+#define DEBUG_REFS_ENABLED_BY_DEFAULT 0
+
+// whether callstack are collected (significantly slows things down)
+#define DEBUG_REFS_CALLSTACK_ENABLED 1
+
+// folder where stack traces are saved when DEBUG_REFS is enabled
+// this folder needs to exist and be writable
+#define DEBUG_REFS_CALLSTACK_PATH "/data/debug"
+
+// log all reference counting operations
+#define PRINT_REFS 0
+
+// ---------------------------------------------------------------------------
+
+namespace android {
+
+// Observations, invariants, etc:
+
+// By default, obects are destroyed when the last strong reference disappears
+// or, if the object never had a strong reference, when the last weak reference
+// disappears.
+//
+// OBJECT_LIFETIME_WEAK changes this behavior to retain the object
+// unconditionally until the last reference of either kind disappears. The
+// client ensures that the extendObjectLifetime call happens before the dec
+// call that would otherwise have deallocated the object, or before an
+// attemptIncStrong call that might rely on it. We do not worry about
+// concurrent changes to the object lifetime.
+//
+// AttemptIncStrong will succeed if the object has a strong reference, or if it
+// has a weak reference and has never had a strong reference.
+// AttemptIncWeak really does succeed only if there is already a WEAK
+// reference, and thus may fail when attemptIncStrong would succeed.
+//
+// mStrong is the strong reference count. mWeak is the weak reference count.
+// Between calls, and ignoring memory ordering effects, mWeak includes strong
+// references, and is thus >= mStrong.
+//
+// A weakref_impl holds all the information, including both reference counts,
+// required to perform wp<> operations. Thus these can continue to be performed
+// after the RefBase object has been destroyed.
+//
+// A weakref_impl is allocated as the value of mRefs in a RefBase object on
+// construction.
+// In the OBJECT_LIFETIME_STRONG case, it is normally deallocated in decWeak,
+// and hence lives as long as the last weak reference. (It can also be
+// deallocated in the RefBase destructor iff the strong reference count was
+// never incremented and the weak count is zero, e.g. if the RefBase object is
+// explicitly destroyed without decrementing the strong count. This should be
+// avoided.) In this case, the RefBase destructor should be invoked from
+// decStrong.
+// In the OBJECT_LIFETIME_WEAK case, the weakref_impl is always deallocated in
+// the RefBase destructor, which is always invoked by decWeak. DecStrong
+// explicitly avoids the deletion in this case.
+//
+// Memory ordering:
+// The client must ensure that every inc() call, together with all other
+// accesses to the object, happens before the corresponding dec() call.
+//
+// We try to keep memory ordering constraints on atomics as weak as possible,
+// since memory fences or ordered memory accesses are likely to be a major
+// performance cost for this code. All accesses to mStrong, mWeak, and mFlags
+// explicitly relax memory ordering in some way.
+//
+// The only operations that are not memory_order_relaxed are reference count
+// decrements. All reference count decrements are release operations. In
+// addition, the final decrement leading the deallocation is followed by an
+// acquire fence, which we can view informally as also turning it into an
+// acquire operation. (See 29.8p4 [atomics.fences] for details. We could
+// alternatively use acq_rel operations for all decrements. This is probably
+// slower on most current (2016) hardware, especially on ARMv7, but that may
+// not be true indefinitely.)
+//
+// This convention ensures that the second-to-last decrement synchronizes with
+// (in the language of 1.10 in the C++ standard) the final decrement of a
+// reference count. Since reference counts are only updated using atomic
+// read-modify-write operations, this also extends to any earlier decrements.
+// (See "release sequence" in 1.10.)
+//
+// Since all operations on an object happen before the corresponding reference
+// count decrement, and all reference count decrements happen before the final
+// one, we are guaranteed that all other object accesses happen before the
+// object is destroyed.
+
+
+#define INITIAL_STRONG_VALUE (1<<28)
+
+#define MAX_COUNT 0xfffff
+
+// Test whether the argument is a clearly invalid strong reference count.
+// Used only for error checking on the value before an atomic decrement.
+// Intended to be very cheap.
+// Note that we cannot just check for excess decrements by comparing to zero
+// since the object would be deallocated before that.
+#define BAD_STRONG(c) \
+ ((c) == 0 || ((c) & (~(MAX_COUNT | INITIAL_STRONG_VALUE))) != 0)
+
+// Same for weak counts.
+#define BAD_WEAK(c) ((c) == 0 || ((c) & (~MAX_COUNT)) != 0)
+
+// ---------------------------------------------------------------------------
+
+class RefBase::weakref_impl : public RefBase::weakref_type
+{
+public:
+ std::atomic<int32_t> mStrong;
+ std::atomic<int32_t> mWeak;
+ RefBase* const mBase;
+ std::atomic<int32_t> mFlags;
+
+#if !DEBUG_REFS
+
+ explicit weakref_impl(RefBase* base)
+ : mStrong(INITIAL_STRONG_VALUE)
+ , mWeak(0)
+ , mBase(base)
+ , mFlags(0)
+ {
+ }
+
+ void addStrongRef(const void* /*id*/) { }
+ void removeStrongRef(const void* /*id*/) { }
+ void renameStrongRefId(const void* /*old_id*/, const void* /*new_id*/) { }
+ void addWeakRef(const void* /*id*/) { }
+ void removeWeakRef(const void* /*id*/) { }
+ void renameWeakRefId(const void* /*old_id*/, const void* /*new_id*/) { }
+ void printRefs() const { }
+ void trackMe(bool, bool) { }
+
+#else
+
+ weakref_impl(RefBase* base)
+ : mStrong(INITIAL_STRONG_VALUE)
+ , mWeak(0)
+ , mBase(base)
+ , mFlags(0)
+ , mStrongRefs(NULL)
+ , mWeakRefs(NULL)
+ , mTrackEnabled(!!DEBUG_REFS_ENABLED_BY_DEFAULT)
+ , mRetain(false)
+ {
+ }
+
+ ~weakref_impl()
+ {
+ bool dumpStack = false;
+ if (!mRetain && mStrongRefs != NULL) {
+ dumpStack = true;
+ ALOGE("Strong references remain:");
+ ref_entry* refs = mStrongRefs;
+ while (refs) {
+ char inc = refs->ref >= 0 ? '+' : '-';
+#if 0 // REF-ANN
+ ALOGD("\t%c ID %p (ref %d):", inc, refs->id, refs->ref);
+#endif // REF-ANN
+
+#if DEBUG_REFS_CALLSTACK_ENABLED
+ refs->stack.log(LOG_TAG);
+#endif
+ refs = refs->next;
+ }
+ }
+
+ if (!mRetain && mWeakRefs != NULL) {
+ dumpStack = true;
+#if 0 // REF-ANN
+ ALOGE("Weak references remain!");
+#endif // REF-ANN
+ ref_entry* refs = mWeakRefs;
+ while (refs) {
+ char inc = refs->ref >= 0 ? '+' : '-';
+#if 0 // REF-ANN
+ ALOGD("\t%c ID %p (ref %d):", inc, refs->id, refs->ref);
+#endif // REF-ANN
+#if DEBUG_REFS_CALLSTACK_ENABLED
+ refs->stack.log(LOG_TAG);
+#endif
+ refs = refs->next;
+ }
+ }
+ if (dumpStack) {
+#if 0 // REF-ANN
+ ALOGE("above errors at:");
+#endif // REF-ANN
+ //CallStack stack(LOG_TAG);
+ }
+ }
+
+ void addStrongRef(const void* id) {
+ //ALOGD_IF(mTrackEnabled,
+ // "addStrongRef: RefBase=%p, id=%p", mBase, id);
+ addRef(&mStrongRefs, id, mStrong.load(std::memory_order_relaxed));
+ }
+
+ void removeStrongRef(const void* id) {
+ //ALOGD_IF(mTrackEnabled,
+ // "removeStrongRef: RefBase=%p, id=%p", mBase, id);
+ if (!mRetain) {
+ removeRef(&mStrongRefs, id);
+ } else {
+ addRef(&mStrongRefs, id, -mStrong.load(std::memory_order_relaxed));
+ }
+ }
+
+ void renameStrongRefId(const void* old_id, const void* new_id) {
+ //ALOGD_IF(mTrackEnabled,
+ // "renameStrongRefId: RefBase=%p, oid=%p, nid=%p",
+ // mBase, old_id, new_id);
+ renameRefsId(mStrongRefs, old_id, new_id);
+ }
+
+ void addWeakRef(const void* id) {
+ addRef(&mWeakRefs, id, mWeak.load(std::memory_order_relaxed));
+ }
+
+ void removeWeakRef(const void* id) {
+ if (!mRetain) {
+ removeRef(&mWeakRefs, id);
+ } else {
+ addRef(&mWeakRefs, id, -mWeak.load(std::memory_order_relaxed));
+ }
+ }
+
+ void renameWeakRefId(const void* old_id, const void* new_id) {
+ renameRefsId(mWeakRefs, old_id, new_id);
+ }
+
+ void trackMe(bool track, bool retain)
+ {
+ mTrackEnabled = track;
+ mRetain = retain;
+ }
+
+ void printRefs() const
+ {
+ String8 text;
+
+ {
+ Mutex::Autolock _l(mMutex);
+ char buf[128];
+ snprintf(buf, sizeof(buf),
+ "Strong references on RefBase %p (weakref_type %p):\n",
+ mBase, this);
+ text.append(buf);
+ printRefsLocked(&text, mStrongRefs);
+ snprintf(buf, sizeof(buf),
+ "Weak references on RefBase %p (weakref_type %p):\n",
+ mBase, this);
+ text.append(buf);
+ printRefsLocked(&text, mWeakRefs);
+ }
+
+ {
+ char name[100];
+ snprintf(name, sizeof(name), DEBUG_REFS_CALLSTACK_PATH "/%p.stack",
+ this);
+ int rc = open(name, O_RDWR | O_CREAT | O_APPEND, 644);
+ if (rc >= 0) {
+ write(rc, text.string(), text.length());
+ close(rc);
+#if 0 // REF-ANN
+ ALOGD("STACK TRACE for %p saved in %s", this, name);
+#endif // REF-ANN
+ }
+#if 0 // REF-ANN
+ else ALOGE("FAILED TO PRINT STACK TRACE for %p in %s: %s", this,
+ name, strerror(errno));
+#endif // REF-ANN
+ }
+ }
+
+private:
+ struct ref_entry
+ {
+ ref_entry* next;
+ const void* id;
+#if DEBUG_REFS_CALLSTACK_ENABLED
+ CallStack stack;
+#endif
+ int32_t ref;
+ };
+
+ void addRef(ref_entry** refs, const void* id, int32_t mRef)
+ {
+ if (mTrackEnabled) {
+ AutoMutex _l(mMutex);
+
+ ref_entry* ref = new ref_entry;
+ // Reference count at the time of the snapshot, but before the
+ // update. Positive value means we increment, negative--we
+ // decrement the reference count.
+ ref->ref = mRef;
+ ref->id = id;
+#if DEBUG_REFS_CALLSTACK_ENABLED
+ ref->stack.update(2);
+#endif
+ ref->next = *refs;
+ *refs = ref;
+ }
+ }
+
+ void removeRef(ref_entry** refs, const void* id)
+ {
+ if (mTrackEnabled) {
+ AutoMutex _l(mMutex);
+
+ ref_entry* const head = *refs;
+ ref_entry* ref = head;
+ while (ref != NULL) {
+ if (ref->id == id) {
+ *refs = ref->next;
+ delete ref;
+ return;
+ }
+ refs = &ref->next;
+ ref = *refs;
+ }
+
+#if 0 // REF-ANN
+ ALOGE("RefBase: removing id %p on RefBase %p"
+ "(weakref_type %p) that doesn't exist!",
+ id, mBase, this);
+#endif // REF-ANN
+
+ ref = head;
+ while (ref) {
+ char inc = ref->ref >= 0 ? '+' : '-';
+#if 0 // REF-ANN
+ ALOGD("\t%c ID %p (ref %d):", inc, ref->id, ref->ref);
+#endif // REF-ANN
+ ref = ref->next;
+ }
+
+ //CallStack stack(LOG_TAG);
+ }
+ }
+
+ void renameRefsId(ref_entry* r, const void* old_id, const void* new_id)
+ {
+ if (mTrackEnabled) {
+ AutoMutex _l(mMutex);
+ ref_entry* ref = r;
+ while (ref != NULL) {
+ if (ref->id == old_id) {
+ ref->id = new_id;
+ }
+ ref = ref->next;
+ }
+ }
+ }
+
+ void printRefsLocked(String8* out, const ref_entry* refs) const
+ {
+ char buf[128];
+ while (refs) {
+ char inc = refs->ref >= 0 ? '+' : '-';
+ snprintf(buf, sizeof(buf), "\t%c ID %p (ref %d):\n",
+ inc, refs->id, refs->ref);
+ out->append(buf);
+#if DEBUG_REFS_CALLSTACK_ENABLED
+ out->append(refs->stack.toString("\t\t"));
+#else
+ out->append("\t\t(call stacks disabled)");
+#endif
+ refs = refs->next;
+ }
+ }
+
+ mutable Mutex mMutex;
+ ref_entry* mStrongRefs;
+ ref_entry* mWeakRefs;
+
+ bool mTrackEnabled;
+ // Collect stack traces on addref and removeref, instead of deleting the stack references
+ // on removeref that match the address ones.
+ bool mRetain;
+
+#endif
+};
+
+// ---------------------------------------------------------------------------
+
+void RefBase::incStrong(const void* id) const
+{
+ weakref_impl* const refs = mRefs;
+ refs->incWeak(id);
+
+ refs->addStrongRef(id);
+ const int32_t c = refs->mStrong.fetch_add(1, std::memory_order_relaxed);
+#if 0 // REF-ANN
+ ALOG_ASSERT(c > 0, "incStrong() called on %p after last strong ref", refs);
+#endif // REF-ANN
+#if PRINT_REFS
+#if 0 // REF-ANN
+ ALOGD("incStrong of %p from %p: cnt=%d\n", this, id, c);
+#endif // REF-ANN
+#endif
+ if (c != INITIAL_STRONG_VALUE) {
+ return;
+ }
+
+ int32_t old = refs->mStrong.fetch_sub(INITIAL_STRONG_VALUE,
+ std::memory_order_relaxed);
+ // A decStrong() must still happen after us.
+#if 0 // REF-ANN
+ ALOG_ASSERT(old > INITIAL_STRONG_VALUE, "0x%x too small", old);
+#endif // REF-ANN
+ refs->mBase->onFirstRef();
+}
+
+void RefBase::decStrong(const void* id) const
+{
+ weakref_impl* const refs = mRefs;
+ refs->removeStrongRef(id);
+ const int32_t c = refs->mStrong.fetch_sub(1, std::memory_order_release);
+#if PRINT_REFS
+#if 0 // REF-ANN
+ ALOGD("decStrong of %p from %p: cnt=%d\n", this, id, c);
+#endif // REF-ANN
+#endif
+#if 0 // REF-ANN
+ LOG_ALWAYS_FATAL_IF(BAD_STRONG(c), "decStrong() called on %p too many times",
+ refs);
+#endif // REF-ANN
+ if (c == 1) {
+ std::atomic_thread_fence(std::memory_order_acquire);
+ refs->mBase->onLastStrongRef(id);
+ int32_t flags = refs->mFlags.load(std::memory_order_relaxed);
+ if ((flags&OBJECT_LIFETIME_MASK) == OBJECT_LIFETIME_STRONG) {
+ delete this;
+ // The destructor does not delete refs in this case.
+ }
+ }
+ // Note that even with only strong reference operations, the thread
+ // deallocating this may not be the same as the thread deallocating refs.
+ // That's OK: all accesses to this happen before its deletion here,
+ // and all accesses to refs happen before its deletion in the final decWeak.
+ // The destructor can safely access mRefs because either it's deleting
+ // mRefs itself, or it's running entirely before the final mWeak decrement.
+ refs->decWeak(id);
+}
+
+void RefBase::forceIncStrong(const void* id) const
+{
+ // Allows initial mStrong of 0 in addition to INITIAL_STRONG_VALUE.
+ // TODO: Better document assumptions.
+ weakref_impl* const refs = mRefs;
+ refs->incWeak(id);
+
+ refs->addStrongRef(id);
+ const int32_t c = refs->mStrong.fetch_add(1, std::memory_order_relaxed);
+#if 0 // REF-ANN
+ ALOG_ASSERT(c >= 0, "forceIncStrong called on %p after ref count underflow",
+ refs);
+#endif // REF-ANN
+#if PRINT_REFS
+#if 0 // REF-ANN
+ ALOGD("forceIncStrong of %p from %p: cnt=%d\n", this, id, c);
+#endif // REF-ANN
+#endif
+
+ switch (c) {
+ case INITIAL_STRONG_VALUE:
+ refs->mStrong.fetch_sub(INITIAL_STRONG_VALUE,
+ std::memory_order_relaxed);
+ // fall through...
+ case 0:
+ refs->mBase->onFirstRef();
+ }
+}
+
+int32_t RefBase::getStrongCount() const
+{
+ // Debugging only; No memory ordering guarantees.
+ return mRefs->mStrong.load(std::memory_order_relaxed);
+}
+
+RefBase* RefBase::weakref_type::refBase() const
+{
+ return static_cast<const weakref_impl*>(this)->mBase;
+}
+
+void RefBase::weakref_type::incWeak(const void* id)
+{
+ weakref_impl* const impl = static_cast<weakref_impl*>(this);
+ impl->addWeakRef(id);
+ const int32_t c __unused = impl->mWeak.fetch_add(1,
+ std::memory_order_relaxed);
+#if 0 // REF-ANN
+ ALOG_ASSERT(c >= 0, "incWeak called on %p after last weak ref", this);
+#endif // REF-ANN
+}
+
+
+void RefBase::weakref_type::decWeak(const void* id)
+{
+ weakref_impl* const impl = static_cast<weakref_impl*>(this);
+ impl->removeWeakRef(id);
+ const int32_t c = impl->mWeak.fetch_sub(1, std::memory_order_release);
+#if 0 // REF-ANN
+ LOG_ALWAYS_FATAL_IF(BAD_WEAK(c), "decWeak called on %p too many times",
+ this);
+#endif // REF-ANN
+ if (c != 1) return;
+ atomic_thread_fence(std::memory_order_acquire);
+
+ int32_t flags = impl->mFlags.load(std::memory_order_relaxed);
+ if ((flags&OBJECT_LIFETIME_MASK) == OBJECT_LIFETIME_STRONG) {
+ // This is the regular lifetime case. The object is destroyed
+ // when the last strong reference goes away. Since weakref_impl
+ // outlives the object, it is not destroyed in the dtor, and
+ // we'll have to do it here.
+ if (impl->mStrong.load(std::memory_order_relaxed)
+ == INITIAL_STRONG_VALUE) {
+ // Decrementing a weak count to zero when object never had a strong
+ // reference. We assume it acquired a weak reference early, e.g.
+ // in the constructor, and will eventually be properly destroyed,
+ // usually via incrementing and decrementing the strong count.
+ // Thus we no longer do anything here. We log this case, since it
+ // seems to be extremely rare, and should not normally occur. We
+ // used to deallocate mBase here, so this may now indicate a leak.
+#if 0 // REF-ANN
+ ALOGW("RefBase: Object at %p lost last weak reference "
+ "before it had a strong reference", impl->mBase);
+#endif // REF-ANN
+ } else {
+ // ALOGV("Freeing refs %p of old RefBase %p\n", this, impl->mBase);
+ delete impl;
+ }
+ } else {
+ // This is the OBJECT_LIFETIME_WEAK case. The last weak-reference
+ // is gone, we can destroy the object.
+ impl->mBase->onLastWeakRef(id);
+ delete impl->mBase;
+ }
+}
+
+bool RefBase::weakref_type::attemptIncStrong(const void* id)
+{
+ incWeak(id);
+
+ weakref_impl* const impl = static_cast<weakref_impl*>(this);
+ int32_t curCount = impl->mStrong.load(std::memory_order_relaxed);
+
+#if 0 // REF-ANN
+ ALOG_ASSERT(curCount >= 0,
+ "attemptIncStrong called on %p after underflow", this);
+#endif // REF-ANN
+ while (curCount > 0 && curCount != INITIAL_STRONG_VALUE) {
+ // we're in the easy/common case of promoting a weak-reference
+ // from an existing strong reference.
+ if (impl->mStrong.compare_exchange_weak(curCount, curCount+1,
+ std::memory_order_relaxed)) {
+ break;
+ }
+ // the strong count has changed on us, we need to re-assert our
+ // situation. curCount was updated by compare_exchange_weak.
+ }
+
+ if (curCount <= 0 || curCount == INITIAL_STRONG_VALUE) {
+ // we're now in the harder case of either:
+ // - there never was a strong reference on us
+ // - or, all strong references have been released
+ int32_t flags = impl->mFlags.load(std::memory_order_relaxed);
+ if ((flags&OBJECT_LIFETIME_MASK) == OBJECT_LIFETIME_STRONG) {
+ // this object has a "normal" life-time, i.e.: it gets destroyed
+ // when the last strong reference goes away
+ if (curCount <= 0) {
+ // the last strong-reference got released, the object cannot
+ // be revived.
+ decWeak(id);
+ return false;
+ }
+
+ // here, curCount == INITIAL_STRONG_VALUE, which means
+ // there never was a strong-reference, so we can try to
+ // promote this object; we need to do that atomically.
+ while (curCount > 0) {
+ if (impl->mStrong.compare_exchange_weak(curCount, curCount+1,
+ std::memory_order_relaxed)) {
+ break;
+ }
+ // the strong count has changed on us, we need to re-assert our
+ // situation (e.g.: another thread has inc/decStrong'ed us)
+ // curCount has been updated.
+ }
+
+ if (curCount <= 0) {
+ // promote() failed, some other thread destroyed us in the
+ // meantime (i.e.: strong count reached zero).
+ decWeak(id);
+ return false;
+ }
+ } else {
+ // this object has an "extended" life-time, i.e.: it can be
+ // revived from a weak-reference only.
+ // Ask the object's implementation if it agrees to be revived
+ if (!impl->mBase->onIncStrongAttempted(FIRST_INC_STRONG, id)) {
+ // it didn't so give-up.
+ decWeak(id);
+ return false;
+ }
+ // grab a strong-reference, which is always safe due to the
+ // extended life-time.
+ curCount = impl->mStrong.fetch_add(1, std::memory_order_relaxed);
+ // If the strong reference count has already been incremented by
+ // someone else, the implementor of onIncStrongAttempted() is holding
+ // an unneeded reference. So call onLastStrongRef() here to remove it.
+ // (No, this is not pretty.) Note that we MUST NOT do this if we
+ // are in fact acquiring the first reference.
+ if (curCount != 0 && curCount != INITIAL_STRONG_VALUE) {
+ impl->mBase->onLastStrongRef(id);
+ }
+ }
+ }
+
+ impl->addStrongRef(id);
+
+#if PRINT_REFS
+#if 0 // REF-ANN
+ ALOGD("attemptIncStrong of %p from %p: cnt=%d\n", this, id, curCount);
+#endif // REF-ANN
+#endif
+
+ // curCount is the value of mStrong before we incremented it.
+ // Now we need to fix-up the count if it was INITIAL_STRONG_VALUE.
+ // This must be done safely, i.e.: handle the case where several threads
+ // were here in attemptIncStrong().
+ // curCount > INITIAL_STRONG_VALUE is OK, and can happen if we're doing
+ // this in the middle of another incStrong. The subtraction is handled
+ // by the thread that started with INITIAL_STRONG_VALUE.
+ if (curCount == INITIAL_STRONG_VALUE) {
+ impl->mStrong.fetch_sub(INITIAL_STRONG_VALUE,
+ std::memory_order_relaxed);
+ }
+
+ return true;
+}
+
+bool RefBase::weakref_type::attemptIncWeak(const void* id)
+{
+ weakref_impl* const impl = static_cast<weakref_impl*>(this);
+
+ int32_t curCount = impl->mWeak.load(std::memory_order_relaxed);
+#if 0 // REF-ANN
+ ALOG_ASSERT(curCount >= 0, "attemptIncWeak called on %p after underflow",
+ this);
+#endif // REF-ANN
+ while (curCount > 0) {
+ if (impl->mWeak.compare_exchange_weak(curCount, curCount+1,
+ std::memory_order_relaxed)) {
+ break;
+ }
+ // curCount has been updated.
+ }
+
+ if (curCount > 0) {
+ impl->addWeakRef(id);
+ }
+
+ return curCount > 0;
+}
+
+int32_t RefBase::weakref_type::getWeakCount() const
+{
+ // Debug only!
+ return static_cast<const weakref_impl*>(this)->mWeak
+ .load(std::memory_order_relaxed);
+}
+
+void RefBase::weakref_type::printRefs() const
+{
+ static_cast<const weakref_impl*>(this)->printRefs();
+}
+
+void RefBase::weakref_type::trackMe(bool enable, bool retain)
+{
+ static_cast<weakref_impl*>(this)->trackMe(enable, retain);
+}
+
+RefBase::weakref_type* RefBase::createWeak(const void* id) const
+{
+ mRefs->incWeak(id);
+ return mRefs;
+}
+
+RefBase::weakref_type* RefBase::getWeakRefs() const
+{
+ return mRefs;
+}
+
+RefBase::RefBase()
+ : mRefs(new weakref_impl(this))
+{
+}
+
+RefBase::~RefBase()
+{
+ int32_t flags = mRefs->mFlags.load(std::memory_order_relaxed);
+ // Life-time of this object is extended to WEAK, in
+ // which case weakref_impl doesn't out-live the object and we
+ // can free it now.
+ if ((flags & OBJECT_LIFETIME_MASK) == OBJECT_LIFETIME_WEAK) {
+ // It's possible that the weak count is not 0 if the object
+ // re-acquired a weak reference in its destructor
+ if (mRefs->mWeak.load(std::memory_order_relaxed) == 0) {
+ delete mRefs;
+ }
+ } else if (mRefs->mStrong.load(std::memory_order_relaxed)
+ == INITIAL_STRONG_VALUE) {
+ // We never acquired a strong reference on this object.
+#if 0 // REF-ANN
+ LOG_ALWAYS_FATAL_IF(mRefs->mWeak.load() != 0,
+ "RefBase: Explicit destruction with non-zero weak "
+ "reference count");
+#endif // REF-ANN
+ // TODO: Always report if we get here. Currently MediaMetadataRetriever
+ // C++ objects are inconsistently managed and sometimes get here.
+ // There may be other cases, but we believe they should all be fixed.
+ delete mRefs;
+ }
+ // For debugging purposes, clear mRefs. Ineffective against outstanding wp's.
+ const_cast<weakref_impl*&>(mRefs) = NULL;
+}
+
+void RefBase::extendObjectLifetime(int32_t mode)
+{
+ // Must be happens-before ordered with respect to construction or any
+ // operation that could destroy the object.
+ mRefs->mFlags.fetch_or(mode, std::memory_order_relaxed);
+}
+
+void RefBase::onFirstRef()
+{
+}
+
+void RefBase::onLastStrongRef(const void* /*id*/)
+{
+}
+
+bool RefBase::onIncStrongAttempted(uint32_t flags, const void* /*id*/)
+{
+ return (flags&FIRST_INC_STRONG) ? true : false;
+}
+
+void RefBase::onLastWeakRef(const void* /*id*/)
+{
+}
+
+// ---------------------------------------------------------------------------
+
+#if DEBUG_REFS
+void RefBase::renameRefs(size_t n, const ReferenceRenamer& renamer) {
+ for (size_t i=0 ; i<n ; i++) {
+ renamer(i);
+ }
+}
+#else
+void RefBase::renameRefs(size_t /*n*/, const ReferenceRenamer& /*renamer*/) { }
+#endif
+
+void RefBase::renameRefId(weakref_type* ref,
+ const void* old_id, const void* new_id) {
+ weakref_impl* const impl = static_cast<weakref_impl*>(ref);
+ impl->renameStrongRefId(old_id, new_id);
+ impl->renameWeakRefId(old_id, new_id);
+}
+
+void RefBase::renameRefId(RefBase* ref,
+ const void* old_id, const void* new_id) {
+ ref->mRefs->renameStrongRefId(old_id, new_id);
+ ref->mRefs->renameWeakRefId(old_id, new_id);
+}
+
+}; // namespace android
diff --git a/runtimes/nn/depend/libutils/StrongPointer.cpp b/runtimes/nn/depend/libutils/StrongPointer.cpp
new file mode 100644
index 000000000..619a81c86
--- /dev/null
+++ b/runtimes/nn/depend/libutils/StrongPointer.cpp
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if 0 // REF-ANN
+#define LOG_TAG "sp"
+
+#include <log/log.h>
+#endif // REF-ANN
+
+namespace android {
+
+void sp_report_race() { }
+#if 0 // REF-ANN
+void sp_report_race() { LOG_ALWAYS_FATAL("sp<> assignment detected data race"); }
+#endif // REF-ANN
+}
diff --git a/runtimes/nn/depend/libutils/include/utils/Compat.h b/runtimes/nn/depend/libutils/include/utils/Compat.h
new file mode 100644
index 000000000..dee577e36
--- /dev/null
+++ b/runtimes/nn/depend/libutils/include/utils/Compat.h
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __LIB_UTILS_COMPAT_H
+#define __LIB_UTILS_COMPAT_H
+
+#include <unistd.h>
+
+#if defined(__APPLE__)
+
+/* Mac OS has always had a 64-bit off_t, so it doesn't have off64_t. */
+
+typedef off_t off64_t;
+
+static inline off64_t lseek64(int fd, off64_t offset, int whence) {
+ return lseek(fd, offset, whence);
+}
+
+static inline ssize_t pread64(int fd, void* buf, size_t nbytes, off64_t offset) {
+ return pread(fd, buf, nbytes, offset);
+}
+
+static inline ssize_t pwrite64(int fd, const void* buf, size_t nbytes, off64_t offset) {
+ return pwrite(fd, buf, nbytes, offset);
+}
+
+static inline int ftruncate64(int fd, off64_t length) {
+ return ftruncate(fd, length);
+}
+
+#endif /* __APPLE__ */
+
+#if defined(_WIN32)
+#define O_CLOEXEC O_NOINHERIT
+#define O_NOFOLLOW 0
+#define DEFFILEMODE 0666
+#endif /* _WIN32 */
+
+#define ZD "%zd"
+#define ZD_TYPE ssize_t
+
+/*
+ * Needed for cases where something should be constexpr if possible, but not
+ * being constexpr is fine if in pre-C++11 code (such as a const static float
+ * member variable).
+ */
+#if __cplusplus >= 201103L
+#define CONSTEXPR constexpr
+#else
+#define CONSTEXPR
+#endif
+
+/*
+ * TEMP_FAILURE_RETRY is defined by some, but not all, versions of
+ * <unistd.h>. (Alas, it is not as standard as we'd hoped!) So, if it's
+ * not already defined, then define it here.
+ */
+#ifndef TEMP_FAILURE_RETRY
+/* Used to retry syscalls that can return EINTR. */
+#define TEMP_FAILURE_RETRY(exp) ({ \
+ typeof (exp) _rc; \
+ do { \
+ _rc = (exp); \
+ } while (_rc == -1 && errno == EINTR); \
+ _rc; })
+#endif
+
+#if defined(_WIN32)
+#define OS_PATH_SEPARATOR '\\'
+#else
+#define OS_PATH_SEPARATOR '/'
+#endif
+
+#endif /* __LIB_UTILS_COMPAT_H */
diff --git a/runtimes/nn/depend/libutils/include/utils/Errors.h b/runtimes/nn/depend/libutils/include/utils/Errors.h
new file mode 100644
index 000000000..16e1fa2c2
--- /dev/null
+++ b/runtimes/nn/depend/libutils/include/utils/Errors.h
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2007 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ANDROID_ERRORS_H
+#define ANDROID_ERRORS_H
+
+#include <sys/types.h>
+#include <errno.h>
+
+namespace android {
+
+// use this type to return error codes
+#ifdef _WIN32
+typedef int status_t;
+#else
+typedef int32_t status_t;
+#endif
+
+/* the MS C runtime lacks a few error codes */
+
+/*
+ * Error codes.
+ * All error codes are negative values.
+ */
+
+// Win32 #defines NO_ERROR as well. It has the same value, so there's no
+// real conflict, though it's a bit awkward.
+#ifdef _WIN32
+# undef NO_ERROR
+#endif
+
+enum {
+ OK = 0, // Everything's swell.
+ NO_ERROR = 0, // No errors.
+
+ UNKNOWN_ERROR = (-2147483647-1), // INT32_MIN value
+
+ NO_MEMORY = -ENOMEM,
+ INVALID_OPERATION = -ENOSYS,
+ BAD_VALUE = -EINVAL,
+ BAD_TYPE = (UNKNOWN_ERROR + 1),
+ NAME_NOT_FOUND = -ENOENT,
+ PERMISSION_DENIED = -EPERM,
+ NO_INIT = -ENODEV,
+ ALREADY_EXISTS = -EEXIST,
+ DEAD_OBJECT = -EPIPE,
+ FAILED_TRANSACTION = (UNKNOWN_ERROR + 2),
+#if !defined(_WIN32)
+ BAD_INDEX = -EOVERFLOW,
+ NOT_ENOUGH_DATA = -ENODATA,
+ WOULD_BLOCK = -EWOULDBLOCK,
+ TIMED_OUT = -ETIMEDOUT,
+ UNKNOWN_TRANSACTION = -EBADMSG,
+#else
+ BAD_INDEX = -E2BIG,
+ NOT_ENOUGH_DATA = (UNKNOWN_ERROR + 3),
+ WOULD_BLOCK = (UNKNOWN_ERROR + 4),
+ TIMED_OUT = (UNKNOWN_ERROR + 5),
+ UNKNOWN_TRANSACTION = (UNKNOWN_ERROR + 6),
+#endif
+ FDS_NOT_ALLOWED = (UNKNOWN_ERROR + 7),
+ UNEXPECTED_NULL = (UNKNOWN_ERROR + 8),
+};
+
+// Restore define; enumeration is in "android" namespace, so the value defined
+// there won't work for Win32 code in a different namespace.
+#ifdef _WIN32
+# define NO_ERROR 0L
+#endif
+
+}; // namespace android
+
+// ---------------------------------------------------------------------------
+
+#endif // ANDROID_ERRORS_H
diff --git a/runtimes/nn/depend/libutils/include/utils/LightRefBase.h b/runtimes/nn/depend/libutils/include/utils/LightRefBase.h
new file mode 100644
index 000000000..65257edb9
--- /dev/null
+++ b/runtimes/nn/depend/libutils/include/utils/LightRefBase.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+/*
+ * See documentation in RefBase.h
+ */
+
+#include <atomic>
+
+#include <sys/types.h>
+
+namespace android {
+
+class ReferenceRenamer;
+
+template <class T>
+class LightRefBase
+{
+public:
+ inline LightRefBase() : mCount(0) { }
+ inline void incStrong(__attribute__((unused)) const void* id) const {
+ mCount.fetch_add(1, std::memory_order_relaxed);
+ }
+ inline void decStrong(__attribute__((unused)) const void* id) const {
+ if (mCount.fetch_sub(1, std::memory_order_release) == 1) {
+ std::atomic_thread_fence(std::memory_order_acquire);
+ delete static_cast<const T*>(this);
+ }
+ }
+ //! DEBUGGING ONLY: Get current strong ref count.
+ inline int32_t getStrongCount() const {
+ return mCount.load(std::memory_order_relaxed);
+ }
+
+ typedef LightRefBase<T> basetype;
+
+protected:
+ inline ~LightRefBase() { }
+
+private:
+ friend class ReferenceMover;
+ inline static void renameRefs(size_t /*n*/, const ReferenceRenamer& /*renamer*/) { }
+ inline static void renameRefId(T* /*ref*/, const void* /*old_id*/ , const void* /*new_id*/) { }
+
+private:
+ mutable std::atomic<int32_t> mCount;
+};
+
+
+// This is a wrapper around LightRefBase that simply enforces a virtual
+// destructor to eliminate the template requirement of LightRefBase
+class VirtualLightRefBase : public LightRefBase<VirtualLightRefBase> {
+public:
+ virtual ~VirtualLightRefBase() = default;
+};
+
+}; // namespace android
diff --git a/runtimes/nn/depend/libutils/include/utils/RefBase.h b/runtimes/nn/depend/libutils/include/utils/RefBase.h
new file mode 100644
index 000000000..223b6669d
--- /dev/null
+++ b/runtimes/nn/depend/libutils/include/utils/RefBase.h
@@ -0,0 +1,690 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+// SOME COMMENTS ABOUT USAGE:
+
+// This provides primarily wp<> weak pointer types and RefBase, which work
+// together with sp<> from <StrongPointer.h>.
+
+// sp<> (and wp<>) are a type of smart pointer that use a well defined protocol
+// to operate. As long as the object they are templated with implements that
+// protocol, these smart pointers work. In several places the platform
+// instantiates sp<> with non-RefBase objects; the two are not tied to each
+// other.
+
+// RefBase is such an implementation and it supports strong pointers, weak
+// pointers and some magic features for the binder.
+
+// So, when using RefBase objects, you have the ability to use strong and weak
+// pointers through sp<> and wp<>.
+
+// Normally, when the last strong pointer goes away, the object is destroyed,
+// i.e. it's destructor is called. HOWEVER, parts of its associated memory is not
+// freed until the last weak pointer is released.
+
+// Weak pointers are essentially "safe" pointers. They are always safe to
+// access through promote(). They may return nullptr if the object was
+// destroyed because it ran out of strong pointers. This makes them good candidates
+// for keys in a cache for instance.
+
+// Weak pointers remain valid for comparison purposes even after the underlying
+// object has been destroyed. Even if object A is destroyed and its memory reused
+// for B, A remaining weak pointer to A will not compare equal to one to B.
+// This again makes them attractive for use as keys.
+
+// How is this supposed / intended to be used?
+
+// Our recommendation is to use strong references (sp<>) when there is an
+// ownership relation. e.g. when an object "owns" another one, use a strong
+// ref. And of course use strong refs as arguments of functions (it's extremely
+// rare that a function will take a wp<>).
+
+// Typically a newly allocated object will immediately be used to initialize
+// a strong pointer, which may then be used to construct or assign to other
+// strong and weak pointers.
+
+// Use weak references when there are no ownership relation. e.g. the keys in a
+// cache (you cannot use plain pointers because there is no safe way to acquire
+// a strong reference from a vanilla pointer).
+
+// This implies that two objects should never (or very rarely) have sp<> on
+// each other, because they can't both own each other.
+
+
+// Caveats with reference counting
+
+// Obviously, circular strong references are a big problem; this creates leaks
+// and it's hard to debug -- except it's in fact really easy because RefBase has
+// tons of debugging code for that. It can basically tell you exactly where the
+// leak is.
+
+// Another problem has to do with destructors with side effects. You must
+// assume that the destructor of reference counted objects can be called AT ANY
+// TIME. For instance code as simple as this:
+
+// void setStuff(const sp<Stuff>& stuff) {
+// std::lock_guard<std::mutex> lock(mMutex);
+// mStuff = stuff;
+// }
+
+// is very dangerous. This code WILL deadlock one day or another.
+
+// What isn't obvious is that ~Stuff() can be called as a result of the
+// assignment. And it gets called with the lock held. First of all, the lock is
+// protecting mStuff, not ~Stuff(). Secondly, if ~Stuff() uses its own internal
+// mutex, now you have mutex ordering issues. Even worse, if ~Stuff() is
+// virtual, now you're calling into "user" code (potentially), by that, I mean,
+// code you didn't even write.
+
+// A correct way to write this code is something like:
+
+// void setStuff(const sp<Stuff>& stuff) {
+// std::unique_lock<std::mutex> lock(mMutex);
+// sp<Stuff> hold = mStuff;
+// mStuff = stuff;
+// lock.unlock();
+// }
+
+// More importantly, reference counted objects should do as little work as
+// possible in their destructor, or at least be mindful that their destructor
+// could be called from very weird and unintended places.
+
+// Other more specific restrictions for wp<> and sp<>:
+
+// Do not construct a strong pointer to "this" in an object's constructor.
+// The onFirstRef() callback would be made on an incompletely constructed
+// object.
+// Construction of a weak pointer to "this" in an object's constructor is also
+// discouraged. But the implementation was recently changed so that, in the
+// absence of extendObjectLifetime() calls, weak pointers no longer impact
+// object lifetime, and hence this no longer risks premature deallocation,
+// and hence usually works correctly.
+
+// Such strong or weak pointers can be safely created in the RefBase onFirstRef()
+// callback.
+
+// Use of wp::unsafe_get() for any purpose other than debugging is almost
+// always wrong. Unless you somehow know that there is a longer-lived sp<> to
+// the same object, it may well return a pointer to a deallocated object that
+// has since been reallocated for a different purpose. (And if you know there
+// is a longer-lived sp<>, why not use an sp<> directly?) A wp<> should only be
+// dereferenced by using promote().
+
+// Any object inheriting from RefBase should always be destroyed as the result
+// of a reference count decrement, not via any other means. Such objects
+// should never be stack allocated, or appear directly as data members in other
+// objects. Objects inheriting from RefBase should have their strong reference
+// count incremented as soon as possible after construction. Usually this
+// will be done via construction of an sp<> to the object, but may instead
+// involve other means of calling RefBase::incStrong().
+// Explicitly deleting or otherwise destroying a RefBase object with outstanding
+// wp<> or sp<> pointers to it will result in an abort or heap corruption.
+
+// It is particularly important not to mix sp<> and direct storage management
+// since the sp from raw pointer constructor is implicit. Thus if a RefBase-
+// -derived object of type T is managed without ever incrementing its strong
+// count, and accidentally passed to f(sp<T>), a strong pointer to the object
+// will be temporarily constructed and destroyed, prematurely deallocating the
+// object, and resulting in heap corruption. None of this would be easily
+// visible in the source.
+
+// Extra Features:
+
+// RefBase::extendObjectLifetime() can be used to prevent destruction of the
+// object while there are still weak references. This is really special purpose
+// functionality to support Binder.
+
+// Wp::promote(), implemented via the attemptIncStrong() member function, is
+// used to try to convert a weak pointer back to a strong pointer. It's the
+// normal way to try to access the fields of an object referenced only through
+// a wp<>. Binder code also sometimes uses attemptIncStrong() directly.
+
+// RefBase provides a number of additional callbacks for certain reference count
+// events, as well as some debugging facilities.
+
+// Debugging support can be enabled by turning on DEBUG_REFS in RefBase.cpp.
+// Otherwise little checking is provided.
+
+// Thread safety:
+
+// Like std::shared_ptr, sp<> and wp<> allow concurrent accesses to DIFFERENT
+// sp<> and wp<> instances that happen to refer to the same underlying object.
+// They do NOT support concurrent access (where at least one access is a write)
+// to THE SAME sp<> or wp<>. In effect, their thread-safety properties are
+// exactly like those of T*, NOT atomic<T*>.
+
+#ifndef ANDROID_REF_BASE_H
+#define ANDROID_REF_BASE_H
+
+#include <atomic>
+
+#include <stdint.h>
+#include <sys/types.h>
+#include <stdlib.h>
+#include <string.h>
+
+// LightRefBase used to be declared in this header, so we have to include it
+#include <utils/LightRefBase.h>
+
+#include <utils/StrongPointer.h>
+#include <utils/TypeHelpers.h>
+
+// ---------------------------------------------------------------------------
+namespace android {
+
+class TextOutput;
+TextOutput& printWeakPointer(TextOutput& to, const void* val);
+
+// ---------------------------------------------------------------------------
+
+#define COMPARE_WEAK(_op_) \
+inline bool operator _op_ (const sp<T>& o) const { \
+ return m_ptr _op_ o.m_ptr; \
+} \
+inline bool operator _op_ (const T* o) const { \
+ return m_ptr _op_ o; \
+} \
+template<typename U> \
+inline bool operator _op_ (const sp<U>& o) const { \
+ return m_ptr _op_ o.m_ptr; \
+} \
+template<typename U> \
+inline bool operator _op_ (const U* o) const { \
+ return m_ptr _op_ o; \
+}
+
+// ---------------------------------------------------------------------------
+
+// RefererenceRenamer is pure abstract, there is no virtual method
+// implementation to put in a translation unit in order to silence the
+// weak vtables warning.
+#if defined(__clang__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wweak-vtables"
+#endif
+
+class ReferenceRenamer {
+protected:
+ // destructor is purposely not virtual so we avoid code overhead from
+ // subclasses; we have to make it protected to guarantee that it
+ // cannot be called from this base class (and to make strict compilers
+ // happy).
+ ~ReferenceRenamer() { }
+public:
+ virtual void operator()(size_t i) const = 0;
+};
+
+#if defined(__clang__)
+#pragma clang diagnostic pop
+#endif
+
+// ---------------------------------------------------------------------------
+
+class RefBase
+{
+public:
+ void incStrong(const void* id) const;
+ void decStrong(const void* id) const;
+
+ void forceIncStrong(const void* id) const;
+
+ //! DEBUGGING ONLY: Get current strong ref count.
+ int32_t getStrongCount() const;
+
+ class weakref_type
+ {
+ public:
+ RefBase* refBase() const;
+
+ void incWeak(const void* id);
+ void decWeak(const void* id);
+
+ // acquires a strong reference if there is already one.
+ bool attemptIncStrong(const void* id);
+
+ // acquires a weak reference if there is already one.
+ // This is not always safe. see ProcessState.cpp and BpBinder.cpp
+ // for proper use.
+ bool attemptIncWeak(const void* id);
+
+ //! DEBUGGING ONLY: Get current weak ref count.
+ int32_t getWeakCount() const;
+
+ //! DEBUGGING ONLY: Print references held on object.
+ void printRefs() const;
+
+ //! DEBUGGING ONLY: Enable tracking for this object.
+ // enable -- enable/disable tracking
+ // retain -- when tracking is enable, if true, then we save a stack trace
+ // for each reference and dereference; when retain == false, we
+ // match up references and dereferences and keep only the
+ // outstanding ones.
+
+ void trackMe(bool enable, bool retain);
+ };
+
+ weakref_type* createWeak(const void* id) const;
+
+ weakref_type* getWeakRefs() const;
+
+ //! DEBUGGING ONLY: Print references held on object.
+ inline void printRefs() const { getWeakRefs()->printRefs(); }
+
+ //! DEBUGGING ONLY: Enable tracking of object.
+ inline void trackMe(bool enable, bool retain)
+ {
+ getWeakRefs()->trackMe(enable, retain);
+ }
+
+ typedef RefBase basetype;
+
+protected:
+ RefBase();
+ virtual ~RefBase();
+
+ //! Flags for extendObjectLifetime()
+ enum {
+ OBJECT_LIFETIME_STRONG = 0x0000,
+ OBJECT_LIFETIME_WEAK = 0x0001,
+ OBJECT_LIFETIME_MASK = 0x0001
+ };
+
+ void extendObjectLifetime(int32_t mode);
+
+ //! Flags for onIncStrongAttempted()
+ enum {
+ FIRST_INC_STRONG = 0x0001
+ };
+
+ // Invoked after creation of initial strong pointer/reference.
+ virtual void onFirstRef();
+ // Invoked when either the last strong reference goes away, or we need to undo
+ // the effect of an unnecessary onIncStrongAttempted.
+ virtual void onLastStrongRef(const void* id);
+ // Only called in OBJECT_LIFETIME_WEAK case. Returns true if OK to promote to
+ // strong reference. May have side effects if it returns true.
+ // The first flags argument is always FIRST_INC_STRONG.
+ // TODO: Remove initial flag argument.
+ virtual bool onIncStrongAttempted(uint32_t flags, const void* id);
+ // Invoked in the OBJECT_LIFETIME_WEAK case when the last reference of either
+ // kind goes away. Unused.
+ // TODO: Remove.
+ virtual void onLastWeakRef(const void* id);
+
+private:
+ friend class weakref_type;
+ class weakref_impl;
+
+ RefBase(const RefBase& o);
+ RefBase& operator=(const RefBase& o);
+
+private:
+ friend class ReferenceMover;
+
+ static void renameRefs(size_t n, const ReferenceRenamer& renamer);
+
+ static void renameRefId(weakref_type* ref,
+ const void* old_id, const void* new_id);
+
+ static void renameRefId(RefBase* ref,
+ const void* old_id, const void* new_id);
+
+ weakref_impl* const mRefs;
+};
+
+// ---------------------------------------------------------------------------
+
+template <typename T>
+class wp
+{
+public:
+ typedef typename RefBase::weakref_type weakref_type;
+
+ inline wp() : m_ptr(0) { }
+
+ wp(T* other); // NOLINT(implicit)
+ wp(const wp<T>& other);
+ explicit wp(const sp<T>& other);
+ template<typename U> wp(U* other); // NOLINT(implicit)
+ template<typename U> wp(const sp<U>& other); // NOLINT(implicit)
+ template<typename U> wp(const wp<U>& other); // NOLINT(implicit)
+
+ ~wp();
+
+ // Assignment
+
+ wp& operator = (T* other);
+ wp& operator = (const wp<T>& other);
+ wp& operator = (const sp<T>& other);
+
+ template<typename U> wp& operator = (U* other);
+ template<typename U> wp& operator = (const wp<U>& other);
+ template<typename U> wp& operator = (const sp<U>& other);
+
+ void set_object_and_refs(T* other, weakref_type* refs);
+
+ // promotion to sp
+
+ sp<T> promote() const;
+
+ // Reset
+
+ void clear();
+
+ // Accessors
+
+ inline weakref_type* get_refs() const { return m_refs; }
+
+ inline T* unsafe_get() const { return m_ptr; }
+
+ // Operators
+
+ COMPARE_WEAK(==)
+ COMPARE_WEAK(!=)
+ COMPARE_WEAK(>)
+ COMPARE_WEAK(<)
+ COMPARE_WEAK(<=)
+ COMPARE_WEAK(>=)
+
+ inline bool operator == (const wp<T>& o) const {
+ return (m_ptr == o.m_ptr) && (m_refs == o.m_refs);
+ }
+ template<typename U>
+ inline bool operator == (const wp<U>& o) const {
+ return m_ptr == o.m_ptr;
+ }
+
+ inline bool operator > (const wp<T>& o) const {
+ return (m_ptr == o.m_ptr) ? (m_refs > o.m_refs) : (m_ptr > o.m_ptr);
+ }
+ template<typename U>
+ inline bool operator > (const wp<U>& o) const {
+ return (m_ptr == o.m_ptr) ? (m_refs > o.m_refs) : (m_ptr > o.m_ptr);
+ }
+
+ inline bool operator < (const wp<T>& o) const {
+ return (m_ptr == o.m_ptr) ? (m_refs < o.m_refs) : (m_ptr < o.m_ptr);
+ }
+ template<typename U>
+ inline bool operator < (const wp<U>& o) const {
+ return (m_ptr == o.m_ptr) ? (m_refs < o.m_refs) : (m_ptr < o.m_ptr);
+ }
+ inline bool operator != (const wp<T>& o) const { return m_refs != o.m_refs; }
+ template<typename U> inline bool operator != (const wp<U>& o) const { return !operator == (o); }
+ inline bool operator <= (const wp<T>& o) const { return !operator > (o); }
+ template<typename U> inline bool operator <= (const wp<U>& o) const { return !operator > (o); }
+ inline bool operator >= (const wp<T>& o) const { return !operator < (o); }
+ template<typename U> inline bool operator >= (const wp<U>& o) const { return !operator < (o); }
+
+private:
+ template<typename Y> friend class sp;
+ template<typename Y> friend class wp;
+
+ T* m_ptr;
+ weakref_type* m_refs;
+};
+
+template <typename T>
+TextOutput& operator<<(TextOutput& to, const wp<T>& val);
+
+#undef COMPARE_WEAK
+
+// ---------------------------------------------------------------------------
+// No user serviceable parts below here.
+
+template<typename T>
+wp<T>::wp(T* other)
+ : m_ptr(other)
+{
+ if (other) m_refs = other->createWeak(this);
+}
+
+template<typename T>
+wp<T>::wp(const wp<T>& other)
+ : m_ptr(other.m_ptr), m_refs(other.m_refs)
+{
+ if (m_ptr) m_refs->incWeak(this);
+}
+
+template<typename T>
+wp<T>::wp(const sp<T>& other)
+ : m_ptr(other.m_ptr)
+{
+ if (m_ptr) {
+ m_refs = m_ptr->createWeak(this);
+ }
+}
+
+template<typename T> template<typename U>
+wp<T>::wp(U* other)
+ : m_ptr(other)
+{
+ if (other) m_refs = other->createWeak(this);
+}
+
+template<typename T> template<typename U>
+wp<T>::wp(const wp<U>& other)
+ : m_ptr(other.m_ptr)
+{
+ if (m_ptr) {
+ m_refs = other.m_refs;
+ m_refs->incWeak(this);
+ }
+}
+
+template<typename T> template<typename U>
+wp<T>::wp(const sp<U>& other)
+ : m_ptr(other.m_ptr)
+{
+ if (m_ptr) {
+ m_refs = m_ptr->createWeak(this);
+ }
+}
+
+template<typename T>
+wp<T>::~wp()
+{
+ if (m_ptr) m_refs->decWeak(this);
+}
+
+template<typename T>
+wp<T>& wp<T>::operator = (T* other)
+{
+ weakref_type* newRefs =
+ other ? other->createWeak(this) : 0;
+ if (m_ptr) m_refs->decWeak(this);
+ m_ptr = other;
+ m_refs = newRefs;
+ return *this;
+}
+
+template<typename T>
+wp<T>& wp<T>::operator = (const wp<T>& other)
+{
+ weakref_type* otherRefs(other.m_refs);
+ T* otherPtr(other.m_ptr);
+ if (otherPtr) otherRefs->incWeak(this);
+ if (m_ptr) m_refs->decWeak(this);
+ m_ptr = otherPtr;
+ m_refs = otherRefs;
+ return *this;
+}
+
+template<typename T>
+wp<T>& wp<T>::operator = (const sp<T>& other)
+{
+ weakref_type* newRefs =
+ other != NULL ? other->createWeak(this) : 0;
+ T* otherPtr(other.m_ptr);
+ if (m_ptr) m_refs->decWeak(this);
+ m_ptr = otherPtr;
+ m_refs = newRefs;
+ return *this;
+}
+
+template<typename T> template<typename U>
+wp<T>& wp<T>::operator = (U* other)
+{
+ weakref_type* newRefs =
+ other ? other->createWeak(this) : 0;
+ if (m_ptr) m_refs->decWeak(this);
+ m_ptr = other;
+ m_refs = newRefs;
+ return *this;
+}
+
+template<typename T> template<typename U>
+wp<T>& wp<T>::operator = (const wp<U>& other)
+{
+ weakref_type* otherRefs(other.m_refs);
+ U* otherPtr(other.m_ptr);
+ if (otherPtr) otherRefs->incWeak(this);
+ if (m_ptr) m_refs->decWeak(this);
+ m_ptr = otherPtr;
+ m_refs = otherRefs;
+ return *this;
+}
+
+template<typename T> template<typename U>
+wp<T>& wp<T>::operator = (const sp<U>& other)
+{
+ weakref_type* newRefs =
+ other != NULL ? other->createWeak(this) : 0;
+ U* otherPtr(other.m_ptr);
+ if (m_ptr) m_refs->decWeak(this);
+ m_ptr = otherPtr;
+ m_refs = newRefs;
+ return *this;
+}
+
+template<typename T>
+void wp<T>::set_object_and_refs(T* other, weakref_type* refs)
+{
+ if (other) refs->incWeak(this);
+ if (m_ptr) m_refs->decWeak(this);
+ m_ptr = other;
+ m_refs = refs;
+}
+
+template<typename T>
+sp<T> wp<T>::promote() const
+{
+ sp<T> result;
+ if (m_ptr && m_refs->attemptIncStrong(&result)) {
+ result.set_pointer(m_ptr);
+ }
+ return result;
+}
+
+template<typename T>
+void wp<T>::clear()
+{
+ if (m_ptr) {
+ m_refs->decWeak(this);
+ m_ptr = 0;
+ }
+}
+
+template <typename T>
+inline TextOutput& operator<<(TextOutput& to, const wp<T>& val)
+{
+ return printWeakPointer(to, val.unsafe_get());
+}
+
+// ---------------------------------------------------------------------------
+
+// this class just serves as a namespace so TYPE::moveReferences can stay
+// private.
+class ReferenceMover {
+public:
+ // it would be nice if we could make sure no extra code is generated
+ // for sp<TYPE> or wp<TYPE> when TYPE is a descendant of RefBase:
+ // Using a sp<RefBase> override doesn't work; it's a bit like we wanted
+ // a template<typename TYPE inherits RefBase> template...
+
+ template<typename TYPE> static inline
+ void move_references(sp<TYPE>* dest, sp<TYPE> const* src, size_t n) {
+
+ class Renamer : public ReferenceRenamer {
+ sp<TYPE>* d_;
+ sp<TYPE> const* s_;
+ virtual void operator()(size_t i) const {
+ // The id are known to be the sp<>'s this pointer
+ TYPE::renameRefId(d_[i].get(), &s_[i], &d_[i]);
+ }
+ public:
+ Renamer(sp<TYPE>* d, sp<TYPE> const* s) : d_(d), s_(s) { }
+ virtual ~Renamer() { }
+ };
+
+ memmove(dest, src, n*sizeof(sp<TYPE>));
+ TYPE::renameRefs(n, Renamer(dest, src));
+ }
+
+
+ template<typename TYPE> static inline
+ void move_references(wp<TYPE>* dest, wp<TYPE> const* src, size_t n) {
+
+ class Renamer : public ReferenceRenamer {
+ wp<TYPE>* d_;
+ wp<TYPE> const* s_;
+ virtual void operator()(size_t i) const {
+ // The id are known to be the wp<>'s this pointer
+ TYPE::renameRefId(d_[i].get_refs(), &s_[i], &d_[i]);
+ }
+ public:
+ Renamer(wp<TYPE>* rd, wp<TYPE> const* rs) : d_(rd), s_(rs) { }
+ virtual ~Renamer() { }
+ };
+
+ memmove(dest, src, n*sizeof(wp<TYPE>));
+ TYPE::renameRefs(n, Renamer(dest, src));
+ }
+};
+
+// specialization for moving sp<> and wp<> types.
+// these are used by the [Sorted|Keyed]Vector<> implementations
+// sp<> and wp<> need to be handled specially, because they do not
+// have trivial copy operation in the general case (see RefBase.cpp
+// when DEBUG ops are enabled), but can be implemented very
+// efficiently in most cases.
+
+template<typename TYPE> inline
+void move_forward_type(sp<TYPE>* d, sp<TYPE> const* s, size_t n) {
+ ReferenceMover::move_references(d, s, n);
+}
+
+template<typename TYPE> inline
+void move_backward_type(sp<TYPE>* d, sp<TYPE> const* s, size_t n) {
+ ReferenceMover::move_references(d, s, n);
+}
+
+template<typename TYPE> inline
+void move_forward_type(wp<TYPE>* d, wp<TYPE> const* s, size_t n) {
+ ReferenceMover::move_references(d, s, n);
+}
+
+template<typename TYPE> inline
+void move_backward_type(wp<TYPE>* d, wp<TYPE> const* s, size_t n) {
+ ReferenceMover::move_references(d, s, n);
+}
+
+}; // namespace android
+
+// ---------------------------------------------------------------------------
+
+#endif // ANDROID_REF_BASE_H
diff --git a/runtimes/nn/depend/libutils/include/utils/StrongPointer.h b/runtimes/nn/depend/libutils/include/utils/StrongPointer.h
new file mode 100644
index 000000000..0c2060791
--- /dev/null
+++ b/runtimes/nn/depend/libutils/include/utils/StrongPointer.h
@@ -0,0 +1,245 @@
+/*
+ * Copyright (C) 2005 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ANDROID_STRONG_POINTER_H
+#define ANDROID_STRONG_POINTER_H
+
+// ---------------------------------------------------------------------------
+namespace android {
+
+template<typename T> class wp;
+
+// ---------------------------------------------------------------------------
+
+#define COMPARE(_op_) \
+inline bool operator _op_ (const sp<T>& o) const { \
+ return m_ptr _op_ o.m_ptr; \
+} \
+inline bool operator _op_ (const T* o) const { \
+ return m_ptr _op_ o; \
+} \
+template<typename U> \
+inline bool operator _op_ (const sp<U>& o) const { \
+ return m_ptr _op_ o.m_ptr; \
+} \
+template<typename U> \
+inline bool operator _op_ (const U* o) const { \
+ return m_ptr _op_ o; \
+} \
+inline bool operator _op_ (const wp<T>& o) const { \
+ return m_ptr _op_ o.m_ptr; \
+} \
+template<typename U> \
+inline bool operator _op_ (const wp<U>& o) const { \
+ return m_ptr _op_ o.m_ptr; \
+}
+
+// ---------------------------------------------------------------------------
+
+template<typename T>
+class sp {
+public:
+ inline sp() : m_ptr(0) { }
+
+ sp(T* other); // NOLINT(implicit)
+ sp(const sp<T>& other);
+ sp(sp<T>&& other);
+ template<typename U> sp(U* other); // NOLINT(implicit)
+ template<typename U> sp(const sp<U>& other); // NOLINT(implicit)
+ template<typename U> sp(sp<U>&& other); // NOLINT(implicit)
+
+ ~sp();
+
+ // Assignment
+
+ sp& operator = (T* other);
+ sp& operator = (const sp<T>& other);
+ sp& operator = (sp<T>&& other);
+
+ template<typename U> sp& operator = (const sp<U>& other);
+ template<typename U> sp& operator = (sp<U>&& other);
+ template<typename U> sp& operator = (U* other);
+
+ //! Special optimization for use by ProcessState (and nobody else).
+ void force_set(T* other);
+
+ // Reset
+
+ void clear();
+
+ // Accessors
+
+ inline T& operator* () const { return *m_ptr; }
+ inline T* operator-> () const { return m_ptr; }
+ inline T* get() const { return m_ptr; }
+
+ // Operators
+
+ COMPARE(==)
+ COMPARE(!=)
+ COMPARE(>)
+ COMPARE(<)
+ COMPARE(<=)
+ COMPARE(>=)
+
+private:
+ template<typename Y> friend class sp;
+ template<typename Y> friend class wp;
+ void set_pointer(T* ptr);
+ T* m_ptr;
+};
+
+// For code size reasons, we do not want this inlined or templated.
+void sp_report_race();
+
+#undef COMPARE
+
+// ---------------------------------------------------------------------------
+// No user serviceable parts below here.
+
+template<typename T>
+sp<T>::sp(T* other)
+ : m_ptr(other) {
+ if (other)
+ other->incStrong(this);
+}
+
+template<typename T>
+sp<T>::sp(const sp<T>& other)
+ : m_ptr(other.m_ptr) {
+ if (m_ptr)
+ m_ptr->incStrong(this);
+}
+
+template<typename T>
+sp<T>::sp(sp<T>&& other)
+ : m_ptr(other.m_ptr) {
+ other.m_ptr = nullptr;
+}
+
+template<typename T> template<typename U>
+sp<T>::sp(U* other)
+ : m_ptr(other) {
+ if (other)
+ (static_cast<T*>(other))->incStrong(this);
+}
+
+template<typename T> template<typename U>
+sp<T>::sp(const sp<U>& other)
+ : m_ptr(other.m_ptr) {
+ if (m_ptr)
+ m_ptr->incStrong(this);
+}
+
+template<typename T> template<typename U>
+sp<T>::sp(sp<U>&& other)
+ : m_ptr(other.m_ptr) {
+ other.m_ptr = nullptr;
+}
+
+template<typename T>
+sp<T>::~sp() {
+ if (m_ptr)
+ m_ptr->decStrong(this);
+}
+
+template<typename T>
+sp<T>& sp<T>::operator =(const sp<T>& other) {
+ // Force m_ptr to be read twice, to heuristically check for data races.
+ T* oldPtr(*const_cast<T* volatile*>(&m_ptr));
+ T* otherPtr(other.m_ptr);
+ if (otherPtr) otherPtr->incStrong(this);
+ if (oldPtr) oldPtr->decStrong(this);
+ if (oldPtr != *const_cast<T* volatile*>(&m_ptr)) sp_report_race();
+ m_ptr = otherPtr;
+ return *this;
+}
+
+template<typename T>
+sp<T>& sp<T>::operator =(sp<T>&& other) {
+ T* oldPtr(*const_cast<T* volatile*>(&m_ptr));
+ if (oldPtr) oldPtr->decStrong(this);
+ if (oldPtr != *const_cast<T* volatile*>(&m_ptr)) sp_report_race();
+ m_ptr = other.m_ptr;
+ other.m_ptr = nullptr;
+ return *this;
+}
+
+template<typename T>
+sp<T>& sp<T>::operator =(T* other) {
+ T* oldPtr(*const_cast<T* volatile*>(&m_ptr));
+ if (other) other->incStrong(this);
+ if (oldPtr) oldPtr->decStrong(this);
+ if (oldPtr != *const_cast<T* volatile*>(&m_ptr)) sp_report_race();
+ m_ptr = other;
+ return *this;
+}
+
+template<typename T> template<typename U>
+sp<T>& sp<T>::operator =(const sp<U>& other) {
+ T* oldPtr(*const_cast<T* volatile*>(&m_ptr));
+ T* otherPtr(other.m_ptr);
+ if (otherPtr) otherPtr->incStrong(this);
+ if (oldPtr) oldPtr->decStrong(this);
+ if (oldPtr != *const_cast<T* volatile*>(&m_ptr)) sp_report_race();
+ m_ptr = otherPtr;
+ return *this;
+}
+
+template<typename T> template<typename U>
+sp<T>& sp<T>::operator =(sp<U>&& other) {
+ T* oldPtr(*const_cast<T* volatile*>(&m_ptr));
+ if (m_ptr) m_ptr->decStrong(this);
+ if (oldPtr != *const_cast<T* volatile*>(&m_ptr)) sp_report_race();
+ m_ptr = other.m_ptr;
+ other.m_ptr = nullptr;
+ return *this;
+}
+
+template<typename T> template<typename U>
+sp<T>& sp<T>::operator =(U* other) {
+ T* oldPtr(*const_cast<T* volatile*>(&m_ptr));
+ if (other) (static_cast<T*>(other))->incStrong(this);
+ if (oldPtr) oldPtr->decStrong(this);
+ if (oldPtr != *const_cast<T* volatile*>(&m_ptr)) sp_report_race();
+ m_ptr = other;
+ return *this;
+}
+
+template<typename T>
+void sp<T>::force_set(T* other) {
+ other->forceIncStrong(this);
+ m_ptr = other;
+}
+
+template<typename T>
+void sp<T>::clear() {
+ if (m_ptr) {
+ m_ptr->decStrong(this);
+ m_ptr = 0;
+ }
+}
+
+template<typename T>
+void sp<T>::set_pointer(T* ptr) {
+ m_ptr = ptr;
+}
+
+}; // namespace android
+
+// ---------------------------------------------------------------------------
+
+#endif // ANDROID_STRONG_POINTER_H
diff --git a/runtimes/nn/depend/libutils/include/utils/TypeHelpers.h b/runtimes/nn/depend/libutils/include/utils/TypeHelpers.h
new file mode 100644
index 000000000..28fbca508
--- /dev/null
+++ b/runtimes/nn/depend/libutils/include/utils/TypeHelpers.h
@@ -0,0 +1,336 @@
+/*
+ * Copyright (C) 2005 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ANDROID_TYPE_HELPERS_H
+#define ANDROID_TYPE_HELPERS_H
+
+#include <new>
+#include <type_traits>
+
+#include <stdint.h>
+#include <string.h>
+#include <sys/types.h>
+
+// ---------------------------------------------------------------------------
+
+namespace android {
+
+/*
+ * Types traits
+ */
+
+template <typename T> struct trait_trivial_ctor { enum { value = false }; };
+template <typename T> struct trait_trivial_dtor { enum { value = false }; };
+template <typename T> struct trait_trivial_copy { enum { value = false }; };
+template <typename T> struct trait_trivial_move { enum { value = false }; };
+template <typename T> struct trait_pointer { enum { value = false }; };
+template <typename T> struct trait_pointer<T*> { enum { value = true }; };
+
+template <typename TYPE>
+struct traits {
+ enum {
+ // whether this type is a pointer
+ is_pointer = trait_pointer<TYPE>::value,
+ // whether this type's constructor is a no-op
+ has_trivial_ctor = is_pointer || trait_trivial_ctor<TYPE>::value,
+ // whether this type's destructor is a no-op
+ has_trivial_dtor = is_pointer || trait_trivial_dtor<TYPE>::value,
+ // whether this type type can be copy-constructed with memcpy
+ has_trivial_copy = is_pointer || trait_trivial_copy<TYPE>::value,
+ // whether this type can be moved with memmove
+ has_trivial_move = is_pointer || trait_trivial_move<TYPE>::value
+ };
+};
+
+template <typename T, typename U>
+struct aggregate_traits {
+ enum {
+ is_pointer = false,
+ has_trivial_ctor =
+ traits<T>::has_trivial_ctor && traits<U>::has_trivial_ctor,
+ has_trivial_dtor =
+ traits<T>::has_trivial_dtor && traits<U>::has_trivial_dtor,
+ has_trivial_copy =
+ traits<T>::has_trivial_copy && traits<U>::has_trivial_copy,
+ has_trivial_move =
+ traits<T>::has_trivial_move && traits<U>::has_trivial_move
+ };
+};
+
+#define ANDROID_TRIVIAL_CTOR_TRAIT( T ) \
+ template<> struct trait_trivial_ctor< T > { enum { value = true }; };
+
+#define ANDROID_TRIVIAL_DTOR_TRAIT( T ) \
+ template<> struct trait_trivial_dtor< T > { enum { value = true }; };
+
+#define ANDROID_TRIVIAL_COPY_TRAIT( T ) \
+ template<> struct trait_trivial_copy< T > { enum { value = true }; };
+
+#define ANDROID_TRIVIAL_MOVE_TRAIT( T ) \
+ template<> struct trait_trivial_move< T > { enum { value = true }; };
+
+#define ANDROID_BASIC_TYPES_TRAITS( T ) \
+ ANDROID_TRIVIAL_CTOR_TRAIT( T ) \
+ ANDROID_TRIVIAL_DTOR_TRAIT( T ) \
+ ANDROID_TRIVIAL_COPY_TRAIT( T ) \
+ ANDROID_TRIVIAL_MOVE_TRAIT( T )
+
+// ---------------------------------------------------------------------------
+
+/*
+ * basic types traits
+ */
+
+ANDROID_BASIC_TYPES_TRAITS( void )
+ANDROID_BASIC_TYPES_TRAITS( bool )
+ANDROID_BASIC_TYPES_TRAITS( char )
+ANDROID_BASIC_TYPES_TRAITS( unsigned char )
+ANDROID_BASIC_TYPES_TRAITS( short )
+ANDROID_BASIC_TYPES_TRAITS( unsigned short )
+ANDROID_BASIC_TYPES_TRAITS( int )
+ANDROID_BASIC_TYPES_TRAITS( unsigned int )
+ANDROID_BASIC_TYPES_TRAITS( long )
+ANDROID_BASIC_TYPES_TRAITS( unsigned long )
+ANDROID_BASIC_TYPES_TRAITS( long long )
+ANDROID_BASIC_TYPES_TRAITS( unsigned long long )
+ANDROID_BASIC_TYPES_TRAITS( float )
+ANDROID_BASIC_TYPES_TRAITS( double )
+
+// ---------------------------------------------------------------------------
+
+
+/*
+ * compare and order types
+ */
+
+template<typename TYPE> inline
+int strictly_order_type(const TYPE& lhs, const TYPE& rhs) {
+ return (lhs < rhs) ? 1 : 0;
+}
+
+template<typename TYPE> inline
+int compare_type(const TYPE& lhs, const TYPE& rhs) {
+ return strictly_order_type(rhs, lhs) - strictly_order_type(lhs, rhs);
+}
+
+/*
+ * create, destroy, copy and move types...
+ */
+
+template<typename TYPE> inline
+void construct_type(TYPE* p, size_t n) {
+ if (!traits<TYPE>::has_trivial_ctor) {
+ while (n > 0) {
+ n--;
+ new(p++) TYPE;
+ }
+ }
+}
+
+template<typename TYPE> inline
+void destroy_type(TYPE* p, size_t n) {
+ if (!traits<TYPE>::has_trivial_dtor) {
+ while (n > 0) {
+ n--;
+ p->~TYPE();
+ p++;
+ }
+ }
+}
+
+template<typename TYPE>
+typename std::enable_if<traits<TYPE>::has_trivial_copy>::type
+inline
+copy_type(TYPE* d, const TYPE* s, size_t n) {
+ memcpy(d,s,n*sizeof(TYPE));
+}
+
+template<typename TYPE>
+typename std::enable_if<!traits<TYPE>::has_trivial_copy>::type
+inline
+copy_type(TYPE* d, const TYPE* s, size_t n) {
+ while (n > 0) {
+ n--;
+ new(d) TYPE(*s);
+ d++, s++;
+ }
+}
+
+template<typename TYPE> inline
+void splat_type(TYPE* where, const TYPE* what, size_t n) {
+ if (!traits<TYPE>::has_trivial_copy) {
+ while (n > 0) {
+ n--;
+ new(where) TYPE(*what);
+ where++;
+ }
+ } else {
+ while (n > 0) {
+ n--;
+ *where++ = *what;
+ }
+ }
+}
+
+template<typename TYPE>
+struct use_trivial_move : public std::integral_constant<bool,
+ (traits<TYPE>::has_trivial_dtor && traits<TYPE>::has_trivial_copy)
+ || traits<TYPE>::has_trivial_move
+> {};
+
+template<typename TYPE>
+typename std::enable_if<use_trivial_move<TYPE>::value>::type
+inline
+move_forward_type(TYPE* d, const TYPE* s, size_t n = 1) {
+ memmove(d, s, n*sizeof(TYPE));
+}
+
+template<typename TYPE>
+typename std::enable_if<!use_trivial_move<TYPE>::value>::type
+inline
+move_forward_type(TYPE* d, const TYPE* s, size_t n = 1) {
+ d += n;
+ s += n;
+ while (n > 0) {
+ n--;
+ --d, --s;
+ if (!traits<TYPE>::has_trivial_copy) {
+ new(d) TYPE(*s);
+ } else {
+ *d = *s;
+ }
+ if (!traits<TYPE>::has_trivial_dtor) {
+ s->~TYPE();
+ }
+ }
+}
+
+template<typename TYPE>
+typename std::enable_if<use_trivial_move<TYPE>::value>::type
+inline
+move_backward_type(TYPE* d, const TYPE* s, size_t n = 1) {
+ memmove(d, s, n*sizeof(TYPE));
+}
+
+template<typename TYPE>
+typename std::enable_if<!use_trivial_move<TYPE>::value>::type
+inline
+move_backward_type(TYPE* d, const TYPE* s, size_t n = 1) {
+ while (n > 0) {
+ n--;
+ if (!traits<TYPE>::has_trivial_copy) {
+ new(d) TYPE(*s);
+ } else {
+ *d = *s;
+ }
+ if (!traits<TYPE>::has_trivial_dtor) {
+ s->~TYPE();
+ }
+ d++, s++;
+ }
+}
+
+// ---------------------------------------------------------------------------
+
+/*
+ * a key/value pair
+ */
+
+template <typename KEY, typename VALUE>
+struct key_value_pair_t {
+ typedef KEY key_t;
+ typedef VALUE value_t;
+
+ KEY key;
+ VALUE value;
+ key_value_pair_t() { }
+ key_value_pair_t(const key_value_pair_t& o) : key(o.key), value(o.value) { }
+ key_value_pair_t& operator=(const key_value_pair_t& o) {
+ key = o.key;
+ value = o.value;
+ return *this;
+ }
+ key_value_pair_t(const KEY& k, const VALUE& v) : key(k), value(v) { }
+ explicit key_value_pair_t(const KEY& k) : key(k) { }
+ inline bool operator < (const key_value_pair_t& o) const {
+ return strictly_order_type(key, o.key);
+ }
+ inline const KEY& getKey() const {
+ return key;
+ }
+ inline const VALUE& getValue() const {
+ return value;
+ }
+};
+
+template <typename K, typename V>
+struct trait_trivial_ctor< key_value_pair_t<K, V> >
+{ enum { value = aggregate_traits<K,V>::has_trivial_ctor }; };
+template <typename K, typename V>
+struct trait_trivial_dtor< key_value_pair_t<K, V> >
+{ enum { value = aggregate_traits<K,V>::has_trivial_dtor }; };
+template <typename K, typename V>
+struct trait_trivial_copy< key_value_pair_t<K, V> >
+{ enum { value = aggregate_traits<K,V>::has_trivial_copy }; };
+template <typename K, typename V>
+struct trait_trivial_move< key_value_pair_t<K, V> >
+{ enum { value = aggregate_traits<K,V>::has_trivial_move }; };
+
+// ---------------------------------------------------------------------------
+
+/*
+ * Hash codes.
+ */
+typedef uint32_t hash_t;
+
+template <typename TKey>
+hash_t hash_type(const TKey& key);
+
+/* Built-in hash code specializations */
+#define ANDROID_INT32_HASH(T) \
+ template <> inline hash_t hash_type(const T& value) { return hash_t(value); }
+#define ANDROID_INT64_HASH(T) \
+ template <> inline hash_t hash_type(const T& value) { \
+ return hash_t((value >> 32) ^ value); }
+#define ANDROID_REINTERPRET_HASH(T, R) \
+ template <> inline hash_t hash_type(const T& value) { \
+ R newValue; \
+ static_assert(sizeof(newValue) == sizeof(value), "size mismatch"); \
+ memcpy(&newValue, &value, sizeof(newValue)); \
+ return hash_type(newValue); \
+ }
+
+ANDROID_INT32_HASH(bool)
+ANDROID_INT32_HASH(int8_t)
+ANDROID_INT32_HASH(uint8_t)
+ANDROID_INT32_HASH(int16_t)
+ANDROID_INT32_HASH(uint16_t)
+ANDROID_INT32_HASH(int32_t)
+ANDROID_INT32_HASH(uint32_t)
+ANDROID_INT64_HASH(int64_t)
+ANDROID_INT64_HASH(uint64_t)
+ANDROID_REINTERPRET_HASH(float, uint32_t)
+ANDROID_REINTERPRET_HASH(double, uint64_t)
+
+template <typename T> inline hash_t hash_type(T* const & value) {
+ return hash_type(uintptr_t(value));
+}
+
+}; // namespace android
+
+// ---------------------------------------------------------------------------
+
+#endif // ANDROID_TYPE_HELPERS_H
diff --git a/runtimes/nn/runtime/CMakeLists.txt b/runtimes/nn/runtime/CMakeLists.txt
new file mode 100644
index 000000000..487c4e0c4
--- /dev/null
+++ b/runtimes/nn/runtime/CMakeLists.txt
@@ -0,0 +1,29 @@
+SET (CUR_INCS
+ ${CMAKE_CURRENT_SOURCE_DIR}/include
+ ${CMAKE_CURRENT_SOURCE_DIR}
+)
+SET (INC_DIRS
+ ${INC_DIRS}
+ ${CUR_INCS}
+ PARENT_SCOPE
+)
+
+SET (CUR_SRCS
+ ${CMAKE_CURRENT_SOURCE_DIR}/NeuralNetworks.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/ModelBuilder.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/CompilationBuilder.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/ExecutionBuilder.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/Memory.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/Callbacks.cpp)
+
+SET (SRCS
+ ${SRCS}
+ ${CUR_SRCS}
+ PARENT_SCOPE
+)
+
+#####################################################################
+# TODO-NNRT: Remove below rules for test executable later
+# Test executables
+#####################################################################
+include_directories(${LIB_RUNTIME} PRIVATE include ${INC_DIRS})
diff --git a/runtimes/nn/runtime/Callbacks.cpp b/runtimes/nn/runtime/Callbacks.cpp
new file mode 100644
index 000000000..f9a7e6494
--- /dev/null
+++ b/runtimes/nn/runtime/Callbacks.cpp
@@ -0,0 +1,115 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "Callbacks.h"
+#include "Logging.h"
+
+namespace nnfw {
+namespace rt {
+
+CallbackBase::CallbackBase() : mNotified(false) {}
+
+CallbackBase::~CallbackBase() {
+ // Note that we cannot call CallbackBase::join_thread from here:
+ // CallbackBase is intended to be reference counted, and it is possible that
+ // the reference count drops to zero in the bound thread, causing the
+ // bound thread to call this destructor. If a thread tries to join
+ // itself, it throws an exception, producing a message like the
+ // following:
+ //
+ // terminating with uncaught exception of type std::__1::system_error:
+ // thread::join failed: Resource deadlock would occur
+}
+
+void CallbackBase::wait() {
+ std::unique_lock<std::mutex> lock(mMutex);
+ mCondition.wait(lock, [this]{return mNotified;});
+ join_thread_locked();
+}
+
+bool CallbackBase::on_finish(std::function<bool(void)> post_work) {
+ std::lock_guard<std::mutex> lock(mMutex);
+ if (mPostWork != nullptr) {
+ LOG(ERROR) << "CallbackBase::on_finish -- a post-work function has already been bound to "
+ "this callback object";
+ return false;
+ }
+ if (post_work == nullptr) {
+ LOG(ERROR) << "CallbackBase::on_finish -- the new post-work function is invalid";
+ return false;
+ }
+ mPostWork = std::move(post_work);
+ return true;
+}
+
+bool CallbackBase::bind_thread(std::thread&& asyncThread) {
+ std::lock_guard<std::mutex> lock(mMutex);
+ if (mThread.joinable()) {
+ LOG(ERROR) << "CallbackBase::bind_thread -- a thread has already been bound to this "
+ "callback object";
+ return false;
+ }
+ if (!asyncThread.joinable()) {
+ LOG(ERROR) << "CallbackBase::bind_thread -- the new thread is not joinable";
+ return false;
+ }
+ mThread = std::move(asyncThread);
+ return true;
+}
+
+void CallbackBase::join_thread() {
+ std::lock_guard<std::mutex> lock(mMutex);
+ join_thread_locked();
+}
+
+void CallbackBase::notify() {
+ {
+ std::lock_guard<std::mutex> lock(mMutex);
+ mNotified = true;
+ if (mPostWork != nullptr) {
+ bool success = mPostWork();
+ if (!success) {
+ LOG(ERROR) << "CallbackBase::notify -- post work failed";
+ }
+ }
+ }
+ mCondition.notify_all();
+}
+
+void CallbackBase::join_thread_locked() {
+ if (mThread.joinable()) {
+ mThread.join();
+ }
+}
+
+ExecutionCallback::ExecutionCallback() : mErrorStatus(ErrorStatus::GENERAL_FAILURE) {}
+
+ExecutionCallback::~ExecutionCallback() {}
+
+Return<void> ExecutionCallback::notify(ErrorStatus errorStatus) {
+ mErrorStatus = errorStatus;
+ CallbackBase::notify();
+ return Void();
+}
+
+ErrorStatus ExecutionCallback::getStatus() {
+ wait();
+ return mErrorStatus;
+}
+
+} // namespace rt
+} // namespace nnfw
diff --git a/runtimes/nn/runtime/Callbacks.h b/runtimes/nn/runtime/Callbacks.h
new file mode 100644
index 000000000..59097149b
--- /dev/null
+++ b/runtimes/nn/runtime/Callbacks.h
@@ -0,0 +1,249 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_CALLBACKS_H__
+#define __NNFW_RT_CALLBACKS_H__
+
+#include <android/hardware/neuralnetworks/1.0/types.h>
+#include <chrono>
+#include <condition_variable>
+#include <functional>
+#include <hidl/Status.h>
+#include <mutex>
+#include <thread>
+
+using namespace android::hardware;
+using namespace android::hardware::neuralnetworks::V1_0;
+
+namespace nnfw {
+namespace rt {
+
+/**
+ * The CallbackBase class is used internally by the NeuralNetworks runtime to
+ * synchronize between different threads. An asynchronous task is launched
+ * paired with a callback object. When a client thread requires the output being
+ * generated by the asynchronous task, the client thread can wait for the result
+ * and be blocked until it has completed or a timeout condition has been
+ * reached. Any wait* may safely be called concurrently, even on the same
+ * callback object. When the asynchronous task has finished its workload, it
+ * must immediately call "notify". If the asynchronous task has failed to launch,
+ * the function that tried to launch the asynchronous task must immediately call
+ * "notify". This "notify" call awakens any client threads waiting on the
+ * callback object.
+ *
+ * callback object. When the asynchronous task has finished its workload or has
+ * failed to launch, it must immediately call "notify", awakening any client
+ * threads waiting on the callback object.
+ *
+ * The CallbackBase class implements some of the base synchronization common to
+ * both PrepareModelCallback and ExecutionCallback. For consistency, any HIDL
+ * callback class must inherit from CallbackBase as well as the HIDL callback
+ * interface it implements.
+ *
+ * This class exists to enable synchronization across HIDL. When synchronization
+ * is only required in the same process, consider using std::future, std::mutex,
+ * std::condition_variable, or std::experimental::latch instead.
+ */
+class CallbackBase {
+ public:
+ CallbackBase();
+ ~CallbackBase();
+
+ /**
+ * CallbackBase::wait blocks until notify has been called on the callback
+ * object.
+ */
+ void wait();
+
+ /**
+ * CallbackBase::wait_for blocks until notify has been called on the
+ * callback object or the time duration from the time the wait_for function
+ * was called has expired, whichever comes first.
+ *
+ * @return Status std::cv_status::no_timeout if the callback was notified
+ * before the time duration expired, std::cv_status::timeout
+ * otherwise.
+ */
+ template<class Rep, class Period>
+ std::cv_status wait_for(const std::chrono::duration<Rep,Period>& timeout_duration);
+
+ /**
+ * CallbackBase::on_finish binds a function to the callback object. This
+ * bound function will be executed when CallbackBase::notify is called,
+ * before any calls to wait* return. (Note that CallbackBase::wait_for can
+ * return std::cv_status::timeout before CallbackBase::notify is called for
+ * the first time, and hence before the bound function is executed.)
+ *
+ * The bound function must not synchronize with or otherwise access the
+ * callback object it is bound to, as this could cause a deadlock.
+ *
+ * CallbackBase::on_finish can be called at most once on a given callback
+ * object, and the call to CallbackBase::on_finish must finish before
+ * CallbackBase::notify is called.
+ *
+ * @param post_work Function to be invoked the first time
+ * CallbackBase::notify is called. Must have a target --
+ * i.e., must not compare equal to nullptr. post_work
+ * returns true if it successfully completes, false if it
+ * fails.
+ * @return bool True if the function was successfully bound, false if
+ * unsuccessful.
+ *
+ * TODO: Why does the return value of the callback matter?
+ */
+ bool on_finish(std::function<bool(void)> post_work);
+
+ /**
+ * CallbackBase::bind_thread binds a thread to the event for later use by
+ * CallbackBase::join_thread.
+ *
+ * The thread must be passed using std::move.
+ *
+ * Once a thread is bound with CallbackBase::bind_thread, the client code
+ * should ensure that one of the following occurs before the event is
+ * destroyed:
+ * - CallbackBase::join_thread has been called.
+ * - CallbackBase::wait has been called.
+ * - CallbackBase::wait_for has been called and returned other than
+ * std::cv_status::no_timeout.
+ *
+ * The bound thread shall not call any CallbackBase method with the
+ * exception of CallbackBase::notify, which it must call when the thread has
+ * finished its computation.
+ *
+ * CallbackBase::bind_thread can be called at most once on a given callback
+ * object.
+ *
+ * @param asyncThread Thread to be bound to the callback object. The thread
+ * object must represent a thread of execution -- i.e.,
+ * asyncThread.joinable() must be true.
+ * @return bool True if successful, false if thread was not properly bound.
+ */
+ bool bind_thread(std::thread&& asyncThread);
+
+ /**
+ * CallbackBase::join_thread ensures that the thread (if any) bound to this
+ * event with CallbackBase::bind_thread has fully finished and cleaned its
+ * resources. It is legal to call this function multiple times, concurrently
+ * or sequentially.
+ */
+ void join_thread();
+
+ protected:
+ /**
+ * CallbackBase::notify enables all prior and future wait* calls on the
+ * callback object to proceed. The call to CallbackBase::notify happens
+ * before any wait* calls on this callback object return (except in the case
+ * of wait_for timing out). The asynchronous call the callback object is
+ * paired with must ensure that any update to state that should be visible
+ * to the caller of wait* happens before the call to CallbackBase::notify.
+ *
+ * CallbackBase::notify must be called exactly once on a given callback
+ * object.
+ */
+ void notify();
+
+ private:
+ // Same as CallbackBase::join_thread but assumes we already hold a lock on
+ // mMutex.
+ void join_thread_locked();
+
+ bool mNotified;
+ std::mutex mMutex;
+ std::condition_variable mCondition;
+ std::function<bool(void)> mPostWork;
+ std::thread mThread;
+};
+
+/**
+ * The ExecutionCallback class is used to receive the error status of the
+ * execution from a task executing asynchronously with respect to the runtime.
+ * If a calling thread calls wait* or get* on a PreparedModelCallback object and
+ * the corresponding asynchronous task has not finished the execution, the
+ * calling thread will block until the asynchronous task has called notify. For
+ * more information on the synchronization behavior, refer to the CallbackBase
+ * class.
+ *
+ * This class inherits the basic blocking and signaling calls from
+ * CallbackBase, and implements the HIDL notify call from
+ * IExecutionCallback. This callback object is passed as an argument to
+ * IPreparedModel::execute.
+ */
+class ExecutionCallback : public CallbackBase, public ::android::RefBase {
+ public:
+ ExecutionCallback();
+ ~ExecutionCallback();
+
+ /**
+ * IExecutionCallback::notify marks the callback object with the return
+ * status of the asynchronous execution that held this callback and enables
+ * all prior and future wait* calls on the ExecutionCallback object to
+ * proceed. For more information on the synchronization behavior, refer to
+ * the CallbackBase class.
+ *
+ * IExecutionCallback::notify must be called exactly once on a given
+ * ExecutionCallback object.
+ *
+ * @param status Error status returned from asynchronously preparing the
+ * model; will be:
+ * - NONE if the asynchronous execution was successful
+ * - DEVICE_UNAVAILABLE if driver is offline or busy
+ * - GENERAL_FAILURE if there is an unspecified error
+ * - OUTPUT_INSUFFICIENT_SIZE if provided output buffer is
+ * not large enough to store the resultant values
+ * - INVALID_ARGUMENT if the input request is invalid
+ */
+ Return<void> notify(ErrorStatus status);
+
+ /**
+ * Retrieves the error status returned from the asynchronous task launched
+ * by IPreparedModel::execute. If IPreparedModel::execute has not finished
+ * asynchronously executing, this call will block until the asynchronous task
+ * notifies the object.
+ *
+ * @return status Error status returned from asynchronously preparing the
+ * model; will be:
+ * - NONE if the asynchronous execution was successful
+ * - DEVICE_UNAVAILABLE if driver is offline or busy
+ * - GENERAL_FAILURE if there is an unspecified error
+ * - OUTPUT_INSUFFICIENT_SIZE if provided output buffer is
+ * not large enough to store the resultant values
+ * - INVALID_ARGUMENT if the input request is invalid
+ */
+ ErrorStatus getStatus();
+
+ private:
+ ErrorStatus mErrorStatus;
+};
+
+
+// template function implementation(s) below this point
+
+template<class Rep, class Period>
+std::cv_status CallbackBase::wait_for(const std::chrono::duration<Rep,Period>& timeout_duration) {
+ std::unique_lock<std::mutex> lock(mMutex);
+ std::cv_status status = mCondition.wait_for(lock, timeout_duration, [this]{return mNotified;});
+ if (status != std::cv_status::timeout) {
+ join_thread_locked();
+ }
+ return status;
+}
+
+} // namespace rt
+} // namespace nnfw
+
+#endif // __NNFW_RT_CALLBACKS_H__
diff --git a/runtimes/nn/runtime/CompilationBuilder.cpp b/runtimes/nn/runtime/CompilationBuilder.cpp
new file mode 100644
index 000000000..317838a31
--- /dev/null
+++ b/runtimes/nn/runtime/CompilationBuilder.cpp
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "ExecutionBuilder.h"
+#include "CompilationBuilder.h"
+#include "Utils.h"
+
+namespace nnfw {
+namespace rt {
+
+CompilationBuilder::CompilationBuilder(const ModelBuilder* model) :
+ mModel(model) {
+ VLOG(COMPILATION) << "CompilationBuilder::CompilationBuilder";
+}
+
+int CompilationBuilder::finish() {
+ if (mFinished) {
+ LOG(ERROR) << "ANeuralNetworksCompilation_finish called more than once";
+ return ANEURALNETWORKS_BAD_STATE;
+ }
+ // TODO validate the rest
+
+ mFinished = true;
+
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+int CompilationBuilder::setPreference(int32_t preference) {
+ if (mFinished) {
+ LOG(ERROR) <<
+ "ANeuralNetworksCompilation_setPreference can't modify after compilation finished";
+ return ANEURALNETWORKS_BAD_STATE;
+ }
+ if (preference >= kNumberOfPreferences) {
+ LOG(ERROR) << "ANeuralNetworksCompilation_setPreference invalid preference " << preference;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+
+ mPreference = preference;
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+int CompilationBuilder::createExecution(ExecutionBuilder **execution) {
+ if (!mFinished) {
+ LOG(ERROR) << "ANeuralNetworksExecution_create passed an unfinished compilation";
+ *execution = nullptr;
+ return ANEURALNETWORKS_BAD_STATE;
+ }
+ *execution = new ExecutionBuilder(this);
+ return (*execution ? ANEURALNETWORKS_NO_ERROR : ANEURALNETWORKS_OUT_OF_MEMORY);
+}
+
+} // namespace rt
+} // namespace nnfw
diff --git a/runtimes/nn/runtime/CompilationBuilder.h b/runtimes/nn/runtime/CompilationBuilder.h
new file mode 100644
index 000000000..77afa1303
--- /dev/null
+++ b/runtimes/nn/runtime/CompilationBuilder.h
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_COMPILATION_BUILDER_H__
+#define __NNFW_RT_COMPILATION_BUILDER_H__
+
+#include "NeuralNetworks.h"
+
+namespace nnfw {
+namespace rt {
+
+class ExecutionBuilder;
+class ModelBuilder;
+
+class CompilationBuilder {
+public:
+ friend class ExecutionBuilder; // TODO remove this
+
+ CompilationBuilder(const ModelBuilder* model);
+
+ int setPreference(int32_t preference);
+
+ int finish();
+
+ int createExecution(ExecutionBuilder** execution);
+
+private:
+ const ModelBuilder* mModel;
+
+ // Whether the application prefers to go fast or use low power for this execution.
+ int32_t mPreference = ANEURALNETWORKS_PREFER_FAST_SINGLE_ANSWER;
+
+ // Once the compilation has been finished, we should not allow further
+ // modifications to the compilation.
+ bool mFinished = false;
+};
+
+} // namespace rt
+} // namespace nnfw
+
+#endif // __NNFW_RT_COMPILATION_BUILDER_H__
diff --git a/runtimes/nn/runtime/ExecutionBuilder.cpp b/runtimes/nn/runtime/ExecutionBuilder.cpp
new file mode 100644
index 000000000..5cf2485c0
--- /dev/null
+++ b/runtimes/nn/runtime/ExecutionBuilder.cpp
@@ -0,0 +1,293 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "ExecutionBuilder.h"
+#include "CompilationBuilder.h"
+#include "CpuExecutor.h"
+#include "HalInterfaces.h"
+#include "ModelBuilder.h"
+
+namespace nnfw {
+namespace rt {
+
+// TODO-NNRT: Consider removing ModelArgumentInfo completely if it's not necessary
+int ModelArgumentInfo::setFromPointer(const Operand& operand,
+ const ANeuralNetworksOperandType* type, void* data,
+ uint32_t length) {
+ if ((data == nullptr) != (length == 0)) {
+ LOG(ERROR) << "Data pointer must be nullptr if and only if length is zero (data = "
+ << data << ", length = " << length << ")";
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ if (data == nullptr) {
+ state = ModelArgumentInfo::HAS_NO_VALUE;
+ } else {
+ int n = updateDimensionInfo(operand, type);
+ if (n != ANEURALNETWORKS_NO_ERROR) {
+ return n;
+ }
+ uint32_t neededLength = sizeOfData(operand.type, dimensions);
+ if (operand.type != OperandType::OEM && neededLength != length) {
+ LOG(ERROR) << "Setting argument with invalid length: " << length
+ << ", expected length: " << neededLength;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ state = ModelArgumentInfo::POINTER;
+ }
+ buffer = data;
+ locationAndLength = {.poolIndex = 0, .offset = 0, .length = length};
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+int ModelArgumentInfo::setFromMemory(const Operand& operand, const ANeuralNetworksOperandType* type,
+ uint32_t poolIndex, uint32_t offset, uint32_t length) {
+ int n = updateDimensionInfo(operand, type);
+ if (n != ANEURALNETWORKS_NO_ERROR) {
+ return n;
+ }
+ state = ModelArgumentInfo::MEMORY;
+ locationAndLength = {.poolIndex = poolIndex, .offset = offset, .length = length};
+ buffer = nullptr;
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+int ModelArgumentInfo::updateDimensionInfo(const Operand& operand,
+ const ANeuralNetworksOperandType* newType) {
+ nnAssert(dimensions.empty());
+ if (newType == nullptr) {
+ for (auto i : operand.dimensions) {
+ if (i == 0) {
+ LOG(ERROR) << "Setting input/output with unspecified dimensions";
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ }
+ dimensions = operand.dimensions;
+ } else {
+ uint32_t count = newType->dimensionCount;
+ if (static_cast<OperandType>(newType->type) != operand.type ||
+ count != operand.dimensions.size()) {
+ LOG(ERROR) << "Setting input/output with incompatible types";
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ dimensions = hidl_vec<uint32_t>(count);
+ for (uint32_t i = 0; i < count; i++) {
+ if (operand.dimensions[i] != 0 && operand.dimensions[i] != newType->dimensions[i]) {
+ LOG(ERROR) << "Overriding a fully specified dimension is disallowed";
+ return ANEURALNETWORKS_BAD_DATA;
+ } else {
+ dimensions[i] = newType->dimensions[i];
+ }
+ }
+ }
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+ExecutionBuilder::ExecutionBuilder(const CompilationBuilder* compilation) :
+ mModel(compilation->mModel),
+ mInputs(mModel->inputCount()),
+ mOutputs(mModel->outputCount()) {
+ VLOG(EXECUTION) << "ExecutionBuilder::ExecutionBuilder";
+}
+
+int ExecutionBuilder::setInput(uint32_t index, const ANeuralNetworksOperandType* type,
+ const void* buffer, size_t length) {
+ uint32_t count = static_cast<uint32_t>(mInputs.size());
+ if (index >= count) {
+ LOG(ERROR) << "ANeuralNetworksExecution_setInput bad index " << index << " " << count;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ if (type != nullptr) {
+ int n = validateOperandType(*type, "ANeuralNetworksExecution_setInput", false);
+ if (n != ANEURALNETWORKS_NO_ERROR) {
+ return n;
+ }
+ }
+ if (length > 0xFFFFFFFF) {
+ LOG(ERROR) << "ANeuralNetworksExecution_setInput input exceeds max length " << length;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ uint32_t l = static_cast<uint32_t>(length);
+ return mInputs[index].setFromPointer(mModel->getInputOperand(index), type,
+ const_cast<void*>(buffer), l);
+}
+
+int ExecutionBuilder::setInputFromMemory(uint32_t index, const ANeuralNetworksOperandType* type,
+ const Memory* memory, size_t offset, size_t length) {
+ // Should be similar to StepExecutor::setInputOrOutputFromTemporaryMemory()
+
+ uint32_t count = static_cast<uint32_t>(mInputs.size());
+ if (index >= count) {
+ LOG(ERROR) << "ANeuralNetworksExecution_setInputFromMemory bad index " << index << " "
+ << count;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ if (!memory->validateSize(offset, length)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ // TODO validate the rest
+ uint32_t poolIndex = mMemories.add(memory);
+ return mInputs[index].setFromMemory(mModel->getInputOperand(index), type, poolIndex, offset,
+ length);
+}
+
+int ExecutionBuilder::setOutput(uint32_t index, const ANeuralNetworksOperandType* type, void* buffer,
+ size_t length) {
+ uint32_t count = static_cast<uint32_t>(mOutputs.size());
+ if (index >= count) {
+ LOG(ERROR) << "ANeuralNetworksExecution_setOutput bad index " << index << " " << count;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ if (type != nullptr) {
+ int n = validateOperandType(*type, "ANeuralNetworksExecution_setOutput", false);
+ if (n != ANEURALNETWORKS_NO_ERROR) {
+ return n;
+ }
+ }
+ if (length > 0xFFFFFFFF) {
+ LOG(ERROR) << "ANeuralNetworksExecution_setOutput input exceeds max length " << length;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ uint32_t l = static_cast<uint32_t>(length);
+ return mOutputs[index].setFromPointer(mModel->getOutputOperand(index), type, buffer, l);
+}
+
+int ExecutionBuilder::setOutputFromMemory(uint32_t index, const ANeuralNetworksOperandType* type,
+ const Memory* memory, size_t offset, size_t length) {
+ // Should be similar to StepExecutor::setInputOrOutputFromTemporaryMemory()
+
+ uint32_t count = static_cast<uint32_t>(mOutputs.size());
+ if (index >= count) {
+ LOG(ERROR) << "ANeuralNetworksExecution_setOutputFromMemory bad index " << index << " "
+ << count;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ if (!memory->validateSize(offset, length)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ // TODO validate the rest
+ uint32_t poolIndex = mMemories.add(memory);
+ return mOutputs[index].setFromMemory(mModel->getOutputOperand(index), type, poolIndex, offset,
+ length);
+}
+
+int ExecutionBuilder::startCompute(sp<ExecutionCallback>* synchronizationCallback) {
+ // Run on the CPU.
+ VLOG(EXECUTION) << "ExecutionBuilder::startCompute (without plan) on CPU";
+ StepExecutor executor(this, mModel);
+ executor.mapInputsAndOutputsTrivially();
+ return executor.startCompute(synchronizationCallback);
+}
+
+static void setRequestArgumentArray(const std::vector<ModelArgumentInfo>& argumentInfos,
+ hidl_vec<RequestArgument>* ioInfos) {
+ size_t count = argumentInfos.size();
+ ioInfos->resize(count);
+ for (size_t i = 0; i < count; i++) {
+ const auto& info = argumentInfos[i];
+ (*ioInfos)[i] = { .hasNoValue = info.state == ModelArgumentInfo::HAS_NO_VALUE,
+ .location = info.locationAndLength,
+ .dimensions = info.dimensions,
+ };
+ }
+}
+
+
+StepExecutor::StepExecutor(const ExecutionBuilder* executionBuilder, const ModelBuilder* model)
+ : mExecutionBuilder(executionBuilder), mModel(model) {}
+
+void StepExecutor::mapInputsAndOutputsTrivially() {
+ mInputs = mExecutionBuilder->mInputs;
+ mOutputs = mExecutionBuilder->mOutputs;
+ mMemories = mExecutionBuilder->mMemories;
+}
+
+int StepExecutor::startCompute(sp<ExecutionCallback>* synchronizationCallback) {
+ // Run on CPU only
+ return startComputeOnCpu(synchronizationCallback);
+}
+
+static void asyncStartComputeOnCpu(const Model& model, const Request& request,
+ const std::vector<RunTimePoolInfo>& modelPoolInfos,
+ const std::vector<RunTimePoolInfo>& requestPoolInfos,
+ const sp<ExecutionCallback>& executionCallback) {
+ CpuExecutor executor;
+ int err = executor.run(model, request, modelPoolInfos, requestPoolInfos);
+ ErrorStatus status = err == ANEURALNETWORKS_NO_ERROR ?
+ ErrorStatus::NONE : ErrorStatus::GENERAL_FAILURE;
+ executionCallback->notify(status);
+}
+int StepExecutor::startComputeOnCpu(sp<ExecutionCallback>* synchronizationCallback) {
+ // TODO: use a thread pool
+
+ Model model;
+ mModel->setHidlModel(&model);
+
+ // Prepare the callback for asynchronous execution. sp<ExecutionCallback>
+ // object is returned when the execution has been successfully launched,
+ // otherwise a nullptr is returned. The executionCallback is abstracted in
+ // the NN API as an "event".
+ sp<ExecutionCallback> executionCallback = new ExecutionCallback();
+ *synchronizationCallback = nullptr;
+
+ std::vector<RunTimePoolInfo> modelPoolInfos;
+ if (!setRunTimePoolInfosFromHidlMemories(&modelPoolInfos, model.pools)) {
+ return ANEURALNETWORKS_UNMAPPABLE;
+ }
+
+ std::vector<RunTimePoolInfo> requestPoolInfos;
+ uint32_t count = mMemories.size();
+ requestPoolInfos.resize(count);
+ for (uint32_t i = 0; i < count; i++) {
+ const Memory* mem = mMemories[i];
+ if (!requestPoolInfos[i].set(mem->getHidlMemory())) {
+ return ANEURALNETWORKS_UNMAPPABLE;
+ }
+ }
+ // Create as many pools as there are input / output.
+ auto fixPointerArguments = [&requestPoolInfos](std::vector<ModelArgumentInfo>& argumentInfos) {
+ for (ModelArgumentInfo& argumentInfo : argumentInfos) {
+ if (argumentInfo.state == ModelArgumentInfo::POINTER) {
+ //RunTimePoolInfo runTimeInfo = {
+ // .buffer = static_cast<uint8_t*>(argumentInfo.buffer)};
+ RunTimePoolInfo runTimeInfo = {};
+ runTimeInfo.buffer = static_cast<uint8_t*>(argumentInfo.buffer);
+ argumentInfo.locationAndLength.poolIndex =
+ static_cast<uint32_t>(requestPoolInfos.size());
+ argumentInfo.locationAndLength.offset = 0;
+ requestPoolInfos.push_back(runTimeInfo);
+ }
+ }
+ };
+ fixPointerArguments(mInputs);
+ fixPointerArguments(mOutputs);
+
+ Request request;
+ setRequestArgumentArray(mInputs, &request.inputs);
+ setRequestArgumentArray(mOutputs, &request.outputs);
+
+ // TODO: should model be moved with a std::cref?
+ std::thread thread(asyncStartComputeOnCpu, model, std::move(request),
+ std::move(modelPoolInfos), std::move(requestPoolInfos),
+ executionCallback);
+ executionCallback->bind_thread(std::move(thread));
+
+ *synchronizationCallback = executionCallback;
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+} // namespace rt
+} // namespace nnfw
diff --git a/runtimes/nn/runtime/ExecutionBuilder.h b/runtimes/nn/runtime/ExecutionBuilder.h
new file mode 100644
index 000000000..2b05ef4be
--- /dev/null
+++ b/runtimes/nn/runtime/ExecutionBuilder.h
@@ -0,0 +1,147 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_EXECUTION_BUILDER_H__
+#define __NNFW_RT_EXECUTION_BUILDER_H__
+
+#include "Callbacks.h"
+#include "HalInterfaces.h"
+#include "Memory.h"
+#include "ModelBuilder.h"
+#include "NeuralNetworks.h"
+
+#include <vector>
+
+using namespace android;
+
+namespace nnfw {
+namespace rt {
+
+class Memory;
+class ModelBuilder;
+class StepExecutor;
+
+// TODO-NNRT: Consider removing ModelArgumentInfo completely if it's not necessary
+// TODO move length out of DataLocation
+struct ModelArgumentInfo {
+ // Whether the argument was specified as being in a Memory, as a pointer,
+ // has no value, or has not been specified.
+ // If POINTER then:
+ // locationAndLength.length is valid.
+ // dimensions is valid.
+ // buffer is valid
+ // If MEMORY then:
+ // locationAndLength.location.{poolIndex, offset, length} is valid.
+ // dimensions is valid.
+ enum { POINTER, MEMORY, HAS_NO_VALUE, UNSPECIFIED } state = UNSPECIFIED;
+
+ DataLocation locationAndLength;
+
+ std::vector<uint32_t> dimensions;
+ void* buffer;
+
+ int setFromPointer(const Operand& operand, const ANeuralNetworksOperandType* type, void* buffer,
+ uint32_t length);
+ int setFromMemory(const Operand& operand, const ANeuralNetworksOperandType* type,
+ uint32_t poolIndex, uint32_t offset, uint32_t length);
+ int updateDimensionInfo(const Operand& operand, const ANeuralNetworksOperandType* newType);
+};
+
+// TODO-NNRT: Consider removing StepExecutor completely if it's not necessary
+class ExecutionBuilder {
+ friend class StepExecutor;
+public:
+ ExecutionBuilder(const CompilationBuilder* compilation);
+
+ int setInput(uint32_t index, const ANeuralNetworksOperandType* type, const void* buffer,
+ size_t length);
+ int setInputFromMemory(uint32_t index, const ANeuralNetworksOperandType* type,
+ const Memory* memory, size_t offset, size_t length);
+ int setOutput(uint32_t index, const ANeuralNetworksOperandType* type, void* buffer,
+ size_t length);
+ int setOutputFromMemory(uint32_t index, const ANeuralNetworksOperandType* type,
+ const Memory* memory, size_t offset, size_t length);
+ int startCompute(sp<ExecutionCallback>* synchronizationCallback);
+ const ModelBuilder* getModel() const { return mModel; }
+
+private:
+ const ModelBuilder* mModel;
+ // The information we'll send to the driver about the inputs and outputs.
+ // Note that we build this in two steps:
+ // 1. As the arguments are specified, set the corresponding mInputs or mOutputs element.
+ // If set from a pointer, don't set the location in the RequestArgument but store it
+ // instead in mInputBuffers or mOutputBuffers.
+ // 2. Once we have all the inputs and outputs, if needed, allocate shared memory for
+ // the m*Buffers entries. Copy the input values into the shared memory.
+ // We do this to avoid creating a lot of shared memory objects if we have a lot of
+ // parameters specified via pointers. We also avoid copying in the case where
+ // some of the nodes will interpreted on the CPU anyway.
+ std::vector<ModelArgumentInfo> mInputs;
+ std::vector<ModelArgumentInfo> mOutputs;
+ MemoryTracker mMemories;
+};
+
+// class StepExecutor is used to execute a single "step" in a
+// potentially multiple step execution process. The graph associated
+// with that step is executed in its entirety on a single device (or
+// on the CPU).
+class StepExecutor {
+// TODO-NNRT: Consider removing StepExecutor completely if it's not necessary
+public:
+ // executionBuilder
+ // Describes the full (possibly multiple-"step") execution.
+ // model
+ // The model to be executed by the executor. Possibly a
+ // submodel of the model from executionBuilder.
+ StepExecutor(const ExecutionBuilder* executionBuilder, const ModelBuilder* model);
+ // Map inputs and outputs from ExecutionBuilder to StepExecutor,
+ // in the case where we have a single-"step" execution (i.e., the executor
+ // is executing the entire model from the ExecutionBuilder).
+ void mapInputsAndOutputsTrivially();
+ // Executes using the (driver, preparedModel) specified at construction time.
+ int startCompute(sp<ExecutionCallback>* synchronizationCallback);
+
+ // Executes using the CPU, regardless of the (driver,
+ // preparedModel) specified at construction time.
+ int startComputeOnCpu(sp<ExecutionCallback>* synchronizationCallback);
+
+private:
+ const ExecutionBuilder* mExecutionBuilder;
+
+ // model to be executed on the executor, in both original and
+ // compiled forms; and device on which to execute it
+ const ModelBuilder* mModel;
+
+ // The information we'll send to the driver about the inputs and outputs.
+ // Note that we build this in two steps:
+ // 1. As the arguments are specified, set the corresponding mInputs or mOutputs element.
+ // If set from a pointer, don't set the location in the RequestArgument but store it
+ // instead in mInputBuffers or mOutputBuffers.
+ // 2. Once we have all the inputs and outputs, if needed, allocate shared memory for
+ // the m*Buffers entries. Copy the input values into the shared memory.
+ // We do this to avoid creating a lot of shared memory objects if we have a lot of
+ // parameters specified via pointers. We also avoid copying in the case where
+ // some of the nodes will interpreted on the CPU anyway.
+ std::vector<ModelArgumentInfo> mInputs;
+ std::vector<ModelArgumentInfo> mOutputs;
+ MemoryTracker mMemories;
+};
+
+} // namespace rt
+} // namespace nnfw
+
+#endif // __NNFW_RT_EXECUTION_BUILDER_H__
diff --git a/runtimes/nn/runtime/Memory.cpp b/runtimes/nn/runtime/Memory.cpp
new file mode 100644
index 000000000..5ef16c1bf
--- /dev/null
+++ b/runtimes/nn/runtime/Memory.cpp
@@ -0,0 +1,199 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "Memory"
+
+#include "Memory.h"
+
+#include "HalInterfaces.h"
+#include "Utils.h"
+#include "Logging.h"
+
+#include <unistd.h> // It's for 'close' and 'dup'
+ // TODO-NNRT : Remove this if included another header including this.
+#include <cutils/ashmem.h>
+
+namespace nnfw {
+namespace rt {
+
+int Memory::create(uint32_t size) {
+ int fd = ashmem_create_region("__unused_name", size);
+ if (fd == -1) {
+ LOG(ERROR) << "Failed to create ashmem region.";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+ int prot = PROT_WRITE | PROT_READ;
+ size_t offset = 0;
+ void* data = mmap(0, size, prot, MAP_SHARED, fd, offset);
+ if (data == MAP_FAILED) {
+ LOG(ERROR) << "Can't mmap the file descriptor.";
+ return ANEURALNETWORKS_UNMAPPABLE;
+ } else {
+ mBuffer = static_cast<uint8_t*>(data);
+ }
+
+ int dupfd = dup(fd);
+ if (dupfd == -1) {
+ LOG(ERROR) << "Failed to dup the fd";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+
+ if (mAshmemHandle) {
+ native_handle_delete(mAshmemHandle);
+ }
+ mAshmemHandle = native_handle_create(1, 3);
+ if (mAshmemHandle == nullptr) {
+ LOG(ERROR) << "Failed to create native_handle";
+ close(dupfd);
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+
+ mAshmemHandle->data[0] = dupfd;
+ mAshmemHandle->data[1] = prot;
+ mAshmemHandle->data[2] = (int32_t)(uint32_t)(offset & 0xffffffff);
+#if defined(__LP64__)
+ mAshmemHandle->data[3] = (int32_t)(uint32_t)(offset >> 32);
+#else
+ mAshmemHandle->data[3] = 0;
+#endif
+ mHidlMemory = hidl_memory("mmap_fd", mAshmemHandle, size);
+
+#if 0 // TODO-NNRT : Allocate hidl memory instead of shared memory.
+ mHidlMemory = allocateSharedMemory(size);
+
+ mMemory = mapMemory(mHidlMemory);
+ if (mMemory == nullptr) {
+ LOG(ERROR) << "Memory::create failed";
+ return ANEURALNETWORKS_OP_FAILED;
+ }
+#endif // TODO-NNRT
+
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+bool Memory::validateSize(uint32_t offset, uint32_t length) const {
+ if (offset + length > mHidlMemory.size()) {
+ LOG(ERROR) << "Request size larger than the memory size.";
+ return false;
+ } else {
+ return true;
+ }
+}
+
+Memory::~Memory() {
+ // Delete the native_handle.
+ if (mAshmemHandle) {
+ int fd = mAshmemHandle->data[0];
+ if (fd != -1) {
+ close(fd);
+ }
+ native_handle_delete(mAshmemHandle);
+ }
+}
+
+MemoryFd::~MemoryFd() {
+ // Delete the native_handle.
+ if (mHandle) {
+ int fd = mHandle->data[0];
+ if (fd != -1) {
+ close(fd);
+ }
+ native_handle_delete(mHandle);
+ }
+}
+
+int MemoryFd::set(size_t size, int prot, int fd, size_t offset) {
+ if (fd < 0) {
+ LOG(ERROR) << "ANeuralNetworksMemory_createFromFd invalid fd " << fd;
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+ if (size == 0 || fd < 0) {
+ LOG(ERROR) << "Invalid size or fd";
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ int dupfd = dup(fd);
+ if (dupfd == -1) {
+ LOG(ERROR) << "Failed to dup the fd";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+
+ if (mHandle) {
+ native_handle_delete(mHandle);
+ }
+ mHandle = native_handle_create(1, 3);
+ if (mHandle == nullptr) {
+ LOG(ERROR) << "Failed to create native_handle";
+ close(dupfd);
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+ mHandle->data[0] = dupfd;
+ mHandle->data[1] = prot;
+ mHandle->data[2] = (int32_t)(uint32_t)(offset & 0xffffffff);
+#if defined(__LP64__)
+ mHandle->data[3] = (int32_t)(uint32_t)(offset >> 32);
+#else
+ mHandle->data[3] = 0;
+#endif
+ mHidlMemory = hidl_memory("mmap_fd", mHandle, size);
+#if 0 // TODO-NNRT : It will be opend if IMemory is added.
+ return ANEURALNETWORKS_NO_ERROR;
+#endif // TODO-NNRT
+ return getPointer(&mBuffer);
+}
+
+int MemoryFd::getPointer(uint8_t** buffer) const {
+ if (mHandle == nullptr) {
+ LOG(ERROR) << "Memory not initialized";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+
+ int fd = mHandle->data[0];
+ int prot = mHandle->data[1];
+ size_t offset = getSizeFromInts(mHandle->data[2], mHandle->data[3]);
+ void* data = mmap(nullptr, mHidlMemory.size(), prot, MAP_SHARED, fd, offset);
+ if (data == MAP_FAILED) {
+ LOG(ERROR) << "Can't mmap the file descriptor.";
+ return ANEURALNETWORKS_UNMAPPABLE;
+ } else {
+ *buffer = static_cast<uint8_t*>(data);
+ return ANEURALNETWORKS_NO_ERROR;
+ }
+}
+
+uint32_t MemoryTracker::add(const Memory* memory) {
+ VLOG(MODEL) << __func__ << " for " << memory;
+ // See if we already have this memory. If so,
+ // return its index.
+ auto i = mKnown.find(memory);
+ if (i != mKnown.end()) {
+ return i->second;
+ }
+ VLOG(MODEL) << "It's new";
+ // It's a new one. Save it an assign an index to it.
+ size_t next = mKnown.size();
+ if (next > 0xFFFFFFFF) {
+ LOG(ERROR) << "ANeuralNetworks more than 2^32 memories.";
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ uint32_t idx = static_cast<uint32_t>(next);
+ mKnown[memory] = idx;
+ mMemories.push_back(memory);
+ return idx;
+}
+
+} // namespace rt
+} // namespace nnfw
diff --git a/runtimes/nn/runtime/Memory.h b/runtimes/nn/runtime/Memory.h
new file mode 100644
index 000000000..a1058c80c
--- /dev/null
+++ b/runtimes/nn/runtime/Memory.h
@@ -0,0 +1,122 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __NNFW_RT_MEMORY_H__
+#define __NNFW_RT_MEMORY_H__
+
+#include "NeuralNetworks.h"
+#include "Utils.h"
+
+#include <cutils/native_handle.h>
+#include <sys/mman.h>
+#include <unordered_map>
+
+using namespace android;
+
+namespace nnfw {
+namespace rt {
+
+class ModelBuilder;
+
+// Represents a memory region.
+class Memory {
+public:
+ Memory() {}
+ virtual ~Memory();
+
+ // Disallow copy semantics to ensure the runtime object can only be freed
+ // once. Copy semantics could be enabled if some sort of reference counting
+ // or deep-copy system for runtime objects is added later.
+ Memory(const Memory&) = delete;
+ Memory& operator=(const Memory&) = delete;
+
+ // Creates a shared memory object of the size specified in bytes.
+ int create(uint32_t size);
+
+ hardware::hidl_memory getHidlMemory() const { return mHidlMemory; }
+
+ // Returns a pointer to the underlying memory of this memory object.
+ virtual int getPointer(uint8_t** buffer) const {
+#if 0 // TODO-NNRT : IMemory is needed
+ // TODO-NNRT : mMemory is just dummy. It needs to implement IMemory.
+ *buffer = static_cast<uint8_t*>(static_cast<void*>(mMemory->getPointer()));
+#endif // TODO-NNRT
+ // TODO-NNRT : If it has IMemory, it will be changed to above.
+ *buffer = mBuffer;
+ return ANEURALNETWORKS_NO_ERROR;
+ }
+ virtual bool validateSize(uint32_t offset, uint32_t length) const;
+protected:
+ // The hidl_memory handle for this shared memory. We will pass this value when
+ // communicating with the drivers.
+ hardware::hidl_memory mHidlMemory;
+#if 0 // TODO-NNRT : Imemory is needed.
+ sp<IMemory> mMemory;
+#endif // TODO-NNRT
+ // A pointer to the underlying memory of the memory object
+ // TODO-NNRT : Remove if IMemory is added.
+ uint8_t *mBuffer = nullptr;
+ // TODO-NNRT : Remove if allocateSharedMemory is implemented.
+ native_handle_t* mAshmemHandle = nullptr;
+};
+
+class MemoryFd : public Memory {
+public:
+ MemoryFd() {}
+ ~MemoryFd();
+
+ // Disallow copy semantics to ensure the runtime object can only be freed
+ // once. Copy semantics could be enabled if some sort of reference counting
+ // or deep-copy system for runtime objects is added later.
+ MemoryFd(const MemoryFd&) = delete;
+ MemoryFd& operator=(const MemoryFd&) = delete;
+
+ // Create the native_handle based on input size, prot, and fd.
+ // Existing native_handle will be deleted, and mHidlMemory will wrap
+ // the newly created native_handle.
+ int set(size_t size, int prot, int fd, size_t offset);
+ int getPointer(uint8_t** buffer) const override;
+private:
+ native_handle_t* mHandle = nullptr;
+};
+
+// A utility class to accumulate mulitple Memory objects and assign each
+// a distinct index number, starting with 0.
+//
+// The user of this class is responsible for avoiding concurrent calls
+// to this class from multiple threads.
+class MemoryTracker {
+public:
+ // Adds the memory, if it does not already exists. Returns its index.
+ // The memories should survive the tracker.
+ uint32_t add(const Memory* memory);
+ // Returns the number of memories contained.
+ uint32_t size() const { return static_cast<uint32_t>(mKnown.size()); }
+ // Returns the ith memory.
+ const Memory* operator[](size_t i) const { return mMemories[i]; }
+
+private:
+ // The vector of Memory pointers we are building.
+ std::vector<const Memory*> mMemories;
+ // A faster way to see if we already have a memory than doing find().
+ std::unordered_map<const Memory*, uint32_t> mKnown;
+};
+
+} // namespace rt
+} // namespace nnfw
+
+#endif // __NNFW_RT_MEMORY_H__
diff --git a/runtimes/nn/runtime/ModelBuilder.cpp b/runtimes/nn/runtime/ModelBuilder.cpp
new file mode 100644
index 000000000..3e142501e
--- /dev/null
+++ b/runtimes/nn/runtime/ModelBuilder.cpp
@@ -0,0 +1,386 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include "ModelBuilder.h"
+
+#include "CompilationBuilder.h"
+
+namespace nnfw {
+namespace rt {
+
+// The maximum number of operands and operations that a model may have.
+const uint32_t MAX_NUMBER_OF_OPERANDS = 0xFFFFFFFE;
+const uint32_t MAX_NUMBER_OF_OPERATIONS = 0xFFFFFFFE;
+
+bool ModelBuilder::badState(const char* name) {
+ if (mCompletedModel) {
+ LOG(ERROR) << "ANeuralNetworksModel_" << name << " can't modify after model finished";
+ return true;
+ }
+ if (mInvalidModel) {
+ LOG(ERROR) << "ANeuralNetworksModel_" << name << " can't modify an invalid model";
+ return true;
+ }
+ return false;
+}
+
+int ModelBuilder::addOperand(const ANeuralNetworksOperandType& type) {
+ if (badState("addOperand")) {
+ return ANEURALNETWORKS_BAD_STATE;
+ }
+
+ int n = validateOperandType(type, "ANeuralNetworksModel_addOperand", true);
+ if (n != ANEURALNETWORKS_NO_ERROR) {
+ return n;
+ }
+ size_t idx = mOperands.size();
+ if (idx >= MAX_NUMBER_OF_OPERANDS) {
+ LOG(ERROR) << "ANeuralNetworksModel_addOperand exceed max operands";
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ mOperands.resize(idx + 1);
+ auto& operand = mOperands[idx];
+ operand.type = static_cast<OperandType>(type.type);
+ setFromIntList(&operand.dimensions, type.dimensionCount, type.dimensions);
+ operand.numberOfConsumers = 0;
+ operand.scale = type.scale;
+ operand.zeroPoint = type.zeroPoint;
+ operand.lifetime = OperandLifeTime::TEMPORARY_VARIABLE;
+ operand.location = {.poolIndex = 0, .offset = 0, .length = 0};
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+int ModelBuilder::setOperandValue(uint32_t index, const void* buffer, size_t length) {
+ if (badState("setOperandValue")) {
+ return ANEURALNETWORKS_BAD_STATE;
+ }
+
+ VLOG(MODEL) << __func__ << " for operand " << index << " size " << length;
+ if (index >= operandCount()) {
+ LOG(ERROR) << "ANeuralNetworksModel_setOperandValue setting operand " << index << " of "
+ << operandCount();
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ Operand& operand = mOperands[index];
+ if (buffer == nullptr) {
+ if (length) {
+ LOG(ERROR) << "ANeuralNetworksModel_setOperandValue buffer is nullptr but length is "
+ "not 0";
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ operand.lifetime = OperandLifeTime::NO_VALUE;
+ // The location is unused and is set to zeros.
+ operand.location = {.poolIndex = 0,
+ .offset = 0,
+ .length = 0};
+ } else {
+ if (length > 0xFFFFFFFF) {
+ LOG(ERROR) << "ANeuralNetworksModel_setOperandValue value length of " << length
+ << " exceeds max size";
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ uint32_t valueLength = static_cast<uint32_t>(length);
+ uint32_t neededLength = sizeOfData(operand.type, operand.dimensions);
+ if (neededLength != valueLength) {
+ LOG(ERROR) << "ANeuralNetworksModel_setOperandValue setting " << valueLength
+ << " bytes when needing " << neededLength;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ if (valueLength <= ANEURALNETWORKS_MAX_SIZE_OF_IMMEDIATELY_COPIED_VALUES) {
+ uint32_t existingSize = static_cast<uint32_t>(mSmallOperandValues.size());
+ uint32_t extraBytes = alignBytesNeeded(existingSize, valueLength);
+ mSmallOperandValues.resize(existingSize + extraBytes + valueLength);
+ operand.lifetime = OperandLifeTime::CONSTANT_COPY;
+ operand.location = {
+ .poolIndex = 0, .offset = existingSize + extraBytes, .length = neededLength};
+ memcpy(&mSmallOperandValues[operand.location.offset], buffer, valueLength);
+ VLOG(MODEL) << "Copied small value to offset " << operand.location.offset;
+ } else {
+ VLOG(MODEL) << "Saving large value";
+ operand.lifetime = OperandLifeTime::CONSTANT_REFERENCE;
+ // The values for poolIndex and offset will be set when the model is finished.
+ operand.location = {.poolIndex = 0, .offset = 0, .length = valueLength};
+ // We keep track of the buffers. We'll allocate the shared memory only
+ // once we know the total size, to avoid needless copies.
+ mLargeOperandValues.push_back(LargeValue{.operandIndex = index, .buffer = buffer});
+ }
+ }
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+int ModelBuilder::copyLargeValuesToSharedMemory() {
+ VLOG(MODEL) << __func__ << " has " << mLargeOperandValues.size() << " values.";
+ if (!mLargeOperandValues.empty()) {
+ // Calculate the size of the shared memory needed for all the large values.
+ // Also sets the offset for each value within the memory.
+ size_t poolSize = 0;
+ for (LargeValue& l: mLargeOperandValues) {
+ Operand& operand = mOperands[l.operandIndex];
+ nnAssert(operand.lifetime == OperandLifeTime::CONSTANT_REFERENCE);
+ poolSize += alignBytesNeeded(poolSize, operand.location.length);
+ operand.location.offset = poolSize;
+ poolSize += operand.location.length;
+ }
+
+ // Allocated the shared memory.
+ int n = mLargeValueMemory.create(poolSize);
+ if (n != ANEURALNETWORKS_NO_ERROR) {
+ return n;
+ }
+ uint8_t* memoryPointer = nullptr;
+ n = mLargeValueMemory.getPointer(&memoryPointer);
+ if (n != ANEURALNETWORKS_NO_ERROR) {
+ return n;
+ }
+ uint32_t poolIndex = mMemories.add(&mLargeValueMemory);
+ VLOG(MODEL) << "Allocated large value pool of size " << poolSize << " at index "
+ << poolIndex;
+
+ // Copy the values to this memory.
+ for (LargeValue& l: mLargeOperandValues) {
+ Operand& operand = mOperands[l.operandIndex];
+ operand.location.poolIndex = poolIndex;
+ memcpy(memoryPointer + operand.location.offset, l.buffer, operand.location.length);
+ }
+ }
+ return ANEURALNETWORKS_NO_ERROR;
+}
+int ModelBuilder::setOperandValueFromMemory(uint32_t index, const Memory* memory, uint32_t offset,
+ size_t length) {
+ VLOG(MODEL) << __func__ << " for operand " << index << " offset " << offset << " size " << length;
+ if (index >= operandCount()) {
+ LOG(ERROR) << "ANeuralNetworksModel_setOperandValueFromMemory setting operand " << index
+ << " of " << operandCount();
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ Operand& operand = mOperands[index];
+ uint32_t neededLength = sizeOfData(operand.type, operand.dimensions);
+ if (neededLength != length) {
+ LOG(ERROR) << "ANeuralNetworksModel_setOperandValueFromMemory setting " << length
+ << " bytes when needing " << neededLength;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ // TODO validate does not exceed length of memory
+ operand.lifetime = OperandLifeTime::CONSTANT_REFERENCE;
+ operand.location = {
+ .poolIndex = mMemories.add(memory), .offset = offset, .length = neededLength};
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+int ModelBuilder::addOperation(ANeuralNetworksOperationType type, uint32_t inputCount,
+ const uint32_t* inputs, uint32_t outputCount,
+ const uint32_t* outputs) {
+
+ if (badState("addOperation")) {
+ return ANEURALNETWORKS_BAD_STATE;
+ }
+
+ if (!validCode(kNumberOfOperationTypes, kNumberOfOperationTypesOEM, type)) {
+ LOG(ERROR) << "ANeuralNetworksModel_addOperation invalid operations type " << type;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ int n = validateOperandList(inputCount, inputs, operandCount(),
+ "ANeuralNetworksModel_addOperation inputs");
+ if (n != ANEURALNETWORKS_NO_ERROR) {
+ return n;
+ }
+ n = validateOperandList(outputCount, outputs, operandCount(),
+ "ANeuralNetworksModel_addOperation outputs");
+ if (n != ANEURALNETWORKS_NO_ERROR) {
+ return n;
+ }
+
+ uint32_t operationIndex = operationCount();
+ if (operationIndex >= MAX_NUMBER_OF_OPERATIONS) {
+ LOG(ERROR) << "ANeuralNetworksModel_addOperation exceed max operations";
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+ mOperations.resize(operationIndex + 1);
+ auto& entry = mOperations[operationIndex];
+ entry.type = static_cast<OperationType>(type);
+
+ setFromIntList(&entry.inputs, inputCount, inputs);
+ setFromIntList(&entry.outputs, outputCount, outputs);
+ for (uint32_t i : entry.inputs) {
+ mOperands[i].numberOfConsumers++;
+ // TODO mOperands[i].consumers.push_back(operationIndex);
+ }
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+int ModelBuilder::identifyInputsAndOutputs(uint32_t inputCount, const uint32_t* inputs,
+ uint32_t outputCount, const uint32_t* outputs) {
+ if (badState("identifyInputsAndOutputs")) {
+ return ANEURALNETWORKS_BAD_STATE;
+ }
+
+ int n = validateOperandList(inputCount, inputs, operandCount(),
+ "ANeuralNetworksModel_identifyInputsAndOutputs inputs");
+ if (n != ANEURALNETWORKS_NO_ERROR) {
+ return n;
+ }
+ n = validateOperandList(outputCount, outputs, operandCount(),
+ "ANeuralNetworksModel_identifyInputsAndOutputs outputs");
+ if (n != ANEURALNETWORKS_NO_ERROR) {
+ return n;
+ }
+
+ // Makes a copy of the index list, validates the arguments, and changes
+ // the lifetime info of the corresponding operand.
+ auto setArguments = [&](std::vector<uint32_t>* indexVector, uint32_t indexCount,
+ const uint32_t* indexList, OperandLifeTime lifetime) -> bool {
+ indexVector->resize(indexCount);
+ for (uint32_t i = 0; i < indexCount; i++) {
+ const uint32_t operandIndex = indexList[i];
+ if (operandIndex >= mOperands.size()) {
+ LOG(ERROR) << "ANeuralNetworksModel_identifyInputsAndOutputs Can't set input or output "
+ "to be "
+ << operandIndex << " as this exceeds the numbe of operands "
+ << mOperands.size();
+ return false;
+ }
+ (*indexVector)[i] = operandIndex;
+ Operand& operand = mOperands[operandIndex];
+ if (operand.lifetime != OperandLifeTime::TEMPORARY_VARIABLE) {
+ LOG(ERROR) << "ANeuralNetworksModel_identifyInputsAndOutputs Can't set operand "
+ << operandIndex
+ << " to be an input or output. Check that it's not a constant or "
+ "already an input or output";
+ return false;
+ }
+ operand.lifetime = lifetime;
+ }
+ return true;
+ };
+
+ if (!setArguments(&mInputIndexes, inputCount, inputs, OperandLifeTime::MODEL_INPUT) ||
+ !setArguments(&mOutputIndexes, outputCount, outputs, OperandLifeTime::MODEL_OUTPUT)) {
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+int ModelBuilder::createCompilation(CompilationBuilder** compilation) {
+ if (!mCompletedModel || mInvalidModel ) {
+ LOG(ERROR) << "ANeuralNetworksCompilation_create passed an unfinished model";
+ *compilation = nullptr;
+ return ANEURALNETWORKS_BAD_STATE;
+ }
+ *compilation = new CompilationBuilder(this);
+ return (*compilation ? ANEURALNETWORKS_NO_ERROR : ANEURALNETWORKS_OUT_OF_MEMORY);
+}
+
+int ModelBuilder::finish() {
+ if (mCompletedModel) {
+ LOG(ERROR) << "ANeuralNetworksModel_finish called more than once";
+ return ANEURALNETWORKS_BAD_STATE;
+ }
+ if (mInvalidModel) {
+ LOG(ERROR) << "ANeuralNetworksModel_finish called on an invalid model";
+ return ANEURALNETWORKS_BAD_STATE;
+ }
+
+ int n = copyLargeValuesToSharedMemory();
+ if (n != ANEURALNETWORKS_NO_ERROR) {
+ return n;
+ }
+
+ // TODO: Modify validation so that it can be called without creating a HAL Model.
+ // NOTE: Must copyLargeValuesToSharedMemory() before validation; otherwise,
+ // a CONSTANT_REFERENCE operand will not have correct .poolIndex, and
+ // validation will not work properly.
+ Model modelForValidation;
+ setHidlModel(&modelForValidation);
+ if (!validateModel(modelForValidation)) {
+ LOG(ERROR) << "ANeuralNetworksModel_finish called on invalid model";
+ mInvalidModel = true;
+ return ANEURALNETWORKS_BAD_DATA;
+ }
+
+ // We sort the operations so that they will be in the appropriate
+ // order for a single-threaded, op at a time execution.
+ // TODO: we don't need this if we always run the partitioner.
+ sortIntoRunOrder();
+ mCompletedModel = true;
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+void ModelBuilder::sortIntoRunOrder() {
+ // Tracks the operations that can be executed.
+ std::vector<uint32_t> opsReadyToRun;
+ std::vector<Operation> runOrder;
+
+ // Tracks how many inputs are needed for each operation to be ready to run.
+ std::multimap<uint32_t, uint32_t> operandToOperations;
+ std::vector<uint32_t> unknownInputCount(operationCount());
+ for (uint32_t operationIndex = 0; operationIndex < operationCount(); operationIndex++) {
+ uint32_t& count = unknownInputCount[operationIndex];
+ count = 0;
+ for (uint32_t operandIndex : mOperations[operationIndex].inputs) {
+ auto lifetime = mOperands[operandIndex].lifetime;
+ if (lifetime == OperandLifeTime::TEMPORARY_VARIABLE ||
+ lifetime == OperandLifeTime::MODEL_OUTPUT) {
+ count++;
+ operandToOperations.insert(
+ std::pair<uint32_t, uint32_t>(operandIndex, operationIndex));
+ }
+ }
+ if (count == 0) {
+ opsReadyToRun.push_back(operationIndex);
+ }
+ }
+
+ while (opsReadyToRun.size() > 0) {
+ // Execute the next op
+ int opIndex = opsReadyToRun.back();
+ opsReadyToRun.pop_back();
+ const Operation& operation = mOperations[opIndex];
+
+ runOrder.push_back(mOperations[opIndex]);
+
+ // Mark all its outputs as known.
+ for (uint32_t operandIndex : operation.outputs) {
+ auto range = operandToOperations.equal_range(operandIndex);
+ for (auto i = range.first; i != range.second; i++) {
+ uint32_t& count = unknownInputCount[i->second];
+ if (--count == 0) {
+ opsReadyToRun.push_back(i->second);
+ }
+ }
+ }
+ }
+ mOperations = runOrder;
+}
+
+void ModelBuilder::setHidlModel(Model* model) const {
+ model->operands = mOperands;
+ model->operations = mOperations;
+ model->inputIndexes = mInputIndexes;
+ model->outputIndexes = mOutputIndexes;
+ model->operandValues = mSmallOperandValues;
+
+ uint32_t count = mMemories.size();
+ model->pools.resize(count);
+ for (uint32_t i = 0; i < count; i++) {
+ model->pools[i] = mMemories[i]->getHidlMemory();
+ }
+}
+
+} // namespace rt
+} // namespace nnfw
diff --git a/runtimes/nn/runtime/ModelBuilder.h b/runtimes/nn/runtime/ModelBuilder.h
new file mode 100644
index 000000000..67d8b77be
--- /dev/null
+++ b/runtimes/nn/runtime/ModelBuilder.h
@@ -0,0 +1,129 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// Class used to build a model through a succession of successive calls
+// to the NN API.
+
+#ifndef __NNFW_RT_MODEL_BUILDER_H__
+#define __NNFW_RT_MODEL_BUILDER_H__
+
+#include "Memory.h"
+#include "NeuralNetworks.h"
+#include "HalInterfaces.h"
+#include "Utils.h"
+
+#include <vector>
+#include <memory>
+
+namespace nnfw {
+namespace rt {
+
+class CompilationBuilder;
+class Memory;
+
+class ModelBuilder {
+public:
+ virtual ~ModelBuilder() {}
+ // Adds an operand to the model.
+ int addOperand(const ANeuralNetworksOperandType& type);
+ int setOperandValue(uint32_t index, const void* buffer, size_t length);
+ int setOperandValueFromMemory(uint32_t index, const Memory* memory, uint32_t offset,
+ size_t length);
+ int addOperation(ANeuralNetworksOperationType type, uint32_t inputCount, const uint32_t* inputs,
+ uint32_t outputCount, const uint32_t* outputs);
+ int identifyInputsAndOutputs(uint32_t inputCount, const uint32_t* inputs, uint32_t outputCount,
+ const uint32_t* outputs);
+
+ int finish();
+ bool isFinished() const { return mCompletedModel; }
+ int createCompilation(CompilationBuilder** compilation);
+ void setHidlModel(Model* model) const;
+ uint32_t operandCount() const {
+ // We don't allow more than uint32_t worth of operands
+ return static_cast<uint32_t>(mOperands.size());
+ }
+ uint32_t operationCount() const {
+ // We don't allow more than uint32_t worth of operations
+ return static_cast<uint32_t>(mOperations.size());
+ }
+
+ uint32_t inputCount() const { return static_cast<uint32_t>(mInputIndexes.size()); }
+ uint32_t outputCount() const { return static_cast<uint32_t>(mOutputIndexes.size()); }
+ uint32_t getInputOperandIndex(uint32_t i) const { return mInputIndexes[i]; }
+ const Operand& getInputOperand(uint32_t i) const {
+ return mOperands[getInputOperandIndex(i)];
+ }
+ uint32_t getOutputOperandIndex(uint32_t i) const { return mOutputIndexes[i]; }
+ const Operand& getOutputOperand(uint32_t i) const {
+ return mOperands[getOutputOperandIndex(i)];
+ }
+ const Operand& getOperand(uint32_t index) const { return mOperands[index]; }
+ const Operation& getOperation(uint32_t index) const { return mOperations[index]; }
+
+ const MemoryTracker& getMemories() const { return mMemories; }
+ const std::vector<Operation>& getOperations() const { return mOperations; }
+ const uint8_t* getPointerToOperandValue(uint32_t offset) const {
+ return mSmallOperandValues.data() + offset;
+ }
+ private:
+ // Return true if either mCompleteModel or mInvalidModel is true.
+ bool badState(const char* name);
+
+ // Sorts the operations to be in the correct order for single threaded
+ // node-at-a-time execution.
+ void sortIntoRunOrder();
+
+ // Copies the large values to a shared memory, if we have any.
+ int copyLargeValuesToSharedMemory();
+ // The operations of the graph.
+ std::vector<Operation> mOperations;
+ // The description of the operands of the graph.
+ std::vector<Operand> mOperands;
+
+ // Specifies where to find the list of indexes identifying
+ // the inputs and outputs of the model. The offset is into
+ // the mOperandIndexes table.
+ std::vector<uint32_t> mInputIndexes;
+ std::vector<uint32_t> mOutputIndexes;
+
+ MemoryTracker mMemories;
+
+ // The value of the small operands that are defined at model
+ // creation time.
+ std::vector<uint8_t> mSmallOperandValues;
+
+ struct LargeValue {
+ uint32_t operandIndex;
+ const void* buffer;
+ };
+ // Operand index and buffer pointer for all the large operand values of this model.
+ std::vector<LargeValue> mLargeOperandValues;
+ // The shared memory region that will contain the large values.
+ Memory mLargeValueMemory;
+ // Once the model has been finished, we should not allow further
+ // modifications to the model.
+ mutable bool mCompletedModel = false;
+
+ // Any invalid manipulation of the model will mark the model invalid.
+ // No further modifications are allowed to the model.
+ mutable bool mInvalidModel = false;
+};
+
+} // namespace rt
+} // namespace nnfw
+
+#endif // __NNFW_RT_MODEL_BUILDER_H__
diff --git a/runtimes/nn/runtime/NeuralNetworks.cpp b/runtimes/nn/runtime/NeuralNetworks.cpp
new file mode 100644
index 000000000..6ef2c91bc
--- /dev/null
+++ b/runtimes/nn/runtime/NeuralNetworks.cpp
@@ -0,0 +1,489 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// Contains all the entry points to the C Neural Networks API.
+// We do basic validation of the operands and then call the class
+// that implements the functionality.
+
+#include "NeuralNetworks.h"
+#include "Callbacks.h"
+#if 0 // TODO-NNRT : If we consider OEM operations, it will enable.
+#include "NeuralNetworksOEM.h"
+#endif
+#include "CompilationBuilder.h"
+#include "ExecutionBuilder.h"
+#include "ModelBuilder.h"
+#include "Memory.h"
+
+#include <memory>
+
+// Make sure the constants defined in the header files have not changed values.
+// IMPORTANT: When adding new values, update kNumberOfDataTypes or kNumberOfDataTypesOEM
+// in Utils.h.
+static_assert(ANEURALNETWORKS_FLOAT32 == 0, "ANEURALNETWORKS_FLOAT32 has changed");
+static_assert(ANEURALNETWORKS_INT32 == 1, "ANEURALNETWORKS_INT32 has changed");
+static_assert(ANEURALNETWORKS_UINT32 == 2, "ANEURALNETWORKS_UINT32 has changed");
+static_assert(ANEURALNETWORKS_TENSOR_FLOAT32 == 3,
+ "ANEURALNETWORKS_TENSOR_FLOAT32 has changed");
+static_assert(ANEURALNETWORKS_TENSOR_INT32 == 4, "ANEURALNETWORKS_TENSOR_INT32 has changed");
+static_assert(ANEURALNETWORKS_TENSOR_QUANT8_ASYMM == 5,
+ "ANEURALNETWORKS_TENSOR_QUANT8_ASYMM has changed");
+#if 0 // TODO-NNRT : If we consider OEM operations, it will enable.
+static_assert(ANEURALNETWORKS_OEM_SCALAR == 10000, "ANEURALNETWORKS_OEM_SCALAR has changed");
+static_assert(ANEURALNETWORKS_TENSOR_OEM_BYTE == 10001,
+ "ANEURALNETWORKS_TENSOR_OEM_BYTE has changed");
+#endif
+// IMPORTANT: When adding new values, update kNumberOfOperationTypes or
+// kNumberOfOperationTypesOEMin Utils.h.
+static_assert(ANEURALNETWORKS_ADD == 0, "ANEURALNETWORKS_ADD has changed");
+static_assert(ANEURALNETWORKS_AVERAGE_POOL_2D == 1,
+ "ANEURALNETWORKS_AVERAGE_POOL_2D has changed");
+static_assert(ANEURALNETWORKS_CONCATENATION == 2, "ANEURALNETWORKS_CONCATENATION has changed");
+static_assert(ANEURALNETWORKS_CONV_2D == 3, "ANEURALNETWORKS_CONV_2D has changed");
+static_assert(ANEURALNETWORKS_DEPTHWISE_CONV_2D == 4,
+ "ANEURALNETWORKS_DEPTHWISE_CONV_2D has changed");
+static_assert(ANEURALNETWORKS_DEPTH_TO_SPACE == 5,
+ "ANEURALNETWORKS_DEPTH_TO_SPACE has changed");
+static_assert(ANEURALNETWORKS_DEQUANTIZE == 6, "ANEURALNETWORKS_DEQUANTIZE has changed");
+static_assert(ANEURALNETWORKS_EMBEDDING_LOOKUP == 7,
+ "ANEURALNETWORKS_EMBEDDING_LOOKUP has changed");
+static_assert(ANEURALNETWORKS_FLOOR == 8, "ANEURALNETWORKS_FLOOR has changed");
+static_assert(ANEURALNETWORKS_FULLY_CONNECTED == 9,
+ "ANEURALNETWORKS_FULLY_CONNECTED has changed");
+static_assert(ANEURALNETWORKS_HASHTABLE_LOOKUP == 10,
+ "ANEURALNETWORKS_HASHTABLE_LOOKUP has changed");
+static_assert(ANEURALNETWORKS_L2_NORMALIZATION == 11,
+ "ANEURALNETWORKS_L2_NORMALIZATION has changed");
+static_assert(ANEURALNETWORKS_L2_POOL_2D == 12, "ANEURALNETWORKS_L2_POOL has changed");
+static_assert(ANEURALNETWORKS_LOCAL_RESPONSE_NORMALIZATION == 13,
+ "ANEURALNETWORKS_LOCAL_RESPONSE_NORMALIZATION has changed");
+static_assert(ANEURALNETWORKS_LOGISTIC == 14, "ANEURALNETWORKS_LOGISTIC has changed");
+static_assert(ANEURALNETWORKS_LSH_PROJECTION == 15,
+ "ANEURALNETWORKS_LSH_PROJECTION has changed");
+static_assert(ANEURALNETWORKS_LSTM == 16, "ANEURALNETWORKS_LSTM has changed");
+static_assert(ANEURALNETWORKS_MAX_POOL_2D == 17, "ANEURALNETWORKS_MAX_POOL has changed");
+static_assert(ANEURALNETWORKS_MUL == 18, "ANEURALNETWORKS_MUL has changed");
+static_assert(ANEURALNETWORKS_RELU == 19, "ANEURALNETWORKS_RELU has changed");
+static_assert(ANEURALNETWORKS_RELU1 == 20, "ANEURALNETWORKS_RELU1 has changed");
+static_assert(ANEURALNETWORKS_RELU6 == 21, "ANEURALNETWORKS_RELU6 has changed");
+static_assert(ANEURALNETWORKS_RESHAPE == 22, "ANEURALNETWORKS_RESHAPE has changed");
+static_assert(ANEURALNETWORKS_RESIZE_BILINEAR == 23,
+ "ANEURALNETWORKS_RESIZE_BILINEAR has changed");
+static_assert(ANEURALNETWORKS_RNN == 24, "ANEURALNETWORKS_RNN has changed");
+static_assert(ANEURALNETWORKS_SOFTMAX == 25, "ANEURALNETWORKS_SOFTMAX has changed");
+static_assert(ANEURALNETWORKS_SPACE_TO_DEPTH == 26,
+ "ANEURALNETWORKS_SPACE_TO_DEPTH has changed");
+static_assert(ANEURALNETWORKS_SVDF == 27, "ANEURALNETWORKS_SVDF has changed");
+static_assert(ANEURALNETWORKS_TANH == 28, "ANEURALNETWORKS_TANH has changed");
+#if 0 // TODO-NNRT : If we consider OEM operations, it will enable.
+static_assert(ANEURALNETWORKS_OEM_OPERATION == 10000,
+ "ANEURALNETWORKS_OEM_OPERATION has changed");
+#endif
+static_assert(ANEURALNETWORKS_FUSED_NONE == 0, "ANEURALNETWORKS_FUSED_NONE has changed");
+static_assert(ANEURALNETWORKS_FUSED_RELU == 1, "ANEURALNETWORKS_FUSED_RELU has changed");
+static_assert(ANEURALNETWORKS_FUSED_RELU1 == 2, "ANEURALNETWORKS_FUSED_RELU1 has changed");
+static_assert(ANEURALNETWORKS_FUSED_RELU6 == 3, "ANEURALNETWORKS_FUSED_RELU6 has changed");
+
+static_assert(ANEURALNETWORKS_PREFER_LOW_POWER == 0,
+ "ANEURALNETWORKS_PREFER_LOW_POWER has changed");
+static_assert(ANEURALNETWORKS_PREFER_FAST_SINGLE_ANSWER == 1,
+ "ANEURALNETWORKS_PREFER_FAST_SINGLE_ANSWER has changed");
+static_assert(ANEURALNETWORKS_PREFER_SUSTAINED_SPEED == 2,
+ "ANEURALNETWORKS_PREFER_SUSTAINED_SPEED has changed");
+
+static_assert(ANEURALNETWORKS_NO_ERROR == 0, "ANEURALNETWORKS_NO_ERROR has changed");
+static_assert(ANEURALNETWORKS_OUT_OF_MEMORY == 1, "ANEURALNETWORKS_OUT_OF_MEMORY has changed");
+static_assert(ANEURALNETWORKS_INCOMPLETE == 2, "ANEURALNETWORKS_INCOMPLETE has changed");
+static_assert(ANEURALNETWORKS_UNEXPECTED_NULL == 3,
+ "ANEURALNETWORKS_UNEXPECTED_NULL has changed");
+static_assert(ANEURALNETWORKS_BAD_DATA == 4, "ANEURALNETWORKS_BAD_DATA has changed");
+static_assert(ANEURALNETWORKS_OP_FAILED == 5, "ANEURALNETWORKS_OP_FAILED has changed");
+static_assert(ANEURALNETWORKS_BAD_STATE == 6, "ANEURALNETWORKS_BAD_STATE has changed");
+
+static_assert(ANEURALNETWORKS_MAX_SIZE_OF_IMMEDIATELY_COPIED_VALUES == 128,
+ "ANEURALNETWORKS_MAX_SIZE_OF_IMMEDIATELY_COPIED_VALUES has changed");
+
+// Make sure that the constants are compatible with the values defined in
+// hardware/interfaces/neuralnetworks/1.0/types.hal.
+#if 0 // TODO-NNRT : If we consider OEM operations, it will enable.
+static_assert(static_cast<int32_t>(OperandType::OEM) == ANEURALNETWORKS_OEM_SCALAR,
+ "OEM != ANEURALNETWORKS_OEM");
+#endif
+static_assert(static_cast<int32_t>(OperandType::FLOAT32) == ANEURALNETWORKS_FLOAT32,
+ "FLOAT32 != ANEURALNETWORKS_FLOAT32");
+static_assert(static_cast<int32_t>(OperandType::INT32) == ANEURALNETWORKS_INT32,
+ "INT32 != ANEURALNETWORKS_INT32");
+static_assert(static_cast<int32_t>(OperandType::UINT32) == ANEURALNETWORKS_UINT32,
+ "UINT32 != ANEURALNETWORKS_UINT32");
+#if 0 // TODO-NNRT : If we consider OEM operations, it will enable.
+static_assert(static_cast<int32_t>(OperandType::TENSOR_OEM_BYTE) == ANEURALNETWORKS_TENSOR_OEM_BYTE,
+ "TENSOR_OEM_BYTE != ANEURALNETWORKS_TENSOR_OEM_BYTE");
+#endif
+static_assert(static_cast<int32_t>(OperandType::TENSOR_FLOAT32) == ANEURALNETWORKS_TENSOR_FLOAT32,
+ "TENSOR_FLOAT32 != ANEURALNETWORKS_TENSOR_FLOAT32");
+static_assert(static_cast<int32_t>(OperandType::TENSOR_QUANT8_ASYMM) ==
+ ANEURALNETWORKS_TENSOR_QUANT8_ASYMM,
+ "TENSOR_QUANT8_ASYMM != ANEURALNETWORKS_TENSOR_QUANT8_ASYMM");
+
+static_assert(static_cast<int32_t>(OperationType::ADD) == ANEURALNETWORKS_ADD,
+ "OperationType::ADD != ANEURALNETWORKS_ADD");
+static_assert(static_cast<int32_t>(OperationType::AVERAGE_POOL_2D) ==
+ ANEURALNETWORKS_AVERAGE_POOL_2D,
+ "OperationType::AVERAGE_POOL_2D != ANEURALNETWORKS_AVERAGE_POOL_2D");
+static_assert(static_cast<int32_t>(OperationType::CONV_2D) == ANEURALNETWORKS_CONV_2D,
+ "OperationType::CONV_2D != ANEURALNETWORKS_CONV_2D");
+static_assert(static_cast<int32_t>(OperationType::DEPTHWISE_CONV_2D) ==
+ ANEURALNETWORKS_DEPTHWISE_CONV_2D,
+ "OperationType::DEPTHWISE_CONV_2D != ANEURALNETWORKS_DEPTHWISE_CONV_2D");
+static_assert(static_cast<int32_t>(OperationType::DEPTH_TO_SPACE) ==
+ ANEURALNETWORKS_DEPTH_TO_SPACE,
+ "OperationType::DEPTH_TO_SPACE != ANEURALNETWORKS_DEPTH_TO_SPACE");
+static_assert(static_cast<int32_t>(OperationType::DEQUANTIZE) == ANEURALNETWORKS_DEQUANTIZE,
+ "OperationType::DEQUANTIZE != ANEURALNETWORKS_DEQUANTIZE");
+static_assert(static_cast<int32_t>(OperationType::EMBEDDING_LOOKUP) ==
+ ANEURALNETWORKS_EMBEDDING_LOOKUP,
+ "OperationType::EMBEDDING_LOOKUP != ANEURALNETWORKS_EMBEDDING_LOOKUP");
+static_assert(static_cast<int32_t>(OperationType::FLOOR) == ANEURALNETWORKS_FLOOR,
+ "OperationType::FLOOR != ANEURALNETWORKS_FLOOR");
+static_assert(static_cast<int32_t>(OperationType::FULLY_CONNECTED) ==
+ ANEURALNETWORKS_FULLY_CONNECTED,
+ "OperationType::FULLY_CONNECTED != ANEURALNETWORKS_FULLY_CONNECTED");
+static_assert(static_cast<int32_t>(OperationType::HASHTABLE_LOOKUP) ==
+ ANEURALNETWORKS_HASHTABLE_LOOKUP,
+ "OperationType::HASHTABLE_LOOKUP != ANEURALNETWORKS_HASHTABLE_LOOKUP");
+static_assert(static_cast<int32_t>(OperationType::L2_NORMALIZATION) ==
+ ANEURALNETWORKS_L2_NORMALIZATION,
+ "OperationType::L2_NORMALIZATION != ANEURALNETWORKS_L2_NORMALIZATION");
+static_assert(static_cast<int32_t>(OperationType::L2_POOL_2D) == ANEURALNETWORKS_L2_POOL_2D,
+ "OperationType::L2_POOL_2D != ANEURALNETWORKS_L2_POOL_2D");
+static_assert(static_cast<int32_t>(OperationType::LOCAL_RESPONSE_NORMALIZATION) ==
+ ANEURALNETWORKS_LOCAL_RESPONSE_NORMALIZATION,
+ "OperationType::LOCAL_RESPONSE_NORMALIZATION != "
+ "ANEURALNETWORKS_LOCAL_RESPONSE_NORMALIZATION");
+static_assert(static_cast<int32_t>(OperationType::LOGISTIC) == ANEURALNETWORKS_LOGISTIC,
+ "OperationType::LOGISTIC != ANEURALNETWORKS_LOGISTIC");
+static_assert(static_cast<int32_t>(OperationType::LSH_PROJECTION) ==
+ ANEURALNETWORKS_LSH_PROJECTION,
+ "OperationType::LSH_PROJECTION != ANEURALNETWORKS_LSH_PROJECTION");
+static_assert(static_cast<int32_t>(OperationType::LSTM) == ANEURALNETWORKS_LSTM,
+ "OperationType::LSTM != ANEURALNETWORKS_LSTM");
+static_assert(static_cast<int32_t>(OperationType::MAX_POOL_2D) == ANEURALNETWORKS_MAX_POOL_2D,
+ "OperationType::MAX_POOL_2D != ANEURALNETWORKS_MAX_POOL_2D");
+static_assert(static_cast<int32_t>(OperationType::MUL) == ANEURALNETWORKS_MUL,
+ "OperationType::MUL != ANEURALNETWORKS_MUL");
+static_assert(static_cast<int32_t>(OperationType::RELU) == ANEURALNETWORKS_RELU,
+ "OperationType::RELU != ANEURALNETWORKS_RELU");
+static_assert(static_cast<int32_t>(OperationType::RELU1) == ANEURALNETWORKS_RELU1,
+ "OperationType::RELU1 != ANEURALNETWORKS_RELU1");
+static_assert(static_cast<int32_t>(OperationType::RELU6) == ANEURALNETWORKS_RELU6,
+ "OperationType::RELU6 != ANEURALNETWORKS_RELU6");
+static_assert(static_cast<int32_t>(OperationType::RESHAPE) == ANEURALNETWORKS_RESHAPE,
+ "OperationType::RESHAPE != ANEURALNETWORKS_RESHAPE");
+static_assert(static_cast<int32_t>(OperationType::RESIZE_BILINEAR) ==
+ ANEURALNETWORKS_RESIZE_BILINEAR,
+ "OperationType::RESIZE_BILINEAR != ANEURALNETWORKS_RESIZE_BILINEAR");
+static_assert(static_cast<int32_t>(OperationType::RNN) == ANEURALNETWORKS_RNN,
+ "OperationType::RNN != ANEURALNETWORKS_RNN");
+static_assert(static_cast<int32_t>(OperationType::SOFTMAX) == ANEURALNETWORKS_SOFTMAX,
+ "OperationType::SOFTMAX != ANEURALNETWORKS_SOFTMAX");
+static_assert(static_cast<int32_t>(OperationType::SPACE_TO_DEPTH) ==
+ ANEURALNETWORKS_SPACE_TO_DEPTH,
+ "OperationType::SPACE_TO_DEPTH != ANEURALNETWORKS_SPACE_TO_DEPTH");
+static_assert(static_cast<int32_t>(OperationType::SVDF) == ANEURALNETWORKS_SVDF,
+ "OperationType::SVDF != ANEURALNETWORKS_SVDF");
+static_assert(static_cast<int32_t>(OperationType::TANH) == ANEURALNETWORKS_TANH,
+ "OperationType::TANH != ANEURALNETWORKS_TANH");
+
+static_assert(static_cast<int32_t>(FusedActivationFunc::NONE) == ANEURALNETWORKS_FUSED_NONE,
+ "FusedActivationFunc::NONE != ANEURALNETWORKS_FUSED_NONE");
+static_assert(static_cast<int32_t>(FusedActivationFunc::RELU) == ANEURALNETWORKS_FUSED_RELU,
+ "FusedActivationFunc::RELU != ANEURALNETWORKS_FUSED_RELU");
+static_assert(static_cast<int32_t>(FusedActivationFunc::RELU1) == ANEURALNETWORKS_FUSED_RELU1,
+ "FusedActivationFunc::RELU1 != ANEURALNETWORKS_FUSED_RELU1");
+static_assert(static_cast<int32_t>(FusedActivationFunc::RELU6) == ANEURALNETWORKS_FUSED_RELU6,
+ "FusedActivationFunc::RELU6 != ANEURALNETWORKS_FUSED_RELU6");
+
+using android::sp;
+using namespace nnfw::rt;
+
+int ANeuralNetworksMemory_createFromFd(size_t size, int prot, int fd, size_t offset,
+ ANeuralNetworksMemory** memory) {
+ *memory = nullptr;
+ std::unique_ptr<MemoryFd> m = std::make_unique<MemoryFd>();
+ if (m == nullptr) {
+ return ANEURALNETWORKS_OUT_OF_MEMORY;
+ }
+ int n = m->set(size, prot, fd, offset);
+ if (n != ANEURALNETWORKS_NO_ERROR) {
+ return n;
+ }
+ *memory = reinterpret_cast<ANeuralNetworksMemory*>(m.release());
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+void ANeuralNetworksMemory_free(ANeuralNetworksMemory* memory) {
+ // No validation. Free of nullptr is valid.
+ Memory* m = reinterpret_cast<Memory*>(memory);
+ delete m;
+}
+
+int ANeuralNetworksModel_create(ANeuralNetworksModel** model) {
+ if (!model) {
+ LOG(ERROR) << "ANeuralNetworksModel_create passed a nullptr";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+ ModelBuilder* m = new ModelBuilder();
+ if (m == nullptr) {
+ *model = nullptr;
+ return ANEURALNETWORKS_OUT_OF_MEMORY;
+ }
+ *model = reinterpret_cast<ANeuralNetworksModel*>(m);
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+void ANeuralNetworksModel_free(ANeuralNetworksModel* model) {
+ // No validation. Free of nullptr is valid.
+ ModelBuilder* m = reinterpret_cast<ModelBuilder*>(model);
+ delete m;
+}
+
+int ANeuralNetworksModel_finish(ANeuralNetworksModel* model) {
+ if (!model) {
+ LOG(ERROR) << "ANeuralNetworksModel_finish passed a nullptr";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+ ModelBuilder* m = reinterpret_cast<ModelBuilder*>(model);
+ return m->finish();
+}
+
+int ANeuralNetworksModel_addOperand(ANeuralNetworksModel* model,
+ const ANeuralNetworksOperandType* type) {
+ if (!model || !type) {
+ LOG(ERROR) << "ANeuralNetworksModel_addOperand passed a nullptr";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+ ModelBuilder* m = reinterpret_cast<ModelBuilder*>(model);
+ return m->addOperand(*type);
+}
+
+int ANeuralNetworksModel_setOperandValue(ANeuralNetworksModel* model, int32_t index,
+ const void* buffer, size_t length) {
+ if (!model || !buffer) {
+ LOG(ERROR) << "ANeuralNetworksModel_setOperandValue passed a nullptr";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+ ModelBuilder* m = reinterpret_cast<ModelBuilder*>(model);
+ return m->setOperandValue(index, buffer, length);
+}
+
+int ANeuralNetworksModel_setOperandValueFromMemory(ANeuralNetworksModel* model, int32_t index,
+ const ANeuralNetworksMemory* memory,
+ size_t offset, size_t length) {
+ if (!model || !memory) {
+ LOG(ERROR) << "ANeuralNetworksModel_setOperandValue passed a nullptr";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+ const Memory* mem = reinterpret_cast<const Memory*>(memory);
+ ModelBuilder* m = reinterpret_cast<ModelBuilder*>(model);
+ return m->setOperandValueFromMemory(index, mem, offset, length);
+}
+
+int ANeuralNetworksModel_addOperation(ANeuralNetworksModel* model,
+ ANeuralNetworksOperationType type, uint32_t inputCount,
+ const uint32_t* inputs, uint32_t outputCount,
+ const uint32_t* outputs) {
+ if (!model || !inputs || !outputs) {
+ LOG(ERROR) << "ANeuralNetworksModel_addOperation passed a nullptr";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+ ModelBuilder* m = reinterpret_cast<ModelBuilder*>(model);
+ return m->addOperation(type, inputCount, inputs, outputCount, outputs);
+}
+
+int ANeuralNetworksModel_identifyInputsAndOutputs(ANeuralNetworksModel* model, uint32_t inputCount,
+ const uint32_t* inputs, uint32_t outputCount,
+ const uint32_t* outputs) {
+ if (!model || !inputs || !outputs) {
+ LOG(ERROR) << ("ANeuralNetworksModel_identifyInputsAndOutputs passed a nullptr");
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+ ModelBuilder* m = reinterpret_cast<ModelBuilder*>(model);
+ return m->identifyInputsAndOutputs(inputCount, inputs, outputCount, outputs);
+}
+
+int ANeuralNetworksCompilation_create(ANeuralNetworksModel* model,
+ ANeuralNetworksCompilation** compilation) {
+ if (!model || !compilation) {
+ LOG(ERROR) << "ANeuralNetworksCompilation_create passed a nullptr";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+
+ ModelBuilder* m = reinterpret_cast<ModelBuilder*>(model);
+ CompilationBuilder* c = nullptr;
+ int result = m->createCompilation(&c);
+ *compilation = reinterpret_cast<ANeuralNetworksCompilation*>(c);
+ return result;
+}
+
+void ANeuralNetworksCompilation_free(ANeuralNetworksCompilation* compilation) {
+ // No validation. Free of nullptr is valid.
+ // TODO specification says that a compilation-in-flight can be deleted
+ CompilationBuilder* c = reinterpret_cast<CompilationBuilder*>(compilation);
+ delete c;
+}
+
+int ANeuralNetworksCompilation_setPreference(ANeuralNetworksCompilation* compilation,
+ int32_t preference) {
+ if (!compilation) {
+ LOG(ERROR) << "ANeuralNetworksCompilation_setPreference passed a nullptr";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+ CompilationBuilder* c = reinterpret_cast<CompilationBuilder*>(compilation);
+ return c->setPreference(preference);
+}
+
+int ANeuralNetworksCompilation_finish(ANeuralNetworksCompilation* compilation) {
+ if (!compilation) {
+ LOG(ERROR) << "ANeuralNetworksCompilation_finish passed a nullptr";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+ CompilationBuilder* c = reinterpret_cast<CompilationBuilder*>(compilation);
+ return c->finish();
+}
+
+int ANeuralNetworksExecution_create(ANeuralNetworksCompilation* compilation,
+ ANeuralNetworksExecution** execution) {
+ if (!compilation || !execution) {
+ LOG(ERROR) << "ANeuralNetworksExecution_create passed a nullptr";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+
+ CompilationBuilder* c = reinterpret_cast<CompilationBuilder*>(compilation);
+ ExecutionBuilder* r = nullptr;
+ int result = c->createExecution(&r);
+ *execution = reinterpret_cast<ANeuralNetworksExecution*>(r);
+ return result;
+}
+
+void ANeuralNetworksExecution_free(ANeuralNetworksExecution* execution) {
+ // TODO specification says that an execution-in-flight can be deleted
+ // No validation. Free of nullptr is valid.
+ ExecutionBuilder* r = reinterpret_cast<ExecutionBuilder*>(execution);
+ delete r;
+}
+
+int ANeuralNetworksExecution_setInput(ANeuralNetworksExecution* execution, int32_t index,
+ const ANeuralNetworksOperandType* type, const void* buffer,
+ size_t length) {
+ if (!execution) {
+ LOG(ERROR) << "ANeuralNetworksExecution_setInput passed execution with a nullptr";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+ if (!buffer && length != 0) {
+ LOG(ERROR) << "ANeuralNetworksExecution_setInput passed buffer with a nullptr";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+
+ ExecutionBuilder* r = reinterpret_cast<ExecutionBuilder*>(execution);
+ return r->setInput(index, type, buffer, length);
+}
+
+int ANeuralNetworksExecution_setInputFromMemory(ANeuralNetworksExecution* execution, int32_t index,
+ const ANeuralNetworksOperandType* type,
+ const ANeuralNetworksMemory* memory, size_t offset,
+ size_t length) {
+ if (!execution || !memory) {
+ LOG(ERROR) << "ANeuralNetworksExecution_setInputFromMemory passed a nullptr";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+
+ const Memory* m = reinterpret_cast<const Memory*>(memory);
+ ExecutionBuilder* r = reinterpret_cast<ExecutionBuilder*>(execution);
+ return r->setInputFromMemory(index, type, m, offset, length);
+}
+
+int ANeuralNetworksExecution_setOutput(ANeuralNetworksExecution* execution, int32_t index,
+ const ANeuralNetworksOperandType* type, void* buffer,
+ size_t length) {
+ if (!execution || !buffer) {
+ LOG(ERROR) << "ANeuralNetworksExecution_setOutput passed a nullptr";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+ ExecutionBuilder* r = reinterpret_cast<ExecutionBuilder*>(execution);
+ return r->setOutput(index, type, buffer, length);
+}
+
+int ANeuralNetworksExecution_setOutputFromMemory(ANeuralNetworksExecution* execution, int32_t index,
+ const ANeuralNetworksOperandType* type,
+ const ANeuralNetworksMemory* memory, size_t offset,
+ size_t length) {
+ if (!execution || !memory) {
+ LOG(ERROR) << "ANeuralNetworksExecution_setOutputFromMemory passed a nullptr";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+
+ ExecutionBuilder* r = reinterpret_cast<ExecutionBuilder*>(execution);
+ const Memory* m = reinterpret_cast<const Memory*>(memory);
+ return r->setOutputFromMemory(index, type, m, offset, length);
+}
+
+int ANeuralNetworksExecution_startCompute(ANeuralNetworksExecution* execution,
+ ANeuralNetworksEvent** event) {
+ if (!execution || !event) {
+ LOG(ERROR) << "ANeuralNetworksExecution_startCompute passed a nullptr";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+ // TODO validate the rest
+
+ ExecutionBuilder* r = reinterpret_cast<ExecutionBuilder*>(execution);
+
+ // Dynamically allocate an sp to wrap an ExecutionCallback, seen in the NN
+ // API as an abstract event object. The sp<ExecutionCallback> object is
+ // returned when the execution has been successfully launched, otherwise a
+ // nullptr is returned. The sp is used for ref-counting purposes. Without
+ // it, the HIDL service could attempt to communicate with a dead callback
+ // object.
+ std::unique_ptr<sp<ExecutionCallback>> e = std::make_unique<sp<ExecutionCallback>>();
+ *event = nullptr;
+
+ int n = r->startCompute(e.get());
+ if (n != ANEURALNETWORKS_NO_ERROR) {
+ return n;
+ }
+ *event = reinterpret_cast<ANeuralNetworksEvent*>(e.release());
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+int ANeuralNetworksEvent_wait(ANeuralNetworksEvent* event) {
+ if (event == nullptr) {
+ LOG(ERROR) << "ANeuralNetworksEvent_wait passed a nullptr";
+ return ANEURALNETWORKS_UNEXPECTED_NULL;
+ }
+
+ sp<ExecutionCallback>* e = reinterpret_cast<sp<ExecutionCallback>*>(event);
+ (*e)->wait();
+ return ANEURALNETWORKS_NO_ERROR;
+}
+
+void ANeuralNetworksEvent_free(ANeuralNetworksEvent* event) {
+ // No validation. Free of nullptr is valid.
+ if (event) {
+ sp<ExecutionCallback>* e = reinterpret_cast<sp<ExecutionCallback>*>(event);
+ (*e)->wait();
+ delete e;
+ }
+}
diff --git a/runtimes/tests/CMakeLists.txt b/runtimes/tests/CMakeLists.txt
new file mode 100644
index 000000000..a5e1047c0
--- /dev/null
+++ b/runtimes/tests/CMakeLists.txt
@@ -0,0 +1,8 @@
+set(NNRUNTIME_TEST_INC_COMMON ${NNFW_INCLUDE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/include
+)
+
+add_subdirectory(bring_up_test)
+if (BUILD_ANDROID_NN_RUNTIME_TEST)
+ add_subdirectory(neural_networks_test)
+endif()
diff --git a/runtimes/tests/bring_up_test/CMakeLists.txt b/runtimes/tests/bring_up_test/CMakeLists.txt
new file mode 100644
index 000000000..d9c108574
--- /dev/null
+++ b/runtimes/tests/bring_up_test/CMakeLists.txt
@@ -0,0 +1,22 @@
+# Executable `runtime_run` (Dummy runner executable using NN API)
+SET (TEST_SRCS add_main.cpp)
+add_executable(runtime_run_add ${TEST_SRCS})
+target_include_directories(runtime_run_add PRIVATE ${NNRUNTIME_TEST_INC_COMMON})
+target_link_libraries(runtime_run_add ${LIB_RUNTIME})
+target_link_libraries(runtime_run_add ${LIB_PTHREAD})
+
+# Executable `runtime_run_cplusplus` (Dummy runner executable using C++ wrapper)
+SET (TEST_SRCS cplusplus_main.cpp)
+add_executable(runtime_run_cplusplus ${TEST_SRCS})
+target_include_directories(runtime_run_cplusplus PRIVATE ${NNRUNTIME_TEST_INC_COMMON})
+target_link_libraries(runtime_run_cplusplus ${LIB_RUNTIME})
+target_link_libraries(runtime_run_cplusplus ${LIB_PTHREAD})
+
+# Executable `runtime_sample_run` (Dummy runner executable for simple testing bring-up stage)
+SET (SAMPLE_SRCS simple_model_main.cpp
+ simple_model.cpp)
+add_executable(runtime_run_simple_model ${SAMPLE_SRCS})
+target_include_directories(runtime_run_simple_model PRIVATE ${NNRUNTIME_TEST_INC_COMMON})
+target_include_directories(runtime_run_simple_model PRIVATE ${NNFW_NN_RUNTIME_ROOT}/depend/libcutils/include)
+target_link_libraries(runtime_run_simple_model ${LIB_RUNTIME})
+target_link_libraries(runtime_run_simple_model ${LIB_PTHREAD})
diff --git a/runtimes/tests/bring_up_test/add_main.cpp b/runtimes/tests/bring_up_test/add_main.cpp
new file mode 100644
index 000000000..32a1884e4
--- /dev/null
+++ b/runtimes/tests/bring_up_test/add_main.cpp
@@ -0,0 +1,117 @@
+#include "NeuralNetworks.h"
+
+#include <iostream>
+
+template <typename T>
+void printValue(T value[][4])
+{
+ for(int y = 0; y < 3; y++)
+ {
+ std::cout << "[";
+ for(int x = 0; x < 4; x++)
+ {
+ std::cout << value[y][x] << " ";
+ }
+ std::cout << "] ";
+ }
+ std::cout << std::endl;
+}
+
+int main()
+{
+ // This is a simple test for bring-up stage
+ // TODO Remove this file when we have unit tests ready.
+
+ // Create model
+ ANeuralNetworksModel* model = NULL;
+ ANeuralNetworksModel_create(&model);
+
+ // Example : 3x4 ADD 3x4
+ // Define operand type
+ ANeuralNetworksOperandType tensor3x4Type;
+ tensor3x4Type.type = ANEURALNETWORKS_TENSOR_FLOAT32;
+ tensor3x4Type.scale = 0.f; // These fields are useful for quantized tensors.
+ tensor3x4Type.zeroPoint = 0; // These fields are useful for quantized tensors.
+ tensor3x4Type.dimensionCount = 2;
+ uint32_t dims[2] = {3, 4};
+ tensor3x4Type.dimensions = dims;
+
+ // Define Acivation
+ ANeuralNetworksOperandType activationType;
+ activationType.type = ANEURALNETWORKS_INT32;
+ activationType.scale = 0.f;
+ activationType.zeroPoint = 0;
+ activationType.dimensionCount = 0;
+ activationType.dimensions = NULL;
+
+ // Add operand
+ ANeuralNetworksModel_addOperand(model, &tensor3x4Type); // operand 0
+ ANeuralNetworksModel_addOperand(model, &tensor3x4Type); // operand 1
+ ANeuralNetworksModel_addOperand(model, &activationType); // operand 2, activation
+
+ ANeuralNetworksModel_addOperand(model, &tensor3x4Type); // operand 3, output
+
+ // Set operand value
+ float opValue[3][4] = {{2,3,4,5},{2,3,4,5},{2,3,4,5}};
+
+ ANeuralNetworksModel_setOperandValue(model, 1, &opValue, sizeof(opValue));
+
+ // Set activation
+ int32_t nonValue = ANEURALNETWORKS_FUSED_NONE;
+ ANeuralNetworksModel_setOperandValue(model, 2, &nonValue, sizeof(nonValue));
+
+ // Add operation
+ uint32_t addInputIndexes[3] = {1, 0, 2};
+ uint32_t addOutputIndexes[1] = {3};
+ ANeuralNetworksModel_addOperation(model, ANEURALNETWORKS_ADD, 3, addInputIndexes, 1, addOutputIndexes);
+
+ // Add input/output
+ uint32_t modelInputIndexes[1] = {0};
+ uint32_t modelOutputIndexes[1] = {3};
+ ANeuralNetworksModel_identifyInputsAndOutputs(model, 1, modelInputIndexes, 1, modelOutputIndexes);
+
+ // Finish model
+ ANeuralNetworksModel_finish(model);
+
+ // Compile model
+ ANeuralNetworksCompilation* compilation;
+ ANeuralNetworksCompilation_create(model, &compilation);
+
+ ANeuralNetworksCompilation_setPreference(compilation, ANEURALNETWORKS_PREFER_LOW_POWER);
+
+ ANeuralNetworksCompilation_finish(compilation);
+
+ // Execute model
+ ANeuralNetworksExecution* run = NULL;
+ ANeuralNetworksExecution_create(compilation, &run);
+
+ float myInput[3][4] = {{1,2,3,4},{1,2,3,4},{1,2,3,4}};
+ ANeuralNetworksExecution_setInput(run, 0, NULL, myInput, sizeof(myInput));
+
+ float myOutput[3][4];
+ ANeuralNetworksExecution_setOutput(run, 0, NULL, myOutput, sizeof(myOutput));
+
+ // Set event and run
+ ANeuralNetworksEvent* run_end = NULL;
+ ANeuralNetworksExecution_startCompute(run, &run_end);
+
+ ANeuralNetworksEvent_wait(run_end);
+ ANeuralNetworksEvent_free(run_end);
+
+ // CleanUp
+ ANeuralNetworksExecution_free(run);
+ ANeuralNetworksCompilation_free(compilation);
+ ANeuralNetworksModel_free(model);
+
+ // Print
+ std::cout << "my input :" << std::endl;
+ printValue(myInput);
+
+ std::cout << "op value :" << std::endl;
+ printValue(opValue);
+
+ std::cout << "my output :" << std::endl;
+ printValue(myOutput);
+
+ return 0;
+}
diff --git a/runtimes/tests/bring_up_test/cplusplus_main.cpp b/runtimes/tests/bring_up_test/cplusplus_main.cpp
new file mode 100644
index 000000000..8467ea16c
--- /dev/null
+++ b/runtimes/tests/bring_up_test/cplusplus_main.cpp
@@ -0,0 +1,16 @@
+#include "NeuralNetworksWrapper.h"
+
+using namespace nnfw::rt::wrapper;
+
+int main()
+{
+ // This is a simple test for bring-up stage
+ // TODO Remove this file when we have unit tests ready.
+
+ // Create model
+ Model model;
+
+ model.finish();
+
+ return 0;
+}
diff --git a/runtimes/tests/bring_up_test/simple_model.cpp b/runtimes/tests/bring_up_test/simple_model.cpp
new file mode 100644
index 000000000..86d34dbce
--- /dev/null
+++ b/runtimes/tests/bring_up_test/simple_model.cpp
@@ -0,0 +1,469 @@
+/**
+ * Copyright 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "simple_model.h"
+
+#include <cutils/ashmem.h>
+#include <sys/mman.h>
+#include <string>
+#include <unistd.h>
+#include <iostream>
+
+/**
+ * SimpleModel Constructor.
+ *
+ * Initialize the member variables, including the shared memory objects.
+ */
+SimpleModel::SimpleModel(size_t size, int protect, int fd, size_t offset) :
+ model_(nullptr),
+ compilation_(nullptr),
+ dimLength_(TENSOR_SIZE),
+ modelDataFd_(fd),
+ offset_(offset) {
+ tensorSize_ = dimLength_;
+ inputTensor1_.resize(tensorSize_);
+
+ // Create ANeuralNetworksMemory from a file containing the trained data.
+ int32_t status = ANeuralNetworksMemory_createFromFd(size + offset, protect, fd, 0,
+ &memoryModel_);
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksMemory_createFromFd failed for trained weights" << std::endl;
+ return;
+ }
+
+ // Create ASharedMemory to hold the data for the second input tensor and output output tensor.
+ inputTensor2Fd_ = ashmem_create_region("input2", tensorSize_ * sizeof(float));
+ outputTensorFd_ = ashmem_create_region("output", tensorSize_ * sizeof(float));
+
+ // Create ANeuralNetworksMemory objects from the corresponding ASharedMemory objects.
+ status = ANeuralNetworksMemory_createFromFd(tensorSize_ * sizeof(float),
+ PROT_READ,
+ inputTensor2Fd_, 0,
+ &memoryInput2_);
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksMemory_createFromFd failed for Input2" << std::endl;
+ return;
+ }
+ status = ANeuralNetworksMemory_createFromFd(tensorSize_ * sizeof(float),
+ PROT_READ | PROT_WRITE,
+ outputTensorFd_, 0,
+ &memoryOutput_);
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksMemory_createFromFd failed for Output" << std::endl;
+ return;
+ }
+}
+
+/**
+ * Create a graph that consists of three operations: two additions and a
+ * multiplication.
+ * The sums created by the additions are the inputs to the multiplication. In
+ * essence, we are creating a graph that computes:
+ * (tensor0 + tensor1) * (tensor2 + tensor3).
+ *
+ * tensor0 ---+
+ * +--- ADD ---> intermediateOutput0 ---+
+ * tensor1 ---+ |
+ * +--- MUL---> output
+ * tensor2 ---+ |
+ * +--- ADD ---> intermediateOutput1 ---+
+ * tensor3 ---+
+ *
+ * Two of the four tensors, tensor0 and tensor2 being added are constants, defined in the
+ * model. They represent the weights that would have been learned during a training process.
+ *
+ * The other two tensors, tensor1 and tensor3 will be inputs to the model. Their values will be
+ * provided when we execute the model. These values can change from execution to execution.
+ *
+ * Besides the two input tensors, an optional fused activation function can
+ * also be defined for ADD and MUL. In this example, we'll simply set it to NONE.
+ *
+ * The graph then has 10 operands:
+ * - 2 tensors that are inputs to the model. These are fed to the two
+ * ADD operations.
+ * - 2 constant tensors that are the other two inputs to the ADD operations.
+ * - 1 fuse activation operand reused for the ADD operations and the MUL operation.
+ * - 2 intermediate tensors, representing outputs of the ADD operations and inputs to the
+ * MUL operation.
+ * - 1 model output.
+ *
+ * @return true for success, false otherwise
+ */
+bool SimpleModel::CreateCompiledModel() {
+ int32_t status;
+
+ // Create the ANeuralNetworksModel handle.
+ status = ANeuralNetworksModel_create(&model_);
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksModel_create failed" << std::endl;
+ return false;
+ }
+
+ uint32_t dimensions[] = {dimLength_};
+ ANeuralNetworksOperandType float32TensorType{
+ .type = ANEURALNETWORKS_TENSOR_FLOAT32,
+ .dimensionCount = sizeof(dimensions) / sizeof(dimensions[0]),
+ .dimensions = dimensions,
+ .scale = 0.0f,
+ .zeroPoint = 0,
+ };
+ ANeuralNetworksOperandType scalarInt32Type{
+ .type = ANEURALNETWORKS_INT32,
+ .dimensionCount = 0,
+ .dimensions = nullptr,
+ .scale = 0.0f,
+ .zeroPoint = 0,
+ };
+
+ /**
+ * Add operands and operations to construct the model.
+ *
+ * Operands are implicitly identified by the order in which they are added to the model,
+ * starting from 0.
+ *
+ * These indexes are not returned by the model_addOperand call. The application must
+ * manage these values. Here, we use opIdx to do the bookkeeping.
+ */
+ uint32_t opIdx = 0;
+
+ // We first add the operand for the NONE activation function, and set its
+ // value to ANEURALNETWORKS_FUSED_NONE.
+ // This constant scalar operand will be used for all 3 operations.
+ status = ANeuralNetworksModel_addOperand(model_, &scalarInt32Type);
+ uint32_t fusedActivationFuncNone = opIdx++;
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksModel_addOperand failed for operand "<< fusedActivationFuncNone << std::endl;
+ return false;
+ }
+
+ FuseCode fusedActivationCodeValue = ANEURALNETWORKS_FUSED_NONE;
+ status = ANeuralNetworksModel_setOperandValue(
+ model_, fusedActivationFuncNone, &fusedActivationCodeValue,
+ sizeof(fusedActivationCodeValue));
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksModel_setOperandValue failed for operand " << fusedActivationFuncNone << std::endl;
+ return false;
+ }
+
+ // Add operands for the tensors.
+ status = ANeuralNetworksModel_addOperand(model_, &float32TensorType);
+ uint32_t tensor0 = opIdx++;
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksModel_addOperand failed for operand " << tensor0 << std::endl;
+ return false;
+ }
+ // tensor0 is a constant tensor that was established during training.
+ // We read these values from the corresponding ANeuralNetworksMemory object.
+ status = ANeuralNetworksModel_setOperandValueFromMemory(model_,
+ tensor0,
+ memoryModel_,
+ offset_,
+ tensorSize_ * sizeof(float));
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksModel_setOperandValueFromMemory failed for operand " << tensor0 << std::endl;
+ return false;
+ }
+
+ // tensor1 is one of the user provided input tensors to the trained model.
+ // Its value is determined pre-execution.
+ status = ANeuralNetworksModel_addOperand(model_, &float32TensorType);
+ uint32_t tensor1 = opIdx++;
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksModel_addOperand failed for operand " << tensor1 << std::endl;
+ return false;
+ }
+
+ // tensor2 is a constant tensor that was established during training.
+ // We read these values from the corresponding ANeuralNetworksMemory object.
+ status = ANeuralNetworksModel_addOperand(model_, &float32TensorType);
+ uint32_t tensor2 = opIdx++;
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksModel_addOperand failed for operand " << tensor2 << std::endl;
+ return false;
+ }
+ status = ANeuralNetworksModel_setOperandValueFromMemory(
+ model_, tensor2, memoryModel_, offset_ + tensorSize_ * sizeof(float),
+ tensorSize_ * sizeof(float));
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksModel_setOperandValueFromMemory failed for operand " << tensor2 << std::endl;
+ return false;
+ }
+
+ // tensor3 is one of the user provided input tensors to the trained model.
+ // Its value is determined pre-execution.
+ status = ANeuralNetworksModel_addOperand(model_, &float32TensorType);
+ uint32_t tensor3 = opIdx++;
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksModel_addOperand failed for operand " << tensor3 << std::endl;
+ return false;
+ }
+
+ // intermediateOutput0 is the output of the first ADD operation.
+ // Its value is computed during execution.
+ status = ANeuralNetworksModel_addOperand(model_, &float32TensorType);
+ uint32_t intermediateOutput0 = opIdx++;
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksModel_addOperand failed for operand " << intermediateOutput0 << std::endl;
+ return false;
+ }
+
+ // intermediateOutput1 is the output of the second ADD operation.
+ // Its value is computed during execution.
+ status = ANeuralNetworksModel_addOperand(model_, &float32TensorType);
+ uint32_t intermediateOutput1 = opIdx++;
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksModel_addOperand failed for operand " << intermediateOutput1 << std::endl;
+ return false;
+ }
+
+ // multiplierOutput is the output of the MUL operation.
+ // Its value will be computed during execution.
+ status = ANeuralNetworksModel_addOperand(model_, &float32TensorType);
+ uint32_t multiplierOutput = opIdx++;
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksModel_addOperand failed for operand " << multiplierOutput << std::endl;
+ return false;
+ }
+
+ // Add the first ADD operation.
+ std::vector<uint32_t> add1InputOperands = {
+ tensor0,
+ tensor1,
+ fusedActivationFuncNone,
+ };
+ status = ANeuralNetworksModel_addOperation(model_, ANEURALNETWORKS_ADD,
+ add1InputOperands.size(), add1InputOperands.data(),
+ 1, &intermediateOutput0);
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksModel_addOperation failed for ADD_1" << std::endl;
+ return false;
+ }
+
+ // Add the second ADD operation.
+ // Note the fusedActivationFuncNone is used again.
+ std::vector<uint32_t> add2InputOperands = {
+ tensor2,
+ tensor3,
+ fusedActivationFuncNone,
+ };
+ status = ANeuralNetworksModel_addOperation(model_, ANEURALNETWORKS_ADD,
+ add2InputOperands.size(),add2InputOperands.data(),
+ 1, &intermediateOutput1);
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksModel_addOperation failed for ADD_2" << std::endl;
+ return false;
+ }
+
+ // Add the MUL operation.
+ // Note that intermediateOutput0 and intermediateOutput1 are specified
+ // as inputs to the operation.
+ std::vector<uint32_t> mulInputOperands = {
+ intermediateOutput0,
+ intermediateOutput1,
+ fusedActivationFuncNone};
+ status = ANeuralNetworksModel_addOperation(model_, ANEURALNETWORKS_MUL,
+ mulInputOperands.size(),mulInputOperands.data(),
+ 1, &multiplierOutput);
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksModel_addOperation failed for MUL" << std::endl;
+ return false;
+ }
+
+ // Identify the input and output tensors to the model.
+ // Inputs: {tensor1, tensor3}
+ // Outputs: {multiplierOutput}
+ std::vector<uint32_t> modelInputOperands = {
+ tensor1, tensor3,
+ };
+ status = ANeuralNetworksModel_identifyInputsAndOutputs(model_,
+ modelInputOperands.size(),
+ modelInputOperands.data(),
+ 1,
+ &multiplierOutput);
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksModel_identifyInputsAndOutputs failed" << std::endl;
+ return false;
+ }
+
+ // Finish constructing the model.
+ // The values of constant and intermediate operands cannot be altered after
+ // the finish function is called.
+ status = ANeuralNetworksModel_finish(model_);
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksModel_finish failed" << std::endl;
+ return false;
+ }
+
+ // Create the ANeuralNetworksCompilation object for the constructed model.
+ status = ANeuralNetworksCompilation_create(model_, &compilation_);
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksCompilation_create failed" << std::endl;
+ return false;
+ }
+
+ // Set the preference for the compilation, so that the runtime and drivers
+ // can make better decisions.
+ // Here we prefer to get the answer quickly, so we choose
+ // ANEURALNETWORKS_PREFER_FAST_SINGLE_ANSWER.
+ status = ANeuralNetworksCompilation_setPreference(compilation_,
+ ANEURALNETWORKS_PREFER_FAST_SINGLE_ANSWER);
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksCompilation_setPreference failed" << std::endl;
+ return false;
+ }
+
+ // Finish the compilation.
+ status = ANeuralNetworksCompilation_finish(compilation_);
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksCompilation_finish failed" << std::endl;
+ return false;
+ }
+
+ return true;
+}
+
+/**
+ * Compute with the given input data.
+ * @param modelInputs:
+ * inputValue1: The values to fill tensor1
+ * inputValue2: The values to fill tensor3
+ * @return computed result, or 0.0f if there is error.
+ */
+bool SimpleModel::Compute(float inputValue1, float inputValue2,
+ float *result) {
+ if (!result) {
+ return false;
+ }
+
+ // Create an ANeuralNetworksExecution object from the compiled model.
+ // Note:
+ // 1. All the input and output data are tied to the ANeuralNetworksExecution object.
+ // 2. Multiple concurrent execution instances could be created from the same compiled model.
+ // This sample only uses one execution of the compiled model.
+ ANeuralNetworksExecution *execution;
+ int32_t status = ANeuralNetworksExecution_create(compilation_, &execution);
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksExecution_create failed" << std::endl;
+ return false;
+ }
+
+ // Set all the elements of the first input tensor (tensor1) to the same value as inputValue1.
+ // It's not a realistic example but it shows how to pass a small tensor
+ // to an execution.
+ std::fill(inputTensor1_.data(), inputTensor1_.data() + tensorSize_,
+ inputValue1);
+
+ // Tell the execution to associate inputTensor1 to the first of the two model inputs.
+ // Note that the index "0" here means the first operand of the modelInput list
+ // {tensor1, tensor3}, which means tensor1.
+ status = ANeuralNetworksExecution_setInput(execution, 0, nullptr,
+ inputTensor1_.data(),
+ tensorSize_ * sizeof(float));
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksExecution_setInput failed for input1" << std::endl;
+ return false;
+ }
+
+ // Set the values of the the second input operand (tensor3) to be inputValue2.
+ // In reality, the values in the shared memory region will be manipulated by
+ // other modules or processes.
+ float *inputTensor2Ptr = reinterpret_cast<float *>(mmap(nullptr, tensorSize_ * sizeof(float),
+ PROT_READ | PROT_WRITE, MAP_SHARED,
+ inputTensor2Fd_, 0));
+ for (int i = 0; i < tensorSize_; i++) {
+ *inputTensor2Ptr = inputValue2;
+ inputTensor2Ptr++;
+ }
+ munmap(inputTensor2Ptr, tensorSize_ * sizeof(float));
+
+ // ANeuralNetworksExecution_setInputFromMemory associates the operand with a shared memory
+ // region to minimize the number of copies of raw data.
+ // Note that the index "1" here means the second operand of the modelInput list
+ // {tensor1, tensor3}, which means tensor3.
+ status = ANeuralNetworksExecution_setInputFromMemory(execution, 1, nullptr,
+ memoryInput2_, 0,
+ tensorSize_ * sizeof(float));
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksExecution_setInputFromMemory failed for input2" << std::endl;
+ return false;
+ }
+
+ // Set the output tensor that will be filled by executing the model.
+ // We use shared memory here to minimize the copies needed for getting the output data.
+ status = ANeuralNetworksExecution_setOutputFromMemory(execution, 0, nullptr,
+ memoryOutput_, 0,
+ tensorSize_ * sizeof(float));
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksExecution_setOutputFromMemory failed for output" << std::endl;
+ return false;
+ }
+
+ // Start the execution of the model.
+ // Note that the execution here is asynchronous, and an ANeuralNetworksEvent object will be
+ // created to monitor the status of the execution.
+ ANeuralNetworksEvent *event = nullptr;
+ status = ANeuralNetworksExecution_startCompute(execution, &event);
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksExecution_startCompute failed" << std::endl;
+ return false;
+ }
+
+ // Wait until the completion of the execution. This could be done on a different
+ // thread. By waiting immediately, we effectively make this a synchronous call.
+ status = ANeuralNetworksEvent_wait(event);
+ if (status != ANEURALNETWORKS_NO_ERROR) {
+ std::cerr << "ANeuralNetworksEvent_wait failed" << std::endl;
+ return false;
+ }
+
+ ANeuralNetworksEvent_free(event);
+ ANeuralNetworksExecution_free(execution);
+
+ // Validate the results.
+ const float goldenRef = (inputValue1 + 0.5f) * (inputValue2 + 0.5f);
+ float *outputTensorPtr = reinterpret_cast<float *>(mmap(nullptr,
+ tensorSize_ * sizeof(float),
+ PROT_READ, MAP_SHARED,
+ outputTensorFd_, 0));
+ for (int32_t idx = 0; idx < tensorSize_; idx++) {
+ float delta = outputTensorPtr[idx] - goldenRef;
+ delta = (delta < 0.0f) ? (-delta) : delta;
+ if (delta > FLOAT_EPISILON) {
+ std::cerr << "Output computation Error: output" << idx << "(" << outputTensorPtr[idx]
+ << "), delta(" << delta
+ << ") @ idx(" << idx
+ << ")" << std::endl;
+ }
+ }
+ *result = outputTensorPtr[0];
+ munmap(outputTensorPtr, tensorSize_ * sizeof(float));
+ return result;
+}
+
+/**
+ * SimpleModel Destructor.
+ *
+ * Release NN API objects and close the file descriptors.
+ */
+SimpleModel::~SimpleModel() {
+ ANeuralNetworksCompilation_free(compilation_);
+ ANeuralNetworksModel_free(model_);
+ ANeuralNetworksMemory_free(memoryModel_);
+ ANeuralNetworksMemory_free(memoryInput2_);
+ ANeuralNetworksMemory_free(memoryOutput_);
+ close(inputTensor2Fd_);
+ close(outputTensorFd_);
+ close(modelDataFd_);
+}
diff --git a/runtimes/tests/bring_up_test/simple_model.h b/runtimes/tests/bring_up_test/simple_model.h
new file mode 100644
index 000000000..bc61f5972
--- /dev/null
+++ b/runtimes/tests/bring_up_test/simple_model.h
@@ -0,0 +1,63 @@
+/**
+ * Copyright 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef NNAPI_SIMPLE_MODEL_H
+#define NNAPI_SIMPLE_MODEL_H
+
+#include "NeuralNetworks.h"
+#include <vector>
+
+#define FLOAT_EPISILON (1e-6)
+#define TENSOR_SIZE 200
+
+/**
+ * SimpleModel
+ * Build up the hardcoded graph of
+ * ADD_1 ---+
+ * +--- MUL--->output result
+ * ADD_2 ---+
+ *
+ * Operands are all 2-D TENSOR_FLOAT32 of:
+ * dimLength x dimLength
+ * with NO fused_activation operation
+ *
+ */
+class SimpleModel {
+public:
+ explicit SimpleModel(size_t size, int protect, int fd, size_t offset);
+ ~SimpleModel();
+
+ bool CreateCompiledModel();
+ bool Compute(float inputValue1, float inputValue2, float *result);
+
+private:
+ ANeuralNetworksModel *model_;
+ ANeuralNetworksCompilation *compilation_;
+ ANeuralNetworksMemory *memoryModel_;
+ ANeuralNetworksMemory *memoryInput2_;
+ ANeuralNetworksMemory *memoryOutput_;
+
+ uint32_t dimLength_;
+ uint32_t tensorSize_;
+ size_t offset_;
+
+ std::vector<float> inputTensor1_;
+ int modelDataFd_;
+ int inputTensor2Fd_;
+ int outputTensorFd_;
+};
+
+#endif // NNAPI_SIMPLE_MODEL_H
diff --git a/runtimes/tests/bring_up_test/simple_model_main.cpp b/runtimes/tests/bring_up_test/simple_model_main.cpp
new file mode 100644
index 000000000..edb6f0fe7
--- /dev/null
+++ b/runtimes/tests/bring_up_test/simple_model_main.cpp
@@ -0,0 +1,35 @@
+#include <string>
+#include <fcntl.h>
+#include <sys/mman.h>
+#include <unistd.h>
+#include <iostream>
+
+#include "simple_model.h"
+
+int main()
+{
+ // This is a simple test for bring-up stage
+ // TODO Remove this file when we have unit tests ready.
+
+ const char *fname = "model_data.bin";
+ float input1 = 1.0f;
+ float input2 = 2.0f;
+ int fd = open(fname, O_RDONLY);
+ off_t offset = 0;
+ off_t length = lseek(fd, 0, SEEK_END);
+
+ SimpleModel* nn_model = new SimpleModel(length, PROT_READ, fd, offset);
+ if (!nn_model->CreateCompiledModel()) {
+ std::cerr << "Failed to prepare the model." << std::endl;
+ return 1;
+ }
+
+ float result = 0.0f;
+ nn_model->Compute(input1, input2, &result);
+
+ std::cout << "result : " << result << std::endl;
+
+ delete(nn_model);
+
+ return 0;
+}
diff --git a/runtimes/tests/include/NeuralNetworksWrapper.h b/runtimes/tests/include/NeuralNetworksWrapper.h
new file mode 100644
index 000000000..c0db78d5e
--- /dev/null
+++ b/runtimes/tests/include/NeuralNetworksWrapper.h
@@ -0,0 +1,344 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// Provides C++ classes to more easily use the Neural Networks API.
+
+#ifndef __NNFW_RT_NEURAL_NETWORKS_WRAPPER_H__
+#define __NNFW_RT_NEURAL_NETWORKS_WRAPPER_H__
+
+#include "NeuralNetworks.h"
+
+#include <math.h>
+#include <vector>
+
+namespace nnfw {
+namespace rt {
+namespace wrapper {
+
+enum class Type {
+ FLOAT32 = ANEURALNETWORKS_FLOAT32,
+ INT32 = ANEURALNETWORKS_INT32,
+ UINT32 = ANEURALNETWORKS_UINT32,
+ TENSOR_FLOAT32 = ANEURALNETWORKS_TENSOR_FLOAT32,
+ TENSOR_INT32 = ANEURALNETWORKS_TENSOR_INT32,
+ TENSOR_QUANT8_ASYMM = ANEURALNETWORKS_TENSOR_QUANT8_ASYMM,
+};
+
+enum class ExecutePreference {
+ PREFER_LOW_POWER = ANEURALNETWORKS_PREFER_LOW_POWER,
+ PREFER_FAST_SINGLE_ANSWER = ANEURALNETWORKS_PREFER_FAST_SINGLE_ANSWER,
+ PREFER_SUSTAINED_SPEED = ANEURALNETWORKS_PREFER_SUSTAINED_SPEED
+};
+
+enum class Result {
+ NO_ERROR = ANEURALNETWORKS_NO_ERROR,
+ OUT_OF_MEMORY = ANEURALNETWORKS_OUT_OF_MEMORY,
+ INCOMPLETE = ANEURALNETWORKS_INCOMPLETE,
+ UNEXPECTED_NULL = ANEURALNETWORKS_UNEXPECTED_NULL,
+ BAD_DATA = ANEURALNETWORKS_BAD_DATA,
+};
+
+struct OperandType {
+ ANeuralNetworksOperandType operandType;
+ // int32_t type;
+ std::vector<uint32_t> dimensions;
+
+ OperandType(Type type, const std::vector<uint32_t>& d, float scale = 0.0f,
+ int32_t zeroPoint = 0)
+ : dimensions(d) {
+ operandType.type = static_cast<int32_t>(type);
+ operandType.scale = scale;
+ operandType.zeroPoint = zeroPoint;
+
+ operandType.dimensionCount = static_cast<uint32_t>(dimensions.size());
+ operandType.dimensions = dimensions.data();
+ }
+};
+
+class Memory {
+public:
+ Memory(size_t size, int protect, int fd, size_t offset) {
+ mValid = ANeuralNetworksMemory_createFromFd(size, protect, fd, offset, &mMemory) ==
+ ANEURALNETWORKS_NO_ERROR;
+ }
+
+ ~Memory() { ANeuralNetworksMemory_free(mMemory); }
+
+ // Disallow copy semantics to ensure the runtime object can only be freed
+ // once. Copy semantics could be enabled if some sort of reference counting
+ // or deep-copy system for runtime objects is added later.
+ Memory(const Memory&) = delete;
+ Memory& operator=(const Memory&) = delete;
+
+ // Move semantics to remove access to the runtime object from the wrapper
+ // object that is being moved. This ensures the runtime object will be
+ // freed only once.
+ Memory(Memory&& other) { *this = std::move(other); }
+ Memory& operator=(Memory&& other) {
+ if (this != &other) {
+ mMemory = other.mMemory;
+ mValid = other.mValid;
+ other.mMemory = nullptr;
+ other.mValid = false;
+ }
+ return *this;
+ }
+
+ ANeuralNetworksMemory* get() const { return mMemory; }
+ bool isValid() const { return mValid; }
+
+private:
+ ANeuralNetworksMemory* mMemory = nullptr;
+ bool mValid = true;
+};
+
+class Model {
+public:
+ Model() {
+ // TODO handle the value returned by this call
+ ANeuralNetworksModel_create(&mModel);
+ }
+ ~Model() { ANeuralNetworksModel_free(mModel); }
+
+ // Disallow copy semantics to ensure the runtime object can only be freed
+ // once. Copy semantics could be enabled if some sort of reference counting
+ // or deep-copy system for runtime objects is added later.
+ Model(const Model&) = delete;
+ Model& operator=(const Model&) = delete;
+
+ // Move semantics to remove access to the runtime object from the wrapper
+ // object that is being moved. This ensures the runtime object will be
+ // freed only once.
+ Model(Model&& other) { *this = std::move(other); }
+ Model& operator=(Model&& other) {
+ if (this != &other) {
+ mModel = other.mModel;
+ mNextOperandId = other.mNextOperandId;
+ mValid = other.mValid;
+ other.mModel = nullptr;
+ other.mNextOperandId = 0;
+ other.mValid = false;
+ }
+ return *this;
+ }
+
+ Result finish() { return static_cast<Result>(ANeuralNetworksModel_finish(mModel)); }
+
+ uint32_t addOperand(const OperandType* type) {
+ if (ANeuralNetworksModel_addOperand(mModel, &(type->operandType)) !=
+ ANEURALNETWORKS_NO_ERROR) {
+ mValid = false;
+ }
+ return mNextOperandId++;
+ }
+
+ void setOperandValue(uint32_t index, const void* buffer, size_t length) {
+ if (ANeuralNetworksModel_setOperandValue(mModel, index, buffer, length) !=
+ ANEURALNETWORKS_NO_ERROR) {
+ mValid = false;
+ }
+ }
+
+ void setOperandValueFromMemory(uint32_t index, const Memory* memory, uint32_t offset,
+ size_t length) {
+ if (ANeuralNetworksModel_setOperandValueFromMemory(mModel, index, memory->get(), offset,
+ length) != ANEURALNETWORKS_NO_ERROR) {
+ mValid = false;
+ }
+ }
+
+ void addOperation(ANeuralNetworksOperationType type, const std::vector<uint32_t>& inputs,
+ const std::vector<uint32_t>& outputs) {
+ if (ANeuralNetworksModel_addOperation(mModel, type, static_cast<uint32_t>(inputs.size()),
+ inputs.data(), static_cast<uint32_t>(outputs.size()),
+ outputs.data()) != ANEURALNETWORKS_NO_ERROR) {
+ mValid = false;
+ }
+ }
+ void identifyInputsAndOutputs(const std::vector<uint32_t>& inputs,
+ const std::vector<uint32_t>& outputs) {
+ if (ANeuralNetworksModel_identifyInputsAndOutputs(
+ mModel, static_cast<uint32_t>(inputs.size()), inputs.data(),
+ static_cast<uint32_t>(outputs.size()),
+ outputs.data()) != ANEURALNETWORKS_NO_ERROR) {
+ mValid = false;
+ }
+ }
+ ANeuralNetworksModel* getHandle() const { return mModel; }
+ bool isValid() const { return mValid; }
+
+private:
+ ANeuralNetworksModel* mModel = nullptr;
+ // We keep track of the operand ID as a convenience to the caller.
+ uint32_t mNextOperandId = 0;
+ bool mValid = true;
+};
+
+class Event {
+public:
+ Event() {}
+ ~Event() { ANeuralNetworksEvent_free(mEvent); }
+
+ // Disallow copy semantics to ensure the runtime object can only be freed
+ // once. Copy semantics could be enabled if some sort of reference counting
+ // or deep-copy system for runtime objects is added later.
+ Event(const Event&) = delete;
+ Event& operator=(const Event&) = delete;
+
+ // Move semantics to remove access to the runtime object from the wrapper
+ // object that is being moved. This ensures the runtime object will be
+ // freed only once.
+ Event(Event&& other) { *this = std::move(other); }
+ Event& operator=(Event&& other) {
+ if (this != &other) {
+ mEvent = other.mEvent;
+ other.mEvent = nullptr;
+ }
+ return *this;
+ }
+
+ Result wait() { return static_cast<Result>(ANeuralNetworksEvent_wait(mEvent)); }
+
+ // Only for use by Execution
+ void set(ANeuralNetworksEvent* newEvent) {
+ ANeuralNetworksEvent_free(mEvent);
+ mEvent = newEvent;
+ }
+
+private:
+ ANeuralNetworksEvent* mEvent = nullptr;
+};
+
+class Compilation {
+public:
+ Compilation(const Model* model) {
+ int result = ANeuralNetworksCompilation_create(model->getHandle(), &mCompilation);
+ if (result != 0) {
+ // TODO Handle the error
+ }
+ }
+
+ ~Compilation() { ANeuralNetworksCompilation_free(mCompilation); }
+
+ Compilation(const Compilation&) = delete;
+ Compilation& operator=(const Compilation&) = delete;
+
+ Compilation(Compilation&& other) { *this = std::move(other); }
+ Compilation& operator=(Compilation&& other) {
+ if (this != &other) {
+ mCompilation = other.mCompilation;
+ other.mCompilation = nullptr;
+ }
+ return *this;
+ }
+
+ Result setPreference(ExecutePreference preference) {
+ return static_cast<Result>(ANeuralNetworksCompilation_setPreference(
+ mCompilation, static_cast<int32_t>(preference)));
+ }
+
+ Result finish() { return static_cast<Result>(ANeuralNetworksCompilation_finish(mCompilation)); }
+
+ ANeuralNetworksCompilation* getHandle() const { return mCompilation; }
+
+private:
+ ANeuralNetworksCompilation* mCompilation = nullptr;
+};
+
+class Execution {
+public:
+ Execution(const Compilation* compilation) {
+ int result = ANeuralNetworksExecution_create(compilation->getHandle(), &mExecution);
+ if (result != 0) {
+ // TODO Handle the error
+ }
+ }
+
+ ~Execution() { ANeuralNetworksExecution_free(mExecution); }
+
+ // Disallow copy semantics to ensure the runtime object can only be freed
+ // once. Copy semantics could be enabled if some sort of reference counting
+ // or deep-copy system for runtime objects is added later.
+ Execution(const Execution&) = delete;
+ Execution& operator=(const Execution&) = delete;
+
+ // Move semantics to remove access to the runtime object from the wrapper
+ // object that is being moved. This ensures the runtime object will be
+ // freed only once.
+ Execution(Execution&& other) { *this = std::move(other); }
+ Execution& operator=(Execution&& other) {
+ if (this != &other) {
+ mExecution = other.mExecution;
+ other.mExecution = nullptr;
+ }
+ return *this;
+ }
+
+ Result setInput(uint32_t index, const void* buffer, size_t length,
+ const ANeuralNetworksOperandType* type = nullptr) {
+ return static_cast<Result>(
+ ANeuralNetworksExecution_setInput(mExecution, index, type, buffer, length));
+ }
+
+ Result setInputFromMemory(uint32_t index, const Memory* memory, uint32_t offset,
+ uint32_t length, const ANeuralNetworksOperandType* type = nullptr) {
+ return static_cast<Result>(ANeuralNetworksExecution_setInputFromMemory(
+ mExecution, index, type, memory->get(), offset, length));
+ }
+
+ Result setOutput(uint32_t index, void* buffer, size_t length,
+ const ANeuralNetworksOperandType* type = nullptr) {
+ return static_cast<Result>(
+ ANeuralNetworksExecution_setOutput(mExecution, index, type, buffer, length));
+ }
+
+ Result setOutputFromMemory(uint32_t index, const Memory* memory, uint32_t offset,
+ uint32_t length, const ANeuralNetworksOperandType* type = nullptr) {
+ return static_cast<Result>(ANeuralNetworksExecution_setOutputFromMemory(
+ mExecution, index, type, memory->get(), offset, length));
+ }
+
+ Result startCompute(Event* event) {
+ ANeuralNetworksEvent* ev = nullptr;
+ Result result = static_cast<Result>(ANeuralNetworksExecution_startCompute(mExecution, &ev));
+ event->set(ev);
+ return result;
+ }
+
+ Result compute() {
+ ANeuralNetworksEvent* event = nullptr;
+ Result result =
+ static_cast<Result>(ANeuralNetworksExecution_startCompute(mExecution, &event));
+ if (result != Result::NO_ERROR) {
+ return result;
+ }
+ // TODO how to manage the lifetime of events when multiple waiters is not
+ // clear.
+ result = static_cast<Result>(ANeuralNetworksEvent_wait(event));
+ ANeuralNetworksEvent_free(event);
+ return result;
+ }
+
+private:
+ ANeuralNetworksExecution* mExecution = nullptr;
+};
+
+} // namespace wrapper
+} // namespace rt
+} // namespace nnfw
+
+#endif // __NNFW_RT_NEURAL_NETWORKS_WRAPPER_H__
diff --git a/runtimes/tests/neural_networks_test/CMakeLists.txt b/runtimes/tests/neural_networks_test/CMakeLists.txt
new file mode 100644
index 000000000..c9af455ba
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/CMakeLists.txt
@@ -0,0 +1,34 @@
+# Executable `runtime_run` (Dummy runner executable using NN API)
+set(RUNTIME_ANDROID_NN_TEST runtime_run_android_nn_test)
+set(RUNTIME_ANDROID_NN_TEST_SRC TestMain.cpp
+ TestTrivialModel.cpp
+ TestValidation.cpp)
+
+# g++-6.3 can build TestGenerated.cpp.
+if (CMAKE_COMPILER_IS_GNUCC AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.3)
+ set(RUNTIME_ANDROID_NN_TEST_SRC ${RUNTIME_ANDROID_NN_TEST_SRC} TestGenerated.cpp)
+endif()
+
+# g++-6.2 for tizen can build TestGenerated.cpp.
+# Tizen has g++ 6.2 applied most of 6++ 6.3 patches.
+if (${TARGET_OS} STREQUAL "tizen")
+ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.2)
+ set(RUNTIME_ANDROID_NN_TEST_SRC ${RUNTIME_ANDROID_NN_TEST_SRC} TestGenerated.cpp)
+ endif()
+endif()
+
+add_executable(${RUNTIME_ANDROID_NN_TEST} ${RUNTIME_ANDROID_NN_TEST_SRC})
+
+if (NOT ${TARGET_OS} STREQUAL "tizen")
+ add_dependencies(${RUNTIME_ANDROID_NN_TEST} googletest)
+endif()
+
+target_include_directories(${RUNTIME_ANDROID_NN_TEST} PRIVATE
+ ${NNRUNTIME_TEST_INC_COMMON}
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/include)
+target_link_libraries(${RUNTIME_ANDROID_NN_TEST} ${LIB_RUNTIME})
+target_link_libraries(${RUNTIME_ANDROID_NN_TEST} gtest)
+target_link_libraries(${RUNTIME_ANDROID_NN_TEST} ${LIB_PTHREAD})
+
+install(TARGETS runtime_run_android_nn_test DESTINATION unittest)
diff --git a/runtimes/tests/neural_networks_test/TestGenerated.cpp b/runtimes/tests/neural_networks_test/TestGenerated.cpp
new file mode 100644
index 000000000..ef35dcf7a
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/TestGenerated.cpp
@@ -0,0 +1,139 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * generated/all_generated_tests.cpp that is included in the bottom line
+ * in file is also modified.
+ *
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// Top level driver for models and examples generated by test_generator.py
+
+#include "NeuralNetworksWrapper.h"
+#include "TestHarness.h"
+
+#include <gtest/gtest.h>
+#include <cassert>
+#include <cmath>
+#include <fstream>
+#include <iostream>
+#include <map>
+
+// Uncomment the following line to generate DOT graphs.
+//
+// #define GRAPH GRAPH
+
+namespace generated_tests {
+using namespace nnfw::rt::wrapper;
+
+template <typename T>
+static void print(std::ostream& os, const MixedTyped& test) {
+ // dump T-typed inputs
+ for_each<T>(test, [&os](int idx, const std::vector<T>& f) {
+ os << " aliased_output" << idx << ": [";
+ for (size_t i = 0; i < f.size(); ++i) {
+ os << (i == 0 ? "" : ", ") << +f[i];
+ }
+ os << "],\n";
+ });
+}
+
+static void printAll(std::ostream& os, const MixedTyped& test) {
+ print<float>(os, test);
+ print<int32_t>(os, test);
+ print<uint8_t>(os, test);
+}
+
+// Test driver for those generated from ml/nn/runtime/test/spec
+static void execute(std::function<void(Model*)> createModel,
+ std::function<bool(int)> isIgnored,
+ std::vector<MixedTypedExampleType>& examples,
+ std::string dumpFile = "") {
+ Model model;
+ createModel(&model);
+ model.finish();
+ bool dumpToFile = !dumpFile.empty();
+
+ std::ofstream s;
+ if (dumpToFile) {
+ s.open(dumpFile, std::ofstream::trunc);
+ ASSERT_TRUE(s.is_open());
+ }
+
+ int exampleNo = 0;
+ Compilation compilation(&model);
+ compilation.finish();
+
+ const float fpRange = 1e-5f;
+ for (auto& example : examples) {
+ SCOPED_TRACE(exampleNo);
+ // TODO: We leave it as a copy here.
+ // Should verify if the input gets modified by the test later.
+ MixedTyped inputs = example.first;
+ const MixedTyped& golden = example.second;
+
+ Execution execution(&compilation);
+
+ // Set all inputs
+ for_all(inputs, [&execution](int idx, const void* p, size_t s) {
+ const void* buffer = s == 0 ? nullptr : p;
+ ASSERT_EQ(Result::NO_ERROR, execution.setInput(idx, buffer, s));
+ });
+
+ MixedTyped test;
+ // Go through all typed outputs
+ resize_accordingly(golden, test);
+ for_all(test, [&execution](int idx, void* p, size_t s) {
+ void* buffer = s == 0 ? nullptr : p;
+ ASSERT_EQ(Result::NO_ERROR, execution.setOutput(idx, buffer, s));
+ });
+
+ Result r = execution.compute();
+ ASSERT_EQ(Result::NO_ERROR, r);
+
+ // Dump all outputs for the slicing tool
+ if (dumpToFile) {
+ s << "output" << exampleNo << " = {\n";
+ printAll(s, test);
+ // all outputs are done
+ s << "}\n";
+ }
+
+ // Filter out don't cares
+ MixedTyped filteredGolden = filter(golden, isIgnored);
+ MixedTyped filteredTest = filter(test, isIgnored);
+ // We want "close-enough" results for float
+
+ compare(filteredGolden, filteredTest, fpRange);
+ exampleNo++;
+ }
+}
+
+}; // namespace generated_tests
+
+using namespace nnfw::rt::wrapper;
+
+// Mixed-typed examples
+typedef generated_tests::MixedTypedExampleType MixedTypedExample;
+
+class GeneratedTests : public ::testing::Test {
+ protected:
+ virtual void SetUp() {}
+};
+
+// Testcases generated from runtime/test/specs/*.mod.py
+using namespace generated_tests;
+#include "generated/all_generated_tests.cpp"
+// End of testcases generated from runtime/test/specs/*.mod.py
diff --git a/runtimes/tests/neural_networks_test/TestMain.cpp b/runtimes/tests/neural_networks_test/TestMain.cpp
new file mode 100644
index 000000000..7408972e9
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/TestMain.cpp
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "NeuralNetworksWrapper.h"
+
+#include <gtest/gtest.h>
+
+using namespace nnfw::rt::wrapper;
+
+int main(int argc, char** argv) {
+ ::testing::InitGoogleTest(&argc, argv);
+
+ // Test with the installed drivers.
+ int n1 = RUN_ALL_TESTS();
+
+ return n1;
+}
diff --git a/runtimes/tests/neural_networks_test/TestTrivialModel.cpp b/runtimes/tests/neural_networks_test/TestTrivialModel.cpp
new file mode 100644
index 000000000..72ae912e9
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/TestTrivialModel.cpp
@@ -0,0 +1,221 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "NeuralNetworksWrapper.h"
+
+#include <gtest/gtest.h>
+
+using namespace nnfw::rt::wrapper;
+
+namespace {
+
+typedef float Matrix3x4[3][4];
+typedef float Matrix4[4];
+
+class TrivialTest : public ::testing::Test {
+protected:
+ virtual void SetUp() {}
+
+ const Matrix3x4 matrix1 = {{1.f, 2.f, 3.f, 4.f}, {5.f, 6.f, 7.f, 8.f}, {9.f, 10.f, 11.f, 12.f}};
+ const Matrix3x4 matrix2 = {{100.f, 200.f, 300.f, 400.f},
+ {500.f, 600.f, 700.f, 800.f},
+ {900.f, 1000.f, 1100.f, 1200.f}};
+ const Matrix4 matrix2b = {100.f, 200.f, 300.f, 400.f};
+ const Matrix3x4 matrix3 = {{20.f, 30.f, 40.f, 50.f},
+ {21.f, 22.f, 23.f, 24.f},
+ {31.f, 32.f, 33.f, 34.f}};
+ const Matrix3x4 expected2 = {{101.f, 202.f, 303.f, 404.f},
+ {505.f, 606.f, 707.f, 808.f},
+ {909.f, 1010.f, 1111.f, 1212.f}};
+ const Matrix3x4 expected2b = {{101.f, 202.f, 303.f, 404.f},
+ {105.f, 206.f, 307.f, 408.f},
+ {109.f, 210.f, 311.f, 412.f}};
+ const Matrix3x4 expected2c = {{100.f, 400.f, 900.f, 1600.f},
+ {500.f, 1200.f, 2100.f, 3200.f},
+ {900.f, 2000.f, 3300.f, 4800.f}};
+
+ const Matrix3x4 expected3 = {{121.f, 232.f, 343.f, 454.f},
+ {526.f, 628.f, 730.f, 832.f},
+ {940.f, 1042.f, 1144.f, 1246.f}};
+ const Matrix3x4 expected3b = {{22.f, 34.f, 46.f, 58.f},
+ {31.f, 34.f, 37.f, 40.f},
+ {49.f, 52.f, 55.f, 58.f}};
+};
+
+// Create a model that can add two tensors using a one node graph.
+void CreateAddTwoTensorModel(Model* model) {
+ OperandType matrixType(Type::TENSOR_FLOAT32, {3, 4});
+ OperandType scalarType(Type::INT32, {});
+ int32_t activation(ANEURALNETWORKS_FUSED_NONE);
+ auto a = model->addOperand(&matrixType);
+ auto b = model->addOperand(&matrixType);
+ auto c = model->addOperand(&matrixType);
+ auto d = model->addOperand(&scalarType);
+ model->setOperandValue(d, &activation, sizeof(activation));
+ model->addOperation(ANEURALNETWORKS_ADD, {a, b, d}, {c});
+ model->identifyInputsAndOutputs({a, b}, {c});
+ ASSERT_TRUE(model->isValid());
+ model->finish();
+}
+
+// Create a model that can add three tensors using a two node graph,
+// with one tensor set as part of the model.
+void CreateAddThreeTensorModel(Model* model, const Matrix3x4 bias) {
+ OperandType matrixType(Type::TENSOR_FLOAT32, {3, 4});
+ OperandType scalarType(Type::INT32, {});
+ int32_t activation(ANEURALNETWORKS_FUSED_NONE);
+ auto a = model->addOperand(&matrixType);
+ auto b = model->addOperand(&matrixType);
+ auto c = model->addOperand(&matrixType);
+ auto d = model->addOperand(&matrixType);
+ auto e = model->addOperand(&matrixType);
+ auto f = model->addOperand(&scalarType);
+ model->setOperandValue(e, bias, sizeof(Matrix3x4));
+ model->setOperandValue(f, &activation, sizeof(activation));
+ model->addOperation(ANEURALNETWORKS_ADD, {a, c, f}, {b});
+ model->addOperation(ANEURALNETWORKS_ADD, {b, e, f}, {d});
+ model->identifyInputsAndOutputs({c, a}, {d});
+ ASSERT_TRUE(model->isValid());
+ model->finish();
+}
+
+// Check that the values are the same. This works only if dealing with integer
+// value, otherwise we should accept values that are similar if not exact.
+int CompareMatrices(const Matrix3x4& expected, const Matrix3x4& actual) {
+ int errors = 0;
+ for (int i = 0; i < 3; i++) {
+ for (int j = 0; j < 4; j++) {
+ if (expected[i][j] != actual[i][j]) {
+ printf("expected[%d][%d] != actual[%d][%d], %f != %f\n", i, j, i, j,
+ static_cast<double>(expected[i][j]), static_cast<double>(actual[i][j]));
+ errors++;
+ }
+ }
+ }
+ return errors;
+}
+
+TEST_F(TrivialTest, AddTwo) {
+ Model modelAdd2;
+ CreateAddTwoTensorModel(&modelAdd2);
+
+ // Test the one node model.
+ Matrix3x4 actual;
+ memset(&actual, 0, sizeof(actual));
+ Compilation compilation(&modelAdd2);
+ compilation.finish();
+ Execution execution(&compilation);
+ ASSERT_EQ(execution.setInput(0, matrix1, sizeof(Matrix3x4)), Result::NO_ERROR);
+ ASSERT_EQ(execution.setInput(1, matrix2, sizeof(Matrix3x4)), Result::NO_ERROR);
+ ASSERT_EQ(execution.setOutput(0, actual, sizeof(Matrix3x4)), Result::NO_ERROR);
+ ASSERT_EQ(execution.compute(), Result::NO_ERROR);
+ ASSERT_EQ(CompareMatrices(expected2, actual), 0);
+}
+
+TEST_F(TrivialTest, AddThree) {
+ Model modelAdd3;
+ CreateAddThreeTensorModel(&modelAdd3, matrix3);
+
+ // Test the three node model.
+ Matrix3x4 actual;
+ memset(&actual, 0, sizeof(actual));
+ Compilation compilation2(&modelAdd3);
+ compilation2.finish();
+ Execution execution2(&compilation2);
+ ASSERT_EQ(execution2.setInput(0, matrix1, sizeof(Matrix3x4)), Result::NO_ERROR);
+ ASSERT_EQ(execution2.setInput(1, matrix2, sizeof(Matrix3x4)), Result::NO_ERROR);
+ ASSERT_EQ(execution2.setOutput(0, actual, sizeof(Matrix3x4)), Result::NO_ERROR);
+ ASSERT_EQ(execution2.compute(), Result::NO_ERROR);
+ ASSERT_EQ(CompareMatrices(expected3, actual), 0);
+
+ // Test it a second time to make sure the model is reusable.
+ memset(&actual, 0, sizeof(actual));
+ Compilation compilation3(&modelAdd3);
+ compilation3.finish();
+ Execution execution3(&compilation3);
+ ASSERT_EQ(execution3.setInput(0, matrix1, sizeof(Matrix3x4)), Result::NO_ERROR);
+ ASSERT_EQ(execution3.setInput(1, matrix1, sizeof(Matrix3x4)), Result::NO_ERROR);
+ ASSERT_EQ(execution3.setOutput(0, actual, sizeof(Matrix3x4)), Result::NO_ERROR);
+ ASSERT_EQ(execution3.compute(), Result::NO_ERROR);
+ ASSERT_EQ(CompareMatrices(expected3b, actual), 0);
+}
+
+TEST_F(TrivialTest, BroadcastAddTwo) {
+ Model modelBroadcastAdd2;
+ // activation: NONE.
+ int32_t activation_init[] = {ANEURALNETWORKS_FUSED_NONE};
+ OperandType scalarType(Type::INT32, {});
+ auto activation = modelBroadcastAdd2.addOperand(&scalarType);
+ modelBroadcastAdd2.setOperandValue(activation, activation_init, sizeof(int32_t) * 1);
+
+ OperandType matrixType(Type::TENSOR_FLOAT32, {1, 1, 3, 4});
+ OperandType matrixType2(Type::TENSOR_FLOAT32, {4});
+
+ auto a = modelBroadcastAdd2.addOperand(&matrixType);
+ auto b = modelBroadcastAdd2.addOperand(&matrixType2);
+ auto c = modelBroadcastAdd2.addOperand(&matrixType);
+ modelBroadcastAdd2.addOperation(ANEURALNETWORKS_ADD, {a, b, activation}, {c});
+ modelBroadcastAdd2.identifyInputsAndOutputs({a, b}, {c});
+ ASSERT_TRUE(modelBroadcastAdd2.isValid());
+ modelBroadcastAdd2.finish();
+
+ // Test the one node model.
+ Matrix3x4 actual;
+ memset(&actual, 0, sizeof(actual));
+ Compilation compilation(&modelBroadcastAdd2);
+ compilation.finish();
+ Execution execution(&compilation);
+ ASSERT_EQ(execution.setInput(0, matrix1, sizeof(Matrix3x4)), Result::NO_ERROR);
+ ASSERT_EQ(execution.setInput(1, matrix2b, sizeof(Matrix4)), Result::NO_ERROR);
+ ASSERT_EQ(execution.setOutput(0, actual, sizeof(Matrix3x4)), Result::NO_ERROR);
+ ASSERT_EQ(execution.compute(), Result::NO_ERROR);
+ ASSERT_EQ(CompareMatrices(expected2b, actual), 0);
+}
+
+TEST_F(TrivialTest, BroadcastMulTwo) {
+ Model modelBroadcastMul2;
+ // activation: NONE.
+ int32_t activation_init[] = {ANEURALNETWORKS_FUSED_NONE};
+ OperandType scalarType(Type::INT32, {});
+ auto activation = modelBroadcastMul2.addOperand(&scalarType);
+ modelBroadcastMul2.setOperandValue(activation, activation_init, sizeof(int32_t) * 1);
+
+ OperandType matrixType(Type::TENSOR_FLOAT32, {1, 1, 3, 4});
+ OperandType matrixType2(Type::TENSOR_FLOAT32, {4});
+
+ auto a = modelBroadcastMul2.addOperand(&matrixType);
+ auto b = modelBroadcastMul2.addOperand(&matrixType2);
+ auto c = modelBroadcastMul2.addOperand(&matrixType);
+ modelBroadcastMul2.addOperation(ANEURALNETWORKS_MUL, {a, b, activation}, {c});
+ modelBroadcastMul2.identifyInputsAndOutputs({a, b}, {c});
+ ASSERT_TRUE(modelBroadcastMul2.isValid());
+ modelBroadcastMul2.finish();
+
+ // Test the one node model.
+ Matrix3x4 actual;
+ memset(&actual, 0, sizeof(actual));
+ Compilation compilation(&modelBroadcastMul2);
+ compilation.finish();
+ Execution execution(&compilation);
+ ASSERT_EQ(execution.setInput(0, matrix1, sizeof(Matrix3x4)), Result::NO_ERROR);
+ ASSERT_EQ(execution.setInput(1, matrix2b, sizeof(Matrix4)), Result::NO_ERROR);
+ ASSERT_EQ(execution.setOutput(0, actual, sizeof(Matrix3x4)), Result::NO_ERROR);
+ ASSERT_EQ(execution.compute(), Result::NO_ERROR);
+ ASSERT_EQ(CompareMatrices(expected2c, actual), 0);
+}
+
+} // end namespace
diff --git a/runtimes/tests/neural_networks_test/TestValidation.cpp b/runtimes/tests/neural_networks_test/TestValidation.cpp
new file mode 100644
index 000000000..5a8c26c08
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/TestValidation.cpp
@@ -0,0 +1,489 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "NeuralNetworks.h"
+#if 0 // TODO-NNRT : Enable if we support OEM, shared memory
+#include "NeuralNetworksOEM.h"
+#include <android/sharedmem.h>
+#endif
+#include <gtest/gtest.h>
+#include <string>
+#include <sys/mman.h>
+// This file tests all the validations done by the Neural Networks API.
+namespace {
+class ValidationTest : public ::testing::Test {
+protected:
+ virtual void SetUp() {}
+};
+class ValidationTestModel : public ValidationTest {
+protected:
+ virtual void SetUp() {
+ ValidationTest::SetUp();
+ ASSERT_EQ(ANeuralNetworksModel_create(&mModel), ANEURALNETWORKS_NO_ERROR);
+ }
+ virtual void TearDown() {
+ ANeuralNetworksModel_free(mModel);
+ ValidationTest::TearDown();
+ }
+ ANeuralNetworksModel* mModel = nullptr;
+};
+class ValidationTestIdentify : public ValidationTestModel {
+ virtual void SetUp() {
+ ValidationTestModel::SetUp();
+ uint32_t dimensions[]{1};
+ ANeuralNetworksOperandType tensorType{.type = ANEURALNETWORKS_TENSOR_FLOAT32,
+ .dimensionCount = 1,
+ .dimensions = dimensions};
+ ANeuralNetworksOperandType scalarType{.type = ANEURALNETWORKS_INT32,
+ .dimensionCount = 0,
+ .dimensions = nullptr};
+ ASSERT_EQ(ANeuralNetworksModel_addOperand(mModel, &tensorType), ANEURALNETWORKS_NO_ERROR);
+ ASSERT_EQ(ANeuralNetworksModel_addOperand(mModel, &tensorType), ANEURALNETWORKS_NO_ERROR);
+ ASSERT_EQ(ANeuralNetworksModel_addOperand(mModel, &scalarType), ANEURALNETWORKS_NO_ERROR);
+ ASSERT_EQ(ANeuralNetworksModel_addOperand(mModel, &tensorType), ANEURALNETWORKS_NO_ERROR);
+ uint32_t inList[3]{0, 1, 2};
+ uint32_t outList[1]{3};
+ ASSERT_EQ(ANeuralNetworksModel_addOperation(mModel, ANEURALNETWORKS_ADD, 3, inList, 1,
+ outList),
+ ANEURALNETWORKS_NO_ERROR);
+ }
+ virtual void TearDown() {
+ ValidationTestModel::TearDown();
+ }
+};
+class ValidationTestCompilation : public ValidationTestModel {
+protected:
+ virtual void SetUp() {
+ ValidationTestModel::SetUp();
+ uint32_t dimensions[]{1};
+ ANeuralNetworksOperandType tensorType{.type = ANEURALNETWORKS_TENSOR_FLOAT32,
+ .dimensionCount = 1,
+ .dimensions = dimensions};
+ ANeuralNetworksOperandType scalarType{.type = ANEURALNETWORKS_INT32,
+ .dimensionCount = 0,
+ .dimensions = nullptr};
+ ASSERT_EQ(ANeuralNetworksModel_addOperand(mModel, &tensorType), ANEURALNETWORKS_NO_ERROR);
+ ASSERT_EQ(ANeuralNetworksModel_addOperand(mModel, &tensorType), ANEURALNETWORKS_NO_ERROR);
+ ASSERT_EQ(ANeuralNetworksModel_addOperand(mModel, &scalarType), ANEURALNETWORKS_NO_ERROR);
+ ASSERT_EQ(ANeuralNetworksModel_addOperand(mModel, &tensorType), ANEURALNETWORKS_NO_ERROR);
+ uint32_t inList[3]{0, 1, 2};
+ uint32_t outList[1]{3};
+ ASSERT_EQ(ANeuralNetworksModel_addOperation(mModel, ANEURALNETWORKS_ADD, 3, inList, 1,
+ outList),
+ ANEURALNETWORKS_NO_ERROR);
+ ASSERT_EQ(ANeuralNetworksModel_identifyInputsAndOutputs(mModel, 3, inList, 1, outList),
+ ANEURALNETWORKS_NO_ERROR);
+ ASSERT_EQ(ANeuralNetworksModel_finish(mModel), ANEURALNETWORKS_NO_ERROR);
+ ASSERT_EQ(ANeuralNetworksCompilation_create(mModel, &mCompilation),
+ ANEURALNETWORKS_NO_ERROR);
+ }
+ virtual void TearDown() {
+ ANeuralNetworksCompilation_free(mCompilation);
+ ValidationTestModel::TearDown();
+ }
+ ANeuralNetworksCompilation* mCompilation = nullptr;
+};
+class ValidationTestExecution : public ValidationTestCompilation {
+protected:
+ virtual void SetUp() {
+ ValidationTestCompilation::SetUp();
+ ASSERT_EQ(ANeuralNetworksCompilation_finish(mCompilation), ANEURALNETWORKS_NO_ERROR);
+ ASSERT_EQ(ANeuralNetworksExecution_create(mCompilation, &mExecution),
+ ANEURALNETWORKS_NO_ERROR);
+ }
+ virtual void TearDown() {
+ ANeuralNetworksExecution_free(mExecution);
+ ValidationTestCompilation::TearDown();
+ }
+ ANeuralNetworksExecution* mExecution = nullptr;
+};
+TEST_F(ValidationTest, CreateModel) {
+ EXPECT_EQ(ANeuralNetworksModel_create(nullptr), ANEURALNETWORKS_UNEXPECTED_NULL);
+}
+TEST_F(ValidationTestModel, AddOperand) {
+ ANeuralNetworksOperandType floatType{
+ .type = ANEURALNETWORKS_FLOAT32, .dimensionCount = 0, .dimensions = nullptr};
+ EXPECT_EQ(ANeuralNetworksModel_addOperand(nullptr, &floatType),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ EXPECT_EQ(ANeuralNetworksModel_addOperand(mModel, nullptr), ANEURALNETWORKS_UNEXPECTED_NULL);
+ ANeuralNetworksOperandType quant8TypeInvalidScale{
+ .type = ANEURALNETWORKS_TENSOR_QUANT8_ASYMM,
+ .dimensionCount = 0,
+ .dimensions = nullptr,
+ // Scale has to be non-negative
+ .scale = -1.0f,
+ .zeroPoint = 0,
+ };
+ EXPECT_EQ(ANeuralNetworksModel_addOperand(mModel, &quant8TypeInvalidScale),
+ ANEURALNETWORKS_BAD_DATA);
+ ANeuralNetworksOperandType quant8TypeInvalidZeroPoint{
+ .type = ANEURALNETWORKS_TENSOR_QUANT8_ASYMM,
+ .dimensionCount = 0,
+ .dimensions = nullptr,
+ .scale = 1.0f,
+ // zeroPoint has to be in [0, 255]
+ .zeroPoint = -1,
+ };
+ EXPECT_EQ(ANeuralNetworksModel_addOperand(mModel, &quant8TypeInvalidZeroPoint),
+ ANEURALNETWORKS_BAD_DATA);
+ uint32_t dim = 2;
+ ANeuralNetworksOperandType invalidScalarType{
+ .type = ANEURALNETWORKS_INT32,
+ // scalar types can only 0 dimensions.
+ .dimensionCount = 1,
+ .dimensions = &dim,
+ };
+ EXPECT_EQ(ANeuralNetworksModel_addOperand(mModel, &invalidScalarType),
+ ANEURALNETWORKS_BAD_DATA);
+ ANeuralNetworksModel_finish(mModel);
+ // This should fail, as the model is already finished.
+ EXPECT_EQ(ANeuralNetworksModel_addOperand(mModel, &floatType),
+ ANEURALNETWORKS_BAD_STATE);
+}
+TEST_F(ValidationTestModel, SetOperandValue) {
+ ANeuralNetworksOperandType floatType{
+ .type = ANEURALNETWORKS_FLOAT32, .dimensionCount = 0, .dimensions = nullptr};
+ EXPECT_EQ(ANeuralNetworksModel_addOperand(mModel, &floatType), ANEURALNETWORKS_NO_ERROR);
+ char buffer[20];
+ EXPECT_EQ(ANeuralNetworksModel_setOperandValue(nullptr, 0, buffer, sizeof(buffer)),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ EXPECT_EQ(ANeuralNetworksModel_setOperandValue(mModel, 0, nullptr, sizeof(buffer)),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ // This should fail, since buffer is not the size of a float32.
+ EXPECT_EQ(ANeuralNetworksModel_setOperandValue(mModel, 0, buffer, sizeof(buffer)),
+ ANEURALNETWORKS_BAD_DATA);
+ // This should succeed.
+ EXPECT_EQ(ANeuralNetworksModel_setOperandValue(mModel, 0, buffer, sizeof(float)),
+ ANEURALNETWORKS_NO_ERROR);
+ // This should fail, as this operand does not exist.
+ EXPECT_EQ(ANeuralNetworksModel_setOperandValue(mModel, 1, buffer, sizeof(float)),
+ ANEURALNETWORKS_BAD_DATA);
+ ANeuralNetworksModel_finish(mModel);
+ // This should fail, as the model is already finished.
+ EXPECT_EQ(ANeuralNetworksModel_setOperandValue(mModel, 0, buffer, sizeof(float)),
+ ANEURALNETWORKS_BAD_STATE);
+}
+#if 0 // TODO-NNRT : Enable if we support 'ASharedMemory_create'
+TEST_F(ValidationTestModel, SetOperandValueFromMemory) {
+ uint32_t dimensions[]{1};
+ ANeuralNetworksOperandType floatType{
+ .type = ANEURALNETWORKS_TENSOR_FLOAT32,
+ .dimensionCount = 1,
+ .dimensions = dimensions};
+ EXPECT_EQ(ANeuralNetworksModel_addOperand(mModel, &floatType), ANEURALNETWORKS_NO_ERROR);
+ const size_t memorySize = 20;
+ int memoryFd = ASharedMemory_create("nnMemory", memorySize);
+ ASSERT_GT(memoryFd, 0);
+ ANeuralNetworksMemory* memory;
+ EXPECT_EQ(ANeuralNetworksMemory_createFromFd(memorySize, PROT_READ | PROT_WRITE,
+ memoryFd, 0, &memory),
+ ANEURALNETWORKS_NO_ERROR);
+ EXPECT_EQ(ANeuralNetworksModel_setOperandValueFromMemory(nullptr, 0,
+ memory, 0, sizeof(float)),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ EXPECT_EQ(ANeuralNetworksModel_setOperandValueFromMemory(mModel, 0,
+ nullptr, 0, sizeof(float)),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ // This should fail, since the operand does not exist.
+ EXPECT_EQ(ANeuralNetworksModel_setOperandValueFromMemory(mModel, -1,
+ memory, 0, sizeof(float)),
+ ANEURALNETWORKS_BAD_DATA);
+ // This should fail, since memory is not the size of a float32.
+ EXPECT_EQ(ANeuralNetworksModel_setOperandValueFromMemory(mModel, 0,
+ memory, 0, memorySize),
+ ANEURALNETWORKS_BAD_DATA);
+ // This should fail, as this operand does not exist.
+ EXPECT_EQ(ANeuralNetworksModel_setOperandValueFromMemory(mModel, 1,
+ memory, 0, sizeof(float)),
+ ANEURALNETWORKS_BAD_DATA);
+ // This should fail, since offset is larger than memorySize.
+ EXPECT_EQ(ANeuralNetworksModel_setOperandValueFromMemory(mModel, 0,
+ memory, memorySize + 1,
+ sizeof(float)),
+ ANEURALNETWORKS_BAD_DATA);
+ // This should fail, since requested size is larger than the memory.
+ EXPECT_EQ(ANeuralNetworksModel_setOperandValueFromMemory(mModel, 0,
+ memory, memorySize - 3,
+ sizeof(float)),
+ ANEURALNETWORKS_BAD_DATA);
+ ANeuralNetworksModel_finish(mModel);
+ // This should fail, as the model is already finished.
+ EXPECT_EQ(ANeuralNetworksModel_setOperandValueFromMemory(mModel, 0,
+ memory, 0,
+ sizeof(float)),
+ ANEURALNETWORKS_BAD_STATE);
+}
+#endif // TODO-NNRT
+#if 0 // TODO-NNRT : Enable if we support OEM OP.
+TEST_F(ValidationTestModel, AddOEMOperand) {
+ ANeuralNetworksOperandType OEMScalarType{
+ .type = ANEURALNETWORKS_OEM_SCALAR, .dimensionCount = 0, .dimensions = nullptr};
+ EXPECT_EQ(ANeuralNetworksModel_addOperand(mModel, &OEMScalarType), ANEURALNETWORKS_NO_ERROR);
+ char buffer[20];
+ EXPECT_EQ(ANeuralNetworksModel_setOperandValue(mModel, 0, buffer, sizeof(buffer)),
+ ANEURALNETWORKS_NO_ERROR);
+ const size_t kByteSizeOfOEMTensor = 4;
+ uint32_t dimensions[]{kByteSizeOfOEMTensor};
+ ANeuralNetworksOperandType OEMTensorType{
+ .type = ANEURALNETWORKS_TENSOR_OEM_BYTE,
+ .dimensionCount = 1,
+ .dimensions = dimensions};
+ EXPECT_EQ(ANeuralNetworksModel_addOperand(mModel, &OEMTensorType), ANEURALNETWORKS_NO_ERROR);
+ EXPECT_EQ(ANeuralNetworksModel_setOperandValue(mModel, 1, buffer, kByteSizeOfOEMTensor),
+ ANEURALNETWORKS_NO_ERROR);
+ ANeuralNetworksModel_finish(mModel);
+ // This should fail, as the model is already finished.
+ EXPECT_EQ(ANeuralNetworksModel_addOperand(mModel, &OEMTensorType), ANEURALNETWORKS_BAD_STATE);
+}
+#endif // TODO-NNRT
+TEST_F(ValidationTestModel, AddOperation) {
+ uint32_t input = 0;
+ uint32_t output = 0;
+ EXPECT_EQ(ANeuralNetworksModel_addOperation(nullptr, ANEURALNETWORKS_AVERAGE_POOL_2D, 1, &input,
+ 1, &output),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ EXPECT_EQ(ANeuralNetworksModel_addOperation(mModel, ANEURALNETWORKS_AVERAGE_POOL_2D, 0, nullptr,
+ 1, &output),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ EXPECT_EQ(ANeuralNetworksModel_addOperation(mModel, ANEURALNETWORKS_AVERAGE_POOL_2D, 1, &input,
+ 0, nullptr),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ ANeuralNetworksOperationType invalidOp = -1;
+ EXPECT_EQ(ANeuralNetworksModel_addOperation(mModel, invalidOp, 1, &input,
+ 1, &output),
+ ANEURALNETWORKS_BAD_DATA);
+ ANeuralNetworksModel_finish(mModel);
+ // This should fail, as the model is already finished.
+ EXPECT_EQ(ANeuralNetworksModel_addOperation(mModel, ANEURALNETWORKS_AVERAGE_POOL_2D, 1, &input,
+ 1, &output),
+ ANEURALNETWORKS_BAD_STATE);
+}
+TEST_F(ValidationTestModel, IdentifyInputsAndOutputs) {
+ uint32_t input = 0;
+ uint32_t output = 0;
+ EXPECT_EQ(ANeuralNetworksModel_identifyInputsAndOutputs(nullptr, 1, &input, 1, &output),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ EXPECT_EQ(ANeuralNetworksModel_identifyInputsAndOutputs(mModel, 0, nullptr, 1, &output),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ EXPECT_EQ(ANeuralNetworksModel_identifyInputsAndOutputs(mModel, 1, &input, 0, nullptr),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ ANeuralNetworksModel_finish(mModel);
+ // This should fail, as the model is already finished.
+ EXPECT_EQ(ANeuralNetworksModel_identifyInputsAndOutputs(mModel, 1, &input, 1, &output),
+ ANEURALNETWORKS_BAD_STATE);
+}
+#if 0 // TODO-NNRT : Enable if we support 'RelaxComputationFloat32toFloat16'
+TEST_F(ValidationTestModel, RelaxComputationFloat32toFloat16) {
+ EXPECT_EQ(ANeuralNetworksModel_relaxComputationFloat32toFloat16(nullptr, true),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ ANeuralNetworksModel_finish(mModel);
+ // This should fail, as the model is already finished.
+ EXPECT_EQ(ANeuralNetworksModel_relaxComputationFloat32toFloat16(mModel, true),
+ ANEURALNETWORKS_BAD_STATE);
+ EXPECT_EQ(ANeuralNetworksModel_relaxComputationFloat32toFloat16(mModel, false),
+ ANEURALNETWORKS_BAD_STATE);
+}
+#endif
+TEST_F(ValidationTestModel, Finish) {
+ EXPECT_EQ(ANeuralNetworksModel_finish(nullptr), ANEURALNETWORKS_UNEXPECTED_NULL);
+ EXPECT_EQ(ANeuralNetworksModel_finish(mModel), ANEURALNETWORKS_NO_ERROR);
+ EXPECT_EQ(ANeuralNetworksModel_finish(mModel), ANEURALNETWORKS_BAD_STATE);
+}
+TEST_F(ValidationTestModel, CreateCompilation) {
+ ANeuralNetworksCompilation* compilation = nullptr;
+ EXPECT_EQ(ANeuralNetworksCompilation_create(nullptr, &compilation),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ EXPECT_EQ(ANeuralNetworksCompilation_create(mModel, nullptr), ANEURALNETWORKS_UNEXPECTED_NULL);
+ EXPECT_EQ(ANeuralNetworksCompilation_create(mModel, &compilation), ANEURALNETWORKS_BAD_STATE);
+}
+TEST_F(ValidationTestIdentify, Ok) {
+ uint32_t inList[3]{0, 1, 2};
+ uint32_t outList[1]{3};
+ ASSERT_EQ(ANeuralNetworksModel_identifyInputsAndOutputs(mModel, 3, inList, 1, outList),
+ ANEURALNETWORKS_NO_ERROR);
+ ASSERT_EQ(ANeuralNetworksModel_finish(mModel), ANEURALNETWORKS_NO_ERROR);
+}
+TEST_F(ValidationTestIdentify, InputIsOutput) {
+ uint32_t inList[3]{0, 1, 2};
+ uint32_t outList[2]{3, 0};
+ ASSERT_EQ(ANeuralNetworksModel_identifyInputsAndOutputs(mModel, 3, inList, 2, outList),
+ ANEURALNETWORKS_BAD_DATA);
+}
+TEST_F(ValidationTestIdentify, OutputIsInput) {
+ uint32_t inList[4]{0, 1, 2, 3};
+ uint32_t outList[1]{3};
+ ASSERT_EQ(ANeuralNetworksModel_identifyInputsAndOutputs(mModel, 4, inList, 1, outList),
+ ANEURALNETWORKS_BAD_DATA);
+}
+TEST_F(ValidationTestIdentify, DuplicateInputs) {
+ uint32_t inList[4]{0, 1, 2, 0};
+ uint32_t outList[1]{3};
+ ASSERT_EQ(ANeuralNetworksModel_identifyInputsAndOutputs(mModel, 4, inList, 1, outList),
+ ANEURALNETWORKS_BAD_DATA);
+}
+TEST_F(ValidationTestIdentify, DuplicateOutputs) {
+ uint32_t inList[3]{0, 1, 2};
+ uint32_t outList[2]{3, 3};
+ ASSERT_EQ(ANeuralNetworksModel_identifyInputsAndOutputs(mModel, 3, inList, 2, outList),
+ ANEURALNETWORKS_BAD_DATA);
+}
+TEST_F(ValidationTestCompilation, SetPreference) {
+ EXPECT_EQ(ANeuralNetworksCompilation_setPreference(nullptr, ANEURALNETWORKS_PREFER_LOW_POWER),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ EXPECT_EQ(ANeuralNetworksCompilation_setPreference(mCompilation, 40), ANEURALNETWORKS_BAD_DATA);
+}
+TEST_F(ValidationTestCompilation, CreateExecution) {
+ ANeuralNetworksExecution* execution = nullptr;
+ EXPECT_EQ(ANeuralNetworksExecution_create(nullptr, &execution),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ EXPECT_EQ(ANeuralNetworksExecution_create(mCompilation, nullptr),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ EXPECT_EQ(ANeuralNetworksExecution_create(mCompilation, &execution),
+ ANEURALNETWORKS_BAD_STATE);
+}
+TEST_F(ValidationTestCompilation, Finish) {
+ EXPECT_EQ(ANeuralNetworksCompilation_finish(nullptr), ANEURALNETWORKS_UNEXPECTED_NULL);
+ EXPECT_EQ(ANeuralNetworksCompilation_finish(mCompilation), ANEURALNETWORKS_NO_ERROR);
+ EXPECT_EQ(ANeuralNetworksCompilation_setPreference(mCompilation,
+ ANEURALNETWORKS_PREFER_FAST_SINGLE_ANSWER),
+ ANEURALNETWORKS_BAD_STATE);
+ EXPECT_EQ(ANeuralNetworksCompilation_finish(mCompilation), ANEURALNETWORKS_BAD_STATE);
+}
+TEST_F(ValidationTestExecution, SetInput) {
+ ANeuralNetworksExecution* execution;
+ EXPECT_EQ(ANeuralNetworksExecution_create(mCompilation, &execution), ANEURALNETWORKS_NO_ERROR);
+ char buffer[20];
+ EXPECT_EQ(ANeuralNetworksExecution_setInput(nullptr, 0, nullptr, buffer, sizeof(float)),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ EXPECT_EQ(ANeuralNetworksExecution_setInput(execution, 0, nullptr, nullptr, sizeof(float)),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ // This should fail, since memory is not the size of a float32.
+ EXPECT_EQ(ANeuralNetworksExecution_setInput(execution, 0, nullptr, buffer, 20),
+ ANEURALNETWORKS_BAD_DATA);
+ // This should fail, as this operand does not exist.
+ EXPECT_EQ(ANeuralNetworksExecution_setInput(execution, 999, nullptr, buffer, sizeof(float)),
+ ANEURALNETWORKS_BAD_DATA);
+ // This should fail, as this operand does not exist.
+ EXPECT_EQ(ANeuralNetworksExecution_setInput(execution, -1, nullptr, buffer, sizeof(float)),
+ ANEURALNETWORKS_BAD_DATA);
+}
+TEST_F(ValidationTestExecution, SetOutput) {
+ ANeuralNetworksExecution* execution;
+ EXPECT_EQ(ANeuralNetworksExecution_create(mCompilation, &execution), ANEURALNETWORKS_NO_ERROR);
+ char buffer[20];
+ EXPECT_EQ(ANeuralNetworksExecution_setOutput(nullptr, 0, nullptr, buffer, sizeof(float)),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ EXPECT_EQ(ANeuralNetworksExecution_setOutput(execution, 0, nullptr, nullptr, sizeof(float)),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ // This should fail, since memory is not the size of a float32.
+ EXPECT_EQ(ANeuralNetworksExecution_setOutput(execution, 0, nullptr, buffer, 20),
+ ANEURALNETWORKS_BAD_DATA);
+ // This should fail, as this operand does not exist.
+ EXPECT_EQ(ANeuralNetworksExecution_setOutput(execution, 999, nullptr, buffer, sizeof(float)),
+ ANEURALNETWORKS_BAD_DATA);
+ // This should fail, as this operand does not exist.
+ EXPECT_EQ(ANeuralNetworksExecution_setOutput(execution, -1, nullptr, buffer, sizeof(float)),
+ ANEURALNETWORKS_BAD_DATA);
+}
+#if 0 // TODO-NNRT : Enable if we support 'ASharedMemory_create'
+TEST_F(ValidationTestExecution, SetInputFromMemory) {
+ ANeuralNetworksExecution* execution;
+ EXPECT_EQ(ANeuralNetworksExecution_create(mCompilation, &execution), ANEURALNETWORKS_NO_ERROR);
+ const size_t memorySize = 20;
+ int memoryFd = ASharedMemory_create("nnMemory", memorySize);
+ ASSERT_GT(memoryFd, 0);
+ ANeuralNetworksMemory* memory;
+ EXPECT_EQ(ANeuralNetworksMemory_createFromFd(memorySize, PROT_READ | PROT_WRITE,
+ memoryFd, 0, &memory),
+ ANEURALNETWORKS_NO_ERROR);
+ EXPECT_EQ(ANeuralNetworksExecution_setInputFromMemory(nullptr, 0, nullptr,
+ memory, 0, sizeof(float)),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ EXPECT_EQ(ANeuralNetworksExecution_setInputFromMemory(execution, 0, nullptr,
+ nullptr, 0, sizeof(float)),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ // This should fail, since the operand does not exist.
+ EXPECT_EQ(ANeuralNetworksExecution_setInputFromMemory(execution, 999, nullptr,
+ memory, 0, sizeof(float)),
+ ANEURALNETWORKS_BAD_DATA);
+ // This should fail, since the operand does not exist.
+ EXPECT_EQ(ANeuralNetworksExecution_setInputFromMemory(execution, -1, nullptr,
+ memory, 0, sizeof(float)),
+ ANEURALNETWORKS_BAD_DATA);
+ // This should fail, since memory is not the size of a float32.
+ EXPECT_EQ(ANeuralNetworksExecution_setInputFromMemory(execution, 0, nullptr,
+ memory, 0, memorySize),
+ ANEURALNETWORKS_BAD_DATA);
+ // This should fail, since offset is larger than memorySize.
+ EXPECT_EQ(ANeuralNetworksExecution_setInputFromMemory(execution, 0, nullptr,
+ memory, memorySize + 1, sizeof(float)),
+ ANEURALNETWORKS_BAD_DATA);
+ // This should fail, since requested size is larger than the memory.
+ EXPECT_EQ(ANeuralNetworksExecution_setInputFromMemory(execution, 0, nullptr,
+ memory, memorySize - 3, sizeof(float)),
+ ANEURALNETWORKS_BAD_DATA);
+}
+TEST_F(ValidationTestExecution, SetOutputFromMemory) {
+ ANeuralNetworksExecution* execution;
+ EXPECT_EQ(ANeuralNetworksExecution_create(mCompilation, &execution), ANEURALNETWORKS_NO_ERROR);
+ const size_t memorySize = 20;
+ int memoryFd = ASharedMemory_create("nnMemory", memorySize);
+ ASSERT_GT(memoryFd, 0);
+ ANeuralNetworksMemory* memory;
+ EXPECT_EQ(ANeuralNetworksMemory_createFromFd(memorySize, PROT_READ | PROT_WRITE,
+ memoryFd, 0, &memory),
+ ANEURALNETWORKS_NO_ERROR);
+ EXPECT_EQ(ANeuralNetworksExecution_setOutputFromMemory(nullptr, 0, nullptr,
+ memory, 0, sizeof(float)),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ EXPECT_EQ(ANeuralNetworksExecution_setOutputFromMemory(execution, 0, nullptr,
+ nullptr, 0, sizeof(float)),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ // This should fail, since the operand does not exist.
+ EXPECT_EQ(ANeuralNetworksExecution_setOutputFromMemory(execution, 999, nullptr,
+ memory, 0, sizeof(float)),
+ ANEURALNETWORKS_BAD_DATA);
+ // This should fail, since the operand does not exist.
+ EXPECT_EQ(ANeuralNetworksExecution_setOutputFromMemory(execution, -1, nullptr,
+ memory, 0, sizeof(float)),
+ ANEURALNETWORKS_BAD_DATA);
+ // This should fail, since memory is not the size of a float32.
+ EXPECT_EQ(ANeuralNetworksExecution_setOutputFromMemory(execution, 0, nullptr,
+ memory, 0, memorySize),
+ ANEURALNETWORKS_BAD_DATA);
+ // This should fail, since offset is larger than memorySize.
+ EXPECT_EQ(ANeuralNetworksExecution_setOutputFromMemory(execution, 0, nullptr,
+ memory, memorySize + 1, sizeof(float)),
+ ANEURALNETWORKS_BAD_DATA);
+ // This should fail, since requested size is larger than the memory.
+ EXPECT_EQ(ANeuralNetworksExecution_setOutputFromMemory(execution, 0, nullptr,
+ memory, memorySize - 3, sizeof(float)),
+ ANEURALNETWORKS_BAD_DATA);
+}
+#endif // TODO-NNRT
+TEST_F(ValidationTestExecution, StartCompute) {
+ ANeuralNetworksExecution* execution;
+ EXPECT_EQ(ANeuralNetworksExecution_create(mCompilation, &execution), ANEURALNETWORKS_NO_ERROR);
+ ANeuralNetworksEvent* event;
+ EXPECT_EQ(ANeuralNetworksExecution_startCompute(nullptr, &event),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+ EXPECT_EQ(ANeuralNetworksExecution_startCompute(execution, nullptr),
+ ANEURALNETWORKS_UNEXPECTED_NULL);
+}
+TEST_F(ValidationTestExecution, EventWait) {
+ EXPECT_EQ(ANeuralNetworksEvent_wait(nullptr), ANEURALNETWORKS_UNEXPECTED_NULL);
+}
+} // namespace
diff --git a/runtimes/tests/neural_networks_test/generated/all_generated_tests.cpp b/runtimes/tests/neural_networks_test/generated/all_generated_tests.cpp
new file mode 100644
index 000000000..4dc3d5935
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/all_generated_tests.cpp
@@ -0,0 +1,1025 @@
+// DO NOT EDIT;
+// Generated by ml/nn/runtime/test/specs/generate_test.sh
+
+namespace add_broadcast_quant8 {
+std::vector<MixedTypedExample> examples = {
+// Generated add_broadcast_quant8 test
+#include "generated/examples/add_broadcast_quant8.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/add_broadcast_quant8.model.cpp"
+} // namespace add_broadcast_quant8
+TEST_F(GeneratedTests, add_broadcast_quant8) {
+ execute(add_broadcast_quant8::CreateModel,
+ add_broadcast_quant8::is_ignored,
+ add_broadcast_quant8::examples);
+}
+
+namespace add {
+std::vector<MixedTypedExample> examples = {
+// Generated add test
+#include "generated/examples/add.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/add.model.cpp"
+} // namespace add
+TEST_F(GeneratedTests, add) {
+ execute(add::CreateModel,
+ add::is_ignored,
+ add::examples);
+}
+
+namespace add_quant8 {
+std::vector<MixedTypedExample> examples = {
+// Generated add_quant8 test
+#include "generated/examples/add_quant8.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/add_quant8.model.cpp"
+} // namespace add_quant8
+TEST_F(GeneratedTests, add_quant8) {
+ execute(add_quant8::CreateModel,
+ add_quant8::is_ignored,
+ add_quant8::examples);
+}
+
+namespace avg_pool_float_1 {
+std::vector<MixedTypedExample> examples = {
+// Generated avg_pool_float_1 test
+#include "generated/examples/avg_pool_float_1.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/avg_pool_float_1.model.cpp"
+} // namespace avg_pool_float_1
+TEST_F(GeneratedTests, avg_pool_float_1) {
+ execute(avg_pool_float_1::CreateModel,
+ avg_pool_float_1::is_ignored,
+ avg_pool_float_1::examples);
+}
+
+namespace avg_pool_float_3 {
+std::vector<MixedTypedExample> examples = {
+// Generated avg_pool_float_3 test
+#include "generated/examples/avg_pool_float_3.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/avg_pool_float_3.model.cpp"
+} // namespace avg_pool_float_3
+TEST_F(GeneratedTests, avg_pool_float_3) {
+ execute(avg_pool_float_3::CreateModel,
+ avg_pool_float_3::is_ignored,
+ avg_pool_float_3::examples);
+}
+
+namespace avg_pool_float_5 {
+std::vector<MixedTypedExample> examples = {
+// Generated avg_pool_float_5 test
+#include "generated/examples/avg_pool_float_5.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/avg_pool_float_5.model.cpp"
+} // namespace avg_pool_float_5
+TEST_F(GeneratedTests, avg_pool_float_5) {
+ execute(avg_pool_float_5::CreateModel,
+ avg_pool_float_5::is_ignored,
+ avg_pool_float_5::examples);
+}
+
+namespace avg_pool_quant8_1 {
+std::vector<MixedTypedExample> examples = {
+// Generated avg_pool_quant8_1 test
+#include "generated/examples/avg_pool_quant8_1.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/avg_pool_quant8_1.model.cpp"
+} // namespace avg_pool_quant8_1
+TEST_F(GeneratedTests, avg_pool_quant8_1) {
+ execute(avg_pool_quant8_1::CreateModel,
+ avg_pool_quant8_1::is_ignored,
+ avg_pool_quant8_1::examples);
+}
+
+namespace avg_pool_quant8_2 {
+std::vector<MixedTypedExample> examples = {
+// Generated avg_pool_quant8_2 test
+#include "generated/examples/avg_pool_quant8_2.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/avg_pool_quant8_2.model.cpp"
+} // namespace avg_pool_quant8_2
+TEST_F(GeneratedTests, avg_pool_quant8_2) {
+ execute(avg_pool_quant8_2::CreateModel,
+ avg_pool_quant8_2::is_ignored,
+ avg_pool_quant8_2::examples);
+}
+
+namespace avg_pool_quant8_3 {
+std::vector<MixedTypedExample> examples = {
+// Generated avg_pool_quant8_3 test
+#include "generated/examples/avg_pool_quant8_3.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/avg_pool_quant8_3.model.cpp"
+} // namespace avg_pool_quant8_3
+TEST_F(GeneratedTests, avg_pool_quant8_3) {
+ execute(avg_pool_quant8_3::CreateModel,
+ avg_pool_quant8_3::is_ignored,
+ avg_pool_quant8_3::examples);
+}
+
+namespace avg_pool_quant8_4 {
+std::vector<MixedTypedExample> examples = {
+// Generated avg_pool_quant8_4 test
+#include "generated/examples/avg_pool_quant8_4.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/avg_pool_quant8_4.model.cpp"
+} // namespace avg_pool_quant8_4
+TEST_F(GeneratedTests, avg_pool_quant8_4) {
+ execute(avg_pool_quant8_4::CreateModel,
+ avg_pool_quant8_4::is_ignored,
+ avg_pool_quant8_4::examples);
+}
+
+namespace avg_pool_quant8_5 {
+std::vector<MixedTypedExample> examples = {
+// Generated avg_pool_quant8_5 test
+#include "generated/examples/avg_pool_quant8_5.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/avg_pool_quant8_5.model.cpp"
+} // namespace avg_pool_quant8_5
+TEST_F(GeneratedTests, avg_pool_quant8_5) {
+ execute(avg_pool_quant8_5::CreateModel,
+ avg_pool_quant8_5::is_ignored,
+ avg_pool_quant8_5::examples);
+}
+
+namespace concat_quant8_1 {
+std::vector<MixedTypedExample> examples = {
+// Generated concat_quant8_1 test
+#include "generated/examples/concat_quant8_1.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/concat_quant8_1.model.cpp"
+} // namespace concat_quant8_1
+TEST_F(GeneratedTests, concat_quant8_1) {
+ execute(concat_quant8_1::CreateModel,
+ concat_quant8_1::is_ignored,
+ concat_quant8_1::examples);
+}
+
+namespace concat_quant8_2 {
+std::vector<MixedTypedExample> examples = {
+// Generated concat_quant8_2 test
+#include "generated/examples/concat_quant8_2.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/concat_quant8_2.model.cpp"
+} // namespace concat_quant8_2
+TEST_F(GeneratedTests, concat_quant8_2) {
+ execute(concat_quant8_2::CreateModel,
+ concat_quant8_2::is_ignored,
+ concat_quant8_2::examples);
+}
+
+namespace concat_quant8_3 {
+std::vector<MixedTypedExample> examples = {
+// Generated concat_quant8_3 test
+#include "generated/examples/concat_quant8_3.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/concat_quant8_3.model.cpp"
+} // namespace concat_quant8_3
+TEST_F(GeneratedTests, concat_quant8_3) {
+ execute(concat_quant8_3::CreateModel,
+ concat_quant8_3::is_ignored,
+ concat_quant8_3::examples);
+}
+
+namespace conv_1_h3_w2_SAME {
+std::vector<MixedTypedExample> examples = {
+// Generated conv_1_h3_w2_SAME test
+#include "generated/examples/conv_1_h3_w2_SAME.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/conv_1_h3_w2_SAME.model.cpp"
+} // namespace conv_1_h3_w2_SAME
+TEST_F(GeneratedTests, conv_1_h3_w2_SAME) {
+ execute(conv_1_h3_w2_SAME::CreateModel,
+ conv_1_h3_w2_SAME::is_ignored,
+ conv_1_h3_w2_SAME::examples);
+}
+
+namespace conv_1_h3_w2_VALID {
+std::vector<MixedTypedExample> examples = {
+// Generated conv_1_h3_w2_VALID test
+#include "generated/examples/conv_1_h3_w2_VALID.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/conv_1_h3_w2_VALID.model.cpp"
+} // namespace conv_1_h3_w2_VALID
+TEST_F(GeneratedTests, conv_1_h3_w2_VALID) {
+ execute(conv_1_h3_w2_VALID::CreateModel,
+ conv_1_h3_w2_VALID::is_ignored,
+ conv_1_h3_w2_VALID::examples);
+}
+
+namespace conv_3_h3_w2_SAME {
+std::vector<MixedTypedExample> examples = {
+// Generated conv_3_h3_w2_SAME test
+#include "generated/examples/conv_3_h3_w2_SAME.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/conv_3_h3_w2_SAME.model.cpp"
+} // namespace conv_3_h3_w2_SAME
+TEST_F(GeneratedTests, conv_3_h3_w2_SAME) {
+ execute(conv_3_h3_w2_SAME::CreateModel,
+ conv_3_h3_w2_SAME::is_ignored,
+ conv_3_h3_w2_SAME::examples);
+}
+
+namespace conv_3_h3_w2_VALID {
+std::vector<MixedTypedExample> examples = {
+// Generated conv_3_h3_w2_VALID test
+#include "generated/examples/conv_3_h3_w2_VALID.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/conv_3_h3_w2_VALID.model.cpp"
+} // namespace conv_3_h3_w2_VALID
+TEST_F(GeneratedTests, conv_3_h3_w2_VALID) {
+ execute(conv_3_h3_w2_VALID::CreateModel,
+ conv_3_h3_w2_VALID::is_ignored,
+ conv_3_h3_w2_VALID::examples);
+}
+
+namespace conv_float_2 {
+std::vector<MixedTypedExample> examples = {
+// Generated conv_float_2 test
+#include "generated/examples/conv_float_2.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/conv_float_2.model.cpp"
+} // namespace conv_float_2
+TEST_F(GeneratedTests, conv_float_2) {
+ execute(conv_float_2::CreateModel,
+ conv_float_2::is_ignored,
+ conv_float_2::examples);
+}
+
+namespace conv_float_channels {
+std::vector<MixedTypedExample> examples = {
+// Generated conv_float_channels test
+#include "generated/examples/conv_float_channels.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/conv_float_channels.model.cpp"
+} // namespace conv_float_channels
+TEST_F(GeneratedTests, conv_float_channels) {
+ execute(conv_float_channels::CreateModel,
+ conv_float_channels::is_ignored,
+ conv_float_channels::examples);
+}
+
+namespace conv_float_channels_weights_as_inputs {
+std::vector<MixedTypedExample> examples = {
+// Generated conv_float_channels_weights_as_inputs test
+#include "generated/examples/conv_float_channels_weights_as_inputs.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/conv_float_channels_weights_as_inputs.model.cpp"
+} // namespace conv_float_channels_weights_as_inputs
+TEST_F(GeneratedTests, conv_float_channels_weights_as_inputs) {
+ execute(conv_float_channels_weights_as_inputs::CreateModel,
+ conv_float_channels_weights_as_inputs::is_ignored,
+ conv_float_channels_weights_as_inputs::examples);
+}
+
+namespace conv_float_large {
+std::vector<MixedTypedExample> examples = {
+// Generated conv_float_large test
+#include "generated/examples/conv_float_large.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/conv_float_large.model.cpp"
+} // namespace conv_float_large
+TEST_F(GeneratedTests, conv_float_large) {
+ execute(conv_float_large::CreateModel,
+ conv_float_large::is_ignored,
+ conv_float_large::examples);
+}
+
+namespace conv_float_large_weights_as_inputs {
+std::vector<MixedTypedExample> examples = {
+// Generated conv_float_large_weights_as_inputs test
+#include "generated/examples/conv_float_large_weights_as_inputs.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/conv_float_large_weights_as_inputs.model.cpp"
+} // namespace conv_float_large_weights_as_inputs
+TEST_F(GeneratedTests, conv_float_large_weights_as_inputs) {
+ execute(conv_float_large_weights_as_inputs::CreateModel,
+ conv_float_large_weights_as_inputs::is_ignored,
+ conv_float_large_weights_as_inputs::examples);
+}
+
+namespace conv_float {
+std::vector<MixedTypedExample> examples = {
+// Generated conv_float test
+#include "generated/examples/conv_float.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/conv_float.model.cpp"
+} // namespace conv_float
+TEST_F(GeneratedTests, conv_float) {
+ execute(conv_float::CreateModel,
+ conv_float::is_ignored,
+ conv_float::examples);
+}
+
+namespace conv_float_weights_as_inputs {
+std::vector<MixedTypedExample> examples = {
+// Generated conv_float_weights_as_inputs test
+#include "generated/examples/conv_float_weights_as_inputs.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/conv_float_weights_as_inputs.model.cpp"
+} // namespace conv_float_weights_as_inputs
+TEST_F(GeneratedTests, conv_float_weights_as_inputs) {
+ execute(conv_float_weights_as_inputs::CreateModel,
+ conv_float_weights_as_inputs::is_ignored,
+ conv_float_weights_as_inputs::examples);
+}
+
+namespace conv_quant8_2 {
+std::vector<MixedTypedExample> examples = {
+// Generated conv_quant8_2 test
+#include "generated/examples/conv_quant8_2.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/conv_quant8_2.model.cpp"
+} // namespace conv_quant8_2
+TEST_F(GeneratedTests, conv_quant8_2) {
+ execute(conv_quant8_2::CreateModel,
+ conv_quant8_2::is_ignored,
+ conv_quant8_2::examples);
+}
+
+namespace conv_quant8_channels {
+std::vector<MixedTypedExample> examples = {
+// Generated conv_quant8_channels test
+#include "generated/examples/conv_quant8_channels.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/conv_quant8_channels.model.cpp"
+} // namespace conv_quant8_channels
+TEST_F(GeneratedTests, conv_quant8_channels) {
+ execute(conv_quant8_channels::CreateModel,
+ conv_quant8_channels::is_ignored,
+ conv_quant8_channels::examples);
+}
+
+namespace conv_quant8_channels_weights_as_inputs {
+std::vector<MixedTypedExample> examples = {
+// Generated conv_quant8_channels_weights_as_inputs test
+#include "generated/examples/conv_quant8_channels_weights_as_inputs.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/conv_quant8_channels_weights_as_inputs.model.cpp"
+} // namespace conv_quant8_channels_weights_as_inputs
+TEST_F(GeneratedTests, conv_quant8_channels_weights_as_inputs) {
+ execute(conv_quant8_channels_weights_as_inputs::CreateModel,
+ conv_quant8_channels_weights_as_inputs::is_ignored,
+ conv_quant8_channels_weights_as_inputs::examples);
+}
+
+namespace conv_quant8_large {
+std::vector<MixedTypedExample> examples = {
+// Generated conv_quant8_large test
+#include "generated/examples/conv_quant8_large.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/conv_quant8_large.model.cpp"
+} // namespace conv_quant8_large
+TEST_F(GeneratedTests, conv_quant8_large) {
+ execute(conv_quant8_large::CreateModel,
+ conv_quant8_large::is_ignored,
+ conv_quant8_large::examples);
+}
+
+namespace conv_quant8_large_weights_as_inputs {
+std::vector<MixedTypedExample> examples = {
+// Generated conv_quant8_large_weights_as_inputs test
+#include "generated/examples/conv_quant8_large_weights_as_inputs.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/conv_quant8_large_weights_as_inputs.model.cpp"
+} // namespace conv_quant8_large_weights_as_inputs
+TEST_F(GeneratedTests, conv_quant8_large_weights_as_inputs) {
+ execute(conv_quant8_large_weights_as_inputs::CreateModel,
+ conv_quant8_large_weights_as_inputs::is_ignored,
+ conv_quant8_large_weights_as_inputs::examples);
+}
+
+namespace conv_quant8 {
+std::vector<MixedTypedExample> examples = {
+// Generated conv_quant8 test
+#include "generated/examples/conv_quant8.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/conv_quant8.model.cpp"
+} // namespace conv_quant8
+TEST_F(GeneratedTests, conv_quant8) {
+ execute(conv_quant8::CreateModel,
+ conv_quant8::is_ignored,
+ conv_quant8::examples);
+}
+
+namespace conv_quant8_overflow {
+std::vector<MixedTypedExample> examples = {
+// Generated conv_quant8_overflow test
+#include "generated/examples/conv_quant8_overflow.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/conv_quant8_overflow.model.cpp"
+} // namespace conv_quant8_overflow
+TEST_F(GeneratedTests, conv_quant8_overflow) {
+ execute(conv_quant8_overflow::CreateModel,
+ conv_quant8_overflow::is_ignored,
+ conv_quant8_overflow::examples);
+}
+
+namespace conv_quant8_overflow_weights_as_inputs {
+std::vector<MixedTypedExample> examples = {
+// Generated conv_quant8_overflow_weights_as_inputs test
+#include "generated/examples/conv_quant8_overflow_weights_as_inputs.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/conv_quant8_overflow_weights_as_inputs.model.cpp"
+} // namespace conv_quant8_overflow_weights_as_inputs
+TEST_F(GeneratedTests, conv_quant8_overflow_weights_as_inputs) {
+ execute(conv_quant8_overflow_weights_as_inputs::CreateModel,
+ conv_quant8_overflow_weights_as_inputs::is_ignored,
+ conv_quant8_overflow_weights_as_inputs::examples);
+}
+
+namespace conv_quant8_weights_as_inputs {
+std::vector<MixedTypedExample> examples = {
+// Generated conv_quant8_weights_as_inputs test
+#include "generated/examples/conv_quant8_weights_as_inputs.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/conv_quant8_weights_as_inputs.model.cpp"
+} // namespace conv_quant8_weights_as_inputs
+TEST_F(GeneratedTests, conv_quant8_weights_as_inputs) {
+ execute(conv_quant8_weights_as_inputs::CreateModel,
+ conv_quant8_weights_as_inputs::is_ignored,
+ conv_quant8_weights_as_inputs::examples);
+}
+
+namespace depthwise_conv2d_float_2 {
+std::vector<MixedTypedExample> examples = {
+// Generated depthwise_conv2d_float_2 test
+#include "generated/examples/depthwise_conv2d_float_2.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/depthwise_conv2d_float_2.model.cpp"
+} // namespace depthwise_conv2d_float_2
+TEST_F(GeneratedTests, depthwise_conv2d_float_2) {
+ execute(depthwise_conv2d_float_2::CreateModel,
+ depthwise_conv2d_float_2::is_ignored,
+ depthwise_conv2d_float_2::examples);
+}
+
+namespace depthwise_conv2d_float_large_2 {
+std::vector<MixedTypedExample> examples = {
+// Generated depthwise_conv2d_float_large_2 test
+#include "generated/examples/depthwise_conv2d_float_large_2.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/depthwise_conv2d_float_large_2.model.cpp"
+} // namespace depthwise_conv2d_float_large_2
+TEST_F(GeneratedTests, depthwise_conv2d_float_large_2) {
+ execute(depthwise_conv2d_float_large_2::CreateModel,
+ depthwise_conv2d_float_large_2::is_ignored,
+ depthwise_conv2d_float_large_2::examples);
+}
+
+namespace depthwise_conv2d_float_large_2_weights_as_inputs {
+std::vector<MixedTypedExample> examples = {
+// Generated depthwise_conv2d_float_large_2_weights_as_inputs test
+#include "generated/examples/depthwise_conv2d_float_large_2_weights_as_inputs.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/depthwise_conv2d_float_large_2_weights_as_inputs.model.cpp"
+} // namespace depthwise_conv2d_float_large_2_weights_as_inputs
+TEST_F(GeneratedTests, depthwise_conv2d_float_large_2_weights_as_inputs) {
+ execute(depthwise_conv2d_float_large_2_weights_as_inputs::CreateModel,
+ depthwise_conv2d_float_large_2_weights_as_inputs::is_ignored,
+ depthwise_conv2d_float_large_2_weights_as_inputs::examples);
+}
+
+namespace depthwise_conv2d_float_large {
+std::vector<MixedTypedExample> examples = {
+// Generated depthwise_conv2d_float_large test
+#include "generated/examples/depthwise_conv2d_float_large.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/depthwise_conv2d_float_large.model.cpp"
+} // namespace depthwise_conv2d_float_large
+TEST_F(GeneratedTests, depthwise_conv2d_float_large) {
+ execute(depthwise_conv2d_float_large::CreateModel,
+ depthwise_conv2d_float_large::is_ignored,
+ depthwise_conv2d_float_large::examples);
+}
+
+namespace depthwise_conv2d_float_large_weights_as_inputs {
+std::vector<MixedTypedExample> examples = {
+// Generated depthwise_conv2d_float_large_weights_as_inputs test
+#include "generated/examples/depthwise_conv2d_float_large_weights_as_inputs.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/depthwise_conv2d_float_large_weights_as_inputs.model.cpp"
+} // namespace depthwise_conv2d_float_large_weights_as_inputs
+TEST_F(GeneratedTests, depthwise_conv2d_float_large_weights_as_inputs) {
+ execute(depthwise_conv2d_float_large_weights_as_inputs::CreateModel,
+ depthwise_conv2d_float_large_weights_as_inputs::is_ignored,
+ depthwise_conv2d_float_large_weights_as_inputs::examples);
+}
+
+namespace depthwise_conv2d_float {
+std::vector<MixedTypedExample> examples = {
+// Generated depthwise_conv2d_float test
+#include "generated/examples/depthwise_conv2d_float.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/depthwise_conv2d_float.model.cpp"
+} // namespace depthwise_conv2d_float
+TEST_F(GeneratedTests, depthwise_conv2d_float) {
+ execute(depthwise_conv2d_float::CreateModel,
+ depthwise_conv2d_float::is_ignored,
+ depthwise_conv2d_float::examples);
+}
+
+namespace depthwise_conv2d_float_weights_as_inputs {
+std::vector<MixedTypedExample> examples = {
+// Generated depthwise_conv2d_float_weights_as_inputs test
+#include "generated/examples/depthwise_conv2d_float_weights_as_inputs.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/depthwise_conv2d_float_weights_as_inputs.model.cpp"
+} // namespace depthwise_conv2d_float_weights_as_inputs
+TEST_F(GeneratedTests, depthwise_conv2d_float_weights_as_inputs) {
+ execute(depthwise_conv2d_float_weights_as_inputs::CreateModel,
+ depthwise_conv2d_float_weights_as_inputs::is_ignored,
+ depthwise_conv2d_float_weights_as_inputs::examples);
+}
+
+namespace depthwise_conv {
+std::vector<MixedTypedExample> examples = {
+// Generated depthwise_conv test
+#include "generated/examples/depthwise_conv.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/depthwise_conv.model.cpp"
+} // namespace depthwise_conv
+TEST_F(GeneratedTests, depthwise_conv) {
+ execute(depthwise_conv::CreateModel,
+ depthwise_conv::is_ignored,
+ depthwise_conv::examples);
+}
+
+namespace fully_connected_float_2 {
+std::vector<MixedTypedExample> examples = {
+// Generated fully_connected_float_2 test
+#include "generated/examples/fully_connected_float_2.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/fully_connected_float_2.model.cpp"
+} // namespace fully_connected_float_2
+TEST_F(GeneratedTests, fully_connected_float_2) {
+ execute(fully_connected_float_2::CreateModel,
+ fully_connected_float_2::is_ignored,
+ fully_connected_float_2::examples);
+}
+
+namespace fully_connected_float_large {
+std::vector<MixedTypedExample> examples = {
+// Generated fully_connected_float_large test
+#include "generated/examples/fully_connected_float_large.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/fully_connected_float_large.model.cpp"
+} // namespace fully_connected_float_large
+TEST_F(GeneratedTests, fully_connected_float_large) {
+ execute(fully_connected_float_large::CreateModel,
+ fully_connected_float_large::is_ignored,
+ fully_connected_float_large::examples);
+}
+
+namespace fully_connected_float_large_weights_as_inputs {
+std::vector<MixedTypedExample> examples = {
+// Generated fully_connected_float_large_weights_as_inputs test
+#include "generated/examples/fully_connected_float_large_weights_as_inputs.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/fully_connected_float_large_weights_as_inputs.model.cpp"
+} // namespace fully_connected_float_large_weights_as_inputs
+TEST_F(GeneratedTests, fully_connected_float_large_weights_as_inputs) {
+ execute(fully_connected_float_large_weights_as_inputs::CreateModel,
+ fully_connected_float_large_weights_as_inputs::is_ignored,
+ fully_connected_float_large_weights_as_inputs::examples);
+}
+
+namespace fully_connected_float {
+std::vector<MixedTypedExample> examples = {
+// Generated fully_connected_float test
+#include "generated/examples/fully_connected_float.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/fully_connected_float.model.cpp"
+} // namespace fully_connected_float
+TEST_F(GeneratedTests, fully_connected_float) {
+ execute(fully_connected_float::CreateModel,
+ fully_connected_float::is_ignored,
+ fully_connected_float::examples);
+}
+
+namespace fully_connected_float_weights_as_inputs {
+std::vector<MixedTypedExample> examples = {
+// Generated fully_connected_float_weights_as_inputs test
+#include "generated/examples/fully_connected_float_weights_as_inputs.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/fully_connected_float_weights_as_inputs.model.cpp"
+} // namespace fully_connected_float_weights_as_inputs
+TEST_F(GeneratedTests, fully_connected_float_weights_as_inputs) {
+ execute(fully_connected_float_weights_as_inputs::CreateModel,
+ fully_connected_float_weights_as_inputs::is_ignored,
+ fully_connected_float_weights_as_inputs::examples);
+}
+
+namespace fully_connected_quant8_2 {
+std::vector<MixedTypedExample> examples = {
+// Generated fully_connected_quant8_2 test
+#include "generated/examples/fully_connected_quant8_2.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/fully_connected_quant8_2.model.cpp"
+} // namespace fully_connected_quant8_2
+TEST_F(GeneratedTests, fully_connected_quant8_2) {
+ execute(fully_connected_quant8_2::CreateModel,
+ fully_connected_quant8_2::is_ignored,
+ fully_connected_quant8_2::examples);
+}
+
+namespace fully_connected_quant8_large {
+std::vector<MixedTypedExample> examples = {
+// Generated fully_connected_quant8_large test
+#include "generated/examples/fully_connected_quant8_large.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/fully_connected_quant8_large.model.cpp"
+} // namespace fully_connected_quant8_large
+TEST_F(GeneratedTests, fully_connected_quant8_large) {
+ execute(fully_connected_quant8_large::CreateModel,
+ fully_connected_quant8_large::is_ignored,
+ fully_connected_quant8_large::examples);
+}
+
+namespace fully_connected_quant8_large_weights_as_inputs {
+std::vector<MixedTypedExample> examples = {
+// Generated fully_connected_quant8_large_weights_as_inputs test
+#include "generated/examples/fully_connected_quant8_large_weights_as_inputs.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/fully_connected_quant8_large_weights_as_inputs.model.cpp"
+} // namespace fully_connected_quant8_large_weights_as_inputs
+TEST_F(GeneratedTests, fully_connected_quant8_large_weights_as_inputs) {
+ execute(fully_connected_quant8_large_weights_as_inputs::CreateModel,
+ fully_connected_quant8_large_weights_as_inputs::is_ignored,
+ fully_connected_quant8_large_weights_as_inputs::examples);
+}
+
+namespace fully_connected_quant8 {
+std::vector<MixedTypedExample> examples = {
+// Generated fully_connected_quant8 test
+#include "generated/examples/fully_connected_quant8.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/fully_connected_quant8.model.cpp"
+} // namespace fully_connected_quant8
+TEST_F(GeneratedTests, fully_connected_quant8) {
+ execute(fully_connected_quant8::CreateModel,
+ fully_connected_quant8::is_ignored,
+ fully_connected_quant8::examples);
+}
+
+namespace fully_connected_quant8_weights_as_inputs {
+std::vector<MixedTypedExample> examples = {
+// Generated fully_connected_quant8_weights_as_inputs test
+#include "generated/examples/fully_connected_quant8_weights_as_inputs.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/fully_connected_quant8_weights_as_inputs.model.cpp"
+} // namespace fully_connected_quant8_weights_as_inputs
+TEST_F(GeneratedTests, fully_connected_quant8_weights_as_inputs) {
+ execute(fully_connected_quant8_weights_as_inputs::CreateModel,
+ fully_connected_quant8_weights_as_inputs::is_ignored,
+ fully_connected_quant8_weights_as_inputs::examples);
+}
+
+namespace max_pool_float_1 {
+std::vector<MixedTypedExample> examples = {
+// Generated max_pool_float_1 test
+#include "generated/examples/max_pool_float_1.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/max_pool_float_1.model.cpp"
+} // namespace max_pool_float_1
+TEST_F(GeneratedTests, max_pool_float_1) {
+ execute(max_pool_float_1::CreateModel,
+ max_pool_float_1::is_ignored,
+ max_pool_float_1::examples);
+}
+
+namespace max_pool_float_4 {
+std::vector<MixedTypedExample> examples = {
+// Generated max_pool_float_4 test
+#include "generated/examples/max_pool_float_4.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/max_pool_float_4.model.cpp"
+} // namespace max_pool_float_4
+TEST_F(GeneratedTests, max_pool_float_4) {
+ execute(max_pool_float_4::CreateModel,
+ max_pool_float_4::is_ignored,
+ max_pool_float_4::examples);
+}
+
+namespace max_pool_quant8_1 {
+std::vector<MixedTypedExample> examples = {
+// Generated max_pool_quant8_1 test
+#include "generated/examples/max_pool_quant8_1.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/max_pool_quant8_1.model.cpp"
+} // namespace max_pool_quant8_1
+TEST_F(GeneratedTests, max_pool_quant8_1) {
+ execute(max_pool_quant8_1::CreateModel,
+ max_pool_quant8_1::is_ignored,
+ max_pool_quant8_1::examples);
+}
+
+namespace max_pool_quant8_2 {
+std::vector<MixedTypedExample> examples = {
+// Generated max_pool_quant8_2 test
+#include "generated/examples/max_pool_quant8_2.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/max_pool_quant8_2.model.cpp"
+} // namespace max_pool_quant8_2
+TEST_F(GeneratedTests, max_pool_quant8_2) {
+ execute(max_pool_quant8_2::CreateModel,
+ max_pool_quant8_2::is_ignored,
+ max_pool_quant8_2::examples);
+}
+
+namespace max_pool_quant8_3 {
+std::vector<MixedTypedExample> examples = {
+// Generated max_pool_quant8_3 test
+#include "generated/examples/max_pool_quant8_3.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/max_pool_quant8_3.model.cpp"
+} // namespace max_pool_quant8_3
+TEST_F(GeneratedTests, max_pool_quant8_3) {
+ execute(max_pool_quant8_3::CreateModel,
+ max_pool_quant8_3::is_ignored,
+ max_pool_quant8_3::examples);
+}
+
+namespace max_pool_quant8_4 {
+std::vector<MixedTypedExample> examples = {
+// Generated max_pool_quant8_4 test
+#include "generated/examples/max_pool_quant8_4.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/max_pool_quant8_4.model.cpp"
+} // namespace max_pool_quant8_4
+TEST_F(GeneratedTests, max_pool_quant8_4) {
+ execute(max_pool_quant8_4::CreateModel,
+ max_pool_quant8_4::is_ignored,
+ max_pool_quant8_4::examples);
+}
+
+namespace mul_broadcast_quant8 {
+std::vector<MixedTypedExample> examples = {
+// Generated mul_broadcast_quant8 test
+#include "generated/examples/mul_broadcast_quant8.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/mul_broadcast_quant8.model.cpp"
+} // namespace mul_broadcast_quant8
+TEST_F(GeneratedTests, mul_broadcast_quant8) {
+ execute(mul_broadcast_quant8::CreateModel,
+ mul_broadcast_quant8::is_ignored,
+ mul_broadcast_quant8::examples);
+}
+
+namespace mul {
+std::vector<MixedTypedExample> examples = {
+// Generated mul test
+#include "generated/examples/mul.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/mul.model.cpp"
+} // namespace mul
+TEST_F(GeneratedTests, mul) {
+ execute(mul::CreateModel,
+ mul::is_ignored,
+ mul::examples);
+}
+
+namespace mul_quant8 {
+std::vector<MixedTypedExample> examples = {
+// Generated mul_quant8 test
+#include "generated/examples/mul_quant8.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/mul_quant8.model.cpp"
+} // namespace mul_quant8
+TEST_F(GeneratedTests, mul_quant8) {
+ execute(mul_quant8::CreateModel,
+ mul_quant8::is_ignored,
+ mul_quant8::examples);
+}
+
+namespace mul_relu {
+std::vector<MixedTypedExample> examples = {
+// Generated mul_relu test
+#include "generated/examples/mul_relu.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/mul_relu.model.cpp"
+} // namespace mul_relu
+TEST_F(GeneratedTests, mul_relu) {
+ execute(mul_relu::CreateModel,
+ mul_relu::is_ignored,
+ mul_relu::examples);
+}
+
+namespace relu6_float_1 {
+std::vector<MixedTypedExample> examples = {
+// Generated relu6_float_1 test
+#include "generated/examples/relu6_float_1.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/relu6_float_1.model.cpp"
+} // namespace relu6_float_1
+TEST_F(GeneratedTests, relu6_float_1) {
+ execute(relu6_float_1::CreateModel,
+ relu6_float_1::is_ignored,
+ relu6_float_1::examples);
+}
+
+namespace relu6_float_2 {
+std::vector<MixedTypedExample> examples = {
+// Generated relu6_float_2 test
+#include "generated/examples/relu6_float_2.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/relu6_float_2.model.cpp"
+} // namespace relu6_float_2
+TEST_F(GeneratedTests, relu6_float_2) {
+ execute(relu6_float_2::CreateModel,
+ relu6_float_2::is_ignored,
+ relu6_float_2::examples);
+}
+
+namespace relu6_quant8_1 {
+std::vector<MixedTypedExample> examples = {
+// Generated relu6_quant8_1 test
+#include "generated/examples/relu6_quant8_1.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/relu6_quant8_1.model.cpp"
+} // namespace relu6_quant8_1
+TEST_F(GeneratedTests, relu6_quant8_1) {
+ execute(relu6_quant8_1::CreateModel,
+ relu6_quant8_1::is_ignored,
+ relu6_quant8_1::examples);
+}
+
+namespace relu6_quant8_2 {
+std::vector<MixedTypedExample> examples = {
+// Generated relu6_quant8_2 test
+#include "generated/examples/relu6_quant8_2.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/relu6_quant8_2.model.cpp"
+} // namespace relu6_quant8_2
+TEST_F(GeneratedTests, relu6_quant8_2) {
+ execute(relu6_quant8_2::CreateModel,
+ relu6_quant8_2::is_ignored,
+ relu6_quant8_2::examples);
+}
+
+namespace reshape {
+std::vector<MixedTypedExample> examples = {
+// Generated reshape test
+#include "generated/examples/reshape.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/reshape.model.cpp"
+} // namespace reshape
+TEST_F(GeneratedTests, reshape) {
+ execute(reshape::CreateModel,
+ reshape::is_ignored,
+ reshape::examples);
+}
+
+namespace reshape_quant8 {
+std::vector<MixedTypedExample> examples = {
+// Generated reshape_quant8 test
+#include "generated/examples/reshape_quant8.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/reshape_quant8.model.cpp"
+} // namespace reshape_quant8
+TEST_F(GeneratedTests, reshape_quant8) {
+ execute(reshape_quant8::CreateModel,
+ reshape_quant8::is_ignored,
+ reshape_quant8::examples);
+}
+
+namespace reshape_quant8_weights_as_inputs {
+std::vector<MixedTypedExample> examples = {
+// Generated reshape_quant8_weights_as_inputs test
+#include "generated/examples/reshape_quant8_weights_as_inputs.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/reshape_quant8_weights_as_inputs.model.cpp"
+} // namespace reshape_quant8_weights_as_inputs
+TEST_F(GeneratedTests, reshape_quant8_weights_as_inputs) {
+ execute(reshape_quant8_weights_as_inputs::CreateModel,
+ reshape_quant8_weights_as_inputs::is_ignored,
+ reshape_quant8_weights_as_inputs::examples);
+}
+
+namespace reshape_weights_as_inputs {
+std::vector<MixedTypedExample> examples = {
+// Generated reshape_weights_as_inputs test
+#include "generated/examples/reshape_weights_as_inputs.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/reshape_weights_as_inputs.model.cpp"
+} // namespace reshape_weights_as_inputs
+TEST_F(GeneratedTests, reshape_weights_as_inputs) {
+ execute(reshape_weights_as_inputs::CreateModel,
+ reshape_weights_as_inputs::is_ignored,
+ reshape_weights_as_inputs::examples);
+}
+
+namespace softmax_float_1 {
+std::vector<MixedTypedExample> examples = {
+// Generated softmax_float_1 test
+#include "generated/examples/softmax_float_1.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/softmax_float_1.model.cpp"
+} // namespace softmax_float_1
+TEST_F(GeneratedTests, softmax_float_1) {
+ execute(softmax_float_1::CreateModel,
+ softmax_float_1::is_ignored,
+ softmax_float_1::examples);
+}
+
+namespace softmax_quant8_1 {
+std::vector<MixedTypedExample> examples = {
+// Generated softmax_quant8_1 test
+#include "generated/examples/softmax_quant8_1.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/softmax_quant8_1.model.cpp"
+} // namespace softmax_quant8_1
+TEST_F(GeneratedTests, softmax_quant8_1) {
+ execute(softmax_quant8_1::CreateModel,
+ softmax_quant8_1::is_ignored,
+ softmax_quant8_1::examples);
+}
+
+namespace softmax_quant8_2 {
+std::vector<MixedTypedExample> examples = {
+// Generated softmax_quant8_2 test
+#include "generated/examples/softmax_quant8_2.example.cpp"
+};
+// Generated model constructor
+#include "generated/models/softmax_quant8_2.model.cpp"
+} // namespace softmax_quant8_2
+TEST_F(GeneratedTests, softmax_quant8_2) {
+ execute(softmax_quant8_2::CreateModel,
+ softmax_quant8_2::is_ignored,
+ softmax_quant8_2::examples);
+}
+
diff --git a/runtimes/tests/neural_networks_test/generated/examples/add.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/add.example.cpp
new file mode 100644
index 000000000..540131854
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/add.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: add.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 2.0f}}, {1, {3.0f, 4.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {4.0f, 6.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/add_broadcast_quant8.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/add_broadcast_quant8.example.cpp
new file mode 100644
index 000000000..d9eebee84
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/add_broadcast_quant8.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: add_broadcast_quant8.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2}}, {1, {1, 2, 3, 4}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {3, 6, 5, 8}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/add_quant8.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/add_quant8.example.cpp
new file mode 100644
index 000000000..3f23cbcd9
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/add_quant8.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: add_quant8.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2}}, {1, {3, 4}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {5, 8}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/avg_pool_float_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/avg_pool_float_1.example.cpp
new file mode 100644
index 000000000..4ed1b0059
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/avg_pool_float_1.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: avg_pool_float_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 2.0f, 3.0f, 4.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 2.0f, 3.0f, 4.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/avg_pool_float_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/avg_pool_float_2.example.cpp
new file mode 100644
index 000000000..f62eba158
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/avg_pool_float_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: avg_pool_float_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/avg_pool_float_3.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/avg_pool_float_3.example.cpp
new file mode 100644
index 000000000..1774932b5
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/avg_pool_float_3.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: avg_pool_float_3.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/avg_pool_float_4.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/avg_pool_float_4.example.cpp
new file mode 100644
index 000000000..f2b21e111
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/avg_pool_float_4.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: avg_pool_float_4.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/avg_pool_float_5.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/avg_pool_float_5.example.cpp
new file mode 100644
index 000000000..924f87081
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/avg_pool_float_5.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: avg_pool_float_5.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0, 6, 2, 4, 3, 2, 10, 7}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {2.75f, 5.75f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/avg_pool_quant8_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/avg_pool_quant8_1.example.cpp
new file mode 100644
index 000000000..03211dc0a
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/avg_pool_quant8_1.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: avg_pool_quant8_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 4}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 4}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/avg_pool_quant8_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/avg_pool_quant8_2.example.cpp
new file mode 100644
index 000000000..e04521866
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/avg_pool_quant8_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: avg_pool_quant8_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/avg_pool_quant8_3.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/avg_pool_quant8_3.example.cpp
new file mode 100644
index 000000000..98697448e
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/avg_pool_quant8_3.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: avg_pool_quant8_3.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6, 0, 2, 4, 6}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/avg_pool_quant8_4.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/avg_pool_quant8_4.example.cpp
new file mode 100644
index 000000000..18a083cb3
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/avg_pool_quant8_4.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: avg_pool_quant8_4.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 1, 2, 3, 4, 5, 6, 7, 8}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 1, 2, 2, 2, 2, 2, 2, 2}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/avg_pool_quant8_5.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/avg_pool_quant8_5.example.cpp
new file mode 100644
index 000000000..6d2e54121
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/avg_pool_quant8_5.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: avg_pool_quant8_5.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 96, 32, 64, 48, 32, 160, 112}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {44, 92}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/concat_float_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/concat_float_1.example.cpp
new file mode 100644
index 000000000..dc0af926f
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/concat_float_1.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: concat_float_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}}, {1, {7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/concat_float_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/concat_float_2.example.cpp
new file mode 100644
index 000000000..2c07fb933
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/concat_float_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: concat_float_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020, 5021, 5022, 5023, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033, 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055, 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5063, 5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082, 5083, 5084, 5085, 5086, 5087, 5088, 5089, 5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097, 5098, 5099, 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108, 5109, 5110, 5111, 5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121, 5122, 5123, 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5159, 5160, 5161, 5162, 5163, 5164, 5165, 5166, 5167, 5168, 5169, 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177, 5178, 5179, 5180, 5181, 5182, 5183, 5184, 5185, 5186, 5187, 5188, 5189, 5190, 5191, 5192, 5193, 5194, 5195, 5196, 5197, 5198, 5199, 5200, 5201, 5202, 5203, 5204, 5205, 5206, 5207, 5208, 5209, 5210, 5211, 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219, 5220, 5221, 5222, 5223, 5224, 5225, 5226, 5227, 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235, 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243, 5244, 5245, 5246, 5247, 5248, 5249, 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265, 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277, 5278, 5279, 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287, 5288, 5289, 5290, 5291, 5292, 5293, 5294, 5295, 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303, 5304, 5305, 5306, 5307, 5308, 5309, 5310, 5311, 5312, 5313, 5314, 5315, 5316, 5317, 5318, 5319, 5320, 5321, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5347, 5348, 5349, 5350, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5403, 5404, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5415, 5416, 5417, 5418, 5419, 5420, 5421, 5422, 5423, 5424, 5425, 5426, 5427, 5428, 5429, 5430, 5431, 5432, 5433, 5434, 5435, 5436, 5437, 5438, 5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447, 5448, 5449, 5450, 5451, 5452, 5453, 5454, 5455, 5456, 5457, 5458, 5459, 5460, 5461, 5462, 5463, 5464, 5465, 5466, 5467, 5468, 5469, 5470, 5471, 5472, 5473, 5474, 5475, 5476, 5477, 5478, 5479, 5480, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489, 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505, 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 5515, 5516, 5517, 5518, 5519, 5520, 5521, 5522, 5523, 5524, 5525, 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534, 5535, 5536, 5537, 5538, 5539, 5540, 5541, 5542, 5543, 5544, 5545, 5546, 5547, 5548, 5549, 5550, 5551, 5552, 5553, 5554, 5555, 5556, 5557, 5558, 5559, 5560, 5561, 5562, 5563, 5564, 5565, 5566, 5567, 5568, 5569, 5570, 5571, 5572, 5573, 5574, 5575, 5576, 5577, 5578, 5579, 5580, 5581, 5582, 5583, 5584, 5585, 5586, 5587, 5588, 5589, 5590, 5591, 5592, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, 5606, 5607, 5608, 5609, 5610, 5611, 5612, 5613, 5614, 5615, 5616, 5617, 5618, 5619, 5620, 5621, 5622, 5623, 5624, 5625, 5626, 5627, 5628, 5629, 5630, 5631, 5632, 5633, 5634, 5635, 5636, 5637, 5638, 5639, 5640, 5641, 5642, 5643, 5644, 5645, 5646, 5647, 5648, 5649, 5650, 5651, 5652, 5653, 5654, 5655, 5656, 5657, 5658, 5659, 5660, 5661, 5662, 5663, 5664, 5665, 5666, 5667, 5668, 5669, 5670, 5671, 5672, 5673, 5674, 5675, 5676, 5677, 5678, 5679, 5680, 5681, 5682, 5683, 5684, 5685, 5686, 5687, 5688, 5689, 5690, 5691, 5692, 5693, 5694, 5695, 5696, 5697, 5698, 5699, 5700, 5701, 5702, 5703, 5704, 5705, 5706, 5707, 5708, 5709, 5710, 5711, 5712, 5713, 5714, 5715, 5716, 5717, 5718, 5719, 5720, 5721, 5722, 5723, 5724, 5725, 5726, 5727, 5728, 5729, 5730, 5731, 5732, 5733, 5734, 5735, 5736, 5737, 5738, 5739, 5740, 5741, 5742, 5743, 5744, 5745, 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, 5754, 5755, 5756, 5757, 5758, 5759, 5760, 5761, 5762, 5763, 5764, 5765, 5766, 5767, 5768, 5769, 5770, 5771, 5772, 5773, 5774, 5775, 5776, 5777, 5778, 5779, 5780, 5781, 5782, 5783, 5784, 5785, 5786, 5787, 5788, 5789, 5790, 5791, 5792, 5793, 5794, 5795, 5796, 5797, 5798, 5799, 5800, 5801, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5809, 5810, 5811, 5812, 5813, 5814, 5815, 5816, 5817, 5818, 5819, 5820, 5821, 5822, 5823, 5824, 5825, 5826, 5827, 5828, 5829, 5830, 5831, 5832, 5833, 5834, 5835, 5836, 5837, 5838, 5839, 5840, 5841, 5842, 5843, 5844, 5845, 5846, 5847, 5848, 5849, 5850, 5851, 5852, 5853, 5854, 5855, 5856, 5857, 5858, 5859, 5860, 5861, 5862, 5863, 5864, 5865, 5866, 5867, 5868, 5869, 5870, 5871, 5872, 5873, 5874, 5875, 5876, 5877, 5878, 5879, 5880, 5881, 5882, 5883, 5884, 5885, 5886, 5887, 5888, 5889, 5890, 5891, 5892, 5893, 5894, 5895, 5896, 5897, 5898, 5899, 5900, 5901, 5902, 5903, 5904, 5905, 5906, 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5914, 5915, 5916, 5917, 5918, 5919, 5920, 5921, 5922, 5923, 5924, 5925, 5926, 5927, 5928, 5929, 5930, 5931, 5932, 5933, 5934, 5935, 5936, 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5944, 5945, 5946, 5947, 5948, 5949, 5950, 5951, 5952, 5953, 5954, 5955, 5956, 5957, 5958, 5959, 5960, 5961, 5962, 5963, 5964, 5965, 5966, 5967, 5968, 5969, 5970, 5971, 5972, 5973, 5974, 5975, 5976, 5977, 5978, 5979, 5980, 5981, 5982, 5983, 5984, 5985, 5986, 5987, 5988, 5989, 5990, 5991, 5992, 5993, 5994, 5995, 5996, 5997, 5998, 5999, 6000, 6001, 6002, 6003, 6004, 6005, 6006, 6007, 6008, 6009, 6010, 6011, 6012, 6013, 6014, 6015, 6016, 6017, 6018, 6019, 6020, 6021, 6022, 6023, 6024, 6025, 6026, 6027, 6028, 6029, 6030, 6031, 6032, 6033, 6034, 6035, 6036, 6037, 6038, 6039, 6040, 6041, 6042, 6043, 6044, 6045, 6046, 6047, 6048, 6049, 6050, 6051, 6052, 6053, 6054, 6055, 6056, 6057, 6058, 6059, 6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069, 6070, 6071, 6072, 6073, 6074, 6075, 6076, 6077, 6078, 6079, 6080, 6081, 6082, 6083, 6084, 6085, 6086, 6087, 6088, 6089, 6090, 6091, 6092, 6093, 6094, 6095, 6096, 6097, 6098, 6099, 6100, 6101, 6102, 6103, 6104, 6105, 6106, 6107, 6108, 6109, 6110, 6111, 6112, 6113, 6114, 6115, 6116, 6117, 6118, 6119, 6120, 6121, 6122, 6123, 6124, 6125, 6126, 6127, 6128, 6129, 6130, 6131, 6132, 6133, 6134, 6135, 6136, 6137, 6138, 6139, 6140, 6141, 6142, 6143, 6144, 6145, 6146, 6147, 6148, 6149, 6150, 6151, 6152, 6153, 6154, 6155, 6156, 6157, 6158, 6159, 6160, 6161, 6162, 6163, 6164, 6165, 6166, 6167, 6168, 6169, 6170, 6171, 6172, 6173, 6174, 6175, 6176, 6177, 6178, 6179, 6180, 6181, 6182, 6183, 6184, 6185, 6186, 6187, 6188, 6189, 6190, 6191, 6192, 6193, 6194, 6195, 6196, 6197, 6198, 6199, 6200, 6201, 6202, 6203, 6204, 6205, 6206, 6207, 6208, 6209, 6210, 6211, 6212, 6213, 6214, 6215, 6216, 6217, 6218, 6219, 6220, 6221, 6222, 6223, 6224, 6225, 6226, 6227, 6228, 6229, 6230, 6231, 6232, 6233, 6234, 6235, 6236, 6237, 6238, 6239, 6240, 6241, 6242, 6243, 6244, 6245, 6246, 6247, 6248, 6249, 6250, 6251, 6252, 6253, 6254, 6255, 6256, 6257, 6258, 6259, 6260, 6261, 6262, 6263, 6264, 6265, 6266, 6267, 6268, 6269, 6270, 6271, 6272, 6273, 6274, 6275, 6276, 6277, 6278, 6279, 6280, 6281, 6282, 6283, 6284, 6285, 6286, 6287, 6288, 6289, 6290, 6291, 6292, 6293, 6294, 6295, 6296, 6297, 6298, 6299, 6300, 6301, 6302, 6303, 6304, 6305, 6306, 6307, 6308, 6309, 6310, 6311, 6312, 6313, 6314, 6315, 6316, 6317, 6318, 6319, 6320, 6321, 6322, 6323, 6324, 6325, 6326, 6327, 6328, 6329, 6330, 6331, 6332, 6333, 6334, 6335, 6336, 6337, 6338, 6339, 6340, 6341, 6342, 6343, 6344, 6345, 6346, 6347, 6348, 6349, 6350, 6351, 6352, 6353, 6354, 6355, 6356, 6357, 6358, 6359, 6360, 6361, 6362, 6363, 6364, 6365, 6366, 6367, 6368, 6369, 6370, 6371, 6372, 6373, 6374, 6375, 6376, 6377, 6378, 6379, 6380, 6381, 6382, 6383, 6384, 6385, 6386, 6387, 6388, 6389, 6390, 6391, 6392, 6393, 6394, 6395, 6396, 6397, 6398, 6399, 6400, 6401, 6402, 6403, 6404, 6405, 6406, 6407, 6408, 6409, 6410, 6411, 6412, 6413, 6414, 6415, 6416, 6417, 6418, 6419, 6420, 6421, 6422, 6423, 6424, 6425, 6426, 6427, 6428, 6429, 6430, 6431, 6432, 6433, 6434, 6435, 6436, 6437, 6438, 6439, 6440, 6441, 6442, 6443, 6444, 6445, 6446, 6447, 6448, 6449, 6450, 6451, 6452, 6453, 6454, 6455, 6456, 6457, 6458, 6459, 6460, 6461, 6462, 6463, 6464, 6465, 6466, 6467, 6468, 6469, 6470, 6471, 6472, 6473, 6474, 6475, 6476, 6477, 6478, 6479, 6480, 6481, 6482, 6483, 6484, 6485, 6486, 6487, 6488, 6489, 6490, 6491, 6492, 6493, 6494, 6495, 6496, 6497, 6498, 6499, 6500, 6501, 6502, 6503, 6504, 6505, 6506, 6507, 6508, 6509, 6510, 6511, 6512, 6513, 6514, 6515, 6516, 6517, 6518, 6519, 6520, 6521, 6522, 6523, 6524, 6525, 6526, 6527, 6528, 6529, 6530, 6531, 6532, 6533, 6534, 6535, 6536, 6537, 6538, 6539, 6540, 6541, 6542, 6543, 6544, 6545, 6546, 6547, 6548, 6549, 6550, 6551, 6552, 6553, 6554, 6555, 6556, 6557, 6558, 6559, 6560, 6561, 6562, 6563, 6564, 6565, 6566, 6567, 6568, 6569, 6570, 6571, 6572, 6573, 6574, 6575, 6576, 6577, 6578, 6579, 6580, 6581, 6582, 6583, 6584, 6585, 6586, 6587, 6588, 6589, 6590, 6591, 6592, 6593, 6594, 6595, 6596, 6597, 6598, 6599, 6600, 6601, 6602, 6603, 6604, 6605, 6606, 6607, 6608, 6609, 6610, 6611, 6612, 6613, 6614, 6615, 6616, 6617, 6618, 6619, 6620, 6621, 6622, 6623, 6624, 6625, 6626, 6627, 6628, 6629, 6630, 6631, 6632, 6633, 6634, 6635, 6636, 6637, 6638, 6639, 6640, 6641, 6642, 6643, 6644, 6645, 6646, 6647, 6648, 6649, 6650, 6651, 6652, 6653, 6654, 6655, 6656, 6657, 6658, 6659, 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 6670, 6671, 6672, 6673, 6674, 6675, 6676, 6677, 6678, 6679, 6680, 6681, 6682, 6683, 6684, 6685, 6686, 6687, 6688, 6689, 6690, 6691, 6692, 6693, 6694, 6695, 6696, 6697, 6698, 6699, 6700, 6701, 6702, 6703, 6704, 6705, 6706, 6707, 6708, 6709, 6710, 6711, 6712, 6713, 6714, 6715, 6716, 6717, 6718, 6719, 6720, 6721, 6722, 6723, 6724, 6725, 6726, 6727, 6728, 6729, 6730, 6731, 6732, 6733, 6734, 6735, 6736, 6737, 6738, 6739, 6740, 6741, 6742, 6743, 6744, 6745, 6746, 6747, 6748, 6749, 6750, 6751, 6752, 6753, 6754, 6755, 6756, 6757, 6758, 6759, 6760, 6761, 6762, 6763, 6764, 6765, 6766, 6767, 6768, 6769, 6770, 6771, 6772, 6773, 6774, 6775, 6776, 6777, 6778, 6779, 6780, 6781, 6782, 6783, 6784, 6785, 6786, 6787, 6788, 6789, 6790, 6791, 6792, 6793, 6794, 6795, 6796, 6797, 6798, 6799, 6800, 6801, 6802, 6803, 6804, 6805, 6806, 6807, 6808, 6809, 6810, 6811, 6812, 6813, 6814, 6815, 6816, 6817, 6818, 6819, 6820, 6821, 6822, 6823, 6824, 6825, 6826, 6827, 6828, 6829, 6830, 6831, 6832, 6833, 6834, 6835, 6836, 6837, 6838, 6839, 6840, 6841, 6842, 6843, 6844, 6845, 6846, 6847, 6848, 6849, 6850, 6851, 6852, 6853, 6854, 6855, 6856, 6857, 6858, 6859, 6860, 6861, 6862, 6863, 6864, 6865, 6866, 6867, 6868, 6869, 6870, 6871, 6872, 6873, 6874, 6875, 6876, 6877, 6878, 6879, 6880, 6881, 6882, 6883, 6884, 6885, 6886, 6887, 6888, 6889, 6890, 6891, 6892, 6893, 6894, 6895, 6896, 6897, 6898, 6899, 6900, 6901, 6902, 6903, 6904, 6905, 6906, 6907, 6908, 6909, 6910, 6911, 6912, 6913, 6914, 6915, 6916, 6917, 6918, 6919, 6920, 6921, 6922, 6923, 6924, 6925, 6926, 6927, 6928, 6929, 6930, 6931, 6932, 6933, 6934, 6935, 6936, 6937, 6938, 6939, 6940, 6941, 6942, 6943, 6944, 6945, 6946, 6947, 6948, 6949, 6950, 6951, 6952, 6953, 6954, 6955, 6956, 6957, 6958, 6959, 6960, 6961, 6962, 6963, 6964, 6965, 6966, 6967, 6968, 6969, 6970, 6971, 6972, 6973, 6974, 6975, 6976, 6977, 6978, 6979, 6980, 6981, 6982, 6983, 6984, 6985, 6986, 6987, 6988, 6989, 6990, 6991, 6992, 6993, 6994, 6995, 6996, 6997, 6998, 6999, 7000, 7001, 7002, 7003, 7004, 7005, 7006, 7007, 7008, 7009, 7010, 7011, 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, 7028, 7029, 7030, 7031, 7032, 7033, 7034, 7035, 7036, 7037, 7038, 7039, 7040, 7041, 7042, 7043, 7044, 7045, 7046, 7047, 7048, 7049, 7050, 7051, 7052, 7053, 7054, 7055, 7056, 7057, 7058, 7059, 7060, 7061, 7062, 7063, 7064, 7065, 7066, 7067, 7068, 7069, 7070, 7071, 7072, 7073, 7074, 7075, 7076, 7077, 7078, 7079, 7080, 7081, 7082, 7083, 7084, 7085, 7086, 7087, 7088, 7089, 7090, 7091, 7092, 7093, 7094, 7095, 7096, 7097, 7098, 7099, 7100, 7101, 7102, 7103, 7104, 7105, 7106, 7107, 7108, 7109, 7110, 7111, 7112, 7113, 7114, 7115, 7116, 7117, 7118, 7119, 7120, 7121, 7122, 7123, 7124, 7125, 7126, 7127, 7128, 7129, 7130, 7131, 7132, 7133, 7134, 7135, 7136, 7137, 7138, 7139, 7140, 7141, 7142, 7143, 7144, 7145, 7146, 7147, 7148, 7149, 7150, 7151, 7152, 7153, 7154, 7155, 7156, 7157, 7158, 7159, 7160, 7161, 7162, 7163, 7164, 7165, 7166, 7167, 7168, 7169, 7170, 7171, 7172, 7173, 7174, 7175, 7176, 7177, 7178, 7179, 7180, 7181, 7182, 7183, 7184, 7185, 7186, 7187, 7188, 7189, 7190, 7191, 7192, 7193, 7194, 7195, 7196, 7197, 7198, 7199, 7200, 7201, 7202, 7203, 7204, 7205, 7206, 7207, 7208, 7209, 7210, 7211, 7212, 7213, 7214, 7215, 7216, 7217, 7218, 7219, 7220, 7221, 7222, 7223, 7224, 7225, 7226, 7227, 7228, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7239, 7240, 7241, 7242, 7243, 7244, 7245, 7246, 7247, 7248, 7249, 7250, 7251, 7252, 7253, 7254, 7255, 7256, 7257, 7258, 7259, 7260, 7261, 7262, 7263, 7264, 7265, 7266, 7267, 7268, 7269, 7270, 7271, 7272, 7273, 7274, 7275, 7276, 7277, 7278, 7279, 7280, 7281, 7282, 7283, 7284, 7285, 7286, 7287, 7288, 7289, 7290, 7291, 7292, 7293, 7294, 7295, 7296, 7297, 7298, 7299, 7300, 7301, 7302, 7303, 7304, 7305, 7306, 7307, 7308, 7309, 7310, 7311, 7312, 7313, 7314, 7315, 7316, 7317, 7318, 7319, 7320, 7321, 7322, 7323, 7324, 7325, 7326, 7327, 7328, 7329, 7330, 7331, 7332, 7333, 7334, 7335, 7336, 7337, 7338, 7339, 7340, 7341, 7342, 7343, 7344, 7345, 7346, 7347, 7348, 7349, 7350, 7351, 7352, 7353, 7354, 7355, 7356, 7357, 7358, 7359, 7360, 7361, 7362, 7363, 7364, 7365, 7366, 7367, 7368, 7369, 7370, 7371, 7372, 7373, 7374, 7375, 7376, 7377, 7378, 7379, 7380, 7381, 7382, 7383, 7384, 7385, 7386, 7387, 7388, 7389, 7390, 7391, 7392, 7393, 7394, 7395, 7396, 7397, 7398, 7399, 7400, 7401, 7402, 7403, 7404, 7405, 7406, 7407, 7408, 7409, 7410, 7411, 7412, 7413, 7414, 7415, 7416, 7417, 7418, 7419, 7420, 7421, 7422, 7423, 7424, 7425, 7426, 7427, 7428, 7429, 7430, 7431, 7432, 7433, 7434, 7435, 7436, 7437, 7438, 7439, 7440, 7441, 7442, 7443, 7444, 7445, 7446, 7447, 7448, 7449, 7450, 7451, 7452, 7453, 7454, 7455, 7456, 7457, 7458, 7459, 7460, 7461, 7462, 7463, 7464, 7465, 7466, 7467, 7468, 7469, 7470, 7471, 7472, 7473, 7474, 7475, 7476, 7477, 7478, 7479, 7480, 7481, 7482, 7483, 7484, 7485, 7486, 7487, 7488, 7489, 7490, 7491, 7492, 7493, 7494, 7495, 7496, 7497, 7498, 7499, 7500, 7501, 7502, 7503, 7504, 7505, 7506, 7507, 7508, 7509, 7510, 7511, 7512, 7513, 7514, 7515, 7516, 7517, 7518, 7519, 7520, 7521, 7522, 7523, 7524, 7525, 7526, 7527, 7528, 7529, 7530, 7531, 7532, 7533, 7534, 7535, 7536, 7537, 7538, 7539, 7540, 7541, 7542, 7543, 7544, 7545, 7546, 7547, 7548, 7549, 7550, 7551, 7552, 7553, 7554, 7555, 7556, 7557, 7558, 7559, 7560, 7561, 7562, 7563, 7564, 7565, 7566, 7567, 7568, 7569, 7570, 7571, 7572, 7573, 7574, 7575, 7576, 7577, 7578, 7579, 7580, 7581, 7582, 7583, 7584, 7585, 7586, 7587, 7588, 7589, 7590, 7591, 7592, 7593, 7594, 7595, 7596, 7597, 7598, 7599, 7600, 7601, 7602, 7603, 7604, 7605, 7606, 7607, 7608, 7609, 7610, 7611, 7612, 7613, 7614, 7615, 7616, 7617, 7618, 7619, 7620, 7621, 7622, 7623, 7624, 7625, 7626, 7627, 7628, 7629, 7630, 7631, 7632, 7633, 7634, 7635, 7636, 7637, 7638, 7639, 7640, 7641, 7642, 7643, 7644, 7645, 7646, 7647, 7648, 7649, 7650, 7651, 7652, 7653, 7654, 7655, 7656, 7657, 7658, 7659, 7660, 7661, 7662, 7663, 7664, 7665, 7666, 7667, 7668, 7669, 7670, 7671, 7672, 7673, 7674, 7675, 7676, 7677, 7678, 7679, 7680, 7681, 7682, 7683, 7684, 7685, 7686, 7687, 7688, 7689, 7690, 7691, 7692, 7693, 7694, 7695, 7696, 7697, 7698, 7699, 7700, 7701, 7702, 7703, 7704, 7705, 7706, 7707, 7708, 7709, 7710, 7711, 7712, 7713, 7714, 7715, 7716, 7717, 7718, 7719, 7720, 7721, 7722, 7723, 7724, 7725, 7726, 7727, 7728, 7729, 7730, 7731, 7732, 7733, 7734, 7735, 7736, 7737, 7738, 7739, 7740, 7741, 7742, 7743, 7744, 7745, 7746, 7747, 7748, 7749, 7750, 7751, 7752, 7753, 7754, 7755, 7756, 7757, 7758, 7759, 7760, 7761, 7762, 7763, 7764, 7765, 7766, 7767, 7768, 7769, 7770, 7771, 7772, 7773, 7774, 7775, 7776, 7777, 7778, 7779, 7780, 7781, 7782, 7783, 7784, 7785, 7786, 7787, 7788, 7789, 7790, 7791, 7792, 7793, 7794, 7795, 7796, 7797, 7798, 7799, 7800, 7801, 7802, 7803, 7804, 7805, 7806, 7807, 7808, 7809, 7810, 7811, 7812, 7813, 7814, 7815, 7816, 7817, 7818, 7819, 7820, 7821, 7822, 7823, 7824, 7825, 7826, 7827, 7828, 7829, 7830, 7831, 7832, 7833, 7834, 7835, 7836, 7837, 7838, 7839, 7840, 7841, 7842, 7843, 7844, 7845, 7846, 7847, 7848, 7849, 7850, 7851, 7852, 7853, 7854, 7855, 7856, 7857, 7858, 7859, 7860, 7861, 7862, 7863, 7864, 7865, 7866, 7867, 7868, 7869, 7870, 7871, 7872, 7873, 7874, 7875, 7876, 7877, 7878, 7879, 7880, 7881, 7882, 7883, 7884, 7885, 7886, 7887, 7888, 7889, 7890, 7891, 7892, 7893, 7894, 7895, 7896, 7897, 7898, 7899, 7900, 7901, 7902, 7903, 7904, 7905, 7906, 7907, 7908, 7909, 7910, 7911, 7912, 7913, 7914, 7915, 7916, 7917, 7918, 7919, 7920, 7921, 7922, 7923, 7924, 7925, 7926, 7927, 7928, 7929, 7930, 7931, 7932, 7933, 7934, 7935, 7936, 7937, 7938, 7939, 7940, 7941, 7942, 7943, 7944, 7945, 7946, 7947, 7948, 7949, 7950, 7951, 7952, 7953, 7954, 7955, 7956, 7957, 7958, 7959, 7960, 7961, 7962, 7963, 7964, 7965, 7966, 7967, 7968, 7969, 7970, 7971, 7972, 7973, 7974, 7975, 7976, 7977, 7978, 7979, 7980, 7981, 7982, 7983, 7984, 7985, 7986, 7987, 7988, 7989, 7990, 7991, 7992, 7993, 7994, 7995, 7996, 7997, 7998, 7999, 8000, 8001, 8002, 8003, 8004, 8005, 8006, 8007, 8008, 8009, 8010, 8011, 8012, 8013, 8014, 8015, 8016, 8017, 8018, 8019, 8020, 8021, 8022, 8023, 8024, 8025, 8026, 8027, 8028, 8029, 8030, 8031, 8032, 8033, 8034, 8035, 8036, 8037, 8038, 8039, 8040, 8041, 8042, 8043, 8044, 8045, 8046, 8047, 8048, 8049, 8050, 8051, 8052, 8053, 8054, 8055, 8056, 8057, 8058, 8059, 8060, 8061, 8062, 8063, 8064, 8065, 8066, 8067, 8068, 8069, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8083, 8084, 8085, 8086, 8087, 8088, 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098, 8099, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108, 8109, 8110, 8111, 8112, 8113, 8114, 8115, 8116, 8117, 8118, 8119, 8120, 8121, 8122, 8123, 8124, 8125, 8126, 8127, 8128, 8129, 8130, 8131, 8132, 8133, 8134, 8135, 8136, 8137, 8138, 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 8157, 8158, 8159, 8160, 8161, 8162, 8163, 8164, 8165, 8166, 8167, 8168, 8169, 8170, 8171, 8172, 8173, 8174, 8175, 8176, 8177, 8178, 8179, 8180, 8181, 8182, 8183, 8184, 8185, 8186, 8187, 8188, 8189, 8190, 8191, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8203, 8204, 8205, 8206, 8207, 8208, 8209, 8210, 8211, 8212, 8213, 8214, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8223, 8224, 8225, 8226, 8227, 8228, 8229, 8230, 8231, 8232, 8233, 8234, 8235, 8236, 8237, 8238, 8239, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8247, 8248, 8249, 8250, 8251, 8252, 8253, 8254, 8255, 8256, 8257, 8258, 8259, 8260, 8261, 8262, 8263, 8264, 8265, 8266, 8267, 8268, 8269, 8270, 8271, 8272, 8273, 8274, 8275, 8276, 8277, 8278, 8279, 8280, 8281, 8282, 8283, 8284, 8285, 8286, 8287, 8288, 8289, 8290, 8291, 8292, 8293, 8294, 8295, 8296, 8297, 8298, 8299, 8300, 8301, 8302, 8303, 8304, 8305, 8306, 8307, 8308, 8309, 8310, 8311, 8312, 8313, 8314, 8315, 8316, 8317, 8318, 8319, 8320, 8321, 8322, 8323, 8324, 8325, 8326, 8327, 8328, 8329, 8330, 8331, 8332, 8333, 8334, 8335, 8336, 8337, 8338, 8339, 8340, 8341, 8342, 8343, 8344, 8345, 8346, 8347, 8348, 8349, 8350, 8351, 8352, 8353, 8354, 8355, 8356, 8357, 8358, 8359, 8360, 8361, 8362, 8363, 8364, 8365, 8366, 8367, 8368, 8369, 8370, 8371, 8372, 8373, 8374, 8375, 8376, 8377, 8378, 8379, 8380, 8381, 8382, 8383, 8384, 8385, 8386, 8387, 8388, 8389, 8390, 8391, 8392, 8393, 8394, 8395, 8396, 8397, 8398, 8399, 8400, 8401, 8402, 8403, 8404, 8405, 8406, 8407, 8408, 8409, 8410, 8411, 8412, 8413, 8414, 8415, 8416, 8417, 8418, 8419, 8420, 8421, 8422, 8423, 8424, 8425, 8426, 8427, 8428, 8429, 8430, 8431, 8432, 8433, 8434, 8435, 8436, 8437, 8438, 8439, 8440, 8441, 8442, 8443, 8444, 8445, 8446, 8447, 8448, 8449, 8450, 8451, 8452, 8453, 8454, 8455, 8456, 8457, 8458, 8459, 8460, 8461, 8462, 8463, 8464, 8465, 8466, 8467, 8468, 8469, 8470, 8471, 8472, 8473, 8474, 8475, 8476, 8477, 8478, 8479, 8480, 8481, 8482, 8483, 8484, 8485, 8486, 8487, 8488, 8489, 8490, 8491, 8492, 8493, 8494, 8495, 8496, 8497, 8498, 8499, 8500, 8501, 8502, 8503, 8504, 8505, 8506, 8507, 8508, 8509, 8510, 8511, 8512, 8513, 8514, 8515, 8516, 8517, 8518, 8519, 8520, 8521, 8522, 8523, 8524, 8525, 8526, 8527, 8528, 8529, 8530, 8531, 8532, 8533, 8534, 8535, 8536, 8537, 8538, 8539, 8540, 8541, 8542, 8543, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558, 8559, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8577, 8578, 8579, 8580, 8581, 8582, 8583, 8584, 8585, 8586, 8587, 8588, 8589, 8590, 8591, 8592, 8593, 8594, 8595, 8596, 8597, 8598, 8599, 8600, 8601, 8602, 8603, 8604, 8605, 8606, 8607, 8608, 8609, 8610, 8611, 8612, 8613, 8614, 8615, 8616, 8617, 8618, 8619, 8620, 8621, 8622, 8623, 8624, 8625, 8626, 8627, 8628, 8629, 8630, 8631, 8632, 8633, 8634, 8635, 8636, 8637, 8638, 8639, 8640, 8641, 8642, 8643, 8644, 8645, 8646, 8647, 8648, 8649, 8650, 8651, 8652, 8653, 8654, 8655, 8656, 8657, 8658, 8659, 8660, 8661, 8662, 8663, 8664, 8665, 8666, 8667, 8668, 8669, 8670, 8671, 8672, 8673, 8674, 8675, 8676, 8677, 8678, 8679, 8680, 8681, 8682, 8683, 8684, 8685, 8686, 8687, 8688, 8689, 8690, 8691, 8692, 8693, 8694, 8695, 8696, 8697, 8698, 8699, 8700, 8701, 8702, 8703, 8704, 8705, 8706, 8707, 8708, 8709, 8710, 8711, 8712, 8713, 8714, 8715, 8716, 8717, 8718, 8719, 8720, 8721, 8722, 8723, 8724, 8725, 8726, 8727, 8728, 8729, 8730, 8731, 8732, 8733, 8734, 8735, 8736, 8737, 8738, 8739, 8740, 8741, 8742, 8743, 8744, 8745, 8746, 8747, 8748, 8749, 8750, 8751, 8752, 8753, 8754, 8755, 8756, 8757, 8758, 8759, 8760, 8761, 8762, 8763, 8764, 8765, 8766, 8767, 8768, 8769, 8770, 8771, 8772, 8773, 8774, 8775, 8776, 8777, 8778, 8779, 8780, 8781, 8782, 8783, 8784, 8785, 8786, 8787, 8788, 8789, 8790, 8791, 8792, 8793, 8794, 8795, 8796, 8797, 8798, 8799, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8807, 8808, 8809, 8810, 8811, 8812, 8813, 8814, 8815, 8816, 8817, 8818, 8819, 8820, 8821, 8822, 8823, 8824, 8825, 8826, 8827, 8828, 8829, 8830, 8831, 8832, 8833, 8834, 8835, 8836, 8837, 8838, 8839, 8840, 8841, 8842, 8843, 8844, 8845, 8846, 8847, 8848, 8849, 8850, 8851, 8852, 8853, 8854, 8855, 8856, 8857, 8858, 8859, 8860, 8861, 8862, 8863, 8864, 8865, 8866, 8867, 8868, 8869, 8870, 8871, 8872, 8873, 8874, 8875, 8876, 8877, 8878, 8879, 8880, 8881, 8882, 8883, 8884, 8885, 8886, 8887, 8888, 8889, 8890, 8891, 8892, 8893, 8894, 8895, 8896, 8897, 8898, 8899, 8900, 8901, 8902, 8903, 8904, 8905, 8906, 8907, 8908, 8909, 8910, 8911, 8912, 8913, 8914, 8915, 8916, 8917, 8918, 8919, 8920, 8921, 8922, 8923, 8924, 8925, 8926, 8927, 8928, 8929, 8930, 8931, 8932, 8933, 8934, 8935, 8936, 8937, 8938, 8939, 8940, 8941, 8942, 8943, 8944, 8945, 8946, 8947, 8948, 8949, 8950, 8951, 8952, 8953, 8954, 8955, 8956, 8957, 8958, 8959, 8960, 8961, 8962, 8963, 8964, 8965, 8966, 8967, 8968, 8969, 8970, 8971, 8972, 8973, 8974, 8975, 8976, 8977, 8978, 8979, 8980, 8981, 8982, 8983, 8984, 8985, 8986, 8987, 8988, 8989, 8990, 8991, 8992, 8993, 8994, 8995, 8996, 8997, 8998, 8999, 9000, 9001, 9002, 9003, 9004, 9005, 9006, 9007, 9008, 9009, 9010, 9011, 9012, 9013, 9014, 9015, 9016, 9017, 9018, 9019, 9020, 9021, 9022, 9023, 9024, 9025, 9026, 9027, 9028, 9029, 9030, 9031, 9032, 9033, 9034, 9035, 9036, 9037, 9038, 9039, 9040, 9041, 9042, 9043, 9044, 9045, 9046, 9047, 9048, 9049, 9050, 9051, 9052, 9053, 9054, 9055, 9056, 9057, 9058, 9059, 9060, 9061, 9062, 9063, 9064, 9065, 9066, 9067, 9068, 9069, 9070, 9071, 9072, 9073, 9074, 9075, 9076, 9077, 9078, 9079, 9080, 9081, 9082, 9083, 9084, 9085, 9086, 9087, 9088, 9089, 9090, 9091, 9092, 9093, 9094, 9095, 9096, 9097, 9098, 9099, 9100, 9101, 9102, 9103, 9104, 9105, 9106, 9107, 9108, 9109, 9110, 9111, 9112, 9113, 9114, 9115, 9116, 9117, 9118, 9119, 9120, 9121, 9122, 9123, 9124, 9125, 9126, 9127, 9128, 9129, 9130, 9131, 9132, 9133, 9134, 9135, 9136, 9137, 9138, 9139, 9140, 9141, 9142, 9143, 9144, 9145, 9146, 9147, 9148, 9149, 9150, 9151, 9152, 9153, 9154, 9155, 9156, 9157, 9158, 9159, 9160, 9161, 9162, 9163, 9164, 9165, 9166, 9167, 9168, 9169, 9170, 9171, 9172, 9173, 9174, 9175, 9176, 9177, 9178, 9179, 9180, 9181, 9182, 9183, 9184, 9185, 9186, 9187, 9188, 9189, 9190, 9191, 9192, 9193, 9194, 9195, 9196, 9197, 9198, 9199, 9200, 9201, 9202, 9203, 9204, 9205, 9206, 9207, 9208, 9209, 9210, 9211, 9212, 9213, 9214, 9215, 9216, 9217, 9218, 9219, 9220, 9221, 9222, 9223, 9224, 9225, 9226, 9227, 9228, 9229, 9230, 9231, 9232, 9233, 9234, 9235, 9236, 9237, 9238, 9239, 9240, 9241, 9242, 9243, 9244, 9245, 9246, 9247, 9248, 9249, 9250, 9251, 9252, 9253, 9254, 9255, 9256, 9257, 9258, 9259, 9260, 9261, 9262, 9263, 9264, 9265, 9266, 9267, 9268, 9269, 9270, 9271, 9272, 9273, 9274, 9275, 9276, 9277, 9278, 9279, 9280, 9281, 9282, 9283, 9284, 9285, 9286, 9287, 9288, 9289, 9290, 9291, 9292, 9293, 9294, 9295, 9296, 9297, 9298, 9299, 9300, 9301, 9302, 9303, 9304, 9305, 9306, 9307, 9308, 9309, 9310, 9311, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 9322, 9323, 9324, 9325, 9326, 9327, 9328, 9329, 9330, 9331, 9332, 9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 9342, 9343, 9344, 9345, 9346, 9347, 9348, 9349, 9350, 9351, 9352, 9353, 9354, 9355, 9356, 9357, 9358, 9359, 9360, 9361, 9362, 9363, 9364, 9365, 9366, 9367, 9368, 9369, 9370, 9371, 9372, 9373, 9374, 9375, 9376, 9377, 9378, 9379, 9380, 9381, 9382, 9383, 9384, 9385, 9386, 9387, 9388, 9389, 9390, 9391, 9392, 9393, 9394, 9395, 9396, 9397, 9398, 9399, 9400, 9401, 9402, 9403, 9404, 9405, 9406, 9407, 9408, 9409, 9410, 9411, 9412, 9413, 9414, 9415, 9416, 9417, 9418, 9419, 9420, 9421, 9422, 9423, 9424, 9425, 9426, 9427, 9428, 9429, 9430, 9431, 9432, 9433, 9434, 9435, 9436, 9437, 9438, 9439, 9440, 9441, 9442, 9443, 9444, 9445, 9446, 9447, 9448, 9449, 9450, 9451, 9452, 9453, 9454, 9455, 9456, 9457, 9458, 9459, 9460, 9461, 9462, 9463, 9464, 9465, 9466, 9467, 9468, 9469, 9470, 9471, 9472, 9473, 9474, 9475, 9476, 9477, 9478, 9479, 9480, 9481, 9482, 9483, 9484, 9485, 9486, 9487, 9488, 9489, 9490, 9491, 9492, 9493, 9494, 9495, 9496, 9497, 9498, 9499, 9500, 9501, 9502, 9503, 9504, 9505, 9506, 9507, 9508, 9509, 9510, 9511, 9512, 9513, 9514, 9515, 9516, 9517, 9518, 9519, 9520, 9521, 9522, 9523, 9524, 9525, 9526, 9527, 9528, 9529, 9530, 9531, 9532, 9533, 9534, 9535, 9536, 9537, 9538, 9539, 9540, 9541, 9542, 9543, 9544, 9545, 9546, 9547, 9548, 9549, 9550, 9551, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9581, 9582, 9583, 9584, 9585, 9586, 9587, 9588, 9589, 9590, 9591, 9592, 9593, 9594, 9595, 9596, 9597, 9598, 9599, 9600, 9601, 9602, 9603, 9604, 9605, 9606, 9607, 9608, 9609, 9610, 9611, 9612, 9613, 9614, 9615, 9616, 9617, 9618, 9619, 9620, 9621, 9622, 9623, 9624, 9625, 9626, 9627, 9628, 9629, 9630, 9631, 9632, 9633, 9634, 9635, 9636, 9637, 9638, 9639, 9640, 9641, 9642, 9643, 9644, 9645, 9646, 9647, 9648, 9649, 9650, 9651, 9652, 9653, 9654, 9655, 9656, 9657, 9658, 9659, 9660, 9661, 9662, 9663, 9664, 9665, 9666, 9667, 9668, 9669, 9670, 9671, 9672, 9673, 9674, 9675, 9676, 9677, 9678, 9679, 9680, 9681, 9682, 9683, 9684, 9685, 9686, 9687, 9688, 9689, 9690, 9691, 9692, 9693, 9694, 9695, 9696, 9697, 9698, 9699, 9700, 9701, 9702, 9703, 9704, 9705, 9706, 9707, 9708, 9709, 9710, 9711, 9712, 9713, 9714, 9715, 9716, 9717, 9718, 9719, 9720, 9721, 9722, 9723, 9724, 9725, 9726, 9727, 9728, 9729, 9730, 9731, 9732, 9733, 9734, 9735, 9736, 9737, 9738, 9739, 9740, 9741, 9742, 9743, 9744, 9745, 9746, 9747, 9748, 9749, 9750, 9751, 9752, 9753, 9754, 9755, 9756, 9757, 9758, 9759, 9760, 9761, 9762, 9763, 9764, 9765, 9766, 9767, 9768, 9769, 9770, 9771, 9772, 9773, 9774, 9775, 9776, 9777, 9778, 9779, 9780, 9781, 9782, 9783, 9784, 9785, 9786, 9787, 9788, 9789, 9790, 9791, 9792, 9793, 9794, 9795, 9796, 9797, 9798, 9799, 9800, 9801, 9802, 9803, 9804, 9805, 9806, 9807, 9808, 9809, 9810, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9820, 9821, 9822, 9823, 9824, 9825, 9826, 9827, 9828, 9829, 9830, 9831, 9832, 9833, 9834, 9835, 9836, 9837, 9838, 9839, 9840, 9841, 9842, 9843, 9844, 9845, 9846, 9847, 9848, 9849, 9850, 9851, 9852, 9853, 9854, 9855, 9856, 9857, 9858, 9859, 9860, 9861, 9862, 9863, 9864, 9865, 9866, 9867, 9868, 9869, 9870, 9871, 9872, 9873, 9874, 9875, 9876, 9877, 9878, 9879, 9880, 9881, 9882, 9883, 9884, 9885, 9886, 9887, 9888, 9889, 9890, 9891, 9892, 9893, 9894, 9895, 9896, 9897, 9898, 9899, 9900, 9901, 9902, 9903, 9904, 9905, 9906, 9907, 9908, 9909, 9910, 9911, 9912, 9913, 9914, 9915, 9916, 9917, 9918, 9919, 9920, 9921, 9922, 9923, 9924, 9925, 9926, 9927, 9928, 9929, 9930, 9931, 9932, 9933, 9934, 9935, 9936, 9937, 9938, 9939, 9940, 9941, 9942, 9943, 9944, 9945, 9946, 9947, 9948, 9949, 9950, 9951, 9952, 9953, 9954, 9955, 9956, 9957, 9958, 9959, 9960, 9961, 9962, 9963, 9964, 9965, 9966, 9967, 9968, 9969, 9970, 9971, 9972, 9973, 9974, 9975, 9976, 9977, 9978, 9979, 9980, 9981, 9982, 9983, 9984, 9985, 9986, 9987, 9988, 9989, 9990, 9991, 9992, 9993, 9994, 9995, 9996, 9997, 9998, 9999, 10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015, 10016, 10017, 10018, 10019, 10020, 10021, 10022, 10023, 10024, 10025, 10026, 10027, 10028, 10029, 10030, 10031, 10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039, 10040, 10041, 10042, 10043, 10044, 10045, 10046, 10047, 10048, 10049, 10050, 10051, 10052, 10053, 10054, 10055, 10056, 10057, 10058, 10059, 10060, 10061, 10062, 10063, 10064, 10065, 10066, 10067, 10068, 10069, 10070, 10071, 10072, 10073, 10074, 10075, 10076, 10077, 10078, 10079, 10080, 10081, 10082, 10083, 10084, 10085, 10086, 10087, 10088, 10089, 10090, 10091, 10092, 10093, 10094, 10095, 10096, 10097, 10098, 10099, 10100, 10101, 10102, 10103, 10104, 10105, 10106, 10107, 10108, 10109, 10110, 10111, 10112, 10113, 10114, 10115, 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 10132, 10133, 10134, 10135, 10136, 10137, 10138, 10139, 10140, 10141, 10142, 10143, 10144, 10145, 10146, 10147, 10148, 10149, 10150, 10151, 10152, 10153, 10154, 10155, 10156, 10157, 10158, 10159, 10160, 10161, 10162, 10163, 10164, 10165, 10166, 10167, 10168, 10169, 10170, 10171, 10172, 10173, 10174, 10175, 10176, 10177, 10178, 10179, 10180, 10181, 10182, 10183, 10184, 10185, 10186, 10187, 10188, 10189, 10190, 10191, 10192, 10193, 10194, 10195, 10196, 10197, 10198, 10199, 10200, 10201, 10202, 10203, 10204, 10205, 10206, 10207, 10208, 10209, 10210, 10211, 10212, 10213, 10214, 10215, 10216, 10217, 10218, 10219, 10220, 10221, 10222, 10223, 10224, 10225, 10226, 10227, 10228, 10229, 10230, 10231, 10232, 10233, 10234, 10235, 10236, 10237, 10238, 10239, 10240, 10241, 10242, 10243, 10244, 10245, 10246, 10247, 10248, 10249, 10250, 10251, 10252, 10253, 10254, 10255, 10256, 10257, 10258, 10259, 10260, 10261, 10262, 10263, 10264, 10265, 10266, 10267, 10268, 10269, 10270, 10271, 10272, 10273, 10274, 10275, 10276, 10277, 10278, 10279, 10280, 10281, 10282, 10283, 10284, 10285, 10286, 10287, 10288, 10289, 10290, 10291, 10292, 10293, 10294, 10295, 10296, 10297, 10298, 10299, 10300, 10301, 10302, 10303, 10304, 10305, 10306, 10307, 10308, 10309, 10310, 10311, 10312, 10313, 10314, 10315, 10316, 10317, 10318, 10319, 10320, 10321, 10322, 10323, 10324, 10325, 10326, 10327, 10328, 10329, 10330, 10331, 10332, 10333, 10334, 10335, 10336, 10337, 10338, 10339, 10340, 10341, 10342, 10343, 10344, 10345, 10346, 10347, 10348, 10349, 10350, 10351, 10352, 10353, 10354, 10355, 10356, 10357, 10358, 10359, 10360, 10361, 10362, 10363, 10364, 10365, 10366, 10367, 10368, 10369, 10370, 10371, 10372, 10373, 10374, 10375, 10376, 10377, 10378, 10379, 10380, 10381, 10382, 10383, 10384, 10385, 10386, 10387, 10388, 10389, 10390, 10391, 10392, 10393, 10394, 10395, 10396, 10397, 10398, 10399, 10400, 10401, 10402, 10403, 10404, 10405, 10406, 10407, 10408, 10409, 10410, 10411, 10412, 10413, 10414, 10415, 10416, 10417, 10418, 10419, 10420, 10421, 10422, 10423, 10424, 10425, 10426, 10427, 10428, 10429, 10430, 10431, 10432, 10433, 10434, 10435, 10436, 10437, 10438, 10439, 10440, 10441, 10442, 10443, 10444, 10445, 10446, 10447, 10448, 10449, 10450, 10451, 10452, 10453, 10454, 10455, 10456, 10457, 10458, 10459, 10460, 10461, 10462, 10463, 10464, 10465, 10466, 10467, 10468, 10469, 10470, 10471, 10472, 10473, 10474, 10475, 10476, 10477, 10478, 10479, 10480, 10481, 10482, 10483, 10484, 10485, 10486, 10487, 10488, 10489, 10490, 10491, 10492, 10493, 10494, 10495, 10496, 10497, 10498, 10499, 10500, 10501, 10502, 10503, 10504, 10505, 10506, 10507, 10508, 10509, 10510, 10511, 10512, 10513, 10514, 10515, 10516, 10517, 10518, 10519, 10520, 10521, 10522, 10523, 10524, 10525, 10526, 10527, 10528, 10529, 10530, 10531, 10532, 10533, 10534, 10535, 10536, 10537, 10538, 10539, 10540, 10541, 10542, 10543, 10544, 10545, 10546, 10547, 10548, 10549, 10550, 10551, 10552, 10553, 10554, 10555, 10556, 10557, 10558, 10559, 10560, 10561, 10562, 10563, 10564, 10565, 10566, 10567, 10568, 10569, 10570, 10571, 10572, 10573, 10574, 10575, 10576, 10577, 10578, 10579, 10580, 10581, 10582, 10583, 10584, 10585, 10586, 10587, 10588, 10589, 10590, 10591, 10592, 10593, 10594, 10595, 10596, 10597, 10598, 10599, 10600, 10601, 10602, 10603, 10604, 10605, 10606, 10607, 10608, 10609, 10610, 10611, 10612, 10613, 10614, 10615, 10616, 10617, 10618, 10619, 10620, 10621, 10622, 10623, 10624, 10625, 10626, 10627, 10628, 10629, 10630, 10631, 10632, 10633, 10634, 10635, 10636, 10637, 10638, 10639, 10640, 10641, 10642, 10643, 10644, 10645, 10646, 10647, 10648, 10649, 10650, 10651, 10652, 10653, 10654, 10655, 10656, 10657, 10658, 10659, 10660, 10661, 10662, 10663, 10664, 10665, 10666, 10667, 10668, 10669, 10670, 10671, 10672, 10673, 10674, 10675, 10676, 10677, 10678, 10679, 10680, 10681, 10682, 10683, 10684, 10685, 10686, 10687, 10688, 10689, 10690, 10691, 10692, 10693, 10694, 10695, 10696, 10697, 10698, 10699, 10700, 10701, 10702, 10703, 10704, 10705, 10706, 10707, 10708, 10709, 10710, 10711, 10712, 10713, 10714, 10715, 10716, 10717, 10718, 10719, 10720, 10721, 10722, 10723, 10724, 10725, 10726, 10727, 10728, 10729, 10730, 10731, 10732, 10733, 10734, 10735, 10736, 10737, 10738, 10739, 10740, 10741, 10742, 10743, 10744, 10745, 10746, 10747, 10748, 10749, 10750, 10751, 10752, 10753, 10754, 10755, 10756, 10757, 10758, 10759, 10760, 10761, 10762, 10763, 10764, 10765, 10766, 10767, 10768, 10769, 10770, 10771, 10772, 10773, 10774, 10775, 10776, 10777, 10778, 10779, 10780, 10781, 10782, 10783, 10784, 10785, 10786, 10787, 10788, 10789, 10790, 10791, 10792, 10793, 10794, 10795, 10796, 10797, 10798, 10799, 10800, 10801, 10802, 10803, 10804, 10805, 10806, 10807, 10808, 10809, 10810, 10811, 10812, 10813, 10814, 10815, 10816, 10817, 10818, 10819, 10820, 10821, 10822, 10823, 10824, 10825, 10826, 10827, 10828, 10829, 10830, 10831, 10832, 10833, 10834, 10835, 10836, 10837, 10838, 10839, 10840, 10841, 10842, 10843, 10844, 10845, 10846, 10847, 10848, 10849, 10850, 10851, 10852, 10853, 10854, 10855, 10856, 10857, 10858, 10859, 10860, 10861, 10862, 10863, 10864, 10865, 10866, 10867, 10868, 10869, 10870, 10871, 10872, 10873, 10874, 10875, 10876, 10877, 10878, 10879, 10880, 10881, 10882, 10883, 10884, 10885, 10886, 10887, 10888, 10889, 10890, 10891, 10892, 10893, 10894, 10895, 10896, 10897, 10898, 10899, 10900, 10901, 10902, 10903, 10904, 10905, 10906, 10907, 10908, 10909, 10910, 10911, 10912, 10913, 10914, 10915, 10916, 10917, 10918, 10919, 10920, 10921, 10922, 10923, 10924, 10925, 10926, 10927, 10928, 10929, 10930, 10931, 10932, 10933, 10934, 10935, 10936, 10937, 10938, 10939, 10940, 10941, 10942, 10943, 10944, 10945, 10946, 10947, 10948, 10949, 10950, 10951, 10952, 10953, 10954, 10955, 10956, 10957, 10958, 10959, 10960, 10961, 10962, 10963, 10964, 10965, 10966, 10967, 10968, 10969, 10970, 10971, 10972, 10973, 10974, 10975, 10976, 10977, 10978, 10979, 10980, 10981, 10982, 10983, 10984, 10985, 10986, 10987, 10988, 10989, 10990, 10991, 10992, 10993, 10994, 10995, 10996, 10997, 10998, 10999, 11000, 11001, 11002, 11003, 11004, 11005, 11006, 11007, 11008, 11009, 11010, 11011, 11012, 11013, 11014, 11015, 11016, 11017, 11018, 11019, 11020, 11021, 11022, 11023, 11024, 11025, 11026, 11027, 11028, 11029, 11030, 11031, 11032, 11033, 11034, 11035, 11036, 11037, 11038, 11039, 11040, 11041, 11042, 11043, 11044, 11045, 11046, 11047, 11048, 11049, 11050, 11051, 11052, 11053, 11054, 11055, 11056, 11057, 11058, 11059, 11060, 11061, 11062, 11063, 11064, 11065, 11066, 11067, 11068, 11069, 11070, 11071, 11072, 11073, 11074, 11075, 11076, 11077, 11078, 11079, 11080, 11081, 11082, 11083, 11084, 11085, 11086, 11087, 11088, 11089, 11090, 11091, 11092, 11093, 11094, 11095, 11096, 11097, 11098, 11099, 11100, 11101, 11102, 11103, 11104, 11105, 11106, 11107, 11108, 11109, 11110, 11111, 11112, 11113, 11114, 11115, 11116, 11117, 11118, 11119, 11120, 11121, 11122, 11123, 11124, 11125, 11126, 11127, 11128, 11129, 11130, 11131, 11132, 11133, 11134, 11135, 11136, 11137, 11138, 11139, 11140, 11141, 11142, 11143, 11144, 11145, 11146, 11147, 11148, 11149, 11150, 11151, 11152, 11153, 11154, 11155, 11156, 11157, 11158, 11159, 11160, 11161, 11162, 11163, 11164, 11165, 11166, 11167, 11168, 11169, 11170, 11171, 11172, 11173, 11174, 11175, 11176, 11177, 11178, 11179, 11180, 11181, 11182, 11183, 11184, 11185, 11186, 11187, 11188, 11189, 11190, 11191, 11192, 11193, 11194, 11195, 11196, 11197, 11198, 11199, 11200, 11201, 11202, 11203, 11204, 11205, 11206, 11207, 11208, 11209, 11210, 11211, 11212, 11213, 11214, 11215, 11216, 11217, 11218, 11219, 11220, 11221, 11222, 11223, 11224, 11225, 11226, 11227, 11228, 11229, 11230, 11231, 11232, 11233, 11234, 11235, 11236, 11237, 11238, 11239, 11240, 11241, 11242, 11243, 11244, 11245, 11246, 11247, 11248, 11249, 11250, 11251, 11252, 11253, 11254, 11255, 11256, 11257, 11258, 11259, 11260, 11261, 11262, 11263, 11264, 11265, 11266, 11267, 11268, 11269, 11270, 11271, 11272, 11273, 11274, 11275, 11276, 11277, 11278, 11279, 11280, 11281, 11282, 11283, 11284, 11285, 11286, 11287, 11288, 11289, 11290, 11291, 11292, 11293, 11294, 11295, 11296, 11297, 11298, 11299, 11300, 11301, 11302, 11303, 11304, 11305, 11306, 11307, 11308, 11309, 11310, 11311, 11312, 11313, 11314, 11315, 11316, 11317, 11318, 11319, 11320, 11321, 11322, 11323, 11324, 11325, 11326, 11327, 11328, 11329, 11330, 11331, 11332, 11333, 11334, 11335, 11336, 11337, 11338, 11339, 11340, 11341, 11342, 11343, 11344, 11345, 11346, 11347, 11348, 11349, 11350, 11351, 11352, 11353, 11354, 11355, 11356, 11357, 11358, 11359, 11360, 11361, 11362, 11363, 11364, 11365, 11366, 11367, 11368, 11369, 11370, 11371, 11372, 11373, 11374, 11375, 11376, 11377, 11378, 11379, 11380, 11381, 11382, 11383, 11384, 11385, 11386, 11387, 11388, 11389, 11390, 11391, 11392, 11393, 11394, 11395, 11396, 11397, 11398, 11399, 11400, 11401, 11402, 11403, 11404, 11405, 11406, 11407, 11408, 11409, 11410, 11411, 11412, 11413, 11414, 11415, 11416, 11417, 11418, 11419, 11420, 11421, 11422, 11423, 11424, 11425, 11426, 11427, 11428, 11429, 11430, 11431, 11432, 11433, 11434, 11435, 11436, 11437, 11438, 11439, 11440, 11441, 11442, 11443, 11444, 11445, 11446, 11447, 11448, 11449, 11450, 11451, 11452, 11453, 11454, 11455, 11456, 11457, 11458, 11459, 11460, 11461, 11462, 11463, 11464, 11465, 11466, 11467, 11468, 11469, 11470, 11471, 11472, 11473, 11474, 11475, 11476, 11477, 11478, 11479, 11480, 11481, 11482, 11483, 11484, 11485, 11486, 11487, 11488, 11489, 11490, 11491, 11492, 11493, 11494, 11495, 11496, 11497, 11498, 11499, 11500, 11501, 11502, 11503, 11504, 11505, 11506, 11507, 11508, 11509, 11510, 11511, 11512, 11513, 11514, 11515, 11516, 11517, 11518, 11519, 11520, 11521, 11522, 11523, 11524, 11525, 11526, 11527, 11528, 11529, 11530, 11531, 11532, 11533, 11534, 11535, 11536, 11537, 11538, 11539, 11540, 11541, 11542, 11543, 11544, 11545, 11546, 11547, 11548, 11549, 11550, 11551, 11552, 11553, 11554, 11555, 11556, 11557, 11558, 11559, 11560, 11561, 11562, 11563, 11564, 11565, 11566, 11567, 11568, 11569, 11570, 11571, 11572, 11573, 11574, 11575, 11576, 11577, 11578, 11579, 11580, 11581, 11582, 11583, 11584, 11585, 11586, 11587, 11588, 11589, 11590, 11591, 11592, 11593, 11594, 11595, 11596, 11597, 11598, 11599, 11600, 11601, 11602, 11603, 11604, 11605, 11606, 11607, 11608, 11609, 11610, 11611, 11612, 11613, 11614, 11615, 11616, 11617, 11618, 11619, 11620, 11621, 11622, 11623, 11624, 11625, 11626, 11627, 11628, 11629, 11630, 11631, 11632, 11633, 11634, 11635, 11636, 11637, 11638, 11639, 11640, 11641, 11642, 11643, 11644, 11645, 11646, 11647, 11648, 11649, 11650, 11651, 11652, 11653, 11654, 11655, 11656, 11657, 11658, 11659, 11660, 11661, 11662, 11663, 11664, 11665, 11666, 11667, 11668, 11669, 11670, 11671, 11672, 11673, 11674, 11675, 11676, 11677, 11678, 11679, 11680, 11681, 11682, 11683, 11684, 11685, 11686, 11687, 11688, 11689, 11690, 11691, 11692, 11693, 11694, 11695, 11696, 11697, 11698, 11699, 11700, 11701, 11702, 11703, 11704, 11705, 11706, 11707, 11708, 11709, 11710, 11711, 11712, 11713, 11714, 11715, 11716, 11717, 11718, 11719, 11720, 11721, 11722, 11723, 11724, 11725, 11726, 11727, 11728, 11729, 11730, 11731, 11732, 11733, 11734, 11735, 11736, 11737, 11738, 11739, 11740, 11741, 11742, 11743, 11744, 11745, 11746, 11747, 11748, 11749, 11750, 11751, 11752, 11753, 11754, 11755, 11756, 11757, 11758, 11759, 11760, 11761, 11762, 11763, 11764, 11765, 11766, 11767, 11768, 11769, 11770, 11771, 11772, 11773, 11774, 11775, 11776, 11777, 11778, 11779, 11780, 11781, 11782, 11783, 11784, 11785, 11786, 11787, 11788, 11789, 11790, 11791, 11792, 11793, 11794, 11795, 11796, 11797, 11798, 11799, 11800, 11801, 11802, 11803, 11804, 11805, 11806, 11807, 11808, 11809, 11810, 11811, 11812, 11813, 11814, 11815, 11816, 11817, 11818, 11819, 11820, 11821, 11822, 11823, 11824, 11825, 11826, 11827, 11828, 11829, 11830, 11831, 11832, 11833, 11834, 11835, 11836, 11837, 11838, 11839, 11840, 11841, 11842, 11843, 11844, 11845, 11846, 11847, 11848, 11849, 11850, 11851, 11852, 11853, 11854, 11855, 11856, 11857, 11858, 11859, 11860, 11861, 11862, 11863, 11864, 11865, 11866, 11867, 11868, 11869, 11870, 11871, 11872, 11873, 11874, 11875, 11876, 11877, 11878, 11879, 11880, 11881, 11882, 11883, 11884, 11885, 11886, 11887, 11888, 11889, 11890, 11891, 11892, 11893, 11894, 11895, 11896, 11897, 11898, 11899, 11900, 11901, 11902, 11903, 11904, 11905, 11906, 11907, 11908, 11909, 11910, 11911, 11912, 11913, 11914, 11915, 11916, 11917, 11918, 11919, 11920, 11921, 11922, 11923, 11924, 11925, 11926, 11927, 11928, 11929, 11930, 11931, 11932, 11933, 11934, 11935, 11936, 11937, 11938, 11939, 11940, 11941, 11942, 11943, 11944, 11945, 11946, 11947, 11948, 11949, 11950, 11951, 11952, 11953, 11954, 11955, 11956, 11957, 11958, 11959}}, {1, {11960, 11961, 11962, 11963, 11964, 11965, 11966, 11967, 11968, 11969, 11970, 11971, 11972, 11973, 11974, 11975, 11976, 11977, 11978, 11979, 11980, 11981, 11982, 11983, 11984, 11985, 11986, 11987, 11988, 11989, 11990, 11991, 11992, 11993, 11994, 11995, 11996, 11997, 11998, 11999, 12000, 12001, 12002, 12003, 12004, 12005, 12006, 12007, 12008, 12009, 12010, 12011, 12012, 12013, 12014, 12015, 12016, 12017, 12018, 12019, 12020, 12021, 12022, 12023, 12024, 12025, 12026, 12027, 12028, 12029, 12030, 12031, 12032, 12033, 12034, 12035, 12036, 12037, 12038, 12039, 12040, 12041, 12042, 12043, 12044, 12045, 12046, 12047, 12048, 12049, 12050, 12051, 12052, 12053, 12054, 12055, 12056, 12057, 12058, 12059, 12060, 12061, 12062, 12063, 12064, 12065, 12066, 12067, 12068, 12069, 12070, 12071, 12072, 12073, 12074, 12075, 12076, 12077, 12078, 12079, 12080, 12081, 12082, 12083, 12084, 12085, 12086, 12087, 12088, 12089, 12090, 12091, 12092, 12093, 12094, 12095, 12096, 12097, 12098, 12099, 12100, 12101, 12102, 12103, 12104, 12105, 12106, 12107, 12108, 12109, 12110, 12111, 12112, 12113, 12114, 12115, 12116, 12117, 12118, 12119, 12120, 12121, 12122, 12123, 12124, 12125, 12126, 12127, 12128, 12129, 12130, 12131, 12132, 12133, 12134, 12135, 12136, 12137, 12138, 12139, 12140, 12141, 12142, 12143, 12144, 12145, 12146, 12147, 12148, 12149, 12150, 12151, 12152, 12153, 12154, 12155, 12156, 12157, 12158, 12159, 12160, 12161, 12162, 12163, 12164, 12165, 12166, 12167, 12168, 12169, 12170, 12171, 12172, 12173, 12174, 12175, 12176, 12177, 12178, 12179, 12180, 12181, 12182, 12183, 12184, 12185, 12186, 12187, 12188, 12189, 12190, 12191, 12192, 12193, 12194, 12195, 12196, 12197, 12198, 12199, 12200, 12201, 12202, 12203, 12204, 12205, 12206, 12207, 12208, 12209, 12210, 12211, 12212, 12213, 12214, 12215, 12216, 12217, 12218, 12219, 12220, 12221, 12222, 12223, 12224, 12225, 12226, 12227, 12228, 12229, 12230, 12231, 12232, 12233, 12234, 12235, 12236, 12237, 12238, 12239, 12240, 12241, 12242, 12243, 12244, 12245, 12246, 12247, 12248, 12249, 12250, 12251, 12252, 12253, 12254, 12255, 12256, 12257, 12258, 12259, 12260, 12261, 12262, 12263, 12264, 12265, 12266, 12267, 12268, 12269, 12270, 12271, 12272, 12273, 12274, 12275, 12276, 12277, 12278, 12279, 12280, 12281, 12282, 12283, 12284, 12285, 12286, 12287, 12288, 12289, 12290, 12291, 12292, 12293, 12294, 12295, 12296, 12297, 12298, 12299, 12300, 12301, 12302, 12303, 12304, 12305, 12306, 12307, 12308, 12309, 12310, 12311, 12312, 12313, 12314, 12315, 12316, 12317, 12318, 12319, 12320, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329, 12330, 12331, 12332, 12333, 12334, 12335, 12336, 12337, 12338, 12339, 12340, 12341, 12342, 12343, 12344, 12345, 12346, 12347, 12348, 12349, 12350, 12351, 12352, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, 12436, 12437, 12438, 12439, 12440, 12441, 12442, 12443, 12444, 12445, 12446, 12447, 12448, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12522, 12523, 12524, 12525, 12526, 12527, 12528, 12529, 12530, 12531, 12532, 12533, 12534, 12535, 12536, 12537, 12538, 12539, 12540, 12541, 12542, 12543, 12544, 12545, 12546, 12547, 12548, 12549, 12550, 12551, 12552, 12553, 12554, 12555, 12556, 12557, 12558, 12559, 12560, 12561, 12562, 12563, 12564, 12565, 12566, 12567, 12568, 12569, 12570, 12571, 12572, 12573, 12574, 12575, 12576, 12577, 12578, 12579, 12580, 12581, 12582, 12583, 12584, 12585, 12586, 12587, 12588, 12589, 12590, 12591, 12592, 12593, 12594, 12595, 12596, 12597, 12598, 12599, 12600, 12601, 12602, 12603, 12604, 12605, 12606, 12607, 12608, 12609, 12610, 12611, 12612, 12613, 12614, 12615, 12616, 12617, 12618, 12619, 12620, 12621, 12622, 12623, 12624, 12625, 12626, 12627, 12628, 12629, 12630, 12631, 12632, 12633, 12634, 12635, 12636, 12637, 12638, 12639, 12640, 12641, 12642, 12643, 12644, 12645, 12646, 12647, 12648, 12649, 12650, 12651, 12652, 12653, 12654, 12655, 12656, 12657, 12658, 12659, 12660, 12661, 12662, 12663, 12664, 12665, 12666, 12667, 12668, 12669, 12670, 12671, 12672, 12673, 12674, 12675, 12676, 12677, 12678, 12679, 12680, 12681, 12682, 12683, 12684, 12685, 12686, 12687, 12688, 12689, 12690, 12691, 12692, 12693, 12694, 12695, 12696, 12697, 12698, 12699, 12700, 12701, 12702, 12703, 12704, 12705, 12706, 12707, 12708, 12709, 12710, 12711, 12712, 12713, 12714, 12715, 12716, 12717, 12718, 12719, 12720, 12721, 12722, 12723, 12724, 12725, 12726, 12727, 12728, 12729, 12730, 12731, 12732, 12733, 12734, 12735, 12736, 12737, 12738, 12739, 12740, 12741, 12742, 12743, 12744, 12745, 12746, 12747, 12748, 12749, 12750, 12751, 12752, 12753, 12754, 12755, 12756, 12757, 12758, 12759, 12760, 12761, 12762, 12763, 12764, 12765, 12766, 12767, 12768, 12769, 12770, 12771, 12772, 12773, 12774, 12775, 12776, 12777, 12778, 12779, 12780, 12781, 12782, 12783, 12784, 12785, 12786, 12787, 12788, 12789, 12790, 12791, 12792, 12793, 12794, 12795, 12796, 12797, 12798, 12799, 12800, 12801, 12802, 12803, 12804, 12805, 12806, 12807, 12808, 12809, 12810, 12811, 12812, 12813, 12814, 12815, 12816, 12817, 12818, 12819, 12820, 12821, 12822, 12823, 12824, 12825, 12826, 12827, 12828, 12829, 12830, 12831, 12832, 12833, 12834, 12835, 12836, 12837, 12838, 12839, 12840, 12841, 12842, 12843, 12844, 12845, 12846, 12847, 12848, 12849, 12850, 12851, 12852, 12853, 12854, 12855, 12856, 12857, 12858, 12859, 12860, 12861, 12862, 12863, 12864, 12865, 12866, 12867, 12868, 12869, 12870, 12871, 12872, 12873, 12874, 12875, 12876, 12877, 12878, 12879, 12880, 12881, 12882, 12883, 12884, 12885, 12886, 12887, 12888, 12889, 12890, 12891, 12892, 12893, 12894, 12895, 12896, 12897, 12898, 12899, 12900, 12901, 12902, 12903, 12904, 12905, 12906, 12907, 12908, 12909, 12910, 12911, 12912, 12913, 12914, 12915, 12916, 12917, 12918, 12919, 12920, 12921, 12922, 12923, 12924, 12925, 12926, 12927, 12928, 12929, 12930, 12931, 12932, 12933, 12934, 12935, 12936, 12937, 12938, 12939, 12940, 12941, 12942, 12943, 12944, 12945, 12946, 12947, 12948, 12949, 12950, 12951, 12952, 12953, 12954, 12955, 12956, 12957, 12958, 12959, 12960, 12961, 12962, 12963, 12964, 12965, 12966, 12967, 12968, 12969, 12970, 12971, 12972, 12973, 12974, 12975, 12976, 12977, 12978, 12979, 12980, 12981, 12982, 12983, 12984, 12985, 12986, 12987, 12988, 12989, 12990, 12991, 12992, 12993, 12994, 12995, 12996, 12997, 12998, 12999, 13000, 13001, 13002, 13003, 13004, 13005, 13006, 13007, 13008, 13009, 13010, 13011, 13012, 13013, 13014, 13015, 13016, 13017, 13018, 13019, 13020, 13021, 13022, 13023, 13024, 13025, 13026, 13027, 13028, 13029, 13030, 13031, 13032, 13033, 13034, 13035, 13036, 13037, 13038, 13039, 13040, 13041, 13042, 13043, 13044, 13045, 13046, 13047, 13048, 13049, 13050, 13051, 13052, 13053, 13054, 13055, 13056, 13057, 13058, 13059, 13060, 13061, 13062, 13063, 13064, 13065, 13066, 13067, 13068, 13069, 13070, 13071, 13072, 13073, 13074, 13075, 13076, 13077, 13078, 13079, 13080, 13081, 13082, 13083, 13084, 13085, 13086, 13087, 13088, 13089, 13090, 13091, 13092, 13093, 13094, 13095, 13096, 13097, 13098, 13099, 13100, 13101, 13102, 13103, 13104, 13105, 13106, 13107, 13108, 13109, 13110, 13111, 13112, 13113, 13114, 13115, 13116, 13117, 13118, 13119, 13120, 13121, 13122, 13123, 13124, 13125, 13126, 13127, 13128, 13129, 13130, 13131, 13132, 13133, 13134, 13135, 13136, 13137, 13138, 13139, 13140, 13141, 13142, 13143, 13144, 13145, 13146, 13147, 13148, 13149, 13150, 13151, 13152, 13153, 13154, 13155, 13156, 13157, 13158, 13159, 13160, 13161, 13162, 13163, 13164, 13165, 13166, 13167, 13168, 13169, 13170, 13171, 13172, 13173, 13174, 13175, 13176, 13177, 13178, 13179, 13180, 13181, 13182, 13183, 13184, 13185, 13186, 13187, 13188, 13189, 13190, 13191, 13192, 13193, 13194, 13195, 13196, 13197, 13198, 13199, 13200, 13201, 13202, 13203, 13204, 13205, 13206, 13207, 13208, 13209, 13210, 13211, 13212, 13213, 13214, 13215, 13216, 13217, 13218, 13219, 13220, 13221, 13222, 13223, 13224, 13225, 13226, 13227, 13228, 13229, 13230, 13231, 13232, 13233, 13234, 13235, 13236, 13237, 13238, 13239, 13240, 13241, 13242, 13243, 13244, 13245, 13246, 13247, 13248, 13249, 13250, 13251, 13252, 13253, 13254, 13255, 13256, 13257, 13258, 13259, 13260, 13261, 13262, 13263, 13264, 13265, 13266, 13267, 13268, 13269, 13270, 13271, 13272, 13273, 13274, 13275, 13276, 13277, 13278, 13279, 13280, 13281, 13282, 13283, 13284, 13285, 13286, 13287, 13288, 13289, 13290, 13291, 13292, 13293, 13294, 13295, 13296, 13297, 13298, 13299, 13300, 13301, 13302, 13303, 13304, 13305, 13306, 13307, 13308, 13309, 13310, 13311, 13312, 13313, 13314, 13315, 13316, 13317, 13318, 13319, 13320, 13321, 13322, 13323, 13324, 13325, 13326, 13327, 13328, 13329, 13330, 13331, 13332, 13333, 13334, 13335, 13336, 13337, 13338, 13339, 13340, 13341, 13342, 13343, 13344, 13345, 13346, 13347, 13348, 13349, 13350, 13351, 13352, 13353, 13354, 13355, 13356, 13357, 13358, 13359, 13360, 13361, 13362, 13363, 13364, 13365, 13366, 13367, 13368, 13369, 13370, 13371, 13372, 13373, 13374, 13375, 13376, 13377, 13378, 13379, 13380, 13381, 13382, 13383, 13384, 13385, 13386, 13387, 13388, 13389, 13390, 13391, 13392, 13393, 13394, 13395, 13396, 13397, 13398, 13399, 13400, 13401, 13402, 13403, 13404, 13405, 13406, 13407, 13408, 13409, 13410, 13411, 13412, 13413, 13414, 13415, 13416, 13417, 13418, 13419, 13420, 13421, 13422, 13423, 13424, 13425, 13426, 13427, 13428, 13429, 13430, 13431, 13432, 13433, 13434, 13435, 13436, 13437, 13438, 13439, 13440, 13441, 13442, 13443, 13444, 13445, 13446, 13447, 13448, 13449, 13450, 13451, 13452, 13453, 13454, 13455, 13456, 13457, 13458, 13459, 13460, 13461, 13462, 13463, 13464, 13465, 13466, 13467, 13468, 13469, 13470, 13471, 13472, 13473, 13474, 13475, 13476, 13477, 13478, 13479, 13480, 13481, 13482, 13483, 13484, 13485, 13486, 13487, 13488, 13489, 13490, 13491, 13492, 13493, 13494, 13495, 13496, 13497, 13498, 13499, 13500, 13501, 13502, 13503, 13504, 13505, 13506, 13507, 13508, 13509, 13510, 13511, 13512, 13513, 13514, 13515, 13516, 13517, 13518, 13519, 13520, 13521, 13522, 13523, 13524, 13525, 13526, 13527, 13528, 13529, 13530, 13531, 13532, 13533, 13534, 13535, 13536, 13537, 13538, 13539, 13540, 13541, 13542, 13543, 13544, 13545, 13546, 13547, 13548, 13549, 13550, 13551, 13552, 13553, 13554, 13555, 13556, 13557, 13558, 13559, 13560, 13561, 13562, 13563, 13564, 13565, 13566, 13567, 13568, 13569, 13570, 13571, 13572, 13573, 13574, 13575, 13576, 13577, 13578, 13579, 13580, 13581, 13582, 13583, 13584, 13585, 13586, 13587, 13588, 13589, 13590, 13591, 13592, 13593, 13594, 13595, 13596, 13597, 13598, 13599, 13600, 13601, 13602, 13603, 13604, 13605, 13606, 13607, 13608, 13609, 13610, 13611, 13612, 13613, 13614, 13615, 13616, 13617, 13618, 13619, 13620, 13621, 13622, 13623, 13624, 13625, 13626, 13627, 13628, 13629, 13630, 13631, 13632, 13633, 13634, 13635, 13636, 13637, 13638, 13639, 13640, 13641, 13642, 13643, 13644, 13645, 13646, 13647, 13648, 13649, 13650, 13651, 13652, 13653, 13654, 13655, 13656, 13657, 13658, 13659, 13660, 13661, 13662, 13663, 13664, 13665, 13666, 13667, 13668, 13669, 13670, 13671, 13672, 13673, 13674, 13675, 13676, 13677, 13678, 13679, 13680, 13681, 13682, 13683, 13684, 13685, 13686, 13687, 13688, 13689, 13690, 13691, 13692, 13693, 13694, 13695, 13696, 13697, 13698, 13699, 13700, 13701, 13702, 13703, 13704, 13705, 13706, 13707, 13708, 13709, 13710, 13711, 13712, 13713, 13714, 13715, 13716, 13717, 13718, 13719, 13720, 13721, 13722, 13723, 13724, 13725, 13726, 13727, 13728, 13729, 13730, 13731, 13732, 13733, 13734, 13735, 13736, 13737, 13738, 13739, 13740, 13741, 13742, 13743, 13744, 13745, 13746, 13747, 13748, 13749, 13750, 13751, 13752, 13753, 13754, 13755, 13756, 13757, 13758, 13759, 13760, 13761, 13762, 13763, 13764, 13765, 13766, 13767, 13768, 13769, 13770, 13771, 13772, 13773, 13774, 13775, 13776, 13777, 13778, 13779, 13780, 13781, 13782, 13783, 13784, 13785, 13786, 13787, 13788, 13789, 13790, 13791, 13792, 13793, 13794, 13795, 13796, 13797, 13798, 13799, 13800, 13801, 13802, 13803, 13804, 13805, 13806, 13807, 13808, 13809, 13810, 13811, 13812, 13813, 13814, 13815, 13816, 13817, 13818, 13819, 13820, 13821, 13822, 13823, 13824, 13825, 13826, 13827, 13828, 13829, 13830, 13831, 13832, 13833, 13834, 13835, 13836, 13837, 13838, 13839, 13840, 13841, 13842, 13843, 13844, 13845, 13846, 13847, 13848, 13849, 13850, 13851, 13852, 13853, 13854, 13855, 13856, 13857, 13858, 13859, 13860, 13861, 13862, 13863, 13864, 13865, 13866, 13867, 13868, 13869, 13870, 13871, 13872, 13873, 13874, 13875, 13876, 13877, 13878, 13879, 13880, 13881, 13882, 13883, 13884, 13885, 13886, 13887, 13888, 13889, 13890, 13891, 13892, 13893, 13894, 13895, 13896, 13897, 13898, 13899, 13900, 13901, 13902, 13903, 13904, 13905, 13906, 13907, 13908, 13909, 13910, 13911, 13912, 13913, 13914, 13915, 13916, 13917, 13918, 13919, 13920, 13921, 13922, 13923, 13924, 13925, 13926, 13927, 13928, 13929, 13930, 13931, 13932, 13933, 13934, 13935, 13936, 13937, 13938, 13939, 13940, 13941, 13942, 13943, 13944, 13945, 13946, 13947, 13948, 13949, 13950, 13951, 13952, 13953, 13954, 13955, 13956, 13957, 13958, 13959, 13960, 13961, 13962, 13963, 13964, 13965, 13966, 13967, 13968, 13969, 13970, 13971, 13972, 13973, 13974, 13975, 13976, 13977, 13978, 13979, 13980, 13981, 13982, 13983, 13984, 13985, 13986, 13987, 13988, 13989, 13990, 13991, 13992, 13993, 13994, 13995, 13996, 13997, 13998, 13999, 14000, 14001, 14002, 14003, 14004, 14005, 14006, 14007, 14008, 14009, 14010, 14011, 14012, 14013, 14014, 14015, 14016, 14017, 14018, 14019, 14020, 14021, 14022, 14023, 14024, 14025, 14026, 14027, 14028, 14029, 14030, 14031, 14032, 14033, 14034, 14035, 14036, 14037, 14038, 14039, 14040, 14041, 14042, 14043, 14044, 14045, 14046, 14047, 14048, 14049, 14050, 14051, 14052, 14053, 14054, 14055, 14056, 14057, 14058, 14059, 14060, 14061, 14062, 14063, 14064, 14065, 14066, 14067, 14068, 14069, 14070, 14071, 14072, 14073, 14074, 14075, 14076, 14077, 14078, 14079, 14080, 14081, 14082, 14083, 14084, 14085, 14086, 14087, 14088, 14089, 14090, 14091, 14092, 14093, 14094, 14095, 14096, 14097, 14098, 14099, 14100, 14101, 14102, 14103, 14104, 14105, 14106, 14107, 14108, 14109, 14110, 14111, 14112, 14113, 14114, 14115, 14116, 14117, 14118, 14119, 14120, 14121, 14122, 14123, 14124, 14125, 14126, 14127, 14128, 14129, 14130, 14131, 14132, 14133, 14134, 14135, 14136, 14137, 14138, 14139, 14140, 14141, 14142, 14143, 14144, 14145, 14146, 14147, 14148, 14149, 14150, 14151, 14152, 14153, 14154, 14155, 14156, 14157, 14158, 14159, 14160, 14161, 14162, 14163, 14164, 14165, 14166, 14167, 14168, 14169, 14170, 14171, 14172, 14173, 14174, 14175, 14176, 14177, 14178, 14179, 14180, 14181, 14182, 14183, 14184, 14185, 14186, 14187, 14188, 14189, 14190, 14191, 14192, 14193, 14194, 14195, 14196, 14197, 14198, 14199, 14200, 14201, 14202, 14203, 14204, 14205, 14206, 14207, 14208, 14209, 14210, 14211, 14212, 14213, 14214, 14215, 14216, 14217, 14218, 14219, 14220, 14221, 14222, 14223, 14224, 14225, 14226, 14227, 14228, 14229, 14230, 14231, 14232, 14233, 14234, 14235, 14236, 14237, 14238, 14239, 14240, 14241, 14242, 14243, 14244, 14245, 14246, 14247, 14248, 14249, 14250, 14251, 14252, 14253, 14254, 14255, 14256, 14257, 14258, 14259, 14260, 14261, 14262, 14263, 14264, 14265, 14266, 14267, 14268, 14269, 14270, 14271, 14272, 14273, 14274, 14275, 14276, 14277, 14278, 14279, 14280, 14281, 14282, 14283, 14284, 14285, 14286, 14287, 14288, 14289, 14290, 14291, 14292, 14293, 14294, 14295, 14296, 14297, 14298, 14299, 14300, 14301, 14302, 14303, 14304, 14305, 14306, 14307, 14308, 14309, 14310, 14311, 14312, 14313, 14314, 14315, 14316, 14317, 14318, 14319, 14320, 14321, 14322, 14323, 14324, 14325, 14326, 14327, 14328, 14329, 14330, 14331, 14332, 14333, 14334, 14335, 14336, 14337, 14338, 14339, 14340, 14341, 14342, 14343, 14344, 14345, 14346, 14347, 14348, 14349, 14350, 14351, 14352, 14353, 14354, 14355, 14356, 14357, 14358, 14359, 14360, 14361, 14362, 14363, 14364, 14365, 14366, 14367, 14368, 14369, 14370, 14371, 14372, 14373, 14374, 14375, 14376, 14377, 14378, 14379, 14380, 14381, 14382, 14383, 14384, 14385, 14386, 14387, 14388, 14389, 14390, 14391, 14392, 14393, 14394, 14395, 14396, 14397, 14398, 14399, 14400, 14401, 14402, 14403, 14404, 14405, 14406, 14407, 14408, 14409, 14410, 14411, 14412, 14413, 14414, 14415, 14416, 14417, 14418, 14419, 14420, 14421, 14422, 14423, 14424, 14425, 14426, 14427, 14428, 14429, 14430, 14431, 14432, 14433, 14434, 14435, 14436, 14437, 14438, 14439, 14440, 14441, 14442, 14443, 14444, 14445, 14446, 14447, 14448, 14449, 14450, 14451, 14452, 14453, 14454, 14455, 14456, 14457, 14458, 14459, 14460, 14461, 14462, 14463, 14464, 14465, 14466, 14467, 14468, 14469, 14470, 14471, 14472, 14473, 14474, 14475, 14476, 14477, 14478, 14479, 14480, 14481, 14482, 14483, 14484, 14485, 14486, 14487, 14488, 14489, 14490, 14491, 14492, 14493, 14494, 14495, 14496, 14497, 14498, 14499, 14500, 14501, 14502, 14503, 14504, 14505, 14506, 14507, 14508, 14509, 14510, 14511, 14512, 14513, 14514, 14515, 14516, 14517, 14518, 14519, 14520, 14521, 14522, 14523, 14524, 14525, 14526, 14527, 14528, 14529, 14530, 14531, 14532, 14533, 14534, 14535, 14536, 14537, 14538, 14539, 14540, 14541, 14542, 14543, 14544, 14545, 14546, 14547, 14548, 14549, 14550, 14551, 14552, 14553, 14554, 14555, 14556, 14557, 14558, 14559, 14560, 14561, 14562, 14563, 14564, 14565, 14566, 14567, 14568, 14569, 14570, 14571, 14572, 14573, 14574, 14575, 14576, 14577, 14578, 14579, 14580, 14581, 14582, 14583, 14584, 14585, 14586, 14587, 14588, 14589, 14590, 14591, 14592, 14593, 14594, 14595, 14596, 14597, 14598, 14599, 14600, 14601, 14602, 14603, 14604, 14605, 14606, 14607, 14608, 14609, 14610, 14611, 14612, 14613, 14614, 14615, 14616, 14617, 14618, 14619, 14620, 14621, 14622, 14623, 14624, 14625, 14626, 14627, 14628, 14629, 14630, 14631, 14632, 14633, 14634, 14635, 14636, 14637, 14638, 14639, 14640, 14641, 14642, 14643, 14644, 14645, 14646, 14647, 14648, 14649, 14650, 14651, 14652, 14653, 14654, 14655, 14656, 14657, 14658, 14659, 14660, 14661, 14662, 14663, 14664, 14665, 14666, 14667, 14668, 14669, 14670, 14671, 14672, 14673, 14674, 14675, 14676, 14677, 14678, 14679, 14680, 14681, 14682, 14683, 14684, 14685, 14686, 14687, 14688, 14689, 14690, 14691, 14692, 14693, 14694, 14695, 14696, 14697, 14698, 14699, 14700, 14701, 14702, 14703, 14704, 14705, 14706, 14707, 14708, 14709, 14710, 14711, 14712, 14713, 14714, 14715, 14716, 14717, 14718, 14719, 14720, 14721, 14722, 14723, 14724, 14725, 14726, 14727, 14728, 14729, 14730, 14731, 14732, 14733, 14734, 14735, 14736, 14737, 14738, 14739, 14740, 14741, 14742, 14743, 14744, 14745, 14746, 14747, 14748, 14749, 14750, 14751, 14752, 14753, 14754, 14755, 14756, 14757, 14758, 14759, 14760, 14761, 14762, 14763, 14764, 14765, 14766, 14767, 14768, 14769, 14770, 14771, 14772, 14773, 14774, 14775, 14776, 14777, 14778, 14779, 14780, 14781, 14782, 14783, 14784, 14785, 14786, 14787, 14788, 14789, 14790, 14791, 14792, 14793, 14794, 14795, 14796, 14797, 14798, 14799, 14800, 14801, 14802, 14803, 14804, 14805, 14806, 14807, 14808, 14809, 14810, 14811, 14812, 14813, 14814, 14815, 14816, 14817, 14818, 14819, 14820, 14821, 14822, 14823, 14824, 14825, 14826, 14827, 14828, 14829, 14830, 14831, 14832, 14833, 14834, 14835, 14836, 14837, 14838, 14839, 14840, 14841, 14842, 14843, 14844, 14845, 14846, 14847, 14848, 14849, 14850, 14851, 14852, 14853, 14854, 14855, 14856, 14857, 14858, 14859, 14860, 14861, 14862, 14863, 14864, 14865, 14866, 14867, 14868, 14869, 14870, 14871, 14872, 14873, 14874, 14875, 14876, 14877, 14878, 14879, 14880, 14881, 14882, 14883, 14884, 14885, 14886, 14887, 14888, 14889, 14890, 14891, 14892, 14893, 14894, 14895, 14896, 14897, 14898, 14899, 14900, 14901, 14902, 14903, 14904, 14905, 14906, 14907, 14908, 14909, 14910, 14911, 14912, 14913, 14914, 14915, 14916, 14917, 14918, 14919, 14920, 14921, 14922, 14923, 14924, 14925, 14926, 14927, 14928, 14929, 14930, 14931, 14932, 14933, 14934, 14935, 14936, 14937, 14938, 14939, 14940, 14941, 14942, 14943, 14944, 14945, 14946, 14947, 14948, 14949, 14950, 14951, 14952, 14953, 14954, 14955, 14956, 14957, 14958, 14959, 14960, 14961, 14962, 14963, 14964, 14965, 14966, 14967, 14968, 14969, 14970, 14971, 14972, 14973, 14974, 14975, 14976, 14977, 14978, 14979, 14980, 14981, 14982, 14983, 14984, 14985, 14986, 14987, 14988, 14989, 14990, 14991, 14992, 14993, 14994, 14995, 14996, 14997, 14998, 14999, 15000, 15001, 15002, 15003, 15004, 15005, 15006, 15007, 15008, 15009, 15010, 15011, 15012, 15013, 15014, 15015, 15016, 15017, 15018, 15019, 15020, 15021, 15022, 15023, 15024, 15025, 15026, 15027, 15028, 15029, 15030, 15031, 15032, 15033, 15034, 15035, 15036, 15037, 15038, 15039, 15040, 15041, 15042, 15043, 15044, 15045, 15046, 15047, 15048, 15049, 15050, 15051, 15052, 15053, 15054, 15055, 15056, 15057, 15058, 15059, 15060, 15061, 15062, 15063, 15064, 15065, 15066, 15067, 15068, 15069, 15070, 15071, 15072, 15073, 15074, 15075, 15076, 15077, 15078, 15079, 15080, 15081, 15082, 15083, 15084, 15085, 15086, 15087, 15088, 15089, 15090, 15091, 15092, 15093, 15094, 15095, 15096, 15097, 15098, 15099, 15100, 15101, 15102, 15103, 15104, 15105, 15106, 15107, 15108, 15109, 15110, 15111, 15112, 15113, 15114, 15115, 15116, 15117, 15118, 15119, 15120, 15121, 15122, 15123, 15124, 15125, 15126, 15127, 15128, 15129, 15130, 15131, 15132, 15133, 15134, 15135, 15136, 15137, 15138, 15139, 15140, 15141, 15142, 15143, 15144, 15145, 15146, 15147, 15148, 15149, 15150, 15151, 15152, 15153, 15154, 15155, 15156, 15157, 15158, 15159, 15160, 15161, 15162, 15163, 15164, 15165, 15166, 15167, 15168, 15169, 15170, 15171, 15172, 15173, 15174, 15175, 15176, 15177, 15178, 15179, 15180, 15181, 15182, 15183, 15184, 15185, 15186, 15187, 15188, 15189, 15190, 15191, 15192, 15193, 15194, 15195, 15196, 15197, 15198, 15199, 15200, 15201, 15202, 15203, 15204, 15205, 15206, 15207, 15208, 15209, 15210, 15211, 15212, 15213, 15214, 15215, 15216, 15217, 15218, 15219, 15220, 15221, 15222, 15223, 15224, 15225, 15226, 15227, 15228, 15229, 15230, 15231, 15232, 15233, 15234, 15235, 15236, 15237, 15238, 15239, 15240, 15241, 15242, 15243, 15244, 15245, 15246, 15247, 15248, 15249, 15250, 15251, 15252, 15253, 15254, 15255, 15256, 15257, 15258, 15259, 15260, 15261, 15262, 15263, 15264, 15265, 15266, 15267, 15268, 15269, 15270, 15271, 15272, 15273, 15274, 15275, 15276, 15277, 15278, 15279, 15280, 15281, 15282, 15283, 15284, 15285, 15286, 15287, 15288, 15289, 15290, 15291, 15292, 15293, 15294, 15295, 15296, 15297, 15298, 15299, 15300, 15301, 15302, 15303, 15304, 15305, 15306, 15307, 15308, 15309, 15310, 15311, 15312, 15313, 15314, 15315, 15316, 15317, 15318, 15319, 15320, 15321, 15322, 15323, 15324, 15325, 15326, 15327, 15328, 15329, 15330, 15331, 15332, 15333, 15334, 15335, 15336, 15337, 15338, 15339, 15340, 15341, 15342, 15343, 15344, 15345, 15346, 15347, 15348, 15349, 15350, 15351, 15352, 15353, 15354, 15355, 15356, 15357, 15358, 15359, 15360, 15361, 15362, 15363, 15364, 15365, 15366, 15367, 15368, 15369, 15370, 15371, 15372, 15373, 15374, 15375, 15376, 15377, 15378, 15379, 15380, 15381, 15382, 15383, 15384, 15385, 15386, 15387, 15388, 15389, 15390, 15391, 15392, 15393, 15394, 15395, 15396, 15397, 15398, 15399, 15400, 15401, 15402, 15403, 15404, 15405, 15406, 15407, 15408, 15409, 15410, 15411, 15412, 15413, 15414, 15415, 15416, 15417, 15418, 15419, 15420, 15421, 15422, 15423, 15424, 15425, 15426, 15427, 15428, 15429, 15430, 15431, 15432, 15433, 15434, 15435, 15436, 15437, 15438, 15439, 15440, 15441, 15442, 15443, 15444, 15445, 15446, 15447, 15448, 15449, 15450, 15451, 15452, 15453, 15454, 15455, 15456, 15457, 15458, 15459, 15460, 15461, 15462, 15463, 15464, 15465, 15466, 15467, 15468, 15469, 15470, 15471, 15472, 15473, 15474, 15475, 15476, 15477, 15478, 15479, 15480, 15481, 15482, 15483, 15484, 15485, 15486, 15487, 15488, 15489, 15490, 15491, 15492, 15493, 15494, 15495, 15496, 15497, 15498, 15499, 15500, 15501, 15502, 15503, 15504, 15505, 15506, 15507, 15508, 15509, 15510, 15511, 15512, 15513, 15514, 15515, 15516, 15517, 15518, 15519, 15520, 15521, 15522, 15523, 15524, 15525, 15526, 15527, 15528, 15529, 15530, 15531, 15532, 15533, 15534, 15535, 15536, 15537, 15538, 15539, 15540, 15541, 15542, 15543, 15544, 15545, 15546, 15547, 15548, 15549, 15550, 15551, 15552, 15553, 15554, 15555, 15556, 15557, 15558, 15559, 15560, 15561, 15562, 15563, 15564, 15565, 15566, 15567, 15568, 15569, 15570, 15571, 15572, 15573, 15574, 15575, 15576, 15577, 15578, 15579, 15580, 15581, 15582, 15583, 15584, 15585, 15586, 15587, 15588, 15589, 15590, 15591, 15592, 15593, 15594, 15595, 15596, 15597, 15598, 15599, 15600, 15601, 15602, 15603, 15604, 15605, 15606, 15607, 15608, 15609, 15610, 15611, 15612, 15613, 15614, 15615, 15616, 15617, 15618, 15619, 15620, 15621, 15622, 15623, 15624, 15625, 15626, 15627, 15628, 15629, 15630, 15631, 15632, 15633, 15634, 15635, 15636, 15637, 15638, 15639, 15640, 15641, 15642, 15643, 15644, 15645, 15646, 15647, 15648, 15649, 15650, 15651, 15652, 15653, 15654, 15655, 15656, 15657, 15658, 15659, 15660, 15661, 15662, 15663, 15664, 15665, 15666, 15667, 15668, 15669, 15670, 15671, 15672, 15673, 15674, 15675, 15676, 15677, 15678, 15679, 15680, 15681, 15682, 15683, 15684, 15685, 15686, 15687, 15688, 15689, 15690, 15691, 15692, 15693, 15694, 15695, 15696, 15697, 15698, 15699, 15700, 15701, 15702, 15703, 15704, 15705, 15706, 15707, 15708, 15709, 15710, 15711, 15712, 15713, 15714, 15715, 15716, 15717, 15718, 15719, 15720, 15721, 15722, 15723, 15724, 15725, 15726, 15727, 15728, 15729, 15730, 15731, 15732, 15733, 15734, 15735, 15736, 15737, 15738, 15739, 15740, 15741, 15742, 15743, 15744, 15745, 15746, 15747, 15748, 15749, 15750, 15751, 15752, 15753, 15754, 15755, 15756, 15757, 15758, 15759, 15760, 15761, 15762, 15763, 15764, 15765, 15766, 15767, 15768, 15769, 15770, 15771, 15772, 15773, 15774, 15775, 15776, 15777, 15778, 15779, 15780, 15781, 15782, 15783, 15784, 15785, 15786, 15787, 15788, 15789, 15790, 15791, 15792, 15793, 15794, 15795, 15796, 15797, 15798, 15799, 15800, 15801, 15802, 15803, 15804, 15805, 15806, 15807, 15808, 15809, 15810, 15811, 15812, 15813, 15814, 15815, 15816, 15817, 15818, 15819, 15820, 15821, 15822, 15823, 15824, 15825, 15826, 15827, 15828, 15829, 15830, 15831, 15832, 15833, 15834, 15835, 15836, 15837, 15838, 15839, 15840, 15841, 15842, 15843, 15844, 15845, 15846, 15847, 15848, 15849, 15850, 15851, 15852, 15853, 15854, 15855, 15856, 15857, 15858, 15859, 15860, 15861, 15862, 15863, 15864, 15865, 15866, 15867, 15868, 15869, 15870, 15871, 15872, 15873, 15874, 15875, 15876, 15877, 15878, 15879, 15880, 15881, 15882, 15883, 15884, 15885, 15886, 15887, 15888, 15889, 15890, 15891, 15892, 15893, 15894, 15895, 15896, 15897, 15898, 15899, 15900, 15901, 15902, 15903, 15904, 15905, 15906, 15907, 15908, 15909, 15910, 15911, 15912, 15913, 15914, 15915, 15916, 15917, 15918, 15919, 15920, 15921, 15922, 15923, 15924, 15925, 15926, 15927, 15928, 15929, 15930, 15931, 15932, 15933, 15934, 15935, 15936, 15937, 15938, 15939, 15940, 15941, 15942, 15943, 15944, 15945, 15946, 15947, 15948, 15949, 15950, 15951, 15952, 15953, 15954, 15955, 15956, 15957, 15958, 15959, 15960, 15961, 15962, 15963, 15964, 15965, 15966, 15967, 15968, 15969, 15970, 15971, 15972, 15973, 15974, 15975, 15976, 15977, 15978, 15979, 15980, 15981, 15982, 15983, 15984, 15985, 15986, 15987, 15988, 15989, 15990, 15991, 15992, 15993, 15994, 15995, 15996, 15997, 15998, 15999, 16000, 16001, 16002, 16003, 16004, 16005, 16006, 16007, 16008, 16009, 16010, 16011, 16012, 16013, 16014, 16015, 16016, 16017, 16018, 16019, 16020, 16021, 16022, 16023, 16024, 16025, 16026, 16027, 16028, 16029, 16030, 16031, 16032, 16033, 16034, 16035, 16036, 16037, 16038, 16039, 16040, 16041, 16042, 16043, 16044, 16045, 16046, 16047, 16048, 16049, 16050, 16051, 16052, 16053, 16054, 16055, 16056, 16057, 16058, 16059, 16060, 16061, 16062, 16063, 16064, 16065, 16066, 16067, 16068, 16069, 16070, 16071, 16072, 16073, 16074, 16075, 16076, 16077, 16078, 16079, 16080, 16081, 16082, 16083, 16084, 16085, 16086, 16087, 16088, 16089, 16090, 16091, 16092, 16093, 16094, 16095, 16096, 16097, 16098, 16099, 16100, 16101, 16102, 16103, 16104, 16105, 16106, 16107, 16108, 16109, 16110, 16111, 16112, 16113, 16114, 16115, 16116, 16117, 16118, 16119, 16120, 16121, 16122, 16123, 16124, 16125, 16126, 16127, 16128, 16129, 16130, 16131, 16132, 16133, 16134, 16135, 16136, 16137, 16138, 16139, 16140, 16141, 16142, 16143, 16144, 16145, 16146, 16147, 16148, 16149, 16150, 16151, 16152, 16153, 16154, 16155, 16156, 16157, 16158, 16159, 16160, 16161, 16162, 16163, 16164, 16165, 16166, 16167, 16168, 16169, 16170, 16171, 16172, 16173, 16174, 16175, 16176, 16177, 16178, 16179, 16180, 16181, 16182, 16183, 16184, 16185, 16186, 16187, 16188, 16189, 16190, 16191, 16192, 16193, 16194, 16195, 16196, 16197, 16198, 16199, 16200, 16201, 16202, 16203, 16204, 16205, 16206, 16207, 16208, 16209, 16210, 16211, 16212, 16213, 16214, 16215, 16216, 16217, 16218, 16219, 16220, 16221, 16222, 16223, 16224, 16225, 16226, 16227, 16228, 16229, 16230, 16231, 16232, 16233, 16234, 16235, 16236, 16237, 16238, 16239, 16240, 16241, 16242, 16243, 16244, 16245, 16246, 16247, 16248, 16249, 16250, 16251, 16252, 16253, 16254, 16255, 16256, 16257, 16258, 16259, 16260, 16261, 16262, 16263, 16264, 16265, 16266, 16267, 16268, 16269, 16270, 16271, 16272, 16273, 16274, 16275, 16276, 16277, 16278, 16279, 16280, 16281, 16282, 16283, 16284, 16285, 16286, 16287, 16288, 16289, 16290, 16291, 16292, 16293, 16294, 16295, 16296, 16297, 16298, 16299, 16300, 16301, 16302, 16303, 16304, 16305, 16306, 16307, 16308, 16309, 16310, 16311, 16312, 16313, 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337, 16338, 16339, 16340, 16341, 16342, 16343, 16344, 16345, 16346, 16347, 16348, 16349, 16350, 16351, 16352, 16353, 16354, 16355, 16356, 16357, 16358, 16359, 16360, 16361, 16362, 16363, 16364, 16365, 16366, 16367, 16368, 16369, 16370, 16371, 16372, 16373, 16374, 16375, 16376, 16377, 16378, 16379, 16380, 16381, 16382, 16383, 16384, 16385, 16386, 16387, 16388, 16389, 16390, 16391, 16392, 16393, 16394, 16395, 16396, 16397, 16398, 16399, 16400, 16401, 16402, 16403, 16404, 16405, 16406, 16407, 16408, 16409, 16410, 16411, 16412, 16413, 16414, 16415, 16416, 16417, 16418, 16419, 16420, 16421, 16422, 16423, 16424, 16425, 16426, 16427, 16428, 16429, 16430, 16431, 16432, 16433, 16434, 16435, 16436, 16437, 16438, 16439, 16440, 16441, 16442, 16443, 16444, 16445, 16446, 16447, 16448, 16449, 16450, 16451, 16452, 16453, 16454, 16455, 16456, 16457, 16458, 16459, 16460, 16461, 16462, 16463, 16464, 16465, 16466, 16467, 16468, 16469, 16470, 16471, 16472, 16473, 16474, 16475, 16476, 16477, 16478, 16479, 16480, 16481, 16482, 16483, 16484, 16485, 16486, 16487, 16488, 16489, 16490, 16491, 16492, 16493, 16494, 16495, 16496, 16497, 16498, 16499, 16500, 16501, 16502, 16503, 16504, 16505, 16506, 16507, 16508, 16509, 16510, 16511, 16512, 16513, 16514, 16515, 16516, 16517, 16518, 16519, 16520, 16521, 16522, 16523, 16524, 16525, 16526, 16527, 16528, 16529, 16530, 16531, 16532, 16533, 16534, 16535, 16536, 16537, 16538, 16539, 16540, 16541, 16542, 16543, 16544, 16545, 16546, 16547, 16548, 16549, 16550, 16551, 16552, 16553, 16554, 16555, 16556, 16557, 16558, 16559, 16560, 16561, 16562, 16563, 16564, 16565, 16566, 16567, 16568, 16569, 16570, 16571, 16572, 16573, 16574, 16575, 16576, 16577, 16578, 16579, 16580, 16581, 16582, 16583, 16584, 16585, 16586, 16587, 16588, 16589, 16590, 16591, 16592, 16593, 16594, 16595, 16596, 16597, 16598, 16599, 16600, 16601, 16602, 16603, 16604, 16605, 16606, 16607, 16608, 16609, 16610, 16611, 16612, 16613, 16614, 16615, 16616, 16617, 16618, 16619, 16620, 16621, 16622, 16623, 16624, 16625, 16626, 16627, 16628, 16629, 16630, 16631, 16632, 16633, 16634, 16635, 16636, 16637, 16638, 16639, 16640, 16641, 16642, 16643, 16644, 16645, 16646, 16647, 16648, 16649, 16650, 16651, 16652, 16653, 16654, 16655, 16656, 16657, 16658, 16659, 16660, 16661, 16662, 16663, 16664, 16665, 16666, 16667, 16668, 16669, 16670, 16671, 16672, 16673, 16674, 16675, 16676, 16677, 16678, 16679, 16680, 16681, 16682, 16683, 16684, 16685, 16686, 16687, 16688, 16689, 16690, 16691, 16692, 16693, 16694, 16695, 16696, 16697, 16698, 16699, 16700, 16701, 16702, 16703, 16704, 16705, 16706, 16707, 16708, 16709, 16710, 16711, 16712, 16713, 16714, 16715, 16716, 16717, 16718, 16719, 16720, 16721, 16722, 16723, 16724, 16725, 16726, 16727, 16728, 16729, 16730, 16731, 16732, 16733, 16734, 16735, 16736, 16737, 16738, 16739, 16740, 16741, 16742, 16743, 16744, 16745, 16746, 16747, 16748, 16749, 16750, 16751, 16752, 16753, 16754, 16755, 16756, 16757, 16758, 16759, 16760, 16761, 16762, 16763, 16764, 16765, 16766, 16767, 16768, 16769, 16770, 16771, 16772, 16773, 16774, 16775, 16776, 16777, 16778, 16779, 16780, 16781, 16782, 16783, 16784, 16785, 16786, 16787, 16788, 16789, 16790, 16791, 16792, 16793, 16794, 16795, 16796, 16797, 16798, 16799, 16800, 16801, 16802, 16803, 16804, 16805, 16806, 16807, 16808, 16809, 16810, 16811, 16812, 16813, 16814, 16815, 16816, 16817, 16818, 16819, 16820, 16821, 16822, 16823, 16824, 16825, 16826, 16827, 16828, 16829, 16830, 16831, 16832, 16833, 16834, 16835, 16836, 16837, 16838, 16839, 16840, 16841, 16842, 16843, 16844, 16845, 16846, 16847, 16848, 16849, 16850, 16851, 16852, 16853, 16854, 16855, 16856, 16857, 16858, 16859, 16860, 16861, 16862, 16863, 16864, 16865, 16866, 16867, 16868, 16869, 16870, 16871, 16872, 16873, 16874, 16875, 16876, 16877, 16878, 16879, 16880, 16881, 16882, 16883, 16884, 16885, 16886, 16887, 16888, 16889, 16890, 16891, 16892, 16893, 16894, 16895, 16896, 16897, 16898, 16899, 16900, 16901, 16902, 16903, 16904, 16905, 16906, 16907, 16908, 16909, 16910, 16911, 16912, 16913, 16914, 16915, 16916, 16917, 16918, 16919, 16920, 16921, 16922, 16923, 16924, 16925, 16926, 16927, 16928, 16929, 16930, 16931, 16932, 16933, 16934, 16935, 16936, 16937, 16938, 16939, 16940, 16941, 16942, 16943, 16944, 16945, 16946, 16947, 16948, 16949, 16950, 16951, 16952, 16953, 16954, 16955, 16956, 16957, 16958, 16959, 16960, 16961, 16962, 16963, 16964, 16965, 16966, 16967, 16968, 16969, 16970, 16971, 16972, 16973, 16974, 16975, 16976, 16977, 16978, 16979, 16980, 16981, 16982, 16983, 16984, 16985, 16986, 16987, 16988, 16989, 16990, 16991, 16992, 16993, 16994, 16995, 16996, 16997, 16998, 16999, 17000, 17001, 17002, 17003, 17004, 17005, 17006, 17007, 17008, 17009, 17010, 17011, 17012, 17013, 17014, 17015, 17016, 17017, 17018, 17019, 17020, 17021, 17022, 17023, 17024, 17025, 17026, 17027, 17028, 17029, 17030, 17031, 17032, 17033, 17034, 17035, 17036, 17037, 17038, 17039, 17040, 17041, 17042, 17043, 17044, 17045, 17046, 17047, 17048, 17049, 17050, 17051, 17052, 17053, 17054, 17055, 17056, 17057, 17058, 17059, 17060, 17061, 17062, 17063, 17064, 17065, 17066, 17067, 17068, 17069, 17070, 17071, 17072, 17073, 17074, 17075, 17076, 17077, 17078, 17079, 17080, 17081, 17082, 17083, 17084, 17085, 17086, 17087, 17088, 17089, 17090, 17091, 17092, 17093, 17094, 17095, 17096, 17097, 17098, 17099, 17100, 17101, 17102, 17103, 17104, 17105, 17106, 17107, 17108, 17109, 17110, 17111, 17112, 17113, 17114, 17115, 17116, 17117, 17118, 17119, 17120, 17121, 17122, 17123, 17124, 17125, 17126, 17127, 17128, 17129, 17130, 17131, 17132, 17133, 17134, 17135, 17136, 17137, 17138, 17139, 17140, 17141, 17142, 17143, 17144, 17145, 17146, 17147, 17148, 17149, 17150, 17151, 17152, 17153, 17154, 17155, 17156, 17157, 17158, 17159, 17160, 17161, 17162, 17163, 17164, 17165, 17166, 17167, 17168, 17169, 17170, 17171, 17172, 17173, 17174, 17175, 17176, 17177, 17178, 17179, 17180, 17181, 17182, 17183, 17184, 17185, 17186, 17187, 17188, 17189, 17190, 17191, 17192, 17193, 17194, 17195, 17196, 17197, 17198, 17199, 17200, 17201, 17202, 17203, 17204, 17205, 17206, 17207, 17208, 17209, 17210, 17211, 17212, 17213, 17214, 17215, 17216, 17217, 17218, 17219, 17220, 17221, 17222, 17223, 17224, 17225, 17226, 17227, 17228, 17229, 17230, 17231, 17232, 17233, 17234, 17235, 17236, 17237, 17238, 17239, 17240, 17241, 17242, 17243, 17244, 17245, 17246, 17247, 17248, 17249, 17250, 17251, 17252, 17253, 17254, 17255, 17256, 17257, 17258, 17259, 17260, 17261, 17262, 17263, 17264, 17265, 17266, 17267, 17268, 17269, 17270, 17271, 17272, 17273, 17274, 17275, 17276, 17277, 17278, 17279, 17280, 17281, 17282, 17283, 17284, 17285, 17286, 17287, 17288, 17289, 17290, 17291, 17292, 17293, 17294, 17295, 17296, 17297, 17298, 17299, 17300, 17301, 17302, 17303, 17304, 17305, 17306, 17307, 17308, 17309, 17310, 17311, 17312, 17313, 17314, 17315, 17316, 17317, 17318, 17319, 17320, 17321, 17322, 17323, 17324, 17325, 17326, 17327, 17328, 17329, 17330, 17331, 17332, 17333, 17334, 17335, 17336, 17337, 17338, 17339, 17340, 17341, 17342, 17343, 17344, 17345, 17346, 17347, 17348, 17349, 17350, 17351, 17352, 17353, 17354, 17355, 17356, 17357, 17358, 17359, 17360, 17361, 17362, 17363, 17364, 17365, 17366, 17367, 17368, 17369, 17370, 17371, 17372, 17373, 17374, 17375, 17376, 17377, 17378, 17379, 17380, 17381, 17382, 17383, 17384, 17385, 17386, 17387, 17388, 17389, 17390, 17391, 17392, 17393, 17394, 17395, 17396, 17397, 17398, 17399, 17400, 17401, 17402, 17403, 17404, 17405, 17406, 17407, 17408, 17409, 17410, 17411, 17412, 17413, 17414, 17415, 17416, 17417, 17418, 17419, 17420, 17421, 17422, 17423, 17424, 17425, 17426, 17427, 17428, 17429, 17430, 17431, 17432, 17433, 17434, 17435, 17436, 17437, 17438, 17439, 17440, 17441, 17442, 17443, 17444, 17445, 17446, 17447, 17448, 17449, 17450, 17451, 17452, 17453, 17454, 17455, 17456, 17457, 17458, 17459, 17460, 17461, 17462, 17463, 17464, 17465, 17466, 17467, 17468, 17469, 17470, 17471, 17472, 17473, 17474, 17475, 17476, 17477, 17478, 17479, 17480, 17481, 17482, 17483, 17484, 17485, 17486, 17487, 17488, 17489, 17490, 17491, 17492, 17493, 17494, 17495, 17496, 17497, 17498, 17499, 17500, 17501, 17502, 17503, 17504, 17505, 17506, 17507, 17508, 17509, 17510, 17511, 17512, 17513, 17514, 17515, 17516, 17517, 17518, 17519, 17520, 17521, 17522, 17523, 17524, 17525, 17526, 17527, 17528, 17529, 17530, 17531, 17532, 17533, 17534, 17535, 17536, 17537, 17538, 17539, 17540, 17541, 17542, 17543, 17544, 17545, 17546, 17547, 17548, 17549, 17550, 17551, 17552, 17553, 17554, 17555, 17556, 17557, 17558, 17559, 17560, 17561, 17562, 17563, 17564, 17565, 17566, 17567, 17568, 17569, 17570, 17571, 17572, 17573, 17574, 17575, 17576, 17577, 17578, 17579, 17580, 17581, 17582, 17583, 17584, 17585, 17586, 17587, 17588, 17589, 17590, 17591, 17592, 17593, 17594, 17595, 17596, 17597, 17598, 17599, 17600, 17601, 17602, 17603, 17604, 17605, 17606, 17607, 17608, 17609, 17610, 17611, 17612, 17613, 17614, 17615, 17616, 17617, 17618, 17619, 17620, 17621, 17622, 17623, 17624, 17625, 17626, 17627, 17628, 17629, 17630, 17631, 17632, 17633, 17634, 17635, 17636, 17637, 17638, 17639, 17640, 17641, 17642, 17643, 17644, 17645, 17646, 17647, 17648, 17649, 17650, 17651, 17652, 17653, 17654, 17655, 17656, 17657, 17658, 17659, 17660, 17661, 17662, 17663, 17664, 17665, 17666, 17667, 17668, 17669, 17670, 17671, 17672, 17673, 17674, 17675, 17676, 17677, 17678, 17679, 17680, 17681, 17682, 17683, 17684, 17685, 17686, 17687, 17688, 17689, 17690, 17691, 17692, 17693, 17694, 17695, 17696, 17697, 17698, 17699, 17700, 17701, 17702, 17703, 17704, 17705, 17706, 17707, 17708, 17709, 17710, 17711, 17712, 17713, 17714, 17715, 17716, 17717, 17718, 17719, 17720, 17721, 17722, 17723, 17724, 17725, 17726, 17727, 17728, 17729, 17730, 17731, 17732, 17733, 17734, 17735, 17736, 17737, 17738, 17739, 17740, 17741, 17742, 17743, 17744, 17745, 17746, 17747, 17748, 17749, 17750, 17751, 17752, 17753, 17754, 17755, 17756, 17757, 17758, 17759, 17760, 17761, 17762, 17763, 17764, 17765, 17766, 17767, 17768, 17769, 17770, 17771, 17772, 17773, 17774, 17775, 17776, 17777, 17778, 17779, 17780, 17781, 17782, 17783, 17784, 17785, 17786, 17787, 17788, 17789, 17790, 17791, 17792, 17793, 17794, 17795, 17796, 17797, 17798, 17799, 17800, 17801, 17802, 17803, 17804, 17805, 17806, 17807, 17808, 17809, 17810, 17811, 17812, 17813, 17814, 17815, 17816, 17817, 17818, 17819, 17820, 17821, 17822, 17823, 17824, 17825, 17826, 17827, 17828, 17829, 17830, 17831, 17832, 17833, 17834, 17835, 17836, 17837, 17838, 17839, 17840, 17841, 17842, 17843, 17844, 17845, 17846, 17847, 17848, 17849, 17850, 17851, 17852, 17853, 17854, 17855, 17856, 17857, 17858, 17859, 17860, 17861, 17862, 17863, 17864, 17865, 17866, 17867, 17868, 17869, 17870, 17871, 17872, 17873, 17874, 17875, 17876, 17877, 17878, 17879, 17880, 17881, 17882, 17883, 17884, 17885, 17886, 17887, 17888, 17889, 17890, 17891, 17892, 17893, 17894, 17895, 17896, 17897, 17898, 17899, 17900, 17901, 17902, 17903, 17904, 17905, 17906, 17907, 17908, 17909, 17910, 17911, 17912, 17913, 17914, 17915, 17916, 17917, 17918, 17919, 17920, 17921, 17922, 17923, 17924, 17925, 17926, 17927, 17928, 17929, 17930, 17931, 17932, 17933, 17934, 17935, 17936, 17937, 17938, 17939, 17940, 17941, 17942, 17943, 17944, 17945, 17946, 17947, 17948, 17949, 17950, 17951, 17952, 17953, 17954, 17955, 17956, 17957, 17958, 17959, 17960, 17961, 17962, 17963, 17964, 17965, 17966, 17967, 17968, 17969, 17970, 17971, 17972, 17973, 17974, 17975, 17976, 17977, 17978, 17979, 17980, 17981, 17982, 17983, 17984, 17985, 17986, 17987, 17988, 17989, 17990, 17991, 17992, 17993, 17994, 17995, 17996, 17997, 17998, 17999, 18000, 18001, 18002, 18003, 18004, 18005, 18006, 18007, 18008, 18009, 18010, 18011, 18012, 18013, 18014, 18015, 18016, 18017, 18018, 18019, 18020, 18021, 18022, 18023, 18024, 18025, 18026, 18027, 18028, 18029, 18030, 18031, 18032, 18033, 18034, 18035, 18036, 18037, 18038, 18039, 18040, 18041, 18042, 18043, 18044, 18045, 18046, 18047, 18048, 18049, 18050, 18051, 18052, 18053, 18054, 18055, 18056, 18057, 18058, 18059, 18060, 18061, 18062, 18063, 18064, 18065, 18066, 18067, 18068, 18069, 18070, 18071, 18072, 18073, 18074, 18075, 18076, 18077, 18078, 18079, 18080, 18081, 18082, 18083, 18084, 18085, 18086, 18087, 18088, 18089, 18090, 18091, 18092, 18093, 18094, 18095, 18096, 18097, 18098, 18099, 18100, 18101, 18102, 18103, 18104, 18105, 18106, 18107, 18108, 18109, 18110, 18111, 18112, 18113, 18114, 18115, 18116, 18117, 18118, 18119, 18120, 18121, 18122, 18123, 18124, 18125, 18126, 18127, 18128, 18129, 18130, 18131, 18132, 18133, 18134, 18135, 18136, 18137, 18138, 18139, 18140, 18141, 18142, 18143, 18144, 18145, 18146, 18147, 18148, 18149, 18150, 18151, 18152, 18153, 18154, 18155, 18156, 18157, 18158, 18159, 18160, 18161, 18162, 18163, 18164, 18165, 18166, 18167, 18168, 18169, 18170, 18171, 18172, 18173, 18174, 18175, 18176, 18177, 18178, 18179, 18180, 18181, 18182, 18183, 18184, 18185, 18186, 18187, 18188, 18189, 18190, 18191, 18192, 18193, 18194, 18195, 18196, 18197, 18198, 18199, 18200, 18201, 18202, 18203, 18204, 18205, 18206, 18207, 18208, 18209, 18210, 18211, 18212, 18213, 18214, 18215, 18216, 18217, 18218, 18219, 18220, 18221, 18222, 18223, 18224, 18225, 18226, 18227, 18228, 18229, 18230, 18231, 18232, 18233, 18234, 18235, 18236, 18237, 18238, 18239, 18240, 18241, 18242, 18243, 18244, 18245, 18246, 18247, 18248, 18249, 18250, 18251, 18252, 18253, 18254, 18255, 18256, 18257, 18258, 18259, 18260, 18261, 18262, 18263, 18264, 18265, 18266, 18267, 18268, 18269, 18270, 18271, 18272, 18273, 18274, 18275, 18276, 18277, 18278, 18279, 18280, 18281, 18282, 18283, 18284, 18285, 18286, 18287, 18288, 18289, 18290, 18291, 18292, 18293, 18294, 18295, 18296, 18297, 18298, 18299, 18300, 18301, 18302, 18303, 18304, 18305, 18306, 18307, 18308, 18309, 18310, 18311, 18312, 18313, 18314, 18315, 18316, 18317, 18318, 18319, 18320, 18321, 18322, 18323, 18324, 18325, 18326, 18327, 18328, 18329, 18330, 18331, 18332, 18333, 18334, 18335, 18336, 18337, 18338, 18339, 18340, 18341, 18342, 18343, 18344, 18345, 18346, 18347, 18348, 18349, 18350, 18351, 18352, 18353, 18354, 18355, 18356, 18357, 18358, 18359, 18360, 18361, 18362, 18363, 18364, 18365, 18366, 18367, 18368, 18369, 18370, 18371, 18372, 18373, 18374, 18375, 18376, 18377, 18378, 18379, 18380, 18381, 18382, 18383, 18384, 18385, 18386, 18387, 18388, 18389, 18390, 18391, 18392, 18393, 18394, 18395, 18396, 18397, 18398, 18399, 18400, 18401, 18402, 18403, 18404, 18405, 18406, 18407, 18408, 18409, 18410, 18411, 18412, 18413, 18414, 18415, 18416, 18417, 18418, 18419, 18420, 18421, 18422, 18423, 18424, 18425, 18426, 18427, 18428, 18429, 18430, 18431, 18432, 18433, 18434, 18435, 18436, 18437, 18438, 18439, 18440, 18441, 18442, 18443, 18444, 18445, 18446, 18447, 18448, 18449, 18450, 18451, 18452, 18453, 18454, 18455, 18456, 18457, 18458, 18459, 18460, 18461, 18462, 18463, 18464, 18465, 18466, 18467, 18468, 18469, 18470, 18471, 18472, 18473, 18474, 18475, 18476, 18477, 18478, 18479, 18480, 18481, 18482, 18483, 18484, 18485, 18486, 18487, 18488, 18489, 18490, 18491, 18492, 18493, 18494, 18495, 18496, 18497, 18498, 18499, 18500, 18501, 18502, 18503, 18504, 18505, 18506, 18507, 18508, 18509, 18510, 18511, 18512, 18513, 18514, 18515, 18516, 18517, 18518, 18519, 18520, 18521, 18522, 18523, 18524, 18525, 18526, 18527, 18528, 18529, 18530, 18531, 18532, 18533, 18534, 18535, 18536, 18537, 18538, 18539, 18540, 18541, 18542, 18543, 18544, 18545, 18546, 18547, 18548, 18549, 18550, 18551, 18552, 18553, 18554, 18555, 18556, 18557, 18558, 18559, 18560, 18561, 18562, 18563, 18564, 18565, 18566, 18567, 18568, 18569, 18570, 18571, 18572, 18573, 18574, 18575, 18576, 18577, 18578, 18579, 18580, 18581, 18582, 18583, 18584, 18585, 18586, 18587, 18588, 18589, 18590, 18591, 18592, 18593, 18594, 18595, 18596, 18597, 18598, 18599, 18600, 18601, 18602, 18603, 18604, 18605, 18606, 18607, 18608, 18609, 18610, 18611, 18612, 18613, 18614, 18615, 18616, 18617, 18618, 18619, 18620, 18621, 18622, 18623, 18624, 18625, 18626, 18627, 18628, 18629, 18630, 18631, 18632, 18633, 18634, 18635, 18636, 18637, 18638, 18639, 18640, 18641, 18642, 18643, 18644, 18645, 18646, 18647, 18648, 18649, 18650, 18651, 18652, 18653, 18654, 18655, 18656, 18657, 18658, 18659, 18660, 18661, 18662, 18663, 18664, 18665, 18666, 18667, 18668, 18669, 18670, 18671, 18672, 18673, 18674, 18675, 18676, 18677, 18678, 18679, 18680, 18681, 18682, 18683, 18684, 18685, 18686, 18687, 18688, 18689, 18690, 18691, 18692, 18693, 18694, 18695, 18696, 18697, 18698, 18699, 18700, 18701, 18702, 18703, 18704, 18705, 18706, 18707, 18708, 18709, 18710, 18711, 18712, 18713, 18714, 18715, 18716, 18717, 18718, 18719, 18720, 18721, 18722, 18723, 18724, 18725, 18726, 18727, 18728, 18729, 18730, 18731, 18732, 18733, 18734, 18735, 18736, 18737, 18738, 18739, 18740, 18741, 18742, 18743, 18744, 18745, 18746, 18747, 18748, 18749, 18750, 18751, 18752, 18753, 18754, 18755, 18756, 18757, 18758, 18759, 18760, 18761, 18762, 18763, 18764, 18765, 18766, 18767, 18768, 18769, 18770, 18771, 18772, 18773, 18774, 18775, 18776, 18777, 18778, 18779, 18780, 18781, 18782, 18783, 18784, 18785, 18786, 18787, 18788, 18789, 18790, 18791, 18792, 18793, 18794, 18795, 18796, 18797, 18798, 18799, 18800, 18801, 18802, 18803, 18804, 18805, 18806, 18807, 18808, 18809, 18810, 18811, 18812, 18813, 18814, 18815, 18816, 18817, 18818, 18819, 18820, 18821, 18822, 18823, 18824, 18825, 18826, 18827, 18828, 18829, 18830, 18831, 18832, 18833, 18834, 18835, 18836, 18837, 18838, 18839, 18840, 18841, 18842, 18843, 18844, 18845, 18846, 18847, 18848, 18849, 18850, 18851, 18852, 18853, 18854, 18855, 18856, 18857, 18858, 18859, 18860, 18861, 18862, 18863, 18864, 18865, 18866, 18867, 18868, 18869, 18870, 18871, 18872, 18873, 18874, 18875, 18876, 18877, 18878, 18879, 18880, 18881, 18882, 18883, 18884, 18885, 18886, 18887, 18888, 18889, 18890, 18891, 18892, 18893, 18894, 18895, 18896, 18897, 18898, 18899, 18900, 18901, 18902, 18903, 18904, 18905, 18906, 18907, 18908, 18909, 18910, 18911, 18912, 18913, 18914, 18915, 18916, 18917, 18918, 18919, 18920, 18921, 18922, 18923, 18924, 18925, 18926, 18927, 18928, 18929, 18930, 18931, 18932, 18933, 18934, 18935, 18936, 18937, 18938, 18939, 18940, 18941, 18942, 18943, 18944, 18945, 18946, 18947, 18948, 18949, 18950, 18951, 18952, 18953, 18954, 18955, 18956, 18957, 18958, 18959, 18960, 18961, 18962, 18963, 18964, 18965, 18966, 18967, 18968, 18969, 18970, 18971, 18972, 18973, 18974, 18975, 18976, 18977, 18978, 18979, 18980, 18981, 18982, 18983, 18984, 18985, 18986, 18987, 18988, 18989, 18990, 18991, 18992, 18993, 18994, 18995, 18996, 18997, 18998, 18999, 19000, 19001, 19002, 19003, 19004, 19005, 19006, 19007, 19008, 19009, 19010, 19011, 19012, 19013, 19014, 19015, 19016, 19017, 19018, 19019, 19020, 19021, 19022, 19023, 19024, 19025, 19026, 19027, 19028, 19029, 19030, 19031, 19032, 19033, 19034, 19035, 19036, 19037, 19038, 19039, 19040, 19041, 19042, 19043, 19044, 19045, 19046, 19047, 19048, 19049, 19050, 19051, 19052, 19053, 19054, 19055, 19056, 19057, 19058, 19059, 19060, 19061, 19062, 19063, 19064, 19065, 19066, 19067, 19068, 19069, 19070, 19071, 19072, 19073, 19074, 19075, 19076, 19077, 19078, 19079, 19080, 19081, 19082, 19083, 19084, 19085, 19086, 19087, 19088, 19089, 19090, 19091, 19092, 19093, 19094, 19095, 19096, 19097, 19098, 19099, 19100, 19101, 19102, 19103, 19104, 19105, 19106, 19107, 19108, 19109, 19110, 19111, 19112, 19113, 19114, 19115, 19116, 19117, 19118, 19119, 19120, 19121, 19122, 19123, 19124, 19125, 19126, 19127, 19128, 19129, 19130, 19131, 19132, 19133, 19134, 19135, 19136, 19137, 19138, 19139, 19140, 19141, 19142, 19143, 19144, 19145, 19146, 19147, 19148, 19149, 19150, 19151, 19152, 19153, 19154, 19155, 19156, 19157, 19158, 19159, 19160, 19161, 19162, 19163, 19164, 19165, 19166, 19167, 19168, 19169, 19170, 19171, 19172, 19173, 19174, 19175, 19176, 19177, 19178, 19179, 19180, 19181, 19182, 19183, 19184, 19185, 19186, 19187, 19188, 19189, 19190, 19191, 19192, 19193, 19194, 19195, 19196, 19197, 19198, 19199, 19200, 19201, 19202, 19203, 19204, 19205, 19206, 19207, 19208, 19209, 19210, 19211, 19212, 19213, 19214, 19215, 19216, 19217, 19218, 19219, 19220, 19221, 19222, 19223, 19224, 19225, 19226, 19227, 19228, 19229, 19230, 19231, 19232, 19233, 19234, 19235, 19236, 19237, 19238, 19239, 19240, 19241, 19242, 19243, 19244, 19245, 19246, 19247, 19248, 19249, 19250, 19251, 19252, 19253, 19254, 19255, 19256, 19257, 19258, 19259, 19260, 19261, 19262, 19263, 19264, 19265, 19266, 19267, 19268, 19269, 19270, 19271, 19272, 19273, 19274, 19275, 19276, 19277, 19278, 19279, 19280, 19281, 19282, 19283, 19284, 19285, 19286, 19287, 19288, 19289, 19290, 19291, 19292, 19293, 19294, 19295, 19296, 19297, 19298, 19299, 19300, 19301, 19302, 19303, 19304, 19305, 19306, 19307, 19308, 19309, 19310, 19311, 19312, 19313, 19314, 19315, 19316, 19317, 19318, 19319, 19320, 19321, 19322, 19323, 19324, 19325, 19326, 19327, 19328, 19329, 19330, 19331, 19332, 19333, 19334, 19335, 19336, 19337, 19338, 19339, 19340, 19341, 19342, 19343, 19344, 19345, 19346, 19347, 19348, 19349, 19350, 19351, 19352, 19353, 19354, 19355, 19356, 19357, 19358, 19359, 19360, 19361, 19362, 19363, 19364, 19365, 19366, 19367, 19368, 19369, 19370, 19371, 19372, 19373, 19374, 19375, 19376, 19377, 19378, 19379, 19380, 19381, 19382, 19383, 19384, 19385, 19386, 19387, 19388, 19389, 19390, 19391, 19392, 19393, 19394, 19395, 19396, 19397, 19398, 19399, 19400, 19401, 19402, 19403, 19404, 19405, 19406, 19407, 19408, 19409, 19410, 19411, 19412, 19413, 19414, 19415, 19416, 19417, 19418, 19419, 19420, 19421, 19422, 19423, 19424, 19425, 19426, 19427, 19428, 19429, 19430, 19431, 19432, 19433, 19434, 19435, 19436, 19437, 19438, 19439, 19440, 19441, 19442, 19443, 19444, 19445, 19446, 19447, 19448, 19449, 19450, 19451, 19452, 19453, 19454, 19455, 19456, 19457, 19458, 19459, 19460, 19461, 19462, 19463, 19464, 19465, 19466, 19467, 19468, 19469, 19470, 19471, 19472, 19473, 19474, 19475, 19476, 19477, 19478, 19479, 19480, 19481, 19482, 19483, 19484, 19485, 19486, 19487, 19488, 19489, 19490, 19491, 19492, 19493, 19494, 19495, 19496, 19497, 19498, 19499, 19500, 19501, 19502, 19503, 19504, 19505, 19506, 19507, 19508, 19509, 19510, 19511, 19512, 19513, 19514, 19515, 19516, 19517, 19518, 19519, 19520, 19521, 19522, 19523, 19524, 19525, 19526, 19527, 19528, 19529, 19530, 19531, 19532, 19533, 19534, 19535, 19536, 19537, 19538, 19539, 19540, 19541, 19542, 19543, 19544, 19545, 19546, 19547, 19548, 19549, 19550, 19551, 19552, 19553, 19554, 19555, 19556, 19557, 19558, 19559, 19560, 19561, 19562, 19563, 19564, 19565, 19566, 19567, 19568, 19569, 19570, 19571, 19572, 19573, 19574, 19575, 19576, 19577, 19578, 19579, 19580, 19581, 19582, 19583, 19584, 19585, 19586, 19587, 19588, 19589, 19590, 19591, 19592, 19593, 19594, 19595, 19596, 19597, 19598, 19599, 19600, 19601, 19602, 19603, 19604, 19605, 19606, 19607, 19608, 19609, 19610, 19611, 19612, 19613, 19614, 19615, 19616, 19617, 19618, 19619, 19620, 19621, 19622, 19623, 19624, 19625, 19626, 19627, 19628, 19629, 19630, 19631, 19632, 19633, 19634, 19635, 19636, 19637, 19638, 19639, 19640, 19641, 19642, 19643, 19644, 19645, 19646, 19647, 19648, 19649, 19650, 19651, 19652, 19653, 19654, 19655, 19656, 19657, 19658, 19659, 19660, 19661, 19662, 19663, 19664, 19665, 19666, 19667, 19668, 19669, 19670, 19671, 19672, 19673, 19674, 19675, 19676, 19677, 19678, 19679, 19680, 19681, 19682, 19683, 19684, 19685, 19686, 19687, 19688, 19689, 19690, 19691, 19692, 19693, 19694, 19695, 19696, 19697, 19698, 19699, 19700, 19701, 19702, 19703, 19704, 19705, 19706, 19707, 19708, 19709, 19710, 19711, 19712, 19713, 19714, 19715, 19716, 19717, 19718, 19719, 19720, 19721, 19722, 19723, 19724, 19725, 19726, 19727, 19728, 19729, 19730, 19731, 19732, 19733, 19734, 19735, 19736, 19737, 19738, 19739, 19740, 19741, 19742, 19743, 19744, 19745, 19746, 19747, 19748, 19749, 19750, 19751, 19752, 19753, 19754, 19755, 19756, 19757, 19758, 19759, 19760, 19761, 19762, 19763, 19764, 19765, 19766, 19767, 19768, 19769, 19770, 19771, 19772, 19773, 19774, 19775, 19776, 19777, 19778, 19779, 19780, 19781, 19782, 19783, 19784, 19785, 19786, 19787, 19788, 19789, 19790, 19791, 19792, 19793, 19794, 19795, 19796, 19797, 19798, 19799, 19800, 19801, 19802, 19803, 19804, 19805, 19806, 19807, 19808, 19809, 19810, 19811, 19812, 19813, 19814, 19815, 19816, 19817, 19818, 19819, 19820, 19821, 19822, 19823, 19824, 19825, 19826, 19827, 19828, 19829, 19830, 19831, 19832, 19833, 19834, 19835, 19836, 19837, 19838, 19839, 19840, 19841, 19842, 19843, 19844, 19845, 19846, 19847, 19848, 19849, 19850, 19851, 19852, 19853, 19854, 19855, 19856, 19857, 19858, 19859, 19860, 19861, 19862, 19863, 19864, 19865, 19866, 19867, 19868, 19869, 19870, 19871, 19872, 19873, 19874, 19875, 19876, 19877, 19878, 19879, 19880, 19881, 19882, 19883, 19884, 19885, 19886, 19887, 19888, 19889, 19890, 19891, 19892, 19893, 19894, 19895, 19896, 19897, 19898, 19899, 19900, 19901, 19902, 19903, 19904, 19905, 19906, 19907, 19908, 19909, 19910, 19911, 19912, 19913, 19914, 19915, 19916, 19917, 19918, 19919, 19920, 19921, 19922, 19923, 19924, 19925, 19926, 19927, 19928, 19929, 19930, 19931, 19932, 19933, 19934, 19935, 19936, 19937, 19938, 19939, 19940, 19941, 19942, 19943, 19944, 19945, 19946, 19947, 19948, 19949, 19950, 19951, 19952, 19953, 19954, 19955, 19956, 19957, 19958, 19959, 19960, 19961, 19962, 19963, 19964, 19965, 19966, 19967, 19968, 19969, 19970, 19971, 19972, 19973, 19974, 19975, 19976, 19977, 19978, 19979, 19980, 19981, 19982, 19983, 19984, 19985, 19986, 19987, 19988, 19989, 19990, 19991, 19992, 19993, 19994, 19995, 19996, 19997, 19998, 19999, 20000, 20001, 20002, 20003, 20004, 20005, 20006, 20007, 20008, 20009, 20010, 20011, 20012, 20013, 20014, 20015, 20016, 20017, 20018, 20019, 20020, 20021, 20022, 20023, 20024, 20025, 20026, 20027, 20028, 20029, 20030, 20031, 20032, 20033, 20034, 20035, 20036, 20037, 20038, 20039, 20040, 20041, 20042, 20043, 20044, 20045, 20046, 20047, 20048, 20049, 20050, 20051, 20052, 20053, 20054, 20055, 20056, 20057, 20058, 20059, 20060, 20061, 20062, 20063, 20064, 20065, 20066, 20067, 20068, 20069, 20070, 20071, 20072, 20073, 20074, 20075, 20076, 20077, 20078, 20079, 20080, 20081, 20082, 20083, 20084, 20085, 20086, 20087, 20088, 20089, 20090, 20091, 20092, 20093, 20094, 20095, 20096, 20097, 20098, 20099, 20100, 20101, 20102, 20103, 20104, 20105, 20106, 20107, 20108, 20109, 20110, 20111, 20112, 20113, 20114, 20115, 20116, 20117, 20118, 20119, 20120, 20121, 20122, 20123, 20124, 20125, 20126, 20127, 20128, 20129, 20130, 20131, 20132, 20133, 20134, 20135, 20136, 20137, 20138, 20139, 20140, 20141, 20142, 20143, 20144, 20145, 20146, 20147, 20148, 20149, 20150, 20151, 20152, 20153, 20154, 20155, 20156, 20157, 20158, 20159, 20160, 20161, 20162, 20163, 20164, 20165, 20166, 20167, 20168, 20169, 20170, 20171, 20172, 20173, 20174, 20175, 20176, 20177, 20178, 20179, 20180, 20181, 20182, 20183, 20184, 20185, 20186, 20187, 20188, 20189, 20190, 20191, 20192, 20193, 20194, 20195, 20196, 20197, 20198, 20199, 20200, 20201, 20202, 20203, 20204, 20205, 20206, 20207, 20208, 20209, 20210, 20211, 20212, 20213, 20214, 20215, 20216, 20217, 20218, 20219, 20220, 20221, 20222, 20223, 20224, 20225, 20226, 20227, 20228, 20229, 20230, 20231, 20232, 20233, 20234, 20235, 20236, 20237, 20238, 20239, 20240, 20241, 20242, 20243, 20244, 20245, 20246, 20247, 20248, 20249, 20250, 20251, 20252, 20253, 20254, 20255, 20256, 20257, 20258, 20259, 20260, 20261, 20262, 20263, 20264, 20265, 20266, 20267, 20268, 20269, 20270, 20271, 20272, 20273, 20274, 20275, 20276, 20277, 20278, 20279, 20280, 20281, 20282, 20283, 20284, 20285, 20286, 20287, 20288, 20289, 20290, 20291, 20292, 20293, 20294, 20295, 20296, 20297, 20298, 20299, 20300, 20301, 20302, 20303, 20304, 20305, 20306, 20307, 20308, 20309, 20310, 20311, 20312, 20313, 20314, 20315, 20316, 20317, 20318, 20319, 20320, 20321, 20322, 20323, 20324, 20325, 20326, 20327, 20328, 20329, 20330, 20331, 20332, 20333, 20334, 20335, 20336, 20337, 20338, 20339, 20340, 20341, 20342, 20343, 20344, 20345, 20346, 20347, 20348, 20349, 20350, 20351, 20352, 20353, 20354, 20355, 20356, 20357, 20358, 20359, 20360, 20361, 20362, 20363, 20364, 20365, 20366, 20367, 20368, 20369, 20370, 20371, 20372, 20373, 20374, 20375, 20376, 20377, 20378, 20379, 20380, 20381, 20382, 20383, 20384, 20385, 20386, 20387, 20388, 20389, 20390, 20391, 20392, 20393, 20394, 20395, 20396, 20397, 20398, 20399, 20400, 20401, 20402, 20403, 20404, 20405, 20406, 20407, 20408, 20409, 20410, 20411, 20412, 20413, 20414, 20415, 20416, 20417, 20418, 20419, 20420, 20421, 20422, 20423, 20424, 20425, 20426, 20427, 20428, 20429, 20430, 20431, 20432, 20433, 20434, 20435, 20436, 20437, 20438, 20439, 20440, 20441, 20442, 20443, 20444, 20445, 20446, 20447, 20448, 20449, 20450, 20451, 20452, 20453, 20454, 20455, 20456, 20457, 20458, 20459, 20460, 20461, 20462, 20463, 20464, 20465, 20466, 20467, 20468, 20469, 20470, 20471, 20472, 20473, 20474, 20475, 20476, 20477, 20478, 20479, 20480, 20481, 20482, 20483, 20484, 20485, 20486, 20487, 20488, 20489, 20490, 20491, 20492, 20493, 20494, 20495, 20496, 20497, 20498, 20499, 20500, 20501, 20502, 20503, 20504, 20505, 20506, 20507, 20508, 20509, 20510, 20511, 20512, 20513, 20514, 20515, 20516, 20517, 20518, 20519, 20520, 20521, 20522, 20523, 20524, 20525, 20526, 20527, 20528, 20529, 20530, 20531, 20532, 20533, 20534, 20535, 20536, 20537, 20538, 20539, 20540, 20541, 20542, 20543, 20544, 20545, 20546, 20547, 20548, 20549, 20550, 20551, 20552, 20553, 20554, 20555, 20556, 20557, 20558, 20559, 20560, 20561, 20562, 20563, 20564, 20565, 20566, 20567, 20568, 20569, 20570, 20571, 20572, 20573, 20574, 20575, 20576, 20577, 20578, 20579, 20580, 20581, 20582, 20583, 20584, 20585, 20586, 20587, 20588, 20589, 20590, 20591, 20592, 20593, 20594, 20595, 20596, 20597, 20598, 20599, 20600, 20601, 20602, 20603, 20604, 20605, 20606, 20607, 20608, 20609, 20610, 20611, 20612, 20613, 20614, 20615, 20616, 20617, 20618, 20619, 20620, 20621, 20622, 20623, 20624, 20625, 20626, 20627, 20628, 20629, 20630, 20631, 20632, 20633, 20634, 20635, 20636, 20637, 20638, 20639, 20640, 20641, 20642, 20643, 20644, 20645, 20646, 20647, 20648, 20649, 20650, 20651, 20652, 20653, 20654, 20655, 20656, 20657, 20658, 20659, 20660, 20661, 20662, 20663, 20664, 20665, 20666, 20667, 20668, 20669, 20670, 20671, 20672, 20673, 20674, 20675, 20676, 20677, 20678, 20679, 20680, 20681, 20682, 20683, 20684, 20685, 20686, 20687, 20688, 20689, 20690, 20691, 20692, 20693, 20694, 20695, 20696, 20697, 20698, 20699, 20700, 20701, 20702, 20703, 20704, 20705, 20706, 20707, 20708, 20709, 20710, 20711, 20712, 20713, 20714, 20715, 20716, 20717, 20718, 20719, 20720, 20721, 20722, 20723, 20724, 20725, 20726, 20727, 20728, 20729, 20730, 20731, 20732, 20733, 20734, 20735, 20736, 20737, 20738, 20739, 20740, 20741, 20742, 20743, 20744, 20745, 20746, 20747, 20748, 20749, 20750, 20751, 20752, 20753, 20754, 20755, 20756, 20757, 20758, 20759, 20760, 20761, 20762, 20763, 20764, 20765, 20766, 20767, 20768, 20769, 20770, 20771, 20772, 20773, 20774, 20775, 20776, 20777, 20778, 20779, 20780, 20781, 20782, 20783, 20784, 20785, 20786, 20787, 20788, 20789, 20790, 20791, 20792, 20793, 20794, 20795, 20796, 20797, 20798, 20799, 20800, 20801, 20802, 20803, 20804, 20805, 20806, 20807, 20808, 20809, 20810, 20811, 20812, 20813, 20814, 20815, 20816, 20817, 20818, 20819, 20820, 20821, 20822, 20823, 20824, 20825, 20826, 20827, 20828, 20829, 20830, 20831, 20832, 20833, 20834, 20835, 20836, 20837, 20838, 20839, 20840, 20841, 20842, 20843, 20844, 20845, 20846, 20847, 20848, 20849, 20850, 20851, 20852, 20853, 20854, 20855, 20856, 20857, 20858, 20859, 20860, 20861, 20862, 20863, 20864, 20865, 20866, 20867, 20868, 20869, 20870, 20871, 20872, 20873, 20874, 20875, 20876, 20877, 20878, 20879, 20880, 20881, 20882, 20883, 20884, 20885, 20886, 20887, 20888, 20889, 20890, 20891, 20892, 20893, 20894, 20895, 20896, 20897, 20898, 20899, 20900, 20901, 20902, 20903, 20904, 20905, 20906, 20907, 20908, 20909, 20910, 20911, 20912, 20913, 20914, 20915, 20916, 20917, 20918, 20919, 20920, 20921, 20922, 20923, 20924, 20925, 20926, 20927, 20928, 20929, 20930, 20931, 20932, 20933, 20934, 20935, 20936, 20937, 20938, 20939, 20940, 20941, 20942, 20943, 20944, 20945, 20946, 20947, 20948, 20949, 20950, 20951, 20952, 20953, 20954, 20955, 20956, 20957, 20958, 20959, 20960, 20961, 20962, 20963, 20964, 20965, 20966, 20967, 20968, 20969, 20970, 20971, 20972, 20973, 20974, 20975, 20976, 20977, 20978, 20979, 20980, 20981, 20982, 20983, 20984, 20985, 20986, 20987, 20988, 20989, 20990, 20991, 20992, 20993, 20994, 20995, 20996, 20997, 20998, 20999, 21000, 21001, 21002, 21003, 21004, 21005, 21006, 21007, 21008, 21009, 21010, 21011, 21012, 21013, 21014, 21015, 21016, 21017, 21018, 21019, 21020, 21021, 21022, 21023, 21024, 21025, 21026, 21027, 21028, 21029, 21030, 21031, 21032, 21033, 21034, 21035, 21036, 21037, 21038, 21039, 21040, 21041, 21042, 21043, 21044, 21045, 21046, 21047, 21048, 21049, 21050, 21051, 21052, 21053, 21054, 21055, 21056, 21057, 21058, 21059, 21060, 21061, 21062, 21063, 21064, 21065, 21066, 21067, 21068, 21069, 21070, 21071, 21072, 21073, 21074, 21075, 21076, 21077, 21078, 21079, 21080, 21081, 21082, 21083, 21084, 21085, 21086, 21087, 21088, 21089, 21090, 21091, 21092, 21093, 21094, 21095, 21096, 21097, 21098, 21099, 21100, 21101, 21102, 21103, 21104, 21105, 21106, 21107, 21108, 21109, 21110, 21111, 21112, 21113, 21114, 21115, 21116, 21117, 21118, 21119, 21120, 21121, 21122, 21123, 21124, 21125, 21126, 21127, 21128, 21129, 21130, 21131, 21132, 21133, 21134, 21135, 21136, 21137, 21138, 21139, 21140, 21141, 21142, 21143, 21144, 21145, 21146, 21147, 21148, 21149, 21150, 21151, 21152, 21153, 21154, 21155, 21156, 21157, 21158, 21159}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020, 5021, 5022, 5023, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033, 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055, 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5063, 5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082, 5083, 5084, 5085, 5086, 5087, 5088, 5089, 5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097, 5098, 5099, 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108, 5109, 5110, 5111, 5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121, 5122, 5123, 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5159, 5160, 5161, 5162, 5163, 5164, 5165, 5166, 5167, 5168, 5169, 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177, 5178, 5179, 5180, 5181, 5182, 5183, 5184, 5185, 5186, 5187, 5188, 5189, 5190, 5191, 5192, 5193, 5194, 5195, 5196, 5197, 5198, 5199, 5200, 5201, 5202, 5203, 5204, 5205, 5206, 5207, 5208, 5209, 5210, 5211, 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219, 5220, 5221, 5222, 5223, 5224, 5225, 5226, 5227, 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235, 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243, 5244, 5245, 5246, 5247, 5248, 5249, 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265, 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277, 5278, 5279, 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287, 5288, 5289, 5290, 5291, 5292, 5293, 5294, 5295, 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303, 5304, 5305, 5306, 5307, 5308, 5309, 5310, 5311, 5312, 5313, 5314, 5315, 5316, 5317, 5318, 5319, 5320, 5321, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5347, 5348, 5349, 5350, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5403, 5404, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5415, 5416, 5417, 5418, 5419, 5420, 5421, 5422, 5423, 5424, 5425, 5426, 5427, 5428, 5429, 5430, 5431, 5432, 5433, 5434, 5435, 5436, 5437, 5438, 5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447, 5448, 5449, 5450, 5451, 5452, 5453, 5454, 5455, 5456, 5457, 5458, 5459, 5460, 5461, 5462, 5463, 5464, 5465, 5466, 5467, 5468, 5469, 5470, 5471, 5472, 5473, 5474, 5475, 5476, 5477, 5478, 5479, 5480, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489, 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505, 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 5515, 5516, 5517, 5518, 5519, 5520, 5521, 5522, 5523, 5524, 5525, 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534, 5535, 5536, 5537, 5538, 5539, 5540, 5541, 5542, 5543, 5544, 5545, 5546, 5547, 5548, 5549, 5550, 5551, 5552, 5553, 5554, 5555, 5556, 5557, 5558, 5559, 5560, 5561, 5562, 5563, 5564, 5565, 5566, 5567, 5568, 5569, 5570, 5571, 5572, 5573, 5574, 5575, 5576, 5577, 5578, 5579, 5580, 5581, 5582, 5583, 5584, 5585, 5586, 5587, 5588, 5589, 5590, 5591, 5592, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, 5606, 5607, 5608, 5609, 5610, 5611, 5612, 5613, 5614, 5615, 5616, 5617, 5618, 5619, 5620, 5621, 5622, 5623, 5624, 5625, 5626, 5627, 5628, 5629, 5630, 5631, 5632, 5633, 5634, 5635, 5636, 5637, 5638, 5639, 5640, 5641, 5642, 5643, 5644, 5645, 5646, 5647, 5648, 5649, 5650, 5651, 5652, 5653, 5654, 5655, 5656, 5657, 5658, 5659, 5660, 5661, 5662, 5663, 5664, 5665, 5666, 5667, 5668, 5669, 5670, 5671, 5672, 5673, 5674, 5675, 5676, 5677, 5678, 5679, 5680, 5681, 5682, 5683, 5684, 5685, 5686, 5687, 5688, 5689, 5690, 5691, 5692, 5693, 5694, 5695, 5696, 5697, 5698, 5699, 5700, 5701, 5702, 5703, 5704, 5705, 5706, 5707, 5708, 5709, 5710, 5711, 5712, 5713, 5714, 5715, 5716, 5717, 5718, 5719, 5720, 5721, 5722, 5723, 5724, 5725, 5726, 5727, 5728, 5729, 5730, 5731, 5732, 5733, 5734, 5735, 5736, 5737, 5738, 5739, 5740, 5741, 5742, 5743, 5744, 5745, 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, 5754, 5755, 5756, 5757, 5758, 5759, 5760, 5761, 5762, 5763, 5764, 5765, 5766, 5767, 5768, 5769, 5770, 5771, 5772, 5773, 5774, 5775, 5776, 5777, 5778, 5779, 5780, 5781, 5782, 5783, 5784, 5785, 5786, 5787, 5788, 5789, 5790, 5791, 5792, 5793, 5794, 5795, 5796, 5797, 5798, 5799, 5800, 5801, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5809, 5810, 5811, 5812, 5813, 5814, 5815, 5816, 5817, 5818, 5819, 5820, 5821, 5822, 5823, 5824, 5825, 5826, 5827, 5828, 5829, 5830, 5831, 5832, 5833, 5834, 5835, 5836, 5837, 5838, 5839, 5840, 5841, 5842, 5843, 5844, 5845, 5846, 5847, 5848, 5849, 5850, 5851, 5852, 5853, 5854, 5855, 5856, 5857, 5858, 5859, 5860, 5861, 5862, 5863, 5864, 5865, 5866, 5867, 5868, 5869, 5870, 5871, 5872, 5873, 5874, 5875, 5876, 5877, 5878, 5879, 5880, 5881, 5882, 5883, 5884, 5885, 5886, 5887, 5888, 5889, 5890, 5891, 5892, 5893, 5894, 5895, 5896, 5897, 5898, 5899, 5900, 5901, 5902, 5903, 5904, 5905, 5906, 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5914, 5915, 5916, 5917, 5918, 5919, 5920, 5921, 5922, 5923, 5924, 5925, 5926, 5927, 5928, 5929, 5930, 5931, 5932, 5933, 5934, 5935, 5936, 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5944, 5945, 5946, 5947, 5948, 5949, 5950, 5951, 5952, 5953, 5954, 5955, 5956, 5957, 5958, 5959, 5960, 5961, 5962, 5963, 5964, 5965, 5966, 5967, 5968, 5969, 5970, 5971, 5972, 5973, 5974, 5975, 5976, 5977, 5978, 5979, 5980, 5981, 5982, 5983, 5984, 5985, 5986, 5987, 5988, 5989, 5990, 5991, 5992, 5993, 5994, 5995, 5996, 5997, 5998, 5999, 6000, 6001, 6002, 6003, 6004, 6005, 6006, 6007, 6008, 6009, 6010, 6011, 6012, 6013, 6014, 6015, 6016, 6017, 6018, 6019, 6020, 6021, 6022, 6023, 6024, 6025, 6026, 6027, 6028, 6029, 6030, 6031, 6032, 6033, 6034, 6035, 6036, 6037, 6038, 6039, 6040, 6041, 6042, 6043, 6044, 6045, 6046, 6047, 6048, 6049, 6050, 6051, 6052, 6053, 6054, 6055, 6056, 6057, 6058, 6059, 6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069, 6070, 6071, 6072, 6073, 6074, 6075, 6076, 6077, 6078, 6079, 6080, 6081, 6082, 6083, 6084, 6085, 6086, 6087, 6088, 6089, 6090, 6091, 6092, 6093, 6094, 6095, 6096, 6097, 6098, 6099, 6100, 6101, 6102, 6103, 6104, 6105, 6106, 6107, 6108, 6109, 6110, 6111, 6112, 6113, 6114, 6115, 6116, 6117, 6118, 6119, 6120, 6121, 6122, 6123, 6124, 6125, 6126, 6127, 6128, 6129, 6130, 6131, 6132, 6133, 6134, 6135, 6136, 6137, 6138, 6139, 6140, 6141, 6142, 6143, 6144, 6145, 6146, 6147, 6148, 6149, 6150, 6151, 6152, 6153, 6154, 6155, 6156, 6157, 6158, 6159, 6160, 6161, 6162, 6163, 6164, 6165, 6166, 6167, 6168, 6169, 6170, 6171, 6172, 6173, 6174, 6175, 6176, 6177, 6178, 6179, 6180, 6181, 6182, 6183, 6184, 6185, 6186, 6187, 6188, 6189, 6190, 6191, 6192, 6193, 6194, 6195, 6196, 6197, 6198, 6199, 6200, 6201, 6202, 6203, 6204, 6205, 6206, 6207, 6208, 6209, 6210, 6211, 6212, 6213, 6214, 6215, 6216, 6217, 6218, 6219, 6220, 6221, 6222, 6223, 6224, 6225, 6226, 6227, 6228, 6229, 6230, 6231, 6232, 6233, 6234, 6235, 6236, 6237, 6238, 6239, 6240, 6241, 6242, 6243, 6244, 6245, 6246, 6247, 6248, 6249, 6250, 6251, 6252, 6253, 6254, 6255, 6256, 6257, 6258, 6259, 6260, 6261, 6262, 6263, 6264, 6265, 6266, 6267, 6268, 6269, 6270, 6271, 6272, 6273, 6274, 6275, 6276, 6277, 6278, 6279, 6280, 6281, 6282, 6283, 6284, 6285, 6286, 6287, 6288, 6289, 6290, 6291, 6292, 6293, 6294, 6295, 6296, 6297, 6298, 6299, 6300, 6301, 6302, 6303, 6304, 6305, 6306, 6307, 6308, 6309, 6310, 6311, 6312, 6313, 6314, 6315, 6316, 6317, 6318, 6319, 6320, 6321, 6322, 6323, 6324, 6325, 6326, 6327, 6328, 6329, 6330, 6331, 6332, 6333, 6334, 6335, 6336, 6337, 6338, 6339, 6340, 6341, 6342, 6343, 6344, 6345, 6346, 6347, 6348, 6349, 6350, 6351, 6352, 6353, 6354, 6355, 6356, 6357, 6358, 6359, 6360, 6361, 6362, 6363, 6364, 6365, 6366, 6367, 6368, 6369, 6370, 6371, 6372, 6373, 6374, 6375, 6376, 6377, 6378, 6379, 6380, 6381, 6382, 6383, 6384, 6385, 6386, 6387, 6388, 6389, 6390, 6391, 6392, 6393, 6394, 6395, 6396, 6397, 6398, 6399, 6400, 6401, 6402, 6403, 6404, 6405, 6406, 6407, 6408, 6409, 6410, 6411, 6412, 6413, 6414, 6415, 6416, 6417, 6418, 6419, 6420, 6421, 6422, 6423, 6424, 6425, 6426, 6427, 6428, 6429, 6430, 6431, 6432, 6433, 6434, 6435, 6436, 6437, 6438, 6439, 6440, 6441, 6442, 6443, 6444, 6445, 6446, 6447, 6448, 6449, 6450, 6451, 6452, 6453, 6454, 6455, 6456, 6457, 6458, 6459, 6460, 6461, 6462, 6463, 6464, 6465, 6466, 6467, 6468, 6469, 6470, 6471, 6472, 6473, 6474, 6475, 6476, 6477, 6478, 6479, 6480, 6481, 6482, 6483, 6484, 6485, 6486, 6487, 6488, 6489, 6490, 6491, 6492, 6493, 6494, 6495, 6496, 6497, 6498, 6499, 6500, 6501, 6502, 6503, 6504, 6505, 6506, 6507, 6508, 6509, 6510, 6511, 6512, 6513, 6514, 6515, 6516, 6517, 6518, 6519, 6520, 6521, 6522, 6523, 6524, 6525, 6526, 6527, 6528, 6529, 6530, 6531, 6532, 6533, 6534, 6535, 6536, 6537, 6538, 6539, 6540, 6541, 6542, 6543, 6544, 6545, 6546, 6547, 6548, 6549, 6550, 6551, 6552, 6553, 6554, 6555, 6556, 6557, 6558, 6559, 6560, 6561, 6562, 6563, 6564, 6565, 6566, 6567, 6568, 6569, 6570, 6571, 6572, 6573, 6574, 6575, 6576, 6577, 6578, 6579, 6580, 6581, 6582, 6583, 6584, 6585, 6586, 6587, 6588, 6589, 6590, 6591, 6592, 6593, 6594, 6595, 6596, 6597, 6598, 6599, 6600, 6601, 6602, 6603, 6604, 6605, 6606, 6607, 6608, 6609, 6610, 6611, 6612, 6613, 6614, 6615, 6616, 6617, 6618, 6619, 6620, 6621, 6622, 6623, 6624, 6625, 6626, 6627, 6628, 6629, 6630, 6631, 6632, 6633, 6634, 6635, 6636, 6637, 6638, 6639, 6640, 6641, 6642, 6643, 6644, 6645, 6646, 6647, 6648, 6649, 6650, 6651, 6652, 6653, 6654, 6655, 6656, 6657, 6658, 6659, 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 6670, 6671, 6672, 6673, 6674, 6675, 6676, 6677, 6678, 6679, 6680, 6681, 6682, 6683, 6684, 6685, 6686, 6687, 6688, 6689, 6690, 6691, 6692, 6693, 6694, 6695, 6696, 6697, 6698, 6699, 6700, 6701, 6702, 6703, 6704, 6705, 6706, 6707, 6708, 6709, 6710, 6711, 6712, 6713, 6714, 6715, 6716, 6717, 6718, 6719, 6720, 6721, 6722, 6723, 6724, 6725, 6726, 6727, 6728, 6729, 6730, 6731, 6732, 6733, 6734, 6735, 6736, 6737, 6738, 6739, 6740, 6741, 6742, 6743, 6744, 6745, 6746, 6747, 6748, 6749, 6750, 6751, 6752, 6753, 6754, 6755, 6756, 6757, 6758, 6759, 6760, 6761, 6762, 6763, 6764, 6765, 6766, 6767, 6768, 6769, 6770, 6771, 6772, 6773, 6774, 6775, 6776, 6777, 6778, 6779, 6780, 6781, 6782, 6783, 6784, 6785, 6786, 6787, 6788, 6789, 6790, 6791, 6792, 6793, 6794, 6795, 6796, 6797, 6798, 6799, 6800, 6801, 6802, 6803, 6804, 6805, 6806, 6807, 6808, 6809, 6810, 6811, 6812, 6813, 6814, 6815, 6816, 6817, 6818, 6819, 6820, 6821, 6822, 6823, 6824, 6825, 6826, 6827, 6828, 6829, 6830, 6831, 6832, 6833, 6834, 6835, 6836, 6837, 6838, 6839, 6840, 6841, 6842, 6843, 6844, 6845, 6846, 6847, 6848, 6849, 6850, 6851, 6852, 6853, 6854, 6855, 6856, 6857, 6858, 6859, 6860, 6861, 6862, 6863, 6864, 6865, 6866, 6867, 6868, 6869, 6870, 6871, 6872, 6873, 6874, 6875, 6876, 6877, 6878, 6879, 6880, 6881, 6882, 6883, 6884, 6885, 6886, 6887, 6888, 6889, 6890, 6891, 6892, 6893, 6894, 6895, 6896, 6897, 6898, 6899, 6900, 6901, 6902, 6903, 6904, 6905, 6906, 6907, 6908, 6909, 6910, 6911, 6912, 6913, 6914, 6915, 6916, 6917, 6918, 6919, 6920, 6921, 6922, 6923, 6924, 6925, 6926, 6927, 6928, 6929, 6930, 6931, 6932, 6933, 6934, 6935, 6936, 6937, 6938, 6939, 6940, 6941, 6942, 6943, 6944, 6945, 6946, 6947, 6948, 6949, 6950, 6951, 6952, 6953, 6954, 6955, 6956, 6957, 6958, 6959, 6960, 6961, 6962, 6963, 6964, 6965, 6966, 6967, 6968, 6969, 6970, 6971, 6972, 6973, 6974, 6975, 6976, 6977, 6978, 6979, 6980, 6981, 6982, 6983, 6984, 6985, 6986, 6987, 6988, 6989, 6990, 6991, 6992, 6993, 6994, 6995, 6996, 6997, 6998, 6999, 7000, 7001, 7002, 7003, 7004, 7005, 7006, 7007, 7008, 7009, 7010, 7011, 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, 7028, 7029, 7030, 7031, 7032, 7033, 7034, 7035, 7036, 7037, 7038, 7039, 7040, 7041, 7042, 7043, 7044, 7045, 7046, 7047, 7048, 7049, 7050, 7051, 7052, 7053, 7054, 7055, 7056, 7057, 7058, 7059, 7060, 7061, 7062, 7063, 7064, 7065, 7066, 7067, 7068, 7069, 7070, 7071, 7072, 7073, 7074, 7075, 7076, 7077, 7078, 7079, 7080, 7081, 7082, 7083, 7084, 7085, 7086, 7087, 7088, 7089, 7090, 7091, 7092, 7093, 7094, 7095, 7096, 7097, 7098, 7099, 7100, 7101, 7102, 7103, 7104, 7105, 7106, 7107, 7108, 7109, 7110, 7111, 7112, 7113, 7114, 7115, 7116, 7117, 7118, 7119, 7120, 7121, 7122, 7123, 7124, 7125, 7126, 7127, 7128, 7129, 7130, 7131, 7132, 7133, 7134, 7135, 7136, 7137, 7138, 7139, 7140, 7141, 7142, 7143, 7144, 7145, 7146, 7147, 7148, 7149, 7150, 7151, 7152, 7153, 7154, 7155, 7156, 7157, 7158, 7159, 7160, 7161, 7162, 7163, 7164, 7165, 7166, 7167, 7168, 7169, 7170, 7171, 7172, 7173, 7174, 7175, 7176, 7177, 7178, 7179, 7180, 7181, 7182, 7183, 7184, 7185, 7186, 7187, 7188, 7189, 7190, 7191, 7192, 7193, 7194, 7195, 7196, 7197, 7198, 7199, 7200, 7201, 7202, 7203, 7204, 7205, 7206, 7207, 7208, 7209, 7210, 7211, 7212, 7213, 7214, 7215, 7216, 7217, 7218, 7219, 7220, 7221, 7222, 7223, 7224, 7225, 7226, 7227, 7228, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7239, 7240, 7241, 7242, 7243, 7244, 7245, 7246, 7247, 7248, 7249, 7250, 7251, 7252, 7253, 7254, 7255, 7256, 7257, 7258, 7259, 7260, 7261, 7262, 7263, 7264, 7265, 7266, 7267, 7268, 7269, 7270, 7271, 7272, 7273, 7274, 7275, 7276, 7277, 7278, 7279, 7280, 7281, 7282, 7283, 7284, 7285, 7286, 7287, 7288, 7289, 7290, 7291, 7292, 7293, 7294, 7295, 7296, 7297, 7298, 7299, 7300, 7301, 7302, 7303, 7304, 7305, 7306, 7307, 7308, 7309, 7310, 7311, 7312, 7313, 7314, 7315, 7316, 7317, 7318, 7319, 7320, 7321, 7322, 7323, 7324, 7325, 7326, 7327, 7328, 7329, 7330, 7331, 7332, 7333, 7334, 7335, 7336, 7337, 7338, 7339, 7340, 7341, 7342, 7343, 7344, 7345, 7346, 7347, 7348, 7349, 7350, 7351, 7352, 7353, 7354, 7355, 7356, 7357, 7358, 7359, 7360, 7361, 7362, 7363, 7364, 7365, 7366, 7367, 7368, 7369, 7370, 7371, 7372, 7373, 7374, 7375, 7376, 7377, 7378, 7379, 7380, 7381, 7382, 7383, 7384, 7385, 7386, 7387, 7388, 7389, 7390, 7391, 7392, 7393, 7394, 7395, 7396, 7397, 7398, 7399, 7400, 7401, 7402, 7403, 7404, 7405, 7406, 7407, 7408, 7409, 7410, 7411, 7412, 7413, 7414, 7415, 7416, 7417, 7418, 7419, 7420, 7421, 7422, 7423, 7424, 7425, 7426, 7427, 7428, 7429, 7430, 7431, 7432, 7433, 7434, 7435, 7436, 7437, 7438, 7439, 7440, 7441, 7442, 7443, 7444, 7445, 7446, 7447, 7448, 7449, 7450, 7451, 7452, 7453, 7454, 7455, 7456, 7457, 7458, 7459, 7460, 7461, 7462, 7463, 7464, 7465, 7466, 7467, 7468, 7469, 7470, 7471, 7472, 7473, 7474, 7475, 7476, 7477, 7478, 7479, 7480, 7481, 7482, 7483, 7484, 7485, 7486, 7487, 7488, 7489, 7490, 7491, 7492, 7493, 7494, 7495, 7496, 7497, 7498, 7499, 7500, 7501, 7502, 7503, 7504, 7505, 7506, 7507, 7508, 7509, 7510, 7511, 7512, 7513, 7514, 7515, 7516, 7517, 7518, 7519, 7520, 7521, 7522, 7523, 7524, 7525, 7526, 7527, 7528, 7529, 7530, 7531, 7532, 7533, 7534, 7535, 7536, 7537, 7538, 7539, 7540, 7541, 7542, 7543, 7544, 7545, 7546, 7547, 7548, 7549, 7550, 7551, 7552, 7553, 7554, 7555, 7556, 7557, 7558, 7559, 7560, 7561, 7562, 7563, 7564, 7565, 7566, 7567, 7568, 7569, 7570, 7571, 7572, 7573, 7574, 7575, 7576, 7577, 7578, 7579, 7580, 7581, 7582, 7583, 7584, 7585, 7586, 7587, 7588, 7589, 7590, 7591, 7592, 7593, 7594, 7595, 7596, 7597, 7598, 7599, 7600, 7601, 7602, 7603, 7604, 7605, 7606, 7607, 7608, 7609, 7610, 7611, 7612, 7613, 7614, 7615, 7616, 7617, 7618, 7619, 7620, 7621, 7622, 7623, 7624, 7625, 7626, 7627, 7628, 7629, 7630, 7631, 7632, 7633, 7634, 7635, 7636, 7637, 7638, 7639, 7640, 7641, 7642, 7643, 7644, 7645, 7646, 7647, 7648, 7649, 7650, 7651, 7652, 7653, 7654, 7655, 7656, 7657, 7658, 7659, 7660, 7661, 7662, 7663, 7664, 7665, 7666, 7667, 7668, 7669, 7670, 7671, 7672, 7673, 7674, 7675, 7676, 7677, 7678, 7679, 7680, 7681, 7682, 7683, 7684, 7685, 7686, 7687, 7688, 7689, 7690, 7691, 7692, 7693, 7694, 7695, 7696, 7697, 7698, 7699, 7700, 7701, 7702, 7703, 7704, 7705, 7706, 7707, 7708, 7709, 7710, 7711, 7712, 7713, 7714, 7715, 7716, 7717, 7718, 7719, 7720, 7721, 7722, 7723, 7724, 7725, 7726, 7727, 7728, 7729, 7730, 7731, 7732, 7733, 7734, 7735, 7736, 7737, 7738, 7739, 7740, 7741, 7742, 7743, 7744, 7745, 7746, 7747, 7748, 7749, 7750, 7751, 7752, 7753, 7754, 7755, 7756, 7757, 7758, 7759, 7760, 7761, 7762, 7763, 7764, 7765, 7766, 7767, 7768, 7769, 7770, 7771, 7772, 7773, 7774, 7775, 7776, 7777, 7778, 7779, 7780, 7781, 7782, 7783, 7784, 7785, 7786, 7787, 7788, 7789, 7790, 7791, 7792, 7793, 7794, 7795, 7796, 7797, 7798, 7799, 7800, 7801, 7802, 7803, 7804, 7805, 7806, 7807, 7808, 7809, 7810, 7811, 7812, 7813, 7814, 7815, 7816, 7817, 7818, 7819, 7820, 7821, 7822, 7823, 7824, 7825, 7826, 7827, 7828, 7829, 7830, 7831, 7832, 7833, 7834, 7835, 7836, 7837, 7838, 7839, 7840, 7841, 7842, 7843, 7844, 7845, 7846, 7847, 7848, 7849, 7850, 7851, 7852, 7853, 7854, 7855, 7856, 7857, 7858, 7859, 7860, 7861, 7862, 7863, 7864, 7865, 7866, 7867, 7868, 7869, 7870, 7871, 7872, 7873, 7874, 7875, 7876, 7877, 7878, 7879, 7880, 7881, 7882, 7883, 7884, 7885, 7886, 7887, 7888, 7889, 7890, 7891, 7892, 7893, 7894, 7895, 7896, 7897, 7898, 7899, 7900, 7901, 7902, 7903, 7904, 7905, 7906, 7907, 7908, 7909, 7910, 7911, 7912, 7913, 7914, 7915, 7916, 7917, 7918, 7919, 7920, 7921, 7922, 7923, 7924, 7925, 7926, 7927, 7928, 7929, 7930, 7931, 7932, 7933, 7934, 7935, 7936, 7937, 7938, 7939, 7940, 7941, 7942, 7943, 7944, 7945, 7946, 7947, 7948, 7949, 7950, 7951, 7952, 7953, 7954, 7955, 7956, 7957, 7958, 7959, 7960, 7961, 7962, 7963, 7964, 7965, 7966, 7967, 7968, 7969, 7970, 7971, 7972, 7973, 7974, 7975, 7976, 7977, 7978, 7979, 7980, 7981, 7982, 7983, 7984, 7985, 7986, 7987, 7988, 7989, 7990, 7991, 7992, 7993, 7994, 7995, 7996, 7997, 7998, 7999, 8000, 8001, 8002, 8003, 8004, 8005, 8006, 8007, 8008, 8009, 8010, 8011, 8012, 8013, 8014, 8015, 8016, 8017, 8018, 8019, 8020, 8021, 8022, 8023, 8024, 8025, 8026, 8027, 8028, 8029, 8030, 8031, 8032, 8033, 8034, 8035, 8036, 8037, 8038, 8039, 8040, 8041, 8042, 8043, 8044, 8045, 8046, 8047, 8048, 8049, 8050, 8051, 8052, 8053, 8054, 8055, 8056, 8057, 8058, 8059, 8060, 8061, 8062, 8063, 8064, 8065, 8066, 8067, 8068, 8069, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8083, 8084, 8085, 8086, 8087, 8088, 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098, 8099, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108, 8109, 8110, 8111, 8112, 8113, 8114, 8115, 8116, 8117, 8118, 8119, 8120, 8121, 8122, 8123, 8124, 8125, 8126, 8127, 8128, 8129, 8130, 8131, 8132, 8133, 8134, 8135, 8136, 8137, 8138, 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 8157, 8158, 8159, 8160, 8161, 8162, 8163, 8164, 8165, 8166, 8167, 8168, 8169, 8170, 8171, 8172, 8173, 8174, 8175, 8176, 8177, 8178, 8179, 8180, 8181, 8182, 8183, 8184, 8185, 8186, 8187, 8188, 8189, 8190, 8191, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8203, 8204, 8205, 8206, 8207, 8208, 8209, 8210, 8211, 8212, 8213, 8214, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8223, 8224, 8225, 8226, 8227, 8228, 8229, 8230, 8231, 8232, 8233, 8234, 8235, 8236, 8237, 8238, 8239, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8247, 8248, 8249, 8250, 8251, 8252, 8253, 8254, 8255, 8256, 8257, 8258, 8259, 8260, 8261, 8262, 8263, 8264, 8265, 8266, 8267, 8268, 8269, 8270, 8271, 8272, 8273, 8274, 8275, 8276, 8277, 8278, 8279, 8280, 8281, 8282, 8283, 8284, 8285, 8286, 8287, 8288, 8289, 8290, 8291, 8292, 8293, 8294, 8295, 8296, 8297, 8298, 8299, 8300, 8301, 8302, 8303, 8304, 8305, 8306, 8307, 8308, 8309, 8310, 8311, 8312, 8313, 8314, 8315, 8316, 8317, 8318, 8319, 8320, 8321, 8322, 8323, 8324, 8325, 8326, 8327, 8328, 8329, 8330, 8331, 8332, 8333, 8334, 8335, 8336, 8337, 8338, 8339, 8340, 8341, 8342, 8343, 8344, 8345, 8346, 8347, 8348, 8349, 8350, 8351, 8352, 8353, 8354, 8355, 8356, 8357, 8358, 8359, 8360, 8361, 8362, 8363, 8364, 8365, 8366, 8367, 8368, 8369, 8370, 8371, 8372, 8373, 8374, 8375, 8376, 8377, 8378, 8379, 8380, 8381, 8382, 8383, 8384, 8385, 8386, 8387, 8388, 8389, 8390, 8391, 8392, 8393, 8394, 8395, 8396, 8397, 8398, 8399, 8400, 8401, 8402, 8403, 8404, 8405, 8406, 8407, 8408, 8409, 8410, 8411, 8412, 8413, 8414, 8415, 8416, 8417, 8418, 8419, 8420, 8421, 8422, 8423, 8424, 8425, 8426, 8427, 8428, 8429, 8430, 8431, 8432, 8433, 8434, 8435, 8436, 8437, 8438, 8439, 8440, 8441, 8442, 8443, 8444, 8445, 8446, 8447, 8448, 8449, 8450, 8451, 8452, 8453, 8454, 8455, 8456, 8457, 8458, 8459, 8460, 8461, 8462, 8463, 8464, 8465, 8466, 8467, 8468, 8469, 8470, 8471, 8472, 8473, 8474, 8475, 8476, 8477, 8478, 8479, 8480, 8481, 8482, 8483, 8484, 8485, 8486, 8487, 8488, 8489, 8490, 8491, 8492, 8493, 8494, 8495, 8496, 8497, 8498, 8499, 8500, 8501, 8502, 8503, 8504, 8505, 8506, 8507, 8508, 8509, 8510, 8511, 8512, 8513, 8514, 8515, 8516, 8517, 8518, 8519, 8520, 8521, 8522, 8523, 8524, 8525, 8526, 8527, 8528, 8529, 8530, 8531, 8532, 8533, 8534, 8535, 8536, 8537, 8538, 8539, 8540, 8541, 8542, 8543, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558, 8559, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8577, 8578, 8579, 8580, 8581, 8582, 8583, 8584, 8585, 8586, 8587, 8588, 8589, 8590, 8591, 8592, 8593, 8594, 8595, 8596, 8597, 8598, 8599, 8600, 8601, 8602, 8603, 8604, 8605, 8606, 8607, 8608, 8609, 8610, 8611, 8612, 8613, 8614, 8615, 8616, 8617, 8618, 8619, 8620, 8621, 8622, 8623, 8624, 8625, 8626, 8627, 8628, 8629, 8630, 8631, 8632, 8633, 8634, 8635, 8636, 8637, 8638, 8639, 8640, 8641, 8642, 8643, 8644, 8645, 8646, 8647, 8648, 8649, 8650, 8651, 8652, 8653, 8654, 8655, 8656, 8657, 8658, 8659, 8660, 8661, 8662, 8663, 8664, 8665, 8666, 8667, 8668, 8669, 8670, 8671, 8672, 8673, 8674, 8675, 8676, 8677, 8678, 8679, 8680, 8681, 8682, 8683, 8684, 8685, 8686, 8687, 8688, 8689, 8690, 8691, 8692, 8693, 8694, 8695, 8696, 8697, 8698, 8699, 8700, 8701, 8702, 8703, 8704, 8705, 8706, 8707, 8708, 8709, 8710, 8711, 8712, 8713, 8714, 8715, 8716, 8717, 8718, 8719, 8720, 8721, 8722, 8723, 8724, 8725, 8726, 8727, 8728, 8729, 8730, 8731, 8732, 8733, 8734, 8735, 8736, 8737, 8738, 8739, 8740, 8741, 8742, 8743, 8744, 8745, 8746, 8747, 8748, 8749, 8750, 8751, 8752, 8753, 8754, 8755, 8756, 8757, 8758, 8759, 8760, 8761, 8762, 8763, 8764, 8765, 8766, 8767, 8768, 8769, 8770, 8771, 8772, 8773, 8774, 8775, 8776, 8777, 8778, 8779, 8780, 8781, 8782, 8783, 8784, 8785, 8786, 8787, 8788, 8789, 8790, 8791, 8792, 8793, 8794, 8795, 8796, 8797, 8798, 8799, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8807, 8808, 8809, 8810, 8811, 8812, 8813, 8814, 8815, 8816, 8817, 8818, 8819, 8820, 8821, 8822, 8823, 8824, 8825, 8826, 8827, 8828, 8829, 8830, 8831, 8832, 8833, 8834, 8835, 8836, 8837, 8838, 8839, 8840, 8841, 8842, 8843, 8844, 8845, 8846, 8847, 8848, 8849, 8850, 8851, 8852, 8853, 8854, 8855, 8856, 8857, 8858, 8859, 8860, 8861, 8862, 8863, 8864, 8865, 8866, 8867, 8868, 8869, 8870, 8871, 8872, 8873, 8874, 8875, 8876, 8877, 8878, 8879, 8880, 8881, 8882, 8883, 8884, 8885, 8886, 8887, 8888, 8889, 8890, 8891, 8892, 8893, 8894, 8895, 8896, 8897, 8898, 8899, 8900, 8901, 8902, 8903, 8904, 8905, 8906, 8907, 8908, 8909, 8910, 8911, 8912, 8913, 8914, 8915, 8916, 8917, 8918, 8919, 8920, 8921, 8922, 8923, 8924, 8925, 8926, 8927, 8928, 8929, 8930, 8931, 8932, 8933, 8934, 8935, 8936, 8937, 8938, 8939, 8940, 8941, 8942, 8943, 8944, 8945, 8946, 8947, 8948, 8949, 8950, 8951, 8952, 8953, 8954, 8955, 8956, 8957, 8958, 8959, 8960, 8961, 8962, 8963, 8964, 8965, 8966, 8967, 8968, 8969, 8970, 8971, 8972, 8973, 8974, 8975, 8976, 8977, 8978, 8979, 8980, 8981, 8982, 8983, 8984, 8985, 8986, 8987, 8988, 8989, 8990, 8991, 8992, 8993, 8994, 8995, 8996, 8997, 8998, 8999, 9000, 9001, 9002, 9003, 9004, 9005, 9006, 9007, 9008, 9009, 9010, 9011, 9012, 9013, 9014, 9015, 9016, 9017, 9018, 9019, 9020, 9021, 9022, 9023, 9024, 9025, 9026, 9027, 9028, 9029, 9030, 9031, 9032, 9033, 9034, 9035, 9036, 9037, 9038, 9039, 9040, 9041, 9042, 9043, 9044, 9045, 9046, 9047, 9048, 9049, 9050, 9051, 9052, 9053, 9054, 9055, 9056, 9057, 9058, 9059, 9060, 9061, 9062, 9063, 9064, 9065, 9066, 9067, 9068, 9069, 9070, 9071, 9072, 9073, 9074, 9075, 9076, 9077, 9078, 9079, 9080, 9081, 9082, 9083, 9084, 9085, 9086, 9087, 9088, 9089, 9090, 9091, 9092, 9093, 9094, 9095, 9096, 9097, 9098, 9099, 9100, 9101, 9102, 9103, 9104, 9105, 9106, 9107, 9108, 9109, 9110, 9111, 9112, 9113, 9114, 9115, 9116, 9117, 9118, 9119, 9120, 9121, 9122, 9123, 9124, 9125, 9126, 9127, 9128, 9129, 9130, 9131, 9132, 9133, 9134, 9135, 9136, 9137, 9138, 9139, 9140, 9141, 9142, 9143, 9144, 9145, 9146, 9147, 9148, 9149, 9150, 9151, 9152, 9153, 9154, 9155, 9156, 9157, 9158, 9159, 9160, 9161, 9162, 9163, 9164, 9165, 9166, 9167, 9168, 9169, 9170, 9171, 9172, 9173, 9174, 9175, 9176, 9177, 9178, 9179, 9180, 9181, 9182, 9183, 9184, 9185, 9186, 9187, 9188, 9189, 9190, 9191, 9192, 9193, 9194, 9195, 9196, 9197, 9198, 9199, 9200, 9201, 9202, 9203, 9204, 9205, 9206, 9207, 9208, 9209, 9210, 9211, 9212, 9213, 9214, 9215, 9216, 9217, 9218, 9219, 9220, 9221, 9222, 9223, 9224, 9225, 9226, 9227, 9228, 9229, 9230, 9231, 9232, 9233, 9234, 9235, 9236, 9237, 9238, 9239, 9240, 9241, 9242, 9243, 9244, 9245, 9246, 9247, 9248, 9249, 9250, 9251, 9252, 9253, 9254, 9255, 9256, 9257, 9258, 9259, 9260, 9261, 9262, 9263, 9264, 9265, 9266, 9267, 9268, 9269, 9270, 9271, 9272, 9273, 9274, 9275, 9276, 9277, 9278, 9279, 9280, 9281, 9282, 9283, 9284, 9285, 9286, 9287, 9288, 9289, 9290, 9291, 9292, 9293, 9294, 9295, 9296, 9297, 9298, 9299, 9300, 9301, 9302, 9303, 9304, 9305, 9306, 9307, 9308, 9309, 9310, 9311, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 9322, 9323, 9324, 9325, 9326, 9327, 9328, 9329, 9330, 9331, 9332, 9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 9342, 9343, 9344, 9345, 9346, 9347, 9348, 9349, 9350, 9351, 9352, 9353, 9354, 9355, 9356, 9357, 9358, 9359, 9360, 9361, 9362, 9363, 9364, 9365, 9366, 9367, 9368, 9369, 9370, 9371, 9372, 9373, 9374, 9375, 9376, 9377, 9378, 9379, 9380, 9381, 9382, 9383, 9384, 9385, 9386, 9387, 9388, 9389, 9390, 9391, 9392, 9393, 9394, 9395, 9396, 9397, 9398, 9399, 9400, 9401, 9402, 9403, 9404, 9405, 9406, 9407, 9408, 9409, 9410, 9411, 9412, 9413, 9414, 9415, 9416, 9417, 9418, 9419, 9420, 9421, 9422, 9423, 9424, 9425, 9426, 9427, 9428, 9429, 9430, 9431, 9432, 9433, 9434, 9435, 9436, 9437, 9438, 9439, 9440, 9441, 9442, 9443, 9444, 9445, 9446, 9447, 9448, 9449, 9450, 9451, 9452, 9453, 9454, 9455, 9456, 9457, 9458, 9459, 9460, 9461, 9462, 9463, 9464, 9465, 9466, 9467, 9468, 9469, 9470, 9471, 9472, 9473, 9474, 9475, 9476, 9477, 9478, 9479, 9480, 9481, 9482, 9483, 9484, 9485, 9486, 9487, 9488, 9489, 9490, 9491, 9492, 9493, 9494, 9495, 9496, 9497, 9498, 9499, 9500, 9501, 9502, 9503, 9504, 9505, 9506, 9507, 9508, 9509, 9510, 9511, 9512, 9513, 9514, 9515, 9516, 9517, 9518, 9519, 9520, 9521, 9522, 9523, 9524, 9525, 9526, 9527, 9528, 9529, 9530, 9531, 9532, 9533, 9534, 9535, 9536, 9537, 9538, 9539, 9540, 9541, 9542, 9543, 9544, 9545, 9546, 9547, 9548, 9549, 9550, 9551, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9581, 9582, 9583, 9584, 9585, 9586, 9587, 9588, 9589, 9590, 9591, 9592, 9593, 9594, 9595, 9596, 9597, 9598, 9599, 9600, 9601, 9602, 9603, 9604, 9605, 9606, 9607, 9608, 9609, 9610, 9611, 9612, 9613, 9614, 9615, 9616, 9617, 9618, 9619, 9620, 9621, 9622, 9623, 9624, 9625, 9626, 9627, 9628, 9629, 9630, 9631, 9632, 9633, 9634, 9635, 9636, 9637, 9638, 9639, 9640, 9641, 9642, 9643, 9644, 9645, 9646, 9647, 9648, 9649, 9650, 9651, 9652, 9653, 9654, 9655, 9656, 9657, 9658, 9659, 9660, 9661, 9662, 9663, 9664, 9665, 9666, 9667, 9668, 9669, 9670, 9671, 9672, 9673, 9674, 9675, 9676, 9677, 9678, 9679, 9680, 9681, 9682, 9683, 9684, 9685, 9686, 9687, 9688, 9689, 9690, 9691, 9692, 9693, 9694, 9695, 9696, 9697, 9698, 9699, 9700, 9701, 9702, 9703, 9704, 9705, 9706, 9707, 9708, 9709, 9710, 9711, 9712, 9713, 9714, 9715, 9716, 9717, 9718, 9719, 9720, 9721, 9722, 9723, 9724, 9725, 9726, 9727, 9728, 9729, 9730, 9731, 9732, 9733, 9734, 9735, 9736, 9737, 9738, 9739, 9740, 9741, 9742, 9743, 9744, 9745, 9746, 9747, 9748, 9749, 9750, 9751, 9752, 9753, 9754, 9755, 9756, 9757, 9758, 9759, 9760, 9761, 9762, 9763, 9764, 9765, 9766, 9767, 9768, 9769, 9770, 9771, 9772, 9773, 9774, 9775, 9776, 9777, 9778, 9779, 9780, 9781, 9782, 9783, 9784, 9785, 9786, 9787, 9788, 9789, 9790, 9791, 9792, 9793, 9794, 9795, 9796, 9797, 9798, 9799, 9800, 9801, 9802, 9803, 9804, 9805, 9806, 9807, 9808, 9809, 9810, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9820, 9821, 9822, 9823, 9824, 9825, 9826, 9827, 9828, 9829, 9830, 9831, 9832, 9833, 9834, 9835, 9836, 9837, 9838, 9839, 9840, 9841, 9842, 9843, 9844, 9845, 9846, 9847, 9848, 9849, 9850, 9851, 9852, 9853, 9854, 9855, 9856, 9857, 9858, 9859, 9860, 9861, 9862, 9863, 9864, 9865, 9866, 9867, 9868, 9869, 9870, 9871, 9872, 9873, 9874, 9875, 9876, 9877, 9878, 9879, 9880, 9881, 9882, 9883, 9884, 9885, 9886, 9887, 9888, 9889, 9890, 9891, 9892, 9893, 9894, 9895, 9896, 9897, 9898, 9899, 9900, 9901, 9902, 9903, 9904, 9905, 9906, 9907, 9908, 9909, 9910, 9911, 9912, 9913, 9914, 9915, 9916, 9917, 9918, 9919, 9920, 9921, 9922, 9923, 9924, 9925, 9926, 9927, 9928, 9929, 9930, 9931, 9932, 9933, 9934, 9935, 9936, 9937, 9938, 9939, 9940, 9941, 9942, 9943, 9944, 9945, 9946, 9947, 9948, 9949, 9950, 9951, 9952, 9953, 9954, 9955, 9956, 9957, 9958, 9959, 9960, 9961, 9962, 9963, 9964, 9965, 9966, 9967, 9968, 9969, 9970, 9971, 9972, 9973, 9974, 9975, 9976, 9977, 9978, 9979, 9980, 9981, 9982, 9983, 9984, 9985, 9986, 9987, 9988, 9989, 9990, 9991, 9992, 9993, 9994, 9995, 9996, 9997, 9998, 9999, 10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015, 10016, 10017, 10018, 10019, 10020, 10021, 10022, 10023, 10024, 10025, 10026, 10027, 10028, 10029, 10030, 10031, 10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039, 10040, 10041, 10042, 10043, 10044, 10045, 10046, 10047, 10048, 10049, 10050, 10051, 10052, 10053, 10054, 10055, 10056, 10057, 10058, 10059, 10060, 10061, 10062, 10063, 10064, 10065, 10066, 10067, 10068, 10069, 10070, 10071, 10072, 10073, 10074, 10075, 10076, 10077, 10078, 10079, 10080, 10081, 10082, 10083, 10084, 10085, 10086, 10087, 10088, 10089, 10090, 10091, 10092, 10093, 10094, 10095, 10096, 10097, 10098, 10099, 10100, 10101, 10102, 10103, 10104, 10105, 10106, 10107, 10108, 10109, 10110, 10111, 10112, 10113, 10114, 10115, 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 10132, 10133, 10134, 10135, 10136, 10137, 10138, 10139, 10140, 10141, 10142, 10143, 10144, 10145, 10146, 10147, 10148, 10149, 10150, 10151, 10152, 10153, 10154, 10155, 10156, 10157, 10158, 10159, 10160, 10161, 10162, 10163, 10164, 10165, 10166, 10167, 10168, 10169, 10170, 10171, 10172, 10173, 10174, 10175, 10176, 10177, 10178, 10179, 10180, 10181, 10182, 10183, 10184, 10185, 10186, 10187, 10188, 10189, 10190, 10191, 10192, 10193, 10194, 10195, 10196, 10197, 10198, 10199, 10200, 10201, 10202, 10203, 10204, 10205, 10206, 10207, 10208, 10209, 10210, 10211, 10212, 10213, 10214, 10215, 10216, 10217, 10218, 10219, 10220, 10221, 10222, 10223, 10224, 10225, 10226, 10227, 10228, 10229, 10230, 10231, 10232, 10233, 10234, 10235, 10236, 10237, 10238, 10239, 10240, 10241, 10242, 10243, 10244, 10245, 10246, 10247, 10248, 10249, 10250, 10251, 10252, 10253, 10254, 10255, 10256, 10257, 10258, 10259, 10260, 10261, 10262, 10263, 10264, 10265, 10266, 10267, 10268, 10269, 10270, 10271, 10272, 10273, 10274, 10275, 10276, 10277, 10278, 10279, 10280, 10281, 10282, 10283, 10284, 10285, 10286, 10287, 10288, 10289, 10290, 10291, 10292, 10293, 10294, 10295, 10296, 10297, 10298, 10299, 10300, 10301, 10302, 10303, 10304, 10305, 10306, 10307, 10308, 10309, 10310, 10311, 10312, 10313, 10314, 10315, 10316, 10317, 10318, 10319, 10320, 10321, 10322, 10323, 10324, 10325, 10326, 10327, 10328, 10329, 10330, 10331, 10332, 10333, 10334, 10335, 10336, 10337, 10338, 10339, 10340, 10341, 10342, 10343, 10344, 10345, 10346, 10347, 10348, 10349, 10350, 10351, 10352, 10353, 10354, 10355, 10356, 10357, 10358, 10359, 10360, 10361, 10362, 10363, 10364, 10365, 10366, 10367, 10368, 10369, 10370, 10371, 10372, 10373, 10374, 10375, 10376, 10377, 10378, 10379, 10380, 10381, 10382, 10383, 10384, 10385, 10386, 10387, 10388, 10389, 10390, 10391, 10392, 10393, 10394, 10395, 10396, 10397, 10398, 10399, 10400, 10401, 10402, 10403, 10404, 10405, 10406, 10407, 10408, 10409, 10410, 10411, 10412, 10413, 10414, 10415, 10416, 10417, 10418, 10419, 10420, 10421, 10422, 10423, 10424, 10425, 10426, 10427, 10428, 10429, 10430, 10431, 10432, 10433, 10434, 10435, 10436, 10437, 10438, 10439, 10440, 10441, 10442, 10443, 10444, 10445, 10446, 10447, 10448, 10449, 10450, 10451, 10452, 10453, 10454, 10455, 10456, 10457, 10458, 10459, 10460, 10461, 10462, 10463, 10464, 10465, 10466, 10467, 10468, 10469, 10470, 10471, 10472, 10473, 10474, 10475, 10476, 10477, 10478, 10479, 10480, 10481, 10482, 10483, 10484, 10485, 10486, 10487, 10488, 10489, 10490, 10491, 10492, 10493, 10494, 10495, 10496, 10497, 10498, 10499, 10500, 10501, 10502, 10503, 10504, 10505, 10506, 10507, 10508, 10509, 10510, 10511, 10512, 10513, 10514, 10515, 10516, 10517, 10518, 10519, 10520, 10521, 10522, 10523, 10524, 10525, 10526, 10527, 10528, 10529, 10530, 10531, 10532, 10533, 10534, 10535, 10536, 10537, 10538, 10539, 10540, 10541, 10542, 10543, 10544, 10545, 10546, 10547, 10548, 10549, 10550, 10551, 10552, 10553, 10554, 10555, 10556, 10557, 10558, 10559, 10560, 10561, 10562, 10563, 10564, 10565, 10566, 10567, 10568, 10569, 10570, 10571, 10572, 10573, 10574, 10575, 10576, 10577, 10578, 10579, 10580, 10581, 10582, 10583, 10584, 10585, 10586, 10587, 10588, 10589, 10590, 10591, 10592, 10593, 10594, 10595, 10596, 10597, 10598, 10599, 10600, 10601, 10602, 10603, 10604, 10605, 10606, 10607, 10608, 10609, 10610, 10611, 10612, 10613, 10614, 10615, 10616, 10617, 10618, 10619, 10620, 10621, 10622, 10623, 10624, 10625, 10626, 10627, 10628, 10629, 10630, 10631, 10632, 10633, 10634, 10635, 10636, 10637, 10638, 10639, 10640, 10641, 10642, 10643, 10644, 10645, 10646, 10647, 10648, 10649, 10650, 10651, 10652, 10653, 10654, 10655, 10656, 10657, 10658, 10659, 10660, 10661, 10662, 10663, 10664, 10665, 10666, 10667, 10668, 10669, 10670, 10671, 10672, 10673, 10674, 10675, 10676, 10677, 10678, 10679, 10680, 10681, 10682, 10683, 10684, 10685, 10686, 10687, 10688, 10689, 10690, 10691, 10692, 10693, 10694, 10695, 10696, 10697, 10698, 10699, 10700, 10701, 10702, 10703, 10704, 10705, 10706, 10707, 10708, 10709, 10710, 10711, 10712, 10713, 10714, 10715, 10716, 10717, 10718, 10719, 10720, 10721, 10722, 10723, 10724, 10725, 10726, 10727, 10728, 10729, 10730, 10731, 10732, 10733, 10734, 10735, 10736, 10737, 10738, 10739, 10740, 10741, 10742, 10743, 10744, 10745, 10746, 10747, 10748, 10749, 10750, 10751, 10752, 10753, 10754, 10755, 10756, 10757, 10758, 10759, 10760, 10761, 10762, 10763, 10764, 10765, 10766, 10767, 10768, 10769, 10770, 10771, 10772, 10773, 10774, 10775, 10776, 10777, 10778, 10779, 10780, 10781, 10782, 10783, 10784, 10785, 10786, 10787, 10788, 10789, 10790, 10791, 10792, 10793, 10794, 10795, 10796, 10797, 10798, 10799, 10800, 10801, 10802, 10803, 10804, 10805, 10806, 10807, 10808, 10809, 10810, 10811, 10812, 10813, 10814, 10815, 10816, 10817, 10818, 10819, 10820, 10821, 10822, 10823, 10824, 10825, 10826, 10827, 10828, 10829, 10830, 10831, 10832, 10833, 10834, 10835, 10836, 10837, 10838, 10839, 10840, 10841, 10842, 10843, 10844, 10845, 10846, 10847, 10848, 10849, 10850, 10851, 10852, 10853, 10854, 10855, 10856, 10857, 10858, 10859, 10860, 10861, 10862, 10863, 10864, 10865, 10866, 10867, 10868, 10869, 10870, 10871, 10872, 10873, 10874, 10875, 10876, 10877, 10878, 10879, 10880, 10881, 10882, 10883, 10884, 10885, 10886, 10887, 10888, 10889, 10890, 10891, 10892, 10893, 10894, 10895, 10896, 10897, 10898, 10899, 10900, 10901, 10902, 10903, 10904, 10905, 10906, 10907, 10908, 10909, 10910, 10911, 10912, 10913, 10914, 10915, 10916, 10917, 10918, 10919, 10920, 10921, 10922, 10923, 10924, 10925, 10926, 10927, 10928, 10929, 10930, 10931, 10932, 10933, 10934, 10935, 10936, 10937, 10938, 10939, 10940, 10941, 10942, 10943, 10944, 10945, 10946, 10947, 10948, 10949, 10950, 10951, 10952, 10953, 10954, 10955, 10956, 10957, 10958, 10959, 10960, 10961, 10962, 10963, 10964, 10965, 10966, 10967, 10968, 10969, 10970, 10971, 10972, 10973, 10974, 10975, 10976, 10977, 10978, 10979, 10980, 10981, 10982, 10983, 10984, 10985, 10986, 10987, 10988, 10989, 10990, 10991, 10992, 10993, 10994, 10995, 10996, 10997, 10998, 10999, 11000, 11001, 11002, 11003, 11004, 11005, 11006, 11007, 11008, 11009, 11010, 11011, 11012, 11013, 11014, 11015, 11016, 11017, 11018, 11019, 11020, 11021, 11022, 11023, 11024, 11025, 11026, 11027, 11028, 11029, 11030, 11031, 11032, 11033, 11034, 11035, 11036, 11037, 11038, 11039, 11040, 11041, 11042, 11043, 11044, 11045, 11046, 11047, 11048, 11049, 11050, 11051, 11052, 11053, 11054, 11055, 11056, 11057, 11058, 11059, 11060, 11061, 11062, 11063, 11064, 11065, 11066, 11067, 11068, 11069, 11070, 11071, 11072, 11073, 11074, 11075, 11076, 11077, 11078, 11079, 11080, 11081, 11082, 11083, 11084, 11085, 11086, 11087, 11088, 11089, 11090, 11091, 11092, 11093, 11094, 11095, 11096, 11097, 11098, 11099, 11100, 11101, 11102, 11103, 11104, 11105, 11106, 11107, 11108, 11109, 11110, 11111, 11112, 11113, 11114, 11115, 11116, 11117, 11118, 11119, 11120, 11121, 11122, 11123, 11124, 11125, 11126, 11127, 11128, 11129, 11130, 11131, 11132, 11133, 11134, 11135, 11136, 11137, 11138, 11139, 11140, 11141, 11142, 11143, 11144, 11145, 11146, 11147, 11148, 11149, 11150, 11151, 11152, 11153, 11154, 11155, 11156, 11157, 11158, 11159, 11160, 11161, 11162, 11163, 11164, 11165, 11166, 11167, 11168, 11169, 11170, 11171, 11172, 11173, 11174, 11175, 11176, 11177, 11178, 11179, 11180, 11181, 11182, 11183, 11184, 11185, 11186, 11187, 11188, 11189, 11190, 11191, 11192, 11193, 11194, 11195, 11196, 11197, 11198, 11199, 11200, 11201, 11202, 11203, 11204, 11205, 11206, 11207, 11208, 11209, 11210, 11211, 11212, 11213, 11214, 11215, 11216, 11217, 11218, 11219, 11220, 11221, 11222, 11223, 11224, 11225, 11226, 11227, 11228, 11229, 11230, 11231, 11232, 11233, 11234, 11235, 11236, 11237, 11238, 11239, 11240, 11241, 11242, 11243, 11244, 11245, 11246, 11247, 11248, 11249, 11250, 11251, 11252, 11253, 11254, 11255, 11256, 11257, 11258, 11259, 11260, 11261, 11262, 11263, 11264, 11265, 11266, 11267, 11268, 11269, 11270, 11271, 11272, 11273, 11274, 11275, 11276, 11277, 11278, 11279, 11280, 11281, 11282, 11283, 11284, 11285, 11286, 11287, 11288, 11289, 11290, 11291, 11292, 11293, 11294, 11295, 11296, 11297, 11298, 11299, 11300, 11301, 11302, 11303, 11304, 11305, 11306, 11307, 11308, 11309, 11310, 11311, 11312, 11313, 11314, 11315, 11316, 11317, 11318, 11319, 11320, 11321, 11322, 11323, 11324, 11325, 11326, 11327, 11328, 11329, 11330, 11331, 11332, 11333, 11334, 11335, 11336, 11337, 11338, 11339, 11340, 11341, 11342, 11343, 11344, 11345, 11346, 11347, 11348, 11349, 11350, 11351, 11352, 11353, 11354, 11355, 11356, 11357, 11358, 11359, 11360, 11361, 11362, 11363, 11364, 11365, 11366, 11367, 11368, 11369, 11370, 11371, 11372, 11373, 11374, 11375, 11376, 11377, 11378, 11379, 11380, 11381, 11382, 11383, 11384, 11385, 11386, 11387, 11388, 11389, 11390, 11391, 11392, 11393, 11394, 11395, 11396, 11397, 11398, 11399, 11400, 11401, 11402, 11403, 11404, 11405, 11406, 11407, 11408, 11409, 11410, 11411, 11412, 11413, 11414, 11415, 11416, 11417, 11418, 11419, 11420, 11421, 11422, 11423, 11424, 11425, 11426, 11427, 11428, 11429, 11430, 11431, 11432, 11433, 11434, 11435, 11436, 11437, 11438, 11439, 11440, 11441, 11442, 11443, 11444, 11445, 11446, 11447, 11448, 11449, 11450, 11451, 11452, 11453, 11454, 11455, 11456, 11457, 11458, 11459, 11460, 11461, 11462, 11463, 11464, 11465, 11466, 11467, 11468, 11469, 11470, 11471, 11472, 11473, 11474, 11475, 11476, 11477, 11478, 11479, 11480, 11481, 11482, 11483, 11484, 11485, 11486, 11487, 11488, 11489, 11490, 11491, 11492, 11493, 11494, 11495, 11496, 11497, 11498, 11499, 11500, 11501, 11502, 11503, 11504, 11505, 11506, 11507, 11508, 11509, 11510, 11511, 11512, 11513, 11514, 11515, 11516, 11517, 11518, 11519, 11520, 11521, 11522, 11523, 11524, 11525, 11526, 11527, 11528, 11529, 11530, 11531, 11532, 11533, 11534, 11535, 11536, 11537, 11538, 11539, 11540, 11541, 11542, 11543, 11544, 11545, 11546, 11547, 11548, 11549, 11550, 11551, 11552, 11553, 11554, 11555, 11556, 11557, 11558, 11559, 11560, 11561, 11562, 11563, 11564, 11565, 11566, 11567, 11568, 11569, 11570, 11571, 11572, 11573, 11574, 11575, 11576, 11577, 11578, 11579, 11580, 11581, 11582, 11583, 11584, 11585, 11586, 11587, 11588, 11589, 11590, 11591, 11592, 11593, 11594, 11595, 11596, 11597, 11598, 11599, 11600, 11601, 11602, 11603, 11604, 11605, 11606, 11607, 11608, 11609, 11610, 11611, 11612, 11613, 11614, 11615, 11616, 11617, 11618, 11619, 11620, 11621, 11622, 11623, 11624, 11625, 11626, 11627, 11628, 11629, 11630, 11631, 11632, 11633, 11634, 11635, 11636, 11637, 11638, 11639, 11640, 11641, 11642, 11643, 11644, 11645, 11646, 11647, 11648, 11649, 11650, 11651, 11652, 11653, 11654, 11655, 11656, 11657, 11658, 11659, 11660, 11661, 11662, 11663, 11664, 11665, 11666, 11667, 11668, 11669, 11670, 11671, 11672, 11673, 11674, 11675, 11676, 11677, 11678, 11679, 11680, 11681, 11682, 11683, 11684, 11685, 11686, 11687, 11688, 11689, 11690, 11691, 11692, 11693, 11694, 11695, 11696, 11697, 11698, 11699, 11700, 11701, 11702, 11703, 11704, 11705, 11706, 11707, 11708, 11709, 11710, 11711, 11712, 11713, 11714, 11715, 11716, 11717, 11718, 11719, 11720, 11721, 11722, 11723, 11724, 11725, 11726, 11727, 11728, 11729, 11730, 11731, 11732, 11733, 11734, 11735, 11736, 11737, 11738, 11739, 11740, 11741, 11742, 11743, 11744, 11745, 11746, 11747, 11748, 11749, 11750, 11751, 11752, 11753, 11754, 11755, 11756, 11757, 11758, 11759, 11760, 11761, 11762, 11763, 11764, 11765, 11766, 11767, 11768, 11769, 11770, 11771, 11772, 11773, 11774, 11775, 11776, 11777, 11778, 11779, 11780, 11781, 11782, 11783, 11784, 11785, 11786, 11787, 11788, 11789, 11790, 11791, 11792, 11793, 11794, 11795, 11796, 11797, 11798, 11799, 11800, 11801, 11802, 11803, 11804, 11805, 11806, 11807, 11808, 11809, 11810, 11811, 11812, 11813, 11814, 11815, 11816, 11817, 11818, 11819, 11820, 11821, 11822, 11823, 11824, 11825, 11826, 11827, 11828, 11829, 11830, 11831, 11832, 11833, 11834, 11835, 11836, 11837, 11838, 11839, 11840, 11841, 11842, 11843, 11844, 11845, 11846, 11847, 11848, 11849, 11850, 11851, 11852, 11853, 11854, 11855, 11856, 11857, 11858, 11859, 11860, 11861, 11862, 11863, 11864, 11865, 11866, 11867, 11868, 11869, 11870, 11871, 11872, 11873, 11874, 11875, 11876, 11877, 11878, 11879, 11880, 11881, 11882, 11883, 11884, 11885, 11886, 11887, 11888, 11889, 11890, 11891, 11892, 11893, 11894, 11895, 11896, 11897, 11898, 11899, 11900, 11901, 11902, 11903, 11904, 11905, 11906, 11907, 11908, 11909, 11910, 11911, 11912, 11913, 11914, 11915, 11916, 11917, 11918, 11919, 11920, 11921, 11922, 11923, 11924, 11925, 11926, 11927, 11928, 11929, 11930, 11931, 11932, 11933, 11934, 11935, 11936, 11937, 11938, 11939, 11940, 11941, 11942, 11943, 11944, 11945, 11946, 11947, 11948, 11949, 11950, 11951, 11952, 11953, 11954, 11955, 11956, 11957, 11958, 11959, 11960, 11961, 11962, 11963, 11964, 11965, 11966, 11967, 11968, 11969, 11970, 11971, 11972, 11973, 11974, 11975, 11976, 11977, 11978, 11979, 11980, 11981, 11982, 11983, 11984, 11985, 11986, 11987, 11988, 11989, 11990, 11991, 11992, 11993, 11994, 11995, 11996, 11997, 11998, 11999, 12000, 12001, 12002, 12003, 12004, 12005, 12006, 12007, 12008, 12009, 12010, 12011, 12012, 12013, 12014, 12015, 12016, 12017, 12018, 12019, 12020, 12021, 12022, 12023, 12024, 12025, 12026, 12027, 12028, 12029, 12030, 12031, 12032, 12033, 12034, 12035, 12036, 12037, 12038, 12039, 12040, 12041, 12042, 12043, 12044, 12045, 12046, 12047, 12048, 12049, 12050, 12051, 12052, 12053, 12054, 12055, 12056, 12057, 12058, 12059, 12060, 12061, 12062, 12063, 12064, 12065, 12066, 12067, 12068, 12069, 12070, 12071, 12072, 12073, 12074, 12075, 12076, 12077, 12078, 12079, 12080, 12081, 12082, 12083, 12084, 12085, 12086, 12087, 12088, 12089, 12090, 12091, 12092, 12093, 12094, 12095, 12096, 12097, 12098, 12099, 12100, 12101, 12102, 12103, 12104, 12105, 12106, 12107, 12108, 12109, 12110, 12111, 12112, 12113, 12114, 12115, 12116, 12117, 12118, 12119, 12120, 12121, 12122, 12123, 12124, 12125, 12126, 12127, 12128, 12129, 12130, 12131, 12132, 12133, 12134, 12135, 12136, 12137, 12138, 12139, 12140, 12141, 12142, 12143, 12144, 12145, 12146, 12147, 12148, 12149, 12150, 12151, 12152, 12153, 12154, 12155, 12156, 12157, 12158, 12159, 12160, 12161, 12162, 12163, 12164, 12165, 12166, 12167, 12168, 12169, 12170, 12171, 12172, 12173, 12174, 12175, 12176, 12177, 12178, 12179, 12180, 12181, 12182, 12183, 12184, 12185, 12186, 12187, 12188, 12189, 12190, 12191, 12192, 12193, 12194, 12195, 12196, 12197, 12198, 12199, 12200, 12201, 12202, 12203, 12204, 12205, 12206, 12207, 12208, 12209, 12210, 12211, 12212, 12213, 12214, 12215, 12216, 12217, 12218, 12219, 12220, 12221, 12222, 12223, 12224, 12225, 12226, 12227, 12228, 12229, 12230, 12231, 12232, 12233, 12234, 12235, 12236, 12237, 12238, 12239, 12240, 12241, 12242, 12243, 12244, 12245, 12246, 12247, 12248, 12249, 12250, 12251, 12252, 12253, 12254, 12255, 12256, 12257, 12258, 12259, 12260, 12261, 12262, 12263, 12264, 12265, 12266, 12267, 12268, 12269, 12270, 12271, 12272, 12273, 12274, 12275, 12276, 12277, 12278, 12279, 12280, 12281, 12282, 12283, 12284, 12285, 12286, 12287, 12288, 12289, 12290, 12291, 12292, 12293, 12294, 12295, 12296, 12297, 12298, 12299, 12300, 12301, 12302, 12303, 12304, 12305, 12306, 12307, 12308, 12309, 12310, 12311, 12312, 12313, 12314, 12315, 12316, 12317, 12318, 12319, 12320, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329, 12330, 12331, 12332, 12333, 12334, 12335, 12336, 12337, 12338, 12339, 12340, 12341, 12342, 12343, 12344, 12345, 12346, 12347, 12348, 12349, 12350, 12351, 12352, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, 12436, 12437, 12438, 12439, 12440, 12441, 12442, 12443, 12444, 12445, 12446, 12447, 12448, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12522, 12523, 12524, 12525, 12526, 12527, 12528, 12529, 12530, 12531, 12532, 12533, 12534, 12535, 12536, 12537, 12538, 12539, 12540, 12541, 12542, 12543, 12544, 12545, 12546, 12547, 12548, 12549, 12550, 12551, 12552, 12553, 12554, 12555, 12556, 12557, 12558, 12559, 12560, 12561, 12562, 12563, 12564, 12565, 12566, 12567, 12568, 12569, 12570, 12571, 12572, 12573, 12574, 12575, 12576, 12577, 12578, 12579, 12580, 12581, 12582, 12583, 12584, 12585, 12586, 12587, 12588, 12589, 12590, 12591, 12592, 12593, 12594, 12595, 12596, 12597, 12598, 12599, 12600, 12601, 12602, 12603, 12604, 12605, 12606, 12607, 12608, 12609, 12610, 12611, 12612, 12613, 12614, 12615, 12616, 12617, 12618, 12619, 12620, 12621, 12622, 12623, 12624, 12625, 12626, 12627, 12628, 12629, 12630, 12631, 12632, 12633, 12634, 12635, 12636, 12637, 12638, 12639, 12640, 12641, 12642, 12643, 12644, 12645, 12646, 12647, 12648, 12649, 12650, 12651, 12652, 12653, 12654, 12655, 12656, 12657, 12658, 12659, 12660, 12661, 12662, 12663, 12664, 12665, 12666, 12667, 12668, 12669, 12670, 12671, 12672, 12673, 12674, 12675, 12676, 12677, 12678, 12679, 12680, 12681, 12682, 12683, 12684, 12685, 12686, 12687, 12688, 12689, 12690, 12691, 12692, 12693, 12694, 12695, 12696, 12697, 12698, 12699, 12700, 12701, 12702, 12703, 12704, 12705, 12706, 12707, 12708, 12709, 12710, 12711, 12712, 12713, 12714, 12715, 12716, 12717, 12718, 12719, 12720, 12721, 12722, 12723, 12724, 12725, 12726, 12727, 12728, 12729, 12730, 12731, 12732, 12733, 12734, 12735, 12736, 12737, 12738, 12739, 12740, 12741, 12742, 12743, 12744, 12745, 12746, 12747, 12748, 12749, 12750, 12751, 12752, 12753, 12754, 12755, 12756, 12757, 12758, 12759, 12760, 12761, 12762, 12763, 12764, 12765, 12766, 12767, 12768, 12769, 12770, 12771, 12772, 12773, 12774, 12775, 12776, 12777, 12778, 12779, 12780, 12781, 12782, 12783, 12784, 12785, 12786, 12787, 12788, 12789, 12790, 12791, 12792, 12793, 12794, 12795, 12796, 12797, 12798, 12799, 12800, 12801, 12802, 12803, 12804, 12805, 12806, 12807, 12808, 12809, 12810, 12811, 12812, 12813, 12814, 12815, 12816, 12817, 12818, 12819, 12820, 12821, 12822, 12823, 12824, 12825, 12826, 12827, 12828, 12829, 12830, 12831, 12832, 12833, 12834, 12835, 12836, 12837, 12838, 12839, 12840, 12841, 12842, 12843, 12844, 12845, 12846, 12847, 12848, 12849, 12850, 12851, 12852, 12853, 12854, 12855, 12856, 12857, 12858, 12859, 12860, 12861, 12862, 12863, 12864, 12865, 12866, 12867, 12868, 12869, 12870, 12871, 12872, 12873, 12874, 12875, 12876, 12877, 12878, 12879, 12880, 12881, 12882, 12883, 12884, 12885, 12886, 12887, 12888, 12889, 12890, 12891, 12892, 12893, 12894, 12895, 12896, 12897, 12898, 12899, 12900, 12901, 12902, 12903, 12904, 12905, 12906, 12907, 12908, 12909, 12910, 12911, 12912, 12913, 12914, 12915, 12916, 12917, 12918, 12919, 12920, 12921, 12922, 12923, 12924, 12925, 12926, 12927, 12928, 12929, 12930, 12931, 12932, 12933, 12934, 12935, 12936, 12937, 12938, 12939, 12940, 12941, 12942, 12943, 12944, 12945, 12946, 12947, 12948, 12949, 12950, 12951, 12952, 12953, 12954, 12955, 12956, 12957, 12958, 12959, 12960, 12961, 12962, 12963, 12964, 12965, 12966, 12967, 12968, 12969, 12970, 12971, 12972, 12973, 12974, 12975, 12976, 12977, 12978, 12979, 12980, 12981, 12982, 12983, 12984, 12985, 12986, 12987, 12988, 12989, 12990, 12991, 12992, 12993, 12994, 12995, 12996, 12997, 12998, 12999, 13000, 13001, 13002, 13003, 13004, 13005, 13006, 13007, 13008, 13009, 13010, 13011, 13012, 13013, 13014, 13015, 13016, 13017, 13018, 13019, 13020, 13021, 13022, 13023, 13024, 13025, 13026, 13027, 13028, 13029, 13030, 13031, 13032, 13033, 13034, 13035, 13036, 13037, 13038, 13039, 13040, 13041, 13042, 13043, 13044, 13045, 13046, 13047, 13048, 13049, 13050, 13051, 13052, 13053, 13054, 13055, 13056, 13057, 13058, 13059, 13060, 13061, 13062, 13063, 13064, 13065, 13066, 13067, 13068, 13069, 13070, 13071, 13072, 13073, 13074, 13075, 13076, 13077, 13078, 13079, 13080, 13081, 13082, 13083, 13084, 13085, 13086, 13087, 13088, 13089, 13090, 13091, 13092, 13093, 13094, 13095, 13096, 13097, 13098, 13099, 13100, 13101, 13102, 13103, 13104, 13105, 13106, 13107, 13108, 13109, 13110, 13111, 13112, 13113, 13114, 13115, 13116, 13117, 13118, 13119, 13120, 13121, 13122, 13123, 13124, 13125, 13126, 13127, 13128, 13129, 13130, 13131, 13132, 13133, 13134, 13135, 13136, 13137, 13138, 13139, 13140, 13141, 13142, 13143, 13144, 13145, 13146, 13147, 13148, 13149, 13150, 13151, 13152, 13153, 13154, 13155, 13156, 13157, 13158, 13159, 13160, 13161, 13162, 13163, 13164, 13165, 13166, 13167, 13168, 13169, 13170, 13171, 13172, 13173, 13174, 13175, 13176, 13177, 13178, 13179, 13180, 13181, 13182, 13183, 13184, 13185, 13186, 13187, 13188, 13189, 13190, 13191, 13192, 13193, 13194, 13195, 13196, 13197, 13198, 13199, 13200, 13201, 13202, 13203, 13204, 13205, 13206, 13207, 13208, 13209, 13210, 13211, 13212, 13213, 13214, 13215, 13216, 13217, 13218, 13219, 13220, 13221, 13222, 13223, 13224, 13225, 13226, 13227, 13228, 13229, 13230, 13231, 13232, 13233, 13234, 13235, 13236, 13237, 13238, 13239, 13240, 13241, 13242, 13243, 13244, 13245, 13246, 13247, 13248, 13249, 13250, 13251, 13252, 13253, 13254, 13255, 13256, 13257, 13258, 13259, 13260, 13261, 13262, 13263, 13264, 13265, 13266, 13267, 13268, 13269, 13270, 13271, 13272, 13273, 13274, 13275, 13276, 13277, 13278, 13279, 13280, 13281, 13282, 13283, 13284, 13285, 13286, 13287, 13288, 13289, 13290, 13291, 13292, 13293, 13294, 13295, 13296, 13297, 13298, 13299, 13300, 13301, 13302, 13303, 13304, 13305, 13306, 13307, 13308, 13309, 13310, 13311, 13312, 13313, 13314, 13315, 13316, 13317, 13318, 13319, 13320, 13321, 13322, 13323, 13324, 13325, 13326, 13327, 13328, 13329, 13330, 13331, 13332, 13333, 13334, 13335, 13336, 13337, 13338, 13339, 13340, 13341, 13342, 13343, 13344, 13345, 13346, 13347, 13348, 13349, 13350, 13351, 13352, 13353, 13354, 13355, 13356, 13357, 13358, 13359, 13360, 13361, 13362, 13363, 13364, 13365, 13366, 13367, 13368, 13369, 13370, 13371, 13372, 13373, 13374, 13375, 13376, 13377, 13378, 13379, 13380, 13381, 13382, 13383, 13384, 13385, 13386, 13387, 13388, 13389, 13390, 13391, 13392, 13393, 13394, 13395, 13396, 13397, 13398, 13399, 13400, 13401, 13402, 13403, 13404, 13405, 13406, 13407, 13408, 13409, 13410, 13411, 13412, 13413, 13414, 13415, 13416, 13417, 13418, 13419, 13420, 13421, 13422, 13423, 13424, 13425, 13426, 13427, 13428, 13429, 13430, 13431, 13432, 13433, 13434, 13435, 13436, 13437, 13438, 13439, 13440, 13441, 13442, 13443, 13444, 13445, 13446, 13447, 13448, 13449, 13450, 13451, 13452, 13453, 13454, 13455, 13456, 13457, 13458, 13459, 13460, 13461, 13462, 13463, 13464, 13465, 13466, 13467, 13468, 13469, 13470, 13471, 13472, 13473, 13474, 13475, 13476, 13477, 13478, 13479, 13480, 13481, 13482, 13483, 13484, 13485, 13486, 13487, 13488, 13489, 13490, 13491, 13492, 13493, 13494, 13495, 13496, 13497, 13498, 13499, 13500, 13501, 13502, 13503, 13504, 13505, 13506, 13507, 13508, 13509, 13510, 13511, 13512, 13513, 13514, 13515, 13516, 13517, 13518, 13519, 13520, 13521, 13522, 13523, 13524, 13525, 13526, 13527, 13528, 13529, 13530, 13531, 13532, 13533, 13534, 13535, 13536, 13537, 13538, 13539, 13540, 13541, 13542, 13543, 13544, 13545, 13546, 13547, 13548, 13549, 13550, 13551, 13552, 13553, 13554, 13555, 13556, 13557, 13558, 13559, 13560, 13561, 13562, 13563, 13564, 13565, 13566, 13567, 13568, 13569, 13570, 13571, 13572, 13573, 13574, 13575, 13576, 13577, 13578, 13579, 13580, 13581, 13582, 13583, 13584, 13585, 13586, 13587, 13588, 13589, 13590, 13591, 13592, 13593, 13594, 13595, 13596, 13597, 13598, 13599, 13600, 13601, 13602, 13603, 13604, 13605, 13606, 13607, 13608, 13609, 13610, 13611, 13612, 13613, 13614, 13615, 13616, 13617, 13618, 13619, 13620, 13621, 13622, 13623, 13624, 13625, 13626, 13627, 13628, 13629, 13630, 13631, 13632, 13633, 13634, 13635, 13636, 13637, 13638, 13639, 13640, 13641, 13642, 13643, 13644, 13645, 13646, 13647, 13648, 13649, 13650, 13651, 13652, 13653, 13654, 13655, 13656, 13657, 13658, 13659, 13660, 13661, 13662, 13663, 13664, 13665, 13666, 13667, 13668, 13669, 13670, 13671, 13672, 13673, 13674, 13675, 13676, 13677, 13678, 13679, 13680, 13681, 13682, 13683, 13684, 13685, 13686, 13687, 13688, 13689, 13690, 13691, 13692, 13693, 13694, 13695, 13696, 13697, 13698, 13699, 13700, 13701, 13702, 13703, 13704, 13705, 13706, 13707, 13708, 13709, 13710, 13711, 13712, 13713, 13714, 13715, 13716, 13717, 13718, 13719, 13720, 13721, 13722, 13723, 13724, 13725, 13726, 13727, 13728, 13729, 13730, 13731, 13732, 13733, 13734, 13735, 13736, 13737, 13738, 13739, 13740, 13741, 13742, 13743, 13744, 13745, 13746, 13747, 13748, 13749, 13750, 13751, 13752, 13753, 13754, 13755, 13756, 13757, 13758, 13759, 13760, 13761, 13762, 13763, 13764, 13765, 13766, 13767, 13768, 13769, 13770, 13771, 13772, 13773, 13774, 13775, 13776, 13777, 13778, 13779, 13780, 13781, 13782, 13783, 13784, 13785, 13786, 13787, 13788, 13789, 13790, 13791, 13792, 13793, 13794, 13795, 13796, 13797, 13798, 13799, 13800, 13801, 13802, 13803, 13804, 13805, 13806, 13807, 13808, 13809, 13810, 13811, 13812, 13813, 13814, 13815, 13816, 13817, 13818, 13819, 13820, 13821, 13822, 13823, 13824, 13825, 13826, 13827, 13828, 13829, 13830, 13831, 13832, 13833, 13834, 13835, 13836, 13837, 13838, 13839, 13840, 13841, 13842, 13843, 13844, 13845, 13846, 13847, 13848, 13849, 13850, 13851, 13852, 13853, 13854, 13855, 13856, 13857, 13858, 13859, 13860, 13861, 13862, 13863, 13864, 13865, 13866, 13867, 13868, 13869, 13870, 13871, 13872, 13873, 13874, 13875, 13876, 13877, 13878, 13879, 13880, 13881, 13882, 13883, 13884, 13885, 13886, 13887, 13888, 13889, 13890, 13891, 13892, 13893, 13894, 13895, 13896, 13897, 13898, 13899, 13900, 13901, 13902, 13903, 13904, 13905, 13906, 13907, 13908, 13909, 13910, 13911, 13912, 13913, 13914, 13915, 13916, 13917, 13918, 13919, 13920, 13921, 13922, 13923, 13924, 13925, 13926, 13927, 13928, 13929, 13930, 13931, 13932, 13933, 13934, 13935, 13936, 13937, 13938, 13939, 13940, 13941, 13942, 13943, 13944, 13945, 13946, 13947, 13948, 13949, 13950, 13951, 13952, 13953, 13954, 13955, 13956, 13957, 13958, 13959, 13960, 13961, 13962, 13963, 13964, 13965, 13966, 13967, 13968, 13969, 13970, 13971, 13972, 13973, 13974, 13975, 13976, 13977, 13978, 13979, 13980, 13981, 13982, 13983, 13984, 13985, 13986, 13987, 13988, 13989, 13990, 13991, 13992, 13993, 13994, 13995, 13996, 13997, 13998, 13999, 14000, 14001, 14002, 14003, 14004, 14005, 14006, 14007, 14008, 14009, 14010, 14011, 14012, 14013, 14014, 14015, 14016, 14017, 14018, 14019, 14020, 14021, 14022, 14023, 14024, 14025, 14026, 14027, 14028, 14029, 14030, 14031, 14032, 14033, 14034, 14035, 14036, 14037, 14038, 14039, 14040, 14041, 14042, 14043, 14044, 14045, 14046, 14047, 14048, 14049, 14050, 14051, 14052, 14053, 14054, 14055, 14056, 14057, 14058, 14059, 14060, 14061, 14062, 14063, 14064, 14065, 14066, 14067, 14068, 14069, 14070, 14071, 14072, 14073, 14074, 14075, 14076, 14077, 14078, 14079, 14080, 14081, 14082, 14083, 14084, 14085, 14086, 14087, 14088, 14089, 14090, 14091, 14092, 14093, 14094, 14095, 14096, 14097, 14098, 14099, 14100, 14101, 14102, 14103, 14104, 14105, 14106, 14107, 14108, 14109, 14110, 14111, 14112, 14113, 14114, 14115, 14116, 14117, 14118, 14119, 14120, 14121, 14122, 14123, 14124, 14125, 14126, 14127, 14128, 14129, 14130, 14131, 14132, 14133, 14134, 14135, 14136, 14137, 14138, 14139, 14140, 14141, 14142, 14143, 14144, 14145, 14146, 14147, 14148, 14149, 14150, 14151, 14152, 14153, 14154, 14155, 14156, 14157, 14158, 14159, 14160, 14161, 14162, 14163, 14164, 14165, 14166, 14167, 14168, 14169, 14170, 14171, 14172, 14173, 14174, 14175, 14176, 14177, 14178, 14179, 14180, 14181, 14182, 14183, 14184, 14185, 14186, 14187, 14188, 14189, 14190, 14191, 14192, 14193, 14194, 14195, 14196, 14197, 14198, 14199, 14200, 14201, 14202, 14203, 14204, 14205, 14206, 14207, 14208, 14209, 14210, 14211, 14212, 14213, 14214, 14215, 14216, 14217, 14218, 14219, 14220, 14221, 14222, 14223, 14224, 14225, 14226, 14227, 14228, 14229, 14230, 14231, 14232, 14233, 14234, 14235, 14236, 14237, 14238, 14239, 14240, 14241, 14242, 14243, 14244, 14245, 14246, 14247, 14248, 14249, 14250, 14251, 14252, 14253, 14254, 14255, 14256, 14257, 14258, 14259, 14260, 14261, 14262, 14263, 14264, 14265, 14266, 14267, 14268, 14269, 14270, 14271, 14272, 14273, 14274, 14275, 14276, 14277, 14278, 14279, 14280, 14281, 14282, 14283, 14284, 14285, 14286, 14287, 14288, 14289, 14290, 14291, 14292, 14293, 14294, 14295, 14296, 14297, 14298, 14299, 14300, 14301, 14302, 14303, 14304, 14305, 14306, 14307, 14308, 14309, 14310, 14311, 14312, 14313, 14314, 14315, 14316, 14317, 14318, 14319, 14320, 14321, 14322, 14323, 14324, 14325, 14326, 14327, 14328, 14329, 14330, 14331, 14332, 14333, 14334, 14335, 14336, 14337, 14338, 14339, 14340, 14341, 14342, 14343, 14344, 14345, 14346, 14347, 14348, 14349, 14350, 14351, 14352, 14353, 14354, 14355, 14356, 14357, 14358, 14359, 14360, 14361, 14362, 14363, 14364, 14365, 14366, 14367, 14368, 14369, 14370, 14371, 14372, 14373, 14374, 14375, 14376, 14377, 14378, 14379, 14380, 14381, 14382, 14383, 14384, 14385, 14386, 14387, 14388, 14389, 14390, 14391, 14392, 14393, 14394, 14395, 14396, 14397, 14398, 14399, 14400, 14401, 14402, 14403, 14404, 14405, 14406, 14407, 14408, 14409, 14410, 14411, 14412, 14413, 14414, 14415, 14416, 14417, 14418, 14419, 14420, 14421, 14422, 14423, 14424, 14425, 14426, 14427, 14428, 14429, 14430, 14431, 14432, 14433, 14434, 14435, 14436, 14437, 14438, 14439, 14440, 14441, 14442, 14443, 14444, 14445, 14446, 14447, 14448, 14449, 14450, 14451, 14452, 14453, 14454, 14455, 14456, 14457, 14458, 14459, 14460, 14461, 14462, 14463, 14464, 14465, 14466, 14467, 14468, 14469, 14470, 14471, 14472, 14473, 14474, 14475, 14476, 14477, 14478, 14479, 14480, 14481, 14482, 14483, 14484, 14485, 14486, 14487, 14488, 14489, 14490, 14491, 14492, 14493, 14494, 14495, 14496, 14497, 14498, 14499, 14500, 14501, 14502, 14503, 14504, 14505, 14506, 14507, 14508, 14509, 14510, 14511, 14512, 14513, 14514, 14515, 14516, 14517, 14518, 14519, 14520, 14521, 14522, 14523, 14524, 14525, 14526, 14527, 14528, 14529, 14530, 14531, 14532, 14533, 14534, 14535, 14536, 14537, 14538, 14539, 14540, 14541, 14542, 14543, 14544, 14545, 14546, 14547, 14548, 14549, 14550, 14551, 14552, 14553, 14554, 14555, 14556, 14557, 14558, 14559, 14560, 14561, 14562, 14563, 14564, 14565, 14566, 14567, 14568, 14569, 14570, 14571, 14572, 14573, 14574, 14575, 14576, 14577, 14578, 14579, 14580, 14581, 14582, 14583, 14584, 14585, 14586, 14587, 14588, 14589, 14590, 14591, 14592, 14593, 14594, 14595, 14596, 14597, 14598, 14599, 14600, 14601, 14602, 14603, 14604, 14605, 14606, 14607, 14608, 14609, 14610, 14611, 14612, 14613, 14614, 14615, 14616, 14617, 14618, 14619, 14620, 14621, 14622, 14623, 14624, 14625, 14626, 14627, 14628, 14629, 14630, 14631, 14632, 14633, 14634, 14635, 14636, 14637, 14638, 14639, 14640, 14641, 14642, 14643, 14644, 14645, 14646, 14647, 14648, 14649, 14650, 14651, 14652, 14653, 14654, 14655, 14656, 14657, 14658, 14659, 14660, 14661, 14662, 14663, 14664, 14665, 14666, 14667, 14668, 14669, 14670, 14671, 14672, 14673, 14674, 14675, 14676, 14677, 14678, 14679, 14680, 14681, 14682, 14683, 14684, 14685, 14686, 14687, 14688, 14689, 14690, 14691, 14692, 14693, 14694, 14695, 14696, 14697, 14698, 14699, 14700, 14701, 14702, 14703, 14704, 14705, 14706, 14707, 14708, 14709, 14710, 14711, 14712, 14713, 14714, 14715, 14716, 14717, 14718, 14719, 14720, 14721, 14722, 14723, 14724, 14725, 14726, 14727, 14728, 14729, 14730, 14731, 14732, 14733, 14734, 14735, 14736, 14737, 14738, 14739, 14740, 14741, 14742, 14743, 14744, 14745, 14746, 14747, 14748, 14749, 14750, 14751, 14752, 14753, 14754, 14755, 14756, 14757, 14758, 14759, 14760, 14761, 14762, 14763, 14764, 14765, 14766, 14767, 14768, 14769, 14770, 14771, 14772, 14773, 14774, 14775, 14776, 14777, 14778, 14779, 14780, 14781, 14782, 14783, 14784, 14785, 14786, 14787, 14788, 14789, 14790, 14791, 14792, 14793, 14794, 14795, 14796, 14797, 14798, 14799, 14800, 14801, 14802, 14803, 14804, 14805, 14806, 14807, 14808, 14809, 14810, 14811, 14812, 14813, 14814, 14815, 14816, 14817, 14818, 14819, 14820, 14821, 14822, 14823, 14824, 14825, 14826, 14827, 14828, 14829, 14830, 14831, 14832, 14833, 14834, 14835, 14836, 14837, 14838, 14839, 14840, 14841, 14842, 14843, 14844, 14845, 14846, 14847, 14848, 14849, 14850, 14851, 14852, 14853, 14854, 14855, 14856, 14857, 14858, 14859, 14860, 14861, 14862, 14863, 14864, 14865, 14866, 14867, 14868, 14869, 14870, 14871, 14872, 14873, 14874, 14875, 14876, 14877, 14878, 14879, 14880, 14881, 14882, 14883, 14884, 14885, 14886, 14887, 14888, 14889, 14890, 14891, 14892, 14893, 14894, 14895, 14896, 14897, 14898, 14899, 14900, 14901, 14902, 14903, 14904, 14905, 14906, 14907, 14908, 14909, 14910, 14911, 14912, 14913, 14914, 14915, 14916, 14917, 14918, 14919, 14920, 14921, 14922, 14923, 14924, 14925, 14926, 14927, 14928, 14929, 14930, 14931, 14932, 14933, 14934, 14935, 14936, 14937, 14938, 14939, 14940, 14941, 14942, 14943, 14944, 14945, 14946, 14947, 14948, 14949, 14950, 14951, 14952, 14953, 14954, 14955, 14956, 14957, 14958, 14959, 14960, 14961, 14962, 14963, 14964, 14965, 14966, 14967, 14968, 14969, 14970, 14971, 14972, 14973, 14974, 14975, 14976, 14977, 14978, 14979, 14980, 14981, 14982, 14983, 14984, 14985, 14986, 14987, 14988, 14989, 14990, 14991, 14992, 14993, 14994, 14995, 14996, 14997, 14998, 14999, 15000, 15001, 15002, 15003, 15004, 15005, 15006, 15007, 15008, 15009, 15010, 15011, 15012, 15013, 15014, 15015, 15016, 15017, 15018, 15019, 15020, 15021, 15022, 15023, 15024, 15025, 15026, 15027, 15028, 15029, 15030, 15031, 15032, 15033, 15034, 15035, 15036, 15037, 15038, 15039, 15040, 15041, 15042, 15043, 15044, 15045, 15046, 15047, 15048, 15049, 15050, 15051, 15052, 15053, 15054, 15055, 15056, 15057, 15058, 15059, 15060, 15061, 15062, 15063, 15064, 15065, 15066, 15067, 15068, 15069, 15070, 15071, 15072, 15073, 15074, 15075, 15076, 15077, 15078, 15079, 15080, 15081, 15082, 15083, 15084, 15085, 15086, 15087, 15088, 15089, 15090, 15091, 15092, 15093, 15094, 15095, 15096, 15097, 15098, 15099, 15100, 15101, 15102, 15103, 15104, 15105, 15106, 15107, 15108, 15109, 15110, 15111, 15112, 15113, 15114, 15115, 15116, 15117, 15118, 15119, 15120, 15121, 15122, 15123, 15124, 15125, 15126, 15127, 15128, 15129, 15130, 15131, 15132, 15133, 15134, 15135, 15136, 15137, 15138, 15139, 15140, 15141, 15142, 15143, 15144, 15145, 15146, 15147, 15148, 15149, 15150, 15151, 15152, 15153, 15154, 15155, 15156, 15157, 15158, 15159, 15160, 15161, 15162, 15163, 15164, 15165, 15166, 15167, 15168, 15169, 15170, 15171, 15172, 15173, 15174, 15175, 15176, 15177, 15178, 15179, 15180, 15181, 15182, 15183, 15184, 15185, 15186, 15187, 15188, 15189, 15190, 15191, 15192, 15193, 15194, 15195, 15196, 15197, 15198, 15199, 15200, 15201, 15202, 15203, 15204, 15205, 15206, 15207, 15208, 15209, 15210, 15211, 15212, 15213, 15214, 15215, 15216, 15217, 15218, 15219, 15220, 15221, 15222, 15223, 15224, 15225, 15226, 15227, 15228, 15229, 15230, 15231, 15232, 15233, 15234, 15235, 15236, 15237, 15238, 15239, 15240, 15241, 15242, 15243, 15244, 15245, 15246, 15247, 15248, 15249, 15250, 15251, 15252, 15253, 15254, 15255, 15256, 15257, 15258, 15259, 15260, 15261, 15262, 15263, 15264, 15265, 15266, 15267, 15268, 15269, 15270, 15271, 15272, 15273, 15274, 15275, 15276, 15277, 15278, 15279, 15280, 15281, 15282, 15283, 15284, 15285, 15286, 15287, 15288, 15289, 15290, 15291, 15292, 15293, 15294, 15295, 15296, 15297, 15298, 15299, 15300, 15301, 15302, 15303, 15304, 15305, 15306, 15307, 15308, 15309, 15310, 15311, 15312, 15313, 15314, 15315, 15316, 15317, 15318, 15319, 15320, 15321, 15322, 15323, 15324, 15325, 15326, 15327, 15328, 15329, 15330, 15331, 15332, 15333, 15334, 15335, 15336, 15337, 15338, 15339, 15340, 15341, 15342, 15343, 15344, 15345, 15346, 15347, 15348, 15349, 15350, 15351, 15352, 15353, 15354, 15355, 15356, 15357, 15358, 15359, 15360, 15361, 15362, 15363, 15364, 15365, 15366, 15367, 15368, 15369, 15370, 15371, 15372, 15373, 15374, 15375, 15376, 15377, 15378, 15379, 15380, 15381, 15382, 15383, 15384, 15385, 15386, 15387, 15388, 15389, 15390, 15391, 15392, 15393, 15394, 15395, 15396, 15397, 15398, 15399, 15400, 15401, 15402, 15403, 15404, 15405, 15406, 15407, 15408, 15409, 15410, 15411, 15412, 15413, 15414, 15415, 15416, 15417, 15418, 15419, 15420, 15421, 15422, 15423, 15424, 15425, 15426, 15427, 15428, 15429, 15430, 15431, 15432, 15433, 15434, 15435, 15436, 15437, 15438, 15439, 15440, 15441, 15442, 15443, 15444, 15445, 15446, 15447, 15448, 15449, 15450, 15451, 15452, 15453, 15454, 15455, 15456, 15457, 15458, 15459, 15460, 15461, 15462, 15463, 15464, 15465, 15466, 15467, 15468, 15469, 15470, 15471, 15472, 15473, 15474, 15475, 15476, 15477, 15478, 15479, 15480, 15481, 15482, 15483, 15484, 15485, 15486, 15487, 15488, 15489, 15490, 15491, 15492, 15493, 15494, 15495, 15496, 15497, 15498, 15499, 15500, 15501, 15502, 15503, 15504, 15505, 15506, 15507, 15508, 15509, 15510, 15511, 15512, 15513, 15514, 15515, 15516, 15517, 15518, 15519, 15520, 15521, 15522, 15523, 15524, 15525, 15526, 15527, 15528, 15529, 15530, 15531, 15532, 15533, 15534, 15535, 15536, 15537, 15538, 15539, 15540, 15541, 15542, 15543, 15544, 15545, 15546, 15547, 15548, 15549, 15550, 15551, 15552, 15553, 15554, 15555, 15556, 15557, 15558, 15559, 15560, 15561, 15562, 15563, 15564, 15565, 15566, 15567, 15568, 15569, 15570, 15571, 15572, 15573, 15574, 15575, 15576, 15577, 15578, 15579, 15580, 15581, 15582, 15583, 15584, 15585, 15586, 15587, 15588, 15589, 15590, 15591, 15592, 15593, 15594, 15595, 15596, 15597, 15598, 15599, 15600, 15601, 15602, 15603, 15604, 15605, 15606, 15607, 15608, 15609, 15610, 15611, 15612, 15613, 15614, 15615, 15616, 15617, 15618, 15619, 15620, 15621, 15622, 15623, 15624, 15625, 15626, 15627, 15628, 15629, 15630, 15631, 15632, 15633, 15634, 15635, 15636, 15637, 15638, 15639, 15640, 15641, 15642, 15643, 15644, 15645, 15646, 15647, 15648, 15649, 15650, 15651, 15652, 15653, 15654, 15655, 15656, 15657, 15658, 15659, 15660, 15661, 15662, 15663, 15664, 15665, 15666, 15667, 15668, 15669, 15670, 15671, 15672, 15673, 15674, 15675, 15676, 15677, 15678, 15679, 15680, 15681, 15682, 15683, 15684, 15685, 15686, 15687, 15688, 15689, 15690, 15691, 15692, 15693, 15694, 15695, 15696, 15697, 15698, 15699, 15700, 15701, 15702, 15703, 15704, 15705, 15706, 15707, 15708, 15709, 15710, 15711, 15712, 15713, 15714, 15715, 15716, 15717, 15718, 15719, 15720, 15721, 15722, 15723, 15724, 15725, 15726, 15727, 15728, 15729, 15730, 15731, 15732, 15733, 15734, 15735, 15736, 15737, 15738, 15739, 15740, 15741, 15742, 15743, 15744, 15745, 15746, 15747, 15748, 15749, 15750, 15751, 15752, 15753, 15754, 15755, 15756, 15757, 15758, 15759, 15760, 15761, 15762, 15763, 15764, 15765, 15766, 15767, 15768, 15769, 15770, 15771, 15772, 15773, 15774, 15775, 15776, 15777, 15778, 15779, 15780, 15781, 15782, 15783, 15784, 15785, 15786, 15787, 15788, 15789, 15790, 15791, 15792, 15793, 15794, 15795, 15796, 15797, 15798, 15799, 15800, 15801, 15802, 15803, 15804, 15805, 15806, 15807, 15808, 15809, 15810, 15811, 15812, 15813, 15814, 15815, 15816, 15817, 15818, 15819, 15820, 15821, 15822, 15823, 15824, 15825, 15826, 15827, 15828, 15829, 15830, 15831, 15832, 15833, 15834, 15835, 15836, 15837, 15838, 15839, 15840, 15841, 15842, 15843, 15844, 15845, 15846, 15847, 15848, 15849, 15850, 15851, 15852, 15853, 15854, 15855, 15856, 15857, 15858, 15859, 15860, 15861, 15862, 15863, 15864, 15865, 15866, 15867, 15868, 15869, 15870, 15871, 15872, 15873, 15874, 15875, 15876, 15877, 15878, 15879, 15880, 15881, 15882, 15883, 15884, 15885, 15886, 15887, 15888, 15889, 15890, 15891, 15892, 15893, 15894, 15895, 15896, 15897, 15898, 15899, 15900, 15901, 15902, 15903, 15904, 15905, 15906, 15907, 15908, 15909, 15910, 15911, 15912, 15913, 15914, 15915, 15916, 15917, 15918, 15919, 15920, 15921, 15922, 15923, 15924, 15925, 15926, 15927, 15928, 15929, 15930, 15931, 15932, 15933, 15934, 15935, 15936, 15937, 15938, 15939, 15940, 15941, 15942, 15943, 15944, 15945, 15946, 15947, 15948, 15949, 15950, 15951, 15952, 15953, 15954, 15955, 15956, 15957, 15958, 15959, 15960, 15961, 15962, 15963, 15964, 15965, 15966, 15967, 15968, 15969, 15970, 15971, 15972, 15973, 15974, 15975, 15976, 15977, 15978, 15979, 15980, 15981, 15982, 15983, 15984, 15985, 15986, 15987, 15988, 15989, 15990, 15991, 15992, 15993, 15994, 15995, 15996, 15997, 15998, 15999, 16000, 16001, 16002, 16003, 16004, 16005, 16006, 16007, 16008, 16009, 16010, 16011, 16012, 16013, 16014, 16015, 16016, 16017, 16018, 16019, 16020, 16021, 16022, 16023, 16024, 16025, 16026, 16027, 16028, 16029, 16030, 16031, 16032, 16033, 16034, 16035, 16036, 16037, 16038, 16039, 16040, 16041, 16042, 16043, 16044, 16045, 16046, 16047, 16048, 16049, 16050, 16051, 16052, 16053, 16054, 16055, 16056, 16057, 16058, 16059, 16060, 16061, 16062, 16063, 16064, 16065, 16066, 16067, 16068, 16069, 16070, 16071, 16072, 16073, 16074, 16075, 16076, 16077, 16078, 16079, 16080, 16081, 16082, 16083, 16084, 16085, 16086, 16087, 16088, 16089, 16090, 16091, 16092, 16093, 16094, 16095, 16096, 16097, 16098, 16099, 16100, 16101, 16102, 16103, 16104, 16105, 16106, 16107, 16108, 16109, 16110, 16111, 16112, 16113, 16114, 16115, 16116, 16117, 16118, 16119, 16120, 16121, 16122, 16123, 16124, 16125, 16126, 16127, 16128, 16129, 16130, 16131, 16132, 16133, 16134, 16135, 16136, 16137, 16138, 16139, 16140, 16141, 16142, 16143, 16144, 16145, 16146, 16147, 16148, 16149, 16150, 16151, 16152, 16153, 16154, 16155, 16156, 16157, 16158, 16159, 16160, 16161, 16162, 16163, 16164, 16165, 16166, 16167, 16168, 16169, 16170, 16171, 16172, 16173, 16174, 16175, 16176, 16177, 16178, 16179, 16180, 16181, 16182, 16183, 16184, 16185, 16186, 16187, 16188, 16189, 16190, 16191, 16192, 16193, 16194, 16195, 16196, 16197, 16198, 16199, 16200, 16201, 16202, 16203, 16204, 16205, 16206, 16207, 16208, 16209, 16210, 16211, 16212, 16213, 16214, 16215, 16216, 16217, 16218, 16219, 16220, 16221, 16222, 16223, 16224, 16225, 16226, 16227, 16228, 16229, 16230, 16231, 16232, 16233, 16234, 16235, 16236, 16237, 16238, 16239, 16240, 16241, 16242, 16243, 16244, 16245, 16246, 16247, 16248, 16249, 16250, 16251, 16252, 16253, 16254, 16255, 16256, 16257, 16258, 16259, 16260, 16261, 16262, 16263, 16264, 16265, 16266, 16267, 16268, 16269, 16270, 16271, 16272, 16273, 16274, 16275, 16276, 16277, 16278, 16279, 16280, 16281, 16282, 16283, 16284, 16285, 16286, 16287, 16288, 16289, 16290, 16291, 16292, 16293, 16294, 16295, 16296, 16297, 16298, 16299, 16300, 16301, 16302, 16303, 16304, 16305, 16306, 16307, 16308, 16309, 16310, 16311, 16312, 16313, 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337, 16338, 16339, 16340, 16341, 16342, 16343, 16344, 16345, 16346, 16347, 16348, 16349, 16350, 16351, 16352, 16353, 16354, 16355, 16356, 16357, 16358, 16359, 16360, 16361, 16362, 16363, 16364, 16365, 16366, 16367, 16368, 16369, 16370, 16371, 16372, 16373, 16374, 16375, 16376, 16377, 16378, 16379, 16380, 16381, 16382, 16383, 16384, 16385, 16386, 16387, 16388, 16389, 16390, 16391, 16392, 16393, 16394, 16395, 16396, 16397, 16398, 16399, 16400, 16401, 16402, 16403, 16404, 16405, 16406, 16407, 16408, 16409, 16410, 16411, 16412, 16413, 16414, 16415, 16416, 16417, 16418, 16419, 16420, 16421, 16422, 16423, 16424, 16425, 16426, 16427, 16428, 16429, 16430, 16431, 16432, 16433, 16434, 16435, 16436, 16437, 16438, 16439, 16440, 16441, 16442, 16443, 16444, 16445, 16446, 16447, 16448, 16449, 16450, 16451, 16452, 16453, 16454, 16455, 16456, 16457, 16458, 16459, 16460, 16461, 16462, 16463, 16464, 16465, 16466, 16467, 16468, 16469, 16470, 16471, 16472, 16473, 16474, 16475, 16476, 16477, 16478, 16479, 16480, 16481, 16482, 16483, 16484, 16485, 16486, 16487, 16488, 16489, 16490, 16491, 16492, 16493, 16494, 16495, 16496, 16497, 16498, 16499, 16500, 16501, 16502, 16503, 16504, 16505, 16506, 16507, 16508, 16509, 16510, 16511, 16512, 16513, 16514, 16515, 16516, 16517, 16518, 16519, 16520, 16521, 16522, 16523, 16524, 16525, 16526, 16527, 16528, 16529, 16530, 16531, 16532, 16533, 16534, 16535, 16536, 16537, 16538, 16539, 16540, 16541, 16542, 16543, 16544, 16545, 16546, 16547, 16548, 16549, 16550, 16551, 16552, 16553, 16554, 16555, 16556, 16557, 16558, 16559, 16560, 16561, 16562, 16563, 16564, 16565, 16566, 16567, 16568, 16569, 16570, 16571, 16572, 16573, 16574, 16575, 16576, 16577, 16578, 16579, 16580, 16581, 16582, 16583, 16584, 16585, 16586, 16587, 16588, 16589, 16590, 16591, 16592, 16593, 16594, 16595, 16596, 16597, 16598, 16599, 16600, 16601, 16602, 16603, 16604, 16605, 16606, 16607, 16608, 16609, 16610, 16611, 16612, 16613, 16614, 16615, 16616, 16617, 16618, 16619, 16620, 16621, 16622, 16623, 16624, 16625, 16626, 16627, 16628, 16629, 16630, 16631, 16632, 16633, 16634, 16635, 16636, 16637, 16638, 16639, 16640, 16641, 16642, 16643, 16644, 16645, 16646, 16647, 16648, 16649, 16650, 16651, 16652, 16653, 16654, 16655, 16656, 16657, 16658, 16659, 16660, 16661, 16662, 16663, 16664, 16665, 16666, 16667, 16668, 16669, 16670, 16671, 16672, 16673, 16674, 16675, 16676, 16677, 16678, 16679, 16680, 16681, 16682, 16683, 16684, 16685, 16686, 16687, 16688, 16689, 16690, 16691, 16692, 16693, 16694, 16695, 16696, 16697, 16698, 16699, 16700, 16701, 16702, 16703, 16704, 16705, 16706, 16707, 16708, 16709, 16710, 16711, 16712, 16713, 16714, 16715, 16716, 16717, 16718, 16719, 16720, 16721, 16722, 16723, 16724, 16725, 16726, 16727, 16728, 16729, 16730, 16731, 16732, 16733, 16734, 16735, 16736, 16737, 16738, 16739, 16740, 16741, 16742, 16743, 16744, 16745, 16746, 16747, 16748, 16749, 16750, 16751, 16752, 16753, 16754, 16755, 16756, 16757, 16758, 16759, 16760, 16761, 16762, 16763, 16764, 16765, 16766, 16767, 16768, 16769, 16770, 16771, 16772, 16773, 16774, 16775, 16776, 16777, 16778, 16779, 16780, 16781, 16782, 16783, 16784, 16785, 16786, 16787, 16788, 16789, 16790, 16791, 16792, 16793, 16794, 16795, 16796, 16797, 16798, 16799, 16800, 16801, 16802, 16803, 16804, 16805, 16806, 16807, 16808, 16809, 16810, 16811, 16812, 16813, 16814, 16815, 16816, 16817, 16818, 16819, 16820, 16821, 16822, 16823, 16824, 16825, 16826, 16827, 16828, 16829, 16830, 16831, 16832, 16833, 16834, 16835, 16836, 16837, 16838, 16839, 16840, 16841, 16842, 16843, 16844, 16845, 16846, 16847, 16848, 16849, 16850, 16851, 16852, 16853, 16854, 16855, 16856, 16857, 16858, 16859, 16860, 16861, 16862, 16863, 16864, 16865, 16866, 16867, 16868, 16869, 16870, 16871, 16872, 16873, 16874, 16875, 16876, 16877, 16878, 16879, 16880, 16881, 16882, 16883, 16884, 16885, 16886, 16887, 16888, 16889, 16890, 16891, 16892, 16893, 16894, 16895, 16896, 16897, 16898, 16899, 16900, 16901, 16902, 16903, 16904, 16905, 16906, 16907, 16908, 16909, 16910, 16911, 16912, 16913, 16914, 16915, 16916, 16917, 16918, 16919, 16920, 16921, 16922, 16923, 16924, 16925, 16926, 16927, 16928, 16929, 16930, 16931, 16932, 16933, 16934, 16935, 16936, 16937, 16938, 16939, 16940, 16941, 16942, 16943, 16944, 16945, 16946, 16947, 16948, 16949, 16950, 16951, 16952, 16953, 16954, 16955, 16956, 16957, 16958, 16959, 16960, 16961, 16962, 16963, 16964, 16965, 16966, 16967, 16968, 16969, 16970, 16971, 16972, 16973, 16974, 16975, 16976, 16977, 16978, 16979, 16980, 16981, 16982, 16983, 16984, 16985, 16986, 16987, 16988, 16989, 16990, 16991, 16992, 16993, 16994, 16995, 16996, 16997, 16998, 16999, 17000, 17001, 17002, 17003, 17004, 17005, 17006, 17007, 17008, 17009, 17010, 17011, 17012, 17013, 17014, 17015, 17016, 17017, 17018, 17019, 17020, 17021, 17022, 17023, 17024, 17025, 17026, 17027, 17028, 17029, 17030, 17031, 17032, 17033, 17034, 17035, 17036, 17037, 17038, 17039, 17040, 17041, 17042, 17043, 17044, 17045, 17046, 17047, 17048, 17049, 17050, 17051, 17052, 17053, 17054, 17055, 17056, 17057, 17058, 17059, 17060, 17061, 17062, 17063, 17064, 17065, 17066, 17067, 17068, 17069, 17070, 17071, 17072, 17073, 17074, 17075, 17076, 17077, 17078, 17079, 17080, 17081, 17082, 17083, 17084, 17085, 17086, 17087, 17088, 17089, 17090, 17091, 17092, 17093, 17094, 17095, 17096, 17097, 17098, 17099, 17100, 17101, 17102, 17103, 17104, 17105, 17106, 17107, 17108, 17109, 17110, 17111, 17112, 17113, 17114, 17115, 17116, 17117, 17118, 17119, 17120, 17121, 17122, 17123, 17124, 17125, 17126, 17127, 17128, 17129, 17130, 17131, 17132, 17133, 17134, 17135, 17136, 17137, 17138, 17139, 17140, 17141, 17142, 17143, 17144, 17145, 17146, 17147, 17148, 17149, 17150, 17151, 17152, 17153, 17154, 17155, 17156, 17157, 17158, 17159, 17160, 17161, 17162, 17163, 17164, 17165, 17166, 17167, 17168, 17169, 17170, 17171, 17172, 17173, 17174, 17175, 17176, 17177, 17178, 17179, 17180, 17181, 17182, 17183, 17184, 17185, 17186, 17187, 17188, 17189, 17190, 17191, 17192, 17193, 17194, 17195, 17196, 17197, 17198, 17199, 17200, 17201, 17202, 17203, 17204, 17205, 17206, 17207, 17208, 17209, 17210, 17211, 17212, 17213, 17214, 17215, 17216, 17217, 17218, 17219, 17220, 17221, 17222, 17223, 17224, 17225, 17226, 17227, 17228, 17229, 17230, 17231, 17232, 17233, 17234, 17235, 17236, 17237, 17238, 17239, 17240, 17241, 17242, 17243, 17244, 17245, 17246, 17247, 17248, 17249, 17250, 17251, 17252, 17253, 17254, 17255, 17256, 17257, 17258, 17259, 17260, 17261, 17262, 17263, 17264, 17265, 17266, 17267, 17268, 17269, 17270, 17271, 17272, 17273, 17274, 17275, 17276, 17277, 17278, 17279, 17280, 17281, 17282, 17283, 17284, 17285, 17286, 17287, 17288, 17289, 17290, 17291, 17292, 17293, 17294, 17295, 17296, 17297, 17298, 17299, 17300, 17301, 17302, 17303, 17304, 17305, 17306, 17307, 17308, 17309, 17310, 17311, 17312, 17313, 17314, 17315, 17316, 17317, 17318, 17319, 17320, 17321, 17322, 17323, 17324, 17325, 17326, 17327, 17328, 17329, 17330, 17331, 17332, 17333, 17334, 17335, 17336, 17337, 17338, 17339, 17340, 17341, 17342, 17343, 17344, 17345, 17346, 17347, 17348, 17349, 17350, 17351, 17352, 17353, 17354, 17355, 17356, 17357, 17358, 17359, 17360, 17361, 17362, 17363, 17364, 17365, 17366, 17367, 17368, 17369, 17370, 17371, 17372, 17373, 17374, 17375, 17376, 17377, 17378, 17379, 17380, 17381, 17382, 17383, 17384, 17385, 17386, 17387, 17388, 17389, 17390, 17391, 17392, 17393, 17394, 17395, 17396, 17397, 17398, 17399, 17400, 17401, 17402, 17403, 17404, 17405, 17406, 17407, 17408, 17409, 17410, 17411, 17412, 17413, 17414, 17415, 17416, 17417, 17418, 17419, 17420, 17421, 17422, 17423, 17424, 17425, 17426, 17427, 17428, 17429, 17430, 17431, 17432, 17433, 17434, 17435, 17436, 17437, 17438, 17439, 17440, 17441, 17442, 17443, 17444, 17445, 17446, 17447, 17448, 17449, 17450, 17451, 17452, 17453, 17454, 17455, 17456, 17457, 17458, 17459, 17460, 17461, 17462, 17463, 17464, 17465, 17466, 17467, 17468, 17469, 17470, 17471, 17472, 17473, 17474, 17475, 17476, 17477, 17478, 17479, 17480, 17481, 17482, 17483, 17484, 17485, 17486, 17487, 17488, 17489, 17490, 17491, 17492, 17493, 17494, 17495, 17496, 17497, 17498, 17499, 17500, 17501, 17502, 17503, 17504, 17505, 17506, 17507, 17508, 17509, 17510, 17511, 17512, 17513, 17514, 17515, 17516, 17517, 17518, 17519, 17520, 17521, 17522, 17523, 17524, 17525, 17526, 17527, 17528, 17529, 17530, 17531, 17532, 17533, 17534, 17535, 17536, 17537, 17538, 17539, 17540, 17541, 17542, 17543, 17544, 17545, 17546, 17547, 17548, 17549, 17550, 17551, 17552, 17553, 17554, 17555, 17556, 17557, 17558, 17559, 17560, 17561, 17562, 17563, 17564, 17565, 17566, 17567, 17568, 17569, 17570, 17571, 17572, 17573, 17574, 17575, 17576, 17577, 17578, 17579, 17580, 17581, 17582, 17583, 17584, 17585, 17586, 17587, 17588, 17589, 17590, 17591, 17592, 17593, 17594, 17595, 17596, 17597, 17598, 17599, 17600, 17601, 17602, 17603, 17604, 17605, 17606, 17607, 17608, 17609, 17610, 17611, 17612, 17613, 17614, 17615, 17616, 17617, 17618, 17619, 17620, 17621, 17622, 17623, 17624, 17625, 17626, 17627, 17628, 17629, 17630, 17631, 17632, 17633, 17634, 17635, 17636, 17637, 17638, 17639, 17640, 17641, 17642, 17643, 17644, 17645, 17646, 17647, 17648, 17649, 17650, 17651, 17652, 17653, 17654, 17655, 17656, 17657, 17658, 17659, 17660, 17661, 17662, 17663, 17664, 17665, 17666, 17667, 17668, 17669, 17670, 17671, 17672, 17673, 17674, 17675, 17676, 17677, 17678, 17679, 17680, 17681, 17682, 17683, 17684, 17685, 17686, 17687, 17688, 17689, 17690, 17691, 17692, 17693, 17694, 17695, 17696, 17697, 17698, 17699, 17700, 17701, 17702, 17703, 17704, 17705, 17706, 17707, 17708, 17709, 17710, 17711, 17712, 17713, 17714, 17715, 17716, 17717, 17718, 17719, 17720, 17721, 17722, 17723, 17724, 17725, 17726, 17727, 17728, 17729, 17730, 17731, 17732, 17733, 17734, 17735, 17736, 17737, 17738, 17739, 17740, 17741, 17742, 17743, 17744, 17745, 17746, 17747, 17748, 17749, 17750, 17751, 17752, 17753, 17754, 17755, 17756, 17757, 17758, 17759, 17760, 17761, 17762, 17763, 17764, 17765, 17766, 17767, 17768, 17769, 17770, 17771, 17772, 17773, 17774, 17775, 17776, 17777, 17778, 17779, 17780, 17781, 17782, 17783, 17784, 17785, 17786, 17787, 17788, 17789, 17790, 17791, 17792, 17793, 17794, 17795, 17796, 17797, 17798, 17799, 17800, 17801, 17802, 17803, 17804, 17805, 17806, 17807, 17808, 17809, 17810, 17811, 17812, 17813, 17814, 17815, 17816, 17817, 17818, 17819, 17820, 17821, 17822, 17823, 17824, 17825, 17826, 17827, 17828, 17829, 17830, 17831, 17832, 17833, 17834, 17835, 17836, 17837, 17838, 17839, 17840, 17841, 17842, 17843, 17844, 17845, 17846, 17847, 17848, 17849, 17850, 17851, 17852, 17853, 17854, 17855, 17856, 17857, 17858, 17859, 17860, 17861, 17862, 17863, 17864, 17865, 17866, 17867, 17868, 17869, 17870, 17871, 17872, 17873, 17874, 17875, 17876, 17877, 17878, 17879, 17880, 17881, 17882, 17883, 17884, 17885, 17886, 17887, 17888, 17889, 17890, 17891, 17892, 17893, 17894, 17895, 17896, 17897, 17898, 17899, 17900, 17901, 17902, 17903, 17904, 17905, 17906, 17907, 17908, 17909, 17910, 17911, 17912, 17913, 17914, 17915, 17916, 17917, 17918, 17919, 17920, 17921, 17922, 17923, 17924, 17925, 17926, 17927, 17928, 17929, 17930, 17931, 17932, 17933, 17934, 17935, 17936, 17937, 17938, 17939, 17940, 17941, 17942, 17943, 17944, 17945, 17946, 17947, 17948, 17949, 17950, 17951, 17952, 17953, 17954, 17955, 17956, 17957, 17958, 17959, 17960, 17961, 17962, 17963, 17964, 17965, 17966, 17967, 17968, 17969, 17970, 17971, 17972, 17973, 17974, 17975, 17976, 17977, 17978, 17979, 17980, 17981, 17982, 17983, 17984, 17985, 17986, 17987, 17988, 17989, 17990, 17991, 17992, 17993, 17994, 17995, 17996, 17997, 17998, 17999, 18000, 18001, 18002, 18003, 18004, 18005, 18006, 18007, 18008, 18009, 18010, 18011, 18012, 18013, 18014, 18015, 18016, 18017, 18018, 18019, 18020, 18021, 18022, 18023, 18024, 18025, 18026, 18027, 18028, 18029, 18030, 18031, 18032, 18033, 18034, 18035, 18036, 18037, 18038, 18039, 18040, 18041, 18042, 18043, 18044, 18045, 18046, 18047, 18048, 18049, 18050, 18051, 18052, 18053, 18054, 18055, 18056, 18057, 18058, 18059, 18060, 18061, 18062, 18063, 18064, 18065, 18066, 18067, 18068, 18069, 18070, 18071, 18072, 18073, 18074, 18075, 18076, 18077, 18078, 18079, 18080, 18081, 18082, 18083, 18084, 18085, 18086, 18087, 18088, 18089, 18090, 18091, 18092, 18093, 18094, 18095, 18096, 18097, 18098, 18099, 18100, 18101, 18102, 18103, 18104, 18105, 18106, 18107, 18108, 18109, 18110, 18111, 18112, 18113, 18114, 18115, 18116, 18117, 18118, 18119, 18120, 18121, 18122, 18123, 18124, 18125, 18126, 18127, 18128, 18129, 18130, 18131, 18132, 18133, 18134, 18135, 18136, 18137, 18138, 18139, 18140, 18141, 18142, 18143, 18144, 18145, 18146, 18147, 18148, 18149, 18150, 18151, 18152, 18153, 18154, 18155, 18156, 18157, 18158, 18159, 18160, 18161, 18162, 18163, 18164, 18165, 18166, 18167, 18168, 18169, 18170, 18171, 18172, 18173, 18174, 18175, 18176, 18177, 18178, 18179, 18180, 18181, 18182, 18183, 18184, 18185, 18186, 18187, 18188, 18189, 18190, 18191, 18192, 18193, 18194, 18195, 18196, 18197, 18198, 18199, 18200, 18201, 18202, 18203, 18204, 18205, 18206, 18207, 18208, 18209, 18210, 18211, 18212, 18213, 18214, 18215, 18216, 18217, 18218, 18219, 18220, 18221, 18222, 18223, 18224, 18225, 18226, 18227, 18228, 18229, 18230, 18231, 18232, 18233, 18234, 18235, 18236, 18237, 18238, 18239, 18240, 18241, 18242, 18243, 18244, 18245, 18246, 18247, 18248, 18249, 18250, 18251, 18252, 18253, 18254, 18255, 18256, 18257, 18258, 18259, 18260, 18261, 18262, 18263, 18264, 18265, 18266, 18267, 18268, 18269, 18270, 18271, 18272, 18273, 18274, 18275, 18276, 18277, 18278, 18279, 18280, 18281, 18282, 18283, 18284, 18285, 18286, 18287, 18288, 18289, 18290, 18291, 18292, 18293, 18294, 18295, 18296, 18297, 18298, 18299, 18300, 18301, 18302, 18303, 18304, 18305, 18306, 18307, 18308, 18309, 18310, 18311, 18312, 18313, 18314, 18315, 18316, 18317, 18318, 18319, 18320, 18321, 18322, 18323, 18324, 18325, 18326, 18327, 18328, 18329, 18330, 18331, 18332, 18333, 18334, 18335, 18336, 18337, 18338, 18339, 18340, 18341, 18342, 18343, 18344, 18345, 18346, 18347, 18348, 18349, 18350, 18351, 18352, 18353, 18354, 18355, 18356, 18357, 18358, 18359, 18360, 18361, 18362, 18363, 18364, 18365, 18366, 18367, 18368, 18369, 18370, 18371, 18372, 18373, 18374, 18375, 18376, 18377, 18378, 18379, 18380, 18381, 18382, 18383, 18384, 18385, 18386, 18387, 18388, 18389, 18390, 18391, 18392, 18393, 18394, 18395, 18396, 18397, 18398, 18399, 18400, 18401, 18402, 18403, 18404, 18405, 18406, 18407, 18408, 18409, 18410, 18411, 18412, 18413, 18414, 18415, 18416, 18417, 18418, 18419, 18420, 18421, 18422, 18423, 18424, 18425, 18426, 18427, 18428, 18429, 18430, 18431, 18432, 18433, 18434, 18435, 18436, 18437, 18438, 18439, 18440, 18441, 18442, 18443, 18444, 18445, 18446, 18447, 18448, 18449, 18450, 18451, 18452, 18453, 18454, 18455, 18456, 18457, 18458, 18459, 18460, 18461, 18462, 18463, 18464, 18465, 18466, 18467, 18468, 18469, 18470, 18471, 18472, 18473, 18474, 18475, 18476, 18477, 18478, 18479, 18480, 18481, 18482, 18483, 18484, 18485, 18486, 18487, 18488, 18489, 18490, 18491, 18492, 18493, 18494, 18495, 18496, 18497, 18498, 18499, 18500, 18501, 18502, 18503, 18504, 18505, 18506, 18507, 18508, 18509, 18510, 18511, 18512, 18513, 18514, 18515, 18516, 18517, 18518, 18519, 18520, 18521, 18522, 18523, 18524, 18525, 18526, 18527, 18528, 18529, 18530, 18531, 18532, 18533, 18534, 18535, 18536, 18537, 18538, 18539, 18540, 18541, 18542, 18543, 18544, 18545, 18546, 18547, 18548, 18549, 18550, 18551, 18552, 18553, 18554, 18555, 18556, 18557, 18558, 18559, 18560, 18561, 18562, 18563, 18564, 18565, 18566, 18567, 18568, 18569, 18570, 18571, 18572, 18573, 18574, 18575, 18576, 18577, 18578, 18579, 18580, 18581, 18582, 18583, 18584, 18585, 18586, 18587, 18588, 18589, 18590, 18591, 18592, 18593, 18594, 18595, 18596, 18597, 18598, 18599, 18600, 18601, 18602, 18603, 18604, 18605, 18606, 18607, 18608, 18609, 18610, 18611, 18612, 18613, 18614, 18615, 18616, 18617, 18618, 18619, 18620, 18621, 18622, 18623, 18624, 18625, 18626, 18627, 18628, 18629, 18630, 18631, 18632, 18633, 18634, 18635, 18636, 18637, 18638, 18639, 18640, 18641, 18642, 18643, 18644, 18645, 18646, 18647, 18648, 18649, 18650, 18651, 18652, 18653, 18654, 18655, 18656, 18657, 18658, 18659, 18660, 18661, 18662, 18663, 18664, 18665, 18666, 18667, 18668, 18669, 18670, 18671, 18672, 18673, 18674, 18675, 18676, 18677, 18678, 18679, 18680, 18681, 18682, 18683, 18684, 18685, 18686, 18687, 18688, 18689, 18690, 18691, 18692, 18693, 18694, 18695, 18696, 18697, 18698, 18699, 18700, 18701, 18702, 18703, 18704, 18705, 18706, 18707, 18708, 18709, 18710, 18711, 18712, 18713, 18714, 18715, 18716, 18717, 18718, 18719, 18720, 18721, 18722, 18723, 18724, 18725, 18726, 18727, 18728, 18729, 18730, 18731, 18732, 18733, 18734, 18735, 18736, 18737, 18738, 18739, 18740, 18741, 18742, 18743, 18744, 18745, 18746, 18747, 18748, 18749, 18750, 18751, 18752, 18753, 18754, 18755, 18756, 18757, 18758, 18759, 18760, 18761, 18762, 18763, 18764, 18765, 18766, 18767, 18768, 18769, 18770, 18771, 18772, 18773, 18774, 18775, 18776, 18777, 18778, 18779, 18780, 18781, 18782, 18783, 18784, 18785, 18786, 18787, 18788, 18789, 18790, 18791, 18792, 18793, 18794, 18795, 18796, 18797, 18798, 18799, 18800, 18801, 18802, 18803, 18804, 18805, 18806, 18807, 18808, 18809, 18810, 18811, 18812, 18813, 18814, 18815, 18816, 18817, 18818, 18819, 18820, 18821, 18822, 18823, 18824, 18825, 18826, 18827, 18828, 18829, 18830, 18831, 18832, 18833, 18834, 18835, 18836, 18837, 18838, 18839, 18840, 18841, 18842, 18843, 18844, 18845, 18846, 18847, 18848, 18849, 18850, 18851, 18852, 18853, 18854, 18855, 18856, 18857, 18858, 18859, 18860, 18861, 18862, 18863, 18864, 18865, 18866, 18867, 18868, 18869, 18870, 18871, 18872, 18873, 18874, 18875, 18876, 18877, 18878, 18879, 18880, 18881, 18882, 18883, 18884, 18885, 18886, 18887, 18888, 18889, 18890, 18891, 18892, 18893, 18894, 18895, 18896, 18897, 18898, 18899, 18900, 18901, 18902, 18903, 18904, 18905, 18906, 18907, 18908, 18909, 18910, 18911, 18912, 18913, 18914, 18915, 18916, 18917, 18918, 18919, 18920, 18921, 18922, 18923, 18924, 18925, 18926, 18927, 18928, 18929, 18930, 18931, 18932, 18933, 18934, 18935, 18936, 18937, 18938, 18939, 18940, 18941, 18942, 18943, 18944, 18945, 18946, 18947, 18948, 18949, 18950, 18951, 18952, 18953, 18954, 18955, 18956, 18957, 18958, 18959, 18960, 18961, 18962, 18963, 18964, 18965, 18966, 18967, 18968, 18969, 18970, 18971, 18972, 18973, 18974, 18975, 18976, 18977, 18978, 18979, 18980, 18981, 18982, 18983, 18984, 18985, 18986, 18987, 18988, 18989, 18990, 18991, 18992, 18993, 18994, 18995, 18996, 18997, 18998, 18999, 19000, 19001, 19002, 19003, 19004, 19005, 19006, 19007, 19008, 19009, 19010, 19011, 19012, 19013, 19014, 19015, 19016, 19017, 19018, 19019, 19020, 19021, 19022, 19023, 19024, 19025, 19026, 19027, 19028, 19029, 19030, 19031, 19032, 19033, 19034, 19035, 19036, 19037, 19038, 19039, 19040, 19041, 19042, 19043, 19044, 19045, 19046, 19047, 19048, 19049, 19050, 19051, 19052, 19053, 19054, 19055, 19056, 19057, 19058, 19059, 19060, 19061, 19062, 19063, 19064, 19065, 19066, 19067, 19068, 19069, 19070, 19071, 19072, 19073, 19074, 19075, 19076, 19077, 19078, 19079, 19080, 19081, 19082, 19083, 19084, 19085, 19086, 19087, 19088, 19089, 19090, 19091, 19092, 19093, 19094, 19095, 19096, 19097, 19098, 19099, 19100, 19101, 19102, 19103, 19104, 19105, 19106, 19107, 19108, 19109, 19110, 19111, 19112, 19113, 19114, 19115, 19116, 19117, 19118, 19119, 19120, 19121, 19122, 19123, 19124, 19125, 19126, 19127, 19128, 19129, 19130, 19131, 19132, 19133, 19134, 19135, 19136, 19137, 19138, 19139, 19140, 19141, 19142, 19143, 19144, 19145, 19146, 19147, 19148, 19149, 19150, 19151, 19152, 19153, 19154, 19155, 19156, 19157, 19158, 19159, 19160, 19161, 19162, 19163, 19164, 19165, 19166, 19167, 19168, 19169, 19170, 19171, 19172, 19173, 19174, 19175, 19176, 19177, 19178, 19179, 19180, 19181, 19182, 19183, 19184, 19185, 19186, 19187, 19188, 19189, 19190, 19191, 19192, 19193, 19194, 19195, 19196, 19197, 19198, 19199, 19200, 19201, 19202, 19203, 19204, 19205, 19206, 19207, 19208, 19209, 19210, 19211, 19212, 19213, 19214, 19215, 19216, 19217, 19218, 19219, 19220, 19221, 19222, 19223, 19224, 19225, 19226, 19227, 19228, 19229, 19230, 19231, 19232, 19233, 19234, 19235, 19236, 19237, 19238, 19239, 19240, 19241, 19242, 19243, 19244, 19245, 19246, 19247, 19248, 19249, 19250, 19251, 19252, 19253, 19254, 19255, 19256, 19257, 19258, 19259, 19260, 19261, 19262, 19263, 19264, 19265, 19266, 19267, 19268, 19269, 19270, 19271, 19272, 19273, 19274, 19275, 19276, 19277, 19278, 19279, 19280, 19281, 19282, 19283, 19284, 19285, 19286, 19287, 19288, 19289, 19290, 19291, 19292, 19293, 19294, 19295, 19296, 19297, 19298, 19299, 19300, 19301, 19302, 19303, 19304, 19305, 19306, 19307, 19308, 19309, 19310, 19311, 19312, 19313, 19314, 19315, 19316, 19317, 19318, 19319, 19320, 19321, 19322, 19323, 19324, 19325, 19326, 19327, 19328, 19329, 19330, 19331, 19332, 19333, 19334, 19335, 19336, 19337, 19338, 19339, 19340, 19341, 19342, 19343, 19344, 19345, 19346, 19347, 19348, 19349, 19350, 19351, 19352, 19353, 19354, 19355, 19356, 19357, 19358, 19359, 19360, 19361, 19362, 19363, 19364, 19365, 19366, 19367, 19368, 19369, 19370, 19371, 19372, 19373, 19374, 19375, 19376, 19377, 19378, 19379, 19380, 19381, 19382, 19383, 19384, 19385, 19386, 19387, 19388, 19389, 19390, 19391, 19392, 19393, 19394, 19395, 19396, 19397, 19398, 19399, 19400, 19401, 19402, 19403, 19404, 19405, 19406, 19407, 19408, 19409, 19410, 19411, 19412, 19413, 19414, 19415, 19416, 19417, 19418, 19419, 19420, 19421, 19422, 19423, 19424, 19425, 19426, 19427, 19428, 19429, 19430, 19431, 19432, 19433, 19434, 19435, 19436, 19437, 19438, 19439, 19440, 19441, 19442, 19443, 19444, 19445, 19446, 19447, 19448, 19449, 19450, 19451, 19452, 19453, 19454, 19455, 19456, 19457, 19458, 19459, 19460, 19461, 19462, 19463, 19464, 19465, 19466, 19467, 19468, 19469, 19470, 19471, 19472, 19473, 19474, 19475, 19476, 19477, 19478, 19479, 19480, 19481, 19482, 19483, 19484, 19485, 19486, 19487, 19488, 19489, 19490, 19491, 19492, 19493, 19494, 19495, 19496, 19497, 19498, 19499, 19500, 19501, 19502, 19503, 19504, 19505, 19506, 19507, 19508, 19509, 19510, 19511, 19512, 19513, 19514, 19515, 19516, 19517, 19518, 19519, 19520, 19521, 19522, 19523, 19524, 19525, 19526, 19527, 19528, 19529, 19530, 19531, 19532, 19533, 19534, 19535, 19536, 19537, 19538, 19539, 19540, 19541, 19542, 19543, 19544, 19545, 19546, 19547, 19548, 19549, 19550, 19551, 19552, 19553, 19554, 19555, 19556, 19557, 19558, 19559, 19560, 19561, 19562, 19563, 19564, 19565, 19566, 19567, 19568, 19569, 19570, 19571, 19572, 19573, 19574, 19575, 19576, 19577, 19578, 19579, 19580, 19581, 19582, 19583, 19584, 19585, 19586, 19587, 19588, 19589, 19590, 19591, 19592, 19593, 19594, 19595, 19596, 19597, 19598, 19599, 19600, 19601, 19602, 19603, 19604, 19605, 19606, 19607, 19608, 19609, 19610, 19611, 19612, 19613, 19614, 19615, 19616, 19617, 19618, 19619, 19620, 19621, 19622, 19623, 19624, 19625, 19626, 19627, 19628, 19629, 19630, 19631, 19632, 19633, 19634, 19635, 19636, 19637, 19638, 19639, 19640, 19641, 19642, 19643, 19644, 19645, 19646, 19647, 19648, 19649, 19650, 19651, 19652, 19653, 19654, 19655, 19656, 19657, 19658, 19659, 19660, 19661, 19662, 19663, 19664, 19665, 19666, 19667, 19668, 19669, 19670, 19671, 19672, 19673, 19674, 19675, 19676, 19677, 19678, 19679, 19680, 19681, 19682, 19683, 19684, 19685, 19686, 19687, 19688, 19689, 19690, 19691, 19692, 19693, 19694, 19695, 19696, 19697, 19698, 19699, 19700, 19701, 19702, 19703, 19704, 19705, 19706, 19707, 19708, 19709, 19710, 19711, 19712, 19713, 19714, 19715, 19716, 19717, 19718, 19719, 19720, 19721, 19722, 19723, 19724, 19725, 19726, 19727, 19728, 19729, 19730, 19731, 19732, 19733, 19734, 19735, 19736, 19737, 19738, 19739, 19740, 19741, 19742, 19743, 19744, 19745, 19746, 19747, 19748, 19749, 19750, 19751, 19752, 19753, 19754, 19755, 19756, 19757, 19758, 19759, 19760, 19761, 19762, 19763, 19764, 19765, 19766, 19767, 19768, 19769, 19770, 19771, 19772, 19773, 19774, 19775, 19776, 19777, 19778, 19779, 19780, 19781, 19782, 19783, 19784, 19785, 19786, 19787, 19788, 19789, 19790, 19791, 19792, 19793, 19794, 19795, 19796, 19797, 19798, 19799, 19800, 19801, 19802, 19803, 19804, 19805, 19806, 19807, 19808, 19809, 19810, 19811, 19812, 19813, 19814, 19815, 19816, 19817, 19818, 19819, 19820, 19821, 19822, 19823, 19824, 19825, 19826, 19827, 19828, 19829, 19830, 19831, 19832, 19833, 19834, 19835, 19836, 19837, 19838, 19839, 19840, 19841, 19842, 19843, 19844, 19845, 19846, 19847, 19848, 19849, 19850, 19851, 19852, 19853, 19854, 19855, 19856, 19857, 19858, 19859, 19860, 19861, 19862, 19863, 19864, 19865, 19866, 19867, 19868, 19869, 19870, 19871, 19872, 19873, 19874, 19875, 19876, 19877, 19878, 19879, 19880, 19881, 19882, 19883, 19884, 19885, 19886, 19887, 19888, 19889, 19890, 19891, 19892, 19893, 19894, 19895, 19896, 19897, 19898, 19899, 19900, 19901, 19902, 19903, 19904, 19905, 19906, 19907, 19908, 19909, 19910, 19911, 19912, 19913, 19914, 19915, 19916, 19917, 19918, 19919, 19920, 19921, 19922, 19923, 19924, 19925, 19926, 19927, 19928, 19929, 19930, 19931, 19932, 19933, 19934, 19935, 19936, 19937, 19938, 19939, 19940, 19941, 19942, 19943, 19944, 19945, 19946, 19947, 19948, 19949, 19950, 19951, 19952, 19953, 19954, 19955, 19956, 19957, 19958, 19959, 19960, 19961, 19962, 19963, 19964, 19965, 19966, 19967, 19968, 19969, 19970, 19971, 19972, 19973, 19974, 19975, 19976, 19977, 19978, 19979, 19980, 19981, 19982, 19983, 19984, 19985, 19986, 19987, 19988, 19989, 19990, 19991, 19992, 19993, 19994, 19995, 19996, 19997, 19998, 19999, 20000, 20001, 20002, 20003, 20004, 20005, 20006, 20007, 20008, 20009, 20010, 20011, 20012, 20013, 20014, 20015, 20016, 20017, 20018, 20019, 20020, 20021, 20022, 20023, 20024, 20025, 20026, 20027, 20028, 20029, 20030, 20031, 20032, 20033, 20034, 20035, 20036, 20037, 20038, 20039, 20040, 20041, 20042, 20043, 20044, 20045, 20046, 20047, 20048, 20049, 20050, 20051, 20052, 20053, 20054, 20055, 20056, 20057, 20058, 20059, 20060, 20061, 20062, 20063, 20064, 20065, 20066, 20067, 20068, 20069, 20070, 20071, 20072, 20073, 20074, 20075, 20076, 20077, 20078, 20079, 20080, 20081, 20082, 20083, 20084, 20085, 20086, 20087, 20088, 20089, 20090, 20091, 20092, 20093, 20094, 20095, 20096, 20097, 20098, 20099, 20100, 20101, 20102, 20103, 20104, 20105, 20106, 20107, 20108, 20109, 20110, 20111, 20112, 20113, 20114, 20115, 20116, 20117, 20118, 20119, 20120, 20121, 20122, 20123, 20124, 20125, 20126, 20127, 20128, 20129, 20130, 20131, 20132, 20133, 20134, 20135, 20136, 20137, 20138, 20139, 20140, 20141, 20142, 20143, 20144, 20145, 20146, 20147, 20148, 20149, 20150, 20151, 20152, 20153, 20154, 20155, 20156, 20157, 20158, 20159, 20160, 20161, 20162, 20163, 20164, 20165, 20166, 20167, 20168, 20169, 20170, 20171, 20172, 20173, 20174, 20175, 20176, 20177, 20178, 20179, 20180, 20181, 20182, 20183, 20184, 20185, 20186, 20187, 20188, 20189, 20190, 20191, 20192, 20193, 20194, 20195, 20196, 20197, 20198, 20199, 20200, 20201, 20202, 20203, 20204, 20205, 20206, 20207, 20208, 20209, 20210, 20211, 20212, 20213, 20214, 20215, 20216, 20217, 20218, 20219, 20220, 20221, 20222, 20223, 20224, 20225, 20226, 20227, 20228, 20229, 20230, 20231, 20232, 20233, 20234, 20235, 20236, 20237, 20238, 20239, 20240, 20241, 20242, 20243, 20244, 20245, 20246, 20247, 20248, 20249, 20250, 20251, 20252, 20253, 20254, 20255, 20256, 20257, 20258, 20259, 20260, 20261, 20262, 20263, 20264, 20265, 20266, 20267, 20268, 20269, 20270, 20271, 20272, 20273, 20274, 20275, 20276, 20277, 20278, 20279, 20280, 20281, 20282, 20283, 20284, 20285, 20286, 20287, 20288, 20289, 20290, 20291, 20292, 20293, 20294, 20295, 20296, 20297, 20298, 20299, 20300, 20301, 20302, 20303, 20304, 20305, 20306, 20307, 20308, 20309, 20310, 20311, 20312, 20313, 20314, 20315, 20316, 20317, 20318, 20319, 20320, 20321, 20322, 20323, 20324, 20325, 20326, 20327, 20328, 20329, 20330, 20331, 20332, 20333, 20334, 20335, 20336, 20337, 20338, 20339, 20340, 20341, 20342, 20343, 20344, 20345, 20346, 20347, 20348, 20349, 20350, 20351, 20352, 20353, 20354, 20355, 20356, 20357, 20358, 20359, 20360, 20361, 20362, 20363, 20364, 20365, 20366, 20367, 20368, 20369, 20370, 20371, 20372, 20373, 20374, 20375, 20376, 20377, 20378, 20379, 20380, 20381, 20382, 20383, 20384, 20385, 20386, 20387, 20388, 20389, 20390, 20391, 20392, 20393, 20394, 20395, 20396, 20397, 20398, 20399, 20400, 20401, 20402, 20403, 20404, 20405, 20406, 20407, 20408, 20409, 20410, 20411, 20412, 20413, 20414, 20415, 20416, 20417, 20418, 20419, 20420, 20421, 20422, 20423, 20424, 20425, 20426, 20427, 20428, 20429, 20430, 20431, 20432, 20433, 20434, 20435, 20436, 20437, 20438, 20439, 20440, 20441, 20442, 20443, 20444, 20445, 20446, 20447, 20448, 20449, 20450, 20451, 20452, 20453, 20454, 20455, 20456, 20457, 20458, 20459, 20460, 20461, 20462, 20463, 20464, 20465, 20466, 20467, 20468, 20469, 20470, 20471, 20472, 20473, 20474, 20475, 20476, 20477, 20478, 20479, 20480, 20481, 20482, 20483, 20484, 20485, 20486, 20487, 20488, 20489, 20490, 20491, 20492, 20493, 20494, 20495, 20496, 20497, 20498, 20499, 20500, 20501, 20502, 20503, 20504, 20505, 20506, 20507, 20508, 20509, 20510, 20511, 20512, 20513, 20514, 20515, 20516, 20517, 20518, 20519, 20520, 20521, 20522, 20523, 20524, 20525, 20526, 20527, 20528, 20529, 20530, 20531, 20532, 20533, 20534, 20535, 20536, 20537, 20538, 20539, 20540, 20541, 20542, 20543, 20544, 20545, 20546, 20547, 20548, 20549, 20550, 20551, 20552, 20553, 20554, 20555, 20556, 20557, 20558, 20559, 20560, 20561, 20562, 20563, 20564, 20565, 20566, 20567, 20568, 20569, 20570, 20571, 20572, 20573, 20574, 20575, 20576, 20577, 20578, 20579, 20580, 20581, 20582, 20583, 20584, 20585, 20586, 20587, 20588, 20589, 20590, 20591, 20592, 20593, 20594, 20595, 20596, 20597, 20598, 20599, 20600, 20601, 20602, 20603, 20604, 20605, 20606, 20607, 20608, 20609, 20610, 20611, 20612, 20613, 20614, 20615, 20616, 20617, 20618, 20619, 20620, 20621, 20622, 20623, 20624, 20625, 20626, 20627, 20628, 20629, 20630, 20631, 20632, 20633, 20634, 20635, 20636, 20637, 20638, 20639, 20640, 20641, 20642, 20643, 20644, 20645, 20646, 20647, 20648, 20649, 20650, 20651, 20652, 20653, 20654, 20655, 20656, 20657, 20658, 20659, 20660, 20661, 20662, 20663, 20664, 20665, 20666, 20667, 20668, 20669, 20670, 20671, 20672, 20673, 20674, 20675, 20676, 20677, 20678, 20679, 20680, 20681, 20682, 20683, 20684, 20685, 20686, 20687, 20688, 20689, 20690, 20691, 20692, 20693, 20694, 20695, 20696, 20697, 20698, 20699, 20700, 20701, 20702, 20703, 20704, 20705, 20706, 20707, 20708, 20709, 20710, 20711, 20712, 20713, 20714, 20715, 20716, 20717, 20718, 20719, 20720, 20721, 20722, 20723, 20724, 20725, 20726, 20727, 20728, 20729, 20730, 20731, 20732, 20733, 20734, 20735, 20736, 20737, 20738, 20739, 20740, 20741, 20742, 20743, 20744, 20745, 20746, 20747, 20748, 20749, 20750, 20751, 20752, 20753, 20754, 20755, 20756, 20757, 20758, 20759, 20760, 20761, 20762, 20763, 20764, 20765, 20766, 20767, 20768, 20769, 20770, 20771, 20772, 20773, 20774, 20775, 20776, 20777, 20778, 20779, 20780, 20781, 20782, 20783, 20784, 20785, 20786, 20787, 20788, 20789, 20790, 20791, 20792, 20793, 20794, 20795, 20796, 20797, 20798, 20799, 20800, 20801, 20802, 20803, 20804, 20805, 20806, 20807, 20808, 20809, 20810, 20811, 20812, 20813, 20814, 20815, 20816, 20817, 20818, 20819, 20820, 20821, 20822, 20823, 20824, 20825, 20826, 20827, 20828, 20829, 20830, 20831, 20832, 20833, 20834, 20835, 20836, 20837, 20838, 20839, 20840, 20841, 20842, 20843, 20844, 20845, 20846, 20847, 20848, 20849, 20850, 20851, 20852, 20853, 20854, 20855, 20856, 20857, 20858, 20859, 20860, 20861, 20862, 20863, 20864, 20865, 20866, 20867, 20868, 20869, 20870, 20871, 20872, 20873, 20874, 20875, 20876, 20877, 20878, 20879, 20880, 20881, 20882, 20883, 20884, 20885, 20886, 20887, 20888, 20889, 20890, 20891, 20892, 20893, 20894, 20895, 20896, 20897, 20898, 20899, 20900, 20901, 20902, 20903, 20904, 20905, 20906, 20907, 20908, 20909, 20910, 20911, 20912, 20913, 20914, 20915, 20916, 20917, 20918, 20919, 20920, 20921, 20922, 20923, 20924, 20925, 20926, 20927, 20928, 20929, 20930, 20931, 20932, 20933, 20934, 20935, 20936, 20937, 20938, 20939, 20940, 20941, 20942, 20943, 20944, 20945, 20946, 20947, 20948, 20949, 20950, 20951, 20952, 20953, 20954, 20955, 20956, 20957, 20958, 20959, 20960, 20961, 20962, 20963, 20964, 20965, 20966, 20967, 20968, 20969, 20970, 20971, 20972, 20973, 20974, 20975, 20976, 20977, 20978, 20979, 20980, 20981, 20982, 20983, 20984, 20985, 20986, 20987, 20988, 20989, 20990, 20991, 20992, 20993, 20994, 20995, 20996, 20997, 20998, 20999, 21000, 21001, 21002, 21003, 21004, 21005, 21006, 21007, 21008, 21009, 21010, 21011, 21012, 21013, 21014, 21015, 21016, 21017, 21018, 21019, 21020, 21021, 21022, 21023, 21024, 21025, 21026, 21027, 21028, 21029, 21030, 21031, 21032, 21033, 21034, 21035, 21036, 21037, 21038, 21039, 21040, 21041, 21042, 21043, 21044, 21045, 21046, 21047, 21048, 21049, 21050, 21051, 21052, 21053, 21054, 21055, 21056, 21057, 21058, 21059, 21060, 21061, 21062, 21063, 21064, 21065, 21066, 21067, 21068, 21069, 21070, 21071, 21072, 21073, 21074, 21075, 21076, 21077, 21078, 21079, 21080, 21081, 21082, 21083, 21084, 21085, 21086, 21087, 21088, 21089, 21090, 21091, 21092, 21093, 21094, 21095, 21096, 21097, 21098, 21099, 21100, 21101, 21102, 21103, 21104, 21105, 21106, 21107, 21108, 21109, 21110, 21111, 21112, 21113, 21114, 21115, 21116, 21117, 21118, 21119, 21120, 21121, 21122, 21123, 21124, 21125, 21126, 21127, 21128, 21129, 21130, 21131, 21132, 21133, 21134, 21135, 21136, 21137, 21138, 21139, 21140, 21141, 21142, 21143, 21144, 21145, 21146, 21147, 21148, 21149, 21150, 21151, 21152, 21153, 21154, 21155, 21156, 21157, 21158, 21159}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/concat_float_3.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/concat_float_3.example.cpp
new file mode 100644
index 000000000..1ce697b8e
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/concat_float_3.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: concat_float_3.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020, 5021, 5022, 5023, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033, 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055, 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5063, 5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082, 5083, 5084, 5085, 5086, 5087, 5088, 5089, 5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097, 5098, 5099, 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108, 5109, 5110, 5111, 5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121, 5122, 5123, 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5159, 5160, 5161, 5162, 5163, 5164, 5165, 5166, 5167, 5168, 5169, 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177, 5178, 5179, 5180, 5181, 5182, 5183, 5184, 5185, 5186, 5187, 5188, 5189, 5190, 5191, 5192, 5193, 5194, 5195, 5196, 5197, 5198, 5199, 5200, 5201, 5202, 5203, 5204, 5205, 5206, 5207, 5208, 5209, 5210, 5211, 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219, 5220, 5221, 5222, 5223, 5224, 5225, 5226, 5227, 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235, 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243, 5244, 5245, 5246, 5247, 5248, 5249, 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265, 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277, 5278, 5279, 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287, 5288, 5289, 5290, 5291, 5292, 5293, 5294, 5295, 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303, 5304, 5305, 5306, 5307, 5308, 5309, 5310, 5311, 5312, 5313, 5314, 5315, 5316, 5317, 5318, 5319, 5320, 5321, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5347, 5348, 5349, 5350, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5403, 5404, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5415, 5416, 5417, 5418, 5419, 5420, 5421, 5422, 5423, 5424, 5425, 5426, 5427, 5428, 5429, 5430, 5431, 5432, 5433, 5434, 5435, 5436, 5437, 5438, 5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447, 5448, 5449, 5450, 5451, 5452, 5453, 5454, 5455, 5456, 5457, 5458, 5459, 5460, 5461, 5462, 5463, 5464, 5465, 5466, 5467, 5468, 5469, 5470, 5471, 5472, 5473, 5474, 5475, 5476, 5477, 5478, 5479, 5480, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489, 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505, 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 5515, 5516, 5517, 5518, 5519, 5520, 5521, 5522, 5523, 5524, 5525, 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534, 5535, 5536, 5537, 5538, 5539, 5540, 5541, 5542, 5543, 5544, 5545, 5546, 5547, 5548, 5549, 5550, 5551, 5552, 5553, 5554, 5555, 5556, 5557, 5558, 5559, 5560, 5561, 5562, 5563, 5564, 5565, 5566, 5567, 5568, 5569, 5570, 5571, 5572, 5573, 5574, 5575, 5576, 5577, 5578, 5579, 5580, 5581, 5582, 5583, 5584, 5585, 5586, 5587, 5588, 5589, 5590, 5591, 5592, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, 5606, 5607, 5608, 5609, 5610, 5611, 5612, 5613, 5614, 5615, 5616, 5617, 5618, 5619, 5620, 5621, 5622, 5623, 5624, 5625, 5626, 5627, 5628, 5629, 5630, 5631, 5632, 5633, 5634, 5635, 5636, 5637, 5638, 5639, 5640, 5641, 5642, 5643, 5644, 5645, 5646, 5647, 5648, 5649, 5650, 5651, 5652, 5653, 5654, 5655, 5656, 5657, 5658, 5659, 5660, 5661, 5662, 5663, 5664, 5665, 5666, 5667, 5668, 5669, 5670, 5671, 5672, 5673, 5674, 5675, 5676, 5677, 5678, 5679, 5680, 5681, 5682, 5683, 5684, 5685, 5686, 5687, 5688, 5689, 5690, 5691, 5692, 5693, 5694, 5695, 5696, 5697, 5698, 5699, 5700, 5701, 5702, 5703, 5704, 5705, 5706, 5707, 5708, 5709, 5710, 5711, 5712, 5713, 5714, 5715, 5716, 5717, 5718, 5719, 5720, 5721, 5722, 5723, 5724, 5725, 5726, 5727, 5728, 5729, 5730, 5731, 5732, 5733, 5734, 5735, 5736, 5737, 5738, 5739, 5740, 5741, 5742, 5743, 5744, 5745, 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, 5754, 5755, 5756, 5757, 5758, 5759, 5760, 5761, 5762, 5763, 5764, 5765, 5766, 5767, 5768, 5769, 5770, 5771, 5772, 5773, 5774, 5775, 5776, 5777, 5778, 5779, 5780, 5781, 5782, 5783, 5784, 5785, 5786, 5787, 5788, 5789, 5790, 5791, 5792, 5793, 5794, 5795, 5796, 5797, 5798, 5799, 5800, 5801, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5809, 5810, 5811, 5812, 5813, 5814, 5815, 5816, 5817, 5818, 5819, 5820, 5821, 5822, 5823, 5824, 5825, 5826, 5827, 5828, 5829, 5830, 5831, 5832, 5833, 5834, 5835, 5836, 5837, 5838, 5839, 5840, 5841, 5842, 5843, 5844, 5845, 5846, 5847, 5848, 5849, 5850, 5851, 5852, 5853, 5854, 5855, 5856, 5857, 5858, 5859, 5860, 5861, 5862, 5863, 5864, 5865, 5866, 5867, 5868, 5869, 5870, 5871, 5872, 5873, 5874, 5875, 5876, 5877, 5878, 5879, 5880, 5881, 5882, 5883, 5884, 5885, 5886, 5887, 5888, 5889, 5890, 5891, 5892, 5893, 5894, 5895, 5896, 5897, 5898, 5899, 5900, 5901, 5902, 5903, 5904, 5905, 5906, 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5914, 5915, 5916, 5917, 5918, 5919, 5920, 5921, 5922, 5923, 5924, 5925, 5926, 5927, 5928, 5929, 5930, 5931, 5932, 5933, 5934, 5935, 5936, 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5944, 5945, 5946, 5947, 5948, 5949, 5950, 5951, 5952, 5953, 5954, 5955, 5956, 5957, 5958, 5959, 5960, 5961, 5962, 5963, 5964, 5965, 5966, 5967, 5968, 5969, 5970, 5971, 5972, 5973, 5974, 5975, 5976, 5977, 5978, 5979, 5980, 5981, 5982, 5983, 5984, 5985, 5986, 5987, 5988, 5989, 5990, 5991, 5992, 5993, 5994, 5995, 5996, 5997, 5998, 5999, 6000, 6001, 6002, 6003, 6004, 6005, 6006, 6007, 6008, 6009, 6010, 6011, 6012, 6013, 6014, 6015, 6016, 6017, 6018, 6019, 6020, 6021, 6022, 6023, 6024, 6025, 6026, 6027, 6028, 6029, 6030, 6031, 6032, 6033, 6034, 6035, 6036, 6037, 6038, 6039, 6040, 6041, 6042, 6043, 6044, 6045, 6046, 6047, 6048, 6049, 6050, 6051, 6052, 6053, 6054, 6055, 6056, 6057, 6058, 6059, 6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069, 6070, 6071, 6072, 6073, 6074, 6075, 6076, 6077, 6078, 6079, 6080, 6081, 6082, 6083, 6084, 6085, 6086, 6087, 6088, 6089, 6090, 6091, 6092, 6093, 6094, 6095, 6096, 6097, 6098, 6099, 6100, 6101, 6102, 6103, 6104, 6105, 6106, 6107, 6108, 6109, 6110, 6111, 6112, 6113, 6114, 6115, 6116, 6117, 6118, 6119, 6120, 6121, 6122, 6123, 6124, 6125, 6126, 6127, 6128, 6129, 6130, 6131, 6132, 6133, 6134, 6135, 6136, 6137, 6138, 6139, 6140, 6141, 6142, 6143, 6144, 6145, 6146, 6147, 6148, 6149, 6150, 6151, 6152, 6153, 6154, 6155, 6156, 6157, 6158, 6159, 6160, 6161, 6162, 6163, 6164, 6165, 6166, 6167, 6168, 6169, 6170, 6171, 6172, 6173, 6174, 6175, 6176, 6177, 6178, 6179, 6180, 6181, 6182, 6183, 6184, 6185, 6186, 6187, 6188, 6189, 6190, 6191, 6192, 6193, 6194, 6195, 6196, 6197, 6198, 6199, 6200, 6201, 6202, 6203, 6204, 6205, 6206, 6207, 6208, 6209, 6210, 6211, 6212, 6213, 6214, 6215, 6216, 6217, 6218, 6219, 6220, 6221, 6222, 6223, 6224, 6225, 6226, 6227, 6228, 6229, 6230, 6231, 6232, 6233, 6234, 6235, 6236, 6237, 6238, 6239, 6240, 6241, 6242, 6243, 6244, 6245, 6246, 6247, 6248, 6249, 6250, 6251, 6252, 6253, 6254, 6255, 6256, 6257, 6258, 6259, 6260, 6261, 6262, 6263, 6264, 6265, 6266, 6267, 6268, 6269, 6270, 6271, 6272, 6273, 6274, 6275, 6276, 6277, 6278, 6279, 6280, 6281, 6282, 6283, 6284, 6285, 6286, 6287, 6288, 6289, 6290, 6291, 6292, 6293, 6294, 6295, 6296, 6297, 6298, 6299, 6300, 6301, 6302, 6303, 6304, 6305, 6306, 6307, 6308, 6309, 6310, 6311, 6312, 6313, 6314, 6315, 6316, 6317, 6318, 6319, 6320, 6321, 6322, 6323, 6324, 6325, 6326, 6327, 6328, 6329, 6330, 6331, 6332, 6333, 6334, 6335, 6336, 6337, 6338, 6339, 6340, 6341, 6342, 6343, 6344, 6345, 6346, 6347, 6348, 6349, 6350, 6351, 6352, 6353, 6354, 6355, 6356, 6357, 6358, 6359, 6360, 6361, 6362, 6363, 6364, 6365, 6366, 6367, 6368, 6369, 6370, 6371, 6372, 6373, 6374, 6375, 6376, 6377, 6378, 6379, 6380, 6381, 6382, 6383, 6384, 6385, 6386, 6387, 6388, 6389, 6390, 6391, 6392, 6393, 6394, 6395, 6396, 6397, 6398, 6399, 6400, 6401, 6402, 6403, 6404, 6405, 6406, 6407, 6408, 6409, 6410, 6411, 6412, 6413, 6414, 6415, 6416, 6417, 6418, 6419, 6420, 6421, 6422, 6423, 6424, 6425, 6426, 6427, 6428, 6429, 6430, 6431, 6432, 6433, 6434, 6435, 6436, 6437, 6438, 6439, 6440, 6441, 6442, 6443, 6444, 6445, 6446, 6447, 6448, 6449, 6450, 6451, 6452, 6453, 6454, 6455, 6456, 6457, 6458, 6459, 6460, 6461, 6462, 6463, 6464, 6465, 6466, 6467, 6468, 6469, 6470, 6471, 6472, 6473, 6474, 6475, 6476, 6477, 6478, 6479, 6480, 6481, 6482, 6483, 6484, 6485, 6486, 6487, 6488, 6489, 6490, 6491, 6492, 6493, 6494, 6495, 6496, 6497, 6498, 6499, 6500, 6501, 6502, 6503, 6504, 6505, 6506, 6507, 6508, 6509, 6510, 6511, 6512, 6513, 6514, 6515, 6516, 6517, 6518, 6519, 6520, 6521, 6522, 6523, 6524, 6525, 6526, 6527, 6528, 6529, 6530, 6531, 6532, 6533, 6534, 6535, 6536, 6537, 6538, 6539, 6540, 6541, 6542, 6543, 6544, 6545, 6546, 6547, 6548, 6549, 6550, 6551, 6552, 6553, 6554, 6555, 6556, 6557, 6558, 6559, 6560, 6561, 6562, 6563, 6564, 6565, 6566, 6567, 6568, 6569, 6570, 6571, 6572, 6573, 6574, 6575, 6576, 6577, 6578, 6579, 6580, 6581, 6582, 6583, 6584, 6585, 6586, 6587, 6588, 6589, 6590, 6591, 6592, 6593, 6594, 6595, 6596, 6597, 6598, 6599, 6600, 6601, 6602, 6603, 6604, 6605, 6606, 6607, 6608, 6609, 6610, 6611, 6612, 6613, 6614, 6615, 6616, 6617, 6618, 6619, 6620, 6621, 6622, 6623, 6624, 6625, 6626, 6627, 6628, 6629, 6630, 6631, 6632, 6633, 6634, 6635, 6636, 6637, 6638, 6639, 6640, 6641, 6642, 6643, 6644, 6645, 6646, 6647, 6648, 6649, 6650, 6651, 6652, 6653, 6654, 6655, 6656, 6657, 6658, 6659, 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 6670, 6671, 6672, 6673, 6674, 6675, 6676, 6677, 6678, 6679, 6680, 6681, 6682, 6683, 6684, 6685, 6686, 6687, 6688, 6689, 6690, 6691, 6692, 6693, 6694, 6695, 6696, 6697, 6698, 6699, 6700, 6701, 6702, 6703, 6704, 6705, 6706, 6707, 6708, 6709, 6710, 6711, 6712, 6713, 6714, 6715, 6716, 6717, 6718, 6719, 6720, 6721, 6722, 6723, 6724, 6725, 6726, 6727, 6728, 6729, 6730, 6731, 6732, 6733, 6734, 6735, 6736, 6737, 6738, 6739, 6740, 6741, 6742, 6743, 6744, 6745, 6746, 6747, 6748, 6749, 6750, 6751, 6752, 6753, 6754, 6755, 6756, 6757, 6758, 6759, 6760, 6761, 6762, 6763, 6764, 6765, 6766, 6767, 6768, 6769, 6770, 6771, 6772, 6773, 6774, 6775, 6776, 6777, 6778, 6779, 6780, 6781, 6782, 6783, 6784, 6785, 6786, 6787, 6788, 6789, 6790, 6791, 6792, 6793, 6794, 6795, 6796, 6797, 6798, 6799, 6800, 6801, 6802, 6803, 6804, 6805, 6806, 6807, 6808, 6809, 6810, 6811, 6812, 6813, 6814, 6815, 6816, 6817, 6818, 6819, 6820, 6821, 6822, 6823, 6824, 6825, 6826, 6827, 6828, 6829, 6830, 6831, 6832, 6833, 6834, 6835, 6836, 6837, 6838, 6839, 6840, 6841, 6842, 6843, 6844, 6845, 6846, 6847, 6848, 6849, 6850, 6851, 6852, 6853, 6854, 6855, 6856, 6857, 6858, 6859, 6860, 6861, 6862, 6863, 6864, 6865, 6866, 6867, 6868, 6869, 6870, 6871, 6872, 6873, 6874, 6875, 6876, 6877, 6878, 6879, 6880, 6881, 6882, 6883, 6884, 6885, 6886, 6887, 6888, 6889, 6890, 6891, 6892, 6893, 6894, 6895, 6896, 6897, 6898, 6899, 6900, 6901, 6902, 6903, 6904, 6905, 6906, 6907, 6908, 6909, 6910, 6911, 6912, 6913, 6914, 6915, 6916, 6917, 6918, 6919, 6920, 6921, 6922, 6923, 6924, 6925, 6926, 6927, 6928, 6929, 6930, 6931, 6932, 6933, 6934, 6935, 6936, 6937, 6938, 6939, 6940, 6941, 6942, 6943, 6944, 6945, 6946, 6947, 6948, 6949, 6950, 6951, 6952, 6953, 6954, 6955, 6956, 6957, 6958, 6959, 6960, 6961, 6962, 6963, 6964, 6965, 6966, 6967, 6968, 6969, 6970, 6971, 6972, 6973, 6974, 6975, 6976, 6977, 6978, 6979, 6980, 6981, 6982, 6983, 6984, 6985, 6986, 6987, 6988, 6989, 6990, 6991, 6992, 6993, 6994, 6995, 6996, 6997, 6998, 6999, 7000, 7001, 7002, 7003, 7004, 7005, 7006, 7007, 7008, 7009, 7010, 7011, 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, 7028, 7029, 7030, 7031, 7032, 7033, 7034, 7035, 7036, 7037, 7038, 7039, 7040, 7041, 7042, 7043, 7044, 7045, 7046, 7047, 7048, 7049, 7050, 7051, 7052, 7053, 7054, 7055, 7056, 7057, 7058, 7059, 7060, 7061, 7062, 7063, 7064, 7065, 7066, 7067, 7068, 7069, 7070, 7071, 7072, 7073, 7074, 7075, 7076, 7077, 7078, 7079, 7080, 7081, 7082, 7083, 7084, 7085, 7086, 7087, 7088, 7089, 7090, 7091, 7092, 7093, 7094, 7095, 7096, 7097, 7098, 7099, 7100, 7101, 7102, 7103, 7104, 7105, 7106, 7107, 7108, 7109, 7110, 7111, 7112, 7113, 7114, 7115, 7116, 7117, 7118, 7119, 7120, 7121, 7122, 7123, 7124, 7125, 7126, 7127, 7128, 7129, 7130, 7131, 7132, 7133, 7134, 7135, 7136, 7137, 7138, 7139, 7140, 7141, 7142, 7143, 7144, 7145, 7146, 7147, 7148, 7149, 7150, 7151, 7152, 7153, 7154, 7155, 7156, 7157, 7158, 7159, 7160, 7161, 7162, 7163, 7164, 7165, 7166, 7167, 7168, 7169, 7170, 7171, 7172, 7173, 7174, 7175, 7176, 7177, 7178, 7179, 7180, 7181, 7182, 7183, 7184, 7185, 7186, 7187, 7188, 7189, 7190, 7191, 7192, 7193, 7194, 7195, 7196, 7197, 7198, 7199, 7200, 7201, 7202, 7203, 7204, 7205, 7206, 7207, 7208, 7209, 7210, 7211, 7212, 7213, 7214, 7215, 7216, 7217, 7218, 7219, 7220, 7221, 7222, 7223, 7224, 7225, 7226, 7227, 7228, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7239, 7240, 7241, 7242, 7243, 7244, 7245, 7246, 7247, 7248, 7249, 7250, 7251, 7252, 7253, 7254, 7255, 7256, 7257, 7258, 7259, 7260, 7261, 7262, 7263, 7264, 7265, 7266, 7267, 7268, 7269, 7270, 7271, 7272, 7273, 7274, 7275, 7276, 7277, 7278, 7279, 7280, 7281, 7282, 7283, 7284, 7285, 7286, 7287, 7288, 7289, 7290, 7291, 7292, 7293, 7294, 7295, 7296, 7297, 7298, 7299, 7300, 7301, 7302, 7303, 7304, 7305, 7306, 7307, 7308, 7309, 7310, 7311, 7312, 7313, 7314, 7315, 7316, 7317, 7318, 7319, 7320, 7321, 7322, 7323, 7324, 7325, 7326, 7327, 7328, 7329, 7330, 7331, 7332, 7333, 7334, 7335, 7336, 7337, 7338, 7339, 7340, 7341, 7342, 7343, 7344, 7345, 7346, 7347, 7348, 7349, 7350, 7351, 7352, 7353, 7354, 7355, 7356, 7357, 7358, 7359, 7360, 7361, 7362, 7363, 7364, 7365, 7366, 7367, 7368, 7369, 7370, 7371, 7372, 7373, 7374, 7375, 7376, 7377, 7378, 7379, 7380, 7381, 7382, 7383, 7384, 7385, 7386, 7387, 7388, 7389, 7390, 7391, 7392, 7393, 7394, 7395, 7396, 7397, 7398, 7399, 7400, 7401, 7402, 7403, 7404, 7405, 7406, 7407, 7408, 7409, 7410, 7411, 7412, 7413, 7414, 7415, 7416, 7417, 7418, 7419, 7420, 7421, 7422, 7423, 7424, 7425, 7426, 7427, 7428, 7429, 7430, 7431, 7432, 7433, 7434, 7435, 7436, 7437, 7438, 7439, 7440, 7441, 7442, 7443, 7444, 7445, 7446, 7447, 7448, 7449, 7450, 7451, 7452, 7453, 7454, 7455, 7456, 7457, 7458, 7459, 7460, 7461, 7462, 7463, 7464, 7465, 7466, 7467, 7468, 7469, 7470, 7471, 7472, 7473, 7474, 7475, 7476, 7477, 7478, 7479, 7480, 7481, 7482, 7483, 7484, 7485, 7486, 7487, 7488, 7489, 7490, 7491, 7492, 7493, 7494, 7495, 7496, 7497, 7498, 7499, 7500, 7501, 7502, 7503, 7504, 7505, 7506, 7507, 7508, 7509, 7510, 7511, 7512, 7513, 7514, 7515, 7516, 7517, 7518, 7519, 7520, 7521, 7522, 7523, 7524, 7525, 7526, 7527, 7528, 7529, 7530, 7531, 7532, 7533, 7534, 7535, 7536, 7537, 7538, 7539, 7540, 7541, 7542, 7543, 7544, 7545, 7546, 7547, 7548, 7549, 7550, 7551, 7552, 7553, 7554, 7555, 7556, 7557, 7558, 7559, 7560, 7561, 7562, 7563, 7564, 7565, 7566, 7567, 7568, 7569, 7570, 7571, 7572, 7573, 7574, 7575, 7576, 7577, 7578, 7579, 7580, 7581, 7582, 7583, 7584, 7585, 7586, 7587, 7588, 7589, 7590, 7591, 7592, 7593, 7594, 7595, 7596, 7597, 7598, 7599, 7600, 7601, 7602, 7603, 7604, 7605, 7606, 7607, 7608, 7609, 7610, 7611, 7612, 7613, 7614, 7615, 7616, 7617, 7618, 7619, 7620, 7621, 7622, 7623, 7624, 7625, 7626, 7627, 7628, 7629, 7630, 7631, 7632, 7633, 7634, 7635, 7636, 7637, 7638, 7639, 7640, 7641, 7642, 7643, 7644, 7645, 7646, 7647, 7648, 7649, 7650, 7651, 7652, 7653, 7654, 7655, 7656, 7657, 7658, 7659, 7660, 7661, 7662, 7663, 7664, 7665, 7666, 7667, 7668, 7669, 7670, 7671, 7672, 7673, 7674, 7675, 7676, 7677, 7678, 7679, 7680, 7681, 7682, 7683, 7684, 7685, 7686, 7687, 7688, 7689, 7690, 7691, 7692, 7693, 7694, 7695, 7696, 7697, 7698, 7699, 7700, 7701, 7702, 7703, 7704, 7705, 7706, 7707, 7708, 7709, 7710, 7711, 7712, 7713, 7714, 7715, 7716, 7717, 7718, 7719, 7720, 7721, 7722, 7723, 7724, 7725, 7726, 7727, 7728, 7729, 7730, 7731, 7732, 7733, 7734, 7735, 7736, 7737, 7738, 7739, 7740, 7741, 7742, 7743, 7744, 7745, 7746, 7747, 7748, 7749, 7750, 7751, 7752, 7753, 7754, 7755, 7756, 7757, 7758, 7759, 7760, 7761, 7762, 7763, 7764, 7765, 7766, 7767, 7768, 7769, 7770, 7771, 7772, 7773, 7774, 7775, 7776, 7777, 7778, 7779, 7780, 7781, 7782, 7783, 7784, 7785, 7786, 7787, 7788, 7789, 7790, 7791, 7792, 7793, 7794, 7795, 7796, 7797, 7798, 7799, 7800, 7801, 7802, 7803, 7804, 7805, 7806, 7807, 7808, 7809, 7810, 7811, 7812, 7813, 7814, 7815, 7816, 7817, 7818, 7819, 7820, 7821, 7822, 7823, 7824, 7825, 7826, 7827, 7828, 7829, 7830, 7831, 7832, 7833, 7834, 7835, 7836, 7837, 7838, 7839, 7840, 7841, 7842, 7843, 7844, 7845, 7846, 7847, 7848, 7849, 7850, 7851, 7852, 7853, 7854, 7855, 7856, 7857, 7858, 7859, 7860, 7861, 7862, 7863, 7864, 7865, 7866, 7867, 7868, 7869, 7870, 7871, 7872, 7873, 7874, 7875, 7876, 7877, 7878, 7879, 7880, 7881, 7882, 7883, 7884, 7885, 7886, 7887, 7888, 7889, 7890, 7891, 7892, 7893, 7894, 7895, 7896, 7897, 7898, 7899, 7900, 7901, 7902, 7903, 7904, 7905, 7906, 7907, 7908, 7909, 7910, 7911, 7912, 7913, 7914, 7915, 7916, 7917, 7918, 7919, 7920, 7921, 7922, 7923, 7924, 7925, 7926, 7927, 7928, 7929, 7930, 7931, 7932, 7933, 7934, 7935, 7936, 7937, 7938, 7939, 7940, 7941, 7942, 7943, 7944, 7945, 7946, 7947, 7948, 7949, 7950, 7951, 7952, 7953, 7954, 7955, 7956, 7957, 7958, 7959, 7960, 7961, 7962, 7963, 7964, 7965, 7966, 7967, 7968, 7969, 7970, 7971, 7972, 7973, 7974, 7975, 7976, 7977, 7978, 7979, 7980, 7981, 7982, 7983, 7984, 7985, 7986, 7987, 7988, 7989, 7990, 7991, 7992, 7993, 7994, 7995, 7996, 7997, 7998, 7999, 8000, 8001, 8002, 8003, 8004, 8005, 8006, 8007, 8008, 8009, 8010, 8011, 8012, 8013, 8014, 8015, 8016, 8017, 8018, 8019, 8020, 8021, 8022, 8023, 8024, 8025, 8026, 8027, 8028, 8029, 8030, 8031, 8032, 8033, 8034, 8035, 8036, 8037, 8038, 8039, 8040, 8041, 8042, 8043, 8044, 8045, 8046, 8047, 8048, 8049, 8050, 8051, 8052, 8053, 8054, 8055, 8056, 8057, 8058, 8059, 8060, 8061, 8062, 8063, 8064, 8065, 8066, 8067, 8068, 8069, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8083, 8084, 8085, 8086, 8087, 8088, 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098, 8099, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108, 8109, 8110, 8111, 8112, 8113, 8114, 8115, 8116, 8117, 8118, 8119, 8120, 8121, 8122, 8123, 8124, 8125, 8126, 8127, 8128, 8129, 8130, 8131, 8132, 8133, 8134, 8135, 8136, 8137, 8138, 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 8157, 8158, 8159, 8160, 8161, 8162, 8163, 8164, 8165, 8166, 8167, 8168, 8169, 8170, 8171, 8172, 8173, 8174, 8175, 8176, 8177, 8178, 8179, 8180, 8181, 8182, 8183, 8184, 8185, 8186, 8187, 8188, 8189, 8190, 8191, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8203, 8204, 8205, 8206, 8207, 8208, 8209, 8210, 8211, 8212, 8213, 8214, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8223, 8224, 8225, 8226, 8227, 8228, 8229, 8230, 8231, 8232, 8233, 8234, 8235, 8236, 8237, 8238, 8239, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8247, 8248, 8249, 8250, 8251, 8252, 8253, 8254, 8255, 8256, 8257, 8258, 8259, 8260, 8261, 8262, 8263, 8264, 8265, 8266, 8267, 8268, 8269, 8270, 8271, 8272, 8273, 8274, 8275, 8276, 8277, 8278, 8279, 8280, 8281, 8282, 8283, 8284, 8285, 8286, 8287, 8288, 8289, 8290, 8291, 8292, 8293, 8294, 8295, 8296, 8297, 8298, 8299, 8300, 8301, 8302, 8303, 8304, 8305, 8306, 8307, 8308, 8309, 8310, 8311, 8312, 8313, 8314, 8315, 8316, 8317, 8318, 8319, 8320, 8321, 8322, 8323, 8324, 8325, 8326, 8327, 8328, 8329, 8330, 8331, 8332, 8333, 8334, 8335, 8336, 8337, 8338, 8339, 8340, 8341, 8342, 8343, 8344, 8345, 8346, 8347, 8348, 8349, 8350, 8351, 8352, 8353, 8354, 8355, 8356, 8357, 8358, 8359, 8360, 8361, 8362, 8363, 8364, 8365, 8366, 8367, 8368, 8369, 8370, 8371, 8372, 8373, 8374, 8375, 8376, 8377, 8378, 8379, 8380, 8381, 8382, 8383, 8384, 8385, 8386, 8387, 8388, 8389, 8390, 8391, 8392, 8393, 8394, 8395, 8396, 8397, 8398, 8399, 8400, 8401, 8402, 8403, 8404, 8405, 8406, 8407, 8408, 8409, 8410, 8411, 8412, 8413, 8414, 8415, 8416, 8417, 8418, 8419, 8420, 8421, 8422, 8423, 8424, 8425, 8426, 8427, 8428, 8429, 8430, 8431, 8432, 8433, 8434, 8435, 8436, 8437, 8438, 8439, 8440, 8441, 8442, 8443, 8444, 8445, 8446, 8447, 8448, 8449, 8450, 8451, 8452, 8453, 8454, 8455, 8456, 8457, 8458, 8459, 8460, 8461, 8462, 8463, 8464, 8465, 8466, 8467, 8468, 8469, 8470, 8471, 8472, 8473, 8474, 8475, 8476, 8477, 8478, 8479, 8480, 8481, 8482, 8483, 8484, 8485, 8486, 8487, 8488, 8489, 8490, 8491, 8492, 8493, 8494, 8495, 8496, 8497, 8498, 8499, 8500, 8501, 8502, 8503, 8504, 8505, 8506, 8507, 8508, 8509, 8510, 8511, 8512, 8513, 8514, 8515, 8516, 8517, 8518, 8519, 8520, 8521, 8522, 8523, 8524, 8525, 8526, 8527, 8528, 8529, 8530, 8531, 8532, 8533, 8534, 8535, 8536, 8537, 8538, 8539, 8540, 8541, 8542, 8543, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558, 8559, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8577, 8578, 8579, 8580, 8581, 8582, 8583, 8584, 8585, 8586, 8587, 8588, 8589, 8590, 8591, 8592, 8593, 8594, 8595, 8596, 8597, 8598, 8599, 8600, 8601, 8602, 8603, 8604, 8605, 8606, 8607, 8608, 8609, 8610, 8611, 8612, 8613, 8614, 8615, 8616, 8617, 8618, 8619, 8620, 8621, 8622, 8623, 8624, 8625, 8626, 8627, 8628, 8629, 8630, 8631, 8632, 8633, 8634, 8635, 8636, 8637, 8638, 8639, 8640, 8641, 8642, 8643, 8644, 8645, 8646, 8647, 8648, 8649, 8650, 8651, 8652, 8653, 8654, 8655, 8656, 8657, 8658, 8659, 8660, 8661, 8662, 8663, 8664, 8665, 8666, 8667, 8668, 8669, 8670, 8671, 8672, 8673, 8674, 8675, 8676, 8677, 8678, 8679, 8680, 8681, 8682, 8683, 8684, 8685, 8686, 8687, 8688, 8689, 8690, 8691, 8692, 8693, 8694, 8695, 8696, 8697, 8698, 8699, 8700, 8701, 8702, 8703, 8704, 8705, 8706, 8707, 8708, 8709, 8710, 8711, 8712, 8713, 8714, 8715, 8716, 8717, 8718, 8719, 8720, 8721, 8722, 8723, 8724, 8725, 8726, 8727, 8728, 8729, 8730, 8731, 8732, 8733, 8734, 8735, 8736, 8737, 8738, 8739, 8740, 8741, 8742, 8743, 8744, 8745, 8746, 8747, 8748, 8749, 8750, 8751, 8752, 8753, 8754, 8755, 8756, 8757, 8758, 8759, 8760, 8761, 8762, 8763, 8764, 8765, 8766, 8767, 8768, 8769, 8770, 8771, 8772, 8773, 8774, 8775, 8776, 8777, 8778, 8779, 8780, 8781, 8782, 8783, 8784, 8785, 8786, 8787, 8788, 8789, 8790, 8791, 8792, 8793, 8794, 8795, 8796, 8797, 8798, 8799, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8807, 8808, 8809, 8810, 8811, 8812, 8813, 8814, 8815, 8816, 8817, 8818, 8819, 8820, 8821, 8822, 8823, 8824, 8825, 8826, 8827, 8828, 8829, 8830, 8831, 8832, 8833, 8834, 8835, 8836, 8837, 8838, 8839, 8840, 8841, 8842, 8843, 8844, 8845, 8846, 8847, 8848, 8849, 8850, 8851, 8852, 8853, 8854, 8855, 8856, 8857, 8858, 8859, 8860, 8861, 8862, 8863, 8864, 8865, 8866, 8867, 8868, 8869, 8870, 8871, 8872, 8873, 8874, 8875, 8876, 8877, 8878, 8879, 8880, 8881, 8882, 8883, 8884, 8885, 8886, 8887, 8888, 8889, 8890, 8891, 8892, 8893, 8894, 8895, 8896, 8897, 8898, 8899, 8900, 8901, 8902, 8903, 8904, 8905, 8906, 8907, 8908, 8909, 8910, 8911, 8912, 8913, 8914, 8915, 8916, 8917, 8918, 8919, 8920, 8921, 8922, 8923, 8924, 8925, 8926, 8927, 8928, 8929, 8930, 8931, 8932, 8933, 8934, 8935, 8936, 8937, 8938, 8939, 8940, 8941, 8942, 8943, 8944, 8945, 8946, 8947, 8948, 8949, 8950, 8951, 8952, 8953, 8954, 8955, 8956, 8957, 8958, 8959, 8960, 8961, 8962, 8963, 8964, 8965, 8966, 8967, 8968, 8969, 8970, 8971, 8972, 8973, 8974, 8975, 8976, 8977, 8978, 8979, 8980, 8981, 8982, 8983, 8984, 8985, 8986, 8987, 8988, 8989, 8990, 8991, 8992, 8993, 8994, 8995, 8996, 8997, 8998, 8999, 9000, 9001, 9002, 9003, 9004, 9005, 9006, 9007, 9008, 9009, 9010, 9011, 9012, 9013, 9014, 9015, 9016, 9017, 9018, 9019, 9020, 9021, 9022, 9023, 9024, 9025, 9026, 9027, 9028, 9029, 9030, 9031, 9032, 9033, 9034, 9035, 9036, 9037, 9038, 9039, 9040, 9041, 9042, 9043, 9044, 9045, 9046, 9047, 9048, 9049, 9050, 9051, 9052, 9053, 9054, 9055, 9056, 9057, 9058, 9059, 9060, 9061, 9062, 9063, 9064, 9065, 9066, 9067, 9068, 9069, 9070, 9071, 9072, 9073, 9074, 9075, 9076, 9077, 9078, 9079, 9080, 9081, 9082, 9083, 9084, 9085, 9086, 9087, 9088, 9089, 9090, 9091, 9092, 9093, 9094, 9095, 9096, 9097, 9098, 9099, 9100, 9101, 9102, 9103, 9104, 9105, 9106, 9107, 9108, 9109, 9110, 9111, 9112, 9113, 9114, 9115, 9116, 9117, 9118, 9119, 9120, 9121, 9122, 9123, 9124, 9125, 9126, 9127, 9128, 9129, 9130, 9131, 9132, 9133, 9134, 9135, 9136, 9137, 9138, 9139, 9140, 9141, 9142, 9143, 9144, 9145, 9146, 9147, 9148, 9149, 9150, 9151, 9152, 9153, 9154, 9155, 9156, 9157, 9158, 9159, 9160, 9161, 9162, 9163, 9164, 9165, 9166, 9167, 9168, 9169, 9170, 9171, 9172, 9173, 9174, 9175, 9176, 9177, 9178, 9179, 9180, 9181, 9182, 9183, 9184, 9185, 9186, 9187, 9188, 9189, 9190, 9191, 9192, 9193, 9194, 9195, 9196, 9197, 9198, 9199, 9200, 9201, 9202, 9203, 9204, 9205, 9206, 9207, 9208, 9209, 9210, 9211, 9212, 9213, 9214, 9215, 9216, 9217, 9218, 9219, 9220, 9221, 9222, 9223, 9224, 9225, 9226, 9227, 9228, 9229, 9230, 9231, 9232, 9233, 9234, 9235, 9236, 9237, 9238, 9239, 9240, 9241, 9242, 9243, 9244, 9245, 9246, 9247, 9248, 9249, 9250, 9251, 9252, 9253, 9254, 9255, 9256, 9257, 9258, 9259, 9260, 9261, 9262, 9263, 9264, 9265, 9266, 9267, 9268, 9269, 9270, 9271, 9272, 9273, 9274, 9275, 9276, 9277, 9278, 9279, 9280, 9281, 9282, 9283, 9284, 9285, 9286, 9287, 9288, 9289, 9290, 9291, 9292, 9293, 9294, 9295, 9296, 9297, 9298, 9299, 9300, 9301, 9302, 9303, 9304, 9305, 9306, 9307, 9308, 9309, 9310, 9311, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 9322, 9323, 9324, 9325, 9326, 9327, 9328, 9329, 9330, 9331, 9332, 9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 9342, 9343, 9344, 9345, 9346, 9347, 9348, 9349, 9350, 9351, 9352, 9353, 9354, 9355, 9356, 9357, 9358, 9359, 9360, 9361, 9362, 9363, 9364, 9365, 9366, 9367, 9368, 9369, 9370, 9371, 9372, 9373, 9374, 9375, 9376, 9377, 9378, 9379, 9380, 9381, 9382, 9383, 9384, 9385, 9386, 9387, 9388, 9389, 9390, 9391, 9392, 9393, 9394, 9395, 9396, 9397, 9398, 9399, 9400, 9401, 9402, 9403, 9404, 9405, 9406, 9407, 9408, 9409, 9410, 9411, 9412, 9413, 9414, 9415, 9416, 9417, 9418, 9419, 9420, 9421, 9422, 9423, 9424, 9425, 9426, 9427, 9428, 9429, 9430, 9431, 9432, 9433, 9434, 9435, 9436, 9437, 9438, 9439, 9440, 9441, 9442, 9443, 9444, 9445, 9446, 9447, 9448, 9449, 9450, 9451, 9452, 9453, 9454, 9455, 9456, 9457, 9458, 9459, 9460, 9461, 9462, 9463, 9464, 9465, 9466, 9467, 9468, 9469, 9470, 9471, 9472, 9473, 9474, 9475, 9476, 9477, 9478, 9479, 9480, 9481, 9482, 9483, 9484, 9485, 9486, 9487, 9488, 9489, 9490, 9491, 9492, 9493, 9494, 9495, 9496, 9497, 9498, 9499, 9500, 9501, 9502, 9503, 9504, 9505, 9506, 9507, 9508, 9509, 9510, 9511, 9512, 9513, 9514, 9515, 9516, 9517, 9518, 9519, 9520, 9521, 9522, 9523, 9524, 9525, 9526, 9527, 9528, 9529, 9530, 9531, 9532, 9533, 9534, 9535, 9536, 9537, 9538, 9539, 9540, 9541, 9542, 9543, 9544, 9545, 9546, 9547, 9548, 9549, 9550, 9551, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9581, 9582, 9583, 9584, 9585, 9586, 9587, 9588, 9589, 9590, 9591, 9592, 9593, 9594, 9595, 9596, 9597, 9598, 9599, 9600, 9601, 9602, 9603, 9604, 9605, 9606, 9607, 9608, 9609, 9610, 9611, 9612, 9613, 9614, 9615, 9616, 9617, 9618, 9619, 9620, 9621, 9622, 9623, 9624, 9625, 9626, 9627, 9628, 9629, 9630, 9631, 9632, 9633, 9634, 9635, 9636, 9637, 9638, 9639, 9640, 9641, 9642, 9643, 9644, 9645, 9646, 9647, 9648, 9649, 9650, 9651, 9652, 9653, 9654, 9655, 9656, 9657, 9658, 9659, 9660, 9661, 9662, 9663, 9664, 9665, 9666, 9667, 9668, 9669, 9670, 9671, 9672, 9673, 9674, 9675, 9676, 9677, 9678, 9679, 9680, 9681, 9682, 9683, 9684, 9685, 9686, 9687, 9688, 9689, 9690, 9691, 9692, 9693, 9694, 9695, 9696, 9697, 9698, 9699, 9700, 9701, 9702, 9703, 9704, 9705, 9706, 9707, 9708, 9709, 9710, 9711, 9712, 9713, 9714, 9715, 9716, 9717, 9718, 9719, 9720, 9721, 9722, 9723, 9724, 9725, 9726, 9727, 9728, 9729, 9730, 9731, 9732, 9733, 9734, 9735, 9736, 9737, 9738, 9739, 9740, 9741, 9742, 9743, 9744, 9745, 9746, 9747, 9748, 9749, 9750, 9751, 9752, 9753, 9754, 9755, 9756, 9757, 9758, 9759, 9760, 9761, 9762, 9763, 9764, 9765, 9766, 9767, 9768, 9769, 9770, 9771, 9772, 9773, 9774, 9775, 9776, 9777, 9778, 9779, 9780, 9781, 9782, 9783, 9784, 9785, 9786, 9787, 9788, 9789, 9790, 9791, 9792, 9793, 9794, 9795, 9796, 9797, 9798, 9799, 9800, 9801, 9802, 9803, 9804, 9805, 9806, 9807, 9808, 9809, 9810, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9820, 9821, 9822, 9823, 9824, 9825, 9826, 9827, 9828, 9829, 9830, 9831, 9832, 9833, 9834, 9835, 9836, 9837, 9838, 9839, 9840, 9841, 9842, 9843, 9844, 9845, 9846, 9847, 9848, 9849, 9850, 9851, 9852, 9853, 9854, 9855, 9856, 9857, 9858, 9859, 9860, 9861, 9862, 9863, 9864, 9865, 9866, 9867, 9868, 9869, 9870, 9871, 9872, 9873, 9874, 9875, 9876, 9877, 9878, 9879, 9880, 9881, 9882, 9883, 9884, 9885, 9886, 9887, 9888, 9889, 9890, 9891, 9892, 9893, 9894, 9895, 9896, 9897, 9898, 9899, 9900, 9901, 9902, 9903, 9904, 9905, 9906, 9907, 9908, 9909, 9910, 9911, 9912, 9913, 9914, 9915, 9916, 9917, 9918, 9919, 9920, 9921, 9922, 9923, 9924, 9925, 9926, 9927, 9928, 9929, 9930, 9931, 9932, 9933, 9934, 9935, 9936, 9937, 9938, 9939, 9940, 9941, 9942, 9943, 9944, 9945, 9946, 9947, 9948, 9949, 9950, 9951, 9952, 9953, 9954, 9955, 9956, 9957, 9958, 9959, 9960, 9961, 9962, 9963, 9964, 9965, 9966, 9967, 9968, 9969, 9970, 9971, 9972, 9973, 9974, 9975, 9976, 9977, 9978, 9979, 9980, 9981, 9982, 9983, 9984, 9985, 9986, 9987, 9988, 9989, 9990, 9991, 9992, 9993, 9994, 9995, 9996, 9997, 9998, 9999, 10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015, 10016, 10017, 10018, 10019, 10020, 10021, 10022, 10023, 10024, 10025, 10026, 10027, 10028, 10029, 10030, 10031, 10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039, 10040, 10041, 10042, 10043, 10044, 10045, 10046, 10047, 10048, 10049, 10050, 10051, 10052, 10053, 10054, 10055, 10056, 10057, 10058, 10059, 10060, 10061, 10062, 10063, 10064, 10065, 10066, 10067, 10068, 10069, 10070, 10071, 10072, 10073, 10074, 10075, 10076, 10077, 10078, 10079, 10080, 10081, 10082, 10083, 10084, 10085, 10086, 10087, 10088, 10089, 10090, 10091, 10092, 10093, 10094, 10095, 10096, 10097, 10098, 10099, 10100, 10101, 10102, 10103, 10104, 10105, 10106, 10107, 10108, 10109, 10110, 10111, 10112, 10113, 10114, 10115, 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 10132, 10133, 10134, 10135, 10136, 10137, 10138, 10139, 10140, 10141, 10142, 10143, 10144, 10145, 10146, 10147, 10148, 10149, 10150, 10151, 10152, 10153, 10154, 10155, 10156, 10157, 10158, 10159, 10160, 10161, 10162, 10163, 10164, 10165, 10166, 10167, 10168, 10169, 10170, 10171, 10172, 10173, 10174, 10175, 10176, 10177, 10178, 10179, 10180, 10181, 10182, 10183, 10184, 10185, 10186, 10187, 10188, 10189, 10190, 10191, 10192, 10193, 10194, 10195, 10196, 10197, 10198, 10199, 10200, 10201, 10202, 10203, 10204, 10205, 10206, 10207, 10208, 10209, 10210, 10211, 10212, 10213, 10214, 10215, 10216, 10217, 10218, 10219, 10220, 10221, 10222, 10223, 10224, 10225, 10226, 10227, 10228, 10229, 10230, 10231, 10232, 10233, 10234, 10235, 10236, 10237, 10238, 10239, 10240, 10241, 10242, 10243, 10244, 10245, 10246, 10247, 10248, 10249, 10250, 10251, 10252, 10253, 10254, 10255, 10256, 10257, 10258, 10259, 10260, 10261, 10262, 10263, 10264, 10265, 10266, 10267, 10268, 10269, 10270, 10271, 10272, 10273, 10274, 10275, 10276, 10277, 10278, 10279, 10280, 10281, 10282, 10283, 10284, 10285, 10286, 10287, 10288, 10289, 10290, 10291, 10292, 10293, 10294, 10295, 10296, 10297, 10298, 10299, 10300, 10301, 10302, 10303, 10304, 10305, 10306, 10307, 10308, 10309, 10310, 10311, 10312, 10313, 10314, 10315, 10316, 10317, 10318, 10319, 10320, 10321, 10322, 10323, 10324, 10325, 10326, 10327, 10328, 10329, 10330, 10331, 10332, 10333, 10334, 10335, 10336, 10337, 10338, 10339, 10340, 10341, 10342, 10343, 10344, 10345, 10346, 10347, 10348, 10349, 10350, 10351, 10352, 10353, 10354, 10355, 10356, 10357, 10358, 10359, 10360, 10361, 10362, 10363, 10364, 10365, 10366, 10367, 10368, 10369, 10370, 10371, 10372, 10373, 10374, 10375, 10376, 10377, 10378, 10379, 10380, 10381, 10382, 10383, 10384, 10385, 10386, 10387, 10388, 10389, 10390, 10391, 10392, 10393, 10394, 10395, 10396, 10397, 10398, 10399, 10400, 10401, 10402, 10403, 10404, 10405, 10406, 10407, 10408, 10409, 10410, 10411, 10412, 10413, 10414, 10415, 10416, 10417, 10418, 10419, 10420, 10421, 10422, 10423, 10424, 10425, 10426, 10427, 10428, 10429, 10430, 10431, 10432, 10433, 10434, 10435, 10436, 10437, 10438, 10439, 10440, 10441, 10442, 10443, 10444, 10445, 10446, 10447, 10448, 10449, 10450, 10451, 10452, 10453, 10454, 10455, 10456, 10457, 10458, 10459, 10460, 10461, 10462, 10463, 10464, 10465, 10466, 10467, 10468, 10469, 10470, 10471, 10472, 10473, 10474, 10475, 10476, 10477, 10478, 10479, 10480, 10481, 10482, 10483, 10484, 10485, 10486, 10487, 10488, 10489, 10490, 10491, 10492, 10493, 10494, 10495, 10496, 10497, 10498, 10499, 10500, 10501, 10502, 10503, 10504, 10505, 10506, 10507, 10508, 10509, 10510, 10511, 10512, 10513, 10514, 10515, 10516, 10517, 10518, 10519, 10520, 10521, 10522, 10523, 10524, 10525, 10526, 10527, 10528, 10529, 10530, 10531, 10532, 10533, 10534, 10535, 10536, 10537, 10538, 10539, 10540, 10541, 10542, 10543, 10544, 10545, 10546, 10547, 10548, 10549, 10550, 10551, 10552, 10553, 10554, 10555, 10556, 10557, 10558, 10559, 10560, 10561, 10562, 10563, 10564, 10565, 10566, 10567, 10568, 10569, 10570, 10571, 10572, 10573, 10574, 10575, 10576, 10577, 10578, 10579, 10580, 10581, 10582, 10583, 10584, 10585, 10586, 10587, 10588, 10589, 10590, 10591, 10592, 10593, 10594, 10595, 10596, 10597, 10598, 10599, 10600, 10601, 10602, 10603, 10604, 10605, 10606, 10607, 10608, 10609, 10610, 10611, 10612, 10613, 10614, 10615, 10616, 10617, 10618, 10619, 10620, 10621, 10622, 10623, 10624, 10625, 10626, 10627, 10628, 10629, 10630, 10631, 10632, 10633, 10634, 10635, 10636, 10637, 10638, 10639, 10640, 10641, 10642, 10643, 10644, 10645, 10646, 10647, 10648, 10649, 10650, 10651, 10652, 10653, 10654, 10655, 10656, 10657, 10658, 10659, 10660, 10661, 10662, 10663, 10664, 10665, 10666, 10667, 10668, 10669, 10670, 10671, 10672, 10673, 10674, 10675, 10676, 10677, 10678, 10679, 10680, 10681, 10682, 10683, 10684, 10685, 10686, 10687, 10688, 10689, 10690, 10691, 10692, 10693, 10694, 10695, 10696, 10697, 10698, 10699, 10700, 10701, 10702, 10703, 10704, 10705, 10706, 10707, 10708, 10709, 10710, 10711, 10712, 10713, 10714, 10715, 10716, 10717, 10718, 10719, 10720, 10721, 10722, 10723, 10724, 10725, 10726, 10727, 10728, 10729, 10730, 10731, 10732, 10733, 10734, 10735, 10736, 10737, 10738, 10739, 10740, 10741, 10742, 10743, 10744, 10745, 10746, 10747, 10748, 10749, 10750, 10751, 10752, 10753, 10754, 10755, 10756, 10757, 10758, 10759, 10760, 10761, 10762, 10763, 10764, 10765, 10766, 10767, 10768, 10769, 10770, 10771, 10772, 10773, 10774, 10775, 10776, 10777, 10778, 10779, 10780, 10781, 10782, 10783, 10784, 10785, 10786, 10787, 10788, 10789, 10790, 10791, 10792, 10793, 10794, 10795, 10796, 10797, 10798, 10799, 10800, 10801, 10802, 10803, 10804, 10805, 10806, 10807, 10808, 10809, 10810, 10811, 10812, 10813, 10814, 10815, 10816, 10817, 10818, 10819, 10820, 10821, 10822, 10823, 10824, 10825, 10826, 10827, 10828, 10829, 10830, 10831, 10832, 10833, 10834, 10835, 10836, 10837, 10838, 10839, 10840, 10841, 10842, 10843, 10844, 10845, 10846, 10847, 10848, 10849, 10850, 10851, 10852, 10853, 10854, 10855, 10856, 10857, 10858, 10859, 10860, 10861, 10862, 10863, 10864, 10865, 10866, 10867, 10868, 10869, 10870, 10871, 10872, 10873, 10874, 10875, 10876, 10877, 10878, 10879, 10880, 10881, 10882, 10883, 10884, 10885, 10886, 10887, 10888, 10889, 10890, 10891, 10892, 10893, 10894, 10895, 10896, 10897, 10898, 10899, 10900, 10901, 10902, 10903, 10904, 10905, 10906, 10907, 10908, 10909, 10910, 10911, 10912, 10913, 10914, 10915, 10916, 10917, 10918, 10919, 10920, 10921, 10922, 10923, 10924, 10925, 10926, 10927, 10928, 10929, 10930, 10931, 10932, 10933, 10934, 10935, 10936, 10937, 10938, 10939, 10940, 10941, 10942, 10943, 10944, 10945, 10946, 10947, 10948, 10949, 10950, 10951, 10952, 10953, 10954, 10955, 10956, 10957, 10958, 10959, 10960, 10961, 10962, 10963, 10964, 10965, 10966, 10967, 10968, 10969, 10970, 10971, 10972, 10973, 10974, 10975, 10976, 10977, 10978, 10979, 10980, 10981, 10982, 10983, 10984, 10985, 10986, 10987, 10988, 10989, 10990, 10991, 10992, 10993, 10994, 10995, 10996, 10997, 10998, 10999, 11000, 11001, 11002, 11003, 11004, 11005, 11006, 11007, 11008, 11009, 11010, 11011, 11012, 11013, 11014, 11015, 11016, 11017, 11018, 11019, 11020, 11021, 11022, 11023, 11024, 11025, 11026, 11027, 11028, 11029, 11030, 11031, 11032, 11033, 11034, 11035, 11036, 11037, 11038, 11039, 11040, 11041, 11042, 11043, 11044, 11045, 11046, 11047, 11048, 11049, 11050, 11051, 11052, 11053, 11054, 11055, 11056, 11057, 11058, 11059, 11060, 11061, 11062, 11063, 11064, 11065, 11066, 11067, 11068, 11069, 11070, 11071, 11072, 11073, 11074, 11075, 11076, 11077, 11078, 11079, 11080, 11081, 11082, 11083, 11084, 11085, 11086, 11087, 11088, 11089, 11090, 11091, 11092, 11093, 11094, 11095, 11096, 11097, 11098, 11099, 11100, 11101, 11102, 11103, 11104, 11105, 11106, 11107, 11108, 11109, 11110, 11111, 11112, 11113, 11114, 11115, 11116, 11117, 11118, 11119, 11120, 11121, 11122, 11123, 11124, 11125, 11126, 11127, 11128, 11129, 11130, 11131, 11132, 11133, 11134, 11135, 11136, 11137, 11138, 11139, 11140, 11141, 11142, 11143, 11144, 11145, 11146, 11147, 11148, 11149, 11150, 11151, 11152, 11153, 11154, 11155, 11156, 11157, 11158, 11159, 11160, 11161, 11162, 11163, 11164, 11165, 11166, 11167, 11168, 11169, 11170, 11171, 11172, 11173, 11174, 11175, 11176, 11177, 11178, 11179, 11180, 11181, 11182, 11183, 11184, 11185, 11186, 11187, 11188, 11189, 11190, 11191, 11192, 11193, 11194, 11195, 11196, 11197, 11198, 11199, 11200, 11201, 11202, 11203, 11204, 11205, 11206, 11207, 11208, 11209, 11210, 11211, 11212, 11213, 11214, 11215, 11216, 11217, 11218, 11219, 11220, 11221, 11222, 11223, 11224, 11225, 11226, 11227, 11228, 11229, 11230, 11231, 11232, 11233, 11234, 11235, 11236, 11237, 11238, 11239, 11240, 11241, 11242, 11243, 11244, 11245, 11246, 11247, 11248, 11249, 11250, 11251, 11252, 11253, 11254, 11255, 11256, 11257, 11258, 11259, 11260, 11261, 11262, 11263, 11264, 11265, 11266, 11267, 11268, 11269, 11270, 11271, 11272, 11273, 11274, 11275, 11276, 11277, 11278, 11279, 11280, 11281, 11282, 11283, 11284, 11285, 11286, 11287, 11288, 11289, 11290, 11291, 11292, 11293, 11294, 11295, 11296, 11297, 11298, 11299, 11300, 11301, 11302, 11303, 11304, 11305, 11306, 11307, 11308, 11309, 11310, 11311, 11312, 11313, 11314, 11315, 11316, 11317, 11318, 11319, 11320, 11321, 11322, 11323, 11324, 11325, 11326, 11327, 11328, 11329, 11330, 11331, 11332, 11333, 11334, 11335, 11336, 11337, 11338, 11339, 11340, 11341, 11342, 11343, 11344, 11345, 11346, 11347, 11348, 11349, 11350, 11351, 11352, 11353, 11354, 11355, 11356, 11357, 11358, 11359, 11360, 11361, 11362, 11363, 11364, 11365, 11366, 11367, 11368, 11369, 11370, 11371, 11372, 11373, 11374, 11375, 11376, 11377, 11378, 11379, 11380, 11381, 11382, 11383, 11384, 11385, 11386, 11387, 11388, 11389, 11390, 11391, 11392, 11393, 11394, 11395, 11396, 11397, 11398, 11399, 11400, 11401, 11402, 11403, 11404, 11405, 11406, 11407, 11408, 11409, 11410, 11411, 11412, 11413, 11414, 11415, 11416, 11417, 11418, 11419, 11420, 11421, 11422, 11423, 11424, 11425, 11426, 11427, 11428, 11429, 11430, 11431, 11432, 11433, 11434, 11435, 11436, 11437, 11438, 11439, 11440, 11441, 11442, 11443, 11444, 11445, 11446, 11447, 11448, 11449, 11450, 11451, 11452, 11453, 11454, 11455, 11456, 11457, 11458, 11459, 11460, 11461, 11462, 11463, 11464, 11465, 11466, 11467, 11468, 11469, 11470, 11471, 11472, 11473, 11474, 11475, 11476, 11477, 11478, 11479, 11480, 11481, 11482, 11483, 11484, 11485, 11486, 11487, 11488, 11489, 11490, 11491, 11492, 11493, 11494, 11495, 11496, 11497, 11498, 11499, 11500, 11501, 11502, 11503, 11504, 11505, 11506, 11507, 11508, 11509, 11510, 11511, 11512, 11513, 11514, 11515, 11516, 11517, 11518, 11519, 11520, 11521, 11522, 11523, 11524, 11525, 11526, 11527, 11528, 11529, 11530, 11531, 11532, 11533, 11534, 11535, 11536, 11537, 11538, 11539, 11540, 11541, 11542, 11543, 11544, 11545, 11546, 11547, 11548, 11549, 11550, 11551, 11552, 11553, 11554, 11555, 11556, 11557, 11558, 11559, 11560, 11561, 11562, 11563, 11564, 11565, 11566, 11567, 11568, 11569, 11570, 11571, 11572, 11573, 11574, 11575, 11576, 11577, 11578, 11579, 11580, 11581, 11582, 11583, 11584, 11585, 11586, 11587, 11588, 11589, 11590, 11591, 11592, 11593, 11594, 11595, 11596, 11597, 11598, 11599, 11600, 11601, 11602, 11603, 11604, 11605, 11606, 11607, 11608, 11609, 11610, 11611, 11612, 11613, 11614, 11615, 11616, 11617, 11618, 11619, 11620, 11621, 11622, 11623, 11624, 11625, 11626, 11627, 11628, 11629, 11630, 11631, 11632, 11633, 11634, 11635, 11636, 11637, 11638, 11639, 11640, 11641, 11642, 11643, 11644, 11645, 11646, 11647, 11648, 11649, 11650, 11651, 11652, 11653, 11654, 11655, 11656, 11657, 11658, 11659, 11660, 11661, 11662, 11663, 11664, 11665, 11666, 11667, 11668, 11669, 11670, 11671, 11672, 11673, 11674, 11675, 11676, 11677, 11678, 11679, 11680, 11681, 11682, 11683, 11684, 11685, 11686, 11687, 11688, 11689, 11690, 11691, 11692, 11693, 11694, 11695, 11696, 11697, 11698, 11699, 11700, 11701, 11702, 11703, 11704, 11705, 11706, 11707, 11708, 11709, 11710, 11711, 11712, 11713, 11714, 11715, 11716, 11717, 11718, 11719, 11720, 11721, 11722, 11723, 11724, 11725, 11726, 11727, 11728, 11729, 11730, 11731, 11732, 11733, 11734, 11735, 11736, 11737, 11738, 11739, 11740, 11741, 11742, 11743, 11744, 11745, 11746, 11747, 11748, 11749, 11750, 11751, 11752, 11753, 11754, 11755, 11756, 11757, 11758, 11759, 11760, 11761, 11762, 11763, 11764, 11765, 11766, 11767, 11768, 11769, 11770, 11771, 11772, 11773, 11774, 11775, 11776, 11777, 11778, 11779, 11780, 11781, 11782, 11783, 11784, 11785, 11786, 11787, 11788, 11789, 11790, 11791, 11792, 11793, 11794, 11795, 11796, 11797, 11798, 11799, 11800, 11801, 11802, 11803, 11804, 11805, 11806, 11807, 11808, 11809, 11810, 11811, 11812, 11813, 11814, 11815, 11816, 11817, 11818, 11819, 11820, 11821, 11822, 11823, 11824, 11825, 11826, 11827, 11828, 11829, 11830, 11831, 11832, 11833, 11834, 11835, 11836, 11837, 11838, 11839, 11840, 11841, 11842, 11843, 11844, 11845, 11846, 11847, 11848, 11849, 11850, 11851, 11852, 11853, 11854, 11855, 11856, 11857, 11858, 11859, 11860, 11861, 11862, 11863, 11864, 11865, 11866, 11867, 11868, 11869, 11870, 11871, 11872, 11873, 11874, 11875, 11876, 11877, 11878, 11879, 11880, 11881, 11882, 11883, 11884, 11885, 11886, 11887, 11888, 11889, 11890, 11891, 11892, 11893, 11894, 11895, 11896, 11897, 11898, 11899, 11900, 11901, 11902, 11903, 11904, 11905, 11906, 11907, 11908, 11909, 11910, 11911, 11912, 11913, 11914, 11915, 11916, 11917, 11918, 11919, 11920, 11921, 11922, 11923, 11924, 11925, 11926, 11927, 11928, 11929, 11930, 11931, 11932, 11933, 11934, 11935, 11936, 11937, 11938, 11939, 11940, 11941, 11942, 11943, 11944, 11945, 11946, 11947, 11948, 11949, 11950, 11951, 11952, 11953, 11954, 11955, 11956, 11957, 11958, 11959, 11960, 11961, 11962, 11963, 11964, 11965, 11966, 11967, 11968, 11969, 11970, 11971, 11972, 11973, 11974, 11975, 11976, 11977, 11978, 11979, 11980, 11981, 11982, 11983, 11984, 11985, 11986, 11987, 11988, 11989, 11990, 11991, 11992, 11993, 11994, 11995, 11996, 11997, 11998, 11999, 12000, 12001, 12002, 12003, 12004, 12005, 12006, 12007, 12008, 12009, 12010, 12011, 12012, 12013, 12014, 12015, 12016, 12017, 12018, 12019, 12020, 12021, 12022, 12023, 12024, 12025, 12026, 12027, 12028, 12029, 12030, 12031, 12032, 12033, 12034, 12035, 12036, 12037, 12038, 12039, 12040, 12041, 12042, 12043, 12044, 12045, 12046, 12047, 12048, 12049, 12050, 12051, 12052, 12053, 12054, 12055, 12056, 12057, 12058, 12059, 12060, 12061, 12062, 12063, 12064, 12065, 12066, 12067, 12068, 12069, 12070, 12071, 12072, 12073, 12074, 12075, 12076, 12077, 12078, 12079, 12080, 12081, 12082, 12083, 12084, 12085, 12086, 12087, 12088, 12089, 12090, 12091, 12092, 12093, 12094, 12095, 12096, 12097, 12098, 12099, 12100, 12101, 12102, 12103, 12104, 12105, 12106, 12107, 12108, 12109, 12110, 12111, 12112, 12113, 12114, 12115, 12116, 12117, 12118, 12119, 12120, 12121, 12122, 12123, 12124, 12125, 12126, 12127, 12128, 12129, 12130, 12131, 12132, 12133, 12134, 12135, 12136, 12137, 12138, 12139, 12140, 12141, 12142, 12143, 12144, 12145, 12146, 12147, 12148, 12149, 12150, 12151, 12152, 12153, 12154, 12155, 12156, 12157, 12158, 12159, 12160, 12161, 12162, 12163, 12164, 12165, 12166, 12167, 12168, 12169, 12170, 12171, 12172, 12173, 12174, 12175, 12176, 12177, 12178, 12179, 12180, 12181, 12182, 12183, 12184, 12185, 12186, 12187, 12188, 12189, 12190, 12191, 12192, 12193, 12194, 12195, 12196, 12197, 12198, 12199, 12200, 12201, 12202, 12203, 12204, 12205, 12206, 12207, 12208, 12209, 12210, 12211, 12212, 12213, 12214, 12215, 12216, 12217, 12218, 12219, 12220, 12221, 12222, 12223, 12224, 12225, 12226, 12227, 12228, 12229, 12230, 12231, 12232, 12233, 12234, 12235, 12236, 12237, 12238, 12239, 12240, 12241, 12242, 12243, 12244, 12245, 12246, 12247, 12248, 12249, 12250, 12251, 12252, 12253, 12254, 12255, 12256, 12257, 12258, 12259, 12260, 12261, 12262, 12263, 12264, 12265, 12266, 12267, 12268, 12269, 12270, 12271, 12272, 12273, 12274, 12275, 12276, 12277, 12278, 12279, 12280, 12281, 12282, 12283, 12284, 12285, 12286, 12287, 12288, 12289, 12290, 12291, 12292, 12293, 12294, 12295, 12296, 12297, 12298, 12299, 12300, 12301, 12302, 12303, 12304, 12305, 12306, 12307, 12308, 12309, 12310, 12311, 12312, 12313, 12314, 12315, 12316, 12317, 12318, 12319, 12320, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329, 12330, 12331, 12332, 12333, 12334, 12335, 12336, 12337, 12338, 12339, 12340, 12341, 12342, 12343, 12344, 12345, 12346, 12347, 12348, 12349, 12350, 12351, 12352, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, 12436, 12437, 12438, 12439, 12440, 12441, 12442, 12443, 12444, 12445, 12446, 12447, 12448, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12522, 12523, 12524, 12525, 12526, 12527, 12528, 12529, 12530, 12531, 12532, 12533, 12534, 12535, 12536, 12537, 12538, 12539, 12540, 12541, 12542, 12543, 12544, 12545, 12546, 12547, 12548, 12549, 12550, 12551, 12552, 12553, 12554, 12555, 12556, 12557, 12558, 12559, 12560, 12561, 12562, 12563, 12564, 12565, 12566, 12567, 12568, 12569, 12570, 12571, 12572, 12573, 12574, 12575, 12576, 12577, 12578, 12579, 12580, 12581, 12582, 12583, 12584, 12585, 12586, 12587, 12588, 12589, 12590, 12591, 12592, 12593, 12594, 12595, 12596, 12597, 12598, 12599, 12600, 12601, 12602, 12603, 12604, 12605, 12606, 12607, 12608, 12609, 12610, 12611, 12612, 12613, 12614, 12615, 12616, 12617, 12618, 12619, 12620, 12621, 12622, 12623, 12624, 12625, 12626, 12627, 12628, 12629, 12630, 12631, 12632, 12633, 12634, 12635, 12636, 12637, 12638, 12639, 12640, 12641, 12642, 12643, 12644, 12645, 12646, 12647, 12648, 12649, 12650, 12651, 12652, 12653, 12654, 12655, 12656, 12657, 12658, 12659, 12660, 12661, 12662, 12663, 12664, 12665, 12666, 12667, 12668, 12669, 12670, 12671, 12672, 12673, 12674, 12675, 12676, 12677, 12678, 12679, 12680, 12681, 12682, 12683, 12684, 12685, 12686, 12687, 12688, 12689, 12690, 12691, 12692, 12693, 12694, 12695, 12696, 12697, 12698, 12699, 12700, 12701, 12702, 12703, 12704, 12705, 12706, 12707, 12708, 12709, 12710, 12711, 12712, 12713, 12714, 12715, 12716, 12717, 12718, 12719}}, {1, {0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, -12, -13, -14, -15, -16, -17, -18, -19, -20, -21, -22, -23, -24, -25, -26, -27, -28, -29, -30, -31, -32, -33, -34, -35, -36, -37, -38, -39, -40, -41, -42, -43, -44, -45, -46, -47, -48, -49, -50, -51, -52, -53, -54, -55, -56, -57, -58, -59, -60, -61, -62, -63, -64, -65, -66, -67, -68, -69, -70, -71, -72, -73, -74, -75, -76, -77, -78, -79, -80, -81, -82, -83, -84, -85, -86, -87, -88, -89, -90, -91, -92, -93, -94, -95, -96, -97, -98, -99, -100, -101, -102, -103, -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -114, -115, -116, -117, -118, -119, -120, -121, -122, -123, -124, -125, -126, -127, -128, -129, -130, -131, -132, -133, -134, -135, -136, -137, -138, -139, -140, -141, -142, -143, -144, -145, -146, -147, -148, -149, -150, -151, -152, -153, -154, -155, -156, -157, -158, -159, -160, -161, -162, -163, -164, -165, -166, -167, -168, -169, -170, -171, -172, -173, -174, -175, -176, -177, -178, -179, -180, -181, -182, -183, -184, -185, -186, -187, -188, -189, -190, -191, -192, -193, -194, -195, -196, -197, -198, -199, -200, -201, -202, -203, -204, -205, -206, -207, -208, -209, -210, -211, -212, -213, -214, -215, -216, -217, -218, -219, -220, -221, -222, -223, -224, -225, -226, -227, -228, -229, -230, -231, -232, -233, -234, -235, -236, -237, -238, -239, -240, -241, -242, -243, -244, -245, -246, -247, -248, -249, -250, -251, -252, -253, -254, -255, -256, -257, -258, -259, -260, -261, -262, -263, -264, -265, -266, -267, -268, -269, -270, -271, -272, -273, -274, -275, -276, -277, -278, -279, -280, -281, -282, -283, -284, -285, -286, -287, -288, -289, -290, -291, -292, -293, -294, -295, -296, -297, -298, -299, -300, -301, -302, -303, -304, -305, -306, -307, -308, -309, -310, -311, -312, -313, -314, -315, -316, -317, -318, -319, -320, -321, -322, -323, -324, -325, -326, -327, -328, -329, -330, -331, -332, -333, -334, -335, -336, -337, -338, -339, -340, -341, -342, -343, -344, -345, -346, -347, -348, -349, -350, -351, -352, -353, -354, -355, -356, -357, -358, -359, -360, -361, -362, -363, -364, -365, -366, -367, -368, -369, -370, -371, -372, -373, -374, -375, -376, -377, -378, -379, -380, -381, -382, -383, -384, -385, -386, -387, -388, -389, -390, -391, -392, -393, -394, -395, -396, -397, -398, -399, -400, -401, -402, -403, -404, -405, -406, -407, -408, -409, -410, -411, -412, -413, -414, -415, -416, -417, -418, -419, -420, -421, -422, -423, -424, -425, -426, -427, -428, -429, -430, -431, -432, -433, -434, -435, -436, -437, -438, -439, -440, -441, -442, -443, -444, -445, -446, -447, -448, -449, -450, -451, -452, -453, -454, -455, -456, -457, -458, -459, -460, -461, -462, -463, -464, -465, -466, -467, -468, -469, -470, -471, -472, -473, -474, -475, -476, -477, -478, -479, -480, -481, -482, -483, -484, -485, -486, -487, -488, -489, -490, -491, -492, -493, -494, -495, -496, -497, -498, -499, -500, -501, -502, -503, -504, -505, -506, -507, -508, -509, -510, -511, -512, -513, -514, -515, -516, -517, -518, -519, -520, -521, -522, -523, -524, -525, -526, -527, -528, -529, -530, -531, -532, -533, -534, -535, -536, -537, -538, -539, -540, -541, -542, -543, -544, -545, -546, -547, -548, -549, -550, -551, -552, -553, -554, -555, -556, -557, -558, -559, -560, -561, -562, -563, -564, -565, -566, -567, -568, -569, -570, -571, -572, -573, -574, -575, -576, -577, -578, -579, -580, -581, -582, -583, -584, -585, -586, -587, -588, -589, -590, -591, -592, -593, -594, -595, -596, -597, -598, -599, -600, -601, -602, -603, -604, -605, -606, -607, -608, -609, -610, -611, -612, -613, -614, -615, -616, -617, -618, -619, -620, -621, -622, -623, -624, -625, -626, -627, -628, -629, -630, -631, -632, -633, -634, -635, -636, -637, -638, -639, -640, -641, -642, -643, -644, -645, -646, -647, -648, -649, -650, -651, -652, -653, -654, -655, -656, -657, -658, -659, -660, -661, -662, -663, -664, -665, -666, -667, -668, -669, -670, -671, -672, -673, -674, -675, -676, -677, -678, -679, -680, -681, -682, -683, -684, -685, -686, -687, -688, -689, -690, -691, -692, -693, -694, -695, -696, -697, -698, -699, -700, -701, -702, -703, -704, -705, -706, -707, -708, -709, -710, -711, -712, -713, -714, -715, -716, -717, -718, -719, -720, -721, -722, -723, -724, -725, -726, -727, -728, -729, -730, -731, -732, -733, -734, -735, -736, -737, -738, -739, -740, -741, -742, -743, -744, -745, -746, -747, -748, -749, -750, -751, -752, -753, -754, -755, -756, -757, -758, -759, -760, -761, -762, -763, -764, -765, -766, -767, -768, -769, -770, -771, -772, -773, -774, -775, -776, -777, -778, -779, -780, -781, -782, -783, -784, -785, -786, -787, -788, -789, -790, -791, -792, -793, -794, -795, -796, -797, -798, -799, -800, -801, -802, -803, -804, -805, -806, -807, -808, -809, -810, -811, -812, -813, -814, -815, -816, -817, -818, -819, -820, -821, -822, -823, -824, -825, -826, -827, -828, -829, -830, -831, -832, -833, -834, -835, -836, -837, -838, -839, -840, -841, -842, -843, -844, -845, -846, -847, -848, -849, -850, -851, -852, -853, -854, -855, -856, -857, -858, -859, -860, -861, -862, -863, -864, -865, -866, -867, -868, -869, -870, -871, -872, -873, -874, -875, -876, -877, -878, -879, -880, -881, -882, -883, -884, -885, -886, -887, -888, -889, -890, -891, -892, -893, -894, -895, -896, -897, -898, -899, -900, -901, -902, -903, -904, -905, -906, -907, -908, -909, -910, -911, -912, -913, -914, -915, -916, -917, -918, -919, -920, -921, -922, -923, -924, -925, -926, -927, -928, -929, -930, -931, -932, -933, -934, -935, -936, -937, -938, -939, -940, -941, -942, -943, -944, -945, -946, -947, -948, -949, -950, -951, -952, -953, -954, -955, -956, -957, -958, -959, -960, -961, -962, -963, -964, -965, -966, -967, -968, -969, -970, -971, -972, -973, -974, -975, -976, -977, -978, -979, -980, -981, -982, -983, -984, -985, -986, -987, -988, -989, -990, -991, -992, -993, -994, -995, -996, -997, -998, -999, -1000, -1001, -1002, -1003, -1004, -1005, -1006, -1007, -1008, -1009, -1010, -1011, -1012, -1013, -1014, -1015, -1016, -1017, -1018, -1019, -1020, -1021, -1022, -1023, -1024, -1025, -1026, -1027, -1028, -1029, -1030, -1031, -1032, -1033, -1034, -1035, -1036, -1037, -1038, -1039, -1040, -1041, -1042, -1043, -1044, -1045, -1046, -1047, -1048, -1049, -1050, -1051, -1052, -1053, -1054, -1055, -1056, -1057, -1058, -1059, -1060, -1061, -1062, -1063, -1064, -1065, -1066, -1067, -1068, -1069, -1070, -1071, -1072, -1073, -1074, -1075, -1076, -1077, -1078, -1079, -1080, -1081, -1082, -1083, -1084, -1085, -1086, -1087, -1088, -1089, -1090, -1091, -1092, -1093, -1094, -1095, -1096, -1097, -1098, -1099, -1100, -1101, -1102, -1103, -1104, -1105, -1106, -1107, -1108, -1109, -1110, -1111, -1112, -1113, -1114, -1115, -1116, -1117, -1118, -1119, -1120, -1121, -1122, -1123, -1124, -1125, -1126, -1127, -1128, -1129, -1130, -1131, -1132, -1133, -1134, -1135, -1136, -1137, -1138, -1139, -1140, -1141, -1142, -1143, -1144, -1145, -1146, -1147, -1148, -1149, -1150, -1151, -1152, -1153, -1154, -1155, -1156, -1157, -1158, -1159, -1160, -1161, -1162, -1163, -1164, -1165, -1166, -1167, -1168, -1169, -1170, -1171, -1172, -1173, -1174, -1175, -1176, -1177, -1178, -1179, -1180, -1181, -1182, -1183, -1184, -1185, -1186, -1187, -1188, -1189, -1190, -1191, -1192, -1193, -1194, -1195, -1196, -1197, -1198, -1199, -1200, -1201, -1202, -1203, -1204, -1205, -1206, -1207, -1208, -1209, -1210, -1211, -1212, -1213, -1214, -1215, -1216, -1217, -1218, -1219, -1220, -1221, -1222, -1223, -1224, -1225, -1226, -1227, -1228, -1229, -1230, -1231, -1232, -1233, -1234, -1235, -1236, -1237, -1238, -1239, -1240, -1241, -1242, -1243, -1244, -1245, -1246, -1247, -1248, -1249, -1250, -1251, -1252, -1253, -1254, -1255, -1256, -1257, -1258, -1259, -1260, -1261, -1262, -1263, -1264, -1265, -1266, -1267, -1268, -1269, -1270, -1271, -1272, -1273, -1274, -1275, -1276, -1277, -1278, -1279, -1280, -1281, -1282, -1283, -1284, -1285, -1286, -1287, -1288, -1289, -1290, -1291, -1292, -1293, -1294, -1295, -1296, -1297, -1298, -1299, -1300, -1301, -1302, -1303, -1304, -1305, -1306, -1307, -1308, -1309, -1310, -1311, -1312, -1313, -1314, -1315, -1316, -1317, -1318, -1319, -1320, -1321, -1322, -1323, -1324, -1325, -1326, -1327, -1328, -1329, -1330, -1331, -1332, -1333, -1334, -1335, -1336, -1337, -1338, -1339, -1340, -1341, -1342, -1343, -1344, -1345, -1346, -1347, -1348, -1349, -1350, -1351, -1352, -1353, -1354, -1355, -1356, -1357, -1358, -1359, -1360, -1361, -1362, -1363, -1364, -1365, -1366, -1367, -1368, -1369, -1370, -1371, -1372, -1373, -1374, -1375, -1376, -1377, -1378, -1379, -1380, -1381, -1382, -1383, -1384, -1385, -1386, -1387, -1388, -1389, -1390, -1391, -1392, -1393, -1394, -1395, -1396, -1397, -1398, -1399, -1400, -1401, -1402, -1403, -1404, -1405, -1406, -1407, -1408, -1409, -1410, -1411, -1412, -1413, -1414, -1415, -1416, -1417, -1418, -1419, -1420, -1421, -1422, -1423, -1424, -1425, -1426, -1427, -1428, -1429, -1430, -1431, -1432, -1433, -1434, -1435, -1436, -1437, -1438, -1439, -1440, -1441, -1442, -1443, -1444, -1445, -1446, -1447, -1448, -1449, -1450, -1451, -1452, -1453, -1454, -1455, -1456, -1457, -1458, -1459, -1460, -1461, -1462, -1463, -1464, -1465, -1466, -1467, -1468, -1469, -1470, -1471, -1472, -1473, -1474, -1475, -1476, -1477, -1478, -1479, -1480, -1481, -1482, -1483, -1484, -1485, -1486, -1487, -1488, -1489, -1490, -1491, -1492, -1493, -1494, -1495, -1496, -1497, -1498, -1499, -1500, -1501, -1502, -1503, -1504, -1505, -1506, -1507, -1508, -1509, -1510, -1511, -1512, -1513, -1514, -1515, -1516, -1517, -1518, -1519, -1520, -1521, -1522, -1523, -1524, -1525, -1526, -1527, -1528, -1529, -1530, -1531, -1532, -1533, -1534, -1535, -1536, -1537, -1538, -1539, -1540, -1541, -1542, -1543, -1544, -1545, -1546, -1547, -1548, -1549, -1550, -1551, -1552, -1553, -1554, -1555, -1556, -1557, -1558, -1559, -1560, -1561, -1562, -1563, -1564, -1565, -1566, -1567, -1568, -1569, -1570, -1571, -1572, -1573, -1574, -1575, -1576, -1577, -1578, -1579, -1580, -1581, -1582, -1583, -1584, -1585, -1586, -1587, -1588, -1589, -1590, -1591, -1592, -1593, -1594, -1595, -1596, -1597, -1598, -1599, -1600, -1601, -1602, -1603, -1604, -1605, -1606, -1607, -1608, -1609, -1610, -1611, -1612, -1613, -1614, -1615, -1616, -1617, -1618, -1619, -1620, -1621, -1622, -1623, -1624, -1625, -1626, -1627, -1628, -1629, -1630, -1631, -1632, -1633, -1634, -1635, -1636, -1637, -1638, -1639, -1640, -1641, -1642, -1643, -1644, -1645, -1646, -1647, -1648, -1649, -1650, -1651, -1652, -1653, -1654, -1655, -1656, -1657, -1658, -1659, -1660, -1661, -1662, -1663, -1664, -1665, -1666, -1667, -1668, -1669, -1670, -1671, -1672, -1673, -1674, -1675, -1676, -1677, -1678, -1679, -1680, -1681, -1682, -1683, -1684, -1685, -1686, -1687, -1688, -1689, -1690, -1691, -1692, -1693, -1694, -1695, -1696, -1697, -1698, -1699, -1700, -1701, -1702, -1703, -1704, -1705, -1706, -1707, -1708, -1709, -1710, -1711, -1712, -1713, -1714, -1715, -1716, -1717, -1718, -1719, -1720, -1721, -1722, -1723, -1724, -1725, -1726, -1727, -1728, -1729, -1730, -1731, -1732, -1733, -1734, -1735, -1736, -1737, -1738, -1739, -1740, -1741, -1742, -1743, -1744, -1745, -1746, -1747, -1748, -1749, -1750, -1751, -1752, -1753, -1754, -1755, -1756, -1757, -1758, -1759, -1760, -1761, -1762, -1763, -1764, -1765, -1766, -1767, -1768, -1769, -1770, -1771, -1772, -1773, -1774, -1775, -1776, -1777, -1778, -1779, -1780, -1781, -1782, -1783, -1784, -1785, -1786, -1787, -1788, -1789, -1790, -1791, -1792, -1793, -1794, -1795, -1796, -1797, -1798, -1799, -1800, -1801, -1802, -1803, -1804, -1805, -1806, -1807, -1808, -1809, -1810, -1811, -1812, -1813, -1814, -1815, -1816, -1817, -1818, -1819, -1820, -1821, -1822, -1823, -1824, -1825, -1826, -1827, -1828, -1829, -1830, -1831, -1832, -1833, -1834, -1835, -1836, -1837, -1838, -1839, -1840, -1841, -1842, -1843, -1844, -1845, -1846, -1847, -1848, -1849, -1850, -1851, -1852, -1853, -1854, -1855, -1856, -1857, -1858, -1859, -1860, -1861, -1862, -1863, -1864, -1865, -1866, -1867, -1868, -1869, -1870, -1871, -1872, -1873, -1874, -1875, -1876, -1877, -1878, -1879, -1880, -1881, -1882, -1883, -1884, -1885, -1886, -1887, -1888, -1889, -1890, -1891, -1892, -1893, -1894, -1895, -1896, -1897, -1898, -1899, -1900, -1901, -1902, -1903, -1904, -1905, -1906, -1907, -1908, -1909, -1910, -1911, -1912, -1913, -1914, -1915, -1916, -1917, -1918, -1919, -1920, -1921, -1922, -1923, -1924, -1925, -1926, -1927, -1928, -1929, -1930, -1931, -1932, -1933, -1934, -1935, -1936, -1937, -1938, -1939, -1940, -1941, -1942, -1943, -1944, -1945, -1946, -1947, -1948, -1949, -1950, -1951, -1952, -1953, -1954, -1955, -1956, -1957, -1958, -1959, -1960, -1961, -1962, -1963, -1964, -1965, -1966, -1967, -1968, -1969, -1970, -1971, -1972, -1973, -1974, -1975, -1976, -1977, -1978, -1979, -1980, -1981, -1982, -1983, -1984, -1985, -1986, -1987, -1988, -1989, -1990, -1991, -1992, -1993, -1994, -1995, -1996, -1997, -1998, -1999, -2000, -2001, -2002, -2003, -2004, -2005, -2006, -2007, -2008, -2009, -2010, -2011, -2012, -2013, -2014, -2015, -2016, -2017, -2018, -2019, -2020, -2021, -2022, -2023, -2024, -2025, -2026, -2027, -2028, -2029, -2030, -2031, -2032, -2033, -2034, -2035, -2036, -2037, -2038, -2039, -2040, -2041, -2042, -2043, -2044, -2045, -2046, -2047, -2048, -2049, -2050, -2051, -2052, -2053, -2054, -2055, -2056, -2057, -2058, -2059, -2060, -2061, -2062, -2063, -2064, -2065, -2066, -2067, -2068, -2069, -2070, -2071, -2072, -2073, -2074, -2075, -2076, -2077, -2078, -2079, -2080, -2081, -2082, -2083, -2084, -2085, -2086, -2087, -2088, -2089, -2090, -2091, -2092, -2093, -2094, -2095, -2096, -2097, -2098, -2099, -2100, -2101, -2102, -2103, -2104, -2105, -2106, -2107, -2108, -2109, -2110, -2111, -2112, -2113, -2114, -2115, -2116, -2117, -2118, -2119, -2120, -2121, -2122, -2123, -2124, -2125, -2126, -2127, -2128, -2129, -2130, -2131, -2132, -2133, -2134, -2135, -2136, -2137, -2138, -2139, -2140, -2141, -2142, -2143, -2144, -2145, -2146, -2147, -2148, -2149, -2150, -2151, -2152, -2153, -2154, -2155, -2156, -2157, -2158, -2159, -2160, -2161, -2162, -2163, -2164, -2165, -2166, -2167, -2168, -2169, -2170, -2171, -2172, -2173, -2174, -2175, -2176, -2177, -2178, -2179, -2180, -2181, -2182, -2183, -2184, -2185, -2186, -2187, -2188, -2189, -2190, -2191, -2192, -2193, -2194, -2195, -2196, -2197, -2198, -2199, -2200, -2201, -2202, -2203, -2204, -2205, -2206, -2207, -2208, -2209, -2210, -2211, -2212, -2213, -2214, -2215, -2216, -2217, -2218, -2219, -2220, -2221, -2222, -2223, -2224, -2225, -2226, -2227, -2228, -2229, -2230, -2231, -2232, -2233, -2234, -2235, -2236, -2237, -2238, -2239, -2240, -2241, -2242, -2243, -2244, -2245, -2246, -2247, -2248, -2249, -2250, -2251, -2252, -2253, -2254, -2255, -2256, -2257, -2258, -2259, -2260, -2261, -2262, -2263, -2264, -2265, -2266, -2267, -2268, -2269, -2270, -2271, -2272, -2273, -2274, -2275, -2276, -2277, -2278, -2279, -2280, -2281, -2282, -2283, -2284, -2285, -2286, -2287, -2288, -2289, -2290, -2291, -2292, -2293, -2294, -2295, -2296, -2297, -2298, -2299, -2300, -2301, -2302, -2303, -2304, -2305, -2306, -2307, -2308, -2309, -2310, -2311, -2312, -2313, -2314, -2315, -2316, -2317, -2318, -2319, -2320, -2321, -2322, -2323, -2324, -2325, -2326, -2327, -2328, -2329, -2330, -2331, -2332, -2333, -2334, -2335, -2336, -2337, -2338, -2339, -2340, -2341, -2342, -2343, -2344, -2345, -2346, -2347, -2348, -2349, -2350, -2351, -2352, -2353, -2354, -2355, -2356, -2357, -2358, -2359, -2360, -2361, -2362, -2363, -2364, -2365, -2366, -2367, -2368, -2369, -2370, -2371, -2372, -2373, -2374, -2375, -2376, -2377, -2378, -2379, -2380, -2381, -2382, -2383, -2384, -2385, -2386, -2387, -2388, -2389, -2390, -2391, -2392, -2393, -2394, -2395, -2396, -2397, -2398, -2399, -2400, -2401, -2402, -2403, -2404, -2405, -2406, -2407, -2408, -2409, -2410, -2411, -2412, -2413, -2414, -2415, -2416, -2417, -2418, -2419, -2420, -2421, -2422, -2423, -2424, -2425, -2426, -2427, -2428, -2429, -2430, -2431, -2432, -2433, -2434, -2435, -2436, -2437, -2438, -2439, -2440, -2441, -2442, -2443, -2444, -2445, -2446, -2447, -2448, -2449, -2450, -2451, -2452, -2453, -2454, -2455, -2456, -2457, -2458, -2459, -2460, -2461, -2462, -2463, -2464, -2465, -2466, -2467, -2468, -2469, -2470, -2471, -2472, -2473, -2474, -2475, -2476, -2477, -2478, -2479, -2480, -2481, -2482, -2483, -2484, -2485, -2486, -2487, -2488, -2489, -2490, -2491, -2492, -2493, -2494, -2495, -2496, -2497, -2498, -2499, -2500, -2501, -2502, -2503, -2504, -2505, -2506, -2507, -2508, -2509, -2510, -2511, -2512, -2513, -2514, -2515, -2516, -2517, -2518, -2519, -2520, -2521, -2522, -2523, -2524, -2525, -2526, -2527, -2528, -2529, -2530, -2531, -2532, -2533, -2534, -2535, -2536, -2537, -2538, -2539, -2540, -2541, -2542, -2543, -2544, -2545, -2546, -2547, -2548, -2549, -2550, -2551, -2552, -2553, -2554, -2555, -2556, -2557, -2558, -2559, -2560, -2561, -2562, -2563, -2564, -2565, -2566, -2567, -2568, -2569, -2570, -2571, -2572, -2573, -2574, -2575, -2576, -2577, -2578, -2579, -2580, -2581, -2582, -2583, -2584, -2585, -2586, -2587, -2588, -2589, -2590, -2591, -2592, -2593, -2594, -2595, -2596, -2597, -2598, -2599, -2600, -2601, -2602, -2603, -2604, -2605, -2606, -2607, -2608, -2609, -2610, -2611, -2612, -2613, -2614, -2615, -2616, -2617, -2618, -2619, -2620, -2621, -2622, -2623, -2624, -2625, -2626, -2627, -2628, -2629, -2630, -2631, -2632, -2633, -2634, -2635, -2636, -2637, -2638, -2639, -2640, -2641, -2642, -2643, -2644, -2645, -2646, -2647, -2648, -2649, -2650, -2651, -2652, -2653, -2654, -2655, -2656, -2657, -2658, -2659, -2660, -2661, -2662, -2663, -2664, -2665, -2666, -2667, -2668, -2669, -2670, -2671, -2672, -2673, -2674, -2675, -2676, -2677, -2678, -2679, -2680, -2681, -2682, -2683, -2684, -2685, -2686, -2687, -2688, -2689, -2690, -2691, -2692, -2693, -2694, -2695, -2696, -2697, -2698, -2699, -2700, -2701, -2702, -2703, -2704, -2705, -2706, -2707, -2708, -2709, -2710, -2711, -2712, -2713, -2714, -2715, -2716, -2717, -2718, -2719, -2720, -2721, -2722, -2723, -2724, -2725, -2726, -2727, -2728, -2729, -2730, -2731, -2732, -2733, -2734, -2735, -2736, -2737, -2738, -2739, -2740, -2741, -2742, -2743, -2744, -2745, -2746, -2747, -2748, -2749, -2750, -2751, -2752, -2753, -2754, -2755, -2756, -2757, -2758, -2759, -2760, -2761, -2762, -2763, -2764, -2765, -2766, -2767, -2768, -2769, -2770, -2771, -2772, -2773, -2774, -2775, -2776, -2777, -2778, -2779, -2780, -2781, -2782, -2783, -2784, -2785, -2786, -2787, -2788, -2789, -2790, -2791, -2792, -2793, -2794, -2795, -2796, -2797, -2798, -2799, -2800, -2801, -2802, -2803, -2804, -2805, -2806, -2807, -2808, -2809, -2810, -2811, -2812, -2813, -2814, -2815, -2816, -2817, -2818, -2819, -2820, -2821, -2822, -2823, -2824, -2825, -2826, -2827, -2828, -2829, -2830, -2831, -2832, -2833, -2834, -2835, -2836, -2837, -2838, -2839, -2840, -2841, -2842, -2843, -2844, -2845, -2846, -2847, -2848, -2849, -2850, -2851, -2852, -2853, -2854, -2855, -2856, -2857, -2858, -2859, -2860, -2861, -2862, -2863, -2864, -2865, -2866, -2867, -2868, -2869, -2870, -2871, -2872, -2873, -2874, -2875, -2876, -2877, -2878, -2879, -2880, -2881, -2882, -2883, -2884, -2885, -2886, -2887, -2888, -2889, -2890, -2891, -2892, -2893, -2894, -2895, -2896, -2897, -2898, -2899, -2900, -2901, -2902, -2903, -2904, -2905, -2906, -2907, -2908, -2909, -2910, -2911, -2912, -2913, -2914, -2915, -2916, -2917, -2918, -2919, -2920, -2921, -2922, -2923, -2924, -2925, -2926, -2927, -2928, -2929, -2930, -2931, -2932, -2933, -2934, -2935, -2936, -2937, -2938, -2939, -2940, -2941, -2942, -2943, -2944, -2945, -2946, -2947, -2948, -2949, -2950, -2951, -2952, -2953, -2954, -2955, -2956, -2957, -2958, -2959, -2960, -2961, -2962, -2963, -2964, -2965, -2966, -2967, -2968, -2969, -2970, -2971, -2972, -2973, -2974, -2975, -2976, -2977, -2978, -2979, -2980, -2981, -2982, -2983, -2984, -2985, -2986, -2987, -2988, -2989, -2990, -2991, -2992, -2993, -2994, -2995, -2996, -2997, -2998, -2999, -3000, -3001, -3002, -3003, -3004, -3005, -3006, -3007, -3008, -3009, -3010, -3011, -3012, -3013, -3014, -3015, -3016, -3017, -3018, -3019, -3020, -3021, -3022, -3023, -3024, -3025, -3026, -3027, -3028, -3029, -3030, -3031, -3032, -3033, -3034, -3035, -3036, -3037, -3038, -3039, -3040, -3041, -3042, -3043, -3044, -3045, -3046, -3047, -3048, -3049, -3050, -3051, -3052, -3053, -3054, -3055, -3056, -3057, -3058, -3059, -3060, -3061, -3062, -3063, -3064, -3065, -3066, -3067, -3068, -3069, -3070, -3071, -3072, -3073, -3074, -3075, -3076, -3077, -3078, -3079, -3080, -3081, -3082, -3083, -3084, -3085, -3086, -3087, -3088, -3089, -3090, -3091, -3092, -3093, -3094, -3095, -3096, -3097, -3098, -3099, -3100, -3101, -3102, -3103, -3104, -3105, -3106, -3107, -3108, -3109, -3110, -3111, -3112, -3113, -3114, -3115, -3116, -3117, -3118, -3119, -3120, -3121, -3122, -3123, -3124, -3125, -3126, -3127, -3128, -3129, -3130, -3131, -3132, -3133, -3134, -3135, -3136, -3137, -3138, -3139, -3140, -3141, -3142, -3143, -3144, -3145, -3146, -3147, -3148, -3149, -3150, -3151, -3152, -3153, -3154, -3155, -3156, -3157, -3158, -3159, -3160, -3161, -3162, -3163, -3164, -3165, -3166, -3167, -3168, -3169, -3170, -3171, -3172, -3173, -3174, -3175, -3176, -3177, -3178, -3179, -3180, -3181, -3182, -3183, -3184, -3185, -3186, -3187, -3188, -3189, -3190, -3191, -3192, -3193, -3194, -3195, -3196, -3197, -3198, -3199, -3200, -3201, -3202, -3203, -3204, -3205, -3206, -3207, -3208, -3209, -3210, -3211, -3212, -3213, -3214, -3215, -3216, -3217, -3218, -3219, -3220, -3221, -3222, -3223, -3224, -3225, -3226, -3227, -3228, -3229, -3230, -3231, -3232, -3233, -3234, -3235, -3236, -3237, -3238, -3239, -3240, -3241, -3242, -3243, -3244, -3245, -3246, -3247, -3248, -3249, -3250, -3251, -3252, -3253, -3254, -3255, -3256, -3257, -3258, -3259, -3260, -3261, -3262, -3263, -3264, -3265, -3266, -3267, -3268, -3269, -3270, -3271, -3272, -3273, -3274, -3275, -3276, -3277, -3278, -3279, -3280, -3281, -3282, -3283, -3284, -3285, -3286, -3287, -3288, -3289, -3290, -3291, -3292, -3293, -3294, -3295, -3296, -3297, -3298, -3299, -3300, -3301, -3302, -3303, -3304, -3305, -3306, -3307, -3308, -3309, -3310, -3311, -3312, -3313, -3314, -3315, -3316, -3317, -3318, -3319, -3320, -3321, -3322, -3323, -3324, -3325, -3326, -3327, -3328, -3329, -3330, -3331, -3332, -3333, -3334, -3335, -3336, -3337, -3338, -3339, -3340, -3341, -3342, -3343, -3344, -3345, -3346, -3347, -3348, -3349, -3350, -3351, -3352, -3353, -3354, -3355, -3356, -3357, -3358, -3359, -3360, -3361, -3362, -3363, -3364, -3365, -3366, -3367, -3368, -3369, -3370, -3371, -3372, -3373, -3374, -3375, -3376, -3377, -3378, -3379, -3380, -3381, -3382, -3383, -3384, -3385, -3386, -3387, -3388, -3389, -3390, -3391, -3392, -3393, -3394, -3395, -3396, -3397, -3398, -3399, -3400, -3401, -3402, -3403, -3404, -3405, -3406, -3407, -3408, -3409, -3410, -3411, -3412, -3413, -3414, -3415, -3416, -3417, -3418, -3419, -3420, -3421, -3422, -3423, -3424, -3425, -3426, -3427, -3428, -3429, -3430, -3431, -3432, -3433, -3434, -3435, -3436, -3437, -3438, -3439, -3440, -3441, -3442, -3443, -3444, -3445, -3446, -3447, -3448, -3449, -3450, -3451, -3452, -3453, -3454, -3455, -3456, -3457, -3458, -3459, -3460, -3461, -3462, -3463, -3464, -3465, -3466, -3467, -3468, -3469, -3470, -3471, -3472, -3473, -3474, -3475, -3476, -3477, -3478, -3479, -3480, -3481, -3482, -3483, -3484, -3485, -3486, -3487, -3488, -3489, -3490, -3491, -3492, -3493, -3494, -3495, -3496, -3497, -3498, -3499, -3500, -3501, -3502, -3503, -3504, -3505, -3506, -3507, -3508, -3509, -3510, -3511, -3512, -3513, -3514, -3515, -3516, -3517, -3518, -3519, -3520, -3521, -3522, -3523, -3524, -3525, -3526, -3527, -3528, -3529, -3530, -3531, -3532, -3533, -3534, -3535, -3536, -3537, -3538, -3539, -3540, -3541, -3542, -3543, -3544, -3545, -3546, -3547, -3548, -3549, -3550, -3551, -3552, -3553, -3554, -3555, -3556, -3557, -3558, -3559, -3560, -3561, -3562, -3563, -3564, -3565, -3566, -3567, -3568, -3569, -3570, -3571, -3572, -3573, -3574, -3575, -3576, -3577, -3578, -3579, -3580, -3581, -3582, -3583, -3584, -3585, -3586, -3587, -3588, -3589, -3590, -3591, -3592, -3593, -3594, -3595, -3596, -3597, -3598, -3599, -3600, -3601, -3602, -3603, -3604, -3605, -3606, -3607, -3608, -3609, -3610, -3611, -3612, -3613, -3614, -3615, -3616, -3617, -3618, -3619, -3620, -3621, -3622, -3623, -3624, -3625, -3626, -3627, -3628, -3629, -3630, -3631, -3632, -3633, -3634, -3635, -3636, -3637, -3638, -3639, -3640, -3641, -3642, -3643, -3644, -3645, -3646, -3647, -3648, -3649, -3650, -3651, -3652, -3653, -3654, -3655, -3656, -3657, -3658, -3659, -3660, -3661, -3662, -3663, -3664, -3665, -3666, -3667, -3668, -3669, -3670, -3671, -3672, -3673, -3674, -3675, -3676, -3677, -3678, -3679, -3680, -3681, -3682, -3683, -3684, -3685, -3686, -3687, -3688, -3689, -3690, -3691, -3692, -3693, -3694, -3695, -3696, -3697, -3698, -3699, -3700, -3701, -3702, -3703, -3704, -3705, -3706, -3707, -3708, -3709, -3710, -3711, -3712, -3713, -3714, -3715, -3716, -3717, -3718, -3719, -3720, -3721, -3722, -3723, -3724, -3725, -3726, -3727, -3728, -3729, -3730, -3731, -3732, -3733, -3734, -3735, -3736, -3737, -3738, -3739, -3740, -3741, -3742, -3743, -3744, -3745, -3746, -3747, -3748, -3749, -3750, -3751, -3752, -3753, -3754, -3755, -3756, -3757, -3758, -3759, -3760, -3761, -3762, -3763, -3764, -3765, -3766, -3767, -3768, -3769, -3770, -3771, -3772, -3773, -3774, -3775, -3776, -3777, -3778, -3779, -3780, -3781, -3782, -3783, -3784, -3785, -3786, -3787, -3788, -3789, -3790, -3791, -3792, -3793, -3794, -3795, -3796, -3797, -3798, -3799, -3800, -3801, -3802, -3803, -3804, -3805, -3806, -3807, -3808, -3809, -3810, -3811, -3812, -3813, -3814, -3815, -3816, -3817, -3818, -3819, -3820, -3821, -3822, -3823, -3824, -3825, -3826, -3827, -3828, -3829, -3830, -3831, -3832, -3833, -3834, -3835, -3836, -3837, -3838, -3839, -3840, -3841, -3842, -3843, -3844, -3845, -3846, -3847, -3848, -3849, -3850, -3851, -3852, -3853, -3854, -3855, -3856, -3857, -3858, -3859, -3860, -3861, -3862, -3863, -3864, -3865, -3866, -3867, -3868, -3869, -3870, -3871, -3872, -3873, -3874, -3875, -3876, -3877, -3878, -3879, -3880, -3881, -3882, -3883, -3884, -3885, -3886, -3887, -3888, -3889, -3890, -3891, -3892, -3893, -3894, -3895, -3896, -3897, -3898, -3899, -3900, -3901, -3902, -3903, -3904, -3905, -3906, -3907, -3908, -3909, -3910, -3911, -3912, -3913, -3914, -3915, -3916, -3917, -3918, -3919, -3920, -3921, -3922, -3923, -3924, -3925, -3926, -3927, -3928, -3929, -3930, -3931, -3932, -3933, -3934, -3935, -3936, -3937, -3938, -3939, -3940, -3941, -3942, -3943, -3944, -3945, -3946, -3947, -3948, -3949, -3950, -3951, -3952, -3953, -3954, -3955, -3956, -3957, -3958, -3959, -3960, -3961, -3962, -3963, -3964, -3965, -3966, -3967, -3968, -3969, -3970, -3971, -3972, -3973, -3974, -3975, -3976, -3977, -3978, -3979, -3980, -3981, -3982, -3983, -3984, -3985, -3986, -3987, -3988, -3989, -3990, -3991, -3992, -3993, -3994, -3995, -3996, -3997, -3998, -3999, -4000, -4001, -4002, -4003, -4004, -4005, -4006, -4007, -4008, -4009, -4010, -4011, -4012, -4013, -4014, -4015, -4016, -4017, -4018, -4019, -4020, -4021, -4022, -4023, -4024, -4025, -4026, -4027, -4028, -4029, -4030, -4031, -4032, -4033, -4034, -4035, -4036, -4037, -4038, -4039, -4040, -4041, -4042, -4043, -4044, -4045, -4046, -4047, -4048, -4049, -4050, -4051, -4052, -4053, -4054, -4055, -4056, -4057, -4058, -4059, -4060, -4061, -4062, -4063, -4064, -4065, -4066, -4067, -4068, -4069, -4070, -4071, -4072, -4073, -4074, -4075, -4076, -4077, -4078, -4079, -4080, -4081, -4082, -4083, -4084, -4085, -4086, -4087, -4088, -4089, -4090, -4091, -4092, -4093, -4094, -4095, -4096, -4097, -4098, -4099, -4100, -4101, -4102, -4103, -4104, -4105, -4106, -4107, -4108, -4109, -4110, -4111, -4112, -4113, -4114, -4115, -4116, -4117, -4118, -4119, -4120, -4121, -4122, -4123, -4124, -4125, -4126, -4127, -4128, -4129, -4130, -4131, -4132, -4133, -4134, -4135, -4136, -4137, -4138, -4139, -4140, -4141, -4142, -4143, -4144, -4145, -4146, -4147, -4148, -4149, -4150, -4151, -4152, -4153, -4154, -4155, -4156, -4157, -4158, -4159, -4160, -4161, -4162, -4163, -4164, -4165, -4166, -4167, -4168, -4169, -4170, -4171, -4172, -4173, -4174, -4175, -4176, -4177, -4178, -4179, -4180, -4181, -4182, -4183, -4184, -4185, -4186, -4187, -4188, -4189, -4190, -4191, -4192, -4193, -4194, -4195, -4196, -4197, -4198, -4199, -4200, -4201, -4202, -4203, -4204, -4205, -4206, -4207, -4208, -4209, -4210, -4211, -4212, -4213, -4214, -4215, -4216, -4217, -4218, -4219, -4220, -4221, -4222, -4223, -4224, -4225, -4226, -4227, -4228, -4229, -4230, -4231, -4232, -4233, -4234, -4235, -4236, -4237, -4238, -4239, -4240, -4241, -4242, -4243, -4244, -4245, -4246, -4247, -4248, -4249, -4250, -4251, -4252, -4253, -4254, -4255, -4256, -4257, -4258, -4259, -4260, -4261, -4262, -4263, -4264, -4265, -4266, -4267, -4268, -4269, -4270, -4271, -4272, -4273, -4274, -4275, -4276, -4277, -4278, -4279, -4280, -4281, -4282, -4283, -4284, -4285, -4286, -4287, -4288, -4289, -4290, -4291, -4292, -4293, -4294, -4295, -4296, -4297, -4298, -4299, -4300, -4301, -4302, -4303, -4304, -4305, -4306, -4307, -4308, -4309, -4310, -4311, -4312, -4313, -4314, -4315, -4316, -4317, -4318, -4319, -4320, -4321, -4322, -4323, -4324, -4325, -4326, -4327, -4328, -4329, -4330, -4331, -4332, -4333, -4334, -4335, -4336, -4337, -4338, -4339, -4340, -4341, -4342, -4343, -4344, -4345, -4346, -4347, -4348, -4349, -4350, -4351, -4352, -4353, -4354, -4355, -4356, -4357, -4358, -4359, -4360, -4361, -4362, -4363, -4364, -4365, -4366, -4367, -4368, -4369, -4370, -4371, -4372, -4373, -4374, -4375, -4376, -4377, -4378, -4379, -4380, -4381, -4382, -4383, -4384, -4385, -4386, -4387, -4388, -4389, -4390, -4391, -4392, -4393, -4394, -4395, -4396, -4397, -4398, -4399, -4400, -4401, -4402, -4403, -4404, -4405, -4406, -4407, -4408, -4409, -4410, -4411, -4412, -4413, -4414, -4415, -4416, -4417, -4418, -4419, -4420, -4421, -4422, -4423, -4424, -4425, -4426, -4427, -4428, -4429, -4430, -4431, -4432, -4433, -4434, -4435, -4436, -4437, -4438, -4439, -4440, -4441, -4442, -4443, -4444, -4445, -4446, -4447, -4448, -4449, -4450, -4451, -4452, -4453, -4454, -4455, -4456, -4457, -4458, -4459, -4460, -4461, -4462, -4463, -4464, -4465, -4466, -4467, -4468, -4469, -4470, -4471, -4472, -4473, -4474, -4475, -4476, -4477, -4478, -4479, -4480, -4481, -4482, -4483, -4484, -4485, -4486, -4487, -4488, -4489, -4490, -4491, -4492, -4493, -4494, -4495, -4496, -4497, -4498, -4499, -4500, -4501, -4502, -4503, -4504, -4505, -4506, -4507, -4508, -4509, -4510, -4511, -4512, -4513, -4514, -4515, -4516, -4517, -4518, -4519, -4520, -4521, -4522, -4523, -4524, -4525, -4526, -4527, -4528, -4529, -4530, -4531, -4532, -4533, -4534, -4535, -4536, -4537, -4538, -4539, -4540, -4541, -4542, -4543, -4544, -4545, -4546, -4547, -4548, -4549, -4550, -4551, -4552, -4553, -4554, -4555, -4556, -4557, -4558, -4559, -4560, -4561, -4562, -4563, -4564, -4565, -4566, -4567, -4568, -4569, -4570, -4571, -4572, -4573, -4574, -4575, -4576, -4577, -4578, -4579, -4580, -4581, -4582, -4583, -4584, -4585, -4586, -4587, -4588, -4589, -4590, -4591, -4592, -4593, -4594, -4595, -4596, -4597, -4598, -4599, -4600, -4601, -4602, -4603, -4604, -4605, -4606, -4607, -4608, -4609, -4610, -4611, -4612, -4613, -4614, -4615, -4616, -4617, -4618, -4619, -4620, -4621, -4622, -4623, -4624, -4625, -4626, -4627, -4628, -4629, -4630, -4631, -4632, -4633, -4634, -4635, -4636, -4637, -4638, -4639, -4640, -4641, -4642, -4643, -4644, -4645, -4646, -4647, -4648, -4649, -4650, -4651, -4652, -4653, -4654, -4655, -4656, -4657, -4658, -4659, -4660, -4661, -4662, -4663, -4664, -4665, -4666, -4667, -4668, -4669, -4670, -4671, -4672, -4673, -4674, -4675, -4676, -4677, -4678, -4679, -4680, -4681, -4682, -4683, -4684, -4685, -4686, -4687, -4688, -4689, -4690, -4691, -4692, -4693, -4694, -4695, -4696, -4697, -4698, -4699, -4700, -4701, -4702, -4703, -4704, -4705, -4706, -4707, -4708, -4709, -4710, -4711, -4712, -4713, -4714, -4715, -4716, -4717, -4718, -4719, -4720, -4721, -4722, -4723, -4724, -4725, -4726, -4727, -4728, -4729, -4730, -4731, -4732, -4733, -4734, -4735, -4736, -4737, -4738, -4739, -4740, -4741, -4742, -4743, -4744, -4745, -4746, -4747, -4748, -4749, -4750, -4751, -4752, -4753, -4754, -4755, -4756, -4757, -4758, -4759, -4760, -4761, -4762, -4763, -4764, -4765, -4766, -4767, -4768, -4769, -4770, -4771, -4772, -4773, -4774, -4775, -4776, -4777, -4778, -4779, -4780, -4781, -4782, -4783, -4784, -4785, -4786, -4787, -4788, -4789, -4790, -4791, -4792, -4793, -4794, -4795, -4796, -4797, -4798, -4799, -4800, -4801, -4802, -4803, -4804, -4805, -4806, -4807, -4808, -4809, -4810, -4811, -4812, -4813, -4814, -4815, -4816, -4817, -4818, -4819, -4820, -4821, -4822, -4823, -4824, -4825, -4826, -4827, -4828, -4829, -4830, -4831, -4832, -4833, -4834, -4835, -4836, -4837, -4838, -4839, -4840, -4841, -4842, -4843, -4844, -4845, -4846, -4847, -4848, -4849, -4850, -4851, -4852, -4853, -4854, -4855, -4856, -4857, -4858, -4859, -4860, -4861, -4862, -4863, -4864, -4865, -4866, -4867, -4868, -4869, -4870, -4871, -4872, -4873, -4874, -4875, -4876, -4877, -4878, -4879, -4880, -4881, -4882, -4883, -4884, -4885, -4886, -4887, -4888, -4889, -4890, -4891, -4892, -4893, -4894, -4895, -4896, -4897, -4898, -4899, -4900, -4901, -4902, -4903, -4904, -4905, -4906, -4907, -4908, -4909, -4910, -4911, -4912, -4913, -4914, -4915, -4916, -4917, -4918, -4919, -4920, -4921, -4922, -4923, -4924, -4925, -4926, -4927, -4928, -4929, -4930, -4931, -4932, -4933, -4934, -4935, -4936, -4937, -4938, -4939, -4940, -4941, -4942, -4943, -4944, -4945, -4946, -4947, -4948, -4949, -4950, -4951, -4952, -4953, -4954, -4955, -4956, -4957, -4958, -4959, -4960, -4961, -4962, -4963, -4964, -4965, -4966, -4967, -4968, -4969, -4970, -4971, -4972, -4973, -4974, -4975, -4976, -4977, -4978, -4979, -4980, -4981, -4982, -4983, -4984, -4985, -4986, -4987, -4988, -4989, -4990, -4991, -4992, -4993, -4994, -4995, -4996, -4997, -4998, -4999, -5000, -5001, -5002, -5003, -5004, -5005, -5006, -5007, -5008, -5009, -5010, -5011, -5012, -5013, -5014, -5015, -5016, -5017, -5018, -5019, -5020, -5021, -5022, -5023, -5024, -5025, -5026, -5027, -5028, -5029, -5030, -5031, -5032, -5033, -5034, -5035, -5036, -5037, -5038, -5039, -5040, -5041, -5042, -5043, -5044, -5045, -5046, -5047, -5048, -5049, -5050, -5051, -5052, -5053, -5054, -5055, -5056, -5057, -5058, -5059, -5060, -5061, -5062, -5063, -5064, -5065, -5066, -5067, -5068, -5069, -5070, -5071, -5072, -5073, -5074, -5075, -5076, -5077, -5078, -5079, -5080, -5081, -5082, -5083, -5084, -5085, -5086, -5087, -5088, -5089, -5090, -5091, -5092, -5093, -5094, -5095, -5096, -5097, -5098, -5099, -5100, -5101, -5102, -5103, -5104, -5105, -5106, -5107, -5108, -5109, -5110, -5111, -5112, -5113, -5114, -5115, -5116, -5117, -5118, -5119, -5120, -5121, -5122, -5123, -5124, -5125, -5126, -5127, -5128, -5129, -5130, -5131, -5132, -5133, -5134, -5135, -5136, -5137, -5138, -5139, -5140, -5141, -5142, -5143, -5144, -5145, -5146, -5147, -5148, -5149, -5150, -5151, -5152, -5153, -5154, -5155, -5156, -5157, -5158, -5159, -5160, -5161, -5162, -5163, -5164, -5165, -5166, -5167, -5168, -5169, -5170, -5171, -5172, -5173, -5174, -5175, -5176, -5177, -5178, -5179, -5180, -5181, -5182, -5183, -5184, -5185, -5186, -5187, -5188, -5189, -5190, -5191, -5192, -5193, -5194, -5195, -5196, -5197, -5198, -5199, -5200, -5201, -5202, -5203, -5204, -5205, -5206, -5207, -5208, -5209, -5210, -5211, -5212, -5213, -5214, -5215, -5216, -5217, -5218, -5219, -5220, -5221, -5222, -5223, -5224, -5225, -5226, -5227, -5228, -5229, -5230, -5231, -5232, -5233, -5234, -5235, -5236, -5237, -5238, -5239, -5240, -5241, -5242, -5243, -5244, -5245, -5246, -5247, -5248, -5249, -5250, -5251, -5252, -5253, -5254, -5255, -5256, -5257, -5258, -5259, -5260, -5261, -5262, -5263, -5264, -5265, -5266, -5267, -5268, -5269, -5270, -5271, -5272, -5273, -5274, -5275, -5276, -5277, -5278, -5279, -5280, -5281, -5282, -5283, -5284, -5285, -5286, -5287, -5288, -5289, -5290, -5291, -5292, -5293, -5294, -5295, -5296, -5297, -5298, -5299, -5300, -5301, -5302, -5303, -5304, -5305, -5306, -5307, -5308, -5309, -5310, -5311, -5312, -5313, -5314, -5315, -5316, -5317, -5318, -5319, -5320, -5321, -5322, -5323, -5324, -5325, -5326, -5327, -5328, -5329, -5330, -5331, -5332, -5333, -5334, -5335, -5336, -5337, -5338, -5339, -5340, -5341, -5342, -5343, -5344, -5345, -5346, -5347, -5348, -5349, -5350, -5351, -5352, -5353, -5354, -5355, -5356, -5357, -5358, -5359, -5360, -5361, -5362, -5363, -5364, -5365, -5366, -5367, -5368, -5369, -5370, -5371, -5372, -5373, -5374, -5375, -5376, -5377, -5378, -5379, -5380, -5381, -5382, -5383, -5384, -5385, -5386, -5387, -5388, -5389, -5390, -5391, -5392, -5393, -5394, -5395, -5396, -5397, -5398, -5399, -5400, -5401, -5402, -5403, -5404, -5405, -5406, -5407, -5408, -5409, -5410, -5411, -5412, -5413, -5414, -5415, -5416, -5417, -5418, -5419, -5420, -5421, -5422, -5423, -5424, -5425, -5426, -5427, -5428, -5429, -5430, -5431, -5432, -5433, -5434, -5435, -5436, -5437, -5438, -5439, -5440, -5441, -5442, -5443, -5444, -5445, -5446, -5447, -5448, -5449, -5450, -5451, -5452, -5453, -5454, -5455, -5456, -5457, -5458, -5459, -5460, -5461, -5462, -5463, -5464, -5465, -5466, -5467, -5468, -5469, -5470, -5471, -5472, -5473, -5474, -5475, -5476, -5477, -5478, -5479, -5480, -5481, -5482, -5483, -5484, -5485, -5486, -5487, -5488, -5489, -5490, -5491, -5492, -5493, -5494, -5495, -5496, -5497, -5498, -5499, -5500, -5501, -5502, -5503, -5504, -5505, -5506, -5507, -5508, -5509, -5510, -5511, -5512, -5513, -5514, -5515, -5516, -5517, -5518, -5519, -5520, -5521, -5522, -5523, -5524, -5525, -5526, -5527, -5528, -5529, -5530, -5531, -5532, -5533, -5534, -5535, -5536, -5537, -5538, -5539, -5540, -5541, -5542, -5543, -5544, -5545, -5546, -5547, -5548, -5549, -5550, -5551, -5552, -5553, -5554, -5555, -5556, -5557, -5558, -5559, -5560, -5561, -5562, -5563, -5564, -5565, -5566, -5567, -5568, -5569, -5570, -5571, -5572, -5573, -5574, -5575, -5576, -5577, -5578, -5579, -5580, -5581, -5582, -5583, -5584, -5585, -5586, -5587, -5588, -5589, -5590, -5591, -5592, -5593, -5594, -5595, -5596, -5597, -5598, -5599, -5600, -5601, -5602, -5603, -5604, -5605, -5606, -5607, -5608, -5609, -5610, -5611, -5612, -5613, -5614, -5615, -5616, -5617, -5618, -5619, -5620, -5621, -5622, -5623, -5624, -5625, -5626, -5627, -5628, -5629, -5630, -5631, -5632, -5633, -5634, -5635, -5636, -5637, -5638, -5639, -5640, -5641, -5642, -5643, -5644, -5645, -5646, -5647, -5648, -5649, -5650, -5651, -5652, -5653, -5654, -5655, -5656, -5657, -5658, -5659, -5660, -5661, -5662, -5663, -5664, -5665, -5666, -5667, -5668, -5669, -5670, -5671, -5672, -5673, -5674, -5675, -5676, -5677, -5678, -5679, -5680, -5681, -5682, -5683, -5684, -5685, -5686, -5687, -5688, -5689, -5690, -5691, -5692, -5693, -5694, -5695, -5696, -5697, -5698, -5699, -5700, -5701, -5702, -5703, -5704, -5705, -5706, -5707, -5708, -5709, -5710, -5711, -5712, -5713, -5714, -5715, -5716, -5717, -5718, -5719, -5720, -5721, -5722, -5723, -5724, -5725, -5726, -5727, -5728, -5729, -5730, -5731, -5732, -5733, -5734, -5735, -5736, -5737, -5738, -5739, -5740, -5741, -5742, -5743, -5744, -5745, -5746, -5747, -5748, -5749, -5750, -5751, -5752, -5753, -5754, -5755, -5756, -5757, -5758, -5759, -5760, -5761, -5762, -5763, -5764, -5765, -5766, -5767, -5768, -5769, -5770, -5771, -5772, -5773, -5774, -5775, -5776, -5777, -5778, -5779, -5780, -5781, -5782, -5783, -5784, -5785, -5786, -5787, -5788, -5789, -5790, -5791, -5792, -5793, -5794, -5795, -5796, -5797, -5798, -5799, -5800, -5801, -5802, -5803, -5804, -5805, -5806, -5807, -5808, -5809, -5810, -5811, -5812, -5813, -5814, -5815, -5816, -5817, -5818, -5819, -5820, -5821, -5822, -5823, -5824, -5825, -5826, -5827, -5828, -5829, -5830, -5831, -5832, -5833, -5834, -5835, -5836, -5837, -5838, -5839, -5840, -5841, -5842, -5843, -5844, -5845, -5846, -5847, -5848, -5849, -5850, -5851, -5852, -5853, -5854, -5855, -5856, -5857, -5858, -5859, -5860, -5861, -5862, -5863, -5864, -5865, -5866, -5867, -5868, -5869, -5870, -5871, -5872, -5873, -5874, -5875, -5876, -5877, -5878, -5879, -5880, -5881, -5882, -5883, -5884, -5885, -5886, -5887, -5888, -5889, -5890, -5891, -5892, -5893, -5894, -5895, -5896, -5897, -5898, -5899, -5900, -5901, -5902, -5903, -5904, -5905, -5906, -5907, -5908, -5909, -5910, -5911, -5912, -5913, -5914, -5915, -5916, -5917, -5918, -5919, -5920, -5921, -5922, -5923, -5924, -5925, -5926, -5927, -5928, -5929, -5930, -5931, -5932, -5933, -5934, -5935, -5936, -5937, -5938, -5939, -5940, -5941, -5942, -5943, -5944, -5945, -5946, -5947, -5948, -5949, -5950, -5951, -5952, -5953, -5954, -5955, -5956, -5957, -5958, -5959, -5960, -5961, -5962, -5963, -5964, -5965, -5966, -5967, -5968, -5969, -5970, -5971, -5972, -5973, -5974, -5975, -5976, -5977, -5978, -5979, -5980, -5981, -5982, -5983, -5984, -5985, -5986, -5987, -5988, -5989, -5990, -5991, -5992, -5993, -5994, -5995, -5996, -5997, -5998, -5999, -6000, -6001, -6002, -6003, -6004, -6005, -6006, -6007, -6008, -6009, -6010, -6011, -6012, -6013, -6014, -6015, -6016, -6017, -6018, -6019, -6020, -6021, -6022, -6023, -6024, -6025, -6026, -6027, -6028, -6029, -6030, -6031, -6032, -6033, -6034, -6035, -6036, -6037, -6038, -6039, -6040, -6041, -6042, -6043, -6044, -6045, -6046, -6047, -6048, -6049, -6050, -6051, -6052, -6053, -6054, -6055, -6056, -6057, -6058, -6059, -6060, -6061, -6062, -6063, -6064, -6065, -6066, -6067, -6068, -6069, -6070, -6071, -6072, -6073, -6074, -6075, -6076, -6077, -6078, -6079, -6080, -6081, -6082, -6083, -6084, -6085, -6086, -6087, -6088, -6089, -6090, -6091, -6092, -6093, -6094, -6095, -6096, -6097, -6098, -6099, -6100, -6101, -6102, -6103, -6104, -6105, -6106, -6107, -6108, -6109, -6110, -6111, -6112, -6113, -6114, -6115, -6116, -6117, -6118, -6119, -6120, -6121, -6122, -6123, -6124, -6125, -6126, -6127, -6128, -6129, -6130, -6131, -6132, -6133, -6134, -6135, -6136, -6137, -6138, -6139, -6140, -6141, -6142, -6143, -6144, -6145, -6146, -6147, -6148, -6149, -6150, -6151, -6152, -6153, -6154, -6155, -6156, -6157, -6158, -6159, -6160, -6161, -6162, -6163, -6164, -6165, -6166, -6167, -6168, -6169, -6170, -6171, -6172, -6173, -6174, -6175, -6176, -6177, -6178, -6179, -6180, -6181, -6182, -6183, -6184, -6185, -6186, -6187, -6188, -6189, -6190, -6191, -6192, -6193, -6194, -6195, -6196, -6197, -6198, -6199, -6200, -6201, -6202, -6203, -6204, -6205, -6206, -6207, -6208, -6209, -6210, -6211, -6212, -6213, -6214, -6215, -6216, -6217, -6218, -6219, -6220, -6221, -6222, -6223, -6224, -6225, -6226, -6227, -6228, -6229, -6230, -6231, -6232, -6233, -6234, -6235, -6236, -6237, -6238, -6239, -6240, -6241, -6242, -6243, -6244, -6245, -6246, -6247, -6248, -6249, -6250, -6251, -6252, -6253, -6254, -6255, -6256, -6257, -6258, -6259, -6260, -6261, -6262, -6263, -6264, -6265, -6266, -6267, -6268, -6269, -6270, -6271, -6272, -6273, -6274, -6275, -6276, -6277, -6278, -6279, -6280, -6281, -6282, -6283, -6284, -6285, -6286, -6287, -6288, -6289, -6290, -6291, -6292, -6293, -6294, -6295, -6296, -6297, -6298, -6299, -6300, -6301, -6302, -6303, -6304, -6305, -6306, -6307, -6308, -6309, -6310, -6311, -6312, -6313, -6314, -6315, -6316, -6317, -6318, -6319, -6320, -6321, -6322, -6323, -6324, -6325, -6326, -6327, -6328, -6329, -6330, -6331, -6332, -6333, -6334, -6335, -6336, -6337, -6338, -6339, -6340, -6341, -6342, -6343, -6344, -6345, -6346, -6347, -6348, -6349, -6350, -6351, -6352, -6353, -6354, -6355, -6356, -6357, -6358, -6359}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, -12, -13, -14, -15, -16, -17, -18, -19, -20, -21, -22, -23, -24, -25, -26, -27, -28, -29, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -30, -31, -32, -33, -34, -35, -36, -37, -38, -39, -40, -41, -42, -43, -44, -45, -46, -47, -48, -49, -50, -51, -52, -53, -54, -55, -56, -57, -58, -59, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, -60, -61, -62, -63, -64, -65, -66, -67, -68, -69, -70, -71, -72, -73, -74, -75, -76, -77, -78, -79, -80, -81, -82, -83, -84, -85, -86, -87, -88, -89, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, -90, -91, -92, -93, -94, -95, -96, -97, -98, -99, -100, -101, -102, -103, -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -114, -115, -116, -117, -118, -119, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, -120, -121, -122, -123, -124, -125, -126, -127, -128, -129, -130, -131, -132, -133, -134, -135, -136, -137, -138, -139, -140, -141, -142, -143, -144, -145, -146, -147, -148, -149, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, -150, -151, -152, -153, -154, -155, -156, -157, -158, -159, -160, -161, -162, -163, -164, -165, -166, -167, -168, -169, -170, -171, -172, -173, -174, -175, -176, -177, -178, -179, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, -180, -181, -182, -183, -184, -185, -186, -187, -188, -189, -190, -191, -192, -193, -194, -195, -196, -197, -198, -199, -200, -201, -202, -203, -204, -205, -206, -207, -208, -209, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, -210, -211, -212, -213, -214, -215, -216, -217, -218, -219, -220, -221, -222, -223, -224, -225, -226, -227, -228, -229, -230, -231, -232, -233, -234, -235, -236, -237, -238, -239, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, -240, -241, -242, -243, -244, -245, -246, -247, -248, -249, -250, -251, -252, -253, -254, -255, -256, -257, -258, -259, -260, -261, -262, -263, -264, -265, -266, -267, -268, -269, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, -270, -271, -272, -273, -274, -275, -276, -277, -278, -279, -280, -281, -282, -283, -284, -285, -286, -287, -288, -289, -290, -291, -292, -293, -294, -295, -296, -297, -298, -299, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, -300, -301, -302, -303, -304, -305, -306, -307, -308, -309, -310, -311, -312, -313, -314, -315, -316, -317, -318, -319, -320, -321, -322, -323, -324, -325, -326, -327, -328, -329, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, -330, -331, -332, -333, -334, -335, -336, -337, -338, -339, -340, -341, -342, -343, -344, -345, -346, -347, -348, -349, -350, -351, -352, -353, -354, -355, -356, -357, -358, -359, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, -360, -361, -362, -363, -364, -365, -366, -367, -368, -369, -370, -371, -372, -373, -374, -375, -376, -377, -378, -379, -380, -381, -382, -383, -384, -385, -386, -387, -388, -389, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, -390, -391, -392, -393, -394, -395, -396, -397, -398, -399, -400, -401, -402, -403, -404, -405, -406, -407, -408, -409, -410, -411, -412, -413, -414, -415, -416, -417, -418, -419, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, -420, -421, -422, -423, -424, -425, -426, -427, -428, -429, -430, -431, -432, -433, -434, -435, -436, -437, -438, -439, -440, -441, -442, -443, -444, -445, -446, -447, -448, -449, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, -450, -451, -452, -453, -454, -455, -456, -457, -458, -459, -460, -461, -462, -463, -464, -465, -466, -467, -468, -469, -470, -471, -472, -473, -474, -475, -476, -477, -478, -479, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, -480, -481, -482, -483, -484, -485, -486, -487, -488, -489, -490, -491, -492, -493, -494, -495, -496, -497, -498, -499, -500, -501, -502, -503, -504, -505, -506, -507, -508, -509, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, -510, -511, -512, -513, -514, -515, -516, -517, -518, -519, -520, -521, -522, -523, -524, -525, -526, -527, -528, -529, -530, -531, -532, -533, -534, -535, -536, -537, -538, -539, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, -540, -541, -542, -543, -544, -545, -546, -547, -548, -549, -550, -551, -552, -553, -554, -555, -556, -557, -558, -559, -560, -561, -562, -563, -564, -565, -566, -567, -568, -569, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, -570, -571, -572, -573, -574, -575, -576, -577, -578, -579, -580, -581, -582, -583, -584, -585, -586, -587, -588, -589, -590, -591, -592, -593, -594, -595, -596, -597, -598, -599, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, -600, -601, -602, -603, -604, -605, -606, -607, -608, -609, -610, -611, -612, -613, -614, -615, -616, -617, -618, -619, -620, -621, -622, -623, -624, -625, -626, -627, -628, -629, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, -630, -631, -632, -633, -634, -635, -636, -637, -638, -639, -640, -641, -642, -643, -644, -645, -646, -647, -648, -649, -650, -651, -652, -653, -654, -655, -656, -657, -658, -659, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, -660, -661, -662, -663, -664, -665, -666, -667, -668, -669, -670, -671, -672, -673, -674, -675, -676, -677, -678, -679, -680, -681, -682, -683, -684, -685, -686, -687, -688, -689, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, -690, -691, -692, -693, -694, -695, -696, -697, -698, -699, -700, -701, -702, -703, -704, -705, -706, -707, -708, -709, -710, -711, -712, -713, -714, -715, -716, -717, -718, -719, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, -720, -721, -722, -723, -724, -725, -726, -727, -728, -729, -730, -731, -732, -733, -734, -735, -736, -737, -738, -739, -740, -741, -742, -743, -744, -745, -746, -747, -748, -749, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, -750, -751, -752, -753, -754, -755, -756, -757, -758, -759, -760, -761, -762, -763, -764, -765, -766, -767, -768, -769, -770, -771, -772, -773, -774, -775, -776, -777, -778, -779, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, -780, -781, -782, -783, -784, -785, -786, -787, -788, -789, -790, -791, -792, -793, -794, -795, -796, -797, -798, -799, -800, -801, -802, -803, -804, -805, -806, -807, -808, -809, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, -810, -811, -812, -813, -814, -815, -816, -817, -818, -819, -820, -821, -822, -823, -824, -825, -826, -827, -828, -829, -830, -831, -832, -833, -834, -835, -836, -837, -838, -839, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, -840, -841, -842, -843, -844, -845, -846, -847, -848, -849, -850, -851, -852, -853, -854, -855, -856, -857, -858, -859, -860, -861, -862, -863, -864, -865, -866, -867, -868, -869, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, -870, -871, -872, -873, -874, -875, -876, -877, -878, -879, -880, -881, -882, -883, -884, -885, -886, -887, -888, -889, -890, -891, -892, -893, -894, -895, -896, -897, -898, -899, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, -900, -901, -902, -903, -904, -905, -906, -907, -908, -909, -910, -911, -912, -913, -914, -915, -916, -917, -918, -919, -920, -921, -922, -923, -924, -925, -926, -927, -928, -929, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, -930, -931, -932, -933, -934, -935, -936, -937, -938, -939, -940, -941, -942, -943, -944, -945, -946, -947, -948, -949, -950, -951, -952, -953, -954, -955, -956, -957, -958, -959, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, -960, -961, -962, -963, -964, -965, -966, -967, -968, -969, -970, -971, -972, -973, -974, -975, -976, -977, -978, -979, -980, -981, -982, -983, -984, -985, -986, -987, -988, -989, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, -990, -991, -992, -993, -994, -995, -996, -997, -998, -999, -1000, -1001, -1002, -1003, -1004, -1005, -1006, -1007, -1008, -1009, -1010, -1011, -1012, -1013, -1014, -1015, -1016, -1017, -1018, -1019, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, -1020, -1021, -1022, -1023, -1024, -1025, -1026, -1027, -1028, -1029, -1030, -1031, -1032, -1033, -1034, -1035, -1036, -1037, -1038, -1039, -1040, -1041, -1042, -1043, -1044, -1045, -1046, -1047, -1048, -1049, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, -1050, -1051, -1052, -1053, -1054, -1055, -1056, -1057, -1058, -1059, -1060, -1061, -1062, -1063, -1064, -1065, -1066, -1067, -1068, -1069, -1070, -1071, -1072, -1073, -1074, -1075, -1076, -1077, -1078, -1079, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, -1080, -1081, -1082, -1083, -1084, -1085, -1086, -1087, -1088, -1089, -1090, -1091, -1092, -1093, -1094, -1095, -1096, -1097, -1098, -1099, -1100, -1101, -1102, -1103, -1104, -1105, -1106, -1107, -1108, -1109, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, -1110, -1111, -1112, -1113, -1114, -1115, -1116, -1117, -1118, -1119, -1120, -1121, -1122, -1123, -1124, -1125, -1126, -1127, -1128, -1129, -1130, -1131, -1132, -1133, -1134, -1135, -1136, -1137, -1138, -1139, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, -1140, -1141, -1142, -1143, -1144, -1145, -1146, -1147, -1148, -1149, -1150, -1151, -1152, -1153, -1154, -1155, -1156, -1157, -1158, -1159, -1160, -1161, -1162, -1163, -1164, -1165, -1166, -1167, -1168, -1169, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, -1170, -1171, -1172, -1173, -1174, -1175, -1176, -1177, -1178, -1179, -1180, -1181, -1182, -1183, -1184, -1185, -1186, -1187, -1188, -1189, -1190, -1191, -1192, -1193, -1194, -1195, -1196, -1197, -1198, -1199, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, -1200, -1201, -1202, -1203, -1204, -1205, -1206, -1207, -1208, -1209, -1210, -1211, -1212, -1213, -1214, -1215, -1216, -1217, -1218, -1219, -1220, -1221, -1222, -1223, -1224, -1225, -1226, -1227, -1228, -1229, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, -1230, -1231, -1232, -1233, -1234, -1235, -1236, -1237, -1238, -1239, -1240, -1241, -1242, -1243, -1244, -1245, -1246, -1247, -1248, -1249, -1250, -1251, -1252, -1253, -1254, -1255, -1256, -1257, -1258, -1259, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, -1260, -1261, -1262, -1263, -1264, -1265, -1266, -1267, -1268, -1269, -1270, -1271, -1272, -1273, -1274, -1275, -1276, -1277, -1278, -1279, -1280, -1281, -1282, -1283, -1284, -1285, -1286, -1287, -1288, -1289, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, -1290, -1291, -1292, -1293, -1294, -1295, -1296, -1297, -1298, -1299, -1300, -1301, -1302, -1303, -1304, -1305, -1306, -1307, -1308, -1309, -1310, -1311, -1312, -1313, -1314, -1315, -1316, -1317, -1318, -1319, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, -1320, -1321, -1322, -1323, -1324, -1325, -1326, -1327, -1328, -1329, -1330, -1331, -1332, -1333, -1334, -1335, -1336, -1337, -1338, -1339, -1340, -1341, -1342, -1343, -1344, -1345, -1346, -1347, -1348, -1349, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, -1350, -1351, -1352, -1353, -1354, -1355, -1356, -1357, -1358, -1359, -1360, -1361, -1362, -1363, -1364, -1365, -1366, -1367, -1368, -1369, -1370, -1371, -1372, -1373, -1374, -1375, -1376, -1377, -1378, -1379, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, -1380, -1381, -1382, -1383, -1384, -1385, -1386, -1387, -1388, -1389, -1390, -1391, -1392, -1393, -1394, -1395, -1396, -1397, -1398, -1399, -1400, -1401, -1402, -1403, -1404, -1405, -1406, -1407, -1408, -1409, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, -1410, -1411, -1412, -1413, -1414, -1415, -1416, -1417, -1418, -1419, -1420, -1421, -1422, -1423, -1424, -1425, -1426, -1427, -1428, -1429, -1430, -1431, -1432, -1433, -1434, -1435, -1436, -1437, -1438, -1439, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, -1440, -1441, -1442, -1443, -1444, -1445, -1446, -1447, -1448, -1449, -1450, -1451, -1452, -1453, -1454, -1455, -1456, -1457, -1458, -1459, -1460, -1461, -1462, -1463, -1464, -1465, -1466, -1467, -1468, -1469, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, -1470, -1471, -1472, -1473, -1474, -1475, -1476, -1477, -1478, -1479, -1480, -1481, -1482, -1483, -1484, -1485, -1486, -1487, -1488, -1489, -1490, -1491, -1492, -1493, -1494, -1495, -1496, -1497, -1498, -1499, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, -1500, -1501, -1502, -1503, -1504, -1505, -1506, -1507, -1508, -1509, -1510, -1511, -1512, -1513, -1514, -1515, -1516, -1517, -1518, -1519, -1520, -1521, -1522, -1523, -1524, -1525, -1526, -1527, -1528, -1529, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119, -1530, -1531, -1532, -1533, -1534, -1535, -1536, -1537, -1538, -1539, -1540, -1541, -1542, -1543, -1544, -1545, -1546, -1547, -1548, -1549, -1550, -1551, -1552, -1553, -1554, -1555, -1556, -1557, -1558, -1559, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, -1560, -1561, -1562, -1563, -1564, -1565, -1566, -1567, -1568, -1569, -1570, -1571, -1572, -1573, -1574, -1575, -1576, -1577, -1578, -1579, -1580, -1581, -1582, -1583, -1584, -1585, -1586, -1587, -1588, -1589, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, -1590, -1591, -1592, -1593, -1594, -1595, -1596, -1597, -1598, -1599, -1600, -1601, -1602, -1603, -1604, -1605, -1606, -1607, -1608, -1609, -1610, -1611, -1612, -1613, -1614, -1615, -1616, -1617, -1618, -1619, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, -1620, -1621, -1622, -1623, -1624, -1625, -1626, -1627, -1628, -1629, -1630, -1631, -1632, -1633, -1634, -1635, -1636, -1637, -1638, -1639, -1640, -1641, -1642, -1643, -1644, -1645, -1646, -1647, -1648, -1649, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, -1650, -1651, -1652, -1653, -1654, -1655, -1656, -1657, -1658, -1659, -1660, -1661, -1662, -1663, -1664, -1665, -1666, -1667, -1668, -1669, -1670, -1671, -1672, -1673, -1674, -1675, -1676, -1677, -1678, -1679, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, -1680, -1681, -1682, -1683, -1684, -1685, -1686, -1687, -1688, -1689, -1690, -1691, -1692, -1693, -1694, -1695, -1696, -1697, -1698, -1699, -1700, -1701, -1702, -1703, -1704, -1705, -1706, -1707, -1708, -1709, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, -1710, -1711, -1712, -1713, -1714, -1715, -1716, -1717, -1718, -1719, -1720, -1721, -1722, -1723, -1724, -1725, -1726, -1727, -1728, -1729, -1730, -1731, -1732, -1733, -1734, -1735, -1736, -1737, -1738, -1739, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, -1740, -1741, -1742, -1743, -1744, -1745, -1746, -1747, -1748, -1749, -1750, -1751, -1752, -1753, -1754, -1755, -1756, -1757, -1758, -1759, -1760, -1761, -1762, -1763, -1764, -1765, -1766, -1767, -1768, -1769, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, -1770, -1771, -1772, -1773, -1774, -1775, -1776, -1777, -1778, -1779, -1780, -1781, -1782, -1783, -1784, -1785, -1786, -1787, -1788, -1789, -1790, -1791, -1792, -1793, -1794, -1795, -1796, -1797, -1798, -1799, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, -1800, -1801, -1802, -1803, -1804, -1805, -1806, -1807, -1808, -1809, -1810, -1811, -1812, -1813, -1814, -1815, -1816, -1817, -1818, -1819, -1820, -1821, -1822, -1823, -1824, -1825, -1826, -1827, -1828, -1829, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, -1830, -1831, -1832, -1833, -1834, -1835, -1836, -1837, -1838, -1839, -1840, -1841, -1842, -1843, -1844, -1845, -1846, -1847, -1848, -1849, -1850, -1851, -1852, -1853, -1854, -1855, -1856, -1857, -1858, -1859, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, -1860, -1861, -1862, -1863, -1864, -1865, -1866, -1867, -1868, -1869, -1870, -1871, -1872, -1873, -1874, -1875, -1876, -1877, -1878, -1879, -1880, -1881, -1882, -1883, -1884, -1885, -1886, -1887, -1888, -1889, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, -1890, -1891, -1892, -1893, -1894, -1895, -1896, -1897, -1898, -1899, -1900, -1901, -1902, -1903, -1904, -1905, -1906, -1907, -1908, -1909, -1910, -1911, -1912, -1913, -1914, -1915, -1916, -1917, -1918, -1919, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, -1920, -1921, -1922, -1923, -1924, -1925, -1926, -1927, -1928, -1929, -1930, -1931, -1932, -1933, -1934, -1935, -1936, -1937, -1938, -1939, -1940, -1941, -1942, -1943, -1944, -1945, -1946, -1947, -1948, -1949, 3900, 3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, -1950, -1951, -1952, -1953, -1954, -1955, -1956, -1957, -1958, -1959, -1960, -1961, -1962, -1963, -1964, -1965, -1966, -1967, -1968, -1969, -1970, -1971, -1972, -1973, -1974, -1975, -1976, -1977, -1978, -1979, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, -1980, -1981, -1982, -1983, -1984, -1985, -1986, -1987, -1988, -1989, -1990, -1991, -1992, -1993, -1994, -1995, -1996, -1997, -1998, -1999, -2000, -2001, -2002, -2003, -2004, -2005, -2006, -2007, -2008, -2009, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, -2010, -2011, -2012, -2013, -2014, -2015, -2016, -2017, -2018, -2019, -2020, -2021, -2022, -2023, -2024, -2025, -2026, -2027, -2028, -2029, -2030, -2031, -2032, -2033, -2034, -2035, -2036, -2037, -2038, -2039, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, -2040, -2041, -2042, -2043, -2044, -2045, -2046, -2047, -2048, -2049, -2050, -2051, -2052, -2053, -2054, -2055, -2056, -2057, -2058, -2059, -2060, -2061, -2062, -2063, -2064, -2065, -2066, -2067, -2068, -2069, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, -2070, -2071, -2072, -2073, -2074, -2075, -2076, -2077, -2078, -2079, -2080, -2081, -2082, -2083, -2084, -2085, -2086, -2087, -2088, -2089, -2090, -2091, -2092, -2093, -2094, -2095, -2096, -2097, -2098, -2099, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, -2100, -2101, -2102, -2103, -2104, -2105, -2106, -2107, -2108, -2109, -2110, -2111, -2112, -2113, -2114, -2115, -2116, -2117, -2118, -2119, -2120, -2121, -2122, -2123, -2124, -2125, -2126, -2127, -2128, -2129, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, -2130, -2131, -2132, -2133, -2134, -2135, -2136, -2137, -2138, -2139, -2140, -2141, -2142, -2143, -2144, -2145, -2146, -2147, -2148, -2149, -2150, -2151, -2152, -2153, -2154, -2155, -2156, -2157, -2158, -2159, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, -2160, -2161, -2162, -2163, -2164, -2165, -2166, -2167, -2168, -2169, -2170, -2171, -2172, -2173, -2174, -2175, -2176, -2177, -2178, -2179, -2180, -2181, -2182, -2183, -2184, -2185, -2186, -2187, -2188, -2189, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, -2190, -2191, -2192, -2193, -2194, -2195, -2196, -2197, -2198, -2199, -2200, -2201, -2202, -2203, -2204, -2205, -2206, -2207, -2208, -2209, -2210, -2211, -2212, -2213, -2214, -2215, -2216, -2217, -2218, -2219, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, -2220, -2221, -2222, -2223, -2224, -2225, -2226, -2227, -2228, -2229, -2230, -2231, -2232, -2233, -2234, -2235, -2236, -2237, -2238, -2239, -2240, -2241, -2242, -2243, -2244, -2245, -2246, -2247, -2248, -2249, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, -2250, -2251, -2252, -2253, -2254, -2255, -2256, -2257, -2258, -2259, -2260, -2261, -2262, -2263, -2264, -2265, -2266, -2267, -2268, -2269, -2270, -2271, -2272, -2273, -2274, -2275, -2276, -2277, -2278, -2279, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, -2280, -2281, -2282, -2283, -2284, -2285, -2286, -2287, -2288, -2289, -2290, -2291, -2292, -2293, -2294, -2295, -2296, -2297, -2298, -2299, -2300, -2301, -2302, -2303, -2304, -2305, -2306, -2307, -2308, -2309, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, -2310, -2311, -2312, -2313, -2314, -2315, -2316, -2317, -2318, -2319, -2320, -2321, -2322, -2323, -2324, -2325, -2326, -2327, -2328, -2329, -2330, -2331, -2332, -2333, -2334, -2335, -2336, -2337, -2338, -2339, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, -2340, -2341, -2342, -2343, -2344, -2345, -2346, -2347, -2348, -2349, -2350, -2351, -2352, -2353, -2354, -2355, -2356, -2357, -2358, -2359, -2360, -2361, -2362, -2363, -2364, -2365, -2366, -2367, -2368, -2369, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, -2370, -2371, -2372, -2373, -2374, -2375, -2376, -2377, -2378, -2379, -2380, -2381, -2382, -2383, -2384, -2385, -2386, -2387, -2388, -2389, -2390, -2391, -2392, -2393, -2394, -2395, -2396, -2397, -2398, -2399, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, -2400, -2401, -2402, -2403, -2404, -2405, -2406, -2407, -2408, -2409, -2410, -2411, -2412, -2413, -2414, -2415, -2416, -2417, -2418, -2419, -2420, -2421, -2422, -2423, -2424, -2425, -2426, -2427, -2428, -2429, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, -2430, -2431, -2432, -2433, -2434, -2435, -2436, -2437, -2438, -2439, -2440, -2441, -2442, -2443, -2444, -2445, -2446, -2447, -2448, -2449, -2450, -2451, -2452, -2453, -2454, -2455, -2456, -2457, -2458, -2459, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, -2460, -2461, -2462, -2463, -2464, -2465, -2466, -2467, -2468, -2469, -2470, -2471, -2472, -2473, -2474, -2475, -2476, -2477, -2478, -2479, -2480, -2481, -2482, -2483, -2484, -2485, -2486, -2487, -2488, -2489, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020, 5021, 5022, 5023, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033, 5034, 5035, 5036, 5037, 5038, 5039, -2490, -2491, -2492, -2493, -2494, -2495, -2496, -2497, -2498, -2499, -2500, -2501, -2502, -2503, -2504, -2505, -2506, -2507, -2508, -2509, -2510, -2511, -2512, -2513, -2514, -2515, -2516, -2517, -2518, -2519, 5040, 5041, 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055, 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5063, 5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082, 5083, 5084, 5085, 5086, 5087, 5088, 5089, 5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097, 5098, 5099, -2520, -2521, -2522, -2523, -2524, -2525, -2526, -2527, -2528, -2529, -2530, -2531, -2532, -2533, -2534, -2535, -2536, -2537, -2538, -2539, -2540, -2541, -2542, -2543, -2544, -2545, -2546, -2547, -2548, -2549, 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108, 5109, 5110, 5111, 5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121, 5122, 5123, 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5159, -2550, -2551, -2552, -2553, -2554, -2555, -2556, -2557, -2558, -2559, -2560, -2561, -2562, -2563, -2564, -2565, -2566, -2567, -2568, -2569, -2570, -2571, -2572, -2573, -2574, -2575, -2576, -2577, -2578, -2579, 5160, 5161, 5162, 5163, 5164, 5165, 5166, 5167, 5168, 5169, 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177, 5178, 5179, 5180, 5181, 5182, 5183, 5184, 5185, 5186, 5187, 5188, 5189, 5190, 5191, 5192, 5193, 5194, 5195, 5196, 5197, 5198, 5199, 5200, 5201, 5202, 5203, 5204, 5205, 5206, 5207, 5208, 5209, 5210, 5211, 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219, -2580, -2581, -2582, -2583, -2584, -2585, -2586, -2587, -2588, -2589, -2590, -2591, -2592, -2593, -2594, -2595, -2596, -2597, -2598, -2599, -2600, -2601, -2602, -2603, -2604, -2605, -2606, -2607, -2608, -2609, 5220, 5221, 5222, 5223, 5224, 5225, 5226, 5227, 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235, 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243, 5244, 5245, 5246, 5247, 5248, 5249, 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265, 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277, 5278, 5279, -2610, -2611, -2612, -2613, -2614, -2615, -2616, -2617, -2618, -2619, -2620, -2621, -2622, -2623, -2624, -2625, -2626, -2627, -2628, -2629, -2630, -2631, -2632, -2633, -2634, -2635, -2636, -2637, -2638, -2639, 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287, 5288, 5289, 5290, 5291, 5292, 5293, 5294, 5295, 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303, 5304, 5305, 5306, 5307, 5308, 5309, 5310, 5311, 5312, 5313, 5314, 5315, 5316, 5317, 5318, 5319, 5320, 5321, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335, 5336, 5337, 5338, 5339, -2640, -2641, -2642, -2643, -2644, -2645, -2646, -2647, -2648, -2649, -2650, -2651, -2652, -2653, -2654, -2655, -2656, -2657, -2658, -2659, -2660, -2661, -2662, -2663, -2664, -2665, -2666, -2667, -2668, -2669, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5347, 5348, 5349, 5350, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, -2670, -2671, -2672, -2673, -2674, -2675, -2676, -2677, -2678, -2679, -2680, -2681, -2682, -2683, -2684, -2685, -2686, -2687, -2688, -2689, -2690, -2691, -2692, -2693, -2694, -2695, -2696, -2697, -2698, -2699, 5400, 5401, 5402, 5403, 5404, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5415, 5416, 5417, 5418, 5419, 5420, 5421, 5422, 5423, 5424, 5425, 5426, 5427, 5428, 5429, 5430, 5431, 5432, 5433, 5434, 5435, 5436, 5437, 5438, 5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447, 5448, 5449, 5450, 5451, 5452, 5453, 5454, 5455, 5456, 5457, 5458, 5459, -2700, -2701, -2702, -2703, -2704, -2705, -2706, -2707, -2708, -2709, -2710, -2711, -2712, -2713, -2714, -2715, -2716, -2717, -2718, -2719, -2720, -2721, -2722, -2723, -2724, -2725, -2726, -2727, -2728, -2729, 5460, 5461, 5462, 5463, 5464, 5465, 5466, 5467, 5468, 5469, 5470, 5471, 5472, 5473, 5474, 5475, 5476, 5477, 5478, 5479, 5480, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489, 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505, 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 5515, 5516, 5517, 5518, 5519, -2730, -2731, -2732, -2733, -2734, -2735, -2736, -2737, -2738, -2739, -2740, -2741, -2742, -2743, -2744, -2745, -2746, -2747, -2748, -2749, -2750, -2751, -2752, -2753, -2754, -2755, -2756, -2757, -2758, -2759, 5520, 5521, 5522, 5523, 5524, 5525, 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534, 5535, 5536, 5537, 5538, 5539, 5540, 5541, 5542, 5543, 5544, 5545, 5546, 5547, 5548, 5549, 5550, 5551, 5552, 5553, 5554, 5555, 5556, 5557, 5558, 5559, 5560, 5561, 5562, 5563, 5564, 5565, 5566, 5567, 5568, 5569, 5570, 5571, 5572, 5573, 5574, 5575, 5576, 5577, 5578, 5579, -2760, -2761, -2762, -2763, -2764, -2765, -2766, -2767, -2768, -2769, -2770, -2771, -2772, -2773, -2774, -2775, -2776, -2777, -2778, -2779, -2780, -2781, -2782, -2783, -2784, -2785, -2786, -2787, -2788, -2789, 5580, 5581, 5582, 5583, 5584, 5585, 5586, 5587, 5588, 5589, 5590, 5591, 5592, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, 5606, 5607, 5608, 5609, 5610, 5611, 5612, 5613, 5614, 5615, 5616, 5617, 5618, 5619, 5620, 5621, 5622, 5623, 5624, 5625, 5626, 5627, 5628, 5629, 5630, 5631, 5632, 5633, 5634, 5635, 5636, 5637, 5638, 5639, -2790, -2791, -2792, -2793, -2794, -2795, -2796, -2797, -2798, -2799, -2800, -2801, -2802, -2803, -2804, -2805, -2806, -2807, -2808, -2809, -2810, -2811, -2812, -2813, -2814, -2815, -2816, -2817, -2818, -2819, 5640, 5641, 5642, 5643, 5644, 5645, 5646, 5647, 5648, 5649, 5650, 5651, 5652, 5653, 5654, 5655, 5656, 5657, 5658, 5659, 5660, 5661, 5662, 5663, 5664, 5665, 5666, 5667, 5668, 5669, 5670, 5671, 5672, 5673, 5674, 5675, 5676, 5677, 5678, 5679, 5680, 5681, 5682, 5683, 5684, 5685, 5686, 5687, 5688, 5689, 5690, 5691, 5692, 5693, 5694, 5695, 5696, 5697, 5698, 5699, -2820, -2821, -2822, -2823, -2824, -2825, -2826, -2827, -2828, -2829, -2830, -2831, -2832, -2833, -2834, -2835, -2836, -2837, -2838, -2839, -2840, -2841, -2842, -2843, -2844, -2845, -2846, -2847, -2848, -2849, 5700, 5701, 5702, 5703, 5704, 5705, 5706, 5707, 5708, 5709, 5710, 5711, 5712, 5713, 5714, 5715, 5716, 5717, 5718, 5719, 5720, 5721, 5722, 5723, 5724, 5725, 5726, 5727, 5728, 5729, 5730, 5731, 5732, 5733, 5734, 5735, 5736, 5737, 5738, 5739, 5740, 5741, 5742, 5743, 5744, 5745, 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, 5754, 5755, 5756, 5757, 5758, 5759, -2850, -2851, -2852, -2853, -2854, -2855, -2856, -2857, -2858, -2859, -2860, -2861, -2862, -2863, -2864, -2865, -2866, -2867, -2868, -2869, -2870, -2871, -2872, -2873, -2874, -2875, -2876, -2877, -2878, -2879, 5760, 5761, 5762, 5763, 5764, 5765, 5766, 5767, 5768, 5769, 5770, 5771, 5772, 5773, 5774, 5775, 5776, 5777, 5778, 5779, 5780, 5781, 5782, 5783, 5784, 5785, 5786, 5787, 5788, 5789, 5790, 5791, 5792, 5793, 5794, 5795, 5796, 5797, 5798, 5799, 5800, 5801, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5809, 5810, 5811, 5812, 5813, 5814, 5815, 5816, 5817, 5818, 5819, -2880, -2881, -2882, -2883, -2884, -2885, -2886, -2887, -2888, -2889, -2890, -2891, -2892, -2893, -2894, -2895, -2896, -2897, -2898, -2899, -2900, -2901, -2902, -2903, -2904, -2905, -2906, -2907, -2908, -2909, 5820, 5821, 5822, 5823, 5824, 5825, 5826, 5827, 5828, 5829, 5830, 5831, 5832, 5833, 5834, 5835, 5836, 5837, 5838, 5839, 5840, 5841, 5842, 5843, 5844, 5845, 5846, 5847, 5848, 5849, 5850, 5851, 5852, 5853, 5854, 5855, 5856, 5857, 5858, 5859, 5860, 5861, 5862, 5863, 5864, 5865, 5866, 5867, 5868, 5869, 5870, 5871, 5872, 5873, 5874, 5875, 5876, 5877, 5878, 5879, -2910, -2911, -2912, -2913, -2914, -2915, -2916, -2917, -2918, -2919, -2920, -2921, -2922, -2923, -2924, -2925, -2926, -2927, -2928, -2929, -2930, -2931, -2932, -2933, -2934, -2935, -2936, -2937, -2938, -2939, 5880, 5881, 5882, 5883, 5884, 5885, 5886, 5887, 5888, 5889, 5890, 5891, 5892, 5893, 5894, 5895, 5896, 5897, 5898, 5899, 5900, 5901, 5902, 5903, 5904, 5905, 5906, 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5914, 5915, 5916, 5917, 5918, 5919, 5920, 5921, 5922, 5923, 5924, 5925, 5926, 5927, 5928, 5929, 5930, 5931, 5932, 5933, 5934, 5935, 5936, 5937, 5938, 5939, -2940, -2941, -2942, -2943, -2944, -2945, -2946, -2947, -2948, -2949, -2950, -2951, -2952, -2953, -2954, -2955, -2956, -2957, -2958, -2959, -2960, -2961, -2962, -2963, -2964, -2965, -2966, -2967, -2968, -2969, 5940, 5941, 5942, 5943, 5944, 5945, 5946, 5947, 5948, 5949, 5950, 5951, 5952, 5953, 5954, 5955, 5956, 5957, 5958, 5959, 5960, 5961, 5962, 5963, 5964, 5965, 5966, 5967, 5968, 5969, 5970, 5971, 5972, 5973, 5974, 5975, 5976, 5977, 5978, 5979, 5980, 5981, 5982, 5983, 5984, 5985, 5986, 5987, 5988, 5989, 5990, 5991, 5992, 5993, 5994, 5995, 5996, 5997, 5998, 5999, -2970, -2971, -2972, -2973, -2974, -2975, -2976, -2977, -2978, -2979, -2980, -2981, -2982, -2983, -2984, -2985, -2986, -2987, -2988, -2989, -2990, -2991, -2992, -2993, -2994, -2995, -2996, -2997, -2998, -2999, 6000, 6001, 6002, 6003, 6004, 6005, 6006, 6007, 6008, 6009, 6010, 6011, 6012, 6013, 6014, 6015, 6016, 6017, 6018, 6019, 6020, 6021, 6022, 6023, 6024, 6025, 6026, 6027, 6028, 6029, 6030, 6031, 6032, 6033, 6034, 6035, 6036, 6037, 6038, 6039, 6040, 6041, 6042, 6043, 6044, 6045, 6046, 6047, 6048, 6049, 6050, 6051, 6052, 6053, 6054, 6055, 6056, 6057, 6058, 6059, -3000, -3001, -3002, -3003, -3004, -3005, -3006, -3007, -3008, -3009, -3010, -3011, -3012, -3013, -3014, -3015, -3016, -3017, -3018, -3019, -3020, -3021, -3022, -3023, -3024, -3025, -3026, -3027, -3028, -3029, 6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069, 6070, 6071, 6072, 6073, 6074, 6075, 6076, 6077, 6078, 6079, 6080, 6081, 6082, 6083, 6084, 6085, 6086, 6087, 6088, 6089, 6090, 6091, 6092, 6093, 6094, 6095, 6096, 6097, 6098, 6099, 6100, 6101, 6102, 6103, 6104, 6105, 6106, 6107, 6108, 6109, 6110, 6111, 6112, 6113, 6114, 6115, 6116, 6117, 6118, 6119, -3030, -3031, -3032, -3033, -3034, -3035, -3036, -3037, -3038, -3039, -3040, -3041, -3042, -3043, -3044, -3045, -3046, -3047, -3048, -3049, -3050, -3051, -3052, -3053, -3054, -3055, -3056, -3057, -3058, -3059, 6120, 6121, 6122, 6123, 6124, 6125, 6126, 6127, 6128, 6129, 6130, 6131, 6132, 6133, 6134, 6135, 6136, 6137, 6138, 6139, 6140, 6141, 6142, 6143, 6144, 6145, 6146, 6147, 6148, 6149, 6150, 6151, 6152, 6153, 6154, 6155, 6156, 6157, 6158, 6159, 6160, 6161, 6162, 6163, 6164, 6165, 6166, 6167, 6168, 6169, 6170, 6171, 6172, 6173, 6174, 6175, 6176, 6177, 6178, 6179, -3060, -3061, -3062, -3063, -3064, -3065, -3066, -3067, -3068, -3069, -3070, -3071, -3072, -3073, -3074, -3075, -3076, -3077, -3078, -3079, -3080, -3081, -3082, -3083, -3084, -3085, -3086, -3087, -3088, -3089, 6180, 6181, 6182, 6183, 6184, 6185, 6186, 6187, 6188, 6189, 6190, 6191, 6192, 6193, 6194, 6195, 6196, 6197, 6198, 6199, 6200, 6201, 6202, 6203, 6204, 6205, 6206, 6207, 6208, 6209, 6210, 6211, 6212, 6213, 6214, 6215, 6216, 6217, 6218, 6219, 6220, 6221, 6222, 6223, 6224, 6225, 6226, 6227, 6228, 6229, 6230, 6231, 6232, 6233, 6234, 6235, 6236, 6237, 6238, 6239, -3090, -3091, -3092, -3093, -3094, -3095, -3096, -3097, -3098, -3099, -3100, -3101, -3102, -3103, -3104, -3105, -3106, -3107, -3108, -3109, -3110, -3111, -3112, -3113, -3114, -3115, -3116, -3117, -3118, -3119, 6240, 6241, 6242, 6243, 6244, 6245, 6246, 6247, 6248, 6249, 6250, 6251, 6252, 6253, 6254, 6255, 6256, 6257, 6258, 6259, 6260, 6261, 6262, 6263, 6264, 6265, 6266, 6267, 6268, 6269, 6270, 6271, 6272, 6273, 6274, 6275, 6276, 6277, 6278, 6279, 6280, 6281, 6282, 6283, 6284, 6285, 6286, 6287, 6288, 6289, 6290, 6291, 6292, 6293, 6294, 6295, 6296, 6297, 6298, 6299, -3120, -3121, -3122, -3123, -3124, -3125, -3126, -3127, -3128, -3129, -3130, -3131, -3132, -3133, -3134, -3135, -3136, -3137, -3138, -3139, -3140, -3141, -3142, -3143, -3144, -3145, -3146, -3147, -3148, -3149, 6300, 6301, 6302, 6303, 6304, 6305, 6306, 6307, 6308, 6309, 6310, 6311, 6312, 6313, 6314, 6315, 6316, 6317, 6318, 6319, 6320, 6321, 6322, 6323, 6324, 6325, 6326, 6327, 6328, 6329, 6330, 6331, 6332, 6333, 6334, 6335, 6336, 6337, 6338, 6339, 6340, 6341, 6342, 6343, 6344, 6345, 6346, 6347, 6348, 6349, 6350, 6351, 6352, 6353, 6354, 6355, 6356, 6357, 6358, 6359, -3150, -3151, -3152, -3153, -3154, -3155, -3156, -3157, -3158, -3159, -3160, -3161, -3162, -3163, -3164, -3165, -3166, -3167, -3168, -3169, -3170, -3171, -3172, -3173, -3174, -3175, -3176, -3177, -3178, -3179, 6360, 6361, 6362, 6363, 6364, 6365, 6366, 6367, 6368, 6369, 6370, 6371, 6372, 6373, 6374, 6375, 6376, 6377, 6378, 6379, 6380, 6381, 6382, 6383, 6384, 6385, 6386, 6387, 6388, 6389, 6390, 6391, 6392, 6393, 6394, 6395, 6396, 6397, 6398, 6399, 6400, 6401, 6402, 6403, 6404, 6405, 6406, 6407, 6408, 6409, 6410, 6411, 6412, 6413, 6414, 6415, 6416, 6417, 6418, 6419, -3180, -3181, -3182, -3183, -3184, -3185, -3186, -3187, -3188, -3189, -3190, -3191, -3192, -3193, -3194, -3195, -3196, -3197, -3198, -3199, -3200, -3201, -3202, -3203, -3204, -3205, -3206, -3207, -3208, -3209, 6420, 6421, 6422, 6423, 6424, 6425, 6426, 6427, 6428, 6429, 6430, 6431, 6432, 6433, 6434, 6435, 6436, 6437, 6438, 6439, 6440, 6441, 6442, 6443, 6444, 6445, 6446, 6447, 6448, 6449, 6450, 6451, 6452, 6453, 6454, 6455, 6456, 6457, 6458, 6459, 6460, 6461, 6462, 6463, 6464, 6465, 6466, 6467, 6468, 6469, 6470, 6471, 6472, 6473, 6474, 6475, 6476, 6477, 6478, 6479, -3210, -3211, -3212, -3213, -3214, -3215, -3216, -3217, -3218, -3219, -3220, -3221, -3222, -3223, -3224, -3225, -3226, -3227, -3228, -3229, -3230, -3231, -3232, -3233, -3234, -3235, -3236, -3237, -3238, -3239, 6480, 6481, 6482, 6483, 6484, 6485, 6486, 6487, 6488, 6489, 6490, 6491, 6492, 6493, 6494, 6495, 6496, 6497, 6498, 6499, 6500, 6501, 6502, 6503, 6504, 6505, 6506, 6507, 6508, 6509, 6510, 6511, 6512, 6513, 6514, 6515, 6516, 6517, 6518, 6519, 6520, 6521, 6522, 6523, 6524, 6525, 6526, 6527, 6528, 6529, 6530, 6531, 6532, 6533, 6534, 6535, 6536, 6537, 6538, 6539, -3240, -3241, -3242, -3243, -3244, -3245, -3246, -3247, -3248, -3249, -3250, -3251, -3252, -3253, -3254, -3255, -3256, -3257, -3258, -3259, -3260, -3261, -3262, -3263, -3264, -3265, -3266, -3267, -3268, -3269, 6540, 6541, 6542, 6543, 6544, 6545, 6546, 6547, 6548, 6549, 6550, 6551, 6552, 6553, 6554, 6555, 6556, 6557, 6558, 6559, 6560, 6561, 6562, 6563, 6564, 6565, 6566, 6567, 6568, 6569, 6570, 6571, 6572, 6573, 6574, 6575, 6576, 6577, 6578, 6579, 6580, 6581, 6582, 6583, 6584, 6585, 6586, 6587, 6588, 6589, 6590, 6591, 6592, 6593, 6594, 6595, 6596, 6597, 6598, 6599, -3270, -3271, -3272, -3273, -3274, -3275, -3276, -3277, -3278, -3279, -3280, -3281, -3282, -3283, -3284, -3285, -3286, -3287, -3288, -3289, -3290, -3291, -3292, -3293, -3294, -3295, -3296, -3297, -3298, -3299, 6600, 6601, 6602, 6603, 6604, 6605, 6606, 6607, 6608, 6609, 6610, 6611, 6612, 6613, 6614, 6615, 6616, 6617, 6618, 6619, 6620, 6621, 6622, 6623, 6624, 6625, 6626, 6627, 6628, 6629, 6630, 6631, 6632, 6633, 6634, 6635, 6636, 6637, 6638, 6639, 6640, 6641, 6642, 6643, 6644, 6645, 6646, 6647, 6648, 6649, 6650, 6651, 6652, 6653, 6654, 6655, 6656, 6657, 6658, 6659, -3300, -3301, -3302, -3303, -3304, -3305, -3306, -3307, -3308, -3309, -3310, -3311, -3312, -3313, -3314, -3315, -3316, -3317, -3318, -3319, -3320, -3321, -3322, -3323, -3324, -3325, -3326, -3327, -3328, -3329, 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 6670, 6671, 6672, 6673, 6674, 6675, 6676, 6677, 6678, 6679, 6680, 6681, 6682, 6683, 6684, 6685, 6686, 6687, 6688, 6689, 6690, 6691, 6692, 6693, 6694, 6695, 6696, 6697, 6698, 6699, 6700, 6701, 6702, 6703, 6704, 6705, 6706, 6707, 6708, 6709, 6710, 6711, 6712, 6713, 6714, 6715, 6716, 6717, 6718, 6719, -3330, -3331, -3332, -3333, -3334, -3335, -3336, -3337, -3338, -3339, -3340, -3341, -3342, -3343, -3344, -3345, -3346, -3347, -3348, -3349, -3350, -3351, -3352, -3353, -3354, -3355, -3356, -3357, -3358, -3359, 6720, 6721, 6722, 6723, 6724, 6725, 6726, 6727, 6728, 6729, 6730, 6731, 6732, 6733, 6734, 6735, 6736, 6737, 6738, 6739, 6740, 6741, 6742, 6743, 6744, 6745, 6746, 6747, 6748, 6749, 6750, 6751, 6752, 6753, 6754, 6755, 6756, 6757, 6758, 6759, 6760, 6761, 6762, 6763, 6764, 6765, 6766, 6767, 6768, 6769, 6770, 6771, 6772, 6773, 6774, 6775, 6776, 6777, 6778, 6779, -3360, -3361, -3362, -3363, -3364, -3365, -3366, -3367, -3368, -3369, -3370, -3371, -3372, -3373, -3374, -3375, -3376, -3377, -3378, -3379, -3380, -3381, -3382, -3383, -3384, -3385, -3386, -3387, -3388, -3389, 6780, 6781, 6782, 6783, 6784, 6785, 6786, 6787, 6788, 6789, 6790, 6791, 6792, 6793, 6794, 6795, 6796, 6797, 6798, 6799, 6800, 6801, 6802, 6803, 6804, 6805, 6806, 6807, 6808, 6809, 6810, 6811, 6812, 6813, 6814, 6815, 6816, 6817, 6818, 6819, 6820, 6821, 6822, 6823, 6824, 6825, 6826, 6827, 6828, 6829, 6830, 6831, 6832, 6833, 6834, 6835, 6836, 6837, 6838, 6839, -3390, -3391, -3392, -3393, -3394, -3395, -3396, -3397, -3398, -3399, -3400, -3401, -3402, -3403, -3404, -3405, -3406, -3407, -3408, -3409, -3410, -3411, -3412, -3413, -3414, -3415, -3416, -3417, -3418, -3419, 6840, 6841, 6842, 6843, 6844, 6845, 6846, 6847, 6848, 6849, 6850, 6851, 6852, 6853, 6854, 6855, 6856, 6857, 6858, 6859, 6860, 6861, 6862, 6863, 6864, 6865, 6866, 6867, 6868, 6869, 6870, 6871, 6872, 6873, 6874, 6875, 6876, 6877, 6878, 6879, 6880, 6881, 6882, 6883, 6884, 6885, 6886, 6887, 6888, 6889, 6890, 6891, 6892, 6893, 6894, 6895, 6896, 6897, 6898, 6899, -3420, -3421, -3422, -3423, -3424, -3425, -3426, -3427, -3428, -3429, -3430, -3431, -3432, -3433, -3434, -3435, -3436, -3437, -3438, -3439, -3440, -3441, -3442, -3443, -3444, -3445, -3446, -3447, -3448, -3449, 6900, 6901, 6902, 6903, 6904, 6905, 6906, 6907, 6908, 6909, 6910, 6911, 6912, 6913, 6914, 6915, 6916, 6917, 6918, 6919, 6920, 6921, 6922, 6923, 6924, 6925, 6926, 6927, 6928, 6929, 6930, 6931, 6932, 6933, 6934, 6935, 6936, 6937, 6938, 6939, 6940, 6941, 6942, 6943, 6944, 6945, 6946, 6947, 6948, 6949, 6950, 6951, 6952, 6953, 6954, 6955, 6956, 6957, 6958, 6959, -3450, -3451, -3452, -3453, -3454, -3455, -3456, -3457, -3458, -3459, -3460, -3461, -3462, -3463, -3464, -3465, -3466, -3467, -3468, -3469, -3470, -3471, -3472, -3473, -3474, -3475, -3476, -3477, -3478, -3479, 6960, 6961, 6962, 6963, 6964, 6965, 6966, 6967, 6968, 6969, 6970, 6971, 6972, 6973, 6974, 6975, 6976, 6977, 6978, 6979, 6980, 6981, 6982, 6983, 6984, 6985, 6986, 6987, 6988, 6989, 6990, 6991, 6992, 6993, 6994, 6995, 6996, 6997, 6998, 6999, 7000, 7001, 7002, 7003, 7004, 7005, 7006, 7007, 7008, 7009, 7010, 7011, 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, -3480, -3481, -3482, -3483, -3484, -3485, -3486, -3487, -3488, -3489, -3490, -3491, -3492, -3493, -3494, -3495, -3496, -3497, -3498, -3499, -3500, -3501, -3502, -3503, -3504, -3505, -3506, -3507, -3508, -3509, 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, 7028, 7029, 7030, 7031, 7032, 7033, 7034, 7035, 7036, 7037, 7038, 7039, 7040, 7041, 7042, 7043, 7044, 7045, 7046, 7047, 7048, 7049, 7050, 7051, 7052, 7053, 7054, 7055, 7056, 7057, 7058, 7059, 7060, 7061, 7062, 7063, 7064, 7065, 7066, 7067, 7068, 7069, 7070, 7071, 7072, 7073, 7074, 7075, 7076, 7077, 7078, 7079, -3510, -3511, -3512, -3513, -3514, -3515, -3516, -3517, -3518, -3519, -3520, -3521, -3522, -3523, -3524, -3525, -3526, -3527, -3528, -3529, -3530, -3531, -3532, -3533, -3534, -3535, -3536, -3537, -3538, -3539, 7080, 7081, 7082, 7083, 7084, 7085, 7086, 7087, 7088, 7089, 7090, 7091, 7092, 7093, 7094, 7095, 7096, 7097, 7098, 7099, 7100, 7101, 7102, 7103, 7104, 7105, 7106, 7107, 7108, 7109, 7110, 7111, 7112, 7113, 7114, 7115, 7116, 7117, 7118, 7119, 7120, 7121, 7122, 7123, 7124, 7125, 7126, 7127, 7128, 7129, 7130, 7131, 7132, 7133, 7134, 7135, 7136, 7137, 7138, 7139, -3540, -3541, -3542, -3543, -3544, -3545, -3546, -3547, -3548, -3549, -3550, -3551, -3552, -3553, -3554, -3555, -3556, -3557, -3558, -3559, -3560, -3561, -3562, -3563, -3564, -3565, -3566, -3567, -3568, -3569, 7140, 7141, 7142, 7143, 7144, 7145, 7146, 7147, 7148, 7149, 7150, 7151, 7152, 7153, 7154, 7155, 7156, 7157, 7158, 7159, 7160, 7161, 7162, 7163, 7164, 7165, 7166, 7167, 7168, 7169, 7170, 7171, 7172, 7173, 7174, 7175, 7176, 7177, 7178, 7179, 7180, 7181, 7182, 7183, 7184, 7185, 7186, 7187, 7188, 7189, 7190, 7191, 7192, 7193, 7194, 7195, 7196, 7197, 7198, 7199, -3570, -3571, -3572, -3573, -3574, -3575, -3576, -3577, -3578, -3579, -3580, -3581, -3582, -3583, -3584, -3585, -3586, -3587, -3588, -3589, -3590, -3591, -3592, -3593, -3594, -3595, -3596, -3597, -3598, -3599, 7200, 7201, 7202, 7203, 7204, 7205, 7206, 7207, 7208, 7209, 7210, 7211, 7212, 7213, 7214, 7215, 7216, 7217, 7218, 7219, 7220, 7221, 7222, 7223, 7224, 7225, 7226, 7227, 7228, 7229, 7230, 7231, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7239, 7240, 7241, 7242, 7243, 7244, 7245, 7246, 7247, 7248, 7249, 7250, 7251, 7252, 7253, 7254, 7255, 7256, 7257, 7258, 7259, -3600, -3601, -3602, -3603, -3604, -3605, -3606, -3607, -3608, -3609, -3610, -3611, -3612, -3613, -3614, -3615, -3616, -3617, -3618, -3619, -3620, -3621, -3622, -3623, -3624, -3625, -3626, -3627, -3628, -3629, 7260, 7261, 7262, 7263, 7264, 7265, 7266, 7267, 7268, 7269, 7270, 7271, 7272, 7273, 7274, 7275, 7276, 7277, 7278, 7279, 7280, 7281, 7282, 7283, 7284, 7285, 7286, 7287, 7288, 7289, 7290, 7291, 7292, 7293, 7294, 7295, 7296, 7297, 7298, 7299, 7300, 7301, 7302, 7303, 7304, 7305, 7306, 7307, 7308, 7309, 7310, 7311, 7312, 7313, 7314, 7315, 7316, 7317, 7318, 7319, -3630, -3631, -3632, -3633, -3634, -3635, -3636, -3637, -3638, -3639, -3640, -3641, -3642, -3643, -3644, -3645, -3646, -3647, -3648, -3649, -3650, -3651, -3652, -3653, -3654, -3655, -3656, -3657, -3658, -3659, 7320, 7321, 7322, 7323, 7324, 7325, 7326, 7327, 7328, 7329, 7330, 7331, 7332, 7333, 7334, 7335, 7336, 7337, 7338, 7339, 7340, 7341, 7342, 7343, 7344, 7345, 7346, 7347, 7348, 7349, 7350, 7351, 7352, 7353, 7354, 7355, 7356, 7357, 7358, 7359, 7360, 7361, 7362, 7363, 7364, 7365, 7366, 7367, 7368, 7369, 7370, 7371, 7372, 7373, 7374, 7375, 7376, 7377, 7378, 7379, -3660, -3661, -3662, -3663, -3664, -3665, -3666, -3667, -3668, -3669, -3670, -3671, -3672, -3673, -3674, -3675, -3676, -3677, -3678, -3679, -3680, -3681, -3682, -3683, -3684, -3685, -3686, -3687, -3688, -3689, 7380, 7381, 7382, 7383, 7384, 7385, 7386, 7387, 7388, 7389, 7390, 7391, 7392, 7393, 7394, 7395, 7396, 7397, 7398, 7399, 7400, 7401, 7402, 7403, 7404, 7405, 7406, 7407, 7408, 7409, 7410, 7411, 7412, 7413, 7414, 7415, 7416, 7417, 7418, 7419, 7420, 7421, 7422, 7423, 7424, 7425, 7426, 7427, 7428, 7429, 7430, 7431, 7432, 7433, 7434, 7435, 7436, 7437, 7438, 7439, -3690, -3691, -3692, -3693, -3694, -3695, -3696, -3697, -3698, -3699, -3700, -3701, -3702, -3703, -3704, -3705, -3706, -3707, -3708, -3709, -3710, -3711, -3712, -3713, -3714, -3715, -3716, -3717, -3718, -3719, 7440, 7441, 7442, 7443, 7444, 7445, 7446, 7447, 7448, 7449, 7450, 7451, 7452, 7453, 7454, 7455, 7456, 7457, 7458, 7459, 7460, 7461, 7462, 7463, 7464, 7465, 7466, 7467, 7468, 7469, 7470, 7471, 7472, 7473, 7474, 7475, 7476, 7477, 7478, 7479, 7480, 7481, 7482, 7483, 7484, 7485, 7486, 7487, 7488, 7489, 7490, 7491, 7492, 7493, 7494, 7495, 7496, 7497, 7498, 7499, -3720, -3721, -3722, -3723, -3724, -3725, -3726, -3727, -3728, -3729, -3730, -3731, -3732, -3733, -3734, -3735, -3736, -3737, -3738, -3739, -3740, -3741, -3742, -3743, -3744, -3745, -3746, -3747, -3748, -3749, 7500, 7501, 7502, 7503, 7504, 7505, 7506, 7507, 7508, 7509, 7510, 7511, 7512, 7513, 7514, 7515, 7516, 7517, 7518, 7519, 7520, 7521, 7522, 7523, 7524, 7525, 7526, 7527, 7528, 7529, 7530, 7531, 7532, 7533, 7534, 7535, 7536, 7537, 7538, 7539, 7540, 7541, 7542, 7543, 7544, 7545, 7546, 7547, 7548, 7549, 7550, 7551, 7552, 7553, 7554, 7555, 7556, 7557, 7558, 7559, -3750, -3751, -3752, -3753, -3754, -3755, -3756, -3757, -3758, -3759, -3760, -3761, -3762, -3763, -3764, -3765, -3766, -3767, -3768, -3769, -3770, -3771, -3772, -3773, -3774, -3775, -3776, -3777, -3778, -3779, 7560, 7561, 7562, 7563, 7564, 7565, 7566, 7567, 7568, 7569, 7570, 7571, 7572, 7573, 7574, 7575, 7576, 7577, 7578, 7579, 7580, 7581, 7582, 7583, 7584, 7585, 7586, 7587, 7588, 7589, 7590, 7591, 7592, 7593, 7594, 7595, 7596, 7597, 7598, 7599, 7600, 7601, 7602, 7603, 7604, 7605, 7606, 7607, 7608, 7609, 7610, 7611, 7612, 7613, 7614, 7615, 7616, 7617, 7618, 7619, -3780, -3781, -3782, -3783, -3784, -3785, -3786, -3787, -3788, -3789, -3790, -3791, -3792, -3793, -3794, -3795, -3796, -3797, -3798, -3799, -3800, -3801, -3802, -3803, -3804, -3805, -3806, -3807, -3808, -3809, 7620, 7621, 7622, 7623, 7624, 7625, 7626, 7627, 7628, 7629, 7630, 7631, 7632, 7633, 7634, 7635, 7636, 7637, 7638, 7639, 7640, 7641, 7642, 7643, 7644, 7645, 7646, 7647, 7648, 7649, 7650, 7651, 7652, 7653, 7654, 7655, 7656, 7657, 7658, 7659, 7660, 7661, 7662, 7663, 7664, 7665, 7666, 7667, 7668, 7669, 7670, 7671, 7672, 7673, 7674, 7675, 7676, 7677, 7678, 7679, -3810, -3811, -3812, -3813, -3814, -3815, -3816, -3817, -3818, -3819, -3820, -3821, -3822, -3823, -3824, -3825, -3826, -3827, -3828, -3829, -3830, -3831, -3832, -3833, -3834, -3835, -3836, -3837, -3838, -3839, 7680, 7681, 7682, 7683, 7684, 7685, 7686, 7687, 7688, 7689, 7690, 7691, 7692, 7693, 7694, 7695, 7696, 7697, 7698, 7699, 7700, 7701, 7702, 7703, 7704, 7705, 7706, 7707, 7708, 7709, 7710, 7711, 7712, 7713, 7714, 7715, 7716, 7717, 7718, 7719, 7720, 7721, 7722, 7723, 7724, 7725, 7726, 7727, 7728, 7729, 7730, 7731, 7732, 7733, 7734, 7735, 7736, 7737, 7738, 7739, -3840, -3841, -3842, -3843, -3844, -3845, -3846, -3847, -3848, -3849, -3850, -3851, -3852, -3853, -3854, -3855, -3856, -3857, -3858, -3859, -3860, -3861, -3862, -3863, -3864, -3865, -3866, -3867, -3868, -3869, 7740, 7741, 7742, 7743, 7744, 7745, 7746, 7747, 7748, 7749, 7750, 7751, 7752, 7753, 7754, 7755, 7756, 7757, 7758, 7759, 7760, 7761, 7762, 7763, 7764, 7765, 7766, 7767, 7768, 7769, 7770, 7771, 7772, 7773, 7774, 7775, 7776, 7777, 7778, 7779, 7780, 7781, 7782, 7783, 7784, 7785, 7786, 7787, 7788, 7789, 7790, 7791, 7792, 7793, 7794, 7795, 7796, 7797, 7798, 7799, -3870, -3871, -3872, -3873, -3874, -3875, -3876, -3877, -3878, -3879, -3880, -3881, -3882, -3883, -3884, -3885, -3886, -3887, -3888, -3889, -3890, -3891, -3892, -3893, -3894, -3895, -3896, -3897, -3898, -3899, 7800, 7801, 7802, 7803, 7804, 7805, 7806, 7807, 7808, 7809, 7810, 7811, 7812, 7813, 7814, 7815, 7816, 7817, 7818, 7819, 7820, 7821, 7822, 7823, 7824, 7825, 7826, 7827, 7828, 7829, 7830, 7831, 7832, 7833, 7834, 7835, 7836, 7837, 7838, 7839, 7840, 7841, 7842, 7843, 7844, 7845, 7846, 7847, 7848, 7849, 7850, 7851, 7852, 7853, 7854, 7855, 7856, 7857, 7858, 7859, -3900, -3901, -3902, -3903, -3904, -3905, -3906, -3907, -3908, -3909, -3910, -3911, -3912, -3913, -3914, -3915, -3916, -3917, -3918, -3919, -3920, -3921, -3922, -3923, -3924, -3925, -3926, -3927, -3928, -3929, 7860, 7861, 7862, 7863, 7864, 7865, 7866, 7867, 7868, 7869, 7870, 7871, 7872, 7873, 7874, 7875, 7876, 7877, 7878, 7879, 7880, 7881, 7882, 7883, 7884, 7885, 7886, 7887, 7888, 7889, 7890, 7891, 7892, 7893, 7894, 7895, 7896, 7897, 7898, 7899, 7900, 7901, 7902, 7903, 7904, 7905, 7906, 7907, 7908, 7909, 7910, 7911, 7912, 7913, 7914, 7915, 7916, 7917, 7918, 7919, -3930, -3931, -3932, -3933, -3934, -3935, -3936, -3937, -3938, -3939, -3940, -3941, -3942, -3943, -3944, -3945, -3946, -3947, -3948, -3949, -3950, -3951, -3952, -3953, -3954, -3955, -3956, -3957, -3958, -3959, 7920, 7921, 7922, 7923, 7924, 7925, 7926, 7927, 7928, 7929, 7930, 7931, 7932, 7933, 7934, 7935, 7936, 7937, 7938, 7939, 7940, 7941, 7942, 7943, 7944, 7945, 7946, 7947, 7948, 7949, 7950, 7951, 7952, 7953, 7954, 7955, 7956, 7957, 7958, 7959, 7960, 7961, 7962, 7963, 7964, 7965, 7966, 7967, 7968, 7969, 7970, 7971, 7972, 7973, 7974, 7975, 7976, 7977, 7978, 7979, -3960, -3961, -3962, -3963, -3964, -3965, -3966, -3967, -3968, -3969, -3970, -3971, -3972, -3973, -3974, -3975, -3976, -3977, -3978, -3979, -3980, -3981, -3982, -3983, -3984, -3985, -3986, -3987, -3988, -3989, 7980, 7981, 7982, 7983, 7984, 7985, 7986, 7987, 7988, 7989, 7990, 7991, 7992, 7993, 7994, 7995, 7996, 7997, 7998, 7999, 8000, 8001, 8002, 8003, 8004, 8005, 8006, 8007, 8008, 8009, 8010, 8011, 8012, 8013, 8014, 8015, 8016, 8017, 8018, 8019, 8020, 8021, 8022, 8023, 8024, 8025, 8026, 8027, 8028, 8029, 8030, 8031, 8032, 8033, 8034, 8035, 8036, 8037, 8038, 8039, -3990, -3991, -3992, -3993, -3994, -3995, -3996, -3997, -3998, -3999, -4000, -4001, -4002, -4003, -4004, -4005, -4006, -4007, -4008, -4009, -4010, -4011, -4012, -4013, -4014, -4015, -4016, -4017, -4018, -4019, 8040, 8041, 8042, 8043, 8044, 8045, 8046, 8047, 8048, 8049, 8050, 8051, 8052, 8053, 8054, 8055, 8056, 8057, 8058, 8059, 8060, 8061, 8062, 8063, 8064, 8065, 8066, 8067, 8068, 8069, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8083, 8084, 8085, 8086, 8087, 8088, 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098, 8099, -4020, -4021, -4022, -4023, -4024, -4025, -4026, -4027, -4028, -4029, -4030, -4031, -4032, -4033, -4034, -4035, -4036, -4037, -4038, -4039, -4040, -4041, -4042, -4043, -4044, -4045, -4046, -4047, -4048, -4049, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108, 8109, 8110, 8111, 8112, 8113, 8114, 8115, 8116, 8117, 8118, 8119, 8120, 8121, 8122, 8123, 8124, 8125, 8126, 8127, 8128, 8129, 8130, 8131, 8132, 8133, 8134, 8135, 8136, 8137, 8138, 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 8157, 8158, 8159, -4050, -4051, -4052, -4053, -4054, -4055, -4056, -4057, -4058, -4059, -4060, -4061, -4062, -4063, -4064, -4065, -4066, -4067, -4068, -4069, -4070, -4071, -4072, -4073, -4074, -4075, -4076, -4077, -4078, -4079, 8160, 8161, 8162, 8163, 8164, 8165, 8166, 8167, 8168, 8169, 8170, 8171, 8172, 8173, 8174, 8175, 8176, 8177, 8178, 8179, 8180, 8181, 8182, 8183, 8184, 8185, 8186, 8187, 8188, 8189, 8190, 8191, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8203, 8204, 8205, 8206, 8207, 8208, 8209, 8210, 8211, 8212, 8213, 8214, 8215, 8216, 8217, 8218, 8219, -4080, -4081, -4082, -4083, -4084, -4085, -4086, -4087, -4088, -4089, -4090, -4091, -4092, -4093, -4094, -4095, -4096, -4097, -4098, -4099, -4100, -4101, -4102, -4103, -4104, -4105, -4106, -4107, -4108, -4109, 8220, 8221, 8222, 8223, 8224, 8225, 8226, 8227, 8228, 8229, 8230, 8231, 8232, 8233, 8234, 8235, 8236, 8237, 8238, 8239, 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8247, 8248, 8249, 8250, 8251, 8252, 8253, 8254, 8255, 8256, 8257, 8258, 8259, 8260, 8261, 8262, 8263, 8264, 8265, 8266, 8267, 8268, 8269, 8270, 8271, 8272, 8273, 8274, 8275, 8276, 8277, 8278, 8279, -4110, -4111, -4112, -4113, -4114, -4115, -4116, -4117, -4118, -4119, -4120, -4121, -4122, -4123, -4124, -4125, -4126, -4127, -4128, -4129, -4130, -4131, -4132, -4133, -4134, -4135, -4136, -4137, -4138, -4139, 8280, 8281, 8282, 8283, 8284, 8285, 8286, 8287, 8288, 8289, 8290, 8291, 8292, 8293, 8294, 8295, 8296, 8297, 8298, 8299, 8300, 8301, 8302, 8303, 8304, 8305, 8306, 8307, 8308, 8309, 8310, 8311, 8312, 8313, 8314, 8315, 8316, 8317, 8318, 8319, 8320, 8321, 8322, 8323, 8324, 8325, 8326, 8327, 8328, 8329, 8330, 8331, 8332, 8333, 8334, 8335, 8336, 8337, 8338, 8339, -4140, -4141, -4142, -4143, -4144, -4145, -4146, -4147, -4148, -4149, -4150, -4151, -4152, -4153, -4154, -4155, -4156, -4157, -4158, -4159, -4160, -4161, -4162, -4163, -4164, -4165, -4166, -4167, -4168, -4169, 8340, 8341, 8342, 8343, 8344, 8345, 8346, 8347, 8348, 8349, 8350, 8351, 8352, 8353, 8354, 8355, 8356, 8357, 8358, 8359, 8360, 8361, 8362, 8363, 8364, 8365, 8366, 8367, 8368, 8369, 8370, 8371, 8372, 8373, 8374, 8375, 8376, 8377, 8378, 8379, 8380, 8381, 8382, 8383, 8384, 8385, 8386, 8387, 8388, 8389, 8390, 8391, 8392, 8393, 8394, 8395, 8396, 8397, 8398, 8399, -4170, -4171, -4172, -4173, -4174, -4175, -4176, -4177, -4178, -4179, -4180, -4181, -4182, -4183, -4184, -4185, -4186, -4187, -4188, -4189, -4190, -4191, -4192, -4193, -4194, -4195, -4196, -4197, -4198, -4199, 8400, 8401, 8402, 8403, 8404, 8405, 8406, 8407, 8408, 8409, 8410, 8411, 8412, 8413, 8414, 8415, 8416, 8417, 8418, 8419, 8420, 8421, 8422, 8423, 8424, 8425, 8426, 8427, 8428, 8429, 8430, 8431, 8432, 8433, 8434, 8435, 8436, 8437, 8438, 8439, 8440, 8441, 8442, 8443, 8444, 8445, 8446, 8447, 8448, 8449, 8450, 8451, 8452, 8453, 8454, 8455, 8456, 8457, 8458, 8459, -4200, -4201, -4202, -4203, -4204, -4205, -4206, -4207, -4208, -4209, -4210, -4211, -4212, -4213, -4214, -4215, -4216, -4217, -4218, -4219, -4220, -4221, -4222, -4223, -4224, -4225, -4226, -4227, -4228, -4229, 8460, 8461, 8462, 8463, 8464, 8465, 8466, 8467, 8468, 8469, 8470, 8471, 8472, 8473, 8474, 8475, 8476, 8477, 8478, 8479, 8480, 8481, 8482, 8483, 8484, 8485, 8486, 8487, 8488, 8489, 8490, 8491, 8492, 8493, 8494, 8495, 8496, 8497, 8498, 8499, 8500, 8501, 8502, 8503, 8504, 8505, 8506, 8507, 8508, 8509, 8510, 8511, 8512, 8513, 8514, 8515, 8516, 8517, 8518, 8519, -4230, -4231, -4232, -4233, -4234, -4235, -4236, -4237, -4238, -4239, -4240, -4241, -4242, -4243, -4244, -4245, -4246, -4247, -4248, -4249, -4250, -4251, -4252, -4253, -4254, -4255, -4256, -4257, -4258, -4259, 8520, 8521, 8522, 8523, 8524, 8525, 8526, 8527, 8528, 8529, 8530, 8531, 8532, 8533, 8534, 8535, 8536, 8537, 8538, 8539, 8540, 8541, 8542, 8543, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558, 8559, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8577, 8578, 8579, -4260, -4261, -4262, -4263, -4264, -4265, -4266, -4267, -4268, -4269, -4270, -4271, -4272, -4273, -4274, -4275, -4276, -4277, -4278, -4279, -4280, -4281, -4282, -4283, -4284, -4285, -4286, -4287, -4288, -4289, 8580, 8581, 8582, 8583, 8584, 8585, 8586, 8587, 8588, 8589, 8590, 8591, 8592, 8593, 8594, 8595, 8596, 8597, 8598, 8599, 8600, 8601, 8602, 8603, 8604, 8605, 8606, 8607, 8608, 8609, 8610, 8611, 8612, 8613, 8614, 8615, 8616, 8617, 8618, 8619, 8620, 8621, 8622, 8623, 8624, 8625, 8626, 8627, 8628, 8629, 8630, 8631, 8632, 8633, 8634, 8635, 8636, 8637, 8638, 8639, -4290, -4291, -4292, -4293, -4294, -4295, -4296, -4297, -4298, -4299, -4300, -4301, -4302, -4303, -4304, -4305, -4306, -4307, -4308, -4309, -4310, -4311, -4312, -4313, -4314, -4315, -4316, -4317, -4318, -4319, 8640, 8641, 8642, 8643, 8644, 8645, 8646, 8647, 8648, 8649, 8650, 8651, 8652, 8653, 8654, 8655, 8656, 8657, 8658, 8659, 8660, 8661, 8662, 8663, 8664, 8665, 8666, 8667, 8668, 8669, 8670, 8671, 8672, 8673, 8674, 8675, 8676, 8677, 8678, 8679, 8680, 8681, 8682, 8683, 8684, 8685, 8686, 8687, 8688, 8689, 8690, 8691, 8692, 8693, 8694, 8695, 8696, 8697, 8698, 8699, -4320, -4321, -4322, -4323, -4324, -4325, -4326, -4327, -4328, -4329, -4330, -4331, -4332, -4333, -4334, -4335, -4336, -4337, -4338, -4339, -4340, -4341, -4342, -4343, -4344, -4345, -4346, -4347, -4348, -4349, 8700, 8701, 8702, 8703, 8704, 8705, 8706, 8707, 8708, 8709, 8710, 8711, 8712, 8713, 8714, 8715, 8716, 8717, 8718, 8719, 8720, 8721, 8722, 8723, 8724, 8725, 8726, 8727, 8728, 8729, 8730, 8731, 8732, 8733, 8734, 8735, 8736, 8737, 8738, 8739, 8740, 8741, 8742, 8743, 8744, 8745, 8746, 8747, 8748, 8749, 8750, 8751, 8752, 8753, 8754, 8755, 8756, 8757, 8758, 8759, -4350, -4351, -4352, -4353, -4354, -4355, -4356, -4357, -4358, -4359, -4360, -4361, -4362, -4363, -4364, -4365, -4366, -4367, -4368, -4369, -4370, -4371, -4372, -4373, -4374, -4375, -4376, -4377, -4378, -4379, 8760, 8761, 8762, 8763, 8764, 8765, 8766, 8767, 8768, 8769, 8770, 8771, 8772, 8773, 8774, 8775, 8776, 8777, 8778, 8779, 8780, 8781, 8782, 8783, 8784, 8785, 8786, 8787, 8788, 8789, 8790, 8791, 8792, 8793, 8794, 8795, 8796, 8797, 8798, 8799, 8800, 8801, 8802, 8803, 8804, 8805, 8806, 8807, 8808, 8809, 8810, 8811, 8812, 8813, 8814, 8815, 8816, 8817, 8818, 8819, -4380, -4381, -4382, -4383, -4384, -4385, -4386, -4387, -4388, -4389, -4390, -4391, -4392, -4393, -4394, -4395, -4396, -4397, -4398, -4399, -4400, -4401, -4402, -4403, -4404, -4405, -4406, -4407, -4408, -4409, 8820, 8821, 8822, 8823, 8824, 8825, 8826, 8827, 8828, 8829, 8830, 8831, 8832, 8833, 8834, 8835, 8836, 8837, 8838, 8839, 8840, 8841, 8842, 8843, 8844, 8845, 8846, 8847, 8848, 8849, 8850, 8851, 8852, 8853, 8854, 8855, 8856, 8857, 8858, 8859, 8860, 8861, 8862, 8863, 8864, 8865, 8866, 8867, 8868, 8869, 8870, 8871, 8872, 8873, 8874, 8875, 8876, 8877, 8878, 8879, -4410, -4411, -4412, -4413, -4414, -4415, -4416, -4417, -4418, -4419, -4420, -4421, -4422, -4423, -4424, -4425, -4426, -4427, -4428, -4429, -4430, -4431, -4432, -4433, -4434, -4435, -4436, -4437, -4438, -4439, 8880, 8881, 8882, 8883, 8884, 8885, 8886, 8887, 8888, 8889, 8890, 8891, 8892, 8893, 8894, 8895, 8896, 8897, 8898, 8899, 8900, 8901, 8902, 8903, 8904, 8905, 8906, 8907, 8908, 8909, 8910, 8911, 8912, 8913, 8914, 8915, 8916, 8917, 8918, 8919, 8920, 8921, 8922, 8923, 8924, 8925, 8926, 8927, 8928, 8929, 8930, 8931, 8932, 8933, 8934, 8935, 8936, 8937, 8938, 8939, -4440, -4441, -4442, -4443, -4444, -4445, -4446, -4447, -4448, -4449, -4450, -4451, -4452, -4453, -4454, -4455, -4456, -4457, -4458, -4459, -4460, -4461, -4462, -4463, -4464, -4465, -4466, -4467, -4468, -4469, 8940, 8941, 8942, 8943, 8944, 8945, 8946, 8947, 8948, 8949, 8950, 8951, 8952, 8953, 8954, 8955, 8956, 8957, 8958, 8959, 8960, 8961, 8962, 8963, 8964, 8965, 8966, 8967, 8968, 8969, 8970, 8971, 8972, 8973, 8974, 8975, 8976, 8977, 8978, 8979, 8980, 8981, 8982, 8983, 8984, 8985, 8986, 8987, 8988, 8989, 8990, 8991, 8992, 8993, 8994, 8995, 8996, 8997, 8998, 8999, -4470, -4471, -4472, -4473, -4474, -4475, -4476, -4477, -4478, -4479, -4480, -4481, -4482, -4483, -4484, -4485, -4486, -4487, -4488, -4489, -4490, -4491, -4492, -4493, -4494, -4495, -4496, -4497, -4498, -4499, 9000, 9001, 9002, 9003, 9004, 9005, 9006, 9007, 9008, 9009, 9010, 9011, 9012, 9013, 9014, 9015, 9016, 9017, 9018, 9019, 9020, 9021, 9022, 9023, 9024, 9025, 9026, 9027, 9028, 9029, 9030, 9031, 9032, 9033, 9034, 9035, 9036, 9037, 9038, 9039, 9040, 9041, 9042, 9043, 9044, 9045, 9046, 9047, 9048, 9049, 9050, 9051, 9052, 9053, 9054, 9055, 9056, 9057, 9058, 9059, -4500, -4501, -4502, -4503, -4504, -4505, -4506, -4507, -4508, -4509, -4510, -4511, -4512, -4513, -4514, -4515, -4516, -4517, -4518, -4519, -4520, -4521, -4522, -4523, -4524, -4525, -4526, -4527, -4528, -4529, 9060, 9061, 9062, 9063, 9064, 9065, 9066, 9067, 9068, 9069, 9070, 9071, 9072, 9073, 9074, 9075, 9076, 9077, 9078, 9079, 9080, 9081, 9082, 9083, 9084, 9085, 9086, 9087, 9088, 9089, 9090, 9091, 9092, 9093, 9094, 9095, 9096, 9097, 9098, 9099, 9100, 9101, 9102, 9103, 9104, 9105, 9106, 9107, 9108, 9109, 9110, 9111, 9112, 9113, 9114, 9115, 9116, 9117, 9118, 9119, -4530, -4531, -4532, -4533, -4534, -4535, -4536, -4537, -4538, -4539, -4540, -4541, -4542, -4543, -4544, -4545, -4546, -4547, -4548, -4549, -4550, -4551, -4552, -4553, -4554, -4555, -4556, -4557, -4558, -4559, 9120, 9121, 9122, 9123, 9124, 9125, 9126, 9127, 9128, 9129, 9130, 9131, 9132, 9133, 9134, 9135, 9136, 9137, 9138, 9139, 9140, 9141, 9142, 9143, 9144, 9145, 9146, 9147, 9148, 9149, 9150, 9151, 9152, 9153, 9154, 9155, 9156, 9157, 9158, 9159, 9160, 9161, 9162, 9163, 9164, 9165, 9166, 9167, 9168, 9169, 9170, 9171, 9172, 9173, 9174, 9175, 9176, 9177, 9178, 9179, -4560, -4561, -4562, -4563, -4564, -4565, -4566, -4567, -4568, -4569, -4570, -4571, -4572, -4573, -4574, -4575, -4576, -4577, -4578, -4579, -4580, -4581, -4582, -4583, -4584, -4585, -4586, -4587, -4588, -4589, 9180, 9181, 9182, 9183, 9184, 9185, 9186, 9187, 9188, 9189, 9190, 9191, 9192, 9193, 9194, 9195, 9196, 9197, 9198, 9199, 9200, 9201, 9202, 9203, 9204, 9205, 9206, 9207, 9208, 9209, 9210, 9211, 9212, 9213, 9214, 9215, 9216, 9217, 9218, 9219, 9220, 9221, 9222, 9223, 9224, 9225, 9226, 9227, 9228, 9229, 9230, 9231, 9232, 9233, 9234, 9235, 9236, 9237, 9238, 9239, -4590, -4591, -4592, -4593, -4594, -4595, -4596, -4597, -4598, -4599, -4600, -4601, -4602, -4603, -4604, -4605, -4606, -4607, -4608, -4609, -4610, -4611, -4612, -4613, -4614, -4615, -4616, -4617, -4618, -4619, 9240, 9241, 9242, 9243, 9244, 9245, 9246, 9247, 9248, 9249, 9250, 9251, 9252, 9253, 9254, 9255, 9256, 9257, 9258, 9259, 9260, 9261, 9262, 9263, 9264, 9265, 9266, 9267, 9268, 9269, 9270, 9271, 9272, 9273, 9274, 9275, 9276, 9277, 9278, 9279, 9280, 9281, 9282, 9283, 9284, 9285, 9286, 9287, 9288, 9289, 9290, 9291, 9292, 9293, 9294, 9295, 9296, 9297, 9298, 9299, -4620, -4621, -4622, -4623, -4624, -4625, -4626, -4627, -4628, -4629, -4630, -4631, -4632, -4633, -4634, -4635, -4636, -4637, -4638, -4639, -4640, -4641, -4642, -4643, -4644, -4645, -4646, -4647, -4648, -4649, 9300, 9301, 9302, 9303, 9304, 9305, 9306, 9307, 9308, 9309, 9310, 9311, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 9322, 9323, 9324, 9325, 9326, 9327, 9328, 9329, 9330, 9331, 9332, 9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 9342, 9343, 9344, 9345, 9346, 9347, 9348, 9349, 9350, 9351, 9352, 9353, 9354, 9355, 9356, 9357, 9358, 9359, -4650, -4651, -4652, -4653, -4654, -4655, -4656, -4657, -4658, -4659, -4660, -4661, -4662, -4663, -4664, -4665, -4666, -4667, -4668, -4669, -4670, -4671, -4672, -4673, -4674, -4675, -4676, -4677, -4678, -4679, 9360, 9361, 9362, 9363, 9364, 9365, 9366, 9367, 9368, 9369, 9370, 9371, 9372, 9373, 9374, 9375, 9376, 9377, 9378, 9379, 9380, 9381, 9382, 9383, 9384, 9385, 9386, 9387, 9388, 9389, 9390, 9391, 9392, 9393, 9394, 9395, 9396, 9397, 9398, 9399, 9400, 9401, 9402, 9403, 9404, 9405, 9406, 9407, 9408, 9409, 9410, 9411, 9412, 9413, 9414, 9415, 9416, 9417, 9418, 9419, -4680, -4681, -4682, -4683, -4684, -4685, -4686, -4687, -4688, -4689, -4690, -4691, -4692, -4693, -4694, -4695, -4696, -4697, -4698, -4699, -4700, -4701, -4702, -4703, -4704, -4705, -4706, -4707, -4708, -4709, 9420, 9421, 9422, 9423, 9424, 9425, 9426, 9427, 9428, 9429, 9430, 9431, 9432, 9433, 9434, 9435, 9436, 9437, 9438, 9439, 9440, 9441, 9442, 9443, 9444, 9445, 9446, 9447, 9448, 9449, 9450, 9451, 9452, 9453, 9454, 9455, 9456, 9457, 9458, 9459, 9460, 9461, 9462, 9463, 9464, 9465, 9466, 9467, 9468, 9469, 9470, 9471, 9472, 9473, 9474, 9475, 9476, 9477, 9478, 9479, -4710, -4711, -4712, -4713, -4714, -4715, -4716, -4717, -4718, -4719, -4720, -4721, -4722, -4723, -4724, -4725, -4726, -4727, -4728, -4729, -4730, -4731, -4732, -4733, -4734, -4735, -4736, -4737, -4738, -4739, 9480, 9481, 9482, 9483, 9484, 9485, 9486, 9487, 9488, 9489, 9490, 9491, 9492, 9493, 9494, 9495, 9496, 9497, 9498, 9499, 9500, 9501, 9502, 9503, 9504, 9505, 9506, 9507, 9508, 9509, 9510, 9511, 9512, 9513, 9514, 9515, 9516, 9517, 9518, 9519, 9520, 9521, 9522, 9523, 9524, 9525, 9526, 9527, 9528, 9529, 9530, 9531, 9532, 9533, 9534, 9535, 9536, 9537, 9538, 9539, -4740, -4741, -4742, -4743, -4744, -4745, -4746, -4747, -4748, -4749, -4750, -4751, -4752, -4753, -4754, -4755, -4756, -4757, -4758, -4759, -4760, -4761, -4762, -4763, -4764, -4765, -4766, -4767, -4768, -4769, 9540, 9541, 9542, 9543, 9544, 9545, 9546, 9547, 9548, 9549, 9550, 9551, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9581, 9582, 9583, 9584, 9585, 9586, 9587, 9588, 9589, 9590, 9591, 9592, 9593, 9594, 9595, 9596, 9597, 9598, 9599, -4770, -4771, -4772, -4773, -4774, -4775, -4776, -4777, -4778, -4779, -4780, -4781, -4782, -4783, -4784, -4785, -4786, -4787, -4788, -4789, -4790, -4791, -4792, -4793, -4794, -4795, -4796, -4797, -4798, -4799, 9600, 9601, 9602, 9603, 9604, 9605, 9606, 9607, 9608, 9609, 9610, 9611, 9612, 9613, 9614, 9615, 9616, 9617, 9618, 9619, 9620, 9621, 9622, 9623, 9624, 9625, 9626, 9627, 9628, 9629, 9630, 9631, 9632, 9633, 9634, 9635, 9636, 9637, 9638, 9639, 9640, 9641, 9642, 9643, 9644, 9645, 9646, 9647, 9648, 9649, 9650, 9651, 9652, 9653, 9654, 9655, 9656, 9657, 9658, 9659, -4800, -4801, -4802, -4803, -4804, -4805, -4806, -4807, -4808, -4809, -4810, -4811, -4812, -4813, -4814, -4815, -4816, -4817, -4818, -4819, -4820, -4821, -4822, -4823, -4824, -4825, -4826, -4827, -4828, -4829, 9660, 9661, 9662, 9663, 9664, 9665, 9666, 9667, 9668, 9669, 9670, 9671, 9672, 9673, 9674, 9675, 9676, 9677, 9678, 9679, 9680, 9681, 9682, 9683, 9684, 9685, 9686, 9687, 9688, 9689, 9690, 9691, 9692, 9693, 9694, 9695, 9696, 9697, 9698, 9699, 9700, 9701, 9702, 9703, 9704, 9705, 9706, 9707, 9708, 9709, 9710, 9711, 9712, 9713, 9714, 9715, 9716, 9717, 9718, 9719, -4830, -4831, -4832, -4833, -4834, -4835, -4836, -4837, -4838, -4839, -4840, -4841, -4842, -4843, -4844, -4845, -4846, -4847, -4848, -4849, -4850, -4851, -4852, -4853, -4854, -4855, -4856, -4857, -4858, -4859, 9720, 9721, 9722, 9723, 9724, 9725, 9726, 9727, 9728, 9729, 9730, 9731, 9732, 9733, 9734, 9735, 9736, 9737, 9738, 9739, 9740, 9741, 9742, 9743, 9744, 9745, 9746, 9747, 9748, 9749, 9750, 9751, 9752, 9753, 9754, 9755, 9756, 9757, 9758, 9759, 9760, 9761, 9762, 9763, 9764, 9765, 9766, 9767, 9768, 9769, 9770, 9771, 9772, 9773, 9774, 9775, 9776, 9777, 9778, 9779, -4860, -4861, -4862, -4863, -4864, -4865, -4866, -4867, -4868, -4869, -4870, -4871, -4872, -4873, -4874, -4875, -4876, -4877, -4878, -4879, -4880, -4881, -4882, -4883, -4884, -4885, -4886, -4887, -4888, -4889, 9780, 9781, 9782, 9783, 9784, 9785, 9786, 9787, 9788, 9789, 9790, 9791, 9792, 9793, 9794, 9795, 9796, 9797, 9798, 9799, 9800, 9801, 9802, 9803, 9804, 9805, 9806, 9807, 9808, 9809, 9810, 9811, 9812, 9813, 9814, 9815, 9816, 9817, 9818, 9819, 9820, 9821, 9822, 9823, 9824, 9825, 9826, 9827, 9828, 9829, 9830, 9831, 9832, 9833, 9834, 9835, 9836, 9837, 9838, 9839, -4890, -4891, -4892, -4893, -4894, -4895, -4896, -4897, -4898, -4899, -4900, -4901, -4902, -4903, -4904, -4905, -4906, -4907, -4908, -4909, -4910, -4911, -4912, -4913, -4914, -4915, -4916, -4917, -4918, -4919, 9840, 9841, 9842, 9843, 9844, 9845, 9846, 9847, 9848, 9849, 9850, 9851, 9852, 9853, 9854, 9855, 9856, 9857, 9858, 9859, 9860, 9861, 9862, 9863, 9864, 9865, 9866, 9867, 9868, 9869, 9870, 9871, 9872, 9873, 9874, 9875, 9876, 9877, 9878, 9879, 9880, 9881, 9882, 9883, 9884, 9885, 9886, 9887, 9888, 9889, 9890, 9891, 9892, 9893, 9894, 9895, 9896, 9897, 9898, 9899, -4920, -4921, -4922, -4923, -4924, -4925, -4926, -4927, -4928, -4929, -4930, -4931, -4932, -4933, -4934, -4935, -4936, -4937, -4938, -4939, -4940, -4941, -4942, -4943, -4944, -4945, -4946, -4947, -4948, -4949, 9900, 9901, 9902, 9903, 9904, 9905, 9906, 9907, 9908, 9909, 9910, 9911, 9912, 9913, 9914, 9915, 9916, 9917, 9918, 9919, 9920, 9921, 9922, 9923, 9924, 9925, 9926, 9927, 9928, 9929, 9930, 9931, 9932, 9933, 9934, 9935, 9936, 9937, 9938, 9939, 9940, 9941, 9942, 9943, 9944, 9945, 9946, 9947, 9948, 9949, 9950, 9951, 9952, 9953, 9954, 9955, 9956, 9957, 9958, 9959, -4950, -4951, -4952, -4953, -4954, -4955, -4956, -4957, -4958, -4959, -4960, -4961, -4962, -4963, -4964, -4965, -4966, -4967, -4968, -4969, -4970, -4971, -4972, -4973, -4974, -4975, -4976, -4977, -4978, -4979, 9960, 9961, 9962, 9963, 9964, 9965, 9966, 9967, 9968, 9969, 9970, 9971, 9972, 9973, 9974, 9975, 9976, 9977, 9978, 9979, 9980, 9981, 9982, 9983, 9984, 9985, 9986, 9987, 9988, 9989, 9990, 9991, 9992, 9993, 9994, 9995, 9996, 9997, 9998, 9999, 10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015, 10016, 10017, 10018, 10019, -4980, -4981, -4982, -4983, -4984, -4985, -4986, -4987, -4988, -4989, -4990, -4991, -4992, -4993, -4994, -4995, -4996, -4997, -4998, -4999, -5000, -5001, -5002, -5003, -5004, -5005, -5006, -5007, -5008, -5009, 10020, 10021, 10022, 10023, 10024, 10025, 10026, 10027, 10028, 10029, 10030, 10031, 10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039, 10040, 10041, 10042, 10043, 10044, 10045, 10046, 10047, 10048, 10049, 10050, 10051, 10052, 10053, 10054, 10055, 10056, 10057, 10058, 10059, 10060, 10061, 10062, 10063, 10064, 10065, 10066, 10067, 10068, 10069, 10070, 10071, 10072, 10073, 10074, 10075, 10076, 10077, 10078, 10079, -5010, -5011, -5012, -5013, -5014, -5015, -5016, -5017, -5018, -5019, -5020, -5021, -5022, -5023, -5024, -5025, -5026, -5027, -5028, -5029, -5030, -5031, -5032, -5033, -5034, -5035, -5036, -5037, -5038, -5039, 10080, 10081, 10082, 10083, 10084, 10085, 10086, 10087, 10088, 10089, 10090, 10091, 10092, 10093, 10094, 10095, 10096, 10097, 10098, 10099, 10100, 10101, 10102, 10103, 10104, 10105, 10106, 10107, 10108, 10109, 10110, 10111, 10112, 10113, 10114, 10115, 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 10132, 10133, 10134, 10135, 10136, 10137, 10138, 10139, -5040, -5041, -5042, -5043, -5044, -5045, -5046, -5047, -5048, -5049, -5050, -5051, -5052, -5053, -5054, -5055, -5056, -5057, -5058, -5059, -5060, -5061, -5062, -5063, -5064, -5065, -5066, -5067, -5068, -5069, 10140, 10141, 10142, 10143, 10144, 10145, 10146, 10147, 10148, 10149, 10150, 10151, 10152, 10153, 10154, 10155, 10156, 10157, 10158, 10159, 10160, 10161, 10162, 10163, 10164, 10165, 10166, 10167, 10168, 10169, 10170, 10171, 10172, 10173, 10174, 10175, 10176, 10177, 10178, 10179, 10180, 10181, 10182, 10183, 10184, 10185, 10186, 10187, 10188, 10189, 10190, 10191, 10192, 10193, 10194, 10195, 10196, 10197, 10198, 10199, -5070, -5071, -5072, -5073, -5074, -5075, -5076, -5077, -5078, -5079, -5080, -5081, -5082, -5083, -5084, -5085, -5086, -5087, -5088, -5089, -5090, -5091, -5092, -5093, -5094, -5095, -5096, -5097, -5098, -5099, 10200, 10201, 10202, 10203, 10204, 10205, 10206, 10207, 10208, 10209, 10210, 10211, 10212, 10213, 10214, 10215, 10216, 10217, 10218, 10219, 10220, 10221, 10222, 10223, 10224, 10225, 10226, 10227, 10228, 10229, 10230, 10231, 10232, 10233, 10234, 10235, 10236, 10237, 10238, 10239, 10240, 10241, 10242, 10243, 10244, 10245, 10246, 10247, 10248, 10249, 10250, 10251, 10252, 10253, 10254, 10255, 10256, 10257, 10258, 10259, -5100, -5101, -5102, -5103, -5104, -5105, -5106, -5107, -5108, -5109, -5110, -5111, -5112, -5113, -5114, -5115, -5116, -5117, -5118, -5119, -5120, -5121, -5122, -5123, -5124, -5125, -5126, -5127, -5128, -5129, 10260, 10261, 10262, 10263, 10264, 10265, 10266, 10267, 10268, 10269, 10270, 10271, 10272, 10273, 10274, 10275, 10276, 10277, 10278, 10279, 10280, 10281, 10282, 10283, 10284, 10285, 10286, 10287, 10288, 10289, 10290, 10291, 10292, 10293, 10294, 10295, 10296, 10297, 10298, 10299, 10300, 10301, 10302, 10303, 10304, 10305, 10306, 10307, 10308, 10309, 10310, 10311, 10312, 10313, 10314, 10315, 10316, 10317, 10318, 10319, -5130, -5131, -5132, -5133, -5134, -5135, -5136, -5137, -5138, -5139, -5140, -5141, -5142, -5143, -5144, -5145, -5146, -5147, -5148, -5149, -5150, -5151, -5152, -5153, -5154, -5155, -5156, -5157, -5158, -5159, 10320, 10321, 10322, 10323, 10324, 10325, 10326, 10327, 10328, 10329, 10330, 10331, 10332, 10333, 10334, 10335, 10336, 10337, 10338, 10339, 10340, 10341, 10342, 10343, 10344, 10345, 10346, 10347, 10348, 10349, 10350, 10351, 10352, 10353, 10354, 10355, 10356, 10357, 10358, 10359, 10360, 10361, 10362, 10363, 10364, 10365, 10366, 10367, 10368, 10369, 10370, 10371, 10372, 10373, 10374, 10375, 10376, 10377, 10378, 10379, -5160, -5161, -5162, -5163, -5164, -5165, -5166, -5167, -5168, -5169, -5170, -5171, -5172, -5173, -5174, -5175, -5176, -5177, -5178, -5179, -5180, -5181, -5182, -5183, -5184, -5185, -5186, -5187, -5188, -5189, 10380, 10381, 10382, 10383, 10384, 10385, 10386, 10387, 10388, 10389, 10390, 10391, 10392, 10393, 10394, 10395, 10396, 10397, 10398, 10399, 10400, 10401, 10402, 10403, 10404, 10405, 10406, 10407, 10408, 10409, 10410, 10411, 10412, 10413, 10414, 10415, 10416, 10417, 10418, 10419, 10420, 10421, 10422, 10423, 10424, 10425, 10426, 10427, 10428, 10429, 10430, 10431, 10432, 10433, 10434, 10435, 10436, 10437, 10438, 10439, -5190, -5191, -5192, -5193, -5194, -5195, -5196, -5197, -5198, -5199, -5200, -5201, -5202, -5203, -5204, -5205, -5206, -5207, -5208, -5209, -5210, -5211, -5212, -5213, -5214, -5215, -5216, -5217, -5218, -5219, 10440, 10441, 10442, 10443, 10444, 10445, 10446, 10447, 10448, 10449, 10450, 10451, 10452, 10453, 10454, 10455, 10456, 10457, 10458, 10459, 10460, 10461, 10462, 10463, 10464, 10465, 10466, 10467, 10468, 10469, 10470, 10471, 10472, 10473, 10474, 10475, 10476, 10477, 10478, 10479, 10480, 10481, 10482, 10483, 10484, 10485, 10486, 10487, 10488, 10489, 10490, 10491, 10492, 10493, 10494, 10495, 10496, 10497, 10498, 10499, -5220, -5221, -5222, -5223, -5224, -5225, -5226, -5227, -5228, -5229, -5230, -5231, -5232, -5233, -5234, -5235, -5236, -5237, -5238, -5239, -5240, -5241, -5242, -5243, -5244, -5245, -5246, -5247, -5248, -5249, 10500, 10501, 10502, 10503, 10504, 10505, 10506, 10507, 10508, 10509, 10510, 10511, 10512, 10513, 10514, 10515, 10516, 10517, 10518, 10519, 10520, 10521, 10522, 10523, 10524, 10525, 10526, 10527, 10528, 10529, 10530, 10531, 10532, 10533, 10534, 10535, 10536, 10537, 10538, 10539, 10540, 10541, 10542, 10543, 10544, 10545, 10546, 10547, 10548, 10549, 10550, 10551, 10552, 10553, 10554, 10555, 10556, 10557, 10558, 10559, -5250, -5251, -5252, -5253, -5254, -5255, -5256, -5257, -5258, -5259, -5260, -5261, -5262, -5263, -5264, -5265, -5266, -5267, -5268, -5269, -5270, -5271, -5272, -5273, -5274, -5275, -5276, -5277, -5278, -5279, 10560, 10561, 10562, 10563, 10564, 10565, 10566, 10567, 10568, 10569, 10570, 10571, 10572, 10573, 10574, 10575, 10576, 10577, 10578, 10579, 10580, 10581, 10582, 10583, 10584, 10585, 10586, 10587, 10588, 10589, 10590, 10591, 10592, 10593, 10594, 10595, 10596, 10597, 10598, 10599, 10600, 10601, 10602, 10603, 10604, 10605, 10606, 10607, 10608, 10609, 10610, 10611, 10612, 10613, 10614, 10615, 10616, 10617, 10618, 10619, -5280, -5281, -5282, -5283, -5284, -5285, -5286, -5287, -5288, -5289, -5290, -5291, -5292, -5293, -5294, -5295, -5296, -5297, -5298, -5299, -5300, -5301, -5302, -5303, -5304, -5305, -5306, -5307, -5308, -5309, 10620, 10621, 10622, 10623, 10624, 10625, 10626, 10627, 10628, 10629, 10630, 10631, 10632, 10633, 10634, 10635, 10636, 10637, 10638, 10639, 10640, 10641, 10642, 10643, 10644, 10645, 10646, 10647, 10648, 10649, 10650, 10651, 10652, 10653, 10654, 10655, 10656, 10657, 10658, 10659, 10660, 10661, 10662, 10663, 10664, 10665, 10666, 10667, 10668, 10669, 10670, 10671, 10672, 10673, 10674, 10675, 10676, 10677, 10678, 10679, -5310, -5311, -5312, -5313, -5314, -5315, -5316, -5317, -5318, -5319, -5320, -5321, -5322, -5323, -5324, -5325, -5326, -5327, -5328, -5329, -5330, -5331, -5332, -5333, -5334, -5335, -5336, -5337, -5338, -5339, 10680, 10681, 10682, 10683, 10684, 10685, 10686, 10687, 10688, 10689, 10690, 10691, 10692, 10693, 10694, 10695, 10696, 10697, 10698, 10699, 10700, 10701, 10702, 10703, 10704, 10705, 10706, 10707, 10708, 10709, 10710, 10711, 10712, 10713, 10714, 10715, 10716, 10717, 10718, 10719, 10720, 10721, 10722, 10723, 10724, 10725, 10726, 10727, 10728, 10729, 10730, 10731, 10732, 10733, 10734, 10735, 10736, 10737, 10738, 10739, -5340, -5341, -5342, -5343, -5344, -5345, -5346, -5347, -5348, -5349, -5350, -5351, -5352, -5353, -5354, -5355, -5356, -5357, -5358, -5359, -5360, -5361, -5362, -5363, -5364, -5365, -5366, -5367, -5368, -5369, 10740, 10741, 10742, 10743, 10744, 10745, 10746, 10747, 10748, 10749, 10750, 10751, 10752, 10753, 10754, 10755, 10756, 10757, 10758, 10759, 10760, 10761, 10762, 10763, 10764, 10765, 10766, 10767, 10768, 10769, 10770, 10771, 10772, 10773, 10774, 10775, 10776, 10777, 10778, 10779, 10780, 10781, 10782, 10783, 10784, 10785, 10786, 10787, 10788, 10789, 10790, 10791, 10792, 10793, 10794, 10795, 10796, 10797, 10798, 10799, -5370, -5371, -5372, -5373, -5374, -5375, -5376, -5377, -5378, -5379, -5380, -5381, -5382, -5383, -5384, -5385, -5386, -5387, -5388, -5389, -5390, -5391, -5392, -5393, -5394, -5395, -5396, -5397, -5398, -5399, 10800, 10801, 10802, 10803, 10804, 10805, 10806, 10807, 10808, 10809, 10810, 10811, 10812, 10813, 10814, 10815, 10816, 10817, 10818, 10819, 10820, 10821, 10822, 10823, 10824, 10825, 10826, 10827, 10828, 10829, 10830, 10831, 10832, 10833, 10834, 10835, 10836, 10837, 10838, 10839, 10840, 10841, 10842, 10843, 10844, 10845, 10846, 10847, 10848, 10849, 10850, 10851, 10852, 10853, 10854, 10855, 10856, 10857, 10858, 10859, -5400, -5401, -5402, -5403, -5404, -5405, -5406, -5407, -5408, -5409, -5410, -5411, -5412, -5413, -5414, -5415, -5416, -5417, -5418, -5419, -5420, -5421, -5422, -5423, -5424, -5425, -5426, -5427, -5428, -5429, 10860, 10861, 10862, 10863, 10864, 10865, 10866, 10867, 10868, 10869, 10870, 10871, 10872, 10873, 10874, 10875, 10876, 10877, 10878, 10879, 10880, 10881, 10882, 10883, 10884, 10885, 10886, 10887, 10888, 10889, 10890, 10891, 10892, 10893, 10894, 10895, 10896, 10897, 10898, 10899, 10900, 10901, 10902, 10903, 10904, 10905, 10906, 10907, 10908, 10909, 10910, 10911, 10912, 10913, 10914, 10915, 10916, 10917, 10918, 10919, -5430, -5431, -5432, -5433, -5434, -5435, -5436, -5437, -5438, -5439, -5440, -5441, -5442, -5443, -5444, -5445, -5446, -5447, -5448, -5449, -5450, -5451, -5452, -5453, -5454, -5455, -5456, -5457, -5458, -5459, 10920, 10921, 10922, 10923, 10924, 10925, 10926, 10927, 10928, 10929, 10930, 10931, 10932, 10933, 10934, 10935, 10936, 10937, 10938, 10939, 10940, 10941, 10942, 10943, 10944, 10945, 10946, 10947, 10948, 10949, 10950, 10951, 10952, 10953, 10954, 10955, 10956, 10957, 10958, 10959, 10960, 10961, 10962, 10963, 10964, 10965, 10966, 10967, 10968, 10969, 10970, 10971, 10972, 10973, 10974, 10975, 10976, 10977, 10978, 10979, -5460, -5461, -5462, -5463, -5464, -5465, -5466, -5467, -5468, -5469, -5470, -5471, -5472, -5473, -5474, -5475, -5476, -5477, -5478, -5479, -5480, -5481, -5482, -5483, -5484, -5485, -5486, -5487, -5488, -5489, 10980, 10981, 10982, 10983, 10984, 10985, 10986, 10987, 10988, 10989, 10990, 10991, 10992, 10993, 10994, 10995, 10996, 10997, 10998, 10999, 11000, 11001, 11002, 11003, 11004, 11005, 11006, 11007, 11008, 11009, 11010, 11011, 11012, 11013, 11014, 11015, 11016, 11017, 11018, 11019, 11020, 11021, 11022, 11023, 11024, 11025, 11026, 11027, 11028, 11029, 11030, 11031, 11032, 11033, 11034, 11035, 11036, 11037, 11038, 11039, -5490, -5491, -5492, -5493, -5494, -5495, -5496, -5497, -5498, -5499, -5500, -5501, -5502, -5503, -5504, -5505, -5506, -5507, -5508, -5509, -5510, -5511, -5512, -5513, -5514, -5515, -5516, -5517, -5518, -5519, 11040, 11041, 11042, 11043, 11044, 11045, 11046, 11047, 11048, 11049, 11050, 11051, 11052, 11053, 11054, 11055, 11056, 11057, 11058, 11059, 11060, 11061, 11062, 11063, 11064, 11065, 11066, 11067, 11068, 11069, 11070, 11071, 11072, 11073, 11074, 11075, 11076, 11077, 11078, 11079, 11080, 11081, 11082, 11083, 11084, 11085, 11086, 11087, 11088, 11089, 11090, 11091, 11092, 11093, 11094, 11095, 11096, 11097, 11098, 11099, -5520, -5521, -5522, -5523, -5524, -5525, -5526, -5527, -5528, -5529, -5530, -5531, -5532, -5533, -5534, -5535, -5536, -5537, -5538, -5539, -5540, -5541, -5542, -5543, -5544, -5545, -5546, -5547, -5548, -5549, 11100, 11101, 11102, 11103, 11104, 11105, 11106, 11107, 11108, 11109, 11110, 11111, 11112, 11113, 11114, 11115, 11116, 11117, 11118, 11119, 11120, 11121, 11122, 11123, 11124, 11125, 11126, 11127, 11128, 11129, 11130, 11131, 11132, 11133, 11134, 11135, 11136, 11137, 11138, 11139, 11140, 11141, 11142, 11143, 11144, 11145, 11146, 11147, 11148, 11149, 11150, 11151, 11152, 11153, 11154, 11155, 11156, 11157, 11158, 11159, -5550, -5551, -5552, -5553, -5554, -5555, -5556, -5557, -5558, -5559, -5560, -5561, -5562, -5563, -5564, -5565, -5566, -5567, -5568, -5569, -5570, -5571, -5572, -5573, -5574, -5575, -5576, -5577, -5578, -5579, 11160, 11161, 11162, 11163, 11164, 11165, 11166, 11167, 11168, 11169, 11170, 11171, 11172, 11173, 11174, 11175, 11176, 11177, 11178, 11179, 11180, 11181, 11182, 11183, 11184, 11185, 11186, 11187, 11188, 11189, 11190, 11191, 11192, 11193, 11194, 11195, 11196, 11197, 11198, 11199, 11200, 11201, 11202, 11203, 11204, 11205, 11206, 11207, 11208, 11209, 11210, 11211, 11212, 11213, 11214, 11215, 11216, 11217, 11218, 11219, -5580, -5581, -5582, -5583, -5584, -5585, -5586, -5587, -5588, -5589, -5590, -5591, -5592, -5593, -5594, -5595, -5596, -5597, -5598, -5599, -5600, -5601, -5602, -5603, -5604, -5605, -5606, -5607, -5608, -5609, 11220, 11221, 11222, 11223, 11224, 11225, 11226, 11227, 11228, 11229, 11230, 11231, 11232, 11233, 11234, 11235, 11236, 11237, 11238, 11239, 11240, 11241, 11242, 11243, 11244, 11245, 11246, 11247, 11248, 11249, 11250, 11251, 11252, 11253, 11254, 11255, 11256, 11257, 11258, 11259, 11260, 11261, 11262, 11263, 11264, 11265, 11266, 11267, 11268, 11269, 11270, 11271, 11272, 11273, 11274, 11275, 11276, 11277, 11278, 11279, -5610, -5611, -5612, -5613, -5614, -5615, -5616, -5617, -5618, -5619, -5620, -5621, -5622, -5623, -5624, -5625, -5626, -5627, -5628, -5629, -5630, -5631, -5632, -5633, -5634, -5635, -5636, -5637, -5638, -5639, 11280, 11281, 11282, 11283, 11284, 11285, 11286, 11287, 11288, 11289, 11290, 11291, 11292, 11293, 11294, 11295, 11296, 11297, 11298, 11299, 11300, 11301, 11302, 11303, 11304, 11305, 11306, 11307, 11308, 11309, 11310, 11311, 11312, 11313, 11314, 11315, 11316, 11317, 11318, 11319, 11320, 11321, 11322, 11323, 11324, 11325, 11326, 11327, 11328, 11329, 11330, 11331, 11332, 11333, 11334, 11335, 11336, 11337, 11338, 11339, -5640, -5641, -5642, -5643, -5644, -5645, -5646, -5647, -5648, -5649, -5650, -5651, -5652, -5653, -5654, -5655, -5656, -5657, -5658, -5659, -5660, -5661, -5662, -5663, -5664, -5665, -5666, -5667, -5668, -5669, 11340, 11341, 11342, 11343, 11344, 11345, 11346, 11347, 11348, 11349, 11350, 11351, 11352, 11353, 11354, 11355, 11356, 11357, 11358, 11359, 11360, 11361, 11362, 11363, 11364, 11365, 11366, 11367, 11368, 11369, 11370, 11371, 11372, 11373, 11374, 11375, 11376, 11377, 11378, 11379, 11380, 11381, 11382, 11383, 11384, 11385, 11386, 11387, 11388, 11389, 11390, 11391, 11392, 11393, 11394, 11395, 11396, 11397, 11398, 11399, -5670, -5671, -5672, -5673, -5674, -5675, -5676, -5677, -5678, -5679, -5680, -5681, -5682, -5683, -5684, -5685, -5686, -5687, -5688, -5689, -5690, -5691, -5692, -5693, -5694, -5695, -5696, -5697, -5698, -5699, 11400, 11401, 11402, 11403, 11404, 11405, 11406, 11407, 11408, 11409, 11410, 11411, 11412, 11413, 11414, 11415, 11416, 11417, 11418, 11419, 11420, 11421, 11422, 11423, 11424, 11425, 11426, 11427, 11428, 11429, 11430, 11431, 11432, 11433, 11434, 11435, 11436, 11437, 11438, 11439, 11440, 11441, 11442, 11443, 11444, 11445, 11446, 11447, 11448, 11449, 11450, 11451, 11452, 11453, 11454, 11455, 11456, 11457, 11458, 11459, -5700, -5701, -5702, -5703, -5704, -5705, -5706, -5707, -5708, -5709, -5710, -5711, -5712, -5713, -5714, -5715, -5716, -5717, -5718, -5719, -5720, -5721, -5722, -5723, -5724, -5725, -5726, -5727, -5728, -5729, 11460, 11461, 11462, 11463, 11464, 11465, 11466, 11467, 11468, 11469, 11470, 11471, 11472, 11473, 11474, 11475, 11476, 11477, 11478, 11479, 11480, 11481, 11482, 11483, 11484, 11485, 11486, 11487, 11488, 11489, 11490, 11491, 11492, 11493, 11494, 11495, 11496, 11497, 11498, 11499, 11500, 11501, 11502, 11503, 11504, 11505, 11506, 11507, 11508, 11509, 11510, 11511, 11512, 11513, 11514, 11515, 11516, 11517, 11518, 11519, -5730, -5731, -5732, -5733, -5734, -5735, -5736, -5737, -5738, -5739, -5740, -5741, -5742, -5743, -5744, -5745, -5746, -5747, -5748, -5749, -5750, -5751, -5752, -5753, -5754, -5755, -5756, -5757, -5758, -5759, 11520, 11521, 11522, 11523, 11524, 11525, 11526, 11527, 11528, 11529, 11530, 11531, 11532, 11533, 11534, 11535, 11536, 11537, 11538, 11539, 11540, 11541, 11542, 11543, 11544, 11545, 11546, 11547, 11548, 11549, 11550, 11551, 11552, 11553, 11554, 11555, 11556, 11557, 11558, 11559, 11560, 11561, 11562, 11563, 11564, 11565, 11566, 11567, 11568, 11569, 11570, 11571, 11572, 11573, 11574, 11575, 11576, 11577, 11578, 11579, -5760, -5761, -5762, -5763, -5764, -5765, -5766, -5767, -5768, -5769, -5770, -5771, -5772, -5773, -5774, -5775, -5776, -5777, -5778, -5779, -5780, -5781, -5782, -5783, -5784, -5785, -5786, -5787, -5788, -5789, 11580, 11581, 11582, 11583, 11584, 11585, 11586, 11587, 11588, 11589, 11590, 11591, 11592, 11593, 11594, 11595, 11596, 11597, 11598, 11599, 11600, 11601, 11602, 11603, 11604, 11605, 11606, 11607, 11608, 11609, 11610, 11611, 11612, 11613, 11614, 11615, 11616, 11617, 11618, 11619, 11620, 11621, 11622, 11623, 11624, 11625, 11626, 11627, 11628, 11629, 11630, 11631, 11632, 11633, 11634, 11635, 11636, 11637, 11638, 11639, -5790, -5791, -5792, -5793, -5794, -5795, -5796, -5797, -5798, -5799, -5800, -5801, -5802, -5803, -5804, -5805, -5806, -5807, -5808, -5809, -5810, -5811, -5812, -5813, -5814, -5815, -5816, -5817, -5818, -5819, 11640, 11641, 11642, 11643, 11644, 11645, 11646, 11647, 11648, 11649, 11650, 11651, 11652, 11653, 11654, 11655, 11656, 11657, 11658, 11659, 11660, 11661, 11662, 11663, 11664, 11665, 11666, 11667, 11668, 11669, 11670, 11671, 11672, 11673, 11674, 11675, 11676, 11677, 11678, 11679, 11680, 11681, 11682, 11683, 11684, 11685, 11686, 11687, 11688, 11689, 11690, 11691, 11692, 11693, 11694, 11695, 11696, 11697, 11698, 11699, -5820, -5821, -5822, -5823, -5824, -5825, -5826, -5827, -5828, -5829, -5830, -5831, -5832, -5833, -5834, -5835, -5836, -5837, -5838, -5839, -5840, -5841, -5842, -5843, -5844, -5845, -5846, -5847, -5848, -5849, 11700, 11701, 11702, 11703, 11704, 11705, 11706, 11707, 11708, 11709, 11710, 11711, 11712, 11713, 11714, 11715, 11716, 11717, 11718, 11719, 11720, 11721, 11722, 11723, 11724, 11725, 11726, 11727, 11728, 11729, 11730, 11731, 11732, 11733, 11734, 11735, 11736, 11737, 11738, 11739, 11740, 11741, 11742, 11743, 11744, 11745, 11746, 11747, 11748, 11749, 11750, 11751, 11752, 11753, 11754, 11755, 11756, 11757, 11758, 11759, -5850, -5851, -5852, -5853, -5854, -5855, -5856, -5857, -5858, -5859, -5860, -5861, -5862, -5863, -5864, -5865, -5866, -5867, -5868, -5869, -5870, -5871, -5872, -5873, -5874, -5875, -5876, -5877, -5878, -5879, 11760, 11761, 11762, 11763, 11764, 11765, 11766, 11767, 11768, 11769, 11770, 11771, 11772, 11773, 11774, 11775, 11776, 11777, 11778, 11779, 11780, 11781, 11782, 11783, 11784, 11785, 11786, 11787, 11788, 11789, 11790, 11791, 11792, 11793, 11794, 11795, 11796, 11797, 11798, 11799, 11800, 11801, 11802, 11803, 11804, 11805, 11806, 11807, 11808, 11809, 11810, 11811, 11812, 11813, 11814, 11815, 11816, 11817, 11818, 11819, -5880, -5881, -5882, -5883, -5884, -5885, -5886, -5887, -5888, -5889, -5890, -5891, -5892, -5893, -5894, -5895, -5896, -5897, -5898, -5899, -5900, -5901, -5902, -5903, -5904, -5905, -5906, -5907, -5908, -5909, 11820, 11821, 11822, 11823, 11824, 11825, 11826, 11827, 11828, 11829, 11830, 11831, 11832, 11833, 11834, 11835, 11836, 11837, 11838, 11839, 11840, 11841, 11842, 11843, 11844, 11845, 11846, 11847, 11848, 11849, 11850, 11851, 11852, 11853, 11854, 11855, 11856, 11857, 11858, 11859, 11860, 11861, 11862, 11863, 11864, 11865, 11866, 11867, 11868, 11869, 11870, 11871, 11872, 11873, 11874, 11875, 11876, 11877, 11878, 11879, -5910, -5911, -5912, -5913, -5914, -5915, -5916, -5917, -5918, -5919, -5920, -5921, -5922, -5923, -5924, -5925, -5926, -5927, -5928, -5929, -5930, -5931, -5932, -5933, -5934, -5935, -5936, -5937, -5938, -5939, 11880, 11881, 11882, 11883, 11884, 11885, 11886, 11887, 11888, 11889, 11890, 11891, 11892, 11893, 11894, 11895, 11896, 11897, 11898, 11899, 11900, 11901, 11902, 11903, 11904, 11905, 11906, 11907, 11908, 11909, 11910, 11911, 11912, 11913, 11914, 11915, 11916, 11917, 11918, 11919, 11920, 11921, 11922, 11923, 11924, 11925, 11926, 11927, 11928, 11929, 11930, 11931, 11932, 11933, 11934, 11935, 11936, 11937, 11938, 11939, -5940, -5941, -5942, -5943, -5944, -5945, -5946, -5947, -5948, -5949, -5950, -5951, -5952, -5953, -5954, -5955, -5956, -5957, -5958, -5959, -5960, -5961, -5962, -5963, -5964, -5965, -5966, -5967, -5968, -5969, 11940, 11941, 11942, 11943, 11944, 11945, 11946, 11947, 11948, 11949, 11950, 11951, 11952, 11953, 11954, 11955, 11956, 11957, 11958, 11959, 11960, 11961, 11962, 11963, 11964, 11965, 11966, 11967, 11968, 11969, 11970, 11971, 11972, 11973, 11974, 11975, 11976, 11977, 11978, 11979, 11980, 11981, 11982, 11983, 11984, 11985, 11986, 11987, 11988, 11989, 11990, 11991, 11992, 11993, 11994, 11995, 11996, 11997, 11998, 11999, -5970, -5971, -5972, -5973, -5974, -5975, -5976, -5977, -5978, -5979, -5980, -5981, -5982, -5983, -5984, -5985, -5986, -5987, -5988, -5989, -5990, -5991, -5992, -5993, -5994, -5995, -5996, -5997, -5998, -5999, 12000, 12001, 12002, 12003, 12004, 12005, 12006, 12007, 12008, 12009, 12010, 12011, 12012, 12013, 12014, 12015, 12016, 12017, 12018, 12019, 12020, 12021, 12022, 12023, 12024, 12025, 12026, 12027, 12028, 12029, 12030, 12031, 12032, 12033, 12034, 12035, 12036, 12037, 12038, 12039, 12040, 12041, 12042, 12043, 12044, 12045, 12046, 12047, 12048, 12049, 12050, 12051, 12052, 12053, 12054, 12055, 12056, 12057, 12058, 12059, -6000, -6001, -6002, -6003, -6004, -6005, -6006, -6007, -6008, -6009, -6010, -6011, -6012, -6013, -6014, -6015, -6016, -6017, -6018, -6019, -6020, -6021, -6022, -6023, -6024, -6025, -6026, -6027, -6028, -6029, 12060, 12061, 12062, 12063, 12064, 12065, 12066, 12067, 12068, 12069, 12070, 12071, 12072, 12073, 12074, 12075, 12076, 12077, 12078, 12079, 12080, 12081, 12082, 12083, 12084, 12085, 12086, 12087, 12088, 12089, 12090, 12091, 12092, 12093, 12094, 12095, 12096, 12097, 12098, 12099, 12100, 12101, 12102, 12103, 12104, 12105, 12106, 12107, 12108, 12109, 12110, 12111, 12112, 12113, 12114, 12115, 12116, 12117, 12118, 12119, -6030, -6031, -6032, -6033, -6034, -6035, -6036, -6037, -6038, -6039, -6040, -6041, -6042, -6043, -6044, -6045, -6046, -6047, -6048, -6049, -6050, -6051, -6052, -6053, -6054, -6055, -6056, -6057, -6058, -6059, 12120, 12121, 12122, 12123, 12124, 12125, 12126, 12127, 12128, 12129, 12130, 12131, 12132, 12133, 12134, 12135, 12136, 12137, 12138, 12139, 12140, 12141, 12142, 12143, 12144, 12145, 12146, 12147, 12148, 12149, 12150, 12151, 12152, 12153, 12154, 12155, 12156, 12157, 12158, 12159, 12160, 12161, 12162, 12163, 12164, 12165, 12166, 12167, 12168, 12169, 12170, 12171, 12172, 12173, 12174, 12175, 12176, 12177, 12178, 12179, -6060, -6061, -6062, -6063, -6064, -6065, -6066, -6067, -6068, -6069, -6070, -6071, -6072, -6073, -6074, -6075, -6076, -6077, -6078, -6079, -6080, -6081, -6082, -6083, -6084, -6085, -6086, -6087, -6088, -6089, 12180, 12181, 12182, 12183, 12184, 12185, 12186, 12187, 12188, 12189, 12190, 12191, 12192, 12193, 12194, 12195, 12196, 12197, 12198, 12199, 12200, 12201, 12202, 12203, 12204, 12205, 12206, 12207, 12208, 12209, 12210, 12211, 12212, 12213, 12214, 12215, 12216, 12217, 12218, 12219, 12220, 12221, 12222, 12223, 12224, 12225, 12226, 12227, 12228, 12229, 12230, 12231, 12232, 12233, 12234, 12235, 12236, 12237, 12238, 12239, -6090, -6091, -6092, -6093, -6094, -6095, -6096, -6097, -6098, -6099, -6100, -6101, -6102, -6103, -6104, -6105, -6106, -6107, -6108, -6109, -6110, -6111, -6112, -6113, -6114, -6115, -6116, -6117, -6118, -6119, 12240, 12241, 12242, 12243, 12244, 12245, 12246, 12247, 12248, 12249, 12250, 12251, 12252, 12253, 12254, 12255, 12256, 12257, 12258, 12259, 12260, 12261, 12262, 12263, 12264, 12265, 12266, 12267, 12268, 12269, 12270, 12271, 12272, 12273, 12274, 12275, 12276, 12277, 12278, 12279, 12280, 12281, 12282, 12283, 12284, 12285, 12286, 12287, 12288, 12289, 12290, 12291, 12292, 12293, 12294, 12295, 12296, 12297, 12298, 12299, -6120, -6121, -6122, -6123, -6124, -6125, -6126, -6127, -6128, -6129, -6130, -6131, -6132, -6133, -6134, -6135, -6136, -6137, -6138, -6139, -6140, -6141, -6142, -6143, -6144, -6145, -6146, -6147, -6148, -6149, 12300, 12301, 12302, 12303, 12304, 12305, 12306, 12307, 12308, 12309, 12310, 12311, 12312, 12313, 12314, 12315, 12316, 12317, 12318, 12319, 12320, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329, 12330, 12331, 12332, 12333, 12334, 12335, 12336, 12337, 12338, 12339, 12340, 12341, 12342, 12343, 12344, 12345, 12346, 12347, 12348, 12349, 12350, 12351, 12352, 12353, 12354, 12355, 12356, 12357, 12358, 12359, -6150, -6151, -6152, -6153, -6154, -6155, -6156, -6157, -6158, -6159, -6160, -6161, -6162, -6163, -6164, -6165, -6166, -6167, -6168, -6169, -6170, -6171, -6172, -6173, -6174, -6175, -6176, -6177, -6178, -6179, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, -6180, -6181, -6182, -6183, -6184, -6185, -6186, -6187, -6188, -6189, -6190, -6191, -6192, -6193, -6194, -6195, -6196, -6197, -6198, -6199, -6200, -6201, -6202, -6203, -6204, -6205, -6206, -6207, -6208, -6209, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, 12436, 12437, 12438, 12439, 12440, 12441, 12442, 12443, 12444, 12445, 12446, 12447, 12448, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, -6210, -6211, -6212, -6213, -6214, -6215, -6216, -6217, -6218, -6219, -6220, -6221, -6222, -6223, -6224, -6225, -6226, -6227, -6228, -6229, -6230, -6231, -6232, -6233, -6234, -6235, -6236, -6237, -6238, -6239, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12522, 12523, 12524, 12525, 12526, 12527, 12528, 12529, 12530, 12531, 12532, 12533, 12534, 12535, 12536, 12537, 12538, 12539, -6240, -6241, -6242, -6243, -6244, -6245, -6246, -6247, -6248, -6249, -6250, -6251, -6252, -6253, -6254, -6255, -6256, -6257, -6258, -6259, -6260, -6261, -6262, -6263, -6264, -6265, -6266, -6267, -6268, -6269, 12540, 12541, 12542, 12543, 12544, 12545, 12546, 12547, 12548, 12549, 12550, 12551, 12552, 12553, 12554, 12555, 12556, 12557, 12558, 12559, 12560, 12561, 12562, 12563, 12564, 12565, 12566, 12567, 12568, 12569, 12570, 12571, 12572, 12573, 12574, 12575, 12576, 12577, 12578, 12579, 12580, 12581, 12582, 12583, 12584, 12585, 12586, 12587, 12588, 12589, 12590, 12591, 12592, 12593, 12594, 12595, 12596, 12597, 12598, 12599, -6270, -6271, -6272, -6273, -6274, -6275, -6276, -6277, -6278, -6279, -6280, -6281, -6282, -6283, -6284, -6285, -6286, -6287, -6288, -6289, -6290, -6291, -6292, -6293, -6294, -6295, -6296, -6297, -6298, -6299, 12600, 12601, 12602, 12603, 12604, 12605, 12606, 12607, 12608, 12609, 12610, 12611, 12612, 12613, 12614, 12615, 12616, 12617, 12618, 12619, 12620, 12621, 12622, 12623, 12624, 12625, 12626, 12627, 12628, 12629, 12630, 12631, 12632, 12633, 12634, 12635, 12636, 12637, 12638, 12639, 12640, 12641, 12642, 12643, 12644, 12645, 12646, 12647, 12648, 12649, 12650, 12651, 12652, 12653, 12654, 12655, 12656, 12657, 12658, 12659, -6300, -6301, -6302, -6303, -6304, -6305, -6306, -6307, -6308, -6309, -6310, -6311, -6312, -6313, -6314, -6315, -6316, -6317, -6318, -6319, -6320, -6321, -6322, -6323, -6324, -6325, -6326, -6327, -6328, -6329, 12660, 12661, 12662, 12663, 12664, 12665, 12666, 12667, 12668, 12669, 12670, 12671, 12672, 12673, 12674, 12675, 12676, 12677, 12678, 12679, 12680, 12681, 12682, 12683, 12684, 12685, 12686, 12687, 12688, 12689, 12690, 12691, 12692, 12693, 12694, 12695, 12696, 12697, 12698, 12699, 12700, 12701, 12702, 12703, 12704, 12705, 12706, 12707, 12708, 12709, 12710, 12711, 12712, 12713, 12714, 12715, 12716, 12717, 12718, 12719, -6330, -6331, -6332, -6333, -6334, -6335, -6336, -6337, -6338, -6339, -6340, -6341, -6342, -6343, -6344, -6345, -6346, -6347, -6348, -6349, -6350, -6351, -6352, -6353, -6354, -6355, -6356, -6357, -6358, -6359}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/concat_quant8_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/concat_quant8_1.example.cpp
new file mode 100644
index 000000000..fbbeb5f22
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/concat_quant8_1.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: concat_quant8_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 4, 5, 6}}, {1, {7, 8, 9, 10, 11, 12}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 7, 8, 9, 4, 5, 6, 10, 11, 12}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/concat_quant8_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/concat_quant8_2.example.cpp
new file mode 100644
index 000000000..2fec55a66
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/concat_quant8_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: concat_quant8_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239}}, {1, {240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/concat_quant8_3.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/concat_quant8_3.example.cpp
new file mode 100644
index 000000000..fcf347685
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/concat_quant8_3.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: concat_quant8_3.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191}}, {1, {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 1, 2, 3, 4, 5, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 129, 130, 131, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/conv_1_h3_w2_SAME.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/conv_1_h3_w2_SAME.example.cpp
new file mode 100644
index 000000000..a75e47a90
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/conv_1_h3_w2_SAME.example.cpp
@@ -0,0 +1,43 @@
+// Generated file (from: conv_1_h3_w2_SAME.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.869931f, 0.644628f, -0.918393f, 0.153672f, 0.868562f, -0.358177f, -0.134931f, -0.247565f, 0.22174f, -0.259157f, -0.284296f, -0.538065f, 0.765559f, 0.41986f, -0.556241f, 0.658494f, 0.214355f, -0.850169f, -0.252893f, -0.478935f, 0.530526f, -0.0700663f, -0.988729f, -0.303061f, 0.150845f, 0.829915f, 0.476349f, 0.406537f, -0.355343f, 0.757145f, -0.356362f, 0.800482f, -0.713861f, 0.210483f, -0.634303f, 0.718236f, -0.752038f, 0.457547f, -0.550769f, -0.551178f, 0.446766f, -0.227462f, 0.216348f, -0.852806f, -0.351486f, 0.55906f, -0.668493f, -0.303493f, -0.363763f, -0.162837f, 0.0701012f, 0.756097f, -0.142269f, 0.329724f, -0.656317f, -0.998086f, -0.652949f, -0.40316f, -0.893682f, 0.432744f, 0.612362f, -0.869588f, -0.71327f, -0.398092f, -0.0423559f, 0.436576f, -0.925272f, 0.176549f, 0.822904f, 0.096833f, -0.296802f, -0.427195f, 0.031654f, -0.254479f, 0.244905f, 0.0948254f, 0.643769f, -0.90391f, 0.352665f, -0.901179f, 0.266159f, -0.968068f, -0.615401f, -0.388975f, 0.939052f, -0.116289f, 0.107523f, -0.0582711f, 0.435172f, 0.334675f, 0.459711f, 0.717436f, 0.496627f, -0.680175f, -0.415066f, 0.339848f, 0.506004f, -0.337808f, -0.107218f, -0.172496f, 0.870638f, 0.931872f, -0.953884f, 0.903042f, 0.760078f, 0.209727f, -0.285384f, -0.45514f, 0.113194f, 0.0756611f, 0.0924435f, -0.472863f, 0.960609f, -0.160385f, -0.839445f, 0.457097f, 0.163348f, 0.344867f, -0.131619f, 0.688715f, -0.540827f, 0.571259f, -0.95587f, 0.506164f, -0.155839f, 0.0789621f, 0.756772f, -0.662069f, 0.242908f, 0.460821f, 0.177872f, -0.289839f, -0.640603f, 0.702598f, -0.506406f, -0.568262f, -0.0713716f, 0.413792f, 0.159673f, -0.305208f, 0.133816f, -0.160254f, 0.787323f, -0.753244f, 0.600721f, 0.263186f, -0.162387f, 0.477962f, -0.702951f, -0.731036f, -0.939481f, -0.524519f, 0.934072f, -0.511637f, -0.503499f, 0.106236f, -0.323684f, 0.534444f, -0.843745f, 0.364171f, 0.0370358f, -0.168801f, -0.404559f, -0.814178f, 0.91745f, -0.334276f, 0.66925f, -0.801201f, 0.156511f, -0.427949f, 0.379153f, 0.818597f, -0.649902f, 0.427087f, -0.586015f, -0.559789f, -0.833923f, 0.0892409f, -0.621251f, 0.213826f, 0.465509f, 0.4704f, 0.380261f, 0.413067f, 0.180822f, 0.172866f, 0.59614f, 0.825575f, 0.662916f, -0.704381f, -0.297631f, 0.697778f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.85284f, -0.0393656f, -0.127353f, 1.43115f, -0.302294f, -1.0402f, 0.655023f, -0.587614f, 1.72003f, 1.55816f, 0.667546f, 2.23663f, 0.0661516f, 0.290254f, 0.770222f, -0.346357f, -1.58197f, -0.850595f, -0.484224f, 0.949967f, -0.577263f, -0.871949f, 2.34132f, -0.104506f, -0.135965f, -0.985713f, 0.815147f, 1.03114f, -1.41915f, -0.515534f, -0.373639f, 1.42026f, -1.50604f, 0.673113f, 3.06139f, -0.388578f, -1.76707f, -0.315667f, -1.03815f, -0.343435f, 0.432787f, -1.41643f, 1.12944f, -0.175806f, -0.846415f, 1.40095f, 0.70832f, -1.46717f, 2.19562f, -2.61266f, -0.705383f, 1.26124f, 1.46545f, -2.35761f, 2.04494f, 1.23741f, -0.527402f, -0.39954f, -0.0128623f, 1.3644f, 0.985755f, -0.718118f, -0.1008f, 1.24327f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.295335f, -0.00387601f, -0.552251f, 0.166084f, -0.28482f, -0.152143f, -0.719885f, -0.869386f, -0.745598f, 0.823947f, 0.473183f, -0.331337f, 0.187631f, 0.0426571f, -0.826897f, -0.755085f, -0.472453f, -0.0233656f, 0.0483436f, 0.933418f, -0.961974f, 0.0125783f, 0.219742f, 0.342604f, -0.15166f, 0.0934905f, 0.783221f, 0.129664f, 0.838844f, -0.271388f, 0.924519f, 0.342843f, 0.274418f, 0.350817f, 0.841638f, -0.543993f, -0.00283395f, -0.128467f, -0.682943f, -0.319117f, 0.84634f, 0.283003f, 0.32865f, 0.0293755f, -0.0335696f, 0.591266f, -0.0743476f, -0.741271f, 0.462056f, -0.583625f, -0.590183f, 0.6234f, 0.535269f, -0.670818f, -0.955642f, -0.770173f, 0.479986f, 0.664377f, 0.399445f, -0.968874f, -0.276263f, -0.901951f, 0.544104f, -0.958981f, 0.482658f, -0.807284f, 0.305369f, -0.947818f, 0.827498f, -0.382887f, -0.805741f, -0.796678f, -0.299804f, -0.229828f, 0.818783f, -0.103055f, -0.45568f, -0.227827f, 0.543743f, -0.96073f, 0.946747f, -0.857182f, -0.96426f, -0.292411f, -0.715614f, 0.765278f, -0.475043f, -0.590142f, -0.238507f, 0.673002f, -0.473357f, -0.319626f, 0.936014f, 0.486607f, 0.580844f, 0.425352f, -0.800994f, 0.290763f, -0.494953f, -0.441162f, 0.718677f, -0.828427f, 0.96965f, 7.53637e-05f, -0.699973f, -0.526886f, -0.352682f, 0.799466f, 0.332789f, 0.723389f, 0.407659f, -0.934084f, -0.284705f, 0.961484f, -0.700395f, -0.985808f, -0.595342f, -0.691721f, 0.49448f, -0.0842649f, 0.0390966f, 0.298938f, -0.128094f, -0.97158f, 0.86393f, 0.270606f, -0.468986f, -0.256605f, 0.47215f, -0.273117f, -0.590343f, -0.826529f, -0.725381f, -0.194821f, -0.259661f, -0.0949207f, -0.180302f, 0.0446834f, -0.222133f, -0.40393f, 0.295772f, -0.92949f, 0.580079f, -0.169856f, 0.330311f, 0.0173551f, -0.635823f, 0.475942f, 0.907175f, 0.242777f, -0.512208f, 0.362463f, 0.0496289f, 0.65171f, 0.990057f, 0.690733f, -0.469013f, -0.101311f, -0.68372f, -0.157841f, -0.677711f, -0.708224f, -0.659437f, -0.407607f, 0.677033f, 0.89032f, 0.228307f, -0.749514f, 0.772958f, 0.054701f, 0.551705f, 0.917052f, -0.895022f, -0.702397f, 0.484142f, 0.108648f, 0.833347f, 0.478872f, -0.984112f, 0.387176f, -0.73299f, 0.7526f, 0.443312f, -0.0987856f, 0.125415f, 0.10876f, -0.498108f, 0.43209f, 0.344609f, 0.928941f, -0.130732f, -0.0569167f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.000614278f, -1.21221f, 0.443861f, 0.102117f, -2.52714f, 1.47489f, 0.173474f, -0.237577f, 1.28735f, 1.91315f, 2.51734f, 0.375841f, 0.637563f, 2.653f, 2.72959f, -1.6271f, 1.17389f, -2.12119f, 2.91417f, -2.24246f, 0.0497045f, -0.127107f, -0.144473f, -0.133762f, -0.393284f, -2.02346f, -0.239178f, -0.246508f, 1.29277f, 1.32963f, 0.117521f, 1.22372f, 0.0665713f, 1.09438f, -1.31426f, 2.52594f, -0.969211f, 0.515478f, -1.60926f, -0.838905f, 0.135211f, 0.786415f, -1.14382f, -0.739102f, -1.01731f, 0.281615f, 2.36311f, 0.891823f, 1.93872f, -0.150491f, 3.45217f, 2.28219f, 1.18282f, -2.25086f, 3.05468f, 0.166228f, 0.434554f, -2.57529f, -0.958662f, -2.23978f, 2.66776f, 0.542601f, 1.76107f, -1.08134f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/conv_1_h3_w2_VALID.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/conv_1_h3_w2_VALID.example.cpp
new file mode 100644
index 000000000..f351f4a0a
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/conv_1_h3_w2_VALID.example.cpp
@@ -0,0 +1,43 @@
+// Generated file (from: conv_1_h3_w2_VALID.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.869931f, 0.644628f, -0.918393f, 0.153672f, 0.868562f, -0.358177f, -0.134931f, -0.247565f, 0.22174f, -0.259157f, -0.284296f, -0.538065f, 0.765559f, 0.41986f, -0.556241f, 0.658494f, 0.214355f, -0.850169f, -0.252893f, -0.478935f, 0.530526f, -0.0700663f, -0.988729f, -0.303061f, 0.150845f, 0.829915f, 0.476349f, 0.406537f, -0.355343f, 0.757145f, -0.356362f, 0.800482f, -0.713861f, 0.210483f, -0.634303f, 0.718236f, -0.752038f, 0.457547f, -0.550769f, -0.551178f, 0.446766f, -0.227462f, 0.216348f, -0.852806f, -0.351486f, 0.55906f, -0.668493f, -0.303493f, -0.363763f, -0.162837f, 0.0701012f, 0.756097f, -0.142269f, 0.329724f, -0.656317f, -0.998086f, -0.652949f, -0.40316f, -0.893682f, 0.432744f, 0.612362f, -0.869588f, -0.71327f, -0.398092f, -0.0423559f, 0.436576f, -0.925272f, 0.176549f, 0.822904f, 0.096833f, -0.296802f, -0.427195f, 0.031654f, -0.254479f, 0.244905f, 0.0948254f, 0.643769f, -0.90391f, 0.352665f, -0.901179f, 0.266159f, -0.968068f, -0.615401f, -0.388975f, 0.939052f, -0.116289f, 0.107523f, -0.0582711f, 0.435172f, 0.334675f, 0.459711f, 0.717436f, 0.496627f, -0.680175f, -0.415066f, 0.339848f, 0.506004f, -0.337808f, -0.107218f, -0.172496f, 0.870638f, 0.931872f, -0.953884f, 0.903042f, 0.760078f, 0.209727f, -0.285384f, -0.45514f, 0.113194f, 0.0756611f, 0.0924435f, -0.472863f, 0.960609f, -0.160385f, -0.839445f, 0.457097f, 0.163348f, 0.344867f, -0.131619f, 0.688715f, -0.540827f, 0.571259f, -0.95587f, 0.506164f, -0.155839f, 0.0789621f, 0.756772f, -0.662069f, 0.242908f, 0.460821f, 0.177872f, -0.289839f, -0.640603f, 0.702598f, -0.506406f, -0.568262f, -0.0713716f, 0.413792f, 0.159673f, -0.305208f, 0.133816f, -0.160254f, 0.787323f, -0.753244f, 0.600721f, 0.263186f, -0.162387f, 0.477962f, -0.702951f, -0.731036f, -0.939481f, -0.524519f, 0.934072f, -0.511637f, -0.503499f, 0.106236f, -0.323684f, 0.534444f, -0.843745f, 0.364171f, 0.0370358f, -0.168801f, -0.404559f, -0.814178f, 0.91745f, -0.334276f, 0.66925f, -0.801201f, 0.156511f, -0.427949f, 0.379153f, 0.818597f, -0.649902f, 0.427087f, -0.586015f, -0.559789f, -0.833923f, 0.0892409f, -0.621251f, 0.213826f, 0.465509f, 0.4704f, 0.380261f, 0.413067f, 0.180822f, 0.172866f, 0.59614f, 0.825575f, 0.662916f, -0.704381f, -0.297631f, 0.697778f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.72003f, 1.55816f, 0.667546f, 2.23663f, 0.0661516f, 0.290254f, 0.770222f, -1.58197f, -0.850595f, -0.484224f, 0.949967f, -0.577263f, -0.871949f, 2.34132f, -0.135965f, -0.985713f, 0.815147f, 1.03114f, -1.41915f, -0.515534f, -0.373639f, -1.50604f, 0.673113f, 3.06139f, -0.388578f, -1.76707f, -0.315667f, -1.03815f, 0.432787f, -1.41643f, 1.12944f, -0.175806f, -0.846415f, 1.40095f, 0.70832f, 2.19562f, -2.61266f, -0.705383f, 1.26124f, 1.46545f, -2.35761f, 2.04494f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.295335f, -0.00387601f, -0.552251f, 0.166084f, -0.28482f, -0.152143f, -0.719885f, -0.869386f, -0.745598f, 0.823947f, 0.473183f, -0.331337f, 0.187631f, 0.0426571f, -0.826897f, -0.755085f, -0.472453f, -0.0233656f, 0.0483436f, 0.933418f, -0.961974f, 0.0125783f, 0.219742f, 0.342604f, -0.15166f, 0.0934905f, 0.783221f, 0.129664f, 0.838844f, -0.271388f, 0.924519f, 0.342843f, 0.274418f, 0.350817f, 0.841638f, -0.543993f, -0.00283395f, -0.128467f, -0.682943f, -0.319117f, 0.84634f, 0.283003f, 0.32865f, 0.0293755f, -0.0335696f, 0.591266f, -0.0743476f, -0.741271f, 0.462056f, -0.583625f, -0.590183f, 0.6234f, 0.535269f, -0.670818f, -0.955642f, -0.770173f, 0.479986f, 0.664377f, 0.399445f, -0.968874f, -0.276263f, -0.901951f, 0.544104f, -0.958981f, 0.482658f, -0.807284f, 0.305369f, -0.947818f, 0.827498f, -0.382887f, -0.805741f, -0.796678f, -0.299804f, -0.229828f, 0.818783f, -0.103055f, -0.45568f, -0.227827f, 0.543743f, -0.96073f, 0.946747f, -0.857182f, -0.96426f, -0.292411f, -0.715614f, 0.765278f, -0.475043f, -0.590142f, -0.238507f, 0.673002f, -0.473357f, -0.319626f, 0.936014f, 0.486607f, 0.580844f, 0.425352f, -0.800994f, 0.290763f, -0.494953f, -0.441162f, 0.718677f, -0.828427f, 0.96965f, 7.53637e-05f, -0.699973f, -0.526886f, -0.352682f, 0.799466f, 0.332789f, 0.723389f, 0.407659f, -0.934084f, -0.284705f, 0.961484f, -0.700395f, -0.985808f, -0.595342f, -0.691721f, 0.49448f, -0.0842649f, 0.0390966f, 0.298938f, -0.128094f, -0.97158f, 0.86393f, 0.270606f, -0.468986f, -0.256605f, 0.47215f, -0.273117f, -0.590343f, -0.826529f, -0.725381f, -0.194821f, -0.259661f, -0.0949207f, -0.180302f, 0.0446834f, -0.222133f, -0.40393f, 0.295772f, -0.92949f, 0.580079f, -0.169856f, 0.330311f, 0.0173551f, -0.635823f, 0.475942f, 0.907175f, 0.242777f, -0.512208f, 0.362463f, 0.0496289f, 0.65171f, 0.990057f, 0.690733f, -0.469013f, -0.101311f, -0.68372f, -0.157841f, -0.677711f, -0.708224f, -0.659437f, -0.407607f, 0.677033f, 0.89032f, 0.228307f, -0.749514f, 0.772958f, 0.054701f, 0.551705f, 0.917052f, -0.895022f, -0.702397f, 0.484142f, 0.108648f, 0.833347f, 0.478872f, -0.984112f, 0.387176f, -0.73299f, 0.7526f, 0.443312f, -0.0987856f, 0.125415f, 0.10876f, -0.498108f, 0.43209f, 0.344609f, 0.928941f, -0.130732f, -0.0569167f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.28735f, 1.91315f, 2.51734f, 0.375841f, 0.637563f, 2.653f, 2.72959f, 1.17389f, -2.12119f, 2.91417f, -2.24246f, 0.0497045f, -0.127107f, -0.144473f, -0.393284f, -2.02346f, -0.239178f, -0.246508f, 1.29277f, 1.32963f, 0.117521f, 0.0665713f, 1.09438f, -1.31426f, 2.52594f, -0.969211f, 0.515478f, -1.60926f, 0.135211f, 0.786415f, -1.14382f, -0.739102f, -1.01731f, 0.281615f, 2.36311f, 1.93872f, -0.150491f, 3.45217f, 2.28219f, 1.18282f, -2.25086f, 3.05468f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/conv_3_h3_w2_SAME.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/conv_3_h3_w2_SAME.example.cpp
new file mode 100644
index 000000000..b8a15ed54
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/conv_3_h3_w2_SAME.example.cpp
@@ -0,0 +1,43 @@
+// Generated file (from: conv_3_h3_w2_SAME.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.869931f, 0.644628f, -0.918393f, 0.153672f, 0.868562f, -0.358177f, -0.134931f, -0.247565f, 0.22174f, -0.259157f, -0.284296f, -0.538065f, 0.765559f, 0.41986f, -0.556241f, 0.658494f, 0.214355f, -0.850169f, -0.252893f, -0.478935f, 0.530526f, -0.0700663f, -0.988729f, -0.303061f, 0.150845f, 0.829915f, 0.476349f, 0.406537f, -0.355343f, 0.757145f, -0.356362f, 0.800482f, -0.713861f, 0.210483f, -0.634303f, 0.718236f, -0.752038f, 0.457547f, -0.550769f, -0.551178f, 0.446766f, -0.227462f, 0.216348f, -0.852806f, -0.351486f, 0.55906f, -0.668493f, -0.303493f, -0.363763f, -0.162837f, 0.0701012f, 0.756097f, -0.142269f, 0.329724f, -0.656317f, -0.998086f, -0.652949f, -0.40316f, -0.893682f, 0.432744f, 0.612362f, -0.869588f, -0.71327f, -0.398092f, -0.0423559f, 0.436576f, -0.925272f, 0.176549f, 0.822904f, 0.096833f, -0.296802f, -0.427195f, 0.031654f, -0.254479f, 0.244905f, 0.0948254f, 0.643769f, -0.90391f, 0.352665f, -0.901179f, 0.266159f, -0.968068f, -0.615401f, -0.388975f, 0.939052f, -0.116289f, 0.107523f, -0.0582711f, 0.435172f, 0.334675f, 0.459711f, 0.717436f, 0.496627f, -0.680175f, -0.415066f, 0.339848f, 0.506004f, -0.337808f, -0.107218f, -0.172496f, 0.870638f, 0.931872f, -0.953884f, 0.903042f, 0.760078f, 0.209727f, -0.285384f, -0.45514f, 0.113194f, 0.0756611f, 0.0924435f, -0.472863f, 0.960609f, -0.160385f, -0.839445f, 0.457097f, 0.163348f, 0.344867f, -0.131619f, 0.688715f, -0.540827f, 0.571259f, -0.95587f, 0.506164f, -0.155839f, 0.0789621f, 0.756772f, -0.662069f, 0.242908f, 0.460821f, 0.177872f, -0.289839f, -0.640603f, 0.702598f, -0.506406f, -0.568262f, -0.0713716f, 0.413792f, 0.159673f, -0.305208f, 0.133816f, -0.160254f, 0.787323f, -0.753244f, 0.600721f, 0.263186f, -0.162387f, 0.477962f, -0.702951f, -0.731036f, -0.939481f, -0.524519f, 0.934072f, -0.511637f, -0.503499f, 0.106236f, -0.323684f, 0.534444f, -0.843745f, 0.364171f, 0.0370358f, -0.168801f, -0.404559f, -0.814178f, 0.91745f, -0.334276f, 0.66925f, -0.801201f, 0.156511f, -0.427949f, 0.379153f, 0.818597f, -0.649902f, 0.427087f, -0.586015f, -0.559789f, -0.833923f, 0.0892409f, -0.621251f, 0.213826f, 0.465509f, 0.4704f, 0.380261f, 0.413067f, 0.180822f, 0.172866f, 0.59614f, 0.825575f, 0.662916f, -0.704381f, -0.297631f, 0.697778f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-1.27853f, 1.74987f, -0.876718f, 0.989692f, 0.298548f, 0.522103f, -0.536896f, -0.179382f, -0.966914f, 1.33708f, 1.37042f, -0.495494f, 1.43859f, -1.548f, -0.430026f, -0.662793f, -0.0867897f, -0.900658f, -0.524396f, 0.255731f, -0.779081f, 0.12666f, 0.915651f, -0.444765f, -0.186842f, -1.87308f, 1.21135f, -0.385009f, 1.72032f, -1.56036f, -1.23059f, 1.23694f, 0.00200015f, 0.359522f, 1.60084f, 0.434006f, -0.282945f, 2.37292f, -1.28653f, 0.0847837f, -0.352093f, -2.39659f, 0.149246f, 0.920351f, -1.34346f, 0.952311f, -0.35811f, 0.403449f, 0.484796f, -1.19989f, -0.684298f, -1.41301f, 0.103177f, -0.307039f, 1.17741f, 2.58936f, -2.76237f, -1.21565f, -1.09619f, 1.17432f, 0.512143f, 0.771379f, 0.399879f, -0.0533093f, 0.290864f, 0.95563f, 1.16328f, 1.80768f, -1.52564f, -0.126476f, -0.185224f, -0.114779f, 1.2248f, 0.237127f, -0.213297f, -0.619941f, 0.497944f, -1.68688f, 1.59314f, -0.127337f, 0.111419f, 1.13719f, 1.68537f, -0.479644f, 1.18608f, -2.52744f, 1.34136f, 0.548297f, -2.0838f, 2.64585f, -0.993354f, 0.128238f, 1.26092f, 0.318668f, 0.893795f, -0.0600559f, -0.629126f, -0.949229f, 2.25828f, -1.961f, 0.00589599f, -0.187854f, -1.02403f, 0.396121f, 1.3704f, 3.99355f, 0.434221f, 0.274464f, -0.562438f, -0.914871f, 0.539129f, -0.928687f, 0.834954f, 0.844178f, -0.566053f, -0.957341f, 0.933336f, 1.13613f, -1.22109f, 1.4649f, -0.414666f, -0.452821f, -0.706006f, -1.72657f, -0.726574f, -0.0979362f, -0.478669f, 1.78703f, -0.639288f, 1.48565f, -0.179904f, 1.01003f, -0.317118f, -0.675387f, 1.90969f, -1.38343f, 0.697255f, -0.292255f, 1.81634f, 0.717801f, 0.862479f, -0.407478f, -0.343106f, -0.0353232f, -0.481893f, -0.135565f, -2.95941f, 0.247846f, 2.67757f, -2.23999f, -0.519673f, 0.254447f, 0.415283f, -1.01065f, 0.507911f, 0.979926f, -0.184304f, -0.000950437f, -0.734348f, -0.196685f, -0.713241f, 0.594972f, 0.0845042f, 2.48496f, 0.385019f, -0.201145f, 0.533332f, -0.904872f, -0.333518f, -0.581063f, -2.07065f, 0.118687f, -1.86708f, -0.601987f, 0.432037f, 1.73923f, 0.590007f, 0.419788f, 0.314198f, 2.12817f, 0.570793f, -1.15998f, -0.348587f, -1.10231f, -2.13091f, 0.134467f, -0.460382f, 0.138338f, 3.455f, 0.679068f, -0.190282f, -0.0307461f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.295335f, -0.00387601f, -0.552251f, 0.166084f, -0.28482f, -0.152143f, -0.719885f, -0.869386f, -0.745598f, 0.823947f, 0.473183f, -0.331337f, 0.187631f, 0.0426571f, -0.826897f, -0.755085f, -0.472453f, -0.0233656f, 0.0483436f, 0.933418f, -0.961974f, 0.0125783f, 0.219742f, 0.342604f, -0.15166f, 0.0934905f, 0.783221f, 0.129664f, 0.838844f, -0.271388f, 0.924519f, 0.342843f, 0.274418f, 0.350817f, 0.841638f, -0.543993f, -0.00283395f, -0.128467f, -0.682943f, -0.319117f, 0.84634f, 0.283003f, 0.32865f, 0.0293755f, -0.0335696f, 0.591266f, -0.0743476f, -0.741271f, 0.462056f, -0.583625f, -0.590183f, 0.6234f, 0.535269f, -0.670818f, -0.955642f, -0.770173f, 0.479986f, 0.664377f, 0.399445f, -0.968874f, -0.276263f, -0.901951f, 0.544104f, -0.958981f, 0.482658f, -0.807284f, 0.305369f, -0.947818f, 0.827498f, -0.382887f, -0.805741f, -0.796678f, -0.299804f, -0.229828f, 0.818783f, -0.103055f, -0.45568f, -0.227827f, 0.543743f, -0.96073f, 0.946747f, -0.857182f, -0.96426f, -0.292411f, -0.715614f, 0.765278f, -0.475043f, -0.590142f, -0.238507f, 0.673002f, -0.473357f, -0.319626f, 0.936014f, 0.486607f, 0.580844f, 0.425352f, -0.800994f, 0.290763f, -0.494953f, -0.441162f, 0.718677f, -0.828427f, 0.96965f, 7.53637e-05f, -0.699973f, -0.526886f, -0.352682f, 0.799466f, 0.332789f, 0.723389f, 0.407659f, -0.934084f, -0.284705f, 0.961484f, -0.700395f, -0.985808f, -0.595342f, -0.691721f, 0.49448f, -0.0842649f, 0.0390966f, 0.298938f, -0.128094f, -0.97158f, 0.86393f, 0.270606f, -0.468986f, -0.256605f, 0.47215f, -0.273117f, -0.590343f, -0.826529f, -0.725381f, -0.194821f, -0.259661f, -0.0949207f, -0.180302f, 0.0446834f, -0.222133f, -0.40393f, 0.295772f, -0.92949f, 0.580079f, -0.169856f, 0.330311f, 0.0173551f, -0.635823f, 0.475942f, 0.907175f, 0.242777f, -0.512208f, 0.362463f, 0.0496289f, 0.65171f, 0.990057f, 0.690733f, -0.469013f, -0.101311f, -0.68372f, -0.157841f, -0.677711f, -0.708224f, -0.659437f, -0.407607f, 0.677033f, 0.89032f, 0.228307f, -0.749514f, 0.772958f, 0.054701f, 0.551705f, 0.917052f, -0.895022f, -0.702397f, 0.484142f, 0.108648f, 0.833347f, 0.478872f, -0.984112f, 0.387176f, -0.73299f, 0.7526f, 0.443312f, -0.0987856f, 0.125415f, 0.10876f, -0.498108f, 0.43209f, 0.344609f, 0.928941f, -0.130732f, -0.0569167f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.78574f, 0.0700466f, -0.110245f, 0.0141003f, -0.621007f, -0.979104f, 1.24104f, 0.580398f, -0.512997f, 0.900559f, -0.683229f, -1.0162f, 1.0089f, -0.0752488f, 0.110969f, 0.270558f, 0.756819f, -0.10753f, -0.371484f, 0.149005f, 0.0973829f, 0.155766f, -0.476502f, 0.259481f, 1.06709f, -1.16534f, 1.52694f, -0.797245f, 0.802736f, -0.997109f, 2.2661f, -1.45548f, 2.15506f, -1.33682f, 1.15225f, -3.09324f, 0.943457f, 0.885211f, 0.987944f, -0.345875f, -0.114708f, 1.7107f, 0.104745f, 0.828324f, -2.49964f, -0.453742f, -0.288829f, -0.0948694f, -0.489415f, 1.74889f, -0.378257f, -2.10237f, 0.613022f, -2.5225f, -0.746785f, 3.63816f, -1.9287f, 0.774279f, -0.613917f, -0.650011f, 1.03753f, -0.177923f, 0.891815f, -1.00373f, 1.83859f, -1.59239f, -0.0662623f, 0.218806f, -1.088f, 0.280837f, 0.902901f, -1.90127f, 3.04734f, -1.57302f, 1.10881f, -0.980369f, -3.85305f, -0.955859f, 1.64909f, 2.33573f, 0.31144f, -0.594375f, 0.325747f, -0.952566f, -0.613449f, 2.85073f, 1.94692f, 1.12977f, 1.1351f, -0.449652f, 0.118765f, -0.199547f, 2.873f, 1.35182f, -1.85457f, 1.22364f, 1.38049f, 2.38342f, 0.882321f, 1.03795f, -0.321571f, -2.60202f, -1.6372f, 1.09302f, 0.461768f, 1.8485f, -0.158928f, 4.28871f, -0.437375f, -1.5794f, 1.59869f, 0.0811864f, 0.912054f, 0.452176f, 2.01812f, 2.62907f, 1.50304f, -0.840276f, -0.455854f, -0.224913f, 0.609824f, -0.11105f, 3.35635f, 2.02386f, 1.4687f, -0.708365f, -0.508992f, -3.02602f, -0.75725f, 1.85277f, 2.92817f, -0.172997f, -1.13279f, -0.355636f, -0.337669f, -0.588752f, 2.05759f, 1.0651f, 0.884758f, -0.0712112f, 3.81319f, 0.771629f, 0.949634f, 0.0838967f, -2.19264f, 0.114521f, 0.543556f, -1.63197f, -0.267442f, 1.15701f, -2.37862f, 2.57646f, 0.531208f, 0.9499f, -0.231441f, 1.51461f, 1.58888f, 0.895931f, -0.753084f, 0.545251f, 0.746903f, 0.012994f, -0.790398f, -1.1055f, 1.77789f, 0.430923f, 0.818241f, -0.731412f, 0.979546f, -2.48707f, -1.53658f, -1.66798f, -1.04585f, -0.667911f, 1.00299f, -2.20339f, 0.137826f, -2.31281f, 0.755535f, 0.495396f, 0.549629f, 0.713128f, 0.751369f, 0.283996f, -0.814532f, 1.4866f, 1.12105f, 0.927998f, 0.517938f, -0.612661f, -1.47756f, -1.42422f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/conv_3_h3_w2_VALID.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/conv_3_h3_w2_VALID.example.cpp
new file mode 100644
index 000000000..627bb6d0b
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/conv_3_h3_w2_VALID.example.cpp
@@ -0,0 +1,43 @@
+// Generated file (from: conv_3_h3_w2_VALID.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.869931f, 0.644628f, -0.918393f, 0.153672f, 0.868562f, -0.358177f, -0.134931f, -0.247565f, 0.22174f, -0.259157f, -0.284296f, -0.538065f, 0.765559f, 0.41986f, -0.556241f, 0.658494f, 0.214355f, -0.850169f, -0.252893f, -0.478935f, 0.530526f, -0.0700663f, -0.988729f, -0.303061f, 0.150845f, 0.829915f, 0.476349f, 0.406537f, -0.355343f, 0.757145f, -0.356362f, 0.800482f, -0.713861f, 0.210483f, -0.634303f, 0.718236f, -0.752038f, 0.457547f, -0.550769f, -0.551178f, 0.446766f, -0.227462f, 0.216348f, -0.852806f, -0.351486f, 0.55906f, -0.668493f, -0.303493f, -0.363763f, -0.162837f, 0.0701012f, 0.756097f, -0.142269f, 0.329724f, -0.656317f, -0.998086f, -0.652949f, -0.40316f, -0.893682f, 0.432744f, 0.612362f, -0.869588f, -0.71327f, -0.398092f, -0.0423559f, 0.436576f, -0.925272f, 0.176549f, 0.822904f, 0.096833f, -0.296802f, -0.427195f, 0.031654f, -0.254479f, 0.244905f, 0.0948254f, 0.643769f, -0.90391f, 0.352665f, -0.901179f, 0.266159f, -0.968068f, -0.615401f, -0.388975f, 0.939052f, -0.116289f, 0.107523f, -0.0582711f, 0.435172f, 0.334675f, 0.459711f, 0.717436f, 0.496627f, -0.680175f, -0.415066f, 0.339848f, 0.506004f, -0.337808f, -0.107218f, -0.172496f, 0.870638f, 0.931872f, -0.953884f, 0.903042f, 0.760078f, 0.209727f, -0.285384f, -0.45514f, 0.113194f, 0.0756611f, 0.0924435f, -0.472863f, 0.960609f, -0.160385f, -0.839445f, 0.457097f, 0.163348f, 0.344867f, -0.131619f, 0.688715f, -0.540827f, 0.571259f, -0.95587f, 0.506164f, -0.155839f, 0.0789621f, 0.756772f, -0.662069f, 0.242908f, 0.460821f, 0.177872f, -0.289839f, -0.640603f, 0.702598f, -0.506406f, -0.568262f, -0.0713716f, 0.413792f, 0.159673f, -0.305208f, 0.133816f, -0.160254f, 0.787323f, -0.753244f, 0.600721f, 0.263186f, -0.162387f, 0.477962f, -0.702951f, -0.731036f, -0.939481f, -0.524519f, 0.934072f, -0.511637f, -0.503499f, 0.106236f, -0.323684f, 0.534444f, -0.843745f, 0.364171f, 0.0370358f, -0.168801f, -0.404559f, -0.814178f, 0.91745f, -0.334276f, 0.66925f, -0.801201f, 0.156511f, -0.427949f, 0.379153f, 0.818597f, -0.649902f, 0.427087f, -0.586015f, -0.559789f, -0.833923f, 0.0892409f, -0.621251f, 0.213826f, 0.465509f, 0.4704f, 0.380261f, 0.413067f, 0.180822f, 0.172866f, 0.59614f, 0.825575f, 0.662916f, -0.704381f, -0.297631f, 0.697778f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.186842f, -1.87308f, 1.21135f, -0.385009f, 1.72032f, -1.56036f, -1.23059f, 1.23694f, 0.00200015f, 0.359522f, 1.60084f, 0.434006f, -0.282945f, 2.37292f, -1.28653f, 0.0847837f, -0.352093f, -2.39659f, 0.149246f, 0.920351f, -1.34346f, 0.484796f, -1.19989f, -0.684298f, -1.41301f, 0.103177f, -0.307039f, 1.17741f, 2.58936f, -2.76237f, -1.21565f, -1.09619f, 1.17432f, 0.512143f, 0.771379f, 0.399879f, -0.0533093f, 0.290864f, 0.95563f, 1.16328f, 1.80768f, -1.52564f, 1.2248f, 0.237127f, -0.213297f, -0.619941f, 0.497944f, -1.68688f, 1.59314f, -0.127337f, 0.111419f, 1.13719f, 1.68537f, -0.479644f, 1.18608f, -2.52744f, 1.34136f, 0.548297f, -2.0838f, 2.64585f, -0.993354f, 0.128238f, 1.26092f, -0.629126f, -0.949229f, 2.25828f, -1.961f, 0.00589599f, -0.187854f, -1.02403f, 0.396121f, 1.3704f, 3.99355f, 0.434221f, 0.274464f, -0.562438f, -0.914871f, 0.539129f, -0.928687f, 0.834954f, 0.844178f, -0.566053f, -0.957341f, 0.933336f, -0.414666f, -0.452821f, -0.706006f, -1.72657f, -0.726574f, -0.0979362f, -0.478669f, 1.78703f, -0.639288f, 1.48565f, -0.179904f, 1.01003f, -0.317118f, -0.675387f, 1.90969f, -1.38343f, 0.697255f, -0.292255f, 1.81634f, 0.717801f, 0.862479f, -0.481893f, -0.135565f, -2.95941f, 0.247846f, 2.67757f, -2.23999f, -0.519673f, 0.254447f, 0.415283f, -1.01065f, 0.507911f, 0.979926f, -0.184304f, -0.000950437f, -0.734348f, -0.196685f, -0.713241f, 0.594972f, 0.0845044f, 2.48496f, 0.385019f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.295335f, -0.00387601f, -0.552251f, 0.166084f, -0.28482f, -0.152143f, -0.719885f, -0.869386f, -0.745598f, 0.823947f, 0.473183f, -0.331337f, 0.187631f, 0.0426571f, -0.826897f, -0.755085f, -0.472453f, -0.0233656f, 0.0483436f, 0.933418f, -0.961974f, 0.0125783f, 0.219742f, 0.342604f, -0.15166f, 0.0934905f, 0.783221f, 0.129664f, 0.838844f, -0.271388f, 0.924519f, 0.342843f, 0.274418f, 0.350817f, 0.841638f, -0.543993f, -0.00283395f, -0.128467f, -0.682943f, -0.319117f, 0.84634f, 0.283003f, 0.32865f, 0.0293755f, -0.0335696f, 0.591266f, -0.0743476f, -0.741271f, 0.462056f, -0.583625f, -0.590183f, 0.6234f, 0.535269f, -0.670818f, -0.955642f, -0.770173f, 0.479986f, 0.664377f, 0.399445f, -0.968874f, -0.276263f, -0.901951f, 0.544104f, -0.958981f, 0.482658f, -0.807284f, 0.305369f, -0.947818f, 0.827498f, -0.382887f, -0.805741f, -0.796678f, -0.299804f, -0.229828f, 0.818783f, -0.103055f, -0.45568f, -0.227827f, 0.543743f, -0.96073f, 0.946747f, -0.857182f, -0.96426f, -0.292411f, -0.715614f, 0.765278f, -0.475043f, -0.590142f, -0.238507f, 0.673002f, -0.473357f, -0.319626f, 0.936014f, 0.486607f, 0.580844f, 0.425352f, -0.800994f, 0.290763f, -0.494953f, -0.441162f, 0.718677f, -0.828427f, 0.96965f, 7.53637e-05f, -0.699973f, -0.526886f, -0.352682f, 0.799466f, 0.332789f, 0.723389f, 0.407659f, -0.934084f, -0.284705f, 0.961484f, -0.700395f, -0.985808f, -0.595342f, -0.691721f, 0.49448f, -0.0842649f, 0.0390966f, 0.298938f, -0.128094f, -0.97158f, 0.86393f, 0.270606f, -0.468986f, -0.256605f, 0.47215f, -0.273117f, -0.590343f, -0.826529f, -0.725381f, -0.194821f, -0.259661f, -0.0949207f, -0.180302f, 0.0446834f, -0.222133f, -0.40393f, 0.295772f, -0.92949f, 0.580079f, -0.169856f, 0.330311f, 0.0173551f, -0.635823f, 0.475942f, 0.907175f, 0.242777f, -0.512208f, 0.362463f, 0.0496289f, 0.65171f, 0.990057f, 0.690733f, -0.469013f, -0.101311f, -0.68372f, -0.157841f, -0.677711f, -0.708224f, -0.659437f, -0.407607f, 0.677033f, 0.89032f, 0.228307f, -0.749514f, 0.772958f, 0.054701f, 0.551705f, 0.917052f, -0.895022f, -0.702397f, 0.484142f, 0.108648f, 0.833347f, 0.478872f, -0.984112f, 0.387176f, -0.73299f, 0.7526f, 0.443312f, -0.0987856f, 0.125415f, 0.10876f, -0.498108f, 0.43209f, 0.344609f, 0.928941f, -0.130732f, -0.0569167f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.06709f, -1.16534f, 1.52694f, -0.797245f, 0.802736f, -0.997109f, 2.2661f, -1.45548f, 2.15506f, -1.33682f, 1.15225f, -3.09324f, 0.943457f, 0.885211f, 0.987944f, -0.345875f, -0.114708f, 1.7107f, 0.104745f, 0.828324f, -2.49964f, -0.489415f, 1.74889f, -0.378257f, -2.10237f, 0.613022f, -2.5225f, -0.746785f, 3.63816f, -1.9287f, 0.774279f, -0.613917f, -0.650011f, 1.03753f, -0.177923f, 0.891815f, -1.00373f, 1.83859f, -1.59239f, -0.0662623f, 0.218806f, -1.088f, 3.04734f, -1.57302f, 1.10881f, -0.980369f, -3.85305f, -0.955859f, 1.64909f, 2.33573f, 0.31144f, -0.594375f, 0.325747f, -0.952566f, -0.613449f, 2.85073f, 1.94692f, 1.12977f, 1.1351f, -0.449652f, 0.118765f, -0.199547f, 2.873f, 1.38049f, 2.38342f, 0.882321f, 1.03795f, -0.321571f, -2.60202f, -1.6372f, 1.09302f, 0.461768f, 1.8485f, -0.158928f, 4.28871f, -0.437375f, -1.5794f, 1.59869f, 0.0811864f, 0.912054f, 0.452176f, 2.01812f, 2.62907f, 1.50304f, 0.609824f, -0.11105f, 3.35635f, 2.02386f, 1.4687f, -0.708365f, -0.508992f, -3.02602f, -0.75725f, 1.85277f, 2.92817f, -0.172997f, -1.13279f, -0.355636f, -0.337669f, -0.588752f, 2.05759f, 1.0651f, 0.884758f, -0.0712112f, 3.81319f, -2.19264f, 0.114521f, 0.543556f, -1.63197f, -0.267442f, 1.15701f, -2.37862f, 2.57646f, 0.531208f, 0.9499f, -0.231441f, 1.51461f, 1.58888f, 0.895931f, -0.753084f, 0.545251f, 0.746904f, 0.0129939f, -0.790398f, -1.1055f, 1.77789f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/conv_float.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/conv_float.example.cpp
new file mode 100644
index 000000000..f3160497e
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/conv_float.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: conv_float.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 1.0f, 1.0f, 1.0f, 0.5f, 1.0f, 1.0f, 1.0f, 1.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.875f, 0.875f, 0.875f, 0.875f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/conv_float_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/conv_float_2.example.cpp
new file mode 100644
index 000000000..78d904abd
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/conv_float_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: conv_float_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0, 0, 0, 0, 35, 112, 157, 0, 0, 34, 61, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/conv_float_channels.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/conv_float_channels.example.cpp
new file mode 100644
index 000000000..f7c110f2d
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/conv_float_channels.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: conv_float_channels.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {99.0f, 99.0f, 99.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {297.0f, 594.0f, 891.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/conv_float_channels_weights_as_inputs.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/conv_float_channels_weights_as_inputs.example.cpp
new file mode 100644
index 000000000..44b445352
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/conv_float_channels_weights_as_inputs.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: conv_float_channels_weights_as_inputs.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {99.0f, 99.0f, 99.0f}}, {1, {1.0f, 1.0f, 1.0f, 2.0f, 2.0f, 2.0f, 3.0f, 3.0f, 3.0f}}, {2, {0.0f, 0.0f, 0.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {297.0f, 594.0f, 891.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/conv_float_large.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/conv_float_large.example.cpp
new file mode 100644
index 000000000..9650e5462
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/conv_float_large.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: conv_float_large.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {30.0f, 36.0f, 42.0f, 66.0f, 81.0f, 96.0f, 102.0f, 126.0f, 150.0f, 138.0f, 171.0f, 204.0f, 174.0f, 216.0f, 258.0f, 210.0f, 261.0f, 312.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/conv_float_large_weights_as_inputs.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/conv_float_large_weights_as_inputs.example.cpp
new file mode 100644
index 000000000..94441a311
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/conv_float_large_weights_as_inputs.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: conv_float_large_weights_as_inputs.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f}}, {1, {1.0f, 4.0f, 7.0f, 2.0f, 5.0f, 8.0f, 3.0f, 6.0f, 9.0f}}, {2, {0.0f, 0.0f, 0.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {30.0f, 36.0f, 42.0f, 66.0f, 81.0f, 96.0f, 102.0f, 126.0f, 150.0f, 138.0f, 171.0f, 204.0f, 174.0f, 216.0f, 258.0f, 210.0f, 261.0f, 312.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/conv_float_weights_as_inputs.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/conv_float_weights_as_inputs.example.cpp
new file mode 100644
index 000000000..55ec4643a
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/conv_float_weights_as_inputs.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: conv_float_weights_as_inputs.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 1.0f, 1.0f, 1.0f, 0.5f, 1.0f, 1.0f, 1.0f, 1.0f}}, {1, {0.25f, 0.25f, 0.25f, 0.25f}}, {2, {0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.875f, 0.875f, 0.875f, 0.875f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/conv_quant8.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/conv_quant8.example.cpp
new file mode 100644
index 000000000..34ab5c18f
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/conv_quant8.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: conv_quant8.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {8, 8, 8, 8, 4, 8, 8, 8, 8}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {15, 15, 15, 15}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_2.example.cpp
new file mode 100644
index 000000000..319db67e8
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: conv_quant8_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {133, 131, 129, 125, 123, 121, 135, 133, 131, 123, 121, 119, 137, 135, 133, 121, 119, 117}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {157, 103, 167, 93}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_channels.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_channels.example.cpp
new file mode 100644
index 000000000..d65797236
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_channels.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: conv_quant8_channels.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {10, 10, 10}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {15, 38, 60}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_channels_weights_as_inputs.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_channels_weights_as_inputs.example.cpp
new file mode 100644
index 000000000..bea22100b
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_channels_weights_as_inputs.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: conv_quant8_channels_weights_as_inputs.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {{2, {0, 0, 0}}},
+ // int -> QUANT8_ASYMM map
+ {{0, {10, 10, 10}}, {1, {1, 2, 3, 4, 5, 6, 7, 8, 9}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {15, 38, 60}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_large.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_large.example.cpp
new file mode 100644
index 000000000..cd778a502
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_large.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: conv_quant8_large.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {8, 9, 11, 17, 21, 24, 26, 32, 38, 35, 43, 51, 44, 54, 65, 53, 66, 78}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_large_weights_as_inputs.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_large_weights_as_inputs.example.cpp
new file mode 100644
index 000000000..12c0ef48a
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_large_weights_as_inputs.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: conv_quant8_large_weights_as_inputs.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {{2, {0, 0, 0}}},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18}}, {1, {1, 4, 7, 2, 5, 8, 3, 6, 9}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {8, 9, 11, 17, 21, 24, 26, 32, 38, 35, 43, 51, 44, 54, 65, 53, 66, 78}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_overflow.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_overflow.example.cpp
new file mode 100644
index 000000000..a9aa2b2f6
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_overflow.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: conv_quant8_overflow.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {75, 90, 105, 165, 203, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_overflow_weights_as_inputs.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_overflow_weights_as_inputs.example.cpp
new file mode 100644
index 000000000..78c7308d5
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_overflow_weights_as_inputs.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: conv_quant8_overflow_weights_as_inputs.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {{2, {0, 0, 0}}},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18}}, {1, {10, 40, 70, 20, 50, 80, 30, 60, 90}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {75, 90, 105, 165, 203, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_weights_as_inputs.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_weights_as_inputs.example.cpp
new file mode 100644
index 000000000..b7de7fa51
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/conv_quant8_weights_as_inputs.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: conv_quant8_weights_as_inputs.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {{2, {4}}},
+ // int -> QUANT8_ASYMM map
+ {{0, {8, 8, 8, 8, 4, 8, 8, 8, 8}}, {1, {2, 2, 2, 2}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {15, 15, 15, 15}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/depth_to_space_float_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/depth_to_space_float_1.example.cpp
new file mode 100644
index 000000000..57b205735
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/depth_to_space_float_1.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: depth_to_space_float_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.4f, 2.3f, 3.2f, 4.1f, 5.4f, 6.3f, 7.2f, 8.1f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.4f, 2.3f, 3.2f, 4.1f, 5.4f, 6.3f, 7.2f, 8.1f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/depth_to_space_float_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/depth_to_space_float_2.example.cpp
new file mode 100644
index 000000000..2b3e2519e
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/depth_to_space_float_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: depth_to_space_float_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 2.0f, 5.0f, 6.0f, 3.0f, 4.0f, 7.0f, 8.0f, 9.0f, 10.0f, 13.0f, 14.0f, 11.0f, 12.0f, 15.0f, 16.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/depth_to_space_float_3.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/depth_to_space_float_3.example.cpp
new file mode 100644
index 000000000..0124212a6
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/depth_to_space_float_3.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: depth_to_space_float_3.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {10, 20, 11, 21, 14, 24, 15, 25, 12, 22, 13, 23, 16, 26, 17, 27, 18, 28, 19, 29, 112, 212, 113, 213, 110, 210, 111, 211, 114, 214, 115, 215}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {10, 20, 11, 21, 12, 22, 13, 23, 14, 24, 15, 25, 16, 26, 17, 27, 18, 28, 19, 29, 110, 210, 111, 211, 112, 212, 113, 213, 114, 214, 115, 215}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/depth_to_space_quant8_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/depth_to_space_quant8_1.example.cpp
new file mode 100644
index 000000000..a292e9677
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/depth_to_space_quant8_1.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: depth_to_space_quant8_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 4, 252, 253, 254, 255}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 4, 252, 253, 254, 255}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/depth_to_space_quant8_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/depth_to_space_quant8_2.example.cpp
new file mode 100644
index 000000000..849243c0a
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/depth_to_space_quant8_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: depth_to_space_quant8_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 1, 4, 5, 2, 3, 6, 7, 248, 249, 252, 253, 250, 251, 254, 255}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 1, 2, 3, 4, 5, 6, 7, 248, 249, 250, 251, 252, 253, 254, 255}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv.example.cpp
new file mode 100644
index 000000000..10f58bfd8
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv.example.cpp
@@ -0,0 +1,43 @@
+// Generated file (from: depthwise_conv.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.869931f, 0.644628f, -0.918393f, 0.153672f, 0.868562f, -0.358177f, -0.134931f, -0.247565f, 0.22174f, -0.259157f, -0.284296f, -0.538065f, 0.765559f, 0.41986f, -0.556241f, 0.658494f, 0.214355f, -0.850169f, -0.252893f, -0.478935f, 0.530526f, -0.0700663f, -0.988729f, -0.303061f, 0.150845f, 0.829915f, 0.476349f, 0.406537f, -0.355343f, 0.757145f, -0.356362f, 0.800482f, -0.713861f, 0.210483f, -0.634303f, 0.718236f, -0.752038f, 0.457547f, -0.550769f, -0.551178f, 0.446766f, -0.227462f, 0.216348f, -0.852806f, -0.351486f, 0.55906f, -0.668493f, -0.303493f, -0.363763f, -0.162837f, 0.0701012f, 0.756097f, -0.142269f, 0.329724f, -0.656317f, -0.998086f, -0.652949f, -0.40316f, -0.893682f, 0.432744f, 0.612362f, -0.869588f, -0.71327f, -0.398092f, -0.0423559f, 0.436576f, -0.925272f, 0.176549f, 0.822904f, 0.096833f, -0.296802f, -0.427195f, 0.031654f, -0.254479f, 0.244905f, 0.0948254f, 0.643769f, -0.90391f, 0.352665f, -0.901179f, 0.266159f, -0.968068f, -0.615401f, -0.388975f, 0.939052f, -0.116289f, 0.107523f, -0.0582711f, 0.435172f, 0.334675f, 0.459711f, 0.717436f, 0.496627f, -0.680175f, -0.415066f, 0.339848f, 0.506004f, -0.337808f, -0.107218f, -0.172496f, 0.870638f, 0.931872f, -0.953884f, 0.903042f, 0.760078f, 0.209727f, -0.285384f, -0.45514f, 0.113194f, 0.0756611f, 0.0924435f, -0.472863f, 0.960609f, -0.160385f, -0.839445f, 0.457097f, 0.163348f, 0.344867f, -0.131619f, 0.688715f, -0.540827f, 0.571259f, -0.95587f, 0.506164f, -0.155839f, 0.0789621f, 0.756772f, -0.662069f, 0.242908f, 0.460821f, 0.177872f, -0.289839f, -0.640603f, 0.702598f, -0.506406f, -0.568262f, -0.0713716f, 0.413792f, 0.159673f, -0.305208f, 0.133816f, -0.160254f, 0.787323f, -0.753244f, 0.600721f, 0.263186f, -0.162387f, 0.477962f, -0.702951f, -0.731036f, -0.939481f, -0.524519f, 0.934072f, -0.511637f, -0.503499f, 0.106236f, -0.323684f, 0.534444f, -0.843745f, 0.364171f, 0.0370358f, -0.168801f, -0.404559f, -0.814178f, 0.91745f, -0.334276f, 0.66925f, -0.801201f, 0.156511f, -0.427949f, 0.379153f, 0.818597f, -0.649902f, 0.427087f, -0.586015f, -0.559789f, -0.833923f, 0.0892409f, -0.621251f, 0.213826f, 0.465509f, 0.4704f, 0.380261f, 0.413067f, 0.180822f, 0.172866f, 0.59614f, 0.825575f, 0.662916f, -0.704381f, -0.297631f, 0.697778f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.840539f, -0.301347f, 0.754947f, -0.14848f, -0.40603f, 0.294432f, 0.130372f, 0.11573f, -0.182277f, 0.2504f, 0.132901f, 0.442306f, -0.739693f, -0.196274f, 0.457246f, -0.636246f, -0.100205f, 0.698864f, 0.244348f, 0.22389f, -0.436108f, 0.067699f, 0.462205f, 0.249125f, -0.145748f, -0.387964f, -0.391573f, -0.392801f, 0.166114f, -0.622396f, 0.344322f, -0.374205f, 0.586815f, -0.203372f, 0.29652f, -0.590411f, 0.726629f, -0.213891f, 0.452749f, 0.532555f, -0.208851f, 0.186981f, -0.209039f, 0.398664f, 0.288932f, -0.540171f, 0.312503f, 0.24948f, 0.351473f, 0.076122f, -0.0576253f, -0.73055f, 0.0665069f, -0.271043f, 0.634142f, 0.466579f, 0.536743f, 0.389538f, 0.417773f, -0.355728f, -0.591672f, 0.40651f, 0.586329f, 0.384641f, 0.0198003f, -0.358878f, 0.894009f, -0.0825318f, -0.676451f, -0.0935613f, 0.138747f, 0.351167f, -0.0305845f, 0.118962f, -0.201319f, -0.0916215f, -0.300945f, 0.743041f, -0.34075f, 0.421278f, -0.218791f, 0.935359f, 0.287684f, 0.319749f, -0.907324f, 0.054362f, -0.0883874f, 0.0563023f, -0.203432f, -0.275113f, -0.444178f, -0.335382f, -0.408242f, 0.657194f, 0.194033f, -0.279365f, -0.488907f, 0.157917f, 0.0881365f, 0.166668f, -0.407001f, -0.766027f, 0.921655f, -0.422149f, -0.624807f, -0.202641f, 0.13341f, 0.374139f, -0.109369f, -0.0353696f, -0.0759913f, 0.456887f, -0.44906f, 0.131841f, 0.811082f, -0.213681f, -0.134277f, -0.333215f, 0.0615286f, -0.566144f, 0.522554f, -0.267049f, 0.785754f, -0.489062f, 0.0728509f, -0.0649092f, -0.731203f, 0.3095f, -0.199677f, -0.445251f, -0.0831503f, 0.238257f, 0.618959f, -0.328446f, 0.416281f, 0.549062f, 0.0333644f, -0.340149f, -0.154278f, 0.142677f, -0.110001f, 0.15484f, -0.368053f, 0.619189f, -0.580424f, -0.123033f, 0.133487f, -0.461813f, 0.328611f, 0.600933f, 0.907739f, 0.245199f, -0.767835f, 0.49435f, 0.235373f, -0.0873295f, 0.312748f, -0.249839f, 0.693584f, -0.351866f, -0.0173133f, 0.13876f, 0.39089f, 0.380607f, -0.754171f, 0.322982f, -0.312857f, 0.658611f, -0.151223f, 0.200055f, -0.311675f, -0.790939f, 0.303812f, -0.351079f, 0.566216f, 0.261687f, 0.68551f, -0.0862257f, 0.290419f, -0.175771f, -0.449781f, -0.2199f, -0.312586f, -0.399111f, -0.0845297f, -0.142101f, -0.575998f, -0.385935f, -0.544937f, 0.680582f, 0.139135f, -0.573594f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.295335f, -0.00387601f, -0.552251f, 0.166084f, -0.28482f, -0.152143f, -0.719885f, -0.869386f, -0.745598f, 0.823947f, 0.473183f, -0.331337f, 0.187631f, 0.0426571f, -0.826897f, -0.755085f, -0.472453f, -0.0233656f, 0.0483436f, 0.933418f, -0.961974f, 0.0125783f, 0.219742f, 0.342604f, -0.15166f, 0.0934905f, 0.783221f, 0.129664f, 0.838844f, -0.271388f, 0.924519f, 0.342843f, 0.274418f, 0.350817f, 0.841638f, -0.543993f, -0.00283395f, -0.128467f, -0.682943f, -0.319117f, 0.84634f, 0.283003f, 0.32865f, 0.0293755f, -0.0335696f, 0.591266f, -0.0743476f, -0.741271f, 0.462056f, -0.583625f, -0.590183f, 0.6234f, 0.535269f, -0.670818f, -0.955642f, -0.770173f, 0.479986f, 0.664377f, 0.399445f, -0.968874f, -0.276263f, -0.901951f, 0.544104f, -0.958981f, 0.482658f, -0.807284f, 0.305369f, -0.947818f, 0.827498f, -0.382887f, -0.805741f, -0.796678f, -0.299804f, -0.229828f, 0.818783f, -0.103055f, -0.45568f, -0.227827f, 0.543743f, -0.96073f, 0.946747f, -0.857182f, -0.96426f, -0.292411f, -0.715614f, 0.765278f, -0.475043f, -0.590142f, -0.238507f, 0.673002f, -0.473357f, -0.319626f, 0.936014f, 0.486607f, 0.580844f, 0.425352f, -0.800994f, 0.290763f, -0.494953f, -0.441162f, 0.718677f, -0.828427f, 0.96965f, 7.53637e-05f, -0.699973f, -0.526886f, -0.352682f, 0.799466f, 0.332789f, 0.723389f, 0.407659f, -0.934084f, -0.284705f, 0.961484f, -0.700395f, -0.985808f, -0.595342f, -0.691721f, 0.49448f, -0.0842649f, 0.0390966f, 0.298938f, -0.128094f, -0.97158f, 0.86393f, 0.270606f, -0.468986f, -0.256605f, 0.47215f, -0.273117f, -0.590343f, -0.826529f, -0.725381f, -0.194821f, -0.259661f, -0.0949207f, -0.180302f, 0.0446834f, -0.222133f, -0.40393f, 0.295772f, -0.92949f, 0.580079f, -0.169856f, 0.330311f, 0.0173551f, -0.635823f, 0.475942f, 0.907175f, 0.242777f, -0.512208f, 0.362463f, 0.0496289f, 0.65171f, 0.990057f, 0.690733f, -0.469013f, -0.101311f, -0.68372f, -0.157841f, -0.677711f, -0.708224f, -0.659437f, -0.407607f, 0.677033f, 0.89032f, 0.228307f, -0.749514f, 0.772958f, 0.054701f, 0.551705f, 0.917052f, -0.895022f, -0.702397f, 0.484142f, 0.108648f, 0.833347f, 0.478872f, -0.984112f, 0.387176f, -0.73299f, 0.7526f, 0.443312f, -0.0987856f, 0.125415f, 0.10876f, -0.498108f, 0.43209f, 0.344609f, 0.928941f, -0.130732f, -0.0569167f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.285357f, 0.00181194f, 0.453967f, -0.160473f, 0.133146f, 0.125066f, 0.695562f, 0.406415f, 0.612903f, -0.796108f, -0.221201f, 0.272369f, -0.181291f, -0.0199411f, 0.679734f, 0.729573f, 0.22086f, 0.0192072f, -0.0467102f, -0.436349f, 0.790771f, -0.0121533f, -0.102724f, -0.281631f, 0.146536f, -0.0437044f, -0.643831f, -0.125283f, -0.392138f, 0.223089f, -0.893282f, -0.16027f, -0.22558f, -0.338964f, -0.393444f, 0.447179f, 0.0027382f, 0.0600548f, 0.5614f, 0.308335f, -0.395642f, -0.232637f, -0.317546f, -0.0137323f, 0.0275952f, -0.571289f, 0.0347555f, 0.609347f, -0.446445f, 0.27283f, 0.485148f, -0.602337f, -0.250224f, 0.551432f, 0.923353f, 0.360036f, -0.394563f, -0.64193f, -0.18673f, 0.796443f, 0.266929f, 0.421638f, -0.44727f, 0.926579f, -0.22563f, 0.663612f, -0.295051f, 0.44308f, -0.680228f, 0.36995f, 0.376663f, 0.654893f, 0.289675f, 0.107439f, -0.673064f, 0.0995729f, 0.213019f, 0.18728f, -0.525372f, 0.449116f, -0.778254f, 0.82822f, 0.450766f, 0.24037f, 0.691436f, -0.357748f, 0.3905f, 0.570203f, 0.111496f, -0.553228f, 0.457363f, 0.149417f, -0.769431f, -0.470166f, -0.271529f, -0.349652f, 0.773931f, -0.135924f, 0.406866f, 0.426256f, -0.335963f, 0.680992f, -0.936889f, -3.52306e-05f, 0.575398f, 0.509084f, 0.16487f, -0.657185f, -0.321545f, -0.338165f, -0.335108f, 0.902524f, 0.133092f, -0.790369f, 0.676731f, 0.46084f, 0.489389f, 0.66835f, -0.231156f, 0.0692682f, -0.0377757f, -0.139746f, 0.105297f, 0.938753f, -0.403865f, -0.222446f, 0.45314f, 0.119956f, -0.388121f, 0.26389f, 0.27597f, 0.679432f, 0.700873f, 0.0910737f, 0.213449f, 0.0917136f, 0.0842865f, -0.0367311f, 0.214628f, 0.188827f, -0.243133f, 0.898085f, -0.271172f, 0.139627f, -0.319151f, -0.00811307f, 0.522665f, -0.459861f, -0.424081f, -0.19957f, 0.494902f, -0.169442f, -0.0407964f, -0.629691f, -0.462826f, -0.567803f, 0.453167f, 0.0473601f, 0.562038f, 0.152508f, 0.316812f, 0.582181f, 0.637157f, 0.190546f, -0.556541f, -0.860239f, -0.106728f, 0.616123f, -0.746842f, -0.0255713f, -0.453518f, -0.886067f, 0.418399f, 0.577391f, -0.467784f, -0.05079f, -0.685036f, -0.462692f, 0.460047f, -0.318271f, 0.708224f, -0.351821f, -0.364416f, 0.0954479f, -0.0586282f, -0.0894044f, 0.481278f, -0.201991f, -0.283279f, -0.897555f, 0.0611137f, 0.0467872f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float.example.cpp
new file mode 100644
index 000000000..be9dc5101
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: depthwise_conv2d_float.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {10, 21, 10, 22, 10, 23, 10, 24, 10, 25, 10, 26, 10, 27, 10, 28, 10, 29}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {11, 3, 7.2f, 10.6f, 11, 3, 7.4f, 10.9f, 11, 3, 7.8f, 11.5f, 11, 3, 8.0f, 11.8f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_2.example.cpp
new file mode 100644
index 000000000..928329e33
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: depthwise_conv2d_float_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1, 2, 7, 8, 3, 4, 9, 10, 5, 6, 11, 12}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {71, -34, 99, -20, 91, -26, 127, -4}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_large.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_large.example.cpp
new file mode 100644
index 000000000..074682608
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_large.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: depthwise_conv2d_float_large.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {10, 21, 10, 22, 10, 23, 10, 24}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {110, 246}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_large_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_large_2.example.cpp
new file mode 100644
index 000000000..5716a17af
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_large_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: depthwise_conv2d_float_large_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {10, 21, 100, 0, 10, 22, 200, 0, 10, 23, 300, 0, 10, 24, 400, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {600010, 700046, 830000, 900000}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_large_2_weights_as_inputs.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_large_2_weights_as_inputs.example.cpp
new file mode 100644
index 000000000..9b097ac2d
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_large_2_weights_as_inputs.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: depthwise_conv2d_float_large_2_weights_as_inputs.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {10, 21, 100, 10, 22, 200, 10, 23, 300, 10, 24, 400}}, {1, {0.25f, 0, 10, 100, 0.25f, 1, 20, 100, 0.25f, 0, 30, 100, 0.25f, 1, 40, 100}}, {2, {600000, 700000, 800000, 900000}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {600010, 700046, 830000, 900000}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_large_weights_as_inputs.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_large_weights_as_inputs.example.cpp
new file mode 100644
index 000000000..410b1a397
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_large_weights_as_inputs.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: depthwise_conv2d_float_large_weights_as_inputs.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {10, 21, 10, 22, 10, 23, 10, 24}}, {1, {0.25f, 0, 0.25f, 1, 0.25f, 0, 0.25f, 1}}, {2, {100, 200}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {110, 246}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_weights_as_inputs.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_weights_as_inputs.example.cpp
new file mode 100644
index 000000000..6731073fa
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_float_weights_as_inputs.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: depthwise_conv2d_float_weights_as_inputs.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {10, 21, 10, 22, 10, 23, 10, 24, 10, 25, 10, 26, 10, 27, 10, 28, 10, 29}}, {1, {0.25f, 0, 0.2f, 0, 0.25f, 0, 0, 0.3f, 0.25f, 0, 0, 0, 0.25f, 0.1f, 0, 0}}, {2, {1, 2, 3, 4}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {11, 3, 7.2f, 10.6f, 11, 3, 7.4f, 10.9f, 11, 3, 7.8f, 11.5f, 11, 3, 8.0f, 11.8f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_quant8.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_quant8.example.cpp
new file mode 100644
index 000000000..1079fda6d
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_quant8.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: depthwise_conv2d_quant8.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {4, 16, 4, 32, 4, 64, 4, 128}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {8, 48}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_quant8_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_quant8_2.example.cpp
new file mode 100644
index 000000000..41159326b
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_quant8_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: depthwise_conv2d_quant8_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {129, 131, 141, 143, 133, 135, 145, 147, 137, 139, 149, 151}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {198, 93, 226, 107, 218, 101, 254, 123}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_quant8_large.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_quant8_large.example.cpp
new file mode 100644
index 000000000..d8bab860c
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_quant8_large.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: depthwise_conv2d_quant8_large.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {4, 16, 4, 32, 4, 64, 4, 128}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {8, 48}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_quant8_large_weights_as_inputs.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_quant8_large_weights_as_inputs.example.cpp
new file mode 100644
index 000000000..4b3905c34
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_quant8_large_weights_as_inputs.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: depthwise_conv2d_quant8_large_weights_as_inputs.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {{2, {0, 0}}},
+ // int -> QUANT8_ASYMM map
+ {{0, {4, 16, 4, 32, 4, 64, 4, 128}}, {1, {2, 4, 2, 0, 2, 2, 2, 0}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {8, 48}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_quant8_weights_as_inputs.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_quant8_weights_as_inputs.example.cpp
new file mode 100644
index 000000000..b8094ca10
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/depthwise_conv2d_quant8_weights_as_inputs.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: depthwise_conv2d_quant8_weights_as_inputs.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {{2, {0, 0}}},
+ // int -> QUANT8_ASYMM map
+ {{0, {4, 16, 4, 32, 4, 64, 4, 128}}, {1, {2, 4, 2, 0, 2, 2, 2, 0}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {8, 48}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/dequantize.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/dequantize.example.cpp
new file mode 100644
index 000000000..c4648f6dd
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/dequantize.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: dequantize.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 32, 128, 255}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.0f, 32.0f, 128.0f, 255.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/embedding_lookup.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/embedding_lookup.example.cpp
new file mode 100644
index 000000000..254d6f707
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/embedding_lookup.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: embedding_lookup.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{1, {0.0f, 0.01f, 0.02f, 0.03f, 0.1f, 0.11f, 0.12000000000000001f, 0.13f, 1.0f, 1.01f, 1.02f, 1.03f, 1.1f, 1.11f, 1.12f, 1.1300000000000001f, 2.0f, 2.01f, 2.02f, 2.03f, 2.1f, 2.11f, 2.12f, 2.13f}}},
+ // int -> INT32 map
+ {{0, {1, 0, 2}}},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 1.01f, 1.02f, 1.03f, 1.1f, 1.11f, 1.12f, 1.13f, 0.0f, 0.01f, 0.02f, 0.03f, 0.1f, 0.11f, 0.12f, 0.13f, 2.0f, 2.01f, 2.02f, 2.03f, 2.1f, 2.11f, 2.12f, 2.13f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/floor.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/floor.example.cpp
new file mode 100644
index 000000000..f15d98488
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/floor.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: floor.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-1.5f, -1.0f, -0.5f, 0.0f, 0.5f, 1.0f, 1.5f, 10.2f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-2.0f, -1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 10}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/fully_connected_float.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/fully_connected_float.example.cpp
new file mode 100644
index 000000000..4af8806ec
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/fully_connected_float.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: fully_connected_float.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {2, 32, 16}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {8, 68, 36}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/fully_connected_float_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/fully_connected_float_2.example.cpp
new file mode 100644
index 000000000..504a345a2
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/fully_connected_float_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: fully_connected_float_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.503691f, 0.196961f, 0.521017f, 0.554248f, 0.288678f, 0.792476f, 0.561653f, 0.46223f, 0.650736f, 0.163132f, 0.029658f, 0.411544f, 0.470539f, 0.57239f, 0.538755f, 0.21203f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0, 0.0732134f, 0, 0, 0, 0.280859f, 0, 0.128927f, 0, 0.0777251f, 0, 0.270268f, 0.271435f, 0.0173503f, 0.335465f, 0.235562f, 0, 0.0745866f, 0, 0.051611f, 0, 0.253876f, 0, 0.0814873f, 0, 0.104104f, 0, 0.248529f, 0.264194f, 0, 0.302973f, 0.166252f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/fully_connected_float_large.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/fully_connected_float_large.example.cpp
new file mode 100644
index 000000000..3ad2caa75
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/fully_connected_float_large.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: fully_connected_float_large.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1, 10, 100, 1000, 10000}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {965432}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/fully_connected_float_large_weights_as_inputs.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/fully_connected_float_large_weights_as_inputs.example.cpp
new file mode 100644
index 000000000..fdc7db12a
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/fully_connected_float_large_weights_as_inputs.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: fully_connected_float_large_weights_as_inputs.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1, 10, 100, 1000, 10000}}, {1, {2, 3, 4, 5, 6}}, {2, {900000}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {965432}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/fully_connected_float_weights_as_inputs.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/fully_connected_float_weights_as_inputs.example.cpp
new file mode 100644
index 000000000..83c552798
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/fully_connected_float_weights_as_inputs.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: fully_connected_float_weights_as_inputs.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {2, 32, 16}}, {1, {2}}, {2, {4}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {8, 68, 36}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/fully_connected_quant8.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/fully_connected_quant8.example.cpp
new file mode 100644
index 000000000..18d2098e1
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/fully_connected_quant8.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: fully_connected_quant8.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {2, 32, 16}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {2, 17, 9}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/fully_connected_quant8_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/fully_connected_quant8_2.example.cpp
new file mode 100644
index 000000000..978cdcb0f
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/fully_connected_quant8_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: fully_connected_quant8_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {129, 131, 133, 135, 137, 139, 141, 143, 109, 107, 129, 131, 133, 135, 137, 139, 141, 111, 145, 107}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {151, 152, 153, 185, 186, 187}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/fully_connected_quant8_large.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/fully_connected_quant8_large.example.cpp
new file mode 100644
index 000000000..c9a5aa196
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/fully_connected_quant8_large.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: fully_connected_quant8_large.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {10, 10, 10, 10, 10}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {32}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/fully_connected_quant8_large_weights_as_inputs.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/fully_connected_quant8_large_weights_as_inputs.example.cpp
new file mode 100644
index 000000000..14bd00d7c
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/fully_connected_quant8_large_weights_as_inputs.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: fully_connected_quant8_large_weights_as_inputs.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {{2, {10}}},
+ // int -> QUANT8_ASYMM map
+ {{0, {10, 10, 10, 10, 10}}, {1, {10, 20, 20, 20, 10}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {32}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/fully_connected_quant8_weights_as_inputs.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/fully_connected_quant8_weights_as_inputs.example.cpp
new file mode 100644
index 000000000..3aca9fdd2
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/fully_connected_quant8_weights_as_inputs.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: fully_connected_quant8_weights_as_inputs.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {{2, {4}}},
+ // int -> QUANT8_ASYMM map
+ {{0, {2, 32, 16}}, {1, {2}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {2, 17, 9}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/hashtable_lookup_float.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/hashtable_lookup_float.example.cpp
new file mode 100644
index 000000000..cc52e107d
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/hashtable_lookup_float.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: hashtable_lookup_float.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{2, {0.0f, 0.1f, 1.0f, 1.1f, 2.0f, 2.1f}}},
+ // int -> INT32 map
+ {{0, {1234, -292, -11, 0}}, {1, {-11, 0, 1234}}},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {2.0f, 2.1f, 0, 0, 0.0f, 0.1f, 1.0f, 1.1f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{1, {1, 0, 1, 1}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/hashtable_lookup_quant8.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/hashtable_lookup_quant8.example.cpp
new file mode 100644
index 000000000..b382dc889
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/hashtable_lookup_quant8.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: hashtable_lookup_quant8.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {{0, {123, 250, 255, 0}}, {1, {0, 123, 255}}},
+ // int -> QUANT8_ASYMM map
+ {{2, {0, 1, 10, 11, 20, 21}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {10, 11, 0, 0, 20, 21, 0, 1}}, {1, {1, 0, 1, 1}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/l2_normalization.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/l2_normalization.example.cpp
new file mode 100644
index 000000000..d23945bf5
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/l2_normalization.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: l2_normalization.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0, 3, 4}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0, 0.6f, 0.8f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/l2_normalization_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/l2_normalization_2.example.cpp
new file mode 100644
index 000000000..5975a93f5
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/l2_normalization_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: l2_normalization_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-1.1f, 0.6f, 0.7f, 1.2f, -0.7f, 0.1f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.55f, 0.3f, 0.35f, 0.6f, -0.35f, 0.05f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/l2_normalization_large.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/l2_normalization_large.example.cpp
new file mode 100644
index 000000000..d8f2e37b5
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/l2_normalization_large.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: l2_normalization_large.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0, 3, 4, 0, 5, 12, 0, 8, 15, 0, 7, 24}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0, 0.6f, 0.8f, 0, 0.38461539149284363f, 0.9230769872665405f, 0, 0.47058823704719543f, 0.8823529481887817f, 0, 0.28f, 0.96f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/l2_pool_float.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/l2_pool_float.example.cpp
new file mode 100644
index 000000000..64ed8e176
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/l2_pool_float.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: l2_pool_float.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 2.0f, 3.0f, 4.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 2.0f, 3.0f, 4.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/l2_pool_float_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/l2_pool_float_2.example.cpp
new file mode 100644
index 000000000..9a5ae1dd7
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/l2_pool_float_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: l2_pool_float_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0, 6, 2, 4, 3, 2, 10, 7}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {3.5f, 6.5f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/l2_pool_float_large.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/l2_pool_float_large.example.cpp
new file mode 100644
index 000000000..80ab993fd
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/l2_pool_float_large.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: l2_pool_float_large.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {6.442049503326416f, 7.314369201660156f, 8.215838432312012f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/local_response_norm_float_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/local_response_norm_float_1.example.cpp
new file mode 100644
index 000000000..25f7590c1
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/local_response_norm_float_1.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: local_response_norm_float_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-1.1f, 0.6f, 0.7f, 1.2f, -0.7f, 0.1f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.22f, 0.12f, 0.14f, 0.24f, -0.14f, 0.02f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/local_response_norm_float_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/local_response_norm_float_2.example.cpp
new file mode 100644
index 000000000..bef5e6bd3
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/local_response_norm_float_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: local_response_norm_float_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-1.1f, 0.6f, 0.7f, 1.2f, -0.7f, 0.1f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.55f, 0.3f, 0.35f, 0.6f, -0.35f, 0.05f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/local_response_norm_float_3.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/local_response_norm_float_3.example.cpp
new file mode 100644
index 000000000..210d6e80a
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/local_response_norm_float_3.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: local_response_norm_float_3.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-1.1f, 0.6f, 0.7f, 1.2f, -0.7f, 0.1f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.275f, 0.15f, 0.175f, 0.3f, -0.175f, 0.025f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/local_response_norm_float_4.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/local_response_norm_float_4.example.cpp
new file mode 100644
index 000000000..6cdb818cf
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/local_response_norm_float_4.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: local_response_norm_float_4.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-1.1f, 0.6f, 0.7f, 1.2f, -0.7f, 0.1f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.26492569f, 0.12510864f, 0.14011213f, 0.26726127f, -0.16178755f, 0.0244266f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/logistic_float_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/logistic_float_1.example.cpp
new file mode 100644
index 000000000..09fb28ee3
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/logistic_float_1.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: logistic_float_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 2.0f, 4.0f, 8.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.7310585975646973f, 0.8807970285415649f, 0.9820137619972229f, 0.9996646642684937f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/logistic_float_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/logistic_float_2.example.cpp
new file mode 100644
index 000000000..7cb4f255a
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/logistic_float_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: logistic_float_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.0f, 1.0f, 510.0f, 3.0f, 508.0f, 5.0f, 506.0f, 7.0f, 504.0f, 9.0f, 502.0f, 11.0f, 500.0f, 13.0f, 498.0f, 15.0f, 496.0f, 17.0f, 494.0f, 19.0f, 492.0f, 21.0f, 490.0f, 23.0f, 488.0f, 25.0f, 486.0f, 27.0f, 484.0f, 29.0f, 482.0f, 31.0f, 480.0f, 33.0f, 478.0f, 35.0f, 476.0f, 37.0f, 474.0f, 39.0f, 472.0f, 41.0f, 470.0f, 43.0f, 468.0f, 45.0f, 466.0f, 47.0f, 464.0f, 49.0f, 462.0f, 51.0f, 460.0f, 53.0f, 458.0f, 55.0f, 456.0f, 57.0f, 454.0f, 59.0f, 452.0f, 61.0f, 450.0f, 63.0f, 448.0f, 65.0f, 446.0f, 67.0f, 444.0f, 69.0f, 442.0f, 71.0f, 440.0f, 73.0f, 438.0f, 75.0f, 436.0f, 77.0f, 434.0f, 79.0f, 432.0f, 81.0f, 430.0f, 83.0f, 428.0f, 85.0f, 426.0f, 87.0f, 424.0f, 89.0f, 422.0f, 91.0f, 420.0f, 93.0f, 418.0f, 95.0f, 416.0f, 97.0f, 414.0f, 99.0f, 412.0f, 101.0f, 410.0f, 103.0f, 408.0f, 105.0f, 406.0f, 107.0f, 404.0f, 109.0f, 402.0f, 111.0f, 400.0f, 113.0f, 398.0f, 115.0f, 396.0f, 117.0f, 394.0f, 119.0f, 392.0f, 121.0f, 390.0f, 123.0f, 388.0f, 125.0f, 386.0f, 127.0f, 384.0f, 129.0f, 382.0f, 131.0f, 380.0f, 133.0f, 378.0f, 135.0f, 376.0f, 137.0f, 374.0f, 139.0f, 372.0f, 141.0f, 370.0f, 143.0f, 368.0f, 145.0f, 366.0f, 147.0f, 364.0f, 149.0f, 362.0f, 151.0f, 360.0f, 153.0f, 358.0f, 155.0f, 356.0f, 157.0f, 354.0f, 159.0f, 352.0f, 161.0f, 350.0f, 163.0f, 348.0f, 165.0f, 346.0f, 167.0f, 344.0f, 169.0f, 342.0f, 171.0f, 340.0f, 173.0f, 338.0f, 175.0f, 336.0f, 177.0f, 334.0f, 179.0f, 332.0f, 181.0f, 330.0f, 183.0f, 328.0f, 185.0f, 326.0f, 187.0f, 324.0f, 189.0f, 322.0f, 191.0f, 320.0f, 193.0f, 318.0f, 195.0f, 316.0f, 197.0f, 314.0f, 199.0f, 312.0f, 201.0f, 310.0f, 203.0f, 308.0f, 205.0f, 306.0f, 207.0f, 304.0f, 209.0f, 302.0f, 211.0f, 300.0f, 213.0f, 298.0f, 215.0f, 296.0f, 217.0f, 294.0f, 219.0f, 292.0f, 221.0f, 290.0f, 223.0f, 288.0f, 225.0f, 286.0f, 227.0f, 284.0f, 229.0f, 282.0f, 231.0f, 280.0f, 233.0f, 278.0f, 235.0f, 276.0f, 237.0f, 274.0f, 239.0f, 272.0f, 241.0f, 270.0f, 243.0f, 268.0f, 245.0f, 266.0f, 247.0f, 264.0f, 249.0f, 262.0f, 251.0f, 260.0f, 253.0f, 258.0f, 255.0f, 256.0f, 257.0f, 254.0f, 259.0f, 252.0f, 261.0f, 250.0f, 263.0f, 248.0f, 265.0f, 246.0f, 267.0f, 244.0f, 269.0f, 242.0f, 271.0f, 240.0f, 273.0f, 238.0f, 275.0f, 236.0f, 277.0f, 234.0f, 279.0f, 232.0f, 281.0f, 230.0f, 283.0f, 228.0f, 285.0f, 226.0f, 287.0f, 224.0f, 289.0f, 222.0f, 291.0f, 220.0f, 293.0f, 218.0f, 295.0f, 216.0f, 297.0f, 214.0f, 299.0f, 212.0f, 301.0f, 210.0f, 303.0f, 208.0f, 305.0f, 206.0f, 307.0f, 204.0f, 309.0f, 202.0f, 311.0f, 200.0f, 313.0f, 198.0f, 315.0f, 196.0f, 317.0f, 194.0f, 319.0f, 192.0f, 321.0f, 190.0f, 323.0f, 188.0f, 325.0f, 186.0f, 327.0f, 184.0f, 329.0f, 182.0f, 331.0f, 180.0f, 333.0f, 178.0f, 335.0f, 176.0f, 337.0f, 174.0f, 339.0f, 172.0f, 341.0f, 170.0f, 343.0f, 168.0f, 345.0f, 166.0f, 347.0f, 164.0f, 349.0f, 162.0f, 351.0f, 160.0f, 353.0f, 158.0f, 355.0f, 156.0f, 357.0f, 154.0f, 359.0f, 152.0f, 361.0f, 150.0f, 363.0f, 148.0f, 365.0f, 146.0f, 367.0f, 144.0f, 369.0f, 142.0f, 371.0f, 140.0f, 373.0f, 138.0f, 375.0f, 136.0f, 377.0f, 134.0f, 379.0f, 132.0f, 381.0f, 130.0f, 383.0f, 128.0f, 385.0f, 126.0f, 387.0f, 124.0f, 389.0f, 122.0f, 391.0f, 120.0f, 393.0f, 118.0f, 395.0f, 116.0f, 397.0f, 114.0f, 399.0f, 112.0f, 401.0f, 110.0f, 403.0f, 108.0f, 405.0f, 106.0f, 407.0f, 104.0f, 409.0f, 102.0f, 411.0f, 100.0f, 413.0f, 98.0f, 415.0f, 96.0f, 417.0f, 94.0f, 419.0f, 92.0f, 421.0f, 90.0f, 423.0f, 88.0f, 425.0f, 86.0f, 427.0f, 84.0f, 429.0f, 82.0f, 431.0f, 80.0f, 433.0f, 78.0f, 435.0f, 76.0f, 437.0f, 74.0f, 439.0f, 72.0f, 441.0f, 70.0f, 443.0f, 68.0f, 445.0f, 66.0f, 447.0f, 64.0f, 449.0f, 62.0f, 451.0f, 60.0f, 453.0f, 58.0f, 455.0f, 56.0f, 457.0f, 54.0f, 459.0f, 52.0f, 461.0f, 50.0f, 463.0f, 48.0f, 465.0f, 46.0f, 467.0f, 44.0f, 469.0f, 42.0f, 471.0f, 40.0f, 473.0f, 38.0f, 475.0f, 36.0f, 477.0f, 34.0f, 479.0f, 32.0f, 481.0f, 30.0f, 483.0f, 28.0f, 485.0f, 26.0f, 487.0f, 24.0f, 489.0f, 22.0f, 491.0f, 20.0f, 493.0f, 18.0f, 495.0f, 16.0f, 497.0f, 14.0f, 499.0f, 12.0f, 501.0f, 10.0f, 503.0f, 8.0f, 505.0f, 6.0f, 507.0f, 4.0f, 509.0f, 2.0f, 511.0f, 0.0f, 1.0f, 510.0f, 3.0f, 508.0f, 5.0f, 506.0f, 7.0f, 504.0f, 9.0f, 502.0f, 11.0f, 500.0f, 13.0f, 498.0f, 15.0f, 496.0f, 17.0f, 494.0f, 19.0f, 492.0f, 21.0f, 490.0f, 23.0f, 488.0f, 25.0f, 486.0f, 27.0f, 484.0f, 29.0f, 482.0f, 31.0f, 480.0f, 33.0f, 478.0f, 35.0f, 476.0f, 37.0f, 474.0f, 39.0f, 472.0f, 41.0f, 470.0f, 43.0f, 468.0f, 45.0f, 466.0f, 47.0f, 464.0f, 49.0f, 462.0f, 51.0f, 460.0f, 53.0f, 458.0f, 55.0f, 456.0f, 57.0f, 454.0f, 59.0f, 452.0f, 61.0f, 450.0f, 63.0f, 448.0f, 65.0f, 446.0f, 67.0f, 444.0f, 69.0f, 442.0f, 71.0f, 440.0f, 73.0f, 438.0f, 75.0f, 436.0f, 77.0f, 434.0f, 79.0f, 432.0f, 81.0f, 430.0f, 83.0f, 428.0f, 85.0f, 426.0f, 87.0f, 424.0f, 89.0f, 422.0f, 91.0f, 420.0f, 93.0f, 418.0f, 95.0f, 416.0f, 97.0f, 414.0f, 99.0f, 412.0f, 101.0f, 410.0f, 103.0f, 408.0f, 105.0f, 406.0f, 107.0f, 404.0f, 109.0f, 402.0f, 111.0f, 400.0f, 113.0f, 398.0f, 115.0f, 396.0f, 117.0f, 394.0f, 119.0f, 392.0f, 121.0f, 390.0f, 123.0f, 388.0f, 125.0f, 386.0f, 127.0f, 384.0f, 129.0f, 382.0f, 131.0f, 380.0f, 133.0f, 378.0f, 135.0f, 376.0f, 137.0f, 374.0f, 139.0f, 372.0f, 141.0f, 370.0f, 143.0f, 368.0f, 145.0f, 366.0f, 147.0f, 364.0f, 149.0f, 362.0f, 151.0f, 360.0f, 153.0f, 358.0f, 155.0f, 356.0f, 157.0f, 354.0f, 159.0f, 352.0f, 161.0f, 350.0f, 163.0f, 348.0f, 165.0f, 346.0f, 167.0f, 344.0f, 169.0f, 342.0f, 171.0f, 340.0f, 173.0f, 338.0f, 175.0f, 336.0f, 177.0f, 334.0f, 179.0f, 332.0f, 181.0f, 330.0f, 183.0f, 328.0f, 185.0f, 326.0f, 187.0f, 324.0f, 189.0f, 322.0f, 191.0f, 320.0f, 193.0f, 318.0f, 195.0f, 316.0f, 197.0f, 314.0f, 199.0f, 312.0f, 201.0f, 310.0f, 203.0f, 308.0f, 205.0f, 306.0f, 207.0f, 304.0f, 209.0f, 302.0f, 211.0f, 300.0f, 213.0f, 298.0f, 215.0f, 296.0f, 217.0f, 294.0f, 219.0f, 292.0f, 221.0f, 290.0f, 223.0f, 288.0f, 225.0f, 286.0f, 227.0f, 284.0f, 229.0f, 282.0f, 231.0f, 280.0f, 233.0f, 278.0f, 235.0f, 276.0f, 237.0f, 274.0f, 239.0f, 272.0f, 241.0f, 270.0f, 243.0f, 268.0f, 245.0f, 266.0f, 247.0f, 264.0f, 249.0f, 262.0f, 251.0f, 260.0f, 253.0f, 258.0f, 255.0f, 256.0f, 257.0f, 254.0f, 259.0f, 252.0f, 261.0f, 250.0f, 263.0f, 248.0f, 265.0f, 246.0f, 267.0f, 244.0f, 269.0f, 242.0f, 271.0f, 240.0f, 273.0f, 238.0f, 275.0f, 236.0f, 277.0f, 234.0f, 279.0f, 232.0f, 281.0f, 230.0f, 283.0f, 228.0f, 285.0f, 226.0f, 287.0f, 224.0f, 289.0f, 222.0f, 291.0f, 220.0f, 293.0f, 218.0f, 295.0f, 216.0f, 297.0f, 214.0f, 299.0f, 212.0f, 301.0f, 210.0f, 303.0f, 208.0f, 305.0f, 206.0f, 307.0f, 204.0f, 309.0f, 202.0f, 311.0f, 200.0f, 313.0f, 198.0f, 315.0f, 196.0f, 317.0f, 194.0f, 319.0f, 192.0f, 321.0f, 190.0f, 323.0f, 188.0f, 325.0f, 186.0f, 327.0f, 184.0f, 329.0f, 182.0f, 331.0f, 180.0f, 333.0f, 178.0f, 335.0f, 176.0f, 337.0f, 174.0f, 339.0f, 172.0f, 341.0f, 170.0f, 343.0f, 168.0f, 345.0f, 166.0f, 347.0f, 164.0f, 349.0f, 162.0f, 351.0f, 160.0f, 353.0f, 158.0f, 355.0f, 156.0f, 357.0f, 154.0f, 359.0f, 152.0f, 361.0f, 150.0f, 363.0f, 148.0f, 365.0f, 146.0f, 367.0f, 144.0f, 369.0f, 142.0f, 371.0f, 140.0f, 373.0f, 138.0f, 375.0f, 136.0f, 377.0f, 134.0f, 379.0f, 132.0f, 381.0f, 130.0f, 383.0f, 128.0f, 385.0f, 126.0f, 387.0f, 124.0f, 389.0f, 122.0f, 391.0f, 120.0f, 393.0f, 118.0f, 395.0f, 116.0f, 397.0f, 114.0f, 399.0f, 112.0f, 401.0f, 110.0f, 403.0f, 108.0f, 405.0f, 106.0f, 407.0f, 104.0f, 409.0f, 102.0f, 411.0f, 100.0f, 413.0f, 98.0f, 415.0f, 96.0f, 417.0f, 94.0f, 419.0f, 92.0f, 421.0f, 90.0f, 423.0f, 88.0f, 425.0f, 86.0f, 427.0f, 84.0f, 429.0f, 82.0f, 431.0f, 80.0f, 433.0f, 78.0f, 435.0f, 76.0f, 437.0f, 74.0f, 439.0f, 72.0f, 441.0f, 70.0f, 443.0f, 68.0f, 445.0f, 66.0f, 447.0f, 64.0f, 449.0f, 62.0f, 451.0f, 60.0f, 453.0f, 58.0f, 455.0f, 56.0f, 457.0f, 54.0f, 459.0f, 52.0f, 461.0f, 50.0f, 463.0f, 48.0f, 465.0f, 46.0f, 467.0f, 44.0f, 469.0f, 42.0f, 471.0f, 40.0f, 473.0f, 38.0f, 475.0f, 36.0f, 477.0f, 34.0f, 479.0f, 32.0f, 481.0f, 30.0f, 483.0f, 28.0f, 485.0f, 26.0f, 487.0f, 24.0f, 489.0f, 22.0f, 491.0f, 20.0f, 493.0f, 18.0f, 495.0f, 16.0f, 497.0f, 14.0f, 499.0f, 12.0f, 501.0f, 10.0f, 503.0f, 8.0f, 505.0f, 6.0f, 507.0f, 4.0f, 509.0f, 2.0f, 511.0f, 0.0f, 1.0f, 510.0f, 3.0f, 508.0f, 5.0f, 506.0f, 7.0f, 504.0f, 9.0f, 502.0f, 11.0f, 500.0f, 13.0f, 498.0f, 15.0f, 496.0f, 17.0f, 494.0f, 19.0f, 492.0f, 21.0f, 490.0f, 23.0f, 488.0f, 25.0f, 486.0f, 27.0f, 484.0f, 29.0f, 482.0f, 31.0f, 480.0f, 33.0f, 478.0f, 35.0f, 476.0f, 37.0f, 474.0f, 39.0f, 472.0f, 41.0f, 470.0f, 43.0f, 468.0f, 45.0f, 466.0f, 47.0f, 464.0f, 49.0f, 462.0f, 51.0f, 460.0f, 53.0f, 458.0f, 55.0f, 456.0f, 57.0f, 454.0f, 59.0f, 452.0f, 61.0f, 450.0f, 63.0f, 448.0f, 65.0f, 446.0f, 67.0f, 444.0f, 69.0f, 442.0f, 71.0f, 440.0f, 73.0f, 438.0f, 75.0f, 436.0f, 77.0f, 434.0f, 79.0f, 432.0f, 81.0f, 430.0f, 83.0f, 428.0f, 85.0f, 426.0f, 87.0f, 424.0f, 89.0f, 422.0f, 91.0f, 420.0f, 93.0f, 418.0f, 95.0f, 416.0f, 97.0f, 414.0f, 99.0f, 412.0f, 101.0f, 410.0f, 103.0f, 408.0f, 105.0f, 406.0f, 107.0f, 404.0f, 109.0f, 402.0f, 111.0f, 400.0f, 113.0f, 398.0f, 115.0f, 396.0f, 117.0f, 394.0f, 119.0f, 392.0f, 121.0f, 390.0f, 123.0f, 388.0f, 125.0f, 386.0f, 127.0f, 384.0f, 129.0f, 382.0f, 131.0f, 380.0f, 133.0f, 378.0f, 135.0f, 376.0f, 137.0f, 374.0f, 139.0f, 372.0f, 141.0f, 370.0f, 143.0f, 368.0f, 145.0f, 366.0f, 147.0f, 364.0f, 149.0f, 362.0f, 151.0f, 360.0f, 153.0f, 358.0f, 155.0f, 356.0f, 157.0f, 354.0f, 159.0f, 352.0f, 161.0f, 350.0f, 163.0f, 348.0f, 165.0f, 346.0f, 167.0f, 344.0f, 169.0f, 342.0f, 171.0f, 340.0f, 173.0f, 338.0f, 175.0f, 336.0f, 177.0f, 334.0f, 179.0f, 332.0f, 181.0f, 330.0f, 183.0f, 328.0f, 185.0f, 326.0f, 187.0f, 324.0f, 189.0f, 322.0f, 191.0f, 320.0f, 193.0f, 318.0f, 195.0f, 316.0f, 197.0f, 314.0f, 199.0f, 312.0f, 201.0f, 310.0f, 203.0f, 308.0f, 205.0f, 306.0f, 207.0f, 304.0f, 209.0f, 302.0f, 211.0f, 300.0f, 213.0f, 298.0f, 215.0f, 296.0f, 217.0f, 294.0f, 219.0f, 292.0f, 221.0f, 290.0f, 223.0f, 288.0f, 225.0f, 286.0f, 227.0f, 284.0f, 229.0f, 282.0f, 231.0f, 280.0f, 233.0f, 278.0f, 235.0f, 276.0f, 237.0f, 274.0f, 239.0f, 272.0f, 241.0f, 270.0f, 243.0f, 268.0f, 245.0f, 266.0f, 247.0f, 264.0f, 249.0f, 262.0f, 251.0f, 260.0f, 253.0f, 258.0f, 255.0f, 256.0f, 257.0f, 254.0f, 259.0f, 252.0f, 261.0f, 250.0f, 263.0f, 248.0f, 265.0f, 246.0f, 267.0f, 244.0f, 269.0f, 242.0f, 271.0f, 240.0f, 273.0f, 238.0f, 275.0f, 236.0f, 277.0f, 234.0f, 279.0f, 232.0f, 281.0f, 230.0f, 283.0f, 228.0f, 285.0f, 226.0f, 287.0f, 224.0f, 289.0f, 222.0f, 291.0f, 220.0f, 293.0f, 218.0f, 295.0f, 216.0f, 297.0f, 214.0f, 299.0f, 212.0f, 301.0f, 210.0f, 303.0f, 208.0f, 305.0f, 206.0f, 307.0f, 204.0f, 309.0f, 202.0f, 311.0f, 200.0f, 313.0f, 198.0f, 315.0f, 196.0f, 317.0f, 194.0f, 319.0f, 192.0f, 321.0f, 190.0f, 323.0f, 188.0f, 325.0f, 186.0f, 327.0f, 184.0f, 329.0f, 182.0f, 331.0f, 180.0f, 333.0f, 178.0f, 335.0f, 176.0f, 337.0f, 174.0f, 339.0f, 172.0f, 341.0f, 170.0f, 343.0f, 168.0f, 345.0f, 166.0f, 347.0f, 164.0f, 349.0f, 162.0f, 351.0f, 160.0f, 353.0f, 158.0f, 355.0f, 156.0f, 357.0f, 154.0f, 359.0f, 152.0f, 361.0f, 150.0f, 363.0f, 148.0f, 365.0f, 146.0f, 367.0f, 144.0f, 369.0f, 142.0f, 371.0f, 140.0f, 373.0f, 138.0f, 375.0f, 136.0f, 377.0f, 134.0f, 379.0f, 132.0f, 381.0f, 130.0f, 383.0f, 128.0f, 385.0f, 126.0f, 387.0f, 124.0f, 389.0f, 122.0f, 391.0f, 120.0f, 393.0f, 118.0f, 395.0f, 116.0f, 397.0f, 114.0f, 399.0f, 112.0f, 401.0f, 110.0f, 403.0f, 108.0f, 405.0f, 106.0f, 407.0f, 104.0f, 409.0f, 102.0f, 411.0f, 100.0f, 413.0f, 98.0f, 415.0f, 96.0f, 417.0f, 94.0f, 419.0f, 92.0f, 421.0f, 90.0f, 423.0f, 88.0f, 425.0f, 86.0f, 427.0f, 84.0f, 429.0f, 82.0f, 431.0f, 80.0f, 433.0f, 78.0f, 435.0f, 76.0f, 437.0f, 74.0f, 439.0f, 72.0f, 441.0f, 70.0f, 443.0f, 68.0f, 445.0f, 66.0f, 447.0f, 64.0f, 449.0f, 62.0f, 451.0f, 60.0f, 453.0f, 58.0f, 455.0f, 56.0f, 457.0f, 54.0f, 459.0f, 52.0f, 461.0f, 50.0f, 463.0f, 48.0f, 465.0f, 46.0f, 467.0f, 44.0f, 469.0f, 42.0f, 471.0f, 40.0f, 473.0f, 38.0f, 475.0f, 36.0f, 477.0f, 34.0f, 479.0f, 32.0f, 481.0f, 30.0f, 483.0f, 28.0f, 485.0f, 26.0f, 487.0f, 24.0f, 489.0f, 22.0f, 491.0f, 20.0f, 493.0f, 18.0f, 495.0f, 16.0f, 497.0f, 14.0f, 499.0f, 12.0f, 501.0f, 10.0f, 503.0f, 8.0f, 505.0f, 6.0f, 507.0f, 4.0f, 509.0f, 2.0f, 511.0f, 0.0f, 1.0f, 510.0f, 3.0f, 508.0f, 5.0f, 506.0f, 7.0f, 504.0f, 9.0f, 502.0f, 11.0f, 500.0f, 13.0f, 498.0f, 15.0f, 496.0f, 17.0f, 494.0f, 19.0f, 492.0f, 21.0f, 490.0f, 23.0f, 488.0f, 25.0f, 486.0f, 27.0f, 484.0f, 29.0f, 482.0f, 31.0f, 480.0f, 33.0f, 478.0f, 35.0f, 476.0f, 37.0f, 474.0f, 39.0f, 472.0f, 41.0f, 470.0f, 43.0f, 468.0f, 45.0f, 466.0f, 47.0f, 464.0f, 49.0f, 462.0f, 51.0f, 460.0f, 53.0f, 458.0f, 55.0f, 456.0f, 57.0f, 454.0f, 59.0f, 452.0f, 61.0f, 450.0f, 63.0f, 448.0f, 65.0f, 446.0f, 67.0f, 444.0f, 69.0f, 442.0f, 71.0f, 440.0f, 73.0f, 438.0f, 75.0f, 436.0f, 77.0f, 434.0f, 79.0f, 432.0f, 81.0f, 430.0f, 83.0f, 428.0f, 85.0f, 426.0f, 87.0f, 424.0f, 89.0f, 422.0f, 91.0f, 420.0f, 93.0f, 418.0f, 95.0f, 416.0f, 97.0f, 414.0f, 99.0f, 412.0f, 101.0f, 410.0f, 103.0f, 408.0f, 105.0f, 406.0f, 107.0f, 404.0f, 109.0f, 402.0f, 111.0f, 400.0f, 113.0f, 398.0f, 115.0f, 396.0f, 117.0f, 394.0f, 119.0f, 392.0f, 121.0f, 390.0f, 123.0f, 388.0f, 125.0f, 386.0f, 127.0f, 384.0f, 129.0f, 382.0f, 131.0f, 380.0f, 133.0f, 378.0f, 135.0f, 376.0f, 137.0f, 374.0f, 139.0f, 372.0f, 141.0f, 370.0f, 143.0f, 368.0f, 145.0f, 366.0f, 147.0f, 364.0f, 149.0f, 362.0f, 151.0f, 360.0f, 153.0f, 358.0f, 155.0f, 356.0f, 157.0f, 354.0f, 159.0f, 352.0f, 161.0f, 350.0f, 163.0f, 348.0f, 165.0f, 346.0f, 167.0f, 344.0f, 169.0f, 342.0f, 171.0f, 340.0f, 173.0f, 338.0f, 175.0f, 336.0f, 177.0f, 334.0f, 179.0f, 332.0f, 181.0f, 330.0f, 183.0f, 328.0f, 185.0f, 326.0f, 187.0f, 324.0f, 189.0f, 322.0f, 191.0f, 320.0f, 193.0f, 318.0f, 195.0f, 316.0f, 197.0f, 314.0f, 199.0f, 312.0f, 201.0f, 310.0f, 203.0f, 308.0f, 205.0f, 306.0f, 207.0f, 304.0f, 209.0f, 302.0f, 211.0f, 300.0f, 213.0f, 298.0f, 215.0f, 296.0f, 217.0f, 294.0f, 219.0f, 292.0f, 221.0f, 290.0f, 223.0f, 288.0f, 225.0f, 286.0f, 227.0f, 284.0f, 229.0f, 282.0f, 231.0f, 280.0f, 233.0f, 278.0f, 235.0f, 276.0f, 237.0f, 274.0f, 239.0f, 272.0f, 241.0f, 270.0f, 243.0f, 268.0f, 245.0f, 266.0f, 247.0f, 264.0f, 249.0f, 262.0f, 251.0f, 260.0f, 253.0f, 258.0f, 255.0f, 256.0f, 257.0f, 254.0f, 259.0f, 252.0f, 261.0f, 250.0f, 263.0f, 248.0f, 265.0f, 246.0f, 267.0f, 244.0f, 269.0f, 242.0f, 271.0f, 240.0f, 273.0f, 238.0f, 275.0f, 236.0f, 277.0f, 234.0f, 279.0f, 232.0f, 281.0f, 230.0f, 283.0f, 228.0f, 285.0f, 226.0f, 287.0f, 224.0f, 289.0f, 222.0f, 291.0f, 220.0f, 293.0f, 218.0f, 295.0f, 216.0f, 297.0f, 214.0f, 299.0f, 212.0f, 301.0f, 210.0f, 303.0f, 208.0f, 305.0f, 206.0f, 307.0f, 204.0f, 309.0f, 202.0f, 311.0f, 200.0f, 313.0f, 198.0f, 315.0f, 196.0f, 317.0f, 194.0f, 319.0f, 192.0f, 321.0f, 190.0f, 323.0f, 188.0f, 325.0f, 186.0f, 327.0f, 184.0f, 329.0f, 182.0f, 331.0f, 180.0f, 333.0f, 178.0f, 335.0f, 176.0f, 337.0f, 174.0f, 339.0f, 172.0f, 341.0f, 170.0f, 343.0f, 168.0f, 345.0f, 166.0f, 347.0f, 164.0f, 349.0f, 162.0f, 351.0f, 160.0f, 353.0f, 158.0f, 355.0f, 156.0f, 357.0f, 154.0f, 359.0f, 152.0f, 361.0f, 150.0f, 363.0f, 148.0f, 365.0f, 146.0f, 367.0f, 144.0f, 369.0f, 142.0f, 371.0f, 140.0f, 373.0f, 138.0f, 375.0f, 136.0f, 377.0f, 134.0f, 379.0f, 132.0f, 381.0f, 130.0f, 383.0f, 128.0f, 385.0f, 126.0f, 387.0f, 124.0f, 389.0f, 122.0f, 391.0f, 120.0f, 393.0f, 118.0f, 395.0f, 116.0f, 397.0f, 114.0f, 399.0f, 112.0f, 401.0f, 110.0f, 403.0f, 108.0f, 405.0f, 106.0f, 407.0f, 104.0f, 409.0f, 102.0f, 411.0f, 100.0f, 413.0f, 98.0f, 415.0f, 96.0f, 417.0f, 94.0f, 419.0f, 92.0f, 421.0f, 90.0f, 423.0f, 88.0f, 425.0f, 86.0f, 427.0f, 84.0f, 429.0f, 82.0f, 431.0f, 80.0f, 433.0f, 78.0f, 435.0f, 76.0f, 437.0f, 74.0f, 439.0f, 72.0f, 441.0f, 70.0f, 443.0f, 68.0f, 445.0f, 66.0f, 447.0f, 64.0f, 449.0f, 62.0f, 451.0f, 60.0f, 453.0f, 58.0f, 455.0f, 56.0f, 457.0f, 54.0f, 459.0f, 52.0f, 461.0f, 50.0f, 463.0f, 48.0f, 465.0f, 46.0f, 467.0f, 44.0f, 469.0f, 42.0f, 471.0f, 40.0f, 473.0f, 38.0f, 475.0f, 36.0f, 477.0f, 34.0f, 479.0f, 32.0f, 481.0f, 30.0f, 483.0f, 28.0f, 485.0f, 26.0f, 487.0f, 24.0f, 489.0f, 22.0f, 491.0f, 20.0f, 493.0f, 18.0f, 495.0f, 16.0f, 497.0f, 14.0f, 499.0f, 12.0f, 501.0f, 10.0f, 503.0f, 8.0f, 505.0f, 6.0f, 507.0f, 4.0f, 509.0f, 2.0f, 511.0f, 0.0f, 1.0f, 510.0f, 3.0f, 508.0f, 5.0f, 506.0f, 7.0f, 504.0f, 9.0f, 502.0f, 11.0f, 500.0f, 13.0f, 498.0f, 15.0f, 496.0f, 17.0f, 494.0f, 19.0f, 492.0f, 21.0f, 490.0f, 23.0f, 488.0f, 25.0f, 486.0f, 27.0f, 484.0f, 29.0f, 482.0f, 31.0f, 480.0f, 33.0f, 478.0f, 35.0f, 476.0f, 37.0f, 474.0f, 39.0f, 472.0f, 41.0f, 470.0f, 43.0f, 468.0f, 45.0f, 466.0f, 47.0f, 464.0f, 49.0f, 462.0f, 51.0f, 460.0f, 53.0f, 458.0f, 55.0f, 456.0f, 57.0f, 454.0f, 59.0f, 452.0f, 61.0f, 450.0f, 63.0f, 448.0f, 65.0f, 446.0f, 67.0f, 444.0f, 69.0f, 442.0f, 71.0f, 440.0f, 73.0f, 438.0f, 75.0f, 436.0f, 77.0f, 434.0f, 79.0f, 432.0f, 81.0f, 430.0f, 83.0f, 428.0f, 85.0f, 426.0f, 87.0f, 424.0f, 89.0f, 422.0f, 91.0f, 420.0f, 93.0f, 418.0f, 95.0f, 416.0f, 97.0f, 414.0f, 99.0f, 412.0f, 101.0f, 410.0f, 103.0f, 408.0f, 105.0f, 406.0f, 107.0f, 404.0f, 109.0f, 402.0f, 111.0f, 400.0f, 113.0f, 398.0f, 115.0f, 396.0f, 117.0f, 394.0f, 119.0f, 392.0f, 121.0f, 390.0f, 123.0f, 388.0f, 125.0f, 386.0f, 127.0f, 384.0f, 129.0f, 382.0f, 131.0f, 380.0f, 133.0f, 378.0f, 135.0f, 376.0f, 137.0f, 374.0f, 139.0f, 372.0f, 141.0f, 370.0f, 143.0f, 368.0f, 145.0f, 366.0f, 147.0f, 364.0f, 149.0f, 362.0f, 151.0f, 360.0f, 153.0f, 358.0f, 155.0f, 356.0f, 157.0f, 354.0f, 159.0f, 352.0f, 161.0f, 350.0f, 163.0f, 348.0f, 165.0f, 346.0f, 167.0f, 344.0f, 169.0f, 342.0f, 171.0f, 340.0f, 173.0f, 338.0f, 175.0f, 336.0f, 177.0f, 334.0f, 179.0f, 332.0f, 181.0f, 330.0f, 183.0f, 328.0f, 185.0f, 326.0f, 187.0f, 324.0f, 189.0f, 322.0f, 191.0f, 320.0f, 193.0f, 318.0f, 195.0f, 316.0f, 197.0f, 314.0f, 199.0f, 312.0f, 201.0f, 310.0f, 203.0f, 308.0f, 205.0f, 306.0f, 207.0f, 304.0f, 209.0f, 302.0f, 211.0f, 300.0f, 213.0f, 298.0f, 215.0f, 296.0f, 217.0f, 294.0f, 219.0f, 292.0f, 221.0f, 290.0f, 223.0f, 288.0f, 225.0f, 286.0f, 227.0f, 284.0f, 229.0f, 282.0f, 231.0f, 280.0f, 233.0f, 278.0f, 235.0f, 276.0f, 237.0f, 274.0f, 239.0f, 272.0f, 241.0f, 270.0f, 243.0f, 268.0f, 245.0f, 266.0f, 247.0f, 264.0f, 249.0f, 262.0f, 251.0f, 260.0f, 253.0f, 258.0f, 255.0f, 256.0f, 257.0f, 254.0f, 259.0f, 252.0f, 261.0f, 250.0f, 263.0f, 248.0f, 265.0f, 246.0f, 267.0f, 244.0f, 269.0f, 242.0f, 271.0f, 240.0f, 273.0f, 238.0f, 275.0f, 236.0f, 277.0f, 234.0f, 279.0f, 232.0f, 281.0f, 230.0f, 283.0f, 228.0f, 285.0f, 226.0f, 287.0f, 224.0f, 289.0f, 222.0f, 291.0f, 220.0f, 293.0f, 218.0f, 295.0f, 216.0f, 297.0f, 214.0f, 299.0f, 212.0f, 301.0f, 210.0f, 303.0f, 208.0f, 305.0f, 206.0f, 307.0f, 204.0f, 309.0f, 202.0f, 311.0f, 200.0f, 313.0f, 198.0f, 315.0f, 196.0f, 317.0f, 194.0f, 319.0f, 192.0f, 321.0f, 190.0f, 323.0f, 188.0f, 325.0f, 186.0f, 327.0f, 184.0f, 329.0f, 182.0f, 331.0f, 180.0f, 333.0f, 178.0f, 335.0f, 176.0f, 337.0f, 174.0f, 339.0f, 172.0f, 341.0f, 170.0f, 343.0f, 168.0f, 345.0f, 166.0f, 347.0f, 164.0f, 349.0f, 162.0f, 351.0f, 160.0f, 353.0f, 158.0f, 355.0f, 156.0f, 357.0f, 154.0f, 359.0f, 152.0f, 361.0f, 150.0f, 363.0f, 148.0f, 365.0f, 146.0f, 367.0f, 144.0f, 369.0f, 142.0f, 371.0f, 140.0f, 373.0f, 138.0f, 375.0f, 136.0f, 377.0f, 134.0f, 379.0f, 132.0f, 381.0f, 130.0f, 383.0f, 128.0f, 385.0f, 126.0f, 387.0f, 124.0f, 389.0f, 122.0f, 391.0f, 120.0f, 393.0f, 118.0f, 395.0f, 116.0f, 397.0f, 114.0f, 399.0f, 112.0f, 401.0f, 110.0f, 403.0f, 108.0f, 405.0f, 106.0f, 407.0f, 104.0f, 409.0f, 102.0f, 411.0f, 100.0f, 413.0f, 98.0f, 415.0f, 96.0f, 417.0f, 94.0f, 419.0f, 92.0f, 421.0f, 90.0f, 423.0f, 88.0f, 425.0f, 86.0f, 427.0f, 84.0f, 429.0f, 82.0f, 431.0f, 80.0f, 433.0f, 78.0f, 435.0f, 76.0f, 437.0f, 74.0f, 439.0f, 72.0f, 441.0f, 70.0f, 443.0f, 68.0f, 445.0f, 66.0f, 447.0f, 64.0f, 449.0f, 62.0f, 451.0f, 60.0f, 453.0f, 58.0f, 455.0f, 56.0f, 457.0f, 54.0f, 459.0f, 52.0f, 461.0f, 50.0f, 463.0f, 48.0f, 465.0f, 46.0f, 467.0f, 44.0f, 469.0f, 42.0f, 471.0f, 40.0f, 473.0f, 38.0f, 475.0f, 36.0f, 477.0f, 34.0f, 479.0f, 32.0f, 481.0f, 30.0f, 483.0f, 28.0f, 485.0f, 26.0f, 487.0f, 24.0f, 489.0f, 22.0f, 491.0f, 20.0f, 493.0f, 18.0f, 495.0f, 16.0f, 497.0f, 14.0f, 499.0f, 12.0f, 501.0f, 10.0f, 503.0f, 8.0f, 505.0f, 6.0f, 507.0f, 4.0f, 509.0f, 2.0f, 511.0f, 0.0f, 1.0f, 510.0f, 3.0f, 508.0f, 5.0f, 506.0f, 7.0f, 504.0f, 9.0f, 502.0f, 11.0f, 500.0f, 13.0f, 498.0f, 15.0f, 496.0f, 17.0f, 494.0f, 19.0f, 492.0f, 21.0f, 490.0f, 23.0f, 488.0f, 25.0f, 486.0f, 27.0f, 484.0f, 29.0f, 482.0f, 31.0f, 480.0f, 33.0f, 478.0f, 35.0f, 476.0f, 37.0f, 474.0f, 39.0f, 472.0f, 41.0f, 470.0f, 43.0f, 468.0f, 45.0f, 466.0f, 47.0f, 464.0f, 49.0f, 462.0f, 51.0f, 460.0f, 53.0f, 458.0f, 55.0f, 456.0f, 57.0f, 454.0f, 59.0f, 452.0f, 61.0f, 450.0f, 63.0f, 448.0f, 65.0f, 446.0f, 67.0f, 444.0f, 69.0f, 442.0f, 71.0f, 440.0f, 73.0f, 438.0f, 75.0f, 436.0f, 77.0f, 434.0f, 79.0f, 432.0f, 81.0f, 430.0f, 83.0f, 428.0f, 85.0f, 426.0f, 87.0f, 424.0f, 89.0f, 422.0f, 91.0f, 420.0f, 93.0f, 418.0f, 95.0f, 416.0f, 97.0f, 414.0f, 99.0f, 412.0f, 101.0f, 410.0f, 103.0f, 408.0f, 105.0f, 406.0f, 107.0f, 404.0f, 109.0f, 402.0f, 111.0f, 400.0f, 113.0f, 398.0f, 115.0f, 396.0f, 117.0f, 394.0f, 119.0f, 392.0f, 121.0f, 390.0f, 123.0f, 388.0f, 125.0f, 386.0f, 127.0f, 384.0f, 129.0f, 382.0f, 131.0f, 380.0f, 133.0f, 378.0f, 135.0f, 376.0f, 137.0f, 374.0f, 139.0f, 372.0f, 141.0f, 370.0f, 143.0f, 368.0f, 145.0f, 366.0f, 147.0f, 364.0f, 149.0f, 362.0f, 151.0f, 360.0f, 153.0f, 358.0f, 155.0f, 356.0f, 157.0f, 354.0f, 159.0f, 352.0f, 161.0f, 350.0f, 163.0f, 348.0f, 165.0f, 346.0f, 167.0f, 344.0f, 169.0f, 342.0f, 171.0f, 340.0f, 173.0f, 338.0f, 175.0f, 336.0f, 177.0f, 334.0f, 179.0f, 332.0f, 181.0f, 330.0f, 183.0f, 328.0f, 185.0f, 326.0f, 187.0f, 324.0f, 189.0f, 322.0f, 191.0f, 320.0f, 193.0f, 318.0f, 195.0f, 316.0f, 197.0f, 314.0f, 199.0f, 312.0f, 201.0f, 310.0f, 203.0f, 308.0f, 205.0f, 306.0f, 207.0f, 304.0f, 209.0f, 302.0f, 211.0f, 300.0f, 213.0f, 298.0f, 215.0f, 296.0f, 217.0f, 294.0f, 219.0f, 292.0f, 221.0f, 290.0f, 223.0f, 288.0f, 225.0f, 286.0f, 227.0f, 284.0f, 229.0f, 282.0f, 231.0f, 280.0f, 233.0f, 278.0f, 235.0f, 276.0f, 237.0f, 274.0f, 239.0f, 272.0f, 241.0f, 270.0f, 243.0f, 268.0f, 245.0f, 266.0f, 247.0f, 264.0f, 249.0f, 262.0f, 251.0f, 260.0f, 253.0f, 258.0f, 255.0f, 256.0f, 257.0f, 254.0f, 259.0f, 252.0f, 261.0f, 250.0f, 263.0f, 248.0f, 265.0f, 246.0f, 267.0f, 244.0f, 269.0f, 242.0f, 271.0f, 240.0f, 273.0f, 238.0f, 275.0f, 236.0f, 277.0f, 234.0f, 279.0f, 232.0f, 281.0f, 230.0f, 283.0f, 228.0f, 285.0f, 226.0f, 287.0f, 224.0f, 289.0f, 222.0f, 291.0f, 220.0f, 293.0f, 218.0f, 295.0f, 216.0f, 297.0f, 214.0f, 299.0f, 212.0f, 301.0f, 210.0f, 303.0f, 208.0f, 305.0f, 206.0f, 307.0f, 204.0f, 309.0f, 202.0f, 311.0f, 200.0f, 313.0f, 198.0f, 315.0f, 196.0f, 317.0f, 194.0f, 319.0f, 192.0f, 321.0f, 190.0f, 323.0f, 188.0f, 325.0f, 186.0f, 327.0f, 184.0f, 329.0f, 182.0f, 331.0f, 180.0f, 333.0f, 178.0f, 335.0f, 176.0f, 337.0f, 174.0f, 339.0f, 172.0f, 341.0f, 170.0f, 343.0f, 168.0f, 345.0f, 166.0f, 347.0f, 164.0f, 349.0f, 162.0f, 351.0f, 160.0f, 353.0f, 158.0f, 355.0f, 156.0f, 357.0f, 154.0f, 359.0f, 152.0f, 361.0f, 150.0f, 363.0f, 148.0f, 365.0f, 146.0f, 367.0f, 144.0f, 369.0f, 142.0f, 371.0f, 140.0f, 373.0f, 138.0f, 375.0f, 136.0f, 377.0f, 134.0f, 379.0f, 132.0f, 381.0f, 130.0f, 383.0f, 128.0f, 385.0f, 126.0f, 387.0f, 124.0f, 389.0f, 122.0f, 391.0f, 120.0f, 393.0f, 118.0f, 395.0f, 116.0f, 397.0f, 114.0f, 399.0f, 112.0f, 401.0f, 110.0f, 403.0f, 108.0f, 405.0f, 106.0f, 407.0f, 104.0f, 409.0f, 102.0f, 411.0f, 100.0f, 413.0f, 98.0f, 415.0f, 96.0f, 417.0f, 94.0f, 419.0f, 92.0f, 421.0f, 90.0f, 423.0f, 88.0f, 425.0f, 86.0f, 427.0f, 84.0f, 429.0f, 82.0f, 431.0f, 80.0f, 433.0f, 78.0f, 435.0f, 76.0f, 437.0f, 74.0f, 439.0f, 72.0f, 441.0f, 70.0f, 443.0f, 68.0f, 445.0f, 66.0f, 447.0f, 64.0f, 449.0f, 62.0f, 451.0f, 60.0f, 453.0f, 58.0f, 455.0f, 56.0f, 457.0f, 54.0f, 459.0f, 52.0f, 461.0f, 50.0f, 463.0f, 48.0f, 465.0f, 46.0f, 467.0f, 44.0f, 469.0f, 42.0f, 471.0f, 40.0f, 473.0f, 38.0f, 475.0f, 36.0f, 477.0f, 34.0f, 479.0f, 32.0f, 481.0f, 30.0f, 483.0f, 28.0f, 485.0f, 26.0f, 487.0f, 24.0f, 489.0f, 22.0f, 491.0f, 20.0f, 493.0f, 18.0f, 495.0f, 16.0f, 497.0f, 14.0f, 499.0f, 12.0f, 501.0f, 10.0f, 503.0f, 8.0f, 505.0f, 6.0f, 507.0f, 4.0f, 509.0f, 2.0f, 511.0f, 0.0f, 1.0f, 510.0f, 3.0f, 508.0f, 5.0f, 506.0f, 7.0f, 504.0f, 9.0f, 502.0f, 11.0f, 500.0f, 13.0f, 498.0f, 15.0f, 496.0f, 17.0f, 494.0f, 19.0f, 492.0f, 21.0f, 490.0f, 23.0f, 488.0f, 25.0f, 486.0f, 27.0f, 484.0f, 29.0f, 482.0f, 31.0f, 480.0f, 33.0f, 478.0f, 35.0f, 476.0f, 37.0f, 474.0f, 39.0f, 472.0f, 41.0f, 470.0f, 43.0f, 468.0f, 45.0f, 466.0f, 47.0f, 464.0f, 49.0f, 462.0f, 51.0f, 460.0f, 53.0f, 458.0f, 55.0f, 456.0f, 57.0f, 454.0f, 59.0f, 452.0f, 61.0f, 450.0f, 63.0f, 448.0f, 65.0f, 446.0f, 67.0f, 444.0f, 69.0f, 442.0f, 71.0f, 440.0f, 73.0f, 438.0f, 75.0f, 436.0f, 77.0f, 434.0f, 79.0f, 432.0f, 81.0f, 430.0f, 83.0f, 428.0f, 85.0f, 426.0f, 87.0f, 424.0f, 89.0f, 422.0f, 91.0f, 420.0f, 93.0f, 418.0f, 95.0f, 416.0f, 97.0f, 414.0f, 99.0f, 412.0f, 101.0f, 410.0f, 103.0f, 408.0f, 105.0f, 406.0f, 107.0f, 404.0f, 109.0f, 402.0f, 111.0f, 400.0f, 113.0f, 398.0f, 115.0f, 396.0f, 117.0f, 394.0f, 119.0f, 392.0f, 121.0f, 390.0f, 123.0f, 388.0f, 125.0f, 386.0f, 127.0f, 384.0f, 129.0f, 382.0f, 131.0f, 380.0f, 133.0f, 378.0f, 135.0f, 376.0f, 137.0f, 374.0f, 139.0f, 372.0f, 141.0f, 370.0f, 143.0f, 368.0f, 145.0f, 366.0f, 147.0f, 364.0f, 149.0f, 362.0f, 151.0f, 360.0f, 153.0f, 358.0f, 155.0f, 356.0f, 157.0f, 354.0f, 159.0f, 352.0f, 161.0f, 350.0f, 163.0f, 348.0f, 165.0f, 346.0f, 167.0f, 344.0f, 169.0f, 342.0f, 171.0f, 340.0f, 173.0f, 338.0f, 175.0f, 336.0f, 177.0f, 334.0f, 179.0f, 332.0f, 181.0f, 330.0f, 183.0f, 328.0f, 185.0f, 326.0f, 187.0f, 324.0f, 189.0f, 322.0f, 191.0f, 320.0f, 193.0f, 318.0f, 195.0f, 316.0f, 197.0f, 314.0f, 199.0f, 312.0f, 201.0f, 310.0f, 203.0f, 308.0f, 205.0f, 306.0f, 207.0f, 304.0f, 209.0f, 302.0f, 211.0f, 300.0f, 213.0f, 298.0f, 215.0f, 296.0f, 217.0f, 294.0f, 219.0f, 292.0f, 221.0f, 290.0f, 223.0f, 288.0f, 225.0f, 286.0f, 227.0f, 284.0f, 229.0f, 282.0f, 231.0f, 280.0f, 233.0f, 278.0f, 235.0f, 276.0f, 237.0f, 274.0f, 239.0f, 272.0f, 241.0f, 270.0f, 243.0f, 268.0f, 245.0f, 266.0f, 247.0f, 264.0f, 249.0f, 262.0f, 251.0f, 260.0f, 253.0f, 258.0f, 255.0f, 256.0f, 257.0f, 254.0f, 259.0f, 252.0f, 261.0f, 250.0f, 263.0f, 248.0f, 265.0f, 246.0f, 267.0f, 244.0f, 269.0f, 242.0f, 271.0f, 240.0f, 273.0f, 238.0f, 275.0f, 236.0f, 277.0f, 234.0f, 279.0f, 232.0f, 281.0f, 230.0f, 283.0f, 228.0f, 285.0f, 226.0f, 287.0f, 224.0f, 289.0f, 222.0f, 291.0f, 220.0f, 293.0f, 218.0f, 295.0f, 216.0f, 297.0f, 214.0f, 299.0f, 212.0f, 301.0f, 210.0f, 303.0f, 208.0f, 305.0f, 206.0f, 307.0f, 204.0f, 309.0f, 202.0f, 311.0f, 200.0f, 313.0f, 198.0f, 315.0f, 196.0f, 317.0f, 194.0f, 319.0f, 192.0f, 321.0f, 190.0f, 323.0f, 188.0f, 325.0f, 186.0f, 327.0f, 184.0f, 329.0f, 182.0f, 331.0f, 180.0f, 333.0f, 178.0f, 335.0f, 176.0f, 337.0f, 174.0f, 339.0f, 172.0f, 341.0f, 170.0f, 343.0f, 168.0f, 345.0f, 166.0f, 347.0f, 164.0f, 349.0f, 162.0f, 351.0f, 160.0f, 353.0f, 158.0f, 355.0f, 156.0f, 357.0f, 154.0f, 359.0f, 152.0f, 361.0f, 150.0f, 363.0f, 148.0f, 365.0f, 146.0f, 367.0f, 144.0f, 369.0f, 142.0f, 371.0f, 140.0f, 373.0f, 138.0f, 375.0f, 136.0f, 377.0f, 134.0f, 379.0f, 132.0f, 381.0f, 130.0f, 383.0f, 128.0f, 385.0f, 126.0f, 387.0f, 124.0f, 389.0f, 122.0f, 391.0f, 120.0f, 393.0f, 118.0f, 395.0f, 116.0f, 397.0f, 114.0f, 399.0f, 112.0f, 401.0f, 110.0f, 403.0f, 108.0f, 405.0f, 106.0f, 407.0f, 104.0f, 409.0f, 102.0f, 411.0f, 100.0f, 413.0f, 98.0f, 415.0f, 96.0f, 417.0f, 94.0f, 419.0f, 92.0f, 421.0f, 90.0f, 423.0f, 88.0f, 425.0f, 86.0f, 427.0f, 84.0f, 429.0f, 82.0f, 431.0f, 80.0f, 433.0f, 78.0f, 435.0f, 76.0f, 437.0f, 74.0f, 439.0f, 72.0f, 441.0f, 70.0f, 443.0f, 68.0f, 445.0f, 66.0f, 447.0f, 64.0f, 449.0f, 62.0f, 451.0f, 60.0f, 453.0f, 58.0f, 455.0f, 56.0f, 457.0f, 54.0f, 459.0f, 52.0f, 461.0f, 50.0f, 463.0f, 48.0f, 465.0f, 46.0f, 467.0f, 44.0f, 469.0f, 42.0f, 471.0f, 40.0f, 473.0f, 38.0f, 475.0f, 36.0f, 477.0f, 34.0f, 479.0f, 32.0f, 481.0f, 30.0f, 483.0f, 28.0f, 485.0f, 26.0f, 487.0f, 24.0f, 489.0f, 22.0f, 491.0f, 20.0f, 493.0f, 18.0f, 495.0f, 16.0f, 497.0f, 14.0f, 499.0f, 12.0f, 501.0f, 10.0f, 503.0f, 8.0f, 505.0f, 6.0f, 507.0f, 4.0f, 509.0f, 2.0f, 511.0f, 0.0f, 1.0f, 510.0f, 3.0f, 508.0f, 5.0f, 506.0f, 7.0f, 504.0f, 9.0f, 502.0f, 11.0f, 500.0f, 13.0f, 498.0f, 15.0f, 496.0f, 17.0f, 494.0f, 19.0f, 492.0f, 21.0f, 490.0f, 23.0f, 488.0f, 25.0f, 486.0f, 27.0f, 484.0f, 29.0f, 482.0f, 31.0f, 480.0f, 33.0f, 478.0f, 35.0f, 476.0f, 37.0f, 474.0f, 39.0f, 472.0f, 41.0f, 470.0f, 43.0f, 468.0f, 45.0f, 466.0f, 47.0f, 464.0f, 49.0f, 462.0f, 51.0f, 460.0f, 53.0f, 458.0f, 55.0f, 456.0f, 57.0f, 454.0f, 59.0f, 452.0f, 61.0f, 450.0f, 63.0f, 448.0f, 65.0f, 446.0f, 67.0f, 444.0f, 69.0f, 442.0f, 71.0f, 440.0f, 73.0f, 438.0f, 75.0f, 436.0f, 77.0f, 434.0f, 79.0f, 432.0f, 81.0f, 430.0f, 83.0f, 428.0f, 85.0f, 426.0f, 87.0f, 424.0f, 89.0f, 422.0f, 91.0f, 420.0f, 93.0f, 418.0f, 95.0f, 416.0f, 97.0f, 414.0f, 99.0f, 412.0f, 101.0f, 410.0f, 103.0f, 408.0f, 105.0f, 406.0f, 107.0f, 404.0f, 109.0f, 402.0f, 111.0f, 400.0f, 113.0f, 398.0f, 115.0f, 396.0f, 117.0f, 394.0f, 119.0f, 392.0f, 121.0f, 390.0f, 123.0f, 388.0f, 125.0f, 386.0f, 127.0f, 384.0f, 129.0f, 382.0f, 131.0f, 380.0f, 133.0f, 378.0f, 135.0f, 376.0f, 137.0f, 374.0f, 139.0f, 372.0f, 141.0f, 370.0f, 143.0f, 368.0f, 145.0f, 366.0f, 147.0f, 364.0f, 149.0f, 362.0f, 151.0f, 360.0f, 153.0f, 358.0f, 155.0f, 356.0f, 157.0f, 354.0f, 159.0f, 352.0f, 161.0f, 350.0f, 163.0f, 348.0f, 165.0f, 346.0f, 167.0f, 344.0f, 169.0f, 342.0f, 171.0f, 340.0f, 173.0f, 338.0f, 175.0f, 336.0f, 177.0f, 334.0f, 179.0f, 332.0f, 181.0f, 330.0f, 183.0f, 328.0f, 185.0f, 326.0f, 187.0f, 324.0f, 189.0f, 322.0f, 191.0f, 320.0f, 193.0f, 318.0f, 195.0f, 316.0f, 197.0f, 314.0f, 199.0f, 312.0f, 201.0f, 310.0f, 203.0f, 308.0f, 205.0f, 306.0f, 207.0f, 304.0f, 209.0f, 302.0f, 211.0f, 300.0f, 213.0f, 298.0f, 215.0f, 296.0f, 217.0f, 294.0f, 219.0f, 292.0f, 221.0f, 290.0f, 223.0f, 288.0f, 225.0f, 286.0f, 227.0f, 284.0f, 229.0f, 282.0f, 231.0f, 280.0f, 233.0f, 278.0f, 235.0f, 276.0f, 237.0f, 274.0f, 239.0f, 272.0f, 241.0f, 270.0f, 243.0f, 268.0f, 245.0f, 266.0f, 247.0f, 264.0f, 249.0f, 262.0f, 251.0f, 260.0f, 253.0f, 258.0f, 255.0f, 256.0f, 257.0f, 254.0f, 259.0f, 252.0f, 261.0f, 250.0f, 263.0f, 248.0f, 265.0f, 246.0f, 267.0f, 244.0f, 269.0f, 242.0f, 271.0f, 240.0f, 273.0f, 238.0f, 275.0f, 236.0f, 277.0f, 234.0f, 279.0f, 232.0f, 281.0f, 230.0f, 283.0f, 228.0f, 285.0f, 226.0f, 287.0f, 224.0f, 289.0f, 222.0f, 291.0f, 220.0f, 293.0f, 218.0f, 295.0f, 216.0f, 297.0f, 214.0f, 299.0f, 212.0f, 301.0f, 210.0f, 303.0f, 208.0f, 305.0f, 206.0f, 307.0f, 204.0f, 309.0f, 202.0f, 311.0f, 200.0f, 313.0f, 198.0f, 315.0f, 196.0f, 317.0f, 194.0f, 319.0f, 192.0f, 321.0f, 190.0f, 323.0f, 188.0f, 325.0f, 186.0f, 327.0f, 184.0f, 329.0f, 182.0f, 331.0f, 180.0f, 333.0f, 178.0f, 335.0f, 176.0f, 337.0f, 174.0f, 339.0f, 172.0f, 341.0f, 170.0f, 343.0f, 168.0f, 345.0f, 166.0f, 347.0f, 164.0f, 349.0f, 162.0f, 351.0f, 160.0f, 353.0f, 158.0f, 355.0f, 156.0f, 357.0f, 154.0f, 359.0f, 152.0f, 361.0f, 150.0f, 363.0f, 148.0f, 365.0f, 146.0f, 367.0f, 144.0f, 369.0f, 142.0f, 371.0f, 140.0f, 373.0f, 138.0f, 375.0f, 136.0f, 377.0f, 134.0f, 379.0f, 132.0f, 381.0f, 130.0f, 383.0f, 128.0f, 385.0f, 126.0f, 387.0f, 124.0f, 389.0f, 122.0f, 391.0f, 120.0f, 393.0f, 118.0f, 395.0f, 116.0f, 397.0f, 114.0f, 399.0f, 112.0f, 401.0f, 110.0f, 403.0f, 108.0f, 405.0f, 106.0f, 407.0f, 104.0f, 409.0f, 102.0f, 411.0f, 100.0f, 413.0f, 98.0f, 415.0f, 96.0f, 417.0f, 94.0f, 419.0f, 92.0f, 421.0f, 90.0f, 423.0f, 88.0f, 425.0f, 86.0f, 427.0f, 84.0f, 429.0f, 82.0f, 431.0f, 80.0f, 433.0f, 78.0f, 435.0f, 76.0f, 437.0f, 74.0f, 439.0f, 72.0f, 441.0f, 70.0f, 443.0f, 68.0f, 445.0f, 66.0f, 447.0f, 64.0f, 449.0f, 62.0f, 451.0f, 60.0f, 453.0f, 58.0f, 455.0f, 56.0f, 457.0f, 54.0f, 459.0f, 52.0f, 461.0f, 50.0f, 463.0f, 48.0f, 465.0f, 46.0f, 467.0f, 44.0f, 469.0f, 42.0f, 471.0f, 40.0f, 473.0f, 38.0f, 475.0f, 36.0f, 477.0f, 34.0f, 479.0f, 32.0f, 481.0f, 30.0f, 483.0f, 28.0f, 485.0f, 26.0f, 487.0f, 24.0f, 489.0f, 22.0f, 491.0f, 20.0f, 493.0f, 18.0f, 495.0f, 16.0f, 497.0f, 14.0f, 499.0f, 12.0f, 501.0f, 10.0f, 503.0f, 8.0f, 505.0f, 6.0f, 507.0f, 4.0f, 509.0f, 2.0f, 511.0f, 0.0f, 1.0f, 510.0f, 3.0f, 508.0f, 5.0f, 506.0f, 7.0f, 504.0f, 9.0f, 502.0f, 11.0f, 500.0f, 13.0f, 498.0f, 15.0f, 496.0f, 17.0f, 494.0f, 19.0f, 492.0f, 21.0f, 490.0f, 23.0f, 488.0f, 25.0f, 486.0f, 27.0f, 484.0f, 29.0f, 482.0f, 31.0f, 480.0f, 33.0f, 478.0f, 35.0f, 476.0f, 37.0f, 474.0f, 39.0f, 472.0f, 41.0f, 470.0f, 43.0f, 468.0f, 45.0f, 466.0f, 47.0f, 464.0f, 49.0f, 462.0f, 51.0f, 460.0f, 53.0f, 458.0f, 55.0f, 456.0f, 57.0f, 454.0f, 59.0f, 452.0f, 61.0f, 450.0f, 63.0f, 448.0f, 65.0f, 446.0f, 67.0f, 444.0f, 69.0f, 442.0f, 71.0f, 440.0f, 73.0f, 438.0f, 75.0f, 436.0f, 77.0f, 434.0f, 79.0f, 432.0f, 81.0f, 430.0f, 83.0f, 428.0f, 85.0f, 426.0f, 87.0f, 424.0f, 89.0f, 422.0f, 91.0f, 420.0f, 93.0f, 418.0f, 95.0f, 416.0f, 97.0f, 414.0f, 99.0f, 412.0f, 101.0f, 410.0f, 103.0f, 408.0f, 105.0f, 406.0f, 107.0f, 404.0f, 109.0f, 402.0f, 111.0f, 400.0f, 113.0f, 398.0f, 115.0f, 396.0f, 117.0f, 394.0f, 119.0f, 392.0f, 121.0f, 390.0f, 123.0f, 388.0f, 125.0f, 386.0f, 127.0f, 384.0f, 129.0f, 382.0f, 131.0f, 380.0f, 133.0f, 378.0f, 135.0f, 376.0f, 137.0f, 374.0f, 139.0f, 372.0f, 141.0f, 370.0f, 143.0f, 368.0f, 145.0f, 366.0f, 147.0f, 364.0f, 149.0f, 362.0f, 151.0f, 360.0f, 153.0f, 358.0f, 155.0f, 356.0f, 157.0f, 354.0f, 159.0f, 352.0f, 161.0f, 350.0f, 163.0f, 348.0f, 165.0f, 346.0f, 167.0f, 344.0f, 169.0f, 342.0f, 171.0f, 340.0f, 173.0f, 338.0f, 175.0f, 336.0f, 177.0f, 334.0f, 179.0f, 332.0f, 181.0f, 330.0f, 183.0f, 328.0f, 185.0f, 326.0f, 187.0f, 324.0f, 189.0f, 322.0f, 191.0f, 320.0f, 193.0f, 318.0f, 195.0f, 316.0f, 197.0f, 314.0f, 199.0f, 312.0f, 201.0f, 310.0f, 203.0f, 308.0f, 205.0f, 306.0f, 207.0f, 304.0f, 209.0f, 302.0f, 211.0f, 300.0f, 213.0f, 298.0f, 215.0f, 296.0f, 217.0f, 294.0f, 219.0f, 292.0f, 221.0f, 290.0f, 223.0f, 288.0f, 225.0f, 286.0f, 227.0f, 284.0f, 229.0f, 282.0f, 231.0f, 280.0f, 233.0f, 278.0f, 235.0f, 276.0f, 237.0f, 274.0f, 239.0f, 272.0f, 241.0f, 270.0f, 243.0f, 268.0f, 245.0f, 266.0f, 247.0f, 264.0f, 249.0f, 262.0f, 251.0f, 260.0f, 253.0f, 258.0f, 255.0f, 256.0f, 257.0f, 254.0f, 259.0f, 252.0f, 261.0f, 250.0f, 263.0f, 248.0f, 265.0f, 246.0f, 267.0f, 244.0f, 269.0f, 242.0f, 271.0f, 240.0f, 273.0f, 238.0f, 275.0f, 236.0f, 277.0f, 234.0f, 279.0f, 232.0f, 281.0f, 230.0f, 283.0f, 228.0f, 285.0f, 226.0f, 287.0f, 224.0f, 289.0f, 222.0f, 291.0f, 220.0f, 293.0f, 218.0f, 295.0f, 216.0f, 297.0f, 214.0f, 299.0f, 212.0f, 301.0f, 210.0f, 303.0f, 208.0f, 305.0f, 206.0f, 307.0f, 204.0f, 309.0f, 202.0f, 311.0f, 200.0f, 313.0f, 198.0f, 315.0f, 196.0f, 317.0f, 194.0f, 319.0f, 192.0f, 321.0f, 190.0f, 323.0f, 188.0f, 325.0f, 186.0f, 327.0f, 184.0f, 329.0f, 182.0f, 331.0f, 180.0f, 333.0f, 178.0f, 335.0f, 176.0f, 337.0f, 174.0f, 339.0f, 172.0f, 341.0f, 170.0f, 343.0f, 168.0f, 345.0f, 166.0f, 347.0f, 164.0f, 349.0f, 162.0f, 351.0f, 160.0f, 353.0f, 158.0f, 355.0f, 156.0f, 357.0f, 154.0f, 359.0f, 152.0f, 361.0f, 150.0f, 363.0f, 148.0f, 365.0f, 146.0f, 367.0f, 144.0f, 369.0f, 142.0f, 371.0f, 140.0f, 373.0f, 138.0f, 375.0f, 136.0f, 377.0f, 134.0f, 379.0f, 132.0f, 381.0f, 130.0f, 383.0f, 128.0f, 385.0f, 126.0f, 387.0f, 124.0f, 389.0f, 122.0f, 391.0f, 120.0f, 393.0f, 118.0f, 395.0f, 116.0f, 397.0f, 114.0f, 399.0f, 112.0f, 401.0f, 110.0f, 403.0f, 108.0f, 405.0f, 106.0f, 407.0f, 104.0f, 409.0f, 102.0f, 411.0f, 100.0f, 413.0f, 98.0f, 415.0f, 96.0f, 417.0f, 94.0f, 419.0f, 92.0f, 421.0f, 90.0f, 423.0f, 88.0f, 425.0f, 86.0f, 427.0f, 84.0f, 429.0f, 82.0f, 431.0f, 80.0f, 433.0f, 78.0f, 435.0f, 76.0f, 437.0f, 74.0f, 439.0f, 72.0f, 441.0f, 70.0f, 443.0f, 68.0f, 445.0f, 66.0f, 447.0f, 64.0f, 449.0f, 62.0f, 451.0f, 60.0f, 453.0f, 58.0f, 455.0f, 56.0f, 457.0f, 54.0f, 459.0f, 52.0f, 461.0f, 50.0f, 463.0f, 48.0f, 465.0f, 46.0f, 467.0f, 44.0f, 469.0f, 42.0f, 471.0f, 40.0f, 473.0f, 38.0f, 475.0f, 36.0f, 477.0f, 34.0f, 479.0f, 32.0f, 481.0f, 30.0f, 483.0f, 28.0f, 485.0f, 26.0f, 487.0f, 24.0f, 489.0f, 22.0f, 491.0f, 20.0f, 493.0f, 18.0f, 495.0f, 16.0f, 497.0f, 14.0f, 499.0f, 12.0f, 501.0f, 10.0f, 503.0f, 8.0f, 505.0f, 6.0f, 507.0f, 4.0f, 509.0f, 2.0f, 511.0f, 0.0f, 1.0f, 510.0f, 3.0f, 508.0f, 5.0f, 506.0f, 7.0f, 504.0f, 9.0f, 502.0f, 11.0f, 500.0f, 13.0f, 498.0f, 15.0f, 496.0f, 17.0f, 494.0f, 19.0f, 492.0f, 21.0f, 490.0f, 23.0f, 488.0f, 25.0f, 486.0f, 27.0f, 484.0f, 29.0f, 482.0f, 31.0f, 480.0f, 33.0f, 478.0f, 35.0f, 476.0f, 37.0f, 474.0f, 39.0f, 472.0f, 41.0f, 470.0f, 43.0f, 468.0f, 45.0f, 466.0f, 47.0f, 464.0f, 49.0f, 462.0f, 51.0f, 460.0f, 53.0f, 458.0f, 55.0f, 456.0f, 57.0f, 454.0f, 59.0f, 452.0f, 61.0f, 450.0f, 63.0f, 448.0f, 65.0f, 446.0f, 67.0f, 444.0f, 69.0f, 442.0f, 71.0f, 440.0f, 73.0f, 438.0f, 75.0f, 436.0f, 77.0f, 434.0f, 79.0f, 432.0f, 81.0f, 430.0f, 83.0f, 428.0f, 85.0f, 426.0f, 87.0f, 424.0f, 89.0f, 422.0f, 91.0f, 420.0f, 93.0f, 418.0f, 95.0f, 416.0f, 97.0f, 414.0f, 99.0f, 412.0f, 101.0f, 410.0f, 103.0f, 408.0f, 105.0f, 406.0f, 107.0f, 404.0f, 109.0f, 402.0f, 111.0f, 400.0f, 113.0f, 398.0f, 115.0f, 396.0f, 117.0f, 394.0f, 119.0f, 392.0f, 121.0f, 390.0f, 123.0f, 388.0f, 125.0f, 386.0f, 127.0f, 384.0f, 129.0f, 382.0f, 131.0f, 380.0f, 133.0f, 378.0f, 135.0f, 376.0f, 137.0f, 374.0f, 139.0f, 372.0f, 141.0f, 370.0f, 143.0f, 368.0f, 145.0f, 366.0f, 147.0f, 364.0f, 149.0f, 362.0f, 151.0f, 360.0f, 153.0f, 358.0f, 155.0f, 356.0f, 157.0f, 354.0f, 159.0f, 352.0f, 161.0f, 350.0f, 163.0f, 348.0f, 165.0f, 346.0f, 167.0f, 344.0f, 169.0f, 342.0f, 171.0f, 340.0f, 173.0f, 338.0f, 175.0f, 336.0f, 177.0f, 334.0f, 179.0f, 332.0f, 181.0f, 330.0f, 183.0f, 328.0f, 185.0f, 326.0f, 187.0f, 324.0f, 189.0f, 322.0f, 191.0f, 320.0f, 193.0f, 318.0f, 195.0f, 316.0f, 197.0f, 314.0f, 199.0f, 312.0f, 201.0f, 310.0f, 203.0f, 308.0f, 205.0f, 306.0f, 207.0f, 304.0f, 209.0f, 302.0f, 211.0f, 300.0f, 213.0f, 298.0f, 215.0f, 296.0f, 217.0f, 294.0f, 219.0f, 292.0f, 221.0f, 290.0f, 223.0f, 288.0f, 225.0f, 286.0f, 227.0f, 284.0f, 229.0f, 282.0f, 231.0f, 280.0f, 233.0f, 278.0f, 235.0f, 276.0f, 237.0f, 274.0f, 239.0f, 272.0f, 241.0f, 270.0f, 243.0f, 268.0f, 245.0f, 266.0f, 247.0f, 264.0f, 249.0f, 262.0f, 251.0f, 260.0f, 253.0f, 258.0f, 255.0f, 256.0f, 257.0f, 254.0f, 259.0f, 252.0f, 261.0f, 250.0f, 263.0f, 248.0f, 265.0f, 246.0f, 267.0f, 244.0f, 269.0f, 242.0f, 271.0f, 240.0f, 273.0f, 238.0f, 275.0f, 236.0f, 277.0f, 234.0f, 279.0f, 232.0f, 281.0f, 230.0f, 283.0f, 228.0f, 285.0f, 226.0f, 287.0f, 224.0f, 289.0f, 222.0f, 291.0f, 220.0f, 293.0f, 218.0f, 295.0f, 216.0f, 297.0f, 214.0f, 299.0f, 212.0f, 301.0f, 210.0f, 303.0f, 208.0f, 305.0f, 206.0f, 307.0f, 204.0f, 309.0f, 202.0f, 311.0f, 200.0f, 313.0f, 198.0f, 315.0f, 196.0f, 317.0f, 194.0f, 319.0f, 192.0f, 321.0f, 190.0f, 323.0f, 188.0f, 325.0f, 186.0f, 327.0f, 184.0f, 329.0f, 182.0f, 331.0f, 180.0f, 333.0f, 178.0f, 335.0f, 176.0f, 337.0f, 174.0f, 339.0f, 172.0f, 341.0f, 170.0f, 343.0f, 168.0f, 345.0f, 166.0f, 347.0f, 164.0f, 349.0f, 162.0f, 351.0f, 160.0f, 353.0f, 158.0f, 355.0f, 156.0f, 357.0f, 154.0f, 359.0f, 152.0f, 361.0f, 150.0f, 363.0f, 148.0f, 365.0f, 146.0f, 367.0f, 144.0f, 369.0f, 142.0f, 371.0f, 140.0f, 373.0f, 138.0f, 375.0f, 136.0f, 377.0f, 134.0f, 379.0f, 132.0f, 381.0f, 130.0f, 383.0f, 128.0f, 385.0f, 126.0f, 387.0f, 124.0f, 389.0f, 122.0f, 391.0f, 120.0f, 393.0f, 118.0f, 395.0f, 116.0f, 397.0f, 114.0f, 399.0f, 112.0f, 401.0f, 110.0f, 403.0f, 108.0f, 405.0f, 106.0f, 407.0f, 104.0f, 409.0f, 102.0f, 411.0f, 100.0f, 413.0f, 98.0f, 415.0f, 96.0f, 417.0f, 94.0f, 419.0f, 92.0f, 421.0f, 90.0f, 423.0f, 88.0f, 425.0f, 86.0f, 427.0f, 84.0f, 429.0f, 82.0f, 431.0f, 80.0f, 433.0f, 78.0f, 435.0f, 76.0f, 437.0f, 74.0f, 439.0f, 72.0f, 441.0f, 70.0f, 443.0f, 68.0f, 445.0f, 66.0f, 447.0f, 64.0f, 449.0f, 62.0f, 451.0f, 60.0f, 453.0f, 58.0f, 455.0f, 56.0f, 457.0f, 54.0f, 459.0f, 52.0f, 461.0f, 50.0f, 463.0f, 48.0f, 465.0f, 46.0f, 467.0f, 44.0f, 469.0f, 42.0f, 471.0f, 40.0f, 473.0f, 38.0f, 475.0f, 36.0f, 477.0f, 34.0f, 479.0f, 32.0f, 481.0f, 30.0f, 483.0f, 28.0f, 485.0f, 26.0f, 487.0f, 24.0f, 489.0f, 22.0f, 491.0f, 20.0f, 493.0f, 18.0f, 495.0f, 16.0f, 497.0f, 14.0f, 499.0f, 12.0f, 501.0f, 10.0f, 503.0f, 8.0f, 505.0f, 6.0f, 507.0f, 4.0f, 509.0f, 2.0f, 511.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.5f, 0.7310585786300049f, 1.0f, 0.9525741268224334f, 1.0f, 0.9933071490757153f, 1.0f, 0.9990889488055994f, 1.0f, 0.9998766054240137f, 1.0f, 0.999983298578152f, 1.0f, 0.999997739675702f, 1.0f, 0.999999694097773f, 1.0f, 0.9999999586006244f, 1.0f, 0.9999999943972036f, 1.0f, 0.9999999992417439f, 1.0f, 0.9999999998973812f, 1.0f, 0.999999999986112f, 1.0f, 0.9999999999981204f, 1.0f, 0.9999999999997455f, 1.0f, 0.9999999999999656f, 1.0f, 0.9999999999999953f, 1.0f, 0.9999999999999993f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.9999999999999998f, 1.0f, 0.9999999999999982f, 1.0f, 0.9999999999999873f, 1.0f, 0.9999999999999065f, 1.0f, 0.9999999999993086f, 1.0f, 0.999999999994891f, 1.0f, 0.9999999999622486f, 1.0f, 0.9999999997210531f, 1.0f, 0.9999999979388463f, 1.0f, 0.9999999847700205f, 1.0f, 0.9999998874648379f, 1.0f, 0.9999991684719722f, 1.0f, 0.9999938558253978f, 1.0f, 0.9999546021312976f, 1.0f, 0.9996646498695336f, 1.0f, 0.9975273768433653f, 1.0f, 0.9820137900379085f, 1.0f, 0.8807970779778823f, 1.0f, 0.5f, 0.7310585786300049f, 1.0f, 0.9525741268224334f, 1.0f, 0.9933071490757153f, 1.0f, 0.9990889488055994f, 1.0f, 0.9998766054240137f, 1.0f, 0.999983298578152f, 1.0f, 0.999997739675702f, 1.0f, 0.999999694097773f, 1.0f, 0.9999999586006244f, 1.0f, 0.9999999943972036f, 1.0f, 0.9999999992417439f, 1.0f, 0.9999999998973812f, 1.0f, 0.999999999986112f, 1.0f, 0.9999999999981204f, 1.0f, 0.9999999999997455f, 1.0f, 0.9999999999999656f, 1.0f, 0.9999999999999953f, 1.0f, 0.9999999999999993f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.9999999999999998f, 1.0f, 0.9999999999999982f, 1.0f, 0.9999999999999873f, 1.0f, 0.9999999999999065f, 1.0f, 0.9999999999993086f, 1.0f, 0.999999999994891f, 1.0f, 0.9999999999622486f, 1.0f, 0.9999999997210531f, 1.0f, 0.9999999979388463f, 1.0f, 0.9999999847700205f, 1.0f, 0.9999998874648379f, 1.0f, 0.9999991684719722f, 1.0f, 0.9999938558253978f, 1.0f, 0.9999546021312976f, 1.0f, 0.9996646498695336f, 1.0f, 0.9975273768433653f, 1.0f, 0.9820137900379085f, 1.0f, 0.8807970779778823f, 1.0f, 0.5f, 0.7310585786300049f, 1.0f, 0.9525741268224334f, 1.0f, 0.9933071490757153f, 1.0f, 0.9990889488055994f, 1.0f, 0.9998766054240137f, 1.0f, 0.999983298578152f, 1.0f, 0.999997739675702f, 1.0f, 0.999999694097773f, 1.0f, 0.9999999586006244f, 1.0f, 0.9999999943972036f, 1.0f, 0.9999999992417439f, 1.0f, 0.9999999998973812f, 1.0f, 0.999999999986112f, 1.0f, 0.9999999999981204f, 1.0f, 0.9999999999997455f, 1.0f, 0.9999999999999656f, 1.0f, 0.9999999999999953f, 1.0f, 0.9999999999999993f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.9999999999999998f, 1.0f, 0.9999999999999982f, 1.0f, 0.9999999999999873f, 1.0f, 0.9999999999999065f, 1.0f, 0.9999999999993086f, 1.0f, 0.999999999994891f, 1.0f, 0.9999999999622486f, 1.0f, 0.9999999997210531f, 1.0f, 0.9999999979388463f, 1.0f, 0.9999999847700205f, 1.0f, 0.9999998874648379f, 1.0f, 0.9999991684719722f, 1.0f, 0.9999938558253978f, 1.0f, 0.9999546021312976f, 1.0f, 0.9996646498695336f, 1.0f, 0.9975273768433653f, 1.0f, 0.9820137900379085f, 1.0f, 0.8807970779778823f, 1.0f, 0.5f, 0.7310585786300049f, 1.0f, 0.9525741268224334f, 1.0f, 0.9933071490757153f, 1.0f, 0.9990889488055994f, 1.0f, 0.9998766054240137f, 1.0f, 0.999983298578152f, 1.0f, 0.999997739675702f, 1.0f, 0.999999694097773f, 1.0f, 0.9999999586006244f, 1.0f, 0.9999999943972036f, 1.0f, 0.9999999992417439f, 1.0f, 0.9999999998973812f, 1.0f, 0.999999999986112f, 1.0f, 0.9999999999981204f, 1.0f, 0.9999999999997455f, 1.0f, 0.9999999999999656f, 1.0f, 0.9999999999999953f, 1.0f, 0.9999999999999993f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.9999999999999998f, 1.0f, 0.9999999999999982f, 1.0f, 0.9999999999999873f, 1.0f, 0.9999999999999065f, 1.0f, 0.9999999999993086f, 1.0f, 0.999999999994891f, 1.0f, 0.9999999999622486f, 1.0f, 0.9999999997210531f, 1.0f, 0.9999999979388463f, 1.0f, 0.9999999847700205f, 1.0f, 0.9999998874648379f, 1.0f, 0.9999991684719722f, 1.0f, 0.9999938558253978f, 1.0f, 0.9999546021312976f, 1.0f, 0.9996646498695336f, 1.0f, 0.9975273768433653f, 1.0f, 0.9820137900379085f, 1.0f, 0.8807970779778823f, 1.0f, 0.5f, 0.7310585786300049f, 1.0f, 0.9525741268224334f, 1.0f, 0.9933071490757153f, 1.0f, 0.9990889488055994f, 1.0f, 0.9998766054240137f, 1.0f, 0.999983298578152f, 1.0f, 0.999997739675702f, 1.0f, 0.999999694097773f, 1.0f, 0.9999999586006244f, 1.0f, 0.9999999943972036f, 1.0f, 0.9999999992417439f, 1.0f, 0.9999999998973812f, 1.0f, 0.999999999986112f, 1.0f, 0.9999999999981204f, 1.0f, 0.9999999999997455f, 1.0f, 0.9999999999999656f, 1.0f, 0.9999999999999953f, 1.0f, 0.9999999999999993f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.9999999999999998f, 1.0f, 0.9999999999999982f, 1.0f, 0.9999999999999873f, 1.0f, 0.9999999999999065f, 1.0f, 0.9999999999993086f, 1.0f, 0.999999999994891f, 1.0f, 0.9999999999622486f, 1.0f, 0.9999999997210531f, 1.0f, 0.9999999979388463f, 1.0f, 0.9999999847700205f, 1.0f, 0.9999998874648379f, 1.0f, 0.9999991684719722f, 1.0f, 0.9999938558253978f, 1.0f, 0.9999546021312976f, 1.0f, 0.9996646498695336f, 1.0f, 0.9975273768433653f, 1.0f, 0.9820137900379085f, 1.0f, 0.8807970779778823f, 1.0f, 0.5f, 0.7310585786300049f, 1.0f, 0.9525741268224334f, 1.0f, 0.9933071490757153f, 1.0f, 0.9990889488055994f, 1.0f, 0.9998766054240137f, 1.0f, 0.999983298578152f, 1.0f, 0.999997739675702f, 1.0f, 0.999999694097773f, 1.0f, 0.9999999586006244f, 1.0f, 0.9999999943972036f, 1.0f, 0.9999999992417439f, 1.0f, 0.9999999998973812f, 1.0f, 0.999999999986112f, 1.0f, 0.9999999999981204f, 1.0f, 0.9999999999997455f, 1.0f, 0.9999999999999656f, 1.0f, 0.9999999999999953f, 1.0f, 0.9999999999999993f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.9999999999999998f, 1.0f, 0.9999999999999982f, 1.0f, 0.9999999999999873f, 1.0f, 0.9999999999999065f, 1.0f, 0.9999999999993086f, 1.0f, 0.999999999994891f, 1.0f, 0.9999999999622486f, 1.0f, 0.9999999997210531f, 1.0f, 0.9999999979388463f, 1.0f, 0.9999999847700205f, 1.0f, 0.9999998874648379f, 1.0f, 0.9999991684719722f, 1.0f, 0.9999938558253978f, 1.0f, 0.9999546021312976f, 1.0f, 0.9996646498695336f, 1.0f, 0.9975273768433653f, 1.0f, 0.9820137900379085f, 1.0f, 0.8807970779778823f, 1.0f, 0.5f, 0.7310585786300049f, 1.0f, 0.9525741268224334f, 1.0f, 0.9933071490757153f, 1.0f, 0.9990889488055994f, 1.0f, 0.9998766054240137f, 1.0f, 0.999983298578152f, 1.0f, 0.999997739675702f, 1.0f, 0.999999694097773f, 1.0f, 0.9999999586006244f, 1.0f, 0.9999999943972036f, 1.0f, 0.9999999992417439f, 1.0f, 0.9999999998973812f, 1.0f, 0.999999999986112f, 1.0f, 0.9999999999981204f, 1.0f, 0.9999999999997455f, 1.0f, 0.9999999999999656f, 1.0f, 0.9999999999999953f, 1.0f, 0.9999999999999993f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.9999999999999998f, 1.0f, 0.9999999999999982f, 1.0f, 0.9999999999999873f, 1.0f, 0.9999999999999065f, 1.0f, 0.9999999999993086f, 1.0f, 0.999999999994891f, 1.0f, 0.9999999999622486f, 1.0f, 0.9999999997210531f, 1.0f, 0.9999999979388463f, 1.0f, 0.9999999847700205f, 1.0f, 0.9999998874648379f, 1.0f, 0.9999991684719722f, 1.0f, 0.9999938558253978f, 1.0f, 0.9999546021312976f, 1.0f, 0.9996646498695336f, 1.0f, 0.9975273768433653f, 1.0f, 0.9820137900379085f, 1.0f, 0.8807970779778823f, 1.0f, 0.5f, 0.7310585786300049f, 1.0f, 0.9525741268224334f, 1.0f, 0.9933071490757153f, 1.0f, 0.9990889488055994f, 1.0f, 0.9998766054240137f, 1.0f, 0.999983298578152f, 1.0f, 0.999997739675702f, 1.0f, 0.999999694097773f, 1.0f, 0.9999999586006244f, 1.0f, 0.9999999943972036f, 1.0f, 0.9999999992417439f, 1.0f, 0.9999999998973812f, 1.0f, 0.999999999986112f, 1.0f, 0.9999999999981204f, 1.0f, 0.9999999999997455f, 1.0f, 0.9999999999999656f, 1.0f, 0.9999999999999953f, 1.0f, 0.9999999999999993f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.9999999999999998f, 1.0f, 0.9999999999999982f, 1.0f, 0.9999999999999873f, 1.0f, 0.9999999999999065f, 1.0f, 0.9999999999993086f, 1.0f, 0.999999999994891f, 1.0f, 0.9999999999622486f, 1.0f, 0.9999999997210531f, 1.0f, 0.9999999979388463f, 1.0f, 0.9999999847700205f, 1.0f, 0.9999998874648379f, 1.0f, 0.9999991684719722f, 1.0f, 0.9999938558253978f, 1.0f, 0.9999546021312976f, 1.0f, 0.9996646498695336f, 1.0f, 0.9975273768433653f, 1.0f, 0.9820137900379085f, 1.0f, 0.8807970779778823f, 1.0f, 0.5f, 0.7310585786300049f, 1.0f, 0.9525741268224334f, 1.0f, 0.9933071490757153f, 1.0f, 0.9990889488055994f, 1.0f, 0.9998766054240137f, 1.0f, 0.999983298578152f, 1.0f, 0.999997739675702f, 1.0f, 0.999999694097773f, 1.0f, 0.9999999586006244f, 1.0f, 0.9999999943972036f, 1.0f, 0.9999999992417439f, 1.0f, 0.9999999998973812f, 1.0f, 0.999999999986112f, 1.0f, 0.9999999999981204f, 1.0f, 0.9999999999997455f, 1.0f, 0.9999999999999656f, 1.0f, 0.9999999999999953f, 1.0f, 0.9999999999999993f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.9999999999999998f, 1.0f, 0.9999999999999982f, 1.0f, 0.9999999999999873f, 1.0f, 0.9999999999999065f, 1.0f, 0.9999999999993086f, 1.0f, 0.999999999994891f, 1.0f, 0.9999999999622486f, 1.0f, 0.9999999997210531f, 1.0f, 0.9999999979388463f, 1.0f, 0.9999999847700205f, 1.0f, 0.9999998874648379f, 1.0f, 0.9999991684719722f, 1.0f, 0.9999938558253978f, 1.0f, 0.9999546021312976f, 1.0f, 0.9996646498695336f, 1.0f, 0.9975273768433653f, 1.0f, 0.9820137900379085f, 1.0f, 0.8807970779778823f, 1.0f, 0.5f, 0.7310585786300049f, 1.0f, 0.9525741268224334f, 1.0f, 0.9933071490757153f, 1.0f, 0.9990889488055994f, 1.0f, 0.9998766054240137f, 1.0f, 0.999983298578152f, 1.0f, 0.999997739675702f, 1.0f, 0.999999694097773f, 1.0f, 0.9999999586006244f, 1.0f, 0.9999999943972036f, 1.0f, 0.9999999992417439f, 1.0f, 0.9999999998973812f, 1.0f, 0.999999999986112f, 1.0f, 0.9999999999981204f, 1.0f, 0.9999999999997455f, 1.0f, 0.9999999999999656f, 1.0f, 0.9999999999999953f, 1.0f, 0.9999999999999993f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.9999999999999998f, 1.0f, 0.9999999999999982f, 1.0f, 0.9999999999999873f, 1.0f, 0.9999999999999065f, 1.0f, 0.9999999999993086f, 1.0f, 0.999999999994891f, 1.0f, 0.9999999999622486f, 1.0f, 0.9999999997210531f, 1.0f, 0.9999999979388463f, 1.0f, 0.9999999847700205f, 1.0f, 0.9999998874648379f, 1.0f, 0.9999991684719722f, 1.0f, 0.9999938558253978f, 1.0f, 0.9999546021312976f, 1.0f, 0.9996646498695336f, 1.0f, 0.9975273768433653f, 1.0f, 0.9820137900379085f, 1.0f, 0.8807970779778823f, 1.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/logistic_quant8_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/logistic_quant8_1.example.cpp
new file mode 100644
index 000000000..ce600f709
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/logistic_quant8_1.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: logistic_quant8_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 1, 2, 127}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {128, 159, 187, 255}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/logistic_quant8_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/logistic_quant8_2.example.cpp
new file mode 100644
index 000000000..55ece5fa4
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/logistic_quant8_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: logistic_quant8_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {128, 159, 187, 209, 225, 237, 244, 248, 251, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/lsh_projection.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/lsh_projection.example.cpp
new file mode 100644
index 000000000..4996fff12
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/lsh_projection.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: lsh_projection.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{1, {0.12f, 0.34f, 0.56f}}},
+ // int -> INT32 map
+ {{0, {12345, 54321, 67890, 9876, -12345678, -87654321}}},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {{0, {1, 1, 1, 0, 1, 1, 1, 0}}},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/lsh_projection_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/lsh_projection_2.example.cpp
new file mode 100644
index 000000000..aa9de45e6
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/lsh_projection_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: lsh_projection_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{1, {}}},
+ // int -> INT32 map
+ {{0, {12345, 54321, 67890, 9876, -12345678, -87654321}}},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {{0, {1, 2, 2, 0}}},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/lsh_projection_weights_as_inputs.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/lsh_projection_weights_as_inputs.example.cpp
new file mode 100644
index 000000000..512557d0f
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/lsh_projection_weights_as_inputs.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: lsh_projection_weights_as_inputs.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.123f, 0.456f, -0.321f, -0.654f, 1.234f, 5.678f, -4.321f, -8.765f}}, {2, {0.12f, 0.34f, 0.56f}}},
+ // int -> INT32 map
+ {{1, {12345, 54321, 67890, 9876, -12345678, -87654321}}},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {{0, {1, 1, 1, 0, 1, 1, 1, 0}}},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/lstm.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/lstm.example.cpp
new file mode 100644
index 000000000..6117f55c0
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/lstm.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: lstm.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {2.0f, 3.0f}}, {1, {-0.45018822f, -0.02338299f, -0.0870589f, -0.34550029f, 0.04266912f, -0.15680569f, -0.34856534f, 0.43890524f}}, {2, {0.09701663f, 0.20334584f, -0.50592935f, -0.31343272f, -0.40032279f, 0.44781327f, 0.01387155f, -0.35593212f}}, {3, {-0.50013041f, 0.1370284f, 0.11810488f, 0.2013163f, -0.20583314f, 0.44344562f, 0.22077113f, -0.29909778f}}, {4, {-0.25065863f, -0.28290087f, 0.04613829f, 0.40525138f, 0.44272184f, 0.03897077f, -0.1556896f, 0.19487578f}}, {5, {-0.0063535f, -0.2042388f, 0.31454784f, -0.35746509f, 0.28902304f, 0.08183324f, -0.16555229f, 0.02286911f, -0.13566875f, 0.03034258f, 0.48091322f, -0.12528998f, 0.24077177f, -0.51332325f, -0.33502164f, 0.10629296f}}, {6, {-0.48684245f, -0.06655136f, 0.42224967f, 0.2112639f, 0.27654213f, 0.20864892f, -0.07646349f, 0.45877004f, 0.00141793f, -0.14609534f, 0.36447752f, 0.09196436f, 0.28053468f, 0.01560611f, -0.20127171f, -0.01140004f}}, {7, {-0.3407414f, 0.24443203f, -0.2078532f, 0.26320225f, 0.05695659f, -0.00123841f, -0.4744786f, -0.35869038f, -0.06418842f, -0.13502428f, -0.501764f, 0.22830659f, -0.46367589f, 0.26016325f, -0.03894562f, -0.16368064f}}, {8, {0.43385774f, -0.17194885f, 0.2718237f, 0.09215671f, 0.24107647f, -0.39835793f, 0.18212086f, 0.01301402f, 0.48572797f, -0.50656658f, 0.20047462f, -0.20607421f, -0.51818722f, -0.15390486f, 0.0468148f, 0.39922136f}}, {9, {}}, {10, {}}, {11, {}}, {12, {0.0f, 0.0f, 0.0f, 0.0f}}, {13, {1.0f, 1.0f, 1.0f, 1.0f}}, {14, {0.0f, 0.0f, 0.0f, 0.0f}}, {15, {0.0f, 0.0f, 0.0f, 0.0f}}, {16, {}}, {17, {}}, {18, {0, 0, 0, 0}}, {19, {0, 0, 0, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{1, {-0.0297319f, 0.122947f, 0.208851f, -0.153588f}}, {2, {-0.145439f, 0.157475f, 0.293663f, -0.277353f}}, {3, {-0.02973187f, 0.1229473f, 0.20885126f, -0.15358765f}}, {0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/lstm2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/lstm2.example.cpp
new file mode 100644
index 000000000..167e84106
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/lstm2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: lstm2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {2.0f, 3.0f}}, {1, {}}, {2, {-0.55291498f, -0.42866567f, 0.13056988f, -0.3633365f, -0.22755712f, 0.28253698f, 0.24407166f, 0.33826375f}}, {3, {-0.49770179f, -0.27711356f, -0.09624726f, 0.05100781f, 0.04717243f, 0.48944736f, -0.38535351f, -0.17212132f}}, {4, {0.10725588f, -0.02335852f, -0.55932593f, -0.09426838f, -0.44257352f, 0.54939759f, 0.01533556f, 0.42751634f}}, {5, {}}, {6, {-0.13832897f, -0.0515101f, -0.2359007f, -0.16661474f, -0.14340827f, 0.36986142f, 0.23414481f, 0.55899f, 0.10798943f, -0.41174671f, 0.17751795f, -0.34484994f, -0.35874045f, -0.11352962f, 0.27268326f, 0.54058349f}}, {7, {0.54066205f, -0.32668582f, -0.43562764f, -0.56094903f, 0.42957711f, 0.01841056f, -0.32764608f, -0.33027974f, -0.10826075f, 0.20675004f, 0.19069612f, -0.03026325f, -0.54532051f, 0.33003211f, 0.44901288f, 0.21193194f}}, {8, {0.41613156f, 0.42610586f, -0.16495961f, -0.5663873f, 0.30579174f, -0.05115908f, -0.33941799f, 0.23364776f, 0.11178309f, 0.09481031f, -0.26424935f, 0.46261835f, 0.50248802f, 0.26114327f, -0.43736315f, 0.33149987f}}, {9, {}}, {10, {0.47485286f, -0.51955009f, -0.24458408f, 0.31544167f}}, {11, {-0.17135078f, 0.82760304f, 0.85573703f, -0.77109635f}}, {12, {}}, {13, {1.0f, 1.0f, 1.0f, 1.0f}}, {14, {0.0f, 0.0f, 0.0f, 0.0f}}, {15, {0.0f, 0.0f, 0.0f, 0.0f}}, {16, {}}, {17, {}}, {18, {0, 0, 0, 0}}, {19, {0, 0, 0, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{1, {-0.364445f, -0.00352185f, 0.128866f, -0.0516365f}}, {2, {-0.760444f, -0.0180416f, 0.182264f, -0.0649371f}}, {3, {-0.36444446f, -0.00352185f, 0.12886585f, -0.05163646f}}, {0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/lstm2_state.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/lstm2_state.example.cpp
new file mode 100644
index 000000000..9bc84b4e9
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/lstm2_state.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: lstm2_state.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {3.0f, 4.0f}}, {1, {}}, {2, {-0.55291498f, -0.42866567f, 0.13056988f, -0.3633365f, -0.22755712f, 0.28253698f, 0.24407166f, 0.33826375f}}, {3, {-0.49770179f, -0.27711356f, -0.09624726f, 0.05100781f, 0.04717243f, 0.48944736f, -0.38535351f, -0.17212132f}}, {4, {0.10725588f, -0.02335852f, -0.55932593f, -0.09426838f, -0.44257352f, 0.54939759f, 0.01533556f, 0.42751634f}}, {5, {}}, {6, {-0.13832897f, -0.0515101f, -0.2359007f, -0.16661474f, -0.14340827f, 0.36986142f, 0.23414481f, 0.55899f, 0.10798943f, -0.41174671f, 0.17751795f, -0.34484994f, -0.35874045f, -0.11352962f, 0.27268326f, 0.54058349f}}, {7, {0.54066205f, -0.32668582f, -0.43562764f, -0.56094903f, 0.42957711f, 0.01841056f, -0.32764608f, -0.33027974f, -0.10826075f, 0.20675004f, 0.19069612f, -0.03026325f, -0.54532051f, 0.33003211f, 0.44901288f, 0.21193194f}}, {8, {0.41613156f, 0.42610586f, -0.16495961f, -0.5663873f, 0.30579174f, -0.05115908f, -0.33941799f, 0.23364776f, 0.11178309f, 0.09481031f, -0.26424935f, 0.46261835f, 0.50248802f, 0.26114327f, -0.43736315f, 0.33149987f}}, {9, {}}, {10, {0.47485286f, -0.51955009f, -0.24458408f, 0.31544167f}}, {11, {-0.17135078f, 0.82760304f, 0.85573703f, -0.77109635f}}, {12, {}}, {13, {1.0f, 1.0f, 1.0f, 1.0f}}, {14, {0.0f, 0.0f, 0.0f, 0.0f}}, {15, {0.0f, 0.0f, 0.0f, 0.0f}}, {16, {}}, {17, {}}, {18, {-0.364445f, -0.00352185f, 0.128866f, -0.0516365f}}, {19, {-0.760444f, -0.0180416f, 0.182264f, -0.0649371f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{1, {-0.423122f, -0.0121822f, 0.24201f, -0.0812458f}}, {2, {-0.978419f, -0.139203f, 0.338163f, -0.0983904f}}, {3, {-0.42312205f, -0.01218222f, 0.24201041f, -0.08124574f}}, {0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/lstm2_state2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/lstm2_state2.example.cpp
new file mode 100644
index 000000000..2529e2c7e
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/lstm2_state2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: lstm2_state2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 1.0f}}, {1, {}}, {2, {-0.55291498f, -0.42866567f, 0.13056988f, -0.3633365f, -0.22755712f, 0.28253698f, 0.24407166f, 0.33826375f}}, {3, {-0.49770179f, -0.27711356f, -0.09624726f, 0.05100781f, 0.04717243f, 0.48944736f, -0.38535351f, -0.17212132f}}, {4, {0.10725588f, -0.02335852f, -0.55932593f, -0.09426838f, -0.44257352f, 0.54939759f, 0.01533556f, 0.42751634f}}, {5, {}}, {6, {-0.13832897f, -0.0515101f, -0.2359007f, -0.16661474f, -0.14340827f, 0.36986142f, 0.23414481f, 0.55899f, 0.10798943f, -0.41174671f, 0.17751795f, -0.34484994f, -0.35874045f, -0.11352962f, 0.27268326f, 0.54058349f}}, {7, {0.54066205f, -0.32668582f, -0.43562764f, -0.56094903f, 0.42957711f, 0.01841056f, -0.32764608f, -0.33027974f, -0.10826075f, 0.20675004f, 0.19069612f, -0.03026325f, -0.54532051f, 0.33003211f, 0.44901288f, 0.21193194f}}, {8, {0.41613156f, 0.42610586f, -0.16495961f, -0.5663873f, 0.30579174f, -0.05115908f, -0.33941799f, 0.23364776f, 0.11178309f, 0.09481031f, -0.26424935f, 0.46261835f, 0.50248802f, 0.26114327f, -0.43736315f, 0.33149987f}}, {9, {}}, {10, {0.47485286f, -0.51955009f, -0.24458408f, 0.31544167f}}, {11, {-0.17135078f, 0.82760304f, 0.85573703f, -0.77109635f}}, {12, {}}, {13, {1.0f, 1.0f, 1.0f, 1.0f}}, {14, {0.0f, 0.0f, 0.0f, 0.0f}}, {15, {0.0f, 0.0f, 0.0f, 0.0f}}, {16, {}}, {17, {}}, {18, {-0.423122f, -0.0121822f, 0.24201f, -0.0812458f}}, {19, {-0.978419f, -0.139203f, 0.338163f, -0.0983904f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{1, {0, 0, 0, 0}}, {2, {0, 0, 0, 0}}, {3, {-0.358325f, -0.04621704f, 0.21641694f, -0.06471302f}}, {0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/lstm3.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/lstm3.example.cpp
new file mode 100644
index 000000000..03e5d4a5b
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/lstm3.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: lstm3.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.787926f, 0.151646f, 0.071352f, 0.118426f, 0.458058f, 0.295743f, 0.544053f, 0.690064f, 0.858138f, 0.497181f}}, {1, {0.021393683f, 0.06124551f, 0.046905167f, -0.014657677f, -0.03149463f, 0.09171803f, 0.14647801f, 0.10797193f, -0.0057968358f, 0.0019193048f, -0.2726754f, 0.10154029f, -0.018539885f, 0.080349885f, -0.10262385f, -0.022599787f, -0.09121155f, -0.008675967f, -0.045206103f, -0.0821282f, -0.008045952f, 0.015478081f, 0.055217247f, 0.038719587f, 0.044153627f, -0.06453243f, 0.05031825f, -0.046935108f, -0.008164439f, 0.014574226f, -0.1671009f, -0.15519552f, -0.16819797f, -0.13971269f, -0.11953059f, 0.25005487f, -0.22790983f, 0.009855087f, -0.028140958f, -0.11200698f, 0.11295408f, -0.0035217577f, 0.054485075f, 0.05184695f, 0.064711206f, 0.10989193f, 0.11674786f, 0.03490607f, 0.07727357f, 0.11390585f, -0.1863375f, -0.1034451f, -0.13945189f, -0.049401227f, -0.18767063f, 0.042483903f, 0.14233552f, 0.13832581f, 0.18350165f, 0.14545603f, -0.028545704f, 0.024939531f, 0.050929718f, 0.0076203286f, -0.0029723682f, -0.042484224f, -0.11827596f, -0.09171104f, -0.10808628f, -0.16327988f, -0.2273378f, -0.0993647f, -0.017155107f, 0.0023917493f, 0.049272764f, 0.0038534778f, 0.054764505f, 0.089753784f, 0.06947234f, 0.08014476f, -0.04544234f, -0.0497073f, -0.07135631f, -0.048929106f, -0.004042012f, -0.009284026f, 0.018042054f, 0.0036860977f, -0.07427302f, -0.11434604f, -0.018995456f, 0.031487543f, 0.012834908f, 0.019977754f, 0.044256654f, -0.39292613f, -0.18519334f, -0.11651281f, -0.06809892f, 0.011373677f}}, {2, {-0.0018401089f, -0.004852237f, 0.03698424f, 0.014181704f, 0.028273236f, -0.016726194f, -0.05249759f, -0.10204261f, 0.00861066f, -0.040979505f, -0.009899187f, 0.01923892f, -0.028177269f, -0.08535103f, -0.14585495f, 0.10662567f, -0.01909731f, -0.017883534f, -0.0047269356f, -0.045103323f, 0.0030784295f, 0.076784775f, 0.07463696f, 0.094531395f, 0.0814421f, -0.12257899f, -0.033945758f, -0.031303465f, 0.045630626f, 0.06843887f, -0.13492945f, -0.012480007f, -0.0811829f, -0.07224499f, -0.09628791f, 0.045100946f, 0.0012300825f, 0.013964662f, 0.099372394f, 0.02543059f, 0.06958324f, 0.034257296f, 0.0482646f, 0.06267997f, 0.052625068f, 0.12784666f, 0.07077897f, 0.025725935f, 0.04165009f, 0.07241905f, 0.018668644f, -0.037377294f, -0.06277783f, -0.08833636f, -0.040120605f, -0.011405586f, -0.007808335f, -0.010301386f, -0.005102167f, 0.027717464f, 0.05483423f, 0.11449111f, 0.11289652f, 0.10939839f, 0.13396506f, -0.08402166f, -0.01901462f, -0.044678304f, -0.07720565f, 0.014350063f, -0.11757958f, -0.0652038f, -0.08185733f, -0.076754324f, -0.092614375f, 0.10405491f, 0.052960336f, 0.035755895f, 0.035839386f, -0.012540553f, 0.036881298f, 0.02913376f, 0.03420159f, 0.05448447f, -0.054523353f, 0.02582715f, 0.02327355f, -0.011857179f, -0.0011980024f, -0.034641717f, -0.026125094f, -0.17582615f, -0.15923657f, -0.27486774f, -0.0006143371f, 0.0001771948f, -8.470171e-05f, 0.02651807f, 0.045790765f, 0.06956496f}}, {3, {-0.04580283f, -0.09549462f, -0.032418985f, -0.06454633f, -0.043528453f, 0.043018587f, -0.049152344f, -0.12418144f, -0.078985475f, -0.07596889f, 0.019484362f, -0.11434962f, -0.0074034138f, -0.06314844f, -0.092981495f, 0.0062155537f, -0.025034338f, -0.0028890965f, 0.048929527f, 0.06235075f, 0.10665918f, -0.032036792f, -0.08505916f, -0.10843358f, -0.13002433f, -0.036816437f, -0.02130134f, -0.016518239f, 0.0047691227f, -0.0025825808f, 0.066017866f, 0.029991534f, -0.10652836f, -0.1037554f, -0.13056071f, -0.03266643f, -0.033702414f, -0.006473424f, -0.04611692f, 0.014419339f, -0.025174323f, 0.0396852f, 0.081777506f, 0.06157468f, 0.10210095f, -0.009658194f, 0.046511717f, 0.03603906f, 0.0069369148f, 0.015960095f, -0.06507666f, 0.09551598f, 0.053568836f, 0.06408714f, 0.12835667f, -0.008714329f, -0.20211966f, -0.12093674f, 0.029450472f, 0.2849013f, -0.029227901f, 0.1164364f, -0.08560263f, 0.09941786f, -0.036999565f, -0.028842626f, -0.0033637602f, -0.017012902f, -0.09720865f, -0.11193351f, -0.029155117f, -0.017936034f, -0.009768936f, -0.04223324f, -0.036159635f, 0.06505112f, -0.021742892f, -0.023377212f, -0.07221364f, -0.06430552f, 0.05453865f, 0.091149814f, 0.06387331f, 0.007518393f, 0.055960953f, 0.069779344f, 0.046411168f, 0.10509911f, 0.07463894f, 0.0075130584f, 0.012850982f, 0.04555431f, 0.056955688f, 0.06555285f, 0.050801456f, -0.009862683f, 0.00826772f, -0.026555609f, -0.0073611983f, -0.0014897042f}}, {4, {-0.0998932f, -0.07201956f, -0.052803773f, -0.15629593f, -0.15001918f, -0.07650751f, 0.02359855f, -0.075155355f, -0.08037709f, -0.15093534f, 0.029517552f, -0.04751393f, 0.010350531f, -0.02664851f, -0.016839722f, -0.023121163f, 0.0077019283f, 0.012851257f, -0.05040649f, -0.0129761f, -0.021737747f, -0.038305793f, -0.06870586f, -0.01481247f, -0.001285394f, 0.10124236f, 0.083122835f, 0.053313006f, -0.062235646f, -0.075637154f, -0.027833903f, 0.029774971f, 0.1130802f, 0.09218906f, 0.09506135f, -0.086665764f, -0.037162706f, -0.038880914f, -0.035832845f, -0.014481564f, -0.09825003f, -0.12048569f, -0.097665586f, -0.05287633f, -0.0964047f, -0.11366429f, 0.035777505f, 0.13568819f, 0.052451383f, 0.050649304f, 0.05798951f, -0.021852335f, -0.099848844f, 0.014740475f, -0.078897946f, 0.04974699f, 0.014160473f, 0.06973932f, 0.04964942f, 0.033364646f, 0.08190124f, 0.025535367f, 0.050893165f, 0.048514254f, 0.06945813f, -0.078907564f, -0.06707616f, -0.11844508f, -0.09986688f, -0.07509403f, 0.06263226f, 0.14925587f, 0.20188436f, 0.12098451f, 0.14639415f, 0.0015017595f, -0.014267382f, -0.03417257f, 0.012711468f, 0.0028300495f, -0.024758482f, -0.05098548f, -0.0821182f, 0.014225672f, 0.021544158f, 0.08949725f, 0.07505268f, -0.0020780868f, 0.04908258f, 0.06476295f, -0.022907063f, 0.027562456f, 0.040185735f, 0.019567577f, -0.015598739f, -0.049097303f, -0.017121866f, -0.083368234f, -0.02332002f, -0.0840956f}}, {5, {-0.001374326f, -0.078856036f, 0.10672688f, 0.029162422f, -0.11585556f, 0.02557986f, -0.13446963f, -0.035785314f, -0.01244275f, 0.025961924f, -0.02337298f, -0.044228926f, -0.055839065f, -0.046598054f, -0.010546039f, -0.06900766f, 0.027239809f, 0.022582639f, -0.013296484f, -0.05459212f, 0.08981f, -0.045407712f, 0.08682226f, -0.06867011f, -0.14390695f, -0.02916037f, 0.000996957f, 0.091420636f, 0.14283475f, -0.07390571f, -0.06402044f, 0.062524505f, -0.093129106f, 0.04860203f, -0.08364217f, -0.08119002f, 0.009352075f, 0.22920375f, 0.0016303885f, 0.11583097f, -0.13732095f, 0.012405723f, -0.07551853f, 0.06343048f, 0.12162708f, -0.031923793f, -0.014335606f, 0.01790974f, -0.10650317f, -0.0724401f, 0.08554849f, -0.05727212f, 0.06556731f, -0.042729504f, -0.043227166f, 0.011683251f, -0.013082158f, -0.029302018f, -0.010899579f, -0.062036745f, -0.022509435f, -0.00964907f, -0.01567329f, 0.04260106f, -0.07787477f, -0.11576462f, 0.017356863f, 0.048673786f, -0.017577527f, -0.05527947f, -0.082487635f, -0.040137455f, -0.10820036f, -0.04666372f, 0.022746278f, -0.07851417f, 0.01068115f, 0.032956902f, 0.022433773f, 0.0026891115f, 0.08944216f, -0.0685835f, 0.010513544f, 0.07228705f, 0.02032331f, -0.059686817f, -0.0005566496f, -0.086984694f, 0.040414046f, -0.1380399f, 0.094208956f, -0.05722982f, 0.012092817f, -0.04989123f, -0.086576f, -0.003399834f, -0.04696032f, -0.045747425f, 0.10091314f, 0.048676282f, -0.029037097f, 0.031399418f, -0.0040285117f, 0.047237843f, 0.09504992f, 0.041799378f, -0.049185462f, -0.031518843f, -0.10516937f, 0.026374253f, 0.10058866f, -0.0033195973f, -0.041975245f, 0.0073591834f, 0.0033782164f, -0.004325073f, -0.10167381f, 0.042500053f, -0.01447153f, 0.06464186f, -0.017142897f, 0.03312627f, 0.009205989f, 0.024138335f, -0.011337001f, 0.035530265f, -0.010912711f, 0.0706555f, -0.005894094f, 0.051841937f, -0.1401738f, -0.02351249f, 0.0365468f, 0.07590991f, 0.08838724f, 0.021681072f, -0.10086113f, 0.019608743f, -0.06195883f, 0.077335775f, 0.023646897f, -0.095322326f, 0.02233014f, 0.09756986f, -0.048691444f, -0.009579111f, 0.07595467f, 0.11480546f, -0.09801813f, 0.019894179f, 0.08502348f, 0.004032281f, 0.037211012f, 0.068537936f, -0.048005626f, -0.091520436f, -0.028379958f, -0.01556313f, 0.06554592f, -0.045599163f, -0.01672207f, -0.020169014f, -0.011877351f, -0.20212261f, 0.010889619f, 0.0047078193f, 0.038385306f, 0.08540671f, -0.017140968f, -0.0035865551f, 0.016678626f, 0.005633034f, 0.015963363f, 0.00871737f, 0.060130805f, 0.028611384f, 0.10109069f, -0.015060172f, -0.07894427f, 0.06401885f, 0.011584063f, -0.024466386f, 0.0047652307f, -0.09041358f, 0.030737216f, -0.0046374933f, 0.14215417f, -0.11823516f, 0.019899689f, 0.006106124f, -0.027092824f, 0.0786356f, 0.05052217f, -0.058925f, -0.011402121f, -0.024987547f, -0.0013661642f, -0.06832946f, -0.015667673f, -0.1083353f, -0.00096863037f, -0.06988685f, -0.053350925f, -0.027275559f, -0.033664223f, -0.07978348f, -0.025200296f, -0.017207067f, -0.058403496f, -0.055697463f, 0.005798788f, 0.12965427f, -0.062582195f, 0.0013350133f, -0.10482091f, 0.0379771f, 0.072521195f, -0.0029455067f, -0.13797039f, -0.03628521f, 0.013806405f, -0.017858358f, -0.01008298f, -0.07700066f, -0.017081132f, 0.019358726f, 0.0027079724f, 0.004635139f, 0.062634714f, -0.02338735f, -0.039547626f, -0.02050681f, 0.03385117f, -0.083611414f, 0.002862572f, -0.09421313f, 0.058618143f, -0.08598433f, 0.00972939f, 0.023867095f, -0.053934585f, -0.023203006f, 0.07452513f, -0.048767887f, -0.07314807f, -0.056307215f, -0.10433547f, -0.06440842f, 0.04328182f, 0.04389765f, -0.020006588f, -0.09076438f, -0.11652589f, -0.021705797f, 0.03345259f, -0.010329105f, -0.025767034f, 0.013057034f, -0.07316461f, -0.10145612f, 0.06358255f, 0.18531723f, 0.07759293f, 0.12006465f, 0.1305557f, 0.058638252f, -0.03393652f, 0.09622831f, -0.16253184f, -2.4580743e-06f, 0.079869635f, -0.070196845f, -0.005644518f, 0.06857898f, -0.12598175f, -0.035084512f, 0.03156317f, -0.12794146f, -0.031963028f, 0.04692781f, 0.030070418f, 0.0071660685f, -0.095516115f, -0.004643372f, 0.040170413f, -0.062104587f, -0.0037324072f, 0.0554317f, 0.08184801f, -0.019164372f, 0.06791302f, 0.034257166f, -0.10307039f, 0.021943003f, 0.046745934f, 0.0790918f, -0.0265588f, -0.007824208f, 0.042546265f, -0.00977924f, -0.0002440307f, -0.017384544f, -0.017990116f, 0.12252321f, -0.014512694f, -0.08251313f, 0.08861942f, 0.13589665f, 0.026351685f, 0.012641483f, 0.07466548f, 0.044301085f, -0.045414884f, -0.051112458f, 0.03444247f, -0.08502782f, -0.04106223f, -0.028126027f, 0.028473156f, 0.10467447f}}, {6, {-0.057784554f, -0.026057621f, -0.068447545f, -0.022581743f, 0.14811787f, 0.10826372f, 0.09471067f, 0.03987225f, -0.0039523416f, 0.00030638507f, 0.053185795f, 0.10572994f, 0.08414449f, -0.022036452f, -0.00066928595f, -0.09203576f, 0.032950465f, -0.10985798f, -0.023809856f, 0.0021431844f, -0.02196096f, -0.00326074f, 0.00058621005f, -0.074678116f, -0.06193199f, 0.055729095f, 0.03736828f, 0.020123724f, 0.061878487f, -0.04729229f, 0.034919553f, -0.07585433f, -0.04421272f, -0.044019096f, 0.085488975f, 0.04058006f, -0.06890133f, -0.030951202f, -0.024628663f, -0.07672815f, 0.034293607f, 0.08556707f, -0.05293577f, -0.033561368f, -0.04899627f, 0.0241671f, 0.015736353f, -0.095442444f, -0.029564252f, 0.016493602f, -0.035026584f, 0.022337519f, -0.026871363f, 0.004780428f, 0.0077918363f, -0.03601621f, 0.016435321f, -0.03263031f, -0.09543275f, -0.047392778f, 0.013454138f, 0.028934088f, 0.01685226f, -0.086110644f, -0.046250615f, -0.01847454f, 0.047608484f, 0.07339695f, 0.034546845f, -0.04881143f, 0.009128804f, -0.08802852f, 0.03761666f, 0.008096139f, -0.014454086f, 0.014361001f, -0.023502491f, -0.0011840804f, -0.07607001f, 0.001856849f, -0.06509276f, -0.006021153f, -0.08570962f, -0.1451793f, 0.060212336f, 0.055259194f, 0.06974018f, 0.049454916f, -0.027794661f, -0.08077226f, -0.016179763f, 0.1169753f, 0.17213494f, -0.0056326236f, -0.053934924f, -0.0124349f, -0.11520337f, 0.05409887f, 0.088759385f, 0.0019655675f, 0.0042065294f, 0.03881498f, 0.019844765f, 0.041858196f, -0.05695512f, 0.047233116f, 0.038937137f, -0.06542224f, 0.014429736f, -0.09719407f, 0.13908425f, -0.05379757f, 0.012321099f, 0.082840554f, -0.029899208f, 0.044217527f, 0.059855383f, 0.07711018f, -0.045319796f, 0.0948846f, -0.011724666f, -0.0033288454f, -0.033542685f, -0.04764985f, -0.13873616f, 0.040668588f, 0.034832682f, -0.015319203f, -0.018715994f, 0.046002675f, 0.0599172f, -0.043107376f, 0.0294216f, -0.002314414f, -0.022424703f, 0.0030315618f, 0.0014641669f, 0.0029166266f, -0.11878115f, 0.013738511f, 0.12375372f, -0.0006038222f, 0.029104086f, 0.087442465f, 0.052958444f, 0.07558703f, 0.04817258f, 0.044462286f, -0.015213451f, -0.08783778f, -0.0561384f, -0.003008196f, 0.047060397f, -0.002058388f, 0.03429439f, -0.018839769f, 0.024734668f, 0.024614193f, -0.042046934f, 0.09597743f, -0.0043254104f, 0.04320769f, 0.0064070094f, -0.0019131786f, -0.02558259f, -0.022822596f, -0.023273505f, -0.02464396f, -0.10991725f, -0.006240552f, 0.0074488563f, 0.024044557f, 0.04383914f, -0.046476185f, 0.028658995f, 0.060410924f, 0.050786525f, 0.009452605f, -0.0073054377f, -0.024810238f, 0.0052906186f, 0.0066939713f, -0.0020913032f, 0.014515517f, 0.015898481f, 0.021362653f, -0.030262267f, 0.016587038f, -0.011442813f, 0.041154444f, -0.007631438f, -0.03423484f, -0.010977775f, 0.036152758f, 0.0066366293f, 0.11915515f, 0.02318443f, -0.041350313f, 0.021485701f, -0.10906167f, -0.028218046f, -0.00954771f, 0.020531068f, -0.11995105f, -0.03672871f, 0.024019798f, 0.014255957f, -0.05221243f, -0.00661567f, -0.04630967f, 0.033188973f, 0.10107534f, -0.014027541f, 0.030796422f, -0.10270911f, -0.035999842f, 0.15443139f, 0.07684145f, 0.036571592f, -0.035900835f, -0.0034699554f, 0.06209149f, 0.015920248f, -0.031122351f, -0.03858649f, 0.01849943f, 0.13872518f, 0.01503974f, 0.069941424f, -0.06948533f, -0.0088794185f, 0.061282158f, -0.047401894f, 0.03100163f, -0.041533746f, -0.10430945f, 0.044574402f, -0.01425562f, -0.024290353f, 0.034563623f, 0.05866852f, 0.023947537f, -0.09445152f, 0.035450947f, 0.02247216f, -0.0042998926f, 0.061146557f, -0.10250651f, 0.020881841f, -0.06747029f, 0.10062043f, -0.0023941975f, 0.03532124f, -0.016341697f, 0.09685456f, -0.016764693f, 0.051808182f, 0.05875331f, -0.04536488f, 0.001626336f, -0.028892258f, -0.01048663f, -0.009793449f, -0.017093895f, 0.010987891f, 0.02357273f, -0.00010856845f, 0.0099760275f, -0.001845119f, -0.03551521f, 0.0018358806f, 0.05763657f, -0.01769146f, 0.040995963f, 0.02235177f, -0.060430344f, 0.11475477f, -0.023854522f, 0.10071741f, 0.0686208f, -0.014250481f, 0.034261297f, 0.047418304f, 0.08562733f, -0.030519066f, 0.0060542435f, 0.014653856f, -0.038836084f, 0.04096551f, 0.032249358f, -0.08355519f, -0.026823482f, 0.056386515f, -0.010401743f, -0.028396193f, 0.08507674f, 0.014410365f, 0.020995233f, 0.17040324f, 0.11511526f, 0.02459721f, 0.0066619175f, 0.025853224f, -0.023133837f, -0.081302024f, 0.017264642f, -0.009585969f, 0.09491168f, -0.051313367f, 0.054532815f, -0.014298593f, 0.10657464f, 0.007076659f, 0.10964551f, 0.0409152f, 0.008275321f, -0.07283536f, 0.07937492f, 0.04192024f, -0.1075027f}}, {7, {-0.037322544f, 0.018592842f, 0.0056175636f, -0.06253426f, 0.055647098f, -0.05713207f, -0.05626563f, 0.005559383f, 0.03375411f, -0.025757805f, -0.088049285f, 0.06017052f, -0.06570978f, 0.007384076f, 0.035123326f, -0.07920549f, 0.053676967f, 0.044480428f, -0.07663568f, 0.0071805613f, 0.08089997f, 0.05143358f, 0.038261272f, 0.03339287f, -0.027673481f, 0.044746667f, 0.028349208f, 0.020090483f, -0.019443132f, -0.030755889f, -0.0040000007f, 0.04465846f, -0.021585021f, 0.0031670958f, 0.0053199246f, -0.056117613f, -0.10893326f, 0.076739706f, -0.08509834f, -0.027997585f, 0.037871376f, 0.01449768f, -0.09002357f, -0.06111149f, -0.046195522f, 0.0422062f, -0.005683705f, -0.1253618f, -0.012925729f, -0.04890792f, 0.06985068f, 0.037654128f, 0.03398274f, -0.004781977f, 0.007032333f, -0.031787455f, 0.010868644f, -0.031489216f, 0.09525667f, 0.013939797f, 0.0058680447f, 0.0167067f, 0.02668468f, -0.04797466f, -0.048885044f, -0.12722108f, 0.035304096f, 0.06554885f, 0.00972396f, -0.039238118f, -0.05159735f, -0.11329045f, 0.1613692f, -0.03750952f, 0.06529313f, -0.071974665f, -0.11769596f, 0.015524369f, -0.0013754242f, -0.12446318f, 0.02786344f, -0.014179351f, 0.005264273f, 0.14376344f, 0.015983658f, 0.03406988f, -0.06939408f, 0.040699873f, 0.02111075f, 0.09669095f, 0.041345075f, -0.08316494f, -0.07684199f, -0.045768797f, 0.032298047f, -0.041805092f, 0.0119405f, 0.0061010392f, 0.12652606f, 0.0064572375f, -0.024950314f, 0.11574242f, 0.04508852f, -0.04335324f, 0.06760663f, -0.027437469f, 0.07216407f, 0.06977076f, -0.05438599f, 0.034033038f, -0.028602652f, 0.05346137f, 0.043184172f, -0.037189785f, 0.10420091f, 0.00882477f, -0.054019816f, -0.074273005f, -0.030617684f, -0.0028467078f, 0.024302477f, -0.0038869337f, 0.005332455f, 0.0013399826f, 0.04361412f, -0.007001822f, 0.09631092f, -0.06702025f, -0.042049985f, -0.035070654f, -0.04103342f, -0.10273396f, 0.0544271f, 0.037184782f, -0.13150354f, -0.0058036847f, -0.008264958f, 0.042035464f, 0.05891794f, 0.029673764f, 0.0063542654f, 0.044788733f, 0.054816857f, 0.062257513f, -0.00093483756f, 0.048938446f, -0.004952862f, -0.007730018f, -0.04043371f, -0.017094059f, 0.07229206f, -0.023670016f, -0.052195564f, -0.025616996f, -0.01520939f, 0.045104615f, -0.007376126f, 0.003533447f, 0.006570588f, 0.056037236f, 0.12436656f, 0.051817212f, 0.028532185f, -0.08686856f, 0.11868599f, 0.07663395f, -0.07323171f, 0.03463402f, -0.050708205f, -0.04458982f, -0.11590894f, 0.021273347f, 0.1251325f, -0.15313013f, -0.12224372f, 0.17228661f, 0.023029093f, 0.086124025f, 0.006445803f, -0.03496501f, 0.028332196f, 0.04449512f, -0.042436164f, -0.026587414f, -0.006041347f, -0.09292539f, -0.05678812f, 0.03897832f, 0.09465633f, 0.008115513f, -0.02171956f, 0.08304309f, 0.071401566f, 0.019622514f, 0.032163795f, -0.004167056f, 0.02295182f, 0.030739572f, 0.056506045f, 0.004612461f, 0.06524936f, 0.059999723f, 0.046395954f, -0.0045512207f, -0.1335546f, -0.030136576f, 0.11584653f, -0.014678886f, 0.0020118146f, -0.09688814f, -0.0790206f, 0.039770417f, -0.0329582f, 0.07922767f, 0.029322514f, 0.026405897f, 0.04207835f, -0.07073373f, 0.063781224f, 0.0859677f, -0.10925287f, -0.07011058f, 0.048005477f, 0.03438226f, -0.09606514f, -0.006669445f, -0.043381985f, 0.04240257f, -0.06955775f, -0.06769346f, 0.043903265f, -0.026784198f, -0.017840602f, 0.024307009f, -0.040079936f, -0.019946516f, 0.045318738f, -0.12233574f, 0.026170589f, 0.0074471775f, 0.15978073f, 0.10185836f, 0.10298046f, -0.015476589f, -0.039390966f, -0.072174534f, 0.0739445f, -0.1211869f, -0.0347889f, -0.07943156f, 0.014809798f, -0.12412325f, -0.0030663363f, 0.039695457f, 0.0647603f, -0.08291318f, -0.018529687f, -0.004423833f, 0.0037507233f, 0.084633216f, -0.01514876f, -0.056505352f, -0.012800942f, -0.06994386f, 0.012962922f, -0.031234352f, 0.07029052f, 0.016418684f, 0.03618972f, 0.055686004f, -0.08663945f, -0.017404709f, -0.054761406f, 0.029065743f, 0.052404847f, 0.020238016f, 0.0048197987f, -0.0214882f, 0.07078733f, 0.013016777f, 0.06262858f, 0.009184685f, 0.020785125f, -0.043904778f, -0.0270329f, -0.03299152f, -0.060088247f, -0.015162964f, -0.001828936f, 0.12642565f, -0.056757294f, 0.013586685f, 0.09232601f, -0.035886683f, 0.06000002f, 0.05229691f, -0.052580316f, -0.082029596f, -0.010794592f, 0.012947712f, -0.036429964f, -0.085508935f, -0.13127148f, -0.017744139f, 0.031502828f, 0.036232427f, -0.031581745f, 0.023051167f, -0.05325106f, -0.03421577f, 0.028793324f, -0.034633752f, -0.009881397f, -0.043551125f, -0.018609839f, 0.0019097115f, -0.008799762f, 0.056595087f, 0.0022273948f, 0.055752404f}}, {8, {0.025825322f, -0.05813119f, 0.09495884f, -0.045984812f, -0.01255415f, -0.0026479573f, -0.08196161f, -0.054914974f, -0.0046604523f, -0.029587349f, -0.044576716f, -0.07480124f, -0.082868785f, 0.023254942f, 0.027502948f, -0.0039728214f, -0.08683098f, -0.08116779f, -0.014675607f, -0.037924774f, -0.023314456f, -0.007401714f, -0.09255757f, 0.029460307f, -0.08829125f, -0.005139627f, -0.08989442f, -0.0555066f, 0.13596267f, -0.025062224f, -0.048351806f, -0.03850004f, 0.07266485f, -0.022414139f, 0.05940088f, 0.075114764f, 0.09597592f, -0.010211725f, -0.0049794707f, -0.011523867f, -0.025980417f, 0.072999895f, 0.11091378f, -0.081685916f, 0.014416728f, 0.043229222f, 0.034178585f, -0.07530371f, 0.035837382f, -0.085607f, -0.007721233f, -0.03287832f, -0.043848954f, -0.06404588f, -0.06632928f, -0.073643476f, 0.008214239f, -0.045984086f, 0.039764922f, 0.03474462f, 0.060612556f, -0.080590084f, 0.049127717f, 0.04151091f, -0.030063879f, 0.008801774f, -0.023021035f, -0.019558564f, 0.05158114f, -0.010947698f, -0.011825728f, 0.0075720972f, 0.0699727f, -0.0039981045f, 0.069350146f, 0.08799282f, 0.016156472f, 0.035502106f, 0.11695009f, 0.006217345f, 0.13392477f, -0.037875112f, 0.025745004f, 0.08940699f, -0.00924166f, 0.0046702605f, -0.036598757f, -0.08811812f, 0.10522024f, -0.032441203f, 0.008176899f, -0.04454919f, 0.07058152f, 0.0067963637f, 0.039206743f, 0.03259838f, 0.03725492f, -0.09515802f, 0.013326398f, -0.052055415f, -0.025676316f, 0.03198509f, -0.015951829f, -0.058556724f, 0.036879618f, 0.043357447f, 0.028362012f, -0.05908629f, 0.0059240665f, -0.04995891f, -0.019187413f, 0.0276265f, -0.01628143f, 0.0025863599f, 0.08800015f, 0.035250366f, -0.022165963f, -0.07328642f, -0.009415526f, -0.07455109f, 0.11690406f, 0.0363299f, 0.07411125f, 0.042103454f, -0.009660886f, 0.019076364f, 0.018299393f, -0.046004917f, 0.08891175f, 0.0431396f, -0.026327137f, -0.051502608f, 0.08979574f, -0.051670972f, 0.04940282f, -0.07491107f, -0.021240504f, 0.022596184f, -0.034280192f, 0.060163025f, -0.058211457f, -0.051837247f, -0.01349775f, -0.04639988f, -0.035936575f, -0.011681591f, 0.064818054f, 0.0073146066f, -0.021745546f, -0.043124277f, -0.06471268f, -0.07053354f, -0.029321948f, -0.05330136f, 0.016933719f, -0.053782392f, 0.13747959f, -0.1361751f, -0.11569455f, 0.0033329215f, 0.05693899f, -0.053219706f, 0.063698f, 0.07977434f, -0.07924483f, 0.06936997f, 0.0034815092f, -0.007305279f, -0.037325785f, -0.07251102f, -0.033633437f, -0.08677009f, 0.091591336f, -0.14165086f, 0.021752775f, 0.019683983f, 0.0011612234f, -0.058154266f, 0.049996935f, 0.0288841f, -0.0024567875f, -0.14345716f, 0.010955264f, -0.10234828f, 0.1183656f, -0.0010731248f, -0.023590032f, -0.072285876f, -0.0724771f, -0.026382286f, -0.0014920527f, 0.042667855f, 0.0018776858f, 0.02986552f, 0.009814309f, 0.0733756f, 0.12289186f, 0.018043943f, -0.0458958f, 0.049412545f, 0.033632483f, 0.05495232f, 0.036686596f, -0.013781798f, -0.010036754f, 0.02576849f, -0.08307328f, 0.010112348f, 0.042521734f, -0.05869831f, -0.071689695f, 0.03876447f, -0.13275425f, -0.0352966f, -0.023077697f, 0.10285965f, 0.084736146f, 0.15568255f, -0.00040734606f, 0.027835453f, -0.10292561f, -0.032401145f, 0.10053256f, -0.026142767f, -0.08271222f, -0.0030240538f, -0.016368777f, 0.1070414f, 0.042672627f, 0.013456989f, -0.0437609f, -0.022309763f, 0.11576483f, 0.04108048f, 0.061026827f, -0.0190714f, -0.0869359f, 0.037901703f, 0.0610107f, 0.07202949f, 0.01675338f, 0.086139716f, -0.08795751f, -0.014898893f, -0.023771819f, -0.01965048f, 0.007955471f, -0.043740474f, 0.03346837f, -0.10549954f, 0.090567775f, 0.042013682f, -0.03176985f, 0.12569028f, -0.02421228f, -0.029526481f, 0.023851605f, 0.031539805f, 0.05292009f, -0.02344001f, -0.07811758f, -0.08834428f, 0.10094801f, 0.16594367f, -0.06861939f, -0.021256343f, -0.041093912f, -0.06669611f, 0.035498552f, 0.021757556f, -0.09302526f, -0.015403468f, -0.06614931f, -0.051798206f, -0.013874718f, 0.03630673f, 0.010412845f, -0.08077351f, 0.046185967f, 0.0035662893f, 0.03541868f, -0.094149634f, -0.034814864f, 0.003128424f, -0.020674974f, -0.03944324f, -0.008110165f, -0.11113267f, 0.08484226f, 0.043586485f, 0.040582247f, 0.0968012f, -0.065249965f, -0.028036479f, 0.0050708856f, 0.0017462453f, 0.0326779f, 0.041296225f, 0.09164146f, -0.047743853f, -0.015952192f, -0.034451712f, 0.084197424f, -0.05347844f, -0.11768019f, 0.085926116f, -0.08251791f, -0.045081906f, 0.0948852f, 0.068401024f, 0.024856757f, 0.06978981f, -0.057309967f, -0.012775832f, -0.0032452994f, 0.01977615f, -0.041040014f, -0.024264973f, 0.063464895f, 0.05431621f}}, {9, {0.040369894f, 0.030746894f, 0.24704495f, 0.018586371f, -0.037586458f, -0.15312155f, -0.11812848f, -0.11465643f, 0.20259799f, 0.11418174f, -0.10116027f, -0.011334949f, 0.12411352f, -0.076769054f, -0.052169047f, 0.21198851f, -0.38871562f, -0.09061183f, -0.09683246f, -0.21929175f}}, {10, {-0.01998659f, -0.15568835f, -0.24248174f, -0.012770197f, 0.041331276f, -0.072311886f, -0.052123554f, -0.0066330447f, -0.043891653f, 0.036225766f, -0.047248036f, 0.021479502f, 0.033189066f, 0.11952997f, -0.020432774f, 0.64658105f, -0.06650122f, -0.03467612f, 0.095340036f, 0.23647355f}}, {11, {0.08286371f, -0.08261836f, -0.51210177f, 0.002913762f, 0.17764764f, -0.5495371f, -0.08460716f, -0.24552552f, 0.030037103f, 0.04123544f, -0.11940523f, 0.007358328f, 0.1890978f, 0.4833202f, -0.34441817f, 0.36312827f, -0.26375428f, 0.1457655f, -0.19724406f, 0.15548733f}}, {12, {0.02234832f, 0.14757581f, 0.18176508f, 0.10380666f, 0.053110216f, -0.06928846f, -0.13942584f, -0.11816189f, 0.19483899f, 0.03652339f, -0.10250295f, 0.036714908f, -0.18426876f, 0.036065217f, 0.21810818f, 0.02383196f, -0.043370757f, 0.08690144f, -0.04444982f, 0.00030581196f}}, {13, {0.035185695f, -0.042891346f, -0.03032477f, 0.23027696f, 0.11098921f, 0.15378423f, 0.09263801f, 0.09790885f, 0.09508917f, 0.061199076f, 0.07665568f, -0.015443159f, -0.03499149f, 0.046190713f, 0.08895977f, 0.10899629f, 0.40694186f, 0.06030037f, 0.012413437f, -0.06108739f}}, {14, {-0.024379363f, 0.0055531194f, 0.23377132f, 0.033463873f, -0.1483596f, -0.10639995f, -0.091433935f, 0.058573797f, -0.06809782f, -0.07889636f, -0.043246906f, -0.09829136f, -0.4279842f, 0.034901652f, 0.18797937f, 0.0075234566f, 0.016178843f, 0.1749513f, 0.13975595f, 0.92058027f}}, {15, {0.046159424f, -0.0012809046f, 0.03563469f, 0.12648113f, 0.027195795f, 0.35373217f, -0.018957434f, 0.008907322f, -0.0762701f, 0.12018895f, 0.04216877f, 0.0022856654f, 0.040952638f, 0.3147856f, 0.08225149f, -0.057416286f, -0.14995944f, -0.008040261f, 0.13208859f, 0.029760877f}}, {16, {-0.009802181f, 0.09401916f, 0.0717386f, -0.13895074f, 0.09641832f, 0.060420845f, 0.08539281f, 0.054285463f, 0.061395317f, 0.034448683f, -0.042991187f, 0.019801661f, -0.16840284f, -0.015726732f, -0.23041931f, -0.024478018f, -0.10959692f, -0.013875541f, 0.18600968f, -0.061274476f, 0.0138165f, -0.08160894f, -0.07661644f, 0.032372914f, 0.16169067f, 0.22465782f, -0.03993472f, -0.004017731f, 0.08633481f, -0.28869787f, 0.08682067f, 0.17240396f, 0.014975425f, 0.056431185f, 0.031037588f, 0.16702051f, 0.0077946745f, 0.15140012f, 0.29405436f, 0.120285f, -0.188994f, -0.027265169f, 0.043389652f, -0.022061434f, 0.014777949f, -0.20203483f, 0.094781205f, 0.19100232f, 0.13987629f, -0.036132768f, -0.06426278f, -0.05108664f, 0.13221376f, 0.009441198f, -0.16715929f, 0.15859416f, -0.040437475f, 0.050779544f, -0.022187516f, 0.012166504f, 0.027685808f, -0.07675938f, -0.0055694645f, -0.09444123f, 0.0046453946f, 0.050794356f, 0.10770313f, -0.20790008f, -0.07149004f, -0.11425117f, 0.008225835f, -0.035802525f, 0.14374903f, 0.15262283f, 0.048710253f, 0.1847461f, -0.007487823f, 0.11000021f, -0.09542012f, 0.22619456f, -0.029149994f, 0.08527916f, 0.009043713f, 0.0042746216f, 0.016261552f, 0.022461696f, 0.12689082f, -0.043589946f, -0.12035478f, -0.08361797f, -0.050666027f, -0.1248618f, -0.1275799f, -0.071875185f, 0.07377272f, 0.09944291f, -0.18897448f, -0.1593054f, -0.06526116f, -0.040107165f, -0.004618631f, -0.067624845f, -0.007576253f, 0.10727444f, 0.041546922f, -0.20424393f, 0.06907816f, 0.050412357f, 0.00724631f, 0.039827548f, 0.12449835f, 0.10747581f, 0.13708383f, 0.09134148f, -0.12617786f, -0.06428341f, 0.09956831f, 0.1208086f, -0.14676677f, -0.0727722f, 0.1126304f, 0.010139365f, 0.015571211f, -0.038128063f, 0.022913318f, -0.042050496f, 0.16842307f, -0.060597885f, 0.10531834f, -0.06411776f, -0.07451711f, -0.03410368f, -0.13393489f, 0.06534304f, 0.003620307f, 0.04490757f, 0.05970546f, 0.05197996f, 0.02839995f, 0.10434969f, -0.013699693f, -0.028353551f, -0.07260381f, 0.047201227f, -0.024575593f, -0.036445823f, 0.07155557f, 0.009672501f, -0.02328883f, 0.009533515f, -0.03606021f, -0.07421458f, -0.028082801f, -0.2678904f, -0.13221288f, 0.18419984f, -0.13012612f, -0.014588381f, -0.035059117f, -0.04824723f, 0.07830115f, -0.056184657f, 0.03277091f, 0.025466874f, 0.14494097f, -0.12522776f, -0.098633975f, -0.10766018f, -0.08317623f, 0.08594209f, 0.07749552f, 0.039474737f, 0.1776665f, -0.07409566f, -0.0477268f, 0.29323658f, 0.10801441f, 0.1154011f, 0.013952499f, 0.10739139f, 0.10708251f, -0.051456142f, 0.0074137426f, -0.10430189f, 0.10034707f, 0.045594677f, 0.0635285f, -0.0715442f, -0.089667566f, -0.10811871f, 0.00026344223f, 0.08298446f, -0.009525053f, 0.006585689f, -0.24567553f, -0.09450807f, 0.09648481f, 0.026996298f, -0.06419476f, -0.04752702f, -0.11063944f, -0.23441927f, -0.17608605f, -0.052156363f, 0.067035615f, 0.19271925f, -0.0032889997f, -0.043264326f, 0.09663576f, -0.057112187f, -0.10100678f, 0.0628376f, 0.04447668f, 0.017961001f, -0.10094388f, -0.10190601f, 0.18335468f, 0.10494553f, -0.052095775f, -0.0026118709f, 0.10539724f, -0.04383912f, -0.042349473f, 0.08438151f, -0.1947263f, 0.02251204f, 0.11216432f, -0.10307853f, 0.17351969f, -0.039091777f, 0.08066188f, -0.00561982f, 0.12633002f, 0.11335965f, -0.0088127935f, -0.019777594f, 0.06864014f, -0.059751723f, 0.016233567f, -0.06894641f, -0.28651384f, -0.004228674f, 0.019708522f, -0.16305895f, -0.07468996f, -0.0855457f, 0.099339016f, -0.07580735f, -0.13775392f, 0.08434318f, 0.08330512f, -0.12131499f, 0.031935584f, 0.09180414f, -0.08876437f, -0.08049874f, 0.008753825f, 0.03498998f, 0.030215185f, 0.03907079f, 0.089751154f, 0.029194152f, -0.03337423f, -0.019092513f, 0.04331237f, 0.04299654f, -0.036394123f, -0.12915532f, 0.09793732f, 0.07512415f, -0.11319543f, -0.032502122f, 0.15661901f, 0.07671967f, -0.005491124f, -0.19379048f, -0.218606f, 0.21448623f, 0.017840758f, 0.1416943f, -0.07051762f, 0.19488361f, 0.02664691f, -0.18104725f, -0.09334311f, 0.15026465f, -0.15493552f, -0.057762887f, -0.11604192f, -0.262013f, -0.01391798f, 0.012185008f, 0.11156489f, -0.07483202f, 0.06693364f, -0.26151478f, 0.046425626f, 0.036540434f, -0.16435726f, 0.17338543f, -0.21401681f, -0.11385144f, -0.08283257f, -0.069031075f, 0.030635102f, 0.010969227f, 0.11109743f, 0.010919218f, 0.027526086f, 0.13519906f, 0.01891392f, -0.046839405f, -0.040167913f, 0.017953383f, -0.09700955f, 0.0061885654f, -0.07000971f, 0.026893595f, -0.038844477f, 0.14543656f}}, {17, {}}, {18, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, {19, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{1, {-0.00396806f, 0.029352f, -0.00279226f, 0.0159977f, -0.00835577f, -0.0211779f, 0.0283512f, -0.0114597f, 0.00907307f, -0.0244004f, -0.0152191f, -0.0259063f, 0.00914318f, 0.00415119f, 0.017147f, 0.0134203f, -0.013869f, 0.0287268f, -0.00334694f, 0.00733397f, -0.0287926f, -0.0186926f, 0.0193662f, -0.0115437f, 0.00422612f, -0.0345232f, 0.00223253f, -0.00957321f, 0.0210624f, 0.013331f, 0.0150954f, 0.0216801f}}, {2, {-0.0531632f, -0.0118138f, 0.0870833f, 0.0347929f, -0.076144f, -0.0659219f, -0.0463811f, 0.0141307f, -0.0127706f, -0.03782f, -0.00402401f, -0.00571876f, -0.187957f, -0.0247127f, 0.0711425f, 0.008244f, 0.0492649f, 0.126972f, 0.0933097f, 0.29848f, -0.0966178f, -0.114417f, 0.0387229f, 0.0453255f, -0.181286f, -0.0651251f, -0.0996879f, -0.00276995f, 0.0617558f, -0.0100728f, 0.056304f, -0.077416f, -0.162858f, -0.0541251f, 0.0571202f, -0.0525331f, 0.0724297f, 0.171029f, 0.141738f, 0.295483f}}, {3, {-0.00396806f, 0.029352f, -0.00279226f, 0.0159977f, -0.00835576f, -0.0211779f, 0.0283512f, -0.0114597f, 0.00907307f, -0.0244004f, -0.0152191f, -0.0259063f, 0.00914318f, 0.00415118f, 0.017147f, 0.0134203f, -0.013869f, 0.0287268f, -0.00334693f, 0.00733398f, -0.0287926f, -0.0186926f, 0.0193662f, -0.0115437f, 0.00422612f, -0.0345232f, 0.00223253f, -0.00957321f, 0.0210624f, 0.013331f, 0.0150954f, 0.02168f}}, {0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/lstm3_state.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/lstm3_state.example.cpp
new file mode 100644
index 000000000..687daee99
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/lstm3_state.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: lstm3_state.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.596268f, 0.998386f, 0.568695f, 0.864524f, 0.571277f, 0.642421f, 0.52426f, 0.134799f, 0.003639f, 0.162482f}}, {1, {0.021393683f, 0.06124551f, 0.046905167f, -0.014657677f, -0.03149463f, 0.09171803f, 0.14647801f, 0.10797193f, -0.0057968358f, 0.0019193048f, -0.2726754f, 0.10154029f, -0.018539885f, 0.080349885f, -0.10262385f, -0.022599787f, -0.09121155f, -0.008675967f, -0.045206103f, -0.0821282f, -0.008045952f, 0.015478081f, 0.055217247f, 0.038719587f, 0.044153627f, -0.06453243f, 0.05031825f, -0.046935108f, -0.008164439f, 0.014574226f, -0.1671009f, -0.15519552f, -0.16819797f, -0.13971269f, -0.11953059f, 0.25005487f, -0.22790983f, 0.009855087f, -0.028140958f, -0.11200698f, 0.11295408f, -0.0035217577f, 0.054485075f, 0.05184695f, 0.064711206f, 0.10989193f, 0.11674786f, 0.03490607f, 0.07727357f, 0.11390585f, -0.1863375f, -0.1034451f, -0.13945189f, -0.049401227f, -0.18767063f, 0.042483903f, 0.14233552f, 0.13832581f, 0.18350165f, 0.14545603f, -0.028545704f, 0.024939531f, 0.050929718f, 0.0076203286f, -0.0029723682f, -0.042484224f, -0.11827596f, -0.09171104f, -0.10808628f, -0.16327988f, -0.2273378f, -0.0993647f, -0.017155107f, 0.0023917493f, 0.049272764f, 0.0038534778f, 0.054764505f, 0.089753784f, 0.06947234f, 0.08014476f, -0.04544234f, -0.0497073f, -0.07135631f, -0.048929106f, -0.004042012f, -0.009284026f, 0.018042054f, 0.0036860977f, -0.07427302f, -0.11434604f, -0.018995456f, 0.031487543f, 0.012834908f, 0.019977754f, 0.044256654f, -0.39292613f, -0.18519334f, -0.11651281f, -0.06809892f, 0.011373677f}}, {2, {-0.0018401089f, -0.004852237f, 0.03698424f, 0.014181704f, 0.028273236f, -0.016726194f, -0.05249759f, -0.10204261f, 0.00861066f, -0.040979505f, -0.009899187f, 0.01923892f, -0.028177269f, -0.08535103f, -0.14585495f, 0.10662567f, -0.01909731f, -0.017883534f, -0.0047269356f, -0.045103323f, 0.0030784295f, 0.076784775f, 0.07463696f, 0.094531395f, 0.0814421f, -0.12257899f, -0.033945758f, -0.031303465f, 0.045630626f, 0.06843887f, -0.13492945f, -0.012480007f, -0.0811829f, -0.07224499f, -0.09628791f, 0.045100946f, 0.0012300825f, 0.013964662f, 0.099372394f, 0.02543059f, 0.06958324f, 0.034257296f, 0.0482646f, 0.06267997f, 0.052625068f, 0.12784666f, 0.07077897f, 0.025725935f, 0.04165009f, 0.07241905f, 0.018668644f, -0.037377294f, -0.06277783f, -0.08833636f, -0.040120605f, -0.011405586f, -0.007808335f, -0.010301386f, -0.005102167f, 0.027717464f, 0.05483423f, 0.11449111f, 0.11289652f, 0.10939839f, 0.13396506f, -0.08402166f, -0.01901462f, -0.044678304f, -0.07720565f, 0.014350063f, -0.11757958f, -0.0652038f, -0.08185733f, -0.076754324f, -0.092614375f, 0.10405491f, 0.052960336f, 0.035755895f, 0.035839386f, -0.012540553f, 0.036881298f, 0.02913376f, 0.03420159f, 0.05448447f, -0.054523353f, 0.02582715f, 0.02327355f, -0.011857179f, -0.0011980024f, -0.034641717f, -0.026125094f, -0.17582615f, -0.15923657f, -0.27486774f, -0.0006143371f, 0.0001771948f, -8.470171e-05f, 0.02651807f, 0.045790765f, 0.06956496f}}, {3, {-0.04580283f, -0.09549462f, -0.032418985f, -0.06454633f, -0.043528453f, 0.043018587f, -0.049152344f, -0.12418144f, -0.078985475f, -0.07596889f, 0.019484362f, -0.11434962f, -0.0074034138f, -0.06314844f, -0.092981495f, 0.0062155537f, -0.025034338f, -0.0028890965f, 0.048929527f, 0.06235075f, 0.10665918f, -0.032036792f, -0.08505916f, -0.10843358f, -0.13002433f, -0.036816437f, -0.02130134f, -0.016518239f, 0.0047691227f, -0.0025825808f, 0.066017866f, 0.029991534f, -0.10652836f, -0.1037554f, -0.13056071f, -0.03266643f, -0.033702414f, -0.006473424f, -0.04611692f, 0.014419339f, -0.025174323f, 0.0396852f, 0.081777506f, 0.06157468f, 0.10210095f, -0.009658194f, 0.046511717f, 0.03603906f, 0.0069369148f, 0.015960095f, -0.06507666f, 0.09551598f, 0.053568836f, 0.06408714f, 0.12835667f, -0.008714329f, -0.20211966f, -0.12093674f, 0.029450472f, 0.2849013f, -0.029227901f, 0.1164364f, -0.08560263f, 0.09941786f, -0.036999565f, -0.028842626f, -0.0033637602f, -0.017012902f, -0.09720865f, -0.11193351f, -0.029155117f, -0.017936034f, -0.009768936f, -0.04223324f, -0.036159635f, 0.06505112f, -0.021742892f, -0.023377212f, -0.07221364f, -0.06430552f, 0.05453865f, 0.091149814f, 0.06387331f, 0.007518393f, 0.055960953f, 0.069779344f, 0.046411168f, 0.10509911f, 0.07463894f, 0.0075130584f, 0.012850982f, 0.04555431f, 0.056955688f, 0.06555285f, 0.050801456f, -0.009862683f, 0.00826772f, -0.026555609f, -0.0073611983f, -0.0014897042f}}, {4, {-0.0998932f, -0.07201956f, -0.052803773f, -0.15629593f, -0.15001918f, -0.07650751f, 0.02359855f, -0.075155355f, -0.08037709f, -0.15093534f, 0.029517552f, -0.04751393f, 0.010350531f, -0.02664851f, -0.016839722f, -0.023121163f, 0.0077019283f, 0.012851257f, -0.05040649f, -0.0129761f, -0.021737747f, -0.038305793f, -0.06870586f, -0.01481247f, -0.001285394f, 0.10124236f, 0.083122835f, 0.053313006f, -0.062235646f, -0.075637154f, -0.027833903f, 0.029774971f, 0.1130802f, 0.09218906f, 0.09506135f, -0.086665764f, -0.037162706f, -0.038880914f, -0.035832845f, -0.014481564f, -0.09825003f, -0.12048569f, -0.097665586f, -0.05287633f, -0.0964047f, -0.11366429f, 0.035777505f, 0.13568819f, 0.052451383f, 0.050649304f, 0.05798951f, -0.021852335f, -0.099848844f, 0.014740475f, -0.078897946f, 0.04974699f, 0.014160473f, 0.06973932f, 0.04964942f, 0.033364646f, 0.08190124f, 0.025535367f, 0.050893165f, 0.048514254f, 0.06945813f, -0.078907564f, -0.06707616f, -0.11844508f, -0.09986688f, -0.07509403f, 0.06263226f, 0.14925587f, 0.20188436f, 0.12098451f, 0.14639415f, 0.0015017595f, -0.014267382f, -0.03417257f, 0.012711468f, 0.0028300495f, -0.024758482f, -0.05098548f, -0.0821182f, 0.014225672f, 0.021544158f, 0.08949725f, 0.07505268f, -0.0020780868f, 0.04908258f, 0.06476295f, -0.022907063f, 0.027562456f, 0.040185735f, 0.019567577f, -0.015598739f, -0.049097303f, -0.017121866f, -0.083368234f, -0.02332002f, -0.0840956f}}, {5, {-0.001374326f, -0.078856036f, 0.10672688f, 0.029162422f, -0.11585556f, 0.02557986f, -0.13446963f, -0.035785314f, -0.01244275f, 0.025961924f, -0.02337298f, -0.044228926f, -0.055839065f, -0.046598054f, -0.010546039f, -0.06900766f, 0.027239809f, 0.022582639f, -0.013296484f, -0.05459212f, 0.08981f, -0.045407712f, 0.08682226f, -0.06867011f, -0.14390695f, -0.02916037f, 0.000996957f, 0.091420636f, 0.14283475f, -0.07390571f, -0.06402044f, 0.062524505f, -0.093129106f, 0.04860203f, -0.08364217f, -0.08119002f, 0.009352075f, 0.22920375f, 0.0016303885f, 0.11583097f, -0.13732095f, 0.012405723f, -0.07551853f, 0.06343048f, 0.12162708f, -0.031923793f, -0.014335606f, 0.01790974f, -0.10650317f, -0.0724401f, 0.08554849f, -0.05727212f, 0.06556731f, -0.042729504f, -0.043227166f, 0.011683251f, -0.013082158f, -0.029302018f, -0.010899579f, -0.062036745f, -0.022509435f, -0.00964907f, -0.01567329f, 0.04260106f, -0.07787477f, -0.11576462f, 0.017356863f, 0.048673786f, -0.017577527f, -0.05527947f, -0.082487635f, -0.040137455f, -0.10820036f, -0.04666372f, 0.022746278f, -0.07851417f, 0.01068115f, 0.032956902f, 0.022433773f, 0.0026891115f, 0.08944216f, -0.0685835f, 0.010513544f, 0.07228705f, 0.02032331f, -0.059686817f, -0.0005566496f, -0.086984694f, 0.040414046f, -0.1380399f, 0.094208956f, -0.05722982f, 0.012092817f, -0.04989123f, -0.086576f, -0.003399834f, -0.04696032f, -0.045747425f, 0.10091314f, 0.048676282f, -0.029037097f, 0.031399418f, -0.0040285117f, 0.047237843f, 0.09504992f, 0.041799378f, -0.049185462f, -0.031518843f, -0.10516937f, 0.026374253f, 0.10058866f, -0.0033195973f, -0.041975245f, 0.0073591834f, 0.0033782164f, -0.004325073f, -0.10167381f, 0.042500053f, -0.01447153f, 0.06464186f, -0.017142897f, 0.03312627f, 0.009205989f, 0.024138335f, -0.011337001f, 0.035530265f, -0.010912711f, 0.0706555f, -0.005894094f, 0.051841937f, -0.1401738f, -0.02351249f, 0.0365468f, 0.07590991f, 0.08838724f, 0.021681072f, -0.10086113f, 0.019608743f, -0.06195883f, 0.077335775f, 0.023646897f, -0.095322326f, 0.02233014f, 0.09756986f, -0.048691444f, -0.009579111f, 0.07595467f, 0.11480546f, -0.09801813f, 0.019894179f, 0.08502348f, 0.004032281f, 0.037211012f, 0.068537936f, -0.048005626f, -0.091520436f, -0.028379958f, -0.01556313f, 0.06554592f, -0.045599163f, -0.01672207f, -0.020169014f, -0.011877351f, -0.20212261f, 0.010889619f, 0.0047078193f, 0.038385306f, 0.08540671f, -0.017140968f, -0.0035865551f, 0.016678626f, 0.005633034f, 0.015963363f, 0.00871737f, 0.060130805f, 0.028611384f, 0.10109069f, -0.015060172f, -0.07894427f, 0.06401885f, 0.011584063f, -0.024466386f, 0.0047652307f, -0.09041358f, 0.030737216f, -0.0046374933f, 0.14215417f, -0.11823516f, 0.019899689f, 0.006106124f, -0.027092824f, 0.0786356f, 0.05052217f, -0.058925f, -0.011402121f, -0.024987547f, -0.0013661642f, -0.06832946f, -0.015667673f, -0.1083353f, -0.00096863037f, -0.06988685f, -0.053350925f, -0.027275559f, -0.033664223f, -0.07978348f, -0.025200296f, -0.017207067f, -0.058403496f, -0.055697463f, 0.005798788f, 0.12965427f, -0.062582195f, 0.0013350133f, -0.10482091f, 0.0379771f, 0.072521195f, -0.0029455067f, -0.13797039f, -0.03628521f, 0.013806405f, -0.017858358f, -0.01008298f, -0.07700066f, -0.017081132f, 0.019358726f, 0.0027079724f, 0.004635139f, 0.062634714f, -0.02338735f, -0.039547626f, -0.02050681f, 0.03385117f, -0.083611414f, 0.002862572f, -0.09421313f, 0.058618143f, -0.08598433f, 0.00972939f, 0.023867095f, -0.053934585f, -0.023203006f, 0.07452513f, -0.048767887f, -0.07314807f, -0.056307215f, -0.10433547f, -0.06440842f, 0.04328182f, 0.04389765f, -0.020006588f, -0.09076438f, -0.11652589f, -0.021705797f, 0.03345259f, -0.010329105f, -0.025767034f, 0.013057034f, -0.07316461f, -0.10145612f, 0.06358255f, 0.18531723f, 0.07759293f, 0.12006465f, 0.1305557f, 0.058638252f, -0.03393652f, 0.09622831f, -0.16253184f, -2.4580743e-06f, 0.079869635f, -0.070196845f, -0.005644518f, 0.06857898f, -0.12598175f, -0.035084512f, 0.03156317f, -0.12794146f, -0.031963028f, 0.04692781f, 0.030070418f, 0.0071660685f, -0.095516115f, -0.004643372f, 0.040170413f, -0.062104587f, -0.0037324072f, 0.0554317f, 0.08184801f, -0.019164372f, 0.06791302f, 0.034257166f, -0.10307039f, 0.021943003f, 0.046745934f, 0.0790918f, -0.0265588f, -0.007824208f, 0.042546265f, -0.00977924f, -0.0002440307f, -0.017384544f, -0.017990116f, 0.12252321f, -0.014512694f, -0.08251313f, 0.08861942f, 0.13589665f, 0.026351685f, 0.012641483f, 0.07466548f, 0.044301085f, -0.045414884f, -0.051112458f, 0.03444247f, -0.08502782f, -0.04106223f, -0.028126027f, 0.028473156f, 0.10467447f}}, {6, {-0.057784554f, -0.026057621f, -0.068447545f, -0.022581743f, 0.14811787f, 0.10826372f, 0.09471067f, 0.03987225f, -0.0039523416f, 0.00030638507f, 0.053185795f, 0.10572994f, 0.08414449f, -0.022036452f, -0.00066928595f, -0.09203576f, 0.032950465f, -0.10985798f, -0.023809856f, 0.0021431844f, -0.02196096f, -0.00326074f, 0.00058621005f, -0.074678116f, -0.06193199f, 0.055729095f, 0.03736828f, 0.020123724f, 0.061878487f, -0.04729229f, 0.034919553f, -0.07585433f, -0.04421272f, -0.044019096f, 0.085488975f, 0.04058006f, -0.06890133f, -0.030951202f, -0.024628663f, -0.07672815f, 0.034293607f, 0.08556707f, -0.05293577f, -0.033561368f, -0.04899627f, 0.0241671f, 0.015736353f, -0.095442444f, -0.029564252f, 0.016493602f, -0.035026584f, 0.022337519f, -0.026871363f, 0.004780428f, 0.0077918363f, -0.03601621f, 0.016435321f, -0.03263031f, -0.09543275f, -0.047392778f, 0.013454138f, 0.028934088f, 0.01685226f, -0.086110644f, -0.046250615f, -0.01847454f, 0.047608484f, 0.07339695f, 0.034546845f, -0.04881143f, 0.009128804f, -0.08802852f, 0.03761666f, 0.008096139f, -0.014454086f, 0.014361001f, -0.023502491f, -0.0011840804f, -0.07607001f, 0.001856849f, -0.06509276f, -0.006021153f, -0.08570962f, -0.1451793f, 0.060212336f, 0.055259194f, 0.06974018f, 0.049454916f, -0.027794661f, -0.08077226f, -0.016179763f, 0.1169753f, 0.17213494f, -0.0056326236f, -0.053934924f, -0.0124349f, -0.11520337f, 0.05409887f, 0.088759385f, 0.0019655675f, 0.0042065294f, 0.03881498f, 0.019844765f, 0.041858196f, -0.05695512f, 0.047233116f, 0.038937137f, -0.06542224f, 0.014429736f, -0.09719407f, 0.13908425f, -0.05379757f, 0.012321099f, 0.082840554f, -0.029899208f, 0.044217527f, 0.059855383f, 0.07711018f, -0.045319796f, 0.0948846f, -0.011724666f, -0.0033288454f, -0.033542685f, -0.04764985f, -0.13873616f, 0.040668588f, 0.034832682f, -0.015319203f, -0.018715994f, 0.046002675f, 0.0599172f, -0.043107376f, 0.0294216f, -0.002314414f, -0.022424703f, 0.0030315618f, 0.0014641669f, 0.0029166266f, -0.11878115f, 0.013738511f, 0.12375372f, -0.0006038222f, 0.029104086f, 0.087442465f, 0.052958444f, 0.07558703f, 0.04817258f, 0.044462286f, -0.015213451f, -0.08783778f, -0.0561384f, -0.003008196f, 0.047060397f, -0.002058388f, 0.03429439f, -0.018839769f, 0.024734668f, 0.024614193f, -0.042046934f, 0.09597743f, -0.0043254104f, 0.04320769f, 0.0064070094f, -0.0019131786f, -0.02558259f, -0.022822596f, -0.023273505f, -0.02464396f, -0.10991725f, -0.006240552f, 0.0074488563f, 0.024044557f, 0.04383914f, -0.046476185f, 0.028658995f, 0.060410924f, 0.050786525f, 0.009452605f, -0.0073054377f, -0.024810238f, 0.0052906186f, 0.0066939713f, -0.0020913032f, 0.014515517f, 0.015898481f, 0.021362653f, -0.030262267f, 0.016587038f, -0.011442813f, 0.041154444f, -0.007631438f, -0.03423484f, -0.010977775f, 0.036152758f, 0.0066366293f, 0.11915515f, 0.02318443f, -0.041350313f, 0.021485701f, -0.10906167f, -0.028218046f, -0.00954771f, 0.020531068f, -0.11995105f, -0.03672871f, 0.024019798f, 0.014255957f, -0.05221243f, -0.00661567f, -0.04630967f, 0.033188973f, 0.10107534f, -0.014027541f, 0.030796422f, -0.10270911f, -0.035999842f, 0.15443139f, 0.07684145f, 0.036571592f, -0.035900835f, -0.0034699554f, 0.06209149f, 0.015920248f, -0.031122351f, -0.03858649f, 0.01849943f, 0.13872518f, 0.01503974f, 0.069941424f, -0.06948533f, -0.0088794185f, 0.061282158f, -0.047401894f, 0.03100163f, -0.041533746f, -0.10430945f, 0.044574402f, -0.01425562f, -0.024290353f, 0.034563623f, 0.05866852f, 0.023947537f, -0.09445152f, 0.035450947f, 0.02247216f, -0.0042998926f, 0.061146557f, -0.10250651f, 0.020881841f, -0.06747029f, 0.10062043f, -0.0023941975f, 0.03532124f, -0.016341697f, 0.09685456f, -0.016764693f, 0.051808182f, 0.05875331f, -0.04536488f, 0.001626336f, -0.028892258f, -0.01048663f, -0.009793449f, -0.017093895f, 0.010987891f, 0.02357273f, -0.00010856845f, 0.0099760275f, -0.001845119f, -0.03551521f, 0.0018358806f, 0.05763657f, -0.01769146f, 0.040995963f, 0.02235177f, -0.060430344f, 0.11475477f, -0.023854522f, 0.10071741f, 0.0686208f, -0.014250481f, 0.034261297f, 0.047418304f, 0.08562733f, -0.030519066f, 0.0060542435f, 0.014653856f, -0.038836084f, 0.04096551f, 0.032249358f, -0.08355519f, -0.026823482f, 0.056386515f, -0.010401743f, -0.028396193f, 0.08507674f, 0.014410365f, 0.020995233f, 0.17040324f, 0.11511526f, 0.02459721f, 0.0066619175f, 0.025853224f, -0.023133837f, -0.081302024f, 0.017264642f, -0.009585969f, 0.09491168f, -0.051313367f, 0.054532815f, -0.014298593f, 0.10657464f, 0.007076659f, 0.10964551f, 0.0409152f, 0.008275321f, -0.07283536f, 0.07937492f, 0.04192024f, -0.1075027f}}, {7, {-0.037322544f, 0.018592842f, 0.0056175636f, -0.06253426f, 0.055647098f, -0.05713207f, -0.05626563f, 0.005559383f, 0.03375411f, -0.025757805f, -0.088049285f, 0.06017052f, -0.06570978f, 0.007384076f, 0.035123326f, -0.07920549f, 0.053676967f, 0.044480428f, -0.07663568f, 0.0071805613f, 0.08089997f, 0.05143358f, 0.038261272f, 0.03339287f, -0.027673481f, 0.044746667f, 0.028349208f, 0.020090483f, -0.019443132f, -0.030755889f, -0.0040000007f, 0.04465846f, -0.021585021f, 0.0031670958f, 0.0053199246f, -0.056117613f, -0.10893326f, 0.076739706f, -0.08509834f, -0.027997585f, 0.037871376f, 0.01449768f, -0.09002357f, -0.06111149f, -0.046195522f, 0.0422062f, -0.005683705f, -0.1253618f, -0.012925729f, -0.04890792f, 0.06985068f, 0.037654128f, 0.03398274f, -0.004781977f, 0.007032333f, -0.031787455f, 0.010868644f, -0.031489216f, 0.09525667f, 0.013939797f, 0.0058680447f, 0.0167067f, 0.02668468f, -0.04797466f, -0.048885044f, -0.12722108f, 0.035304096f, 0.06554885f, 0.00972396f, -0.039238118f, -0.05159735f, -0.11329045f, 0.1613692f, -0.03750952f, 0.06529313f, -0.071974665f, -0.11769596f, 0.015524369f, -0.0013754242f, -0.12446318f, 0.02786344f, -0.014179351f, 0.005264273f, 0.14376344f, 0.015983658f, 0.03406988f, -0.06939408f, 0.040699873f, 0.02111075f, 0.09669095f, 0.041345075f, -0.08316494f, -0.07684199f, -0.045768797f, 0.032298047f, -0.041805092f, 0.0119405f, 0.0061010392f, 0.12652606f, 0.0064572375f, -0.024950314f, 0.11574242f, 0.04508852f, -0.04335324f, 0.06760663f, -0.027437469f, 0.07216407f, 0.06977076f, -0.05438599f, 0.034033038f, -0.028602652f, 0.05346137f, 0.043184172f, -0.037189785f, 0.10420091f, 0.00882477f, -0.054019816f, -0.074273005f, -0.030617684f, -0.0028467078f, 0.024302477f, -0.0038869337f, 0.005332455f, 0.0013399826f, 0.04361412f, -0.007001822f, 0.09631092f, -0.06702025f, -0.042049985f, -0.035070654f, -0.04103342f, -0.10273396f, 0.0544271f, 0.037184782f, -0.13150354f, -0.0058036847f, -0.008264958f, 0.042035464f, 0.05891794f, 0.029673764f, 0.0063542654f, 0.044788733f, 0.054816857f, 0.062257513f, -0.00093483756f, 0.048938446f, -0.004952862f, -0.007730018f, -0.04043371f, -0.017094059f, 0.07229206f, -0.023670016f, -0.052195564f, -0.025616996f, -0.01520939f, 0.045104615f, -0.007376126f, 0.003533447f, 0.006570588f, 0.056037236f, 0.12436656f, 0.051817212f, 0.028532185f, -0.08686856f, 0.11868599f, 0.07663395f, -0.07323171f, 0.03463402f, -0.050708205f, -0.04458982f, -0.11590894f, 0.021273347f, 0.1251325f, -0.15313013f, -0.12224372f, 0.17228661f, 0.023029093f, 0.086124025f, 0.006445803f, -0.03496501f, 0.028332196f, 0.04449512f, -0.042436164f, -0.026587414f, -0.006041347f, -0.09292539f, -0.05678812f, 0.03897832f, 0.09465633f, 0.008115513f, -0.02171956f, 0.08304309f, 0.071401566f, 0.019622514f, 0.032163795f, -0.004167056f, 0.02295182f, 0.030739572f, 0.056506045f, 0.004612461f, 0.06524936f, 0.059999723f, 0.046395954f, -0.0045512207f, -0.1335546f, -0.030136576f, 0.11584653f, -0.014678886f, 0.0020118146f, -0.09688814f, -0.0790206f, 0.039770417f, -0.0329582f, 0.07922767f, 0.029322514f, 0.026405897f, 0.04207835f, -0.07073373f, 0.063781224f, 0.0859677f, -0.10925287f, -0.07011058f, 0.048005477f, 0.03438226f, -0.09606514f, -0.006669445f, -0.043381985f, 0.04240257f, -0.06955775f, -0.06769346f, 0.043903265f, -0.026784198f, -0.017840602f, 0.024307009f, -0.040079936f, -0.019946516f, 0.045318738f, -0.12233574f, 0.026170589f, 0.0074471775f, 0.15978073f, 0.10185836f, 0.10298046f, -0.015476589f, -0.039390966f, -0.072174534f, 0.0739445f, -0.1211869f, -0.0347889f, -0.07943156f, 0.014809798f, -0.12412325f, -0.0030663363f, 0.039695457f, 0.0647603f, -0.08291318f, -0.018529687f, -0.004423833f, 0.0037507233f, 0.084633216f, -0.01514876f, -0.056505352f, -0.012800942f, -0.06994386f, 0.012962922f, -0.031234352f, 0.07029052f, 0.016418684f, 0.03618972f, 0.055686004f, -0.08663945f, -0.017404709f, -0.054761406f, 0.029065743f, 0.052404847f, 0.020238016f, 0.0048197987f, -0.0214882f, 0.07078733f, 0.013016777f, 0.06262858f, 0.009184685f, 0.020785125f, -0.043904778f, -0.0270329f, -0.03299152f, -0.060088247f, -0.015162964f, -0.001828936f, 0.12642565f, -0.056757294f, 0.013586685f, 0.09232601f, -0.035886683f, 0.06000002f, 0.05229691f, -0.052580316f, -0.082029596f, -0.010794592f, 0.012947712f, -0.036429964f, -0.085508935f, -0.13127148f, -0.017744139f, 0.031502828f, 0.036232427f, -0.031581745f, 0.023051167f, -0.05325106f, -0.03421577f, 0.028793324f, -0.034633752f, -0.009881397f, -0.043551125f, -0.018609839f, 0.0019097115f, -0.008799762f, 0.056595087f, 0.0022273948f, 0.055752404f}}, {8, {0.025825322f, -0.05813119f, 0.09495884f, -0.045984812f, -0.01255415f, -0.0026479573f, -0.08196161f, -0.054914974f, -0.0046604523f, -0.029587349f, -0.044576716f, -0.07480124f, -0.082868785f, 0.023254942f, 0.027502948f, -0.0039728214f, -0.08683098f, -0.08116779f, -0.014675607f, -0.037924774f, -0.023314456f, -0.007401714f, -0.09255757f, 0.029460307f, -0.08829125f, -0.005139627f, -0.08989442f, -0.0555066f, 0.13596267f, -0.025062224f, -0.048351806f, -0.03850004f, 0.07266485f, -0.022414139f, 0.05940088f, 0.075114764f, 0.09597592f, -0.010211725f, -0.0049794707f, -0.011523867f, -0.025980417f, 0.072999895f, 0.11091378f, -0.081685916f, 0.014416728f, 0.043229222f, 0.034178585f, -0.07530371f, 0.035837382f, -0.085607f, -0.007721233f, -0.03287832f, -0.043848954f, -0.06404588f, -0.06632928f, -0.073643476f, 0.008214239f, -0.045984086f, 0.039764922f, 0.03474462f, 0.060612556f, -0.080590084f, 0.049127717f, 0.04151091f, -0.030063879f, 0.008801774f, -0.023021035f, -0.019558564f, 0.05158114f, -0.010947698f, -0.011825728f, 0.0075720972f, 0.0699727f, -0.0039981045f, 0.069350146f, 0.08799282f, 0.016156472f, 0.035502106f, 0.11695009f, 0.006217345f, 0.13392477f, -0.037875112f, 0.025745004f, 0.08940699f, -0.00924166f, 0.0046702605f, -0.036598757f, -0.08811812f, 0.10522024f, -0.032441203f, 0.008176899f, -0.04454919f, 0.07058152f, 0.0067963637f, 0.039206743f, 0.03259838f, 0.03725492f, -0.09515802f, 0.013326398f, -0.052055415f, -0.025676316f, 0.03198509f, -0.015951829f, -0.058556724f, 0.036879618f, 0.043357447f, 0.028362012f, -0.05908629f, 0.0059240665f, -0.04995891f, -0.019187413f, 0.0276265f, -0.01628143f, 0.0025863599f, 0.08800015f, 0.035250366f, -0.022165963f, -0.07328642f, -0.009415526f, -0.07455109f, 0.11690406f, 0.0363299f, 0.07411125f, 0.042103454f, -0.009660886f, 0.019076364f, 0.018299393f, -0.046004917f, 0.08891175f, 0.0431396f, -0.026327137f, -0.051502608f, 0.08979574f, -0.051670972f, 0.04940282f, -0.07491107f, -0.021240504f, 0.022596184f, -0.034280192f, 0.060163025f, -0.058211457f, -0.051837247f, -0.01349775f, -0.04639988f, -0.035936575f, -0.011681591f, 0.064818054f, 0.0073146066f, -0.021745546f, -0.043124277f, -0.06471268f, -0.07053354f, -0.029321948f, -0.05330136f, 0.016933719f, -0.053782392f, 0.13747959f, -0.1361751f, -0.11569455f, 0.0033329215f, 0.05693899f, -0.053219706f, 0.063698f, 0.07977434f, -0.07924483f, 0.06936997f, 0.0034815092f, -0.007305279f, -0.037325785f, -0.07251102f, -0.033633437f, -0.08677009f, 0.091591336f, -0.14165086f, 0.021752775f, 0.019683983f, 0.0011612234f, -0.058154266f, 0.049996935f, 0.0288841f, -0.0024567875f, -0.14345716f, 0.010955264f, -0.10234828f, 0.1183656f, -0.0010731248f, -0.023590032f, -0.072285876f, -0.0724771f, -0.026382286f, -0.0014920527f, 0.042667855f, 0.0018776858f, 0.02986552f, 0.009814309f, 0.0733756f, 0.12289186f, 0.018043943f, -0.0458958f, 0.049412545f, 0.033632483f, 0.05495232f, 0.036686596f, -0.013781798f, -0.010036754f, 0.02576849f, -0.08307328f, 0.010112348f, 0.042521734f, -0.05869831f, -0.071689695f, 0.03876447f, -0.13275425f, -0.0352966f, -0.023077697f, 0.10285965f, 0.084736146f, 0.15568255f, -0.00040734606f, 0.027835453f, -0.10292561f, -0.032401145f, 0.10053256f, -0.026142767f, -0.08271222f, -0.0030240538f, -0.016368777f, 0.1070414f, 0.042672627f, 0.013456989f, -0.0437609f, -0.022309763f, 0.11576483f, 0.04108048f, 0.061026827f, -0.0190714f, -0.0869359f, 0.037901703f, 0.0610107f, 0.07202949f, 0.01675338f, 0.086139716f, -0.08795751f, -0.014898893f, -0.023771819f, -0.01965048f, 0.007955471f, -0.043740474f, 0.03346837f, -0.10549954f, 0.090567775f, 0.042013682f, -0.03176985f, 0.12569028f, -0.02421228f, -0.029526481f, 0.023851605f, 0.031539805f, 0.05292009f, -0.02344001f, -0.07811758f, -0.08834428f, 0.10094801f, 0.16594367f, -0.06861939f, -0.021256343f, -0.041093912f, -0.06669611f, 0.035498552f, 0.021757556f, -0.09302526f, -0.015403468f, -0.06614931f, -0.051798206f, -0.013874718f, 0.03630673f, 0.010412845f, -0.08077351f, 0.046185967f, 0.0035662893f, 0.03541868f, -0.094149634f, -0.034814864f, 0.003128424f, -0.020674974f, -0.03944324f, -0.008110165f, -0.11113267f, 0.08484226f, 0.043586485f, 0.040582247f, 0.0968012f, -0.065249965f, -0.028036479f, 0.0050708856f, 0.0017462453f, 0.0326779f, 0.041296225f, 0.09164146f, -0.047743853f, -0.015952192f, -0.034451712f, 0.084197424f, -0.05347844f, -0.11768019f, 0.085926116f, -0.08251791f, -0.045081906f, 0.0948852f, 0.068401024f, 0.024856757f, 0.06978981f, -0.057309967f, -0.012775832f, -0.0032452994f, 0.01977615f, -0.041040014f, -0.024264973f, 0.063464895f, 0.05431621f}}, {9, {0.040369894f, 0.030746894f, 0.24704495f, 0.018586371f, -0.037586458f, -0.15312155f, -0.11812848f, -0.11465643f, 0.20259799f, 0.11418174f, -0.10116027f, -0.011334949f, 0.12411352f, -0.076769054f, -0.052169047f, 0.21198851f, -0.38871562f, -0.09061183f, -0.09683246f, -0.21929175f}}, {10, {-0.01998659f, -0.15568835f, -0.24248174f, -0.012770197f, 0.041331276f, -0.072311886f, -0.052123554f, -0.0066330447f, -0.043891653f, 0.036225766f, -0.047248036f, 0.021479502f, 0.033189066f, 0.11952997f, -0.020432774f, 0.64658105f, -0.06650122f, -0.03467612f, 0.095340036f, 0.23647355f}}, {11, {0.08286371f, -0.08261836f, -0.51210177f, 0.002913762f, 0.17764764f, -0.5495371f, -0.08460716f, -0.24552552f, 0.030037103f, 0.04123544f, -0.11940523f, 0.007358328f, 0.1890978f, 0.4833202f, -0.34441817f, 0.36312827f, -0.26375428f, 0.1457655f, -0.19724406f, 0.15548733f}}, {12, {0.02234832f, 0.14757581f, 0.18176508f, 0.10380666f, 0.053110216f, -0.06928846f, -0.13942584f, -0.11816189f, 0.19483899f, 0.03652339f, -0.10250295f, 0.036714908f, -0.18426876f, 0.036065217f, 0.21810818f, 0.02383196f, -0.043370757f, 0.08690144f, -0.04444982f, 0.00030581196f}}, {13, {0.035185695f, -0.042891346f, -0.03032477f, 0.23027696f, 0.11098921f, 0.15378423f, 0.09263801f, 0.09790885f, 0.09508917f, 0.061199076f, 0.07665568f, -0.015443159f, -0.03499149f, 0.046190713f, 0.08895977f, 0.10899629f, 0.40694186f, 0.06030037f, 0.012413437f, -0.06108739f}}, {14, {-0.024379363f, 0.0055531194f, 0.23377132f, 0.033463873f, -0.1483596f, -0.10639995f, -0.091433935f, 0.058573797f, -0.06809782f, -0.07889636f, -0.043246906f, -0.09829136f, -0.4279842f, 0.034901652f, 0.18797937f, 0.0075234566f, 0.016178843f, 0.1749513f, 0.13975595f, 0.92058027f}}, {15, {0.046159424f, -0.0012809046f, 0.03563469f, 0.12648113f, 0.027195795f, 0.35373217f, -0.018957434f, 0.008907322f, -0.0762701f, 0.12018895f, 0.04216877f, 0.0022856654f, 0.040952638f, 0.3147856f, 0.08225149f, -0.057416286f, -0.14995944f, -0.008040261f, 0.13208859f, 0.029760877f}}, {16, {-0.009802181f, 0.09401916f, 0.0717386f, -0.13895074f, 0.09641832f, 0.060420845f, 0.08539281f, 0.054285463f, 0.061395317f, 0.034448683f, -0.042991187f, 0.019801661f, -0.16840284f, -0.015726732f, -0.23041931f, -0.024478018f, -0.10959692f, -0.013875541f, 0.18600968f, -0.061274476f, 0.0138165f, -0.08160894f, -0.07661644f, 0.032372914f, 0.16169067f, 0.22465782f, -0.03993472f, -0.004017731f, 0.08633481f, -0.28869787f, 0.08682067f, 0.17240396f, 0.014975425f, 0.056431185f, 0.031037588f, 0.16702051f, 0.0077946745f, 0.15140012f, 0.29405436f, 0.120285f, -0.188994f, -0.027265169f, 0.043389652f, -0.022061434f, 0.014777949f, -0.20203483f, 0.094781205f, 0.19100232f, 0.13987629f, -0.036132768f, -0.06426278f, -0.05108664f, 0.13221376f, 0.009441198f, -0.16715929f, 0.15859416f, -0.040437475f, 0.050779544f, -0.022187516f, 0.012166504f, 0.027685808f, -0.07675938f, -0.0055694645f, -0.09444123f, 0.0046453946f, 0.050794356f, 0.10770313f, -0.20790008f, -0.07149004f, -0.11425117f, 0.008225835f, -0.035802525f, 0.14374903f, 0.15262283f, 0.048710253f, 0.1847461f, -0.007487823f, 0.11000021f, -0.09542012f, 0.22619456f, -0.029149994f, 0.08527916f, 0.009043713f, 0.0042746216f, 0.016261552f, 0.022461696f, 0.12689082f, -0.043589946f, -0.12035478f, -0.08361797f, -0.050666027f, -0.1248618f, -0.1275799f, -0.071875185f, 0.07377272f, 0.09944291f, -0.18897448f, -0.1593054f, -0.06526116f, -0.040107165f, -0.004618631f, -0.067624845f, -0.007576253f, 0.10727444f, 0.041546922f, -0.20424393f, 0.06907816f, 0.050412357f, 0.00724631f, 0.039827548f, 0.12449835f, 0.10747581f, 0.13708383f, 0.09134148f, -0.12617786f, -0.06428341f, 0.09956831f, 0.1208086f, -0.14676677f, -0.0727722f, 0.1126304f, 0.010139365f, 0.015571211f, -0.038128063f, 0.022913318f, -0.042050496f, 0.16842307f, -0.060597885f, 0.10531834f, -0.06411776f, -0.07451711f, -0.03410368f, -0.13393489f, 0.06534304f, 0.003620307f, 0.04490757f, 0.05970546f, 0.05197996f, 0.02839995f, 0.10434969f, -0.013699693f, -0.028353551f, -0.07260381f, 0.047201227f, -0.024575593f, -0.036445823f, 0.07155557f, 0.009672501f, -0.02328883f, 0.009533515f, -0.03606021f, -0.07421458f, -0.028082801f, -0.2678904f, -0.13221288f, 0.18419984f, -0.13012612f, -0.014588381f, -0.035059117f, -0.04824723f, 0.07830115f, -0.056184657f, 0.03277091f, 0.025466874f, 0.14494097f, -0.12522776f, -0.098633975f, -0.10766018f, -0.08317623f, 0.08594209f, 0.07749552f, 0.039474737f, 0.1776665f, -0.07409566f, -0.0477268f, 0.29323658f, 0.10801441f, 0.1154011f, 0.013952499f, 0.10739139f, 0.10708251f, -0.051456142f, 0.0074137426f, -0.10430189f, 0.10034707f, 0.045594677f, 0.0635285f, -0.0715442f, -0.089667566f, -0.10811871f, 0.00026344223f, 0.08298446f, -0.009525053f, 0.006585689f, -0.24567553f, -0.09450807f, 0.09648481f, 0.026996298f, -0.06419476f, -0.04752702f, -0.11063944f, -0.23441927f, -0.17608605f, -0.052156363f, 0.067035615f, 0.19271925f, -0.0032889997f, -0.043264326f, 0.09663576f, -0.057112187f, -0.10100678f, 0.0628376f, 0.04447668f, 0.017961001f, -0.10094388f, -0.10190601f, 0.18335468f, 0.10494553f, -0.052095775f, -0.0026118709f, 0.10539724f, -0.04383912f, -0.042349473f, 0.08438151f, -0.1947263f, 0.02251204f, 0.11216432f, -0.10307853f, 0.17351969f, -0.039091777f, 0.08066188f, -0.00561982f, 0.12633002f, 0.11335965f, -0.0088127935f, -0.019777594f, 0.06864014f, -0.059751723f, 0.016233567f, -0.06894641f, -0.28651384f, -0.004228674f, 0.019708522f, -0.16305895f, -0.07468996f, -0.0855457f, 0.099339016f, -0.07580735f, -0.13775392f, 0.08434318f, 0.08330512f, -0.12131499f, 0.031935584f, 0.09180414f, -0.08876437f, -0.08049874f, 0.008753825f, 0.03498998f, 0.030215185f, 0.03907079f, 0.089751154f, 0.029194152f, -0.03337423f, -0.019092513f, 0.04331237f, 0.04299654f, -0.036394123f, -0.12915532f, 0.09793732f, 0.07512415f, -0.11319543f, -0.032502122f, 0.15661901f, 0.07671967f, -0.005491124f, -0.19379048f, -0.218606f, 0.21448623f, 0.017840758f, 0.1416943f, -0.07051762f, 0.19488361f, 0.02664691f, -0.18104725f, -0.09334311f, 0.15026465f, -0.15493552f, -0.057762887f, -0.11604192f, -0.262013f, -0.01391798f, 0.012185008f, 0.11156489f, -0.07483202f, 0.06693364f, -0.26151478f, 0.046425626f, 0.036540434f, -0.16435726f, 0.17338543f, -0.21401681f, -0.11385144f, -0.08283257f, -0.069031075f, 0.030635102f, 0.010969227f, 0.11109743f, 0.010919218f, 0.027526086f, 0.13519906f, 0.01891392f, -0.046839405f, -0.040167913f, 0.017953383f, -0.09700955f, 0.0061885654f, -0.07000971f, 0.026893595f, -0.038844477f, 0.14543656f}}, {17, {}}, {18, {-0.00396806f, 0.029352f, -0.00279226f, 0.0159977f, -0.00835577f, -0.0211779f, 0.0283512f, -0.0114597f, 0.00907307f, -0.0244004f, -0.0152191f, -0.0259063f, 0.00914318f, 0.00415119f, 0.017147f, 0.0134203f, -0.013869f, 0.0287268f, -0.00334694f, 0.00733397f, -0.0287926f, -0.0186926f, 0.0193662f, -0.0115437f, 0.00422612f, -0.0345232f, 0.00223253f, -0.00957321f, 0.0210624f, 0.013331f, 0.0150954f, 0.0216801f}}, {19, {-0.0531632f, -0.0118138f, 0.0870833f, 0.0347929f, -0.076144f, -0.0659219f, -0.0463811f, 0.0141307f, -0.0127706f, -0.03782f, -0.00402401f, -0.00571876f, -0.187957f, -0.0247127f, 0.0711425f, 0.008244f, 0.0492649f, 0.126972f, 0.0933097f, 0.29848f, -0.0966178f, -0.114417f, 0.0387229f, 0.0453255f, -0.181286f, -0.0651251f, -0.0996879f, -0.00276995f, 0.0617558f, -0.0100728f, 0.056304f, -0.077416f, -0.162858f, -0.0541251f, 0.0571202f, -0.0525331f, 0.0724297f, 0.171029f, 0.141738f, 0.295483f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{1, {-0.0166936f, 0.0381209f, 0.000889684f, 0.0143363f, -0.0328911f, -0.0234288f, 0.0333051f, -0.012229f, 0.0110322f, -0.0457725f, -0.000832209f, -0.0202817f, 0.0327257f, 0.0121309f, 0.0155969f, 0.0312091f, -0.0141913f, 0.0322082f, 0.00227024f, 0.0260507f, -0.0188721f, -0.0296489f, 0.0399134f, -0.0160509f, 0.011604f, -0.0447318f, -0.0150515f, -0.0277406f, 0.0316596f, 0.0118233f, 0.0214762f, 0.0293641f}}, {2, {-0.154022f, -0.124934f, 0.0478463f, 0.0607819f, -0.218727f, -0.111053f, -0.103885f, -0.00447221f, 0.0554757f, -0.0207068f, 0.0595767f, -0.116297f, -0.249466f, -0.0723206f, 0.0794942f, -0.0377107f, 0.124532f, 0.249952f, 0.188641f, 0.411865f, -0.11012f, -0.0694494f, 0.103501f, 0.0428427f, -0.167345f, -0.106061f, -0.0775679f, 0.00936161f, 0.0105526f, -0.0314523f, 0.0243475f, -0.132179f, -0.258763f, -0.0307266f, 0.107047f, -0.0115197f, 0.0995485f, 0.220027f, 0.158355f, 0.436369f}}, {3, {-0.0166936f, 0.0381209f, 0.000889694f, 0.0143363f, -0.0328911f, -0.0234288f, 0.0333051f, -0.012229f, 0.0110322f, -0.0457725f, -0.000832209f, -0.0202817f, 0.0327257f, 0.0121308f, 0.0155969f, 0.0312091f, -0.0141913f, 0.0322082f, 0.00227024f, 0.0260507f, -0.0188721f, -0.0296489f, 0.0399134f, -0.0160509f, 0.0116039f, -0.0447318f, -0.0150515f, -0.0277406f, 0.0316596f, 0.0118233f, 0.0214762f, 0.0293641f}}, {0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/lstm3_state2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/lstm3_state2.example.cpp
new file mode 100644
index 000000000..230545071
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/lstm3_state2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: lstm3_state2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.073204f, 0.296072f, 0.743333f, 0.069199f, 0.045348f, 0.640394f, 0.930399f, 0.050782f, 0.432485f, 0.988078f}}, {1, {0.021393683f, 0.06124551f, 0.046905167f, -0.014657677f, -0.03149463f, 0.09171803f, 0.14647801f, 0.10797193f, -0.0057968358f, 0.0019193048f, -0.2726754f, 0.10154029f, -0.018539885f, 0.080349885f, -0.10262385f, -0.022599787f, -0.09121155f, -0.008675967f, -0.045206103f, -0.0821282f, -0.008045952f, 0.015478081f, 0.055217247f, 0.038719587f, 0.044153627f, -0.06453243f, 0.05031825f, -0.046935108f, -0.008164439f, 0.014574226f, -0.1671009f, -0.15519552f, -0.16819797f, -0.13971269f, -0.11953059f, 0.25005487f, -0.22790983f, 0.009855087f, -0.028140958f, -0.11200698f, 0.11295408f, -0.0035217577f, 0.054485075f, 0.05184695f, 0.064711206f, 0.10989193f, 0.11674786f, 0.03490607f, 0.07727357f, 0.11390585f, -0.1863375f, -0.1034451f, -0.13945189f, -0.049401227f, -0.18767063f, 0.042483903f, 0.14233552f, 0.13832581f, 0.18350165f, 0.14545603f, -0.028545704f, 0.024939531f, 0.050929718f, 0.0076203286f, -0.0029723682f, -0.042484224f, -0.11827596f, -0.09171104f, -0.10808628f, -0.16327988f, -0.2273378f, -0.0993647f, -0.017155107f, 0.0023917493f, 0.049272764f, 0.0038534778f, 0.054764505f, 0.089753784f, 0.06947234f, 0.08014476f, -0.04544234f, -0.0497073f, -0.07135631f, -0.048929106f, -0.004042012f, -0.009284026f, 0.018042054f, 0.0036860977f, -0.07427302f, -0.11434604f, -0.018995456f, 0.031487543f, 0.012834908f, 0.019977754f, 0.044256654f, -0.39292613f, -0.18519334f, -0.11651281f, -0.06809892f, 0.011373677f}}, {2, {-0.0018401089f, -0.004852237f, 0.03698424f, 0.014181704f, 0.028273236f, -0.016726194f, -0.05249759f, -0.10204261f, 0.00861066f, -0.040979505f, -0.009899187f, 0.01923892f, -0.028177269f, -0.08535103f, -0.14585495f, 0.10662567f, -0.01909731f, -0.017883534f, -0.0047269356f, -0.045103323f, 0.0030784295f, 0.076784775f, 0.07463696f, 0.094531395f, 0.0814421f, -0.12257899f, -0.033945758f, -0.031303465f, 0.045630626f, 0.06843887f, -0.13492945f, -0.012480007f, -0.0811829f, -0.07224499f, -0.09628791f, 0.045100946f, 0.0012300825f, 0.013964662f, 0.099372394f, 0.02543059f, 0.06958324f, 0.034257296f, 0.0482646f, 0.06267997f, 0.052625068f, 0.12784666f, 0.07077897f, 0.025725935f, 0.04165009f, 0.07241905f, 0.018668644f, -0.037377294f, -0.06277783f, -0.08833636f, -0.040120605f, -0.011405586f, -0.007808335f, -0.010301386f, -0.005102167f, 0.027717464f, 0.05483423f, 0.11449111f, 0.11289652f, 0.10939839f, 0.13396506f, -0.08402166f, -0.01901462f, -0.044678304f, -0.07720565f, 0.014350063f, -0.11757958f, -0.0652038f, -0.08185733f, -0.076754324f, -0.092614375f, 0.10405491f, 0.052960336f, 0.035755895f, 0.035839386f, -0.012540553f, 0.036881298f, 0.02913376f, 0.03420159f, 0.05448447f, -0.054523353f, 0.02582715f, 0.02327355f, -0.011857179f, -0.0011980024f, -0.034641717f, -0.026125094f, -0.17582615f, -0.15923657f, -0.27486774f, -0.0006143371f, 0.0001771948f, -8.470171e-05f, 0.02651807f, 0.045790765f, 0.06956496f}}, {3, {-0.04580283f, -0.09549462f, -0.032418985f, -0.06454633f, -0.043528453f, 0.043018587f, -0.049152344f, -0.12418144f, -0.078985475f, -0.07596889f, 0.019484362f, -0.11434962f, -0.0074034138f, -0.06314844f, -0.092981495f, 0.0062155537f, -0.025034338f, -0.0028890965f, 0.048929527f, 0.06235075f, 0.10665918f, -0.032036792f, -0.08505916f, -0.10843358f, -0.13002433f, -0.036816437f, -0.02130134f, -0.016518239f, 0.0047691227f, -0.0025825808f, 0.066017866f, 0.029991534f, -0.10652836f, -0.1037554f, -0.13056071f, -0.03266643f, -0.033702414f, -0.006473424f, -0.04611692f, 0.014419339f, -0.025174323f, 0.0396852f, 0.081777506f, 0.06157468f, 0.10210095f, -0.009658194f, 0.046511717f, 0.03603906f, 0.0069369148f, 0.015960095f, -0.06507666f, 0.09551598f, 0.053568836f, 0.06408714f, 0.12835667f, -0.008714329f, -0.20211966f, -0.12093674f, 0.029450472f, 0.2849013f, -0.029227901f, 0.1164364f, -0.08560263f, 0.09941786f, -0.036999565f, -0.028842626f, -0.0033637602f, -0.017012902f, -0.09720865f, -0.11193351f, -0.029155117f, -0.017936034f, -0.009768936f, -0.04223324f, -0.036159635f, 0.06505112f, -0.021742892f, -0.023377212f, -0.07221364f, -0.06430552f, 0.05453865f, 0.091149814f, 0.06387331f, 0.007518393f, 0.055960953f, 0.069779344f, 0.046411168f, 0.10509911f, 0.07463894f, 0.0075130584f, 0.012850982f, 0.04555431f, 0.056955688f, 0.06555285f, 0.050801456f, -0.009862683f, 0.00826772f, -0.026555609f, -0.0073611983f, -0.0014897042f}}, {4, {-0.0998932f, -0.07201956f, -0.052803773f, -0.15629593f, -0.15001918f, -0.07650751f, 0.02359855f, -0.075155355f, -0.08037709f, -0.15093534f, 0.029517552f, -0.04751393f, 0.010350531f, -0.02664851f, -0.016839722f, -0.023121163f, 0.0077019283f, 0.012851257f, -0.05040649f, -0.0129761f, -0.021737747f, -0.038305793f, -0.06870586f, -0.01481247f, -0.001285394f, 0.10124236f, 0.083122835f, 0.053313006f, -0.062235646f, -0.075637154f, -0.027833903f, 0.029774971f, 0.1130802f, 0.09218906f, 0.09506135f, -0.086665764f, -0.037162706f, -0.038880914f, -0.035832845f, -0.014481564f, -0.09825003f, -0.12048569f, -0.097665586f, -0.05287633f, -0.0964047f, -0.11366429f, 0.035777505f, 0.13568819f, 0.052451383f, 0.050649304f, 0.05798951f, -0.021852335f, -0.099848844f, 0.014740475f, -0.078897946f, 0.04974699f, 0.014160473f, 0.06973932f, 0.04964942f, 0.033364646f, 0.08190124f, 0.025535367f, 0.050893165f, 0.048514254f, 0.06945813f, -0.078907564f, -0.06707616f, -0.11844508f, -0.09986688f, -0.07509403f, 0.06263226f, 0.14925587f, 0.20188436f, 0.12098451f, 0.14639415f, 0.0015017595f, -0.014267382f, -0.03417257f, 0.012711468f, 0.0028300495f, -0.024758482f, -0.05098548f, -0.0821182f, 0.014225672f, 0.021544158f, 0.08949725f, 0.07505268f, -0.0020780868f, 0.04908258f, 0.06476295f, -0.022907063f, 0.027562456f, 0.040185735f, 0.019567577f, -0.015598739f, -0.049097303f, -0.017121866f, -0.083368234f, -0.02332002f, -0.0840956f}}, {5, {-0.001374326f, -0.078856036f, 0.10672688f, 0.029162422f, -0.11585556f, 0.02557986f, -0.13446963f, -0.035785314f, -0.01244275f, 0.025961924f, -0.02337298f, -0.044228926f, -0.055839065f, -0.046598054f, -0.010546039f, -0.06900766f, 0.027239809f, 0.022582639f, -0.013296484f, -0.05459212f, 0.08981f, -0.045407712f, 0.08682226f, -0.06867011f, -0.14390695f, -0.02916037f, 0.000996957f, 0.091420636f, 0.14283475f, -0.07390571f, -0.06402044f, 0.062524505f, -0.093129106f, 0.04860203f, -0.08364217f, -0.08119002f, 0.009352075f, 0.22920375f, 0.0016303885f, 0.11583097f, -0.13732095f, 0.012405723f, -0.07551853f, 0.06343048f, 0.12162708f, -0.031923793f, -0.014335606f, 0.01790974f, -0.10650317f, -0.0724401f, 0.08554849f, -0.05727212f, 0.06556731f, -0.042729504f, -0.043227166f, 0.011683251f, -0.013082158f, -0.029302018f, -0.010899579f, -0.062036745f, -0.022509435f, -0.00964907f, -0.01567329f, 0.04260106f, -0.07787477f, -0.11576462f, 0.017356863f, 0.048673786f, -0.017577527f, -0.05527947f, -0.082487635f, -0.040137455f, -0.10820036f, -0.04666372f, 0.022746278f, -0.07851417f, 0.01068115f, 0.032956902f, 0.022433773f, 0.0026891115f, 0.08944216f, -0.0685835f, 0.010513544f, 0.07228705f, 0.02032331f, -0.059686817f, -0.0005566496f, -0.086984694f, 0.040414046f, -0.1380399f, 0.094208956f, -0.05722982f, 0.012092817f, -0.04989123f, -0.086576f, -0.003399834f, -0.04696032f, -0.045747425f, 0.10091314f, 0.048676282f, -0.029037097f, 0.031399418f, -0.0040285117f, 0.047237843f, 0.09504992f, 0.041799378f, -0.049185462f, -0.031518843f, -0.10516937f, 0.026374253f, 0.10058866f, -0.0033195973f, -0.041975245f, 0.0073591834f, 0.0033782164f, -0.004325073f, -0.10167381f, 0.042500053f, -0.01447153f, 0.06464186f, -0.017142897f, 0.03312627f, 0.009205989f, 0.024138335f, -0.011337001f, 0.035530265f, -0.010912711f, 0.0706555f, -0.005894094f, 0.051841937f, -0.1401738f, -0.02351249f, 0.0365468f, 0.07590991f, 0.08838724f, 0.021681072f, -0.10086113f, 0.019608743f, -0.06195883f, 0.077335775f, 0.023646897f, -0.095322326f, 0.02233014f, 0.09756986f, -0.048691444f, -0.009579111f, 0.07595467f, 0.11480546f, -0.09801813f, 0.019894179f, 0.08502348f, 0.004032281f, 0.037211012f, 0.068537936f, -0.048005626f, -0.091520436f, -0.028379958f, -0.01556313f, 0.06554592f, -0.045599163f, -0.01672207f, -0.020169014f, -0.011877351f, -0.20212261f, 0.010889619f, 0.0047078193f, 0.038385306f, 0.08540671f, -0.017140968f, -0.0035865551f, 0.016678626f, 0.005633034f, 0.015963363f, 0.00871737f, 0.060130805f, 0.028611384f, 0.10109069f, -0.015060172f, -0.07894427f, 0.06401885f, 0.011584063f, -0.024466386f, 0.0047652307f, -0.09041358f, 0.030737216f, -0.0046374933f, 0.14215417f, -0.11823516f, 0.019899689f, 0.006106124f, -0.027092824f, 0.0786356f, 0.05052217f, -0.058925f, -0.011402121f, -0.024987547f, -0.0013661642f, -0.06832946f, -0.015667673f, -0.1083353f, -0.00096863037f, -0.06988685f, -0.053350925f, -0.027275559f, -0.033664223f, -0.07978348f, -0.025200296f, -0.017207067f, -0.058403496f, -0.055697463f, 0.005798788f, 0.12965427f, -0.062582195f, 0.0013350133f, -0.10482091f, 0.0379771f, 0.072521195f, -0.0029455067f, -0.13797039f, -0.03628521f, 0.013806405f, -0.017858358f, -0.01008298f, -0.07700066f, -0.017081132f, 0.019358726f, 0.0027079724f, 0.004635139f, 0.062634714f, -0.02338735f, -0.039547626f, -0.02050681f, 0.03385117f, -0.083611414f, 0.002862572f, -0.09421313f, 0.058618143f, -0.08598433f, 0.00972939f, 0.023867095f, -0.053934585f, -0.023203006f, 0.07452513f, -0.048767887f, -0.07314807f, -0.056307215f, -0.10433547f, -0.06440842f, 0.04328182f, 0.04389765f, -0.020006588f, -0.09076438f, -0.11652589f, -0.021705797f, 0.03345259f, -0.010329105f, -0.025767034f, 0.013057034f, -0.07316461f, -0.10145612f, 0.06358255f, 0.18531723f, 0.07759293f, 0.12006465f, 0.1305557f, 0.058638252f, -0.03393652f, 0.09622831f, -0.16253184f, -2.4580743e-06f, 0.079869635f, -0.070196845f, -0.005644518f, 0.06857898f, -0.12598175f, -0.035084512f, 0.03156317f, -0.12794146f, -0.031963028f, 0.04692781f, 0.030070418f, 0.0071660685f, -0.095516115f, -0.004643372f, 0.040170413f, -0.062104587f, -0.0037324072f, 0.0554317f, 0.08184801f, -0.019164372f, 0.06791302f, 0.034257166f, -0.10307039f, 0.021943003f, 0.046745934f, 0.0790918f, -0.0265588f, -0.007824208f, 0.042546265f, -0.00977924f, -0.0002440307f, -0.017384544f, -0.017990116f, 0.12252321f, -0.014512694f, -0.08251313f, 0.08861942f, 0.13589665f, 0.026351685f, 0.012641483f, 0.07466548f, 0.044301085f, -0.045414884f, -0.051112458f, 0.03444247f, -0.08502782f, -0.04106223f, -0.028126027f, 0.028473156f, 0.10467447f}}, {6, {-0.057784554f, -0.026057621f, -0.068447545f, -0.022581743f, 0.14811787f, 0.10826372f, 0.09471067f, 0.03987225f, -0.0039523416f, 0.00030638507f, 0.053185795f, 0.10572994f, 0.08414449f, -0.022036452f, -0.00066928595f, -0.09203576f, 0.032950465f, -0.10985798f, -0.023809856f, 0.0021431844f, -0.02196096f, -0.00326074f, 0.00058621005f, -0.074678116f, -0.06193199f, 0.055729095f, 0.03736828f, 0.020123724f, 0.061878487f, -0.04729229f, 0.034919553f, -0.07585433f, -0.04421272f, -0.044019096f, 0.085488975f, 0.04058006f, -0.06890133f, -0.030951202f, -0.024628663f, -0.07672815f, 0.034293607f, 0.08556707f, -0.05293577f, -0.033561368f, -0.04899627f, 0.0241671f, 0.015736353f, -0.095442444f, -0.029564252f, 0.016493602f, -0.035026584f, 0.022337519f, -0.026871363f, 0.004780428f, 0.0077918363f, -0.03601621f, 0.016435321f, -0.03263031f, -0.09543275f, -0.047392778f, 0.013454138f, 0.028934088f, 0.01685226f, -0.086110644f, -0.046250615f, -0.01847454f, 0.047608484f, 0.07339695f, 0.034546845f, -0.04881143f, 0.009128804f, -0.08802852f, 0.03761666f, 0.008096139f, -0.014454086f, 0.014361001f, -0.023502491f, -0.0011840804f, -0.07607001f, 0.001856849f, -0.06509276f, -0.006021153f, -0.08570962f, -0.1451793f, 0.060212336f, 0.055259194f, 0.06974018f, 0.049454916f, -0.027794661f, -0.08077226f, -0.016179763f, 0.1169753f, 0.17213494f, -0.0056326236f, -0.053934924f, -0.0124349f, -0.11520337f, 0.05409887f, 0.088759385f, 0.0019655675f, 0.0042065294f, 0.03881498f, 0.019844765f, 0.041858196f, -0.05695512f, 0.047233116f, 0.038937137f, -0.06542224f, 0.014429736f, -0.09719407f, 0.13908425f, -0.05379757f, 0.012321099f, 0.082840554f, -0.029899208f, 0.044217527f, 0.059855383f, 0.07711018f, -0.045319796f, 0.0948846f, -0.011724666f, -0.0033288454f, -0.033542685f, -0.04764985f, -0.13873616f, 0.040668588f, 0.034832682f, -0.015319203f, -0.018715994f, 0.046002675f, 0.0599172f, -0.043107376f, 0.0294216f, -0.002314414f, -0.022424703f, 0.0030315618f, 0.0014641669f, 0.0029166266f, -0.11878115f, 0.013738511f, 0.12375372f, -0.0006038222f, 0.029104086f, 0.087442465f, 0.052958444f, 0.07558703f, 0.04817258f, 0.044462286f, -0.015213451f, -0.08783778f, -0.0561384f, -0.003008196f, 0.047060397f, -0.002058388f, 0.03429439f, -0.018839769f, 0.024734668f, 0.024614193f, -0.042046934f, 0.09597743f, -0.0043254104f, 0.04320769f, 0.0064070094f, -0.0019131786f, -0.02558259f, -0.022822596f, -0.023273505f, -0.02464396f, -0.10991725f, -0.006240552f, 0.0074488563f, 0.024044557f, 0.04383914f, -0.046476185f, 0.028658995f, 0.060410924f, 0.050786525f, 0.009452605f, -0.0073054377f, -0.024810238f, 0.0052906186f, 0.0066939713f, -0.0020913032f, 0.014515517f, 0.015898481f, 0.021362653f, -0.030262267f, 0.016587038f, -0.011442813f, 0.041154444f, -0.007631438f, -0.03423484f, -0.010977775f, 0.036152758f, 0.0066366293f, 0.11915515f, 0.02318443f, -0.041350313f, 0.021485701f, -0.10906167f, -0.028218046f, -0.00954771f, 0.020531068f, -0.11995105f, -0.03672871f, 0.024019798f, 0.014255957f, -0.05221243f, -0.00661567f, -0.04630967f, 0.033188973f, 0.10107534f, -0.014027541f, 0.030796422f, -0.10270911f, -0.035999842f, 0.15443139f, 0.07684145f, 0.036571592f, -0.035900835f, -0.0034699554f, 0.06209149f, 0.015920248f, -0.031122351f, -0.03858649f, 0.01849943f, 0.13872518f, 0.01503974f, 0.069941424f, -0.06948533f, -0.0088794185f, 0.061282158f, -0.047401894f, 0.03100163f, -0.041533746f, -0.10430945f, 0.044574402f, -0.01425562f, -0.024290353f, 0.034563623f, 0.05866852f, 0.023947537f, -0.09445152f, 0.035450947f, 0.02247216f, -0.0042998926f, 0.061146557f, -0.10250651f, 0.020881841f, -0.06747029f, 0.10062043f, -0.0023941975f, 0.03532124f, -0.016341697f, 0.09685456f, -0.016764693f, 0.051808182f, 0.05875331f, -0.04536488f, 0.001626336f, -0.028892258f, -0.01048663f, -0.009793449f, -0.017093895f, 0.010987891f, 0.02357273f, -0.00010856845f, 0.0099760275f, -0.001845119f, -0.03551521f, 0.0018358806f, 0.05763657f, -0.01769146f, 0.040995963f, 0.02235177f, -0.060430344f, 0.11475477f, -0.023854522f, 0.10071741f, 0.0686208f, -0.014250481f, 0.034261297f, 0.047418304f, 0.08562733f, -0.030519066f, 0.0060542435f, 0.014653856f, -0.038836084f, 0.04096551f, 0.032249358f, -0.08355519f, -0.026823482f, 0.056386515f, -0.010401743f, -0.028396193f, 0.08507674f, 0.014410365f, 0.020995233f, 0.17040324f, 0.11511526f, 0.02459721f, 0.0066619175f, 0.025853224f, -0.023133837f, -0.081302024f, 0.017264642f, -0.009585969f, 0.09491168f, -0.051313367f, 0.054532815f, -0.014298593f, 0.10657464f, 0.007076659f, 0.10964551f, 0.0409152f, 0.008275321f, -0.07283536f, 0.07937492f, 0.04192024f, -0.1075027f}}, {7, {-0.037322544f, 0.018592842f, 0.0056175636f, -0.06253426f, 0.055647098f, -0.05713207f, -0.05626563f, 0.005559383f, 0.03375411f, -0.025757805f, -0.088049285f, 0.06017052f, -0.06570978f, 0.007384076f, 0.035123326f, -0.07920549f, 0.053676967f, 0.044480428f, -0.07663568f, 0.0071805613f, 0.08089997f, 0.05143358f, 0.038261272f, 0.03339287f, -0.027673481f, 0.044746667f, 0.028349208f, 0.020090483f, -0.019443132f, -0.030755889f, -0.0040000007f, 0.04465846f, -0.021585021f, 0.0031670958f, 0.0053199246f, -0.056117613f, -0.10893326f, 0.076739706f, -0.08509834f, -0.027997585f, 0.037871376f, 0.01449768f, -0.09002357f, -0.06111149f, -0.046195522f, 0.0422062f, -0.005683705f, -0.1253618f, -0.012925729f, -0.04890792f, 0.06985068f, 0.037654128f, 0.03398274f, -0.004781977f, 0.007032333f, -0.031787455f, 0.010868644f, -0.031489216f, 0.09525667f, 0.013939797f, 0.0058680447f, 0.0167067f, 0.02668468f, -0.04797466f, -0.048885044f, -0.12722108f, 0.035304096f, 0.06554885f, 0.00972396f, -0.039238118f, -0.05159735f, -0.11329045f, 0.1613692f, -0.03750952f, 0.06529313f, -0.071974665f, -0.11769596f, 0.015524369f, -0.0013754242f, -0.12446318f, 0.02786344f, -0.014179351f, 0.005264273f, 0.14376344f, 0.015983658f, 0.03406988f, -0.06939408f, 0.040699873f, 0.02111075f, 0.09669095f, 0.041345075f, -0.08316494f, -0.07684199f, -0.045768797f, 0.032298047f, -0.041805092f, 0.0119405f, 0.0061010392f, 0.12652606f, 0.0064572375f, -0.024950314f, 0.11574242f, 0.04508852f, -0.04335324f, 0.06760663f, -0.027437469f, 0.07216407f, 0.06977076f, -0.05438599f, 0.034033038f, -0.028602652f, 0.05346137f, 0.043184172f, -0.037189785f, 0.10420091f, 0.00882477f, -0.054019816f, -0.074273005f, -0.030617684f, -0.0028467078f, 0.024302477f, -0.0038869337f, 0.005332455f, 0.0013399826f, 0.04361412f, -0.007001822f, 0.09631092f, -0.06702025f, -0.042049985f, -0.035070654f, -0.04103342f, -0.10273396f, 0.0544271f, 0.037184782f, -0.13150354f, -0.0058036847f, -0.008264958f, 0.042035464f, 0.05891794f, 0.029673764f, 0.0063542654f, 0.044788733f, 0.054816857f, 0.062257513f, -0.00093483756f, 0.048938446f, -0.004952862f, -0.007730018f, -0.04043371f, -0.017094059f, 0.07229206f, -0.023670016f, -0.052195564f, -0.025616996f, -0.01520939f, 0.045104615f, -0.007376126f, 0.003533447f, 0.006570588f, 0.056037236f, 0.12436656f, 0.051817212f, 0.028532185f, -0.08686856f, 0.11868599f, 0.07663395f, -0.07323171f, 0.03463402f, -0.050708205f, -0.04458982f, -0.11590894f, 0.021273347f, 0.1251325f, -0.15313013f, -0.12224372f, 0.17228661f, 0.023029093f, 0.086124025f, 0.006445803f, -0.03496501f, 0.028332196f, 0.04449512f, -0.042436164f, -0.026587414f, -0.006041347f, -0.09292539f, -0.05678812f, 0.03897832f, 0.09465633f, 0.008115513f, -0.02171956f, 0.08304309f, 0.071401566f, 0.019622514f, 0.032163795f, -0.004167056f, 0.02295182f, 0.030739572f, 0.056506045f, 0.004612461f, 0.06524936f, 0.059999723f, 0.046395954f, -0.0045512207f, -0.1335546f, -0.030136576f, 0.11584653f, -0.014678886f, 0.0020118146f, -0.09688814f, -0.0790206f, 0.039770417f, -0.0329582f, 0.07922767f, 0.029322514f, 0.026405897f, 0.04207835f, -0.07073373f, 0.063781224f, 0.0859677f, -0.10925287f, -0.07011058f, 0.048005477f, 0.03438226f, -0.09606514f, -0.006669445f, -0.043381985f, 0.04240257f, -0.06955775f, -0.06769346f, 0.043903265f, -0.026784198f, -0.017840602f, 0.024307009f, -0.040079936f, -0.019946516f, 0.045318738f, -0.12233574f, 0.026170589f, 0.0074471775f, 0.15978073f, 0.10185836f, 0.10298046f, -0.015476589f, -0.039390966f, -0.072174534f, 0.0739445f, -0.1211869f, -0.0347889f, -0.07943156f, 0.014809798f, -0.12412325f, -0.0030663363f, 0.039695457f, 0.0647603f, -0.08291318f, -0.018529687f, -0.004423833f, 0.0037507233f, 0.084633216f, -0.01514876f, -0.056505352f, -0.012800942f, -0.06994386f, 0.012962922f, -0.031234352f, 0.07029052f, 0.016418684f, 0.03618972f, 0.055686004f, -0.08663945f, -0.017404709f, -0.054761406f, 0.029065743f, 0.052404847f, 0.020238016f, 0.0048197987f, -0.0214882f, 0.07078733f, 0.013016777f, 0.06262858f, 0.009184685f, 0.020785125f, -0.043904778f, -0.0270329f, -0.03299152f, -0.060088247f, -0.015162964f, -0.001828936f, 0.12642565f, -0.056757294f, 0.013586685f, 0.09232601f, -0.035886683f, 0.06000002f, 0.05229691f, -0.052580316f, -0.082029596f, -0.010794592f, 0.012947712f, -0.036429964f, -0.085508935f, -0.13127148f, -0.017744139f, 0.031502828f, 0.036232427f, -0.031581745f, 0.023051167f, -0.05325106f, -0.03421577f, 0.028793324f, -0.034633752f, -0.009881397f, -0.043551125f, -0.018609839f, 0.0019097115f, -0.008799762f, 0.056595087f, 0.0022273948f, 0.055752404f}}, {8, {0.025825322f, -0.05813119f, 0.09495884f, -0.045984812f, -0.01255415f, -0.0026479573f, -0.08196161f, -0.054914974f, -0.0046604523f, -0.029587349f, -0.044576716f, -0.07480124f, -0.082868785f, 0.023254942f, 0.027502948f, -0.0039728214f, -0.08683098f, -0.08116779f, -0.014675607f, -0.037924774f, -0.023314456f, -0.007401714f, -0.09255757f, 0.029460307f, -0.08829125f, -0.005139627f, -0.08989442f, -0.0555066f, 0.13596267f, -0.025062224f, -0.048351806f, -0.03850004f, 0.07266485f, -0.022414139f, 0.05940088f, 0.075114764f, 0.09597592f, -0.010211725f, -0.0049794707f, -0.011523867f, -0.025980417f, 0.072999895f, 0.11091378f, -0.081685916f, 0.014416728f, 0.043229222f, 0.034178585f, -0.07530371f, 0.035837382f, -0.085607f, -0.007721233f, -0.03287832f, -0.043848954f, -0.06404588f, -0.06632928f, -0.073643476f, 0.008214239f, -0.045984086f, 0.039764922f, 0.03474462f, 0.060612556f, -0.080590084f, 0.049127717f, 0.04151091f, -0.030063879f, 0.008801774f, -0.023021035f, -0.019558564f, 0.05158114f, -0.010947698f, -0.011825728f, 0.0075720972f, 0.0699727f, -0.0039981045f, 0.069350146f, 0.08799282f, 0.016156472f, 0.035502106f, 0.11695009f, 0.006217345f, 0.13392477f, -0.037875112f, 0.025745004f, 0.08940699f, -0.00924166f, 0.0046702605f, -0.036598757f, -0.08811812f, 0.10522024f, -0.032441203f, 0.008176899f, -0.04454919f, 0.07058152f, 0.0067963637f, 0.039206743f, 0.03259838f, 0.03725492f, -0.09515802f, 0.013326398f, -0.052055415f, -0.025676316f, 0.03198509f, -0.015951829f, -0.058556724f, 0.036879618f, 0.043357447f, 0.028362012f, -0.05908629f, 0.0059240665f, -0.04995891f, -0.019187413f, 0.0276265f, -0.01628143f, 0.0025863599f, 0.08800015f, 0.035250366f, -0.022165963f, -0.07328642f, -0.009415526f, -0.07455109f, 0.11690406f, 0.0363299f, 0.07411125f, 0.042103454f, -0.009660886f, 0.019076364f, 0.018299393f, -0.046004917f, 0.08891175f, 0.0431396f, -0.026327137f, -0.051502608f, 0.08979574f, -0.051670972f, 0.04940282f, -0.07491107f, -0.021240504f, 0.022596184f, -0.034280192f, 0.060163025f, -0.058211457f, -0.051837247f, -0.01349775f, -0.04639988f, -0.035936575f, -0.011681591f, 0.064818054f, 0.0073146066f, -0.021745546f, -0.043124277f, -0.06471268f, -0.07053354f, -0.029321948f, -0.05330136f, 0.016933719f, -0.053782392f, 0.13747959f, -0.1361751f, -0.11569455f, 0.0033329215f, 0.05693899f, -0.053219706f, 0.063698f, 0.07977434f, -0.07924483f, 0.06936997f, 0.0034815092f, -0.007305279f, -0.037325785f, -0.07251102f, -0.033633437f, -0.08677009f, 0.091591336f, -0.14165086f, 0.021752775f, 0.019683983f, 0.0011612234f, -0.058154266f, 0.049996935f, 0.0288841f, -0.0024567875f, -0.14345716f, 0.010955264f, -0.10234828f, 0.1183656f, -0.0010731248f, -0.023590032f, -0.072285876f, -0.0724771f, -0.026382286f, -0.0014920527f, 0.042667855f, 0.0018776858f, 0.02986552f, 0.009814309f, 0.0733756f, 0.12289186f, 0.018043943f, -0.0458958f, 0.049412545f, 0.033632483f, 0.05495232f, 0.036686596f, -0.013781798f, -0.010036754f, 0.02576849f, -0.08307328f, 0.010112348f, 0.042521734f, -0.05869831f, -0.071689695f, 0.03876447f, -0.13275425f, -0.0352966f, -0.023077697f, 0.10285965f, 0.084736146f, 0.15568255f, -0.00040734606f, 0.027835453f, -0.10292561f, -0.032401145f, 0.10053256f, -0.026142767f, -0.08271222f, -0.0030240538f, -0.016368777f, 0.1070414f, 0.042672627f, 0.013456989f, -0.0437609f, -0.022309763f, 0.11576483f, 0.04108048f, 0.061026827f, -0.0190714f, -0.0869359f, 0.037901703f, 0.0610107f, 0.07202949f, 0.01675338f, 0.086139716f, -0.08795751f, -0.014898893f, -0.023771819f, -0.01965048f, 0.007955471f, -0.043740474f, 0.03346837f, -0.10549954f, 0.090567775f, 0.042013682f, -0.03176985f, 0.12569028f, -0.02421228f, -0.029526481f, 0.023851605f, 0.031539805f, 0.05292009f, -0.02344001f, -0.07811758f, -0.08834428f, 0.10094801f, 0.16594367f, -0.06861939f, -0.021256343f, -0.041093912f, -0.06669611f, 0.035498552f, 0.021757556f, -0.09302526f, -0.015403468f, -0.06614931f, -0.051798206f, -0.013874718f, 0.03630673f, 0.010412845f, -0.08077351f, 0.046185967f, 0.0035662893f, 0.03541868f, -0.094149634f, -0.034814864f, 0.003128424f, -0.020674974f, -0.03944324f, -0.008110165f, -0.11113267f, 0.08484226f, 0.043586485f, 0.040582247f, 0.0968012f, -0.065249965f, -0.028036479f, 0.0050708856f, 0.0017462453f, 0.0326779f, 0.041296225f, 0.09164146f, -0.047743853f, -0.015952192f, -0.034451712f, 0.084197424f, -0.05347844f, -0.11768019f, 0.085926116f, -0.08251791f, -0.045081906f, 0.0948852f, 0.068401024f, 0.024856757f, 0.06978981f, -0.057309967f, -0.012775832f, -0.0032452994f, 0.01977615f, -0.041040014f, -0.024264973f, 0.063464895f, 0.05431621f}}, {9, {0.040369894f, 0.030746894f, 0.24704495f, 0.018586371f, -0.037586458f, -0.15312155f, -0.11812848f, -0.11465643f, 0.20259799f, 0.11418174f, -0.10116027f, -0.011334949f, 0.12411352f, -0.076769054f, -0.052169047f, 0.21198851f, -0.38871562f, -0.09061183f, -0.09683246f, -0.21929175f}}, {10, {-0.01998659f, -0.15568835f, -0.24248174f, -0.012770197f, 0.041331276f, -0.072311886f, -0.052123554f, -0.0066330447f, -0.043891653f, 0.036225766f, -0.047248036f, 0.021479502f, 0.033189066f, 0.11952997f, -0.020432774f, 0.64658105f, -0.06650122f, -0.03467612f, 0.095340036f, 0.23647355f}}, {11, {0.08286371f, -0.08261836f, -0.51210177f, 0.002913762f, 0.17764764f, -0.5495371f, -0.08460716f, -0.24552552f, 0.030037103f, 0.04123544f, -0.11940523f, 0.007358328f, 0.1890978f, 0.4833202f, -0.34441817f, 0.36312827f, -0.26375428f, 0.1457655f, -0.19724406f, 0.15548733f}}, {12, {0.02234832f, 0.14757581f, 0.18176508f, 0.10380666f, 0.053110216f, -0.06928846f, -0.13942584f, -0.11816189f, 0.19483899f, 0.03652339f, -0.10250295f, 0.036714908f, -0.18426876f, 0.036065217f, 0.21810818f, 0.02383196f, -0.043370757f, 0.08690144f, -0.04444982f, 0.00030581196f}}, {13, {0.035185695f, -0.042891346f, -0.03032477f, 0.23027696f, 0.11098921f, 0.15378423f, 0.09263801f, 0.09790885f, 0.09508917f, 0.061199076f, 0.07665568f, -0.015443159f, -0.03499149f, 0.046190713f, 0.08895977f, 0.10899629f, 0.40694186f, 0.06030037f, 0.012413437f, -0.06108739f}}, {14, {-0.024379363f, 0.0055531194f, 0.23377132f, 0.033463873f, -0.1483596f, -0.10639995f, -0.091433935f, 0.058573797f, -0.06809782f, -0.07889636f, -0.043246906f, -0.09829136f, -0.4279842f, 0.034901652f, 0.18797937f, 0.0075234566f, 0.016178843f, 0.1749513f, 0.13975595f, 0.92058027f}}, {15, {0.046159424f, -0.0012809046f, 0.03563469f, 0.12648113f, 0.027195795f, 0.35373217f, -0.018957434f, 0.008907322f, -0.0762701f, 0.12018895f, 0.04216877f, 0.0022856654f, 0.040952638f, 0.3147856f, 0.08225149f, -0.057416286f, -0.14995944f, -0.008040261f, 0.13208859f, 0.029760877f}}, {16, {-0.009802181f, 0.09401916f, 0.0717386f, -0.13895074f, 0.09641832f, 0.060420845f, 0.08539281f, 0.054285463f, 0.061395317f, 0.034448683f, -0.042991187f, 0.019801661f, -0.16840284f, -0.015726732f, -0.23041931f, -0.024478018f, -0.10959692f, -0.013875541f, 0.18600968f, -0.061274476f, 0.0138165f, -0.08160894f, -0.07661644f, 0.032372914f, 0.16169067f, 0.22465782f, -0.03993472f, -0.004017731f, 0.08633481f, -0.28869787f, 0.08682067f, 0.17240396f, 0.014975425f, 0.056431185f, 0.031037588f, 0.16702051f, 0.0077946745f, 0.15140012f, 0.29405436f, 0.120285f, -0.188994f, -0.027265169f, 0.043389652f, -0.022061434f, 0.014777949f, -0.20203483f, 0.094781205f, 0.19100232f, 0.13987629f, -0.036132768f, -0.06426278f, -0.05108664f, 0.13221376f, 0.009441198f, -0.16715929f, 0.15859416f, -0.040437475f, 0.050779544f, -0.022187516f, 0.012166504f, 0.027685808f, -0.07675938f, -0.0055694645f, -0.09444123f, 0.0046453946f, 0.050794356f, 0.10770313f, -0.20790008f, -0.07149004f, -0.11425117f, 0.008225835f, -0.035802525f, 0.14374903f, 0.15262283f, 0.048710253f, 0.1847461f, -0.007487823f, 0.11000021f, -0.09542012f, 0.22619456f, -0.029149994f, 0.08527916f, 0.009043713f, 0.0042746216f, 0.016261552f, 0.022461696f, 0.12689082f, -0.043589946f, -0.12035478f, -0.08361797f, -0.050666027f, -0.1248618f, -0.1275799f, -0.071875185f, 0.07377272f, 0.09944291f, -0.18897448f, -0.1593054f, -0.06526116f, -0.040107165f, -0.004618631f, -0.067624845f, -0.007576253f, 0.10727444f, 0.041546922f, -0.20424393f, 0.06907816f, 0.050412357f, 0.00724631f, 0.039827548f, 0.12449835f, 0.10747581f, 0.13708383f, 0.09134148f, -0.12617786f, -0.06428341f, 0.09956831f, 0.1208086f, -0.14676677f, -0.0727722f, 0.1126304f, 0.010139365f, 0.015571211f, -0.038128063f, 0.022913318f, -0.042050496f, 0.16842307f, -0.060597885f, 0.10531834f, -0.06411776f, -0.07451711f, -0.03410368f, -0.13393489f, 0.06534304f, 0.003620307f, 0.04490757f, 0.05970546f, 0.05197996f, 0.02839995f, 0.10434969f, -0.013699693f, -0.028353551f, -0.07260381f, 0.047201227f, -0.024575593f, -0.036445823f, 0.07155557f, 0.009672501f, -0.02328883f, 0.009533515f, -0.03606021f, -0.07421458f, -0.028082801f, -0.2678904f, -0.13221288f, 0.18419984f, -0.13012612f, -0.014588381f, -0.035059117f, -0.04824723f, 0.07830115f, -0.056184657f, 0.03277091f, 0.025466874f, 0.14494097f, -0.12522776f, -0.098633975f, -0.10766018f, -0.08317623f, 0.08594209f, 0.07749552f, 0.039474737f, 0.1776665f, -0.07409566f, -0.0477268f, 0.29323658f, 0.10801441f, 0.1154011f, 0.013952499f, 0.10739139f, 0.10708251f, -0.051456142f, 0.0074137426f, -0.10430189f, 0.10034707f, 0.045594677f, 0.0635285f, -0.0715442f, -0.089667566f, -0.10811871f, 0.00026344223f, 0.08298446f, -0.009525053f, 0.006585689f, -0.24567553f, -0.09450807f, 0.09648481f, 0.026996298f, -0.06419476f, -0.04752702f, -0.11063944f, -0.23441927f, -0.17608605f, -0.052156363f, 0.067035615f, 0.19271925f, -0.0032889997f, -0.043264326f, 0.09663576f, -0.057112187f, -0.10100678f, 0.0628376f, 0.04447668f, 0.017961001f, -0.10094388f, -0.10190601f, 0.18335468f, 0.10494553f, -0.052095775f, -0.0026118709f, 0.10539724f, -0.04383912f, -0.042349473f, 0.08438151f, -0.1947263f, 0.02251204f, 0.11216432f, -0.10307853f, 0.17351969f, -0.039091777f, 0.08066188f, -0.00561982f, 0.12633002f, 0.11335965f, -0.0088127935f, -0.019777594f, 0.06864014f, -0.059751723f, 0.016233567f, -0.06894641f, -0.28651384f, -0.004228674f, 0.019708522f, -0.16305895f, -0.07468996f, -0.0855457f, 0.099339016f, -0.07580735f, -0.13775392f, 0.08434318f, 0.08330512f, -0.12131499f, 0.031935584f, 0.09180414f, -0.08876437f, -0.08049874f, 0.008753825f, 0.03498998f, 0.030215185f, 0.03907079f, 0.089751154f, 0.029194152f, -0.03337423f, -0.019092513f, 0.04331237f, 0.04299654f, -0.036394123f, -0.12915532f, 0.09793732f, 0.07512415f, -0.11319543f, -0.032502122f, 0.15661901f, 0.07671967f, -0.005491124f, -0.19379048f, -0.218606f, 0.21448623f, 0.017840758f, 0.1416943f, -0.07051762f, 0.19488361f, 0.02664691f, -0.18104725f, -0.09334311f, 0.15026465f, -0.15493552f, -0.057762887f, -0.11604192f, -0.262013f, -0.01391798f, 0.012185008f, 0.11156489f, -0.07483202f, 0.06693364f, -0.26151478f, 0.046425626f, 0.036540434f, -0.16435726f, 0.17338543f, -0.21401681f, -0.11385144f, -0.08283257f, -0.069031075f, 0.030635102f, 0.010969227f, 0.11109743f, 0.010919218f, 0.027526086f, 0.13519906f, 0.01891392f, -0.046839405f, -0.040167913f, 0.017953383f, -0.09700955f, 0.0061885654f, -0.07000971f, 0.026893595f, -0.038844477f, 0.14543656f}}, {17, {}}, {18, {-0.0166936f, 0.0381209f, 0.000889684f, 0.0143363f, -0.0328911f, -0.0234288f, 0.0333051f, -0.012229f, 0.0110322f, -0.0457725f, -0.000832209f, -0.0202817f, 0.0327257f, 0.0121309f, 0.0155969f, 0.0312091f, -0.0141913f, 0.0322082f, 0.00227024f, 0.0260507f, -0.0188721f, -0.0296489f, 0.0399134f, -0.0160509f, 0.011604f, -0.0447318f, -0.0150515f, -0.0277406f, 0.0316596f, 0.0118233f, 0.0214762f, 0.0293641f}}, {19, {-0.154022f, -0.124934f, 0.0478463f, 0.0607819f, -0.218727f, -0.111053f, -0.103885f, -0.00447221f, 0.0554757f, -0.0207068f, 0.0595767f, -0.116297f, -0.249466f, -0.0723206f, 0.0794942f, -0.0377107f, 0.124532f, 0.249952f, 0.188641f, 0.411865f, -0.11012f, -0.0694494f, 0.103501f, 0.0428427f, -0.167345f, -0.106061f, -0.0775679f, 0.00936161f, 0.0105526f, -0.0314523f, 0.0243475f, -0.132179f, -0.258763f, -0.0307266f, 0.107047f, -0.0115197f, 0.0995485f, 0.220027f, 0.158355f, 0.436369f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{1, {-0.0213783f, 0.0350169f, 0.000324787f, 0.0276012f, -0.0263374f, -0.0371449f, 0.0446149f, -0.0205474f, 0.0103729f, -0.0576349f, -0.0150052f, -0.0292043f, 0.0376827f, 0.0136115f, 0.0243435f, 0.0354492f, -0.0204549f, 0.0450315f, -0.00117379f, 0.0167673f, -0.0375007f, -0.0238314f, 0.038784f, -0.0174034f, 0.0131743f, -0.0506589f, -0.00484469f, -0.0240239f, 0.0325789f, 0.00790064f, 0.0220157f, 0.0333314f}}, {2, {-0.126572f, -0.121882f, 0.121569f, 0.0489971f, -0.240177f, -0.124685f, -0.122565f, 0.0162748f, 0.0317536f, -0.0270355f, 0.0418199f, -0.179755f, -0.327279f, -0.0342741f, 0.133831f, -0.0238279f, 0.122148f, 0.269115f, 0.185989f, 0.525976f, -0.167208f, -0.109612f, 0.0531226f, 0.0695387f, -0.248335f, -0.134123f, -0.108246f, 0.00628498f, 0.0492984f, -0.0264919f, 0.0698144f, -0.0635602f, -0.295363f, -0.0760078f, 0.102725f, -0.0351708f, 0.149804f, 0.259131f, 0.202573f, 0.500664f}}, {3, {-0.0213783f, 0.0350169f, 0.000324794f, 0.0276012f, -0.0263374f, -0.0371449f, 0.0446149f, -0.0205474f, 0.0103729f, -0.0576349f, -0.0150052f, -0.0292043f, 0.0376827f, 0.0136115f, 0.0243435f, 0.0354492f, -0.0204549f, 0.0450315f, -0.00117378f, 0.0167673f, -0.0375007f, -0.0238314f, 0.038784f, -0.0174034f, 0.0131743f, -0.0506589f, -0.0048447f, -0.0240239f, 0.0325789f, 0.00790065f, 0.0220157f, 0.0333314f}}, {0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/lstm3_state3.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/lstm3_state3.example.cpp
new file mode 100644
index 000000000..f7f1a28e9
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/lstm3_state3.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: lstm3_state3.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.867394f, 0.291279f, 0.013714f, 0.482521f, 0.626339f, 0.082922f, 0.563329f, 0.865614f, 0.333232f, 0.259916f}}, {1, {0.021393683f, 0.06124551f, 0.046905167f, -0.014657677f, -0.03149463f, 0.09171803f, 0.14647801f, 0.10797193f, -0.0057968358f, 0.0019193048f, -0.2726754f, 0.10154029f, -0.018539885f, 0.080349885f, -0.10262385f, -0.022599787f, -0.09121155f, -0.008675967f, -0.045206103f, -0.0821282f, -0.008045952f, 0.015478081f, 0.055217247f, 0.038719587f, 0.044153627f, -0.06453243f, 0.05031825f, -0.046935108f, -0.008164439f, 0.014574226f, -0.1671009f, -0.15519552f, -0.16819797f, -0.13971269f, -0.11953059f, 0.25005487f, -0.22790983f, 0.009855087f, -0.028140958f, -0.11200698f, 0.11295408f, -0.0035217577f, 0.054485075f, 0.05184695f, 0.064711206f, 0.10989193f, 0.11674786f, 0.03490607f, 0.07727357f, 0.11390585f, -0.1863375f, -0.1034451f, -0.13945189f, -0.049401227f, -0.18767063f, 0.042483903f, 0.14233552f, 0.13832581f, 0.18350165f, 0.14545603f, -0.028545704f, 0.024939531f, 0.050929718f, 0.0076203286f, -0.0029723682f, -0.042484224f, -0.11827596f, -0.09171104f, -0.10808628f, -0.16327988f, -0.2273378f, -0.0993647f, -0.017155107f, 0.0023917493f, 0.049272764f, 0.0038534778f, 0.054764505f, 0.089753784f, 0.06947234f, 0.08014476f, -0.04544234f, -0.0497073f, -0.07135631f, -0.048929106f, -0.004042012f, -0.009284026f, 0.018042054f, 0.0036860977f, -0.07427302f, -0.11434604f, -0.018995456f, 0.031487543f, 0.012834908f, 0.019977754f, 0.044256654f, -0.39292613f, -0.18519334f, -0.11651281f, -0.06809892f, 0.011373677f}}, {2, {-0.0018401089f, -0.004852237f, 0.03698424f, 0.014181704f, 0.028273236f, -0.016726194f, -0.05249759f, -0.10204261f, 0.00861066f, -0.040979505f, -0.009899187f, 0.01923892f, -0.028177269f, -0.08535103f, -0.14585495f, 0.10662567f, -0.01909731f, -0.017883534f, -0.0047269356f, -0.045103323f, 0.0030784295f, 0.076784775f, 0.07463696f, 0.094531395f, 0.0814421f, -0.12257899f, -0.033945758f, -0.031303465f, 0.045630626f, 0.06843887f, -0.13492945f, -0.012480007f, -0.0811829f, -0.07224499f, -0.09628791f, 0.045100946f, 0.0012300825f, 0.013964662f, 0.099372394f, 0.02543059f, 0.06958324f, 0.034257296f, 0.0482646f, 0.06267997f, 0.052625068f, 0.12784666f, 0.07077897f, 0.025725935f, 0.04165009f, 0.07241905f, 0.018668644f, -0.037377294f, -0.06277783f, -0.08833636f, -0.040120605f, -0.011405586f, -0.007808335f, -0.010301386f, -0.005102167f, 0.027717464f, 0.05483423f, 0.11449111f, 0.11289652f, 0.10939839f, 0.13396506f, -0.08402166f, -0.01901462f, -0.044678304f, -0.07720565f, 0.014350063f, -0.11757958f, -0.0652038f, -0.08185733f, -0.076754324f, -0.092614375f, 0.10405491f, 0.052960336f, 0.035755895f, 0.035839386f, -0.012540553f, 0.036881298f, 0.02913376f, 0.03420159f, 0.05448447f, -0.054523353f, 0.02582715f, 0.02327355f, -0.011857179f, -0.0011980024f, -0.034641717f, -0.026125094f, -0.17582615f, -0.15923657f, -0.27486774f, -0.0006143371f, 0.0001771948f, -8.470171e-05f, 0.02651807f, 0.045790765f, 0.06956496f}}, {3, {-0.04580283f, -0.09549462f, -0.032418985f, -0.06454633f, -0.043528453f, 0.043018587f, -0.049152344f, -0.12418144f, -0.078985475f, -0.07596889f, 0.019484362f, -0.11434962f, -0.0074034138f, -0.06314844f, -0.092981495f, 0.0062155537f, -0.025034338f, -0.0028890965f, 0.048929527f, 0.06235075f, 0.10665918f, -0.032036792f, -0.08505916f, -0.10843358f, -0.13002433f, -0.036816437f, -0.02130134f, -0.016518239f, 0.0047691227f, -0.0025825808f, 0.066017866f, 0.029991534f, -0.10652836f, -0.1037554f, -0.13056071f, -0.03266643f, -0.033702414f, -0.006473424f, -0.04611692f, 0.014419339f, -0.025174323f, 0.0396852f, 0.081777506f, 0.06157468f, 0.10210095f, -0.009658194f, 0.046511717f, 0.03603906f, 0.0069369148f, 0.015960095f, -0.06507666f, 0.09551598f, 0.053568836f, 0.06408714f, 0.12835667f, -0.008714329f, -0.20211966f, -0.12093674f, 0.029450472f, 0.2849013f, -0.029227901f, 0.1164364f, -0.08560263f, 0.09941786f, -0.036999565f, -0.028842626f, -0.0033637602f, -0.017012902f, -0.09720865f, -0.11193351f, -0.029155117f, -0.017936034f, -0.009768936f, -0.04223324f, -0.036159635f, 0.06505112f, -0.021742892f, -0.023377212f, -0.07221364f, -0.06430552f, 0.05453865f, 0.091149814f, 0.06387331f, 0.007518393f, 0.055960953f, 0.069779344f, 0.046411168f, 0.10509911f, 0.07463894f, 0.0075130584f, 0.012850982f, 0.04555431f, 0.056955688f, 0.06555285f, 0.050801456f, -0.009862683f, 0.00826772f, -0.026555609f, -0.0073611983f, -0.0014897042f}}, {4, {-0.0998932f, -0.07201956f, -0.052803773f, -0.15629593f, -0.15001918f, -0.07650751f, 0.02359855f, -0.075155355f, -0.08037709f, -0.15093534f, 0.029517552f, -0.04751393f, 0.010350531f, -0.02664851f, -0.016839722f, -0.023121163f, 0.0077019283f, 0.012851257f, -0.05040649f, -0.0129761f, -0.021737747f, -0.038305793f, -0.06870586f, -0.01481247f, -0.001285394f, 0.10124236f, 0.083122835f, 0.053313006f, -0.062235646f, -0.075637154f, -0.027833903f, 0.029774971f, 0.1130802f, 0.09218906f, 0.09506135f, -0.086665764f, -0.037162706f, -0.038880914f, -0.035832845f, -0.014481564f, -0.09825003f, -0.12048569f, -0.097665586f, -0.05287633f, -0.0964047f, -0.11366429f, 0.035777505f, 0.13568819f, 0.052451383f, 0.050649304f, 0.05798951f, -0.021852335f, -0.099848844f, 0.014740475f, -0.078897946f, 0.04974699f, 0.014160473f, 0.06973932f, 0.04964942f, 0.033364646f, 0.08190124f, 0.025535367f, 0.050893165f, 0.048514254f, 0.06945813f, -0.078907564f, -0.06707616f, -0.11844508f, -0.09986688f, -0.07509403f, 0.06263226f, 0.14925587f, 0.20188436f, 0.12098451f, 0.14639415f, 0.0015017595f, -0.014267382f, -0.03417257f, 0.012711468f, 0.0028300495f, -0.024758482f, -0.05098548f, -0.0821182f, 0.014225672f, 0.021544158f, 0.08949725f, 0.07505268f, -0.0020780868f, 0.04908258f, 0.06476295f, -0.022907063f, 0.027562456f, 0.040185735f, 0.019567577f, -0.015598739f, -0.049097303f, -0.017121866f, -0.083368234f, -0.02332002f, -0.0840956f}}, {5, {-0.001374326f, -0.078856036f, 0.10672688f, 0.029162422f, -0.11585556f, 0.02557986f, -0.13446963f, -0.035785314f, -0.01244275f, 0.025961924f, -0.02337298f, -0.044228926f, -0.055839065f, -0.046598054f, -0.010546039f, -0.06900766f, 0.027239809f, 0.022582639f, -0.013296484f, -0.05459212f, 0.08981f, -0.045407712f, 0.08682226f, -0.06867011f, -0.14390695f, -0.02916037f, 0.000996957f, 0.091420636f, 0.14283475f, -0.07390571f, -0.06402044f, 0.062524505f, -0.093129106f, 0.04860203f, -0.08364217f, -0.08119002f, 0.009352075f, 0.22920375f, 0.0016303885f, 0.11583097f, -0.13732095f, 0.012405723f, -0.07551853f, 0.06343048f, 0.12162708f, -0.031923793f, -0.014335606f, 0.01790974f, -0.10650317f, -0.0724401f, 0.08554849f, -0.05727212f, 0.06556731f, -0.042729504f, -0.043227166f, 0.011683251f, -0.013082158f, -0.029302018f, -0.010899579f, -0.062036745f, -0.022509435f, -0.00964907f, -0.01567329f, 0.04260106f, -0.07787477f, -0.11576462f, 0.017356863f, 0.048673786f, -0.017577527f, -0.05527947f, -0.082487635f, -0.040137455f, -0.10820036f, -0.04666372f, 0.022746278f, -0.07851417f, 0.01068115f, 0.032956902f, 0.022433773f, 0.0026891115f, 0.08944216f, -0.0685835f, 0.010513544f, 0.07228705f, 0.02032331f, -0.059686817f, -0.0005566496f, -0.086984694f, 0.040414046f, -0.1380399f, 0.094208956f, -0.05722982f, 0.012092817f, -0.04989123f, -0.086576f, -0.003399834f, -0.04696032f, -0.045747425f, 0.10091314f, 0.048676282f, -0.029037097f, 0.031399418f, -0.0040285117f, 0.047237843f, 0.09504992f, 0.041799378f, -0.049185462f, -0.031518843f, -0.10516937f, 0.026374253f, 0.10058866f, -0.0033195973f, -0.041975245f, 0.0073591834f, 0.0033782164f, -0.004325073f, -0.10167381f, 0.042500053f, -0.01447153f, 0.06464186f, -0.017142897f, 0.03312627f, 0.009205989f, 0.024138335f, -0.011337001f, 0.035530265f, -0.010912711f, 0.0706555f, -0.005894094f, 0.051841937f, -0.1401738f, -0.02351249f, 0.0365468f, 0.07590991f, 0.08838724f, 0.021681072f, -0.10086113f, 0.019608743f, -0.06195883f, 0.077335775f, 0.023646897f, -0.095322326f, 0.02233014f, 0.09756986f, -0.048691444f, -0.009579111f, 0.07595467f, 0.11480546f, -0.09801813f, 0.019894179f, 0.08502348f, 0.004032281f, 0.037211012f, 0.068537936f, -0.048005626f, -0.091520436f, -0.028379958f, -0.01556313f, 0.06554592f, -0.045599163f, -0.01672207f, -0.020169014f, -0.011877351f, -0.20212261f, 0.010889619f, 0.0047078193f, 0.038385306f, 0.08540671f, -0.017140968f, -0.0035865551f, 0.016678626f, 0.005633034f, 0.015963363f, 0.00871737f, 0.060130805f, 0.028611384f, 0.10109069f, -0.015060172f, -0.07894427f, 0.06401885f, 0.011584063f, -0.024466386f, 0.0047652307f, -0.09041358f, 0.030737216f, -0.0046374933f, 0.14215417f, -0.11823516f, 0.019899689f, 0.006106124f, -0.027092824f, 0.0786356f, 0.05052217f, -0.058925f, -0.011402121f, -0.024987547f, -0.0013661642f, -0.06832946f, -0.015667673f, -0.1083353f, -0.00096863037f, -0.06988685f, -0.053350925f, -0.027275559f, -0.033664223f, -0.07978348f, -0.025200296f, -0.017207067f, -0.058403496f, -0.055697463f, 0.005798788f, 0.12965427f, -0.062582195f, 0.0013350133f, -0.10482091f, 0.0379771f, 0.072521195f, -0.0029455067f, -0.13797039f, -0.03628521f, 0.013806405f, -0.017858358f, -0.01008298f, -0.07700066f, -0.017081132f, 0.019358726f, 0.0027079724f, 0.004635139f, 0.062634714f, -0.02338735f, -0.039547626f, -0.02050681f, 0.03385117f, -0.083611414f, 0.002862572f, -0.09421313f, 0.058618143f, -0.08598433f, 0.00972939f, 0.023867095f, -0.053934585f, -0.023203006f, 0.07452513f, -0.048767887f, -0.07314807f, -0.056307215f, -0.10433547f, -0.06440842f, 0.04328182f, 0.04389765f, -0.020006588f, -0.09076438f, -0.11652589f, -0.021705797f, 0.03345259f, -0.010329105f, -0.025767034f, 0.013057034f, -0.07316461f, -0.10145612f, 0.06358255f, 0.18531723f, 0.07759293f, 0.12006465f, 0.1305557f, 0.058638252f, -0.03393652f, 0.09622831f, -0.16253184f, -2.4580743e-06f, 0.079869635f, -0.070196845f, -0.005644518f, 0.06857898f, -0.12598175f, -0.035084512f, 0.03156317f, -0.12794146f, -0.031963028f, 0.04692781f, 0.030070418f, 0.0071660685f, -0.095516115f, -0.004643372f, 0.040170413f, -0.062104587f, -0.0037324072f, 0.0554317f, 0.08184801f, -0.019164372f, 0.06791302f, 0.034257166f, -0.10307039f, 0.021943003f, 0.046745934f, 0.0790918f, -0.0265588f, -0.007824208f, 0.042546265f, -0.00977924f, -0.0002440307f, -0.017384544f, -0.017990116f, 0.12252321f, -0.014512694f, -0.08251313f, 0.08861942f, 0.13589665f, 0.026351685f, 0.012641483f, 0.07466548f, 0.044301085f, -0.045414884f, -0.051112458f, 0.03444247f, -0.08502782f, -0.04106223f, -0.028126027f, 0.028473156f, 0.10467447f}}, {6, {-0.057784554f, -0.026057621f, -0.068447545f, -0.022581743f, 0.14811787f, 0.10826372f, 0.09471067f, 0.03987225f, -0.0039523416f, 0.00030638507f, 0.053185795f, 0.10572994f, 0.08414449f, -0.022036452f, -0.00066928595f, -0.09203576f, 0.032950465f, -0.10985798f, -0.023809856f, 0.0021431844f, -0.02196096f, -0.00326074f, 0.00058621005f, -0.074678116f, -0.06193199f, 0.055729095f, 0.03736828f, 0.020123724f, 0.061878487f, -0.04729229f, 0.034919553f, -0.07585433f, -0.04421272f, -0.044019096f, 0.085488975f, 0.04058006f, -0.06890133f, -0.030951202f, -0.024628663f, -0.07672815f, 0.034293607f, 0.08556707f, -0.05293577f, -0.033561368f, -0.04899627f, 0.0241671f, 0.015736353f, -0.095442444f, -0.029564252f, 0.016493602f, -0.035026584f, 0.022337519f, -0.026871363f, 0.004780428f, 0.0077918363f, -0.03601621f, 0.016435321f, -0.03263031f, -0.09543275f, -0.047392778f, 0.013454138f, 0.028934088f, 0.01685226f, -0.086110644f, -0.046250615f, -0.01847454f, 0.047608484f, 0.07339695f, 0.034546845f, -0.04881143f, 0.009128804f, -0.08802852f, 0.03761666f, 0.008096139f, -0.014454086f, 0.014361001f, -0.023502491f, -0.0011840804f, -0.07607001f, 0.001856849f, -0.06509276f, -0.006021153f, -0.08570962f, -0.1451793f, 0.060212336f, 0.055259194f, 0.06974018f, 0.049454916f, -0.027794661f, -0.08077226f, -0.016179763f, 0.1169753f, 0.17213494f, -0.0056326236f, -0.053934924f, -0.0124349f, -0.11520337f, 0.05409887f, 0.088759385f, 0.0019655675f, 0.0042065294f, 0.03881498f, 0.019844765f, 0.041858196f, -0.05695512f, 0.047233116f, 0.038937137f, -0.06542224f, 0.014429736f, -0.09719407f, 0.13908425f, -0.05379757f, 0.012321099f, 0.082840554f, -0.029899208f, 0.044217527f, 0.059855383f, 0.07711018f, -0.045319796f, 0.0948846f, -0.011724666f, -0.0033288454f, -0.033542685f, -0.04764985f, -0.13873616f, 0.040668588f, 0.034832682f, -0.015319203f, -0.018715994f, 0.046002675f, 0.0599172f, -0.043107376f, 0.0294216f, -0.002314414f, -0.022424703f, 0.0030315618f, 0.0014641669f, 0.0029166266f, -0.11878115f, 0.013738511f, 0.12375372f, -0.0006038222f, 0.029104086f, 0.087442465f, 0.052958444f, 0.07558703f, 0.04817258f, 0.044462286f, -0.015213451f, -0.08783778f, -0.0561384f, -0.003008196f, 0.047060397f, -0.002058388f, 0.03429439f, -0.018839769f, 0.024734668f, 0.024614193f, -0.042046934f, 0.09597743f, -0.0043254104f, 0.04320769f, 0.0064070094f, -0.0019131786f, -0.02558259f, -0.022822596f, -0.023273505f, -0.02464396f, -0.10991725f, -0.006240552f, 0.0074488563f, 0.024044557f, 0.04383914f, -0.046476185f, 0.028658995f, 0.060410924f, 0.050786525f, 0.009452605f, -0.0073054377f, -0.024810238f, 0.0052906186f, 0.0066939713f, -0.0020913032f, 0.014515517f, 0.015898481f, 0.021362653f, -0.030262267f, 0.016587038f, -0.011442813f, 0.041154444f, -0.007631438f, -0.03423484f, -0.010977775f, 0.036152758f, 0.0066366293f, 0.11915515f, 0.02318443f, -0.041350313f, 0.021485701f, -0.10906167f, -0.028218046f, -0.00954771f, 0.020531068f, -0.11995105f, -0.03672871f, 0.024019798f, 0.014255957f, -0.05221243f, -0.00661567f, -0.04630967f, 0.033188973f, 0.10107534f, -0.014027541f, 0.030796422f, -0.10270911f, -0.035999842f, 0.15443139f, 0.07684145f, 0.036571592f, -0.035900835f, -0.0034699554f, 0.06209149f, 0.015920248f, -0.031122351f, -0.03858649f, 0.01849943f, 0.13872518f, 0.01503974f, 0.069941424f, -0.06948533f, -0.0088794185f, 0.061282158f, -0.047401894f, 0.03100163f, -0.041533746f, -0.10430945f, 0.044574402f, -0.01425562f, -0.024290353f, 0.034563623f, 0.05866852f, 0.023947537f, -0.09445152f, 0.035450947f, 0.02247216f, -0.0042998926f, 0.061146557f, -0.10250651f, 0.020881841f, -0.06747029f, 0.10062043f, -0.0023941975f, 0.03532124f, -0.016341697f, 0.09685456f, -0.016764693f, 0.051808182f, 0.05875331f, -0.04536488f, 0.001626336f, -0.028892258f, -0.01048663f, -0.009793449f, -0.017093895f, 0.010987891f, 0.02357273f, -0.00010856845f, 0.0099760275f, -0.001845119f, -0.03551521f, 0.0018358806f, 0.05763657f, -0.01769146f, 0.040995963f, 0.02235177f, -0.060430344f, 0.11475477f, -0.023854522f, 0.10071741f, 0.0686208f, -0.014250481f, 0.034261297f, 0.047418304f, 0.08562733f, -0.030519066f, 0.0060542435f, 0.014653856f, -0.038836084f, 0.04096551f, 0.032249358f, -0.08355519f, -0.026823482f, 0.056386515f, -0.010401743f, -0.028396193f, 0.08507674f, 0.014410365f, 0.020995233f, 0.17040324f, 0.11511526f, 0.02459721f, 0.0066619175f, 0.025853224f, -0.023133837f, -0.081302024f, 0.017264642f, -0.009585969f, 0.09491168f, -0.051313367f, 0.054532815f, -0.014298593f, 0.10657464f, 0.007076659f, 0.10964551f, 0.0409152f, 0.008275321f, -0.07283536f, 0.07937492f, 0.04192024f, -0.1075027f}}, {7, {-0.037322544f, 0.018592842f, 0.0056175636f, -0.06253426f, 0.055647098f, -0.05713207f, -0.05626563f, 0.005559383f, 0.03375411f, -0.025757805f, -0.088049285f, 0.06017052f, -0.06570978f, 0.007384076f, 0.035123326f, -0.07920549f, 0.053676967f, 0.044480428f, -0.07663568f, 0.0071805613f, 0.08089997f, 0.05143358f, 0.038261272f, 0.03339287f, -0.027673481f, 0.044746667f, 0.028349208f, 0.020090483f, -0.019443132f, -0.030755889f, -0.0040000007f, 0.04465846f, -0.021585021f, 0.0031670958f, 0.0053199246f, -0.056117613f, -0.10893326f, 0.076739706f, -0.08509834f, -0.027997585f, 0.037871376f, 0.01449768f, -0.09002357f, -0.06111149f, -0.046195522f, 0.0422062f, -0.005683705f, -0.1253618f, -0.012925729f, -0.04890792f, 0.06985068f, 0.037654128f, 0.03398274f, -0.004781977f, 0.007032333f, -0.031787455f, 0.010868644f, -0.031489216f, 0.09525667f, 0.013939797f, 0.0058680447f, 0.0167067f, 0.02668468f, -0.04797466f, -0.048885044f, -0.12722108f, 0.035304096f, 0.06554885f, 0.00972396f, -0.039238118f, -0.05159735f, -0.11329045f, 0.1613692f, -0.03750952f, 0.06529313f, -0.071974665f, -0.11769596f, 0.015524369f, -0.0013754242f, -0.12446318f, 0.02786344f, -0.014179351f, 0.005264273f, 0.14376344f, 0.015983658f, 0.03406988f, -0.06939408f, 0.040699873f, 0.02111075f, 0.09669095f, 0.041345075f, -0.08316494f, -0.07684199f, -0.045768797f, 0.032298047f, -0.041805092f, 0.0119405f, 0.0061010392f, 0.12652606f, 0.0064572375f, -0.024950314f, 0.11574242f, 0.04508852f, -0.04335324f, 0.06760663f, -0.027437469f, 0.07216407f, 0.06977076f, -0.05438599f, 0.034033038f, -0.028602652f, 0.05346137f, 0.043184172f, -0.037189785f, 0.10420091f, 0.00882477f, -0.054019816f, -0.074273005f, -0.030617684f, -0.0028467078f, 0.024302477f, -0.0038869337f, 0.005332455f, 0.0013399826f, 0.04361412f, -0.007001822f, 0.09631092f, -0.06702025f, -0.042049985f, -0.035070654f, -0.04103342f, -0.10273396f, 0.0544271f, 0.037184782f, -0.13150354f, -0.0058036847f, -0.008264958f, 0.042035464f, 0.05891794f, 0.029673764f, 0.0063542654f, 0.044788733f, 0.054816857f, 0.062257513f, -0.00093483756f, 0.048938446f, -0.004952862f, -0.007730018f, -0.04043371f, -0.017094059f, 0.07229206f, -0.023670016f, -0.052195564f, -0.025616996f, -0.01520939f, 0.045104615f, -0.007376126f, 0.003533447f, 0.006570588f, 0.056037236f, 0.12436656f, 0.051817212f, 0.028532185f, -0.08686856f, 0.11868599f, 0.07663395f, -0.07323171f, 0.03463402f, -0.050708205f, -0.04458982f, -0.11590894f, 0.021273347f, 0.1251325f, -0.15313013f, -0.12224372f, 0.17228661f, 0.023029093f, 0.086124025f, 0.006445803f, -0.03496501f, 0.028332196f, 0.04449512f, -0.042436164f, -0.026587414f, -0.006041347f, -0.09292539f, -0.05678812f, 0.03897832f, 0.09465633f, 0.008115513f, -0.02171956f, 0.08304309f, 0.071401566f, 0.019622514f, 0.032163795f, -0.004167056f, 0.02295182f, 0.030739572f, 0.056506045f, 0.004612461f, 0.06524936f, 0.059999723f, 0.046395954f, -0.0045512207f, -0.1335546f, -0.030136576f, 0.11584653f, -0.014678886f, 0.0020118146f, -0.09688814f, -0.0790206f, 0.039770417f, -0.0329582f, 0.07922767f, 0.029322514f, 0.026405897f, 0.04207835f, -0.07073373f, 0.063781224f, 0.0859677f, -0.10925287f, -0.07011058f, 0.048005477f, 0.03438226f, -0.09606514f, -0.006669445f, -0.043381985f, 0.04240257f, -0.06955775f, -0.06769346f, 0.043903265f, -0.026784198f, -0.017840602f, 0.024307009f, -0.040079936f, -0.019946516f, 0.045318738f, -0.12233574f, 0.026170589f, 0.0074471775f, 0.15978073f, 0.10185836f, 0.10298046f, -0.015476589f, -0.039390966f, -0.072174534f, 0.0739445f, -0.1211869f, -0.0347889f, -0.07943156f, 0.014809798f, -0.12412325f, -0.0030663363f, 0.039695457f, 0.0647603f, -0.08291318f, -0.018529687f, -0.004423833f, 0.0037507233f, 0.084633216f, -0.01514876f, -0.056505352f, -0.012800942f, -0.06994386f, 0.012962922f, -0.031234352f, 0.07029052f, 0.016418684f, 0.03618972f, 0.055686004f, -0.08663945f, -0.017404709f, -0.054761406f, 0.029065743f, 0.052404847f, 0.020238016f, 0.0048197987f, -0.0214882f, 0.07078733f, 0.013016777f, 0.06262858f, 0.009184685f, 0.020785125f, -0.043904778f, -0.0270329f, -0.03299152f, -0.060088247f, -0.015162964f, -0.001828936f, 0.12642565f, -0.056757294f, 0.013586685f, 0.09232601f, -0.035886683f, 0.06000002f, 0.05229691f, -0.052580316f, -0.082029596f, -0.010794592f, 0.012947712f, -0.036429964f, -0.085508935f, -0.13127148f, -0.017744139f, 0.031502828f, 0.036232427f, -0.031581745f, 0.023051167f, -0.05325106f, -0.03421577f, 0.028793324f, -0.034633752f, -0.009881397f, -0.043551125f, -0.018609839f, 0.0019097115f, -0.008799762f, 0.056595087f, 0.0022273948f, 0.055752404f}}, {8, {0.025825322f, -0.05813119f, 0.09495884f, -0.045984812f, -0.01255415f, -0.0026479573f, -0.08196161f, -0.054914974f, -0.0046604523f, -0.029587349f, -0.044576716f, -0.07480124f, -0.082868785f, 0.023254942f, 0.027502948f, -0.0039728214f, -0.08683098f, -0.08116779f, -0.014675607f, -0.037924774f, -0.023314456f, -0.007401714f, -0.09255757f, 0.029460307f, -0.08829125f, -0.005139627f, -0.08989442f, -0.0555066f, 0.13596267f, -0.025062224f, -0.048351806f, -0.03850004f, 0.07266485f, -0.022414139f, 0.05940088f, 0.075114764f, 0.09597592f, -0.010211725f, -0.0049794707f, -0.011523867f, -0.025980417f, 0.072999895f, 0.11091378f, -0.081685916f, 0.014416728f, 0.043229222f, 0.034178585f, -0.07530371f, 0.035837382f, -0.085607f, -0.007721233f, -0.03287832f, -0.043848954f, -0.06404588f, -0.06632928f, -0.073643476f, 0.008214239f, -0.045984086f, 0.039764922f, 0.03474462f, 0.060612556f, -0.080590084f, 0.049127717f, 0.04151091f, -0.030063879f, 0.008801774f, -0.023021035f, -0.019558564f, 0.05158114f, -0.010947698f, -0.011825728f, 0.0075720972f, 0.0699727f, -0.0039981045f, 0.069350146f, 0.08799282f, 0.016156472f, 0.035502106f, 0.11695009f, 0.006217345f, 0.13392477f, -0.037875112f, 0.025745004f, 0.08940699f, -0.00924166f, 0.0046702605f, -0.036598757f, -0.08811812f, 0.10522024f, -0.032441203f, 0.008176899f, -0.04454919f, 0.07058152f, 0.0067963637f, 0.039206743f, 0.03259838f, 0.03725492f, -0.09515802f, 0.013326398f, -0.052055415f, -0.025676316f, 0.03198509f, -0.015951829f, -0.058556724f, 0.036879618f, 0.043357447f, 0.028362012f, -0.05908629f, 0.0059240665f, -0.04995891f, -0.019187413f, 0.0276265f, -0.01628143f, 0.0025863599f, 0.08800015f, 0.035250366f, -0.022165963f, -0.07328642f, -0.009415526f, -0.07455109f, 0.11690406f, 0.0363299f, 0.07411125f, 0.042103454f, -0.009660886f, 0.019076364f, 0.018299393f, -0.046004917f, 0.08891175f, 0.0431396f, -0.026327137f, -0.051502608f, 0.08979574f, -0.051670972f, 0.04940282f, -0.07491107f, -0.021240504f, 0.022596184f, -0.034280192f, 0.060163025f, -0.058211457f, -0.051837247f, -0.01349775f, -0.04639988f, -0.035936575f, -0.011681591f, 0.064818054f, 0.0073146066f, -0.021745546f, -0.043124277f, -0.06471268f, -0.07053354f, -0.029321948f, -0.05330136f, 0.016933719f, -0.053782392f, 0.13747959f, -0.1361751f, -0.11569455f, 0.0033329215f, 0.05693899f, -0.053219706f, 0.063698f, 0.07977434f, -0.07924483f, 0.06936997f, 0.0034815092f, -0.007305279f, -0.037325785f, -0.07251102f, -0.033633437f, -0.08677009f, 0.091591336f, -0.14165086f, 0.021752775f, 0.019683983f, 0.0011612234f, -0.058154266f, 0.049996935f, 0.0288841f, -0.0024567875f, -0.14345716f, 0.010955264f, -0.10234828f, 0.1183656f, -0.0010731248f, -0.023590032f, -0.072285876f, -0.0724771f, -0.026382286f, -0.0014920527f, 0.042667855f, 0.0018776858f, 0.02986552f, 0.009814309f, 0.0733756f, 0.12289186f, 0.018043943f, -0.0458958f, 0.049412545f, 0.033632483f, 0.05495232f, 0.036686596f, -0.013781798f, -0.010036754f, 0.02576849f, -0.08307328f, 0.010112348f, 0.042521734f, -0.05869831f, -0.071689695f, 0.03876447f, -0.13275425f, -0.0352966f, -0.023077697f, 0.10285965f, 0.084736146f, 0.15568255f, -0.00040734606f, 0.027835453f, -0.10292561f, -0.032401145f, 0.10053256f, -0.026142767f, -0.08271222f, -0.0030240538f, -0.016368777f, 0.1070414f, 0.042672627f, 0.013456989f, -0.0437609f, -0.022309763f, 0.11576483f, 0.04108048f, 0.061026827f, -0.0190714f, -0.0869359f, 0.037901703f, 0.0610107f, 0.07202949f, 0.01675338f, 0.086139716f, -0.08795751f, -0.014898893f, -0.023771819f, -0.01965048f, 0.007955471f, -0.043740474f, 0.03346837f, -0.10549954f, 0.090567775f, 0.042013682f, -0.03176985f, 0.12569028f, -0.02421228f, -0.029526481f, 0.023851605f, 0.031539805f, 0.05292009f, -0.02344001f, -0.07811758f, -0.08834428f, 0.10094801f, 0.16594367f, -0.06861939f, -0.021256343f, -0.041093912f, -0.06669611f, 0.035498552f, 0.021757556f, -0.09302526f, -0.015403468f, -0.06614931f, -0.051798206f, -0.013874718f, 0.03630673f, 0.010412845f, -0.08077351f, 0.046185967f, 0.0035662893f, 0.03541868f, -0.094149634f, -0.034814864f, 0.003128424f, -0.020674974f, -0.03944324f, -0.008110165f, -0.11113267f, 0.08484226f, 0.043586485f, 0.040582247f, 0.0968012f, -0.065249965f, -0.028036479f, 0.0050708856f, 0.0017462453f, 0.0326779f, 0.041296225f, 0.09164146f, -0.047743853f, -0.015952192f, -0.034451712f, 0.084197424f, -0.05347844f, -0.11768019f, 0.085926116f, -0.08251791f, -0.045081906f, 0.0948852f, 0.068401024f, 0.024856757f, 0.06978981f, -0.057309967f, -0.012775832f, -0.0032452994f, 0.01977615f, -0.041040014f, -0.024264973f, 0.063464895f, 0.05431621f}}, {9, {0.040369894f, 0.030746894f, 0.24704495f, 0.018586371f, -0.037586458f, -0.15312155f, -0.11812848f, -0.11465643f, 0.20259799f, 0.11418174f, -0.10116027f, -0.011334949f, 0.12411352f, -0.076769054f, -0.052169047f, 0.21198851f, -0.38871562f, -0.09061183f, -0.09683246f, -0.21929175f}}, {10, {-0.01998659f, -0.15568835f, -0.24248174f, -0.012770197f, 0.041331276f, -0.072311886f, -0.052123554f, -0.0066330447f, -0.043891653f, 0.036225766f, -0.047248036f, 0.021479502f, 0.033189066f, 0.11952997f, -0.020432774f, 0.64658105f, -0.06650122f, -0.03467612f, 0.095340036f, 0.23647355f}}, {11, {0.08286371f, -0.08261836f, -0.51210177f, 0.002913762f, 0.17764764f, -0.5495371f, -0.08460716f, -0.24552552f, 0.030037103f, 0.04123544f, -0.11940523f, 0.007358328f, 0.1890978f, 0.4833202f, -0.34441817f, 0.36312827f, -0.26375428f, 0.1457655f, -0.19724406f, 0.15548733f}}, {12, {0.02234832f, 0.14757581f, 0.18176508f, 0.10380666f, 0.053110216f, -0.06928846f, -0.13942584f, -0.11816189f, 0.19483899f, 0.03652339f, -0.10250295f, 0.036714908f, -0.18426876f, 0.036065217f, 0.21810818f, 0.02383196f, -0.043370757f, 0.08690144f, -0.04444982f, 0.00030581196f}}, {13, {0.035185695f, -0.042891346f, -0.03032477f, 0.23027696f, 0.11098921f, 0.15378423f, 0.09263801f, 0.09790885f, 0.09508917f, 0.061199076f, 0.07665568f, -0.015443159f, -0.03499149f, 0.046190713f, 0.08895977f, 0.10899629f, 0.40694186f, 0.06030037f, 0.012413437f, -0.06108739f}}, {14, {-0.024379363f, 0.0055531194f, 0.23377132f, 0.033463873f, -0.1483596f, -0.10639995f, -0.091433935f, 0.058573797f, -0.06809782f, -0.07889636f, -0.043246906f, -0.09829136f, -0.4279842f, 0.034901652f, 0.18797937f, 0.0075234566f, 0.016178843f, 0.1749513f, 0.13975595f, 0.92058027f}}, {15, {0.046159424f, -0.0012809046f, 0.03563469f, 0.12648113f, 0.027195795f, 0.35373217f, -0.018957434f, 0.008907322f, -0.0762701f, 0.12018895f, 0.04216877f, 0.0022856654f, 0.040952638f, 0.3147856f, 0.08225149f, -0.057416286f, -0.14995944f, -0.008040261f, 0.13208859f, 0.029760877f}}, {16, {-0.009802181f, 0.09401916f, 0.0717386f, -0.13895074f, 0.09641832f, 0.060420845f, 0.08539281f, 0.054285463f, 0.061395317f, 0.034448683f, -0.042991187f, 0.019801661f, -0.16840284f, -0.015726732f, -0.23041931f, -0.024478018f, -0.10959692f, -0.013875541f, 0.18600968f, -0.061274476f, 0.0138165f, -0.08160894f, -0.07661644f, 0.032372914f, 0.16169067f, 0.22465782f, -0.03993472f, -0.004017731f, 0.08633481f, -0.28869787f, 0.08682067f, 0.17240396f, 0.014975425f, 0.056431185f, 0.031037588f, 0.16702051f, 0.0077946745f, 0.15140012f, 0.29405436f, 0.120285f, -0.188994f, -0.027265169f, 0.043389652f, -0.022061434f, 0.014777949f, -0.20203483f, 0.094781205f, 0.19100232f, 0.13987629f, -0.036132768f, -0.06426278f, -0.05108664f, 0.13221376f, 0.009441198f, -0.16715929f, 0.15859416f, -0.040437475f, 0.050779544f, -0.022187516f, 0.012166504f, 0.027685808f, -0.07675938f, -0.0055694645f, -0.09444123f, 0.0046453946f, 0.050794356f, 0.10770313f, -0.20790008f, -0.07149004f, -0.11425117f, 0.008225835f, -0.035802525f, 0.14374903f, 0.15262283f, 0.048710253f, 0.1847461f, -0.007487823f, 0.11000021f, -0.09542012f, 0.22619456f, -0.029149994f, 0.08527916f, 0.009043713f, 0.0042746216f, 0.016261552f, 0.022461696f, 0.12689082f, -0.043589946f, -0.12035478f, -0.08361797f, -0.050666027f, -0.1248618f, -0.1275799f, -0.071875185f, 0.07377272f, 0.09944291f, -0.18897448f, -0.1593054f, -0.06526116f, -0.040107165f, -0.004618631f, -0.067624845f, -0.007576253f, 0.10727444f, 0.041546922f, -0.20424393f, 0.06907816f, 0.050412357f, 0.00724631f, 0.039827548f, 0.12449835f, 0.10747581f, 0.13708383f, 0.09134148f, -0.12617786f, -0.06428341f, 0.09956831f, 0.1208086f, -0.14676677f, -0.0727722f, 0.1126304f, 0.010139365f, 0.015571211f, -0.038128063f, 0.022913318f, -0.042050496f, 0.16842307f, -0.060597885f, 0.10531834f, -0.06411776f, -0.07451711f, -0.03410368f, -0.13393489f, 0.06534304f, 0.003620307f, 0.04490757f, 0.05970546f, 0.05197996f, 0.02839995f, 0.10434969f, -0.013699693f, -0.028353551f, -0.07260381f, 0.047201227f, -0.024575593f, -0.036445823f, 0.07155557f, 0.009672501f, -0.02328883f, 0.009533515f, -0.03606021f, -0.07421458f, -0.028082801f, -0.2678904f, -0.13221288f, 0.18419984f, -0.13012612f, -0.014588381f, -0.035059117f, -0.04824723f, 0.07830115f, -0.056184657f, 0.03277091f, 0.025466874f, 0.14494097f, -0.12522776f, -0.098633975f, -0.10766018f, -0.08317623f, 0.08594209f, 0.07749552f, 0.039474737f, 0.1776665f, -0.07409566f, -0.0477268f, 0.29323658f, 0.10801441f, 0.1154011f, 0.013952499f, 0.10739139f, 0.10708251f, -0.051456142f, 0.0074137426f, -0.10430189f, 0.10034707f, 0.045594677f, 0.0635285f, -0.0715442f, -0.089667566f, -0.10811871f, 0.00026344223f, 0.08298446f, -0.009525053f, 0.006585689f, -0.24567553f, -0.09450807f, 0.09648481f, 0.026996298f, -0.06419476f, -0.04752702f, -0.11063944f, -0.23441927f, -0.17608605f, -0.052156363f, 0.067035615f, 0.19271925f, -0.0032889997f, -0.043264326f, 0.09663576f, -0.057112187f, -0.10100678f, 0.0628376f, 0.04447668f, 0.017961001f, -0.10094388f, -0.10190601f, 0.18335468f, 0.10494553f, -0.052095775f, -0.0026118709f, 0.10539724f, -0.04383912f, -0.042349473f, 0.08438151f, -0.1947263f, 0.02251204f, 0.11216432f, -0.10307853f, 0.17351969f, -0.039091777f, 0.08066188f, -0.00561982f, 0.12633002f, 0.11335965f, -0.0088127935f, -0.019777594f, 0.06864014f, -0.059751723f, 0.016233567f, -0.06894641f, -0.28651384f, -0.004228674f, 0.019708522f, -0.16305895f, -0.07468996f, -0.0855457f, 0.099339016f, -0.07580735f, -0.13775392f, 0.08434318f, 0.08330512f, -0.12131499f, 0.031935584f, 0.09180414f, -0.08876437f, -0.08049874f, 0.008753825f, 0.03498998f, 0.030215185f, 0.03907079f, 0.089751154f, 0.029194152f, -0.03337423f, -0.019092513f, 0.04331237f, 0.04299654f, -0.036394123f, -0.12915532f, 0.09793732f, 0.07512415f, -0.11319543f, -0.032502122f, 0.15661901f, 0.07671967f, -0.005491124f, -0.19379048f, -0.218606f, 0.21448623f, 0.017840758f, 0.1416943f, -0.07051762f, 0.19488361f, 0.02664691f, -0.18104725f, -0.09334311f, 0.15026465f, -0.15493552f, -0.057762887f, -0.11604192f, -0.262013f, -0.01391798f, 0.012185008f, 0.11156489f, -0.07483202f, 0.06693364f, -0.26151478f, 0.046425626f, 0.036540434f, -0.16435726f, 0.17338543f, -0.21401681f, -0.11385144f, -0.08283257f, -0.069031075f, 0.030635102f, 0.010969227f, 0.11109743f, 0.010919218f, 0.027526086f, 0.13519906f, 0.01891392f, -0.046839405f, -0.040167913f, 0.017953383f, -0.09700955f, 0.0061885654f, -0.07000971f, 0.026893595f, -0.038844477f, 0.14543656f}}, {17, {}}, {18, {-0.0213783f, 0.0350169f, 0.000324787f, 0.0276012f, -0.0263374f, -0.0371449f, 0.0446149f, -0.0205474f, 0.0103729f, -0.0576349f, -0.0150052f, -0.0292043f, 0.0376827f, 0.0136115f, 0.0243435f, 0.0354492f, -0.0204549f, 0.0450315f, -0.00117379f, 0.0167673f, -0.0375007f, -0.0238314f, 0.038784f, -0.0174034f, 0.0131743f, -0.0506589f, -0.00484469f, -0.0240239f, 0.0325789f, 0.00790064f, 0.0220157f, 0.0333314f}}, {19, {-0.126572f, -0.121882f, 0.121569f, 0.0489971f, -0.240177f, -0.124685f, -0.122565f, 0.0162748f, 0.0317536f, -0.0270355f, 0.0418199f, -0.179755f, -0.327279f, -0.0342741f, 0.133831f, -0.0238279f, 0.122148f, 0.269115f, 0.185989f, 0.525976f, -0.167208f, -0.109612f, 0.0531226f, 0.0695387f, -0.248335f, -0.134123f, -0.108246f, 0.00628498f, 0.0492984f, -0.0264919f, 0.0698144f, -0.0635602f, -0.295363f, -0.0760078f, 0.102725f, -0.0351708f, 0.149804f, 0.259131f, 0.202573f, 0.500664f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{1, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, {2, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, {3, {-0.0189322f, 0.0464512f, -0.00251373f, 0.0225745f, -0.0308346f, -0.0317124f, 0.0460407f, -0.0189395f, 0.0149363f, -0.0530162f, -0.0150767f, -0.0340193f, 0.0286833f, 0.00824207f, 0.0264887f, 0.0305169f, -0.0264787f, 0.0387855f, -0.000764675f, 0.0217599f, -0.037537f, -0.0335206f, 0.0431679f, -0.0211424f, 0.010203f, -0.062785f, -0.00832363f, -0.025181f, 0.0412031f, 0.0118723f, 0.0239643f, 0.0394009f}}, {0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/lstm_state.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/lstm_state.example.cpp
new file mode 100644
index 000000000..47cdc7eca
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/lstm_state.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: lstm_state.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {3.0f, 4.0f}}, {1, {-0.45018822f, -0.02338299f, -0.0870589f, -0.34550029f, 0.04266912f, -0.15680569f, -0.34856534f, 0.43890524f}}, {2, {0.09701663f, 0.20334584f, -0.50592935f, -0.31343272f, -0.40032279f, 0.44781327f, 0.01387155f, -0.35593212f}}, {3, {-0.50013041f, 0.1370284f, 0.11810488f, 0.2013163f, -0.20583314f, 0.44344562f, 0.22077113f, -0.29909778f}}, {4, {-0.25065863f, -0.28290087f, 0.04613829f, 0.40525138f, 0.44272184f, 0.03897077f, -0.1556896f, 0.19487578f}}, {5, {-0.0063535f, -0.2042388f, 0.31454784f, -0.35746509f, 0.28902304f, 0.08183324f, -0.16555229f, 0.02286911f, -0.13566875f, 0.03034258f, 0.48091322f, -0.12528998f, 0.24077177f, -0.51332325f, -0.33502164f, 0.10629296f}}, {6, {-0.48684245f, -0.06655136f, 0.42224967f, 0.2112639f, 0.27654213f, 0.20864892f, -0.07646349f, 0.45877004f, 0.00141793f, -0.14609534f, 0.36447752f, 0.09196436f, 0.28053468f, 0.01560611f, -0.20127171f, -0.01140004f}}, {7, {-0.3407414f, 0.24443203f, -0.2078532f, 0.26320225f, 0.05695659f, -0.00123841f, -0.4744786f, -0.35869038f, -0.06418842f, -0.13502428f, -0.501764f, 0.22830659f, -0.46367589f, 0.26016325f, -0.03894562f, -0.16368064f}}, {8, {0.43385774f, -0.17194885f, 0.2718237f, 0.09215671f, 0.24107647f, -0.39835793f, 0.18212086f, 0.01301402f, 0.48572797f, -0.50656658f, 0.20047462f, -0.20607421f, -0.51818722f, -0.15390486f, 0.0468148f, 0.39922136f}}, {9, {}}, {10, {}}, {11, {}}, {12, {0.0f, 0.0f, 0.0f, 0.0f}}, {13, {1.0f, 1.0f, 1.0f, 1.0f}}, {14, {0.0f, 0.0f, 0.0f, 0.0f}}, {15, {0.0f, 0.0f, 0.0f, 0.0f}}, {16, {}}, {17, {}}, {18, {-0.0297319f, 0.122947f, 0.208851f, -0.153588f}}, {19, {-0.145439f, 0.157475f, 0.293663f, -0.277353f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{1, {-0.0371611f, 0.125073f, 0.411934f, -0.208605f}}, {2, {-0.287121f, 0.148115f, 0.556837f, -0.388276f}}, {3, {-0.03716109f, 0.12507336f, 0.41193449f, -0.20860538f}}, {0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/lstm_state2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/lstm_state2.example.cpp
new file mode 100644
index 000000000..aebfba5a2
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/lstm_state2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: lstm_state2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 1.0f}}, {1, {-0.45018822f, -0.02338299f, -0.0870589f, -0.34550029f, 0.04266912f, -0.15680569f, -0.34856534f, 0.43890524f}}, {2, {0.09701663f, 0.20334584f, -0.50592935f, -0.31343272f, -0.40032279f, 0.44781327f, 0.01387155f, -0.35593212f}}, {3, {-0.50013041f, 0.1370284f, 0.11810488f, 0.2013163f, -0.20583314f, 0.44344562f, 0.22077113f, -0.29909778f}}, {4, {-0.25065863f, -0.28290087f, 0.04613829f, 0.40525138f, 0.44272184f, 0.03897077f, -0.1556896f, 0.19487578f}}, {5, {-0.0063535f, -0.2042388f, 0.31454784f, -0.35746509f, 0.28902304f, 0.08183324f, -0.16555229f, 0.02286911f, -0.13566875f, 0.03034258f, 0.48091322f, -0.12528998f, 0.24077177f, -0.51332325f, -0.33502164f, 0.10629296f}}, {6, {-0.48684245f, -0.06655136f, 0.42224967f, 0.2112639f, 0.27654213f, 0.20864892f, -0.07646349f, 0.45877004f, 0.00141793f, -0.14609534f, 0.36447752f, 0.09196436f, 0.28053468f, 0.01560611f, -0.20127171f, -0.01140004f}}, {7, {-0.3407414f, 0.24443203f, -0.2078532f, 0.26320225f, 0.05695659f, -0.00123841f, -0.4744786f, -0.35869038f, -0.06418842f, -0.13502428f, -0.501764f, 0.22830659f, -0.46367589f, 0.26016325f, -0.03894562f, -0.16368064f}}, {8, {0.43385774f, -0.17194885f, 0.2718237f, 0.09215671f, 0.24107647f, -0.39835793f, 0.18212086f, 0.01301402f, 0.48572797f, -0.50656658f, 0.20047462f, -0.20607421f, -0.51818722f, -0.15390486f, 0.0468148f, 0.39922136f}}, {9, {}}, {10, {}}, {11, {}}, {12, {0.0f, 0.0f, 0.0f, 0.0f}}, {13, {1.0f, 1.0f, 1.0f, 1.0f}}, {14, {0.0f, 0.0f, 0.0f, 0.0f}}, {15, {0.0f, 0.0f, 0.0f, 0.0f}}, {16, {}}, {17, {}}, {18, {-0.0371611f, 0.125073f, 0.411934f, -0.208605f}}, {19, {-0.287121f, 0.148115f, 0.556837f, -0.388276f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{1, {0, 0, 0, 0}}, {2, {0, 0, 0, 0}}, {3, {-0.15053082f, 0.09120187f, 0.24278517f, -0.12222792f}}, {0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/max_pool_float_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/max_pool_float_1.example.cpp
new file mode 100644
index 000000000..ba52a11dc
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/max_pool_float_1.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: max_pool_float_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 2.0f, 3.0f, 4.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 2.0f, 3.0f, 4.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/max_pool_float_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/max_pool_float_2.example.cpp
new file mode 100644
index 000000000..637092254
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/max_pool_float_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: max_pool_float_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/max_pool_float_3.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/max_pool_float_3.example.cpp
new file mode 100644
index 000000000..dcd7a4bd5
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/max_pool_float_3.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: max_pool_float_3.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/max_pool_float_4.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/max_pool_float_4.example.cpp
new file mode 100644
index 000000000..4de3ded2e
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/max_pool_float_4.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: max_pool_float_4.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0, 6, 2, 4, 3, 2, 10, 7}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {6, 10}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/max_pool_quant8_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/max_pool_quant8_1.example.cpp
new file mode 100644
index 000000000..d9b23d3e4
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/max_pool_quant8_1.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: max_pool_quant8_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 4}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 4}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/max_pool_quant8_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/max_pool_quant8_2.example.cpp
new file mode 100644
index 000000000..3940b7689
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/max_pool_quant8_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: max_pool_quant8_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/max_pool_quant8_3.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/max_pool_quant8_3.example.cpp
new file mode 100644
index 000000000..77de3ca2a
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/max_pool_quant8_3.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: max_pool_quant8_3.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/max_pool_quant8_4.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/max_pool_quant8_4.example.cpp
new file mode 100644
index 000000000..4a3fbf290
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/max_pool_quant8_4.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: max_pool_quant8_4.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 96, 32, 64, 48, 32, 160, 112}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {96, 160}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/mobilenet_224_gender_basic_fixed.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/mobilenet_224_gender_basic_fixed.example.cpp
new file mode 100644
index 000000000..ce855a9bf
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/mobilenet_224_gender_basic_fixed.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: mobilenet_224_gender_basic_fixed.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.791841f, 0.131271f, 0.840444f, 0.524133f, 0.301398f, 0.711596f, 8.78908e-05f, 0.358888f, 0.156309f, 0.273055f, 0.143706f, 0.663516f, 0.817875f, 0.0178006f, 0.0663899f, 0.38532f, 0.108224f, 0.120309f, 0.252355f, 0.468634f, 0.535587f, 0.372087f, 0.0191815f, 0.0750463f, 0.896686f, 0.564102f, 0.781927f, 0.138955f, 0.876559f, 0.672544f, 0.47254f, 0.685613f, 0.864712f, 0.678431f, 0.681087f, 0.954624f, 0.707985f, 0.0945955f, 0.663676f, 0.0174337f, 0.514265f, 0.0993437f, 0.837646f, 0.16886f, 0.0206787f, 0.460454f, 0.298217f, 0.0939906f, 0.792089f, 0.145739f, 0.124991f, 0.152928f, 0.18507f, 0.0910606f, 0.886938f, 0.703805f, 0.738545f, 0.0914867f, 0.785625f, 0.255978f, 0.25971f, 0.564347f, 0.496365f, 0.40138f, 0.181351f, 0.229051f, 0.528806f, 0.815946f, 0.723594f, 0.0782805f, 0.417488f, 0.357831f, 0.699987f, 0.110877f, 0.706929f, 0.361355f, 0.44735f, 0.51417f, 0.234213f, 0.49157f, 0.754239f, 0.35671f, 0.90015f, 0.368686f, 0.162982f, 0.467298f, 0.712059f, 0.73199f, 0.394652f, 0.216439f, 0.0325005f, 0.675254f, 0.0965207f, 0.919576f, 0.46926f, 0.923022f, 0.0721544f, 0.0620356f, 0.570436f, 0.418233f, 0.734994f, 0.626141f, 0.189962f, 0.680934f, 0.576122f, 0.377738f, 0.927142f, 0.31627f, 0.0390065f, 0.305891f, 0.777981f, 0.576827f, 0.999185f, 0.849222f, 0.221597f, 0.0529092f, 0.741046f, 0.810611f, 0.641734f, 0.2737f, 0.0306115f, 0.382373f, 0.117532f, 0.690233f, 0.20231f, 0.599944f, 0.464123f, 0.79606f, 0.171281f, 0.0924674f, 0.502584f, 0.689291f, 0.549744f, 0.951152f, 0.579524f, 0.796293f, 0.971173f, 0.903601f, 0.376714f, 0.915486f, 0.521651f, 0.888365f, 0.355228f, 0.648741f, 0.900593f, 0.48239f, 0.317946f, 0.524421f, 0.99061f, 0.842221f, 0.102702f, 0.679481f, 0.588507f, 0.7512f, 0.177413f, 0.762043f, 0.63814f, 0.509979f, 0.245258f, 0.97713f, 0.206899f, 0.0342631f, 0.582589f, 0.677466f, 0.548678f, 0.969459f, 0.763207f, 0.659911f, 0.720006f, 0.492729f, 0.721137f, 0.198181f, 0.0767499f, 0.279166f, 0.563685f, 0.578014f, 0.284114f, 0.0313309f, 0.545107f, 0.675547f, 0.902745f, 0.799514f, 0.14417f, 0.197687f, 0.187282f, 0.0420023f, 0.238308f, 0.154671f, 0.243883f, 0.777129f, 0.291907f, 0.959133f, 0.166203f, 0.355963f, 0.831646f, 0.308086f, 0.148097f, 0.342163f, 0.366069f, 0.669976f, 0.482005f, 0.50455f, 0.114772f, 0.909615f, 0.592529f, 0.819863f, 0.7448f, 0.733599f, 0.0818953f, 0.333677f, 0.436425f, 0.640028f, 0.128689f, 0.802751f, 0.053884f, 0.0968059f, 0.0141547f, 0.189447f, 0.458282f, 0.301719f, 0.332669f, 0.697625f, 0.607359f, 0.96581f, 0.0482129f, 0.658574f, 0.283779f, 0.428031f, 0.120848f, 0.387377f, 0.169832f, 0.0381746f, 0.549549f, 0.721105f, 0.281996f, 0.282577f, 0.183188f, 0.237784f, 0.590087f, 0.289398f, 0.540784f, 0.301099f, 0.396178f, 0.855404f, 0.460563f, 0.125632f, 0.150601f, 0.271058f, 0.696146f, 0.947483f, 0.735739f, 0.425141f, 0.977515f, 0.3452f, 0.143326f, 0.274614f, 0.925826f, 0.81308f, 0.535078f, 0.998599f, 0.427464f, 0.260845f, 0.137486f, 0.837797f, 0.0631066f, 0.0876196f, 0.588056f, 0.40014f, 0.815027f, 0.494389f, 0.355774f, 0.450119f, 0.717888f, 0.423054f, 0.20979f, 0.842124f, 0.399906f, 0.410846f, 0.559933f, 0.451017f, 0.558568f, 0.944169f, 0.881834f, 0.00384158f, 0.103625f, 0.309752f, 0.40491f, 0.98423f, 0.303001f, 0.486862f, 0.394447f, 0.108623f, 0.258184f, 0.172573f, 0.0685831f, 0.358462f, 0.272746f, 0.875298f, 0.690985f, 0.800497f, 0.512517f, 0.692277f, 0.0706645f, 0.259856f, 0.37559f, 0.213658f, 0.53025f, 0.405643f, 0.656994f, 0.228048f, 0.247219f, 0.300241f, 0.700641f, 0.0177141f, 0.466215f, 0.200764f, 0.857363f, 0.483106f, 0.522657f, 0.144218f, 0.267424f, 0.291684f, 0.67167f, 0.0357309f, 0.265176f, 0.520329f, 0.556993f, 0.984931f, 0.183227f, 0.335942f, 0.992855f, 0.175479f, 0.425192f, 0.826319f, 0.433081f, 0.727791f, 0.245524f, 0.0597154f, 0.156634f, 0.64591f, 0.958063f, 0.537418f, 0.295089f, 0.0732913f, 0.742363f, 0.642074f, 0.826581f, 0.682193f, 0.852718f, 0.999771f, 0.315818f, 0.571465f, 0.491486f, 0.235984f, 0.0818711f, 0.636604f, 0.212895f, 0.660947f, 0.765877f, 0.0767624f, 0.73344f, 0.679814f, 0.36851f, 0.915551f, 0.0944369f, 0.982257f, 0.872403f, 0.796865f, 0.114389f, 0.967463f, 0.957193f, 0.575821f, 0.713856f, 0.91271f, 0.124751f, 0.106865f, 0.376894f, 0.421127f, 0.793781f, 0.914849f, 0.691005f, 0.944351f, 0.332563f, 0.170314f, 0.447437f, 0.760359f, 0.683639f, 0.393852f, 0.668889f, 0.222266f, 0.667067f, 0.217586f, 0.189967f, 0.136813f, 0.329066f, 0.51118f, 0.15714f, 0.403605f, 0.674683f, 0.644709f, 0.908952f, 0.496509f, 0.0120233f, 0.245706f, 0.0329395f, 0.795719f, 0.986633f, 0.865211f, 0.0771508f, 0.487609f, 0.241025f, 0.669604f, 0.477396f, 0.428557f, 0.0621134f, 0.68842f, 0.784684f, 0.556526f, 0.0546337f, 0.498104f, 0.944155f, 0.975526f, 0.0519842f, 0.828273f, 0.220436f, 0.0973805f, 0.639122f, 0.750508f, 0.236016f, 0.866084f, 0.276684f, 0.992722f, 0.183576f, 0.535933f, 0.792447f, 0.142149f, 0.988627f, 0.818945f, 0.724294f, 0.276561f, 0.745799f, 0.390849f, 0.752617f, 0.732283f, 0.401179f, 0.683818f, 0.660091f, 0.844869f, 0.287746f, 0.187653f, 0.968993f, 0.541457f, 0.543372f, 0.775215f, 0.92933f, 0.475041f, 0.306358f, 0.783032f, 0.593079f, 0.119069f, 0.869258f, 0.970535f, 0.351855f, 0.558143f, 0.969403f, 0.412738f, 0.264689f, 0.482702f, 0.789336f, 0.437969f, 0.159124f, 0.426539f, 0.198885f, 0.0177727f, 0.691272f, 0.0595643f, 0.359525f, 0.6306f, 0.149484f, 0.994781f, 0.845899f, 0.811227f, 0.82501f, 0.27116f, 0.7401f, 0.190015f, 0.458648f, 0.841917f, 0.328061f, 0.231616f, 0.510571f, 0.0631396f, 0.292842f, 0.333388f, 0.216002f, 0.933854f, 0.765494f, 0.300234f, 0.158843f, 0.608681f, 0.49692f, 0.622592f, 0.869762f, 0.515378f, 0.243813f, 0.351183f, 0.529368f, 0.311112f, 0.238909f, 0.433752f, 0.998878f, 0.62677f, 0.838139f, 0.650211f, 0.636101f, 0.667345f, 0.948906f, 0.309283f, 0.202239f, 0.449868f, 0.432025f, 0.187258f, 0.99759f, 0.487673f, 0.824721f, 0.51251f, 0.854737f, 0.412896f, 0.810302f, 0.105718f, 0.319232f, 0.99164f, 0.123529f, 0.316028f, 0.570233f, 0.662391f, 0.669733f, 0.0749745f, 0.66906f, 0.00903542f, 0.510595f, 0.967114f, 0.783757f, 0.869923f, 0.655048f, 0.260669f, 0.68839f, 0.87354f, 0.913864f, 0.113415f, 0.625024f, 0.474351f, 0.776453f, 0.21527f, 0.113414f, 0.749888f, 0.626217f, 0.388871f, 0.0309753f, 0.475298f, 0.422064f, 0.460825f, 0.32816f, 0.955097f, 0.627315f, 0.792411f, 0.00766529f, 0.566721f, 0.407374f, 0.634685f, 0.627003f, 0.375373f, 0.31221f, 0.861205f, 0.608589f, 0.880119f, 0.52554f, 0.605035f, 0.118977f, 0.613206f, 0.383087f, 0.716612f, 0.622154f, 0.851895f, 0.0783142f, 0.475583f, 0.21843f, 0.584996f, 0.938854f, 0.62971f, 0.813131f, 0.892749f, 0.798681f, 0.795511f, 0.0655248f, 0.285758f, 0.246531f, 0.78642f, 0.342706f, 0.583047f, 0.0344585f, 0.144597f, 0.251586f, 0.915092f, 0.863438f, 0.647058f, 0.0484427f, 0.898403f, 0.423501f, 0.992785f, 0.0703023f, 0.799657f, 0.665863f, 0.0711288f, 0.680655f, 0.65026f, 0.1549f, 0.593819f, 0.767113f, 0.150623f, 0.918489f, 0.176067f, 0.85076f, 0.979277f, 0.572358f, 0.13148f, 0.643712f, 0.831597f, 0.0992917f, 0.272232f, 0.694243f, 0.335103f, 0.241076f, 0.246106f, 0.942713f, 0.432468f, 0.789363f, 0.458507f, 0.339482f, 0.0900444f, 0.74853f, 0.14387f, 0.38917f, 0.957029f, 0.989021f, 0.611135f, 0.697256f, 0.0395212f, 0.549286f, 0.985937f, 0.312926f, 0.527949f, 0.354932f, 0.589522f, 0.936589f, 0.198696f, 0.480116f, 0.992084f, 0.407626f, 0.139969f, 0.0251239f, 0.499093f, 0.985195f, 0.595041f, 0.680062f, 0.801376f, 0.61929f, 0.480137f, 0.331f, 0.345052f, 0.859727f, 0.588247f, 0.295778f, 0.0999083f, 0.376957f, 0.470159f, 0.216982f, 0.530417f, 0.551786f, 0.491341f, 0.598367f, 0.749522f, 0.181984f, 0.472262f, 0.934373f, 0.378052f, 0.376463f, 0.439012f, 0.64088f, 0.202156f, 0.905179f, 0.79377f, 0.695248f, 0.815266f, 0.0739469f, 0.620277f, 0.889489f, 0.361428f, 0.37442f, 0.936218f, 0.255595f, 0.112557f, 0.398399f, 0.11098f, 0.222453f, 0.265583f, 0.0120594f, 0.814637f, 0.373474f, 0.369039f, 0.877383f, 0.91715f, 0.759644f, 0.170179f, 0.658204f, 0.0327627f, 0.837132f, 0.225002f, 0.0310278f, 0.275552f, 0.929744f, 0.718458f, 0.343128f, 0.762734f, 0.354592f, 0.220131f, 0.885119f, 0.477841f, 0.080636f, 0.342969f, 0.402588f, 0.0586417f, 0.866942f, 0.657128f, 0.135711f, 0.23269f, 0.885087f, 0.301901f, 0.0223638f, 0.243521f, 0.897715f, 0.831138f, 0.422695f, 0.373375f, 0.604348f, 0.216366f, 0.117223f, 0.52669f, 0.957595f, 0.397123f, 0.527852f, 0.162748f, 0.331502f, 0.0476454f, 0.493669f, 0.45054f, 0.0189271f, 0.832804f, 0.245005f, 0.0257984f, 0.806287f, 0.573803f, 0.554897f, 0.242035f, 0.551262f, 0.807645f, 0.697002f, 0.236734f, 0.0732667f, 0.825466f, 0.273506f, 0.918823f, 0.728595f, 0.514056f, 0.913061f, 0.990209f, 0.569672f, 0.73299f, 0.254236f, 0.226596f, 0.438448f, 0.718309f, 0.0261628f, 0.522876f, 0.13089f, 0.518293f, 0.489113f, 0.856953f, 0.859139f, 0.0102561f, 0.241273f, 0.265863f, 0.46517f, 0.692028f, 0.0965296f, 0.357579f, 0.0809109f, 0.973039f, 0.241768f, 0.178742f, 0.16546f, 0.32408f, 0.51216f, 0.353633f, 0.914092f, 0.996733f, 0.527617f, 0.38878f, 0.968574f, 0.189173f, 0.297074f, 0.0769255f, 0.329634f, 0.999992f, 0.376291f, 0.353023f, 0.968517f, 0.936789f, 0.839482f, 0.141374f, 0.287281f, 0.899092f, 0.276857f, 0.701517f, 0.705605f, 0.694727f, 0.709399f, 0.150969f, 0.838456f, 0.872205f, 0.251672f, 0.0823043f, 0.433517f, 0.114241f, 0.686941f, 0.604298f, 0.96366f, 0.998541f, 0.542768f, 0.763697f, 0.487684f, 0.614873f, 0.118265f, 0.82044f, 0.928577f, 0.130926f, 0.788807f, 0.116383f, 0.961747f, 0.119231f, 0.584441f, 0.492563f, 0.310756f, 0.386993f, 0.706782f, 0.856075f, 0.351463f, 0.88558f, 0.953703f, 0.625848f, 0.152387f, 0.725336f, 0.209592f, 0.510357f, 0.994541f, 0.563889f, 0.112611f, 0.188244f, 0.200779f, 0.603122f, 0.498709f, 0.401355f, 0.256663f, 0.72548f, 0.286149f, 0.585824f, 0.729582f, 0.109245f, 0.750599f, 0.526262f, 0.2682f, 0.0439657f, 0.940121f, 0.51635f, 0.563138f, 0.648896f, 0.626415f, 0.326178f, 0.514948f, 0.792292f, 0.132806f, 0.0344517f, 0.68247f, 0.688457f, 0.0830311f, 0.822472f, 0.421894f, 0.363927f, 0.258686f, 0.469445f, 0.484979f, 0.261765f, 0.0107293f, 0.823743f, 0.898295f, 0.685985f, 0.12627f, 0.0935537f, 0.710923f, 0.221798f, 0.466435f, 0.204661f, 0.419436f, 0.888813f, 0.812406f, 0.0987169f, 0.56719f, 0.0848368f, 0.415454f, 0.0568779f, 0.0836185f, 0.591172f, 0.222817f, 0.084403f, 0.443582f, 0.511802f, 0.291254f, 0.57206f, 0.538638f, 0.0480104f, 0.394755f, 0.146417f, 0.486177f, 0.275562f, 0.991969f, 0.152291f, 0.125037f, 0.734148f, 0.273974f, 0.907751f, 0.0557118f, 0.625865f, 0.540812f, 0.404363f, 0.683585f, 0.817448f, 0.880429f, 0.0368383f, 0.117144f, 0.452914f, 0.601129f, 0.816468f, 0.177218f, 0.341007f, 0.437119f, 0.512966f, 0.734273f, 0.670025f, 0.774994f, 0.516255f, 0.403913f, 0.194468f, 0.730509f, 0.915396f, 0.733057f, 0.226151f, 0.773553f, 0.560888f, 0.322723f, 0.880917f, 0.354637f, 0.764857f, 0.101728f, 0.98936f, 0.770464f, 0.363922f, 0.268453f, 0.122471f, 0.468997f, 0.227406f, 0.908916f, 0.838655f, 0.675934f, 0.297773f, 0.820353f, 0.968448f, 0.22299f, 0.45603f, 0.883587f, 0.961793f, 0.981808f, 0.0918925f, 0.289544f, 0.0126749f, 0.952685f, 0.433636f, 0.888319f, 0.0345352f, 0.0537092f, 0.630984f, 0.290415f, 0.442073f, 0.957977f, 0.528899f, 0.258949f, 0.517977f, 0.555961f, 0.962038f, 0.103875f, 0.120518f, 0.524644f, 0.901207f, 0.976801f, 0.20839f, 0.791273f, 0.928386f, 0.269995f, 0.851301f, 0.155978f, 0.95959f, 0.471912f, 0.558651f, 0.0792384f, 0.305654f, 0.0687847f, 0.407363f, 0.854473f, 0.726835f, 0.434604f, 0.0319832f, 0.258654f, 0.228612f, 0.88968f, 0.233836f, 0.187192f, 0.0812797f, 0.685767f, 0.227064f, 0.625626f, 0.0418912f, 0.091916f, 0.893489f, 0.906418f, 0.343487f, 0.259549f, 0.500555f, 0.49464f, 0.358855f, 0.453654f, 0.625872f, 0.260065f, 0.526648f, 0.270802f, 0.629696f, 0.652685f, 0.886566f, 0.0175723f, 0.192974f, 0.772648f, 0.322638f, 0.441971f, 0.326457f, 0.314981f, 0.789898f, 0.609642f, 0.417324f, 0.901833f, 0.625863f, 0.520122f, 0.714596f, 0.0476563f, 0.130953f, 0.230048f, 0.938159f, 0.560143f, 0.0489532f, 0.172541f, 0.941601f, 0.0195008f, 0.262638f, 0.882763f, 0.515662f, 0.696145f, 0.0346089f, 0.472647f, 0.673146f, 0.664696f, 0.171615f, 0.157088f, 0.320476f, 0.644456f, 0.655435f, 0.438065f, 0.828032f, 0.75158f, 0.671098f, 0.651288f, 0.194411f, 0.99512f, 0.324144f, 0.327449f, 0.138816f, 0.826698f, 0.702613f, 0.785437f, 0.292426f, 0.32113f, 0.934188f, 0.138683f, 0.10368f, 0.664516f, 0.364206f, 0.992479f, 0.365432f, 0.864658f, 0.0582836f, 0.220552f, 0.603853f, 0.0222399f, 0.801677f, 0.136697f, 0.918184f, 0.534017f, 0.605448f, 0.172941f, 0.0832636f, 0.820645f, 0.321777f, 0.828627f, 0.184141f, 0.824755f, 0.859183f, 0.0145646f, 0.180491f, 0.381069f, 0.685228f, 0.631852f, 0.0338391f, 0.361849f, 0.424745f, 0.051589f, 0.293966f, 0.844586f, 0.0737949f, 0.255997f, 0.134207f, 0.724875f, 0.606424f, 0.18282f, 0.94089f, 0.513781f, 0.583085f, 0.73825f, 0.29708f, 0.113687f, 0.242324f, 0.595915f, 0.744452f, 0.300691f, 0.122135f, 0.186776f, 0.424907f, 0.0548492f, 0.926156f, 0.784282f, 0.487589f, 0.708848f, 0.421664f, 0.91074f, 0.414106f, 0.257951f, 0.598353f, 0.511842f, 0.822584f, 0.659914f, 0.734142f, 0.129923f, 0.893404f, 0.499535f, 0.376755f, 0.351202f, 0.181314f, 0.467408f, 0.125804f, 0.750217f, 0.325757f, 0.0533974f, 0.0611866f, 0.927609f, 0.146805f, 0.00837644f, 0.761909f, 0.250079f, 0.28004f, 0.00418437f, 0.875385f, 0.502056f, 0.121803f, 0.876352f, 0.964255f, 0.661306f, 0.945703f, 0.697616f, 0.375116f, 0.379839f, 0.991601f, 0.204653f, 0.23887f, 0.944915f, 0.363196f, 0.538404f, 0.260688f, 0.0577462f, 0.7928f, 0.0965343f, 0.0313786f, 0.406476f, 0.0356123f, 0.920733f, 0.384257f, 0.396769f, 0.565033f, 0.816765f, 0.0231784f, 0.297517f, 0.691497f, 0.125348f, 0.90672f, 0.870792f, 0.839266f, 0.619161f, 0.415235f, 0.0855324f, 0.317575f, 0.0321516f, 0.0459598f, 0.779923f, 0.208385f, 0.319421f, 0.719141f, 0.235942f, 0.931433f, 0.738555f, 0.498458f, 0.716415f, 0.422233f, 0.889511f, 0.689843f, 0.00346445f, 0.501386f, 0.836507f, 0.267413f, 0.20589f, 0.676368f, 0.162917f, 0.461109f, 0.200088f, 0.640686f, 0.870575f, 0.684988f, 0.629306f, 0.314908f, 0.949392f, 0.59184f, 0.96408f, 0.443349f, 0.786204f, 0.475125f, 0.46335f, 0.120098f, 0.521526f, 0.381189f, 0.0282903f, 0.338781f, 0.0147252f, 0.105385f, 0.523878f, 0.397474f, 0.922144f, 0.360621f, 0.967328f, 0.0795957f, 0.614568f, 0.941387f, 0.256149f, 0.460269f, 0.275171f, 0.156944f, 0.160385f, 0.190592f, 0.972277f, 0.995504f, 0.0148588f, 0.0328694f, 0.288649f, 0.624778f, 0.815458f, 0.0562352f, 0.17142f, 0.892587f, 0.813621f, 0.365365f, 0.287373f, 0.633701f, 0.612011f, 0.188615f, 0.266795f, 0.247953f, 0.929241f, 0.724582f, 0.168495f, 0.184623f, 0.676937f, 0.545181f, 0.779166f, 0.401639f, 0.791977f, 0.89885f, 0.0700023f, 0.323039f, 0.916252f, 0.666769f, 0.430525f, 0.521759f, 0.251172f, 0.18914f, 0.166139f, 0.550677f, 0.489721f, 0.273977f, 0.209432f, 0.941569f, 0.688973f, 0.534458f, 0.705287f, 0.445498f, 0.432936f, 0.674555f, 0.152962f, 0.350929f, 0.623852f, 0.104778f, 0.921401f, 0.0822757f, 0.773417f, 0.577079f, 0.52454f, 0.340603f, 0.180518f, 0.743391f, 0.309313f, 0.647283f, 0.508779f, 0.676723f, 0.871975f, 0.141776f, 0.662358f, 0.365894f, 0.614934f, 0.692909f, 0.271235f, 0.493481f, 0.0191645f, 0.433778f, 0.82123f, 0.440987f, 0.17822f, 0.158052f, 0.351538f, 0.904367f, 0.932931f, 0.771275f, 0.683578f, 0.147603f, 0.612052f, 0.238339f, 0.370294f, 0.377275f, 0.618327f, 0.23039f, 0.025349f, 0.881252f, 0.656383f, 0.848147f, 0.158194f, 0.925577f, 0.715534f, 0.566595f, 0.46578f, 0.953175f, 0.910838f, 0.422878f, 0.810046f, 0.0736497f, 0.767067f, 0.639362f, 0.0337872f, 0.0552913f, 0.196417f, 0.793722f, 0.638354f, 0.162484f, 0.250245f, 0.755271f, 0.563528f, 0.0426519f, 0.331396f, 0.686429f, 0.573515f, 0.580952f, 0.0780432f, 0.399008f, 0.837097f, 0.427702f, 0.879839f, 0.717721f, 0.798127f, 0.310848f, 0.0969406f, 0.112661f, 0.0588716f, 0.617045f, 0.810882f, 0.72268f, 0.536256f, 0.577522f, 0.82076f, 0.431478f, 0.582098f, 0.0867875f, 0.0819969f, 0.278815f, 0.442372f, 0.36417f, 0.504359f, 0.790864f, 0.150706f, 0.789597f, 0.11971f, 0.208723f, 0.0420081f, 0.439192f, 0.32817f, 0.510673f, 0.453106f, 0.131887f, 0.963443f, 0.46543f, 0.417993f, 0.515867f, 0.501282f, 0.358465f, 0.0408286f, 0.212398f, 0.636908f, 0.939945f, 0.64096f, 0.729772f, 0.782885f, 0.0180581f, 0.292225f, 0.0476142f, 0.014517f, 0.933166f, 0.677903f, 0.471022f, 0.0626455f, 0.34605f, 0.729552f, 0.0758758f, 0.030948f, 0.913585f, 0.0579351f, 0.604563f, 0.661979f, 0.380977f, 0.931586f, 0.10853f, 0.219475f, 0.534411f, 0.323453f, 0.191781f, 0.529629f, 0.24442f, 0.0668745f, 0.991815f, 0.811953f, 0.742443f, 0.851713f, 0.470675f, 0.439336f, 0.591621f, 0.0528885f, 0.293893f, 0.247487f, 0.153686f, 0.712198f, 0.308949f, 0.888146f, 0.483333f, 0.958923f, 0.773188f, 0.111127f, 0.931216f, 0.00803783f, 0.523384f, 0.589483f, 0.111122f, 0.874195f, 0.471779f, 0.866746f, 0.393314f, 0.917975f, 0.47388f, 0.45923f, 0.184881f, 0.000267302f, 0.118287f, 0.294422f, 0.478528f, 0.798024f, 0.819273f, 0.134578f, 0.833257f, 0.754163f, 0.0372118f, 0.476365f, 0.883108f, 0.295347f, 0.506178f, 0.159185f, 0.486809f, 0.997655f, 0.542137f, 0.722696f, 0.87696f, 0.0533655f, 0.576914f, 0.635649f, 0.843527f, 0.996396f, 0.633346f, 0.0469884f, 0.983361f, 0.274715f, 0.733967f, 0.587163f, 0.335545f, 0.63203f, 0.322497f, 0.342558f, 0.613547f, 0.852798f, 0.97598f, 0.289202f, 0.112494f, 0.604807f, 0.171367f, 0.645325f, 0.120826f, 0.983477f, 0.346941f, 0.695627f, 0.0933139f, 0.0904035f, 0.945534f, 0.699159f, 0.918074f, 0.127972f, 0.146117f, 0.153176f, 0.34932f, 0.274975f, 0.128079f, 0.981156f, 0.64941f, 0.329935f, 0.388786f, 0.992289f, 0.97107f, 0.636135f, 0.825807f, 0.0221501f, 0.778773f, 0.886846f, 0.607811f, 0.814742f, 0.371163f, 0.143338f, 0.833689f, 0.548518f, 0.0863777f, 0.455333f, 0.654521f, 0.690034f, 0.528876f, 0.330968f, 0.1821f, 0.199122f, 0.574718f, 0.137327f, 0.451855f, 0.991012f, 0.703202f, 0.740871f, 0.78313f, 0.363101f, 0.789682f, 0.458018f, 0.129508f, 0.224462f, 0.792609f, 0.289557f, 0.869839f, 0.877946f, 0.871263f, 0.143763f, 0.374451f, 0.801211f, 0.459942f, 0.262103f, 0.115882f, 0.703586f, 0.14139f, 0.856733f, 0.379291f, 0.409448f, 0.847103f, 0.298199f, 0.274674f, 0.993469f, 0.91734f, 0.171558f, 0.548496f, 0.825017f, 0.230367f, 0.933356f, 0.111477f, 0.244218f, 0.0821157f, 0.655875f, 0.509365f, 0.202234f, 0.879215f, 0.517252f, 0.642754f, 0.680939f, 0.590988f, 0.466308f, 0.0191027f, 0.486767f, 0.929551f, 0.412309f, 0.593949f, 0.818184f, 0.615371f, 0.424783f, 0.268686f, 0.882975f, 0.856814f, 0.0412179f, 0.62009f, 0.509358f, 0.773243f, 0.669224f, 0.101498f, 0.155394f, 0.236388f, 0.279887f, 0.139492f, 0.908711f, 0.0246424f, 0.416223f, 0.851026f, 0.859623f, 0.905136f, 0.810206f, 0.504903f, 0.155452f, 0.982737f, 0.06796f, 0.654384f, 0.0777361f, 0.726558f, 0.162373f, 0.707787f, 0.0106446f, 0.863501f, 0.16515f, 0.454644f, 0.352805f, 0.110448f, 0.0987702f, 0.38532f, 0.831841f, 0.7131f, 0.884184f, 0.49833f, 0.403592f, 0.136039f, 0.402964f, 0.75637f, 0.852311f, 0.226679f, 0.677947f, 0.539316f, 0.90116f, 0.150665f, 0.326361f, 0.69401f, 0.642847f, 0.637767f, 0.0383073f, 0.21091f, 0.738813f, 0.704299f, 0.622894f, 0.316864f, 0.673828f, 0.00453082f, 0.998097f, 0.477128f, 0.561196f, 0.143336f, 0.852607f, 0.0538591f, 0.705491f, 0.680765f, 0.922218f, 0.335589f, 0.212406f, 0.788774f, 0.50572f, 0.315882f, 0.997041f, 0.28049f, 0.316806f, 0.0301507f, 0.0161073f, 0.833198f, 0.976399f, 0.299819f, 0.705579f, 0.699842f, 0.0229762f, 0.547337f, 0.576429f, 0.586619f, 0.580927f, 0.704043f, 0.712396f, 0.704521f, 0.461941f, 0.271101f, 0.300411f, 0.543945f, 0.83888f, 0.927517f, 0.696113f, 0.806099f, 0.61674f, 0.565187f, 0.262063f, 0.584379f, 0.651243f, 0.769777f, 0.964328f, 0.824391f, 0.418492f, 0.44945f, 0.828669f, 0.383372f, 0.643618f, 0.112057f, 0.90306f, 0.952415f, 0.135493f, 0.445303f, 0.10469f, 0.876504f, 0.780554f, 0.304308f, 0.92487f, 0.112365f, 0.761206f, 0.0440797f, 0.0245029f, 0.39543f, 0.200187f, 0.24704f, 0.990857f, 0.880704f, 0.231992f, 0.475104f, 0.572161f, 0.657611f, 0.671187f, 0.00252225f, 0.773633f, 0.652176f, 0.85746f, 0.0924269f, 0.33908f, 0.0523477f, 0.105062f, 0.946441f, 0.0981879f, 0.720323f, 0.823436f, 0.372996f, 0.567674f, 0.0662654f, 0.0282141f, 0.265578f, 0.973171f, 0.666187f, 0.161559f, 0.18833f, 0.692873f, 0.0415668f, 0.180542f, 0.100651f, 0.9122f, 0.848933f, 0.0986598f, 0.413384f, 0.600706f, 0.921116f, 0.417723f, 0.915706f, 0.4991f, 0.235294f, 0.642321f, 0.294678f, 0.459773f, 0.821892f, 0.521086f, 0.820835f, 0.420583f, 0.0694356f, 0.142045f, 0.519777f, 0.996035f, 0.230064f, 0.901462f, 0.0570203f, 0.936726f, 0.0804466f, 0.324219f, 0.231704f, 0.653857f, 0.77686f, 0.877787f, 0.585532f, 0.907335f, 0.478509f, 0.898244f, 0.509399f, 0.93998f, 0.333457f, 0.911111f, 0.240376f, 0.433741f, 0.343811f, 0.640166f, 0.803994f, 0.338771f, 0.25318f, 0.247124f, 0.667644f, 0.85778f, 0.380125f, 0.279352f, 0.385812f, 0.485787f, 0.073276f, 0.632746f, 0.602181f, 0.839795f, 0.383827f, 0.999008f, 0.161368f, 0.696009f, 0.0803506f, 0.0669083f, 0.627762f, 0.0293949f, 0.575738f, 0.783778f, 0.894671f, 0.0255047f, 0.0312134f, 0.995024f, 0.966357f, 0.060387f, 0.11614f, 0.910705f, 0.97223f, 0.288007f, 0.859113f, 0.538287f, 0.901633f, 0.114395f, 0.80549f, 0.119997f, 0.913041f, 0.96864f, 0.847122f, 0.376428f, 0.304454f, 0.3547f, 0.763945f, 0.994089f, 0.131418f, 0.210581f, 0.741318f, 0.327375f, 0.965342f, 0.417546f, 0.37163f, 0.279321f, 0.0719678f, 0.856568f, 0.653297f, 0.823873f, 0.788634f, 0.561447f, 0.0368962f, 0.164636f, 0.45971f, 0.243616f, 0.552693f, 0.91708f, 0.407654f, 0.684348f, 0.788239f, 0.739047f, 0.641911f, 0.293135f, 0.614863f, 0.454767f, 0.555778f, 0.294433f, 0.29805f, 0.788502f, 0.0334243f, 0.676237f, 0.65361f, 0.214046f, 0.0177261f, 0.189304f, 0.498024f, 0.118308f, 0.963888f, 0.407714f, 0.629715f, 0.396166f, 0.385083f, 0.681577f, 0.950198f, 0.644092f, 0.728264f, 0.376151f, 0.982424f, 0.917f, 0.97048f, 0.0279279f, 0.144728f, 0.372595f, 0.796806f, 0.345967f, 0.513465f, 0.617405f, 0.637598f, 0.399704f, 0.708465f, 0.681057f, 0.753367f, 0.882881f, 0.0401207f, 0.250032f, 0.573113f, 0.17008f, 0.595031f, 0.330492f, 0.651312f, 0.62463f, 0.353036f, 0.020142f, 0.284584f, 0.977296f, 0.247234f, 0.417433f, 0.685337f, 0.76027f, 0.0594405f, 0.160709f, 0.559443f, 0.00535314f, 0.720624f, 0.293242f, 0.740578f, 0.37522f, 0.989147f, 0.373445f, 0.843482f, 0.805096f, 0.23085f, 0.48666f, 0.163527f, 0.314849f, 0.559939f, 0.903911f, 0.817242f, 0.503036f, 0.853727f, 0.909022f, 0.747273f, 0.590485f, 0.630844f, 0.630728f, 0.629548f, 0.43543f, 0.316281f, 0.556645f, 0.444374f, 0.565821f, 0.729194f, 0.195997f, 0.0265693f, 0.986677f, 0.203989f, 0.176029f, 0.0199535f, 0.299316f, 0.464491f, 0.728061f, 0.229464f, 0.323904f, 0.901236f, 0.753814f, 0.512545f, 0.889499f, 0.945957f, 0.685098f, 0.545315f, 0.0216512f, 0.540925f, 0.774731f, 0.883067f, 0.629874f, 0.0150073f, 0.45581f, 0.497568f, 0.656032f, 0.38256f, 0.119854f, 0.0818771f, 0.0944882f, 0.379706f, 0.783539f, 0.75417f, 0.350797f, 0.706184f, 0.709958f, 0.822739f, 0.493493f, 0.857186f, 0.792274f, 0.16993f, 0.498329f, 0.603569f, 0.448396f, 0.80538f, 0.703538f, 0.146f, 0.491452f, 0.983054f, 0.010177f, 0.471146f, 0.929877f, 0.705029f, 0.140753f, 0.420074f, 0.502608f, 0.278529f, 0.0754144f, 0.0367962f, 0.640371f, 0.951626f, 0.76067f, 0.091209f, 0.850092f, 0.792538f, 0.621864f, 0.158214f, 0.675515f, 0.3349f, 0.142078f, 0.358923f, 0.880086f, 0.795988f, 0.250101f, 0.156054f, 0.307004f, 0.455991f, 0.682152f, 0.665944f, 0.239613f, 0.246061f, 0.606435f, 0.691024f, 0.825271f, 0.854492f, 0.00488661f, 0.334328f, 0.929062f, 0.758144f, 0.572786f, 0.0638767f, 0.185312f, 0.561627f, 0.3009f, 0.312006f, 0.291547f, 0.111193f, 0.81938f, 0.789581f, 0.608088f, 0.344256f, 0.39222f, 0.305515f, 0.344941f, 0.925881f, 0.900206f, 0.403886f, 0.039095f, 0.950403f, 0.866024f, 0.252525f, 0.661937f, 0.706071f, 0.205677f, 0.688487f, 0.229861f, 0.621937f, 0.864278f, 0.965386f, 0.0472875f, 0.448469f, 0.465542f, 0.647983f, 0.925366f, 0.725641f, 0.902711f, 0.352396f, 0.57343f, 0.0987301f, 0.988477f, 0.403776f, 0.655851f, 0.564298f, 0.191757f, 0.909853f, 0.817385f, 0.944658f, 0.429676f, 0.617083f, 0.386296f, 0.789026f, 0.503205f, 0.696269f, 0.430404f, 0.591985f, 0.743304f, 0.324891f, 0.990424f, 0.921132f, 0.425184f, 0.995688f, 0.839809f, 0.644021f, 0.0190031f, 0.285654f, 0.558158f, 0.689764f, 0.435316f, 0.0569915f, 0.340858f, 0.394885f, 0.365642f, 0.631062f, 0.530601f, 0.712735f, 0.990042f, 0.281404f, 0.668662f, 0.679428f, 0.471992f, 0.596845f, 0.982266f, 0.257362f, 0.50196f, 0.130304f, 0.254164f, 0.112169f, 0.838253f, 0.570304f, 0.436114f, 0.11975f, 0.870855f, 0.558439f, 0.368332f, 0.858584f, 0.414183f, 0.954945f, 0.802257f, 0.818688f, 0.857604f, 0.901512f, 0.619855f, 0.698505f, 0.00155338f, 0.229836f, 0.821184f, 0.73179f, 0.40613f, 0.0514568f, 0.795304f, 0.474855f, 0.586639f, 0.285376f, 0.937922f, 0.796976f, 0.644185f, 0.250051f, 0.262254f, 0.224909f, 0.322996f, 0.312023f, 0.657926f, 0.773502f, 0.0526391f, 0.194886f, 0.355555f, 0.965753f, 0.555937f, 0.369659f, 0.763032f, 0.729601f, 0.234942f, 0.13263f, 0.208587f, 0.790927f, 0.39756f, 0.0963787f, 0.35287f, 0.90399f, 0.714379f, 0.332029f, 0.110528f, 0.192698f, 0.11752f, 0.356852f, 0.340058f, 0.45982f, 0.258951f, 0.37678f, 0.641335f, 0.806043f, 0.132535f, 0.734649f, 0.554962f, 0.286301f, 0.634713f, 0.58303f, 0.564306f, 0.142513f, 0.293555f, 0.340322f, 0.805673f, 0.422831f, 0.851423f, 0.977257f, 0.740316f, 0.0864667f, 0.474178f, 0.428437f, 0.948543f, 0.45573f, 0.886006f, 0.943641f, 0.483835f, 0.69031f, 0.53496f, 0.719321f, 0.584282f, 0.359293f, 0.0660638f, 0.802731f, 0.593861f, 0.0970506f, 0.594245f, 0.483069f, 0.593339f, 0.996173f, 0.141448f, 0.92018f, 0.600887f, 0.260395f, 0.684758f, 0.512614f, 0.666603f, 0.57535f, 0.913307f, 0.993897f, 0.382855f, 0.0805282f, 0.806475f, 0.130722f, 0.259415f, 0.724846f, 0.22201f, 0.588911f, 0.96823f, 0.477599f, 0.612768f, 0.389618f, 0.931194f, 0.914288f, 0.216016f, 0.26814f, 0.686002f, 0.360242f, 0.706958f, 0.469066f, 0.717673f, 0.76456f, 0.929895f, 0.318081f, 0.495209f, 0.47529f, 0.533926f, 0.122629f, 0.266277f, 0.998293f, 0.301682f, 0.268766f, 0.521445f, 0.897113f, 0.140565f, 0.82481f, 0.54482f, 0.0411331f, 0.138178f, 0.16028f, 0.339749f, 0.279758f, 0.0690523f, 0.229626f, 0.773689f, 0.985868f, 0.50159f, 0.802227f, 0.863187f, 0.895413f, 0.496282f, 0.565149f, 0.990162f, 0.679116f, 0.0414271f, 0.229311f, 0.969948f, 0.782062f, 0.831456f, 0.218894f, 0.26371f, 0.657502f, 0.806402f, 0.648849f, 0.258534f, 0.976998f, 0.490664f, 0.304466f, 0.844254f, 0.97523f, 0.786658f, 0.687765f, 0.81279f, 0.73874f, 0.602575f, 0.128759f, 0.375526f, 0.323907f, 0.495158f, 0.817866f, 0.786536f, 0.413495f, 0.442395f, 0.308477f, 0.652321f, 0.694181f, 0.644425f, 0.428442f, 0.998757f, 0.218575f, 0.750969f, 0.5844f, 0.479108f, 0.859069f, 0.682045f, 0.731818f, 0.769043f, 0.194212f, 0.462301f, 0.272821f, 0.651029f, 0.900891f, 0.429824f, 0.423801f, 0.735368f, 0.453367f, 0.514288f, 0.20012f, 0.610554f, 0.628963f, 0.0701268f, 0.839386f, 0.454427f, 0.892609f, 0.966491f, 0.524895f, 0.52262f, 0.997758f, 0.181262f, 0.546566f, 0.901785f, 0.546405f, 0.803243f, 0.529801f, 0.385335f, 0.578729f, 0.326991f, 0.976556f, 0.248603f, 0.301094f, 0.0429519f, 0.0164084f, 0.450241f, 0.654039f, 0.00272868f, 0.712623f, 0.0130062f, 0.00747252f, 0.533141f, 0.946142f, 0.692075f, 0.992352f, 0.362955f, 0.182655f, 0.39437f, 0.999539f, 0.835556f, 0.935062f, 0.129013f, 0.191655f, 0.534981f, 0.709061f, 0.789354f, 0.284771f, 0.431047f, 0.285171f, 0.271077f, 0.366255f, 0.468024f, 0.810362f, 0.805887f, 0.351508f, 0.219024f, 0.558153f, 0.463561f, 0.746664f, 0.194695f, 0.695571f, 0.534415f, 0.656065f, 0.79305f, 0.942087f, 0.418493f, 0.00941055f, 0.163401f, 0.103549f, 0.733254f, 0.858649f, 0.329274f, 0.530856f, 0.213811f, 0.315749f, 0.364533f, 0.580353f, 0.840329f, 0.857601f, 0.958896f, 0.28791f, 0.796802f, 0.330086f, 0.795437f, 0.218877f, 0.350685f, 0.361633f, 0.265448f, 0.805827f, 0.668202f, 0.460781f, 0.946176f, 0.618074f, 0.558126f, 0.723665f, 0.899372f, 0.203582f, 0.598526f, 0.272009f, 0.150661f, 0.508734f, 0.457369f, 0.0249552f, 0.328787f, 0.434246f, 0.0548489f, 0.516235f, 0.531443f, 0.794063f, 0.204529f, 0.519404f, 0.153389f, 0.552393f, 0.830848f, 0.750029f, 0.437622f, 0.255244f, 0.713685f, 0.636782f, 0.965375f, 0.840532f, 0.422907f, 0.63536f, 0.647608f, 0.518581f, 0.480577f, 0.918447f, 0.555567f, 0.650525f, 0.765643f, 0.987827f, 0.987532f, 0.653915f, 0.88091f, 0.654662f, 0.413945f, 0.972806f, 0.178423f, 0.777592f, 0.490022f, 0.789507f, 0.96624f, 0.253769f, 0.433083f, 0.545944f, 0.241708f, 0.141122f, 0.713111f, 0.249066f, 0.392112f, 0.884242f, 0.0381838f, 0.396806f, 0.653674f, 0.490497f, 0.565764f, 0.260669f, 0.0874451f, 0.585119f, 0.165015f, 0.956667f, 0.525893f, 0.523706f, 0.00542197f, 0.158665f, 0.914547f, 0.892813f, 0.662642f, 0.185382f, 0.64453f, 0.360967f, 0.12203f, 0.135463f, 0.892902f, 0.792004f, 0.0943852f, 0.590347f, 0.553052f, 0.901379f, 0.380196f, 0.39361f, 0.691038f, 0.0602027f, 0.261203f, 0.317452f, 0.741232f, 0.690551f, 0.38444f, 0.941376f, 0.719326f, 0.265698f, 0.0284344f, 0.663863f, 0.434642f, 0.175415f, 0.155145f, 0.795022f, 0.802594f, 0.53775f, 0.383979f, 0.627522f, 0.960725f, 0.582843f, 0.103717f, 0.829046f, 0.191652f, 0.746783f, 0.32102f, 0.443852f, 0.643639f, 0.912117f, 0.882651f, 0.719068f, 0.171581f, 0.0919251f, 0.35425f, 0.584854f, 0.226458f, 0.732623f, 0.521055f, 0.461375f, 0.95405f, 0.93298f, 0.0117622f, 0.00387392f, 0.493186f, 0.290839f, 0.385281f, 0.989674f, 0.231794f, 0.602307f, 0.72179f, 0.338036f, 0.935942f, 0.897179f, 0.183423f, 0.678317f, 0.711053f, 0.0193125f, 0.410937f, 0.507207f, 0.173439f, 0.39218f, 0.64884f, 0.679692f, 0.344518f, 0.956455f, 0.912477f, 0.895762f, 0.245218f, 0.909765f, 0.886632f, 0.162184f, 0.842051f, 0.587987f, 0.0911946f, 0.0616147f, 0.991976f, 0.754416f, 0.925751f, 0.104254f, 0.427802f, 0.67159f, 0.0994975f, 0.771514f, 0.446055f, 0.135193f, 0.135505f, 0.568103f, 0.248988f, 0.175478f, 0.0694318f, 0.777683f, 0.403786f, 0.713657f, 0.129955f, 0.944242f, 0.947967f, 0.898715f, 0.104035f, 0.10935f, 0.447119f, 0.239982f, 0.0664569f, 0.80167f, 0.00730447f, 0.808298f, 0.899291f, 0.912966f, 0.394694f, 0.719938f, 0.869431f, 0.349673f, 0.92118f, 0.392323f, 0.306616f, 0.623095f, 0.801703f, 0.902663f, 0.243608f, 0.795898f, 0.913631f, 0.222991f, 0.813668f, 0.470407f, 0.644124f, 0.82575f, 0.714662f, 0.0314611f, 0.97902f, 0.65823f, 0.445888f, 0.486358f, 0.164978f, 0.0376539f, 0.250487f, 0.726926f, 0.137483f, 0.165057f, 0.486292f, 0.0713929f, 0.39403f, 0.742192f, 0.306382f, 0.477877f, 0.466838f, 0.583454f, 0.92042f, 0.290258f, 0.301665f, 0.878339f, 0.046988f, 0.974246f, 0.651198f, 0.710518f, 0.860777f, 0.163627f, 0.185359f, 0.686777f, 0.881123f, 0.0163253f, 0.425492f, 0.689934f, 0.62808f, 0.73478f, 0.270705f, 0.642689f, 0.557245f, 0.883161f, 0.430399f, 0.81064f, 0.538683f, 0.415912f, 0.199571f, 0.999213f, 0.103815f, 0.195871f, 0.373067f, 0.589498f, 0.282816f, 0.171064f, 0.368255f, 0.34819f, 0.204787f, 0.78065f, 0.954606f, 0.285295f, 0.67862f, 0.313054f, 0.158713f, 0.701675f, 0.898511f, 0.385409f, 0.769553f, 0.552321f, 0.277662f, 0.577892f, 0.825347f, 0.865165f, 0.720462f, 0.451984f, 0.326939f, 0.342138f, 0.551345f, 0.419862f, 0.746212f, 0.910316f, 0.742052f, 0.757438f, 0.405861f, 0.503971f, 0.944662f, 0.360125f, 0.00822654f, 0.564533f, 0.299163f, 0.816413f, 0.537946f, 0.517861f, 0.849585f, 0.188971f, 0.0634645f, 0.0673212f, 0.146342f, 0.175278f, 0.795673f, 0.373777f, 0.546286f, 0.773253f, 0.0912896f, 0.506337f, 0.933412f, 0.320582f, 0.3445f, 0.872153f, 0.175124f, 0.405562f, 0.886953f, 0.9944f, 0.811637f, 0.692684f, 0.793248f, 0.307852f, 0.116635f, 0.74099f, 0.0661277f, 0.566807f, 0.432869f, 0.337176f, 0.821848f, 0.734541f, 0.963709f, 0.711432f, 0.658906f, 0.0891826f, 0.377552f, 0.8065f, 0.0649709f, 0.758778f, 0.783087f, 0.31149f, 0.945898f, 0.0985f, 0.388848f, 0.465363f, 0.84646f, 0.163045f, 0.909335f, 0.407798f, 0.343222f, 0.388481f, 0.775582f, 0.521063f, 0.762849f, 0.958468f, 0.204207f, 0.493618f, 0.800463f, 0.00552669f, 0.0787602f, 0.608685f, 0.209282f, 0.354252f, 0.77908f, 0.248923f, 0.258977f, 0.710994f, 0.940551f, 0.590085f, 0.0249065f, 0.560352f, 0.39465f, 0.0679778f, 0.530731f, 0.382096f, 0.744742f, 0.956843f, 0.228906f, 0.650365f, 0.600112f, 0.619173f, 0.342611f, 0.0347588f, 0.892132f, 0.083481f, 0.232227f, 0.120129f, 0.820559f, 0.829139f, 0.101528f, 0.859875f, 0.317799f, 0.449449f, 0.41438f, 0.873112f, 0.992732f, 0.660953f, 0.985393f, 0.177618f, 0.583418f, 0.478677f, 0.880801f, 0.465477f, 0.114581f, 0.185467f, 0.946421f, 0.510866f, 0.463243f, 0.467624f, 0.352251f, 0.593756f, 0.0279382f, 0.800112f, 0.142995f, 0.514325f, 0.469238f, 0.28473f, 0.223652f, 0.715997f, 0.488095f, 0.801699f, 0.631788f, 0.956418f, 0.976292f, 0.0937843f, 0.133368f, 0.37809f, 0.587238f, 0.545838f, 0.0967338f, 0.919094f, 0.282771f, 0.992767f, 0.0407912f, 0.841486f, 0.0646004f, 0.542386f, 0.072265f, 0.311254f, 0.217099f, 0.201156f, 0.719131f, 0.415653f, 0.525554f, 0.217228f, 0.20288f, 0.275595f, 0.555147f, 0.0505124f, 0.173597f, 0.127641f, 0.629114f, 0.794809f, 0.060557f, 0.927047f, 0.197431f, 0.0738419f, 0.00370722f, 0.545598f, 0.933096f, 0.511001f, 0.530726f, 0.97507f, 0.532409f, 0.13159f, 0.320286f, 0.326397f, 0.00880228f, 0.995005f, 0.617147f, 0.845487f, 0.415267f, 0.0459226f, 0.454742f, 0.645369f, 0.423785f, 0.843181f, 0.196786f, 0.494675f, 0.510028f, 0.562132f, 0.123534f, 0.138025f, 0.11027f, 0.284769f, 0.195783f, 0.999027f, 0.351437f, 0.993307f, 0.288432f, 0.0379774f, 0.114064f, 0.91708f, 0.716298f, 0.115793f, 0.0531683f, 0.686147f, 0.077986f, 0.0188457f, 0.637753f, 0.903638f, 0.766706f, 0.392183f, 0.721581f, 0.256664f, 0.175902f, 0.231257f, 0.393836f, 0.00843427f, 0.334791f, 0.618091f, 0.510078f, 0.299471f, 0.334034f, 0.28075f, 0.0550865f, 0.745136f, 0.536174f, 0.870911f, 0.203483f, 0.0980402f, 0.349197f, 0.412849f, 0.935278f, 0.0153529f, 0.0651288f, 0.809422f, 0.564107f, 0.803961f, 0.0177405f, 0.613071f, 0.800291f, 0.258902f, 0.918228f, 0.156976f, 0.178348f, 0.0908561f, 0.89576f, 0.992044f, 0.726232f, 0.780642f, 0.937897f, 0.62199f, 0.160523f, 0.739961f, 0.94062f, 0.469771f, 0.70994f, 0.00281299f, 0.0805916f, 0.402899f, 0.984933f, 0.655274f, 0.886486f, 0.612083f, 0.661397f, 0.881197f, 0.937729f, 0.650793f, 0.539215f, 0.964424f, 0.989627f, 0.338105f, 0.622144f, 0.118824f, 0.0989292f, 0.322776f, 0.445588f, 0.911383f, 0.390822f, 0.0203864f, 0.232822f, 0.461619f, 0.663026f, 0.32982f, 0.756794f, 0.610385f, 0.0242097f, 0.994838f, 0.477536f, 0.433771f, 0.671218f, 0.382746f, 0.201504f, 0.584247f, 0.891399f, 0.547265f, 0.919655f, 0.516605f, 0.859649f, 0.50646f, 0.55505f, 0.826467f, 0.220646f, 0.97932f, 0.0688576f, 0.58229f, 0.548189f, 0.0749138f, 0.478794f, 0.823197f, 0.225188f, 0.0161685f, 0.71767f, 0.676555f, 0.54906f, 0.851259f, 0.110762f, 0.0208955f, 0.762172f, 0.812562f, 0.251429f, 0.775334f, 0.66187f, 0.456114f, 0.540954f, 0.359825f, 0.0929966f, 0.613078f, 0.69473f, 0.350031f, 0.230682f, 0.073909f, 0.364522f, 0.568473f, 0.501085f, 0.424935f, 0.818985f, 0.857166f, 0.916295f, 0.701885f, 0.0609002f, 0.296466f, 0.184376f, 0.762703f, 0.0838022f, 0.759049f, 0.853185f, 0.809232f, 0.802498f, 0.716835f, 0.311225f, 0.867661f, 0.293557f, 0.213948f, 0.545535f, 0.960924f, 0.255488f, 0.195426f, 0.515302f, 0.971729f, 0.944004f, 0.854764f, 0.64686f, 0.807915f, 0.755688f, 0.971568f, 0.224035f, 0.101062f, 0.205162f, 0.842769f, 0.964089f, 0.961896f, 0.531705f, 0.857807f, 0.0429816f, 0.77319f, 0.712875f, 0.986951f, 0.275632f, 0.811121f, 0.509338f, 0.342154f, 0.896854f, 0.169781f, 0.31657f, 0.19919f, 0.680331f, 0.643143f, 0.244623f, 0.890083f, 0.812999f, 0.667182f, 0.714316f, 0.503336f, 0.544116f, 0.871858f, 0.6963f, 0.800237f, 0.989315f, 0.187384f, 0.392903f, 0.716434f, 0.701279f, 0.0526855f, 0.866285f, 0.367396f, 0.66601f, 0.338738f, 0.0953665f, 0.306527f, 0.117144f, 0.321205f, 0.905984f, 0.253406f, 0.212369f, 0.981002f, 0.559785f, 0.210445f, 0.721006f, 0.445134f, 0.579764f, 0.680618f, 0.742718f, 0.727408f, 0.111223f, 0.842617f, 0.698718f, 0.625936f, 0.98341f, 0.144354f, 0.823984f, 0.952947f, 0.127075f, 0.827679f, 0.0251896f, 0.251956f, 0.655068f, 0.753275f, 0.360489f, 0.988721f, 0.511388f, 0.272199f, 0.699127f, 0.690071f, 0.0140954f, 0.858805f, 0.216496f, 0.618667f, 0.591202f, 0.250346f, 0.691095f, 0.47548f, 0.616506f, 0.654329f, 0.99823f, 0.324044f, 0.937373f, 0.0172027f, 0.821493f, 0.672795f, 0.664694f, 0.616335f, 0.497045f, 0.419486f, 0.117143f, 0.296083f, 0.517373f, 0.604572f, 0.738358f, 0.312212f, 0.203983f, 0.0989904f, 0.408029f, 0.202268f, 0.961834f, 0.21801f, 0.701251f, 0.0124776f, 0.739799f, 0.330518f, 0.544307f, 0.721845f, 0.0924289f, 0.619021f, 0.00489626f, 0.357682f, 0.0167915f, 0.0139818f, 0.230874f, 0.219651f, 0.108326f, 0.305198f, 0.878217f, 0.0735699f, 0.595523f, 0.96629f, 0.928103f, 0.462759f, 0.629168f, 0.578629f, 0.116303f, 0.745272f, 0.212191f, 0.862487f, 0.0226316f, 0.643428f, 0.712581f, 0.399366f, 0.362851f, 0.637957f, 0.170903f, 0.334893f, 0.767069f, 0.926067f, 0.19111f, 0.829639f, 0.0489744f, 0.0718803f, 0.772276f, 0.0671379f, 0.219526f, 0.666425f, 0.324516f, 0.849223f, 0.0444149f, 0.0508325f, 0.994352f, 0.992029f, 0.837827f, 0.729395f, 0.772436f, 0.929232f, 0.63574f, 0.489766f, 0.449699f, 0.533129f, 0.811033f, 0.389346f, 0.559836f, 0.393563f, 0.692987f, 0.900019f, 0.183969f, 0.378872f, 0.749458f, 0.187582f, 0.0738074f, 0.715319f, 0.183984f, 0.739933f, 0.931859f, 0.123202f, 0.80449f, 0.943757f, 0.363412f, 0.844419f, 0.987341f, 0.445451f, 0.184425f, 0.885213f, 0.12904f, 0.227998f, 0.857338f, 0.619134f, 0.0796953f, 0.603121f, 0.94235f, 0.157178f, 0.221489f, 0.358134f, 0.663804f, 0.108247f, 0.807823f, 0.975851f, 0.172652f, 0.688951f, 0.619695f, 0.152105f, 0.925419f, 0.426855f, 0.98555f, 0.999436f, 0.018817f, 0.789437f, 0.478625f, 0.750359f, 0.249799f, 0.00447455f, 0.220368f, 0.602763f, 0.0840897f, 0.38022f, 0.173056f, 0.3414f, 0.496965f, 0.317232f, 0.826596f, 0.171061f, 0.224177f, 0.93226f, 0.381889f, 0.37478f, 0.381204f, 0.925264f, 0.473476f, 0.590457f, 0.250811f, 0.531595f, 0.558642f, 0.023216f, 0.302092f, 0.726639f, 0.212013f, 0.979149f, 0.361128f, 0.33014f, 0.284158f, 0.271395f, 0.751215f, 0.51771f, 0.241838f, 0.906616f, 0.852835f, 0.690813f, 0.923208f, 0.533442f, 0.637914f, 0.672593f, 0.277868f, 0.0871473f, 0.443862f, 0.327002f, 0.653336f, 0.363183f, 0.638585f, 0.307927f, 0.875472f, 0.924286f, 0.440336f, 0.166823f, 0.74671f, 0.484405f, 0.473298f, 0.782216f, 0.18792f, 0.154303f, 0.658264f, 0.375911f, 0.258576f, 0.65102f, 0.352268f, 0.105328f, 0.689562f, 0.647228f, 0.958253f, 0.921509f, 0.320463f, 0.75973f, 0.516058f, 0.326907f, 0.398956f, 0.696665f, 0.386193f, 0.0330367f, 0.805989f, 0.461668f, 0.832142f, 0.482986f, 0.903818f, 0.758131f, 0.18437f, 0.85459f, 0.411093f, 0.197721f, 0.137124f, 0.818522f, 0.439978f, 0.918848f, 0.459881f, 0.905069f, 0.224842f, 0.172502f, 0.51133f, 0.45367f, 0.289531f, 0.922129f, 0.283209f, 0.859298f, 0.541385f, 0.186997f, 0.0963847f, 0.242027f, 0.317196f, 0.249943f, 0.956512f, 0.795562f, 0.447017f, 0.758737f, 0.597899f, 0.0678205f, 0.714589f, 0.450639f, 0.289431f, 0.121322f, 0.534766f, 0.0952377f, 0.612136f, 0.572657f, 0.260953f, 0.967063f, 0.837276f, 0.326271f, 0.22595f, 0.548158f, 0.948147f, 0.458449f, 0.164319f, 0.337362f, 0.640601f, 0.234542f, 0.6541f, 0.553137f, 0.437913f, 0.675261f, 0.826249f, 0.378051f, 0.299304f, 0.198478f, 0.979453f, 0.947471f, 0.213475f, 0.887924f, 0.323763f, 0.387056f, 0.59038f, 0.0878572f, 0.611317f, 0.939023f, 0.464749f, 0.884521f, 0.136075f, 0.308545f, 0.0501225f, 0.46804f, 0.656506f, 0.53156f, 0.185471f, 0.588786f, 0.866148f, 0.43435f, 0.25395f, 0.560148f, 0.365888f, 0.697416f, 0.684085f, 0.236197f, 0.858656f, 0.857796f, 0.772509f, 0.424949f, 0.980972f, 0.27236f, 0.31821f, 0.378948f, 0.302754f, 0.624945f, 0.375999f, 0.326303f, 0.904928f, 0.632524f, 0.0823725f, 0.967724f, 0.791641f, 0.774254f, 0.625037f, 0.213603f, 0.353812f, 0.0860418f, 0.751271f, 0.773454f, 0.00618982f, 0.67233f, 0.597448f, 0.393159f, 0.0497163f, 0.475396f, 0.566993f, 0.980683f, 0.288339f, 0.96918f, 0.884001f, 0.832028f, 0.144988f, 0.294111f, 0.49664f, 0.117055f, 0.259346f, 0.821602f, 0.061518f, 0.736345f, 0.425512f, 0.369898f, 0.211762f, 0.693884f, 0.676335f, 0.0152524f, 0.97211f, 0.0433982f, 0.366512f, 0.888694f, 0.955822f, 0.889153f, 0.0372125f, 0.21345f, 0.883083f, 0.242744f, 0.768975f, 0.853045f, 0.0945063f, 0.858629f, 0.799843f, 0.450901f, 0.446201f, 0.692674f, 0.115186f, 0.897038f, 0.850661f, 0.208599f, 0.157899f, 0.355117f, 0.555143f, 0.667026f, 0.00534716f, 0.358461f, 0.763451f, 0.669782f, 0.330498f, 0.189446f, 0.98289f, 0.450107f, 0.605622f, 0.161092f, 0.604846f, 0.337464f, 0.646855f, 0.910536f, 0.0654921f, 0.106992f, 0.40464f, 0.391736f, 0.851763f, 0.491897f, 0.402315f, 0.334675f, 0.084682f, 0.248078f, 0.961128f, 0.731344f, 0.565869f, 0.894578f, 0.519648f, 0.751937f, 0.44442f, 0.614476f, 0.407141f, 0.807049f, 0.620295f, 0.47751f, 0.0896978f, 0.0534998f, 0.522895f, 0.534609f, 0.395034f, 0.845148f, 0.254379f, 0.41921f, 0.656933f, 0.878164f, 0.578541f, 0.745261f, 0.57209f, 0.144998f, 0.417937f, 0.705993f, 0.653521f, 0.179933f, 0.267852f, 0.888023f, 0.202804f, 0.881854f, 0.733401f, 0.569979f, 0.965619f, 0.116868f, 0.765611f, 0.0117354f, 0.66067f, 0.184871f, 0.996124f, 0.22134f, 0.253103f, 0.614095f, 0.924677f, 0.479717f, 0.397747f, 0.460996f, 0.597254f, 0.982537f, 0.230638f, 0.802576f, 0.161248f, 0.967605f, 0.968063f, 0.90488f, 0.877759f, 0.581426f, 0.323351f, 0.891146f, 0.565997f, 0.42863f, 0.0265817f, 0.185198f, 0.433823f, 0.923209f, 0.616753f, 0.082132f, 0.797626f, 0.471495f, 0.601742f, 0.803097f, 0.935267f, 0.580271f, 0.85766f, 0.913317f, 0.452457f, 0.988367f, 0.784135f, 0.906452f, 0.085474f, 0.578816f, 0.305636f, 0.650333f, 0.879154f, 0.678051f, 0.00822624f, 0.102976f, 0.338909f, 0.446611f, 0.434003f, 0.570668f, 0.300273f, 0.483605f, 0.816909f, 0.758663f, 0.48808f, 0.55355f, 0.510856f, 0.984661f, 0.878827f, 0.605359f, 0.95541f, 0.531169f, 0.747942f, 0.963056f, 0.158588f, 0.446416f, 0.203324f, 0.733546f, 0.20617f, 0.693553f, 0.128812f, 0.250175f, 0.986887f, 0.869491f, 0.267422f, 0.223943f, 0.975318f, 0.415954f, 0.335685f, 0.834873f, 0.226776f, 0.721708f, 0.175894f, 0.434294f, 0.954723f, 0.373049f, 0.49672f, 0.236456f, 0.744485f, 0.495852f, 0.125034f, 0.834052f, 0.301719f, 0.446698f, 0.315242f, 0.888832f, 0.160571f, 0.345245f, 0.0832564f, 0.0767585f, 0.689498f, 0.957219f, 0.26761f, 0.968276f, 0.467476f, 0.920767f, 0.652193f, 0.845709f, 0.179733f, 0.387691f, 0.283818f, 0.672523f, 0.265497f, 0.907044f, 0.33555f, 0.89252f, 0.992113f, 0.640206f, 0.0964299f, 0.170263f, 0.723773f, 0.879968f, 0.554244f, 0.485016f, 0.840035f, 0.683328f, 0.660686f, 0.878358f, 0.897059f, 0.414904f, 0.756054f, 0.273302f, 0.822468f, 0.852035f, 0.651968f, 0.602582f, 0.946796f, 0.555171f, 0.669272f, 0.938815f, 0.197596f, 0.523584f, 0.573327f, 0.796545f, 0.937456f, 0.048061f, 0.544333f, 0.467184f, 0.430173f, 0.775402f, 0.952241f, 0.142089f, 0.629312f, 0.666139f, 0.0154637f, 0.759027f, 0.437917f, 0.58459f, 0.815763f, 0.966364f, 0.293571f, 0.872789f, 0.39528f, 0.744223f, 0.391567f, 0.839123f, 0.191041f, 0.542033f, 0.187362f, 0.80233f, 0.0946452f, 0.423851f, 0.972116f, 0.937188f, 0.499391f, 0.242787f, 0.205823f, 0.280878f, 0.131757f, 0.924721f, 0.688502f, 0.26433f, 0.558425f, 0.0342803f, 0.291342f, 0.493633f, 0.888612f, 0.46967f, 0.860545f, 0.154498f, 0.925012f, 0.1687f, 0.524462f, 0.998458f, 0.376503f, 0.440609f, 0.13213f, 0.186003f, 0.625476f, 0.854618f, 0.417362f, 0.954802f, 0.672711f, 0.230013f, 0.840147f, 0.198032f, 0.159848f, 0.799946f, 0.326989f, 0.822754f, 0.607978f, 0.33105f, 0.317631f, 0.0692817f, 0.597222f, 0.710338f, 0.656665f, 0.690403f, 0.691704f, 0.233809f, 0.680931f, 0.628137f, 0.299253f, 0.690258f, 0.74661f, 0.896513f, 0.939887f, 0.726954f, 0.7281f, 0.423418f, 0.350914f, 0.388573f, 0.0262691f, 0.111094f, 0.0155945f, 0.911295f, 0.253345f, 0.832734f, 0.329541f, 0.215786f, 0.794686f, 0.590766f, 0.103029f, 0.0678239f, 0.306235f, 0.214924f, 0.966952f, 0.942075f, 0.609991f, 0.902089f, 0.0930404f, 0.241278f, 0.979989f, 0.99641f, 0.835776f, 0.333605f, 0.239885f, 0.773994f, 0.905422f, 0.622631f, 0.132915f, 0.875424f, 0.997041f, 0.510196f, 0.0594318f, 0.566395f, 0.180253f, 0.168608f, 0.845103f, 0.278105f, 0.215273f, 0.54686f, 0.673526f, 0.216569f, 0.0567452f, 0.457604f, 0.52021f, 0.513327f, 0.898756f, 0.709734f, 0.552623f, 0.0439586f, 0.840305f, 0.792597f, 0.864871f, 0.835436f, 0.677993f, 0.658806f, 0.425473f, 0.19661f, 0.3182f, 0.00621336f, 0.661405f, 0.795435f, 0.930732f, 0.747833f, 0.183835f, 0.0501365f, 0.798479f, 0.620259f, 0.268471f, 0.797801f, 0.781326f, 0.324357f, 0.939805f, 0.0559456f, 0.767421f, 0.755513f, 0.0519764f, 0.132493f, 0.0248076f, 0.304857f, 0.841179f, 0.291624f, 0.368053f, 0.863488f, 0.92917f, 0.526666f, 0.373791f, 0.0771637f, 0.936361f, 0.0211384f, 0.0483962f, 0.247142f, 0.393017f, 0.322973f, 0.304369f, 0.351668f, 0.428691f, 0.831733f, 0.796247f, 0.252503f, 0.979405f, 0.53587f, 0.298145f, 0.766767f, 0.448849f, 0.586296f, 0.48682f, 0.0229408f, 0.971635f, 0.0476733f, 0.418205f, 0.736875f, 0.927284f, 0.334773f, 0.136525f, 0.249275f, 0.813632f, 0.583152f, 0.526065f, 0.358386f, 0.456534f, 0.542725f, 0.99574f, 0.188249f, 0.206639f, 0.816704f, 0.682333f, 0.344471f, 0.206846f, 0.233427f, 0.622954f, 0.0839815f, 0.0590858f, 0.163643f, 0.938242f, 0.925145f, 0.824585f, 0.850146f, 0.161545f, 0.650623f, 0.36668f, 0.726433f, 0.573498f, 0.118839f, 0.309652f, 0.875825f, 0.708539f, 0.3994f, 0.378292f, 0.346823f, 0.966397f, 0.0341669f, 0.748059f, 0.550583f, 0.885271f, 0.840168f, 0.712603f, 0.763671f, 0.118454f, 0.106439f, 0.663247f, 0.877381f, 0.710707f, 0.247122f, 0.438658f, 0.770922f, 0.474123f, 0.500763f, 0.315488f, 0.119231f, 0.652578f, 0.520729f, 0.468573f, 0.273246f, 0.992347f, 0.475993f, 0.239294f, 0.40192f, 0.815229f, 0.0236239f, 0.85648f, 0.697711f, 0.599634f, 0.775674f, 0.666996f, 0.944384f, 0.61399f, 0.168068f, 0.046793f, 0.651445f, 0.152846f, 0.191041f, 0.617886f, 0.145447f, 0.182264f, 0.821485f, 0.167448f, 0.563202f, 0.298918f, 0.63115f, 0.589014f, 0.635087f, 0.350239f, 0.0969615f, 0.664998f, 0.721069f, 0.55308f, 0.627465f, 0.858022f, 0.195475f, 0.233206f, 0.842556f, 0.844793f, 0.860757f, 0.460435f, 0.361283f, 0.428379f, 0.429536f, 0.982359f, 0.197429f, 0.520442f, 0.388261f, 0.544675f, 0.567665f, 0.417953f, 0.400498f, 0.987421f, 0.426966f, 0.574687f, 0.0727614f, 0.588935f, 0.40437f, 0.567111f, 0.764138f, 0.919409f, 0.49954f, 0.210881f, 0.0138897f, 0.807207f, 0.40468f, 0.926323f, 0.356926f, 0.686285f, 0.781897f, 0.0382501f, 0.870871f, 0.989177f, 0.022897f, 0.868981f, 0.72859f, 0.0963152f, 0.36607f, 0.158067f, 0.982238f, 0.921682f, 0.947472f, 0.746331f, 0.824697f, 0.834751f, 0.0741107f, 0.852303f, 0.0662244f, 0.0778359f, 0.859693f, 0.301823f, 0.40863f, 0.478555f, 0.261194f, 0.628854f, 0.563349f, 0.742922f, 0.631935f, 0.629782f, 0.481529f, 0.727923f, 0.558879f, 0.0496743f, 0.771751f, 0.635876f, 0.594351f, 0.496492f, 0.305198f, 0.386633f, 0.0511966f, 0.888565f, 0.0525001f, 0.0145788f, 0.969231f, 0.115474f, 0.858109f, 0.654224f, 0.409081f, 0.902949f, 0.0205533f, 0.373431f, 0.271492f, 0.783677f, 0.809073f, 0.176137f, 0.0683039f, 0.493189f, 0.487658f, 0.122231f, 0.183799f, 0.783245f, 0.317946f, 0.0118384f, 0.490967f, 0.177391f, 0.511249f, 0.438773f, 0.405479f, 0.456114f, 0.237934f, 0.424058f, 0.448476f, 0.992217f, 0.0793886f, 0.220207f, 0.890814f, 0.608875f, 0.384056f, 0.322394f, 0.114703f, 0.630404f, 0.500499f, 0.217064f, 0.011879f, 0.293389f, 0.0328165f, 0.0455728f, 0.163443f, 0.955574f, 0.647403f, 0.27716f, 0.615788f, 0.782945f, 0.7538f, 0.638152f, 0.271617f, 0.255083f, 0.706809f, 0.571695f, 0.771807f, 0.836542f, 0.000567578f, 0.264149f, 0.510301f, 0.103659f, 0.277211f, 0.810934f, 0.713591f, 0.847755f, 0.129939f, 0.191732f, 0.575733f, 0.427882f, 0.306037f, 0.798808f, 0.43265f, 0.570117f, 0.610907f, 0.371059f, 0.194394f, 0.869866f, 0.0980053f, 0.328966f, 0.583839f, 0.686702f, 0.450148f, 0.0825889f, 0.639514f, 0.934002f, 0.176331f, 0.870912f, 0.884921f, 0.892602f, 0.83422f, 0.332842f, 0.655451f, 0.995743f, 0.123723f, 0.0838874f, 0.0735535f, 0.328897f, 0.776021f, 0.663424f, 0.842025f, 0.165418f, 0.796723f, 0.994479f, 0.777982f, 0.988285f, 0.81751f, 0.232685f, 0.796556f, 0.134869f, 0.937736f, 0.730038f, 0.102924f, 0.797538f, 0.398124f, 0.2193f, 0.941041f, 0.178793f, 0.370095f, 0.456298f, 0.10271f, 0.88975f, 0.554706f, 0.938587f, 0.00952443f, 0.832839f, 0.614512f, 0.389695f, 0.338475f, 0.105779f, 0.030013f, 0.145834f, 0.979163f, 0.283427f, 0.982259f, 0.638209f, 0.502113f, 0.975792f, 0.258517f, 0.811306f, 0.888677f, 0.0226233f, 0.686223f, 0.281673f, 0.075892f, 0.380821f, 0.354112f, 0.739364f, 0.00326506f, 0.408601f, 0.838882f, 0.148927f, 0.588438f, 0.803971f, 0.861352f, 0.0281249f, 0.142082f, 0.980767f, 0.4727f, 0.318568f, 0.732069f, 0.767087f, 0.408185f, 0.275385f, 0.746653f, 0.302207f, 0.328272f, 0.980878f, 0.237112f, 0.279175f, 0.05732f, 0.949098f, 0.95211f, 0.41683f, 0.913593f, 0.585272f, 0.731422f, 0.831071f, 0.523386f, 0.2435f, 0.402443f, 0.96218f, 0.330094f, 0.506793f, 0.667463f, 0.0532463f, 0.384656f, 0.480892f, 0.907828f, 0.242703f, 0.62508f, 0.0628068f, 0.412704f, 0.859126f, 0.46665f, 0.839594f, 0.196547f, 0.885917f, 0.52919f, 0.845043f, 0.997674f, 0.742276f, 0.150465f, 0.312334f, 0.371924f, 0.823548f, 0.776735f, 0.933922f, 0.822807f, 0.488695f, 0.694652f, 0.841843f, 0.29865f, 0.216355f, 0.606901f, 0.811569f, 0.402505f, 0.469624f, 0.871989f, 0.410021f, 0.540256f, 0.459707f, 0.929718f, 0.490855f, 0.206233f, 0.100186f, 0.851738f, 0.35273f, 0.129216f, 0.0723206f, 0.800592f, 0.220906f, 0.71523f, 0.977059f, 0.957233f, 0.311989f, 0.477305f, 0.983293f, 0.403222f, 0.79318f, 0.680981f, 0.960544f, 0.346573f, 0.206157f, 0.724948f, 0.778475f, 0.485141f, 0.990731f, 0.86454f, 0.153972f, 0.274695f, 0.430869f, 0.0343598f, 0.396289f, 0.360719f, 0.935147f, 0.398451f, 0.552993f, 0.791499f, 0.726453f, 0.216642f, 0.33641f, 0.911936f, 0.98014f, 0.0752805f, 0.617927f, 0.641831f, 0.694679f, 0.528714f, 0.863448f, 0.943898f, 0.842945f, 0.457326f, 0.655613f, 0.617851f, 0.0624182f, 0.917751f, 0.153406f, 0.00703155f, 0.161815f, 0.161192f, 0.794526f, 0.611304f, 0.388697f, 0.375908f, 0.321482f, 0.46238f, 0.890841f, 0.726304f, 0.119445f, 0.45945f, 0.642372f, 0.27819f, 0.991807f, 0.903393f, 0.32075f, 0.256834f, 0.434594f, 0.795423f, 0.0743181f, 0.0985843f, 0.00851327f, 0.742762f, 0.580673f, 0.495459f, 0.752728f, 0.533136f, 0.0654414f, 0.876363f, 0.0468122f, 0.196566f, 0.61732f, 0.373321f, 0.188806f, 0.427122f, 0.488199f, 0.594674f, 0.560862f, 0.0124738f, 0.614262f, 0.487562f, 0.994964f, 0.54029f, 0.236196f, 0.936407f, 0.767081f, 0.802202f, 0.481116f, 0.371681f, 0.0662999f, 0.881687f, 0.0460712f, 0.638318f, 0.457029f, 0.957172f, 0.316483f, 0.620507f, 0.477535f, 0.196048f, 0.232071f, 0.0761495f, 0.484229f, 0.281814f, 0.918541f, 0.842766f, 0.645656f, 0.977852f, 0.253823f, 0.0163168f, 0.488694f, 0.719363f, 0.149927f, 0.907923f, 0.385506f, 0.447903f, 0.577078f, 0.865281f, 0.748615f, 0.825646f, 0.938315f, 0.583101f, 0.79978f, 0.786278f, 0.889857f, 0.616162f, 0.973753f, 0.123688f, 0.997866f, 0.197926f, 0.454422f, 0.134615f, 0.995783f, 0.0901228f, 0.372619f, 0.633932f, 0.573633f, 0.29503f, 0.40696f, 0.692533f, 0.418123f, 0.08999f, 0.621666f, 0.610839f, 0.319541f, 0.130944f, 0.863841f, 0.79175f, 0.387958f, 0.311667f, 0.314145f, 0.880035f, 0.195331f, 0.102769f, 0.077521f, 0.348547f, 0.778556f, 0.0351196f, 0.313872f, 0.619104f, 0.380903f, 0.166721f, 0.084808f, 0.238924f, 0.0855165f, 0.590484f, 0.303223f, 0.439155f, 0.388211f, 0.748415f, 0.599395f, 0.871233f, 0.551148f, 0.168111f, 0.341538f, 0.216981f, 0.589836f, 0.0111858f, 0.676537f, 0.880288f, 0.749203f, 0.718391f, 0.660749f, 0.475023f, 0.81667f, 0.41358f, 0.0460364f, 0.458593f, 0.636802f, 0.474983f, 0.435445f, 0.913075f, 0.755092f, 0.548132f, 0.761527f, 0.0540475f, 0.0404141f, 0.384099f, 0.962312f, 0.0894471f, 0.880373f, 0.907926f, 0.512747f, 0.892662f, 0.145532f, 0.211194f, 0.852958f, 0.277697f, 0.711003f, 0.40561f, 0.487462f, 0.93438f, 0.988322f, 0.657402f, 0.561201f, 0.700019f, 0.549434f, 0.622157f, 0.403026f, 0.694054f, 0.624761f, 0.0266026f, 0.661599f, 0.152754f, 0.548711f, 0.620303f, 0.693589f, 0.0947435f, 0.73273f, 0.272588f, 0.504322f, 0.756621f, 0.0512852f, 0.296373f, 0.858782f, 0.0012049f, 0.136039f, 0.726055f, 0.499283f, 0.609583f, 0.060158f, 0.516988f, 0.591727f, 0.127641f, 0.33049f, 0.107105f, 0.073845f, 0.147858f, 0.132661f, 0.879463f, 0.985763f, 0.164884f, 0.325925f, 0.183114f, 0.5153f, 0.275172f, 0.206799f, 0.953775f, 0.265559f, 0.667223f, 0.45182f, 0.630925f, 0.404591f, 0.30674f, 0.117535f, 0.437484f, 0.551694f, 0.980916f, 0.484019f, 0.34339f, 0.383797f, 0.777714f, 0.496557f, 0.104148f, 0.136362f, 0.496879f, 0.2592f, 0.842034f, 0.113755f, 0.934215f, 0.684111f, 0.297187f, 0.902223f, 0.623226f, 0.215905f, 0.111469f, 0.751581f, 0.404772f, 0.18181f, 0.0458085f, 0.9405f, 0.207297f, 0.936861f, 0.916877f, 0.511745f, 0.588955f, 0.081103f, 0.414922f, 0.827207f, 0.304441f, 0.367503f, 0.883934f, 0.941778f, 0.170289f, 0.781402f, 0.736297f, 0.755603f, 0.256458f, 0.140324f, 0.931026f, 0.226043f, 0.488777f, 0.532656f, 0.886382f, 0.0726266f, 0.00147335f, 0.967352f, 0.9559f, 0.0585412f, 0.368839f, 0.86124f, 0.355364f, 0.0318065f, 0.672371f, 0.34971f, 0.416424f, 0.804753f, 0.770332f, 0.422839f, 0.932511f, 0.78332f, 0.140325f, 0.520752f, 0.687964f, 0.590559f, 0.27232f, 0.564823f, 0.470769f, 0.791079f, 0.538737f, 0.0750123f, 0.322227f, 0.24511f, 0.158453f, 0.781853f, 0.736341f, 0.782021f, 0.413774f, 0.794788f, 0.103546f, 0.660628f, 0.712196f, 0.123067f, 0.438179f, 0.417233f, 0.539498f, 0.924306f, 0.597289f, 0.0455687f, 0.995272f, 0.33533f, 0.576448f, 0.553769f, 0.404858f, 0.148773f, 0.985233f, 0.0603152f, 0.149942f, 0.891444f, 0.527585f, 0.793543f, 0.428866f, 0.31304f, 0.070286f, 0.957161f, 0.642738f, 0.355503f, 0.99813f, 0.638407f, 0.591191f, 0.760062f, 0.389171f, 0.612085f, 0.540977f, 0.216573f, 0.379186f, 0.246497f, 0.950577f, 0.976035f, 0.00247349f, 0.416511f, 0.705125f, 0.659157f, 0.202592f, 0.94161f, 0.536315f, 0.375576f, 0.575986f, 0.474521f, 0.220533f, 0.81084f, 0.70606f, 0.378051f, 0.644783f, 0.509928f, 0.189258f, 0.903192f, 0.926658f, 0.229202f, 0.530374f, 0.755699f, 0.935052f, 0.75209f, 0.42277f, 0.307052f, 0.744172f, 0.414551f, 0.601431f, 0.203123f, 0.970106f, 0.447853f, 0.774443f, 0.550283f, 0.531463f, 0.454428f, 0.624175f, 0.80451f, 0.0122733f, 0.984326f, 0.77515f, 0.860882f, 0.00545328f, 0.644511f, 0.513259f, 0.256793f, 0.424406f, 0.480532f, 0.55194f, 0.858007f, 0.867714f, 0.618724f, 0.0617085f, 0.215776f, 0.63076f, 0.53226f, 0.260894f, 0.98903f, 0.119926f, 0.310574f, 0.573305f, 0.905882f, 0.0615376f, 0.220883f, 0.192277f, 0.461793f, 0.39844f, 0.4698f, 0.68659f, 0.164087f, 0.559168f, 0.188446f, 0.0603457f, 0.0778744f, 0.0692135f, 0.306004f, 0.996223f, 0.482311f, 0.14447f, 0.5473f, 0.578195f, 0.0243164f, 0.268366f, 0.853925f, 0.741338f, 0.510542f, 0.787791f, 0.342535f, 0.46082f, 0.695999f, 0.300268f, 0.35698f, 0.085459f, 0.620649f, 0.508802f, 0.977806f, 0.14818f, 0.771428f, 0.692267f, 0.638859f, 0.821941f, 0.474646f, 0.819243f, 0.053599f, 0.0805181f, 0.622247f, 0.249756f, 0.160091f, 0.339989f, 0.572766f, 0.701115f, 0.373954f, 0.402776f, 0.516323f, 0.862228f, 0.600366f, 0.856622f, 0.670096f, 0.017159f, 0.505392f, 0.0971802f, 0.634215f, 0.798549f, 0.836786f, 0.878541f, 0.782955f, 0.610123f, 0.800318f, 0.742984f, 0.792854f, 0.858895f, 0.530985f, 0.201989f, 0.614193f, 0.250036f, 0.0329096f, 0.541469f, 0.314625f, 0.267206f, 0.535112f, 0.756444f, 0.525629f, 0.569525f, 0.128482f, 0.504332f, 0.961639f, 0.451456f, 0.542839f, 0.676709f, 0.388083f, 0.967815f, 0.28566f, 0.575298f, 0.199581f, 0.503048f, 0.91344f, 0.534635f, 0.0923399f, 0.216477f, 0.766435f, 0.625943f, 0.188939f, 0.166453f, 0.675521f, 0.107427f, 0.525369f, 0.392974f, 0.71329f, 0.053587f, 0.716162f, 0.719565f, 0.318373f, 0.722562f, 0.133746f, 0.518253f, 0.653409f, 0.239526f, 0.677378f, 0.337883f, 0.059063f, 0.103771f, 0.565242f, 0.219584f, 0.667821f, 0.823601f, 0.0941707f, 0.775054f, 0.193914f, 0.068389f, 0.758509f, 0.159793f, 0.167676f, 0.25734f, 0.933402f, 0.965449f, 0.470546f, 0.3762f, 0.816548f, 0.800427f, 0.837739f, 0.373602f, 0.336122f, 0.945839f, 0.520147f, 0.593223f, 0.932222f, 0.317687f, 0.0448492f, 0.661502f, 0.678291f, 0.0185625f, 0.43597f, 0.171614f, 0.650499f, 0.23122f, 0.788721f, 0.691268f, 0.38924f, 0.765713f, 0.368306f, 0.027837f, 0.330792f, 0.404094f, 0.548701f, 0.160988f, 0.793108f, 0.150796f, 0.0184224f, 0.726547f, 0.262104f, 0.854258f, 0.931108f, 0.286701f, 0.131018f, 0.282084f, 0.519234f, 0.131277f, 0.677196f, 0.765588f, 0.0170084f, 0.870373f, 0.949925f, 0.344269f, 0.106134f, 0.284501f, 0.117467f, 0.571933f, 0.278027f, 0.830683f, 0.794426f, 0.802415f, 0.682303f, 0.248905f, 0.603236f, 0.530809f, 0.420478f, 0.569727f, 0.973215f, 0.317705f, 0.52998f, 0.42522f, 0.856434f, 0.775098f, 0.612858f, 0.348566f, 0.246178f, 0.498915f, 0.202352f, 0.607909f, 0.0290249f, 0.605622f, 0.598653f, 0.319962f, 0.362838f, 0.981371f, 0.570996f, 0.872617f, 0.638643f, 0.760747f, 0.172332f, 0.697107f, 0.396599f, 0.331669f, 0.534245f, 0.980304f, 0.438336f, 0.939648f, 0.951851f, 0.243193f, 0.263216f, 0.346751f, 0.352664f, 0.565522f, 0.522972f, 0.648305f, 0.569183f, 0.619839f, 0.791415f, 0.191347f, 0.596297f, 0.859243f, 0.281288f, 0.231212f, 0.93154f, 0.321489f, 0.192133f, 0.153875f, 0.101907f, 0.930146f, 0.0104959f, 0.130838f, 0.74774f, 0.977053f, 0.321188f, 0.430843f, 0.189028f, 0.555248f, 0.877483f, 0.00888616f, 0.455066f, 0.0837809f, 0.949844f, 0.844458f, 0.557468f, 0.12781f, 0.853863f, 0.933043f, 0.53722f, 0.289994f, 0.740046f, 0.0865591f, 0.513104f, 0.978469f, 0.187784f, 0.703587f, 0.0206445f, 0.977205f, 0.865323f, 0.374663f, 0.276854f, 0.0620759f, 0.210361f, 0.253033f, 0.569303f, 0.899107f, 0.84108f, 0.437966f, 0.872324f, 0.907059f, 0.0545911f, 0.643914f, 0.818937f, 0.651434f, 0.819382f, 0.0167287f, 0.745918f, 0.956177f, 0.212305f, 0.108908f, 0.377741f, 0.930721f, 0.54714f, 0.0650606f, 0.171071f, 0.783276f, 0.976184f, 0.433602f, 0.852014f, 0.0186597f, 0.159334f, 0.252568f, 0.742758f, 0.677328f, 0.656731f, 0.535654f, 0.67263f, 0.330072f, 0.179511f, 0.429737f, 0.722825f, 0.0859345f, 0.15145f, 0.318227f, 0.776601f, 0.591421f, 0.205821f, 0.251174f, 0.845826f, 0.296537f, 0.438482f, 0.567676f, 0.508687f, 0.73799f, 0.91896f, 0.84002f, 0.63714f, 0.795617f, 0.945293f, 0.660635f, 0.720161f, 0.642968f, 0.713816f, 0.982925f, 0.0943227f, 0.446776f, 0.233126f, 0.686313f, 0.252798f, 0.614421f, 0.407957f, 0.564496f, 0.198181f, 0.352621f, 0.03432f, 0.784207f, 0.103678f, 0.741437f, 0.652841f, 0.691829f, 0.368661f, 0.412088f, 0.633289f, 0.550927f, 0.605668f, 0.409671f, 0.276473f, 0.801483f, 0.0601193f, 0.479828f, 0.525028f, 0.995852f, 0.484342f, 0.5934f, 0.973162f, 0.167221f, 0.701611f, 0.503665f, 0.210718f, 0.849848f, 0.0729654f, 0.552033f, 0.907674f, 0.541271f, 0.20123f, 0.219367f, 0.396734f, 0.910584f, 0.389428f, 0.308437f, 0.678582f, 0.7795f, 0.62043f, 0.717345f, 0.897138f, 0.955562f, 0.0458908f, 0.203156f, 0.502305f, 0.661072f, 0.720254f, 0.691286f, 0.189975f, 0.517452f, 0.700525f, 0.473886f, 0.308164f, 0.258712f, 0.500066f, 0.978486f, 0.070673f, 0.982826f, 0.996819f, 0.992306f, 0.750977f, 0.603368f, 0.509356f, 0.596632f, 0.711075f, 0.901693f, 0.631545f, 0.74325f, 0.0678517f, 0.472053f, 0.80544f, 0.332577f, 0.52847f, 0.784145f, 0.929382f, 0.408199f, 0.37805f, 0.9085f, 0.989946f, 0.230063f, 0.756818f, 0.456959f, 0.564848f, 0.837682f, 0.606645f, 0.826045f, 0.764971f, 0.4254f, 0.255228f, 0.176442f, 0.541592f, 0.0383729f, 0.216528f, 0.480499f, 0.00584255f, 0.552458f, 0.173364f, 0.392994f, 0.782133f, 0.937217f, 0.0818183f, 0.129732f, 0.661808f, 0.278623f, 0.42883f, 0.113099f, 0.78603f, 0.850019f, 0.878083f, 0.0210051f, 0.718046f, 0.645013f, 0.134954f, 0.367119f, 0.907327f, 0.749089f, 0.201227f, 0.947814f, 0.429924f, 0.344656f, 0.920301f, 0.54574f, 0.0873397f, 0.161313f, 0.212593f, 0.670147f, 0.828216f, 0.40527f, 0.270828f, 0.684729f, 0.00894568f, 0.017525f, 0.857584f, 0.831911f, 0.355444f, 0.0885186f, 0.16125f, 0.219739f, 0.083562f, 0.225856f, 0.642688f, 0.959339f, 0.585117f, 0.313103f, 0.942706f, 0.47125f, 0.04174f, 0.868185f, 0.691651f, 0.115435f, 0.858834f, 0.070767f, 0.656556f, 0.278267f, 0.943871f, 0.636004f, 0.62193f, 0.760602f, 0.141458f, 0.301863f, 0.878847f, 0.260272f, 0.436808f, 0.549506f, 0.522095f, 0.842824f, 0.622312f, 0.0894913f, 0.536627f, 0.57376f, 0.507491f, 0.267119f, 0.646091f, 0.641091f, 0.566119f, 0.437834f, 0.615521f, 0.790321f, 0.780238f, 0.0306823f, 0.324406f, 0.148009f, 0.129943f, 0.826998f, 0.407336f, 0.381937f, 0.253466f, 0.270639f, 0.948253f, 0.750944f, 0.307795f, 0.973567f, 0.413926f, 0.0101885f, 0.998211f, 0.962249f, 0.622416f, 0.0710249f, 0.0819806f, 0.0743988f, 0.84601f, 0.691164f, 0.685333f, 0.668754f, 0.675898f, 0.765744f, 0.793243f, 0.867064f, 0.922397f, 0.363611f, 0.3963f, 0.76194f, 0.0416252f, 0.865838f, 0.427631f, 0.821304f, 0.0332679f, 0.632924f, 0.0972608f, 0.584571f, 0.890572f, 0.0833811f, 0.0501982f, 0.415017f, 0.581504f, 0.37737f, 0.716057f, 0.137826f, 0.37492f, 0.569505f, 0.153757f, 0.233306f, 0.197997f, 0.307718f, 0.777254f, 0.211829f, 0.551106f, 0.732888f, 0.836681f, 0.0774476f, 0.720612f, 0.0758478f, 0.706555f, 0.497854f, 0.171229f, 0.376935f, 0.349104f, 0.146891f, 0.269855f, 0.128086f, 0.260694f, 0.860494f, 0.383145f, 0.82853f, 0.190987f, 0.550705f, 0.0653792f, 0.487985f, 0.306168f, 0.401766f, 0.578184f, 0.59628f, 0.538351f, 0.820714f, 0.173859f, 0.880567f, 0.00212733f, 0.377413f, 0.81118f, 0.0260755f, 0.229782f, 0.620876f, 0.904938f, 0.782493f, 0.181994f, 0.30039f, 0.846472f, 0.370099f, 0.777706f, 0.220626f, 0.709231f, 0.550022f, 0.302602f, 0.34935f, 0.213974f, 0.782877f, 0.345519f, 0.233449f, 0.840186f, 0.242156f, 0.529018f, 0.518134f, 0.212812f, 0.398608f, 0.787973f, 0.0135168f, 0.478868f, 0.833135f, 0.692261f, 0.916571f, 0.448403f, 0.720458f, 0.969085f, 0.775502f, 0.190532f, 0.199317f, 0.486771f, 0.839715f, 0.975533f, 0.707038f, 0.629707f, 0.554501f, 0.951124f, 0.722807f, 0.780159f, 0.178306f, 0.826408f, 0.769103f, 0.674648f, 0.531527f, 0.501066f, 0.294615f, 0.26425f, 0.104227f, 0.779103f, 0.188097f, 0.251246f, 0.678221f, 0.323596f, 0.924817f, 0.478126f, 0.698434f, 0.666344f, 0.728313f, 0.804891f, 0.105832f, 0.702245f, 0.127214f, 0.361724f, 0.231855f, 0.533985f, 0.390546f, 0.147519f, 0.130404f, 0.101021f, 0.175344f, 0.900074f, 0.0690384f, 0.839916f, 0.298388f, 0.868831f, 0.253131f, 0.770954f, 0.0973254f, 0.0810165f, 0.0360158f, 0.480229f, 0.554621f, 0.0664773f, 0.910996f, 0.493534f, 0.451332f, 0.0733803f, 0.590965f, 0.83281f, 0.95637f, 0.301041f, 0.195014f, 0.600048f, 0.377172f, 0.12934f, 0.152917f, 0.24745f, 0.193457f, 0.499116f, 0.908873f, 0.301171f, 0.272838f, 0.381785f, 0.62267f, 0.97932f, 0.794863f, 0.907003f, 0.471885f, 0.603262f, 0.736802f, 0.876966f, 0.667812f, 0.340376f, 0.788925f, 0.889081f, 0.624403f, 0.329373f, 0.289359f, 0.85086f, 0.484386f, 0.667459f, 0.881724f, 0.7047f, 0.30936f, 0.712072f, 0.803781f, 0.0873292f, 0.256712f, 0.681333f, 0.794373f, 0.836645f, 0.227533f, 0.449342f, 0.578331f, 0.359461f, 0.951998f, 0.349693f, 0.733305f, 0.212919f, 0.56575f, 0.490442f, 0.734411f, 0.801308f, 0.323216f, 0.925937f, 0.932465f, 0.702191f, 0.689425f, 0.548882f, 0.671576f, 0.499659f, 0.989929f, 0.212353f, 0.348017f, 0.84331f, 0.834755f, 0.278097f, 0.897702f, 0.941198f, 0.91133f, 0.00614004f, 0.238388f, 0.448227f, 0.618809f, 0.138466f, 0.388041f, 0.457745f, 0.742009f, 0.70753f, 0.320637f, 0.329873f, 0.752051f, 0.689848f, 0.810418f, 0.659539f, 0.119535f, 0.422586f, 0.330316f, 0.129902f, 0.69991f, 0.25556f, 0.989403f, 0.762385f, 0.655517f, 0.926823f, 0.186008f, 0.471091f, 0.581717f, 0.116584f, 0.111205f, 0.521409f, 0.0395977f, 0.336983f, 0.818073f, 0.714302f, 0.148646f, 0.272808f, 0.838615f, 0.153176f, 0.168221f, 0.558182f, 0.82624f, 0.937945f, 0.248246f, 0.843212f, 0.664871f, 0.308959f, 0.691776f, 0.203333f, 0.446136f, 0.298831f, 0.172589f, 0.601197f, 0.61045f, 0.326337f, 0.270748f, 0.263793f, 0.652502f, 0.901041f, 0.995958f, 0.586851f, 0.512593f, 0.219412f, 0.438089f, 0.31753f, 0.0161652f, 0.0827927f, 0.535625f, 0.365465f, 0.670418f, 0.113629f, 0.682373f, 0.126157f, 0.535467f, 0.141072f, 0.718386f, 0.372858f, 0.44713f, 0.417665f, 0.57813f, 0.619787f, 0.416969f, 0.465585f, 0.737977f, 0.234892f, 0.0967611f, 0.824322f, 0.189961f, 0.243761f, 0.255116f, 0.620698f, 0.307735f, 0.211343f, 0.167206f, 0.324388f, 0.789726f, 0.714917f, 0.278007f, 0.246024f, 0.111303f, 0.0926666f, 0.465172f, 0.277434f, 0.942427f, 0.000364714f, 0.296953f, 0.528964f, 0.120688f, 0.779078f, 0.435304f, 0.396874f, 0.819971f, 0.816767f, 0.807546f, 0.695585f, 0.587133f, 0.0793149f, 0.672106f, 0.126437f, 0.290589f, 0.572299f, 0.954352f, 0.137102f, 0.0322239f, 0.160362f, 0.098661f, 0.261525f, 0.693996f, 0.765613f, 0.0906752f, 0.560577f, 0.298069f, 0.0358857f, 0.208007f, 0.30035f, 0.314611f, 0.0822887f, 0.43365f, 0.432997f, 0.294052f, 0.461014f, 0.289126f, 0.527946f, 0.55843f, 0.707958f, 0.989021f, 0.67065f, 0.31208f, 0.882033f, 0.356563f, 0.143575f, 0.39391f, 0.989768f, 0.670452f, 0.191913f, 0.862726f, 0.209854f, 0.22389f, 0.386431f, 0.943268f, 0.211982f, 0.400653f, 0.819452f, 0.137472f, 0.212021f, 0.34023f, 0.902901f, 0.236404f, 0.358529f, 0.398488f, 0.731032f, 0.0810002f, 0.68721f, 0.761582f, 0.536575f, 0.0791034f, 0.912254f, 0.941131f, 0.179732f, 0.405205f, 0.326498f, 0.388041f, 0.738087f, 0.0453206f, 0.850094f, 0.990425f, 0.562124f, 0.528829f, 0.669991f, 0.269767f, 0.651324f, 0.076527f, 0.471104f, 0.944213f, 0.76615f, 0.864152f, 0.221544f, 0.13444f, 0.744768f, 0.66061f, 0.853453f, 0.243712f, 0.662378f, 0.831419f, 0.279089f, 0.723714f, 0.673407f, 0.322496f, 0.249414f, 0.0808028f, 0.669178f, 0.129126f, 0.225351f, 0.80709f, 0.932651f, 0.946436f, 0.312796f, 0.619974f, 0.750565f, 0.471067f, 0.109912f, 0.494185f, 0.0164315f, 0.819836f, 0.538484f, 0.58588f, 0.701269f, 0.256867f, 0.398663f, 0.751361f, 0.216873f, 0.569277f, 0.305113f, 0.413615f, 0.708337f, 0.897865f, 0.99918f, 0.00804f, 0.0130421f, 0.13172f, 0.880096f, 0.771592f, 0.659678f, 0.61829f, 0.842695f, 0.876267f, 0.0873269f, 0.388796f, 0.62127f, 0.403993f, 0.0521579f, 0.795213f, 0.554273f, 0.494142f, 0.0852959f, 0.0147486f, 0.68282f, 0.725617f, 0.59583f, 0.361159f, 0.263347f, 0.902028f, 0.371777f, 0.171678f, 0.129875f, 0.836056f, 0.533855f, 0.435758f, 0.179898f, 0.0617481f, 0.634131f, 0.432243f, 0.537918f, 0.264819f, 0.490502f, 0.502087f, 0.261294f, 0.460881f, 0.796605f, 0.685365f, 0.73922f, 0.414836f, 0.13934f, 0.335801f, 0.928842f, 0.128643f, 0.690233f, 0.931754f, 0.589909f, 0.0521498f, 0.357284f, 0.215132f, 0.12519f, 0.667059f, 0.741028f, 0.858196f, 0.250268f, 0.931752f, 0.226455f, 0.0926751f, 0.900977f, 0.72546f, 0.128732f, 0.395859f, 0.383374f, 0.145999f, 0.255524f, 0.908561f, 0.0880098f, 0.687142f, 0.435483f, 0.376106f, 0.047316f, 0.453296f, 0.704014f, 0.682668f, 0.957836f, 0.861988f, 0.0790265f, 0.859532f, 0.812038f, 0.424282f, 0.386979f, 0.717574f, 0.879845f, 0.690133f, 0.038615f, 0.651056f, 0.145131f, 0.365493f, 0.0344689f, 0.408053f, 0.66932f, 0.438042f, 0.226078f, 0.600565f, 0.448246f, 0.132582f, 0.582608f, 0.259319f, 0.724597f, 0.698481f, 0.391032f, 0.318994f, 0.767922f, 0.48811f, 0.528084f, 0.499119f, 0.867388f, 0.2441f, 0.039396f, 0.54157f, 0.618235f, 0.462272f, 0.516772f, 0.566249f, 0.386605f, 0.444759f, 0.907246f, 0.763911f, 0.785003f, 0.322037f, 0.318618f, 0.359412f, 0.398723f, 0.863641f, 0.0867606f, 0.852835f, 0.176591f, 0.920423f, 0.141677f, 0.52492f, 0.658256f, 0.75469f, 0.164688f, 0.10115f, 0.977233f, 0.163985f, 0.501142f, 0.339944f, 0.572064f, 0.259706f, 0.934196f, 0.132286f, 0.159633f, 0.478493f, 0.340137f, 0.777931f, 0.768235f, 0.587262f, 0.183898f, 0.0847388f, 0.655122f, 0.399469f, 0.688903f, 0.758979f, 0.463119f, 0.191444f, 0.413135f, 0.592141f, 0.215283f, 0.966305f, 0.274424f, 0.959315f, 0.863006f, 0.514405f, 0.512454f, 0.273139f, 0.418159f, 0.0225537f, 0.616309f, 0.0102618f, 0.777998f, 0.736739f, 0.588183f, 0.174512f, 0.00154778f, 0.809377f, 0.841374f, 0.597238f, 0.162157f, 0.644668f, 0.893445f, 0.564681f, 0.245195f, 0.773268f, 0.402547f, 0.409795f, 0.573206f, 0.873709f, 0.9881f, 0.23034f, 0.344563f, 0.174986f, 0.311645f, 0.786533f, 0.271418f, 0.771397f, 0.162902f, 0.426276f, 0.267799f, 0.373866f, 0.123405f, 0.870209f, 0.714825f, 0.00543591f, 0.0400893f, 0.780131f, 0.241383f, 0.0701372f, 0.91969f, 0.690341f, 0.135406f, 0.329318f, 0.379639f, 0.50552f, 0.109923f, 0.909374f, 0.316821f, 0.711275f, 0.620121f, 0.0197481f, 0.643886f, 0.0958327f, 0.414528f, 0.922054f, 0.0507135f, 0.272248f, 0.902437f, 0.0705583f, 0.0356929f, 0.68747f, 0.462343f, 0.0628224f, 0.975121f, 0.985913f, 0.867299f, 0.575736f, 0.812543f, 0.846538f, 0.370523f, 0.488339f, 0.264663f, 0.451796f, 0.405147f, 0.622412f, 0.823059f, 0.866325f, 0.798976f, 0.532499f, 0.494897f, 0.436404f, 0.0862593f, 0.95266f, 0.35852f, 0.834699f, 0.0143271f, 0.162523f, 0.863941f, 0.136128f, 0.101709f, 0.384516f, 0.0672405f, 0.235785f, 0.345931f, 0.480923f, 0.108362f, 0.688198f, 0.663375f, 0.0442804f, 0.793499f, 0.250479f, 0.84077f, 0.547606f, 0.607305f, 0.945874f, 0.94773f, 0.101684f, 0.355956f, 0.898357f, 0.370004f, 0.899053f, 0.597031f, 0.446462f, 0.636742f, 0.202748f, 0.166338f, 0.1694f, 0.66574f, 0.620938f, 0.106766f, 0.0254695f, 0.220305f, 0.678259f, 0.354764f, 0.483237f, 0.935125f, 0.0618308f, 0.76038f, 0.24248f, 0.895524f, 0.207504f, 0.982442f, 0.246557f, 0.767985f, 0.168583f, 0.488733f, 0.255555f, 0.314345f, 0.97827f, 0.0474358f, 0.550337f, 0.374238f, 0.990384f, 0.11637f, 0.558007f, 0.553717f, 0.101164f, 0.128323f, 0.826148f, 0.686183f, 0.632341f, 0.442759f, 0.213565f, 0.305745f, 0.980627f, 0.611632f, 0.821573f, 0.164835f, 0.800218f, 0.136598f, 0.0943636f, 0.613361f, 0.749911f, 0.19825f, 0.315868f, 0.584715f, 0.340269f, 0.681216f, 0.628213f, 0.739377f, 0.498469f, 0.217486f, 0.875165f, 0.107256f, 0.0388254f, 0.684437f, 0.648387f, 0.759068f, 0.0863455f, 0.0356647f, 0.475533f, 0.457221f, 0.814866f, 0.155224f, 0.159775f, 0.225762f, 0.844223f, 0.887599f, 0.0328769f, 0.882558f, 0.43301f, 0.891047f, 0.641237f, 0.436625f, 0.506043f, 0.412549f, 0.294326f, 0.00107597f, 0.198905f, 0.823397f, 0.258908f, 0.640055f, 0.114144f, 0.94769f, 0.68169f, 0.0611514f, 0.934918f, 0.594428f, 0.559658f, 0.651315f, 0.783615f, 0.881746f, 0.413528f, 0.462815f, 0.830706f, 0.327034f, 0.699745f, 0.898011f, 0.532332f, 0.502941f, 0.178127f, 0.582383f, 0.946175f, 0.252039f, 0.197491f, 0.21839f, 0.304603f, 0.783971f, 0.643806f, 0.4803f, 0.145688f, 0.779963f, 0.181941f, 0.797857f, 0.840552f, 0.415948f, 0.782541f, 0.514972f, 0.433902f, 0.198357f, 0.534732f, 0.457025f, 0.133016f, 0.447026f, 0.414561f, 0.583342f, 0.0479735f, 0.85276f, 0.523466f, 0.111548f, 0.88397f, 0.62687f, 0.69954f, 0.0883176f, 0.962754f, 0.624452f, 0.850527f, 0.0484547f, 0.451703f, 0.0884455f, 0.480931f, 0.0402721f, 0.390394f, 0.313574f, 0.515101f, 0.233129f, 0.526889f, 0.24189f, 0.10573f, 0.810232f, 0.297812f, 0.269022f, 0.0505037f, 0.860077f, 0.55559f, 0.834222f, 0.575633f, 0.021159f, 0.849752f, 0.740829f, 0.558883f, 0.736135f, 0.465014f, 0.825803f, 0.581932f, 0.0871889f, 0.986642f, 0.832284f, 0.38697f, 0.765759f, 0.899416f, 0.843232f, 0.531267f, 0.433739f, 0.966289f, 0.846241f, 0.00426384f, 0.95494f, 0.353395f, 0.39295f, 0.620015f, 0.451371f, 0.476604f, 0.187976f, 0.171317f, 0.420016f, 0.192102f, 0.773659f, 0.91198f, 0.608269f, 0.170778f, 0.341426f, 0.661402f, 0.424353f, 0.6424f, 0.896002f, 0.61916f, 0.529042f, 0.891919f, 0.91544f, 0.237337f, 0.547919f, 0.167059f, 0.463118f, 0.509404f, 0.397028f, 0.0424441f, 0.279269f, 0.033374f, 0.381536f, 0.26654f, 0.909158f, 0.0750624f, 0.476824f, 0.10118f, 0.903691f, 0.0563105f, 0.380574f, 0.113715f, 0.379801f, 0.165381f, 0.242048f, 0.930619f, 0.730273f, 0.105671f, 0.248541f, 0.0594918f, 0.054523f, 0.529601f, 0.642662f, 0.76983f, 0.482375f, 0.594625f, 0.135894f, 0.699304f, 0.241644f, 0.958944f, 0.178967f, 0.904528f, 0.683951f, 0.101332f, 0.912811f, 0.616354f, 0.202038f, 0.050257f, 0.590397f, 0.566977f, 0.726602f, 0.937506f, 0.802981f, 0.0549501f, 0.673011f, 0.583607f, 0.881868f, 0.996313f, 0.763281f, 0.376004f, 0.736794f, 0.885829f, 0.377308f, 0.647416f, 0.222001f, 0.899687f, 0.000399166f, 0.785371f, 0.706067f, 0.419677f, 0.331527f, 0.913849f, 0.287799f, 0.863842f, 0.394116f, 0.252452f, 0.50452f, 0.721638f, 0.315363f, 0.857111f, 0.128289f, 0.321032f, 0.899571f, 0.013474f, 0.387252f, 0.773403f, 0.996704f, 0.999318f, 0.436876f, 0.83472f, 0.166456f, 0.312107f, 0.434034f, 0.0173215f, 0.507042f, 0.529282f, 0.21992f, 0.940103f, 0.57176f, 0.210635f, 0.271865f, 0.368036f, 0.378554f, 0.933001f, 0.22344f, 0.268014f, 0.332343f, 0.773332f, 0.607381f, 0.452452f, 0.346824f, 0.437242f, 0.751531f, 0.631105f, 0.646027f, 0.113901f, 0.372686f, 0.710771f, 0.877413f, 0.804387f, 0.627982f, 0.0816407f, 0.759812f, 0.785542f, 0.76272f, 0.585159f, 0.539945f, 0.534011f, 0.907124f, 0.514477f, 0.0602369f, 0.859823f, 0.0983746f, 0.604961f, 0.33828f, 0.0922718f, 0.833016f, 0.934691f, 0.237954f, 0.183435f, 0.425417f, 0.410531f, 0.912271f, 0.282749f, 0.592619f, 0.120565f, 0.603792f, 0.0200075f, 0.66565f, 0.779393f, 0.656786f, 0.0482675f, 0.400373f, 0.25322f, 0.15115f, 0.457793f, 0.416774f, 0.0140241f, 0.14431f, 0.348996f, 0.406658f, 0.854026f, 0.587938f, 0.676665f, 0.303858f, 0.421046f, 0.871677f, 0.488381f, 0.145231f, 0.329375f, 0.330104f, 0.265049f, 0.646151f, 0.321822f, 0.692473f, 0.641129f, 0.962209f, 0.289868f, 0.564468f, 0.743103f, 0.796955f, 0.549788f, 0.294766f, 0.634667f, 0.912357f, 0.0590331f, 0.0826667f, 0.590767f, 0.125625f, 0.625491f, 0.800706f, 0.813995f, 0.234459f, 0.564327f, 0.413291f, 0.68746f, 0.186044f, 0.206155f, 0.667765f, 0.498724f, 0.791174f, 0.864356f, 0.118522f, 0.0642801f, 0.111739f, 0.417754f, 0.83959f, 0.988943f, 0.120211f, 0.479872f, 0.941327f, 0.559271f, 0.578378f, 0.779107f, 0.678067f, 0.461335f, 0.127909f, 0.221766f, 0.857017f, 0.234974f, 0.5312f, 0.435006f, 0.307173f, 0.10292f, 0.833312f, 0.459131f, 0.438498f, 0.0272183f, 0.946388f, 0.754151f, 0.718232f, 0.705287f, 0.77261f, 0.0954795f, 0.709051f, 0.660344f, 0.876939f, 0.757057f, 0.953471f, 0.794308f, 0.0782602f, 0.619402f, 0.735706f, 0.629598f, 0.603956f, 0.273298f, 0.0906271f, 0.180643f, 0.875974f, 0.469385f, 0.0172323f, 0.516847f, 0.594435f, 0.483427f, 0.161724f, 0.694752f, 0.660991f, 0.958244f, 0.713839f, 0.232535f, 0.642906f, 0.453343f, 0.0259699f, 0.668546f, 0.979621f, 0.412286f, 0.351582f, 0.521411f, 0.222158f, 0.0362529f, 0.432446f, 0.626985f, 0.539545f, 0.406467f, 0.913475f, 0.843376f, 0.967379f, 0.202197f, 0.94961f, 0.11005f, 0.668596f, 0.0677949f, 0.1737f, 0.720505f, 0.220703f, 0.550035f, 0.770747f, 0.855581f, 0.607484f, 0.690045f, 0.507089f, 0.121695f, 0.634992f, 0.594639f, 0.0290535f, 0.263052f, 0.297266f, 0.455815f, 0.99085f, 0.44507f, 0.114915f, 0.888266f, 0.0216848f, 0.120336f, 0.973144f, 0.872735f, 0.992345f, 0.927404f, 0.156868f, 0.73961f, 0.184074f, 0.859208f, 0.64004f, 0.302357f, 0.291901f, 0.106613f, 0.132052f, 0.894399f, 0.269791f, 0.450062f, 0.340077f, 0.629331f, 0.235629f, 0.089653f, 0.412883f, 0.900113f, 0.281339f, 0.478687f, 0.4991f, 0.637249f, 0.888193f, 0.404431f, 0.735389f, 0.543217f, 0.665372f, 0.104277f, 0.0115973f, 0.0760221f, 0.42581f, 0.116402f, 0.52517f, 0.16289f, 0.719278f, 0.0275049f, 0.563258f, 0.754053f, 0.428043f, 0.251288f, 0.635316f, 0.836843f, 0.699439f, 0.149634f, 0.325126f, 0.993622f, 0.389127f, 0.412413f, 0.506132f, 0.768242f, 0.428553f, 0.102398f, 0.233465f, 0.514597f, 0.0857406f, 0.211276f, 0.0190255f, 0.294531f, 0.0834323f, 0.327302f, 0.742976f, 0.706107f, 0.913361f, 0.85401f, 0.0645883f, 0.327679f, 0.110592f, 0.14578f, 0.926463f, 0.302773f, 0.337391f, 0.226428f, 0.988777f, 0.248064f, 0.373741f, 0.688498f, 0.57615f, 0.866976f, 0.10375f, 0.984208f, 0.552134f, 0.530496f, 0.100562f, 0.381206f, 0.401954f, 0.424405f, 0.273553f, 0.526922f, 0.562716f, 0.538475f, 0.444868f, 0.940651f, 0.510176f, 0.961141f, 0.801338f, 0.844992f, 0.357811f, 0.125f, 0.0565314f, 0.360065f, 0.5808f, 0.00103131f, 0.445364f, 0.907767f, 0.648957f, 0.0373842f, 0.339993f, 0.678008f, 0.822738f, 0.476965f, 0.138021f, 0.462472f, 0.010953f, 0.852434f, 0.406233f, 0.377486f, 0.786894f, 0.367656f, 0.902125f, 0.228506f, 0.0884607f, 0.454144f, 0.0626972f, 0.989365f, 0.0664401f, 0.946825f, 0.687592f, 0.683559f, 0.228131f, 0.88693f, 0.184427f, 0.356165f, 0.172682f, 0.648249f, 0.00718054f, 0.355028f, 0.195836f, 0.570653f, 0.837798f, 0.624247f, 0.63765f, 0.180403f, 0.275514f, 0.980999f, 0.304085f, 0.726668f, 0.263012f, 0.476592f, 0.314497f, 0.352536f, 0.93333f, 0.694555f, 0.916235f, 0.290485f, 0.160748f, 0.299706f, 0.555438f, 0.579219f, 0.114588f, 0.405392f, 0.138082f, 0.46718f, 0.222959f, 0.66349f, 0.970223f, 0.908511f, 0.955852f, 0.397103f, 0.125646f, 0.74287f, 0.663413f, 0.819174f, 0.0557902f, 0.538024f, 0.981734f, 0.82484f, 0.316546f, 0.524897f, 0.136838f, 0.17505f, 0.450692f, 0.141453f, 0.35099f, 0.543927f, 0.481581f, 0.76077f, 0.556214f, 0.280659f, 0.624437f, 0.39479f, 0.76014f, 0.689714f, 0.586183f, 0.333313f, 0.782148f, 0.217834f, 0.787186f, 0.516531f, 0.159284f, 0.176605f, 0.933335f, 0.512654f, 0.414592f, 0.977185f, 0.330633f, 0.390163f, 0.833851f, 0.178697f, 0.435806f, 0.33165f, 0.150526f, 0.0968346f, 0.892193f, 0.881156f, 0.86083f, 0.32752f, 0.219283f, 0.498117f, 0.6107f, 0.248277f, 0.599805f, 0.768165f, 0.553606f, 0.288643f, 0.528303f, 0.901746f, 0.764183f, 0.455745f, 0.387556f, 0.0928248f, 0.609989f, 0.945597f, 0.364361f, 0.940392f, 0.0596991f, 0.22698f, 0.606877f, 0.92329f, 0.154676f, 0.481196f, 0.664357f, 0.323176f, 0.979333f, 0.595477f, 0.15909f, 0.785875f, 0.191812f, 0.991284f, 0.488776f, 0.798016f, 0.0327427f, 0.145919f, 0.348871f, 0.825308f, 0.177508f, 0.0947293f, 0.178007f, 0.0258089f, 0.459542f, 0.900765f, 0.185631f, 0.753224f, 0.835949f, 0.476019f, 0.418449f, 0.159907f, 0.635526f, 0.19939f, 0.464808f, 0.166286f, 0.813637f, 0.715158f, 0.899118f, 0.926415f, 0.829257f, 0.488908f, 0.346654f, 0.939304f, 0.337547f, 0.0613047f, 0.382953f, 0.175986f, 0.8827f, 0.912719f, 0.861593f, 0.186233f, 0.411177f, 0.0560949f, 0.604721f, 0.132047f, 0.336403f, 0.770969f, 0.120769f, 0.0828647f, 0.712818f, 0.676046f, 0.229989f, 0.0665386f, 0.533117f, 0.262892f, 0.80655f, 0.389792f, 0.0184218f, 0.596974f, 0.252876f, 0.798406f, 0.273866f, 0.630499f, 0.166514f, 0.933421f, 0.455705f, 0.219386f, 0.0802194f, 0.963171f, 0.556084f, 0.129555f, 0.23051f, 0.768886f, 0.303718f, 0.652342f, 0.682682f, 0.746003f, 0.798312f, 0.88324f, 0.256958f, 0.428659f, 0.7857f, 0.981503f, 0.994557f, 0.206317f, 0.280171f, 0.19274f, 0.0152624f, 0.150316f, 0.657604f, 0.455652f, 0.288921f, 0.901448f, 0.543475f, 0.432654f, 0.75324f, 0.985192f, 0.257068f, 0.517374f, 0.274911f, 0.108556f, 0.380111f, 0.00175874f, 0.491546f, 0.372086f, 0.28108f, 0.360878f, 0.293488f, 0.244742f, 0.210927f, 0.938699f, 0.433631f, 0.456019f, 0.325943f, 0.633567f, 0.711283f, 0.119612f, 0.277167f, 0.0640342f, 0.452501f, 0.669847f, 0.940001f, 0.203586f, 0.814233f, 0.98656f, 0.51456f, 0.485865f, 0.567411f, 0.201055f, 0.454202f, 0.969252f, 0.00566036f, 0.578845f, 0.29853f, 0.232686f, 0.475156f, 0.00966334f, 0.962894f, 0.906029f, 0.506608f, 0.593363f, 0.356936f, 0.630766f, 0.951057f, 0.55187f, 0.443026f, 0.0803929f, 0.365892f, 0.276321f, 0.00406996f, 0.474201f, 0.798014f, 0.551764f, 0.690219f, 0.507894f, 0.1067f, 0.187027f, 0.625773f, 0.292099f, 0.19579f, 0.105589f, 0.500117f, 0.775274f, 0.666072f, 0.0817655f, 0.0632198f, 0.838135f, 0.562056f, 0.178746f, 0.239655f, 0.921649f, 0.993835f, 0.0284272f, 0.283064f, 0.884358f, 0.0037693f, 0.175753f, 0.912022f, 0.398886f, 0.230738f, 0.870265f, 0.422453f, 0.166136f, 0.444403f, 0.134394f, 0.0243013f, 0.57289f, 0.215749f, 0.203832f, 0.862608f, 0.199681f, 0.17864f, 0.679575f, 0.381172f, 0.368123f, 0.28913f, 0.612708f, 0.948579f, 0.224444f, 0.452975f, 0.809432f, 0.770786f, 0.25513f, 0.770731f, 0.77347f, 0.394963f, 0.810749f, 0.0856477f, 0.825576f, 0.531417f, 0.540847f, 0.968534f, 0.650507f, 0.829096f, 0.0741462f, 0.83297f, 0.182788f, 0.586927f, 0.64391f, 0.278483f, 0.369935f, 0.35762f, 0.751446f, 0.348311f, 0.750885f, 0.891035f, 0.962312f, 0.162112f, 0.742538f, 0.59719f, 0.826395f, 0.60207f, 0.624687f, 0.682101f, 0.92347f, 0.880812f, 0.223429f, 0.0163193f, 0.902673f, 0.361036f, 0.1315f, 0.592649f, 0.292352f, 0.178773f, 0.253377f, 0.0387774f, 0.643361f, 0.845786f, 0.754204f, 0.364412f, 0.688774f, 0.543894f, 0.626031f, 0.129036f, 0.43138f, 0.864455f, 0.499019f, 0.167178f, 0.972318f, 0.897078f, 0.434557f, 0.264836f, 0.663721f, 0.91563f, 0.36214f, 0.268102f, 0.702476f, 0.217885f, 0.371567f, 0.801458f, 0.453572f, 0.348115f, 0.779678f, 0.109024f, 0.156197f, 0.457548f, 0.818176f, 0.887956f, 0.371319f, 0.340275f, 0.113297f, 0.72692f, 0.0864579f, 0.972086f, 0.226355f, 0.943158f, 0.963383f, 0.565491f, 0.135682f, 0.262048f, 0.663787f, 0.0371624f, 0.416354f, 0.761012f, 0.596951f, 0.613046f, 0.0913029f, 0.562425f, 0.514882f, 0.497304f, 0.78304f, 0.557374f, 0.206304f, 0.901521f, 0.186182f, 0.427212f, 0.513115f, 0.0477757f, 0.483842f, 0.043603f, 0.220047f, 0.69668f, 0.443932f, 0.510881f, 0.205206f, 0.121241f, 0.979441f, 0.754877f, 0.740813f, 0.588721f, 0.212736f, 0.218135f, 0.752825f, 0.216225f, 0.0572983f, 0.17229f, 0.802782f, 0.41308f, 0.416236f, 0.264691f, 0.9516f, 0.47015f, 0.834422f, 0.157561f, 0.660617f, 0.42175f, 0.21121f, 0.916822f, 0.362644f, 0.344465f, 0.869498f, 0.132344f, 0.515614f, 0.637452f, 0.0856399f, 0.702774f, 0.632814f, 0.994222f, 0.813245f, 0.324698f, 0.261958f, 0.512191f, 0.314155f, 0.0298459f, 0.193722f, 0.0246972f, 0.845139f, 0.216759f, 0.12464f, 0.416077f, 0.615874f, 0.966491f, 0.485168f, 0.79835f, 0.910517f, 0.361892f, 0.268438f, 0.195217f, 0.475558f, 0.415002f, 0.264999f, 0.937565f, 0.981831f, 0.0622473f, 0.855345f, 0.0823687f, 0.935555f, 0.259333f, 0.314524f, 0.519565f, 0.440571f, 0.238681f, 0.921524f, 0.325186f, 0.579364f, 0.768366f, 0.23077f, 0.141342f, 0.159562f, 0.291442f, 0.608055f, 0.935602f, 0.690342f, 0.128028f, 0.263339f, 0.818997f, 0.50609f, 0.0633179f, 0.330733f, 0.889486f, 0.0222448f, 0.0822985f, 0.424211f, 0.601327f, 0.389043f, 0.317734f, 0.815557f, 0.996757f, 0.593428f, 0.457296f, 0.55754f, 0.7118f, 0.918263f, 0.667889f, 0.0416402f, 0.927053f, 0.684176f, 0.361f, 0.933606f, 0.350922f, 0.839093f, 0.347744f, 0.55185f, 0.399171f, 0.641256f, 0.458768f, 0.399365f, 0.915305f, 0.0905295f, 0.769893f, 0.873669f, 0.533639f, 0.737803f, 0.873882f, 0.79035f, 0.460389f, 0.959252f, 0.0235075f, 0.664966f, 0.309276f, 0.907091f, 0.767865f, 0.940397f, 0.430394f, 0.207188f, 0.698954f, 0.525385f, 0.780439f, 0.443817f, 0.947394f, 0.449379f, 0.2446f, 0.803833f, 0.837961f, 0.874072f, 0.355932f, 0.871123f, 0.892925f, 0.876261f, 0.401232f, 0.840419f, 0.0846447f, 0.245079f, 0.753676f, 0.621389f, 0.908238f, 0.0897526f, 0.22832f, 0.209713f, 0.945288f, 0.474243f, 0.584965f, 0.788261f, 0.178892f, 0.116444f, 0.286751f, 0.975243f, 0.285705f, 0.0762904f, 0.762451f, 0.287118f, 0.361205f, 0.43199f, 0.84422f, 0.313397f, 0.927558f, 0.628644f, 0.296487f, 0.987807f, 0.564613f, 0.450969f, 0.948415f, 0.190203f, 0.621007f, 0.552632f, 0.52465f, 0.334195f, 0.2038f, 0.975997f, 0.191036f, 0.932729f, 0.901927f, 0.372546f, 0.785125f, 0.219687f, 0.0603403f, 0.95474f, 0.872343f, 0.502369f, 0.260347f, 0.100719f, 0.107591f, 0.918544f, 0.947276f, 0.911697f, 0.0857927f, 0.0543282f, 0.287237f, 0.817589f, 0.603739f, 0.529234f, 0.345922f, 0.769665f, 0.81464f, 0.36659f, 0.248734f, 0.454401f, 0.858325f, 0.485563f, 0.109681f, 0.605191f, 0.882583f, 0.490471f, 0.66374f, 0.322778f, 0.309942f, 0.549554f, 0.927963f, 0.0336136f, 0.601127f, 0.341718f, 0.434179f, 0.288023f, 0.244169f, 0.644237f, 0.199442f, 0.791785f, 0.609136f, 0.932866f, 0.499607f, 0.97615f, 0.0352206f, 0.352143f, 0.38461f, 0.934046f, 0.83575f, 0.66898f, 0.995401f, 0.424422f, 0.00196869f, 0.0124084f, 0.206138f, 0.0381497f, 0.183296f, 0.362223f, 0.646135f, 0.270299f, 0.646394f, 0.479877f, 0.362601f, 0.405054f, 0.817061f, 0.620404f, 0.923365f, 0.0286819f, 0.272914f, 0.0550773f, 0.795127f, 0.272573f, 0.419841f, 0.436207f, 0.00644269f, 0.472745f, 0.306172f, 0.683208f, 0.0846664f, 0.278022f, 0.937906f, 0.736935f, 0.391318f, 0.635296f, 0.453457f, 0.359954f, 0.187794f, 0.0275754f, 0.916056f, 0.115623f, 0.0890904f, 0.236138f, 0.579221f, 0.792092f, 0.985648f, 0.816696f, 0.427662f, 0.978369f, 0.891848f, 0.889974f, 0.97991f, 0.199756f, 0.910905f, 0.643061f, 0.779523f, 0.195637f, 0.316388f, 0.585641f, 0.476156f, 0.60803f, 0.728508f, 0.711617f, 0.353096f, 0.806364f, 0.30593f, 0.805763f, 0.503923f, 0.435795f, 0.659308f, 0.765653f, 0.596422f, 0.787324f, 0.903191f, 0.918849f, 0.984993f, 0.533512f, 0.1665f, 0.0220359f, 0.678531f, 0.296687f, 0.686673f, 0.341881f, 0.81616f, 0.657489f, 0.799677f, 0.50715f, 0.978349f, 0.163066f, 0.846449f, 0.122153f, 0.110569f, 0.80878f, 0.793933f, 0.109858f, 0.495731f, 0.351193f, 0.0320605f, 0.52948f, 0.994171f, 0.291095f, 0.158886f, 0.694642f, 0.827215f, 0.779676f, 0.468675f, 0.864875f, 0.961448f, 0.419436f, 0.271058f, 0.250975f, 0.989009f, 0.732048f, 0.24875f, 0.674875f, 0.211105f, 0.560233f, 0.845549f, 0.772419f, 0.361914f, 0.327298f, 0.0669711f, 0.685546f, 0.802015f, 0.419861f, 0.0906196f, 0.690113f, 0.92287f, 0.813777f, 0.401564f, 0.969683f, 0.806847f, 0.561618f, 0.109984f, 0.353588f, 0.183174f, 0.296495f, 0.113677f, 0.151616f, 0.160105f, 0.572576f, 0.952327f, 0.640968f, 0.00196501f, 0.111049f, 0.435984f, 0.22377f, 0.848953f, 0.764457f, 0.874029f, 0.476708f, 0.97932f, 0.129035f, 0.514941f, 0.542317f, 0.844183f, 0.381789f, 0.561663f, 0.771794f, 0.303102f, 0.434983f, 0.272583f, 0.486209f, 0.201214f, 0.0226167f, 0.451245f, 0.355426f, 0.0545809f, 0.888966f, 0.10582f, 0.0706944f, 0.791683f, 0.403473f, 0.56042f, 0.0609565f, 0.773855f, 0.369322f, 0.736534f, 0.699121f, 0.0289885f, 0.823741f, 0.555119f, 0.20037f, 0.905732f, 0.718291f, 0.0844641f, 0.964405f, 0.877972f, 0.976542f, 0.863431f, 0.435554f, 0.458124f, 0.66085f, 0.559653f, 0.899991f, 0.696537f, 0.884407f, 0.485241f, 0.169693f, 0.492214f, 0.327817f, 0.464557f, 0.72688f, 0.510636f, 3.72256e-05f, 0.640568f, 0.634003f, 0.599166f, 0.244155f, 0.485384f, 0.368018f, 0.224248f, 0.17215f, 0.608862f, 0.050801f, 0.709557f, 0.168748f, 0.545006f, 0.0330671f, 0.744038f, 0.444494f, 0.999193f, 0.0136202f, 0.667463f, 0.966947f, 0.341507f, 0.122541f, 0.553909f, 0.110285f, 0.341132f, 0.00632731f, 0.209161f, 0.0710216f, 0.725341f, 0.385506f, 0.366752f, 0.852555f, 0.0429621f, 0.713515f, 0.592362f, 0.988586f, 0.109851f, 0.335065f, 0.538086f, 0.532595f, 0.59895f, 0.994938f, 0.395045f, 0.432586f, 0.917574f, 0.600706f, 0.996087f, 0.689497f, 0.810614f, 0.788031f, 0.768774f, 0.618556f, 0.0169556f, 0.700734f, 0.827853f, 0.824144f, 0.324779f, 0.0568658f, 0.418598f, 0.998419f, 0.160677f, 0.548672f, 0.201268f, 0.22995f, 0.95029f, 0.146139f, 0.336814f, 0.057686f, 0.565388f, 0.169347f, 0.797201f, 0.374061f, 0.739456f, 0.736939f, 0.0534442f, 0.998434f, 0.0051399f, 0.835541f, 0.198279f, 0.45296f, 0.98264f, 0.560263f, 0.188885f, 0.892668f, 0.39621f, 0.109386f, 0.316836f, 0.284272f, 0.366511f, 0.160651f, 0.0262769f, 0.257196f, 0.854866f, 0.284365f, 0.366404f, 0.330294f, 0.535286f, 0.363246f, 0.971337f, 0.444471f, 0.511065f, 0.193465f, 0.631262f, 0.111417f, 0.0541947f, 0.429366f, 0.454222f, 0.0146598f, 0.371483f, 0.544778f, 0.385455f, 0.0993689f, 0.506556f, 0.674363f, 0.846479f, 0.239483f, 0.378822f, 0.468172f, 0.128559f, 0.691275f, 0.742371f, 0.284059f, 0.613244f, 0.106969f, 0.737075f, 0.814352f, 0.447224f, 0.432634f, 0.597521f, 0.182805f, 0.161794f, 0.0734229f, 0.517181f, 0.892901f, 0.411676f, 0.196756f, 0.89416f, 0.129698f, 0.977754f, 0.506168f, 0.474227f, 0.486898f, 0.486799f, 0.141466f, 0.427511f, 0.301441f, 0.472785f, 0.930508f, 0.181775f, 0.049949f, 0.354898f, 0.904821f, 0.950944f, 0.04103f, 0.901985f, 0.414743f, 0.357464f, 0.518813f, 0.650724f, 0.0569143f, 0.558344f, 0.659814f, 0.333305f, 0.449404f, 0.599986f, 0.256237f, 0.678698f, 0.850326f, 0.716557f, 0.249928f, 0.104894f, 0.817699f, 0.904429f, 0.155052f, 0.300824f, 0.0647324f, 0.378203f, 0.42182f, 0.934557f, 0.303367f, 0.127447f, 0.63626f, 0.484572f, 0.360052f, 0.774446f, 0.975823f, 0.63545f, 0.696228f, 0.649522f, 0.389415f, 0.670237f, 0.423613f, 0.511352f, 0.0355687f, 0.0215115f, 0.632218f, 0.47376f, 0.248807f, 0.288003f, 0.873852f, 0.315307f, 0.769269f, 0.688987f, 0.61817f, 0.728338f, 0.163371f, 0.487634f, 0.820945f, 0.990741f, 0.931875f, 0.435982f, 0.377883f, 0.24133f, 0.380386f, 0.814295f, 0.0209269f, 0.885169f, 0.709465f, 0.93636f, 0.0794399f, 0.162973f, 0.189059f, 0.364105f, 0.87738f, 0.187765f, 0.69413f, 0.368692f, 0.665187f, 0.560796f, 0.868607f, 0.733205f, 0.186302f, 0.15196f, 0.528003f, 0.120308f, 0.320919f, 0.960412f, 0.881067f, 0.295913f, 0.628835f, 0.807905f, 0.661576f, 0.341103f, 0.249475f, 0.900911f, 0.594571f, 0.725973f, 0.359318f, 0.724656f, 0.557005f, 0.00766138f, 0.141964f, 0.718821f, 0.931195f, 0.867777f, 0.414506f, 0.503894f, 0.421022f, 0.825651f, 0.206141f, 0.91292f, 0.548944f, 0.198744f, 0.60538f, 0.993888f, 0.127873f, 0.419187f, 0.588483f, 0.182965f, 0.0140592f, 0.0600551f, 0.261279f, 0.2509f, 0.25292f, 0.216752f, 0.04289f, 0.827798f, 0.580436f, 0.0296799f, 0.00926336f, 0.557311f, 0.660548f, 0.79703f, 0.858165f, 0.691386f, 0.607407f, 0.129743f, 0.917318f, 0.147724f, 0.768431f, 0.184998f, 0.140749f, 0.577814f, 0.928866f, 0.874441f, 0.844962f, 0.911559f, 0.168025f, 0.643675f, 0.704571f, 0.78985f, 0.276804f, 0.281197f, 0.0338128f, 0.407325f, 0.248202f, 0.239628f, 0.830321f, 0.891477f, 0.916737f, 0.655029f, 0.142365f, 0.967451f, 0.59282f, 0.212244f, 0.949718f, 0.288187f, 0.362454f, 0.674981f, 0.301357f, 0.554134f, 0.535576f, 0.627044f, 0.731061f, 0.0726705f, 0.0078096f, 0.879073f, 0.604342f, 0.517625f, 0.254952f, 0.423111f, 0.246639f, 0.177197f, 0.0659997f, 0.835938f, 0.322095f, 0.394152f, 0.874921f, 0.561595f, 0.498812f, 0.748584f, 0.616486f, 0.331368f, 0.589113f, 0.227836f, 0.442071f, 0.562138f, 0.770235f, 0.441344f, 0.975359f, 0.34946f, 0.617164f, 0.979317f, 0.26282f, 0.0133631f, 0.436993f, 0.850822f, 0.176373f, 0.633789f, 0.0109913f, 0.992509f, 0.851532f, 0.143701f, 0.31525f, 0.944126f, 0.984413f, 0.404519f, 0.378241f, 0.944833f, 0.0635824f, 0.96717f, 0.596602f, 0.912801f, 0.194747f, 0.312028f, 0.407516f, 0.854388f, 0.811451f, 0.785035f, 0.865755f, 0.696651f, 0.62489f, 0.582013f, 0.0687964f, 0.0169895f, 0.559723f, 0.176556f, 0.687998f, 0.437269f, 0.910802f, 0.780115f, 0.427156f, 0.760038f, 0.583962f, 0.630915f, 0.381982f, 0.912495f, 0.595187f, 0.839338f, 0.957846f, 0.359903f, 0.816214f, 0.806878f, 0.983288f, 0.724097f, 0.39241f, 0.33402f, 0.546075f, 0.91049f, 0.738866f, 0.557567f, 0.341265f, 0.94488f, 0.977952f, 0.856056f, 0.500289f, 0.00265159f, 0.460949f, 0.15744f, 0.769394f, 0.495677f, 0.245077f, 0.887521f, 0.775622f, 0.468344f, 0.390112f, 0.842494f, 0.385402f, 0.539452f, 0.489353f, 0.336008f, 0.15959f, 0.165115f, 0.553005f, 0.980836f, 0.206596f, 0.863876f, 0.654002f, 0.215715f, 0.306183f, 0.486224f, 0.426681f, 0.852498f, 0.574104f, 0.727996f, 0.305048f, 0.236096f, 0.565487f, 0.128005f, 0.519435f, 0.138282f, 0.420805f, 0.734288f, 0.484306f, 0.0296007f, 0.127708f, 0.633982f, 0.318204f, 0.426714f, 0.118984f, 0.358504f, 0.432299f, 0.242051f, 0.598057f, 0.424738f, 0.694848f, 0.704655f, 0.922875f, 0.326423f, 0.390694f, 0.0606628f, 0.421118f, 0.290532f, 0.870364f, 0.637565f, 0.613844f, 0.878634f, 0.35141f, 0.957963f, 0.890242f, 0.404047f, 0.0760006f, 0.865201f, 0.907828f, 0.524186f, 0.396781f, 0.445076f, 0.406459f, 0.664782f, 0.146491f, 0.97103f, 0.586007f, 0.138321f, 0.839083f, 0.814549f, 0.789171f, 0.456028f, 0.920055f, 0.784548f, 0.397995f, 0.719838f, 0.616418f, 0.35416f, 0.676665f, 0.132795f, 0.933376f, 0.312559f, 0.485991f, 0.51831f, 0.191254f, 0.251019f, 0.354653f, 0.722027f, 0.978415f, 0.984746f, 0.828504f, 0.2601f, 0.282231f, 0.275912f, 0.97673f, 0.441132f, 0.462412f, 0.521256f, 0.0938004f, 0.895448f, 0.410385f, 0.0433032f, 0.862253f, 0.711822f, 0.804567f, 0.943025f, 0.591489f, 0.223069f, 0.838248f, 0.628455f, 0.946139f, 0.131133f, 0.602136f, 0.38264f, 0.985207f, 0.0808959f, 0.273875f, 0.318797f, 0.328903f, 0.428212f, 0.124446f, 0.165636f, 0.23997f, 0.165155f, 0.361324f, 0.178443f, 0.282322f, 0.172854f, 0.271868f, 0.250238f, 0.717937f, 0.974338f, 0.743888f, 0.96678f, 0.986844f, 0.856045f, 0.653421f, 0.179241f, 0.0740971f, 0.0766304f, 0.336375f, 0.212894f, 0.934211f, 0.997278f, 0.269538f, 0.421702f, 0.442992f, 0.430517f, 0.0223909f, 0.388047f, 0.203982f, 0.198411f, 0.746942f, 0.923477f, 0.791974f, 0.334785f, 0.293055f, 0.252477f, 0.930505f, 0.477281f, 0.974369f, 0.542273f, 0.0565671f, 0.855793f, 0.320822f, 0.264207f, 0.745842f, 0.392368f, 0.746509f, 0.459824f, 0.472743f, 0.721712f, 0.709905f, 0.350475f, 0.620184f, 0.145545f, 0.0473067f, 0.432195f, 0.294732f, 0.140441f, 0.960437f, 0.415798f, 0.0431584f, 0.679308f, 0.909568f, 0.0640943f, 0.188892f, 0.104753f, 0.745761f, 0.436645f, 0.270399f, 0.226013f, 0.504947f, 0.669316f, 0.820962f, 0.535999f, 0.273035f, 0.337008f, 0.203571f, 0.114914f, 0.260652f, 0.282534f, 0.965981f, 0.571098f, 0.393268f, 0.0361742f, 0.666332f, 0.125355f, 0.833944f, 0.245563f, 0.773657f, 0.138083f, 0.575615f, 0.800172f, 0.647944f, 0.674765f, 0.543427f, 0.312599f, 0.200428f, 0.892622f, 0.485047f, 0.972385f, 0.496801f, 0.319f, 0.720034f, 0.889781f, 0.167518f, 0.651482f, 0.361188f, 0.198271f, 0.199293f, 0.102301f, 0.252575f, 0.460878f, 0.609484f, 0.456292f, 0.784005f, 0.472145f, 0.428725f, 0.468657f, 0.746991f, 0.402354f, 0.139418f, 0.804557f, 0.233456f, 0.393089f, 0.881374f, 0.501119f, 0.783106f, 0.206664f, 0.0644822f, 0.597583f, 0.64018f, 0.560844f, 0.032219f, 0.528946f, 0.0442685f, 0.997045f, 0.538214f, 0.979589f, 0.229041f, 0.871115f, 0.71063f, 0.112246f, 0.859703f, 0.332685f, 0.631384f, 0.948647f, 0.898164f, 0.40927f, 0.267202f, 0.0917065f, 0.779611f, 0.204703f, 0.370609f, 0.412853f, 0.472051f, 0.104356f, 0.590126f, 0.0634925f, 0.104977f, 0.48445f, 0.218552f, 0.204078f, 0.257033f, 0.411859f, 0.939311f, 0.751081f, 0.261188f, 0.446775f, 0.632727f, 0.217953f, 0.376171f, 0.875016f, 0.381464f, 0.490141f, 0.220281f, 0.0472918f, 0.367374f, 0.22742f, 0.515624f, 0.190072f, 0.601286f, 0.297674f, 0.096679f, 0.648618f, 0.579397f, 0.295318f, 0.440695f, 0.618294f, 0.301135f, 0.893181f, 0.160605f, 0.705197f, 0.684114f, 0.231152f, 0.141517f, 0.604802f, 0.213413f, 0.390435f, 0.0895624f, 0.807746f, 0.77274f, 0.397655f, 0.936012f, 0.247536f, 0.200595f, 0.743014f, 0.105074f, 0.203182f, 0.732056f, 0.283836f, 0.399282f, 0.936678f, 0.593811f, 0.849943f, 0.312948f, 0.135168f, 0.764301f, 0.816494f, 0.720607f, 0.03582f, 0.23626f, 0.224345f, 0.849473f, 0.694959f, 0.000914197f, 0.489516f, 0.89354f, 0.164496f, 0.871999f, 0.383981f, 0.728333f, 0.516825f, 0.604732f, 0.998215f, 0.22903f, 0.370376f, 0.888036f, 0.734281f, 0.603638f, 0.0482923f, 0.481127f, 0.263689f, 0.665475f, 0.0702011f, 0.592302f, 0.16822f, 0.34008f, 0.302855f, 0.86014f, 0.170547f, 0.361272f, 0.34135f, 0.509187f, 0.841397f, 0.150502f, 0.872685f, 0.24873f, 0.756792f, 0.0825902f, 0.153533f, 0.361082f, 0.570998f, 0.933709f, 0.3299f, 0.107717f, 0.677329f, 0.349624f, 0.575538f, 0.804646f, 0.908089f, 0.127185f, 0.2456f, 0.118156f, 0.375953f, 0.41017f, 0.575039f, 0.623639f, 0.101804f, 0.0558454f, 0.125484f, 0.607622f, 0.203948f, 0.418327f, 0.405499f, 0.507386f, 0.737731f, 0.894946f, 0.667289f, 0.147949f, 0.81825f, 0.942886f, 0.108505f, 0.524192f, 0.00685106f, 0.652932f, 0.867348f, 0.447596f, 0.803778f, 0.714046f, 0.801762f, 0.414293f, 0.727759f, 0.00605316f, 0.515224f, 0.29596f, 0.549072f, 0.473334f, 0.211385f, 0.647646f, 0.252182f, 0.488966f, 0.0630215f, 0.56367f, 0.988093f, 0.66257f, 0.908756f, 0.363363f, 0.852328f, 0.310326f, 0.535536f, 0.0170825f, 0.729327f, 0.116874f, 0.838879f, 0.870218f, 0.691357f, 0.193253f, 0.957675f, 0.742277f, 0.257731f, 0.0763241f, 0.553045f, 0.799275f, 0.768486f, 0.845476f, 0.271778f, 0.330848f, 0.878108f, 0.861101f, 0.230572f, 0.365767f, 0.364425f, 0.0460902f, 0.564315f, 0.329199f, 0.159647f, 0.889362f, 0.665056f, 0.360699f, 0.234941f, 0.0333162f, 0.743062f, 0.465344f, 0.425126f, 0.0448667f, 0.487174f, 0.521977f, 0.0537651f, 0.806049f, 0.279968f, 0.39395f, 0.645693f, 0.403757f, 0.590454f, 0.00837271f, 0.784342f, 0.70525f, 0.839753f, 0.0341006f, 0.12629f, 0.0069515f, 0.0778617f, 0.28737f, 0.381177f, 0.70132f, 0.764585f, 0.17237f, 0.0529595f, 0.462094f, 0.023213f, 0.558201f, 0.280587f, 0.657852f, 0.022757f, 0.314341f, 0.153706f, 0.162868f, 0.641745f, 0.598052f, 0.319029f, 0.826756f, 0.0320386f, 0.38043f, 0.641555f, 0.235267f, 0.725618f, 0.42515f, 0.323938f, 0.347753f, 0.476153f, 0.257355f, 0.886651f, 0.154094f, 0.224312f, 0.920766f, 0.492778f, 0.385719f, 0.759328f, 0.977097f, 0.559022f, 0.884808f, 0.699165f, 0.481631f, 0.515907f, 0.501303f, 0.0446112f, 0.391572f, 0.773959f, 0.777541f, 0.903734f, 0.913829f, 0.370903f, 0.368487f, 0.553682f, 0.761292f, 0.614349f, 0.957474f, 0.395824f, 0.822164f, 0.98039f, 0.750599f, 0.356927f, 0.762398f, 0.355322f, 0.840202f, 0.366736f, 0.402031f, 0.676999f, 0.194498f, 0.173499f, 0.846403f, 0.274069f, 0.575318f, 0.421541f, 0.82154f, 0.0089027f, 0.493083f, 0.370883f, 0.680493f, 0.995773f, 0.148005f, 0.763908f, 0.345673f, 0.930257f, 0.0182135f, 0.517633f, 0.283785f, 0.731326f, 0.543859f, 0.693829f, 0.762018f, 0.945229f, 0.0558828f, 0.222589f, 0.978122f, 0.390255f, 0.865985f, 0.974409f, 0.792804f, 0.0940792f, 0.376653f, 0.922032f, 0.153586f, 0.192909f, 0.173532f, 0.716163f, 0.130845f, 0.645625f, 0.0888867f, 0.536087f, 0.97714f, 0.89536f, 0.67602f, 0.0953925f, 0.686974f, 0.247298f, 0.151452f, 0.332873f, 0.0981902f, 0.988683f, 0.412657f, 0.0851397f, 0.0318406f, 0.510257f, 0.668259f, 0.517164f, 0.0391547f, 0.806276f, 0.797526f, 0.427589f, 0.117561f, 0.538082f, 0.674851f, 0.0979511f, 0.0507985f, 0.714029f, 0.911853f, 0.964538f, 0.375582f, 0.522158f, 0.218965f, 0.968945f, 0.0646577f, 0.559528f, 0.101097f, 0.327255f, 0.695524f, 0.261179f, 0.069643f, 0.359392f, 0.14242f, 0.983725f, 0.659602f, 0.611082f, 0.0832276f, 0.805646f, 0.244534f, 0.917801f, 0.613117f, 0.0805238f, 0.580163f, 0.65044f, 0.389736f, 0.372102f, 0.0151678f, 0.125226f, 0.232792f, 0.817115f, 0.308677f, 0.550586f, 0.569279f, 0.715612f, 0.427575f, 0.0844825f, 0.148163f, 0.752786f, 0.863253f, 0.803135f, 0.383866f, 0.366217f, 0.946739f, 0.647277f, 0.0860237f, 0.601253f, 0.651199f, 0.76133f, 0.213472f, 0.0704136f, 0.345536f, 0.182688f, 0.819225f, 0.349157f, 0.266612f, 0.754589f, 0.65234f, 0.519933f, 0.951381f, 0.587869f, 0.447968f, 0.0936515f, 0.195183f, 0.581064f, 0.417971f, 0.221355f, 0.639969f, 0.524327f, 0.717288f, 0.877326f, 0.828831f, 0.466257f, 0.31155f, 0.783436f, 0.327745f, 0.615294f, 0.306666f, 0.361565f, 0.961635f, 0.869163f, 0.242875f, 0.365518f, 0.394293f, 0.0124096f, 0.870355f, 0.505084f, 0.457293f, 0.73447f, 0.521223f, 0.738282f, 0.887272f, 0.904392f, 0.222565f, 0.270792f, 0.553299f, 0.803908f, 0.0835112f, 0.50363f, 0.389321f, 0.80033f, 0.999442f, 0.739336f, 0.253486f, 0.423819f, 0.191611f, 0.208143f, 0.784414f, 0.541643f, 0.675212f, 0.632842f, 0.960044f, 0.635753f, 0.865634f, 0.358805f, 0.95182f, 0.861882f, 0.107108f, 0.645361f, 0.852852f, 0.512897f, 0.0423952f, 0.968991f, 0.101197f, 0.357598f, 0.983648f, 0.332065f, 0.549322f, 0.945327f, 0.954272f, 0.765911f, 0.211604f, 0.132759f, 0.789122f, 0.283424f, 0.848477f, 0.152383f, 0.238871f, 0.993014f, 0.804065f, 0.364784f, 0.634562f, 0.700287f, 0.266394f, 0.463335f, 0.393761f, 0.905476f, 0.264196f, 0.398405f, 0.174744f, 0.476953f, 0.576694f, 0.0524362f, 0.240431f, 0.495561f, 0.155262f, 0.527025f, 0.886564f, 0.0654902f, 0.150847f, 0.427092f, 0.903602f, 0.171493f, 0.636779f, 0.514837f, 0.306811f, 0.28194f, 0.255086f, 0.326178f, 0.276933f, 0.376174f, 0.979233f, 0.826831f, 0.118635f, 0.910199f, 0.566246f, 0.234089f, 0.0188039f, 0.922586f, 0.842611f, 0.38541f, 0.981104f, 0.108803f, 0.545946f, 0.469737f, 0.577147f, 0.651099f, 0.553758f, 0.794908f, 0.634391f, 0.361312f, 0.819246f, 0.810993f, 0.366507f, 0.698215f, 0.553286f, 0.546802f, 0.553614f, 0.183637f, 0.119029f, 0.633808f, 0.200805f, 0.0372143f, 0.97548f, 0.966938f, 0.785146f, 0.917965f, 0.42305f, 0.795677f, 0.31634f, 0.597346f, 0.550683f, 0.21344f, 0.416174f, 0.578587f, 0.165249f, 0.481249f, 0.38813f, 0.320805f, 0.940898f, 0.595799f, 0.667156f, 0.524314f, 0.574669f, 0.555044f, 0.338005f, 0.485876f, 0.88912f, 0.982312f, 0.164608f, 0.215708f, 0.0675536f, 0.0081713f, 0.0552409f, 0.87401f, 0.300918f, 0.988349f, 0.827005f, 0.186376f, 0.157681f, 0.00302455f, 0.169866f, 0.471027f, 0.558492f, 0.655853f, 0.912541f, 0.0740924f, 0.334979f, 0.733308f, 0.467699f, 0.584625f, 0.587347f, 0.232699f, 0.933024f, 0.682288f, 0.612663f, 0.412829f, 0.665977f, 0.207301f, 0.490511f, 0.607697f, 0.774543f, 0.774809f, 0.950977f, 0.756992f, 0.269366f, 0.477028f, 0.681323f, 0.651992f, 0.0885744f, 0.748902f, 0.516897f, 0.451794f, 0.836757f, 0.122795f, 0.361501f, 0.153291f, 0.933768f, 0.740094f, 0.542968f, 0.610731f, 0.0368064f, 0.803068f, 0.00482385f, 0.734192f, 0.644232f, 0.402771f, 0.791875f, 0.890462f, 0.44001f, 0.0830733f, 0.869611f, 0.964678f, 0.477981f, 0.945277f, 0.370107f, 0.652578f, 0.293131f, 0.04376f, 0.864256f, 0.623258f, 0.48307f, 0.164201f, 0.943638f, 0.441348f, 0.926081f, 0.0267296f, 0.472526f, 0.854453f, 0.0891213f, 0.475857f, 0.871879f, 0.509499f, 0.280201f, 0.939867f, 0.260134f, 0.0308078f, 0.661491f, 0.956955f, 0.156406f, 0.716674f, 0.683081f, 0.590255f, 0.675594f, 0.674348f, 0.67377f, 0.638153f, 0.160912f, 0.150911f, 0.702488f, 0.4165f, 0.764524f, 0.690996f, 0.190479f, 0.791328f, 0.239311f, 0.207419f, 0.848268f, 0.204797f, 0.7104f, 0.842953f, 0.896385f, 0.779759f, 0.705262f, 0.0478738f, 0.55702f, 0.478191f, 0.606844f, 0.118996f, 0.0225894f, 0.54085f, 0.343021f, 0.218631f, 0.397936f, 0.406045f, 0.714357f, 0.74911f, 0.828513f, 0.568655f, 0.680846f, 0.401819f, 0.0608094f, 0.214434f, 0.542424f, 0.472403f, 0.821633f, 0.45271f, 0.731169f, 0.76499f, 0.509922f, 0.565094f, 0.176391f, 0.651348f, 0.307081f, 0.292411f, 0.0471905f, 0.534923f, 0.706235f, 0.620766f, 0.808308f, 0.962332f, 0.251427f, 0.670097f, 0.185047f, 0.77783f, 0.545547f, 0.214405f, 0.523846f, 0.28188f, 0.805017f, 0.712864f, 0.956599f, 0.362843f, 0.470433f, 0.772978f, 0.858986f, 0.143639f, 0.891464f, 0.513285f, 0.482104f, 0.132897f, 0.719146f, 0.921183f, 0.0655506f, 0.00946056f, 0.198652f, 0.173242f, 0.730765f, 0.501729f, 0.207614f, 0.217488f, 0.122694f, 0.479763f, 0.390774f, 0.250547f, 0.653028f, 0.806164f, 0.239921f, 0.898338f, 0.305939f, 0.191451f, 0.648294f, 0.15154f, 0.801401f, 0.301872f, 0.745287f, 0.226763f, 0.331783f, 0.73963f, 0.94339f, 0.539125f, 0.344924f, 0.402575f, 0.509457f, 0.292524f, 0.105412f, 0.448621f, 0.741957f, 0.410952f, 0.356394f, 0.889006f, 0.403332f, 0.678526f, 0.833845f, 0.812577f, 0.985769f, 0.036368f, 0.29008f, 0.570656f, 0.557277f, 0.0717374f, 0.434824f, 0.339859f, 0.58858f, 0.975325f, 0.919597f, 0.457951f, 0.620135f, 0.384427f, 0.228209f, 0.31669f, 0.667723f, 0.994115f, 0.51765f, 0.563327f, 0.589836f, 0.210515f, 0.346323f, 0.493738f, 0.301921f, 0.664338f, 0.87641f, 0.460502f, 0.396923f, 0.966443f, 0.494459f, 0.971593f, 0.262549f, 0.0694564f, 0.172827f, 0.382514f, 0.968542f, 0.274666f, 0.00331836f, 0.250202f, 0.00344558f, 0.0274703f, 0.00688962f, 0.215951f, 0.461463f, 0.513889f, 0.270262f, 0.786878f, 0.751636f, 0.935399f, 0.20562f, 0.348898f, 0.894775f, 0.783169f, 0.934923f, 0.399237f, 0.460612f, 0.511877f, 0.331075f, 0.32564f, 0.878951f, 0.747974f, 0.804088f, 0.69554f, 0.678725f, 0.100393f, 0.907764f, 0.30675f, 0.419933f, 0.549802f, 0.514653f, 0.913517f, 0.316668f, 0.52095f, 0.267707f, 0.52142f, 0.421244f, 0.877753f, 0.219721f, 0.96638f, 0.390328f, 0.514977f, 0.156551f, 0.683053f, 0.313855f, 0.0468885f, 0.145941f, 0.286755f, 0.953429f, 0.945449f, 0.30043f, 0.141133f, 0.154855f, 0.518679f, 0.493933f, 0.674391f, 0.344393f, 0.764361f, 0.564702f, 0.161935f, 0.800611f, 0.0110539f, 0.570565f, 0.51828f, 0.890983f, 0.305598f, 0.704893f, 0.752696f, 0.705727f, 0.769524f, 0.32399f, 0.364751f, 0.623441f, 0.620293f, 0.116416f, 0.788385f, 0.636862f, 0.189527f, 0.63281f, 0.152059f, 0.575479f, 0.761368f, 0.290289f, 0.0808718f, 0.499316f, 7.71683e-05f, 0.4727f, 0.317388f, 0.860308f, 0.864656f, 0.448016f, 0.56233f, 0.411283f, 0.652817f, 0.826704f, 0.59099f, 0.669423f, 0.212474f, 0.0471869f, 0.920933f, 0.312141f, 0.181511f, 0.814098f, 0.831468f, 0.167068f, 0.636611f, 0.104285f, 0.703134f, 0.623731f, 0.0243967f, 0.839699f, 0.342128f, 0.424502f, 0.623919f, 0.764014f, 0.644001f, 0.995352f, 0.297929f, 0.821413f, 0.241151f, 0.0656122f, 0.47265f, 0.86186f, 0.661683f, 0.129377f, 0.419626f, 0.617842f, 0.3183f, 0.385351f, 0.188848f, 0.322851f, 0.865621f, 0.479505f, 0.152292f, 0.408311f, 0.772338f, 0.499745f, 0.80009f, 0.962285f, 0.582576f, 0.970549f, 0.639813f, 0.571203f, 0.759291f, 0.0960695f, 0.53903f, 0.227856f, 0.763825f, 0.0383792f, 0.644669f, 0.587712f, 0.102593f, 0.924982f, 0.25159f, 0.250572f, 0.0802209f, 0.383922f, 0.106164f, 0.56256f, 0.173975f, 0.207292f, 0.410468f, 0.953122f, 0.836021f, 0.637233f, 0.157448f, 0.711174f, 0.279807f, 0.530596f, 0.901919f, 0.827159f, 0.492436f, 0.835496f, 0.507331f, 0.196427f, 0.420931f, 0.845796f, 0.762819f, 0.0662774f, 0.871291f, 0.972134f, 0.375973f, 0.410125f, 0.0517371f, 0.612242f, 0.107208f, 0.566992f, 0.970326f, 0.677435f, 0.930902f, 0.235176f, 0.192749f, 0.923456f, 0.886289f, 0.027513f, 0.645326f, 0.771353f, 0.963128f, 0.99619f, 0.0659412f, 0.428019f, 0.980823f, 0.647443f, 0.916983f, 0.226263f, 0.412835f, 0.491762f, 0.40497f, 0.156026f, 0.855684f, 0.882071f, 0.926891f, 0.76975f, 0.481481f, 0.0161217f, 0.00522831f, 0.319988f, 0.155074f, 0.412051f, 0.0933146f, 0.0886088f, 0.895277f, 0.582174f, 0.448018f, 0.409235f, 0.0669516f, 0.132087f, 0.666296f, 0.00866833f, 0.155096f, 0.374669f, 0.648701f, 0.375146f, 0.152913f, 0.109636f, 0.154415f, 0.614108f, 0.0916618f, 0.909499f, 0.579876f, 0.0395756f, 0.213966f, 0.356406f, 0.984556f, 0.373228f, 0.507934f, 0.932854f, 0.360523f, 0.232493f, 0.57162f, 0.0595727f, 0.658732f, 0.247998f, 0.366988f, 0.504186f, 0.992903f, 0.223777f, 0.597548f, 0.75979f, 0.687973f, 0.162974f, 0.679501f, 0.155538f, 0.283408f, 0.673023f, 0.107771f, 0.376834f, 0.864856f, 0.52621f, 0.321577f, 0.175433f, 0.00619351f, 0.275832f, 0.0907132f, 0.0718382f, 0.674084f, 0.442669f, 0.790168f, 0.526573f, 0.855596f, 0.88713f, 0.117057f, 0.227912f, 0.951747f, 0.789088f, 0.695195f, 0.00615152f, 0.961394f, 0.0945758f, 0.935776f, 0.101446f, 0.887727f, 0.989453f, 0.0320962f, 0.32615f, 0.47812f, 0.69467f, 0.303993f, 0.882058f, 0.000734467f, 0.366207f, 0.544315f, 0.480295f, 0.147126f, 0.789424f, 0.527295f, 0.588564f, 0.574151f, 0.526338f, 0.209439f, 0.487335f, 0.801044f, 0.985004f, 0.376859f, 0.167142f, 0.688227f, 0.235405f, 0.813848f, 0.701136f, 0.645054f, 0.661662f, 0.437714f, 0.486964f, 0.740157f, 0.529264f, 0.937413f, 0.510578f, 0.022128f, 0.036041f, 0.0699558f, 0.117385f, 0.316326f, 0.885856f, 0.0403546f, 0.231338f, 0.635229f, 0.241592f, 0.250467f, 0.0945615f, 0.800571f, 0.0840602f, 0.315926f, 0.128503f, 0.813934f, 0.0258813f, 0.17596f, 0.332589f, 0.669219f, 0.705743f, 0.671f, 0.261769f, 0.381551f, 0.239807f, 0.88429f, 0.219624f, 0.083958f, 0.00626468f, 0.818293f, 0.606267f, 0.40237f, 0.417485f, 0.591737f, 0.527343f, 0.479031f, 0.801822f, 0.658967f, 0.716588f, 0.744282f, 0.155606f, 0.469337f, 0.766239f, 0.290825f, 0.558359f, 0.71311f, 0.285717f, 0.749339f, 0.627337f, 0.191896f, 0.271965f, 0.566574f, 0.400855f, 0.0837091f, 0.21823f, 0.496795f, 0.334895f, 0.135946f, 0.572812f, 0.836966f, 0.893186f, 0.962159f, 0.942248f, 0.836315f, 0.771091f, 0.598405f, 0.392909f, 0.390642f, 0.367415f, 0.108506f, 0.509422f, 0.54232f, 0.237082f, 0.978606f, 0.872314f, 0.633089f, 0.238001f, 0.460591f, 0.201899f, 0.184534f, 0.325397f, 0.934418f, 0.963759f, 0.786507f, 0.0375785f, 0.647151f, 0.829225f, 0.742572f, 0.135389f, 0.542884f, 0.855696f, 0.97466f, 0.215872f, 0.0772942f, 0.130509f, 0.229885f, 0.310712f, 0.964669f, 0.532942f, 0.721281f, 0.335187f, 0.626803f, 0.887096f, 0.2246f, 0.137863f, 0.363398f, 0.201565f, 0.344398f, 0.664164f, 0.579189f, 0.576948f, 0.837698f, 0.878516f, 0.376328f, 0.55172f, 0.634133f, 0.400293f, 0.0209109f, 0.20232f, 0.102912f, 0.366968f, 0.563481f, 0.282843f, 0.398847f, 0.843752f, 0.294638f, 0.154387f, 0.671821f, 0.058539f, 0.404984f, 0.885257f, 0.518336f, 0.8205f, 0.537827f, 0.95051f, 0.381612f, 0.404012f, 0.964825f, 0.380396f, 0.274525f, 0.222361f, 0.494103f, 0.532174f, 0.367596f, 0.0728736f, 0.269724f, 0.292736f, 0.30423f, 0.361644f, 0.322779f, 0.46089f, 0.346687f, 0.722558f, 0.576871f, 0.355958f, 0.995846f, 0.0720617f, 0.859159f, 0.0573213f, 0.00642774f, 0.815126f, 0.432851f, 0.528463f, 0.632068f, 0.386987f, 0.979928f, 0.17268f, 0.356581f, 0.361901f, 0.76519f, 0.767691f, 0.237448f, 0.92085f, 0.970494f, 0.0405644f, 0.488781f, 0.129028f, 0.805264f, 0.461414f, 0.774707f, 0.772119f, 0.883158f, 0.193649f, 0.725189f, 0.946668f, 0.317352f, 0.143978f, 0.596241f, 0.266404f, 0.61899f, 0.130789f, 0.117894f, 0.140445f, 0.828193f, 0.350748f, 0.168147f, 0.73843f, 0.914863f, 0.210849f, 0.300128f, 0.80821f, 0.652808f, 0.194055f, 0.724624f, 0.465249f, 0.659502f, 0.933436f, 0.319047f, 0.944818f, 0.998419f, 0.23791f, 0.700198f, 0.384879f, 0.793092f, 0.697484f, 0.236586f, 0.190138f, 0.189159f, 0.181015f, 0.37148f, 0.333317f, 0.270334f, 0.564374f, 0.618572f, 0.781573f, 0.141661f, 0.418931f, 0.31021f, 0.656223f, 0.100783f, 0.411129f, 0.720769f, 0.621313f, 0.679977f, 0.881772f, 0.589841f, 0.408094f, 0.365121f, 0.628722f, 0.603232f, 0.818907f, 0.14653f, 0.921324f, 0.72214f, 0.113515f, 0.112672f, 0.41947f, 0.111943f, 0.748427f, 0.135856f, 0.438782f, 0.858249f, 0.871748f, 0.108394f, 0.255696f, 0.485165f, 0.764928f, 0.642615f, 0.527349f, 0.656961f, 0.827604f, 0.623513f, 0.0672744f, 0.759552f, 0.0518418f, 0.383462f, 0.752072f, 0.0236901f, 0.881091f, 0.237981f, 0.00071645f, 0.0996164f, 0.822663f, 0.501758f, 0.741016f, 0.632086f, 0.438797f, 0.871133f, 0.317806f, 0.047918f, 0.715757f, 0.382381f, 0.935342f, 0.339043f, 0.523275f, 0.0327271f, 0.320565f, 0.0870344f, 0.823622f, 0.319834f, 0.153559f, 0.594371f, 0.267636f, 0.698517f, 0.138399f, 0.39011f, 0.277741f, 0.860284f, 0.499121f, 0.835385f, 0.68415f, 0.366272f, 0.382257f, 0.463301f, 0.74469f, 0.341145f, 0.816966f, 0.128728f, 0.67425f, 0.44642f, 0.377272f, 0.383248f, 0.0781609f, 0.809464f, 0.911476f, 0.323137f, 0.76409f, 0.963659f, 0.794773f, 0.191325f, 0.935969f, 0.357465f, 0.548294f, 0.58069f, 0.415215f, 0.72179f, 0.76476f, 0.926536f, 0.402793f, 0.618887f, 0.446004f, 0.0953802f, 0.859194f, 0.177043f, 0.10478f, 0.202788f, 0.749946f, 0.931449f, 0.563113f, 0.23868f, 0.649197f, 0.86184f, 0.327508f, 0.267626f, 0.735183f, 0.750009f, 0.252342f, 0.0876918f, 0.234842f, 0.153437f, 0.618f, 0.180229f, 0.975278f, 0.923142f, 0.369849f, 0.707614f, 0.824766f, 0.554974f, 0.323158f, 0.414107f, 0.584251f, 0.225541f, 0.410231f, 0.0637928f, 0.798973f, 0.107233f, 0.870988f, 0.438926f, 0.307955f, 0.595037f, 0.728912f, 0.352082f, 0.397782f, 0.318208f, 0.0216747f, 0.306465f, 0.414503f, 0.367382f, 0.750917f, 0.164633f, 0.62087f, 0.702756f, 0.805683f, 0.281092f, 0.871067f, 0.274652f, 0.582594f, 0.249105f, 0.877142f, 0.129128f, 0.499272f, 0.343304f, 0.878821f, 0.400978f, 0.154943f, 0.0106663f, 0.156787f, 0.0905567f, 0.141933f, 0.86586f, 0.131593f, 0.760632f, 0.273636f, 0.213491f, 0.926497f, 0.981464f, 0.442809f, 0.314826f, 0.0164317f, 0.410826f, 0.482253f, 0.0714787f, 0.495202f, 0.505363f, 0.597986f, 0.173456f, 0.592068f, 0.895854f, 0.180029f, 0.0414354f, 0.424477f, 0.695132f, 0.557805f, 0.760983f, 0.890888f, 0.566274f, 0.349029f, 0.662938f, 0.427012f, 0.284279f, 0.579002f, 0.0998554f, 0.185824f, 0.919968f, 0.350051f, 0.335549f, 0.799062f, 0.411838f, 0.269206f, 0.369434f, 0.654228f, 0.287728f, 0.698396f, 0.743933f, 0.792599f, 0.537847f, 0.521517f, 0.347953f, 0.0222605f, 0.871713f, 0.130449f, 0.0415191f, 0.409467f, 0.681558f, 0.149537f, 0.463528f, 0.642759f, 0.330412f, 0.609467f, 0.645689f, 0.260059f, 0.423172f, 0.200007f, 0.841315f, 0.899878f, 0.48096f, 0.763262f, 0.262757f, 0.61073f, 0.0382123f, 0.974216f, 0.571543f, 0.911999f, 0.0921221f, 0.561062f, 0.224255f, 0.622645f, 0.868477f, 0.722134f, 0.418045f, 0.584071f, 0.867199f, 0.81787f, 0.358168f, 0.622796f, 0.723772f, 0.410458f, 0.0113081f, 0.257779f, 0.377846f, 0.413835f, 0.573993f, 0.565759f, 0.90793f, 0.880657f, 0.392036f, 0.244096f, 0.039189f, 0.655473f, 0.740594f, 0.419871f, 0.703066f, 0.668243f, 0.0899058f, 0.00525947f, 0.787991f, 0.344101f, 0.0696129f, 0.526693f, 0.632484f, 0.375728f, 0.541594f, 0.302108f, 0.943538f, 0.839067f, 0.910706f, 0.255279f, 0.357752f, 0.0497454f, 0.48508f, 0.863901f, 0.951625f, 0.109146f, 0.992858f, 0.870187f, 0.385033f, 0.677675f, 0.931436f, 0.941014f, 0.00521233f, 0.105928f, 0.379234f, 0.939234f, 0.53624f, 0.384615f, 0.00650715f, 0.808601f, 0.662308f, 0.735212f, 0.0695151f, 0.479795f, 0.929365f, 0.701006f, 0.834088f, 0.578986f, 0.744037f, 0.0661025f, 0.973867f, 0.261607f, 0.985263f, 0.253784f, 0.544204f, 0.395415f, 0.811786f, 0.944674f, 0.753067f, 0.189604f, 0.972342f, 0.245785f, 0.147862f, 0.151078f, 0.57075f, 0.635751f, 0.0225594f, 0.345569f, 0.71366f, 0.725875f, 0.899222f, 0.403696f, 0.782293f, 0.0489821f, 0.887563f, 0.250663f, 0.0903273f, 0.819318f, 0.253849f, 0.0132522f, 0.82073f, 0.139879f, 0.655119f, 0.255256f, 0.469931f, 0.593655f, 0.0965594f, 0.732102f, 0.728242f, 0.0409236f, 0.251098f, 0.401525f, 0.0154955f, 0.510258f, 0.110728f, 0.152886f, 0.542219f, 0.0361622f, 0.682425f, 0.511941f, 0.298943f, 0.813534f, 0.388954f, 0.997212f, 0.693391f, 0.854456f, 0.967423f, 0.0728081f, 0.156642f, 0.81487f, 0.0938402f, 0.870291f, 0.00359174f, 0.202676f, 0.257248f, 0.234333f, 0.943676f, 0.106374f, 0.133571f, 0.617775f, 0.246666f, 0.0606647f, 0.482131f, 0.969785f, 0.507517f, 0.668117f, 0.275743f, 0.902052f, 0.531065f, 0.79073f, 0.494458f, 0.887946f, 0.186152f, 0.428784f, 0.891797f, 0.382117f, 0.129718f, 0.281837f, 0.629808f, 0.759124f, 0.747099f, 0.197973f, 0.334452f, 0.628123f, 0.442394f, 0.991491f, 0.722564f, 0.62702f, 0.125107f, 0.868864f, 0.123806f, 0.84943f, 0.109148f, 0.583516f, 0.267467f, 0.0877627f, 0.356361f, 0.183282f, 0.460304f, 0.472661f, 0.808155f, 0.075511f, 0.805119f, 0.183075f, 0.761517f, 0.0534024f, 0.991497f, 0.317623f, 0.714449f, 0.764721f, 0.218848f, 0.324785f, 0.154461f, 0.222869f, 0.0563985f, 0.297541f, 0.266297f, 0.542826f, 0.215959f, 0.640029f, 0.988854f, 0.128625f, 0.314472f, 0.439426f, 0.000551791f, 0.912863f, 0.531367f, 0.679102f, 0.601362f, 0.105811f, 0.314219f, 0.618917f, 0.764213f, 0.80435f, 0.297977f, 0.671961f, 0.471981f, 0.241108f, 0.44709f, 0.0413762f, 0.34009f, 0.78462f, 0.57256f, 0.956279f, 0.143586f, 0.51728f, 0.199193f, 0.258778f, 0.759231f, 0.491842f, 0.74638f, 0.447776f, 0.67335f, 0.207011f, 0.381928f, 0.864476f, 0.533022f, 0.330994f, 0.124275f, 0.609111f, 0.597315f, 0.620957f, 0.607921f, 0.366002f, 0.726719f, 0.267236f, 0.29924f, 0.772097f, 0.515079f, 0.666223f, 0.87179f, 0.442252f, 0.151785f, 0.90383f, 0.23036f, 0.754115f, 0.116684f, 0.814789f, 0.68958f, 0.90636f, 0.172124f, 0.7386f, 0.155248f, 0.0162329f, 0.624234f, 0.258763f, 0.948516f, 0.381014f, 0.810977f, 0.359154f, 0.235406f, 0.356012f, 0.0572227f, 0.804645f, 0.537197f, 0.0874575f, 0.896756f, 0.136418f, 0.636846f, 0.634131f, 0.314875f, 0.548805f, 0.846664f, 0.01975f, 0.0153124f, 0.100952f, 0.505608f, 0.441595f, 0.195817f, 0.0710239f, 0.418799f, 0.25282f, 0.502326f, 0.206681f, 0.22771f, 0.674104f, 0.517355f, 0.979707f, 0.987148f, 0.0530045f, 0.20894f, 0.768026f, 0.00615492f, 0.125182f, 0.131701f, 0.33811f, 0.035456f, 0.409955f, 0.0982514f, 0.512931f, 0.639528f, 0.757367f, 0.180887f, 0.0871219f, 0.693054f, 0.033327f, 0.432908f, 0.302984f, 0.306617f, 0.90297f, 0.231033f, 0.932071f, 0.621631f, 0.929752f, 0.0404275f, 0.227181f, 0.861182f, 0.480741f, 0.422462f, 0.615124f, 0.915947f, 0.688272f, 0.607257f, 0.1993f, 0.186042f, 0.61691f, 0.891939f, 0.496047f, 0.781836f, 0.199635f, 0.182435f, 0.612945f, 0.894777f, 0.879591f, 0.660906f, 0.685511f, 0.788352f, 0.958656f, 0.150172f, 0.0447784f, 0.273053f, 0.216175f, 0.674368f, 0.93646f, 0.140018f, 0.47613f, 0.698821f, 0.453178f, 0.888401f, 0.933526f, 0.615275f, 0.000670214f, 0.959936f, 0.496414f, 0.213354f, 0.210349f, 0.839183f, 0.51017f, 0.556663f, 0.925326f, 0.329077f, 0.184683f, 0.193059f, 0.656384f, 0.325528f, 0.632767f, 0.126699f, 0.925868f, 0.509177f, 0.17664f, 0.356426f, 0.678694f, 0.236191f, 0.33291f, 0.977011f, 0.476779f, 0.718923f, 0.919251f, 0.929422f, 0.29569f, 0.517599f, 0.615562f, 0.240366f, 0.76536f, 0.261594f, 0.063962f, 0.0635975f, 0.7285f, 0.0742968f, 0.332238f, 0.812666f, 0.695448f, 0.45352f, 0.573693f, 0.913696f, 0.859744f, 0.56925f, 0.212218f, 0.455896f, 0.61064f, 0.844059f, 0.128933f, 0.716734f, 0.348449f, 0.456306f, 0.910307f, 0.820405f, 0.452022f, 0.510913f, 0.258321f, 0.742017f, 0.731542f, 0.0235238f, 0.040882f, 0.476367f, 0.656551f, 0.624292f, 0.204659f, 0.111937f, 0.615081f, 0.82015f, 0.275911f, 0.498798f, 0.461723f, 0.657982f, 0.853992f, 0.558108f, 0.906463f, 0.924759f, 0.619716f, 0.95225f, 0.589059f, 0.0982191f, 0.751691f, 0.211192f, 0.671573f, 0.260589f, 0.588264f, 0.0346792f, 0.0482873f, 0.510086f, 0.349504f, 0.660904f, 0.826408f, 0.0655397f, 0.580624f, 0.3739f, 0.163301f, 0.545839f, 0.625426f, 0.200927f, 0.273938f, 0.5373f, 0.403679f, 0.456807f, 0.239441f, 0.996926f, 0.102652f, 0.68999f, 0.475656f, 0.741837f, 0.401398f, 0.812666f, 0.546468f, 0.189733f, 0.342652f, 0.499778f, 0.717045f, 0.305709f, 0.550696f, 0.53988f, 0.100314f, 0.643375f, 0.474279f, 0.656759f, 0.466198f, 0.662595f, 0.633828f, 0.758396f, 0.761698f, 0.541539f, 0.489411f, 0.618273f, 0.434244f, 0.742823f, 0.606137f, 0.7101f, 0.954731f, 0.948781f, 0.7361f, 0.587935f, 0.486731f, 0.647607f, 0.75671f, 0.702835f, 0.711711f, 0.586863f, 0.848073f, 0.300948f, 0.148951f, 0.816649f, 0.988274f, 0.0570969f, 0.1096f, 0.337949f, 0.976047f, 0.719306f, 0.483844f, 0.0940332f, 0.196285f, 0.747962f, 0.379384f, 0.106179f, 0.799456f, 0.174423f, 0.406282f, 0.246921f, 0.256564f, 0.828962f, 0.698113f, 0.0399356f, 0.765064f, 0.0191448f, 0.386214f, 0.658786f, 0.652422f, 0.337354f, 0.288205f, 0.891075f, 0.158086f, 0.906013f, 0.018156f, 0.714958f, 0.89861f, 0.234953f, 0.527373f, 0.582787f, 0.568185f, 0.959503f, 0.636878f, 0.527452f, 0.121195f, 0.107195f, 0.441484f, 0.418231f, 0.753505f, 0.727609f, 0.0541921f, 0.485776f, 0.503656f, 0.433017f, 0.29717f, 0.392388f, 0.301751f, 0.315352f, 0.874547f, 0.575243f, 0.246232f, 0.825157f, 0.464173f, 0.680217f, 0.390777f, 0.822336f, 0.212753f, 0.787785f, 0.510527f, 0.467947f, 0.241204f, 0.521058f, 0.0909303f, 0.200768f, 0.394032f, 0.0165349f, 0.805721f, 0.72412f, 0.770236f, 0.0582422f, 0.971895f, 0.792536f, 0.542421f, 0.78991f, 0.590295f, 0.747239f, 0.99464f, 0.200602f, 0.241855f, 0.598453f, 0.493848f, 0.27987f, 0.30733f, 0.127177f, 0.254606f, 0.494435f, 0.0841555f, 0.576549f, 0.145725f, 0.0546114f, 0.0362378f, 0.957958f, 0.288541f, 0.0565653f, 0.145986f, 0.36743f, 0.192862f, 0.290345f, 0.537247f, 0.746676f, 0.681115f, 0.996155f, 0.234617f, 0.369617f, 0.121955f, 0.580465f, 0.307617f, 0.136119f, 0.104037f, 0.865525f, 0.124501f, 0.532013f, 0.64481f, 0.739872f, 0.632477f, 0.814801f, 0.93168f, 0.38521f, 0.908957f, 0.807734f, 0.321802f, 0.896562f, 0.236808f, 0.6599f, 0.498504f, 0.347144f, 0.180491f, 0.101337f, 0.191679f, 0.855543f, 0.612942f, 0.407704f, 0.425052f, 0.272515f, 0.550212f, 0.567009f, 0.108733f, 0.146584f, 0.208679f, 0.234469f, 0.465162f, 0.624395f, 0.774398f, 0.218611f, 0.409766f, 0.0898917f, 0.161216f, 0.148789f, 0.183195f, 0.0843108f, 0.869797f, 0.224993f, 0.499894f, 0.862288f, 0.241025f, 0.752014f, 0.36165f, 0.654792f, 0.923862f, 0.0966728f, 0.789465f, 0.159298f, 0.740185f, 0.77383f, 0.991635f, 0.713953f, 0.367305f, 0.040462f, 0.623321f, 0.927709f, 0.756282f, 0.606602f, 0.113327f, 0.413703f, 0.0914552f, 0.420561f, 0.748681f, 0.306706f, 0.72615f, 0.695731f, 0.548968f, 0.573537f, 0.979815f, 0.626213f, 0.305221f, 0.158659f, 0.633565f, 0.170755f, 0.485148f, 0.268398f, 0.507022f, 0.906592f, 0.809645f, 0.627242f, 0.999936f, 0.0216729f, 0.980077f, 0.52859f, 0.0123064f, 0.00232397f, 0.972017f, 0.382635f, 0.121302f, 0.493779f, 0.567817f, 0.911133f, 0.0871138f, 0.599627f, 0.115265f, 0.450287f, 0.780666f, 0.865141f, 0.307955f, 0.735813f, 0.567671f, 0.591114f, 0.941282f, 0.83531f, 0.67837f, 0.130881f, 0.0951256f, 0.502334f, 0.261934f, 0.857612f, 0.0353245f, 0.708687f, 0.316288f, 0.0805712f, 0.457426f, 0.680125f, 0.0843126f, 0.0490645f, 0.231759f, 0.578554f, 0.330789f, 0.8628f, 0.824783f, 0.166781f, 0.862871f, 0.81565f, 0.505021f, 0.885875f, 0.460335f, 0.865464f, 0.447298f, 0.876686f, 0.0830998f, 0.15168f, 0.627932f, 0.182174f, 0.753408f, 0.836232f, 0.672615f, 0.656261f, 0.302819f, 0.740058f, 0.689478f, 0.279968f, 0.635182f, 0.117409f, 0.00626437f, 0.456218f, 0.807713f, 0.251191f, 0.820771f, 0.77408f, 0.174188f, 0.711287f, 0.754445f, 0.273267f, 0.767036f, 0.730595f, 0.522546f, 0.88703f, 0.361198f, 0.0353319f, 0.877134f, 0.988986f, 0.204904f, 0.992377f, 0.939382f, 0.341524f, 0.396681f, 0.272108f, 0.239635f, 0.662509f, 0.22789f, 0.0619506f, 0.616147f, 0.938789f, 0.775433f, 0.990873f, 0.339021f, 0.779552f, 0.117211f, 0.712956f, 0.717854f, 0.131823f, 0.595103f, 0.0292718f, 0.292804f, 0.193673f, 0.933603f, 0.593664f, 0.466499f, 0.128053f, 0.663693f, 0.42322f, 0.382425f, 0.570339f, 0.776564f, 0.943218f, 0.093447f, 0.0682411f, 0.69909f, 0.443366f, 0.317931f, 0.84869f, 0.183775f, 0.312399f, 0.945411f, 0.463951f, 0.432878f, 0.145746f, 0.188364f, 0.188764f, 0.457817f, 0.572288f, 0.537736f, 0.738041f, 0.459331f, 0.64282f, 0.0624071f, 0.474108f, 0.182366f, 0.922296f, 0.839323f, 0.74715f, 0.778098f, 0.573252f, 0.0640188f, 0.944897f, 0.64589f, 0.999235f, 0.590727f, 0.337527f, 0.59781f, 0.0359797f, 0.955797f, 0.77844f, 0.662479f, 0.513896f, 0.0163096f, 0.747998f, 0.0360402f, 0.705696f, 0.973208f, 0.845952f, 0.709785f, 0.67494f, 0.805323f, 0.0969568f, 0.325202f, 0.0714327f, 0.791022f, 0.757233f, 0.0614314f, 0.740612f, 0.605001f, 0.413097f, 0.954425f, 0.600159f, 0.873595f, 0.0655813f, 0.384691f, 0.251813f, 0.745998f, 0.533274f, 0.443477f, 0.854914f, 0.147696f, 0.70125f, 0.872174f, 0.765999f, 0.894347f, 0.879889f, 0.660996f, 0.969646f, 0.304701f, 0.445453f, 0.659715f, 0.381944f, 0.520705f, 0.714079f, 0.836213f, 0.832662f, 0.754242f, 0.30226f, 0.829836f, 0.370085f, 0.459174f, 0.0184747f, 0.338752f, 0.174265f, 0.0608699f, 0.538762f, 0.819461f, 0.129266f, 0.145965f, 0.487517f, 0.780537f, 0.412783f, 0.679595f, 0.43848f, 0.378472f, 0.0195386f, 0.773959f, 0.261836f, 0.370295f, 0.33285f, 0.803101f, 0.536888f, 0.787662f, 0.209807f, 0.592566f, 0.648303f, 0.390306f, 0.103752f, 0.986843f, 0.929569f, 0.71857f, 0.957646f, 0.910195f, 0.0648032f, 0.319069f, 0.680391f, 0.826063f, 0.0757938f, 0.561298f, 0.857515f, 0.794047f, 0.899224f, 0.712926f, 0.401044f, 0.117418f, 0.600851f, 0.190359f, 0.249319f, 0.20464f, 0.662339f, 0.52592f, 0.0274111f, 0.836938f, 0.239578f, 0.651635f, 0.0611872f, 0.0945418f, 0.528391f, 0.283961f, 0.364771f, 0.848008f, 0.485995f, 0.321334f, 0.515475f, 0.928903f, 0.570365f, 0.600579f, 0.434511f, 0.489399f, 0.52756f, 0.210483f, 0.967534f, 0.578201f, 0.859337f, 0.455444f, 0.601162f, 0.968564f, 0.464987f, 0.294394f, 0.950558f, 0.859097f, 0.353452f, 0.508704f, 0.0572695f, 0.878435f, 0.497444f, 0.712181f, 0.603459f, 0.294603f, 0.0183161f, 0.742282f, 0.134371f, 0.838665f, 0.244169f, 0.215071f, 0.219618f, 0.868365f, 0.223855f, 0.10396f, 0.640758f, 0.360926f, 0.600482f, 0.428329f, 0.6458f, 0.884642f, 0.821694f, 0.564888f, 0.354406f, 0.50628f, 0.56707f, 0.48061f, 0.256565f, 0.162061f, 0.264642f, 0.176f, 0.797713f, 0.695703f, 0.0347149f, 0.358338f, 0.738206f, 0.996526f, 0.866617f, 0.702375f, 0.769468f, 0.778317f, 0.958645f, 0.705213f, 0.24094f, 0.613293f, 0.064266f, 0.355869f, 0.28731f, 0.755503f, 0.972533f, 0.236803f, 0.631452f, 0.337084f, 0.569386f, 0.597535f, 0.86532f, 0.107403f, 0.729218f, 0.929612f, 0.316315f, 0.374365f, 0.419137f, 0.0346695f, 0.22599f, 0.765266f, 0.762818f, 0.421948f, 0.776579f, 0.048408f, 0.82698f, 0.0443337f, 0.110848f, 0.945854f, 0.622762f, 0.824669f, 0.452839f, 0.13288f, 0.0346938f, 0.00553679f, 0.465445f, 0.348694f, 0.457617f, 0.214636f, 0.684004f, 0.65387f, 0.890835f, 0.103985f, 0.783019f, 0.618773f, 0.350593f, 0.0775283f, 0.444621f, 0.218794f, 0.241285f, 0.958123f, 0.489579f, 0.432822f, 0.568368f, 0.913775f, 0.943068f, 0.627533f, 0.603186f, 0.540667f, 0.744381f, 0.875275f, 0.844755f, 0.0174166f, 0.464942f, 0.317896f, 0.0332355f, 0.458499f, 0.205926f, 0.903786f, 0.750243f, 0.567707f, 0.98369f, 0.371693f, 0.669664f, 0.531643f, 0.180359f, 0.361585f, 0.00335906f, 0.318602f, 0.195698f, 0.369699f, 0.990901f, 0.677709f, 0.407581f, 0.493613f, 0.344604f, 0.676065f, 0.906602f, 0.638278f, 0.994109f, 0.740991f, 0.131499f, 0.929675f, 0.221182f, 0.13649f, 0.332655f, 0.340143f, 0.721501f, 0.769877f, 0.236854f, 0.480517f, 0.726663f, 0.351297f, 0.926842f, 0.083694f, 0.494518f, 0.155554f, 0.450391f, 0.982103f, 0.996747f, 0.174879f, 0.256117f, 0.139142f, 0.214806f, 0.158685f, 0.586095f, 0.338354f, 0.614175f, 0.841028f, 0.292725f, 0.466278f, 0.0118071f, 0.42022f, 0.359505f, 0.181877f, 0.96953f, 0.00445722f, 0.348085f, 0.82084f, 0.700947f, 0.375728f, 0.960564f, 0.111186f, 0.540983f, 0.0949823f, 0.171617f, 0.212728f, 0.16643f, 0.196016f, 0.587307f, 0.275467f, 0.522472f, 0.771585f, 0.949014f, 0.143102f, 0.695324f, 0.161092f, 0.927273f, 0.191568f, 0.942837f, 0.993984f, 0.625371f, 0.679651f, 0.228692f, 0.0646917f, 0.510172f, 0.240227f, 0.32828f, 0.693107f, 0.433269f, 0.605574f, 0.904861f, 0.0463241f, 0.834283f, 0.688484f, 0.656301f, 0.58022f, 0.4408f, 0.103781f, 0.630454f, 0.322349f, 0.896852f, 0.449489f, 0.0570403f, 0.617251f, 0.883792f, 0.179986f, 0.707624f, 0.77835f, 0.243734f, 0.561266f, 0.586223f, 0.438363f, 0.953877f, 0.743421f, 0.733121f, 0.216126f, 0.90829f, 0.516516f, 0.692057f, 0.951343f, 0.0675496f, 0.316683f, 0.244522f, 0.792675f, 0.376051f, 0.0143059f, 0.643436f, 0.298803f, 0.0576619f, 0.380479f, 0.746218f, 0.287584f, 0.187898f, 0.920636f, 0.194111f, 0.34229f, 0.790386f, 0.14599f, 0.556051f, 0.705318f, 0.656441f, 0.496029f, 0.542332f, 0.1645f, 0.492319f, 0.954601f, 0.177927f, 0.276164f, 0.22762f, 0.32493f, 0.91123f, 0.896803f, 0.654353f, 0.157141f, 0.224378f, 0.91494f, 0.162872f, 0.678897f, 0.993529f, 0.637636f, 0.694994f, 0.0509588f, 0.836324f, 0.695569f, 0.44761f, 0.955311f, 0.582084f, 0.958026f, 0.712391f, 0.00320049f, 0.538606f, 0.332169f, 0.857005f, 0.414114f, 0.96268f, 0.274303f, 0.415184f, 0.523528f, 0.721638f, 0.599046f, 0.242755f, 0.615222f, 0.843255f, 0.470847f, 0.920254f, 0.316538f, 0.274159f, 0.8287f, 0.274861f, 0.824354f, 0.437267f, 0.277049f, 0.332389f, 0.190334f, 0.331419f, 0.109626f, 0.502458f, 0.182766f, 0.297817f, 0.732984f, 0.640832f, 0.555837f, 0.914909f, 0.468271f, 0.467219f, 0.40506f, 0.520978f, 0.656365f, 0.11869f, 0.456818f, 0.559413f, 0.144938f, 0.74336f, 0.584908f, 0.537623f, 0.674104f, 0.943294f, 0.659128f, 0.237188f, 0.146685f, 0.53129f, 0.0179168f, 0.356908f, 0.732138f, 0.702265f, 0.349355f, 0.763519f, 0.617723f, 0.523395f, 0.965883f, 0.487675f, 0.427342f, 0.373506f, 0.453232f, 0.0394451f, 0.369668f, 0.00914111f, 0.881545f, 0.0724042f, 0.927582f, 0.324555f, 0.0941736f, 0.47234f, 0.756342f, 0.752158f, 0.449889f, 0.117064f, 0.114565f, 0.0045895f, 0.327032f, 0.387492f, 0.425723f, 0.862187f, 0.222687f, 0.766443f, 0.367362f, 0.690474f, 0.178881f, 0.135989f, 0.114383f, 0.825347f, 0.341722f, 0.782338f, 0.308572f, 0.293956f, 0.387742f, 0.0142812f, 0.401329f, 0.144238f, 0.0495865f, 0.356923f, 0.156867f, 0.170243f, 0.718662f, 0.912029f, 0.834639f, 0.215414f, 0.0839454f, 0.148086f, 0.217804f, 0.811317f, 0.920402f, 0.0586855f, 0.0329758f, 0.0263719f, 0.658111f, 0.574262f, 0.692549f, 0.68292f, 0.913411f, 0.240955f, 0.186842f, 0.284684f, 0.117448f, 0.637308f, 0.957041f, 0.16833f, 0.719782f, 0.102436f, 0.379235f, 0.122089f, 0.602184f, 0.485571f, 0.84005f, 0.105527f, 0.469871f, 0.248729f, 0.00676744f, 0.366441f, 0.403439f, 0.33634f, 0.757695f, 0.0786852f, 0.836826f, 0.78299f, 0.0722696f, 0.78057f, 0.657075f, 0.193909f, 0.550114f, 0.652188f, 0.0142821f, 0.229322f, 0.934737f, 0.149157f, 0.88318f, 0.774805f, 0.964661f, 0.643678f, 0.360938f, 0.778543f, 0.157738f, 0.103629f, 0.931544f, 0.380012f, 0.121943f, 0.238004f, 0.760559f, 0.725979f, 0.53513f, 0.766723f, 0.0401009f, 0.620393f, 0.630249f, 0.405008f, 0.959788f, 0.80575f, 0.236967f, 0.625684f, 0.388467f, 0.953654f, 0.994125f, 0.0230346f, 0.507076f, 0.210318f, 0.0385301f, 0.552732f, 0.0265099f, 0.222398f, 0.423747f, 0.272351f, 0.834126f, 0.99586f, 0.0463798f, 0.829511f, 0.757224f, 0.147362f, 0.663439f, 0.268156f, 0.849856f, 0.918821f, 0.411856f, 0.297368f, 0.080905f, 0.835083f, 0.780202f, 0.0422531f, 0.447372f, 0.737908f, 0.102246f, 0.729214f, 0.224439f, 0.428741f, 0.222256f, 0.306354f, 0.629916f, 0.00518644f, 0.477361f, 0.0474277f, 0.467655f, 0.686702f, 0.817537f, 0.504495f, 0.518373f, 0.146359f, 0.252321f, 0.203889f, 0.910166f, 0.531066f, 0.313883f, 0.2381f, 0.545953f, 0.216966f, 0.418459f, 0.912806f, 0.176371f, 0.438982f, 0.240744f, 0.0794779f, 0.994595f, 0.278453f, 0.400769f, 0.0782807f, 0.889999f, 0.418176f, 0.347143f, 0.273475f, 0.205514f, 0.759991f, 0.903665f, 0.409366f, 0.0882369f, 0.376072f, 0.721938f, 0.937471f, 0.120882f, 0.397291f, 0.869296f, 0.266098f, 0.295355f, 0.174629f, 0.37502f, 0.155379f, 0.404924f, 0.1164f, 0.00462026f, 0.763402f, 0.496744f, 0.298112f, 0.951157f, 0.713349f, 0.0997802f, 0.194445f, 0.677812f, 0.570464f, 0.540525f, 0.611322f, 0.79392f, 0.663679f, 0.402192f, 0.989105f, 0.589964f, 0.738755f, 0.986626f, 0.11957f, 0.0732776f, 0.240861f, 0.186489f, 0.512955f, 0.432652f, 0.0161617f, 0.38682f, 0.925296f, 0.342052f, 0.371361f, 0.470874f, 0.949556f, 0.480838f, 0.0379082f, 0.9407f, 0.0782391f, 0.979132f, 0.204998f, 0.224844f, 0.229374f, 0.745913f, 0.928883f, 0.622481f, 0.519469f, 0.799578f, 0.792531f, 0.554854f, 0.291082f, 0.294391f, 0.971212f, 0.288005f, 0.747603f, 0.809856f, 0.791771f, 0.630849f, 0.303592f, 0.353968f, 0.249254f, 0.68871f, 0.396236f, 0.605167f, 0.796824f, 0.138875f, 0.455243f, 0.385981f, 0.964006f, 0.0848079f, 0.792819f, 0.869265f, 0.803885f, 0.935309f, 0.417941f, 0.203644f, 0.956039f, 0.64233f, 0.35857f, 0.39705f, 0.811816f, 0.728825f, 0.685236f, 0.0717718f, 0.340452f, 0.201315f, 0.231661f, 0.367571f, 0.825858f, 0.965742f, 0.535537f, 0.557745f, 0.795049f, 0.688065f, 0.715029f, 0.11602f, 0.346939f, 0.0779004f, 0.610731f, 0.0363135f, 0.191785f, 0.149359f, 0.179063f, 0.619259f, 0.894837f, 0.606516f, 0.835649f, 0.744404f, 0.85976f, 0.00801029f, 0.314161f, 0.530013f, 0.78919f, 0.798813f, 0.198568f, 0.13958f, 0.455709f, 0.618315f, 0.192537f, 0.0597794f, 0.656235f, 0.383071f, 0.160273f, 0.991552f, 0.100751f, 0.0272762f, 0.953681f, 0.965513f, 0.169782f, 0.0975637f, 0.888773f, 0.468986f, 0.98299f, 0.642847f, 0.982967f, 0.355461f, 0.784416f, 0.0804038f, 0.104699f, 0.0973213f, 0.964221f, 0.299878f, 0.382839f, 0.457528f, 0.163674f, 0.563012f, 0.07733f, 0.848005f, 0.13214f, 0.608961f, 0.756853f, 0.134063f, 0.368275f, 0.909723f, 0.946898f, 0.00995811f, 0.850901f, 0.0314379f, 0.195158f, 0.913039f, 0.279981f, 0.292827f, 0.602928f, 0.103975f, 0.0230125f, 0.417945f, 0.518034f, 0.787355f, 0.912443f, 0.628286f, 0.711559f, 0.47867f, 0.145804f, 0.528277f, 0.425184f, 0.487301f, 0.22956f, 0.212752f, 0.781067f, 0.256432f, 0.554427f, 0.289068f, 0.796314f, 0.411552f, 0.322083f, 0.409769f, 0.910203f, 0.400269f, 0.344701f, 0.35303f, 0.44672f, 0.792342f, 0.303823f, 0.494524f, 0.229047f, 0.818262f, 0.96123f, 0.206095f, 0.984454f, 0.278431f, 0.345315f, 0.504815f, 0.0530352f, 0.362624f, 0.593876f, 0.104974f, 0.836431f, 0.528722f, 0.16591f, 0.263385f, 0.0849035f, 0.980139f, 0.618537f, 0.822645f, 0.247457f, 0.209401f, 0.262689f, 0.450511f, 0.650026f, 0.803747f, 0.725778f, 0.832191f, 0.194117f, 0.576881f, 0.986633f, 0.933653f, 0.387109f, 0.566776f, 0.297886f, 0.608794f, 0.0209304f, 0.257444f, 0.555433f, 0.89687f, 0.572963f, 0.8439f, 0.287748f, 0.470621f, 0.0169381f, 0.262726f, 0.681365f, 0.0883942f, 0.757639f, 0.464354f, 0.341893f, 0.949142f, 0.581639f, 0.423602f, 0.385882f, 0.208789f, 0.386493f, 0.314197f, 0.575431f, 0.120347f, 0.70004f, 0.662324f, 0.01264f, 0.114641f, 0.941158f, 0.897689f, 0.503811f, 0.574991f, 0.914898f, 0.913198f, 0.461668f, 0.101269f, 0.14161f, 0.394222f, 0.10442f, 0.395801f, 0.230198f, 0.188025f, 0.492823f, 0.109863f, 0.0250429f, 0.969826f, 0.133829f, 0.234891f, 0.0746836f, 0.5961f, 0.286069f, 0.800607f, 0.165306f, 0.0433477f, 0.322804f, 0.222233f, 0.295832f, 0.257818f, 0.0825347f, 0.216227f, 0.752737f, 0.0751812f, 0.645368f, 0.632464f, 0.626096f, 0.621743f, 0.232217f, 0.628269f, 0.318728f, 0.325243f, 0.057867f, 0.698394f, 0.189754f, 0.334127f, 0.424018f, 0.268702f, 0.30531f, 0.530198f, 0.823827f, 0.643645f, 0.462101f, 0.847939f, 0.563049f, 0.261867f, 0.571493f, 0.262511f, 0.791703f, 0.957797f, 0.328557f, 0.646388f, 0.157902f, 0.372722f, 0.101383f, 0.734011f, 0.477462f, 0.321272f, 0.0474629f, 0.0760908f, 0.114701f, 0.746874f, 0.373927f, 0.337629f, 0.977809f, 0.672818f, 0.395289f, 0.681723f, 0.0131544f, 0.493766f, 0.346927f, 0.689504f, 0.434476f, 0.413359f, 0.99947f, 0.964719f, 0.475063f, 0.727556f, 0.734707f, 0.223579f, 0.426226f, 0.756575f, 0.468032f, 0.248982f, 0.431785f, 0.668905f, 0.583883f, 0.354555f, 0.207369f, 0.549294f, 0.94f, 0.459033f, 0.502353f, 0.958875f, 0.562426f, 0.0652912f, 0.102932f, 0.212556f, 0.413588f, 0.429526f, 0.851667f, 0.410742f, 0.228292f, 0.963911f, 0.496349f, 0.430071f, 0.439852f, 0.767093f, 0.546101f, 0.255007f, 0.201509f, 0.563849f, 0.838783f, 0.365303f, 0.0655348f, 0.800652f, 0.978375f, 0.810624f, 0.211064f, 0.62007f, 0.428826f, 0.573271f, 0.750786f, 0.0810026f, 0.416919f, 0.462141f, 0.000943617f, 0.977593f, 0.861739f, 0.884804f, 0.350952f, 0.240372f, 0.379984f, 0.452709f, 0.853189f, 0.87503f, 0.677902f, 0.572678f, 0.10547f, 0.296211f, 0.862692f, 0.092125f, 0.81823f, 0.257098f, 0.42691f, 0.366794f, 0.0364343f, 0.482036f, 0.596226f, 0.33398f, 0.859671f, 0.28293f, 0.308289f, 0.577807f, 0.569985f, 0.162831f, 0.94961f, 0.723335f, 0.79226f, 0.87131f, 0.234758f, 0.55269f, 0.875409f, 0.320202f, 0.119095f, 0.91847f, 0.191865f, 0.659438f, 0.760577f, 0.902728f, 0.906769f, 0.119967f, 0.487316f, 0.975686f, 0.0340326f, 0.65472f, 0.309501f, 0.381418f, 0.530099f, 0.753478f, 0.93878f, 0.678147f, 0.688696f, 0.00245004f, 0.490236f, 0.685161f, 0.421622f, 0.958775f, 0.154161f, 0.0930764f, 0.234936f, 0.198518f, 0.423502f, 0.870014f, 0.952276f, 0.955144f, 0.842629f, 0.836175f, 0.832134f, 0.538878f, 0.22937f, 0.885935f, 0.241952f, 0.319063f, 0.70922f, 0.269259f, 0.0778196f, 0.34701f, 0.00989241f, 0.0159236f, 0.635993f, 0.402755f, 0.942878f, 0.411093f, 0.98434f, 0.235589f, 0.994109f, 0.0852568f, 0.134627f, 0.209175f, 0.509332f, 0.236745f, 0.731749f, 0.354398f, 0.781152f, 0.751758f, 0.177992f, 0.710649f, 0.435356f, 0.605941f, 0.729911f, 0.695595f, 0.210447f, 0.0477255f, 0.26159f, 0.605423f, 0.324117f, 0.343792f, 0.912852f, 0.369955f, 0.79601f, 0.975273f, 0.507518f, 0.448687f, 0.381703f, 0.629233f, 0.813722f, 0.259551f, 0.226481f, 0.835694f, 0.89278f, 0.184935f, 0.211618f, 0.769111f, 0.662097f, 0.571907f, 0.590063f, 0.623795f, 0.468348f, 0.414587f, 0.822965f, 0.713424f, 0.780369f, 0.803439f, 0.568014f, 0.563408f, 0.851325f, 0.281048f, 0.876279f, 0.868437f, 0.356462f, 0.406371f, 0.892966f, 0.382094f, 0.55697f, 0.553828f, 0.906916f, 0.158109f, 0.719806f, 0.881736f, 0.548851f, 0.618368f, 0.148101f, 0.0724919f, 0.537699f, 0.208591f, 0.239957f, 0.963071f, 0.0796868f, 0.252854f, 0.876368f, 0.820898f, 0.72598f, 0.852893f, 0.468395f, 0.0790652f, 0.694691f, 0.418392f, 0.99056f, 0.297655f, 0.996152f, 0.0701952f, 0.386079f, 0.794964f, 0.315134f, 0.151314f, 0.0534037f, 0.66005f, 0.544951f, 0.926899f, 0.49286f, 0.351729f, 0.615444f, 0.744605f, 0.140895f, 0.969391f, 0.675596f, 0.490887f, 0.421324f, 0.473488f, 0.0438011f, 0.373039f, 0.996306f, 0.454424f, 0.71002f, 0.107729f, 0.138564f, 0.585049f, 0.0476726f, 0.419484f, 0.255132f, 0.378118f, 0.838807f, 0.7523f, 0.954979f, 0.903597f, 0.611968f, 0.0974334f, 0.112477f, 0.935068f, 0.391622f, 0.939205f, 0.643313f, 0.0548231f, 0.915073f, 0.43213f, 0.102186f, 0.559038f, 0.993986f, 0.420751f, 0.340141f, 0.715827f, 0.699336f, 0.353872f, 0.792753f, 0.965768f, 0.702062f, 0.322321f, 0.135546f, 0.528437f, 0.900718f, 0.735977f, 0.817645f, 0.27058f, 0.518426f, 0.488729f, 0.896793f, 0.0816079f, 0.643914f, 0.74724f, 0.411665f, 0.914873f, 0.540361f, 0.688787f, 0.438461f, 0.463882f, 0.911583f, 0.82772f, 0.301927f, 0.590404f, 0.105204f, 0.36647f, 0.367514f, 0.224721f, 0.925065f, 0.446643f, 0.259639f, 0.904391f, 0.0983455f, 0.130981f, 0.875149f, 0.636404f, 0.376162f, 0.127885f, 0.755759f, 0.604847f, 0.507388f, 0.604483f, 0.97776f, 0.27063f, 0.757754f, 0.40943f, 0.475205f, 0.165916f, 0.243159f, 0.35404f, 0.65918f, 0.941012f, 0.17674f, 0.538121f, 0.474917f, 0.60938f, 0.440644f, 0.168155f, 0.721901f, 0.0850913f, 0.206669f, 0.591958f, 0.520876f, 0.218974f, 0.874243f, 0.971393f, 0.00567012f, 0.357306f, 0.0156748f, 0.40943f, 0.158562f, 0.69115f, 0.0883478f, 0.312241f, 0.0634005f, 0.757253f, 0.203473f, 0.370921f, 0.644864f, 0.989725f, 0.423615f, 0.429686f, 0.96982f, 0.855455f, 0.416648f, 0.199682f, 0.359497f, 0.352384f, 0.69602f, 0.34028f, 0.80014f, 0.750196f, 0.460324f, 0.382704f, 0.359189f, 0.512177f, 0.186704f, 0.542782f, 0.731731f, 0.91864f, 0.606535f, 0.0746311f, 0.763923f, 0.388399f, 0.519247f, 0.955015f, 0.0450288f, 0.191685f, 0.102118f, 0.0870352f, 0.940065f, 0.458274f, 0.850774f, 0.739829f, 0.798335f, 0.446416f, 0.0188362f, 0.370395f, 0.0983858f, 0.102169f, 0.514217f, 0.290697f, 0.272838f, 0.0472025f, 0.547151f, 0.765991f, 0.418189f, 0.533692f, 0.25021f, 0.979033f, 0.549196f, 0.189791f, 0.81571f, 0.311049f, 0.163646f, 0.231815f, 0.722312f, 0.283984f, 0.247224f, 0.109344f, 0.0676099f, 0.945489f, 0.192456f, 0.845967f, 0.332795f, 0.61661f, 0.319271f, 0.900084f, 0.0380171f, 0.0324031f, 0.627179f, 0.587327f, 0.0152705f, 0.582405f, 0.684816f, 0.483042f, 0.336544f, 0.472563f, 0.0322619f, 0.724403f, 0.646268f, 0.0558811f, 0.541398f, 0.895589f, 0.293008f, 0.903387f, 0.493332f, 0.697902f, 0.477073f, 0.333856f, 0.143396f, 0.0932805f, 0.275849f, 0.655504f, 0.624897f, 0.717618f, 0.605292f, 0.424038f, 0.306989f, 0.324962f, 0.45878f, 0.976576f, 0.991506f, 0.0725176f, 0.837343f, 0.588093f, 0.519565f, 0.817018f, 0.788645f, 0.420119f, 0.215411f, 0.141267f, 0.0376012f, 0.460681f, 0.361827f, 0.995282f, 0.905563f, 0.0909029f, 0.808559f, 0.595975f, 0.977723f, 0.622259f, 0.0849786f, 0.642514f, 0.853086f, 0.812154f, 0.696658f, 0.671264f, 0.692986f, 0.269517f, 0.847163f, 0.496374f, 0.48532f, 0.983314f, 0.709504f, 0.944325f, 0.717459f, 0.150419f, 0.320894f, 0.164588f, 0.119457f, 0.663862f, 0.528351f, 0.160297f, 0.543173f, 0.289749f, 0.706371f, 0.759099f, 0.456273f, 0.583254f, 0.882913f, 0.575666f, 0.655283f, 0.234053f, 0.263827f, 0.807735f, 0.869351f, 0.633226f, 0.744627f, 0.391122f, 0.176336f, 0.667208f, 0.538645f, 0.972913f, 0.675642f, 0.0848427f, 0.0397247f, 0.66174f, 0.240831f, 0.148035f, 0.388729f, 0.742836f, 0.902954f, 0.285685f, 0.45282f, 0.125667f, 0.253222f, 0.886802f, 0.258285f, 0.754176f, 0.354836f, 0.877242f, 0.561047f, 0.20338f, 0.263599f, 0.601812f, 0.833404f, 0.166952f, 0.827574f, 0.0578827f, 0.906011f, 0.816079f, 0.928142f, 0.122575f, 0.830498f, 0.330445f, 0.771716f, 0.635982f, 0.829167f, 0.886338f, 0.0943431f, 0.803303f, 0.541538f, 0.511255f, 0.863668f, 0.404193f, 0.536002f, 0.487578f, 0.712253f, 0.692238f, 0.44266f, 0.863275f, 0.598403f, 0.926607f, 0.529861f, 0.487415f, 0.126769f, 0.999496f, 0.798262f, 0.374716f, 0.867532f, 0.957177f, 0.936064f, 0.00403304f, 0.974509f, 0.40569f, 0.789351f, 0.0955056f, 0.0637894f, 0.664924f, 0.896185f, 0.44127f, 0.481997f, 0.383161f, 0.200857f, 0.816596f, 0.336022f, 0.268181f, 0.796397f, 0.513889f, 0.791563f, 0.872379f, 0.290329f, 0.695973f, 0.375641f, 0.477351f, 0.648416f, 0.483137f, 0.0231412f, 0.880657f, 0.634508f, 0.234432f, 0.25497f, 0.108345f, 0.661131f, 0.734542f, 0.496154f, 0.933504f, 0.780499f, 0.418836f, 0.222636f, 0.844764f, 0.597745f, 0.462602f, 0.162704f, 0.714849f, 0.298815f, 0.284211f, 0.598849f, 0.122437f, 0.900357f, 0.880802f, 0.623805f, 0.637685f, 0.105521f, 0.697668f, 0.29021f, 0.613283f, 0.344496f, 0.557836f, 0.262358f, 0.723321f, 0.857867f, 0.219355f, 0.173519f, 0.254927f, 0.452068f, 0.733882f, 0.128371f, 0.53921f, 0.842773f, 0.200744f, 0.808661f, 0.356352f, 0.380975f, 0.110313f, 0.343576f, 0.917519f, 0.269396f, 0.145521f, 0.749168f, 0.783015f, 0.360068f, 0.652331f, 0.216453f, 0.229264f, 0.0487651f, 0.508933f, 0.0552494f, 0.486092f, 0.179105f, 0.629595f, 0.690417f, 0.985936f, 0.589246f, 0.0332772f, 0.521238f, 0.601636f, 0.512677f, 0.152481f, 0.448167f, 0.799148f, 0.986308f, 0.354621f, 0.712387f, 0.0206986f, 0.289294f, 0.738303f, 0.100764f, 0.799571f, 0.539667f, 0.932385f, 0.21403f, 0.444996f, 0.622763f, 0.137635f, 0.830477f, 0.301631f, 0.694403f, 0.662686f, 0.485794f, 0.937107f, 0.25165f, 0.18586f, 0.656206f, 0.721032f, 0.335955f, 0.586088f, 0.465777f, 0.668967f, 0.0257542f, 0.413625f, 0.945949f, 0.194406f, 0.942379f, 0.716879f, 0.308961f, 0.917595f, 0.436479f, 0.0311892f, 0.120783f, 0.0177039f, 0.821967f, 0.308052f, 0.961341f, 0.324881f, 0.919124f, 0.430241f, 0.525789f, 0.88756f, 0.88067f, 0.503975f, 0.0487123f, 0.0710132f, 0.956585f, 0.712219f, 0.313906f, 0.720764f, 0.00444719f, 0.114896f, 0.57459f, 0.980179f, 0.128499f, 0.470857f, 0.955974f, 0.56468f, 0.923821f, 0.19156f, 0.616556f, 0.198483f, 0.546788f, 0.78281f, 0.670577f, 0.760508f, 0.109579f, 0.460778f, 0.835972f, 0.0775543f, 0.729754f, 0.947057f, 0.436774f, 0.568689f, 0.670996f, 0.322469f, 0.813586f, 0.440571f, 0.116003f, 0.414831f, 0.67704f, 0.0157284f, 0.585772f, 0.361394f, 0.457603f, 0.0797914f, 0.513506f, 0.764773f, 0.0246359f, 0.974115f, 0.694106f, 0.0648179f, 0.433138f, 0.263551f, 0.185633f, 0.754115f, 0.354349f, 0.227196f, 0.931046f, 0.0731813f, 0.300091f, 0.736974f, 0.781009f, 0.0421925f, 0.552624f, 0.0631947f, 0.581713f, 0.933546f, 0.0920806f, 0.351353f, 0.355516f, 0.628235f, 0.275462f, 0.913275f, 0.158415f, 0.586904f, 0.316023f, 0.122767f, 0.225402f, 0.562004f, 0.489399f, 0.601167f, 0.68016f, 0.920806f, 0.3201f, 0.873f, 0.170307f, 0.559888f, 0.348109f, 0.629961f, 0.767266f, 0.421276f, 0.929529f, 0.708598f, 0.22938f, 0.0440367f, 0.848638f, 0.0428049f, 0.252743f, 0.0193065f, 0.503607f, 0.325506f, 0.287519f, 0.374286f, 0.251823f, 0.438668f, 0.023447f, 0.0734565f, 0.378211f, 0.248276f, 0.9017f, 0.523796f, 0.0595612f, 0.0253173f, 0.441401f, 0.437461f, 0.887637f, 0.710748f, 0.475479f, 0.227227f, 0.658916f, 0.659166f, 0.964871f, 0.770273f, 0.899362f, 0.191513f, 0.547282f, 0.998571f, 0.943687f, 0.738217f, 0.526649f, 0.067912f, 0.384769f, 0.0241023f, 0.903523f, 0.886881f, 0.356369f, 0.262555f, 0.87154f, 0.745538f, 0.855665f, 0.607144f, 0.588464f, 0.399931f, 0.663382f, 0.582526f, 0.232184f, 0.126784f, 0.54676f, 0.234503f, 0.262531f, 0.668196f, 0.254086f, 0.121672f, 0.718222f, 0.187247f, 0.361491f, 0.492809f, 0.938355f, 0.535587f, 0.00922292f, 0.136878f, 0.670968f, 0.710436f, 0.62229f, 0.708223f, 0.259453f, 0.482349f, 0.290708f, 0.151858f, 0.349127f, 0.259001f, 0.271877f, 0.902338f, 0.789938f, 0.437855f, 0.125478f, 0.358252f, 0.786521f, 0.420754f, 0.658861f, 0.0163478f, 0.105161f, 0.203591f, 0.774375f, 0.473021f, 0.599754f, 0.334038f, 0.0959251f, 0.470531f, 0.119243f, 0.113657f, 0.0858567f, 0.0181975f, 0.0339619f, 0.642201f, 0.895081f, 0.860213f, 0.672983f, 0.384996f, 0.423965f, 0.780832f, 0.326618f, 0.0349688f, 0.525361f, 0.241029f, 0.178718f, 0.640927f, 0.858357f, 0.890641f, 0.11797f, 0.592586f, 0.800438f, 0.260998f, 0.750592f, 0.715358f, 0.0179428f, 0.0456378f, 0.581487f, 0.287291f, 0.768357f, 0.502813f, 0.488287f, 0.69343f, 0.0259953f, 0.409564f, 0.454791f, 0.146126f, 0.519897f, 0.499388f, 0.287014f, 0.207348f, 0.771959f, 0.645787f, 0.297462f, 0.28361f, 0.105186f, 0.482753f, 0.809022f, 0.854729f, 0.133819f, 0.336536f, 0.219343f, 0.459939f, 0.317168f, 0.157819f, 0.205831f, 0.267773f, 0.552205f, 0.0871527f, 0.0539443f, 0.0259766f, 0.775192f, 0.689066f, 0.577877f, 0.317817f, 0.761853f, 0.535322f, 0.461685f, 0.651818f, 0.89517f, 0.144383f, 0.643697f, 0.951557f, 0.0604552f, 0.634357f, 0.583163f, 0.921442f, 0.150374f, 0.591284f, 0.897311f, 0.815218f, 0.395696f, 0.320972f, 0.752767f, 0.980248f, 0.474563f, 0.134607f, 0.77258f, 0.843649f, 0.674173f, 0.524785f, 0.161748f, 0.535902f, 0.660756f, 0.433184f, 0.31268f, 0.777464f, 0.109717f, 0.805761f, 0.832127f, 0.559389f, 0.507908f, 0.697832f, 0.459661f, 0.448527f, 0.964555f, 0.512994f, 0.524819f, 0.196892f, 0.648324f, 0.982221f, 0.282745f, 0.00992841f, 0.758498f, 0.490073f, 0.842627f, 0.258158f, 0.272767f, 0.400226f, 0.610492f, 0.544288f, 0.273564f, 0.988447f, 0.817051f, 0.605815f, 0.511681f, 0.416597f, 0.11132f, 0.329803f, 0.411382f, 0.144655f, 0.705241f, 0.265537f, 0.553677f, 0.119043f, 0.5451f, 0.559877f, 0.743401f, 0.222226f, 0.25808f, 0.827941f, 0.834873f, 0.829685f, 0.153731f, 0.238038f, 0.306866f, 0.0944361f, 0.339559f, 0.809345f, 0.402423f, 0.374995f, 0.365251f, 0.527857f, 0.819625f, 0.392417f, 0.329393f, 0.170145f, 0.858625f, 0.737087f, 0.205577f, 0.42929f, 0.196763f, 0.997353f, 0.226181f, 0.389221f, 0.802482f, 0.705276f, 0.934375f, 0.368473f, 0.567592f, 0.550568f, 0.572299f, 0.101953f, 0.174655f, 0.555237f, 0.574632f, 0.657468f, 0.738106f, 0.223913f, 0.333262f, 0.704456f, 0.223142f, 0.768767f, 0.437104f, 0.0278027f, 0.0498141f, 0.0119726f, 0.439666f, 0.994019f, 0.80227f, 0.566117f, 0.285581f, 0.806632f, 0.796964f, 0.363939f, 0.070755f, 0.279007f, 0.168604f, 0.673322f, 0.678708f, 0.0699169f, 0.597309f, 0.855873f, 0.696652f, 0.770829f, 0.794169f, 0.176425f, 0.348368f, 0.0412353f, 0.578438f, 0.474733f, 0.777684f, 0.16383f, 0.224556f, 0.468841f, 0.369487f, 0.61892f, 0.488486f, 0.854106f, 0.653314f, 0.104232f, 0.443175f, 0.822462f, 0.915707f, 0.507484f, 0.70635f, 0.693621f, 0.306757f, 0.779918f, 0.635788f, 0.234195f, 0.514534f, 0.803395f, 0.0552052f, 0.822434f, 0.804407f, 0.0622927f, 0.10914f, 0.41838f, 0.735576f, 0.34439f, 0.729037f, 0.78918f, 0.488477f, 0.519064f, 0.286652f, 0.512734f, 0.833559f, 0.00576855f, 0.453959f, 0.64032f, 0.0760396f, 0.926822f, 0.224319f, 0.265194f, 0.802482f, 0.322861f, 0.429746f, 0.569138f, 0.648447f, 0.74595f, 0.861876f, 0.702314f, 0.374532f, 0.350631f, 0.146556f, 0.0341286f, 0.094743f, 0.707971f, 0.762888f, 0.516107f, 0.778746f, 0.478407f, 0.677862f, 0.779092f, 0.0937173f, 0.0757762f, 0.692174f, 0.569725f, 0.987113f, 0.510313f, 0.471568f, 0.713331f, 0.92913f, 0.452878f, 0.888942f, 0.530988f, 0.907967f, 0.654409f, 0.21239f, 0.97151f, 0.594865f, 0.679568f, 0.467381f, 0.0556365f, 0.129969f, 0.800023f, 0.43437f, 0.203467f, 0.478574f, 0.756405f, 0.949415f, 0.378931f, 0.179897f, 0.0495461f, 0.867269f, 0.260723f, 0.748442f, 0.61383f, 0.923404f, 0.752083f, 0.417138f, 0.995403f, 0.233821f, 0.886093f, 0.230389f, 0.322411f, 0.0361808f, 0.339915f, 0.657302f, 0.906619f, 0.199931f, 0.770688f, 0.644829f, 0.985518f, 0.525221f, 0.493475f, 0.0286236f, 0.439242f, 0.209735f, 0.101835f, 0.637201f, 0.831662f, 0.756119f, 0.174718f, 0.914269f, 0.957915f, 0.0208806f, 0.169436f, 0.754754f, 0.273484f, 0.522076f, 0.455332f, 0.91563f, 0.313839f, 0.660479f, 0.510527f, 0.833741f, 0.46268f, 0.809294f, 0.741722f, 0.168658f, 0.978001f, 0.149184f, 0.735709f, 0.522709f, 0.479326f, 0.613118f, 0.830525f, 0.0227621f, 0.505576f, 0.377747f, 0.1913f, 0.858142f, 0.00790081f, 0.851575f, 0.0387322f, 0.32718f, 0.641125f, 0.636967f, 0.735984f, 0.0245758f, 0.728612f, 0.522017f, 0.313846f, 0.866817f, 0.221846f, 0.5459f, 0.42157f, 0.126635f, 0.178881f, 0.303887f, 0.92745f, 0.955136f, 0.590524f, 0.35817f, 0.804892f, 0.279127f, 0.640639f, 0.969997f, 0.3401f, 0.379279f, 0.573095f, 0.784084f, 0.724919f, 0.526721f, 0.233893f, 0.300491f, 0.473953f, 0.560633f, 0.915887f, 0.188727f, 0.96499f, 0.283966f, 0.310681f, 0.327539f, 0.096427f, 0.428594f, 0.782244f, 0.285651f, 0.924983f, 0.898228f, 0.966544f, 0.847905f, 0.209188f, 0.0634488f, 0.782668f, 0.49904f, 0.169958f, 0.898914f, 0.908876f, 0.700203f, 0.907172f, 0.124395f, 0.0290647f, 0.256473f, 0.0487889f, 0.832138f, 0.870097f, 0.896979f, 0.0979281f, 0.419425f, 0.246167f, 0.92867f, 0.793419f, 0.486866f, 0.0357821f, 0.339683f, 0.249494f, 0.80475f, 0.244975f, 0.740229f, 0.187267f, 0.463109f, 0.205894f, 0.388738f, 0.978894f, 0.471492f, 0.456544f, 0.715454f, 0.511397f, 0.0495463f, 0.205433f, 0.60397f, 0.988917f, 0.733172f, 0.887978f, 0.886802f, 0.932716f, 0.127125f, 0.595316f, 0.304644f, 0.576185f, 0.642502f, 0.850191f, 0.668777f, 0.989563f, 0.425959f, 0.355702f, 0.233301f, 0.862421f, 0.117375f, 0.100915f, 0.0256044f, 0.761887f, 0.79053f, 0.789986f, 0.761832f, 0.749213f, 0.0912176f, 0.088784f, 0.951521f, 0.881513f, 0.842809f, 0.971145f, 0.0721858f, 0.355696f, 0.383446f, 0.147876f, 0.176785f, 0.862082f, 0.313441f, 0.140238f, 0.723286f, 0.926468f, 0.552427f, 0.827319f, 0.286137f, 0.988371f, 0.0219655f, 0.337728f, 0.00817745f, 0.153742f, 0.504816f, 0.945675f, 0.984808f, 0.59934f, 0.728762f, 0.136799f, 0.41137f, 0.322069f, 0.595073f, 0.357691f, 0.454214f, 0.541163f, 0.539565f, 0.978184f, 0.165992f, 0.654794f, 0.323778f, 0.968373f, 0.658925f, 0.749794f, 0.739035f, 0.384683f, 0.536995f, 0.333679f, 0.865163f, 0.74353f, 0.3922f, 0.671401f, 0.352177f, 0.150295f, 0.970785f, 0.29962f, 0.660788f, 0.197748f, 0.977711f, 0.758596f, 0.946852f, 0.892975f, 0.446841f, 0.940762f, 0.667322f, 0.800427f, 0.312651f, 0.186342f, 0.819286f, 0.493216f, 0.545115f, 0.778504f, 0.797159f, 0.376478f, 0.98896f, 0.479383f, 0.281122f, 0.852965f, 0.0572699f, 0.721198f, 0.301352f, 0.130462f, 0.6671f, 0.800354f, 0.891946f, 0.523626f, 0.275167f, 0.870484f, 0.82264f, 0.57437f, 0.829882f, 0.321675f, 0.772209f, 0.654474f, 0.398218f, 0.109524f, 0.403978f, 0.413849f, 0.579426f, 0.591973f, 0.762529f, 0.856503f, 0.674411f, 0.398713f, 0.797512f, 0.099607f, 0.433157f, 0.136374f, 0.764637f, 0.908399f, 0.672609f, 0.439977f, 0.100954f, 0.93422f, 0.0240447f, 0.069266f, 0.225199f, 0.187255f, 0.728396f, 0.875993f, 0.104968f, 0.969209f, 0.609646f, 0.00564365f, 0.502753f, 0.431294f, 0.66885f, 0.695816f, 0.0626746f, 0.647059f, 0.6223f, 0.986112f, 0.0272147f, 0.626888f, 0.678837f, 0.558326f, 0.947133f, 0.0913324f, 0.260489f, 0.602543f, 0.17503f, 0.0521068f, 0.290135f, 0.521271f, 0.884639f, 0.49815f, 0.593014f, 0.0312677f, 0.0158837f, 0.382965f, 0.680572f, 0.258062f, 0.883899f, 0.814458f, 0.120813f, 0.866968f, 0.972773f, 0.620354f, 0.511413f, 0.180057f, 0.146324f, 0.641695f, 0.986334f, 0.350223f, 0.0729314f, 0.0992284f, 0.283357f, 0.919984f, 0.240578f, 0.622459f, 0.268718f, 0.148164f, 0.193705f, 0.708666f, 0.656999f, 0.28972f, 0.209773f, 0.528043f, 0.468637f, 0.0358156f, 0.299129f, 0.259809f, 0.533727f, 0.469928f, 0.141334f, 0.306205f, 0.605487f, 0.565809f, 0.868145f, 0.297265f, 0.701073f, 0.533545f, 0.846218f, 0.541661f, 0.944032f, 0.691853f, 0.603265f, 0.0399459f, 0.692711f, 0.32824f, 0.402316f, 0.424132f, 0.266506f, 0.868972f, 0.109447f, 0.249775f, 0.784166f, 0.0113776f, 0.411315f, 0.480772f, 0.0472917f, 0.556464f, 0.0399193f, 0.685194f, 0.946098f, 0.4144f, 0.29149f, 0.478439f, 0.538894f, 0.0534367f, 0.381781f, 0.371658f, 0.277564f, 0.215527f, 0.797192f, 0.218983f, 0.25126f, 0.0844661f, 0.860819f, 0.56643f, 0.0382517f, 0.233701f, 0.302991f, 0.691647f, 0.150235f, 0.247625f, 0.228741f, 0.635467f, 0.152624f, 0.963169f, 0.922654f, 0.766378f, 0.333444f, 0.362525f, 0.675758f, 0.42109f, 0.279389f, 0.393732f, 0.445885f, 0.125507f, 0.275854f, 0.897779f, 0.224451f, 0.604121f, 0.622897f, 0.136374f, 0.606896f, 0.827597f, 0.429127f, 0.897548f, 0.941983f, 0.989255f, 0.509353f, 0.505851f, 0.0407215f, 0.724423f, 0.658362f, 0.46157f, 0.8577f, 0.469323f, 0.771896f, 0.200368f, 0.861432f, 0.73596f, 0.299543f, 0.0188045f, 0.453314f, 0.685942f, 0.561086f, 0.265975f, 0.263175f, 0.72702f, 0.423578f, 0.245681f, 0.506245f, 0.564327f, 0.914246f, 0.470419f, 0.974931f, 0.462892f, 0.399281f, 0.185056f, 0.413307f, 0.8192f, 0.888201f, 0.868315f, 0.573061f, 0.00615268f, 0.668579f, 0.838993f, 0.619337f, 0.149363f, 0.855573f, 0.412548f, 0.0649104f, 0.264731f, 0.25247f, 0.92999f, 0.177883f, 0.192354f, 0.187284f, 0.615144f, 0.25021f, 0.617814f, 0.849546f, 0.589285f, 0.214996f, 0.567073f, 0.00423686f, 0.967902f, 0.761565f, 0.291421f, 0.684f, 0.428611f, 0.324624f, 0.522639f, 0.406633f, 0.716488f, 0.944101f, 0.157778f, 0.306648f, 0.341889f, 0.848255f, 0.301799f, 0.67418f, 0.94508f, 0.146865f, 0.041367f, 0.24051f, 0.910075f, 0.887601f, 0.137959f, 0.872836f, 0.334127f, 0.158881f, 0.983702f, 0.239623f, 0.679831f, 0.767194f, 0.294324f, 0.211114f, 0.904165f, 0.052296f, 0.226415f, 0.404681f, 0.287089f, 0.133754f, 0.451804f, 0.236459f, 0.716149f, 0.74667f, 0.154989f, 0.578519f, 0.628974f, 0.288437f, 0.263638f, 0.25087f, 0.967908f, 0.96635f, 0.596557f, 0.902517f, 0.846765f, 0.482424f, 0.295941f, 0.536514f, 0.827909f, 0.220118f, 0.0502084f, 0.774865f, 0.967328f, 0.462489f, 0.58572f, 0.0887014f, 0.321492f, 0.51892f, 0.470366f, 0.0330294f, 0.518588f, 0.21838f, 0.291623f, 0.470716f, 0.695058f, 0.714625f, 0.190646f, 0.0231871f, 0.281582f, 0.468095f, 0.205045f, 0.0288922f, 0.934656f, 0.935327f, 0.107926f, 0.582314f, 0.119016f, 0.540747f, 0.992215f, 0.667739f, 0.940446f, 0.450382f, 0.803589f, 0.405663f, 0.695985f, 0.559924f, 0.863922f, 0.996253f, 0.628522f, 0.774343f, 0.0609057f, 0.742031f, 0.573559f, 0.891099f, 0.55779f, 0.179774f, 0.153914f, 0.686911f, 0.427056f, 0.259254f, 0.210548f, 0.614287f, 0.487579f, 0.659451f, 0.488579f, 0.376451f, 0.605206f, 0.900657f, 0.790692f, 0.761121f, 0.147397f, 0.795318f, 0.255353f, 0.934713f, 0.154522f, 0.0295818f, 0.603662f, 0.804485f, 0.757634f, 0.410537f, 0.17362f, 0.0996387f, 0.440978f, 0.275976f, 0.189733f, 0.891104f, 0.850894f, 0.723685f, 0.092275f, 0.269365f, 0.104267f, 0.698008f, 0.556828f, 0.711428f, 0.261121f, 0.960865f, 0.417842f, 0.633708f, 0.963086f, 0.376368f, 0.229058f, 0.203199f, 0.0503907f, 0.854779f, 0.305427f, 0.82535f, 0.858066f, 0.932523f, 0.711383f, 0.53411f, 0.0314635f, 0.432959f, 0.842057f, 0.432475f, 0.453294f, 0.79789f, 0.975555f, 0.0504897f, 0.244885f, 0.357642f, 0.134659f, 0.483704f, 0.685202f, 0.331816f, 0.257082f, 0.870629f, 0.389445f, 0.881769f, 0.273335f, 0.230795f, 0.445922f, 0.39336f, 0.78925f, 0.848591f, 0.62275f, 0.961237f, 0.393189f, 0.296289f, 0.513323f, 0.10086f, 0.723271f, 0.770201f, 0.962873f, 0.113967f, 0.747678f, 0.122865f, 0.0753474f, 0.0613695f, 0.385465f, 0.5711f, 0.515398f, 0.363743f, 0.402684f, 0.555656f, 0.587572f, 0.0699067f, 0.70225f, 0.863724f, 0.942348f, 0.437034f, 0.357689f, 0.459404f, 0.155154f, 0.773141f, 0.465093f, 0.393312f, 0.51403f, 0.675212f, 0.2879f, 0.162334f, 0.914525f, 0.826562f, 0.811875f, 0.498997f, 0.986285f, 0.130915f, 0.666472f, 0.341303f, 0.189673f, 0.74172f, 0.220727f, 0.445003f, 0.695051f, 0.296795f, 0.368061f, 0.443056f, 0.720546f, 0.759742f, 0.121954f, 0.727911f, 0.912206f, 0.957863f, 0.645014f, 0.341238f, 0.860865f, 0.232864f, 0.767099f, 0.61917f, 0.187952f, 0.512629f, 0.843988f, 0.915118f, 0.540496f, 0.295861f, 0.0505123f, 0.686434f, 0.0882185f, 0.262171f, 0.420626f, 0.350696f, 0.746233f, 0.928398f, 0.761852f, 0.97396f, 0.514489f, 0.472265f, 0.845776f, 0.601219f, 0.805928f, 0.474424f, 0.803486f, 0.240769f, 0.911924f, 0.267951f, 0.777723f, 0.361283f, 0.771012f, 0.148457f, 0.46787f, 0.418144f, 0.629043f, 0.737655f, 0.282112f, 0.00456141f, 0.778242f, 0.0999024f, 0.7935f, 0.0889299f, 0.537175f, 0.388826f, 0.810697f, 0.347182f, 0.10621f, 0.819707f, 0.340037f, 0.152333f, 0.283279f, 0.979276f, 0.0344373f, 0.147429f, 0.619208f, 0.65292f, 0.88814f, 0.934013f, 0.582763f, 0.215668f, 0.450112f, 0.308237f, 0.118658f, 0.997809f, 0.680986f, 0.463954f, 0.554396f, 0.75153f, 0.595619f, 0.105937f, 0.774186f, 0.375027f, 0.0250026f, 0.986005f, 0.392617f, 0.308179f, 0.043807f, 0.554291f, 0.540267f, 0.0184381f, 0.779082f, 0.376191f, 0.165338f, 0.0928612f, 0.785754f, 0.373029f, 0.613713f, 0.289496f, 0.339712f, 0.303308f, 0.215463f, 0.305553f, 0.202537f, 0.949914f, 0.448179f, 0.138853f, 0.319808f, 0.659447f, 0.547816f, 0.498334f, 0.971879f, 0.217961f, 0.706793f, 0.642109f, 0.475035f, 0.360916f, 0.079352f, 0.885504f, 0.0837289f, 0.193923f, 0.382282f, 0.692797f, 0.482966f, 0.613371f, 0.188388f, 0.515092f, 0.482802f, 0.106635f, 0.0881122f, 0.724642f, 0.767621f, 0.360897f, 0.133009f, 0.949843f, 0.812019f, 0.26449f, 0.534689f, 0.430324f, 0.407389f, 0.00824263f, 0.0165155f, 0.618694f, 0.122889f, 0.448866f, 0.336765f, 0.178415f, 0.295317f, 0.753804f, 0.727945f, 0.558352f, 0.625571f, 0.235639f, 0.865961f, 0.532891f, 0.883289f, 0.833618f, 0.655229f, 0.444043f, 0.457365f, 0.0660586f, 0.47803f, 0.502257f, 0.72243f, 0.790979f, 0.935351f, 0.914287f, 0.718386f, 0.794411f, 0.795054f, 0.599672f, 0.819843f, 0.828356f, 0.455682f, 0.293304f, 0.104403f, 0.453432f, 0.0959749f, 0.532267f, 0.178598f, 0.212675f, 0.356589f, 0.105227f, 0.00837097f, 0.495895f, 0.669521f, 0.200667f, 0.18022f, 0.428803f, 0.809122f, 0.400827f, 0.85987f, 0.418807f, 0.94294f, 0.0407713f, 0.256012f, 0.319734f, 0.461881f, 0.451634f, 0.606438f, 0.238249f, 0.539151f, 0.102726f, 0.869729f, 0.874945f, 0.105987f, 0.422048f, 0.197332f, 0.895269f, 0.931491f, 0.059015f, 0.909954f, 0.755381f, 0.144851f, 0.975514f, 0.168514f, 0.505131f, 0.516318f, 0.172756f, 0.935684f, 0.426949f, 0.823466f, 0.910205f, 0.924367f, 0.793256f, 0.772964f, 0.890707f, 0.0971714f, 0.428978f, 0.516884f, 0.714687f, 0.545899f, 0.483664f, 0.360612f, 0.652205f, 0.236498f, 0.801999f, 0.123016f, 0.528238f, 0.964533f, 0.771916f, 0.936722f, 0.596547f, 0.818391f, 0.307263f, 0.660682f, 0.0800409f, 0.371235f, 0.735035f, 0.850496f, 0.468993f, 0.551387f, 0.274825f, 0.368857f, 0.816828f, 0.0681967f, 0.946167f, 0.718806f, 0.0888603f, 0.591699f, 0.641283f, 0.594397f, 0.398665f, 0.315722f, 0.135859f, 0.978853f, 0.309079f, 0.140261f, 0.313691f, 0.673345f, 0.440642f, 0.821303f, 0.552961f, 0.979481f, 0.504034f, 0.58892f, 0.585527f, 0.853985f, 0.336332f, 0.0911784f, 0.466332f, 0.905361f, 0.819639f, 0.893948f, 0.869733f, 0.298763f, 0.91263f, 0.622764f, 0.540313f, 0.398469f, 0.962979f, 0.383353f, 0.160262f, 0.703152f, 0.779832f, 0.795827f, 0.810667f, 0.439871f, 0.641499f, 0.785883f, 0.318648f, 0.853352f, 0.766444f, 0.706264f, 0.335101f, 0.624577f, 0.37212f, 0.201078f, 0.37352f, 0.851304f, 0.491342f, 0.825413f, 0.133976f, 0.846265f, 0.915505f, 0.907472f, 0.755025f, 0.261162f, 0.420295f, 0.994158f, 0.693767f, 0.0778706f, 0.811818f, 0.495303f, 0.395107f, 0.169426f, 0.327305f, 0.250433f, 0.682925f, 0.160715f, 0.448879f, 0.992313f, 0.0539564f, 0.550548f, 0.196541f, 0.706638f, 0.815899f, 0.75727f, 0.422836f, 0.0438398f, 0.97144f, 0.178127f, 0.412192f, 0.462741f, 0.806464f, 0.332466f, 0.177072f, 0.46366f, 0.653041f, 0.760624f, 0.102086f, 0.696651f, 0.0980398f, 0.434837f, 0.153154f, 0.516072f, 0.872444f, 0.20529f, 0.110408f, 0.836553f, 0.785342f, 0.0681476f, 0.402417f, 0.182108f, 0.806673f, 0.33937f, 0.0178925f, 0.00914763f, 0.141008f, 0.396542f, 0.389862f, 0.985174f, 0.279027f, 0.700033f, 0.167493f, 0.551906f, 0.302566f, 0.0497502f, 0.0198132f, 0.902196f, 0.760487f, 0.195984f, 0.363775f, 0.876091f, 0.918512f, 0.305526f, 0.0707057f, 0.3784f, 0.146303f, 0.376803f, 0.368367f, 0.128923f, 0.140323f, 0.05595f, 0.726568f, 0.327314f, 0.828088f, 0.535435f, 0.705327f, 0.592081f, 0.634712f, 0.146107f, 0.279934f, 0.480118f, 0.486797f, 0.783111f, 0.251334f, 0.452389f, 0.531007f, 0.132591f, 0.300987f, 0.515879f, 0.777004f, 0.493762f, 0.357516f, 0.0579536f, 0.908164f, 0.0571019f, 0.528834f, 0.0666216f, 0.138407f, 0.124962f, 0.964148f, 0.360372f, 0.113073f, 0.0409483f, 0.34229f, 0.615291f, 0.694401f, 0.23139f, 0.608677f, 0.0634488f, 0.85828f, 0.994858f, 0.273237f, 0.67353f, 0.921285f, 0.467996f, 0.372084f, 0.179355f, 0.371782f, 0.47465f, 0.82362f, 0.96306f, 0.430145f, 0.686474f, 0.316809f, 0.0679466f, 0.850082f, 0.689786f, 0.982811f, 0.276689f, 0.138777f, 0.627145f, 0.0227534f, 0.611696f, 0.123369f, 0.572623f, 0.345923f, 0.84582f, 0.0345596f, 0.518239f, 0.347555f, 0.453245f, 0.710756f, 0.064706f, 0.544765f, 0.46104f, 0.24783f, 0.799783f, 0.48744f, 0.0250994f, 0.543547f, 0.277255f, 0.478538f, 0.946262f, 0.974664f, 0.205728f, 0.777003f, 0.201277f, 0.33814f, 0.243907f, 0.553557f, 0.233149f, 0.899776f, 0.995486f, 0.108742f, 0.0942018f, 0.0567805f, 0.347665f, 0.687884f, 0.830904f, 0.27803f, 0.760594f, 0.44421f, 0.924831f, 0.64463f, 0.905892f, 0.495716f, 0.511623f, 0.605581f, 0.677949f, 0.272243f, 0.765111f, 0.427617f, 0.92866f, 0.485402f, 0.978395f, 0.969747f, 0.515605f, 0.371774f, 0.807003f, 0.977104f, 0.048981f, 0.909226f, 0.428103f, 0.0229549f, 0.118309f, 0.599141f, 0.857947f, 0.974639f, 0.897659f, 0.0615562f, 0.289933f, 0.0276253f, 0.473482f, 0.711814f, 0.194624f, 4.80611e-05f, 0.736741f, 0.605372f, 0.391581f, 0.614274f, 0.484809f, 0.634995f, 0.535787f, 0.404942f, 0.988702f, 0.240248f, 0.743364f, 0.0838462f, 0.187371f, 0.174739f, 0.477928f, 0.382234f, 0.148336f, 0.354439f, 0.54166f, 0.507996f, 0.804864f, 0.21883f, 0.121817f, 0.0232491f, 0.11177f, 0.686514f, 0.70907f, 0.546844f, 0.79575f, 0.607758f, 0.204538f, 0.634101f, 0.999171f, 0.182992f, 0.400803f, 0.617142f, 0.887625f, 0.947406f, 0.140956f, 0.497278f, 0.83746f, 0.317648f, 0.999817f, 0.9142f, 0.804219f, 0.223033f, 0.105793f, 0.912205f, 0.777269f, 0.530467f, 0.420292f, 0.393993f, 0.909749f, 0.376047f, 0.881531f, 0.296851f, 0.679283f, 0.421624f, 0.531365f, 0.234937f, 0.78704f, 0.251236f, 0.710318f, 0.487208f, 0.765078f, 0.447392f, 0.0101642f, 0.548467f, 0.574968f, 0.452874f, 0.860894f, 0.0284263f, 0.800348f, 0.438501f, 0.819314f, 0.654027f, 0.994083f, 0.650283f, 0.862997f, 0.603083f, 0.999607f, 0.41725f, 0.199425f, 0.321242f, 0.122539f, 0.45267f, 0.978689f, 0.251487f, 0.865512f, 0.107143f, 0.3163f, 0.781222f, 0.218965f, 0.678676f, 0.361759f, 0.383299f, 0.511072f, 0.474337f, 0.126522f, 0.0144572f, 0.743275f, 0.339008f, 0.588972f, 0.619087f, 0.143189f, 0.0114255f, 0.322651f, 0.563701f, 0.189263f, 0.418681f, 0.814716f, 0.676409f, 0.487035f, 0.453306f, 0.795916f, 0.696411f, 0.422332f, 0.0126313f, 0.508399f, 0.110933f, 0.546677f, 0.539665f, 0.00415484f, 0.810452f, 0.173893f, 0.552889f, 0.89214f, 0.468457f, 0.205398f, 0.728536f, 0.509075f, 0.391114f, 0.888057f, 0.812956f, 0.196968f, 0.669791f, 0.791387f, 0.771562f, 0.202315f, 0.651431f, 0.420198f, 0.628602f, 0.50791f, 0.640779f, 0.338275f, 0.405885f, 0.0964908f, 0.79902f, 0.922061f, 0.493261f, 0.216489f, 0.543238f, 0.333484f, 0.755377f, 0.576159f, 0.969472f, 0.522098f, 0.457775f, 0.598693f, 0.330805f, 0.863314f, 0.831992f, 0.748437f, 0.616371f, 0.264622f, 0.259064f, 0.865064f, 0.764203f, 0.252056f, 0.119722f, 0.114517f, 0.342252f, 0.880784f, 0.281413f, 0.205044f, 0.840007f, 0.255194f, 0.834143f, 0.871411f, 0.16023f, 0.320923f, 0.0834858f, 0.478612f, 0.272666f, 0.00756577f, 0.879042f, 0.071868f, 0.746385f, 0.41312f, 0.242321f, 0.0599442f, 0.755287f, 0.467244f, 0.543174f, 0.635324f, 0.427335f, 0.278091f, 0.334103f, 0.362711f, 0.192493f, 0.760886f, 0.974795f, 0.757204f, 0.805059f, 0.354442f, 0.873249f, 0.268084f, 0.228769f, 0.533957f, 0.207452f, 0.318189f, 0.958777f, 0.948857f, 0.686822f, 0.989912f, 0.849037f, 0.548661f, 0.366009f, 0.00317662f, 0.804437f, 0.158709f, 0.42255f, 0.367908f, 0.402966f, 0.224004f, 0.251398f, 0.622359f, 0.752307f, 0.767072f, 0.851199f, 0.706457f, 0.189544f, 0.297875f, 0.403974f, 0.663527f, 0.366106f, 0.662648f, 0.429398f, 0.499944f, 0.453279f, 0.162184f, 0.0747734f, 0.298532f, 0.157023f, 0.139665f, 0.495046f, 0.926777f, 0.922881f, 0.956901f, 0.945996f, 0.38083f, 0.905667f, 0.744382f, 0.894385f, 0.270544f, 0.944221f, 0.199435f, 0.0738544f, 0.350719f, 0.500552f, 0.938809f, 0.427182f, 0.545711f, 0.63355f, 0.520618f, 0.347827f, 0.751288f, 0.861464f, 0.959739f, 0.575297f, 0.422754f, 0.205007f, 0.500525f, 0.711207f, 0.490991f, 0.306655f, 0.142307f, 0.313213f, 0.877154f, 0.0158508f, 0.143379f, 0.684596f, 0.310244f, 0.237449f, 0.378082f, 0.0469691f, 0.436923f, 0.881211f, 0.119355f, 0.59732f, 0.758995f, 0.0476668f, 0.895984f, 0.339286f, 0.231267f, 0.829895f, 0.35967f, 0.306362f, 0.788418f, 0.699965f, 0.378785f, 0.197394f, 0.0500028f, 0.67789f, 0.497717f, 0.443508f, 0.457965f, 0.103399f, 0.628687f, 0.35011f, 0.704075f, 0.876073f, 0.911205f, 0.576663f, 0.947544f, 0.365168f, 0.797632f, 0.785952f, 0.893983f, 0.582941f, 0.827894f, 0.448882f, 0.73855f, 0.607924f, 0.950706f, 0.511431f, 0.200783f, 0.548876f, 0.244863f, 0.932279f, 0.810936f, 0.0103678f, 0.612129f, 0.169734f, 0.209493f, 0.0879184f, 0.442374f, 0.401189f, 0.105173f, 0.345967f, 0.182109f, 0.36976f, 0.09317f, 0.970026f, 0.643652f, 0.962568f, 0.848314f, 0.393592f, 0.902751f, 0.854983f, 0.078482f, 0.825743f, 0.122724f, 0.758879f, 0.329561f, 0.0480038f, 0.0714241f, 0.412128f, 0.242228f, 0.721571f, 0.472363f, 0.661625f, 0.606352f, 0.593979f, 0.809245f, 0.32716f, 0.924303f, 0.870162f, 0.323733f, 0.0693531f, 0.55446f, 0.186764f, 0.840536f, 0.711154f, 0.0941028f, 0.293861f, 0.131322f, 0.167072f, 0.992632f, 0.0937776f, 0.300854f, 0.609393f, 0.742901f, 0.445719f, 0.49257f, 0.615199f, 0.880634f, 0.880552f, 0.899752f, 0.0147246f, 0.226301f, 0.182127f, 0.94602f, 0.296728f, 0.955755f, 0.536567f, 0.140081f, 0.430715f, 0.022259f, 0.587231f, 0.589689f, 0.755506f, 0.392815f, 0.354239f, 0.539713f, 0.272697f, 0.917373f, 0.746497f, 0.684056f, 0.523074f, 0.557538f, 0.995858f, 0.779072f, 0.139476f, 0.106625f, 0.357108f, 0.611952f, 0.581954f, 0.726367f, 0.758944f, 0.0931899f, 0.571819f, 0.851852f, 0.496957f, 0.604608f, 0.963661f, 0.688038f, 0.284632f, 0.511381f, 0.49557f, 0.794898f, 0.185432f, 0.275114f, 0.798329f, 0.292664f, 0.924401f, 0.142738f, 0.743984f, 0.246694f, 0.837575f, 0.0657893f, 0.856324f, 0.877732f, 0.433399f, 0.897591f, 0.059876f, 0.828088f, 0.364716f, 0.138416f, 0.991326f, 0.377147f, 0.376242f, 0.751253f, 0.325726f, 0.531879f, 0.154677f, 0.0220212f, 0.194491f, 0.389655f, 0.570077f, 0.578739f, 0.289017f, 0.336876f, 0.40144f, 0.250632f, 0.181667f, 0.400037f, 0.250547f, 0.0483655f, 0.336806f, 0.970015f, 0.297673f, 0.668749f, 0.500495f, 0.539103f, 0.996542f, 0.34859f, 0.0512221f, 0.945941f, 0.88657f, 0.656174f, 0.113437f, 0.753097f, 0.323058f, 0.47051f, 0.220096f, 0.721297f, 0.270871f, 0.489782f, 0.402427f, 0.165052f, 0.206266f, 0.667431f, 0.852144f, 0.47244f, 0.0671329f, 0.458507f, 0.781481f, 0.743982f, 0.214483f, 0.702029f, 0.177756f, 0.704948f, 0.551822f, 0.194999f, 0.885391f, 0.770998f, 0.696298f, 0.870784f, 0.756745f, 0.744028f, 0.968355f, 0.229207f, 0.923294f, 0.338094f, 0.00576244f, 0.164907f, 0.250586f, 0.945024f, 0.424857f, 0.227656f, 0.188152f, 0.480328f, 0.490762f, 0.798034f, 0.473941f, 0.505145f, 0.204663f, 0.914953f, 0.530389f, 0.584498f, 0.669886f, 0.745894f, 0.562383f, 0.280916f, 0.88575f, 0.250918f, 0.0274456f, 0.696608f, 0.911081f, 0.158052f, 0.996168f, 0.789893f, 0.508773f, 0.476583f, 0.773221f, 0.0636369f, 0.981401f, 0.0452942f, 0.0399631f, 0.0125742f, 0.0699655f, 0.304051f, 0.457593f, 0.882599f, 0.340307f, 0.838223f, 0.0610541f, 0.653261f, 0.490571f, 0.985308f, 0.800377f, 0.250854f, 0.19761f, 0.0550185f, 0.371155f, 0.2663f, 0.749814f, 0.390379f, 0.540894f, 0.866225f, 0.599341f, 0.623863f, 0.147507f, 0.340541f, 0.562505f, 0.524171f, 0.803077f, 0.212648f, 0.103451f, 0.939081f, 0.821543f, 0.613976f, 0.870403f, 0.297362f, 0.978688f, 0.430094f, 0.659263f, 0.0556336f, 0.957836f, 0.355746f, 0.310996f, 0.350179f, 0.930027f, 0.411764f, 0.249732f, 0.864553f, 0.642199f, 0.364663f, 0.672106f, 0.827456f, 0.313871f, 0.167488f, 0.931276f, 0.966087f, 0.374795f, 0.433548f, 0.52337f, 0.978344f, 0.190493f, 0.0730634f, 0.306037f, 0.71492f, 0.531433f, 0.502825f, 0.071328f, 0.291312f, 0.855648f, 0.25017f, 0.278271f, 0.499139f, 0.497774f, 0.44888f, 0.577385f, 0.876234f, 0.759508f, 0.1953f, 0.862256f, 0.877218f, 0.104284f, 0.376674f, 0.410412f, 0.234124f, 0.0318643f, 0.864037f, 0.927956f, 0.703499f, 0.956903f, 0.552247f, 0.658513f, 0.573978f, 0.270947f, 0.742917f, 0.660652f, 0.816154f, 4.32132e-05f, 0.677011f, 0.988374f, 0.192157f, 0.198066f, 0.401928f, 0.0106299f, 0.942823f, 0.929371f, 0.369708f, 0.314788f, 0.0972919f, 0.610464f, 0.712952f, 0.29258f, 0.541078f, 0.753934f, 0.886256f, 0.120093f, 0.914417f, 0.0949847f, 0.466657f, 0.246748f, 0.769934f, 0.129665f, 0.740422f, 0.0670465f, 0.829317f, 0.449931f, 0.990937f, 0.904759f, 0.198826f, 0.51592f, 0.239497f, 0.519742f, 0.628357f, 0.6759f, 0.398503f, 0.30371f, 0.552565f, 0.0333937f, 0.733752f, 0.625645f, 0.464227f, 0.488482f, 0.757457f, 0.637261f, 0.310318f, 0.964036f, 0.909093f, 0.115461f, 0.148526f, 0.555448f, 0.922466f, 0.343884f, 0.419185f, 0.356125f, 0.213423f, 0.0435329f, 0.898867f, 0.0891735f, 0.641862f, 0.213841f, 0.208514f, 0.831035f, 0.0517722f, 0.26471f, 0.878577f, 0.938453f, 0.224824f, 0.100465f, 0.667f, 0.870299f, 0.766457f, 0.931991f, 0.362135f, 0.424383f, 0.782503f, 0.487522f, 0.910816f, 0.323453f, 0.164971f, 0.922241f, 0.785173f, 0.912289f, 0.634274f, 0.810572f, 0.425389f, 0.690095f, 0.417522f, 0.593327f, 0.773463f, 0.2411f, 0.946195f, 0.384804f, 0.249281f, 0.104386f, 0.888578f, 0.68157f, 0.0452774f, 0.499313f, 0.458826f, 0.0660197f, 0.178962f, 0.800402f, 0.89069f, 0.302542f, 0.498244f, 0.569138f, 0.967543f, 0.116232f, 0.747443f, 0.11968f, 0.28874f, 0.730311f, 0.704777f, 0.974278f, 0.651736f, 0.201235f, 0.88472f, 0.462319f, 0.338158f, 0.618101f, 0.0240971f, 0.517106f, 0.523773f, 0.00687858f, 0.449423f, 0.674406f, 0.0622918f, 0.211566f, 0.0119114f, 0.890941f, 0.856063f, 0.704314f, 0.605034f, 0.576547f, 0.00426751f, 0.99426f, 0.714742f, 0.746024f, 0.317009f, 0.280869f, 0.841606f, 0.689827f, 0.424418f, 0.60691f, 0.0523809f, 0.318917f, 0.463461f, 0.56929f, 0.396706f, 0.642232f, 0.437812f, 0.0497973f, 0.622397f, 0.0107665f, 0.157465f, 0.956789f, 0.345101f, 0.509413f, 0.178574f, 0.567599f, 0.467401f, 0.0663775f, 0.751779f, 0.467074f, 0.203206f, 0.565589f, 0.695089f, 0.930904f, 0.355701f, 0.494375f, 0.0548747f, 0.995289f, 0.738122f, 0.966138f, 0.74783f, 0.331163f, 0.547964f, 0.750492f, 0.0873614f, 0.803391f, 0.875753f, 0.983908f, 0.615168f, 0.881782f, 0.66364f, 0.821011f, 0.0437424f, 0.158211f, 0.81537f, 0.254053f, 0.0841519f, 0.600394f, 0.54709f, 0.304293f, 0.161425f, 0.680684f, 0.134827f, 0.822791f, 0.171279f, 0.263711f, 0.904173f, 0.730721f, 0.837627f, 0.630713f, 0.424171f, 0.1436f, 0.490414f, 0.588829f, 0.277178f, 0.501833f, 0.132825f, 0.99945f, 0.82426f, 0.346863f, 0.802016f, 0.563137f, 0.405649f, 0.300828f, 0.30626f, 0.959529f, 0.317436f, 0.757366f, 0.168739f, 0.814747f, 0.795999f, 0.987332f, 0.851515f, 0.175644f, 0.45275f, 0.319911f, 0.511743f, 0.769124f, 0.682705f, 0.611449f, 0.149342f, 0.473472f, 0.829222f, 0.340482f, 0.910498f, 0.410818f, 0.149561f, 0.313595f, 0.16491f, 0.175943f, 0.592428f, 0.775068f, 0.296364f, 0.129827f, 0.720047f, 0.0424121f, 0.0195966f, 0.550885f, 0.628628f, 0.860307f, 0.457882f, 0.604149f, 0.292863f, 0.221377f, 0.725782f, 0.467317f, 0.245825f, 0.959323f, 0.579488f, 0.053509f, 0.623069f, 0.84234f, 0.0756839f, 0.490533f, 0.535881f, 0.78284f, 0.003483f, 0.294261f, 0.577209f, 0.85636f, 0.848122f, 0.215597f, 0.401663f, 0.499195f, 0.383997f, 0.0772853f, 0.393267f, 0.967649f, 0.723874f, 0.0134035f, 0.417533f, 0.616528f, 0.275959f, 0.542618f, 0.0333001f, 0.051544f, 0.683903f, 0.405466f, 0.635196f, 0.897953f, 0.235144f, 0.395946f, 0.140848f, 0.461057f, 0.741495f, 0.261481f, 0.996666f, 0.456418f, 0.938732f, 0.434404f, 0.785783f, 0.31698f, 0.501701f, 0.24481f, 0.538954f, 0.238666f, 0.600782f, 0.446896f, 0.94859f, 0.0814037f, 0.211605f, 0.892435f, 0.65906f, 0.074547f, 0.991276f, 0.711306f, 0.0208342f, 0.147429f, 0.152632f, 0.224157f, 0.277968f, 0.414186f, 0.00208745f, 0.775913f, 0.571588f, 0.758412f, 0.828677f, 0.0829325f, 0.933862f, 0.106283f, 0.519618f, 0.0881866f, 0.224594f, 0.0189084f, 0.0659271f, 0.974928f, 0.82854f, 0.134003f, 0.738624f, 0.543466f, 0.0863006f, 0.882607f, 0.320078f, 0.666928f, 0.693226f, 0.70438f, 0.85448f, 0.775868f, 0.334582f, 0.635723f, 0.219116f, 0.909936f, 0.736899f, 0.409991f, 0.157747f, 0.616639f, 0.561564f, 0.12609f, 0.651409f, 0.917947f, 0.129513f, 0.596813f, 0.704076f, 0.728928f, 0.611481f, 0.291842f, 0.273992f, 0.454171f, 0.62646f, 0.0388674f, 0.625337f, 0.817961f, 0.500557f, 0.812369f, 0.344025f, 0.509396f, 0.309911f, 0.128096f, 0.278844f, 0.596262f, 0.530951f, 0.952717f, 0.289722f, 0.787079f, 0.746903f, 0.685077f, 0.412685f, 0.055122f, 0.39083f, 0.929635f, 0.933345f, 0.0566744f, 0.137104f, 0.531075f, 0.420183f, 0.915949f, 0.233181f, 0.877726f, 0.151468f, 0.158288f, 0.949597f, 0.861046f, 0.411398f, 0.0607589f, 0.860483f, 0.747925f, 0.417887f, 0.542449f, 0.541183f, 0.0290597f, 0.490308f, 0.994314f, 0.0288154f, 0.448569f, 0.29556f, 0.254556f, 0.214834f, 0.994449f, 0.455901f, 0.424348f, 0.0455689f, 0.943316f, 0.921489f, 0.531744f, 0.78504f, 0.348116f, 0.367114f, 0.963063f, 0.283874f, 0.332566f, 0.227099f, 0.464252f, 0.593859f, 0.686899f, 0.839795f, 0.367608f, 0.381914f, 0.674551f, 0.217788f, 0.124624f, 0.25339f, 0.0966057f, 0.753043f, 0.918051f, 0.699762f, 0.646178f, 0.37249f, 0.285682f, 0.518535f, 0.551352f, 0.067261f, 0.299475f, 0.302092f, 0.0265967f, 0.160134f, 0.956269f, 0.771048f, 0.415498f, 0.223088f, 0.470771f, 0.158735f, 0.0508719f, 0.796851f, 0.71981f, 0.334176f, 0.402225f, 0.734121f, 0.411236f, 0.28083f, 0.604116f, 0.284539f, 0.109407f, 0.392471f, 0.223762f, 0.757649f, 0.751274f, 0.726113f, 0.788269f, 0.0118473f, 0.20756f, 0.135646f, 0.814533f, 0.366708f, 0.180041f, 0.895747f, 0.213798f, 0.930997f, 0.169217f, 0.916498f, 0.297585f, 0.507309f, 0.566975f, 0.245468f, 0.614427f, 0.603645f, 0.555494f, 0.222661f, 0.0870348f, 0.76626f, 0.615529f, 0.986071f, 0.61517f, 0.504321f, 0.0445614f, 0.373633f, 0.664185f, 0.8271f, 0.278683f, 0.686827f, 0.0810148f, 0.0660232f, 0.286511f, 0.512195f, 0.508847f, 0.985641f, 0.619457f, 0.600938f, 0.0439228f, 0.161026f, 0.163524f, 0.830615f, 0.640138f, 0.122284f, 0.79851f, 0.586152f, 0.804195f, 0.624873f, 0.599216f, 0.0661066f, 0.976798f, 0.300219f, 0.753325f, 0.653453f, 0.382173f, 0.0178898f, 0.318674f, 0.492323f, 0.765235f, 0.727468f, 0.564317f, 0.225747f, 0.0612711f, 0.345757f, 0.834737f, 0.827275f, 0.316303f, 0.744176f, 0.183844f, 0.409722f, 0.8062f, 0.561327f, 0.564014f, 0.11746f, 0.914365f, 0.271437f, 0.509299f, 0.945122f, 0.253176f, 0.617672f, 0.0162595f, 0.310009f, 0.492477f, 0.304483f, 0.766467f, 0.748623f, 0.11091f, 0.903961f, 0.985104f, 0.736744f, 0.0377434f, 0.581304f, 0.968533f, 0.027765f, 0.918994f, 0.669358f, 0.955353f, 0.461749f, 0.579524f, 0.351479f, 0.484179f, 0.758077f, 0.280257f, 0.309951f, 0.159065f, 0.222593f, 0.563052f, 0.0881087f, 0.597631f, 0.396301f, 0.590142f, 0.140283f, 0.14033f, 0.963856f, 0.430781f, 0.598894f, 0.453247f, 0.043933f, 0.5655f, 0.296147f, 0.920062f, 0.790409f, 0.898751f, 0.365284f, 0.899785f, 0.49559f, 0.357233f, 0.456651f, 0.913636f, 0.0415706f, 0.27083f, 0.361005f, 0.512235f, 0.910817f, 0.640769f, 0.41952f, 0.225875f, 0.0826572f, 0.872911f, 0.779527f, 0.425178f, 0.230952f, 0.792504f, 0.538477f, 0.518485f, 0.759812f, 0.775982f, 0.267845f, 0.151747f, 0.0620934f, 0.380695f, 0.767428f, 0.180766f, 0.768072f, 0.178788f, 0.306042f, 0.265824f, 0.625785f, 0.191432f, 0.684929f, 0.892178f, 0.880488f, 0.0335891f, 0.624288f, 0.321644f, 0.997681f, 0.676068f, 0.576232f, 0.0639671f, 0.919977f, 0.228481f, 0.9968f, 0.87273f, 0.93279f, 0.680226f, 0.276056f, 0.59775f, 0.960059f, 0.835946f, 0.130988f, 0.676691f, 0.374077f, 0.871108f, 0.660882f, 0.819851f, 0.412905f, 0.715654f, 0.288157f, 0.421731f, 0.344712f, 0.340205f, 0.726632f, 0.346875f, 0.494607f, 0.154577f, 0.419996f, 0.866988f, 0.923872f, 0.224584f, 0.188632f, 0.688256f, 0.62134f, 0.566141f, 0.508034f, 0.446173f, 0.276762f, 0.186727f, 0.84382f, 0.520522f, 0.146267f, 0.326724f, 0.276408f, 0.0433107f, 0.775426f, 0.0716586f, 0.598046f, 0.201579f, 0.0470062f, 0.110896f, 0.742639f, 0.733008f, 0.964045f, 0.234818f, 0.00908989f, 0.14847f, 0.764839f, 0.372257f, 0.0732454f, 0.736048f, 0.530724f, 0.611581f, 0.704895f, 0.978628f, 0.104067f, 0.0587821f, 0.466607f, 0.513859f, 0.073367f, 0.456279f, 0.950761f, 0.779717f, 0.743702f, 0.85057f, 0.837475f, 0.21548f, 0.0758656f, 0.572578f, 0.0399919f, 0.13249f, 0.558964f, 0.183807f, 0.175215f, 0.887784f, 0.70033f, 0.280512f, 0.211932f, 0.383173f, 0.400913f, 0.282131f, 0.395625f, 0.0756162f, 0.0690113f, 0.508337f, 0.617142f, 0.137114f, 0.0948981f, 0.495932f, 0.789715f, 0.685948f, 0.883749f, 0.648337f, 0.769573f, 0.521979f, 0.0355754f, 0.373375f, 0.257872f, 0.209324f, 0.62097f, 0.615032f, 0.570179f, 0.308089f, 0.263833f, 0.266339f, 0.449532f, 0.333846f, 0.334076f, 0.29857f, 0.560688f, 0.0930012f, 0.407661f, 0.733649f, 0.435651f, 0.0500815f, 0.708807f, 0.618053f, 0.0498194f, 0.576019f, 0.905721f, 0.751875f, 0.283647f, 0.132191f, 0.572939f, 0.792567f, 0.598213f, 0.861111f, 0.231506f, 0.249733f, 0.918481f, 0.896616f, 0.595286f, 0.445973f, 0.125517f, 0.341052f, 0.633957f, 0.170552f, 0.961218f, 0.633031f, 0.957408f, 0.513017f, 0.849744f, 0.692573f, 0.341432f, 0.603468f, 0.120112f, 0.924676f, 0.963316f, 0.0206015f, 0.778159f, 0.33578f, 0.700126f, 0.0166289f, 0.653527f, 0.508319f, 0.244928f, 0.144974f, 0.805342f, 0.142692f, 0.276244f, 0.90889f, 0.243504f, 0.815123f, 0.643733f, 0.249388f, 0.87785f, 0.397713f, 0.726635f, 0.901361f, 0.373727f, 0.308042f, 0.332409f, 0.457064f, 0.621418f, 0.501509f, 0.708201f, 0.624883f, 0.843138f, 0.139259f, 0.0915826f, 0.692634f, 0.969916f, 0.310174f, 0.840849f, 0.357211f, 0.39896f, 0.916974f, 0.109918f, 0.993132f, 0.719899f, 0.416538f, 0.691254f, 0.532508f, 0.120668f, 0.23541f, 0.320957f, 0.918355f, 0.750493f, 0.150184f, 0.204495f, 0.851455f, 0.612642f, 0.640601f, 0.807641f, 0.0322647f, 0.611851f, 0.693634f, 0.291402f, 0.814455f, 0.273817f, 0.485362f, 0.354739f, 0.0473627f, 0.125383f, 0.504974f, 0.678705f, 0.411693f, 0.841946f, 0.0586182f, 0.769021f, 0.148958f, 0.540816f, 0.0035579f, 0.167399f, 0.992512f, 0.424822f, 0.967926f, 0.891685f, 0.417781f, 0.700522f, 0.898224f, 0.0247773f, 0.755678f, 0.719676f, 0.841502f, 0.404121f, 0.791645f, 0.415749f, 0.386102f, 0.2485f, 0.849075f, 0.217277f, 0.283421f, 0.393216f, 0.928606f, 0.899547f, 0.408452f, 0.345138f, 0.293429f, 0.701644f, 0.971665f, 0.68058f, 0.69751f, 0.0275219f, 0.866652f, 0.763843f, 0.27899f, 0.950548f, 0.645158f, 0.569168f, 0.611048f, 0.179961f, 0.931273f, 0.673296f, 0.535193f, 0.980806f, 0.462838f, 0.365812f, 0.433387f, 0.34521f, 0.353489f, 0.865886f, 0.390057f, 0.826091f, 0.402746f, 0.490749f, 0.0730381f, 0.88921f, 0.548313f, 0.568108f, 0.446319f, 0.976011f, 0.0100278f, 0.150469f, 0.129043f, 0.789769f, 0.547251f, 0.228088f, 0.210507f, 0.182635f, 0.865737f, 0.895096f, 0.363658f, 0.981409f, 0.847858f, 0.914729f, 0.824938f, 0.432977f, 0.651361f, 0.77585f, 0.774417f, 0.802889f, 0.836025f, 0.561158f, 0.600279f, 0.925f, 0.690457f, 0.781047f, 0.805659f, 0.900502f, 0.0238837f, 0.101743f, 0.171844f, 0.209899f, 0.197662f, 0.140042f, 0.955598f, 0.880282f, 0.562671f, 0.436887f, 0.964637f, 0.647575f, 0.276856f, 0.256236f, 0.495836f, 0.95714f, 0.549969f, 0.0156375f, 0.0639922f, 0.582348f, 0.446425f, 0.361302f, 0.148736f, 0.760943f, 0.796099f, 0.855681f, 0.212617f, 0.467775f, 0.602453f, 0.68756f, 0.912814f, 0.367024f, 0.557372f, 0.819638f, 0.630635f, 0.328515f, 0.797586f, 0.867159f, 0.433949f, 0.226666f, 0.774877f, 0.41631f, 0.811486f, 0.655874f, 0.597928f, 0.866057f, 0.451696f, 0.956782f, 0.169419f, 0.511258f, 0.653091f, 0.268976f, 0.900806f, 0.993532f, 0.804963f, 0.832374f, 0.879101f, 0.950586f, 0.672735f, 0.515634f, 0.274928f, 0.117228f, 0.573043f, 0.845599f, 0.393487f, 0.576845f, 0.475925f, 0.236152f, 0.88211f, 0.520927f, 0.612104f, 0.840932f, 0.54499f, 0.51173f, 0.917307f, 0.321128f, 0.181292f, 0.310309f, 0.945798f, 0.200201f, 0.0525791f, 0.751168f, 0.409206f, 0.83109f, 0.0427054f, 0.442786f, 0.482222f, 0.298017f, 0.486019f, 0.2301f, 0.158034f, 0.476069f, 0.100636f, 0.443695f, 0.998788f, 0.440997f, 0.389098f, 0.0823183f, 0.473866f, 0.932606f, 0.219362f, 0.611553f, 0.928534f, 0.707063f, 0.0527836f, 0.713546f, 0.899773f, 0.299491f, 0.144848f, 0.506873f, 0.0747662f, 0.482198f, 0.957113f, 0.0717272f, 0.534383f, 0.860147f, 0.677232f, 0.221148f, 0.416428f, 0.301721f, 0.18942f, 0.0665931f, 0.412089f, 0.713876f, 0.549685f, 0.740688f, 0.160386f, 0.461875f, 0.988385f, 0.549881f, 0.336303f, 0.546259f, 0.891491f, 0.534317f, 0.138813f, 0.926054f, 0.271542f, 0.27805f, 0.534913f, 0.00615897f, 0.692222f, 0.127229f, 0.730899f, 0.918962f, 0.548539f, 0.830681f, 0.886659f, 0.0198554f, 0.214369f, 0.944238f, 0.469166f, 0.9595f, 0.714853f, 0.754693f, 0.632177f, 0.136082f, 0.214233f, 0.148486f, 0.142554f, 0.71482f, 0.610274f, 0.939756f, 0.921736f, 0.0163028f, 0.675795f, 0.964418f, 0.465224f, 0.932563f, 0.78443f, 0.215089f, 0.903087f, 0.572354f, 0.684852f, 0.411951f, 0.251114f, 0.446106f, 0.875319f, 0.105901f, 0.79616f, 0.239362f, 0.932456f, 0.925477f, 0.280446f, 0.964613f, 0.523841f, 0.823652f, 0.272638f, 0.0929042f, 0.253928f, 0.73175f, 0.440296f, 0.471819f, 0.750174f, 0.205456f, 0.403266f, 0.433924f, 0.0774383f, 0.948408f, 0.337614f, 0.50142f, 0.682877f, 0.854771f, 0.703206f, 0.42341f, 0.676134f, 0.214581f, 0.85109f, 0.0440497f, 0.943383f, 0.95148f, 0.722163f, 0.236531f, 0.378478f, 0.583662f, 0.947408f, 0.870719f, 0.615271f, 0.222844f, 0.298359f, 0.539429f, 0.674788f, 0.0780377f, 0.940042f, 0.0124713f, 0.489701f, 0.2671f, 0.65149f, 0.736091f, 0.10314f, 0.208335f, 0.344688f, 0.854764f, 0.960612f, 0.172681f, 0.403244f, 0.606578f, 0.558464f, 0.750431f, 0.251524f, 0.869247f, 0.884348f, 0.739821f, 0.886854f, 0.917043f, 0.240966f, 0.611184f, 0.67041f, 0.0332811f, 0.999595f, 0.900896f, 0.125225f, 0.61326f, 0.621172f, 0.765687f, 0.556f, 0.906384f, 0.79286f, 0.0830869f, 0.561454f, 0.415814f, 0.496362f, 0.704361f, 0.744402f, 0.453154f, 0.4897f, 0.691936f, 0.513089f, 0.626925f, 0.309659f, 0.668496f, 0.706798f, 0.123579f, 0.0452503f, 0.701868f, 0.68447f, 0.322042f, 0.755855f, 0.353057f, 0.954946f, 0.297459f, 0.554577f, 0.0398144f, 0.0716342f, 0.911758f, 0.0967312f, 0.279211f, 0.640686f, 0.290193f, 0.294131f, 0.889354f, 0.107775f, 0.0859083f, 0.955491f, 0.750323f, 0.301426f, 0.0679114f, 0.542268f, 0.0971271f, 0.175738f, 0.939917f, 0.740314f, 0.757107f, 0.601177f, 0.0935744f, 0.344923f, 0.968417f, 0.431867f, 0.498361f, 0.295489f, 0.103358f, 0.134519f, 0.291735f, 0.647672f, 0.336172f, 0.756561f, 0.945544f, 0.0282516f, 0.341329f, 0.743685f, 0.298849f, 0.205219f, 0.242202f, 0.87606f, 0.827173f, 0.984938f, 0.854145f, 0.190253f, 0.609475f, 0.311419f, 0.988331f, 0.666682f, 0.9607f, 0.643002f, 0.0448832f, 0.738248f, 0.348618f, 0.0763026f, 0.888354f, 0.517763f, 0.109996f, 0.0868614f, 0.82533f, 0.396627f, 0.137868f, 0.826429f, 0.867586f, 0.555135f, 0.892493f, 0.585946f, 0.305518f, 0.315007f, 0.701989f, 0.802518f, 0.683298f, 0.00264837f, 0.679673f, 0.709136f, 0.142642f, 0.533601f, 0.346676f, 0.942817f, 0.45962f, 0.524578f, 0.0179627f, 0.378634f, 0.820991f, 0.775419f, 0.102314f, 0.0266546f, 0.143167f, 0.265264f, 0.218971f, 0.146096f, 0.635497f, 0.717874f, 0.110783f, 0.560967f, 0.300097f, 0.204259f, 0.897322f, 0.668512f, 0.235515f, 0.173443f, 0.734684f, 0.780446f, 0.572501f, 0.406989f, 0.315402f, 0.796833f, 0.0231761f, 0.0218985f, 0.298767f, 0.475227f, 0.754351f, 0.967537f, 0.664917f, 0.980077f, 0.21669f, 0.416873f, 0.21657f, 0.476457f, 0.814323f, 0.984516f, 0.871082f, 0.304772f, 0.324579f, 0.0843155f, 0.896098f, 0.372684f, 0.39024f, 0.424434f, 0.511256f, 0.91814f, 0.984691f, 0.708243f, 0.673182f, 0.366004f, 0.123732f, 0.701677f, 0.408152f, 0.342148f, 0.166041f, 0.692533f, 0.708754f, 0.0508529f, 0.0662668f, 0.888426f, 0.0280568f, 0.201639f, 0.71051f, 0.984445f, 0.204678f, 0.555812f, 0.956799f, 0.734969f, 0.19871f, 0.823173f, 0.262225f, 0.394371f, 0.631518f, 0.47478f, 0.0770741f, 0.551515f, 0.370017f, 0.0741412f, 0.0500548f, 0.263441f, 0.327276f, 0.939112f, 0.411624f, 0.544791f, 0.66275f, 0.283403f, 0.88434f, 0.0294057f, 0.316909f, 0.0725998f, 0.00835549f, 0.809334f, 0.849179f, 0.375754f, 0.957422f, 0.85466f, 0.217407f, 0.542908f, 0.175748f, 0.504585f, 0.976336f, 0.491499f, 0.778212f, 0.366838f, 0.178977f, 0.0574047f, 0.11183f, 0.0680625f, 0.415275f, 0.142f, 0.527739f, 0.773302f, 0.405801f, 0.824558f, 0.9404f, 0.78715f, 0.155868f, 0.358388f, 0.66603f, 0.998367f, 0.796693f, 0.39847f, 0.0166702f, 0.760833f, 0.947697f, 0.773071f, 0.430953f, 0.199777f, 0.440754f, 0.789584f, 0.402203f, 0.290959f, 0.136039f, 0.407225f, 0.886502f, 0.224862f, 0.534533f, 0.504989f, 0.57205f, 0.289784f, 0.0567022f, 0.513797f, 0.688991f, 0.489846f, 0.0791771f, 0.355252f, 0.0180781f, 0.882109f, 0.130447f, 0.349479f, 0.967927f, 0.326071f, 0.675689f, 0.849642f, 0.343251f, 0.0138873f, 0.172055f, 0.573791f, 0.713112f, 0.642188f, 0.231037f, 0.482308f, 0.429474f, 0.817152f, 0.604725f, 0.576264f, 0.590874f, 0.530946f, 0.060237f, 0.834396f, 0.25964f, 0.513882f, 0.330849f, 0.367801f, 0.4338f, 0.96881f, 0.392219f, 0.891667f, 0.0558481f, 0.881091f, 0.652911f, 0.907213f, 0.525012f, 0.799427f, 0.10591f, 0.823859f, 0.25909f, 0.148185f, 0.30551f, 0.0979791f, 0.823973f, 0.493586f, 0.510876f, 0.405858f, 0.44503f, 0.0469695f, 0.392873f, 0.983446f, 0.824499f, 0.560729f, 0.874036f, 0.0364178f, 0.0264234f, 0.972361f, 0.180638f, 0.761379f, 0.673746f, 0.421156f, 0.448217f, 0.587261f, 0.189683f, 0.875711f, 0.442644f, 0.496144f, 0.0587351f, 0.819399f, 0.298208f, 0.283541f, 0.997576f, 0.355854f, 0.83655f, 0.728251f, 0.55746f, 0.840863f, 0.746343f, 0.640369f, 0.902633f, 0.3231f, 0.536743f, 0.60424f, 0.858438f, 0.402129f, 0.119052f, 0.197639f, 0.545146f, 0.0509377f, 0.785403f, 0.359014f, 0.435355f, 0.445491f, 0.15645f, 0.419904f, 0.558313f, 0.733979f, 0.0500345f, 0.259926f, 0.829724f, 0.704491f, 0.118991f, 0.0171485f, 0.953601f, 0.403183f, 0.804015f, 0.204906f, 0.226606f, 0.958313f, 0.899884f, 0.123221f, 0.582415f, 0.167405f, 0.551889f, 0.577661f, 0.351546f, 0.666651f, 0.750385f, 0.42224f, 0.1394f, 0.957366f, 0.190762f, 0.397029f, 0.236701f, 0.807296f, 0.977773f, 0.908144f, 0.63838f, 0.0202056f, 0.102166f, 0.0770063f, 0.0896048f, 0.592962f, 0.331862f, 0.290044f, 0.753807f, 0.844978f, 0.220282f, 0.524613f, 0.674022f, 0.804005f, 0.564743f, 0.0162725f, 0.433844f, 0.844632f, 0.778595f, 0.0121974f, 0.939128f, 0.352941f, 0.965113f, 0.785378f, 0.281219f, 0.0634396f, 0.00429965f, 0.401227f, 0.198532f, 0.40841f, 0.845486f, 0.311989f, 0.00704158f, 0.821301f, 0.959929f, 0.0583634f, 0.574366f, 0.432346f, 0.0660277f, 0.0407462f, 0.716607f, 0.279973f, 0.968249f, 0.118468f, 0.0713564f, 0.617792f, 0.0364391f, 0.789564f, 0.931509f, 0.646733f, 0.894797f, 0.0255862f, 0.521541f, 0.47941f, 0.911951f, 0.108453f, 0.29824f, 0.934456f, 0.122792f, 0.906146f, 0.0347667f, 0.885765f, 0.236362f, 0.66265f, 0.325736f, 0.250516f, 0.00275351f, 0.215824f, 0.0109774f, 0.500205f, 0.619165f, 0.268715f, 0.00368781f, 0.570198f, 0.962896f, 0.2447f, 0.693203f, 0.59192f, 0.513152f, 0.0424015f, 0.44479f, 0.974031f, 0.487295f, 0.577131f, 0.385076f, 0.72506f, 0.595617f, 0.595126f, 0.671998f, 0.797152f, 0.735002f, 0.561665f, 0.751351f, 0.437535f, 0.316728f, 0.927018f, 0.724848f, 0.670374f, 0.828052f, 0.200936f, 0.600996f, 0.979797f, 0.234869f, 0.0929985f, 0.179676f, 0.206935f, 0.577415f, 0.591904f, 0.676284f, 0.0182387f, 0.133701f, 0.390187f, 0.492462f, 0.569746f, 0.556183f, 0.300664f, 0.128553f, 0.386784f, 0.929474f, 0.90866f, 0.0408087f, 0.447141f, 0.0394187f, 0.210142f, 0.800794f, 0.249493f, 0.1711f, 0.775389f, 0.321793f, 0.497328f, 0.920615f, 0.72654f, 0.987001f, 0.865239f, 0.168f, 0.41209f, 0.560018f, 0.425795f, 0.050327f, 0.181931f, 0.78959f, 0.00529848f, 0.302152f, 0.214343f, 0.445677f, 0.448867f, 0.325477f, 0.395507f, 0.307492f, 0.0688672f, 0.299394f, 0.750222f, 0.459083f, 0.357636f, 0.81627f, 0.549338f, 0.173428f, 0.755245f, 0.461379f, 0.880511f, 0.32672f, 0.659535f, 0.725552f, 0.343132f, 0.459094f, 0.588021f, 0.924431f, 0.279072f, 0.365516f, 0.51584f, 0.925071f, 0.782208f, 0.402797f, 0.0848286f, 0.894447f, 0.25516f, 0.71576f, 0.209828f, 0.625123f, 0.719563f, 0.156484f, 0.788108f, 0.0235596f, 0.550313f, 0.107401f, 0.531978f, 0.700822f, 0.138419f, 0.93222f, 0.0250308f, 0.761861f, 0.600686f, 0.927817f, 0.590488f, 0.544644f, 0.689929f, 0.646576f, 0.45495f, 0.250062f, 0.285164f, 0.0444433f, 0.756472f, 0.649678f, 0.227151f, 0.400516f, 0.0890544f, 0.599938f, 0.0134461f, 0.944401f, 0.161036f, 0.285342f, 0.942577f, 0.418774f, 0.531273f, 0.615817f, 0.777693f, 0.356737f, 0.0277513f, 0.311302f, 0.322879f, 0.733471f, 0.687102f, 0.519443f, 0.324993f, 0.996888f, 0.600846f, 0.88903f, 0.447834f, 0.484094f, 0.857112f, 0.308958f, 0.114202f, 0.618884f, 0.887633f, 0.181305f, 0.521852f, 0.839859f, 0.360276f, 0.357392f, 0.978203f, 0.00644566f, 0.353331f, 0.590259f, 0.250829f, 0.0271141f, 0.972923f, 0.46393f, 0.828972f, 0.455742f, 0.0231219f, 0.577045f, 0.650473f, 0.818425f, 0.695791f, 0.275232f, 0.0350587f, 0.773464f, 0.0403544f, 0.739522f, 0.141117f, 0.637566f, 0.828575f, 0.730955f, 0.125611f, 0.594952f, 0.911731f, 0.985904f, 0.00857818f, 0.427475f, 0.931194f, 0.966889f, 0.369253f, 0.459884f, 0.266648f, 0.312622f, 0.456116f, 0.977555f, 0.289786f, 0.116616f, 0.345017f, 0.330979f, 0.392478f, 0.756026f, 0.324448f, 0.247345f, 0.377854f, 0.844884f, 0.220027f, 0.29662f, 0.661884f, 0.330342f, 0.545344f, 0.536275f, 0.308303f, 0.598373f, 0.768796f, 0.154837f, 0.463053f, 0.538544f, 0.868723f, 0.881907f, 0.882959f, 0.841358f, 0.0700229f, 0.209758f, 0.389461f, 0.0936458f, 0.712309f, 0.267845f, 0.255603f, 0.558159f, 0.657676f, 0.413247f, 0.523729f, 0.139476f, 0.31866f, 0.108104f, 0.748128f, 0.373597f, 0.202816f, 0.380043f, 0.19868f, 0.232872f, 0.894402f, 0.0514955f, 0.532503f, 0.100772f, 0.037074f, 0.10981f, 0.86109f, 0.654005f, 0.154299f, 0.898359f, 0.408183f, 0.679988f, 0.90754f, 0.375236f, 0.882333f, 0.270426f, 0.513036f, 0.581996f, 0.932715f, 0.837767f, 0.173011f, 0.0419643f, 0.574801f, 0.0963259f, 0.788492f, 0.733621f, 0.119557f, 0.9871f, 0.957762f, 0.465913f, 0.609707f, 0.942469f, 0.620195f, 0.453049f, 0.453488f, 0.956275f, 0.686171f, 0.882992f, 0.931574f, 0.872779f, 0.890029f, 0.183952f, 0.943933f, 0.107183f, 0.181155f, 0.201269f, 0.702818f, 0.606594f, 0.773789f, 0.498294f, 0.852091f, 0.920335f, 0.987666f, 0.64869f, 0.889185f, 0.623223f, 0.947191f, 0.477914f, 0.49591f, 0.308485f, 0.857547f, 0.932055f, 0.910387f, 0.473953f, 0.688625f, 0.401032f, 0.132168f, 0.303434f, 0.634216f, 0.992237f, 0.0731308f, 0.041773f, 0.511691f, 0.25241f, 0.554861f, 0.455313f, 0.678287f, 0.530853f, 0.225368f, 0.43792f, 0.532123f, 0.485212f, 0.637144f, 0.960978f, 0.95891f, 0.0782347f, 0.289332f, 0.886921f, 0.764571f, 0.361793f, 0.0746127f, 0.993632f, 0.694509f, 0.623157f, 0.130792f, 0.893395f, 0.0873223f, 0.252372f, 0.0040305f, 0.724391f, 0.942513f, 0.678298f, 0.78984f, 0.726096f, 0.251289f, 0.365509f, 0.697511f, 0.182567f, 0.384673f, 0.0197732f, 0.889548f, 0.889591f, 0.781046f, 0.442412f, 0.777671f, 0.898534f, 0.54291f, 0.636089f, 0.419532f, 0.614074f, 0.246672f, 0.104112f, 0.410356f, 0.0850863f, 0.732314f, 0.576642f, 0.983862f, 0.245529f, 0.905021f, 0.423117f, 0.642733f, 0.0384267f, 0.905644f, 0.189703f, 0.846216f, 0.638472f, 0.212359f, 0.13522f, 0.458133f, 0.592051f, 0.978257f, 0.951733f, 0.545079f, 0.261652f, 0.699546f, 0.433683f, 0.0664002f, 0.436459f, 0.705024f, 0.609772f, 0.324989f, 0.266375f, 0.318822f, 0.168132f, 0.120973f, 0.0613638f, 0.960365f, 0.0411135f, 0.79781f, 0.37686f, 0.161793f, 0.267026f, 0.0747603f, 0.143638f, 0.873175f, 0.29606f, 0.144062f, 0.527469f, 0.888221f, 0.926065f, 0.973356f, 0.418015f, 0.266929f, 0.212153f, 0.365911f, 0.507319f, 0.734776f, 0.196497f, 0.0282453f, 0.599506f, 0.672937f, 0.521375f, 0.131725f, 0.949371f, 0.1465f, 0.146601f, 0.199998f, 0.234061f, 0.179435f, 0.073721f, 0.658238f, 0.692011f, 0.294476f, 0.636462f, 0.811079f, 0.447009f, 0.346376f, 0.540229f, 0.142998f, 0.809889f, 0.149238f, 0.623237f, 0.440844f, 0.446792f, 0.050568f, 0.954065f, 0.122756f, 0.970355f, 0.434692f, 0.602249f, 0.879318f, 0.781173f, 0.921066f, 0.854981f, 0.87454f, 0.358674f, 0.27127f, 0.584635f, 0.267057f, 0.0961367f, 0.160083f, 0.0938329f, 0.585566f, 0.703595f, 0.767254f, 0.714843f, 0.172718f, 0.392079f, 0.000955963f, 0.977616f, 0.575433f, 0.423307f, 0.678327f, 0.976696f, 0.536711f, 0.41057f, 0.58762f, 0.196584f, 0.321225f, 0.76111f, 0.208201f, 0.522568f, 0.512635f, 0.516359f, 0.686973f, 0.974234f, 0.0214595f, 0.346165f, 0.445053f, 0.551545f, 0.831634f, 0.661682f, 0.129605f, 0.67415f, 0.779018f, 0.420759f, 0.199274f, 0.570723f, 0.596118f, 0.338123f, 0.821161f, 0.63861f, 0.855365f, 0.197256f, 0.887666f, 0.464242f, 0.362706f, 0.609213f, 0.830651f, 0.676957f, 0.941982f, 0.649738f, 0.0908446f, 0.153289f, 0.458819f, 0.225334f, 0.727708f, 0.796149f, 0.961531f, 0.944226f, 0.722972f, 0.537162f, 0.794307f, 0.820672f, 0.303677f, 0.0092616f, 0.150626f, 0.278319f, 0.401405f, 0.119615f, 0.775608f, 0.257171f, 0.144378f, 0.630399f, 0.201702f, 0.994009f, 0.545814f, 0.0633206f, 0.0854413f, 0.0138782f, 0.9435f, 0.293533f, 0.084039f, 0.286295f, 0.709022f, 0.309837f, 0.914594f, 0.81354f, 0.318379f, 0.0720562f, 0.796569f, 0.581334f, 0.448156f, 0.590333f, 0.638818f, 0.90309f, 0.907353f, 0.267875f, 0.739135f, 0.0269618f, 0.415492f, 0.210443f, 0.11701f, 0.2802f, 0.476753f, 0.798298f, 0.459586f, 0.980068f, 0.623407f, 0.102737f, 0.815412f, 0.721706f, 0.0192618f, 0.622737f, 0.410737f, 0.966186f, 0.451259f, 0.178196f, 0.590272f, 0.632138f, 0.0150193f, 0.754371f, 0.282721f, 0.111791f, 0.964293f, 0.757311f, 0.863531f, 0.815876f, 0.741579f, 0.132043f, 0.311717f, 0.375529f, 0.423573f, 0.879152f, 0.687964f, 0.623009f, 0.928642f, 0.211231f, 0.599021f, 0.315594f, 0.48983f, 0.924192f, 0.15759f, 0.835065f, 0.270752f, 0.519572f, 0.983971f, 0.933466f, 0.39281f, 0.164771f, 0.69996f, 0.695087f, 0.939934f, 0.360593f, 0.884087f, 0.0705368f, 0.195783f, 0.840753f, 0.640125f, 0.608968f, 0.660921f, 0.391866f, 0.560112f, 0.279624f, 0.130927f, 0.379738f, 0.29212f, 0.0839564f, 0.959167f, 0.481734f, 0.761034f, 0.218957f, 0.657724f, 0.89205f, 0.632027f, 0.00426973f, 0.901251f, 0.611128f, 0.93658f, 0.192968f, 0.800139f, 0.734223f, 0.257371f, 0.583209f, 0.205984f, 0.306612f, 0.732238f, 0.767415f, 0.306473f, 0.301493f, 0.655717f, 0.806719f, 0.185761f, 0.108008f, 0.369758f, 0.5799f, 0.39172f, 0.586472f, 0.912723f, 0.996995f, 0.328359f, 0.728283f, 0.913385f, 0.458639f, 0.487452f, 0.315121f, 0.487541f, 0.689887f, 0.334267f, 0.261757f, 0.554891f, 0.74423f, 0.81897f, 0.199157f, 0.92522f, 0.795319f, 0.29064f, 0.734204f, 0.428365f, 0.64949f, 0.83396f, 0.468518f, 0.322345f, 0.887436f, 0.679391f, 0.793715f, 0.627969f, 0.549529f, 0.216202f, 0.935997f, 0.303923f, 0.0265268f, 0.256032f, 0.00753601f, 0.740424f, 0.765904f, 0.448312f, 0.0849806f, 0.219901f, 0.641763f, 0.732962f, 0.562491f, 0.698137f, 0.390629f, 0.441117f, 0.914715f, 0.371376f, 0.0270291f, 0.565576f, 0.872735f, 0.283587f, 0.300075f, 0.428127f, 0.765926f, 0.601275f, 0.116522f, 0.184715f, 0.0921416f, 0.225001f, 0.328041f, 0.831487f, 0.240143f, 0.298623f, 0.0183053f, 0.423449f, 0.173679f, 0.532816f, 0.174162f, 0.724482f, 0.338944f, 0.634093f, 0.825546f, 0.598415f, 0.712967f, 0.281606f, 0.626934f, 0.972574f, 0.749146f, 0.521465f, 0.817477f, 0.820694f, 0.674425f, 0.822765f, 0.76617f, 0.0219426f, 0.481244f, 0.799323f, 0.54821f, 0.99158f, 0.467712f, 0.608509f, 0.413756f, 0.164914f, 0.627942f, 0.479727f, 0.602386f, 0.330174f, 0.690089f, 0.129653f, 0.158252f, 0.577024f, 0.44558f, 0.549267f, 0.161021f, 0.468495f, 0.760144f, 0.872291f, 0.850721f, 0.74684f, 0.315013f, 0.0820171f, 0.195057f, 0.229297f, 0.0356003f, 0.625246f, 0.0778245f, 0.998756f, 0.947639f, 0.607523f, 0.434552f, 0.989694f, 0.815607f, 0.941278f, 0.861908f, 0.999584f, 0.989924f, 0.492682f, 0.622809f, 0.0118228f, 0.128034f, 0.508684f, 0.676673f, 0.596012f, 0.081458f, 0.436571f, 0.633841f, 0.906294f, 0.11493f, 0.836429f, 0.942813f, 0.660931f, 0.61251f, 0.200747f, 0.634191f, 0.0971297f, 0.9871f, 0.525109f, 0.957392f, 0.849594f, 0.838424f, 0.43607f, 0.786804f, 0.250731f, 0.565066f, 0.0139926f, 0.731502f, 0.066213f, 0.352713f, 0.866957f, 0.809287f, 0.187923f, 0.852455f, 0.028073f, 0.894598f, 0.592446f, 0.454888f, 0.471943f, 0.734707f, 0.565559f, 0.720943f, 0.100021f, 0.156881f, 0.298176f, 0.719757f, 0.190602f, 0.499897f, 0.455767f, 0.413476f, 0.561167f, 0.217268f, 0.615113f, 0.652399f, 0.167765f, 0.2394f, 0.908603f, 0.44359f, 0.762971f, 0.262683f, 0.979575f, 0.0046518f, 0.78731f, 0.560064f, 0.409568f, 0.470744f, 0.221643f, 0.172649f, 0.916843f, 0.840882f, 0.494234f, 0.796157f, 0.82787f, 0.0642344f, 0.149631f, 0.121883f, 0.471611f, 0.725665f, 0.517188f, 0.92359f, 0.0724756f, 0.167474f, 0.974842f, 0.429479f, 0.582507f, 0.753831f, 0.941557f, 0.652318f, 0.999982f, 0.880069f, 0.170462f, 0.642863f, 0.297986f, 0.754937f, 0.715194f, 0.382265f, 0.0684199f, 0.152803f, 0.346498f, 0.0980933f, 0.539281f, 0.313148f, 0.329868f, 0.659931f, 0.460339f, 0.756118f, 0.948438f, 0.47178f, 0.608557f, 0.943064f, 0.972609f, 0.731033f, 0.0835427f, 0.116397f, 0.960032f, 0.878928f, 0.158863f, 0.96914f, 0.215856f, 0.490591f, 0.932403f, 0.00532221f, 0.56509f, 0.184162f, 0.071154f, 0.187463f, 0.67118f, 0.224376f, 0.812902f, 0.587138f, 0.414517f, 0.906184f, 0.212648f, 0.83957f, 0.0392536f, 0.541782f, 0.295983f, 0.30007f, 0.22822f, 0.262378f, 0.834384f, 0.315133f, 0.324306f, 0.0557477f, 0.82832f, 0.928104f, 0.367016f, 0.649099f, 0.0396088f, 0.733263f, 0.0114925f, 0.189227f, 0.435077f, 0.57049f, 0.209751f, 0.99275f, 0.0132314f, 0.748614f, 0.754128f, 0.308886f, 0.940483f, 0.563096f, 0.417193f, 0.689936f, 0.944569f, 0.758204f, 0.61821f, 0.896863f, 0.273171f, 0.889657f, 0.599449f, 0.336948f, 0.994484f, 0.516204f, 0.113564f, 0.725726f, 0.306077f, 0.834276f, 0.0798385f, 0.390562f, 0.851716f, 0.38912f, 0.49531f, 0.305076f, 0.258891f, 0.553501f, 0.114869f, 0.0733474f, 0.640746f, 0.959401f, 0.361267f, 0.844638f, 0.970882f, 0.334052f, 0.950295f, 0.953569f, 0.285906f, 0.698312f, 0.860996f, 0.686962f, 0.470302f, 0.0658563f, 0.74922f, 0.986479f, 0.719605f, 0.58211f, 0.0382286f, 0.516559f, 0.80634f, 0.407344f, 0.282383f, 0.0815423f, 0.020983f, 0.956287f, 0.95763f, 0.13336f, 0.944486f, 0.0188899f, 0.811448f, 0.57224f, 0.0696519f, 0.588823f, 0.595569f, 0.857287f, 0.626235f, 0.0776045f, 0.826725f, 0.111139f, 0.892575f, 0.544137f, 0.124404f, 0.802925f, 0.211684f, 0.519513f, 0.46979f, 0.302065f, 0.932356f, 0.611625f, 0.937576f, 0.817479f, 0.119266f, 0.410209f, 0.605702f, 0.782327f, 0.158269f, 0.903792f, 0.241192f, 0.771094f, 0.724703f, 0.643881f, 0.433215f, 0.638512f, 0.182143f, 0.709728f, 0.841723f, 0.0507608f, 0.327897f, 0.344321f, 0.722545f, 0.447383f, 0.285312f, 0.0242404f, 0.785832f, 0.477245f, 0.733531f, 0.793145f, 0.388553f, 0.453201f, 0.965354f, 0.387875f, 0.880384f, 0.0192083f, 0.372754f, 0.802752f, 0.500992f, 0.20782f, 0.025106f, 0.937312f, 0.161403f, 0.325695f, 0.554755f, 0.921233f, 0.969702f, 0.177798f, 0.635858f, 0.228456f, 0.517535f, 0.764385f, 0.0310674f, 0.663643f, 0.51201f, 0.878013f, 0.857616f, 0.160906f, 0.546719f, 0.237824f, 0.400096f, 0.687779f, 0.601709f, 0.00459333f, 0.649596f, 0.29988f, 0.0568715f, 0.58124f, 0.180596f, 0.60101f, 0.00389178f, 0.328437f, 0.333262f, 0.284833f, 0.716697f, 0.651259f, 0.730291f, 0.290504f, 0.574079f, 0.447069f, 0.201367f, 0.407274f, 0.237481f, 0.850878f, 0.274307f, 0.303421f, 0.518478f, 0.917222f, 0.0848286f, 0.556413f, 0.924497f, 0.107259f, 0.230666f, 0.828556f, 0.575067f, 0.336448f, 0.0485684f, 0.0609157f, 0.357136f, 0.094745f, 0.857984f, 0.623518f, 0.256357f, 0.790221f, 0.0788018f, 0.380383f, 0.91978f, 0.18314f, 0.287352f, 0.907766f, 0.390134f, 0.512253f, 0.569944f, 0.661262f, 0.365042f, 0.72941f, 0.746994f, 0.526814f, 0.56478f, 0.578807f, 0.427708f, 0.893288f, 0.447646f, 0.31169f, 0.741519f, 0.172659f, 0.315436f, 0.407067f, 0.065012f, 0.604022f, 0.241147f, 0.28989f, 0.25807f, 0.834869f, 0.56664f, 0.0757672f, 0.0614231f, 0.922294f, 0.699248f, 0.478451f, 0.210576f, 0.868179f, 0.0737086f, 0.696861f, 0.0934867f, 0.103978f, 0.213312f, 0.12607f, 0.647746f, 0.0123185f, 0.550134f, 0.370287f, 0.242576f, 0.691588f, 0.760269f, 0.229541f, 0.0712436f, 0.670378f, 0.148687f, 0.352557f, 0.792037f, 0.723984f, 0.78095f, 0.0760833f, 0.214986f, 0.794623f, 0.656526f, 0.2657f, 0.162698f, 0.249672f, 0.737294f, 0.144896f, 0.960271f, 0.952706f, 0.247689f, 0.781195f, 0.637473f, 0.651339f, 0.480488f, 0.624827f, 0.168967f, 0.882051f, 0.432428f, 0.821382f, 0.126006f, 0.888336f, 0.537809f, 0.975249f, 0.47041f, 0.186036f, 0.385578f, 0.294402f, 0.278556f, 0.303968f, 0.101222f, 0.984892f, 0.962658f, 0.285753f, 0.0867446f, 0.267672f, 0.944927f, 0.619094f, 0.109094f, 0.586843f, 0.441005f, 0.572039f, 0.686227f, 0.825132f, 0.807977f, 0.464764f, 0.270553f, 0.566108f, 0.20144f, 0.82994f, 0.277983f, 0.127498f, 0.980175f, 0.490948f, 0.588068f, 0.842485f, 0.73467f, 0.300052f, 0.794655f, 0.709573f, 0.633959f, 0.617273f, 0.277497f, 0.231344f, 0.576921f, 0.330769f, 0.387124f, 0.559898f, 0.489555f, 0.262435f, 0.897746f, 0.942984f, 0.696111f, 0.330836f, 0.258096f, 0.18709f, 0.250549f, 0.695652f, 0.00178437f, 0.771559f, 0.935707f, 0.0570436f, 0.222083f, 0.0285951f, 0.793577f, 0.778705f, 0.829804f, 0.552224f, 0.878264f, 0.590307f, 0.416663f, 0.968305f, 0.980497f, 0.374351f, 0.416178f, 0.96846f, 0.408325f, 0.380784f, 0.157902f, 0.207659f, 0.420486f, 0.246321f, 0.0205687f, 0.728861f, 0.415458f, 0.545777f, 0.763633f, 0.120258f, 0.486911f, 0.969393f, 0.286764f, 0.336028f, 0.286827f, 0.585956f, 0.450174f, 0.0558024f, 0.680114f, 0.0793479f, 0.48357f, 0.602861f, 0.775916f, 0.0411381f, 0.338329f, 0.8924f, 0.824861f, 0.110559f, 0.306005f, 0.717528f, 0.180393f, 0.653016f, 0.500991f, 0.480166f, 0.813107f, 0.217375f, 0.465885f, 0.383509f, 0.703033f, 0.859691f, 0.0195925f, 0.834752f, 0.734476f, 0.955846f, 0.580859f, 0.953796f, 0.654574f, 0.44423f, 0.0112598f, 0.282579f, 0.49631f, 0.545955f, 0.175376f, 0.19637f, 0.556494f, 0.0788281f, 0.634461f, 0.415645f, 0.240133f, 0.131654f, 0.937616f, 0.802098f, 0.447082f, 0.781492f, 0.655502f, 0.0768588f, 0.0264196f, 0.440422f, 0.340152f, 0.848416f, 0.18037f, 0.996482f, 0.529455f, 0.77265f, 0.795671f, 0.27664f, 0.596482f, 0.156991f, 0.0264286f, 0.0321646f, 0.313622f, 0.66091f, 0.102391f, 0.247598f, 0.633924f, 0.366711f, 0.67399f, 0.770374f, 0.305931f, 0.694115f, 0.218569f, 0.688451f, 0.395182f, 0.254572f, 0.667813f, 0.0587792f, 0.467662f, 0.161722f, 0.724485f, 0.621927f, 0.516418f, 0.949979f, 0.306452f, 0.63481f, 0.314079f, 0.218101f, 0.30225f, 0.537741f, 0.513449f, 0.70897f, 0.993491f, 0.5555f, 0.555535f, 0.859809f, 0.548939f, 0.318943f, 0.992481f, 0.992319f, 0.806028f, 0.317697f, 0.479037f, 0.450285f, 0.0430833f, 0.68005f, 0.241278f, 0.785787f, 0.848216f, 0.442909f, 0.731278f, 0.507967f, 0.644294f, 0.384743f, 0.490276f, 0.514169f, 0.028633f, 0.382395f, 0.158087f, 0.888714f, 0.0219941f, 0.843342f, 0.486631f, 0.75527f, 0.171793f, 0.807343f, 0.512682f, 0.137995f, 0.553477f, 0.754692f, 0.414911f, 0.297277f, 0.748853f, 0.644971f, 0.258304f, 0.503775f, 0.50907f, 0.108981f, 0.0239485f, 0.974731f, 0.0142304f, 0.921031f, 0.384431f, 0.91562f, 0.509847f, 0.469516f, 0.73212f, 0.684066f, 0.653302f, 0.228694f, 0.863653f, 0.041899f, 0.825711f, 0.315551f, 0.305999f, 0.875391f, 0.524647f, 0.737578f, 0.843897f, 0.20596f, 0.569398f, 0.891875f, 0.514638f, 0.177141f, 0.337022f, 0.238634f, 0.450862f, 0.0958515f, 0.0170952f, 0.291028f, 0.264376f, 0.219396f, 0.280907f, 0.238399f, 0.485541f, 0.186888f, 0.685824f, 0.845492f, 0.158039f, 0.624817f, 0.617941f, 0.0335596f, 0.929544f, 0.283022f, 0.913518f, 0.824676f, 0.748839f, 0.210475f, 0.80756f, 0.550077f, 0.540211f, 0.593669f, 0.817956f, 0.590681f, 0.580638f, 0.863733f, 0.369527f, 0.522274f, 0.970446f, 0.27185f, 0.244164f, 0.848418f, 0.317831f, 0.796962f, 0.39336f, 0.61686f, 0.443003f, 0.886598f, 0.296609f, 0.79706f, 0.505852f, 0.135758f, 0.729181f, 0.568836f, 0.228146f, 0.628907f, 0.557686f, 0.210052f, 0.666452f, 0.369343f, 0.637187f, 0.913858f, 0.0676483f, 0.386314f, 0.74614f, 0.460027f, 0.769665f, 0.607163f, 0.661136f, 0.408317f, 0.082415f, 0.330202f, 0.973103f, 0.906002f, 0.592822f, 0.49552f, 0.464728f, 0.927377f, 0.79601f, 0.297257f, 0.0802152f, 0.875166f, 0.965711f, 0.828689f, 0.935954f, 0.222853f, 0.960175f, 0.885684f, 0.0260691f, 0.651986f, 0.927343f, 0.0823473f, 0.951757f, 0.760611f, 0.54416f, 0.835401f, 0.210591f, 0.0724783f, 0.391011f, 0.0143496f, 0.293461f, 0.194537f, 0.91084f, 0.504482f, 0.841295f, 0.905512f, 0.225208f, 0.449512f, 0.622702f, 0.560123f, 0.890952f, 0.169299f, 0.381673f, 0.84665f, 0.948667f, 0.987612f, 0.729889f, 0.908907f, 0.365192f, 0.338496f, 0.735753f, 0.527905f, 0.468758f, 0.0385625f, 0.996785f, 0.108748f, 0.481158f, 0.00839623f, 0.466563f, 0.865383f, 0.409138f, 0.460578f, 0.360472f, 0.0407806f, 0.364375f, 0.977482f, 0.811772f, 0.0990622f, 0.933134f, 0.163347f, 0.939935f, 0.630137f, 0.256183f, 0.983861f, 0.724552f, 0.303294f, 0.914815f, 0.482606f, 0.912499f, 0.660085f, 0.366056f, 0.746248f, 0.219051f, 0.104823f, 0.102237f, 0.629716f, 0.958589f, 0.513937f, 0.156952f, 0.837467f, 0.279681f, 0.417555f, 0.618307f, 0.933961f, 0.710576f, 0.64998f, 0.591747f, 0.18498f, 0.645953f, 0.30677f, 0.125125f, 0.041388f, 0.801042f, 0.424426f, 0.351224f, 0.513681f, 0.175725f, 0.36503f, 0.312664f, 0.106289f, 0.530154f, 0.864183f, 0.0462141f, 0.146542f, 0.747002f, 0.0271387f, 0.847553f, 0.374374f, 0.141571f, 0.804145f, 0.781911f, 0.908875f, 0.640773f, 0.942928f, 0.932247f, 0.0819903f, 0.702697f, 0.796138f, 0.0998107f, 0.477658f, 0.71308f, 0.230403f, 0.39062f, 0.412141f, 0.560688f, 0.0396883f, 0.300266f, 0.552077f, 0.401183f, 0.697795f, 0.345155f, 0.973869f, 0.99401f, 0.724117f, 0.37781f, 0.475506f, 0.259888f, 0.816185f, 0.340527f, 0.555918f, 0.0614762f, 0.327173f, 0.33215f, 0.879987f, 0.638624f, 0.462407f, 0.911328f, 0.848515f, 0.101813f, 0.337031f, 0.589615f, 0.444778f, 0.939433f, 0.452765f, 0.164072f, 0.313226f, 0.121912f, 0.964394f, 0.545237f, 0.119571f, 0.320902f, 0.32713f, 0.297954f, 0.92257f, 0.581893f, 0.605318f, 0.454684f, 0.981156f, 0.680498f, 0.646043f, 0.848569f, 0.727255f, 0.26652f, 0.192383f, 0.924268f, 0.114181f, 0.210008f, 0.0881303f, 0.493128f, 0.761511f, 0.544935f, 0.0904996f, 0.304229f, 0.668192f, 0.129051f, 0.620008f, 0.710355f, 0.804815f, 0.858795f, 0.328434f, 0.638237f, 0.922537f, 0.37459f, 0.580962f, 0.856638f, 0.108657f, 0.759089f, 0.48636f, 0.233826f, 0.646782f, 0.608141f, 0.078016f, 0.112631f, 0.870167f, 0.79137f, 0.224489f, 0.0101558f, 0.00762725f, 0.0954137f, 0.55212f, 0.795537f, 0.904098f, 0.591631f, 0.480995f, 0.856099f, 0.523218f, 0.832067f, 0.771458f, 0.606072f, 0.104547f, 0.771592f, 0.908995f, 0.693579f, 0.684904f, 0.695537f, 0.821532f, 0.307386f, 0.71525f, 0.813333f, 0.647794f, 0.442722f, 0.0453486f, 0.348228f, 0.40358f, 0.278184f, 0.64213f, 0.0118423f, 0.706857f, 0.523328f, 0.969652f, 0.60106f, 0.640635f, 0.701873f, 0.498151f, 0.472944f, 0.12873f, 0.0483712f, 0.644485f, 0.717798f, 0.396157f, 0.246251f, 0.0118826f, 0.116676f, 0.0344178f, 0.484916f, 0.170281f, 0.0870461f, 0.372743f, 0.0366434f, 0.618328f, 0.228173f, 0.487171f, 0.753924f, 0.711603f, 0.2192f, 0.00744546f, 0.555475f, 0.488775f, 0.0123579f, 0.0985529f, 0.837939f, 0.240533f, 0.926339f, 0.0881075f, 0.593701f, 0.751206f, 0.0428366f, 0.353683f, 0.00202499f, 0.95949f, 0.0779273f, 0.337559f, 0.107304f, 0.52039f, 0.634236f, 0.573349f, 0.210973f, 0.13295f, 0.636381f, 0.312231f, 0.745826f, 0.595705f, 0.494064f, 0.596859f, 0.254767f, 0.934892f, 0.574779f, 0.42702f, 0.885871f, 0.530271f, 0.351459f, 0.917716f, 0.599362f, 0.879352f, 0.742866f, 0.751279f, 0.255945f, 0.953363f, 0.364924f, 0.613204f, 0.395512f, 0.42505f, 0.775299f, 0.739922f, 0.610164f, 0.519186f, 0.54946f, 0.759337f, 0.065786f, 0.851736f, 0.513869f, 0.538094f, 0.298297f, 0.936134f, 0.819454f, 0.589035f, 0.146889f, 0.789904f, 0.265699f, 0.922212f, 0.824522f, 0.280013f, 0.723715f, 0.22222f, 0.215838f, 0.170854f, 0.84406f, 0.720984f, 0.517679f, 0.985518f, 0.828351f, 0.680872f, 0.527865f, 0.360798f, 0.0171757f, 0.335389f, 0.127265f, 0.0372285f, 0.743543f, 0.120925f, 0.992412f, 0.893428f, 0.224306f, 0.427493f, 0.400916f, 0.453714f, 0.844501f, 0.432694f, 0.907014f, 0.387987f, 0.197357f, 0.353356f, 0.163248f, 0.581933f, 0.0802244f, 0.101659f, 0.948038f, 0.298489f, 0.487947f, 0.805005f, 0.292222f, 0.104251f, 0.262406f, 0.756303f, 0.0289556f, 0.539178f, 0.612408f, 0.260213f, 0.87181f, 0.125249f, 0.877138f, 0.56453f, 0.260431f, 0.115406f, 0.844685f, 0.795905f, 0.0845446f, 0.403418f, 0.203438f, 0.501762f, 0.04233f, 0.883746f, 0.888299f, 0.0241302f, 0.0477649f, 0.678425f, 0.973873f, 0.875213f, 0.255399f, 0.554313f, 0.509247f, 0.810753f, 0.662169f, 0.0431242f, 0.620963f, 0.532629f, 0.414566f, 0.202682f, 0.431377f, 0.359614f, 0.741483f, 0.287146f, 0.930683f, 0.427412f, 0.990319f, 0.954914f, 0.109501f, 0.945121f, 0.0656726f, 0.528272f, 0.865429f, 0.813012f, 0.804701f, 0.178151f, 0.987579f, 0.367919f, 0.455077f, 0.816022f, 0.662191f, 0.843173f, 0.677972f, 0.838458f, 0.669437f, 0.130338f, 0.0307111f, 0.0626129f, 0.65216f, 0.89493f, 0.682701f, 0.687862f, 0.930354f, 0.989369f, 0.127442f, 0.7715f, 0.142004f, 0.203572f, 0.797808f, 0.69064f, 0.515438f, 0.824036f, 0.480253f, 0.429861f, 0.193539f, 0.0359497f, 0.991032f, 0.158966f, 0.765634f, 0.489247f, 0.638873f, 0.851344f, 0.144914f, 0.604943f, 0.295531f, 0.736863f, 0.637076f, 0.888163f, 0.955339f, 0.089028f, 0.509549f, 0.18744f, 0.0881126f, 0.240522f, 0.971756f, 0.0332888f, 0.551699f, 0.385016f, 0.0123994f, 0.288318f, 0.0737334f, 0.773612f, 0.149373f, 0.245974f, 0.051311f, 0.628455f, 0.176365f, 0.939546f, 0.16157f, 0.16799f, 0.755808f, 0.553828f, 0.774415f, 0.693948f, 0.484905f, 0.386581f, 0.782892f, 0.300995f, 0.458443f, 0.791017f, 0.400073f, 0.827436f, 0.526291f, 0.0786245f, 0.169529f, 0.645122f, 0.897908f, 0.615324f, 0.0569726f, 0.940118f, 0.689557f, 0.908606f, 0.351026f, 0.336397f, 0.114568f, 0.437256f, 0.721008f, 0.905267f, 0.193115f, 0.767424f, 0.446772f, 0.394282f, 0.302813f, 0.948594f, 0.401708f, 0.00299313f, 0.768493f, 0.755339f, 0.614702f, 0.329795f, 0.336652f, 0.37557f, 0.681038f, 0.22798f, 0.624969f, 0.297243f, 0.592397f, 0.0193065f, 0.647642f, 0.299208f, 0.873181f, 0.465653f, 0.9561f, 0.845995f, 0.592208f, 0.610495f, 0.693635f, 0.83781f, 0.871429f, 0.482782f, 0.019577f, 0.566867f, 0.16798f, 0.265707f, 0.970517f, 0.793594f, 0.0707822f, 0.517747f, 0.0848429f, 0.657993f, 0.353269f, 0.528811f, 0.0576434f, 0.789224f, 0.142582f, 0.136927f, 0.275891f, 0.613849f, 0.631172f, 0.43431f, 0.708835f, 0.24269f, 0.652269f, 0.838496f, 0.810745f, 0.443645f, 0.990308f, 0.716902f, 0.915889f, 0.53024f, 0.0882673f, 0.531856f, 0.513347f, 0.47327f, 0.321808f, 0.230628f, 0.696743f, 0.103835f, 0.105626f, 0.931232f, 0.954198f, 0.668827f, 0.9736f, 0.484766f, 0.650168f, 0.172564f, 0.694854f, 0.311507f, 0.256866f, 0.960496f, 0.805261f, 0.960536f, 0.125208f, 0.941721f, 0.0252524f, 0.811851f, 0.0497205f, 0.665747f, 0.940021f, 0.834874f, 0.484493f, 0.0483284f, 0.930201f, 0.92104f, 0.920169f, 0.489162f, 0.107738f, 0.590964f, 0.857815f, 0.108885f, 0.703273f, 0.98203f, 0.526217f, 0.391751f, 0.424956f, 0.959739f, 0.427961f, 0.55528f, 0.678307f, 0.89085f, 0.564021f, 0.0254301f, 0.267811f, 0.966403f, 0.255753f, 0.434848f, 0.948481f, 0.0797267f, 0.107002f, 0.613125f, 0.308759f, 0.951783f, 0.482604f, 0.212008f, 0.920039f, 0.437873f, 0.914546f, 0.495611f, 0.158746f, 0.679416f, 0.251326f, 0.132333f, 0.0188234f, 0.0826892f, 0.0968132f, 0.00930595f, 0.216777f, 0.107398f, 0.439804f, 0.945324f, 0.200513f, 0.127535f, 0.774592f, 0.456462f, 0.710033f, 0.528864f, 0.691696f, 0.234751f, 0.483404f, 0.848106f, 0.973856f, 0.879214f, 0.277933f, 0.723969f, 0.533849f, 0.724845f, 0.0916249f, 0.457768f, 0.194096f, 0.25009f, 0.193369f, 0.0138378f, 0.0989235f, 0.875745f, 0.223662f, 0.834419f, 0.678243f, 0.426739f, 0.971297f, 0.431455f, 0.217424f, 0.190131f, 0.605275f, 0.464854f, 0.106896f, 0.832803f, 0.302449f, 0.961006f, 0.855226f, 0.521602f, 0.65972f, 0.180617f, 0.741415f, 0.96466f, 0.71623f, 0.187566f, 0.0841722f, 0.0878926f, 0.190294f, 0.727046f, 0.172442f, 0.412167f, 0.545072f, 0.466853f, 0.660928f, 0.486961f, 0.778572f, 0.147888f, 0.954745f, 0.200231f, 0.744128f, 0.294402f, 0.859378f, 0.906787f, 0.519812f, 0.551985f, 0.79456f, 0.418839f, 0.414822f, 0.125102f, 0.490049f, 0.959723f, 0.210006f, 0.589855f, 0.365312f, 0.316106f, 0.0577263f, 0.237431f, 0.0110919f, 0.330336f, 0.058622f, 0.808817f, 0.896923f, 0.356248f, 0.0971567f, 0.334918f, 0.842778f, 0.112614f, 0.669964f, 0.666608f, 0.682843f, 0.737819f, 0.141793f, 0.276603f, 0.0331375f, 0.783688f, 0.434657f, 0.45442f, 0.599295f, 0.387187f, 0.846923f, 0.179479f, 0.121494f, 0.98973f, 0.478073f, 0.827297f, 0.379425f, 0.232607f, 0.118598f, 0.169086f, 0.902703f, 0.095138f, 0.0735214f, 0.683167f, 0.9624f, 0.130515f, 0.488498f, 0.62583f, 0.00683649f, 0.254995f, 0.929025f, 0.599082f, 0.661573f, 0.928941f, 0.831784f, 0.179927f, 0.053024f, 0.412189f, 0.947525f, 0.661833f, 0.902597f, 0.31522f, 0.132675f, 0.154595f, 0.274591f, 0.499663f, 0.993421f, 0.923582f, 0.443526f, 0.925272f, 0.869103f, 0.353508f, 0.389103f, 0.0583933f, 0.426538f, 0.700325f, 0.290663f, 0.778628f, 0.587522f, 0.252839f, 0.230107f, 0.730163f, 0.829537f, 0.207341f, 0.445899f, 0.875232f, 0.318014f, 0.74751f, 0.975023f, 0.014299f, 0.17128f, 0.457809f, 0.14812f, 0.0197848f, 0.118775f, 0.230753f, 0.997848f, 0.45795f, 0.449937f, 0.0894907f, 0.547274f, 0.948523f, 0.630865f, 0.624967f, 0.498096f, 0.501158f, 0.211525f, 0.286669f, 0.0116561f, 0.161249f, 0.399316f, 0.124989f, 0.646028f, 0.770584f, 0.793763f, 0.762284f, 0.445668f, 0.857498f, 0.625118f, 0.666783f, 0.113078f, 0.0596466f, 0.185806f, 0.591636f, 0.635886f, 0.450358f, 0.587621f, 0.5527f, 0.747684f, 0.248808f, 0.667088f, 0.383176f, 0.358038f, 0.790323f, 0.9834f, 0.668535f, 0.869853f, 0.933976f, 0.787124f, 0.811976f, 0.515406f, 0.937923f, 0.879118f, 0.755636f, 0.8476f, 0.0172126f, 0.403315f, 0.655652f, 0.920229f, 0.710497f, 0.614395f, 0.00722982f, 0.430953f, 0.345282f, 0.103916f, 0.355235f, 0.904136f, 0.79404f, 0.0106131f, 0.494148f, 0.991351f, 0.0350799f, 0.630222f, 0.000749717f, 0.979426f, 0.422986f, 0.289786f, 0.330692f, 0.0552139f, 0.0369849f, 0.777986f, 0.946767f, 0.72669f, 0.183823f, 0.823817f, 0.56029f, 0.849984f, 0.668362f, 0.736155f, 0.222733f, 0.178803f, 0.0433033f, 0.0545745f, 0.355848f, 0.829792f, 0.0321856f, 0.900058f, 0.565675f, 0.264814f, 0.565534f, 0.967712f, 0.903356f, 0.598438f, 0.281995f, 0.721174f, 0.912927f, 0.309744f, 0.555706f, 0.939278f, 0.397977f, 0.882638f, 0.406464f, 0.101314f, 0.310882f, 0.69791f, 0.61566f, 0.770006f, 0.534857f, 0.264891f, 0.275198f, 0.285514f, 0.387835f, 0.915057f, 0.307186f, 0.99959f, 0.929944f, 0.518083f, 0.406515f, 0.511193f, 0.111044f, 0.490271f, 0.984333f, 0.322023f, 0.525149f, 0.574954f, 0.377631f, 0.980368f, 0.482464f, 0.376603f, 0.918488f, 0.47039f, 0.198118f, 0.966154f, 0.975313f, 0.0497318f, 0.574031f, 0.101026f, 0.593685f, 0.285728f, 0.555814f, 0.0161684f, 0.465769f, 0.392347f, 0.268933f, 0.219111f, 0.0614982f, 0.681534f, 0.453335f, 0.219628f, 0.00521107f, 0.531894f, 0.0103605f, 0.0160745f, 0.706182f, 0.105306f, 0.639396f, 0.913112f, 0.169314f, 0.46118f, 0.530876f, 0.530852f, 0.144749f, 0.061771f, 0.345383f, 0.793049f, 0.930435f, 0.0387522f, 0.870827f, 0.99605f, 0.86432f, 0.186146f, 0.516547f, 0.259903f, 0.0542989f, 0.354779f, 0.633639f, 0.369478f, 0.883022f, 0.831576f, 0.503522f, 0.259566f, 0.10825f, 0.720064f, 0.0503783f, 0.355704f, 0.654066f, 0.135843f, 0.904345f, 0.732615f, 0.418578f, 0.707522f, 0.523412f, 0.427052f, 0.266195f, 0.0485478f, 0.151569f, 0.234289f, 0.86771f, 0.691468f, 0.976096f, 0.322316f, 0.474722f, 0.930385f, 0.247036f, 0.0111069f, 0.695143f, 0.501857f, 0.3928f, 0.494987f, 0.725543f, 0.603904f, 0.349952f, 0.370164f, 0.214488f, 0.871452f, 0.520086f, 0.801125f, 0.222537f, 0.75987f, 0.839324f, 0.776784f, 0.725548f, 0.745395f, 0.0295877f, 0.150169f, 0.111521f, 0.291749f, 0.86594f, 0.667406f, 0.624777f, 0.519074f, 0.0645655f, 0.573982f, 0.343976f, 0.238698f, 0.329343f, 0.499002f, 0.691519f, 0.679615f, 0.0686207f, 0.444707f, 0.650487f, 0.862795f, 0.501802f, 0.165066f, 0.791704f, 0.15477f, 0.794657f, 0.705931f, 0.0741224f, 0.37554f, 0.58899f, 0.510674f, 0.675896f, 0.242068f, 0.26872f, 0.906989f, 0.868277f, 0.418305f, 0.0849626f, 0.843582f, 0.185997f, 0.0494805f, 0.602731f, 0.7365f, 0.923882f, 0.750356f, 0.40581f, 0.112037f, 0.651375f, 0.612261f, 0.717376f, 0.0812118f, 0.275665f, 0.476249f, 0.473285f, 0.739432f, 0.143818f, 0.183861f, 0.532398f, 0.41748f, 0.921911f, 0.788728f, 0.779641f, 0.807648f, 0.246671f, 0.0510445f, 0.0254668f, 0.156033f, 0.932309f, 0.763114f, 0.254263f, 0.457501f, 0.461505f, 0.440129f, 0.344309f, 0.995591f, 0.760076f, 0.730269f, 0.986784f, 0.73832f, 0.87352f, 0.537939f, 0.0494327f, 0.0392552f, 0.0630789f, 0.454545f, 0.722735f, 0.484011f, 0.901769f, 0.00145949f, 0.545437f, 0.466967f, 0.412684f, 0.327767f, 0.433916f, 0.368346f, 0.782479f, 0.392597f, 0.742118f, 0.611192f, 0.622068f, 0.186453f, 0.279677f, 0.221972f, 0.379552f, 0.888944f, 0.304705f, 0.497728f, 0.318121f, 0.92822f, 0.693819f, 0.434451f, 0.0217611f, 0.800265f, 0.892447f, 0.522391f, 0.152433f, 0.180016f, 0.474903f, 0.0238855f, 0.588777f, 0.583758f, 0.317013f, 0.499803f, 0.340935f, 0.545624f, 0.828265f, 0.901466f, 0.717656f, 0.929255f, 0.08775f, 0.234531f, 0.44157f, 0.739418f, 0.686425f, 0.589344f, 0.1422f, 0.474432f, 0.632737f, 0.715697f, 0.0770064f, 0.784035f, 0.141011f, 0.933972f, 0.856698f, 0.839336f, 0.98125f, 0.513388f, 0.668878f, 0.133803f, 0.890941f, 0.628038f, 0.603997f, 0.704268f, 0.036449f, 0.310906f, 0.352725f, 0.428873f, 0.43815f, 0.562343f, 0.564143f, 0.635723f, 0.336465f, 0.800038f, 0.475138f, 0.506607f, 0.398739f, 0.276327f, 0.664221f, 0.029289f, 0.717647f, 0.580891f, 0.396879f, 0.477323f, 0.285387f, 0.630561f, 0.922368f, 0.459898f, 0.792469f, 0.552005f, 0.298405f, 0.0882608f, 0.741296f, 0.351056f, 0.632286f, 0.0179663f, 0.427562f, 0.74226f, 0.00450135f, 0.400636f, 0.25329f, 0.663112f, 0.20838f, 0.935161f, 0.228668f, 0.989608f, 0.182795f, 0.763212f, 0.931301f, 0.0463401f, 0.845698f, 0.426351f, 0.223439f, 0.397415f, 0.902058f, 0.408063f, 0.819568f, 0.695039f, 0.640855f, 0.482843f, 0.107455f, 0.677767f, 0.196258f, 0.231481f, 0.812896f, 0.206368f, 0.126421f, 0.524307f, 0.587915f, 0.0986925f, 0.59961f, 0.606076f, 0.880473f, 0.0577288f, 0.13447f, 0.947586f, 0.0571611f, 0.213013f, 0.489456f, 0.435708f, 0.969083f, 0.942995f, 0.681764f, 0.896178f, 0.300682f, 0.832375f, 0.5195f, 0.333091f, 0.0556431f, 0.469664f, 0.7462f, 0.0570697f, 0.204859f, 0.0263461f, 0.494899f, 0.244498f, 0.171041f, 0.693177f, 0.122295f, 0.354362f, 0.715442f, 0.73101f, 0.115082f, 0.102726f, 0.0862697f, 0.436487f, 0.562216f, 0.453726f, 0.569051f, 0.646143f, 0.106447f, 0.940343f, 0.491902f, 0.180173f, 0.471478f, 0.246272f, 0.75232f, 0.6348f, 0.0633012f, 0.493141f, 0.709767f, 0.224286f, 0.647168f, 0.682731f, 0.212962f, 0.893845f, 0.688404f, 0.476236f, 0.260774f, 0.200194f, 0.318474f, 0.197934f, 0.573814f, 0.92719f, 0.714944f, 0.677063f, 0.708418f, 0.48033f, 0.504772f, 0.682564f, 0.92862f, 0.69065f, 0.101651f, 0.0757732f, 0.00122868f, 0.871525f, 0.630305f, 0.0794149f, 0.633552f, 0.015418f, 0.737001f, 0.0723624f, 0.839766f, 0.657991f, 0.0813443f, 0.407034f, 0.0593015f, 0.0496819f, 0.460121f, 0.404443f, 0.355606f, 0.424626f, 0.959821f, 0.0930389f, 0.41632f, 0.885564f, 0.974195f, 0.072074f, 0.97165f, 0.0287434f, 0.580037f, 0.951944f, 0.886314f, 0.557303f, 0.137478f, 0.91437f, 0.293779f, 0.313597f, 0.762046f, 0.34298f, 0.947834f, 0.05537f, 0.348866f, 0.0220232f, 0.0761242f, 0.483674f, 0.543624f, 0.660201f, 0.0495366f, 0.302063f, 0.685885f, 0.560935f, 0.816931f, 0.215362f, 0.735803f, 0.484398f, 0.880909f, 0.298182f, 0.128468f, 0.354139f, 0.0527205f, 0.9533f, 0.465524f, 0.395123f, 0.707392f, 0.863054f, 0.769466f, 0.0349387f, 0.734949f, 0.349819f, 0.0670821f, 0.553813f, 0.415804f, 0.118037f, 0.451046f, 0.464906f, 0.374042f, 0.489618f, 0.313256f, 0.502164f, 0.748751f, 0.0353211f, 0.603173f, 0.780302f, 0.784802f, 0.103803f, 0.664729f, 0.514665f, 0.733879f, 0.485716f, 0.247943f, 0.220476f, 0.68938f, 0.622017f, 0.532858f, 0.552822f, 0.483941f, 0.0735217f, 0.395001f, 0.0156244f, 0.874974f, 0.455845f, 0.40001f, 0.525399f, 0.472578f, 0.829458f, 0.339706f, 0.0085181f, 0.569525f, 0.941497f, 0.443829f, 0.801316f, 0.184509f, 0.487628f, 0.891121f, 0.00554423f, 0.601123f, 0.993802f, 0.328686f, 0.417133f, 0.75797f, 0.41597f, 0.682396f, 0.654455f, 0.348509f, 0.0974186f, 0.508677f, 0.434163f, 0.848895f, 0.700171f, 0.430938f, 0.495374f, 0.870377f, 0.136626f, 0.0252389f, 0.385227f, 0.0386377f, 0.918474f, 0.975657f, 0.0885951f, 0.342444f, 0.635184f, 0.894417f, 0.788663f, 0.0108794f, 0.899092f, 0.42093f, 0.854927f, 0.216658f, 0.66055f, 0.928396f, 0.0311457f, 0.95406f, 0.78459f, 0.52698f, 0.954647f, 0.0553724f, 0.112884f, 0.199379f, 0.575085f, 0.952266f, 0.252752f, 0.531791f, 0.127426f, 0.829004f, 0.773397f, 0.524273f, 0.709102f, 0.536364f, 0.647877f, 0.833191f, 0.17091f, 0.273609f, 0.623056f, 0.573185f, 0.21786f, 0.378892f, 0.939695f, 0.037874f, 0.830446f, 0.571572f, 0.65958f, 0.607392f, 0.632481f, 0.121963f, 0.517775f, 0.620987f, 0.345017f, 0.769316f, 0.257625f, 0.0339667f, 0.580798f, 0.0237706f, 0.127731f, 0.555469f, 0.0487686f, 0.207704f, 0.339207f, 0.895657f, 0.700992f, 0.151549f, 0.134486f, 0.928575f, 0.0443563f, 0.709693f, 0.981987f, 0.450482f, 0.488103f, 0.913204f, 0.369439f, 0.484755f, 0.612307f, 0.309857f, 0.473988f, 0.835232f, 0.100386f, 0.551637f, 0.577682f, 0.397991f, 0.841518f, 0.532709f, 0.141247f, 0.409456f, 0.786516f, 0.826065f, 0.64496f, 0.536202f, 0.344456f, 0.277559f, 0.830111f, 0.390734f, 0.450151f, 0.0218602f, 0.990687f, 0.189214f, 0.336835f, 0.578587f, 0.739667f, 0.46232f, 0.986131f, 0.312953f, 0.137354f, 0.831438f, 0.359346f, 0.147321f, 0.372741f, 0.620005f, 0.81637f, 0.223003f, 0.947173f, 0.27233f, 0.91975f, 0.518553f, 0.38585f, 0.563678f, 0.846023f, 0.529032f, 0.738313f, 0.815021f, 0.484458f, 0.576681f, 0.0926511f, 0.0255715f, 0.0670623f, 0.780394f, 0.0825894f, 0.631561f, 0.338682f, 0.124318f, 0.871413f, 0.321059f, 0.165747f, 0.97701f, 0.0734802f, 0.189865f, 0.104041f, 0.893658f, 0.457512f, 0.436778f, 0.88349f, 0.821133f, 0.372976f, 0.19636f, 0.650987f, 0.508544f, 0.146217f, 0.314452f, 0.302964f, 0.869022f, 0.69999f, 0.384766f, 0.656917f, 0.0622906f, 0.783322f, 0.549016f, 0.48294f, 0.853204f, 0.984512f, 0.0309319f, 0.845943f, 0.438341f, 0.737687f, 0.282315f, 0.431338f, 0.601569f, 0.889015f, 0.289548f, 0.43581f, 0.100949f, 0.000932943f, 0.309186f, 0.429961f, 0.474935f, 0.9183f, 0.258138f, 0.84934f, 0.880087f, 0.552398f, 0.141286f, 0.283584f, 0.931196f, 0.37491f, 0.200074f, 0.0740094f, 0.848848f, 0.704655f, 0.414608f, 0.152468f, 0.907735f, 0.772761f, 0.0360872f, 0.180056f, 0.197521f, 0.409589f, 0.319259f, 0.66497f, 0.116785f, 0.717584f, 0.535645f, 0.159959f, 0.692151f, 0.376607f, 0.314093f, 0.334771f, 0.957417f, 0.964038f, 0.922174f, 0.747482f, 0.255195f, 0.973346f, 0.354712f, 0.815583f, 0.254272f, 0.252127f, 0.592754f, 0.312424f, 0.204188f, 0.206599f, 0.191229f, 0.771721f, 0.16871f, 0.514607f, 0.944417f, 0.11727f, 0.996607f, 0.910027f, 0.855123f, 0.422208f, 0.0914395f, 0.753779f, 0.39944f, 0.822808f, 0.864212f, 0.541907f, 0.0831886f, 0.42194f, 0.32566f, 0.0259759f, 0.843884f, 0.328822f, 0.290296f, 0.842189f, 0.00545835f, 0.377651f, 0.754198f, 0.432982f, 0.211467f, 0.507297f, 0.322964f, 0.944953f, 0.67269f, 0.908696f, 0.823821f, 0.754947f, 0.954246f, 0.117408f, 0.817159f, 0.0698135f, 0.895377f, 0.818969f, 0.470528f, 0.571387f, 0.947834f, 0.595896f, 0.487859f, 0.0287326f, 0.720533f, 0.877903f, 0.702942f, 0.841893f, 0.79942f, 0.11582f, 0.182782f, 0.762298f, 0.539455f, 0.647334f, 0.553466f, 0.614602f, 0.29902f, 0.200425f, 0.774054f, 0.680762f, 0.0497778f, 0.227848f, 0.589457f, 0.764415f, 0.738369f, 0.823087f, 0.0782207f, 0.0477335f, 0.664587f, 0.962675f, 0.666643f, 0.392024f, 0.985393f, 0.43173f, 0.951072f, 0.317355f, 0.636815f, 0.982784f, 0.199483f, 0.100302f, 0.0983773f, 0.743348f, 0.447584f, 0.326214f, 0.188603f, 0.234952f, 0.0836973f, 0.193172f, 0.339608f, 0.0171846f, 0.140456f, 0.408248f, 0.731662f, 0.550608f, 0.761596f, 0.620372f, 0.762473f, 0.342705f, 0.0431834f, 0.879889f, 0.949776f, 0.0174416f, 0.0430366f, 0.689595f, 0.862824f, 0.897548f, 0.571938f, 0.221444f, 0.0842679f, 0.929114f, 0.348507f, 0.0102636f, 0.221872f, 0.998716f, 0.354849f, 0.0494321f, 0.615513f, 0.606909f, 0.701758f, 0.0548691f, 0.917509f, 0.813837f, 0.891332f, 0.454314f, 0.512912f, 0.115186f, 0.321759f, 0.0608864f, 0.587886f, 0.0310354f, 0.131396f, 0.810433f, 0.325341f, 0.795835f, 0.559347f, 0.532573f, 0.649707f, 0.667578f, 0.474935f, 0.492523f, 0.474219f, 0.719782f, 0.719336f, 0.166523f, 0.0935351f, 0.0290707f, 0.627281f, 0.120119f, 0.337353f, 0.833613f, 0.529305f, 0.160354f, 0.192708f, 0.517011f, 0.393018f, 0.266867f, 0.67993f, 0.2966f, 0.0675627f, 0.049884f, 0.802648f, 0.721408f, 0.300104f, 0.224207f, 0.355234f, 0.369416f, 0.666041f, 0.778924f, 0.678344f, 0.244476f, 0.51117f, 0.769703f, 0.194689f, 0.750743f, 0.496835f, 0.947952f, 0.792589f, 0.571899f, 0.934115f, 0.239655f, 0.992504f, 0.0846078f, 0.618461f, 0.649232f, 0.295413f, 0.94919f, 0.274345f, 0.509407f, 0.271909f, 0.000930362f, 0.158036f, 0.900723f, 0.212063f, 0.96839f, 0.374585f, 0.469782f, 0.531897f, 0.690381f, 0.468584f, 0.0359002f, 0.261997f, 0.899164f, 0.13039f, 0.6485f, 0.378338f, 0.221372f, 0.575356f, 0.600011f, 0.333292f, 0.472703f, 0.744745f, 0.292519f, 0.902518f, 0.736262f, 0.39382f, 0.193482f, 0.218638f, 0.37395f, 0.455858f, 0.112487f, 0.750094f, 0.714776f, 0.528615f, 0.715634f, 0.307591f, 0.507527f, 0.270608f, 0.783474f, 0.503542f, 0.188904f, 0.256813f, 0.367277f, 0.0523162f, 0.94068f, 0.921846f, 0.777667f, 0.411176f, 0.0133664f, 0.206929f, 0.893635f, 0.624345f, 0.776478f, 0.649293f, 0.505523f, 0.296455f, 0.183283f, 0.13781f, 0.639469f, 0.903623f, 0.731678f, 0.320149f, 0.627007f, 0.936021f, 0.864199f, 0.517562f, 0.286761f, 0.17914f, 0.0648794f, 0.0978378f, 0.500528f, 0.712065f, 0.171874f, 0.561778f, 0.630316f, 0.337516f, 0.998464f, 0.808983f, 0.350591f, 0.628368f, 0.912493f, 0.871607f, 0.849695f, 0.422593f, 0.658803f, 0.83347f, 0.447237f, 0.798792f, 0.294156f, 0.105724f, 0.0741703f, 0.944466f, 0.746695f, 0.57705f, 0.454319f, 0.537558f, 0.978656f, 0.275082f, 0.865394f, 0.42905f, 0.321618f, 0.619303f, 0.719888f, 0.20614f, 0.590662f, 0.335587f, 0.571819f, 0.14077f, 0.512955f, 0.688468f, 0.753296f, 0.430348f, 0.228874f, 0.880236f, 0.563226f, 0.400975f, 0.135245f, 0.608373f, 0.542516f, 0.876987f, 0.470293f, 0.307949f, 0.598335f, 0.24133f, 0.726464f, 0.953135f, 0.100928f, 0.434708f, 0.186309f, 0.0502947f, 0.38873f, 0.837416f, 0.947704f, 0.691398f, 0.0461486f, 0.995426f, 0.659582f, 0.455137f, 0.719528f, 0.433284f, 0.447412f, 0.815005f, 0.801782f, 0.20814f, 0.363933f, 0.807072f, 0.366598f, 0.881259f, 0.36765f, 0.170048f, 0.700181f, 0.190792f, 0.422015f, 0.371692f, 0.804004f, 0.877961f, 0.700853f, 0.824119f, 0.972574f, 0.759579f, 0.421504f, 0.515063f, 0.218148f, 0.0687566f, 0.304502f, 0.897699f, 0.928322f, 0.797918f, 0.863318f, 0.360217f, 0.762498f, 0.992061f, 0.472135f, 0.166534f, 0.581114f, 0.66621f, 0.195785f, 0.0437133f, 0.24186f, 0.567203f, 0.984934f, 0.258978f, 0.957256f, 0.844922f, 0.713605f, 0.0541155f, 0.887392f, 0.0579775f, 0.341528f, 0.00656558f, 0.412303f, 0.0148872f, 0.462868f, 0.337523f, 0.939532f, 0.507882f, 0.187285f, 0.139041f, 0.729862f, 0.350465f, 0.267288f, 0.831128f, 0.341595f, 0.234875f, 0.526828f, 0.0478633f, 0.297971f, 0.444694f, 0.0888507f, 0.788782f, 0.0197432f, 0.879393f, 0.0294991f, 0.841766f, 0.489023f, 0.503464f, 0.47285f, 0.545518f, 0.934726f, 0.0409531f, 0.421955f, 0.501159f, 0.273089f, 0.581311f, 0.74753f, 0.302673f, 0.294014f, 0.301206f, 0.22304f, 0.735983f, 0.567154f, 0.774057f, 0.0655665f, 0.766488f, 0.798884f, 0.90914f, 0.403654f, 0.440633f, 0.793028f, 0.992759f, 0.624937f, 0.564271f, 0.578377f, 0.53693f, 0.28699f, 0.710963f, 0.0154664f, 0.361751f, 0.447944f, 0.376651f, 0.976943f, 0.197851f, 0.547489f, 0.227106f, 0.456446f, 0.742688f, 0.989491f, 0.368837f, 0.0729938f, 0.145014f, 0.451494f, 0.862849f, 0.483792f, 0.145617f, 0.259996f, 0.290529f, 0.0574864f, 0.315212f, 0.256489f, 0.250316f, 0.41138f, 0.882464f, 0.746337f, 0.812296f, 0.463426f, 0.31247f, 0.913875f, 0.204899f, 0.197659f, 0.624119f, 0.145738f, 0.828249f, 0.173153f, 0.821114f, 0.224993f, 0.880486f, 0.393319f, 0.5228f, 0.324117f, 0.970565f, 0.822643f, 0.711942f, 0.265506f, 0.962097f, 0.0305713f, 0.93128f, 0.715791f, 0.305274f, 0.980283f, 0.385826f, 0.250016f, 0.794107f, 0.214281f, 0.7842f, 0.159098f, 0.168762f, 0.557931f, 0.259428f, 0.105516f, 0.0894675f, 0.069389f, 0.453177f, 0.831908f, 0.126979f, 0.827831f, 0.302858f, 0.123757f, 0.87119f, 0.925624f, 0.530038f, 0.571532f, 0.39731f, 0.345498f, 0.689683f, 0.182037f, 0.91741f, 0.545841f, 0.312773f, 0.309144f, 0.0123853f, 0.980819f, 0.350091f, 0.0961307f, 0.0646169f, 0.0719253f, 0.947185f, 0.887502f, 0.506696f, 0.372855f, 0.245585f, 0.219438f, 0.444893f, 0.271645f, 0.654493f, 0.915768f, 0.386677f, 0.311144f, 0.735514f, 0.275864f, 0.900572f, 0.574876f, 0.377688f, 0.92217f, 0.704141f, 0.501957f, 0.144012f, 0.490947f, 0.283826f, 0.778355f, 0.328462f, 0.478082f, 0.486394f, 0.932712f, 0.536281f, 0.644762f, 0.157485f, 0.700024f, 0.816247f, 0.883428f, 0.477485f, 0.0263772f, 0.416996f, 0.145468f, 0.0296548f, 0.289283f, 0.283224f, 0.128746f, 0.966503f, 0.526181f, 0.764314f, 0.606014f, 0.56261f, 0.316953f, 0.402768f, 0.459073f, 0.973306f, 0.294563f, 0.837289f, 0.466905f, 0.0921972f, 0.083203f, 0.323473f, 0.190788f, 0.892925f, 0.179937f, 0.813307f, 0.922673f, 0.503515f, 0.0126516f, 0.413086f, 0.278325f, 0.47703f, 0.939909f, 0.492061f, 0.395506f, 0.790437f, 0.989499f, 0.801666f, 0.741973f, 0.256637f, 0.16019f, 0.368278f, 0.955072f, 0.263978f, 0.588447f, 0.787951f, 0.0155537f, 0.415966f, 0.672965f, 0.96584f, 0.870968f, 0.857937f, 0.137439f, 0.35347f, 0.378724f, 0.964373f, 0.768734f, 0.440575f, 0.0405468f, 0.767168f, 0.551087f, 0.638026f, 0.632401f, 0.130231f, 0.722439f, 0.201121f, 0.990679f, 0.241409f, 0.405717f, 0.0887516f, 0.433311f, 0.325229f, 0.338765f, 0.313306f, 0.819185f, 0.281072f, 0.569576f, 0.539048f, 0.475869f, 0.309965f, 0.294609f, 0.986804f, 0.356367f, 0.531965f, 0.323966f, 0.982108f, 0.922606f, 0.78987f, 0.184678f, 0.919313f, 0.66172f, 0.78001f, 0.538111f, 0.504061f, 0.551569f, 0.197561f, 0.172693f, 0.0875003f, 0.504177f, 0.536836f, 0.494697f, 0.273618f, 0.909722f, 0.328595f, 0.520832f, 0.490617f, 0.12315f, 0.68816f, 0.315788f, 0.722511f, 0.162925f, 0.490397f, 0.457867f, 0.0508113f, 0.988206f, 0.288068f, 0.0844054f, 0.229343f, 0.288736f, 0.274956f, 0.162419f, 0.567865f, 0.0658495f, 0.922953f, 0.888595f, 0.891891f, 0.422081f, 0.894278f, 0.636198f, 0.669447f, 0.507817f, 0.695411f, 0.419091f, 0.50959f, 0.858347f, 0.365119f, 0.351961f, 0.927468f, 0.898844f, 0.702686f, 0.613672f, 0.388132f, 0.662109f, 0.776763f, 0.608112f, 0.255512f, 0.449684f, 0.901849f, 0.734983f, 0.184068f, 0.606383f, 0.807874f, 0.114904f, 0.369849f, 0.631545f, 0.0902525f, 0.35459f, 0.629446f, 0.755188f, 0.00710723f, 0.283259f, 0.213081f, 0.841356f, 0.574098f, 0.479044f, 0.827427f, 0.127553f, 0.418677f, 0.584996f, 0.181074f, 0.173117f, 0.534258f, 0.452522f, 0.323254f, 0.199639f, 0.19934f, 0.477959f, 0.516973f, 0.300863f, 0.33596f, 0.614113f, 0.0463051f, 0.806675f, 0.716888f, 0.560459f, 0.78294f, 0.588177f, 0.108478f, 0.871551f, 0.122526f, 0.879612f, 0.323951f, 0.964344f, 0.272828f, 0.599901f, 0.780299f, 0.878432f, 0.827981f, 0.862602f, 0.238203f, 0.995725f, 0.807474f, 0.859691f, 0.745089f, 0.427182f, 0.584508f, 0.815208f, 0.0209309f, 0.977772f, 0.11708f, 0.51597f, 0.198436f, 0.600696f, 0.178902f, 0.528177f, 0.113928f, 0.959053f, 0.377403f, 0.206195f, 0.678897f, 0.298803f, 0.602845f, 0.779048f, 0.61736f, 0.0538978f, 0.922456f, 0.251961f, 0.344247f, 0.0469277f, 0.0997539f, 0.134385f, 0.433126f, 0.917378f, 0.501004f, 0.432078f, 0.609415f, 0.399673f, 0.840714f, 0.648393f, 0.975679f, 0.488398f, 0.707056f, 0.917814f, 0.241519f, 0.151391f, 0.217867f, 0.455515f, 0.736847f, 0.276058f, 0.429626f, 0.458444f, 0.809978f, 0.3343f, 0.212938f, 0.391852f, 0.982906f, 0.188652f, 0.94218f, 0.573306f, 0.858379f, 0.646604f, 0.996944f, 0.8909f, 0.284794f, 0.27596f, 0.900314f, 0.264372f, 0.403445f, 0.460954f, 0.367555f, 0.513943f, 0.756927f, 0.901388f, 0.744883f, 0.419572f, 0.0291924f, 0.388149f, 0.311144f, 0.758906f, 0.494793f, 0.800513f, 0.823058f, 0.21676f, 0.315118f, 0.132913f, 0.615567f, 0.366563f, 0.253824f, 0.908813f, 0.37287f, 0.562833f, 0.603878f, 0.182627f, 0.181748f, 0.626329f, 0.72973f, 0.755745f, 0.934465f, 0.771756f, 0.74092f, 0.764703f, 0.847717f, 0.380055f, 0.956026f, 0.554559f, 0.153008f, 0.817651f, 0.351589f, 0.858646f, 0.356547f, 0.591945f, 0.481525f, 0.566407f, 0.075726f, 0.804183f, 0.738637f, 0.0518405f, 0.615393f, 0.18159f, 0.705874f, 0.270865f, 0.214856f, 0.715119f, 0.421676f, 0.312135f, 0.0893758f, 0.830401f, 0.0118446f, 0.790957f, 0.000994886f, 0.772949f, 0.830426f, 0.872599f, 0.262893f, 0.611248f, 0.327013f, 0.209951f, 0.0868283f, 0.657425f, 0.586466f, 0.42304f, 0.311497f, 0.00599936f, 0.0047943f, 0.314901f, 0.459674f, 0.832237f, 0.593066f, 0.533902f, 0.986659f, 0.532806f, 0.334881f, 0.331746f, 0.682138f, 0.403476f, 0.157666f, 0.0933196f, 0.687572f, 0.864067f, 0.623627f, 0.436928f, 0.634422f, 0.315886f, 0.776535f, 0.28992f, 0.486322f, 0.633281f, 0.680106f, 0.413941f, 0.74878f, 0.0557304f, 0.746276f, 0.253372f, 0.677609f, 0.03761f, 0.841179f, 0.462366f, 0.140944f, 0.666033f, 0.444185f, 0.896211f, 0.745836f, 0.837855f, 0.781673f, 0.992182f, 0.759924f, 0.149578f, 0.801817f, 0.23307f, 0.983902f, 0.279981f, 0.436416f, 0.408519f, 0.977166f, 0.486979f, 0.616462f, 0.717189f, 0.78756f, 0.979531f, 0.211748f, 0.281095f, 0.808292f, 0.452116f, 0.505222f, 0.211008f, 0.0880939f, 0.304145f, 0.157218f, 0.823591f, 0.881477f, 0.63282f, 0.43668f, 0.0421872f, 0.92511f, 0.208938f, 0.595937f, 0.319492f, 0.386474f, 0.912154f, 0.86807f, 0.973331f, 0.576398f, 0.423191f, 0.191564f, 0.271486f, 0.166704f, 0.59387f, 0.846881f, 0.603252f, 0.726757f, 0.283076f, 0.252814f, 0.0950604f, 0.533592f, 0.609895f, 0.911565f, 0.402955f, 0.519665f, 0.719536f, 0.779983f, 0.58922f, 0.50628f, 0.0937121f, 0.535797f, 0.385731f, 0.117425f, 0.265472f, 0.237342f, 0.166879f, 0.377402f, 0.387306f, 0.370544f, 0.680795f, 0.182085f, 0.472747f, 0.681323f, 0.799128f, 0.401971f, 0.824955f, 0.541769f, 0.0634075f, 0.357216f, 0.564308f, 0.106465f, 0.112271f, 0.227668f, 0.363854f, 0.323736f, 0.175635f, 0.855609f, 0.122859f, 0.634043f, 0.00744051f, 0.443882f, 0.918507f, 0.910142f, 0.482702f, 0.0487369f, 0.22982f, 0.119722f, 0.630875f, 0.775613f, 0.127926f, 0.825253f, 0.20214f, 0.366558f, 0.231207f, 0.489712f, 0.782439f, 0.783108f, 0.635982f, 0.684556f, 0.444892f, 0.740059f, 0.74257f, 0.556034f, 0.020627f, 0.169975f, 0.318743f, 0.987251f, 0.848496f, 0.961086f, 0.313144f, 0.469643f, 0.280877f, 0.444973f, 0.565544f, 0.674149f, 0.966f, 0.840922f, 0.624866f, 0.898954f, 0.360874f, 0.333776f, 0.416233f, 0.964037f, 0.995817f, 0.8895f, 0.101838f, 0.213644f, 0.672951f, 0.367858f, 0.473691f, 0.849456f, 0.0204076f, 0.9011f, 0.0515015f, 0.311752f, 0.42627f, 0.612015f, 0.03455f, 0.36429f, 0.809447f, 0.0841483f, 0.902302f, 0.1439f, 0.358429f, 0.79011f, 0.884318f, 0.176961f, 0.267724f, 0.227391f, 0.41377f, 0.630351f, 0.503522f, 0.886437f, 0.611218f, 0.315786f, 0.656199f, 0.718377f, 0.569848f, 0.202811f, 0.937216f, 0.353074f, 0.51868f, 0.190367f, 0.697473f, 0.0124044f, 0.554073f, 0.251852f, 0.839427f, 0.0618167f, 0.656978f, 0.105702f, 0.128592f, 0.660755f, 0.49681f, 0.438251f, 0.22643f, 0.773987f, 0.892038f, 0.268779f, 0.827232f, 0.80203f, 0.558867f, 0.801823f, 0.779758f, 0.24148f, 0.979899f, 0.044897f, 0.387513f, 0.148037f, 0.971127f, 0.25907f, 0.701731f, 0.702838f, 0.841079f, 0.471461f, 0.00816618f, 0.763383f, 0.845966f, 0.390235f, 0.479232f, 0.272554f, 0.428787f, 0.630907f, 0.144826f, 0.795675f, 0.885258f, 0.877329f, 0.260514f, 0.88605f, 0.251618f, 0.0982398f, 0.240143f, 0.336942f, 0.497409f, 0.328716f, 0.559073f, 0.710497f, 0.407214f, 0.140225f, 0.568899f, 0.305758f, 0.985192f, 0.353355f, 0.451623f, 0.806361f, 0.552935f, 0.137101f, 0.39632f, 0.807873f, 0.730659f, 0.83679f, 0.474723f, 0.902925f, 0.181643f, 0.519008f, 0.495691f, 0.0574197f, 0.399138f, 0.376197f, 0.728309f, 0.563635f, 0.429087f, 0.900816f, 0.738019f, 0.664776f, 0.472119f, 0.866737f, 0.672326f, 0.820026f, 0.55473f, 0.543396f, 0.430427f, 0.0390094f, 0.14597f, 0.763778f, 0.925085f, 0.182753f, 0.927547f, 0.38596f, 0.0845172f, 0.686091f, 0.470664f, 0.633901f, 0.379529f, 0.808742f, 0.677396f, 0.660347f, 0.824392f, 0.138273f, 0.913349f, 0.282948f, 0.182555f, 0.195728f, 0.0569882f, 0.0180547f, 0.285175f, 0.141473f, 0.891612f, 0.916347f, 0.170171f, 0.0141192f, 0.0746619f, 0.848639f, 0.88324f, 0.224257f, 0.398841f, 0.446264f, 0.367285f, 0.394011f, 0.593844f, 0.421785f, 0.0978993f, 0.748422f, 0.546064f, 0.0749291f, 0.679814f, 0.773036f, 0.190595f, 0.9074f, 0.132129f, 0.589965f, 0.310527f, 0.312563f, 0.496822f, 0.0182632f, 0.421471f, 0.246528f, 0.111739f, 0.146622f, 0.0458184f, 0.499015f, 0.370329f, 0.38683f, 0.239333f, 0.81416f, 0.292132f, 0.932061f, 0.155805f, 0.0530965f, 0.412611f, 0.177749f, 0.0743324f, 0.679697f, 0.990631f, 0.772683f, 0.658341f, 0.633155f, 0.595962f, 0.101049f, 0.0893765f, 0.652252f, 0.828871f, 0.292416f, 0.812544f, 0.338977f, 0.574637f, 0.662387f, 0.150282f, 0.445916f, 0.982466f, 0.403631f, 0.237927f, 0.605144f, 0.178157f, 0.139473f, 0.409146f, 0.032356f, 0.623801f, 0.892386f, 0.686936f, 0.208553f, 0.0746324f, 0.429076f, 0.804958f, 0.551032f, 0.0414786f, 0.268112f, 0.282896f, 0.191952f, 0.631162f, 0.338374f, 0.294875f, 0.113726f, 0.861872f, 0.441595f, 0.214191f, 0.66156f, 0.0493908f, 0.373903f, 0.351066f, 0.754358f, 0.203796f, 0.232518f, 0.936212f, 0.894607f, 0.733782f, 0.499273f, 0.352905f, 0.785701f, 0.269482f, 0.964939f, 0.0445552f, 0.191663f, 0.380432f, 0.263502f, 0.460111f, 0.250836f, 0.164842f, 0.517637f, 0.740929f, 0.566001f, 0.228714f, 0.678602f, 0.0194022f, 0.737847f, 0.959707f, 0.463411f, 0.945044f, 0.68689f, 0.833525f, 0.149539f, 0.47417f, 0.681319f, 0.351924f, 0.58604f, 0.693724f, 0.549001f, 0.267608f, 0.17901f, 0.308286f, 0.317175f, 0.303205f, 0.276014f, 0.180304f, 0.111004f, 0.313073f, 0.119443f, 0.966616f, 0.503921f, 0.516759f, 0.928561f, 0.0495854f, 0.797306f, 0.00506445f, 0.953303f, 0.680102f, 0.609641f, 0.4532f, 0.604242f, 0.592065f, 0.555589f, 0.885786f, 0.379935f, 0.840548f, 0.747545f, 0.713203f, 0.0289334f, 0.825641f, 0.00517996f, 0.31366f, 0.102872f, 0.00632973f, 0.0294658f, 0.937041f, 0.744933f, 0.429079f, 0.2378f, 0.532026f, 0.395294f, 0.887661f, 0.17933f, 0.440347f, 0.296402f, 0.00236916f, 0.209272f, 0.5654f, 0.834848f, 0.460221f, 0.0318093f, 0.123416f, 0.671155f, 0.508426f, 0.638721f, 0.279426f, 0.977275f, 7.68745e-05f, 0.955426f, 0.765669f, 0.835244f, 0.374852f, 0.3037f, 0.182404f, 0.563928f, 0.206628f, 0.845717f, 0.0740084f, 0.534655f, 0.948065f, 0.860815f, 0.727566f, 0.592863f, 0.611181f, 0.51679f, 0.878952f, 0.225228f, 0.506738f, 0.912728f, 0.750646f, 0.352038f, 0.663531f, 0.717603f, 0.263244f, 0.312346f, 0.900763f, 0.3021f, 0.710917f, 0.801194f, 0.275892f, 0.135634f, 0.013046f, 0.143271f, 0.706457f, 0.4556f, 0.880494f, 0.323518f, 0.914485f, 0.948586f, 0.837672f, 0.268554f, 0.492549f, 0.835405f, 0.424024f, 0.251007f, 0.670121f, 0.894743f, 0.936056f, 0.878409f, 0.516729f, 0.980338f, 0.858777f, 0.515476f, 0.806565f, 0.459549f, 0.673979f, 0.0373015f, 0.225456f, 0.448623f, 0.742773f, 0.30995f, 0.730075f, 0.645957f, 0.416948f, 0.252095f, 0.0891325f, 0.269174f, 0.277805f, 0.0260466f, 0.438988f, 0.912189f, 0.273474f, 0.296135f, 0.0327403f, 0.410277f, 0.885817f, 0.672258f, 0.957767f, 0.0637427f, 0.705864f, 0.750885f, 0.532208f, 0.500071f, 0.989295f, 0.198371f, 0.155448f, 0.893755f, 0.55062f, 0.787393f, 0.673014f, 0.700156f, 0.785568f, 0.849068f, 0.471647f, 0.929353f, 0.830086f, 0.164187f, 0.95872f, 0.707694f, 0.254694f, 0.516321f, 0.198168f, 0.652784f, 0.554721f, 0.600844f, 0.00513052f, 0.777388f, 0.267702f, 0.554596f, 0.966946f, 0.982968f, 0.91765f, 0.572923f, 0.505429f, 0.544413f, 0.920607f, 0.277406f, 0.358607f, 0.644469f, 0.802135f, 0.417853f, 0.0748436f, 0.0656076f, 0.667222f, 0.00809094f, 0.511886f, 0.062951f, 0.140421f, 0.786651f, 0.275054f, 0.718954f, 0.307897f, 0.899251f, 0.940873f, 0.635788f, 0.966653f, 0.308592f, 0.0912164f, 0.996029f, 0.440294f, 0.025451f, 0.57036f, 0.0815001f, 0.785151f, 0.673662f, 0.555222f, 0.72086f, 0.635426f, 0.916495f, 0.53304f, 0.37754f, 0.745192f, 0.892548f, 0.440584f, 0.0808152f, 0.658269f, 0.417595f, 0.821983f, 0.454843f, 0.510409f, 0.443047f, 0.455659f, 0.0762574f, 0.68442f, 0.764375f, 0.118305f, 0.117737f, 0.109274f, 0.830061f, 0.622865f, 0.621019f, 0.363026f, 0.437709f, 0.0458459f, 0.748531f, 0.896462f, 0.0851837f, 0.422135f, 0.109305f, 0.805803f, 0.888655f, 0.294698f, 0.511156f, 0.580689f, 0.254876f, 0.877237f, 0.965993f, 0.958119f, 0.0194436f, 0.340496f, 0.74835f, 0.988802f, 0.571348f, 0.766744f, 0.511712f, 0.408168f, 0.162194f, 0.877615f, 0.343821f, 0.702854f, 0.795688f, 0.0172876f, 0.252809f, 0.818424f, 0.649099f, 0.112949f, 0.435633f, 0.606987f, 0.929316f, 0.253601f, 0.429676f, 0.0881306f, 0.712534f, 0.337336f, 0.693027f, 0.22348f, 0.347465f, 0.360248f, 0.0609941f, 0.807739f, 0.891838f, 0.871452f, 0.965494f, 0.414782f, 0.107206f, 0.514451f, 0.571409f, 0.849897f, 0.949761f, 0.438625f, 0.972175f, 0.519867f, 0.176188f, 0.42903f, 0.706912f, 0.799488f, 0.216814f, 0.192208f, 0.549729f, 0.959527f, 0.0193243f, 0.142677f, 0.561262f, 0.472697f, 0.45902f, 0.461403f, 0.247776f, 0.421327f, 0.882689f, 0.0900163f, 0.484854f, 0.752666f, 0.878102f, 0.485377f, 0.102796f, 0.642061f, 0.561637f, 0.738313f, 0.502398f, 0.318698f, 0.652747f, 0.847825f, 0.709615f, 0.967789f, 0.437439f, 0.940151f, 0.788328f, 0.0527278f, 0.207602f, 0.332577f, 0.143298f, 0.963026f, 0.905102f, 0.325186f, 0.321057f, 0.996634f, 0.787633f, 0.2473f, 0.612468f, 0.680492f, 0.77213f, 0.651793f, 0.112792f, 0.600331f, 0.0214044f, 0.392964f, 0.346418f, 0.211294f, 0.420163f, 0.517522f, 0.814278f, 0.454198f, 0.563263f, 0.266748f, 0.136205f, 0.502684f, 0.8188f, 0.400989f, 0.118937f, 0.0411338f, 0.858195f, 0.834085f, 0.902483f, 0.263586f, 0.238561f, 0.107777f, 0.535858f, 0.239505f, 0.277898f, 0.735298f, 0.950311f, 0.216747f, 0.0549665f, 0.435693f, 0.56972f, 0.725088f, 0.476098f, 0.590023f, 0.791093f, 0.448307f, 0.144103f, 0.473148f, 0.0971389f, 0.527271f, 0.84826f, 0.451409f, 0.624358f, 0.790694f, 0.58076f, 0.947789f, 0.847968f, 0.268656f, 0.0502452f, 0.427562f, 0.2381f, 0.37817f, 0.340982f, 0.990372f, 0.707389f, 0.881687f, 0.614775f, 0.459538f, 0.689486f, 0.257183f, 0.508028f, 0.951647f, 0.239295f, 0.510228f, 0.0355115f, 0.674017f, 0.650262f, 0.629765f, 0.172136f, 0.664333f, 0.319067f, 0.626285f, 0.760027f, 0.918703f, 0.394823f, 0.0561703f, 0.685326f, 0.387615f, 0.3077f, 0.456536f, 0.716168f, 0.554496f, 0.922222f, 0.465481f, 0.422972f, 0.284398f, 0.316601f, 0.117767f, 0.664932f, 0.818385f, 0.0772614f, 0.797809f, 0.565864f, 0.806523f, 0.502041f, 0.986052f, 0.40194f, 0.853426f, 0.923334f, 0.229677f, 0.409202f, 0.103052f, 0.803749f, 0.741309f, 0.584289f, 0.17029f, 0.813915f, 0.486107f, 0.335076f, 0.0723319f, 0.0648056f, 0.0169297f, 0.276338f, 0.803466f, 0.941484f, 0.675518f, 0.25859f, 0.674748f, 0.145562f, 0.933589f, 0.74698f, 0.162899f, 0.987096f, 0.901738f, 0.234055f, 0.957422f, 0.636644f, 0.835198f, 0.548654f, 0.171008f, 0.328339f, 0.176741f, 0.108074f, 0.0648382f, 0.973493f, 0.0507243f, 0.69277f, 0.860223f, 0.851903f, 0.526105f, 0.186676f, 0.485972f, 0.0915541f, 0.123117f, 0.263321f, 0.114275f, 0.471546f, 0.910374f, 0.840445f, 0.435861f, 0.472122f, 0.510161f, 0.0544588f, 0.0254585f, 0.84312f, 0.822587f, 0.761342f, 0.096239f, 0.519051f, 0.109043f, 0.331702f, 0.0499664f, 0.298945f, 0.481621f, 0.134952f, 0.952646f, 0.801653f, 0.890752f, 0.31178f, 0.91065f, 0.860964f, 0.260392f, 0.790841f, 0.939215f, 0.541865f, 0.288362f, 0.759087f, 0.278885f, 0.608133f, 0.50618f, 0.642822f, 0.170413f, 0.191113f, 0.536587f, 0.548019f, 0.7547f, 0.853169f, 0.374626f, 0.250609f, 0.478192f, 0.992317f, 0.921845f, 0.113108f, 0.90873f, 0.483042f, 0.296314f, 0.5585f, 0.101148f, 0.798438f, 0.76298f, 0.671514f, 0.836567f, 0.745829f, 0.979008f, 0.176332f, 0.504983f, 0.0675006f, 0.37174f, 0.730015f, 0.949321f, 0.963235f, 0.114482f, 0.798551f, 0.8641f, 0.155542f, 0.43491f, 0.529986f, 0.0602692f, 0.965662f, 0.973488f, 0.12901f, 0.497966f, 0.974907f, 0.955867f, 0.212779f, 0.992117f, 0.852558f, 0.0952857f, 0.867269f, 0.690625f, 0.686375f, 0.74081f, 0.668102f, 0.536224f, 0.0999359f, 0.285415f, 0.0213675f, 0.186844f, 0.539411f, 0.46288f, 0.785401f, 0.481897f, 0.307431f, 0.325025f, 0.326074f, 0.806278f, 0.430591f, 0.723728f, 0.173602f, 0.962883f, 0.816989f, 0.903304f, 0.469133f, 0.604026f, 0.0321729f, 0.840409f, 0.24737f, 0.736421f, 0.48015f, 0.192789f, 0.951041f, 0.593976f, 0.151651f, 0.443673f, 0.34385f, 0.577428f, 0.140803f, 0.566435f, 0.11966f, 0.72859f, 0.368858f, 0.0577975f, 0.34032f, 0.609083f, 0.256059f, 0.348514f, 0.0508468f, 0.00316749f, 0.555017f, 0.655676f, 0.737948f, 0.567344f, 0.362025f, 0.146449f, 0.00129713f, 0.844723f, 0.916729f, 0.00308606f, 0.0870135f, 0.877402f, 0.951417f, 0.221822f, 0.772431f, 0.643395f, 0.67301f, 0.116911f, 0.46719f, 0.0669138f, 0.130404f, 0.619855f, 0.801693f, 0.774829f, 0.989154f, 0.856526f, 0.302431f, 0.648183f, 0.215863f, 0.804791f, 0.201173f, 0.336564f, 0.97062f, 0.288187f, 0.507616f, 0.646082f, 0.733398f, 0.224121f, 0.504736f, 0.00772472f, 0.78743f, 0.771164f, 0.559108f, 0.795581f, 0.367603f, 0.468444f, 0.585013f, 0.586772f, 0.653175f, 0.0160145f, 0.522016f, 0.58587f, 0.209264f, 0.458205f, 0.616487f, 0.117648f, 0.115699f, 0.583878f, 0.794704f, 0.221679f, 0.911828f, 0.968042f, 0.718035f, 0.594693f, 0.188187f, 0.937082f, 0.670652f, 0.205657f, 0.0996074f, 0.0260505f, 0.26999f, 0.74838f, 0.934845f, 0.677448f, 0.560191f, 0.176769f, 0.066693f, 0.506686f, 0.430665f, 0.821599f, 0.92822f, 0.44078f, 0.443573f, 0.292611f, 0.189979f, 0.925306f, 0.973656f, 0.949399f, 0.719787f, 0.570721f, 0.182352f, 0.844719f, 0.435064f, 0.588637f, 0.999896f, 0.549393f, 0.767109f, 0.014801f, 0.486565f, 0.840187f, 0.808312f, 0.18391f, 0.234522f, 0.584381f, 0.37433f, 0.29087f, 0.0704586f, 0.304292f, 0.319893f, 0.0587912f, 0.845847f, 0.00314954f, 0.837245f, 0.462001f, 0.589969f, 0.482115f, 0.647743f, 0.787038f, 0.723061f, 0.326683f, 0.85121f, 0.355814f, 0.705157f, 0.989882f, 0.929909f, 0.542999f, 0.632499f, 0.842266f, 0.176936f, 0.29883f, 0.861086f, 0.189718f, 0.432002f, 0.175787f, 0.327401f, 0.838435f, 0.401861f, 0.0125604f, 0.203791f, 0.444693f, 0.187772f, 0.152064f, 0.815757f, 0.684142f, 0.813747f, 0.823545f, 0.134347f, 0.291306f, 0.637104f, 0.536827f, 0.947242f, 0.627055f, 0.850737f, 0.447708f, 0.827583f, 0.200962f, 0.420909f, 0.828729f, 0.430872f, 0.907566f, 0.491373f, 0.260588f, 0.101679f, 0.0487735f, 0.818573f, 0.808401f, 0.597819f, 0.937844f, 0.554982f, 0.0817186f, 0.637007f, 0.208433f, 0.684939f, 0.678865f, 0.938025f, 0.0468879f, 0.106424f, 0.279055f, 0.325352f, 0.835876f, 0.732463f, 0.956187f, 0.776323f, 0.52492f, 0.809183f, 0.256638f, 0.222042f, 0.612182f, 0.246364f, 0.751067f, 0.697015f, 0.557753f, 0.80429f, 0.892181f, 0.0235493f, 0.392911f, 0.251057f, 0.936298f, 0.842089f, 0.561525f, 0.810932f, 0.104489f, 0.108559f, 0.939076f, 0.522494f, 0.901654f, 0.253191f, 0.0305009f, 0.000174918f, 0.548136f, 0.269365f, 0.374307f, 0.779397f, 0.889697f, 0.265327f, 0.530964f, 0.40879f, 0.0999762f, 0.164271f, 0.867453f, 0.961738f, 0.292759f, 0.14762f, 0.237227f, 0.722776f, 0.680346f, 0.313074f, 0.823815f, 0.385996f, 0.0297546f, 0.425466f, 0.579438f, 0.0663015f, 0.159994f, 0.438489f, 0.358821f, 0.21364f, 0.481726f, 0.483257f, 0.980104f, 0.953453f, 0.829254f, 0.82761f, 0.700659f, 0.625401f, 0.37035f, 0.904741f, 0.102187f, 0.223586f, 0.990634f, 0.419582f, 0.621645f, 0.27542f, 0.709467f, 0.517586f, 0.384775f, 0.061399f, 0.406794f, 0.0198032f, 0.170385f, 0.152503f, 0.249718f, 0.611619f, 0.353437f, 0.585372f, 0.778843f, 0.748258f, 0.00522621f, 0.0147192f, 0.0705208f, 0.442315f, 0.166621f, 0.0496034f, 0.00780444f, 0.0572878f, 0.759933f, 0.574716f, 0.93493f, 0.971876f, 0.62744f, 0.626682f, 0.0144254f, 0.224486f, 0.292508f, 0.16733f, 0.461605f, 0.539995f, 0.769798f, 0.580077f, 0.379058f, 0.0096561f, 0.717079f, 0.43319f, 0.478359f, 0.383725f, 0.973667f, 0.551515f, 0.159994f, 0.331342f, 0.89847f, 0.104814f, 0.186139f, 0.791425f, 0.513075f, 0.207098f, 0.705184f, 0.959963f, 0.109553f, 0.0240362f, 0.525282f, 0.11477f, 0.90424f, 0.163693f, 0.303969f, 0.108482f, 0.122791f, 0.012939f, 0.342588f, 0.0272011f, 0.600804f, 0.921436f, 0.512615f, 0.0500179f, 0.600177f, 0.618209f, 0.508877f, 0.460674f, 0.147336f, 0.926143f, 0.849058f, 0.106621f, 0.442745f, 0.854984f, 0.649785f, 0.680815f, 0.215518f, 0.54041f, 0.0592017f, 0.213795f, 0.275691f, 0.692786f, 0.812412f, 0.730742f, 0.0430776f, 0.515699f, 0.0471932f, 0.268972f, 0.191225f, 0.162789f, 0.859575f, 0.457822f, 0.82466f, 0.0802463f, 0.21362f, 0.347316f, 0.924177f, 0.535158f, 0.279048f, 0.0177046f, 0.212148f, 0.809314f, 0.92635f, 0.0842272f, 0.0464712f, 0.156035f, 0.113283f, 0.633604f, 0.586258f, 0.138507f, 0.106527f, 0.485321f, 0.696954f, 0.563075f, 0.0615132f, 0.500333f, 0.869193f, 0.760761f, 0.161124f, 0.925194f, 0.977073f, 0.178616f, 0.966401f, 0.328208f, 0.270984f, 0.367092f, 0.498169f, 0.338269f, 0.750939f, 0.543984f, 0.9023f, 0.543534f, 0.016312f, 0.502658f, 0.86578f, 0.298257f, 0.369636f, 0.664773f, 0.266585f, 0.36256f, 0.616225f, 0.180534f, 0.2579f, 0.762294f, 0.458767f, 0.493684f, 0.0541348f, 0.688507f, 0.401433f, 0.704303f, 0.893807f, 0.474275f, 0.750621f, 0.337068f, 0.789275f, 0.0368413f, 0.90707f, 0.63747f, 0.311911f, 0.433968f, 0.797275f, 0.946471f, 0.392497f, 0.57048f, 0.324949f, 0.707479f, 0.473632f, 0.252424f, 0.882691f, 0.95303f, 0.145117f, 0.359622f, 0.323966f, 0.850115f, 0.657502f, 0.490679f, 0.117636f, 0.622882f, 0.952931f, 0.752963f, 0.748988f, 0.0824225f, 0.220845f, 0.518163f, 0.384343f, 0.325047f, 0.0654623f, 0.224933f, 0.100739f, 0.712389f, 0.433919f, 0.946161f, 0.91136f, 0.54095f, 0.276587f, 0.712972f, 0.287296f, 0.636123f, 0.482552f, 0.969401f, 0.277553f, 0.88716f, 0.154472f, 0.186099f, 0.187503f, 0.888573f, 0.886183f, 0.852393f, 0.0354023f, 0.218044f, 0.439132f, 0.0759184f, 0.970972f, 0.903231f, 0.0863043f, 0.841808f, 0.877451f, 0.212733f, 0.780609f, 0.260082f, 0.148804f, 0.211385f, 0.736429f, 0.447931f, 0.73038f, 0.613024f, 0.925157f, 0.411162f, 0.519772f, 0.771778f, 0.0303801f, 0.336019f, 0.706645f, 0.320265f, 0.447593f, 0.616613f, 0.349174f, 0.309556f, 0.409711f, 0.700563f, 0.663469f, 0.665177f, 0.975724f, 0.262737f, 0.0576114f, 0.456657f, 0.202072f, 0.548093f, 0.70414f, 0.00151419f, 0.591219f, 0.723603f, 0.580681f, 0.203495f, 0.00301552f, 0.363667f, 0.701647f, 0.0898662f, 0.0175085f, 0.57922f, 0.481037f, 0.511311f, 0.517898f, 0.638491f, 0.19532f, 0.116193f, 0.45704f, 0.94091f, 0.892934f, 0.458747f, 0.0299241f, 0.432842f, 0.0990674f, 0.388252f, 0.218489f, 0.303574f, 0.489316f, 0.909617f, 0.38945f, 0.348984f, 0.625489f, 0.0481935f, 0.475787f, 0.239942f, 0.51331f, 0.0755039f, 0.459515f, 0.973249f, 0.74645f, 0.206274f, 0.17815f, 0.417064f, 0.636705f, 0.60885f, 0.17796f, 0.203345f, 0.682714f, 0.642812f, 0.184734f, 0.405048f, 0.907048f, 0.291277f, 0.0844157f, 0.593001f, 0.153298f, 0.151499f, 0.993113f, 0.21695f, 0.0255066f, 0.360015f, 0.647722f, 0.707693f, 0.923729f, 0.152495f, 0.132257f, 0.818965f, 0.0722895f, 0.943851f, 0.385379f, 0.921495f, 0.00638984f, 0.547315f, 0.841284f, 0.407772f, 0.86433f, 0.810574f, 0.0753104f, 0.47821f, 0.595804f, 0.792667f, 0.724536f, 0.269371f, 0.194357f, 0.224023f, 0.763775f, 0.234777f, 0.725786f, 0.855229f, 0.759268f, 0.510267f, 0.588473f, 0.0172854f, 0.4479f, 0.664336f, 0.50244f, 0.298565f, 0.412266f, 0.70789f, 0.258666f, 0.669177f, 0.97114f, 0.794049f, 0.652256f, 0.552754f, 0.640575f, 0.19356f, 0.0469088f, 0.774715f, 0.704023f, 0.810834f, 0.00158777f, 0.0347898f, 0.526573f, 0.453529f, 0.335324f, 0.823378f, 0.718534f, 0.0208861f, 0.435365f, 0.705493f, 0.174218f, 0.983121f, 0.564026f, 0.750141f, 0.545693f, 0.592673f, 0.0115324f, 0.652051f, 0.43416f, 0.780084f, 0.715096f, 0.445158f, 0.13432f, 0.722025f, 0.594671f, 0.425649f, 0.401439f, 0.85149f, 0.664776f, 0.59369f, 0.981758f, 0.332022f, 0.317091f, 0.821814f, 0.932877f, 0.934732f, 0.645572f, 0.48562f, 0.666455f, 0.487356f, 0.582273f, 0.793477f, 0.705752f, 0.0679657f, 0.539385f, 0.92631f, 0.140349f, 0.419209f, 0.613488f, 0.186375f, 0.497371f, 0.654363f, 0.605766f, 0.353864f, 0.521137f, 0.365737f, 0.922172f, 0.260254f, 0.904775f, 0.158833f, 0.871395f, 0.0284482f, 0.138727f, 0.981333f, 0.0385456f, 0.825761f, 0.899612f, 0.695491f, 0.599947f, 0.107973f, 0.904803f, 0.784907f, 0.348681f, 0.0967727f, 0.290476f, 0.47869f, 0.724451f, 0.696268f, 0.390858f, 0.804403f, 0.915155f, 0.500381f, 0.326014f, 0.879121f, 0.747531f, 0.29866f, 0.836154f, 0.466789f, 0.0554815f, 0.521147f, 0.0193921f, 0.277637f, 0.412436f, 0.165975f, 0.0933043f, 0.396028f, 0.364232f, 0.894119f, 0.662706f, 0.844554f, 0.627276f, 0.510571f, 0.775876f, 0.559223f, 0.140766f, 0.132849f, 0.630919f, 0.993621f, 0.312176f, 0.762026f, 0.269199f, 0.421158f, 0.995547f, 0.1647f, 0.281031f, 0.242504f, 0.124864f, 0.0631884f, 0.783051f, 0.832809f, 0.370051f, 0.837016f, 0.322727f, 0.969841f, 0.635818f, 0.373681f, 0.0906802f, 0.285469f, 0.452135f, 0.74719f, 0.1876f, 0.530949f, 0.301913f, 0.181019f, 0.758152f, 0.435024f, 0.439012f, 0.0774962f, 0.617846f, 0.648043f, 0.315735f, 0.376518f, 0.314902f, 0.409523f, 0.485949f, 0.402967f, 0.605442f, 0.0406506f, 0.784141f, 0.846694f, 0.41006f, 0.013384f, 0.366095f, 0.78164f, 0.0102839f, 0.6342f, 0.913823f, 0.349234f, 0.112328f, 0.124363f, 0.152649f, 0.711797f, 0.386605f, 0.471072f, 0.818652f, 0.504349f, 0.648708f, 0.188056f, 0.826415f, 0.101712f, 0.0379787f, 0.661428f, 0.260474f, 0.259856f, 0.530603f, 0.696072f, 0.889401f, 0.908128f, 0.651632f, 0.509349f, 0.590079f, 0.522361f, 0.235219f, 0.952806f, 0.273418f, 0.305395f, 0.688828f, 0.666369f, 0.413037f, 0.686757f, 0.505578f, 0.356498f, 0.431466f, 0.609216f, 0.642127f, 0.988884f, 0.674534f, 0.793127f, 0.875922f, 0.804245f, 0.555926f, 0.180767f, 0.591838f, 0.536362f, 0.0700143f, 0.690774f, 0.141717f, 0.425298f, 0.901915f, 0.0963091f, 0.310052f, 0.294121f, 0.601604f, 0.097364f, 0.708817f, 0.0427036f, 0.50961f, 0.349314f, 0.164607f, 0.971869f, 0.986749f, 0.626938f, 0.269309f, 0.182684f, 0.888293f, 0.968728f, 0.629877f, 0.626314f, 0.882564f, 0.266396f, 0.894487f, 0.346194f, 0.636177f, 0.378728f, 0.409531f, 0.829683f, 0.613478f, 0.175034f, 0.556522f, 0.970561f, 0.716135f, 0.0405869f, 0.705143f, 0.649151f, 0.0682475f, 0.143428f, 0.888939f, 0.163392f, 0.0536951f, 0.966391f, 0.157317f, 0.601915f, 0.818234f, 0.274833f, 0.644002f, 0.17447f, 0.132195f, 0.603534f, 0.102146f, 0.0229057f, 0.449928f, 0.0959411f, 0.404557f, 0.313371f, 0.0421685f, 0.680261f, 0.0663152f, 0.655345f, 0.748725f, 0.124891f, 0.822067f, 0.253951f, 0.124592f, 0.698393f, 0.164684f, 0.616958f, 0.824313f, 0.964058f, 0.238139f, 0.402992f, 0.382403f, 0.457389f, 0.0418984f, 0.259257f, 0.20708f, 0.378181f, 0.595022f, 0.0855787f, 0.672578f, 0.582013f, 0.0439431f, 0.0288226f, 0.100938f, 0.615393f, 0.731328f, 0.656283f, 0.330191f, 0.182827f, 0.390147f, 0.714379f, 0.176488f, 0.990829f, 0.809143f, 0.568215f, 0.303771f, 0.91016f, 0.44329f, 0.593669f, 0.722076f, 0.560905f, 0.560642f, 0.513886f, 0.855322f, 0.607786f, 0.781349f, 0.548843f, 0.546036f, 0.124078f, 0.237524f, 0.867486f, 0.357688f, 0.338076f, 0.786907f, 0.20566f, 0.353073f, 0.898358f, 0.177624f, 0.284894f, 0.527775f, 0.264077f, 0.748425f, 0.554378f, 0.590301f, 0.143675f, 0.410008f, 0.416264f, 0.763627f, 0.815686f, 0.639639f, 0.361523f, 0.567836f, 0.550479f, 0.606591f, 0.0178056f, 0.166134f, 0.469154f, 0.890778f, 0.0870741f, 0.641713f, 0.272892f, 0.142382f, 0.157895f, 0.875142f, 0.817378f, 0.115733f, 0.650699f, 0.954393f, 0.190758f, 0.719208f, 0.797697f, 0.581234f, 0.217666f, 0.76857f, 0.870738f, 0.635089f, 0.532965f, 0.237063f, 0.396399f, 0.317764f, 0.844411f, 0.594896f, 0.985531f, 0.965591f, 0.148934f, 0.533466f, 0.326614f, 0.0676991f, 0.0409045f, 0.259027f, 0.619908f, 0.460028f, 0.0391452f, 0.35105f, 0.879854f, 0.920177f, 0.949852f, 0.0869352f, 0.110073f, 0.313809f, 0.47796f, 0.539343f, 0.510045f, 0.512023f, 0.0600525f, 0.617031f, 0.604771f, 0.533327f, 0.105267f, 0.632391f, 0.308386f, 0.490456f, 0.702948f, 0.616332f, 0.634406f, 0.130287f, 0.819221f, 0.0894389f, 0.171534f, 0.980235f, 0.455154f, 0.551306f, 0.661436f, 0.899947f, 0.78834f, 0.168625f, 0.0589216f, 0.097285f, 0.700832f, 0.821703f, 0.017523f, 0.210227f, 0.328355f, 0.861135f, 0.209952f, 0.518591f, 0.391321f, 0.846423f, 0.702223f, 0.491477f, 0.210212f, 0.267899f, 0.437041f, 0.288857f, 0.953474f, 0.964247f, 0.350472f, 0.334289f, 0.386696f, 0.278018f, 0.201989f, 0.899821f, 0.98322f, 0.143034f, 0.420224f, 0.37725f, 0.144546f, 0.968261f, 0.587383f, 0.640063f, 0.0493429f, 0.694887f, 0.972637f, 0.832521f, 0.234671f, 0.810305f, 0.190715f, 0.257148f, 0.678743f, 0.067473f, 0.194639f, 0.311488f, 0.24708f, 0.162158f, 0.728028f, 0.551571f, 0.95262f, 0.292592f, 0.342366f, 0.383834f, 0.317163f, 0.88439f, 0.196063f, 0.645091f, 0.728461f, 0.328206f, 0.423494f, 0.765601f, 0.382084f, 0.256062f, 0.598997f, 0.839553f, 0.0702839f, 0.81107f, 0.665389f, 0.41877f, 0.550256f, 0.619956f, 0.129191f, 0.256608f, 0.768557f, 0.79812f, 0.527826f, 0.425846f, 0.973146f, 0.913008f, 0.0309738f, 0.129424f, 0.385945f, 0.48925f, 0.36247f, 0.651493f, 0.239735f, 0.113484f, 0.885722f, 0.827916f, 0.692666f, 0.0900508f, 0.0624783f, 0.297762f, 0.910664f, 0.641529f, 0.812213f, 0.669625f, 0.695333f, 0.864861f, 0.696586f, 0.240099f, 0.873849f, 0.267616f, 0.0150577f, 0.496142f, 0.0181793f, 0.315326f, 0.117324f, 0.403701f, 0.624366f, 0.856175f, 0.000704271f, 0.0208226f, 0.518633f, 0.494967f, 0.0915335f, 0.797735f, 0.293147f, 0.144645f, 0.321851f, 0.237865f, 0.729335f, 0.83753f, 0.444805f, 0.39933f, 0.497946f, 0.36823f, 0.249807f, 0.485935f, 0.128588f, 0.667983f, 0.335525f, 0.469585f, 0.337843f, 0.718907f, 0.24901f, 0.70854f, 0.992345f, 0.578137f, 0.579341f, 0.776219f, 0.485066f, 0.19798f, 0.373463f, 0.931199f, 0.912336f, 0.746203f, 0.750536f, 0.951535f, 0.691765f, 0.776318f, 0.357287f, 0.72839f, 0.0249142f, 0.628353f, 0.239833f, 0.109642f, 0.772355f, 0.648747f, 0.489777f, 0.56614f, 0.774993f, 0.547418f, 0.991198f, 0.271008f, 0.496569f, 0.621571f, 0.299536f, 0.00810245f, 0.0864569f, 0.533341f, 0.783043f, 0.809771f, 0.597423f, 0.412529f, 0.79456f, 0.52394f, 0.82497f, 0.3518f, 0.941565f, 0.157979f, 0.479138f, 0.496974f, 0.938128f, 0.209493f, 0.950286f, 0.836756f, 0.558122f, 0.521529f, 0.232116f, 0.33917f, 0.596949f, 0.93423f, 0.0692899f, 0.369535f, 0.749326f, 0.556352f, 0.982935f, 0.143458f, 0.893278f, 0.304947f, 0.400386f, 0.491137f, 0.711417f, 0.764818f, 0.235418f, 0.487678f, 0.253228f, 0.455756f, 0.551269f, 0.579563f, 0.235527f, 0.895806f, 0.474983f, 0.353294f, 0.984331f, 0.784567f, 0.422001f, 0.0192113f, 0.528427f, 0.574712f, 0.140488f, 0.506967f, 0.86844f, 0.138171f, 0.418844f, 0.551601f, 0.700853f, 0.41318f, 0.921164f, 0.788882f, 0.329395f, 0.992396f, 0.0819402f, 0.0071935f, 0.992821f, 0.985718f, 0.314136f, 0.200217f, 0.314595f, 0.599339f, 0.0609108f, 0.744403f, 0.0657664f, 0.808466f, 0.432487f, 0.245351f, 0.456413f, 0.955912f, 0.0368268f, 0.173992f, 0.613383f, 0.389589f, 0.0655167f, 0.492878f, 0.697627f, 0.128874f, 0.11259f, 0.422782f, 0.252359f, 0.0858661f, 0.338557f, 0.0700371f, 0.342711f, 0.716044f, 0.174474f, 0.800268f, 0.620241f, 0.678921f, 0.315725f, 0.563589f, 0.679173f, 0.312168f, 0.190003f, 0.263356f, 0.443382f, 0.160867f, 0.293886f, 0.369934f, 0.621355f, 0.178948f, 0.799668f, 0.168929f, 0.886597f, 0.157751f, 0.827426f, 0.998084f, 0.709695f, 0.994338f, 0.448279f, 0.640411f, 0.928919f, 0.459238f, 0.067816f, 0.605502f, 0.244398f, 0.608718f, 0.214511f, 0.12063f, 0.945361f, 0.509654f, 0.0255167f, 0.417937f, 0.818315f, 0.987609f, 0.413759f, 0.538989f, 0.0248027f, 0.454687f, 0.0517092f, 0.90271f, 0.425484f, 0.862402f, 0.625027f, 0.876214f, 0.675517f, 0.192748f, 0.231229f, 0.819236f, 0.823086f, 0.667963f, 0.281389f, 0.00746112f, 0.968602f, 0.317103f, 0.477637f, 0.0761143f, 0.376027f, 0.0466629f, 0.191921f, 0.73032f, 0.252946f, 0.267239f, 0.0905882f, 0.849323f, 0.946896f, 0.181835f, 0.270043f, 0.056533f, 0.528718f, 0.34072f, 0.195902f, 0.706542f, 0.991418f, 0.119169f, 0.891355f, 0.864471f, 0.699044f, 0.651331f, 0.285457f, 0.670664f, 0.466954f, 0.801451f, 0.64839f, 0.485259f, 0.881206f, 0.0398237f, 0.933549f, 0.257922f, 0.587636f, 0.112448f, 0.0148977f, 0.937841f, 0.765008f, 0.0828351f, 0.816488f, 0.960685f, 0.61599f, 0.859782f, 0.290726f, 0.513923f, 0.063747f, 0.370326f, 0.159592f, 0.468146f, 0.651206f, 0.310093f, 0.298917f, 0.359615f, 0.972081f, 0.705177f, 0.171894f, 0.737643f, 0.264526f, 0.228415f, 0.206767f, 0.215091f, 0.888902f, 0.566527f, 0.838089f, 0.28529f, 0.609758f, 0.708566f, 0.81208f, 0.433847f, 0.126582f, 0.937056f, 0.757773f, 0.690594f, 0.392319f, 0.550614f, 0.392574f, 0.670266f, 0.49032f, 0.205898f, 0.831668f, 0.190098f, 0.291416f, 0.317894f, 0.0457926f, 0.872519f, 0.000115332f, 0.729135f, 0.741646f, 0.453272f, 0.604688f, 0.0199639f, 0.707024f, 0.0497294f, 0.686269f, 0.671024f, 0.220367f, 0.825915f, 0.326601f, 0.392532f, 0.357285f, 0.518455f, 0.859585f, 0.73902f, 0.143127f, 0.2866f, 0.345896f, 0.0462287f, 0.941818f, 0.501028f, 0.344384f, 0.0554794f, 0.324246f, 0.848657f, 0.356346f, 0.285384f, 0.952473f, 0.814546f, 0.330119f, 0.788547f, 0.741966f, 0.377757f, 0.155739f, 0.551952f, 0.689385f, 0.323114f, 0.512186f, 0.440853f, 0.684254f, 0.655622f, 0.160188f, 0.87879f, 0.94967f, 0.611931f, 0.577409f, 0.254201f, 0.266333f, 0.61696f, 0.718902f, 0.726468f, 0.998383f, 0.0919312f, 0.0664134f, 0.828854f, 0.472295f, 0.842708f, 0.64022f, 0.305899f, 0.0237165f, 0.876209f, 0.133535f, 0.17101f, 0.658875f, 0.13261f, 0.981066f, 0.986838f, 0.891752f, 0.296951f, 0.434631f, 0.967742f, 0.802787f, 0.366509f, 0.719581f, 0.503294f, 0.748413f, 0.161317f, 0.66709f, 0.444871f, 0.36463f, 0.0446563f, 0.874504f, 0.127738f, 0.347592f, 0.398526f, 0.0199116f, 0.914809f, 0.167554f, 0.189426f, 0.855066f, 0.694113f, 0.799023f, 0.0902301f, 0.676734f, 0.0229465f, 0.806434f, 0.343859f, 0.559115f, 0.0432249f, 0.659427f, 0.354253f, 0.616094f, 0.411097f, 0.806377f, 0.77531f, 0.741445f, 0.000473142f, 0.639601f, 0.536549f, 0.806591f, 0.548107f, 0.732347f, 0.427543f, 0.867243f, 0.186006f, 0.588977f, 0.52012f, 0.409918f, 0.460944f, 0.368319f, 0.361351f, 0.292433f, 0.907614f, 0.874799f, 0.2355f, 0.123767f, 0.981005f, 0.421588f, 0.147668f, 0.523858f, 0.311282f, 0.680003f, 0.0692566f, 0.999342f, 0.261984f, 0.655352f, 0.133604f, 0.5844f, 0.426139f, 0.854832f, 0.438496f, 0.675043f, 0.420723f, 0.445101f, 0.86545f, 0.208841f, 0.121776f, 0.906885f, 0.66269f, 0.123358f, 0.921135f, 0.54658f, 0.461271f, 0.0967301f, 0.402302f, 0.71524f, 0.182779f, 0.50309f, 0.730806f, 0.250203f, 0.584698f, 0.628875f, 0.485839f, 0.321928f, 0.367213f, 0.983743f, 0.493145f, 0.173286f, 0.760994f, 0.306477f, 0.0946855f, 0.11765f, 0.526887f, 0.35585f, 0.801342f, 0.417659f, 0.481917f, 0.816113f, 0.0390786f, 0.352499f, 0.455266f, 0.885476f, 0.01811f, 0.421414f, 0.806737f, 0.648411f, 0.757006f, 0.187066f, 0.535292f, 0.726305f, 0.505754f, 0.339057f, 0.672727f, 0.548889f, 0.557402f, 0.765191f, 0.98779f, 0.0785735f, 0.687429f, 0.437189f, 0.437966f, 0.0490676f, 0.251836f, 0.87836f, 0.661856f, 0.413129f, 0.909673f, 0.969351f, 0.445319f, 0.529583f, 0.845193f, 0.339396f, 0.195819f, 0.671612f, 0.907388f, 0.242167f, 0.329103f, 0.388934f, 0.755661f, 0.592306f, 0.954056f, 0.568219f, 0.929298f, 0.00538758f, 0.386031f, 0.431302f, 0.260224f, 0.779087f, 0.657806f, 0.0189166f, 0.430028f, 0.260458f, 0.977439f, 0.388769f, 0.340334f, 0.106024f, 0.881939f, 0.838445f, 0.413673f, 0.335674f, 0.494271f, 0.334412f, 0.593359f, 0.49516f, 0.976f, 0.153431f, 0.413018f, 0.164818f, 0.252509f, 0.742455f, 0.713348f, 0.0204139f, 0.538596f, 0.707846f, 0.0221754f, 0.522451f, 0.0391039f, 0.455664f, 0.504789f, 0.738907f, 0.58575f, 0.815157f, 0.48306f, 0.811862f, 0.86745f, 0.311792f, 0.685545f, 0.309708f, 0.788836f, 0.837826f, 0.399528f, 0.450462f, 0.596774f, 0.214621f, 0.526566f, 0.0688926f, 0.448344f, 0.120725f, 0.315122f, 0.787048f, 0.963238f, 0.340877f, 0.199999f, 0.079017f, 0.864607f, 0.764251f, 0.718319f, 0.111497f, 0.279891f, 0.115554f, 0.262699f, 0.890724f, 0.353046f, 0.810957f, 0.866735f, 0.00286452f, 0.00347619f, 0.270853f, 0.614247f, 0.561387f, 0.0215133f, 0.891057f, 0.315399f, 0.25655f, 0.241741f, 0.15039f, 0.374129f, 0.0691939f, 0.799363f, 0.744584f, 0.61992f, 0.83166f, 0.591765f, 0.336728f, 0.581412f, 0.928769f, 0.559652f, 0.882395f, 0.652254f, 0.26545f, 0.0670024f, 0.98697f, 0.391175f, 0.224069f, 0.323982f, 0.279011f, 0.820496f, 0.557159f, 0.327779f, 0.352074f, 0.206076f, 0.717108f, 0.0965557f, 0.138739f, 0.227808f, 0.563218f, 0.48847f, 0.945773f, 0.234884f, 0.858546f, 0.159396f, 0.385241f, 0.623445f, 0.596752f, 0.443205f, 0.887035f, 0.640344f, 0.0998492f, 0.163499f, 0.6304f, 0.480013f, 0.0448055f, 0.312842f, 0.841812f, 0.0231258f, 0.873638f, 0.694296f, 0.592714f, 0.87127f, 0.434592f, 0.612617f, 0.236753f, 0.24755f, 0.0956149f, 0.579344f, 0.68045f, 0.817486f, 0.547015f, 0.0270583f, 0.692874f, 0.805408f, 0.90689f, 0.506499f, 0.757605f, 0.440627f, 0.0319319f, 0.878953f, 0.327406f, 0.0859084f, 0.540661f, 0.658303f, 0.247164f, 0.988378f, 0.953815f, 0.835087f, 0.794337f, 0.183549f, 0.143762f, 0.188967f, 0.797925f, 0.155226f, 0.678526f, 0.223761f, 0.142341f, 0.971828f, 0.912707f, 0.354852f, 0.23376f, 0.859434f, 0.864688f, 0.643642f, 0.279002f, 0.872146f, 0.717845f, 0.689394f, 0.584934f, 0.925325f, 0.64485f, 0.0868768f, 0.440149f, 0.0802374f, 0.169745f, 0.0772872f, 0.148129f, 0.838965f, 0.500671f, 0.233542f, 0.289451f, 0.157224f, 0.24364f, 0.412919f, 0.0722526f, 0.248199f, 0.308479f, 0.3912f, 0.500142f, 0.222f, 0.0948341f, 0.917636f, 0.50172f, 0.465381f, 0.440189f, 0.286679f, 0.842397f, 0.90052f, 0.290512f, 0.803082f, 0.303241f, 0.919119f, 0.725945f, 0.0349066f, 0.211141f, 0.395546f, 0.763755f, 0.733756f, 0.871343f, 0.243095f, 0.366657f, 0.0390919f, 0.792521f, 0.60397f, 0.0279148f, 0.943343f, 0.253192f, 0.238217f, 0.342333f, 0.923191f, 0.98298f, 0.872482f, 0.833295f, 0.0152523f, 0.203533f, 0.0602389f, 0.705377f, 0.515586f, 0.44581f, 0.648555f, 0.401494f, 0.496757f, 0.352891f, 0.657929f, 0.882993f, 0.490186f, 0.240471f, 0.249185f, 0.932046f, 0.323939f, 0.947336f, 0.550444f, 0.28375f, 0.75001f, 0.942039f, 0.701898f, 0.0971857f, 0.93847f, 0.0757117f, 0.681359f, 0.378749f, 0.63677f, 0.242046f, 0.691409f, 0.543192f, 0.541103f, 0.0552468f, 0.519849f, 0.391595f, 0.528859f, 0.231188f, 0.563127f, 0.708664f, 0.793334f, 0.613483f, 0.54913f, 0.813614f, 0.042799f, 0.30788f, 0.55394f, 0.444663f, 0.346912f, 0.49824f, 0.426941f, 0.645794f, 0.526599f, 0.346327f, 0.3573f, 0.0900302f, 0.883809f, 0.404628f, 0.868461f, 0.923339f, 0.749753f, 0.537338f, 0.460161f, 0.660874f, 0.0147659f, 0.393392f, 0.558639f, 0.293429f, 0.719359f, 0.114173f, 0.653513f, 0.0139946f, 0.954595f, 0.286828f, 0.0624148f, 0.385569f, 0.547447f, 0.543222f, 0.176947f, 0.960972f, 0.278089f, 0.388656f, 0.841098f, 0.446601f, 0.470455f, 0.920701f, 0.846298f, 0.493898f, 0.95992f, 0.57772f, 0.260233f, 0.684009f, 0.173487f, 0.323381f, 0.0104636f, 0.288452f, 0.551542f, 0.651847f, 0.78528f, 0.0337595f, 0.508202f, 0.948789f, 0.766963f, 0.294237f, 0.303095f, 0.932342f, 0.396169f, 0.743192f, 0.0843343f, 0.635914f, 0.158435f, 0.330101f, 0.74867f, 0.848881f, 0.136496f, 0.289118f, 0.6916f, 0.272927f, 0.290798f, 0.904767f, 0.31142f, 0.166282f, 0.36705f, 0.549303f, 0.469151f, 0.0969193f, 0.128408f, 0.83649f, 0.929419f, 0.158906f, 0.628187f, 0.406191f, 0.382885f, 0.579948f, 0.039028f, 0.169621f, 0.989329f, 0.0815238f, 0.923423f, 0.60885f, 0.106084f, 0.394455f, 0.628407f, 0.943118f, 0.295768f, 0.94597f, 0.502776f, 0.282522f, 0.212961f, 0.592191f, 0.217716f, 0.84636f, 0.813798f, 0.330917f, 0.40851f, 0.811735f, 0.507795f, 0.192148f, 0.476361f, 0.696752f, 0.976219f, 0.0985664f, 0.130977f, 0.581818f, 0.972998f, 0.240433f, 0.321268f, 0.369408f, 0.209879f, 0.144105f, 0.31964f, 0.645313f, 0.437016f, 0.0419897f, 0.375873f, 0.0804421f, 0.0512266f, 0.0509438f, 0.697631f, 0.948479f, 0.532177f, 0.672666f, 0.733022f, 0.572237f, 0.14163f, 0.357718f, 0.604449f, 0.876126f, 0.409308f, 0.555404f, 0.428393f, 0.610674f, 0.0540597f, 0.103888f, 0.733858f, 0.499431f, 0.325702f, 0.33307f, 0.412439f, 0.536351f, 0.10531f, 0.465118f, 0.83234f, 0.0853166f, 0.787354f, 0.151916f, 0.813868f, 0.375883f, 0.668342f, 0.725351f, 0.610602f, 0.568374f, 0.750339f, 0.112482f, 0.847242f, 0.0451396f, 0.75429f, 0.959095f, 0.112375f, 0.235576f, 0.10334f, 0.259363f, 0.108213f, 0.284684f, 0.264342f, 0.543585f, 0.57483f, 0.617723f, 0.626695f, 0.932913f, 0.742072f, 0.2597f, 0.877427f, 0.377372f, 0.801181f, 0.846736f, 0.326486f, 0.903304f, 0.756728f, 0.68676f, 0.916784f, 0.615015f, 0.63057f, 0.196501f, 0.463048f, 0.636259f, 0.369163f, 0.754758f, 0.112082f, 0.112358f, 0.975391f, 0.87108f, 0.442962f, 0.051052f, 0.955866f, 0.965001f, 0.0991575f, 0.387232f, 0.763433f, 0.84831f, 0.422091f, 0.878841f, 0.334149f, 0.612291f, 0.34583f, 0.543017f, 0.980456f, 0.925603f, 0.114561f, 0.936859f, 0.343194f, 0.0879617f, 0.895599f, 0.196207f, 0.95123f, 0.0743102f, 0.471337f, 0.164966f, 0.738517f, 0.475985f, 0.493499f, 0.0356601f, 0.0216095f, 0.553481f, 0.301842f, 0.181291f, 0.223093f, 0.545786f, 0.771299f, 0.778807f, 0.157046f, 0.139492f, 0.111831f, 0.740367f, 0.398365f, 0.170494f, 0.581992f, 0.860194f, 0.213607f, 0.0784152f, 0.415623f, 0.100157f, 0.352112f, 0.675707f, 0.531062f, 0.183464f, 0.661215f, 0.300351f, 0.440552f, 0.585824f, 0.716819f, 0.631349f, 0.327658f, 0.405028f, 0.859839f, 0.104944f, 0.160611f, 0.0472555f, 0.734982f, 0.827174f, 0.0545748f, 0.893999f, 0.808877f, 0.679652f, 0.465044f, 0.750202f, 0.436215f, 0.822035f, 0.317308f, 0.262415f, 0.918618f, 0.863142f, 0.574615f, 0.660461f, 0.43724f, 0.909306f, 0.972506f, 0.723827f, 0.248622f, 0.163049f, 0.386939f, 0.106643f, 0.994871f, 0.855658f, 0.455771f, 0.164918f, 0.30611f, 0.908631f, 0.688893f, 0.7613f, 0.261632f, 0.00253999f, 0.271221f, 0.432736f, 0.635471f, 0.181422f, 0.380618f, 0.564341f, 0.434719f, 0.966238f, 0.708924f, 0.405715f, 0.703709f, 0.548696f, 0.12822f, 0.144822f, 0.428797f, 0.184346f, 0.338066f, 0.955262f, 0.300652f, 0.298374f, 0.316968f, 0.108116f, 0.823357f, 0.151366f, 0.50352f, 0.434533f, 0.0268823f, 0.233961f, 0.430651f, 0.169694f, 0.562766f, 0.420687f, 0.74611f, 0.366372f, 0.836339f, 0.530026f, 0.186737f, 0.938637f, 0.875394f, 0.425433f, 0.772448f, 0.667455f, 0.764654f, 0.0874587f, 0.743262f, 0.355979f, 0.436202f, 0.148673f, 0.201261f, 0.276859f, 0.553841f, 0.95306f, 0.090599f, 0.620788f, 0.109106f, 0.844815f, 0.115852f, 0.98086f, 0.996081f, 0.44014f, 0.341718f, 0.280627f, 0.642585f, 0.776772f, 0.0884373f, 0.524358f, 0.442389f, 0.571881f, 0.502865f, 0.14464f, 0.701467f, 0.68293f, 0.463895f, 0.0902899f, 0.816324f, 0.382356f, 0.473168f, 0.197288f, 0.390467f, 0.287006f, 0.895552f, 0.0384493f, 0.353009f, 0.908499f, 0.194202f, 0.671324f, 0.816639f, 0.0423796f, 0.546441f, 0.0342219f, 0.289165f, 0.797636f, 0.800629f, 0.0945803f, 0.40729f, 0.8805f, 0.728001f, 0.0598097f, 0.0407465f, 0.461957f, 0.968095f, 0.81558f, 0.288942f, 0.303981f, 0.0932752f, 0.225836f, 0.424889f, 0.477242f, 0.424551f, 0.214986f, 0.14967f, 0.839184f, 0.698299f, 0.245224f, 0.534186f, 0.609572f, 0.98554f, 0.264859f, 0.921869f, 0.515783f, 0.609405f, 0.666567f, 0.642494f, 0.454781f, 0.0514512f, 0.845558f, 0.462281f, 0.77345f, 0.517576f, 0.394532f, 0.298696f, 0.0637802f, 0.939939f, 0.897187f, 0.64845f, 0.654141f, 0.5422f, 0.378496f, 0.112206f, 0.0735552f, 0.791746f, 0.195783f, 0.189425f, 0.272562f, 0.16373f, 0.502485f, 0.938173f, 0.234381f, 0.0216515f, 0.098865f, 0.784636f, 0.327652f, 0.758766f, 0.239961f, 0.673782f, 0.215241f, 0.0551604f, 0.638107f, 0.199927f, 0.603767f, 0.68115f, 0.830862f, 0.786071f, 0.999128f, 0.707448f, 0.615595f, 0.579995f, 0.16302f, 0.849775f, 0.358486f, 0.809041f, 0.58912f, 0.815306f, 0.816334f, 0.837699f, 0.492808f, 0.371968f, 0.947081f, 0.299125f, 0.946594f, 0.00616334f, 0.495702f, 0.605294f, 0.240714f, 0.070094f, 0.621159f, 0.906691f, 0.116446f, 0.538016f, 0.558571f, 0.578832f, 0.694791f, 0.053463f, 0.386424f, 0.997221f, 0.625712f, 0.979621f, 0.413771f, 0.369701f, 0.906975f, 0.895063f, 0.542317f, 0.77892f, 0.195462f, 0.531385f, 0.29435f, 0.223329f, 0.989861f, 0.640537f, 0.435093f, 0.579481f, 0.403141f, 0.00389478f, 0.132103f, 0.644417f, 0.621178f, 0.954442f, 0.0298517f, 0.698377f, 0.0861056f, 0.511701f, 0.804046f, 0.925313f, 0.895933f, 0.852232f, 0.326931f, 0.249424f, 0.0391691f, 0.764963f, 0.307361f, 0.340186f, 0.860699f, 0.00334707f, 0.452865f, 0.180791f, 0.283536f, 0.625822f, 0.789606f, 0.478775f, 0.934851f, 0.462845f, 0.570526f, 0.244256f, 0.997985f, 0.28044f, 0.544024f, 0.18943f, 0.818593f, 0.185194f, 0.0231956f, 0.866088f, 0.926126f, 0.397896f, 0.332372f, 0.358482f, 0.0417129f, 0.984173f, 0.695827f, 0.332034f, 0.122609f, 0.203093f, 0.314443f, 0.437393f, 0.296373f, 0.509336f, 0.244107f, 0.234058f, 0.690037f, 0.284188f, 0.221039f, 0.361181f, 0.91032f, 0.547321f, 0.975328f, 0.068128f, 0.0801906f, 0.528644f, 0.524512f, 0.177174f, 0.894682f, 0.955069f, 0.552512f, 0.672156f, 0.198971f, 0.669977f, 0.418543f, 0.876825f, 0.414695f, 0.238743f, 0.275038f, 0.163796f, 0.509435f, 0.713545f, 0.173844f, 0.524071f, 0.0835044f, 0.824222f, 0.753913f, 0.0644402f, 0.900321f, 0.815974f, 0.836045f, 0.847429f, 0.471409f, 0.326379f, 0.629818f, 0.444759f, 0.350045f, 0.912832f, 0.884349f, 0.549902f, 0.242738f, 0.850416f, 0.0617729f, 0.140373f, 0.440812f, 0.72903f, 0.893515f, 0.207915f, 0.604921f, 0.480557f, 0.755408f, 0.0180358f, 0.154815f, 0.557772f, 0.487432f, 0.845579f, 0.00213903f, 0.645807f, 0.497907f, 0.563857f, 0.862445f, 0.180516f, 0.931488f, 0.737159f, 0.648239f, 0.0344065f, 0.538289f, 0.956338f, 0.850626f, 0.98302f, 0.586991f, 0.617682f, 0.914337f, 0.960085f, 0.893208f, 0.00806309f, 0.431762f, 0.757136f, 0.924223f, 0.158815f, 0.251725f, 0.569288f, 0.366741f, 0.00675499f, 0.292936f, 0.92097f, 0.94205f, 0.0956674f, 0.161022f, 0.701299f, 0.736288f, 0.0344687f, 0.241482f, 0.102898f, 0.277884f, 0.780629f, 0.744666f, 0.332055f, 0.388952f, 0.764887f, 0.264898f, 0.479994f, 0.123352f, 0.0341801f, 0.781711f, 0.88336f, 0.368756f, 0.196185f, 0.701533f, 0.425115f, 0.946277f, 0.280047f, 0.557773f, 0.0789337f, 0.958856f, 0.986791f, 0.202065f, 0.169607f, 0.395141f, 0.0409483f, 0.64695f, 0.492192f, 0.362814f, 0.81448f, 0.16285f, 0.296021f, 0.0499376f, 0.190696f, 0.63939f, 0.0335765f, 0.599953f, 0.902445f, 0.042125f, 0.284877f, 0.961642f, 0.403516f, 0.317403f, 0.466792f, 0.10303f, 0.79637f, 0.0808633f, 0.939454f, 0.371804f, 0.197288f, 0.996496f, 0.0102507f, 0.029832f, 0.538724f, 0.26238f, 0.14706f, 0.368093f, 0.268087f, 0.949004f, 0.266385f, 0.471935f, 0.391111f, 0.0526285f, 0.109101f, 0.197184f, 0.84688f, 0.909992f, 0.599527f, 0.384441f, 0.770833f, 0.693056f, 0.888264f, 0.435594f, 0.258062f, 0.459511f, 0.496008f, 0.236393f, 0.172671f, 0.467522f, 0.0280065f, 0.26842f, 0.311446f, 0.779192f, 0.989998f, 0.0225157f, 0.736742f, 0.40066f, 0.422172f, 0.789103f, 0.494358f, 0.880555f, 0.196643f, 0.615858f, 0.294632f, 0.214528f, 0.876536f, 0.103891f, 0.0429321f, 0.309648f, 0.87223f, 0.391974f, 0.69175f, 0.825653f, 0.274149f, 0.56648f, 0.893573f, 0.255601f, 0.217857f, 0.0863715f, 0.33166f, 0.545067f, 0.720115f, 0.308524f, 0.763465f, 0.898536f, 0.434902f, 0.580537f, 0.182824f, 0.221024f, 0.0161732f, 0.746002f, 0.262537f, 0.0377952f, 0.417375f, 0.529417f, 0.225243f, 0.78082f, 0.504494f, 0.628211f, 0.882423f, 0.577104f, 0.207672f, 0.6147f, 0.693291f, 0.0332987f, 0.91873f, 0.561389f, 0.835958f, 0.780318f, 0.287622f, 0.813036f, 0.259987f, 0.89446f, 0.403804f, 0.465006f, 0.89041f, 0.254563f, 0.0405819f, 0.308872f, 0.332119f, 0.398827f, 0.314813f, 0.00374371f, 0.0162247f, 0.943943f, 0.593976f, 0.503378f, 0.571029f, 0.518946f, 0.99204f, 0.301182f, 0.746012f, 0.205308f, 0.0311136f, 0.0600072f, 0.628276f, 0.0692109f, 0.328635f, 0.873159f, 0.692923f, 0.716217f, 0.522212f, 0.869064f, 0.581255f, 0.435035f, 0.376923f, 0.705279f, 0.181347f, 0.433562f, 0.741623f, 0.869501f, 0.0269738f, 0.366206f, 0.703613f, 0.198466f, 0.317634f, 0.301124f, 0.0647373f, 0.480298f, 0.282097f, 0.667181f, 0.134705f, 0.727296f, 0.357044f, 0.75068f, 0.695344f, 0.919044f, 0.232232f, 0.905678f, 0.929539f, 0.221667f, 0.859635f, 0.314313f, 0.0181896f, 0.207636f, 0.0894953f, 0.311575f, 0.720474f, 0.530752f, 0.0443453f, 0.438311f, 0.134759f, 0.954803f, 0.0332241f, 0.236766f, 0.871747f, 0.581201f, 0.268526f, 0.462712f, 0.298389f, 0.865605f, 0.185796f, 0.947704f, 0.143154f, 0.0242203f, 0.92274f, 0.70675f, 0.0165168f, 0.442303f, 0.833985f, 0.260064f, 0.975228f, 0.952075f, 0.377776f, 0.882164f, 0.0293832f, 0.640253f, 0.439204f, 0.280474f, 0.145732f, 0.581118f, 0.451207f, 0.255284f, 0.781568f, 0.324417f, 0.52736f, 0.416398f, 0.415699f, 0.111875f, 0.249532f, 0.440094f, 0.36148f, 0.344022f, 0.568508f, 0.380597f, 0.774403f, 0.522126f, 0.24831f, 0.656351f, 0.457071f, 0.559514f, 0.464628f, 0.212683f, 0.185925f, 0.191342f, 0.793873f, 0.694486f, 0.726579f, 0.449636f, 0.34599f, 0.914453f, 0.934441f, 0.297545f, 0.504448f, 0.947946f, 0.601821f, 0.561874f, 0.960582f, 0.354686f, 0.122419f, 0.109913f, 0.504334f, 0.343276f, 0.412616f, 0.348994f, 0.0366128f, 0.479268f, 0.864824f, 0.517947f, 0.0820124f, 0.305641f, 0.301882f, 0.0627611f, 0.415498f, 0.0371123f, 0.0915617f, 0.31759f, 0.326098f, 0.887276f, 0.317074f, 0.949069f, 0.790414f, 0.508064f, 0.856512f, 0.0717677f, 0.155067f, 0.458459f, 0.464344f, 0.858695f, 0.237248f, 0.424609f, 0.0409658f, 0.925551f, 0.932285f, 0.742581f, 0.974907f, 0.341533f, 0.980469f, 0.209856f, 0.555253f, 0.834628f, 0.939695f, 0.492141f, 0.533083f, 0.0770837f, 0.224348f, 0.85108f, 0.395584f, 0.734646f, 0.535954f, 0.675955f, 0.460483f, 0.779008f, 0.179741f, 0.992827f, 0.222586f, 0.236466f, 0.292186f, 0.141888f, 0.651591f, 0.264082f, 0.535197f, 0.725217f, 0.472508f, 0.315369f, 0.0442671f, 0.826404f, 0.664442f, 0.210318f, 0.781154f, 0.768779f, 0.130535f, 0.789821f, 0.0872829f, 0.000345506f, 0.989456f, 0.697414f, 0.243103f, 0.934252f, 0.392799f, 0.869709f, 0.983473f, 0.957166f, 0.298384f, 0.950966f, 0.945291f, 0.791484f, 0.611383f, 0.00773862f, 0.546973f, 0.743926f, 0.309783f, 0.593539f, 0.000150709f, 0.943393f, 0.814505f, 0.292044f, 0.556328f, 0.150154f, 0.952166f, 0.814909f, 0.502722f, 0.398686f, 0.328962f, 0.766985f, 0.920527f, 0.427594f, 0.659691f, 0.0124402f, 0.469223f, 0.830091f, 0.673413f, 0.413477f, 0.957588f, 0.749862f, 0.318045f, 0.387874f, 0.489802f, 0.790802f, 0.496226f, 0.977664f, 0.313017f, 0.512363f, 0.0335574f, 0.882417f, 0.986866f, 0.25166f, 0.773055f, 0.44442f, 0.156512f, 0.0503038f, 0.258552f, 0.717986f, 0.452502f, 0.495818f, 0.883668f, 0.882702f, 0.373779f, 0.356799f, 0.484667f, 0.812132f, 0.187131f, 0.157797f, 0.212676f, 0.26866f, 0.40355f, 0.824234f, 0.740606f, 0.306995f, 0.317752f, 0.423819f, 0.517614f, 0.196941f, 0.571482f, 0.925737f, 0.123843f, 0.129535f, 0.400391f, 0.491381f, 0.650341f, 0.72332f, 0.196269f, 0.630798f, 0.495517f, 0.622336f, 0.988314f, 0.0691449f, 0.450294f, 0.0676124f, 0.168269f, 0.207228f, 0.489192f, 0.6602f, 0.687884f, 0.0119344f, 0.70527f, 0.983733f, 0.982384f, 0.205083f, 0.861384f, 0.787663f, 0.742554f, 0.206209f, 0.212616f, 0.268012f, 0.390901f, 0.65883f, 0.68938f, 0.22444f, 0.0192429f, 0.388283f, 0.429813f, 0.556358f, 0.683561f, 0.386254f, 0.782344f, 0.588964f, 0.55072f, 0.748183f, 0.204753f, 0.096801f, 0.747743f, 0.441655f, 0.365034f, 0.845842f, 0.495637f, 0.728004f, 0.500585f, 0.998266f, 0.683184f, 0.529804f, 0.279395f, 0.0847966f, 0.911018f, 0.463934f, 0.923531f, 0.885698f, 0.104163f, 0.990858f, 0.436038f, 0.51552f, 0.408262f, 0.892803f, 0.0476812f, 0.0586898f, 0.864969f, 0.573018f, 0.609611f, 0.467167f, 0.670962f, 0.651588f, 0.45333f, 0.957268f, 0.633035f, 0.186001f, 0.494991f, 0.280636f, 0.772204f, 0.743438f, 0.347833f, 0.873078f, 0.753847f, 0.685593f, 0.744352f, 0.318947f, 0.000933816f, 0.106924f, 0.536107f, 0.639829f, 0.206119f, 0.290089f, 0.514712f, 0.274866f, 0.871336f, 0.802907f, 0.922184f, 0.118177f, 0.310597f, 0.953389f, 0.0724043f, 0.199281f, 0.386491f, 0.467763f, 0.430769f, 0.315458f, 0.0265129f, 0.467898f, 0.250111f, 0.804908f, 0.191977f, 0.645413f, 0.472067f, 0.135614f, 0.461252f, 0.734281f, 0.59659f, 0.825864f, 0.532474f, 0.998466f, 0.969667f, 0.331398f, 0.448755f, 0.00692174f, 0.153388f, 0.393273f, 0.313802f, 0.372704f, 0.190606f, 0.304895f, 0.671254f, 0.160957f, 0.800807f, 0.278713f, 0.436136f, 0.106469f, 0.0285365f, 0.897001f, 0.580738f, 0.370273f, 0.419885f, 0.868881f, 0.631461f, 0.549333f, 0.883746f, 0.397048f, 0.169611f, 0.149362f, 0.262929f, 0.866222f, 0.738744f, 0.553673f, 0.940457f, 0.507536f, 0.449506f, 0.715586f, 0.734003f, 0.949907f, 0.975064f, 0.962441f, 0.675457f, 0.78993f, 0.359971f, 0.308689f, 0.734226f, 0.754878f, 0.441995f, 0.58604f, 0.888753f, 0.541922f, 0.804717f, 0.939941f, 0.511089f, 0.059096f, 0.309463f, 0.186918f, 0.349145f, 0.377007f, 0.192307f, 0.250198f, 0.843252f, 0.868986f, 0.39968f, 0.238747f, 0.845026f, 0.511491f, 0.279175f, 0.386605f, 0.606426f, 0.254615f, 0.901591f, 0.0902917f, 0.0290092f, 0.847245f, 0.113106f, 0.0610486f, 0.920226f, 0.865475f, 0.392629f, 0.841488f, 0.207402f, 0.2355f, 0.686044f, 0.167998f, 0.979337f, 0.153475f, 0.757106f, 0.849751f, 0.63244f, 0.0188624f, 0.560794f, 0.992078f, 0.0909231f, 0.0885458f, 0.849227f, 0.996531f, 0.536453f, 0.446947f, 0.88522f, 0.364139f, 0.460961f, 0.474815f, 0.398555f, 0.864047f, 0.648844f, 0.986066f, 0.317278f, 0.45119f, 0.457284f, 0.862431f, 0.200464f, 0.586896f, 0.507887f, 0.478319f, 0.253593f, 0.142232f, 0.22894f, 0.790407f, 0.717963f, 0.45883f, 0.525727f, 0.610991f, 0.0606806f, 0.536986f, 0.593655f, 0.850723f, 0.305421f, 0.100182f, 0.527007f, 0.765736f, 0.858126f, 0.595021f, 0.967857f, 0.761493f, 0.696527f, 0.449307f, 0.932336f, 0.299135f, 0.358472f, 0.228388f, 0.242661f, 0.339309f, 0.805666f, 0.721293f, 0.560974f, 0.057952f, 0.432618f, 0.00532646f, 0.247144f, 0.933411f, 0.288424f, 0.65877f, 0.111568f, 0.52991f, 0.246124f, 0.816316f, 0.989767f, 0.425535f, 0.357157f, 0.804862f, 0.0871632f, 0.764356f, 0.150044f, 0.37453f, 0.117095f, 0.907181f, 0.746269f, 0.503772f, 0.876714f, 0.956733f, 0.850514f, 0.882735f, 0.209248f, 0.534389f, 0.836352f, 0.872055f, 0.264027f, 0.0105678f, 0.784881f, 0.523245f, 0.530977f, 0.249264f, 0.296541f, 0.313034f, 0.0419802f, 0.306476f, 0.748028f, 0.0510997f, 0.394418f, 0.0434473f, 0.41069f, 0.4958f, 0.82988f, 0.993508f, 0.0226086f, 0.536659f, 0.601497f, 0.278772f, 0.317662f, 0.683175f, 0.428438f, 0.955904f, 0.626727f, 0.707521f, 0.901637f, 0.531014f, 0.868496f, 0.566689f, 0.0401177f, 0.135806f, 0.468599f, 0.733522f, 0.673194f, 0.0231164f, 0.690726f, 0.727451f, 0.481481f, 0.190158f, 0.961606f, 0.270164f, 0.115293f, 0.0736417f, 0.187547f, 0.00130081f, 0.20917f, 0.529096f, 0.872191f, 0.168243f, 0.0367341f, 0.218131f, 0.368563f, 0.263263f, 0.960075f, 0.755443f, 0.925066f, 0.262938f, 0.964269f, 0.354926f, 0.382723f, 0.934509f, 0.769771f, 0.293814f, 0.228827f, 0.0643684f, 0.454316f, 0.968496f, 0.502272f, 0.89256f, 0.451724f, 0.410523f, 0.113414f, 0.435572f, 0.491274f, 0.150822f, 0.0316294f, 0.541724f, 0.785892f, 0.359348f, 0.453757f, 0.766495f, 0.749102f, 0.303961f, 0.367119f, 0.990696f, 0.454912f, 0.933072f, 0.0308887f, 0.486821f, 0.424341f, 0.731196f, 0.432225f, 0.992916f, 0.214123f, 0.644641f, 0.372599f, 0.951961f, 0.0972326f, 0.154543f, 0.866991f, 0.596344f, 0.758693f, 0.362703f, 0.185587f, 0.756834f, 0.0522437f, 0.406655f, 0.286283f, 0.624453f, 0.65098f, 0.126626f, 0.50958f, 0.676144f, 0.241151f, 0.704983f, 0.00092231f, 0.592649f, 0.45497f, 0.478202f, 0.944385f, 0.618972f, 0.660407f, 0.882134f, 0.598851f, 0.0721889f, 0.428745f, 0.0795186f, 0.148123f, 0.886525f, 0.162734f, 0.824951f, 0.683045f, 0.503343f, 0.589938f, 0.0723046f, 0.115081f, 0.0201089f, 0.322682f, 0.129508f, 0.618312f, 0.030028f, 0.806149f, 0.694088f, 0.109434f, 0.154758f, 2.56987e-05f, 0.204626f, 0.616414f, 0.226096f, 0.386395f, 0.779831f, 0.901758f, 0.163856f, 0.648934f, 0.338192f, 0.202123f, 0.5336f, 0.730557f, 0.558773f, 0.824843f, 0.727957f, 0.620088f, 0.878383f, 0.0985933f, 0.708119f, 0.643123f, 0.91529f, 0.79023f, 0.73863f, 0.954561f, 0.295152f, 0.589698f, 0.317382f, 0.60369f, 0.195049f, 0.898866f, 0.606234f, 0.194511f, 0.447969f, 0.322482f, 0.586575f, 0.249628f, 0.873322f, 0.594945f, 0.9835f, 0.64875f, 0.912699f, 0.456709f, 0.348595f, 0.595872f, 0.185971f, 0.086924f, 0.0262257f, 0.695916f, 0.941024f, 0.461552f, 0.323183f, 0.707817f, 0.253687f, 0.608315f, 0.477998f, 0.897206f, 0.653489f, 0.749276f, 0.393501f, 0.354142f, 0.854916f, 0.460109f, 0.41504f, 0.584033f, 0.952008f, 0.361548f, 0.784401f, 0.377392f, 0.20778f, 0.587108f, 0.689111f, 0.0389034f, 0.425034f, 0.385394f, 0.248345f, 0.380086f, 0.575475f, 0.638013f, 0.0801842f, 0.0997491f, 0.364944f, 0.599061f, 0.0702159f, 0.0402721f, 0.0991669f, 0.493616f, 0.412747f, 0.800816f, 0.758369f, 0.665841f, 0.902528f, 0.0418127f, 0.1759f, 0.483507f, 0.387907f, 0.8783f, 0.41027f, 0.462613f, 0.32364f, 0.18377f, 0.250224f, 0.278371f, 0.9717f, 0.500004f, 0.251009f, 0.769054f, 0.349166f, 0.512457f, 0.933079f, 0.463936f, 0.366296f, 0.000990404f, 0.654282f, 0.879606f, 0.564059f, 0.270697f, 0.806186f, 0.341294f, 0.777393f, 0.590548f, 0.978357f, 0.653695f, 0.707876f, 0.715257f, 0.499117f, 0.769642f, 0.018444f, 0.425349f, 0.191002f, 0.653968f, 0.892596f, 0.0685558f, 0.043615f, 0.69562f, 0.303121f, 0.0711234f, 0.614355f, 0.97748f, 0.155872f, 0.843808f, 0.283898f, 0.023926f, 0.798128f, 0.291579f, 0.512036f, 0.640579f, 0.0650972f, 0.865339f, 0.989509f, 0.820208f, 0.122347f, 0.905576f, 0.710012f, 0.472021f, 0.0729493f, 0.8676f, 0.351875f, 0.597197f, 0.923503f, 0.344575f, 0.00368959f, 0.101002f, 0.865642f, 0.417901f, 0.336183f, 0.403366f, 0.609777f, 0.229407f, 0.338873f, 0.92018f, 0.341668f, 0.177561f, 0.711885f, 0.721438f, 0.151257f, 0.897723f, 0.734261f, 0.828299f, 0.654796f, 0.610168f, 0.322614f, 0.057609f, 0.669868f, 0.0351103f, 0.497851f, 0.899341f, 0.659735f, 0.833629f, 0.247816f, 0.647905f, 0.818258f, 0.997715f, 0.784559f, 0.648556f, 0.283222f, 0.885833f, 0.00499132f, 0.187462f, 0.926025f, 0.48638f, 0.610984f, 0.58284f, 0.536159f, 0.789185f, 0.899492f, 0.38008f, 0.627457f, 0.375201f, 0.888226f, 0.723031f, 0.555612f, 0.649365f, 0.83337f, 0.0822123f, 0.740998f, 0.257561f, 0.0729339f, 0.515953f, 0.64114f, 0.827667f, 0.521557f, 0.628335f, 0.467915f, 0.0776531f, 0.362262f, 0.379132f, 0.280284f, 0.810736f, 0.361727f, 0.49232f, 0.689625f, 0.304187f, 0.627473f, 0.633657f, 0.794066f, 0.63248f, 0.210397f, 0.102277f, 0.928669f, 0.483447f, 0.40887f, 0.913735f, 0.483358f, 0.503764f, 0.254536f, 0.596166f, 0.143644f, 0.904753f, 0.0256079f, 0.756253f, 0.169432f, 0.0729975f, 0.109243f, 0.0309298f, 0.0890768f, 0.869929f, 0.756607f, 0.814741f, 0.150594f, 0.470673f, 0.498989f, 0.398265f, 0.94255f, 0.868611f, 0.461242f, 0.43474f, 0.621181f, 0.447873f, 0.952126f, 0.903815f, 0.324511f, 0.478995f, 0.682979f, 0.621209f, 0.292499f, 0.358295f, 0.129948f, 0.804466f, 0.0499845f, 0.0481898f, 0.782715f, 0.542998f, 0.765441f, 0.113682f, 0.134923f, 0.899975f, 0.155663f, 0.208583f, 0.484905f, 0.821416f, 0.268545f, 0.481221f, 0.584605f, 0.861309f, 0.920582f, 0.871126f, 0.269647f, 0.439819f, 0.126401f, 0.482138f, 0.625803f, 0.0798102f, 0.0392741f, 0.517811f, 0.426276f, 0.713428f, 0.287859f, 0.831379f, 0.464117f, 0.3917f, 0.574551f, 0.0105812f, 0.481456f, 0.513039f, 0.563318f, 0.552785f, 0.342518f, 0.384482f, 0.696738f, 0.945141f, 0.0719859f, 0.302028f, 0.604319f, 0.954776f, 0.36243f, 0.290512f, 0.504883f, 0.379147f, 0.125761f, 0.161326f, 0.591145f, 0.566471f, 0.217208f, 0.553199f, 0.667357f, 0.376792f, 0.607599f, 0.0254957f, 0.121186f, 0.763961f, 0.0768277f, 0.35534f, 0.838269f, 0.985063f, 0.357764f, 0.181454f, 0.141499f, 0.897183f, 0.286145f, 0.249903f, 0.334809f, 0.966785f, 0.149642f, 0.289421f, 0.916148f, 0.35175f, 0.317636f, 0.806016f, 0.190981f, 0.813306f, 0.395627f, 0.95738f, 0.0939752f, 0.361082f, 0.899597f, 0.486998f, 0.760254f, 0.15083f, 0.837766f, 0.444012f, 0.738797f, 0.678772f, 0.129165f, 0.3699f, 0.75069f, 0.466849f, 0.974521f, 0.732234f, 0.0783179f, 0.724613f, 0.218733f, 0.831013f, 0.583469f, 0.0475636f, 0.948548f, 0.522795f, 0.485984f, 0.409257f, 0.989019f, 0.260101f, 0.344105f, 0.58524f, 0.837142f, 0.623739f, 0.6157f, 0.85168f, 0.627927f, 0.0602272f, 0.505626f, 0.955254f, 0.570295f, 0.558829f, 0.600042f, 0.999514f, 0.833246f, 0.24374f, 0.0154709f, 0.848761f, 0.9958f, 0.72799f, 0.813976f, 0.325564f, 0.350278f, 0.466454f, 0.302844f, 0.890359f, 0.313658f, 0.823481f, 0.296992f, 0.956713f, 0.0910392f, 0.650355f, 0.557088f, 0.095005f, 0.352954f, 0.156921f, 0.309125f, 0.71187f, 0.141045f, 0.256612f, 0.310431f, 0.679947f, 0.431878f, 0.373703f, 0.0504158f, 0.0102907f, 0.974581f, 0.277101f, 0.864156f, 0.628683f, 0.67264f, 0.842547f, 0.160469f, 0.983212f, 0.103462f, 0.479975f, 0.32402f, 0.739311f, 0.379698f, 0.634078f, 0.997384f, 0.824819f, 0.541734f, 0.348484f, 0.725955f, 0.731188f, 0.642025f, 0.440999f, 0.0768537f, 0.129418f, 0.478026f, 0.132223f, 0.305538f, 0.201746f, 0.156575f, 0.633534f, 0.752542f, 0.904999f, 0.379745f, 0.880192f, 0.387398f, 0.712953f, 0.956166f, 0.913473f, 0.599241f, 0.685988f, 0.676363f, 0.49636f, 0.876042f, 0.226236f, 0.643089f, 0.833073f, 0.425287f, 0.218588f, 0.453172f, 0.301031f, 0.129325f, 0.672147f, 0.0501358f, 0.767502f, 0.791748f, 0.0583502f, 0.279158f, 0.931757f, 0.785566f, 0.347409f, 0.641288f, 0.524969f, 0.599637f, 0.84177f, 0.347914f, 0.0694182f, 0.564342f, 0.968f, 0.824233f, 0.578435f, 0.858182f, 0.00754457f, 0.187994f, 0.688498f, 0.556711f, 0.882394f, 0.801016f, 0.986133f, 0.656237f, 0.265303f, 0.681323f, 0.0731858f, 0.602838f, 0.385357f, 0.649846f, 0.139613f, 0.0904347f, 0.404407f, 0.207975f, 0.973413f, 0.701989f, 0.824314f, 0.0984482f, 0.679328f, 0.626865f, 0.269018f, 0.957835f, 0.842923f, 0.331784f, 0.412132f, 0.520471f, 0.497815f, 0.822525f, 0.871805f, 0.0733129f, 0.425953f, 0.796373f, 0.966112f, 0.0627229f, 0.959532f, 0.41307f, 0.965177f, 0.823462f, 0.12273f, 0.885688f, 0.33166f, 0.880389f, 0.706374f, 0.341835f, 0.689376f, 0.685831f, 0.771321f, 0.73638f, 0.141495f, 0.302706f, 0.354543f, 0.131411f, 0.635745f, 0.214079f, 0.527011f, 0.33498f, 0.218695f, 0.721317f, 0.4567f, 0.909037f, 0.300844f, 0.525485f, 0.767189f, 0.767813f, 0.240571f, 0.676688f, 0.95017f, 0.993843f, 0.74748f, 0.763925f, 0.975675f, 0.156042f, 0.297274f, 0.706146f, 0.720106f, 0.639694f, 0.232139f, 0.608569f, 0.513802f, 0.172265f, 0.462801f, 0.472826f, 0.424445f, 0.837643f, 0.488186f, 0.23021f, 0.803263f, 0.906617f, 0.402349f, 0.966051f, 0.0956306f, 0.220729f, 0.557124f, 0.220361f, 0.393405f, 0.773573f, 0.246708f, 0.505566f, 0.283299f, 0.772797f, 0.374605f, 0.734612f, 0.5373f, 0.281068f, 0.757695f, 0.218682f, 0.981331f, 0.599125f, 0.542024f, 0.428893f, 0.420057f, 0.118232f, 0.207046f, 0.65774f, 0.964914f, 0.858489f, 0.734383f, 0.369598f, 0.347372f, 0.784544f, 0.773473f, 0.869541f, 0.893491f, 0.362739f, 0.663225f, 0.860732f, 0.67147f, 0.952458f, 0.466423f, 0.387925f, 0.778971f, 0.114828f, 0.998257f, 0.0589432f, 0.616061f, 0.126458f, 0.849906f, 0.546542f, 0.297723f, 0.666959f, 0.419942f, 0.772989f, 0.247082f, 0.0619857f, 0.988765f, 0.970786f, 0.262429f, 0.856642f, 0.0921937f, 0.296052f, 0.673798f, 0.656831f, 0.956036f, 0.802563f, 0.113222f, 0.399848f, 0.292586f, 0.865429f, 0.609193f, 0.141084f, 0.177469f, 0.437117f, 0.905161f, 0.89846f, 0.389897f, 0.052486f, 0.697587f, 0.119383f, 0.395026f, 0.0976641f, 0.496683f, 0.7955f, 0.210444f, 0.279085f, 0.195578f, 0.520628f, 0.779125f, 0.394464f, 0.453638f, 0.574049f, 0.112393f, 0.778453f, 0.442345f, 0.888885f, 0.226023f, 0.360812f, 0.781228f, 0.788189f, 0.282583f, 0.685241f, 0.835446f, 0.524939f, 0.361392f, 0.540987f, 0.395676f, 0.566165f, 0.939502f, 0.955474f, 0.18314f, 0.3015f, 0.270143f, 0.659835f, 0.836446f, 0.292781f, 0.814734f, 0.532113f, 0.111528f, 0.459271f, 0.196421f, 0.787388f, 0.103804f, 0.870897f, 0.359717f, 0.585971f, 0.163043f, 0.451947f, 0.926129f, 0.789389f, 0.166518f, 0.00893984f, 0.415228f, 0.240198f, 0.116047f, 0.470002f, 0.218984f, 0.727727f, 0.398721f, 0.521073f, 0.158229f, 0.144604f, 0.761999f, 0.38401f, 0.432494f, 0.653375f, 0.0730347f, 0.616424f, 0.280337f, 0.862444f, 0.440583f, 0.559214f, 0.147057f, 0.704923f, 0.93255f, 0.263881f, 0.534977f, 0.920313f, 0.064911f, 0.106614f, 0.624643f, 0.555238f, 0.784854f, 0.727642f, 0.203985f, 0.826267f, 0.800398f, 0.904129f, 0.518111f, 0.605353f, 0.996529f, 0.118805f, 0.730681f, 0.419901f, 0.562658f, 0.871913f, 0.293172f, 0.764371f, 0.633763f, 0.569482f, 0.157068f, 0.353686f, 0.682644f, 0.593726f, 0.215397f, 0.144348f, 0.466125f, 0.649096f, 0.545312f, 0.0118634f, 0.483801f, 0.272915f, 0.337477f, 0.60647f, 0.443478f, 0.747968f, 0.219216f, 0.247628f, 0.632165f, 0.211532f, 0.316309f, 0.955708f, 0.795433f, 0.594182f, 0.365671f, 0.33438f, 0.286422f, 0.431039f, 0.809342f, 0.593367f, 0.959696f, 0.955307f, 0.31016f, 0.182294f, 0.299192f, 0.120918f, 0.929864f, 0.689391f, 0.23631f, 0.58615f, 0.886487f, 0.351416f, 0.457955f, 0.190829f, 0.156397f, 0.726705f, 0.297811f, 0.150887f, 0.057679f, 0.360501f, 0.403437f, 0.25916f, 0.10528f, 0.758308f, 0.72983f, 0.904402f, 0.813209f, 0.785291f, 0.704828f, 0.300872f, 0.76364f, 0.337292f, 0.656557f, 0.45731f, 0.485393f, 0.338694f, 0.405888f, 0.783928f, 0.603029f, 0.0763875f, 0.498216f, 0.0564534f, 0.744232f, 0.555828f, 0.584224f, 0.368689f, 0.592171f, 0.385448f, 0.0590442f, 0.567869f, 0.0232154f, 0.374745f, 0.513172f, 0.594496f, 0.961366f, 0.0157991f, 0.13877f, 0.711031f, 0.995987f, 0.231812f, 0.695821f, 0.702872f, 0.556626f, 0.705109f, 0.329319f, 0.493629f, 0.576941f, 0.449903f, 0.822009f, 0.168521f, 0.619943f, 0.017456f, 0.710251f, 0.310071f, 0.0651204f, 0.058773f, 0.365577f, 0.152726f, 0.917356f, 0.870767f, 0.660269f, 0.609751f, 0.0838286f, 0.804317f, 0.816216f, 0.485209f, 0.581226f, 0.524509f, 0.942802f, 0.329456f, 0.593995f, 0.322137f, 0.413573f, 0.54018f, 0.613874f, 0.845805f, 0.539607f, 0.0206375f, 0.528865f, 0.0821751f, 0.34753f, 0.910612f, 0.466336f, 0.838856f, 0.861694f, 0.0698929f, 0.672051f, 0.594492f, 0.728451f, 0.397881f, 0.00461097f, 0.702363f, 0.188952f, 0.939421f, 0.946213f, 0.960378f, 0.389982f, 0.520646f, 0.24928f, 0.29729f, 0.337122f, 0.690893f, 0.427248f, 0.188455f, 0.795957f, 0.474583f, 0.981236f, 0.151678f, 0.41763f, 0.165036f, 0.371617f, 0.235073f, 0.30582f, 0.133022f, 0.735801f, 0.451906f, 0.839734f, 0.668141f, 0.896027f, 0.981395f, 0.884464f, 0.0843179f, 0.671041f, 0.882248f, 0.653632f, 0.898526f, 0.365433f, 0.240294f, 0.775207f, 0.966018f, 0.557077f, 0.743962f, 0.677631f, 0.808168f, 0.574465f, 0.727681f, 0.380411f, 0.550759f, 0.321366f, 0.276032f, 0.788655f, 0.00279036f, 0.993586f, 0.980278f, 0.765003f, 0.725823f, 0.862131f, 0.0946915f, 0.0364604f, 0.340569f, 0.735472f, 0.571962f, 0.214603f, 0.595016f, 0.857064f, 0.874329f, 0.417231f, 0.582463f, 0.667877f, 0.197306f, 0.123092f, 0.884843f, 0.403445f, 0.440139f, 0.747906f, 0.93275f, 0.814713f, 0.80654f, 0.391511f, 0.360735f, 0.555696f, 0.765015f, 0.66295f, 0.575404f, 0.648329f, 0.500322f, 0.783604f, 0.21304f, 0.960552f, 0.980978f, 0.539858f, 0.13802f, 0.28033f, 0.39874f, 0.227902f, 0.209034f, 0.770591f, 0.301531f, 0.368787f, 0.801642f, 0.279324f, 0.907473f, 0.501665f, 0.307345f, 0.968106f, 0.933816f, 0.459697f, 0.770253f, 0.581576f, 0.0688806f, 0.259007f, 0.327849f, 0.178024f, 0.222708f, 0.912022f, 0.615995f, 0.102392f, 0.594242f, 0.749859f, 0.538833f, 0.968877f, 0.659977f, 0.461957f, 0.372547f, 0.0160606f, 0.228645f, 0.782572f, 0.405235f, 0.387843f, 0.914316f, 0.751925f, 0.236772f, 0.729338f, 0.561382f, 0.553663f, 0.725962f, 0.519571f, 0.440092f, 0.168168f, 0.206103f, 0.377336f, 0.334977f, 0.883353f, 0.216671f, 0.877449f, 0.838604f, 0.273019f, 0.597619f, 0.366431f, 0.915683f, 0.655653f, 0.252677f, 0.886238f, 0.542183f, 0.502111f, 0.608109f, 0.326259f, 0.0906759f, 0.679254f, 0.0147414f, 0.777385f, 0.00221018f, 0.241277f, 0.775484f, 0.347707f, 0.854678f, 0.636974f, 0.499864f, 0.161999f, 0.327853f, 0.635921f, 0.299185f, 0.874256f, 0.830407f, 0.735375f, 0.632697f, 0.906426f, 0.199595f, 0.273056f, 0.236413f, 0.32598f, 0.645958f, 0.801011f, 0.457271f, 0.985472f, 0.246888f, 0.421704f, 0.871138f, 0.884915f, 0.404577f, 0.391836f, 0.877224f, 0.847255f, 0.872369f, 0.969852f, 0.892759f, 0.400235f, 0.347586f, 0.161509f, 0.0347511f, 0.13587f, 0.455344f, 0.995971f, 0.712554f, 0.553124f, 0.106507f, 0.0318053f, 0.906824f, 0.555715f, 0.296352f, 0.0706357f, 0.446166f, 0.952881f, 0.586039f, 0.745597f, 0.888554f, 0.602956f, 0.515031f, 0.28764f, 0.0158423f, 0.316142f, 0.842837f, 0.154322f, 0.0279544f, 0.410253f, 0.306332f, 0.824045f, 0.919182f, 0.935183f, 0.0303386f, 0.397972f, 0.50727f, 0.832767f, 0.60966f, 0.26604f, 0.708126f, 0.610427f, 0.751626f, 0.777763f, 0.804541f, 0.249522f, 0.27554f, 0.88482f, 0.307588f, 0.345245f, 0.730903f, 0.978285f, 0.50753f, 0.9094f, 0.482313f, 0.296566f, 0.609479f, 0.57509f, 0.29013f, 0.691454f, 0.886938f, 0.0939114f, 0.841611f, 0.489405f, 0.910133f, 0.919384f, 0.145776f, 0.53278f, 0.960463f, 0.703907f, 0.735499f, 0.180398f, 0.744317f, 0.739894f, 0.974108f, 0.253742f, 0.10396f, 0.185484f, 0.309632f, 0.30132f, 0.453218f, 0.950699f, 0.171613f, 0.2543f, 0.431187f, 0.0848507f, 0.436987f, 0.698256f, 0.874196f, 0.86954f, 0.187222f, 0.394914f, 0.605215f, 0.419544f, 0.152479f, 0.199695f, 0.0773146f, 0.682431f, 0.502337f, 0.569457f, 0.709919f, 0.720315f, 0.444999f, 0.449921f, 0.914747f, 0.725205f, 0.0537083f, 0.206684f, 0.419841f, 0.149202f, 0.269791f, 0.181819f, 0.577072f, 0.591886f, 0.364795f, 0.953729f, 0.521686f, 0.581989f, 0.999322f, 0.636341f, 0.829721f, 0.874806f, 0.705226f, 0.795947f, 0.215506f, 0.0102638f, 0.0343296f, 0.800241f, 0.192067f, 0.484436f, 0.629007f, 0.780006f, 0.00131953f, 0.485003f, 0.942173f, 0.120313f, 0.341539f, 0.214798f, 0.188026f, 0.692592f, 0.713431f, 0.691049f, 0.630346f, 0.4873f, 0.571554f, 0.787812f, 0.331332f, 0.0872181f, 0.130659f, 0.394247f, 0.09801f, 0.695021f, 0.989159f, 0.837546f, 0.200426f, 0.240456f, 0.922907f, 0.270908f, 0.65915f, 0.158174f, 0.00334375f, 0.746574f, 0.851048f, 0.587035f, 0.0633085f, 0.913169f, 0.777554f, 0.236667f, 0.234207f, 0.17911f, 0.186361f, 0.903656f, 0.333015f, 0.875141f, 0.645586f, 0.318849f, 0.664855f, 0.878928f, 0.762863f, 0.977254f, 0.0172621f, 0.201766f, 0.862212f, 0.574036f, 0.244244f, 0.731959f, 0.40921f, 0.494382f, 0.193301f, 0.570127f, 0.151417f, 0.74944f, 0.126903f, 0.185286f, 0.453312f, 0.936876f, 0.327583f, 0.134956f, 0.50641f, 0.459594f, 0.424571f, 0.990207f, 0.064337f, 0.106534f, 0.526547f, 0.8594f, 0.332429f, 0.0639371f, 0.772424f, 0.826797f, 0.618949f, 0.772937f, 0.53056f, 0.00973798f, 0.39374f, 0.884778f, 0.245443f, 0.06919f, 0.594798f, 0.184776f, 0.364028f, 0.873345f, 0.580107f, 0.158233f, 0.0446554f, 0.69395f, 0.971424f, 0.574679f, 0.0773261f, 0.944376f, 0.12155f, 0.287307f, 0.176213f, 0.518498f, 0.232103f, 0.792641f, 0.297863f, 0.276815f, 0.561422f, 0.994374f, 0.191645f, 0.804779f, 0.981542f, 0.636961f, 0.643547f, 0.744312f, 0.604157f, 0.847172f, 0.579992f, 0.496372f, 0.858127f, 0.369366f, 0.205903f, 0.730069f, 0.479403f, 0.868542f, 0.136488f, 0.90674f, 0.529816f, 0.781855f, 0.0649976f, 0.668096f, 0.494856f, 0.0638234f, 0.360958f, 0.552289f, 0.238966f, 0.49305f, 0.190249f, 0.761841f, 0.407433f, 0.80929f, 0.555612f, 0.483822f, 0.471128f, 0.262473f, 0.321644f, 0.437509f, 0.671387f, 0.307411f, 0.121059f, 0.720705f, 0.932223f, 0.898239f, 0.599308f, 0.125401f, 0.368328f, 0.353016f, 0.328337f, 0.937212f, 0.514395f, 0.17328f, 0.359606f, 0.711442f, 0.232667f, 0.26698f, 0.491444f, 0.74731f, 0.930641f, 0.797538f, 0.863282f, 0.2168f, 0.502098f, 0.721903f, 0.553448f, 0.466544f, 0.303485f, 0.294104f, 0.183489f, 0.65499f, 0.802825f, 0.935142f, 0.984117f, 0.383918f, 0.188537f, 0.331175f, 0.550642f, 0.471258f, 0.762299f, 0.919209f, 0.745168f, 0.914067f, 0.0416888f, 0.0975676f, 0.0931216f, 0.607324f, 0.178878f, 0.12279f, 0.893096f, 0.690991f, 0.900308f, 0.800631f, 0.926555f, 0.711897f, 0.288533f, 0.332376f, 0.00905249f, 0.84123f, 0.960575f, 0.0319604f, 0.369096f, 0.767044f, 0.715626f, 0.525262f, 0.252224f, 0.565997f, 0.343859f, 0.158063f, 0.138894f, 0.689129f, 0.342809f, 0.183794f, 0.82614f, 0.991731f, 0.755848f, 0.0108939f, 0.714842f, 0.800775f, 0.560252f, 0.692211f, 0.694404f, 0.311101f, 0.135252f, 0.866966f, 0.38565f, 0.347737f, 0.106284f, 0.93013f, 0.586545f, 0.264152f, 0.446422f, 0.705464f, 0.185858f, 0.488937f, 0.251186f, 0.840572f, 0.14205f, 0.364426f, 0.469244f, 0.570762f, 0.552092f, 0.426965f, 0.841185f, 0.132047f, 0.375376f, 0.887949f, 0.541828f, 0.647123f, 0.560808f, 0.495915f, 0.0962973f, 0.0385913f, 0.553713f, 0.874003f, 0.474506f, 0.000777658f, 0.444272f, 0.884977f, 0.688203f, 0.212003f, 0.0802666f, 0.235195f, 0.397631f, 0.0417011f, 0.214066f, 0.579276f, 0.54287f, 0.344086f, 0.86551f, 0.583989f, 0.312997f, 0.515879f, 0.104037f, 0.110049f, 0.222868f, 0.293697f, 0.625381f, 0.010964f, 0.777401f, 0.701773f, 0.797638f, 0.0793351f, 0.820053f, 0.407289f, 0.226114f, 0.90848f, 0.0343324f, 0.45694f, 0.035028f, 0.641701f, 0.947505f, 0.699581f, 0.849871f, 0.547629f, 0.755379f, 0.0390888f, 0.311657f, 0.812492f, 0.020861f, 0.0942137f, 0.680174f, 0.176826f, 0.322858f, 0.687073f, 0.854345f, 0.381066f, 0.616549f, 0.749572f, 0.767614f, 0.528256f, 0.511663f, 0.221588f, 0.724295f, 0.511734f, 0.768513f, 0.51312f, 0.122633f, 0.522321f, 0.805992f, 0.776932f, 0.676213f, 0.208613f, 0.353855f, 0.76291f, 0.448692f, 0.498069f, 0.830893f, 0.913691f, 0.0222994f, 0.0578672f, 0.750894f, 0.926357f, 0.987307f, 0.976556f, 0.235189f, 0.516564f, 0.0200475f, 0.906917f, 0.350626f, 0.213812f, 0.283041f, 0.589167f, 0.68681f, 0.561795f, 0.992766f, 0.942088f, 0.310273f, 0.490602f, 0.949859f, 0.275675f, 0.522123f, 0.719316f, 0.370759f, 0.365939f, 0.598772f, 0.626904f, 0.0987906f, 0.526551f, 0.478697f, 0.559602f, 0.0273137f, 0.148764f, 0.271684f, 0.965364f, 0.363064f, 0.987974f, 0.650176f, 0.617937f, 0.00130275f, 0.402278f, 0.837153f, 0.736941f, 0.205603f, 0.449054f, 0.84464f, 0.451436f, 0.131468f, 0.891429f, 0.177098f, 0.36259f, 0.88528f, 0.223152f, 0.216514f, 0.213914f, 0.136098f, 0.75117f, 0.138026f, 0.0987427f, 0.792407f, 0.0353701f, 0.0906482f, 0.639022f, 0.622591f, 0.895374f, 0.26032f, 0.345129f, 0.0747699f, 0.738453f, 0.333885f, 0.919971f, 0.352252f, 0.578604f, 0.937149f, 0.144683f, 0.253752f, 0.256942f, 0.457853f, 0.471414f, 0.507352f, 0.892234f, 0.909228f, 0.00329278f, 0.0180677f, 0.796181f, 0.20146f, 0.142061f, 0.987358f, 0.76974f, 0.167349f, 0.143547f, 0.508355f, 0.822919f, 0.645006f, 0.571511f, 0.298048f, 0.460747f, 0.394257f, 0.501418f, 0.615513f, 0.6513f, 0.983713f, 0.326694f, 0.755208f, 0.0988431f, 0.0870775f, 0.0398203f, 0.249378f, 0.542663f, 0.732222f, 0.704023f, 0.435363f, 0.7424f, 0.901974f, 0.688849f, 0.0487533f, 0.445071f, 0.622934f, 0.3675f, 0.547532f, 0.197576f, 0.311719f, 0.00565676f, 0.819191f, 0.392192f, 0.819148f, 0.805763f, 0.294271f, 0.6616f, 0.427193f, 0.136726f, 0.601793f, 0.094568f, 0.911729f, 0.16542f, 0.0812021f, 0.805632f, 0.26551f, 0.0902784f, 0.308651f, 0.32682f, 0.215467f, 0.96553f, 0.789361f, 0.449022f, 0.445233f, 0.0265775f, 0.418994f, 0.151084f, 0.135968f, 0.92182f, 0.134002f, 0.434998f, 0.487732f, 0.642278f, 0.258272f, 0.539513f, 0.0268435f, 0.741964f, 0.540567f, 0.621808f, 0.408971f, 0.768853f, 0.570809f, 0.969586f, 0.282704f, 0.925872f, 0.325744f, 0.362651f, 0.833404f, 0.232724f, 0.403817f, 0.567664f, 0.952683f, 0.0419014f, 0.353897f, 0.191945f, 0.998043f, 0.159514f, 0.231205f, 0.275391f, 0.42408f, 0.178731f, 0.498255f, 0.362033f, 0.841557f, 0.636187f, 0.244842f, 0.813572f, 0.295401f, 0.197305f, 0.965915f, 0.608717f, 0.820573f, 0.0090073f, 0.478346f, 0.0721363f, 0.736803f, 0.923146f, 0.641174f, 0.985651f, 0.0365937f, 0.515331f, 0.473106f, 0.390553f, 0.252486f, 0.731916f, 0.374309f, 0.223908f, 0.637786f, 0.925047f, 0.526012f, 0.98548f, 0.924257f, 0.312522f, 0.133142f, 0.0482379f, 0.473875f, 0.128306f, 0.393488f, 0.679431f, 0.383353f, 0.603976f, 0.00586202f, 0.272987f, 0.797249f, 0.898166f, 0.445249f, 0.0574907f, 0.134751f, 0.616874f, 0.0232398f, 0.175256f, 0.321776f, 0.1898f, 0.449263f, 0.33701f, 0.10175f, 0.206535f, 0.10799f, 0.169666f, 0.462349f, 0.454415f, 0.392774f, 0.900612f, 0.192834f, 0.0137032f, 0.0178092f, 0.555685f, 0.224059f, 0.35258f, 0.887389f, 0.485591f, 0.617759f, 0.623354f, 0.340261f, 0.878144f, 0.891336f, 0.701189f, 0.880464f, 0.381086f, 0.00327111f, 0.108989f, 0.707695f, 0.90182f, 0.388077f, 0.789142f, 0.911373f, 0.666312f, 0.571874f, 0.865994f, 0.0116219f, 0.114747f, 0.870926f, 0.859643f, 0.00323219f, 0.0135644f, 0.823899f, 0.051973f, 0.264082f, 0.998878f, 0.0403321f, 0.846126f, 0.064427f, 0.163861f, 0.593141f, 0.748308f, 0.904944f, 0.282592f, 0.0527456f, 0.886154f, 0.626503f, 0.528129f, 0.230604f, 0.824467f, 0.140143f, 0.0196574f, 0.23524f, 0.69417f, 0.435249f, 0.630171f, 0.846594f, 0.654387f, 0.325503f, 0.979048f, 0.728364f, 0.192634f, 0.834208f, 0.0565809f, 0.804196f, 0.0184922f, 0.0137656f, 0.782126f, 0.147527f, 0.0799028f, 0.64633f, 0.237645f, 0.670488f, 0.422177f, 0.265002f, 0.65076f, 0.199112f, 0.0910186f, 0.816517f, 0.518889f, 0.6201f, 0.412025f, 0.492492f, 0.491252f, 0.985639f, 0.7657f, 0.150037f, 0.147065f, 0.0873867f, 0.872067f, 0.21046f, 0.911581f, 0.0925562f, 0.519009f, 0.969517f, 0.0459625f, 0.664883f, 0.762107f, 0.833484f, 0.668001f, 0.406106f, 0.0284692f, 0.356254f, 0.170324f, 0.927495f, 0.317833f, 0.00615591f, 0.56578f, 0.692096f, 0.248763f, 0.750471f, 0.405881f, 0.919707f, 0.977053f, 0.821874f, 0.0312805f, 0.471579f, 0.268082f, 0.880038f, 0.870717f, 0.963674f, 0.206997f, 0.415366f, 0.549987f, 0.846256f, 0.34677f, 0.20934f, 0.542081f, 0.112321f, 0.675948f, 0.518671f, 0.656701f, 0.621171f, 0.548739f, 0.837395f, 0.936235f, 0.273487f, 0.421024f, 0.145012f, 0.0126815f, 0.670202f, 0.970681f, 0.805192f, 0.501387f, 0.9467f, 0.290478f, 0.808476f, 0.931461f, 0.871901f, 0.611392f, 0.515823f, 0.583067f, 0.693718f, 0.584383f, 0.819427f, 0.946328f, 0.917942f, 0.47207f, 0.531398f, 0.0807021f, 0.767138f, 0.66715f, 0.642545f, 0.946657f, 0.216715f, 0.510254f, 0.654515f, 0.497081f, 0.48995f, 0.538192f, 0.201574f, 0.752296f, 0.391295f, 0.305656f, 0.20921f, 0.330178f, 0.984512f, 0.931774f, 0.769527f, 0.906174f, 0.284548f, 0.421696f, 0.819102f, 0.255651f, 0.544797f, 0.810979f, 0.912587f, 0.673852f, 0.750697f, 0.233697f, 0.35362f, 0.956389f, 0.959141f, 0.0190663f, 0.289421f, 0.317616f, 0.0699108f, 0.235855f, 0.784889f, 0.136121f, 0.486156f, 0.112423f, 0.363548f, 0.149246f, 0.175064f, 0.439234f, 0.801776f, 0.286258f, 0.728427f, 0.17595f, 0.307135f, 0.935157f, 0.749456f, 0.193305f, 0.368802f, 0.720708f, 0.338627f, 0.204435f, 0.865355f, 0.0702231f, 0.538829f, 0.389271f, 0.821794f, 0.508844f, 0.855184f, 0.206595f, 0.402728f, 0.306347f, 0.129643f, 0.750954f, 0.0773251f, 0.333561f, 0.37314f, 0.617978f, 0.144395f, 0.382954f, 0.704227f, 0.357421f, 0.129209f, 0.83736f, 0.975836f, 0.272759f, 0.780056f, 0.571226f, 0.540537f, 0.169283f, 0.071173f, 0.448437f, 0.343956f, 0.106477f, 0.787509f, 0.88849f, 0.0674257f, 0.572059f, 0.974853f, 0.937704f, 0.263151f, 0.61667f, 0.344633f, 0.351047f, 0.0186771f, 0.344398f, 0.19507f, 0.559431f, 0.583208f, 0.827275f, 0.0812181f, 0.383126f, 0.5464f, 0.570708f, 0.276859f, 0.901026f, 0.743717f, 0.721394f, 0.25876f, 0.892386f, 0.772171f, 0.0512278f, 0.51966f, 0.847713f, 0.897012f, 0.826788f, 0.00636873f, 0.211952f, 0.447471f, 0.951253f, 0.132729f, 0.739933f, 0.692215f, 0.152446f, 0.704046f, 0.103456f, 0.513915f, 0.728064f, 0.0417322f, 0.189512f, 0.181578f, 0.37114f, 0.862312f, 0.405194f, 0.00510079f, 0.178813f, 0.00954289f, 0.94835f, 0.298806f, 0.608421f, 0.667955f, 0.997134f, 0.663122f, 0.763772f, 0.185894f, 0.262087f, 0.974947f, 0.640075f, 0.898494f, 0.864845f, 0.960168f, 0.134398f, 0.971132f, 0.613015f, 0.486827f, 0.939965f, 0.3703f, 0.105103f, 0.0663184f, 0.372946f, 0.479501f, 0.105647f, 0.727137f, 0.399131f, 0.205576f, 0.384866f, 0.0618376f, 0.817596f, 0.0388573f, 0.594512f, 0.173804f, 0.855658f, 0.101565f, 0.366431f, 0.0515843f, 0.371371f, 0.722805f, 0.404299f, 0.590029f, 0.0486788f, 0.0769522f, 0.192199f, 0.89153f, 0.0824779f, 0.184488f, 0.317731f, 0.298764f, 0.524211f, 0.740081f, 0.0751576f, 0.677991f, 0.645256f, 0.821468f, 0.959768f, 0.664128f, 0.776426f, 0.760039f, 0.514726f, 0.0305994f, 0.270476f, 0.041064f, 0.541011f, 0.874955f, 0.961098f, 0.498787f, 0.714625f, 0.845608f, 0.679769f, 0.42589f, 0.0675676f, 0.150137f, 0.868572f, 0.918925f, 0.62686f, 0.765263f, 0.159211f, 0.0809829f, 0.54262f, 0.771211f, 0.447672f, 0.234558f, 0.277458f, 0.0216618f, 0.629838f, 0.701434f, 0.417866f, 0.896705f, 0.361485f, 0.0588967f, 0.807243f, 0.808105f, 0.143687f, 0.545155f, 0.792441f, 0.730585f, 0.376137f, 0.317132f, 0.673849f, 0.966338f, 0.841097f, 0.952571f, 0.580044f, 0.226831f, 0.946181f, 0.702304f, 0.334078f, 0.0722082f, 0.112592f, 0.116075f, 0.573995f, 0.972941f, 0.384045f, 0.591413f, 0.578233f, 0.0721871f, 0.746136f, 0.820278f, 0.423675f, 0.961072f, 0.561365f, 0.856365f, 0.651747f, 0.994307f, 0.0627695f, 0.612759f, 0.657777f, 0.147026f, 0.383492f, 0.604057f, 0.542221f, 0.57693f, 0.485087f, 0.96997f, 0.584556f, 0.0710188f, 0.53617f, 0.857877f, 0.300881f, 0.788797f, 0.882248f, 0.870584f, 0.647004f, 0.0800327f, 0.292343f, 0.696522f, 0.226362f, 0.736003f, 0.0775605f, 0.0155354f, 0.399078f, 0.46536f, 0.892267f, 0.321188f, 0.594121f, 0.0718052f, 0.32176f, 0.846072f, 0.33626f, 0.164579f, 0.049256f, 0.718731f, 0.517533f, 0.896032f, 0.582994f, 0.773891f, 0.515742f, 0.735114f, 0.192266f, 0.870132f, 0.211024f, 0.458395f, 0.0646748f, 0.816954f, 0.9889f, 0.747679f, 0.428774f, 0.0195346f, 0.139605f, 0.203366f, 0.103588f, 0.85924f, 0.0981775f, 0.221539f, 0.0128668f, 0.273743f, 0.222276f, 0.789723f, 0.948841f, 0.76955f, 0.096254f, 0.184291f, 0.86163f, 0.372266f, 0.0883018f, 0.940716f, 0.346417f, 0.376696f, 0.921643f, 0.206702f, 0.828796f, 0.209551f, 0.811755f, 0.789655f, 0.463534f, 0.785495f, 0.582792f, 0.08772f, 0.960717f, 0.41261f, 0.541069f, 0.560536f, 0.160356f, 0.216015f, 0.722684f, 0.650591f, 0.643378f, 0.821075f, 0.245157f, 0.206439f, 0.391602f, 0.97929f, 0.826906f, 0.202789f, 0.0945328f, 0.348373f, 0.623106f, 0.886295f, 0.101004f, 0.438883f, 0.512111f, 0.640436f, 0.316134f, 0.0976838f, 0.775334f, 0.860079f, 0.430115f, 0.209609f, 0.454237f, 0.531859f, 0.00843881f, 0.424001f, 0.349336f, 0.779242f, 0.208718f, 0.311589f, 0.149421f, 0.414515f, 0.877802f, 0.928613f, 0.180454f, 0.161653f, 0.393545f, 0.606784f, 0.744265f, 0.835414f, 0.326639f, 0.533545f, 0.0654361f, 0.738186f, 0.917834f, 0.151804f, 0.515367f, 0.58829f, 0.00394297f, 0.962013f, 0.137931f, 0.383815f, 0.915434f, 0.014898f, 0.830232f, 0.965526f, 0.309276f, 0.65653f, 0.650565f, 0.095314f, 0.527773f, 0.181954f, 0.122552f, 0.35269f, 0.472954f, 0.0123366f, 0.432987f, 0.284771f, 0.870714f, 0.204394f, 0.715494f, 0.421107f, 0.76778f, 0.353974f, 0.645342f, 0.285393f, 0.87628f, 0.0517254f, 0.470937f, 0.417002f, 0.650161f, 0.949794f, 0.30027f, 0.666194f, 0.682279f, 0.526796f, 0.508713f, 0.91281f, 0.0628552f, 0.113695f, 0.912997f, 0.769714f, 0.857324f, 0.313152f, 0.664986f, 0.21166f, 0.247659f, 0.237378f, 0.727705f, 0.200328f, 0.305774f, 0.203644f, 0.822602f, 0.37086f, 0.232025f, 0.695365f, 0.270604f, 0.319389f, 0.193718f, 0.682487f, 0.359624f, 0.750914f, 0.825571f, 0.927503f, 0.764489f, 0.84035f, 0.113934f, 0.0500237f, 0.926019f, 0.56567f, 0.616827f, 0.23388f, 0.473759f, 0.70013f, 0.974772f, 0.169055f, 0.10647f, 0.826032f, 0.906048f, 0.0714178f, 0.987559f, 0.274953f, 0.128556f, 0.700137f, 0.0632663f, 0.92487f, 0.738529f, 0.406588f, 0.284953f, 0.311487f, 0.756152f, 0.861598f, 0.61967f, 0.288971f, 0.309857f, 0.579817f, 0.457184f, 0.348044f, 0.388976f, 0.736399f, 0.864035f, 0.890982f, 0.274802f, 0.22692f, 0.422194f, 0.826935f, 0.314869f, 0.0339264f, 0.0421313f, 0.177218f, 0.0207811f, 0.132176f, 0.286861f, 0.823502f, 0.0474397f, 0.807458f, 0.868916f, 0.362884f, 0.993984f, 0.419491f, 0.660039f, 0.99099f, 0.599047f, 0.877648f, 0.344249f, 0.113648f, 0.210306f, 0.491341f, 0.956818f, 0.437145f, 0.658771f, 0.750698f, 0.324197f, 0.718631f, 0.584393f, 0.055116f, 0.0249433f, 0.521817f, 0.777152f, 0.757824f, 0.150538f, 0.0276715f, 0.0475303f, 0.996481f, 0.828652f, 0.939678f, 0.840537f, 0.279091f, 0.328291f, 0.200324f, 0.352818f, 0.581722f, 0.419725f, 0.403519f, 0.49856f, 0.768156f, 0.67908f, 0.520272f, 0.778047f, 0.933585f, 0.548489f, 0.357608f, 0.251649f, 0.611211f, 0.728919f, 0.525709f, 0.135838f, 0.603606f, 0.625682f, 0.0136436f, 0.156557f, 0.243296f, 0.0818856f, 0.856759f, 0.173989f, 0.231058f, 0.5472f, 0.126285f, 0.720134f, 0.758737f, 0.679699f, 0.915199f, 0.826776f, 0.219521f, 0.584993f, 0.241556f, 0.783745f, 0.202263f, 0.793945f, 0.271308f, 0.577369f, 0.548968f, 0.335643f, 0.444673f, 0.473328f, 0.651202f, 0.631931f, 0.587115f, 0.735795f, 0.601255f, 0.961266f, 0.339463f, 0.232631f, 0.922583f, 0.292956f, 0.35933f, 0.853628f, 0.306667f, 0.00139812f, 0.854761f, 0.25882f, 0.713127f, 0.947542f, 0.293397f, 0.404635f, 0.117932f, 0.122836f, 0.583413f, 0.809211f, 0.195561f, 0.967682f, 0.705693f, 0.633366f, 0.383304f, 0.955578f, 0.0568998f, 0.879834f, 0.654029f, 0.531025f, 0.54895f, 0.37417f, 0.536177f, 0.466993f, 0.480903f, 0.663043f, 0.389677f, 0.169098f, 0.643039f, 0.532917f, 0.456419f, 0.893383f, 0.713274f, 0.802183f, 0.648224f, 0.00211824f, 0.791559f, 0.338353f, 0.345956f, 0.285798f, 0.474201f, 0.665453f, 0.540921f, 0.0428913f, 0.862996f, 0.750627f, 0.275932f, 0.709712f, 0.524933f, 0.757441f, 0.536971f, 0.629938f, 0.223009f, 0.839669f, 0.961988f, 0.0560968f, 0.011461f, 0.11266f, 0.141584f, 0.918288f, 0.622703f, 0.802097f, 0.843312f, 0.590929f, 0.403981f, 0.648432f, 0.517367f, 0.930954f, 0.720151f, 0.242404f, 0.337773f, 0.93929f, 0.243685f, 0.400477f, 0.928123f, 0.635857f, 0.815884f, 0.320734f, 0.389107f, 0.0263945f, 0.240817f, 0.00669968f, 0.297484f, 0.458402f, 0.700029f, 0.727746f, 0.557621f, 0.171227f, 0.869515f, 0.868918f, 0.621846f, 0.921996f, 0.997787f, 0.425811f, 0.253914f, 0.550426f, 0.9278f, 0.31154f, 0.313836f, 0.566579f, 0.942595f, 0.39588f, 0.800495f, 0.684254f, 0.547619f, 0.113869f, 0.69799f, 0.854356f, 0.78815f, 0.939179f, 0.640633f, 0.395235f, 0.832261f, 0.0404723f, 0.221356f, 0.183182f, 0.654481f, 0.149301f, 0.757693f, 0.603265f, 0.0838338f, 0.29521f, 0.314195f, 0.533095f, 0.10218f, 0.0232758f, 0.855926f, 0.579563f, 0.914892f, 0.464866f, 0.844169f, 0.152526f, 0.672769f, 0.502728f, 0.974392f, 0.570655f, 0.655723f, 0.59724f, 0.614872f, 0.199059f, 0.605251f, 0.186892f, 0.0984888f, 0.494894f, 0.695916f, 0.0597618f, 0.759769f, 0.230111f, 0.563326f, 0.0667818f, 0.620895f, 0.646685f, 0.940375f, 0.84536f, 0.114677f, 0.608223f, 0.142101f, 0.420423f, 0.252474f, 0.0604144f, 0.875979f, 0.905167f, 0.0265054f, 0.466251f, 0.75565f, 0.0740227f, 0.877662f, 0.650452f, 0.92081f, 0.3777f, 0.626005f, 0.907778f, 0.516238f, 0.611419f, 0.226706f, 0.371777f, 0.376579f, 0.966798f, 0.682201f, 0.506406f, 0.0761719f, 0.930662f, 0.678035f, 0.7321f, 0.353314f, 0.937612f, 0.957416f, 0.239887f, 0.981352f, 0.744812f, 0.154989f, 0.950178f, 0.958441f, 0.408084f, 0.295179f, 0.464794f, 0.949799f, 0.469583f, 0.362328f, 0.723564f, 0.902623f, 0.300571f, 0.613874f, 0.503863f, 0.338771f, 0.778864f, 0.781723f, 0.780094f, 0.870503f, 0.565277f, 0.146562f, 0.220441f, 0.0403779f, 0.570337f, 0.525284f, 0.813142f, 0.604706f, 0.774011f, 0.463355f, 0.404553f, 0.707355f, 0.628562f, 0.204487f, 0.164525f, 0.0826636f, 0.692862f, 0.719929f, 0.365481f, 0.786214f, 0.694265f, 0.0199902f, 0.586621f, 0.267635f, 0.972709f, 0.757734f, 0.602918f, 0.143402f, 0.414592f, 0.125973f, 0.287903f, 0.958884f, 0.960068f, 0.0520962f, 0.0517856f, 0.8543f, 0.704178f, 0.0884781f, 0.271183f, 0.423453f, 0.903875f, 0.881974f, 0.957884f, 0.443705f, 0.922107f, 0.265558f, 0.17788f, 0.981575f, 0.161273f, 0.678772f, 0.385417f, 0.252879f, 0.0682349f, 0.249464f, 0.873124f, 0.849096f, 0.947327f, 0.678964f, 0.777931f, 0.816525f, 0.0929126f, 0.108118f, 0.449243f, 0.899974f, 0.0665108f, 0.5858f, 0.531323f, 0.927827f, 0.0103511f, 0.0709703f, 0.98223f, 0.142706f, 0.842133f, 0.911505f, 0.504504f, 0.110272f, 0.692185f, 0.269672f, 0.0712576f, 0.187133f, 0.619414f, 0.961262f, 0.854949f, 0.493323f, 0.351446f, 0.128194f, 0.0557344f, 0.653307f, 0.130216f, 0.988166f, 0.253008f, 0.152657f, 0.88042f, 0.120014f, 0.798364f, 0.0106696f, 0.67923f, 0.251691f, 0.701816f, 0.527149f, 0.52756f, 0.0415346f, 0.383856f, 0.00619447f, 0.389934f, 0.875241f, 0.501905f, 0.906452f, 0.723437f, 0.664307f, 0.360348f, 0.312127f, 0.366683f, 0.720471f, 0.83222f, 0.0103533f, 0.519401f, 0.257593f, 0.302394f, 0.207028f, 0.568188f, 0.316302f, 0.0292051f, 0.34822f, 0.15207f, 0.83051f, 0.379777f, 0.2471f, 0.114589f, 0.331163f, 0.185262f, 0.573429f, 0.0430788f, 0.363802f, 0.840727f, 0.353224f, 0.609202f, 0.64672f, 0.706685f, 0.504047f, 0.820693f, 0.801658f, 0.0572598f, 0.637391f, 0.191445f, 0.267491f, 0.854911f, 0.0953261f, 0.852589f, 0.716014f, 0.822446f, 0.512768f, 0.352639f, 0.0350068f, 0.774418f, 0.119878f, 0.841299f, 0.206156f, 0.497147f, 0.655733f, 0.0179589f, 0.837417f, 0.269018f, 0.104988f, 0.695914f, 0.633118f, 0.245564f, 0.636497f, 0.201487f, 0.0914673f, 0.493446f, 0.263571f, 0.729389f, 0.722021f, 0.0341174f, 0.308849f, 0.518817f, 0.00421491f, 0.149905f, 0.197745f, 0.0727395f, 0.680185f, 0.734017f, 0.626194f, 0.853396f, 0.983469f, 0.888025f, 0.643226f, 0.688728f, 0.0733777f, 0.751326f, 0.0737934f, 0.815835f, 0.434945f, 0.0172566f, 0.764255f, 0.677955f, 0.673818f, 0.831331f, 0.535208f, 0.500875f, 0.215157f, 0.985641f, 0.443511f, 0.416833f, 0.484668f, 0.0193438f, 0.573345f, 0.225457f, 0.927377f, 0.0517498f, 0.643728f, 0.660206f, 0.39357f, 0.643083f, 0.775607f, 0.542725f, 0.079272f, 0.0208061f, 0.390891f, 0.671967f, 0.331133f, 0.25388f, 0.896223f, 0.645433f, 0.799778f, 0.797972f, 0.488416f, 0.156987f, 0.845106f, 0.285015f, 0.770429f, 0.372185f, 0.728626f, 0.736244f, 0.118279f, 0.550658f, 0.30722f, 0.561361f, 0.886628f, 0.923549f, 0.304531f, 0.218098f, 0.394841f, 0.0267663f, 0.242774f, 0.258786f, 0.244238f, 0.117854f, 0.0932354f, 0.2854f, 0.464496f, 0.00752329f, 0.429269f, 0.273578f, 0.712826f, 0.616639f, 0.511301f, 0.347792f, 0.356546f, 0.152697f, 0.609434f, 0.953238f, 0.723729f, 0.632691f, 0.907658f, 0.0527546f, 0.707755f, 0.419546f, 0.535719f, 0.872594f, 0.0125693f, 0.0043075f, 0.130423f, 0.895473f, 0.788803f, 0.490615f, 0.147407f, 0.132436f, 0.680474f, 0.0769968f, 0.0233969f, 0.22011f, 0.0224425f, 0.411541f, 0.0301846f, 0.165329f, 0.755186f, 0.301133f, 0.937698f, 0.450628f, 0.49429f, 0.221952f, 0.659716f, 0.635105f, 0.322943f, 0.108761f, 0.63984f, 0.0847122f, 0.355704f, 0.915998f, 0.910214f, 0.684879f, 0.759497f, 0.364458f, 0.50224f, 0.701672f, 0.494477f, 0.516754f, 0.505819f, 0.677254f, 0.44494f, 0.093918f, 0.0450103f, 0.470969f, 0.61147f, 0.142336f, 0.20379f, 0.252378f, 0.701415f, 0.41394f, 0.389155f, 0.575148f, 0.0904997f, 0.160174f, 0.442228f, 0.335517f, 0.606848f, 0.491457f, 0.741488f, 0.904751f, 0.816057f, 0.946159f, 0.945805f, 0.967881f, 0.8091f, 0.835975f, 0.380987f, 0.868559f, 0.345182f, 0.899446f, 0.0734777f, 0.332584f, 0.212357f, 0.546893f, 0.294194f, 0.0126306f, 0.21435f, 0.0615077f, 0.518999f, 0.758815f, 0.564635f, 0.499624f, 0.644529f, 0.220087f, 0.171863f, 0.147525f, 0.540522f, 0.00824396f, 0.227479f, 0.977094f, 0.839567f, 0.216683f, 0.354336f, 0.185727f, 0.868563f, 0.750004f, 0.724345f, 0.470594f, 0.521224f, 0.190473f, 0.683208f, 0.528662f, 0.461864f, 0.56832f, 0.952714f, 0.712739f, 0.546274f, 0.0122462f, 0.275508f, 0.918051f, 0.526557f, 0.681236f, 0.398984f, 0.63048f, 0.354933f, 0.403561f, 0.101648f, 0.0562702f, 0.241833f, 0.592405f, 0.421249f, 0.657693f, 0.0846664f, 0.234533f, 0.0396919f, 0.474402f, 0.489025f, 0.543942f, 0.0897639f, 0.580506f, 0.289577f, 0.0660818f, 0.0762375f, 0.628673f, 0.506282f, 0.0681379f, 0.0899876f, 0.796152f, 0.818178f, 0.16779f, 0.790892f, 0.043165f, 0.414121f, 0.99349f, 0.684195f, 0.311252f, 0.302221f, 0.675541f, 0.270056f, 0.959073f, 0.326282f, 0.664505f, 0.559604f, 0.0952867f, 0.551741f, 0.0928987f, 0.561517f, 0.407526f, 0.937794f, 0.303156f, 0.4952f, 0.705503f, 0.537706f, 0.635268f, 0.5738f, 0.94522f, 0.322591f, 0.3247f, 0.529497f, 0.757241f, 0.321749f, 0.142469f, 0.882844f, 0.573009f, 0.116535f, 0.523637f, 0.565337f, 0.513183f, 0.103523f, 0.879514f, 0.144516f, 0.619534f, 0.919028f, 0.341362f, 0.888068f, 0.772503f, 0.723993f, 0.411224f, 0.541629f, 0.256347f, 0.0795694f, 0.746589f, 0.519741f, 0.377331f, 0.616379f, 0.839363f, 0.337203f, 0.0567739f, 0.9393f, 0.0770384f, 0.632138f, 0.186337f, 0.880371f, 0.85753f, 0.247797f, 0.289247f, 0.961378f, 0.129725f, 0.983914f, 0.050808f, 0.437132f, 0.226872f, 0.815869f, 0.595999f, 0.746545f, 0.549781f, 0.987117f, 0.0934909f, 0.126796f, 0.64447f, 0.718189f, 0.048991f, 0.611927f, 0.686634f, 0.100763f, 0.742385f, 0.0734721f, 0.97888f, 0.024929f, 0.815125f, 0.45628f, 0.107423f, 0.941999f, 0.522722f, 0.273253f, 0.0154277f, 0.730733f, 0.578584f, 0.364589f, 0.857841f, 0.901476f, 0.0449603f, 0.33454f, 0.828717f, 0.153718f, 0.539485f, 0.309033f, 0.384265f, 0.924793f, 0.545885f, 0.702045f, 0.359185f, 0.383262f, 0.539557f, 0.691854f, 0.471785f, 0.853779f, 0.857287f, 0.0927615f, 0.60401f, 0.0880085f, 0.621144f, 0.506072f, 0.440031f, 0.737594f, 0.917021f, 0.799029f, 0.666887f, 0.186601f, 0.714612f, 0.366976f, 0.550683f, 0.733676f, 0.0375142f, 0.967885f, 0.252707f, 0.707691f, 0.115038f, 0.225648f, 0.467573f, 0.958789f, 0.881286f, 0.17738f, 0.290469f, 0.295604f, 0.413997f, 0.637772f, 0.727194f, 0.330566f, 0.627053f, 0.583289f, 0.740741f, 0.773945f, 0.342496f, 0.533862f, 0.870174f, 0.989627f, 0.873875f, 0.561373f, 0.441546f, 0.708051f, 0.268613f, 0.26053f, 0.509849f, 0.507627f, 0.98207f, 0.684085f, 0.181028f, 0.906017f, 0.00216948f, 0.336878f, 0.597817f, 0.51993f, 0.249721f, 0.0256173f, 0.208029f, 0.143804f, 0.611499f, 0.32617f, 0.7734f, 0.0544934f, 0.254328f, 0.180442f, 0.370125f, 0.870335f, 0.224201f, 0.451518f, 0.387688f, 0.957677f, 0.622975f, 0.8907f, 0.303326f, 0.0985096f, 0.895284f, 0.489867f, 0.806726f, 0.884398f, 0.277065f, 0.0636961f, 0.398198f, 0.0958202f, 0.312547f, 0.964302f, 0.757456f, 0.892549f, 0.256111f, 0.0147848f, 0.241539f, 0.859771f, 0.925692f, 0.824503f, 0.601704f, 0.447839f, 0.512976f, 0.19286f, 0.147443f, 0.0169463f, 0.979687f, 0.567411f, 0.827278f, 0.0896635f, 0.716312f, 0.772048f, 0.362417f, 0.405062f, 0.916391f, 0.962836f, 0.118004f, 0.388326f, 0.783519f, 0.0244739f, 0.781859f, 0.433875f, 0.986643f, 0.282539f, 0.00296915f, 0.141867f, 0.126083f, 0.0856213f, 0.620482f, 0.241517f, 0.441718f, 0.133953f, 0.602742f, 0.119222f, 0.0663478f, 0.812402f, 0.208449f, 0.233881f, 0.865819f, 0.366654f, 0.154105f, 0.415295f, 0.721995f, 0.577181f, 0.390623f, 0.0315853f, 0.738421f, 0.980721f, 0.573123f, 0.0620009f, 0.524203f, 0.321561f, 0.955075f, 0.256743f, 0.00204561f, 0.953667f, 0.472738f, 0.0420401f, 0.392787f, 0.259279f, 0.730203f, 0.997399f, 0.254064f, 0.103841f, 0.00265456f, 0.874534f, 0.593939f, 0.983618f, 0.5476f, 0.0546917f, 0.0322818f, 0.250248f, 0.304583f, 0.311665f, 0.696452f, 0.329408f, 0.994201f, 0.409265f, 0.00786796f, 0.781897f, 0.212029f, 0.24925f, 0.644273f, 0.0803339f, 0.528839f, 0.964255f, 0.920708f, 0.535481f, 0.900399f, 0.357512f, 0.975778f, 0.838073f, 0.497157f, 0.273335f, 0.966203f, 0.791596f, 0.688788f, 0.0249902f, 0.94414f, 0.310898f, 0.423375f, 0.388014f, 0.927173f, 0.865875f, 0.851401f, 0.387537f, 0.206307f, 0.256625f, 0.912294f, 0.481787f, 0.601942f, 0.0410598f, 0.903484f, 0.68312f, 0.748168f, 0.920237f, 0.793257f, 0.152311f, 0.594561f, 0.656997f, 0.69248f, 0.69695f, 0.972571f, 0.543518f, 0.879487f, 0.923869f, 0.091676f, 0.134122f, 0.912097f, 0.707876f, 0.0427013f, 0.087932f, 0.260906f, 0.43408f, 0.526185f, 0.33047f, 0.798255f, 0.647453f, 0.368317f, 0.78966f, 0.767112f, 0.464327f, 0.348322f, 0.528336f, 0.867542f, 0.162588f, 0.335524f, 0.154495f, 0.959609f, 0.817976f, 0.108975f, 0.715679f, 0.976916f, 0.102865f, 0.156351f, 0.361452f, 0.237886f, 0.421522f, 0.620469f, 0.272403f, 0.0409431f, 0.269093f, 0.810988f, 0.643812f, 0.222394f, 0.651189f, 0.900043f, 0.938994f, 0.488929f, 0.0489833f, 0.999099f, 0.721957f, 0.227903f, 0.0947337f, 0.0465675f, 0.274118f, 0.436387f, 0.495401f, 0.27126f, 0.348366f, 0.869134f, 0.569686f, 0.869595f, 0.962246f, 0.287962f, 0.837559f, 0.119458f, 0.915843f, 0.669699f, 0.172183f, 0.935518f, 0.782555f, 0.645365f, 0.881284f, 0.822506f, 0.5936f, 0.75008f, 0.73816f, 0.961731f, 0.102539f, 0.18431f, 0.747774f, 0.123972f, 0.0437521f, 0.203027f, 0.585387f, 0.415051f, 0.121672f, 0.647093f, 0.880603f, 0.105394f, 0.882614f, 0.718948f, 0.541158f, 0.974741f, 0.045262f, 0.127256f, 0.373407f, 0.10848f, 0.885007f, 0.309382f, 0.359374f, 0.0171696f, 0.455111f, 0.400381f, 0.13168f, 0.894455f, 0.614822f, 0.2029f, 0.63639f, 0.587735f, 0.800371f, 0.705013f, 0.357067f, 0.598852f, 0.418176f, 0.920631f, 0.133357f, 0.641344f, 0.123774f, 0.549626f, 0.746176f, 0.41312f, 0.544176f, 0.139924f, 0.186859f, 0.815729f, 0.141528f, 0.799317f, 0.723028f, 0.00646469f, 0.306431f, 0.193953f, 0.880584f, 0.441676f, 0.503649f, 0.100283f, 0.36592f, 0.00703817f, 0.821632f, 0.866334f, 0.23857f, 0.177503f, 0.200214f, 0.498202f, 0.218265f, 0.38326f, 0.322585f, 0.827902f, 0.48848f, 0.925217f, 0.756711f, 0.865992f, 0.0998433f, 0.546017f, 0.329258f, 0.206277f, 0.362251f, 0.4988f, 0.699784f, 0.876167f, 0.407713f, 0.966473f, 0.699797f, 0.0939646f, 0.0193712f, 0.890308f, 0.509845f, 0.104309f, 0.0336535f, 0.596791f, 0.0518554f, 0.539505f, 0.663415f, 0.199421f, 0.660138f, 0.12727f, 0.0455535f, 0.814605f, 0.762778f, 0.0691568f, 0.0436918f, 0.578214f, 0.6505f, 0.691882f, 0.681034f, 0.150299f, 0.769346f, 0.930997f, 0.86266f, 0.20747f, 0.363362f, 0.084075f, 0.139273f, 0.659603f, 0.175426f, 0.0886449f, 0.0544458f, 0.87465f, 0.748701f, 0.222579f, 0.525007f, 0.116009f, 0.0784596f, 0.97162f, 0.958678f, 0.220946f, 0.810572f, 0.940776f, 0.759188f, 0.528482f, 0.832487f, 0.830387f, 0.979419f, 0.798622f, 0.125728f, 0.595178f, 0.0490897f, 0.767816f, 0.620371f, 0.663792f, 0.966933f, 0.420774f, 0.788886f, 0.0220837f, 0.30565f, 0.14275f, 0.245404f, 0.90319f, 0.507932f, 0.690273f, 0.908939f, 0.115463f, 0.686819f, 0.417396f, 0.150329f, 0.0737752f, 0.577233f, 0.322931f, 0.12717f, 0.613882f, 0.58847f, 0.479238f, 0.403759f, 0.0771313f, 0.106414f, 0.673572f, 0.350583f, 0.344535f, 0.68153f, 0.460022f, 0.15081f, 0.729054f, 0.58455f, 0.31535f, 0.885813f, 0.420472f, 0.0255402f, 0.515425f, 0.935814f, 0.124837f, 0.686423f, 0.840649f, 0.78662f, 0.349033f, 0.559209f, 0.954029f, 0.393045f, 0.0646583f, 0.370909f, 0.4484f, 0.431719f, 0.706785f, 0.388648f, 0.637737f, 0.0589366f, 0.668077f, 0.538074f, 0.12675f, 0.304515f, 0.890387f, 0.801784f, 0.471512f, 0.794736f, 0.248499f, 0.126123f, 0.684644f, 0.686978f, 0.846712f, 0.316026f, 0.517567f, 0.0262958f, 0.584169f, 0.509851f, 0.288584f, 0.679869f, 0.0597293f, 0.366682f, 0.399531f, 0.461923f, 0.144886f, 0.836279f, 0.831469f, 0.427781f, 0.492023f, 0.545547f, 0.587171f, 0.656915f, 0.307317f, 0.987408f, 0.817642f, 0.0436993f, 0.32873f, 0.934365f, 0.52028f, 0.896459f, 0.741594f, 0.471362f, 0.847753f, 0.328883f, 0.772851f, 0.307808f, 0.296269f, 0.297292f, 0.159325f, 0.603638f, 0.917443f, 0.312732f, 0.524107f, 0.840835f, 0.0487732f, 0.642619f, 0.827288f, 0.713174f, 0.534953f, 0.805813f, 0.524788f, 0.700008f, 0.428503f, 0.966822f, 0.0931093f, 0.522227f, 0.97329f, 0.317087f, 0.108293f, 0.293492f, 0.920515f, 0.391827f, 0.817358f, 0.730106f, 0.41202f, 0.825189f, 0.620132f, 0.644621f, 0.266817f, 0.399723f, 0.791575f, 0.110672f, 0.72385f, 0.275793f, 0.794949f, 0.892833f, 0.200648f, 0.807969f, 0.645763f, 0.751513f, 0.11756f, 0.42533f, 0.92628f, 0.114567f, 0.607613f, 0.668239f, 0.100192f, 0.114422f, 0.352144f, 0.507415f, 0.882684f, 0.873127f, 0.506768f, 0.344886f, 0.833814f, 0.0242183f, 0.930751f, 0.885974f, 0.732036f, 0.961444f, 0.550254f, 0.322358f, 0.563877f, 0.809922f, 0.276575f, 0.0562522f, 0.143204f, 0.289824f, 0.200382f, 0.972508f, 0.774703f, 0.843532f, 0.246285f, 0.159254f, 0.157435f, 0.575731f, 0.803842f, 0.149768f, 0.365218f, 0.263792f, 0.0829507f, 0.765149f, 0.934117f, 0.569531f, 0.962897f, 0.926989f, 0.44059f, 0.316736f, 0.794048f, 0.112996f, 0.29266f, 0.419849f, 0.307225f, 0.783262f, 0.538579f, 0.242878f, 0.991289f, 0.969825f, 0.548047f, 0.290566f, 0.292351f, 0.868032f, 0.460246f, 0.698321f, 0.800126f, 0.583279f, 0.717189f, 0.703257f, 0.0884206f, 0.175846f, 0.27626f, 0.859412f, 0.358694f, 0.639239f, 0.140631f, 0.704478f, 0.417812f, 0.0676671f, 0.521065f, 0.884021f, 0.168365f, 0.624165f, 0.284287f, 0.964878f, 0.94158f, 0.662307f, 0.432806f, 0.97545f, 0.459688f, 0.733035f, 0.581206f, 0.915372f, 0.208417f, 0.555513f, 0.597207f, 0.400138f, 0.755858f, 0.552204f, 0.201865f, 0.480121f, 0.913508f, 0.835636f, 0.291581f, 0.178903f, 0.220853f, 0.214738f, 0.519559f, 0.278173f, 0.390957f, 0.0395054f, 0.00595424f, 0.759536f, 0.543856f, 0.990689f, 0.0938712f, 0.0310068f, 0.508122f, 0.620263f, 0.348884f, 0.945497f, 0.299965f, 0.635908f, 0.132086f, 0.657791f, 0.238095f, 0.621725f, 0.912678f, 0.808336f, 0.66988f, 0.71485f, 0.840787f, 0.664992f, 0.658862f, 0.277171f, 0.647297f, 0.0421899f, 0.954794f, 0.0751451f, 0.773294f, 0.145824f, 0.910845f, 0.960064f, 0.240367f, 0.304227f, 0.107258f, 0.632377f, 0.385348f, 0.95717f, 0.534541f, 0.975734f, 0.288228f, 0.140664f, 0.701792f, 0.747395f, 0.982609f, 0.120717f, 0.568635f, 0.0653954f, 0.841714f, 0.91516f, 0.479761f, 0.534312f, 0.681924f, 0.935348f, 0.201925f, 0.113211f, 0.117036f, 0.80399f, 0.43298f, 0.69961f, 0.340217f, 0.35513f, 0.614448f, 0.0237451f, 0.642954f, 0.585243f, 0.312187f, 0.131821f, 0.403962f, 0.751647f, 0.0439979f, 0.754596f, 0.44068f, 0.204481f, 0.293113f, 0.543158f, 0.523721f, 0.0979635f, 0.214104f, 0.315379f, 0.178005f, 0.124782f, 0.304416f, 0.0750819f, 0.352707f, 0.548382f, 0.600607f, 0.0934735f, 0.104828f, 0.983191f, 0.0757027f, 0.534711f, 0.0676276f, 0.170516f, 0.469788f, 0.0840215f, 0.885204f, 0.674039f, 0.187585f, 0.196624f, 0.531166f, 0.0696874f, 0.539674f, 0.49392f, 0.408729f, 0.061994f, 0.302405f, 0.252941f, 0.799968f, 0.827175f, 0.611391f, 0.362369f, 0.657713f, 0.707267f, 0.894151f, 0.536904f, 0.13435f, 0.78815f, 0.529078f, 0.198909f, 0.913081f, 0.469675f, 0.072014f, 0.692494f, 0.909327f, 0.126075f, 0.989177f, 0.210604f, 0.966014f, 0.584509f, 0.758058f, 0.310283f, 0.0453492f, 0.424746f, 0.37663f, 0.96411f, 0.200581f, 0.586958f, 0.091529f, 0.265724f, 0.681694f, 0.324513f, 0.669907f, 0.58941f, 0.440361f, 0.528831f, 0.105561f, 0.973964f, 0.654456f, 0.970698f, 0.284738f, 0.549127f, 0.428925f, 0.348274f, 0.622524f, 0.270289f, 0.500476f, 0.847353f, 0.507849f, 0.157441f, 0.230561f, 0.944067f, 0.985883f, 0.69581f, 0.141776f, 0.377412f, 0.401211f, 0.444734f, 0.980702f, 0.675309f, 0.875477f, 0.794507f, 0.349532f, 0.170162f, 0.624894f, 0.417962f, 0.415546f, 0.36032f, 0.757239f, 0.257441f, 0.913047f, 0.659254f, 0.145894f, 0.666919f, 0.0175704f, 0.549286f, 0.614001f, 0.962877f, 0.539759f, 0.391621f, 0.236881f, 0.122099f, 0.814604f, 0.0891521f, 0.482365f, 0.554869f, 0.138315f, 0.963149f, 0.429151f, 0.203627f, 0.236203f, 0.170238f, 0.998642f, 0.801235f, 0.388047f, 0.768687f, 0.27182f, 0.673135f, 0.399079f, 0.85069f, 0.684319f, 0.986399f, 0.631844f, 0.927408f, 0.737798f, 0.995274f, 0.66533f, 0.245754f, 0.472095f, 0.290813f, 0.810834f, 0.313349f, 0.447148f, 0.571328f, 0.627194f, 0.57629f, 0.713469f, 0.422445f, 0.949226f, 0.902399f, 0.0371075f, 0.470613f, 0.907833f, 0.452794f, 0.853629f, 0.262033f, 0.0207634f, 0.816207f, 0.446048f, 0.893255f, 0.265039f, 0.0509093f, 0.863866f, 0.301752f, 0.638668f, 0.490167f, 0.889994f, 0.84687f, 0.158144f, 0.65982f, 0.26235f, 0.95718f, 0.662398f, 0.107077f, 0.85311f, 0.932123f, 0.581673f, 0.61381f, 0.80501f, 0.185818f, 0.877686f, 0.304985f, 0.813848f, 0.296963f, 0.105196f, 0.0412069f, 0.590802f, 0.476628f, 0.203454f, 0.987047f, 0.856256f, 0.237643f, 0.989676f, 0.216779f, 0.923763f, 0.323657f, 0.198351f, 0.241511f, 0.280164f, 0.591196f, 0.859441f, 0.679932f, 0.743648f, 0.947348f, 0.351457f, 0.103951f, 0.14544f, 0.331489f, 0.720028f, 0.460479f, 0.973947f, 0.432496f, 0.117495f, 0.542874f, 0.85118f, 0.521614f, 0.832358f, 0.589992f, 0.262417f, 0.865436f, 0.28816f, 0.657736f, 0.751303f, 0.883796f, 0.419268f, 0.517379f, 0.00849907f, 0.275356f, 0.560118f, 0.5704f, 0.693962f, 0.32664f, 0.653743f, 0.629599f, 0.500192f, 0.0437695f, 0.408629f, 0.652927f, 0.727753f, 0.726597f, 0.673221f, 0.737262f, 0.359457f, 0.939694f, 0.59496f, 0.776528f, 0.336817f, 0.514643f, 0.410871f, 0.461674f, 0.661165f, 0.88696f, 0.0887153f, 0.899074f, 0.52993f, 0.763246f, 0.953701f, 0.611576f, 0.509133f, 0.270107f, 0.364873f, 0.929217f, 0.342699f, 0.623959f, 0.886126f, 0.406349f, 0.67395f, 0.999035f, 0.504545f, 0.925682f, 0.806084f, 0.681021f, 0.549536f, 0.265445f, 0.414815f, 0.627838f, 0.0808093f, 0.723738f, 0.0815012f, 0.771236f, 0.73842f, 0.809941f, 0.41711f, 0.653149f, 0.0462295f, 0.172731f, 0.062684f, 0.499982f, 0.384897f, 0.323556f, 0.644623f, 0.195763f, 0.832568f, 0.871539f, 0.0842767f, 0.902823f, 0.12852f, 0.266654f, 0.132603f, 0.825525f, 0.183502f, 0.927431f, 0.291925f, 0.469783f, 0.845891f, 0.213524f, 0.469971f, 0.0519577f, 0.273665f, 0.0283654f, 0.129275f, 0.0133337f, 0.455978f, 0.754961f, 0.790605f, 0.839277f, 0.00355995f, 0.467845f, 0.385371f, 0.939362f, 0.536838f, 0.912425f, 0.431739f, 0.0786191f, 0.3032f, 0.71803f, 0.0454604f, 0.654944f, 0.422661f, 0.89835f, 0.104968f, 0.352199f, 0.853833f, 0.49648f, 0.925281f, 0.823627f, 0.585987f, 0.898465f, 0.326791f, 0.592133f, 0.463077f, 0.690367f, 0.0534051f, 0.696711f, 0.879301f, 0.226565f, 0.843417f, 0.774814f, 0.848457f, 0.440648f, 0.724936f, 0.545384f, 0.710813f, 0.574709f, 0.326078f, 0.513247f, 0.399664f, 0.9986f, 0.17735f, 0.073329f, 0.537802f, 0.280107f, 0.92919f, 0.141223f, 0.263987f, 0.044565f, 0.565706f, 0.730661f, 0.172426f, 0.298544f, 0.73557f, 0.499133f, 0.655023f, 0.884787f, 0.927725f, 0.540348f, 0.732994f, 0.416806f, 0.683407f, 0.672019f, 0.226764f, 0.559166f, 0.880894f, 0.211082f, 0.351384f, 0.803358f, 0.0817335f, 0.0290782f, 0.431313f, 0.433303f, 0.294876f, 0.248437f, 0.494062f, 0.316968f, 0.239748f, 0.418382f, 0.758703f, 0.819905f, 0.33438f, 0.24151f, 0.820807f, 0.376312f, 0.0603143f, 0.435946f, 0.840847f, 0.752812f, 0.841729f, 0.837204f, 0.523985f, 0.837111f, 0.235468f, 0.526222f, 0.414712f, 0.560508f, 0.329657f, 0.208302f, 0.341473f, 0.326454f, 0.536594f, 0.518118f, 0.12619f, 0.803484f, 0.714879f, 0.49794f, 0.868055f, 0.289f, 0.0652668f, 0.955847f, 0.881797f, 0.372157f, 0.526866f, 0.744218f, 0.0102619f, 0.667189f, 0.296191f, 0.55762f, 0.462473f, 0.231383f, 0.00379398f, 0.675219f, 0.801112f, 0.142568f, 0.845674f, 0.271624f, 0.602504f, 0.0880555f, 0.332806f, 0.906774f, 0.0917857f, 0.706064f, 0.569323f, 0.65879f, 0.964485f, 0.215885f, 0.433708f, 0.385675f, 0.20189f, 0.138252f, 0.997569f, 0.384503f, 0.642629f, 0.624547f, 0.565289f, 0.378957f, 0.47499f, 0.224468f, 0.339102f, 0.673985f, 0.426598f, 0.0212697f, 0.765904f, 0.162709f, 0.184998f, 0.765993f, 0.322265f, 0.501502f, 0.736527f, 0.963061f, 0.938897f, 0.934525f, 0.91499f, 0.813492f, 0.591905f, 0.00209281f, 0.807754f, 0.875947f, 0.403504f, 0.292973f, 0.991515f, 0.702833f, 0.667988f, 0.823181f, 0.264541f, 0.653264f, 0.84179f, 0.516506f, 0.221366f, 0.856864f, 0.771658f, 0.849874f, 0.965903f, 0.720022f, 0.546299f, 0.162553f, 0.842109f, 0.00376673f, 0.965212f, 0.708506f, 0.735937f, 0.451234f, 0.990287f, 0.190653f, 0.173985f, 0.678833f, 0.142683f, 0.752652f, 0.902907f, 0.752725f, 0.456146f, 0.875956f, 0.274689f, 0.724019f, 0.286962f, 0.755524f, 0.243662f, 0.678634f, 0.545567f, 0.366002f, 0.424252f, 0.753029f, 0.161247f, 0.308859f, 0.768887f, 0.503259f, 0.251248f, 0.274069f, 0.123186f, 0.257923f, 0.553813f, 0.328447f, 0.432531f, 0.409458f, 0.781136f, 0.354439f, 0.929638f, 0.641831f, 0.736621f, 0.414275f, 0.850833f, 0.787645f, 0.166013f, 0.86714f, 0.815449f, 0.576641f, 0.108081f, 0.411362f, 0.425229f, 0.44125f, 0.782235f, 0.524877f, 0.695368f, 0.166618f, 0.928522f, 0.784976f, 0.672973f, 0.872188f, 0.940872f, 0.580408f, 0.638464f, 0.462909f, 0.459911f, 0.32465f, 0.809455f, 0.560667f, 0.380102f, 0.861866f, 0.109721f, 0.0308464f, 0.623274f, 0.45616f, 0.897797f, 0.484541f, 0.949567f, 0.0837994f, 0.23621f, 0.212597f, 0.439361f, 0.728416f, 0.27532f, 0.26466f, 0.808841f, 0.421971f, 0.696874f, 0.828717f, 0.504303f, 0.662372f, 0.327151f, 0.184963f, 0.666238f, 0.781659f, 0.282019f, 0.487977f, 0.275363f, 0.092091f, 0.535932f, 0.49683f, 0.467149f, 0.502567f, 0.840322f, 0.286123f, 0.930709f, 0.983031f, 0.557765f, 0.265848f, 0.207847f, 0.509513f, 0.635265f, 0.566415f, 0.286493f, 0.311504f, 0.0527314f, 0.202769f, 0.759897f, 0.839499f, 0.0422418f, 0.808762f, 0.860245f, 0.867181f, 0.199014f, 0.878043f, 0.0259532f, 0.81451f, 0.449817f, 0.46622f, 0.673454f, 0.0773194f, 0.801992f, 0.0215891f, 0.299486f, 0.202662f, 0.844368f, 0.539223f, 0.794393f, 0.498429f, 0.1719f, 0.516754f, 0.624653f, 0.941274f, 0.449317f, 0.829167f, 0.57099f, 0.118988f, 0.369464f, 0.392911f, 0.488977f, 0.603277f, 0.146521f, 0.824633f, 0.526214f, 0.538801f, 0.150353f, 0.724502f, 0.131537f, 0.988849f, 0.333432f, 0.718172f, 0.74426f, 0.129661f, 0.820868f, 0.909861f, 0.136001f, 0.270309f, 0.704288f, 0.893886f, 0.326444f, 0.364767f, 0.422896f, 0.684922f, 0.37052f, 0.248242f, 0.0453765f, 0.0848157f, 0.629291f, 0.786327f, 0.999893f, 0.289456f, 0.847154f, 0.2287f, 0.0663366f, 0.127314f, 0.0115147f, 0.814405f, 0.886679f, 0.745017f, 0.361332f, 0.960407f, 0.956814f, 0.00031382f, 0.0818927f, 0.0792855f, 0.305876f, 0.129241f, 0.370793f, 0.872396f, 0.160768f, 0.369604f, 0.968642f, 0.983399f, 0.219455f, 0.368195f, 0.479561f, 0.736244f, 0.853021f, 0.263501f, 0.331484f, 0.421875f, 0.820267f, 0.824629f, 0.180069f, 0.979761f, 0.685614f, 0.151672f, 0.368202f, 0.935376f, 0.723351f, 0.947521f, 0.812962f, 0.0393219f, 0.448852f, 0.916772f, 0.376377f, 0.656037f, 0.596934f, 0.407713f, 0.581081f, 0.499572f, 0.15246f, 0.415338f, 0.959572f, 0.289051f, 0.532543f, 0.399378f, 0.707961f, 0.353649f, 0.999977f, 0.411315f, 0.507638f, 0.695433f, 0.686485f, 0.946923f, 0.554696f, 0.828731f, 0.103839f, 0.402531f, 0.314835f, 0.31834f, 0.811244f, 0.816987f, 0.318343f, 0.379974f, 0.017095f, 0.490605f, 0.774623f, 0.0256612f, 0.771085f, 0.337502f, 0.798936f, 0.485491f, 0.384387f, 0.934485f, 0.128224f, 0.881266f, 0.55429f, 0.0821492f, 0.839872f, 0.35792f, 0.17427f, 0.457722f, 0.132874f, 0.848926f, 0.473386f, 0.35084f, 0.884521f, 0.633309f, 0.328557f, 0.491455f, 0.470415f, 0.413116f, 0.0545538f, 0.0749842f, 0.28592f, 0.146577f, 0.912355f, 0.627379f, 0.635914f, 0.978279f, 0.605406f, 0.937944f, 0.123009f, 0.484798f, 0.56439f, 0.00739178f, 0.711569f, 0.079539f, 0.985346f, 0.678384f, 0.86812f, 0.433614f, 0.80086f, 0.320245f, 0.592016f, 0.37018f, 0.835839f, 0.925468f, 0.536741f, 0.229944f, 0.53053f, 0.871769f, 0.73258f, 0.973737f, 0.703955f, 0.412242f, 0.67909f, 0.893231f, 0.482548f, 0.033109f, 0.127787f, 0.85196f, 0.763455f, 0.725058f, 0.637974f, 0.95114f, 0.736879f, 0.540986f, 0.537117f, 0.662274f, 0.465006f, 0.174403f, 0.825465f, 0.537735f, 0.26325f, 0.960223f, 0.393766f, 0.0259233f, 0.49806f, 0.2551f, 0.318262f, 0.816348f, 0.82046f, 0.592883f, 0.0831828f, 0.545193f, 0.645472f, 0.727568f, 0.391205f, 0.865609f, 0.22572f, 0.593496f, 0.711482f, 0.181181f, 0.871405f, 0.461435f, 0.629724f, 0.146651f, 0.187936f, 0.653171f, 0.522262f, 0.564234f, 0.0488697f, 0.631423f, 0.0656051f, 0.277527f, 0.395756f, 0.835641f, 0.125169f, 0.031573f, 0.827047f, 0.76422f, 0.70184f, 0.536186f, 0.719809f, 0.392548f, 0.248494f, 0.0113598f, 0.145692f, 0.0715961f, 0.00824071f, 0.0893908f, 0.908226f, 0.688277f, 0.597482f, 0.42348f, 0.933487f, 0.448177f, 0.940487f, 0.287481f, 0.471769f, 0.837522f, 0.754441f, 0.774111f, 0.726068f, 0.186716f, 0.424487f, 0.799763f, 0.784653f, 0.0287716f, 0.517704f, 0.19538f, 0.609822f, 0.793181f, 0.961625f, 0.901127f, 0.976353f, 0.0431655f, 0.544816f, 0.293044f, 0.845437f, 0.614945f, 0.377541f, 0.571479f, 0.0378839f, 0.345483f, 0.818315f, 0.83208f, 0.505378f, 0.670653f, 0.0233108f, 0.649274f, 0.980283f, 0.0817684f, 0.6392f, 0.355697f, 0.996377f, 0.877605f, 0.28135f, 0.72108f, 0.957454f, 0.653142f, 0.660603f, 0.888257f, 0.904027f, 0.268201f, 0.135722f, 0.681844f, 0.085175f, 0.46722f, 0.576889f, 0.508221f, 0.397492f, 0.031058f, 0.118869f, 0.0649997f, 0.497825f, 0.4128f, 0.475993f, 0.787082f, 0.697152f, 0.0876402f, 0.00368021f, 0.879489f, 0.362483f, 0.893105f, 0.504865f, 0.667119f, 0.263053f, 0.677176f, 0.669501f, 0.219379f, 0.786473f, 0.233583f, 0.778745f, 0.565559f, 0.210947f, 0.416327f, 0.292413f, 0.241213f, 0.666406f, 0.0222339f, 0.0350166f, 0.648889f, 0.733443f, 0.88821f, 0.055882f, 0.0277956f, 0.504415f, 0.737115f, 0.641023f, 0.0619757f, 0.0734278f, 0.71448f, 0.383871f, 0.182692f, 0.995474f, 0.376517f, 0.912033f, 0.481474f, 0.870682f, 0.0162815f, 0.317314f, 0.813583f, 0.968563f, 0.436631f, 0.278392f, 0.225784f, 0.723891f, 0.412729f, 0.771891f, 0.299832f, 0.50019f, 0.522494f, 0.625582f, 0.247386f, 0.0624364f, 0.198028f, 0.0965692f, 0.615351f, 0.921409f, 0.234406f, 0.977569f, 0.362076f, 0.0474897f, 0.000719785f, 0.32906f, 0.480448f, 0.0747429f, 0.84337f, 0.969968f, 0.0750479f, 0.327639f, 0.749891f, 0.813955f, 0.544825f, 0.901279f, 0.630745f, 0.593813f, 0.321331f, 0.552946f, 0.604974f, 0.486309f, 0.808165f, 0.79014f, 0.411673f, 0.374508f, 0.526008f, 0.438269f, 0.591808f, 0.899624f, 0.589784f, 0.422551f, 0.726518f, 0.385523f, 0.0812598f, 0.823857f, 0.969916f, 0.119352f, 0.720789f, 0.465167f, 0.414751f, 0.948992f, 0.178657f, 0.614829f, 0.0262519f, 0.835114f, 0.9793f, 0.447871f, 0.297571f, 0.602232f, 0.13819f, 0.0357472f, 0.559548f, 0.164173f, 0.363394f, 0.330852f, 0.832982f, 0.803092f, 0.03183f, 0.203531f, 0.369255f, 0.0189111f, 0.742462f, 0.849378f, 0.0451305f, 0.869346f, 0.966823f, 0.659599f, 0.408523f, 0.634494f, 0.267026f, 0.120147f, 0.0942491f, 0.803437f, 0.820474f, 0.0740196f, 0.871302f, 0.415977f, 0.494594f, 0.0293509f, 0.33357f, 0.704333f, 0.599486f, 0.444793f, 0.907338f, 0.517565f, 0.266307f, 0.642615f, 0.630478f, 0.382786f, 0.207283f, 0.138784f, 0.361832f, 0.00835775f, 0.0247863f, 0.346629f, 0.801693f, 0.638861f, 0.690865f, 0.572333f, 0.472501f, 0.0470447f, 0.43521f, 0.0716343f, 0.0270219f, 0.526611f, 0.647479f, 0.843117f, 0.39167f, 0.485885f, 0.291377f, 0.939419f, 0.0395494f, 0.312875f, 0.305732f, 0.641768f, 0.381201f, 0.278588f, 0.0678477f, 0.128049f, 0.40274f, 0.391973f, 0.777331f, 0.354055f, 0.76454f, 0.363069f, 0.564766f, 0.33317f, 0.46361f, 0.185451f, 0.0263633f, 0.936658f, 0.352718f, 0.457105f, 0.854162f, 0.862375f, 0.988636f, 0.732053f, 0.661575f, 0.910471f, 0.378453f, 0.778195f, 0.693411f, 0.385346f, 0.474262f, 0.843387f, 0.0689777f, 0.00299793f, 0.8032f, 0.795708f, 0.547995f, 0.151327f, 0.46796f, 0.809076f, 0.539852f, 0.230707f, 0.0629656f, 0.373144f, 0.0845302f, 0.0159617f, 0.454861f, 0.182251f, 0.674457f, 0.732855f, 0.316629f, 0.0511217f, 0.392652f, 0.0173745f, 0.574732f, 0.60335f, 0.399655f, 0.766155f, 0.381027f, 0.61383f, 0.232291f, 0.531796f, 0.729258f, 0.785192f, 0.331604f, 0.86379f, 0.128494f, 0.969683f, 0.999763f, 0.0998704f, 0.573769f, 0.187448f, 0.674414f, 0.194858f, 0.953877f, 0.201425f, 0.543769f, 0.308643f, 0.792264f, 0.398644f, 0.708149f, 0.289014f, 0.819657f, 0.253265f, 0.837789f, 0.304976f, 0.575838f, 0.435386f, 0.579792f, 0.739268f, 0.155193f, 0.228266f, 0.687053f, 0.52085f, 0.0392726f, 0.125017f, 0.00318429f, 0.687647f, 0.47317f, 0.341067f, 0.763186f, 0.42641f, 0.926529f, 0.331726f, 0.531519f, 0.752008f, 0.104633f, 0.666371f, 0.933613f, 0.833319f, 0.925057f, 0.601297f, 0.432739f, 0.773991f, 0.254665f, 0.271045f, 0.488001f, 0.98369f, 0.765446f, 0.00696623f, 0.242701f, 0.701162f, 0.587165f, 0.651144f, 0.372115f, 0.308176f, 0.548135f, 0.727489f, 0.330426f, 0.895366f, 0.206513f, 0.0489515f, 0.764614f, 0.495505f, 0.110225f, 0.722651f, 0.438193f, 0.801399f, 0.548682f, 0.434788f, 0.175742f, 0.785937f, 0.75756f, 0.330464f, 0.865882f, 0.302393f, 0.181894f, 0.779485f, 0.430365f, 0.782417f, 0.314907f, 0.481456f, 0.857318f, 0.0113857f, 0.173096f, 0.254854f, 0.361403f, 0.551114f, 0.912298f, 0.291188f, 0.712132f, 0.524902f, 0.589849f, 0.735236f, 0.0515289f, 0.161229f, 0.245797f, 0.944604f, 0.631969f, 0.265742f, 0.197306f, 0.0768234f, 0.0194839f, 0.0701168f, 0.694827f, 0.393103f, 0.110566f, 0.602244f, 0.228535f, 0.172539f, 0.103389f, 0.0175603f, 0.543229f, 0.204025f, 0.114078f, 0.516247f, 0.972776f, 0.206016f, 0.495504f, 0.902649f, 0.521167f, 0.273193f, 0.779409f, 0.899815f, 0.200795f, 0.884517f, 0.2051f, 0.942331f, 0.928528f, 0.42342f, 0.153295f, 0.813989f, 0.944438f, 0.830663f, 0.28702f, 0.608891f, 0.400393f, 0.0942167f, 0.552048f, 0.0156807f, 0.531824f, 0.87719f, 0.202555f, 0.940243f, 0.242386f, 0.851822f, 0.878135f, 0.16821f, 0.131348f, 0.230732f, 0.597644f, 0.745814f, 0.181948f, 0.532724f, 0.906058f, 0.386221f, 0.273775f, 0.837916f, 0.338809f, 0.295876f, 0.432598f, 0.0469732f, 0.0388639f, 0.225856f, 0.889241f, 0.875772f, 0.490003f, 0.573914f, 0.903424f, 0.0782142f, 0.815816f, 0.354702f, 0.462083f, 0.589756f, 0.262515f, 0.233802f, 0.189547f, 0.996142f, 0.780253f, 0.103435f, 0.402775f, 0.437038f, 0.483267f, 0.172879f, 0.917637f, 0.14663f, 0.354259f, 0.121247f, 0.730811f, 0.411633f, 0.772367f, 0.28071f, 0.385159f, 0.136306f, 0.562222f, 0.422636f, 0.0900755f, 0.0490742f, 0.441638f, 0.972136f, 0.28366f, 0.722472f, 0.159515f, 0.533905f, 0.592363f, 0.347499f, 0.728473f, 0.683163f, 0.776232f, 0.191833f, 0.698048f, 0.515704f, 0.797297f, 0.303258f, 0.531089f, 0.686102f, 0.341439f, 0.903674f, 0.541508f, 0.431689f, 0.0165836f, 0.331906f, 0.646335f, 0.534429f, 0.405256f, 0.0990474f, 0.0653716f, 0.93658f, 0.54225f, 0.889823f, 0.274116f, 0.786693f, 0.460302f, 0.492471f, 0.16118f, 0.0725846f, 0.423202f, 0.289644f, 0.589097f, 0.335348f, 0.0187064f, 0.898956f, 0.644845f, 0.161203f, 0.322998f, 0.709912f, 0.613727f, 0.883755f, 0.257027f, 0.417126f, 0.765556f, 0.185499f, 0.899844f, 0.432989f, 0.941765f, 0.290679f, 0.552303f, 0.5248f, 0.867102f, 0.843107f, 0.194849f, 0.178186f, 0.890691f, 0.762402f, 0.98445f, 0.896385f, 0.138908f, 0.541767f, 0.465325f, 0.148249f, 0.791812f, 0.643343f, 0.266132f, 0.514905f, 0.385602f, 0.551542f, 0.767467f, 0.191721f, 0.194929f, 0.763939f, 0.480432f, 0.262448f, 0.656023f, 0.862894f, 0.0523637f, 0.222938f, 0.233722f, 0.410409f, 0.276134f, 0.267563f, 0.596115f, 0.23797f, 0.466054f, 0.744026f, 0.0609154f, 0.67997f, 0.942111f, 0.491477f, 0.397575f, 0.115714f, 0.975031f, 0.339329f, 0.783043f, 0.620843f, 0.67738f, 0.0263275f, 0.802089f, 0.512084f, 0.688234f, 0.00734883f, 0.729239f, 0.951641f, 0.572257f, 0.274996f, 0.963747f, 0.653032f, 0.40655f, 0.374964f, 0.317177f, 0.0885474f, 0.278359f, 0.134799f, 0.562288f, 0.753961f, 0.165827f, 0.0501638f, 0.0879694f, 0.877446f, 0.91488f, 0.342373f, 0.672112f, 0.513737f, 0.461238f, 0.937427f, 0.588051f, 0.261043f, 0.59019f, 0.491552f, 0.247191f, 0.268557f, 0.940984f, 0.133495f, 0.225512f, 0.061612f, 0.725114f, 0.427663f, 0.00527795f, 0.692709f, 0.13052f, 0.401754f, 0.650497f, 0.93261f, 0.834951f, 0.819397f, 0.0708086f, 0.469795f, 0.4609f, 0.82386f, 0.878738f, 0.506777f, 0.545598f, 0.820291f, 0.871072f, 0.40302f, 0.551472f, 0.260097f, 0.971456f, 0.904821f, 0.65532f, 0.606182f, 0.00195895f, 0.923481f, 0.0240523f, 0.999963f, 0.67457f, 0.384125f, 0.935217f, 0.314049f, 0.596162f, 0.904788f, 0.83433f, 0.83861f, 0.00678903f, 0.0554508f, 0.840524f, 0.182566f, 0.692484f, 0.18624f, 0.0356324f, 0.219805f, 0.082061f, 0.252837f, 0.896384f, 0.913405f, 0.0780995f, 0.40322f, 0.460075f, 0.844018f, 0.872995f, 0.689628f, 0.905133f, 0.527041f, 0.697146f, 0.725787f, 0.261525f, 0.617749f, 0.885002f, 0.743966f, 0.677214f, 0.949382f, 0.654274f, 0.793361f, 0.462747f, 0.658381f, 0.635382f, 0.499737f, 0.467287f, 0.359796f, 0.959459f, 0.728091f, 0.23242f, 0.0901241f, 0.122147f, 0.59385f, 0.725853f, 0.472269f, 0.152191f, 0.283303f, 0.957536f, 0.643152f, 0.739371f, 0.887909f, 0.90516f, 0.380709f, 0.682323f, 0.059883f, 0.168969f, 0.296506f, 0.710234f, 0.0843966f, 0.904016f, 0.166514f, 0.597223f, 0.193536f, 0.469915f, 0.286458f, 0.731118f, 0.625388f, 0.0429173f, 0.539192f, 0.0481399f, 0.211433f, 0.25051f, 0.425512f, 0.0181936f, 0.121157f, 0.9789f, 0.520572f, 0.400318f, 0.58233f, 0.761052f, 0.604665f, 0.944583f, 0.39336f, 0.227694f, 0.96296f, 0.876985f, 0.0501449f, 0.288584f, 0.451995f, 0.534457f, 0.655872f, 0.661063f, 0.754428f, 0.966692f, 0.0150086f, 0.104045f, 0.095014f, 0.868285f, 0.0476501f, 0.820102f, 0.0679207f, 0.801386f, 0.845822f, 0.439861f, 0.857085f, 0.102827f, 0.87434f, 0.562673f, 0.120314f, 0.144534f, 0.871773f, 0.094574f, 0.246483f, 0.235665f, 0.833357f, 0.85404f, 0.848544f, 0.0604521f, 0.0186945f, 0.795606f, 0.682973f, 0.649498f, 0.657285f, 0.0696037f, 0.793504f, 0.797787f, 0.511502f, 0.52392f, 0.700018f, 0.565786f, 0.616767f, 0.282619f, 0.339069f, 0.64898f, 0.865851f, 0.00999974f, 0.0853183f, 0.176463f, 0.358187f, 0.906751f, 0.65451f, 0.232918f, 0.0523113f, 0.308852f, 0.506029f, 0.0155211f, 0.464285f, 0.098526f, 0.807842f, 0.745457f, 0.877439f, 0.972399f, 0.309026f, 0.741423f, 0.0863205f, 0.127728f, 0.578785f, 0.272265f, 0.688036f, 0.289875f, 0.478403f, 0.149041f, 0.612673f, 0.169721f, 0.0749017f, 0.950864f, 0.697547f, 0.223317f, 0.53656f, 0.244241f, 0.0230917f, 0.469217f, 0.321902f, 0.918212f, 0.14048f, 0.497955f, 0.137043f, 0.446622f, 0.0820836f, 0.883689f, 0.850482f, 0.976799f, 0.255676f, 0.570913f, 0.32842f, 0.825705f, 0.876435f, 0.967062f, 0.941922f, 0.533506f, 0.666526f, 0.483001f, 0.91087f, 0.997286f, 0.450467f, 0.342494f, 0.859067f, 0.531275f, 0.463573f, 0.952184f, 0.53284f, 0.558022f, 0.725426f, 0.474411f, 0.655587f, 0.420087f, 0.468508f, 0.308208f, 0.604864f, 0.817855f, 0.728975f, 0.122265f, 0.306047f, 0.184579f, 0.16592f, 0.504201f, 0.536009f, 0.491814f, 0.398283f, 0.879826f, 0.287263f, 0.462895f, 0.516067f, 0.541015f, 0.725253f, 0.196295f, 0.606033f, 0.843471f, 0.453701f, 0.205685f, 0.634091f, 0.861297f, 0.465242f, 0.602618f, 0.720813f, 0.109542f, 0.518306f, 0.496782f, 0.799802f, 0.420652f, 0.224371f, 0.266482f, 0.654803f, 0.047895f, 0.432791f, 0.0991827f, 0.772198f, 0.32209f, 0.330437f, 0.185746f, 0.140597f, 0.306f, 0.334362f, 0.00169165f, 0.816549f, 0.0763457f, 0.856974f, 0.0709023f, 0.476311f, 0.587085f, 0.829337f, 0.505602f, 0.119236f, 0.796571f, 0.684383f, 0.815761f, 0.696858f, 0.709625f, 0.174017f, 0.203209f, 0.42155f, 0.532394f, 0.0445279f, 0.690665f, 0.610445f, 0.565935f, 0.833406f, 0.374485f, 0.0464426f, 0.573286f, 0.104844f, 0.0645017f, 0.112781f, 0.573605f, 0.488074f, 0.522915f, 0.731857f, 0.967717f, 0.997032f, 0.572101f, 0.942378f, 0.345968f, 0.301739f, 0.176546f, 0.0560019f, 0.0350762f, 0.563506f, 0.548198f, 0.872069f, 0.377967f, 0.348896f, 0.266325f, 0.284741f, 0.633524f, 0.889082f, 0.993557f, 0.846756f, 0.725345f, 0.572848f, 0.871653f, 0.368854f, 0.503869f, 0.0727189f, 0.0918519f, 0.920518f, 0.946622f, 0.467996f, 0.759991f, 0.601632f, 0.318524f, 0.741685f, 0.213693f, 0.157869f, 0.952439f, 0.645408f, 0.938636f, 0.072953f, 0.814662f, 0.367685f, 0.746321f, 0.0308021f, 0.555824f, 0.540047f, 0.98481f, 0.451255f, 0.231776f, 0.571407f, 0.114218f, 0.740337f, 0.644461f, 0.705899f, 0.000324034f, 0.0669688f, 0.704823f, 0.816899f, 0.258044f, 0.846036f, 0.831444f, 0.329306f, 0.0978028f, 0.797346f, 0.0860686f, 0.500717f, 0.404287f, 0.665233f, 0.212074f, 0.0193281f, 0.351646f, 0.709888f, 0.428712f, 0.463282f, 0.596454f, 0.0112623f, 0.369824f, 0.993872f, 0.660341f, 0.867077f, 0.238456f, 0.718436f, 0.707635f, 0.478597f, 0.493712f, 0.946965f, 0.679729f, 0.747171f, 0.192647f, 0.220157f, 0.616217f, 0.274945f, 0.410491f, 0.670034f, 0.529077f, 0.422064f, 0.449074f, 0.50408f, 0.797496f, 0.365237f, 0.829194f, 0.941683f, 0.684282f, 0.0480276f, 0.530699f, 0.474956f, 0.0512108f, 0.272672f, 0.0933672f, 0.883944f, 0.0853204f, 0.864014f, 0.989528f, 0.346204f, 0.668628f, 0.0958885f, 0.372699f, 0.728539f, 0.673392f, 0.165501f, 0.563271f, 0.183946f, 0.0750424f, 0.755246f, 0.937016f, 0.644245f, 0.746287f, 0.831148f, 0.0521238f, 0.265193f, 0.0866676f, 0.350039f, 0.339534f, 0.180864f, 0.196189f, 0.381186f, 0.790401f, 0.997931f, 0.998157f, 0.0498226f, 0.357231f, 0.706713f, 0.0320284f, 0.745339f, 0.549743f, 0.640489f, 0.798846f, 0.222073f, 0.708906f, 0.17552f, 0.817831f, 0.576041f, 0.0395129f, 0.591903f, 0.0668133f, 0.266916f, 0.582943f, 0.480411f, 0.102654f, 0.0456304f, 0.410205f, 0.0901037f, 0.104304f, 0.577822f, 0.724465f, 0.928792f, 0.983905f, 0.0215146f, 0.78416f, 0.500699f, 0.800233f, 0.389331f, 0.19249f, 0.99276f, 0.666015f, 0.532314f, 0.321296f, 0.905419f, 0.93963f, 0.45092f, 0.714422f, 0.415709f, 0.384093f, 0.0577467f, 0.158675f, 0.378667f, 0.800723f, 0.363547f, 0.997812f, 0.561783f, 0.148821f, 0.770375f, 0.830476f, 0.667792f, 0.305506f, 0.846649f, 0.687359f, 0.382275f, 0.374334f, 0.383001f, 0.014579f, 0.333735f, 0.396562f, 0.977267f, 0.806299f, 0.698036f, 0.682723f, 0.727546f, 0.274506f, 0.22807f, 0.0282678f, 0.0096508f, 0.245845f, 0.669269f, 0.210805f, 0.657272f, 0.257349f, 0.882168f, 0.56864f, 0.0725941f, 0.443277f, 0.948587f, 0.161456f, 0.654467f, 0.717582f, 0.107923f, 0.421968f, 0.699075f, 0.229357f, 0.826711f, 0.355575f, 0.781551f, 0.68971f, 0.0588251f, 0.403448f, 0.732937f, 0.0690303f, 0.573226f, 0.468383f, 0.347646f, 0.685601f, 0.912646f, 0.374278f, 0.476829f, 0.262196f, 0.503916f, 0.203185f, 0.933735f, 0.836232f, 0.378327f, 0.622366f, 0.66969f, 0.17668f, 0.653573f, 0.880322f, 0.908573f, 0.683539f, 0.280947f, 0.212366f, 0.513669f, 0.379096f, 0.482158f, 0.558209f, 0.866087f, 0.994374f, 0.082474f, 0.553292f, 0.125581f, 0.293149f, 0.416828f, 0.753735f, 0.318881f, 0.288113f, 0.436025f, 0.177524f, 0.0651407f, 0.162611f, 0.302722f, 0.808142f, 0.387352f, 0.928794f, 0.484503f, 0.970821f, 0.993738f, 0.985168f, 0.882121f, 0.333048f, 0.7672f, 0.554213f, 0.975204f, 0.00498456f, 0.0589748f, 0.567172f, 0.797277f, 0.22337f, 0.976087f, 0.569992f, 0.968481f, 0.931772f, 0.534102f, 0.487766f, 0.158958f, 0.382199f, 0.640329f, 0.88933f, 0.258885f, 0.716616f, 0.388569f, 0.622888f, 0.518576f, 0.312578f, 0.877588f, 0.77198f, 0.253978f, 0.450153f, 0.0842559f, 0.766154f, 0.693676f, 0.743777f, 0.229778f, 0.148903f, 0.550572f, 0.500557f, 0.624845f, 0.669729f, 0.619281f, 0.301052f, 0.931496f, 0.926573f, 0.355867f, 0.821787f, 0.562358f, 0.0748949f, 0.927636f, 0.840228f, 0.0752844f, 0.282079f, 0.359595f, 0.837961f, 0.496845f, 0.116626f, 0.721654f, 0.760899f, 0.98996f, 0.185363f, 0.227649f, 0.369601f, 0.314955f, 0.101791f, 0.921601f, 0.316116f, 0.910024f, 0.173297f, 0.137118f, 0.454023f, 0.905088f, 0.602478f, 0.57654f, 0.341757f, 0.571889f, 0.438844f, 0.618136f, 0.466023f, 0.15874f, 0.209441f, 0.789919f, 0.844397f, 0.619178f, 0.768327f, 0.666072f, 0.93239f, 0.276612f, 0.784224f, 0.0826931f, 0.0291408f, 0.743507f, 0.349243f, 0.901697f, 0.433116f, 0.788764f, 0.972337f, 0.601347f, 0.370131f, 0.777478f, 0.648265f, 0.639736f, 0.554009f, 0.86256f, 0.540843f, 0.147768f, 0.705168f, 0.0272573f, 0.66463f, 0.939175f, 0.940183f, 0.644806f, 0.941683f, 0.98579f, 0.4893f, 0.424486f, 0.0741436f, 0.865929f, 0.848053f, 0.377642f, 0.372867f, 0.832198f, 0.085784f, 0.449933f, 0.10641f, 0.363953f, 0.713693f, 0.483051f, 0.914744f, 0.237893f, 0.929199f, 0.704769f, 0.517149f, 0.632056f, 0.356342f, 0.749495f, 0.736436f, 0.64935f, 0.943998f, 0.47263f, 0.335078f, 0.306414f, 0.67485f, 0.211166f, 0.970188f, 0.5774f, 0.361373f, 0.703422f, 0.0155961f, 0.132124f, 0.744184f, 0.843494f, 0.427285f, 0.049488f, 0.556826f, 0.487275f, 0.99587f, 0.125392f, 0.0107001f, 0.836028f, 0.313925f, 0.132863f, 0.916593f, 0.181805f, 0.354308f, 0.562205f, 0.361136f, 0.487999f, 0.488793f, 0.8746f, 0.604234f, 0.325402f, 0.838701f, 0.4072f, 0.692251f, 0.0839244f, 0.151218f, 0.666377f, 0.333471f, 0.489228f, 0.288571f, 0.0924642f, 0.267739f, 0.127873f, 0.076535f, 0.583941f, 0.501515f, 0.148763f, 0.454595f, 0.308205f, 0.563837f, 0.123453f, 0.152495f, 0.932308f, 0.627603f, 0.877615f, 0.794499f, 0.60423f, 0.640577f, 0.404485f, 0.439997f, 0.181546f, 0.492963f, 0.807206f, 0.29167f, 0.846094f, 0.458601f, 0.813685f, 0.46568f, 0.626272f, 0.848856f, 0.633707f, 0.498661f, 0.675078f, 0.620549f, 0.456073f, 0.729302f, 0.560664f, 0.366745f, 0.0020874f, 0.970074f, 0.125042f, 0.264685f, 0.132465f, 0.112823f, 0.988554f, 0.722156f, 0.0396353f, 0.865664f, 0.484429f, 0.548686f, 0.59103f, 0.582476f, 0.734894f, 0.889404f, 0.285218f, 0.956761f, 0.541518f, 0.0898954f, 0.227648f, 0.442708f, 0.3522f, 0.893348f, 0.120664f, 0.882216f, 0.378029f, 0.401639f, 0.450792f, 0.268672f, 0.52879f, 0.435971f, 0.211729f, 0.526568f, 0.99103f, 0.904192f, 0.11201f, 0.513164f, 0.656673f, 0.0417688f, 0.612218f, 0.442739f, 0.11838f, 0.748262f, 0.0553697f, 0.870026f, 0.552763f, 0.751894f, 0.0466498f, 0.376235f, 0.19962f, 0.138471f, 0.583898f, 0.708559f, 0.143441f, 0.550168f, 0.972127f, 0.659844f, 0.84563f, 0.764332f, 0.851975f, 0.7284f, 0.0798467f, 0.136125f, 0.246906f, 0.286265f, 0.667871f, 0.393268f, 0.484624f, 0.482572f, 0.458289f, 0.479928f, 0.798781f, 0.59654f, 0.597004f, 0.966279f, 0.548111f, 0.901875f, 0.0518197f, 0.828546f, 0.428622f, 0.709387f, 0.432428f, 0.379198f, 0.162804f, 0.0395384f, 0.51822f, 0.121117f, 0.306746f, 0.0220598f, 0.556756f, 0.907205f, 0.274725f, 0.414212f, 0.646132f, 0.879867f, 0.208859f, 0.622705f, 0.584889f, 0.579855f, 0.84896f, 0.865105f, 0.622523f, 0.128977f, 0.344812f, 0.826247f, 0.190077f, 0.687314f, 0.112438f, 0.633044f, 0.0851668f, 0.312351f, 0.0345673f, 0.337747f, 0.863044f, 0.768314f, 0.127261f, 0.817728f, 0.498857f, 0.850444f, 0.0438929f, 0.344282f, 0.59962f, 0.48862f, 0.843066f, 0.0400887f, 0.344755f, 0.755413f, 0.71701f, 0.843423f, 0.859438f, 0.384985f, 0.221923f, 0.795133f, 0.868294f, 0.15968f, 0.15446f, 0.161986f, 0.520422f, 0.82244f, 0.141847f, 0.0142685f, 0.231809f, 0.166331f, 0.296579f, 0.519988f, 0.898191f, 0.986998f, 0.581005f, 0.764441f, 0.246703f, 0.962021f, 0.305047f, 0.385845f, 0.558912f, 0.734187f, 0.486664f, 0.727426f, 0.645535f, 0.77368f, 0.620122f, 0.549884f, 0.151009f, 0.719495f, 0.198852f, 0.663813f, 0.0212f, 0.590674f, 0.339498f, 0.910916f, 0.67548f, 0.704248f, 0.10258f, 0.378093f, 0.504135f, 0.731606f, 0.37598f, 0.524782f, 0.305907f, 0.840336f, 0.0435258f, 0.517255f, 0.820124f, 0.455485f, 0.382279f, 0.258978f, 0.0118907f, 0.574468f, 0.000370391f, 0.535995f, 0.0437597f, 0.494886f, 0.529831f, 0.371977f, 0.878498f, 0.592735f, 0.579801f, 0.213448f, 0.136356f, 0.502449f, 0.421104f, 0.0246227f, 0.138632f, 0.166079f, 0.903021f, 0.208556f, 0.0275364f, 0.59723f, 0.572199f, 0.612322f, 0.0801436f, 0.755741f, 0.635786f, 0.748222f, 0.844535f, 0.854072f, 0.545856f, 0.981599f, 0.259136f, 0.815326f, 0.682794f, 0.225271f, 0.278167f, 0.293423f, 0.032971f, 0.898458f, 0.207444f, 0.591989f, 0.0866576f, 0.137149f, 0.56238f, 0.566976f, 0.805517f, 0.0404672f, 0.472306f, 0.0942821f, 0.972937f, 0.467296f, 0.270338f, 0.710223f, 0.244662f, 0.664424f, 0.592779f, 0.305683f, 0.242862f, 0.706691f, 0.916735f, 0.306694f, 0.768377f, 0.868677f, 0.908373f, 0.768993f, 0.927949f, 0.468041f, 0.460656f, 0.400875f, 0.434938f, 0.290367f, 0.232434f, 0.357157f, 0.0128459f, 0.437152f, 0.466177f, 0.657715f, 0.727624f, 0.972282f, 0.733378f, 0.856529f, 0.633336f, 0.816966f, 0.717271f, 0.707479f, 0.157193f, 0.104709f, 0.663118f, 0.354479f, 0.298013f, 0.978317f, 0.359396f, 0.0353948f, 0.935718f, 0.491857f, 0.268235f, 0.777505f, 0.228963f, 0.541129f, 0.393863f, 0.55355f, 0.269054f, 0.14284f, 0.766364f, 0.968131f, 0.948895f, 0.106029f, 0.4013f, 0.321956f, 0.410192f, 0.578325f, 0.692227f, 0.727088f, 0.493178f, 0.583339f, 0.79957f, 0.483175f, 0.369821f, 0.685034f, 0.481991f, 0.172286f, 0.589553f, 0.816481f, 0.517605f, 0.878193f, 0.710538f, 0.899827f, 0.268533f, 0.584388f, 0.76881f, 0.526527f, 0.896592f, 0.274417f, 0.46026f, 0.795278f, 0.807539f, 0.968379f, 0.234594f, 0.0148252f, 0.29242f, 0.31012f, 0.966512f, 0.511125f, 0.892265f, 0.545913f, 0.48244f, 0.647221f, 0.645802f, 0.0762699f, 0.41632f, 0.274838f, 0.434929f, 0.950228f, 0.544201f, 0.954981f, 0.0945208f, 0.970956f, 0.122549f, 0.870073f, 0.344364f, 0.867787f, 0.418752f, 0.762004f, 0.580309f, 0.0475792f, 0.867132f, 0.830557f, 0.409413f, 0.670011f, 0.593376f, 0.289237f, 0.269791f, 0.178829f, 0.505401f, 0.565177f, 0.753664f, 0.318758f, 0.258873f, 0.825573f, 0.0131477f, 0.0329788f, 0.191514f, 0.406331f, 0.55217f, 0.911449f, 0.42773f, 0.912159f, 0.743448f, 0.329714f, 0.174694f, 0.599153f, 0.725145f, 0.489082f, 0.122147f, 0.922033f, 0.0334803f, 0.875512f, 0.735841f, 0.396567f, 0.666394f, 0.5934f, 0.0900951f, 0.546536f, 0.132565f, 0.030356f, 0.108104f, 0.318712f, 0.905341f, 0.561999f, 0.00227073f, 0.611036f, 0.446425f, 0.642674f, 0.791669f, 0.745705f, 0.627445f, 0.711358f, 0.300592f, 0.191491f, 0.0734605f, 0.926486f, 0.971534f, 0.216448f, 0.358948f, 0.797552f, 0.688223f, 0.902068f, 0.327787f, 0.538522f, 0.0104212f, 0.861041f, 0.230189f, 0.724042f, 0.7413f, 0.238936f, 0.979917f, 0.842628f, 0.00761529f, 0.276444f, 0.728593f, 0.721653f, 0.466402f, 0.493275f, 0.850108f, 0.957943f, 0.0201826f, 0.285425f, 0.46538f, 0.889115f, 0.934114f, 0.323059f, 0.0640352f, 0.412287f, 0.069839f, 0.815932f, 0.535348f, 0.618055f, 0.282584f, 0.645283f, 0.256193f, 0.831606f, 0.61696f, 0.478114f, 0.330771f, 0.0245916f, 0.148101f, 0.221962f, 0.0699719f, 0.418363f, 0.136999f, 0.272119f, 0.332734f, 0.323022f, 0.651946f, 0.230852f, 0.57896f, 0.445126f, 0.241903f, 0.782573f, 0.212796f, 0.912807f, 0.713923f, 0.184787f, 0.17394f, 0.45225f, 0.0527854f, 0.956684f, 0.913021f, 0.918269f, 0.329428f, 0.178272f, 0.996181f, 0.147719f, 0.620964f, 0.977922f, 0.221524f, 0.909216f, 0.762584f, 0.15674f, 0.877335f, 0.853397f, 0.0209881f, 0.00119366f, 0.00917235f, 0.837708f, 0.98003f, 0.749812f, 0.238334f, 0.290615f, 0.765851f, 0.827644f, 0.0230157f, 0.488133f, 0.716798f, 0.630641f, 0.375724f, 0.932843f, 0.582879f, 0.526096f, 0.63768f, 0.960393f, 0.0611636f, 0.287294f, 0.339218f, 0.255489f, 0.160588f, 0.361207f, 0.864941f, 0.117415f, 0.914865f, 0.925241f, 0.934864f, 0.363426f, 0.06626f, 0.883645f, 0.548197f, 0.988083f, 0.687007f, 0.922413f, 0.416053f, 0.584185f, 0.454536f, 0.966501f, 0.468235f, 0.473619f, 0.564859f, 0.781558f, 0.292176f, 0.913656f, 0.234248f, 0.390464f, 0.223829f, 0.936763f, 0.222495f, 0.00311183f, 0.23431f, 0.67509f, 0.881006f, 0.5757f, 0.501437f, 0.403494f, 0.746247f, 0.827228f, 0.798622f, 0.0268835f, 0.620371f, 0.315765f, 0.256495f, 0.232294f, 0.524494f, 0.701232f, 0.966621f, 0.399158f, 0.877522f, 0.50706f, 0.848481f, 0.571029f, 0.844272f, 0.269454f, 0.264118f, 0.566283f, 0.584814f, 0.798329f, 0.806105f, 0.693213f, 0.652205f, 0.523262f, 0.666253f, 0.102989f, 0.989356f, 0.618731f, 0.535509f, 0.736631f, 0.433495f, 0.15008f, 0.0706011f, 0.873053f, 0.0523965f, 0.918687f, 0.393388f, 0.172067f, 0.930569f, 0.0978199f, 0.447101f, 0.523367f, 0.609299f, 0.0901271f, 0.890782f, 0.307543f, 0.945913f, 0.997703f, 0.108629f, 0.348304f, 0.348333f, 0.00204869f, 0.122618f, 0.0938569f, 0.794874f, 0.305123f, 0.364302f, 0.728145f, 0.274895f, 0.00512434f, 0.417486f, 0.870662f, 0.616409f, 0.0514523f, 0.394643f, 0.0589114f, 0.952772f, 0.82066f, 0.58701f, 0.630937f, 0.0806043f, 0.153536f, 0.753016f, 0.673523f, 0.116033f, 0.795464f, 0.774427f, 0.161471f, 0.514159f, 0.352222f, 0.175217f, 0.947267f, 0.238156f, 0.696229f, 0.673384f, 0.800644f, 0.805077f, 0.833149f, 0.910582f, 0.903417f, 0.719841f, 0.535921f, 0.321334f, 0.731686f, 0.165966f, 0.29207f, 0.0382712f, 0.724159f, 0.444494f, 0.228684f, 0.850965f, 0.239151f, 0.0766897f, 0.939425f, 0.355534f, 0.732126f, 0.647372f, 0.0665641f, 0.237258f, 0.567454f, 0.990579f, 0.00466232f, 0.404217f, 0.99872f, 0.846181f, 0.708998f, 0.264811f, 0.137258f, 0.390717f, 0.646865f, 0.578728f, 0.940499f, 0.398576f, 0.791966f, 0.847309f, 0.910536f, 0.305601f, 0.223202f, 0.671371f, 0.575081f, 0.418981f, 0.718384f, 0.785501f, 0.714349f, 0.993204f, 0.220676f, 0.0463192f, 0.436105f, 0.969991f, 0.788946f, 0.839453f, 0.205625f, 0.765504f, 0.549265f, 0.952862f, 0.315553f, 0.708387f, 0.278794f, 0.53273f, 0.396267f, 0.639137f, 0.417389f, 0.536962f, 0.778538f, 0.0704751f, 0.209171f, 0.421222f, 0.329966f, 0.958506f, 0.362686f, 0.781173f, 0.36151f, 0.992726f, 0.739856f, 0.404086f, 0.955045f, 0.335428f, 0.317527f, 0.033478f, 0.266236f, 0.329765f, 0.898863f, 0.892905f, 0.548673f, 0.974924f, 0.222934f, 0.300501f, 0.803623f, 0.657457f, 0.0926151f, 0.893657f, 0.863848f, 0.317299f, 0.368237f, 0.404105f, 0.856653f, 0.459946f, 0.417223f, 0.164491f, 0.517928f, 0.249446f, 0.855886f, 0.395833f, 0.111271f, 0.972095f, 0.867095f, 0.791977f, 0.850217f, 0.281371f, 0.311965f, 0.16241f, 0.137629f, 0.636136f, 0.0583402f, 0.614807f, 0.164026f, 0.869045f, 0.278282f, 0.215324f, 0.506442f, 0.530095f, 0.164135f, 0.813471f, 0.420058f, 0.375853f, 0.688981f, 0.976384f, 0.179628f, 0.620888f, 0.952071f, 0.17401f, 0.682865f, 0.607785f, 0.472553f, 0.0930836f, 0.321095f, 0.275772f, 0.484247f, 0.606148f, 0.246217f, 0.6663f, 0.0347261f, 0.38875f, 0.963596f, 0.570533f, 0.0792511f, 0.639529f, 0.918089f, 0.34228f, 0.0651234f, 0.847136f, 0.048013f, 0.0773289f, 0.118597f, 0.557397f, 0.92688f, 0.502407f, 0.205696f, 0.871466f, 0.145665f, 0.948064f, 0.527651f, 0.309527f, 0.525342f, 0.848226f, 0.48169f, 0.287602f, 0.911198f, 0.816496f, 0.954854f, 0.958746f, 0.830337f, 0.0193145f, 0.234588f, 0.708238f, 0.96585f, 0.281358f, 0.748971f, 0.846833f, 0.150531f, 0.149437f, 0.59636f, 0.132067f, 0.684251f, 0.00824953f, 0.470071f, 0.646633f, 0.834605f, 0.702461f, 0.699978f, 0.0397383f, 0.0385084f, 0.408672f, 0.7886f, 0.704932f, 0.905495f, 0.949505f, 0.0158733f, 0.0311443f, 0.904186f, 0.725075f, 0.96919f, 0.0891038f, 0.721771f, 0.812275f, 0.0929913f, 0.752498f, 0.702842f, 0.617272f, 0.00415427f, 0.195183f, 0.0923236f, 0.584529f, 0.100009f, 0.965539f, 0.853122f, 0.186088f, 0.354098f, 0.545862f, 0.593046f, 0.0472148f, 0.431368f, 0.951433f, 0.350727f, 0.128205f, 0.011742f, 0.15187f, 0.379414f, 0.370228f, 0.704354f, 0.446088f, 0.390218f, 0.0558316f, 0.505985f, 0.522278f, 0.330331f, 0.879995f, 0.983962f, 0.702965f, 0.839292f, 0.644988f, 0.497466f, 0.137148f, 0.36727f, 0.241909f, 0.0717726f, 0.163127f, 0.356664f, 0.945429f, 0.525523f, 0.407935f, 0.895344f, 0.271098f, 0.564412f, 0.279167f, 0.332507f, 0.0262576f, 0.356067f, 0.519654f, 0.562258f, 0.0140433f, 0.775724f, 0.14861f, 0.501813f, 0.644077f, 0.507464f, 0.039158f, 0.227907f, 0.564984f, 0.0942694f, 0.99136f, 0.421523f, 0.199493f, 0.414941f, 0.758915f, 0.471849f, 0.540802f, 0.540249f, 0.044356f, 0.458094f, 0.419721f, 0.414693f, 0.491922f, 0.598583f, 0.436652f, 0.0778936f, 0.871026f, 0.18228f, 0.703523f, 0.95991f, 0.736018f, 0.884932f, 0.372552f, 0.633964f, 0.505102f, 0.701651f, 0.120149f, 0.705858f, 0.846772f, 0.356507f, 0.453378f, 0.488071f, 0.455906f, 0.818895f, 0.768284f, 0.749975f, 0.424067f, 0.763081f, 0.4972f, 0.525275f, 0.436984f, 0.720872f, 0.841366f, 0.603379f, 0.203636f, 0.247814f, 0.0345843f, 0.233446f, 0.437879f, 0.494484f, 0.442268f, 0.172725f, 0.446337f, 0.0668237f, 0.622904f, 0.650961f, 0.235228f, 0.578706f, 0.00703805f, 0.751831f, 0.622382f, 0.605212f, 0.168761f, 0.282641f, 0.946553f, 0.629277f, 0.576287f, 0.863389f, 0.618427f, 0.366435f, 0.879814f, 0.281041f, 0.514958f, 0.472468f, 0.972822f, 0.683152f, 0.381074f, 0.363323f, 0.4224f, 0.196619f, 0.789101f, 0.578645f, 0.725778f, 0.408127f, 0.853077f, 0.702061f, 0.376187f, 0.0197272f, 0.72053f, 0.0561716f, 0.869047f, 0.167927f, 0.840342f, 0.280166f, 0.719879f, 0.0903317f, 0.970616f, 0.716263f, 0.962585f, 0.967102f, 0.478998f, 0.400097f, 0.0836012f, 0.396025f, 0.76018f, 0.588775f, 0.619031f, 0.946067f, 0.725609f, 0.689145f, 0.590953f, 0.00765291f, 0.828622f, 0.00518687f, 0.580943f, 0.485026f, 0.625951f, 0.478734f, 0.160152f, 0.694386f, 0.651113f, 0.88445f, 0.136163f, 0.515494f, 0.0715804f, 0.999748f, 0.0278632f, 0.997742f, 0.137615f, 0.912324f, 0.548444f, 0.107588f, 0.261158f, 0.177504f, 0.656161f, 0.494523f, 0.654332f, 0.553197f, 0.0268269f, 0.429406f, 0.4434f, 0.530819f, 0.951542f, 0.86911f, 0.75036f, 0.423428f, 0.35158f, 0.0924659f, 0.333847f, 0.841109f, 0.198169f, 0.881253f, 0.760105f, 0.780111f, 0.55177f, 0.517346f, 0.868177f, 0.931512f, 0.0381506f, 0.922693f, 0.988944f, 0.40053f, 0.821572f, 0.782145f, 0.443022f, 0.820517f, 0.00390795f, 0.840286f, 0.676976f, 0.123703f, 0.313046f, 0.120498f, 0.968606f, 0.112176f, 0.18899f, 0.713064f, 0.486598f, 0.278596f, 0.640871f, 0.890861f, 0.951679f, 0.499786f, 0.673355f, 0.444727f, 0.442644f, 0.0730863f, 0.812623f, 0.493647f, 0.603035f, 0.376251f, 0.116347f, 0.130119f, 0.398594f, 0.123375f, 0.475441f, 0.179478f, 0.152404f, 0.984536f, 0.733495f, 0.460671f, 0.821167f, 0.326116f, 0.373722f, 0.00906352f, 0.470281f, 0.654762f, 0.14537f, 0.475416f, 0.670019f, 0.485323f, 0.768884f, 0.143904f, 0.119491f, 0.928004f, 0.545244f, 0.73309f, 0.343575f, 0.269428f, 0.834233f, 0.100279f, 0.629533f, 0.223478f, 0.450849f, 0.577506f, 0.188136f, 0.128219f, 0.705481f, 0.606171f, 0.832358f, 0.931524f, 0.361377f, 0.0558561f, 0.361013f, 0.732288f, 0.730804f, 0.219975f, 0.413246f, 0.621713f, 0.940006f, 0.570548f, 0.0191787f, 0.347977f, 0.788357f, 0.725187f, 0.429053f, 0.659885f, 0.562865f, 0.268399f, 0.63032f, 0.888551f, 0.258158f, 0.975291f, 0.698359f, 0.156681f, 0.1022f, 0.989513f, 0.472163f, 0.911954f, 0.607903f, 0.87819f, 0.0606918f, 0.507271f, 0.921854f, 0.623615f, 0.915042f, 0.24713f, 0.543187f, 0.110192f, 0.451849f, 0.163348f, 0.462212f, 0.841569f, 0.0780443f, 0.116758f, 0.467247f, 0.673064f, 0.379408f, 0.292629f, 0.436334f, 0.442518f, 0.819146f, 0.631085f, 0.616979f, 0.0483111f, 0.4686f, 0.37471f, 0.830827f, 0.619665f, 0.795623f, 0.102122f, 0.489741f, 0.0455496f, 0.683585f, 0.494164f, 0.745055f, 0.398608f, 0.295058f, 0.371217f, 0.872504f, 0.480796f, 0.0173388f, 0.219129f, 0.980498f, 0.0183539f, 0.913636f, 0.790602f, 0.370361f, 0.681016f, 0.981706f, 0.305975f, 0.545098f, 0.373718f, 0.213687f, 0.217866f, 0.395677f, 0.948431f, 0.00718711f, 0.457265f, 0.320963f, 0.522622f, 0.519726f, 0.717045f, 0.415632f, 0.701428f, 0.152629f, 0.895539f, 0.947062f, 0.656078f, 0.127093f, 0.542125f, 0.635967f, 0.835364f, 0.0349438f, 0.792948f, 0.960612f, 0.379756f, 0.95115f, 0.873927f, 0.655596f, 0.148976f, 0.941628f, 0.380821f, 0.00826947f, 0.409044f, 0.657992f, 0.0977822f, 0.829968f, 0.00873706f, 0.848394f, 0.265941f, 0.382801f, 0.977807f, 0.101359f, 0.965118f, 0.448092f, 0.655582f, 0.952793f, 0.868007f, 0.221387f, 0.0432116f, 0.85909f, 0.260964f, 0.497213f, 0.359838f, 0.146938f, 0.499124f, 0.445027f, 0.956239f, 0.588245f, 0.147695f, 0.84798f, 0.693045f, 0.268923f, 0.173119f, 0.83999f, 0.617523f, 0.0598578f, 0.34214f, 0.13044f, 0.152647f, 0.56152f, 0.413558f, 0.617507f, 0.812179f, 0.822745f, 0.2821f, 0.143157f, 0.454069f, 0.765582f, 0.366272f, 0.78521f, 0.903761f, 0.719538f, 0.262567f, 0.483337f, 0.0533463f, 0.973436f, 0.192161f, 0.224715f, 0.988409f, 0.873201f, 0.936524f, 0.487589f, 0.786111f, 0.442394f, 0.699116f, 0.731332f, 0.127783f, 0.380516f, 0.983647f, 0.0366471f, 0.812196f, 0.815976f, 0.314281f, 0.0170025f, 0.849733f, 0.271804f, 0.125294f, 0.247795f, 0.591157f, 0.640856f, 0.659722f, 0.39571f, 0.494928f, 0.231015f, 0.354281f, 0.368856f, 0.348567f, 0.697968f, 0.457834f, 0.153735f, 0.741447f, 0.161638f, 0.781368f, 0.832466f, 0.670395f, 0.818395f, 0.805167f, 0.320835f, 0.18359f, 0.0279467f, 0.511568f, 0.585307f, 0.460593f, 0.881784f, 0.0247689f, 0.69081f, 0.160754f, 0.10876f, 0.141596f, 0.298767f, 0.684746f, 0.386982f, 0.603978f, 0.0342262f, 0.192914f, 0.535633f, 0.689069f, 0.574535f, 0.382116f, 0.541315f, 0.60476f, 0.0825558f, 0.887844f, 0.527358f, 0.292189f, 0.360623f, 0.459004f, 0.100286f, 0.923335f, 0.259623f, 0.0195067f, 0.076642f, 0.794031f, 0.438567f, 0.738351f, 0.0244942f, 0.133518f, 0.575819f, 0.148434f, 0.0901353f, 0.685618f, 0.644974f, 0.427246f, 0.391579f, 0.824913f, 0.828225f, 0.260032f, 0.938803f, 0.77495f, 0.230349f, 0.478557f, 0.411945f, 0.970463f, 0.458079f, 0.220708f, 0.471714f, 0.531153f, 0.424397f, 0.737736f, 0.885419f, 0.194601f, 0.11476f, 0.68696f, 0.0892846f, 0.839981f, 0.583536f, 0.436056f, 0.382743f, 0.311323f, 0.319753f, 0.58397f, 0.0815436f, 0.380069f, 0.18136f, 0.267518f, 0.830066f, 0.0584171f, 0.139266f, 0.273065f, 0.171726f, 0.00458768f, 0.222857f, 0.925623f, 0.900361f, 0.51574f, 0.596751f, 0.813189f, 0.197677f, 0.0567514f, 0.710202f, 0.824086f, 0.439462f, 0.0231343f, 0.218383f, 0.791127f, 0.0592606f, 0.819213f, 0.293942f, 0.732215f, 0.524439f, 0.0745607f, 0.566805f, 0.327065f, 0.297679f, 0.863037f, 0.192395f, 0.550365f, 0.505564f, 0.721567f, 0.235523f, 0.190249f, 0.704856f, 0.610154f, 0.63136f, 0.50305f, 0.0138194f, 0.850425f, 0.267358f, 0.88102f, 0.618658f, 0.333025f, 0.714303f, 0.85966f, 0.278003f, 0.948647f, 0.274045f, 0.548061f, 0.432696f, 0.238113f, 0.434919f, 0.838559f, 0.332847f, 0.466082f, 0.0999418f, 0.714829f, 0.23849f, 0.189547f, 0.300622f, 0.378781f, 0.412515f, 0.085281f, 0.376209f, 0.130332f, 0.394384f, 0.513449f, 0.14577f, 0.878797f, 0.344062f, 0.0608711f, 0.334307f, 0.479975f, 0.96941f, 0.883748f, 0.81579f, 0.708103f, 0.118562f, 0.951975f, 0.569436f, 0.13403f, 0.436409f, 0.677935f, 0.273193f, 0.335325f, 0.187648f, 0.899499f, 0.872155f, 0.151509f, 0.145164f, 0.5847f, 0.22331f, 0.987865f, 0.50343f, 0.44699f, 0.254158f, 0.417958f, 0.0958172f, 0.812483f, 0.61296f, 0.545265f, 0.717791f, 0.344686f, 0.970344f, 0.26587f, 0.27406f, 0.696818f, 0.659104f, 0.0912778f, 0.467363f, 0.89569f, 0.327195f, 0.990539f, 0.691432f, 0.693244f, 0.301676f, 0.328546f, 0.142788f, 0.534478f, 0.310121f, 0.606257f, 0.388767f, 0.327255f, 0.148937f, 0.0259379f, 0.411983f, 0.26551f, 0.321967f, 0.306039f, 0.228785f, 0.706771f, 0.257146f, 0.530639f, 0.100971f, 0.490982f, 0.171569f, 0.690203f, 0.0361563f, 0.767452f, 0.0241055f, 0.819421f, 0.184101f, 0.535402f, 0.620448f, 0.37025f, 0.911208f, 0.0526985f, 0.0206299f, 0.58876f, 0.78452f, 0.492915f, 0.906777f, 0.186986f, 0.87997f, 0.917257f, 0.688995f, 0.343211f, 0.734597f, 0.22362f, 0.368586f, 0.0182799f, 0.719629f, 0.115835f, 0.495449f, 0.809409f, 0.286502f, 0.0485891f, 0.184236f, 0.439232f, 0.667535f, 0.00833676f, 0.059481f, 0.967009f, 0.0198153f, 0.264556f, 0.00745546f, 0.799353f, 0.466681f, 0.0255029f, 0.678498f, 0.910946f, 0.324607f, 0.464767f, 0.552058f, 0.18444f, 0.0361328f, 0.0227582f, 0.0674545f, 0.368733f, 0.400464f, 0.906985f, 0.271797f, 0.559386f, 0.533035f, 0.294351f, 0.318373f, 0.653618f, 0.57181f, 0.198214f, 0.603756f, 0.390974f, 0.524731f, 0.520782f, 0.935463f, 0.322266f, 0.292861f, 0.682226f, 0.797106f, 0.657701f, 0.620764f, 0.935634f, 0.207937f, 0.150121f, 0.77422f, 0.498341f, 0.854207f, 0.73603f, 0.618928f, 0.857614f, 0.615123f, 0.436601f, 0.999654f, 0.0346577f, 0.382397f, 0.23578f, 0.159694f, 0.802898f, 0.849086f, 0.173601f, 0.566291f, 0.503663f, 0.000907791f, 0.432908f, 0.53626f, 0.635057f, 0.628095f, 0.540216f, 0.441974f, 0.143542f, 0.504998f, 0.377366f, 0.0626754f, 0.982903f, 0.132925f, 0.0336424f, 0.312857f, 0.968753f, 0.114558f, 0.608768f, 0.809536f, 0.935645f, 0.43272f, 0.98957f, 0.988015f, 0.274683f, 0.436491f, 0.837444f, 0.63347f, 0.823653f, 0.736343f, 0.373134f, 0.330846f, 0.840348f, 0.774259f, 0.830891f, 0.0710832f, 0.795044f, 0.0787441f, 0.11598f, 0.881855f, 0.046912f, 0.575393f, 0.296416f, 0.690396f, 0.234348f, 0.75564f, 0.422779f, 0.00751931f, 0.495845f, 0.840722f, 0.742031f, 0.378829f, 0.0470899f, 0.453174f, 0.0802341f, 0.469482f, 0.574094f, 0.592449f, 0.765529f, 0.053402f, 0.0650745f, 0.607268f, 0.181792f, 0.0122882f, 0.412182f, 0.403988f, 0.50623f, 0.206251f, 0.594131f, 0.00580781f, 0.354479f, 0.425606f, 0.641162f, 0.139522f, 0.965019f, 0.464224f, 0.661f, 0.400405f, 0.244725f, 0.210046f, 0.760081f, 0.366116f, 0.941694f, 0.457962f, 0.452597f, 0.00660253f, 0.491631f, 0.953025f, 0.870781f, 0.658575f, 0.877662f, 0.565561f, 0.290575f, 0.575348f, 0.733281f, 0.628795f, 0.978421f, 0.560043f, 0.490786f, 0.884137f, 0.2642f, 0.32807f, 0.352803f, 0.246648f, 0.354934f, 0.747577f, 0.538506f, 0.736983f, 0.365859f, 0.902217f, 0.925401f, 0.12419f, 0.234035f, 0.85746f, 0.627068f, 0.297742f, 0.571606f, 0.113314f, 0.211255f, 0.796477f, 0.695486f, 0.198958f, 0.00534874f, 0.838085f, 0.717911f, 0.843605f, 0.90015f, 0.196225f, 0.847855f, 0.970182f, 0.0179115f, 0.920947f, 0.0310982f, 0.0923537f, 0.37261f, 0.248712f, 0.331397f, 0.765657f, 0.107262f, 0.991801f, 0.267758f, 0.602164f, 0.994922f, 0.96184f, 0.908249f, 0.0253487f, 0.468285f, 0.225145f, 0.507848f, 0.231158f, 0.826418f, 0.487689f, 0.431842f, 0.216524f, 0.873633f, 0.6352f, 0.332248f, 0.176249f, 0.771305f, 0.764552f, 0.585991f, 0.137447f, 0.640685f, 0.550652f, 0.652009f, 0.0314484f, 0.789505f, 0.512971f, 0.0248802f, 0.933123f, 0.063926f, 0.875311f, 0.905833f, 0.163972f, 0.451923f, 0.0538253f, 0.454843f, 0.306446f, 0.676538f, 0.456339f, 0.855465f, 0.539155f, 0.598855f, 0.0534005f, 0.597041f, 0.535691f, 0.206426f, 0.877376f, 0.476916f, 0.980647f, 0.79618f, 0.0319222f, 0.758395f, 0.732991f, 0.823359f, 0.246999f, 0.00202494f, 0.960105f, 0.695987f, 0.708624f, 0.90967f, 0.823499f, 0.580391f, 0.657391f, 0.72101f, 0.0825454f, 0.537206f, 0.966665f, 0.615661f, 0.675438f, 0.573968f, 0.258932f, 0.0796575f, 0.214016f, 0.720248f, 0.205112f, 0.932885f, 0.350038f, 0.78394f, 0.674189f, 0.712033f, 0.0894086f, 0.166538f, 0.68876f, 0.855589f, 0.284384f, 0.0357575f, 0.225892f, 0.801603f, 0.957358f, 0.308581f, 0.877395f, 0.895488f, 0.394516f, 0.689515f, 0.333916f, 0.416193f, 0.953052f, 0.650364f, 0.394527f, 0.755367f, 0.396756f, 0.704499f, 0.0453959f, 0.94101f, 0.368692f, 0.267167f, 0.888319f, 0.288094f, 0.957726f, 0.882679f, 0.668571f, 0.440301f, 0.128254f, 0.98723f, 0.859162f, 0.373156f, 0.894042f, 0.565849f, 0.437508f, 0.728492f, 0.0955409f, 0.250962f, 0.926881f, 0.48577f, 0.353221f, 0.98645f, 0.506324f, 0.0770055f, 0.341273f, 0.523949f, 0.0977201f, 0.782153f, 0.97177f, 0.0705393f, 0.862642f, 0.353276f, 0.729284f, 0.180151f, 0.429601f, 0.285683f, 0.921411f, 0.975469f, 0.139252f, 0.53892f, 0.0100419f, 0.785333f, 0.395086f, 0.282003f, 0.110533f, 0.502591f, 0.680647f, 0.899728f, 0.722176f, 0.608043f, 0.119715f, 0.361689f, 0.201586f, 0.752717f, 0.312592f, 0.689275f, 0.848409f, 0.248991f, 0.921938f, 0.554438f, 0.901945f, 0.827006f, 0.426345f, 0.576863f, 0.964859f, 0.806244f, 0.0234316f, 0.665693f, 0.551361f, 0.252924f, 0.213853f, 0.15006f, 0.741355f, 0.172567f, 0.828515f, 0.605658f, 0.869355f, 0.271804f, 0.0344066f, 0.290958f, 0.976558f, 0.694829f, 0.14866f, 0.889921f, 0.543477f, 0.646464f, 0.439362f, 0.894357f, 0.867245f, 0.425842f, 0.82009f, 0.273842f, 0.43805f, 0.559275f, 0.202145f, 0.316164f, 0.214817f, 0.605823f, 0.101551f, 0.994712f, 0.241246f, 0.124724f, 0.778991f, 0.229642f, 0.432384f, 0.0791583f, 0.460771f, 0.280549f, 0.897206f, 0.986457f, 0.649935f, 0.0944081f, 0.55202f, 0.368493f, 0.20841f, 0.320486f, 0.799556f, 0.136362f, 0.652654f, 0.913601f, 0.805755f, 0.731705f, 0.781295f, 0.731737f, 0.452055f, 0.117141f, 0.455526f, 0.802994f, 0.899669f, 0.589887f, 0.564842f, 0.281019f, 0.844517f, 0.0374629f, 0.729554f, 0.200922f, 0.100941f, 0.939185f, 0.277081f, 0.567922f, 0.453395f, 0.241402f, 0.659322f, 0.5809f, 0.449243f, 0.532492f, 0.289835f, 0.0836161f, 0.157201f, 0.236284f, 0.0372842f, 0.776088f, 0.0816245f, 0.260832f, 0.770074f, 0.112621f, 0.226661f, 0.845001f, 0.781261f, 0.680766f, 0.109199f, 0.453802f, 0.773556f, 0.270642f, 0.838856f, 0.495279f, 0.0995587f, 0.96076f, 0.570524f, 0.139087f, 0.35498f, 0.283695f, 0.398509f, 0.638504f, 0.305007f, 0.727488f, 0.982274f, 0.723471f, 0.757266f, 0.717239f, 0.842543f, 0.144779f, 0.52728f, 0.376157f, 0.375466f, 0.383735f, 0.0684799f, 0.75257f, 0.241517f, 0.189292f, 0.510436f, 0.882453f, 0.395124f, 0.629403f, 0.71659f, 0.164524f, 0.856016f, 0.29599f, 0.00388109f, 0.0455246f, 0.553535f, 0.31949f, 0.606457f, 0.314088f, 0.168787f, 0.866016f, 0.17326f, 0.985027f, 0.840441f, 0.162676f, 0.308419f, 0.17278f, 0.630288f, 0.286061f, 0.390912f, 0.565466f, 0.482973f, 0.590098f, 0.363479f, 0.858017f, 0.324386f, 0.0734636f, 0.171853f, 0.285879f, 0.677045f, 0.746952f, 0.362523f, 0.277648f, 0.640389f, 0.542529f, 0.884883f, 0.873881f, 0.57068f, 0.12913f, 0.0727719f, 0.490731f, 0.193608f, 0.537301f, 0.174337f, 0.167731f, 0.251585f, 0.7421f, 0.695198f, 0.0714191f, 0.753958f, 0.175875f, 0.333626f, 0.410325f, 0.0853843f, 0.0373917f, 0.165545f, 0.585172f, 0.653036f, 0.197596f, 0.708798f, 0.891825f, 0.0530165f, 0.317699f, 0.0242943f, 0.828267f, 0.298553f, 0.606522f, 0.40722f, 0.3028f, 0.428068f, 0.413235f, 0.290394f, 0.928764f, 0.138489f, 0.621233f, 0.473565f, 0.502569f, 0.915934f, 0.852129f, 0.958256f, 0.833769f, 0.330935f, 0.285965f, 0.39583f, 0.34437f, 0.79406f, 0.695471f, 0.489019f, 0.647326f, 0.887059f, 0.196765f, 0.800299f, 0.577649f, 0.162322f, 0.197486f, 0.532213f, 0.17609f, 0.339781f, 0.803967f, 0.969291f, 0.562249f, 0.311154f, 0.108128f, 0.0232262f, 0.254611f, 0.541964f, 0.302667f, 0.0340515f, 0.856238f, 0.0921222f, 0.0162616f, 0.0129496f, 0.643613f, 0.668873f, 0.949685f, 0.243754f, 0.160607f, 0.66376f, 0.100144f, 0.406273f, 0.901384f, 0.821828f, 0.449341f, 0.323655f, 0.659461f, 0.335132f, 0.713815f, 0.876345f, 0.860541f, 0.8655f, 0.118372f, 0.915771f, 0.264669f, 0.186303f, 0.987255f, 0.0511815f, 0.242539f, 0.481547f, 0.238834f, 0.90557f, 0.610321f, 0.0153901f, 0.0686374f, 0.990621f, 0.155924f, 0.237609f, 0.867834f, 0.402889f, 0.234611f, 0.502406f, 0.454898f, 0.033149f, 0.963711f, 0.29053f, 0.00613623f, 0.713888f, 0.83206f, 0.544744f, 0.912221f, 0.418114f, 0.104555f, 0.852651f, 0.239303f, 0.533597f, 0.0633394f, 0.369369f, 0.0363332f, 0.738775f, 0.129987f, 0.989882f, 0.0903476f, 0.67066f, 0.984484f, 0.731707f, 0.204108f, 0.262011f, 0.790277f, 0.407431f, 0.695728f, 0.515828f, 0.80544f, 0.396803f, 0.738432f, 0.300266f, 0.41094f, 0.0174427f, 0.792764f, 0.962807f, 0.19489f, 0.392264f, 0.0250602f, 0.549187f, 0.423237f, 0.990243f, 0.0709377f, 0.279543f, 0.441153f, 0.829393f, 0.79389f, 0.342466f, 0.556978f, 0.723297f, 0.61761f, 0.474607f, 0.703597f, 0.314514f, 0.436039f, 0.0284574f, 0.919066f, 0.361321f, 0.144575f, 0.0145018f, 0.0113933f, 0.0174701f, 0.987526f, 0.630435f, 0.0479874f, 0.858087f, 0.84096f, 0.0279664f, 0.991547f, 0.971255f, 0.693827f, 0.213036f, 0.983827f, 0.0670754f, 0.502464f, 0.67391f, 0.860976f, 0.0579069f, 0.652105f, 0.516673f, 0.177516f, 0.788812f, 0.691486f, 0.243459f, 0.318354f, 0.642212f, 0.233111f, 0.16263f, 0.780506f, 0.277115f, 0.476356f, 0.927041f, 0.945656f, 0.757738f, 0.343521f, 0.0523147f, 0.987188f, 0.49376f, 0.980823f, 0.160174f, 0.376507f, 0.530395f, 0.364825f, 0.615636f, 0.646437f, 0.843024f, 0.17215f, 0.358871f, 0.477917f, 0.647662f, 0.298575f, 0.85336f, 0.225717f, 0.324678f, 0.0683453f, 0.0224925f, 0.677301f, 0.503955f, 0.529906f, 0.91943f, 0.167513f, 0.547852f, 0.696627f, 0.922141f, 0.647636f, 0.107806f, 0.412627f, 0.714917f, 0.27587f, 0.337171f, 0.704684f, 0.575313f, 0.124983f, 0.370637f, 0.0729516f, 0.532589f, 0.976727f, 0.819767f, 0.749335f, 0.26185f, 0.0511744f, 0.887902f, 0.655393f, 0.923195f, 0.487177f, 0.289932f, 0.95037f, 0.331985f, 0.272447f, 0.912072f, 0.0122396f, 0.0228211f, 0.0912927f, 0.543144f, 0.130772f, 0.67181f, 0.279073f, 0.28372f, 0.215929f, 0.517065f, 0.12952f, 0.393084f, 0.262185f, 0.249635f, 0.145934f, 0.807771f, 0.289482f, 0.200324f, 0.681676f, 0.971608f, 0.65552f, 0.748534f, 0.732571f, 0.670498f, 0.0325363f, 0.580648f, 0.656321f, 0.387915f, 0.124873f, 0.75155f, 0.968077f, 0.857231f, 0.749537f, 0.769885f, 0.735312f, 0.705178f, 0.716916f, 0.315119f, 0.225334f, 0.781481f, 0.628665f, 0.261255f, 0.279811f, 0.238185f, 0.604197f, 0.543634f, 0.277021f, 0.0191785f, 0.718772f, 0.196327f, 0.372165f, 0.355685f, 0.62155f, 0.834478f, 0.651207f, 0.284066f, 0.210423f, 0.258764f, 0.91941f, 0.888097f, 0.59582f, 0.58614f, 0.491729f, 0.624123f, 0.103061f, 0.704686f, 0.45165f, 0.816415f, 0.334252f, 0.641878f, 0.237831f, 0.406237f, 0.727529f, 0.870321f, 0.337048f, 0.880207f, 0.285846f, 0.645347f, 0.797818f, 0.259991f, 0.939288f, 0.578513f, 0.781581f, 0.375879f, 0.879636f, 0.0595484f, 0.0972308f, 0.85256f, 0.428763f, 0.741762f, 0.01782f, 0.870616f, 0.815716f, 0.442021f, 0.48371f, 0.892933f, 0.0430317f, 0.578327f, 0.728407f, 0.32479f, 0.479309f, 0.411943f, 0.0872487f, 0.835479f, 0.483019f, 0.895263f, 0.783879f, 0.51492f, 0.795512f, 0.724458f, 0.917798f, 0.282119f, 0.729926f, 0.40114f, 0.985559f, 0.332845f, 0.746442f, 0.433681f, 0.0434488f, 0.0174582f, 0.895252f, 0.0738798f, 0.79687f, 0.868855f, 0.351842f, 0.397739f, 0.325166f, 0.0802933f, 0.535825f, 0.531884f, 0.844924f, 0.130376f, 0.803715f, 0.126476f, 0.192147f, 0.494812f, 0.237002f, 0.857296f, 0.309453f, 0.0581357f, 0.0837743f, 0.639852f, 0.354632f, 0.459995f, 0.246271f, 0.262474f, 0.735014f, 0.143103f, 0.267747f, 0.0753686f, 0.739178f, 0.056982f, 0.000799715f, 0.892406f, 0.0882378f, 0.307848f, 0.803027f, 0.379611f, 0.85492f, 0.759238f, 0.163213f, 0.702486f, 0.882134f, 0.186f, 0.313584f, 0.00636078f, 0.0902764f, 0.279897f, 0.002731f, 0.0761079f, 0.384237f, 0.510629f, 0.265343f, 0.752802f, 0.315032f, 0.826784f, 0.882114f, 0.684061f, 0.19909f, 0.436137f, 0.092918f, 0.797831f, 0.473867f, 0.427897f, 0.651829f, 0.47013f, 0.678715f, 0.702407f, 0.751334f, 0.898704f, 0.503614f, 0.391591f, 0.818978f, 0.809887f, 0.173134f, 0.11457f, 0.499702f, 0.119411f, 0.432502f, 0.447374f, 0.110724f, 0.887832f, 0.373947f, 0.923572f, 0.58658f, 0.105036f, 0.395687f, 0.779106f, 0.0784555f, 0.651793f, 0.605048f, 0.538188f, 0.660321f, 0.145508f, 0.648324f, 0.802861f, 0.702262f, 0.881059f, 0.0741259f, 0.590445f, 0.383188f, 0.706176f, 0.325079f, 0.0229505f, 0.592123f, 0.184454f, 0.0730534f, 0.185963f, 0.558702f, 0.375218f, 0.213493f, 0.738839f, 0.729522f, 0.775799f, 0.368516f, 0.408319f, 0.816075f, 0.444964f, 0.700222f, 0.969873f, 0.507899f, 0.395838f, 0.572048f, 0.691337f, 0.0971932f, 0.75407f, 0.397584f, 0.545701f, 0.517708f, 0.0109691f, 0.24587f, 0.163002f, 0.247222f, 0.602707f, 0.274294f, 0.220517f, 0.687453f, 0.625314f, 0.354336f, 0.0765008f, 0.63092f, 0.0958511f, 0.992166f, 0.890581f, 0.145185f, 0.692677f, 0.461927f, 0.833639f, 0.289073f, 0.419842f, 0.583822f, 0.615317f, 0.443634f, 0.756505f, 0.576425f, 0.453629f, 0.555153f, 0.910312f, 0.3237f, 0.533967f, 0.513721f, 0.0136397f, 0.684138f, 0.297949f, 0.787737f, 0.763512f, 0.764406f, 0.236147f, 0.821422f, 0.0213322f, 0.666233f, 0.849554f, 0.11414f, 0.192536f, 0.285084f, 0.653564f, 0.434286f, 0.786304f, 0.528907f, 0.761106f, 0.0746288f, 0.239765f, 0.514716f, 0.902441f, 0.607569f, 0.112535f, 0.584006f, 0.745105f, 0.4699f, 0.368743f, 0.080726f, 0.255656f, 0.869604f, 0.845947f, 0.415419f, 0.304072f, 0.911197f, 0.884525f, 0.510308f, 0.0487977f, 0.0136579f, 0.289214f, 0.584306f, 0.22658f, 0.586476f, 0.46972f, 0.498366f, 0.0254632f, 0.302498f, 0.0300933f, 0.951936f, 0.588805f, 0.687054f, 0.612769f, 0.238319f, 0.920395f, 0.820834f, 0.359552f, 0.772723f, 0.179063f, 0.129578f, 0.686681f, 0.433922f, 0.272652f, 0.870841f, 0.185005f, 0.169098f, 0.809957f, 0.737317f, 0.978393f, 0.75442f, 0.326429f, 0.574537f, 0.731576f, 0.427291f, 0.0750111f, 0.457059f, 0.365844f, 0.982787f, 0.713434f, 0.626172f, 0.943071f, 0.0118104f, 0.65924f, 0.858937f, 0.674435f, 0.824603f, 0.196461f, 0.47366f, 0.91418f, 0.262746f, 0.0576108f, 0.27483f, 0.0246422f, 0.0231248f, 0.963983f, 0.69429f, 0.817413f, 0.260235f, 0.198479f, 0.673689f, 0.437309f, 0.387193f, 0.425213f, 0.181452f, 0.290977f, 0.316833f, 0.998587f, 0.931413f, 0.601316f, 0.278275f, 0.456332f, 0.895515f, 0.50595f, 0.147378f, 0.719282f, 0.00545705f, 0.799354f, 0.371468f, 0.175213f, 0.00978514f, 0.648104f, 0.140326f, 0.558741f, 0.850327f, 0.530164f, 0.424834f, 0.132659f, 0.627704f, 0.105294f, 0.319888f, 0.500085f, 0.170711f, 0.538634f, 0.372466f, 0.946422f, 0.705489f, 0.870202f, 0.789601f, 0.169897f, 0.182741f, 0.391257f, 0.79137f, 0.926907f, 0.13628f, 0.704615f, 0.283963f, 0.434937f, 0.629526f, 0.0748007f, 0.295045f, 0.28707f, 0.34446f, 0.0169352f, 0.554462f, 0.528898f, 0.34901f, 0.736192f, 0.718325f, 0.718091f, 0.726318f, 0.436983f, 0.573098f, 0.725244f, 0.921197f, 0.518262f, 0.827842f, 0.0278995f, 0.510658f, 0.957951f, 0.922278f, 0.0271964f, 0.11938f, 0.248752f, 0.0871802f, 0.164434f, 0.76044f, 0.47576f, 0.309438f, 0.596115f, 0.636404f, 0.862279f, 0.359065f, 0.961984f, 0.153274f, 0.856665f, 0.428014f, 0.0413247f, 0.246481f, 0.725885f, 0.866403f, 0.91884f, 0.000633561f, 0.287143f, 0.561318f, 0.00102842f, 0.603613f, 0.787054f, 0.938665f, 0.270061f, 0.452229f, 0.159402f, 0.112165f, 0.145411f, 0.250973f, 0.0143143f, 0.919613f, 0.010381f, 0.365027f, 0.865447f, 0.723604f, 0.165974f, 0.845208f, 0.666214f, 0.339759f, 0.945371f, 0.351369f, 0.374229f, 0.796259f, 0.630932f, 0.0399321f, 0.868337f, 0.771841f, 0.773753f, 0.360378f, 0.795727f, 0.907178f, 0.549629f, 0.202363f, 0.93144f, 0.957635f, 0.829509f, 0.596325f, 0.0036505f, 0.791142f, 0.673159f, 0.950541f, 0.0915305f, 0.315443f, 0.990222f, 0.885324f, 0.460653f, 0.857475f, 0.696758f, 0.502075f, 0.229629f, 0.137468f, 0.563552f, 0.844787f, 0.639077f, 0.121934f, 0.0153792f, 0.118298f, 0.768082f, 0.181479f, 0.966914f, 0.518583f, 0.607825f, 0.868244f, 0.0226285f, 0.125735f, 0.305763f, 0.57073f, 0.0768162f, 0.0807106f, 0.969461f, 0.218329f, 0.938805f, 0.299221f, 0.371175f, 0.51509f, 0.524831f, 0.231765f, 0.583423f, 0.782201f, 0.452083f, 0.568586f, 0.859447f, 0.549287f, 0.540983f, 0.328377f, 0.397845f, 0.650473f, 0.940715f, 0.297151f, 0.384308f, 0.00248369f, 0.830295f, 0.329032f, 0.438871f, 0.324094f, 0.936792f, 0.967745f, 0.980783f, 0.531688f, 0.132704f, 0.222562f, 0.0313415f, 0.918055f, 0.17073f, 0.95063f, 0.0851412f, 0.680607f, 0.410405f, 0.340138f, 0.805791f, 0.781496f, 0.812348f, 0.804547f, 0.427944f, 0.351167f, 0.22775f, 0.423274f, 0.145577f, 0.794884f, 0.958136f, 0.0637143f, 0.698572f, 0.539314f, 0.551179f, 0.609488f, 0.925665f, 0.614639f, 0.637752f, 0.663022f, 0.241247f, 0.0815666f, 0.42624f, 0.402996f, 0.501672f, 0.75054f, 0.970453f, 0.55942f, 0.961818f, 0.127586f, 0.195195f, 0.432428f, 0.642632f, 0.280214f, 0.381199f, 0.222965f, 0.04361f, 0.231427f, 0.750528f, 0.592084f, 0.178209f, 0.427117f, 0.432842f, 0.360393f, 0.564562f, 0.837777f, 0.739208f, 0.66282f, 0.57374f, 0.349421f, 0.300318f, 0.952045f, 0.214642f, 0.608816f, 0.276419f, 0.981838f, 0.924332f, 0.470357f, 0.784598f, 0.234197f, 0.386811f, 0.337882f, 0.22286f, 0.362129f, 0.044151f, 0.439697f, 0.376008f, 0.492033f, 0.110027f, 0.404034f, 0.92845f, 0.883454f, 9.20955e-06f, 0.427804f, 0.625631f, 0.945112f, 0.443768f, 0.617487f, 0.552308f, 0.874938f, 0.240181f, 0.156624f, 0.763623f, 0.0994235f, 0.313841f, 0.458318f, 0.617322f, 0.818676f, 0.760326f, 0.206138f, 0.600317f, 0.676339f, 0.913658f, 0.522778f, 0.13781f, 0.529129f, 0.676201f, 0.0997124f, 0.825882f, 0.342245f, 0.701089f, 0.419201f, 0.216893f, 0.596375f, 0.970032f, 0.35936f, 0.397763f, 0.351533f, 0.425464f, 0.490964f, 0.914249f, 0.894091f, 0.118882f, 0.0726074f, 0.508444f, 0.662858f, 0.225404f, 0.373918f, 0.538371f, 0.352321f, 0.520999f, 0.620749f, 0.216278f, 0.185088f, 0.13693f, 0.904191f, 0.128102f, 0.444181f, 0.673541f, 0.824811f, 0.0298134f, 0.525013f, 0.809707f, 0.161747f, 0.709675f, 0.803454f, 0.23123f, 0.691511f, 0.437803f, 0.446471f, 0.470057f, 0.127524f, 0.376906f, 0.0964944f, 0.215639f, 0.743227f, 0.840237f, 0.726717f, 0.492798f, 0.398671f, 0.816375f, 0.358903f, 0.856632f, 0.337391f, 0.300591f, 0.945666f, 0.613881f, 0.420898f, 0.815055f, 0.48278f, 0.542244f, 0.329735f, 0.485236f, 0.462731f, 0.052929f, 0.959346f, 0.439004f, 0.214346f, 0.978555f, 0.0373361f, 0.0145994f, 0.971468f, 0.82311f, 0.599798f, 0.627661f, 0.945441f, 0.900095f, 0.21355f, 0.582631f, 0.168009f, 0.887485f, 0.483977f, 0.731445f, 0.868779f, 0.973907f, 0.617269f, 0.142719f, 0.493231f, 0.211385f, 0.959368f, 0.985605f, 0.1044f, 0.658787f, 0.268061f, 0.627579f, 0.726954f, 0.754517f, 0.854008f, 0.238922f, 0.765741f, 0.665729f, 0.354013f, 0.152634f, 0.373761f, 0.547785f, 0.225744f, 0.278346f, 0.182884f, 0.574961f, 0.491564f, 0.806318f, 0.670477f, 0.971696f, 0.637222f, 0.682487f, 0.0696124f, 0.611466f, 0.711547f, 0.378591f, 0.959788f, 0.224027f, 0.357015f, 0.409039f, 0.977697f, 0.0639567f, 0.99189f, 0.344892f, 0.518262f, 0.133529f, 0.89597f, 0.708624f, 0.939704f, 0.362208f, 0.743186f, 0.407725f, 0.753125f, 0.33541f, 0.232519f, 0.586176f, 0.494532f, 0.154323f, 0.28919f, 0.218706f, 0.971498f, 0.769848f, 0.199773f, 0.199842f, 0.832263f, 0.298279f, 0.161605f, 0.830388f, 0.45103f, 0.449516f, 0.216712f, 0.406236f, 0.390806f, 0.527003f, 0.720394f, 0.965764f, 0.47614f, 0.491749f, 0.605551f, 0.920255f, 0.561416f, 0.850835f, 0.716615f, 0.577531f, 0.234504f, 0.196767f, 0.309561f, 0.0540015f, 0.236115f, 0.0647383f, 0.94031f, 0.782261f, 0.193652f, 0.897891f, 0.822425f, 0.776651f, 0.961456f, 0.6151f, 0.325957f, 0.156517f, 0.385579f, 0.144628f, 0.100468f, 0.386446f, 0.665891f, 0.917745f, 0.440557f, 0.966559f, 0.906212f, 0.0991053f, 0.442167f, 0.514038f, 0.136895f, 0.389679f, 0.878286f, 0.987036f, 0.647489f, 0.772652f, 0.0596531f, 0.137768f, 0.867434f, 0.0248745f, 0.507673f, 0.993101f, 0.00956828f, 0.296852f, 0.897351f, 0.14875f, 0.323651f, 0.0732329f, 0.673215f, 0.0435495f, 0.893435f, 0.282982f, 0.918068f, 0.409819f, 0.743783f, 0.104833f, 0.939149f, 0.609604f, 0.684542f, 0.796889f, 0.887128f, 0.0552839f, 0.549993f, 0.940735f, 0.977522f, 0.0892621f, 0.276351f, 0.653479f, 0.117041f, 0.393059f, 0.0378214f, 0.991785f, 0.784296f, 0.405971f, 0.676139f, 0.812947f, 0.631336f, 0.754924f, 0.67995f, 0.607849f, 0.0195246f, 0.758245f, 0.0117788f, 0.859992f, 0.196167f, 0.465584f, 0.188559f, 0.782512f, 0.840836f, 0.587122f, 0.466824f, 0.620506f, 0.60335f, 0.980952f, 0.266406f, 0.137192f, 0.487811f, 0.452897f, 0.450012f, 0.491876f, 0.0906254f, 0.796341f, 0.589543f, 0.563734f, 0.0342728f, 0.551774f, 0.782854f, 0.122009f, 0.234738f, 0.644906f, 0.452563f, 0.132356f, 0.743137f, 0.207254f, 0.837961f, 0.267638f, 0.266158f, 0.895388f, 0.883835f, 0.679257f, 0.239133f, 0.626719f, 0.627379f, 0.249918f, 0.219559f, 0.913258f, 0.214489f, 0.563058f, 0.309849f, 0.588892f, 0.849314f, 0.892735f, 0.0153528f, 0.825552f, 0.594559f, 0.887532f, 0.447185f, 0.862193f, 0.982494f, 0.420673f, 0.425409f, 0.245566f, 0.423263f, 0.973329f, 0.536092f, 0.0281592f, 0.632002f, 0.0483676f, 0.695143f, 0.703635f, 0.940282f, 0.594419f, 0.135663f, 0.835342f, 0.0167258f, 0.62401f, 0.364911f, 0.182246f, 0.990571f, 0.686539f, 0.686448f, 0.617893f, 0.800968f, 0.0837678f, 0.0733075f, 0.973099f, 0.967344f, 0.567045f, 0.211758f, 0.535945f, 0.189859f, 0.242974f, 0.213595f, 0.737839f, 0.8066f, 0.548361f, 0.851537f, 0.382127f, 0.184277f, 0.08541f, 0.739887f, 0.27149f, 0.936032f, 0.337244f, 0.106314f, 0.399024f, 0.0629548f, 0.433659f, 0.999772f, 0.537112f, 0.345139f, 0.949056f, 0.238801f, 0.891697f, 0.505647f, 0.933695f, 0.265259f, 0.542074f, 0.815094f, 0.642507f, 0.998236f, 0.637564f, 0.550156f, 0.606018f, 0.873737f, 0.317555f, 0.730636f, 0.844028f, 0.0390197f, 0.842812f, 0.480561f, 0.691286f, 0.00295733f, 0.919325f, 0.473461f, 0.784858f, 0.814156f, 0.0912686f, 0.403945f, 0.28338f, 0.585214f, 0.645965f, 0.317993f, 0.939089f, 0.783608f, 0.835148f, 0.638605f, 0.629331f, 0.171287f, 0.250434f, 0.635279f, 0.213497f, 0.694413f, 0.0707755f, 0.983926f, 0.973839f, 0.349415f, 0.953162f, 0.200589f, 0.154119f, 0.771383f, 0.836393f, 0.706541f, 0.674026f, 0.1878f, 0.385638f, 0.912494f, 0.504632f, 0.0466343f, 0.450686f, 0.845616f, 0.710788f, 0.0947787f, 0.479396f, 0.412178f, 0.37111f, 0.71844f, 0.564508f, 0.382976f, 0.258863f, 0.647761f, 0.734297f, 0.393745f, 0.315436f, 0.601107f, 0.817479f, 0.942905f, 0.0972653f, 0.788756f, 0.843212f, 0.592457f, 0.703508f, 0.550176f, 0.370677f, 0.352558f, 0.201701f, 0.608106f, 0.480642f, 0.815508f, 0.921177f, 0.7606f, 0.208658f, 0.197253f, 0.79362f, 0.0647093f, 0.846116f, 0.12328f, 0.976125f, 0.849035f, 0.175173f, 0.103671f, 0.621033f, 0.541288f, 0.804469f, 0.565353f, 0.788961f, 0.70966f, 0.11589f, 0.172359f, 0.956232f, 0.00444929f, 0.952664f, 0.920222f, 0.156244f, 0.0964654f, 0.58569f, 0.313021f, 0.0865403f, 0.973574f, 0.485838f, 0.294507f, 0.709875f, 0.0764558f, 0.857014f, 0.672743f, 0.728314f, 0.185804f, 0.478334f, 0.284808f, 0.212212f, 0.75047f, 0.07419f, 0.878726f, 0.303373f, 0.157442f, 0.832152f, 0.358087f, 0.0877035f, 0.220242f, 0.00752386f, 0.943168f, 0.0944187f, 0.335775f, 0.875908f, 0.00341338f, 0.902309f, 0.637416f, 0.218752f, 0.331346f, 0.540993f, 0.805102f, 0.267758f, 0.0702342f, 0.573947f, 0.986206f, 0.637667f, 0.313183f, 0.406677f, 0.69629f, 0.820912f, 0.632487f, 0.449504f, 0.601832f, 0.188476f, 0.869593f, 0.666638f, 0.0179505f, 0.687915f, 0.0492094f, 0.769238f, 0.204836f, 0.588908f, 0.437742f, 0.59448f, 0.00915766f, 0.720968f, 0.828406f, 0.829383f, 0.0352128f, 0.179024f, 0.358655f, 0.926073f, 0.397781f, 0.103781f, 0.113197f, 0.829407f, 0.919549f, 0.163854f, 0.507403f, 0.657788f, 0.151868f, 0.636554f, 0.116516f, 0.810623f, 0.361253f, 0.132407f, 0.909135f, 0.531187f, 0.291935f, 0.788969f, 0.839437f, 0.950706f, 0.20696f, 0.234068f, 0.429527f, 0.929159f, 0.920396f, 0.37527f, 0.256818f, 0.714332f, 0.779368f, 0.437543f, 0.786339f, 0.190171f, 0.431068f, 0.0201946f, 0.694304f, 0.250447f, 0.456195f, 0.390567f, 0.436f, 0.222168f, 0.132072f, 0.160953f, 0.40152f, 0.869772f, 0.107552f, 0.450487f, 0.499401f, 0.598804f, 0.742389f, 0.0348395f, 0.863944f, 0.605634f, 0.377078f, 0.814854f, 0.60815f, 0.157984f, 0.320349f, 0.582299f, 0.861435f, 0.485736f, 0.0720602f, 0.636357f, 0.165244f, 0.0488178f, 0.559464f, 0.385086f, 0.237701f, 0.931245f, 0.307075f, 0.993439f, 0.578477f, 0.419532f, 0.302884f, 0.66098f, 0.00921507f, 0.828726f, 0.436555f, 0.276156f, 0.389469f, 0.866946f, 0.04639f, 0.561253f, 0.221024f, 0.989742f, 0.105593f, 0.29141f, 0.481599f, 0.0652974f, 0.23962f, 0.700024f, 0.162525f, 0.616694f, 0.818685f, 0.928904f, 0.575266f, 0.994048f, 0.264861f, 0.399138f, 0.378382f, 0.784798f, 0.958837f, 0.966213f, 0.000872461f, 0.0700252f, 0.261724f, 0.382432f, 0.726177f, 0.856526f, 0.55035f, 0.148673f, 0.010882f, 0.85469f, 0.490462f, 0.86233f, 0.919517f, 0.379194f, 0.484635f, 0.747023f, 0.29862f, 0.62039f, 0.391917f, 0.882988f, 0.129953f, 0.848137f, 0.570856f, 0.396335f, 0.742932f, 0.665201f, 0.708586f, 0.689406f, 0.785374f, 0.749921f, 0.141877f, 0.894856f, 0.906826f, 0.416775f, 0.391618f, 0.530175f, 0.385679f, 0.0676853f, 0.104955f, 0.598074f, 0.657765f, 0.712316f, 0.810347f, 0.445948f, 0.758438f, 0.690593f, 0.189248f, 0.148497f, 0.238736f, 0.91429f, 0.811374f, 0.699704f, 0.0222553f, 0.462092f, 0.0176483f, 0.315804f, 0.646342f, 0.152988f, 0.935727f, 0.185243f, 0.317748f, 0.657791f, 0.127194f, 0.771139f, 0.310894f, 0.442085f, 0.976524f, 0.852047f, 0.940219f, 0.227883f, 0.0737196f, 0.321444f, 0.715404f, 0.862237f, 0.623349f, 0.390471f, 0.716934f, 0.183341f, 0.684268f, 0.828615f, 0.44467f, 0.854221f, 0.303279f, 0.00474047f, 0.746008f, 0.990403f, 0.0245057f, 0.892543f, 0.333438f, 0.645945f, 0.894897f, 0.537852f, 0.0365033f, 0.51783f, 0.190039f, 0.556986f, 0.25483f, 0.354558f, 0.00457464f, 0.570015f, 0.30223f, 0.282845f, 0.252269f, 0.222274f, 0.630466f, 0.730861f, 0.470052f, 0.0677504f, 0.346821f, 0.173333f, 0.42684f, 0.204224f, 0.498089f, 0.373997f, 0.535713f, 0.338757f, 0.577109f, 0.265868f, 0.634154f, 0.785207f, 0.166153f, 0.955728f, 0.25402f, 0.116213f, 0.0915607f, 0.865838f, 0.645909f, 0.593727f, 0.128846f, 0.0245891f, 0.968786f, 0.760299f, 0.147346f, 0.815896f, 0.960407f, 0.14677f, 0.22147f, 0.257619f, 0.670644f, 0.399816f, 0.463644f, 0.369857f, 0.855528f, 0.647237f, 0.257168f, 0.806647f, 0.207128f, 0.155278f, 0.932385f, 0.842062f, 0.926278f, 0.710952f, 0.516185f, 0.902378f, 0.299687f, 0.540293f, 0.644212f, 0.451105f, 0.950815f, 0.0739414f, 0.197949f, 0.351032f, 0.234098f, 0.191684f, 0.522057f, 0.511787f, 0.250952f, 0.233442f, 0.623991f, 0.727221f, 0.626169f, 0.825453f, 0.685542f, 0.327878f, 0.194404f, 0.650026f, 0.199135f, 0.813948f, 0.726281f, 0.476963f, 0.449556f, 0.688463f, 0.948903f, 0.128969f, 0.997454f, 0.881724f, 0.492254f, 0.721315f, 0.0634852f, 0.978964f, 0.313024f, 0.94243f, 0.175312f, 0.635139f, 0.272767f, 0.330437f, 0.567331f, 0.923177f, 0.606822f, 0.114219f, 0.227044f, 0.627984f, 0.146989f, 0.406714f, 0.550754f, 0.311881f, 0.155117f, 0.515884f, 0.54031f, 0.422817f, 0.619403f, 0.966624f, 0.117989f, 0.140872f, 0.924545f, 0.82679f, 0.48987f, 0.302746f, 0.931573f, 0.769272f, 0.596746f, 0.858332f, 0.99427f, 0.60916f, 0.92109f, 0.902344f, 0.322089f, 0.891114f, 0.861235f, 0.0447001f, 0.140763f, 0.810269f, 0.760182f, 0.835655f, 0.0852238f, 0.0204504f, 0.180674f, 0.232077f, 0.702038f, 0.092814f, 0.641924f, 0.642582f, 0.926926f, 0.433865f, 0.37269f, 0.771032f, 0.582382f, 0.257629f, 0.19077f, 0.892117f, 0.180281f, 0.101532f, 0.166997f, 0.0283434f, 0.468934f, 0.603733f, 0.109284f, 0.423224f, 0.392599f, 0.400548f, 0.931693f, 0.19806f, 0.427202f, 0.743382f, 0.622772f, 0.890371f, 0.169439f, 0.60091f, 0.436395f, 0.557217f, 0.870708f, 0.395755f, 0.994234f, 0.936305f, 0.80959f, 0.408934f, 0.636522f, 0.365479f, 0.266042f, 0.791631f, 0.824197f, 0.216946f, 0.229634f, 0.680746f, 0.781349f, 0.168808f, 0.841236f, 0.153844f, 0.980929f, 0.0426859f, 0.464202f, 0.167075f, 0.523266f, 0.934005f, 0.936896f, 0.826264f, 0.044715f, 0.438219f, 0.34769f, 0.626727f, 0.439684f, 0.831946f, 0.484933f, 0.404827f, 0.260654f, 0.81202f, 0.174004f, 0.787851f, 0.455138f, 0.655473f, 0.109901f, 0.890659f, 0.947074f, 0.361157f, 0.16539f, 0.58113f, 0.564428f, 0.895702f, 0.547181f, 0.441325f, 0.694036f, 0.0577419f, 0.159258f, 0.737418f, 0.651805f, 0.128015f, 0.922053f, 0.445111f, 0.0784964f, 0.452877f, 0.447184f, 0.813371f, 0.522148f, 0.115545f, 0.756981f, 0.454446f, 0.063932f, 0.498896f, 0.609644f, 0.322579f, 0.498747f, 0.657123f, 0.658618f, 0.653773f, 0.233941f, 0.679365f, 0.068694f, 0.393955f, 0.281882f, 0.343787f, 0.971124f, 0.425295f, 0.88358f, 0.678806f, 0.571204f, 0.252578f, 0.42372f, 0.270893f, 0.24403f, 0.481379f, 0.0432195f, 0.256206f, 0.658633f, 0.573123f, 0.765552f, 0.506332f, 0.301392f, 0.162464f, 0.533705f, 0.823675f, 0.111261f, 0.557734f, 0.784037f, 0.0099777f, 0.015297f, 0.290589f, 0.0453075f, 0.78254f, 0.279832f, 0.389579f, 0.557797f, 0.93069f, 0.098577f, 0.161702f, 0.0175863f, 0.160465f, 0.249734f, 0.452553f, 0.754312f, 0.594882f, 0.596358f, 0.491436f, 0.396948f, 0.760428f, 0.288846f, 0.243815f, 0.338206f, 0.793308f, 0.965915f, 0.0172737f, 0.445257f, 0.322325f, 0.772404f, 0.654016f, 0.80926f, 0.776535f, 0.304082f, 0.0630144f, 0.583282f, 0.846366f, 0.499674f, 0.299911f, 0.513443f, 0.545478f, 0.0164018f, 0.725634f, 0.253983f, 0.561844f, 0.980391f, 0.735945f, 0.816901f, 0.974125f, 0.384052f, 0.813821f, 0.469815f, 0.948957f, 0.970426f, 0.470512f, 0.23746f, 0.229858f, 0.52859f, 0.826144f, 0.994975f, 0.0484827f, 0.9569f, 0.414816f, 0.186097f, 0.344149f, 0.92083f, 0.90155f, 0.446289f, 0.220355f, 0.233272f, 0.604058f, 0.0654023f, 0.179335f, 0.0837292f, 0.770125f, 0.205524f, 0.475131f, 0.631108f, 0.358362f, 0.746616f, 0.660189f, 0.117527f, 0.111248f, 0.131471f, 0.613953f, 0.813998f, 0.658308f, 0.0130244f, 0.277711f, 0.276137f, 0.76768f, 0.29524f, 0.0903824f, 0.940259f, 0.887613f, 0.058253f, 0.814281f, 0.489991f, 0.329663f, 0.0230103f, 0.912906f, 0.668551f, 0.661821f, 0.877177f, 0.834014f, 0.0399352f, 0.00101552f, 0.871034f, 0.14299f, 0.665033f, 0.894723f, 0.793121f, 0.291678f, 0.446687f, 0.970797f, 0.246298f, 0.542464f, 0.479604f, 0.851147f, 0.740605f, 0.312288f, 0.730644f, 0.754502f, 0.558063f, 0.992145f, 0.468094f, 0.222104f, 0.139942f, 0.689898f, 0.192548f, 0.688286f, 0.0736191f, 0.676422f, 0.277903f, 0.0473723f, 0.328127f, 0.843367f, 0.22378f, 0.430559f, 0.30508f, 0.440893f, 0.782238f, 0.00392183f, 0.859052f, 0.337715f, 0.345673f, 0.585426f, 0.765532f, 0.00776284f, 0.824311f, 0.455099f, 0.544381f, 0.462037f, 0.784649f, 0.859314f, 0.543724f, 0.127025f, 0.618281f, 0.669525f, 0.779777f, 0.296608f, 0.159788f, 0.113799f, 0.926704f, 0.793592f, 0.326342f, 0.970287f, 0.479055f, 0.556199f, 0.9544f, 0.248976f, 0.227611f, 0.731636f, 0.147031f, 0.883422f, 0.785642f, 0.849175f, 0.584176f, 0.95449f, 0.656298f, 0.920753f, 0.0539454f, 0.806535f, 0.939187f, 0.359771f, 0.72007f, 0.881336f, 0.481058f, 0.88465f, 0.126115f, 0.633827f, 0.566964f, 0.973076f, 0.29133f, 0.460039f, 0.0727633f, 0.227582f, 0.215589f, 0.432656f, 0.675801f, 0.937676f, 0.0110957f, 0.215127f, 0.651935f, 0.119513f, 0.797525f, 0.535864f, 0.173114f, 0.65133f, 0.332392f, 0.192153f, 0.943845f, 0.859665f, 0.996203f, 0.658336f, 0.939141f, 0.281987f, 0.691982f, 0.382253f, 0.484265f, 0.111423f, 0.0783975f, 0.209906f, 0.338327f, 0.696582f, 0.458292f, 0.921108f, 0.230857f, 0.469616f, 0.788192f, 0.605087f, 0.330865f, 0.202253f, 0.885138f, 0.398612f, 0.174863f, 0.344729f, 0.245864f, 0.0829636f, 0.587539f, 0.94773f, 0.400121f, 0.638613f, 0.474506f, 0.859106f, 0.432006f, 0.463063f, 0.262733f, 0.428857f, 0.249494f, 0.872689f, 0.151902f, 0.786426f, 0.285359f, 0.688028f, 0.36568f, 0.0731272f, 0.586232f, 0.776614f, 0.0946996f, 0.486384f, 0.80218f, 0.293806f, 0.881017f, 0.208664f, 0.693056f, 0.420064f, 0.787199f, 0.747993f, 0.165428f, 0.739872f, 0.00293114f, 0.267649f, 0.330248f, 0.202902f, 0.778428f, 0.535537f, 0.0925189f, 0.696239f, 0.200978f, 0.518677f, 0.652183f, 0.0965469f, 0.0867163f, 0.219582f, 0.662279f, 0.00280588f, 0.272441f, 0.00465201f, 0.676683f, 0.825306f, 0.141091f, 0.95705f, 0.804377f, 0.512947f, 0.32589f, 0.201093f, 0.868994f, 0.229481f, 0.545692f, 0.022053f, 0.149268f, 0.56327f, 0.200395f, 0.846691f, 0.645707f, 0.098429f, 0.332268f, 0.77089f, 0.544161f, 0.534925f, 0.0404122f, 0.15222f, 0.00219823f, 0.857041f, 0.598994f, 0.706285f, 0.00155841f, 0.660715f, 0.187972f, 0.639581f, 0.452117f, 0.491033f, 0.0578531f, 0.772023f, 0.947644f, 0.0997224f, 0.00814886f, 0.798098f, 0.425449f, 0.190257f, 0.705707f, 0.574332f, 0.959989f, 0.647748f, 0.585037f, 0.936321f, 0.0581099f, 0.237389f, 0.151609f, 0.996003f, 0.792569f, 0.0978881f, 0.951228f, 0.301671f, 0.779645f, 0.0288584f, 0.037397f, 0.945627f, 0.304568f, 0.426189f, 0.4257f, 0.279629f, 0.819273f, 0.666387f, 0.630945f, 0.220709f, 0.404553f, 0.0883133f, 0.463987f, 0.212745f, 0.214379f, 0.61238f, 0.977878f, 0.210322f, 0.923227f, 0.992948f, 0.123616f, 0.53986f, 0.292867f, 0.477867f, 0.369048f, 0.328313f, 0.49386f, 0.656201f, 0.824022f, 0.0282923f, 0.286493f, 0.711301f, 0.883975f, 0.455991f, 0.673695f, 0.818143f, 0.613079f, 0.0335363f, 0.0680771f, 0.668399f, 0.503759f, 0.264248f, 0.903885f, 0.843643f, 0.0533691f, 0.560798f, 0.631014f, 0.857126f, 0.633154f, 0.516262f, 0.265955f, 0.143606f, 0.935716f, 0.0741677f, 0.648374f, 0.720572f, 0.337443f, 0.384864f, 0.966169f, 0.501034f, 0.352625f, 0.597608f, 0.173608f, 0.29504f, 0.778325f, 0.966678f, 0.284452f, 0.169445f, 0.538185f, 0.919894f, 0.956887f, 0.964023f, 0.763123f, 0.709229f, 0.866486f, 0.448187f, 0.628869f, 0.0399799f, 0.450391f, 0.924285f, 0.438688f, 0.022503f, 0.770717f, 0.570704f, 0.0638541f, 0.677098f, 0.944873f, 0.116451f, 0.917285f, 0.2318f, 0.336039f, 0.0499738f, 0.696717f, 0.948234f, 0.605339f, 0.45729f, 0.843917f, 0.287549f, 0.663221f, 0.167949f, 0.094581f, 0.90674f, 0.185287f, 0.776953f, 0.268195f, 0.014379f, 0.501671f, 0.753098f, 0.650432f, 0.534088f, 0.889096f, 0.949667f, 0.0219556f, 0.214308f, 0.224668f, 0.154131f, 0.368965f, 0.122133f, 0.65116f, 0.197679f, 0.783807f, 0.270285f, 0.694187f, 0.95038f, 0.110979f, 0.242191f, 0.213992f, 0.13952f, 0.931086f, 0.226877f, 0.305606f, 0.979378f, 0.953768f, 0.241063f, 0.124948f, 0.105372f, 0.218845f, 0.637486f, 0.362314f, 0.857944f, 0.582592f, 0.502794f, 0.114551f, 0.237904f, 0.924022f, 0.864367f, 0.231353f, 0.44384f, 0.323362f, 0.76038f, 0.423856f, 0.452531f, 0.0115742f, 0.46815f, 0.48013f, 0.0473933f, 0.438219f, 0.129854f, 0.706835f, 0.436701f, 0.400324f, 0.0583846f, 0.940718f, 0.975561f, 0.507812f, 0.190554f, 0.893113f, 0.636696f, 0.118974f, 0.53061f, 0.607902f, 0.914011f, 0.143261f, 0.0857454f, 0.770538f, 0.0139434f, 0.407664f, 0.92041f, 0.157959f, 0.584356f, 0.969034f, 0.339759f, 0.642837f, 0.681889f, 0.223098f, 0.661695f, 0.0705865f, 0.259975f, 0.00655343f, 0.277794f, 0.037764f, 0.333258f, 0.0823079f, 0.552069f, 0.188632f, 0.85048f, 0.248655f, 0.508736f, 0.989409f, 0.676781f, 0.992566f, 0.856983f, 0.257727f, 0.182448f, 0.0497544f, 0.310994f, 0.743109f, 0.874533f, 0.943384f, 0.632456f, 0.359589f, 0.795129f, 0.983523f, 0.841f, 0.482241f, 0.61151f, 0.556987f, 0.246489f, 0.258235f, 0.87155f, 0.433148f, 0.694615f, 0.658671f, 0.984038f, 0.61421f, 0.33806f, 0.815241f, 0.539621f, 0.977415f, 0.82646f, 0.430315f, 0.633469f, 0.350096f, 0.630504f, 0.334125f, 0.919803f, 0.307272f, 0.337716f, 0.644142f, 0.444452f, 0.250146f, 0.497466f, 0.170974f, 0.993792f, 0.113174f, 0.905625f, 0.962882f, 0.473052f, 0.927356f, 0.874466f, 0.918066f, 0.0378646f, 0.00216351f, 0.516137f, 0.92798f, 0.366644f, 0.979269f, 0.951728f, 0.939299f, 0.756642f, 0.696261f, 0.129648f, 0.937637f, 0.500117f, 0.688063f, 0.582785f, 0.161508f, 0.424508f, 0.866168f, 0.777887f, 0.613746f, 0.684095f, 0.547183f, 0.757883f, 0.926348f, 0.346787f, 0.786552f, 0.717098f, 0.845607f, 0.198555f, 0.745752f, 0.497787f, 0.19327f, 0.453797f, 0.438268f, 0.0426972f, 0.622592f, 0.496309f, 0.0136058f, 0.229186f, 0.689517f, 0.333235f, 0.160382f, 0.793794f, 0.750165f, 0.19645f, 0.718008f, 0.125284f, 0.21572f, 0.589293f, 0.973847f, 0.0785087f, 0.0198053f, 0.454311f, 0.368018f, 0.379007f, 0.0581889f, 0.344199f, 0.814206f, 0.481824f, 0.155735f, 0.692866f, 0.191024f, 0.553743f, 0.826572f, 0.897576f, 0.992562f, 0.56565f, 0.254903f, 0.670156f, 0.252855f, 0.218925f, 0.178696f, 0.140874f, 0.525638f, 0.116564f, 0.806125f, 0.958895f, 0.308583f, 0.204709f, 0.0891942f, 0.561715f, 0.334925f, 0.45576f, 0.301204f, 0.830934f, 0.387709f, 0.591454f, 0.847475f, 0.19337f, 0.671108f, 0.739031f, 0.176061f, 0.301973f, 0.0669643f, 0.73126f, 0.028597f, 0.362926f, 0.762928f, 0.633278f, 0.746555f, 0.282621f, 0.677689f, 0.0583414f, 0.444705f, 0.293137f, 0.854232f, 0.795338f, 0.665034f, 0.195256f, 0.234747f, 0.150547f, 0.58638f, 0.449964f, 0.901731f, 0.12916f, 0.167021f, 0.5046f, 0.749535f, 0.706862f, 0.221479f, 0.292998f, 0.151705f, 0.433615f, 0.087336f, 0.954833f, 0.473797f, 0.839106f, 0.572769f, 0.641167f, 0.78574f, 0.736492f, 0.448075f, 0.608816f, 0.743468f, 0.0280638f, 0.27064f, 0.404634f, 0.506965f, 0.435358f, 0.477639f, 0.00992643f, 0.977332f, 0.14674f, 0.434715f, 0.47873f, 0.143352f, 0.543109f, 0.189631f, 0.707195f, 0.186987f, 0.426414f, 0.374762f, 0.961331f, 0.0627827f, 0.507393f, 0.538008f, 0.715081f, 0.0486075f, 0.046958f, 0.1885f, 0.498497f, 0.590686f, 0.375021f, 0.0493965f, 0.87902f, 0.0749071f, 0.559669f, 0.743872f, 0.23736f, 0.435335f, 0.161112f, 0.295725f, 0.070784f, 0.601639f, 0.373585f, 0.490168f, 0.60244f, 0.685891f, 0.788243f, 0.761859f, 0.43799f, 0.897879f, 0.557984f, 0.154428f, 0.141681f, 0.836575f, 0.27661f, 0.611036f, 0.341046f, 0.238751f, 0.0575928f, 0.96499f, 0.784873f, 0.391325f, 0.669215f, 0.813261f, 0.136233f, 0.191541f, 0.0882364f, 0.264766f, 0.645055f, 0.344129f, 0.0731303f, 0.555086f, 0.499143f, 0.779818f, 0.00924445f, 0.34994f, 0.309598f, 0.216979f, 0.247651f, 0.835235f, 0.615547f, 0.527414f, 0.797394f, 0.677455f, 0.675774f, 0.00242763f, 0.443769f, 0.542442f, 0.480859f, 0.296827f, 0.818849f, 0.480649f, 0.967986f, 0.848345f, 0.867917f, 0.0943004f, 0.913108f, 0.619542f, 0.783462f, 0.512367f, 0.313758f, 0.0485785f, 0.90419f, 0.190018f, 0.626179f, 0.535686f, 0.854101f, 0.583291f, 0.452416f, 0.379689f, 0.918079f, 0.66777f, 0.154128f, 0.367591f, 0.666413f, 0.335948f, 0.836923f, 0.876434f, 0.921662f, 0.256027f, 0.503321f, 0.574414f, 0.598992f, 0.618266f, 0.302425f, 0.0550202f, 0.391808f, 0.352064f, 0.566041f, 0.128833f, 0.563173f, 0.743693f, 0.593108f, 0.399454f, 0.674834f, 0.205011f, 0.875525f, 0.772046f, 0.765087f, 0.80139f, 0.530288f, 0.146983f, 0.791488f, 0.348383f, 0.530773f, 0.85473f, 0.686642f, 0.0243471f, 0.0860245f, 0.318361f, 0.332882f, 0.986241f, 0.73623f, 0.694229f, 0.349744f, 0.274173f, 0.244774f, 0.974007f, 0.909f, 0.646432f, 0.858665f, 0.908377f, 0.346717f, 0.721945f, 0.473378f, 0.240438f, 0.690158f, 0.790779f, 0.121759f, 0.224026f, 0.437467f, 0.421195f, 0.750327f, 0.598979f, 0.19742f, 0.866705f, 0.0759297f, 0.769428f, 0.591641f, 0.617373f, 0.397108f, 0.236631f, 0.819696f, 0.463099f, 0.0384623f, 0.56491f, 0.799657f, 0.409825f, 0.0211287f, 0.399213f, 0.860971f, 0.21247f, 0.529959f, 0.995821f, 0.319635f, 0.318951f, 0.249199f, 0.912273f, 0.880425f, 0.453482f, 0.744753f, 0.947907f, 0.850558f, 0.873718f, 0.694035f, 0.182624f, 0.979205f, 0.220903f, 0.831905f, 0.765287f, 0.627847f, 0.60698f, 0.00014169f, 0.266254f, 0.468853f, 0.546685f, 0.711686f, 0.570707f, 0.815501f, 0.816111f, 0.274253f, 0.230299f, 0.410759f, 0.912284f, 0.340372f, 0.655273f, 0.984131f, 0.928951f, 0.301123f, 0.811709f, 0.607374f, 0.629956f, 0.958786f, 0.42334f, 0.966065f, 0.23172f, 0.0514258f, 0.729242f, 0.33187f, 0.0577545f, 0.940886f, 0.81556f, 0.706079f, 0.521733f, 0.762507f, 0.126839f, 0.39848f, 0.348391f, 0.759298f, 0.797595f, 0.864869f, 0.678706f, 0.552319f, 0.0781707f, 0.836225f, 0.431585f, 0.299173f, 0.446646f, 0.273999f, 0.889f, 0.613147f, 0.90554f, 0.316265f, 0.805125f, 0.351913f, 0.246921f, 0.992693f, 0.285047f, 0.418111f, 0.614795f, 0.148183f, 0.915623f, 0.0824796f, 0.97153f, 0.342076f, 0.226939f, 0.409704f, 0.144162f, 0.645093f, 0.104499f, 0.523058f, 0.30061f, 0.417962f, 0.850426f, 0.576325f, 0.159152f, 0.841744f, 0.281478f, 0.701127f, 0.602403f, 0.137689f, 0.0968616f, 0.138916f, 0.925421f, 0.142064f, 0.568757f, 0.0363991f, 0.220104f, 0.823729f, 0.377243f, 0.382477f, 0.791612f, 0.132756f, 0.633164f, 0.844557f, 0.484731f, 0.432837f, 0.0358545f, 0.434492f, 0.696509f, 0.27217f, 0.872712f, 0.689914f, 0.526976f, 0.00845231f, 0.717582f, 0.646745f, 0.964498f, 0.260307f, 0.460807f, 0.799241f, 0.495831f, 0.534291f, 0.337725f, 0.0201459f, 0.0588205f, 0.099626f, 0.0445335f, 0.631459f, 0.421706f, 0.737725f, 0.15237f, 0.522567f, 0.354908f, 0.462786f, 0.960176f, 0.749139f, 0.0917709f, 0.368801f, 0.835182f, 0.30741f, 0.305869f, 0.0499054f, 0.344192f, 0.0774335f, 0.345958f, 0.374308f, 0.469739f, 0.181264f, 0.129416f, 0.110752f, 0.121005f, 0.478941f, 0.965105f, 0.107185f, 0.804921f, 0.918202f, 0.948278f, 0.625083f, 0.69052f, 0.714591f, 0.525246f, 0.51034f, 0.47609f, 0.776902f, 0.851069f, 0.18501f, 0.703499f, 0.337351f, 0.596395f, 0.0415835f, 0.792511f, 0.571984f, 0.821413f, 0.445606f, 0.458539f, 0.951438f, 0.127543f, 0.397203f, 0.91401f, 0.542644f, 0.08584f, 0.773343f, 0.246973f, 0.804756f, 0.523513f, 0.134362f, 0.444727f, 0.336684f, 0.7137f, 0.0018896f, 0.716948f, 0.874143f, 0.750324f, 0.117239f, 0.263621f, 0.339174f, 0.865795f, 0.0901357f, 0.157137f, 0.220915f, 0.000640357f, 0.847563f, 0.899636f, 0.0691022f, 0.105871f, 0.760859f, 0.976666f, 0.909564f, 0.193656f, 0.737687f, 0.811764f, 0.0487426f, 0.812717f, 0.864286f, 0.643114f, 0.388686f, 0.242115f, 0.35791f, 0.0845f, 0.917465f, 0.855177f, 0.966218f, 0.647099f, 0.847149f, 0.6222f, 0.639152f, 0.0962149f, 0.599481f, 0.37997f, 0.512591f, 0.24068f, 0.207296f, 0.923443f, 0.00410921f, 0.114458f, 0.284364f, 0.653197f, 0.427076f, 0.718724f, 0.481602f, 0.175418f, 0.581547f, 0.695499f, 0.0131583f, 0.381376f, 0.989818f, 0.921505f, 0.627384f, 0.151569f, 0.232453f, 0.356891f, 0.47682f, 0.962142f, 0.392632f, 0.789847f, 0.945584f, 0.846705f, 0.610754f, 0.408712f, 0.0529858f, 0.168715f, 0.0349119f, 0.782198f, 0.175419f, 0.433237f, 0.746159f, 0.607084f, 0.198991f, 0.249497f, 0.337107f, 0.944549f, 0.921506f, 0.991261f, 0.559888f, 0.316679f, 0.301507f, 0.239754f, 0.0968068f, 0.614661f, 0.521572f, 0.519729f, 0.908341f, 0.03586f, 0.618171f, 0.836746f, 0.873387f, 0.608938f, 0.409483f, 0.555192f, 0.249651f, 0.650548f, 0.223973f, 0.78059f, 0.411687f, 0.83924f, 0.269758f, 0.00621065f, 0.990223f, 0.671403f, 0.706867f, 0.798772f, 0.487375f, 0.788655f, 0.606103f, 0.910993f, 0.805561f, 0.342278f, 0.991981f, 0.992517f, 0.87053f, 0.0522469f, 0.570367f, 0.235565f, 0.168307f, 0.957502f, 0.341051f, 0.984299f, 0.944804f, 0.701308f, 0.208552f, 0.46789f, 0.0798323f, 0.247649f, 0.965581f, 0.991729f, 0.469432f, 0.317762f, 0.764117f, 0.0861203f, 0.738733f, 0.739078f, 0.418193f, 0.252833f, 0.0136712f, 0.194591f, 0.0823039f, 0.351238f, 0.634819f, 0.289065f, 0.522258f, 0.100051f, 0.628743f, 0.802032f, 0.0512145f, 0.539622f, 0.79265f, 0.378523f, 0.339629f, 0.320432f, 0.575917f, 0.368186f, 0.602909f, 0.12064f, 0.217229f, 0.747264f, 0.765453f, 0.479258f, 0.168903f, 0.687945f, 0.424234f, 0.0182483f, 0.535874f, 0.440657f, 0.759257f, 0.525349f, 0.119938f, 0.261061f, 0.0862075f, 0.445322f, 0.36843f, 0.532416f, 0.972018f, 0.350263f, 0.274387f, 0.13524f, 0.767913f, 0.682112f, 0.186862f, 0.675467f, 0.64265f, 0.719899f, 0.822824f, 0.978052f, 0.376683f, 0.0465045f, 0.344499f, 0.156657f, 0.480702f, 0.0107018f, 0.0210955f, 0.754463f, 0.579424f, 0.811882f, 0.267681f, 0.656261f, 0.55529f, 0.114898f, 0.381888f, 0.412306f, 0.166698f, 0.540337f, 0.422237f, 0.225848f, 0.319184f, 0.359518f, 0.0697977f, 0.490755f, 0.351974f, 0.408113f, 0.413704f, 0.0233192f, 0.502726f, 0.0808228f, 0.253266f, 0.393719f, 0.233204f, 0.541699f, 0.510262f, 0.653899f, 0.727227f, 0.299199f, 0.606695f, 0.745681f, 0.233805f, 0.650707f, 0.938541f, 0.626558f, 0.163539f, 0.181739f, 0.585307f, 0.72919f, 0.207946f, 0.393336f, 0.0598465f, 0.142842f, 0.503608f, 0.0107723f, 0.769077f, 0.73303f, 0.557175f, 0.174763f, 0.446938f, 0.254235f, 0.276446f, 0.340177f, 0.467342f, 0.246174f, 0.319751f, 0.0668283f, 0.695673f, 0.680345f, 0.0935564f, 0.267785f, 0.761973f, 0.778107f, 0.206745f, 0.501926f, 0.851717f, 0.0171054f, 0.58509f, 0.44091f, 0.168636f, 0.922044f, 0.398684f, 0.85791f, 0.329332f, 0.0421944f, 0.0811428f, 0.178988f, 0.0217178f, 0.867476f, 0.0242361f, 0.054365f, 0.0350767f, 0.858391f, 0.513896f, 0.58669f, 0.0422648f, 0.660024f, 0.892557f, 0.618048f, 0.167999f, 0.374249f, 0.61947f, 0.234545f, 0.301993f, 0.664666f, 0.307192f, 0.830035f, 0.16981f, 0.647669f, 0.210328f, 0.55722f, 0.725259f, 0.227851f, 0.746418f, 0.143219f, 0.578732f, 0.912123f, 0.627189f, 0.951027f, 0.0741806f, 0.785681f, 0.474788f, 0.501871f, 0.586705f, 0.356456f, 0.994087f, 0.702202f, 0.110053f, 0.939102f, 0.978551f, 0.547684f, 0.537043f, 0.463263f, 0.79543f, 0.544923f, 0.488685f, 0.446546f, 0.0184627f, 0.838136f, 0.506632f, 0.424576f, 0.66903f, 0.99525f, 0.446845f, 0.433408f, 0.068933f, 0.888118f, 0.885535f, 0.823443f, 0.911199f, 0.15379f, 0.173262f, 0.194629f, 0.991104f, 0.419665f, 0.141868f, 0.976054f, 0.0904315f, 0.481936f, 0.933807f, 0.812616f, 0.31648f, 0.707818f, 0.211447f, 0.391328f, 0.393768f, 0.208413f, 0.0949373f, 0.340323f, 0.930488f, 0.377775f, 0.320927f, 0.600667f, 0.183198f, 0.604513f, 0.876236f, 0.293807f, 0.6533f, 0.8053f, 0.0456367f, 0.79004f, 0.519155f, 0.940581f, 0.539176f, 0.360457f, 0.845534f, 0.230465f, 0.0660766f, 0.641243f, 0.360056f, 0.281113f, 0.347411f, 0.44536f, 0.221333f, 0.344579f, 0.931765f, 0.332007f, 0.567415f, 0.75061f, 0.77218f, 0.259708f, 0.234034f, 0.197387f, 0.290365f, 0.330381f, 0.473265f, 0.869024f, 0.330283f, 0.585211f, 0.784976f, 0.0936646f, 0.622822f, 0.515882f, 0.154393f, 0.931172f, 0.351259f, 0.0384373f, 0.348363f, 0.183751f, 0.45849f, 0.368929f, 0.00469111f, 0.870597f, 0.684903f, 0.368441f, 0.0478761f, 0.488639f, 0.0835063f, 0.952199f, 0.643149f, 0.892231f, 0.216109f, 0.751933f, 0.18647f, 0.390735f, 0.198425f, 0.941996f, 0.757303f, 0.723334f, 0.706664f, 0.0554332f, 0.490989f, 0.950898f, 0.0629882f, 0.261767f, 0.112804f, 0.113924f, 0.238037f, 0.270354f, 0.751243f, 0.380492f, 0.740241f, 0.207205f, 0.0989996f, 0.84937f, 0.488469f, 0.708236f, 0.238914f, 0.598806f, 0.724916f, 0.398191f, 0.144674f, 0.906878f, 0.157843f, 0.297494f, 0.412601f, 0.794125f, 0.477363f, 0.379034f, 0.00671669f, 0.646993f, 0.271325f, 0.465328f, 0.746437f, 0.149025f, 0.679058f, 0.281474f, 0.520522f, 0.415491f, 0.0136646f, 0.524842f, 0.874952f, 0.466775f, 0.245805f, 0.893021f, 0.468606f, 0.571214f, 0.336392f, 0.492457f, 0.527156f, 0.41838f, 0.89118f, 0.143941f, 0.192362f, 0.548482f, 0.267326f, 0.550028f, 0.0937403f, 0.460918f, 0.928665f, 0.391746f, 0.334116f, 0.845814f, 0.45314f, 0.563016f, 0.343298f, 0.508847f, 0.54797f, 0.720585f, 0.995596f, 0.469857f, 0.797195f, 0.0758571f, 0.193271f, 0.399435f, 0.286663f, 0.0153666f, 0.725576f, 0.505342f, 0.702736f, 0.574938f, 0.360447f, 0.293658f, 0.00267113f, 0.90265f, 0.0410623f, 0.12695f, 0.825533f, 0.666178f, 0.0493994f, 0.315431f, 0.275716f, 0.672728f, 0.336946f, 0.153213f, 0.333597f, 0.156937f, 0.352507f, 0.781166f, 0.441395f, 0.711237f, 0.319494f, 0.253406f, 0.980385f, 0.27169f, 0.610252f, 0.0315895f, 0.173092f, 0.294815f, 0.24346f, 0.501749f, 0.671395f, 0.174916f, 0.269241f, 0.271962f, 0.490413f, 0.91111f, 0.347766f, 0.612575f, 0.0220016f, 0.807224f, 0.485833f, 0.930981f, 0.982028f, 0.41133f, 0.8265f, 0.338231f, 0.858166f, 0.866513f, 0.184553f, 0.0287946f, 0.924813f, 0.584187f, 0.929221f, 0.202744f, 0.109128f, 0.469215f, 0.71036f, 0.938545f, 0.0344073f, 0.425781f, 0.128227f, 0.876826f, 0.251219f, 0.615095f, 0.308785f, 0.985871f, 0.202102f, 0.762202f, 0.989555f, 0.110346f, 0.78657f, 0.322666f, 0.425638f, 0.4092f, 0.929239f, 0.409257f, 0.916413f, 0.0362295f, 0.345098f, 0.804149f, 0.291017f, 0.865797f, 0.550924f, 0.558234f, 0.631668f, 0.661393f, 0.706274f, 0.121489f, 0.155439f, 0.0155989f, 0.343656f, 0.900521f, 0.176187f, 0.408318f, 0.968061f, 0.936298f, 0.00851265f, 0.877008f, 0.228096f, 0.959744f, 0.514649f, 0.133714f, 0.0895707f, 0.240558f, 0.727993f, 0.0857289f, 0.298125f, 0.209947f, 0.160823f, 0.29274f, 0.0399278f, 0.957869f, 0.603791f, 0.221571f, 0.799041f, 0.736731f, 0.484513f, 0.196295f, 0.808976f, 0.320616f, 0.308682f, 0.0439747f, 0.842259f, 0.0977955f, 0.0833671f, 0.503262f, 0.851656f, 0.479866f, 0.950625f, 0.411628f, 0.219651f, 0.522312f, 0.976037f, 0.383527f, 0.691701f, 0.9642f, 0.161143f, 0.0314316f, 0.724831f, 0.985053f, 0.997432f, 0.15179f, 0.829539f, 0.730971f, 0.143914f, 0.179806f, 0.987131f, 0.210939f, 0.206804f, 0.309737f, 0.848782f, 0.93808f, 0.322453f, 0.925034f, 0.481564f, 0.320244f, 0.0992068f, 0.43445f, 0.0556858f, 0.734951f, 0.0993144f, 0.714255f, 0.0302214f, 0.932355f, 0.251016f, 0.933741f, 0.254321f, 0.144415f, 0.625023f, 0.92362f, 0.586254f, 0.355336f, 0.94009f, 0.695213f, 0.931397f, 0.618968f, 0.739586f, 0.103737f, 0.368076f, 0.220176f, 0.883225f, 0.222019f, 0.0677259f, 0.303266f, 0.968175f, 0.552004f, 0.115311f, 0.0455872f, 0.684416f, 0.900796f, 0.792241f, 0.617604f, 0.356265f, 0.919644f, 0.61758f, 0.0280784f, 0.575976f, 0.560994f, 0.620322f, 0.665619f, 0.91024f, 0.737454f, 0.754261f, 0.0779842f, 0.520832f, 0.974872f, 0.19936f, 0.766045f, 0.212369f, 0.449112f, 0.532945f, 0.52625f, 0.638304f, 0.420285f, 0.865498f, 0.100521f, 0.108552f, 0.0484256f, 0.638022f, 0.556459f, 0.830696f, 0.665436f, 0.357766f, 0.462635f, 0.858165f, 0.0240363f, 0.805024f, 0.632522f, 0.616207f, 0.809035f, 0.831974f, 0.919004f, 0.168812f, 0.133027f, 0.211103f, 0.0454932f, 0.179853f, 0.964951f, 0.260681f, 0.856561f, 0.50412f, 0.200919f, 0.713513f, 0.963631f, 0.148498f, 0.455128f, 0.470364f, 0.374871f, 0.834743f, 0.0342008f, 0.627801f, 0.676421f, 0.229822f, 0.947038f, 0.197101f, 0.813979f, 0.558724f, 0.677722f, 0.61336f, 0.842315f, 0.505677f, 0.203234f, 0.944472f, 0.273246f, 0.472616f, 0.731367f, 0.385469f, 0.038378f, 0.0210421f, 0.8101f, 0.771924f, 0.724295f, 0.69712f, 0.231483f, 0.766871f, 0.22118f, 0.952272f, 0.793797f, 0.344759f, 0.848569f, 0.619039f, 0.381783f, 0.515454f, 0.212298f, 0.864574f, 0.102096f, 0.759013f, 0.0348328f, 0.530797f, 0.854771f, 0.404852f, 0.750551f, 0.406793f, 0.379375f, 0.555641f, 0.157567f, 0.193177f, 0.845328f, 0.157988f, 0.592267f, 0.832538f, 0.464178f, 0.227504f, 0.0803521f, 0.49972f, 0.993602f, 0.782846f, 0.729766f, 0.306847f, 0.769817f, 0.641094f, 0.547556f, 0.166469f, 0.997491f, 0.330004f, 0.697845f, 0.50871f, 0.937293f, 0.284859f, 0.164627f, 0.446595f, 0.249429f, 0.12309f, 0.334094f, 0.437629f, 0.515888f, 0.098429f, 0.52362f, 0.880512f, 0.736821f, 0.599419f, 0.551261f, 0.534756f, 0.863241f, 0.640294f, 0.376647f, 0.702365f, 0.311803f, 0.762398f, 0.439358f, 0.601853f, 0.165669f, 0.9539f, 0.896226f, 0.461351f, 0.383213f, 0.455631f, 0.0290472f, 0.116985f, 0.48155f, 0.554937f, 0.942049f, 0.712137f, 0.710326f, 0.804921f, 0.181305f, 0.606548f, 0.389173f, 0.368416f, 0.542916f, 0.666213f, 0.0234955f, 0.190332f, 0.907848f, 0.595852f, 0.57392f, 0.633509f, 0.598628f, 0.720329f, 0.0172913f, 0.814983f, 0.656013f, 0.762097f, 0.571442f, 0.557574f, 0.366098f, 0.307833f, 0.378715f, 0.365035f, 0.227814f, 0.471622f, 0.0541737f, 0.609736f, 0.642234f, 0.866126f, 0.324962f, 0.226084f, 0.89159f, 0.480385f, 0.508564f, 0.93119f, 0.0433976f, 0.713315f, 0.914745f, 0.798368f, 0.780862f, 0.969165f, 0.175906f, 0.19473f, 0.61445f, 0.934252f, 0.0185282f, 0.24897f, 0.277972f, 0.723536f, 0.566537f, 0.0233552f, 0.923078f, 0.581616f, 0.316423f, 0.24501f, 0.698762f, 0.69784f, 0.424567f, 0.189484f, 0.387559f, 0.932004f, 0.966823f, 0.0538948f, 0.412291f, 0.725883f, 0.866159f, 0.215323f, 0.655808f, 0.156526f, 0.277802f, 0.434198f, 0.208185f, 0.627663f, 0.837767f, 0.698486f, 0.868006f, 0.557899f, 0.532694f, 0.890736f, 0.338171f, 0.95361f, 0.731255f, 0.51718f, 0.097908f, 0.604915f, 0.387281f, 0.873079f, 0.709184f, 0.705164f, 0.0409565f, 0.441308f, 0.321482f, 0.494341f, 0.670925f, 0.426667f, 0.408377f, 0.395348f, 0.584804f, 0.27815f, 0.869304f, 0.4718f, 0.215857f, 0.620928f, 0.212542f, 0.478639f, 0.218803f, 0.291689f, 0.128241f, 0.993284f, 0.92956f, 0.675266f, 0.836845f, 0.646884f, 0.457059f, 0.154723f, 0.381244f, 0.725699f, 0.0512737f, 0.283163f, 0.256986f, 0.120155f, 0.105429f, 0.841173f, 0.817785f, 0.496723f, 0.963866f, 0.549727f, 0.919526f, 0.215732f, 0.394426f, 0.517125f, 0.531066f, 0.861426f, 0.557868f, 0.0129223f, 0.140279f, 0.103462f, 0.674733f, 0.8508f, 0.143007f, 0.594329f, 0.310337f, 0.469411f, 0.662791f, 0.199112f, 0.982426f, 0.98463f, 0.962226f, 0.937973f, 0.16067f, 0.245988f, 0.104573f, 0.182241f, 0.68625f, 0.069606f, 0.465912f, 0.231955f, 0.466497f, 0.855007f, 0.360995f, 0.824617f, 0.770135f, 0.913424f, 0.13453f, 0.435888f, 0.550898f, 0.534564f, 0.0788811f, 0.972792f, 0.855578f, 0.582295f, 0.0749266f, 0.0526137f, 0.935008f, 0.687653f, 0.00945538f, 0.706855f, 0.667849f, 0.517686f, 0.418906f, 0.789432f, 0.8065f, 0.629954f, 0.985267f, 0.688833f, 0.00845489f, 0.0939969f, 0.272987f, 0.510031f, 0.562054f, 0.933702f, 0.415083f, 0.782134f, 0.897633f, 0.633468f, 0.994013f, 0.580576f, 0.00873444f, 0.832382f, 0.986717f, 0.743726f, 0.582978f, 0.73837f, 0.0521541f, 0.727402f, 0.476097f, 0.480672f, 0.953124f, 0.866351f, 0.602734f, 0.605534f, 0.704575f, 0.845739f, 0.249312f, 0.400276f, 0.441239f, 0.63189f, 0.418332f, 0.872115f, 0.9682f, 0.144187f, 0.633727f, 0.197865f, 0.456069f, 0.697859f, 0.175897f, 0.128784f, 0.906407f, 0.0165433f, 0.116214f, 0.420433f, 0.106288f, 0.885471f, 0.195202f, 0.0122948f, 0.347396f, 0.231516f, 0.079076f, 0.942653f, 0.722066f, 0.676564f, 0.243936f, 0.80042f, 0.370243f, 0.655602f, 0.504644f, 0.908901f, 0.435098f, 0.85424f, 0.565821f, 0.980889f, 0.122889f, 0.802084f, 0.761899f, 0.531931f, 0.802322f, 0.0340665f, 0.820782f, 0.52478f, 0.657767f, 0.710471f, 0.968145f, 0.315111f, 0.356929f, 0.72612f, 0.380387f, 0.157531f, 0.771541f, 0.281162f, 0.773407f, 0.153415f, 0.699645f, 0.138378f, 0.243136f, 0.0163576f, 0.205247f, 0.690435f, 0.147783f, 0.0530863f, 0.930954f, 0.375418f, 0.741039f, 0.350249f, 0.369976f, 0.700277f, 0.879363f, 0.965882f, 0.934557f, 0.454716f, 0.884906f, 0.968857f, 0.5108f, 0.111213f, 0.111757f, 0.380992f, 0.788635f, 0.825531f, 0.483706f, 0.325941f, 0.547729f, 0.116752f, 0.483973f, 0.561566f, 0.0476853f, 0.288421f, 0.650054f, 0.276799f, 0.379037f, 0.860518f, 0.0228963f, 0.288618f, 0.881359f, 0.604251f, 0.927271f, 0.614673f, 0.0643546f, 0.436028f, 0.288054f, 0.652952f, 0.209591f, 0.773054f, 0.345684f, 0.435882f, 0.496525f, 0.733283f, 0.310134f, 0.661542f, 0.481354f, 0.799479f, 0.999455f, 0.00901059f, 0.60553f, 0.847005f, 0.2234f, 0.170015f, 0.055915f, 0.648482f, 0.603476f, 0.263597f, 0.650536f, 0.548014f, 0.095071f, 0.242958f, 0.314119f, 0.893043f, 0.312585f, 0.361183f, 0.45584f, 0.538559f, 0.355636f, 0.743869f, 2.96342e-05f, 0.421807f, 0.909309f, 0.290235f, 0.502632f, 0.784674f, 0.187569f, 0.308071f, 0.267185f, 0.387117f, 0.830383f, 0.699576f, 0.861807f, 0.635586f, 0.0797072f, 0.982407f, 0.197537f, 0.389593f, 0.210325f, 0.0925069f, 0.853925f, 0.66364f, 0.142711f, 0.72401f, 0.41041f, 0.293595f, 0.180084f, 0.857877f, 0.22609f, 0.0536478f, 0.0149311f, 0.792549f, 0.16302f, 0.117321f, 0.212745f, 0.0973031f, 0.432302f, 0.334026f, 0.209042f, 0.753679f, 0.762934f, 0.708298f, 0.0171909f, 0.0571178f, 0.54626f, 0.0221952f, 0.242029f, 0.0918763f, 0.989952f, 0.184176f, 0.392578f, 0.534408f, 0.277992f, 0.426756f, 0.698145f, 0.969953f, 0.195217f, 0.846796f, 0.726991f, 0.6899f, 0.967913f, 0.62467f, 0.434259f, 0.618726f, 0.754401f, 0.177388f, 0.528281f, 0.726961f, 0.963401f, 0.0707188f, 0.0444969f, 0.479264f, 0.24116f, 0.422797f, 0.320627f, 0.615334f, 0.544112f, 0.330703f, 0.591762f, 0.155187f, 0.472551f, 0.714999f, 0.532782f, 0.528907f, 0.513376f, 0.86704f, 0.0328651f, 0.727746f, 0.325856f, 0.618814f, 0.629094f, 0.280548f, 0.717686f, 0.757481f, 0.410286f, 0.709102f, 0.522417f, 0.639293f, 0.555453f, 0.719215f, 0.900213f, 0.0793727f, 0.916506f, 0.44328f, 0.352898f, 0.398034f, 0.384751f, 0.161074f, 0.7696f, 0.770671f, 0.538404f, 0.0318024f, 0.437774f, 0.0593149f, 0.70262f, 0.369751f, 0.38269f, 0.585291f, 0.899732f, 0.398359f, 0.159842f, 0.765145f, 0.297718f, 0.265596f, 0.52447f, 0.414421f, 0.428482f, 0.557065f, 0.559619f, 0.842593f, 0.956909f, 0.816163f, 0.195375f, 0.931258f, 0.465971f, 0.424543f, 0.774653f, 0.590041f, 0.0739423f, 0.196671f, 0.307677f, 0.261933f, 0.0285516f, 0.738984f, 0.354039f, 0.391523f, 0.397201f, 0.664987f, 0.805306f, 0.937924f, 0.880471f, 0.341039f, 0.924895f, 0.869036f, 0.413439f, 0.541304f, 0.292062f, 0.426397f, 0.964427f, 0.208438f, 0.438794f, 0.577651f, 0.300885f, 0.461668f, 0.405974f, 0.0812924f, 0.175145f, 0.178804f, 0.441197f, 0.948142f, 0.847824f, 0.335842f, 0.725334f, 0.311568f, 0.652327f, 0.0200386f, 0.284258f, 0.876683f, 0.890234f, 0.993462f, 0.43376f, 0.638062f, 0.88501f, 0.72586f, 0.156183f, 0.0465424f, 0.769994f, 0.183733f, 0.64696f, 0.645721f, 0.376613f, 0.220952f, 0.835697f, 0.980755f, 0.3631f, 0.471998f, 0.555526f, 0.95436f, 0.108197f, 0.235975f, 0.505983f, 0.483132f, 0.937686f, 0.981442f, 0.78427f, 0.97735f, 0.831985f, 0.510713f, 0.314267f, 0.000832427f, 0.288103f, 0.398739f, 0.209325f, 0.783176f, 0.102928f, 0.251047f, 0.954025f, 0.0499731f, 0.505271f, 0.794893f, 0.0162987f, 0.95054f, 0.230905f, 0.113767f, 0.266758f, 0.869384f, 0.128996f, 0.78173f, 0.337336f, 0.171694f, 0.541244f, 0.881261f, 0.276736f, 0.552753f, 0.808098f, 0.025242f, 0.265823f, 0.97056f, 0.980095f, 0.09552f, 0.41776f, 0.645108f, 0.60675f, 0.722814f, 0.71645f, 0.554537f, 0.396683f, 0.610738f, 0.927738f, 0.676049f, 0.41029f, 0.553841f, 0.503551f, 0.409644f, 0.0463647f, 0.214084f, 0.508941f, 0.841484f, 0.0321953f, 0.927781f, 0.934039f, 0.377543f, 0.437581f, 0.0498346f, 0.472919f, 0.0323662f, 0.111413f, 0.0808458f, 0.0368907f, 0.627915f, 0.992583f, 0.360955f, 0.647195f, 0.0489745f, 0.623311f, 0.0431752f, 0.767147f, 0.818697f, 0.103949f, 0.868243f, 0.0448967f, 0.822708f, 0.204724f, 0.605053f, 0.91675f, 0.744936f, 0.868857f, 0.743858f, 0.0523163f, 0.623608f, 0.42094f, 0.0573949f, 0.172074f, 0.511883f, 0.964499f, 0.853567f, 0.315642f, 0.655739f, 0.204765f, 0.0406335f, 0.673253f, 0.984438f, 0.820486f, 0.564025f, 0.315305f, 0.629325f, 0.460477f, 0.00706145f, 0.320799f, 0.571476f, 0.361183f, 0.938008f, 0.965623f, 0.601531f, 0.649039f, 0.571339f, 0.234161f, 0.305591f, 0.215976f, 0.516389f, 0.959338f, 0.650377f, 0.111133f, 0.199876f, 0.574731f, 0.316545f, 0.0982121f, 0.674108f, 0.530823f, 0.878089f, 0.16988f, 0.619327f, 0.481569f, 0.792752f, 0.839371f, 0.788766f, 0.902313f, 0.815574f, 0.0821149f, 0.232334f, 0.60097f, 0.359872f, 0.573477f, 0.838035f, 0.363156f, 0.215208f, 0.0890882f, 0.216272f, 0.233223f, 0.209986f, 0.252158f, 0.0550161f, 0.0262118f, 0.0775798f, 0.529402f, 0.150711f, 0.919968f, 0.131453f, 0.507233f, 0.262521f, 0.0827009f, 0.436821f, 0.808552f, 0.250228f, 0.213137f, 0.459742f, 0.594686f, 0.0496132f, 0.314262f, 0.308954f, 0.741435f, 0.404692f, 0.0113842f, 0.228259f, 0.521657f, 0.354893f, 0.533571f, 0.990354f, 0.0535394f, 0.704199f, 0.107439f, 0.706493f, 0.966148f, 0.262109f, 0.366967f, 0.194762f, 0.0522012f, 0.668898f, 0.709822f, 0.642879f, 0.697398f, 0.868102f, 0.309041f, 0.214379f, 0.566242f, 0.304703f, 0.504027f, 0.687267f, 0.186212f, 0.602461f, 0.0249466f, 0.786558f, 0.305553f, 0.491429f, 0.661511f, 0.0946824f, 0.137817f, 0.174723f, 0.60314f, 0.271917f, 0.845652f, 0.576868f, 0.800857f, 0.927972f, 0.185335f, 0.397098f, 0.207879f, 0.254672f, 0.395767f, 0.677578f, 0.689829f, 0.399777f, 0.609087f, 0.550189f, 0.660056f, 0.594321f, 0.982477f, 0.419657f, 0.752959f, 0.410347f, 0.604976f, 0.934088f, 0.832204f, 0.231608f, 0.960599f, 0.884443f, 0.924598f, 0.553883f, 0.907342f, 0.290755f, 0.264968f, 0.573887f, 0.659652f, 0.720379f, 0.608417f, 0.0284497f, 0.378218f, 0.26479f, 0.916425f, 0.407464f, 0.528473f, 0.48941f, 0.328966f, 0.398123f, 0.562249f, 0.0747244f, 0.48064f, 0.498243f, 0.783406f, 0.798375f, 0.958975f, 0.79876f, 0.0211302f, 0.410217f, 0.518641f, 0.132979f, 0.847882f, 0.990361f, 0.987076f, 0.799242f, 0.648283f, 0.59208f, 0.296394f, 0.756467f, 0.944225f, 0.0765554f, 0.600636f, 0.317597f, 0.541923f, 0.310111f, 0.114584f, 0.176047f, 0.83561f, 0.642901f, 0.363241f, 0.331812f, 0.925724f, 0.843066f, 0.426798f, 0.314231f, 0.62937f, 0.00519717f, 0.359633f, 0.132014f, 0.112669f, 0.468842f, 0.718372f, 0.148742f, 0.351903f, 0.245704f, 0.794502f, 0.876104f, 0.30645f, 0.935792f, 0.28211f, 0.24046f, 0.195609f, 0.276916f, 0.687715f, 0.490041f, 0.501194f, 0.153291f, 0.0829542f, 0.164332f, 0.468091f, 0.0247278f, 0.394173f, 0.210914f, 0.86059f, 0.339874f, 0.61321f, 0.930054f, 0.556142f, 0.159933f, 0.00420368f, 0.652075f, 0.667575f, 0.289459f, 0.730602f, 0.555569f, 0.944058f, 0.97697f, 0.917328f, 0.433618f, 0.887698f, 0.29905f, 0.271253f, 0.247104f, 0.239831f, 0.858059f, 0.460138f, 0.633534f, 0.0551935f, 0.2281f, 0.338819f, 0.474196f, 0.014922f, 0.228013f, 0.136836f, 0.406081f, 0.0531204f, 0.98602f, 0.599853f, 0.0315795f, 0.325749f, 0.0364954f, 0.314839f, 0.865815f, 0.233163f, 0.660901f, 0.272757f, 0.721703f, 0.0143465f, 0.0771391f, 0.286474f, 0.000510703f, 0.985903f, 0.0929513f, 0.474664f, 0.650234f, 0.972448f, 0.617551f, 0.247075f, 0.877322f, 0.649853f, 0.662885f, 0.219109f, 0.375737f, 0.905421f, 0.459193f, 0.928444f, 0.411585f, 0.0962024f, 0.944366f, 0.269214f, 0.401052f, 0.513182f, 0.810974f, 0.557663f, 0.759865f, 0.509085f, 0.921738f, 0.121149f, 0.484349f, 0.529608f, 0.638714f, 0.535673f, 0.774346f, 0.853434f, 0.420625f, 0.860491f, 0.648348f, 0.15337f, 0.84287f, 0.794019f, 0.392978f, 0.274666f, 0.462768f, 0.961056f, 0.236077f, 0.100099f, 0.896931f, 0.307691f, 0.279006f, 0.598285f, 0.116766f, 0.42967f, 0.686491f, 0.92182f, 0.473785f, 0.171836f, 0.463263f, 0.333596f, 0.10533f, 0.65519f, 0.110283f, 0.576726f, 0.870012f, 0.828654f, 0.298535f, 0.116733f, 0.500204f, 0.471227f, 0.490484f, 0.885683f, 0.238032f, 0.625088f, 0.512383f, 0.555377f, 0.384792f, 0.867605f, 0.576642f, 0.201817f, 0.14677f, 0.130611f, 0.681495f, 0.658775f, 0.265814f, 0.928467f, 0.332115f, 0.853925f, 0.29802f, 0.642942f, 0.226712f, 0.253215f, 0.351142f, 0.998212f, 0.028135f, 0.802334f, 0.0519587f, 0.982477f, 0.655262f, 0.526479f, 0.313167f, 0.413869f, 0.350746f, 0.653669f, 0.283342f, 0.999014f, 0.904547f, 0.417504f, 0.214072f, 0.356605f, 0.169751f, 0.991036f, 0.584668f, 0.847046f, 0.549047f, 0.969677f, 0.312476f, 0.873823f, 0.901067f, 0.935559f, 0.497459f, 0.347855f, 0.472104f, 0.515479f, 0.923861f, 0.594239f, 0.935341f, 0.138412f, 0.534849f, 0.138707f, 0.646969f, 0.0588493f, 0.460917f, 0.335397f, 0.163272f, 0.813929f, 0.695145f, 0.185964f, 0.295093f, 0.789526f, 0.98727f, 0.972209f, 0.201822f, 0.361339f, 0.117944f, 0.0268668f, 0.600853f, 0.833237f, 0.132332f, 0.410353f, 0.011527f, 0.650644f, 0.134855f, 0.743185f, 0.734788f, 0.451774f, 0.655363f, 0.14838f, 0.984824f, 0.805629f, 0.879287f, 0.16018f, 0.588786f, 0.957526f, 0.850179f, 0.852263f, 0.60276f, 0.693684f, 0.185038f, 0.827625f, 0.304756f, 0.359668f, 0.975668f, 0.00979758f, 0.165051f, 0.538797f, 0.62155f, 0.925761f, 0.518746f, 0.0949743f, 0.798904f, 0.0996748f, 0.258126f, 0.241501f, 0.0231525f, 0.50768f, 0.861858f, 0.95564f, 0.674394f, 0.48676f, 0.442908f, 0.54732f, 0.855726f, 0.727641f, 0.276677f, 0.00767715f, 0.264663f, 0.824018f, 0.334708f, 0.309031f, 0.856454f, 0.912137f, 0.980128f, 0.953356f, 0.239518f, 0.904269f, 0.105412f, 0.120604f, 0.971261f, 0.632819f, 0.399633f, 0.74892f, 0.0397495f, 0.990884f, 0.659839f, 0.787128f, 0.0371576f, 0.233544f, 0.615285f, 0.330857f, 0.541825f, 0.821655f, 0.358368f, 0.754652f, 0.605243f, 0.409314f, 0.743172f, 0.120013f, 0.152825f, 0.833333f, 0.954085f, 0.397493f, 0.754619f, 0.0291426f, 0.265614f, 0.499785f, 0.503684f, 0.063207f, 0.958214f, 0.758642f, 0.882101f, 0.746943f, 0.40887f, 0.598289f, 0.148958f, 0.01237f, 0.470252f, 0.770874f, 0.282855f, 0.196647f, 0.182888f, 0.775261f, 0.603524f, 0.64581f, 0.211286f, 0.928953f, 0.0808277f, 0.94412f, 0.793587f, 0.189275f, 0.228528f, 0.452367f, 0.134137f, 0.191626f, 0.740312f, 0.371979f, 0.306545f, 0.111149f, 0.947749f, 0.670048f, 0.401308f, 0.814009f, 0.557634f, 0.765922f, 0.305189f, 0.0691121f, 0.206145f, 0.972946f, 0.483041f, 0.674879f, 0.64419f, 0.440743f, 0.603566f, 0.299055f, 0.770067f, 0.0277483f, 0.822632f, 0.899626f, 0.0947621f, 0.623652f, 0.385972f, 0.295955f, 0.988109f, 0.292027f, 0.24126f, 0.851533f, 0.928924f, 0.506672f, 0.485787f, 0.167212f, 0.0648757f, 0.90929f, 0.588648f, 0.144438f, 0.477218f, 0.744802f, 0.369811f, 0.879862f, 0.776209f, 0.658917f, 0.260289f, 0.449339f, 0.156398f, 0.825112f, 0.0244576f, 0.0114107f, 0.143369f, 0.936058f, 0.91859f, 0.766248f, 0.22063f, 0.0354328f, 0.18146f, 0.303906f, 0.0585913f, 0.873195f, 0.820437f, 0.520642f, 0.301715f, 0.445923f, 0.772482f, 0.53381f, 0.850808f, 0.936274f, 0.709723f, 0.811877f, 0.0333295f, 0.308054f, 0.574707f, 0.0104636f, 0.225917f, 0.0125933f, 0.390455f, 0.52888f, 0.694311f, 0.633775f, 0.493789f, 0.453533f, 0.204401f, 0.542741f, 0.0427775f, 0.47859f, 0.747509f, 0.975907f, 0.243713f, 0.0750013f, 0.810944f, 0.978885f, 0.634111f, 0.181389f, 0.0870874f, 0.558881f, 0.507689f, 0.844796f, 0.290514f, 0.0966477f, 0.701067f, 0.126584f, 0.143832f, 0.861762f, 0.593865f, 0.569792f, 0.663625f, 0.0383406f, 0.285857f, 0.967887f, 0.388321f, 0.730572f, 0.0502237f, 0.370907f, 0.599961f, 0.704411f, 0.997353f, 0.313822f, 0.837331f, 0.560436f, 0.966545f, 0.564464f, 0.530616f, 0.222637f, 0.883258f, 0.405127f, 0.766165f, 0.970267f, 0.605508f, 0.27344f, 0.417443f, 0.6804f, 0.899621f, 0.943515f, 0.697902f, 0.917226f, 0.585366f, 0.867522f, 0.288848f, 0.332414f, 0.418357f, 0.765176f, 0.58805f, 0.689675f, 0.918882f, 0.223019f, 0.0301171f, 0.45733f, 0.23023f, 0.997342f, 0.708967f, 0.690235f, 0.778435f, 0.186999f, 0.0062136f, 0.799721f, 0.288684f, 0.145258f, 0.715006f, 0.567267f, 0.191902f, 0.222308f, 0.16527f, 0.141028f, 0.498656f, 0.471809f, 0.812105f, 0.410669f, 0.122852f, 0.538152f, 0.985828f, 0.14648f, 0.815531f, 0.822378f, 0.285319f, 0.340083f, 0.335656f, 0.874195f, 0.399742f, 0.145658f, 0.383607f, 0.571692f, 0.061859f, 0.0808494f, 0.970098f, 0.66054f, 0.387502f, 0.879439f, 0.771714f, 0.323171f, 0.769871f, 0.901997f, 0.668459f, 0.155517f, 0.0328072f, 0.72767f, 0.367528f, 0.934856f, 0.80916f, 0.186836f, 0.511356f, 0.875518f, 0.629981f, 0.120147f, 0.217666f, 0.503442f, 0.364572f, 0.530868f, 0.733359f, 0.0985443f, 0.781528f, 0.600487f, 0.734789f, 0.259964f, 0.420761f, 0.690644f, 0.762461f, 0.357923f, 0.374403f, 0.0213049f, 0.480311f, 0.93855f, 0.743486f, 0.193385f, 0.358376f, 0.89866f, 0.995547f, 0.597713f, 0.787219f, 0.184868f, 0.885802f, 0.871711f, 0.276687f, 0.0774475f, 0.559774f, 0.639416f, 0.82337f, 0.264089f, 0.961965f, 0.505332f, 0.43159f, 0.343287f, 0.966538f, 0.292866f, 0.851804f, 0.573717f, 0.241853f, 0.529008f, 0.368493f, 0.178781f, 0.485219f, 0.152118f, 0.215771f, 0.95961f, 0.239652f, 0.0222711f, 0.41502f, 0.544832f, 0.340101f, 0.791993f, 0.810729f, 0.454822f, 0.278915f, 0.487453f, 0.956725f, 0.745353f, 0.971265f, 0.282904f, 0.335591f, 0.0607439f, 0.528187f, 0.462494f, 0.367153f, 0.648365f, 0.477752f, 0.957297f, 0.5961f, 0.46201f, 0.470777f, 0.682839f, 0.617738f, 0.494029f, 0.8018f, 0.75107f, 0.0747347f, 0.312343f, 0.818323f, 0.242369f, 0.824779f, 0.0967584f, 0.602757f, 0.453952f, 0.347854f, 0.911595f, 0.709323f, 0.603896f, 0.560401f, 0.98434f, 0.0364084f, 0.129774f, 0.190367f, 0.509978f, 0.885952f, 0.511804f, 0.184469f, 0.931065f, 0.754266f, 0.35684f, 0.950373f, 0.9612f, 0.518543f, 0.327415f, 0.541612f, 0.855774f, 0.613072f, 0.851914f, 0.653144f, 0.648377f, 0.367146f, 0.254005f, 0.533603f, 0.340066f, 0.0406995f, 0.642052f, 0.331147f, 0.827025f, 0.000408638f, 0.85964f, 0.620224f, 0.107599f, 0.0787695f, 0.586626f, 0.441973f, 0.758552f, 0.193283f, 0.590967f, 0.373918f, 0.954407f, 0.750803f, 0.590125f, 0.916398f, 0.289596f, 0.893226f, 0.641432f, 0.864426f, 0.165384f, 0.959013f, 0.172217f, 0.201353f, 0.565754f, 0.0103648f, 0.399282f, 0.191406f, 0.147727f, 0.64197f, 0.419365f, 0.80361f, 0.806011f, 0.253815f, 0.385829f, 0.318207f, 0.752515f, 0.290406f, 0.594081f, 0.103586f, 0.103909f, 0.727477f, 0.145286f, 0.702887f, 0.639973f, 0.906371f, 0.954972f, 0.688807f, 0.537407f, 0.36753f, 0.611981f, 0.56082f, 0.548586f, 0.626795f, 0.75437f, 0.454324f, 0.281335f, 0.932877f, 0.0556889f, 0.431626f, 0.823033f, 0.746636f, 0.884209f, 0.755189f, 0.150605f, 0.251293f, 0.273213f, 0.32985f, 0.157047f, 0.253227f, 0.882795f, 0.751524f, 0.86565f, 0.980124f, 0.458957f, 0.0259092f, 0.139669f, 0.73587f, 0.48146f, 0.564327f, 0.418925f, 0.15718f, 0.599346f, 0.0948768f, 0.548157f, 0.983815f, 0.896747f, 0.93467f, 0.12094f, 0.653166f, 0.445269f, 0.987496f, 0.89148f, 0.432709f, 0.00386192f, 0.423232f, 0.744804f, 0.449125f, 0.0268778f, 0.38598f, 0.229567f, 0.307825f, 0.15474f, 0.61837f, 0.0342545f, 0.101533f, 0.167021f, 0.850369f, 0.925965f, 0.0288318f, 0.968488f, 0.986427f, 0.143009f, 0.555865f, 0.715264f, 0.352634f, 0.292474f, 0.225275f, 0.405263f, 0.809803f, 0.0659627f, 0.329628f, 0.397733f, 0.385378f, 0.860776f, 0.250435f, 0.689519f, 0.522654f, 0.64017f, 0.682935f, 0.461006f, 0.63006f, 0.80172f, 0.73188f, 0.256695f, 0.662023f, 0.348731f, 0.922653f, 0.919557f, 0.425762f, 0.910753f, 0.75513f, 0.518977f, 0.739286f, 0.664524f, 0.224873f, 0.651623f, 0.706705f, 0.156789f, 0.478963f, 0.118234f, 0.101867f, 0.105066f, 0.42649f, 0.120927f, 0.0114221f, 0.382267f, 0.901766f, 0.0430191f, 0.507606f, 0.57271f, 0.44979f, 0.199321f, 0.826183f, 0.0436905f, 0.623164f, 0.754249f, 0.179847f, 0.609664f, 0.938128f, 0.0994121f, 0.415671f, 0.993652f, 0.714302f, 0.993769f, 0.840236f, 0.920536f, 0.667547f, 0.334224f, 0.543902f, 0.701776f, 0.37346f, 0.955404f, 0.838328f, 0.15956f, 0.434229f, 0.0100381f, 0.863377f, 0.342316f, 0.307566f, 0.830467f, 0.663271f, 0.152056f, 0.893691f, 0.938791f, 0.818353f, 0.0938728f, 0.341518f, 0.94682f, 0.843918f, 0.0174661f, 0.385148f, 0.0616036f, 0.395143f, 0.346758f, 0.748034f, 0.887631f, 0.447507f, 0.0868775f, 0.625436f, 0.599049f, 0.160688f, 0.542005f, 0.0673281f, 0.301457f, 0.865826f, 0.449351f, 0.815057f, 0.278228f, 0.453133f, 0.625479f, 0.369853f, 0.752237f, 0.616496f, 0.964257f, 0.538866f, 0.97705f, 0.779135f, 0.107661f, 0.141694f, 0.293515f, 0.97431f, 0.309492f, 0.339334f, 0.668479f, 0.701346f, 0.612186f, 0.388952f, 0.489523f, 0.337777f, 0.335632f, 0.021722f, 0.608576f, 0.571344f, 0.00593222f, 0.570806f, 0.748318f, 0.0684743f, 0.166752f, 0.228047f, 0.931145f, 0.471832f, 0.672698f, 0.0547746f, 0.20706f, 0.515942f, 0.685615f, 0.718145f, 0.45582f, 0.609663f, 0.43809f, 0.501516f, 0.802087f, 0.706998f, 0.87524f, 0.719174f, 0.724364f, 0.750863f, 0.0439049f, 0.184696f, 0.50599f, 0.434176f, 0.860739f, 0.427148f, 0.11695f, 0.770119f, 0.955365f, 0.385201f, 0.762092f, 0.154867f, 0.349278f, 0.0588391f, 0.680864f, 0.197148f, 0.923099f, 0.648124f, 0.261028f, 0.380421f, 0.897241f, 0.776916f, 0.498693f, 0.278177f, 0.513424f, 0.182462f, 0.640768f, 0.87773f, 0.640719f, 0.984933f, 0.0608642f, 0.461069f, 0.90336f, 0.697298f, 0.0887178f, 0.738091f, 0.847818f, 0.345321f, 0.678449f, 0.0661008f, 0.222803f, 0.15153f, 0.976997f, 0.63716f, 0.399377f, 0.17271f, 0.519796f, 0.0767646f, 0.960392f, 0.0281541f, 0.824571f, 0.11165f, 0.158792f, 0.196758f, 0.672518f, 0.386981f, 0.81231f, 0.814184f, 0.0779816f, 0.201569f, 0.212442f, 0.35373f, 0.776933f, 0.18751f, 0.891843f, 0.179971f, 0.648483f, 0.649158f, 0.633252f, 0.364332f, 0.955416f, 0.954116f, 0.460376f, 0.719585f, 0.71924f, 0.379218f, 0.302536f, 0.468745f, 0.833374f, 0.11807f, 0.236876f, 0.265245f, 0.786198f, 0.616682f, 0.176263f, 0.16878f, 0.746592f, 0.325369f, 0.93201f, 0.210689f, 0.404906f, 0.0811554f, 0.130468f, 0.717783f, 0.779477f, 0.767393f, 0.258517f, 0.329721f, 0.777283f, 0.832453f, 0.407952f, 0.219291f, 0.787133f, 0.908551f, 0.804323f, 0.63265f, 0.871746f, 0.28071f, 0.292123f, 0.665286f, 0.486935f, 0.833672f, 0.330147f, 0.74882f, 0.921321f, 0.0570516f, 0.994558f, 0.18646f, 0.930969f, 0.963765f, 0.611787f, 0.816732f, 0.255255f, 0.127493f, 0.653724f, 0.67634f, 0.963859f, 0.884945f, 0.545391f, 0.259864f, 0.976026f, 0.848169f, 0.190596f, 0.934318f, 0.780122f, 0.54417f, 0.269209f, 0.04525f, 0.961655f, 0.988442f, 0.299954f, 0.287465f, 0.621607f, 0.319467f, 0.418552f, 0.306947f, 0.826193f, 0.967477f, 0.708696f, 0.23199f, 0.839541f, 0.855875f, 0.376691f, 0.35591f, 0.0623152f, 0.364152f, 0.0163067f, 0.414714f, 0.367221f, 0.916573f, 0.783944f, 0.953854f, 0.429259f, 0.821322f, 0.182304f, 0.861738f, 0.892593f, 0.363974f, 0.940841f, 0.414829f, 0.96554f, 0.0697756f, 0.808214f, 0.279903f, 0.753596f, 0.170598f, 0.662963f, 0.506491f, 0.989795f, 0.833547f, 0.0964362f, 0.217928f, 0.182511f, 0.916405f, 0.929663f, 0.892808f, 0.960704f, 0.622028f, 0.0328625f, 0.875278f, 0.671331f, 0.120736f, 0.484243f, 0.661575f, 0.262103f, 0.989783f, 0.529199f, 0.53198f, 0.642562f, 0.659543f, 0.535853f, 0.0279862f, 0.927086f, 0.226503f, 0.766204f, 0.67968f, 0.664501f, 0.000147433f, 0.747497f, 0.57694f, 0.56268f, 0.743567f, 0.846374f, 0.228906f, 0.881546f, 0.35777f, 0.535058f, 0.867154f, 0.423761f, 0.435927f, 0.385817f, 0.22335f, 0.731321f, 0.565765f, 0.729349f, 0.657976f, 0.223232f, 0.134646f, 0.757165f, 0.977772f, 0.13174f, 0.489814f, 0.390622f, 0.030793f, 0.526329f, 0.937251f, 0.329882f, 0.849362f, 0.0605701f, 0.628265f, 0.254025f, 0.839644f, 0.388817f, 0.0326272f, 0.808323f, 0.704152f, 0.322941f, 0.216104f, 0.241679f, 0.909248f, 0.878167f, 0.486013f, 0.556686f, 0.223157f, 0.556652f, 0.378219f, 0.378978f, 0.412863f, 0.00537912f, 0.888955f, 0.239765f, 0.738339f, 0.795672f, 0.0115921f, 0.342575f, 0.526488f, 0.161514f, 0.679725f, 0.45338f, 0.350966f, 0.0698645f, 0.371294f, 0.802938f, 0.119685f, 0.112734f, 0.539275f, 0.32482f, 0.324537f, 0.102019f, 0.26908f, 0.869889f, 0.939194f, 0.010289f, 0.937126f, 0.869746f, 0.355097f, 0.895072f, 0.358766f, 0.787611f, 0.631421f, 0.489595f, 0.906862f, 0.934934f, 0.159889f, 0.327911f, 0.248797f, 0.994135f, 0.637473f, 0.162049f, 0.317193f, 0.100519f, 0.731889f, 0.178731f, 0.147433f, 0.553671f, 0.0860994f, 0.0637024f, 0.230915f, 0.396349f, 0.0496842f, 0.668902f, 0.468149f, 0.744955f, 0.731002f, 0.869422f, 0.0487048f, 0.395655f, 0.983973f, 0.967485f, 0.909141f, 0.590347f, 0.550386f, 0.229202f, 0.809708f, 0.401689f, 0.269933f, 0.357436f, 0.40813f, 0.715089f, 0.483819f, 0.523768f, 0.730117f, 0.0273757f, 0.38216f, 0.376063f, 0.0495842f, 0.540363f, 0.403137f, 0.435207f, 0.962374f, 0.243001f, 0.2155f, 0.116579f, 0.00596777f, 0.499365f, 0.464358f, 0.941541f, 0.0129719f, 0.707456f, 0.12581f, 0.845498f, 0.768457f, 0.837357f, 0.511282f, 0.255564f, 0.426139f, 0.80073f, 0.764699f, 0.477662f, 0.489556f, 0.0937584f, 0.680824f, 0.194003f, 0.910425f, 0.344751f, 0.473603f, 0.342575f, 0.945425f, 0.232417f, 0.469331f, 0.858076f, 0.600164f, 0.572563f, 0.935231f, 0.844502f, 0.435598f, 0.259354f, 0.345243f, 0.575524f, 0.856887f, 0.769067f, 0.0561712f, 0.861937f, 0.477175f, 0.642632f, 0.989681f, 0.657354f, 0.495374f, 0.890809f, 0.361776f, 0.753478f, 0.352576f, 0.316028f, 0.55934f, 0.748111f, 0.0242301f, 0.63698f, 0.95354f, 0.999331f, 0.499351f, 0.0964141f, 0.0932584f, 0.181925f, 0.470591f, 0.58111f, 0.473299f, 0.568515f, 0.159936f, 0.352641f, 0.986706f, 0.39087f, 0.791791f, 0.197131f, 0.905259f, 0.438271f, 0.353538f, 0.471969f, 0.954098f, 0.654215f, 0.316385f, 0.374373f, 0.124096f, 0.296559f, 0.0191982f, 0.253671f, 0.453193f, 0.957264f, 0.851118f, 0.131151f, 0.824015f, 0.0761794f, 0.939823f, 0.557335f, 0.298368f, 0.652939f, 0.446571f, 0.202696f, 0.741027f, 0.822296f, 0.932177f, 0.232095f, 0.206957f, 0.822518f, 0.393793f, 0.251782f, 0.131201f, 0.0727387f, 0.770932f, 0.354888f, 0.00648049f, 0.372038f, 0.303916f, 0.788783f, 0.779157f, 0.445444f, 0.474583f, 0.485494f, 0.324881f, 0.0291973f, 0.993241f, 0.15197f, 0.429672f, 0.635156f, 0.0466568f, 0.493696f, 0.484205f, 0.899548f, 0.673079f, 0.887542f, 0.068839f, 0.956253f, 0.11191f, 0.43216f, 0.726792f, 0.324185f, 0.961165f, 0.315227f, 0.123589f, 0.320405f, 0.341128f, 0.008635f, 0.213393f, 0.86098f, 0.895268f, 0.500419f, 0.356494f, 0.222006f, 0.245306f, 0.020221f, 0.851059f, 0.808538f, 0.436756f, 0.218902f, 0.672502f, 0.212524f, 0.096553f, 0.441897f, 0.72069f, 0.506839f, 0.0231929f, 0.295169f, 0.937824f, 0.411616f, 0.317353f, 0.535467f, 0.289522f, 0.0975993f, 0.573829f, 0.894906f, 0.912567f, 0.503889f, 0.40862f, 0.87605f, 0.513327f, 0.897704f, 0.79112f, 0.00330601f, 0.301307f, 0.924933f, 0.210136f, 0.399789f, 0.383247f, 0.7213f, 0.465368f, 0.379037f, 0.222073f, 0.290803f, 0.75425f, 0.896244f, 0.661921f, 0.113953f, 0.175f, 0.801437f, 0.0791816f, 0.438189f, 0.554194f, 0.698299f, 0.533362f, 0.559726f, 0.945257f, 0.389805f, 0.45708f, 0.937364f, 0.980872f, 0.268851f, 0.709539f, 0.0834161f, 0.363897f, 0.664832f, 0.179982f, 0.401349f, 0.603644f, 0.707299f, 0.804133f, 0.983241f, 0.311261f, 0.345365f, 0.706893f, 0.648039f, 0.565055f, 0.858242f, 0.421955f, 0.677403f, 0.158963f, 0.997875f, 0.695644f, 0.743536f, 0.861741f, 0.963077f, 0.783475f, 0.314471f, 0.909776f, 0.13434f, 0.00685226f, 0.315992f, 0.505044f, 0.884214f, 0.448849f, 0.0145242f, 0.142816f, 0.911866f, 0.721801f, 0.682015f, 0.459583f, 0.150321f, 0.679745f, 0.502825f, 0.746225f, 0.323068f, 0.425318f, 0.879868f, 0.0165599f, 0.176365f, 0.500729f, 0.138804f, 0.834064f, 0.471713f, 0.836846f, 0.232585f, 0.285301f, 0.211742f, 0.229187f, 0.782864f, 0.312932f, 0.312711f, 0.578149f, 0.620285f, 0.991363f, 0.346231f, 0.267146f, 0.979091f, 0.288597f, 0.963832f, 0.244004f, 0.943013f, 0.74329f, 0.783499f, 0.245982f, 0.664863f, 0.396302f, 0.302394f, 0.754113f, 0.151776f, 0.758769f, 0.500095f, 0.5571f, 0.489359f, 0.793128f, 0.493564f, 0.0816229f, 0.292844f, 0.940675f, 0.647185f, 0.324899f, 0.271784f, 0.25973f, 0.580248f, 0.882846f, 0.344809f, 0.806539f, 0.619961f, 0.977769f, 0.810815f, 0.525316f, 0.391413f, 0.284474f, 0.661297f, 0.0822648f, 0.556091f, 0.872535f, 0.320108f, 0.228955f, 0.759105f, 0.284027f, 0.698262f, 0.817571f, 0.904471f, 0.232707f, 0.178595f, 0.225731f, 0.136551f, 0.661829f, 0.689704f, 0.420479f, 0.179358f, 0.495817f, 0.195059f, 0.661894f, 0.960159f, 0.374729f, 0.172821f, 0.433865f, 0.896433f, 0.274884f, 0.101668f, 0.0195123f, 0.945159f, 0.932629f, 0.678708f, 0.49671f, 0.195285f, 0.736573f, 0.69074f, 0.98924f, 0.0231014f, 0.866265f, 0.0593382f, 0.920476f, 0.55871f, 0.790958f, 0.374598f, 0.308956f, 0.203835f, 0.13896f, 0.163524f, 0.61125f, 0.800125f, 0.604689f, 0.38293f, 0.239883f, 0.366654f, 0.275717f, 0.879044f, 0.0345125f, 0.0253883f, 0.968474f, 0.56119f, 0.535113f, 0.482592f, 0.286101f, 0.254786f, 0.131018f, 0.273073f, 0.469337f, 0.835887f, 0.304907f, 0.206999f, 0.321034f, 0.24286f, 0.337337f, 0.482167f, 0.648614f, 0.356313f, 0.406781f, 0.554926f, 0.0955417f, 0.934744f, 0.741193f, 0.969687f, 0.0340277f, 0.883645f, 0.0500965f, 0.850189f, 0.147868f, 0.618493f, 0.054891f, 0.410866f, 0.303067f, 0.768236f, 0.407313f, 0.369819f, 0.36136f, 0.912514f, 0.383098f, 0.462211f, 0.330407f, 0.368682f, 0.450357f, 0.427571f, 0.727853f, 0.910354f, 0.470153f, 0.294346f, 0.841256f, 0.71934f, 0.774548f, 0.231094f, 0.485361f, 0.129264f, 0.872633f, 0.808079f, 0.54418f, 0.661798f, 0.354002f, 0.115732f, 0.338149f, 0.685062f, 0.88414f, 0.240032f, 0.0920179f, 0.384616f, 0.241623f, 0.90478f, 0.84621f, 0.693784f, 0.94463f, 0.656525f, 0.261012f, 0.212651f, 0.470449f, 0.525292f, 0.997417f, 0.635873f, 0.644776f, 0.915483f, 0.712238f, 0.989577f, 0.104516f, 0.37643f, 0.0156817f, 0.549739f, 0.353259f, 0.567545f, 0.320195f, 0.851348f, 0.289467f, 0.883448f, 0.385313f, 0.975386f, 0.766049f, 0.170221f, 0.704467f, 0.728959f, 0.612054f, 0.828066f, 0.840407f, 0.409382f, 0.760033f, 0.967005f, 0.194654f, 0.34006f, 0.213734f, 0.0905185f, 0.500102f, 0.971728f, 0.621986f, 0.684992f, 0.128856f, 0.837135f, 0.918145f, 0.190976f, 0.911247f, 0.0514864f, 0.80624f, 0.408798f, 0.220493f, 0.224521f, 0.877322f, 0.0385099f, 0.614169f, 0.88817f, 0.229666f, 0.721188f, 0.264943f, 0.47653f, 0.567368f, 0.902633f, 0.535977f, 0.253827f, 0.640493f, 0.308578f, 0.658295f, 0.111301f, 0.873223f, 0.555314f, 0.812779f, 0.00807135f, 0.66976f, 0.212383f, 0.659653f, 0.751593f, 0.615185f, 0.41265f, 0.447981f, 0.646186f, 0.939346f, 0.368446f, 0.206647f, 0.463926f, 0.309895f, 0.588963f, 0.331488f, 0.236124f, 0.832178f, 0.892812f, 0.460671f, 0.857674f, 0.941492f, 0.633461f, 0.0486092f, 0.749437f, 0.570053f, 0.880335f, 0.562532f, 0.70153f, 0.655857f, 0.925519f, 0.877252f, 0.659761f, 0.711964f, 0.565728f, 0.348877f, 0.726564f, 0.483625f, 0.244734f, 0.159083f, 0.69571f, 0.261487f, 0.896328f, 0.816056f, 0.285894f, 0.327687f, 0.716706f, 0.124344f, 0.0265256f, 0.203348f, 0.398197f, 0.47497f, 0.500634f, 0.964644f, 0.376745f, 0.840805f, 0.849704f, 0.953422f, 0.71555f, 0.72831f, 0.337122f, 0.945125f, 0.388672f, 0.455131f, 0.118639f, 0.0304581f, 0.591968f, 0.812254f, 0.782987f, 0.433481f, 0.846389f, 0.864012f, 0.171962f, 0.162654f, 0.266689f, 0.391112f, 0.978379f, 0.0346552f, 0.586952f, 0.031833f, 0.289047f, 0.415365f, 0.596916f, 0.530372f, 0.87871f, 0.959697f, 0.972931f, 0.363648f, 0.96167f, 0.487289f, 0.112012f, 0.539674f, 0.236667f, 0.777703f, 0.00697131f, 0.0309734f, 0.230873f, 0.947152f, 0.476038f, 0.183969f, 0.228085f, 0.849571f, 0.275421f, 0.286444f, 0.735786f, 0.0521317f, 0.299832f, 0.905572f, 0.895332f, 0.366051f, 0.411741f, 0.537879f, 0.419337f, 0.079378f, 0.805156f, 0.793631f, 0.0965928f, 0.598531f, 0.598318f, 0.773153f, 0.436538f, 0.994977f, 0.208626f, 0.294514f, 0.520345f, 0.647471f, 0.699797f, 0.013547f, 0.54276f, 0.482843f, 0.861626f, 0.406481f, 0.8596f, 0.860219f, 0.489928f, 0.647189f, 0.663616f, 0.220261f, 0.961611f, 0.923143f, 0.501189f, 0.317585f, 0.36669f, 0.0416075f, 0.654256f, 0.596517f, 0.802064f, 0.45533f, 0.000281196f, 0.991567f, 0.588185f, 0.0750981f, 0.444266f, 0.631594f, 0.834741f, 0.532738f, 0.204862f, 0.00149195f, 0.582887f, 0.843941f, 0.706665f, 0.439569f, 0.0554153f, 0.618165f, 0.0763626f, 0.576006f, 0.781224f, 0.16191f, 0.192681f, 0.0672024f, 0.149948f, 0.798083f, 0.134072f, 0.37307f, 0.726517f, 0.411759f, 0.0727131f, 0.979837f, 0.260264f, 0.838751f, 0.77407f, 0.377062f, 0.584006f, 0.283138f, 0.481253f, 0.158843f, 0.215801f, 0.149508f, 0.759539f, 0.25145f, 0.802058f, 0.366407f, 0.553301f, 0.372751f, 0.540117f, 0.888902f, 0.332264f, 0.644533f, 0.974196f, 0.828204f, 0.156058f, 0.680516f, 0.113255f, 0.609647f, 0.258563f, 0.858746f, 0.201673f, 0.325294f, 0.996466f, 0.581742f, 0.270683f, 0.00505102f, 0.405913f, 0.373273f, 0.368075f, 0.338605f, 0.382544f, 0.185442f, 0.0716168f, 0.642014f, 0.735161f, 0.231736f, 0.280926f, 0.806458f, 0.288724f, 0.927298f, 0.866443f, 0.74659f, 0.582568f, 0.189337f, 0.139825f, 0.558644f, 0.938737f, 0.424728f, 0.419706f, 0.432514f, 0.606433f, 0.464234f, 0.070579f, 0.01948f, 0.0443568f, 0.648825f, 0.537498f, 0.536141f, 0.282356f, 0.81914f, 0.77952f, 0.716556f, 0.785401f, 0.422103f, 0.122599f, 0.758018f, 0.884172f, 0.876852f, 0.219623f, 0.179689f, 0.0147427f, 0.975805f, 0.295704f, 0.764913f, 0.195597f, 0.222327f, 0.726522f, 0.44143f, 0.756984f, 0.147425f, 0.44931f, 0.678357f, 0.309006f, 0.912911f, 0.956464f, 0.809775f, 0.100437f, 0.231838f, 0.995658f, 0.831089f, 0.567412f, 0.140523f, 0.0208844f, 0.47221f, 0.434762f, 0.369761f, 0.122273f, 0.93022f, 0.427289f, 0.00138968f, 0.919055f, 0.394731f, 0.170408f, 0.5272f, 0.580728f, 0.172421f, 0.738614f, 0.858706f, 0.515514f, 0.936177f, 0.110865f, 0.329799f, 0.144704f, 0.394163f, 0.437431f, 0.0769508f, 0.726508f, 0.275889f, 0.935542f, 0.509661f, 0.99689f, 0.904397f, 0.0337019f, 0.775803f, 0.380429f, 0.569091f, 0.190502f, 0.245785f, 0.880573f, 0.600758f, 0.47721f, 0.391609f, 0.412372f, 0.897756f, 0.919213f, 0.370103f, 0.141054f, 1.20191e-05f, 0.365291f, 0.212163f, 0.229545f, 0.586162f, 0.595195f, 0.134095f, 0.623336f, 0.227264f, 0.234759f, 0.702092f, 0.45902f, 0.891786f, 0.525516f, 0.0639256f, 0.796936f, 0.706818f, 0.850832f, 0.953001f, 0.556f, 0.486836f, 0.590989f, 0.949839f, 0.587092f, 0.180256f, 0.0184283f, 0.486817f, 0.311688f, 0.249696f, 0.963459f, 0.370298f, 0.8425f, 0.403054f, 0.752779f, 0.932325f, 0.648017f, 0.731718f, 0.0381195f, 0.170692f, 0.391021f, 0.611984f, 0.144065f, 0.244927f, 0.0581516f, 0.128183f, 0.511728f, 0.653593f, 0.866311f, 0.796827f, 0.521031f, 0.931203f, 0.721434f, 0.872993f, 0.409144f, 0.515814f, 0.513196f, 0.107652f, 0.270955f, 0.937846f, 0.433211f, 0.354637f, 0.0366308f, 0.227131f, 0.403311f, 0.920548f, 0.808059f, 0.438508f, 0.0492272f, 0.606517f, 0.410118f, 0.736848f, 0.644825f, 0.516166f, 0.0807724f, 0.990559f, 0.954847f, 0.266734f, 0.591672f, 0.329617f, 0.887104f, 0.623414f, 0.812345f, 0.431342f, 0.688292f, 0.426681f, 0.733457f, 0.674946f, 0.409627f, 0.779863f, 0.0219157f, 0.531316f, 0.888139f, 0.334436f, 0.667037f, 0.458643f, 0.295736f, 0.918199f, 0.815375f, 0.869937f, 0.00293661f, 0.0102475f, 0.937571f, 0.328071f, 0.36619f, 0.197613f, 0.338288f, 0.480335f, 0.642143f, 0.0975859f, 0.431129f, 0.410333f, 0.466688f, 0.367867f, 0.328595f, 0.452947f, 0.281265f, 0.112837f, 0.175668f, 0.0962016f, 0.733594f, 0.176017f, 0.931858f, 0.61507f, 0.738507f, 0.994837f, 0.0268085f, 0.528805f, 0.33309f, 0.380145f, 0.331328f, 0.0147547f, 0.823919f, 0.339264f, 0.797164f, 0.347199f, 0.307953f, 0.195341f, 0.637957f, 0.37147f, 0.116191f, 0.740541f, 0.231847f, 0.740459f, 0.682739f, 0.713985f, 0.10958f, 0.756749f, 0.516334f, 0.919339f, 0.152182f, 0.29618f, 0.192737f, 0.212312f, 0.19894f, 0.500458f, 0.693438f, 0.175143f, 0.212807f, 0.558498f, 0.844056f, 0.598588f, 0.589126f, 0.233124f, 0.46378f, 0.170068f, 0.0432387f, 0.0578934f, 0.671602f, 0.648146f, 0.72269f, 0.411652f, 0.562052f, 0.266995f, 0.730292f, 0.833077f, 0.364173f, 0.384425f, 0.754691f, 0.520318f, 0.384952f, 0.561649f, 0.716546f, 0.563515f, 0.391405f, 0.473887f, 0.807366f, 0.455498f, 0.797823f, 0.99329f, 0.0566501f, 0.474465f, 0.263827f, 0.527949f, 0.826321f, 0.546833f, 0.761573f, 0.161726f, 0.477097f, 0.387216f, 0.00908078f, 0.342699f, 0.590716f, 0.612891f, 0.381776f, 0.286736f, 0.138769f, 0.426118f, 0.630125f, 0.114435f, 0.022749f, 0.167659f, 0.115384f, 0.722943f, 0.219961f, 0.915897f, 0.876669f, 0.175827f, 0.0939754f, 0.675282f, 0.163174f, 0.91795f, 0.282888f, 0.492402f, 0.946611f, 0.554716f, 0.942357f, 0.208018f, 0.263696f, 0.791903f, 0.937721f, 0.09841f, 0.675157f, 0.996191f, 0.0226336f, 0.67563f, 0.88438f, 0.346829f, 0.514374f, 0.418684f, 0.565869f, 0.78322f, 0.790592f, 0.73859f, 0.146951f, 0.399049f, 0.0563276f, 0.743575f, 0.935618f, 0.706072f, 0.285999f, 0.645951f, 0.553035f, 0.19193f, 0.702908f, 0.432067f, 0.897954f, 0.984509f, 0.420495f, 0.93247f, 0.834486f, 0.168918f, 0.744768f, 0.811155f, 0.501421f, 0.633726f, 0.323166f, 0.740346f, 0.140135f, 0.655225f, 0.0429154f, 0.186313f, 0.15005f, 0.0254319f, 0.296293f, 0.440591f, 0.310251f, 0.796307f, 0.171079f, 0.447977f, 0.891993f, 0.490897f, 0.258092f, 0.319501f, 0.332444f, 0.606872f, 0.979289f, 0.707228f, 0.171903f, 0.521651f, 0.0343072f, 0.499281f, 0.092603f, 0.996022f, 0.204854f, 0.381848f, 0.546358f, 0.488753f, 0.917605f, 0.0666593f, 0.416414f, 0.969993f, 0.567659f, 0.661384f, 0.898857f, 0.0449544f, 0.135001f, 0.685978f, 0.720896f, 0.345444f, 0.919905f, 0.970294f, 0.448231f, 0.513812f, 0.346224f, 0.368123f, 0.685517f, 0.395256f, 0.682131f, 0.304535f, 0.129473f, 0.792542f, 0.79066f, 0.477583f, 0.129269f, 0.133367f, 0.322014f, 0.863826f, 0.527786f, 0.617268f, 0.267729f, 0.451918f, 0.547666f, 0.886851f, 0.219427f, 0.24168f, 0.276449f, 0.359385f, 0.224571f, 0.211978f, 0.826226f, 0.686937f, 0.483489f, 0.118527f, 0.076641f, 0.052633f, 0.808651f, 0.0522376f, 0.824982f, 0.337232f, 0.188409f, 0.453277f, 0.916369f, 0.923392f, 0.252049f, 0.170647f, 0.445271f, 0.196551f, 0.232924f, 0.787748f, 0.109796f, 0.615006f, 0.982263f, 0.0633428f, 0.681307f, 0.151348f, 0.374495f, 0.884825f, 0.153523f, 0.470031f, 0.439075f, 0.451554f, 0.898641f, 0.19146f, 0.414453f, 0.183566f, 0.0184529f, 0.277495f, 0.222426f, 0.804856f, 0.412671f, 0.603429f, 0.725025f, 0.300665f, 0.0885731f, 0.55064f, 0.97189f, 0.469399f, 0.61324f, 0.890766f, 0.142142f, 0.491928f, 0.0740167f, 0.624685f, 0.651399f, 0.0930465f, 0.14016f, 0.399946f, 0.368041f, 0.378598f, 0.626114f, 0.277339f, 0.65447f, 0.945918f, 0.480228f, 0.976482f, 0.519389f, 0.708988f, 0.490985f, 0.0277287f, 0.546813f, 0.30012f, 0.822819f, 0.288361f, 0.580487f, 0.988715f, 0.996758f, 0.120198f, 0.588552f, 0.372554f, 0.669815f, 0.540238f, 0.31336f, 0.991082f, 0.68981f, 0.742698f, 0.232958f, 0.254088f, 0.808317f, 0.0617008f, 0.68953f, 0.695233f, 0.686344f, 0.869441f, 0.978004f, 0.00859007f, 0.772477f, 0.812442f, 0.214557f, 0.802496f, 0.163306f, 0.177761f, 0.464414f, 0.47685f, 0.434799f, 0.607867f, 0.570816f, 0.960285f, 0.461333f, 0.303739f, 0.176515f, 0.360075f, 0.81964f, 0.827713f, 0.0612792f, 0.0166165f, 0.826839f, 0.16666f, 0.178995f, 0.420688f, 0.390429f, 0.715626f, 0.487459f, 0.403873f, 0.624145f, 0.421205f, 0.670543f, 0.481124f, 0.54779f, 0.52255f, 0.0584929f, 0.657646f, 0.206261f, 0.197449f, 0.29716f, 0.767754f, 0.866218f, 0.763391f, 0.52885f, 0.891186f, 0.628071f, 0.152637f, 0.902212f, 0.0273998f, 0.151154f, 0.65819f, 0.230012f, 0.432827f, 0.406489f, 0.525832f, 0.796426f, 0.0745825f, 0.867294f, 0.531743f, 0.920105f, 0.270408f, 0.278391f, 0.143686f, 0.0993648f, 0.573185f, 0.037966f, 0.527293f, 0.47524f, 0.579917f, 0.590847f, 0.774383f, 0.231358f, 0.617451f, 0.0489643f, 0.835647f, 0.498334f, 0.404771f, 0.70137f, 0.529698f, 0.85204f, 0.636195f, 0.369463f, 0.414361f, 0.165747f, 0.532382f, 0.112811f, 0.246537f, 0.354534f, 0.382025f, 0.222022f, 0.715132f, 0.456273f, 0.896151f, 0.784903f, 0.0295712f, 0.301331f, 0.995529f, 0.65379f, 0.162802f, 0.998677f, 0.762339f, 0.980458f, 0.819869f, 0.846046f, 0.851623f, 0.171729f, 0.152807f, 0.424439f, 0.324728f, 0.483842f, 0.352168f, 0.302195f, 0.504997f, 0.0173178f, 0.714817f, 0.174607f, 0.280562f, 0.0418441f, 0.864934f, 0.339356f, 0.00350309f, 0.252601f, 0.221072f, 0.388686f, 0.851341f, 0.0158434f, 0.622924f, 0.741444f, 0.588701f, 0.841873f, 0.309563f, 0.650706f, 0.110386f, 0.371108f, 0.366786f, 0.204512f, 0.271584f, 0.0732657f, 0.0488429f, 0.267072f, 0.58363f, 0.795581f, 0.478233f, 0.801881f, 0.89168f, 0.156593f, 0.54992f, 0.817708f, 0.237794f, 0.0235752f, 0.293729f, 0.466128f, 0.191812f, 0.025816f, 0.416069f, 0.74633f, 0.135171f, 0.193046f, 0.263051f, 0.0185888f, 0.0255881f, 0.817849f, 0.717857f, 0.883062f, 0.68031f, 0.232177f, 0.885226f, 0.719076f, 0.943462f, 0.774649f, 0.0353471f, 0.170481f, 0.114228f, 0.881744f, 0.0325668f, 0.0889019f, 0.328576f, 0.0250801f, 0.61062f, 0.791818f, 0.042517f, 0.538554f, 0.755303f, 0.397703f, 0.169893f, 0.0481056f, 0.795939f, 0.0761528f, 0.341664f, 0.793874f, 0.238545f, 0.0823149f, 0.916699f, 0.94509f, 0.919353f, 0.640574f, 0.327297f, 0.994329f, 0.565157f, 0.965312f, 0.57068f, 0.325908f, 0.822986f, 0.637845f, 0.106812f, 0.288664f, 0.000280415f, 0.462714f, 0.94019f, 0.688605f, 0.2141f, 0.220406f, 0.932058f, 0.900517f, 0.961201f, 0.353682f, 0.0134808f, 0.947345f, 0.351386f, 0.895641f, 0.650239f, 0.302241f, 0.499506f, 0.030298f, 0.757766f, 0.125468f, 0.315489f, 0.0304711f, 0.309228f, 0.56651f, 0.0440132f, 0.245361f, 0.454452f, 0.64075f, 0.0924665f, 0.126414f, 0.196168f, 0.997471f, 0.760789f, 0.424195f, 0.594977f, 0.207334f, 0.708264f, 0.0392481f, 0.133198f, 0.736111f, 0.844827f, 0.523823f, 0.593987f, 0.416252f, 0.0167493f, 0.890991f, 0.601037f, 0.281004f, 0.24087f, 0.66464f, 0.864845f, 0.945065f, 0.234776f, 0.284041f, 0.399313f, 0.476435f, 0.339889f, 0.00814128f, 0.0337326f, 0.198256f, 0.826663f, 0.312544f, 0.429936f, 0.567452f, 0.823396f, 0.448132f, 0.514092f, 0.467839f, 0.882552f, 0.168643f, 0.254434f, 0.79187f, 0.927874f, 0.900874f, 0.167309f, 0.427338f, 0.932403f, 0.766785f, 0.231561f, 0.133529f, 0.00477333f, 0.985558f, 0.227331f, 0.866009f, 0.969119f, 0.0362453f, 0.842505f, 0.906709f, 0.967231f, 0.494966f, 0.0577779f, 0.996638f, 0.163748f, 0.817862f, 0.824771f, 0.175573f, 0.513421f, 0.39277f, 0.906579f, 0.54055f, 0.851661f, 0.333983f, 0.879314f, 0.550784f, 0.300129f, 0.589179f, 0.504992f, 0.418578f, 0.964773f, 0.0316574f, 0.286033f, 0.23432f, 0.322326f, 0.0590002f, 0.666221f, 0.233421f, 0.216785f, 0.263413f, 0.883685f, 0.673656f, 0.134459f, 0.0308802f, 0.686496f, 0.776702f, 0.758612f, 0.645055f, 0.723295f, 0.871401f, 0.262998f, 0.190512f, 0.341973f, 0.945545f, 0.114799f, 0.804076f, 0.647282f, 0.48961f, 0.62273f, 0.846765f, 0.891106f, 0.48904f, 0.581319f, 0.00704831f, 0.674611f, 0.395743f, 0.767623f, 0.313934f, 0.431812f, 0.307768f, 0.278318f, 0.952107f, 0.538664f, 0.675371f, 0.672763f, 0.835563f, 0.237913f, 0.333882f, 0.527918f, 0.271057f, 0.639353f, 0.111164f, 0.85953f, 0.838041f, 0.774141f, 0.962816f, 0.272035f, 0.81665f, 0.593591f, 0.310545f, 0.870241f, 0.279337f, 0.330605f, 0.877284f, 0.520274f, 0.296165f, 0.711201f, 0.641985f, 0.0489538f, 0.0712451f, 0.887277f, 0.154994f, 0.221739f, 0.876242f, 0.0356585f, 0.428483f, 0.837244f, 0.173529f, 0.66835f, 0.755205f, 0.398871f, 0.345334f, 0.12228f, 0.19509f, 0.304864f, 0.255771f, 0.734434f, 0.7724f, 0.730117f, 0.796747f, 0.417643f, 0.569641f, 0.502623f, 0.328753f, 0.858583f, 0.990092f, 0.275007f, 0.923961f, 0.438773f, 0.146837f, 0.510396f, 0.539952f, 0.0501829f, 0.64086f, 0.875995f, 0.935705f, 0.412992f, 0.562118f, 0.442682f, 0.973155f, 0.473943f, 0.676603f, 0.863844f, 0.87501f, 0.545267f, 0.338438f, 0.967789f, 0.0523696f, 0.300151f, 0.58506f, 0.490291f, 0.647978f, 0.664205f, 0.549048f, 0.736857f, 0.0173515f, 0.698325f, 0.160941f, 0.359318f, 0.160925f, 0.569788f, 0.133554f, 0.0942726f, 0.207233f, 0.726874f, 0.174369f, 0.24083f, 0.656282f, 0.503842f, 0.0740461f, 0.496514f, 0.261925f, 0.465108f, 0.169835f, 0.564814f, 0.877148f, 0.0175314f, 0.0211451f, 0.629332f, 0.248965f, 0.668303f, 0.197435f, 0.391905f, 0.352134f, 0.331264f, 0.90149f, 0.257259f, 0.0813841f, 0.0399163f, 0.792019f, 0.387755f, 0.201367f, 0.0151784f, 0.513423f, 0.585728f, 0.0105189f, 0.223943f, 0.248908f, 0.659531f, 0.861605f, 0.411425f, 0.0371997f, 0.33768f, 0.810674f, 0.0911325f, 0.805898f, 0.310135f, 0.538922f, 0.959327f, 0.0575719f, 0.10032f, 0.394009f, 0.238023f, 0.917953f, 0.859144f, 0.816647f, 0.208772f, 0.145089f, 0.529068f, 0.745421f, 0.48935f, 0.761454f, 0.614997f, 0.154428f, 0.536519f, 0.151021f, 0.0787678f, 0.86659f, 0.881324f, 0.55984f, 0.659421f, 0.647602f, 0.812297f, 0.159516f, 0.0479314f, 0.234965f, 0.240048f, 0.951764f, 0.218511f, 0.11362f, 0.657955f, 0.280555f, 0.905338f, 0.822578f, 0.180551f, 0.319624f, 0.250925f, 0.191614f, 0.496626f, 0.0332085f, 0.641516f, 0.566172f, 0.179212f, 0.537525f, 0.113642f, 0.730111f, 0.329651f, 0.150623f, 0.378651f, 0.0484126f, 0.676304f, 0.121143f, 0.712375f, 0.302806f, 0.485029f, 0.471278f, 0.462295f, 0.1531f, 0.322728f, 0.713649f, 0.678131f, 0.334441f, 0.141824f, 0.176085f, 0.36499f, 0.0708497f, 0.45882f, 0.20669f, 0.0474943f, 0.43842f, 0.516284f, 0.594318f, 0.875291f, 0.153793f, 0.737812f, 0.170561f, 0.923815f, 0.907882f, 0.512332f, 0.722701f, 0.370129f, 0.603691f, 0.196788f, 0.892866f, 0.362655f, 0.55953f, 0.824129f, 0.250474f, 0.556085f, 0.431808f, 0.128446f, 0.26744f, 0.244952f, 0.189547f, 0.576773f, 0.917766f, 0.84623f, 0.594782f, 0.680705f, 0.988671f, 0.0481905f, 0.137674f, 0.714443f, 0.532153f, 0.310852f, 0.843688f, 0.934825f, 0.0629238f, 0.993139f, 0.142027f, 0.0320124f, 0.0518313f, 0.114066f, 0.0712663f, 0.646594f, 0.844838f, 0.171494f, 0.662638f, 0.815908f, 0.809541f, 0.67866f, 0.0357709f, 0.266772f, 0.206819f, 0.502557f, 0.339673f, 0.217025f, 0.53615f, 0.956099f, 0.66959f, 0.207329f, 0.914755f, 0.898438f, 0.655533f, 0.444381f, 0.304079f, 0.287243f, 0.287973f, 0.774938f, 0.0563981f, 0.127154f, 0.508492f, 0.393986f, 0.749432f, 0.036603f, 0.660682f, 0.809726f, 0.451685f, 0.279454f, 0.0326374f, 0.300253f, 0.0110367f, 0.609701f, 0.471395f, 0.332119f, 0.437578f, 0.43588f, 0.0996411f, 0.126195f, 0.885371f, 0.594247f, 0.456797f, 0.113052f, 0.505541f, 0.232079f, 0.929253f, 0.333387f, 0.209212f, 0.746411f, 0.482957f, 0.532837f, 0.919979f, 0.437855f, 0.175411f, 0.463638f, 0.880244f, 0.744835f, 0.546536f, 0.612644f, 0.484625f, 0.288318f, 0.135661f, 0.214567f, 0.83766f, 0.62984f, 0.700477f, 0.398816f, 0.150959f, 0.527268f, 0.666571f, 0.394123f, 0.00844103f, 0.52856f, 0.935265f, 0.764811f, 0.20486f, 0.128771f, 0.901865f, 0.297184f, 0.418478f, 0.0462558f, 0.387355f, 0.528544f, 0.450452f, 0.227042f, 0.0849481f, 0.364143f, 0.108157f, 0.311307f, 0.971291f, 0.152913f, 0.233171f, 0.501068f, 0.388727f, 0.54036f, 0.528268f, 0.967951f, 0.32463f, 0.112689f, 0.0762757f, 0.569825f, 0.851812f, 0.883149f, 0.695108f, 0.96731f, 0.685907f, 0.841211f, 0.560393f, 0.448472f, 0.48896f, 0.323559f, 0.618597f, 0.513798f, 0.694817f, 0.287827f, 0.586571f, 0.380688f, 0.306745f, 0.0100176f, 0.263236f, 0.836942f, 0.448779f, 0.655984f, 0.243875f, 0.485407f, 0.56637f, 0.693995f, 0.0750122f, 0.679938f, 0.38921f, 0.105836f, 0.474113f, 0.908511f, 0.114192f, 0.529503f, 0.739903f, 0.376307f, 0.766913f, 0.891882f, 0.952218f, 0.596948f, 0.124917f, 0.119852f, 0.681285f, 0.11056f, 0.0421997f, 0.0740387f, 0.846792f, 0.171963f, 0.226138f, 0.447823f, 0.423381f, 0.119162f, 0.0963041f, 0.897442f, 0.571307f, 0.84302f, 0.502465f, 0.110057f, 0.923009f, 0.80842f, 0.102467f, 0.807205f, 0.906988f, 0.00687938f, 0.0845105f, 0.193596f, 0.772054f, 0.895773f, 0.182554f, 0.0749097f, 0.36914f, 0.947626f, 0.935897f, 0.709873f, 0.460564f, 0.320383f, 0.285843f, 0.411644f, 0.587284f, 0.571001f, 0.201918f, 0.696921f, 0.663395f, 0.117765f, 0.433447f, 0.119632f, 0.45053f, 0.11587f, 0.648144f, 0.653318f, 0.0132917f, 0.524782f, 0.283608f, 0.122124f, 0.5259f, 0.391915f, 0.287969f, 0.266864f, 0.493395f, 0.986789f, 0.397913f, 0.0892273f, 0.122315f, 0.197488f, 0.239375f, 0.142441f, 0.713533f, 0.339869f, 0.809532f, 0.715427f, 0.698948f, 0.623316f, 0.0641153f, 0.769319f, 0.0695443f, 0.0855769f, 0.658299f, 0.0899478f, 0.0601225f, 0.722062f, 0.421102f, 0.333026f, 0.870482f, 0.931882f, 0.229236f, 0.364981f, 0.887809f, 0.978826f, 0.014522f, 0.340128f, 0.981108f, 0.842573f, 0.201703f, 0.745958f, 0.227492f, 0.761999f, 0.295944f, 0.729199f, 0.187346f, 0.943026f, 0.0105494f, 0.39783f, 0.583415f, 0.243335f, 0.541508f, 0.578077f, 0.295405f, 0.0814667f, 0.529202f, 0.988785f, 0.394976f, 0.68877f, 0.229253f, 0.0849348f, 0.0339687f, 0.370966f, 0.707144f, 0.980882f, 0.365654f, 0.697787f, 0.591989f, 0.0293919f, 0.638661f, 0.0675529f, 0.384984f, 0.639085f, 0.70715f, 0.463815f, 0.751835f, 0.237533f, 0.935665f, 0.698684f, 0.530724f, 0.560631f, 0.899975f, 0.852685f, 0.787844f, 0.779743f, 0.744731f, 0.138768f, 0.526725f, 0.493108f, 0.926152f, 0.368556f, 0.929163f, 0.641783f, 0.511469f, 0.393187f, 0.0824426f, 0.431576f, 0.622319f, 0.548548f, 0.035575f, 0.825666f, 0.269376f, 0.0913602f, 0.372635f, 0.38487f, 0.0906382f, 0.315676f, 0.0645145f, 0.447505f, 0.905866f, 0.296598f, 0.855463f, 0.609323f, 0.59174f, 0.795297f, 0.624946f, 0.329668f, 0.332246f, 0.732409f, 0.843695f, 0.236205f, 0.692938f, 0.965589f, 0.56019f, 0.538383f, 0.761268f, 0.48515f, 0.421152f, 0.547355f, 0.609943f, 0.823565f, 0.732828f, 0.64059f, 0.857855f, 0.513389f, 0.254f, 0.755954f, 0.416683f, 0.317996f, 0.293253f, 0.664124f, 0.941729f, 0.150869f, 0.512851f, 0.898977f, 0.624365f, 0.817087f, 0.336162f, 0.477889f, 0.966191f, 0.313993f, 0.133734f, 0.661253f, 0.849473f, 0.715564f, 0.510133f, 0.75148f, 0.604027f, 0.632663f, 0.135236f, 0.599463f, 0.0327076f, 0.857848f, 0.145505f, 0.992245f, 0.20774f, 0.0786172f, 0.312129f, 0.0971802f, 0.904136f, 0.359232f, 0.832288f, 0.362956f, 0.630257f, 0.191595f, 0.9119f, 0.616889f, 0.819632f, 0.437823f, 0.878439f, 0.311629f, 0.405242f, 0.583834f, 0.607413f, 0.695011f, 0.253874f, 0.288259f, 0.563804f, 0.648179f, 0.359066f, 0.50901f, 0.687083f, 0.205109f, 0.193449f, 0.759391f, 0.328667f, 0.656092f, 0.206288f, 0.0623738f, 0.450473f, 0.47376f, 0.439961f, 0.381667f, 0.096583f, 0.84527f, 0.686133f, 0.163243f, 0.978766f, 0.59959f, 0.647816f, 0.259232f, 0.896248f, 0.0680054f, 0.362097f, 0.902687f, 0.097296f, 0.488055f, 0.58164f, 0.403066f, 0.579204f, 0.855055f, 0.750976f, 0.376216f, 0.633781f, 0.256236f, 0.388568f, 0.0867576f, 0.0117217f, 0.194627f, 0.200052f, 0.694049f, 0.824496f, 0.360713f, 0.723254f, 0.595559f, 0.923657f, 0.59036f, 0.6563f, 0.177194f, 0.792463f, 0.171986f, 0.479814f, 0.0912182f, 0.62897f, 0.913829f, 0.798994f, 0.716449f, 0.548011f, 0.684962f, 0.797857f, 0.762225f, 0.237444f, 0.591305f, 0.601787f, 0.848342f, 0.496632f, 0.289776f, 0.899311f, 0.429076f, 0.396456f, 0.770349f, 0.370505f, 0.097602f, 0.182601f, 0.911995f, 0.915318f, 0.590273f, 0.964508f, 0.478509f, 0.767288f, 0.466258f, 0.0502008f, 0.0988117f, 0.626614f, 0.220539f, 0.633559f, 0.0282357f, 0.555049f, 0.594994f, 0.165034f, 0.595876f, 0.610316f, 0.822023f, 0.424342f, 0.171725f, 0.356189f, 0.420226f, 0.3426f, 0.9266f, 0.174428f, 0.0605539f, 0.344594f, 0.520125f, 0.935027f, 0.207641f, 0.420421f, 0.0941734f, 0.445178f, 0.778392f, 0.729336f, 0.0113313f, 0.747309f, 0.0232427f, 0.400348f, 0.831972f, 0.31958f, 0.821585f, 0.804603f, 0.160086f, 0.0857735f, 0.811761f, 0.0733643f, 0.705643f, 0.24753f, 0.754742f, 0.694147f, 0.950033f, 0.696942f, 0.90747f, 0.797599f, 0.591987f, 0.0650946f, 0.847517f, 0.276937f, 0.823598f, 0.50711f, 0.42896f, 0.0995254f, 0.945282f, 0.715105f, 0.629399f, 0.263378f, 0.0254412f, 0.647343f, 0.849229f, 0.474649f, 0.369794f, 0.559946f, 0.577379f, 0.817203f, 0.589239f, 0.595788f, 0.387239f, 0.0224561f, 0.43111f, 0.922646f, 0.148943f, 0.104584f, 0.902042f, 0.502038f, 0.987925f, 0.97373f, 0.951235f, 0.449732f, 0.581847f, 0.747052f, 0.124775f, 0.488138f, 0.355401f, 0.773033f, 0.494585f, 0.496174f, 0.69698f, 0.379714f, 0.694903f, 0.077038f, 0.685187f, 0.515888f, 0.739523f, 0.85641f, 0.526524f, 0.796094f, 0.204457f, 0.105733f, 0.745853f, 0.844415f, 0.588465f, 0.478419f, 0.1446f, 0.202476f, 0.667741f, 0.494301f, 0.0335055f, 0.120191f, 0.0084502f, 0.989238f, 0.306892f, 0.509825f, 0.564446f, 0.490707f, 0.224671f, 0.930068f, 0.121323f, 0.377139f, 0.999044f, 0.646334f, 0.171395f, 0.418921f, 0.846088f, 0.462129f, 0.965202f, 0.407284f, 0.14838f, 0.239469f, 0.799115f, 0.787609f, 0.606225f, 0.0471999f, 0.573742f, 0.157793f, 0.318201f, 0.213735f, 0.0707531f, 0.554441f, 0.947575f, 0.0495039f, 0.446243f, 0.0464633f, 0.612654f, 0.415336f, 0.0389473f, 0.741115f, 0.700916f, 0.592345f, 0.427995f, 0.584374f, 0.473134f, 0.722755f, 0.734312f, 0.957571f, 0.123449f, 0.826485f, 0.0270396f, 0.745278f, 0.482321f, 0.214278f, 0.25277f, 0.375662f, 0.41588f, 0.961684f, 0.819722f, 0.135851f, 0.766622f, 0.0878297f, 0.928593f, 0.122511f, 0.580273f, 0.434781f, 0.474652f, 0.731661f, 0.901691f, 0.147487f, 0.658038f, 0.48893f, 0.12693f, 0.533371f, 0.0841936f, 0.363146f, 0.828549f, 0.539438f, 0.786856f, 0.351054f, 0.731142f, 0.233761f, 0.931138f, 0.806257f, 0.807374f, 0.172688f, 0.828602f, 0.953915f, 0.473652f, 0.382548f, 0.357981f, 0.5963f, 0.265732f, 0.914037f, 0.188111f, 0.74128f, 0.743633f, 0.247761f, 0.158465f, 0.52252f, 0.800593f, 0.512861f, 0.333242f, 0.986477f, 0.26932f, 0.561066f, 0.904287f, 0.320868f, 0.838198f, 0.88361f, 0.133302f, 0.930164f, 0.750391f, 0.187244f, 0.491315f, 0.0982396f, 0.284781f, 0.388216f, 0.354819f, 0.940943f, 0.431945f, 0.865286f, 0.0681679f, 0.154232f, 0.622275f, 0.768949f, 0.765559f, 0.624581f, 0.608164f, 0.415398f, 0.0569954f, 0.617883f, 0.22415f, 0.889372f, 0.535689f, 0.576916f, 0.296475f, 0.829001f, 0.824504f, 0.0861363f, 0.390256f, 0.26195f, 0.386549f, 0.464313f, 0.584617f, 0.427067f, 0.830522f, 0.141594f, 0.268901f, 0.321917f, 0.995861f, 0.234313f, 0.752381f, 0.199834f, 0.643007f, 0.242113f, 0.342142f, 0.645541f, 0.513711f, 0.947553f, 0.202209f, 0.69997f, 0.732298f, 0.546207f, 0.909885f, 0.441927f, 0.621059f, 0.133464f, 0.683791f, 0.602374f, 0.917825f, 0.744225f, 0.478784f, 0.19923f, 0.277641f, 0.871182f, 0.902672f, 0.931098f, 0.534009f, 0.193389f, 0.798878f, 0.992723f, 0.877838f, 0.895002f, 0.516418f, 0.99492f, 0.451821f, 0.118106f, 0.285755f, 0.93387f, 0.712791f, 0.713099f, 0.157295f, 0.447819f, 0.789059f, 0.972432f, 0.740688f, 0.28434f, 0.589186f, 0.751243f, 0.449302f, 0.776258f, 0.921298f, 0.741599f, 0.510316f, 0.642133f, 0.802657f, 0.184818f, 0.956007f, 0.707658f, 0.653938f, 0.0425206f, 0.869644f, 0.241867f, 0.59502f, 0.399322f, 0.650882f, 0.84735f, 0.107822f, 0.481473f, 0.994608f, 0.831817f, 0.624027f, 0.75346f, 0.203081f, 0.0454528f, 0.615748f, 0.420401f, 0.536439f, 0.246667f, 0.562155f, 0.0642064f, 0.762507f, 0.207881f, 0.918567f, 0.935136f, 0.95591f, 0.112227f, 0.643769f, 0.072078f, 0.467719f, 0.216183f, 0.0826399f, 0.887609f, 0.373829f, 0.898391f, 0.365567f, 0.0825346f, 0.647592f, 0.882828f, 0.85406f, 0.412205f, 0.0338052f, 0.205062f, 0.736613f, 0.638607f, 0.611988f, 0.490074f, 0.144148f, 0.391377f, 0.164745f, 0.664129f, 0.61886f, 0.404987f, 0.590734f, 0.750537f, 0.943542f, 0.877202f, 0.0189034f, 0.431634f, 0.553794f, 0.150283f, 0.921783f, 0.142319f, 0.711886f, 0.702466f, 0.446256f, 0.947935f, 0.897201f, 0.182397f, 0.784559f, 0.27897f, 0.976729f, 0.718449f, 0.733462f, 0.845627f, 0.370785f, 0.169054f, 0.367375f, 0.0667599f, 0.441103f, 0.522313f, 0.943191f, 0.228149f, 0.703903f, 0.141448f, 0.0483062f, 0.402232f, 0.210588f, 0.735638f, 0.529482f, 0.692995f, 0.305162f, 0.946559f, 0.655759f, 0.512732f, 0.958042f, 0.0325353f, 0.39025f, 0.582741f, 0.737131f, 0.383514f, 0.740761f, 0.0172872f, 0.0496383f, 0.379124f, 0.0443368f, 0.700332f, 0.504416f, 0.975272f, 0.257555f, 0.95874f, 0.630045f, 0.782987f, 0.339182f, 0.0107481f, 0.205458f, 0.755836f, 0.551076f, 0.0750751f, 0.823827f, 0.392427f, 0.462071f, 0.293287f, 0.183514f, 0.583074f, 0.492738f, 0.407717f, 0.559001f, 0.454406f, 0.0872644f, 0.198206f, 0.973656f, 0.910874f, 0.628127f, 0.147729f, 0.296648f, 0.410129f, 0.458397f, 0.304627f, 0.314145f, 0.0842917f, 0.854725f, 0.98295f, 0.995142f, 0.12097f, 0.0855334f, 0.58699f, 0.495223f, 0.981343f, 0.667315f, 0.607667f, 0.880606f, 0.203245f, 0.807278f, 0.15376f, 0.789492f, 0.217277f, 0.0948716f, 0.150338f, 0.198203f, 0.396679f, 0.524842f, 0.934821f, 0.391884f, 0.535226f, 0.139255f, 0.890324f, 0.819746f, 0.0691174f, 0.568563f, 0.961456f, 0.729993f, 0.59617f, 0.458534f, 0.890504f, 0.490753f, 0.502552f, 0.2698f, 0.353599f, 0.170654f, 0.978598f, 0.79202f, 0.847386f, 0.112152f, 0.256585f, 0.280995f, 0.347462f, 0.155091f, 0.457856f, 0.915769f, 0.427935f, 0.279657f, 0.199543f, 0.030673f, 0.490789f, 0.412269f, 0.980538f, 0.455362f, 0.236022f, 0.672848f, 0.0843078f, 0.473051f, 0.584604f, 0.333791f, 0.872939f, 0.884161f, 0.82561f, 0.671148f, 0.804559f, 0.0571492f, 0.506491f, 0.587321f, 0.320331f, 0.105971f, 0.0656528f, 0.192821f, 0.273989f, 0.818754f, 0.606188f, 0.69404f, 0.186976f, 0.287752f, 0.646347f, 0.498658f, 0.293975f, 0.509989f, 0.0678056f, 0.317477f, 0.14645f, 0.694471f, 0.75618f, 0.740541f, 0.108958f, 0.705042f, 0.972045f, 0.987658f, 0.00562353f, 0.73289f, 0.478175f, 0.444326f, 0.481034f, 0.486778f, 0.833366f, 0.186433f, 0.207425f, 0.66315f, 0.254926f, 0.344074f, 0.828795f, 0.0652598f, 0.204524f, 0.608561f, 0.0659682f, 0.365835f, 0.755454f, 0.18244f, 0.0311781f, 0.336347f, 0.441798f, 0.907119f, 0.919638f, 0.831951f, 0.55613f, 0.0567533f, 0.566532f, 0.950928f, 0.951063f, 0.637377f, 0.233777f, 0.719936f, 0.806261f, 0.974567f, 0.94225f, 0.597856f, 0.697234f, 0.691378f, 0.49689f, 0.907236f, 0.607242f, 0.18597f, 0.183143f, 0.0962611f, 0.184931f, 0.000833121f, 0.487038f, 0.714777f, 0.0601879f, 0.106848f, 0.0454389f, 0.275154f, 0.0362009f, 0.652776f, 0.647269f, 0.0451591f, 0.222329f, 0.873698f, 0.771548f, 0.49427f, 0.494441f, 0.448411f, 0.955785f, 0.709217f, 0.116396f, 0.391161f, 0.383969f, 0.267803f, 0.31987f, 0.242902f, 0.642496f, 0.60187f, 0.360532f, 0.938925f, 0.510473f, 0.260975f, 0.902704f, 0.748941f, 0.277152f, 0.630993f, 0.933111f, 0.491047f, 0.48199f, 0.482289f, 0.453252f, 0.3532f, 0.715598f, 0.0922259f, 0.724063f, 0.194187f, 0.0173517f, 0.278226f, 0.0569869f, 0.157893f, 0.722153f, 0.0673078f, 0.139394f, 0.00138647f, 0.314579f, 0.527069f, 0.400797f, 0.338557f, 0.0446162f, 0.262916f, 0.85003f, 0.280461f, 0.150433f, 0.805651f, 0.57948f, 0.0258817f, 0.0567081f, 0.733717f, 0.116632f, 0.938169f, 0.0276677f, 0.243835f, 0.00157272f, 0.693641f, 0.540975f, 0.564382f, 0.285459f, 0.346625f, 0.316888f, 0.757294f, 0.0934159f, 0.481623f, 0.543655f, 0.964689f, 0.635952f, 0.919444f, 0.79599f, 0.76748f, 0.163268f, 0.448353f, 0.0920454f, 0.32188f, 0.554036f, 0.844806f, 0.522827f, 0.458522f, 0.0213779f, 0.0584381f, 0.113687f, 0.223912f, 0.145314f, 0.0649469f, 0.439308f, 0.38745f, 0.629751f, 0.197155f, 0.278737f, 0.0481005f, 0.670399f, 0.686822f, 0.925355f, 0.350732f, 0.61908f, 0.688475f, 0.278723f, 0.538385f, 0.0759035f, 0.189597f, 0.247853f, 0.0854431f, 0.70223f, 0.0481766f, 0.112708f, 0.885024f, 0.145418f, 0.342815f, 0.570951f, 0.615716f, 0.838364f, 0.229125f, 0.914869f, 0.0807566f, 0.841244f, 0.801064f, 0.100729f, 0.825629f, 0.435581f, 0.333583f, 0.87399f, 0.873529f, 0.186217f, 0.296313f, 0.730403f, 0.248867f, 0.0047435f, 0.503056f, 0.379944f, 0.735921f, 0.806074f, 0.696736f, 0.3877f, 0.635475f, 0.821489f, 0.997038f, 0.773904f, 0.697325f, 0.0823173f, 0.989297f, 0.534374f, 0.395458f, 0.779097f, 0.251209f, 0.536462f, 0.378766f, 0.838378f, 0.819028f, 0.0134496f, 0.49593f, 0.907435f, 0.305601f, 0.673914f, 0.910395f, 0.37772f, 0.731496f, 0.534258f, 0.165475f, 0.942286f, 0.350023f, 0.864445f, 0.532633f, 0.635889f, 0.808484f, 0.781158f, 0.957145f, 0.584252f, 0.122449f, 0.203071f, 0.272199f, 0.846977f, 0.565184f, 0.915573f, 0.471642f, 0.0657705f, 0.107319f, 0.745156f, 0.182566f, 0.676648f, 0.0963369f, 0.0250064f, 0.900877f, 0.841255f, 0.649461f, 0.64128f, 0.924952f, 0.977799f, 0.511202f, 0.927327f, 0.722476f, 0.612947f, 0.0327017f, 0.688698f, 0.570857f, 0.0987894f, 0.725083f, 0.391378f, 0.538569f, 0.28648f, 0.861244f, 0.0274032f, 0.815053f, 0.824076f, 0.942452f, 0.527812f, 0.578409f, 0.129797f, 0.510809f, 0.0820612f, 0.931813f, 0.491563f, 0.791236f, 0.790234f, 0.901141f, 0.789327f, 0.907997f, 0.142342f, 0.528214f, 0.716877f, 0.958462f, 0.954974f, 0.242113f, 0.919851f, 0.251386f, 0.56156f, 0.682846f, 0.308639f, 0.115634f, 0.967474f, 0.429962f, 0.0486278f, 0.55142f, 0.351646f, 0.548327f, 0.530753f, 0.104318f, 0.0895818f, 0.307136f, 0.536774f, 0.106918f, 0.421321f, 0.666497f, 0.711117f, 0.289704f, 0.787347f, 0.948744f, 0.549595f, 0.936131f, 0.136233f, 0.610194f, 0.186622f, 0.27585f, 0.571027f, 0.586027f, 0.837927f, 0.193882f, 0.35946f, 0.175026f, 0.0824834f, 0.0126935f, 0.339797f, 0.818046f, 0.439991f, 0.269957f, 0.137731f, 0.33262f, 0.491249f, 0.767624f, 0.256845f, 0.398864f, 0.258536f, 0.271324f, 0.982432f, 0.439209f, 0.740897f, 0.353588f, 0.799446f, 0.810211f, 0.415814f, 0.794809f, 0.320497f, 0.252934f, 0.795301f, 0.588321f, 0.753028f, 0.165118f, 0.324748f, 0.510637f, 0.799677f, 0.243883f, 0.767565f, 0.0532222f, 0.247092f, 0.069637f, 0.928513f, 0.753128f, 0.305723f, 0.702824f, 0.382697f, 0.441858f, 0.72836f, 0.186217f, 0.858214f, 0.617516f, 0.589245f, 0.482866f, 0.120475f, 0.795432f, 0.564749f, 0.483426f, 0.980871f, 0.786813f, 0.69169f, 0.403745f, 0.745458f, 0.918907f, 0.403531f, 0.451615f, 0.0550625f, 0.783483f, 0.424662f, 0.428934f, 0.671318f, 0.568676f, 0.0994755f, 0.938827f, 0.542863f, 0.738337f, 0.873928f, 0.419431f, 0.337526f, 0.629237f, 0.679101f, 0.622262f, 0.320956f, 0.0626878f, 0.999204f, 0.951498f, 0.0958139f, 0.50477f, 0.0680271f, 0.676681f, 0.407226f, 0.447046f, 0.503213f, 0.538867f, 0.741814f, 0.0891491f, 0.531931f, 0.813284f, 0.659832f, 0.361232f, 0.935574f, 0.0579028f, 0.797737f, 0.316299f, 0.840737f, 0.198096f, 0.176278f, 0.523454f, 0.749724f, 0.865867f, 0.163428f, 0.611741f, 0.785425f, 0.776603f, 0.719072f, 0.164897f, 0.66426f, 0.297643f, 0.493834f, 0.161139f, 0.144617f, 0.856268f, 0.829604f, 0.846565f, 0.145734f, 0.698211f, 0.970246f, 0.766181f, 0.468508f, 0.888683f, 0.971707f, 0.572371f, 0.465724f, 0.0273943f, 0.0190296f, 0.125226f, 0.5102f, 0.31494f, 0.232586f, 0.709194f, 0.990483f, 0.579528f, 0.430838f, 0.649575f, 0.961249f, 0.814985f, 0.349948f, 0.970205f, 0.873427f, 0.396802f, 0.0647769f, 0.455932f, 0.916176f, 0.343859f, 0.073931f, 0.150787f, 0.32747f, 0.881908f, 0.963701f, 0.280559f, 0.0145761f, 0.211231f, 0.13017f, 0.712058f, 0.686147f, 0.653135f, 0.273876f, 0.297828f, 0.706835f, 0.64975f, 0.829058f, 0.207557f, 0.24807f, 0.0674541f, 0.933501f, 0.95747f, 0.501197f, 0.764878f, 0.809991f, 0.109319f, 0.97374f, 0.294305f, 0.65838f, 0.997028f, 0.385114f, 0.187525f, 0.164058f, 0.787641f, 0.334825f, 0.2028f, 0.868044f, 0.0966004f, 0.103965f, 0.162358f, 0.846588f, 0.658266f, 0.671984f, 0.007802f, 0.186191f, 0.14611f, 0.718566f, 0.581245f, 0.234107f, 0.0916243f, 0.149704f, 0.100661f, 0.137573f, 0.260829f, 0.733083f, 0.582407f, 0.0161812f, 0.905822f, 0.0470349f, 0.643669f, 0.185742f, 0.911995f, 0.767803f, 0.072931f, 0.491999f, 0.032019f, 0.201497f, 0.796155f, 0.447767f, 0.202882f, 0.659047f, 0.860667f, 0.231065f, 0.348377f, 0.626993f, 0.261161f, 0.612507f, 0.93157f, 0.617792f, 0.0418991f, 0.250086f, 0.833258f, 0.48148f, 0.39641f, 0.603641f, 0.692034f, 0.160123f, 0.515866f, 0.417584f, 0.89555f, 0.779499f, 0.3432f, 0.245985f, 0.102742f, 0.736205f, 0.99383f, 0.876987f, 0.250527f, 0.37881f, 0.299656f, 0.159117f, 0.173121f, 0.810005f, 0.550245f, 0.183481f, 0.836829f, 0.369465f, 0.0784068f, 0.21991f, 0.743373f, 0.382761f, 0.0534794f, 0.0327177f, 0.851849f, 0.54143f, 0.884582f, 0.811702f, 0.262948f, 0.798388f, 0.262586f, 0.12314f, 0.431092f, 0.599366f, 0.15252f, 0.718778f, 0.386064f, 0.974922f, 0.196319f, 0.945306f, 0.676892f, 0.32944f, 0.0230613f, 0.791914f, 0.845819f, 0.344745f, 0.757456f, 0.332878f, 0.0475688f, 0.409226f, 0.363361f, 0.103045f, 0.351446f, 0.256201f, 0.859651f, 0.0347259f, 0.278092f, 0.598939f, 0.056031f, 0.119117f, 0.267192f, 0.747133f, 0.651704f, 0.822329f, 0.883514f, 0.747336f, 0.394452f, 0.391557f, 0.883501f, 0.628572f, 0.349799f, 0.0699412f, 0.242391f, 0.347295f, 0.309552f, 0.936614f, 0.96757f, 0.673689f, 0.457238f, 0.102201f, 0.0283051f, 0.756324f, 0.89344f, 0.393054f, 0.843095f, 0.0201433f, 0.0508908f, 0.928129f, 0.678484f, 0.966097f, 0.970277f, 0.0487653f, 0.99047f, 0.427686f, 0.101749f, 0.389994f, 0.801796f, 0.9433f, 0.27742f, 0.122309f, 0.812336f, 0.304178f, 0.404869f, 0.145225f, 0.763077f, 0.349284f, 0.973616f, 0.941684f, 0.966734f, 0.482917f, 0.792331f, 0.40256f, 0.228404f, 0.241401f, 0.530716f, 0.775069f, 0.611068f, 0.877061f, 0.00822817f, 0.944816f, 0.671341f, 0.597713f, 0.1963f, 0.191041f, 0.863042f, 0.97787f, 0.266656f, 0.944135f, 0.153973f, 0.84478f, 0.934518f, 0.0101324f, 0.896805f, 0.925821f, 0.808599f, 0.506862f, 0.834502f, 0.206873f, 0.616657f, 0.190184f, 0.110574f, 0.309445f, 0.678084f, 0.68764f, 0.0803695f, 0.102537f, 0.330622f, 0.409365f, 0.830257f, 0.920365f, 0.109779f, 0.928976f, 0.242173f, 0.0872111f, 0.976005f, 0.427813f, 0.208303f, 0.0669568f, 0.339877f, 0.526027f, 0.623694f, 0.0909495f, 0.662156f, 0.83307f, 0.748714f, 0.496375f, 0.928164f, 0.0888929f, 0.966127f, 0.701186f, 0.290311f, 0.955522f, 0.817517f, 0.574922f, 0.118915f, 0.123963f, 0.931446f, 0.173343f, 0.0673987f, 0.0796155f, 0.509616f, 0.27848f, 0.647366f, 0.845342f, 0.894016f, 0.135002f, 0.14444f, 0.801373f, 0.631623f, 0.304413f, 0.172931f, 0.851753f, 0.397908f, 0.858392f, 0.603678f, 0.983564f, 0.206338f, 0.985833f, 0.0389553f, 0.968582f, 0.0316138f, 0.52255f, 0.940026f, 0.480945f, 0.204097f, 0.800486f, 0.387806f, 0.811569f, 0.327236f, 0.364931f, 0.0161828f, 0.755807f, 0.808606f, 0.153863f, 0.677506f, 0.639948f, 0.728528f, 0.545357f, 0.874714f, 0.633961f, 0.672314f, 0.854193f, 0.333972f, 0.275265f, 0.505065f, 0.0390262f, 0.546134f, 0.748211f, 0.483414f, 0.238871f, 0.086358f, 0.211785f, 0.333985f, 0.616154f, 0.407236f, 0.470474f, 0.369164f, 0.905938f, 0.751004f, 0.576953f, 0.359972f, 0.525121f, 0.180454f, 0.125343f, 0.682514f, 0.540055f, 0.262287f, 0.613434f, 0.20555f, 0.268176f, 0.944076f, 0.683887f, 0.304354f, 0.525964f, 0.0563507f, 0.186128f, 0.901076f, 0.376996f, 0.418124f, 0.846206f, 0.701657f, 0.6163f, 0.409259f, 0.603853f, 0.989163f, 0.990951f, 0.140016f, 0.577198f, 0.0717203f, 0.190814f, 0.570447f, 0.0848522f, 0.394837f, 0.0410504f, 0.90176f, 0.386076f, 0.440847f, 0.190578f, 0.412392f, 0.305423f, 0.387254f, 0.877219f, 0.858702f, 0.16202f, 0.249316f, 0.0931462f, 0.851088f, 0.986627f, 0.140982f, 0.280751f, 0.758626f, 0.628956f, 0.711465f, 0.568046f, 0.00580886f, 0.863143f, 0.888469f, 0.819644f, 0.504548f, 0.564843f, 0.579675f, 0.942337f, 0.765505f, 0.408913f, 0.692154f, 0.206791f, 0.397213f, 0.131126f, 0.395996f, 0.438039f, 0.883587f, 0.370056f, 0.711419f, 0.905807f, 0.664689f, 0.234771f, 0.604785f, 0.0235357f, 0.321959f, 0.146825f, 0.588254f, 0.904173f, 0.884088f, 0.173588f, 0.441115f, 0.256385f, 0.219919f, 0.337976f, 0.348612f, 0.723518f, 0.13678f, 0.872432f, 0.758708f, 0.0651159f, 0.397546f, 0.0789455f, 0.494306f, 0.997313f, 0.4093f, 0.128159f, 0.450131f, 0.424133f, 0.936298f, 0.556522f, 0.111565f, 0.886528f, 0.538497f, 0.742189f, 0.988109f, 0.770794f, 0.36197f, 0.929169f, 0.654865f, 0.735449f, 0.0882158f, 0.121988f, 0.812405f, 0.0323147f, 0.356516f, 0.743183f, 0.49272f, 0.502774f, 0.530402f, 0.80063f, 0.927351f, 0.881046f, 0.97202f, 0.172543f, 0.158431f, 0.354625f, 0.732495f, 0.665111f, 0.118994f, 0.654775f, 0.908427f, 0.49957f, 0.111015f, 0.907592f, 0.549344f, 0.0501071f, 0.310785f, 0.295828f, 0.780552f, 0.87482f, 0.143214f, 0.285174f, 0.742135f, 0.235012f, 0.922698f, 0.700166f, 0.864935f, 0.449539f, 0.00129627f, 0.461474f, 0.59276f, 0.212348f, 0.510781f, 0.659891f, 0.462252f, 0.0869465f, 0.369206f, 0.512066f, 0.868178f, 0.875224f, 0.23292f, 0.56033f, 0.471704f, 0.697728f, 0.587438f, 0.691271f, 0.357137f, 0.198208f, 0.893252f, 0.88539f, 0.885235f, 0.657946f, 0.968727f, 0.157589f, 0.547534f, 0.690851f, 0.76294f, 0.598798f, 0.0940266f, 0.866911f, 0.462136f, 0.62536f, 0.473049f, 0.78864f, 0.949104f, 0.205362f, 0.266732f, 0.20068f, 0.22428f, 0.579975f, 0.85568f, 0.385347f, 0.366773f, 0.699094f, 0.12392f, 0.710276f, 0.814907f, 0.672587f, 0.234216f, 0.318904f, 0.731612f, 0.94729f, 0.5885f, 0.832636f, 0.975877f, 0.668734f, 0.486714f, 0.905976f, 0.317388f, 0.853022f, 0.65888f, 0.896131f, 0.0888655f, 0.677008f, 0.354645f, 0.277106f, 0.680412f, 0.244873f, 0.604277f, 0.730003f, 0.755222f, 0.807247f, 0.306295f, 0.947223f, 0.571953f, 0.6879f, 0.67177f, 0.425921f, 0.817848f, 0.484288f, 0.917376f, 0.920418f, 0.412034f, 0.377941f, 0.765428f, 0.904247f, 0.3247f, 0.638179f, 0.00771101f, 0.744418f, 0.976353f, 0.313007f, 0.941025f, 0.567758f, 0.814006f, 0.631265f, 0.861989f, 0.00451235f, 0.573643f, 0.302395f, 0.014097f, 0.402934f, 0.184395f, 0.106216f, 0.40854f, 0.668758f, 0.0545764f, 0.0553679f, 0.139938f, 0.129192f, 0.387968f, 0.457384f, 0.565187f, 0.517776f, 0.0817044f, 0.408435f, 0.278675f, 0.909138f, 0.015214f, 0.329972f, 0.575212f, 0.375611f, 0.0032542f, 0.968081f, 0.679393f, 0.771907f, 0.998229f, 0.0978324f, 0.152322f, 0.657974f, 0.0424364f, 0.898498f, 0.00781248f, 0.966604f, 0.555214f, 0.538572f, 0.138067f, 0.245444f, 0.70275f, 0.375037f, 0.359377f, 0.521197f, 0.839466f, 0.309528f, 0.820303f, 0.408387f, 0.491143f, 0.388267f, 0.294487f, 0.0337572f, 0.460792f, 0.142401f, 0.635061f, 0.338179f, 0.79421f, 0.0821413f, 0.713417f, 0.119723f, 0.40366f, 0.214843f, 0.277811f, 0.500774f, 0.760807f, 0.505912f, 0.860669f, 0.0112127f, 0.98156f, 0.533639f, 0.158576f, 0.558546f, 0.412941f, 0.800568f, 0.299821f, 0.698518f, 0.618905f, 0.474764f, 0.862655f, 0.797544f, 0.0687973f, 0.0207867f, 0.213764f, 0.171063f, 0.863256f, 0.881686f, 0.207783f, 0.879188f, 0.037853f, 0.455884f, 0.453878f, 0.290796f, 0.0655869f, 0.405618f, 0.00459906f, 0.305834f, 0.672784f, 0.411524f, 0.625711f, 0.823909f, 0.950785f, 0.164711f, 0.0981265f, 0.507428f, 0.198156f, 0.855555f, 0.151924f, 0.0468619f, 0.184465f, 0.0490477f, 0.110812f, 0.179069f, 0.534728f, 0.537124f, 0.0209009f, 0.0639172f, 0.688472f, 0.299513f, 0.786082f, 0.0106266f, 0.652687f, 0.469544f, 0.0120093f, 0.805626f, 0.247813f, 0.808545f, 0.0770186f, 0.289019f, 0.784351f, 0.666679f, 0.39459f, 0.24278f, 0.699469f, 0.576991f, 0.248606f, 0.40172f, 0.524148f, 0.729291f, 0.848295f, 0.865359f, 0.528305f, 0.980017f, 0.780771f, 0.632278f, 0.00220072f, 0.898266f, 0.124942f, 0.418234f, 0.794272f, 0.283826f, 0.55652f, 0.701737f, 0.863986f, 0.430347f, 0.265604f, 0.54903f, 0.439853f, 0.500332f, 0.523264f, 0.424742f, 0.360083f, 0.307529f, 0.782259f, 0.181462f, 0.1145f, 0.189727f, 0.925073f, 0.898144f, 0.426075f, 0.4916f, 0.855005f, 0.137732f, 0.596704f, 0.223484f, 0.593847f, 0.309636f, 0.362375f, 0.578144f, 0.994404f, 0.597797f, 0.931226f, 0.670181f, 0.0432512f, 0.153872f, 0.35103f, 0.315945f, 0.538562f, 0.932876f, 0.377005f, 0.544964f, 0.338992f, 0.795902f, 0.197154f, 0.672297f, 0.490805f, 0.590352f, 0.250013f, 0.845371f, 0.447785f, 0.335133f, 0.646024f, 0.2021f, 0.605049f, 0.691671f, 0.206017f, 0.731294f, 0.640739f, 0.765759f, 0.370657f, 0.0312338f, 0.197648f, 0.824302f, 0.619517f, 0.613733f, 0.827673f, 0.658405f, 0.0745359f, 0.971399f, 0.0159525f, 0.955448f, 0.0116033f, 0.943235f, 0.272295f, 0.531009f, 0.466417f, 0.962721f, 0.531325f, 0.970817f, 0.342374f, 0.372079f, 0.140249f, 0.679542f, 0.973079f, 0.601624f, 0.365839f, 0.620408f, 0.345363f, 0.595607f, 0.288867f, 0.559873f, 0.414348f, 0.682725f, 0.0607263f, 0.0944081f, 0.618428f, 0.752767f, 0.773098f, 0.928129f, 0.886303f, 0.268078f, 0.22035f, 0.159019f, 0.756596f, 0.618913f, 0.223985f, 0.745674f, 0.0350222f, 0.737339f, 0.233143f, 0.943329f, 0.58761f, 0.0675672f, 0.184227f, 0.441476f, 0.215799f, 0.983103f, 0.17817f, 0.499477f, 0.0125585f, 0.108036f, 0.0168981f, 0.792401f, 0.08275f, 0.113531f, 0.0458031f, 0.835127f, 0.769068f, 0.260122f, 0.697836f, 0.259229f, 0.436322f, 0.886532f, 0.048632f, 0.0479159f, 0.0720011f, 0.526291f, 0.676736f, 0.753908f, 0.101618f, 0.335222f, 0.316349f, 0.388356f, 0.667449f, 0.190856f, 0.52523f, 0.932477f, 0.903691f, 0.387469f, 0.902516f, 0.898816f, 0.405547f, 0.806302f, 0.460635f, 0.979476f, 0.336249f, 0.383538f, 0.512612f, 0.860613f, 0.835158f, 0.406269f, 0.473369f, 0.0954731f, 0.454457f, 0.385452f, 0.87065f, 0.502873f, 0.823331f, 0.402513f, 0.0186827f, 0.892463f, 0.760045f, 0.69478f, 0.041612f, 0.660795f, 0.342862f, 0.595638f, 0.130851f, 0.099257f, 0.120403f, 0.980318f, 0.366255f, 0.328121f, 0.150642f, 0.809234f, 0.612507f, 0.552784f, 0.0610674f, 0.302397f, 0.19588f, 0.474791f, 0.834239f, 0.625413f, 0.0552931f, 0.251426f, 0.469178f, 0.04744f, 0.975585f, 0.826749f, 0.958573f, 0.406457f, 0.211197f, 0.759212f, 0.175226f, 0.851629f, 0.611174f, 0.638489f, 0.925408f, 0.416981f, 0.371532f, 0.77157f, 0.921326f, 0.603638f, 0.784612f, 0.394229f, 0.241148f, 0.271205f, 0.481803f, 0.799405f, 0.036087f, 0.175162f, 0.696693f, 0.469841f, 0.486332f, 0.966725f, 0.768314f, 0.751339f, 0.390397f, 0.228439f, 0.553128f, 0.942552f, 0.200973f, 0.526934f, 0.886443f, 0.923001f, 0.248618f, 0.425527f, 0.709908f, 0.90811f, 0.892864f, 0.0945733f, 0.341522f, 0.837068f, 0.400341f, 0.823601f, 0.341407f, 0.993676f, 0.773236f, 0.300178f, 0.396217f, 0.944661f, 0.55428f, 0.282266f, 0.028602f, 0.684893f, 0.781507f, 0.124207f, 0.724927f, 0.028357f, 0.251368f, 0.536366f, 0.573445f, 0.308141f, 0.440888f, 0.650418f, 0.651798f, 0.0451078f, 0.699159f, 0.962452f, 0.847135f, 0.862229f, 0.653956f, 0.895986f, 0.843736f, 0.393805f, 0.223378f, 0.372848f, 0.252978f, 0.895763f, 0.508724f, 0.721902f, 0.147755f, 0.693241f, 0.44614f, 0.764728f, 0.548472f, 0.532634f, 0.948304f, 0.299262f, 0.6434f, 0.0420454f, 0.996188f, 0.583344f, 0.485099f, 0.948438f, 0.243411f, 0.819856f, 0.369474f, 0.655671f, 0.0592489f, 0.0543621f, 0.993549f, 0.311992f, 0.671202f, 0.212992f, 0.131394f, 0.533834f, 0.335838f, 0.679306f, 0.523942f, 0.074431f, 0.886281f, 0.770568f, 0.654036f, 0.933765f, 0.937995f, 0.372563f, 0.841528f, 0.188379f, 0.228937f, 0.828668f, 0.39616f, 0.413786f, 0.697796f, 0.618801f, 0.0265031f, 0.551609f, 0.515108f, 0.245815f, 0.151793f, 0.655353f, 0.517303f, 0.847651f, 0.471491f, 0.6685f, 0.514759f, 0.242699f, 0.858416f, 0.637236f, 0.11225f, 0.181223f, 0.959921f, 0.469161f, 0.18669f, 0.168928f, 0.000697603f, 0.376498f, 0.65994f, 0.409595f, 0.564361f, 0.602178f, 0.70382f, 0.877324f, 0.551369f, 0.178609f, 0.978868f, 0.502309f, 0.0340832f, 0.247358f, 0.652003f, 0.392224f, 0.478071f, 0.753149f, 0.333342f, 0.582696f, 0.283487f, 0.495504f, 0.595418f, 0.0904018f, 0.585908f, 0.0328579f, 0.99048f, 0.613487f, 0.609382f, 0.605551f, 0.0569953f, 0.189185f, 0.429995f, 0.955398f, 0.505957f, 0.73145f, 0.61423f, 0.588236f, 0.58305f, 0.0533574f, 0.101198f, 0.581949f, 0.66963f, 0.448777f, 0.768895f, 0.643032f, 0.304342f, 0.189424f, 0.253976f, 0.319645f, 0.741379f, 0.259629f, 0.455083f, 0.149009f, 0.296796f, 0.651832f, 0.115124f, 0.348416f, 0.568379f, 0.44429f, 0.630183f, 0.250472f, 0.524372f, 0.956228f, 0.235359f, 0.37149f, 0.563646f, 0.985041f, 0.339083f, 0.00591837f, 0.336901f, 0.13234f, 0.629991f, 0.741838f, 0.179552f, 0.857007f, 0.825316f, 0.142745f, 0.0195872f, 0.663252f, 0.0308009f, 0.95679f, 0.486118f, 0.162211f, 0.941189f, 0.215582f, 0.773495f, 0.452049f, 0.0825298f, 0.312025f, 0.312332f, 0.102718f, 0.00433459f, 0.0168344f, 0.842451f, 0.569562f, 0.888201f, 0.327072f, 0.401624f, 0.832171f, 0.672292f, 0.610303f, 0.795345f, 0.433221f, 0.544712f, 0.237545f, 0.767694f, 0.343271f, 0.992533f, 0.741302f, 0.183655f, 0.0421285f, 0.928359f, 0.25151f, 0.834844f, 0.461125f, 0.866202f, 0.914736f, 0.675099f, 0.631222f, 0.665714f, 0.573919f, 0.915292f, 0.798542f, 0.177166f, 0.514498f, 0.882526f, 0.101341f, 0.634753f, 0.843519f, 0.570457f, 0.226903f, 0.716373f, 0.040913f, 0.630804f, 0.494964f, 0.601292f, 0.846046f, 0.0174172f, 0.46755f, 0.0332544f, 0.110311f, 0.84702f, 0.849973f, 0.856198f, 0.785795f, 0.354674f, 0.782393f, 0.930543f, 0.0125036f, 0.301069f, 0.591966f, 0.519331f, 0.116692f, 0.181888f, 0.251217f, 0.788606f, 0.0137773f, 0.255872f, 0.591144f, 0.862128f, 0.249039f, 0.0641142f, 0.697651f, 0.647981f, 0.0663405f, 0.0303f, 0.108705f, 0.925369f, 0.332775f, 0.0243789f, 0.896468f, 0.448633f, 0.511638f, 0.105575f, 0.0886638f, 0.0498761f, 0.782248f, 0.34918f, 0.0128387f, 0.160853f, 0.735607f, 0.279319f, 0.0873188f, 0.629893f, 0.755911f, 0.921293f, 0.457801f, 0.73937f, 0.729324f, 0.373976f, 0.678172f, 0.607887f, 0.564579f, 0.701282f, 0.660622f, 0.587753f, 0.672583f, 0.675394f, 0.652153f, 0.808644f, 0.689712f, 0.359753f, 0.234674f, 0.892729f, 0.913404f, 0.499294f, 0.596976f, 0.360313f, 0.201506f, 0.462168f, 0.38058f, 0.482462f, 0.522578f, 0.584784f, 0.982469f, 0.523538f, 0.744513f, 0.483653f, 0.114149f, 0.693467f, 0.457098f, 0.38871f, 0.37314f, 0.705251f, 0.94976f, 0.434253f, 0.592257f, 0.335648f, 0.240914f, 0.682171f, 0.140619f, 0.782256f, 0.502838f, 0.379335f, 0.884377f, 0.00497879f, 0.632287f, 0.242756f, 0.991024f, 0.873668f, 0.321323f, 0.201198f, 0.00319217f, 0.152522f, 0.500503f, 0.0321389f, 0.360202f, 0.394758f, 0.56698f, 0.359528f, 0.381789f, 0.315304f, 0.960853f, 0.903119f, 0.353078f, 0.15645f, 0.213577f, 0.0903123f, 0.826641f, 0.605427f, 0.746317f, 0.322645f, 0.868287f, 0.151039f, 0.254095f, 0.182594f, 0.364951f, 0.737455f, 0.691678f, 0.898399f, 0.000732542f, 0.248012f, 0.349148f, 0.569901f, 0.452226f, 0.515371f, 0.302485f, 0.347357f, 0.123955f, 0.469894f, 0.330666f, 0.663855f, 0.143615f, 0.261839f, 0.803338f, 0.868671f, 0.682263f, 0.246076f, 0.113804f, 0.708683f, 0.449585f, 0.482124f, 0.365102f, 0.177578f, 0.731094f, 0.600148f, 0.611593f, 0.205905f, 0.882991f, 0.887807f, 0.922277f, 0.224486f, 0.160939f, 0.0871117f, 0.69155f, 0.0134491f, 0.0853617f, 0.196541f, 0.206459f, 0.947997f, 0.333451f, 0.389338f, 0.0890182f, 0.299461f, 0.731301f, 0.630373f, 0.185242f, 0.441689f, 0.180832f, 0.560951f, 0.38455f, 0.623194f, 0.580431f, 0.265926f, 0.599774f, 0.534595f, 0.679334f, 0.835523f, 0.221747f, 0.626694f, 0.80204f, 0.726532f, 0.742793f, 0.791996f, 0.909271f, 0.785695f, 0.801973f, 0.289567f, 0.416437f, 0.873448f, 0.0779163f, 0.646142f, 0.863765f, 0.973106f, 0.481713f, 0.306551f, 0.697726f, 0.0755091f, 0.298716f, 0.0598534f, 0.702293f, 0.211307f, 0.915152f, 0.310151f, 0.262061f, 0.597905f, 0.155325f, 0.401069f, 0.387548f, 0.158868f, 0.12185f, 0.230751f, 0.323125f, 0.46201f, 0.382306f, 0.822698f, 0.502208f, 0.875634f, 0.546919f, 0.858633f, 0.104027f, 0.277316f, 0.351157f, 0.769473f, 0.592918f, 0.272187f, 0.38216f, 0.838504f, 0.361207f, 0.684142f, 0.971113f, 0.602431f, 0.00208178f, 0.676511f, 0.919325f, 0.164403f, 0.143945f, 0.180004f, 0.58075f, 0.973844f, 0.741869f, 0.999857f, 0.0169106f, 0.671591f, 0.537973f, 0.171692f, 0.261065f, 0.924552f, 0.368675f, 0.00814049f, 0.233023f, 0.540569f, 0.505196f, 0.327395f, 0.888035f, 0.22145f, 0.722096f, 0.381902f, 0.0368577f, 0.150889f, 0.724966f, 0.396629f, 0.799571f, 0.094748f, 0.552577f, 0.252088f, 0.204257f, 0.809496f, 0.330689f, 0.98061f, 0.0898285f, 0.303362f, 0.347282f, 0.241588f, 0.623002f, 0.470105f, 0.796742f, 0.495913f, 0.931737f, 0.32535f, 0.0388156f, 0.97914f, 0.909124f, 0.649404f, 0.767606f, 0.753396f, 0.35215f, 0.941861f, 0.93643f, 0.433868f, 0.20656f, 0.120542f, 0.221083f, 0.41337f, 0.0942159f, 0.961272f, 0.230308f, 0.957303f, 0.900571f, 0.866549f, 0.499876f, 0.343048f, 0.555759f, 0.386027f, 0.926825f, 0.0727304f, 0.386093f, 0.647028f, 0.712647f, 0.727604f, 0.690124f, 0.108712f, 0.178468f, 0.0411527f, 0.724617f, 0.559902f, 0.062367f, 0.93262f, 0.528495f, 0.708706f, 0.75693f, 0.978897f, 0.830077f, 0.0205915f, 0.884267f, 0.171194f, 0.444059f, 0.509467f, 0.164957f, 0.758619f, 0.412541f, 0.340623f, 0.395828f, 0.613924f, 0.670326f, 0.49157f, 0.562591f, 0.889637f, 0.774551f, 0.238951f, 0.689965f, 0.403226f, 0.0101909f, 0.63063f, 0.694367f, 0.715743f, 0.452086f, 0.433565f, 0.526304f, 0.749933f, 0.397791f, 0.920038f, 0.309825f, 0.405743f, 0.95665f, 0.435092f, 0.239381f, 0.58089f, 0.89111f, 0.769719f, 0.684106f, 0.333506f, 0.0439281f, 0.660142f, 0.661301f, 0.49023f, 0.079462f, 0.691252f, 0.623664f, 0.346586f, 0.967734f, 0.330367f, 0.475246f, 0.707362f, 0.295545f, 0.774153f, 0.639437f, 0.686184f, 0.45172f, 0.564618f, 0.356746f, 0.400369f, 0.409768f, 0.147848f, 0.389762f, 0.647711f, 0.0625404f, 0.69911f, 0.776906f, 0.946781f, 0.126086f, 0.35563f, 0.682276f, 0.156443f, 0.816989f, 0.489514f, 0.337157f, 0.237935f, 0.262935f, 0.573797f, 0.605099f, 0.996849f, 0.157335f, 0.640406f, 0.201796f, 0.258889f, 0.169679f, 0.372656f, 0.890571f, 0.141793f, 0.952647f, 0.19912f, 0.0986685f, 0.837219f, 0.231743f, 0.166329f, 0.358461f, 0.16411f, 0.304759f, 0.0675818f, 0.0716336f, 0.70638f, 0.756794f, 0.520327f, 0.508684f, 0.246657f, 0.666337f, 0.136267f, 0.29245f, 0.433688f, 0.882437f, 0.431607f, 0.468901f, 0.841016f, 0.0502369f, 0.285901f, 0.813383f, 0.514364f, 0.433242f, 0.146407f, 0.940796f, 0.171346f, 0.221461f, 0.867377f, 0.216934f, 0.552228f, 0.45611f, 0.917649f, 0.321481f, 0.61029f, 0.0959728f, 0.436011f, 0.152552f, 0.526612f, 0.978915f, 0.0586536f, 0.521181f, 0.757215f, 0.34051f, 0.141117f, 0.693102f, 0.434253f, 0.459614f, 0.557028f, 0.00349169f, 0.728583f, 0.442637f, 0.576415f, 0.185731f, 0.543305f, 0.527449f, 0.478752f, 0.387701f, 0.0757474f, 0.467792f, 0.111125f, 0.892577f, 0.265495f, 0.185827f, 0.541454f, 0.439251f, 0.728464f, 0.120708f, 0.122473f, 0.130466f, 0.875577f, 0.0863882f, 0.834825f, 0.649316f, 0.334043f, 0.909384f, 0.341323f, 0.0491015f, 0.815392f, 0.0309161f, 0.587517f, 0.631605f, 0.972673f, 0.0821971f, 0.127742f, 0.354403f, 0.448749f, 0.492077f, 0.133726f, 0.344919f, 0.451413f, 0.639855f, 0.211991f, 0.738967f, 0.556907f, 0.526736f, 0.507465f, 0.303413f, 0.651308f, 0.367555f, 0.643425f, 0.86316f, 0.294116f, 0.919841f, 0.849688f, 0.121847f, 0.696514f, 0.778465f, 0.451666f, 0.307937f, 0.47853f, 0.564549f, 0.847828f, 0.806186f, 0.596311f, 0.592267f, 0.779436f, 0.0840583f, 0.785821f, 0.171637f, 0.0334959f, 0.429124f, 0.737065f, 0.50365f, 0.745145f, 0.743668f, 0.982665f, 0.911391f, 0.671417f, 0.626701f, 0.291563f, 0.517938f, 0.516245f, 0.0801527f, 0.567097f, 0.367505f, 0.922839f, 0.439014f, 0.53182f, 0.578468f, 0.149689f, 0.669688f, 0.97581f, 0.715261f, 0.584185f, 0.148229f, 0.199314f, 0.185977f, 0.730802f, 0.104037f, 0.639689f, 0.739299f, 0.198473f, 0.767699f, 0.853707f, 0.19065f, 0.529447f, 0.766285f, 0.66186f, 0.921171f, 0.549118f, 0.892584f, 0.840488f, 0.178862f, 0.927226f, 0.890344f, 0.62377f, 0.86714f, 0.460387f, 0.392646f, 0.471308f, 0.800714f, 0.782617f, 0.634291f, 0.179337f, 0.407751f, 0.252144f, 0.82712f, 0.632213f, 0.0723105f, 0.18076f, 0.68329f, 0.693678f, 0.313102f, 0.156329f, 0.394112f, 0.662618f, 0.508978f, 0.897664f, 0.999901f, 0.791451f, 0.581513f, 0.790202f, 0.907885f, 0.248239f, 0.6598f, 0.606133f, 0.675442f, 0.667401f, 0.151201f, 0.155847f, 0.0127462f, 0.745108f, 0.0528394f, 0.713167f, 0.471145f, 0.12397f, 0.884378f, 0.083084f, 0.0953668f, 0.606258f, 0.836271f, 0.148819f, 0.57087f, 0.0425285f, 0.166045f, 0.183413f, 0.700694f, 0.623195f, 0.757091f, 0.440645f, 0.0596429f, 0.249881f, 0.602575f, 0.950073f, 0.451812f, 0.164828f, 0.0182645f, 0.11402f, 0.975934f, 0.426403f, 0.715862f, 0.805848f, 0.262033f, 0.785654f, 0.239822f, 0.678738f, 0.866985f, 0.08376f, 0.571485f, 0.0679907f, 0.437592f, 0.356353f, 0.821237f, 0.354842f, 0.853205f, 0.872567f, 0.184443f, 0.127188f, 0.853291f, 0.18183f, 0.952172f, 0.212465f, 0.975464f, 0.304758f, 0.5734f, 0.170927f, 0.296267f, 0.0125493f, 0.291528f, 0.00192874f, 0.3964f, 0.957282f, 0.511497f, 0.233394f, 0.623138f, 0.859947f, 0.080578f, 0.909789f, 0.846534f, 0.414356f, 0.403885f, 0.0692069f, 0.920154f, 0.0644305f, 0.977542f, 0.585973f, 0.337576f, 0.776913f, 0.622741f, 0.199003f, 0.712303f, 0.640121f, 0.101498f, 0.884389f, 0.228357f, 0.468964f, 0.155111f, 0.440082f, 0.488965f, 0.830177f, 0.454889f, 0.209705f, 0.677652f, 0.411443f, 0.440909f, 0.741252f, 0.010858f, 0.75862f, 0.0255627f, 0.106067f, 0.50874f, 0.527138f, 0.759874f, 0.287933f, 0.166317f, 0.961957f, 0.892252f, 0.397093f, 0.885714f, 0.396317f, 0.633364f, 0.560446f, 0.514592f, 0.641407f, 0.347794f, 0.162266f, 0.758312f, 0.0736515f, 0.198958f, 0.306381f, 0.346772f, 0.117421f, 0.0688292f, 0.227756f, 0.374787f, 0.439756f, 0.0762597f, 0.140795f, 0.746462f, 0.806024f, 0.178773f, 0.293483f, 0.397699f, 0.460144f, 0.135792f, 0.614245f, 0.587954f, 0.420387f, 0.699406f, 0.587129f, 0.283204f, 0.281297f, 0.795374f, 0.114985f, 0.745571f, 0.352045f, 0.0611762f, 0.593975f, 0.192326f, 0.113619f, 0.867458f, 0.567034f, 0.280148f, 0.41742f, 0.140169f, 0.783424f, 0.12378f, 0.0268995f, 0.67683f, 0.607597f, 0.102353f, 0.423897f, 0.43861f, 0.977933f, 0.0404341f, 0.0481451f, 0.542879f, 0.275053f, 0.832638f, 0.513499f, 0.244118f, 0.914467f, 0.709417f, 0.651207f, 0.797396f, 0.162939f, 0.733169f, 0.481811f, 0.466419f, 0.885944f, 0.988476f, 0.93639f, 0.394164f, 0.635034f, 0.755194f, 0.854726f, 0.301369f, 0.124011f, 0.189902f, 0.824301f, 0.451238f, 0.890921f, 0.400186f, 0.707203f, 0.401668f, 0.282433f, 0.577071f, 0.534646f, 0.957866f, 0.826413f, 0.426026f, 0.0910196f, 0.588473f, 0.0319855f, 0.474734f, 0.78612f, 0.524206f, 0.350851f, 0.270021f, 0.978624f, 0.523786f, 0.240499f, 0.260164f, 0.789584f, 0.65675f, 0.201923f, 0.948229f, 0.649666f, 0.927211f, 0.040211f, 0.41337f, 0.77551f, 0.571141f, 0.686762f, 0.156277f, 0.226256f, 0.933085f, 0.706712f, 0.639384f, 0.627922f, 0.526238f, 0.927197f, 0.225351f, 0.103548f, 0.549622f, 0.292483f, 0.626381f, 0.803683f, 0.226612f, 0.473502f, 0.525893f, 0.320801f, 0.581936f, 0.0611407f, 0.447279f, 0.233025f, 0.821232f, 0.795829f, 0.286259f, 0.341609f, 0.144731f, 0.110285f, 0.140597f, 0.0625647f, 0.960759f, 0.162913f, 0.940253f, 0.95897f, 0.802897f, 0.738006f, 0.502822f, 0.960198f, 0.585094f, 0.971332f, 0.975069f, 0.319401f, 0.97369f, 0.849848f, 0.823669f, 0.252366f, 0.175272f, 0.568308f, 0.0696765f, 0.0346971f, 0.734827f, 0.374973f, 0.455794f, 0.168271f, 0.384961f, 0.0177511f, 0.609373f, 0.909626f, 0.14768f, 0.888394f, 0.359283f, 0.319978f, 0.948521f, 0.271924f, 0.27314f, 0.600558f, 0.242389f, 0.0542751f, 0.0572893f, 0.683381f, 0.810487f, 0.425903f, 0.441715f, 0.726695f, 0.281386f, 0.821817f, 0.40055f, 0.715599f, 0.857166f, 0.392479f, 0.730487f, 0.968301f, 0.491452f, 0.316442f, 0.494362f, 0.0133906f, 0.958286f, 0.809101f, 0.181718f, 0.0236134f, 0.281216f, 0.38442f, 0.578918f, 0.636792f, 0.0555437f, 0.767418f, 0.575868f, 0.980857f, 0.368326f, 0.784954f, 0.159947f, 0.545253f, 0.635897f, 0.412699f, 0.804465f, 0.309414f, 0.769159f, 0.95191f, 0.496597f, 0.145394f, 0.223412f, 0.310794f, 0.0891287f, 0.556778f, 0.562303f, 0.762924f, 0.774332f, 0.90256f, 0.880377f, 0.237701f, 0.833076f, 0.464439f, 0.961118f, 0.315651f, 0.248011f, 0.197734f, 0.743461f, 0.894968f, 0.888755f, 0.191371f, 0.0606955f, 0.779843f, 0.67044f, 0.000701003f, 0.847468f, 0.110179f, 0.345346f, 0.596703f, 0.366331f, 0.491411f, 0.43866f, 0.88716f, 0.942445f, 0.341056f, 0.374603f, 0.189615f, 0.734346f, 0.477594f, 0.306855f, 0.314374f, 0.905783f, 0.545652f, 0.525045f, 0.897234f, 0.137442f, 0.0158416f, 0.815698f, 0.516642f, 0.744205f, 0.750442f, 0.409368f, 0.748892f, 0.0140665f, 0.0825914f, 0.450686f, 0.518803f, 0.0387293f, 0.995793f, 0.677971f, 0.184414f, 0.490881f, 0.564195f, 0.130463f, 0.274728f, 0.0517014f, 0.795809f, 0.496882f, 0.0917907f, 0.961887f, 0.568578f, 0.0785582f, 0.10867f, 0.660636f, 0.919073f, 0.0513685f, 0.197261f, 0.995502f, 0.211636f, 0.42973f, 0.178131f, 0.943105f, 0.241031f, 0.740778f, 0.736333f, 0.0758931f, 0.471215f, 0.691511f, 0.617629f, 0.982214f, 0.388555f, 0.372131f, 0.402224f, 0.169748f, 0.996091f, 0.854671f, 0.0438401f, 0.344562f, 0.42399f, 0.170027f, 0.853375f, 0.0901204f, 0.0216403f, 0.237151f, 0.119388f, 0.597195f, 0.312474f, 0.670449f, 0.92445f, 0.661728f, 0.530687f, 0.865478f, 0.848771f, 0.933046f, 0.610892f, 0.649236f, 0.254884f, 0.0716313f, 0.312273f, 0.0567216f, 0.616856f, 0.248198f, 0.549667f, 0.225755f, 0.725631f, 0.397707f, 0.622773f, 0.362331f, 0.68781f, 0.0602003f, 0.826523f, 0.724918f, 0.734515f, 0.391861f, 0.733534f, 0.178399f, 0.564966f, 0.591202f, 0.0472756f, 0.569476f, 0.301053f, 0.445811f, 0.835684f, 0.193328f, 0.56886f, 0.983536f, 0.995492f, 0.931116f, 0.591528f, 0.292752f, 0.514855f, 0.600805f, 0.467793f, 0.241835f, 0.764401f, 0.563282f, 0.863718f, 0.144303f, 0.231504f, 0.00520572f, 0.278638f, 0.19954f, 0.379569f, 0.0475114f, 0.104026f, 0.763559f, 0.846914f, 0.85017f, 0.14415f, 0.750602f, 0.272317f, 0.254685f, 0.167263f, 0.131831f, 0.663505f, 0.36003f, 0.334448f, 0.362862f, 0.60826f, 0.057726f, 0.0704663f, 0.941601f, 0.341211f, 0.54861f, 0.232092f, 0.661149f, 0.605109f, 0.339767f, 0.535967f, 0.961068f, 0.175784f, 0.992689f, 0.900477f, 0.284569f, 0.119902f, 0.354833f, 0.176419f, 0.084993f, 0.230209f, 0.934694f, 0.0071083f, 0.257565f, 0.961404f, 0.451827f, 0.673569f, 0.190417f, 0.149317f, 0.592344f, 0.45611f, 0.609225f, 0.260743f, 0.753217f, 0.776916f, 0.722043f, 0.73019f, 0.281829f, 0.82717f, 0.575628f, 0.213365f, 0.00978711f, 0.378466f, 0.349125f, 0.244571f, 0.471582f, 0.803671f, 0.997812f, 0.0521185f, 0.612033f, 0.449384f, 0.512475f, 0.722084f, 0.0717956f, 0.458755f, 0.760821f, 0.844698f, 0.374668f, 0.400767f, 0.709865f, 0.113621f, 0.714132f, 0.970394f, 0.707974f, 0.883892f, 0.290158f, 0.0600632f, 0.639521f, 0.0197071f, 0.0703243f, 0.540964f, 0.490692f, 0.540472f, 0.4527f, 0.43367f, 0.470396f, 0.639226f, 0.454894f, 0.161796f, 0.283119f, 0.389119f, 0.99098f, 0.354374f, 0.306925f, 0.571848f, 0.987829f, 0.654278f, 0.942796f, 0.626379f, 0.425776f, 0.10538f, 0.235674f, 0.302389f, 0.38002f, 0.788549f, 0.135715f, 0.919757f, 0.288126f, 0.499033f, 0.454735f, 0.314993f, 0.564696f, 0.755851f, 0.311844f, 0.88601f, 0.624923f, 0.597122f, 0.6463f, 0.599467f, 0.618822f, 0.0339805f, 0.535648f, 0.505867f, 0.0283788f, 0.927671f, 0.32945f, 0.349241f, 0.118857f, 0.802099f, 0.479279f, 0.343102f, 0.0556478f, 0.0645085f, 0.138695f, 0.501754f, 0.601575f, 0.465747f, 0.645858f, 0.0488047f, 0.567975f, 0.634429f, 0.095771f, 0.263161f, 0.125117f, 0.896023f, 0.416766f, 0.0760043f, 0.904781f, 0.503658f, 0.596885f, 0.917895f, 0.446839f, 0.845408f, 0.347075f, 0.726262f, 0.0325798f, 0.596209f, 0.67089f, 0.420953f, 0.364253f, 0.566215f, 0.0240224f, 0.299557f, 0.755112f, 0.518478f, 0.172691f, 0.440801f, 0.993724f, 0.403926f, 0.686368f, 0.0119942f, 0.0752334f, 0.569332f, 0.586567f, 0.84281f, 0.690945f, 0.964742f, 0.601104f, 0.734396f, 0.548406f, 0.764456f, 0.805043f, 0.51092f, 0.760391f, 0.173881f, 0.0235308f, 0.356031f, 0.53105f, 0.086914f, 0.664032f, 0.571966f, 0.92573f, 0.59094f, 0.927327f, 0.692028f, 0.842902f, 0.67167f, 0.276918f, 0.467458f, 0.752591f, 0.9499f, 0.467204f, 0.447911f, 0.474744f, 0.388578f, 0.557763f, 0.883731f, 0.794943f, 0.429311f, 0.63033f, 0.709716f, 0.0540243f, 0.458512f, 0.54981f, 0.388782f, 0.634203f, 0.68688f, 0.989504f, 0.904139f, 0.661675f, 0.749267f, 0.372069f, 0.0318962f, 0.4609f, 0.517865f, 0.886023f, 0.787396f, 0.0912821f, 0.229197f, 0.2815f, 0.770678f, 0.3427f, 0.390274f, 0.810432f, 0.265945f, 0.837044f, 0.366723f, 0.549445f, 0.909393f, 0.654305f, 0.68561f, 0.582384f, 0.0771761f, 0.68467f, 0.246603f, 0.516234f, 0.679899f, 0.0538224f, 0.35085f, 0.541939f, 0.257065f, 0.523613f, 0.750268f, 0.281682f, 0.761999f, 0.187258f, 0.935161f, 0.726177f, 0.983635f, 0.213881f, 0.837402f, 0.0311317f, 0.713501f, 0.0597453f, 0.069166f, 0.616787f, 0.237867f, 0.898007f, 0.291914f, 0.639359f, 0.344517f, 0.662031f, 0.990589f, 0.746652f, 0.299035f, 0.282434f, 0.592909f, 0.269854f, 0.598541f, 0.60132f, 0.93501f, 0.279348f, 0.952177f, 0.3203f, 0.237311f, 0.449025f, 0.112849f, 0.347608f, 0.603105f, 0.0826972f, 0.0645104f, 0.654211f, 0.787298f, 0.183199f, 0.136849f, 0.421642f, 0.457025f, 0.177792f, 0.292448f, 0.622044f, 0.450702f, 0.622207f, 0.74748f, 0.111626f, 0.540305f, 0.357124f, 0.112576f, 0.0920041f, 0.901445f, 0.591537f, 0.120162f, 0.277792f, 0.85936f, 0.644468f, 0.964015f, 0.121913f, 0.46483f, 0.90891f, 0.317464f, 0.450741f, 0.135112f, 0.64213f, 0.491018f, 0.896948f, 0.0406019f, 0.380772f, 0.500875f, 0.40253f, 0.150461f, 0.526617f, 0.431422f, 0.953507f, 0.872597f, 0.60421f, 0.581048f, 0.649227f, 0.351248f, 0.0962856f, 0.527706f, 0.62949f, 0.297496f, 0.424442f, 0.211807f, 0.191928f, 0.978057f, 0.659203f, 0.424782f, 0.321244f, 0.309401f, 0.155644f, 0.018394f, 0.981963f, 0.790722f, 0.315559f, 0.132894f, 0.540455f, 0.673194f, 0.166135f, 0.963324f, 0.991482f, 0.606148f, 0.641684f, 0.321732f, 0.357962f, 0.419031f, 0.524566f, 0.121163f, 0.167526f, 0.419093f, 0.773295f, 0.591982f, 0.177544f, 0.221321f, 0.79453f, 0.187352f, 0.945812f, 0.230775f, 0.759209f, 0.223633f, 0.782123f, 0.762374f, 0.554152f, 0.758007f, 0.646692f, 0.164805f, 0.439458f, 0.668481f, 0.394392f, 0.310737f, 0.520953f, 0.23468f, 0.329919f, 0.42598f, 0.826062f, 0.677959f, 0.270117f, 0.964114f, 0.835354f, 0.184171f, 0.94592f, 0.538805f, 0.21293f, 0.674282f, 0.613245f, 0.627513f, 0.657674f, 0.272839f, 0.0842785f, 0.950948f, 0.373451f, 0.439554f, 0.159792f, 0.0401004f, 0.0151278f, 0.903084f, 0.297656f, 0.379113f, 0.211713f, 0.0208064f, 0.14493f, 0.347375f, 0.385924f, 0.00268695f, 0.12542f, 0.739048f, 0.676817f, 0.736418f, 0.227088f, 0.412102f, 0.198277f, 0.410965f, 0.91409f, 0.717919f, 0.215226f, 0.667909f, 0.442317f, 0.10207f, 0.381269f, 0.427142f, 0.333933f, 0.245708f, 0.329177f, 0.461323f, 0.664618f, 0.0679301f, 0.544018f, 0.674657f, 0.178317f, 0.459781f, 0.89711f, 0.276327f, 0.784713f, 0.27331f, 0.487891f, 0.180568f, 0.96831f, 0.323182f, 0.0866663f, 0.512143f, 0.919757f, 0.393651f, 0.789092f, 0.29094f, 0.188134f, 0.560856f, 0.955586f, 0.0718635f, 0.0269404f, 0.203678f, 0.983172f, 0.51758f, 0.968003f, 0.331021f, 0.830203f, 0.0181279f, 0.0141556f, 0.697402f, 0.0525922f, 0.514023f, 0.508186f, 0.256969f, 0.933136f, 0.200218f, 0.0110242f, 0.860594f, 0.0303397f, 0.157889f, 0.392822f, 0.374512f, 0.400553f, 0.270855f, 0.568008f, 0.558921f, 0.956101f, 0.744385f, 0.719175f, 0.916029f, 0.884867f, 0.247502f, 0.073517f, 0.780392f, 0.279199f, 0.827558f, 0.339382f, 0.584516f, 0.79727f, 0.0643695f, 0.0317724f, 0.435497f, 0.180505f, 0.76243f, 0.195217f, 0.82011f, 0.101829f, 0.0997807f, 0.953348f, 0.15367f, 0.104359f, 0.487753f, 0.343762f, 0.654727f, 0.132477f, 0.999045f, 0.406191f, 0.598411f, 0.860789f, 0.306506f, 0.138799f, 0.339544f, 0.527326f, 0.564002f, 0.97529f, 0.0840793f, 0.471393f, 0.818627f, 0.0416602f, 0.460369f, 0.651059f, 0.369103f, 0.943312f, 0.53025f, 0.120124f, 0.658747f, 0.284755f, 0.0118443f, 0.647365f, 0.619388f, 0.0555024f, 0.031167f, 0.836224f, 0.107065f, 0.655598f, 0.0652551f, 0.949251f, 0.0430759f, 0.348073f, 0.468649f, 0.282215f, 0.823767f, 0.621657f, 0.301013f, 0.447086f, 0.569542f, 0.477536f, 0.276875f, 0.473196f, 0.646234f, 0.140407f, 0.661602f, 0.48413f, 0.640481f, 0.1237f, 0.807747f, 0.34507f, 0.155209f, 0.724469f, 0.129897f, 0.261054f, 0.797226f, 0.141759f, 0.660291f, 0.178049f, 0.635802f, 0.642498f, 0.335264f, 0.0986802f, 0.560285f, 0.258029f, 0.408848f, 0.963392f, 0.127648f, 0.522938f, 0.343361f, 0.0591521f, 0.538662f, 0.723705f, 0.143253f, 0.406725f, 0.762505f, 0.858145f, 0.652872f, 0.0751902f, 0.474162f, 0.456277f, 0.420937f, 0.770795f, 0.574915f, 0.536308f, 0.594785f, 0.40898f, 0.288524f, 0.871027f, 0.942149f, 0.359192f, 0.677768f, 0.464186f, 0.863689f, 0.403723f, 0.152206f, 0.0318572f, 0.206376f, 0.383112f, 0.939003f, 0.279417f, 0.864818f, 0.921036f, 0.530947f, 0.255451f, 0.0888463f, 0.990938f, 0.118905f, 0.692524f, 0.256951f, 0.289297f, 0.747234f, 0.592557f, 0.135735f, 0.703777f, 0.207975f, 0.274076f, 0.793419f, 0.416538f, 0.679037f, 0.569987f, 0.425747f, 0.448826f, 0.807602f, 0.338074f, 0.925081f, 0.120731f, 0.206021f, 0.102171f, 0.131164f, 0.779013f, 0.883488f, 0.326324f, 0.21583f, 0.147292f, 0.430501f, 0.599133f, 0.772507f, 0.327405f, 0.226773f, 0.384921f, 0.881793f, 0.238704f, 0.345292f, 0.255344f, 0.91225f, 0.181126f, 0.550924f, 0.132555f, 0.510167f, 0.95588f, 0.940686f, 0.436938f, 0.789056f, 0.0285278f, 0.966325f, 0.352782f, 0.213606f, 0.282055f, 0.961657f, 0.0717836f, 0.150889f, 0.0156478f, 0.382351f, 0.732958f, 0.973349f, 0.805664f, 0.566904f, 0.594289f, 0.286691f, 0.700367f, 0.182755f, 0.647849f, 0.162256f, 0.478529f, 0.963923f, 0.711276f, 0.863389f, 0.882019f, 0.820617f, 0.0506087f, 0.794141f, 0.714298f, 0.573767f, 0.567374f, 0.30751f, 0.807773f, 0.192612f, 0.906685f, 0.711471f, 0.35731f, 0.619318f, 0.732762f, 0.400525f, 0.828465f, 0.862046f, 0.53438f, 0.819672f, 0.937958f, 0.360399f, 0.997121f, 0.717269f, 0.685371f, 0.47348f, 0.806581f, 0.727519f, 0.315085f, 0.601397f, 0.269334f, 0.568207f, 0.027692f, 0.703402f, 0.170218f, 0.500086f, 0.607612f, 0.573989f, 0.0406072f, 0.183721f, 0.861845f, 0.70674f, 0.117189f, 0.176553f, 0.317406f, 0.904584f, 0.333126f, 0.164825f, 0.313377f, 0.37939f, 0.118558f, 0.436089f, 0.251973f, 0.253981f, 0.108738f, 0.219032f, 0.716901f, 0.172093f, 0.616285f, 0.264775f, 0.23992f, 0.896254f, 0.295272f, 0.791905f, 0.656538f, 0.0384521f, 0.196358f, 0.736726f, 0.415566f, 0.240984f, 0.70861f, 0.610987f, 0.733977f, 0.124111f, 0.0136321f, 0.919147f, 0.0704665f, 0.843662f, 0.964286f, 0.506136f, 0.692433f, 0.935884f, 0.990476f, 0.22058f, 0.875116f, 0.897394f, 0.111069f, 0.534619f, 0.581804f, 0.846851f, 0.611967f, 0.499796f, 0.429545f, 0.798909f, 0.315004f, 0.942182f, 0.428862f, 0.614155f, 0.966451f, 0.974008f, 0.441044f, 0.859631f, 0.444931f, 0.918694f, 0.247554f, 0.201709f, 0.925149f, 0.778544f, 0.42768f, 0.613957f, 0.688951f, 0.873456f, 0.504223f, 0.845928f, 0.986889f, 0.539666f, 0.656433f, 0.749198f, 0.584904f, 0.40616f, 0.652864f, 0.129738f, 0.997156f, 0.548049f, 0.866048f, 0.0787458f, 0.0794804f, 0.728205f, 0.884015f, 0.212964f, 0.0511247f, 0.207538f, 0.336783f, 0.421898f, 0.793931f, 0.6185f, 0.676942f, 0.727137f, 0.832176f, 0.960208f, 0.228816f, 0.578622f, 0.0726547f, 0.863936f, 0.728756f, 0.895077f, 0.713311f, 0.109769f, 0.704642f, 0.95281f, 0.839504f, 0.945565f, 0.190666f, 0.933363f, 0.632555f, 0.550899f, 0.802728f, 0.057105f, 0.894612f, 0.38568f, 0.135467f, 0.0176021f, 0.327382f, 0.358374f, 0.447524f, 0.228588f, 0.811691f, 0.661628f, 0.546452f, 0.350899f, 0.00507256f, 0.471622f, 0.907124f, 0.628432f, 0.96551f, 0.190372f, 0.671076f, 0.714566f, 0.4601f, 0.701459f, 0.927465f, 0.628752f, 0.142717f, 0.412611f, 0.730583f, 0.343111f, 0.34992f, 0.440681f, 0.642637f, 0.222177f, 0.431251f, 0.50514f, 0.125927f, 0.754476f, 0.00296051f, 0.568277f, 0.900355f, 0.326807f, 0.138109f, 0.836854f, 0.667035f, 0.540292f, 0.112458f, 0.713526f, 0.800975f, 0.337264f, 0.29358f, 0.593161f, 0.265627f, 0.0889931f, 0.857896f, 0.330727f, 0.841462f, 0.908689f, 0.60503f, 0.477598f, 0.298034f, 0.911471f, 0.608683f, 0.398816f, 0.983949f, 0.240758f, 0.606816f, 0.602618f, 0.160728f, 0.352549f, 0.718983f, 0.462568f, 0.805229f, 0.252996f, 0.73863f, 0.000422414f, 0.812615f, 0.724826f, 0.443087f, 0.290496f, 0.393446f, 0.992466f, 0.0837757f, 0.00583894f, 0.930767f, 0.536693f, 0.811747f, 0.0511222f, 0.708225f, 0.901528f, 0.2509f, 0.444992f, 0.397405f, 0.542782f, 0.122836f, 0.861212f, 0.249062f, 0.174464f, 0.050134f, 0.378451f, 0.571994f, 0.881506f, 0.0499796f, 0.787135f, 0.22121f, 0.645498f, 0.436943f, 0.787478f, 0.460505f, 0.68293f, 0.991135f, 0.88287f, 0.722825f, 0.796469f, 0.5201f, 0.956356f, 0.67584f, 0.693191f, 0.730392f, 0.121242f, 0.709526f, 0.544418f, 0.262852f, 0.487887f, 0.514067f, 0.0911956f, 0.0860523f, 0.474676f, 0.585426f, 0.310218f, 0.886219f, 0.290739f, 0.0282541f, 0.656092f, 0.928931f, 0.941969f, 0.10195f, 0.818213f, 0.781855f, 0.433706f, 0.311066f, 0.339732f, 0.496567f, 0.65566f, 0.485256f, 0.497272f, 0.364859f, 0.126097f, 0.0740863f, 0.405792f, 0.0969492f, 0.4864f, 0.210317f, 0.711933f, 0.0635027f, 0.0361123f, 0.493013f, 0.946083f, 0.0066597f, 0.546463f, 0.0163349f, 0.0228225f, 0.977677f, 0.0772557f, 0.306093f, 0.310278f, 0.665144f, 0.383851f, 0.330056f, 0.883021f, 0.689747f, 0.546534f, 0.0734483f, 0.411925f, 0.797349f, 0.228309f, 0.233533f, 0.796033f, 0.0030193f, 0.513364f, 0.368626f, 0.930374f, 0.725822f, 0.0219896f, 0.299541f, 0.140862f, 0.315275f, 0.783451f, 0.944752f, 0.606796f, 0.873046f, 0.326616f, 0.371542f, 0.855865f, 0.425102f, 0.861019f, 0.352546f, 0.525911f, 0.751078f, 0.668595f, 0.953006f, 0.759148f, 0.366194f, 0.28042f, 0.972413f, 0.168339f, 0.757616f, 0.166174f, 0.777926f, 0.093088f, 0.329875f, 0.255593f, 0.359008f, 0.111147f, 0.542383f, 0.859861f, 0.772084f, 0.377405f, 0.117666f, 0.391373f, 0.132639f, 0.854042f, 0.286216f, 0.35719f, 0.798284f, 0.360051f, 0.795723f, 0.465997f, 0.561341f, 0.460214f, 0.769956f, 0.749655f, 0.152443f, 0.183006f, 0.242389f, 0.0737898f, 0.68665f, 0.192032f, 0.263023f, 0.616373f, 0.857243f, 0.640726f, 0.0621201f, 0.162099f, 0.492626f, 0.53992f, 0.299509f, 0.154796f, 0.779567f, 0.290502f, 0.00579967f, 0.124107f, 0.472051f, 0.000434841f, 0.235547f, 0.712911f, 0.488378f, 0.26475f, 0.814806f, 0.0754994f, 0.406514f, 0.683893f, 0.548816f, 0.387705f, 0.331393f, 0.411969f, 0.0160922f, 0.0911969f, 0.815596f, 0.432159f, 0.661646f, 0.228131f, 0.16644f, 0.540622f, 0.806374f, 0.91399f, 0.0151226f, 0.327789f, 0.486473f, 0.0520317f, 0.489694f, 0.369283f, 0.577062f, 0.590977f, 0.745221f, 0.882706f, 0.723975f, 0.866051f, 0.766082f, 0.480659f, 0.737826f, 0.189252f, 0.618888f, 0.359069f, 0.790591f, 0.406381f, 0.910825f, 0.252672f, 0.731272f, 0.13744f, 0.412974f, 0.733391f, 0.347641f, 0.871649f, 0.626397f, 0.251238f, 0.814955f, 0.884079f, 0.954014f, 0.38571f, 0.0546944f, 0.098018f, 0.349328f, 0.865735f, 0.68303f, 0.25361f, 0.50894f, 0.152982f, 0.42769f, 0.476476f, 0.411445f, 0.739538f, 0.20844f, 0.908736f, 0.946669f, 0.957216f, 0.830711f, 0.285214f, 0.430605f, 0.123387f, 0.366716f, 0.0966705f, 0.171379f, 0.140106f, 0.00523692f, 0.483994f, 0.836323f, 0.000203898f, 0.847099f, 0.199114f, 0.0786781f, 0.498113f, 0.472991f, 0.430339f, 0.717644f, 0.771445f, 0.933048f, 0.650317f, 0.592575f, 0.69774f, 0.841689f, 0.470272f, 0.255145f, 0.642192f, 0.683545f, 0.129527f, 0.7225f, 0.143363f, 0.700158f, 0.573115f, 0.496788f, 0.672769f, 0.528652f, 0.516476f, 0.797372f, 0.205896f, 0.624819f, 0.940306f, 0.799173f, 0.89588f, 0.981444f, 0.294351f, 0.285886f, 0.871644f, 0.728298f, 0.525132f, 0.696356f, 0.328752f, 0.0683865f, 0.107999f, 0.448041f, 0.0561753f, 0.256848f, 0.845314f, 0.000561138f, 0.024717f, 0.214498f, 0.0110802f, 0.842329f, 0.191831f, 0.55362f, 0.577487f, 0.47658f, 0.926408f, 0.825722f, 0.734621f, 0.517285f, 0.18766f, 0.531805f, 0.932464f, 0.867263f, 0.870883f, 0.0587472f, 0.339046f, 0.788978f, 0.519536f, 0.980831f, 0.917215f, 0.314639f, 0.345936f, 0.737894f, 0.163836f, 0.911963f, 0.306258f, 0.853049f, 0.819763f, 0.834382f, 0.118071f, 0.0517382f, 0.741186f, 0.218079f, 0.718497f, 0.216362f, 0.358845f, 0.0262473f, 0.573432f, 0.877798f, 0.434158f, 0.689208f, 0.28387f, 0.631236f, 0.0276151f, 0.569504f, 0.451447f, 0.569556f, 0.142046f, 0.125314f, 0.685423f, 0.874892f, 0.661033f, 0.0480938f, 0.678272f, 0.225373f, 0.420258f, 0.940519f, 0.991653f, 0.22264f, 0.0383297f, 0.087134f, 0.72526f, 0.221824f, 0.0761745f, 0.109705f, 0.455931f, 0.181691f, 0.958014f, 0.829454f, 0.840142f, 0.822616f, 0.41962f, 0.278158f, 0.911439f, 0.83333f, 0.528914f, 0.972686f, 0.057116f, 0.885617f, 0.426003f, 0.0722767f, 0.205997f, 0.460486f, 0.750409f, 0.467783f, 0.622696f, 0.218373f, 0.443269f, 0.325559f, 0.152971f, 0.971439f, 0.109743f, 0.14042f, 0.370876f, 0.936533f, 0.572726f, 0.981721f, 0.710409f, 0.666631f, 0.783337f, 0.279378f, 0.82056f, 0.5105f, 0.383959f, 0.929276f, 0.158211f, 0.0924422f, 0.448461f, 0.995812f, 0.199213f, 0.340225f, 0.458053f, 0.434526f, 0.143288f, 0.0727889f, 0.601088f, 0.174134f, 0.742817f, 0.25083f, 0.148017f, 0.816632f, 0.283205f, 0.684135f, 0.708765f, 0.656708f, 0.231398f, 0.101216f, 0.948646f, 0.974955f, 0.13018f, 0.249274f, 0.251885f, 0.4138f, 0.0993538f, 0.870605f, 0.607726f, 0.53469f, 0.425744f, 0.534512f, 0.422424f, 0.707954f, 0.806989f, 0.833396f, 0.612742f, 0.129842f, 0.818643f, 0.784665f, 0.328811f, 0.254497f, 0.425704f, 0.198761f, 0.00636503f, 0.331532f, 0.0979688f, 0.217644f, 0.631499f, 0.153504f, 0.47421f, 0.000996381f, 0.643052f, 0.421039f, 0.886781f, 0.469619f, 0.599094f, 0.519344f, 0.829217f, 0.295929f, 0.459046f, 0.929458f, 0.482433f, 0.454514f, 0.781803f, 0.701602f, 0.400688f, 0.289321f, 0.834496f, 0.563524f, 0.858043f, 0.797295f, 0.185198f, 0.002268f, 0.792045f, 0.137388f, 0.201848f, 0.206613f, 0.576547f, 0.281215f, 0.969594f, 0.729729f, 0.811817f, 0.368265f, 0.305238f, 0.140258f, 0.817175f, 0.580202f, 0.146454f, 0.0976395f, 0.0116953f, 0.692592f, 0.0456688f, 0.787763f, 0.911869f, 0.190774f, 0.0421205f, 0.742239f, 0.215383f, 0.634856f, 0.217612f, 0.976046f, 0.629438f, 0.575507f, 0.991286f, 0.739136f, 0.515219f, 0.152072f, 0.06971f, 0.671442f, 0.550124f, 0.315606f, 0.669713f, 0.579424f, 0.0432335f, 0.220854f, 0.386082f, 0.900995f, 0.261122f, 0.430265f, 0.161644f, 0.129911f, 0.724532f, 0.232359f, 0.169264f, 0.17024f, 0.300017f, 0.0453636f, 0.588913f, 0.901443f, 0.697316f, 0.847893f, 0.0753857f, 0.427729f, 0.968554f, 0.813486f, 0.86194f, 0.752806f, 0.900089f, 0.857901f, 0.486216f, 0.906749f, 0.107639f, 0.783365f, 0.542632f, 0.811905f, 0.359218f, 0.896544f, 0.966524f, 0.161207f, 0.205371f, 0.821549f, 0.521102f, 0.830914f, 0.40505f, 0.522809f, 0.126623f, 0.604354f, 0.045568f, 0.210009f, 0.580072f, 0.0603523f, 0.0196878f, 0.248134f, 0.901776f, 0.80374f, 0.344628f, 0.926973f, 0.0793407f, 0.476877f, 0.909748f, 0.574286f, 0.192875f, 0.89499f, 0.549265f, 0.122798f, 0.202247f, 0.754604f, 0.627077f, 0.489349f, 0.471488f, 0.362998f, 0.510526f, 0.285607f, 0.292884f, 0.857883f, 0.818358f, 0.998242f, 0.986864f, 0.393744f, 0.701509f, 0.308962f, 0.787377f, 0.310688f, 0.551803f, 0.439958f, 0.427111f, 0.430914f, 0.125983f, 0.955682f, 0.506946f, 0.475104f, 0.42386f, 0.743888f, 0.254028f, 0.393156f, 0.79219f, 0.0677401f, 0.586007f, 0.594929f, 0.0176444f, 0.0772566f, 0.320507f, 0.992986f, 0.207901f, 0.528106f, 0.136103f, 0.191147f, 0.708463f, 0.328756f, 0.935148f, 0.0558156f, 0.10463f, 0.698945f, 0.1983f, 0.0516235f, 0.976899f, 0.190763f, 0.506738f, 0.903816f, 0.470891f, 0.579311f, 0.459764f, 0.870779f, 0.467084f, 0.202093f, 0.382113f, 0.758982f, 0.543233f, 0.646937f, 0.275654f, 0.4393f, 0.333932f, 0.0695708f, 0.156887f, 0.721319f, 0.984171f, 0.252371f, 0.983907f, 0.775737f, 0.0589212f, 0.445042f, 0.461394f, 0.466213f, 0.373344f, 0.930697f, 0.406812f, 0.662108f, 0.122191f, 0.247269f, 0.258097f, 0.0407154f, 0.855269f, 0.235527f, 0.876875f, 0.805798f, 0.0807154f, 0.960267f, 0.689527f, 0.920841f, 0.452028f, 0.313812f, 0.507496f, 0.101225f, 0.765568f, 0.952103f, 0.210943f, 0.792417f, 0.812604f, 0.530017f, 0.117172f, 0.413165f, 0.65056f, 0.774613f, 0.0447885f, 0.16903f, 0.413123f, 0.5215f, 0.463947f, 0.454876f, 0.409058f, 0.839745f, 0.048039f, 0.922402f, 0.865291f, 0.903217f, 0.825776f, 0.258469f, 0.306235f, 0.280674f, 0.499215f, 0.0321913f, 0.43813f, 0.648241f, 0.863866f, 0.961258f, 0.872787f, 0.965832f, 0.280185f, 0.867821f, 0.333726f, 0.546419f, 0.560417f, 0.93491f, 0.710542f, 0.261666f, 0.798367f, 0.168999f, 0.920242f, 0.726819f, 0.377246f, 0.395024f, 0.274166f, 0.264527f, 0.20049f, 0.359811f, 0.804623f, 0.00360393f, 0.73255f, 0.771133f, 0.170565f, 0.68284f, 0.331344f, 0.706333f, 0.462146f, 0.469002f, 0.305191f, 0.539346f, 0.233156f, 0.404299f, 0.942348f, 0.245893f, 0.373266f, 0.47572f, 0.421276f, 0.307568f, 0.854683f, 0.774993f, 0.945097f, 0.829606f, 0.405773f, 0.87252f, 0.176255f, 0.87888f, 0.279033f, 0.506288f, 0.510867f, 0.853068f, 0.0954172f, 0.0451458f, 0.0464311f, 0.0171631f, 0.0558304f, 0.65644f, 0.343285f, 0.537229f, 0.456696f, 0.749976f, 0.0701074f, 0.0709438f, 0.790112f, 0.47651f, 0.491217f, 0.568951f, 0.87156f, 0.176341f, 0.40739f, 0.495322f, 0.275302f, 0.770716f, 0.278422f, 0.0661859f, 0.905895f, 0.362887f, 0.899367f, 0.921387f, 0.0564634f, 0.573581f, 0.156361f, 0.0436128f, 0.108496f, 0.831278f, 0.815231f, 0.0652065f, 0.40572f, 0.295175f, 0.548291f, 0.517641f, 0.536337f, 0.686713f, 0.413358f, 0.130384f, 0.0510004f, 0.582349f, 0.747402f, 0.307916f, 0.353884f, 0.462563f, 0.542269f, 0.207305f, 0.173616f, 0.291938f, 0.634112f, 0.907511f, 0.0626015f, 0.879159f, 0.429013f, 0.504899f, 0.934654f, 0.116295f, 0.136615f, 0.31684f, 0.58602f, 0.458877f, 0.368319f, 0.682573f, 0.372163f, 0.178365f, 0.78596f, 0.271155f, 0.742319f, 0.621476f, 0.111365f, 0.34581f, 0.831871f, 0.500833f, 0.507965f, 0.572682f, 0.0626494f, 0.0098932f, 0.233187f, 0.884227f, 0.110608f, 0.665661f, 0.691152f, 0.136284f, 0.178324f, 0.858383f, 0.428119f, 0.864211f, 0.707418f, 0.657407f, 0.381127f, 0.189932f, 0.312904f, 0.0789875f, 0.900363f, 0.283227f, 0.904997f, 0.116342f, 0.708026f, 0.49802f, 0.670096f, 0.299116f, 0.884948f, 0.470176f, 0.774387f, 0.642584f, 0.305323f, 0.804183f, 0.888465f, 0.818885f, 0.410525f, 0.425071f, 0.726494f, 0.430591f, 0.709948f, 0.412813f, 0.323481f, 0.208116f, 0.777231f, 0.116319f, 0.332237f, 0.0846122f, 0.770269f, 0.352339f, 0.601469f, 0.556197f, 0.733306f, 0.0663171f, 0.862323f, 0.544184f, 0.0272064f, 0.165657f, 0.788109f, 0.673075f, 0.315027f, 0.159948f, 0.506468f, 0.652056f, 0.000920887f, 0.215675f, 0.464952f, 0.743509f, 0.351673f, 0.602006f, 0.367186f, 0.177594f, 0.941535f, 0.306144f, 0.378103f, 0.212491f, 0.997629f, 0.80487f, 0.127841f, 0.619001f, 0.833757f, 0.697103f, 0.0588221f, 0.7419f, 0.792471f, 0.832259f, 0.036171f, 0.468769f, 0.389836f, 0.255074f, 0.196213f, 0.736734f, 0.478865f, 0.723545f, 0.5987f, 0.291994f, 0.49389f, 0.121163f, 0.592705f, 0.65f, 0.34932f, 0.369126f, 0.0713003f, 0.122628f, 0.844854f, 0.635947f, 0.374196f, 0.358014f, 0.481653f, 0.700881f, 0.0205248f, 0.13835f, 0.807291f, 0.735876f, 0.759992f, 0.472683f, 0.302549f, 0.787f, 0.225814f, 0.185531f, 0.231139f, 0.935187f, 0.403908f, 0.64596f, 0.34262f, 0.357467f, 0.10672f, 0.305625f, 0.52338f, 0.827492f, 0.955765f, 0.790972f, 0.177031f, 0.927101f, 0.810977f, 0.499514f, 0.322676f, 0.57625f, 0.372786f, 0.382195f, 0.988088f, 0.618742f, 0.425023f, 0.673301f, 0.241715f, 0.174997f, 0.5439f, 0.170907f, 0.349194f, 0.820161f, 0.233589f, 0.318476f, 0.197934f, 0.699364f, 0.637542f, 0.465011f, 0.0187581f, 0.190163f, 0.756208f, 0.472132f, 0.4868f, 0.723026f, 0.379682f, 0.365346f, 0.894813f, 0.751082f, 0.480833f, 0.928701f, 0.128808f, 0.830305f, 0.100163f, 0.90188f, 0.911492f, 0.466998f, 0.433854f, 0.015408f, 0.167343f, 0.642858f, 0.455742f, 0.610448f, 0.326629f, 0.421488f, 0.458191f, 0.637302f, 0.533665f, 0.812558f, 0.969173f, 0.326991f, 0.126867f, 0.848999f, 0.716219f, 0.981126f, 0.327416f, 0.284432f, 0.792503f, 0.694015f, 0.248582f, 0.770959f, 0.751586f, 0.38134f, 0.965801f, 0.505019f, 0.14646f, 0.374775f, 0.321738f, 0.458752f, 0.377833f, 0.519381f, 0.679915f, 0.458723f, 0.0370693f, 0.849639f, 0.396516f, 0.83156f, 0.444756f, 0.797976f, 0.995591f, 0.538567f, 0.689927f, 0.45096f, 0.868299f, 0.811123f, 0.293234f, 0.721305f, 0.177166f, 0.894952f, 0.62641f, 0.687413f, 0.694175f, 0.304217f, 0.0136684f, 0.890674f, 0.899722f, 0.637766f, 0.528021f, 0.801501f, 0.792564f, 0.538398f, 0.877006f, 0.264564f, 0.407734f, 0.645108f, 0.18197f, 0.152754f, 0.815848f, 0.577899f, 0.703031f, 0.242478f, 0.894567f, 0.96087f, 0.408947f, 0.315054f, 0.302289f, 0.478926f, 0.669814f, 0.959103f, 0.344021f, 0.658806f, 0.448365f, 0.838467f, 0.779806f, 0.865458f, 0.41381f, 0.893845f, 0.457803f, 0.889834f, 0.946956f, 0.933004f, 0.83567f, 0.136374f, 0.049155f, 0.3097f, 0.251154f, 0.305113f, 0.799089f, 0.300594f, 0.582202f, 0.31084f, 0.385809f, 0.144171f, 0.434686f, 0.754535f, 0.53353f, 0.522426f, 0.0434329f, 0.91338f, 0.660406f, 0.150252f, 0.90375f, 0.0102227f, 0.729369f, 0.461165f, 0.506007f, 0.308079f, 0.47514f, 0.12175f, 0.886592f, 0.0350306f, 0.606862f, 0.313458f, 0.750547f, 0.0801592f, 0.457862f, 0.533468f, 0.885263f, 0.198575f, 0.309171f, 0.305542f, 0.199726f, 0.793719f, 0.804498f, 0.0358066f, 0.978661f, 0.827523f, 0.35161f, 0.762326f, 0.535313f, 0.938559f, 0.4503f, 0.112569f, 0.66282f, 0.370995f, 0.569321f, 0.119367f, 0.501329f, 0.846056f, 0.539359f, 0.839922f, 0.442332f, 0.884f, 0.0591876f, 0.539168f, 0.984781f, 0.871205f, 0.0854703f, 0.717857f, 0.232444f, 0.457933f, 0.649101f, 0.148704f, 0.670437f, 0.443175f, 0.302435f, 0.0377366f, 0.454601f, 0.336314f, 0.81688f, 0.261152f, 0.498628f, 0.759005f, 0.567544f, 0.632342f, 0.690219f, 0.845594f, 0.531945f, 0.691674f, 0.595055f, 0.725202f, 0.537517f, 0.711232f, 0.993834f, 0.441047f, 0.990451f, 0.799802f, 0.961666f, 0.457168f, 0.709478f, 0.980607f, 0.844829f, 0.405211f, 0.223999f, 0.852146f, 0.773323f, 0.842033f, 0.317416f, 0.397522f, 0.824772f, 0.453149f, 0.0522264f, 0.614552f, 0.81791f, 0.225596f, 0.99387f, 0.0682345f, 0.614353f, 0.742055f, 0.618717f, 0.663419f, 0.321116f, 0.901984f, 0.11989f, 0.235557f, 0.356499f, 0.577774f, 0.555067f, 0.0863137f, 0.472922f, 0.884758f, 0.824288f, 0.498867f, 0.994645f, 0.868219f, 0.6208f, 0.947028f, 0.212622f, 0.59932f, 0.79759f, 0.668395f, 0.427304f, 0.690056f, 0.439286f, 0.0700809f, 0.27491f, 0.0755251f, 0.442506f, 0.657334f, 0.264498f, 0.671154f, 0.166596f, 0.269773f, 0.107788f, 0.349553f, 0.695793f, 0.703822f, 0.215588f, 0.204637f, 0.0798103f, 0.763996f, 0.0612667f, 0.571063f, 0.0526654f, 0.515163f, 0.953367f, 0.775436f, 0.312229f, 0.296158f, 0.900139f, 0.483289f, 0.254503f, 0.935625f, 0.478267f, 0.316831f, 0.115587f, 0.442304f, 0.0596865f, 0.19508f, 0.774136f, 0.988787f, 0.60814f, 0.00981545f, 0.398596f, 0.768476f, 0.906271f, 0.46773f, 0.256136f, 0.618474f, 0.179652f, 0.888705f, 0.586942f, 0.321217f, 0.651605f, 0.862069f, 0.114186f, 0.17861f, 0.0417655f, 0.176729f, 0.42583f, 0.82061f, 0.860383f, 0.193185f, 0.404549f, 0.379155f, 0.485282f, 0.016342f, 0.693068f, 0.125953f, 0.658611f, 0.270833f, 0.285506f, 0.32126f, 0.739323f, 0.437358f, 0.150252f, 0.733181f, 0.690758f, 0.520076f, 0.700211f, 0.579535f, 0.0495254f, 0.283641f, 0.536096f, 0.418035f, 0.63815f, 0.294261f, 0.48992f, 0.734675f, 0.552556f, 0.620045f, 0.589756f, 0.671385f, 0.886652f, 0.0971896f, 0.66922f, 0.695882f, 0.347832f, 0.371098f, 0.856624f, 0.691958f, 0.407796f, 0.932549f, 0.342606f, 0.288123f, 0.489522f, 0.231401f, 0.387611f, 0.0551225f, 0.375943f, 0.224691f, 0.289555f, 0.455238f, 0.0430309f, 0.584177f, 0.146183f, 0.680249f, 0.347606f, 0.763452f, 0.530888f, 0.387532f, 0.282439f, 0.255751f, 0.36775f, 0.925498f, 0.971201f, 0.926978f, 0.627056f, 0.665154f, 0.454747f, 0.341733f, 0.32008f, 0.168399f, 0.423126f, 0.299849f, 0.820325f, 0.723267f, 0.0637205f, 0.918364f, 0.158676f, 0.589659f, 0.316966f, 0.592171f, 0.207242f, 0.661177f, 0.752052f, 0.804279f, 0.292697f, 0.605208f, 0.250544f, 0.125328f, 0.645588f, 0.868387f, 0.857539f, 0.686003f, 0.45299f, 0.536528f, 0.924602f, 0.984829f, 0.255735f, 0.313742f, 0.226247f, 0.185502f, 0.827408f, 0.497741f, 0.848919f, 0.316295f, 0.843783f, 0.710022f, 0.638775f, 0.371836f, 0.164846f, 0.250868f, 0.832528f, 0.335575f, 0.968559f, 0.149633f, 0.203899f, 0.788485f, 0.0398888f, 0.67515f, 0.0586368f, 0.772751f, 0.109719f, 0.762025f, 0.710197f, 0.316576f, 0.594539f, 0.80667f, 0.0368775f, 0.0513186f, 0.970405f, 0.561416f, 0.249725f, 0.585635f, 0.532354f, 0.125889f, 0.156559f, 0.572113f, 0.358728f, 0.600729f, 0.361381f, 0.970288f, 0.851343f, 0.490879f, 0.458854f, 0.0291644f, 0.549936f, 0.301511f, 0.746525f, 0.502274f, 0.835356f, 0.422023f, 0.516765f, 0.96343f, 0.574654f, 0.40334f, 0.265409f, 0.453785f, 0.400419f, 0.17958f, 0.356209f, 0.48938f, 0.565072f, 0.307234f, 0.285915f, 0.647999f, 0.719095f, 0.910425f, 0.823406f, 0.916754f, 0.961534f, 0.779739f, 0.136354f, 0.32201f, 0.332292f, 0.109666f, 0.00891325f, 0.877549f, 0.618466f, 0.063447f, 0.668056f, 0.273041f, 0.327224f, 0.878953f, 0.474336f, 0.503986f, 0.803222f, 0.786647f, 0.244807f, 0.724198f, 0.433548f, 0.0616928f, 0.470861f, 0.39902f, 0.13408f, 0.679739f, 0.1709f, 0.880907f, 0.982239f, 0.688888f, 0.293035f, 0.570804f, 0.382169f, 0.063379f, 0.0784823f, 0.875044f, 0.769845f, 0.225419f, 0.296662f, 0.875628f, 0.344728f, 0.20352f, 0.923303f, 0.331475f, 0.346848f, 0.833991f, 0.685642f, 0.227788f, 0.628054f, 0.262699f, 0.732654f, 0.15477f, 0.327979f, 0.651856f, 0.47106f, 0.636137f, 0.572486f, 0.183852f, 0.104058f, 0.987281f, 0.336027f, 0.72372f, 0.8582f, 0.58961f, 0.743704f, 0.578231f, 0.542347f, 0.423738f, 0.381478f, 0.084426f, 0.662044f, 0.652717f, 0.443199f, 0.392809f, 0.30298f, 0.790753f, 0.328842f, 0.75938f, 0.0488912f, 0.899114f, 0.559141f, 0.0631922f, 0.0118264f, 0.723217f, 0.275262f, 0.136921f, 0.864023f, 0.662238f, 0.306619f, 0.0893467f, 0.888845f, 0.185989f, 0.526927f, 0.0147209f, 0.160433f, 0.775214f, 0.863504f, 0.0621255f, 0.134734f, 0.553247f, 0.241655f, 0.77989f, 0.909935f, 0.721599f, 0.563924f, 0.204608f, 0.393781f, 0.12511f, 0.447523f, 0.324561f, 0.967459f, 0.0631283f, 0.35271f, 0.833536f, 0.852548f, 0.517544f, 0.40873f, 0.646201f, 0.595205f, 0.971308f, 0.166952f, 0.985942f, 0.591575f, 0.244875f, 0.693938f, 0.113778f, 0.759724f, 0.813694f, 0.393444f, 0.343845f, 0.103497f, 0.121951f, 0.233799f, 0.762405f, 0.500507f, 0.919505f, 0.456497f, 0.840675f, 0.604321f, 0.543137f, 0.0211698f, 0.0758669f, 0.12913f, 0.549984f, 0.263862f, 0.0346989f, 0.335107f, 0.835223f, 0.566316f, 0.0244453f, 0.578691f, 0.664038f, 0.650779f, 0.164656f, 0.627452f, 0.722843f, 0.800206f, 0.116107f, 0.0203035f, 0.374407f, 0.965705f, 0.0110325f, 0.998024f, 0.783014f, 0.0832406f, 0.335642f, 0.774395f, 0.371153f, 0.941007f, 0.63636f, 0.0240382f, 0.959488f, 0.923166f, 0.439688f, 0.864186f, 0.699498f, 0.344454f, 0.179774f, 0.936647f, 0.731408f, 0.816577f, 0.687972f, 0.617568f, 0.928552f, 0.971177f, 0.134631f, 0.168535f, 0.699836f, 0.321496f, 0.319605f, 0.618294f, 0.514369f, 0.945269f, 0.88228f, 0.407133f, 0.750522f, 0.205377f, 0.202692f, 0.875734f, 0.951163f, 0.591304f, 0.174682f, 0.34534f, 0.552553f, 0.280804f, 0.363245f, 0.114267f, 0.906492f, 0.882822f, 0.24086f, 0.426481f, 0.235711f, 0.312802f, 0.262856f, 0.936412f, 0.24493f, 0.597656f, 0.659288f, 0.357394f, 0.685456f, 0.791699f, 0.887432f, 0.346623f, 0.111041f, 0.207639f, 0.739972f, 0.419978f, 0.845298f, 0.0778717f, 0.724928f, 0.706066f, 0.860665f, 0.160268f, 0.244845f, 0.463204f, 0.498739f, 0.588374f, 0.368338f, 0.0892011f, 0.107076f, 0.478193f, 0.631327f, 0.811656f, 0.464272f, 0.421894f, 0.137954f, 0.410764f, 0.435121f, 0.24257f, 0.527901f, 0.404133f, 0.0545035f, 0.742448f, 0.442365f, 0.863438f, 0.789441f, 0.394402f, 0.00613398f, 0.867081f, 0.00384251f, 0.511533f, 0.57806f, 0.888777f, 0.0259426f, 0.793212f, 0.609102f, 0.301156f, 0.0877352f, 0.828016f, 0.561448f, 0.0595132f, 0.471967f, 0.893999f, 0.668739f, 0.847616f, 0.743314f, 0.743303f, 0.0722257f, 0.140424f, 0.275918f, 0.625615f, 0.764147f, 0.139934f, 0.725906f, 0.0909708f, 0.698548f, 0.546715f, 0.123564f, 0.610412f, 0.474304f, 0.925668f, 0.0509514f, 0.0574054f, 0.899886f, 0.65906f, 0.999451f, 0.656265f, 0.036704f, 0.878708f, 0.887585f, 0.305513f, 0.367564f, 0.978791f, 0.31831f, 0.669875f, 0.367108f, 0.772971f, 0.0896797f, 0.833546f, 0.793242f, 0.490412f, 0.889564f, 0.0859814f, 0.381787f, 0.00539598f, 0.700407f, 0.131112f, 0.632591f, 0.732806f, 0.816641f, 0.178393f, 0.077443f, 0.973116f, 0.734785f, 0.324847f, 0.528034f, 0.349091f, 0.574272f, 0.89613f, 0.621639f, 0.0487464f, 0.677461f, 0.830756f, 0.657379f, 0.526372f, 0.365305f, 0.369929f, 0.868658f, 0.136915f, 0.507724f, 0.921089f, 0.313955f, 0.350456f, 0.927952f, 0.00628777f, 0.550445f, 0.164051f, 0.730685f, 0.0247993f, 0.1408f, 0.265129f, 0.905673f, 0.779407f, 0.092088f, 0.22462f, 0.578342f, 0.805298f, 0.677176f, 0.9582f, 0.79486f, 0.627776f, 0.662102f, 0.439483f, 0.268846f, 0.189297f, 0.394185f, 0.429062f, 0.614969f, 0.167243f, 0.788504f, 0.0661483f, 0.721089f, 0.774584f, 0.316421f, 0.681918f, 0.245269f, 0.29937f, 0.840421f, 0.722573f, 0.0120884f, 0.265541f, 0.146931f, 0.953688f, 0.562294f, 0.991365f, 0.840994f, 0.720479f, 0.179228f, 0.223416f, 0.458426f, 0.99785f, 0.337146f, 0.816261f, 0.481227f, 0.553636f, 0.297855f, 0.538486f, 0.608309f, 0.721136f, 0.833913f, 0.24333f, 0.910893f, 0.727897f, 0.109237f, 0.593581f, 0.874631f, 0.0709713f, 0.796996f, 0.925099f, 0.586683f, 0.96676f, 0.351985f, 0.751722f, 0.356668f, 0.669211f, 0.489198f, 0.293081f, 0.311791f, 0.924245f, 0.841715f, 0.466269f, 0.889917f, 0.45499f, 0.886618f, 0.529714f, 0.492143f, 0.895005f, 0.320168f, 0.372601f, 0.914721f, 0.0800021f, 0.848954f, 0.00908589f, 0.918013f, 0.281478f, 0.544026f, 0.664106f, 0.0375566f, 0.312872f, 0.0342114f, 0.942924f, 0.138984f, 0.332442f, 0.871673f, 0.525317f, 0.418497f, 0.790423f, 0.723684f, 0.873188f, 0.318098f, 0.467299f, 0.157948f, 0.0454114f, 0.32999f, 0.787019f, 0.884097f, 0.285882f, 0.358632f, 0.144098f, 0.719018f, 0.719071f, 0.697976f, 0.186055f, 0.501236f, 0.884748f, 0.632005f, 0.430949f, 0.387263f, 0.805957f, 0.193986f, 0.347255f, 0.0570445f, 0.006797f, 0.500401f, 0.294487f, 0.0680388f, 0.805326f, 0.181984f, 0.0501751f, 0.0766015f, 0.526423f, 0.188243f, 0.414886f, 0.592165f, 0.753081f, 0.730982f, 0.165123f, 0.107674f, 0.423133f, 0.228369f, 0.224986f, 0.577592f, 0.635908f, 0.943174f, 0.335085f, 0.836889f, 0.342952f, 0.167118f, 0.624525f, 0.856313f, 0.921166f, 0.801291f, 0.758801f, 0.637488f, 0.680047f, 0.303448f, 0.869554f, 0.290099f, 0.474593f, 0.672515f, 0.0637003f, 0.186288f, 0.625233f, 0.399161f, 0.722362f, 0.423572f, 0.942582f, 0.0886553f, 0.212074f, 0.0391753f, 0.861589f, 0.400305f, 0.10486f, 0.384078f, 0.202166f, 0.672622f, 0.91722f, 0.603885f, 0.672414f, 0.846603f, 0.333102f, 0.486922f, 0.907598f, 0.867504f, 0.56478f, 0.767009f, 0.848718f, 0.124062f, 0.551917f, 0.941137f, 0.346769f, 0.657047f, 0.289148f, 0.388219f, 0.626385f, 0.697405f, 0.0377644f, 0.908079f, 0.668569f, 0.119673f, 0.215121f, 0.376058f, 0.0374965f, 0.386697f, 0.563823f, 0.885494f, 0.243946f, 0.355869f, 0.257652f, 0.046335f, 0.916384f, 0.680229f, 0.464651f, 0.709885f, 0.484906f, 0.91259f, 0.498101f, 0.223619f, 0.153989f, 0.111489f, 0.505192f, 0.601299f, 0.564115f, 0.898977f, 0.600714f, 0.444093f, 0.538388f, 0.330582f, 0.12034f, 0.0536305f, 0.0222202f, 0.742813f, 0.546253f, 0.791928f, 0.069975f, 0.196255f, 0.765296f, 0.205934f, 0.893889f, 0.844343f, 0.777305f, 0.937906f, 0.392683f, 0.414534f, 0.0414895f, 0.387903f, 0.954064f, 0.802791f, 0.537087f, 0.532209f, 0.887904f, 0.594908f, 0.586865f, 0.0547664f, 0.40019f, 0.481301f, 0.709963f, 0.0121169f, 0.828262f, 0.965955f, 0.949611f, 0.65088f, 0.448005f, 0.993904f, 0.164882f, 0.354858f, 0.367886f, 0.426567f, 0.687085f, 0.605885f, 0.508063f, 0.58993f, 0.248294f, 0.74219f, 0.969719f, 0.202111f, 0.89544f, 0.583348f, 0.823776f, 0.439039f, 0.421996f, 0.720746f, 0.897236f, 0.374662f, 0.872577f, 0.105817f, 0.720689f, 0.824346f, 0.158175f, 0.395905f, 0.100654f, 0.707863f, 0.423092f, 0.157991f, 0.156658f, 0.702542f, 0.296186f, 0.458731f, 0.150583f, 0.885817f, 0.199738f, 0.898556f, 0.716553f, 0.420452f, 0.31157f, 0.149567f, 0.683278f, 0.46182f, 0.718851f, 0.244332f, 0.33307f, 0.757627f, 0.553181f, 0.311749f, 0.123247f, 0.919328f, 0.847211f, 0.0841077f, 0.898785f, 0.0570432f, 0.779025f, 0.330567f, 0.559177f, 0.25126f, 0.82179f, 0.0735284f, 0.657439f, 0.0731305f, 0.0511692f, 0.280545f, 0.0772603f, 0.676196f, 0.293328f, 0.115305f, 0.891287f, 0.679459f, 0.174581f, 0.695196f, 0.123975f, 0.785274f, 0.242571f, 0.479348f, 0.765869f, 0.336896f, 0.782724f, 0.708965f, 0.775772f, 0.772306f, 0.736247f, 0.8866f, 0.873607f, 0.905697f, 0.765402f, 0.161844f, 0.960967f, 0.972999f, 0.422707f, 0.8069f, 0.948782f, 0.565063f, 0.693451f, 0.602445f, 0.814243f, 0.916487f, 0.268815f, 0.95423f, 0.546828f, 0.277289f, 0.946279f, 0.646002f, 0.093949f, 0.782924f, 0.274266f, 0.993749f, 0.910229f, 0.0989096f, 0.35894f, 0.274044f, 0.384003f, 0.338796f, 0.0555018f, 0.726783f, 0.908397f, 0.405586f, 0.0936273f, 0.957714f, 0.888016f, 0.874309f, 0.793413f, 0.871222f, 0.518545f, 0.972874f, 0.0078246f, 0.985028f, 0.984621f, 0.590917f, 0.386753f, 0.585227f, 0.381218f, 0.625137f, 0.100634f, 0.919112f, 0.293435f, 0.495189f, 0.510776f, 0.298816f, 0.095965f, 0.103011f, 0.447301f, 0.125291f, 0.928486f, 0.882791f, 0.783282f, 0.00272597f, 0.68653f, 0.108257f, 0.946475f, 0.496814f, 0.328259f, 0.104734f, 0.619026f, 0.34315f, 0.0453975f, 0.755696f, 0.962885f, 0.239685f, 0.187631f, 0.964565f, 0.765593f, 0.672336f, 0.090252f, 0.210921f, 0.680636f, 0.218681f, 0.0107781f, 0.522013f, 0.325851f, 0.1911f, 0.420952f, 0.029574f, 0.351209f, 0.129009f, 0.563426f, 0.227105f, 0.07612f, 0.487968f, 0.83752f, 0.735883f, 0.666915f, 0.445869f, 0.791671f, 0.281661f, 0.928018f, 0.669721f, 0.682338f, 0.79125f, 0.356164f, 0.462099f, 0.855418f, 0.214802f, 0.902109f, 0.953848f, 0.410862f, 0.36956f, 0.421996f, 0.934848f, 0.106823f, 0.308401f, 0.14928f, 0.72386f, 0.0378415f, 0.663265f, 0.00682835f, 0.633184f, 0.534593f, 0.0156501f, 0.151601f, 0.211653f, 0.468096f, 0.905673f, 0.805541f, 0.749493f, 0.208294f, 0.97087f, 0.943601f, 0.969517f, 0.384328f, 0.922651f, 0.940334f, 0.204516f, 0.715793f, 0.26435f, 0.89528f, 0.855626f, 0.9497f, 0.379236f, 0.668378f, 0.852895f, 0.187018f, 0.975123f, 0.506262f, 0.0583515f, 0.0810914f, 0.47934f, 0.00242032f, 0.768933f, 0.557646f, 0.43155f, 0.112644f, 0.78149f, 0.854212f, 0.843992f, 0.849422f, 0.611063f, 0.182226f, 0.330712f, 0.180957f, 0.819837f, 0.802097f, 0.422339f, 0.297575f, 0.172512f, 0.0700954f, 0.972202f, 0.101391f, 0.507276f, 0.0169995f, 0.0254523f, 0.954711f, 0.10593f, 0.883098f, 0.346894f, 0.751155f, 0.244221f, 0.416072f, 0.824888f, 0.904692f, 0.125086f, 0.185577f, 0.19544f, 0.723256f, 0.24917f, 0.48036f, 0.973321f, 0.0213415f, 0.441908f, 0.433604f, 0.74882f, 0.148368f, 0.0724756f, 0.856612f, 0.523868f, 0.9712f, 0.558063f, 0.982476f, 0.0572319f, 0.653012f, 0.346464f, 0.933288f, 0.876528f, 0.421949f, 0.0778321f, 0.197076f, 0.18523f, 0.155189f, 0.824885f, 0.153041f, 0.352194f, 0.714309f, 0.0207662f, 0.0519233f, 0.549587f, 0.521096f, 0.529766f, 0.927778f, 0.210935f, 0.803238f, 0.451755f, 0.799907f, 0.21564f, 0.95605f, 0.9331f, 0.845079f, 0.029185f, 0.655086f, 0.359136f, 0.59256f, 0.279384f, 0.297993f, 0.464518f, 0.449132f, 0.829833f, 0.485665f, 0.661307f, 0.203452f, 0.053043f, 0.897858f, 0.606581f, 0.831515f, 0.334763f, 0.437941f, 0.406986f, 0.975581f, 0.456347f, 0.579385f, 0.0273983f, 0.470545f, 0.446877f, 0.611386f, 0.449618f, 0.0843964f, 0.0108698f, 0.306468f, 0.059336f, 0.550231f, 0.336181f, 0.531002f, 0.152256f, 0.824983f, 0.345761f, 0.135409f, 0.885335f, 0.665116f, 0.669245f, 0.538414f, 0.0691357f, 0.536132f, 0.29768f, 0.414128f, 0.745982f, 0.629456f, 0.325496f, 0.853354f, 0.973727f, 0.176844f, 0.113371f, 0.286286f, 0.468106f, 0.0649777f, 0.526946f, 0.785171f, 0.766632f, 0.0625148f, 0.438023f, 0.693556f, 0.846619f, 0.706524f, 0.334763f, 0.0467728f, 0.297823f, 0.985897f, 0.150503f, 0.915487f, 0.951665f, 0.972201f, 0.700895f, 0.216043f, 0.662013f, 0.797464f, 0.473218f, 0.994398f, 0.906182f, 0.459944f, 0.966297f, 0.233741f, 0.136611f, 0.961101f, 0.842715f, 0.818375f, 0.697074f, 0.386101f, 0.360208f, 0.261699f, 0.95886f, 0.309039f, 0.0493484f, 0.153351f, 0.752365f, 0.792846f, 0.940465f, 0.37238f, 0.314019f, 0.0514882f, 0.821461f, 0.844165f, 0.493629f, 0.988331f, 0.368021f, 0.38424f, 0.92453f, 0.229737f, 0.958241f, 0.702214f, 0.405154f, 0.560592f, 0.597024f, 0.786127f, 0.0597326f, 0.0428245f, 0.297238f, 0.49482f, 0.399929f, 0.724312f, 0.107373f, 0.36756f, 0.325617f, 0.981816f, 0.485813f, 0.633366f, 0.711929f, 0.873733f, 0.638776f, 0.109222f, 0.430409f, 0.774384f, 0.974168f, 0.104081f, 0.590271f, 0.129647f, 0.133071f, 0.341982f, 0.298487f, 0.509727f, 0.256758f, 0.0396291f, 0.661724f, 0.503199f, 0.105958f, 0.187221f, 0.312695f, 0.993555f, 0.127059f, 0.0448764f, 0.855391f, 0.702581f, 0.0203665f, 0.827487f, 0.289003f, 0.499851f, 0.383601f, 0.677723f, 0.809673f, 0.382683f, 0.904806f, 0.991494f, 0.951881f, 0.520166f, 0.901293f, 0.747227f, 0.423873f, 0.481918f, 0.427671f, 0.326114f, 0.341688f, 0.685606f, 0.518872f, 0.530867f, 0.835228f, 0.810857f, 0.620203f, 0.507715f, 0.632993f, 0.82505f, 0.578728f, 0.700222f, 0.83451f, 0.492908f, 0.638573f, 0.573057f, 0.00891188f, 0.713448f, 0.925986f, 0.0393316f, 0.0335817f, 0.790412f, 0.0323502f, 0.307637f, 0.352329f, 0.922402f, 0.516065f, 0.861165f, 0.806933f, 0.678143f, 0.772472f, 0.367841f, 0.902365f, 0.71558f, 0.458232f, 0.967204f, 0.179482f, 0.0361507f, 0.94922f, 0.162945f, 0.628609f, 0.877003f, 0.470757f, 0.410595f, 0.0216603f, 0.460343f, 0.858546f, 0.363512f, 0.607368f, 0.515995f, 0.530213f, 0.0367822f, 0.532001f, 0.571669f, 0.397947f, 0.487743f, 0.213033f, 0.749217f, 0.8274f, 0.737503f, 0.657423f, 0.0312227f, 0.781163f, 0.886139f, 0.331717f, 0.55673f, 0.986234f, 0.253588f, 0.810303f, 0.520106f, 0.419689f, 0.0699049f, 0.153596f, 0.794232f, 0.0483519f, 0.83783f, 0.597201f, 0.516072f, 0.844409f, 0.385921f, 0.611924f, 0.955325f, 0.519208f, 0.373878f, 0.629046f, 0.690831f, 0.697245f, 0.119742f, 0.056846f, 0.456071f, 0.799117f, 0.527102f, 0.150697f, 0.842322f, 0.214973f, 0.744237f, 0.456457f, 0.482834f, 0.745881f, 0.411206f, 0.617174f, 0.420588f, 0.286817f, 0.0496779f, 0.730341f, 0.34842f, 0.250543f, 0.740527f, 0.303643f, 0.281129f, 0.1872f, 0.4808f, 0.716071f, 0.983636f, 0.449663f, 0.698014f, 0.73312f, 0.622484f, 0.85485f, 0.409041f, 0.720464f, 0.675804f, 0.559418f, 0.920296f, 0.754098f, 0.638082f, 0.234053f, 0.018729f, 0.362872f, 0.652148f, 0.620817f, 0.369305f, 0.38631f, 0.930427f, 0.641007f, 0.109921f, 0.623183f, 0.352949f, 0.874117f, 0.448717f, 0.455285f, 0.345244f, 0.451122f, 0.948271f, 0.556486f, 0.602188f, 0.776034f, 0.482165f, 0.7329f, 0.197306f, 0.0657418f, 0.0654793f, 0.5727f, 0.807578f, 0.999897f, 0.161097f, 0.509372f, 0.61751f, 0.0745205f, 0.678902f, 0.179759f, 0.159726f, 0.587556f, 0.3301f, 0.491297f, 0.921946f, 0.985123f, 0.86514f, 0.881982f, 0.566821f, 0.621254f, 0.103478f, 0.788699f, 0.904587f, 0.877758f, 0.643877f, 0.153881f, 0.524796f, 0.375401f, 0.951869f, 0.948358f, 0.833498f, 0.593298f, 0.0201101f, 0.126275f, 0.765023f, 0.904025f, 0.648421f, 0.707049f, 0.0150131f, 0.7442f, 0.5978f, 0.925498f, 0.310578f, 0.151377f, 0.90317f, 0.540783f, 0.159372f, 0.602278f, 0.358967f, 0.514979f, 0.557601f, 0.848365f, 0.61464f, 0.369268f, 0.684617f, 0.872303f, 0.136651f, 0.611522f, 0.869738f, 0.512325f, 0.217256f, 0.178135f, 0.223219f, 0.0219734f, 0.756035f, 0.245299f, 0.210532f, 0.133664f, 0.341583f, 0.316551f, 0.723035f, 0.551892f, 0.734721f, 0.0922746f, 0.946082f, 0.967512f, 0.578441f, 0.132522f, 0.717207f, 0.624223f, 0.760253f, 0.184065f, 0.990692f, 0.566182f, 0.14733f, 0.861481f, 0.801199f, 0.263972f, 0.374555f, 0.258605f, 0.67979f, 0.201417f, 0.715122f, 0.570144f, 0.566226f, 0.158468f, 0.04718f, 0.0937663f, 0.266541f, 0.601237f, 0.69566f, 0.144284f, 0.9475f, 0.474596f, 0.0888045f, 0.416191f, 0.702359f, 0.867205f, 0.424696f, 0.591265f, 0.908696f, 0.257274f, 0.648302f, 0.198409f, 0.695839f, 0.931819f, 0.660077f, 0.215693f, 0.45629f, 0.894729f, 0.983438f, 0.183173f, 0.56049f, 0.539245f, 0.996379f, 0.370151f, 0.250879f, 0.402447f, 0.432257f, 0.0674984f, 0.31702f, 0.731698f, 0.668893f, 0.808452f, 0.109053f, 0.508808f, 0.342527f, 0.513582f, 0.123082f, 0.785695f, 0.732745f, 0.268861f, 0.250659f, 0.545527f, 0.857127f, 0.41173f, 0.804247f, 0.111304f, 0.413358f, 0.296181f, 0.672227f, 0.115622f, 0.225399f, 0.864891f, 0.962351f, 0.814655f, 0.521629f, 0.396566f, 0.552732f, 0.19779f, 0.156093f, 0.384171f, 0.253139f, 0.722354f, 0.599587f, 0.411506f, 0.288726f, 0.129142f, 0.326284f, 0.528871f, 0.231405f, 0.931537f, 0.910982f, 0.74273f, 0.179939f, 0.393404f, 0.204973f, 0.700174f, 0.602977f, 0.562797f, 0.792018f, 0.0424811f, 0.235302f, 0.992325f, 0.176502f, 0.554295f, 0.0324226f, 0.284686f, 0.00700358f, 0.325967f, 0.340064f, 0.383622f, 0.296746f, 0.387355f, 0.990186f, 0.108578f, 0.221806f, 0.64229f, 0.818318f, 0.312632f, 0.867823f, 0.883808f, 0.599856f, 0.509203f, 0.0152882f, 0.136774f, 0.848128f, 0.213386f, 0.487014f, 0.95346f, 0.789232f, 0.611782f, 0.426443f, 0.405727f, 0.86852f, 0.305588f, 0.195924f, 0.695828f, 0.935965f, 0.641291f, 0.688478f, 0.813829f, 0.615355f, 0.735923f, 0.42909f, 0.541464f, 0.346598f, 0.25247f, 0.673428f, 0.981367f, 0.997846f, 0.297658f, 0.0142858f, 0.80571f, 0.267435f, 0.377597f, 0.81435f, 0.492265f, 0.628247f, 0.187726f, 0.11812f, 0.716165f, 0.694685f, 0.346032f, 0.913525f, 0.253758f, 0.515381f, 0.214674f, 0.956031f, 0.957614f, 0.0872555f, 0.199956f, 0.430683f, 0.157594f, 0.562096f, 0.392935f, 0.511123f, 0.920476f, 0.868776f, 0.576936f, 0.0278721f, 0.219658f, 0.774331f, 0.625886f, 0.0082881f, 0.997553f, 0.329826f, 0.832248f, 0.996308f, 0.388564f, 0.729274f, 0.323474f, 0.425097f, 0.301228f, 0.299065f, 0.983669f, 0.400248f, 0.503789f, 0.813026f, 0.136986f, 0.151817f, 0.729839f, 0.764368f, 0.0280042f, 0.264067f, 0.900445f, 0.231267f, 0.502126f, 0.565454f, 0.843213f, 0.579648f, 0.789364f, 0.669677f, 0.04461f, 0.684907f, 0.425413f, 0.288632f, 0.00395595f, 0.542435f, 0.216071f, 0.18917f, 0.970851f, 0.419426f, 0.237613f, 0.730309f, 0.199577f, 0.732611f, 0.744815f, 0.58676f, 0.671423f, 0.494676f, 0.225424f, 0.70758f, 0.996235f, 0.964135f, 0.802666f, 0.312883f, 0.135183f, 0.846743f, 0.260284f, 0.716979f, 0.567487f, 0.0730147f, 0.542468f, 0.659719f, 0.155479f, 0.770085f, 0.992266f, 0.353544f, 0.774101f, 0.965537f, 0.998775f, 0.34354f, 0.0773092f, 0.453505f, 0.669693f, 0.353933f, 0.753243f, 0.944286f, 0.652485f, 0.737946f, 0.392414f, 0.325862f, 0.728856f, 0.83094f, 0.749988f, 0.801557f, 0.613172f, 0.808371f, 0.986402f, 0.715234f, 0.240682f, 0.392313f, 0.891651f, 0.259872f, 0.0986346f, 0.86297f, 0.106848f, 0.776397f, 0.553577f, 0.215339f, 0.0441361f, 0.265432f, 0.0720464f, 0.284713f, 0.0283263f, 0.53634f, 0.493958f, 0.476731f, 0.0943269f, 0.773665f, 0.991534f, 0.50939f, 0.335962f, 0.06123f, 0.417067f, 0.800443f, 0.519171f, 0.427361f, 0.217762f, 0.0510568f, 0.36815f, 0.563254f, 0.854689f, 0.335899f, 0.171498f, 0.548312f, 0.195189f, 0.0535248f, 0.865462f, 0.87322f, 0.866146f, 0.85746f, 0.102272f, 0.150039f, 0.0667764f, 0.445532f, 0.170749f, 0.406866f, 0.75219f, 0.969756f, 0.816015f, 0.35656f, 0.071648f, 0.612682f, 0.153806f, 0.150379f, 0.58119f, 0.54882f, 0.376379f, 0.555642f, 0.97008f, 0.252967f, 0.10617f, 0.38813f, 0.256052f, 0.606034f, 0.330212f, 0.385566f, 0.508587f, 0.750938f, 0.031118f, 0.423059f, 0.244267f, 0.20265f, 0.787553f, 0.366797f, 0.711147f, 0.505731f, 0.757017f, 0.45655f, 0.651996f, 0.284821f, 0.0598917f, 0.99037f, 0.931341f, 0.112815f, 0.0909045f, 0.187748f, 0.791663f, 0.827594f, 0.804124f, 0.925645f, 0.887251f, 0.393529f, 0.191947f, 0.408688f, 0.804312f, 0.66514f, 0.115176f, 0.285518f, 0.204117f, 0.157981f, 0.463733f, 0.479301f, 0.856981f, 0.937528f, 0.411315f, 0.863007f, 0.699701f, 0.229089f, 0.950686f, 0.867727f, 0.971115f, 0.885927f, 0.844345f, 0.076912f, 0.869651f, 0.76921f, 0.0378565f, 0.622212f, 0.493562f, 0.608605f, 0.831141f, 0.971259f, 0.905759f, 0.874348f, 0.69186f, 0.148418f, 0.337865f, 0.22719f, 0.412224f, 0.186524f, 0.814085f, 0.692819f, 0.586107f, 0.345021f, 0.872031f, 0.185449f, 0.00439599f, 0.335658f, 0.0405403f, 0.741025f, 0.725927f, 0.154015f, 0.137111f, 0.0232265f, 0.930676f, 0.654835f, 0.908547f, 0.094071f, 0.990514f, 0.437413f, 0.743797f, 0.00788466f, 0.446104f, 0.246498f, 0.666793f, 0.819619f, 0.102986f, 0.852622f, 0.788565f, 0.62364f, 0.791175f, 0.42685f, 0.0765536f, 0.100236f, 0.446536f, 0.33308f, 0.905593f, 0.584922f, 0.0234402f, 0.895991f, 0.595334f, 0.681095f, 0.407522f, 0.546711f, 0.57838f, 0.888381f, 0.288598f, 0.899159f, 0.270344f, 0.813493f, 0.655682f, 0.578521f, 0.467381f, 0.691264f, 0.716711f, 0.504354f, 0.141709f, 0.422382f, 0.40133f, 0.346244f, 0.171395f, 0.605301f, 0.869774f, 0.495527f, 0.705591f, 0.561917f, 0.776828f, 0.0685969f, 0.73957f, 0.647541f, 0.608498f, 0.924928f, 0.947169f, 0.456873f, 0.00828233f, 0.0954775f, 0.700587f, 0.520686f, 0.257912f, 0.92712f, 0.326307f, 0.821409f, 0.981017f, 0.0119735f, 0.870095f, 0.265674f, 0.122687f, 0.125838f, 0.255999f, 0.593459f, 0.239397f, 0.0350162f, 0.743425f, 0.985695f, 0.291538f, 0.507485f, 0.272803f, 0.541422f, 0.653463f, 0.402406f, 0.627482f, 0.12628f, 0.749723f, 0.115818f, 0.35766f, 0.501103f, 0.606518f, 0.907292f, 0.489708f, 0.141918f, 0.211133f, 0.233792f, 0.138817f, 0.0188088f, 0.425801f, 0.396851f, 0.817976f, 0.917922f, 0.89365f, 0.465329f, 0.69366f, 0.987449f, 0.899463f, 0.785092f, 0.204321f, 0.461154f, 0.410804f, 0.388639f, 0.0825985f, 0.135478f, 0.20132f, 0.422745f, 0.390548f, 0.489493f, 0.253859f, 0.482277f, 0.666313f, 0.839463f, 0.405183f, 0.55627f, 0.100002f, 0.895627f, 0.721706f, 0.628305f, 0.0710177f, 0.160533f, 0.22906f, 0.730038f, 0.616375f, 0.352401f, 0.201681f, 0.197307f, 0.81351f, 0.982901f, 0.576121f, 0.835851f, 0.813159f, 0.405018f, 0.981582f, 0.757436f, 0.311719f, 0.48819f, 0.0826216f, 0.990143f, 0.699225f, 0.189513f, 0.504728f, 0.686396f, 0.527798f, 0.183832f, 0.843663f, 0.286397f, 0.694677f, 0.535705f, 0.0570376f, 0.615431f, 0.0534782f, 0.415158f, 0.909671f, 0.215951f, 0.160384f, 0.56208f, 0.326519f, 0.0202129f, 0.986293f, 0.598507f, 0.533435f, 0.731775f, 0.938914f, 0.501171f, 0.451895f, 0.665232f, 0.387985f, 0.505002f, 0.250808f, 0.701774f, 0.383783f, 0.798534f, 0.218294f, 0.402173f, 0.516096f, 0.997964f, 0.222554f, 0.853627f, 0.263625f, 0.451092f, 0.520025f, 0.756755f, 0.668227f, 0.420038f, 0.967938f, 0.175036f, 0.459307f, 0.967397f, 0.509015f, 0.159399f, 0.436078f, 0.532903f, 0.0923253f, 0.749582f, 0.427083f, 0.128942f, 0.766158f, 0.287336f, 0.570364f, 0.216147f, 0.477547f, 0.695998f, 0.547537f, 0.942974f, 0.0292585f, 0.589732f, 0.513919f, 0.615032f, 0.0166233f, 0.381025f, 0.585116f, 0.438534f, 0.240048f, 0.656944f, 0.828787f, 0.260304f, 0.0184595f, 0.676453f, 0.421382f, 0.746309f, 0.737324f, 0.307824f, 0.359532f, 0.438462f, 0.0557004f, 0.384388f, 0.351528f, 0.258295f, 0.677667f, 0.809185f, 0.0118964f, 0.679571f, 0.186422f, 0.132335f, 0.553132f, 0.856355f, 0.337596f, 0.174414f, 0.00509927f, 0.44934f, 0.327064f, 0.790492f, 0.398911f, 0.574262f, 0.153893f, 0.514169f, 0.691686f, 0.858967f, 0.573273f, 0.668025f, 0.979862f, 0.893851f, 0.657798f, 0.0585913f, 0.589984f, 0.0942525f, 0.372763f, 0.285639f, 0.14401f, 0.263325f, 0.463679f, 0.527697f, 0.446536f, 0.360917f, 0.384701f, 0.0506526f, 0.721321f, 0.597825f, 0.0214683f, 0.11416f, 0.700745f, 0.79477f, 0.0921258f, 0.785929f, 0.0259505f, 0.194054f, 0.305135f, 0.432538f, 0.599081f, 0.281118f, 0.5734f, 0.724326f, 0.400447f, 0.22191f, 0.438663f, 0.133757f, 0.0668173f, 0.478327f, 0.995522f, 0.545614f, 0.293205f, 0.663079f, 0.86955f, 0.150913f, 0.363281f, 0.193324f, 0.450551f, 0.220092f, 0.426935f, 0.183398f, 0.926087f, 0.00888572f, 0.00780228f, 0.814242f, 0.790096f, 0.137877f, 0.211914f, 0.667349f, 0.494069f, 0.655491f, 0.362551f, 0.054272f, 0.881904f, 0.0506702f, 0.676432f, 0.181077f, 0.573144f, 0.836107f, 0.773527f, 0.984899f, 0.23801f, 0.821837f, 0.941972f, 0.867295f, 0.123919f, 0.333527f, 0.285781f, 0.263757f, 0.904559f, 0.544361f, 0.509233f, 0.605513f, 0.663093f, 0.79277f, 0.62842f, 0.304771f, 0.783085f, 0.186073f, 0.43221f, 0.529232f, 0.0314923f, 0.994417f, 0.576632f, 0.0437377f, 0.733374f, 0.932039f, 0.125679f, 0.451923f, 0.79018f, 0.477478f, 0.483779f, 0.532409f, 0.27873f, 0.875928f, 0.571014f, 0.583013f, 0.891833f, 0.620377f, 0.271269f, 0.330521f, 0.979837f, 0.700779f, 0.249666f, 0.951454f, 0.240501f, 0.749557f, 0.126723f, 0.347458f, 0.563714f, 0.825771f, 0.0300354f, 0.183928f, 0.428681f, 0.953028f, 0.631215f, 0.965704f, 0.273817f, 0.265083f, 0.430852f, 0.417258f, 0.613196f, 0.423968f, 0.0680174f, 0.638343f, 0.363991f, 0.169832f, 0.0779664f, 0.495797f, 0.0923707f, 0.0147055f, 0.647875f, 0.998512f, 0.880195f, 0.665924f, 0.222713f, 0.552008f, 0.906499f, 0.952438f, 0.316669f, 0.497773f, 0.606909f, 0.0373035f, 0.973113f, 0.749352f, 0.672115f, 0.0371679f, 0.0221643f, 0.153936f, 0.324902f, 0.116732f, 0.199502f, 0.453173f, 0.140486f, 0.857874f, 0.500424f, 0.561531f, 0.646703f, 0.0439429f, 0.947895f, 0.161695f, 0.637395f, 0.682654f, 0.0346284f, 0.040631f, 0.429956f, 0.46522f, 0.801661f, 0.399987f, 0.0208613f, 0.348847f, 0.475412f, 0.796777f, 0.540579f, 0.357489f, 0.0746613f, 0.213067f, 0.761432f, 0.0143938f, 0.646772f, 0.919113f, 0.255361f, 0.979193f, 0.868147f, 0.154713f, 0.778923f, 0.286271f, 0.428898f, 0.857063f, 0.00948257f, 0.772213f, 0.907271f, 0.843089f, 0.230618f, 0.9172f, 0.943433f, 0.368784f, 0.0593151f, 0.197673f, 0.935532f, 0.0678369f, 0.940027f, 0.08405f, 0.547681f, 0.507156f, 0.884479f, 0.719812f, 0.722796f, 0.819992f, 0.0880767f, 0.143816f, 0.470205f, 0.363248f, 0.260774f, 0.471419f, 0.315017f, 0.085655f, 0.850258f, 0.952386f, 0.116359f, 0.905662f, 0.376133f, 0.247312f, 0.375566f, 0.0750932f, 0.750727f, 0.600567f, 0.38088f, 0.260095f, 0.122676f, 0.416322f, 0.344845f, 0.271798f, 0.864271f, 0.863079f, 0.57887f, 0.0920866f, 0.763279f, 0.378082f, 0.575777f, 0.487278f, 0.377556f, 0.415196f, 0.816426f, 0.978372f, 0.774955f, 0.306551f, 0.936601f, 0.242495f, 0.380497f, 0.0283852f, 0.429017f, 0.187186f, 0.940919f, 0.868282f, 0.132747f, 0.427618f, 0.0868148f, 0.449171f, 0.157487f, 0.855666f, 0.743791f, 0.565989f, 0.0300736f, 0.153334f, 0.286405f, 0.976528f, 0.542745f, 0.973117f, 0.327521f, 0.500886f, 0.362997f, 0.905621f, 0.530701f, 0.670396f, 0.264269f, 0.0230654f, 0.332958f, 0.34225f, 0.114581f, 0.160618f, 0.626045f, 0.897061f, 0.0454061f, 0.463853f, 0.994645f, 0.455889f, 0.569284f, 0.538186f, 0.293597f, 0.854565f, 0.729241f, 0.868935f, 0.32124f, 0.680401f, 0.30655f, 0.976241f, 0.947252f, 0.43007f, 0.93592f, 0.813614f, 0.129284f, 0.299743f, 0.443032f, 0.111744f, 0.814934f, 0.126161f, 0.234231f, 0.42606f, 0.182855f, 0.49952f, 0.947077f, 0.519476f, 0.127596f, 0.58245f, 0.685402f, 0.323423f, 0.845971f, 0.170554f, 0.106695f, 0.247107f, 0.84115f, 0.538526f, 0.990646f, 0.750535f, 0.515641f, 0.666909f, 0.805849f, 0.375607f, 0.108081f, 0.706109f, 0.45729f, 0.852729f, 0.398563f, 0.633165f, 0.445097f, 0.88811f, 0.115462f, 0.391862f, 0.77775f, 0.662464f, 0.310253f, 0.65022f, 0.383526f, 0.866334f, 0.477081f, 0.750928f, 0.904093f, 0.955062f, 0.855731f, 0.381278f, 0.986175f, 0.119963f, 0.0139481f, 0.867997f, 0.980113f, 0.0376974f, 0.67347f, 0.735159f, 0.289926f, 0.783574f, 0.384761f, 0.232743f, 0.298739f, 0.511803f, 0.0774394f, 0.282291f, 0.835873f, 0.385259f, 0.692952f, 0.475552f, 0.820027f, 0.241047f, 0.25828f, 0.596372f, 0.655784f, 0.493115f, 0.36083f, 0.296977f, 0.325491f, 0.300083f, 0.214548f, 0.520312f, 0.224524f, 0.157033f, 0.505183f, 0.567012f, 0.0926136f, 0.709242f, 0.910198f, 0.941818f, 0.806985f, 0.578555f, 0.442866f, 0.74562f, 0.512557f, 0.889682f, 0.988818f, 0.245681f, 0.377054f, 0.954408f, 0.383965f, 0.188972f, 0.529379f, 0.815615f, 0.562475f, 0.847996f, 0.776091f, 0.151217f, 0.380486f, 0.713626f, 0.539941f, 0.260308f, 0.828106f, 0.842803f, 0.559088f, 0.369566f, 0.551427f, 0.158416f, 0.476782f, 0.966928f, 0.928356f, 0.501102f, 0.99043f, 0.0912297f, 0.818995f, 0.820435f, 0.887529f, 0.236475f, 0.986218f, 0.419954f, 0.043222f, 0.566057f, 0.605133f, 0.02538f, 0.486661f, 0.71177f, 0.580676f, 0.61295f, 0.804704f, 0.113879f, 0.96885f, 0.345662f, 0.200206f, 0.10503f, 0.362518f, 0.334527f, 0.323805f, 0.447663f, 0.747838f, 0.786654f, 0.420119f, 0.526687f, 0.0287588f, 0.693505f, 0.423247f, 0.061824f, 0.887531f, 0.325806f, 0.00556715f, 0.75787f, 0.21453f, 0.851873f, 0.551226f, 0.450655f, 0.550821f, 0.24018f, 0.482584f, 0.195766f, 0.22553f, 0.707355f, 0.379226f, 0.096144f, 0.607049f, 0.905306f, 0.734175f, 0.667554f, 0.392769f, 0.39463f, 0.67916f, 0.281361f, 0.66691f, 0.117686f, 0.826537f, 0.200226f, 0.731425f, 0.926141f, 0.515001f, 0.367618f, 0.588697f, 0.440898f, 0.69464f, 0.467509f, 0.499914f, 0.467499f, 0.451169f, 0.0231868f, 0.22663f, 0.457808f, 0.0399817f, 0.323167f, 0.721905f, 0.0529664f, 0.169948f, 0.673992f, 0.466347f, 0.385812f, 0.785695f, 0.84239f, 0.319007f, 0.820188f, 0.234389f, 0.625299f, 0.0252847f, 0.59125f, 0.456074f, 0.37046f, 0.384022f, 0.56234f, 0.181446f, 0.712361f, 0.54405f, 0.263049f, 0.635011f, 0.951016f, 0.3358f, 0.879353f, 0.0831292f, 0.0842165f, 0.0232483f, 0.395973f, 0.785624f, 0.585341f, 0.567839f, 0.404285f, 0.29226f, 0.748867f, 0.393779f, 0.213787f, 0.149072f, 0.109442f, 0.736842f, 0.564606f, 0.331428f, 0.291899f, 0.675978f, 0.836395f, 0.706679f, 0.564943f, 0.12472f, 0.808345f, 0.30535f, 0.275445f, 0.298057f, 0.279457f, 0.97645f, 0.816883f, 0.914561f, 0.892189f, 0.77112f, 0.613258f, 0.783793f, 0.502306f, 0.205586f, 0.4358f, 0.340456f, 0.426298f, 0.313759f, 0.225679f, 0.438416f, 0.930064f, 0.882277f, 0.725139f, 0.54135f, 0.354032f, 0.632378f, 0.665131f, 0.910576f, 0.338133f, 0.413062f, 0.148235f, 0.4137f, 0.201197f, 0.927081f, 0.572361f, 0.142785f, 0.588912f, 0.599713f, 0.719765f, 0.108914f, 0.745517f, 0.978794f, 0.748982f, 0.349309f, 0.929206f, 0.549384f, 0.492809f, 0.258113f, 0.878477f, 0.953323f, 0.889002f, 0.495883f, 0.952265f, 0.322544f, 0.504439f, 0.978133f, 0.706179f, 0.357271f, 0.564249f, 0.532395f, 0.697648f, 0.760478f, 0.181389f, 0.159854f, 0.796149f, 0.102953f, 0.829313f, 0.579002f, 0.195884f, 0.929353f, 0.454893f, 0.330432f, 0.556409f, 0.226399f, 0.19401f, 0.781442f, 0.00908038f, 0.342131f, 0.612928f, 0.107233f, 0.898847f, 0.905318f, 0.625553f, 0.429657f, 0.377211f, 0.362926f, 0.775476f, 0.664609f, 0.240606f, 0.673913f, 0.24566f, 0.3759f, 0.30294f, 0.238277f, 0.309649f, 0.158961f, 0.268136f, 0.0474387f, 0.0249614f, 0.502213f, 0.835242f, 0.808086f, 0.0587386f, 0.0279884f, 0.373568f, 0.179991f, 0.837421f, 0.183592f, 0.162894f, 0.441337f, 0.83694f, 0.383792f, 0.452136f, 0.162437f, 0.189275f, 0.249038f, 0.705957f, 0.346687f, 0.822571f, 0.153658f, 0.441246f, 0.894684f, 0.768269f, 0.386205f, 0.2928f, 0.243175f, 0.497614f, 0.204097f, 0.229398f, 0.0688555f, 0.72533f, 0.910051f, 0.751693f, 0.801424f, 0.357692f, 0.140261f, 0.576602f, 0.235305f, 0.351963f, 0.864571f, 0.848564f, 0.742295f, 0.301651f, 0.533631f, 0.139609f, 0.457968f, 0.903583f, 0.0587152f, 0.127043f, 0.240497f, 0.850801f, 0.730677f, 0.443789f, 0.243372f, 0.705738f, 0.602757f, 0.767775f, 0.335897f, 0.0712162f, 0.448794f, 0.47651f, 0.76841f, 0.237581f, 0.765044f, 0.52708f, 0.948902f, 0.666026f, 0.963973f, 0.939841f, 0.848581f, 0.029732f, 0.930066f, 0.490798f, 0.631854f, 0.984634f, 0.742517f, 0.200003f, 0.625618f, 0.678956f, 0.584002f, 0.71094f, 0.523336f, 0.681997f, 0.361293f, 0.812933f, 0.459831f, 0.350654f, 0.946357f, 0.854295f, 0.798742f, 0.473338f, 0.288282f, 0.117292f, 0.583824f, 0.889357f, 0.0131608f, 0.500116f, 0.628454f, 0.0224112f, 0.348022f, 0.719283f, 0.90583f, 0.499719f, 0.663154f, 0.000967554f, 0.170538f, 0.0428783f, 0.896685f, 0.643987f, 0.273411f, 0.78688f, 0.396023f, 0.626472f, 0.215756f, 0.844723f, 0.872213f, 0.410202f, 0.878054f, 0.674196f, 0.287355f, 0.492367f, 0.137073f, 0.0237426f, 0.388965f, 0.629704f, 0.687775f, 0.334195f, 0.32888f, 0.442265f, 0.909167f, 0.437461f, 0.372817f, 0.885616f, 0.874001f, 0.809981f, 0.651169f, 0.530512f, 0.917954f, 0.441524f, 0.762291f, 0.880403f, 0.737363f, 0.708009f, 0.600234f, 0.528857f, 0.968567f, 0.468732f, 0.720534f, 0.724765f, 0.67854f, 0.835982f, 0.405137f, 0.197206f, 0.142327f, 0.867971f, 0.920047f, 0.690973f, 0.339469f, 0.633086f, 0.176185f, 0.776793f, 0.322005f, 0.182915f, 0.00502998f, 0.148064f, 0.906332f, 0.267127f, 0.705925f, 0.898904f, 0.835066f, 0.132771f, 0.7174f, 0.54423f, 0.392887f, 0.884388f, 0.742055f, 0.816903f, 0.322242f, 0.845872f, 0.465193f, 0.209498f, 0.795287f, 0.691878f, 0.790636f, 0.693203f, 0.643963f, 0.15282f, 0.984348f, 0.570035f, 0.466674f, 0.152595f, 0.802262f, 0.478275f, 0.514444f, 0.44056f, 0.33875f, 0.539541f, 0.671539f, 0.967589f, 0.253503f, 0.302934f, 0.410017f, 0.210206f, 0.580143f, 0.0563475f, 0.693325f, 0.944428f, 0.084813f, 0.9124f, 0.615986f, 0.939101f, 0.800773f, 0.880769f, 0.256613f, 0.413419f, 0.966736f, 0.710748f, 0.21007f, 0.456469f, 0.160282f, 0.597707f, 0.239246f, 0.177383f, 0.537376f, 0.160526f, 0.316377f, 0.790776f, 0.777723f, 0.470773f, 0.843404f, 0.0261224f, 0.811399f, 0.038649f, 0.818928f, 0.0582613f, 0.674766f, 0.508751f, 0.898782f, 0.0919244f, 0.75635f, 0.499773f, 0.365075f, 0.750378f, 0.127403f, 0.281425f, 0.909092f, 0.838663f, 0.851529f, 0.564507f, 0.381524f, 0.963769f, 0.499829f, 0.132106f, 0.561772f, 0.913486f, 0.840092f, 0.393176f, 0.648487f, 0.519296f, 0.664618f, 0.268991f, 0.252152f, 0.283572f, 0.673352f, 0.27139f, 0.503949f, 0.993029f, 0.413596f, 0.24433f, 0.23055f, 0.704351f, 0.0230931f, 0.84791f, 0.00476671f, 0.818885f, 0.454821f, 0.726305f, 0.767912f, 0.817841f, 0.999974f, 0.590962f, 0.977082f, 0.968455f, 0.519364f, 0.514248f, 0.971315f, 0.951993f, 0.472547f, 0.700405f, 0.549309f, 0.552369f, 0.0456289f, 0.585039f, 0.854381f, 0.0383671f, 0.141601f, 0.66116f, 0.790092f, 0.912461f, 0.044778f, 0.666423f, 0.461235f, 0.540005f, 0.817538f, 0.601107f, 0.411045f, 0.205044f, 0.733088f, 0.00062296f, 0.36983f, 0.138776f, 0.937605f, 0.193134f, 0.56797f, 0.544194f, 0.231138f, 0.725802f, 0.480193f, 0.575373f, 0.484463f, 0.975497f, 0.0100739f, 0.968146f, 0.768475f, 0.635657f, 0.435189f, 0.629053f, 0.221428f, 0.232516f, 0.306875f, 0.836148f, 0.796361f, 0.100233f, 0.587085f, 0.0760022f, 0.55652f, 0.726717f, 0.0816417f, 0.139665f, 0.528876f, 0.896761f, 0.571698f, 0.11319f, 0.56549f, 0.345951f, 0.0661693f, 0.845047f, 0.890938f, 0.412432f, 0.996887f, 0.0935362f, 0.576111f, 0.872789f, 0.456589f, 0.026871f, 0.30534f, 0.327539f, 0.982649f, 0.518664f, 0.522286f, 0.726954f, 0.661363f, 0.586535f, 0.462767f, 0.511343f, 0.533509f, 0.43612f, 0.146776f, 0.151319f, 0.584294f, 0.239675f, 0.826119f, 0.280354f, 0.514849f, 0.519899f, 0.389866f, 0.577378f, 0.839103f, 0.0943049f, 0.961246f, 0.188205f, 0.096847f, 0.0871042f, 0.622268f, 0.821903f, 0.360083f, 0.903953f, 0.497596f, 0.478317f, 0.765328f, 0.795846f, 0.61934f, 0.447344f, 0.794528f, 0.887741f, 0.0749957f, 0.110563f, 0.60998f, 0.329275f, 0.516203f, 0.292358f, 0.592168f, 0.125333f, 0.837721f, 0.222245f, 0.566869f, 0.626346f, 0.0951495f, 0.821676f, 0.0171195f, 0.468955f, 0.843058f, 0.0427089f, 0.290602f, 0.531874f, 0.675561f, 0.759463f, 0.776708f, 0.97121f, 0.552055f, 0.91365f, 0.795505f, 0.432957f, 0.945928f, 0.629969f, 0.706315f, 0.10789f, 0.631945f, 0.560697f, 0.286696f, 0.847755f, 0.5106f, 0.616399f, 0.458012f, 0.66941f, 0.394222f, 0.441996f, 0.931881f, 0.6098f, 0.814459f, 0.801516f, 0.479609f, 0.916285f, 0.491031f, 0.52531f, 0.630179f, 0.707767f, 0.18495f, 0.11281f, 0.217438f, 0.649659f, 0.257633f, 0.190622f, 0.461525f, 0.53659f, 0.548985f, 0.935432f, 0.468119f, 0.528654f, 0.288002f, 0.86274f, 0.583306f, 0.837442f, 0.744019f, 0.00205006f, 0.101775f, 0.117706f, 0.39285f, 0.812016f, 0.718513f, 0.608292f, 0.369581f, 0.509854f, 0.841733f, 0.589126f, 0.0334576f, 0.886984f, 0.903502f, 0.134757f, 0.0234959f, 0.621053f, 0.833687f, 0.908372f, 0.355786f, 0.594968f, 0.278546f, 0.0616916f, 0.991928f, 0.816218f, 0.791833f, 0.934049f, 0.865326f, 0.0253704f, 0.349297f, 0.663226f, 0.357989f, 0.680557f, 0.802511f, 0.429642f, 0.883689f, 0.783824f, 0.67522f, 0.697438f, 0.120879f, 0.729575f, 0.00486169f, 0.942129f, 0.125739f, 0.663795f, 0.00914756f, 0.711479f, 0.998232f, 0.822952f, 0.473205f, 0.335837f, 0.136472f, 0.609196f, 0.318704f, 0.161532f, 0.568412f, 0.0233597f, 0.906629f, 0.873049f, 0.731596f, 0.613444f, 0.0593645f, 0.63478f, 0.814573f, 0.0340471f, 0.0763958f, 0.363773f, 0.790524f, 0.807419f, 0.584907f, 0.397459f, 0.869917f, 0.147044f, 0.169051f, 0.713994f, 0.455301f, 0.993618f, 0.736364f, 0.429536f, 0.233719f, 0.660053f, 0.65125f, 0.12594f, 0.0831675f, 0.784556f, 0.382005f, 0.601863f, 0.567812f, 0.312718f, 0.976143f, 0.853011f, 0.610176f, 0.700731f, 0.0871456f, 0.338224f, 0.885135f, 0.504926f, 0.45179f, 0.849376f, 0.95661f, 0.655126f, 0.70496f, 0.805156f, 0.462604f, 0.592633f, 0.390113f, 0.118923f, 0.637586f, 0.025129f, 0.62638f, 0.689463f, 0.773287f, 0.531734f, 0.795471f, 0.358706f, 0.262297f, 0.200212f, 0.538472f, 0.111887f, 0.100556f, 0.480524f, 0.392042f, 0.385916f, 0.316496f, 0.702092f, 0.3041f, 0.388474f, 0.0657167f, 0.983429f, 0.138827f, 0.750319f, 0.257262f, 0.58212f, 0.902273f, 0.455071f, 0.864611f, 0.882043f, 0.0805284f, 0.328308f, 0.292215f, 0.45982f, 0.410047f, 0.304071f, 0.930239f, 0.563922f, 0.238724f, 0.901428f, 0.395368f, 0.748328f, 0.863523f, 0.699313f, 0.14609f, 0.802765f, 0.725857f, 0.111176f, 0.778348f, 0.100649f, 0.934328f, 0.626439f, 0.0632857f, 0.863918f, 0.300232f, 0.211113f, 0.965086f, 0.526931f, 0.547023f, 0.961509f, 0.438035f, 0.219677f, 0.223246f, 0.467086f, 0.763893f, 0.322219f, 0.332271f, 0.701771f, 0.0221609f, 0.48011f, 0.331815f, 0.525376f, 0.0581144f, 0.12665f, 0.568667f, 0.444604f, 0.652657f, 0.623396f, 0.79662f, 0.00975556f, 0.891481f, 0.496778f, 0.352577f, 0.720776f, 0.70058f, 0.187884f, 0.388072f, 0.274114f, 0.114906f, 0.778608f, 0.194883f, 0.909946f, 0.997911f, 0.0186819f, 0.374863f, 0.787027f, 0.512095f, 0.500573f, 0.120213f, 0.358705f, 0.215354f, 0.251092f, 0.562016f, 0.448529f, 0.171838f, 0.0396383f, 0.514233f, 0.513974f, 0.791807f, 0.830635f, 0.649071f, 0.0641319f, 0.968229f, 0.580936f, 0.14864f, 0.574407f, 0.0467385f, 0.3524f, 0.582797f, 0.764113f, 0.192708f, 0.168954f, 0.591749f, 0.614163f, 0.199349f, 0.340908f, 0.985934f, 0.62084f, 0.968246f, 0.57038f, 0.92467f, 0.726849f, 0.624844f, 0.665523f, 0.886327f, 0.132568f, 0.498797f, 0.425351f, 0.477744f, 0.935619f, 0.260727f, 0.946411f, 0.905412f, 0.481464f, 0.609082f, 0.132837f, 0.313348f, 0.812787f, 0.489934f, 0.126657f, 0.567723f, 0.197598f, 0.0267277f, 0.457983f, 0.404278f, 0.983718f, 0.0943151f, 0.819164f, 0.519075f, 0.889077f, 0.910087f, 0.968704f, 0.0729851f, 0.696807f, 0.0655221f, 0.750525f, 0.891697f, 0.965248f, 0.493765f, 0.305968f, 0.111152f, 0.913344f, 0.52132f, 0.215332f, 0.446812f, 0.642562f, 0.316112f, 0.634171f, 0.206858f, 0.412666f, 0.783655f, 0.223874f, 0.214292f, 0.228773f, 0.0170766f, 0.854296f, 0.501929f, 0.362381f, 0.89997f, 0.863746f, 0.951309f, 0.745953f, 0.301861f, 0.223935f, 0.746708f, 0.0834991f, 0.828797f, 0.90307f, 0.715688f, 0.218957f, 0.960773f, 0.46454f, 0.0591914f, 0.66914f, 0.398428f, 0.118712f, 0.0315554f, 0.485259f, 0.378371f, 0.185238f, 0.523267f, 0.902114f, 0.437574f, 0.784998f, 0.878045f, 0.578451f, 0.64194f, 0.808302f, 0.337437f, 0.507242f, 0.834155f, 0.378338f, 0.0677763f, 0.635153f, 0.0311098f, 0.581117f, 0.0917316f, 0.494079f, 0.20769f, 0.0238931f, 0.0650699f, 0.0744345f, 0.705953f, 0.284797f, 0.453965f, 0.365721f, 0.905599f, 0.332815f, 0.137703f, 0.492798f, 0.431644f, 0.230892f, 0.0976786f, 0.497994f, 0.849518f, 0.510788f, 0.0512111f, 0.413285f, 0.981149f, 0.799329f, 0.912977f, 0.411737f, 0.175266f, 0.0162868f, 0.437307f, 0.827285f, 0.998476f, 0.623463f, 0.659742f, 0.396828f, 0.618946f, 0.107416f, 0.494369f, 0.361829f, 0.607361f, 0.0737961f, 0.69223f, 0.35132f, 0.200138f, 0.520147f, 0.656058f, 0.327483f, 0.846206f, 0.425823f, 0.8901f, 0.15337f, 0.628552f, 0.126219f, 0.585266f, 0.909236f, 0.278323f, 0.129568f, 0.0375425f, 0.613099f, 0.827206f, 0.307324f, 0.329171f, 0.715313f, 0.336085f, 0.0274621f, 0.198092f, 0.938599f, 0.0772011f, 0.294892f, 0.512744f, 0.089627f, 0.0421751f, 0.0118223f, 0.31073f, 0.770852f, 0.536522f, 0.059069f, 0.56233f, 0.088411f, 0.076111f, 0.031168f, 0.631453f, 0.44039f, 0.943973f, 0.576273f, 0.20395f, 0.135953f, 0.0106208f, 0.216673f, 0.931502f, 0.0495763f, 0.597698f, 0.597646f, 0.491867f, 0.248687f, 0.243881f, 0.0237097f, 0.694195f, 0.786182f, 0.981708f, 0.275827f, 0.323773f, 0.443118f, 0.674906f, 0.320792f, 0.360525f, 0.873703f, 0.695221f, 0.76985f, 0.790831f, 0.86997f, 0.045759f, 0.516379f, 0.743353f, 0.0742389f, 0.964091f, 0.296322f, 0.556038f, 0.940668f, 0.551205f, 0.358508f, 0.657447f, 0.799673f, 0.492495f, 0.284206f, 0.991219f, 0.660055f, 0.837689f, 0.377476f, 0.432817f, 0.226188f, 0.475938f, 0.378378f, 0.291231f, 0.716247f, 0.509335f, 0.0457365f, 0.976215f, 0.043596f, 0.159073f, 0.329412f, 0.087858f, 0.764277f, 0.421929f, 0.4978f, 0.0620849f, 0.623438f, 0.237322f, 0.297502f, 0.86469f, 0.51249f, 0.183782f, 0.379948f, 0.574941f, 0.248499f, 0.183998f, 0.934304f, 0.15599f, 0.537776f, 0.822229f, 0.802189f, 0.655585f, 0.00750821f, 0.0626426f, 0.292754f, 0.498728f, 0.728805f, 0.657789f, 0.843344f, 0.850275f, 0.223317f, 0.922173f, 0.407713f, 0.0507778f, 0.635838f, 0.727573f, 0.961397f, 0.106634f, 0.938564f, 0.71468f, 0.798185f, 0.84374f, 0.696797f, 0.485912f, 0.960621f, 0.0816286f, 0.17049f, 0.714688f, 0.0476964f, 0.135115f, 0.153788f, 0.2184f, 0.267659f, 0.0849586f, 0.189475f, 0.130633f, 0.876729f, 0.455935f, 0.641272f, 0.0132095f, 0.975701f, 0.777732f, 0.271581f, 0.129144f, 0.852597f, 0.677346f, 0.71834f, 0.160533f, 0.12054f, 0.0630788f, 0.972361f, 0.843149f, 0.816396f, 0.275598f, 0.64788f, 0.208262f, 0.127042f, 0.702926f, 0.0505036f, 0.873385f, 0.221025f, 0.984649f, 0.577352f, 0.639605f, 0.322605f, 0.250405f, 0.984464f, 0.818028f, 0.672574f, 0.621214f, 0.0918164f, 0.12095f, 0.252448f, 0.710752f, 0.469303f, 0.6018f, 0.733434f, 0.52322f, 0.410691f, 0.385672f, 0.201854f, 0.0862988f, 0.0298816f, 0.370035f, 0.219729f, 0.0726707f, 0.0866237f, 0.316337f, 0.876509f, 0.477838f, 0.920677f, 0.826762f, 0.211238f, 0.0135761f, 0.228637f, 0.844486f, 0.962545f, 0.940982f, 0.0631598f, 0.323485f, 0.0861547f, 0.841514f, 0.375765f, 0.467707f, 0.336049f, 0.674912f, 0.07832f, 0.89714f, 0.88253f, 0.288133f, 0.0825826f, 0.130463f, 0.289422f, 0.382404f, 0.352322f, 0.945798f, 0.788903f, 0.152637f, 0.382991f, 0.878203f, 0.125118f, 0.468765f, 0.566938f, 0.791704f, 0.752722f, 0.0589502f, 0.169835f, 0.432356f, 0.457663f, 0.497164f, 0.624532f, 0.949889f, 0.228649f, 0.344103f, 0.295122f, 0.0317235f, 0.565761f, 0.0469677f, 0.963813f, 0.671784f, 0.52826f, 0.127347f, 0.251045f, 0.578931f, 0.242764f, 0.00486782f, 0.188777f, 0.792218f, 0.791818f, 0.907704f, 0.0898959f, 0.759028f, 0.36183f, 0.901095f, 0.755006f, 0.33788f, 0.904409f, 0.300434f, 0.0996702f, 0.177243f, 0.0702578f, 0.935815f, 0.20728f, 0.418299f, 0.602555f, 0.895595f, 0.469956f, 0.245849f, 0.0353629f, 0.534024f, 0.422565f, 0.931913f, 0.675508f, 0.376668f, 0.63693f, 0.95662f, 0.877581f, 0.577555f, 0.0498293f, 0.31831f, 0.520131f, 0.53852f, 0.693178f, 0.45666f, 0.227345f, 0.66616f, 0.342917f, 0.13955f, 0.878439f, 0.191593f, 0.154664f, 0.328999f, 0.342149f, 0.383607f, 0.936534f, 0.963995f, 0.699574f, 0.527155f, 0.636315f, 0.312233f, 0.203408f, 0.929949f, 0.0791683f, 0.61232f, 0.319537f, 0.955306f, 0.509218f, 0.114131f, 0.869919f, 0.035276f, 0.818544f, 0.293381f, 0.481256f, 0.349804f, 0.098767f, 0.84718f, 0.788674f, 0.149179f, 0.338152f, 0.108682f, 0.0449744f, 0.138881f, 0.00605887f, 0.811871f, 0.520997f, 0.886976f, 0.127615f, 0.0331085f, 0.942922f, 0.614076f, 0.0759743f, 0.390041f, 0.529303f, 0.511758f, 0.895567f, 0.948853f, 0.433576f, 0.17309f, 0.652144f, 0.0288429f, 0.342657f, 0.454861f, 0.646342f, 0.753379f, 0.708448f, 0.632343f, 0.840109f, 0.389132f, 0.136653f, 0.190046f, 0.597401f, 0.155061f, 0.521456f, 0.639845f, 0.355061f, 0.206304f, 0.124109f, 0.289374f, 0.819008f, 0.610052f, 0.00159884f, 0.605796f, 0.0967719f, 0.966663f, 0.205166f, 0.298949f, 0.567913f, 0.208008f, 0.793465f, 0.655996f, 0.794862f, 0.436975f, 0.935848f, 0.61181f, 0.338816f, 0.737157f, 0.712815f, 0.253938f, 0.530953f, 0.803682f, 0.275016f, 0.290807f, 0.858666f, 0.826177f, 0.119083f, 0.776663f, 0.504533f, 0.322858f, 0.427753f, 0.745725f, 0.639632f, 0.650729f, 0.575988f, 0.393773f, 0.449192f, 0.310235f, 0.150806f, 0.692183f, 0.235024f, 0.983001f, 0.314622f, 0.945062f, 0.0764785f, 0.61788f, 0.906432f, 0.881992f, 0.438869f, 0.400672f, 0.658858f, 0.0604561f, 0.926554f, 0.426711f, 0.602234f, 0.104497f, 0.199815f, 0.103513f, 0.662379f, 0.226066f, 0.0101929f, 0.742598f, 0.652809f, 0.10637f, 0.153118f, 0.140593f, 0.168109f, 0.179682f, 0.00302799f, 0.186447f, 0.32944f, 0.302015f, 0.898168f, 0.570514f, 0.691865f, 0.663872f, 0.99749f, 0.91487f, 0.758193f, 0.387378f, 0.0602731f, 0.227863f, 0.370452f, 0.775759f, 0.708117f, 0.711626f, 0.643531f, 0.228441f, 0.13471f, 0.747542f, 0.916811f, 0.815666f, 0.0417707f, 0.414724f, 0.667125f, 0.867545f, 0.703499f, 0.100023f, 0.893888f, 0.923414f, 0.157799f, 0.507501f, 0.823401f, 0.38602f, 0.591168f, 0.711305f, 0.998878f, 0.605571f, 0.204845f, 0.97374f, 0.197952f, 0.257173f, 0.729155f, 0.666006f, 0.497514f, 0.0428708f, 0.752168f, 0.154699f, 0.828572f, 0.212338f, 0.30994f, 0.707759f, 0.82363f, 0.676404f, 0.137495f, 0.0627531f, 0.232994f, 0.143842f, 0.704448f, 0.546854f, 0.982679f, 0.277961f, 0.79428f, 0.163905f, 0.207904f, 0.86609f, 0.855661f, 0.152206f, 0.960195f, 0.125017f, 0.142374f, 0.450204f, 0.710121f, 0.246666f, 0.588894f, 0.981368f, 0.527033f, 0.394608f, 0.349601f, 0.221471f, 0.293904f, 0.336037f, 0.00259696f, 0.699489f, 0.161962f, 0.571639f, 0.892842f, 0.914197f, 0.28676f, 0.281609f, 0.994657f, 0.639364f, 0.603787f, 0.539887f, 0.785149f, 0.460243f, 0.37672f, 0.132444f, 0.887442f, 0.866378f, 0.232449f, 0.72669f, 0.755273f, 0.430215f, 0.194615f, 0.131255f, 0.566025f, 0.770472f, 0.722037f, 0.164613f, 0.168985f, 0.913707f, 0.711705f, 0.918756f, 0.322963f, 0.49093f, 0.579027f, 0.865533f, 0.769857f, 0.313123f, 0.805174f, 0.448557f, 0.178727f, 0.649516f, 0.264805f, 0.373405f, 0.949695f, 0.4949f, 0.321312f, 0.368868f, 0.498668f, 0.772344f, 0.232678f, 0.791155f, 0.741142f, 0.958026f, 0.561081f, 0.388229f, 0.948016f, 0.595783f, 0.920074f, 0.0243532f, 0.585051f, 0.976676f, 0.583785f, 0.217646f, 0.374358f, 0.667096f, 0.192653f, 0.627001f, 0.890845f, 0.139863f, 0.531645f, 0.0704259f, 0.46927f, 0.773745f, 0.934911f, 0.164283f, 0.934369f, 0.782979f, 0.453403f, 0.0303334f, 0.426107f, 0.93287f, 0.9735f, 0.154466f, 0.112923f, 0.350711f, 0.432676f, 0.323113f, 0.50943f, 0.630948f, 0.137959f, 0.930709f, 0.853858f, 0.617902f, 0.752889f, 0.818451f, 0.204078f, 0.445972f, 0.883571f, 0.29343f, 0.504448f, 0.643829f, 0.380958f, 0.683129f, 0.902781f, 0.30215f, 0.717228f, 0.0341791f, 0.335812f, 0.0400368f, 0.506984f, 0.682838f, 0.658386f, 0.396279f, 0.481036f, 0.597432f, 0.695264f, 0.498466f, 0.57108f, 0.576224f, 0.237881f, 0.537692f, 0.669681f, 0.861073f, 0.339143f, 0.128874f, 0.758498f, 0.590967f, 0.609758f, 0.1918f, 0.787835f, 0.0733111f, 0.386826f, 0.270046f, 0.550001f, 0.854969f, 0.185734f, 0.714339f, 0.316777f, 0.607318f, 0.0160249f, 0.640761f, 0.913706f, 0.24314f, 0.24657f, 0.645394f, 0.612006f, 0.820106f, 0.640932f, 0.749067f, 0.188238f, 0.760935f, 0.215138f, 0.671003f, 0.662455f, 0.222162f, 0.33339f, 0.92759f, 0.659331f, 0.74537f, 0.721369f, 0.534219f, 0.88334f, 0.0572954f, 0.79585f, 0.276496f, 0.505335f, 0.819837f, 0.689644f, 0.70926f, 0.59755f, 0.901053f, 0.900456f, 0.0376507f, 0.121934f, 0.354706f, 0.381737f, 0.479468f, 0.355909f, 0.174316f, 0.181837f, 0.313877f, 0.334222f, 0.207634f, 0.327185f, 0.726592f, 0.700012f, 0.00398625f, 0.358816f, 0.798144f, 0.305795f, 0.422172f, 0.596942f, 0.526189f, 0.305732f, 0.0507706f, 0.949991f, 0.699761f, 0.888091f, 0.196203f, 0.276968f, 0.358945f, 0.87025f, 0.541177f, 0.239796f, 0.89137f, 0.934846f, 0.47618f, 0.019426f, 0.839516f, 0.251267f, 0.75769f, 0.768516f, 0.519644f, 0.250475f, 0.818662f, 0.291886f, 0.019663f, 0.425612f, 0.580393f, 0.885728f, 0.113159f, 0.653428f, 0.550446f, 0.23838f, 0.551808f, 0.959538f, 0.841172f, 0.848139f, 0.65274f, 0.648367f, 0.893737f, 0.865221f, 0.0342293f, 0.271677f, 0.65207f, 0.674937f, 0.374037f, 0.27464f, 0.0804224f, 0.26228f, 0.945206f, 0.388134f, 0.699125f, 0.324448f, 0.753384f, 0.732933f, 0.371485f, 0.695354f, 0.32375f, 0.191551f, 0.0347926f, 0.0962695f, 0.212859f, 0.485581f, 0.387944f, 0.854283f, 0.976668f, 0.266977f, 0.172495f, 0.579628f, 0.894021f, 0.390852f, 0.485798f, 0.881021f, 0.408174f, 0.137029f, 0.0635737f, 0.740292f, 0.0122054f, 0.716796f, 0.287173f, 0.530409f, 0.595257f, 0.18799f, 0.335254f, 0.958158f, 0.436372f, 0.0948741f, 0.374735f, 0.476342f, 0.891142f, 0.347581f, 0.22424f, 0.112034f, 0.865894f, 0.327254f, 0.570148f, 0.055232f, 0.15246f, 0.812931f, 0.187759f, 0.158984f, 0.297219f, 0.0251392f, 0.341505f, 0.658094f, 0.612514f, 0.381531f, 0.887536f, 0.708922f, 0.951087f, 0.971615f, 0.257677f, 0.160405f, 0.738208f, 0.385831f, 0.0891363f, 0.0535125f, 0.883081f, 0.226629f, 0.895362f, 0.0838472f, 0.606598f, 0.617891f, 0.942248f, 0.0165184f, 0.367718f, 0.841899f, 0.120951f, 0.668887f, 0.610117f, 0.548597f, 0.303294f, 0.97241f, 0.217284f, 0.331522f, 0.155917f, 0.955807f, 0.140771f, 0.0817281f, 0.152859f, 0.0663303f, 0.588881f, 0.45401f, 0.529076f, 0.728947f, 0.14698f, 0.417969f, 0.572019f, 0.618527f, 0.0167997f, 0.0227421f, 0.730966f, 0.265919f, 0.867031f, 0.206636f, 0.267057f, 0.142021f, 0.977823f, 0.939898f, 0.755495f, 0.0845602f, 0.247048f, 0.772434f, 0.236113f, 0.332354f, 0.133507f, 0.955107f, 0.980707f, 0.235108f, 0.928933f, 0.826946f, 0.893378f, 0.141928f, 0.329898f, 0.493367f, 0.370846f, 0.143658f, 0.00202746f, 0.679575f, 0.585135f, 0.714419f, 0.36591f, 0.0545446f, 0.107256f, 0.422153f, 0.190365f, 0.621623f, 0.305493f, 0.808021f, 0.393654f, 0.0540119f, 0.86019f, 0.292196f, 0.790964f, 0.107455f, 0.340372f, 0.617566f, 0.853727f, 0.0310108f, 0.720649f, 0.35964f, 0.0115787f, 0.0613885f, 0.879281f, 0.152947f, 0.786291f, 0.220739f, 0.514787f, 0.308396f, 0.417215f, 0.971446f, 0.747835f, 0.513741f, 0.239153f, 0.626783f, 0.404352f, 0.485722f, 0.548899f, 0.162911f, 0.520282f, 0.671437f, 0.555578f, 0.357543f, 0.731693f, 0.928549f, 0.905165f, 0.313252f, 0.961054f, 0.842681f, 0.559669f, 0.63635f, 0.461326f, 0.411086f, 0.530294f, 0.140501f, 0.87088f, 0.0101158f, 0.547086f, 0.175221f, 0.540607f, 0.500827f, 0.937612f, 0.323788f, 0.274769f, 0.0202466f, 0.314251f, 0.841809f, 0.41639f, 0.981335f, 0.550772f, 0.0144147f, 0.806042f, 0.444206f, 0.373938f, 0.694654f, 0.869487f, 0.328589f, 0.325989f, 0.211454f, 0.733658f, 0.280569f, 0.967328f, 0.436483f, 0.175311f, 0.493676f, 0.277896f, 0.827926f, 0.639886f, 0.901391f, 0.596811f, 0.691325f, 0.836249f, 0.25949f, 0.623802f, 0.959036f, 0.139302f, 0.126115f, 0.695212f, 0.625436f, 0.823793f, 0.33582f, 0.0311073f, 0.263335f, 0.360626f, 0.500309f, 0.624226f, 0.714741f, 0.951524f, 0.500566f, 0.226305f, 0.753058f, 0.660043f, 0.637268f, 0.247431f, 0.644939f, 0.589004f, 0.135806f, 0.549984f, 0.834647f, 0.630019f, 0.146096f, 0.930873f, 0.95415f, 0.853141f, 0.958451f, 0.863476f, 0.217199f, 0.59804f, 0.272421f, 0.960765f, 0.416773f, 0.0416794f, 0.565417f, 0.898356f, 0.439586f, 0.632754f, 0.523673f, 0.321099f, 0.776491f, 0.690107f, 0.283122f, 0.0153155f, 0.0767199f, 0.316719f, 0.993109f, 0.508936f, 0.582169f, 0.321623f, 0.844378f, 0.475753f, 0.796866f, 0.453595f, 0.713937f, 0.917951f, 0.486903f, 0.485272f, 0.566186f, 0.840784f, 0.547778f, 0.197835f, 0.707853f, 0.0653836f, 0.342131f, 0.59209f, 0.584128f, 0.963081f, 0.354824f, 0.71979f, 0.148018f, 0.778586f, 0.135654f, 0.0463006f, 0.560683f, 0.213356f, 0.394918f, 0.51796f, 0.287214f, 0.897186f, 0.717927f, 0.431383f, 0.935475f, 0.588724f, 0.156565f, 0.721329f, 0.0595823f, 0.46983f, 0.156027f, 0.0231713f, 0.133631f, 0.0109753f, 0.532869f, 0.349927f, 0.487912f, 0.358322f, 0.139167f, 0.598273f, 0.679047f, 0.184063f, 0.519092f, 0.625679f, 0.60103f, 0.783507f, 0.311387f, 0.177798f, 0.0633276f, 0.360676f, 0.457058f, 0.563934f, 0.967651f, 0.0826769f, 0.00685052f, 0.458695f, 0.694655f, 0.600191f, 0.698508f, 0.827872f, 0.151557f, 0.960818f, 0.0786889f, 0.761128f, 0.903934f, 0.322106f, 0.246907f, 0.535726f, 0.816486f, 0.797461f, 0.724812f, 0.313288f, 0.209304f, 0.690814f, 0.00881371f, 0.820364f, 0.647531f, 0.158463f, 0.295231f, 0.75686f, 0.52148f, 0.925354f, 0.996306f, 0.994077f, 0.950929f, 0.668927f, 0.193741f, 0.711666f, 0.754405f, 0.205479f, 0.0333758f, 0.881362f, 0.596171f, 0.0336671f, 0.268492f, 0.0564118f, 0.608191f, 0.25073f, 0.504501f, 0.535716f, 0.694344f, 0.35986f, 0.514343f, 0.651793f, 0.86104f, 0.575599f, 0.88146f, 0.536594f, 0.224893f, 0.931368f, 0.645742f, 0.0264881f, 0.157655f, 0.661512f, 0.293198f, 0.779997f, 0.896589f, 0.499772f, 0.0891904f, 0.530555f, 0.688447f, 0.907232f, 0.556538f, 0.680706f, 0.912112f, 0.693081f, 0.159184f, 0.675044f, 0.742653f, 0.563608f, 0.856565f, 0.188295f, 0.807417f, 0.237631f, 0.62816f, 0.61084f, 0.554166f, 0.0068842f, 0.444902f, 0.381657f, 0.606606f, 0.346843f, 0.927536f, 0.216415f, 0.960973f, 0.196831f, 0.723094f, 0.915932f, 0.408041f, 0.936323f, 0.807819f, 0.675618f, 0.636721f, 0.270937f, 0.735941f, 0.189361f, 0.315193f, 0.245696f, 0.664268f, 0.735748f, 0.173677f, 0.809368f, 0.913082f, 0.541734f, 0.178922f, 0.0545169f, 0.649474f, 0.88468f, 0.0566645f, 0.177642f, 0.479071f, 0.659481f, 0.0257169f, 0.907861f, 0.479456f, 0.152425f, 0.302627f, 0.0409482f, 0.34204f, 0.85816f, 0.526716f, 0.773709f, 0.480385f, 0.498402f, 0.488388f, 0.175127f, 0.413145f, 0.658467f, 0.869233f, 0.750651f, 0.708544f, 0.557844f, 0.680534f, 0.551274f, 0.636f, 0.616331f, 0.994595f, 0.533047f, 0.46812f, 0.83225f, 0.844266f, 0.204587f, 0.641098f, 0.332966f, 0.136553f, 0.658664f, 0.337022f, 0.773921f, 0.472624f, 0.859956f, 0.426666f, 0.283833f, 0.461272f, 0.809071f, 0.628312f, 0.630704f, 0.317496f, 0.166126f, 0.892486f, 0.00430007f, 0.00942372f, 0.751673f, 0.632624f, 0.390288f, 0.363411f, 0.243234f, 0.684022f, 0.350832f, 0.0353484f, 0.750161f, 0.705702f, 0.537362f, 0.41485f, 0.331047f, 0.997107f, 0.784934f, 0.338367f, 0.819223f, 0.739058f, 0.360845f, 0.32228f, 0.304302f, 0.964012f, 0.813109f, 0.264232f, 0.280438f, 0.46333f, 0.0201669f, 0.595788f, 0.975322f, 0.873393f, 0.126217f, 0.60345f, 0.286267f, 0.67071f, 0.820844f, 0.460882f, 0.734792f, 0.306117f, 0.706839f, 0.998932f, 0.805255f, 0.725007f, 0.395518f, 0.687883f, 0.51383f, 0.01043f, 0.420077f, 0.720032f, 0.24608f, 0.584036f, 0.248156f, 0.217733f, 0.197825f, 0.000519127f, 0.898562f, 0.083093f, 0.978477f, 0.144212f, 0.553447f, 0.00280658f, 0.108937f, 0.0422978f, 0.812926f, 0.208478f, 0.458945f, 0.645374f, 0.431019f, 0.052305f, 0.110701f, 0.484866f, 0.388538f, 0.975449f, 0.32165f, 0.768631f, 0.341433f, 0.162662f, 0.495283f, 0.313763f, 0.76239f, 0.247348f, 0.588679f, 0.747693f, 0.18162f, 0.866697f, 0.887435f, 0.43091f, 0.185098f, 0.650646f, 0.96517f, 0.764861f, 0.208918f, 0.758799f, 0.671678f, 0.828623f, 0.851287f, 0.945618f, 0.170334f, 0.633327f, 0.379662f, 0.874017f, 0.0534979f, 0.44164f, 0.932428f, 0.0312905f, 0.406336f, 0.228884f, 0.122527f, 0.483334f, 0.731855f, 0.734141f, 0.887326f, 0.942772f, 0.445553f, 0.828676f, 0.103279f, 0.161905f, 0.678867f, 0.148354f, 0.887371f, 0.617493f, 0.958594f, 0.501664f, 0.528139f, 0.973888f, 0.347961f, 0.448014f, 0.335346f, 0.697505f, 0.787289f, 0.0700397f, 0.106526f, 0.415613f, 0.0440243f, 0.120018f, 0.267311f, 0.581838f, 0.803008f, 0.57569f, 0.314399f, 0.761148f, 0.0271103f, 0.948228f, 0.159833f, 0.264391f, 0.824001f, 0.767562f, 0.919574f, 0.106003f, 0.417103f, 0.748968f, 0.406296f, 0.926414f, 0.673791f, 0.932979f, 0.0938298f, 0.813315f, 0.861851f, 0.302881f, 0.557386f, 0.276823f, 0.0363473f, 0.326655f, 0.92094f, 0.117535f, 0.608588f, 0.751379f, 0.659397f, 0.922751f, 0.295826f, 0.662205f, 0.385391f, 0.864506f, 0.20537f, 0.336669f, 0.522039f, 0.983507f, 0.817523f, 0.317454f, 0.539499f, 0.101561f, 0.822734f, 0.176609f, 0.0133603f, 0.836252f, 0.968958f, 0.146352f, 0.300826f, 0.565188f, 0.57764f, 0.153698f, 0.967762f, 0.717343f, 0.865264f, 0.125627f, 0.318489f, 0.978283f, 0.637769f, 0.451065f, 0.987542f, 0.596472f, 0.552366f, 0.647461f, 0.863899f, 0.817172f, 0.60458f, 0.563881f, 0.261542f, 0.605088f, 0.267668f, 0.858997f, 0.062567f, 0.163623f, 0.541057f, 0.152194f, 0.321293f, 0.150754f, 0.706254f, 0.309005f, 0.510549f, 0.237623f, 0.990975f, 0.398258f, 0.622684f, 0.500228f, 0.689494f, 0.937762f, 0.231227f, 0.796004f, 0.249561f, 0.662257f, 0.175869f, 0.940583f, 0.11868f, 0.108467f, 0.00355987f, 0.801821f, 0.960053f, 0.206508f, 0.0319452f, 0.21876f, 0.0320969f, 0.690034f, 0.894622f, 0.377359f, 0.987851f, 0.841586f, 0.166087f, 0.466118f, 0.36914f, 0.588008f, 0.166193f, 0.243228f, 0.0962444f, 0.914416f, 0.112919f, 0.865626f, 0.917752f, 0.18967f, 0.495992f, 0.409698f, 0.956721f, 0.655777f, 0.366935f, 0.451237f, 0.0336591f, 0.597537f, 0.729895f, 0.933683f, 0.747495f, 0.242842f, 0.733821f, 0.325877f, 0.573726f, 0.283331f, 0.437443f, 0.77622f, 0.644359f, 0.210571f, 0.82264f, 0.173423f, 0.236414f, 0.24517f, 0.362943f, 0.715997f, 0.482509f, 0.241853f, 0.827222f, 0.666046f, 0.626988f, 0.246454f, 0.568862f, 0.972462f, 0.708927f, 0.129856f, 0.597723f, 0.97496f, 0.413029f, 0.337928f, 0.943675f, 0.653626f, 0.972777f, 0.598935f, 0.0566712f, 0.876356f, 0.614742f, 0.849901f, 0.316001f, 0.161447f, 0.853611f, 0.00645767f, 0.606836f, 0.747936f, 0.125026f, 0.125517f, 0.84846f, 0.4219f, 0.910054f, 0.259172f, 0.73551f, 0.908055f, 0.800021f, 0.613516f, 0.827135f, 0.4591f, 0.385619f, 0.702226f, 0.815595f, 0.274222f, 0.342133f, 0.159873f, 0.698813f, 0.242246f, 0.747493f, 0.825599f, 0.342742f, 0.571876f, 0.618704f, 0.0520652f, 0.0488784f, 0.951388f, 0.827011f, 0.257575f, 0.899737f, 0.675098f, 0.786007f, 0.947872f, 0.220126f, 0.394217f, 0.230291f, 0.815844f, 0.530422f, 0.920339f, 0.563101f, 0.328669f, 0.0554478f, 0.625222f, 0.976902f, 0.224994f, 0.444574f, 0.862091f, 0.738029f, 0.535614f, 0.410976f, 0.131416f, 0.152513f, 0.433533f, 0.363121f, 0.777556f, 0.0393402f, 0.77959f, 0.646262f, 0.637031f, 0.455674f, 0.249158f, 0.608989f, 0.466823f, 0.760638f, 0.667691f, 0.789573f, 0.7937f, 0.0611302f, 0.544423f, 0.0422076f, 0.402138f, 0.87025f, 0.69898f, 0.795973f, 0.0644478f, 0.311235f, 0.420594f, 0.548076f, 0.660818f, 0.437931f, 0.598268f, 0.640167f, 0.0306512f, 0.709823f, 0.504726f, 0.138497f, 0.815641f, 0.761596f, 0.601683f, 0.30541f, 0.28802f, 0.223101f, 0.049064f, 0.378858f, 0.312118f, 0.673797f, 0.285427f, 0.0145132f, 0.77588f, 0.842179f, 0.702699f, 0.872948f, 0.531603f, 0.606845f, 0.25431f, 0.585463f, 0.941533f, 0.306215f, 0.583604f, 0.271493f, 0.108136f, 0.372856f, 0.399096f, 0.237461f, 0.74132f, 0.472761f, 0.365717f, 0.939339f, 0.0739496f, 0.57482f, 0.34303f, 0.221022f, 0.790876f, 0.11543f, 0.779532f, 0.0456825f, 0.140028f, 0.310828f, 0.944378f, 0.39217f, 0.619247f, 0.385917f, 0.540877f, 0.949759f, 0.472127f, 0.827582f, 0.410104f, 0.253109f, 0.526111f, 0.682869f, 0.266621f, 0.227526f, 0.784668f, 0.712683f, 0.760375f, 0.214349f, 0.967766f, 0.239999f, 0.172715f, 0.250994f, 0.993223f, 0.730586f, 0.324532f, 0.207587f, 0.665345f, 0.395415f, 0.181013f, 0.537802f, 0.34828f, 0.162476f, 0.480095f, 0.876674f, 0.439372f, 0.785432f, 0.0203158f, 0.570823f, 0.963498f, 0.402567f, 0.909907f, 0.606901f, 0.32069f, 0.168083f, 0.0552018f, 0.171833f, 0.883225f, 0.911166f, 0.989238f, 0.643792f, 0.0876833f, 0.497366f, 0.0391143f, 0.982985f, 0.678125f, 0.740735f, 0.391678f, 0.83025f, 0.8895f, 0.706485f, 0.162528f, 0.536452f, 0.575643f, 0.192419f, 0.0820395f, 0.462196f, 0.904244f, 0.432438f, 0.371109f, 0.0141529f, 0.335974f, 0.273617f, 0.28088f, 0.579158f, 0.855597f, 0.0309763f, 0.220642f, 0.813886f, 0.297333f, 0.651621f, 0.0109932f, 0.0257023f, 0.275789f, 0.477455f, 0.698262f, 0.780415f, 0.545663f, 0.372264f, 0.549103f, 0.246443f, 0.962574f, 0.0914624f, 0.456858f, 0.41112f, 0.918784f, 0.72038f, 0.515839f, 0.132978f, 0.371473f, 0.747621f, 0.933631f, 0.015056f, 0.673797f, 0.0771618f, 0.609213f, 0.649701f, 0.933946f, 0.226445f, 0.430041f, 0.876818f, 0.0845608f, 0.881974f, 0.215235f, 0.83455f, 0.786135f, 0.737094f, 0.427343f, 0.912624f, 0.069267f, 0.0816051f, 0.2506f, 0.507685f, 0.235479f, 0.711272f, 0.825633f, 0.58141f, 0.0794911f, 0.620859f, 0.329306f, 0.0119017f, 0.106674f, 0.23155f, 0.0596855f, 0.605844f, 0.770002f, 0.622888f, 0.76007f, 0.569407f, 0.290351f, 0.555176f, 0.205316f, 0.351891f, 0.7017f, 0.544441f, 0.129238f, 0.107956f, 0.444828f, 0.553731f, 0.884072f, 0.480326f, 0.416969f, 0.785289f, 0.410502f, 0.00826378f, 0.431934f, 0.998456f, 0.233627f, 0.507864f, 0.285601f, 0.844032f, 0.286312f, 0.396679f, 0.717884f, 0.961531f, 0.11234f, 0.880527f, 0.504979f, 0.267628f, 0.172393f, 0.420261f, 0.559234f, 0.634317f, 0.524828f, 0.00943912f, 0.951068f, 0.904872f, 0.581567f, 0.0740622f, 0.828133f, 0.482231f, 0.125118f, 0.0417098f, 0.298903f, 0.204699f, 0.00935577f, 0.484651f, 0.694955f, 0.564987f, 0.560743f, 0.719082f, 0.447489f, 0.217865f, 0.353221f, 0.865043f, 0.790954f, 0.260239f, 0.524727f, 0.792833f, 0.0672077f, 0.667036f, 0.105864f, 0.68807f, 0.999467f, 0.593298f, 0.146567f, 0.289339f, 0.631646f, 0.26246f, 0.415804f, 0.530709f, 0.823074f, 0.476407f, 0.00307427f, 0.705422f, 0.0120725f, 0.304214f, 0.917697f, 0.592769f, 0.0764513f, 0.544957f, 0.968635f, 0.401258f, 0.621596f, 0.337831f, 0.799542f, 0.826744f, 0.723547f, 0.792237f, 0.468728f, 0.132873f, 0.524227f, 0.965479f, 0.739429f, 0.901234f, 0.567083f, 0.315987f, 0.228559f, 0.513327f, 0.285659f, 0.604675f, 0.427648f, 0.345918f, 0.296984f, 0.590084f, 0.703401f, 0.1831f, 0.707313f, 0.0410708f, 0.473386f, 0.907264f, 0.528752f, 0.81663f, 0.590208f, 0.033293f, 0.932312f, 0.379052f, 0.357581f, 0.257937f, 0.886998f, 0.30427f, 0.201665f, 0.258415f, 0.629557f, 0.526584f, 0.717717f, 0.992605f, 0.582512f, 0.859669f, 0.990447f, 0.137361f, 0.179532f, 0.77959f, 0.675441f, 0.592123f, 0.716406f, 0.417769f, 0.834476f, 0.589954f, 0.517081f, 0.390805f, 0.591431f, 0.445001f, 0.409755f, 0.140016f, 0.374135f, 0.125935f, 0.541378f, 0.886082f, 0.160457f, 0.720008f, 0.255203f, 0.686246f, 0.130463f, 0.309388f, 0.117829f, 0.302849f, 0.162766f, 0.812961f, 0.638556f, 0.0938669f, 0.99757f, 0.534274f, 0.284855f, 0.704709f, 0.505292f, 0.27232f, 0.22415f, 0.192001f, 0.18286f, 0.754513f, 0.318402f, 0.88675f, 0.385372f, 0.320284f, 0.538758f, 0.298244f, 0.775506f, 0.361091f, 0.398002f, 0.698587f, 0.591924f, 0.863561f, 0.55393f, 0.337657f, 0.706471f, 0.638426f, 0.0175023f, 0.749578f, 0.224943f, 0.352789f, 0.138568f, 0.635246f, 0.518563f, 0.331428f, 0.387995f, 0.687786f, 0.0272836f, 0.574935f, 0.993065f, 0.488469f, 0.75833f, 0.224193f, 0.10441f, 0.24138f, 0.309069f, 0.991912f, 0.297144f, 1.24243e-05f, 0.956606f, 0.155435f, 0.801928f, 0.00748076f, 0.211659f, 0.530047f, 0.169149f, 0.379619f, 0.541412f, 0.0941778f, 0.226117f, 0.343829f, 0.78411f, 0.964835f, 0.661392f, 0.322789f, 0.68766f, 0.508442f, 0.764577f, 0.479622f, 0.366466f, 0.75998f, 0.756816f, 0.738645f, 0.284067f, 0.96874f, 0.91511f, 0.175682f, 0.022082f, 0.916111f, 0.0049284f, 0.271859f, 0.485214f, 0.783551f, 0.721535f, 0.490036f, 0.556404f, 0.577775f, 0.495591f, 0.09079f, 0.889282f, 0.396698f, 0.32623f, 0.378662f, 0.89265f, 0.0203042f, 0.904788f, 0.84036f, 0.989236f, 0.734799f, 0.534322f, 0.813772f, 0.729349f, 0.120081f, 0.64732f, 0.341254f, 0.211279f, 0.301084f, 0.2112f, 0.254672f, 0.270536f, 0.302479f, 0.165598f, 0.363984f, 0.595284f, 0.397747f, 0.0786652f, 0.816884f, 0.677035f, 0.163011f, 0.428865f, 0.261262f, 0.161525f, 0.820249f, 0.449973f, 0.502118f, 0.870741f, 0.872425f, 0.549107f, 0.093493f, 0.293108f, 0.407806f, 0.0290223f, 0.415517f, 0.550318f, 0.189582f, 0.401833f, 0.500474f, 0.802816f, 0.908242f, 0.0547127f, 0.477145f, 0.659132f, 0.376985f, 0.399163f, 0.139739f, 0.268315f, 0.618914f, 0.283807f, 0.0454501f, 0.401464f, 0.658063f, 0.245998f, 0.523662f, 0.00372331f, 0.70967f, 0.238583f, 0.678783f, 0.423037f, 0.755315f, 0.535826f, 0.416763f, 0.983476f, 0.270984f, 0.790093f, 0.887908f, 0.532165f, 0.503925f, 0.550084f, 0.806392f, 0.593717f, 0.452279f, 0.796592f, 0.554949f, 0.0265816f, 0.725485f, 0.655859f, 0.173116f, 0.140496f, 0.964536f, 0.241896f, 0.577612f, 0.480463f, 0.201199f, 0.672386f, 0.6272f, 0.78803f, 0.504123f, 0.082894f, 0.423626f, 0.49161f, 0.756764f, 0.12343f, 0.507778f, 0.385329f, 0.400582f, 0.672109f, 0.287395f, 0.355353f, 0.0229364f, 0.504916f, 0.747238f, 0.492063f, 0.0902071f, 0.581785f, 0.0497485f, 0.178017f, 0.591023f, 0.0277203f, 0.798361f, 0.976042f, 0.3078f, 0.85762f, 0.658656f, 0.425106f, 0.0774957f, 0.193401f, 0.598397f, 0.557949f, 0.750814f, 0.590794f, 0.0128073f, 0.565158f, 0.597502f, 0.447526f, 0.241906f, 0.420288f, 0.774951f, 0.300938f, 0.18762f, 0.309934f, 0.507038f, 0.942326f, 0.107535f, 0.817324f, 0.169265f, 0.401484f, 0.0672086f, 0.146513f, 0.38801f, 0.699678f, 0.928292f, 0.1585f, 0.189847f, 0.218258f, 0.997386f, 0.807761f, 0.429214f, 0.922135f, 0.732114f, 0.315095f, 0.0135532f, 0.125392f, 0.0740355f, 0.899277f, 0.160085f, 0.793358f, 0.0858927f, 0.395255f, 0.286439f, 0.620215f, 0.335846f, 0.663155f, 0.333771f, 0.604071f, 0.00871753f, 0.876666f, 0.129331f, 0.956528f, 0.0982035f, 0.828907f, 0.894696f, 0.684195f, 0.698587f, 0.485445f, 0.548052f, 0.268406f, 0.0960809f, 0.999609f, 0.105991f, 0.600666f, 0.0580121f, 0.459656f, 0.692681f, 0.360651f, 0.941943f, 0.796676f, 0.677869f, 0.839906f, 0.813682f, 0.413039f, 0.180618f, 0.176448f, 0.0840036f, 0.687712f, 0.759733f, 0.931299f, 0.110492f, 0.22682f, 0.999694f, 0.990125f, 0.0176829f, 0.379297f, 0.213525f, 0.362231f, 0.612688f, 0.0793717f, 0.407156f, 0.63851f, 0.877408f, 0.342648f, 0.74956f, 0.335767f, 0.724994f, 0.626303f, 0.430143f, 0.855555f, 0.458094f, 0.178266f, 0.579633f, 0.0305432f, 0.182081f, 0.200173f, 0.502698f, 0.470588f, 0.196118f, 0.52229f, 0.655738f, 0.203167f, 0.0850935f, 0.107051f, 0.684899f, 0.0779629f, 0.998f, 0.805075f, 0.466293f, 0.811035f, 0.0127426f, 0.877579f, 0.382167f, 0.208238f, 0.193264f, 0.581621f, 0.74473f, 0.362614f, 0.563278f, 0.807022f, 0.456634f, 0.452991f, 0.495488f, 0.464415f, 0.149532f, 0.241338f, 0.72833f, 0.707539f, 0.507903f, 0.582288f, 0.42852f, 0.152086f, 0.718713f, 0.977795f, 0.660267f, 0.640717f, 0.490115f, 0.304021f, 0.164872f, 0.336759f, 0.572142f, 0.948436f, 0.363279f, 0.079069f, 0.987311f, 0.435656f, 0.564604f, 0.00193385f, 0.791747f, 0.402436f, 0.706287f, 0.238848f, 0.915714f, 0.174906f, 0.965938f, 0.0384408f, 0.918158f, 0.513198f, 0.29182f, 0.0658808f, 0.954564f, 0.70594f, 0.170079f, 0.0330911f, 0.0433405f, 0.598742f, 0.472153f, 0.696886f, 0.325759f, 0.0567848f, 0.350115f, 0.133799f, 0.76163f, 0.779429f, 0.446678f, 0.611299f, 0.625526f, 0.639065f, 0.73732f, 0.963087f, 0.345357f, 0.965977f, 0.751335f, 0.590881f, 0.684322f, 0.68226f, 0.828329f, 0.128378f, 0.877101f, 0.733654f, 0.015523f, 0.360709f, 0.0707062f, 0.0786413f, 0.809354f, 0.981508f, 0.976154f, 0.790231f, 0.172446f, 0.727283f, 0.534363f, 0.92872f, 0.769091f, 0.815536f, 0.525322f, 0.264115f, 0.979644f, 0.376391f, 0.468697f, 0.318961f, 0.798537f, 0.780037f, 0.0233127f, 0.98107f, 0.167618f, 0.52514f, 0.407053f, 0.454821f, 0.457579f, 0.443139f, 0.122531f, 0.898809f, 0.408107f, 0.0924378f, 0.762959f, 0.50518f, 0.647983f, 0.546704f, 0.749073f, 0.39872f, 0.917352f, 0.977788f, 0.985947f, 0.717616f, 0.770878f, 0.216882f, 0.527066f, 0.388122f, 0.807191f, 0.0642288f, 0.72412f, 0.186179f, 0.448087f, 0.856582f, 0.0722809f, 0.12798f, 0.921263f, 0.682491f, 0.910814f, 0.214291f, 0.00368035f, 0.711403f, 0.956773f, 0.93008f, 0.372449f, 0.345067f, 0.250683f, 0.941182f, 0.85771f, 0.969274f, 0.722491f, 0.18259f, 0.607606f, 0.524986f, 0.00420109f, 0.15941f, 0.0776245f, 0.56232f, 0.569107f, 0.464477f, 0.332502f, 0.556105f, 0.134392f, 0.989199f, 0.213231f, 0.675439f, 0.296878f, 0.765381f, 0.294682f, 0.868181f, 0.192154f, 0.280048f, 0.785932f, 0.794206f, 0.716621f, 0.491201f, 0.750607f, 0.568602f, 0.968887f, 0.530632f, 0.466478f, 0.846657f, 0.686268f, 0.997402f, 0.397548f, 0.955002f, 0.663621f, 0.2972f, 0.367026f, 0.228433f, 0.529092f, 0.710098f, 0.567397f, 0.983211f, 0.0139249f, 0.136422f, 0.396022f, 0.737076f, 0.125274f, 0.44975f, 0.962357f, 0.797143f, 0.582861f, 0.5527f, 0.274522f, 0.310848f, 0.107026f, 0.565651f, 0.300736f, 0.904682f, 0.263527f, 0.806907f, 0.65984f, 0.414182f, 0.1636f, 0.615943f, 0.0715306f, 0.785954f, 0.828757f, 0.660765f, 0.0757584f, 0.120611f, 0.97223f, 0.461112f, 0.313375f, 0.630749f, 0.321526f, 0.539842f, 0.193604f, 0.600617f, 0.505401f, 0.578991f, 0.85863f, 0.262772f, 0.240262f, 0.481997f, 0.693685f, 0.872617f, 0.664167f, 0.357806f, 0.69779f, 0.144749f, 0.0603708f, 0.346813f, 0.871866f, 0.418938f, 0.582604f, 0.122422f, 0.731071f, 0.0382756f, 0.606676f, 0.558107f, 0.572594f, 0.938878f, 0.511932f, 0.092367f, 0.861729f, 0.385881f, 0.809785f, 0.66054f, 0.504926f, 0.949541f, 0.594529f, 0.621222f, 0.857473f, 0.689365f, 0.257566f, 0.198218f, 0.724715f, 0.535962f, 0.544353f, 0.984481f, 0.182449f, 0.878939f, 0.650007f, 0.673402f, 0.269187f, 0.600569f, 0.617209f, 0.537987f, 0.664277f, 0.0861642f, 0.156208f, 0.109356f, 0.685213f, 0.646577f, 0.859734f, 0.240261f, 0.0272754f, 0.334729f, 0.845619f, 0.560034f, 0.712505f, 0.411602f, 0.121457f, 0.855901f, 0.451466f, 0.184801f, 0.21999f, 0.967509f, 0.646905f, 0.638598f, 0.057186f, 0.32916f, 0.0871855f, 0.0478142f, 0.707339f, 0.287566f, 0.480243f, 0.754268f, 0.48237f, 0.39079f, 0.845006f, 0.823381f, 0.0915864f, 0.932019f, 0.573948f, 0.394927f, 0.507394f, 0.732169f, 0.228346f, 0.926473f, 0.532532f, 0.152355f, 0.776304f, 0.679865f, 0.920439f, 0.0158594f, 0.89487f, 0.659647f, 0.871782f, 0.560851f, 0.57435f, 0.3083f, 0.663412f, 0.757481f, 0.960128f, 0.452001f, 0.887086f, 0.442016f, 0.92099f, 0.0110993f, 0.365542f, 0.929865f, 0.656568f, 0.174363f, 0.615039f, 0.539452f, 0.806939f, 0.0893947f, 0.413348f, 0.864007f, 0.205508f, 0.390376f, 0.533917f, 0.439459f, 0.905103f, 0.341882f, 0.624755f, 0.397079f, 0.541082f, 0.0682523f, 0.983015f, 0.443842f, 0.629982f, 0.282008f, 0.386631f, 0.0396435f, 0.478885f, 0.4212f, 0.181879f, 0.689716f, 0.609262f, 0.521219f, 0.856247f, 0.939949f, 0.240021f, 0.665151f, 0.0608336f, 0.359835f, 0.431747f, 0.691869f, 0.591311f, 0.388467f, 0.588822f, 0.502485f, 0.877954f, 0.583312f, 0.670907f, 0.379027f, 0.450994f, 0.016911f, 0.740099f, 0.379876f, 0.66288f, 0.0689599f, 0.25757f, 0.454995f, 0.960567f, 0.200728f, 0.325239f, 0.913429f, 0.041381f, 0.859662f, 0.895766f, 0.790458f, 0.106767f, 0.703295f, 0.191236f, 0.204426f, 0.684595f, 0.691486f, 0.175409f, 0.524724f, 0.367155f, 0.867933f, 0.741568f, 0.569575f, 0.176538f, 0.285695f, 0.455791f, 0.187718f, 0.362868f, 0.552052f, 0.247035f, 0.391779f, 0.987161f, 0.4793f, 0.0774468f, 0.968417f, 0.763525f, 0.285887f, 0.482418f, 0.759539f, 0.234663f, 0.735722f, 0.813635f, 0.447822f, 0.324047f, 0.180318f, 0.0297703f, 0.454804f, 0.21158f, 0.457381f, 0.890023f, 0.900955f, 0.840244f, 0.706408f, 0.178501f, 0.763669f, 0.372941f, 0.710012f, 0.671042f, 0.822437f, 0.227934f, 0.297541f, 0.9467f, 0.0488573f, 0.825662f, 0.929774f, 0.805125f, 0.16774f, 0.366645f, 0.459201f, 0.917446f, 0.104398f, 0.0573441f, 0.685905f, 0.637186f, 0.18841f, 0.237238f, 0.367388f, 0.612208f, 0.538027f, 0.245563f, 0.448944f, 0.946351f, 0.078478f, 0.96132f, 0.653643f, 0.649054f, 0.463215f, 0.646464f, 0.635334f, 0.959491f, 0.00335262f, 0.182497f, 0.954482f, 0.106696f, 0.197427f, 0.499572f, 0.274776f, 0.751705f, 0.434975f, 0.0485731f, 0.165528f, 0.01801f, 0.422813f, 0.305316f, 0.470734f, 0.374091f, 0.139333f, 0.470029f, 0.896567f, 0.339369f, 0.473794f, 0.41436f, 0.610052f, 0.124939f, 0.881318f, 0.486986f, 0.660467f, 0.891443f, 0.195453f, 0.974218f, 0.846444f, 0.926831f, 0.344164f, 0.0419922f, 0.803992f, 0.743913f, 0.554845f, 0.0106056f, 0.418169f, 0.41055f, 0.829961f, 0.665717f, 0.408672f, 0.747485f, 0.136918f, 0.560109f, 0.72498f, 0.517661f, 0.437334f, 0.245188f, 0.410817f, 0.0930914f, 0.601875f, 0.912221f, 0.208718f, 0.544533f, 0.838509f, 0.959712f, 0.0127595f, 0.0623689f, 0.310829f, 0.591135f, 0.883425f, 0.24215f, 0.0995855f, 0.313635f, 0.0410957f, 0.918939f, 0.783048f, 0.0153892f, 0.12018f, 0.32194f, 0.815532f, 0.0266919f, 0.722792f, 0.233864f, 0.34853f, 0.0631725f, 0.627564f, 0.0811205f, 0.871095f, 0.741563f, 0.361075f, 0.325906f, 0.464204f, 0.397942f, 0.486534f, 0.922494f, 0.832773f, 0.626561f, 0.529538f, 0.314284f, 0.638165f, 0.9011f, 0.900388f, 0.244313f, 0.839225f, 0.0761662f, 0.834317f, 0.320673f, 0.474447f, 0.217126f, 0.193795f, 0.168358f, 0.438687f, 0.198715f, 0.46446f, 0.771117f, 0.862153f, 0.851919f, 0.807231f, 0.491553f, 0.760402f, 0.340707f, 0.0607091f, 0.361827f, 0.619789f, 0.110278f, 0.590294f, 0.957111f, 0.744611f, 0.559881f, 0.994887f, 0.919425f, 0.637753f, 0.533503f, 0.450887f, 0.175615f, 0.634571f, 0.797628f, 0.178719f, 0.699851f, 0.658949f, 0.906386f, 0.438896f, 0.0417218f, 0.438413f, 0.826829f, 0.841082f, 0.980786f, 0.927255f, 0.138567f, 0.820165f, 0.313088f, 0.0878685f, 0.692968f, 0.797086f, 0.0908378f, 0.318713f, 0.633711f, 0.525103f, 0.190014f, 0.310485f, 0.597693f, 0.655324f, 0.267112f, 0.518204f, 0.715525f, 0.486913f, 0.783756f, 0.0793533f, 0.359718f, 0.230675f, 0.199174f, 0.215922f, 0.102897f, 0.186138f, 0.836079f, 0.910483f, 0.694167f, 0.813909f, 0.199938f, 0.408655f, 0.119606f, 0.887828f, 0.333976f, 0.205177f, 0.609055f, 0.76697f, 0.387091f, 0.614617f, 0.60186f, 0.546753f, 0.765856f, 0.457407f, 0.630233f, 0.866919f, 0.937295f, 0.214419f, 0.367671f, 0.98412f, 0.748556f, 0.214578f, 0.270122f, 0.847595f, 0.912332f, 0.294221f, 0.339163f, 0.320192f, 0.0850987f, 0.133728f, 0.795094f, 0.359125f, 0.715362f, 0.493328f, 0.405118f, 0.387583f, 0.225176f, 0.175518f, 0.644012f, 0.179279f, 0.198195f, 0.384717f, 0.611793f, 0.385488f, 0.491305f, 0.998748f, 0.146324f, 0.81189f, 0.203875f, 0.495301f, 0.619699f, 0.542314f, 0.964081f, 0.651557f, 0.115988f, 0.661655f, 0.712517f, 0.0501672f, 0.326884f, 0.109749f, 0.896658f, 0.1904f, 0.380272f, 0.514918f, 0.863364f, 0.685467f, 0.996615f, 0.499541f, 0.673198f, 0.942305f, 0.691121f, 0.205226f, 0.231887f, 0.743837f, 0.13908f, 0.907879f, 0.743439f, 0.143676f, 0.305427f, 0.24824f, 0.608515f, 0.439296f, 0.847471f, 0.789528f, 0.51187f, 0.254966f, 0.685155f, 0.585688f, 0.989821f, 0.946481f, 0.450107f, 0.922811f, 0.555053f, 0.329394f, 0.39229f, 0.131353f, 0.450519f, 0.81199f, 0.630134f, 0.460913f, 0.670854f, 0.895434f, 0.726601f, 0.471248f, 0.750922f, 0.0946608f, 0.710068f, 0.697105f, 0.733508f, 0.220683f, 0.666638f, 0.0952539f, 0.630399f, 0.154864f, 0.766862f, 0.355345f, 0.790745f, 0.281507f, 0.164292f, 0.650522f, 0.629903f, 0.981355f, 0.145751f, 0.799657f, 0.0196028f, 0.724183f, 0.125143f, 0.719542f, 0.924714f, 0.615013f, 0.922675f, 0.904591f, 0.624601f, 0.139733f, 0.369898f, 0.278809f, 0.219397f, 0.777665f, 0.559285f, 0.713929f, 0.736891f, 0.766342f, 0.658174f, 0.645476f, 0.251764f, 0.610972f, 0.496852f, 0.683424f, 0.989308f, 0.956882f, 0.497361f, 0.429103f, 0.416429f, 0.662068f, 0.0963544f, 0.551931f, 0.889057f, 0.167578f, 0.638879f, 0.0980833f, 0.0518262f, 0.646338f, 0.165541f, 0.564348f, 0.8532f, 0.376433f, 0.893288f, 0.394515f, 0.699307f, 0.569125f, 0.954349f, 0.292597f, 0.56059f, 0.526105f, 0.862391f, 0.235818f, 0.797581f, 0.172794f, 0.854972f, 0.561266f, 0.0256928f, 0.88453f, 0.777506f, 0.538351f, 0.594944f, 0.78804f, 0.906662f, 0.377078f, 0.135404f, 0.126215f, 0.412107f, 0.440339f, 0.460594f, 0.244971f, 0.907837f, 0.165576f, 0.220725f, 0.893386f, 0.595752f, 0.0477381f, 0.171484f, 0.756221f, 0.107375f, 0.651348f, 0.340616f, 0.785978f, 0.498044f, 0.460329f, 0.180839f, 0.568633f, 0.0654769f, 0.156544f, 0.637076f, 0.699879f, 0.982172f, 0.538528f, 0.745358f, 0.839453f, 0.417995f, 0.636056f, 0.528779f, 0.780283f, 0.335406f, 0.201206f, 0.642997f, 0.382086f, 0.907109f, 0.124882f, 0.306389f, 0.130438f, 0.926737f, 0.83236f, 0.635197f, 0.0893036f, 0.300226f, 0.409036f, 0.330194f, 0.525545f, 0.500854f, 0.486374f, 0.493427f, 0.323961f, 0.581634f, 0.481929f, 0.169736f, 0.302538f, 0.355156f, 0.180988f, 0.224372f, 0.887529f, 0.0694339f, 0.458228f, 0.92593f, 0.814719f, 0.138363f, 0.552697f, 0.531863f, 0.886667f, 0.476801f, 0.156363f, 0.861231f, 0.7417f, 0.890515f, 0.130867f, 0.126969f, 0.343434f, 0.952659f, 0.432004f, 0.565955f, 0.987161f, 0.753083f, 0.911315f, 0.741906f, 0.708598f, 0.843306f, 0.381457f, 0.84063f, 0.711479f, 0.495271f, 0.632042f, 0.32002f, 0.38246f, 0.810932f, 0.217966f, 0.731042f, 0.575892f, 0.781178f, 0.617689f, 0.128939f, 0.150718f, 0.806429f, 0.704081f, 0.575492f, 0.190971f, 0.134197f, 0.937842f, 0.98535f, 0.809467f, 0.779322f, 0.858818f, 0.548991f, 0.312554f, 0.274714f, 0.986938f, 0.524766f, 0.187022f, 0.865706f, 0.530344f, 0.872097f, 0.401882f, 0.891508f, 0.313377f, 0.957398f, 0.108127f, 0.602892f, 0.699594f, 0.674728f, 0.351897f, 0.414457f, 0.594854f, 0.995978f, 0.880093f, 0.393842f, 0.861727f, 0.87038f, 0.320563f, 0.509479f, 0.842871f, 0.272854f, 0.189172f, 0.796218f, 0.596634f, 0.205636f, 0.742273f, 0.742419f, 0.760309f, 0.729056f, 0.0437783f, 0.445359f, 0.0322238f, 0.184335f, 0.988407f, 0.512953f, 0.550221f, 0.771869f, 0.381686f, 0.85382f, 0.426408f, 0.120799f, 0.0645409f, 0.0328801f, 0.0570775f, 0.444643f, 0.269454f, 0.500089f, 0.373609f, 0.504251f, 0.910849f, 0.253371f, 0.994127f, 0.938921f, 0.951095f, 0.852516f, 0.0903004f, 0.486111f, 0.17418f, 0.271288f, 0.612032f, 0.997632f, 0.53036f, 0.611951f, 0.0641582f, 0.396866f, 0.919247f, 0.640878f, 0.770191f, 0.481362f, 0.409374f, 0.2625f, 0.319186f, 0.928482f, 0.472299f, 0.0358065f, 0.49353f, 0.322652f, 0.0382739f, 0.798662f, 0.966877f, 0.326344f, 0.0953948f, 0.400169f, 0.510833f, 0.0684865f, 0.83235f, 0.696809f, 0.974604f, 0.668398f, 0.122265f, 0.369233f, 0.955626f, 0.188605f, 0.480427f, 0.286203f, 0.320616f, 0.954954f, 0.782486f, 0.186486f, 0.105481f, 0.945421f, 0.767992f, 0.356977f, 0.669292f, 0.0116432f, 0.260886f, 0.553776f, 0.143967f, 0.565441f, 0.924606f, 0.376176f, 0.735383f, 0.240687f, 0.230876f, 0.124107f, 0.399972f, 0.151305f, 0.16136f, 0.643358f, 0.165622f, 0.174629f, 0.514337f, 0.815659f, 0.115184f, 0.699359f, 0.694579f, 0.909514f, 0.952258f, 0.586617f, 0.806359f, 0.430576f, 0.172374f, 0.404369f, 0.101979f, 0.201102f, 0.066589f, 0.372448f, 0.990175f, 0.636888f, 0.158449f, 0.59424f, 0.801662f, 0.477782f, 0.0196779f, 0.800519f, 0.226145f, 0.147307f, 0.925814f, 0.629851f, 0.858079f, 0.529705f, 0.96928f, 0.135855f, 0.121891f, 0.475163f, 0.444364f, 0.391397f, 0.0779118f, 0.566445f, 0.251613f, 0.389013f, 0.802393f, 0.392058f, 0.299606f, 0.302262f, 0.732294f, 0.019227f, 0.473395f, 0.412521f, 0.76701f, 0.0892253f, 0.703217f, 0.349949f, 0.122614f, 0.105802f, 0.327151f, 0.425376f, 0.117406f, 0.395957f, 0.217755f, 0.0362698f, 0.351134f, 0.108123f, 0.679722f, 0.578639f, 0.757755f, 0.782326f, 0.993839f, 0.383555f, 0.786901f, 0.637786f, 0.890523f, 0.0454754f, 0.653257f, 0.84477f, 0.490936f, 0.204621f, 0.775073f, 0.683816f, 0.675775f, 0.859286f, 0.0484595f, 0.470092f, 0.223353f, 0.565578f, 0.862822f, 0.568036f, 0.518957f, 0.667993f, 0.412956f, 0.177394f, 0.643091f, 0.926192f, 0.710928f, 0.906935f, 0.340001f, 0.307947f, 0.537978f, 0.583401f, 0.448395f, 0.83372f, 0.50821f, 0.281675f, 0.437248f, 0.831335f, 0.379171f, 0.528369f, 0.0386753f, 0.439311f, 0.57382f, 0.640347f, 0.979313f, 0.0362142f, 0.830339f, 0.344896f, 0.385437f, 0.974212f, 0.240347f, 0.122867f, 0.422403f, 0.586582f, 0.356558f, 0.238593f, 0.216972f, 0.487292f, 0.688729f, 0.646868f, 0.886362f, 0.139602f, 0.8453f, 0.497696f, 0.311339f, 0.426771f, 0.880241f, 0.881009f, 0.686507f, 0.204272f, 0.00691477f, 0.401115f, 0.393756f, 0.910776f, 0.889087f, 0.237115f, 0.797237f, 0.705786f, 0.307576f, 0.0129004f, 0.222088f, 0.596397f, 0.684274f, 0.438425f, 0.404496f, 0.790856f, 0.61561f, 0.764173f, 0.996443f, 0.449856f, 0.388379f, 0.164582f, 0.450946f, 0.136325f, 0.104272f, 0.159408f, 0.943254f, 0.231601f, 0.96012f, 0.122654f, 0.77375f, 0.698247f, 0.635342f, 0.695868f, 0.517988f, 0.905835f, 0.449273f, 0.1554f, 0.328498f, 0.342687f, 0.789064f, 0.90011f, 0.346621f, 0.77674f, 0.424599f, 0.279622f, 0.861007f, 0.400212f, 0.707104f, 0.305798f, 0.226575f, 0.548174f, 0.256156f, 0.266986f, 0.160528f, 0.331082f, 0.354184f, 0.363671f, 0.458763f, 0.970597f, 0.934086f, 0.424846f, 0.788564f, 0.0627965f, 0.262678f, 0.912137f, 0.761774f, 0.34604f, 0.116035f, 0.486341f, 0.660035f, 0.428965f, 0.682454f, 0.857807f, 0.209625f, 0.853028f, 0.790084f, 0.824912f, 0.0883281f, 0.906446f, 0.120536f, 0.157414f, 0.269506f, 0.418842f, 0.768363f, 0.905914f, 0.233608f, 0.63689f, 0.128794f, 0.300428f, 0.754335f, 0.784397f, 0.408365f, 0.201501f, 0.100617f, 0.213767f, 0.296005f, 0.992797f, 0.283339f, 0.447858f, 0.263813f, 0.59937f, 0.883649f, 0.135107f, 0.363725f, 0.629425f, 0.934755f, 0.432171f, 0.571044f, 0.78362f, 0.732185f, 0.502777f, 0.850255f, 0.950607f, 0.879127f, 0.344331f, 0.828602f, 0.725226f, 0.685943f, 0.380096f, 0.191079f, 0.817829f, 0.680173f, 0.0223915f, 0.252598f, 0.0514904f, 0.561978f, 0.32495f, 0.605516f, 0.0450375f, 0.0375528f, 0.509012f, 0.253094f, 0.958415f, 0.914325f, 0.465613f, 0.202329f, 0.664152f, 0.133459f, 0.69897f, 0.788707f, 0.00200394f, 0.0945128f, 0.359398f, 0.797491f, 0.368139f, 0.194859f, 0.544294f, 0.43436f, 0.61703f, 0.727634f, 0.593148f, 0.624451f, 0.991047f, 0.145967f, 0.0313034f, 0.167285f, 0.241529f, 0.322303f, 0.451572f, 0.942235f, 0.970542f, 0.56176f, 0.993246f, 0.0279265f, 0.377604f, 0.16416f, 0.375309f, 0.369389f, 0.119511f, 0.120647f, 0.301037f, 0.073944f, 0.789161f, 0.181405f, 0.887082f, 0.956426f, 0.902397f, 0.739655f, 0.508133f, 0.0747696f, 0.391219f, 0.228832f, 0.800251f, 0.869061f, 0.597398f, 0.201573f, 0.477442f, 0.66435f, 0.690299f, 0.32831f, 0.0570044f, 0.636411f, 0.768536f, 0.115984f, 0.0367252f, 0.16301f, 0.698855f, 0.0880642f, 0.209967f, 0.571202f, 0.909398f, 0.928888f, 0.503773f, 0.447952f, 0.488892f, 0.322869f, 0.662932f, 0.898899f, 0.117182f, 0.857915f, 0.744107f, 0.824755f, 0.920689f, 0.758126f, 0.297619f, 0.521496f, 0.2284f, 0.0751337f, 0.867074f, 0.518767f, 0.358837f, 0.00144092f, 0.0497619f, 0.0668159f, 0.388102f, 0.383741f, 0.110213f, 0.532467f, 0.596091f, 0.00134374f, 0.833005f, 0.474105f, 0.343856f, 0.99895f, 0.242376f, 0.0767005f, 0.751615f, 0.490932f, 0.907981f, 0.638962f, 0.792366f, 0.30173f, 0.333721f, 0.0544114f, 0.326532f, 0.408815f, 0.738012f, 0.0674122f, 0.599458f, 0.772409f, 0.479695f, 0.357774f, 0.783448f, 0.48809f, 0.254677f, 0.586735f, 0.357024f, 0.327491f, 0.785926f, 0.23041f, 0.644132f, 0.413049f, 0.735151f, 0.867416f, 0.928182f, 0.788073f, 0.632708f, 0.68678f, 0.31539f, 0.30885f, 0.894032f, 0.0544455f, 0.673054f, 0.425651f, 0.203765f, 0.0151665f, 0.672158f, 0.86361f, 0.0568408f, 0.448561f, 0.0297595f, 0.381173f, 0.227334f, 0.723746f, 0.375939f, 0.305096f, 0.666427f, 0.952864f, 0.741191f, 0.642785f, 0.0175393f, 0.252206f, 0.190683f, 0.704187f, 0.942112f, 0.07693f, 0.994348f, 0.329894f, 0.609689f, 0.50401f, 0.729247f, 0.520244f, 0.000946484f, 0.541776f, 0.138247f, 0.186836f, 0.391014f, 0.0731181f, 0.670878f, 0.0338262f, 0.590797f, 0.698486f, 0.444108f, 0.539547f, 0.173782f, 0.262909f, 0.231219f, 0.256835f, 0.845156f, 0.632973f, 0.346624f, 0.60681f, 0.0932223f, 0.251465f, 0.0825293f, 0.265202f, 0.734433f, 0.166266f, 0.753448f, 0.258316f, 0.813767f, 0.701849f, 0.476919f, 0.756122f, 0.950176f, 0.455397f, 0.409883f, 0.992775f, 0.584045f, 0.558231f, 0.585266f, 0.648186f, 0.530603f, 0.71656f, 0.800558f, 0.833787f, 0.232484f, 0.339823f, 0.318783f, 0.337165f, 0.364923f, 0.823954f, 0.360866f, 0.715251f, 0.5378f, 0.864293f, 0.422829f, 0.233751f, 0.190532f, 0.984108f, 0.0647921f, 0.735035f, 0.0907616f, 0.0666643f, 0.0924067f, 0.502576f, 0.511322f, 0.345263f, 0.264773f, 0.96058f, 0.0867236f, 0.179448f, 0.838338f, 0.236504f, 0.288376f, 0.579939f, 0.747783f, 0.960027f, 0.905078f, 0.424557f, 0.281381f, 0.750459f, 0.652348f, 0.439034f, 0.999016f, 0.117254f, 0.369881f, 0.55118f, 0.113318f, 0.350891f, 0.615329f, 0.647776f, 0.74371f, 0.596626f, 0.83351f, 0.498064f, 0.0450331f, 0.220228f, 0.020771f, 0.680722f, 0.75407f, 0.601801f, 0.0530075f, 0.462111f, 0.519968f, 0.792487f, 0.581101f, 0.0211003f, 0.229924f, 0.78715f, 0.727014f, 0.915237f, 0.631788f, 0.799126f, 0.546876f, 0.742726f, 0.670435f, 0.304231f, 0.879851f, 0.995614f, 0.766319f, 0.42179f, 0.558265f, 0.817397f, 0.995562f, 0.285287f, 0.260675f, 0.929824f, 0.807761f, 0.162499f, 0.397752f, 0.709695f, 0.286947f, 0.096302f, 0.590545f, 0.755536f, 0.83637f, 0.185184f, 0.10565f, 0.187634f, 0.615155f, 0.81464f, 0.332655f, 0.290453f, 0.434497f, 0.8873f, 0.409133f, 0.881288f, 0.331319f, 0.515638f, 0.731008f, 0.40766f, 0.398138f, 0.447024f, 0.0110212f, 0.43768f, 0.0142694f, 0.909536f, 0.476164f, 0.173389f, 0.188101f, 0.647039f, 0.183863f, 0.677867f, 0.782275f, 0.47767f, 0.425961f, 0.419715f, 0.130223f, 0.363212f, 0.802346f, 0.31485f, 0.460572f, 0.470326f, 0.432771f, 0.592056f, 0.432036f, 0.703806f, 0.149798f, 0.398114f, 0.799945f, 0.911993f, 0.650931f, 0.532968f, 0.460181f, 0.140933f, 0.802706f, 0.727349f, 0.369486f, 0.15512f, 0.503928f, 0.974148f, 0.937846f, 0.207428f, 0.901552f, 0.165991f, 0.398288f, 0.277009f, 0.429129f, 0.176726f, 0.380608f, 0.755432f, 0.442744f, 0.705476f, 0.521909f, 0.167085f, 0.0421919f, 0.105396f, 0.153568f, 0.608793f, 0.590906f, 0.268729f, 0.19125f, 0.830014f, 0.185807f, 0.890209f, 0.83474f, 0.310515f, 0.195112f, 0.982706f, 0.189772f, 0.700988f, 0.214694f, 0.774826f, 0.327473f, 0.868802f, 0.16681f, 0.58841f, 0.881917f, 0.117363f, 0.599747f, 0.158003f, 0.517942f, 0.432007f, 0.648865f, 0.0624208f, 0.0122082f, 0.329588f, 0.504368f, 0.0203229f, 0.139813f, 0.394387f, 0.12387f, 0.181334f, 0.868906f, 0.526532f, 0.880958f, 0.413481f, 0.982045f, 0.471394f, 0.538444f, 0.730804f, 0.85219f, 0.400402f, 0.251662f, 0.937787f, 0.00174408f, 0.652608f, 0.261504f, 0.388878f, 0.868629f, 0.537448f, 0.0981852f, 0.948251f, 0.633976f, 0.645068f, 0.25576f, 0.548145f, 0.0116775f, 0.592169f, 0.143432f, 0.330232f, 0.241711f, 0.970109f, 0.852308f, 0.852483f, 0.151413f, 0.591363f, 0.384637f, 0.549586f, 0.60464f, 0.895377f, 0.579498f, 0.466505f, 0.945094f, 0.767294f, 0.252708f, 0.622607f, 0.382841f, 0.493243f, 0.549084f, 0.690041f, 0.0365459f, 0.69902f, 0.239746f, 0.54563f, 0.670083f, 0.548381f, 0.0894636f, 0.445598f, 0.664948f, 0.477631f, 0.585061f, 0.606681f, 0.676272f, 0.827953f, 0.969431f, 0.426087f, 0.181042f, 0.335697f, 0.0937029f, 0.0367387f, 0.228312f, 0.0617288f, 0.335622f, 0.944988f, 0.296869f, 0.756548f, 0.0404717f, 0.677043f, 0.762679f, 0.700488f, 0.318338f, 0.0365351f, 0.612665f, 0.376546f, 0.209593f, 0.512024f, 0.12407f, 0.279746f, 0.755882f, 0.111437f, 0.299563f, 0.997316f, 0.723257f, 0.636209f, 0.226971f, 0.0659718f, 0.140536f, 0.255796f, 0.564739f, 0.588969f, 0.168314f, 0.543733f, 0.924602f, 0.244122f, 0.543139f, 0.0785925f, 0.194683f, 0.899421f, 0.403202f, 0.0356301f, 0.681685f, 0.887435f, 0.856302f, 0.193578f, 0.496868f, 0.467903f, 0.0387348f, 0.638649f, 0.90526f, 0.324396f, 0.247047f, 0.169258f, 0.266024f, 0.986432f, 0.521846f, 0.49993f, 0.637412f, 0.797028f, 0.699123f, 0.835982f, 0.739283f, 0.708695f, 0.107002f, 0.732937f, 0.844857f, 0.174538f, 0.22849f, 0.222638f, 0.796332f, 0.933367f, 0.759566f, 0.513495f, 0.803074f, 0.107489f, 0.399826f, 0.656787f, 0.106884f, 0.210021f, 0.094437f, 0.435416f, 0.60731f, 0.1567f, 0.841264f, 0.0968264f, 0.306852f, 0.345901f, 0.141018f, 0.159966f, 0.821595f, 0.320059f, 0.0656764f, 0.0505248f, 0.432913f, 0.747983f, 0.750045f, 0.0417933f, 0.138653f, 0.137631f, 0.320256f, 0.584708f, 0.0532872f, 0.318578f, 0.63761f, 0.564704f, 0.154647f, 0.642569f, 0.622576f, 0.244021f, 0.87078f, 0.500933f, 0.00645393f, 0.0539389f, 0.0485263f, 0.796574f, 0.793253f, 0.732992f, 0.645884f, 0.379617f, 0.555762f, 0.00629676f, 0.259832f, 0.798554f, 0.0315776f, 0.450822f, 0.101757f, 0.809952f, 0.313552f, 0.783575f, 0.0359134f, 0.948098f, 0.161367f, 0.525707f, 0.0963111f, 0.132763f, 0.22445f, 0.461381f, 0.713727f, 0.943816f, 0.658751f, 0.327083f, 0.794496f, 0.198395f, 0.841364f, 0.116349f, 0.370534f, 0.542816f, 0.72763f, 0.374359f, 0.533259f, 0.887736f, 0.0196068f, 0.502101f, 0.412768f, 0.0106867f, 0.678288f, 0.858775f, 0.335465f, 0.730297f, 0.992653f, 0.717325f, 0.507287f, 0.187472f, 0.877163f, 0.52541f, 0.183381f, 0.0743946f, 0.258771f, 0.848135f, 0.805477f, 0.316745f, 0.453276f, 0.266309f, 0.110357f, 0.153075f, 0.690539f, 0.201145f, 0.920943f, 0.507428f, 0.445467f, 0.78514f, 0.616036f, 0.258572f, 0.942877f, 0.760505f, 0.238735f, 0.466058f, 0.0212599f, 0.657658f, 0.555341f, 0.803491f, 0.0782692f, 0.220241f, 0.944674f, 0.000973093f, 0.749505f, 0.106599f, 0.15009f, 0.0835378f, 0.181226f, 0.0515253f, 0.88494f, 0.102723f, 0.974932f, 0.231358f, 0.467657f, 0.183007f, 0.920526f, 0.288254f, 0.830973f, 0.553001f, 0.93022f, 0.414924f, 0.376628f, 0.334164f, 0.609779f, 0.539633f, 0.80234f, 0.775187f, 0.0439149f, 0.813741f, 0.556876f, 0.465937f, 0.181576f, 0.14384f, 0.859396f, 0.191365f, 0.364365f, 0.95841f, 0.298458f, 0.179076f, 0.287059f, 0.478908f, 0.737661f, 0.301259f, 0.0961071f, 0.672842f, 0.783623f, 0.118186f, 0.166335f, 0.26924f, 0.453664f, 0.688125f, 0.947874f, 0.36531f, 0.0269986f, 0.218112f, 0.512163f, 0.191052f, 0.299443f, 0.730737f, 0.226903f, 0.340436f, 0.403929f, 0.0852968f, 0.480171f, 0.603748f, 0.421509f, 0.435747f, 0.406636f, 0.0178122f, 0.322006f, 0.0404101f, 0.860913f, 0.0730553f, 0.88948f, 0.177384f, 0.517096f, 0.718766f, 0.2512f, 0.602436f, 0.0417423f, 0.475102f, 0.720779f, 0.626538f, 0.283841f, 0.238276f, 0.987086f, 0.591778f, 0.1842f, 0.520921f, 0.153227f, 0.556522f, 0.146511f, 0.604621f, 0.116201f, 0.0737713f, 0.543386f, 0.0369681f, 0.398191f, 0.0236996f, 0.0167607f, 0.615953f, 0.127181f, 0.454078f, 0.636039f, 0.919659f, 0.951307f, 0.888242f, 0.880994f, 0.433766f, 0.676223f, 0.777643f, 0.0852578f, 0.170134f, 0.903301f, 0.82682f, 0.888324f, 0.258651f, 0.321851f, 0.740333f, 0.136134f, 0.246879f, 0.00224358f, 0.157725f, 0.199889f, 0.569027f, 0.0310247f, 0.275402f, 0.729987f, 0.688425f, 0.604258f, 0.760276f, 0.957512f, 0.564194f, 0.463683f, 0.340383f, 0.285583f, 0.500558f, 0.304194f, 0.357911f, 0.84807f, 0.99273f, 0.226164f, 0.709829f, 0.166442f, 0.915231f, 0.798527f, 0.125432f, 0.222153f, 0.496277f, 0.100268f, 0.333152f, 0.83063f, 0.779307f, 0.581274f, 0.550133f, 0.998805f, 0.885069f, 0.393751f, 0.692026f, 0.537398f, 0.584291f, 0.0203061f, 0.0124475f, 0.161726f, 0.785518f, 0.160358f, 0.76372f, 0.783276f, 0.969793f, 0.844359f, 0.856301f, 0.721894f, 0.978718f, 0.130515f, 0.89933f, 0.448584f, 0.122808f, 0.515401f, 0.787199f, 0.438048f, 0.395707f, 0.598831f, 0.772227f, 0.944482f, 0.892404f, 0.820393f, 0.716444f, 0.723121f, 0.0701328f, 0.716947f, 0.886684f, 0.009141f, 0.412401f, 0.473811f, 0.178099f, 0.446003f, 0.567898f, 0.980485f, 0.411368f, 0.300427f, 0.554554f, 0.326299f, 0.914831f, 0.00431922f, 0.989365f, 0.461677f, 0.304597f, 0.861639f, 0.503709f, 0.919688f, 0.86521f, 0.858752f, 0.401042f, 0.499406f, 0.999762f, 0.145825f, 0.11521f, 0.425163f, 0.265864f, 0.630985f, 0.740153f, 0.338885f, 0.484607f, 0.677764f, 0.00381102f, 0.809534f, 0.145251f, 0.541035f, 0.0462432f, 0.0662148f, 0.506739f, 0.689138f, 0.725102f, 0.560043f, 0.920058f, 0.707384f, 0.0907164f, 0.575176f, 0.591147f, 0.76119f, 0.977688f, 0.594382f, 0.0568761f, 0.334937f, 0.0236219f, 0.247397f, 0.82412f, 0.250413f, 0.563062f, 0.126827f, 0.614318f, 0.45863f, 0.570689f, 0.0717203f, 0.71442f, 0.852698f, 0.319204f, 0.673932f, 0.66984f, 0.791503f, 0.0991388f, 0.727569f, 0.673013f, 0.531488f, 0.973541f, 0.490356f, 0.689448f, 0.51114f, 0.0510635f, 0.144568f, 0.0488804f, 0.907358f, 0.630259f, 0.801694f, 0.690012f, 0.142377f, 0.376682f, 0.144956f, 0.824021f, 0.721665f, 0.938729f, 0.947014f, 0.950303f, 0.625824f, 0.0518692f, 0.372296f, 0.696759f, 0.477766f, 0.38459f, 0.218042f, 0.858416f, 0.115892f, 0.0320822f, 0.495412f, 0.862494f, 0.819502f, 0.941878f, 0.0387679f, 0.794199f, 0.820976f, 0.248613f, 0.308583f, 0.0627562f, 0.479179f, 0.460774f, 0.427001f, 0.032369f, 0.998002f, 0.690198f, 0.301801f, 0.276364f, 0.710231f, 0.893871f, 0.785995f, 0.365127f, 0.272635f, 0.606906f, 0.886356f, 0.683694f, 0.267291f, 0.218239f, 0.217794f, 0.879303f, 0.800404f, 0.753908f, 0.381f, 0.38011f, 0.868807f, 0.915108f, 0.679771f, 0.425887f, 0.232021f, 0.3732f, 0.524585f, 0.227168f, 0.332095f, 0.159611f, 0.474157f, 0.834698f, 0.119122f, 0.703672f, 0.472869f, 0.642509f, 0.454468f, 0.677509f, 0.14933f, 0.0275297f, 0.886753f, 0.183027f, 0.504664f, 0.13094f, 0.471414f, 0.291249f, 0.0897135f, 0.883799f, 0.948179f, 0.209196f, 0.261283f, 0.434814f, 0.764381f, 0.333649f, 0.323645f, 0.732802f, 0.754794f, 0.772194f, 0.888666f, 0.794492f, 0.470613f, 0.180972f, 0.533535f, 0.638344f, 0.0309298f, 0.473841f, 0.572842f, 0.911616f, 0.0359518f, 0.504784f, 0.864904f, 0.791921f, 0.952028f, 0.14703f, 0.482688f, 0.38138f, 0.689176f, 0.358107f, 0.964222f, 0.664341f, 0.364756f, 0.462358f, 0.871348f, 0.811468f, 0.805107f, 0.372945f, 0.709743f, 0.126389f, 0.891431f, 0.437558f, 0.570483f, 0.788012f, 0.964243f, 0.258805f, 0.280408f, 0.0702566f, 0.657459f, 0.683867f, 0.0888091f, 0.55652f, 0.70077f, 0.444457f, 0.487276f, 0.205754f, 0.659927f, 0.926596f, 0.445687f, 0.20498f, 0.548544f, 0.343877f, 0.512677f, 0.990822f, 0.6532f, 0.268565f, 0.962165f, 0.327383f, 0.674243f, 0.228823f, 0.998085f, 0.227313f, 0.800336f, 0.718163f, 0.782706f, 0.941869f, 0.33199f, 0.849003f, 0.194824f, 0.902575f, 0.501552f, 0.518239f, 0.150476f, 0.448765f, 0.211319f, 0.158607f, 0.640021f, 0.952545f, 0.717359f, 0.280481f, 0.909379f, 0.908767f, 0.528414f, 0.974888f, 0.276211f, 0.92698f, 0.835883f, 0.901567f, 0.666688f, 0.529453f, 0.465804f, 0.294289f, 0.139984f, 0.999112f, 0.844271f, 0.662428f, 0.792039f, 0.183089f, 0.797879f, 0.297615f, 0.108843f, 0.128322f, 0.827902f, 0.416487f, 0.236675f, 0.806017f, 0.279535f, 0.652342f, 0.610113f, 0.371188f, 0.216679f, 0.402532f, 0.969157f, 0.301669f, 0.0383836f, 0.499437f, 0.118573f, 0.362627f, 0.18339f, 0.222873f, 0.526366f, 0.147472f, 0.993054f, 0.565005f, 0.29172f, 0.547762f, 0.852949f, 0.357201f, 0.491189f, 0.863435f, 0.518439f, 0.0594226f, 0.109189f, 0.945859f, 0.739604f, 0.143206f, 0.435732f, 0.553778f, 0.0035747f, 0.772776f, 0.505716f, 0.153306f, 0.664995f, 0.832633f, 0.565863f, 0.665123f, 0.666381f, 0.394328f, 0.0855326f, 0.573496f, 0.885602f, 0.390953f, 0.708925f, 0.786931f, 0.522786f, 0.291825f, 0.0634514f, 0.928188f, 0.168637f, 0.253001f, 0.862502f, 0.929582f, 0.646378f, 0.989392f, 0.521706f, 0.0178385f, 0.694728f, 0.202491f, 0.549003f, 0.909403f, 0.406013f, 0.387248f, 0.760753f, 0.852096f, 0.358302f, 0.245531f, 0.71053f, 0.811774f, 0.92079f, 0.810023f, 0.174339f, 0.536559f, 0.00591831f, 0.374183f, 0.616586f, 0.940266f, 0.100919f, 0.198732f, 0.598882f, 0.608117f, 0.930093f, 0.521744f, 0.822235f, 0.549358f, 0.149835f, 0.344036f, 0.650126f, 0.0347386f, 0.0659594f, 0.775347f, 0.632604f, 0.896795f, 0.944731f, 0.051625f, 0.328262f, 0.489635f, 0.771074f, 0.520485f, 0.445573f, 0.99153f, 0.453152f, 0.74483f, 0.359229f, 0.842507f, 0.754794f, 0.050389f, 0.469458f, 0.345899f, 0.724442f, 0.1258f, 0.997286f, 0.542507f, 0.734243f, 0.218028f, 0.57567f, 0.0840791f, 0.831345f, 0.572729f, 0.638681f, 0.46461f, 0.21553f, 0.496753f, 0.651072f, 0.728837f, 0.383105f, 0.913925f, 0.608814f, 0.69361f, 0.284668f, 0.580892f, 0.0829319f, 0.996964f, 0.694332f, 0.0266658f, 0.343305f, 0.860466f, 0.410865f, 0.344897f, 0.076182f, 0.0945845f, 0.606471f, 0.910185f, 0.440777f, 0.83356f, 0.415651f, 0.470332f, 0.577427f, 0.286812f, 0.458414f, 0.154092f, 0.726048f, 0.448766f, 0.536047f, 0.881113f, 0.0834768f, 0.680602f, 0.100508f, 0.614056f, 0.920217f, 0.554259f, 0.0771404f, 0.200639f, 0.997162f, 0.711893f, 0.580785f, 0.517384f, 0.236981f, 0.961531f, 0.262726f, 0.0279213f, 0.601705f, 0.922513f, 0.457747f, 0.622179f, 0.586986f, 0.815665f, 0.740151f, 0.71075f, 0.744337f, 0.267282f, 0.714992f, 0.995485f, 0.373861f, 0.330064f, 0.707927f, 0.4794f, 0.467112f, 0.517784f, 0.750343f, 0.301888f, 0.31469f, 0.143334f, 0.016394f, 0.929898f, 0.610353f, 0.378339f, 0.961137f, 0.286113f, 0.998841f, 0.619241f, 0.847544f, 0.140022f, 0.6554f, 0.212334f, 0.92588f, 0.11685f, 0.480002f, 0.927651f, 0.285044f, 0.888313f, 0.171126f, 0.561373f, 0.458234f, 0.157669f, 0.777138f, 0.418818f, 0.404983f, 0.0466326f, 0.101271f, 0.143908f, 0.0234543f, 0.405157f, 0.947144f, 0.028322f, 0.325914f, 0.475486f, 0.338324f, 0.607948f, 0.869158f, 0.907468f, 0.930774f, 0.501023f, 0.925042f, 0.454899f, 0.946359f, 0.125395f, 0.471872f, 0.620577f, 0.155292f, 0.566721f, 0.671337f, 0.265429f, 0.752127f, 0.50987f, 0.618642f, 0.715742f, 0.694601f, 0.625403f, 0.52693f, 0.0518873f, 0.419928f, 0.668601f, 0.949508f, 0.540852f, 0.554487f, 0.52369f, 0.28843f, 0.488686f, 0.200984f, 0.837579f, 0.269874f, 0.195823f, 0.515413f, 0.578064f, 0.745128f, 0.331575f, 0.588522f, 0.490486f, 0.931496f, 0.802797f, 0.924865f, 0.356336f, 0.581246f, 0.328024f, 0.60922f, 0.0407957f, 0.0587663f, 0.0332815f, 0.469145f, 0.40867f, 0.857537f, 0.807716f, 0.386968f, 0.0427086f, 0.204949f, 0.7688f, 0.440749f, 0.346744f, 0.121736f, 0.269309f, 0.882475f, 0.570572f, 0.919927f, 0.163374f, 0.0382734f, 0.244256f, 0.608912f, 0.0744772f, 0.199804f, 0.0177384f, 0.562952f, 0.724068f, 0.548369f, 0.709908f, 0.267533f, 0.423085f, 0.801727f, 0.891623f, 0.508236f, 0.449655f, 0.168635f, 0.266666f, 0.618473f, 0.574547f, 0.568718f, 0.0749061f, 0.977498f, 0.230497f, 0.773333f, 0.433951f, 0.753883f, 0.359061f, 0.395892f, 0.999135f, 0.979185f, 0.935089f, 0.717506f, 0.0794712f, 0.110681f, 0.261232f, 0.0781289f, 0.506005f, 0.0258885f, 0.03633f, 0.102523f, 0.975296f, 0.238929f, 0.651561f, 0.875218f, 0.0468139f, 0.754441f, 0.384344f, 0.236493f, 0.424086f, 0.92452f, 0.605211f, 0.542885f, 0.213593f, 0.888459f, 0.645171f, 0.444662f, 0.34014f, 0.0488637f, 0.468849f, 0.154743f, 0.641403f, 0.614473f, 0.382053f, 0.732735f, 0.060139f, 0.575865f, 0.906177f, 0.233673f, 0.972487f, 0.608601f, 0.109103f, 0.933532f, 0.383431f, 0.982875f, 0.75572f, 0.920607f, 0.260268f, 0.967597f, 0.165602f, 0.145568f, 0.794938f, 0.645477f, 0.894148f, 0.488078f, 0.829059f, 0.909446f, 0.952965f, 0.994641f, 0.184752f, 0.862099f, 0.449358f, 0.498181f, 0.803842f, 0.499511f, 0.74574f, 0.345415f, 0.335949f, 0.917581f, 0.502464f, 0.757405f, 0.556406f, 0.802122f, 0.494112f, 0.204485f, 0.280133f, 0.250274f, 0.0719013f, 0.350682f, 0.320498f, 0.0652321f, 0.0980936f, 0.858129f, 0.633885f, 0.687396f, 0.0741431f, 0.921754f, 0.821764f, 0.548975f, 0.291379f, 0.210214f, 0.251713f, 0.56441f, 0.831934f, 0.194279f, 0.984741f, 0.983676f, 0.500923f, 0.88643f, 0.446535f, 0.31721f, 0.43667f, 0.138071f, 0.777664f, 0.899611f, 0.679442f, 0.977321f, 0.48769f, 0.698537f, 0.114834f, 0.732036f, 0.935299f, 0.443224f, 0.606917f, 0.00343731f, 0.918788f, 0.179939f, 0.179491f, 0.0933978f, 0.308888f, 0.835705f, 0.883739f, 0.0795075f, 0.108373f, 0.444887f, 0.0272249f, 0.665521f, 0.936684f, 0.918134f, 0.506515f, 0.0310974f, 0.318531f, 0.334573f, 0.95934f, 0.773097f, 0.870414f, 0.622534f, 0.772598f, 0.267527f, 0.957514f, 0.321456f, 0.433731f, 0.0378987f, 0.303143f, 0.946338f, 0.771424f, 0.968829f, 0.0182637f, 0.153095f, 0.791273f, 0.0869237f, 0.908045f, 0.285497f, 0.456298f, 0.319449f, 0.948262f, 0.0108198f, 0.0791605f, 0.138426f, 0.0493138f, 0.297055f, 0.831732f, 0.846622f, 0.977141f, 0.666201f, 0.0894669f, 0.474935f, 0.597488f, 0.745701f, 0.998088f, 0.259435f, 0.448089f, 0.757547f, 0.695585f, 0.928415f, 0.254816f, 0.391428f, 0.239077f, 0.343674f, 0.707079f, 0.840506f, 0.855248f, 0.0720463f, 0.273765f, 0.414277f, 0.28574f, 0.872958f, 0.600764f, 0.707009f, 0.152044f, 0.749205f, 0.736148f, 0.0434453f, 0.480865f, 0.290354f, 0.081511f, 0.704921f, 0.592041f, 0.987253f, 0.236817f, 0.218098f, 0.636332f, 0.166966f, 0.141217f, 0.616854f, 0.883307f, 0.90587f, 0.213539f, 0.0203048f, 0.152704f, 0.665115f, 0.331953f, 0.917368f, 0.185204f, 0.344195f, 0.0684662f, 0.827963f, 0.697345f, 0.382241f, 0.11038f, 0.432941f, 0.0522772f, 0.340995f, 0.790436f, 0.221271f, 0.153565f, 0.7529f, 0.439033f, 0.0688691f, 0.942102f, 0.0991886f, 0.861902f, 0.653214f, 0.533909f, 0.946111f, 0.811667f, 0.835058f, 0.906783f, 0.889796f, 0.180832f, 0.747069f, 0.189066f, 0.928808f, 0.902241f, 0.374762f, 0.307401f, 0.595117f, 0.357318f, 0.669907f, 0.244712f, 0.977176f, 0.107172f, 0.459304f, 0.942739f, 0.601034f, 0.351095f, 0.969381f, 0.70954f, 0.474592f, 0.849265f, 0.319091f, 0.325441f, 0.810371f, 0.382643f, 0.231443f, 0.896858f, 0.619304f, 0.712551f, 0.818118f, 0.583754f, 0.744646f, 0.948482f, 0.26386f, 0.649881f, 0.762572f, 0.191877f, 0.00646703f, 0.357565f, 0.514021f, 0.272099f, 0.404912f, 0.744339f, 0.0570981f, 0.188718f, 0.488049f, 0.910256f, 0.381391f, 0.780401f, 0.249811f, 0.898262f, 0.562622f, 0.544915f, 0.995939f, 0.163083f, 0.700276f, 0.339799f, 0.371208f, 0.256466f, 0.207121f, 0.838345f, 0.116212f, 0.215533f, 0.0896088f, 0.765079f, 0.746264f, 0.458304f, 0.562406f, 0.53256f, 0.401652f, 0.902194f, 0.728271f, 0.401179f, 0.68653f, 0.982712f, 0.970421f, 0.776619f, 0.335532f, 0.57628f, 0.283883f, 0.337312f, 0.587295f, 0.605534f, 0.257679f, 0.977735f, 0.606707f, 0.384693f, 0.148313f, 0.91652f, 0.876226f, 0.200527f, 0.159544f, 0.478128f, 0.788105f, 0.168764f, 0.820108f, 0.639652f, 0.313061f, 0.300923f, 0.00679751f, 0.128614f, 0.743182f, 0.591579f, 0.227884f, 0.276947f, 0.353419f, 0.449458f, 0.857557f, 0.311474f, 0.168574f, 0.231684f, 0.973643f, 0.467229f, 0.401413f, 0.824339f, 0.648709f, 0.992076f, 0.561148f, 0.539587f, 0.88606f, 0.0101625f, 0.321866f, 0.0864855f, 0.823361f, 0.171294f, 0.851256f, 0.904512f, 0.868669f, 0.461754f, 0.337381f, 0.805864f, 0.282016f, 0.256525f, 0.367835f, 0.36925f, 0.323166f, 0.544029f, 0.260691f, 0.487742f, 0.501015f, 0.871728f, 0.816517f, 0.177717f, 0.349107f, 0.9712f, 0.445068f, 0.554921f, 0.853349f, 0.642411f, 0.274062f, 0.393994f, 0.405508f, 0.979283f, 0.947317f, 0.1413f, 0.804752f, 0.282827f, 0.00433583f, 0.209862f, 0.805964f, 0.240927f, 0.923283f, 0.29844f, 0.577112f, 0.197106f, 0.941629f, 0.0260883f, 0.783104f, 0.428877f, 0.375769f, 0.47005f, 0.618762f, 0.129121f, 0.96162f, 0.133023f, 0.757693f, 0.521303f, 0.425115f, 0.895157f, 0.548349f, 0.789657f, 0.773709f, 0.814288f, 0.219591f, 0.927035f, 0.554026f, 0.73962f, 0.228319f, 0.985027f, 0.203205f, 0.670233f, 0.845321f, 0.122509f, 0.525979f, 0.774974f, 0.35449f, 0.0202482f, 0.0553284f, 0.718248f, 0.968736f, 0.775884f, 0.872025f, 0.249245f, 0.223508f, 0.373448f, 0.873227f, 0.818622f, 0.170087f, 0.45397f, 0.211645f, 0.0912735f, 0.885725f, 0.408843f, 0.816578f, 0.947253f, 0.660385f, 0.905483f, 0.438485f, 0.592493f, 0.964808f, 0.390944f, 0.434461f, 0.624856f, 0.494029f, 0.540508f, 0.51451f, 0.897778f, 0.271091f, 0.917262f, 0.832085f, 0.908695f, 0.363763f, 0.280258f, 0.0206989f, 0.938979f, 0.264247f, 0.348786f, 0.136345f, 0.504444f, 0.774869f, 0.446413f, 0.991975f, 0.810845f, 0.0198101f, 0.938085f, 0.121592f, 0.246139f, 0.872632f, 0.00349399f, 0.447693f, 0.619095f, 0.773532f, 0.911036f, 0.313008f, 0.423558f, 0.266044f, 0.0985083f, 0.357055f, 0.249961f, 0.00837236f, 0.668355f, 0.946894f, 0.287958f, 0.49005f, 0.613826f, 0.459912f, 0.761238f, 0.504224f, 0.905499f, 0.786928f, 0.609886f, 0.457182f, 0.319103f, 0.00407148f, 0.0451923f, 0.938474f, 0.69964f, 0.761635f, 0.648927f, 0.743729f, 0.341382f, 0.0405512f, 0.434753f, 0.430363f, 0.737545f, 0.753841f, 0.309877f, 0.682698f, 0.52824f, 0.282921f, 0.0398223f, 0.108494f, 0.275523f, 0.193035f, 0.0649202f, 0.32645f, 0.571398f, 0.111497f, 0.743052f, 0.880672f, 0.623785f, 0.780881f, 0.928861f, 0.939333f, 0.535115f, 0.481065f, 0.557964f, 0.791385f, 0.131174f, 0.427806f, 0.380435f, 0.128044f, 0.667008f, 0.743779f, 0.0241728f, 0.433819f, 0.787634f, 0.808397f, 0.162604f, 0.601796f, 0.322157f, 0.166734f, 0.544991f, 0.012839f, 0.352769f, 0.575641f, 0.785877f, 0.464232f, 0.436805f, 0.816211f, 0.677876f, 0.200392f, 0.967292f, 0.822277f, 0.510058f, 0.959157f, 0.532251f, 0.173079f, 0.0579285f, 0.426559f, 0.493084f, 0.85396f, 0.68958f, 0.332149f, 0.727335f, 0.301874f, 0.53545f, 0.648203f, 0.113179f, 0.500634f, 0.736473f, 0.228937f, 0.615063f, 0.89921f, 0.275833f, 0.685858f, 0.63812f, 0.426503f, 0.327029f, 0.0407834f, 0.571616f, 0.798809f, 0.61719f, 0.627599f, 0.667153f, 0.511011f, 0.301111f, 0.214023f, 0.745447f, 0.897346f, 0.869188f, 0.404666f, 0.25638f, 0.738289f, 0.95814f, 0.39046f, 0.690222f, 0.486324f, 0.681128f, 0.454494f, 0.131966f, 0.299781f, 0.435809f, 0.64067f, 0.127576f, 0.0933634f, 0.516857f, 0.534826f, 0.062432f, 0.254201f, 0.370317f, 0.276649f, 0.212643f, 0.0365374f, 0.215861f, 0.98183f, 0.558461f, 0.882114f, 0.760298f, 0.0230026f, 0.212627f, 0.452885f, 0.863122f, 0.501076f, 0.261205f, 0.526928f, 0.0882687f, 0.382562f, 0.799093f, 0.217433f, 0.872696f, 0.352978f, 0.162366f, 0.200554f, 0.0853807f, 0.617135f, 0.803623f, 0.053892f, 0.768681f, 0.72646f, 0.186899f, 0.233063f, 0.44126f, 0.351109f, 0.51456f, 0.471347f, 0.14898f, 0.237901f, 0.390519f, 0.401825f, 0.0780749f, 0.927048f, 0.277374f, 0.403331f, 0.817587f, 0.272252f, 0.55869f, 0.0700548f, 0.837055f, 0.658314f, 0.258131f, 0.386913f, 0.161075f, 0.198577f, 0.105789f, 0.364399f, 0.561513f, 0.907905f, 0.23445f, 0.876724f, 0.287997f, 0.337503f, 0.580209f, 0.700581f, 0.893672f, 0.303112f, 0.400399f, 0.900429f, 0.960338f, 0.205897f, 0.13644f, 0.606848f, 0.278969f, 0.444764f, 0.277917f, 0.727935f, 0.261535f, 0.76446f, 0.263156f, 0.361122f, 0.377576f, 0.66583f, 0.203896f, 0.242684f, 0.131856f, 0.00691427f, 0.384593f, 0.0738922f, 0.796443f, 0.386714f, 0.646815f, 0.0465242f, 0.37696f, 0.839695f, 0.516433f, 0.51168f, 0.735366f, 0.313122f, 0.926391f, 0.38615f, 0.328949f, 0.908023f, 0.022474f, 0.944344f, 0.0855576f, 0.181333f, 0.705536f, 0.551495f, 0.789005f, 0.991004f, 0.867341f, 0.156493f, 0.204584f, 0.325171f, 0.358104f, 0.966632f, 0.916216f, 0.350342f, 0.26379f, 0.185092f, 0.676694f, 0.788359f, 0.260773f, 0.629055f, 0.77337f, 0.381681f, 0.890435f, 0.818667f, 0.998066f, 0.220561f, 0.702782f, 0.321089f, 0.120623f, 0.391574f, 0.0824004f, 0.335235f, 0.0896565f, 0.319899f, 0.973759f, 0.109473f, 0.682094f, 0.108171f, 0.465936f, 0.67167f, 0.637918f, 0.541815f, 0.766935f, 0.0189718f, 0.879942f, 0.270628f, 0.932306f, 0.983927f, 0.0468443f, 0.628777f, 0.0181506f, 0.380767f, 0.826538f, 0.733648f, 0.45519f, 0.821057f, 0.513454f, 0.348211f, 0.693584f, 0.148583f, 0.977117f, 0.430738f, 0.61182f, 0.418308f, 0.673495f, 0.3394f, 0.427247f, 0.810305f, 0.184395f, 0.153866f, 0.265563f, 0.478276f, 0.120549f, 0.392185f, 0.297863f, 0.344672f, 0.334586f, 0.0398942f, 0.285567f, 0.654178f, 0.00459614f, 0.57217f, 0.942972f, 0.775396f, 0.709488f, 0.86794f, 0.515648f, 0.594831f, 0.381757f, 0.757027f, 0.727035f, 0.786055f, 0.203072f, 0.276466f, 0.158124f, 0.808501f, 0.102053f, 0.997998f, 0.928943f, 0.339197f, 0.422558f, 0.403526f, 0.811289f, 0.682467f, 0.519364f, 0.985631f, 0.695145f, 0.87326f, 0.520205f, 0.0111355f, 0.809212f, 0.0752159f, 0.687829f, 0.760943f, 0.459425f, 0.892339f, 0.879954f, 0.778171f, 0.923641f, 0.146616f, 0.560208f, 0.94499f, 0.682062f, 0.835312f, 0.575422f, 0.554996f, 0.397026f, 0.97177f, 0.0242832f, 0.0925651f, 0.987186f, 0.936212f, 0.206866f, 0.80444f, 0.38113f, 0.501063f, 0.843346f, 0.864754f, 0.684651f, 0.226487f, 0.832008f, 0.500568f, 0.268452f, 0.35985f, 0.482842f, 0.351491f, 0.117092f, 0.616672f, 0.950603f, 0.442528f, 0.108993f, 0.147171f, 0.0811919f, 0.620192f, 0.164973f, 0.570533f, 0.344352f, 0.227946f, 0.706041f, 0.319002f, 0.836146f, 0.431537f, 0.373224f, 0.830264f, 0.859218f, 0.135633f, 0.204645f, 0.497329f, 0.476283f, 0.898832f, 0.318157f, 0.0518413f, 0.787788f, 0.749823f, 0.990882f, 0.310739f, 0.373329f, 0.00699056f, 0.763808f, 0.189834f, 0.993723f, 0.323071f, 0.556897f, 0.955455f, 0.871199f, 0.783104f, 0.84266f, 0.657628f, 0.118837f, 0.396545f, 0.836526f, 0.421213f, 0.796618f, 0.92848f, 0.196703f, 0.453052f, 0.21279f, 0.0781732f, 0.290214f, 0.85674f, 0.450393f, 0.269058f, 0.231177f, 0.382764f, 0.150857f, 0.959229f, 0.350774f, 0.219011f, 0.505458f, 0.0262893f, 0.753044f, 0.193166f, 0.164141f, 0.228447f, 0.950066f, 0.1562f, 0.465342f, 0.0933231f, 0.51868f, 0.467452f, 0.320578f, 0.333187f, 0.750958f, 0.609314f, 0.557419f, 0.632221f, 0.911576f, 0.051691f, 0.838721f, 0.592503f, 0.556489f, 0.28693f, 0.79994f, 0.186534f, 0.137593f, 0.565969f, 0.208817f, 0.616289f, 0.111668f, 0.339988f, 0.298029f, 0.709292f, 0.373836f, 0.480828f, 0.379162f, 0.882696f, 0.413005f, 0.128272f, 0.557877f, 0.0916656f, 0.323702f, 0.727149f, 0.385419f, 0.945602f, 0.924983f, 0.5581f, 0.605596f, 0.00841205f, 0.790584f, 0.679761f, 0.0157527f, 0.882751f, 0.856038f, 0.822924f, 0.199808f, 0.208543f, 0.319852f, 0.804386f, 0.835573f, 0.428316f, 0.0441746f, 0.401189f, 0.973443f, 0.693568f, 0.77892f, 0.426246f, 0.578862f, 0.884189f, 0.881808f, 0.99988f, 0.41897f, 0.635222f, 0.243414f, 0.687665f, 0.662656f, 0.921206f, 0.931552f, 0.487752f, 0.954991f, 0.770023f, 0.413163f, 0.166651f, 0.146153f, 0.552683f, 0.359568f, 0.430048f, 0.495043f, 0.355809f, 0.985572f, 0.696166f, 0.513866f, 0.838096f, 0.926908f, 0.421392f, 0.394051f, 0.298775f, 0.957049f, 0.44277f, 0.295917f, 0.321999f, 0.200425f, 0.376574f, 0.0706394f, 0.976208f, 0.712279f, 0.127169f, 0.991754f, 0.270863f, 0.363507f, 0.373852f, 0.349077f, 0.713998f, 0.160536f, 0.535705f, 0.457604f, 0.505169f, 0.824704f, 0.239087f, 0.257304f, 0.202766f, 0.236109f, 0.332589f, 0.0238311f, 0.260527f, 0.00371746f, 0.412384f, 0.482204f, 0.711049f, 0.4693f, 0.184225f, 0.831808f, 0.268629f, 0.687246f, 0.364263f, 0.320361f, 0.605563f, 0.431841f, 0.571692f, 0.918598f, 0.0189125f, 0.722953f, 0.197843f, 0.644876f, 0.860719f, 0.254702f, 0.158021f, 0.393331f, 0.535694f, 0.272737f, 0.770715f, 0.362387f, 0.197682f, 0.387888f, 0.71038f, 0.663247f, 0.556153f, 0.138118f, 0.327036f, 0.891755f, 0.444031f, 0.171477f, 0.106749f, 0.920795f, 0.886496f, 0.0492393f, 0.945329f, 0.577699f, 0.973865f, 0.329843f, 0.520608f, 0.396895f, 0.319288f, 0.903879f, 0.962445f, 0.653325f, 0.0848507f, 0.393099f, 0.458913f, 0.981772f, 0.942494f, 0.0410877f, 0.285956f, 0.595612f, 0.942453f, 0.446092f, 0.83528f, 0.898894f, 0.062709f, 0.0657916f, 0.484063f, 0.8508f, 0.227725f, 0.752846f, 0.92173f, 0.480526f, 0.0964081f, 0.948487f, 0.193416f, 0.682024f, 0.501548f, 0.862019f, 0.614713f, 0.950482f, 0.70864f, 0.359331f, 0.0469288f, 0.657403f, 0.203831f, 0.687638f, 0.222811f, 0.483744f, 0.529177f, 0.621497f, 0.485951f, 0.534666f, 0.446161f, 0.250163f, 0.889559f, 0.166582f, 0.920422f, 0.769784f, 0.547718f, 0.465831f, 0.10656f, 0.235391f, 0.0369706f, 0.431307f, 0.772417f, 0.529851f, 0.114619f, 0.484428f, 0.241478f, 0.419788f, 0.499923f, 0.554834f, 0.228483f, 0.18014f, 0.0919056f, 0.280975f, 0.164224f, 0.0682185f, 0.887408f, 0.997653f, 0.945901f, 0.949911f, 0.986903f, 0.713256f, 0.930299f, 0.875153f, 0.134418f, 0.0864959f, 0.197977f, 0.762442f, 0.89542f, 0.951293f, 0.908159f, 0.960262f, 0.356559f, 0.542306f, 0.308836f, 0.31353f, 0.83746f, 0.914564f, 0.932738f, 0.716796f, 0.95133f, 0.977492f, 0.835335f, 0.811688f, 0.867739f, 0.658936f, 0.534261f, 0.465219f, 0.946242f, 0.0916335f, 0.15547f, 0.0837199f, 0.328251f, 0.353232f, 0.52683f, 0.0530961f, 0.844124f, 0.49339f, 0.574155f, 0.259173f, 0.807415f, 0.742004f, 0.367564f, 0.532553f, 0.355819f, 0.160348f, 0.812619f, 0.682341f, 0.460134f, 0.472149f, 0.877119f, 0.691216f, 0.716469f, 0.732743f, 0.101109f, 0.163486f, 0.426536f, 0.00438677f, 0.341102f, 0.127627f, 0.974165f, 0.451785f, 0.582795f, 0.960278f, 0.215978f, 0.30271f, 0.728424f, 0.39953f, 0.0907827f, 0.140596f, 0.666724f, 0.509406f, 0.639216f, 0.583129f, 0.639649f, 0.0487489f, 0.962468f, 0.586461f, 0.255437f, 0.357483f, 0.248231f, 0.824475f, 0.35872f, 0.298363f, 0.756249f, 0.968111f, 0.654413f, 0.55423f, 0.273308f, 0.790274f, 0.789088f, 0.582524f, 0.988269f, 0.613496f, 0.497697f, 0.664909f, 0.158875f, 0.686242f, 0.792637f, 0.5494f, 0.390752f, 0.0232917f, 0.816841f, 0.393919f, 0.803319f, 0.025962f, 0.236398f, 0.771318f, 0.0280134f, 0.955289f, 0.870184f, 0.803725f, 0.90259f, 0.579897f, 0.72182f, 0.831769f, 0.756231f, 0.0269657f, 0.0572628f, 0.795962f, 0.63808f, 0.792817f, 0.465746f, 0.29455f, 0.256751f, 0.349447f, 0.205934f, 0.214258f, 0.587056f, 0.0334117f, 0.65442f, 0.568748f, 0.40156f, 0.797245f, 0.00572588f, 0.777739f, 0.526307f, 0.909452f, 0.799369f, 0.861574f, 0.86602f, 0.345673f, 0.709272f, 0.198909f, 0.454914f, 0.951196f, 0.302842f, 0.956016f, 0.202018f, 0.627276f, 0.42665f, 0.357785f, 0.389542f, 0.391284f, 0.852638f, 0.275424f, 0.524347f, 0.232507f, 0.0251263f, 0.857599f, 0.184222f, 0.165429f, 0.778964f, 0.595748f, 0.84945f, 0.0479109f, 0.573057f, 0.973021f, 0.0168931f, 0.263429f, 0.247403f, 0.214808f, 0.758783f, 0.608823f, 0.450129f, 0.46428f, 0.296656f, 0.54451f, 0.202912f, 0.955391f, 0.410756f, 0.478998f, 0.161717f, 0.74582f, 0.984672f, 0.631941f, 0.845032f, 0.865216f, 0.734043f, 0.913582f, 0.74956f, 0.913796f, 0.852189f, 0.0526545f, 0.620136f, 0.335249f, 0.891606f, 0.04877f, 0.11121f, 0.237891f, 0.610885f, 0.951454f, 0.425678f, 0.855927f, 0.70552f, 0.906134f, 0.962957f, 0.760637f, 0.48084f, 0.472374f, 0.296373f, 0.679627f, 0.0545963f, 0.308886f, 0.0136083f, 0.0843587f, 0.750473f, 0.0169516f, 0.408982f, 0.487306f, 0.44847f, 0.497858f, 0.166848f, 0.536904f, 0.0238632f, 0.532125f, 0.608967f, 0.880586f, 0.916938f, 0.466882f, 0.183992f, 0.99038f, 0.969359f, 0.704156f, 0.0707591f, 0.311747f, 0.643952f, 0.961373f, 0.117798f, 0.0127019f, 0.568872f, 0.611655f, 0.132922f, 0.122016f, 0.328011f, 0.667601f, 0.41521f, 0.84017f, 0.951388f, 0.438889f, 0.998321f, 0.246801f, 0.857503f, 0.549359f, 0.448145f, 0.910791f, 0.663354f, 0.466896f, 0.969398f, 0.185962f, 0.606303f, 0.351741f, 0.554721f, 0.211537f, 0.287294f, 0.450199f, 0.0845679f, 0.895073f, 0.950543f, 0.112979f, 0.366648f, 0.353683f, 0.839115f, 0.78919f, 0.730804f, 0.0128286f, 0.782073f, 0.679974f, 0.938358f, 0.917862f, 0.893455f, 0.40637f, 0.708488f, 0.0402671f, 0.466489f, 0.830445f, 0.207765f, 0.633953f, 0.885332f, 0.186791f, 0.322338f, 0.471009f, 0.195981f, 0.806484f, 0.0898016f, 0.342517f, 0.402745f, 0.897323f, 0.50386f, 0.886677f, 0.775764f, 0.340886f, 0.0178599f, 0.071966f, 0.355321f, 0.526534f, 0.571361f, 0.891612f, 0.535703f, 0.680975f, 0.375466f, 0.473323f, 0.346191f, 0.150443f, 0.0793787f, 0.736522f, 0.156608f, 0.723893f, 0.0418027f, 0.244151f, 0.281301f, 0.242679f, 0.962778f, 0.659296f, 0.0406442f, 0.745364f, 0.0491158f, 0.207134f, 0.29123f, 0.390656f, 0.851116f, 0.775254f, 0.676169f, 0.775072f, 0.201753f, 0.911746f, 0.916252f, 0.490718f, 0.47074f, 0.208377f, 0.437142f, 0.190671f, 0.317374f, 0.716163f, 0.155438f, 0.211228f, 0.0992648f, 0.734662f, 0.622772f, 0.682174f, 0.364472f, 0.426553f, 0.54833f, 0.561615f, 0.346359f, 0.0637497f, 0.134678f, 0.516024f, 0.838203f, 0.0333728f, 0.999817f, 0.405307f, 0.882846f, 0.523026f, 0.247645f, 0.700042f, 0.597067f, 0.846675f, 0.41602f, 0.968026f, 0.0935502f, 0.0795948f, 0.222172f, 0.311875f, 0.522947f, 0.532991f, 0.691376f, 0.456124f, 0.307415f, 0.151083f, 0.518461f, 0.975926f, 0.788788f, 0.992122f, 0.442011f, 0.221183f, 0.126321f, 0.491181f, 0.0782218f, 0.00835354f, 0.0153873f, 0.849414f, 0.781973f, 0.72006f, 0.0754405f, 0.270888f, 0.23216f, 0.678088f, 0.781213f, 0.0681483f, 0.973903f, 0.567992f, 0.305081f, 0.25545f, 0.31452f, 0.601257f, 0.0730959f, 0.324151f, 0.679678f, 0.466336f, 0.0866749f, 0.148334f, 0.844256f, 0.597887f, 0.420549f, 0.485273f, 0.84316f, 0.266977f, 0.782732f, 0.518613f, 0.175381f, 0.831228f, 0.0826966f, 0.95727f, 0.272967f, 0.904909f, 0.714836f, 0.852345f, 0.0263536f, 0.55001f, 0.376085f, 0.527171f, 0.848943f, 0.596237f, 0.213725f, 0.360239f, 0.989413f, 0.793701f, 0.144587f, 0.422074f, 0.252385f, 0.035152f, 0.121605f, 0.66383f, 0.218948f, 0.928759f, 0.123024f, 0.18125f, 0.927481f, 0.736012f, 0.825113f, 0.464479f, 0.947227f, 0.524561f, 0.591668f, 0.562223f, 0.0891991f, 0.870499f, 0.248908f, 0.251128f, 0.185599f, 0.0911438f, 0.0606068f, 0.418797f, 0.251509f, 0.0401454f, 0.708806f, 0.362404f, 0.10882f, 0.205306f, 0.338228f, 0.567909f, 0.956244f, 0.404162f, 0.100574f, 0.675315f, 0.321541f, 0.167381f, 0.054955f, 0.45024f, 0.308185f, 0.180924f, 0.018628f, 0.206415f, 0.486079f, 0.789622f, 0.683993f, 0.186931f, 0.989305f, 0.795853f, 0.311741f, 0.433837f, 0.36134f, 0.469609f, 0.650928f, 0.000152883f, 0.296594f, 0.552277f, 0.822009f, 0.412609f, 0.805788f, 0.340937f, 0.118595f, 0.714683f, 0.0813911f, 0.669685f, 0.89432f, 0.735282f, 0.333414f, 0.800931f, 0.866457f, 0.11765f, 0.0291047f, 0.68426f, 0.97027f, 0.898661f, 0.509765f, 0.452202f, 0.609894f, 0.874029f, 0.651235f, 0.967725f, 0.371908f, 0.719054f, 0.459508f, 0.361349f, 0.248698f, 0.988409f, 0.832164f, 0.267637f, 0.852097f, 0.27578f, 0.145816f, 0.0521819f, 0.497729f, 0.438889f, 0.946071f, 0.244535f, 0.044904f, 0.395039f, 0.220939f, 0.225013f, 0.907887f, 0.439219f, 0.108259f, 0.573008f, 0.327463f, 0.513467f, 0.384904f, 0.394456f, 0.627174f, 0.525882f, 0.105474f, 0.546369f, 0.324586f, 0.128633f, 0.279543f, 0.308454f, 0.399267f, 0.501467f, 0.555036f, 0.482513f, 0.648467f, 0.44224f, 0.0430528f, 0.0470284f, 0.303334f, 0.11172f, 0.344984f, 0.728024f, 0.968193f, 0.998746f, 0.714951f, 0.22583f, 0.304332f, 0.311972f, 0.203844f, 0.932815f, 0.729309f, 0.910439f, 0.59709f, 0.248474f, 0.929357f, 0.966751f, 0.407996f, 0.79199f, 0.314115f, 0.334815f, 0.463686f, 0.271123f, 0.792893f, 0.0220363f, 0.0470036f, 0.364282f, 0.7702f, 0.761336f, 0.365589f, 0.232697f, 0.426116f, 0.767974f, 0.942658f, 0.533315f, 0.187012f, 0.272715f, 0.512104f, 0.0753536f, 0.920745f, 0.749625f, 0.397315f, 0.440973f, 0.157731f, 0.142438f, 0.366963f, 0.98238f, 0.778702f, 0.666278f, 0.119054f, 0.702818f, 0.131588f, 0.316012f, 0.10308f, 0.343372f, 0.015803f, 0.746052f, 0.537793f, 0.179641f, 0.347586f, 0.038689f, 0.0419869f, 0.121337f, 0.274554f, 0.660173f, 0.391787f, 0.197452f, 0.448393f, 0.83109f, 0.000621278f, 0.0744846f, 0.520339f, 0.0639139f, 0.052574f, 0.945808f, 0.286307f, 0.210483f, 0.543927f, 0.0473871f, 0.292822f, 0.540231f, 0.961765f, 0.0334788f, 0.73264f, 0.0930378f, 0.116691f, 0.416015f, 0.275887f, 0.591091f, 0.201551f, 0.812337f, 0.122688f, 0.81739f, 0.214905f, 0.327088f, 0.826873f, 0.231944f, 0.0714683f, 0.100988f, 0.796134f, 0.625878f, 0.148388f, 0.651136f, 0.2714f, 0.777948f, 0.526884f, 0.23928f, 0.177201f, 0.556602f, 0.443363f, 0.711407f, 0.412621f, 0.390755f, 0.652081f, 0.553327f, 0.348046f, 0.690167f, 0.139136f, 0.638676f, 0.719849f, 0.969193f, 0.226688f, 0.0559289f, 0.179877f, 0.349542f, 0.154048f, 0.859177f, 0.348149f, 0.129761f, 0.0752452f, 0.75169f, 0.209575f, 0.0382844f, 0.33134f, 0.217399f, 0.76794f, 0.247522f, 0.137297f, 0.742603f, 0.930618f, 0.252263f, 0.277657f, 0.190196f, 0.960708f, 0.955557f, 0.954958f, 0.126494f, 0.885494f, 0.153457f, 0.508318f, 0.577839f, 0.0704635f, 0.131583f, 0.432711f, 0.587058f, 0.16253f, 0.691451f, 0.512166f, 0.644221f, 0.0817846f, 0.174534f, 0.0211406f, 0.982946f, 0.897297f, 0.143828f, 0.250435f, 0.315898f, 0.485206f, 0.346533f, 0.906953f, 0.658875f, 0.901944f, 0.353259f, 0.649786f, 0.98355f, 0.96192f, 0.0486344f, 0.0733306f, 0.530502f, 0.51493f, 0.669462f, 0.712869f, 0.443836f, 0.375251f, 0.616511f, 0.17634f, 0.679968f, 0.23312f, 0.86475f, 0.0923384f, 0.445303f, 0.0426846f, 0.466083f, 0.115238f, 0.634103f, 0.145757f, 0.964278f, 0.368903f, 0.282854f, 0.857168f, 0.262771f, 0.544067f, 0.975218f, 0.114069f, 0.564343f, 0.00196608f, 0.255016f, 0.121178f, 0.555693f, 0.384026f, 0.541916f, 0.862135f, 0.861063f, 0.061127f, 0.401126f, 0.0718832f, 0.592997f, 0.221712f, 0.665091f, 0.392748f, 0.0284544f, 0.00480383f, 0.331763f, 0.258329f, 0.907294f, 0.882583f, 0.747399f, 0.149289f, 0.684526f, 0.0928661f, 0.47255f, 0.509291f, 0.159447f, 0.0495326f, 0.176567f, 0.875763f, 0.282266f, 0.461443f, 0.304288f, 0.954562f, 0.0246622f, 0.910701f, 0.259072f, 0.235545f, 0.589303f, 0.0198529f, 0.633738f, 0.603969f, 0.125811f, 0.946871f, 0.849569f, 0.219594f, 0.871518f, 0.0852934f, 0.487085f, 0.587286f, 0.0324913f, 0.694259f, 0.833348f, 0.088147f, 0.335614f, 0.856393f, 0.99062f, 0.0129477f, 0.29039f, 0.652248f, 0.494523f, 0.620483f, 0.337184f, 0.307545f, 0.909197f, 0.948583f, 0.735265f, 0.121434f, 0.20092f, 0.794952f, 0.811182f, 0.638097f, 0.0519457f, 0.754894f, 0.681289f, 0.931989f, 0.187526f, 0.854531f, 0.400485f, 0.0750136f, 0.417656f, 0.00785688f, 0.353627f, 0.874442f, 0.914037f, 0.549368f, 0.961301f, 0.693744f, 0.560381f, 0.186382f, 0.892252f, 0.132605f, 0.851413f, 0.528603f, 0.855361f, 0.900714f, 0.381003f, 0.367088f, 0.446593f, 0.0565229f, 0.730683f, 0.798101f, 0.00584498f, 0.337595f, 0.548247f, 0.292728f, 0.704436f, 0.235424f, 0.980487f, 0.266191f, 0.721307f, 0.333607f, 0.517506f, 0.0155455f, 0.570335f, 0.935535f, 0.697771f, 0.529979f, 0.389916f, 0.0594917f, 0.48949f, 0.859058f, 0.573714f, 0.0524481f, 0.800078f, 0.276035f, 0.461155f, 0.609801f, 0.56982f, 0.532928f, 0.647428f, 0.385473f, 0.529303f, 0.90532f, 0.0749909f, 0.311591f, 0.406808f, 0.250333f, 0.428554f, 0.0954362f, 0.299415f, 0.23062f, 0.0758303f, 0.330095f, 0.864771f, 0.802615f, 0.0790398f, 0.795515f, 0.924973f, 0.997844f, 0.231854f, 0.400956f, 0.624391f, 0.33233f, 0.265495f, 0.70581f, 0.278682f, 0.0577491f, 0.61073f, 0.849807f, 0.122588f, 0.740201f, 0.465677f, 0.232248f, 0.362477f, 0.916382f, 0.206151f, 0.342154f, 0.969134f, 0.29218f, 0.048263f, 0.849728f, 0.855132f, 0.311117f, 0.299375f, 0.513553f, 0.993093f, 0.981964f, 0.313915f, 0.361531f, 0.297721f, 0.265988f, 0.287707f, 0.648229f, 0.185482f, 0.824324f, 0.237209f, 0.695025f, 0.0765719f, 0.751906f, 0.774135f, 0.146658f, 0.193966f, 0.0945798f, 0.814675f, 0.676216f, 0.522658f, 0.172905f, 0.891806f, 0.612833f, 0.860443f, 0.0138056f, 0.41671f, 0.111926f, 0.897906f, 0.616594f, 0.0187485f, 0.377173f, 0.2049f, 0.313285f, 0.34492f, 0.761399f, 0.48825f, 0.977209f, 0.376702f, 0.232358f, 0.710273f, 0.614304f, 0.752861f, 0.473428f, 0.619673f, 0.996026f, 0.857368f, 0.280089f, 0.589473f, 0.347378f, 0.761665f, 0.234101f, 0.891007f, 0.963599f, 0.537103f, 0.6287f, 0.928706f, 0.159532f, 0.422172f, 0.472491f, 0.503188f, 0.407906f, 0.965226f, 0.0893149f, 0.0742298f, 0.511836f, 0.0566646f, 0.989978f, 0.810493f, 0.607607f, 0.350978f, 0.532754f, 0.590771f, 0.652036f, 0.519291f, 0.028445f, 0.295716f, 0.554999f, 0.532723f, 0.648494f, 0.958449f, 0.989351f, 0.986528f, 0.85819f, 0.129323f, 0.645523f, 0.701979f, 0.961875f, 0.77837f, 0.37565f, 0.6681f, 0.938844f, 0.150579f, 0.733476f, 0.83588f, 0.414966f, 0.279319f, 0.271954f, 0.697562f, 0.328876f, 0.473416f, 0.507454f, 0.492868f, 0.942246f, 0.0539982f, 0.889359f, 0.562326f, 0.0874451f, 0.634312f, 0.0570977f, 0.828171f, 0.640236f, 0.369778f, 0.225997f, 0.478475f, 0.604702f, 0.7699f, 0.564844f, 0.170982f, 0.772329f, 0.104521f, 0.646618f, 0.910601f, 0.471964f, 0.640794f, 0.772525f, 0.377406f, 0.427506f, 0.246801f, 0.767264f, 0.435218f, 0.909188f, 0.578062f, 0.728639f, 0.281208f, 0.986284f, 0.389003f, 0.883398f, 0.592691f, 0.212958f, 0.299002f, 0.0623587f, 0.732634f, 0.909699f, 0.157832f, 0.94244f, 0.344185f, 0.515051f, 0.526997f, 0.184985f, 0.230327f, 0.848123f, 0.375193f, 0.663042f, 0.216331f, 0.0996718f, 0.845606f, 0.845052f, 0.245986f, 0.505333f, 0.18181f, 0.659141f, 0.0854387f, 0.0770834f, 0.854145f, 0.0621484f, 0.650899f, 0.0464725f, 0.862467f, 0.562941f, 0.695814f, 0.107036f, 0.525648f, 0.489519f, 0.667978f, 0.541843f, 0.965847f, 0.813297f, 0.973964f, 0.832747f, 0.633505f, 0.29484f, 0.925737f, 0.671868f, 0.782548f, 0.0406698f, 0.0388169f, 0.530286f, 0.945494f, 0.385998f, 0.426855f, 0.708667f, 0.446111f, 0.675056f, 0.754651f, 0.49899f, 0.000123706f, 0.82139f, 0.634399f, 0.5122f, 0.0436464f, 0.59634f, 0.210051f, 0.892268f, 0.939437f, 0.768522f, 0.829532f, 0.0121239f, 0.793321f, 0.677915f, 0.402389f, 0.381086f, 0.23661f, 0.700266f, 0.272838f, 0.799273f, 0.142421f, 0.421968f, 0.454904f, 0.125529f, 0.328087f, 0.53168f, 0.571942f, 0.745459f, 0.517662f, 0.185116f, 0.400209f, 0.306928f, 0.784875f, 0.206251f, 0.800349f, 0.998392f, 0.319547f, 0.652783f, 0.307645f, 0.46269f, 0.29107f, 0.272444f, 0.460975f, 0.0228258f, 0.727633f, 0.101851f, 0.839993f, 0.155526f, 0.663295f, 0.00431488f, 0.963233f, 0.272761f, 0.94667f, 0.220149f, 0.654932f, 0.260382f, 0.372564f, 0.208659f, 0.808699f, 0.366168f, 0.978037f, 0.637084f, 0.397285f, 0.341259f, 0.193716f, 0.518331f, 0.711828f, 0.16307f, 0.859098f, 0.154016f, 0.712408f, 0.780152f, 0.321595f, 0.964141f, 0.146146f, 0.026113f, 0.442154f, 0.883813f, 0.0235895f, 0.0497293f, 0.514756f, 0.763943f, 0.510599f, 0.748551f, 0.987939f, 0.556698f, 0.756057f, 0.94576f, 0.325178f, 0.953888f, 0.683355f, 0.365568f, 0.904735f, 0.799573f, 0.0678182f, 0.415067f, 0.776265f, 0.608494f, 0.392023f, 0.633459f, 0.985935f, 0.0337849f, 0.565807f, 0.546233f, 0.428603f, 0.203867f, 0.674154f, 0.510406f, 0.863566f, 0.82298f, 0.82407f, 0.626021f, 0.998042f, 0.543192f, 0.728762f, 0.33349f, 0.908589f, 0.633196f, 0.87327f, 0.841696f, 0.0274701f, 0.6926f, 0.585719f, 0.0407735f, 0.752691f, 0.732556f, 0.36135f, 0.39899f, 0.473126f, 0.957789f, 0.491305f, 0.716153f, 0.268729f, 0.0228071f, 0.940054f, 0.500136f, 0.522634f, 0.792832f, 0.998733f, 0.0497923f, 0.354264f, 0.900295f, 0.08666f, 0.0213953f, 0.116608f, 0.207397f, 0.855374f, 0.616082f, 0.49466f, 0.845885f, 0.563914f, 0.638902f, 0.330478f, 0.703766f, 0.974715f, 0.0469293f, 0.704443f, 0.965969f, 0.566873f, 0.364951f, 0.329615f, 0.326412f, 0.708717f, 0.623441f, 0.805946f, 0.111684f, 0.289626f, 0.360422f, 0.858949f, 0.833835f, 0.145493f, 0.851671f, 0.576223f, 0.0612911f, 0.311278f, 0.544059f, 0.655213f, 0.98384f, 0.17825f, 0.58869f, 0.902854f, 0.623592f, 0.996593f, 0.255208f, 0.938732f, 0.187494f, 0.930822f, 0.731068f, 0.313847f, 0.997787f, 0.484787f, 0.0690296f, 0.972855f, 0.761277f, 0.837678f, 0.21026f, 0.0938839f, 0.605135f, 0.40101f, 0.698054f, 0.870501f, 0.566661f, 0.377853f, 0.734238f, 0.528549f, 0.536111f, 0.828237f, 0.353234f, 0.0212073f, 0.995206f, 0.997322f, 0.801091f, 0.253836f, 0.422774f, 0.439376f, 0.30424f, 0.725407f, 0.661256f, 0.000934579f, 0.536666f, 0.372358f, 0.554708f, 0.566091f, 0.478092f, 0.149034f, 0.866995f, 0.257266f, 0.356091f, 0.514894f, 0.866604f, 0.0946213f, 0.674661f, 0.360633f, 0.0235747f, 0.44877f, 0.196386f, 0.0110327f, 0.564695f, 0.256307f, 0.465752f, 0.940587f, 0.157807f, 0.752528f, 0.236261f, 0.334061f, 0.824516f, 0.750611f, 0.171739f, 0.955024f, 0.155174f, 0.811317f, 0.151852f, 0.370083f, 0.137807f, 0.62584f, 0.676249f, 0.126773f, 0.269f, 0.0133221f, 0.0409992f, 0.909648f, 0.92545f, 0.692274f, 0.808631f, 5.22226e-05f, 0.445186f, 0.907233f, 0.646883f, 0.380297f, 0.145854f, 0.0366033f, 0.543275f, 0.589321f, 0.770368f, 0.76493f, 0.907667f, 0.013469f, 0.45581f, 0.407324f, 0.400907f, 0.64677f, 0.800205f, 0.974743f, 0.199658f, 0.476778f, 0.155743f, 0.511614f, 0.29068f, 0.129454f, 0.403126f, 0.133288f, 0.828854f, 0.797533f, 0.0408515f, 0.929734f, 0.89193f, 0.489751f, 0.242435f, 0.0353366f, 0.884019f, 0.413616f, 0.625557f, 0.165755f, 0.965712f, 0.211118f, 0.0516026f, 0.728871f, 0.343795f, 0.936064f, 0.882308f, 0.508928f, 0.0317102f, 0.522808f, 0.989725f, 0.468226f, 0.900931f, 0.518687f, 0.0558699f, 0.827276f, 0.939467f, 0.824394f, 0.396372f, 0.463108f, 0.991826f, 0.867848f, 0.163382f, 0.341291f, 0.0408896f, 0.891399f, 0.946901f, 0.648964f, 0.331905f, 0.106113f, 0.294778f, 0.5142f, 0.821597f, 0.980835f, 0.251497f, 0.404104f, 0.796816f, 0.907509f, 0.224666f, 0.740501f, 0.746964f, 0.154066f, 0.24623f, 0.965865f, 0.0257201f, 0.349377f, 0.19348f, 0.774477f, 0.673669f, 0.00334104f, 0.197086f, 0.693573f, 0.451286f, 0.630362f, 0.479849f, 0.549777f, 0.499125f, 0.77955f, 0.420615f, 0.904979f, 0.818498f, 0.315175f, 0.676506f, 0.559792f, 0.710228f, 0.535712f, 0.206535f, 0.671435f, 0.94613f, 0.018489f, 0.536387f, 0.171385f, 0.531761f, 0.107144f, 0.440946f, 0.467984f, 0.114912f, 0.644664f, 0.947846f, 0.189076f, 0.79553f, 0.489926f, 0.84867f, 0.44369f, 0.748664f, 0.491966f, 0.424008f, 0.900913f, 0.345689f, 0.170591f, 0.778731f, 0.289108f, 0.563852f, 0.272435f, 0.398348f, 0.917094f, 0.672414f, 0.0790704f, 0.965411f, 0.752036f, 0.858433f, 0.598492f, 0.416661f, 0.838474f, 0.0743478f, 0.332426f, 0.265022f, 0.817673f, 0.0111449f, 0.97324f, 0.585007f, 0.965854f, 0.703864f, 0.430449f, 0.126915f, 0.263827f, 0.713899f, 0.788896f, 0.459829f, 0.74091f, 0.25231f, 0.656755f, 0.878163f, 0.0135091f, 0.971193f, 0.0679634f, 0.695175f, 0.635316f, 0.81517f, 0.816021f, 0.859318f, 0.185514f, 0.536759f, 0.0854268f, 0.0198438f, 0.396785f, 0.165767f, 0.021142f, 0.844817f, 0.278006f, 0.248765f, 0.215202f, 0.650363f, 0.421792f, 0.0231004f, 0.381938f, 0.322261f, 0.95927f, 0.587418f, 0.890705f, 0.0918716f, 0.756206f, 0.307385f, 0.363735f, 0.449385f, 0.214686f, 0.498561f, 0.553097f, 0.771608f, 0.0452504f, 0.789986f, 0.784346f, 0.671845f, 0.347079f, 0.892937f, 0.771831f, 0.244026f, 0.422099f, 0.647207f, 0.55745f, 0.341059f, 0.986261f, 0.854703f, 0.632232f, 0.168835f, 0.122339f, 0.748749f, 0.417043f, 0.334404f, 0.760741f, 0.0747617f, 0.0674361f, 0.909866f, 0.548944f, 0.228904f, 0.307954f, 0.432871f, 0.758219f, 0.912944f, 0.874557f, 0.204402f, 0.608711f, 0.892022f, 0.584904f, 0.693536f, 0.143239f, 0.147304f, 0.65105f, 0.61727f, 0.310902f, 0.268455f, 0.232825f, 0.242917f, 0.284695f, 0.425098f, 0.823516f, 0.103411f, 0.37422f, 0.627118f, 0.165332f, 0.0996086f, 0.229779f, 0.704111f, 0.247478f, 0.442131f, 0.230572f, 0.254941f, 0.668633f, 0.00632709f, 0.902998f, 0.14493f, 0.185539f, 0.988112f, 0.743908f, 0.576387f, 0.270589f, 0.810955f, 0.519569f, 0.587609f, 0.154675f, 0.930571f, 0.336278f, 0.791468f, 0.680265f, 0.156684f, 0.9047f, 0.836809f, 0.0627824f, 0.779515f, 0.951883f, 0.0402845f, 0.667585f, 0.0596659f, 0.00554327f, 0.174659f, 0.559528f, 0.71804f, 0.827254f, 0.752481f, 0.254988f, 0.257062f, 0.243701f, 0.52447f, 0.419191f, 0.246754f, 0.560454f, 0.954979f, 0.106195f, 0.312706f, 0.821995f, 0.691169f, 0.733579f, 0.614484f, 0.395418f, 0.398191f, 0.796054f, 0.729584f, 0.871194f, 0.798215f, 0.714881f, 0.62515f, 0.868716f, 0.233857f, 0.604042f, 0.989776f, 0.68056f, 0.588099f, 0.468001f, 0.410207f, 0.703179f, 0.0518371f, 0.371548f, 0.244777f, 0.676483f, 0.448314f, 0.817105f, 0.261293f, 0.0560965f, 0.305512f, 0.410769f, 0.53507f, 0.810238f, 0.487978f, 0.717539f, 0.229925f, 0.755798f, 0.849829f, 0.935615f, 0.479142f, 0.956455f, 0.178576f, 0.306604f, 0.590131f, 0.461184f, 0.726295f, 0.339509f, 0.931755f, 0.51469f, 0.562869f, 0.233045f, 0.669005f, 0.458389f, 0.304234f, 0.998437f, 0.802958f, 0.00287254f, 0.549664f, 0.405988f, 0.669151f, 0.931069f, 0.443184f, 0.786795f, 0.563031f, 0.904177f, 0.564392f, 0.0695452f, 0.537668f, 0.898558f, 0.161831f, 0.94417f, 0.0660374f, 0.272476f, 0.884633f, 0.448868f, 0.216023f, 0.879965f, 0.536118f, 0.0129657f, 0.918419f, 0.731987f, 0.238858f, 0.919786f, 0.633086f, 0.3979f, 0.991612f, 0.0248761f, 0.466187f, 0.518563f, 0.00135427f, 0.783371f, 0.81312f, 0.845813f, 0.440608f, 0.268748f, 0.177056f, 0.534299f, 0.744045f, 0.5338f, 0.0960609f, 0.770534f, 0.195621f, 0.664168f, 0.810979f, 0.291199f, 0.379753f, 0.270422f, 0.386728f, 0.634924f, 0.124886f, 0.0528745f, 0.0441749f, 0.62043f, 0.362443f, 0.594055f, 0.239577f, 0.378929f, 0.00362681f, 0.899329f, 0.741276f, 0.310037f, 0.591128f, 0.59827f, 0.701737f, 0.754295f, 0.901834f, 0.366462f, 0.424326f, 0.578993f, 0.973271f, 0.979568f, 0.329886f, 0.417171f, 0.600718f, 0.829349f, 0.140139f, 0.591929f, 0.360373f, 0.710421f, 0.20802f, 0.45779f, 0.946281f, 0.804943f, 0.347426f, 0.0933944f, 0.0850293f, 0.678406f, 0.500757f, 0.801478f, 0.856268f, 0.772649f, 0.625221f, 0.811458f, 0.674832f, 0.201819f, 0.348209f, 0.829938f, 0.351239f, 0.767899f, 0.236525f, 0.879076f, 0.307544f, 0.588421f, 0.994447f, 0.484925f, 0.322582f, 0.136779f, 0.0596135f, 0.985532f, 0.823767f, 0.348197f, 0.839272f, 0.446138f, 0.0600339f, 0.188546f, 0.784976f, 0.924112f, 0.0285873f, 0.2615f, 0.420199f, 0.484778f, 0.314624f, 0.650726f, 0.741877f, 0.348454f, 0.493312f, 0.868449f, 0.16494f, 0.101972f, 0.150256f, 0.642995f, 0.609494f, 0.211414f, 0.170353f, 0.155403f, 0.973829f, 0.218438f, 0.771411f, 0.533138f, 0.256995f, 0.508021f, 0.386629f, 0.875839f, 0.471398f, 0.259714f, 0.046088f, 0.661181f, 0.109682f, 0.953305f, 0.426744f, 0.318613f, 0.131064f, 0.528107f, 0.901909f, 0.704159f, 0.390971f, 0.117592f, 0.340228f, 0.0271295f, 0.0343565f, 0.65433f, 0.630972f, 0.643468f, 0.956491f, 0.290683f, 0.210351f, 0.0684726f, 0.879056f, 0.538815f, 0.73113f, 0.321552f, 0.789439f, 0.0220458f, 0.681739f, 0.658808f, 0.0207763f, 0.399012f, 0.442289f, 0.0081904f, 0.965355f, 0.968383f, 0.505478f, 0.734544f, 0.456459f, 0.946505f, 0.5838f, 0.0841368f, 0.871819f, 0.966062f, 0.529957f, 0.0685184f, 0.505448f, 0.00104559f, 0.519425f, 0.0994998f, 0.94876f, 0.187865f, 0.0478558f, 0.203239f, 0.121373f, 0.380502f, 0.476708f, 0.253908f, 0.760487f, 0.524501f, 0.00378336f, 0.424938f, 0.396477f, 0.988718f, 0.675748f, 0.897479f, 0.393099f, 0.192654f, 0.24022f, 0.818951f, 0.452006f, 0.470301f, 0.511348f, 0.152986f, 0.816335f, 0.827905f, 0.900473f, 0.526164f, 0.522903f, 0.597298f, 0.855704f, 0.0843944f, 0.271079f, 0.261082f, 0.632587f, 0.215406f, 0.735931f, 0.963066f, 0.369052f, 0.331391f, 0.856121f, 0.926687f, 0.872205f, 0.193515f, 0.658951f, 0.213902f, 0.419573f, 0.842185f, 0.972646f, 0.928725f, 0.825522f, 0.374839f, 0.380365f, 0.477968f, 0.43664f, 0.792471f, 0.373677f, 0.928721f, 0.891099f, 0.00457181f, 0.0151176f, 0.155974f, 0.231442f, 0.888252f, 0.593933f, 0.567595f, 0.742686f, 0.450106f, 0.46405f, 0.972927f, 0.700518f, 0.746699f, 0.672083f, 0.7745f, 0.258898f, 0.492833f, 0.345259f, 0.117912f, 0.813262f, 0.287436f, 0.766698f, 0.397228f, 0.71379f, 0.912584f, 0.623629f, 0.998045f, 0.335258f, 0.305145f, 0.922401f, 0.233494f, 0.402921f, 0.793861f, 0.317098f, 0.854625f, 0.932591f, 0.448019f, 0.188165f, 0.358034f, 0.628645f, 0.592274f, 0.728908f, 0.664309f, 0.236272f, 0.782148f, 0.406931f, 0.464944f, 0.687448f, 0.641086f, 0.653573f, 0.698409f, 0.722093f, 0.0807905f, 0.14551f, 0.774841f, 0.112036f, 0.611869f, 0.378101f, 0.968302f, 0.935715f, 0.591888f, 0.379607f, 0.0465486f, 0.756377f, 0.708986f, 0.162911f, 0.185895f, 0.292757f, 0.222649f, 0.0541529f, 0.66727f, 0.148261f, 0.798123f, 0.53794f, 0.791816f, 0.339215f, 0.750851f, 0.928108f, 0.202508f, 0.174139f, 0.879858f, 0.785746f, 0.37254f, 0.0724217f, 0.890984f, 0.506575f, 0.179996f, 0.493687f, 0.274805f, 0.829046f, 0.685959f, 0.222078f, 0.477704f, 0.457378f, 0.123367f, 0.307678f, 0.958242f, 0.328171f, 0.704138f, 0.505905f, 0.442728f, 0.478052f, 0.188494f, 0.819543f, 0.695942f, 0.418202f, 0.905725f, 0.539901f, 0.822009f, 0.590204f, 0.986972f, 0.658684f, 0.653203f, 0.759507f, 0.153342f, 0.230653f, 0.975424f, 0.492179f, 0.773185f, 0.984421f, 0.591061f, 0.304929f, 0.285553f, 0.248724f, 0.868777f, 0.165803f, 0.571886f, 0.0382151f, 0.737778f, 0.496819f, 0.593074f, 0.543781f, 0.870749f, 0.473773f, 0.385994f, 0.181543f, 0.983263f, 0.749487f, 0.768961f, 0.869838f, 0.424798f, 0.212381f, 0.91479f, 0.908922f, 0.88557f, 0.0849491f, 0.332601f, 0.994214f, 0.0708667f, 0.68541f, 0.683132f, 0.47715f, 0.463184f, 0.377995f, 0.739698f, 0.854983f, 0.416695f, 0.0590477f, 0.0277457f, 0.972863f, 0.56666f, 0.982644f, 0.0616205f, 0.317295f, 0.610883f, 0.49001f, 0.969976f, 0.473553f, 0.144414f, 0.163364f, 0.263974f, 0.0800355f, 0.799327f, 0.215528f, 0.555437f, 0.355901f, 0.095414f, 0.526159f, 0.922489f, 0.884723f, 0.552319f, 0.221846f, 0.342006f, 0.833543f, 0.0961636f, 0.854414f, 0.225768f, 0.345182f, 0.467698f, 0.2331f, 0.752314f, 0.782751f, 0.838056f, 0.897655f, 0.394737f, 0.709481f, 0.431709f, 0.640688f, 0.374215f, 0.415891f, 0.177086f, 0.849688f, 0.495799f, 0.413364f, 0.869047f, 0.302828f, 0.384615f, 0.777178f, 0.999214f, 0.972958f, 0.295983f, 0.653377f, 0.977729f, 0.91197f, 0.676175f, 0.567707f, 0.747602f, 0.942602f, 0.00302163f, 0.354911f, 0.0682867f, 0.876355f, 0.603126f, 0.307834f, 0.0845982f, 0.140071f, 0.575807f, 0.137581f, 0.130204f, 0.730814f, 0.488753f, 0.1717f, 0.535585f, 0.18301f, 0.974918f, 0.355627f, 0.240771f, 0.32037f, 0.36747f, 0.969411f, 0.097091f, 0.634293f, 0.281204f, 0.857913f, 0.684348f, 0.657576f, 0.267203f, 0.0507833f, 0.543298f, 0.663755f, 0.915279f, 0.223358f, 0.122932f, 0.530327f, 0.307423f, 0.577205f, 0.0229419f, 0.538232f, 0.85606f, 0.55781f, 0.890343f, 0.316649f, 0.0318871f, 0.000642694f, 0.935739f, 0.358688f, 0.536053f, 0.793839f, 0.917359f, 0.790575f, 0.199029f, 0.404584f, 0.839985f, 0.453373f, 0.312628f, 0.838703f, 0.485974f, 0.436318f, 0.958224f, 0.235372f, 0.765102f, 0.909398f, 0.414794f, 0.297755f, 0.969311f, 0.880834f, 0.257721f, 0.455292f, 0.0254474f, 0.338577f, 0.11561f, 0.970854f, 0.768593f, 0.930545f, 0.109438f, 0.217873f, 0.716096f, 0.447394f, 0.848354f, 0.899927f, 0.582273f, 0.354063f, 0.410766f, 0.543359f, 0.718875f, 0.82564f, 0.917152f, 0.503246f, 0.995162f, 0.718001f, 0.945581f, 0.435387f, 0.203257f, 0.650221f, 0.801618f, 0.219279f, 0.0379758f, 0.61318f, 0.404316f, 0.496502f, 0.203822f, 0.799091f, 0.696386f, 0.540442f, 0.494644f, 0.612522f, 0.820322f, 0.642791f, 0.74066f, 0.762133f, 0.71405f, 0.424672f, 0.0449132f, 0.179444f, 0.0435775f, 0.471613f, 0.209735f, 0.921058f, 0.115136f, 0.403898f, 0.610307f, 0.704204f, 0.0167934f, 0.460815f, 0.262622f, 0.856886f, 0.587343f, 0.801911f, 0.183914f, 0.185664f, 0.0466625f, 0.269531f, 0.262823f, 0.437082f, 0.220476f, 0.614148f, 0.594051f, 0.854244f, 0.745051f, 0.28351f, 0.034429f, 0.308382f, 0.505497f, 0.0232656f, 0.493913f, 0.34385f, 0.0164371f, 0.769361f, 0.0158044f, 0.474548f, 0.0477609f, 0.762977f, 0.493348f, 0.108953f, 0.206988f, 0.397475f, 0.486607f, 0.257376f, 0.360176f, 0.283457f, 0.293826f, 0.280395f, 0.185887f, 0.528896f, 0.571727f, 0.861589f, 0.962315f, 0.290201f, 0.405897f, 0.509888f, 0.81183f, 0.0305172f, 0.914301f, 0.381285f, 0.522811f, 0.342282f, 0.337673f, 0.378216f, 0.153737f, 0.853185f, 0.566533f, 0.731384f, 0.0867227f, 0.309118f, 0.241587f, 0.513134f, 0.95369f, 0.465721f, 0.260558f, 0.835028f, 0.113438f, 0.342119f, 0.425102f, 0.293586f, 0.744854f, 0.682647f, 0.115621f, 0.589579f, 0.201552f, 0.673105f, 0.27366f, 0.874928f, 0.380599f, 0.657444f, 0.156169f, 0.427213f, 0.640715f, 0.668032f, 0.522963f, 0.11628f, 0.992925f, 0.324943f, 0.897585f, 0.547061f, 0.43195f, 0.524784f, 0.293176f, 0.0135561f, 0.256651f, 0.783486f, 0.825907f, 0.274228f, 0.7481f, 0.547017f, 0.42749f, 0.999425f, 0.0670568f, 0.00511866f, 0.731329f, 0.972605f, 0.708638f, 0.228876f, 0.0474373f, 0.885787f, 0.217058f, 0.402035f, 0.433456f, 0.169397f, 0.462544f, 0.275932f, 0.608642f, 0.566552f, 0.528844f, 0.99498f, 0.64558f, 0.896656f, 0.925517f, 0.570801f, 0.760168f, 0.346442f, 0.887954f, 0.734144f, 0.110051f, 0.251261f, 0.458466f, 0.472215f, 0.857166f, 0.173167f, 0.293479f, 0.923124f, 0.158581f, 0.613774f, 0.129953f, 0.171725f, 0.0886381f, 0.460035f, 0.0062677f, 0.824812f, 0.750263f, 0.353371f, 0.39708f, 0.461503f, 0.981582f, 0.99504f, 0.374635f, 0.707599f, 0.756032f, 0.340171f, 0.854328f, 0.592721f, 0.925933f, 0.249643f, 0.983378f, 0.619575f, 0.595765f, 0.556694f, 0.916095f, 0.0959277f, 0.0916626f, 0.219815f, 0.473381f, 0.401479f, 0.360776f, 0.203101f, 0.279391f, 0.68334f, 0.285407f, 0.289709f, 0.786986f, 0.00396632f, 0.953997f, 0.264644f, 0.719435f, 0.491971f, 0.282312f, 0.521394f, 0.39459f, 0.787033f, 0.360966f, 0.61271f, 0.0769574f, 0.640273f, 0.725047f, 0.066325f, 0.83893f, 0.913585f, 0.686559f, 0.634176f, 0.494692f, 0.901601f, 0.974235f, 0.95669f, 0.294684f, 0.102111f, 0.573252f, 0.368238f, 0.431652f, 0.709033f, 0.53859f, 0.74427f, 0.0197083f, 0.654015f, 0.740016f, 0.290272f, 0.891679f, 0.472455f, 0.345248f, 0.128804f, 0.152924f, 0.618935f, 0.736109f, 0.158865f, 0.415915f, 0.364294f, 0.414978f, 0.388488f, 0.0551452f, 0.16907f, 0.256867f, 0.499739f, 0.751166f, 0.144495f, 0.898076f, 0.155751f, 0.776259f, 0.467601f, 0.46448f, 0.623566f, 0.721487f, 0.767064f, 0.743511f, 0.205517f, 0.835401f, 0.580185f, 0.884513f, 0.434778f, 0.0642024f, 0.342705f, 0.248814f, 0.970129f, 0.0709074f, 0.322985f, 0.539647f, 0.912792f, 0.339331f, 0.368452f, 0.179004f, 0.407487f, 0.716975f, 0.851857f, 0.51384f, 0.490104f, 0.0778379f, 0.108685f, 0.161458f, 0.11773f, 0.448846f, 0.828538f, 0.584346f, 0.153791f, 0.493178f, 0.310083f, 0.0396996f, 0.145746f, 0.743706f, 0.0227019f, 0.394465f, 0.0852307f, 0.842261f, 0.74815f, 0.222245f, 0.438022f, 0.854282f, 0.633587f, 0.316247f, 0.464999f, 0.948878f, 0.667656f, 0.820542f, 0.34369f, 0.215555f, 0.946595f, 0.721601f, 0.22043f, 0.261352f, 0.612186f, 0.870671f, 0.714755f, 0.36966f, 0.175521f, 0.237019f, 0.000851959f, 0.906143f, 0.833103f, 0.638396f, 0.601893f, 0.926978f, 0.390023f, 0.255927f, 0.451647f, 0.834361f, 0.652625f, 0.401701f, 0.99337f, 0.667848f, 0.659488f, 0.124219f, 0.486276f, 0.548035f, 0.400169f, 0.151954f, 0.17069f, 0.416361f, 0.0465857f, 0.759331f, 0.628014f, 0.108069f, 0.755979f, 0.0579521f, 0.101546f, 0.0659961f, 0.505494f, 0.954371f, 0.361013f, 0.536745f, 0.868043f, 0.59628f, 0.372852f, 0.461984f, 0.851089f, 0.307691f, 0.240107f, 0.196247f, 0.985667f, 0.758297f, 0.543791f, 0.257839f, 0.915945f, 0.732074f, 0.0586091f, 0.629994f, 0.445587f, 0.434561f, 0.360788f, 0.89158f, 0.871263f, 0.496539f, 0.965595f, 0.532112f, 0.17287f, 0.774456f, 0.702859f, 0.980716f, 0.72158f, 0.750644f, 0.520465f, 0.689206f, 0.00144652f, 0.146425f, 0.567374f, 0.710851f, 0.884231f, 0.861781f, 0.765327f, 0.206968f, 0.771618f, 0.444785f, 0.239685f, 0.0222081f, 0.525997f, 0.318925f, 0.917438f, 0.963911f, 0.294071f, 0.523117f, 0.128301f, 0.328972f, 0.139177f, 0.363254f, 0.24417f, 0.0443521f, 0.973206f, 0.848795f, 0.606445f, 0.404438f, 0.618627f, 0.660174f, 0.414985f, 0.67641f, 0.577587f, 0.190155f, 0.270518f, 0.393263f, 0.294353f, 0.88946f, 0.221099f, 0.85264f, 0.101308f, 0.659589f, 0.439255f, 0.781684f, 0.572417f, 0.212141f, 0.716473f, 0.582686f, 0.403213f, 0.794935f, 0.309954f, 0.067165f, 0.796011f, 0.516649f, 0.0718782f, 0.0992761f, 0.507827f, 0.0684038f, 0.666391f, 0.884733f, 0.183418f, 0.490677f, 0.661127f, 0.617068f, 0.85481f, 0.398186f, 0.476335f, 0.388993f, 0.167819f, 0.509307f, 0.0938016f, 0.0734592f, 0.248536f, 0.989461f, 0.273933f, 0.509542f, 0.433594f, 0.963002f, 0.0171066f, 0.504101f, 0.524548f, 0.233202f, 0.782803f, 0.820336f, 0.767046f, 0.259418f, 0.651923f, 0.956426f, 0.216327f, 0.47554f, 0.273976f, 0.616272f, 0.955602f, 0.735892f, 0.995032f, 0.000578952f, 0.979426f, 0.939597f, 0.546853f, 0.761098f, 0.259445f, 0.920414f, 0.749957f, 0.195534f, 0.0838292f, 0.325312f, 0.925283f, 0.697592f, 0.995375f, 0.0368342f, 0.398746f, 0.554275f, 0.395625f, 0.387227f, 0.103134f, 0.982489f, 0.851634f, 0.697924f, 0.0178833f, 0.507153f, 0.0122278f, 0.23025f, 0.648683f, 0.400998f, 0.195654f, 0.675248f, 0.252502f, 0.991594f, 0.784603f, 0.544893f, 0.615543f, 0.152306f, 0.322445f, 0.793154f, 0.915662f, 0.983772f, 0.763142f, 0.57135f, 0.82519f, 0.202078f, 0.522719f, 0.885207f, 0.275491f, 0.595655f, 0.818549f, 0.0524568f, 0.250328f, 0.880077f, 0.322784f, 0.572431f, 0.215638f, 0.878305f, 0.383094f, 0.74717f, 0.145541f, 0.0785346f, 0.999607f, 0.882858f, 0.356455f, 0.678831f, 0.541308f, 0.811356f, 0.105513f, 0.366959f, 0.350074f, 0.390021f, 0.0786344f, 0.599412f, 0.398567f, 0.973736f, 0.703613f, 0.435228f, 0.686653f, 0.538779f, 0.7215f, 0.482741f, 0.615045f, 0.559884f, 0.257104f, 0.69479f, 0.893027f, 0.473533f, 0.328841f, 0.489412f, 0.671038f, 0.0651754f, 0.490045f, 0.0542036f, 0.887402f, 0.874585f, 0.00341829f, 0.89898f, 0.618432f, 0.950719f, 0.174197f, 0.883646f, 0.0387309f, 0.928414f, 0.786324f, 0.0760994f, 0.341326f, 0.301425f, 0.977251f, 0.8747f, 0.446584f, 0.386461f, 0.396124f, 0.877713f, 0.148695f, 0.526064f, 0.152571f, 0.599459f, 0.326556f, 0.144899f, 0.0794079f, 0.691528f, 0.787482f, 0.985864f, 0.230712f, 0.512173f, 0.670602f, 0.42419f, 0.392844f, 0.62434f, 0.0253744f, 0.245074f, 0.940214f, 0.962911f, 0.771694f, 0.975384f, 0.434182f, 0.188041f, 0.884865f, 0.126492f, 0.439198f, 0.27441f, 0.975909f, 0.20862f, 0.908787f, 0.0162853f, 0.820684f, 0.351949f, 0.516667f, 0.0583989f, 0.916234f, 0.610965f, 0.917754f, 0.75513f, 0.606843f, 0.719708f, 0.337624f, 0.0756874f, 0.729834f, 0.231996f, 0.992609f, 0.682814f, 0.531456f, 0.909809f, 0.0926208f, 0.494448f, 0.359783f, 0.607765f, 0.946855f, 0.270242f, 0.283128f, 0.324045f, 0.481104f, 0.576593f, 0.522148f, 0.942568f, 0.38905f, 0.331622f, 0.00690282f, 0.0136987f, 0.986947f, 0.455013f, 0.191329f, 0.244427f, 0.216666f, 0.983571f, 0.742834f, 0.76621f, 0.739938f, 0.158041f, 0.453855f, 0.814879f, 0.172858f, 0.726555f, 0.383684f, 0.560341f, 0.714618f, 0.277704f, 0.830432f, 0.166897f, 0.825986f, 0.860308f, 0.360711f, 0.419045f, 0.637577f, 0.495151f, 0.20889f, 0.586641f, 0.0216315f, 0.428847f, 0.580844f, 0.935929f, 0.270237f, 0.919914f, 0.080893f, 0.676047f, 0.275461f, 0.727691f, 0.417885f, 0.84971f, 0.483685f, 0.500607f, 0.0224612f, 0.922548f, 0.336375f, 0.994413f, 0.0786807f, 0.989071f, 0.164141f, 0.816234f, 0.752992f, 0.844229f, 0.333462f, 0.871827f, 0.845022f, 0.408043f, 0.174995f, 0.402443f, 0.247912f, 0.760893f, 0.958729f, 0.390989f, 0.323057f, 0.599271f, 0.919247f, 0.944151f, 0.875851f, 0.663034f, 0.85682f, 0.528876f, 0.722132f, 0.298359f, 0.443992f, 0.549704f, 0.491908f, 0.121226f, 0.589618f, 0.756258f, 0.423677f, 0.274582f, 0.14371f, 0.339394f, 0.575378f, 0.203654f, 0.0561348f, 0.0263823f, 0.730298f, 0.605367f, 0.852316f, 0.737382f, 0.276795f, 0.0408388f, 0.366526f, 0.949913f, 0.240951f, 0.902703f, 0.685708f, 0.138125f, 0.414444f, 0.457696f, 0.752413f, 0.430569f, 0.904826f, 0.698174f, 0.708283f, 0.538915f, 0.230378f, 0.52034f, 0.714914f, 0.108449f, 0.648489f, 0.612991f, 0.471486f, 0.267029f, 0.680143f, 0.933346f, 0.940395f, 0.652139f, 0.0067817f, 0.88264f, 0.505585f, 0.420107f, 0.460078f, 0.0731711f, 0.718455f, 0.0584943f, 0.894402f, 0.998216f, 0.183412f, 0.995003f, 0.190485f, 0.410254f, 0.378028f, 0.194847f, 0.897731f, 0.126729f, 0.223848f, 0.405301f, 0.48036f, 0.28306f, 0.731551f, 0.217869f, 0.17749f, 0.284244f, 0.280107f, 0.940153f, 0.806977f, 0.0378991f, 0.420325f, 0.667665f, 0.07608f, 0.826678f, 0.728906f, 0.499561f, 0.58638f, 0.156616f, 0.416205f, 0.956702f, 0.883833f, 0.292335f, 0.346829f, 0.0405572f, 0.18781f, 0.915004f, 0.518918f, 0.781497f, 0.468654f, 0.261209f, 0.971299f, 0.266337f, 0.482536f, 0.0581405f, 0.311585f, 0.995574f, 0.535754f, 0.421429f, 0.457745f, 0.114087f, 0.0277285f, 0.53857f, 0.55278f, 0.291556f, 0.423342f, 0.639879f, 0.761468f, 0.379133f, 0.580781f, 0.647024f, 0.966475f, 0.363773f, 0.352841f, 0.994402f, 0.66689f, 0.96636f, 0.0824195f, 0.453254f, 0.722302f, 0.75103f, 0.351102f, 0.933818f, 0.632064f, 0.806556f, 0.617393f, 0.460752f, 0.842769f, 0.439656f, 0.693975f, 0.809105f, 0.495239f, 0.936034f, 0.968222f, 0.0669405f, 0.651868f, 0.553302f, 0.856937f, 0.586286f, 0.398986f, 0.843976f, 0.381932f, 0.204986f, 0.454772f, 0.635495f, 0.788241f, 0.579793f, 0.784523f, 0.711034f, 0.120702f, 0.865627f, 0.850707f, 0.236543f, 0.488028f, 0.499958f, 0.193758f, 0.950078f, 0.463927f, 0.553199f, 0.682081f, 0.103961f, 0.787376f, 0.170691f, 0.94369f, 0.412624f, 0.821339f, 0.490102f, 0.1178f, 0.318214f, 0.279096f, 0.273385f, 0.234091f, 0.0329628f, 0.568795f, 0.99155f, 0.202706f, 0.833978f, 0.397504f, 0.148435f, 0.128027f, 0.00865821f, 0.920576f, 0.617613f, 0.556491f, 0.277433f, 0.922053f, 0.253828f, 0.261701f, 0.922062f, 0.527259f, 0.254352f, 0.0882278f, 0.269511f, 0.829041f, 0.981663f, 0.543658f, 0.734067f, 0.0305914f, 0.150435f, 0.425536f, 0.734781f, 0.766622f, 0.354839f, 0.905933f, 0.0114792f, 0.920432f, 0.305249f, 0.549855f, 0.226855f, 0.507703f, 0.878084f, 0.855841f, 0.415489f, 0.0967012f, 0.0705745f, 0.948124f, 0.112601f, 0.668636f, 0.832847f, 0.598723f, 0.134116f, 0.416556f, 0.782924f, 0.821437f, 0.799143f, 0.224983f, 0.601066f, 0.59193f, 0.463013f, 0.35248f, 0.175495f, 0.421776f, 0.114031f, 0.924254f, 0.629984f, 0.146712f, 0.965943f, 0.216638f, 0.153906f, 0.589181f, 0.748575f, 0.238596f, 0.777913f, 0.107996f, 0.542583f, 0.216307f, 0.327313f, 0.67431f, 0.911768f, 0.720548f, 0.685776f, 0.538077f, 0.164609f, 0.761278f, 0.372187f, 0.10697f, 0.0469801f, 0.713064f, 0.175164f, 0.363707f, 0.402513f, 0.61414f, 0.0445109f, 0.352064f, 0.196112f, 0.332916f, 0.277907f, 0.926622f, 0.501156f, 0.193773f, 0.654004f, 0.877652f, 0.136468f, 0.0841603f, 0.900932f, 0.487381f, 0.872843f, 0.128697f, 0.0326086f, 0.238987f, 0.959209f, 0.838067f, 0.415121f, 0.54681f, 0.908723f, 0.586238f, 0.252606f, 0.465217f, 0.663561f, 0.929449f, 0.872382f, 0.130099f, 0.619685f, 0.110434f, 0.819971f, 0.555038f, 0.242786f, 0.0414619f, 0.691008f, 0.167812f, 0.425525f, 0.204575f, 0.802411f, 0.193472f, 0.00331085f, 0.325937f, 0.33384f, 0.231158f, 0.471596f, 0.283891f, 0.961667f, 0.80617f, 0.391424f, 0.328921f, 0.55692f, 0.943881f, 0.589228f, 0.578214f, 0.0285151f, 0.279367f, 0.454733f, 0.0858754f, 0.791617f, 0.265243f, 0.244759f, 0.0300598f, 0.391804f, 0.772079f, 0.707331f, 0.529046f, 0.240202f, 0.687263f, 0.794243f, 0.619298f, 0.593131f, 0.462572f, 0.525417f, 0.963625f, 0.594954f, 0.863234f, 0.0445225f, 0.530425f, 0.179533f, 0.280874f, 0.734682f, 0.578481f, 0.766435f, 0.66733f, 0.780478f, 0.92408f, 0.713012f, 0.910428f, 0.915277f, 0.938228f, 0.0791011f, 0.172629f, 0.510816f, 0.571722f, 0.700757f, 0.51459f, 0.146138f, 0.572696f, 0.543248f, 0.196256f, 0.210629f, 0.307071f, 0.113425f, 0.0253573f, 0.276641f, 0.874393f, 0.542933f, 0.0449171f, 0.64137f, 0.907429f, 0.453603f, 0.904712f, 0.815911f, 0.0278734f, 0.659648f, 0.523139f, 0.674296f, 0.392313f, 0.0491121f, 0.943228f, 0.649367f, 0.483467f, 0.353026f, 0.706945f, 0.634937f, 0.553236f, 0.10229f, 0.159277f, 0.121844f, 0.898335f, 0.0309602f, 0.635292f, 0.621516f, 0.673105f, 0.0247392f, 0.544543f, 0.957866f, 0.730262f, 0.789455f, 0.456272f, 0.752565f, 0.538326f, 0.241237f, 0.0172564f, 0.0886359f, 0.919896f, 0.898584f, 0.1415f, 0.391898f, 0.369437f, 0.401157f, 0.0449611f, 0.380616f, 0.86737f, 0.5042f, 0.0118761f, 0.025319f, 0.127751f, 0.704699f, 0.187504f, 0.221951f, 0.346842f, 0.941551f, 0.241693f, 0.730141f, 0.678747f, 0.105955f, 0.138252f, 0.595356f, 0.173004f, 0.0262196f, 0.608228f, 0.735464f, 0.65623f, 0.658145f, 0.903512f, 0.0619312f, 0.307118f, 0.523098f, 0.38022f, 0.182865f, 0.205431f, 0.554103f, 0.689677f, 0.687046f, 0.398688f, 0.220187f, 0.987921f, 0.806736f, 0.18512f, 0.100951f, 0.0318992f, 0.395293f, 0.894413f, 0.391095f, 0.536072f, 0.365466f, 0.900981f, 0.44976f, 0.745292f, 0.00269919f, 0.161792f, 0.804464f, 0.402976f, 0.514242f, 0.894882f, 0.467178f, 0.443345f, 0.557251f, 0.662993f, 0.169558f, 0.177831f, 0.340122f, 0.230403f, 0.7209f, 0.900017f, 0.348684f, 0.760011f, 0.586478f, 0.540105f, 0.959653f, 0.258187f, 0.557428f, 0.81617f, 0.470539f, 0.350093f, 0.924689f, 0.396413f, 0.605822f, 0.809761f, 0.393909f, 0.847537f, 0.760716f, 0.965154f, 0.274259f, 0.423478f, 0.578721f, 0.626461f, 0.482197f, 0.47902f, 0.112662f, 0.300021f, 0.952363f, 0.871049f, 0.164691f, 0.587641f, 0.986854f, 0.785386f, 0.685767f, 0.361704f, 0.383185f, 0.718012f, 0.887985f, 0.816043f, 0.151235f, 0.807262f, 0.923368f, 0.170587f, 0.0453598f, 0.354248f, 0.818845f, 0.433263f, 0.459893f, 0.101068f, 0.332779f, 0.312316f, 0.575915f, 0.346561f, 0.57309f, 0.651234f, 0.787049f, 0.875996f, 0.781741f, 0.281502f, 0.851361f, 0.700611f, 0.788317f, 0.162706f, 0.274352f, 0.204869f, 0.538933f, 0.612158f, 0.986538f, 0.293636f, 0.253022f, 0.983186f, 0.69333f, 0.4558f, 0.57389f, 0.541949f, 0.242896f, 0.315584f, 0.128803f, 0.619416f, 0.73207f, 0.49515f, 0.414852f, 0.221251f, 0.32171f, 0.450767f, 0.613941f, 0.0635788f, 0.365669f, 0.0673486f, 0.657975f, 0.809637f, 0.831814f, 0.767476f, 0.113712f, 0.67349f, 0.00897053f, 0.0243029f, 0.113721f, 0.958285f, 0.931447f, 0.245056f, 0.226525f, 0.633526f, 0.0713207f, 0.450486f, 0.320382f, 0.247415f, 0.346027f, 0.95667f, 0.680298f, 0.646958f, 0.160396f, 0.103668f, 0.334639f, 0.0190628f, 0.180642f, 0.996745f, 0.848917f, 0.45189f, 0.828155f, 0.695767f, 0.222793f, 0.506566f, 0.869116f, 0.530392f, 0.367377f, 0.268675f, 0.864288f, 0.485946f, 0.43006f, 0.641621f, 0.332084f, 0.976041f, 0.460188f, 0.860068f, 0.435064f, 0.115542f, 0.30856f, 0.187088f, 0.0506429f, 0.702233f, 0.146119f, 0.954782f, 0.0949941f, 0.740496f, 0.531023f, 0.161372f, 0.388384f, 0.990412f, 0.515755f, 0.55135f, 0.599431f, 0.615233f, 0.112216f, 0.882591f, 0.73124f, 0.606734f, 0.0380082f, 0.54616f, 0.361464f, 0.261464f, 0.608565f, 0.204731f, 0.622548f, 0.260873f, 0.829266f, 0.681501f, 0.472059f, 0.248992f, 0.109236f, 0.643807f, 0.559218f, 0.499386f, 0.0776536f, 0.690507f, 0.0131072f, 0.00128421f, 0.859237f, 0.953749f, 0.492431f, 0.983477f, 0.451742f, 0.282001f, 0.84973f, 0.412843f, 0.815722f, 0.571076f, 0.928998f, 0.00366933f, 0.565809f, 0.02758f, 0.426682f, 0.0234673f, 0.0315049f, 0.507217f, 0.112427f, 0.223982f, 0.77988f, 0.0847727f, 0.616534f, 0.869932f, 0.0127468f, 0.00376011f, 0.212537f, 0.266691f, 0.583224f, 0.191814f, 0.892874f, 0.219661f, 0.847788f, 0.596181f, 0.326485f, 0.131051f, 0.502695f, 0.1665f, 0.191719f, 0.430664f, 0.770787f, 0.80924f, 0.415358f, 0.362276f, 0.992043f, 0.212586f, 0.10825f, 0.480884f, 0.578593f, 0.283246f, 0.498406f, 0.846395f, 0.995079f, 0.196608f, 0.204897f, 0.576864f, 0.484274f, 0.722582f, 0.439047f, 0.707682f, 0.961247f, 0.257391f, 0.409792f, 0.970793f, 0.369866f, 0.813647f, 0.260741f, 0.578559f, 0.98362f, 0.760652f, 0.748633f, 0.729462f, 0.70189f, 0.595779f, 0.896848f, 0.153314f, 0.304294f, 0.392959f, 0.580822f, 0.196154f, 0.0693971f, 0.493143f, 0.445022f, 0.0757038f, 0.744543f, 0.586538f, 0.107481f, 0.633554f, 0.323894f, 0.382525f, 0.864584f, 0.348254f, 0.482544f, 0.904677f, 0.0130212f, 0.708715f, 0.548724f, 0.89729f, 0.269458f, 0.720173f, 0.651139f, 0.443372f, 0.851238f, 0.932782f, 0.588859f, 0.411447f, 0.0490516f, 0.260104f, 0.597765f, 0.550021f, 0.999469f, 0.429038f, 0.161861f, 0.955556f, 0.315843f, 0.331969f, 0.726946f, 0.743858f, 0.460919f, 0.863003f, 0.299829f, 0.648156f, 0.409192f, 0.282788f, 0.876251f, 0.411816f, 0.302483f, 0.400292f, 0.851434f, 0.451902f, 0.831296f, 0.560187f, 0.596311f, 0.775953f, 0.101386f, 0.506111f, 0.0104792f, 0.00547416f, 0.252678f, 0.17857f, 0.78436f, 0.657489f, 0.0389345f, 0.466887f, 0.405835f, 0.604221f, 0.0771849f, 0.64215f, 0.354854f, 0.103845f, 0.22058f, 0.162561f, 0.438923f, 0.211571f, 0.299419f, 0.434235f, 0.66236f, 0.560895f, 0.245476f, 0.67336f, 0.740411f, 0.412394f, 0.0717185f, 0.128178f, 0.27888f, 0.236083f, 0.364672f, 0.0376948f, 0.448312f, 0.641603f, 0.871354f, 0.137495f, 0.588375f, 0.916368f, 0.734254f, 0.0942038f, 0.762401f, 0.808585f, 0.592534f, 0.335929f, 0.520638f, 0.851411f, 0.69917f, 0.461936f, 0.520234f, 0.47287f, 0.903557f, 0.52273f, 0.570016f, 0.690135f, 0.0334597f, 0.544777f, 0.936128f, 0.750147f, 0.427645f, 0.287573f, 0.273406f, 0.569816f, 0.890769f, 0.926121f, 0.916869f, 0.639991f, 0.554234f, 0.73795f, 0.727385f, 0.380851f, 0.220515f, 0.786247f, 0.980673f, 0.0897098f, 0.494517f, 0.447723f, 0.524713f, 0.480446f, 0.930906f, 0.886619f, 0.745773f, 0.42244f, 0.839893f, 0.680388f, 0.137976f, 0.224613f, 0.556411f, 0.237616f, 0.90556f, 0.205239f, 0.311139f, 0.3102f, 0.499394f, 0.679864f, 0.647738f, 0.314856f, 0.348947f, 0.916257f, 0.938318f, 0.347793f, 0.642121f, 0.0115018f, 0.507953f, 0.678153f, 0.536422f, 0.284329f, 0.308285f, 0.106443f, 0.130605f, 0.0707415f, 0.207012f, 0.569307f, 0.744861f, 0.895839f, 0.763779f, 0.856683f, 0.251718f, 0.0933365f, 0.832461f, 0.544165f, 0.255046f, 0.792613f, 0.792149f, 0.882607f, 0.614716f, 0.144427f, 0.130996f, 0.402445f, 0.732257f, 0.198873f, 0.559896f, 0.457659f, 0.780888f, 0.0565166f, 0.420061f, 0.85289f, 0.0339575f, 0.851365f, 0.915661f, 0.734664f, 0.313297f, 0.0537396f, 0.192802f, 0.0936432f, 0.0149107f, 0.599219f, 0.823639f, 0.71537f, 0.703168f, 0.578299f, 0.419909f, 0.527863f, 0.266757f, 0.178719f, 0.00179818f, 0.391777f, 0.480779f, 0.21292f, 0.33087f, 0.82191f, 0.16913f, 0.393736f, 0.815357f, 0.158662f, 0.759544f, 0.0917913f, 0.502571f, 0.626879f, 0.866529f, 0.0145252f, 0.750456f, 0.347476f, 0.308043f, 0.112856f, 0.243447f, 0.0808196f, 0.207538f, 0.532262f, 0.957601f, 0.414993f, 0.0212746f, 0.51757f, 0.750652f, 0.120918f, 0.198828f, 0.767442f, 0.0509944f, 0.310467f, 0.867684f, 0.143594f, 0.269652f, 0.166788f, 0.0482729f, 0.959377f, 0.0227016f, 0.381065f, 0.0466958f, 0.706408f, 0.822551f, 0.351691f, 0.758189f, 0.916421f, 0.335477f, 0.568934f, 0.0950658f, 0.0215652f, 0.0393662f, 0.859198f, 0.828f, 0.525979f, 0.347294f, 0.351906f, 0.305357f, 0.512158f, 0.772087f, 0.48377f, 0.371976f, 0.123643f, 0.705157f, 0.721921f, 0.467902f, 0.987688f, 0.931075f, 0.881334f, 0.799335f, 0.898644f, 0.421681f, 0.0452764f, 0.769417f, 0.652862f, 0.919228f, 0.327836f, 0.915252f, 0.542893f, 0.995346f, 0.464939f, 0.385581f, 0.755661f, 0.0462519f, 0.438096f, 0.716777f, 0.0873773f, 0.519387f, 0.72837f, 0.644616f, 0.81641f, 0.770924f, 0.456952f, 0.998386f, 0.27846f, 0.289119f, 0.696656f, 0.00923793f, 0.845503f, 0.260857f, 0.699512f, 0.0275932f, 0.315732f, 0.0285291f, 0.94531f, 0.339671f, 0.936523f, 0.78267f, 0.282767f, 0.89977f, 0.778833f, 0.793924f, 0.468636f, 0.898903f, 0.974987f, 0.165838f, 0.8451f, 0.100429f, 0.33006f, 0.341665f, 0.664152f, 0.534129f, 0.448803f, 0.872411f, 0.834794f, 0.599272f, 0.520897f, 0.0577161f, 0.0906672f, 0.527342f, 0.618991f, 0.362663f, 0.958124f, 0.685386f, 0.545507f, 0.353392f, 0.359803f, 0.354475f, 0.960168f, 0.405825f, 0.557439f, 0.273456f, 0.0278656f, 0.762911f, 0.565401f, 0.230271f, 0.0322394f, 0.188624f, 0.593584f, 0.964253f, 0.802663f, 0.282211f, 0.0111207f, 0.142253f, 0.513156f, 0.942532f, 0.393904f, 0.126776f, 0.385484f, 0.0694841f, 0.0850033f, 0.745054f, 0.0341894f, 0.31932f, 0.528118f, 0.358518f, 0.765269f, 0.414043f, 0.208501f, 0.932321f, 0.266267f, 0.977639f, 0.394195f, 0.550205f, 0.507989f, 0.138608f, 0.0975725f, 0.715032f, 0.458535f, 0.524329f, 0.326665f, 0.276661f, 0.864643f, 0.0214222f, 0.664928f, 0.115379f, 0.710931f, 0.618722f, 0.841434f, 0.38875f, 0.394257f, 0.949326f, 0.653783f, 0.0534453f, 0.345023f, 0.282792f, 0.195276f, 0.423252f, 0.622851f, 0.713911f, 0.127509f, 0.311566f, 0.245728f, 0.85966f, 0.575867f, 0.0689418f, 0.0952579f, 0.586971f, 0.243941f, 0.0834489f, 0.255213f, 0.213337f, 0.862964f, 0.334737f, 0.405149f, 0.172359f, 0.188284f, 0.780944f, 0.485417f, 0.251398f, 0.599116f, 0.586665f, 0.409307f, 0.580595f, 0.103454f, 0.320942f, 0.486805f, 0.197634f, 0.20807f, 0.908571f, 0.132826f, 0.382863f, 0.212925f, 0.246455f, 0.619471f, 0.117344f, 0.558972f, 0.0580035f, 0.711549f, 0.155809f, 0.663877f, 0.424317f, 0.610468f, 0.930087f, 0.172949f, 0.00517805f, 0.582138f, 0.195799f, 0.861302f, 0.598117f, 0.451871f, 0.448281f, 0.158697f, 0.000542584f, 0.334286f, 0.788786f, 0.157838f, 0.477899f, 0.97582f, 0.242801f, 0.848349f, 0.332519f, 0.0980363f, 0.427908f, 0.345233f, 0.367508f, 0.350688f, 0.843337f, 0.235817f, 0.405097f, 0.436821f, 0.667814f, 0.361552f, 0.280638f, 0.855458f, 0.261004f, 0.747798f, 0.757861f, 0.540364f, 0.175219f, 0.279659f, 0.446355f, 0.365813f, 0.267402f, 0.698932f, 0.879136f, 0.743106f, 0.291694f, 0.991212f, 0.12792f, 0.474301f, 0.0353802f, 0.311849f, 0.707376f, 0.0604965f, 0.212644f, 0.0846226f, 0.0892034f, 0.161925f, 0.436091f, 0.436157f, 0.482554f, 0.370197f, 0.91565f, 0.799866f, 0.649117f, 0.465609f, 0.434417f, 0.258765f, 0.185015f, 0.480145f, 0.174129f, 0.928315f, 0.25319f, 0.401189f, 0.802245f, 0.780487f, 0.494216f, 0.336273f, 0.767529f, 0.768242f, 0.152223f, 0.0521661f, 0.21053f, 0.882708f, 0.347742f, 0.374891f, 0.0797832f, 0.581046f, 0.206673f, 0.0560839f, 0.595372f, 0.136616f, 0.357512f, 0.0209166f, 0.0016705f, 0.93445f, 0.206748f, 0.824873f, 0.788357f, 0.55925f, 0.920285f, 0.582929f, 0.702822f, 0.36813f, 0.447606f, 0.6106f, 0.634253f, 0.207762f, 0.427202f, 0.500577f, 0.389809f, 0.19959f, 0.681723f, 0.120753f, 0.786173f, 0.543604f, 0.979328f, 0.376943f, 0.918816f, 0.452252f, 0.00499074f, 0.635706f, 0.35694f, 0.867121f, 0.791436f, 0.880958f, 0.680748f, 0.831066f, 0.293691f, 0.887553f, 0.187268f, 0.715575f, 0.844413f, 0.637634f, 0.73157f, 0.859324f, 0.407261f, 0.737167f, 0.422764f, 0.923301f, 0.649342f, 0.170625f, 0.366718f, 0.942043f, 0.238334f, 0.470234f, 0.884955f, 0.060161f, 0.181418f, 0.646665f, 0.341334f, 0.108285f, 0.698794f, 0.235432f, 0.880182f, 0.787166f, 0.0924313f, 0.567718f, 0.245406f, 0.839764f, 0.298682f, 0.283608f, 0.396466f, 0.346695f, 0.666372f, 0.578194f, 0.354995f, 0.742842f, 0.32011f, 0.980964f, 0.00271253f, 0.69714f, 0.910403f, 0.920273f, 0.485676f, 0.697684f, 0.0695238f, 0.687605f, 0.203331f, 0.435267f, 0.257599f, 0.860991f, 0.882308f, 0.795157f, 0.698597f, 0.322865f, 0.903791f, 0.684318f, 0.664499f, 0.669392f, 0.780595f, 0.557328f, 0.293327f, 0.265196f, 0.289732f, 0.326938f, 0.92325f, 0.551842f, 0.426428f, 0.305414f, 0.755801f, 0.824476f, 0.442615f, 0.0180313f, 0.35833f, 0.454835f, 0.539032f, 0.274815f, 0.764296f, 0.564245f, 0.325704f, 0.508451f, 0.0271415f, 0.581645f, 0.694036f, 0.641851f, 0.834904f, 0.150452f, 0.526213f, 0.0506494f, 0.513135f, 0.12368f, 0.71454f, 0.438677f, 0.465832f, 0.786114f, 0.838098f, 0.751306f, 0.188757f, 0.146228f, 0.743609f, 0.245643f, 0.97717f, 0.412334f, 0.144464f, 0.529573f, 0.455666f, 0.400118f, 0.253627f, 0.581757f, 0.542677f, 0.790956f, 0.586529f, 0.0948754f, 0.718301f, 0.668166f, 0.327256f, 0.563516f, 0.48726f, 0.489141f, 0.569486f, 0.262042f, 0.309541f, 0.626612f, 0.745274f, 0.751799f, 0.529559f, 0.455644f, 0.748598f, 0.946315f, 0.8265f, 0.414619f, 0.984799f, 0.161437f, 0.821717f, 0.28339f, 0.72679f, 0.154853f, 0.871201f, 0.0711385f, 0.102505f, 0.726382f, 0.491184f, 0.573875f, 0.615597f, 0.356484f, 0.909637f, 0.486158f, 0.810938f, 0.564761f, 0.460728f, 0.852867f, 0.366667f, 0.41533f, 0.0148784f, 0.972416f, 0.534227f, 0.798354f, 0.795607f, 0.976434f, 0.355941f, 0.910177f, 0.159594f, 0.0438041f, 0.654905f, 0.395871f, 0.115006f, 0.540252f, 0.577534f, 0.962924f, 0.945156f, 0.360973f, 0.0926194f, 0.24857f, 0.795894f, 0.13686f, 0.454092f, 0.865174f, 0.98353f, 0.635807f, 0.934014f, 0.5153f, 0.517563f, 0.926611f, 0.454739f, 0.0372238f, 0.360538f, 0.91321f, 0.799502f, 0.271155f, 0.221958f, 0.548051f, 0.907589f, 0.794299f, 0.961704f, 0.673944f, 0.0175033f, 0.492384f, 0.918665f, 0.637901f, 0.199075f, 0.726617f, 0.311334f, 0.879681f, 0.987701f, 0.719458f, 0.393797f, 0.855523f, 0.826618f, 0.689592f, 0.688999f, 0.697588f, 0.780641f, 0.0636748f, 0.140083f, 0.958032f, 0.892292f, 0.577225f, 0.519504f, 0.0735575f, 0.74484f, 0.964864f, 0.219465f, 0.868061f, 0.549526f, 0.634009f, 0.0171299f, 0.257061f, 0.919109f, 0.302247f, 0.664563f, 0.797629f, 0.464015f, 0.310099f, 0.019177f, 0.357502f, 0.620309f, 0.239394f, 0.917188f, 0.785023f, 0.131056f, 0.727617f, 0.530709f, 0.578615f, 0.201885f, 0.278196f, 0.518636f, 0.235054f, 0.522682f, 0.19339f, 0.0846954f, 0.4492f, 0.323331f, 0.707992f, 0.523493f, 0.940948f, 0.723369f, 0.390074f, 0.774236f, 0.433164f, 0.0979982f, 0.0709218f, 0.103836f, 0.422072f, 0.986132f, 0.169095f, 0.0657681f, 0.259039f, 0.396461f, 0.854803f, 0.0914236f, 0.557688f, 0.527779f, 0.371118f, 0.0822192f, 0.302785f, 0.655894f, 0.88463f, 0.375363f, 0.52466f, 0.466245f, 0.38354f, 0.455769f, 0.901777f, 0.0759798f, 0.876514f, 0.4332f, 0.566397f, 0.765223f, 0.640635f, 0.102071f, 0.799557f, 0.939988f, 0.195413f, 0.0748973f, 0.00976407f, 0.51755f, 0.508755f, 0.919853f, 0.935985f, 0.563762f, 0.93531f, 0.426331f, 0.77547f, 0.812972f, 0.191429f, 0.16026f, 0.56597f, 0.435486f, 0.768526f, 0.101867f, 0.406524f, 0.823415f, 0.222716f, 0.154984f, 0.116542f, 0.763154f, 0.771641f, 0.902853f, 0.543089f, 0.352641f, 0.258023f, 0.647828f, 0.140055f, 0.0542513f, 0.0372325f, 0.649413f, 0.978192f, 0.832517f, 0.896181f, 0.472388f, 0.443075f, 0.140154f, 0.0761419f, 0.666329f, 0.950345f, 0.823171f, 0.370979f, 0.65291f, 0.408132f, 0.948844f, 0.155691f, 0.914282f, 0.301515f, 0.461811f, 0.795944f, 0.239535f, 0.664828f, 0.6233f, 0.145132f, 0.37435f, 0.886511f, 0.317883f, 0.518877f, 0.518151f, 0.536818f, 0.643334f, 0.0808949f, 0.068941f, 0.138229f, 0.729329f, 0.853963f, 0.746799f, 0.711397f, 0.570258f, 0.83942f, 0.905887f, 0.400872f, 0.345677f, 0.914797f, 0.332045f, 0.292297f, 0.940083f, 0.563066f, 0.617197f, 0.569981f, 0.25026f, 0.0677223f, 0.867086f, 0.961472f, 0.660134f, 0.0674513f, 0.525426f, 0.632111f, 0.602913f, 0.506025f, 0.554512f, 0.0680667f, 0.918949f, 0.358327f, 0.578486f, 0.348154f, 0.390886f, 0.755981f, 0.715591f, 0.33099f, 0.385277f, 0.89233f, 0.200971f, 0.252035f, 0.200555f, 0.0110863f, 0.862266f, 0.0333783f, 0.211591f, 0.23431f, 0.821902f, 0.540553f, 0.185168f, 0.420759f, 0.631121f, 0.900911f, 0.190397f, 0.52558f, 0.538736f, 0.971211f, 0.120859f, 0.135918f, 0.839331f, 0.273747f, 0.759608f, 0.394084f, 0.436614f, 0.976545f, 0.962145f, 0.94815f, 0.600011f, 0.0810576f, 0.582324f, 0.912166f, 0.096998f, 0.536383f, 0.297478f, 0.200268f, 0.205488f, 0.200496f, 0.031067f, 0.834057f, 0.667748f, 0.874206f, 0.0351124f, 0.0630484f, 0.860482f, 0.26558f, 0.879304f, 0.617219f, 0.0774375f, 0.196608f, 0.934267f, 0.75751f, 0.296633f, 0.0225115f, 0.189789f, 0.214884f, 0.449621f, 0.0468889f, 0.155538f, 0.431228f, 0.958695f, 0.741599f, 0.213075f, 0.209571f, 0.592277f, 0.766705f, 0.72382f, 0.708333f, 0.960869f, 0.810145f, 0.379104f, 0.339159f, 0.674899f, 0.188226f, 0.952889f, 0.595141f, 0.11762f, 0.380935f, 0.608181f, 0.201387f, 0.884799f, 0.483553f, 0.916809f, 0.735928f, 0.281482f, 0.00455585f, 0.462535f, 0.380936f, 0.0936541f, 0.487765f, 0.675265f, 0.510321f, 0.921262f, 0.500261f, 0.782013f, 0.310351f, 0.128784f, 0.437556f, 0.28149f, 0.841472f, 0.758188f, 0.622538f, 0.850795f, 0.372449f, 0.0142433f, 0.703519f, 0.530403f, 0.246252f, 0.915198f, 0.0578612f, 0.816753f, 0.985853f, 0.286485f, 0.690584f, 0.419702f, 0.403298f, 0.22708f, 0.446561f, 0.954207f, 0.252224f, 0.00337301f, 0.338911f, 0.92823f, 0.102058f, 0.702199f, 0.773641f, 0.413213f, 0.175673f, 0.502506f, 0.745158f, 0.485363f, 0.627887f, 0.983253f, 0.535411f, 0.0960549f, 0.806528f, 0.727513f, 0.204301f, 0.561324f, 0.593839f, 0.204487f, 0.0195615f, 0.584486f, 0.809775f, 0.0141238f, 0.484117f, 0.200835f, 0.215795f, 0.243407f, 0.365022f, 0.689046f, 0.217585f, 0.07781f, 0.852946f, 0.00244379f, 0.191489f, 0.516965f, 0.064143f, 0.848968f, 0.220109f, 0.402326f, 0.4353f, 0.318334f, 0.859112f, 0.197103f, 0.120497f, 0.577541f, 0.935029f, 0.347344f, 0.678479f, 0.0344002f, 0.646592f, 0.799282f, 0.650723f, 0.0183968f, 0.371303f, 0.462043f, 0.518063f, 0.902786f, 0.616112f, 0.524261f, 0.0796001f, 0.709403f, 0.265955f, 0.0488311f, 0.615803f, 0.509311f, 0.483271f, 0.620407f, 0.447288f, 0.908265f, 0.223942f, 0.576624f, 0.3599f, 0.505111f, 0.61968f, 0.883126f, 0.655734f, 0.0432178f, 0.997728f, 0.64409f, 0.849678f, 0.734431f, 0.745452f, 0.62498f, 0.463477f, 0.495921f, 0.794164f, 0.853491f, 0.311384f, 0.904331f, 0.129272f, 0.287849f, 0.448194f, 0.193666f, 0.322777f, 0.251713f, 0.881793f, 0.0970413f, 0.233054f, 0.347529f, 0.463414f, 0.611134f, 0.878204f, 0.157578f, 0.188353f, 0.456962f, 0.747669f, 0.869698f, 0.564151f, 0.0328977f, 0.519942f, 0.831659f, 0.799956f, 0.264594f, 0.277307f, 0.585456f, 0.364483f, 0.0277267f, 0.527506f, 0.984514f, 0.195863f, 0.546274f, 0.452644f, 0.709574f, 0.94972f, 0.420405f, 0.617003f, 0.535575f, 0.145515f, 0.251569f, 0.579092f, 0.979789f, 0.582783f, 0.683675f, 0.547612f, 0.873507f, 0.832615f, 0.0464497f, 0.221379f, 0.207657f, 0.85259f, 0.373575f, 0.249047f, 0.960638f, 0.54802f, 0.610878f, 0.409865f, 0.476497f, 0.413089f, 0.313342f, 0.480978f, 0.205176f, 0.0268723f, 0.844218f, 0.418675f, 0.922538f, 0.244907f, 0.958208f, 0.961732f, 0.672194f, 0.092853f, 0.311077f, 0.0946453f, 0.363624f, 0.474164f, 0.603574f, 0.833505f, 0.533449f, 0.256537f, 0.225558f, 0.226048f, 0.538559f, 0.638723f, 0.805419f, 0.14832f, 0.897226f, 0.373224f, 0.369662f, 0.484443f, 0.115926f, 0.685181f, 0.967777f, 0.479863f, 0.517747f, 0.0585734f, 0.506837f, 0.275404f, 0.866345f, 0.502318f, 0.0955882f, 0.335369f, 0.745772f, 0.63887f, 0.736681f, 0.638938f, 0.83989f, 0.676867f, 0.243325f, 0.143963f, 0.493835f, 0.76239f, 0.502014f, 0.389397f, 0.84351f, 0.617143f, 0.171437f, 0.865222f, 0.310702f, 0.990583f, 0.663565f, 0.59032f, 0.887284f, 0.0442938f, 0.232086f, 0.845838f, 0.623216f, 0.134591f, 0.245323f, 0.202399f, 0.730686f, 0.29686f, 0.73742f, 0.182036f, 0.891799f, 0.996495f, 0.991935f, 0.963694f, 0.61934f, 0.87183f, 0.942809f, 0.552179f, 0.0926725f, 0.169732f, 0.722361f, 0.495521f, 0.254044f, 0.0840458f, 0.889859f, 0.923809f, 0.134491f, 0.486075f, 0.102635f, 0.499984f, 0.992553f, 0.0564187f, 0.797292f, 0.241622f, 0.0486058f, 0.801535f, 0.31539f, 0.0143841f, 0.362139f, 0.980739f, 0.300859f, 0.391281f, 0.167751f, 0.7215f, 0.427135f, 0.351335f, 0.933799f, 0.140761f, 0.7363f, 0.465188f, 0.828012f, 0.649004f, 0.520969f, 0.574344f, 0.501355f, 0.952165f, 0.93164f, 0.509089f, 0.526875f, 0.71231f, 0.718113f, 0.670296f, 0.280508f, 0.434312f, 0.946176f, 0.62393f, 0.398959f, 0.698747f, 0.0204612f, 0.79547f, 0.652899f, 0.455246f, 0.486616f, 0.867367f, 0.493178f, 0.355426f, 0.210206f, 0.228179f, 0.651399f, 0.0161561f, 0.140239f, 0.155556f, 0.574745f, 0.999008f, 0.86796f, 0.860705f, 0.246552f, 0.503608f, 0.445886f, 0.0580185f, 0.800574f, 0.437075f, 0.573912f, 0.0424352f, 0.604857f, 0.264873f, 0.34638f, 0.435088f, 0.316541f, 0.161882f, 0.426731f, 0.802425f, 0.499536f, 0.328287f, 0.133744f, 0.42007f, 0.720955f, 0.0136993f, 0.647566f, 0.973718f, 0.901711f, 0.175931f, 0.878922f, 0.93672f, 0.133331f, 0.79393f, 0.0764088f, 0.916768f, 0.260156f, 0.666782f, 0.321252f, 0.233666f, 0.186357f, 0.304028f, 0.707395f, 0.178687f, 0.0232966f, 0.922896f, 0.526882f, 0.81221f, 0.945092f, 0.138419f, 0.0952502f, 0.625846f, 0.213548f, 0.422367f, 0.602847f, 0.231354f, 0.538758f, 0.797799f, 0.654113f, 0.287098f, 0.276612f, 0.659605f, 0.532692f, 0.514879f, 0.525104f, 0.242574f, 0.442326f, 0.822493f, 0.107437f, 0.280184f, 0.37356f, 0.309485f, 0.511257f, 0.761947f, 0.557022f, 0.520128f, 0.694639f, 0.110733f, 0.137554f, 0.338047f, 0.999134f, 0.27477f, 0.916114f, 0.770727f, 0.0976081f, 0.676984f, 0.825778f, 0.759363f, 0.729444f, 0.0242647f, 0.0258947f, 0.154187f, 0.47188f, 0.0445769f, 0.0121177f, 0.843762f, 0.291093f, 0.309643f, 0.485361f, 0.198252f, 0.572985f, 0.033286f, 0.739473f, 0.545352f, 0.211468f, 0.858458f, 0.405647f, 0.258037f, 0.912533f, 0.61541f, 0.567429f, 0.93901f, 0.704859f, 0.0118469f, 0.703613f, 0.517348f, 0.540871f, 0.729027f, 0.850876f, 0.440293f, 0.553048f, 0.61358f, 0.00979307f, 0.316454f, 0.720052f, 0.503127f, 0.47962f, 0.421531f, 0.0151173f, 0.438838f, 0.197708f, 0.780987f, 0.812092f, 0.382447f, 0.424093f, 0.385472f, 0.550044f, 0.656086f, 0.268404f, 0.851007f, 0.310699f, 0.937935f, 0.870147f, 0.80102f, 0.961378f, 0.696737f, 0.38453f, 0.800148f, 0.16592f, 0.884815f, 0.413447f, 0.617014f, 0.524054f, 0.739236f, 0.666972f, 0.710395f, 0.687772f, 0.859121f, 0.388768f, 0.718233f, 0.388154f, 0.476246f, 0.944478f, 0.970432f, 0.691643f, 0.464942f, 0.0394952f, 0.927023f, 0.410307f, 0.629788f, 0.223931f, 0.0297518f, 0.933033f, 0.163113f, 0.336661f, 0.32108f, 0.359461f, 0.947965f, 0.872167f, 0.322335f, 0.764382f, 0.750062f, 0.225013f, 0.0805743f, 0.534038f, 0.0233317f, 0.158118f, 0.805001f, 0.296921f, 0.788203f, 0.729876f, 0.951557f, 0.303947f, 0.251502f, 0.494804f, 0.644525f, 0.936817f, 0.324311f, 0.637434f, 0.565348f, 0.0717788f, 0.0867897f, 0.737313f, 0.402824f, 0.0963357f, 0.106229f, 0.94528f, 0.764048f, 0.247693f, 0.443471f, 0.940045f, 0.493419f, 0.735704f, 0.944935f, 0.991131f, 0.062571f, 0.0335439f, 0.0746373f, 0.623001f, 0.809056f, 0.503777f, 0.446029f, 0.933175f, 0.965526f, 0.063913f, 0.673178f, 0.59794f, 0.0840257f, 0.25734f, 0.908005f, 0.583821f, 0.752881f, 0.472197f, 0.967097f, 0.264547f, 0.0486276f, 0.173953f, 0.338983f, 0.706356f, 0.884443f, 0.569925f, 0.287352f, 0.237714f, 0.630705f, 0.035348f, 0.908494f, 0.315352f, 0.273475f, 0.277392f, 0.25668f, 0.368349f, 0.519099f, 0.0555855f, 0.633588f, 0.882294f, 0.863841f, 0.298166f, 0.799546f, 0.846736f, 0.511809f, 0.599913f, 0.473183f, 0.481996f, 0.877521f, 0.0442833f, 0.940653f, 0.369215f, 0.818309f, 0.73849f, 0.634953f, 0.712853f, 0.26148f, 0.0692014f, 0.831899f, 0.685415f, 0.283157f, 0.736262f, 0.67264f, 0.190786f, 0.0676505f, 0.707078f, 0.581308f, 0.67221f, 0.11386f, 0.457312f, 0.392375f, 0.439219f, 0.769211f, 0.561258f, 0.866343f, 0.397924f, 0.523627f, 0.0617751f, 0.831688f, 0.512164f, 0.821152f, 0.502621f, 0.0959835f, 0.555967f, 0.042713f, 0.0924852f, 0.508336f, 0.473067f, 0.451851f, 0.992751f, 0.641368f, 0.299594f, 0.320116f, 0.454368f, 0.436705f, 0.601497f, 0.135846f, 0.484692f, 0.284487f, 0.540245f, 0.190384f, 0.54509f, 0.143587f, 0.629552f, 0.324553f, 0.595499f, 0.844717f, 0.201874f, 0.814576f, 0.197463f, 0.986802f, 0.148523f, 0.567081f, 0.136555f, 0.780773f, 0.204797f, 0.118722f, 0.881193f, 0.432444f, 0.280083f, 0.0217249f, 0.54529f, 0.503856f, 0.89004f, 0.470679f, 0.676714f, 0.457365f, 0.255248f, 0.923055f, 0.0443761f, 0.552984f, 0.142928f, 0.69265f, 0.0879481f, 0.295874f, 0.567054f, 0.0142062f, 0.929392f, 0.908689f, 0.448321f, 0.651092f, 0.0557385f, 0.101893f, 0.399297f, 0.48606f, 0.527425f, 0.00356473f, 0.616862f, 0.211265f, 0.984485f, 0.567244f, 0.317252f, 0.751636f, 0.987065f, 0.152741f, 0.0829415f, 0.00948974f, 0.0764865f, 0.859403f, 0.667688f, 0.408172f, 0.960244f, 0.804079f, 0.938819f, 0.21643f, 0.122151f, 0.416281f, 0.707288f, 0.297755f, 0.370217f, 0.0417245f, 0.56875f, 0.115263f, 0.633719f, 0.459242f, 0.319668f, 0.101516f, 0.535005f, 0.687743f, 0.0977507f, 0.0834855f, 0.251136f, 0.233068f, 0.596992f, 0.833053f, 0.584381f, 0.519565f, 0.192852f, 0.592033f, 0.382766f, 0.0436281f, 0.923847f, 0.921051f, 0.590964f, 0.619312f, 0.568616f, 0.613199f, 0.467516f, 0.991839f, 0.944851f, 0.991241f, 0.134093f, 0.950621f, 0.430953f, 0.441657f, 0.46819f, 0.393092f, 0.0628691f, 0.0521101f, 0.452955f, 0.189459f, 0.779002f, 0.9959f, 0.26145f, 0.673013f, 0.794916f, 0.103836f, 0.465761f, 0.85105f, 0.985666f, 0.836831f, 0.516769f, 0.716464f, 0.19357f, 0.242615f, 0.382491f, 0.313633f, 0.848997f, 0.859264f, 0.727595f, 0.29825f, 0.899589f, 0.584103f, 0.926454f, 0.690807f, 0.439755f, 0.340988f, 0.258296f, 0.931776f, 0.0256324f, 0.316941f, 0.757241f, 0.844794f, 0.694142f, 0.881089f, 0.874026f, 0.690994f, 0.789913f, 0.00531765f, 0.940563f, 0.723211f, 0.12176f, 0.131234f, 0.731573f, 0.495006f, 0.0516717f, 0.604952f, 0.369937f, 0.843237f, 0.920012f, 0.628829f, 0.420778f, 0.973326f, 0.15281f, 0.00139745f, 0.853154f, 0.851795f, 0.741038f, 0.117861f, 0.882016f, 0.509814f, 0.516959f, 0.907246f, 0.697692f, 0.668194f, 0.846559f, 0.576253f, 0.922104f, 0.359445f, 0.0611456f, 0.206406f, 0.105926f, 0.154387f, 0.585589f, 0.437756f, 0.3165f, 0.587017f, 0.0847536f, 0.886007f, 0.119009f, 0.979246f, 0.213609f, 0.465853f, 0.272178f, 0.439809f, 0.988716f, 0.488015f, 0.417512f, 0.518881f, 0.288539f, 0.903198f, 0.787729f, 0.454393f, 0.262874f, 0.894397f, 0.153654f, 0.400079f, 0.643713f, 0.123454f, 0.844473f, 0.372163f, 0.877639f, 0.833295f, 0.549217f, 0.685982f, 0.127869f, 0.95698f, 0.779552f, 0.128356f, 0.259681f, 0.0754659f, 0.0835692f, 0.537261f, 0.817103f, 0.614817f, 0.0325292f, 0.0207384f, 0.827517f, 0.808246f, 0.26346f, 0.803749f, 0.15587f, 0.74223f, 0.634925f, 0.773878f, 0.131699f, 0.450653f, 0.981115f, 0.00958384f, 0.287704f, 0.443703f, 0.216868f, 0.792684f, 0.907434f, 0.378667f, 0.165051f, 0.748475f, 0.136135f, 0.659939f, 0.958408f, 0.744024f, 0.725204f, 0.632248f, 0.299641f, 0.922975f, 0.919256f, 0.230537f, 0.691596f, 0.249633f, 0.0888904f, 0.892798f, 0.710505f, 0.943026f, 0.386294f, 0.600829f, 0.676397f, 0.132339f, 0.0813851f, 0.785415f, 0.732045f, 0.721045f, 0.343798f, 0.718697f, 0.441188f, 0.322981f, 0.121907f, 0.806755f, 0.597458f, 0.64584f, 0.717871f, 0.209593f, 0.598041f, 0.350003f, 0.445812f, 0.613345f, 0.437672f, 0.382453f, 0.131631f, 0.66655f, 0.401186f, 0.0837397f, 0.446507f, 0.726394f, 0.681641f, 0.586691f, 0.248831f, 0.449398f, 0.930469f, 0.0666129f, 0.780538f, 0.589497f, 0.840138f, 0.564973f, 0.0612079f, 0.821556f, 0.554189f, 0.799224f, 0.736642f, 0.269208f, 0.292914f, 0.596551f, 0.729427f, 0.49402f, 0.773192f, 0.219683f, 0.824812f, 0.840631f, 0.0501591f, 0.134543f, 0.583413f, 0.791894f, 0.986005f, 0.862345f, 0.915087f, 0.369461f, 0.588393f, 0.512686f, 0.678814f, 0.458227f, 0.806283f, 0.701131f, 0.571952f, 0.702168f, 0.202198f, 0.519259f, 0.172496f, 0.599499f, 0.147234f, 0.02575f, 0.97035f, 0.898833f, 0.874705f, 0.79621f, 0.980984f, 0.656772f, 0.751776f, 0.251058f, 0.763427f, 0.224289f, 0.295172f, 0.00522108f, 0.762511f, 0.787555f, 0.00467026f, 0.128477f, 0.701758f, 0.978284f, 0.00768466f, 0.865646f, 0.841283f, 0.524041f, 0.375165f, 0.674822f, 0.0847203f, 0.0682938f, 0.969406f, 0.195572f, 0.551269f, 0.985086f, 0.622014f, 0.424878f, 0.097507f, 0.140416f, 0.838827f, 0.485533f, 0.737476f, 0.735698f, 0.0454709f, 0.311185f, 0.0898184f, 0.795013f, 0.529925f, 0.474088f, 0.344048f, 0.943813f, 0.527794f, 0.324931f, 0.961191f, 0.267476f, 0.603167f, 0.178598f, 0.7503f, 0.987956f, 0.555531f, 0.215508f, 0.382784f, 0.656302f, 0.993506f, 0.842078f, 0.372415f, 0.266801f, 0.156394f, 0.831571f, 0.137432f, 0.624203f, 0.835836f, 0.606334f, 0.838089f, 0.694928f, 0.856823f, 0.180364f, 0.338147f, 0.759741f, 0.206241f, 0.829618f, 0.9061f, 0.597172f, 0.11924f, 0.358647f, 0.142011f, 0.945087f, 0.474836f, 0.648693f, 0.86104f, 0.47665f, 0.757002f, 0.494125f, 0.868545f, 0.306198f, 0.639508f, 0.704826f, 0.995186f, 0.175675f, 0.0806422f, 0.138095f, 0.0881491f, 0.428765f, 0.451255f, 0.918603f, 0.262482f, 0.2982f, 0.537161f, 0.838592f, 0.235128f, 0.0353797f, 0.884897f, 0.940754f, 0.79639f, 0.946324f, 0.569961f, 0.303534f, 0.0571423f, 0.278763f, 0.40931f, 0.675236f, 0.728678f, 0.247318f, 0.198361f, 0.892861f, 0.188737f, 0.340076f, 0.194367f, 0.0645981f, 0.873336f, 0.00749971f, 0.569247f, 0.633541f, 0.959514f, 0.089256f, 0.203743f, 0.228359f, 0.584494f, 0.550622f, 0.897252f, 0.383225f, 0.45936f, 0.866613f, 0.125279f, 0.120562f, 0.0766141f, 0.816719f, 0.0671213f, 0.440454f, 0.45157f, 0.0530044f, 0.413946f, 0.0535851f, 0.0575507f, 0.45907f, 0.923819f, 0.491762f, 0.0633612f, 0.468905f, 0.884023f, 0.0176603f, 0.736134f, 0.205456f, 0.646979f, 0.390688f, 0.112598f, 0.275741f, 0.0894479f, 0.51998f, 0.810482f, 0.403162f, 0.555734f, 0.0242944f, 0.110794f, 0.829616f, 0.683351f, 0.391986f, 0.502472f, 0.0781493f, 0.15912f, 0.478358f, 0.570563f, 0.0540207f, 0.967255f, 0.342681f, 0.274707f, 0.333183f, 0.43953f, 0.535844f, 0.783524f, 0.0546468f, 0.30066f, 0.066254f, 0.483775f, 0.161847f, 0.782927f, 0.0172688f, 0.0646114f, 0.669899f, 0.714202f, 0.679073f, 0.0763925f, 0.816612f, 0.201151f, 0.571907f, 0.321925f, 0.37268f, 0.299367f, 0.126555f, 0.934309f, 0.903748f, 0.444695f, 0.564585f, 0.64596f, 0.506742f, 0.202397f, 0.893715f, 0.388493f, 0.2197f, 0.143169f, 0.699541f, 0.701281f, 0.432727f, 0.955981f, 0.0870339f, 0.489724f, 0.886849f, 0.473284f, 0.824864f, 0.941409f, 0.70849f, 0.950999f, 0.456397f, 0.084792f, 0.59477f, 0.326086f, 0.244944f, 0.984625f, 0.424332f, 0.903711f, 0.721101f, 0.0111986f, 0.305794f, 0.311496f, 0.515195f, 0.239026f, 0.536631f, 0.366645f, 0.394777f, 0.3873f, 0.328341f, 0.609614f, 0.389689f, 0.391797f, 0.434262f, 0.556263f, 0.287584f, 0.188432f, 0.956155f, 0.304082f, 0.503736f, 0.915129f, 0.954323f, 0.412722f, 0.506281f, 0.194787f, 0.490927f, 0.264479f, 0.254388f, 0.849598f, 0.801772f, 0.620258f, 0.0071051f, 0.454038f, 0.0346459f, 0.57328f, 0.549966f, 0.162462f, 0.229432f, 0.563818f, 0.431203f, 0.451108f, 0.239087f, 0.0223499f, 0.767006f, 0.941499f, 0.909868f, 0.4759f, 0.289608f, 0.382406f, 0.69978f, 0.324804f, 0.829982f, 0.57533f, 0.581939f, 0.0393368f, 0.579975f, 0.639501f, 0.285916f, 0.518992f, 0.443243f, 0.951329f, 0.569127f, 0.97862f, 0.386882f, 0.195255f, 0.181794f, 0.809233f, 0.560124f, 0.668163f, 0.513488f, 0.0876116f, 0.943987f, 0.436513f, 0.743975f, 0.383052f, 0.277199f, 0.598564f, 0.138906f, 0.31616f, 0.560288f, 0.463073f, 0.731662f, 0.869975f, 0.123616f, 0.634357f, 0.354597f, 0.120499f, 0.383482f, 0.846482f, 0.967433f, 0.108526f, 0.584536f, 0.555393f, 0.73107f, 0.749304f, 0.688501f, 0.400935f, 0.772408f, 0.104643f, 0.756827f, 0.94838f, 0.756186f, 0.362544f, 0.627231f, 0.848773f, 0.432341f, 0.65668f, 0.735194f, 0.850105f, 0.062755f, 0.146389f, 0.317991f, 0.0737026f, 0.67427f, 0.485489f, 0.270793f, 0.787026f, 0.0720512f, 0.987549f, 0.0569218f, 0.255272f, 0.68926f, 0.608096f, 0.633461f, 0.648547f, 0.769407f, 0.830182f, 0.322531f, 0.144775f, 0.779242f, 0.845269f, 0.0243326f, 0.0405723f, 0.873524f, 0.753952f, 0.972986f, 0.510371f, 0.476096f, 0.159424f, 0.701166f, 0.376896f, 0.858272f, 0.565385f, 0.250291f, 0.610069f, 0.620679f, 0.458904f, 0.720255f, 0.616195f, 0.227057f, 0.0542266f, 0.848246f, 0.70316f, 0.535677f, 0.900922f, 0.920894f, 0.146911f, 0.3533f, 0.561009f, 0.284157f, 0.174043f, 0.656678f, 0.196008f, 0.199449f, 0.0442609f, 0.680369f, 0.428183f, 0.262736f, 0.743547f, 0.488797f, 0.981806f, 0.64651f, 0.838369f, 0.870618f, 0.980026f, 0.0422801f, 0.422279f, 0.988454f, 0.667217f, 0.749536f, 0.0917313f, 0.902354f, 0.0681661f, 0.0282509f, 0.19348f, 0.377296f, 0.932179f, 0.576296f, 0.735157f, 0.795614f, 0.136861f, 0.703529f, 0.132033f, 0.950966f, 0.307774f, 0.363944f, 0.115775f, 0.281715f, 0.937972f, 0.143547f, 0.930937f, 0.438592f, 0.489861f, 0.8832f, 0.123867f, 0.381358f, 0.391431f, 0.0780478f, 0.509486f, 0.425146f, 0.303328f, 0.133067f, 0.198759f, 0.692799f, 0.0851842f, 0.897908f, 0.741917f, 0.512414f, 0.345901f, 0.0204231f, 0.272198f, 0.727947f, 0.626249f, 0.173805f, 0.652727f, 0.101894f, 0.750636f, 0.49131f, 0.6225f, 0.748916f, 0.134644f, 0.80854f, 0.496879f, 0.173762f, 0.370642f, 0.534129f, 0.163196f, 0.185132f, 0.442204f, 0.0942393f, 0.167814f, 0.214614f, 0.435669f, 0.551141f, 0.146443f, 0.590189f, 0.0431735f, 0.233042f, 0.438819f, 0.306157f, 0.130507f, 0.824651f, 0.913926f, 0.0630085f, 0.513333f, 0.316679f, 0.0334001f, 0.961398f, 0.424998f, 0.871981f, 0.0704637f, 0.798644f, 0.853883f, 0.957443f, 0.0902814f, 0.531197f, 0.622826f, 0.969367f, 0.566445f, 0.329525f, 0.656435f, 0.937621f, 0.160278f, 0.5453f, 0.724801f, 0.0263785f, 0.651574f, 0.780021f, 0.62934f, 0.347304f, 0.495063f, 0.162784f, 0.364913f, 0.163988f, 0.305767f, 0.70278f, 0.407849f, 0.0919207f, 0.317498f, 0.73957f, 0.199775f, 0.834567f, 0.101468f, 0.400429f, 0.818875f, 0.950692f, 0.285147f, 0.143908f, 0.818654f, 0.683222f, 0.829862f, 0.892098f, 0.716362f, 0.414078f, 0.18835f, 0.992772f, 0.511298f, 0.220548f, 0.0635921f, 0.297934f, 0.807925f, 0.607986f, 0.0877825f, 0.132301f, 0.728175f, 0.812418f, 0.898057f, 0.653904f, 0.960266f, 0.320779f, 0.445331f, 0.776218f, 0.409451f, 0.359341f, 0.524256f, 0.028275f, 0.977368f, 0.301357f, 0.696436f, 0.0459401f, 0.76983f, 0.601018f, 0.340728f, 0.408712f, 0.568339f, 0.407496f, 0.58856f, 0.0757559f, 0.35058f, 0.00837173f, 0.00562885f, 0.975881f, 0.810547f, 0.488337f, 0.312578f, 0.98549f, 0.851896f, 0.322023f, 0.34399f, 0.23832f, 0.258811f, 0.823943f, 0.0716831f, 0.988663f, 0.0460019f, 0.275174f, 0.810075f, 0.619748f, 0.0901874f, 0.033642f, 0.566351f, 0.712041f, 0.313472f, 0.0923219f, 0.986056f, 0.673149f, 0.878125f, 0.140528f, 0.166762f, 0.994571f, 0.894365f, 0.774653f, 0.417661f, 0.666718f, 0.898203f, 0.227722f, 0.598469f, 0.928879f, 0.379994f, 0.984697f, 0.231839f, 0.310736f, 0.341496f, 0.459493f, 0.302215f, 0.641954f, 0.898099f, 0.0209997f, 0.737949f, 0.0626889f, 0.831237f, 0.0313842f, 0.180131f, 0.601948f, 0.797174f, 0.0884408f, 0.642245f, 0.459643f, 0.893664f, 0.40371f, 0.658711f, 0.881245f, 0.591686f, 0.878759f, 0.755583f, 0.204975f, 0.306776f, 0.73216f, 0.791955f, 0.514798f, 0.337436f, 0.783948f, 0.0557404f, 0.452276f, 0.84683f, 0.145528f, 0.220488f, 0.241047f, 0.557556f, 0.415007f, 0.242669f, 0.360846f, 0.522166f, 0.292326f, 0.587668f, 0.638592f, 0.436138f, 0.110713f, 0.196891f, 0.591566f, 0.283637f, 0.0102975f, 0.387574f, 0.479553f, 0.741745f, 0.678875f, 0.937641f, 0.609497f, 0.32044f, 0.00940666f, 0.127061f, 0.194438f, 0.905781f, 0.860754f, 0.445213f, 0.854932f, 0.729661f, 0.136819f, 0.0108726f, 0.980453f, 0.0270293f, 0.139369f, 0.793899f, 0.642188f, 0.86674f, 0.279443f, 0.79022f, 0.867757f, 0.0843141f, 0.995867f, 0.537412f, 0.753968f, 0.607794f, 0.944857f, 0.190186f, 0.0997002f, 0.984877f, 0.0701893f, 0.576752f, 0.0580847f, 0.0867438f, 0.444684f, 0.916767f, 0.213647f, 0.749927f, 0.738357f, 0.845744f, 0.362546f, 0.648168f, 0.398376f, 0.949009f, 0.863117f, 0.027939f, 0.85657f, 0.591879f, 0.193953f, 0.502273f, 0.599404f, 0.375159f, 0.512255f, 0.267081f, 0.511835f, 0.955413f, 0.0697231f, 0.724459f, 0.352424f, 0.947933f, 0.664158f, 0.698859f, 0.803828f, 0.504431f, 0.751099f, 0.590227f, 0.280099f, 0.584827f, 0.0923306f, 0.203134f, 0.702428f, 0.218551f, 0.319046f, 0.412581f, 0.398295f, 0.378101f, 0.241449f, 0.45341f, 0.670537f, 0.602427f, 0.378714f, 0.790711f, 0.374994f, 0.462503f, 0.0953595f, 0.548471f, 0.0991406f, 0.949991f, 0.822281f, 0.531369f, 0.324175f, 0.730305f, 0.736284f, 0.138818f, 0.0894012f, 0.311242f, 0.840171f, 0.119094f, 0.801153f, 0.569853f, 0.590313f, 0.758391f, 0.266365f, 0.395676f, 0.236105f, 0.583137f, 0.442199f, 0.426346f, 0.268307f, 0.336632f, 0.793279f, 0.468524f, 0.52161f, 0.496028f, 0.689862f, 0.434917f, 0.476048f, 0.703495f, 0.527915f, 0.701419f, 0.640665f, 0.471923f, 0.509542f, 0.801378f, 0.937335f, 0.378823f, 0.876191f, 0.870085f, 0.0750793f, 0.749023f, 0.135718f, 0.0954842f, 0.990025f, 0.114978f, 0.232678f, 0.927843f, 0.107381f, 0.0494472f, 0.810999f, 0.610688f, 0.500701f, 0.281554f, 0.146244f, 0.0468897f, 0.238109f, 0.622833f, 0.668599f, 0.338654f, 0.704283f, 0.726535f, 0.00568137f, 0.0550614f, 0.375877f, 0.629756f, 0.208639f, 0.197606f, 0.322134f, 0.102052f, 0.141556f, 0.865068f, 0.609663f, 0.618753f, 0.5473f, 0.75936f, 0.799073f, 0.951893f, 0.223308f, 0.385897f, 0.709781f, 0.661421f, 0.677739f, 0.922779f, 0.855047f, 0.899517f, 0.914109f, 0.980888f, 0.0344011f, 0.188345f, 0.701074f, 0.94298f, 0.218323f, 0.332275f, 0.0500087f, 0.176891f, 0.896834f, 0.193207f, 0.977044f, 0.3858f, 0.619537f, 0.437899f, 0.0960618f, 0.795966f, 0.628384f, 0.0776769f, 0.795065f, 0.404605f, 0.613843f, 0.837637f, 0.175999f, 0.512611f, 0.600492f, 0.0617713f, 0.897539f, 0.77196f, 0.126898f, 0.0734735f, 0.109476f, 0.127198f, 0.573614f, 0.00498635f, 0.651288f, 0.950238f, 0.503129f, 0.553157f, 0.156796f, 0.197561f, 0.435144f, 0.334538f, 0.96178f, 0.917661f, 0.834138f, 0.287505f, 0.727459f, 0.157645f, 0.447587f, 0.0999288f, 0.049521f, 0.400007f, 0.134395f, 0.942935f, 0.516067f, 0.505666f, 0.175857f, 0.136792f, 0.974526f, 0.853546f, 0.55864f, 0.357897f, 0.258976f, 0.935017f, 0.33172f, 0.702221f, 0.590312f, 0.972901f, 0.968517f, 0.653598f, 0.499361f, 0.843778f, 0.717343f, 0.819272f, 0.0534352f, 0.738794f, 0.865196f, 0.952694f, 0.546635f, 0.233636f, 0.351183f, 0.735601f, 0.96854f, 0.366732f, 0.823323f, 0.490432f, 0.226938f, 0.485313f, 0.345484f, 0.892524f, 0.501069f, 0.964373f, 0.335591f, 0.879288f, 0.18686f, 0.0321524f, 0.75162f, 0.93297f, 0.630067f, 0.90457f, 0.4632f, 0.480852f, 0.0442153f, 0.44118f, 0.317977f, 0.616316f, 0.879621f, 0.458411f, 0.144191f, 0.641805f, 0.947707f, 0.431239f, 0.449253f, 0.268696f, 0.52497f, 0.320578f, 0.743107f, 0.0864674f, 0.682139f, 0.968487f, 0.665753f, 0.213749f, 0.352546f, 0.910324f, 0.20406f, 0.923442f, 0.370019f, 0.0305328f, 0.0703193f, 0.684224f, 0.682035f, 0.235759f, 0.0598054f, 0.153728f, 0.933166f, 0.959948f, 0.714164f, 0.968741f, 0.527351f, 0.259318f, 0.595798f, 0.343745f, 0.695488f, 0.135958f, 0.855851f, 0.136124f, 0.770493f, 0.441507f, 0.488841f, 0.81911f, 0.78977f, 0.0110584f, 0.109171f, 0.266597f, 0.821372f, 0.660634f, 0.318648f, 0.566565f, 0.788814f, 0.45255f, 0.871084f, 0.0325625f, 0.129959f, 0.773467f, 0.376836f, 0.281526f, 0.121645f, 0.107249f, 0.341292f, 0.925537f, 0.545791f, 0.290171f, 0.0491037f, 0.519666f, 0.192151f, 0.630722f, 0.760955f, 0.175683f, 0.166529f, 0.882514f, 0.992895f, 0.783557f, 0.225989f, 0.732245f, 0.942898f, 0.66103f, 0.865137f, 0.397328f, 0.857736f, 0.750886f, 0.474988f, 0.337379f, 0.789872f, 0.125787f, 0.478338f, 0.831392f, 0.824986f, 0.888459f, 0.827697f, 0.289947f, 0.741771f, 0.573338f, 0.652634f, 0.517717f, 0.579062f, 0.348018f, 0.00771095f, 0.339708f, 0.440065f, 0.484628f, 0.95306f, 0.700092f, 0.141648f, 0.102574f, 0.636408f, 0.193749f, 0.013662f, 0.0382704f, 0.902556f, 0.986144f, 0.0240769f, 0.775517f, 0.895917f, 0.48779f, 0.235743f, 0.756005f, 0.603748f, 0.343958f, 0.336382f, 0.521828f, 0.631383f, 0.931337f, 0.0306554f, 0.719708f, 0.90717f, 0.607976f, 0.588364f, 0.378322f, 0.767749f, 0.728055f, 0.207107f, 0.587616f, 0.634505f, 0.701187f, 0.126658f, 0.762471f, 0.430484f, 0.093472f, 0.493245f, 0.399296f, 0.0229555f, 0.940902f, 0.889504f, 0.447475f, 0.109747f, 0.752437f, 0.163893f, 0.814091f, 0.625132f, 0.578121f, 0.831421f, 0.102199f, 0.0416217f, 0.836125f, 0.0918715f, 0.959896f, 0.0926651f, 0.959124f, 0.849847f, 0.553316f, 0.102173f, 0.723574f, 0.727884f, 0.480109f, 0.137392f, 0.213244f, 0.0733534f, 0.974065f, 0.230907f, 0.639206f, 0.594454f, 0.991072f, 0.98572f, 0.293588f, 0.79368f, 0.029905f, 0.384468f, 0.589754f, 0.710729f, 0.254933f, 0.615357f, 0.0573365f, 0.463609f, 0.989581f, 0.400036f, 0.540456f, 0.37337f, 0.235228f, 0.849844f, 0.385581f, 0.742108f, 0.283697f, 0.927321f, 0.612357f, 0.324445f, 0.662181f, 0.954055f, 0.741108f, 0.219976f, 0.69014f, 0.845905f, 0.787315f, 0.993019f, 0.40631f, 0.421558f, 0.393458f, 0.402337f, 0.22323f, 0.570397f, 0.204724f, 0.69529f, 0.629551f, 0.384306f, 0.477271f, 0.951049f, 0.629508f, 0.00393453f, 0.676047f, 0.219835f, 0.899089f, 0.072471f, 0.151961f, 0.67556f, 0.0710069f, 0.752718f, 0.494007f, 0.129299f, 0.680351f, 0.445954f, 0.377099f, 0.315048f, 0.898073f, 0.100339f, 0.547383f, 0.689143f, 0.727338f, 0.0878929f, 0.805415f, 0.0332215f, 0.0135245f, 0.968045f, 0.470475f, 0.426812f, 0.151168f, 0.327002f, 0.0746566f, 0.694102f, 0.249846f, 0.53805f, 0.1441f, 0.466625f, 0.363997f, 0.580457f, 0.753993f, 0.97815f, 0.74302f, 0.961015f, 0.470217f, 0.6599f, 0.56503f, 0.324455f, 0.816659f, 0.875343f, 0.383594f, 0.820232f, 0.861688f, 0.492614f, 0.23466f, 0.0433097f, 0.829025f, 0.217438f, 0.790776f, 0.0391246f, 0.81177f, 0.311744f, 0.52641f, 0.63995f, 0.877915f, 0.373086f, 0.439808f, 0.18672f, 0.589243f, 0.588398f, 0.481351f, 0.678122f, 0.0946417f, 0.102651f, 0.125072f, 0.475044f, 0.895553f, 0.236166f, 0.338332f, 0.639829f, 0.173296f, 0.892164f, 0.246241f, 0.53134f, 0.357817f, 0.395977f, 0.652176f, 0.473679f, 0.45795f, 0.341496f, 0.477644f, 0.789266f, 0.35552f, 0.872661f, 0.688363f, 0.0498584f, 0.671786f, 0.517444f, 0.565655f, 0.414789f, 0.118537f, 0.313813f, 0.812885f, 0.653228f, 0.679541f, 0.84281f, 0.935871f, 0.363317f, 0.731685f, 0.386262f, 0.627775f, 0.631725f, 0.663584f, 0.242816f, 0.129252f, 0.334088f, 0.850846f, 0.942745f, 0.85427f, 0.603297f, 0.633843f, 0.697019f, 0.305404f, 0.612945f, 0.852006f, 0.614222f, 0.345229f, 0.789779f, 0.0566866f, 0.0562014f, 0.660246f, 0.307533f, 0.33637f, 0.0899305f, 0.416154f, 0.151361f, 0.770565f, 0.48958f, 0.604568f, 0.825134f, 0.13394f, 0.82566f, 0.567464f, 0.751875f, 0.659559f, 0.758812f, 0.817692f, 0.483871f, 0.520196f, 0.535844f, 0.775365f, 0.227697f, 0.36938f, 0.833216f, 0.254575f, 0.762152f, 0.741347f, 0.545219f, 0.441746f, 0.849555f, 0.594417f, 0.300895f, 0.124644f, 0.131122f, 0.593037f, 0.436388f, 0.41736f, 0.283297f, 0.759466f, 0.837342f, 0.481078f, 0.864737f, 0.917869f, 0.529607f, 0.238303f, 0.621135f, 0.884823f, 0.45449f, 0.86557f, 0.235833f, 0.416272f, 0.554211f, 0.554456f, 0.705827f, 0.012815f, 0.854081f, 0.718499f, 0.356533f, 0.202595f, 0.935999f, 0.244963f, 0.519483f, 0.152643f, 0.893804f, 0.636804f, 0.96507f, 0.56994f, 0.446239f, 0.744207f, 0.728589f, 0.218044f, 0.345814f, 0.760004f, 0.560206f, 0.145292f, 0.867799f, 0.446157f, 0.551633f, 0.674266f, 0.29103f, 0.365323f, 0.397435f, 0.065432f, 0.211588f, 0.655559f, 0.973423f, 0.51257f, 0.404396f, 0.664652f, 0.0237282f, 0.57849f, 0.763437f, 0.683453f, 0.446456f, 0.0926756f, 0.11274f, 0.211531f, 0.422243f, 0.945334f, 0.697837f, 0.0741882f, 0.634644f, 0.236934f, 0.322322f, 0.522515f, 0.636193f, 0.877149f, 0.247213f, 0.374506f, 0.844406f, 0.440529f, 0.309886f, 0.479818f, 0.946139f, 0.643806f, 0.281207f, 0.482617f, 0.849676f, 0.813769f, 0.710806f, 0.946587f, 0.565293f, 0.82707f, 0.678064f, 0.441115f, 0.149597f, 0.648184f, 0.816263f, 0.109848f, 0.900922f, 0.933684f, 0.217823f, 0.565672f, 0.594669f, 0.188874f, 0.551345f, 0.899023f, 0.00244778f, 0.678969f, 0.828241f, 0.401308f, 0.811662f, 0.315149f, 0.909772f, 0.857309f, 0.82949f, 0.921723f, 0.914055f, 0.30077f, 0.138511f, 0.260424f, 0.593307f, 0.135603f, 0.22236f, 0.83948f, 0.474553f, 0.620751f, 0.406678f, 0.718506f, 0.07157f, 0.279514f, 0.0359867f, 0.228832f, 0.987212f, 0.342517f, 0.576881f, 0.13873f, 0.08103f, 0.0102425f, 0.393001f, 0.607157f, 0.593528f, 0.723289f, 0.240303f, 0.353078f, 0.700454f, 0.813112f, 0.473639f, 0.970229f, 0.807953f, 0.359786f, 0.698703f, 0.295981f, 0.886268f, 0.877439f, 0.295527f, 0.869798f, 0.900195f, 0.979531f, 0.00316615f, 0.37165f, 0.303764f, 0.763804f, 0.0960253f, 0.410254f, 0.449359f, 0.031615f, 0.604923f, 0.115525f, 0.650832f, 0.361404f, 0.296024f, 0.832259f, 0.346458f, 0.322406f, 0.430431f, 0.238739f, 0.456459f, 0.309478f, 0.772186f, 0.253587f, 0.701643f, 0.254196f, 0.877354f, 0.30961f, 0.877492f, 0.453411f, 0.971726f, 0.656834f, 0.682272f, 0.0405702f, 0.68186f, 0.028651f, 0.799801f, 0.918522f, 0.727565f, 0.33074f, 0.785966f, 0.972694f, 0.781375f, 0.987683f, 0.0937511f, 0.984581f, 0.822636f, 0.853316f, 0.233179f, 0.804334f, 0.545647f, 0.941473f, 0.429909f, 0.157613f, 0.042413f, 0.0882351f, 0.0386067f, 0.168782f, 0.106085f, 0.851197f, 0.118448f, 0.534217f, 0.787002f, 0.307399f, 0.180329f, 0.942904f, 0.976713f, 0.796245f, 0.673216f, 0.665704f, 0.0614658f, 0.39687f, 0.0665469f, 0.690911f, 0.961947f, 0.431956f, 0.518961f, 0.112723f, 0.764305f, 0.169623f, 0.216358f, 0.0508767f, 0.0368147f, 0.513833f, 0.285068f, 0.312922f, 0.0283073f, 0.528693f, 0.901117f, 0.00231425f, 0.455522f, 0.134293f, 0.20798f, 0.0685364f, 0.465098f, 0.513741f, 0.590951f, 0.585929f, 0.39238f, 0.813761f, 0.234718f, 0.00798184f, 0.589921f, 0.1209f, 0.544092f, 0.0728818f, 0.986865f, 0.963078f, 0.434846f, 0.0592174f, 0.988931f, 0.148709f, 0.554836f, 0.681992f, 0.248978f, 0.771741f, 0.477407f, 0.24027f, 0.578471f, 0.399146f, 0.940467f, 0.0342766f, 0.487298f, 0.484237f, 0.86446f, 0.54988f, 0.920788f, 0.482808f, 0.384468f, 0.323015f, 0.0640676f, 0.590045f, 0.847143f, 0.262915f, 0.15837f, 0.346961f, 0.903005f, 0.0904639f, 0.398354f, 0.353884f, 0.381244f, 0.724662f, 0.659623f, 0.905798f, 0.484195f, 0.883331f, 0.686008f, 0.777975f, 0.580637f, 0.746604f, 0.266623f, 0.129117f, 0.287785f, 0.467636f, 0.077441f, 0.444312f, 0.0606906f, 0.606737f, 0.587066f, 0.708817f, 0.133486f, 0.623995f, 0.390257f, 0.466193f, 0.572793f, 0.793069f, 0.923973f, 0.885275f, 0.613505f, 0.621508f, 0.278417f, 0.544427f, 0.227023f, 0.579488f, 0.944205f, 0.554251f, 0.92258f, 0.368187f, 0.0617916f, 0.485602f, 0.847412f, 0.262056f, 0.605826f, 0.79763f, 0.386413f, 0.240654f, 0.126525f, 0.152372f, 0.790945f, 0.890004f, 0.49452f, 0.310679f, 0.569422f, 0.557446f, 0.0972526f, 0.974292f, 0.319327f, 0.170425f, 0.158451f, 0.181292f, 0.324343f, 0.482575f, 0.23888f, 0.0473619f, 0.712567f, 0.894911f, 0.333934f, 0.636447f, 0.421969f, 0.464149f, 0.728045f, 0.694584f, 0.332859f, 0.27852f, 0.224442f, 0.500255f, 0.11779f, 0.872372f, 0.111546f, 0.288005f, 0.248654f, 0.767496f, 0.548099f, 0.00729712f, 0.530681f, 0.672828f, 0.675277f, 0.00641172f, 0.693643f, 0.201998f, 0.8822f, 0.71006f, 0.845775f, 0.219052f, 0.526977f, 0.683796f, 0.0651949f, 0.885758f, 0.0993864f, 0.7521f, 0.486963f, 0.565048f, 0.0380388f, 0.78097f, 0.423225f, 0.232267f, 0.752506f, 0.935552f, 0.991302f, 0.363166f, 0.166649f, 0.553225f, 0.766028f, 0.726783f, 0.234747f, 0.651213f, 0.0501403f, 0.215555f, 0.721124f, 0.526623f, 0.107751f, 0.0986246f, 0.350576f, 0.632459f, 0.806925f, 0.986724f, 0.503427f, 0.89563f, 0.135046f, 0.131089f, 0.13042f, 0.680536f, 0.194616f, 0.0838534f, 0.340484f, 0.584794f, 0.529969f, 0.90306f, 0.970121f, 0.774843f, 0.740918f, 0.631843f, 0.849509f, 0.827182f, 0.119973f, 0.0955378f, 0.075458f, 0.834584f, 0.532189f, 0.665657f, 0.805814f, 0.858219f, 0.730203f, 0.196198f, 0.566032f, 0.603753f, 0.159033f, 0.0184471f, 0.162071f, 0.318345f, 0.343281f, 0.497409f, 0.538695f, 0.250598f, 0.774254f, 0.0926591f, 0.833227f, 0.453374f, 0.854888f, 0.828887f, 0.803833f, 0.258102f, 0.847914f, 0.578454f, 0.85191f, 0.0348968f, 0.00709585f, 0.430207f, 0.526198f, 0.938686f, 0.730122f, 0.661965f, 0.496286f, 0.926161f, 0.190591f, 0.775205f, 0.462369f, 0.0878296f, 0.179312f, 0.806409f, 0.990705f, 0.716664f, 0.785454f, 0.284018f, 0.750923f, 0.688451f, 0.675176f, 0.0552854f, 0.137542f, 0.795408f, 0.799335f, 0.72947f, 0.559885f, 0.681329f, 0.892869f, 0.337649f, 0.877184f, 0.775649f, 0.355719f, 0.99419f, 0.348827f, 0.352518f, 0.524771f, 0.253467f, 0.338579f, 0.580983f, 0.803195f, 0.522006f, 0.523621f, 0.670412f, 0.492276f, 0.671907f, 0.0820314f, 0.0755928f, 0.904965f, 0.893803f, 0.188026f, 0.509634f, 0.975302f, 0.249063f, 0.179232f, 0.32184f, 0.00170983f, 0.291098f, 0.82429f, 0.185485f, 0.999333f, 0.275786f, 0.947017f, 0.93035f, 0.957691f, 0.809511f, 0.0708173f, 0.214065f, 0.982884f, 0.606091f, 0.332046f, 0.773362f, 0.253258f, 0.396683f, 0.542991f, 0.532282f, 0.0806511f, 0.258931f, 0.907905f, 0.572239f, 0.781055f, 0.165028f, 0.963063f, 0.751667f, 0.0629895f, 0.0533429f, 0.313023f, 0.679359f, 0.254258f, 0.653318f, 0.309982f, 0.908514f, 0.508617f, 0.387468f, 0.964641f, 0.296241f, 0.766548f, 0.103427f, 0.549489f, 0.520825f, 0.326314f, 0.236405f, 0.0752578f, 0.064323f, 0.936622f, 0.64045f, 0.273236f, 0.777044f, 0.829876f, 0.795377f, 0.0883918f, 0.606991f, 0.18328f, 0.202031f, 0.601384f, 0.834526f, 0.668589f, 0.679766f, 0.515227f, 0.0901979f, 0.457051f, 0.68674f, 0.727562f, 0.227659f, 0.709396f, 0.436637f, 0.474253f, 0.0137946f, 0.0644583f, 0.254809f, 0.0233766f, 0.0756732f, 0.726718f, 0.15911f, 0.850898f, 0.434646f, 0.44796f, 0.053404f, 0.900504f, 0.587858f, 0.423076f, 0.720507f, 0.334164f, 0.706948f, 0.909105f, 0.300613f, 0.604851f, 0.86867f, 0.271388f, 0.669847f, 0.0167656f, 0.861554f, 0.077821f, 0.733018f, 0.348124f, 0.599139f, 0.771288f, 0.062589f, 0.740457f, 0.00565081f, 0.589702f, 0.182778f, 0.820999f, 0.593757f, 0.761818f, 0.335597f, 0.935937f, 0.858532f, 0.0631401f, 0.343626f, 0.3535f, 0.921326f, 0.388196f, 0.795474f, 0.819477f, 0.871345f, 0.715264f, 0.236699f, 0.0888337f, 0.460016f, 0.717278f, 0.241951f, 0.572598f, 0.138847f, 0.761385f, 0.689444f, 0.336782f, 0.402254f, 0.253664f, 0.957427f, 0.609713f, 0.950624f, 0.304603f, 0.610227f, 0.525213f, 0.0259711f, 0.316714f, 0.572127f, 0.82157f, 0.407217f, 0.529548f, 0.330687f, 0.987616f, 0.135846f, 0.169265f, 0.460935f, 0.0892792f, 0.0736386f, 0.487791f, 0.278372f, 0.44187f, 0.683973f, 0.77193f, 0.787922f, 0.945419f, 0.372715f, 0.0631618f, 0.94083f, 0.0148512f, 0.672022f, 0.775876f, 0.0020973f, 0.322331f, 0.185871f, 0.0218866f, 0.601585f, 0.0541359f, 0.28853f, 0.557182f, 0.61673f, 0.00376734f, 0.175793f, 0.210734f, 0.157517f, 0.710277f, 0.190945f, 0.143232f, 0.806647f, 0.154759f, 0.262934f, 0.630335f, 0.231349f, 0.7522f, 0.00389908f, 0.723769f, 0.959224f, 0.291919f, 0.347028f, 0.714319f, 0.229783f, 0.233013f, 0.723434f, 0.717867f, 0.0989735f, 0.750173f, 0.0774084f, 0.864228f, 0.655428f, 0.848505f, 0.514754f, 0.45118f, 0.269854f, 0.650527f, 0.967951f, 0.220624f, 0.597638f, 0.717378f, 0.329439f, 0.131894f, 0.464656f, 0.566333f, 0.482473f, 0.969188f, 0.259669f, 0.230619f, 0.901337f, 0.443747f, 0.662217f, 0.332049f, 0.0475301f, 0.249253f, 0.114379f, 0.285178f, 0.904313f, 0.0910859f, 0.800636f, 0.677768f, 0.291465f, 0.308626f, 0.182143f, 0.37033f, 0.912108f, 0.888104f, 0.595926f, 0.354441f, 0.231607f, 0.00429094f, 0.752775f, 0.155457f, 0.613871f, 0.229395f, 0.996085f, 0.564239f, 0.948173f, 0.331992f, 0.611012f, 0.0780731f, 0.283474f, 0.794546f, 0.147155f, 0.865008f, 0.310865f, 0.65613f, 0.819575f, 0.836494f, 0.434378f, 0.332479f, 0.462109f, 0.802556f, 0.557888f, 0.894007f, 0.84688f, 0.658564f, 0.439436f, 0.157999f, 0.0187777f, 0.668829f, 0.0981938f, 0.406871f, 0.0598554f, 0.0440665f, 0.7231f, 0.627785f, 0.228452f, 0.369441f, 0.818003f, 0.949541f, 0.309793f, 0.426666f, 0.953626f, 0.310622f, 0.636521f, 0.0078374f, 0.52237f, 0.546259f, 0.14587f, 0.127715f, 0.77997f, 0.19584f, 0.0460907f, 0.222583f, 0.245641f, 0.0744197f, 0.062041f, 0.154346f, 0.294956f, 0.0346921f, 0.961903f, 0.596522f, 0.920379f, 0.637078f, 0.452331f, 0.037705f, 0.300133f, 0.392585f, 0.444479f, 0.809781f, 0.91904f, 0.34609f, 0.337059f, 0.772944f, 0.509076f, 0.813418f, 0.743843f, 0.832422f, 0.513355f, 0.737389f, 0.909522f, 0.400143f, 0.989196f, 0.706781f, 0.936147f, 0.967412f, 0.0790019f, 0.683452f, 0.0513959f, 0.0220148f, 0.445829f, 0.379712f, 0.436938f, 0.262968f, 0.71458f, 0.521984f, 0.29096f, 0.910776f, 0.182706f, 0.990957f, 0.762616f, 0.838326f, 0.975322f, 0.0426235f, 0.157322f, 0.529008f, 0.718687f, 0.720107f, 0.106729f, 0.108269f, 0.495979f, 0.141722f, 0.351645f, 0.839378f, 0.345489f, 0.526144f, 0.367063f, 0.462042f, 0.591808f, 0.661215f, 0.576531f, 0.48666f, 0.768595f, 0.00274219f, 0.362288f, 0.914434f, 0.242182f, 0.17169f, 0.231551f, 0.380276f, 0.119062f, 0.122866f, 0.943268f, 0.736052f, 0.581239f, 0.601212f, 0.280017f, 0.0845222f, 0.405734f, 0.386272f, 0.835841f, 0.481437f, 0.902706f, 0.729822f, 0.483459f, 0.516436f, 0.320269f, 0.0900959f, 0.854665f, 0.425034f, 0.658621f, 0.672968f, 0.274236f, 0.159773f, 0.155908f, 0.908024f, 0.874571f, 0.157201f, 0.479119f, 0.924767f, 0.865331f, 0.243567f, 0.17988f, 0.560174f, 0.899771f, 0.880168f, 0.492128f, 0.545013f, 0.0557516f, 0.213721f, 0.433411f, 0.926724f, 0.555485f, 0.66838f, 0.314699f, 0.973913f, 0.419982f, 0.162812f, 0.718897f, 0.824389f, 0.0573174f, 0.267585f, 0.263586f, 0.535152f, 0.429409f, 0.279717f, 0.216125f, 0.421766f, 0.358811f, 0.738326f, 0.293389f, 0.291716f, 0.610258f, 0.347914f, 0.274395f, 0.623084f, 0.84017f, 0.809506f, 0.328248f, 0.0550458f, 0.154956f, 0.779291f, 0.965005f, 0.829546f, 0.582364f, 0.803129f, 0.394827f, 0.327245f, 0.863805f, 0.827684f, 0.444272f, 0.463576f, 0.477969f, 0.310528f, 0.356725f, 0.163275f, 0.767826f, 0.406951f, 0.993501f, 0.480717f, 0.851361f, 0.822044f, 0.115931f, 0.246821f, 0.892049f, 0.318809f, 0.0882003f, 0.156773f, 0.678496f, 0.495272f, 0.571106f, 0.703626f, 0.813238f, 0.636719f, 0.674915f, 0.60579f, 0.370936f, 0.685799f, 0.868517f, 0.537657f, 0.942709f, 0.46806f, 0.956807f, 0.047549f, 0.332575f, 0.603114f, 0.314875f, 0.378283f, 0.657079f, 0.439649f, 0.949845f, 0.190255f, 0.557969f, 0.0978686f, 0.180199f, 0.0712606f, 0.42219f, 0.24346f, 0.74311f, 0.51032f, 0.339512f, 0.96454f, 0.85125f, 0.904598f, 0.709244f, 0.909396f, 0.604158f, 0.0167792f, 0.824189f, 0.131455f, 0.506255f, 0.424453f, 0.887814f, 0.523445f, 0.949804f, 0.642764f, 0.39447f, 0.549367f, 0.430829f, 0.708628f, 0.0988114f, 0.882531f, 0.137133f, 0.460929f, 0.0122454f, 0.514485f, 0.472725f, 0.860747f, 0.424559f, 0.127027f, 0.443558f, 0.248595f, 0.963645f, 0.824439f, 0.829111f, 0.253433f, 0.88862f, 0.337656f, 0.398615f, 0.074632f, 0.504647f, 0.173831f, 0.780968f, 0.0923362f, 0.136717f, 0.512784f, 0.317403f, 0.0866651f, 0.621285f, 0.410034f, 0.153893f, 0.377459f, 0.698771f, 0.0795732f, 0.346077f, 0.512959f, 0.761268f, 0.94475f, 0.961858f, 0.483854f, 0.660332f, 0.92906f, 0.611741f, 0.581595f, 0.311685f, 0.929314f, 0.9404f, 0.41046f, 0.276307f, 0.00848755f, 0.969586f, 0.222466f, 0.824088f, 0.226543f, 0.0996573f, 0.932443f, 0.152814f, 0.0705176f, 0.101769f, 0.0654273f, 0.14785f, 0.00966242f, 0.904179f, 0.0265705f, 0.147682f, 0.966167f, 0.735643f, 0.458483f, 0.361496f, 0.140284f, 0.994168f, 0.384072f, 0.12949f, 0.256833f, 0.961848f, 0.297969f, 0.135262f, 0.554605f, 0.971555f, 0.118056f, 0.123181f, 0.938647f, 0.69431f, 0.735165f, 0.0754149f, 0.777311f, 0.580156f, 0.284853f, 0.0186222f, 0.877017f, 0.166516f, 0.872438f, 0.837276f, 0.177283f, 0.209166f, 0.930639f, 0.992038f, 0.071956f, 0.302043f, 0.989175f, 0.331572f, 0.810496f, 0.721497f, 0.249547f, 0.88981f, 0.126121f, 0.26953f, 0.183717f, 0.438436f, 0.0113474f, 0.23086f, 0.982592f, 0.561045f, 0.987936f, 0.216965f, 0.136639f, 0.890613f, 0.575762f, 0.621453f, 0.00423407f, 0.281635f, 0.630328f, 0.762428f, 0.586908f, 0.336568f, 0.157239f, 0.0181237f, 0.278881f, 0.280268f, 0.310723f, 0.107755f, 0.794932f, 0.94234f, 0.82636f, 0.0447968f, 0.0484417f, 0.764108f, 0.486863f, 0.123541f, 0.408821f, 0.548363f, 0.565195f, 0.993258f, 0.340211f, 0.101428f, 0.639352f, 0.0331267f, 0.722798f, 0.968099f, 0.44833f, 0.104309f, 0.432915f, 0.514847f, 0.180713f, 0.255512f, 0.149729f, 0.709521f, 0.278671f, 0.630209f, 0.720918f, 0.666975f, 0.0961393f, 0.977855f, 0.177188f, 0.898692f, 0.325751f, 0.0991652f, 0.758603f, 0.940151f, 0.62894f, 0.235112f, 0.312575f, 0.710541f, 0.773737f, 0.58237f, 0.874781f, 0.639464f, 0.290089f, 0.569295f, 0.164518f, 0.657867f, 0.786519f, 0.491751f, 0.466474f, 0.966587f, 0.881463f, 0.84333f, 0.0278504f, 0.966788f, 0.754078f, 0.055957f, 0.426219f, 0.398211f, 0.832891f, 0.424339f, 0.388594f, 0.689108f, 0.640693f, 0.443203f, 0.244257f, 0.563948f, 0.875906f, 0.00518997f, 0.676692f, 0.159401f, 0.0246055f, 0.464375f, 0.65923f, 0.219716f, 0.503831f, 0.717623f, 0.15368f, 0.504457f, 0.719898f, 0.765235f, 0.800815f, 0.0451803f, 0.825401f, 0.609148f, 0.935513f, 0.389204f, 0.698918f, 0.770326f, 0.975974f, 0.909186f, 0.18634f, 0.163325f, 0.703226f, 0.823482f, 0.88745f, 0.530157f, 0.377282f, 0.412649f, 0.0550173f, 0.56406f, 0.965351f, 0.588554f, 0.479646f, 0.433134f, 0.36783f, 0.83208f, 0.0279519f, 0.059072f, 0.317357f, 0.579981f, 0.417228f, 0.868393f, 0.719391f, 0.307402f, 0.987383f, 0.0988718f, 0.623523f, 0.533682f, 0.102385f, 0.0310876f, 0.142984f, 0.248113f, 0.947057f, 0.394611f, 0.366998f, 0.564097f, 0.405845f, 0.721784f, 0.0687225f, 0.412298f, 0.655871f, 0.213394f, 0.179709f, 0.212455f, 0.514997f, 0.6472f, 0.204435f, 0.423867f, 0.531151f, 0.845199f, 0.968685f, 0.52798f, 0.805347f, 0.780149f, 0.823828f, 0.0588349f, 0.236761f, 0.921897f, 0.21372f, 0.595434f, 0.87177f, 0.599367f, 0.106801f, 0.575967f, 0.318829f, 0.450477f, 0.150316f, 0.296109f, 0.499768f, 0.47738f, 0.128069f, 0.0715869f, 0.72745f, 0.528861f, 0.495088f, 0.265099f, 0.539606f, 0.0896716f, 0.468149f, 0.705684f, 0.828803f, 0.351793f, 0.872687f, 0.0503727f, 0.057916f, 0.543063f, 0.570048f, 0.973978f, 0.116472f, 0.960034f, 0.302765f, 0.534159f, 0.446823f, 0.571178f, 0.788278f, 0.685542f, 0.624223f, 0.845715f, 0.325013f, 0.0851581f, 0.143677f, 0.514044f, 0.67958f, 0.106702f, 0.0944046f, 0.538803f, 0.450271f, 0.749616f, 0.443358f, 0.989337f, 0.591366f, 0.729911f, 0.507205f, 0.573434f, 0.230006f, 0.81932f, 0.557344f, 0.00369812f, 0.729565f, 0.668036f, 0.679606f, 0.307034f, 0.771778f, 0.194125f, 0.295945f, 0.262545f, 0.482182f, 0.879381f, 0.909916f, 0.379052f, 0.596569f, 0.348802f, 0.0713749f, 0.659126f, 0.8039f, 0.904802f, 0.998137f, 0.188463f, 0.304638f, 0.180875f, 0.851244f, 0.89946f, 0.364322f, 0.482404f, 0.769585f, 0.684069f, 0.357839f, 0.927881f, 0.849572f, 0.0148404f, 0.173851f, 0.55656f, 0.0420279f, 0.469893f, 0.929734f, 0.373059f, 0.867094f, 0.562266f, 0.869882f, 0.803044f, 0.824802f, 0.591238f, 0.645355f, 0.654374f, 0.739676f, 0.569853f, 0.592839f, 0.578108f, 0.172859f, 0.161045f, 0.307407f, 0.687171f, 0.315771f, 0.777463f, 0.395209f, 0.389749f, 0.142843f, 0.382948f, 0.139211f, 0.713281f, 0.559466f, 0.543633f, 0.550603f, 0.632542f, 0.550871f, 0.247174f, 0.389212f, 0.753951f, 0.384542f, 0.000148124f, 0.72436f, 0.56891f, 0.57391f, 0.512715f, 0.898969f, 0.594874f, 0.557189f, 0.908967f, 0.617391f, 0.392906f, 0.653329f, 0.777935f, 0.58031f, 0.625075f, 0.242305f, 0.1198f, 0.122227f, 0.111774f, 0.722752f, 0.879915f, 0.782339f, 0.934779f, 0.0186954f, 0.0362658f, 0.947503f, 0.841379f, 0.336723f, 0.185926f, 0.738201f, 0.428007f, 0.903615f, 0.866105f, 0.475728f, 0.202284f, 0.272111f, 0.0571659f, 0.210737f, 0.476015f, 0.469073f, 0.0611642f, 0.0665944f, 0.325353f, 0.964703f, 0.0953343f, 0.0682228f, 0.83638f, 0.601042f, 0.0126703f, 0.201357f, 0.0904805f, 0.297979f, 0.474657f, 0.638882f, 0.981478f, 0.99664f, 0.430499f, 0.252657f, 0.736575f, 0.490264f, 0.767054f, 0.211742f, 0.864591f, 0.260054f, 0.809009f, 0.913942f, 0.30213f, 0.753506f, 0.457655f, 0.370254f, 0.214893f, 0.736468f, 0.476589f, 0.346709f, 0.295778f, 0.79027f, 0.842565f, 0.728237f, 0.848804f, 0.24776f, 0.108304f, 0.887907f, 0.523082f, 0.888509f, 0.693114f, 0.514055f, 0.00202371f, 0.440257f, 0.811403f, 0.459141f, 0.765207f, 0.898165f, 0.946443f, 0.925234f, 0.941297f, 0.688213f, 0.815815f, 0.0213245f, 0.0624914f, 0.248203f, 0.331839f, 0.861401f, 0.550611f, 0.0653023f, 0.254555f, 0.4925f, 0.0976798f, 0.858426f, 0.53645f, 0.00381209f, 0.568045f, 0.534942f, 0.721444f, 0.276038f, 0.11547f, 0.260258f, 0.710199f, 0.640796f, 0.620652f, 0.63514f, 0.284293f, 0.713824f, 0.415793f, 0.649285f, 0.0575196f, 0.618474f, 0.596102f, 0.864243f, 0.864486f, 0.116281f, 0.00390904f, 0.846489f, 0.874261f, 0.713002f, 0.921523f, 0.433395f, 0.0862394f, 0.536478f, 0.793742f, 0.755592f, 0.185232f, 0.791599f, 0.848238f, 0.789237f, 0.697622f, 0.103263f, 0.456274f, 0.368645f, 0.835412f, 0.321818f, 0.974223f, 0.583227f, 0.305607f, 0.010266f, 0.149779f, 0.627738f, 0.696854f, 0.347965f, 0.351781f, 0.284056f, 0.317928f, 0.872251f, 0.543762f, 0.892236f, 0.973598f, 0.738517f, 0.174874f, 0.251516f, 0.754915f, 0.822497f, 0.407258f, 0.763458f, 0.587331f, 0.177994f, 0.795502f, 0.526714f, 0.243223f, 0.47884f, 0.538333f, 0.296961f, 0.689567f, 0.284069f, 0.150483f, 0.29841f, 0.83895f, 0.163957f, 0.550412f, 0.759699f, 0.228623f, 0.358266f, 0.764388f, 0.0343603f, 0.573761f, 0.0995418f, 0.256265f, 0.447006f, 0.584478f, 0.868124f, 0.996181f, 0.460933f, 0.969999f, 0.117898f, 0.830214f, 0.832377f, 0.0981657f, 0.752475f, 0.0130955f, 0.591671f, 0.945099f, 0.173983f, 0.834611f, 0.321708f, 0.00127714f, 0.45433f, 0.956984f, 0.554794f, 0.0443828f, 0.0564657f, 0.0607032f, 0.206122f, 0.0508211f, 0.193611f, 0.885675f, 0.248248f, 0.0177595f, 0.46287f, 0.511605f, 0.217043f, 0.766855f, 0.748022f, 0.506122f, 0.284082f, 0.56234f, 0.0373831f, 0.736352f, 0.374462f, 0.503192f, 0.920619f, 0.679205f, 0.298362f, 0.952551f, 0.0242068f, 0.670969f, 0.207361f, 0.757293f, 0.818589f, 0.712484f, 0.51068f, 0.953238f, 0.740579f, 0.484941f, 0.703389f, 0.0998717f, 0.693497f, 0.277543f, 0.412835f, 0.0898437f, 0.17018f, 0.380656f, 0.67726f, 0.829685f, 0.160571f, 0.982515f, 0.0105622f, 0.178074f, 0.180181f, 0.985837f, 0.04553f, 0.879438f, 0.39348f, 0.541605f, 0.105272f, 0.509245f, 0.45921f, 0.186196f, 0.364205f, 0.440382f, 0.648964f, 0.406605f, 0.885256f, 0.739323f, 0.846065f, 0.773372f, 0.42297f, 0.39465f, 0.547566f, 0.846827f, 0.783635f, 0.698584f, 0.802073f, 0.115203f, 0.715732f, 0.796066f, 0.590882f, 0.793278f, 0.583701f, 0.370246f, 0.0525421f, 0.62654f, 0.226048f, 0.203063f, 0.363741f, 0.0796044f, 0.302193f, 0.104387f, 0.719226f, 0.363957f, 0.156718f, 0.416547f, 0.0413003f, 0.0534442f, 0.689326f, 0.495003f, 0.581874f, 0.94833f, 0.590377f, 0.86838f, 0.165258f, 0.396636f, 0.370142f, 0.756148f, 0.895842f, 0.788295f, 0.292392f, 0.0942366f, 0.207767f, 0.521764f, 0.786284f, 0.656198f, 0.900616f, 0.036613f, 0.101972f, 0.588965f, 0.468545f, 0.398949f, 0.192605f, 0.442695f, 0.866613f, 0.490497f, 0.938659f, 0.163865f, 0.658106f, 0.728801f, 0.232202f, 0.794796f, 0.51414f, 0.101016f, 0.237841f, 0.109641f, 0.315046f, 0.845791f, 0.275807f, 0.588913f, 0.520171f, 0.707007f, 0.601738f, 0.617549f, 0.688958f, 0.0586862f, 0.253376f, 0.311548f, 0.811601f, 0.345321f, 0.883751f, 0.240324f, 0.83187f, 0.156642f, 0.296653f, 0.671268f, 0.820915f, 0.31121f, 0.37509f, 0.161503f, 0.694744f, 0.600375f, 0.599661f, 0.468312f, 0.28947f, 0.374086f, 0.119787f, 0.063204f, 0.955248f, 0.251944f, 0.977308f, 0.237282f, 0.563092f, 0.441562f, 0.0589088f, 0.711063f, 0.604121f, 0.642621f, 0.66315f, 0.831686f, 0.971107f, 0.498149f, 0.797319f, 0.287449f, 0.660532f, 0.543949f, 0.923563f, 0.0116415f, 0.438079f, 0.760688f, 0.367991f, 0.674523f, 0.954855f, 0.0322069f, 0.716675f, 0.293589f, 0.880414f, 0.360645f, 0.787416f, 0.371654f, 0.662933f, 0.622078f, 0.703166f, 0.720878f, 0.63169f, 0.146368f, 0.206037f, 0.786252f, 0.843981f, 0.603251f, 0.0284235f, 0.329744f, 0.0306811f, 0.331363f, 0.965364f, 0.20077f, 0.499229f, 0.303143f, 0.0352855f, 0.0362593f, 0.768574f, 0.851408f, 0.139309f, 0.235714f, 0.358162f, 0.642589f, 0.887479f, 0.636f, 0.92517f, 0.233587f, 0.701345f, 0.860022f, 0.467247f, 0.999242f, 0.613187f, 0.543184f, 0.309764f, 0.884758f, 0.594529f, 0.00921185f, 0.257275f, 0.555912f, 0.230975f, 0.940304f, 0.0342401f, 0.886004f, 0.987629f, 0.290885f, 0.0431279f, 0.192952f, 0.184686f, 0.510438f, 0.399143f, 0.293712f, 0.0965965f, 0.521944f, 0.635594f, 0.109729f, 0.668824f, 0.907203f, 0.0184083f, 0.123525f, 0.353211f, 0.0878773f, 0.735733f, 0.439931f, 0.821095f, 0.414072f, 0.790761f, 0.999123f, 0.0736174f, 0.201622f, 0.258622f, 0.721344f, 0.504993f, 0.685997f, 0.118691f, 0.191002f, 0.831992f, 0.690067f, 0.0679851f, 0.80831f, 0.659104f, 0.731067f, 0.352092f, 0.293331f, 0.957118f, 0.345333f, 0.348707f, 0.692154f, 0.47406f, 0.670504f, 0.893248f, 0.658411f, 0.791697f, 0.131207f, 0.146328f, 0.454866f, 0.259299f, 0.019731f, 0.633885f, 0.485144f, 0.867405f, 0.102936f, 0.282226f, 0.154727f, 0.209302f, 0.642264f, 0.91506f, 0.64719f, 0.417825f, 0.242511f, 0.971619f, 0.500971f, 0.564887f, 0.0283391f, 0.460881f, 0.413526f, 0.23318f, 0.620868f, 0.117714f, 0.476234f, 0.0324641f, 0.347729f, 0.844452f, 0.111522f, 0.495495f, 0.171264f, 0.240243f, 0.309112f, 0.063638f, 0.346869f, 0.958359f, 0.884077f, 0.817148f, 0.343429f, 0.176891f, 0.222144f, 0.472591f, 0.534492f, 0.381877f, 0.826799f, 0.694224f, 0.836962f, 0.253868f, 0.222637f, 0.938627f, 0.344025f, 0.531818f, 0.886584f, 0.136461f, 0.883926f, 0.6252f, 0.450213f, 0.675853f, 0.833127f, 0.531458f, 0.219885f, 0.516905f, 0.538804f, 0.270947f, 0.8083f, 0.342117f, 0.164903f, 0.717373f, 0.259723f, 0.34928f, 0.0031411f, 0.477951f, 0.76696f, 0.631356f, 0.56084f, 0.393835f, 0.62975f, 0.442054f, 0.760919f, 0.438761f, 0.588724f, 0.394976f, 0.740429f, 0.892797f, 0.890638f, 0.889373f, 0.479524f, 0.898522f, 0.252899f, 0.601043f, 0.340232f, 0.507867f, 0.604934f, 0.673391f, 0.864168f, 0.761415f, 0.0193604f, 0.917449f, 0.0233324f, 0.176041f, 0.79358f, 0.759087f, 0.00338592f, 0.418596f, 0.946881f, 0.836999f, 0.783908f, 0.536279f, 0.0901404f, 0.37536f, 0.727554f, 0.362474f, 0.32167f, 0.552061f, 0.938832f, 0.698234f, 0.990923f, 0.172385f, 0.99277f, 0.99088f, 0.834197f, 0.509995f, 0.885742f, 0.305868f, 0.881945f, 0.593989f, 0.280978f, 0.738778f, 0.446081f, 0.484508f, 0.620926f, 0.292129f, 0.526718f, 0.665401f, 0.189873f, 0.877087f, 0.701434f, 0.686591f, 0.819066f, 0.581826f, 0.452287f, 0.648421f, 0.814646f, 0.711528f, 0.67888f, 0.803137f, 0.335464f, 0.433189f, 0.248543f, 0.863502f, 0.093987f, 0.920554f, 0.610589f, 0.803123f, 0.507438f, 0.213006f, 0.635474f, 0.897421f, 0.425198f, 0.959406f, 0.744501f, 0.544635f, 0.85241f, 0.886215f, 0.581579f, 0.0143649f, 0.787452f, 0.528399f, 0.927382f, 0.666474f, 0.88946f, 0.171892f, 0.908565f, 0.72192f, 0.623877f, 0.319243f, 0.442565f, 0.560949f, 0.629502f, 0.731693f, 0.893384f, 0.529135f, 0.465402f, 0.643891f, 0.432774f, 0.237178f, 0.729202f, 0.254623f, 0.793939f, 0.0540441f, 0.916015f, 0.547684f, 0.291954f, 0.378851f, 0.992345f, 0.675009f, 0.445953f, 0.451707f, 0.384178f, 0.64188f, 0.966359f, 0.386137f, 0.329766f, 0.638585f, 0.351205f, 0.217723f, 0.409932f, 0.798015f, 0.376577f, 0.911426f, 0.896666f, 0.0532622f, 0.364394f, 0.978061f, 0.431195f, 0.655887f, 0.511757f, 0.676384f, 0.0226849f, 0.429696f, 0.27891f, 0.1292f, 0.442489f, 0.101619f, 0.760526f, 0.811433f, 0.0115432f, 0.0957934f, 0.519178f, 0.058131f, 0.0607445f, 0.570893f, 0.486126f, 0.334195f, 0.16865f, 0.194041f, 0.15197f, 0.39907f, 0.39531f, 0.66054f, 0.368456f, 0.744452f, 0.746989f, 0.158254f, 0.426506f, 0.60924f, 0.647154f, 0.222331f, 0.364358f, 0.37559f, 0.91225f, 0.516574f, 0.0581788f, 0.335011f, 0.0888585f, 0.491322f, 0.991695f, 0.236961f, 0.223844f, 0.438208f, 0.566438f, 0.816695f, 0.97718f, 0.151424f, 0.991711f, 0.762377f, 0.884529f, 0.524874f, 0.70195f, 0.0683297f, 0.629884f, 0.721056f, 0.136015f, 0.181119f, 0.776701f, 0.628543f, 0.843678f, 0.925435f, 0.0315292f, 0.723458f, 0.0801435f, 0.347634f, 0.0693801f, 0.271896f, 0.419464f, 0.389288f, 0.809939f, 0.119708f, 0.961704f, 0.0539787f, 0.0928968f, 0.494872f, 0.742237f, 0.632632f, 0.427045f, 0.99255f, 0.38223f, 0.944426f, 0.55129f, 0.120628f, 0.199883f, 0.114481f, 0.695233f, 0.549377f, 0.48581f, 0.469033f, 0.0897173f, 0.972331f, 0.207159f, 0.605164f, 0.251204f, 0.0292478f, 0.249625f, 0.851037f, 0.985599f, 0.851117f, 0.492f, 0.128298f, 0.587453f, 0.492101f, 0.542004f, 0.596331f, 0.130162f, 0.132661f, 0.114587f, 0.446182f, 0.62133f, 0.345193f, 0.970332f, 0.304415f, 0.711366f, 0.593442f, 0.238918f, 0.49472f, 0.219047f, 0.882048f, 0.655913f, 0.0858985f, 0.0448975f, 0.744293f, 0.559759f, 0.727168f, 0.948462f, 0.872775f, 0.887675f, 0.97566f, 0.602118f, 0.59441f, 0.365167f, 0.0178453f, 0.677012f, 0.000469322f, 0.462239f, 0.406242f, 0.220816f, 0.534038f, 0.754588f, 0.988072f, 0.674532f, 0.984156f, 0.938116f, 0.726921f, 0.0813114f, 0.0698321f, 0.53369f, 0.52899f, 0.373353f, 0.715339f, 0.648526f, 0.203647f, 0.679892f, 0.138689f, 0.717086f, 0.130382f, 0.641169f, 0.935975f, 0.234003f, 0.785587f, 0.524012f, 0.350948f, 0.867169f, 0.516038f, 0.0972155f, 0.204833f, 0.44361f, 0.272956f, 0.963037f, 0.311152f, 0.604657f, 0.142892f, 0.141633f, 0.619187f, 0.29317f, 0.726191f, 0.443992f, 0.251751f, 0.403269f, 0.093485f, 0.0333194f, 0.732796f, 0.45749f, 0.688286f, 0.440866f, 0.408456f, 0.973198f, 0.229783f, 0.31757f, 0.330477f, 0.461278f, 0.373952f, 0.51402f, 0.759988f, 0.542619f, 0.329818f, 0.51143f, 0.70557f, 0.257815f, 0.989691f, 0.832469f, 0.635778f, 0.73187f, 0.878585f, 0.435296f, 0.303173f, 0.834875f, 0.581567f, 0.99194f, 0.406117f, 0.0915859f, 0.05272f, 0.331072f, 0.508428f, 0.794462f, 0.19633f, 0.768132f, 0.293733f, 0.295751f, 0.191498f, 0.257508f, 0.0606061f, 0.469303f, 0.875147f, 0.663145f, 0.588876f, 0.072709f, 0.648664f, 0.92418f, 0.366776f, 0.49849f, 0.546391f, 0.0735117f, 0.0646461f, 0.717583f, 0.552678f, 0.00543609f, 0.180325f, 0.506415f, 0.602656f, 0.281583f, 0.251179f, 0.251321f, 0.747652f, 0.802051f, 0.236779f, 0.834184f, 0.510039f, 0.0827592f, 0.390959f, 0.662091f, 0.397174f, 0.175574f, 0.260066f, 0.166856f, 0.195407f, 0.185696f, 0.895769f, 0.525751f, 0.877596f, 0.0125126f, 0.482765f, 0.872977f, 0.825291f, 0.444211f, 0.503061f, 0.559385f, 0.877482f, 0.292179f, 0.816029f, 0.50973f, 0.714857f, 0.0713315f, 0.325027f, 0.209972f, 0.342602f, 0.958246f, 0.553407f, 0.0536296f, 0.775703f, 0.716464f, 0.574337f, 0.88593f, 0.56053f, 0.185352f, 0.988696f, 0.0619346f, 0.673126f, 0.242359f, 0.710365f, 0.117933f, 0.13089f, 0.269189f, 0.825123f, 0.782908f, 0.876054f, 0.618151f, 0.0318198f, 0.191444f, 0.671135f, 0.709634f, 0.691659f, 0.871847f, 0.449904f, 0.614982f, 0.754703f, 0.295812f, 0.436184f, 0.460485f, 0.559034f, 0.971071f, 0.0835596f, 0.325722f, 0.683165f, 0.486895f, 0.625746f, 0.606516f, 0.970145f, 0.806648f, 0.219093f, 0.2069f, 0.625969f, 0.874585f, 0.8453f, 0.535089f, 0.788458f, 0.149386f, 0.526117f, 0.79274f, 0.16895f, 0.502175f, 0.233237f, 0.738958f, 0.282391f, 0.973136f, 0.32103f, 0.765401f, 0.513252f, 0.637431f, 0.614987f, 0.634239f, 0.841921f, 0.988349f, 0.518761f, 0.400584f, 0.37837f, 0.669983f, 0.825831f, 0.865357f, 0.0415287f, 0.632536f, 0.461784f, 0.96576f, 0.105234f, 0.437686f, 0.389517f, 0.158363f, 0.927401f, 0.24937f, 0.270551f, 0.0975506f, 0.305709f, 0.359394f, 0.130371f, 0.374196f, 0.344173f, 0.519781f, 0.993596f, 0.544894f, 0.131868f, 0.128031f, 0.901344f, 0.176863f, 0.464752f, 0.646638f, 0.326548f, 0.587591f, 0.247731f, 0.89514f, 0.224064f, 0.0250704f, 0.442619f, 0.38589f, 0.752707f, 0.462433f, 0.663886f, 0.275957f, 0.986956f, 0.482773f, 0.262438f, 0.522622f, 0.138242f, 0.438995f, 0.862814f, 0.143452f, 0.0950212f, 0.881319f, 0.576341f, 0.298245f, 0.879771f, 0.194538f, 0.455735f, 0.435099f, 0.890082f, 0.173699f, 0.895137f, 0.939618f, 0.174012f, 0.910283f, 0.120991f, 0.280603f, 0.320783f, 0.189493f, 0.933469f, 0.449997f, 0.741839f, 0.955152f, 0.53903f, 0.336764f, 0.183585f, 0.372795f, 0.0701182f, 0.904878f, 0.899548f, 0.475179f, 0.618857f, 0.832811f, 0.655082f, 0.99559f, 0.690304f, 0.712506f, 0.174392f, 0.727426f, 0.0838329f, 0.937813f, 0.0924383f, 0.0719185f, 0.23245f, 0.927018f, 0.105399f, 0.10073f, 0.634962f, 0.772058f, 0.755873f, 0.894292f, 0.0164735f, 0.232915f, 0.264722f, 0.69504f, 0.201968f, 0.851764f, 0.985482f, 0.676076f, 0.711461f, 0.212235f, 0.542927f, 0.192808f, 0.790123f, 0.735341f, 0.0462154f, 0.597233f, 0.275964f, 0.497216f, 0.72545f, 0.576124f, 0.182752f, 0.400787f, 0.0880176f, 0.154409f, 0.28781f, 0.80831f, 0.800509f, 0.484427f, 0.389254f, 0.679824f, 0.817012f, 0.195804f, 0.351946f, 0.407288f, 0.460556f, 0.788487f, 0.434113f, 0.0804973f, 0.650214f, 0.851455f, 0.0790833f, 0.674424f, 0.19845f, 0.940721f, 0.228667f, 0.584472f, 0.103982f, 0.170653f, 0.974974f, 0.577703f, 0.717665f, 0.558994f, 0.467201f, 0.981192f, 0.911936f, 0.452082f, 0.567041f, 0.589434f, 0.247865f, 0.0231813f, 0.947266f, 0.343523f, 0.0990505f, 0.721825f, 0.770362f, 0.9321f, 0.716394f, 0.378036f, 0.340831f, 0.922086f, 0.367607f, 0.227732f, 0.754128f, 0.467512f, 0.185746f, 0.712086f, 0.827322f, 0.874163f, 0.80717f, 0.47347f, 0.266213f, 0.237322f, 0.697254f, 0.287224f, 0.287679f, 0.708701f, 0.447164f, 0.966912f, 0.0886931f, 0.559857f, 0.450786f, 0.0322091f, 0.518248f, 0.218225f, 0.0868987f, 0.848535f, 0.945032f, 0.160127f, 0.514129f, 0.430556f, 0.663002f, 0.00521174f, 0.352251f, 0.348137f, 0.899454f, 0.296413f, 0.508459f, 0.592558f, 0.708089f, 0.98805f, 0.142662f, 0.813717f, 0.0965165f, 0.340975f, 0.57454f, 0.055429f, 0.679794f, 0.748739f, 0.26523f, 0.811711f, 0.0803593f, 0.689267f, 0.948111f, 0.261202f, 0.0712096f, 0.673757f, 0.94536f, 0.862339f, 0.702204f, 0.303758f, 0.918833f, 0.390345f, 0.171957f, 0.833633f, 0.0352809f, 0.0619804f, 0.0634282f, 0.839622f, 0.830667f, 0.87572f, 0.974781f, 0.932585f, 0.428813f, 0.0104468f, 0.972434f, 0.820552f, 0.950346f, 0.117655f, 0.523806f, 0.422234f, 0.302305f, 0.090535f, 0.795667f, 0.779505f, 0.47993f, 0.624446f, 0.516996f, 0.705758f, 0.0779813f, 0.645648f, 0.691177f, 0.252693f, 0.597603f, 0.0376277f, 0.712566f, 0.319926f, 0.306324f, 0.180171f, 0.495661f, 0.348016f, 0.722844f, 0.938575f, 0.810016f, 0.79415f, 0.0286016f, 0.341867f, 0.586811f, 0.908918f, 0.617296f, 0.194261f, 0.489661f, 0.58256f, 0.272265f, 0.464972f, 0.261022f, 0.992713f, 0.084131f, 0.861791f, 0.939094f, 0.666077f, 0.557338f, 0.76821f, 0.918701f, 0.945593f, 0.222807f, 0.631304f, 0.491077f, 0.631885f, 0.960694f, 0.555827f, 0.0440505f, 0.349719f, 0.0220607f, 0.964515f, 0.721428f, 0.802072f, 0.475958f, 0.537504f, 0.470392f, 0.839894f, 0.129662f, 0.753762f, 0.478501f, 0.344349f, 0.554631f, 0.646709f, 0.475004f, 0.569789f, 0.661667f, 0.550246f, 0.864076f, 0.322903f, 0.193854f, 0.449472f, 0.0489499f, 0.776404f, 0.171195f, 0.0490578f, 0.387318f, 0.471987f, 0.281251f, 0.530484f, 0.871881f, 0.00738331f, 0.756389f, 0.366249f, 0.523742f, 0.955334f, 0.900337f, 0.862764f, 0.0251068f, 0.807591f, 0.329f, 0.655859f, 0.43806f, 0.967088f, 0.856614f, 0.564868f, 0.263827f, 0.88379f, 0.394052f, 0.331613f, 0.129589f, 0.961031f, 0.313168f, 0.748675f, 0.301716f, 0.642899f, 0.530788f, 0.429123f, 0.957201f, 0.566146f, 0.333744f, 0.575132f, 0.883897f, 0.735218f, 0.301634f, 0.415317f, 0.541749f, 0.510866f, 0.940398f, 0.709419f, 0.166982f, 0.694368f, 0.300638f, 0.409976f, 0.826152f, 0.0791525f, 0.430932f, 0.556051f, 0.16027f, 0.659595f, 0.299579f, 0.982933f, 0.218503f, 0.622171f, 0.22258f, 0.710604f, 0.0246091f, 0.514223f, 0.722444f, 0.991928f, 0.149312f, 0.191685f, 0.309154f, 0.747623f, 0.13437f, 0.31049f, 0.612046f, 0.270341f, 0.00458145f, 0.359804f, 0.439719f, 0.190176f, 0.723132f, 0.64264f, 0.263273f, 0.862144f, 0.76636f, 0.860399f, 0.963442f, 0.113827f, 0.937807f, 0.697795f, 0.340797f, 0.0702309f, 0.466482f, 0.21466f, 0.103165f, 0.600706f, 0.765315f, 0.816003f, 0.00213699f, 0.880588f, 0.300601f, 0.697652f, 0.706224f, 0.405168f, 0.735619f, 0.503161f, 0.823492f, 0.297079f, 0.993075f, 0.1272f, 0.928639f, 0.766022f, 0.862957f, 0.115023f, 0.37654f, 0.997056f, 0.442415f, 0.10121f, 0.576175f, 0.568001f, 0.054658f, 0.539375f, 0.0369961f, 0.233537f, 0.45195f, 0.69698f, 0.491197f, 0.83229f, 0.749307f, 0.956535f, 0.461022f, 0.608285f, 0.0708996f, 0.858763f, 0.83665f, 0.0540675f, 0.176012f, 0.0782618f, 0.383573f, 0.10049f, 0.17039f, 0.837669f, 0.824347f, 0.672561f, 0.226258f, 0.993359f, 0.828738f, 0.745087f, 0.847143f, 0.214562f, 0.0966094f, 0.292813f, 0.172754f, 0.690461f, 0.306624f, 0.493792f, 0.082351f, 0.463749f, 0.709288f, 0.77587f, 0.769697f, 0.258762f, 0.552895f, 0.691946f, 0.428443f, 0.803173f, 0.319662f, 0.70558f, 0.684336f, 0.772958f, 0.192036f, 0.91128f, 0.784571f, 0.00169756f, 0.0220194f, 0.691098f, 0.303216f, 0.715526f, 0.616449f, 0.889499f, 0.601632f, 0.858683f, 0.379488f, 0.623479f, 0.063779f, 0.975611f, 0.107904f, 0.325446f, 0.917735f, 0.647174f, 0.169204f, 0.445308f, 0.50126f, 0.888059f, 0.530384f, 0.323393f, 0.209886f, 0.0370801f, 0.766925f, 0.760249f, 0.801241f, 0.198717f, 0.582479f, 0.344044f, 0.893696f, 0.388924f, 0.729045f, 0.469392f, 0.857614f, 0.558328f, 0.953396f, 0.201699f, 0.729881f, 0.0783627f, 0.866433f, 0.807658f, 0.25476f, 0.333156f, 0.22571f, 0.150533f, 0.199606f, 0.0655663f, 0.745986f, 0.0226287f, 0.567979f, 0.759151f, 0.232618f, 0.607517f, 0.743174f, 0.540987f, 0.762208f, 0.0955089f, 0.559815f, 0.951449f, 0.401348f, 0.331212f, 0.642409f, 0.807065f, 0.0274912f, 0.191121f, 0.221269f, 0.0196289f, 0.0883137f, 0.401632f, 0.536547f, 0.354751f, 0.208566f, 0.655834f, 0.5751f, 0.592522f, 0.254354f, 0.473421f, 0.594959f, 0.592251f, 0.917631f, 0.16714f, 0.0527308f, 0.120719f, 0.145502f, 0.748346f, 0.073153f, 0.613902f, 0.262683f, 0.655453f, 0.64941f, 0.00870569f, 0.664284f, 0.865813f, 0.311702f, 0.0668387f, 0.514261f, 0.612054f, 0.439666f, 0.145043f, 0.697004f, 0.736379f, 0.5541f, 0.51808f, 0.248846f, 0.324673f, 0.546084f, 0.341804f, 0.397126f, 0.901601f, 0.811299f, 0.234554f, 0.983733f, 0.835457f, 0.656698f, 0.556549f, 0.543326f, 0.446011f, 0.446224f, 0.556029f, 0.813568f, 0.832785f, 0.342328f, 0.99177f, 0.465976f, 0.435072f, 0.154672f, 0.132097f, 0.196764f, 0.669401f, 0.0425384f, 0.0923796f, 0.534846f, 0.313129f, 0.650769f, 0.895801f, 0.329439f, 0.111618f, 0.0561264f, 0.401462f, 0.876942f, 0.751772f, 0.626181f, 0.811451f, 0.370353f, 0.988758f, 0.772378f, 0.198887f, 0.911808f, 0.338299f, 0.733134f, 0.523288f, 0.274299f, 0.0417327f, 0.214103f, 0.267197f, 0.777308f, 0.207001f, 0.648355f, 0.191525f, 0.566804f, 0.933276f, 0.487603f, 0.819337f, 0.707737f, 0.217949f, 0.46097f, 0.360888f, 0.865464f, 0.448872f, 0.503242f, 0.752233f, 0.986821f, 0.546211f, 0.0769288f, 0.558356f, 0.24947f, 0.449025f, 0.945505f, 0.776708f, 0.741667f, 0.204081f, 0.385307f, 0.853636f, 0.992854f, 0.736488f, 0.066858f, 0.77241f, 0.593993f, 0.60012f, 0.992664f, 0.871801f, 0.0559049f, 0.872657f, 0.88195f, 0.775283f, 0.626557f, 0.949173f, 0.141391f, 0.756121f, 0.463127f, 0.794921f, 0.179207f, 0.686091f, 0.924453f, 0.957064f, 0.562544f, 0.199546f, 0.506354f, 0.686503f, 0.498402f, 0.994487f, 0.727037f, 0.39265f, 0.766344f, 0.404101f, 0.0747312f, 0.199944f, 0.718873f, 0.556318f, 0.742083f, 0.271842f, 0.894729f, 0.37571f, 0.312619f, 0.984724f, 0.674071f, 0.131572f, 0.754846f, 0.57373f, 0.624965f, 0.31371f, 0.430913f, 0.0704488f, 0.389447f, 0.0172197f, 0.551376f, 0.0406306f, 0.737618f, 0.725938f, 0.148273f, 0.695974f, 0.686078f, 0.829045f, 0.964759f, 0.609736f, 0.820877f, 0.971562f, 0.787693f, 0.163315f, 0.346086f, 0.219964f, 0.300065f, 0.727209f, 0.976838f, 0.827079f, 0.233998f, 0.657966f, 0.205213f, 0.933434f, 0.418687f, 0.921342f, 0.826052f, 0.959587f, 0.228782f, 0.714562f, 0.939341f, 0.880912f, 0.368531f, 0.759872f, 0.198899f, 0.183194f, 0.858083f, 0.858741f, 0.296783f, 0.411624f, 0.588002f, 0.718193f, 0.0850838f, 0.182008f, 0.174099f, 0.844767f, 0.447305f, 0.362803f, 0.44193f, 0.384677f, 0.926375f, 0.205336f, 0.553223f, 0.438452f, 0.511155f, 0.487039f, 0.0977765f, 0.399715f, 0.386486f, 0.70692f, 0.882859f, 0.468372f, 0.957847f, 0.3876f, 0.776125f, 0.158929f, 0.922795f, 0.839811f, 0.619146f, 0.549494f, 0.0531412f, 0.0756902f, 0.497634f, 0.169805f, 0.102454f, 0.120973f, 0.978255f, 0.872794f, 0.126948f, 0.0909931f, 0.271697f, 0.381201f, 0.514382f, 0.243212f, 0.599241f, 0.77792f, 0.773524f, 0.672781f, 0.487241f, 0.0839376f, 0.391357f, 0.476453f, 0.0362453f, 0.2344f, 0.312296f, 0.874476f, 0.424861f, 0.508472f, 0.0558742f, 0.0344206f, 0.520736f, 0.822892f, 0.0290548f, 0.119493f, 0.723907f, 0.67696f, 0.361477f, 0.136354f, 0.437292f, 0.406212f, 0.0337393f, 0.914554f, 0.770004f, 0.0112404f, 0.170742f, 0.316886f, 0.212726f, 0.820511f, 0.16808f, 0.548176f, 0.370641f, 0.191594f, 0.456723f, 0.269329f, 0.802692f, 0.582023f, 0.704971f, 0.097267f, 0.874061f, 0.545042f, 0.248182f, 0.60387f, 0.0681193f, 0.77384f, 0.598909f, 0.302987f, 0.325852f, 0.0673554f, 0.11917f, 0.749633f, 0.355096f, 0.643983f, 0.0612776f, 0.413992f, 0.0139508f, 0.722052f, 0.315302f, 0.287624f, 0.354419f, 0.0825466f, 0.0346354f, 0.415257f, 0.198645f, 0.316376f, 0.639655f, 0.943921f, 0.798084f, 0.798457f, 0.698719f, 0.381064f, 0.144777f, 0.498166f, 0.886078f, 0.353141f, 0.949453f, 0.710696f, 0.966272f, 0.29046f, 0.215821f, 0.932166f, 0.277124f, 0.508371f, 0.849439f, 0.0589401f, 0.199342f, 0.684583f, 0.513649f, 0.0423359f, 0.898127f, 0.691819f, 0.398893f, 0.0518767f, 0.668939f, 0.351535f, 0.629585f, 0.833358f, 0.898651f, 0.508718f, 0.125405f, 0.964831f, 0.880354f, 0.267236f, 0.713629f, 0.273668f, 0.324527f, 0.642784f, 0.659036f, 0.995745f, 0.588816f, 0.503675f, 0.382374f, 0.910729f, 0.0355149f, 0.611326f, 0.554885f, 0.735088f, 0.0116437f, 0.423462f, 0.572976f, 0.352222f, 0.991798f, 0.515002f, 0.229352f, 0.499804f, 0.0845002f, 0.41998f, 0.599966f, 0.160524f, 0.394522f, 0.971303f, 0.580399f, 0.392318f, 0.42332f, 0.783143f, 0.512804f, 0.626817f, 0.42784f, 0.869087f, 0.2468f, 0.678014f, 0.658944f, 0.20067f, 0.461268f, 0.92506f, 0.451263f, 0.766105f, 0.212103f, 0.703272f, 0.218508f, 0.688644f, 0.413297f, 0.599667f, 0.195505f, 0.34711f, 0.125653f, 0.671712f, 0.455277f, 0.430877f, 0.136527f, 0.848753f, 0.417919f, 0.530157f, 0.0739151f, 0.586103f, 0.485083f, 0.204155f, 0.046138f, 0.895842f, 0.658664f, 0.859067f, 0.989272f, 0.32699f, 0.60984f, 0.61495f, 0.408844f, 0.961566f, 0.0553046f, 0.547022f, 0.879174f, 0.162621f, 0.119264f, 0.687481f, 0.426132f, 0.733945f, 0.492731f, 0.53976f, 0.421309f, 0.543462f, 0.937871f, 0.356429f, 0.721671f, 0.96829f, 0.66883f, 0.62982f, 0.488102f, 0.885906f, 0.408379f, 0.445873f, 0.0458212f, 0.816757f, 0.978667f, 0.484184f, 0.0821203f, 0.00863886f, 0.775971f, 0.94334f, 0.847172f, 0.298308f, 0.810391f, 0.223445f, 0.206679f, 0.105182f, 0.416122f, 0.437131f, 0.100253f, 0.850094f, 0.555826f, 0.789377f, 0.953452f, 0.736583f, 0.57701f, 0.00567146f, 0.615353f, 0.215437f, 0.723756f, 0.10222f, 0.960171f, 0.678917f, 0.186895f, 0.107598f, 0.345352f, 0.909776f, 0.0311485f, 0.244998f, 0.291455f, 0.0696102f, 0.765578f, 0.67159f, 0.792059f, 0.866026f, 0.337893f, 0.410551f, 0.325039f, 0.870761f, 0.932909f, 0.926541f, 0.123433f, 0.228789f, 0.515803f, 0.77022f, 0.260285f, 0.943768f, 0.166832f, 0.42901f, 0.790805f, 0.484536f, 0.850543f, 0.129168f, 0.525561f, 0.836864f, 0.670899f, 0.989392f, 0.40615f, 0.84195f, 0.703529f, 0.0277729f, 0.970586f, 0.578251f, 0.712678f, 0.998142f, 0.909949f, 0.105793f, 0.70533f, 0.0624429f, 0.749519f, 0.866561f, 0.236314f, 0.663275f, 0.732815f, 0.869669f, 0.976787f, 0.357853f, 0.53248f, 0.426877f, 0.753899f, 0.617453f, 0.698508f, 0.68922f, 0.494785f, 0.149783f, 0.0995106f, 0.40116f, 0.503474f, 0.373518f, 0.0836477f, 0.13425f, 0.21681f, 0.118726f, 0.634819f, 0.977089f, 0.265256f, 0.748042f, 0.888691f, 0.787634f, 0.809536f, 0.644835f, 0.29316f, 0.327593f, 0.0160854f, 0.125146f, 0.275558f, 0.523259f, 0.516161f, 0.20558f, 0.539658f, 0.134941f, 0.227353f, 0.0504165f, 0.336375f, 0.681371f, 0.703282f, 0.228959f, 0.960439f, 0.132553f, 0.638413f, 0.432722f, 0.249623f, 0.119023f, 0.863847f, 0.845593f, 0.733617f, 0.564818f, 0.354842f, 0.317251f, 0.846096f, 0.673276f, 0.967712f, 0.476869f, 0.933322f, 0.380587f, 0.738658f, 0.950401f, 0.740611f, 0.217912f, 0.497239f, 0.645424f, 0.0460094f, 0.31764f, 0.495142f, 0.66771f, 0.920877f, 0.204059f, 0.979247f, 0.0579065f, 0.00885498f, 0.754811f, 0.0516429f, 0.055936f, 0.34907f, 0.766974f, 0.458223f, 0.712893f, 0.721489f, 0.74117f, 0.113732f, 0.159755f, 0.306196f, 0.287906f, 0.0586668f, 0.227036f, 0.375864f, 0.731875f, 0.261966f, 0.703742f, 0.551798f, 0.259109f, 0.0335273f, 0.469508f, 0.872367f, 0.269142f, 0.919286f, 0.0388054f, 0.382238f, 0.972526f, 0.505148f, 0.552892f, 0.83519f, 0.00472243f, 0.968694f, 0.964798f, 0.746429f, 0.186531f, 0.624439f, 0.311215f, 0.0425672f, 0.144405f, 0.28095f, 0.620576f, 0.89762f, 0.148073f, 0.765404f, 0.999952f, 0.955194f, 0.880677f, 0.551894f, 0.0689755f, 0.944031f, 0.443773f, 0.782756f, 0.310599f, 0.753234f, 0.391641f, 0.110407f, 0.0777928f, 0.532599f, 0.65657f, 0.752063f, 0.58651f, 0.273044f, 0.204238f, 0.894772f, 0.330859f, 0.647798f, 0.221537f, 0.618673f, 0.513573f, 0.892098f, 0.354175f, 0.32973f, 0.44207f, 0.643923f, 0.0657749f, 0.544895f, 0.822677f, 0.201704f, 0.318968f, 0.01588f, 0.387015f, 0.346915f, 0.62158f, 0.502372f, 0.668671f, 0.947056f, 0.94263f, 0.514519f, 0.970057f, 0.71259f, 0.0564903f, 0.670559f, 0.415756f, 0.190109f, 0.754052f, 0.479532f, 0.802145f, 0.878031f, 0.792649f, 0.97403f, 0.416255f, 0.727476f, 0.165484f, 0.217993f, 0.988402f, 0.0679934f, 0.435791f, 0.638089f, 0.723752f, 0.872205f, 0.432567f, 0.398599f, 0.601029f, 0.961794f, 0.113623f, 0.745874f, 0.0571676f, 0.0533746f, 0.0395844f, 0.203789f, 0.989465f, 0.0442559f, 0.422949f, 0.249979f, 0.30196f, 0.25443f, 0.571869f, 0.657256f, 0.465526f, 0.21422f, 0.624284f, 0.664228f, 0.505148f, 0.801648f, 0.86753f, 0.353587f, 0.667585f, 0.574137f, 0.45417f, 0.326524f, 0.170598f, 0.684429f, 0.594146f, 0.883172f, 0.00597591f, 0.507128f, 0.668825f, 0.857399f, 0.238628f, 0.344619f, 0.921385f, 0.390454f, 0.767467f, 0.526448f, 0.209308f, 0.482941f, 0.0592267f, 0.16138f, 0.649495f, 0.875742f, 0.189382f, 0.575094f, 0.0628197f, 0.804806f, 0.973028f, 0.644706f, 0.995757f, 0.367492f, 0.407543f, 0.692324f, 0.111098f, 0.165432f, 0.905684f, 0.750752f, 0.968726f, 0.596715f, 0.170166f, 0.33299f, 0.00352108f, 0.140982f, 0.33248f, 0.151946f, 0.835857f, 0.260298f, 0.329285f, 0.503132f, 0.891641f, 0.0309688f, 0.686558f, 0.930664f, 0.652069f, 0.906784f, 0.655034f, 0.508219f, 0.530145f, 0.0808804f, 0.186955f, 0.731151f, 0.559371f, 0.914596f, 0.751523f, 0.892675f, 0.591954f, 0.727949f, 0.667489f, 0.371732f, 0.0235313f, 0.382307f, 0.782786f, 0.803038f, 0.0337037f, 0.759655f, 0.782478f, 0.0433699f, 0.17195f, 0.983183f, 0.0282266f, 0.537087f, 0.66325f, 0.57343f, 0.963328f, 0.601718f, 0.834538f, 0.867519f, 0.974822f, 0.379965f, 0.896917f, 0.861391f, 0.270236f, 0.187672f, 0.646133f, 0.419483f, 0.907196f, 0.338165f, 0.0257366f, 0.504104f, 0.565183f, 0.714826f, 0.00315621f, 0.0881414f, 0.539258f, 0.685598f, 0.249477f, 0.106901f, 0.880652f, 0.467278f, 0.162514f, 0.891133f, 0.794572f, 0.000827441f, 0.227503f, 0.549867f, 0.844087f, 0.792277f, 0.236174f, 0.760025f, 0.172165f, 0.00446258f, 0.738857f, 0.730426f, 0.485266f, 0.291554f, 0.369628f, 0.671225f, 0.137284f, 0.140493f, 0.811242f, 0.519306f, 0.303478f, 0.639524f, 0.193834f, 0.144751f, 0.198503f, 0.322032f, 0.820268f, 0.854904f, 0.410045f, 0.621214f, 0.854527f, 0.458774f, 0.647537f, 0.445168f, 0.575495f, 0.317267f, 0.998118f, 0.224215f, 0.895092f, 0.435073f, 0.863703f, 0.635868f, 0.659358f, 0.803934f, 0.319564f, 0.0792921f, 0.224559f, 0.223369f, 0.519262f, 0.0365442f, 0.629175f, 0.240582f, 0.385111f, 0.693782f, 0.149806f, 0.823158f, 0.769552f, 0.78699f, 0.665843f, 0.110583f, 0.593072f, 0.931465f, 0.339334f, 0.995643f, 0.361876f, 0.908706f, 0.455961f, 0.296954f, 0.248799f, 0.843042f, 0.757229f, 0.544311f, 0.381377f, 0.915678f, 0.969917f, 0.18056f, 0.633374f, 0.959469f, 0.792785f, 0.978871f, 0.298855f, 0.654883f, 0.550835f, 0.488215f, 0.579131f, 0.865617f, 0.837995f, 0.651112f, 0.80166f, 0.297399f, 0.78068f, 0.250189f, 0.81908f, 0.667668f, 0.314874f, 0.462695f, 0.834969f, 0.994565f, 0.101436f, 0.608893f, 0.754995f, 0.667686f, 0.608132f, 0.949893f, 0.942439f, 0.113526f, 0.655998f, 0.406024f, 0.0651648f, 0.945811f, 0.743999f, 0.150349f, 0.224319f, 0.0521876f, 0.0219746f, 0.888158f, 0.800638f, 0.765049f, 0.296809f, 0.92984f, 0.612383f, 0.55553f, 0.392979f, 0.454009f, 0.526442f, 0.898217f, 0.37843f, 0.932444f, 0.151336f, 0.602143f, 0.546911f, 0.98982f, 0.327695f, 0.255483f, 0.497197f, 0.668865f, 0.350015f, 0.588987f, 0.920687f, 0.974143f, 0.855903f, 0.903463f, 0.653577f, 0.815682f, 0.950908f, 0.438637f, 0.00769402f, 0.308675f, 0.998112f, 0.586912f, 0.110359f, 0.354577f, 0.696572f, 0.366189f, 0.188528f, 0.298549f, 0.636802f, 0.060719f, 0.133377f, 0.893643f, 0.477545f, 0.324431f, 0.0917787f, 0.997444f, 0.338215f, 0.21877f, 0.621238f, 0.612159f, 0.897854f, 0.761928f, 0.655464f, 0.516508f, 0.386329f, 0.456673f, 0.895152f, 0.194767f, 0.980796f, 0.395748f, 0.783539f, 0.520146f, 0.551608f, 0.745029f, 0.154286f, 0.309419f, 0.755306f, 0.504286f, 0.0142801f, 0.420135f, 0.722898f, 0.821541f, 0.179877f, 0.399128f, 0.656364f, 0.153503f, 0.632952f, 0.93078f, 0.24482f, 0.12708f, 0.503946f, 0.965516f, 0.763884f, 0.827007f, 0.968163f, 0.263956f, 0.694266f, 0.573084f, 0.777834f, 0.155003f, 0.547457f, 0.922914f, 0.0898469f, 0.102103f, 0.984725f, 0.679942f, 0.807202f, 0.82757f, 0.731029f, 0.809984f, 0.10444f, 0.137751f, 0.088757f, 0.665421f, 0.354944f, 0.68699f, 0.368189f, 0.7585f, 0.978332f, 0.0331932f, 0.961104f, 0.036009f, 0.410524f, 0.788157f, 0.707072f, 0.394044f, 0.0692635f, 0.979939f, 0.27294f, 0.358806f, 0.192622f, 0.4507f, 0.748704f, 0.247296f, 0.878215f, 0.395735f, 0.116569f, 0.678133f, 0.523666f, 0.116462f, 0.0450298f, 0.884906f, 0.946411f, 0.905795f, 0.239766f, 0.744178f, 0.864674f, 0.600205f, 0.23557f, 0.793186f, 0.709741f, 0.389478f, 0.720254f, 0.822208f, 0.234686f, 0.550661f, 0.136569f, 0.581818f, 0.491411f, 0.0752614f, 0.205601f, 0.0167381f, 0.421298f, 0.764442f, 0.0171872f, 0.172914f, 0.673424f, 0.315788f, 0.851922f, 0.881794f, 0.785323f, 0.327871f, 0.670798f, 0.766904f, 0.564501f, 0.726402f, 0.0814526f, 0.757423f, 0.144176f, 0.187301f, 0.434783f, 0.23245f, 0.672692f, 0.333969f, 0.829689f, 0.933773f, 0.339591f, 0.862948f, 0.5749f, 0.900262f, 0.73103f, 0.186806f, 0.350651f, 0.870933f, 0.721535f, 0.37476f, 0.50296f, 0.152629f, 0.982446f, 0.81711f, 0.102984f, 0.224948f, 0.95851f, 0.754144f, 0.137815f, 0.61963f, 0.393328f, 0.458565f, 0.542409f, 0.422276f, 0.863659f, 0.692765f, 0.940446f, 0.479611f, 0.196775f, 0.0839665f, 0.320951f, 0.587056f, 0.45924f, 0.778098f, 0.622774f, 0.290534f, 0.512412f, 0.0832628f, 0.766276f, 0.760224f, 0.0564326f, 0.467499f, 0.741098f, 0.121712f, 0.0810672f, 0.0909302f, 0.335258f, 0.769957f, 0.867494f, 0.916659f, 0.345656f, 0.226352f, 0.40573f, 0.476093f, 0.607439f, 0.400266f, 0.187752f, 0.963017f, 0.815361f, 0.0973165f, 0.160789f, 0.638864f, 0.139204f, 0.559465f, 0.93341f, 0.263078f, 0.942776f, 0.0153435f, 0.231091f, 0.673392f, 0.63059f, 0.18909f, 0.0191485f, 0.886081f, 0.86486f, 0.148113f, 0.0820599f, 0.0157417f, 0.924182f, 0.132114f, 0.125733f, 0.30346f, 0.308734f, 0.954042f, 0.585159f, 0.284965f, 0.327968f, 0.255368f, 0.379835f, 0.969258f, 0.633694f, 0.919243f, 0.0458492f, 0.635932f, 0.397332f, 0.288385f, 0.907132f, 0.00302684f, 0.482494f, 0.631764f, 0.387833f, 0.795207f, 0.0300032f, 0.663524f, 0.899644f, 0.664472f, 0.168047f, 0.150681f, 0.433692f, 0.542278f, 0.0288503f, 0.128063f, 0.40074f, 0.212265f, 0.486038f, 0.924121f, 0.355241f, 0.449506f, 0.7156f, 0.207991f, 0.953381f, 0.809205f, 0.313129f, 0.195995f, 0.649473f, 0.459197f, 0.158379f, 0.302819f, 0.701419f, 0.681182f, 0.698063f, 0.17504f, 0.871989f, 0.680003f, 0.65117f, 0.698771f, 0.61352f, 0.803916f, 0.010114f, 0.846744f, 0.228342f, 0.995165f, 0.608888f, 0.843031f, 0.247895f, 0.364018f, 0.468815f, 0.675551f, 0.186589f, 0.48162f, 0.342694f, 0.38233f, 0.349958f, 0.166936f, 0.26509f, 0.907016f, 0.905385f, 0.777616f, 0.399376f, 0.272609f, 0.400588f, 0.199563f, 0.525106f, 0.39659f, 0.124749f, 0.611521f, 0.924923f, 0.318051f, 0.173597f, 0.708517f, 0.114291f, 0.450762f, 0.719288f, 0.577154f, 0.262858f, 0.622216f, 0.482128f, 0.391707f, 0.944732f, 0.210622f, 0.0868526f, 0.0241349f, 0.818769f, 0.201008f, 0.591625f, 0.607778f, 0.650676f, 0.208491f, 0.934444f, 0.705194f, 0.274327f, 0.853312f, 0.0570209f, 0.158762f, 0.968459f, 0.557991f, 0.376927f, 0.0348551f, 0.359051f, 0.440901f, 0.749227f, 0.814309f, 0.829274f, 0.425025f, 0.436305f, 0.701279f, 0.311615f, 0.763631f, 0.42415f, 0.0272155f, 0.517186f, 0.798847f, 0.740948f, 0.178524f, 0.119816f, 0.659664f, 0.275078f, 0.333098f, 0.772992f, 0.0615561f, 0.0946026f, 0.17025f, 0.364631f, 0.14993f, 0.579287f, 0.478926f, 0.35614f, 0.927322f, 0.0338156f, 0.312057f, 0.0528351f, 0.051598f, 0.542136f, 0.676923f, 0.187734f, 0.405661f, 0.935259f, 0.0904673f, 0.624009f, 0.16051f, 0.6656f, 0.506345f, 0.920895f, 0.431514f, 0.912401f, 0.75231f, 0.720978f, 0.276488f, 0.960488f, 0.333447f, 0.793667f, 0.94685f, 0.778957f, 0.626865f, 0.293164f, 0.958117f, 0.0912412f, 0.532753f, 0.0334823f, 0.981575f, 0.783156f, 0.515076f, 0.52798f, 0.325697f, 0.734427f, 0.858838f, 0.750756f, 0.77533f, 0.835655f, 0.0591921f, 0.734253f, 0.941809f, 0.831376f, 0.463972f, 0.530686f, 0.353341f, 0.483996f, 0.602564f, 0.222382f, 0.97027f, 0.898463f, 0.364311f, 0.851978f, 0.141098f, 0.327123f, 0.617082f, 0.644931f, 0.86876f, 0.736332f, 0.565139f, 0.811522f, 0.398173f, 0.841776f, 0.858903f, 0.83216f, 0.831254f, 0.801072f, 0.100523f, 0.569488f, 0.369805f, 0.712837f, 0.765152f, 0.154792f, 0.953785f, 0.199436f, 0.298907f, 0.817079f, 0.0777453f, 0.306883f, 0.79892f, 0.298705f, 0.335315f, 0.459788f, 0.18998f, 0.347822f, 0.496791f, 0.782749f, 0.579375f, 0.629859f, 0.760899f, 0.24263f, 0.903779f, 0.641997f, 0.767871f, 0.486727f, 0.380535f, 0.823305f, 0.546105f, 0.210259f, 0.350411f, 0.319371f, 0.703495f, 0.0388703f, 0.888008f, 0.223666f, 0.264767f, 0.487172f, 0.0499301f, 0.639737f, 0.815608f, 0.580698f, 0.967961f, 0.745559f, 0.541315f, 0.765711f, 0.376151f, 0.385906f, 0.685164f, 0.755746f, 0.3303f, 0.508632f, 0.362014f, 0.127399f, 0.914393f, 0.761036f, 0.0528031f, 0.670941f, 0.384801f, 0.44075f, 0.754592f, 0.9947f, 0.608693f, 0.161242f, 0.754208f, 0.474214f, 0.345606f, 0.771122f, 0.531007f, 0.149091f, 0.0657207f, 0.326845f, 0.439334f, 0.784645f, 0.720818f, 0.258805f, 0.343428f, 0.637885f, 0.0827685f, 0.39513f, 0.925853f, 0.0312068f, 0.163843f, 0.983136f, 0.551929f, 0.184303f, 0.69171f, 0.288535f, 0.880705f, 0.685089f, 0.46196f, 0.240781f, 0.234958f, 0.753081f, 0.985398f, 0.915627f, 0.283294f, 0.793807f, 0.289058f, 0.209614f, 0.416559f, 0.959514f, 0.903148f, 0.305969f, 0.955588f, 0.259555f, 0.224086f, 0.156081f, 0.534712f, 0.604497f, 0.610424f, 0.332198f, 0.257572f, 0.12916f, 0.0687468f, 0.831499f, 0.62096f, 0.572576f, 0.716722f, 0.767641f, 0.534015f, 0.0135136f, 0.91111f, 0.460403f, 0.548833f, 0.669269f, 0.783693f, 0.518675f, 0.377206f, 0.884586f, 0.810017f, 0.912431f, 0.192926f, 0.863331f, 0.56807f, 0.614778f, 0.880361f, 0.261284f, 0.288423f, 0.126633f, 0.29487f, 0.694761f, 0.779481f, 0.716876f, 0.378049f, 0.657953f, 0.204218f, 0.496597f, 0.994978f, 0.542497f, 0.079833f, 0.849108f, 0.448209f, 0.667724f, 0.618385f, 0.740615f, 0.550231f, 0.109703f, 0.446934f, 0.580084f, 0.0957419f, 0.599407f, 0.612611f, 0.603736f, 0.333509f, 0.168628f, 0.337423f, 0.7554f, 0.839855f, 0.440986f, 0.0899992f, 0.307834f, 0.546041f, 0.855516f, 0.656322f, 0.7718f, 0.694913f, 0.0648656f, 0.491048f, 0.7489f, 0.12655f, 0.545464f, 0.018184f, 0.812458f, 0.866595f, 0.103517f, 0.636715f, 0.671445f, 0.713342f, 0.371498f, 0.800884f, 0.877138f, 0.475207f, 0.0848736f, 0.648431f, 0.536069f, 0.652911f, 0.284277f, 0.803859f, 0.0484337f, 0.50652f, 0.0398949f, 0.479366f, 0.120236f, 0.32288f, 0.749295f, 0.580263f, 0.767637f, 0.672611f, 0.393901f, 0.777995f, 0.889774f, 0.624877f, 0.756535f, 0.00571682f, 0.513941f, 0.548558f, 0.72907f, 0.231662f, 0.844679f, 0.591023f, 0.839903f, 0.481472f, 0.676318f, 0.198008f, 0.75681f, 0.645876f, 0.562686f, 0.079962f, 0.169139f, 0.286892f, 0.100562f, 0.429251f, 0.253854f, 0.350135f, 0.39899f, 0.686675f, 0.322439f, 0.526083f, 0.794266f, 0.934693f, 0.478445f, 0.101997f, 0.851451f, 0.829357f, 0.243839f, 0.390292f, 0.388305f, 0.552538f, 0.370908f, 0.578443f, 0.198918f, 0.504473f, 0.183195f, 0.754082f, 0.378272f, 0.722134f, 0.761737f, 0.523804f, 0.231593f, 0.568605f, 0.287656f, 0.742644f, 0.755678f, 0.645733f, 0.58888f, 0.535038f, 0.105255f, 0.922569f, 0.950013f, 0.780757f, 0.382734f, 0.352771f, 0.85794f, 0.133944f, 0.560458f, 0.631823f, 0.44393f, 0.291665f, 0.496848f, 0.845192f, 0.710818f, 0.058463f, 0.474545f, 0.712372f, 0.0456705f, 0.606829f, 0.669204f, 0.353969f, 0.620841f, 0.728018f, 0.219443f, 0.235813f, 0.254554f, 0.314446f, 0.59158f, 0.746337f, 0.254853f, 0.45596f, 0.481081f, 0.633749f, 0.73213f, 0.623932f, 0.946175f, 0.828381f, 0.949588f, 0.581629f, 0.337972f, 0.06381f, 0.194401f, 0.0309433f, 0.960873f, 0.631665f, 0.0771852f, 0.158121f, 0.731532f, 0.34285f, 0.594808f, 0.280501f, 0.881476f, 0.224315f, 0.706794f, 0.742863f, 0.105461f, 0.676151f, 0.337508f, 0.207194f, 0.600399f, 0.136105f, 0.926055f, 0.165974f, 0.140703f, 0.800153f, 0.323374f, 0.0896541f, 0.654905f, 0.072488f, 0.607162f, 0.0506916f, 0.697011f, 0.473891f, 0.880713f, 0.110731f, 0.0598434f, 0.83014f, 0.225518f, 0.145203f, 0.768439f, 0.026211f, 0.419088f, 0.802136f, 0.942558f, 0.210761f, 0.831386f, 0.650558f, 0.0736329f, 0.127142f, 0.463057f, 0.292362f, 0.0285124f, 0.283766f, 0.435857f, 0.726721f, 0.0779182f, 0.498829f, 0.559289f, 0.199677f, 0.513753f, 0.139156f, 0.425093f, 0.160535f, 0.817125f, 0.123229f, 0.847384f, 0.828925f, 0.0110141f, 0.622069f, 0.2447f, 0.284562f, 0.389288f, 0.809355f, 0.574809f, 0.670684f, 0.457213f, 0.149171f, 0.448983f, 0.789663f, 0.0770385f, 0.331893f, 0.835118f, 0.874993f, 0.537364f, 0.90296f, 0.194646f, 0.554327f, 0.413262f, 0.686287f, 0.0460736f, 0.657312f, 0.667965f, 0.986008f, 0.372767f, 0.660598f, 0.781281f, 0.768111f, 0.146487f, 0.970999f, 0.123628f, 0.239487f, 0.434452f, 0.9391f, 0.838563f, 0.702661f, 0.824352f, 0.341867f, 0.403821f, 0.724461f, 0.980311f, 0.188418f, 0.0484973f, 0.605844f, 0.87872f, 0.868193f, 0.202999f, 0.694913f, 0.275642f, 0.250358f, 0.740812f, 0.841174f, 0.988914f, 0.981867f, 0.00333478f, 0.614899f, 0.184444f, 0.328618f, 0.963147f, 0.493104f, 0.593076f, 0.114963f, 0.373047f, 0.313624f, 0.807956f, 0.0866033f, 0.800743f, 0.71014f, 0.937928f, 0.329274f, 0.292652f, 0.341297f, 0.416849f, 0.287444f, 0.727679f, 0.724495f, 0.0434232f, 0.239289f, 0.522142f, 0.29313f, 0.275679f, 0.570131f, 0.773577f, 0.821627f, 0.822114f, 0.244051f, 0.960265f, 0.82899f, 0.894021f, 0.569527f, 0.416546f, 0.183194f, 0.15653f, 0.227623f, 0.28034f, 0.203311f, 0.437247f, 0.911898f, 0.119247f, 0.719101f, 0.280853f, 0.937291f, 0.50856f, 0.424669f, 0.433576f, 0.994411f, 0.546783f, 0.397445f, 0.881072f, 0.504712f, 0.297616f, 0.406185f, 0.210026f, 0.621007f, 0.356914f, 0.642402f, 0.126357f, 0.815523f, 0.309994f, 0.237093f, 0.622791f, 0.26855f, 0.126356f, 0.17314f, 0.290044f, 0.17338f, 0.302987f, 0.0448135f, 0.67497f, 0.469662f, 0.914101f, 0.142401f, 0.897664f, 0.472217f, 0.495884f, 0.549f, 0.132171f, 0.248441f, 0.510462f, 0.389556f, 0.2354f, 0.629603f, 0.872555f, 0.0493606f, 0.0725572f, 0.376942f, 0.751133f, 0.618445f, 0.712209f, 0.347773f, 0.483322f, 0.584708f, 0.0706037f, 0.0963956f, 0.179324f, 0.783534f, 0.757523f, 0.554968f, 0.414064f, 0.382571f, 0.12167f, 0.409857f, 0.126992f, 0.0497454f, 0.537536f, 0.044531f, 0.445929f, 0.341687f, 0.669602f, 0.0432625f, 0.761958f, 0.331426f, 0.324327f, 0.251563f, 0.0129412f, 0.360202f, 0.130586f, 0.940089f, 0.695765f, 0.286493f, 0.605139f, 0.384726f, 0.890997f, 0.646292f, 0.845314f, 0.770079f, 0.782947f, 0.901444f, 0.95964f, 0.586765f, 0.594756f, 0.147127f, 0.496968f, 0.957409f, 0.723964f, 0.663662f, 0.31232f, 0.866906f, 0.333128f, 0.489326f, 0.331988f, 0.617437f, 0.0578985f, 0.592175f, 0.275489f, 0.892077f, 0.564233f, 0.279844f, 0.0438687f, 0.739232f, 0.768333f, 0.2198f, 0.991895f, 0.819663f, 0.506983f, 0.111369f, 0.867805f, 0.978645f, 0.717804f, 0.690495f, 0.330825f, 0.806611f, 0.716774f, 0.905406f, 0.229175f, 0.424245f, 0.931656f, 0.554977f, 0.408551f, 0.762738f, 0.435672f, 0.865603f, 0.791919f, 0.0992489f, 0.159783f, 0.497971f, 0.451001f, 0.26398f, 0.914848f, 0.294899f, 0.611104f, 0.813629f, 0.159112f, 0.289609f, 0.189781f, 0.100203f, 0.00218531f, 0.619137f, 0.556688f, 0.617244f, 0.199415f, 0.840917f, 0.112093f, 0.0597368f, 0.590946f, 0.167967f, 0.0545969f, 0.673482f, 0.139997f, 0.98981f, 0.877854f, 0.45269f, 0.983928f, 0.314507f, 0.621934f, 0.80674f, 0.701665f, 0.848201f, 0.500142f, 0.681047f, 0.216517f, 0.68729f, 0.854486f, 0.788196f, 0.274461f, 0.786415f, 0.431206f, 0.372595f, 0.510444f, 0.593515f, 0.718559f, 0.885887f, 0.866836f, 0.0371313f, 0.810007f, 0.871523f, 0.698879f, 0.371323f, 0.191039f, 0.537038f, 0.960647f, 0.254478f, 0.897432f, 0.694227f, 0.167212f, 0.113439f, 0.664799f, 0.763649f, 0.546014f, 0.830362f, 0.612029f, 0.506648f, 0.841873f, 0.861451f, 0.428097f, 0.890039f, 0.516876f, 0.491963f, 0.93884f, 0.378404f, 0.884525f, 0.323906f, 0.828282f, 0.102281f, 0.585777f, 0.027535f, 0.891171f, 0.501899f, 0.288433f, 0.454675f, 0.582245f, 0.735327f, 0.0265284f, 0.384378f, 0.924647f, 0.130409f, 0.0828567f, 0.00890599f, 0.678779f, 0.615555f, 0.069379f, 0.157736f, 0.192191f, 0.286016f, 0.0344896f, 0.836338f, 0.920767f, 0.428389f, 0.716931f, 0.124982f, 0.905061f, 0.213815f, 0.283816f, 0.967598f, 0.763338f, 0.766874f, 0.522257f, 0.91158f, 0.540527f, 0.0323609f, 0.811738f, 0.893974f, 0.0661371f, 0.680707f, 0.910926f, 0.0449852f, 0.801076f, 0.286747f, 0.965164f, 0.309269f, 0.724278f, 0.874435f, 0.845933f, 0.289633f, 0.1259f, 0.265294f, 0.466266f, 0.144441f, 0.701114f, 0.484066f, 0.118355f, 0.0350617f, 0.377718f, 0.430922f, 0.990826f, 0.826193f, 0.545904f, 0.345839f, 0.0789937f, 0.281095f, 0.748537f, 0.532293f, 0.123628f, 0.830699f, 0.222947f, 0.928491f, 0.405731f, 0.709187f, 0.581953f, 0.0634311f, 0.280612f, 0.0257072f, 0.460992f, 0.0175489f, 0.184961f, 0.480011f, 0.184844f, 0.272508f, 0.208068f, 0.240318f, 0.480907f, 0.397661f, 0.197304f, 0.514379f, 0.682133f, 0.835306f, 0.133983f, 0.240427f, 0.776184f, 0.715199f, 0.515536f, 0.757504f, 0.105235f, 0.408316f, 0.98075f, 0.494859f, 0.189793f, 0.840125f, 0.186288f, 0.273149f, 0.697799f, 0.440657f, 0.755024f, 0.29632f, 0.0655284f, 0.182251f, 0.423769f, 0.136593f, 0.156609f, 0.0729708f, 0.501816f, 0.93482f, 0.525891f, 0.213114f, 0.547868f, 0.668326f, 0.504127f, 0.605789f, 0.87385f, 0.287723f, 0.141654f, 0.154971f, 0.603998f, 0.958831f, 0.616316f, 0.696878f, 0.16593f, 0.884261f, 0.652659f, 0.619816f, 0.78266f, 0.969088f, 0.262262f, 0.99525f, 0.894344f, 0.329002f, 0.486264f, 0.491973f, 0.245971f, 0.338964f, 0.487509f, 0.637083f, 0.556442f, 0.369561f, 0.7682f, 0.741506f, 0.0148511f, 0.110189f, 0.660813f, 0.896278f, 0.0660888f, 0.365283f, 0.384459f, 0.626001f, 0.105742f, 0.335175f, 0.122741f, 0.937633f, 0.841694f, 0.184531f, 0.341765f, 0.987346f, 0.066847f, 0.953777f, 0.339168f, 0.381597f, 0.105309f, 0.0876349f, 0.105715f, 0.704842f, 0.55161f, 0.559171f, 0.687293f, 0.658392f, 0.999134f, 0.106751f, 0.712417f, 0.77874f, 0.256541f, 0.594729f, 0.251902f, 0.147832f, 0.788117f, 0.890049f, 0.864009f, 0.0474648f, 0.393876f, 0.52962f, 0.532864f, 0.3692f, 0.0773447f, 0.806042f, 0.275049f, 0.606734f, 0.340569f, 0.862035f, 0.907584f, 0.162131f, 0.233687f, 0.562201f, 0.981415f, 0.928342f, 0.122804f, 0.823976f, 0.184586f, 0.156561f, 0.292509f, 0.975062f, 0.833452f, 0.142523f, 0.166308f, 0.200379f, 0.548413f, 0.469655f, 0.607216f, 0.0779073f, 0.317011f, 0.860167f, 0.650872f, 0.362243f, 0.536813f, 0.424811f, 0.267452f, 0.34468f, 0.0123388f, 0.903273f, 0.961784f, 0.83874f, 0.638318f, 0.492336f, 0.0909165f, 0.359403f, 0.963458f, 0.0616303f, 0.565071f, 0.35294f, 0.086659f, 0.692219f, 0.13438f, 0.42499f, 0.369364f, 0.69069f, 0.644828f, 0.477503f, 0.299398f, 0.541722f, 0.69283f, 0.632501f, 0.00306792f, 0.0483982f, 0.882961f, 0.51907f, 0.141715f, 0.459418f, 0.191355f, 0.971781f, 0.141313f, 0.257873f, 0.9303f, 0.630052f, 0.605048f, 0.819116f, 0.581039f, 0.28248f, 0.643367f, 0.730733f, 0.326217f, 0.739549f, 0.348881f, 0.437051f, 0.848351f, 0.199802f, 0.443829f, 0.555329f, 0.599613f, 0.0723815f, 0.782875f, 0.441f, 0.859947f, 0.0311278f, 0.511227f, 0.778796f, 0.901747f, 0.759793f, 0.550004f, 0.201596f, 0.662721f, 0.955202f, 0.404327f, 0.679435f, 0.197671f, 0.685506f, 0.769799f, 0.475121f, 0.605155f, 0.702198f, 0.441649f, 0.198031f, 0.808838f, 0.5642f, 0.0110931f, 0.301183f, 0.174863f, 0.155583f, 0.0786712f, 0.62277f, 0.85596f, 0.0640452f, 0.597892f, 0.6303f, 0.583965f, 0.170196f, 0.490898f, 0.111661f, 0.377785f, 0.148729f, 0.0764751f, 0.510136f, 0.577573f, 0.35216f, 0.457893f, 0.131651f, 0.0674973f, 0.400704f, 0.26385f, 0.28382f, 0.488834f, 0.982769f, 0.977161f, 0.486142f, 0.426614f, 0.756323f, 0.687557f, 0.280973f, 0.777007f, 0.0214047f, 0.532722f, 0.814832f, 0.844896f, 0.810531f, 0.15238f, 0.481408f, 0.252198f, 0.641424f, 0.490777f, 0.45379f, 0.407933f, 0.556685f, 0.392659f, 0.344904f, 0.892815f, 0.442315f, 0.457526f, 0.283864f, 0.573172f, 0.252106f, 0.889373f, 0.0959851f, 0.485266f, 0.56632f, 0.755285f, 0.116206f, 0.0879613f, 0.88384f, 0.208538f, 0.586969f, 0.544328f, 0.434613f, 0.888554f, 0.311024f, 0.863446f, 0.188419f, 0.609841f, 0.0758603f, 0.0637179f, 0.308095f, 0.801903f, 0.450507f, 0.467786f, 0.0278549f, 0.66171f, 0.446835f, 0.25888f, 0.668963f, 0.0646442f, 0.179912f, 0.437277f, 0.90624f, 0.948291f, 0.104249f, 0.874975f, 0.380445f, 0.49662f, 0.00583912f, 0.63552f, 0.0421233f, 0.233686f, 0.882509f, 0.617947f, 0.0601858f, 0.813047f, 0.215782f, 0.596862f, 0.957235f, 0.535076f, 0.0786324f, 0.255989f, 0.926716f, 0.682072f, 0.0922327f, 0.290346f, 0.549256f, 0.405545f, 0.309677f, 0.628118f, 0.604299f, 0.38654f, 0.256896f, 0.825052f, 0.72912f, 0.45662f, 0.324713f, 0.362083f, 0.567061f, 0.79357f, 0.69459f, 0.0113587f, 0.94402f, 0.290002f, 0.729962f, 0.197591f, 0.674741f, 0.497621f, 0.773008f, 0.502734f, 0.571341f, 0.838387f, 0.324542f, 0.963401f, 0.741953f, 0.958939f, 0.10931f, 0.139844f, 0.993872f, 0.565773f, 0.679312f, 0.0471499f, 0.204902f, 0.947279f, 0.208953f, 0.251513f, 0.63701f, 0.0478966f, 0.650567f, 0.261162f, 0.391348f, 0.030731f, 0.71075f, 0.656933f, 0.952349f, 0.591575f, 0.017522f, 0.728526f, 0.264305f, 0.337627f, 0.149399f, 0.872799f, 0.779262f, 0.297888f, 0.337437f, 0.588511f, 0.376096f, 0.309665f, 0.979529f, 0.85919f, 0.638385f, 0.343725f, 0.632841f, 0.125036f, 0.740403f, 0.72003f, 0.214014f, 0.370201f, 0.555011f, 0.17778f, 0.601526f, 0.734616f, 0.439846f, 0.132179f, 0.095331f, 0.523829f, 0.0351053f, 0.0512562f, 0.296228f, 0.981164f, 0.0543974f, 0.34006f, 0.210961f, 0.0556726f, 0.962318f, 0.0939309f, 0.516581f, 0.628765f, 0.602055f, 0.684933f, 0.21763f, 0.142926f, 0.0353188f, 0.306516f, 0.458799f, 0.413334f, 0.0436211f, 0.57727f, 0.953413f, 0.161229f, 0.8501f, 0.0916226f, 0.269427f, 0.91748f, 0.574193f, 0.899598f, 0.319444f, 0.233433f, 0.648605f, 0.690887f, 0.983802f, 0.0207619f, 0.298203f, 0.848647f, 0.0157108f, 0.878187f, 0.772797f, 0.160191f, 0.798175f, 0.0680941f, 0.304792f, 0.0833616f, 0.714442f, 0.627836f, 0.0309248f, 0.759876f, 0.0660692f, 0.622789f, 0.602247f, 0.822516f, 0.286038f, 0.0927557f, 0.422667f, 0.546066f, 0.0457439f, 0.204376f, 0.512364f, 0.4758f, 0.206259f, 0.161087f, 0.545031f, 0.0515958f, 0.450428f, 0.75845f, 0.0201123f, 0.181248f, 0.844833f, 0.21848f, 0.483734f, 0.812416f, 0.981927f, 0.0559635f, 0.115077f, 0.897971f, 0.523059f, 0.703528f, 0.767036f, 0.554893f, 0.488185f, 0.535006f, 0.797307f, 0.638141f, 0.523118f, 0.176801f, 0.216229f, 0.505141f, 0.382202f, 0.822446f, 0.238033f, 0.000277854f, 0.264681f, 0.738855f, 0.297957f, 0.326263f, 0.426843f, 0.921162f, 0.900661f, 0.888326f, 0.824683f, 0.877769f, 0.0626536f, 0.801865f, 0.084674f, 0.751356f, 0.232566f, 0.0636655f, 0.365036f, 0.978918f, 0.998175f, 0.595347f, 0.872441f, 0.843013f, 0.550284f, 0.112336f, 0.0195829f, 0.749011f, 0.990358f, 0.305964f, 0.366854f, 0.444114f, 0.111154f, 0.807868f, 0.52786f, 0.525456f, 0.553126f, 0.485843f, 0.466757f, 0.193964f, 0.122533f, 0.306315f, 0.203339f, 0.529981f, 0.136092f, 0.810034f, 0.438329f, 0.348119f, 0.32752f, 0.765696f, 0.659981f, 0.299019f, 0.20003f, 0.22669f, 0.832525f, 0.538563f, 0.563979f, 0.48955f, 0.149843f, 0.719718f, 0.62427f, 0.264455f, 0.481612f, 0.106369f, 0.745398f, 0.968375f, 0.495988f, 0.400647f, 0.770756f, 0.322593f, 0.326873f, 0.25276f, 0.417912f, 0.76998f, 0.638416f, 0.665478f, 0.962782f, 0.961164f, 0.839027f, 0.219606f, 0.684202f, 0.962211f, 0.0565806f, 0.665497f, 0.126568f, 0.821387f, 0.426374f, 0.888736f, 0.280979f, 0.40441f, 0.449909f, 0.685115f, 0.764469f, 0.687274f, 0.781109f, 0.393814f, 0.0475992f, 0.165983f, 0.724644f, 0.460645f, 0.200301f, 0.916552f, 0.212703f, 0.547837f, 0.00781687f, 0.0249964f, 0.207673f, 0.477714f, 0.567627f, 0.899241f, 0.153251f, 0.955403f, 0.970569f, 0.997858f, 0.752693f, 0.392974f, 0.842982f, 0.306313f, 0.0425919f, 0.510512f, 0.251106f, 0.472173f, 0.1914f, 0.930749f, 0.775218f, 0.691618f, 0.963536f, 0.298038f, 0.982468f, 0.650224f, 0.36777f, 0.976604f, 0.298366f, 0.415434f, 0.0719724f, 0.9851f, 0.446777f, 0.502681f, 0.535599f, 0.0658757f, 0.677791f, 0.997595f, 0.83343f, 0.785185f, 0.228516f, 0.690948f, 0.121957f, 0.581649f, 0.593838f, 0.306382f, 0.133295f, 0.452292f, 0.522665f, 0.756939f, 0.315004f, 0.182419f, 0.654039f, 0.275704f, 0.977242f, 0.501399f, 0.489595f, 0.833172f, 0.704274f, 0.980769f, 0.638236f, 0.478103f, 0.537539f, 0.737008f, 0.572928f, 0.19145f, 0.658329f, 0.156334f, 0.944287f, 0.679241f, 0.404867f, 0.766855f, 0.521703f, 0.166728f, 0.914696f, 0.866328f, 0.48321f, 0.512178f, 0.257116f, 0.713401f, 0.507879f, 0.0522681f, 0.694809f, 0.119729f, 0.215353f, 0.848758f, 0.267479f, 0.280395f, 0.321514f, 0.905568f, 0.294922f, 0.133331f, 0.733498f, 0.386997f, 0.172241f, 0.832129f, 0.313627f, 0.807737f, 0.732755f, 0.214301f, 0.963792f, 0.874799f, 0.222574f, 0.210106f, 0.511397f, 0.570735f, 0.957265f, 0.869915f, 0.606136f, 0.0732058f, 0.234833f, 0.850227f, 0.249415f, 0.652435f, 0.387416f, 0.878995f, 0.232929f, 0.831395f, 0.212343f, 0.430933f, 0.580873f, 0.783224f, 0.310255f, 0.809713f, 0.260027f, 0.0845431f, 0.165741f, 0.278104f, 0.711014f, 0.800481f, 0.878116f, 0.243189f, 0.352771f, 0.0612841f, 0.413917f, 0.467947f, 0.442886f, 0.0588046f, 0.0964151f, 0.358584f, 0.627281f, 0.257136f, 0.134019f, 0.243915f, 0.613396f, 0.475635f, 0.581989f, 0.528766f, 0.396408f, 0.547891f, 0.815438f, 0.982647f, 0.645256f, 0.266519f, 0.96154f, 0.463393f, 0.728307f, 0.731172f, 0.556617f, 0.19503f, 0.341295f, 0.455572f, 0.740281f, 0.185829f, 0.925094f, 0.362876f, 0.114177f, 0.782391f, 0.37643f, 0.798906f, 0.953667f, 0.762082f, 0.014657f, 0.122138f, 0.127993f, 0.320434f, 0.241728f, 0.35324f, 0.772408f, 0.333324f, 0.178056f, 0.281275f, 0.281805f, 0.68461f, 0.292989f, 0.873566f, 0.535667f, 0.341327f, 0.761019f, 0.959403f, 0.4896f, 0.609321f, 0.248797f, 0.185441f, 0.0270256f, 0.170015f, 0.75439f, 0.288386f, 0.564582f, 0.0222456f, 0.463749f, 0.206792f, 0.962644f, 0.643758f, 0.587204f, 0.0469728f, 0.699921f, 0.222869f, 0.29055f, 0.15115f, 0.626993f, 0.960964f, 0.469697f, 0.573563f, 0.650817f, 0.119187f, 0.399504f, 0.514426f, 0.739538f, 0.30274f, 0.579294f, 0.620414f, 0.809761f, 0.355991f, 0.785923f, 0.00897206f, 0.656859f, 0.0617263f, 0.115124f, 0.523844f, 0.680298f, 0.582897f, 0.906579f, 0.685952f, 0.681651f, 0.165907f, 0.547198f, 0.562837f, 0.930629f, 0.0213666f, 0.328399f, 0.704386f, 0.796115f, 0.068072f, 0.956054f, 0.374939f, 0.726748f, 0.620003f, 0.0746187f, 0.839367f, 0.0709211f, 0.302125f, 0.139077f, 0.966599f, 0.214637f, 0.100745f, 0.0111777f, 0.364859f, 0.784851f, 0.490575f, 0.830201f, 0.353925f, 0.52514f, 0.184955f, 0.725045f, 0.692005f, 0.751114f, 0.91373f, 0.00291698f, 0.183436f, 0.942894f, 0.667646f, 0.227563f, 0.446547f, 0.092398f, 0.403965f, 0.181365f, 0.224128f, 0.456113f, 0.93516f, 0.286571f, 0.448873f, 0.254616f, 0.0234942f, 0.381599f, 0.167409f, 0.531255f, 0.43117f, 0.947885f, 0.689665f, 0.358446f, 0.99491f, 0.1528f, 0.820309f, 0.322453f, 0.845845f, 0.702546f, 0.389202f, 0.69712f, 0.858937f, 0.923114f, 0.394433f, 0.144911f, 0.855152f, 0.665982f, 0.640551f, 0.139194f, 0.195617f, 0.144379f, 0.791576f, 0.565324f, 0.544417f, 0.336372f, 0.384354f, 0.41409f, 0.50561f, 0.176046f, 0.929189f, 0.242993f, 0.611226f, 0.220806f, 0.182804f, 0.567333f, 0.897341f, 0.166296f, 0.568052f, 0.868234f, 0.993518f, 0.531125f, 0.974952f, 0.34009f, 0.00118497f, 0.721142f, 0.909258f, 0.583536f, 0.570128f, 0.250796f, 0.589652f, 0.9133f, 0.95001f, 0.227505f, 0.984849f, 0.315529f, 0.767328f, 0.398994f, 0.12537f, 0.0418404f, 0.530614f, 0.716528f, 0.398305f, 0.701367f, 0.44568f, 0.276829f, 0.645333f, 0.835415f, 0.0465233f, 0.224956f, 0.667437f, 0.152279f, 0.492711f, 0.731436f, 0.231145f, 0.16636f, 0.252344f, 0.641588f, 0.924098f, 0.780297f, 0.447466f, 0.270129f, 0.519677f, 0.711927f, 0.666198f, 0.528732f, 0.397797f, 0.94731f, 0.47105f, 0.169681f, 0.0689022f, 0.909454f, 0.48887f, 0.338298f, 0.864493f, 0.727502f, 0.989843f, 0.00595985f, 0.954904f, 0.428008f, 0.331139f, 0.235197f, 0.893303f, 0.445351f, 0.830387f, 0.254327f, 0.968733f, 0.649004f, 0.693966f, 0.585433f, 0.889678f, 0.320023f, 0.777071f, 0.858482f, 0.986065f, 0.318021f, 0.841677f, 0.509663f, 0.495693f, 0.600332f, 0.906159f, 0.349668f, 0.696006f, 0.995319f, 0.684848f, 0.771808f, 0.175734f, 0.0168563f, 0.963885f, 0.256553f, 0.360876f, 0.759457f, 0.401408f, 0.981954f, 0.626502f, 0.563023f, 0.659433f, 0.910864f, 0.558888f, 0.507613f, 0.510995f, 0.727248f, 0.68819f, 0.193195f, 0.303283f, 0.502424f, 0.885505f, 0.735989f, 0.652483f, 0.230644f, 0.850919f, 0.131194f, 0.0236364f, 0.335627f, 0.7323f, 0.298706f, 0.780775f, 0.694135f, 0.273734f, 0.331162f, 0.132365f, 0.976536f, 0.802124f, 0.232805f, 0.730333f, 0.176602f, 0.51351f, 0.851469f, 0.880454f, 0.490637f, 0.445693f, 0.331288f, 0.551407f, 0.781109f, 0.0924386f, 0.976995f, 0.133824f, 0.779658f, 0.277526f, 0.285495f, 0.716245f, 0.64469f, 0.446768f, 0.94155f, 0.0654177f, 0.245474f, 0.471065f, 0.796581f, 0.239434f, 0.905379f, 0.0354931f, 0.155393f, 0.997709f, 0.346793f, 0.171411f, 0.801898f, 0.533516f, 0.187127f, 0.926988f, 0.656354f, 0.629434f, 0.495656f, 0.226093f, 0.858517f, 0.68242f, 0.70426f, 0.939288f, 0.526619f, 0.526184f, 0.266593f, 0.686914f, 0.00155542f, 0.927718f, 0.04613f, 0.95066f, 0.763412f, 0.0642208f, 0.0229945f, 0.619014f, 0.612731f, 0.480407f, 0.823741f, 0.444178f, 0.233648f, 0.351313f, 0.18131f, 0.261641f, 0.378168f, 0.781103f, 0.77266f, 0.335612f, 0.721479f, 0.586627f, 0.918034f, 0.667742f, 0.911525f, 0.834869f, 0.979858f, 0.105877f, 0.68092f, 0.291748f, 0.717349f, 0.0445674f, 0.0143131f, 0.0117362f, 0.281285f, 0.46247f, 0.495847f, 0.735287f, 0.088833f, 0.479189f, 0.542617f, 0.292785f, 0.659989f, 0.336397f, 0.632401f, 0.420709f, 0.00250625f, 0.709559f, 0.110518f, 0.351807f, 0.185619f, 0.655246f, 0.298226f, 0.238629f, 0.0408697f, 0.960399f, 0.867659f, 0.254167f, 0.175976f, 0.181935f, 0.476168f, 0.666971f, 0.181789f, 0.18922f, 0.293109f, 0.40944f, 0.587306f, 0.047309f, 0.383197f, 0.11214f, 0.492445f, 0.303954f, 0.896018f, 0.920548f, 0.186454f, 0.956295f, 0.174857f, 0.259837f, 0.213495f, 0.330886f, 0.322003f, 0.62633f, 0.471895f, 0.984244f, 0.72708f, 0.532441f, 0.199213f, 0.0806102f, 0.365985f, 0.889816f, 0.327471f, 0.791387f, 0.031357f, 0.111667f, 0.642776f, 0.808755f, 0.263011f, 0.729673f, 0.281746f, 0.418753f, 0.0178116f, 0.221522f, 0.981707f, 0.993976f, 0.291144f, 0.5504f, 0.437406f, 0.839687f, 0.248528f, 0.434314f, 0.886793f, 0.301432f, 0.699775f, 0.539329f, 0.88398f, 0.928958f, 0.576982f, 0.682972f, 0.0963353f, 0.459443f, 0.314181f, 0.723099f, 0.674171f, 0.771388f, 0.376967f, 0.699611f, 0.640212f, 0.457369f, 0.0925651f, 0.563241f, 0.3704f, 0.593069f, 0.401959f, 0.0378746f, 0.816992f, 0.854208f, 0.494584f, 0.516438f, 0.752953f, 0.291509f, 0.556481f, 0.113466f, 0.406382f, 0.870468f, 0.308661f, 0.508829f, 0.0782531f, 0.784794f, 0.873834f, 0.0796295f, 0.332769f, 0.618955f, 0.317678f, 0.517487f, 0.969253f, 0.808632f, 0.51958f, 0.0830913f, 0.0379246f, 0.239989f, 0.688237f, 0.287361f, 0.627135f, 0.194175f, 0.925559f, 0.200431f, 0.20995f, 0.142007f, 0.816057f, 0.450422f, 0.152835f, 0.86489f, 0.541712f, 0.148234f, 0.998775f, 0.823314f, 0.499182f, 0.440296f, 0.331616f, 0.426489f, 0.696471f, 0.268979f, 0.334777f, 0.975781f, 0.389977f, 0.663315f, 0.276437f, 0.27795f, 0.642763f, 0.790189f, 0.0402131f, 0.0615905f, 0.791676f, 0.707201f, 0.311094f, 0.863777f, 0.353634f, 0.267153f, 0.785566f, 0.195712f, 0.969889f, 0.785286f, 0.795823f, 0.868895f, 0.300683f, 0.0619177f, 0.649635f, 0.408871f, 0.508251f, 0.47058f, 0.817351f, 0.281847f, 0.590995f, 0.700125f, 0.507325f, 0.940381f, 0.213701f, 0.589021f, 0.791475f, 0.202392f, 0.0609428f, 0.613555f, 0.180216f, 0.196492f, 0.678086f, 0.193892f, 0.973438f, 0.702902f, 0.0149802f, 0.956909f, 0.694691f, 0.690709f, 0.606087f, 0.235772f, 0.837038f, 0.018357f, 0.453154f, 0.685738f, 0.252985f, 0.167596f, 0.957168f, 0.162042f, 0.701536f, 0.258119f, 0.243023f, 0.287879f, 0.915982f, 0.297634f, 0.740599f, 0.613924f, 0.0530076f, 0.0705584f, 0.311554f, 0.781782f, 0.0491582f, 0.361963f, 0.963385f, 0.94931f, 0.522734f, 0.508282f, 0.574593f, 0.733251f, 0.305097f, 0.951962f, 0.90494f, 0.271572f, 0.41666f, 0.735302f, 0.470283f, 0.474879f, 0.888888f, 0.500184f, 0.83993f, 0.101616f, 0.353366f, 0.336758f, 0.220401f, 0.267699f, 0.731965f, 0.701568f, 0.134716f, 0.843125f, 0.583155f, 0.92675f, 0.662535f, 0.937861f, 0.963641f, 0.43113f, 0.179293f, 0.271057f, 0.989385f, 0.102155f, 0.909557f, 0.393676f, 0.0970826f, 0.369484f, 0.28362f, 0.89565f, 0.365745f, 0.786246f, 0.912654f, 0.847388f, 0.310394f, 0.965121f, 0.765785f, 0.122156f, 0.0317397f, 0.521194f, 0.685856f, 0.649231f, 0.187277f, 0.696647f, 0.290668f, 0.599364f, 0.619346f, 0.0922423f, 0.74544f, 0.829272f, 0.998726f, 0.507624f, 0.179443f, 0.466956f, 0.0595983f, 0.211277f, 0.897726f, 0.64407f, 0.459841f, 0.352153f, 0.357459f, 0.317043f, 0.922847f, 0.788995f, 0.192469f, 0.790991f, 0.981335f, 0.483017f, 0.131913f, 0.610957f, 0.275227f, 0.2941f, 0.158151f, 0.481018f, 0.64167f, 0.631444f, 0.628155f, 0.525741f, 0.851589f, 0.83897f, 0.969717f, 0.800086f, 0.315871f, 0.341646f, 0.906146f, 0.252658f, 0.482959f, 0.23568f, 0.782886f, 0.687143f, 0.244124f, 0.151301f, 0.422368f, 0.586512f, 0.262556f, 0.160689f, 0.127373f, 0.887785f, 0.868947f, 0.912987f, 0.332867f, 0.301728f, 0.712994f, 0.979397f, 0.363192f, 0.114619f, 0.682255f, 0.141706f, 0.320313f, 0.856347f, 0.578575f, 0.881893f, 0.448112f, 0.968206f, 0.0184664f, 0.944073f, 0.0712266f, 0.65535f, 0.00525782f, 0.968056f, 0.956909f, 0.406435f, 0.937493f, 0.207579f, 0.559663f, 0.4413f, 0.533044f, 0.375814f, 0.809769f, 0.830527f, 0.136295f, 0.648902f, 0.252054f, 0.628484f, 0.908412f, 0.883995f, 0.0913548f, 0.176676f, 0.750068f, 0.57081f, 0.718888f, 0.122341f, 0.963544f, 0.313369f, 0.151373f, 0.478553f, 0.427352f, 0.141612f, 0.901883f, 0.112199f, 0.0637606f, 0.8183f, 0.692998f, 0.169271f, 0.526569f, 0.75107f, 0.579626f, 0.985856f, 0.360326f, 0.397701f, 0.610527f, 0.522891f, 0.504134f, 0.601123f, 0.180686f, 0.895381f, 0.0553699f, 0.845222f, 0.540461f, 0.445749f, 0.203239f, 0.0839599f, 0.574058f, 0.208464f, 0.159438f, 0.510487f, 0.53153f, 0.965698f, 0.432833f, 0.960601f, 0.0314765f, 0.356788f, 0.592935f, 0.202284f, 0.0420978f, 0.769117f, 0.351933f, 0.305801f, 0.951143f, 0.720038f, 0.979939f, 0.13027f, 0.127677f, 0.15707f, 0.666171f, 0.282351f, 0.408165f, 0.101669f, 0.37713f, 0.289386f, 0.825685f, 0.772972f, 0.287087f, 0.483195f, 0.518193f, 0.857148f, 0.231962f, 0.342772f, 0.514379f, 0.205219f, 0.673235f, 0.129295f, 0.344384f, 0.380353f, 0.128981f, 0.415241f, 0.221281f, 0.552054f, 0.0728381f, 0.0211884f, 0.889232f, 0.820747f, 0.364529f, 0.881878f, 0.775155f, 0.471228f, 0.783677f, 0.687301f, 0.0473796f, 0.75559f, 0.207462f, 0.728033f, 0.143192f, 0.311165f, 0.0687048f, 0.0506925f, 0.331048f, 0.230187f, 0.828601f, 0.547144f, 0.741586f, 0.67625f, 0.452529f, 0.0214194f, 0.237796f, 0.668306f, 0.337735f, 0.246399f, 0.83663f, 0.815895f, 0.328788f, 0.846376f, 0.326103f, 0.300141f, 0.703082f, 0.161504f, 0.270621f, 0.358893f, 0.092777f, 0.634171f, 0.747569f, 0.880028f, 0.421774f, 0.83451f, 0.0289538f, 0.601804f, 0.0682301f, 0.838697f, 0.421283f, 0.0107802f, 0.924154f, 0.744722f, 0.649421f, 0.29553f, 0.382578f, 0.912939f, 0.124705f, 0.425581f, 0.505076f, 0.627919f, 0.357637f, 0.878916f, 0.423384f, 0.382756f, 0.990056f, 0.976844f, 0.828146f, 0.0293946f, 0.650928f, 0.00351939f, 0.218963f, 0.861339f, 0.0983828f, 0.419058f, 0.265909f, 0.905529f, 0.26981f, 0.282951f, 0.879036f, 0.911603f, 0.904584f, 0.258169f, 0.999342f, 0.967355f, 0.302176f, 0.712034f, 0.0535345f, 0.878392f, 0.791693f, 0.0788202f, 0.124117f, 0.946683f, 0.228736f, 0.814142f, 0.222778f, 0.400231f, 0.233423f, 0.193474f, 0.344432f, 0.114617f, 0.491859f, 0.778117f, 0.160341f, 0.512593f, 0.199137f, 0.406493f, 0.093878f, 0.531607f, 0.57685f, 0.0429921f, 0.140615f, 0.232808f, 0.792075f, 0.695901f, 0.515208f, 0.723303f, 0.120167f, 0.0848111f, 0.0257059f, 0.069167f, 0.0962686f, 0.815963f, 0.623719f, 0.322465f, 0.0436557f, 0.0457932f, 0.880397f, 0.248271f, 0.799595f, 0.942299f, 0.327552f, 0.546092f, 0.845722f, 0.249952f, 0.165359f, 0.818325f, 0.31515f, 0.324321f, 0.599571f, 0.569378f, 0.185475f, 0.946115f, 0.752457f, 0.209583f, 0.680331f, 0.149508f, 0.727546f, 0.883316f, 0.169385f, 0.461399f, 0.423986f, 0.483602f, 0.587853f, 0.38961f, 0.742984f, 0.573985f, 0.643779f, 0.918392f, 0.0212002f, 0.983966f, 0.601392f, 0.914242f, 0.578249f, 0.0785484f, 0.284722f, 0.612524f, 0.305447f, 0.879861f, 0.571116f, 0.340345f, 0.77051f, 0.196389f, 0.523607f, 0.19175f, 0.947384f, 0.196434f, 0.452568f, 0.156455f, 0.691206f, 0.724007f, 0.329117f, 0.503925f, 0.129639f, 0.598567f, 0.646797f, 0.318501f, 0.969771f, 0.290599f, 0.451135f, 0.582563f, 0.366916f, 0.433685f, 0.675702f, 0.702015f, 0.148669f, 0.485186f, 0.99228f, 0.314424f, 0.0300252f, 0.500173f, 0.11492f, 0.15507f, 0.0347326f, 0.406929f, 0.127201f, 0.506661f, 0.254545f, 0.248539f, 0.0441037f, 0.988872f, 0.976104f, 0.541646f, 0.37743f, 0.507879f, 0.0503406f, 0.939495f, 0.885026f, 0.409377f, 0.0565382f, 0.892767f, 0.558826f, 0.280748f, 0.462651f, 0.936694f, 0.477156f, 0.534092f, 0.259836f, 0.0493089f, 0.14547f, 0.572022f, 0.615188f, 0.441674f, 0.783068f, 0.6781f, 0.230618f, 0.647285f, 0.59767f, 0.0127817f, 0.3306f, 0.897164f, 0.656878f, 0.595638f, 0.485695f, 0.988592f, 0.803959f, 0.157477f, 0.188967f, 0.321743f, 0.248873f, 0.882845f, 0.157493f, 0.364844f, 0.719777f, 0.989941f, 0.0849237f, 0.805028f, 0.200688f, 0.221226f, 0.763431f, 0.833604f, 0.580838f, 0.279532f, 0.427327f, 0.488258f, 0.516944f, 0.897521f, 0.086223f, 0.834054f, 0.885842f, 0.854962f, 0.309542f, 0.674509f, 0.343226f, 0.988286f, 0.471698f, 0.0734752f, 0.437736f, 0.126389f, 0.873189f, 0.307488f, 0.910877f, 0.378279f, 0.600488f, 0.256123f, 0.0336207f, 0.795893f, 0.566673f, 0.248597f, 0.502109f, 0.361798f, 0.257769f, 0.534063f, 0.249482f, 0.129576f, 0.788627f, 0.011144f, 0.46344f, 0.932547f, 0.660116f, 0.050771f, 0.272999f, 0.851341f, 0.458077f, 0.261602f, 0.144189f, 0.549428f, 0.452305f, 0.334867f, 0.471445f, 0.521803f, 0.35048f, 0.681348f, 0.597689f, 0.265137f, 0.012798f, 0.552491f, 0.748532f, 0.954552f, 0.951256f, 0.450892f, 0.264925f, 0.467626f, 0.718889f, 0.436329f, 0.269176f, 0.00866137f, 0.397007f, 0.29693f, 0.689002f, 0.446116f, 0.659732f, 0.658286f, 0.453444f, 0.871203f, 0.0085921f, 0.104667f, 0.253307f, 0.513151f, 0.839097f, 0.269905f, 0.846144f, 0.682346f, 0.345175f, 0.257712f, 0.920847f, 0.015f, 0.527813f, 0.55833f, 0.544131f, 0.248702f, 0.275199f, 0.818973f, 0.378529f, 0.113632f, 0.587611f, 0.763347f, 0.252203f, 0.00116456f, 0.725082f, 0.646987f, 0.207479f, 0.648843f, 0.957664f, 0.750242f, 0.0976647f, 0.239976f, 0.0863225f, 0.672624f, 0.57292f, 0.700872f, 0.0781549f, 0.0614034f, 0.693625f, 0.213332f, 0.211861f, 0.149414f, 0.163842f, 0.429011f, 0.599788f, 0.603976f, 0.952084f, 0.214137f, 0.522412f, 0.0912155f, 0.656561f, 0.191533f, 0.845911f, 0.248849f, 0.294503f, 0.492611f, 0.372581f, 0.214887f, 0.452217f, 0.377597f, 0.289727f, 0.566185f, 0.126835f, 0.300616f, 0.853052f, 0.911649f, 0.475767f, 0.135621f, 0.869745f, 0.513815f, 0.569568f, 0.917429f, 0.894771f, 0.252062f, 0.318876f, 0.533912f, 0.602982f, 0.429067f, 0.788358f, 0.17136f, 0.336137f, 0.844681f, 0.58513f, 0.351575f, 0.734729f, 0.0366377f, 0.475571f, 0.371119f, 0.277795f, 0.461627f, 0.873762f, 0.263099f, 0.447481f, 0.312437f, 0.0437438f, 0.962217f, 0.132691f, 0.570783f, 0.294223f, 0.631041f, 0.526803f, 0.987261f, 0.487454f, 0.0726847f, 0.543884f, 0.0053687f, 0.881964f, 0.998775f, 0.612637f, 0.937348f, 0.676706f, 0.976233f, 0.0637702f, 0.847239f, 0.136188f, 0.0431565f, 0.926459f, 0.32152f, 0.32446f, 0.512036f, 0.69745f, 0.0294216f, 0.0855434f, 0.815068f, 0.546145f, 0.927886f, 0.379195f, 0.254471f, 0.944315f, 0.322588f, 0.957175f, 0.282346f, 0.659034f, 0.0201403f, 0.0719348f, 0.945103f, 0.534361f, 0.411844f, 0.765219f, 0.067882f, 0.278189f, 0.0868578f, 0.163579f, 0.665753f, 0.113592f, 0.112568f, 0.10699f, 0.0595734f, 0.162962f, 0.918671f, 0.224692f, 0.0819119f, 0.454791f, 0.569074f, 0.571892f, 0.647528f, 0.34026f, 0.193834f, 0.121119f, 0.220117f, 0.846289f, 0.264911f, 0.0330401f, 0.0684504f, 0.904016f, 0.69732f, 0.724082f, 0.869786f, 0.152701f, 0.106843f, 0.648375f, 0.534446f, 0.318278f, 0.213744f, 0.693214f, 0.0563572f, 0.839421f, 0.172291f, 0.692026f, 0.0745269f, 0.886434f, 0.243813f, 0.0512777f, 0.321178f, 0.13266f, 0.982236f, 0.40121f, 0.584256f, 0.895731f, 0.304286f, 0.105001f, 0.339316f, 0.885125f, 0.853868f, 0.0440071f, 0.819516f, 0.48869f, 0.628928f, 0.33235f, 0.307699f, 0.58554f, 0.0375623f, 0.472584f, 0.518456f, 0.266189f, 0.85068f, 0.268341f, 0.96792f, 0.419352f, 0.1173f, 0.177419f, 0.345789f, 0.162403f, 0.0234518f, 0.869624f, 0.71387f, 0.0198971f, 0.531024f, 0.215712f, 0.405516f, 0.0474058f, 0.420991f, 0.944478f, 0.738921f, 0.14787f, 0.54363f, 0.446904f, 0.163239f, 0.456148f, 0.844835f, 0.145833f, 0.625621f, 0.971887f, 0.727065f, 0.328642f, 0.320998f, 0.0701854f, 0.140327f, 0.240073f, 0.680661f, 0.399884f, 0.228593f, 0.759478f, 0.426611f, 0.950217f, 0.428955f, 0.45019f, 0.908847f, 0.471782f, 0.389483f, 0.695342f, 0.337059f, 0.770883f, 0.838181f, 0.210233f, 0.0595027f, 0.904492f, 0.00351462f, 0.565647f, 0.982774f, 0.149771f, 0.0637599f, 0.405145f, 0.445735f, 0.816068f, 0.538072f, 0.430753f, 0.348029f, 0.831015f, 0.0380645f, 0.158113f, 0.651193f, 0.333812f, 0.0819951f, 0.962705f, 0.745059f, 0.914157f, 0.0793309f, 0.747745f, 0.224942f, 0.46577f, 0.220276f, 0.825112f, 0.980792f, 0.556163f, 0.588705f, 0.271999f, 0.116405f, 0.708346f, 0.168837f, 0.518623f, 0.346737f, 0.655913f, 0.734508f, 0.873901f, 0.540134f, 0.0243613f, 0.395516f, 0.189993f, 0.853518f, 0.493774f, 0.142472f, 0.531821f, 0.443036f, 0.274065f, 0.322846f, 0.0353078f, 0.837069f, 0.406647f, 0.273343f, 0.21152f, 0.637631f, 0.482531f, 0.52177f, 0.2741f, 0.682133f, 0.0352195f, 0.430186f, 0.8561f, 0.663455f, 0.211103f, 0.854863f, 0.468608f, 0.356419f, 0.509518f, 0.62751f, 0.793734f, 0.526289f, 0.547531f, 0.335063f, 0.625628f, 0.367247f, 0.329412f, 0.884946f, 0.220805f, 0.149462f, 0.236733f, 0.437201f, 0.581038f, 0.807608f, 0.707072f, 0.67478f, 0.974621f, 0.753644f, 0.124537f, 0.942944f, 0.515231f, 0.601375f, 0.927873f, 0.794737f, 0.355005f, 0.677403f, 0.108838f, 0.275615f, 0.131303f, 0.689428f, 0.777147f, 0.327886f, 0.975205f, 0.257742f, 0.97645f, 0.682553f, 0.122908f, 0.331947f, 0.42261f, 0.338974f, 0.0225699f, 0.570415f, 0.635975f, 0.163886f, 0.593781f, 0.861384f, 0.592634f, 0.466178f, 0.154522f, 0.568408f, 0.607836f, 0.776125f, 0.962187f, 0.67819f, 0.0891308f, 0.150665f, 0.166416f, 0.729866f, 0.328638f, 0.520148f, 0.375362f, 0.443706f, 0.647937f, 0.310221f, 0.965876f, 0.469779f, 0.823885f, 0.274833f, 0.316625f, 0.226207f, 0.536463f, 0.847172f, 0.683087f, 0.151119f, 0.542337f, 0.197068f, 0.832676f, 0.0322242f, 0.168607f, 0.784136f, 0.800374f, 0.393773f, 0.339262f, 0.318185f, 0.359085f, 0.737433f, 0.578348f, 0.754185f, 0.43222f, 0.759138f, 0.179196f, 0.218247f, 0.604319f, 0.484122f, 0.342351f, 0.15649f, 0.329544f, 0.968702f, 0.921633f, 0.365857f, 0.0214546f, 0.934058f, 0.282105f, 0.82954f, 0.246377f, 0.222097f, 0.341538f, 0.58899f, 0.309089f, 0.157814f, 0.112673f, 0.746926f, 0.611638f, 0.206396f, 0.479152f, 0.492632f, 0.562217f, 0.651548f, 0.497202f, 0.969626f, 0.508606f, 0.580386f, 0.387848f, 0.85588f, 0.021174f, 0.114449f, 0.343018f, 0.523163f, 0.724753f, 0.716847f, 0.598035f, 0.87584f, 0.83408f, 0.538258f, 0.255923f, 0.324454f, 0.655085f, 0.57429f, 0.550904f, 0.68564f, 0.650388f, 0.284076f, 0.741694f, 0.582598f, 0.31984f, 0.317297f, 0.282127f, 0.253139f, 0.0262349f, 0.27491f, 0.895392f, 0.576654f, 0.710636f, 0.353244f, 0.595169f, 0.288046f, 0.45929f, 0.360504f, 0.0847704f, 0.661651f, 0.360278f, 0.565211f, 0.340817f, 0.423077f, 0.182081f, 0.420885f, 0.823542f, 0.884483f, 0.678122f, 0.850341f, 0.115289f, 0.403558f, 0.748946f, 0.723952f, 0.00194501f, 0.521547f, 0.706713f, 0.542025f, 0.511056f, 0.595664f, 0.385158f, 0.788109f, 0.823781f, 0.946641f, 0.0869575f, 0.885374f, 0.0929692f, 0.282388f, 0.19181f, 0.344959f, 0.265325f, 0.762568f, 0.239918f, 0.775536f, 0.536382f, 0.675624f, 0.784612f, 0.469719f, 0.811278f, 0.148115f, 0.325118f, 0.401762f, 0.112758f, 0.932467f, 0.149154f, 0.956423f, 0.469938f, 0.258067f, 0.239403f, 0.222177f, 0.329883f, 0.336914f, 0.719498f, 0.0763891f, 0.0435183f, 0.71227f, 0.997935f, 0.763495f, 0.715784f, 0.0608482f, 0.155195f, 0.834585f, 0.869089f, 0.999609f, 0.789348f, 0.384231f, 0.890897f, 0.380875f, 0.594219f, 0.815373f, 0.673195f, 0.619164f, 0.407296f, 0.227292f, 0.518035f, 0.155214f, 0.480509f, 0.835703f, 0.251825f, 0.720069f, 0.612969f, 0.830241f, 0.547686f, 0.0471758f, 0.0784273f, 0.416132f, 0.540376f, 0.217496f, 0.313601f, 0.625845f, 0.0872483f, 0.848773f, 0.285885f, 0.372968f, 0.690592f, 0.67525f, 0.0975763f, 0.22521f, 0.419661f, 0.484302f, 0.279406f, 0.189793f, 0.99352f, 0.489158f, 0.737016f, 0.561644f, 0.0129174f, 0.84917f, 0.735305f, 0.878209f, 0.725973f, 0.366662f, 0.230208f, 0.339701f, 0.565154f, 0.467896f, 0.657671f, 0.487067f, 0.705041f, 0.440978f, 0.729998f, 0.199224f, 0.328137f, 0.14812f, 0.773305f, 0.359092f, 0.356545f, 0.562114f, 0.714331f, 0.573768f, 0.32319f, 0.946686f, 0.290456f, 0.456035f, 0.312373f, 0.829563f, 0.721841f, 0.341316f, 0.847362f, 0.893612f, 0.895206f, 0.808026f, 0.11987f, 0.343496f, 0.627386f, 0.190805f, 0.3352f, 0.56177f, 0.769637f, 0.754866f, 0.0338124f, 0.816776f, 0.676171f, 0.0304451f, 0.758759f, 0.378565f, 0.457934f, 0.23191f, 0.319193f, 0.714472f, 0.41122f, 0.365741f, 0.22797f, 0.506934f, 0.268159f, 0.421016f, 0.896935f, 0.699606f, 0.970328f, 0.312996f, 0.786921f, 0.775494f, 0.0332552f, 0.667787f, 0.966997f, 0.933915f, 0.169752f, 0.188917f, 0.96328f, 0.624588f, 0.0359824f, 0.225685f, 0.291476f, 0.5152f, 0.0620432f, 0.00369823f, 0.62943f, 0.583583f, 0.97948f, 0.676751f, 0.117789f, 0.553108f, 0.584581f, 0.0896354f, 0.656394f, 0.126621f, 0.624566f, 0.45226f, 0.360525f, 0.66226f, 0.457774f, 0.766773f, 0.117905f, 0.68308f, 0.21678f, 0.122781f, 0.707784f, 0.530599f, 0.122162f, 0.65119f, 0.823386f, 0.940991f, 0.207807f, 0.329127f, 0.860951f, 0.551366f, 0.830482f, 0.615333f, 0.160315f, 0.85203f, 0.748065f, 0.894926f, 0.430614f, 0.00411698f, 0.975764f, 0.496664f, 0.746566f, 0.538874f, 0.886717f, 0.652903f, 0.321574f, 0.873388f, 0.754763f, 0.628639f, 0.533674f, 0.302541f, 0.602323f, 0.430416f, 0.94908f, 0.292064f, 0.477345f, 0.337788f, 0.617156f, 0.923061f, 0.492171f, 0.532951f, 0.773264f, 0.0554359f, 0.232772f, 0.217784f, 0.0165228f, 0.887589f, 0.990668f, 0.121263f, 0.191839f, 0.697681f, 0.689844f, 0.435574f, 0.238431f, 0.21188f, 0.771684f, 0.813501f, 0.295074f, 0.753822f, 0.283023f, 0.116061f, 0.109815f, 0.34854f, 0.228258f, 0.917577f, 0.936318f, 0.719136f, 0.627008f, 0.290248f, 0.273571f, 0.309747f, 0.998204f, 0.999586f, 0.143504f, 0.308188f, 0.914165f, 0.202398f, 0.517918f, 0.0418613f, 0.00625668f, 0.594584f, 0.44866f, 0.426179f, 0.259366f, 0.195162f, 0.778245f, 0.829782f, 0.432879f, 0.853082f, 0.720255f, 0.862675f, 0.27348f, 0.612262f, 0.217127f, 0.643844f, 0.908318f, 0.742459f, 0.756025f, 0.727934f, 0.644897f, 0.492537f, 0.727896f, 0.212918f, 0.514331f, 0.820046f, 0.590255f, 0.174711f, 0.431646f, 0.276477f, 0.0405892f, 0.715193f, 0.449519f, 0.906522f, 0.621376f, 0.0503141f, 0.97553f, 0.832326f, 0.727575f, 0.967561f, 0.40575f, 0.665467f, 0.175575f, 0.257853f, 0.776247f, 0.116415f, 0.830292f, 0.153735f, 0.875794f, 0.682263f, 0.477441f, 0.242043f, 0.316703f, 0.391689f, 0.700265f, 0.848909f, 0.204354f, 0.702249f, 0.503154f, 0.277355f, 0.491703f, 0.822928f, 0.765257f, 0.292318f, 0.101989f, 0.289665f, 0.83507f, 0.149712f, 0.726482f, 0.636965f, 0.491852f, 0.672152f, 0.0257181f, 0.277221f, 0.0365796f, 0.617739f, 0.784594f, 0.210728f, 0.719884f, 0.618546f, 0.0621452f, 0.671866f, 0.325799f, 0.0721333f, 0.00566608f, 0.451301f, 0.909247f, 0.422503f, 0.957009f, 0.991108f, 0.0397077f, 0.301983f, 0.297236f, 0.467481f, 0.948317f, 0.968396f, 0.652605f, 0.344135f, 0.309752f, 0.190503f, 0.606621f, 0.27058f, 0.116304f, 0.312f, 0.0764449f, 0.350404f, 0.240971f, 0.799348f, 0.899711f, 0.122545f, 0.784379f, 0.877913f, 0.251779f, 0.311578f, 0.326848f, 0.248869f, 0.200661f, 0.896651f, 0.0230978f, 0.403657f, 0.972373f, 0.76107f, 0.360943f, 0.873258f, 0.75699f, 0.98436f, 0.975581f, 0.339908f, 0.0502815f, 0.398836f, 0.549227f, 0.833793f, 0.841285f, 0.579242f, 0.0494795f, 0.0122801f, 0.656708f, 0.508653f, 0.985266f, 0.173516f, 0.804665f, 0.558906f, 0.888237f, 0.870707f, 0.396705f, 0.737786f, 0.429249f, 0.820259f, 0.347267f, 0.314842f, 0.646713f, 0.486638f, 0.106182f, 0.610525f, 0.284259f, 0.808261f, 0.279249f, 0.558611f, 0.419055f, 0.933694f, 0.927874f, 0.212084f, 0.530335f, 0.597555f, 0.376588f, 0.966603f, 0.908474f, 0.21774f, 0.45999f, 0.0880853f, 0.257713f, 0.420641f, 0.523394f, 0.963878f, 0.317493f, 0.390739f, 0.999927f, 0.261827f, 0.915155f, 0.147217f, 0.226079f, 0.210811f, 0.924862f, 0.719825f, 0.63024f, 0.556891f, 0.286605f, 0.932826f, 0.203718f, 0.69941f, 0.244328f, 0.163412f, 0.882965f, 0.782171f, 0.560417f, 0.985394f, 0.572545f, 0.0643758f, 0.379096f, 0.355619f, 0.444694f, 0.172803f, 0.252421f, 0.287592f, 0.554304f, 0.750925f, 0.582436f, 0.709757f, 0.458762f, 0.769239f, 0.894216f, 0.504458f, 0.924531f, 0.901206f, 0.746323f, 0.0365078f, 0.533222f, 0.619761f, 0.699668f, 0.76796f, 0.652278f, 0.345191f, 0.445502f, 0.78572f, 0.637482f, 0.642379f, 0.902138f, 0.356315f, 0.0206236f, 0.214261f, 0.962538f, 0.333282f, 0.703234f, 0.0400771f, 0.593779f, 0.0750121f, 0.589034f, 0.570307f, 0.0122357f, 0.231655f, 0.559805f, 0.823308f, 0.963708f, 0.754108f, 0.734388f, 0.101353f, 0.303654f, 0.964648f, 0.532303f, 0.685543f, 0.977904f, 0.281432f, 0.580814f, 0.315792f, 0.730555f, 0.391481f, 0.771007f, 0.809532f, 0.243718f, 0.514558f, 0.653127f, 0.240548f, 0.922023f, 0.762384f, 0.798677f, 0.0513616f, 0.802956f, 0.845462f, 0.0811823f, 0.192813f, 0.582311f, 0.226245f, 0.480867f, 0.373309f, 0.668357f, 0.554323f, 0.221669f, 0.293095f, 0.170885f, 0.369216f, 0.861891f, 0.0903646f, 0.608813f, 0.653833f, 0.707802f, 0.93812f, 0.566926f, 0.260698f, 0.297984f, 0.267603f, 0.130237f, 0.448459f, 0.399144f, 0.606496f, 0.823424f, 0.107738f, 0.337029f, 0.380577f, 0.896837f, 0.398403f, 0.751783f, 0.637511f, 0.843949f, 0.253551f, 0.683301f, 0.744298f, 0.0966335f, 0.704624f, 0.317678f, 0.839543f, 0.877993f, 0.422029f, 0.492129f, 0.164136f, 0.71169f, 0.853503f, 0.874012f, 0.911242f, 0.463979f, 0.57413f, 0.238607f, 0.0707812f, 0.635761f, 0.258682f, 0.558912f, 0.00813576f, 0.909634f, 0.902105f, 0.487712f, 0.131959f, 0.922792f, 0.415813f, 0.480931f, 0.211557f, 0.265499f, 0.740622f, 0.721032f, 0.882587f, 0.4154f, 0.871322f, 0.529191f, 0.94779f, 0.837873f, 0.633955f, 0.361985f, 0.300756f, 0.295236f, 0.97158f, 0.0107261f, 0.720439f, 0.423649f, 0.36981f, 0.955399f, 0.0836756f, 0.758839f, 0.735046f, 0.52096f, 0.0960638f, 0.820243f, 0.634862f, 0.655774f, 0.703882f, 0.0539417f, 0.590383f, 0.0339599f, 0.695313f, 0.635042f, 0.0430869f, 0.128552f, 0.72793f, 0.422591f, 0.629823f, 0.575309f, 0.686091f, 0.204312f, 0.771282f, 0.202309f, 0.972021f, 0.943678f, 0.521917f, 0.916424f, 0.782824f, 0.2343f, 0.740007f, 0.866494f, 0.335054f, 0.471311f, 0.453799f, 0.567741f, 0.335944f, 0.577245f, 0.81055f, 0.0376232f, 0.249293f, 0.617434f, 0.195287f, 0.533622f, 0.695026f, 0.106478f, 0.254421f, 0.22592f, 0.328622f, 0.724656f, 0.311924f, 0.64578f, 0.0845344f, 0.0672177f, 0.292095f, 0.421916f, 0.717418f, 0.602544f, 0.658155f, 0.425879f, 0.388379f, 0.387705f, 0.414084f, 0.249436f, 0.737999f, 0.440861f, 0.469498f, 0.643737f, 0.926567f, 0.168103f, 0.912737f, 0.44983f, 0.761354f, 0.70971f, 0.461735f, 0.716239f, 0.94361f, 0.481279f, 0.497743f, 0.841223f, 0.625982f, 0.369029f, 0.955912f, 0.103134f, 0.257649f, 0.0677644f, 0.551804f, 0.287404f, 0.535048f, 0.94676f, 0.940998f, 0.731118f, 0.487944f, 0.429823f, 0.519651f, 0.507745f, 0.726266f, 0.673864f, 0.328724f, 0.76548f, 0.867712f, 0.767068f, 0.222795f, 0.0630727f, 0.432802f, 0.269174f, 0.274281f, 0.475448f, 0.860368f, 0.181595f, 0.460972f, 0.253384f, 0.199747f, 0.85067f, 0.256039f, 0.407108f, 0.536273f, 0.830839f, 0.493328f, 0.930773f, 0.185389f, 0.667034f, 0.954132f, 0.770057f, 0.0570016f, 0.357668f, 0.51673f, 0.248197f, 0.448142f, 0.209801f, 0.466072f, 0.449465f, 0.857624f, 0.341148f, 0.996611f, 0.932119f, 0.807806f, 0.608877f, 0.0886362f, 0.669081f, 0.0425297f, 0.379729f, 0.431256f, 0.591004f, 0.32401f, 0.364102f, 0.0112252f, 0.577283f, 0.61104f, 0.389568f, 0.0618338f, 0.489641f, 0.784731f, 0.798139f, 0.582719f, 0.53593f, 0.675573f, 0.0236412f, 0.757729f, 0.247307f, 0.140043f, 0.842903f, 0.212953f, 0.698981f, 0.637433f, 0.957588f, 0.706099f, 0.609729f, 0.387273f, 0.803494f, 0.627456f, 0.352881f, 0.629117f, 0.770967f, 0.349952f, 0.794217f, 0.460269f, 0.289858f, 0.427424f, 0.859604f, 0.614877f, 0.627268f, 0.289232f, 0.680268f, 0.804652f, 0.695936f, 0.543098f, 0.823489f, 0.516873f, 0.728121f, 0.216566f, 0.92983f, 0.587176f, 0.552859f, 0.988048f, 0.112148f, 0.825353f, 0.213509f, 0.316869f, 0.0798808f, 0.946805f, 0.42924f, 0.404865f, 0.407178f, 0.170639f, 0.829338f, 0.82508f, 0.313421f, 0.113583f, 0.0264537f, 0.156781f, 0.490163f, 0.24183f, 0.527696f, 0.296247f, 0.597739f, 0.49373f, 0.805524f, 0.81522f, 0.207776f, 0.070541f, 0.873843f, 0.358434f, 0.356914f, 0.821749f, 0.172439f, 0.308093f, 0.0832385f, 0.813647f, 0.678579f, 0.342968f, 0.64811f, 0.14488f, 0.120402f, 0.44961f, 0.95508f, 0.361503f, 0.535717f, 0.518889f, 0.100048f, 0.404472f, 0.19506f, 0.386073f, 0.473854f, 0.641773f, 0.236702f, 0.0550125f, 0.590603f, 0.5527f, 0.341272f, 0.431917f, 0.420711f, 0.794005f, 0.681318f, 0.13312f, 0.935004f, 0.323219f, 0.778307f, 0.859016f, 0.415393f, 0.468577f, 0.211118f, 0.438695f, 0.123158f, 0.637092f, 0.460244f, 0.598071f, 0.231173f, 0.016797f, 0.334836f, 0.138386f, 0.560526f, 0.0835137f, 0.60421f, 0.700779f, 0.83187f, 0.294512f, 0.51337f, 0.0202051f, 0.174129f, 0.923679f, 0.472313f, 0.52481f, 0.724994f, 0.28695f, 0.0204447f, 0.931106f, 0.310566f, 0.853471f, 0.105913f, 0.860516f, 0.877959f, 0.307981f, 0.846917f, 0.633876f, 0.676709f, 0.952519f, 0.669374f, 0.82699f, 0.646989f, 0.322494f, 0.411912f, 0.211543f, 0.853364f, 0.212531f, 0.699592f, 0.851319f, 0.166323f, 0.314704f, 0.180119f, 0.0511063f, 0.703247f, 0.456749f, 0.0952764f, 0.333696f, 0.689204f, 0.446771f, 0.568659f, 0.3105f, 0.627604f, 0.27507f, 0.344802f, 0.517481f, 0.683402f, 0.719146f, 0.0515266f, 0.958567f, 0.415007f, 0.962756f, 0.814256f, 0.816333f, 0.158331f, 0.820954f, 0.261193f, 0.347959f, 0.221901f, 0.127494f, 0.543496f, 0.837035f, 0.819778f, 0.218426f, 0.673528f, 0.509844f, 0.457907f, 0.0202857f, 0.71613f, 0.256688f, 0.631295f, 0.0699392f, 0.520135f, 0.0924218f, 0.836843f, 0.188659f, 0.367028f, 0.757746f, 0.185398f, 0.626506f, 0.419708f, 0.291774f, 0.462497f, 0.561037f, 0.557264f, 0.324388f, 0.818497f, 0.589801f, 0.957563f, 0.86074f, 0.0473976f, 0.209955f, 0.332045f, 0.408941f, 0.381801f, 0.67951f, 0.593068f, 0.013784f, 0.290742f, 0.711f, 0.262272f, 0.835702f, 0.92988f, 0.227408f, 0.392522f, 0.0874849f, 0.174771f, 0.388741f, 0.38575f, 0.685479f, 0.0320136f, 0.396033f, 0.214761f, 0.613196f, 0.0915487f, 0.54813f, 0.320967f, 0.492146f, 0.964279f, 0.618353f, 0.615633f, 0.801621f, 0.723783f, 0.165171f, 0.754033f, 0.151565f, 0.622612f, 0.282483f, 0.425882f, 0.0526811f, 0.699048f, 0.37748f, 0.617965f, 0.244653f, 0.487206f, 0.954366f, 0.487909f, 0.0487261f, 0.253659f, 0.965087f, 0.55919f, 0.232056f, 0.995675f, 0.96729f, 0.34866f, 0.694014f, 0.686933f, 0.206105f, 0.987857f, 0.00528206f, 0.934499f, 0.861199f, 0.162609f, 0.422528f, 0.721059f, 0.401983f, 0.219342f, 0.547353f, 0.467702f, 0.426866f, 0.0985705f, 0.301489f, 0.636567f, 0.609446f, 0.778716f, 0.199101f, 0.141631f, 0.408992f, 0.15862f, 0.951258f, 0.370879f, 0.113898f, 0.677033f, 0.633627f, 0.657546f, 0.230455f, 0.201419f, 0.186193f, 0.409626f, 0.685885f, 0.389648f, 0.511679f, 0.355286f, 0.892571f, 0.102479f, 0.769516f, 0.546067f, 0.185712f, 0.148104f, 0.963418f, 0.589483f, 0.458965f, 0.635108f, 0.979402f, 0.114336f, 0.459704f, 0.763414f, 0.148888f, 0.775504f, 0.915703f, 0.291144f, 0.313944f, 0.712198f, 0.551069f, 0.610023f, 0.550448f, 0.0949958f, 0.787097f, 0.333915f, 0.897527f, 0.386582f, 0.667075f, 0.443497f, 0.71539f, 0.131661f, 0.648665f, 0.626672f, 0.895059f, 0.180754f, 0.616166f, 0.828719f, 0.135838f, 0.0110219f, 0.774477f, 0.14943f, 0.0979744f, 0.379332f, 0.568952f, 0.749321f, 0.00246856f, 0.559976f, 0.210275f, 0.697018f, 0.840576f, 0.850855f, 0.686321f, 0.484197f, 0.94107f, 0.787591f, 0.0515763f, 0.856728f, 0.498463f, 0.856106f, 0.875068f, 0.608193f, 0.753641f, 0.847357f, 0.238942f, 0.174096f, 0.124826f, 0.703822f, 0.414074f, 0.856259f, 0.15821f, 0.233124f, 0.0811753f, 0.570522f, 0.217f, 0.0858566f, 0.536606f, 0.0525788f, 0.47397f, 0.307299f, 0.893432f, 0.273713f, 0.0921186f, 0.163628f, 0.774949f, 0.0383822f, 0.971339f, 0.227033f, 0.630513f, 0.521304f, 0.771722f, 0.752037f, 0.227997f, 0.951463f, 0.915167f, 0.745911f, 0.960752f, 0.921913f, 0.677775f, 0.506006f, 0.660425f, 0.737013f, 0.234304f, 0.650567f, 0.285645f, 0.627549f, 0.724179f, 0.735362f, 0.751054f, 0.742892f, 0.5349f, 0.0340623f, 0.654263f, 0.114409f, 0.0739177f, 0.78117f, 0.766772f, 0.284805f, 0.882784f, 0.770684f, 0.65742f, 0.266355f, 0.948033f, 0.377346f, 0.230501f, 0.54382f, 0.334071f, 0.186995f, 0.23143f, 0.0947131f, 0.955076f, 0.568663f, 0.258273f, 0.294791f, 0.326614f, 0.710372f, 0.157307f, 0.257738f, 0.820396f, 0.67441f, 0.380863f, 0.57792f, 0.232758f, 0.0620197f, 0.350386f, 0.258487f, 0.902477f, 0.228053f, 0.248016f, 0.662936f, 0.700286f, 0.193155f, 0.670281f, 0.772846f, 0.678572f, 0.586518f, 0.87227f, 0.381207f, 0.96242f, 0.824641f, 0.584737f, 0.68552f, 0.22591f, 0.0063159f, 0.249958f, 0.619253f, 0.442369f, 0.343834f, 0.458693f, 0.78975f, 0.996348f, 0.716623f, 0.910166f, 0.142621f, 0.596729f, 0.366853f, 0.390577f, 0.974675f, 0.772302f, 0.699393f, 0.411428f, 0.52734f, 0.645652f, 0.760538f, 0.199266f, 0.417639f, 0.931522f, 0.284259f, 0.682519f, 0.188477f, 0.635607f, 0.370065f, 0.538539f, 0.633446f, 0.688715f, 0.94006f, 0.477396f, 0.86209f, 0.054199f, 0.855804f, 0.410172f, 0.251128f, 0.830972f, 0.282699f, 0.383014f, 0.117019f, 0.640977f, 0.973587f, 0.481625f, 0.611474f, 0.990382f, 0.5059f, 0.672565f, 0.0202108f, 0.582947f, 0.0136221f, 0.178035f, 0.368841f, 0.81812f, 0.769489f, 0.644509f, 0.37348f, 0.120281f, 0.823506f, 0.693859f, 0.463414f, 0.182675f, 0.865192f, 0.0276884f, 0.496397f, 0.964378f, 0.641822f, 0.677764f, 0.412708f, 0.00292643f, 0.670148f, 0.86073f, 0.536736f, 0.21797f, 0.149772f, 0.359512f, 0.956203f, 0.599491f, 0.175738f, 0.123739f, 0.00688263f, 0.0907703f, 0.600065f, 0.720228f, 0.757179f, 0.704742f, 0.147682f, 0.168863f, 0.68926f, 0.817109f, 0.665291f, 0.675294f, 0.869075f, 0.338797f, 0.400802f, 0.757248f, 0.184531f, 0.0769999f, 0.845662f, 0.236621f, 0.113821f, 0.745335f, 0.226766f, 0.100512f, 0.356874f, 0.500064f, 0.99653f, 0.841126f, 0.417973f, 0.793745f, 0.0796873f, 0.99213f, 0.878007f, 0.661723f, 0.654042f, 0.355236f, 0.772393f, 0.572179f, 0.12688f, 0.26505f, 0.98449f, 0.449076f, 0.641671f, 0.204734f, 0.622518f, 0.221602f, 0.685798f, 0.83397f, 0.307166f, 0.377713f, 0.446752f, 0.633034f, 0.208031f, 0.831139f, 0.322364f, 0.23388f, 0.926244f, 0.582568f, 0.15845f, 0.593766f, 0.0726884f, 0.738815f, 0.966635f, 0.922058f, 0.465648f, 0.797606f, 0.647969f, 0.76734f, 0.110426f, 0.0755897f, 0.0728861f, 0.640038f, 0.157715f, 0.670731f, 0.00872158f, 0.72429f, 0.439391f, 0.338223f, 0.810034f, 0.871096f, 0.365613f, 0.818626f, 0.919099f, 0.383008f, 0.792088f, 0.166972f, 0.624496f, 0.356871f, 0.501678f, 0.639525f, 0.840328f, 0.412824f, 0.0932329f, 0.111289f, 0.724415f, 0.623654f, 0.53872f, 0.659724f, 0.753525f, 0.837912f, 0.161788f, 0.382286f, 0.884168f, 0.794045f, 0.523351f, 0.556366f, 0.0513674f, 0.41215f, 0.271863f, 0.885614f, 0.831207f, 0.0969816f, 0.915898f, 0.563384f, 0.893467f, 0.829464f, 0.242205f, 0.729995f, 0.39411f, 0.453822f, 0.775291f, 0.785893f, 0.678241f, 0.765576f, 0.697497f, 0.869171f, 0.854339f, 0.987105f, 0.0597787f, 0.0108559f, 0.921626f, 0.742091f, 0.419284f, 0.945689f, 0.236553f, 0.863462f, 0.576416f, 0.802249f, 0.155175f, 0.676429f, 0.744429f, 0.658288f, 0.213687f, 0.667174f, 0.891232f, 0.551984f, 0.302685f, 0.414941f, 0.293601f, 0.00106408f, 0.0241778f, 0.00180441f, 0.00668921f, 0.224079f, 0.932823f, 0.790372f, 0.117324f, 0.668195f, 0.0171749f, 0.851547f, 0.441639f, 0.563881f, 0.186563f, 0.43539f, 0.505915f, 0.86787f, 0.371474f, 0.139565f, 0.33326f, 0.576365f, 0.7019f, 0.77176f, 0.210137f, 0.439934f, 0.630084f, 0.119083f, 0.263833f, 0.909826f, 0.137509f, 0.906319f, 0.0842959f, 0.646533f, 0.932021f, 0.970351f, 0.583306f, 0.833753f, 0.846507f, 0.253477f, 0.119003f, 0.00558582f, 0.001398f, 0.883284f, 0.269051f, 0.694504f, 0.922912f, 0.236143f, 0.680205f, 0.0310032f, 0.0323088f, 0.557608f, 0.110848f, 0.456599f, 0.912836f, 0.892128f, 0.206123f, 0.314372f, 0.257554f, 0.976526f, 0.893388f, 0.470747f, 0.215682f, 0.885755f, 0.0257514f, 0.666208f, 0.788347f, 0.893589f, 0.625256f, 0.521227f, 0.48823f, 0.452164f, 0.7592f, 0.288722f, 0.704164f, 0.333967f, 0.0249497f, 0.373069f, 0.140549f, 0.868282f, 0.710221f, 0.804359f, 0.38871f, 0.0400849f, 0.718373f, 0.895892f, 0.318676f, 0.475759f, 0.220205f, 0.152593f, 0.66422f, 0.182417f, 0.454496f, 0.612757f, 0.960192f, 0.106337f, 0.352851f, 0.653202f, 0.574667f, 0.0754936f, 0.0805307f, 0.0864846f, 0.970072f, 0.779454f, 0.799679f, 0.375467f, 0.0837045f, 0.333977f, 0.162421f, 0.249397f, 0.100598f, 0.866754f, 0.963817f, 0.929224f, 0.330761f, 0.81857f, 0.620179f, 0.144541f, 0.200187f, 0.390916f, 0.470811f, 0.201679f, 0.328561f, 0.685465f, 0.606776f, 0.746216f, 0.238537f, 0.664041f, 0.504179f, 0.528982f, 0.775587f, 0.597509f, 0.703819f, 0.465856f, 0.719608f, 0.699046f, 0.500017f, 0.652985f, 0.77198f, 0.874632f, 0.258022f, 0.316531f, 0.263782f, 0.985455f, 0.128295f, 0.221651f, 0.725959f, 0.65969f, 0.135669f, 0.59214f, 0.185946f, 0.549432f, 0.265365f, 0.415855f, 0.581584f, 0.859672f, 0.813966f, 0.396238f, 0.695556f, 0.532895f, 0.297105f, 0.337337f, 0.891178f, 0.114393f, 0.593805f, 0.907801f, 0.174794f, 0.372857f, 0.0248354f, 0.263824f, 0.572763f, 0.0982025f, 0.864261f, 0.834625f, 0.337708f, 0.189469f, 0.361923f, 0.625785f, 0.261108f, 0.775844f, 0.852493f, 0.0949709f, 0.0979683f, 0.934444f, 0.0544419f, 0.283204f, 0.416359f, 0.0434888f, 0.92381f, 0.343553f, 0.0769861f, 0.589362f, 0.82132f, 0.0485852f, 0.896658f, 0.0316668f, 0.707779f, 0.680386f, 0.980316f, 0.970593f, 0.987526f, 0.109227f, 0.691583f, 0.887017f, 0.349748f, 0.835415f, 0.36057f, 0.252305f, 0.106924f, 0.661509f, 0.762768f, 0.507334f, 0.400594f, 0.0321928f, 0.914954f, 0.066717f, 0.513402f, 0.910172f, 0.0616166f, 0.335694f, 0.39358f, 0.127995f, 0.311314f, 0.339676f, 0.688501f, 0.709888f, 0.062848f, 0.682497f, 0.540525f, 0.718128f, 0.794207f, 0.0441771f, 0.986113f, 0.136567f, 0.355656f, 0.999445f, 0.15004f, 0.381088f, 0.0203178f, 0.0824093f, 0.556949f, 0.905727f, 0.474253f, 0.0837329f, 0.118499f, 0.84057f, 0.352348f, 0.753817f, 0.153472f, 0.168021f, 0.548498f, 0.886833f, 0.443833f, 0.381542f, 0.855886f, 0.691931f, 0.892762f, 0.100045f, 0.638215f, 0.188494f, 0.00818149f, 0.875871f, 0.532124f, 0.586146f, 0.815154f, 0.944589f, 0.274561f, 0.906582f, 0.00776694f, 0.66117f, 0.579047f, 0.987331f, 0.427147f, 0.375723f, 0.31839f, 0.200724f, 0.106331f, 0.762523f, 0.408919f, 0.219073f, 0.549145f, 0.146873f, 0.702442f, 0.267826f, 0.171143f, 0.471984f, 0.298283f, 0.819285f, 0.828251f, 0.384217f, 0.221415f, 0.548437f, 0.598658f, 0.517612f, 0.715119f, 0.942431f, 0.428131f, 0.103713f, 0.718112f, 0.545915f, 0.905434f, 0.0417096f, 0.864922f, 0.0919797f, 0.199275f, 0.00664503f, 0.938453f, 0.927443f, 0.435517f, 0.765285f, 0.949314f, 0.257499f, 0.663638f, 0.950816f, 0.5058f, 0.0153361f, 0.850979f, 0.538474f, 0.547083f, 0.170574f, 0.463045f, 0.362734f, 0.813406f, 0.199206f, 0.322996f, 0.981702f, 0.132911f, 0.561486f, 0.727108f, 0.384904f, 0.972872f, 0.609987f, 0.146484f, 0.945631f, 0.98901f, 0.630719f, 0.385017f, 0.622342f, 0.551934f, 0.938095f, 0.333759f, 0.424097f, 0.816664f, 0.586314f, 0.592952f, 0.903655f, 0.699977f, 0.880342f, 0.778092f, 0.605997f, 0.208481f, 0.57197f, 0.150941f, 0.382229f, 0.343875f, 0.446767f, 0.0609308f, 0.309189f, 0.955356f, 0.452305f, 0.158355f, 0.895658f, 0.420931f, 0.868014f, 0.571878f, 0.498291f, 0.934939f, 0.116603f, 0.104431f, 0.192855f, 0.337519f, 0.880644f, 0.164783f, 0.417785f, 0.390948f, 0.947713f, 0.033545f, 0.102575f, 0.974468f, 0.709245f, 0.898776f, 0.726694f, 0.251227f, 0.760285f, 0.86575f, 0.706157f, 0.112987f, 0.529949f, 0.21792f, 0.564668f, 0.307695f, 0.419375f, 0.688999f, 0.617501f, 0.445752f, 0.277257f, 0.715238f, 0.304063f, 0.132491f, 0.0770358f, 0.622772f, 0.691975f, 0.84441f, 0.622969f, 0.6856f, 0.51067f, 0.95175f, 0.565329f, 0.280985f, 0.297438f, 0.248585f, 0.660183f, 0.797266f, 0.4799f, 0.0123372f, 0.845429f, 0.841494f, 0.918484f, 0.14736f, 0.176414f, 0.776317f, 0.995957f, 0.403513f, 0.3656f, 0.421816f, 0.856609f, 0.861975f, 0.974229f, 0.021713f, 0.568926f, 0.122837f, 0.415271f, 0.632128f, 0.0654283f, 0.0762905f, 0.548621f, 0.179276f, 0.738465f, 0.893959f, 0.994393f, 0.174888f, 0.319457f, 0.400915f, 0.907595f, 0.632721f, 0.796498f, 0.862756f, 0.0020552f, 0.133031f, 0.649062f, 0.204599f, 0.446987f, 0.160217f, 0.478109f, 0.142825f, 0.0620559f, 0.278049f, 0.748039f, 0.755827f, 0.923555f, 0.345105f, 0.648536f, 0.686537f, 0.971725f, 0.464599f, 0.760275f, 0.105162f, 0.983246f, 0.00604525f, 0.140177f, 0.905f, 0.938368f, 0.550615f, 0.762948f, 0.358636f, 0.189097f, 0.860389f, 0.848237f, 0.331012f, 0.135174f, 0.43077f, 0.377338f, 0.0258247f, 0.840109f, 0.447487f, 0.100205f, 0.558228f, 0.343605f, 0.711903f, 0.242802f, 0.812641f, 0.501949f, 0.239866f, 0.406506f, 0.795585f, 0.690768f, 0.0181014f, 0.597976f, 0.627273f, 0.50937f, 0.121486f, 0.0436525f, 0.197956f, 0.25864f, 0.819611f, 0.783811f, 0.406142f, 0.304749f, 0.599887f, 0.720109f, 0.251736f, 0.473498f, 0.522691f, 0.863379f, 0.858623f, 0.934269f, 0.36418f, 0.0841608f, 0.788856f, 0.686599f, 0.829538f, 0.164947f, 0.844065f, 0.993576f, 0.724929f, 0.692888f, 0.251f, 0.807681f, 0.564336f, 0.35226f, 0.776656f, 0.394954f, 0.371132f, 0.294816f, 0.638015f, 0.194861f, 0.183644f, 0.163626f, 0.383555f, 0.747841f, 0.487575f, 0.27055f, 0.425705f, 0.835043f, 0.0680608f, 0.228085f, 0.653843f, 0.21128f, 0.590651f, 0.577416f, 0.308909f, 0.764115f, 0.705085f, 0.22404f, 0.931519f, 0.562128f, 0.522182f, 0.366499f, 0.0674083f, 0.679526f, 0.0604887f, 0.730983f, 0.993301f, 0.556663f, 0.0421419f, 0.589714f, 0.704518f, 0.68187f, 0.243529f, 0.443112f, 0.537233f, 0.662457f, 0.630459f, 0.879828f, 0.495696f, 0.788551f, 0.699764f, 0.943416f, 0.287901f, 0.312387f, 0.185625f, 0.68931f, 0.444885f, 0.887877f, 0.365092f, 0.71022f, 0.276571f, 0.539053f, 0.432607f, 0.692496f, 0.781982f, 0.720861f, 0.169869f, 0.481523f, 0.625876f, 0.961458f, 0.0592874f, 0.301462f, 0.151786f, 0.736584f, 0.258375f, 0.347829f, 0.65187f, 0.345502f, 0.957465f, 0.841177f, 0.907116f, 0.976527f, 0.560808f, 0.100525f, 0.10193f, 0.0819206f, 0.539046f, 0.0109153f, 0.439407f, 0.154654f, 0.679919f, 0.806437f, 0.162809f, 0.648396f, 0.205724f, 0.272304f, 0.0924056f, 0.157329f, 0.315478f, 0.439663f, 0.688246f, 0.2127f, 0.850182f, 0.0128729f, 0.0903344f, 0.171465f, 0.0104714f, 0.750506f, 0.454575f, 0.689295f, 0.238364f, 0.261256f, 0.239745f, 0.546799f, 0.469137f, 0.372374f, 0.339013f, 0.547718f, 0.829973f, 0.276864f, 0.538141f, 0.105929f, 0.170644f, 0.421469f, 0.840333f, 0.956239f, 0.672689f, 0.451812f, 0.58031f, 0.357299f, 0.215684f, 0.519496f, 0.460056f, 0.716747f, 0.491304f, 0.229834f, 0.127486f, 0.905092f, 0.555906f, 0.0721259f, 0.041581f, 0.510215f, 0.395276f, 0.438857f, 0.94381f, 0.626606f, 0.184174f, 0.915979f, 0.215971f, 0.154997f, 0.864942f, 0.0988611f, 0.251944f, 0.864195f, 0.886574f, 0.0456422f, 0.916006f, 0.264125f, 0.859057f, 0.245051f, 0.706641f, 0.10155f, 0.243685f, 0.389626f, 0.185941f, 0.688391f, 0.768579f, 0.488701f, 0.739821f, 0.679663f, 0.348402f, 0.409395f, 0.0091656f, 0.160903f, 0.0804745f, 0.51335f, 0.301049f, 0.0231793f, 0.204497f, 0.386904f, 0.0312164f, 0.356758f, 0.706266f, 0.0686764f, 0.0684509f, 0.563464f, 0.104772f, 0.119621f, 0.377996f, 0.359239f, 0.837839f, 0.45694f, 0.503392f, 0.830893f, 0.645893f, 0.808829f, 0.406021f, 0.423789f, 0.884968f, 0.677216f, 0.188494f, 0.0565997f, 0.483745f, 0.220211f, 0.782445f, 0.651556f, 0.816596f, 0.196575f, 0.688753f, 0.482428f, 0.586265f, 0.539181f, 0.206743f, 0.288573f, 0.441543f, 0.0807429f, 0.61317f, 0.215667f, 0.701933f, 0.228446f, 0.577729f, 0.736862f, 0.921574f, 0.318777f, 0.446166f, 0.00249746f, 0.42165f, 0.194976f, 0.565887f, 0.993061f, 0.240508f, 0.453809f, 0.997439f, 0.474129f, 0.886124f, 0.225129f, 0.606746f, 0.998707f, 0.232559f, 0.0422347f, 0.262956f, 0.672915f, 0.211194f, 0.341752f, 0.219858f, 0.84216f, 0.918537f, 0.490828f, 0.386068f, 0.231688f, 0.91578f, 0.669895f, 0.388457f, 0.181955f, 0.504756f, 0.598224f, 0.0739774f, 0.72259f, 0.664891f, 0.89631f, 0.272059f, 0.397199f, 0.204638f, 0.300248f, 0.0328023f, 0.389526f, 0.856474f, 0.0912415f, 0.236462f, 0.718316f, 0.738118f, 0.0460803f, 0.807778f, 0.647155f, 0.400048f, 0.376813f, 0.485327f, 0.986201f, 0.866023f, 0.124365f, 0.245155f, 0.385591f, 0.333758f, 0.415666f, 0.433378f, 0.925816f, 0.719244f, 0.065929f, 0.678957f, 0.0103201f, 0.547205f, 0.219298f, 0.935709f, 0.017852f, 0.865221f, 0.0904996f, 0.276277f, 0.828221f, 0.426476f, 0.80664f, 0.652762f, 0.810459f, 0.281391f, 0.161404f, 0.301521f, 0.302399f, 0.0308812f, 0.811819f, 0.688969f, 0.923022f, 0.306926f, 0.62788f, 0.59629f, 0.240553f, 0.0901609f, 0.0165326f, 0.94753f, 0.345511f, 0.0972646f, 0.960353f, 0.639537f, 0.271484f, 0.660993f, 0.400956f, 0.897515f, 0.110177f, 0.196591f, 0.28291f, 0.97968f, 0.9634f, 0.748608f, 0.954301f, 0.264691f, 0.939441f, 0.382081f, 0.708375f, 0.711272f, 0.61525f, 0.9727f, 0.632167f, 0.0635572f, 0.874455f, 0.187718f, 0.674742f, 0.0422768f, 0.00512436f, 0.432706f, 0.479179f, 0.198661f, 0.459669f, 0.733175f, 0.762433f, 0.987435f, 0.986954f, 0.632057f, 0.0256972f, 0.264978f, 0.0691882f, 0.609645f, 0.761305f, 0.339233f, 0.0253089f, 0.0726548f, 0.402878f, 0.53039f, 0.464782f, 0.104477f, 0.0790445f, 0.688595f, 0.924308f, 0.230273f, 0.0648814f, 0.528301f, 0.0705961f, 0.399499f, 0.343114f, 0.302305f, 0.151242f, 0.0299219f, 0.985795f, 0.762433f, 0.310035f, 0.946421f, 0.783076f, 0.80776f, 0.759192f, 0.623617f, 0.73097f, 0.65107f, 0.957996f, 0.400192f, 0.751235f, 0.189983f, 0.986402f, 0.911553f, 0.0981043f, 0.87139f, 0.197119f, 0.146904f, 0.905052f, 0.0864646f, 0.183412f, 0.873011f, 0.458889f, 0.35564f, 0.775034f, 0.124453f, 0.738635f, 0.953718f, 0.889123f, 0.691987f, 0.987672f, 0.4107f, 0.892616f, 0.684998f, 0.863265f, 0.0425638f, 0.90798f, 0.106003f, 0.340602f, 0.919752f, 0.260214f, 0.0680068f, 0.489028f, 0.102956f, 0.958904f, 0.531019f, 0.663626f, 0.968338f, 0.580892f, 0.712355f, 0.128102f, 0.890613f, 0.637565f, 0.930356f, 0.737044f, 0.859221f, 0.986567f, 0.399964f, 0.0870206f, 0.661551f, 0.281999f, 0.222849f, 0.655717f, 0.920301f, 0.614943f, 0.677214f, 0.33046f, 0.567663f, 0.853335f, 0.32623f, 0.777185f, 0.559091f, 0.552188f, 0.619115f, 0.0102889f, 0.637657f, 0.702025f, 0.880334f, 0.266588f, 0.395937f, 0.376869f, 0.27901f, 0.512039f, 0.410283f, 0.0673083f, 0.0520634f, 0.649678f, 0.00357422f, 0.141621f, 0.794679f, 0.0380337f, 0.223083f, 0.488931f, 0.60701f, 0.725548f, 0.974076f, 0.151649f, 0.416018f, 0.715222f, 0.893282f, 0.672605f, 0.0753095f, 0.561179f, 0.0467337f, 0.110497f, 0.366252f, 0.208156f, 0.76351f, 0.401775f, 0.930952f, 0.349385f, 0.121233f, 0.0279252f, 0.613772f, 0.927652f, 0.490538f, 0.393573f, 0.836098f, 0.0222542f, 0.990171f, 0.520922f, 0.196606f, 0.646755f, 0.115132f, 0.00654864f, 0.798696f, 0.679517f, 0.113255f, 0.157396f, 0.852971f, 0.55404f, 0.29054f, 0.350618f, 0.725176f, 0.0539168f, 0.624628f, 0.515153f, 0.593488f, 0.367925f, 0.010023f, 0.605986f, 0.355383f, 0.495606f, 0.273268f, 0.465714f, 0.771026f, 0.768542f, 0.867831f, 0.395598f, 0.394169f, 0.862229f, 0.41805f, 0.389145f, 0.84222f, 0.350594f, 0.0898763f, 0.54263f, 0.30973f, 0.0341653f, 0.715797f, 0.0584596f, 0.724317f, 0.661337f, 0.665782f, 0.389317f, 0.312689f, 0.943407f, 0.582541f, 0.904562f, 0.217721f, 0.648274f, 0.619905f, 0.841299f, 0.427722f, 0.482571f, 0.0606806f, 0.919532f, 0.814801f, 0.0741254f, 0.937703f, 0.030512f, 0.244253f, 0.659673f, 0.18727f, 0.671907f, 0.331276f, 0.883269f, 0.765625f, 0.603335f, 0.603434f, 0.716936f, 0.968526f, 0.074639f, 0.208396f, 0.0261722f, 0.112852f, 0.559216f, 0.280051f, 0.840165f, 0.772825f, 0.639054f, 0.321138f, 0.169607f, 0.424415f, 0.0907678f, 0.136643f, 0.521352f, 0.649788f, 0.630384f, 0.0436767f, 0.137933f, 0.984635f, 0.778038f, 0.403808f, 0.652748f, 0.939979f, 0.592971f, 0.451965f, 0.965087f, 0.979144f, 0.847556f, 0.529275f, 0.346044f, 0.0697041f, 0.363227f, 0.0204759f, 0.190434f, 0.369636f, 0.0437434f, 0.560413f, 0.240726f, 0.843342f, 0.373273f, 0.857142f, 0.535516f, 0.280448f, 0.100715f, 0.0128236f, 0.633847f, 0.372356f, 0.353266f, 0.990752f, 0.306887f, 0.429416f, 0.178416f, 0.53182f, 0.526097f, 0.732644f, 0.216363f, 0.638996f, 0.111085f, 0.19813f, 0.519994f, 0.812839f, 0.975136f, 0.504073f, 0.518966f, 0.180944f, 0.0496752f, 0.701867f, 0.488269f, 0.716748f, 0.184546f, 0.512495f, 0.761167f, 0.697101f, 0.304955f, 0.511194f, 0.554395f, 0.262005f, 0.755659f, 0.124621f, 0.414152f, 0.146795f, 0.964882f, 0.139361f, 0.342751f, 0.473251f, 0.137934f, 0.581996f, 0.766002f, 0.328939f, 0.984061f, 0.458676f, 0.0301047f, 0.953052f, 0.316643f, 0.582869f, 0.677505f, 0.216975f, 0.181675f, 0.324635f, 0.561192f, 0.893183f, 0.895312f, 0.686326f, 0.219969f, 0.590357f, 0.177063f, 0.333892f, 0.451406f, 0.834775f, 0.326919f, 0.288777f, 0.452857f, 0.301572f, 0.404564f, 0.28453f, 0.745707f, 0.262772f, 0.372933f, 0.146127f, 0.986781f, 0.210229f, 0.25186f, 0.257708f, 0.352966f, 0.608253f, 0.400728f, 0.113505f, 0.406653f, 0.136362f, 0.782824f, 0.270184f, 0.030661f, 0.491218f, 0.377122f, 0.803226f, 0.836448f, 0.86283f, 0.912815f, 0.531513f, 0.778374f, 0.0229733f, 0.808477f, 0.812527f, 0.04851f, 0.114582f, 0.365908f, 0.224707f, 0.87229f, 0.25335f, 0.480678f, 0.771355f, 0.844184f, 0.276701f, 0.91784f, 0.398595f, 0.795584f, 0.427373f, 0.147385f, 0.901279f, 0.909746f, 0.507502f, 0.412628f, 0.944328f, 0.966222f, 0.375699f, 0.89249f, 0.262635f, 0.278157f, 0.459272f, 0.921578f, 0.890149f, 0.543985f, 0.892832f, 0.186102f, 0.983704f, 0.546099f, 0.309482f, 0.986482f, 0.767514f, 0.08101f, 0.836228f, 0.131367f, 0.746135f, 0.00965489f, 0.145888f, 0.943013f, 0.215062f, 0.178234f, 0.460253f, 0.488205f, 0.061198f, 0.504047f, 0.267959f, 0.316017f, 0.554742f, 0.656633f, 0.778005f, 0.49826f, 0.167624f, 0.528963f, 0.482193f, 0.89901f, 0.822549f, 0.479874f, 0.65603f, 0.466686f, 0.771283f, 0.549574f, 0.949751f, 0.402474f, 0.00182143f, 0.0884202f, 0.353422f, 0.44906f, 0.803841f, 0.925841f, 0.923201f, 0.537734f, 0.321972f, 0.377491f, 0.726946f, 0.356182f, 0.478594f, 0.871006f, 0.354972f, 0.629241f, 0.136013f, 0.135282f, 0.917863f, 0.831401f, 0.718899f, 0.307374f, 0.891555f, 0.150281f, 0.468951f, 0.148366f, 0.575577f, 0.716896f, 0.444223f, 0.78969f, 0.93541f, 0.760058f, 0.540905f, 0.964043f, 0.0171063f, 0.39869f, 0.224293f, 0.934343f, 0.365121f, 0.364891f, 0.42817f, 0.235662f, 0.46574f, 0.531042f, 0.621616f, 0.649751f, 0.576603f, 0.0734606f, 0.620751f, 0.127296f, 0.00635519f, 0.305983f, 0.076342f, 0.495677f, 0.562979f, 0.508511f, 0.812624f, 0.307106f, 0.122217f, 0.413897f, 0.409494f, 0.919129f, 0.615194f, 0.375754f, 0.874112f, 0.272596f, 0.936665f, 0.585845f, 0.505604f, 0.888888f, 0.63179f, 0.847612f, 0.236553f, 0.576794f, 0.86346f, 0.607459f, 0.975899f, 0.739587f, 0.388672f, 0.700388f, 0.994525f, 0.609612f, 0.905807f, 0.235086f, 0.0540026f, 0.966042f, 0.270291f, 0.502012f, 0.86695f, 0.164866f, 0.0548146f, 0.238537f, 0.747805f, 0.32025f, 0.0936289f, 0.840122f, 0.111128f, 0.932048f, 0.280194f, 0.120439f, 0.0918159f, 0.0826257f, 0.553689f, 0.244285f, 0.125624f, 0.281038f, 0.654053f, 0.884274f, 0.0580714f, 0.338571f, 0.501211f, 0.645873f, 0.82703f, 0.7876f, 0.812349f, 0.9168f, 0.241476f, 0.537967f, 0.062039f, 0.665578f, 0.547241f, 0.465356f, 0.867855f, 0.521594f, 0.0769235f, 0.0369526f, 0.705496f, 0.71834f, 0.919237f, 0.1668f, 0.685412f, 0.70845f, 0.547079f, 0.682376f, 0.158527f, 0.183392f, 0.969974f, 0.635421f, 0.656028f, 0.793447f, 0.0408104f, 0.757823f, 0.104907f, 0.198083f, 0.902505f, 0.15909f, 0.4763f, 0.342744f, 0.832242f, 0.400666f, 0.643322f, 0.787608f, 0.000399353f, 0.476601f, 0.394971f, 0.0931529f, 0.621979f, 0.736769f, 0.1838f, 0.919627f, 0.465261f, 0.247757f, 0.670256f, 0.144105f, 0.421988f, 0.571865f, 0.936538f, 0.416873f, 0.4175f, 0.475867f, 0.803234f, 0.98123f, 0.249467f, 0.799148f, 0.77949f, 0.999975f, 0.900311f, 0.291606f, 0.00782618f, 0.0601554f, 0.282416f, 0.0800648f, 0.882891f, 0.907917f, 0.661172f, 0.459114f, 0.488762f, 0.537694f, 0.657679f, 0.727417f, 0.349662f, 0.198227f, 0.941466f, 0.271296f, 0.977564f, 0.119668f, 0.604557f, 0.464826f, 0.117033f, 0.843198f, 0.336332f, 0.857577f, 0.163204f, 0.64604f, 0.724511f, 0.3183f, 0.830594f, 0.302087f, 0.152319f, 0.0437645f, 0.0787377f, 0.496651f, 0.154927f, 0.345418f, 0.646263f, 0.613318f, 0.245296f, 0.114565f, 0.533264f, 0.15273f, 0.653966f, 0.395528f, 0.26212f, 0.188835f, 0.68635f, 0.229349f, 0.398208f, 0.9319f, 0.381751f, 0.0209623f, 0.943169f, 0.866172f, 0.155764f, 0.898351f, 0.823702f, 0.0191588f, 0.661247f, 0.931646f, 0.400447f, 0.994346f, 0.341126f, 0.564498f, 0.624447f, 0.158792f, 0.808065f, 0.679964f, 0.485722f, 0.779868f, 0.067149f, 0.388791f, 0.581165f, 0.354829f, 0.85431f, 0.933481f, 0.168851f, 0.000294656f, 0.856926f, 0.997469f, 0.353068f, 0.943656f, 0.384281f, 0.318365f, 0.976918f, 0.137135f, 0.695559f, 0.567548f, 0.241029f, 0.00823528f, 0.93008f, 0.738601f, 0.620383f, 0.166429f, 0.903855f, 0.551089f, 0.83635f, 0.309258f, 0.667892f, 0.0232796f, 0.735321f, 0.546513f, 0.111919f, 0.394206f, 0.904596f, 0.00708398f, 0.32197f, 0.15307f, 0.460674f, 0.546714f, 0.71124f, 0.880599f, 0.149789f, 0.161291f, 0.393216f, 0.266991f, 0.488378f, 0.703033f, 0.48592f, 0.740042f, 0.434032f, 0.698467f, 0.263984f, 0.0416684f, 0.977174f, 0.383117f, 0.221453f, 0.899662f, 0.807155f, 0.462059f, 0.888809f, 0.623808f, 0.0997352f, 0.433326f, 0.661246f, 0.343671f, 0.291103f, 0.990272f, 0.825014f, 0.745993f, 0.523319f, 0.472344f, 0.0555014f, 0.431283f, 0.493758f, 0.998934f, 0.2667f, 0.970814f, 0.872602f, 0.446468f, 0.871257f, 0.0794379f, 0.155252f, 0.82933f, 0.574495f, 0.585308f, 0.581221f, 0.220756f, 0.281271f, 0.817061f, 0.656363f, 0.288968f, 0.945296f, 0.378223f, 0.990441f, 0.585566f, 0.358747f, 0.709879f, 0.83303f, 0.0129373f, 0.971915f, 0.656242f, 0.353935f, 0.953862f, 0.285984f, 0.478817f, 0.450383f, 0.251035f, 0.695874f, 0.0156363f, 0.991913f, 0.0198609f, 0.537361f, 0.860761f, 0.673861f, 0.373493f, 0.602062f, 0.0114897f, 0.287357f, 0.265764f, 0.349716f, 0.554349f, 0.00616973f, 0.970814f, 0.837191f, 0.643539f, 0.112861f, 0.184371f, 0.0154453f, 0.72955f, 0.0828188f, 0.845026f, 0.0601916f, 0.880928f, 0.283457f, 0.175913f, 0.936213f, 0.0927206f, 0.35249f, 0.735381f, 0.969044f, 0.37677f, 0.228734f, 0.496109f, 0.637784f, 0.00295316f, 0.841655f, 0.975194f, 0.489921f, 0.876785f, 0.752131f, 0.876938f, 0.753426f, 0.531065f, 0.0916247f, 0.178488f, 0.728463f, 0.142101f, 0.910096f, 0.674422f, 0.681664f, 0.740674f, 0.0603205f, 0.628937f, 0.76967f, 0.518407f, 0.609922f, 0.501698f, 0.539959f, 0.278785f, 0.211401f, 0.80414f, 0.891716f, 0.262146f, 0.0971195f, 0.380371f, 0.546597f, 0.0837777f, 0.930768f, 0.229421f, 0.875001f, 0.445601f, 0.872772f, 0.958337f, 0.78924f, 0.443299f, 0.823673f, 0.00935907f, 0.743904f, 0.235989f, 0.309456f, 0.603649f, 0.148912f, 0.290181f, 0.904612f, 0.610951f, 0.512436f, 0.467655f, 0.845492f, 0.206641f, 0.710138f, 0.0959027f, 0.148078f, 0.863241f, 0.0265704f, 0.478677f, 0.871582f, 0.406062f, 0.374668f, 0.378334f, 0.623243f, 0.472581f, 0.173382f, 0.179565f, 0.945537f, 0.172663f, 0.854806f, 0.440089f, 0.592258f, 0.221576f, 0.309153f, 0.811548f, 0.661643f, 0.215244f, 0.787424f, 0.315975f, 0.845402f, 0.44165f, 0.394172f, 0.296902f, 0.156559f, 0.778107f, 0.20306f, 0.349658f, 0.771635f, 0.862133f, 0.0375458f, 0.511418f, 0.226177f, 0.925131f, 0.711151f, 0.545341f, 0.534673f, 0.186163f, 0.379189f, 0.4613f, 0.108788f, 0.399324f, 0.37091f, 0.96608f, 0.624196f, 0.602313f, 0.00545327f, 0.389537f, 0.0303548f, 0.362548f, 0.593127f, 0.80781f, 0.634135f, 0.03911f, 0.131299f, 0.379449f, 0.0279775f, 0.359845f, 0.731879f, 0.0169809f, 0.170011f, 0.140762f, 0.278804f, 0.0750271f, 0.106302f, 0.59557f, 0.909087f, 0.0572952f, 0.652158f, 0.805364f, 0.175926f, 0.189026f, 0.864383f, 0.786211f, 0.767197f, 0.718582f, 0.153246f, 0.960772f, 0.0481537f, 0.594105f, 0.23968f, 0.46001f, 0.759285f, 0.325942f, 0.305964f, 0.284812f, 0.80936f, 0.600545f, 0.571067f, 0.535677f, 0.373421f, 0.0752662f, 0.757014f, 0.841804f, 0.886108f, 0.249164f, 0.0348715f, 0.883352f, 0.705347f, 0.629279f, 0.196914f, 0.340224f, 0.617199f, 0.390929f, 0.271045f, 0.512861f, 0.900765f, 0.265655f, 0.811987f, 0.647324f, 0.236222f, 0.0818048f, 0.190853f, 0.000218703f, 0.50519f, 0.00105905f, 0.762038f, 0.0207905f, 0.994609f, 0.617184f, 0.873554f, 0.0965242f, 0.713469f, 0.702956f, 0.767263f, 0.228942f, 0.777586f, 0.0391998f, 0.990284f, 0.304829f, 0.308069f, 0.389208f, 0.422205f, 0.264052f, 0.122489f, 0.00340829f, 0.777628f, 0.163683f, 0.650151f, 0.322333f, 0.920432f, 0.79389f, 0.617836f, 0.660512f, 0.830666f, 0.597568f, 0.558382f, 0.671335f, 0.862849f, 0.420052f, 0.461348f, 0.749726f, 0.984223f, 0.60897f, 0.850785f, 0.837481f, 0.856733f, 0.165479f, 0.940752f, 0.7099f, 0.371881f, 0.0919674f, 0.141736f, 0.227378f, 0.200822f, 0.639784f, 0.247916f, 0.572339f, 0.743998f, 0.605198f, 0.0173636f, 0.187632f, 0.405288f, 0.446981f, 0.722107f, 0.435873f, 0.181586f, 0.106386f, 0.0896067f, 0.307722f, 0.219436f, 0.429529f, 0.344989f, 0.362277f, 0.0593035f, 0.763482f, 0.445489f, 0.330653f, 0.364106f, 0.385999f, 0.918634f, 0.132045f, 0.109024f, 0.0785774f, 0.622362f, 0.381878f, 0.0150794f, 0.316541f, 0.0111919f, 0.536969f, 0.598133f, 0.477955f, 0.700706f, 0.789294f, 0.401944f, 0.645036f, 0.384389f, 0.723184f, 0.240664f, 0.357563f, 0.16782f, 0.191381f, 0.15069f, 0.478654f, 0.231836f, 0.923415f, 0.549508f, 0.944393f, 0.499945f, 0.95037f, 0.0860303f, 0.679979f, 0.869618f, 0.435324f, 0.827285f, 0.816131f, 0.913721f, 0.354395f, 0.634003f, 0.509328f, 0.861692f, 0.614431f, 0.200596f, 0.964208f, 0.657615f, 0.311227f, 0.412868f, 0.459556f, 0.389972f, 0.639212f, 0.402353f, 0.696483f, 0.0435619f, 0.285246f, 0.262497f, 0.467145f, 0.236525f, 0.913868f, 0.123966f, 0.873677f, 0.780057f, 0.0459068f, 0.360648f, 0.838724f, 0.409429f, 0.932976f, 0.381423f, 0.307034f, 0.550048f, 0.872205f, 0.56814f, 0.750442f, 0.113688f, 0.370818f, 0.214654f, 0.0508989f, 0.346999f, 0.145708f, 0.283303f, 0.306971f, 0.228532f, 0.11092f, 0.706493f, 0.517462f, 0.936693f, 0.840298f, 0.361782f, 0.477729f, 0.94521f, 0.411169f, 0.995889f, 0.123281f, 0.946468f, 0.804008f, 0.794051f, 0.857532f, 0.313439f, 0.573503f, 0.514412f, 0.750911f, 0.660566f, 0.55739f, 0.97204f, 0.0753414f, 0.954399f, 0.159923f, 0.692097f, 0.203624f, 0.927947f, 0.690131f, 0.251044f, 0.697366f, 0.168819f, 0.673313f, 0.274458f, 0.147431f, 0.332768f, 0.985573f, 0.505472f, 0.397147f, 0.392911f, 0.632329f, 0.868903f, 0.880853f, 0.670591f, 0.628933f, 0.543024f, 0.52413f, 0.820767f, 0.311598f, 0.248859f, 0.742366f, 0.141775f, 0.25742f, 0.0757426f, 0.850661f, 0.0659472f, 0.384148f, 0.420724f, 0.973471f, 0.942875f, 0.722862f, 0.250896f, 0.00551143f, 0.0414477f, 0.600163f, 0.32764f, 0.0839769f, 0.608694f, 0.692732f, 0.940255f, 0.272977f, 0.636382f, 0.0139347f, 0.00104183f, 0.0386415f, 0.971171f, 0.146773f, 0.00540592f, 0.131402f, 0.0815217f, 0.77673f, 0.697122f, 0.934273f, 0.560839f, 0.623937f, 0.158716f, 0.313411f, 0.931876f, 0.0802085f, 0.865537f, 0.114872f, 0.515546f, 0.581057f, 0.0749937f, 0.383747f, 0.873575f, 0.611048f, 0.517091f, 0.417579f, 0.724859f, 0.959788f, 0.0533205f, 0.339808f, 0.0167258f, 0.165728f, 0.411227f, 0.959074f, 0.849294f, 0.336029f, 0.95474f, 0.956261f, 0.393124f, 0.0194744f, 0.000992737f, 0.54519f, 0.701655f, 0.349581f, 0.409216f, 0.131143f, 0.466281f, 0.873485f, 0.166993f, 0.202028f, 0.59162f, 0.852567f, 0.775583f, 0.22694f, 0.11181f, 0.270426f, 0.592845f, 0.0238296f, 0.827968f, 0.214972f, 0.175604f, 0.798684f, 0.13578f, 0.851981f, 0.994326f, 0.373355f, 0.324792f, 0.545002f, 0.710066f, 0.847072f, 0.440287f, 0.50767f, 0.978756f, 0.316187f, 0.162747f, 0.237358f, 0.596382f, 0.204115f, 0.104693f, 0.496969f, 0.192991f, 0.94269f, 0.125823f, 0.424083f, 0.296575f, 0.970382f, 0.766013f, 0.928947f, 0.799516f, 0.641478f, 0.769511f, 0.154549f, 0.56211f, 0.783829f, 0.603426f, 0.336835f, 0.425253f, 0.825161f, 0.775855f, 0.611405f, 0.0330463f, 0.33534f, 0.363623f, 0.656339f, 0.341059f, 0.294683f, 0.072706f, 0.467624f, 0.857905f, 0.586907f, 0.127862f, 0.0958836f, 0.41597f, 0.484593f, 0.375203f, 0.0235657f, 0.898615f, 0.92354f, 0.268047f, 0.217567f, 0.998058f, 0.790891f, 0.264616f, 0.643863f, 0.69957f, 0.224748f, 0.0755962f, 0.35056f, 0.131899f, 0.542324f, 0.368258f, 0.645118f, 0.163377f, 0.714073f, 0.487837f, 0.758985f, 0.57821f, 0.822528f, 0.519542f, 0.841026f, 0.572584f, 0.0756279f, 0.143607f, 0.385603f, 0.728936f, 0.341502f, 0.841468f, 0.753492f, 0.468463f, 0.252173f, 0.346816f, 0.453043f, 0.897406f, 0.455856f, 0.381292f, 0.970106f, 0.712188f, 0.225131f, 0.145392f, 0.192588f, 0.736191f, 0.52139f, 0.49617f, 0.640443f, 0.0726618f, 0.480087f, 0.690714f, 0.282055f, 0.894357f, 0.617277f, 0.152901f, 0.243754f, 0.656954f, 0.406464f, 0.122146f, 0.240153f, 0.256626f, 0.822585f, 0.934248f, 0.506646f, 0.694571f, 0.166801f, 0.635915f, 0.365792f, 0.439549f, 0.444856f, 0.478435f, 0.742428f, 0.275742f, 0.820728f, 0.516879f, 0.198363f, 0.501988f, 0.858141f, 0.539035f, 0.856738f, 0.00251694f, 0.48064f, 0.0702053f, 0.172868f, 0.392388f, 0.106483f, 0.335064f, 0.320851f, 0.803738f, 0.939155f, 0.235864f, 0.468474f, 0.462578f, 0.29897f, 0.494682f, 0.965463f, 0.424026f, 0.385577f, 0.813073f, 0.215964f, 0.849215f, 0.0119733f, 0.587684f, 0.28297f, 0.878928f, 0.3545f, 0.839369f, 0.211762f, 0.505819f, 0.390852f, 0.754333f, 0.627557f, 0.514172f, 0.47467f, 0.494604f, 0.390526f, 0.0615872f, 0.687667f, 0.28645f, 0.00341233f, 0.514379f, 0.453768f, 0.352923f, 0.548501f, 0.803326f, 0.355522f, 0.969599f, 0.323054f, 0.0563699f, 0.649562f, 0.847051f, 0.414793f, 0.296222f, 0.0415952f, 0.561045f, 0.663737f, 0.73908f, 0.344458f, 0.38393f, 0.538131f, 0.564966f, 0.80075f, 0.0590656f, 0.339149f, 0.122435f, 0.52556f, 0.928764f, 0.0608846f, 0.747374f, 0.716633f, 0.957798f, 0.818284f, 0.277545f, 0.465612f, 0.569795f, 0.598696f, 0.251668f, 0.0703928f, 0.499936f, 0.41683f, 0.822097f, 0.998107f, 0.134309f, 0.155362f, 0.424333f, 0.971144f, 0.135916f, 0.137756f, 0.855301f, 0.950257f, 0.526271f, 0.230157f, 0.195093f, 0.071293f, 0.368317f, 0.148256f, 0.0478854f, 0.820473f, 0.390425f, 0.868324f, 0.581325f, 0.798427f, 0.681233f, 0.649855f, 0.461053f, 0.449711f, 0.452545f, 0.351996f, 0.117592f, 0.259018f, 0.696514f, 0.173728f, 0.651144f, 0.99512f, 0.226474f, 0.499346f, 0.724982f, 0.812642f, 0.786676f, 0.258136f, 0.121056f, 0.70422f, 0.354921f, 0.340765f, 0.740536f, 0.588562f, 0.822997f, 0.231297f, 0.149709f, 0.990806f, 0.868476f, 0.296367f, 0.396294f, 0.0670195f, 0.950553f, 0.638583f, 0.266305f, 0.842912f, 0.703177f, 0.422618f, 0.911208f, 0.939006f, 0.957994f, 0.109891f, 0.877659f, 0.609161f, 0.177602f, 0.267662f, 0.111445f, 0.98173f, 0.947085f, 0.437708f, 0.947995f, 0.458174f, 0.339516f, 0.151839f, 0.987987f, 0.477754f, 0.53734f, 0.865415f, 0.287151f, 0.826549f, 0.877143f, 0.263663f, 0.178255f, 0.291243f, 0.598879f, 0.959213f, 0.723151f, 0.225439f, 0.376546f, 0.615932f, 0.251752f, 0.400445f, 0.633658f, 0.958621f, 0.702791f, 0.954957f, 0.318743f, 0.459994f, 0.257323f, 0.754593f, 0.471568f, 0.511838f, 0.742679f, 0.658338f, 0.630268f, 0.727203f, 0.160336f, 0.196f, 0.751544f, 0.938162f, 0.567098f, 0.949888f, 0.355567f, 0.965457f, 0.0857119f, 0.486897f, 0.278068f, 0.548048f, 0.224767f, 0.0499265f, 0.0183716f, 0.909204f, 0.528779f, 0.476961f, 0.50481f, 0.0480282f, 0.388792f, 0.362907f, 0.469301f, 0.541633f, 0.880414f, 0.184411f, 0.441109f, 0.657236f, 0.728948f, 0.264312f, 0.640115f, 0.0896601f, 0.298694f, 0.436818f, 0.962136f, 0.744225f, 0.488834f, 0.95336f, 0.192223f, 0.484707f, 0.945129f, 0.44818f, 0.605894f, 0.601704f, 0.617095f, 0.39637f, 0.759154f, 0.718362f, 0.704336f, 0.474691f, 0.117038f, 0.376634f, 0.371886f, 0.860787f, 0.421998f, 0.317667f, 0.23051f, 0.681704f, 0.0047523f, 0.439035f, 0.547683f, 0.745078f, 0.282497f, 0.608041f, 0.988396f, 0.647564f, 0.51635f, 0.374832f, 0.817182f, 0.449299f, 0.256153f, 0.858f, 0.898385f, 0.311486f, 0.823174f, 0.40091f, 0.134722f, 0.305494f, 0.564294f, 0.898109f, 0.0811435f, 0.615287f, 0.190389f, 0.239776f, 0.0787815f, 0.833256f, 0.714881f, 0.994731f, 0.241663f, 0.772977f, 0.111288f, 0.493099f, 0.792154f, 0.00464981f, 0.852142f, 0.667936f, 0.336471f, 0.673554f, 0.22382f, 0.889906f, 0.0776155f, 0.523798f, 0.76821f, 0.143542f, 0.797831f, 0.40701f, 0.520776f, 0.382292f, 0.712893f, 0.2759f, 0.191533f, 0.835125f, 0.0941685f, 0.162417f, 0.635805f, 0.383042f, 0.971267f, 0.0176181f, 0.246271f, 0.700082f, 0.141054f, 0.182837f, 0.0250806f, 0.176226f, 0.49263f, 0.559441f, 0.187575f, 0.292103f, 0.92846f, 0.789409f, 0.393551f, 0.377547f, 0.947155f, 0.128638f, 0.452715f, 0.0434053f, 0.863882f, 0.642877f, 0.950036f, 0.617336f, 0.722055f, 0.193565f, 0.799629f, 0.437422f, 0.351018f, 0.773917f, 0.995013f, 0.18258f, 0.934327f, 0.198648f, 0.119767f, 0.584644f, 0.590204f, 0.7835f, 0.232693f, 0.577164f, 0.732372f, 0.446173f, 0.306383f, 0.00327525f, 0.816126f, 0.282531f, 0.134947f, 0.289544f, 0.718327f, 0.907322f, 0.254399f, 0.621861f, 0.314335f, 0.375737f, 0.0506785f, 0.313753f, 0.931691f, 0.0180866f, 0.83853f, 0.81125f, 0.971104f, 0.145964f, 0.396113f, 0.524393f, 0.970057f, 0.325058f, 0.406099f, 0.540443f, 0.298112f, 0.958321f, 0.729839f, 0.248967f, 0.8588f, 0.487625f, 0.455911f, 0.845357f, 0.00339663f, 0.560143f, 0.949738f, 0.923877f, 0.845575f, 0.978285f, 0.984827f, 0.96773f, 0.552703f, 0.729922f, 0.845661f, 0.513045f, 0.806496f, 0.648893f, 0.162614f, 0.0328184f, 0.75913f, 0.156401f, 0.449324f, 0.67392f, 0.0152599f, 0.261176f, 0.353996f, 0.899338f, 0.496926f, 0.464873f, 0.049658f, 0.967735f, 0.425144f, 0.899519f, 0.570731f, 0.286559f, 0.380081f, 0.476342f, 0.704329f, 0.171593f, 0.628955f, 0.477934f, 0.965496f, 0.152881f, 0.207124f, 0.502824f, 0.944706f, 0.74156f, 0.256649f, 0.0892003f, 0.0853848f, 0.728572f, 0.450564f, 0.953785f, 0.0167663f, 0.309596f, 0.901346f, 0.864796f, 0.200647f, 0.0863206f, 0.167901f, 0.717276f, 0.480477f, 0.670538f, 0.682435f, 0.0977151f, 0.0338763f, 0.0147863f, 0.661508f, 0.904189f, 0.648901f, 0.956698f, 0.41554f, 0.172787f, 0.595283f, 0.431342f, 0.293568f, 0.785942f, 0.919609f, 0.166602f, 0.320775f, 0.528073f, 0.0990903f, 0.265096f, 0.438566f, 0.547424f, 0.576834f, 0.928281f, 0.901388f, 0.376757f, 0.0205771f, 0.904413f, 0.584102f, 0.206187f, 0.590228f, 0.182499f, 0.292812f, 0.526085f, 0.899114f, 0.335858f, 0.875331f, 0.655488f, 0.63314f, 0.464719f, 0.269843f, 0.887705f, 0.373332f, 0.563933f, 0.0850486f, 0.920482f, 0.845155f, 0.129019f, 0.401493f, 0.833988f, 0.0971413f, 0.440951f, 0.806517f, 0.117265f, 0.485826f, 0.24519f, 0.842618f, 0.771493f, 0.619761f, 0.476138f, 0.61296f, 0.378665f, 0.255981f, 0.747436f, 0.0223136f, 0.664901f, 0.797449f, 0.853001f, 0.978497f, 0.530371f, 0.50038f, 0.152446f, 0.577182f, 0.817145f, 0.667901f, 0.865757f, 0.0738946f, 0.0579322f, 0.564019f, 0.903349f, 0.105812f, 0.365451f, 0.234994f, 0.516525f, 0.926631f, 0.662471f, 0.505573f, 0.690623f, 0.684882f, 0.123012f, 0.411239f, 0.565191f, 0.854881f, 0.0537899f, 0.892327f, 0.69524f, 0.282411f, 0.22138f, 0.838472f, 0.647229f, 0.69415f, 0.593122f, 0.711694f, 0.333028f, 0.292645f, 0.471287f, 0.873539f, 0.112766f, 0.0980646f, 0.550198f, 0.0688095f, 0.287355f, 0.250152f, 0.424834f, 0.542063f, 0.82079f, 0.295398f, 0.332226f, 0.873103f, 0.542578f, 0.796689f, 0.461834f, 0.426734f, 0.13495f, 0.0356655f, 0.992334f, 0.906661f, 0.306737f, 0.194348f, 0.943622f, 0.685089f, 0.924932f, 0.718253f, 0.73489f, 0.0170687f, 0.787715f, 0.860696f, 0.351521f, 0.208491f, 0.697224f, 0.747865f, 0.635574f, 0.379693f, 0.837117f, 0.710662f, 0.00432677f, 0.229939f, 0.867585f, 0.358378f, 0.330032f, 0.733357f, 0.467798f, 0.782565f, 0.365293f, 0.2413f, 0.57351f, 0.770883f, 0.392699f, 0.383293f, 0.308602f, 0.960606f, 0.271709f, 0.512113f, 0.914453f, 0.66306f, 0.151019f, 0.637687f, 0.163423f, 0.534973f, 0.483551f, 0.921052f, 0.410297f, 0.0939397f, 0.508608f, 0.985296f, 0.890239f, 0.732254f, 0.699869f, 0.350539f, 0.832559f, 0.533377f, 0.0323833f, 0.982445f, 0.197072f, 0.538365f, 0.0025993f, 0.163348f, 0.802389f, 0.719949f, 0.449735f, 0.532396f, 0.574884f, 0.2336f, 0.782294f, 0.738726f, 0.75876f, 0.829218f, 0.0187037f, 0.617774f, 0.709808f, 0.889014f, 0.796174f, 0.717802f, 0.585036f, 0.603948f, 0.627945f, 0.969691f, 0.926295f, 0.722668f, 0.951171f, 0.27665f, 0.179878f, 0.833592f, 0.159347f, 0.804025f, 0.633766f, 0.316839f, 0.534361f, 0.0940644f, 0.407393f, 0.400498f, 0.766562f, 0.172892f, 0.209141f, 0.759968f, 0.577934f, 0.854032f, 0.573314f, 0.244756f, 0.282187f, 0.912426f, 0.989598f, 0.875222f, 0.681764f, 0.47806f, 0.160706f, 0.591462f, 0.66708f, 0.054528f, 0.581186f, 0.816524f, 0.760334f, 0.215596f, 0.0671788f, 0.602943f, 0.468351f, 0.777716f, 0.412426f, 0.69171f, 0.267339f, 0.625768f, 0.617816f, 0.0703638f, 0.751811f, 0.738653f, 0.0221117f, 0.849286f, 0.823695f, 0.637441f, 0.31406f, 0.607907f, 0.51686f, 0.943545f, 0.679253f, 0.0307176f, 0.862303f, 0.0419296f, 0.502102f, 0.491889f, 0.726784f, 0.250574f, 0.539501f, 0.790374f, 0.996973f, 0.392414f, 0.189252f, 0.14281f, 0.178591f, 0.462199f, 0.27548f, 0.559133f, 0.187847f, 0.145499f, 0.699106f, 0.313703f, 0.2329f, 0.24947f, 0.508881f, 0.467391f, 0.867357f, 0.0583741f, 0.668682f, 0.188203f, 0.302144f, 0.437842f, 0.835275f, 0.951587f, 0.853957f, 0.662607f, 0.341119f, 0.778616f, 0.0206911f, 0.172403f, 0.574422f, 0.120645f, 0.307521f, 0.65196f, 0.188896f, 0.387661f, 0.766046f, 0.892257f, 0.955558f, 0.316392f, 0.136856f, 0.333727f, 0.986896f, 0.608826f, 0.970487f, 0.676149f, 0.288542f, 0.25434f, 0.961327f, 0.51671f, 0.809868f, 0.651024f, 0.209427f, 0.828585f, 0.785459f, 0.236438f, 0.453734f, 0.599005f, 0.298851f, 0.582575f, 0.989621f, 0.395471f, 0.893503f, 0.38376f, 0.536306f, 0.415724f, 0.861456f, 0.3366f, 0.0312893f, 0.190346f, 0.396119f, 0.697469f, 0.994934f, 0.128262f, 0.419153f, 0.671446f, 0.0398925f, 0.876904f, 0.62958f, 0.944477f, 0.619219f, 0.201925f, 0.80216f, 0.86131f, 0.105909f, 0.623381f, 0.549769f, 0.211667f, 0.968921f, 0.782577f, 0.680614f, 0.00695279f, 0.433972f, 0.0643976f, 0.339294f, 0.429445f, 0.0375942f, 0.824152f, 0.0257821f, 0.94974f, 0.429498f, 0.263656f, 0.223601f, 0.786552f, 0.182119f, 0.406113f, 0.129883f, 0.0898836f, 0.933753f, 0.217537f, 0.29338f, 0.268674f, 0.327087f, 0.454318f, 0.276973f, 0.646845f, 0.87259f, 0.413006f, 0.988415f, 0.720624f, 0.804014f, 0.847937f, 0.176427f, 0.964545f, 0.190957f, 0.869556f, 0.790345f, 0.43425f, 0.177486f, 0.448294f, 0.845207f, 0.578581f, 0.505744f, 0.461785f, 0.831601f, 0.447018f, 0.197002f, 0.265265f, 0.225108f, 0.0833506f, 0.395207f, 0.553318f, 0.548843f, 0.932681f, 0.864908f, 0.460695f, 0.959091f, 0.926696f, 0.779957f, 0.536611f, 0.636922f, 0.40484f, 0.200688f, 0.217747f, 0.0599353f, 0.779543f, 0.57964f, 0.0783717f, 0.541801f, 0.0562739f, 0.564573f, 0.826421f, 0.264191f, 0.320995f, 0.26849f, 0.954359f, 0.869601f, 0.0734364f, 0.519532f, 0.499068f, 0.456206f, 0.886625f, 0.825898f, 0.444915f, 0.680324f, 0.0939236f, 0.356988f, 0.448587f, 0.718458f, 0.234452f, 0.36613f, 0.282905f, 0.0892427f, 0.560307f, 0.0178707f, 0.431653f, 0.367383f, 0.370834f, 0.532423f, 0.490484f, 0.2183f, 0.935119f, 0.818088f, 0.940187f, 0.278941f, 0.443191f, 0.478899f, 0.107819f, 0.958645f, 0.348994f, 0.108032f, 0.890401f, 0.213198f, 0.0298222f, 0.428392f, 0.875241f, 0.225698f, 0.795573f, 0.217211f, 0.0181693f, 0.102138f, 0.670195f, 0.833803f, 0.249095f, 0.0644382f, 0.183264f, 0.055327f, 0.34412f, 0.916767f, 0.619247f, 0.931403f, 0.77136f, 0.839997f, 0.876792f, 0.090668f, 0.207728f, 0.994736f, 0.0285567f, 0.0944899f, 0.50845f, 0.156887f, 0.0141242f, 0.302653f, 0.597414f, 0.928757f, 0.372808f, 0.835983f, 0.604138f, 0.530675f, 0.692292f, 0.299225f, 0.407303f, 0.17708f, 0.581985f, 0.516017f, 0.966934f, 0.160866f, 0.430206f, 0.834298f, 0.615807f, 0.154265f, 0.0234658f, 0.0651562f, 0.828005f, 0.252543f, 0.85958f, 0.489373f, 0.0177778f, 0.207443f, 0.751971f, 0.843683f, 0.406198f, 0.736118f, 0.65596f, 0.621032f, 0.754299f, 0.758707f, 0.0285996f, 0.698346f, 0.090256f, 0.65823f, 0.387805f, 0.520675f, 0.638833f, 0.144534f, 0.0137919f, 0.173456f, 0.00782472f, 0.399208f, 0.464339f, 0.0133367f, 0.92029f, 0.50911f, 0.78332f, 0.0126389f, 0.944962f, 0.699823f, 0.863908f, 0.628106f, 0.371214f, 0.440421f, 0.934672f, 0.0256003f, 0.81409f, 0.803173f, 0.632829f, 0.677038f, 0.700546f, 0.933585f, 0.569808f, 0.788691f, 0.55276f, 0.794442f, 0.451989f, 0.334972f, 0.181076f, 0.0991012f, 0.562334f, 0.560958f, 0.932214f, 0.244108f, 0.966396f, 0.815003f, 0.210763f, 0.918568f, 0.253558f, 0.133928f, 0.752249f, 0.990286f, 0.984486f, 0.725318f, 0.470781f, 0.242256f, 0.440868f, 0.416847f, 0.884916f, 0.716285f, 0.863908f, 0.15809f, 0.880761f, 0.433683f, 0.633511f, 0.552547f, 0.111377f, 0.151011f, 0.615799f, 0.522434f, 0.539279f, 0.265123f, 0.407127f, 0.853945f, 0.41649f, 0.682944f, 0.354664f, 0.222762f, 0.128292f, 0.725612f, 0.190819f, 0.945783f, 0.424301f, 0.827427f, 0.242931f, 0.267628f, 0.460562f, 0.876041f, 0.42958f, 0.505738f, 0.460771f, 0.268692f, 0.374312f, 0.485857f, 0.42256f, 0.68238f, 0.378584f, 0.38224f, 0.250217f, 0.657907f, 0.760952f, 0.427835f, 0.668097f, 0.814126f, 0.680257f, 0.958357f, 0.556202f, 0.831808f, 0.461898f, 0.0379653f, 0.030702f, 0.583122f, 0.528302f, 0.899793f, 0.289771f, 0.912226f, 0.0366062f, 0.69732f, 0.545396f, 0.864096f, 0.859456f, 0.338904f, 0.336195f, 0.932924f, 0.2239f, 0.241701f, 0.551533f, 0.543849f, 0.0833371f, 0.552945f, 0.130344f, 0.887318f, 0.0753924f, 0.748455f, 0.857814f, 0.162206f, 0.77325f, 0.107328f, 0.223164f, 0.323524f, 0.836608f, 0.927458f, 0.136319f, 0.178003f, 0.465426f, 0.68789f, 0.742066f, 0.365342f, 0.665927f, 0.126526f, 0.622908f, 0.205135f, 0.841494f, 0.910807f, 0.269525f, 0.166037f, 0.604826f, 0.877741f, 0.339587f, 0.106844f, 0.224326f, 0.173063f, 0.313145f, 0.599577f, 0.79985f, 0.409741f, 0.74418f, 0.16675f, 0.683554f, 0.392779f, 0.619441f, 0.471352f, 0.834384f, 0.614718f, 0.872245f, 0.234561f, 0.326976f, 0.314452f, 0.88116f, 0.0115019f, 0.699577f, 0.283755f, 0.820075f, 0.142817f, 0.296488f, 0.109529f, 0.0916776f, 0.483715f, 0.0887671f, 0.28953f, 0.508167f, 0.62469f, 0.161046f, 0.495873f, 0.732922f, 0.380595f, 0.883255f, 0.0997583f, 0.827542f, 0.551911f, 0.708546f, 0.233081f, 0.396506f, 0.562756f, 0.237265f, 0.519324f, 0.450772f, 0.460418f, 0.978431f, 0.813139f, 0.970238f, 0.548929f, 0.367882f, 0.397659f, 0.453543f, 0.259446f, 0.345573f, 0.343475f, 0.301507f, 0.709123f, 0.375367f, 0.618997f, 0.483399f, 0.999581f, 0.91137f, 0.000650729f, 0.728203f, 0.199909f, 0.541405f, 0.366193f, 0.591566f, 0.74248f, 0.847444f, 0.1818f, 0.368208f, 0.318079f, 0.587773f, 0.971922f, 0.135016f, 0.277245f, 0.755322f, 0.782739f, 0.901244f, 0.168333f, 0.963281f, 0.303083f, 0.279084f, 0.69983f, 0.135039f, 0.750534f, 0.315619f, 0.114457f, 0.76844f, 0.431874f, 0.494145f, 0.0207518f, 0.253657f, 0.80844f, 0.280064f, 0.433059f, 0.688001f, 0.445098f, 0.733557f, 0.561655f, 0.855851f, 0.386489f, 0.637624f, 0.168769f, 0.804168f, 0.415863f, 0.660961f, 0.729496f, 0.847697f, 0.412275f, 0.346749f, 0.653185f, 0.501166f, 0.0999276f, 0.0776018f, 0.803858f, 0.137053f, 0.396814f, 0.264231f, 0.0674385f, 0.445475f, 0.980143f, 0.210441f, 0.243263f, 0.216573f, 0.958617f, 0.694359f, 0.148892f, 0.229197f, 0.335392f, 0.423843f, 0.178855f, 0.415413f, 0.0358149f, 0.579731f, 0.700792f, 0.914333f, 0.85334f, 0.0785062f, 0.0482632f, 0.963727f, 0.170779f, 0.648669f, 0.362862f, 0.835782f, 0.369952f, 0.385661f, 0.504311f, 0.916275f, 0.602668f, 0.663616f, 0.513957f, 0.873483f, 0.495562f, 0.33248f, 0.649582f, 0.0375281f, 0.285771f, 0.223602f, 0.415968f, 0.0469861f, 0.311527f, 0.589832f, 0.696851f, 0.507855f, 0.223775f, 0.0416614f, 0.619463f, 0.495802f, 0.879608f, 0.278164f, 0.914285f, 0.236087f, 0.736617f, 0.88685f, 0.510509f, 0.496804f, 0.473422f, 0.408415f, 0.603875f, 0.0797587f, 0.768391f, 0.593124f, 0.546585f, 0.262834f, 0.281042f, 0.459584f, 0.173093f, 0.602033f, 0.30103f, 0.165304f, 0.0213275f, 0.980875f, 0.120081f, 0.342542f, 0.0518216f, 0.731458f, 0.191318f, 0.773785f, 0.24661f, 0.217768f, 0.612652f, 0.973506f, 0.273143f, 0.914329f, 0.837165f, 0.801158f, 0.671485f, 0.00732313f, 0.481713f, 0.428169f, 0.241406f, 0.772142f, 0.259145f, 0.62506f, 0.143326f, 0.87671f, 0.302519f, 0.97961f, 0.540028f, 0.193667f, 0.140499f, 0.938559f, 0.162144f, 0.437091f, 0.261038f, 0.458394f, 0.562715f, 0.588731f, 0.850573f, 0.702459f, 0.36892f, 0.750344f, 0.840476f, 0.907573f, 0.412686f, 0.782853f, 0.70378f, 0.174329f, 0.0954385f, 0.16047f, 0.869342f, 0.0441803f, 0.18642f, 0.668284f, 0.264554f, 0.385327f, 0.854955f, 0.819063f, 0.471354f, 0.678031f, 0.376733f, 0.0982298f, 0.438167f, 0.293879f, 0.92393f, 0.69696f, 0.725893f, 0.317032f, 0.203411f, 0.65363f, 0.49608f, 0.658154f, 0.842702f, 0.313104f, 0.863964f, 0.855449f, 0.218583f, 0.623755f, 0.0426666f, 0.952675f, 0.652668f, 0.979785f, 0.261897f, 0.632642f, 0.386615f, 0.773058f, 0.815306f, 0.133311f, 0.922995f, 0.751383f, 0.271896f, 0.853526f, 0.299945f, 0.872168f, 0.43469f, 0.76393f, 0.104357f, 0.252107f, 0.178744f, 0.0254154f, 0.0121536f, 0.566338f, 0.800853f, 0.208862f, 0.483347f, 0.334656f, 0.107808f, 0.281412f, 0.500319f, 0.927732f, 0.699393f, 0.650721f, 0.386036f, 0.312013f, 0.249287f, 0.0132821f, 0.896976f, 0.337049f, 0.693979f, 0.807182f, 0.948462f, 0.208668f, 0.720983f, 0.225851f, 0.918379f, 0.728314f, 0.677805f, 0.171668f, 0.64968f, 0.922009f, 0.484325f, 0.647646f, 0.835169f, 0.302394f, 0.278037f, 0.187053f, 0.450665f, 0.851355f, 0.895482f, 0.536796f, 0.915332f, 0.982553f, 0.939195f, 0.908274f, 0.640734f, 0.526159f, 0.987063f, 0.561802f, 0.432246f, 0.961466f, 0.608891f, 0.261753f, 0.57967f, 0.380521f, 0.0978926f, 0.133828f, 0.125992f, 0.589354f, 0.413223f, 0.162819f, 0.872708f, 0.364546f, 0.638731f, 0.884653f, 0.622718f, 0.0430716f, 0.0603181f, 0.499674f, 0.0564261f, 0.939255f, 0.938424f, 0.0362947f, 0.880209f, 0.979f, 0.585052f, 0.3654f, 0.280154f, 0.683502f, 0.68845f, 0.554585f, 0.745996f, 0.733725f, 0.529199f, 0.441838f, 0.634349f, 0.900637f, 0.812677f, 0.211902f, 0.826391f, 0.792779f, 0.769211f, 0.848819f, 0.720352f, 0.74029f, 0.265414f, 0.0206869f, 0.902535f, 0.817578f, 0.533248f, 0.492245f, 0.802497f, 0.937129f, 0.629572f, 0.322584f, 0.738333f, 0.757755f, 0.575196f, 0.379416f, 0.672236f, 0.712214f, 0.876568f, 0.821622f, 0.451208f, 0.457679f, 0.630899f, 0.965935f, 0.181881f, 0.32953f, 0.248688f, 0.605226f, 0.696451f, 0.503154f, 0.911905f, 0.705517f, 0.855191f, 0.928214f, 0.41761f, 0.616507f, 0.5642f, 0.780828f, 0.966177f, 0.648054f, 0.733489f, 0.797892f, 0.935768f, 0.774451f, 0.337367f, 0.0918411f, 0.639816f, 0.200888f, 0.0232862f, 0.392057f, 0.541138f, 0.868435f, 0.0935901f, 0.373805f, 0.0292326f, 0.632368f, 0.469387f, 0.132166f, 0.577847f, 0.00155223f, 0.0252468f, 0.585503f, 0.743681f, 0.228514f, 0.401641f, 0.118074f, 0.0817157f, 0.52752f, 0.0696408f, 0.470273f, 0.490671f, 0.970841f, 0.458247f, 0.635328f, 0.00276626f, 0.316413f, 0.419444f, 0.292113f, 0.823948f, 0.0268925f, 0.618504f, 0.639367f, 0.365153f, 0.449928f, 0.556959f, 0.71793f, 0.0204331f, 0.412344f, 0.87819f, 0.327939f, 0.312845f, 0.838894f, 0.566002f, 0.433753f, 0.994723f, 0.640206f, 0.0466234f, 0.710895f, 0.737575f, 0.787048f, 0.747796f, 0.0245469f, 0.116564f, 0.865837f, 0.0551101f, 0.579056f, 0.339799f, 0.20624f, 0.158054f, 0.489429f, 0.533097f, 0.994276f, 0.760484f, 0.0930767f, 0.119221f, 0.373164f, 0.115098f, 0.390313f, 0.525111f, 0.258839f, 0.888985f, 0.108926f, 0.878784f, 0.879588f, 0.5868f, 0.596448f, 0.281762f, 0.496528f, 0.404005f, 0.914844f, 0.89073f, 0.563902f, 0.553464f, 0.182609f, 0.784416f, 0.677185f, 0.0168709f, 0.214446f, 0.0308244f, 0.00672971f, 0.233529f, 0.28171f, 0.522376f, 0.352466f, 0.919316f, 0.828716f, 0.930794f, 0.779163f, 0.794395f, 0.690658f, 0.854013f, 0.915137f, 0.364633f, 0.341119f, 0.0224899f, 0.65358f, 0.215617f, 0.0267426f, 0.9482f, 0.320538f, 0.701167f, 0.343636f, 0.400683f, 0.74544f, 0.283001f, 0.663068f, 0.397258f, 0.380092f, 0.959899f, 0.891996f, 0.539061f, 0.647997f, 0.77335f, 0.449796f, 0.063318f, 0.423011f, 0.850814f, 0.159287f, 0.0083325f, 0.406502f, 0.950196f, 0.365803f, 0.0626204f, 0.287745f, 0.980158f, 0.286673f, 0.0085185f, 0.00846485f, 0.80549f, 0.0776918f, 0.299683f, 0.118333f, 0.564421f, 0.138695f, 0.794155f, 0.787339f, 0.650925f, 0.362174f, 0.808774f, 0.429166f, 0.0522014f, 0.64772f, 0.11187f, 0.669222f, 0.876807f, 0.319318f, 0.87249f, 0.926642f, 0.376485f, 0.938455f, 0.102091f, 0.379409f, 0.6545f, 0.265923f, 0.330364f, 0.813973f, 0.388237f, 0.90402f, 0.826352f, 0.552258f, 0.817111f, 0.209886f, 0.266258f, 0.793415f, 0.322234f, 0.720448f, 0.48194f, 0.22206f, 0.477152f, 0.335076f, 0.993003f, 0.493297f, 0.2343f, 0.234164f, 0.988364f, 0.475453f, 0.944354f, 0.572656f, 0.81982f, 0.841225f, 0.300953f, 0.80228f, 0.692862f, 0.45582f, 0.608203f, 0.0223268f, 0.544142f, 0.48409f, 0.883958f, 0.859681f, 0.945984f, 0.776398f, 0.833004f, 0.686266f, 0.353201f, 0.936881f, 0.3648f, 0.728375f, 0.252332f, 0.667343f, 0.620504f, 0.667671f, 0.274578f, 0.798505f, 0.918431f, 0.127858f, 0.450921f, 0.10913f, 0.86227f, 0.495973f, 0.553919f, 0.0476738f, 0.897428f, 0.282044f, 0.0762915f, 0.522753f, 0.36765f, 0.443482f, 0.636019f, 0.698052f, 0.0145264f, 0.304865f, 0.0610866f, 0.998783f, 0.325839f, 0.827785f, 0.179754f, 0.00522982f, 0.542933f, 0.035591f, 0.394302f, 0.966684f, 0.482807f, 0.0839868f, 0.695327f, 0.376071f, 0.721095f, 0.685043f, 0.960016f, 0.223145f, 0.855048f, 0.501232f, 0.0944823f, 0.698887f, 0.85304f, 0.759519f, 0.829787f, 0.803766f, 0.143614f, 0.384703f, 0.0724454f, 0.497892f, 0.162596f, 0.49557f, 0.0117661f, 0.670604f, 0.206836f, 0.591222f, 0.695109f, 0.790669f, 0.110832f, 0.333949f, 0.662575f, 0.0585832f, 0.85838f, 0.735202f, 0.79964f, 0.848775f, 0.461166f, 0.133284f, 0.0752046f, 0.532981f, 0.922539f, 0.972658f, 0.129547f, 0.247307f, 0.833091f, 0.961799f, 0.825765f, 0.477902f, 0.974688f, 0.025077f, 0.44261f, 0.190338f, 0.889398f, 0.106471f, 0.15423f, 0.565496f, 0.258079f, 0.405506f, 0.637308f, 0.769219f, 0.204806f, 0.96938f, 0.894214f, 0.873387f, 0.207823f, 0.48801f, 0.236858f, 0.763161f, 0.544051f, 0.613768f, 0.428753f, 0.554566f, 0.656197f, 0.297499f, 0.478763f, 0.0976514f, 0.59537f, 0.579078f, 0.0819789f, 0.654088f, 0.925821f, 0.525639f, 0.484559f, 0.619819f, 0.847242f, 0.771479f, 0.0087186f, 0.455569f, 0.214935f, 0.911306f, 0.632993f, 0.832396f, 0.928761f, 0.674419f, 0.761091f, 0.812115f, 0.895513f, 0.87407f, 0.877751f, 0.207037f, 0.215039f, 0.916875f, 0.326794f, 0.262319f, 0.0425866f, 0.175073f, 0.684167f, 0.724021f, 0.844524f, 0.618179f, 0.849266f, 0.9983f, 0.732457f, 0.457777f, 0.39765f, 0.580307f, 0.35046f, 0.805789f, 0.346821f, 0.645252f, 0.639165f, 0.460699f, 0.469279f, 0.666495f, 0.381163f, 0.117864f, 0.811299f, 0.0922506f, 0.171651f, 0.820672f, 0.475703f, 0.874998f, 0.24256f, 0.341205f, 0.73704f, 0.457847f, 0.440887f, 0.175341f, 0.807219f, 0.986352f, 0.248882f, 0.954343f, 0.166271f, 0.775489f, 0.622371f, 0.372043f, 0.191437f, 0.515043f, 0.344614f, 0.165677f, 0.411226f, 0.359628f, 0.608428f, 0.311358f, 0.0926872f, 0.278223f, 0.406027f, 0.277742f, 0.303786f, 0.359265f, 0.759172f, 0.728643f, 0.815346f, 0.444012f, 0.525172f, 0.266253f, 0.181554f, 0.113638f, 0.371597f, 0.526024f, 0.939392f, 0.582793f, 0.699262f, 0.193345f, 0.440089f, 0.0957679f, 0.65982f, 0.83131f, 0.121418f, 0.954625f, 0.124645f, 0.678378f, 0.876522f, 0.468095f, 0.542474f, 0.533214f, 0.866372f, 0.780074f, 0.989091f, 0.431179f, 0.565459f, 0.216981f, 0.0853234f, 0.838334f, 0.864885f, 0.687704f, 0.967232f, 0.582386f, 0.139376f, 0.524288f, 0.882608f, 0.751836f, 0.584906f, 0.280211f, 0.422397f, 0.0946807f, 0.647679f, 0.455189f, 0.0861948f, 0.733463f, 0.978775f, 0.018109f, 0.511789f, 0.905584f, 0.152733f, 0.760864f, 0.529059f, 0.680823f, 0.652798f, 0.75089f, 0.185731f, 0.398219f, 0.0925079f, 0.455324f, 0.925171f, 0.278169f, 0.0289997f, 0.00579375f, 0.545702f, 0.827669f, 0.846042f, 0.112142f, 0.830135f, 0.0707057f, 0.823006f, 0.58776f, 0.837205f, 0.841997f, 0.969016f, 0.623585f, 0.708216f, 0.45952f, 0.886268f, 0.563773f, 0.184274f, 0.166326f, 0.813176f, 0.745364f, 0.0702331f, 0.4599f, 0.429664f, 0.364169f, 0.283908f, 0.839553f, 0.149715f, 0.064362f, 0.666133f, 0.542712f, 0.0985222f, 0.805338f, 0.372754f, 0.62279f, 0.208252f, 0.31167f, 0.662493f, 0.741929f, 0.60662f, 0.303545f, 0.873878f, 0.832027f, 0.741637f, 0.780812f, 0.985012f, 0.138755f, 0.170565f, 0.831754f, 0.333998f, 0.296058f, 0.515891f, 0.163649f, 0.873358f, 0.773499f, 0.99773f, 0.76183f, 0.197894f, 0.351665f, 0.485613f, 0.00191917f, 0.591469f, 0.859371f, 0.683942f, 0.448589f, 0.898636f, 0.938772f, 0.421771f, 0.0206661f, 0.591344f, 0.559504f, 0.347369f, 0.650871f, 0.232122f, 0.646934f, 0.366716f, 0.217148f, 0.0276472f, 0.344373f, 0.086544f, 0.123203f, 0.742502f, 0.232899f, 0.502286f, 0.438192f, 0.0821565f, 0.19761f, 0.272053f, 0.669708f, 0.803645f, 0.436057f, 0.480031f, 0.285902f, 0.347965f, 0.265545f, 0.203791f, 0.0780581f, 0.372543f, 0.468054f, 0.38697f, 0.46109f, 0.227524f, 0.639341f, 0.407162f, 0.292364f, 0.264987f, 0.77532f, 0.335171f, 0.466698f, 0.0218887f, 0.173082f, 0.381662f, 0.19919f, 0.975095f, 0.745291f, 0.730873f, 0.439737f, 0.510066f, 0.847857f, 0.524264f, 0.12422f, 0.316082f, 0.181008f, 0.485218f, 0.0875008f, 0.376509f, 0.120733f, 0.0210153f, 0.412181f, 0.399375f, 0.405339f, 0.778421f, 0.0183537f, 0.109468f, 0.207663f, 0.680579f, 0.199971f, 0.111591f, 0.815966f, 0.711327f, 0.980347f, 0.154883f, 0.524286f, 0.758173f, 0.196185f, 0.596499f, 0.566757f, 0.702571f, 0.12603f, 0.907757f, 0.145578f, 0.827116f, 0.85263f, 0.749245f, 0.377216f, 0.991406f, 0.341737f, 0.65783f, 0.710799f, 0.276245f, 0.21397f, 0.653395f, 0.60759f, 0.428054f, 0.223166f, 0.289404f, 0.779153f, 0.264097f, 0.333161f, 0.518189f, 0.511508f, 0.0301043f, 0.700396f, 0.296287f, 0.0730226f, 0.0626335f, 0.708054f, 0.407603f, 0.0478065f, 0.687654f, 0.970479f, 0.931644f, 0.188487f, 0.749045f, 0.259967f, 0.348934f, 0.915613f, 0.783626f, 0.642778f, 0.30499f, 0.982318f, 0.233114f, 0.439615f, 0.500804f, 0.422079f, 0.834522f, 0.936686f, 0.674656f, 0.750855f, 0.241206f, 0.495153f, 0.706212f, 0.22935f, 0.655109f, 0.274586f, 0.916446f, 0.26678f, 0.69987f, 0.525289f, 0.235553f, 0.724885f, 0.870327f, 0.771253f, 0.545269f, 0.241219f, 0.354546f, 0.324689f, 0.496322f, 0.820226f, 0.794634f, 0.151333f, 0.299279f, 0.730443f, 0.39681f, 0.375833f, 0.506248f, 0.314417f, 0.106419f, 0.309005f, 0.0118986f, 0.352038f, 0.975727f, 0.596796f, 0.050637f, 0.621501f, 0.352225f, 0.222378f, 0.594895f, 0.147632f, 0.35089f, 0.772587f, 0.419115f, 0.897692f, 0.382616f, 0.684076f, 0.0216641f, 0.882061f, 0.563223f, 0.169828f, 0.337242f, 0.180684f, 0.831768f, 0.000880582f, 0.035212f, 0.380242f, 0.321027f, 0.20206f, 0.30052f, 0.0940876f, 0.409633f, 0.12443f, 0.0371241f, 0.169491f, 0.922009f, 0.716664f, 0.963839f, 0.103883f, 0.989453f, 0.22687f, 0.94148f, 0.245776f, 0.659306f, 0.909624f, 0.621806f, 0.264493f, 0.670412f, 0.221511f, 0.79922f, 0.168689f, 0.989254f, 0.130889f, 0.508618f, 0.908252f, 0.975679f, 0.728257f, 0.522825f, 0.0801624f, 0.375765f, 0.0563316f, 0.893081f, 0.542348f, 0.737506f, 0.48611f, 0.984519f, 0.0078226f, 0.81894f, 0.764225f, 0.915142f, 0.579383f, 0.673858f, 0.942977f, 0.55327f, 0.0198962f, 0.727537f, 0.757616f, 0.20476f, 0.795402f, 0.265199f, 0.720311f, 0.29669f, 0.670042f, 0.838673f, 0.0593059f, 0.643605f, 0.270137f, 0.107003f, 0.400765f, 0.340219f, 0.0106881f, 0.346084f, 0.221771f, 0.5477f, 0.145729f, 0.647225f, 0.215053f, 0.142598f, 0.861337f, 0.909449f, 0.510385f, 0.943163f, 0.166127f, 0.633206f, 0.910521f, 0.178354f, 0.92209f, 0.227964f, 0.356388f, 0.128171f, 0.174726f, 0.785485f, 0.575592f, 0.274269f, 0.611314f, 0.751373f, 0.931777f, 0.689917f, 0.738703f, 0.705754f, 0.839984f, 0.087151f, 0.0827527f, 0.135115f, 0.29786f, 0.156464f, 0.360025f, 0.275173f, 0.816818f, 0.175458f, 0.728818f, 0.279461f, 0.146934f, 0.812872f, 0.569866f, 0.0566355f, 0.0806752f, 0.198211f, 0.112924f, 0.48319f, 0.320613f, 0.0158336f, 0.120042f, 0.950126f, 0.0492626f, 0.12184f, 0.379713f, 0.728355f, 0.701685f, 0.953788f, 0.111446f, 0.534288f, 0.460916f, 0.348581f, 0.0491475f, 0.84858f, 0.00138538f, 0.492785f, 0.779054f, 0.994262f, 0.433473f, 0.602259f, 0.0411816f, 0.142509f, 0.804109f, 0.0784028f, 0.807498f, 0.860025f, 0.583898f, 0.214806f, 0.37402f, 0.187868f, 0.383618f, 0.486166f, 0.184232f, 0.706437f, 0.877481f, 0.19742f, 0.7042f, 0.249755f, 0.564731f, 0.474408f, 0.183711f, 0.474954f, 0.381775f, 0.113742f, 0.480437f, 0.982564f, 0.000426251f, 0.206507f, 0.357601f, 0.0764998f, 0.307462f, 0.13654f, 0.723176f, 0.980171f, 0.148159f, 0.587817f, 0.532939f, 0.991298f, 0.881553f, 0.685757f, 0.0848166f, 0.404382f, 0.481173f, 0.0891813f, 0.608265f, 0.373653f, 0.165365f, 0.0949041f, 0.938192f, 0.527496f, 0.689969f, 0.251991f, 0.816745f, 0.537979f, 0.632852f, 0.801855f, 0.51635f, 0.72296f, 0.830555f, 0.280027f, 0.602003f, 0.0849229f, 0.99122f, 0.0768961f, 0.496196f, 0.308519f, 0.100239f, 0.194686f, 0.255449f, 0.492251f, 0.400271f, 0.517834f, 0.414514f, 0.302919f, 0.19172f, 0.842483f, 0.536281f, 0.700811f, 0.0290133f, 0.890229f, 0.413407f, 0.0349808f, 0.500724f, 0.542962f, 0.0994638f, 0.669554f, 0.647204f, 0.423555f, 0.691766f, 0.201164f, 0.330492f, 0.580948f, 0.76759f, 0.745527f, 0.803631f, 0.54167f, 0.2282f, 0.185509f, 0.12553f, 0.229768f, 0.303903f, 0.670466f, 0.801704f, 0.377607f, 0.841936f, 0.381325f, 0.582298f, 0.133827f, 0.519022f, 0.0639882f, 0.31382f, 0.381568f, 0.982314f, 0.55829f, 0.833623f, 0.746109f, 0.630393f, 0.353753f, 0.192484f, 0.945326f, 0.65395f, 0.791256f, 0.155652f, 0.731879f, 0.251792f, 0.403846f, 0.527225f, 0.943291f, 0.459221f, 0.560742f, 0.340407f, 0.224403f, 0.00743414f, 0.762825f, 0.612189f, 0.0859213f, 0.670368f, 0.84152f, 0.756552f, 0.913609f, 0.130314f, 0.344554f, 0.751845f, 0.182745f, 0.64356f, 0.123482f, 0.0696099f, 0.149629f, 0.358217f, 0.293502f, 0.45525f, 0.135931f, 0.157483f, 0.267527f, 0.160255f, 0.245916f, 0.83299f, 0.911332f, 0.816536f, 0.977977f, 0.97271f, 0.163029f, 0.345785f, 0.126773f, 0.815453f, 0.350847f, 0.970734f, 0.392701f, 0.244312f, 0.0199651f, 0.874517f, 0.800012f, 0.476579f, 0.0127928f, 0.378158f, 0.692009f, 0.587867f, 0.281408f, 0.623901f, 0.328944f, 0.541419f, 0.539783f, 0.757558f, 0.148147f, 0.0681028f, 0.85519f, 0.562344f, 0.681205f, 0.416375f, 0.569483f, 0.511124f, 0.230555f, 0.969944f, 0.520844f, 0.555162f, 0.955413f, 0.107302f, 0.691061f, 0.47665f, 0.949219f, 0.237087f, 0.522283f, 0.743928f, 0.425981f, 0.702944f, 0.515884f, 0.8432f, 0.596011f, 0.550869f, 0.695034f, 0.122294f, 0.630313f, 0.246141f, 0.516009f, 0.949877f, 0.165293f, 0.947501f, 0.912248f, 0.169362f, 0.29496f, 0.733054f, 0.500297f, 0.632604f, 0.44588f, 0.740171f, 0.262932f, 0.582571f, 0.227411f, 0.301401f, 0.327583f, 0.522596f, 0.527579f, 0.121228f, 0.00864084f, 0.330013f, 0.165413f, 0.0277039f, 0.706386f, 0.407959f, 0.751436f, 0.378717f, 0.199228f, 0.766191f, 0.184537f, 0.202327f, 0.788221f, 0.55589f, 0.382068f, 0.760043f, 0.432347f, 0.816282f, 0.895474f, 0.107054f, 0.425757f, 0.0939529f, 0.818596f, 0.92217f, 0.88338f, 0.413655f, 0.144898f, 0.123842f, 0.300132f, 0.0172145f, 0.323029f, 0.770783f, 0.338488f, 0.659724f, 0.397907f, 0.841668f, 0.0248078f, 0.560817f, 0.75631f, 0.216071f, 0.945316f, 0.756295f, 0.618953f, 0.293676f, 0.713934f, 0.260252f, 0.599536f, 0.0450698f, 0.992442f, 0.614849f, 0.77318f, 0.216432f, 0.541778f, 0.726992f, 0.295268f, 0.176633f, 0.532288f, 0.313879f, 0.555873f, 0.405705f, 0.153774f, 0.667703f, 0.594061f, 0.0580947f, 0.604919f, 0.588593f, 0.653251f, 0.173753f, 0.838343f, 0.441918f, 0.387072f, 0.744385f, 0.419127f, 0.506196f, 0.645351f, 0.454678f, 0.925833f, 0.143292f, 0.660574f, 0.722864f, 0.63793f, 0.0788522f, 0.363169f, 0.564739f, 0.191534f, 0.259257f, 0.0347999f, 0.6413f, 0.101712f, 0.449541f, 0.370545f, 0.997122f, 0.540823f, 0.0884563f, 0.208965f, 0.613264f, 0.985142f, 0.40103f, 0.919549f, 0.224497f, 0.616591f, 0.593156f, 0.801722f, 0.223876f, 0.206958f, 0.501691f, 0.551562f, 0.74282f, 0.181208f, 0.771393f, 0.393918f, 0.922321f, 0.638577f, 0.376863f, 0.0401266f, 0.816643f, 0.785584f, 0.203166f, 0.878251f, 0.65944f, 0.882809f, 0.0863928f, 0.745687f, 0.40847f, 0.832032f, 0.0809256f, 0.094153f, 0.361189f, 0.812077f, 0.234691f, 0.42694f, 0.200852f, 0.975523f, 0.354141f, 0.421757f, 0.0774215f, 0.070992f, 0.421937f, 0.633423f, 0.283779f, 0.81905f, 0.794535f, 0.0960576f, 0.629297f, 0.535167f, 0.508523f, 0.527075f, 0.999334f, 0.0173005f, 0.311656f, 0.923278f, 0.0455971f, 0.444995f, 0.133671f, 0.680912f, 0.155071f, 0.723781f, 0.461663f, 0.93426f, 0.329707f, 0.714499f, 0.169596f, 0.67502f, 0.391618f, 0.118416f, 0.33398f, 0.968866f, 0.0195507f, 0.450389f, 0.214882f, 0.355019f, 0.551473f, 0.393801f, 0.539777f, 0.73026f, 0.361477f, 0.220424f, 0.300348f, 0.617481f, 0.886439f, 0.397227f, 0.525943f, 0.850235f, 0.740317f, 0.998272f, 0.976569f, 0.341928f, 0.160851f, 0.429201f, 0.457287f, 0.309672f, 0.580991f, 0.273954f, 0.326242f, 0.0643254f, 0.573575f, 0.287755f, 0.686969f, 0.984569f, 0.554197f, 0.7274f, 0.216069f, 0.621872f, 0.643813f, 0.876882f, 0.468438f, 0.0936584f, 0.513361f, 0.670193f, 0.532297f, 0.104199f, 0.423867f, 0.224115f, 0.798091f, 0.177146f, 0.555254f, 0.248109f, 0.160211f, 0.0221616f, 0.132389f, 0.999707f, 0.965038f, 0.554444f, 0.565595f, 0.237503f, 0.00169962f, 0.229568f, 0.682788f, 0.764481f, 0.0487813f, 0.864486f, 0.904476f, 0.0525319f, 0.898714f, 0.0173873f, 0.985162f, 0.436532f, 0.582763f, 0.0158723f, 0.789094f, 0.786233f, 0.410659f, 0.604324f, 0.475477f, 0.319492f, 0.220243f, 0.169876f, 0.0914102f, 0.233776f, 0.732329f, 0.939244f, 0.553129f, 0.601285f, 0.405567f, 0.959259f, 0.236196f, 0.516522f, 0.139614f, 0.981068f, 0.229505f, 0.571244f, 0.406352f, 0.746558f, 0.521592f, 0.187013f, 0.701303f, 0.783859f, 0.704499f, 0.567539f, 0.448151f, 0.841309f, 0.811219f, 0.580277f, 0.538911f, 0.893996f, 0.232525f, 0.888414f, 0.736725f, 0.417165f, 0.211215f, 0.310771f, 0.70188f, 0.507595f, 0.510334f, 0.913556f, 0.0478733f, 0.575113f, 0.630415f, 0.990332f, 0.57646f, 0.546378f, 0.92641f, 0.623053f, 0.321859f, 0.0157159f, 0.295079f, 0.127641f, 0.923763f, 0.613171f, 0.164406f, 0.28307f, 0.340805f, 0.228384f, 0.55602f, 0.994059f, 0.187031f, 0.10987f, 0.144074f, 0.143496f, 0.338501f, 0.505964f, 0.168797f, 0.48837f, 0.784524f, 0.758003f, 0.605508f, 0.949441f, 0.971073f, 0.259546f, 0.810502f, 0.805251f, 0.892052f, 0.720263f, 0.100148f, 0.497694f, 0.46166f, 0.857795f, 0.27426f, 0.11979f, 0.329579f, 0.182483f, 0.167435f, 0.955931f, 0.189914f, 0.28703f, 0.813201f, 0.854609f, 0.273005f, 0.137551f, 0.752829f, 0.538577f, 0.0628072f, 0.776421f, 0.537499f, 0.0547614f, 0.885418f, 0.920425f, 0.788888f, 0.00927441f, 0.722344f, 0.369018f, 0.121754f, 0.455063f, 0.424021f, 0.113252f, 0.324646f, 0.694949f, 0.669383f, 0.0572191f, 0.570372f, 0.659508f, 0.152914f, 0.142012f, 0.920393f, 0.38614f, 0.467542f, 0.35072f, 0.281447f, 0.944685f, 0.215558f, 0.454926f, 0.536026f, 0.44778f, 0.920869f, 0.638052f, 0.534191f, 0.0641143f, 0.828026f, 0.873776f, 0.164457f, 0.552525f, 0.207604f, 0.452393f, 0.205054f, 0.895241f, 0.0895964f, 0.248367f, 0.781899f, 0.44924f, 0.754355f, 0.103789f, 0.208486f, 0.242908f, 0.121276f, 0.127973f, 0.402872f, 0.442435f, 0.525921f, 0.0637256f, 0.0361188f, 0.571006f, 0.606648f, 0.947884f, 0.760438f, 0.0309971f, 0.196711f, 0.95827f, 0.364995f, 0.33025f, 0.844207f, 0.597559f, 0.239721f, 0.643562f, 0.696375f, 0.264842f, 0.788867f, 0.547416f, 0.116078f, 0.00181673f, 0.0610323f, 0.35044f, 0.722475f, 0.201206f, 0.589462f, 0.514436f, 0.524413f, 0.54f, 0.150274f, 0.987583f, 0.190674f, 0.20016f, 0.523651f, 0.494359f, 0.791559f, 0.283106f, 0.677997f, 0.872868f, 0.967687f, 0.512397f, 0.392591f, 0.0656109f, 0.782488f, 0.429386f, 0.412632f, 0.358234f, 0.116172f, 0.221527f, 0.694443f, 0.799309f, 0.0969967f, 0.851847f, 0.153804f, 0.876318f, 0.731137f, 0.121943f, 0.177912f, 0.927979f, 0.532124f, 0.107388f, 0.111061f, 0.839484f, 0.604183f, 0.502345f, 0.0353025f, 0.556722f, 0.736888f, 0.170137f, 0.966485f, 0.196674f, 0.34073f, 0.840239f, 0.314031f, 0.254273f, 0.888353f, 0.667272f, 0.653667f, 0.950473f, 0.95575f, 0.589813f, 0.242019f, 0.386154f, 0.720908f, 0.0230627f, 0.131933f, 0.860859f, 0.275647f, 0.457245f, 0.51807f, 0.362195f, 0.668601f, 0.402841f, 0.943437f, 0.654454f, 0.244928f, 0.628289f, 0.186225f, 0.908723f, 0.809243f, 0.841236f, 0.71593f, 0.348131f, 0.505465f, 0.889749f, 0.234725f, 0.792285f, 0.277952f, 0.301562f, 0.885563f, 0.410757f, 0.80986f, 0.0936623f, 0.879623f, 0.538852f, 0.69582f, 0.387751f, 0.30954f, 0.124704f, 0.771897f, 0.565482f, 0.509211f, 0.356417f, 0.114909f, 0.090619f, 0.514345f, 0.965393f, 0.844088f, 0.618682f, 0.523679f, 0.791183f, 0.00318767f, 0.634567f, 0.370863f, 0.869661f, 0.835118f, 0.851767f, 0.418507f, 0.0536338f, 0.185084f, 0.183014f, 0.528634f, 0.381339f, 0.344865f, 0.290802f, 0.867557f, 0.473365f, 0.563617f, 0.00453586f, 0.365663f, 0.379836f, 0.12498f, 0.56141f, 0.68537f, 0.451273f, 0.884056f, 0.858573f, 0.736995f, 0.987575f, 0.524262f, 0.902263f, 0.0411267f, 0.293483f, 0.626195f, 0.411771f, 0.310665f, 0.290257f, 0.410445f, 0.0286189f, 0.362421f, 0.195714f, 0.965872f, 0.96694f, 0.361025f, 0.66546f, 0.278483f, 0.918264f, 0.261512f, 0.548885f, 0.71121f, 0.00362248f, 0.182363f, 0.474657f, 0.48244f, 0.0516065f, 0.158192f, 0.97494f, 0.699373f, 0.909023f, 0.707281f, 0.473288f, 0.169886f, 0.0643692f, 0.0449337f, 0.659065f, 0.937262f, 0.381404f, 0.825512f, 0.65109f, 0.125254f, 0.732339f, 0.601261f, 0.697315f, 0.303673f, 0.522208f, 0.0152708f, 0.507449f, 0.783954f, 0.28115f, 0.295958f, 0.622733f, 0.786373f, 0.39511f, 0.159152f, 0.251225f, 0.603123f, 0.745414f, 0.653556f, 0.748722f, 0.730079f, 0.340812f, 0.664719f, 0.40022f, 0.182874f, 0.37144f, 0.0832018f, 0.811496f, 0.674253f, 0.739171f, 0.845764f, 0.178027f, 0.545391f, 0.540179f, 0.948017f, 0.135733f, 0.504476f, 0.486853f, 0.835047f, 0.231292f, 0.25473f, 0.00212214f, 0.212284f, 0.472472f, 0.112381f, 0.418387f, 0.0418642f, 0.611147f, 0.0643578f, 0.206525f, 0.804208f, 0.573227f, 0.663163f, 0.164013f, 0.914674f, 0.305367f, 0.903968f, 0.0232696f, 0.563987f, 0.560816f, 0.414911f, 0.400634f, 0.131686f, 0.0193554f, 0.607752f, 0.164197f, 0.567341f, 0.42141f, 0.83941f, 0.460983f, 0.985455f, 0.870885f, 0.202614f, 0.968553f, 0.80669f, 0.372927f, 0.788877f, 0.357564f, 0.0966117f, 0.306816f, 0.336928f, 0.040926f, 0.436574f, 0.510561f, 0.969237f, 0.239551f, 0.731059f, 0.90222f, 0.965847f, 0.608129f, 0.0812972f, 0.353123f, 0.015714f, 0.0231182f, 0.0392268f, 0.0738136f, 0.58702f, 0.171462f, 0.370901f, 0.678717f, 0.468467f, 0.410735f, 0.673824f, 0.158814f, 0.533841f, 0.916291f, 0.029516f, 0.9556f, 0.664704f, 0.102852f, 0.948735f, 0.754373f, 0.643268f, 0.0982024f, 0.942864f, 0.274011f, 0.476923f, 0.106461f, 0.225548f, 0.313291f, 0.329554f, 0.851883f, 0.314722f, 0.938837f, 0.322335f, 0.585171f, 0.0277564f, 0.318626f, 0.629204f, 0.532407f, 0.740747f, 0.919904f, 0.420374f, 0.724614f, 0.108623f, 0.738651f, 0.907322f, 0.0670096f, 0.311997f, 0.852269f, 0.702452f, 0.127123f, 0.901492f, 0.693842f, 0.839737f, 0.339155f, 0.147633f, 0.355625f, 0.145871f, 0.115069f, 0.957674f, 0.560687f, 0.064264f, 0.506556f, 0.554516f, 0.73012f, 0.409934f, 0.802327f, 0.998475f, 0.647414f, 0.127543f, 0.265695f, 0.578531f, 0.1327f, 0.355447f, 0.558171f, 0.00598838f, 0.940226f, 0.369519f, 0.586139f, 0.55968f, 0.636518f, 0.857409f, 0.963241f, 0.0116475f, 0.667325f, 0.407958f, 0.335186f, 0.479968f, 0.270378f, 0.919637f, 0.826009f, 0.199082f, 0.322783f, 0.39992f, 0.758611f, 0.255333f, 0.302068f, 0.902525f, 0.500197f, 0.855985f, 0.500728f, 0.314063f, 0.0381636f, 0.557419f, 0.152195f, 0.803799f, 0.84627f, 0.10769f, 0.345615f, 0.269928f, 0.609945f, 0.279088f, 0.200761f, 0.766667f, 0.731349f, 0.335105f, 0.254386f, 0.53166f, 0.194555f, 0.521007f, 0.162585f, 0.449878f, 0.100261f, 0.622192f, 0.509137f, 0.121375f, 0.315335f, 0.485973f, 0.434955f, 0.754392f, 0.924451f, 0.458096f, 0.0209212f, 0.639647f, 0.311079f, 0.402749f, 0.679186f, 0.332598f, 0.730444f, 0.10064f, 0.637107f, 0.389819f, 0.607408f, 0.646883f, 0.347521f, 0.168656f, 0.866111f, 0.0461562f, 0.777592f, 0.120227f, 0.862783f, 0.189477f, 0.263367f, 0.283009f, 0.013176f, 0.836167f, 0.131011f, 0.181339f, 0.388115f, 0.713889f, 0.58026f, 0.978099f, 0.560269f, 0.474457f, 0.251467f, 0.736789f, 0.85937f, 0.438229f, 0.805346f, 0.576954f, 0.589921f, 0.165357f, 0.898489f, 0.469481f, 0.179003f, 0.560535f, 0.101505f, 0.997484f, 0.817597f, 0.456714f, 0.517765f, 0.539166f, 0.0549501f, 0.13851f, 0.144562f, 0.84891f, 0.426885f, 0.102703f, 0.0221969f, 0.899891f, 0.827862f, 0.020504f, 0.987958f, 0.346579f, 0.014053f, 0.872403f, 0.367345f, 0.0392524f, 0.917112f, 0.680638f, 0.315322f, 0.0444468f, 0.704286f, 0.47484f, 0.262109f, 0.713528f, 0.0696204f, 0.553667f, 0.0572242f, 0.222615f, 0.421279f, 0.954459f, 0.630813f, 0.498017f, 0.613005f, 0.162239f, 0.469291f, 0.739683f, 0.429791f, 0.156983f, 0.430067f, 0.630572f, 0.743539f, 0.228513f, 0.609373f, 0.423079f, 0.674534f, 0.951026f, 0.170747f, 0.676115f, 0.341737f, 0.420619f, 0.880342f, 0.561069f, 0.486017f, 0.533275f, 0.16003f, 0.99196f, 0.802565f, 0.635778f, 0.75065f, 0.540375f, 0.208002f, 0.0790226f, 0.300026f, 0.26242f, 0.485571f, 0.80065f, 0.739541f, 0.533718f, 0.456979f, 0.028113f, 0.991271f, 0.862795f, 0.484163f, 0.430773f, 0.255418f, 0.398744f, 0.113383f, 0.426061f, 0.362484f, 0.568603f, 0.0652797f, 0.253389f, 0.717145f, 0.48661f, 0.802034f, 0.926832f, 0.611447f, 0.619769f, 0.683132f, 0.819905f, 0.103712f, 0.199142f, 0.511242f, 0.853235f, 0.0824173f, 0.110265f, 0.447908f, 0.710412f, 0.934489f, 0.272197f, 0.0303202f, 0.256232f, 0.0225588f, 0.481865f, 0.236125f, 0.0195839f, 0.993028f, 0.580165f, 0.666793f, 0.269172f, 0.176457f, 0.796069f, 0.165905f, 0.634858f, 0.254795f, 0.859056f, 0.103369f, 0.949433f, 0.792508f, 0.378716f, 0.944026f, 0.227297f, 0.8783f, 0.323629f, 0.621736f, 0.914955f, 0.823668f, 0.299256f, 0.123202f, 0.617012f, 0.446672f, 0.953833f, 0.613775f, 0.0391566f, 0.554599f, 0.91968f, 0.275098f, 0.833774f, 0.953738f, 0.583018f, 0.746144f, 0.533393f, 0.405325f, 0.679003f, 0.37107f, 0.328953f, 0.44203f, 0.0994147f, 0.18665f, 0.657475f, 0.288277f, 0.930274f, 0.418843f, 0.469237f, 0.35161f, 0.12955f, 0.089204f, 0.532626f, 0.812124f, 0.436089f, 0.0448819f, 0.512143f, 0.059357f, 0.0345068f, 0.469822f, 0.253855f, 0.620757f, 0.0337107f, 0.956324f, 0.146751f, 0.460174f, 0.509127f, 0.882615f, 0.589425f, 0.759984f, 0.981331f, 0.683049f, 0.310719f, 0.729234f, 0.122272f, 0.586035f, 0.991812f, 0.582853f, 0.453523f, 0.181746f, 0.892268f, 0.334669f, 0.986757f, 0.817444f, 0.590081f, 0.850383f, 0.595176f, 0.240762f, 0.8305f, 0.149676f, 0.437148f, 0.542704f, 0.671214f, 0.0366027f, 0.663488f, 0.531283f, 0.121862f, 0.640571f, 0.165648f, 0.461287f, 0.273252f, 0.844644f, 0.825103f, 0.148409f, 0.251839f, 0.446473f, 0.0960271f, 0.00706158f, 0.630802f, 0.848176f, 0.375203f, 0.0320539f, 0.130486f, 0.149418f, 0.183657f, 0.455004f, 0.8082f, 0.269266f, 0.957152f, 0.557931f, 0.0748252f, 0.749464f, 0.504835f, 0.81596f, 0.34321f, 0.477582f, 0.801332f, 0.461577f, 0.926013f, 0.661129f, 0.649922f, 0.452354f, 0.218746f, 0.905802f, 0.0605009f, 0.418734f, 0.501866f, 0.635877f, 0.705736f, 0.181324f, 0.104941f, 0.832578f, 0.874072f, 0.141237f, 0.142201f, 0.280765f, 0.5323f, 0.674359f, 0.652151f, 0.190034f, 0.967754f, 0.696816f, 0.969444f, 0.0220326f, 0.687023f, 0.37009f, 0.285545f, 0.181625f, 0.831447f, 0.835206f, 0.575393f, 0.0947767f, 0.445169f, 0.507885f, 0.425157f, 0.613484f, 0.682745f, 0.0263245f, 0.665957f, 0.0166366f, 0.65463f, 0.789293f, 0.0336617f, 0.164098f, 0.924421f, 0.132713f, 0.456148f, 0.574763f, 0.668189f, 0.489693f, 0.0441914f, 0.518647f, 0.214696f, 0.112737f, 0.44819f, 0.303738f, 0.399455f, 0.546151f, 0.158835f, 0.00180918f, 0.262032f, 0.384566f, 0.89461f, 0.164237f, 0.818893f, 0.49971f, 0.120254f, 0.23836f, 0.029748f, 0.995163f, 0.226978f, 0.0484893f, 0.231094f, 0.305973f, 0.71215f, 0.822466f, 0.0508578f, 0.997569f, 0.898337f, 0.817448f, 0.874781f, 0.689182f, 0.973867f, 0.628597f, 0.620877f, 0.45498f, 0.717818f, 0.938396f, 0.427875f, 0.366748f, 0.776689f, 0.96113f, 0.76588f, 0.85267f, 0.0487189f, 0.683232f, 0.042304f, 0.781456f, 0.0592676f, 0.129742f, 0.571455f, 0.768879f, 0.703165f, 0.0624367f, 0.190833f, 0.0241882f, 0.805154f, 0.335558f, 0.910022f, 0.332639f, 0.323955f, 0.228345f, 0.887001f, 0.980327f, 0.870543f, 0.990502f, 0.265794f, 0.694965f, 0.00930077f, 0.731371f, 0.223209f, 0.405306f, 0.109496f, 0.965509f, 0.958465f, 0.840793f, 0.889724f, 0.064064f, 0.451945f, 0.206655f, 0.38059f, 0.106237f, 0.491083f, 0.93959f, 0.487393f, 0.232154f, 0.915776f, 0.171781f, 0.493335f, 0.474649f, 0.698498f, 0.530765f, 0.52425f, 0.449313f, 0.81784f, 0.483302f, 0.73427f, 0.962126f, 0.718749f, 0.446763f, 0.893096f, 0.725123f, 0.466613f, 0.83961f, 0.98493f, 0.537082f, 0.0800491f, 0.405409f, 0.983864f, 0.39792f, 0.0114679f, 0.150705f, 0.100391f, 0.290206f, 0.898127f, 0.587066f, 0.0429559f, 0.659294f, 0.850143f, 0.00734813f, 0.101774f, 0.717331f, 0.0820413f, 0.13315f, 0.0223735f, 0.142763f, 0.376158f, 0.962344f, 0.257931f, 0.30701f, 0.286801f, 0.0103284f, 0.777624f, 0.125984f, 0.134889f, 0.924669f, 0.237833f, 0.227038f, 0.514285f, 0.805988f, 0.143093f, 0.529449f, 0.15169f, 0.351351f, 0.736351f, 0.308342f, 0.294531f, 0.708191f, 0.99304f, 0.84248f, 0.503519f, 0.0269532f, 0.358566f, 0.0602081f, 0.411598f, 0.285303f, 0.273901f, 0.905446f, 0.798683f, 0.0151927f, 0.052071f, 0.0621774f, 0.130585f, 0.704555f, 0.915636f, 0.711788f, 0.158899f, 0.629154f, 0.324008f, 0.95695f, 0.281377f, 0.940854f, 0.80062f, 0.912882f, 0.284001f, 0.559985f, 0.201188f, 0.583779f, 0.0224731f, 0.306439f, 0.248416f, 0.00758427f, 0.557572f, 0.942114f, 0.554073f, 0.937692f, 0.458901f, 0.215002f, 0.737547f, 0.530686f, 0.190635f, 0.80603f, 0.979828f, 0.256353f, 0.976253f, 0.736808f, 0.65022f, 0.349429f, 0.637669f, 0.397362f, 0.00712503f, 0.690147f, 0.985218f, 0.834008f, 0.347133f, 0.602926f, 0.823941f, 0.970718f, 0.234268f, 0.506128f, 0.989503f, 0.883743f, 0.717558f, 0.475378f, 0.367747f, 0.718978f, 0.589846f, 0.768416f, 0.666121f, 0.412887f, 0.199796f, 0.57815f, 0.188739f, 0.589283f, 0.92877f, 0.852514f, 0.773125f, 0.359723f, 0.627715f, 0.0199192f, 0.0866482f, 0.843929f, 0.967316f, 0.926631f, 0.911379f, 0.937028f, 0.0500699f, 0.738367f, 0.70269f, 0.168276f, 0.48319f, 0.120307f, 0.949687f, 0.192057f, 0.264129f, 0.314993f, 0.369187f, 0.462775f, 0.31784f, 0.324946f, 0.0102614f, 0.793894f, 0.402858f, 0.530403f, 0.79561f, 0.81572f, 0.942598f, 0.211626f, 0.227524f, 0.0135033f, 0.859035f, 0.32734f, 0.573035f, 0.982225f, 0.0224267f, 0.347177f, 0.71185f, 0.261203f, 0.359006f, 0.97465f, 0.929987f, 0.318933f, 0.0621373f, 0.380474f, 0.573457f, 0.926413f, 0.716498f, 0.888477f, 0.893428f, 0.547621f, 0.40203f, 0.478106f, 0.282419f, 0.989463f, 0.927382f, 0.43853f, 0.0925404f, 0.574581f, 0.68347f, 0.666289f, 0.0394626f, 0.0910755f, 0.061274f, 0.462583f, 0.222248f, 0.734661f, 0.586794f, 0.921215f, 0.0876263f, 0.486106f, 0.713872f, 0.893221f, 0.143838f, 0.639398f, 0.848009f, 0.280608f, 0.670753f, 0.486026f, 0.879492f, 0.195502f, 0.446925f, 0.148831f, 0.311913f, 0.826572f, 0.0745106f, 0.967327f, 0.176825f, 0.837993f, 0.901025f, 0.145146f, 0.102935f, 0.183943f, 0.441984f, 0.890556f, 0.985702f, 0.43369f, 0.0862162f, 0.639421f, 0.782565f, 0.343339f, 0.938177f, 0.260718f, 0.632064f, 0.717315f, 0.587037f, 0.450545f, 0.886596f, 0.730935f, 0.292592f, 0.239379f, 0.890215f, 0.304032f, 0.515059f, 0.699912f, 0.194646f, 0.0724452f, 0.952158f, 0.948487f, 0.864882f, 0.194389f, 0.666615f, 0.0957282f, 0.922265f, 0.248937f, 0.635332f, 0.714348f, 0.989062f, 0.0572661f, 0.272326f, 0.521135f, 0.0849775f, 0.868695f, 0.835632f, 0.249649f, 0.318595f, 0.119722f, 0.142894f, 0.682807f, 0.267935f, 0.657104f, 0.436956f, 0.0389745f, 0.22653f, 0.410546f, 0.725259f, 0.747194f, 0.0454387f, 0.44659f, 0.139582f, 0.785488f, 0.0223576f, 0.0735775f, 0.13351f, 0.296764f, 0.618207f, 0.940226f, 0.354419f, 0.514127f, 0.314087f, 0.953654f, 0.0748327f, 0.191724f, 0.895162f, 0.665453f, 0.696588f, 0.432883f, 0.899274f, 0.867747f, 0.120454f, 0.891239f, 0.749333f, 0.891805f, 0.788669f, 0.953287f, 0.416784f, 0.521032f, 0.704389f, 0.0472966f, 0.0240078f, 0.0331113f, 0.406872f, 0.473289f, 0.924241f, 0.667755f, 0.0811827f, 0.454321f, 0.15741f, 0.497819f, 0.716903f, 0.444339f, 0.395287f, 0.464974f, 0.12151f, 0.404004f, 0.0934605f, 0.441825f, 0.697486f, 0.351276f, 0.442934f, 0.220947f, 0.86621f, 0.223565f, 0.116137f, 0.807875f, 0.29863f, 0.170471f, 0.411124f, 0.744533f, 0.193647f, 0.717145f, 0.342939f, 0.221676f, 0.232901f, 0.341465f, 0.446438f, 0.300425f, 0.374265f, 0.658203f, 0.822078f, 0.496284f, 0.199386f, 0.989217f, 0.0821325f, 0.275467f, 0.277882f, 0.893707f, 0.405232f, 0.567861f, 0.8975f, 0.18138f, 0.308309f, 0.477461f, 0.984025f, 0.830471f, 0.42237f, 0.364545f, 0.516352f, 0.841026f, 0.67769f, 0.487623f, 0.273439f, 0.971741f, 0.466953f, 0.273495f, 0.846301f, 0.166227f, 0.95255f, 0.210152f, 0.682805f, 0.751633f, 0.3129f, 0.909138f, 0.825527f, 0.659544f, 0.908908f, 0.580157f, 0.876501f, 0.607299f, 0.242618f, 0.818114f, 0.00131603f, 0.776379f, 0.188393f, 0.30809f, 0.544675f, 0.869784f, 0.413121f, 0.518545f, 0.116167f, 0.649879f, 0.964f, 0.677545f, 0.927208f, 0.933423f, 0.275191f, 0.434273f, 0.124179f, 0.466204f, 0.276987f, 0.936144f, 0.750637f, 0.238819f, 0.738644f, 0.463506f, 0.969592f, 0.447774f, 0.591227f, 0.609234f, 0.98293f, 0.640797f, 0.390193f, 0.444909f, 0.788283f, 0.587941f, 0.157216f, 0.00131569f, 0.779473f, 0.429672f, 0.54189f, 0.831539f, 0.970397f, 0.684854f, 0.487185f, 0.531324f, 0.832011f, 0.777649f, 0.804686f, 0.675394f, 0.923088f, 0.308004f, 0.428661f, 0.555492f, 0.861357f, 0.628359f, 0.316157f, 0.817916f, 0.374223f, 0.970965f, 0.795997f, 0.510906f, 0.672588f, 0.424412f, 0.175958f, 0.769263f, 0.497293f, 0.196555f, 0.0611545f, 0.00530789f, 0.965853f, 0.570024f, 0.360339f, 0.187082f, 0.748634f, 0.190719f, 0.806228f, 0.0352233f, 0.192849f, 0.965821f, 0.00679308f, 0.99123f, 0.73737f, 0.775546f, 0.0977013f, 0.308288f, 0.431117f, 0.153415f, 0.804882f, 0.669997f, 0.670311f, 0.612123f, 0.782227f, 0.11331f, 0.154333f, 0.296159f, 0.174976f, 0.0483842f, 0.24777f, 0.620132f, 0.861002f, 0.334178f, 0.866623f, 0.361461f, 0.710116f, 0.0635535f, 0.249805f, 0.549268f, 0.362231f, 0.239818f, 0.378997f, 0.681933f, 0.933777f, 0.291056f, 0.456954f, 0.18463f, 0.540136f, 0.0437274f, 0.734342f, 0.366618f, 0.269954f, 0.310104f, 0.732228f, 0.0728633f, 0.989473f, 0.252805f, 0.0756632f, 0.0375949f, 0.0332494f, 0.324117f, 0.932543f, 0.326445f, 0.805994f, 0.269755f, 0.072031f, 0.821557f, 0.943744f, 0.640986f, 0.750658f, 0.69089f, 0.809074f, 0.374401f, 0.779458f, 0.494652f, 0.539367f, 0.648802f, 0.904723f, 0.91116f, 0.539082f, 0.538251f, 0.134833f, 0.387795f, 0.64978f, 0.599567f, 0.417636f, 0.551634f, 0.322439f, 0.340208f, 0.912534f, 0.733872f, 0.579219f, 0.0793208f, 0.626329f, 0.905718f, 0.582516f, 0.92312f, 0.50702f, 0.414618f, 0.334607f, 0.825264f, 0.171573f, 0.571544f, 0.596331f, 0.111448f, 0.190892f, 0.00608648f, 0.961301f, 0.06295f, 0.700943f, 0.104887f, 0.665655f, 0.150576f, 0.368126f, 0.560471f, 0.811381f, 0.670625f, 0.687407f, 0.206057f, 0.554732f, 0.792035f, 0.238631f, 0.967303f, 0.229403f, 0.820224f, 0.403868f, 0.334452f, 0.410095f, 0.141435f, 0.385321f, 0.78013f, 0.120142f, 0.131125f, 0.531591f, 0.284758f, 0.225754f, 0.821743f, 0.479127f, 0.670744f, 0.0632617f, 0.190213f, 0.342228f, 0.611834f, 0.147144f, 0.749315f, 0.812352f, 0.220116f, 0.0743763f, 0.798754f, 0.186146f, 0.653518f, 0.952988f, 0.224036f, 0.979533f, 0.0512328f, 0.855497f, 0.970378f, 0.330205f, 0.893624f, 0.951954f, 0.446248f, 0.241224f, 0.358395f, 0.823622f, 0.575698f, 0.0235875f, 0.340075f, 0.599497f, 0.358554f, 0.928837f, 0.306355f, 0.571435f, 0.719717f, 0.165151f, 0.0797963f, 0.831695f, 0.88422f, 0.601322f, 0.247884f, 0.628228f, 0.498607f, 0.00621075f, 0.915399f, 0.143344f, 0.116065f, 0.94494f, 0.466709f, 0.317744f, 0.344857f, 0.0949592f, 0.964505f, 0.35357f, 0.303505f, 0.606102f, 0.0665468f, 0.225249f, 0.458599f, 0.970461f, 0.395171f, 0.422658f, 0.679472f, 0.410228f, 0.19959f, 0.842336f, 0.668081f, 0.664293f, 0.402229f, 0.812145f, 0.272561f, 0.502467f, 0.770362f, 0.929647f, 0.15165f, 0.276435f, 0.342583f, 0.433105f, 0.282908f, 0.745474f, 0.516557f, 0.0118625f, 0.317457f, 0.148295f, 0.685141f, 0.588302f, 0.16608f, 0.0774353f, 0.635194f, 0.218951f, 0.0168833f, 0.00626268f, 0.868376f, 0.931036f, 0.320997f, 0.459506f, 0.295636f, 0.0551453f, 0.0681321f, 0.559253f, 0.677468f, 0.157699f, 0.577135f, 0.802595f, 0.706154f, 0.559748f, 0.797186f, 0.0456973f, 0.774654f, 0.734378f, 0.0919026f, 0.7873f, 0.372076f, 0.469205f, 0.00575541f, 0.192196f, 0.13782f, 0.392825f, 0.552584f, 0.257179f, 0.414549f, 0.910588f, 0.105094f, 0.759801f, 0.0528332f, 0.990542f, 0.569218f, 0.576016f, 0.799242f, 0.278953f, 0.231101f, 0.297748f, 0.878379f, 0.943777f, 0.53018f, 0.84597f, 0.940981f, 0.00342711f, 0.218818f, 0.980644f, 0.0654761f, 0.172279f, 0.818572f, 0.474842f, 0.929259f, 0.350181f, 0.912524f, 0.651795f, 0.788866f, 0.0493693f, 0.730662f, 0.931843f, 0.318642f, 0.311007f, 0.922937f, 0.175911f, 0.475047f, 0.366807f, 0.110681f, 0.384554f, 0.185636f, 0.749514f, 0.861982f, 0.164914f, 0.52161f, 0.410423f, 0.247525f, 0.700921f, 0.452227f, 0.750821f, 0.39097f, 0.280601f, 0.471775f, 0.35919f, 0.14004f, 0.731463f, 0.476488f, 0.337308f, 0.330169f, 0.527366f, 0.850729f, 0.655397f, 0.0842694f, 0.0643169f, 0.962994f, 0.26068f, 0.153789f, 0.273396f, 0.85484f, 0.965423f, 0.394847f, 0.433896f, 0.115241f, 0.390524f, 0.405932f, 0.938156f, 0.198021f, 0.738096f, 0.0385308f, 0.617535f, 0.802318f, 0.573192f, 0.763268f, 0.0779548f, 0.320115f, 0.748815f, 0.291995f, 0.389855f, 0.614649f, 0.514202f, 0.205235f, 0.0963104f, 0.503745f, 0.31952f, 0.355385f, 0.942694f, 0.929783f, 0.0220208f, 0.459694f, 0.84832f, 0.941392f, 0.737276f, 0.262519f, 0.227443f, 0.253201f, 0.228847f, 0.0953443f, 0.556171f, 0.166964f, 0.270108f, 0.926642f, 0.654498f, 0.140178f, 0.306913f, 0.990324f, 0.580342f, 0.0324181f, 0.623065f, 0.646986f, 0.898798f, 0.976565f, 0.119017f, 0.688754f, 0.998727f, 0.222624f, 0.943651f, 0.273386f, 0.48019f, 0.207396f, 0.128925f, 0.878636f, 0.562034f, 0.057086f, 0.624526f, 0.257558f, 0.394908f, 0.295239f, 0.577043f, 0.395199f, 0.504665f, 0.328583f, 0.98399f, 0.397759f, 0.0383109f, 0.665752f, 0.429645f, 0.767314f, 0.928769f, 0.76124f, 0.902218f, 0.146777f, 0.350768f, 0.680122f, 0.296311f, 0.468029f, 0.826814f, 0.101591f, 0.664039f, 0.801716f, 0.147115f, 0.108351f, 0.116276f, 0.861291f, 0.167491f, 0.946289f, 0.693907f, 0.313647f, 0.777845f, 0.263364f, 0.139229f, 0.740363f, 0.989704f, 0.432943f, 0.570094f, 0.322981f, 0.476946f, 0.49074f, 0.958952f, 0.578021f, 0.0932085f, 0.821197f, 0.205692f, 0.692186f, 0.875159f, 0.402558f, 0.900931f, 0.816728f, 0.616854f, 0.522478f, 0.487102f, 0.517616f, 0.915677f, 0.66723f, 0.310415f, 0.80434f, 0.766109f, 0.0184057f, 0.894138f, 0.499064f, 0.192616f, 0.985936f, 0.665655f, 0.455956f, 0.457536f, 0.85326f, 0.284357f, 0.201585f, 0.474892f, 0.598309f, 0.856298f, 0.797672f, 0.542194f, 0.875995f, 0.796188f, 0.571213f, 0.548237f, 0.57115f, 0.336469f, 0.693064f, 0.414336f, 0.998054f, 0.423767f, 0.346776f, 0.0062636f, 0.631417f, 0.913248f, 0.554041f, 0.873048f, 0.717099f, 0.190542f, 0.445506f, 0.465368f, 0.566584f, 0.901952f, 0.890297f, 0.186303f, 0.77379f, 0.897066f, 0.537364f, 0.924561f, 0.156125f, 0.573204f, 0.105287f, 0.468789f, 0.491821f, 0.711121f, 0.0273963f, 0.498252f, 0.143125f, 0.925854f, 0.497041f, 0.57547f, 0.242062f, 0.012427f, 0.969893f, 0.436162f, 0.0943087f, 0.433064f, 0.47741f, 0.391195f, 0.762221f, 0.699659f, 0.218952f, 0.472897f, 0.602302f, 0.665468f, 0.889846f, 0.438605f, 0.3467f, 0.0341724f, 0.264448f, 0.00160433f, 0.598278f, 0.261374f, 0.707071f, 0.478422f, 0.240603f, 0.33752f, 0.616253f, 0.769533f, 0.0996562f, 0.279065f, 0.30718f, 0.293483f, 0.978438f, 0.909758f, 0.133283f, 0.964745f, 0.476413f, 0.0521153f, 0.917585f, 0.343908f, 0.707254f, 0.969343f, 0.138905f, 0.796633f, 0.268497f, 0.0173456f, 0.814986f, 0.388645f, 0.951678f, 0.481828f, 0.174195f, 0.552913f, 0.648707f, 0.461039f, 0.631946f, 0.392304f, 0.700226f, 0.924364f, 0.139219f, 0.0778452f, 0.143639f, 0.698261f, 0.889259f, 0.0129595f, 0.830755f, 0.660252f, 0.459239f, 0.846976f, 0.991724f, 0.278637f, 0.34602f, 0.600882f, 0.811927f, 0.968476f, 0.747932f, 0.24639f, 0.742693f, 0.445385f, 0.341478f, 0.324177f, 0.0706899f, 0.944761f, 0.434242f, 0.489379f, 0.38672f, 0.837475f, 0.152152f, 0.222192f, 0.895271f, 0.52972f, 0.16663f, 0.918529f, 0.591741f, 0.329087f, 0.583589f, 0.542022f, 0.265522f, 0.683751f, 0.628837f, 0.0971741f, 0.157937f, 0.518461f, 0.593073f, 0.534005f, 0.037028f, 0.273651f, 0.423647f, 0.578465f, 0.507036f, 0.493013f, 0.21444f, 0.209466f, 0.603251f, 0.0092898f, 0.244992f, 0.422513f, 0.201632f, 0.761322f, 0.0846159f, 0.397488f, 0.826415f, 0.813036f, 0.379624f, 0.540605f, 0.599324f, 0.763757f, 0.588955f, 0.872442f, 0.0215331f, 0.566805f, 0.294548f, 0.897124f, 0.864667f, 0.357449f, 0.381755f, 0.0890578f, 0.781388f, 0.683016f, 0.769563f, 0.443538f, 0.467661f, 0.270731f, 0.754169f, 0.0640097f, 0.0685592f, 0.574631f, 0.00559693f, 0.167295f, 0.671187f, 0.303472f, 0.396746f, 0.302382f, 0.42929f, 0.426672f, 0.452811f, 0.287465f, 0.271403f, 0.237308f, 0.0238095f, 0.183345f, 0.995383f, 0.713626f, 0.151027f, 0.812641f, 0.0540519f, 0.437533f, 0.97883f, 0.238399f, 0.0276459f, 0.360596f, 0.136596f, 0.325483f, 0.437352f, 0.684789f, 0.458391f, 0.45358f, 0.802771f, 0.878323f, 0.88142f, 0.571143f, 0.787027f, 0.774071f, 0.724934f, 0.280951f, 0.955159f, 0.855806f, 0.0902775f, 0.773264f, 0.438617f, 0.71604f, 0.341795f, 0.419745f, 0.394258f, 0.357691f, 0.863999f, 0.721997f, 0.57028f, 0.249531f, 0.732312f, 0.533183f, 0.965219f, 0.880907f, 0.448262f, 0.98237f, 0.117052f, 0.179045f, 0.454526f, 0.442181f, 0.992582f, 0.0774046f, 0.551523f, 0.997961f, 0.871994f, 0.44388f, 0.853182f, 0.267528f, 0.351673f, 0.0835476f, 0.378f, 0.738866f, 0.402109f, 0.578633f, 0.511909f, 0.287581f, 0.701261f, 0.368233f, 0.703063f, 0.499874f, 0.0787218f, 0.710596f, 0.23429f, 0.413396f, 0.132403f, 0.229315f, 0.561188f, 0.201001f, 0.25111f, 0.290239f, 0.905979f, 0.110316f, 0.499715f, 0.486985f, 0.455562f, 0.514485f, 0.584096f, 0.877169f, 0.0979117f, 0.963374f, 0.415713f, 0.0709176f, 0.805822f, 0.821558f, 0.973488f, 0.520248f, 0.688989f, 0.475652f, 0.971518f, 0.506942f, 0.989807f, 0.656753f, 0.970419f, 0.180893f, 0.61649f, 0.0237053f, 0.242801f, 0.337562f, 0.233161f, 0.392797f, 0.990294f, 0.199084f, 0.057447f, 0.671158f, 0.747917f, 0.668573f, 0.0453435f, 0.176139f, 0.910425f, 0.923741f, 0.00176215f, 0.296061f, 0.478025f, 0.181573f, 0.036164f, 0.702192f, 0.0313901f, 0.113348f, 0.58428f, 0.46213f, 0.221134f, 0.932671f, 0.764427f, 0.415765f, 0.449912f, 0.529514f, 0.227868f, 0.796867f, 0.314191f, 0.197278f, 0.187912f, 0.845347f, 0.26772f, 0.384787f, 0.163984f, 0.577743f, 0.497061f, 0.135861f, 0.676472f, 0.960896f, 0.784094f, 0.033677f, 0.380924f, 0.530175f, 0.16563f, 0.0695512f, 0.349952f, 0.151569f, 0.344746f, 0.0157297f, 0.223123f, 0.0640751f, 0.495658f, 0.310503f, 0.692738f, 0.612032f, 0.567547f, 0.857889f, 0.670522f, 0.685647f, 0.383845f, 0.0197798f, 0.136059f, 0.574925f, 0.691993f, 0.667442f, 0.180047f, 0.873677f, 0.360731f, 0.651153f, 0.958467f, 0.645701f, 0.975104f, 0.560409f, 0.745208f, 0.00676351f, 0.586728f, 0.304043f, 0.880682f, 0.221041f, 0.15046f, 0.239141f, 0.249258f, 0.196454f, 0.245214f, 0.684362f, 0.0960514f, 0.970904f, 0.609519f, 0.952968f, 0.899556f, 0.3414f, 0.932593f, 0.475766f, 0.364046f, 0.117809f, 0.676439f, 0.286498f, 0.429399f, 0.601948f, 0.148346f, 0.68029f, 0.645234f, 0.771374f, 0.52105f, 0.883415f, 0.34897f, 0.102868f, 0.202091f, 0.613328f, 0.804702f, 0.764001f, 0.921364f, 0.202624f, 0.277871f, 0.152549f, 0.382469f, 0.275849f, 0.910749f, 0.710937f, 0.561205f, 0.416221f, 0.536861f, 0.322434f, 0.525319f, 0.200341f, 0.686401f, 0.319362f, 0.351195f, 0.153495f, 0.420281f, 0.337442f, 0.273369f, 0.320972f, 0.804164f, 0.308775f, 0.120205f, 0.286141f, 0.275005f, 0.642853f, 0.363757f, 0.233674f, 0.212187f, 0.630722f, 0.377742f, 0.0663688f, 0.949916f, 0.320369f, 0.857173f, 0.449386f, 0.285215f, 0.371606f, 0.0249118f, 0.432057f, 0.866585f, 0.0182799f, 0.277595f, 0.511672f, 0.657466f, 0.470694f, 0.876574f, 0.21915f, 0.314551f, 0.879418f, 0.925947f, 0.214252f, 0.235867f, 0.867334f, 0.585355f, 0.236343f, 0.0142805f, 0.709999f, 0.117742f, 0.292881f, 0.336431f, 0.788103f, 0.110984f, 0.702093f, 0.137928f, 0.244125f, 0.3929f, 0.855334f, 0.219038f, 0.456583f, 0.689839f, 0.111941f, 0.471571f, 0.291894f, 0.638545f, 0.292937f, 0.497642f, 0.597071f, 0.74203f, 0.723507f, 0.459369f, 0.662521f, 0.745359f, 0.0500914f, 0.795045f, 0.422697f, 0.380711f, 0.512343f, 0.660764f, 0.61535f, 0.486847f, 0.816118f, 0.00446232f, 0.834289f, 0.0770077f, 0.103084f, 0.0484243f, 0.214223f, 0.166285f, 0.62742f, 0.0472456f, 0.837196f, 0.116198f, 0.719539f, 0.365788f, 0.604195f, 0.216756f, 0.506324f, 0.964941f, 0.758881f, 0.287923f, 0.242855f, 0.845738f, 0.813966f, 0.267799f, 0.0919762f, 0.925327f, 0.951424f, 0.0960476f, 0.566278f, 0.316084f, 0.341953f, 0.899627f, 0.417059f, 0.175193f, 0.0221171f, 0.312482f, 0.686303f, 0.0341158f, 0.736901f, 0.178985f, 0.0339552f, 0.8749f, 0.599127f, 0.196911f, 0.00325751f, 0.308875f, 0.0649545f, 0.969831f, 0.964767f, 0.202674f, 0.889139f, 0.968017f, 0.8597f, 0.595312f, 0.901864f, 0.557683f, 0.536565f, 0.386705f, 0.393704f, 0.739662f, 0.021824f, 0.288998f, 0.872303f, 0.202635f, 0.333721f, 0.0343226f, 0.725161f, 0.521797f, 0.115912f, 0.393879f, 0.326283f, 0.654359f, 0.626146f, 0.979221f, 0.763695f, 0.274333f, 0.0993109f, 0.300461f, 0.535933f, 0.354048f, 0.417858f, 0.969487f, 0.391937f, 0.0182954f, 0.426009f, 0.160548f, 0.253601f, 0.321055f, 0.81261f, 0.672767f, 0.332482f, 0.688431f, 0.492724f, 0.278023f, 0.395292f, 0.994346f, 0.990038f, 0.940437f, 0.987702f, 0.897383f, 0.618082f, 0.145988f, 0.880935f, 0.842363f, 0.125139f, 0.116849f, 0.460842f, 0.314178f, 0.043245f, 0.4142f, 0.89175f, 0.574041f, 0.931528f, 0.0336511f, 0.56791f, 0.71331f, 0.895303f, 0.891334f, 0.68638f, 0.327461f, 0.548034f, 0.543829f, 0.684925f, 0.253966f, 0.102468f, 0.520761f, 0.0809975f, 0.131117f, 0.154081f, 0.0567908f, 0.648202f, 0.0766852f, 0.823876f, 0.897105f, 0.70522f, 0.764765f, 0.875013f, 0.135578f, 0.404278f, 0.523236f, 0.255683f, 0.512845f, 0.938046f, 0.856716f, 0.468823f, 0.804831f, 0.355443f, 0.0695988f, 0.98588f, 0.466855f, 0.369401f, 0.86012f, 0.909353f, 0.749526f, 0.953432f, 0.231657f, 0.0795231f, 0.118461f, 0.163754f, 0.230921f, 0.911695f, 0.87489f, 0.488234f, 0.551272f, 0.905874f, 0.730349f, 0.759735f, 0.560559f, 0.615156f, 0.648054f, 0.896412f, 0.953343f, 0.150539f, 0.139232f, 0.843768f, 0.395228f, 0.457077f, 0.945858f, 0.537195f, 0.127711f, 0.831302f, 0.60837f, 0.672555f, 0.187146f, 0.217717f, 0.420651f, 0.435428f, 0.44673f, 0.665936f, 0.451481f, 0.975464f, 0.983256f, 0.754789f, 0.454815f, 0.947708f, 0.636952f, 0.795338f, 0.289539f, 0.359336f, 0.632853f, 0.0136475f, 0.298275f, 0.745858f, 0.686665f, 0.843021f, 0.213234f, 0.14509f, 0.0492505f, 0.70451f, 0.579702f, 0.756544f, 0.186221f, 0.904439f, 0.622428f, 0.261804f, 0.230037f, 0.483166f, 0.842863f, 0.64908f, 0.412451f, 0.195573f, 0.397488f, 0.542667f, 0.973308f, 0.508496f, 0.718492f, 0.527095f, 0.0736815f, 0.49691f, 0.258268f, 0.112948f, 0.0283789f, 0.120366f, 0.971176f, 0.437164f, 0.779575f, 0.253816f, 0.287045f, 0.849195f, 0.152545f, 0.351503f, 0.972983f, 0.190885f, 0.392457f, 0.0147285f, 0.219052f, 0.0749137f, 0.130611f, 0.835668f, 0.992439f, 0.842531f, 0.551067f, 0.804734f, 0.308835f, 0.933938f, 0.943624f, 0.637959f, 0.421375f, 0.64275f, 0.521519f, 0.203072f, 0.935172f, 0.877969f, 0.188652f, 0.399836f, 0.405885f, 0.398434f, 0.72053f, 0.706255f, 0.275481f, 0.893655f, 0.401233f, 0.866799f, 0.387276f, 0.0657183f, 0.442247f, 0.609669f, 0.576605f, 0.344086f, 0.44144f, 0.913102f, 0.398888f, 0.968562f, 0.573847f, 0.0929474f, 0.958679f, 0.563598f, 0.642657f, 0.0945982f, 0.482204f, 0.904375f, 0.994957f, 0.802897f, 0.502411f, 0.84817f, 0.963312f, 0.445155f, 0.916581f, 0.249594f, 0.963417f, 0.257998f, 0.506907f, 0.432447f, 0.645067f, 0.993154f, 0.35397f, 0.291207f, 0.805341f, 0.784517f, 0.0604069f, 0.0838133f, 0.27463f, 0.0784429f, 0.18857f, 0.502832f, 0.0992244f, 0.912633f, 0.117638f, 0.590154f, 0.666609f, 0.0591217f, 0.255805f, 0.77494f, 0.491763f, 0.191678f, 0.103678f, 0.0159232f, 0.152233f, 0.715904f, 0.679012f, 0.7397f, 0.090081f, 0.21494f, 0.507191f, 0.174881f, 0.571327f, 0.104085f, 0.152587f, 0.641194f, 0.928891f, 0.570947f, 0.971235f, 0.229893f, 0.319219f, 0.805914f, 0.221738f, 0.28536f, 0.821369f, 0.839343f, 0.417271f, 0.801295f, 0.610942f, 0.669377f, 0.162577f, 0.402268f, 0.127565f, 0.404972f, 0.849395f, 0.657328f, 0.94097f, 0.398055f, 0.170477f, 0.705278f, 0.988333f, 0.251353f, 0.792618f, 0.486964f, 0.815419f, 0.341093f, 0.0126532f, 0.410235f, 0.55881f, 0.0887572f, 0.763223f, 0.313562f, 0.631297f, 0.245806f, 0.577398f, 0.0776973f, 0.61505f, 0.397992f, 0.0350695f, 0.648541f, 0.727337f, 0.936424f, 0.517721f, 0.111229f, 0.913763f, 0.592251f, 0.00559626f, 0.559341f, 0.994376f, 0.416614f, 0.292548f, 0.202029f, 0.0229131f, 0.480779f, 0.657034f, 0.742421f, 0.532592f, 0.702188f, 0.749077f, 0.859528f, 0.310363f, 0.426907f, 0.797739f, 0.488193f, 0.813929f, 0.38762f, 0.28087f, 0.735248f, 0.0859911f, 0.871615f, 0.0778746f, 0.924287f, 0.738598f, 0.615197f, 0.758289f, 0.353542f, 0.609701f, 0.884774f, 0.418233f, 0.321753f, 0.364006f, 0.123441f, 0.391384f, 0.828042f, 0.199458f, 0.0170972f, 0.311899f, 0.602985f, 0.927549f, 0.353119f, 0.735897f, 0.610741f, 0.504227f, 0.621832f, 0.410354f, 0.441631f, 0.22674f, 0.0221614f, 0.826528f, 0.100437f, 0.610663f, 0.852608f, 0.24596f, 0.596498f, 0.289481f, 0.401341f, 0.0212896f, 0.954353f, 0.126383f, 0.388487f, 0.86353f, 0.530459f, 0.859083f, 0.966511f, 0.795838f, 0.990489f, 0.908049f, 0.696744f, 0.130696f, 0.653053f, 0.323704f, 0.501594f, 0.476333f, 0.125171f, 0.86815f, 0.962872f, 0.800502f, 0.967837f, 0.605911f, 0.543959f, 0.377618f, 0.639163f, 0.0913697f, 0.944725f, 0.388407f, 0.836197f, 0.608426f, 0.00363455f, 0.365028f, 0.912473f, 0.615499f, 0.978168f, 0.821505f, 0.777072f, 0.0574939f, 0.0304424f, 0.931179f, 0.163111f, 0.0839781f, 0.361373f, 0.618165f, 0.387367f, 0.499838f, 0.0465583f, 0.109394f, 0.909945f, 0.103316f, 0.0633438f, 0.928474f, 0.151977f, 0.727656f, 0.270818f, 0.330468f, 0.498373f, 0.352822f, 0.744426f, 0.94411f, 0.805679f, 0.562243f, 0.731822f, 0.682423f, 0.445707f, 0.714585f, 0.215232f, 0.611213f, 0.53818f, 0.120947f, 0.0604359f, 0.317274f, 0.170441f, 0.197338f, 0.111559f, 0.438467f, 0.807278f, 0.0341178f, 0.661611f, 0.104411f, 0.553421f, 0.940274f, 0.567132f, 0.756098f, 0.9386f, 0.096182f, 0.928292f, 0.687291f, 0.269224f, 0.0413027f, 0.987283f, 0.224203f, 0.363323f, 0.553496f, 0.295024f, 0.953036f, 0.343879f, 0.401579f, 0.182595f, 0.761384f, 0.289736f, 0.0878732f, 0.478722f, 0.643365f, 0.116882f, 0.172611f, 0.771067f, 0.222788f, 0.909552f, 0.744369f, 0.0590302f, 0.310517f, 0.741929f, 0.791745f, 0.9682f, 0.0820786f, 0.711899f, 0.0155918f, 0.0208627f, 0.879141f, 0.602773f, 0.377763f, 0.961243f, 0.858891f, 0.548141f, 0.472792f, 0.46125f, 0.000115944f, 0.57931f, 0.404151f, 0.259395f, 0.941644f, 0.473876f, 0.80341f, 0.55139f, 0.462402f, 0.34294f, 0.433134f, 0.354584f, 0.546915f, 0.0810531f, 0.971719f, 0.100658f, 0.11246f, 0.646787f, 0.82041f, 0.535585f, 0.093344f, 0.811832f, 0.0267991f, 0.117219f, 0.835432f, 0.737747f, 0.854519f, 0.81372f, 0.0821774f, 0.787324f, 0.644162f, 0.445221f, 0.413507f, 0.830886f, 0.0991985f, 0.164089f, 0.962671f, 0.727787f, 0.423429f, 0.72256f, 0.96671f, 0.447832f, 0.733062f, 0.450399f, 0.538211f, 0.41307f, 0.958651f, 0.649948f, 0.149403f, 0.568052f, 0.947765f, 0.770423f, 0.326301f, 0.012517f, 0.288425f, 0.655866f, 0.682063f, 0.570179f, 0.118495f, 0.954162f, 0.688585f, 0.24033f, 0.603098f, 0.18776f, 0.732199f, 0.701395f, 0.96712f, 0.324475f, 0.626275f, 0.628983f, 0.762816f, 0.721907f, 0.23464f, 0.109477f, 0.322375f, 0.164724f, 0.619672f, 0.290712f, 0.628885f, 0.18272f, 0.696498f, 0.625579f, 0.911595f, 0.0962853f, 0.751789f, 0.0270006f, 0.947332f, 0.696595f, 0.0363827f, 0.74882f, 0.481896f, 0.431251f, 0.877495f, 0.284251f, 0.15089f, 0.0553474f, 0.923986f, 0.169439f, 0.656966f, 0.387588f, 0.857278f, 0.174838f, 0.29654f, 0.392849f, 0.513939f, 0.656664f, 0.10045f, 0.378594f, 0.328626f, 0.839265f, 0.0391475f, 0.224348f, 0.0736716f, 0.576007f, 0.686996f, 0.990826f, 0.751486f, 0.218788f, 0.256935f, 0.601321f, 0.914903f, 0.150567f, 0.638969f, 0.581219f, 0.372882f, 0.957224f, 0.852324f, 0.461872f, 0.268735f, 0.647408f, 0.536274f, 0.0426807f, 0.617604f, 0.015211f, 0.950039f, 0.0523193f, 0.471668f, 0.679202f, 0.929816f, 0.165255f, 0.315943f, 0.686393f, 0.595025f, 0.949278f, 0.538595f, 0.303422f, 0.0740217f, 0.501687f, 0.731599f, 0.571007f, 0.119565f, 0.65584f, 0.598696f, 0.63467f, 0.776305f, 0.562427f, 0.313772f, 0.928061f, 0.450614f, 0.960383f, 0.855092f, 0.992951f, 0.0154827f, 0.0779528f, 0.730416f, 0.322916f, 0.233521f, 0.0831729f, 0.356272f, 0.673177f, 0.720174f, 0.505821f, 0.260221f, 0.309618f, 0.671653f, 0.0610973f, 0.444349f, 0.688994f, 0.709228f, 0.410851f, 0.406549f, 0.437169f, 0.256708f, 0.562061f, 0.270783f, 0.349388f, 0.0272204f, 0.195832f, 0.136048f, 0.510488f, 0.657729f, 0.485408f, 0.189335f, 0.628932f, 0.370586f, 0.799635f, 0.938806f, 0.956182f, 0.350723f, 0.828468f, 0.953248f, 0.10736f, 0.758159f, 0.434707f, 0.63785f, 0.506331f, 0.38516f, 0.997164f, 0.386713f, 0.265962f, 0.367723f, 0.103524f, 0.577439f, 0.501831f, 0.451098f, 0.480994f, 0.0405122f, 0.174294f, 0.837503f, 0.341736f, 0.388626f, 0.381439f, 0.712605f, 0.876063f, 0.175593f, 0.00248847f, 0.439806f, 0.634979f, 0.966749f, 0.090913f, 0.358547f, 0.430334f, 0.799127f, 0.719711f, 0.287019f, 0.20864f, 0.19331f, 0.474922f, 0.0376009f, 0.0341275f, 0.0874646f, 0.982185f, 0.676308f, 0.748173f, 0.942651f, 0.111877f, 0.631365f, 0.85004f, 0.495776f, 0.199792f, 0.602691f, 0.827331f, 0.996597f, 0.183644f, 0.486967f, 0.324724f, 0.555411f, 0.690267f, 0.693458f, 0.35693f, 0.244766f, 0.44147f, 0.385816f, 0.975314f, 0.992426f, 0.744957f, 0.764903f, 0.849005f, 0.861171f, 0.692125f, 0.456767f, 0.508464f, 0.776381f, 0.450884f, 0.51987f, 0.345787f, 0.256052f, 0.779928f, 0.0568505f, 0.831422f, 0.476321f, 0.538945f, 0.106334f, 0.706746f, 0.0853278f, 0.183265f, 0.1092f, 0.0367683f, 0.631005f, 0.0128032f, 0.405197f, 0.292649f, 0.834136f, 0.933866f, 0.0126851f, 0.553596f, 0.397056f, 0.854291f, 0.105993f, 0.572903f, 0.640369f, 0.13378f, 0.653865f, 0.0556563f, 0.73828f, 0.623158f, 0.541798f, 0.470322f, 0.313415f, 0.777172f, 0.462445f, 0.736641f, 0.15414f, 0.759531f, 0.330711f, 0.522968f, 0.288768f, 0.387064f, 0.259262f, 0.6222f, 0.845375f, 0.753184f, 0.955956f, 0.582769f, 0.882583f, 0.605337f, 0.793343f, 0.842571f, 0.119f, 0.621153f, 0.67241f, 0.660594f, 0.0719063f, 0.802956f, 0.0299832f, 0.805772f, 0.197772f, 0.108709f, 0.0596038f, 0.361572f, 0.109106f, 0.0504262f, 0.379068f, 0.135993f, 0.932123f, 0.655711f, 0.467488f, 0.953651f, 0.995183f, 0.600547f, 0.579435f, 0.361683f, 0.883898f, 0.957224f, 0.414232f, 0.859719f, 0.675841f, 0.859598f, 0.737493f, 0.422068f, 0.380431f, 0.615861f, 0.395193f, 0.93744f, 0.938338f, 0.212604f, 0.15612f, 0.842522f, 0.143106f, 0.788143f, 0.351586f, 0.680701f, 0.0892752f, 0.172652f, 0.377726f, 0.931982f, 0.426281f, 0.410915f, 0.330425f, 0.564319f, 0.490617f, 0.654643f, 0.00690133f, 0.0815571f, 0.522269f, 0.024506f, 0.0677792f, 0.992591f, 0.31626f, 0.568166f, 0.167079f, 0.0595757f, 0.779459f, 0.486391f, 0.935332f, 0.128365f, 0.999419f, 0.919318f, 0.88351f, 0.374481f, 0.641246f, 0.540668f, 0.546789f, 0.919843f, 0.888966f, 0.253205f, 0.082144f, 0.0527624f, 0.405415f, 0.777987f, 0.554768f, 0.587669f, 0.294094f, 0.555695f, 0.472644f, 0.638553f, 0.917157f, 0.73733f, 0.0576607f, 0.521733f, 0.515638f, 0.149688f, 0.76494f, 0.691338f, 0.853385f, 0.396735f, 0.135935f, 0.0166418f, 0.206788f, 0.997894f, 0.342916f, 0.55061f, 0.0754545f, 0.0201314f, 0.251448f, 0.639895f, 0.0700902f, 0.766749f, 0.561373f, 0.153651f, 0.797279f, 0.555698f, 0.694349f, 0.0948617f, 0.703878f, 0.844539f, 0.0398525f, 0.559561f, 0.812489f, 0.915344f, 0.489303f, 0.109182f, 0.679305f, 0.76255f, 0.9383f, 0.253246f, 0.680216f, 0.0110565f, 0.618663f, 0.689689f, 0.163132f, 0.0493963f, 0.49011f, 0.958381f, 0.983173f, 0.855168f, 0.760666f, 0.178369f, 0.00199092f, 0.607146f, 0.279149f, 0.599521f, 0.827971f, 0.237027f, 0.351067f, 0.296445f, 0.372319f, 0.256365f, 0.313126f, 0.381475f, 0.132621f, 0.855192f, 0.786922f, 0.619528f, 0.628451f, 0.587853f, 0.0535287f, 0.761674f, 0.545655f, 0.14277f, 0.934656f, 0.473947f, 0.440523f, 0.63071f, 0.494316f, 0.726436f, 0.769289f, 0.668158f, 0.39968f, 0.179117f, 0.83941f, 0.0741787f, 0.196486f, 0.529427f, 0.65171f, 0.565489f, 0.091988f, 0.803926f, 0.326504f, 0.469101f, 0.164344f, 0.700227f, 0.401462f, 0.316418f, 0.956057f, 0.591453f, 0.951575f, 0.995776f, 0.51148f, 0.700014f, 0.960786f, 0.614441f, 0.429915f, 0.660289f, 0.025473f, 0.93263f, 0.700426f, 0.744124f, 0.378079f, 0.318421f, 0.612451f, 0.905505f, 0.894334f, 0.969661f, 0.76068f, 0.111572f, 0.995026f, 0.866487f, 0.6214f, 0.450522f, 0.807505f, 0.450048f, 0.0979121f, 0.969788f, 0.046331f, 0.480078f, 0.0681263f, 0.37238f, 0.331279f, 0.774952f, 0.886629f, 0.0322941f, 0.658397f, 0.963058f, 0.731739f, 0.436177f, 0.973296f, 0.306804f, 0.214159f, 0.938776f, 0.293845f, 0.474659f, 0.0141862f, 0.0132554f, 0.339886f, 0.798059f, 0.218099f, 0.311044f, 0.889401f, 0.47282f, 0.482657f, 0.17873f, 0.903616f, 0.947343f, 0.384226f, 0.437886f, 0.891671f, 0.168244f, 0.0821683f, 0.918306f, 0.68467f, 0.27137f, 0.175523f, 0.986191f, 0.99138f, 0.306749f, 0.992668f, 0.655103f, 0.441743f, 0.964043f, 0.515631f, 0.75838f, 0.2101f, 0.25686f, 0.237985f, 0.629618f, 0.0135306f, 0.0943133f, 0.611178f, 0.329292f, 0.654048f, 0.681409f, 0.391284f, 0.611702f, 0.854192f, 0.395516f, 0.124073f, 0.544719f, 0.0211423f, 0.944481f, 0.469952f, 0.73843f, 0.995262f, 0.189854f, 0.726325f, 0.152935f, 0.420038f, 0.0152348f, 0.297722f, 0.21551f, 0.856999f, 0.429922f, 0.733841f, 0.256103f, 0.1931f, 0.503399f, 0.930168f, 0.668618f, 0.219196f, 0.515633f, 0.530485f, 0.542396f, 0.572251f, 0.731562f, 0.483968f, 0.380541f, 0.380553f, 0.0215347f, 0.883127f, 0.0273358f, 0.89078f, 0.916494f, 0.454347f, 0.527829f, 0.507785f, 0.0478597f, 0.563378f, 0.616642f, 0.0074503f, 0.290186f, 0.602187f, 0.179113f, 0.961316f, 0.928421f, 0.391013f, 0.590035f, 0.0624214f, 0.0821742f, 0.770818f, 0.152966f, 0.524695f, 0.113039f, 0.988545f, 0.303614f, 0.0996593f, 0.482933f, 0.529027f, 0.393564f, 0.243453f, 0.864431f, 0.544316f, 0.757896f, 0.57916f, 0.398254f, 0.558485f, 0.601869f, 0.468f, 0.713684f, 0.126366f, 0.782666f, 0.854537f, 0.0155665f, 0.496068f, 0.680507f, 0.529421f, 0.717767f, 0.24828f, 0.664336f, 0.900595f, 0.630351f, 0.14928f, 0.714254f, 0.251655f, 0.563342f, 0.402903f, 0.715264f, 0.207282f, 0.918101f, 0.592773f, 0.0692932f, 0.0514421f, 0.0780173f, 0.873395f, 0.204864f, 0.75043f, 0.159181f, 0.386723f, 0.698629f, 0.365307f, 0.384159f, 0.742745f, 0.229768f, 0.801563f, 0.462753f, 0.700254f, 0.0858789f, 0.242187f, 0.933512f, 0.477361f, 0.0657471f, 0.944888f, 0.0747551f, 0.203376f, 0.0691697f, 0.538435f, 0.829061f, 0.65918f, 0.471535f, 0.44385f, 0.607346f, 0.926966f, 0.513643f, 0.914418f, 0.125999f, 0.0390181f, 0.488024f, 0.640222f, 0.0809229f, 0.0292556f, 0.886372f, 0.15527f, 0.434866f, 0.78704f, 0.050664f, 0.169771f, 0.0945192f, 0.00428554f, 0.527147f, 0.714936f, 0.511054f, 0.216053f, 0.234769f, 0.0535851f, 0.450229f, 0.939208f, 0.428055f, 0.909624f, 0.0451906f, 0.838102f, 0.0949935f, 0.526808f, 0.100957f, 0.599204f, 0.20424f, 0.323692f, 0.169839f, 0.703684f, 0.116666f, 0.0306695f, 0.365019f, 0.381662f, 0.104124f, 0.915699f, 0.886522f, 0.271398f, 0.281559f, 0.0668022f, 0.402649f, 0.430309f, 0.395822f, 0.64094f, 0.133712f, 0.639176f, 0.856029f, 0.72744f, 0.208855f, 0.720241f, 0.412243f, 0.875964f, 0.519342f, 0.756396f, 0.60035f, 0.63725f, 0.893206f, 0.313324f, 0.420214f, 0.334377f, 0.0604622f, 0.717698f, 0.183966f, 0.504313f, 0.763231f, 0.619038f, 0.866789f, 0.171457f, 0.919811f, 0.424679f, 0.885576f, 0.0701226f, 0.123179f, 0.396825f, 0.649088f, 0.848186f, 0.316389f, 0.362565f, 0.865504f, 0.782406f, 0.921865f, 0.552542f, 0.753322f, 0.0596514f, 0.701613f, 0.640246f, 0.240584f, 0.248258f, 0.277888f, 0.196749f, 0.383629f, 0.235176f, 0.624186f, 0.0494645f, 0.56708f, 0.264282f, 0.916124f, 0.953176f, 0.0732884f, 0.0341454f, 0.384885f, 0.815925f, 0.289558f, 0.0723223f, 0.0782428f, 0.354908f, 0.838946f, 0.829841f, 0.947262f, 0.304285f, 0.806128f, 0.0247178f, 0.236912f, 0.989356f, 0.842223f, 0.87976f, 0.487751f, 0.512436f, 0.895716f, 0.027243f, 0.676653f, 0.662825f, 0.810001f, 0.585047f, 0.860084f, 0.946514f, 0.00889925f, 0.761715f, 0.601329f, 0.949837f, 0.889462f, 0.669818f, 0.61214f, 0.443721f, 0.526107f, 0.765669f, 0.449521f, 0.419699f, 0.345418f, 0.0806505f, 0.440493f, 0.13885f, 0.156493f, 0.292409f, 0.396526f, 0.521697f, 0.929818f, 0.954097f, 0.868602f, 0.312119f, 0.977433f, 0.898196f, 0.743006f, 0.902996f, 0.785161f, 0.393288f, 0.902601f, 0.130492f, 0.0191844f, 0.232752f, 0.509778f, 0.123395f, 0.622873f, 0.277308f, 0.69595f, 0.716329f, 0.961681f, 0.946271f, 0.893484f, 0.0615568f, 0.417046f, 0.236197f, 0.0636924f, 0.641134f, 0.969274f, 0.251438f, 0.784564f, 0.271554f, 0.359259f, 0.123831f, 0.270473f, 0.901638f, 0.950994f, 0.160282f, 0.629517f, 0.916716f, 0.639394f, 0.225f, 0.520646f, 0.577397f, 0.424217f, 0.481537f, 0.209618f, 0.980867f, 0.973294f, 0.106634f, 0.349323f, 0.692033f, 0.728899f, 0.247615f, 0.912327f, 0.644278f, 0.258974f, 0.741965f, 0.437609f, 0.42484f, 0.0738021f, 0.311847f, 0.548849f, 0.110502f, 0.954575f, 0.111587f, 0.947695f, 0.465286f, 0.0231469f, 0.520316f, 0.0585843f, 0.450655f, 0.27101f, 0.809019f, 0.559178f, 0.105629f, 0.772859f, 0.416773f, 0.511276f, 0.0302692f, 0.909653f, 0.84874f, 0.561421f, 0.331931f, 0.317488f, 0.71822f, 0.334825f, 0.189305f, 0.809674f, 0.383952f, 0.42976f, 0.163802f, 0.364921f, 0.554067f, 0.854067f, 0.895681f, 0.224681f, 0.0461515f, 0.210409f, 0.405695f, 0.210234f, 0.896022f, 0.416252f, 0.379688f, 0.0404849f, 0.262162f, 0.736689f, 0.929544f, 0.0224726f, 0.165999f, 0.404505f, 0.856974f, 0.302964f, 0.245277f, 0.221148f, 0.116983f, 0.487788f, 0.478373f, 0.323024f, 0.99257f, 0.554101f, 0.743092f, 0.109451f, 0.71124f, 0.809317f, 0.386675f, 0.88938f, 0.987189f, 0.0506929f, 0.736438f, 0.277834f, 0.728736f, 0.812051f, 0.588502f, 0.496814f, 0.327882f, 0.350621f, 0.442151f, 0.800165f, 0.959016f, 0.199712f, 0.288561f, 0.625356f, 0.0663741f, 0.16253f, 0.540014f, 0.0530989f, 0.725205f, 0.666362f, 0.669788f, 0.75412f, 0.560063f, 0.381198f, 0.46331f, 0.69749f, 0.880856f, 0.11325f, 0.56145f, 0.551666f, 0.303476f, 0.930746f, 0.493665f, 0.0393743f, 0.208011f, 0.0926338f, 0.085625f, 0.541639f, 0.0913621f, 0.334134f, 0.564333f, 0.248172f, 0.80962f, 0.852913f, 0.654567f, 0.718814f, 0.372071f, 0.938999f, 0.511519f, 0.515802f, 0.997772f, 0.785145f, 0.11178f, 0.0164981f, 0.79932f, 0.0111799f, 0.210068f, 0.81141f, 0.704657f, 0.697119f, 0.00637811f, 0.127444f, 0.783655f, 0.181962f, 0.488771f, 0.180929f, 0.742406f, 0.951332f, 0.442068f, 0.781665f, 0.953388f, 0.883542f, 0.761271f, 0.519147f, 0.351601f, 0.330865f, 0.425916f, 0.506969f, 0.2123f, 0.678322f, 0.069484f, 0.376491f, 0.0808396f, 0.272536f, 0.639588f, 0.0474258f, 0.475981f, 0.430449f, 0.105085f, 0.178061f, 0.179986f, 0.669677f, 0.613189f, 0.512817f, 0.00236322f, 0.986869f, 0.528479f, 0.125615f, 0.605176f, 0.415238f, 0.419945f, 0.157577f, 0.0262994f, 0.0123918f, 0.524661f, 0.671977f, 0.084633f, 0.800645f, 0.503123f, 0.155638f, 0.454508f, 0.651908f, 0.66678f, 0.565682f, 0.432033f, 0.326811f, 0.0729654f, 0.47984f, 0.481572f, 0.199118f, 0.736326f, 0.665823f, 0.391671f, 0.408702f, 0.209706f, 0.459449f, 0.141601f, 0.946343f, 0.728172f, 0.711024f, 0.948224f, 0.670107f, 0.905047f, 0.779312f, 0.603412f, 0.558603f, 0.115324f, 0.72896f, 0.343519f, 0.724847f, 0.0545496f, 0.172527f, 0.460869f, 0.154799f, 0.777705f, 0.768706f, 0.127243f, 0.0575518f, 0.56434f, 0.875226f, 0.0368527f, 0.581871f, 0.836586f, 0.0309622f, 0.122295f, 0.764266f, 0.507662f, 0.0430015f, 0.54627f, 0.968345f, 0.896402f, 0.988119f, 0.651644f, 0.469269f, 0.860165f, 0.0467171f, 0.119166f, 0.382994f, 0.775127f, 0.330595f, 0.00564631f, 0.792798f, 0.27756f, 0.635727f, 0.969351f, 0.339394f, 0.386299f, 0.50311f, 0.501594f, 0.450898f, 0.129224f, 0.897076f, 0.569154f, 0.859665f, 0.0457243f, 0.786076f, 0.815472f, 0.401849f, 0.0443366f, 0.667972f, 0.858227f, 0.0339023f, 0.38162f, 0.364467f, 0.546809f, 0.792158f, 0.896732f, 0.338401f, 0.790985f, 0.709323f, 0.389329f, 0.412661f, 0.267131f, 0.570449f, 0.41529f, 0.455563f, 0.584359f, 0.361192f, 0.689631f, 0.148885f, 0.565805f, 0.912932f, 0.799891f, 0.140446f, 0.490216f, 0.46693f, 0.731235f, 0.0714677f, 0.87303f, 0.51681f, 0.0520606f, 0.93384f, 0.724988f, 0.34197f, 0.593085f, 0.725204f, 0.528663f, 0.542755f, 0.545362f, 0.589811f, 0.974497f, 0.933991f, 0.302597f, 0.612706f, 0.235915f, 0.858704f, 0.558845f, 0.531967f, 0.390625f, 0.137459f, 0.873559f, 0.400807f, 0.012224f, 0.484347f, 0.335695f, 0.532124f, 0.792587f, 0.379314f, 0.0136789f, 0.427216f, 0.549887f, 0.132834f, 0.552848f, 0.202254f, 0.371912f, 0.358651f, 0.58261f, 0.436477f, 0.224322f, 0.701961f, 0.699412f, 0.0974816f, 0.691123f, 0.652295f, 0.0158443f, 0.487528f, 0.438068f, 0.227273f, 0.513123f, 0.097225f, 0.945677f, 0.643387f, 0.610069f, 0.814074f, 0.728981f, 0.176358f, 0.187068f, 0.417991f, 0.0292344f, 0.854177f, 0.858445f, 0.952635f, 0.0906597f, 0.54569f, 0.718818f, 0.99294f, 0.228028f, 0.0292397f, 0.61293f, 0.275814f, 0.512207f, 0.163246f, 0.0122796f, 0.031737f, 0.341767f, 0.216047f, 0.139495f, 0.188192f, 0.621195f, 0.797469f, 0.104665f, 0.731331f, 0.975936f, 0.889107f, 0.135412f, 0.736147f, 0.834163f, 0.905084f, 0.22627f, 0.80387f, 0.0210373f, 0.661656f, 0.345425f, 0.939666f, 0.421124f, 0.701128f, 0.374584f, 0.10811f, 0.757839f, 0.49641f, 0.657283f, 0.132898f, 0.853988f, 0.108884f, 0.692365f, 0.574381f, 0.416176f, 0.317909f, 0.13654f, 0.390142f, 0.722439f, 0.0488129f, 0.635142f, 0.783404f, 0.0589331f, 0.0413732f, 0.16019f, 0.846985f, 0.968052f, 0.84166f, 0.549916f, 0.300047f, 0.423671f, 0.298409f, 0.581053f, 0.924904f, 0.701728f, 0.20165f, 0.507981f, 0.70413f, 0.615116f, 0.712667f, 0.26879f, 0.471878f, 0.0874282f, 0.731852f, 0.87302f, 0.80928f, 0.694741f, 0.652464f, 0.465504f, 0.395786f, 0.160542f, 0.598191f, 0.429329f, 0.704256f, 0.374392f, 0.746214f, 0.0233449f, 0.654639f, 0.0349414f, 0.00683532f, 0.278451f, 0.796978f, 0.357104f, 0.0156055f, 0.158203f, 0.871539f, 0.469787f, 0.132897f, 0.349076f, 0.73376f, 0.0119042f, 0.171374f, 0.695413f, 0.325416f, 0.642164f, 0.251904f, 0.87876f, 0.456654f, 0.666775f, 0.6687f, 0.520977f, 0.377512f, 0.994112f, 0.320774f, 0.360039f, 0.919251f, 0.491349f, 0.587866f, 0.70591f, 0.899371f, 0.366001f, 0.858993f, 0.149257f, 0.946509f, 0.165769f, 0.571561f, 0.857243f, 0.324397f, 0.799916f, 0.119903f, 0.38724f, 0.519052f, 0.331488f, 0.560134f, 0.852444f, 0.940917f, 0.313066f, 0.0774066f, 0.928305f, 0.974356f, 0.910505f, 0.850625f, 0.365606f, 0.971177f, 0.0528662f, 0.362559f, 0.509423f, 0.875696f, 0.299147f, 0.868427f, 0.0039314f, 0.34909f, 0.0799048f, 0.834776f, 0.883081f, 0.49742f, 0.304393f, 0.60627f, 0.195296f, 0.904527f, 0.492664f, 0.678657f, 0.794073f, 0.96278f, 0.0713241f, 0.519281f, 0.886132f, 0.958058f, 0.0883916f, 0.664776f, 0.882585f, 0.113846f, 0.0913884f, 0.988083f, 0.742503f, 0.203616f, 0.170706f, 0.342501f, 0.812241f, 0.479815f, 0.287091f, 0.797085f, 0.173639f, 0.39054f, 0.573799f, 0.429264f, 0.464452f, 0.793f, 0.837476f, 0.949658f, 0.16387f, 0.847986f, 0.589639f, 0.348009f, 0.621442f, 0.466354f, 0.82176f, 0.21911f, 0.496997f, 0.410376f, 0.251014f, 0.221496f, 0.583801f, 0.0422436f, 0.746097f, 0.936768f, 0.0179766f, 0.281008f, 0.375702f, 0.344484f, 0.0107574f, 0.837914f, 0.0589023f, 0.556087f, 0.596397f, 0.498273f, 0.639891f, 0.101969f, 0.443676f, 0.316228f, 0.58433f, 0.280776f, 0.823466f, 0.476449f, 0.0868284f, 0.503147f, 0.7468f, 0.734962f, 0.485219f, 0.280746f, 0.0357745f, 0.0618097f, 0.523439f, 0.18097f, 0.120984f, 0.878572f, 0.174271f, 0.942672f, 0.856728f, 0.0185821f, 0.607996f, 0.439849f, 0.983726f, 0.340202f, 0.056741f, 0.228597f, 0.168307f, 0.777143f, 0.421289f, 0.479623f, 0.0292844f, 0.700163f, 0.946515f, 0.663362f, 0.0439645f, 0.939458f, 0.448791f, 0.128492f, 0.836196f, 0.679991f, 0.225344f, 0.490306f, 0.225636f, 0.297498f, 0.357109f, 0.325808f, 0.784908f, 0.989303f, 0.996555f, 0.651505f, 0.162203f, 0.397522f, 0.00785712f, 0.824634f, 0.931041f, 0.841834f, 0.0629619f, 0.347198f, 0.279424f, 0.782931f, 0.216024f, 0.781053f, 0.610348f, 0.106273f, 0.310082f, 0.496607f, 0.167085f, 0.237712f, 0.51644f, 0.655786f, 0.157309f, 0.419842f, 0.866477f, 0.0680756f, 0.987071f, 0.237696f, 0.0920581f, 0.162765f, 0.869637f, 0.00581341f, 0.561312f, 0.37681f, 0.918244f, 0.923747f, 0.345497f, 0.118504f, 0.954044f, 0.486536f, 0.705112f, 0.0107289f, 0.0997009f, 0.584292f, 0.814548f, 0.295217f, 0.422746f, 0.638047f, 0.991411f, 0.0414895f, 0.264283f, 0.92863f, 0.537146f, 0.837495f, 0.063343f, 0.0125096f, 0.465855f, 0.222677f, 0.211889f, 0.321458f, 0.14737f, 0.139611f, 0.930517f, 0.189931f, 0.204486f, 0.105795f, 0.344059f, 0.649703f, 0.483116f, 0.833087f, 0.931833f, 0.873272f, 0.488936f, 0.729881f, 0.0375505f, 0.388399f, 0.763125f, 0.165755f, 0.0216007f, 0.770192f, 0.272306f, 0.216977f, 0.370487f, 0.828848f, 0.645115f, 0.498873f, 0.419112f, 0.578879f, 0.766108f, 0.457062f, 0.566512f, 0.0419029f, 0.0249131f, 0.959833f, 0.973717f, 0.471592f, 0.232222f, 0.238165f, 0.97537f, 0.489763f, 0.998287f, 0.680591f, 0.207046f, 0.429929f, 0.169956f, 0.670421f, 0.73972f, 0.353622f, 0.441594f, 0.419911f, 0.263872f, 0.0498089f, 0.813765f, 0.470915f, 0.819718f, 0.449614f, 0.946796f, 0.591326f, 0.939916f, 0.679555f, 0.92406f, 0.144002f, 0.0820027f, 0.924349f, 0.617001f, 0.985386f, 0.686784f, 0.505408f, 0.566169f, 0.164351f, 0.766942f, 0.0591424f, 0.158236f, 0.840936f, 0.771826f, 0.570361f, 0.384152f, 0.223917f, 0.992899f, 0.567184f, 0.549263f, 0.179237f, 0.633187f, 0.101612f, 0.0585411f, 0.485621f, 0.438939f, 0.866184f, 0.156396f, 0.718994f, 0.365662f, 0.752446f, 0.906147f, 0.107901f, 0.214145f, 0.761709f, 0.66301f, 0.859022f, 0.312942f, 0.209947f, 0.78767f, 0.70115f, 0.63421f, 0.808469f, 0.218522f, 0.899243f, 0.338673f, 0.402534f, 0.643909f, 0.953206f, 0.145768f, 0.877047f, 0.195736f, 0.0413286f, 0.854383f, 0.899998f, 0.571806f, 0.412295f, 0.141662f, 0.26884f, 0.615193f, 0.102438f, 0.4244f, 0.298273f, 0.464611f, 0.909593f, 0.939816f, 0.768945f, 0.652107f, 0.448032f, 0.991791f, 0.659261f, 0.0223205f, 0.537184f, 0.781411f, 0.223751f, 0.770998f, 0.435699f, 0.395948f, 0.363257f, 0.848033f, 0.987993f, 0.403496f, 0.905348f, 0.64754f, 0.937878f, 0.0317852f, 0.372872f, 0.855145f, 0.863334f, 0.00879159f, 0.353361f, 0.390425f, 0.27679f, 0.61777f, 0.301791f, 0.0775752f, 0.993317f, 0.433401f, 0.964675f, 0.652717f, 0.918207f, 0.385286f, 0.730553f, 0.146572f, 0.367731f, 0.123737f, 0.506913f, 0.783507f, 0.0319109f, 0.577727f, 0.641786f, 0.918864f, 0.0881872f, 0.217138f, 0.151036f, 0.652563f, 0.919869f, 0.265934f, 0.064997f, 0.527071f, 0.519617f, 0.648192f, 0.438752f, 0.0952445f, 0.174509f, 0.579974f, 0.933857f, 0.038362f, 0.379932f, 0.609649f, 0.804567f, 0.821148f, 0.556734f, 0.890532f, 0.560089f, 0.74925f, 0.578395f, 0.229507f, 0.582763f, 0.739994f, 0.18902f, 0.162725f, 0.964016f, 0.63295f, 0.781545f, 0.350326f, 0.149459f, 0.594382f, 0.833603f, 0.323194f, 0.665038f, 0.193284f, 0.910884f, 0.0383404f, 0.953567f, 0.599549f, 0.0964137f, 0.758202f, 0.98538f, 0.19992f, 0.242626f, 0.185377f, 0.399657f, 0.16926f, 0.621697f, 0.138662f, 0.585958f, 0.372343f, 0.705057f, 0.535386f, 0.876265f, 0.221161f, 0.679675f, 0.70328f, 0.14226f, 0.223886f, 0.492413f, 0.328784f, 0.0019295f, 0.0618598f, 0.32195f, 0.792413f, 0.974461f, 0.258373f, 0.546162f, 0.638832f, 0.193545f, 0.718397f, 0.297724f, 0.87448f, 0.281254f, 0.401263f, 0.732132f, 0.840846f, 0.51548f, 0.477188f, 0.520529f, 0.0574211f, 0.879896f, 0.825221f, 0.823569f, 0.450494f, 0.643669f, 0.738295f, 0.637289f, 0.747925f, 0.1375f, 0.584215f, 0.486092f, 0.980283f, 0.834996f, 0.0355096f, 0.000402285f, 0.39892f, 0.475797f, 0.677773f, 0.903426f, 0.786041f, 0.948753f, 0.758994f, 0.300903f, 0.948204f, 0.980958f, 0.24324f, 0.224714f, 0.476874f, 0.998334f, 0.253935f, 0.695822f, 0.771502f, 0.260869f, 0.404175f, 0.613603f, 0.412185f, 0.482095f, 0.701283f, 0.399169f, 0.393656f, 0.7898f, 0.373355f, 0.349326f, 0.0763198f, 0.755844f, 0.970799f, 0.702633f, 0.9694f, 0.806628f, 0.283078f, 0.635329f, 0.261826f, 0.613068f, 0.427522f, 0.906394f, 0.838702f, 0.0584486f, 0.93759f, 0.279747f, 0.613374f, 0.726184f, 0.570557f, 0.132885f, 0.157892f, 0.661021f, 0.624447f, 0.238375f, 0.265631f, 0.210045f, 0.20074f, 0.554434f, 0.462112f, 0.961678f, 0.774916f, 0.828709f, 0.160807f, 0.387183f, 0.854869f, 0.772969f, 0.800111f, 0.146033f, 0.430107f, 0.473189f, 0.871752f, 0.414768f, 0.63419f, 0.371186f, 0.169567f, 0.113154f, 0.785562f, 0.485109f, 0.640857f, 0.438677f, 0.088096f, 0.861557f, 0.669475f, 0.0899299f, 0.68428f, 0.953528f, 0.944065f, 0.318532f, 0.568949f, 0.97022f, 0.241968f, 0.438976f, 0.706167f, 0.484883f, 0.723827f, 0.649034f, 0.98121f, 0.462545f, 0.718383f, 0.397894f, 0.330632f, 0.337969f, 0.235948f, 0.152374f, 0.987381f, 0.0938732f, 0.30328f, 0.891918f, 0.271634f, 0.277232f, 0.386458f, 0.299482f, 0.0179493f, 0.530283f, 0.25965f, 0.76149f, 0.792983f, 0.764066f, 0.811147f, 0.579048f, 0.285016f, 0.732108f, 0.0827798f, 0.529541f, 0.587462f, 0.345881f, 0.0788342f, 0.766859f, 0.777163f, 0.0787395f, 0.318288f, 0.104054f, 0.901717f, 0.224164f, 0.831469f, 0.958816f, 0.571994f, 0.20373f, 0.446843f, 0.103416f, 0.469303f, 0.585657f, 0.528659f, 0.589496f, 0.741476f, 0.223181f, 0.576454f, 0.280938f, 0.942264f, 0.78115f, 0.906357f, 0.497306f, 0.997612f, 0.128139f, 0.520737f, 0.813598f, 0.562275f, 0.988924f, 0.391404f, 0.44395f, 0.627078f, 0.594139f, 0.299362f, 0.151443f, 0.840365f, 0.280755f, 0.212267f, 0.401839f, 0.605054f, 0.57246f, 0.111736f, 0.591323f, 0.34224f, 0.684317f, 0.581794f, 0.996372f, 0.255064f, 0.327143f, 0.0313873f, 0.502993f, 0.573032f, 0.0913457f, 0.7693f, 0.460883f, 0.609705f, 0.508603f, 0.32091f, 0.665962f, 0.592396f, 0.919613f, 0.8542f, 0.288894f, 0.884967f, 0.990343f, 0.240901f, 0.0860902f, 0.722785f, 0.281888f, 0.502922f, 0.430888f, 0.196899f, 0.865514f, 0.830811f, 0.345966f, 0.620081f, 0.363402f, 0.61164f, 0.331896f, 0.493554f, 0.759704f, 0.0400446f, 0.487329f, 0.825074f, 0.462664f, 0.95134f, 0.585477f, 0.0819551f, 0.024318f, 0.277774f, 0.909848f, 0.313303f, 0.636655f, 0.873505f, 0.286556f, 0.333964f, 0.736289f, 0.381869f, 0.770467f, 0.804935f, 0.178941f, 0.888171f, 0.918411f, 0.44095f, 0.617121f, 0.951869f, 0.581627f, 0.691829f, 0.895297f, 0.196821f, 0.688995f, 0.860461f, 0.618282f, 0.280913f, 0.641262f, 0.0850014f, 0.582677f, 0.352706f, 0.132268f, 0.195049f, 0.0168379f, 0.894165f, 0.905649f, 0.227368f, 0.214574f, 0.794269f, 0.479328f, 0.286995f, 0.388914f, 0.171636f, 0.169882f, 0.136362f, 0.052331f, 0.202716f, 0.624452f, 0.378773f, 0.314778f, 0.23387f, 0.00301555f, 0.72689f, 0.737593f, 0.128541f, 0.473689f, 0.91113f, 0.0552363f, 0.839909f, 0.776099f, 0.925945f, 0.977754f, 0.594462f, 0.840629f, 0.829297f, 0.0733164f, 0.629317f, 0.807152f, 0.487663f, 0.752347f, 0.19413f, 0.675738f, 0.0783495f, 0.735455f, 0.451829f, 0.243855f, 0.223202f, 0.635667f, 0.598798f, 0.396199f, 0.74669f, 0.977885f, 0.634633f, 0.0819732f, 0.552457f, 0.834431f, 0.928032f, 0.560666f, 0.450888f, 0.309971f, 0.899419f, 0.0437204f, 0.545207f, 0.439469f, 0.126718f, 0.78781f, 0.332239f, 0.805375f, 0.470927f, 0.430111f, 0.922911f, 0.556821f, 0.71086f, 0.522538f, 0.59139f, 0.374755f, 0.933486f, 0.711548f, 0.963196f, 0.153702f, 0.11815f, 0.989622f, 0.0472076f, 0.641319f, 0.384259f, 0.261419f, 0.958408f, 0.479235f, 0.339818f, 0.981219f, 0.432372f, 0.610901f, 0.712508f, 0.094701f, 0.660963f, 0.0658332f, 0.937364f, 0.741942f, 0.157425f, 0.603666f, 0.847272f, 0.673403f, 0.737276f, 0.735831f, 0.908019f, 0.0509612f, 0.325314f, 0.474769f, 0.979748f, 0.758369f, 0.460515f, 0.25145f, 0.970487f, 0.862656f, 0.364827f, 0.731362f, 0.466785f, 0.648431f, 0.537698f, 0.187376f, 0.798932f, 0.635509f, 0.805815f, 0.240966f, 0.226872f, 0.505037f, 0.863647f, 0.701438f, 0.85284f, 0.414368f, 0.501964f, 0.608772f, 0.0189699f, 0.540045f, 0.863871f, 0.105737f, 0.355939f, 0.822397f, 0.391781f, 0.913539f, 0.461184f, 0.416663f, 0.609891f, 0.967796f, 0.764992f, 0.888574f, 0.849941f, 0.736768f, 0.183908f, 0.937005f, 0.805695f, 0.861486f, 0.832524f, 0.729004f, 0.765262f, 0.520346f, 0.115059f, 0.870998f, 0.361088f, 0.513614f, 0.842225f, 0.0881088f, 0.292429f, 0.137908f, 0.356444f, 0.599227f, 0.301219f, 0.0408697f, 0.480646f, 0.681125f, 0.189021f, 0.685976f, 0.945816f, 0.260809f, 0.10544f, 0.367217f, 0.305965f, 0.352297f, 0.531191f, 0.041613f, 0.37311f, 0.0421497f, 0.190846f, 0.569045f, 0.0161333f, 0.50502f, 0.288929f, 0.0668288f, 0.194221f, 0.338985f, 0.815525f, 0.287069f, 0.306393f, 0.651041f, 0.840396f, 0.865013f, 0.64269f, 0.992619f, 0.779065f, 0.853414f, 0.278578f, 0.855896f, 0.0876856f, 0.658969f, 0.199614f, 0.0981758f, 0.678445f, 0.783786f, 0.936603f, 0.551777f, 0.523649f, 0.163702f, 0.70052f, 0.945307f, 0.156769f, 0.235407f, 0.355036f, 0.954613f, 0.587805f, 0.347914f, 0.325659f, 0.952508f, 0.718319f, 0.332959f, 0.503972f, 0.770691f, 0.571798f, 0.211117f, 0.872724f, 0.225197f, 0.343215f, 0.172587f, 0.778286f, 0.941321f, 0.846916f, 0.634631f, 0.502396f, 0.696883f, 0.320475f, 0.00211559f, 0.48145f, 0.150909f, 0.237578f, 0.349145f, 0.212481f, 0.124726f, 0.129041f, 0.151703f, 0.895788f, 0.667502f, 0.201572f, 0.786089f, 0.148381f, 0.152508f, 0.312843f, 0.0899695f, 0.914312f, 0.62648f, 0.105145f, 0.96813f, 0.376314f, 0.155949f, 0.956938f, 0.822807f, 0.582056f, 0.589151f, 0.743151f, 0.501574f, 0.653275f, 0.0697762f, 0.54845f, 0.905452f, 0.612918f, 0.398713f, 0.21043f, 0.497297f, 0.629791f, 0.491014f, 0.25102f, 0.324733f, 0.876637f, 0.221174f, 0.164433f, 0.304469f, 0.207277f, 0.666364f, 0.209962f, 0.854519f, 0.544456f, 0.380603f, 0.515054f, 0.116261f, 0.721621f, 0.263809f, 0.745411f, 0.94723f, 0.0715318f, 0.0988318f, 0.834298f, 0.678132f, 0.257814f, 0.18577f, 0.655749f, 0.874559f, 0.475069f, 0.777368f, 0.920175f, 0.433812f, 0.392358f, 0.967079f, 0.094701f, 0.542215f, 0.516423f, 0.162233f, 0.280253f, 0.782812f, 0.483115f, 0.809369f, 0.929462f, 0.504624f, 0.920034f, 0.188641f, 0.452626f, 0.509906f, 0.070377f, 0.908057f, 0.042267f, 0.877117f, 0.918825f, 0.787805f, 0.997339f, 0.195188f, 0.908248f, 0.0861618f, 0.199936f, 0.895063f, 0.476756f, 0.115844f, 0.0640491f, 0.392435f, 0.494361f, 0.509511f, 0.293985f, 0.0741485f, 0.0754649f, 0.719831f, 0.281555f, 0.787704f, 0.353963f, 0.961797f, 0.345935f, 0.0333126f, 0.575006f, 0.1463f, 0.49132f, 0.215853f, 0.233856f, 0.372685f, 0.705419f, 0.745246f, 0.189824f, 0.893101f, 0.147042f, 0.742171f, 0.487025f, 0.968412f, 0.902037f, 0.34699f, 0.103765f, 0.163472f, 0.351792f, 0.408973f, 0.987175f, 0.749758f, 0.708926f, 0.0282582f, 0.675637f, 0.877405f, 0.440848f, 0.46761f, 0.404586f, 0.498625f, 0.741978f, 0.890635f, 0.606071f, 0.132024f, 0.521916f, 0.274432f, 0.636984f, 0.177254f, 0.854536f, 0.590174f, 0.0104405f, 0.751678f, 0.838834f, 0.531277f, 0.396504f, 0.334877f, 0.983738f, 0.820574f, 0.452551f, 0.111009f, 0.923228f, 0.919036f, 0.000190886f, 0.640469f, 0.694707f, 0.825114f, 0.373546f, 0.396162f, 0.25915f, 0.699044f, 0.469011f, 0.351018f, 0.751517f, 0.0135174f, 0.499949f, 0.301832f, 0.860023f, 0.106183f, 0.552073f, 0.645349f, 0.766318f, 0.296837f, 0.0505084f, 0.780736f, 0.263128f, 0.115076f, 0.43891f, 0.362991f, 0.500796f, 0.154705f, 0.69483f, 0.599993f, 0.0731594f, 0.578293f, 0.985218f, 0.943442f, 0.246202f, 0.085457f, 0.974608f, 0.740269f, 0.13506f, 0.532824f, 0.126926f, 0.205299f, 0.162119f, 0.630172f, 0.785893f, 0.084874f, 0.354642f, 0.957355f, 0.575205f, 0.816908f, 0.275245f, 0.657655f, 0.709045f, 0.0740773f, 0.072105f, 0.250221f, 0.454954f, 0.787529f, 0.852794f, 0.221947f, 0.723994f, 0.525126f, 0.191795f, 0.10192f, 0.65747f, 0.595842f, 0.865054f, 0.129639f, 0.780963f, 0.454539f, 0.471482f, 0.433569f, 0.150568f, 0.0643218f, 0.864143f, 0.405488f, 0.985996f, 0.9868f, 0.840035f, 0.493108f, 0.578922f, 0.716618f, 0.521337f, 0.43809f, 0.168781f, 0.685721f, 0.241985f, 0.508433f, 0.87115f, 0.73972f, 0.52165f, 0.5967f, 0.682724f, 0.424041f, 0.45458f, 0.11836f, 0.640508f, 0.00572994f, 0.423046f, 0.55627f, 0.640683f, 0.932487f, 0.457145f, 0.797803f, 0.936772f, 0.245257f, 0.516073f, 0.842246f, 0.768496f, 0.820881f, 0.84557f, 0.257549f, 0.201377f, 0.787107f, 0.843035f, 0.741106f, 0.950916f, 0.0673781f, 0.764331f, 0.392215f, 0.867684f, 0.208666f, 0.767705f, 0.807338f, 0.955783f, 0.911108f, 0.821371f, 0.754469f, 0.118085f, 0.483238f, 0.752593f, 0.78099f, 0.716943f, 0.290101f, 0.667643f, 0.058115f, 0.865124f, 0.494295f, 0.599276f, 0.729424f, 0.563727f, 0.120082f, 0.471502f, 0.525764f, 0.363146f, 0.796546f, 0.194646f, 0.335098f, 0.593727f, 0.993955f, 0.193552f, 0.282172f, 0.344447f, 0.188144f, 0.367341f, 0.369837f, 0.167983f, 0.231762f, 0.309907f, 0.569787f, 0.783164f, 0.0142529f, 0.731876f, 0.686713f, 0.429142f, 0.163084f, 0.685502f, 0.152035f, 0.340327f, 0.653107f, 0.854134f, 0.545174f, 0.280415f, 0.246839f, 0.910729f, 0.44662f, 0.37323f, 0.933784f, 0.11956f, 0.753155f, 0.41805f, 0.727492f, 0.296936f, 0.114884f, 0.653231f, 0.552082f, 0.0770612f, 0.802197f, 0.543453f, 0.308937f, 0.752614f, 0.0418398f, 0.840589f, 0.239802f, 0.832301f, 0.621549f, 0.495012f, 0.775235f, 0.84562f, 0.790266f, 0.875287f, 0.842682f, 0.782191f, 0.207096f, 0.434501f, 0.16516f, 0.25881f, 0.882546f, 0.0520791f, 0.910952f, 0.550428f, 0.979296f, 0.822338f, 0.693308f, 0.010686f, 0.386402f, 0.867304f, 0.939875f, 0.560713f, 0.270201f, 0.443515f, 0.119218f, 0.391537f, 0.792742f, 0.230883f, 0.612542f, 0.578704f, 0.6343f, 0.00493186f, 0.962376f, 0.814058f, 0.128649f, 0.159273f, 0.126206f, 0.950942f, 0.0415704f, 0.686412f, 0.843708f, 0.384128f, 0.704849f, 0.325643f, 0.88536f, 0.107272f, 0.934188f, 0.859817f, 0.81426f, 0.483232f, 0.343538f, 0.186065f, 0.238609f, 0.773701f, 0.976711f, 0.554868f, 0.445094f, 0.463711f, 0.772335f, 0.37477f, 0.335995f, 0.448906f, 0.888065f, 0.892437f, 0.462752f, 0.275714f, 0.848819f, 0.728886f, 0.298102f, 0.35338f, 0.137639f, 0.135059f, 0.906505f, 0.238063f, 0.805348f, 0.126255f, 0.920968f, 0.930728f, 0.551014f, 0.920872f, 0.739565f, 0.542894f, 0.10619f, 0.204478f, 0.771847f, 0.902597f, 0.355718f, 0.911566f, 0.0575367f, 0.562718f, 0.891847f, 0.7837f, 0.997554f, 0.569518f, 0.495948f, 0.710388f, 0.738174f, 0.466616f, 0.401706f, 0.248976f, 0.258626f, 0.83484f, 0.216465f, 0.0729643f, 0.164988f, 0.837252f, 0.442034f, 0.296171f, 0.798832f, 0.0558175f, 0.863475f, 0.77015f, 0.39575f, 0.304668f, 0.0203643f, 0.20633f, 0.695167f, 0.919692f, 0.436391f, 0.963263f, 0.303426f, 0.193292f, 0.768452f, 0.45916f, 0.699389f, 0.690452f, 0.651119f, 0.888002f, 0.355534f, 0.198755f, 0.803778f, 0.870089f, 0.809225f, 0.0915294f, 0.0459957f, 0.986851f, 0.250905f, 0.190439f, 0.429193f, 0.370636f, 0.336584f, 0.384537f, 0.768718f, 0.0982904f, 0.95832f, 0.840603f, 0.542528f, 0.286739f, 0.540849f, 0.752271f, 0.513449f, 0.766535f, 0.102456f, 0.334374f, 0.634429f, 0.0449059f, 0.56841f, 0.937627f, 0.216849f, 0.359826f, 0.693254f, 0.502889f, 0.693115f, 0.506843f, 0.872625f, 0.424638f, 0.174276f, 0.363718f, 0.536146f, 0.355215f, 0.0546224f, 0.90829f, 0.967318f, 0.693203f, 0.97595f, 0.79812f, 0.924415f, 0.5999f, 0.732423f, 0.481824f, 0.0390074f, 0.858689f, 0.0819876f, 0.135897f, 0.0322327f, 0.314027f, 0.601123f, 0.00499386f, 0.610211f, 0.0319087f, 0.0406788f, 0.801345f, 0.696581f, 0.366098f, 0.266956f, 0.21206f, 0.904011f, 0.118976f, 0.00920613f, 0.69959f, 0.829873f, 0.943921f, 0.558463f, 0.60533f, 0.724935f, 0.549891f, 0.733106f, 0.530256f, 0.694571f, 0.713422f, 0.611106f, 0.072951f, 0.404777f, 0.0158893f, 0.161346f, 0.693612f, 0.518936f, 0.878131f, 0.703876f, 0.611929f, 0.408529f, 0.768275f, 0.808623f, 0.959361f, 0.326656f, 0.83589f, 0.521971f, 0.977083f, 0.867278f, 0.395405f, 0.736166f, 0.0280796f, 0.940964f, 0.732938f, 0.217135f, 0.780848f, 0.725279f, 0.613338f, 0.546845f, 0.810228f, 0.647924f, 0.525042f, 0.971578f, 0.335967f, 0.588887f, 0.928548f, 0.957302f, 0.787647f, 0.0901167f, 0.175435f, 0.704188f, 0.00509918f, 0.839273f, 0.954534f, 0.310311f, 0.744614f, 0.598133f, 0.511078f, 0.294883f, 0.821891f, 0.658491f, 0.223005f, 0.0152977f, 0.822106f, 0.11655f, 0.380148f, 0.53276f, 0.511126f, 0.512797f, 0.365613f, 0.777057f, 0.733977f, 0.522855f, 0.281136f, 0.89646f, 0.467778f, 0.361306f, 0.0228623f, 0.286544f, 0.409327f, 0.497749f, 0.822417f, 0.136394f, 0.682058f, 0.916336f, 0.910317f, 0.232289f, 0.639161f, 0.580547f, 0.602081f, 0.0719611f, 0.291157f, 0.40773f, 0.0201031f, 0.728334f, 0.458429f, 0.362484f, 0.996845f, 0.366949f, 0.586223f, 0.681143f, 0.0242279f, 0.620375f, 0.51662f, 0.93688f, 0.538165f, 0.912697f, 0.791674f, 0.713292f, 0.433204f, 0.0843528f, 0.697764f, 0.43884f, 0.891681f, 0.689411f, 0.791984f, 0.224784f, 0.349407f, 0.375761f, 0.335028f, 0.311385f, 0.750942f, 0.616441f, 0.844438f, 0.251643f, 0.660741f, 0.0805609f, 0.769433f, 0.407609f, 0.132638f, 0.0332942f, 0.675042f, 0.809139f, 0.519062f, 0.00151899f, 0.721963f, 0.579542f, 0.248223f, 0.860977f, 0.123355f, 0.208809f, 0.771286f, 0.181604f, 0.49451f, 0.0744826f, 0.72343f, 0.847404f, 0.0304009f, 0.491753f, 0.330725f, 0.48852f, 0.452269f, 0.56276f, 0.352293f, 0.731438f, 0.789613f, 0.198553f, 0.411078f, 0.284744f, 0.471403f, 0.464478f, 0.799206f, 0.728932f, 0.884635f, 0.590945f, 0.0569764f, 0.0725263f, 0.342085f, 0.370218f, 0.639383f, 0.932643f, 0.171662f, 0.675389f, 0.508058f, 0.678454f, 0.75074f, 0.292735f, 0.0321314f, 0.152056f, 0.887809f, 0.0336618f, 0.0938312f, 0.37829f, 0.0992418f, 0.539253f, 0.748581f, 0.308604f, 0.135415f, 0.22339f, 0.970354f, 0.579154f, 0.484325f, 0.259782f, 0.0175138f, 0.504341f, 0.768727f, 0.704132f, 0.736099f, 0.924297f, 0.123621f, 0.331132f, 0.764928f, 0.142885f, 0.630501f, 0.754362f, 0.643633f, 0.675589f, 0.793947f, 0.264666f, 0.293463f, 0.86976f, 0.13139f, 0.910967f, 0.579427f, 0.775444f, 0.509456f, 0.568785f, 0.481629f, 0.534621f, 0.963375f, 0.926956f, 0.596428f, 0.695135f, 0.976368f, 0.985007f, 0.219229f, 0.18263f, 0.0330791f, 0.794537f, 0.36597f, 0.521017f, 0.437158f, 0.501348f, 0.751041f, 0.766312f, 0.46439f, 0.00366036f, 0.599896f, 0.398209f, 0.76599f, 0.95793f, 0.364972f, 0.493257f, 0.452247f, 0.712015f, 0.024297f, 0.225755f, 0.527445f, 0.844692f, 0.587732f, 0.0250402f, 0.337706f, 0.908794f, 0.589894f, 0.831098f, 0.270304f, 0.638438f, 0.0316758f, 0.573326f, 0.0306914f, 0.946889f, 0.0775509f, 0.42889f, 0.250056f, 0.316976f, 0.456179f, 0.917887f, 0.917448f, 0.11967f, 0.591144f, 0.352981f, 0.849511f, 0.465982f, 0.00976796f, 0.697137f, 0.320775f, 0.530182f, 0.791732f, 0.781348f, 0.630783f, 0.570108f, 0.867648f, 0.0258425f, 0.147678f, 0.39056f, 0.0981929f, 0.982114f, 0.44062f, 0.879375f, 0.964472f, 0.459122f, 0.957155f, 0.656362f, 0.142271f, 0.0621468f, 0.791664f, 0.472776f, 0.618339f, 0.864549f, 0.778153f, 0.311727f, 0.398461f, 0.455023f, 0.973779f, 0.999543f, 0.414123f, 0.709867f, 0.440624f, 0.951762f, 0.0568399f, 0.97083f, 0.712216f, 0.921851f, 0.479456f, 0.253647f, 0.613246f, 0.975682f, 0.761829f, 0.831174f, 0.868983f, 0.420924f, 0.264717f, 0.547227f, 0.346723f, 0.856154f, 0.492f, 0.0520774f, 0.555698f, 0.717819f, 0.154834f, 0.102231f, 0.516433f, 0.418083f, 0.455069f, 0.0905887f, 0.961797f, 0.277239f, 0.187967f, 0.462781f, 0.346729f, 0.31986f, 0.58213f, 0.605526f, 0.480522f, 0.178034f, 0.59996f, 0.0820642f, 0.372264f, 0.154094f, 0.685137f, 0.926591f, 0.506341f, 0.374656f, 0.949043f, 0.820158f, 0.912711f, 0.150832f, 0.141389f, 0.806484f, 0.668464f, 0.569262f, 0.194434f, 0.805651f, 0.338127f, 0.0445907f, 0.553085f, 0.585123f, 0.859129f, 0.267628f, 0.430494f, 0.236305f, 0.602553f, 0.93172f, 0.958859f, 0.815454f, 0.737249f, 0.665764f, 0.827119f, 0.467034f, 0.47401f, 0.125334f, 0.0909302f, 0.884802f, 0.880571f, 0.552597f, 0.568278f, 0.899672f, 0.900913f, 0.390872f, 0.267432f, 0.678024f, 0.734613f, 0.379154f, 0.00800285f, 0.575992f, 0.471158f, 0.371449f, 0.303787f, 0.430055f, 0.533649f, 0.533947f, 0.595581f, 0.537309f, 0.077545f, 0.190509f, 0.378629f, 0.744644f, 0.797956f, 0.979207f, 0.112392f, 0.237731f, 0.948207f, 0.518345f, 0.801375f, 0.30987f, 0.590398f, 0.97661f, 0.474416f, 0.703823f, 0.520864f, 0.965192f, 0.119271f, 0.558809f, 0.640866f, 0.288936f, 0.910419f, 0.741629f, 0.424635f, 0.779616f, 0.768092f, 0.507772f, 0.504063f, 0.316496f, 0.541074f, 0.68036f, 0.538136f, 0.579494f, 0.294867f, 0.308948f, 0.80587f, 0.463329f, 0.251374f, 0.663507f, 0.943482f, 0.363929f, 0.555071f, 0.709577f, 0.430258f, 0.342018f, 0.102579f, 0.203525f, 0.95593f, 0.601485f, 0.790328f, 0.662096f, 0.957734f, 0.845471f, 0.108412f, 0.46634f, 0.252193f, 0.643831f, 0.11127f, 0.376411f, 0.023525f, 0.287631f, 0.994963f, 0.658874f, 0.0210645f, 0.603629f, 0.622803f, 0.0472722f, 0.315973f, 0.923111f, 0.717089f, 0.922971f, 0.104088f, 0.0062942f, 0.789094f, 0.625341f, 0.224942f, 0.398873f, 0.910434f, 0.932619f, 0.768445f, 0.323064f, 0.738007f, 0.53752f, 0.502822f, 0.593059f, 0.385173f, 0.96417f, 0.664428f, 0.115134f, 0.841562f, 0.030039f, 0.146718f, 0.870019f, 0.602876f, 0.338186f, 0.479086f, 0.729154f, 0.910322f, 0.650492f, 0.345689f, 0.668121f, 0.427259f, 0.57197f, 0.869793f, 0.576452f, 0.244191f, 0.0571584f, 0.825081f, 0.596242f, 0.0448514f, 0.42959f, 0.951414f, 0.72456f, 0.00677971f, 0.872711f, 0.671347f, 0.192745f, 0.968447f, 0.56047f, 0.920649f, 0.752342f, 0.966234f, 0.613444f, 0.033573f, 0.468321f, 0.844581f, 0.775329f, 0.122645f, 0.02613f, 0.344292f, 0.310932f, 0.790536f, 0.389491f, 0.869365f, 0.826368f, 0.0173728f, 0.189828f, 0.523768f, 0.117784f, 0.0199382f, 0.532736f, 0.754888f, 0.469754f, 0.294376f, 0.0780923f, 0.126736f, 0.660983f, 0.430775f, 0.21072f, 0.63831f, 0.379654f, 0.361582f, 0.230799f, 0.113835f, 0.267163f, 0.117418f, 0.136472f, 0.938982f, 0.265427f, 0.255827f, 0.515764f, 0.607022f, 0.533919f, 0.463674f, 0.415789f, 0.63417f, 0.0901891f, 0.294229f, 0.604955f, 0.424594f, 0.0620128f, 0.11916f, 0.112472f, 0.996593f, 0.84225f, 0.327968f, 0.714541f, 0.304632f, 0.164565f, 0.741463f, 0.112919f, 0.502746f, 0.90645f, 0.752368f, 0.974846f, 0.549887f, 0.108335f, 0.600625f, 0.681496f, 0.713924f, 0.934521f, 0.978134f, 0.407894f, 0.343613f, 0.440783f, 0.664972f, 0.838276f, 0.0019049f, 0.019787f, 0.50369f, 0.259691f, 0.403031f, 0.557228f, 0.479232f, 0.690514f, 0.0048832f, 0.0951374f, 0.00396124f, 0.664695f, 0.700051f, 0.761949f, 0.415953f, 0.234898f, 0.852f, 0.639213f, 0.30993f, 0.909582f, 0.89205f, 0.673465f, 0.934445f, 0.95726f, 0.867526f, 0.604767f, 0.91859f, 0.478939f, 0.268658f, 0.756328f, 0.969407f, 0.0815263f, 0.0577255f, 0.9332f, 0.39228f, 0.531781f, 0.1917f, 0.195857f, 0.540173f, 0.00600479f, 0.869316f, 0.545209f, 0.645048f, 0.43061f, 0.206057f, 0.442541f, 0.0948908f, 0.946553f, 0.674933f, 0.950173f, 0.263825f, 0.495335f, 0.668037f, 0.803664f, 0.777506f, 0.989808f, 0.513813f, 0.962018f, 0.611008f, 0.0673268f, 0.999634f, 0.238826f, 0.653811f, 0.939171f, 0.571092f, 0.408408f, 0.189841f, 0.35669f, 0.922076f, 0.191623f, 0.38311f, 0.713345f, 0.670143f, 0.97811f, 0.271622f, 0.943943f, 0.824031f, 0.206058f, 0.461943f, 0.297259f, 0.698813f, 0.663358f, 0.557625f, 0.315034f, 0.347587f, 0.460004f, 0.826429f, 0.838686f, 0.852591f, 0.320376f, 0.00415945f, 0.685438f, 0.600111f, 0.241398f, 0.840719f, 0.960097f, 0.422577f, 0.98152f, 0.286617f, 0.771774f, 0.874038f, 0.250729f, 0.800102f, 0.56279f, 0.311846f, 0.111826f, 0.778888f, 0.691236f, 0.534948f, 0.288923f, 0.0833545f, 0.447614f, 0.86312f, 0.477696f, 0.901524f, 0.433181f, 0.191154f, 0.281116f, 0.212128f, 0.731244f, 0.538579f, 0.620449f, 0.704903f, 0.460499f, 0.37742f, 0.823034f, 0.237254f, 0.55763f, 0.316825f, 0.0284923f, 0.794764f, 0.0689214f, 0.620568f, 0.818483f, 0.049073f, 0.520155f, 0.80956f, 0.403729f, 0.0384824f, 0.884952f, 0.381709f, 0.169691f, 0.379571f, 0.844339f, 0.784253f, 0.515285f, 0.196288f, 0.0223558f, 0.373821f, 0.782384f, 0.303983f, 0.864093f, 0.774289f, 0.240766f, 0.58568f, 0.328797f, 0.126315f, 0.841865f, 0.283418f, 0.748826f, 0.270055f, 0.12889f, 0.570367f, 0.217194f, 0.323025f, 0.565146f, 0.457298f, 0.222445f, 0.98836f, 0.492686f, 0.293779f, 0.0162616f, 0.774602f, 0.565758f, 0.357465f, 0.516019f, 0.137609f, 0.0597346f, 0.394048f, 0.452074f, 0.0817901f, 0.906816f, 0.499637f, 0.694108f, 0.481f, 0.30652f, 0.220167f, 0.978509f, 0.174359f, 0.983153f, 0.68811f, 0.0781752f, 0.643734f, 0.835491f, 0.025745f, 0.537208f, 0.550764f, 0.146115f, 0.444928f, 0.855384f, 0.636416f, 0.361787f, 0.898798f, 0.385655f, 0.515164f, 0.246801f, 0.984843f, 0.650865f, 0.413739f, 0.475613f, 0.346935f, 0.579753f, 0.517482f, 0.00844559f, 0.326494f, 0.150286f, 0.622365f, 0.753325f, 0.916103f, 0.556752f, 0.274754f, 0.626378f, 0.523771f, 0.0342807f, 0.600559f, 0.274172f, 0.210256f, 0.606753f, 0.578822f, 0.318668f, 0.39041f, 0.683452f, 0.375313f, 0.353341f, 0.58294f, 0.925155f, 0.140171f, 0.0646038f, 0.450619f, 0.199829f, 0.500982f, 0.631797f, 0.777428f, 0.0981268f, 0.600188f, 0.682762f, 0.161681f, 0.159471f, 0.908154f, 0.851515f, 0.395125f, 0.637718f, 0.105254f, 0.419895f, 0.0359921f, 0.370579f, 0.42579f, 0.29233f, 0.456937f, 0.0862449f, 0.180989f, 0.0550971f, 0.981704f, 0.22094f, 0.303764f, 0.690003f, 0.136119f, 0.218901f, 0.346908f, 0.332063f, 0.275067f, 0.364109f, 0.5226f, 0.700079f, 0.856375f, 0.262692f, 0.848152f, 0.0964617f, 0.183504f, 0.121691f, 0.562524f, 0.859729f, 0.326392f, 0.463397f, 0.879175f, 0.603054f, 0.446576f, 0.0491054f, 0.341939f, 0.947599f, 0.238099f, 0.361434f, 0.277334f, 0.0844512f, 0.444674f, 0.521843f, 0.323605f, 0.743892f, 0.417587f, 0.539746f, 0.838717f, 0.522419f, 0.944407f, 0.303898f, 0.0965467f, 0.738773f, 0.204419f, 0.488576f, 0.0935113f, 0.395192f, 0.138957f, 0.374688f, 0.643051f, 0.384333f, 0.246379f, 0.440989f, 0.522972f, 0.598874f, 0.3693f, 0.754691f, 0.00516612f, 0.0332441f, 0.745578f, 0.500539f, 0.167944f, 0.499101f, 0.0951122f, 0.557973f, 0.320253f, 0.299863f, 0.00852917f, 0.866493f, 0.804178f, 0.661775f, 0.872044f, 0.148866f, 0.631578f, 0.748701f, 0.825885f, 0.224996f, 0.581948f, 0.11067f, 0.143304f, 0.031682f, 0.392887f, 0.167357f, 0.382367f, 0.311425f, 0.201765f, 0.0485107f, 0.362529f, 0.403489f, 0.858543f, 0.425199f, 0.65105f, 0.61213f, 0.0104368f, 0.0959071f, 0.866512f, 0.0848124f, 0.808674f, 0.395662f, 0.27686f, 0.173812f, 0.188937f, 0.0759889f, 0.698132f, 0.406877f, 0.946371f, 0.29629f, 0.636286f, 0.205707f, 0.610048f, 0.153584f, 0.804778f, 0.979005f, 0.435582f, 0.0617383f, 0.852159f, 0.345466f, 0.317229f, 0.331469f, 0.26471f, 0.25735f, 0.278036f, 0.473363f, 0.168857f, 0.458015f, 0.0207869f, 0.433927f, 0.663217f, 0.134433f, 0.208947f, 0.636476f, 0.280646f, 0.0840033f, 0.969425f, 0.70312f, 0.718875f, 0.301033f, 0.987558f, 0.755513f, 0.356862f, 0.84162f, 0.336091f, 0.60303f, 0.803903f, 0.429738f, 0.826224f, 0.0821901f, 0.720067f, 0.388101f, 0.904775f, 0.176448f, 0.707284f, 0.0962457f, 0.86433f, 0.804201f, 0.403867f, 0.835983f, 0.258573f, 0.128271f, 0.795915f, 0.598073f, 0.384385f, 0.893598f, 0.13519f, 0.349795f, 0.391911f, 0.364873f, 0.363213f, 0.0324984f, 0.353857f, 0.0263627f, 0.821102f, 0.238852f, 0.155727f, 0.831169f, 0.923858f, 0.777412f, 0.698669f, 0.746724f, 0.376989f, 0.366644f, 0.961419f, 0.272156f, 0.144976f, 0.240225f, 0.129988f, 0.229844f, 0.0692617f, 0.413399f, 0.309317f, 0.375905f, 0.639856f, 0.20138f, 0.574299f, 0.218684f, 0.251975f, 0.704074f, 0.160467f, 0.066386f, 0.0657724f, 0.818871f, 0.616836f, 0.993455f, 0.722543f, 0.71007f, 0.12334f, 0.022833f, 0.322339f, 0.423563f, 0.265318f, 0.499809f, 0.789941f, 0.187409f, 0.839217f, 0.682156f, 0.102909f, 0.319399f, 0.911683f, 0.479359f, 0.567347f, 0.712737f, 0.709301f, 0.92589f, 0.665616f, 0.690399f, 0.703394f, 0.229336f, 0.781397f, 0.891572f, 0.839947f, 0.276139f, 0.00983069f, 0.627141f, 0.491705f, 0.941038f, 0.256982f, 0.846472f, 0.165488f, 0.889032f, 0.458546f, 0.155815f, 0.707996f, 0.274945f, 0.459801f, 0.243167f, 0.445849f, 0.19494f, 0.453255f, 0.867502f, 0.735341f, 0.142157f, 0.710191f, 0.362551f, 0.42352f, 0.0612732f, 0.359541f, 0.780752f, 0.663786f, 0.0623036f, 0.586138f, 0.480311f, 0.269546f, 0.428785f, 0.860652f, 0.525945f, 0.849798f, 0.198831f, 0.512015f, 0.276636f, 0.808629f, 0.618659f, 0.347047f, 0.296567f, 0.6308f, 0.891711f, 0.728909f, 0.00615773f, 0.580163f, 0.761194f, 0.890536f, 0.979987f, 0.803402f, 0.128086f, 0.875911f, 0.830572f, 0.72082f, 0.45184f, 0.895492f, 0.953345f, 0.518064f, 0.981779f, 0.46652f, 0.232154f, 0.712889f, 0.0240985f, 0.486057f, 0.886377f, 0.800894f, 0.364092f, 0.183536f, 0.556499f, 0.137635f, 0.772141f, 0.00157282f, 0.796502f, 0.540139f, 0.350468f, 0.212424f, 0.729362f, 0.545618f, 0.278264f, 0.545053f, 0.0649081f, 0.211462f, 0.858909f, 0.44332f, 0.0306744f, 0.568006f, 0.430571f, 0.103188f, 0.753411f, 0.60898f, 0.654854f, 0.0538912f, 0.934674f, 0.399954f, 0.195588f, 0.619179f, 0.0197198f, 0.915685f, 0.22772f, 0.209736f, 0.256244f, 0.63981f, 0.852806f, 0.640165f, 0.244563f, 0.666166f, 0.107168f, 0.0646473f, 0.948008f, 0.0879691f, 0.163075f, 0.0113279f, 0.647452f, 0.648633f, 0.934379f, 0.48736f, 0.112774f, 0.833852f, 0.01571f, 0.0490363f, 0.55119f, 0.821667f, 0.630919f, 0.725307f, 0.851313f, 0.67138f, 0.958159f, 0.35837f, 0.44038f, 0.223307f, 0.456454f, 0.707208f, 0.14199f, 0.497361f, 0.727194f, 0.098994f, 0.341493f, 0.287234f, 0.685074f, 0.871397f, 0.118388f, 0.649109f, 0.648334f, 0.745055f, 0.311592f, 0.467422f, 0.0227754f, 0.26709f, 0.854419f, 0.892129f, 0.527672f, 0.404777f, 0.196179f, 0.586777f, 0.58063f, 0.293115f, 0.421652f, 0.507975f, 0.368012f, 0.0571903f, 0.808171f, 0.81496f, 0.162705f, 0.453734f, 0.130286f, 0.703768f, 0.230519f, 0.500453f, 0.601802f, 0.812536f, 0.953156f, 0.505225f, 0.372403f, 0.866647f, 0.362258f, 0.130303f, 0.0960682f, 0.883785f, 0.884231f, 0.572242f, 0.573087f, 0.0649872f, 0.904235f, 0.493275f, 0.484062f, 0.0326532f, 0.145145f, 0.177581f, 0.914643f, 0.150563f, 0.415583f, 0.874436f, 0.938479f, 0.225047f, 0.76867f, 0.535047f, 0.944481f, 0.741913f, 0.850204f, 0.719304f, 0.921887f, 0.025558f, 0.364053f, 0.905346f, 0.839574f, 0.64003f, 0.37887f, 0.657531f, 0.975924f, 0.848139f, 0.835465f, 0.346445f, 0.596387f, 0.0921106f, 0.525727f, 0.642527f, 0.726617f, 0.267825f, 0.470306f, 0.53443f, 0.39647f, 0.361847f, 0.168555f, 0.880501f, 0.851166f, 0.77163f, 0.3534f, 0.862777f, 0.617816f, 0.889374f, 0.139884f, 0.213892f, 0.457168f, 0.662212f, 0.919846f, 0.891103f, 0.58003f, 0.25251f, 0.179788f, 0.727992f, 0.0942184f, 0.673038f, 0.738826f, 0.677809f, 0.0223256f, 0.431998f, 0.491778f, 0.998121f, 0.0459948f, 0.0863441f, 0.0226274f, 0.346567f, 0.910443f, 0.53951f, 0.632083f, 0.141175f, 0.841427f, 0.0937164f, 0.219005f, 0.598953f, 0.254778f, 0.272004f, 0.990294f, 0.284358f, 0.629232f, 0.654993f, 0.890749f, 0.490674f, 0.467832f, 0.810197f, 0.67584f, 0.484549f, 0.0355721f, 0.810278f, 0.359813f, 0.503325f, 0.60993f, 0.177014f, 0.266437f, 0.82521f, 0.700959f, 0.580357f, 0.0329066f, 0.477505f, 0.975919f, 0.765812f, 0.513353f, 0.759346f, 0.896418f, 0.514122f, 0.762671f, 0.481069f, 0.781122f, 0.308061f, 0.0188265f, 0.336858f, 0.428663f, 0.290707f, 0.39264f, 0.203424f, 0.771924f, 0.0579965f, 0.338418f, 0.329157f, 0.54683f, 0.443618f, 0.809492f, 0.252591f, 0.841314f, 0.65044f, 0.233733f, 0.618145f, 0.169619f, 0.110788f, 0.574787f, 0.803592f, 0.95607f, 0.809714f, 0.954832f, 0.523285f, 0.934249f, 0.822042f, 0.888136f, 0.135298f, 0.603218f, 0.217902f, 0.923115f, 0.963834f, 0.046993f, 0.846042f, 0.43431f, 0.632692f, 0.815737f, 0.812383f, 0.756145f, 0.86021f, 0.591091f, 0.26494f, 0.475869f, 0.332984f, 0.111581f, 0.0923473f, 0.263092f, 0.536261f, 0.461894f, 0.237639f, 0.0173009f, 0.835964f, 0.34082f, 0.346269f, 0.910341f, 0.730623f, 0.842476f, 0.314167f, 0.588686f, 0.426967f, 0.787806f, 0.917108f, 0.109982f, 0.838064f, 0.55325f, 0.783717f, 0.471997f, 0.985364f, 0.951281f, 0.190212f, 0.0488774f, 0.198929f, 0.503557f, 0.556964f, 0.235304f, 0.691374f, 0.294346f, 0.0434012f, 0.881617f, 0.485982f, 0.122715f, 0.551463f, 0.123022f, 0.868927f, 0.450013f, 0.267355f, 0.878404f, 0.0635946f, 0.195266f, 0.674102f, 0.684999f, 0.554888f, 0.00565896f, 0.98166f, 0.484559f, 0.276923f, 0.51482f, 0.0482194f, 0.445814f, 0.363586f, 0.609221f, 0.82734f, 0.134562f, 0.639819f, 0.422786f, 0.715642f, 0.586397f, 0.00108825f, 0.44231f, 0.957283f, 0.799705f, 0.606493f, 0.1704f, 0.616888f, 0.963721f, 0.179014f, 0.926394f, 0.728839f, 0.841263f, 0.954068f, 0.0573998f, 0.90095f, 0.957842f, 0.706108f, 0.39455f, 0.604754f, 0.139079f, 0.412901f, 0.157284f, 0.594666f, 0.332763f, 0.901724f, 0.727433f, 0.859325f, 0.311124f, 0.805005f, 0.131634f, 0.638805f, 0.0480423f, 0.745349f, 0.283945f, 0.926438f, 0.169615f, 0.867695f, 0.403487f, 0.859359f, 0.703778f, 0.190037f, 0.138594f, 0.538213f, 0.999882f, 0.114442f, 0.798489f, 0.604526f, 0.236565f, 0.33969f, 0.365351f, 0.655584f, 0.767672f, 0.338211f, 0.31313f, 0.93109f, 0.551706f, 0.794758f, 0.013099f, 0.313884f, 0.628301f, 0.679539f, 0.285262f, 0.0200561f, 0.493443f, 0.576638f, 0.218604f, 0.284279f, 0.398139f, 0.445677f, 0.354171f, 0.660415f, 0.747057f, 0.662667f, 0.560981f, 0.0589827f, 0.569345f, 0.315776f, 0.775442f, 0.196486f, 0.468511f, 0.487565f, 0.575478f, 0.98576f, 0.203644f, 0.628232f, 0.291471f, 0.109699f, 0.601743f, 0.641302f, 0.333487f, 0.0835407f, 0.924504f, 0.855606f, 0.810444f, 0.442251f, 0.206098f, 0.188314f, 0.649688f, 0.577481f, 0.400175f, 0.396002f, 0.339203f, 0.989435f, 0.0520413f, 0.509233f, 0.413266f, 0.648791f, 0.990687f, 0.691524f, 0.169735f, 0.138492f, 0.286327f, 0.630889f, 0.582814f, 0.097934f, 0.599507f, 0.690031f, 0.260219f, 0.790027f, 0.415555f, 0.515342f, 0.734153f, 0.257156f, 0.911997f, 0.120776f, 0.849259f, 0.271723f, 0.147105f, 0.667802f, 0.869832f, 0.546765f, 0.534638f, 0.637949f, 0.67855f, 0.261329f, 0.250368f, 0.975991f, 0.0352188f, 0.616371f, 0.897824f, 0.251035f, 0.194803f, 0.923669f, 0.0536966f, 0.215195f, 0.930365f, 0.770669f, 0.756988f, 0.356637f, 0.363472f, 0.223229f, 0.288866f, 0.552404f, 0.594253f, 0.00666013f, 0.568736f, 0.0266256f, 0.916363f, 0.950948f, 0.658631f, 0.689048f, 0.189652f, 0.318544f, 0.878162f, 0.909667f, 0.40504f, 0.298761f, 0.784087f, 0.318184f, 0.880637f, 0.846613f, 0.738347f, 0.627163f, 0.516213f, 0.625051f, 0.66359f, 0.320635f, 0.0559965f, 0.874822f, 0.162004f, 0.309508f, 0.418486f, 0.19779f, 0.822498f, 0.241683f, 0.0172514f, 0.195514f, 0.493682f, 0.360261f, 0.494828f, 0.067534f, 0.412249f, 0.772915f, 0.183354f, 0.110332f, 0.426438f, 0.509137f, 0.244624f, 0.810335f, 0.307242f, 0.726412f, 0.693609f, 0.425482f, 0.524024f, 0.758772f, 0.295339f, 0.325908f, 0.47107f, 0.46494f, 0.486571f, 0.669965f, 0.0729339f, 0.684364f, 0.021f, 0.5094f, 0.9029f, 0.802745f, 0.89819f, 0.0294257f, 0.845204f, 0.690231f, 0.641065f, 0.85395f, 0.758954f, 0.626043f, 0.769634f, 0.36309f, 0.313959f, 0.821471f, 0.800556f, 0.666344f, 0.098059f, 0.451004f, 0.587051f, 0.581232f, 0.914306f, 0.391562f, 0.359505f, 0.349091f, 0.549276f, 0.113745f, 0.15211f, 0.95436f, 0.717475f, 0.167853f, 0.886064f, 0.517029f, 0.698867f, 0.411079f, 0.43198f, 0.339307f, 0.635614f, 0.157554f, 0.387891f, 0.0659931f, 0.261794f, 0.537798f, 0.990654f, 0.401801f, 0.0789838f, 0.64179f, 0.567052f, 0.870907f, 0.160964f, 0.736256f, 0.805436f, 0.873336f, 0.916254f, 0.144057f, 0.00286148f, 0.893824f, 0.917897f, 0.135173f, 0.122999f, 0.54781f, 0.24783f, 0.631928f, 0.146863f, 0.0823505f, 0.829648f, 0.716739f, 0.947225f, 0.58018f, 0.583302f, 0.00997576f, 0.950082f, 0.0683284f, 0.557343f, 0.232008f, 0.894867f, 0.87242f, 0.971891f, 0.340741f, 0.234086f, 0.063568f, 0.281589f, 0.388354f, 0.631478f, 0.330577f, 0.819587f, 0.361625f, 0.0495101f, 0.276587f, 0.379001f, 0.881574f, 0.57234f, 0.854303f, 0.0354648f, 0.214783f, 0.0275671f, 0.227575f, 0.838316f, 0.84354f, 0.826011f, 0.115646f, 0.715474f, 0.388171f, 0.0533561f, 0.0273449f, 0.864577f, 0.724575f, 0.584559f, 0.0478402f, 0.385348f, 0.288855f, 0.745594f, 0.473685f, 0.067597f, 0.0966291f, 0.309623f, 0.746176f, 0.884663f, 0.851867f, 0.717935f, 0.323082f, 0.260631f, 0.638873f, 0.909799f, 0.378827f, 0.250598f, 0.669078f, 0.358743f, 0.944822f, 0.516899f, 0.650863f, 0.914101f, 0.919328f, 0.104253f, 0.778744f, 0.614235f, 0.959365f, 0.471582f, 0.75461f, 0.131796f, 0.518513f, 0.796229f, 0.22335f, 0.358356f, 0.834743f, 0.151196f, 0.228007f, 0.731939f, 0.690158f, 0.619762f, 0.908891f, 0.00935599f, 0.151689f, 0.895069f, 0.583814f, 0.739853f, 0.10738f, 0.507382f, 0.76196f, 0.945943f, 0.224541f, 0.655233f, 0.340339f, 0.286659f, 0.198468f, 0.455985f, 0.202928f, 0.102759f, 0.117635f, 0.987162f, 0.513448f, 0.0515212f, 0.387943f, 0.164047f, 0.110183f, 0.341008f, 0.710716f, 0.785942f, 0.78434f, 0.473991f, 0.354403f, 0.24259f, 0.818226f, 0.572671f, 0.257936f, 0.368975f, 0.622038f, 0.759281f, 0.215874f, 0.371487f, 0.213655f, 0.0225308f, 0.514941f, 0.90473f, 0.470511f, 0.549805f, 0.95397f, 0.862688f, 0.975287f, 0.302472f, 0.00857932f, 0.281589f, 0.310911f, 0.0253471f, 0.575671f, 0.49977f, 0.17398f, 0.351441f, 0.747175f, 0.905322f, 0.509491f, 0.690312f, 0.486756f, 0.777155f, 0.430102f, 0.606543f, 0.368131f, 0.682621f, 0.630395f, 0.852992f, 0.974505f, 0.196192f, 0.48224f, 0.837796f, 0.554905f, 0.667964f, 0.495827f, 0.38629f, 0.223386f, 0.26684f, 0.505895f, 0.115652f, 0.620934f, 0.315365f, 0.103573f, 0.417029f, 0.430385f, 0.169628f, 0.770794f, 0.589168f, 0.587536f, 0.335873f, 0.835063f, 0.501202f, 0.677467f, 0.383526f, 0.68742f, 0.581883f, 0.344688f, 0.00554769f, 0.716246f, 0.418168f, 0.390993f, 0.368735f, 0.904264f, 0.485587f, 0.645208f, 0.819884f, 0.713942f, 0.684267f, 0.0213335f, 0.715631f, 0.559475f, 0.547555f, 0.39113f, 0.0695155f, 0.585026f, 0.799126f, 0.128797f, 0.709349f, 0.539211f, 0.553569f, 0.507888f, 0.457815f, 0.107576f, 0.0641052f, 0.283917f, 0.973872f, 0.0788143f, 0.923277f, 0.242687f, 0.0207217f, 0.208356f, 0.482252f, 0.584101f, 0.43033f, 0.665051f, 0.220115f, 0.0187984f, 0.00274392f, 0.722993f, 0.840627f, 0.971185f, 0.270766f, 0.107335f, 0.658131f, 0.77923f, 0.878906f, 0.522251f, 0.270766f, 0.0552041f, 0.930282f, 0.0679173f, 0.694456f, 0.878168f, 0.495982f, 0.110033f, 0.723934f, 0.122868f, 0.15146f, 0.610685f, 0.161229f, 0.788125f, 0.596026f, 0.396793f, 0.823102f, 0.0834243f, 0.731238f, 0.875904f, 0.0024461f, 0.0510364f, 0.892f, 0.77279f, 0.449158f, 0.039458f, 0.0988294f, 0.752611f, 0.521684f, 0.0262497f, 0.639185f, 0.0395647f, 0.78477f, 0.0504738f, 0.517867f, 0.950685f, 0.0890516f, 0.333973f, 0.907944f, 0.894111f, 0.651692f, 0.523152f, 0.510844f, 0.614001f, 0.0605636f, 0.193996f, 0.223573f, 0.688479f, 0.980567f, 0.902811f, 0.280912f, 0.162531f, 0.0540762f, 0.414345f, 0.817166f, 0.300617f, 0.0784998f, 0.0191517f, 0.288846f, 0.650191f, 0.128051f, 0.766181f, 0.234693f, 0.631353f, 0.515858f, 0.395164f, 0.48482f, 0.741345f, 0.224187f, 0.623646f, 0.50843f, 0.947179f, 0.921144f, 0.0411876f, 0.0620683f, 0.300789f, 0.127641f, 0.99347f, 0.194463f, 0.799161f, 0.134198f, 0.194098f, 0.192386f, 0.950583f, 0.779795f, 0.577767f, 0.772097f, 0.881238f, 0.438153f, 0.352816f, 0.613207f, 0.820944f, 0.610075f, 0.0102571f, 0.722896f, 0.845245f, 0.563335f, 0.194757f, 0.704358f, 0.112646f, 0.576978f, 0.636203f, 0.177122f, 0.962064f, 0.140906f, 0.909349f, 0.724073f, 0.437111f, 0.919171f, 0.265218f, 0.483642f, 0.657541f, 0.689893f, 0.592511f, 0.299259f, 0.671936f, 0.725063f, 0.906748f, 0.908616f, 0.691344f, 0.733322f, 0.0358387f, 0.0145384f, 0.0194284f, 0.371836f, 0.666234f, 0.520111f, 0.0156337f, 0.932628f, 0.295622f, 0.0178778f, 0.251465f, 0.881716f, 0.889716f, 0.515676f, 0.824123f, 0.325642f, 0.813515f, 0.143581f, 0.652969f, 0.119205f, 0.142467f, 0.326919f, 0.72218f, 0.189729f, 0.367562f, 0.376117f, 0.517343f, 0.160571f, 0.652061f, 0.982528f, 0.967784f, 0.67242f, 0.899708f, 0.134544f, 0.241151f, 0.3378f, 0.369193f, 0.0187582f, 0.71399f, 0.624092f, 0.727593f, 0.16902f, 0.377871f, 0.210523f, 0.827917f, 0.852145f, 0.808643f, 0.104473f, 0.586986f, 0.394308f, 0.507487f, 0.541712f, 0.894871f, 0.112282f, 0.311991f, 0.755083f, 0.860908f, 0.143703f, 0.694696f, 0.410443f, 0.701204f, 0.754024f, 0.247181f, 0.464045f, 0.439513f, 0.787088f, 0.263565f, 0.136725f, 0.184538f, 0.903104f, 0.2926f, 0.500458f, 0.281775f, 0.896249f, 0.288564f, 0.363984f, 0.487971f, 0.901011f, 0.716427f, 0.729958f, 0.441464f, 0.0228345f, 0.109672f, 0.0767572f, 0.372363f, 0.928338f, 0.937909f, 0.992874f, 0.76931f, 0.96157f, 0.785619f, 0.0455519f, 0.352093f, 0.114345f, 0.0485703f, 0.0705642f, 0.986669f, 0.259092f, 0.214464f, 0.785229f, 0.287832f, 0.367194f, 0.587579f, 0.63899f, 0.769462f, 0.0196606f, 0.311204f, 0.180387f, 0.0998978f, 0.625155f, 0.78767f, 0.694034f, 0.30335f, 0.152637f, 0.594031f, 0.983387f, 0.012683f, 0.360469f, 0.343095f, 0.890132f, 0.373022f, 0.613124f, 0.0664975f, 0.866854f, 0.509899f, 0.521016f, 0.591964f, 0.163959f, 0.293403f, 0.495289f, 0.21112f, 0.254242f, 0.928399f, 0.957892f, 0.976767f, 0.277183f, 0.507005f, 0.154241f, 0.481073f, 0.880563f, 0.882597f, 0.589448f, 0.180488f, 0.26247f, 0.311174f, 0.717911f, 0.149071f, 0.269492f, 0.178879f, 0.677134f, 0.819556f, 0.0559708f, 0.426378f, 0.108577f, 0.00154718f, 0.819687f, 0.363181f, 0.532661f, 0.123272f, 0.394626f, 0.85865f, 0.0046781f, 0.048084f, 0.920112f, 0.166069f, 0.920547f, 0.412907f, 0.138344f, 0.876265f, 0.0688749f, 0.0969028f, 0.644361f, 0.169685f, 0.335652f, 0.705437f, 0.143203f, 0.647942f, 0.680218f, 0.966092f, 0.408209f, 0.317951f, 0.33836f, 0.763171f, 0.705177f, 0.0616689f, 0.102783f, 0.377501f, 0.12131f, 0.889664f, 0.851413f, 0.666999f, 0.0267393f, 0.890247f, 0.437947f, 0.07473f, 0.314552f, 0.491806f, 0.724258f, 0.937625f, 0.994299f, 0.157432f, 0.077267f, 0.956389f, 0.923912f, 0.119921f, 0.759951f, 0.472597f, 0.868388f, 0.111203f, 0.0456212f, 0.619121f, 0.870144f, 0.387855f, 0.341935f, 0.292578f, 0.508057f, 0.862987f, 0.434029f, 0.128391f, 0.644022f, 0.932877f, 0.0802235f, 0.778851f, 0.837766f, 0.21515f, 0.902426f, 0.0803018f, 0.0451043f, 0.979109f, 0.127859f, 0.437255f, 0.954738f, 0.281417f, 0.886565f, 0.120915f, 0.747099f, 0.878146f, 0.890052f, 0.57775f, 0.920686f, 0.92972f, 0.637755f, 0.645211f, 0.834063f, 0.0340221f, 0.646686f, 0.623421f, 0.85634f, 0.786195f, 0.16432f, 0.326467f, 0.181429f, 0.986865f, 0.669251f, 0.804039f, 0.510411f, 0.015761f, 0.692227f, 0.843232f, 0.923616f, 0.48712f, 0.749108f, 0.585923f, 0.557237f, 0.212273f, 0.829083f, 0.732269f, 0.569164f, 0.109997f, 0.785893f, 0.442765f, 0.679718f, 0.500834f, 0.321716f, 0.203084f, 0.723897f, 0.0615703f, 0.787114f, 0.72705f, 0.475697f, 0.96277f, 0.178659f, 0.32012f, 0.503377f, 0.435492f, 0.572015f, 0.128768f, 0.516791f, 0.10983f, 0.755166f, 0.620428f, 0.991006f, 0.80475f, 0.38448f, 0.771185f, 0.721985f, 0.786759f, 0.696493f, 0.607626f, 0.679078f, 0.430349f, 0.113553f, 0.556384f, 0.397408f, 0.527625f, 0.338182f, 0.445802f, 0.273999f, 0.884071f, 0.823653f, 0.94114f, 0.0951649f, 0.696848f, 0.460765f, 0.15284f, 0.922747f, 0.871428f, 0.139821f, 0.00466255f, 0.848562f, 0.425235f, 0.621252f, 0.549582f, 0.879424f, 0.0986899f, 0.805771f, 0.521052f, 0.486152f, 0.313243f, 0.0180174f, 0.9112f, 0.776452f, 0.80454f, 0.39278f, 0.0340876f, 0.983415f, 0.0694965f, 0.987536f, 0.932105f, 0.484271f, 0.913353f, 0.369432f, 0.0209533f, 0.518407f, 0.850771f, 0.498852f, 0.682342f, 0.372398f, 0.164069f, 0.152215f, 0.0418867f, 0.163156f, 0.674762f, 0.177445f, 0.779985f, 0.812932f, 0.54534f, 0.701747f, 0.471655f, 0.473376f, 0.901218f, 0.462879f, 0.610169f, 0.862822f, 0.65f, 0.911136f, 0.834596f, 0.4788f, 0.236055f, 0.470912f, 0.319184f, 0.49711f, 0.105028f, 0.74884f, 0.329586f, 0.28499f, 0.222683f, 0.572896f, 0.446851f, 0.502052f, 0.669934f, 0.138281f, 0.368421f, 0.161535f, 0.645895f, 0.0415182f, 0.158503f, 0.910143f, 0.120797f, 0.871673f, 0.507205f, 0.639364f, 0.646757f, 0.801356f, 0.745394f, 0.538818f, 0.315332f, 0.893748f, 0.170985f, 0.454368f, 0.179982f, 0.556947f, 0.92625f, 0.876332f, 0.796983f, 0.597766f, 0.118834f, 0.288336f, 0.00902861f, 0.597508f, 0.13627f, 0.918916f, 0.678764f, 0.0748315f, 0.632011f, 0.0165748f, 0.0782079f, 0.691913f, 0.376937f, 0.254107f, 0.570884f, 0.664063f, 0.12492f, 0.213602f, 0.727811f, 0.201032f, 0.510617f, 0.925473f, 0.227767f, 0.693433f, 0.977334f, 0.985919f, 0.0955417f, 0.924307f, 0.566221f, 0.797246f, 0.0834255f, 0.863745f, 0.0138646f, 0.234444f, 0.175842f, 0.927442f, 0.0297915f, 0.658783f, 0.170299f, 0.254717f, 0.080356f, 0.133733f, 0.763135f, 0.609988f, 0.443638f, 0.767418f, 0.571825f, 0.176435f, 0.667801f, 0.990997f, 0.191781f, 0.458619f, 0.958853f, 0.610158f, 0.624669f, 0.811651f, 0.712555f, 0.243122f, 0.824353f, 0.877148f, 0.204267f, 0.959502f, 0.737188f, 0.886727f, 0.700872f, 0.510737f, 0.357619f, 0.760414f, 0.206601f, 0.987029f, 0.139643f, 0.999218f, 0.345107f, 0.455409f, 0.444326f, 0.0753852f, 0.745219f, 0.734076f, 0.908799f, 0.0200817f, 0.786224f, 0.703674f, 0.459613f, 0.621943f, 0.138336f, 0.764446f, 0.633774f, 0.680809f, 0.449635f, 0.0719145f, 0.761931f, 0.494351f, 0.257352f, 0.409355f, 0.473932f, 0.959385f, 0.271198f, 0.552431f, 0.525504f, 0.598449f, 0.595013f, 0.32543f, 0.316847f, 0.790654f, 0.650512f, 0.698785f, 0.681656f, 0.609515f, 0.853596f, 0.678602f, 0.312949f, 0.175424f, 0.912109f, 0.318198f, 0.0746615f, 0.548998f, 0.772536f, 0.0958111f, 0.233971f, 0.407245f, 0.61385f, 0.636117f, 0.486725f, 0.551383f, 0.144315f, 0.199175f, 0.601006f, 0.195937f, 0.697408f, 0.646259f, 0.448521f, 0.41616f, 0.463405f, 0.644677f, 0.359831f, 0.412282f, 0.256679f, 0.465395f, 0.298716f, 0.576465f, 0.315947f, 0.450115f, 0.726528f, 0.766532f, 0.568148f, 0.345948f, 0.741316f, 0.977101f, 0.22995f, 0.092362f, 0.275642f, 0.143517f, 0.256864f, 0.81646f, 0.667261f, 0.565341f, 0.667376f, 0.857814f, 0.948847f, 0.606078f, 0.374988f, 0.351117f, 0.0576456f, 0.591925f, 0.619963f, 0.760534f, 0.47216f, 0.761783f, 0.412779f, 0.114894f, 0.739858f, 0.305439f, 0.460004f, 0.752199f, 0.275571f, 0.927707f, 0.351944f, 0.663135f, 0.00334564f, 0.582296f, 0.0938497f, 0.770812f, 0.463215f, 0.989269f, 0.735711f, 0.303654f, 0.107126f, 0.558942f, 0.503576f, 0.458912f, 0.713015f, 0.714765f, 0.917074f, 0.986127f, 0.0473922f, 0.970784f, 0.716859f, 0.183494f, 0.918147f, 0.923901f, 0.993174f, 0.586096f, 0.278638f, 0.151621f, 0.874674f, 0.522265f, 0.272625f, 0.820591f, 0.0666701f, 0.107058f, 0.648372f, 0.760414f, 0.884554f, 0.059045f, 0.171872f, 0.294926f, 0.0595009f, 0.825139f, 0.373394f, 0.644776f, 0.754324f, 0.0544411f, 0.899969f, 0.959131f, 0.383885f, 0.769346f, 0.0776174f, 0.318224f, 0.377208f, 0.376724f, 0.369616f, 0.59647f, 0.578749f, 0.409885f, 0.531794f, 0.36398f, 0.70295f, 0.189707f, 0.897684f, 0.221662f, 0.299438f, 0.110271f, 0.676171f, 0.558928f, 0.532229f, 0.771429f, 0.405497f, 0.771621f, 0.715442f, 0.178534f, 0.984104f, 0.111374f, 0.0962679f, 0.320358f, 0.422318f, 0.598903f, 0.507563f, 0.989016f, 0.166151f, 0.598786f, 0.567608f, 0.162307f, 0.484981f, 0.670278f, 0.0314683f, 0.897491f, 0.0720178f, 0.755144f, 0.424002f, 0.189968f, 0.279647f, 0.649401f, 0.690684f, 0.430014f, 0.168234f, 0.471749f, 0.908376f, 0.318989f, 0.378047f, 0.470537f, 0.676383f, 0.214086f, 0.0488364f, 0.436373f, 0.312044f, 0.734522f, 0.808162f, 0.273472f, 0.462544f, 0.32724f, 0.0261346f, 0.942444f, 0.706858f, 0.295395f, 0.960221f, 0.129805f, 0.840379f, 0.311513f, 0.279213f, 0.384314f, 0.836912f, 0.564845f, 0.0953655f, 0.979802f, 0.35287f, 0.923853f, 0.376366f, 0.303277f, 0.0191299f, 0.984847f, 0.989031f, 0.0148695f, 0.507571f, 0.305033f, 0.780096f, 0.99445f, 0.437325f, 0.677658f, 0.724669f, 0.721161f, 0.992662f, 0.790512f, 0.0212762f, 0.773491f, 0.139351f, 0.682911f, 0.838645f, 0.716991f, 0.965125f, 0.12593f, 0.137419f, 0.111096f, 0.745214f, 0.683809f, 0.0115195f, 0.240242f, 0.815814f, 0.487353f, 0.227699f, 0.136303f, 0.602072f, 0.794579f, 0.220322f, 0.480858f, 0.115225f, 0.157831f, 0.429576f, 0.306031f, 0.0233022f, 0.749157f, 0.229859f, 0.275899f, 0.973788f, 0.50898f, 0.329544f, 0.237412f, 0.576228f, 0.176119f, 0.0808705f, 0.632687f, 0.0664463f, 0.932916f, 0.757007f, 0.503162f, 0.881075f, 0.804913f, 0.698248f, 0.0966182f, 0.985987f, 0.0333883f, 0.0548697f, 0.0313378f, 0.370456f, 0.373595f, 0.0445245f, 0.572873f, 0.0755044f, 0.283707f, 0.649732f, 0.109311f, 0.984903f, 0.0381455f, 0.0132352f, 0.322137f, 0.188456f, 0.867793f, 0.74778f, 0.886352f, 0.2751f, 0.980411f, 0.829127f, 0.748694f, 0.803083f, 0.0653596f, 0.986497f, 0.772165f, 0.505447f, 0.518452f, 0.791482f, 0.668375f, 0.581173f, 0.783544f, 0.716063f, 0.955502f, 0.2883f, 0.962456f, 0.711843f, 0.124468f, 0.790633f, 0.983245f, 0.862075f, 0.162591f, 0.33502f, 0.577174f, 0.343908f, 0.367677f, 0.225406f, 0.0430848f, 0.334844f, 0.462063f, 0.864885f, 0.717092f, 0.169577f, 0.605596f, 0.735193f, 0.5393f, 0.287271f, 0.277606f, 0.650465f, 0.220211f, 0.935788f, 0.630324f, 0.979109f, 0.0830748f, 0.693549f, 0.342863f, 0.278943f, 0.727048f, 0.39119f, 0.309273f, 0.759766f, 0.0824832f, 0.625185f, 0.200219f, 0.244177f, 0.733927f, 0.975549f, 0.289963f, 0.119918f, 0.224893f, 0.952579f, 0.451229f, 0.860666f, 0.700345f, 0.447346f, 0.00181113f, 0.952813f, 0.959839f, 0.36252f, 0.530121f, 0.461269f, 0.54261f, 0.883025f, 0.871242f, 0.460213f, 0.362716f, 0.976735f, 0.36581f, 0.290767f, 0.919499f, 0.638504f, 0.422942f, 0.300979f, 0.261442f, 0.244254f, 0.939152f, 0.646268f, 0.79873f, 0.22899f, 0.337646f, 0.450362f, 0.704914f, 0.306518f, 0.354007f, 0.687272f, 0.655243f, 0.244792f, 0.799828f, 0.0928204f, 0.666103f, 0.884498f, 0.955203f, 0.522784f, 0.27796f, 0.0209405f, 0.820827f, 0.453013f, 0.101963f, 0.528367f, 0.639644f, 0.811813f, 0.76978f, 0.247719f, 0.0354135f, 0.905917f, 0.601452f, 0.459166f, 0.191727f, 0.438274f, 0.670012f, 0.299358f, 0.622696f, 0.627664f, 0.999268f, 0.343241f, 0.703173f, 0.794576f, 0.895694f, 0.313623f, 0.598373f, 0.496664f, 0.687066f, 0.754277f, 0.346263f, 0.69346f, 0.598999f, 0.654974f, 0.0704743f, 0.116748f, 0.145191f, 0.780739f, 0.381612f, 0.51129f, 0.719282f, 0.724501f, 0.74263f, 0.103365f, 0.0587005f, 0.485191f, 0.32691f, 0.787762f, 0.839321f, 0.330616f, 0.853304f, 0.923892f, 0.68512f, 0.779334f, 0.584438f, 0.481314f, 0.0105376f, 0.303712f, 0.316489f, 0.427301f, 0.560182f, 0.737369f, 0.572481f, 0.495963f, 0.167189f, 0.23871f, 0.854727f, 0.627752f, 0.389423f, 0.852365f, 0.380096f, 0.322055f, 0.8113f, 0.454465f, 0.992769f, 0.98815f, 0.272523f, 0.602177f, 0.122823f, 0.432782f, 0.101932f, 0.79152f, 0.679658f, 0.0491258f, 0.913776f, 0.343202f, 0.175034f, 0.805583f, 0.240973f, 0.549299f, 0.729888f, 0.588345f, 0.564187f, 0.981299f, 0.686898f, 0.738476f, 0.358315f, 0.944322f, 0.822422f, 0.84533f, 0.834876f, 0.823454f, 0.45766f, 0.836877f, 0.609717f, 0.545318f, 0.878127f, 0.911519f, 0.714443f, 0.0778165f, 0.696779f, 0.0303045f, 0.368364f, 0.584011f, 0.612042f, 0.536962f, 0.588786f, 0.577894f, 0.024653f, 0.744226f, 0.944098f, 0.539099f, 0.857989f, 0.514487f, 0.433228f, 0.446744f, 0.0715383f, 0.705576f, 0.0301129f, 0.450418f, 0.945505f, 0.670988f, 0.467019f, 0.0876018f, 0.660721f, 0.754755f, 0.0441223f, 0.898232f, 0.848917f, 0.15667f, 0.756819f, 0.251943f, 0.822477f, 0.942001f, 0.720629f, 0.163266f, 0.219495f, 0.706376f, 0.818512f, 0.767663f, 0.763705f, 0.17625f, 0.360164f, 0.0937215f, 0.310482f, 0.355263f, 0.0528329f, 0.934358f, 0.223503f, 0.276768f, 0.0332421f, 0.577549f, 0.0133042f, 0.710759f, 0.0246291f, 0.0773239f, 0.803711f, 0.385237f, 0.0962977f, 0.153847f, 0.22997f, 0.917154f, 0.259281f, 0.0829079f, 0.162123f, 0.669634f, 0.199903f, 0.763024f, 0.00849927f, 0.84348f, 0.159901f, 0.77094f, 0.117335f, 0.412064f, 0.818697f, 0.416284f, 0.38796f, 0.483608f, 0.334034f, 0.581573f, 0.636486f, 0.231355f, 0.488069f, 0.772965f, 0.795275f, 0.893995f, 0.78465f, 0.33249f, 0.138793f, 0.419504f, 0.346615f, 0.561949f, 0.836677f, 0.716381f, 0.324875f, 0.704881f, 0.509466f, 0.486337f, 0.589495f, 0.503f, 0.962225f, 0.375876f, 0.781881f, 0.881115f, 0.0271652f, 0.536851f, 0.914244f, 0.0898586f, 0.681218f, 0.0421879f, 0.558257f, 0.792735f, 0.936975f, 0.220094f, 0.838276f, 0.432229f, 0.657287f, 0.000557041f, 0.87876f, 0.0462447f, 0.0766155f, 0.434478f, 0.540778f, 0.266958f, 0.305681f, 0.35341f, 0.982716f, 0.853999f, 0.168278f, 0.209823f, 0.23564f, 0.387844f, 0.496483f, 0.389447f, 0.800901f, 0.238034f, 0.271112f, 0.235406f, 0.475446f, 0.510581f, 0.509755f, 0.0306164f, 0.773892f, 0.0682994f, 0.593298f, 0.70023f, 0.305391f, 0.527503f, 0.986504f, 0.468877f, 0.363031f, 0.590614f, 0.670856f, 0.117848f, 0.270858f, 0.297653f, 0.798311f, 0.0598164f, 0.01179f, 0.0885904f, 0.875096f, 0.795287f, 0.0327647f, 0.887023f, 0.49768f, 0.66212f, 0.742214f, 0.363779f, 0.44344f, 0.768532f, 0.412874f, 0.632337f, 0.242044f, 0.0973732f, 0.141231f, 0.73618f, 0.164057f, 0.421549f, 0.151926f, 0.41925f, 0.77361f, 0.0907304f, 0.169231f, 0.741289f, 0.70494f, 0.301844f, 0.236005f, 0.0108597f, 0.988762f, 0.977511f, 0.617033f, 0.827478f, 0.908315f, 0.509449f, 0.971713f, 0.480515f, 0.0456441f, 0.885103f, 0.987939f, 0.597081f, 0.506577f, 0.638603f, 0.210043f, 0.0482548f, 0.218189f, 0.364151f, 0.992051f, 0.391723f, 0.937119f, 0.251871f, 0.957992f, 0.284341f, 0.782485f, 0.81023f, 0.607596f, 0.489848f, 0.643257f, 0.931433f, 0.0258066f, 0.126333f, 0.42508f, 0.0350583f, 0.372974f, 0.0678014f, 0.658473f, 0.896184f, 0.797337f, 0.0153604f, 0.773966f, 0.25911f, 0.409394f, 0.545123f, 0.27523f, 0.226616f, 0.00803445f, 0.117953f, 0.542646f, 0.148404f, 0.800338f, 0.795688f, 0.375284f, 0.413708f, 0.750514f, 0.463614f, 0.724324f, 0.966648f, 0.317077f, 0.311322f, 0.695846f, 0.28184f, 0.984164f, 0.0139568f, 0.698512f, 0.763251f, 0.399808f, 0.673187f, 0.87423f, 0.525077f, 0.955267f, 0.585872f, 0.226821f, 0.901486f, 0.814495f, 0.554943f, 0.469786f, 0.549271f, 0.737929f, 0.397005f, 0.852182f, 0.988831f, 0.085674f, 0.309818f, 0.790014f, 0.0789381f, 0.768044f, 0.898577f, 0.679431f, 0.972011f, 0.920214f, 0.18101f, 0.275299f, 0.531952f, 0.652698f, 0.100951f, 0.0367618f, 0.605456f, 0.0197282f, 0.910065f, 0.711466f, 0.84257f, 0.27857f, 0.953812f, 0.855451f, 0.547478f, 0.648171f, 0.684109f, 0.98443f, 0.756279f, 0.0136925f, 0.792284f, 0.640487f, 0.913982f, 0.401468f, 0.58301f, 0.200603f, 0.550865f, 0.908127f, 0.360074f, 0.717536f, 0.214011f, 0.306599f, 0.729123f, 0.366054f, 0.167277f, 0.250172f, 0.808669f, 0.754737f, 0.164529f, 0.501607f, 0.894202f, 0.216327f, 0.0453906f, 0.446236f, 0.48948f, 0.67534f, 0.830515f, 0.473338f, 0.976086f, 0.23739f, 0.827288f, 0.98029f, 0.660839f, 0.63133f, 0.480636f, 0.814671f, 0.335541f, 0.598103f, 0.835169f, 0.574495f, 0.462844f, 0.218605f, 0.196126f, 0.178365f, 0.428876f, 0.729528f, 0.865073f, 0.314056f, 0.185457f, 0.653795f, 0.436069f, 0.678548f, 0.848748f, 0.470352f, 0.205871f, 0.0437198f, 0.292583f, 0.49679f, 0.666188f, 0.40126f, 0.877809f, 0.08233f, 0.474202f, 0.800116f, 0.168554f, 0.686721f, 0.901693f, 0.0413626f, 0.474672f, 0.463282f, 0.864081f, 0.570513f, 0.910049f, 0.464346f, 0.898423f, 0.645147f, 0.115714f, 0.189242f, 0.869391f, 0.546112f, 0.729097f, 0.568821f, 0.336011f, 0.968012f, 0.0388515f, 0.75613f, 0.744529f, 0.857462f, 0.269142f, 0.0672414f, 0.454014f, 0.500959f, 0.987362f, 0.737475f, 0.404587f, 0.345277f, 0.518067f, 0.245681f, 0.140775f, 0.927901f, 0.166827f, 0.850512f, 0.918311f, 0.988633f, 0.767776f, 0.467392f, 0.051576f, 0.404199f, 0.373537f, 0.777711f, 0.926308f, 0.437101f, 0.596457f, 0.968791f, 0.323633f, 0.468815f, 0.973583f, 0.37288f, 0.80413f, 0.29805f, 0.199406f, 0.307082f, 0.940399f, 0.881414f, 0.477804f, 0.957487f, 0.00851349f, 0.051291f, 0.068923f, 0.0366955f, 0.336837f, 0.707748f, 0.0157435f, 0.937564f, 0.143265f, 0.247996f, 0.145816f, 0.969541f, 0.0425528f, 0.0957087f, 0.79162f, 0.719365f, 0.184057f, 0.00303612f, 0.164905f, 0.419136f, 0.185199f, 0.593213f, 0.151001f, 0.146827f, 0.338696f, 0.344155f, 0.227585f, 0.00513494f, 0.460116f, 0.98544f, 0.552033f, 0.128287f, 0.23807f, 0.56195f, 0.824506f, 0.189258f, 0.050227f, 0.60951f, 0.51519f, 0.487767f, 0.0468177f, 0.880155f, 0.451121f, 0.274183f, 0.199084f, 0.389995f, 0.203297f, 0.209891f, 0.322086f, 0.80289f, 0.0594358f, 0.56246f, 0.507736f, 0.937147f, 0.723294f, 0.322261f, 0.579476f, 0.315868f, 0.781141f, 0.920919f, 0.755381f, 0.785117f, 0.640189f, 0.893114f, 0.159824f, 0.391023f, 0.605418f, 0.844595f, 0.131717f, 0.453106f, 0.0354193f, 0.782969f, 0.937506f, 0.21625f, 0.907617f, 0.898652f, 0.981229f, 0.551583f, 0.273739f, 0.186611f, 0.649192f, 0.686602f, 0.922376f, 0.402637f, 0.441532f, 0.207293f, 0.651441f, 0.556587f, 0.762731f, 0.89997f, 0.731379f, 0.862775f, 0.427437f, 0.309512f, 0.661231f, 0.800463f, 0.884022f, 0.338439f, 0.159422f, 0.522647f, 0.733258f, 0.756267f, 0.793723f, 0.537743f, 0.647818f, 0.449444f, 0.939879f, 0.0966314f, 0.201966f, 0.904184f, 0.224987f, 0.783014f, 0.409826f, 0.258782f, 0.719051f, 0.892906f, 0.918176f, 0.237974f, 0.143519f, 0.480685f, 0.946013f, 0.0711188f, 0.229829f, 0.929101f, 0.572001f, 0.842208f, 0.632482f, 0.680829f, 0.0865911f, 0.761439f, 0.89428f, 0.592355f, 0.0671137f, 0.98381f, 0.853176f, 0.824508f, 0.267632f, 0.892326f, 0.32836f, 0.418551f, 0.346941f, 0.882806f, 0.309085f, 0.282074f, 0.982606f, 0.261556f, 0.249706f, 0.0223953f, 0.327736f, 0.167582f, 0.556684f, 0.484188f, 0.0893175f, 0.255542f, 0.457398f, 0.334597f, 0.255648f, 0.0795601f, 0.386407f, 0.988893f, 0.830851f, 0.193508f, 0.310472f, 0.654364f, 0.0670938f, 0.112389f, 0.880854f, 0.353868f, 0.690126f, 0.255283f, 0.390743f, 0.332614f, 0.0466242f, 0.292756f, 0.860734f, 0.623766f, 0.539129f, 0.515861f, 0.75701f, 0.832037f, 0.84632f, 0.438671f, 0.221459f, 0.156299f, 0.734671f, 0.311118f, 0.068164f, 0.169287f, 0.44764f, 0.578644f, 0.964037f, 0.589212f, 0.532715f, 0.227103f, 0.754949f, 0.763223f, 0.627145f, 0.888786f, 0.514252f, 0.490693f, 0.0111548f, 0.0732617f, 0.151022f, 0.549105f, 0.516264f, 0.862733f, 0.375128f, 0.870217f, 0.831778f, 0.910208f, 0.23067f, 0.906488f, 0.954314f, 0.870618f, 0.133721f, 0.952172f, 0.946163f, 0.80043f, 0.597841f, 0.811577f, 0.60672f, 0.867176f, 0.353186f, 0.275191f, 0.23565f, 0.882186f, 0.551459f, 0.589618f, 0.879264f, 0.948948f, 0.0572349f, 0.36607f, 0.519015f, 0.31113f, 0.543603f, 0.449493f, 0.616014f, 0.989401f, 0.839872f, 0.667913f, 0.490344f, 0.701474f, 0.744178f, 0.234312f, 0.544897f, 0.0978574f, 0.481315f, 0.922963f, 0.102181f, 0.455316f, 0.526248f, 0.268792f, 0.322846f, 0.878355f, 0.584459f, 0.359044f, 0.31167f, 0.37407f, 0.266124f, 0.503871f, 0.414904f, 0.635525f, 0.9518f, 0.509755f, 0.169408f, 0.0472026f, 0.667826f, 0.992603f, 0.251529f, 0.114493f, 0.679204f, 0.480373f, 0.18788f, 0.870213f, 0.992654f, 0.534436f, 0.941352f, 0.0244387f, 0.780228f, 0.42067f, 0.632817f, 0.660344f, 0.35694f, 0.0250982f, 0.217571f, 0.414648f, 0.492479f, 0.207949f, 0.599503f, 0.297134f, 0.563982f, 0.437704f, 0.899191f, 0.758265f, 0.0920194f, 0.571411f, 0.124159f, 0.519195f, 0.404076f, 0.907871f, 0.131346f, 0.226601f, 0.978353f, 0.897656f, 0.366342f, 0.550962f, 0.487607f, 0.293029f, 0.184642f, 0.0524754f, 0.567065f, 0.978196f, 0.318724f, 0.478241f, 0.706945f, 0.419912f, 0.756709f, 0.421248f, 0.654794f, 0.140818f, 0.0487424f, 0.017824f, 0.495759f, 0.538872f, 0.717103f, 0.0712224f, 0.824614f, 0.639925f, 0.578716f, 0.12625f, 0.0856402f, 0.205179f, 0.999377f, 0.0688811f, 0.410998f, 0.810521f, 0.669731f, 0.33862f, 0.394065f, 0.533385f, 0.142005f, 0.443029f, 0.290606f, 0.929948f, 0.901129f, 0.476085f, 0.621577f, 0.637656f, 0.608621f, 0.762401f, 0.58521f, 0.663044f, 0.300784f, 0.816918f, 0.509167f, 0.080701f, 0.442533f, 0.062607f, 0.52675f, 0.544716f, 0.341901f, 0.394151f, 0.150043f, 0.268943f, 0.105657f, 0.515799f, 0.975377f, 0.283571f, 0.67471f, 0.380002f, 0.841592f, 0.311632f, 0.0575393f, 0.389877f, 0.26193f, 0.538756f, 0.316056f, 0.263691f, 0.20521f, 0.354642f, 0.296586f, 0.551078f, 0.575484f, 0.0839746f, 0.392119f, 0.756555f, 0.502667f, 0.458518f, 0.00460051f, 0.266237f, 0.880153f, 0.537387f, 0.342953f, 0.0895121f, 0.47646f, 0.707822f, 0.892626f, 0.957136f, 0.570837f, 0.505494f, 0.658229f, 0.684948f, 0.921795f, 0.894423f, 0.13942f, 0.44968f, 0.825582f, 0.902669f, 0.376736f, 0.0870701f, 0.565238f, 0.270674f, 0.708481f, 0.830713f, 0.902815f, 0.414868f, 0.549203f, 0.464674f, 0.245451f, 0.435281f, 0.00176975f, 0.754087f, 0.735445f, 0.0837703f, 0.303677f, 0.411996f, 0.0742324f, 0.425401f, 0.572173f, 0.0837011f, 0.579745f, 0.929229f, 0.762363f, 0.865219f, 0.769798f, 0.116447f, 0.661699f, 0.16947f, 0.39375f, 0.84314f, 0.0903207f, 0.788996f, 0.398276f, 0.00100532f, 0.448497f, 0.165718f, 0.197389f, 0.962928f, 0.644996f, 0.637676f, 0.871885f, 0.230402f, 0.922665f, 0.588452f, 0.993352f, 0.76889f, 0.0436841f, 0.972861f, 0.802777f, 0.467909f, 0.86727f, 0.184278f, 0.789986f, 0.457721f, 0.325289f, 0.794625f, 0.443401f, 0.308017f, 0.715126f, 0.517875f, 0.693416f, 0.736179f, 0.316858f, 0.142924f, 0.721139f, 0.521596f, 0.236532f, 0.507966f, 0.608778f, 0.96292f, 0.558893f, 0.651695f, 0.137494f, 0.755832f, 0.771333f, 0.878684f, 0.405341f, 0.00297893f, 0.86097f, 0.473275f, 0.596905f, 0.451374f, 0.205335f, 0.235015f, 0.616377f, 0.66013f, 0.906755f, 0.804357f, 0.632587f, 0.194849f, 0.61264f, 0.184936f, 0.0597735f, 0.303249f, 0.949588f, 0.0657283f, 0.777175f, 0.684766f, 0.0628117f, 0.611167f, 0.183913f, 0.745564f, 0.833274f, 0.135848f, 0.981644f, 0.551356f, 0.905484f, 0.169549f, 0.272377f, 0.681274f, 0.797146f, 0.27877f, 0.301439f, 0.410783f, 0.285266f, 0.144248f, 0.833021f, 0.611345f, 0.524433f, 0.829463f, 0.0606167f, 0.292792f, 0.830006f, 0.301647f, 0.492409f, 0.0382006f, 0.997249f, 0.50477f, 0.683585f, 0.996514f, 0.560837f, 0.767123f, 0.00676823f, 0.101117f, 0.810901f, 0.146895f, 0.868268f, 0.542988f, 0.133829f, 0.852774f, 0.920998f, 0.117943f, 0.741353f, 0.288714f, 0.0230389f, 0.401274f, 0.796168f, 0.577941f, 0.259857f, 0.552797f, 0.197413f, 0.842157f, 0.832985f, 0.125974f, 0.0554495f, 0.317629f, 0.240185f, 0.216632f, 0.403821f, 0.554579f, 0.955922f, 0.173677f, 0.286429f, 0.621043f, 0.724967f, 0.666616f, 0.0555232f, 0.265642f, 0.85446f, 0.860972f, 0.281179f, 0.37778f, 0.814466f, 0.785219f, 0.767731f, 0.360001f, 0.7588f, 0.669505f, 0.779305f, 0.471352f, 0.275894f, 0.773946f, 0.387764f, 0.353426f, 0.815332f, 0.610091f, 0.0198395f, 0.883935f, 0.460346f, 0.162273f, 0.997625f, 0.951337f, 0.695928f, 0.759933f, 0.401278f, 0.856218f, 0.276184f, 0.504109f, 0.76299f, 0.825496f, 0.340869f, 0.245508f, 0.758234f, 0.295632f, 0.717019f, 0.520062f, 0.563225f, 0.284643f, 0.339057f, 0.909208f, 0.919052f, 0.675407f, 0.0378963f, 0.67125f, 0.618967f, 0.969515f, 0.845679f, 0.863896f, 0.915108f, 0.675248f, 0.663042f, 0.751497f, 0.296159f, 0.731409f, 0.0285581f, 0.429313f, 0.515649f, 0.638039f, 0.458869f, 0.131941f, 0.979324f, 0.798137f, 0.862869f, 0.900293f, 0.732474f, 0.0705629f, 0.270529f, 0.498765f, 0.607826f, 0.500047f, 0.676414f, 0.756136f, 0.190196f, 0.686842f, 0.65908f, 0.76664f, 0.831188f, 0.887319f, 0.191147f, 0.98713f, 0.736585f, 0.971298f, 0.342997f, 0.912222f, 0.628565f, 0.345245f, 0.691291f, 0.899544f, 0.79744f, 0.16101f, 0.425983f, 0.572252f, 0.788322f, 0.417363f, 0.244534f, 0.488441f, 0.921632f, 0.37453f, 0.736699f, 0.352986f, 0.674132f, 0.780165f, 0.642586f, 0.730052f, 0.787112f, 0.728426f, 0.572247f, 0.03463f, 0.68244f, 0.73817f, 0.75052f, 0.537633f, 0.939482f, 0.995564f, 0.0787703f, 0.00219422f, 0.380415f, 0.811731f, 0.0605845f, 0.138851f, 0.729498f, 0.199837f, 0.399193f, 0.472924f, 0.695298f, 0.413797f, 0.101758f, 0.562025f, 0.0636009f, 0.394252f, 0.318197f, 0.481093f, 0.735629f, 0.883258f, 0.511363f, 0.0960127f, 0.570261f, 0.168865f, 0.789992f, 0.409975f, 0.408898f, 0.60817f, 0.710565f, 0.534163f, 0.292034f, 0.222824f, 0.495537f, 0.892074f, 0.478677f, 0.389163f, 0.597385f, 0.837123f, 0.672154f, 0.682096f, 0.32456f, 0.0964614f, 0.0890683f, 0.486375f, 0.667079f, 0.454212f, 0.421606f, 0.966446f, 0.0669027f, 0.0634238f, 0.395007f, 0.402031f, 0.548816f, 0.16586f, 0.904213f, 0.440969f, 0.216063f, 0.629673f, 0.932029f, 0.81584f, 0.053853f, 0.797816f, 0.169428f, 0.132681f, 0.594715f, 0.812022f, 0.549036f, 0.842683f, 0.420224f, 0.404203f, 0.0583616f, 0.0230985f, 0.40045f, 0.125443f, 0.503097f, 0.278942f, 0.476684f, 0.912539f, 0.474602f, 0.21935f, 0.54441f, 0.345139f, 0.994644f, 0.566553f, 0.0520835f, 0.808824f, 0.603088f, 0.415181f, 0.546723f, 0.0136869f, 0.612214f, 0.796772f, 0.629557f, 0.979886f, 0.383687f, 0.044898f, 0.278622f, 0.343954f, 0.216075f, 0.966239f, 0.422888f, 0.170783f, 0.514171f, 0.401367f, 0.543856f, 0.595471f, 0.82722f, 0.283978f, 0.0922692f, 0.932564f, 0.0598004f, 0.594301f, 0.116594f, 0.203614f, 0.351593f, 0.0684048f, 0.0777549f, 0.879696f, 0.00430396f, 0.909826f, 0.0465579f, 0.33161f, 0.0236601f, 0.17313f, 0.365709f, 0.408294f, 0.601167f, 0.482956f, 0.372955f, 0.400157f, 0.0255608f, 0.715832f, 0.928293f, 0.590281f, 0.930925f, 0.314273f, 0.357687f, 0.451469f, 0.32756f, 0.120092f, 0.410322f, 0.95425f, 0.845381f, 0.0681171f, 0.372794f, 0.342892f, 0.732141f, 0.867536f, 0.874434f, 0.85772f, 0.60432f, 0.0885038f, 0.404264f, 0.398074f, 0.119433f, 0.638316f, 0.755464f, 0.709284f, 0.628798f, 0.835598f, 0.904575f, 0.336293f, 0.714058f, 0.554574f, 0.900748f, 0.46594f, 0.59166f, 0.664044f, 0.388797f, 0.277636f, 0.651409f, 0.83225f, 0.464688f, 0.85777f, 0.440545f, 0.539436f, 0.2756f, 0.232104f, 0.370369f, 0.0403602f, 0.465258f, 0.109327f, 0.0761089f, 0.632137f, 0.649382f, 0.769321f, 0.385889f, 0.727804f, 0.722116f, 0.316823f, 0.55617f, 0.178259f, 0.82641f, 0.825978f, 0.959284f, 0.00369669f, 0.678182f, 0.484151f, 0.778799f, 0.802664f, 0.686154f, 0.668922f, 0.753168f, 0.58172f, 0.940841f, 0.150399f, 0.310802f, 0.478986f, 0.86857f, 0.0529694f, 0.628518f, 0.816007f, 0.638773f, 0.0276212f, 0.504084f, 0.00824906f, 0.206548f, 0.959743f, 0.453159f, 0.302913f, 0.465664f, 0.837696f, 0.307528f, 0.546657f, 0.606967f, 0.719644f, 0.764328f, 0.268436f, 0.179318f, 0.000796436f, 0.0185983f, 0.702706f, 0.237367f, 0.295528f, 0.657002f, 0.487574f, 0.274441f, 0.947329f, 0.816869f, 0.755226f, 0.832704f, 0.508501f, 0.759611f, 0.743919f, 0.552021f, 0.584527f, 0.353846f, 0.997122f, 0.273265f, 0.528766f, 0.694072f, 0.278199f, 0.270164f, 0.507998f, 0.569064f, 0.71648f, 0.520015f, 0.494647f, 0.547632f, 0.053048f, 0.54686f, 0.460557f, 0.893281f, 0.0826122f, 0.780413f, 0.318118f, 0.327702f, 0.948741f, 0.749454f, 0.379775f, 0.197342f, 0.441201f, 0.487044f, 0.102453f, 0.62077f, 0.208023f, 0.59954f, 0.437963f, 0.645729f, 0.280912f, 0.23066f, 0.895854f, 0.158095f, 0.365078f, 0.0328177f, 0.331309f, 0.852248f, 0.713241f, 0.805001f, 0.68867f, 0.126665f, 0.66136f, 0.0456048f, 0.275175f, 0.728597f, 0.876747f, 0.703472f, 0.569631f, 0.991902f, 0.580252f, 0.222799f, 0.721635f, 0.389082f, 0.34485f, 0.898645f, 0.780462f, 0.519908f, 0.538189f, 0.774642f, 0.833867f, 0.93958f, 0.926064f, 0.411182f, 0.539883f, 0.854669f, 0.773631f, 0.0848835f, 0.89232f, 0.025475f, 0.350189f, 0.176215f, 0.0607147f, 0.541975f, 0.822398f, 0.984168f, 0.796827f, 0.526517f, 0.147365f, 0.461512f, 0.880727f, 0.0231515f, 0.962392f, 0.617255f, 0.258091f, 0.84885f, 0.393485f, 0.704886f, 0.922723f, 0.688269f, 0.407139f, 0.935418f, 0.571042f, 0.11942f, 0.982132f, 0.824296f, 0.312048f, 0.103785f, 0.983351f, 0.16652f, 0.271652f, 0.57492f, 0.200661f, 0.611072f, 0.836853f, 0.745464f, 0.414009f, 0.772654f, 0.579234f, 0.0370925f, 0.283828f, 0.803075f, 0.221144f, 0.0312848f, 0.598398f, 0.965683f, 0.0336897f, 0.107113f, 0.729821f, 0.087041f, 0.543042f, 0.358967f, 0.518301f, 0.156004f, 0.306046f, 0.633751f, 0.199647f, 0.522865f, 0.107152f, 0.169999f, 0.431278f, 0.978252f, 0.193718f, 0.943982f, 0.237834f, 0.2771f, 0.9646f, 0.762601f, 0.207008f, 0.645238f, 0.150583f, 0.423062f, 0.717546f, 0.0563815f, 0.962171f, 0.638373f, 0.705042f, 0.534317f, 0.58723f, 0.554048f, 0.238623f, 0.295577f, 0.885911f, 0.0529201f, 0.898848f, 0.370815f, 0.583385f, 0.996378f, 0.618232f, 0.641957f, 0.316822f, 0.56646f, 0.421175f, 0.0101171f, 0.292266f, 0.574045f, 0.615887f, 0.591589f, 0.681195f, 0.551657f, 0.80939f, 0.86992f, 0.283634f, 0.963932f, 0.286f, 0.68426f, 0.177203f, 0.0885207f, 0.618486f, 0.133223f, 0.437307f, 0.952512f, 0.939701f, 0.351882f, 0.956029f, 0.360258f, 0.931521f, 0.505386f, 0.33155f, 0.855847f, 0.110569f, 0.594976f, 0.175584f, 0.200721f, 0.519908f, 0.598791f, 0.718774f, 0.802696f, 0.418697f, 0.0505992f, 0.82239f, 0.82677f, 0.737835f, 0.997216f, 0.87038f, 0.469017f, 0.213352f, 0.0833311f, 0.955601f, 0.732695f, 0.43127f, 0.314403f, 0.108329f, 0.782133f, 0.748727f, 0.559826f, 0.978846f, 0.858408f, 0.6793f, 0.993276f, 0.809714f, 0.583099f, 0.309991f, 0.0698749f, 0.868124f, 0.0655025f, 0.148763f, 0.786372f, 0.173378f, 0.143929f, 0.129673f, 0.870449f, 0.423094f, 0.996349f, 0.932729f, 0.351846f, 0.944564f, 0.186328f, 0.458144f, 0.646232f, 0.840148f, 0.0521953f, 0.490151f, 0.861728f, 0.945871f, 0.123322f, 0.0219116f, 0.694025f, 0.549486f, 0.787336f, 0.731366f, 0.95245f, 0.765569f, 0.337117f, 0.978759f, 0.981853f, 0.596123f, 0.426706f, 0.546525f, 0.265562f, 0.453131f, 0.208441f, 0.549061f, 0.750872f, 0.093735f, 0.888499f, 0.994944f, 0.177307f, 0.254411f, 0.457744f, 0.34775f, 0.133779f, 0.929043f, 0.0944183f, 0.138461f, 0.218889f, 0.63263f, 0.880749f, 0.211545f, 0.567309f, 0.913402f, 0.282153f, 0.43556f, 0.630123f, 0.965008f, 0.692314f, 0.772579f, 0.0808181f, 0.46651f, 0.974586f, 0.638555f, 0.460937f, 0.905597f, 0.19107f, 0.17764f, 0.894252f, 0.414824f, 0.352195f, 0.207721f, 0.73078f, 0.609946f, 0.590582f, 0.410915f, 0.488869f, 0.825836f, 0.737748f, 0.326396f, 0.800481f, 0.253808f, 0.761464f, 0.44629f, 0.802371f, 0.48098f, 0.754115f, 0.864285f, 0.179325f, 0.238373f, 0.138004f, 0.27962f, 0.932364f, 0.80228f, 0.0271451f, 0.987216f, 0.629104f, 0.0498651f, 0.995528f, 0.600753f, 0.175326f, 0.474049f, 0.0378203f, 0.83367f, 0.13611f, 0.13769f, 0.139143f, 0.914651f, 0.243489f, 0.77545f, 0.161589f, 0.58287f, 0.687041f, 0.247851f, 0.18179f, 0.910724f, 0.823587f, 0.0550599f, 0.427548f, 0.936595f, 0.0205633f, 0.0179543f, 0.663135f, 0.270309f, 0.080666f, 0.83573f, 0.604453f, 0.766691f, 0.010323f, 0.957523f, 0.390917f, 0.159005f, 0.448106f, 0.431302f, 0.137943f, 0.571494f, 0.0941859f, 0.971891f, 0.44257f, 0.596926f, 0.815116f, 0.209047f, 0.528437f, 0.868364f, 0.857529f, 0.265967f, 0.0264147f, 0.427806f, 0.479732f, 0.936526f, 0.134279f, 0.932668f, 0.842761f, 0.950844f, 0.928037f, 0.902087f, 0.631585f, 0.242776f, 0.0651731f, 0.703864f, 0.570125f, 0.395168f, 0.00144219f, 0.198232f, 0.0439579f, 0.103995f, 0.209509f, 0.977651f, 0.522272f, 0.0326016f, 0.0587909f, 0.714106f, 0.375312f, 0.600653f, 0.799133f, 0.256873f, 0.0646299f, 0.226333f, 0.481605f, 0.197983f, 0.877393f, 0.819033f, 0.117936f, 0.773533f, 0.309804f, 0.322527f, 0.485049f, 0.29339f, 0.578335f, 0.661432f, 0.190533f, 0.111928f, 0.307344f, 0.336837f, 0.231922f, 0.0420848f, 0.514988f, 0.985584f, 0.59564f, 0.859343f, 0.428762f, 0.918974f, 0.782172f, 0.881984f, 0.616943f, 0.709915f, 0.143853f, 0.516046f, 0.84039f, 0.0616408f, 0.856248f, 0.0715974f, 0.178598f, 0.0788329f, 0.214251f, 0.501827f, 0.10165f, 0.149686f, 0.568122f, 0.526522f, 0.588385f, 0.649552f, 0.802502f, 0.914132f, 0.184306f, 0.79369f, 0.00410956f, 0.599341f, 0.761062f, 0.317949f, 0.572229f, 0.772129f, 0.414773f, 0.867983f, 0.275066f, 0.577239f, 0.86939f, 0.126182f, 0.530422f, 0.536293f, 0.216343f, 0.433691f, 0.577769f, 0.4999f, 0.211479f, 0.690396f, 0.908978f, 0.357924f, 0.475413f, 0.888614f, 0.594871f, 0.805686f, 0.824012f, 0.565476f, 0.447597f, 0.742646f, 0.601787f, 0.214971f, 0.414767f, 0.814431f, 0.860898f, 0.660798f, 0.923988f, 0.873648f, 0.475515f, 0.271393f, 0.445084f, 0.401211f, 0.824812f, 0.526915f, 0.506517f, 0.838271f, 0.552343f, 0.410306f, 0.976452f, 0.160352f, 0.145517f, 0.329589f, 0.508718f, 0.433945f, 0.62697f, 0.666669f, 0.301417f, 0.600519f, 0.140122f, 0.0342462f, 0.749468f, 0.362294f, 0.573222f, 0.940565f, 0.606496f, 0.800919f, 0.0969009f, 0.612881f, 0.328299f, 0.202667f, 0.478386f, 0.061613f, 0.0408247f, 0.113888f, 0.264164f, 0.181642f, 0.830401f, 0.919018f, 0.707304f, 0.660754f, 0.173174f, 0.725508f, 0.258154f, 0.0935418f, 0.880605f, 0.979335f, 0.979478f, 0.463536f, 0.775126f, 0.521115f, 0.381796f, 0.813129f, 0.879217f, 0.0569293f, 0.64193f, 0.0681011f, 0.421784f, 0.1403f, 0.94013f, 0.10248f, 0.649367f, 0.941418f, 0.670194f, 0.888578f, 0.765968f, 0.320945f, 0.685102f, 0.852353f, 0.389216f, 0.834381f, 0.786971f, 0.4331f, 0.0486131f, 0.460831f, 0.812581f, 0.588036f, 0.0386062f, 0.769703f, 0.605088f, 0.722163f, 0.0314492f, 0.832922f, 0.903044f, 0.231055f, 0.728042f, 0.110897f, 0.431594f, 0.309462f, 0.11294f, 0.0670814f, 0.625663f, 0.425656f, 0.177113f, 0.438086f, 0.951453f, 0.415572f, 0.824223f, 0.31294f, 0.957691f, 0.808175f, 0.659531f, 0.397838f, 0.501979f, 0.139841f, 0.838215f, 0.588624f, 0.183401f, 0.835496f, 0.268936f, 0.320515f, 0.808754f, 0.881535f, 0.641655f, 0.868639f, 0.538035f, 0.383658f, 0.81925f, 0.244493f, 0.868118f, 0.108817f, 0.930293f, 0.625395f, 0.821832f, 0.189743f, 0.751963f, 0.544101f, 0.505598f, 0.537047f, 0.661969f, 0.933226f, 0.466824f, 0.47114f, 0.918811f, 0.750851f, 0.671081f, 0.821295f, 0.945188f, 0.943402f, 0.306194f, 0.875262f, 0.344571f, 0.28533f, 0.358017f, 0.510657f, 0.819928f, 0.811225f, 0.575014f, 0.200153f, 0.442748f, 0.781176f, 0.117917f, 0.0319228f, 0.330275f, 0.430613f, 0.395767f, 0.941447f, 0.249399f, 0.55878f, 0.976363f, 0.707941f, 0.539029f, 0.929557f, 0.661428f, 0.531866f, 0.216032f, 0.775277f, 0.613841f, 0.630223f, 0.690056f, 0.159605f, 0.172662f, 0.648255f, 0.627551f, 0.890362f, 0.820532f, 0.166492f, 0.872343f, 0.4956f, 0.427278f, 0.768214f, 0.0719299f, 0.987919f, 0.360018f, 0.288648f, 0.409812f, 0.386399f, 0.00474841f, 0.843279f, 0.300295f, 0.367316f, 0.521666f, 0.00945934f, 0.928267f, 0.716858f, 0.269648f, 0.23232f, 0.86501f, 0.374387f, 0.612416f, 0.953231f, 0.226648f, 0.0856993f, 0.160165f, 0.0797144f, 0.221482f, 0.431156f, 0.413296f, 0.358701f, 0.418836f, 0.283429f, 0.534095f, 0.367291f, 0.394108f, 0.667079f, 0.456069f, 0.78066f, 0.155554f, 0.132467f, 0.394805f, 0.595467f, 0.0211626f, 0.651095f, 0.655613f, 0.177805f, 0.124999f, 0.807011f, 0.634552f, 0.0271443f, 0.288895f, 0.906153f, 0.448306f, 0.0305001f, 0.502583f, 0.770978f, 0.594258f, 0.0445926f, 0.76084f, 0.440544f, 0.137063f, 0.662651f, 0.711555f, 0.653516f, 0.0763224f, 0.637551f, 0.0517443f, 0.0645197f, 0.913255f, 0.555985f, 0.133238f, 0.980545f, 0.290299f, 0.303275f, 0.300487f, 0.467988f, 0.338358f, 0.602253f, 0.175903f, 0.658607f, 0.137025f, 0.463191f, 0.0167984f, 0.533693f, 0.458243f, 0.284057f, 0.0650987f, 0.700486f, 0.122906f, 0.832178f, 0.858904f, 0.833125f, 0.885373f, 0.415651f, 0.545531f, 0.113715f, 0.482108f, 0.118734f, 0.96855f, 0.965216f, 0.981809f, 0.845925f, 0.714154f, 0.7886f, 0.836292f, 0.415452f, 0.781196f, 0.904018f, 0.243951f, 0.7855f, 0.670328f, 0.713856f, 0.126852f, 0.169495f, 0.794933f, 0.239344f, 0.794406f, 0.523669f, 0.117212f, 0.790886f, 0.439327f, 0.376101f, 0.271754f, 0.0610157f, 0.86614f, 0.0221538f, 0.89961f, 0.632884f, 0.923022f, 0.231558f, 0.315743f, 0.7219f, 0.549763f, 0.337929f, 0.312484f, 0.962081f, 0.36933f, 0.948569f, 0.801396f, 0.410944f, 0.425275f, 0.532603f, 0.0630479f, 0.690848f, 0.223495f, 0.149753f, 0.922555f, 0.686001f, 0.793803f, 0.972618f, 0.896042f, 0.612586f, 0.204122f, 0.700157f, 0.871581f, 0.00910096f, 0.373863f, 0.236761f, 0.302365f, 0.505682f, 0.420966f, 0.557633f, 0.607625f, 0.0651274f, 0.627289f, 0.331521f, 0.185134f, 0.518712f, 0.308724f, 0.811741f, 0.251559f, 0.568634f, 0.914078f, 0.604802f, 0.164206f, 0.381585f, 0.4562f, 0.395127f, 0.740485f, 0.326243f, 0.160696f, 0.483046f, 0.2234f, 0.0760913f, 0.091152f, 0.116994f, 0.673546f, 0.651748f, 0.232191f, 0.172033f, 0.830639f, 0.533481f, 0.651716f, 0.0933954f, 0.258903f, 0.199218f, 0.319521f, 0.952921f, 0.538796f, 0.607854f, 0.493173f, 0.313999f, 0.097214f, 0.137803f, 0.0880292f, 0.582761f, 0.0501668f, 0.264903f, 0.732472f, 0.039704f, 0.00950285f, 0.688666f, 0.885808f, 0.562967f, 0.663141f, 0.0436381f, 0.381255f, 0.536207f, 0.627869f, 0.501329f, 0.671545f, 0.66127f, 0.473033f, 0.732092f, 0.203037f, 0.876202f, 0.601081f, 0.524588f, 0.421899f, 0.691385f, 0.869965f, 0.944745f, 0.377468f, 0.0368267f, 0.896866f, 0.90816f, 0.138054f, 0.287083f, 0.335218f, 0.941943f, 0.0479425f, 0.470131f, 0.00903862f, 0.275327f, 0.573073f, 0.513652f, 0.728636f, 0.459603f, 0.847832f, 0.0503086f, 0.748406f, 0.706157f, 0.517583f, 0.0141996f, 0.414979f, 0.08405f, 0.402525f, 0.233583f, 0.0878202f, 0.209633f, 0.496619f, 0.901065f, 0.0438425f, 0.538073f, 0.423226f, 0.408765f, 0.915521f, 0.182872f, 0.61773f, 0.853257f, 0.636302f, 0.764843f, 0.278297f, 0.351968f, 0.209274f, 0.400615f, 0.491891f, 0.454867f, 0.937252f, 0.392006f, 0.307152f, 0.160138f, 0.647409f, 0.313708f, 0.904029f, 0.0805075f, 0.123685f, 0.541003f, 0.62969f, 0.966634f, 0.789415f, 0.89396f, 0.326296f, 0.837853f, 0.478753f, 0.794071f, 0.420256f, 0.971584f, 0.259005f, 0.530313f, 0.0114982f, 0.162983f, 0.464409f, 0.864759f, 0.5617f, 0.332869f, 0.0481572f, 0.701619f, 0.0315991f, 0.640619f, 0.160601f, 0.0622128f, 0.96043f, 0.983107f, 0.953527f, 0.864518f, 0.218876f, 0.954606f, 0.428151f, 0.903055f, 0.568602f, 0.937188f, 0.98872f, 0.85357f, 0.030049f, 0.767508f, 0.830182f, 0.512175f, 0.590847f, 0.662972f, 0.0807161f, 0.158365f, 0.999249f, 0.567872f, 0.954536f, 0.642529f, 0.830874f, 0.957597f, 0.402465f, 0.677928f, 0.612069f, 0.696666f, 0.840936f, 0.595151f, 0.578211f, 0.685434f, 0.944613f, 0.239791f, 0.251588f, 0.188414f, 0.288159f, 0.630142f, 0.315011f, 0.977375f, 0.15699f, 0.716794f, 0.214411f, 0.573798f, 0.811806f, 0.81383f, 0.959703f, 0.899141f, 0.608386f, 0.221686f, 0.984997f, 0.904847f, 0.151414f, 0.588994f, 0.515622f, 0.111433f, 0.917686f, 0.972467f, 0.581991f, 0.392258f, 0.633952f, 0.524463f, 0.381312f, 0.817605f, 0.980241f, 0.318238f, 0.53001f, 0.27213f, 0.467488f, 0.294794f, 0.798982f, 0.669384f, 0.719301f, 0.958382f, 0.804702f, 0.141455f, 0.560358f, 0.542309f, 0.00725739f, 0.446341f, 0.249821f, 0.949181f, 0.941526f, 0.993123f, 0.0814309f, 0.156428f, 0.296623f, 0.763557f, 0.859472f, 0.720457f, 0.733383f, 0.569087f, 0.0409618f, 0.309238f, 0.332018f, 0.262818f, 0.721738f, 0.0768555f, 0.746524f, 0.850146f, 0.714619f, 0.162055f, 0.917288f, 0.785032f, 0.554666f, 0.320327f, 0.439398f, 0.957625f, 0.944559f, 0.0686576f, 0.257077f, 0.970626f, 0.62337f, 0.867643f, 0.667705f, 0.93922f, 0.00102708f, 0.00206041f, 0.595461f, 0.432175f, 0.367634f, 0.649383f, 0.402521f, 0.3633f, 0.261763f, 0.587614f, 0.504025f, 0.190015f, 0.627813f, 0.397097f, 0.788601f, 0.725343f, 0.554026f, 0.83152f, 0.495644f, 0.277014f, 0.388641f, 0.762496f, 0.374025f, 0.86129f, 0.0407293f, 0.584523f, 0.544645f, 0.871006f, 0.617099f, 0.447033f, 0.710581f, 0.84883f, 0.481444f, 0.311391f, 0.581752f, 0.344506f, 0.745902f, 0.0426611f, 0.162753f, 0.704493f, 0.250898f, 0.68663f, 0.796968f, 0.581858f, 0.991296f, 0.704103f, 0.732113f, 0.428668f, 0.622033f, 0.617142f, 0.422555f, 0.526939f, 0.939926f, 0.48753f, 0.607909f, 0.0481371f, 0.708371f, 0.026737f, 0.235826f, 0.0291002f, 0.119347f, 0.211346f, 0.230851f, 0.279482f, 0.519222f, 0.39127f, 0.626721f, 0.603084f, 0.339094f, 0.142595f, 0.696528f, 0.284544f, 0.24334f, 0.573797f, 0.203033f, 0.180646f, 0.7183f, 0.675145f, 0.326594f, 0.765995f, 0.545793f, 0.885235f, 0.229569f, 0.396105f, 0.963607f, 0.29157f, 0.100511f, 0.380513f, 0.297258f, 0.36894f, 0.306344f, 0.80289f, 0.893432f, 0.766634f, 0.227175f, 0.287085f, 0.606253f, 0.575777f, 0.337349f, 0.71287f, 0.565895f, 0.88872f, 0.631308f, 0.142192f, 0.343971f, 0.290115f, 0.172617f, 0.125252f, 0.850873f, 0.375555f, 0.132906f, 0.209471f, 0.941131f, 0.0870937f, 0.830269f, 0.406239f, 0.110883f, 0.558027f, 0.643672f, 0.204696f, 0.281936f, 0.193102f, 0.981494f, 0.293286f, 0.762034f, 0.119543f, 0.500904f, 0.0199665f, 0.781367f, 0.813823f, 0.685262f, 0.270013f, 0.317096f, 0.123699f, 0.842954f, 0.164216f, 0.0241652f, 0.589907f, 0.707067f, 0.894229f, 0.275417f, 0.83801f, 0.690485f, 0.834596f, 0.617023f, 0.0834039f, 0.603464f, 0.623476f, 0.436211f, 0.980066f, 0.0226747f, 0.79512f, 0.235173f, 0.354364f, 0.281109f, 0.917475f, 0.782733f, 0.98023f, 0.282638f, 0.437491f, 0.733053f, 0.468777f, 0.470778f, 0.234974f, 0.851907f, 0.514415f, 0.554819f, 0.461715f, 0.98942f, 0.643724f, 0.0663051f, 0.390555f, 0.038522f, 0.174123f, 0.697024f, 0.819552f, 0.280796f, 0.709868f, 0.860632f, 0.906449f, 0.374823f, 0.719379f, 0.735071f, 0.798275f, 0.291949f, 0.695889f, 0.380973f, 0.125914f, 0.954415f, 0.239392f, 0.226089f, 0.177524f, 0.829654f, 0.648409f, 0.40236f, 0.204048f, 0.861321f, 0.318195f, 0.444191f, 0.946016f, 0.933354f, 0.695845f, 0.157571f, 0.3451f, 0.828508f, 0.263626f, 0.514817f, 0.946433f, 0.572556f, 0.595014f, 0.954246f, 0.578397f, 0.274419f, 0.398533f, 0.677832f, 0.756134f, 0.518582f, 0.934838f, 0.926696f, 0.408439f, 0.357739f, 0.333876f, 0.559884f, 0.614297f, 0.371403f, 0.11742f, 0.960378f, 0.883136f, 0.481486f, 0.184133f, 0.58541f, 0.607515f, 0.0308657f, 0.917573f, 0.0647184f, 0.258382f, 0.18783f, 0.924871f, 0.686562f, 0.657322f, 0.431049f, 0.241608f, 0.147015f, 0.920292f, 0.383998f, 0.304657f, 0.282625f, 0.302467f, 0.546403f, 0.436642f, 0.91491f, 0.717142f, 0.217742f, 0.158671f, 0.814419f, 0.837199f, 0.994399f, 0.263271f, 0.581781f, 0.12564f, 0.137798f, 0.0892224f, 0.404939f, 0.858036f, 0.176193f, 0.856965f, 0.00815598f, 0.449133f, 0.129093f, 0.0774662f, 0.873704f, 0.444002f, 0.138117f, 0.944524f, 0.622295f, 0.902876f, 0.0370288f, 0.418928f, 0.659432f, 0.0333929f, 0.267613f, 0.976323f, 0.211061f, 0.170965f, 0.80337f, 0.140518f, 0.0104873f, 0.0498906f, 0.529262f, 0.464673f, 0.867122f, 0.975732f, 0.199705f, 0.187325f, 0.0741305f, 0.551017f, 0.470653f, 0.0212216f, 0.808663f, 0.771354f, 0.596296f, 0.724894f, 0.793356f, 0.336402f, 0.309215f, 0.255515f, 0.710968f, 0.363766f, 0.805144f, 0.998737f, 0.76862f, 0.98081f, 0.507679f, 0.582929f, 0.981082f, 0.507978f, 0.0752734f, 0.0377054f, 0.938455f, 0.525395f, 0.140897f, 0.355304f, 0.662316f, 0.599575f, 0.802774f, 0.553816f, 0.591719f, 0.410345f, 0.745233f, 0.722667f, 0.509046f, 0.908693f, 0.850967f, 0.0324016f, 0.924513f, 0.157167f, 0.739413f, 0.37459f, 0.839959f, 0.923021f, 0.412234f, 0.0345796f, 0.903386f, 0.524018f, 0.844048f, 0.742732f, 0.0567757f, 0.501753f, 0.00601583f, 0.672038f, 0.575995f, 0.514017f, 0.0965867f, 0.368068f, 0.876781f, 0.455834f, 0.988867f, 0.320823f, 0.791238f, 0.685618f, 0.688263f, 0.30172f, 0.154157f, 0.38967f, 0.893093f, 0.682824f, 0.491578f, 0.147365f, 0.422887f, 0.77626f, 0.196574f, 0.152135f, 0.458944f, 0.434116f, 0.541536f, 0.766819f, 0.655184f, 0.196817f, 0.505151f, 0.757189f, 0.954487f, 0.579187f, 0.216767f, 0.964215f, 0.839978f, 0.670988f, 0.331055f, 0.182331f, 0.703817f, 0.744852f, 0.524631f, 0.582248f, 0.387029f, 0.936402f, 0.452148f, 0.226594f, 0.451548f, 0.482084f, 0.11335f, 0.130897f, 0.375126f, 0.585692f, 0.641658f, 0.597116f, 0.714599f, 0.679359f, 0.821281f, 0.529628f, 0.552795f, 0.833701f, 0.553135f, 0.376353f, 0.418704f, 0.667053f, 0.593472f, 0.0308925f, 0.825259f, 0.48765f, 0.134168f, 0.44145f, 0.959864f, 0.0557883f, 0.588004f, 0.141181f, 0.256054f, 0.351418f, 0.793767f, 0.427475f, 0.274212f, 0.834324f, 0.604863f, 0.208494f, 0.158566f, 0.0249299f, 0.657403f, 0.737942f, 0.533073f, 0.942514f, 0.474294f, 0.213768f, 0.930265f, 0.840173f, 0.347749f, 0.885124f, 0.751381f, 0.553558f, 0.306672f, 0.634265f, 0.0902744f, 0.747288f, 0.23759f, 0.0710373f, 0.047687f, 0.158565f, 0.691001f, 0.651163f, 0.841605f, 0.509969f, 0.177072f, 0.368876f, 0.254477f, 0.0600976f, 0.247018f, 0.307013f, 0.470346f, 0.856977f, 0.486844f, 0.0455714f, 0.684224f, 0.0756216f, 0.835829f, 0.419441f, 0.550001f, 0.583555f, 0.399605f, 0.171784f, 0.469342f, 0.97022f, 0.857533f, 0.0112206f, 0.467318f, 0.48188f, 0.492544f, 0.86111f, 0.177766f, 0.268772f, 0.506046f, 0.763479f, 0.333753f, 0.484561f, 0.88045f, 0.738057f, 0.766067f, 0.776356f, 0.00245242f, 0.436079f, 0.0633805f, 0.415047f, 0.424136f, 0.460834f, 0.285765f, 0.242759f, 0.948502f, 0.476294f, 0.306081f, 0.432637f, 0.242089f, 0.492189f, 0.751988f, 0.732986f, 0.25638f, 0.298272f, 0.499268f, 0.794713f, 0.594566f, 0.789394f, 0.205432f, 0.887851f, 0.380283f, 0.351148f, 0.277007f, 0.173036f, 0.518288f, 0.599575f, 0.549851f, 0.0718886f, 0.878768f, 0.976984f, 0.904287f, 0.404998f, 0.246444f, 0.486814f, 0.33542f, 0.384795f, 0.312766f, 0.551052f, 0.832833f, 0.964851f, 0.112455f, 0.34335f, 0.827286f, 0.468636f, 0.968977f, 0.199412f, 0.753429f, 0.669971f, 0.299026f, 0.945928f, 0.580359f, 0.747843f, 0.953723f, 0.318124f, 0.460227f, 0.40709f, 0.327655f, 0.5047f, 0.683002f, 0.0211267f, 0.503006f, 0.917106f, 0.391914f, 0.998695f, 0.720124f, 0.186802f, 0.188715f, 0.447346f, 0.961447f, 0.966021f, 0.595159f, 0.0295533f, 0.821429f, 0.451973f, 0.577396f, 0.469745f, 0.543003f, 0.561706f, 0.925863f, 0.0838483f, 0.288927f, 0.948506f, 0.481951f, 0.214777f, 0.692486f, 0.23302f, 0.645125f, 0.698085f, 0.3244f, 0.00853607f, 0.50614f, 0.654027f, 0.579495f, 0.292898f, 0.648634f, 0.833606f, 0.884226f, 0.148754f, 0.950711f, 0.331601f, 0.572725f, 0.642462f, 0.957883f, 0.0358616f, 0.855363f, 0.350406f, 0.546699f, 0.67605f, 0.925901f, 0.872315f, 0.816289f, 0.159165f, 0.856594f, 0.349519f, 0.422961f, 0.358601f, 0.361202f, 0.0431684f, 0.891921f, 0.224032f, 0.232555f, 0.683654f, 0.943001f, 0.159989f, 0.32933f, 0.649271f, 0.963157f, 0.478735f, 0.500318f, 0.100967f, 0.596231f, 0.323051f, 0.287573f, 0.208628f, 0.149283f, 0.0828627f, 0.730904f, 0.802556f, 0.693205f, 0.617672f, 0.895647f, 0.127091f, 0.957333f, 0.0131387f, 0.252134f, 0.479621f, 0.508372f, 0.28919f, 0.786126f, 0.333306f, 0.51313f, 0.145698f, 0.901917f, 0.96923f, 0.850668f, 0.750444f, 0.673972f, 0.312499f, 0.976766f, 0.155382f, 0.617215f, 0.661184f, 0.731335f, 0.33314f, 0.00343491f, 0.196903f, 0.672564f, 0.339787f, 0.433247f, 0.308537f, 0.491999f, 0.50052f, 0.0471497f, 0.852182f, 0.400892f, 0.964917f, 0.121747f, 0.910889f, 0.965982f, 0.581256f, 0.1072f, 0.680748f, 0.0555249f, 0.448541f, 0.660725f, 0.700136f, 0.823149f, 0.541174f, 0.597859f, 0.160044f, 0.727947f, 0.735551f, 0.617442f, 0.970376f, 0.99503f, 0.780881f, 0.295009f, 0.376218f, 0.805222f, 0.645669f, 0.11074f, 0.953806f, 0.0242301f, 0.750982f, 0.514704f, 0.5657f, 0.368459f, 0.54815f, 0.329717f, 0.414719f, 0.666947f, 0.675185f, 0.0672083f, 0.659835f, 0.877681f, 0.974564f, 0.329524f, 0.923178f, 0.515386f, 0.441206f, 0.725525f, 0.250916f, 0.682244f, 0.170287f, 0.403503f, 0.308291f, 0.395623f, 0.767037f, 0.0206959f, 0.862882f, 0.873123f, 0.428151f, 0.156571f, 0.24359f, 0.521552f, 0.278707f, 0.720586f, 0.103661f, 0.734499f, 0.908199f, 0.11442f, 0.239555f, 0.951843f, 0.124057f, 0.764645f, 0.257158f, 0.92787f, 0.0870966f, 0.403574f, 0.562358f, 0.996112f, 0.910104f, 0.297306f, 0.45252f, 0.292735f, 0.510299f, 0.830176f, 0.12918f, 0.259885f, 0.524489f, 0.672908f, 0.093028f, 0.242972f, 0.166893f, 0.273353f, 0.599158f, 0.356853f, 0.732843f, 0.103803f, 0.895193f, 0.357082f, 0.0386378f, 0.987084f, 0.350177f, 0.301136f, 0.586194f, 0.15287f, 0.539825f, 0.396232f, 0.931566f, 0.409499f, 0.344459f, 0.0367832f, 0.560898f, 0.890848f, 0.482983f, 0.77089f, 0.487851f, 0.699821f, 0.877822f, 0.80039f, 0.751955f, 0.739457f, 0.640459f, 0.869741f, 0.945419f, 0.931186f, 0.441144f, 0.364651f, 0.879771f, 0.202563f, 0.500254f, 0.928054f, 0.991443f, 0.783682f, 0.451575f, 0.507351f, 0.714173f, 0.818625f, 0.60254f, 0.317403f, 0.3855f, 0.336991f, 0.00133882f, 0.0361199f, 0.186633f, 0.107588f, 0.314715f, 0.29347f, 0.888815f, 0.531259f, 0.838933f, 0.948802f, 0.875055f, 0.612094f, 0.326938f, 0.413269f, 0.11842f, 0.0209559f, 0.583947f, 0.432853f, 0.811403f, 0.689931f, 0.266728f, 0.27297f, 0.698449f, 0.734146f, 0.7829f, 0.753814f, 0.194505f, 0.0899534f, 0.656829f, 0.0137207f, 0.955975f, 0.395685f, 0.55713f, 0.97066f, 0.147817f, 0.931832f, 0.545807f, 0.500586f, 0.655721f, 0.590013f, 0.0331138f, 0.345493f, 0.828562f, 0.856873f, 0.0159198f, 0.378047f, 0.787885f, 0.402999f, 0.496351f, 0.618542f, 0.296037f, 0.523252f, 0.199806f, 0.874143f, 0.589831f, 0.293539f, 0.0993665f, 0.694305f, 0.403531f, 0.932365f, 0.0359973f, 0.650053f, 0.475801f, 0.606347f, 0.297803f, 0.233503f, 0.793415f, 0.744092f, 0.829684f, 0.165114f, 0.319328f, 0.214302f, 0.321992f, 0.133982f, 0.589505f, 0.391096f, 0.164082f, 0.755471f, 0.910588f, 0.246127f, 0.566981f, 0.400291f, 0.455368f, 0.360917f, 0.680342f, 0.221744f, 0.903978f, 0.743636f, 0.228905f, 0.7694f, 0.99255f, 0.23331f, 0.143171f, 0.174363f, 0.828049f, 0.0932809f, 0.214401f, 0.759514f, 0.334247f, 0.868765f, 0.682726f, 0.202166f, 0.0248352f, 0.599662f, 0.614277f, 0.456066f, 0.935424f, 0.764551f, 0.97608f, 0.714571f, 0.452008f, 0.384825f, 0.265579f, 0.924438f, 0.472544f, 0.44634f, 0.964771f, 0.727533f, 0.0392375f, 0.803777f, 0.506951f, 0.0858723f, 0.284566f, 0.572916f, 0.831223f, 0.527367f, 0.430055f, 0.645944f, 0.905373f, 0.694997f, 0.595465f, 0.904301f, 0.228418f, 0.838301f, 0.644333f, 0.987351f, 0.0155199f, 0.266114f, 0.595526f, 0.740514f, 0.730127f, 0.511462f, 0.147132f, 0.723015f, 0.861887f, 0.135874f, 0.517908f, 0.49663f, 0.428724f, 0.345783f, 0.41971f, 0.5259f, 0.31237f, 0.636449f, 0.0762187f, 0.553017f, 0.785511f, 0.23417f, 0.520302f, 0.0106807f, 0.818606f, 0.411141f, 0.11986f, 0.489176f, 0.10744f, 0.0908673f, 0.0190166f, 0.28363f, 0.531797f, 0.915454f, 0.401515f, 0.869094f, 0.142864f, 0.857725f, 0.286094f, 0.155983f, 0.544001f, 0.097237f, 0.804455f, 0.451285f, 0.638986f, 0.229406f, 0.911183f, 0.127759f, 0.100493f, 0.923189f, 0.439978f, 0.218921f, 0.902318f, 0.872992f, 0.0758135f, 0.723589f, 0.425318f, 0.605319f, 0.336365f, 0.714893f, 0.788778f, 0.0648718f, 0.505498f, 0.922362f, 0.733696f, 0.159567f, 0.0580725f, 0.979141f, 0.222945f, 0.68021f, 0.720481f, 0.417248f, 0.540786f, 0.918592f, 0.774705f, 0.0538489f, 0.480015f, 0.0992691f, 0.916992f, 0.743738f, 0.339782f, 0.0836222f, 0.0728764f, 0.0105342f, 0.676257f, 0.825676f, 0.768047f, 0.255021f, 0.965637f, 0.0560355f, 0.332061f, 0.685223f, 0.642247f, 0.604461f, 0.179018f, 0.829109f, 0.573856f, 0.693878f, 0.927343f, 0.622609f, 0.172197f, 0.0989473f, 0.140669f, 0.767246f, 0.463837f, 0.893652f, 0.763666f, 0.959632f, 0.0820774f, 0.158949f, 0.846587f, 0.981103f, 0.439481f, 0.848754f, 0.392567f, 0.776011f, 0.17427f, 0.823469f, 0.00488921f, 0.637263f, 0.398956f, 0.418484f, 0.280438f, 0.262279f, 0.703354f, 0.464967f, 0.00209161f, 0.976941f, 0.24688f, 0.966388f, 0.522709f, 0.863451f, 0.643606f, 0.680348f, 0.700682f, 0.697095f, 0.159629f, 0.168901f, 0.988826f, 0.27654f, 0.370214f, 0.304424f, 0.546366f, 0.962145f, 0.434981f, 0.13419f, 0.812772f, 0.850664f, 0.765539f, 0.593282f, 0.88781f, 0.366307f, 0.423486f, 0.830649f, 0.848593f, 0.890174f, 0.59606f, 0.124577f, 0.0116874f, 0.0796542f, 0.15658f, 0.417686f, 0.0698055f, 0.653551f, 0.644604f, 0.620626f, 0.920253f, 0.450845f, 0.435975f, 0.0288537f, 0.963141f, 0.050949f, 0.464791f, 0.898443f, 0.0748599f, 0.0796603f, 0.952003f, 0.814862f, 0.483537f, 0.818661f, 0.174355f, 0.3693f, 0.769965f, 0.411787f, 0.570768f, 0.00840454f, 0.264794f, 0.606351f, 0.512022f, 0.306872f, 0.971752f, 0.817324f, 0.202587f, 0.242578f, 0.607889f, 0.616934f, 0.120978f, 0.74438f, 0.210367f, 0.067249f, 0.324255f, 0.241723f, 0.522241f, 0.926163f, 0.743968f, 0.461381f, 0.00381675f, 0.142315f, 0.562517f, 0.302568f, 0.312824f, 0.875651f, 0.424954f, 0.302876f, 0.69249f, 0.377015f, 0.56414f, 0.522892f, 0.348428f, 0.650261f, 0.658012f, 0.21629f, 0.418835f, 0.202507f, 0.925388f, 0.52659f, 0.402961f, 0.580876f, 0.183709f, 0.641399f, 0.825876f, 0.115844f, 0.509208f, 0.442995f, 0.643152f, 0.325416f, 0.745719f, 0.930997f, 0.429934f, 0.842501f, 0.315051f, 0.930339f, 0.421552f, 0.0406437f, 0.194395f, 0.979417f, 0.196005f, 0.459418f, 0.837538f, 0.892313f, 0.558789f, 0.259116f, 0.511931f, 0.988011f, 0.925103f, 0.629429f, 0.923004f, 0.225344f, 0.188839f, 0.135982f, 0.199065f, 0.836222f, 0.610291f, 0.188366f, 0.280982f, 0.412775f, 0.486768f, 0.521274f, 0.447508f, 0.674142f, 0.766363f, 0.84946f, 0.138023f, 0.894015f, 0.551769f, 0.459831f, 0.629775f, 0.967962f, 0.166656f, 0.11692f, 0.230943f, 0.914559f, 0.253356f, 0.257224f, 0.0365f, 0.242121f, 0.758501f, 0.775766f, 0.331163f, 0.107237f, 0.439971f, 0.521181f, 0.486016f, 0.689438f, 0.940671f, 0.343961f, 0.636371f, 0.857439f, 0.708101f, 0.0647187f, 0.463431f, 0.0744246f, 0.740449f, 0.183769f, 0.140942f, 0.166013f, 0.559759f, 0.550765f, 0.82458f, 0.553142f, 0.672139f, 0.429642f, 0.25702f, 0.678835f, 0.809112f, 0.689459f, 0.412666f, 0.133956f, 0.724851f, 0.407923f, 0.216539f, 0.576855f, 0.820825f, 0.349875f, 0.518718f, 0.271224f, 0.231833f, 0.757653f, 0.0895289f, 0.257958f, 0.912803f, 0.0139883f, 0.344305f, 0.100899f, 0.695395f, 0.961772f, 0.314913f, 0.532151f, 0.0283038f, 0.366278f, 0.0283777f, 0.272278f, 0.103625f, 0.964489f, 0.238313f, 0.269668f, 0.632904f, 0.29736f, 0.368477f, 0.106029f, 0.650432f, 0.364907f, 0.586893f, 0.242471f, 0.118621f, 0.604534f, 0.660508f, 0.439595f, 0.847147f, 0.347881f, 0.763572f, 0.368871f, 0.898759f, 0.318257f, 0.812952f, 0.670345f, 0.432463f, 0.0923226f, 0.217449f, 0.525968f, 0.133824f, 0.302355f, 0.644307f, 0.0201002f, 0.706517f, 0.036478f, 0.482702f, 0.157479f, 0.530659f, 0.162151f, 0.956726f, 0.909987f, 0.256089f, 0.543585f, 0.754504f, 0.4189f, 0.616675f, 0.382668f, 0.445062f, 0.550738f, 0.44239f, 0.440681f, 0.782925f, 0.673463f, 0.721832f, 0.608257f, 0.75857f, 0.828145f, 0.326748f, 0.456011f, 0.445707f, 0.891813f, 0.892112f, 0.843948f, 0.324528f, 0.337412f, 0.696943f, 0.0881224f, 0.513478f, 0.385583f, 0.241667f, 0.0386527f, 0.801009f, 0.740472f, 0.579326f, 0.0885084f, 0.249975f, 0.973349f, 0.716268f, 0.90273f, 0.384742f, 0.195964f, 0.277899f, 0.597481f, 0.480783f, 0.241156f, 0.663277f, 0.551371f, 0.578432f, 0.473187f, 0.938191f, 0.434135f, 0.133075f, 0.761996f, 0.389936f, 0.172719f, 0.611525f, 0.204329f, 0.263872f, 0.727619f, 0.100638f, 0.763588f, 0.237667f, 0.133217f, 0.104672f, 0.190663f, 0.0767215f, 0.201889f, 0.751326f, 0.997555f, 0.715038f, 0.713715f, 0.376388f, 0.987886f, 0.0617841f, 0.661246f, 0.652291f, 0.0923544f, 0.0308808f, 0.501141f, 0.736117f, 0.712257f, 0.656811f, 0.64766f, 0.984208f, 0.0851364f, 0.806212f, 0.498606f, 0.802776f, 0.734658f, 0.475529f, 0.16211f, 0.660125f, 0.800007f, 0.391612f, 0.597028f, 0.512106f, 0.245036f, 0.118873f, 0.615805f, 0.986868f, 0.054786f, 0.0454046f, 0.640423f, 0.736197f, 0.814998f, 0.194092f, 0.562153f, 0.317739f, 0.389143f, 0.78137f, 0.135982f, 0.997584f, 0.168038f, 0.68237f, 0.66544f, 0.935733f, 0.0448366f, 0.807947f, 0.548399f, 0.188544f, 0.596718f, 0.499102f, 0.725755f, 0.517412f, 0.415171f, 0.799607f, 0.91989f, 0.00617531f, 0.325688f, 0.884327f, 0.390274f, 0.365613f, 0.345935f, 0.964806f, 0.977122f, 0.896192f, 0.00709287f, 0.128217f, 0.553729f, 0.869597f, 0.426966f, 0.42264f, 0.899114f, 0.248113f, 0.327942f, 0.0200032f, 0.650956f, 0.852009f, 0.553268f, 0.282942f, 0.368654f, 0.255745f, 0.706839f, 0.122648f, 0.637827f, 0.742952f, 0.917863f, 0.981202f, 0.849317f, 0.451939f, 0.299898f, 0.604877f, 0.582485f, 0.406244f, 0.280508f, 0.378976f, 0.8962f, 0.155116f, 0.705341f, 0.853393f, 0.796647f, 0.835826f, 0.537941f, 0.356798f, 0.406637f, 0.220824f, 0.821627f, 0.213582f, 0.158235f, 0.418182f, 0.512412f, 0.867661f, 0.143291f, 0.328164f, 0.420325f, 0.952297f, 0.523191f, 0.778869f, 0.17798f, 0.148116f, 0.896001f, 0.838819f, 0.334348f, 0.680348f, 0.233557f, 0.358931f, 0.777211f, 0.455152f, 0.353307f, 0.427389f, 0.694479f, 0.454388f, 0.503183f, 0.459568f, 0.14898f, 0.751231f, 0.339429f, 0.976507f, 0.397279f, 0.365305f, 0.730641f, 0.314821f, 0.299901f, 0.0442625f, 0.530148f, 0.124517f, 0.36441f, 0.711645f, 0.150867f, 0.119311f, 0.803493f, 0.577025f, 0.154133f, 0.855526f, 0.167556f, 0.0726803f, 0.986192f, 0.711038f, 0.700279f, 0.101081f, 0.376973f, 0.339022f, 0.714614f, 0.845482f, 0.748709f, 0.590311f, 0.549802f, 0.88379f, 0.90665f, 0.599165f, 0.318602f, 0.450632f, 0.614344f, 0.599932f, 0.993133f, 0.488163f, 0.981342f, 0.660076f, 0.357435f, 0.838049f, 0.275362f, 0.527635f, 0.33595f, 0.725304f, 0.201363f, 0.415586f, 0.477069f, 0.183765f, 0.842161f, 0.71911f, 0.0501112f, 0.140767f, 0.0630424f, 0.727841f, 0.255242f, 0.215203f, 0.878294f, 0.80831f, 0.55843f, 0.849316f, 0.602507f, 0.429003f, 0.926976f, 0.496692f, 0.848701f, 0.387426f, 0.897372f, 0.985553f, 0.917961f, 0.620809f, 0.210813f, 0.713325f, 0.407355f, 0.608745f, 0.64716f, 0.0910119f, 0.663932f, 0.22989f, 0.39938f, 0.888425f, 0.249655f, 0.62257f, 0.16863f, 0.467721f, 0.254101f, 0.246962f, 0.483187f, 0.145163f, 0.762424f, 0.678772f, 0.581166f, 0.497457f, 0.807209f, 0.618063f, 0.928199f, 0.405722f, 0.0639033f, 0.304547f, 0.721251f, 0.0532577f, 0.312875f, 0.0208994f, 0.28299f, 0.245854f, 0.24187f, 0.195145f, 0.426554f, 0.590713f, 0.926482f, 0.884256f, 0.244717f, 0.640514f, 0.888139f, 0.869076f, 0.375902f, 0.611445f, 0.103326f, 0.871283f, 0.349523f, 0.0435f, 0.407227f, 0.47896f, 0.26037f, 0.117671f, 0.643218f, 0.735592f, 0.0501995f, 0.0539877f, 0.731132f, 0.647197f, 0.121368f, 0.755002f, 0.00942637f, 0.239114f, 0.305674f, 0.732567f, 0.10165f, 0.584198f, 0.81425f, 0.0772014f, 0.202098f, 0.143637f, 0.916334f, 0.370711f, 0.913067f, 0.401011f, 0.419061f, 0.202868f, 0.402323f, 0.715266f, 0.0427013f, 0.101992f, 0.757109f, 0.472456f, 0.655636f, 0.512524f, 0.149225f, 0.45658f, 0.662492f, 0.772303f, 0.439502f, 0.892644f, 0.557149f, 0.370436f, 0.685567f, 0.0729638f, 0.255043f, 0.255935f, 0.6723f, 0.61798f, 0.242036f, 0.791978f, 0.827763f, 0.0960702f, 0.891181f, 0.0336213f, 0.140845f, 0.223115f, 0.640207f, 0.334803f, 0.441755f, 0.475937f, 0.490464f, 0.304141f, 0.495447f, 0.721345f, 0.161497f, 0.760148f, 0.399392f, 0.341925f, 0.501023f, 0.683928f, 0.862598f, 0.291447f, 0.176142f, 0.746436f, 0.348092f, 0.924732f, 0.667015f, 0.148705f, 0.169056f, 0.232397f, 0.416639f, 0.830783f, 0.0892667f, 0.39345f, 0.911377f, 0.392667f, 0.48043f, 0.888646f, 0.740502f, 0.20495f, 0.691639f, 0.236369f, 0.837036f, 0.699674f, 0.704523f, 0.766803f, 0.112831f, 0.235875f, 0.237561f, 0.379964f, 0.72585f, 0.18868f, 0.559117f, 0.652368f, 0.0557769f, 0.059707f, 0.280615f, 0.970609f, 0.254852f, 0.425911f, 0.64626f, 0.532695f, 0.988222f, 0.236712f, 0.721678f, 0.936648f, 0.281807f, 0.977457f, 0.567822f, 0.537675f, 0.266395f, 0.964645f, 0.424837f, 0.396668f, 0.876003f, 0.177933f, 0.847145f, 0.220712f, 0.145708f, 0.970514f, 0.839388f, 0.339196f, 0.203088f, 0.0440583f, 0.0574227f, 0.822016f, 0.151891f, 0.00814889f, 0.143404f, 0.500437f, 0.884329f, 0.727449f, 0.84794f, 0.507022f, 0.0639527f, 0.926338f, 0.562486f, 0.584309f, 0.785913f, 0.476427f, 0.223219f, 0.906634f, 0.921264f, 0.663747f, 0.568191f, 0.0982033f, 0.300347f, 0.570192f, 0.160566f, 0.386881f, 0.693185f, 0.799988f, 0.314383f, 0.193663f, 0.0463569f, 0.86968f, 0.940207f, 0.610665f, 0.134416f, 0.0176809f, 0.297985f, 0.731683f, 0.302342f, 0.513029f, 0.998688f, 0.790487f, 0.0817636f, 0.123725f, 0.570267f, 0.435789f, 0.319516f, 0.0293822f, 0.805744f, 0.805451f, 0.279035f, 0.220198f, 0.106837f, 0.509024f, 0.641325f, 0.366067f, 0.552911f, 0.467587f, 0.832667f, 0.386892f, 0.0388026f, 0.81917f, 0.970622f, 0.860976f, 0.769095f, 0.512708f, 0.87943f, 0.694737f, 0.869173f, 0.705601f, 0.317065f, 0.104031f, 0.941113f, 0.037946f, 0.652652f, 0.450996f, 0.494027f, 0.509294f, 0.350889f, 0.296385f, 0.135312f, 0.945387f, 0.199201f, 0.500907f, 0.645031f, 0.564879f, 0.422849f, 0.830481f, 0.527812f, 0.587382f, 0.519882f, 0.958029f, 0.152792f, 0.216143f, 0.334917f, 0.80129f, 0.427097f, 0.747404f, 0.743926f, 0.689253f, 0.850445f, 0.445943f, 0.854219f, 0.0215406f, 0.153485f, 0.327062f, 0.123348f, 0.023221f, 0.410068f, 0.276339f, 0.544041f, 0.760288f, 0.56301f, 0.365529f, 0.236871f, 0.352406f, 0.0326252f, 0.0420352f, 0.254531f, 0.250577f, 0.395593f, 0.569709f, 0.79069f, 0.593037f, 0.877957f, 0.674513f, 0.673686f, 0.105089f, 0.885284f, 0.997107f, 0.1188f, 0.442964f, 0.284258f, 0.570847f, 0.347612f, 0.0810332f, 0.306508f, 0.0429041f, 0.556203f, 0.0786733f, 0.00551572f, 0.683756f, 0.129694f, 0.615503f, 0.877287f, 0.815159f, 0.22483f, 0.156588f, 0.0199058f, 0.742073f, 0.155857f, 0.417716f, 0.514476f, 0.482413f, 0.506929f, 0.841076f, 0.524109f, 0.196613f, 0.577095f, 0.964816f, 0.867181f, 0.599843f, 0.641219f, 0.310672f, 0.353755f, 0.0254282f, 0.55567f, 0.143545f, 0.730299f, 0.118997f, 0.0797341f, 0.430796f, 0.346511f, 0.781069f, 0.890301f, 0.174282f, 0.850414f, 0.416127f, 0.969729f, 0.382448f, 0.662187f, 0.424187f, 0.181018f, 0.701277f, 0.831499f, 0.569624f, 0.133955f, 0.775872f, 0.714001f, 0.0324761f, 0.51312f, 0.994919f, 0.0251474f, 0.128787f, 0.565303f, 0.973401f, 0.891416f, 0.444574f, 0.125922f, 0.449134f, 0.963217f, 0.647622f, 0.0650193f, 0.885061f, 0.00146885f, 0.580925f, 0.473301f, 0.610966f, 0.0525989f, 0.435777f, 0.0144924f, 0.0593824f, 0.0571613f, 0.974562f, 0.431726f, 0.915335f, 0.445885f, 0.375113f, 0.326323f, 0.983566f, 0.760216f, 0.234949f, 0.155379f, 0.252256f, 0.0425016f, 0.183463f, 0.0574654f, 0.343602f, 0.764554f, 0.0194104f, 0.680357f, 0.471967f, 0.482903f, 0.470674f, 0.925088f, 0.552035f, 0.865305f, 0.411616f, 0.654372f, 0.0357468f, 0.122863f, 0.940946f, 0.817483f, 0.499309f, 0.970009f, 0.498721f, 0.0211476f, 0.796745f, 0.225094f, 0.5829f, 0.455718f, 0.168262f, 0.0890872f, 0.0821087f, 0.190761f, 0.961716f, 0.169272f, 0.984354f, 0.627827f, 0.832658f, 0.915731f, 0.0453027f, 0.685062f, 0.796526f, 0.952043f, 0.553551f, 0.644408f, 0.443399f, 0.514475f, 0.132787f, 0.697997f, 0.871876f, 0.559355f, 0.114595f, 0.161937f, 0.614778f, 0.508195f, 0.905827f, 0.59435f, 0.249659f, 0.133382f, 0.274239f, 0.886799f, 0.699829f, 0.828538f, 0.649996f, 0.621314f, 0.687555f, 0.0425832f, 0.321515f, 0.582666f, 0.0872077f, 0.933264f, 0.100484f, 0.728426f, 0.592195f, 0.825828f, 0.951506f, 0.557535f, 0.67833f, 0.601763f, 0.263594f, 0.124196f, 0.492818f, 0.942032f, 0.831677f, 0.982675f, 0.163366f, 0.903401f, 0.589087f, 0.822523f, 0.946225f, 0.397165f, 0.17114f, 0.366518f, 0.378886f, 0.45086f, 0.221762f, 0.42617f, 0.22721f, 0.0202198f, 0.42354f, 0.815119f, 0.980494f, 0.226656f, 0.565361f, 0.72072f, 0.213007f, 0.850502f, 0.302439f, 0.0923598f, 0.318314f, 0.650614f, 0.177618f, 0.416822f, 0.0751303f, 0.624968f, 0.836197f, 0.337152f, 0.381186f, 0.544312f, 0.650402f, 0.270946f, 0.432987f, 0.0311186f, 0.737032f, 0.186079f, 0.611923f, 0.215221f, 0.23069f, 0.356222f, 0.317295f, 0.71885f, 0.733882f, 0.459614f, 0.155991f, 0.262909f, 0.0556322f, 0.538095f, 0.24667f, 0.0529361f, 0.653603f, 0.00330699f, 0.73626f, 0.113499f, 0.977045f, 0.433087f, 0.380206f, 0.507099f, 0.604064f, 0.210001f, 0.189443f, 0.606213f, 0.70066f, 0.421405f, 0.668883f, 0.050616f, 0.174679f, 0.216191f, 0.429013f, 0.534606f, 0.323534f, 0.374716f, 0.575614f, 0.66395f, 0.277489f, 0.593676f, 0.985517f, 0.901258f, 0.965618f, 0.860015f, 0.696336f, 0.0827566f, 0.592141f, 0.40765f, 0.150809f, 0.229297f, 0.134465f, 0.717002f, 0.493493f, 0.922087f, 0.530128f, 0.41164f, 0.0119914f, 0.827675f, 0.473716f, 0.312342f, 0.783842f, 0.0437826f, 0.655025f, 0.5513f, 0.357709f, 0.771197f, 0.681697f, 0.383887f, 0.395078f, 0.469344f, 0.868204f, 0.328039f, 0.503278f, 0.571864f, 0.0658645f, 0.647429f, 0.143174f, 0.904441f, 0.303786f, 0.563792f, 0.522408f, 0.683271f, 0.880676f, 0.0166372f, 0.276394f, 0.0119003f, 0.915804f, 0.0259784f, 0.523413f, 0.718726f, 0.486712f, 0.930253f, 0.371854f, 0.0817778f, 0.599925f, 0.517217f, 0.645896f, 0.68982f, 0.0358662f, 0.940957f, 0.356864f, 0.66361f, 0.971261f, 0.263755f, 0.880846f, 0.440412f, 0.59978f, 0.15946f, 0.0938822f, 0.227498f, 0.897745f, 0.55373f, 0.00787538f, 0.652575f, 0.302825f, 0.997172f, 0.164793f, 0.56798f, 0.315879f, 0.646925f, 0.0511829f, 0.0249178f, 0.0895109f, 0.986492f, 0.312031f, 0.462938f, 0.794628f, 0.068469f, 0.0678267f, 0.496929f, 0.14935f, 0.466244f, 0.981542f, 0.610265f, 0.756993f, 0.801997f, 0.223039f, 0.498384f, 0.320208f, 0.329293f, 0.0501127f, 0.989374f, 0.990738f, 0.961756f, 0.491521f, 0.565403f, 0.15118f, 0.107286f, 0.342324f, 0.0564451f, 0.196986f, 0.666347f, 0.898007f, 0.794515f, 0.78884f, 0.230405f, 0.20826f, 0.327789f, 0.640502f, 0.566369f, 0.791109f, 0.84558f, 0.803727f, 0.981758f, 0.680637f, 0.437065f, 0.221462f, 0.908891f, 0.55648f, 0.498584f, 0.772053f, 0.571191f, 0.893482f, 0.34016f, 0.151153f, 0.703093f, 0.960266f, 0.427182f, 0.76267f, 0.682852f, 0.900989f, 0.682592f, 0.557239f, 0.856957f, 0.304229f, 0.357378f, 0.977871f, 0.466437f, 0.66609f, 0.18864f, 0.754117f, 0.86586f, 0.744536f, 0.878788f, 0.306162f, 0.669649f, 0.598818f, 0.644598f, 0.177399f, 0.927432f, 0.578985f, 0.384865f, 0.387055f, 0.872127f, 0.820513f, 0.5167f, 0.0404335f, 0.251028f, 0.864299f, 0.854716f, 0.00788787f, 0.329696f, 0.277862f, 0.059871f, 0.964623f, 0.301036f, 0.856873f, 0.303553f, 0.246653f, 0.829699f, 0.245794f, 0.638091f, 0.196928f, 0.450233f, 0.265502f, 0.638673f, 0.820313f, 0.692505f, 0.26187f, 0.210528f, 0.83633f, 0.00635626f, 0.614559f, 0.104998f, 0.707099f, 0.956968f, 0.223384f, 0.846147f, 0.711675f, 0.472535f, 0.521083f, 0.544865f, 0.980233f, 0.27125f, 0.949522f, 0.778742f, 0.355291f, 0.826126f, 0.731626f, 0.179577f, 0.568426f, 0.542278f, 0.104136f, 0.289748f, 0.243144f, 0.629661f, 0.0759973f, 0.233128f, 0.192321f, 0.773358f, 0.794866f, 0.846724f, 0.490382f, 0.452209f, 0.452119f, 0.209811f, 0.771172f, 0.0137926f, 0.581328f, 0.29578f, 0.261849f, 0.458448f, 0.164983f, 0.146459f, 0.929715f, 0.645353f, 0.917462f, 0.907967f, 0.966155f, 0.824325f, 0.0940256f, 0.97221f, 0.383456f, 0.311891f, 0.533091f, 0.634659f, 0.742608f, 0.163834f, 0.114541f, 0.922736f, 0.109495f, 0.178339f, 0.487904f, 0.648954f, 0.684241f, 0.16625f, 0.445562f, 0.673903f, 0.0859252f, 0.126856f, 0.387942f, 0.169866f, 0.629438f, 0.506087f, 0.759372f, 0.902355f, 0.229161f, 0.996228f, 0.477016f, 0.938824f, 0.884247f, 0.168796f, 0.227945f, 0.6192f, 0.58942f, 0.373129f, 0.937472f, 0.811925f, 0.446544f, 0.239153f, 0.715383f, 0.106531f, 0.0316509f, 0.130184f, 0.587686f, 0.586905f, 0.473046f, 0.799028f, 0.569113f, 0.313323f, 0.529295f, 0.814431f, 0.524405f, 0.638863f, 0.420881f, 0.935429f, 0.712566f, 0.764537f, 0.229777f, 0.694943f, 0.584713f, 0.208398f, 0.333168f, 0.176028f, 0.466462f, 0.56498f, 0.413803f, 0.148963f, 0.559727f, 0.0554545f, 0.128145f, 0.242096f, 0.234113f, 0.042183f, 0.323769f, 0.442763f, 0.610392f, 0.101455f, 0.219017f, 0.325968f, 0.699561f, 0.931567f, 0.653069f, 0.275124f, 0.395588f, 0.226311f, 0.798339f, 0.108119f, 0.832235f, 0.527387f, 0.0410892f, 0.844508f, 0.186494f, 0.337552f, 0.627381f, 0.267372f, 0.991461f, 0.690213f, 0.695331f, 0.0153019f, 0.159658f, 0.649657f, 0.187354f, 0.924875f, 0.260669f, 0.474225f, 0.50578f, 0.613507f, 0.440053f, 0.903643f, 0.028104f, 0.701285f, 0.392058f, 0.830173f, 0.0663342f, 0.934034f, 0.356377f, 0.313686f, 0.0937587f, 0.866284f, 0.927016f, 0.23924f, 0.983261f, 0.384249f, 0.914655f, 0.756388f, 0.490309f, 0.792666f, 0.173106f, 0.652794f, 0.900278f, 0.166199f, 0.366032f, 0.993017f, 0.201876f, 0.838224f, 0.431544f, 0.186205f, 0.990122f, 0.227314f, 0.32672f, 0.843638f, 0.587606f, 0.994955f, 0.673793f, 0.939636f, 0.34401f, 0.0929562f, 0.483755f, 0.00794636f, 0.781863f, 0.67067f, 0.710165f, 0.252352f, 0.671768f, 0.67911f, 0.669496f, 0.362743f, 0.699145f, 0.394767f, 0.392629f, 0.683332f, 0.579736f, 0.502725f, 0.112535f, 0.649659f, 0.0463693f, 0.726066f, 0.798391f, 0.16099f, 0.535843f, 0.493985f, 0.212056f, 0.291682f, 0.934227f, 0.661133f, 0.814381f, 0.192099f, 0.572097f, 0.34012f, 0.226153f, 0.817926f, 0.123818f, 0.683802f, 0.640872f, 0.603235f, 0.849095f, 0.750859f, 0.42374f, 0.222286f, 0.82559f, 0.777879f, 0.34939f, 0.4112f, 0.826705f, 0.337027f, 0.799973f, 0.000958123f, 0.0875518f, 0.755571f, 0.202961f, 0.702712f, 0.501555f, 0.818176f, 0.00330532f, 0.818856f, 0.71221f, 0.000500498f, 0.153684f, 0.237695f, 0.417713f, 0.8748f, 0.893179f, 0.982045f, 0.429539f, 0.741997f, 0.292911f, 0.0634303f, 0.312663f, 0.208602f, 0.954402f, 0.352523f, 0.044081f, 0.550157f, 0.214102f, 0.847674f, 0.289649f, 0.513429f, 0.450314f, 0.819657f, 0.212665f, 0.853312f, 0.991389f, 0.312814f, 0.200088f, 0.603983f, 0.413039f, 0.00539337f, 0.0391682f, 0.0985879f, 0.837159f, 0.102358f, 0.363972f, 0.553923f, 0.376628f, 0.80532f, 0.491601f, 0.184874f, 0.11025f, 0.67703f, 0.593797f, 0.195557f, 0.145756f, 0.679163f, 0.0324885f, 0.265745f, 0.33161f, 0.873777f, 0.634638f, 0.908656f, 0.107826f, 0.502514f, 0.279305f, 0.163612f, 0.807596f, 0.939629f, 0.699609f, 0.484153f, 0.700102f, 0.117146f, 0.215443f, 0.483145f, 0.13176f, 0.134584f, 0.913199f, 0.599423f, 0.272955f, 0.192264f, 0.00365402f, 0.25263f, 0.192026f, 0.0405651f, 0.485668f, 0.407445f, 0.728536f, 0.924742f, 0.673144f, 0.837039f, 0.185345f, 0.971447f, 0.714345f, 0.526862f, 0.589391f, 0.287087f, 0.175721f, 0.658951f, 0.810848f, 0.839415f, 0.873788f, 0.794288f, 0.66059f, 0.0965063f, 0.167245f, 0.24648f, 0.0280972f, 0.958082f, 0.359086f, 0.783201f, 0.92109f, 0.0647022f, 0.522174f, 0.227242f, 0.302585f, 0.956363f, 0.239163f, 0.0169744f, 0.706166f, 0.552493f, 0.251071f, 0.281932f, 0.74269f, 0.0509778f, 0.707718f, 0.908914f, 0.584765f, 0.404017f, 0.0703691f, 0.783477f, 0.588686f, 0.490385f, 0.480844f, 0.601782f, 0.873125f, 0.278685f, 0.894893f, 0.436574f, 0.933266f, 0.0404084f, 0.799115f, 0.410105f, 0.0453886f, 0.787509f, 0.71924f, 0.79232f, 0.75664f, 0.910624f, 0.496162f, 0.160523f, 0.28118f, 0.715159f, 0.737146f, 0.777853f, 0.0303673f, 0.00722299f, 0.635187f, 0.0576644f, 0.770801f, 0.110177f, 0.00520291f, 0.718079f, 0.991158f, 0.80526f, 0.505923f, 0.0243759f, 0.314903f, 0.0646168f, 0.391038f, 0.832974f, 0.988515f, 0.819772f, 0.977661f, 0.600815f, 0.136723f, 0.360897f, 0.627892f, 0.540068f, 0.484779f, 0.488839f, 0.203719f, 0.0488199f, 0.788927f, 0.501189f, 0.170689f, 0.0660145f, 0.355081f, 0.428183f, 0.935023f, 0.728545f, 0.820263f, 0.747069f, 0.0244261f, 0.736778f, 0.0585081f, 0.774807f, 0.628749f, 0.282975f, 0.646311f, 0.70732f, 0.833819f, 0.769264f, 0.0292635f, 0.385005f, 0.835433f, 0.584842f, 0.269172f, 0.453312f, 0.811241f, 0.146775f, 0.514722f, 0.626373f, 0.984302f, 0.0626056f, 0.71144f, 0.382443f, 0.672491f, 0.231363f, 0.8256f, 0.616714f, 0.123098f, 0.543026f, 0.295349f, 0.490021f, 0.162363f, 0.989856f, 0.20914f, 0.554875f, 0.0999906f, 0.910785f, 0.661969f, 0.0957499f, 0.88802f, 0.604018f, 0.538319f, 0.957755f, 0.509128f, 0.391562f, 0.0206262f, 0.907441f, 0.457181f, 0.955013f, 0.387873f, 0.0210598f, 0.367796f, 0.0859406f, 0.22748f, 0.03433f, 0.541917f, 0.0211158f, 0.409897f, 0.893971f, 0.636963f, 0.139376f, 0.716417f, 0.655806f, 0.266559f, 0.915389f, 0.465934f, 0.850601f, 0.679295f, 0.325744f, 0.513572f, 0.0306958f, 0.0691112f, 0.0871462f, 0.451225f, 0.718832f, 0.371649f, 0.443805f, 0.502832f, 0.406052f, 0.197183f, 0.994581f, 0.914941f, 0.180228f, 0.239949f, 0.593192f, 0.552682f, 0.502817f, 0.87574f, 0.284447f, 0.729085f, 0.808843f, 0.0950477f, 0.0729399f, 0.667365f, 0.985147f, 0.178874f, 0.431809f, 0.549626f, 0.491808f, 0.685666f, 0.851442f, 0.526548f, 0.930647f, 0.998229f, 0.536009f, 0.0224966f, 0.00988495f, 0.629436f, 0.976495f, 0.56915f, 0.461985f, 0.739192f, 0.283142f, 0.590759f, 0.0472357f, 0.915142f, 0.955991f, 0.394271f, 0.88164f, 0.469591f, 0.402637f, 0.275159f, 0.553982f, 0.994032f, 0.437168f, 0.556088f, 0.11567f, 0.029193f, 0.211848f, 0.893864f, 0.2361f, 0.051841f, 0.747276f, 0.629714f, 0.309363f, 0.311942f, 0.125599f, 0.618932f, 0.129755f, 0.712699f, 0.00356724f, 0.106508f, 0.0318713f, 0.293758f, 0.66347f, 0.0143746f, 0.591908f, 0.0909588f, 0.475048f, 0.580249f, 0.0754684f, 0.346492f, 0.562383f, 0.676824f, 0.444289f, 0.182256f, 0.89727f, 0.586247f, 0.216869f, 0.243678f, 0.592218f, 0.845122f, 0.101391f, 0.160053f, 0.719847f, 0.237375f, 0.377315f, 0.537735f, 0.524195f, 0.130184f, 0.588906f, 0.0480896f, 0.727814f, 0.403256f, 0.831867f, 0.293048f, 0.953633f, 0.230206f, 0.085901f, 0.5664f, 0.977159f, 0.401211f, 0.966178f, 0.445442f, 0.528728f, 0.372189f, 0.207416f, 0.441281f, 0.205967f, 0.999735f, 0.653867f, 0.316896f, 0.0416405f, 0.0594561f, 0.469194f, 0.453907f, 0.273697f, 0.648805f, 0.613758f, 0.758674f, 0.617143f, 0.00235473f, 0.159211f, 0.765624f, 0.919078f, 0.906094f, 0.117163f, 0.706089f, 0.751481f, 0.427165f, 0.573756f, 0.111476f, 0.953272f, 0.665605f, 0.695696f, 0.976775f, 0.255332f, 0.637538f, 0.0171614f, 0.623989f, 0.0639173f, 0.555162f, 0.589097f, 0.572766f, 0.431985f, 0.948581f, 0.659237f, 0.81728f, 0.335381f, 0.419219f, 0.536905f, 0.660527f, 0.695107f, 0.703172f, 0.204621f, 0.55642f, 0.922037f, 0.913286f, 0.774999f, 0.946345f, 0.713038f, 0.33237f, 0.665116f, 0.210062f, 0.483028f, 0.700388f, 0.881672f, 0.89731f, 0.838172f, 0.0173835f, 0.475631f, 0.987371f, 0.821474f, 0.0554212f, 0.55502f, 0.357483f, 0.316623f, 0.300882f, 0.916118f, 0.134941f, 0.291192f, 0.8647f, 0.704981f, 0.647032f, 0.642376f, 0.572168f, 0.764463f, 0.430775f, 0.759481f, 0.195913f, 0.725846f, 0.66451f, 0.414738f, 0.313332f, 0.598017f, 0.650904f, 0.52075f, 0.381366f, 0.776094f, 0.26672f, 0.40296f, 0.621293f, 0.920891f, 0.634812f, 0.669575f, 0.174638f, 0.504139f, 0.601727f, 0.184741f, 0.98621f, 0.963394f, 0.0736871f, 0.497811f, 0.568394f, 0.990391f, 0.990926f, 0.255887f, 0.681178f, 0.963114f, 0.672425f, 0.293293f, 0.90469f, 0.658146f, 0.883987f, 0.938543f, 0.357932f, 0.350685f, 0.634712f, 0.803173f, 0.933822f, 0.561869f, 0.078421f, 0.03377f, 0.699357f, 0.268766f, 0.569036f, 0.100409f, 0.751346f, 0.863191f, 0.812587f, 0.939063f, 0.935909f, 0.356535f, 0.402327f, 0.448619f, 0.0798998f, 0.0874934f, 0.850393f, 0.8261f, 0.845429f, 0.0608912f, 0.460046f, 0.915542f, 0.794026f, 0.2375f, 0.176328f, 0.233985f, 0.0459265f, 0.0925049f, 0.469532f, 0.104287f, 0.0382714f, 0.584239f, 0.275631f, 0.931689f, 0.66653f, 0.445012f, 0.506552f, 0.674013f, 0.442549f, 0.579111f, 0.727182f, 0.857951f, 0.433216f, 0.667478f, 0.888192f, 0.253487f, 0.907697f, 0.063528f, 0.627395f, 0.0530657f, 0.252441f, 0.306642f, 0.378893f, 0.514284f, 0.113086f, 0.641139f, 0.0640446f, 0.076686f, 0.490099f, 0.140404f, 0.929355f, 0.493549f, 0.0752527f, 0.559863f, 0.625959f, 0.347811f, 0.0744179f, 0.563211f, 0.573803f, 0.0636248f, 0.812252f, 0.267392f, 0.100076f, 0.439025f, 0.302034f, 0.344197f, 0.982206f, 0.650226f, 0.654336f, 0.393512f, 0.220125f, 0.803531f, 0.269609f, 0.426412f, 0.965719f, 0.230667f, 0.889539f, 0.532781f, 0.717546f, 0.227704f, 0.859822f, 0.765987f, 0.734943f, 0.0360507f, 0.54699f, 0.735232f, 0.865057f, 0.859511f, 0.376633f, 0.882564f, 0.579947f, 0.113221f, 0.83282f, 0.541157f, 0.847104f, 0.993415f, 0.659034f, 0.622417f, 0.17779f, 0.413297f, 0.301806f, 0.358908f, 0.725212f, 0.865409f, 0.693159f, 0.532789f, 0.648088f, 0.83576f, 0.574132f, 0.83344f, 0.608122f, 0.0206343f, 0.421513f, 0.686792f, 0.518635f, 0.614134f, 0.860307f, 0.779351f, 0.426095f, 0.970546f, 0.810036f, 0.692905f, 0.666609f, 0.612682f, 0.130808f, 0.502312f, 0.023076f, 0.688183f, 0.775546f, 0.351484f, 0.619863f, 0.725958f, 0.778766f, 0.791133f, 0.85453f, 0.0677412f, 0.755906f, 0.72252f, 0.577958f, 0.140604f, 0.567497f, 0.407786f, 0.769519f, 0.86806f, 0.191907f, 0.233901f, 0.06372f, 0.154035f, 0.256789f, 0.469125f, 0.798345f, 0.622035f, 0.386632f, 0.0779187f, 0.351657f, 0.652488f, 0.778141f, 0.372804f, 0.857006f, 0.330288f, 0.709349f, 0.690749f, 0.28821f, 0.54631f, 0.165476f, 0.577188f, 0.156165f, 0.392205f, 0.925488f, 0.768479f, 0.0520163f, 0.104604f, 0.0372363f, 0.531063f, 0.266405f, 0.72102f, 0.566195f, 0.266847f, 0.576198f, 0.423682f, 0.478424f, 0.248557f, 0.368749f, 0.965115f, 0.844862f, 0.81823f, 0.504955f, 0.804212f, 0.567169f, 0.00756038f, 0.608908f, 0.930227f, 0.314526f, 0.62899f, 0.58888f, 0.360393f, 0.98636f, 0.635971f, 0.274053f, 0.942382f, 0.854473f, 0.963533f, 0.692537f, 0.799372f, 0.481354f, 0.518208f, 0.695557f, 0.582804f, 0.541781f, 0.281654f, 0.643284f, 0.476456f, 0.0208474f, 0.380957f, 0.0174194f, 0.807173f, 0.505201f, 0.188807f, 0.73891f, 0.603733f, 0.817934f, 0.154823f, 0.418004f, 0.089249f, 0.940777f, 0.862959f, 0.226419f, 0.678874f, 0.309632f, 0.753683f, 0.825072f, 0.401445f, 0.277864f, 0.992829f, 0.135828f, 0.118742f, 0.875836f, 0.909088f, 0.769799f, 0.548372f, 0.111686f, 0.887402f, 0.411827f, 0.37357f, 0.37249f, 0.535817f, 0.542136f, 0.306913f, 0.00612676f, 0.244442f, 0.916463f, 0.723786f, 0.469681f, 0.366887f, 0.218949f, 0.993562f, 0.10128f, 0.855725f, 0.955623f, 0.744774f, 0.159688f, 0.351155f, 0.695517f, 0.129436f, 0.55007f, 0.445845f, 0.732346f, 0.30669f, 0.418204f, 0.622782f, 0.943753f, 0.80241f, 0.234182f, 0.853018f, 0.95815f, 0.0599405f, 0.540154f, 0.011261f, 0.670714f, 0.720759f, 0.384776f, 0.406652f, 0.776178f, 0.663601f, 0.629138f, 0.796056f, 0.0846683f, 0.560962f, 0.104969f, 0.286167f, 0.379489f, 0.135788f, 0.980782f, 0.217574f, 0.361004f, 0.601871f, 0.364071f, 0.662785f, 0.283351f, 0.625509f, 0.907533f, 0.230547f, 0.105341f, 0.187095f, 0.659358f, 0.542944f, 0.914125f, 0.593741f, 0.00460789f, 0.536677f, 0.617605f, 0.674914f, 0.169949f, 0.0447656f, 0.706795f, 0.831657f, 0.959785f, 0.841278f, 0.188848f, 0.568619f, 0.140764f, 0.148216f, 0.868931f, 0.516512f, 0.738313f, 0.693395f, 0.594614f, 0.287306f, 0.938827f, 0.708445f, 0.854706f, 0.752348f, 0.799616f, 0.0257541f, 0.383012f, 0.869477f, 0.0234215f, 0.476798f, 0.586688f, 0.904846f, 0.923289f, 0.263486f, 0.459633f, 0.978429f, 0.688351f, 0.0709777f, 0.841215f, 0.735626f, 0.178871f, 0.315524f, 0.250976f, 0.489735f, 0.158802f, 0.674123f, 0.550604f, 0.0189668f, 0.564541f, 0.797432f, 0.18335f, 0.905517f, 0.45373f, 0.581615f, 0.87558f, 0.972685f, 0.267873f, 0.393001f, 0.119467f, 0.0286767f, 0.183137f, 0.582576f, 0.705721f, 0.375103f, 0.950031f, 0.814518f, 0.466996f, 0.890245f, 0.211236f, 0.0253737f, 0.253186f, 0.382147f, 0.565145f, 0.531588f, 0.491809f, 0.481327f, 0.0730178f, 0.0979293f, 0.737724f, 0.538231f, 0.268321f, 0.383432f, 0.078791f, 0.515034f, 0.244902f, 0.676438f, 0.34142f, 0.981412f, 0.0728127f, 0.950487f, 0.818435f, 0.529703f, 0.246925f, 0.554012f, 0.0694732f, 0.834821f, 0.824937f, 0.296421f, 0.747051f, 0.690936f, 0.306165f, 0.948284f, 0.0515413f, 0.171419f, 0.201856f, 0.0509489f, 0.0628976f, 0.614766f, 0.0308054f, 0.49657f, 0.686851f, 0.653665f, 0.186123f, 0.805688f, 0.33959f, 0.445287f, 0.142232f, 0.371605f, 0.681636f, 0.441053f, 0.904414f, 0.410428f, 0.47256f, 0.162206f, 0.142547f, 0.891477f, 0.126649f, 0.00963837f, 0.902017f, 0.840981f, 0.958291f, 0.850666f, 0.246335f, 0.650503f, 0.650334f, 0.698674f, 0.326043f, 0.267565f, 0.141239f, 0.43157f, 0.612756f, 0.943698f, 0.803956f, 0.194803f, 0.895302f, 0.266704f, 0.112431f, 0.203755f, 0.051201f, 0.379072f, 0.0170236f, 0.596579f, 0.328785f, 0.768887f, 0.972819f, 0.974327f, 0.188665f, 0.008891f, 0.860699f, 0.422386f, 0.531748f, 0.027172f, 0.213328f, 0.325634f, 0.994365f, 0.199092f, 0.678904f, 0.623296f, 0.497055f, 0.0492969f, 0.326377f, 0.156372f, 0.648821f, 0.498767f, 0.767369f, 0.951213f, 0.557371f, 0.448982f, 0.562124f, 0.352221f, 0.471582f, 0.186278f, 0.491317f, 0.41716f, 0.677821f, 0.385444f, 0.63037f, 0.296433f, 0.0899407f, 0.0487928f, 0.578887f, 0.815803f, 0.689649f, 0.261851f, 0.252038f, 0.37926f, 0.667175f, 0.732286f, 0.00749894f, 0.012018f, 0.728976f, 0.340358f, 0.726787f, 0.0126228f, 0.0844123f, 0.300078f, 0.619279f, 0.900787f, 0.800688f, 0.558176f, 0.937416f, 0.732996f, 0.743198f, 0.447094f, 0.866121f, 0.477469f, 0.467666f, 0.92351f, 0.572643f, 0.773355f, 0.858272f, 0.913547f, 0.00876636f, 0.497344f, 0.937264f, 0.960613f, 0.873036f, 0.308764f, 0.170865f, 0.865535f, 0.495567f, 0.134872f, 0.778007f, 0.499843f, 0.0313207f, 0.456921f, 0.323303f, 0.504609f, 0.352537f, 0.198514f, 0.620026f, 0.0658834f, 0.207019f, 0.685177f, 0.100808f, 0.457405f, 0.0977736f, 0.585276f, 0.641454f, 0.104167f, 0.635023f, 0.725897f, 0.51809f, 0.786746f, 0.448747f, 0.376423f, 0.673121f, 0.0684879f, 0.923983f, 0.0449011f, 0.537136f, 0.114841f, 0.549288f, 0.750526f, 0.11157f, 0.448892f, 0.953918f, 0.205836f, 0.987109f, 0.390195f, 0.402934f, 0.29101f, 0.145598f, 0.0904446f, 0.508479f, 0.899575f, 0.335628f, 0.205328f, 0.612887f, 0.838188f, 0.724113f, 0.418279f, 0.355856f, 0.601943f, 0.626041f, 0.341544f, 0.42137f, 0.720236f, 0.026311f, 0.768529f, 0.562989f, 0.80661f, 0.240361f, 0.904136f, 0.657071f, 0.800744f, 0.198787f, 0.472487f, 0.530819f, 0.120024f, 0.87302f, 0.186508f, 0.389849f, 0.0884889f, 0.468343f, 0.270116f, 0.0577192f, 0.362591f, 0.154844f, 0.873442f, 0.861372f, 0.684509f, 0.887037f, 0.560456f, 0.481647f, 0.946096f, 0.327903f, 0.625961f, 0.221942f, 0.643654f, 0.952271f, 0.355433f, 0.621739f, 0.667939f, 0.951968f, 0.740857f, 0.364482f, 0.387577f, 0.316803f, 0.832348f, 0.396577f, 0.976845f, 0.562211f, 0.945433f, 0.182286f, 0.187513f, 0.43601f, 0.178474f, 0.286544f, 0.316904f, 0.963928f, 0.790494f, 0.509314f, 0.372089f, 0.781143f, 0.58786f, 0.717809f, 0.870357f, 0.560268f, 0.792536f, 0.0338459f, 0.0956249f, 0.769001f, 0.169085f, 0.906055f, 0.867625f, 0.726361f, 0.926679f, 0.751265f, 0.720305f, 0.0716507f, 0.425972f, 0.0601926f, 0.0424241f, 0.0579652f, 0.0815104f, 0.454462f, 0.697332f, 0.69622f, 0.382199f, 0.382578f, 0.510138f, 0.295342f, 0.657292f, 0.558957f, 0.279807f, 0.70899f, 0.894805f, 0.355121f, 0.0950023f, 0.917664f, 0.112727f, 0.305631f, 0.495151f, 0.807186f, 0.984091f, 0.298012f, 0.364434f, 0.230468f, 0.312518f, 0.491191f, 0.351394f, 0.551979f, 0.394254f, 0.0731474f, 0.395123f, 0.571293f, 0.330406f, 0.0159654f, 0.378904f, 0.130546f, 0.521402f, 0.796156f, 0.640325f, 0.300186f, 0.764442f, 0.911224f, 0.676175f, 0.913732f, 0.509067f, 0.0551023f, 0.937267f, 0.174653f, 0.435427f, 0.65437f, 0.135888f, 0.989697f, 0.787868f, 0.821589f, 0.488962f, 0.0703476f, 0.611484f, 0.711801f, 0.481169f, 0.319423f, 0.734781f, 0.505285f, 0.424958f, 0.956943f, 0.40072f, 0.576567f, 0.0459604f, 0.0758141f, 0.892585f, 0.495602f, 0.505073f, 0.601984f, 0.0296972f, 0.801903f, 0.424139f, 0.617366f, 0.954686f, 0.191347f, 0.768388f, 0.36253f, 0.65362f, 0.765267f, 0.979896f, 0.500005f, 0.232125f, 0.541841f, 0.362593f, 0.154752f, 0.327212f, 0.84854f, 0.170198f, 0.92936f, 0.0235973f, 0.84099f, 0.786756f, 0.666204f, 0.8138f, 0.384289f, 0.642254f, 0.141085f, 0.223595f, 0.309771f, 0.0179205f, 0.607475f, 0.355032f, 0.209158f, 0.242304f, 0.0504485f, 0.756668f, 0.713193f, 0.70217f, 0.497415f, 0.0634329f, 0.120869f, 0.880211f, 0.119807f, 0.878749f, 0.685392f, 0.650712f, 0.0388514f, 0.324076f, 0.790914f, 0.895817f, 0.354683f, 0.058055f, 0.555214f, 0.786784f, 0.978338f, 0.95984f, 0.201696f, 0.480538f, 0.697051f, 0.403472f, 0.941783f, 0.347462f, 0.897183f, 0.937269f, 0.446034f, 0.203126f, 0.0735603f, 0.842093f, 0.270609f, 0.532021f, 0.110406f, 0.439537f, 0.986692f, 0.762553f, 0.0800624f, 0.162521f, 0.0787149f, 0.688771f, 0.882489f, 0.687954f, 0.418764f, 0.289934f, 0.727295f, 0.0213109f, 0.110143f, 0.207256f, 0.601022f, 0.374144f, 0.382161f, 0.321523f, 0.427436f, 0.15197f, 0.298821f, 0.650907f, 0.583441f, 0.210527f, 0.53983f, 0.657975f, 0.440817f, 0.410976f, 0.428073f, 0.0240063f, 0.135289f, 0.984294f, 0.859798f, 0.701082f, 0.285167f, 0.481218f, 0.468787f, 0.557557f, 0.419577f, 0.423646f, 0.406614f, 0.794404f, 0.630884f, 0.418622f, 0.21816f, 0.744289f, 0.0166752f, 0.633789f, 0.394236f, 0.880665f, 0.378953f, 0.153176f, 0.482406f, 0.171829f, 0.156358f, 0.387583f, 0.0319509f, 0.212256f, 0.904435f, 0.907839f, 0.831724f, 0.480049f, 0.451513f, 0.628216f, 0.46601f, 0.401016f, 0.580009f, 0.544344f, 0.925404f, 0.451591f, 0.350011f, 0.0560693f, 0.551604f, 0.153178f, 0.670187f, 0.672673f, 0.26853f, 0.508881f, 0.583921f, 0.353768f, 0.433873f, 0.694867f, 0.625415f, 0.92178f, 0.348364f, 0.15958f, 0.512416f, 0.078001f, 0.602934f, 0.494176f, 0.968622f, 0.69839f, 0.196948f, 0.912552f, 0.770323f, 0.556439f, 0.951618f, 0.102979f, 0.12159f, 0.927202f, 0.800828f, 0.866306f, 0.657199f, 0.555737f, 0.149462f, 0.680874f, 0.103636f, 0.169904f, 0.0268314f, 0.414021f, 0.436971f, 0.227315f, 0.16451f, 0.605249f, 0.88505f, 0.540535f, 0.263318f, 0.377439f, 0.180303f, 0.295118f, 0.518736f, 0.711831f, 0.744802f, 0.202304f, 0.068588f, 0.981359f, 0.49585f, 0.233852f, 0.769629f, 0.633789f, 0.859414f, 0.510856f, 0.571438f, 0.788673f, 0.339717f, 0.820124f, 0.584874f, 0.535427f, 0.489859f, 0.789376f, 0.00524708f, 0.162477f, 0.630305f, 0.0310249f, 0.958694f, 0.403822f, 0.580953f, 0.652561f, 0.861327f, 0.206028f, 0.995499f, 0.471084f, 0.850632f, 0.529751f, 0.167537f, 0.212884f, 0.8901f, 0.472001f, 0.922586f, 0.654296f, 0.637635f, 0.26019f, 0.824502f, 0.720869f, 0.167189f, 0.385145f, 0.521459f, 0.824526f, 0.941269f, 0.783275f, 0.940337f, 0.833575f, 0.485754f, 0.497875f, 0.522086f, 0.396419f, 0.506003f, 0.223568f, 0.378713f, 0.524771f, 0.627774f, 0.379961f, 0.0113596f, 0.90562f, 0.262278f, 0.440791f, 0.122275f, 0.277647f, 0.728027f, 0.777318f, 0.142085f, 0.735699f, 0.200232f, 0.216511f, 0.342314f, 0.77208f, 0.969821f, 0.24888f, 0.828207f, 0.651368f, 0.13482f, 0.479871f, 0.430622f, 0.974602f, 0.967598f, 0.511278f, 0.478787f, 0.953568f, 0.228034f, 0.938029f, 0.574486f, 0.576503f, 0.367655f, 0.688902f, 0.240765f, 0.755151f, 0.511214f, 0.413689f, 0.874389f, 0.766239f, 0.733195f, 0.528584f, 0.809898f, 0.385999f, 0.434193f, 0.39561f, 0.810905f, 0.928129f, 0.415032f, 0.028492f, 0.428988f, 0.1721f, 0.850928f, 0.464735f, 0.582068f, 0.735104f, 0.822143f, 0.377147f, 0.190491f, 0.669161f, 0.80899f, 0.64389f, 0.0351567f, 0.354281f, 0.581205f, 0.791919f, 0.502238f, 0.952955f, 0.40031f, 0.535811f, 0.930929f, 0.512594f, 0.084743f, 0.453881f, 0.425436f, 0.286444f, 0.977658f, 0.684313f, 0.160129f, 0.182474f, 0.235804f, 0.828497f, 0.836865f, 0.660182f, 0.818085f, 0.861015f, 0.500214f, 0.0116115f, 0.208374f, 0.0988077f, 0.357043f, 0.538201f, 0.806053f, 0.652063f, 0.806284f, 0.896305f, 0.774853f, 0.328033f, 0.84799f, 0.0949448f, 0.450385f, 0.2535f, 0.347378f, 0.648877f, 0.573409f, 0.727559f, 0.0924425f, 0.701239f, 0.138866f, 0.106181f, 0.4891f, 0.616478f, 0.572372f, 0.742498f, 0.844443f, 0.0704961f, 0.74343f, 0.6042f, 0.030248f, 0.708378f, 0.690297f, 0.247331f, 0.206112f, 0.381753f, 0.135333f, 0.805018f, 0.0659857f, 0.36753f, 0.789684f, 0.19796f, 0.553318f, 0.440364f, 0.51726f, 0.0164073f, 0.957443f, 0.573192f, 0.801326f, 0.60658f, 0.105812f, 0.523577f, 0.557767f, 0.667081f, 0.0984848f, 0.699305f, 0.0611913f, 0.482328f, 0.860499f, 0.132132f, 0.951346f, 0.113375f, 0.308959f, 0.368957f, 0.43369f, 0.349244f, 0.867766f, 0.700065f, 0.89433f, 0.441894f, 0.938852f, 0.693054f, 0.289863f, 0.924269f, 0.385195f, 0.239487f, 0.153881f, 0.735591f, 0.526503f, 0.180008f, 0.393228f, 0.972246f, 0.980854f, 0.381101f, 0.739409f, 0.189131f, 0.918227f, 0.112858f, 0.313625f, 0.429922f, 0.851084f, 0.93912f, 0.200137f, 0.0985903f, 0.595777f, 0.591349f, 0.207404f, 0.459318f, 0.647488f, 0.419908f, 0.820103f, 0.105258f, 0.795565f, 0.225743f, 0.816474f, 0.621592f, 0.275532f, 0.0624432f, 0.207009f, 0.677055f, 0.124676f, 0.769083f, 0.881069f, 0.776066f, 0.83893f, 0.664457f, 0.298255f, 0.714483f, 0.223298f, 0.907889f, 0.883852f, 0.36537f, 0.0423008f, 0.321646f, 0.386671f, 0.89863f, 0.354835f, 0.117708f, 0.784395f, 0.141213f, 0.489182f, 0.927361f, 0.662235f, 0.724094f, 0.947106f, 0.461434f, 0.379633f, 0.675269f, 0.895639f, 0.443398f, 0.872905f, 0.7078f, 0.602856f, 0.615553f, 0.828447f, 0.983407f, 0.867956f, 0.960234f, 0.854225f, 0.95768f, 0.846006f, 0.993106f, 0.652087f, 0.80718f, 0.387303f, 0.568787f, 0.960863f, 0.527272f, 0.977914f, 0.558636f, 0.517497f, 0.289314f, 0.400167f, 0.955215f, 0.967584f, 0.890482f, 0.761053f, 0.644388f, 0.0896281f, 0.946905f, 0.44007f, 0.401923f, 0.632901f, 0.875976f, 0.82693f, 0.747322f, 0.94296f, 0.584106f, 0.734379f, 0.859386f, 0.348528f, 0.955978f, 0.974558f, 0.858937f, 0.590861f, 0.0371461f, 0.322847f, 0.21362f, 0.0409147f, 0.159066f, 0.63671f, 0.979201f, 0.587865f, 0.901966f, 0.559122f, 0.230168f, 0.803065f, 0.364141f, 0.255879f, 0.538784f, 0.923088f, 0.368559f, 0.161817f, 0.699224f, 0.936226f, 0.886078f, 0.404526f, 0.994803f, 0.359979f, 0.690947f, 0.387693f, 0.212088f, 0.0593306f, 0.0811423f, 0.00384553f, 0.130928f, 0.949701f, 0.983692f, 0.959441f, 0.232713f, 0.422024f, 0.0384694f, 0.202225f, 0.725466f, 0.0943787f, 0.927419f, 0.366823f, 0.0977647f, 0.949396f, 0.067692f, 0.694956f, 0.665991f, 0.481763f, 0.387406f, 0.331822f, 0.457642f, 0.795502f, 0.604977f, 0.510923f, 0.425644f, 0.623727f, 0.529629f, 0.547543f, 0.331643f, 0.818541f, 0.441864f, 0.271722f, 0.653498f, 0.149501f, 0.639891f, 0.057536f, 0.276263f, 0.387051f, 0.109804f, 0.994598f, 0.546664f, 0.931055f, 0.516266f, 0.647591f, 0.59613f, 0.828497f, 0.86839f, 0.953553f, 0.991558f, 0.486381f, 0.681546f, 0.547796f, 0.34338f, 0.85507f, 0.272332f, 0.184842f, 0.375237f, 0.658012f, 0.268606f, 0.299662f, 0.54102f, 0.0892637f, 0.681033f, 0.563877f, 0.604934f, 0.272235f, 0.225994f, 0.396576f, 0.50135f, 0.213292f, 0.151713f, 0.169749f, 0.182846f, 0.0746022f, 0.0525105f, 0.512076f, 0.350676f, 0.386923f, 0.0716417f, 0.706776f, 0.531437f, 0.733413f, 0.601435f, 0.543231f, 0.193002f, 0.839681f, 0.363113f, 0.138547f, 0.525965f, 0.0105383f, 0.415747f, 0.562991f, 0.0844708f, 0.723957f, 0.0968893f, 0.142935f, 0.146374f, 0.638781f, 0.103927f, 0.537742f, 0.400325f, 0.427032f, 0.435209f, 0.918748f, 0.638748f, 0.554367f, 0.661079f, 0.66048f, 0.963742f, 0.920779f, 0.284612f, 0.0524512f, 0.962995f, 0.298949f, 0.659297f, 0.783819f, 0.138867f, 0.536478f, 0.680169f, 0.449397f, 0.200154f, 0.638287f, 0.0127073f, 0.689898f, 0.86008f, 0.488335f, 0.116243f, 0.794503f, 0.910228f, 0.591959f, 0.426112f, 0.141723f, 0.203937f, 0.843474f, 0.0230569f, 0.570641f, 0.84311f, 0.808082f, 0.236676f, 0.2775f, 0.179525f, 0.840489f, 0.879903f, 0.30792f, 0.28674f, 0.366845f, 0.48468f, 0.547914f, 0.463143f, 0.0684909f, 0.936271f, 0.770543f, 0.624828f, 0.424174f, 0.792742f, 0.507997f, 0.331753f, 0.39199f, 0.763454f, 0.0202253f, 0.542059f, 0.19315f, 0.71053f, 0.0529077f, 0.27654f, 0.167861f, 0.901709f, 0.909553f, 0.663971f, 0.417682f, 0.218154f, 0.768768f, 0.0387871f, 0.981962f, 0.0566515f, 0.668589f, 0.396987f, 0.11578f, 0.0283513f, 0.950349f, 0.204337f, 0.323745f, 0.184177f, 0.624042f, 0.770279f, 0.00786911f, 0.95886f, 0.570679f, 0.785266f, 0.425791f, 0.710022f, 0.0491318f, 0.550038f, 0.797806f, 0.411732f, 0.0264604f, 0.487609f, 0.412082f, 0.903675f, 0.93333f, 0.280415f, 0.554696f, 0.733814f, 0.1412f, 0.0161727f, 0.228676f, 0.629394f, 0.227567f, 0.93656f, 0.462834f, 0.276516f, 0.529687f, 0.737354f, 0.560569f, 0.894543f, 0.202988f, 0.999051f, 0.60471f, 0.0443098f, 0.112014f, 0.660049f, 0.284839f, 0.505573f, 0.644383f, 0.332208f, 0.29167f, 0.000343225f, 0.268097f, 0.852227f, 0.599293f, 0.36666f, 0.103163f, 0.448847f, 0.130198f, 0.426567f, 0.43813f, 0.770131f, 0.453424f, 0.626394f, 0.799118f, 0.410953f, 0.713702f, 0.10277f, 0.680933f, 0.739307f, 0.589131f, 0.896462f, 0.885072f, 0.0622041f, 0.0877848f, 0.45064f, 0.316362f, 0.240547f, 0.601225f, 0.0695273f, 0.578184f, 0.729456f, 0.401378f, 0.0416692f, 0.197792f, 0.0641177f, 0.785206f, 0.571652f, 0.879141f, 0.880788f, 0.539646f, 0.555385f, 0.382785f, 0.718479f, 0.0366768f, 0.572852f, 0.590954f, 0.118257f, 0.602162f, 0.0795446f, 0.835167f, 0.75432f, 0.898464f, 0.658787f, 0.450769f, 0.940301f, 0.90206f, 0.563925f, 0.134816f, 0.0533965f, 0.468155f, 0.370117f, 0.313159f, 0.379347f, 0.453397f, 0.664017f, 0.106684f, 0.402152f, 0.995593f, 0.238902f, 0.235804f, 0.499983f, 0.597113f, 0.500353f, 0.67415f, 0.455596f, 0.723423f, 0.0586574f, 0.435994f, 0.342112f, 0.611722f, 0.24995f, 0.568201f, 0.773938f, 0.791357f, 0.470812f, 0.692584f, 0.697293f, 0.701657f, 0.971693f, 0.300333f, 0.211367f, 0.184905f, 0.915232f, 0.424476f, 0.239299f, 0.621922f, 0.801317f, 0.615525f, 0.659105f, 0.177266f, 0.314794f, 0.348309f, 0.984988f, 0.844802f, 0.0415893f, 0.0307191f, 0.109317f, 0.456472f, 0.0414806f, 0.00614883f, 0.996687f, 0.280178f, 0.217272f, 0.375418f, 0.657176f, 0.952215f, 0.514172f, 0.473665f, 0.559307f, 0.665895f, 0.762992f, 0.371533f, 0.404242f, 0.574514f, 0.349613f, 0.259723f, 0.682176f, 0.325401f, 0.913383f, 0.752729f, 0.956178f, 0.0677681f, 0.486769f, 0.503736f, 0.67392f, 0.893188f, 0.322593f, 0.22014f, 0.579357f, 0.926983f, 0.308941f, 0.974191f, 0.779624f, 0.718414f, 0.715724f, 0.917279f, 0.862888f, 0.354193f, 0.0711811f, 0.107897f, 0.94193f, 0.408568f, 0.890099f, 0.829855f, 0.881492f, 0.22875f, 0.0127978f, 0.011247f, 0.519295f, 0.583926f, 0.6766f, 0.234748f, 0.7012f, 0.511272f, 0.465539f, 0.540992f, 0.858866f, 0.235691f, 0.948146f, 0.611724f, 0.63148f, 0.80454f, 0.569192f, 0.549704f, 0.677574f, 0.988443f, 0.712659f, 0.425419f, 0.514053f, 0.792905f, 0.715539f, 0.798611f, 0.567692f, 0.241777f, 0.852295f, 0.913802f, 0.694366f, 0.470208f, 0.152784f, 0.757416f, 0.362365f, 0.850051f, 0.00264538f, 0.460383f, 0.213732f, 0.531885f, 0.433104f, 0.0523126f, 0.318962f, 0.903564f, 0.213849f, 0.708347f, 0.505023f, 0.208189f, 0.959419f, 0.86761f, 0.292633f, 0.32004f, 0.214158f, 0.687243f, 0.375985f, 0.778947f, 0.633588f, 0.860767f, 0.437353f, 0.806654f, 0.753497f, 0.257359f, 0.153327f, 0.79372f, 0.511514f, 0.726074f, 0.778678f, 0.640024f, 0.0935934f, 0.612531f, 0.845934f, 0.856668f, 0.159275f, 0.0983851f, 0.0338585f, 0.0816387f, 0.838208f, 0.872847f, 0.111055f, 0.357432f, 0.84666f, 0.940788f, 0.620127f, 0.560973f, 0.868608f, 0.717113f, 0.692519f, 0.314356f, 0.857225f, 0.900682f, 0.0181035f, 0.00961911f, 0.00612036f, 0.825358f, 0.725927f, 0.62857f, 0.168422f, 0.898292f, 0.747193f, 0.0170086f, 0.59325f, 0.784296f, 0.556686f, 0.901377f, 0.147478f, 0.223836f, 0.0801547f, 0.869065f, 0.429919f, 0.106709f, 0.762799f, 0.985216f, 0.927093f, 0.559394f, 0.420103f, 0.231195f, 0.193386f, 0.150465f, 0.162097f, 0.353569f, 0.171717f, 0.77536f, 0.655196f, 0.144188f, 0.757612f, 0.673119f, 0.809927f, 0.505693f, 0.518122f, 0.16988f, 0.103265f, 0.917911f, 0.672638f, 0.278119f, 0.33887f, 0.672864f, 0.167051f, 0.917979f, 0.946587f, 0.151668f, 0.0545913f, 0.385106f, 0.389816f, 0.700828f, 0.839174f, 0.0119766f, 0.0238333f, 0.669581f, 0.0673994f, 0.565316f, 0.561096f, 0.577632f, 0.169086f, 0.804048f, 0.761263f, 0.981231f, 0.979064f, 0.152146f, 0.503983f, 0.957075f, 0.232238f, 0.693598f, 0.312898f, 0.782981f, 0.984722f, 0.75545f, 0.460171f, 0.0354336f, 0.52951f, 0.43004f, 0.171406f, 0.532135f, 0.9776f, 0.0985025f, 0.898747f, 0.72394f, 0.726622f, 0.670149f, 0.130097f, 0.406665f, 0.420195f, 0.523834f, 0.809445f, 0.700112f, 0.822798f, 0.816938f, 0.978374f, 0.542424f, 0.12232f, 0.645704f, 0.531084f, 0.789407f, 0.639392f, 0.294385f, 0.370609f, 0.736607f, 0.450306f, 0.745892f, 0.466696f, 0.0479832f, 0.931319f, 0.471393f, 0.378464f, 0.685517f, 0.385303f, 0.0793513f, 0.65543f, 0.141782f, 0.883142f, 0.298444f, 0.999721f, 0.710185f, 0.779161f, 0.343306f, 0.754517f, 0.746347f, 0.768358f, 0.556462f, 0.298095f, 0.0073683f, 0.949943f, 0.967652f, 0.227505f, 0.629643f, 0.0353548f, 0.959066f, 0.612231f, 0.501148f, 0.828908f, 0.245115f, 0.884333f, 0.712314f, 0.95553f, 0.326572f, 0.984838f, 0.966299f, 0.127249f, 0.885119f, 0.410498f, 0.203113f, 0.927698f, 0.161315f, 0.768913f, 0.999001f, 0.71119f, 0.832512f, 0.950797f, 0.730997f, 0.87339f, 0.754119f, 0.379897f, 0.155136f, 0.995455f, 0.960437f, 0.521546f, 0.325177f, 0.975384f, 0.864303f, 0.774282f, 0.470459f, 0.854358f, 0.213583f, 0.149578f, 0.0029431f, 0.645778f, 0.157656f, 0.31494f, 0.675235f, 0.798073f, 0.883995f, 0.826306f, 0.382837f, 0.00961885f, 0.948502f, 0.715269f, 0.507345f, 0.316638f, 0.123658f, 0.0380885f, 0.0760055f, 0.244934f, 0.844188f, 0.97335f, 0.369245f, 0.746758f, 0.63331f, 0.0253718f, 0.214573f, 0.820219f, 0.191801f, 0.0849191f, 0.811435f, 0.979755f, 0.491341f, 0.047972f, 0.654638f, 0.875591f, 0.458108f, 0.127132f, 0.741734f, 0.503403f, 0.619794f, 0.52892f, 0.400461f, 0.567607f, 0.225805f, 0.972737f, 0.818295f, 0.892317f, 0.779674f, 0.737902f, 0.857006f, 0.23724f, 0.754698f, 0.839711f, 0.804661f, 0.14683f, 0.890841f, 0.952665f, 0.684101f, 0.692381f, 0.77351f, 0.362895f, 0.797268f, 0.365331f, 0.564682f, 0.512197f, 0.231953f, 0.724453f, 0.739392f, 0.953193f, 0.352544f, 0.873279f, 0.108286f, 0.574154f, 0.124608f, 0.297452f, 0.343713f, 0.705411f, 0.471638f, 0.568462f, 0.0870916f, 0.95709f, 0.705516f, 0.947715f, 0.28019f, 0.348241f, 0.89545f, 0.166359f, 0.927557f, 0.090227f, 0.535189f, 0.29296f, 0.383784f, 0.363511f, 0.385727f, 0.624506f, 0.208662f, 0.517785f, 0.9226f, 0.627992f, 0.756734f, 0.71849f, 0.904747f, 0.474553f, 0.104712f, 0.466847f, 0.845483f, 0.23704f, 0.875972f, 0.795674f, 0.813228f, 0.561381f, 0.217489f, 0.379153f, 0.9217f, 0.120657f, 0.212865f, 0.339643f, 0.402998f, 0.337485f, 0.837689f, 0.71588f, 0.820437f, 0.137161f, 0.734836f, 0.43384f, 0.390606f, 0.76863f, 0.902485f, 0.653448f, 0.586886f, 0.11454f, 0.237244f, 0.491758f, 0.285477f, 0.473126f, 0.492431f, 0.875863f, 0.222312f, 0.214462f, 0.53967f, 0.572137f, 0.456285f, 0.791134f, 0.700224f, 0.0943796f, 0.485968f, 0.820876f, 0.71187f, 0.87956f, 0.322256f, 0.289008f, 0.642231f, 0.562762f, 0.590441f, 0.844272f, 0.533532f, 0.431432f, 0.84989f, 0.525721f, 0.621898f, 0.954284f, 0.822625f, 0.185374f, 0.818666f, 0.213296f, 0.461567f, 0.181689f, 0.473609f, 0.431153f, 0.573114f, 0.0406941f, 0.582626f, 0.905356f, 0.930616f, 0.954859f, 0.983171f, 0.596248f, 0.4527f, 0.47677f, 0.924188f, 0.98532f, 0.695984f, 0.476758f, 0.386629f, 0.0126092f, 0.146338f, 0.565628f, 0.578453f, 0.289324f, 0.30088f, 0.539916f, 0.93363f, 0.0704658f, 0.109648f, 0.214744f, 0.595283f, 0.33294f, 0.950965f, 0.929428f, 0.813884f, 0.618206f, 0.864781f, 0.18343f, 0.14465f, 0.963859f, 0.957667f, 0.492841f, 0.798349f, 0.586916f, 0.0313671f, 0.265043f, 0.89578f, 0.173169f, 0.285286f, 0.173418f, 0.156524f, 0.688003f, 0.572639f, 0.106593f, 0.731564f, 0.421688f, 0.449339f, 0.523175f, 0.62286f, 0.185018f, 0.652623f, 0.547864f, 0.357667f, 0.84197f, 0.423256f, 0.953343f, 0.106257f, 0.0739082f, 0.738384f, 0.857672f, 0.634112f, 0.294086f, 0.733901f, 0.359825f, 0.74773f, 0.196471f, 0.700408f, 0.97943f, 0.912977f, 0.962321f, 0.577774f, 0.964198f, 0.962612f, 0.56931f, 0.455372f, 0.481912f, 0.722396f, 0.48471f, 0.956901f, 0.329356f, 0.220315f, 0.421001f, 0.924976f, 0.361622f, 0.25113f, 0.0609949f, 0.557615f, 0.960276f, 0.974457f, 0.556058f, 0.258683f, 0.30762f, 0.875404f, 0.879741f, 0.557299f, 0.840141f, 0.677022f, 0.429622f, 0.629197f, 0.566561f, 0.734285f, 0.660293f, 0.375673f, 0.296674f, 0.00365564f, 0.330919f, 0.864809f, 0.52764f, 0.341352f, 0.0446571f, 0.772668f, 0.315053f, 0.563374f, 0.174156f, 0.823374f, 0.1807f, 0.948436f, 0.890809f, 0.71882f, 0.182657f, 0.353268f, 0.745919f, 0.448371f, 0.458774f, 0.596618f, 0.640457f, 0.25174f, 0.152258f, 0.0895677f, 0.950536f, 0.346543f, 0.407567f, 0.999578f, 0.808697f, 0.146934f, 0.0503009f, 0.957366f, 0.471509f, 0.769222f, 0.56417f, 0.00688867f, 0.701474f, 0.240237f, 0.142249f, 0.0375286f, 0.426234f, 0.363617f, 0.0834601f, 0.0836809f, 0.200853f, 0.241534f, 0.447741f, 0.714228f, 0.954587f, 0.420323f, 0.571062f, 0.972781f, 0.100924f, 0.184836f, 0.376265f, 0.69656f, 0.142651f, 0.992868f, 0.649462f, 0.690062f, 0.842583f, 0.786338f, 0.256428f, 0.122638f, 0.224826f, 0.611269f, 0.948878f, 0.0471729f, 0.110879f, 0.868052f, 0.712388f, 0.165319f, 0.0485212f, 0.727872f, 0.788025f, 0.44366f, 0.554184f, 0.355091f, 0.457588f, 0.457669f, 0.0702683f, 0.645146f, 0.656114f, 0.471351f, 0.947632f, 0.839267f, 0.79427f, 0.525043f, 0.623998f, 0.0718313f, 0.0994423f, 0.253284f, 0.700895f, 0.0620533f, 0.834881f, 0.183217f, 0.204566f, 0.483247f, 0.68356f, 0.654929f, 0.325982f, 0.0694041f, 0.974176f, 0.297671f, 0.366199f, 0.633409f, 0.23664f, 0.852447f, 0.174777f, 0.615545f, 0.463499f, 0.702313f, 0.83723f, 0.984157f, 0.984313f, 0.324485f, 0.539787f, 0.0217852f, 0.903172f, 0.0657557f, 0.936454f, 0.286387f, 0.864025f, 0.893007f, 0.760028f, 0.0631858f, 0.527295f, 0.650481f, 0.674018f, 0.870867f, 0.226225f, 0.635691f, 0.694291f, 0.796474f, 0.325277f, 0.230096f, 0.990246f, 0.862474f, 0.611415f, 0.837348f, 0.667471f, 0.893468f, 0.137006f, 0.805157f, 0.727722f, 0.575047f, 0.0812447f, 0.00332892f, 0.0433659f, 0.785997f, 0.791497f, 0.533775f, 0.808561f, 0.372525f, 0.969321f, 0.387242f, 0.654623f, 0.131302f, 0.95441f, 0.678156f, 0.741826f, 0.0784754f, 0.995653f, 0.142764f, 0.0116793f, 0.355654f, 0.588896f, 0.826082f, 0.99155f, 0.741596f, 0.414717f, 0.705101f, 0.974348f, 0.912202f, 0.665971f, 0.231464f, 0.0922351f, 0.848757f, 0.805882f, 0.51685f, 0.688406f, 0.737106f, 0.396799f, 0.172867f, 0.511846f, 0.899687f, 0.22167f, 0.928006f, 0.271104f, 0.324211f, 0.514791f, 0.171087f, 0.997203f, 0.959142f, 0.890799f, 0.941474f, 0.853f, 0.724237f, 0.258315f, 0.720872f, 0.614316f, 0.971943f, 0.58439f, 0.856296f, 0.0299103f, 0.110145f, 0.850125f, 0.448778f, 0.709144f, 0.941761f, 0.759252f, 0.471517f, 0.544703f, 0.9945f, 0.82029f, 0.900237f, 0.0946534f, 0.253158f, 0.285683f, 0.178263f, 0.202297f, 0.693995f, 0.698544f, 0.162467f, 0.715778f, 0.43853f, 0.176624f, 0.608896f, 0.400533f, 0.663253f, 0.22253f, 0.324155f, 0.305958f, 0.19465f, 0.048463f, 0.980281f, 0.759648f, 0.806053f, 0.0957803f, 0.330134f, 0.645568f, 0.678518f, 0.105757f, 0.278402f, 0.4611f, 0.116674f, 0.648524f, 0.354427f, 0.593176f, 0.826524f, 0.378395f, 0.74313f, 0.0645038f, 0.046516f, 0.10157f, 0.582681f, 0.480452f, 0.427569f, 0.373421f, 0.792701f, 0.809276f, 0.516038f, 0.481245f, 0.365289f, 0.297136f, 0.768756f, 0.460179f, 0.195181f, 0.497868f, 0.645771f, 0.691792f, 0.212452f, 0.802635f, 0.967529f, 0.202553f, 0.404711f, 0.186143f, 0.870516f, 0.214961f, 0.606942f, 0.659521f, 0.773491f, 0.41635f, 0.118373f, 0.827707f, 0.935168f, 0.906606f, 0.416938f, 0.0941418f, 0.184616f, 0.0854075f, 0.742107f, 0.0377408f, 0.0394036f, 0.624772f, 0.334759f, 0.709317f, 0.690739f, 0.430583f, 0.0661632f, 0.795665f, 0.143397f, 0.0264727f, 0.430718f, 0.564947f, 0.501005f, 0.795074f, 0.688456f, 0.0758276f, 0.114967f, 0.318109f, 0.268243f, 0.491039f, 0.029096f, 0.19893f, 0.454914f, 0.508715f, 0.880154f, 0.950762f, 0.717665f, 0.270697f, 0.918787f, 0.40797f, 0.629369f, 0.572733f, 0.160172f, 0.133892f, 0.459015f, 0.753191f, 0.705489f, 0.947349f, 0.890487f, 0.259758f, 0.268497f, 0.0972714f, 0.0695712f, 0.932958f, 0.519835f, 0.306024f, 0.330323f, 0.532885f, 0.287885f, 0.357825f, 0.844217f, 0.25325f, 0.934947f, 0.587595f, 0.779412f, 0.0936196f, 0.331646f, 0.167257f, 0.861833f, 0.338368f, 0.360992f, 0.672436f, 0.181959f, 0.386948f, 0.674912f, 0.413251f, 0.558263f, 0.911673f, 0.862047f, 0.91121f, 0.045779f, 0.0691727f, 0.814198f, 0.332049f, 0.121373f, 0.967023f, 0.963251f, 0.307342f, 0.134534f, 0.7198f, 0.192787f, 0.297363f, 0.0821706f, 0.66607f, 0.148892f, 0.0083189f, 0.722758f, 0.802759f, 0.4492f, 0.611604f, 0.728216f, 0.898171f, 0.999513f, 0.513938f, 0.449756f, 0.574561f, 0.494023f, 0.214097f, 0.0930019f, 0.279293f, 0.600591f, 0.14003f, 0.851867f, 0.133887f, 0.947935f, 0.449993f, 0.04731f, 0.459171f, 0.311677f, 0.620215f, 0.606521f, 0.97574f, 0.0868678f, 0.354204f, 0.413799f, 0.949669f, 0.827198f, 0.0239478f, 0.979115f, 0.846768f, 0.403074f, 0.580696f, 0.341495f, 0.606055f, 0.0822114f, 0.468938f, 0.515763f, 0.156409f, 0.457546f, 0.83558f, 0.34622f, 0.317464f, 0.4094f, 0.0774554f, 0.359015f, 0.34625f, 0.499322f, 0.0888448f, 0.909101f, 0.0453446f, 0.000850094f, 0.295581f, 0.401917f, 0.716063f, 0.428869f, 0.921903f, 0.888364f, 0.184599f, 0.776387f, 0.810191f, 0.392834f, 0.153734f, 0.203344f, 0.837668f, 0.976633f, 0.847462f, 0.874881f, 0.668662f, 0.652816f, 0.914987f, 0.00451315f, 0.981843f, 0.328409f, 0.258969f, 0.538078f, 0.559569f, 0.683026f, 0.276111f, 0.308796f, 0.890213f, 0.327725f, 0.61278f, 0.00449197f, 0.346267f, 0.692164f, 0.392556f, 0.422186f, 0.475265f, 0.120223f, 0.925079f, 0.5976f, 0.752428f, 0.858827f, 0.249243f, 0.173745f, 0.626284f, 0.0927299f, 0.0349499f, 0.875995f, 0.0166703f, 0.184881f, 0.188308f, 0.9454f, 0.491007f, 0.974666f, 0.233835f, 0.258856f, 0.831252f, 0.816365f, 0.406586f, 0.580223f, 0.0649543f, 0.638888f, 0.248592f, 0.21366f, 0.441546f, 0.634155f, 0.996909f, 0.609874f, 0.890964f, 0.455623f, 0.746403f, 0.781809f, 0.889497f, 0.941262f, 0.243813f, 0.851309f, 0.682001f, 0.303302f, 0.83347f, 0.701662f, 0.838946f, 0.485931f, 0.0549321f, 0.320827f, 0.444271f, 0.0381938f, 0.735022f, 0.70405f, 0.516336f, 0.0875818f, 0.966047f, 0.51303f, 0.131951f, 0.568519f, 0.283458f, 0.936966f, 0.340116f, 0.837635f, 0.938004f, 0.713295f, 0.388906f, 0.143626f, 0.0348835f, 0.214307f, 0.730334f, 0.350882f, 0.0980965f, 0.673089f, 0.773921f, 0.823503f, 0.695154f, 0.733075f, 0.746001f, 0.572553f, 0.978582f, 0.670927f, 0.130238f, 0.7828f, 0.0441233f, 0.96649f, 0.112834f, 0.782979f, 0.26588f, 0.804274f, 0.560883f, 0.60293f, 0.425478f, 0.42237f, 0.893522f, 0.971839f, 0.510324f, 0.945489f, 0.793186f, 0.641643f, 0.480637f, 0.904342f, 0.4877f, 0.412663f, 0.427252f, 0.327909f, 0.731806f, 0.545454f, 0.726311f, 0.791445f, 0.134922f, 0.618404f, 0.916366f, 0.626868f, 0.176367f, 0.438304f, 0.0124284f, 0.38679f, 0.0709086f, 0.523552f, 0.359128f, 0.931022f, 0.273408f, 0.805746f, 0.836785f, 0.896942f, 0.929909f, 0.472329f, 0.546212f, 0.559585f, 0.828755f, 0.132333f, 0.273131f, 0.767111f, 0.867155f, 0.568318f, 0.402194f, 0.80677f, 0.874407f, 0.706021f, 0.743277f, 0.147495f, 0.497984f, 0.0228355f, 0.018538f, 0.848837f, 0.574097f, 0.0909596f, 0.193292f, 0.0255437f, 0.201144f, 0.554184f, 0.475002f, 0.796415f, 0.489669f, 0.357315f, 0.100423f, 0.705043f, 0.0197173f, 0.762717f, 0.143447f, 0.204091f, 0.196282f, 0.3405f, 0.266557f, 0.988108f, 0.454827f, 0.493077f, 0.555779f, 0.28388f, 0.488911f, 0.292256f, 0.265432f, 0.0628563f, 0.100546f, 0.939694f, 0.432897f, 0.786097f, 0.551135f, 0.569943f, 0.58404f, 0.546083f, 0.92622f, 0.651898f, 0.320026f, 0.219867f, 0.649951f, 0.506432f, 0.844216f, 0.249193f, 0.523493f, 0.529749f, 0.0274718f, 0.473925f, 0.667786f, 0.583479f, 0.777275f, 0.764091f, 0.286952f, 0.177703f, 0.226733f, 0.219178f, 0.98811f, 0.871416f, 0.380711f, 0.460821f, 0.8267f, 0.0635667f, 0.299989f, 0.333724f, 0.925175f, 0.84771f, 0.0957246f, 0.818235f, 0.657102f, 0.742433f, 0.918443f, 0.89082f, 0.816633f, 0.379226f, 0.0953685f, 0.889036f, 0.0915369f, 0.108673f, 0.776449f, 0.411121f, 0.0971075f, 0.428249f, 0.952901f, 0.448069f, 0.289354f, 0.848445f, 0.816563f, 0.857344f, 0.127785f, 0.0876948f, 0.704475f, 0.458588f, 0.0695453f, 0.561227f, 0.403416f, 0.0340543f, 0.695906f, 0.721814f, 0.545271f, 0.692094f, 0.449162f, 0.0101133f, 0.955742f, 0.0744578f, 0.0230509f, 0.80775f, 0.37216f, 0.306166f, 0.140889f, 0.147295f, 0.0910706f, 0.228604f, 0.0629362f, 0.105301f, 0.976443f, 0.784602f, 0.85427f, 0.319584f, 0.839332f, 0.36463f, 0.820518f, 0.53021f, 0.737608f, 0.157278f, 0.291652f, 0.521901f, 0.878088f, 0.362409f, 0.348868f, 0.316342f, 0.85833f, 0.747563f, 0.859804f, 0.899792f, 0.501878f, 0.342417f, 0.548447f, 0.436572f, 0.78287f, 0.796021f, 0.60547f, 0.712261f, 0.719629f, 0.732916f, 0.0691805f, 0.913756f, 0.423561f, 0.0999369f, 0.343425f, 0.892776f, 0.080708f, 0.80676f, 0.373842f, 0.55274f, 0.405536f, 0.775874f, 0.157916f, 0.178894f, 0.907335f, 0.831711f, 0.773824f, 0.353116f, 0.213652f, 0.480229f, 0.762299f, 0.200408f, 0.45256f, 0.883378f, 0.36445f, 0.50118f, 0.812127f, 0.636674f, 0.716257f, 0.26549f, 0.733552f, 0.0164629f, 0.852164f, 0.730687f, 0.142062f, 0.538074f, 0.470815f, 0.373797f, 0.656745f, 0.939293f, 0.825732f, 0.193692f, 0.271752f, 0.878585f, 0.897819f, 0.0510397f, 0.226767f, 0.970232f, 0.452866f, 0.348396f, 0.755521f, 0.79419f, 0.887324f, 0.252607f, 0.461492f, 0.982379f, 0.981183f, 0.000563909f, 0.166662f, 0.947894f, 0.555107f, 0.343203f, 0.814985f, 0.100717f, 0.130978f, 0.887828f, 0.0660569f, 0.0786789f, 0.50107f, 0.546827f, 0.555532f, 0.301241f, 0.347113f, 0.682008f, 0.833179f, 0.912085f, 0.434421f, 0.0203689f, 0.369309f, 0.965034f, 0.564557f, 0.903803f, 0.916688f, 0.561587f, 0.485956f, 0.188589f, 0.630288f, 0.553069f, 0.0818616f, 0.549482f, 0.737253f, 0.972696f, 0.619968f, 0.91962f, 0.648584f, 0.285313f, 0.139861f, 0.978674f, 0.855924f, 0.770446f, 0.320651f, 0.0907761f, 0.353458f, 0.797755f, 0.796704f, 0.363182f, 0.0477224f, 0.377253f, 0.988718f, 0.422171f, 0.0410823f, 0.0648559f, 0.860767f, 0.0158402f, 0.773974f, 0.0878536f, 0.866743f, 0.433906f, 0.954403f, 0.717973f, 0.516224f, 0.188245f, 0.646973f, 0.289479f, 0.608346f, 0.480279f, 0.00959032f, 0.638653f, 0.789162f, 0.222084f, 0.89853f, 0.193127f, 0.871977f, 0.505576f, 0.789938f, 0.468664f, 0.518494f, 0.437183f, 0.909318f, 0.559601f, 0.226763f, 0.640364f, 0.401715f, 0.348778f, 0.455293f, 0.291447f, 0.112201f, 0.479516f, 0.639978f, 0.632286f, 0.39995f, 0.343699f, 0.766534f, 0.0903324f, 0.465614f, 0.00699166f, 0.33698f, 0.995661f, 0.598812f, 0.0409469f, 0.849873f, 0.549859f, 0.227782f, 0.573034f, 0.875245f, 0.574172f, 0.315462f, 0.64763f, 0.734943f, 0.23191f, 0.0181727f, 0.349757f, 0.842983f, 0.928829f, 0.210515f, 0.52014f, 0.24415f, 0.00709784f, 0.298236f, 0.70972f, 0.775037f, 0.131526f, 0.254659f, 0.109642f, 0.902058f, 0.0810867f, 0.894335f, 0.864379f, 0.829596f, 0.246748f, 0.566536f, 0.411108f, 0.521713f, 0.569299f, 0.0919209f, 0.729979f, 0.407958f, 0.944501f, 0.556948f, 0.457221f, 0.885695f, 0.932005f, 0.585057f, 0.901422f, 0.313922f, 0.666369f, 0.394859f, 0.0751098f, 0.477243f, 0.614728f, 0.631539f, 0.372708f, 0.407733f, 0.942874f, 0.579093f, 0.909681f, 0.860376f, 0.093909f, 0.530909f, 0.896598f, 0.389745f, 0.372498f, 0.229945f, 0.686302f, 0.0808744f, 0.0809309f, 0.664149f, 0.506449f, 0.595882f, 0.554841f, 0.422232f, 0.134856f, 0.709975f, 0.353235f, 0.122968f, 0.0801314f, 0.499966f, 0.0260317f, 0.643237f, 0.610541f, 0.958465f, 0.833629f, 0.54053f, 0.789644f, 0.359161f, 0.817851f, 0.374599f, 0.559545f, 0.20301f, 0.35341f, 0.820238f, 0.041116f, 0.919098f, 0.191215f, 0.717778f, 0.739251f, 0.472893f, 0.144513f, 0.631646f, 0.620376f, 0.226243f, 0.641126f, 0.438453f, 0.138248f, 0.386422f, 0.222032f, 0.427272f, 0.741038f, 0.358608f, 0.676207f, 0.659127f, 0.77423f, 0.0056963f, 0.303172f, 0.376431f, 0.266839f, 0.0571987f, 0.67568f, 0.418615f, 0.945006f, 0.214421f, 0.78264f, 0.504071f, 0.7178f, 0.341034f, 0.630461f, 0.447086f, 0.0439287f, 0.8875f, 0.544724f, 0.112584f, 0.998354f, 0.9809f, 0.258963f, 0.191181f, 0.0560489f, 0.257646f, 0.846637f, 0.626145f, 0.195457f, 0.824605f, 0.752355f, 0.945746f, 0.740393f, 0.653025f, 0.136753f, 0.586021f, 0.475397f, 0.0714114f, 0.147559f, 0.8442f, 0.380127f, 0.738006f, 0.609101f, 0.188612f, 0.632001f, 0.603794f, 0.537657f, 0.177305f, 0.852774f, 0.966591f, 0.665321f, 0.503393f, 0.210565f, 0.715953f, 0.387927f, 0.0440149f, 0.339485f, 0.0823881f, 0.367538f, 0.767779f, 0.884345f, 0.109396f, 0.63223f, 0.412455f, 0.178465f, 0.0507706f, 0.485121f, 0.294607f, 0.370991f, 0.944419f, 0.136482f, 0.845479f, 0.121908f, 0.191002f, 0.131244f, 0.00622841f, 0.567604f, 0.212976f, 0.36287f, 0.607975f, 0.431318f, 0.40082f, 0.709974f, 0.804813f, 0.952521f, 0.276572f, 0.17742f, 0.105584f, 0.888779f, 0.683337f, 0.170643f, 0.440185f, 0.543874f, 0.119981f, 0.589082f, 0.186223f, 0.982259f, 0.231994f, 0.810508f, 0.552301f, 0.237806f, 0.198615f, 0.805346f, 0.0238344f, 0.0928923f, 0.0785491f, 0.430659f, 0.537014f, 0.930875f, 0.471287f, 0.0484842f, 0.969099f, 0.793085f, 0.884125f, 0.952769f, 0.647739f, 0.559867f, 0.924879f, 0.0319831f, 0.586215f, 0.321531f, 0.831833f, 0.939589f, 0.638587f, 0.903751f, 0.375221f, 0.404078f, 0.809914f, 0.909374f, 0.26586f, 0.631018f, 0.429911f, 0.675685f, 0.794163f, 0.618099f, 0.691647f, 0.903324f, 0.728971f, 0.846593f, 0.6666f, 0.741252f, 0.570946f, 0.46837f, 0.179672f, 0.774219f, 0.384656f, 0.849555f, 0.533305f, 0.590401f, 0.964318f, 0.457615f, 0.321516f, 0.0208775f, 0.373421f, 0.510021f, 0.982442f, 0.232421f, 0.750315f, 0.361089f, 0.397923f, 0.206362f, 0.214752f, 0.33211f, 0.914989f, 0.600919f, 0.650647f, 0.763654f, 0.2461f, 0.190174f, 0.333671f, 0.317425f, 0.933695f, 0.9784f, 0.960239f, 0.194299f, 0.450556f, 0.10371f, 0.524373f, 0.345593f, 0.850267f, 0.935772f, 0.649672f, 0.901208f, 0.486565f, 0.108914f, 0.464129f, 0.88974f, 0.476738f, 0.797901f, 0.831085f, 0.966915f, 0.0264328f, 0.932948f, 0.251282f, 0.85788f, 0.404111f, 0.0912275f, 0.668941f, 0.0964484f, 0.215694f, 0.511941f, 0.0665426f, 0.731441f, 0.599129f, 0.605807f, 0.207614f, 0.572226f, 0.832813f, 0.456038f, 0.407284f, 0.561743f, 0.3099f, 0.647478f, 0.836336f, 0.176686f, 0.0205143f, 0.93403f, 0.766272f, 0.573602f, 0.218061f, 0.796744f, 0.913891f, 0.827296f, 0.259705f, 0.245004f, 0.891785f, 0.872052f, 0.599454f, 0.563108f, 0.0328248f, 0.0883664f, 0.525946f, 0.947825f, 0.921859f, 0.622588f, 0.222157f, 0.185422f, 0.693733f, 0.000926891f, 0.652556f, 0.488593f, 0.0708218f, 0.291109f, 0.0743702f, 0.139774f, 0.851221f, 0.610232f, 0.411828f, 0.513488f, 0.982313f, 0.874602f, 0.122241f, 0.617891f, 0.716313f, 0.183879f, 0.21519f, 0.479264f, 0.840607f, 0.0509966f, 0.967678f, 0.564133f, 0.0912643f, 0.140889f, 0.93038f, 0.887509f, 0.222076f, 0.574473f, 0.910053f, 0.3291f, 0.0677432f, 0.161977f, 0.637396f, 0.472756f, 0.650265f, 0.265576f, 0.628293f, 0.360273f, 0.0922663f, 0.894224f, 0.669931f, 0.322352f, 0.149659f, 0.53929f, 0.266515f, 0.0519883f, 0.985195f, 0.210595f, 0.86933f, 0.44075f, 0.431001f, 0.326156f, 0.0404525f, 0.596557f, 0.638746f, 0.738458f, 0.403545f, 0.986486f, 0.582298f, 0.868717f, 0.501291f, 0.929942f, 0.445173f, 0.781671f, 0.923339f, 0.0751635f, 0.128539f, 0.319603f, 0.187612f, 0.211502f, 0.453255f, 0.30613f, 0.902157f, 0.730254f, 0.431835f, 0.953954f, 0.279854f, 0.530319f, 0.586014f, 0.277366f, 0.538647f, 0.462936f, 0.875658f, 0.143087f, 0.355321f, 0.424377f, 0.566115f, 0.768805f, 0.0632722f, 0.227152f, 0.794137f, 0.834637f, 0.399366f, 0.376948f, 0.060539f, 0.175033f, 0.934245f, 0.00284063f, 0.900301f, 0.560909f, 0.446826f, 0.397935f, 0.152239f, 0.389596f, 0.758969f, 0.72322f, 0.551895f, 0.617212f, 0.942954f, 0.616343f, 0.321175f, 0.613545f, 0.397637f, 0.734759f, 0.319936f, 0.642448f, 0.410287f, 0.933028f, 0.799424f, 0.599313f, 0.879514f, 0.679369f, 0.407169f, 0.397339f, 0.512815f, 0.329459f, 0.304717f, 0.0825684f, 0.146401f, 0.374815f, 0.92173f, 0.13524f, 0.935348f, 0.0647594f, 0.0038909f, 0.200255f, 0.751794f, 0.201043f, 0.236771f, 0.18696f, 0.480723f, 0.808138f, 0.062058f, 0.170385f, 0.0915421f, 0.276257f, 0.338185f, 0.675228f, 0.777146f, 0.610218f, 0.0298378f, 0.437848f, 0.0347487f, 0.812859f, 0.421852f, 0.557814f, 0.990453f, 0.426372f, 0.858653f, 0.288976f, 0.659399f, 0.844169f, 0.225242f, 0.455817f, 0.172944f, 0.354925f, 0.27737f, 0.606244f, 0.966951f, 0.650472f, 0.396416f, 0.211964f, 0.187634f, 0.0160894f, 0.0821767f, 0.59884f, 0.817367f, 0.847383f, 0.0300615f, 0.0574575f, 0.548312f, 0.751748f, 0.194943f, 0.589198f, 0.879761f, 0.721534f, 0.470941f, 0.468215f, 0.715272f, 0.810768f, 0.646068f, 0.901215f, 0.955512f, 0.743163f, 0.962022f, 0.374871f, 0.80422f, 0.690661f, 0.0250751f, 0.79563f, 0.102893f, 0.322101f, 0.0690305f, 0.940337f, 0.641574f, 0.650997f, 0.491007f, 0.817132f, 0.0148011f, 0.403251f, 0.992396f, 0.188816f, 0.376219f, 0.10534f, 0.177642f, 0.431083f, 0.86558f, 0.892058f, 0.779712f, 0.449729f, 0.389934f, 0.992887f, 0.931071f, 0.864745f, 0.779918f, 0.596726f, 0.585226f, 0.352476f, 0.826316f, 0.127054f, 0.478924f, 0.110383f, 0.580022f, 0.82421f, 0.800809f, 0.865504f, 0.910334f, 0.0467139f, 0.919823f, 0.380784f, 0.0631186f, 0.508982f, 0.801985f, 0.175551f, 0.451541f, 0.372707f, 0.226567f, 0.570796f, 0.125396f, 0.943644f, 0.401429f, 0.989618f, 0.242919f, 0.97873f, 0.47496f, 0.063345f, 0.77485f, 0.292343f, 0.0468066f, 0.836154f, 0.879952f, 0.804999f, 0.274545f, 0.265815f, 0.949376f, 0.652124f, 0.415027f, 0.772576f, 0.223914f, 0.958858f, 0.163547f, 0.673092f, 0.398409f, 0.178012f, 0.368437f, 0.902936f, 0.0266671f, 0.825638f, 0.0887684f, 0.704695f, 0.00433382f, 0.77782f, 0.559835f, 0.233247f, 0.227651f, 0.358069f, 0.749393f, 0.117542f, 0.433086f, 0.211494f, 0.340984f, 0.24799f, 0.786604f, 0.269659f, 0.432376f, 0.312364f, 0.719123f, 0.370674f, 0.00847289f, 0.807866f, 0.863069f, 0.100777f, 0.536513f, 0.423337f, 0.231107f, 0.586951f, 0.567401f, 0.427884f, 0.73487f, 0.208975f, 0.353041f, 0.247483f, 0.456553f, 0.736874f, 0.94209f, 0.264569f, 0.210946f, 0.639523f, 0.079536f, 0.678965f, 0.573502f, 0.43078f, 0.444149f, 0.296157f, 0.664199f, 0.729483f, 0.317224f, 0.862687f, 0.906606f, 0.281476f, 0.507251f, 0.204797f, 0.908557f, 0.86077f, 0.207878f, 0.670553f, 0.439633f, 0.866356f, 0.645031f, 0.163276f, 0.77942f, 0.875031f, 0.377858f, 0.308918f, 0.811035f, 0.691951f, 0.738388f, 0.508979f, 0.601705f, 0.0702119f, 0.263637f, 0.109569f, 0.867348f, 0.603911f, 0.0351418f, 0.90264f, 0.359667f, 0.92715f, 0.487009f, 0.558423f, 0.59962f, 0.3381f, 0.00260816f, 0.2917f, 0.347709f, 0.674063f, 0.773833f, 0.0174277f, 0.129053f, 0.173304f, 0.940745f, 0.419558f, 0.00326372f, 0.40297f, 0.96468f, 0.509424f, 0.67384f, 0.0882732f, 0.110611f, 0.522027f, 0.864685f, 0.306044f, 0.87055f, 0.0679443f, 0.481999f, 0.18915f, 0.695993f, 0.331741f, 0.850465f, 0.512519f, 0.419894f, 0.39356f, 0.476141f, 0.370136f, 0.262703f, 0.247899f, 0.850707f, 0.486571f, 0.011581f, 0.45049f, 0.232171f, 0.440695f, 0.00337811f, 0.925948f, 0.319457f, 0.884806f, 0.311409f, 0.852698f, 0.63994f, 0.568866f, 0.267045f, 0.223009f, 0.313733f, 0.629241f, 0.129372f, 0.579141f, 0.904992f, 0.385199f, 0.330084f, 0.0683533f, 0.248661f, 0.0791767f, 0.515006f, 0.444598f, 0.200089f, 0.881632f, 0.62213f, 0.977745f, 0.394738f, 0.527943f, 0.910211f, 0.704782f, 0.794402f, 0.78068f, 0.00189873f, 0.836006f, 0.29421f, 0.541889f, 0.798596f, 0.636402f, 0.918368f, 0.892159f, 0.501628f, 0.585471f, 0.786059f, 0.142041f, 0.416124f, 0.556017f, 0.965452f, 0.826374f, 0.27872f, 0.717857f, 0.909668f, 0.341899f, 0.0586162f, 0.320897f, 0.10592f, 0.756336f, 0.277543f, 0.782822f, 0.636118f, 0.0536134f, 0.937309f, 0.388455f, 0.346383f, 0.447704f, 0.987638f, 0.677626f, 0.843047f, 0.944787f, 0.898766f, 0.432687f, 0.816114f, 0.405026f, 0.704707f, 0.0453077f, 0.829558f, 0.303178f, 0.342896f, 0.767674f, 0.2017f, 0.147938f, 0.458819f, 0.727087f, 0.341563f, 0.574069f, 0.279976f, 0.434043f, 0.629108f, 0.838056f, 0.281801f, 0.15954f, 0.533016f, 0.161662f, 0.97801f, 0.87128f, 0.634115f, 0.774679f, 0.225399f, 0.749904f, 0.486693f, 0.99924f, 0.620515f, 0.305748f, 0.22576f, 0.726796f, 0.918976f, 0.786063f, 0.375058f, 0.181839f, 0.391005f, 0.79399f, 0.960566f, 0.0754091f, 0.855213f, 0.42244f, 0.310224f, 0.203215f, 0.491572f, 0.67097f, 0.285214f, 0.0858207f, 0.438187f, 0.503256f, 0.879449f, 0.33861f, 0.582943f, 0.172445f, 0.947563f, 0.619313f, 0.621448f, 0.112419f, 0.53002f, 0.896355f, 0.611235f, 0.546437f, 0.934089f, 0.444589f, 0.585632f, 0.563237f, 0.216405f, 0.0073357f, 0.932245f, 0.38411f, 0.69195f, 0.695525f, 0.560935f, 0.258023f, 0.537613f, 0.74352f, 0.180963f, 0.355721f, 0.13062f, 0.573029f, 0.548766f, 0.373238f, 0.183068f, 0.789831f, 0.838845f, 0.918679f, 0.5173f, 0.452515f, 0.821234f, 0.231247f, 0.00733139f, 0.798577f, 0.602046f, 0.468893f, 0.101449f, 0.362702f, 0.968019f, 0.198854f, 0.0733694f, 0.959848f, 0.67011f, 0.806687f, 0.78752f, 0.0224502f, 0.541197f, 0.42703f, 0.536542f, 0.593846f, 0.281127f, 0.746273f, 0.913023f, 0.827128f, 0.852095f, 0.159293f, 0.296859f, 0.950085f, 0.210788f, 0.885017f, 0.273105f, 0.425117f, 0.815194f, 0.428134f, 0.914246f, 0.128769f, 0.469691f, 0.717688f, 0.0313141f, 0.968659f, 0.920771f, 0.149099f, 0.367242f, 0.352186f, 0.778338f, 0.456717f, 0.844881f, 0.217232f, 0.953702f, 0.138595f, 0.776925f, 0.237162f, 0.0112592f, 0.12796f, 0.379588f, 0.31727f, 0.0842268f, 0.549664f, 0.0946314f, 0.084875f, 0.507039f, 0.822972f, 0.59034f, 0.686113f, 0.0621147f, 0.3072f, 0.694008f, 0.554752f, 0.702632f, 0.711288f, 0.817532f, 0.323501f, 0.0892521f, 0.902616f, 0.537902f, 0.0875294f, 0.120766f, 0.119613f, 0.707762f, 0.724657f, 0.150481f, 0.257149f, 0.689427f, 0.450747f, 0.976963f, 0.149166f, 0.627768f, 0.0403627f, 0.0942667f, 0.773643f, 0.126306f, 0.569131f, 0.196301f, 0.872196f, 0.389558f, 0.668807f, 0.495927f, 0.086254f, 0.571141f, 0.766913f, 0.626801f, 0.587774f, 0.725417f, 0.00918404f, 0.822281f, 0.207662f, 0.058398f, 0.25222f, 0.786782f, 0.299126f, 0.255607f, 0.57141f, 0.931478f, 0.407586f, 0.977963f, 0.223107f, 0.54599f, 0.282617f, 0.913212f, 0.62677f, 0.165772f, 0.155456f, 0.518098f, 0.931691f, 0.200463f, 0.096959f, 0.946527f, 0.845319f, 0.284366f, 0.733283f, 0.153038f, 0.321763f, 0.360312f, 0.995035f, 0.958094f, 0.195862f, 0.46631f, 0.189629f, 0.302557f, 0.945048f, 0.643645f, 0.13327f, 0.371641f, 0.819777f, 0.57319f, 0.553086f, 0.471611f, 0.00809229f, 0.369703f, 0.784892f, 0.306595f, 0.591466f, 0.907076f, 0.525374f, 0.200636f, 0.956976f, 0.494712f, 0.415214f, 0.273887f, 0.006213f, 0.778764f, 0.25197f, 0.197293f, 0.530253f, 0.270816f, 0.542919f, 0.865151f, 0.161401f, 0.599639f, 0.425171f, 0.02092f, 0.252805f, 0.936007f, 0.452521f, 0.804941f, 0.257674f, 0.47651f, 0.290657f, 0.877264f, 0.2645f, 0.0344232f, 0.176063f, 0.719805f, 0.462195f, 0.149023f, 0.525856f, 0.465283f, 0.753542f, 0.12032f, 0.304783f, 0.918456f, 0.378908f, 0.518244f, 0.439006f, 0.77231f, 0.568517f, 0.964053f, 0.0689595f, 0.504969f, 0.785789f, 0.0910465f, 0.387359f, 0.304203f, 0.165416f, 0.852903f, 0.49645f, 0.110255f, 0.604735f, 0.150103f, 0.558969f, 0.768177f, 0.051041f, 0.736039f, 0.0896563f, 0.417839f, 0.893887f, 0.604943f, 0.330641f, 0.221515f, 0.0743126f, 0.824649f, 0.461708f, 0.504435f, 0.582551f, 0.159506f, 0.389979f, 0.68579f, 0.8831f, 0.346473f, 0.38616f, 0.00216954f, 0.0552161f, 0.457719f, 0.867273f, 0.554183f, 0.172436f, 0.649613f, 0.692574f, 0.979692f, 0.350168f, 0.124738f, 0.771034f, 0.296946f, 0.911974f, 0.81801f, 0.368762f, 0.722024f, 0.767779f, 0.327289f, 0.401161f, 0.855711f, 0.156584f, 0.568558f, 0.728227f, 0.400495f, 0.78513f, 0.818739f, 0.456153f, 0.097777f, 0.905695f, 0.781541f, 0.452064f, 0.366879f, 0.351342f, 0.583155f, 0.603932f, 0.405335f, 0.998143f, 0.917378f, 0.487447f, 0.254047f, 0.188246f, 0.64938f, 0.182407f, 0.473846f, 0.17883f, 0.0205566f, 0.48272f, 0.126721f, 0.0308788f, 0.457392f, 0.848312f, 0.812729f, 0.677913f, 0.340886f, 0.497855f, 0.728041f, 0.16448f, 0.108282f, 0.23469f, 0.711535f, 0.883408f, 0.191181f, 0.183052f, 0.646282f, 0.374632f, 0.471404f, 0.230154f, 0.445262f, 0.155405f, 0.106815f, 0.927205f, 0.876595f, 0.852655f, 0.187916f, 0.719432f, 0.964222f, 0.0317673f, 0.211245f, 0.390158f, 0.199502f, 0.764087f, 0.489397f, 0.262862f, 0.375746f, 0.766732f, 0.227395f, 0.827619f, 0.924451f, 0.964898f, 0.890601f, 0.194575f, 0.00461227f, 0.405292f, 0.828893f, 0.423598f, 0.325351f, 0.41934f, 0.316225f, 0.735053f, 0.268635f, 0.234122f, 0.302902f, 0.901617f, 0.595159f, 0.378335f, 0.794058f, 0.475479f, 0.234191f, 0.568599f, 0.862924f, 0.108729f, 0.684379f, 0.634164f, 0.627819f, 0.403464f, 0.714119f, 0.311638f, 0.558869f, 0.899291f, 0.942521f, 0.70004f, 0.281052f, 0.587603f, 0.594774f, 0.82425f, 0.402055f, 0.336297f, 0.49131f, 0.0355295f, 0.20571f, 0.0773773f, 0.0854871f, 0.590875f, 0.465248f, 0.573695f, 0.514803f, 0.0374262f, 0.634345f, 0.889226f, 0.815978f, 0.695728f, 0.586232f, 0.258294f, 0.237564f, 0.669203f, 0.586342f, 0.290764f, 0.0272068f, 0.224519f, 0.454707f, 0.312868f, 0.162063f, 0.49107f, 0.389977f, 0.825339f, 0.669316f, 0.364957f, 0.746349f, 0.937063f, 0.895906f, 0.45993f, 0.415207f, 0.777136f, 0.570434f, 0.410112f, 0.94222f, 0.337142f, 0.638576f, 0.0790274f, 0.645746f, 0.495093f, 0.0112824f, 0.457787f, 0.0427242f, 0.546968f, 0.346656f, 0.899557f, 0.375191f, 0.762052f, 0.156298f, 0.0423364f, 0.54216f, 0.901158f, 0.6859f, 0.149723f, 0.260315f, 0.429589f, 0.282768f, 0.84107f, 0.912924f, 0.105573f, 0.899135f, 0.316069f, 0.388782f, 0.214574f, 0.520231f, 0.644219f, 0.809056f, 0.164912f, 0.90789f, 0.654766f, 0.753898f, 0.715918f, 0.212526f, 0.210772f, 0.656654f, 0.555379f, 0.874011f, 0.0593176f, 0.806727f, 0.297839f, 0.8511f, 0.117454f, 0.955629f, 0.757795f, 0.0158988f, 0.333015f, 0.753903f, 0.848117f, 0.441142f, 0.458952f, 0.589017f, 0.926075f, 0.37727f, 0.771108f, 0.696034f, 0.566547f, 0.298096f, 0.860689f, 0.626973f, 0.305328f, 0.390657f, 0.407119f, 0.342068f, 0.348203f, 0.346508f, 0.522355f, 0.482273f, 0.407676f, 0.404382f, 0.30361f, 0.568368f, 0.871924f, 0.485865f, 0.26557f, 0.135717f, 0.358373f, 0.312095f, 0.663044f, 0.287236f, 0.374043f, 0.0501449f, 0.239964f, 0.52668f, 0.884362f, 0.145246f, 0.0841258f, 0.660448f, 0.821908f, 0.400395f, 0.232616f, 0.56343f, 0.290434f, 0.608942f, 0.331562f, 0.0353069f, 0.83608f, 0.509274f, 0.921468f, 0.264453f, 0.540291f, 0.652523f, 0.699866f, 0.211111f, 0.0818981f, 0.755813f, 0.590837f, 0.104546f, 0.715796f, 0.261986f, 0.73191f, 0.0513411f, 0.642299f, 0.577822f, 0.413361f, 0.415893f, 0.312461f, 0.299206f, 0.695782f, 0.722502f, 0.566072f, 0.455906f, 0.204741f, 0.381895f, 0.414785f, 0.961251f, 0.0785839f, 0.251855f, 0.297642f, 0.52355f, 0.202696f, 0.233333f, 0.816203f, 0.302117f, 0.0354591f, 0.302033f, 0.313475f, 0.480165f, 0.372702f, 0.491462f, 0.476555f, 0.938915f, 0.0948726f, 0.289336f, 0.479208f, 0.65302f, 0.820664f, 0.138595f, 0.898718f, 0.0787371f, 0.572545f, 0.0301605f, 0.712573f, 0.382798f, 0.710102f, 0.306245f, 0.288292f, 0.0149951f, 0.477971f, 0.663424f, 0.995834f, 0.30158f, 0.296989f, 0.598632f, 0.784215f, 0.765998f, 0.999818f, 0.653874f, 0.826555f, 0.179131f, 0.78748f, 0.502525f, 0.153814f, 0.638521f, 0.885808f, 0.730842f, 0.612152f, 0.237592f, 0.265346f, 0.605184f, 0.409794f, 0.958669f, 0.887942f, 0.842166f, 0.67466f, 0.217852f, 0.303594f, 0.217622f, 0.719919f, 0.294258f, 0.502798f, 0.968737f, 0.711519f, 0.146334f, 0.901055f, 0.342814f, 0.515048f, 0.156569f, 0.480063f, 0.762152f, 0.146304f, 0.91738f, 0.512755f, 0.74993f, 0.614057f, 0.498649f, 0.832608f, 0.138007f, 0.0635518f, 0.90737f, 0.984678f, 0.792356f, 0.439238f, 0.920941f, 0.467957f, 0.997167f, 0.780395f, 0.498664f, 0.830492f, 0.176103f, 0.875214f, 0.62277f, 0.645844f, 0.207281f, 0.123563f, 0.591686f, 0.780432f, 0.0129608f, 0.791339f, 0.942195f, 0.49052f, 0.49108f, 0.402874f, 0.975778f, 0.851602f, 0.539155f, 0.801932f, 0.290795f, 0.548088f, 0.573889f, 0.0428229f, 0.297403f, 0.366614f, 0.0775476f, 0.398522f, 0.15321f, 0.124954f, 0.875133f, 0.851476f, 0.0164045f, 0.963777f, 0.657369f, 0.74879f, 0.451537f, 0.519164f, 0.948713f, 0.516193f, 0.169243f, 0.885918f, 0.123151f, 0.454701f, 0.471602f, 0.918203f, 0.150973f, 0.184077f, 0.0324483f, 0.750839f, 0.993702f, 0.547591f, 0.900177f, 0.613035f, 0.911406f, 0.486874f, 0.839213f, 0.532897f, 0.205058f, 0.120355f, 0.956325f, 0.200277f, 0.995595f, 0.301477f, 0.27882f, 0.81556f, 0.682971f, 0.159015f, 0.281016f, 0.215435f, 0.665187f, 0.821636f, 0.709168f, 0.731362f, 0.355398f, 0.828751f, 0.485887f, 0.622877f, 0.832851f, 0.00500767f, 0.205263f, 0.610187f, 0.0793023f, 0.942119f, 0.965432f, 0.882908f, 0.419753f, 0.623326f, 0.559083f, 0.0768554f, 0.478461f, 0.635069f, 0.652805f, 0.563948f, 0.961552f, 0.478587f, 0.149986f, 0.781196f, 0.27784f, 0.322648f, 0.496072f, 0.445879f, 0.854785f, 0.665529f, 0.451308f, 0.423746f, 0.323325f, 0.387398f, 0.333302f, 0.548933f, 0.609913f, 0.399075f, 0.342851f, 0.703824f, 0.697605f, 0.249703f, 0.33358f, 0.208028f, 0.368541f, 0.674104f, 0.366247f, 0.711366f, 0.64422f, 0.731571f, 0.756717f, 0.182663f, 0.063741f, 0.544396f, 0.460685f, 0.681695f, 0.523088f, 0.975995f, 0.391259f, 0.269248f, 0.956278f, 0.956123f, 0.33244f, 0.284253f, 0.940698f, 0.789579f, 0.642366f, 0.869707f, 0.914349f, 0.200234f, 0.685062f, 0.366813f, 0.592963f, 0.176426f, 0.94228f, 0.990111f, 0.197891f, 0.942487f, 0.157776f, 0.851431f, 0.809682f, 0.14956f, 0.204497f, 0.606793f, 0.210414f, 0.626229f, 0.274956f, 0.0589762f, 0.542507f, 0.423364f, 0.193907f, 0.692688f, 0.130227f, 0.732838f, 0.592308f, 0.0463694f, 0.244651f, 0.196437f, 0.431101f, 0.245558f, 0.445836f, 0.423409f, 0.340895f, 0.77525f, 0.0941416f, 0.326716f, 0.956279f, 0.749079f, 0.0113159f, 0.741488f, 0.272533f, 0.740601f, 0.381669f, 0.9757f, 0.0633884f, 0.0507312f, 0.813466f, 0.312817f, 0.831893f, 0.0735946f, 0.565494f, 0.375287f, 0.923022f, 0.326449f, 0.238649f, 0.493041f, 0.717581f, 0.558414f, 0.311803f, 0.410783f, 0.820905f, 0.92364f, 0.916962f, 0.720033f, 0.553118f, 0.487445f, 0.308895f, 0.309555f, 0.43254f, 0.699058f, 0.43688f, 0.625924f, 0.698767f, 0.117668f, 0.918938f, 0.346946f, 0.0425424f, 0.944571f, 0.677862f, 0.99643f, 0.799117f, 0.194624f, 0.656236f, 0.18612f, 0.964324f, 0.490419f, 0.948009f, 0.755962f, 0.26376f, 0.431221f, 0.369431f, 0.203499f, 0.471946f, 0.102859f, 0.387421f, 0.321703f, 0.815841f, 0.209385f, 0.337212f, 0.880437f, 0.562884f, 0.702048f, 0.000459374f, 0.783616f, 0.52945f, 0.974002f, 0.445899f, 0.614568f, 0.717301f, 0.712262f, 0.804264f, 0.488487f, 0.885669f, 0.587038f, 0.653692f, 0.387325f, 0.519875f, 0.588843f, 0.715098f, 0.330496f, 0.605493f, 0.207392f, 0.856513f, 0.990133f, 0.892779f, 0.487827f, 0.515743f, 0.342204f, 0.762723f, 0.701436f, 0.112907f, 0.52613f, 0.580736f, 0.939468f, 0.810839f, 0.292307f, 0.0776587f, 0.353387f, 0.211921f, 0.983335f, 0.509046f, 0.720184f, 0.929707f, 0.962867f, 0.325599f, 0.21685f, 0.700793f, 0.610453f, 0.806198f, 0.306915f, 0.424551f, 0.535444f, 0.543655f, 0.43802f, 0.111197f, 0.520964f, 0.375032f, 0.751728f, 0.87544f, 0.0540034f, 0.540669f, 0.318817f, 0.98065f, 0.620196f, 0.969598f, 0.523801f, 0.13368f, 0.895382f, 0.967372f, 0.0376354f, 0.564836f, 0.32494f, 0.988143f, 0.718526f, 0.422607f, 0.656999f, 0.198147f, 0.268907f, 0.772404f, 0.891959f, 0.400608f, 0.244192f, 0.102446f, 0.68491f, 0.306202f, 0.757514f, 0.508371f, 0.966817f, 0.354025f, 0.98087f, 0.631283f, 0.333821f, 0.129576f, 0.00903872f, 0.219943f, 0.690989f, 0.702476f, 0.94906f, 0.589556f, 0.181258f, 0.900491f, 0.316564f, 0.0748155f, 0.315486f, 0.832598f, 0.931692f, 0.750243f, 0.324454f, 0.299902f, 0.458279f, 0.960857f, 0.42153f, 0.208215f, 0.997338f, 0.947857f, 0.022519f, 0.757379f, 0.707325f, 0.113124f, 0.352403f, 0.502426f, 0.987138f, 0.272896f, 0.203509f, 0.26698f, 0.697656f, 0.653962f, 0.308136f, 0.41509f, 0.790229f, 0.3041f, 0.421952f, 0.051838f, 0.422688f, 0.233201f, 0.762426f, 0.0997682f, 0.307766f, 0.410076f, 0.324199f, 0.183727f, 0.543223f, 0.656292f, 0.389546f, 0.906389f, 0.299238f, 0.875743f, 0.708753f, 0.661783f, 0.845525f, 0.454504f, 0.254718f, 0.400637f, 0.0231452f, 0.500626f, 0.704305f, 0.744324f, 0.112412f, 0.283358f, 0.191706f, 0.281803f, 0.747076f, 0.605198f, 0.184819f, 0.666309f, 0.799229f, 0.0776687f, 0.0802222f, 0.312765f, 0.946827f, 0.0596306f, 0.667841f, 0.884433f, 0.51361f, 0.228784f, 0.996955f, 0.692894f, 0.350533f, 0.236139f, 0.210733f, 0.0519904f, 0.565338f, 0.496377f, 0.834963f, 0.151537f, 0.675795f, 0.765246f, 0.197451f, 0.830342f, 0.705628f, 0.633288f, 0.0790493f, 0.51424f, 0.472419f, 0.336734f, 0.931291f, 0.771549f, 0.78136f, 0.0825076f, 0.865056f, 0.764332f, 0.213556f, 0.709222f, 0.0986586f, 0.472112f, 0.908587f, 0.422681f, 0.772503f, 0.0943595f, 0.0677044f, 0.511535f, 0.015377f, 0.829827f, 0.0513216f, 0.0310989f, 0.39529f, 0.408324f, 0.660395f, 0.429288f, 0.996907f, 0.557591f, 0.164672f, 0.456345f, 0.347624f, 0.599917f, 0.374569f, 0.201176f, 0.663327f, 0.297464f, 0.0500502f, 0.737515f, 0.729015f, 0.14747f, 0.946795f, 0.659139f, 0.271387f, 0.556344f, 0.816534f, 0.581452f, 0.731536f, 0.354551f, 0.791237f, 0.561444f, 0.388968f, 0.355855f, 0.490382f, 0.437563f, 0.119889f, 0.0421211f, 0.695471f, 0.53896f, 0.63328f, 0.475862f, 0.7677f, 0.155043f, 0.552161f, 0.1977f, 0.213232f, 0.902141f, 0.963417f, 0.928794f, 0.67945f, 0.741175f, 0.970789f, 0.413755f, 0.33189f, 0.179538f, 0.031885f, 0.305146f, 0.00171725f, 0.473425f, 0.928786f, 0.0217968f, 0.720502f, 0.282527f, 0.147384f, 0.505182f, 0.932958f, 0.827321f, 0.611847f, 0.295508f, 0.813456f, 0.786285f, 0.942785f, 0.0452294f, 0.0344326f, 0.934324f, 0.692599f, 0.110871f, 0.894507f, 0.116253f, 0.437586f, 0.0585453f, 0.0240826f, 0.993231f, 0.542855f, 0.501712f, 0.0721433f, 0.0994377f, 0.998065f, 0.708815f, 0.89808f, 0.533229f, 0.403015f, 0.612847f, 0.047366f, 0.148115f, 0.562168f, 0.394409f, 0.608027f, 0.0267424f, 0.290254f, 0.47847f, 0.686004f, 0.732128f, 0.42657f, 0.788678f, 0.772223f, 0.62925f, 0.759383f, 0.452272f, 0.0417733f, 0.815828f, 0.502242f, 0.777239f, 0.190182f, 0.797986f, 0.347557f, 0.270428f, 0.32897f, 0.203132f, 0.065833f, 0.192312f, 0.712893f, 0.0878632f, 0.450295f, 0.348962f, 0.324327f, 0.848166f, 0.902288f, 0.103475f, 0.0515426f, 0.120736f, 0.086399f, 0.50396f, 0.624497f, 0.108548f, 0.877673f, 0.150397f, 0.192996f, 0.414415f, 0.630816f, 0.760576f, 0.913109f, 0.359354f, 0.378046f, 0.213008f, 0.215852f, 0.758265f, 0.954744f, 0.774403f, 0.185868f, 0.722292f, 0.376673f, 0.8275f, 0.417598f, 0.829849f, 0.506043f, 0.619417f, 0.130901f, 0.906095f, 0.639795f, 0.42788f, 0.455821f, 0.0438123f, 0.501677f, 0.346877f, 0.619034f, 0.745127f, 0.567403f, 0.975417f, 0.229503f, 0.194782f, 0.603565f, 0.239533f, 0.535431f, 0.167969f, 0.113333f, 0.246095f, 0.140613f, 0.873381f, 0.911245f, 0.634745f, 0.19174f, 0.406336f, 0.20855f, 0.620873f, 0.823239f, 0.0645393f, 0.340056f, 0.765581f, 0.39219f, 0.982776f, 0.305914f, 0.919302f, 0.538892f, 0.311472f, 0.987755f, 0.778656f, 0.510709f, 0.230951f, 0.294692f, 0.43749f, 0.517912f, 0.583967f, 0.331689f, 0.358365f, 0.908121f, 0.951953f, 0.532865f, 0.487829f, 0.888651f, 0.738156f, 0.00227695f, 0.409016f, 0.29978f, 0.277166f, 0.0951966f, 0.521998f, 0.802438f, 0.217107f, 0.622685f, 0.836014f, 0.343891f, 0.882098f, 0.458475f, 0.692639f, 0.599496f, 0.839918f, 0.0620356f, 0.800176f, 0.0710426f, 0.366246f, 0.912615f, 0.846913f, 0.601073f, 0.109573f, 0.461957f, 0.0704047f, 0.502957f, 0.264197f, 0.242234f, 0.066548f, 0.562283f, 0.428924f, 0.298302f, 0.838083f, 0.782405f, 0.891001f, 0.553726f, 0.0370573f, 0.504141f, 0.152362f, 0.333185f, 0.595767f, 0.0645192f, 0.206343f, 0.645988f, 0.046566f, 0.0362076f, 0.650496f, 0.369786f, 0.0155528f, 0.186184f, 0.136588f, 0.197887f, 0.316526f, 0.205125f, 0.932632f, 0.331489f, 0.962175f, 0.220918f, 0.814224f, 0.401887f, 0.631963f, 0.935164f, 0.230002f, 0.374688f, 0.510809f, 0.553638f, 0.170291f, 0.500819f, 0.636374f, 0.681217f, 0.701833f, 0.998451f, 0.726489f, 0.430992f, 0.502006f, 0.642544f, 0.744813f, 0.993198f, 0.205778f, 0.26555f, 0.332985f, 0.190966f, 0.43116f, 0.134929f, 0.74008f, 0.218884f, 0.0331861f, 0.571262f, 0.305478f, 0.575809f, 0.0896732f, 0.996754f, 0.355575f, 0.309409f, 0.382043f, 0.165226f, 0.814685f, 0.942625f, 0.817264f, 0.439602f, 0.824015f, 0.235209f, 0.771575f, 0.216991f, 0.875284f, 0.63444f, 0.766869f, 0.714013f, 0.00575976f, 0.21631f, 0.54574f, 0.800772f, 0.262503f, 0.0049781f, 0.852463f, 0.505458f, 0.751669f, 0.544636f, 0.541515f, 0.418763f, 0.809507f, 0.357748f, 0.0707932f, 0.879101f, 0.256054f, 0.618641f, 0.0207241f, 0.987606f, 0.603628f, 0.263369f, 0.0998284f, 0.531484f, 0.287135f, 0.680079f, 0.646468f, 0.588465f, 0.612844f, 0.959933f, 0.454027f, 0.998903f, 0.0750708f, 0.484747f, 0.137809f, 0.30644f, 0.476446f, 0.764898f, 0.729106f, 0.865087f, 0.404021f, 0.566862f, 0.916184f, 0.0323896f, 0.282523f, 0.119637f, 0.228027f, 0.35099f, 0.28294f, 0.0240002f, 0.916164f, 0.511294f, 0.531937f, 0.973902f, 0.744645f, 0.198595f, 0.473359f, 0.612051f, 0.761291f, 0.0676087f, 0.0364221f, 0.769576f, 0.256146f, 0.62122f, 0.286872f, 0.749406f, 0.196533f, 0.901199f, 0.860322f, 0.0700879f, 0.521278f, 0.292573f, 0.778591f, 0.719234f, 0.648337f, 0.404644f, 0.0845634f, 0.138832f, 0.515428f, 0.159667f, 0.283869f, 0.176462f, 0.334045f, 0.857806f, 0.219812f, 0.208473f, 0.832307f, 0.54852f, 0.540312f, 0.279597f, 0.743404f, 0.805927f, 0.115561f, 0.639214f, 0.13402f, 0.144308f, 0.283228f, 0.744692f, 0.884469f, 0.843563f, 0.912334f, 0.0275226f, 0.579395f, 0.546761f, 0.495795f, 0.79755f, 0.921985f, 0.00752239f, 0.97616f, 0.0725076f, 0.434346f, 0.303505f, 0.023725f, 0.227658f, 0.277927f, 0.748995f, 0.0630237f, 0.204613f, 0.586421f, 0.244571f, 0.592176f, 0.703014f, 0.722145f, 0.439465f, 0.127182f, 0.424489f, 0.172089f, 0.226009f, 0.17294f, 0.199361f, 0.278068f, 0.79068f, 0.840652f, 0.853706f, 0.960016f, 0.614518f, 0.960822f, 0.997946f, 0.977777f, 0.339633f, 0.676073f, 0.941484f, 0.34342f, 0.829122f, 0.796571f, 0.370971f, 0.390502f, 0.900768f, 0.545817f, 0.155374f, 0.900034f, 0.613687f, 0.622225f, 0.207122f, 0.428731f, 0.347693f, 0.610224f, 0.747305f, 0.9997f, 0.574436f, 0.0225464f, 0.537181f, 0.553919f, 0.854886f, 0.63086f, 0.294037f, 0.886799f, 0.31187f, 0.596727f, 0.651751f, 0.721402f, 0.724773f, 0.938274f, 0.69281f, 0.94695f, 0.0887053f, 0.260229f, 0.0861957f, 0.214669f, 0.700685f, 0.524997f, 0.687995f, 0.683631f, 0.139977f, 0.971096f, 0.631791f, 0.347941f, 0.520404f, 0.765819f, 0.491614f, 0.113508f, 0.326125f, 0.770543f, 0.239641f, 0.239453f, 0.971334f, 0.905452f, 0.082197f, 0.933207f, 0.208841f, 0.5037f, 0.425159f, 0.585294f, 0.926005f, 0.0331262f, 0.119668f, 0.538155f, 0.733354f, 0.566248f, 0.842198f, 0.760044f, 0.410168f, 0.674897f, 0.330128f, 0.997969f, 0.954744f, 0.679404f, 0.5157f, 0.155845f, 0.743917f, 0.108803f, 0.16691f, 0.70057f, 0.114365f, 0.248203f, 0.45853f, 0.201686f, 0.297007f, 0.129577f, 0.997773f, 0.432945f, 0.277097f, 0.876064f, 0.539257f, 0.405073f, 0.596889f, 0.686738f, 0.719723f, 0.842702f, 0.647837f, 0.979422f, 0.106926f, 0.103007f, 0.539072f, 0.726352f, 0.607404f, 0.364316f, 0.135479f, 0.505432f, 0.462888f, 0.282019f, 0.660833f, 0.577395f, 0.0872616f, 0.895474f, 0.0309444f, 0.246224f, 0.326139f, 0.0961142f, 0.844835f, 0.466664f, 0.397518f, 0.166221f, 0.255632f, 0.783326f, 0.637884f, 0.180354f, 0.344443f, 0.959245f, 0.418229f, 0.242485f, 0.0763008f, 0.300853f, 0.183773f, 0.792928f, 0.9729f, 0.358994f, 0.500392f, 0.336267f, 0.745157f, 0.915073f, 0.931092f, 0.0871831f, 0.101795f, 0.487572f, 0.230753f, 0.0285775f, 0.660948f, 0.175747f, 0.13355f, 0.259681f, 0.442442f, 0.992228f, 0.451146f, 0.798398f, 0.715722f, 0.730391f, 0.0104432f, 0.0911216f, 0.646872f, 0.514239f, 0.431686f, 0.409231f, 0.449391f, 0.731215f, 0.95104f, 0.126263f, 0.289025f, 0.924131f, 0.501361f, 0.71892f, 0.704512f, 0.460507f, 0.445345f, 0.20252f, 0.619948f, 0.181668f, 0.610762f, 0.252248f, 0.364614f, 0.98668f, 0.427278f, 0.213482f, 0.0645361f, 0.605884f, 0.538641f, 0.386122f, 0.838646f, 0.877546f, 0.463743f, 0.466673f, 0.139024f, 0.39403f, 0.662316f, 0.606556f, 0.457391f, 0.1327f, 0.815707f, 0.0351553f, 0.129269f, 0.992484f, 0.134357f, 0.964223f, 0.670463f, 0.914454f, 0.278057f, 0.373945f, 0.810388f, 0.794334f, 0.769387f, 0.645876f, 0.762126f, 0.954626f, 0.0443219f, 0.682765f, 0.222122f, 0.62291f, 0.0248144f, 0.31431f, 0.749545f, 0.428863f, 0.573547f, 0.165765f, 0.329579f, 0.258269f, 0.211796f, 0.798198f, 0.775917f, 0.0498462f, 0.0225739f, 0.41106f, 0.418993f, 0.708065f, 0.798057f, 0.358689f, 0.974601f, 0.946496f, 0.748159f, 0.440356f, 0.962265f, 0.324581f, 0.558731f, 0.714919f, 0.18392f, 0.353212f, 0.590955f, 0.698877f, 0.455575f, 0.71087f, 0.213767f, 0.933595f, 0.468522f, 0.921713f, 0.486236f, 0.490256f, 0.665164f, 0.273319f, 0.370377f, 0.331048f, 0.939203f, 0.887592f, 0.121029f, 0.566328f, 0.601967f, 0.581702f, 0.920826f, 0.121328f, 0.651494f, 0.354383f, 0.839414f, 0.503693f, 0.372105f, 0.592742f, 0.438147f, 0.621782f, 0.354364f, 0.503378f, 0.871103f, 0.782457f, 0.378147f, 0.431539f, 0.0724265f, 0.985554f, 0.295643f, 0.417093f, 0.750814f, 0.610749f, 0.0368025f, 0.186401f, 0.919098f, 0.989517f, 0.675107f, 0.11146f, 0.719372f, 0.775524f, 0.60422f, 0.0053235f, 0.969482f, 0.469206f, 0.0535987f, 0.835375f, 0.279203f, 0.338218f, 0.569804f, 0.497755f, 0.636261f, 0.0337694f, 0.0218546f, 0.36575f, 0.619811f, 0.409943f, 0.0115243f, 0.809308f, 0.359385f, 0.937377f, 0.523961f, 0.658996f, 0.237549f, 0.495443f, 0.478506f, 0.932587f, 0.141647f, 0.39376f, 0.34401f, 0.457826f, 0.951581f, 0.706873f, 0.27061f, 0.950437f, 0.884162f, 0.146736f, 0.0204652f, 0.592723f, 0.056428f, 0.0783631f, 0.269389f, 0.0591661f, 0.0287375f, 0.0193022f, 0.40157f, 0.00981542f, 0.967253f, 0.564831f, 0.256039f, 0.486816f, 0.110971f, 0.5415f, 0.295467f, 0.0365363f, 0.183209f, 0.868703f, 0.592161f, 0.375432f, 0.844109f, 0.925935f, 0.0326413f, 0.634369f, 0.509423f, 0.582345f, 0.909867f, 0.156127f, 0.0352869f, 0.870373f, 0.469511f, 0.282328f, 0.570077f, 0.968871f, 0.955915f, 0.834278f, 0.890698f, 0.901735f, 0.519432f, 0.0488613f, 0.154037f, 0.287447f, 0.359883f, 0.985389f, 0.52664f, 0.0570452f, 0.851597f, 0.894827f, 0.0408393f, 0.49287f, 0.987677f, 0.886312f, 0.499923f, 0.285968f, 0.314708f, 0.485444f, 0.741816f, 0.290477f, 0.733859f, 0.236378f, 0.256612f, 0.155221f, 0.782483f, 0.73168f, 0.87311f, 0.879609f, 0.884024f, 0.677188f, 0.955055f, 0.692199f, 0.352102f, 0.691087f, 0.988245f, 0.322867f, 0.0380597f, 0.77284f, 0.203456f, 0.730323f, 0.761791f, 0.400378f, 0.874002f, 0.547934f, 0.953313f, 0.219876f, 0.100409f, 0.768741f, 0.635169f, 0.82405f, 0.0826316f, 0.34113f, 0.022735f, 0.370105f, 0.137198f, 0.155422f, 0.727368f, 0.463257f, 0.969237f, 0.145959f, 0.233517f, 0.362324f, 0.669382f, 0.558766f, 0.68986f, 0.57231f, 0.498823f, 0.736345f, 0.576362f, 0.50987f, 0.666443f, 0.651084f, 0.706354f, 0.805967f, 0.141184f, 0.205241f, 0.0468586f, 0.717799f, 0.30578f, 0.692125f, 0.916982f, 0.513778f, 0.818624f, 0.0158147f, 0.188299f, 0.919569f, 0.312238f, 0.165987f, 0.693178f, 0.559865f, 0.366556f, 0.370438f, 0.315617f, 0.46419f, 0.0519459f, 0.31128f, 0.528658f, 0.0779606f, 0.474219f, 0.547363f, 0.999653f, 0.485361f, 0.222646f, 0.0112261f, 0.16428f, 0.648535f, 0.653179f, 0.193476f, 0.98362f, 0.466786f, 0.841197f, 0.0880118f, 0.849756f, 0.663088f, 0.605092f, 0.878049f, 0.405664f, 0.523132f, 0.968847f, 0.637803f, 0.827179f, 0.649504f, 0.080405f, 0.557131f, 0.380966f, 0.654977f, 0.953605f, 0.634304f, 0.255329f, 0.580189f, 0.28379f, 0.34013f, 0.69615f, 0.152203f, 0.162791f, 0.907203f, 0.104816f, 0.164774f, 0.404359f, 0.640923f, 0.731013f, 0.841513f, 0.0663143f, 0.424773f, 0.379522f, 0.524056f, 0.182205f, 0.0263843f, 0.429137f, 0.611556f, 0.289765f, 0.690918f, 0.499398f, 0.191333f, 0.990329f, 0.602522f, 0.591796f, 0.265113f, 0.99066f, 0.559795f, 0.202085f, 0.210071f, 0.600537f, 0.619323f, 0.889541f, 0.905362f, 0.09818f, 0.787055f, 0.878502f, 0.916668f, 0.420763f, 0.271097f, 0.378082f, 0.233722f, 0.957123f, 0.172673f, 0.664395f, 0.141372f, 0.163182f, 0.553433f, 0.39348f, 0.985466f, 0.408348f, 0.533142f, 0.432394f, 0.437719f, 0.775577f, 0.934864f, 0.328533f, 0.767522f, 0.427572f, 0.385896f, 0.529203f, 0.141147f, 0.303762f, 0.870935f, 0.00144801f, 0.524013f, 0.0421703f, 0.47047f, 0.100445f, 0.585934f, 0.354223f, 0.0834647f, 0.913464f, 0.581204f, 0.627656f, 0.440589f, 0.99519f, 0.726606f, 0.230397f, 0.451295f, 0.591147f, 0.315129f, 0.212771f, 0.986914f, 0.597935f, 0.639038f, 0.171403f, 0.884961f, 0.85331f, 0.0958421f, 0.556571f, 0.541104f, 0.931672f, 0.768871f, 0.883653f, 0.2884f, 0.607495f, 0.370771f, 0.0263914f, 0.221665f, 0.579561f, 0.0560537f, 0.688331f, 0.000530883f, 0.763235f, 0.113872f, 0.670869f, 0.382168f, 0.951064f, 0.230139f, 0.0884889f, 0.829555f, 0.493269f, 0.517877f, 0.101586f, 0.953319f, 0.785498f, 0.0463504f, 0.375515f, 0.105873f, 0.838429f, 0.639821f, 0.277366f, 0.193883f, 0.450743f, 0.84173f, 0.188137f, 0.65757f, 0.570521f, 0.561549f, 0.982546f, 0.268574f, 0.0361614f, 0.239571f, 0.861502f, 0.919403f, 0.649889f, 0.876869f, 0.514662f, 0.110274f, 0.237857f, 0.44978f, 0.852857f, 0.290724f, 0.73828f, 0.762216f, 0.693903f, 0.131173f, 0.0502922f, 0.017719f, 0.141964f, 0.37693f, 0.758384f, 0.453515f, 0.961074f, 0.906867f, 0.597192f, 0.0880735f, 0.0932788f, 0.0197004f, 0.327367f, 0.733527f, 0.957174f, 0.478613f, 0.141557f, 0.125371f, 0.0670994f, 0.609486f, 0.0344699f, 0.955827f, 0.312528f, 0.790934f, 0.719149f, 0.774618f, 0.124207f, 0.989422f, 0.347883f, 0.431302f, 0.524219f, 0.122455f, 0.732618f, 0.568935f, 0.695886f, 0.934012f, 0.152918f, 0.265866f, 0.0329838f, 0.995673f, 0.26983f, 0.800392f, 0.555461f, 0.340995f, 0.489039f, 0.277231f, 0.781677f, 0.10935f, 0.187688f, 0.26424f, 0.761925f, 0.89656f, 0.697504f, 0.363112f, 0.793524f, 0.125838f, 0.694469f, 0.768287f, 0.184716f, 0.957278f, 0.685834f, 0.0891029f, 0.432854f, 0.229721f, 0.541634f, 0.636061f, 0.363804f, 0.0615026f, 0.852762f, 0.234804f, 0.124602f, 0.463749f, 0.583845f, 0.21873f, 0.358247f, 0.554411f, 0.519895f, 0.952891f, 0.492718f, 0.675224f, 0.732572f, 0.598998f, 0.40537f, 0.429348f, 0.797104f, 0.212902f, 0.257982f, 0.309314f, 0.895807f, 0.207998f, 0.0374725f, 0.693981f, 0.293132f, 0.564519f, 0.0386697f, 0.286437f, 0.890079f, 0.555628f, 0.952875f, 0.7022f, 0.710103f, 0.295732f, 0.947625f, 0.655212f, 0.454f, 0.750466f, 0.495312f, 0.915f, 0.177233f, 0.792406f, 0.325984f, 0.698772f, 0.995777f, 0.462132f, 0.530278f, 0.451316f, 0.266119f, 0.429365f, 0.576811f, 0.599757f, 0.38522f, 0.0168795f, 0.821437f, 0.195268f, 0.904495f, 0.795734f, 0.504767f, 0.342887f, 0.16251f, 0.809289f, 0.141759f, 0.560768f, 0.876467f, 0.107043f, 0.910884f, 0.490546f, 0.525436f, 0.986358f, 0.367851f, 0.121117f, 0.199685f, 0.0494851f, 0.204553f, 0.33997f, 0.26258f, 0.443446f, 0.535725f, 0.392264f, 0.0102544f, 0.821591f, 0.00237562f, 0.335985f, 0.988922f, 0.140888f, 0.752345f, 0.0470223f, 0.668686f, 0.954664f, 0.751732f, 0.893064f, 0.301303f, 0.239239f, 0.461059f, 0.725767f, 0.806086f, 0.854317f, 0.5304f, 0.0725539f, 0.784497f, 0.547176f, 0.13796f, 0.468485f, 0.560381f, 0.604325f, 0.979507f, 0.416763f, 0.477392f, 0.978413f, 0.0129352f, 0.395437f, 0.630093f, 0.523866f, 0.0329022f, 0.7092f, 0.917279f, 0.721076f, 0.587595f, 0.768258f, 0.805407f, 0.965405f, 0.435104f, 0.308071f, 0.358265f, 0.944223f, 0.611082f, 0.704231f, 0.963482f, 0.0616783f, 0.855464f, 0.561312f, 0.600447f, 0.305126f, 0.84011f, 0.9094f, 0.553137f, 0.0964839f, 0.174591f, 0.934101f, 0.531598f, 0.424645f, 0.217711f, 0.296364f, 0.0409469f, 0.80714f, 0.612858f, 0.457655f, 0.837201f, 0.455085f, 0.0633057f, 0.088044f, 0.656438f, 0.668495f, 0.219115f, 0.405178f, 0.92651f, 0.195594f, 0.196805f, 0.486918f, 0.746504f, 0.528198f, 0.881192f, 0.148688f, 0.0588538f, 0.980801f, 0.639967f, 0.0963921f, 0.940596f, 0.567153f, 0.916391f, 0.132241f, 0.75758f, 0.833991f, 0.255245f, 0.835937f, 0.91713f, 0.900663f, 0.54841f, 0.788422f, 0.207004f, 0.0122745f, 0.696936f, 0.276365f, 0.0921305f, 0.372153f, 0.289798f, 0.354533f, 0.66541f, 0.719798f, 0.892655f, 0.691821f, 0.158771f, 0.391436f, 0.961205f, 0.229076f, 0.517206f, 0.70443f, 0.955892f, 0.673987f, 0.345913f, 0.947138f, 0.332982f, 0.470211f, 0.0789133f, 0.699266f, 0.595584f, 0.714101f, 0.531917f, 0.654689f, 0.0830353f, 0.929533f, 0.77689f, 0.395469f, 0.738087f, 0.614115f, 0.383841f, 0.0892102f, 0.930917f, 0.026924f, 0.148354f, 0.593354f, 0.587583f, 0.836964f, 0.275544f, 0.374362f, 0.994229f, 0.281204f, 0.678332f, 0.335057f, 0.327262f, 0.179402f, 0.120084f, 0.387661f, 0.130125f, 0.46928f, 0.168189f, 0.475752f, 0.0491798f, 0.192861f, 0.660905f, 0.327744f, 0.220833f, 0.33993f, 0.730424f, 0.0926077f, 0.432199f, 0.584865f, 0.248809f, 0.884808f, 0.295352f, 0.432771f, 0.108191f, 0.812276f, 0.842286f, 0.578389f, 0.676405f, 0.0438432f, 0.667044f, 0.350506f, 0.642416f, 0.127809f, 0.361473f, 0.386797f, 0.638381f, 0.834927f, 0.894648f, 0.047081f, 0.945455f, 0.768864f, 0.625907f, 0.411053f, 0.366987f, 0.736365f, 0.770482f, 0.721603f, 0.105652f, 0.356595f, 0.455968f, 0.324094f, 0.64266f, 0.557477f, 0.70733f, 0.856852f, 0.437905f, 0.968905f, 0.709853f, 0.636114f, 0.0656424f, 0.698599f, 0.0163767f, 0.0795992f, 0.749982f, 0.581594f, 0.0975152f, 0.9089f, 0.45852f, 0.408901f, 0.651383f, 0.0822779f, 0.836105f, 0.173849f, 0.424383f, 0.0234746f, 0.921112f, 0.040811f, 0.0759405f, 0.485741f, 0.52121f, 0.355386f, 0.926052f, 0.181826f, 0.30377f, 0.941976f, 0.95971f, 0.830878f, 0.292631f, 0.856022f, 0.581403f, 0.347075f, 0.710355f, 0.194496f, 0.789651f, 0.0972559f, 0.658947f, 0.49509f, 0.530718f, 0.535513f, 0.800662f, 0.106724f, 0.0886827f, 0.6503f, 0.948656f, 0.30601f, 0.550014f, 0.495767f, 0.285114f, 0.561632f, 0.525229f, 0.150295f, 0.858642f, 0.304058f, 0.3444f, 0.593324f, 0.0674996f, 0.974289f, 0.751881f, 0.867504f, 0.496053f, 0.0249461f, 0.881343f, 0.255988f, 0.567881f, 0.286744f, 0.391873f, 0.213207f, 0.42003f, 0.322785f, 0.0545056f, 0.812156f, 0.521479f, 0.0131528f, 0.904396f, 0.294556f, 0.591013f, 0.898646f, 0.705362f, 0.736616f, 0.438744f, 0.976117f, 0.542808f, 0.683477f, 0.785221f, 0.789859f, 0.482724f, 0.846109f, 0.944255f, 0.0918593f, 0.509805f, 0.327315f, 0.930139f, 0.0844249f, 0.544293f, 0.241036f, 0.712018f, 0.861089f, 0.214794f, 0.114647f, 0.568504f, 0.641023f, 0.749465f, 0.421019f, 0.790446f, 0.231891f, 0.219589f, 0.135377f, 0.207071f, 0.437452f, 0.530619f, 0.150124f, 0.896802f, 0.843331f, 0.639401f, 0.508767f, 0.907281f, 0.236526f, 0.103391f, 0.722656f, 0.270883f, 0.00526338f, 0.753016f, 0.881599f, 0.282624f, 0.967756f, 0.211178f, 0.19713f, 0.186052f, 0.450799f, 0.883309f, 0.715028f, 0.491312f, 0.270213f, 0.784341f, 0.876818f, 0.462363f, 0.645861f, 0.30365f, 0.726425f, 0.0850515f, 0.685352f, 0.532666f, 0.470819f, 0.932496f, 0.94819f, 0.513388f, 0.911458f, 0.596679f, 0.520154f, 0.47787f, 0.326133f, 0.685435f, 0.0874477f, 0.285027f, 0.136082f, 0.810023f, 0.60069f, 0.818495f, 0.28603f, 0.406306f, 0.0927686f, 0.326538f, 0.975186f, 0.318257f, 0.0757217f, 0.275155f, 0.17117f, 0.740422f, 0.573987f, 0.748141f, 0.443699f, 0.935381f, 0.601052f, 0.0418846f, 0.878326f, 0.217061f, 0.0981728f, 0.58808f, 0.948826f, 0.547458f, 0.0465522f, 0.847922f, 0.99061f, 0.923358f, 0.906015f, 0.850834f, 0.892246f, 0.921648f, 0.066566f, 0.461191f, 0.465599f, 0.717356f, 0.0347364f, 0.631967f, 0.734621f, 0.579385f, 0.890705f, 0.540239f, 0.492844f, 0.807834f, 0.921383f, 0.809126f, 0.315515f, 0.646601f, 0.611443f, 0.594705f, 0.853509f, 0.348828f, 0.430188f, 0.957612f, 0.196061f, 0.523718f, 0.469192f, 0.0806763f, 0.874672f, 0.0198086f, 0.485019f, 0.918249f, 0.918366f, 0.850406f, 0.53594f, 0.862073f, 0.821116f, 0.249198f, 0.934817f, 0.629983f, 0.40828f, 0.153033f, 0.0810286f, 0.231719f, 0.204541f, 0.200261f, 0.911439f, 0.377936f, 0.474523f, 0.511993f, 0.325127f, 0.767908f, 0.583156f, 0.76049f, 0.93169f, 0.115439f, 0.687285f, 0.170706f, 0.0405119f, 0.579923f, 0.865023f, 0.220679f, 0.917032f, 0.382647f, 0.702412f, 0.41282f, 0.274478f, 0.866148f, 0.183507f, 0.57446f, 0.375441f, 0.45569f, 0.208625f, 0.14938f, 0.0611816f, 0.243342f, 0.560659f, 0.944514f, 0.404453f, 0.0324093f, 0.332591f, 0.898494f, 0.171232f, 0.369558f, 0.795901f, 0.689747f, 0.261825f, 0.720138f, 0.579142f, 0.959401f, 0.537123f, 0.910328f, 0.496331f, 0.632759f, 0.924125f, 0.411323f, 0.332008f, 0.8967f, 0.832014f, 0.776114f, 0.711136f, 0.673534f, 0.0745876f, 0.471501f, 0.195611f, 0.612842f, 0.0282559f, 0.823752f, 0.976105f, 0.932805f, 0.760794f, 0.0621428f, 0.628563f, 0.584414f, 0.768426f, 0.449936f, 0.705981f, 0.977829f, 0.450984f, 0.0627631f, 0.464332f, 0.0233331f, 0.312305f, 0.291767f, 0.258894f, 0.817472f, 0.563718f, 0.137744f, 0.865692f, 0.0516371f, 0.755392f, 0.0605751f, 0.0490613f, 0.626908f, 0.654016f, 0.926472f, 0.913711f, 0.793858f, 0.605462f, 0.668132f, 0.150249f, 0.938324f, 0.892364f, 0.361715f, 0.354309f, 0.275277f, 0.292327f, 0.263327f, 0.246885f, 0.053911f, 0.344328f, 0.769497f, 0.117803f, 0.401169f, 0.446425f, 0.617244f, 0.808714f, 0.5676f, 0.923967f, 0.41764f, 0.510277f, 0.287133f, 0.134195f, 0.766656f, 0.0675931f, 0.0816631f, 0.318533f, 0.685589f, 0.591801f, 0.251821f, 0.168309f, 0.260068f, 0.839235f, 0.915906f, 0.850297f, 0.66456f, 0.685349f, 0.266596f, 0.785865f, 0.316785f, 0.294974f, 0.611602f, 0.94221f, 0.765787f, 0.734532f, 0.454038f, 0.522938f, 0.96581f, 0.349161f, 0.194434f, 0.234143f, 0.794695f, 0.762943f, 0.0179404f, 0.583041f, 0.93006f, 0.676737f, 0.286451f, 0.651952f, 0.76715f, 0.994021f, 0.39291f, 0.067219f, 0.326723f, 0.142595f, 0.173758f, 0.43416f, 0.647532f, 0.155302f, 0.00369675f, 0.258427f, 0.969955f, 0.268434f, 0.714482f, 0.420572f, 0.0461504f, 0.73216f, 0.495917f, 0.274553f, 0.3161f, 0.734696f, 0.394434f, 0.35067f, 0.268173f, 0.546141f, 0.981829f, 0.787362f, 0.0957461f, 0.251503f, 0.839941f, 0.165754f, 0.122106f, 0.407269f, 0.465419f, 0.855948f, 0.538086f, 0.0458484f, 0.594903f, 0.363308f, 0.357769f, 0.301892f, 0.825676f, 0.162865f, 0.962774f, 0.546735f, 0.468579f, 0.0618353f, 0.642104f, 0.979241f, 0.670648f, 0.69273f, 0.253065f, 0.16028f, 0.700921f, 0.95779f, 0.415338f, 0.901947f, 0.29087f, 0.714962f, 0.519017f, 0.984094f, 0.951783f, 0.900632f, 0.981329f, 0.894282f, 0.529182f, 0.378445f, 0.56871f, 0.0689003f, 0.0399039f, 0.529544f, 0.877385f, 0.77251f, 0.377698f, 0.597938f, 0.460408f, 0.784951f, 0.740924f, 0.00140497f, 0.698268f, 0.0734738f, 0.889424f, 0.0381724f, 0.249256f, 0.192611f, 0.68401f, 0.903465f, 0.926387f, 0.541491f, 0.383938f, 0.661396f, 0.545428f, 0.463807f, 0.533043f, 0.289835f, 0.737829f, 0.0166068f, 0.47506f, 0.0718027f, 0.261786f, 0.265741f, 0.0532142f, 0.353357f, 0.306935f, 0.984029f, 0.214661f, 0.675077f, 0.325474f, 0.0362308f, 0.417308f, 0.965288f, 0.985633f, 0.316755f, 0.0538064f, 0.864297f, 0.233185f, 0.974441f, 0.822031f, 0.76036f, 0.580201f, 0.101086f, 0.292477f, 0.455895f, 0.21985f, 0.66523f, 0.545336f, 0.555505f, 0.748404f, 0.362257f, 0.0125992f, 0.975642f, 0.924374f, 0.300842f, 0.373651f, 0.237157f, 0.352575f, 0.933896f, 0.150759f, 0.286007f, 0.954847f, 0.833998f, 0.0443636f, 0.889021f, 0.644727f, 0.172689f, 0.73169f, 0.710619f, 0.558868f, 0.483938f, 0.280546f, 0.70036f, 0.987537f, 0.338002f, 0.749245f, 0.765183f, 0.601736f, 0.463893f, 0.435195f, 0.268802f, 0.765699f, 0.235015f, 0.610494f, 0.115031f, 0.701436f, 0.804844f, 0.996034f, 0.977349f, 0.982549f, 0.56652f, 0.974234f, 0.0909494f, 0.602784f, 0.709772f, 0.178061f, 0.0478865f, 0.372929f, 0.905772f, 0.833844f, 0.773746f, 0.589488f, 0.592565f, 0.713169f, 0.154453f, 0.519199f, 0.516459f, 0.814036f, 0.828599f, 0.237314f, 0.346486f, 0.619685f, 0.677282f, 0.832089f, 0.160742f, 0.58959f, 0.367144f, 0.877192f, 0.401572f, 0.068229f, 0.0901807f, 0.62183f, 0.447372f, 0.100731f, 0.0367002f, 0.830608f, 0.785898f, 0.326059f, 0.776924f, 0.367243f, 0.523875f, 0.652359f, 0.823244f, 0.345527f, 0.850052f, 0.177941f, 0.570479f, 0.979535f, 0.315231f, 0.343327f, 0.820243f, 0.643288f, 0.841785f, 0.272791f, 0.598479f, 0.488962f, 0.896656f, 0.716403f, 0.888622f, 0.869405f, 0.520231f, 0.205996f, 0.445072f, 0.190542f, 0.5427f, 0.525401f, 0.290195f, 0.675408f, 0.491442f, 0.477095f, 0.212288f, 0.119685f, 0.307718f, 0.298429f, 0.0103334f, 0.40656f, 0.203992f, 0.737477f, 0.140582f, 0.0138539f, 0.696118f, 0.270023f, 0.710319f, 0.624232f, 0.956015f, 0.73854f, 0.214321f, 0.899826f, 0.155828f, 0.0456123f, 0.193526f, 0.16787f, 0.951217f, 0.714801f, 0.563744f, 0.316542f, 0.460755f, 0.36157f, 0.536868f, 0.123611f, 0.611604f, 0.0805006f, 0.593761f, 0.463433f, 0.578698f, 0.981508f, 0.285077f, 0.568689f, 0.122225f, 0.810219f, 0.421639f, 0.529817f, 0.814263f, 0.721685f, 0.26282f, 0.983978f, 0.852334f, 0.834045f, 0.31579f, 0.590571f, 0.776926f, 0.717894f, 0.325214f, 0.914004f, 0.571561f, 0.962669f, 0.872205f, 0.715484f, 0.141387f, 0.898256f, 0.245442f, 0.00690491f, 0.264613f, 0.563598f, 0.84102f, 0.508624f, 0.181626f, 0.173448f, 0.735778f, 0.305023f, 0.415642f, 0.248116f, 0.114118f, 0.511834f, 0.69202f, 0.414072f, 0.973577f, 0.376243f, 0.699143f, 0.656045f, 0.221311f, 0.112149f, 0.327161f, 0.441988f, 0.628914f, 0.463092f, 0.721788f, 0.614185f, 0.177694f, 0.742627f, 0.431882f, 0.0890311f, 0.507928f, 0.100382f, 0.296299f, 0.636947f, 0.291389f, 0.364851f, 0.668439f, 0.879033f, 0.344257f, 0.609353f, 0.415145f, 0.215987f, 0.753769f, 0.769825f, 0.427056f, 0.880189f, 0.77748f, 0.318549f, 0.566751f, 0.681715f, 0.703175f, 0.394852f, 0.189239f, 0.221894f, 0.52115f, 0.0926394f, 0.420422f, 0.308635f, 0.716731f, 0.434997f, 0.751326f, 0.137572f, 0.945996f, 0.203424f, 0.0646801f, 0.636693f, 0.239542f, 0.240282f, 0.418196f, 0.0572711f, 0.0709934f, 0.349739f, 0.295569f, 0.345298f, 0.756442f, 0.356749f, 0.475677f, 0.212771f, 0.803339f, 0.657724f, 0.0995816f, 0.863861f, 0.34778f, 0.419936f, 0.361357f, 0.238835f, 0.620249f, 0.316184f, 0.182584f, 0.494993f, 0.631117f, 0.393286f, 0.833995f, 0.98722f, 0.835306f, 0.0729873f, 0.149028f, 0.322858f, 0.219534f, 0.443027f, 0.894205f, 0.999529f, 0.914801f, 0.63717f, 0.478458f, 0.799458f, 0.992817f, 0.843361f, 0.868118f, 0.0456673f, 0.761873f, 0.903886f, 0.662665f, 0.755355f, 0.847703f, 0.973704f, 0.186082f, 0.974756f, 0.303198f, 0.952711f, 0.45242f, 0.159349f, 0.780025f, 0.355679f, 0.574793f, 0.0102476f, 0.752373f, 0.246213f, 0.00751543f, 0.243853f, 0.828987f, 0.927389f, 0.000967662f, 0.215161f, 0.906265f, 0.257344f, 0.117601f, 0.30718f, 0.169319f, 0.404844f, 0.360279f, 0.683556f, 0.57955f, 0.385579f, 0.274966f, 0.0336187f, 0.266425f, 0.751518f, 0.21888f, 0.177437f, 0.98156f, 0.0279228f, 0.235836f, 0.994914f, 0.937093f, 0.0218233f, 0.283259f, 0.941252f, 0.365088f, 0.43569f, 0.426335f, 0.150931f, 0.0249422f, 0.659588f, 0.469616f, 0.841131f, 0.321451f, 0.0960266f, 0.111795f, 0.0411948f, 0.666625f, 0.159542f, 0.102567f, 0.0382657f, 0.802677f, 0.813833f, 0.775476f, 0.982349f, 0.420094f, 0.549191f, 0.343159f, 0.0776193f, 0.956408f, 0.254944f, 0.567026f, 0.0243003f, 0.0329019f, 0.210384f, 0.27898f, 0.727169f, 0.592041f, 0.314954f, 0.839651f, 0.707783f, 0.559892f, 0.784291f, 0.977474f, 0.486061f, 0.453918f, 0.5327f, 0.646156f, 0.606962f, 0.426937f, 0.444103f, 0.260286f, 0.337848f, 0.430102f, 0.598767f, 0.784523f, 0.242006f, 0.472945f, 0.0433889f, 0.06967f, 0.236836f, 0.548881f, 0.883244f, 0.451034f, 0.86139f, 0.620741f, 0.406395f, 0.442029f, 0.854033f, 0.0424505f, 0.127542f, 0.0737809f, 0.739017f, 0.749057f, 0.767756f, 0.624435f, 0.0685933f, 0.0363357f, 0.785819f, 0.94934f, 0.618505f, 0.167897f, 0.610146f, 0.906818f, 0.464915f, 0.94703f, 0.215139f, 0.196322f, 0.884601f, 0.184787f, 0.0147347f, 0.695557f, 0.882105f, 0.938693f, 0.69243f, 0.277382f, 0.470088f, 0.0651881f, 0.0809175f, 0.0210149f, 0.27701f, 0.208657f, 0.712748f, 0.835842f, 0.539177f, 0.794017f, 0.979136f, 0.463491f, 0.46603f, 0.272159f, 0.0587519f, 0.343745f, 0.0594342f, 0.11452f, 0.13373f, 0.249941f, 0.866703f, 0.718719f, 0.634638f, 0.238383f, 0.422729f, 0.508818f, 0.0343279f, 0.211444f, 0.726286f, 0.364323f, 0.673365f, 0.90412f, 0.143546f, 0.0870725f, 0.518883f, 0.238802f, 0.994439f, 0.724867f, 0.0577984f, 0.0638713f, 0.918263f, 0.00591694f, 0.709488f, 0.199183f, 0.582836f, 0.0810226f, 0.776759f, 0.747521f, 0.553668f, 0.301735f, 0.109321f, 0.00419767f, 0.930506f, 0.661101f, 0.577049f, 0.272885f, 0.114674f, 0.299321f, 0.101196f, 0.884958f, 0.523925f, 0.330126f, 0.303359f, 0.404469f, 0.0285216f, 0.742822f, 0.36941f, 0.711034f, 0.605484f, 0.201626f, 0.582907f, 0.789505f, 0.729289f, 0.953198f, 0.961727f, 0.298915f, 0.0811433f, 0.092407f, 0.712373f, 0.100408f, 0.859939f, 0.231836f, 0.369344f, 0.27811f, 0.86206f, 0.0686547f, 0.871463f, 0.00279706f, 0.402605f, 0.88835f, 0.109759f, 0.84698f, 0.287661f, 0.446631f, 0.360749f, 0.637728f, 0.339026f, 0.0748655f, 0.295142f, 0.311845f, 0.081733f, 0.670569f, 0.23095f, 0.00812294f, 0.00117778f, 0.148767f, 0.445743f, 0.845989f, 0.990733f, 0.741713f, 0.322031f, 0.287333f, 0.879225f, 0.631874f, 0.37337f, 0.512687f, 0.126233f, 0.677371f, 0.0669676f, 0.994743f, 0.46719f, 0.278884f, 0.769474f, 0.116861f, 0.489663f, 0.148669f, 0.259306f, 0.00307888f, 0.319387f, 0.329526f, 0.903629f, 0.00739835f, 0.660976f, 0.457794f, 0.720988f, 0.933501f, 0.70156f, 0.825779f, 0.0104466f, 0.723503f, 0.994294f, 0.80497f, 0.0837229f, 0.0371602f, 0.518077f, 0.341169f, 0.898467f, 0.4119f, 0.974203f, 0.528178f, 0.275806f, 0.558864f, 0.590083f, 0.36069f, 0.5985f, 0.550322f, 0.00322284f, 0.964272f, 0.692101f, 0.295236f, 0.598529f, 0.416191f, 0.880071f, 0.320906f, 0.928028f, 0.735064f, 0.268047f, 0.388567f, 0.736775f, 0.883189f, 0.121597f, 0.650398f, 0.614589f, 0.606027f, 0.298794f, 0.274833f, 0.401772f, 0.645119f, 0.343854f, 0.61125f, 0.40705f, 0.28375f, 0.18865f, 0.0334682f, 0.715168f, 0.883912f, 0.902918f, 0.349881f, 0.950771f, 0.915172f, 0.604889f, 0.191305f, 0.207965f, 0.674039f, 0.472276f, 0.792574f, 0.0424723f, 0.845108f, 0.71869f, 0.986904f, 0.484774f, 0.0673107f, 0.53096f, 0.40897f, 0.428653f, 0.690819f, 0.417753f, 0.38642f, 0.650099f, 0.472372f, 0.0180191f, 0.322664f, 0.73082f, 0.632719f, 0.460792f, 0.794263f, 0.0748028f, 0.661996f, 0.976789f, 0.544277f, 0.121436f, 0.578298f, 0.620466f, 0.748716f, 0.291072f, 0.911739f, 0.0700601f, 0.63404f, 0.106162f, 0.0312323f, 0.891399f, 0.572174f, 0.443902f, 0.462337f, 0.945991f, 0.39687f, 0.375296f, 0.325718f, 0.795836f, 0.19911f, 0.585768f, 0.390344f, 0.381199f, 0.364747f, 0.0326072f, 0.470277f, 0.306731f, 0.250549f, 0.931713f, 0.963179f, 0.470011f, 0.339578f, 0.835582f, 0.63943f, 0.0303026f, 0.277513f, 0.474861f, 0.89772f, 0.298515f, 0.990435f, 0.304965f, 0.422295f, 0.39287f, 0.161606f, 0.789675f, 0.123178f, 0.941126f, 0.277487f, 0.507002f, 0.680308f, 0.857293f, 0.44714f, 0.824616f, 0.017484f, 0.477551f, 0.058476f, 0.984209f, 0.508838f, 0.247145f, 0.37202f, 0.552131f, 0.769f, 0.20338f, 0.661238f, 0.99676f, 0.348304f, 0.297804f, 0.894703f, 0.508963f, 0.0230383f, 0.0835866f, 0.0690568f, 0.295055f, 0.149184f, 0.17607f, 0.547003f, 0.0141352f, 0.618915f, 0.654163f, 0.356946f, 0.0135127f, 0.814264f, 0.486929f, 0.753879f, 0.356074f, 0.969044f, 0.0302966f, 0.959771f, 0.998317f, 0.632366f, 0.00700747f, 0.839543f, 0.571449f, 0.100513f, 0.702013f, 0.728682f, 0.180028f, 0.69867f, 0.74286f, 0.153003f, 0.953248f, 0.451781f, 0.170989f, 0.471099f, 0.90267f, 0.0117114f, 0.721415f, 0.745257f, 0.677499f, 0.849621f, 0.117456f, 0.486243f, 0.297787f, 0.333589f, 0.538246f, 0.659511f, 0.983609f, 0.0277514f, 0.246375f, 0.0891166f, 0.325694f, 0.993423f, 0.794188f, 0.347804f, 0.167151f, 0.719761f, 0.917062f, 0.617931f, 0.234647f, 0.181319f, 0.416131f, 0.537011f, 0.917685f, 0.579161f, 0.451282f, 0.35259f, 0.37269f, 0.217509f, 0.0594936f, 0.100888f, 0.890128f, 0.471953f, 0.36669f, 0.032169f, 0.480751f, 0.374217f, 0.627174f, 0.163406f, 0.584003f, 0.595819f, 0.231716f, 0.99713f, 0.658608f, 0.877558f, 0.982247f, 0.93675f, 0.402589f, 0.323494f, 0.736381f, 0.969406f, 0.424023f, 0.19835f, 0.723081f, 0.46446f, 0.315328f, 0.482378f, 0.040066f, 0.0948702f, 0.494517f, 0.401831f, 0.864262f, 0.622606f, 0.45558f, 0.592151f, 0.221398f, 0.234553f, 0.419324f, 0.0279188f, 0.521746f, 0.298299f, 0.810423f, 0.197255f, 0.678615f, 0.707791f, 0.120415f, 0.0367126f, 0.401109f, 0.708377f, 0.316304f, 0.652421f, 0.0174278f, 0.724053f, 0.47594f, 0.891617f, 0.878212f, 0.839345f, 0.377355f, 0.594664f, 0.440637f, 0.25196f, 0.22677f, 0.429425f, 0.4201f, 0.361566f, 0.243301f, 0.946008f, 0.093391f, 0.895967f, 0.110418f, 0.120055f, 0.575129f, 0.753429f, 0.304101f, 0.19964f, 0.570396f, 0.983574f, 0.988702f, 0.883311f, 0.80188f, 0.233527f, 0.634443f, 0.261782f, 0.979174f, 0.134869f, 0.765734f, 0.532329f, 0.0429464f, 0.408526f, 0.924187f, 0.350389f, 0.73086f, 0.462601f, 0.714236f, 0.992274f, 0.439305f, 0.806862f, 0.290555f, 0.29422f, 0.973654f, 0.0324598f, 0.550384f, 0.852523f, 0.494517f, 0.358827f, 0.659189f, 0.0456365f, 0.2858f, 0.109651f, 0.915952f, 0.0814468f, 0.0690716f, 0.574275f, 0.993968f, 0.853809f, 0.345226f, 0.187669f, 0.328723f, 0.567144f, 0.448212f, 0.817997f, 0.105359f, 0.584556f, 0.190573f, 0.0355504f, 0.990292f, 0.619409f, 0.183897f, 0.826743f, 0.885364f, 0.972115f, 0.949095f, 0.0520858f, 0.381193f, 0.762117f, 0.64437f, 0.105142f, 0.679353f, 0.717334f, 0.912706f, 0.0658206f, 0.693812f, 0.0166813f, 0.51631f, 0.520799f, 0.0187077f, 0.338061f, 0.958623f, 0.747098f, 0.70519f, 0.417181f, 0.427818f, 0.415098f, 0.714567f, 0.985927f, 0.0210712f, 0.461272f, 0.354264f, 0.265013f, 0.519558f, 0.116331f, 0.535868f, 0.352515f, 0.151883f, 0.197769f, 0.0134653f, 0.191709f, 0.991597f, 0.487075f, 0.116496f, 0.653735f, 0.244293f, 0.504451f, 0.624997f, 0.575076f, 0.547174f, 0.0165865f, 0.968418f, 0.531341f, 0.535861f, 0.680424f, 0.532573f, 0.950493f, 0.602586f, 0.155387f, 0.350366f, 0.960529f, 0.868087f, 0.914379f, 0.738191f, 0.265445f, 0.766265f, 0.911954f, 0.424649f, 0.354205f, 0.666029f, 0.912105f, 0.886417f, 0.231325f, 0.0355263f, 0.950339f, 0.507061f, 0.271066f, 0.831718f, 0.27213f, 0.346277f, 0.823456f, 0.792705f, 0.997281f, 0.497942f, 0.478723f, 0.0544625f, 0.705731f, 0.943926f, 0.0637384f, 0.24178f, 0.220038f, 0.73526f, 0.349917f, 0.683923f, 0.259271f, 0.309605f, 0.179657f, 0.982663f, 0.979263f, 0.915554f, 0.486691f, 0.554517f, 0.669794f, 0.253162f, 0.093543f, 0.669497f, 0.609819f, 0.98844f, 0.138513f, 0.309594f, 0.876058f, 0.66811f, 0.638072f, 0.212735f, 0.340255f, 0.690781f, 0.583122f, 0.159234f, 0.589236f, 0.693139f, 0.349297f, 0.587949f, 0.887529f, 0.728229f, 0.136892f, 0.262204f, 0.662484f, 0.28472f, 0.622015f, 0.207545f, 0.510029f, 0.60721f, 0.038113f, 0.31417f, 0.615402f, 0.448743f, 0.154446f, 0.872305f, 0.143924f, 0.251979f, 0.880669f, 0.598887f, 0.571896f, 0.515851f, 0.952398f, 0.124642f, 0.168786f, 0.441385f, 0.598686f, 0.723883f, 0.579736f, 0.527448f, 0.523717f, 0.838053f, 0.149124f, 0.673669f, 0.14229f, 0.386783f, 0.889584f, 0.598184f, 0.513162f, 0.594427f, 0.721933f, 0.643449f, 0.695772f, 0.899081f, 0.664523f, 0.139265f, 0.945223f, 0.219066f, 0.405808f, 0.263777f, 0.412627f, 0.0857935f, 0.889626f, 0.926571f, 0.87758f, 0.198609f, 0.856981f, 0.869558f, 0.305647f, 0.812331f, 0.692538f, 0.451703f, 0.951932f, 0.495356f, 0.864734f, 0.902125f, 0.569037f, 0.520535f, 0.216667f, 0.255297f, 0.591851f, 0.543922f, 0.611041f, 0.786669f, 0.088188f, 0.985764f, 0.842065f, 0.58106f, 0.620247f, 0.605754f, 0.975696f, 0.954957f, 0.608862f, 0.655566f, 0.674444f, 0.698734f, 0.156191f, 0.145641f, 0.672113f, 0.18538f, 0.0873615f, 0.443558f, 0.299587f, 0.819442f, 0.150055f, 0.880069f, 0.172834f, 0.653473f, 0.391496f, 0.118508f, 0.565083f, 0.935051f, 0.523522f, 0.55255f, 0.576251f, 0.911273f, 0.320996f, 0.419382f, 0.108884f, 0.629189f, 0.90214f, 0.379324f, 0.993774f, 0.656224f, 0.710223f, 0.953051f, 0.514451f, 0.682708f, 0.652504f, 0.77341f, 0.645461f, 0.0391939f, 0.471361f, 0.760638f, 0.854566f, 0.697731f, 0.0321098f, 0.452528f, 0.512962f, 0.481702f, 0.59688f, 0.167095f, 0.706933f, 0.655891f, 0.0525858f, 0.222633f, 0.113384f, 0.558338f, 0.0295255f, 0.653678f, 0.599873f, 0.880331f, 0.827267f, 0.664861f, 0.150684f, 0.283206f, 0.753851f, 0.836932f, 0.439752f, 0.213542f, 0.679184f, 0.288703f, 0.290065f, 0.45681f, 0.0810904f, 0.998415f, 0.900188f, 0.0149383f, 0.886106f, 0.984188f, 0.733709f, 0.844325f, 0.680569f, 0.908838f, 0.372753f, 0.774053f, 0.911128f, 0.747994f, 0.574793f, 0.782937f, 0.0510561f, 0.506438f, 0.464558f, 0.588053f, 0.439998f, 0.2672f, 0.513888f, 0.269463f, 0.702044f, 0.317576f, 0.216274f, 0.031019f, 0.558371f, 0.708373f, 0.0640268f, 0.315883f, 0.475111f, 0.649129f, 0.563481f, 0.526673f, 0.0235617f, 0.860234f, 0.244788f, 0.736804f, 0.512987f, 0.539436f, 0.0233963f, 0.602965f, 0.635571f, 0.133214f, 0.901046f, 0.557304f, 0.950225f, 0.212929f, 0.0560788f, 0.565201f, 0.433351f, 0.870745f, 0.437179f, 0.958209f, 0.215859f, 0.509427f, 0.320626f, 0.619849f, 0.491132f, 0.0804033f, 0.668352f, 0.47902f, 0.139108f, 0.232216f, 0.128463f, 0.13565f, 0.950811f, 0.346151f, 0.447842f, 0.878921f, 0.132984f, 0.506792f, 0.777438f, 0.0717582f, 0.713886f, 0.201366f, 0.0557625f, 0.578446f, 0.896453f, 0.987899f, 0.719708f, 0.615456f, 0.0890016f, 0.738222f, 0.118148f, 0.0637626f, 0.708409f, 0.208099f, 0.210579f, 0.513177f, 0.316742f, 0.798657f, 0.250799f, 0.862258f, 0.08806f, 0.128748f, 0.918765f, 0.534242f, 0.67558f, 0.799917f, 0.785529f, 0.823307f, 0.620837f, 0.908448f, 0.791941f, 0.280674f, 0.0792215f, 0.61188f, 0.939193f, 0.874396f, 0.248804f, 0.165018f, 0.935119f, 0.252039f, 0.433913f, 0.230363f, 0.645287f, 0.0865046f, 0.630551f, 0.329475f, 0.585583f, 0.316526f, 0.041871f, 0.402855f, 0.432552f, 0.59056f, 0.727475f, 0.204989f, 0.17798f, 0.300884f, 0.476527f, 0.694128f, 0.581187f, 0.343164f, 0.545756f, 0.447758f, 0.359712f, 0.376672f, 0.343796f, 0.914163f, 0.477172f, 0.193058f, 0.0193624f, 0.429995f, 0.548162f, 0.118708f, 0.0308346f, 0.556546f, 0.259306f, 0.49907f, 0.0918193f, 0.600778f, 0.301899f, 0.684721f, 0.347618f, 0.0539441f, 0.645642f, 0.256792f, 0.739836f, 0.720385f, 0.993516f, 0.018852f, 0.611061f, 0.591492f, 0.331202f, 0.494316f, 0.686017f, 0.583879f, 0.334357f, 0.827355f, 0.75122f, 0.938576f, 0.0462259f, 0.480235f, 0.941855f, 0.703965f, 0.825785f, 0.511577f, 0.547982f, 0.65266f, 0.195514f, 0.762747f, 0.754568f, 0.672253f, 0.67758f, 0.918976f, 0.0389931f, 0.329636f, 0.041438f, 0.475509f, 0.947122f, 0.0900319f, 0.721723f, 0.331855f, 0.474696f, 0.0360539f, 0.752195f, 0.838539f, 0.12994f, 0.846914f, 0.654886f, 0.59994f, 0.16267f, 0.205384f, 0.168954f, 0.984104f, 0.90327f, 0.863875f, 0.242552f, 0.895462f, 0.305136f, 0.288444f, 0.610684f, 0.755873f, 0.63405f, 0.33295f, 0.364817f, 0.758494f, 0.595479f, 0.0847344f, 0.179335f, 0.980152f, 0.815415f, 0.109462f, 0.483747f, 0.429614f, 0.216308f, 0.795251f, 0.632138f, 0.0943184f, 0.416516f, 0.0922638f, 0.142128f, 0.786848f, 0.942409f, 0.81263f, 0.720261f, 0.152464f, 0.356029f, 0.854222f, 0.931994f, 0.1807f, 0.916695f, 0.199493f, 0.0979094f, 0.544592f, 0.933433f, 0.0671128f, 0.365203f, 0.658035f, 0.431006f, 0.146817f, 0.593439f, 0.706674f, 0.995432f, 0.785801f, 0.269154f, 0.468617f, 0.359843f, 0.690938f, 0.443121f, 0.0479989f, 0.801794f, 0.61063f, 0.266135f, 0.163648f, 0.308716f, 0.533489f, 0.8515f, 0.836461f, 0.159344f, 0.691289f, 0.957633f, 0.029623f, 0.156255f, 0.974458f, 0.296656f, 0.292426f, 0.342406f, 0.409721f, 0.618199f, 0.772889f, 0.264086f, 0.277807f, 0.100902f, 0.16407f, 0.245145f, 0.739411f, 0.261475f, 0.0857188f, 0.742533f, 0.88102f, 0.770895f, 0.354722f, 0.187596f, 0.562033f, 0.71665f, 0.869772f, 0.154177f, 0.810222f, 0.0378963f, 0.84708f, 0.513031f, 0.355424f, 0.26396f, 0.0493565f, 0.0843991f, 0.226172f, 0.773675f, 0.175576f, 0.687945f, 0.552908f, 0.947004f, 0.0715233f, 0.034247f, 0.112635f, 0.793135f, 0.402288f, 0.543981f, 0.00907678f, 0.508435f, 0.922146f, 0.306007f, 0.74684f, 0.241617f, 0.539046f, 0.83593f, 0.125505f, 0.989815f, 0.253745f, 0.100077f, 0.246528f, 0.188176f, 0.0689867f, 0.0343654f, 0.130735f, 0.648559f, 0.259024f, 0.778773f, 0.89595f, 0.108323f, 0.0792606f, 0.947738f, 0.92438f, 0.285765f, 0.0786912f, 0.314013f, 0.196006f, 0.444298f, 0.0252209f, 0.505793f, 0.160503f, 0.179412f, 0.532002f, 0.294424f, 0.272184f, 0.766327f, 0.395353f, 0.816067f, 0.196421f, 0.497539f, 0.878986f, 0.0961405f, 0.820007f, 0.249975f, 0.195096f, 0.17911f, 0.534018f, 0.202452f, 0.833013f, 0.407809f, 0.409207f, 0.0293441f, 0.159373f, 0.97974f, 0.797579f, 0.585338f, 0.205244f, 0.939742f, 0.188395f, 0.856593f, 0.987226f, 0.741505f, 0.188762f, 0.399772f, 0.527054f, 0.168712f, 0.648863f, 0.76007f, 0.888695f, 0.474122f, 0.54378f, 0.850162f, 0.00695785f, 0.70291f, 0.749108f, 0.276164f, 0.47393f, 0.83693f, 0.141871f, 0.516607f, 0.670846f, 0.665674f, 0.541732f, 0.78388f, 0.708681f, 0.682724f, 0.259671f, 0.869733f, 0.758025f, 0.0200481f, 0.794448f, 0.681449f, 0.925119f, 0.734508f, 0.950064f, 0.574124f, 0.019148f, 0.249436f, 0.619557f, 0.500477f, 0.0232975f, 0.734679f, 0.660496f, 0.22638f, 0.378174f, 0.723271f, 0.0617378f, 0.517085f, 0.324872f, 0.625275f, 0.17625f, 0.745463f, 0.0504503f, 0.470506f, 0.781117f, 0.213397f, 0.817098f, 0.25337f, 0.896663f, 0.160532f, 0.658547f, 0.46961f, 0.914045f, 0.471251f, 0.93375f, 0.343209f, 0.302037f, 0.307772f, 0.604093f, 0.745497f, 0.562435f, 0.0445669f, 0.660057f, 0.307442f, 0.596101f, 0.38788f, 0.5832f, 0.477978f, 0.578257f, 0.66501f, 0.494558f, 0.931155f, 0.338653f, 0.63374f, 0.355696f, 0.159734f, 0.312081f, 0.707564f, 0.89523f, 0.485531f, 0.0931612f, 0.76101f, 0.451376f, 0.837182f, 0.593376f, 0.289006f, 0.751113f, 0.283227f, 0.747966f, 0.855681f, 0.689777f, 0.735593f, 0.926367f, 0.71427f, 0.874113f, 0.901599f, 0.00239164f, 0.0607418f, 0.256944f, 0.683404f, 0.468545f, 0.115099f, 0.194632f, 0.892871f, 0.433851f, 0.996485f, 0.622798f, 0.595824f, 0.702424f, 0.51244f, 0.342794f, 0.122775f, 0.617851f, 0.0492106f, 0.60586f, 0.690809f, 0.358781f, 0.849572f, 0.408017f, 0.846986f, 0.41019f, 0.0670375f, 0.106252f, 0.758986f, 0.510894f, 0.73255f, 0.0907279f, 0.9959f, 0.392184f, 0.779877f, 0.736487f, 0.74064f, 0.105182f, 0.708333f, 0.588861f, 0.899197f, 0.547862f, 0.57261f, 0.997025f, 0.769819f, 0.00366789f, 0.815132f, 0.431208f, 0.778708f, 0.359116f, 0.121065f, 0.215232f, 0.338811f, 0.964539f, 0.422779f, 0.621301f, 0.30488f, 0.11085f, 0.532405f, 0.416646f, 0.914285f, 0.653672f, 0.401255f, 0.949251f, 0.974299f, 0.146397f, 0.0662309f, 0.476871f, 0.0422005f, 0.800192f, 0.099558f, 0.975073f, 0.413739f, 0.291759f, 0.881841f, 0.714534f, 0.286928f, 0.468234f, 0.550947f, 0.40592f, 0.72912f, 0.25504f, 0.501294f, 0.93432f, 0.0385952f, 0.348364f, 0.718752f, 0.692493f, 0.104062f, 0.606665f, 0.407537f, 0.737115f, 0.371631f, 0.611629f, 0.37884f, 0.0858408f, 0.934316f, 0.908099f, 0.565021f, 0.0567954f, 0.775883f, 0.197617f, 0.234176f, 0.969888f, 0.201691f, 0.594068f, 0.429932f, 0.081072f, 0.611016f, 0.593793f, 0.451607f, 0.794435f, 0.721078f, 0.420073f, 0.859341f, 0.717363f, 0.747458f, 0.406955f, 0.0364475f, 0.663231f, 0.291466f, 0.470375f, 0.0047093f, 0.532695f, 0.982304f, 0.0546338f, 0.43695f, 0.549221f, 0.0228999f, 0.313636f, 0.724177f, 0.569925f, 0.721449f, 0.952554f, 0.309281f, 0.593856f, 0.506905f, 0.48428f, 0.478447f, 0.0746817f, 0.252027f, 0.946105f, 0.553573f, 0.615992f, 0.478797f, 0.613452f, 0.678677f, 0.551615f, 0.798669f, 0.355127f, 0.186931f, 0.139173f, 0.242292f, 0.441654f, 0.330708f, 0.962091f, 0.267849f, 0.915209f, 0.788517f, 0.692206f, 0.847091f, 0.384341f, 0.228045f, 0.815585f, 0.975597f, 0.491128f, 0.959654f, 0.319f, 0.517584f, 0.857105f, 0.670844f, 0.900283f, 0.667352f, 0.988426f, 0.451664f, 0.805026f, 0.283802f, 0.73142f, 0.0960275f, 0.071514f, 0.0449618f, 0.898698f, 0.699349f, 0.650716f, 0.737359f, 0.697591f, 0.239759f, 0.242478f, 0.773937f, 0.598934f, 0.562279f, 0.990877f, 0.542295f, 0.706523f, 0.0400013f, 0.751255f, 0.914907f, 0.704425f, 0.791048f, 0.132692f, 0.388448f, 0.209881f, 0.80192f, 0.692122f, 0.857476f, 0.271173f, 0.777848f, 0.443368f, 0.373062f, 0.153535f, 0.249409f, 0.092942f, 0.00638641f, 0.777268f, 0.7686f, 0.478498f, 0.887034f, 0.378683f, 0.894564f, 0.367347f, 0.0834392f, 0.497305f, 0.95591f, 0.814606f, 0.474987f, 0.000995387f, 0.350213f, 0.689531f, 0.0988024f, 0.968241f, 0.860767f, 0.394065f, 0.599377f, 0.227755f, 0.146452f, 0.582612f, 0.516709f, 0.520141f, 0.634226f, 0.108507f, 0.498854f, 0.424619f, 0.780326f, 0.80567f, 0.629687f, 0.127723f, 0.0336893f, 0.631424f, 0.666024f, 0.866805f, 0.287554f, 0.523238f, 0.183463f, 0.417182f, 0.400929f, 0.886631f, 0.160494f, 0.128828f, 0.0407184f, 0.447326f, 0.17435f, 0.0237744f, 0.987539f, 0.722343f, 0.676694f, 0.0529974f, 0.629661f, 0.379117f, 0.626704f, 0.462754f, 0.325253f, 0.154611f, 0.601948f, 0.959109f, 0.544204f, 0.363885f, 0.105403f, 0.219433f, 0.496932f, 0.315283f, 0.41122f, 0.196829f, 0.451421f, 0.893969f, 0.510993f, 0.0063349f, 0.951801f, 0.129267f, 0.807773f, 0.847764f, 0.76398f, 0.233071f, 0.468183f, 0.0976127f, 0.0472951f, 0.298605f, 0.469274f, 0.134112f, 0.67559f, 0.12472f, 0.327388f, 0.928126f, 0.382105f, 0.311168f, 0.625371f, 0.0629552f, 0.438605f, 0.779704f, 0.793958f, 0.309734f, 0.179684f, 0.258045f, 0.602858f, 0.189726f, 0.485729f, 0.675793f, 0.269612f, 0.223249f, 0.244902f, 0.318763f, 0.0615377f, 0.390682f, 0.477955f, 0.0818311f, 0.985299f, 0.433035f, 0.845484f, 0.439238f, 0.585415f, 0.28516f, 0.399402f, 0.524232f, 0.786048f, 0.0700261f, 0.8799f, 0.899489f, 0.903616f, 0.271186f, 0.0209665f, 0.88615f, 0.585638f, 0.601248f, 0.630287f, 0.736329f, 0.0780644f, 0.418635f, 0.242044f, 0.823358f, 0.963733f, 0.970264f, 0.0206052f, 0.36637f, 0.32973f, 0.0733889f, 0.0924538f, 0.0537379f, 0.089988f, 0.293227f, 0.167674f, 0.170407f, 0.369805f, 0.162376f, 0.0768395f, 0.401258f, 0.0205944f, 0.214655f, 0.565842f, 0.0722265f, 0.527809f, 0.891475f, 0.742952f, 0.914229f, 0.383209f, 0.56968f, 0.741784f, 0.125203f, 0.168684f, 0.0958699f, 0.359097f, 0.299145f, 0.419792f, 0.0619757f, 0.222475f, 0.815539f, 0.0333095f, 0.272609f, 0.851514f, 0.283708f, 0.525649f, 0.148378f, 0.561638f, 0.817438f, 0.145619f, 0.262795f, 0.692642f, 0.231738f, 0.444971f, 0.428266f, 0.842754f, 0.0453067f, 0.412802f, 0.259347f, 0.574169f, 0.535283f, 0.922358f, 0.446502f, 0.834965f, 0.321975f, 0.502065f, 0.723217f, 0.494265f, 0.155392f, 0.126007f, 0.296005f, 0.679054f, 0.806038f, 0.535309f, 0.0206131f, 0.792164f, 0.77221f, 0.680747f, 0.149021f, 0.466388f, 0.794513f, 0.370934f, 0.632748f, 0.253375f, 0.966416f, 0.0559242f, 0.257231f, 0.235184f, 0.00847955f, 0.405919f, 0.663183f, 0.947921f, 0.560889f, 0.524148f, 0.736809f, 0.108796f, 0.435435f, 0.706312f, 0.0904993f, 0.826288f, 0.796573f, 0.846489f, 0.989677f, 0.759413f, 0.535015f, 0.60565f, 0.51432f, 0.68337f, 0.695341f, 0.901442f, 0.662793f, 0.487029f, 0.350308f, 0.831463f, 0.821471f, 0.857085f, 0.783135f, 0.781994f, 0.26521f, 0.76974f, 0.948408f, 0.25824f, 0.175769f, 0.413641f, 0.120984f, 0.41467f, 0.154133f, 0.447632f, 0.262196f, 0.233872f, 0.027248f, 0.456559f, 0.564264f, 0.195967f, 0.87957f, 0.712771f, 0.570181f, 0.683408f, 0.344589f, 0.608551f, 0.928497f, 0.978937f, 0.665815f, 0.191938f, 0.913725f, 0.229831f, 0.276609f, 0.996722f, 0.0614733f, 0.756541f, 0.150352f, 0.81332f, 0.364726f, 0.698872f, 0.0488913f, 0.488767f, 0.658977f, 0.177127f, 0.449505f, 0.889814f, 0.945673f, 0.479735f, 0.669513f, 0.212768f, 0.377593f, 0.81207f, 0.118393f, 0.147627f, 0.102521f, 0.878881f, 0.412474f, 0.603358f, 0.526986f, 0.386922f, 0.209253f, 0.987137f, 0.718463f, 0.717605f, 0.806746f, 0.380589f, 0.0898503f, 0.340875f, 0.0599232f, 0.816005f, 0.284385f, 0.268579f, 0.15688f, 0.660675f, 0.249349f, 0.735313f, 0.979476f, 0.696837f, 0.984901f, 0.307522f, 0.708236f, 0.0849013f, 0.297076f, 0.359044f, 0.0566235f, 0.732831f, 0.24032f, 0.440776f, 0.903334f, 0.349843f, 0.551364f, 0.198349f, 0.965711f, 0.74446f, 0.65457f, 0.858117f, 0.72294f, 0.273375f, 0.246046f, 0.489922f, 0.68976f, 0.369694f, 0.72915f, 0.65725f, 0.30668f, 0.396834f, 0.269671f, 0.897012f, 0.969904f, 0.322165f, 0.28877f, 0.403919f, 0.745858f, 0.0508711f, 0.275434f, 0.968689f, 0.508743f, 0.895674f, 0.415087f, 0.888818f, 0.935279f, 0.393171f, 0.691673f, 0.634202f, 0.406149f, 0.437993f, 0.444085f, 0.382038f, 0.36729f, 0.37336f, 0.41162f, 0.0275015f, 0.338587f, 0.524497f, 0.0507328f, 0.647831f, 0.627665f, 0.76997f, 0.949813f, 0.688768f, 0.87357f, 0.386311f, 0.609754f, 0.474682f, 0.776409f, 0.7274f, 0.429997f, 0.326422f, 0.991154f, 0.563406f, 0.797949f, 0.806496f, 0.472436f, 0.861442f, 0.241235f, 0.115021f, 0.841425f, 0.067718f, 0.855504f, 0.869459f, 0.818138f, 0.47471f, 0.305221f, 0.985908f, 0.741069f, 0.0359858f, 0.548461f, 0.851616f, 0.00124529f, 0.831263f, 0.524583f, 0.700077f, 0.486439f, 0.690473f, 0.139002f, 0.25776f, 0.724213f, 0.784629f, 0.361253f, 0.559542f, 0.51449f, 0.149615f, 0.258914f, 0.275199f, 0.385751f, 0.220086f, 0.0419866f, 0.608323f, 0.733945f, 0.795928f, 0.12021f, 0.151217f, 0.0478011f, 0.861415f, 0.555441f, 0.0348796f, 0.0723636f, 0.827777f, 0.332871f, 0.887277f, 0.877651f, 0.0785353f, 0.197532f, 0.322672f, 0.000916138f, 0.940004f, 0.753226f, 0.804484f, 0.975536f, 0.192233f, 0.384034f, 0.881944f, 0.292808f, 0.368571f, 0.18698f, 0.992044f, 0.354451f, 0.527305f, 0.348339f, 0.773856f, 0.23059f, 0.0443612f, 0.558384f, 0.000874037f, 0.274346f, 0.280431f, 0.764785f, 0.380712f, 0.254584f, 0.902307f, 0.97328f, 0.573603f, 0.95614f, 0.360903f, 0.934183f, 0.339851f, 0.789651f, 0.882639f, 0.0225178f, 0.462162f, 0.960021f, 0.932408f, 0.041856f, 0.999388f, 0.857339f, 0.537505f, 0.44124f, 0.101818f, 0.438442f, 0.570012f, 0.847642f, 0.425616f, 0.606355f, 0.494681f, 0.907646f, 0.858777f, 0.40926f, 0.926747f, 0.809049f, 0.338416f, 0.239173f, 0.467034f, 0.209364f, 0.232802f, 0.973714f, 0.760907f, 0.496914f, 0.319526f, 0.22954f, 0.338775f, 0.593522f, 0.908391f, 0.00225433f, 0.613819f, 0.263566f, 0.90629f, 0.0143624f, 0.762406f, 0.515316f, 0.706617f, 0.342984f, 0.52917f, 0.400909f, 0.801304f, 0.214512f, 0.201463f, 0.697807f, 0.534033f, 0.267793f, 0.830113f, 0.602329f, 0.660705f, 0.770421f, 0.340517f, 0.251196f, 0.290911f, 0.524877f, 0.159722f, 0.670449f, 0.995454f, 0.511623f, 0.298313f, 0.944021f, 0.0948249f, 0.73058f, 0.838334f, 0.643656f, 0.783853f, 0.583298f, 0.455548f, 0.230939f, 0.457534f, 0.00278924f, 0.6042f, 0.360588f, 0.922623f, 0.644665f, 0.103884f, 0.96859f, 0.548638f, 0.0705228f, 0.5299f, 0.499172f, 0.201098f, 0.378225f, 0.24914f, 0.198072f, 0.822918f, 0.622897f, 0.568341f, 0.98089f, 0.620874f, 0.963039f, 0.895195f, 0.292738f, 0.0731504f, 0.445395f, 0.572362f, 0.373684f, 0.484523f, 0.441638f, 0.132963f, 0.569192f, 0.0756962f, 0.572306f, 0.884098f, 0.556036f, 0.0122078f, 0.848378f, 0.880924f, 0.186021f, 0.181906f, 0.149379f, 0.907829f, 0.0792597f, 0.65573f, 0.371839f, 0.658314f, 0.973877f, 0.626929f, 0.853348f, 0.538424f, 0.119907f, 0.104601f, 0.447656f, 0.338296f, 0.416f, 0.00649671f, 0.567067f, 0.586761f, 0.457382f, 0.0565516f, 0.0336257f, 0.882286f, 0.879863f, 0.123068f, 5.65988e-05f, 0.217614f, 0.170666f, 0.0279886f, 0.994332f, 0.406638f, 0.55916f, 0.955373f, 0.498295f, 0.462271f, 0.2479f, 0.233727f, 0.507336f, 0.255721f, 0.723603f, 0.911872f, 0.226847f, 0.749499f, 0.086894f, 0.506925f, 0.822442f, 0.0512878f, 0.111878f, 0.21249f, 0.0178278f, 0.123097f, 0.912115f, 0.915155f, 0.506104f, 0.527865f, 0.922091f, 0.39081f, 0.644601f, 0.908082f, 0.562287f, 0.0780806f, 0.735341f, 0.744356f, 0.845752f, 0.103222f, 0.407326f, 0.515565f, 0.0541111f, 0.890123f, 0.00640169f, 0.533819f, 0.49394f, 0.958385f, 0.0709909f, 0.805157f, 0.218626f, 0.395703f, 0.344168f, 0.722025f, 0.446f, 0.712189f, 0.921133f, 0.0254779f, 0.646931f, 0.654103f, 0.365839f, 0.776464f, 0.524957f, 0.455485f, 0.811014f, 0.992469f, 0.814505f, 0.134269f, 0.780882f, 0.106967f, 0.426112f, 0.0496123f, 0.881183f, 0.765958f, 0.506653f, 0.943266f, 0.278787f, 0.40261f, 0.66606f, 0.139293f, 0.0228334f, 0.425202f, 0.167311f, 0.943914f, 0.779232f, 0.327429f, 0.693353f, 0.668736f, 0.286584f, 0.262277f, 0.478177f, 0.259639f, 0.0183194f, 0.305498f, 0.561589f, 0.251985f, 0.340317f, 0.874261f, 0.637282f, 0.514902f, 0.273802f, 0.8099f, 0.441f, 0.535816f, 0.474427f, 0.388549f, 0.793907f, 0.996526f, 0.439355f, 0.466316f, 0.830795f, 0.671577f, 0.807265f, 0.401645f, 0.541625f, 0.00881933f, 0.740642f, 0.231504f, 0.292738f, 0.939252f, 0.59696f, 0.74875f, 0.913195f, 0.326506f, 0.076236f, 0.574883f, 0.133972f, 0.890266f, 0.984688f, 0.140902f, 0.128486f, 0.117951f, 0.431119f, 0.426284f, 0.415743f, 0.922487f, 0.745546f, 0.840077f, 0.49333f, 0.663276f, 0.773438f, 0.171853f, 0.975787f, 0.791077f, 0.633345f, 0.773184f, 0.744493f, 0.539753f, 0.902543f, 0.414323f, 0.608237f, 0.222546f, 0.348496f, 0.099356f, 0.278749f, 0.251611f, 0.520344f, 0.112646f, 0.200462f, 0.744055f, 0.168325f, 0.635503f, 0.671938f, 0.229579f, 0.555053f, 0.623382f, 0.468171f, 0.850039f, 0.701759f, 0.640127f, 0.129329f, 0.570423f, 0.912828f, 0.884657f, 0.00423518f, 0.955386f, 0.742899f, 0.0653215f, 0.37956f, 0.960933f, 0.418469f, 0.509939f, 0.993672f, 0.0861226f, 0.650177f, 0.192774f, 0.42669f, 0.598282f, 0.879146f, 0.531295f, 0.529316f, 0.306005f, 0.21197f, 0.311037f, 0.00723488f, 0.0537805f, 0.987387f, 0.948944f, 0.326299f, 0.292817f, 0.833299f, 0.233572f, 0.450509f, 0.0697152f, 0.268766f, 0.962614f, 0.0761093f, 0.268078f, 0.0977896f, 0.0284287f, 0.356428f, 0.864834f, 0.310785f, 0.362303f, 0.164077f, 0.756474f, 0.42537f, 0.0927695f, 0.0604679f, 0.823764f, 0.323885f, 0.761985f, 0.864902f, 0.11623f, 0.397535f, 0.718254f, 0.637596f, 0.490933f, 0.269322f, 0.660851f, 0.652692f, 0.61003f, 0.589594f, 0.706991f, 0.261704f, 0.333875f, 0.898269f, 0.483735f, 0.660443f, 0.305574f, 0.676744f, 0.0208565f, 0.863915f, 0.0416533f, 0.880769f, 0.641593f, 0.826679f, 0.536049f, 0.650721f, 0.926316f, 0.452664f, 0.13573f, 0.0310741f, 0.781587f, 0.637631f, 0.589902f, 0.0853312f, 0.0971944f, 0.829053f, 0.467658f, 0.613862f, 0.98756f, 0.58061f, 0.268108f, 0.511828f, 0.774297f, 0.423103f, 0.182906f, 0.257511f, 0.170173f, 0.785892f, 0.763226f, 0.53282f, 0.423058f, 0.447917f, 0.88953f, 0.832336f, 0.742542f, 0.319188f, 0.194562f, 0.694791f, 0.762418f, 0.49335f, 0.0660767f, 0.0274218f, 0.151684f, 0.84565f, 0.221872f, 0.31347f, 0.967216f, 0.737638f, 0.804929f, 0.637495f, 0.213278f, 0.908625f, 0.576544f, 0.771004f, 0.987418f, 0.0409891f, 0.467138f, 0.617153f, 0.736946f, 0.867113f, 0.951811f, 0.154648f, 0.740801f, 0.270877f, 0.853842f, 0.00386076f, 0.316807f, 0.857982f, 0.226176f, 0.318465f, 0.700062f, 0.554091f, 0.315492f, 0.243599f, 0.165242f, 0.0287095f, 0.471605f, 0.269506f, 0.0481783f, 0.267451f, 0.816572f, 0.315644f, 0.807287f, 0.744161f, 0.670262f, 0.993573f, 0.169422f, 0.233041f, 0.0409642f, 0.815066f, 0.169667f, 0.170602f, 0.0370063f, 0.401435f, 0.660011f, 0.665482f, 0.803983f, 0.199319f, 0.252062f, 0.352841f, 0.479694f, 0.227764f, 0.451998f, 0.790808f, 0.0903161f, 0.909742f, 0.535406f, 0.251591f, 0.633483f, 0.263571f, 0.0240886f, 0.996613f, 0.276152f, 0.302253f, 0.985316f, 0.240864f, 0.154651f, 0.965778f, 0.773741f, 0.235246f, 0.371968f, 0.249547f, 0.0566258f, 0.471484f, 0.877786f, 0.972836f, 0.639844f, 0.0631808f, 0.969798f, 0.524733f, 0.321179f, 0.310998f, 0.256906f, 0.614546f, 0.647912f, 0.232712f, 0.420284f, 0.655213f, 0.936621f, 0.851222f, 0.451812f, 0.400019f, 0.0840677f, 0.290769f, 0.243043f, 0.902345f, 0.432773f, 0.184514f, 0.420329f, 0.845841f, 0.599513f, 0.526012f, 0.951629f, 0.165279f, 0.150241f, 0.117574f, 0.636763f, 0.684123f, 0.715864f, 0.587858f, 0.025171f, 0.354233f, 0.297314f, 0.8812f, 0.844317f, 0.819331f, 0.880256f, 0.74756f, 0.980348f, 0.629663f, 0.268299f, 0.465652f, 0.324411f, 0.455475f, 0.225096f, 0.790657f, 0.484869f, 0.368002f, 0.95576f, 0.335719f, 0.423297f, 0.0927763f, 0.886378f, 0.814155f, 0.477265f, 0.561966f, 0.335924f, 0.670047f, 0.630704f, 0.64197f, 0.656276f, 0.231895f, 0.337536f, 0.269058f, 0.369385f, 0.12747f, 0.399863f, 0.852f, 0.636525f, 0.2598f, 0.307778f, 0.493378f, 0.0167589f, 0.484461f, 0.967248f, 0.677949f, 0.0127936f, 0.543639f, 0.885348f, 0.978461f, 0.845458f, 0.789074f, 0.957692f, 0.310436f, 0.191076f, 0.999502f, 0.334978f, 0.170537f, 0.817536f, 0.618543f, 0.555896f, 0.0646441f, 0.263872f, 0.850947f, 0.0523041f, 0.536365f, 0.408294f, 0.562754f, 0.271821f, 0.765559f, 0.794759f, 0.10703f, 0.00708059f, 0.918917f, 0.306319f, 0.341069f, 0.880398f, 0.763809f, 0.197381f, 0.480464f, 0.530267f, 0.385899f, 0.723375f, 0.277873f, 0.466349f, 0.979985f, 0.389348f, 0.781419f, 0.0531951f, 0.469381f, 0.459414f, 0.799205f, 0.0248302f, 0.044803f, 0.469655f, 0.0129992f, 0.61234f, 0.894183f, 0.783739f, 0.904596f, 0.866173f, 0.351728f, 0.228115f, 0.0738683f, 0.975912f, 0.654697f, 0.0676095f, 0.245336f, 0.296884f, 0.431285f, 0.894518f, 0.295938f, 0.621898f, 0.486347f, 0.382868f, 0.261768f, 0.454453f, 0.694242f, 0.229356f, 0.414457f, 0.756957f, 0.375901f, 0.986627f, 0.662565f, 0.979746f, 0.459894f, 0.478174f, 0.0255572f, 0.92557f, 0.386836f, 0.747861f, 0.778869f, 0.868357f, 0.143423f, 0.645793f, 0.753509f, 0.630005f, 0.790593f, 0.0570299f, 0.433423f, 0.130058f, 0.11803f, 0.0206789f, 0.875954f, 0.377795f, 0.992081f, 0.268633f, 0.352508f, 0.339212f, 0.647901f, 0.310948f, 0.200319f, 0.00643757f, 0.941193f, 0.49454f, 0.03072f, 0.420265f, 0.975198f, 0.773332f, 0.869828f, 0.673919f, 0.780288f, 0.527735f, 0.478272f, 0.0950875f, 0.774917f, 0.782396f, 0.107367f, 0.0598637f, 0.00169379f, 0.467261f, 0.324674f, 0.478194f, 0.674764f, 0.303398f, 0.294699f, 0.822782f, 0.982428f, 0.564287f, 0.266489f, 0.597584f, 0.701892f, 0.923458f, 0.215085f, 0.172613f, 0.0817669f, 0.543924f, 0.847161f, 0.845239f, 0.321743f, 0.868944f, 0.232951f, 0.0944018f, 0.364834f, 0.518375f, 0.0074743f, 0.798166f, 0.119923f, 0.728442f, 0.0592487f, 0.0585591f, 0.645181f, 0.250932f, 0.285384f, 0.701103f, 0.998062f, 0.504218f, 0.284519f, 0.0731458f, 0.87343f, 0.936796f, 0.797734f, 0.18008f, 0.574698f, 0.99614f, 0.297293f, 0.576629f, 0.485442f, 0.158327f, 0.118332f, 0.361367f, 0.443002f, 0.17552f, 0.383444f, 0.445807f, 0.970911f, 0.000348134f, 0.00648888f, 0.38191f, 0.150335f, 0.863533f, 0.414863f, 0.297503f, 0.0815298f, 0.858219f, 0.236893f, 0.613212f, 0.618372f, 0.97567f, 0.114038f, 0.624537f, 0.0851054f, 0.62879f, 0.865654f, 0.737639f, 0.559916f, 0.0729778f, 0.183217f, 0.977971f, 0.0806749f, 0.561561f, 0.778839f, 0.992282f, 0.0630433f, 0.481675f, 0.205386f, 0.187635f, 0.0660333f, 0.890362f, 0.0724167f, 0.993708f, 0.723064f, 0.820016f, 0.0462525f, 0.0191416f, 0.0581466f, 0.398842f, 0.575788f, 0.472682f, 0.549188f, 0.678496f, 0.980795f, 0.511205f, 0.136541f, 0.0410053f, 0.800786f, 0.155533f, 0.0848418f, 0.314689f, 0.735425f, 0.905364f, 0.296371f, 0.543801f, 0.960839f, 0.385233f, 0.905602f, 0.631929f, 0.287987f, 0.92218f, 0.0226908f, 0.426345f, 0.93523f, 0.765834f, 0.692233f, 0.987488f, 0.576867f, 0.316875f, 0.844857f, 0.521633f, 0.270659f, 0.835086f, 0.0609623f, 0.910122f, 0.536354f, 0.0832229f, 0.414926f, 0.724235f, 0.884801f, 0.341323f, 0.628771f, 0.40228f, 0.349041f, 0.307317f, 0.981899f, 0.713284f, 0.246379f, 0.505779f, 0.495778f, 0.505811f, 0.611465f, 0.907194f, 0.629933f, 0.12562f, 0.405745f, 0.352262f, 0.524062f, 0.267971f, 0.466107f, 0.721615f, 0.807413f, 0.348904f, 0.167614f, 0.578447f, 0.935748f, 0.0450163f, 0.507162f, 0.951889f, 0.966317f, 0.0877336f, 0.431193f, 0.876919f, 0.950456f, 0.900372f, 0.158262f, 0.33375f, 0.0467862f, 0.47814f, 0.703455f, 0.745038f, 0.0469431f, 0.791596f, 0.368633f, 0.340442f, 0.355314f, 0.334377f, 0.175813f, 0.456324f, 0.700898f, 0.915227f, 0.440953f, 0.0391988f, 0.766786f, 0.178846f, 0.68907f, 0.189534f, 0.562301f, 0.410683f, 0.272582f, 0.677843f, 0.282324f, 0.309716f, 0.834704f, 0.50158f, 0.823312f, 0.206172f, 0.902249f, 0.472739f, 0.647539f, 0.715614f, 0.475139f, 0.638383f, 0.341666f, 0.627013f, 0.315206f, 0.0682273f, 0.0606975f, 0.882019f, 0.701052f, 0.246667f, 0.104804f, 0.0455308f, 0.285911f, 0.220354f, 0.56322f, 0.393112f, 0.578118f, 0.744302f, 0.689929f, 0.518555f, 0.870048f, 0.890522f, 0.889417f, 0.325999f, 0.494022f, 0.233695f, 0.952726f, 0.0385373f, 0.407067f, 0.0347279f, 0.19312f, 0.753918f, 0.515723f, 0.797076f, 0.566544f, 0.695808f, 0.968721f, 0.113709f, 0.0948931f, 0.409733f, 0.479719f, 0.280147f, 0.616622f, 0.769387f, 0.238637f, 0.470991f, 0.108955f, 0.382733f, 0.148666f, 0.860224f, 0.63555f, 0.573585f, 0.259686f, 0.89585f, 0.684758f, 0.50128f, 0.842045f, 0.127411f, 0.00251116f, 0.353822f, 0.168303f, 0.235039f, 0.507299f, 0.389384f, 0.466725f, 0.807075f, 0.0934202f, 0.32084f, 0.0965382f, 0.000680077f, 0.479738f, 0.555253f, 0.297796f, 0.927839f, 0.747806f, 0.915874f, 0.591448f, 0.306583f, 0.647932f, 0.223656f, 0.461806f, 0.367503f, 0.315465f, 0.278264f, 0.739667f, 0.253012f, 0.363668f, 0.65443f, 0.64289f, 0.622744f, 0.241148f, 0.818162f, 0.183644f, 0.45706f, 0.243083f, 0.028495f, 0.789955f, 0.743086f, 0.0981896f, 0.41838f, 0.209638f, 0.962447f, 0.262913f, 0.313897f, 0.27735f, 0.0684438f, 0.84612f, 0.950009f, 0.67067f, 0.111097f, 0.0312597f, 0.543855f, 0.675642f, 0.875872f, 0.106393f, 0.105223f, 0.754994f, 0.630024f, 0.206925f, 0.165979f, 0.546183f, 0.747854f, 0.425707f, 0.115175f, 0.162343f, 0.0306342f, 0.929389f, 0.338631f, 0.358558f, 0.62614f, 0.440899f, 0.711497f, 0.214624f, 0.551539f, 0.119272f, 0.954884f, 0.626478f, 0.3612f, 0.584047f, 0.769484f, 0.359127f, 0.160751f, 0.734744f, 0.677129f, 0.839935f, 0.316505f, 0.292216f, 0.776418f, 0.598551f, 0.487589f, 0.0491978f, 0.310085f, 0.403593f, 0.88392f, 0.649444f, 0.164407f, 0.0451848f, 0.628468f, 0.947493f, 0.0589229f, 0.937404f, 0.0709359f, 0.338652f, 0.428097f, 0.547914f, 0.144509f, 0.972245f, 0.933511f, 0.75426f, 0.406064f, 0.169455f, 0.356325f, 0.286159f, 0.279474f, 0.778376f, 0.842366f, 0.847085f, 0.920419f, 0.73594f, 0.624887f, 0.427434f, 0.38396f, 0.683614f, 0.25583f, 0.119329f, 0.302285f, 0.510922f, 0.173838f, 0.20548f, 0.916401f, 0.294471f, 0.869802f, 0.307878f, 0.909924f, 0.954921f, 0.367555f, 0.839034f, 0.279102f, 0.0433055f, 0.968763f, 0.2089f, 0.676989f, 0.581373f, 0.624941f, 0.560735f, 0.744382f, 0.0730278f, 0.453458f, 0.0570532f, 0.268415f, 0.307563f, 0.641737f, 0.106627f, 0.0561247f, 0.66462f, 0.175538f, 0.915098f, 0.502369f, 0.888687f, 0.334271f, 0.746737f, 0.954022f, 0.0798754f, 0.00328626f, 0.928035f, 0.463675f, 0.178931f, 0.0495312f, 0.444595f, 0.320406f, 0.891997f, 0.127164f, 0.707062f, 0.768988f, 0.163014f, 0.242369f, 0.525906f, 0.74129f, 0.698391f, 0.54179f, 0.911614f, 0.260523f, 0.787305f, 0.133587f, 0.518382f, 0.87535f, 0.865569f, 0.0253879f, 0.0277266f, 0.211298f, 0.722448f, 0.691866f, 0.060618f, 0.129667f, 0.49899f, 0.415236f, 0.0318108f, 0.512726f, 0.0938632f, 0.0161872f, 0.319841f, 0.716943f, 0.642935f, 0.214237f, 0.290147f, 0.795971f, 0.373505f, 0.028079f, 0.144618f, 0.704154f, 0.12628f, 0.461725f, 0.482941f, 0.0128279f, 0.851411f, 0.440899f, 0.326729f, 0.468245f, 0.145899f, 0.326815f, 0.876144f, 0.920086f, 0.809058f, 0.232627f, 0.803387f, 0.442804f, 0.939601f, 0.945181f, 0.55998f, 0.528004f, 0.649126f, 0.699537f, 0.332909f, 0.256248f, 0.839875f, 0.726439f, 0.426984f, 0.616964f, 0.871088f, 0.237828f, 0.890082f, 0.896479f, 0.892103f, 0.421173f, 0.740644f, 0.281891f, 0.0524454f, 0.447202f, 0.510898f, 0.0801364f, 0.570049f, 0.600878f, 0.0826094f, 0.94344f, 0.445363f, 0.446237f, 0.197255f, 0.45926f, 0.885508f, 0.812071f, 0.424999f, 0.339396f, 0.61542f, 0.801851f, 0.580263f, 0.0226934f, 0.313388f, 0.578829f, 0.374605f, 0.784718f, 0.578807f, 0.211513f, 0.928041f, 0.965184f, 0.284469f, 0.112641f, 0.832183f, 0.838636f, 0.00177267f, 0.765646f, 0.25224f, 0.55226f, 0.539089f, 0.664783f, 0.981227f, 0.760706f, 0.0514444f, 0.0934847f, 0.0465348f, 0.558286f, 0.907634f, 0.382844f, 0.574478f, 0.0398199f, 0.388391f, 0.228121f, 0.713064f, 0.882326f, 0.61628f, 0.455327f, 0.122208f, 0.926622f, 0.765222f, 0.929361f, 0.855264f, 0.078441f, 0.31893f, 0.621053f, 0.453362f, 0.153213f, 0.46565f, 0.227835f, 0.291579f, 0.194077f, 0.93233f, 0.989632f, 0.919703f, 0.832392f, 0.792795f, 0.550827f, 0.886083f, 0.846107f, 0.35329f, 0.0121923f, 0.451933f, 0.663498f, 0.997557f, 0.468175f, 0.916588f, 0.309966f, 0.645232f, 0.087717f, 0.39257f, 0.630981f, 0.519081f, 0.582607f, 0.91818f, 0.61363f, 0.186096f, 0.532463f, 0.731188f, 0.909257f, 0.805161f, 0.0685559f, 0.780836f, 0.509562f, 0.778068f, 0.572497f, 0.835978f, 0.24032f, 0.353555f, 0.859011f, 0.604704f, 0.623506f, 0.679616f, 0.536171f, 0.830041f, 0.610155f, 0.827619f, 0.0802732f, 0.192093f, 0.254594f, 0.0635951f, 0.557926f, 0.157881f, 0.994781f, 0.390153f, 0.339989f, 0.953151f, 0.624543f, 0.934007f, 0.262501f, 0.524387f, 0.699062f, 0.253728f, 0.37125f, 0.727105f, 0.767199f, 0.882345f, 0.955355f, 0.362745f, 0.350257f, 0.246785f, 0.593549f, 0.24824f, 0.891887f, 0.893343f, 0.815335f, 0.628436f, 0.0511543f, 0.0537873f, 0.783568f, 0.567237f, 0.463775f, 0.0825298f, 0.305697f, 0.816257f, 0.818698f, 0.472745f, 0.265784f, 0.606642f, 0.504678f, 0.0895341f, 0.157104f, 0.752828f, 0.0362217f, 0.551417f, 0.848644f, 0.263882f, 0.960596f, 0.773697f, 0.124055f, 0.0506841f, 0.792589f, 0.215727f, 0.111101f, 0.415109f, 0.145027f, 0.889637f, 0.497904f, 0.361074f, 0.755449f, 0.442404f, 0.482078f, 0.802638f, 0.671628f, 0.0367703f, 0.565128f, 0.594261f, 0.490843f, 0.0935567f, 0.701285f, 0.388274f, 0.116071f, 0.481517f, 0.955268f, 0.933249f, 0.952566f, 0.160955f, 0.40389f, 0.893398f, 0.875578f, 0.768152f, 0.999904f, 0.537894f, 0.414038f, 0.260777f, 0.887919f, 0.452562f, 0.83896f, 0.999787f, 0.312943f, 0.604865f, 0.391353f, 0.24266f, 0.631627f, 0.347626f, 0.480514f, 0.475706f, 0.39494f, 0.0940579f, 0.0860045f, 0.6199f, 0.400146f, 0.584296f, 0.38691f, 0.411376f, 0.282076f, 0.570497f, 0.993794f, 0.956034f, 0.286617f, 0.566959f, 0.235066f, 0.49901f, 0.698238f, 0.750195f, 0.171546f, 0.434758f, 0.383917f, 0.863634f, 0.912861f, 0.555333f, 0.0149524f, 0.486947f, 0.0901688f, 0.175708f, 0.755796f, 0.28411f, 0.874395f, 0.46586f, 0.461822f, 0.982737f, 0.884454f, 0.341579f, 0.938815f, 0.21413f, 0.0163947f, 0.0823033f, 0.0262485f, 0.00922418f, 0.88355f, 0.489256f, 0.426046f, 0.0142034f, 0.686425f, 0.108414f, 0.960633f, 0.172541f, 0.288127f, 0.65564f, 0.544026f, 0.844684f, 0.782802f, 0.685936f, 0.899165f, 0.38209f, 0.262186f, 0.958105f, 0.827502f, 0.174824f, 0.406955f, 0.857473f, 0.373162f, 0.0842634f, 0.320952f, 0.454719f, 0.757906f, 0.595194f, 0.367628f, 0.800223f, 0.781486f, 0.600837f, 0.470053f, 0.242958f, 0.2793f, 0.403083f, 0.941732f, 0.81935f, 0.373362f, 0.378287f, 0.338918f, 0.365397f, 0.781183f, 0.0988392f, 0.877452f, 0.957223f, 0.78754f, 0.660712f, 0.368955f, 0.94748f, 0.026127f, 0.434759f, 0.401086f, 0.610533f, 0.951442f, 0.197315f, 0.209682f, 0.859322f, 0.00838967f, 0.439858f, 0.750969f, 0.145801f, 0.836012f, 0.466286f, 0.147904f, 0.326764f, 0.607017f, 0.177294f, 0.672328f, 0.652166f, 0.592166f, 0.833207f, 0.183496f, 0.733261f, 0.397153f, 0.618445f, 0.000366746f, 0.957096f, 0.533765f, 0.940296f, 0.207919f, 0.365332f, 0.647942f, 0.759587f, 0.292352f, 0.813574f, 0.76171f, 0.218685f, 0.093226f, 0.740719f, 0.587936f, 0.577583f, 0.736006f, 0.969154f, 0.952238f, 0.133613f, 0.758389f, 0.696985f, 0.582668f, 0.875353f, 0.76639f, 0.559415f, 0.605933f, 0.0389316f, 0.373498f, 0.935082f, 0.0809153f, 0.711166f, 0.600307f, 0.295324f, 0.74056f, 0.58386f, 0.664908f, 0.0252907f, 0.0884693f, 0.430309f, 0.708101f, 0.293711f, 0.240815f, 0.188063f, 0.188553f, 0.0168749f, 0.741539f, 0.869527f, 0.130696f, 0.81571f, 0.41825f, 0.428448f, 0.460647f, 0.649009f, 0.486002f, 0.233451f, 0.93064f, 0.971417f, 0.601498f, 0.455405f, 0.801179f, 0.434047f, 0.672158f, 0.519798f, 0.815082f, 0.441363f, 0.303562f, 0.250718f, 0.208747f, 0.387846f, 0.175246f, 0.418738f, 0.801075f, 0.92771f, 0.0658916f, 0.868843f, 0.837644f, 0.186486f, 0.381567f, 0.885882f, 0.340495f, 0.208673f, 0.130966f, 0.513921f, 0.458802f, 0.10599f, 0.0299906f, 0.0404579f, 0.865976f, 0.757386f, 0.334387f, 0.379078f, 0.163035f, 0.241718f, 0.110571f, 0.360631f, 0.736642f, 0.777862f, 0.67759f, 0.937055f, 0.234795f, 0.150221f, 0.913065f, 0.592081f, 0.0576773f, 0.790348f, 0.46455f, 0.907578f, 0.456741f, 0.450005f, 0.470878f, 0.0554506f, 0.431759f, 2.01181e-05f, 0.564749f, 0.997117f, 0.994438f, 0.682621f, 0.447522f, 0.757602f, 0.695597f, 0.726673f, 0.54065f, 0.625737f, 0.406653f, 0.784196f, 0.441998f, 0.259794f, 0.532077f, 0.693751f, 0.404864f, 0.15539f, 0.274393f, 0.0451235f, 0.346709f, 0.715367f, 0.551049f, 0.974224f, 0.252859f, 0.722708f, 0.238935f, 0.504082f, 0.841338f, 0.505651f, 0.096663f, 0.167197f, 0.70518f, 0.419434f, 0.0954384f, 0.834063f, 0.924045f, 0.250123f, 0.838178f, 0.515398f, 0.394269f, 0.973769f, 0.544868f, 0.220531f, 0.348264f, 0.471231f, 0.910399f, 0.371692f, 0.239035f, 0.283137f, 0.0198341f, 0.633999f, 0.017749f, 0.0224845f, 0.847823f, 0.0703067f, 0.269342f, 0.816295f, 0.139635f, 0.216818f, 0.738104f, 0.925015f, 0.582532f, 0.454695f, 0.514741f, 0.151348f, 0.247303f, 0.71083f, 0.616979f, 0.380606f, 0.558457f, 0.952899f, 0.837502f, 0.434478f, 0.107341f, 0.00448188f, 0.639574f, 0.276825f, 0.629249f, 0.450228f, 0.626403f, 0.29188f, 0.969095f, 0.836786f, 0.445677f, 0.29231f, 0.407464f, 0.610164f, 0.169872f, 0.966892f, 0.984232f, 0.383148f, 0.397382f, 0.54027f, 0.641753f, 0.0268946f, 0.953218f, 0.912571f, 0.647995f, 0.254991f, 0.953846f, 0.662719f, 0.892033f, 0.486095f, 0.555143f, 0.0331859f, 0.213047f, 0.669907f, 0.28687f, 0.382696f, 0.0998005f, 0.509422f, 0.183319f, 0.347713f, 0.241957f, 0.64566f, 0.331424f, 0.134321f, 0.73305f, 0.12066f, 0.0805394f, 0.920498f, 0.397307f, 0.20363f, 0.777729f, 0.947299f, 0.177939f, 0.880234f, 0.571719f, 0.300867f, 0.941472f, 0.0483151f, 0.80732f, 0.400853f, 0.431369f, 0.645346f, 0.416123f, 0.568809f, 0.267143f, 0.880516f, 0.78577f, 0.785678f, 0.0851067f, 0.00255534f, 0.157757f, 0.662201f, 0.915377f, 0.723373f, 0.352179f, 0.835847f, 0.512865f, 0.762769f, 0.0225603f, 0.438353f, 0.681039f, 0.505969f, 0.195328f, 0.2453f, 0.28594f, 0.367198f, 0.845016f, 0.872612f, 0.582698f, 0.998599f, 0.0558282f, 0.723992f, 0.984305f, 0.598939f, 0.677151f, 0.595001f, 0.211244f, 0.397399f, 0.220043f, 0.403597f, 0.164711f, 0.49826f, 0.229316f, 0.549678f, 0.640938f, 0.824668f, 0.0610166f, 0.968765f, 0.809941f, 0.127634f, 0.179147f, 0.613843f, 0.782951f, 0.43243f, 0.852956f, 0.588353f, 0.31927f, 0.930154f, 0.776681f, 0.371916f, 0.0454076f, 0.517232f, 0.417526f, 0.464681f, 0.334236f, 0.977484f, 0.56186f, 0.446042f, 0.863181f, 0.764683f, 0.722893f, 0.19873f, 0.452124f, 0.423359f, 0.250521f, 0.0408669f, 0.714988f, 0.454818f, 0.722377f, 0.442493f, 0.743869f, 0.750445f, 0.00896603f, 0.999637f, 0.859306f, 0.622052f, 0.00984311f, 0.915339f, 0.839071f, 0.622021f, 0.178664f, 0.655102f, 0.43843f, 0.00882884f, 0.874868f, 0.0839007f, 0.0698086f, 0.770121f, 0.0338071f, 0.106887f, 0.0125524f, 0.0927738f, 0.284345f, 0.368431f, 0.520371f, 0.804542f, 0.859059f, 0.698052f, 0.900442f, 0.635178f, 0.752663f, 0.819541f, 0.265296f, 0.761921f, 0.898906f, 0.347021f, 0.27233f, 0.978199f, 0.971507f, 0.731056f, 0.139336f, 0.902561f, 0.313997f, 0.130853f, 0.724506f, 0.406152f, 0.00781752f, 0.217576f, 0.477282f, 0.696602f, 0.631149f, 0.200357f, 0.552317f, 0.485827f, 0.687642f, 0.400412f, 0.0935699f, 0.622655f, 0.320318f, 0.821327f, 0.0553166f, 0.191568f, 0.105451f, 0.923379f, 0.865514f, 0.457129f, 0.329753f, 0.373028f, 0.0105954f, 0.344259f, 0.895799f, 0.513171f, 0.803857f, 0.845156f, 0.147428f, 0.123813f, 0.662467f, 0.552214f, 0.858177f, 0.740461f, 0.649366f, 0.420809f, 0.244729f, 0.956317f, 0.726337f, 0.546206f, 0.468602f, 0.761364f, 0.0537975f, 0.375349f, 0.821161f, 0.0733319f, 0.517111f, 0.535727f, 0.38521f, 0.787484f, 0.796368f, 0.647965f, 0.105453f, 0.254369f, 0.33338f, 0.647677f, 0.0612522f, 0.741927f, 0.349987f, 0.179408f, 0.6048f, 0.153559f, 0.354355f, 0.363531f, 0.37749f, 0.469923f, 0.381003f, 0.372826f, 0.366789f, 0.672025f, 0.523813f, 0.116648f, 0.612683f, 0.397663f, 0.134278f, 0.0901552f, 0.748652f, 0.916673f, 0.273518f, 0.47875f, 0.777335f, 0.967673f, 0.650504f, 0.19722f, 0.417324f, 0.463681f, 0.631837f, 0.261126f, 0.705794f, 0.512245f, 0.308212f, 0.876678f, 0.122392f, 0.628208f, 0.0640057f, 0.279337f, 0.175907f, 0.968879f, 0.588489f, 0.329921f, 0.931216f, 0.221119f, 0.966651f, 0.584124f, 0.358656f, 0.329617f, 0.141585f, 0.727031f, 0.123368f, 0.961685f, 0.80185f, 0.790325f, 0.319885f, 0.830949f, 0.875482f, 0.774923f, 0.382228f, 0.901703f, 0.530953f, 0.866276f, 0.410903f, 0.132908f, 0.5954f, 0.163553f, 0.220279f, 0.35274f, 0.965362f, 0.27438f, 0.613329f, 0.890423f, 0.601048f, 0.764333f, 0.90703f, 0.608397f, 0.832686f, 0.274695f, 0.634447f, 0.359276f, 0.904883f, 0.926244f, 0.00519944f, 0.784488f, 0.216816f, 0.154995f, 0.637794f, 0.0546875f, 0.137245f, 0.243194f, 0.861401f, 0.800531f, 0.12871f, 0.622076f, 0.608614f, 0.2866f, 0.746462f, 0.774047f, 0.315987f, 0.524368f, 0.159866f, 0.368889f, 0.0969622f, 0.163438f, 0.725631f, 0.807078f, 0.925556f, 0.434968f, 0.533191f, 0.918657f, 0.964278f, 0.828131f, 0.371973f, 0.654585f, 0.493809f, 0.284604f, 0.136881f, 0.891064f, 0.570485f, 0.200445f, 0.646669f, 0.868014f, 0.08682f, 0.768373f, 0.781637f, 0.466424f, 0.257744f, 0.459711f, 0.311552f, 0.127242f, 0.865274f, 0.384451f, 0.335898f, 0.273185f, 0.481254f, 0.963494f, 0.93857f, 0.886942f, 0.614986f, 0.460825f, 0.255676f, 0.894295f, 0.374841f, 0.907363f, 0.00195316f, 0.275656f, 0.709047f, 0.526044f, 0.719791f, 0.0798555f, 0.357383f, 0.606549f, 0.45923f, 0.706147f, 0.509634f, 0.113529f, 0.765745f, 0.22959f, 0.682917f, 0.701335f, 0.304154f, 0.876052f, 0.858176f, 0.929161f, 0.204912f, 0.26973f, 0.013806f, 0.781078f, 0.387176f, 0.502847f, 0.290296f, 0.836649f, 0.705063f, 0.946561f, 0.376247f, 0.556752f, 0.703012f, 0.314943f, 0.111907f, 0.933476f, 0.354623f, 0.949927f, 0.342079f, 0.696365f, 0.262628f, 0.099443f, 0.47574f, 0.265505f, 0.0510212f, 0.0982934f, 0.0999286f, 0.449118f, 0.883339f, 0.967085f, 0.955657f, 0.376495f, 0.869f, 0.47896f, 0.23083f, 0.814084f, 0.904404f, 0.696811f, 0.451695f, 0.611052f, 0.0439806f, 0.122199f, 0.0251573f, 0.243319f, 0.254371f, 0.636349f, 0.119272f, 0.0607113f, 0.248429f, 0.806315f, 0.894438f, 0.546285f, 0.863981f, 0.44801f, 0.0201322f, 0.290848f, 0.958003f, 0.313714f, 0.928208f, 0.979005f, 0.242459f, 0.562001f, 0.877748f, 0.449589f, 0.277236f, 0.365184f, 0.926922f, 0.736471f, 0.263271f, 0.966279f, 0.124347f, 0.137125f, 0.390781f, 0.589505f, 0.19321f, 0.183549f, 0.714863f, 0.150356f, 0.0459436f, 0.152114f, 0.824315f, 0.677068f, 0.113147f, 0.218698f, 0.282096f, 0.401187f, 0.0399562f, 0.423185f, 0.724604f, 0.938288f, 0.233997f, 0.635381f, 0.25946f, 0.0593494f, 0.193472f, 0.897208f, 0.311766f, 0.719876f, 0.405388f, 0.20024f, 0.435234f, 0.792184f, 0.897751f, 0.941537f, 0.455808f, 0.175604f, 0.990314f, 0.399315f, 0.339168f, 0.601757f, 0.538986f, 0.122057f, 0.637897f, 0.947413f, 0.912787f, 0.51636f, 0.761283f, 0.49637f, 0.424128f, 0.555598f, 0.170605f, 0.323017f, 0.666083f, 0.114823f, 0.790652f, 0.341084f, 0.737507f, 0.745447f, 0.0290631f, 0.269597f, 0.170961f, 0.563971f, 0.122285f, 0.814161f, 0.732418f, 0.0886575f, 0.238797f, 0.203901f, 0.274167f, 0.0434857f, 0.746683f, 0.855452f, 0.45143f, 0.318749f, 0.164572f, 0.691934f, 0.0904443f, 0.582871f, 0.741812f, 0.303127f, 0.295444f, 0.0657427f, 0.53616f, 0.330586f, 0.946181f, 0.205412f, 0.0506996f, 0.658036f, 0.321776f, 0.785606f, 0.675734f, 0.898579f, 0.389835f, 0.344278f, 0.499876f, 0.87039f, 0.486042f, 0.128081f, 0.983264f, 0.0132197f, 0.997429f, 0.0517228f, 0.817453f, 0.90482f, 0.482922f, 0.562401f, 0.79105f, 0.0639654f, 0.0137915f, 0.8553f, 0.990751f, 0.06176f, 0.793787f, 0.488596f, 0.320254f, 0.172518f, 0.70721f, 0.241924f, 0.0797175f, 0.224385f, 0.774535f, 0.45973f, 0.196836f, 0.978669f, 0.200328f, 0.174035f, 0.284143f, 0.690624f, 0.812423f, 0.883215f, 0.710838f, 0.205723f, 0.313969f, 0.414089f, 0.923223f, 0.0447278f, 0.303542f, 0.530226f, 0.396591f, 0.946516f, 0.580364f, 0.0480212f, 0.950906f, 0.321324f, 0.0490739f, 0.19271f, 0.186925f, 0.190458f, 0.217935f, 0.279079f, 0.701741f, 0.822059f, 0.665425f, 0.879266f, 0.550173f, 0.799985f, 0.772671f, 0.227032f, 0.241123f, 0.173069f, 0.628549f, 0.487161f, 0.387292f, 0.77329f, 0.838473f, 0.505906f, 0.0632759f, 0.214405f, 0.137743f, 0.720014f, 0.806922f, 0.796701f, 0.52869f, 0.423776f, 0.140956f, 0.4748f, 0.412897f, 0.347936f, 0.0529069f, 0.989484f, 0.0128336f, 0.564307f, 0.0052823f, 0.824553f, 0.596908f, 0.521481f, 0.121875f, 0.336453f, 0.318245f, 0.497799f, 0.0122771f, 0.214458f, 0.0498897f, 0.129829f, 0.0144892f, 0.647091f, 0.77252f, 0.117643f, 0.782651f, 0.426921f, 0.860579f, 0.915341f, 0.259429f, 0.470326f, 0.0109178f, 0.0174838f, 0.847082f, 0.788038f, 0.0903463f, 0.897862f, 0.279333f, 0.100074f, 0.314668f, 0.440822f, 0.165319f, 0.470265f, 0.233672f, 0.584429f, 0.969813f, 0.906782f, 0.873632f, 0.122227f, 0.731775f, 0.409216f, 0.757996f, 0.244736f, 0.201908f, 0.291042f, 0.0708636f, 0.742604f, 0.294348f, 0.892837f, 0.505908f, 0.119993f, 0.337955f, 0.16956f, 0.514808f, 0.385131f, 0.844181f, 0.569758f, 0.636196f, 0.290218f, 0.262795f, 0.59575f, 0.378289f, 0.18943f, 0.530439f, 0.877016f, 0.504115f, 0.744198f, 0.931448f, 0.729929f, 0.81529f, 0.151229f, 0.998913f, 0.683131f, 0.533626f, 0.98593f, 0.789981f, 0.0445395f, 0.591837f, 0.640817f, 0.852281f, 0.252853f, 0.827442f, 0.907725f, 0.102757f, 0.154082f, 0.426429f, 0.181066f, 0.121804f, 0.301885f, 0.52507f, 0.364617f, 0.736206f, 0.27141f, 0.767552f, 0.624946f, 0.169726f, 0.397797f, 0.598205f, 0.404912f, 0.240592f, 0.910604f, 0.638112f, 0.939611f, 0.858809f, 0.0343435f, 0.783867f, 0.477592f, 0.609369f, 0.493529f, 0.080321f, 0.0363176f, 0.218583f, 0.637044f, 0.823448f, 0.547286f, 0.380453f, 0.822243f, 0.234039f, 0.707453f, 0.172201f, 0.416438f, 0.114823f, 0.936148f, 0.594684f, 0.113408f, 0.552317f, 0.570245f, 0.888815f, 0.0233248f, 0.039044f, 0.655267f, 0.137629f, 0.776311f, 0.980918f, 0.655818f, 0.501625f, 0.0939003f, 0.251409f, 0.829194f, 0.23166f, 0.779821f, 0.726178f, 0.480105f, 0.407399f, 0.600394f, 0.942736f, 0.743737f, 0.0551799f, 0.962286f, 0.0436438f, 0.331146f, 0.416607f, 0.65115f, 0.759709f, 0.418019f, 0.294796f, 0.349766f, 0.798081f, 0.337856f, 0.4491f, 0.882495f, 0.695294f, 0.595625f, 0.752904f, 0.990689f, 0.232347f, 0.34245f, 0.136882f, 0.306638f, 0.0838308f, 0.415441f, 0.827331f, 0.857429f, 0.275774f, 0.417677f, 0.954315f, 0.833945f, 0.929689f, 0.759664f, 0.00218092f, 0.0914797f, 0.684926f, 0.437745f, 0.639114f, 0.378457f, 0.561354f, 0.26847f, 0.521602f, 0.692652f, 0.563274f, 0.561891f, 0.0305475f, 0.89507f, 0.399713f, 0.0675574f, 0.104589f, 0.814862f, 0.812869f, 0.245546f, 0.735254f, 0.158187f, 0.613588f, 0.135882f, 0.637868f, 0.968308f, 0.496096f, 0.539877f, 0.238747f, 0.781662f, 0.0322914f, 0.560642f, 0.892621f, 0.415119f, 0.776161f, 0.673384f, 0.0767484f, 0.676924f, 0.302974f, 0.383223f, 0.543464f, 0.962444f, 0.0686625f, 0.575793f, 0.46524f, 0.258082f, 0.226922f, 0.678342f, 0.616491f, 0.222386f, 0.0482167f, 0.954957f, 0.731126f, 0.750062f, 0.869887f, 0.125806f, 0.14666f, 0.973101f, 0.56538f, 0.477578f, 0.581036f, 0.905772f, 0.146275f, 0.145673f, 0.6169f, 0.774936f, 0.324981f, 0.755871f, 0.548047f, 0.908285f, 0.989573f, 0.384762f, 0.171821f, 0.193951f, 0.633262f, 0.543976f, 0.67202f, 0.978979f, 0.504997f, 0.722625f, 0.282309f, 0.481227f, 0.540674f, 0.128014f, 0.038791f, 0.199907f, 0.193449f, 0.239077f, 0.575561f, 0.186136f, 0.210012f, 0.731633f, 0.274126f, 0.725303f, 0.613663f, 0.00822674f, 0.963265f, 0.139653f, 0.689404f, 0.54929f, 0.870192f, 0.347242f, 0.374234f, 0.826712f, 0.801345f, 0.941538f, 0.113853f, 0.968834f, 0.543264f, 0.24821f, 0.918565f, 0.76508f, 0.723339f, 0.3206f, 0.377777f, 0.31583f, 0.843659f, 0.0774698f, 0.504317f, 0.205468f, 0.780123f, 0.0157715f, 0.930318f, 0.871669f, 0.144924f, 0.953773f, 0.017101f, 0.148008f, 0.263657f, 0.363006f, 0.338895f, 0.606832f, 0.206961f, 0.150894f, 0.234902f, 0.638176f, 0.348061f, 0.326417f, 0.134896f, 0.747952f, 0.993909f, 0.842481f, 0.0685452f, 0.762195f, 0.511804f, 0.300961f, 0.513149f, 0.360493f, 0.889725f, 0.324002f, 0.310859f, 0.982326f, 0.0466702f, 0.593704f, 0.473467f, 0.924189f, 0.880248f, 0.495106f, 0.927142f, 0.377748f, 0.706322f, 0.804293f, 0.0720817f, 0.540124f, 0.0865108f, 0.224245f, 0.850507f, 0.660529f, 0.179725f, 0.49826f, 0.369576f, 0.255032f, 0.540571f, 0.695954f, 0.302765f, 0.369215f, 0.214657f, 0.946945f, 0.125324f, 0.775449f, 0.921719f, 0.397591f, 0.287938f, 0.371397f, 0.917927f, 0.551756f, 0.121148f, 0.0306337f, 0.654094f, 0.518487f, 0.658671f, 0.121926f, 0.0492066f, 0.148802f, 0.490335f, 0.134516f, 0.382621f, 0.23552f, 0.358663f, 0.466818f, 0.635814f, 0.207731f, 0.376355f, 0.54403f, 0.873778f, 0.71168f, 0.26768f, 0.0789914f, 0.828967f, 0.973269f, 0.358554f, 0.74177f, 0.572445f, 0.917102f, 0.326703f, 0.796317f, 0.352011f, 0.703486f, 0.594356f, 0.856993f, 0.84417f, 0.557007f, 0.744967f, 0.78415f, 0.423279f, 0.000984909f, 0.647776f, 0.740817f, 0.914564f, 0.461189f, 0.77823f, 0.136048f, 0.475483f, 0.5123f, 0.554478f, 0.962615f, 0.982408f, 0.0706779f, 0.11223f, 0.583584f, 0.273575f, 0.225014f, 0.144659f, 0.361406f, 0.491196f, 0.478521f, 0.081707f, 0.0301563f, 0.444406f, 0.358035f, 0.719774f, 0.863879f, 0.123985f, 0.79374f, 0.632618f, 0.113078f, 0.612772f, 0.62851f, 0.622898f, 0.502184f, 0.727925f, 0.778663f, 0.819516f, 0.746609f, 0.98635f, 0.698937f, 0.1097f, 0.318558f, 0.779733f, 0.890602f, 0.917645f, 0.611887f, 0.45478f, 0.576885f, 0.443948f, 0.667736f, 0.0438628f, 0.135404f, 0.969112f, 0.292939f, 0.235428f, 0.779689f, 0.0654341f, 0.113275f, 0.0231172f, 0.824732f, 0.241197f, 0.611541f, 0.561196f, 0.483876f, 0.00924277f, 0.72585f, 0.0944964f, 0.256522f, 0.407835f, 0.355858f, 0.144608f, 0.412801f, 0.300103f, 0.707576f, 0.340839f, 0.00384349f, 0.20214f, 0.815478f, 0.0877837f, 0.175005f, 0.407143f, 0.737904f, 0.615384f, 0.264751f, 0.0491118f, 0.105714f, 0.310845f, 0.0893253f, 0.454752f, 0.738792f, 0.767073f, 0.0513467f, 0.55891f, 0.415492f, 0.352081f, 0.668057f, 0.173346f, 0.591706f, 0.396506f, 0.701327f, 0.762703f, 0.198313f, 0.367465f, 0.233534f, 0.936811f, 0.32238f, 0.921656f, 0.257443f, 0.966172f, 0.877198f, 0.457192f, 0.0243984f, 0.526178f, 0.554127f, 0.884106f, 0.894318f, 0.356031f, 0.671404f, 0.696101f, 0.320449f, 0.568093f, 0.617295f, 0.164693f, 0.350625f, 0.383226f, 0.0108135f, 0.248181f, 0.583379f, 0.377071f, 0.692598f, 0.506324f, 0.277783f, 0.441357f, 0.911937f, 0.592934f, 0.454812f, 0.902189f, 0.76761f, 0.200745f, 0.124683f, 0.258897f, 0.0483087f, 0.438118f, 0.588599f, 0.605622f, 0.134144f, 0.368316f, 0.832876f, 0.125596f, 0.660043f, 0.789469f, 0.686678f, 0.343531f, 0.107777f, 0.919302f, 0.0344328f, 0.976639f, 0.652386f, 0.645979f, 0.644524f, 0.165309f, 0.806666f, 0.164919f, 0.897345f, 0.761959f, 0.4564f, 0.63335f, 0.10737f, 0.831791f, 0.629525f, 0.742249f, 0.730717f, 0.477335f, 0.351989f, 0.213288f, 0.888119f, 0.957805f, 0.525586f, 0.557116f, 0.768024f, 0.00384484f, 0.280657f, 0.890381f, 0.0863566f, 0.506043f, 0.230096f, 0.124454f, 0.40966f, 0.72538f, 0.416017f, 0.857093f, 0.139743f, 0.647419f, 0.684714f, 0.117144f, 0.130084f, 0.216183f, 0.814623f, 0.00856023f, 0.346146f, 0.105752f, 0.757444f, 0.379316f, 0.235754f, 0.180546f, 0.315897f, 0.266971f, 0.30603f, 0.464522f, 0.537007f, 0.0650385f, 0.664919f, 0.558193f, 0.870485f, 0.814455f, 0.10381f, 0.618141f, 0.209624f, 0.0183247f, 0.315218f, 0.510714f, 0.911416f, 0.666801f, 0.560948f, 0.257764f, 0.141677f, 0.772748f, 0.378741f, 0.0294f, 0.943343f, 0.968386f, 0.630751f, 0.469737f, 0.687592f, 0.589797f, 0.603339f, 0.127696f, 0.516254f, 0.129981f, 0.203356f, 0.548175f, 0.190491f, 0.29231f, 0.327737f, 0.534063f, 0.357824f, 0.506308f, 0.566082f, 0.410452f, 0.893481f, 0.841993f, 0.23095f, 0.625385f, 0.882701f, 0.817725f, 0.865872f, 0.399528f, 0.0597314f, 0.588846f, 0.599071f, 0.203499f, 0.424063f, 0.404593f, 0.871065f, 0.918456f, 0.252408f, 0.659317f, 0.928511f, 0.643643f, 0.529205f, 0.176178f, 0.68171f, 0.145582f, 0.614251f, 0.0378445f, 0.195719f, 0.340559f, 0.38689f, 0.463108f, 0.469367f, 0.180748f, 0.259177f, 0.279443f, 0.85095f, 0.983037f, 0.00437248f, 0.567231f, 0.163868f, 0.814096f, 0.918738f, 0.361555f, 0.298008f, 0.809231f, 0.751634f, 0.499868f, 0.437117f, 0.0794018f, 0.671718f, 0.980115f, 0.474996f, 0.663312f, 0.42995f, 0.255926f, 0.373481f, 0.433671f, 0.934134f, 0.552791f, 0.778007f, 0.496655f, 0.815432f, 0.743138f, 0.647624f, 0.62516f, 0.422604f, 0.344029f, 0.987558f, 0.749323f, 0.934349f, 0.705713f, 0.721724f, 0.139055f, 0.190689f, 0.0513739f, 0.8871f, 0.0976423f, 0.0129031f, 0.903139f, 0.259316f, 0.639287f, 0.00283311f, 0.676172f, 0.0815618f, 0.686434f, 0.782848f, 0.892786f, 0.711916f, 0.157514f, 0.237505f, 0.991095f, 0.746823f, 0.724759f, 0.738336f, 0.516411f, 0.200567f, 0.569235f, 0.674083f, 0.359822f, 0.225426f, 0.852373f, 0.661127f, 0.323018f, 0.227818f, 0.0834445f, 0.796956f, 0.914307f, 0.061523f, 0.333107f, 0.825767f, 0.682765f, 0.559472f, 0.934191f, 0.482074f, 0.437265f, 0.887334f, 0.745784f, 0.167249f, 0.491538f, 0.221516f, 0.737791f, 0.741839f, 0.909253f, 0.056869f, 0.232827f, 0.5376f, 0.173416f, 0.941524f, 0.993636f, 0.700648f, 0.0409675f, 0.394662f, 0.0675375f, 0.298768f, 0.953611f, 0.232216f, 0.969508f, 0.0117371f, 0.479528f, 0.371552f, 0.177228f, 0.729354f, 0.00619975f, 0.940133f, 0.974401f, 0.385155f, 0.00112071f, 0.600007f, 0.171806f, 0.890442f, 0.555444f, 0.513182f, 0.587277f, 0.42137f, 0.556605f, 0.968129f, 0.277854f, 0.18552f, 0.512399f, 0.721237f, 0.970731f, 0.842254f, 0.254123f, 0.915771f, 0.599749f, 0.540368f, 0.0909383f, 0.222427f, 0.00798128f, 0.275542f, 0.852573f, 0.172977f, 0.665911f, 0.305373f, 0.890036f, 0.1658f, 0.050611f, 0.199428f, 0.93813f, 0.315431f, 0.400092f, 0.58941f, 0.217099f, 0.683975f, 0.446791f, 0.44217f, 0.375851f, 0.81193f, 0.929381f, 0.61943f, 0.283778f, 0.292124f, 0.520079f, 0.612808f, 0.503171f, 0.0519591f, 0.781982f, 0.0112063f, 0.426082f, 0.731963f, 0.457992f, 0.456833f, 0.243453f, 0.989789f, 0.706306f, 0.329734f, 0.990201f, 0.900563f, 0.0176693f, 0.610208f, 0.328353f, 0.515748f, 0.487477f, 0.727222f, 0.244993f, 0.109078f, 0.9493f, 0.164468f, 0.623749f, 0.550423f, 0.837159f, 0.614272f, 0.98444f, 0.202044f, 0.974959f, 0.213957f, 0.0106738f, 0.17913f, 0.0573865f, 0.898056f, 0.400389f, 0.228625f, 0.100919f, 0.571154f, 0.557923f, 0.588339f, 0.713439f, 0.954356f, 0.612362f, 0.31241f, 0.108665f, 0.483927f, 0.134253f, 0.0373658f, 0.200006f, 0.0884437f, 0.875433f, 0.0193375f, 0.925027f, 0.948458f, 0.0449223f, 0.470591f, 0.468375f, 0.766846f, 0.986304f, 0.0576001f, 0.0450738f, 0.8804f, 0.856861f, 0.376115f, 0.832475f, 0.277332f, 0.462522f, 0.396504f, 0.129171f, 0.0882361f, 0.565923f, 0.872913f, 0.095828f, 0.473219f, 0.335848f, 0.858329f, 0.535445f, 0.726678f, 0.873368f, 0.823086f, 0.652207f, 0.980642f, 0.569979f, 0.924064f, 0.287433f, 0.409364f, 0.442375f, 0.111637f, 0.151033f, 0.516042f, 0.124917f, 0.0960117f, 0.810186f, 0.999034f, 0.660116f, 0.811946f, 0.982929f, 0.798113f, 0.319457f, 0.109237f, 0.997054f, 0.103119f, 0.888453f, 0.66031f, 0.963913f, 0.336695f, 0.406176f, 0.771933f, 0.364443f, 0.339033f, 0.229561f, 0.883676f, 0.562639f, 0.0927408f, 0.733701f, 0.674673f, 0.240753f, 0.423767f, 0.0745625f, 0.424083f, 0.0612876f, 0.0606274f, 0.187531f, 0.486008f, 0.682745f, 0.509585f, 0.431587f, 0.553392f, 0.188209f, 0.958802f, 0.60708f, 0.864467f, 0.28405f, 0.313113f, 0.257204f, 0.401804f, 0.48159f, 0.943549f, 0.341534f, 0.978812f, 0.345999f, 0.853777f, 0.505901f, 0.336448f, 0.348729f, 0.0783527f, 0.585875f, 0.360183f, 0.0983696f, 0.203078f, 0.638107f, 0.636812f, 0.622545f, 0.301667f, 0.778487f, 0.46337f, 0.955994f, 0.365957f, 0.519406f, 0.0875206f, 0.105982f, 0.459095f, 0.850821f, 0.351398f, 0.231456f, 0.786247f, 0.807717f, 0.10981f, 0.293254f, 0.278256f, 0.224314f, 0.248935f, 0.0625637f, 0.25175f, 0.859811f, 0.475158f, 0.648331f, 0.186225f, 0.728881f, 0.473795f, 0.0749256f, 0.618376f, 0.344138f, 0.710286f, 0.033892f, 0.601635f, 0.477196f, 0.0579297f, 0.414087f, 0.999735f, 0.467269f, 0.57317f, 0.487919f, 0.688687f, 0.99023f, 0.952865f, 0.342888f, 0.162112f, 0.779636f, 0.606866f, 0.879109f, 0.102022f, 0.136183f, 0.202889f, 0.880669f, 0.1599f, 0.630564f, 0.32756f, 0.673156f, 0.217449f, 0.983035f, 0.73512f, 0.181484f, 0.645252f, 0.104394f, 0.409139f, 0.184051f, 0.53203f, 0.523733f, 0.512527f, 0.237084f, 0.833945f, 0.564631f, 0.76993f, 0.465717f, 0.213226f, 0.784222f, 0.791822f, 0.38873f, 0.529419f, 0.939541f, 0.72214f, 0.152588f, 0.88955f, 0.294117f, 0.306257f, 0.622878f, 0.116946f, 0.93452f, 0.783403f, 0.970702f, 0.145569f, 0.877434f, 0.18653f, 0.878954f, 0.425119f, 0.145386f, 0.723857f, 0.82325f, 0.271551f, 0.897703f, 0.688842f, 0.47597f, 0.344448f, 0.676271f, 0.239445f, 0.176618f, 0.599697f, 0.869274f, 0.752876f, 0.248275f, 0.459451f, 0.303438f, 0.943959f, 0.0233897f, 0.689079f, 0.131307f, 0.276802f, 0.252533f, 0.216595f, 0.260804f, 0.615085f, 0.165933f, 0.932283f, 0.0189436f, 0.908477f, 0.197883f, 0.169859f, 0.936382f, 0.862876f, 0.0519827f, 0.946605f, 0.860519f, 0.837886f, 0.807913f, 0.259528f, 0.75109f, 0.319037f, 0.945713f, 0.614323f, 0.0918232f, 0.770758f, 0.82073f, 0.290179f, 0.416657f, 0.741327f, 0.978016f, 0.28442f, 0.739228f, 0.546107f, 0.621335f, 0.920388f, 0.829804f, 0.177259f, 0.742716f, 0.447198f, 0.0543332f, 0.571825f, 0.307415f, 0.00593027f, 0.25037f, 0.459257f, 0.0344686f, 0.856461f, 0.415075f, 0.192247f, 0.882257f, 0.782471f, 0.078356f, 0.478558f, 0.983452f, 0.665169f, 0.907616f, 0.575121f, 0.952039f, 0.583118f, 0.317617f, 0.508727f, 0.09096f, 0.863859f, 0.509512f, 0.0303329f, 0.180813f, 0.779974f, 0.727272f, 0.346672f, 0.650674f, 0.327377f, 0.0122835f, 0.43268f, 0.0605496f, 0.614263f, 0.880262f, 0.412614f, 0.131595f, 0.391251f, 0.363229f, 0.114194f, 0.252032f, 0.129373f, 0.984332f, 0.771638f, 0.92286f, 0.552292f, 0.326887f, 0.600196f, 0.149717f, 0.185568f, 0.854102f, 0.48371f, 0.242598f, 0.0710319f, 0.41665f, 0.579909f, 0.0500394f, 0.380013f, 0.940424f, 0.805382f, 0.56579f, 0.241516f, 0.612358f, 0.0355655f, 0.426345f, 0.13804f, 0.575098f, 0.526564f, 0.45933f, 0.0160067f, 0.681902f, 0.581776f, 0.751469f, 0.201621f, 0.807885f, 0.0914784f, 0.559148f, 0.446081f, 0.477345f, 0.606354f, 0.7551f, 0.22431f, 0.450545f, 0.80186f, 0.67739f, 0.603162f, 0.282654f, 0.40956f, 0.088474f, 0.179383f, 0.0108372f, 0.988068f, 0.0397988f, 0.859434f, 0.948113f, 0.586718f, 0.806934f, 0.545269f, 0.546839f, 0.990151f, 0.319847f, 0.767399f, 0.0515536f, 0.481835f, 0.821892f, 0.0410275f, 0.48091f, 0.758984f, 0.0180316f, 0.537854f, 0.444937f, 0.126727f, 0.235564f, 0.523965f, 0.345516f, 0.274046f, 0.917508f, 0.760029f, 0.524916f, 0.0662717f, 0.0170895f, 0.358614f, 0.683861f, 0.943013f, 0.156716f, 0.844151f, 0.663587f, 0.866454f, 0.0168145f, 0.826592f, 0.82983f, 0.207432f, 0.547981f, 0.407784f, 0.94554f, 0.184781f, 0.721642f, 0.454674f, 0.00892544f, 0.270488f, 0.590793f, 0.77615f, 0.577345f, 0.841434f, 0.0208134f, 0.316179f, 0.654635f, 0.130885f, 0.856055f, 0.531487f, 0.837832f, 0.892117f, 0.303436f, 0.892567f, 0.257625f, 0.345777f, 0.439492f, 0.339525f, 0.680547f, 0.924257f, 0.556761f, 0.360527f, 0.0373072f, 0.691515f, 0.849526f, 0.401483f, 0.248336f, 0.500587f, 0.507617f, 0.68883f, 0.777038f, 0.579384f, 0.314063f, 0.45054f, 0.692744f, 0.922073f, 0.363166f, 0.379201f, 0.898792f, 0.874305f, 0.489274f, 0.495039f, 0.168172f, 0.713977f, 0.285693f, 0.636691f, 0.461037f, 0.958287f, 0.386788f, 0.606482f, 0.943823f, 0.393971f, 0.806899f, 0.969267f, 0.265483f, 0.00688445f, 0.126971f, 0.889896f, 0.163123f, 0.180998f, 0.659284f, 0.277068f, 0.738994f, 0.261025f, 0.620284f, 0.981023f, 0.878212f, 0.584194f, 0.433478f, 0.172546f, 0.239582f, 0.900551f, 0.731722f, 0.72525f, 0.0364797f, 0.380943f, 0.0560819f, 0.636758f, 0.379458f, 0.496245f, 0.201124f, 0.525029f, 0.097513f, 0.713223f, 0.777213f, 0.321315f, 0.588017f, 0.137905f, 0.0308744f, 0.407071f, 0.417575f, 0.691682f, 0.449768f, 0.210941f, 0.168387f, 0.547847f, 0.0190578f, 0.358626f, 0.217944f, 0.266789f, 0.384814f, 0.178275f, 0.319187f, 0.176099f, 0.648581f, 0.132654f, 0.59147f, 0.441681f, 0.193602f, 0.64019f, 0.224163f, 0.521791f, 0.229483f, 0.400564f, 0.859051f, 0.990699f, 0.756986f, 0.661818f, 0.273199f, 0.481812f, 0.379571f, 0.62626f, 0.75063f, 0.267153f, 0.0848633f, 0.57962f, 0.153337f, 0.505616f, 0.816552f, 0.72844f, 0.873409f, 0.0295758f, 0.382443f, 0.235175f, 0.720607f, 0.255155f, 0.742532f, 0.87929f, 0.132569f, 0.0199717f, 0.658568f, 0.425309f, 0.163051f, 0.57509f, 0.512819f, 0.882217f, 0.110785f, 0.121593f, 0.499359f, 0.501363f, 0.0110796f, 0.350897f, 0.792638f, 0.507977f, 0.0209075f, 0.276143f, 0.508f, 0.00724977f, 0.103344f, 0.209396f, 0.0231938f, 0.515563f, 0.107003f, 0.277002f, 0.527344f, 0.592236f, 0.117529f, 0.308302f, 0.1221f, 0.588145f, 0.955425f, 0.296622f, 0.570674f, 0.23232f, 0.461135f, 0.61222f, 0.582919f, 0.644999f, 0.643474f, 0.903756f, 0.920346f, 0.745006f, 0.116656f, 0.11924f, 0.766236f, 0.656377f, 0.0764579f, 0.108666f, 0.240429f, 0.0280635f, 0.441572f, 0.190907f, 0.429092f, 0.0417142f, 0.390164f, 0.856827f, 0.039781f, 0.569936f, 0.573069f, 0.430331f, 0.791502f, 0.660886f, 0.659253f, 0.477999f, 0.255375f, 0.842358f, 0.0236607f, 0.200562f, 0.731403f, 0.761028f, 0.173075f, 0.0320001f, 0.596479f, 0.00482521f, 0.721248f, 0.260674f, 0.0856477f, 0.505605f, 0.684763f, 0.274704f, 0.314994f, 0.0977564f, 0.0548509f, 0.428415f, 0.755969f, 0.202471f, 0.54318f, 0.762787f, 0.239097f, 0.502653f, 0.0991959f, 0.866603f, 0.710436f, 0.624354f, 0.231825f, 0.895833f, 0.707724f, 0.704006f, 0.588331f, 0.512995f, 0.490282f, 0.102971f, 0.644206f, 0.278309f, 0.619492f, 0.10739f, 0.031569f, 0.229596f, 0.459631f, 0.6857f, 0.819448f, 0.0975513f, 0.148909f, 0.526895f, 0.499892f, 0.753641f, 0.627101f, 0.794425f, 0.665003f, 0.219606f, 0.597999f, 0.538522f, 0.062112f, 0.383639f, 0.236073f, 0.59815f, 0.540973f, 0.908751f, 0.7413f, 0.2057f, 0.70532f, 0.245086f, 0.530658f, 0.134414f, 0.195691f, 0.276764f, 0.944645f, 0.239167f, 0.146722f, 0.97706f, 0.396387f, 0.193859f, 0.735596f, 0.458095f, 0.590589f, 0.220982f, 0.713774f, 0.577566f, 0.864676f, 0.699872f, 0.154451f, 0.929021f, 0.951376f, 0.506626f, 0.164632f, 0.595988f, 0.0653519f, 0.108536f, 0.254216f, 0.831912f, 0.57108f, 0.840132f, 0.293258f, 0.300906f, 0.213836f, 0.687519f, 0.125429f, 0.0154527f, 0.0319853f, 0.942009f, 0.146573f, 0.804681f, 0.247562f, 0.040849f, 0.0813666f, 0.297249f, 0.176232f, 0.295414f, 0.551832f, 0.649087f, 0.780787f, 0.247937f, 0.597096f, 0.0236449f, 0.879439f, 0.889063f, 0.397344f, 0.91092f, 0.603655f, 0.521426f, 0.195081f, 0.26693f, 0.27918f, 0.198366f, 0.254383f, 0.215563f, 0.767551f, 0.295591f, 0.674947f, 0.0420507f, 0.423799f, 0.825114f, 0.950827f, 0.622371f, 0.712773f, 0.245555f, 0.576014f, 0.414811f, 0.288255f, 0.119534f, 0.62588f, 0.700754f, 0.749591f, 0.956372f, 0.648471f, 0.592476f, 0.838473f, 0.842345f, 0.4325f, 0.47928f, 0.455091f, 0.926852f, 0.783866f, 0.377821f, 0.963088f, 0.0190461f, 0.769527f, 0.0576378f, 0.902081f, 0.409815f, 0.564548f, 0.136893f, 0.809001f, 0.432426f, 0.975666f, 0.973344f, 0.611916f, 0.963548f, 0.340273f, 0.873961f, 0.36428f, 0.740172f, 0.467133f, 0.524688f, 0.934967f, 0.370723f, 0.361181f, 0.356284f, 0.000200186f, 0.796003f, 0.831472f, 0.285829f, 0.511629f, 0.275481f, 0.788226f, 0.983344f, 0.772781f, 0.914294f, 0.8378f, 0.892115f, 0.372784f, 0.299782f, 0.321983f, 0.574391f, 0.270408f, 0.565983f, 0.754949f, 0.658373f, 0.304438f, 0.918812f, 0.31163f, 0.900469f, 0.172526f, 0.85195f, 0.303503f, 0.317889f, 0.352573f, 0.651841f, 0.745108f, 0.227289f, 0.983212f, 0.742816f, 0.371624f, 0.120159f, 0.0976097f, 0.930425f, 0.458614f, 0.845312f, 0.714786f, 0.199871f, 0.113015f, 0.26686f, 0.431549f, 0.0113646f, 0.640045f, 0.355533f, 0.529051f, 0.179699f, 0.0987579f, 0.999858f, 0.0752601f, 0.850005f, 0.674929f, 0.567078f, 0.35619f, 0.345429f, 0.242207f, 0.487314f, 0.516147f, 0.693737f, 0.0315665f, 0.546881f, 0.989227f, 0.437677f, 0.398134f, 0.189141f, 0.236878f, 0.563278f, 0.221663f, 0.177436f, 0.881522f, 0.0182119f, 0.382613f, 0.59822f, 0.666022f, 0.429921f, 0.738024f, 0.0451276f, 0.39517f, 0.959361f, 0.302131f, 0.0510049f, 0.0609704f, 0.240774f, 0.303435f, 0.89799f, 0.0217171f, 0.463106f, 0.37171f, 0.636875f, 0.436676f, 0.601809f, 0.733721f, 0.861151f, 0.64748f, 0.437599f, 0.935772f, 0.0365896f, 0.6243f, 0.0631108f, 0.36212f, 0.220988f, 0.47579f, 0.688549f, 0.991528f, 0.344518f, 0.197676f, 0.473154f, 0.174777f, 0.682596f, 0.560983f, 0.655032f, 0.302366f, 0.274753f, 0.245009f, 0.404786f, 0.99377f, 0.426709f, 0.845011f, 0.970397f, 0.931478f, 0.444876f, 0.0903494f, 0.696205f, 0.17419f, 0.293931f, 0.87711f, 0.315322f, 0.506828f, 0.35034f, 0.758811f, 0.854096f, 0.973935f, 0.738458f, 0.390207f, 0.0589456f, 0.966723f, 0.0260099f, 0.965222f, 0.427509f, 0.90527f, 0.344511f, 0.689796f, 0.456483f, 0.223026f, 0.1372f, 0.0515334f, 0.640919f, 0.351446f, 0.477286f, 0.865731f, 0.978304f, 0.736284f, 0.312658f, 0.16982f, 0.777655f, 0.136753f, 0.993783f, 0.283717f, 0.206131f, 0.549611f, 0.445301f, 0.542021f, 0.238171f, 0.842911f, 0.362444f, 0.75791f, 0.836408f, 0.292169f, 0.885162f, 0.93835f, 0.144114f, 0.0772436f, 0.326158f, 0.844657f, 0.244554f, 0.122619f, 0.20847f, 0.649231f, 0.342979f, 0.893815f, 0.113022f, 0.60074f, 0.325661f, 0.0136643f, 0.525173f, 0.132422f, 0.187629f, 0.332155f, 0.0305176f, 0.13807f, 0.276103f, 0.949142f, 0.161537f, 0.0181558f, 0.935399f, 0.229618f, 0.683962f, 0.213664f, 0.426524f, 0.583467f, 0.65502f, 0.470636f, 0.859739f, 0.316601f, 0.667715f, 0.138434f, 0.359214f, 0.0113959f, 0.807722f, 0.605412f, 0.766416f, 0.317377f, 0.479528f, 0.880543f, 0.741589f, 0.244249f, 0.132463f, 0.699367f, 0.717938f, 0.786699f, 0.600406f, 0.984877f, 0.735642f, 0.897786f, 0.849399f, 0.474007f, 0.72506f, 0.660477f, 0.440065f, 0.598694f, 0.513666f, 0.639673f, 0.49764f, 0.652242f, 0.166539f, 0.518156f, 0.397441f, 0.0180683f, 0.368824f, 0.0028388f, 0.49821f, 0.560417f, 0.595594f, 0.387247f, 0.78124f, 0.178909f, 0.400339f, 0.0589393f, 0.536067f, 0.886363f, 0.844398f, 0.123283f, 0.212658f, 0.201029f, 0.734139f, 0.167901f, 0.0869218f, 0.27254f, 0.608849f, 0.219371f, 0.681524f, 0.579072f, 0.725842f, 0.227678f, 0.0397728f, 0.348688f, 0.483874f, 0.441994f, 0.83314f, 0.741778f, 0.862656f, 0.289275f, 0.549896f, 0.690008f, 0.40435f, 0.332849f, 0.057495f, 0.190851f, 0.0614963f, 0.372094f, 0.494503f, 0.223638f, 0.121088f, 0.694385f, 0.164f, 0.978939f, 0.0265477f, 0.783247f, 0.364793f, 0.0140538f, 0.113429f, 0.0859375f, 0.272075f, 0.511651f, 0.208955f, 0.148247f, 0.776097f, 0.266488f, 0.136438f, 0.738454f, 0.611663f, 0.56791f, 0.833214f, 0.959146f, 0.358978f, 0.207743f, 0.537063f, 0.437717f, 0.60199f, 0.383474f, 0.213916f, 0.125251f, 0.78066f, 0.482704f, 0.134592f, 0.880776f, 0.801872f, 0.208513f, 0.960464f, 0.947722f, 0.641671f, 0.202998f, 0.475369f, 0.12731f, 0.0263268f, 0.650302f, 0.363487f, 0.603842f, 0.0697654f, 0.533586f, 0.720898f, 0.663448f, 0.584509f, 0.0694609f, 0.924275f, 0.822067f, 0.375415f, 0.799756f, 0.694115f, 0.580293f, 0.334283f, 0.0922166f, 0.171261f, 0.71009f, 0.695641f, 0.983752f, 0.204798f, 0.725317f, 0.501215f, 0.326378f, 0.0791494f, 0.801844f, 0.0524501f, 0.538012f, 0.731976f, 0.639471f, 0.191962f, 0.938879f, 0.854176f, 0.626389f, 0.435476f, 0.213822f, 0.28105f, 0.511943f, 0.920372f, 0.966166f, 0.818484f, 0.491012f, 0.188083f, 0.632422f, 0.123717f, 0.568356f, 0.165152f, 0.172649f, 0.46527f, 0.78615f, 0.675015f, 0.306201f, 0.158993f, 0.0792014f, 0.967042f, 0.729708f, 0.488759f, 0.417579f, 0.836831f, 0.0639718f, 0.0951642f, 0.407389f, 0.247113f, 0.057035f, 0.91239f, 0.768096f, 0.133332f, 0.06445f, 0.319766f, 0.0494294f, 0.36631f, 0.409032f, 0.150527f, 0.341765f, 0.972424f, 0.773659f, 0.0102969f, 0.0621577f, 0.510706f, 0.412811f, 0.5055f, 0.460341f, 0.530126f, 0.577187f, 0.143287f, 0.0889278f, 0.24435f, 0.954416f, 0.333653f, 0.793141f, 0.422005f, 0.360843f, 0.186255f, 0.144739f, 0.663774f, 0.248813f, 0.194538f, 0.957817f, 0.891305f, 0.201715f, 0.449246f, 0.286602f, 0.438681f, 0.063516f, 0.86176f, 0.607669f, 0.458845f, 0.192139f, 0.467602f, 0.498938f, 0.528959f, 0.628244f, 0.307133f, 0.502113f, 0.790074f, 0.439137f, 0.297278f, 0.0855112f, 0.993146f, 0.341803f, 0.429483f, 0.489207f, 0.097826f, 0.387804f, 0.105836f, 0.832144f, 0.686801f, 0.353345f, 0.270722f, 0.453971f, 0.166628f, 0.360213f, 0.586645f, 0.592227f, 0.87898f, 0.619847f, 0.470664f, 0.494789f, 0.124589f, 0.814768f, 0.105868f, 0.570889f, 0.53332f, 0.0484772f, 0.234767f, 0.0405342f, 0.312458f, 0.28473f, 0.960765f, 0.0786981f, 0.942417f, 0.804688f, 0.336259f, 0.63046f, 0.23329f, 0.851628f, 0.887926f, 0.999308f, 0.300862f, 0.792434f, 0.0593845f, 0.426165f, 0.474874f, 0.432486f, 0.646565f, 0.225466f, 0.332777f, 0.908149f, 0.719494f, 0.284807f, 0.835582f, 0.311455f, 0.0362688f, 0.31152f, 0.128829f, 0.397832f, 0.285144f, 0.20932f, 0.988974f, 0.50815f, 0.0308556f, 0.302613f, 0.0360845f, 0.524814f, 0.768544f, 0.705382f, 0.199072f, 0.607121f, 0.136406f, 0.470687f, 0.203016f, 0.729325f, 0.333073f, 0.746358f, 0.195277f, 0.304061f, 0.487599f, 0.871167f, 0.722015f, 0.267789f, 0.977434f, 0.393249f, 0.522215f, 0.666793f, 0.892122f, 0.623572f, 0.937274f, 0.206294f, 0.758486f, 0.23332f, 0.906251f, 0.812943f, 0.987073f, 0.748163f, 0.552509f, 0.0403306f, 0.812408f, 0.628796f, 0.653199f, 0.349886f, 0.51297f, 0.401466f, 0.746051f, 0.644171f, 0.919166f, 0.453167f, 0.544111f, 0.864165f, 0.227377f, 0.78908f, 0.275189f, 0.635981f, 0.716067f, 0.586381f, 0.632425f, 0.399512f, 0.105899f, 0.260164f, 0.107326f, 0.780907f, 0.443946f, 0.470192f, 0.540053f, 0.0619289f, 0.471238f, 0.824157f, 0.531286f, 0.448794f, 0.908165f, 0.274989f, 0.418133f, 0.898903f, 0.143515f, 0.836127f, 0.0344939f, 0.662182f, 0.179498f, 0.327589f, 0.796382f, 0.810047f, 0.734709f, 0.881899f, 0.47577f, 0.215189f, 0.00626095f, 0.797087f, 0.119078f, 0.38015f, 0.463575f, 0.0306364f, 0.873173f, 0.806818f, 0.573985f, 0.648762f, 0.430314f, 0.512317f, 0.605053f, 0.330103f, 0.648338f, 0.995127f, 0.764925f, 0.836998f, 0.410201f, 0.871226f, 0.388434f, 0.644309f, 0.849519f, 0.0508844f, 0.868112f, 0.662296f, 0.28919f, 0.582254f, 0.758399f, 0.138326f, 0.774859f, 0.065396f, 0.848847f, 0.0188271f, 0.283098f, 0.622852f, 0.778154f, 0.880147f, 0.260418f, 0.940757f, 0.815913f, 0.524643f, 0.330396f, 0.276408f, 0.205845f, 0.84478f, 0.392218f, 0.735127f, 0.043299f, 0.849097f, 0.518467f, 0.586761f, 0.250364f, 0.500118f, 0.662909f, 0.934101f, 0.00782292f, 0.452582f, 0.335459f, 0.981512f, 0.272505f, 0.727543f, 0.136702f, 0.494222f, 0.378457f, 0.0540869f, 0.631997f, 0.0824607f, 0.16458f, 0.797114f, 0.0161222f, 0.269075f, 0.326394f, 0.782215f, 0.861174f, 0.581392f, 0.754731f, 0.0722561f, 0.583109f, 0.497678f, 0.0217069f, 0.442749f, 0.274421f, 0.740624f, 0.871762f, 0.593714f, 0.817941f, 0.920725f, 0.663765f, 0.885732f, 0.607902f, 0.819708f, 0.927395f, 0.774414f, 0.59827f, 0.463188f, 0.709475f, 0.514606f, 0.983765f, 0.958663f, 0.0928098f, 0.0947121f, 0.0565686f, 0.616457f, 0.135232f, 0.419006f, 0.660529f, 0.857965f, 0.951692f, 0.597543f, 0.114092f, 0.0280256f, 0.40186f, 0.346991f, 0.0407271f, 0.831748f, 0.205171f, 0.420474f, 0.48008f, 0.757137f, 0.687575f, 0.806059f, 0.213349f, 0.716053f, 0.441288f, 0.217007f, 0.420978f, 0.523437f, 0.404101f, 0.834459f, 0.580157f, 0.481358f, 0.867783f, 0.00923892f, 0.6734f, 0.813537f, 0.0828359f, 0.266422f, 0.680127f, 0.0949555f, 0.753066f, 0.293837f, 0.484535f, 0.642965f, 0.73337f, 0.813223f, 0.0288107f, 0.0860963f, 0.766266f, 0.983775f, 0.343079f, 0.782403f, 0.0921881f, 0.977474f, 0.108858f, 0.982138f, 0.325952f, 0.971741f, 0.675473f, 0.875188f, 0.0120778f, 0.662449f, 0.594604f, 0.399967f, 0.58295f, 0.927819f, 0.420584f, 0.212146f, 0.120091f, 0.447372f, 0.192807f, 0.166516f, 0.810726f, 0.639078f, 0.504555f, 0.895836f, 0.260907f, 0.331909f, 0.308899f, 0.676879f, 0.41273f, 0.00506582f, 0.428657f, 0.805133f, 0.103065f, 0.121083f, 0.375458f, 0.520363f, 0.604543f, 0.429635f, 0.438148f, 0.760166f, 0.766464f, 0.0438251f, 0.740575f, 0.0293269f, 0.183323f, 0.00930769f, 0.698414f, 0.896991f, 0.61929f, 0.436696f, 0.441205f, 0.622654f, 0.615977f, 0.756678f, 0.128649f, 0.749992f, 0.872171f, 0.797274f, 0.130622f, 0.478863f, 0.446768f, 0.89785f, 0.513121f, 0.194588f, 0.231796f, 0.954301f, 0.576324f, 0.0562747f, 0.61085f, 0.577743f, 0.545555f, 0.363614f, 0.843892f, 0.400062f, 0.717187f, 0.740086f, 0.528511f, 0.779256f, 0.745451f, 0.589778f, 0.977115f, 0.251186f, 0.916301f, 0.761167f, 0.0847637f, 0.0230334f, 0.14641f, 0.725114f, 0.618926f, 0.432685f, 0.561266f, 0.128284f, 0.887923f, 0.045822f, 0.493046f, 0.143171f, 0.671241f, 0.679747f, 0.335673f, 0.115841f, 0.93615f, 0.339681f, 0.247698f, 0.0401278f, 0.889537f, 0.260072f, 0.173812f, 0.0365525f, 0.204306f, 0.84639f, 0.832188f, 0.141863f, 0.0520722f, 0.107015f, 0.752642f, 0.866039f, 0.517256f, 0.701401f, 0.395515f, 0.711873f, 0.646394f, 0.264936f, 0.0187599f, 0.369458f, 0.904164f, 0.0935391f, 0.174715f, 0.14083f, 0.239559f, 0.89748f, 0.934013f, 0.787458f, 0.246227f, 0.702091f, 0.615122f, 0.398795f, 0.894223f, 0.340275f, 0.647777f, 0.0492552f, 0.907233f, 0.504857f, 0.501728f, 0.626655f, 0.648525f, 0.194499f, 0.0128158f, 0.73601f, 0.401778f, 0.41494f, 0.102481f, 0.2945f, 0.236058f, 0.293323f, 0.465413f, 0.281178f, 0.137138f, 0.7493f, 0.371651f, 0.946542f, 0.323555f, 0.0745932f, 0.157936f, 0.998219f, 0.877153f, 0.125826f, 0.324891f, 0.34621f, 0.241885f, 0.676998f, 0.931328f, 0.930489f, 0.250319f, 0.602469f, 0.834009f, 0.346904f, 0.101225f, 0.546648f, 0.554059f, 0.376143f, 0.295871f, 0.833185f, 0.204503f, 0.186921f, 0.863372f, 0.822428f, 0.603087f, 0.921182f, 0.704988f, 0.142363f, 0.221817f, 0.639942f, 0.279948f, 0.502842f, 0.754451f, 0.218131f, 0.848244f, 0.500334f, 0.724128f, 0.524567f, 0.380775f, 0.143284f, 0.412951f, 0.667918f, 0.515343f, 0.381574f, 0.080528f, 0.262058f, 0.890428f, 0.312059f, 0.464009f, 0.584185f, 0.52156f, 0.21197f, 0.651816f, 0.167206f, 0.884292f, 0.720491f, 0.917117f, 0.821234f, 0.167817f, 0.857364f, 0.149155f, 0.268429f, 0.775817f, 0.427542f, 0.892723f, 0.352895f, 0.66515f, 0.474889f, 0.375345f, 0.225294f, 0.804309f, 0.875738f, 0.486721f, 0.122004f, 0.722886f, 0.297956f, 0.0397858f, 0.515044f, 0.87911f, 0.211498f, 0.442214f, 0.634027f, 0.851447f, 0.0666484f, 0.0393785f, 0.553852f, 0.528016f, 0.674943f, 0.191433f, 0.438034f, 0.629693f, 0.90824f, 0.248927f, 0.0244725f, 0.905935f, 0.566168f, 0.33751f, 0.178979f, 0.300227f, 0.601985f, 0.873492f, 0.738763f, 0.502438f, 0.319074f, 0.113825f, 0.183288f, 0.899694f, 0.767436f, 0.468309f, 0.709561f, 0.86515f, 0.487377f, 0.21688f, 0.684647f, 0.576559f, 0.863409f, 0.550658f, 0.566675f, 0.882127f, 0.742264f, 0.798776f, 0.0203523f, 0.252537f, 0.322721f, 0.56767f, 0.56067f, 0.504041f, 0.398241f, 0.796125f, 0.850756f, 0.0350052f, 0.644953f, 0.674127f, 0.206868f, 0.860659f, 0.199265f, 0.857225f, 0.429107f, 0.822651f, 0.665956f, 0.00757618f, 0.743728f, 0.793881f, 0.356099f, 0.50414f, 0.659538f, 0.0998927f, 0.790683f, 0.0348981f, 0.379323f, 0.151468f, 0.498949f, 0.208541f, 0.87533f, 0.924126f, 0.964347f, 0.317048f, 0.421789f, 0.704327f, 0.664026f, 0.533839f, 0.392701f, 0.140075f, 0.987913f, 0.03069f, 0.313169f, 0.354796f, 0.269842f, 0.78199f, 0.287759f, 0.339711f, 0.303852f, 0.412044f, 0.00941863f, 0.975561f, 0.854622f, 0.160671f, 0.154996f, 0.864365f, 0.835893f, 0.248002f, 0.618884f, 0.713282f, 0.00944035f, 0.961391f, 0.335907f, 0.929753f, 0.998946f, 0.556517f, 0.412419f, 0.233943f, 0.947435f, 0.375575f, 0.319604f, 0.716044f, 0.162663f, 0.637383f, 0.806768f, 0.0856161f, 0.956034f, 0.245337f, 0.551991f, 0.851346f, 0.254167f, 0.744982f, 0.564446f, 0.429007f, 0.870564f, 0.376924f, 0.904205f, 0.885564f, 0.214906f, 0.183022f, 0.925709f, 0.357906f, 0.288384f, 0.605114f, 0.614396f, 0.396703f, 0.0197939f, 0.243897f, 0.975216f, 0.704497f, 0.476525f, 0.548474f, 0.359391f, 0.0163667f, 0.666657f, 0.311121f, 0.0940198f, 0.941416f, 0.325115f, 0.975641f, 0.658675f, 0.00407639f, 0.365521f, 0.692277f, 0.372779f, 0.200639f, 0.674376f, 0.380635f, 0.531602f, 0.693364f, 0.227682f, 0.84193f, 0.950013f, 0.451081f, 0.514958f, 0.670572f, 0.711082f, 0.364604f, 0.648132f, 0.523288f, 0.450453f, 0.53099f, 0.988543f, 0.669159f, 0.830524f, 0.290807f, 0.140858f, 0.799549f, 0.583342f, 0.257869f, 0.59006f, 0.217784f, 0.197247f, 0.938884f, 0.36196f, 0.844371f, 0.0248709f, 0.883103f, 0.370168f, 0.398312f, 0.311908f, 0.47474f, 0.822861f, 0.707444f, 0.9443f, 0.239513f, 0.771527f, 0.297216f, 0.811968f, 0.469184f, 0.306376f, 0.400149f, 0.147905f, 0.682306f, 0.293364f, 0.364349f, 0.688556f, 0.585631f, 0.805093f, 0.424534f, 0.0733822f, 0.543836f, 0.733804f, 0.649467f, 0.30935f, 0.685181f, 0.858836f, 0.517044f, 0.47701f, 0.638474f, 0.0184836f, 0.225102f, 0.315323f, 0.797589f, 0.0778301f, 0.0475099f, 0.87561f, 0.75544f, 0.904796f, 0.945879f, 0.028123f, 0.344476f, 0.386814f, 0.896624f, 0.798412f, 0.766277f, 0.939873f, 0.12153f, 0.217026f, 0.527635f, 0.175489f, 0.494636f, 0.904428f, 0.655793f, 0.541505f, 0.642757f, 0.972037f, 0.130352f, 0.911651f, 0.223711f, 0.0406087f, 0.381063f, 0.746494f, 0.827658f, 0.0772224f, 0.272106f, 0.987622f, 0.0052656f, 0.606502f, 0.85071f, 0.0231136f, 0.0652533f, 0.857008f, 0.00692946f, 0.0733086f, 0.367627f, 0.315969f, 0.292009f, 0.232548f, 0.994711f, 0.998285f, 0.308188f, 0.584667f, 0.752991f, 0.191141f, 0.240298f, 0.0564915f, 0.605211f, 0.0147917f, 0.550111f, 0.206021f, 0.244289f, 0.135031f, 0.237319f, 0.40131f, 0.26777f, 0.532085f, 0.177655f, 0.868724f, 0.485011f, 0.371253f, 0.185282f, 0.644731f, 0.622103f, 0.855553f, 0.56232f, 0.417923f, 0.787789f, 0.91939f, 0.491437f, 0.520566f, 0.59465f, 0.701258f, 0.458588f, 0.472785f, 0.430358f, 0.641993f, 0.278947f, 0.81911f, 0.706891f, 0.29567f, 0.705872f, 0.354766f, 0.00397476f, 0.866153f, 0.226897f, 0.505979f, 0.164834f, 0.809293f, 0.149693f, 0.523287f, 0.740916f, 0.132538f, 0.931738f, 0.0903063f, 0.371996f, 0.907401f, 0.813538f, 0.92406f, 0.307826f, 0.60004f, 0.969938f, 0.744216f, 0.926652f, 0.526372f, 0.741083f, 0.948732f, 0.82016f, 0.185162f, 0.575103f, 0.210604f, 0.514917f, 0.845905f, 0.323327f, 0.40058f, 0.0702564f, 0.92683f, 0.293106f, 0.57313f, 0.577772f, 0.290759f, 0.159196f, 0.683577f, 0.834745f, 0.949849f, 0.255035f, 0.222031f, 0.821555f, 0.158011f, 0.254514f, 0.951792f, 0.312939f, 0.623394f, 0.0596259f, 0.860424f, 0.183174f, 0.730661f, 0.955133f, 0.836548f, 0.779002f, 0.0728992f, 0.383247f, 0.452559f, 0.655328f, 0.622909f, 0.308009f, 0.599691f, 0.475055f, 0.49587f, 0.310641f, 0.138457f, 0.551152f, 0.426814f, 0.300667f, 0.703175f, 0.352065f, 0.538981f, 0.860645f, 0.90593f, 0.127653f, 0.710765f, 0.822372f, 0.208033f, 0.445604f, 0.188133f, 0.589692f, 0.726903f, 0.465544f, 0.00409995f, 0.987988f, 0.979211f, 0.24932f, 0.704111f, 0.730765f, 0.534288f, 0.235308f, 0.744655f, 0.943391f, 0.38814f, 0.462258f, 0.826034f, 0.109031f, 0.628534f, 0.511483f, 0.0223714f, 0.0708374f, 0.630432f, 0.300738f, 0.919946f, 0.463439f, 0.558466f, 0.78058f, 0.37532f, 0.98128f, 0.528785f, 0.737494f, 0.6098f, 0.695515f, 0.122953f, 0.646288f, 0.385564f, 0.737697f, 0.131926f, 0.414746f, 0.0422695f, 0.574735f, 0.49658f, 0.800849f, 0.687207f, 0.792034f, 0.0924931f, 0.386161f, 0.663946f, 0.395455f, 0.106021f, 0.74884f, 0.681213f, 0.908718f, 0.421009f, 0.58296f, 0.000902615f, 0.963181f, 0.664368f, 0.495164f, 0.611767f, 0.765692f, 0.0809122f, 0.452475f, 0.934372f, 0.979904f, 0.915181f, 0.398806f, 0.221098f, 0.129262f, 0.421468f, 0.622208f, 0.0266502f, 0.0698893f, 0.666035f, 0.0788684f, 0.644953f, 0.905166f, 0.32171f, 0.158854f, 0.264691f, 0.776421f, 0.54107f, 0.437091f, 0.534772f, 0.127446f, 0.98168f, 0.750536f, 0.477281f, 0.0383675f, 0.474524f, 0.732434f, 0.471001f, 0.300117f, 0.397921f, 0.269747f, 0.655277f, 0.901436f, 0.907577f, 0.225375f, 0.479693f, 0.200836f, 0.177513f, 0.0870924f, 0.722634f, 0.892637f, 0.784116f, 0.921343f, 0.826337f, 0.287859f, 0.023142f, 0.854584f, 0.507308f, 0.198762f, 0.997025f, 0.423951f, 0.281525f, 0.619001f, 0.382824f, 0.0785872f, 0.468601f, 0.511196f, 0.346127f, 0.952124f, 0.148085f, 0.437411f, 0.945594f, 0.395731f, 0.160254f, 0.489413f, 0.754752f, 0.3042f, 0.653328f, 0.387466f, 0.548743f, 0.42956f, 0.739894f, 0.832006f, 0.138709f, 0.0494386f, 0.981079f, 0.386781f, 0.207027f, 0.515991f, 0.0338838f, 0.842002f, 0.399235f, 0.95634f, 0.715616f, 0.5179f, 0.959534f, 0.559731f, 0.0923886f, 0.477529f, 0.548104f, 0.597878f, 0.897928f, 0.192379f, 0.241017f, 0.927968f, 0.0923328f, 0.469445f, 0.319189f, 0.766991f, 0.672913f, 0.802884f, 0.335926f, 0.454531f, 0.549084f, 0.483673f, 0.493887f, 0.413477f, 0.651473f, 0.875949f, 0.922685f, 0.880461f, 0.779535f, 0.967865f, 0.122564f, 0.0563977f, 0.231148f, 0.898896f, 0.408888f, 0.14527f, 0.914878f, 0.0976806f, 0.56189f, 0.61785f, 0.668755f, 0.481494f, 0.799514f, 0.508923f, 0.0842405f, 0.32201f, 0.125059f, 0.995587f, 0.152596f, 0.0496574f, 0.261351f, 0.0341027f, 0.933704f, 0.243774f, 0.550941f, 0.186483f, 0.518109f, 0.125313f, 0.672872f, 0.153328f, 0.886958f, 0.913331f, 0.91518f, 0.847563f, 0.923794f, 0.988247f, 0.58427f, 0.146684f, 0.151417f, 0.656044f, 0.40859f, 0.14817f, 0.685165f, 0.445984f, 0.19485f, 0.432712f, 0.209893f, 0.0505005f, 0.790353f, 0.5032f, 0.081458f, 0.0603039f, 0.640263f, 0.0914454f, 0.777219f, 0.460987f, 0.138563f, 0.382623f, 0.842088f, 0.641148f, 0.54497f, 0.326583f, 0.0199233f, 0.925389f, 0.605686f, 0.167242f, 0.266449f, 0.189608f, 0.68873f, 6.97044e-05f, 0.272176f, 0.534916f, 0.286065f, 0.699928f, 0.0199234f, 0.118455f, 0.702812f, 0.0438006f, 0.602831f, 0.301757f, 0.0114333f, 0.362431f, 0.170829f, 0.889331f, 0.959898f, 0.220713f, 0.942668f, 0.473341f, 0.245121f, 0.401105f, 0.908635f, 0.764165f, 0.345782f, 0.2635f, 0.766043f, 0.535833f, 0.884238f, 0.697501f, 0.241719f, 0.647971f, 0.382307f, 0.0776414f, 0.543534f, 0.625013f, 0.303934f, 0.942436f, 0.958443f, 0.100776f, 0.251232f, 0.603529f, 0.396556f, 0.923066f, 0.548554f, 0.220382f, 0.548643f, 0.274279f, 0.164581f, 0.95505f, 0.25951f, 0.261906f, 0.577789f, 0.741105f, 0.43178f, 0.671708f, 0.331355f, 0.39507f, 0.410122f, 0.310539f, 0.631777f, 0.990829f, 0.458913f, 0.384965f, 0.000951788f, 0.666651f, 0.684922f, 0.515917f, 0.43763f, 0.390086f, 0.340545f, 0.8425f, 0.847068f, 0.611617f, 0.701035f, 0.806373f, 0.139428f, 0.123705f, 0.370887f, 0.356397f, 0.270458f, 0.179828f, 0.510626f, 0.705079f, 0.188944f, 0.453232f, 0.207811f, 0.0473841f, 0.876157f, 0.352782f, 0.992691f, 0.990362f, 0.614067f, 0.341219f, 0.109603f, 0.434749f, 0.409946f, 0.926753f, 0.927122f, 0.196243f, 0.78931f, 0.242777f, 0.0833232f, 0.048814f, 0.673235f, 0.786945f, 0.132571f, 0.754882f, 0.730221f, 0.351982f, 0.810955f, 0.215565f, 0.733762f, 0.419478f, 0.0429883f, 0.0152969f, 0.877608f, 0.643404f, 0.386359f, 0.692136f, 0.485291f, 0.294757f, 0.62227f, 0.432487f, 0.823588f, 0.597304f, 0.390734f, 0.130017f, 0.0323171f, 0.0681704f, 0.542906f, 0.147647f, 0.510956f, 0.343039f, 0.304513f, 0.470067f, 0.780405f, 0.708418f, 0.895061f, 0.317382f, 0.698365f, 0.49651f, 0.805618f, 0.876528f, 0.159333f, 0.084484f, 0.885828f, 0.568193f, 0.715078f, 0.0726656f, 0.720662f, 0.242088f, 0.407123f, 0.740762f, 0.100173f, 0.344778f, 0.183769f, 0.447317f, 0.274635f, 0.796297f, 0.660071f, 0.587159f, 0.136121f, 0.0276473f, 0.0709116f, 0.836785f, 0.274939f, 0.87f, 0.829027f, 0.530006f, 0.11207f, 0.787696f, 0.560119f, 0.734515f, 0.587682f, 0.87197f, 0.625314f, 0.658184f, 0.624214f, 0.0705072f, 0.297713f, 0.76411f, 0.877976f, 0.045017f, 0.263096f, 0.297053f, 0.609203f, 0.441216f, 0.742644f, 0.327943f, 0.288434f, 0.101241f, 0.259137f, 0.565927f, 0.268681f, 0.10388f, 0.615863f, 0.883317f, 0.522543f, 0.460196f, 0.504551f, 0.0737397f, 0.357484f, 0.872328f, 0.235187f, 0.662268f, 0.987824f, 0.912386f, 0.829971f, 0.851458f, 0.0526801f, 0.520847f, 0.366275f, 0.227224f, 0.551578f, 0.0471393f, 0.377022f, 0.727276f, 0.811789f, 0.325827f, 0.381726f, 0.267145f, 0.564409f, 0.647686f, 0.797945f, 0.387828f, 0.481548f, 0.50858f, 0.915173f, 0.12693f, 0.455427f, 0.449081f, 0.384271f, 0.374061f, 0.097169f, 0.420527f, 0.245558f, 0.49597f, 0.179161f, 0.182186f, 0.284332f, 0.862269f, 0.905787f, 0.824996f, 0.0911025f, 0.850194f, 0.305712f, 0.538812f, 0.680032f, 0.825729f, 0.774434f, 0.00497431f, 0.739186f, 0.89747f, 0.350157f, 0.839806f, 0.162065f, 0.0315357f, 0.171089f, 0.309725f, 0.509352f, 0.897451f, 0.254073f, 0.589491f, 0.18473f, 0.779303f, 0.287892f, 0.529953f, 0.698098f, 0.498781f, 0.17027f, 0.807804f, 0.713066f, 0.443851f, 0.147509f, 0.476324f, 0.0849093f, 0.293804f, 0.316159f, 0.851617f, 0.785632f, 0.278999f, 0.922958f, 0.918628f, 0.00110848f, 0.855476f, 0.939888f, 0.838905f, 0.454722f, 0.049078f, 0.0690804f, 0.811063f, 0.237738f, 0.285593f, 0.724508f, 0.752612f, 0.465725f, 0.543701f, 0.245843f, 0.613217f, 0.889532f, 0.783317f, 0.923225f, 0.363409f, 0.861243f, 0.94711f, 0.845222f, 0.297557f, 0.828068f, 0.162559f, 0.895627f, 0.482789f, 0.956056f, 0.960334f, 0.525915f, 0.864784f, 0.243446f, 0.132257f, 0.0355159f, 0.48747f, 0.13702f, 0.0487109f, 0.958976f, 0.682305f, 0.697404f, 0.517756f, 0.271305f, 0.348725f, 0.514959f, 0.146714f, 0.706208f, 0.65107f, 0.496005f, 0.363852f, 0.899967f, 0.815151f, 0.974469f, 0.0844418f, 0.440561f, 0.911199f, 0.762465f, 0.597601f, 0.24989f, 0.42485f, 0.688378f, 0.997864f, 0.133362f, 0.259394f, 0.0406596f, 0.0860533f, 0.158273f, 0.158292f, 0.797543f, 0.538996f, 0.480008f, 0.422689f, 0.182056f, 0.669835f, 0.363054f, 0.146077f, 0.902395f, 0.629381f, 0.0684445f, 0.366411f, 0.905245f, 0.95533f, 0.787215f, 0.90363f, 0.421145f, 0.389334f, 0.812495f, 0.655009f, 0.873205f, 0.454083f, 0.371221f, 0.417499f, 0.137931f, 0.798543f, 0.713944f, 0.34444f, 0.591934f, 0.568805f, 0.305445f, 0.0535376f, 0.873742f, 0.429269f, 0.166098f, 0.168313f, 0.404932f, 0.0374966f, 0.0669818f, 0.89088f, 0.0404485f, 0.443517f, 0.260303f, 0.19161f, 0.765812f, 0.365226f, 0.611378f, 0.235126f, 0.363451f, 0.892738f, 0.529157f, 0.651125f, 0.153076f, 0.649078f, 0.969791f, 0.276867f, 0.753009f, 0.198297f, 0.683023f, 0.052406f, 0.0254117f, 0.00338464f, 0.973576f, 0.674069f, 0.836126f, 0.182508f, 0.996128f, 0.424246f, 0.782711f, 0.621323f, 0.897955f, 0.267909f, 0.127903f, 0.956464f, 0.223168f, 0.85823f, 0.726266f, 0.384882f, 0.133664f, 0.527722f, 0.780722f, 0.687852f, 0.360357f, 0.668218f, 0.408891f, 0.668433f, 0.239858f, 0.364373f, 0.746525f, 0.0194728f, 0.346705f, 0.0229462f, 0.458635f, 0.268359f, 0.901841f, 0.668297f, 0.306051f, 0.256688f, 0.134941f, 0.56859f, 0.604442f, 0.454286f, 0.507528f, 0.847724f, 0.214442f, 0.392379f, 0.632621f, 0.906297f, 0.458079f, 0.433776f, 0.30273f, 0.884566f, 0.421768f, 0.935194f, 0.0921849f, 0.423245f, 0.615781f, 0.869782f, 0.739985f, 0.762898f, 0.655259f, 0.332713f, 0.79574f, 0.0642832f, 0.691164f, 0.511502f, 0.80821f, 0.970405f, 0.416269f, 0.291265f, 0.652546f, 0.635271f, 0.807694f, 0.0431208f, 0.493358f, 0.256506f, 0.976263f, 0.23967f, 0.126852f, 0.497923f, 0.747758f, 0.289456f, 0.0884913f, 0.715343f, 0.261956f, 0.829906f, 0.0533743f, 0.505959f, 0.246809f, 0.0982734f, 0.187019f, 0.253518f, 0.565694f, 0.882792f, 0.261432f, 0.96548f, 0.565113f, 0.573391f, 0.954133f, 0.0158304f, 0.605275f, 0.278867f, 0.557482f, 0.0823503f, 0.975507f, 0.917146f, 0.659914f, 0.545931f, 0.159105f, 0.0839864f, 0.994018f, 0.938603f, 0.0114792f, 0.381102f, 0.592332f, 0.493459f, 0.623574f, 0.209693f, 0.23726f, 0.0727749f, 0.584468f, 0.987599f, 0.685465f, 0.904302f, 0.660279f, 0.0156542f, 0.880792f, 0.995401f, 0.432219f, 0.766088f, 0.951417f, 0.29196f, 0.250044f, 0.644601f, 0.185979f, 0.278347f, 0.560231f, 0.503529f, 0.669737f, 0.204006f, 0.659249f, 0.588698f, 0.258539f, 0.917531f, 0.526103f, 0.294503f, 0.749646f, 0.893066f, 0.0400344f, 0.933276f, 0.298697f, 0.332565f, 0.120745f, 0.32405f, 0.437418f, 0.343717f, 0.275915f, 0.687726f, 0.378401f, 0.116547f, 0.0586583f, 0.954957f, 0.354961f, 0.459451f, 0.381851f, 0.242585f, 0.0527297f, 0.387011f, 0.78615f, 0.679871f, 0.0969096f, 0.974251f, 0.375427f, 0.981451f, 0.424016f, 0.52282f, 0.211821f, 0.144911f, 0.012798f, 0.378344f, 0.350074f, 0.027395f, 0.614111f, 0.622761f, 0.760705f, 0.565331f, 0.695602f, 0.246383f, 0.0715231f, 0.665014f, 0.342275f, 0.446794f, 0.632261f, 0.8071f, 0.230686f, 0.472806f, 0.495188f, 0.0590397f, 0.0258673f, 0.994041f, 0.0284946f, 0.67796f, 0.3943f, 0.868992f, 0.901415f, 0.830276f, 0.81449f, 0.372918f, 0.427919f, 0.0609839f, 0.498254f, 0.928328f, 0.969557f, 0.00875862f, 0.531724f, 0.2854f, 0.690292f, 0.93172f, 0.440842f, 0.107637f, 0.604463f, 0.104505f, 0.456251f, 0.124982f, 0.0394257f, 0.90127f, 0.178092f, 0.270394f, 0.674221f, 0.410829f, 0.341818f, 0.681168f, 0.190791f, 0.254102f, 0.245402f, 0.680993f, 0.119661f, 0.880911f, 0.0174896f, 0.766244f, 0.714052f, 0.255102f, 0.31572f, 0.00887071f, 0.335468f, 0.0266612f, 0.986794f, 0.609976f, 0.66684f, 0.877991f, 0.144678f, 0.423934f, 0.703842f, 0.225452f, 0.911991f, 0.309387f, 0.673259f, 0.172029f, 0.329916f, 0.502351f, 0.690981f, 0.170024f, 0.88533f, 0.624785f, 0.321363f, 0.685606f, 0.91955f, 0.592923f, 0.54156f, 0.365244f, 0.829578f, 0.436584f, 0.412874f, 0.735137f, 0.791498f, 0.301722f, 0.381989f, 0.688878f, 0.512202f, 0.182662f, 0.603295f, 0.895481f, 0.364057f, 0.677434f, 0.507175f, 0.654368f, 0.653867f, 0.528956f, 0.374771f, 0.98773f, 0.595307f, 0.783905f, 0.601861f, 0.463332f, 0.932498f, 0.739323f, 0.545642f, 0.5791f, 0.622483f, 0.532126f, 0.668479f, 0.306928f, 0.0195272f, 0.453952f, 0.614024f, 0.410677f, 0.0155925f, 0.826704f, 0.423931f, 0.836678f, 0.438924f, 0.740696f, 0.561482f, 0.0893214f, 0.288994f, 0.571401f, 0.677957f, 0.380046f, 0.276863f, 0.342851f, 0.0509712f, 0.114583f, 0.525371f, 0.209344f, 0.902236f, 0.395247f, 0.754452f, 0.69313f, 0.966128f, 0.444688f, 0.36747f, 0.259551f, 0.027126f, 0.882527f, 0.448274f, 0.260347f, 0.55595f, 0.747249f, 0.615728f, 0.41376f, 0.34802f, 0.2875f, 0.429296f, 0.736503f, 0.677609f, 0.327682f, 0.0887324f, 0.331813f, 0.711874f, 0.918619f, 0.872923f, 0.0742797f, 0.85766f, 0.0707066f, 0.534841f, 0.921731f, 0.0263108f, 0.0598999f, 0.37799f, 0.499211f, 0.676225f, 0.464623f, 0.253417f, 0.130598f, 0.924041f, 0.0560727f, 0.897775f, 0.45905f, 0.142797f, 0.894595f, 0.469825f, 0.872596f, 0.0691726f, 0.14761f, 0.644502f, 0.427733f, 0.694703f, 0.823281f, 0.869951f, 0.71473f, 0.493258f, 0.536883f, 0.255269f, 0.293427f, 0.831841f, 0.680813f, 0.0206072f, 0.677639f, 0.5316f, 0.473076f, 0.102568f, 0.630431f, 0.0832135f, 0.289184f, 0.798372f, 0.231469f, 0.0982872f, 0.567834f, 0.650897f, 0.677726f, 0.691671f, 0.962228f, 0.844364f, 0.942152f, 0.726276f, 0.344664f, 0.26788f, 0.147159f, 0.296549f, 0.861301f, 0.36695f, 0.118315f, 0.416061f, 0.967727f, 0.87995f, 0.982524f, 0.740762f, 0.0335848f, 0.851658f, 0.698516f, 0.865528f, 0.369151f, 0.183144f, 0.629342f, 0.775286f, 0.265997f, 0.0241675f, 0.581314f, 0.708552f, 0.612795f, 0.745523f, 0.232616f, 0.977005f, 0.0635075f, 0.763925f, 0.468835f, 0.213136f, 0.00100157f, 0.252305f, 0.844795f, 0.164959f, 0.982506f, 0.191049f, 0.0285206f, 0.487858f, 0.178453f, 0.270045f, 0.825004f, 0.207762f, 0.170568f, 0.948178f, 0.0335208f, 0.823119f, 0.469793f, 0.712395f, 0.251105f, 0.259527f, 0.621902f, 0.553753f, 0.660528f, 0.862246f, 0.782147f, 0.347054f, 0.119024f, 0.360907f, 0.0204292f, 0.972423f, 0.626333f, 0.78352f, 0.775083f, 0.782187f, 0.584635f, 0.630985f, 0.146018f, 0.208324f, 0.206896f, 0.59348f, 0.934518f, 0.506731f, 0.546564f, 0.469744f, 0.244292f, 0.539307f, 0.335306f, 0.309056f, 0.232766f, 0.898153f, 0.0408301f, 0.464669f, 0.316146f, 0.982274f, 0.322839f, 0.165663f, 0.562336f, 0.347879f, 0.469302f, 0.743295f, 0.591931f, 0.654187f, 0.341286f, 0.204763f, 0.795382f, 0.208074f, 0.0120431f, 0.590175f, 0.775931f, 0.676866f, 0.324001f, 0.399278f, 0.183638f, 0.585804f, 0.689186f, 0.757816f, 0.147845f, 0.347157f, 0.0264234f, 0.309659f, 0.890931f, 0.965132f, 0.640717f, 0.772183f, 0.443222f, 0.221438f, 0.142323f, 0.0950673f, 0.280891f, 0.400968f, 0.442616f, 0.145378f, 0.795143f, 0.5753f, 0.634607f, 0.748196f, 0.486195f, 0.69369f, 0.81566f, 0.00878605f, 0.994677f, 0.781603f, 0.854253f, 0.487573f, 0.11681f, 0.187154f, 0.482745f, 0.428969f, 0.540055f, 0.71439f, 0.765667f, 0.470962f, 0.986268f, 0.977392f, 0.817257f, 0.582757f, 0.182142f, 0.391291f, 0.561361f, 0.704339f, 0.941356f, 0.0553637f, 0.460717f, 0.020215f, 0.899266f, 0.106616f, 0.777086f, 0.732166f, 0.159011f, 0.290419f, 0.56689f, 0.00779044f, 0.892882f, 0.133409f, 0.101799f, 0.186129f, 0.6709f, 0.115771f, 0.945025f, 0.360708f, 0.26327f, 0.84268f, 0.0845632f, 0.342377f, 0.959354f, 0.715668f, 0.940337f, 0.646759f, 0.658464f, 0.170854f, 0.0401572f, 0.898814f, 0.428535f, 0.846646f, 0.0622173f, 0.481759f, 0.805686f, 0.930578f, 0.474452f, 0.908406f, 0.808462f, 0.834165f, 0.452788f, 0.719645f, 0.274831f, 0.652777f, 0.554878f, 0.892961f, 0.207743f, 0.27354f, 0.288798f, 0.131028f, 0.800323f, 0.291063f, 0.555386f, 0.391184f, 0.666883f, 0.823652f, 0.402678f, 0.481177f, 0.982194f, 0.446464f, 0.19942f, 0.0584617f, 0.252946f, 0.128255f, 0.850211f, 0.21515f, 0.492428f, 0.694589f, 0.741449f, 0.546204f, 0.696326f, 0.446408f, 0.112463f, 0.666474f, 0.939459f, 0.385872f, 0.628081f, 0.0464086f, 0.630165f, 0.0892842f, 0.605734f, 0.768762f, 0.10757f, 0.17385f, 0.561266f, 0.182718f, 0.114847f, 0.290036f, 0.321573f, 0.355856f, 0.340549f, 0.602114f, 0.184965f, 0.420035f, 0.962014f, 0.0199467f, 0.873264f, 0.39637f, 0.0883592f, 0.815046f, 0.335132f, 0.926742f, 0.498382f, 0.755187f, 0.8201f, 0.118857f, 0.970355f, 0.496689f, 0.656959f, 0.345073f, 0.755824f, 0.106491f, 0.909558f, 0.929634f, 0.851547f, 0.674076f, 0.791228f, 0.31031f, 0.506334f, 0.788087f, 0.0272701f, 0.528601f, 0.77785f, 0.742108f, 0.938537f, 0.618618f, 0.457377f, 0.525991f, 0.365887f, 0.23779f, 0.31306f, 0.676006f, 0.407159f, 0.339719f, 0.995224f, 0.99883f, 0.565039f, 0.916343f, 0.0829878f, 0.0640497f, 0.951538f, 0.459887f, 0.659082f, 0.0152949f, 0.793012f, 0.120974f, 0.860868f, 0.547291f, 0.619261f, 0.125329f, 0.296842f, 0.95894f, 0.213264f, 0.0800837f, 0.814934f, 0.0128622f, 0.977173f, 0.473298f, 0.692574f, 0.362815f, 0.511559f, 0.765763f, 0.337082f, 0.292514f, 0.759194f, 0.658489f, 0.413138f, 0.208933f, 0.447627f, 0.704491f, 0.418062f, 0.100603f, 0.0684665f, 0.876975f, 0.00887432f, 0.494588f, 0.206948f, 0.822848f, 0.675951f, 0.51903f, 0.0624831f, 0.887231f, 0.126942f, 0.910038f, 0.136196f, 0.257017f, 0.73025f, 0.804383f, 0.842607f, 0.358013f, 0.635618f, 0.208468f, 0.463756f, 0.321807f, 0.586821f, 0.538498f, 0.812904f, 0.969209f, 0.332872f, 0.857647f, 0.901719f, 0.545676f, 0.902948f, 0.185258f, 0.025943f, 0.763974f, 0.861203f, 0.95305f, 0.529824f, 0.2482f, 0.726529f, 0.464223f, 0.946856f, 0.133834f, 0.696507f, 0.0994677f, 0.89814f, 0.748362f, 0.0262708f, 0.667601f, 0.590863f, 0.403922f, 0.117761f, 0.386821f, 0.80546f, 0.334043f, 0.314829f, 0.200278f, 0.306342f, 0.52356f, 0.474637f, 0.106998f, 0.9278f, 0.675965f, 0.663403f, 0.101462f, 0.583559f, 0.0462734f, 0.0352671f, 0.90461f, 0.790007f, 0.758405f, 0.841091f, 0.0926943f, 0.137215f, 0.368548f, 0.0705626f, 0.545258f, 0.117584f, 0.498161f, 0.5439f, 0.0980244f, 0.359515f, 0.554699f, 0.666477f, 0.204211f, 0.189021f, 0.905762f, 0.951077f, 0.117013f, 0.697655f, 0.611902f, 0.44213f, 0.715191f, 0.806257f, 0.954509f, 0.809172f, 0.270034f, 0.204865f, 0.943159f, 0.061596f, 0.246246f, 0.344185f, 0.703708f, 0.472256f, 0.0147259f, 0.0013571f, 0.538292f, 0.225187f, 0.168966f, 0.136675f, 0.712792f, 0.870868f, 0.0291048f, 0.826463f, 0.636307f, 0.195244f, 0.337975f, 0.40808f, 0.901738f, 0.538553f, 0.770498f, 0.738043f, 0.503139f, 0.0658936f, 0.979355f, 0.402137f, 0.673127f, 0.531231f, 0.628136f, 0.490108f, 0.303373f, 0.329643f, 0.181567f, 0.707066f, 0.961684f, 0.260575f, 0.862115f, 0.457136f, 0.565408f, 0.701363f, 0.512112f, 0.271181f, 0.575812f, 0.163291f, 0.0146806f, 0.303805f, 0.0322961f, 0.999351f, 0.129029f, 0.752638f, 0.806291f, 0.554292f, 0.493333f, 0.653076f, 0.476907f, 0.387074f, 0.495866f, 0.578622f, 0.440685f, 0.14802f, 0.962741f, 0.143877f, 0.320731f, 0.364887f, 0.453192f, 0.134608f, 0.157618f, 0.0746771f, 0.521106f, 0.353175f, 0.271908f, 0.265794f, 0.511907f, 0.65059f, 0.628124f, 0.125845f, 0.448902f, 0.0130005f, 0.362455f, 0.112936f, 0.440093f, 0.829233f, 0.990599f, 0.383463f, 0.801014f, 0.803162f, 0.650828f, 0.4055f, 0.247662f, 0.601687f, 0.674877f, 0.0954853f, 0.373485f, 0.259122f, 0.350152f, 0.504605f, 0.0422898f, 0.208451f, 0.0145286f, 0.481845f, 0.650191f, 0.26052f, 0.523836f, 0.961735f, 0.42511f, 0.508254f, 0.635915f, 0.866391f, 0.597371f, 0.894346f, 0.34847f, 0.564543f, 0.783321f, 0.165085f, 0.482795f, 0.480497f, 0.312681f, 0.699649f, 0.405702f, 0.299391f, 0.393185f, 0.580065f, 0.942902f, 0.36436f, 0.135167f, 0.860861f, 0.437486f, 0.349081f, 0.0743343f, 0.912358f, 0.962811f, 0.191964f, 0.318093f, 0.0134003f, 0.388102f, 0.491684f, 0.94616f, 0.489305f, 0.674996f, 0.684999f, 0.300016f, 0.657807f, 0.85814f, 0.0886809f, 0.493227f, 0.710839f, 0.0607668f, 0.0573066f, 0.699759f, 0.899117f, 0.146274f, 0.673067f, 0.20316f, 0.993279f, 0.333727f, 0.331023f, 0.70526f, 0.585366f, 0.327836f, 0.514168f, 0.734879f, 0.220123f, 0.646333f, 0.410052f, 0.833534f, 0.308118f, 0.94664f, 0.825775f, 0.311175f, 0.817723f, 0.318438f, 0.623486f, 0.466668f, 0.346387f, 0.444601f, 0.0431827f, 0.226344f, 0.712988f, 0.742142f, 0.998481f, 0.169476f, 0.743603f, 0.956298f, 0.714877f, 0.849463f, 0.878594f, 0.712209f, 0.180689f, 0.970106f, 0.258083f, 0.0762421f, 0.843759f, 0.789727f, 0.32206f, 0.404498f, 0.157956f, 0.711342f, 0.764646f, 0.573514f, 0.669096f, 0.0169577f, 0.98374f, 0.872292f, 0.927651f, 0.920891f, 0.421191f, 0.739768f, 0.48246f, 0.0226258f, 0.844997f, 0.400884f, 0.628137f, 0.459454f, 0.158492f, 0.350767f, 0.259643f, 0.634974f, 0.101789f, 0.287066f, 0.275365f, 0.344751f, 0.1319f, 0.569736f, 0.802776f, 0.185886f, 0.877973f, 0.742424f, 0.283848f, 0.0628755f, 0.548388f, 0.968877f, 0.196969f, 0.993194f, 0.737554f, 0.421841f, 0.133346f, 0.323018f, 0.678151f, 0.539794f, 0.528593f, 0.621648f, 0.800984f, 0.362695f, 0.666673f, 0.297796f, 0.35114f, 0.952972f, 0.996985f, 0.804617f, 0.769111f, 0.211362f, 0.071003f, 0.273445f, 0.389167f, 0.672436f, 0.524423f, 0.360221f, 0.220799f, 0.417743f, 0.600825f, 0.861874f, 0.325058f, 0.37374f, 0.978478f, 0.743612f, 0.515629f, 0.446762f, 0.140657f, 0.974692f, 0.589504f, 0.307988f, 0.357815f, 0.074559f, 0.595603f, 0.174361f, 0.516269f, 0.857666f, 0.921461f, 0.3509f, 0.914908f, 0.385497f, 0.594327f, 0.132143f, 0.00243453f, 0.821895f, 0.447849f, 0.956253f, 0.176787f, 0.382489f, 0.174103f, 0.625296f, 0.62577f, 0.212753f, 0.4215f, 0.510081f, 0.0451632f, 0.787763f, 0.0877071f, 0.157109f, 0.433643f, 0.0546049f, 0.126395f, 0.764879f, 0.401122f, 0.314145f, 0.721691f, 0.189557f, 0.953835f, 0.397051f, 0.274993f, 0.639607f, 0.00120164f, 0.824579f, 0.283382f, 0.925793f, 0.670764f, 0.847156f, 0.922985f, 0.293448f, 0.737972f, 0.340344f, 0.776504f, 0.0259891f, 0.0778378f, 0.468436f, 0.512705f, 0.420573f, 0.741593f, 0.527772f, 0.497272f, 0.485672f, 0.313134f, 0.790152f, 0.00858696f, 0.865896f, 0.345584f, 0.261287f, 0.00731203f, 0.0949803f, 0.776545f, 0.774847f, 0.331482f, 0.418394f, 0.915572f, 0.309631f, 0.224686f, 0.183097f, 0.60949f, 0.308622f, 0.216153f, 0.115206f, 0.974212f, 0.763856f, 0.0501892f, 0.542696f, 0.447503f, 0.907984f, 0.407614f, 0.956497f, 0.412391f, 0.112248f, 0.934585f, 0.615769f, 0.449886f, 0.948145f, 0.0341262f, 0.791654f, 0.876766f, 0.918833f, 0.677323f, 0.573616f, 0.68512f, 0.063904f, 0.744852f, 0.889233f, 0.300993f, 0.355698f, 0.51711f, 0.191152f, 0.39697f, 0.135644f, 0.379379f, 0.263374f, 0.005119f, 0.801305f, 0.148226f, 0.129027f, 0.75879f, 0.926024f, 0.077719f, 0.12664f, 0.784643f, 0.422217f, 0.483238f, 0.86804f, 0.982853f, 0.0542705f, 0.74908f, 0.902672f, 0.371814f, 0.707943f, 0.923811f, 0.38666f, 0.0241011f, 0.65662f, 0.269029f, 0.402267f, 0.325552f, 0.232426f, 0.0581101f, 0.905211f, 0.675483f, 0.0774212f, 0.039581f, 0.131205f, 0.749617f, 0.0566855f, 0.739756f, 0.06836f, 0.00835598f, 0.0254742f, 0.0447429f, 0.233396f, 0.482392f, 0.447588f, 0.643709f, 0.832638f, 0.670232f, 0.043071f, 0.578531f, 0.662282f, 0.286894f, 0.423193f, 0.0552578f, 0.852691f, 0.713245f, 0.470162f, 0.668054f, 0.667899f, 0.574541f, 0.131059f, 0.91276f, 0.818326f, 0.11599f, 0.851034f, 0.593224f, 0.155014f, 0.514159f, 0.592336f, 0.562494f, 0.196258f, 0.252103f, 0.340876f, 0.911879f, 0.175632f, 0.546079f, 0.182363f, 0.454414f, 0.604122f, 0.297298f, 0.653722f, 0.761407f, 0.47926f, 0.816178f, 0.235929f, 0.639344f, 0.739464f, 0.938616f, 0.286809f, 0.327739f, 0.461707f, 0.208154f, 0.482954f, 0.0509468f, 0.142706f, 0.89284f, 0.237463f, 0.586393f, 0.800339f, 0.560887f, 0.295807f, 0.330318f, 0.0670258f, 0.351697f, 0.381988f, 0.94602f, 0.591504f, 0.3632f, 0.717619f, 0.697342f, 0.250028f, 0.693048f, 0.222405f, 0.665521f, 0.334338f, 0.84925f, 0.15161f, 0.21402f, 0.370436f, 0.613952f, 0.285156f, 0.399465f, 0.146095f, 0.0125152f, 0.0118508f, 0.0156256f, 0.740666f, 0.437696f, 0.403523f, 0.850049f, 0.927105f, 0.0708434f, 0.127489f, 0.397059f, 0.850749f, 0.0904292f, 0.796167f, 0.0869627f, 0.552714f, 0.516711f, 0.629009f, 0.704758f, 0.101544f, 0.780694f, 0.622194f, 0.969904f, 0.247187f, 0.825026f, 0.809368f, 0.690484f, 0.925001f, 0.564509f, 0.0470862f, 0.865373f, 0.137115f, 0.273268f, 0.847244f, 0.504767f, 0.336853f, 0.144934f, 0.068843f, 0.52291f, 0.23538f, 0.577555f, 0.16187f, 0.0370332f, 0.72807f, 0.432009f, 0.426133f, 0.462264f, 0.939607f, 0.235215f, 0.811247f, 0.556375f, 0.87118f, 0.569085f, 0.878304f, 0.983183f, 0.852026f, 0.46259f, 0.307348f, 0.963419f, 0.843539f, 0.845906f, 0.587644f, 0.765891f, 0.991794f, 0.809161f, 0.429153f, 0.14479f, 0.211685f, 0.194344f, 0.692745f, 0.973786f, 0.33619f, 0.0689954f, 0.793661f, 0.139201f, 0.541078f, 0.112971f, 0.278525f, 0.967265f, 0.738958f, 0.434821f, 0.0140112f, 0.963971f, 0.590263f, 0.114507f, 0.635127f, 0.677356f, 0.893178f, 0.315607f, 0.955298f, 0.00820178f, 0.00425983f, 0.0551395f, 0.111696f, 0.516583f, 0.272322f, 0.468827f, 0.217675f, 0.311107f, 0.751291f, 0.915763f, 0.28836f, 0.792332f, 0.0851952f, 0.0043993f, 0.20719f, 0.865429f, 0.432253f, 0.558345f, 0.0984699f, 0.967917f, 0.491382f, 0.782148f, 0.699392f, 0.392874f, 0.468504f, 0.924621f, 0.5672f, 0.111487f, 0.814167f, 0.00100346f, 0.66217f, 0.885473f, 0.420846f, 0.0417279f, 0.695533f, 0.117853f, 0.234109f, 0.731629f, 0.736747f, 0.560958f, 0.470938f, 0.982085f, 0.962364f, 0.327289f, 0.704605f, 0.595809f, 0.757899f, 0.270644f, 0.783712f, 0.639928f, 0.550749f, 0.735806f, 0.0453388f, 0.719945f, 0.457517f, 0.578951f, 0.955582f, 0.244602f, 0.368397f, 0.0534791f, 0.619606f, 0.936891f, 0.909496f, 0.544918f, 0.830714f, 0.472908f, 0.741619f, 0.747178f, 0.944943f, 0.890203f, 0.653188f, 0.820486f, 0.885751f, 0.942118f, 0.995787f, 0.722743f, 0.215096f, 0.275333f, 0.450616f, 0.0303903f, 0.0745061f, 0.348647f, 0.927486f, 0.730308f, 0.508685f, 0.869741f, 0.000199261f, 0.586344f, 0.0536505f, 0.0119296f, 0.0923863f, 0.545536f, 0.0608853f, 0.380569f, 0.912787f, 0.0686252f, 0.371146f, 0.466165f, 0.926151f, 0.608997f, 0.753636f, 0.664229f, 0.383292f, 0.852328f, 0.571204f, 0.036878f, 0.25953f, 0.563706f, 0.894019f, 0.857279f, 0.816177f, 0.714966f, 0.574699f, 0.860752f, 0.972654f, 0.784208f, 0.756852f, 0.457417f, 0.717886f, 0.713831f, 0.153024f, 0.644426f, 0.695995f, 0.286087f, 0.980746f, 0.843952f, 0.982575f, 0.856584f, 0.209565f, 0.481541f, 0.169354f, 0.69629f, 0.209612f, 0.327471f, 0.0551323f, 0.509702f, 0.237023f, 0.45776f, 0.208377f, 0.669919f, 0.578195f, 0.870464f, 0.53013f, 0.304846f, 0.826025f, 0.7725f, 0.690408f, 0.499287f, 0.885399f, 0.467045f, 0.0825642f, 0.439889f, 0.53252f, 0.298833f, 0.677996f, 0.351126f, 0.570108f, 0.735968f, 0.185331f, 0.572396f, 0.0718335f, 0.043388f, 0.960652f, 0.244946f, 0.840251f, 0.0970145f, 0.765337f, 0.07533f, 0.11174f, 0.0798366f, 0.563998f, 0.547384f, 0.685283f, 0.698292f, 0.0698455f, 0.764944f, 0.166621f, 0.717051f, 0.73781f, 0.793447f, 0.139141f, 0.025704f, 0.0299312f, 0.127013f, 0.665322f, 0.252495f, 0.702525f, 0.461675f, 0.788524f, 0.892694f, 0.109942f, 0.756784f, 0.182836f, 0.155042f, 0.266305f, 0.508443f, 0.285882f, 0.784535f, 0.818626f, 0.928909f, 0.333389f, 0.758663f, 0.313839f, 0.301623f, 0.360218f, 0.310982f, 0.927235f, 0.35376f, 0.552454f, 0.290489f, 0.02134f, 0.225831f, 0.122543f, 0.108653f, 0.938176f, 0.282131f, 0.757113f, 0.66138f, 0.134962f, 0.887678f, 0.229384f, 0.300449f, 0.337241f, 0.668107f, 0.575062f, 0.393382f, 0.0596951f, 0.338745f, 0.18376f, 0.416311f, 0.308475f, 0.268968f, 0.24063f, 0.842395f, 0.70662f, 0.383827f, 0.154508f, 0.382982f, 0.001046f, 0.8198f, 0.534798f, 0.233568f, 0.733703f, 0.48442f, 0.63067f, 0.7776f, 0.816091f, 0.791681f, 0.891629f, 0.246947f, 0.931949f, 0.171218f, 0.981435f, 0.809544f, 0.430647f, 0.742869f, 0.302689f, 0.805772f, 0.915023f, 0.573546f, 0.0655189f, 0.819092f, 0.647007f, 0.367672f, 0.436398f, 0.497045f, 0.27714f, 0.586413f, 0.291069f, 0.359957f, 0.422829f, 0.189001f, 0.291317f, 0.472965f, 0.985665f, 0.202703f, 0.874949f, 0.915435f, 0.124988f, 0.314792f, 0.81394f, 0.303742f, 0.35381f, 0.122282f, 0.745956f, 0.209447f, 0.257211f, 0.927826f, 0.907156f, 0.461426f, 0.106361f, 0.954715f, 0.644834f, 0.663264f, 0.723763f, 0.802764f, 0.452491f, 0.690445f, 0.0763885f, 0.100535f, 0.954263f, 0.485459f, 0.315302f, 0.412006f, 0.312095f, 0.955058f, 0.838809f, 0.443168f, 0.675165f, 0.00597348f, 0.396078f, 0.926727f, 0.668074f, 0.215526f, 0.776938f, 0.932685f, 0.179367f, 0.0769971f, 0.888411f, 0.872208f, 0.00631209f, 0.278515f, 0.491077f, 0.878372f, 0.701497f, 0.265719f, 0.592272f, 0.415172f, 0.867962f, 0.859485f, 0.587776f, 0.178753f, 0.490393f, 0.470901f, 0.677936f, 0.763239f, 0.332961f, 0.953333f, 0.942395f, 0.0136726f, 0.39762f, 0.0989805f, 0.617236f, 0.155618f, 0.440091f, 0.91059f, 0.814133f, 0.756409f, 0.975529f, 0.572451f, 0.844711f, 0.950252f, 0.990381f, 0.761324f, 0.180284f, 0.206011f, 0.0900117f, 0.0221842f, 0.331012f, 0.270904f, 0.958312f, 0.389324f, 0.324624f, 0.301003f, 0.0224642f, 0.00124109f, 0.874292f, 0.717028f, 0.295782f, 0.0209107f, 0.0302121f, 0.892169f, 0.503364f, 0.320226f, 0.272315f, 0.65038f, 0.784421f, 0.0888919f, 0.250147f, 0.0424563f, 0.560304f, 0.432983f, 0.501894f, 0.437084f, 0.489585f, 0.314804f, 0.183821f, 0.181711f, 0.0583365f, 0.852978f, 0.844904f, 0.339829f, 0.1833f, 0.349819f, 0.223401f, 0.550625f, 0.638733f, 0.270964f, 0.2392f, 0.718568f, 0.220275f, 0.299293f, 0.385766f, 0.436482f, 0.0886527f, 0.173392f, 0.18101f, 0.300184f, 0.122931f, 0.23347f, 0.674402f, 0.19252f, 0.8956f, 0.748266f, 0.746077f, 0.533762f, 0.246848f, 0.219544f, 0.689732f, 0.295174f, 0.244165f, 0.203912f, 0.925367f, 0.998724f, 0.727769f, 0.372718f, 0.559335f, 0.731244f, 0.775813f, 0.818395f, 0.410829f, 0.0362289f, 0.688645f, 0.317817f, 0.637866f, 0.72063f, 0.320848f, 0.424657f, 0.0157628f, 0.14882f, 0.345892f, 0.162934f, 0.193426f, 0.00402687f, 0.115824f, 0.582711f, 0.857726f, 0.38583f, 0.0702833f, 0.35083f, 0.0715505f, 0.777583f, 0.035525f, 0.362197f, 0.860771f, 0.963233f, 0.641075f, 0.374879f, 0.896295f, 0.0165354f, 0.91491f, 0.830022f, 0.49169f, 0.583116f, 0.577071f, 0.133575f, 0.443f, 0.39942f, 0.288246f, 0.292011f, 0.557059f, 0.673048f, 0.00417844f, 0.211666f, 0.0893447f, 0.935207f, 0.77357f, 0.877631f, 0.262308f, 0.209458f, 0.757559f, 0.259865f, 0.709038f, 0.342092f, 0.887604f, 0.800483f, 0.0608916f, 0.0624347f, 0.296387f, 0.227653f, 0.0905725f, 0.96811f, 0.876155f, 0.712574f, 0.475495f, 0.837954f, 0.82326f, 0.901368f, 0.978379f, 0.374155f, 0.3437f, 0.820785f, 0.852968f, 0.554892f, 0.45926f, 0.714185f, 0.580378f, 0.530148f, 0.254213f, 0.950919f, 0.314368f, 0.424304f, 0.388183f, 0.244002f, 0.306542f, 0.570451f, 0.164858f, 0.609034f, 0.184189f, 0.451433f, 0.269775f, 0.17716f, 0.391834f, 0.00178003f, 0.891679f, 0.671473f, 0.711705f, 0.117475f, 0.783716f, 0.915749f, 0.984903f, 0.263905f, 0.655211f, 0.347225f, 0.361571f, 0.412794f, 0.00185498f, 0.206817f, 0.884916f, 0.186854f, 0.38828f, 0.0828301f, 0.375498f, 0.666243f, 0.658897f, 0.876611f, 0.412295f, 0.697257f, 0.115523f, 0.316816f, 0.476403f, 0.766361f, 0.852835f, 0.306754f, 0.22442f, 0.0357394f, 0.409191f, 0.333454f, 0.164335f, 0.987705f, 0.411213f, 0.234983f, 0.158057f, 0.43634f, 0.658609f, 0.174127f, 0.020123f, 0.437261f, 0.0184341f, 0.89343f, 0.79349f, 0.980645f, 0.692591f, 0.148737f, 0.330185f, 0.754389f, 0.642548f, 0.817865f, 0.880654f, 0.422831f, 0.446075f, 0.21881f, 0.984493f, 0.0661338f, 0.461624f, 0.105358f, 0.534487f, 0.213864f, 0.148391f, 0.951034f, 0.271586f, 0.559914f, 0.879341f, 0.602874f, 0.220543f, 0.476639f, 0.435103f, 0.105406f, 0.310206f, 0.793802f, 0.151404f, 0.487077f, 0.172264f, 0.960269f, 0.713114f, 0.999871f, 0.420094f, 0.515271f, 0.451883f, 0.479245f, 0.348492f, 0.990736f, 0.308586f, 0.63651f, 0.808384f, 0.561693f, 0.0413513f, 0.681456f, 0.610626f, 0.534659f, 0.496177f, 0.3667f, 0.900975f, 0.894569f, 0.79565f, 0.0186271f, 0.989815f, 0.991297f, 0.779106f, 0.519002f, 0.487239f, 0.869723f, 0.00462705f, 0.184937f, 0.668712f, 0.917448f, 0.725175f, 0.562443f, 0.428636f, 0.303813f, 0.647251f, 0.921253f, 0.47985f, 0.0837471f, 0.744928f, 0.861585f, 0.839156f, 0.834023f, 0.264347f, 0.302752f, 0.647836f, 0.310652f, 0.287339f, 0.22281f, 0.58143f, 0.0492512f, 0.388226f, 0.636916f, 0.701096f, 0.45844f, 0.612194f, 0.0897263f, 0.613092f, 0.21763f, 0.251719f, 0.581469f, 0.842173f, 0.104907f, 0.852448f, 0.8234f, 0.164362f, 0.888597f, 0.0204464f, 0.835671f, 0.761565f, 0.556342f, 0.796369f, 0.586651f, 0.669905f, 0.670633f, 0.182719f, 0.77019f, 0.404177f, 0.553797f, 0.414769f, 0.961517f, 0.743827f, 0.58166f, 0.514762f, 0.0927369f, 0.201122f, 0.510801f, 0.338126f, 0.992696f, 0.803498f, 0.648466f, 0.729269f, 0.455494f, 0.115187f, 0.33076f, 0.453352f, 0.475997f, 0.0203883f, 0.594224f, 0.0339375f, 0.020838f, 0.55651f, 0.404537f, 0.949745f, 0.854326f, 0.651165f, 0.104005f, 0.694183f, 0.00834956f, 0.78608f, 0.815726f, 0.459997f, 0.122715f, 0.765904f, 0.40332f, 0.685294f, 0.494859f, 0.746013f, 0.174657f, 0.503882f, 0.560745f, 0.223367f, 0.625813f, 0.415538f, 0.399038f, 0.395755f, 0.275441f, 0.36147f, 0.201579f, 0.401547f, 0.408787f, 0.884887f, 0.616629f, 0.889319f, 0.656236f, 0.938783f, 0.0637644f, 0.973361f, 0.879687f, 0.529342f, 0.568434f, 0.431322f, 0.62737f, 0.974513f, 0.845337f, 0.996259f, 0.159408f, 0.631976f, 0.643702f, 0.665687f, 0.139823f, 0.843702f, 0.246161f, 0.76084f, 0.728958f, 0.535128f, 0.136276f, 0.184521f, 0.904256f, 0.294465f, 0.778551f, 0.377506f, 0.787573f, 0.436552f, 0.320794f, 0.965536f, 0.692609f, 0.618321f, 0.786625f, 0.790937f, 0.634893f, 0.207891f, 0.643817f, 0.222708f, 0.425659f, 0.674078f, 0.504861f, 0.131684f, 0.0188377f, 0.937917f, 0.293583f, 0.334396f, 0.266537f, 0.92676f, 0.326858f, 0.525026f, 0.266233f, 0.0477181f, 0.598097f, 0.0946177f, 0.684865f, 0.384384f, 0.699691f, 0.278586f, 0.401219f, 0.0221756f, 0.792018f, 0.497166f, 0.515238f, 0.695679f, 0.719962f, 0.349851f, 0.440469f, 0.567658f, 0.624902f, 0.576608f, 0.635863f, 0.0877794f, 0.94749f, 0.273357f, 0.763191f, 0.958012f, 0.434347f, 0.983312f, 0.422428f, 0.193906f, 0.190518f, 0.40998f, 0.114308f, 0.774496f, 0.120317f, 0.660065f, 0.344058f, 0.376515f, 0.00188368f, 0.498159f, 0.136415f, 0.97349f, 0.360057f, 0.468954f, 0.677129f, 0.988489f, 0.100758f, 0.987906f, 0.0793113f, 0.699757f, 0.254688f, 0.0192848f, 0.0246752f, 0.314687f, 0.519168f, 0.949958f, 0.199203f, 0.660482f, 0.364254f, 0.665527f, 0.0424076f, 0.0105091f, 0.807254f, 0.778683f, 0.47006f, 0.749578f, 0.122787f, 0.379606f, 0.320607f, 0.239831f, 0.992628f, 0.400976f, 0.513473f, 0.469938f, 0.166511f, 0.318388f, 0.0512289f, 0.16053f, 0.677713f, 0.995624f, 0.0188381f, 0.130674f, 0.188496f, 0.529163f, 0.29398f, 0.686658f, 0.685019f, 0.682503f, 0.725215f, 0.289632f, 0.132913f, 0.511885f, 0.0148312f, 0.820994f, 0.652437f, 0.130145f, 0.911327f, 0.627165f, 0.103867f, 0.13767f, 0.110062f, 0.406208f, 0.590038f, 0.0765644f, 0.559362f, 0.531457f, 0.91515f, 0.297759f, 0.739756f, 0.300428f, 0.246681f, 0.666189f, 0.100013f, 0.321947f, 0.596659f, 0.853213f, 0.375101f, 0.263643f, 0.299012f, 0.630002f, 0.690559f, 0.653102f, 0.231595f, 0.623702f, 0.400381f, 0.179103f, 0.985133f, 0.263407f, 0.0276057f, 0.792905f, 0.94982f, 0.788521f, 0.444738f, 0.0369177f, 0.157686f, 0.0208841f, 0.338507f, 0.235028f, 0.135567f, 0.898262f, 0.663315f, 0.304737f, 0.401189f, 0.501241f, 0.346704f, 0.560141f, 0.881806f, 0.243489f, 0.639263f, 0.599862f, 0.253706f, 0.854068f, 0.133819f, 0.405036f, 0.311781f, 0.401806f, 0.872806f, 0.321202f, 0.752558f, 0.175346f, 0.378333f, 0.323489f, 0.383771f, 0.858183f, 0.0325355f, 0.928269f, 0.673296f, 0.673749f, 0.0901323f, 0.72412f, 0.649832f, 0.135227f, 0.35764f, 0.288569f, 0.254955f, 0.443867f, 0.517818f, 0.297254f, 0.590647f, 0.107932f, 0.449047f, 0.882344f, 0.225252f, 0.433855f, 0.762601f, 0.696592f, 0.944478f, 0.811902f, 0.446042f, 0.739057f, 0.916647f, 0.560893f, 0.481298f, 0.0512294f, 0.189685f, 0.938124f, 0.743038f, 0.663919f, 0.277515f, 0.00490406f, 0.105191f, 0.745067f, 0.610129f, 0.875308f, 0.0198431f, 0.170976f, 0.345018f, 0.489012f, 0.552749f, 0.874204f, 0.308591f, 0.503163f, 0.669615f, 0.734265f, 0.792719f, 0.0165101f, 0.760995f, 0.821754f, 0.223009f, 0.757844f, 0.830483f, 0.132646f, 0.61682f, 0.837773f, 0.0240728f, 0.790019f, 0.77177f, 0.882421f, 0.166526f, 0.735692f, 0.546135f, 0.843767f, 0.896736f, 0.590712f, 0.445507f, 0.34464f, 0.181952f, 0.66194f, 0.347118f, 0.176585f, 0.0663742f, 0.581223f, 0.470515f, 0.0402068f, 0.440101f, 0.653776f, 0.171315f, 0.948476f, 0.252551f, 0.0267077f, 0.214988f, 0.906711f, 0.658821f, 0.0954548f, 0.905208f, 0.406649f, 0.654212f, 0.915519f, 0.393234f, 0.731812f, 0.180086f, 0.511531f, 0.218638f, 0.552076f, 0.168674f, 0.702122f, 0.368917f, 0.235562f, 0.753486f, 0.697328f, 0.404258f, 0.206343f, 0.751382f, 0.0744253f, 0.776965f, 0.0942195f, 0.437631f, 0.488783f, 0.39511f, 0.685955f, 0.416878f, 0.634365f, 0.152642f, 0.840603f, 0.21257f, 0.0627066f, 0.353281f, 0.884653f, 0.151442f, 0.193807f, 0.063635f, 0.631978f, 0.149031f, 0.655747f, 0.888465f, 0.900787f, 0.929788f, 0.851687f, 0.715223f, 0.342302f, 0.90168f, 0.137161f, 0.46594f, 0.816812f, 0.965853f, 0.765433f, 0.369141f, 0.463996f, 0.964662f, 0.732006f, 0.173873f, 0.882535f, 0.648797f, 0.0182048f, 0.90321f, 0.821726f, 0.288565f, 0.144074f, 0.852497f, 0.242443f, 0.69388f, 0.252887f, 0.172532f, 0.883051f, 0.679245f, 0.494158f, 0.346952f, 0.533348f, 0.911159f, 0.654162f, 0.814161f, 0.435313f, 0.514984f, 0.599249f, 0.0797151f, 0.805843f, 0.65486f, 0.931116f, 0.816697f, 0.581251f, 0.586563f, 0.836913f, 0.898794f, 0.95048f, 0.313502f, 0.387805f, 0.630518f, 0.418309f, 0.310879f, 0.866792f, 0.470594f, 0.207069f, 0.699711f, 0.794977f, 0.242894f, 0.478062f, 0.642866f, 0.530757f, 0.97951f, 0.654546f, 0.9611f, 0.424048f, 0.461523f, 0.819456f, 0.464958f, 0.680896f, 0.818617f, 0.60735f, 0.873149f, 0.554147f, 0.948287f, 0.677049f, 0.628649f, 0.389143f, 0.219843f, 0.206531f, 0.382141f, 0.97292f, 0.436913f, 0.527146f, 0.584415f, 0.638428f, 0.964012f, 0.67869f, 0.743408f, 0.364167f, 0.935989f, 0.319598f, 0.97166f, 0.531958f, 0.226696f, 0.676763f, 0.908528f, 0.616405f, 0.678407f, 0.183517f, 0.449191f, 0.0941468f, 0.824995f, 0.488591f, 0.668747f, 0.271305f, 0.360296f, 0.156978f, 0.335918f, 0.25947f, 0.87536f, 0.00516358f, 0.634068f, 0.327899f, 0.106054f, 0.845073f, 0.81707f, 0.388142f, 0.70198f, 0.0181476f, 0.0736673f, 0.187835f, 0.512911f, 0.175033f, 0.97524f, 0.849162f, 0.14661f, 0.928972f, 0.732933f, 0.844496f, 0.751822f, 0.919395f, 0.542603f, 0.356712f, 0.742917f, 0.647308f, 0.462918f, 0.434674f, 0.553079f, 0.0235603f, 0.632526f, 0.735501f, 0.422099f, 0.443653f, 0.0204179f, 0.815156f, 0.233638f, 0.628604f, 0.0116476f, 0.153278f, 0.837472f, 0.830971f, 0.363338f, 0.861741f, 0.160206f, 0.394161f, 0.175412f, 0.137136f, 0.26409f, 0.517597f, 0.689166f, 0.37129f, 0.442019f, 0.0914687f, 0.37218f, 0.930533f, 0.889082f, 0.483711f, 0.377526f, 0.252849f, 0.838257f, 0.801246f, 0.848188f, 0.361704f, 0.488574f, 0.148598f, 0.294871f, 0.266487f, 0.774182f, 0.187339f, 0.0941953f, 0.164017f, 0.936422f, 0.50731f, 0.074095f, 0.854587f, 0.649322f, 0.345458f, 0.445889f, 0.81422f, 0.244509f, 0.682901f, 0.749852f, 0.111593f, 0.213816f, 0.452847f, 0.39045f, 0.0703317f, 0.804879f, 0.0454746f, 0.11173f, 0.541566f, 0.757812f, 0.901329f, 0.1559f, 0.437596f, 0.0668889f, 0.51318f, 0.239489f, 0.991694f, 0.00890407f, 0.776454f, 0.480847f, 0.867292f, 0.178512f, 0.487028f, 0.394301f, 0.312336f, 0.706071f, 0.0676136f, 0.417828f, 0.144306f, 0.467616f, 0.535511f, 0.451438f, 0.732587f, 0.81661f, 0.17244f, 0.239007f, 0.384814f, 0.519206f, 0.946842f, 0.745977f, 0.0109876f, 0.417681f, 0.973558f, 0.434035f, 0.264324f, 0.423259f, 0.180296f, 0.0602802f, 0.905666f, 0.297782f, 0.704718f, 0.0523451f, 0.398693f, 0.312f, 0.714856f, 0.176388f, 0.922254f, 0.997358f, 0.112195f, 0.505402f, 0.848362f, 0.213936f, 0.846666f, 0.609299f, 0.833808f, 0.693092f, 0.548613f, 0.66066f, 0.86805f, 0.787334f, 0.00247236f, 0.402374f, 0.378345f, 0.372522f, 0.963886f, 0.938627f, 0.364029f, 0.555715f, 0.450016f, 0.896565f, 0.786311f, 0.628032f, 0.768357f, 0.220717f, 0.0791959f, 0.588705f, 0.937854f, 0.306802f, 0.358237f, 0.625344f, 0.776782f, 0.813199f, 0.045975f, 0.4f, 0.233179f, 0.983195f, 0.305067f, 0.0694271f, 0.359581f, 0.067716f, 0.885032f, 0.273982f, 0.570772f, 0.888602f, 0.219557f, 0.378408f, 0.241539f, 0.258022f, 0.475525f, 0.857438f, 0.948276f, 0.00303445f, 0.0524761f, 0.0211743f, 0.909011f, 0.621567f, 0.679538f, 0.126809f, 0.972133f, 0.108976f, 0.0159989f, 0.977282f, 0.392157f, 0.291527f, 0.222998f, 0.324908f, 0.242965f, 0.20673f, 0.514523f, 0.480699f, 0.692138f, 0.382866f, 0.21629f, 0.841046f, 0.268402f, 0.76586f, 0.874557f, 0.814671f, 0.581949f, 0.0393721f, 0.376769f, 0.0832735f, 0.0114397f, 0.462073f, 0.0464791f, 0.468276f, 0.815788f, 0.062347f, 0.0712963f, 0.579323f, 0.550473f, 0.811739f, 0.48989f, 0.681401f, 0.185871f, 0.0397111f, 0.880335f, 0.347317f, 0.613371f, 0.207223f, 0.587868f, 0.66271f, 0.370936f, 0.385676f, 0.564103f, 0.32319f, 0.203513f, 0.20325f, 0.28876f, 0.636782f, 0.133005f, 0.154924f, 0.814053f, 0.577972f, 0.590152f, 0.74786f, 0.733135f, 0.93969f, 0.357774f, 0.361943f, 0.823137f, 0.81813f, 0.331541f, 0.784539f, 0.634332f, 0.897261f, 0.232585f, 0.260344f, 0.585753f, 0.949643f, 0.394603f, 0.629096f, 0.571147f, 0.250446f, 0.639285f, 0.874115f, 0.0845131f, 0.901405f, 0.448808f, 0.879161f, 0.853172f, 0.657264f, 0.455202f, 0.674769f, 0.792406f, 0.221688f, 0.210912f, 0.504814f, 0.64103f, 0.040465f, 0.551683f, 0.0399134f, 0.985258f, 0.566315f, 0.153864f, 0.558317f, 0.920538f, 0.504803f, 0.0154709f, 0.930551f, 0.699332f, 0.359302f, 0.597273f, 0.749038f, 0.54641f, 0.475377f, 0.532226f, 0.282638f, 0.686299f, 0.904624f, 0.711049f, 0.286856f, 0.165259f, 0.793737f, 0.947973f, 0.442122f, 0.585861f, 0.00375097f, 0.477529f, 0.966832f, 0.0255681f, 0.850698f, 0.208501f, 0.157569f, 0.908811f, 0.427259f, 0.585685f, 0.358088f, 0.820059f, 0.636096f, 0.678087f, 0.111219f, 0.658997f, 0.0135983f, 0.230142f, 0.956578f, 0.0798112f, 0.792803f, 0.00995865f, 0.621058f, 0.859901f, 0.940691f, 0.485983f, 0.766231f, 0.617424f, 0.768601f, 0.459799f, 0.0779353f, 0.470563f, 0.414345f, 0.882353f, 0.838752f, 0.969884f, 0.365109f, 0.427634f, 0.842743f, 0.629724f, 0.376985f, 0.291547f, 0.205478f, 0.918634f, 0.0106153f, 0.675243f, 0.503538f, 0.311834f, 0.363575f, 0.685241f, 0.612219f, 0.243538f, 0.0523428f, 0.255861f, 0.726771f, 0.547785f, 0.657322f, 0.822952f, 0.531548f, 0.509373f, 0.400932f, 0.486141f, 0.24589f, 0.523337f, 0.620198f, 0.672751f, 0.436069f, 0.750501f, 0.150979f, 0.777565f, 0.255165f, 0.25547f, 0.417277f, 0.127728f, 0.790892f, 0.231964f, 0.251233f, 0.515786f, 0.733995f, 0.755056f, 0.212614f, 0.140287f, 0.506838f, 0.548005f, 0.50844f, 0.828861f, 0.738998f, 0.66115f, 0.493259f, 0.0879833f, 0.0818416f, 0.359093f, 0.144662f, 0.34801f, 0.566687f, 0.431741f, 0.0395252f, 0.972612f, 0.173369f, 0.282916f, 0.0209703f, 0.454247f, 0.781002f, 0.555626f, 0.755128f, 0.508045f, 0.968286f, 0.567804f, 0.720546f, 0.716028f, 0.210509f, 0.764112f, 0.220195f, 0.179263f, 0.993463f, 0.981587f, 0.376688f, 0.49655f, 0.416868f, 0.750882f, 0.581115f, 0.528931f, 0.649702f, 0.552172f, 0.199754f, 0.21184f, 0.300756f, 0.00206194f, 0.790112f, 0.661196f, 0.407876f, 0.121373f, 0.0288388f, 0.537629f, 0.491145f, 0.200387f, 0.489174f, 0.265322f, 0.715038f, 0.932368f, 0.28523f, 0.542864f, 0.384893f, 0.855611f, 0.483112f, 0.808174f, 0.124034f, 0.571804f, 0.357685f, 0.182198f, 0.345442f, 0.70914f, 0.554292f, 0.516797f, 0.976609f, 0.143118f, 0.00196754f, 0.389125f, 0.304913f, 0.896352f, 0.137209f, 0.897262f, 0.174488f, 0.945255f, 0.738199f, 0.446846f, 0.651386f, 0.103271f, 0.015566f, 0.669168f, 0.111878f, 0.720844f, 0.571162f, 0.414152f, 0.632662f, 0.124961f, 0.117036f, 0.547065f, 0.769056f, 0.212571f, 0.127038f, 0.653646f, 0.600641f, 0.894887f, 0.391917f, 0.510365f, 0.0804136f, 0.546756f, 0.572669f, 0.211586f, 0.247839f, 0.195546f, 0.607518f, 0.502233f, 0.434904f, 0.699243f, 0.350656f, 0.0359477f, 0.491685f, 0.0887684f, 0.0941827f, 0.722759f, 0.115717f, 0.266468f, 0.631221f, 0.157107f, 0.198286f, 0.226469f, 0.159666f, 0.128377f, 0.218301f, 0.361379f, 0.4007f, 0.533851f, 0.557404f, 0.0466327f, 0.645502f, 0.153742f, 0.554059f, 0.9425f, 0.0661787f, 0.0320266f, 0.871934f, 0.63689f, 0.395157f, 0.301419f, 0.191002f, 0.0203157f, 0.362925f, 0.418706f, 0.109352f, 0.127928f, 0.735726f, 0.85121f, 0.217985f, 0.72121f, 0.606717f, 0.969741f, 0.350378f, 0.945544f, 0.665039f, 0.496837f, 0.745786f, 0.686947f, 0.558355f, 0.651492f, 0.196427f, 0.381324f, 0.481085f, 0.270371f, 0.737005f, 0.542791f, 0.664317f, 0.845877f, 0.106086f, 0.599747f, 0.805139f, 0.314063f, 0.920153f, 0.890399f, 0.0157717f, 0.344151f, 0.773477f, 0.927122f, 0.572308f, 0.925828f, 0.759559f, 0.0634648f, 0.278847f, 0.786123f, 0.896158f, 0.79095f, 0.0878904f, 0.815251f, 0.845217f, 0.412765f, 0.41615f, 0.333214f, 0.410225f, 0.321003f, 0.905244f, 0.012862f, 0.114231f, 0.668392f, 0.91973f, 0.45456f, 0.505116f, 0.521361f, 0.888924f, 0.715811f, 0.718758f, 0.0619728f, 0.0916167f, 0.0335274f, 0.0624644f, 0.4784f, 0.429709f, 0.58511f, 0.677507f, 0.0806693f, 0.591992f, 0.246494f, 0.967231f, 0.527379f, 0.561387f, 0.253546f, 0.0427814f, 0.737071f, 0.796151f, 0.0255074f, 0.105284f, 0.827983f, 0.535238f, 0.844796f, 0.841525f, 0.591672f, 0.0766255f, 0.0881285f, 0.704453f, 0.671481f, 0.768818f, 0.111716f, 0.71122f, 0.950354f, 0.899784f, 0.433181f, 0.40691f, 0.503999f, 0.422504f, 0.581437f, 0.797081f, 0.531882f, 0.0998619f, 0.48154f, 0.370861f, 0.00221245f, 0.410198f, 0.391688f, 0.947599f, 0.228708f, 0.0315346f, 0.927713f, 0.779427f, 0.911971f, 0.30753f, 0.865715f, 0.0593138f, 0.350164f, 0.301878f, 0.72946f, 0.431283f, 0.357232f, 0.212766f, 0.71931f, 0.515632f, 0.816957f, 0.191838f, 0.775153f, 0.432858f, 0.959898f, 0.634488f, 0.622311f, 0.599992f, 0.512847f, 0.997908f, 0.939193f, 0.581875f, 0.560387f, 0.78185f, 0.285982f, 0.280553f, 0.308816f, 0.134468f, 0.321772f, 0.110574f, 0.489362f, 0.872673f, 0.0193961f, 0.460953f, 0.84901f, 0.668887f, 0.189664f, 0.000549057f, 0.161837f, 0.72935f, 0.709209f, 0.00228495f, 0.596407f, 0.122947f, 0.984808f, 0.8726f, 0.308435f, 0.233373f, 0.669192f, 0.461376f, 0.114877f, 0.00838577f, 0.926238f, 0.315023f, 0.307728f, 0.753198f, 0.415399f, 0.349156f, 0.421721f, 0.0862714f, 0.665752f, 0.498863f, 0.127277f, 0.337532f, 0.936022f, 0.437087f, 0.717495f, 0.745443f, 0.117998f, 0.250283f, 0.280285f, 0.582203f, 0.392373f, 0.0847275f, 0.337317f, 0.314002f, 0.329854f, 0.0470029f, 0.407913f, 0.977614f, 0.688895f, 0.559196f, 0.334343f, 0.510806f, 0.209277f, 0.737387f, 0.226032f, 0.0296062f, 0.338569f, 0.0356785f, 0.378598f, 0.479794f, 0.963596f, 0.357715f, 0.494336f, 0.0956445f, 0.278095f, 0.225147f, 0.379982f, 0.8188f, 0.950299f, 0.0545482f, 0.635316f, 0.0816566f, 0.989249f, 0.00408357f, 0.905033f, 0.367877f, 0.0417027f, 0.972755f, 0.457357f, 0.692385f, 0.150804f, 0.26182f, 0.725535f, 0.960612f, 0.11631f, 0.971702f, 0.0398852f, 0.726893f, 0.594899f, 0.653482f, 0.785575f, 0.983186f, 0.900966f, 0.765669f, 0.654914f, 0.916507f, 0.928975f, 0.553837f, 0.457753f, 0.58964f, 0.00780929f, 0.282989f, 0.202425f, 0.158142f, 0.310862f, 0.507121f, 0.657615f, 0.884899f, 0.234023f, 0.0502052f, 0.0933516f, 0.573893f, 0.736496f, 0.248577f, 0.57518f, 0.344975f, 0.130153f, 0.655958f, 0.763193f, 0.218772f, 0.680001f, 0.597525f, 0.0542872f, 0.409138f, 0.573627f, 0.120364f, 0.738672f, 0.725271f, 0.936735f, 0.224608f, 0.188548f, 0.496173f, 0.929599f, 0.00923076f, 0.565452f, 0.0899691f, 0.919553f, 0.475673f, 0.318576f, 0.220193f, 0.535904f, 0.347333f, 0.443615f, 0.145647f, 0.258849f, 0.855244f, 0.357146f, 0.624343f, 0.692086f, 0.846721f, 0.961042f, 0.148f, 0.0624468f, 0.559837f, 0.334245f, 0.728384f, 0.0147112f, 0.406731f, 0.422222f, 0.936485f, 0.0063763f, 0.209485f, 0.709123f, 0.625679f, 0.80454f, 0.830715f, 0.860449f, 0.583985f, 0.764824f, 0.287307f, 0.885473f, 0.57181f, 0.155419f, 0.153509f, 0.188338f, 0.398051f, 0.0866237f, 0.512296f, 0.502992f, 0.35682f, 0.289414f, 0.170634f, 0.490584f, 0.959767f, 0.860544f, 0.413453f, 0.810313f, 0.0113791f, 0.519471f, 0.731116f, 0.199219f, 0.81898f, 0.374283f, 0.783708f, 0.931345f, 0.294982f, 0.120297f, 0.276786f, 0.982351f, 0.649792f, 0.466978f, 0.67864f, 0.878387f, 0.358194f, 0.113574f, 0.792296f, 0.685458f, 0.182877f, 0.898499f, 0.724257f, 0.0528478f, 0.374871f, 0.809123f, 0.338506f, 0.360038f, 0.288583f, 0.578386f, 0.464609f, 0.371332f, 0.355915f, 0.771267f, 0.588021f, 0.0448652f, 0.875129f, 0.513044f, 0.33325f, 0.715725f, 0.247601f, 0.141509f, 0.831008f, 0.98756f, 0.649571f, 0.86587f, 0.163103f, 0.340718f, 0.865083f, 0.0677505f, 0.216519f, 0.570092f, 0.975661f, 0.0302013f, 0.975612f, 0.942977f, 0.00373243f, 0.640335f, 0.53276f, 0.245543f, 0.12357f, 0.131662f, 0.896766f, 0.171882f, 0.37124f, 0.19251f, 0.582918f, 0.894718f, 0.0180517f, 0.368494f, 0.356654f, 0.293119f, 0.437928f, 0.99279f, 0.587389f, 0.373991f, 0.118354f, 0.703704f, 0.214441f, 0.944031f, 0.757169f, 0.459805f, 0.710348f, 0.290625f, 0.642241f, 0.908912f, 0.597383f, 0.847746f, 0.266141f, 0.954442f, 0.786096f, 0.584809f, 0.872451f, 0.189283f, 0.590112f, 0.103202f, 0.561726f, 0.22862f, 0.865938f, 0.571098f, 0.296255f, 0.722207f, 0.804941f, 0.428624f, 0.240523f, 0.545486f, 0.597495f, 0.793655f, 0.976565f, 0.941642f, 0.929814f, 0.246966f, 0.763846f, 0.914594f, 0.306194f, 0.82581f, 0.946183f, 0.1705f, 0.569774f, 0.340134f, 0.506855f, 0.99366f, 0.66201f, 0.526022f, 0.00202823f, 0.532165f, 0.973131f, 0.653596f, 0.551471f, 0.760754f, 0.0511451f, 0.797115f, 0.455992f, 0.317481f, 0.212322f, 0.352279f, 0.314062f, 0.595491f, 0.397062f, 0.652924f, 0.790962f, 0.976547f, 0.0622074f, 0.33661f, 0.646198f, 0.542818f, 0.281868f, 0.203457f, 0.652231f, 0.123915f, 0.501028f, 0.480124f, 0.160761f, 0.134233f, 0.743564f, 0.415994f, 0.288894f, 0.833903f, 0.712921f, 0.727619f, 0.64625f, 0.225502f, 0.291045f, 0.905906f, 0.528167f, 0.742347f, 0.486641f, 0.335503f, 0.766211f, 0.338197f, 0.937293f, 0.367452f, 0.207395f, 0.375009f, 0.355053f, 0.961887f, 0.240556f, 0.525981f, 0.0458107f, 0.0874091f, 0.612792f, 0.0990322f, 0.745701f, 0.147858f, 0.312751f, 0.911464f, 0.324989f, 0.495886f, 0.348204f, 0.426207f, 0.863553f, 0.581139f, 0.965369f, 0.595424f, 0.699875f, 0.773731f, 0.341878f, 0.930402f, 0.279704f, 0.401378f, 0.747993f, 0.435297f, 0.768118f, 0.563954f, 0.016211f, 0.884873f, 0.500864f, 0.918371f, 0.763598f, 0.776229f, 0.619362f, 0.703753f, 0.584146f, 0.603731f, 0.712628f, 0.27401f, 0.567779f, 0.491112f, 0.896256f, 0.763065f, 0.0339006f, 0.848141f, 0.6502f, 0.73823f, 0.541453f, 0.350801f, 0.0428536f, 0.164055f, 0.108277f, 0.341676f, 0.15516f, 0.24938f, 0.426811f, 0.697442f, 0.907769f, 0.497783f, 0.99617f, 0.552364f, 0.864926f, 0.5084f, 0.488835f, 0.204708f, 0.772011f, 0.500959f, 0.988587f, 0.653905f, 0.0344443f, 0.518279f, 0.231005f, 0.618156f, 0.50635f, 0.58547f, 0.416673f, 0.876748f, 0.318371f, 0.708886f, 0.49613f, 0.700261f, 0.93264f, 0.116976f, 0.486153f, 0.192922f, 0.85528f, 0.86345f, 0.520997f, 0.02331f, 0.458086f, 0.223506f, 0.577211f, 0.552242f, 0.0102861f, 0.160216f, 0.57318f, 0.424467f, 0.437013f, 0.736506f, 0.835531f, 0.0998913f, 0.0845583f, 0.972808f, 0.784317f, 0.72042f, 0.0886273f, 0.42117f, 0.395213f, 0.234131f, 0.885903f, 0.169609f, 0.451673f, 0.0327804f, 0.199422f, 0.311461f, 0.603402f, 0.382815f, 0.518431f, 0.413673f, 0.598206f, 0.364313f, 0.779445f, 0.341969f, 0.167242f, 0.590968f, 0.292988f, 0.225162f, 0.20739f, 0.938427f, 0.669011f, 0.969483f, 0.387452f, 0.249334f, 0.542592f, 0.384693f, 0.134744f, 0.428328f, 0.701529f, 0.481345f, 0.920091f, 0.904572f, 0.840509f, 0.0919866f, 0.206846f, 0.852618f, 0.584072f, 0.955355f, 0.741576f, 0.629663f, 0.612411f, 0.667856f, 0.845727f, 0.675872f, 0.594167f, 0.975577f, 0.8698f, 0.158647f, 0.703157f, 0.584215f, 0.00491956f, 0.798266f, 0.8218f, 0.414095f, 0.993723f, 0.890489f, 0.708743f, 0.668226f, 0.810432f, 0.262654f, 0.832021f, 0.115476f, 0.00390665f, 0.362986f, 0.492119f, 0.870461f, 0.269166f, 0.172225f, 0.564672f, 0.400391f, 0.740482f, 0.906482f, 0.328487f, 0.989471f, 0.151229f, 0.859692f, 0.25861f, 0.0940253f, 0.13692f, 0.0757249f, 0.998619f, 0.842025f, 0.322892f, 0.286659f, 0.381916f, 0.985287f, 0.515331f, 0.916071f, 0.528695f, 0.211765f, 0.390794f, 0.496102f, 0.12651f, 0.0528892f, 0.503706f, 0.988945f, 0.845423f, 0.107962f, 0.402534f, 0.0852831f, 0.066165f, 0.829246f, 0.828779f, 0.536622f, 0.289877f, 0.872261f, 0.524916f, 0.931103f, 0.00457239f, 0.620804f, 0.348598f, 0.918016f, 0.381111f, 0.282309f, 0.172538f, 0.127281f, 0.960613f, 0.736746f, 0.264226f, 0.419735f, 0.830129f, 0.544679f, 0.472383f, 0.404834f, 0.398699f, 0.0316545f, 0.892427f, 0.50956f, 0.457152f, 0.529312f, 0.9592f, 0.888618f, 0.804808f, 0.159292f, 0.436697f, 0.209112f, 0.422998f, 0.426475f, 0.663998f, 0.292566f, 0.161049f, 0.703247f, 0.495259f, 0.343341f, 0.251313f, 0.77333f, 0.0113886f, 0.601211f, 0.576168f, 0.0706262f, 0.360842f, 0.647657f, 0.856267f, 0.411357f, 0.908686f, 0.35822f, 0.325975f, 0.825719f, 0.765477f, 0.801352f, 0.203915f, 0.63614f, 0.228641f, 0.770325f, 0.946778f, 0.818214f, 0.914332f, 0.905681f, 0.352022f, 0.994568f, 0.614553f, 0.952883f, 0.335177f, 0.926303f, 0.969833f, 0.0983308f, 0.838996f, 0.182769f, 0.979836f, 0.486662f, 0.602633f, 0.626398f, 0.159378f, 0.216179f, 0.544848f, 0.0878025f, 0.244399f, 0.546144f, 0.966008f, 0.621244f, 0.96941f, 0.603416f, 0.33022f, 0.803729f, 0.289634f, 0.259416f, 0.931589f, 0.638398f, 0.0338544f, 0.0435814f, 0.257008f, 0.812442f, 0.727103f, 0.126367f, 0.682423f, 0.458193f, 0.00417282f, 0.223973f, 0.0692229f, 0.62723f, 0.0117099f, 0.590087f, 0.818927f, 0.247285f, 0.42548f, 0.733347f, 0.0664999f, 0.39956f, 0.883227f, 0.695966f, 0.816119f, 0.0305324f, 0.756018f, 0.689714f, 0.894324f, 0.0645479f, 0.196347f, 0.155635f, 0.672791f, 0.344293f, 0.423109f, 0.415881f, 0.204927f, 0.665713f, 0.579229f, 0.658633f, 0.845824f, 0.985636f, 0.426899f, 0.807134f, 0.839088f, 0.0107139f, 0.14249f, 0.51986f, 0.714971f, 0.0845383f, 0.571933f, 0.590329f, 0.107127f, 0.438811f, 0.165975f, 0.76789f, 0.290438f, 0.705135f, 0.026361f, 0.529545f, 0.823216f, 0.388826f, 0.615675f, 0.517143f, 0.566942f, 0.703386f, 0.444429f, 0.6027f, 0.200455f, 0.722011f, 0.422342f, 0.181544f, 0.279475f, 0.582627f, 0.498877f, 0.42955f, 0.426562f, 0.103993f, 0.285546f, 0.414382f, 0.265607f, 0.541157f, 0.223715f, 0.138597f, 0.608746f, 0.470125f, 0.985783f, 0.150817f, 0.46392f, 0.000200871f, 0.787561f, 0.0966264f, 0.348749f, 0.645341f, 0.560252f, 0.170749f, 0.285654f, 0.0573061f, 0.626963f, 0.665299f, 0.949342f, 0.368927f, 0.616642f, 0.899843f, 0.560864f, 0.0500526f, 0.636431f, 0.609077f, 0.221059f, 0.944734f, 0.83399f, 0.197986f, 0.102107f, 0.304868f, 0.99269f, 0.393463f, 0.547096f, 0.749555f, 0.866702f, 0.54016f, 0.761694f, 0.00293374f, 0.259535f, 0.912372f, 0.271655f, 0.816248f, 0.868964f, 0.0294961f, 0.104257f, 0.86573f, 0.276186f, 0.707999f, 0.92271f, 0.841975f, 0.526159f, 0.534731f, 0.685051f, 0.563805f, 0.538375f, 0.00772071f, 0.285702f, 0.187482f, 0.54118f, 0.971558f, 0.88197f, 0.894442f, 0.934236f, 0.878159f, 0.599847f, 0.540383f, 0.816625f, 0.00306986f, 0.708378f, 0.447841f, 0.0120822f, 0.323399f, 0.465694f, 0.471394f, 0.863878f, 0.430542f, 0.463848f, 0.297583f, 0.863157f, 0.564637f, 0.355597f, 0.793509f, 0.147592f, 0.953117f, 0.950615f, 0.643658f, 0.940714f, 0.0628789f, 0.205232f, 0.204428f, 0.969652f, 0.767973f, 0.0415497f, 0.932636f, 0.0573255f, 0.733433f, 0.350563f, 0.903375f, 0.719947f, 0.911418f, 0.0659568f, 0.259685f, 0.610348f, 0.0463574f, 0.554181f, 0.940194f, 0.651812f, 0.196356f, 0.344841f, 0.834639f, 0.430794f, 0.953926f, 0.465358f, 0.739098f, 0.26821f, 0.378973f, 0.690384f, 0.581762f, 0.270614f, 0.797406f, 0.42754f, 0.290747f, 0.979932f, 0.654372f, 0.354304f, 0.0665159f, 0.429663f, 0.565186f, 0.0834735f, 0.404492f, 0.835542f, 0.110146f, 0.231637f, 0.0152121f, 0.763023f, 0.0616657f, 0.450835f, 0.10849f, 0.300411f, 0.931281f, 0.498653f, 0.688545f, 0.78672f, 0.464066f, 0.291882f, 0.311086f, 0.482199f, 0.275523f, 0.0585518f, 0.668633f, 0.508012f, 0.127602f, 0.51531f, 0.718507f, 0.769994f, 0.672421f, 0.879333f, 0.274856f, 0.874205f, 0.243628f, 0.329747f, 0.706719f, 0.951337f, 0.39424f, 0.319537f, 0.615233f, 0.666551f, 0.140004f, 0.986185f, 0.24362f, 0.260255f, 0.775704f, 0.318598f, 0.634543f, 0.373432f, 0.23914f, 0.960406f, 0.700363f, 0.0150745f, 0.207158f, 0.0973178f, 0.172616f, 0.133483f, 0.854305f, 0.968142f, 0.998083f, 0.729599f, 0.737585f, 0.00674988f, 0.0817041f, 0.506241f, 0.544573f, 0.615566f, 0.858829f, 0.45843f, 0.792255f, 0.183437f, 0.863698f, 0.648547f, 0.13791f, 0.392648f, 0.921829f, 0.562101f, 0.709357f, 0.650223f, 0.425849f, 0.447496f, 0.464585f, 0.318584f, 0.239279f, 0.894132f, 0.0399246f, 0.574067f, 0.00205177f, 0.339859f, 0.272871f, 0.711183f, 0.870697f, 0.674962f, 0.529911f, 0.676338f, 0.71056f, 0.658444f, 0.29523f, 0.23069f, 0.817284f, 0.0576263f, 0.555746f, 0.868494f, 0.0366979f, 0.742614f, 0.865596f, 0.159675f, 0.37778f, 0.17525f, 0.425312f, 0.847687f, 0.37265f, 0.474997f, 0.838556f, 0.698778f, 0.435983f, 0.241735f, 0.639332f, 0.090232f, 0.815012f, 0.469081f, 0.090894f, 0.759303f, 0.644909f, 0.382755f, 0.509077f, 0.905721f, 0.848911f, 0.00579584f, 0.517374f, 0.314455f, 0.090473f, 0.73679f, 0.666728f, 0.961911f, 0.990351f, 0.33643f, 0.0883509f, 0.300408f, 0.0702269f, 0.844034f, 0.569015f, 0.465901f, 0.0748921f, 0.197839f, 0.380249f, 0.759736f, 0.405091f, 0.220558f, 0.805229f, 0.958237f, 0.745353f, 0.725116f, 0.596741f, 0.604463f, 0.415037f, 0.42541f, 0.498128f, 0.186665f, 0.405051f, 0.28792f, 0.0203449f, 0.195992f, 0.921243f, 0.191876f, 0.818855f, 0.975756f, 0.748671f, 0.813616f, 0.987465f, 0.082691f, 0.231378f, 0.199104f, 0.202423f, 0.367678f, 0.291812f, 0.763446f, 0.986363f, 0.865835f, 0.776336f, 0.964528f, 0.451582f, 0.281876f, 0.82759f, 0.804063f, 0.020807f, 0.0420121f, 0.869471f, 0.897517f, 0.842594f, 0.538692f, 0.639519f, 0.00635103f, 0.939893f, 0.668518f, 0.521784f, 0.58292f, 0.00522094f, 0.664122f, 0.16847f, 0.321834f, 0.331613f, 0.83081f, 0.395113f, 0.781049f, 0.693139f, 0.348966f, 0.150701f, 0.664904f, 0.654168f, 0.996648f, 0.0939377f, 0.724414f, 0.937661f, 0.560264f, 0.319581f, 0.762135f, 0.0923492f, 0.965276f, 0.0243539f, 0.100302f, 0.244656f, 0.531123f, 0.71056f, 0.166116f, 0.469231f, 0.210765f, 0.206743f, 0.962878f, 0.607144f, 0.305528f, 0.453014f, 0.727968f, 0.176804f, 0.116808f, 0.00258623f, 0.89623f, 0.817662f, 0.868491f, 0.270113f, 0.699267f, 0.90892f, 0.336316f, 0.210581f, 0.0204948f, 0.791701f, 0.31052f, 0.24179f, 0.553815f, 0.590352f, 0.723638f, 0.912787f, 0.402025f, 0.36912f, 0.141353f, 0.351457f, 0.0349154f, 0.523278f, 0.112241f, 0.260141f, 0.982615f, 0.234799f, 0.395018f, 0.522477f, 0.053424f, 0.107475f, 0.363252f, 0.204558f, 0.855529f, 0.929576f, 0.647918f, 0.135676f, 0.15198f, 0.404128f, 0.433395f, 0.166823f, 0.670806f, 0.0906192f, 0.851992f, 0.694199f, 0.671856f, 0.597631f, 0.20906f, 0.179516f, 0.0647193f, 0.0296873f, 0.834149f, 0.136419f, 0.706952f, 0.664221f, 0.548566f, 0.401391f, 0.526223f, 0.224918f, 0.445352f, 0.0370809f, 0.176695f, 0.541017f, 0.796263f, 0.796275f, 0.913017f, 0.949191f, 0.619724f, 0.51641f, 0.906705f, 0.142056f, 0.967786f, 0.423085f, 0.482451f, 0.288789f, 0.836869f, 0.120046f, 0.528131f, 0.625834f, 0.234306f, 0.196148f, 0.119733f, 0.734559f, 0.965229f, 0.562937f, 0.787852f, 0.675926f, 0.029867f, 0.241398f, 0.802881f, 0.927945f, 0.923412f, 0.381762f, 0.643686f, 0.0761685f, 0.838634f, 0.467641f, 0.681804f, 0.63528f, 0.653475f, 0.975469f, 0.380416f, 0.320755f, 0.993272f, 0.548512f, 0.135106f, 0.923513f, 0.465571f, 0.3169f, 0.167756f, 0.257546f, 0.433034f, 0.739972f, 0.960899f, 0.608396f, 0.930492f, 0.735647f, 0.463604f, 0.362737f, 0.884576f, 0.926171f, 0.0598129f, 0.632085f, 0.565815f, 0.0310972f, 0.752345f, 0.818162f, 0.308334f, 0.175584f, 0.750346f, 0.0552021f, 0.265004f, 0.233168f, 0.593114f, 0.834025f, 0.276204f, 0.138598f, 0.197715f, 0.178756f, 0.667517f, 0.416278f, 0.821277f, 0.358993f, 0.968456f, 0.0335809f, 0.266034f, 0.882204f, 0.522069f, 0.630596f, 0.211127f, 0.740852f, 0.747831f, 0.0644943f, 0.0345094f, 0.329728f, 0.41275f, 0.21704f, 0.490708f, 0.985969f, 0.392695f, 0.907899f, 0.643262f, 0.0143452f, 0.791734f, 0.23178f, 0.290934f, 0.105063f, 0.399584f, 0.159166f, 0.614385f, 0.935482f, 0.252265f, 0.466793f, 0.0633298f, 0.622608f, 0.764519f, 0.392718f, 0.438837f, 0.389323f, 0.591578f, 0.989194f, 0.527337f, 0.660731f, 0.889085f, 0.619298f, 0.600918f, 0.379091f, 0.741526f, 0.0862965f, 0.492049f, 0.88669f, 0.95967f, 0.521622f, 0.252513f, 0.864143f, 0.909911f, 0.2173f, 0.478902f, 0.358323f, 0.643247f, 0.284693f, 0.266228f, 0.163657f, 0.983907f, 0.336515f, 0.651207f, 0.961555f, 0.363472f, 0.325315f, 0.621677f, 0.352404f, 0.326053f, 0.231271f, 0.249802f, 0.278977f, 0.832877f, 0.722816f, 0.599307f, 0.812224f, 0.853521f, 0.896083f, 0.896791f, 0.0556386f, 0.532463f, 0.0892749f, 0.741247f, 0.425154f, 0.827661f, 0.463396f, 0.333345f, 0.36799f, 0.0731207f, 0.998054f, 0.756167f, 0.985519f, 0.155195f, 0.574123f, 0.128731f, 0.15453f, 0.663942f, 0.15609f, 0.647585f, 0.497078f, 0.138329f, 0.20556f, 0.707234f, 0.0701173f, 0.32703f, 0.0736788f, 0.151086f, 0.034621f, 0.775824f, 0.395119f, 0.491423f, 0.811292f, 0.555471f, 0.399263f, 0.896201f, 0.168861f, 0.580457f, 0.837932f, 0.670103f, 0.050994f, 0.293822f, 0.124163f, 0.339868f, 0.979219f, 0.544389f, 0.519155f, 0.508206f, 0.184331f, 0.584999f, 0.730872f, 0.980492f, 0.536113f, 0.616493f, 0.275979f, 0.0288866f, 0.40827f, 0.578146f, 0.19725f, 0.265708f, 0.22907f, 0.149651f, 0.979306f, 0.981751f, 0.0337527f, 0.940704f, 0.636961f, 0.66884f, 0.397068f, 0.600011f, 0.322185f, 0.247842f, 0.903778f, 0.465529f, 0.0182291f, 0.741215f, 0.355892f, 0.809661f, 0.148362f, 0.846179f, 0.303348f, 0.790928f, 0.0170574f, 0.607165f, 0.876478f, 0.00035118f, 0.014497f, 0.0108556f, 0.919901f, 0.994195f, 0.163055f, 0.90789f, 0.909241f, 0.701163f, 0.157759f, 0.389993f, 0.65642f, 0.604372f, 0.822426f, 0.741058f, 0.516607f, 0.996425f, 0.672762f, 0.20792f, 0.565459f, 0.693866f, 0.289497f, 0.925893f, 0.928514f, 0.86954f, 0.775174f, 0.112372f, 0.134064f, 0.43187f, 0.779967f, 0.741867f, 0.813394f, 0.928731f, 0.498083f, 0.917405f, 0.498005f, 0.789323f, 0.586336f, 0.44808f, 0.104959f, 0.827014f, 0.229818f, 0.888603f, 0.847413f, 0.940034f, 0.593459f, 0.431248f, 0.566338f, 0.367776f, 0.802815f, 0.564667f, 0.703991f, 0.836249f, 0.214939f, 0.29843f, 0.843575f, 0.548418f, 0.00429634f, 0.260532f, 0.783796f, 0.0827653f, 0.909126f, 0.753129f, 0.112608f, 0.600541f, 0.664346f, 0.23046f, 0.743698f, 0.327555f, 0.151545f, 0.700316f, 0.315323f, 0.643648f, 0.580651f, 0.121066f, 0.592839f, 0.484781f, 0.467554f, 0.179179f, 0.604391f, 0.717236f, 0.745805f, 0.502522f, 0.0460628f, 0.447133f, 0.580186f, 0.93037f, 0.321131f, 0.100553f, 0.954835f, 0.267758f, 0.502147f, 0.534792f, 0.211809f, 0.160501f, 0.171858f, 0.88894f, 0.798534f, 0.194293f, 0.400821f, 0.0234603f, 0.119979f, 0.824951f, 0.360874f, 0.518219f, 0.415773f, 0.45019f, 0.455195f, 0.585127f, 0.256568f, 0.204331f, 0.414101f, 0.69395f, 0.2381f, 0.261185f, 0.209752f, 0.0115052f, 0.112926f, 0.943212f, 0.574441f, 0.514057f, 0.544136f, 0.576757f, 0.946525f, 0.855984f, 0.366236f, 0.616032f, 0.825127f, 0.854987f, 0.464268f, 0.305881f, 0.10641f, 0.686624f, 0.43191f, 0.839187f, 0.375332f, 0.915516f, 0.764687f, 0.680906f, 0.909116f, 0.631644f, 0.324785f, 0.758552f, 0.500855f, 0.236844f, 0.986931f, 0.0211137f, 0.695021f, 0.901116f, 0.308871f, 0.216388f, 0.304568f, 0.0111088f, 0.617964f, 0.244016f, 0.895608f, 0.116573f, 0.38365f, 0.109429f, 0.440777f, 0.376023f, 0.630833f, 0.0729521f, 0.827809f, 0.150113f, 0.87315f, 0.281883f, 0.115363f, 0.0853128f, 0.933364f, 0.65708f, 0.017312f, 0.872395f, 0.247909f, 0.868631f, 0.779587f, 0.454693f, 0.431712f, 0.325233f, 0.901397f, 0.367187f, 0.718744f, 0.407726f, 0.792426f, 0.254828f, 0.267451f, 0.809714f, 0.88461f, 0.54456f, 0.824247f, 0.518043f, 0.800778f, 0.445437f, 0.014163f, 0.64314f, 0.79269f, 0.436548f, 0.204399f, 0.311823f, 0.656984f, 0.0499323f, 0.662787f, 0.174967f, 0.701401f, 0.922061f, 0.436045f, 0.884565f, 0.992981f, 0.412914f, 0.295808f, 0.601825f, 0.948338f, 0.0759658f, 0.902624f, 0.40913f, 0.284306f, 0.651176f, 0.86046f, 0.0900332f, 0.412146f, 0.613414f, 0.501614f, 0.118202f, 0.679276f, 0.254333f, 0.797349f, 0.865418f, 0.727564f, 0.891665f, 0.00370642f, 0.566895f, 0.701209f, 0.995844f, 0.030836f, 0.813926f, 0.501887f, 0.260956f, 0.184355f, 0.258789f, 0.960773f, 0.941786f, 0.707603f, 0.324272f, 0.728184f, 0.412306f, 0.114169f, 0.95476f, 0.224615f, 0.515423f, 0.348148f, 0.501832f, 0.879398f, 0.744902f, 0.723606f, 0.101973f, 0.773845f, 0.947844f, 0.414223f, 0.842809f, 0.10853f, 0.0228851f, 0.672875f, 0.807232f, 0.0990737f, 0.293034f, 0.0116935f, 0.294261f, 0.71371f, 0.566896f, 0.665978f, 0.0574669f, 0.383927f, 0.292232f, 0.659186f, 0.25795f, 0.667451f, 0.922412f, 0.65384f, 0.299946f, 0.225055f, 0.904578f, 0.571749f, 0.438771f, 0.13227f, 0.584159f, 0.327093f, 0.838427f, 0.252241f, 0.608643f, 0.637982f, 0.284738f, 0.60947f, 0.23709f, 0.895966f, 0.130962f, 0.881189f, 0.16436f, 0.490026f, 0.348695f, 0.344268f, 0.611604f, 0.0924971f, 0.659324f, 0.258519f, 0.323436f, 0.218884f, 0.717656f, 0.563147f, 0.491481f, 0.638029f, 0.187785f, 0.527152f, 0.409818f, 0.0796029f, 0.550197f, 0.106779f, 0.863336f, 0.89693f, 0.672314f, 0.461292f, 0.534388f, 0.838775f, 0.760253f, 0.794555f, 0.175541f, 0.46315f, 0.0430115f, 0.292334f, 0.409738f, 0.534336f, 0.607629f, 0.259045f, 0.853545f, 0.822796f, 0.438134f, 0.277195f, 0.375651f, 0.692985f, 0.707428f, 0.295825f, 0.974419f, 0.556508f, 0.493008f, 0.456633f, 0.441367f, 0.91749f, 0.93552f, 0.71973f, 0.381575f, 0.108175f, 0.287838f, 0.723426f, 0.688044f, 0.409911f, 0.826705f, 0.399584f, 0.045195f, 0.522587f, 0.974563f, 0.560133f, 0.165759f, 0.223891f, 0.104598f, 0.596698f, 0.350797f, 0.751825f, 0.806949f, 0.0926424f, 0.9807f, 0.234214f, 0.476828f, 0.627716f, 0.334558f, 0.659462f, 0.292002f, 0.215695f, 0.478504f, 0.842043f, 0.208658f, 0.574693f, 0.706193f, 0.182325f, 0.514058f, 0.742052f, 0.430874f, 0.655785f, 0.776095f, 0.427489f, 0.573386f, 0.132211f, 0.724419f, 0.374021f, 0.642952f, 0.509729f, 0.174314f, 0.152859f, 0.840252f, 0.820897f, 0.913226f, 0.760157f, 0.289457f, 0.784954f, 0.302112f, 0.801207f, 0.453753f, 0.789927f, 0.649221f, 0.528698f, 0.871934f, 0.72262f, 0.880094f, 0.514637f, 0.905289f, 0.822404f, 0.475876f, 0.145079f, 0.277701f, 0.582699f, 0.0200736f, 0.699082f, 0.623793f, 0.549057f, 0.379624f, 0.984244f, 0.970339f, 0.497237f, 0.381554f, 0.359354f, 0.00120478f, 0.719147f, 0.286087f, 0.465576f, 0.0458521f, 0.667311f, 0.509316f, 0.871826f, 0.437869f, 0.568979f, 0.380274f, 0.165264f, 0.59324f, 0.399523f, 0.182252f, 0.345438f, 0.586487f, 0.114168f, 0.84029f, 0.208268f, 0.782768f, 0.271256f, 0.813751f, 0.778691f, 0.386482f, 0.445026f, 0.344706f, 0.295499f, 0.917742f, 0.017588f, 0.442123f, 0.89954f, 0.651926f, 0.6297f, 0.0820331f, 0.29287f, 0.0730486f, 0.469891f, 0.930979f, 0.751474f, 0.914331f, 0.540801f, 0.561634f, 0.848007f, 0.373144f, 0.313446f, 0.0753001f, 0.970079f, 0.561994f, 0.239609f, 0.536868f, 0.315583f, 0.554862f, 0.756354f, 0.145848f, 0.666259f, 0.124349f, 0.31953f, 0.438672f, 0.27094f, 0.711085f, 0.531289f, 0.877004f, 0.265989f, 0.631045f, 0.88132f, 0.685856f, 0.261297f, 0.496775f, 0.710571f, 0.104709f, 0.498863f, 0.355969f, 0.610158f, 0.17301f, 0.978776f, 0.750499f, 0.115035f, 0.918091f, 0.402919f, 0.634628f, 0.852173f, 0.406181f, 0.798554f, 0.621079f, 0.824542f, 0.0592027f, 0.792443f, 0.931727f, 0.218676f, 0.739214f, 0.680902f, 0.662684f, 0.584827f, 0.0308682f, 0.753073f, 0.629906f, 0.961798f, 0.0154862f, 0.509855f, 0.50579f, 0.154932f, 0.445066f, 0.797666f, 0.0980351f, 0.381174f, 0.610172f, 0.672341f, 0.132992f, 0.622815f, 0.452504f, 0.857514f, 0.747917f, 0.783866f, 0.236015f, 0.615881f, 0.34953f, 0.474907f, 0.569256f, 0.589659f, 0.98423f, 0.13752f, 0.333018f, 0.357911f, 0.480973f, 0.0646463f, 0.793046f, 0.644213f, 0.974062f, 0.707243f, 0.273168f, 0.491179f, 0.548453f, 0.508097f, 0.322258f, 0.719144f, 0.219058f, 0.254633f, 0.452233f, 0.763223f, 0.21776f, 0.850223f, 0.575237f, 0.776773f, 0.796148f, 0.292721f, 0.547291f, 0.34993f, 0.540902f, 0.247358f, 0.632989f, 0.658463f, 0.648706f, 0.468378f, 0.41613f, 0.0584094f, 0.458238f, 0.49945f, 0.368629f, 0.158795f, 0.86675f, 0.187539f, 0.247226f, 0.314224f, 0.259569f, 0.837135f, 0.0354982f, 0.312818f, 0.674403f, 0.265776f, 0.682042f, 0.259623f, 0.933283f, 0.912524f, 0.619224f, 0.472372f, 0.474608f, 0.38423f, 0.760945f, 0.220489f, 0.783338f, 0.00802285f, 0.423839f, 0.782985f, 0.724448f, 0.947651f, 0.272443f, 0.459552f, 0.041788f, 0.183062f, 0.965342f, 0.190206f, 0.84062f, 0.274621f, 0.885556f, 0.550416f, 0.154001f, 0.186097f, 0.855902f, 0.673944f, 0.470926f, 0.960764f, 0.148265f, 0.484413f, 0.363845f, 0.869619f, 0.376051f, 0.768723f, 0.25102f, 0.508597f, 0.368859f, 0.313424f, 0.297966f, 0.124184f, 0.526412f, 0.100375f, 0.0850555f, 0.209241f, 0.985646f, 0.467479f, 0.741716f, 0.880919f, 0.239868f, 0.125569f, 0.766085f, 0.414694f, 0.155826f, 0.661832f, 0.898435f, 0.32218f, 0.182857f, 0.588117f, 0.905859f, 0.222751f, 0.713234f, 0.960351f, 0.570073f, 0.26031f, 0.501943f, 0.0928177f, 0.993911f, 0.193006f, 0.664554f, 0.955191f, 0.589961f, 0.230473f, 0.584139f, 0.324643f, 0.764747f, 0.783914f, 0.371301f, 0.633118f, 0.312599f, 0.821442f, 0.867296f, 0.828298f, 0.789692f, 0.755405f, 0.748992f, 0.628563f, 0.901995f, 0.48306f, 0.0464854f, 0.0322784f, 0.96636f, 0.974842f, 0.0860964f, 0.440699f, 0.161384f, 0.865728f, 0.0869808f, 0.797345f, 0.517103f, 0.436557f, 0.192385f, 0.0218754f, 0.701476f, 0.0983975f, 0.165935f, 0.0729489f, 0.661953f, 0.124412f, 0.973386f, 0.526955f, 0.710206f, 0.917344f, 0.944149f, 0.568388f, 0.933564f, 0.286672f, 0.980303f, 0.907433f, 0.875405f, 0.743237f, 0.402325f, 0.0567592f, 0.832722f, 0.179377f, 0.801224f, 0.883203f, 0.381213f, 0.0258982f, 0.117356f, 0.960031f, 0.984689f, 0.625665f, 0.0881564f, 0.115545f, 0.0249928f, 0.497614f, 0.234678f, 0.227404f, 0.400364f, 0.233352f, 0.585983f, 0.946101f, 0.717634f, 0.938645f, 0.923234f, 0.626302f, 0.755186f, 0.822275f, 0.931542f, 0.0205411f, 0.278447f, 0.635083f, 0.13394f, 0.555069f, 0.350612f, 0.128086f, 0.889004f, 0.676447f, 0.636477f, 0.225248f, 0.556167f, 0.377751f, 0.574902f, 0.424374f, 0.253218f, 0.60506f, 0.726014f, 0.384679f, 0.380904f, 0.57604f, 0.176138f, 0.613727f, 0.88269f, 0.620452f, 0.942352f, 0.559772f, 0.914514f, 0.0597413f, 0.783225f, 0.124257f, 0.147811f, 0.99078f, 0.22325f, 0.0241154f, 0.308585f, 0.462974f, 0.550367f, 0.949106f, 0.580759f, 0.253475f, 0.758766f, 0.7966f, 0.801193f, 0.537815f, 0.148124f, 0.958577f, 0.370819f, 0.877432f, 0.271177f, 0.61121f, 0.169104f, 0.279981f, 0.721685f, 0.424901f, 0.462961f, 0.74627f, 0.537585f, 0.869691f, 0.420511f, 0.458058f, 0.799109f, 0.344508f, 0.169611f, 0.0256076f, 0.819881f, 0.468481f, 0.382126f, 0.576242f, 0.328457f, 0.2908f, 0.92422f, 0.246153f, 0.174499f, 0.162325f, 0.848084f, 0.813024f, 0.598717f, 0.081141f, 0.699845f, 0.616717f, 0.427305f, 0.258407f, 0.812078f, 0.599774f, 0.441849f, 0.871452f, 0.921642f, 0.0925834f, 0.663771f, 0.806246f, 0.0799521f, 0.53988f, 0.802581f, 0.822449f, 0.227303f, 0.629688f, 0.769725f, 0.6312f, 0.776404f, 0.0563044f, 0.668515f, 0.10632f, 0.482832f, 0.664467f, 0.17943f, 0.155185f, 0.498768f, 0.624199f, 0.891363f, 0.413369f, 0.329932f, 0.972195f, 0.919222f, 0.0372321f, 0.172684f, 0.962581f, 0.176423f, 0.655037f, 0.535664f, 0.0590107f, 0.150341f, 0.532048f, 0.327029f, 0.119509f, 0.288328f, 0.421066f, 0.550553f, 0.0739355f, 0.489525f, 0.29824f, 0.0957491f, 0.26151f, 0.2643f, 0.13023f, 0.0565316f, 0.589529f, 0.963704f, 0.896324f, 0.778048f, 0.125465f, 0.716692f, 0.737858f, 0.397445f, 0.913826f, 0.144997f, 0.371797f, 0.783237f, 0.038625f, 0.305142f, 0.445822f, 0.352947f, 0.940223f, 0.519356f, 0.119558f, 0.221171f, 0.752677f, 0.465037f, 0.433192f, 0.951326f, 0.00174407f, 0.000852478f, 0.326694f, 0.836998f, 0.551499f, 0.290006f, 0.938063f, 0.742529f, 0.98151f, 0.777035f, 0.258349f, 0.673026f, 0.963895f, 0.179765f, 0.396741f, 0.528501f, 0.282647f, 0.77735f, 0.0371651f, 0.905108f, 0.540387f, 0.0731417f, 0.626844f, 0.594055f, 0.287718f, 0.793243f, 0.668974f, 0.387761f, 0.83005f, 0.682245f, 0.707271f, 0.934249f, 0.774444f, 0.538811f, 0.204792f, 0.475236f, 0.778051f, 0.368142f, 0.819584f, 0.583842f, 0.114981f, 0.819753f, 0.425623f, 0.982429f, 0.492697f, 0.686498f, 0.461096f, 0.90238f, 0.202892f, 0.490347f, 0.322927f, 0.202239f, 0.297956f, 0.951061f, 0.130693f, 0.694167f, 0.553036f, 0.839263f, 0.694583f, 0.422681f, 0.703303f, 0.639276f, 0.407163f, 0.599419f, 0.951824f, 0.525206f, 0.75019f, 0.106609f, 0.0389167f, 0.489264f, 0.225616f, 0.0821625f, 0.293815f, 0.0319412f, 0.655122f, 0.168102f, 0.81337f, 0.806153f, 0.802901f, 0.660158f, 0.00617115f, 0.109757f, 0.62557f, 0.0245337f, 0.311922f, 0.398968f, 0.480767f, 0.580234f, 0.680186f, 0.824447f, 0.775051f, 0.112181f, 0.575273f, 0.868062f, 0.93091f, 0.615659f, 0.186859f, 0.231254f, 0.66266f, 0.168416f, 0.615304f, 0.612983f, 0.911719f, 0.498838f, 0.955301f, 0.993775f, 0.40017f, 0.540156f, 0.873754f, 0.0377319f, 0.582286f, 0.444224f, 0.990661f, 0.601351f, 0.746164f, 0.840231f, 0.9379f, 0.548204f, 0.78896f, 0.458155f, 0.309218f, 0.666261f, 0.284855f, 0.622254f, 0.457914f, 0.921579f, 0.74251f, 0.636525f, 0.644134f, 0.774124f, 0.15566f, 0.889489f, 0.743138f, 0.9135f, 0.477348f, 0.605992f, 0.57831f, 0.466674f, 0.752416f, 0.877237f, 0.278309f, 0.753585f, 0.871845f, 0.901358f, 0.0586715f, 0.434308f, 0.117971f, 0.755632f, 0.00294837f, 0.566496f, 0.246941f, 0.53662f, 0.478259f, 0.974853f, 0.556342f, 0.00517481f, 0.523726f, 0.684089f, 0.739755f, 0.486899f, 0.544261f, 0.264827f, 0.877572f, 0.87167f, 0.262036f, 0.139675f, 0.515183f, 0.157899f, 0.913045f, 0.798245f, 0.0503126f, 0.505807f, 0.983327f, 0.705224f, 0.517085f, 0.261182f, 0.0446573f, 0.227707f, 0.352375f, 0.0515031f, 0.754243f, 0.698194f, 0.180565f, 0.439551f, 0.83348f, 0.670013f, 0.237351f, 0.609419f, 0.397373f, 0.576492f, 0.961343f, 0.719049f, 0.927943f, 0.989281f, 0.34384f, 0.787242f, 0.538397f, 0.347012f, 0.0220672f, 0.423566f, 0.907935f, 0.477733f, 0.20742f, 0.859281f, 0.117473f, 0.909488f, 0.247089f, 0.553861f, 0.928132f, 0.89112f, 0.816372f, 0.0238718f, 0.752407f, 0.438752f, 0.122816f, 0.665924f, 0.277893f, 0.554107f, 0.284287f, 0.70918f, 0.297723f, 0.260358f, 0.0712148f, 0.848991f, 0.49641f, 0.440257f, 0.628057f, 0.124644f, 0.100055f, 0.380851f, 0.622258f, 0.657038f, 0.901209f, 0.123963f, 0.841385f, 0.303333f, 0.09721f, 0.884663f, 0.714303f, 0.46114f, 0.545124f, 0.780385f, 0.316296f, 0.680153f, 0.115062f, 0.502013f, 0.552295f, 0.796584f, 0.566508f, 0.930178f, 0.52719f, 0.801343f, 0.0935308f, 0.27279f, 0.595946f, 0.174402f, 0.770938f, 0.322567f, 0.170058f, 0.970148f, 0.757813f, 0.0681377f, 0.0450165f, 0.602497f, 0.782329f, 0.950679f, 0.782467f, 0.0432937f, 0.291854f, 0.809315f, 0.178888f, 0.423167f, 0.435534f, 0.359823f, 0.428627f, 0.333091f, 0.124443f, 0.350348f, 0.191246f, 0.617864f, 0.799096f, 0.426804f, 0.772329f, 0.43208f, 0.906347f, 0.257781f, 0.716487f, 0.180127f, 0.623993f, 0.672109f, 0.239313f, 0.488359f, 0.479487f, 0.29074f, 0.392749f, 0.827346f, 0.705263f, 0.265863f, 0.982821f, 0.989852f, 0.37734f, 0.392601f, 0.534571f, 0.376238f, 0.962671f, 0.740355f, 0.154218f, 0.866869f, 0.60661f, 0.471131f, 0.789162f, 0.679582f, 0.818826f, 0.519382f, 0.199361f, 0.454289f, 0.0818061f, 0.67688f, 0.430039f, 0.215616f, 0.812701f, 0.776465f, 0.243733f, 0.461079f, 0.424431f, 0.64718f, 0.867117f, 0.639368f, 0.455398f, 0.363037f, 0.137118f, 0.754838f, 0.932655f, 0.0862599f, 0.699841f, 0.377795f, 0.570325f, 0.251683f, 0.547029f, 0.0242767f, 0.371165f, 0.55267f, 0.869402f, 0.0202103f, 0.994045f, 0.360752f, 0.619197f, 0.0180576f, 0.56193f, 0.957328f, 0.246113f, 0.868871f, 0.242305f, 0.546781f, 0.906181f, 0.643265f, 0.433022f, 0.663056f, 0.0471264f, 0.446656f, 0.0022702f, 0.666057f, 0.0669204f, 0.215709f, 0.493289f, 0.904332f, 0.385009f, 0.334148f, 0.0627965f, 0.954187f, 0.0200881f, 0.443694f, 0.880873f, 0.266442f, 0.771994f, 0.950973f, 0.605418f, 0.636895f, 0.543338f, 0.908259f, 0.706086f, 0.777986f, 0.744501f, 0.3056f, 0.379276f, 0.178968f, 0.0348583f, 0.658162f, 0.24641f, 0.966883f, 0.961268f, 0.656626f, 0.415952f, 0.993531f, 0.974672f, 0.412589f, 0.347602f, 0.820219f, 0.254617f, 0.562052f, 0.645303f, 0.0206252f, 0.494782f, 0.459434f, 0.484668f, 0.243249f, 0.657745f, 0.54916f, 0.704609f, 0.900557f, 0.385821f, 0.309218f, 0.685758f, 0.518557f, 0.778011f, 0.914133f, 0.619028f, 0.206377f, 0.844328f, 0.299949f, 0.630885f, 0.407831f, 0.305057f, 0.828275f, 0.171423f, 0.639153f, 0.0211753f, 0.484988f, 0.26194f, 0.631163f, 0.913255f, 0.450585f, 0.715113f, 0.825757f, 0.0933041f, 0.10379f, 0.601412f, 0.444863f, 0.439811f, 0.783182f, 0.177187f, 0.693553f, 0.554622f, 0.612014f, 0.224615f, 0.983296f, 0.288059f, 0.101529f, 0.64367f, 0.559435f, 0.682705f, 0.12073f, 0.18114f, 0.131592f, 0.923007f, 0.447648f, 0.557072f, 0.801549f, 0.0532496f, 0.793354f, 0.937405f, 0.731906f, 0.112107f, 0.783417f, 0.740857f, 0.542819f, 0.562909f, 0.499708f, 0.666301f, 0.0777642f, 0.0500464f, 0.938406f, 0.457906f, 0.857416f, 0.494227f, 0.53519f, 0.192868f, 0.175715f, 0.309725f, 0.691308f, 0.483656f, 0.779537f, 0.798791f, 0.794647f, 0.71655f, 0.133094f, 0.732047f, 0.797287f, 0.522583f, 0.764146f, 0.715243f, 0.4782f, 0.25779f, 0.605541f, 0.235435f, 0.743776f, 0.945808f, 0.663589f, 0.965508f, 0.6862f, 0.640684f, 0.536796f, 0.94945f, 0.680628f, 0.916401f, 0.0312525f, 0.00242753f, 0.610207f, 0.261788f, 0.0549341f, 0.253116f, 0.882896f, 0.521907f, 0.222643f, 0.509067f, 0.0546337f, 0.445881f, 0.534023f, 0.690115f, 0.714786f, 0.613419f, 0.524532f, 0.374039f, 0.868862f, 0.841833f, 0.580182f, 0.626474f, 0.204511f, 0.137264f, 0.232003f, 0.747401f, 0.189743f, 0.297985f, 0.714165f, 0.711f, 0.272648f, 0.857174f, 0.692015f, 0.361292f, 0.960424f, 0.8561f, 0.474445f, 0.490332f, 0.784748f, 0.606424f, 0.602914f, 0.0474436f, 0.699929f, 0.0130786f, 0.0139364f, 0.864881f, 0.529146f, 0.708899f, 0.654413f, 0.919844f, 0.40379f, 0.201353f, 0.0891713f, 0.893179f, 0.602878f, 0.580059f, 0.94724f, 0.837759f, 0.140837f, 0.850607f, 0.0862325f, 0.706289f, 0.569529f, 0.452111f, 0.4408f, 0.936718f, 0.432451f, 0.378841f, 0.970505f, 0.46226f, 0.642439f, 0.329122f, 0.129285f, 0.868897f, 0.245408f, 0.75177f, 0.0482141f, 0.691092f, 0.305157f, 0.142369f, 0.111204f, 0.760218f, 0.533274f, 0.705933f, 0.0305452f, 0.813882f, 0.905629f, 0.0983319f, 0.153983f, 0.449431f, 0.583974f, 0.084071f, 0.953052f, 0.0759673f, 0.133519f, 0.871546f, 0.0149097f, 0.362542f, 0.243673f, 0.902765f, 0.596286f, 0.496029f, 0.419529f, 0.178434f, 0.544694f, 0.572879f, 0.00291786f, 0.885841f, 0.851934f, 0.841815f, 0.9137f, 0.516152f, 0.720424f, 0.965318f, 0.596111f, 0.796458f, 0.585497f, 0.295585f, 0.60769f, 0.350821f, 0.54872f, 0.992727f, 0.632096f, 0.448442f, 0.705593f, 0.582052f, 0.217162f, 0.34433f, 0.82011f, 0.408773f, 0.224744f, 0.859523f, 0.238972f, 0.430238f, 0.425408f, 0.885283f, 0.924164f, 0.986667f, 0.152407f, 0.093156f, 0.997408f, 0.90935f, 0.358718f, 0.412118f, 0.172524f, 0.8443f, 0.0170455f, 0.329667f, 0.237855f, 0.220471f, 0.746387f, 0.886045f, 0.902062f, 0.104344f, 0.672009f, 0.184057f, 0.754634f, 0.58176f, 0.252119f, 0.312642f, 0.700702f, 0.583266f, 0.67987f, 0.253873f, 0.790255f, 0.538543f, 0.536032f, 0.817753f, 0.181572f, 0.620293f, 0.442388f, 0.0175395f, 0.0635097f, 0.939067f, 0.834639f, 0.341639f, 0.295838f, 0.551145f, 0.846727f, 0.656249f, 0.89565f, 0.187729f, 0.4568f, 0.180518f, 0.078222f, 0.594297f, 0.377796f, 0.828102f, 0.381405f, 0.674002f, 0.695807f, 0.870921f, 0.330099f, 0.488697f, 0.594359f, 0.964025f, 0.824489f, 0.611639f, 0.569748f, 0.171683f, 0.828723f, 0.672401f, 0.319036f, 0.589223f, 0.335221f, 0.899901f, 0.670486f, 0.648361f, 0.693741f, 0.0196683f, 0.814988f, 0.197128f, 0.823435f, 0.613918f, 0.0564868f, 0.538383f, 0.543875f, 0.43771f, 0.554109f, 0.425805f, 0.924813f, 0.526049f, 0.211858f, 0.449276f, 0.215117f, 0.311793f, 0.729418f, 0.695139f, 0.6163f, 0.0563601f, 0.335898f, 0.283512f, 0.304323f, 0.415524f, 0.436292f, 0.926189f, 0.123186f, 0.0775493f, 0.914466f, 0.491747f, 0.699727f, 0.534681f, 0.151101f, 0.790599f, 0.910126f, 0.616692f, 0.0518067f, 0.150926f, 0.760992f, 0.974495f, 0.454028f, 0.122438f, 0.0878844f, 0.584389f, 0.823148f, 0.242497f, 0.543378f, 0.00668937f, 0.604642f, 0.744074f, 0.386286f, 0.665456f, 0.354583f, 0.903609f, 0.672396f, 0.443259f, 0.41297f, 0.209507f, 0.700784f, 0.883033f, 0.161942f, 0.0380805f, 0.547087f, 0.603664f, 0.227137f, 0.786679f, 0.991841f, 0.802047f, 0.958698f, 0.834265f, 0.0367579f, 0.192053f, 0.586892f, 0.352888f, 0.578534f, 0.350098f, 0.195541f, 0.604039f, 0.854957f, 0.213435f, 0.681606f, 0.867585f, 0.667161f, 0.309064f, 0.614989f, 0.589832f, 0.559675f, 0.948118f, 0.394093f, 0.268181f, 0.240831f, 0.957907f, 0.16221f, 0.573655f, 0.245809f, 0.393561f, 0.173222f, 0.220485f, 0.0905068f, 0.976427f, 0.553997f, 0.674146f, 0.522876f, 0.693774f, 0.422856f, 0.271173f, 0.590398f, 0.206753f, 0.320659f, 0.0796568f, 0.207148f, 0.722146f, 0.563162f, 0.490106f, 0.174794f, 0.587179f, 0.554677f, 0.183096f, 0.372976f, 0.209802f, 0.662634f, 0.455443f, 0.970574f, 0.585647f, 0.927992f, 0.422745f, 0.641704f, 0.0534836f, 0.248369f, 0.95498f, 0.420947f, 0.130937f, 0.819082f, 0.861819f, 0.336658f, 0.835567f, 0.833752f, 0.182832f, 0.0678623f, 0.491491f, 0.107036f, 0.537015f, 0.313987f, 0.611333f, 0.648266f, 0.226446f, 0.570042f, 0.212956f, 0.493341f, 0.0463949f, 0.153225f, 0.309417f, 0.349475f, 0.484731f, 0.619564f, 0.30544f, 0.014575f, 0.433738f, 0.696053f, 0.336016f, 0.566659f, 0.894815f, 0.579978f, 0.0669475f, 0.428598f, 0.892975f, 0.0402705f, 0.785657f, 0.94177f, 0.091456f, 0.233186f, 0.196609f, 0.233832f, 0.881768f, 0.639201f, 0.908186f, 0.84707f, 0.0163121f, 0.298263f, 0.168425f, 0.226827f, 0.820643f, 0.908381f, 0.61557f, 0.211805f, 0.780831f, 0.194359f, 0.0705504f, 0.582305f, 0.732502f, 0.985155f, 0.0436473f, 0.00890268f, 0.916767f, 0.429273f, 0.252931f, 0.614374f, 0.145934f, 0.670483f, 0.549671f, 0.785289f, 2.93743e-05f, 0.137783f, 0.938396f, 0.175775f, 0.414527f, 0.237105f, 0.241415f, 0.646765f, 0.457782f, 0.0118686f, 0.262429f, 0.938411f, 0.667787f, 0.637551f, 0.242764f, 0.0024736f, 0.393944f, 0.857581f, 0.432828f, 0.68576f, 0.462804f, 0.464417f, 0.127953f, 0.40975f, 0.308381f, 0.92354f, 0.341217f, 0.369738f, 0.819888f, 0.0619571f, 0.464809f, 0.180899f, 0.893546f, 0.719092f, 0.4782f, 0.195465f, 0.524857f, 0.910797f, 0.418687f, 0.676008f, 0.722386f, 0.382214f, 0.266871f, 0.353728f, 0.689718f, 0.343171f, 0.349328f, 0.00456414f, 0.23785f, 0.777065f, 0.130103f, 0.553448f, 0.958773f, 0.583879f, 0.105877f, 0.297427f, 0.706365f, 0.0778059f, 0.443982f, 0.50586f, 0.865588f, 0.653115f, 0.160897f, 0.544656f, 0.785115f, 0.329742f, 0.37091f, 0.890802f, 0.946412f, 0.447079f, 0.904402f, 0.441834f, 0.770383f, 0.351896f, 0.873653f, 0.634946f, 0.257757f, 0.108805f, 0.732341f, 0.284968f, 0.428779f, 0.927488f, 0.275254f, 0.569032f, 0.287706f, 0.29044f, 0.819326f, 0.344959f, 0.146929f, 0.158939f, 0.765505f, 0.881878f, 0.642616f, 0.670341f, 0.627242f, 0.329185f, 0.722018f, 0.0301519f, 0.337114f, 0.653654f, 0.842816f, 0.0860576f, 0.407936f, 0.137672f, 0.670754f, 0.528559f, 0.23469f, 0.936103f, 0.0203531f, 0.475141f, 0.117577f, 0.533649f, 0.870852f, 0.667815f, 0.73863f, 0.137096f, 0.133825f, 0.0636257f, 0.559701f, 0.841388f, 0.535773f, 0.453817f, 0.433776f, 0.0598496f, 0.513973f, 0.5093f, 0.0180754f, 0.98395f, 0.833081f, 0.485592f, 0.811734f, 0.18781f, 0.580459f, 0.076301f, 0.350521f, 0.574399f, 0.332405f, 0.183742f, 0.396749f, 0.475677f, 0.0206206f, 0.206502f, 0.414385f, 0.161111f, 0.546898f, 0.233877f, 0.824058f, 0.654947f, 0.570591f, 0.254589f, 0.623835f, 0.667015f, 0.199154f, 0.406655f, 0.432944f, 0.797167f, 0.628682f, 0.061103f, 0.793747f, 0.629969f, 0.222357f, 0.758716f, 0.961138f, 0.367806f, 0.252356f, 0.805622f, 0.681745f, 0.414079f, 0.42583f, 0.616815f, 0.510683f, 0.856474f, 0.186378f, 0.741048f, 0.171764f, 0.208999f, 0.924836f, 0.232717f, 0.811693f, 0.942641f, 0.745966f, 0.708809f, 0.301825f, 0.717967f, 0.370973f, 0.833606f, 0.32192f, 0.334108f, 0.569589f, 0.397638f, 0.743032f, 0.724037f, 0.422332f, 0.672696f, 0.437039f, 0.294883f, 0.797207f, 0.974999f, 0.0105471f, 0.817756f, 0.673138f, 0.745646f, 0.781353f, 0.747134f, 0.788207f, 0.339826f, 0.342609f, 0.892701f, 0.543509f, 0.812048f, 0.703814f, 0.245834f, 0.0604217f, 0.66825f, 0.736493f, 0.914088f, 0.0879902f, 0.339839f, 0.695309f, 0.754951f, 0.648037f, 0.616954f, 0.114367f, 0.332567f, 0.708419f, 0.458937f, 0.151418f, 0.599519f, 0.363702f, 0.454054f, 0.581712f, 0.785629f, 0.989615f, 0.760428f, 0.240069f, 0.00655536f, 0.944711f, 0.433271f, 0.902965f, 0.901049f, 0.275896f, 0.499283f, 0.79581f, 0.537644f, 0.678685f, 0.730111f, 0.805495f, 0.488374f, 0.190397f, 0.611975f, 0.914667f, 0.560022f, 0.458485f, 0.173837f, 0.7671f, 0.756481f, 0.342856f, 0.809272f, 0.835281f, 0.817596f, 0.716775f, 0.798158f, 0.285878f, 0.813139f, 0.776708f, 0.381543f, 0.184735f, 0.848678f, 0.666811f, 0.368846f, 0.0221904f, 0.0784168f, 0.973761f, 0.304635f, 0.563078f, 0.444378f, 0.529288f, 0.950592f, 0.366114f, 0.461055f, 0.994619f, 0.461829f, 0.025944f, 0.113505f, 0.253799f, 0.439465f, 0.262466f, 0.63443f, 0.295602f, 0.130677f, 0.791247f, 0.232451f, 0.326196f, 0.348603f, 0.100527f, 0.14841f, 0.16522f, 0.919308f, 0.379063f, 0.44667f, 0.824501f, 0.379424f, 0.416885f, 0.182292f, 0.713288f, 0.597596f, 0.569307f, 0.800017f, 0.68274f, 0.455561f, 0.238474f, 0.300262f, 0.169274f, 0.753954f, 0.38291f, 0.579325f, 0.375995f, 0.470719f, 0.0681019f, 0.785805f, 0.18757f, 0.0616957f, 0.17398f, 0.996339f, 0.218284f, 0.434152f, 0.0494018f, 0.535415f, 0.763225f, 0.602223f, 0.875339f, 0.075351f, 0.455301f, 0.238316f, 0.319386f, 0.71196f, 0.910622f, 0.307543f, 0.130202f, 0.449451f, 0.525929f, 0.5612f, 0.95917f, 0.223535f, 0.839161f, 0.265646f, 0.0342633f, 0.690053f, 0.540579f, 0.623804f, 0.0897791f, 0.510019f, 0.953491f, 0.0901769f, 0.252437f, 0.0026872f, 0.554937f, 0.920422f, 0.799388f, 0.848727f, 0.217254f, 0.380818f, 0.221324f, 0.0738856f, 0.000122714f, 0.437933f, 0.52941f, 0.299864f, 0.785771f, 0.0549682f, 0.888237f, 0.0667256f, 0.232171f, 0.465281f, 0.0760895f, 0.41759f, 0.533014f, 0.645651f, 0.224713f, 0.75912f, 0.6478f, 0.237161f, 0.922038f, 0.216678f, 0.39973f, 0.344895f, 0.339365f, 0.407429f, 0.976207f, 0.130966f, 0.87633f, 0.170724f, 0.384754f, 0.2943f, 0.948898f, 0.931034f, 0.495715f, 0.971691f, 0.244995f, 0.377086f, 0.568675f, 0.458f, 0.38225f, 0.502437f, 0.205303f, 0.342002f, 0.692816f, 0.675023f, 0.356523f, 0.342073f, 0.385802f, 0.501364f, 0.5792f, 0.474233f, 0.998386f, 0.781904f, 0.954279f, 0.906955f, 0.253836f, 0.148687f, 0.506651f, 0.868825f, 0.17903f, 0.47435f, 0.554572f, 0.0868281f, 0.280746f, 0.573773f, 0.565284f, 0.107667f, 0.828001f, 0.61411f, 0.991063f, 0.376834f, 0.695195f, 0.214454f, 0.927982f, 0.0260029f, 0.447002f, 0.27579f, 0.180025f, 0.540228f, 0.373212f, 0.231209f, 0.639406f, 0.743067f, 0.980555f, 0.804219f, 0.020596f, 0.527276f, 0.155662f, 0.0171594f, 0.0934418f, 0.359313f, 0.632162f, 0.635465f, 0.741116f, 0.0324823f, 0.0609536f, 0.143551f, 0.332689f, 0.327101f, 0.656394f, 0.743249f, 0.824207f, 0.838604f, 0.206603f, 0.60942f, 0.0466874f, 0.34153f, 0.396803f, 0.0863154f, 0.938587f, 0.115326f, 0.832928f, 0.76383f, 0.0477996f, 0.589591f, 0.517357f, 0.00153371f, 0.230895f, 0.0164503f, 0.857105f, 0.109765f, 0.568341f, 0.876423f, 0.191798f, 0.469835f, 0.45924f, 0.355071f, 0.418041f, 0.0948443f, 0.829732f, 0.661499f, 0.506711f, 0.544885f, 0.31725f, 0.107178f, 0.47551f, 0.502825f, 0.387776f, 0.622294f, 0.426275f, 0.0617072f, 0.55118f, 0.5217f, 0.55258f, 0.61173f, 0.928234f, 0.507576f, 0.727792f, 0.374178f, 0.818812f, 0.0222083f, 0.323577f, 0.947573f, 0.68111f, 0.996513f, 0.863556f, 0.864499f, 0.981838f, 0.418183f, 0.874134f, 0.650143f, 0.326361f, 0.295483f, 0.57914f, 0.543618f, 0.632917f, 0.775706f, 0.746207f, 0.849637f, 0.429899f, 0.351495f, 0.268899f, 0.767588f, 0.714059f, 0.499168f, 0.469066f, 0.25488f, 0.93542f, 0.744678f, 0.376386f, 0.821541f, 0.0215523f, 0.726469f, 0.999386f, 0.323576f, 0.116576f, 0.791993f, 0.967267f, 0.33244f, 0.929941f, 0.655886f, 0.850531f, 0.929637f, 0.652231f, 0.147383f, 0.313992f, 0.5893f, 0.327567f, 0.186722f, 0.416446f, 0.23665f, 0.068951f, 0.0902886f, 0.206437f, 0.466131f, 0.994251f, 0.640948f, 0.477065f, 0.625764f, 0.114972f, 0.082417f, 0.780419f, 0.093996f, 0.328218f, 0.934135f, 0.660206f, 0.805122f, 0.547285f, 0.413155f, 0.851648f, 0.958469f, 0.105686f, 0.999529f, 0.764199f, 0.232699f, 0.534876f, 0.900669f, 0.336866f, 0.117499f, 0.737167f, 0.410377f, 0.24998f, 0.416482f, 0.293996f, 0.504759f, 0.156092f, 0.767367f, 0.256123f, 0.372485f, 0.149028f, 0.158947f, 0.911312f, 0.5435f, 0.558564f, 0.644299f, 0.991434f, 0.515469f, 0.911864f, 0.357269f, 0.481236f, 0.132541f, 0.801901f, 0.874397f, 0.375827f, 0.273718f, 0.778889f, 0.266327f, 0.201597f, 0.941098f, 0.402948f, 0.0144779f, 0.79957f, 0.176809f, 0.126298f, 0.441617f, 0.883792f, 0.9105f, 0.778926f, 0.438753f, 0.118097f, 0.724643f, 0.383404f, 0.059517f, 0.66822f, 0.0947962f, 0.314721f, 0.184681f, 0.674995f, 0.0978911f, 0.369492f, 0.0086417f, 0.0186125f, 0.687743f, 0.282032f, 0.1884f, 0.823876f, 0.262698f, 0.618405f, 0.847498f, 0.34163f, 0.745071f, 0.650708f, 0.34235f, 0.62163f, 0.851984f, 0.445671f, 0.215015f, 0.460495f, 0.430149f, 0.307774f, 0.799374f, 0.199636f, 0.103411f, 0.158742f, 0.194763f, 0.366357f, 0.587163f, 0.991611f, 0.536064f, 0.967775f, 0.683945f, 0.0165994f, 0.685153f, 0.169493f, 0.820166f, 0.674759f, 0.0652209f, 0.617074f, 0.0719827f, 0.733189f, 0.577215f, 0.548849f, 0.214184f, 0.329439f, 0.489709f, 0.240344f, 0.773691f, 0.462625f, 0.832751f, 0.49877f, 0.905665f, 0.300145f, 0.227945f, 0.319922f, 0.796124f, 0.336471f, 0.26384f, 0.172915f, 0.301686f, 0.907982f, 0.669673f, 0.618241f, 0.461905f, 0.685511f, 0.0330184f, 0.353584f, 0.756152f, 0.907153f, 0.45808f, 0.762273f, 0.969434f, 0.197383f, 0.530418f, 0.646489f, 0.601396f, 0.929437f, 0.279697f, 0.942927f, 0.72955f, 0.855701f, 0.834375f, 0.699459f, 0.0306069f, 0.459645f, 0.19041f, 0.0968616f, 0.646082f, 0.401555f, 0.0303573f, 0.729982f, 0.715356f, 0.169817f, 0.32259f, 0.368546f, 0.481556f, 0.887325f, 0.815447f, 0.210569f, 0.114777f, 0.244363f, 0.563674f, 0.0993083f, 0.926382f, 0.579515f, 0.604385f, 0.165098f, 0.978543f, 0.986523f, 0.0502906f, 0.0766624f, 0.539851f, 0.403884f, 0.182008f, 0.389088f, 0.273846f, 0.858585f, 0.593202f, 0.929929f, 0.940485f, 0.970789f, 0.168345f, 0.593503f, 0.722867f, 0.559876f, 0.0913571f, 0.364557f, 0.657325f, 0.481733f, 0.175144f, 0.893575f, 0.224465f, 0.149952f, 0.715092f, 0.367577f, 0.661431f, 0.0943229f, 0.887027f, 0.96493f, 0.493631f, 0.0305581f, 0.245535f, 0.816682f, 0.137657f, 0.864905f, 0.0327525f, 0.841194f, 0.0310711f, 0.298508f, 0.151638f, 0.0939599f, 0.760116f, 0.867874f, 0.825902f, 0.28888f, 0.0181206f, 0.107323f, 0.0196653f, 0.676588f, 0.96792f, 0.245701f, 0.417712f, 0.215411f, 0.794073f, 0.753198f, 0.866174f, 0.757581f, 0.160835f, 0.962818f, 0.368402f, 0.757416f, 0.317145f, 0.945184f, 0.523144f, 0.961954f, 0.211074f, 0.995428f, 0.689133f, 0.388254f, 0.163847f, 0.132398f, 0.578267f, 0.688608f, 0.448164f, 0.149111f, 0.670419f, 0.770153f, 0.265796f, 0.119313f, 0.00952636f, 0.333354f, 0.32457f, 0.944522f, 0.472341f, 0.330589f, 0.777376f, 0.139584f, 0.321974f, 0.999896f, 0.900484f, 0.404496f, 0.307012f, 0.620225f, 0.70123f, 0.0738496f, 0.187599f, 0.834358f, 0.0936031f, 0.0677084f, 0.77745f, 0.57673f, 0.514984f, 0.676642f, 0.907798f, 0.281646f, 0.732466f, 0.236927f, 0.718766f, 0.30445f, 0.182738f, 0.136704f, 0.369467f, 0.804445f, 0.539138f, 0.237853f, 0.695964f, 0.00461763f, 0.805089f, 0.762751f, 0.582421f, 0.895735f, 0.657319f, 0.191711f, 0.635133f, 0.909233f, 0.779651f, 0.768555f, 0.243218f, 0.589038f, 0.00521608f, 0.212619f, 0.618466f, 0.345604f, 0.512069f, 0.400544f, 0.721577f, 0.078069f, 0.803117f, 0.681361f, 0.145508f, 0.445484f, 0.13027f, 0.975213f, 0.335138f, 0.676329f, 0.584055f, 0.328533f, 0.777367f, 0.375314f, 0.500871f, 0.274031f, 0.758347f, 0.850875f, 0.0516321f, 0.119776f, 0.659553f, 0.148233f, 0.58129f, 0.281835f, 0.0653736f, 0.609858f, 0.785661f, 0.427834f, 0.509185f, 0.554398f, 0.0800974f, 0.834723f, 0.788448f, 0.829264f, 0.11242f, 0.044501f, 0.717812f, 0.496454f, 0.552878f, 0.91177f, 0.838499f, 0.214569f, 0.136391f, 0.377353f, 0.978933f, 0.0964667f, 0.770986f, 0.0456969f, 0.729294f, 0.622665f, 0.867686f, 0.593344f, 0.131652f, 0.710065f, 0.05886f, 0.449821f, 0.931761f, 0.517155f, 0.242112f, 0.671254f, 0.417985f, 0.666281f, 0.268961f, 0.739002f, 0.516142f, 0.45308f, 0.146306f, 0.748715f, 0.503656f, 0.910697f, 0.335632f, 0.696612f, 0.654792f, 0.862619f, 0.0682346f, 0.770083f, 0.978355f, 0.401244f, 0.00176029f, 0.558156f, 0.916832f, 0.97322f, 0.549838f, 0.19869f, 0.438463f, 0.0156057f, 0.83977f, 0.105383f, 0.299166f, 0.99335f, 0.581013f, 0.0940476f, 0.798757f, 0.118182f, 0.266796f, 0.488131f, 0.645558f, 0.0384786f, 0.304939f, 0.35961f, 0.986439f, 0.843547f, 0.3697f, 0.852451f, 0.794843f, 0.0546904f, 0.790721f, 0.933048f, 0.314777f, 0.0438145f, 0.931903f, 0.61199f, 0.78707f, 0.275311f, 0.894913f, 0.260589f, 0.489388f, 0.99467f, 0.961118f, 0.330167f, 0.875786f, 0.0565952f, 0.838825f, 0.811146f, 0.0279812f, 0.544337f, 0.103276f, 0.0303973f, 0.384458f, 0.948577f, 0.633818f, 0.954165f, 0.852837f, 0.201179f, 0.919404f, 0.615282f, 0.18759f, 0.496785f, 0.896411f, 0.606767f, 0.994157f, 0.0166269f, 0.50311f, 0.495421f, 0.300193f, 0.524407f, 0.123501f, 0.970621f, 0.705828f, 0.424686f, 0.236783f, 0.233107f, 0.0735741f, 0.462477f, 0.318771f, 0.953457f, 0.001118f, 0.637781f, 0.518401f, 0.545005f, 0.213403f, 0.915296f, 0.414932f, 0.320413f, 0.543889f, 0.176325f, 0.546838f, 0.104671f, 0.578876f, 0.962853f, 0.817569f, 0.00301906f, 0.0428612f, 0.164119f, 0.502298f, 0.538741f, 0.401706f, 0.587071f, 0.662706f, 0.359987f, 0.343828f, 0.503272f, 0.672525f, 0.338472f, 0.59923f, 0.489641f, 0.800391f, 0.266119f, 0.773703f, 0.026278f, 0.450742f, 0.0257071f, 0.215092f, 0.20344f, 0.837094f, 0.271702f, 0.754091f, 0.229151f, 0.958711f, 0.0210307f, 0.245963f, 0.238919f, 0.584489f, 0.923226f, 0.493625f, 0.63361f, 0.394205f, 0.171767f, 0.203015f, 0.276054f, 0.577253f, 0.195312f, 0.999466f, 0.0352015f, 0.48984f, 0.434269f, 0.207206f, 0.796542f, 0.0923338f, 0.505757f, 0.9232f, 0.620437f, 0.584372f, 0.785207f, 0.736546f, 0.208744f, 0.477267f, 0.909428f, 0.406968f, 0.119203f, 0.0915666f, 0.950761f, 0.242588f, 0.776786f, 0.0918372f, 0.47149f, 0.838527f, 0.267107f, 0.336596f, 0.276568f, 0.91368f, 0.357471f, 0.714987f, 0.860658f, 0.199195f, 0.738763f, 0.475023f, 0.572437f, 0.0687734f, 0.175211f, 0.564366f, 0.382863f, 0.778606f, 0.0920013f, 0.951513f, 0.763532f, 0.878139f, 0.639052f, 0.518825f, 0.389098f, 0.745893f, 0.896298f, 0.845904f, 0.627195f, 0.440325f, 0.661317f, 0.0685766f, 0.505553f, 0.257586f, 0.573869f, 0.70068f, 0.44151f, 0.342163f, 0.953214f, 0.504308f, 0.128572f, 0.985638f, 0.695045f, 0.624689f, 0.879732f, 0.792932f, 0.540714f, 0.490834f, 0.111954f, 0.793822f, 0.00736275f, 0.400705f, 0.783914f, 0.282839f, 0.163008f, 0.968853f, 0.331046f, 0.0971297f, 0.316015f, 0.306883f, 0.363191f, 0.71868f, 0.16235f, 0.236233f, 0.170476f, 0.954109f, 0.557757f, 0.987404f, 0.0342678f, 0.301085f, 0.130566f, 8.99479e-06f, 0.492714f, 0.449972f, 0.429922f, 0.707314f, 0.453587f, 0.144354f, 0.811004f, 0.412175f, 0.443095f, 0.224612f, 0.565932f, 0.932614f, 0.830064f, 0.057281f, 0.518328f, 0.783682f, 0.548909f, 0.499433f, 0.326037f, 0.347833f, 0.305309f, 0.574449f, 0.616677f, 0.461319f, 0.452558f, 0.382742f, 0.278652f, 0.450522f, 0.0402624f, 0.783456f, 0.929137f, 0.888308f, 0.249146f, 0.457229f, 0.822089f, 0.548378f, 0.805055f, 0.391676f, 0.691428f, 0.644834f, 0.844889f, 0.353146f, 0.0929275f, 0.157428f, 0.515319f, 0.208275f, 0.495904f, 0.723555f, 0.122964f, 0.36962f, 0.41214f, 0.306746f, 0.329619f, 0.196846f, 0.454874f, 0.789508f, 0.28634f, 0.941138f, 0.569559f, 0.721007f, 0.626095f, 0.879066f, 0.78383f, 0.429235f, 0.168256f, 0.127681f, 0.878632f, 0.614135f, 0.680096f, 0.708349f, 0.922148f, 0.123667f, 0.617842f, 0.53446f, 0.786944f, 0.284737f, 0.951959f, 0.0950369f, 0.190759f, 0.139618f, 0.533479f, 0.63933f, 0.268021f, 0.798943f, 0.337936f, 0.405574f, 0.943102f, 0.714451f, 0.83261f, 0.443561f, 0.260152f, 0.942133f, 0.853385f, 0.189669f, 0.573713f, 0.752624f, 0.00792817f, 0.834036f, 0.917539f, 0.46164f, 0.92198f, 0.706737f, 0.180156f, 0.926683f, 0.462895f, 0.977159f, 0.283718f, 0.363913f, 0.402255f, 0.770423f, 0.415978f, 0.828699f, 0.41718f, 0.302832f, 0.288217f, 0.631554f, 0.326558f, 0.566064f, 0.828802f, 0.123279f, 0.327377f, 0.397165f, 0.308697f, 0.702286f, 0.45401f, 0.969257f, 0.136402f, 0.86909f, 0.0581259f, 0.843663f, 0.0837092f, 0.289501f, 0.913223f, 0.927754f, 0.0428233f, 0.728459f, 0.242074f, 0.798512f, 0.342475f, 0.0846666f, 0.158902f, 0.717872f, 0.814997f, 0.833233f, 0.696543f, 0.0359532f, 0.156974f, 0.32208f, 0.410787f, 0.561302f, 0.399088f, 0.305644f, 0.931902f, 0.95712f, 0.701232f, 0.685619f, 0.955853f, 0.538418f, 0.646915f, 0.146731f, 0.65422f, 0.418238f, 0.0750841f, 0.350242f, 0.358565f, 0.358744f, 0.183739f, 0.405738f, 0.835397f, 0.683115f, 0.883714f, 0.557802f, 0.710694f, 0.783548f, 0.493122f, 0.814222f, 0.168881f, 0.749967f, 0.00642282f, 0.861179f, 0.118478f, 0.80518f, 0.87412f, 0.899408f, 0.933523f, 0.481826f, 0.521988f, 0.414407f, 0.651312f, 0.81063f, 0.359634f, 0.592237f, 0.495092f, 0.186289f, 0.140337f, 0.989699f, 0.719063f, 0.295893f, 0.86223f, 0.645697f, 0.119774f, 0.673202f, 0.123001f, 0.937681f, 0.0759322f, 0.80301f, 0.107765f, 0.512171f, 0.0884891f, 0.496683f, 0.526593f, 0.925926f, 0.142882f, 0.535131f, 0.59712f, 0.602905f, 0.272904f, 0.909842f, 0.458215f, 0.474302f, 0.940236f, 0.99925f, 0.856123f, 0.0648635f, 0.33895f, 0.0851604f, 0.861585f, 0.994629f, 0.270295f, 0.253986f, 0.932597f, 0.656535f, 0.544405f, 0.163579f, 0.00565768f, 0.425538f, 0.217728f, 0.94399f, 0.533269f, 0.364052f, 0.980067f, 0.812952f, 0.959092f, 0.93408f, 0.435034f, 0.129125f, 0.744507f, 0.751672f, 0.448497f, 0.778792f, 0.695853f, 0.747038f, 0.0730961f, 0.903926f, 0.736134f, 0.198268f, 0.906906f, 0.88627f, 0.872989f, 0.943695f, 0.435863f, 0.987455f, 0.0591982f, 0.924001f, 0.255637f, 0.323308f, 0.318667f, 0.873032f, 0.867264f, 0.48634f, 0.294825f, 0.804789f, 0.183232f, 0.643134f, 0.617333f, 0.983185f, 0.689889f, 0.762106f, 0.235854f, 0.923138f, 0.0670237f, 0.0938047f, 0.129591f, 0.114159f, 0.210244f, 0.125066f, 0.724633f, 0.791673f, 0.985511f, 0.787778f, 0.14163f, 0.528792f, 0.21738f, 0.612279f, 0.888867f, 0.193273f, 0.665858f, 0.918939f, 0.467632f, 0.955895f, 0.762796f, 0.440253f, 0.331188f, 0.529962f, 0.773693f, 0.400064f, 0.337817f, 0.477382f, 0.83776f, 0.754275f, 0.653156f, 0.330874f, 0.416658f, 0.163485f, 0.564096f, 0.589732f, 0.114851f, 0.558719f, 0.0660067f, 0.687986f, 0.140014f, 0.207164f, 0.467089f, 0.945626f, 0.834166f, 0.10679f, 0.678549f, 0.236083f, 0.19538f, 0.91674f, 0.497997f, 0.145263f, 0.832838f, 0.370289f, 0.445591f, 0.0804101f, 0.994883f, 0.600678f, 0.785424f, 0.556163f, 0.944177f, 0.672062f, 0.913911f, 0.719992f, 0.21344f, 0.424073f, 0.504163f, 0.179541f, 0.694425f, 0.704981f, 0.719038f, 0.664638f, 0.675743f, 0.00904641f, 0.12478f, 0.364036f, 0.802474f, 0.416197f, 0.0907069f, 0.350004f, 0.737557f, 0.854752f, 0.979428f, 0.6801f, 0.00163546f, 0.940433f, 0.944515f, 0.0478948f, 0.828965f, 0.0247498f, 0.140715f, 0.878443f, 0.373219f, 0.15744f, 0.0684821f, 0.238656f, 0.62082f, 0.396778f, 0.75656f, 0.183271f, 0.199846f, 0.859093f, 0.729f, 0.114022f, 0.713058f, 0.251534f, 0.399791f, 0.343449f, 0.481608f, 0.351112f, 0.821257f, 0.762525f, 0.826417f, 0.854871f, 0.898275f, 0.261042f, 0.446316f, 0.134348f, 0.589654f, 0.626137f, 0.627859f, 0.644243f, 0.900311f, 0.312348f, 0.686388f, 0.0638275f, 0.942398f, 0.997995f, 0.519926f, 0.108917f, 0.474283f, 0.459815f, 0.0173454f, 0.403841f, 0.695965f, 0.16122f, 0.687384f, 0.263314f, 0.615264f, 0.95124f, 0.0679664f, 0.440981f, 0.374297f, 0.8821f, 0.764221f, 0.201789f, 0.749617f, 0.333827f, 0.367097f, 0.072781f, 0.299826f, 0.828564f, 0.0228201f, 0.416227f, 0.265307f, 0.076264f, 0.998028f, 0.404334f, 0.2468f, 0.721791f, 0.0487748f, 0.840049f, 0.122938f, 0.473641f, 0.18489f, 0.8881f, 0.890702f, 0.402479f, 0.359522f, 0.166983f, 0.12043f, 0.104968f, 0.7571f, 0.316185f, 0.427233f, 0.456899f, 0.789597f, 0.306429f, 0.686463f, 0.914225f, 0.148214f, 0.386535f, 0.661416f, 0.0010132f, 0.592672f, 0.646657f, 0.515067f, 0.920167f, 0.160818f, 0.249605f, 0.352428f, 0.0756006f, 0.753631f, 0.803908f, 0.562435f, 0.944115f, 0.516684f, 0.667722f, 0.722846f, 0.0901999f, 0.102956f, 0.310629f, 0.0718126f, 0.939718f, 0.0015867f, 0.287318f, 0.640484f, 0.570949f, 0.091604f, 0.898546f, 0.659228f, 0.0322266f, 0.803713f, 0.0606192f, 0.0440694f, 0.66509f, 0.0678347f, 0.915303f, 0.916844f, 0.916624f, 0.486296f, 0.793855f, 0.650598f, 0.514116f, 0.139537f, 0.414233f, 0.374154f, 0.102838f, 0.15141f, 0.840178f, 0.196955f, 0.459359f, 0.0665979f, 0.371865f, 0.847088f, 0.865833f, 0.938104f, 0.299027f, 0.841662f, 0.327934f, 0.845796f, 0.148307f, 0.207255f, 0.807801f, 0.447583f, 0.491865f, 0.667041f, 0.802269f, 0.797326f, 0.198915f, 0.649828f, 0.483347f, 0.267933f, 0.836389f, 0.356822f, 0.847785f, 0.929989f, 0.514498f, 0.181326f, 0.165689f, 0.948193f, 0.728615f, 0.594231f, 0.812535f, 0.174641f, 0.950378f, 0.482942f, 0.967358f, 0.0275906f, 0.0311752f, 0.614367f, 0.970778f, 0.164847f, 0.209201f, 0.66234f, 0.102931f, 0.799752f, 0.543935f, 0.630354f, 0.873262f, 0.544798f, 0.660557f, 0.891737f, 0.567577f, 0.939348f, 0.78186f, 0.0686499f, 0.225852f, 0.893362f, 0.540483f, 0.504786f, 0.628149f, 0.0838464f, 0.377603f, 0.743475f, 0.96083f, 0.45757f, 0.221401f, 0.592731f, 0.618268f, 0.771072f, 0.0765574f, 0.0476341f, 0.635026f, 0.383667f, 0.916712f, 0.171473f, 0.378175f, 0.239185f, 0.324705f, 0.257922f, 0.870206f, 0.360061f, 0.531246f, 0.408343f, 0.487231f, 0.978677f, 0.207524f, 0.00673317f, 0.899411f, 0.737445f, 0.844541f, 0.433296f, 0.610042f, 0.538669f, 0.310229f, 0.586103f, 0.0650336f, 0.120229f, 0.32721f, 0.329803f, 0.941069f, 0.384618f, 0.755424f, 0.147826f, 0.643201f, 0.0737775f, 0.665542f, 0.461143f, 0.0717486f, 0.187379f, 0.799762f, 0.743815f, 0.914302f, 0.972338f, 0.0624001f, 0.143945f, 0.935498f, 0.167011f, 0.627861f, 0.0730065f, 0.610473f, 0.917775f, 0.21292f, 0.80276f, 0.975205f, 0.309135f, 0.689936f, 0.795602f, 0.703413f, 0.905654f, 0.443426f, 0.785175f, 0.884934f, 0.451337f, 0.185263f, 0.906834f, 0.238523f, 0.581382f, 0.844035f, 0.630555f, 0.450307f, 0.107293f, 0.798729f, 0.712429f, 0.606065f, 0.0508112f, 0.751825f, 0.293466f, 0.696673f, 0.687424f, 0.949014f, 0.635518f, 0.260788f, 0.664012f, 0.503692f, 0.254894f, 0.47687f, 0.453398f, 0.879328f, 0.258936f, 0.0584603f, 0.328501f, 0.836817f, 0.158116f, 0.0338683f, 0.948123f, 0.565302f, 0.866665f, 0.320561f, 0.385397f, 0.147682f, 0.061885f, 0.475893f, 0.687086f, 0.878538f, 0.149937f, 0.439654f, 0.45665f, 0.69964f, 0.27501f, 0.55027f, 0.168487f, 0.75805f, 0.935977f, 0.580474f, 0.878249f, 0.566541f, 0.58974f, 0.252357f, 0.74584f, 0.785329f, 0.471127f, 0.0698617f, 0.987713f, 0.272423f, 0.329089f, 0.131877f, 0.270149f, 0.0129784f, 0.684912f, 0.833625f, 0.219229f, 0.0552668f, 0.99617f, 0.833919f, 0.755143f, 0.632745f, 0.195254f, 0.238367f, 0.665154f, 0.150129f, 0.13481f, 0.542367f, 0.770813f, 0.974124f, 0.927066f, 0.921943f, 0.754261f, 0.241053f, 0.03664f, 0.538456f, 0.332408f, 0.509011f, 0.868528f, 0.373223f, 0.185156f, 0.173616f, 0.0959532f, 0.717941f, 0.498915f, 0.985696f, 0.287694f, 0.597918f, 0.731743f, 0.675398f, 0.698306f, 0.439155f, 0.518567f, 0.895002f, 0.512035f, 0.569751f, 0.409759f, 0.253181f, 0.0834103f, 0.111383f, 0.538176f, 0.917993f, 0.690836f, 0.89454f, 0.647424f, 0.696855f, 0.924478f, 0.0391853f, 0.279857f, 0.737514f, 0.441775f, 0.0284395f, 0.656948f, 0.0281428f, 0.119077f, 0.164105f, 0.605908f, 0.936884f, 0.318437f, 0.111724f, 0.322787f, 0.982408f, 0.97011f, 0.72668f, 0.099519f, 0.144687f, 0.617189f, 0.925421f, 0.674846f, 0.222799f, 0.47666f, 0.928695f, 0.935499f, 0.828436f, 0.46032f, 0.24613f, 0.417807f, 0.746523f, 0.638837f, 0.342988f, 0.110714f, 0.550722f, 0.759884f, 0.60739f, 0.692204f, 0.0526183f, 0.177483f, 0.437292f, 0.493735f, 0.631113f, 0.525569f, 0.753399f, 0.157499f, 0.308851f, 0.644157f, 0.072486f, 0.55973f, 0.0907334f, 0.857988f, 0.656363f, 0.841934f, 0.953069f, 0.632553f, 0.747385f, 0.417105f, 0.153193f, 0.248604f, 0.868737f, 0.929238f, 0.163154f, 0.0623951f, 0.506774f, 0.985715f, 0.597852f, 0.61086f, 0.51979f, 0.429638f, 0.723483f, 0.571642f, 0.709711f, 0.0975933f, 0.39613f, 0.438011f, 0.449673f, 0.44669f, 0.91548f, 0.833362f, 0.808329f, 0.530815f, 0.0326424f, 0.568272f, 0.0961351f, 0.461136f, 0.226645f, 0.657493f, 0.951434f, 0.395262f, 0.0437565f, 0.505344f, 0.86249f, 0.49411f, 0.0507871f, 0.14814f, 0.340194f, 0.265498f, 0.0754856f, 0.19997f, 0.837598f, 0.0296773f, 0.936372f, 0.779978f, 0.495378f, 0.367692f, 0.479471f, 0.805453f, 0.485373f, 0.0953336f, 0.14572f, 0.579649f, 0.239343f, 0.243335f, 0.403262f, 0.633629f, 0.0682983f, 0.712714f, 0.341858f, 0.501027f, 0.772609f, 0.35328f, 0.625386f, 0.385904f, 0.614652f, 0.811551f, 0.176481f, 0.316492f, 0.816493f, 0.819353f, 0.948973f, 0.298714f, 0.721146f, 0.780835f, 0.878107f, 0.572032f, 0.830147f, 0.519363f, 0.958325f, 0.527391f, 0.716759f, 0.501259f, 0.493692f, 0.872762f, 0.628699f, 0.804758f, 0.33735f, 0.862575f, 0.614228f, 0.868128f, 0.179866f, 0.153829f, 0.735529f, 0.310759f, 0.75861f, 0.955902f, 0.996456f, 0.0155119f, 0.868818f, 0.200885f, 0.674882f, 0.239315f, 0.888505f, 0.811764f, 0.467074f, 0.0994684f, 0.107193f, 0.44433f, 0.579151f, 0.176343f, 0.983351f, 0.768789f, 0.831046f, 0.482872f, 0.90771f, 0.934568f, 0.38876f, 0.504796f, 0.547039f, 0.351825f, 0.215924f, 0.80159f, 0.231762f, 0.113694f, 0.98638f, 0.485296f, 0.593716f, 0.0785382f, 0.744536f, 0.735809f, 0.597734f, 0.701177f, 0.718768f, 0.72438f, 0.794393f, 0.332094f, 0.686298f, 0.354777f, 0.498037f, 0.965321f, 0.793343f, 0.601226f, 0.59768f, 0.546122f, 0.854092f, 0.542572f, 0.416698f, 0.882084f, 0.449068f, 0.0742358f, 0.930291f, 0.935775f, 0.428394f, 0.805404f, 0.909318f, 0.708399f, 0.679808f, 0.555537f, 0.909858f, 0.110007f, 0.697008f, 0.226286f, 0.30794f, 0.053389f, 0.0916701f, 0.168651f, 0.675089f, 0.137463f, 0.361724f, 0.664645f, 0.695049f, 0.332835f, 0.23099f, 0.864152f, 0.419861f, 0.083713f, 0.990716f, 0.00623633f, 0.864072f, 0.22218f, 0.813389f, 0.103877f, 0.6216f, 0.350807f, 0.681206f, 0.350022f, 0.0559396f, 0.609546f, 0.103462f, 0.451129f, 0.173092f, 0.928536f, 0.761367f, 0.625893f, 0.999792f, 0.794129f, 0.610381f, 0.611992f, 0.759012f, 0.861958f, 0.0441375f, 0.371323f, 0.402609f, 0.889682f, 0.210105f, 0.430555f, 0.813706f, 0.827418f, 0.934669f, 0.346201f, 0.303894f, 0.425123f, 0.727389f, 0.813788f, 0.323004f, 0.562072f, 0.826403f, 0.990877f, 0.73152f, 0.0854499f, 0.302683f, 0.326324f, 0.885827f, 0.407247f, 0.965275f, 0.990593f, 0.607219f, 0.784183f, 0.877393f, 0.17006f, 0.806105f, 0.436142f, 0.43005f, 0.210671f, 0.583769f, 0.271482f, 0.679246f, 0.739748f, 0.223993f, 0.73148f, 0.460188f, 0.341485f, 0.179936f, 0.114199f, 0.562467f, 0.210406f, 0.274018f, 0.0734009f, 0.259328f, 0.51934f, 0.175807f, 0.474026f, 0.518619f, 0.373289f, 0.295022f, 0.153322f, 0.272974f, 0.33554f, 0.115575f, 0.369072f, 0.216294f, 0.561812f, 0.423946f, 0.339774f, 0.812142f, 0.0389147f, 0.728159f, 0.406847f, 0.0073503f, 0.93889f, 0.472488f, 0.333231f, 0.516892f, 0.00982252f, 0.0442528f, 0.398625f, 0.537754f, 0.939892f, 0.952943f, 0.718147f, 0.70743f, 0.478117f, 0.659833f, 0.547758f, 0.0547595f, 0.0507752f, 0.11535f, 0.384005f, 0.354978f, 0.759896f, 0.664564f, 0.997026f, 0.188457f, 0.713732f, 0.940001f, 0.983527f, 0.30942f, 0.482499f, 0.0291149f, 0.0502972f, 0.869711f, 0.605827f, 0.880391f, 0.559943f, 0.799703f, 0.163051f, 0.810344f, 0.689329f, 0.374283f, 0.987522f, 0.427716f, 0.912901f, 0.888009f, 0.15132f, 0.0403356f, 0.483226f, 0.151659f, 0.534256f, 0.199749f, 0.334739f, 0.294661f, 0.0827428f, 0.916822f, 0.509013f, 0.639294f, 0.619049f, 0.423424f, 0.00960821f, 0.152704f, 0.584539f, 0.97645f, 0.830753f, 0.563711f, 0.756433f, 0.206827f, 0.452723f, 0.46099f, 0.615499f, 0.891377f, 0.14176f, 0.441772f, 0.7399f, 0.963869f, 0.351896f, 0.797338f, 0.717526f, 0.558598f, 0.200473f, 0.0566216f, 0.766157f, 0.547293f, 0.768586f, 0.831479f, 0.655012f, 0.326318f, 0.758386f, 0.993428f, 0.490431f, 0.794475f, 0.818778f, 0.284037f, 0.931828f, 0.148299f, 0.795698f, 0.770279f, 0.61012f, 0.712323f, 0.627313f, 0.692585f, 0.713857f, 0.575104f, 0.0705564f, 0.384126f, 0.813143f, 0.870509f, 0.260943f, 0.0687908f, 0.461427f, 0.280083f, 0.110856f, 0.980626f, 0.909306f, 0.423537f, 0.788898f, 0.827466f, 0.792313f, 0.198289f, 0.54203f, 0.32424f, 0.348408f, 0.856534f, 0.506747f, 0.97225f, 0.0550984f, 0.0555453f, 0.141956f, 0.633462f, 0.715796f, 0.72804f, 0.111788f, 0.713685f, 0.655457f, 0.872259f, 0.281724f, 0.153277f, 0.656518f, 0.5761f, 0.811273f, 0.741021f, 0.346319f, 0.168153f, 0.97488f, 0.205865f, 0.454107f, 0.178165f, 0.873168f, 0.798471f, 0.409507f, 0.327403f, 0.381364f, 0.110272f, 0.933571f, 0.848571f, 0.362224f, 0.591039f, 0.731441f, 0.71913f, 0.469547f, 0.360276f, 0.356864f, 0.0109086f, 0.109288f, 0.51789f, 0.232499f, 0.302433f, 0.533526f, 0.633215f, 0.389799f, 0.534496f, 0.673074f, 0.80854f, 0.192882f, 0.319299f, 0.107454f, 0.251623f, 0.00296579f, 0.665672f, 0.847694f, 0.43587f, 0.867145f, 0.701412f, 0.0231152f, 0.461606f, 0.199226f, 0.533613f, 0.765012f, 0.820115f, 0.706689f, 0.734028f, 0.0886849f, 0.735587f, 0.600506f, 0.823775f, 0.0373341f, 0.812563f, 0.2348f, 0.825182f, 0.997076f, 0.566187f, 0.566244f, 0.690071f, 0.290938f, 0.832857f, 0.45413f, 0.924864f, 0.747998f, 0.961952f, 0.967087f, 0.00745362f, 0.886759f, 0.229773f, 0.0123162f, 0.13285f, 0.586293f, 0.285238f, 0.330433f, 0.581045f, 0.0791134f, 0.335392f, 0.196941f, 0.2336f, 0.895863f, 0.0548771f, 0.187895f, 0.0521924f, 0.394677f, 0.96342f, 0.0864298f, 0.347099f, 0.551305f, 0.0642886f, 0.363123f, 0.311614f, 0.0681629f, 0.90542f, 0.61787f, 0.559809f, 0.640655f, 0.146883f, 0.726802f, 0.653222f, 0.825089f, 0.367256f, 0.658711f, 0.530255f, 0.142158f, 0.335159f, 0.576883f, 0.815347f, 0.538353f, 0.42229f, 0.578867f, 0.121993f, 0.186007f, 0.915189f, 0.922611f, 0.112167f, 0.876108f, 0.82817f, 0.871104f, 0.192003f, 0.124431f, 0.802664f, 0.512239f, 0.163601f, 0.460128f, 0.79289f, 0.509116f, 0.287871f, 0.664928f, 0.444367f, 0.513435f, 0.543775f, 0.836336f, 0.057896f, 0.801931f, 0.213453f, 0.774068f, 0.821788f, 0.169053f, 0.0413279f, 0.765749f, 0.321284f, 0.726605f, 0.761212f, 0.304786f, 0.296818f, 0.720861f, 0.200606f, 0.326656f, 0.17193f, 0.691957f, 0.226087f, 0.444533f, 0.906708f, 0.671676f, 0.429218f, 0.363985f, 0.184063f, 0.738182f, 0.461176f, 0.137039f, 0.357278f, 0.521567f, 0.908227f, 0.0501428f, 0.0269577f, 0.0479135f, 0.65737f, 0.738163f, 0.742666f, 0.59487f, 0.222037f, 0.525651f, 0.0985925f, 0.241994f, 0.331669f, 0.206876f, 0.654418f, 0.550447f, 0.28119f, 0.00454971f, 0.245784f, 0.259463f, 0.129567f, 0.280369f, 0.979685f, 0.294002f, 0.124807f, 0.850743f, 0.91553f, 0.109716f, 0.387582f, 0.834544f, 0.66271f, 0.0471684f, 0.64241f, 0.835814f, 0.86512f, 0.325619f, 0.31638f, 0.279696f, 0.881424f, 0.487695f, 0.776307f, 0.84578f, 0.537472f, 0.877102f, 0.140269f, 0.747971f, 0.897241f, 0.379206f, 0.220176f, 0.349415f, 0.0128732f, 0.994032f, 0.909643f, 0.155572f, 0.77627f, 0.11818f, 0.263707f, 0.900637f, 0.335768f, 0.322971f, 0.360847f, 0.614925f, 0.0892853f, 0.881562f, 0.17091f, 0.941587f, 0.930328f, 0.304348f, 0.970301f, 0.84352f, 0.763354f, 0.562173f, 0.351434f, 0.581137f, 0.685157f, 0.781364f, 0.035766f, 0.761083f, 0.152155f, 0.71605f, 0.976006f, 0.969557f, 0.293685f, 0.0549842f, 0.133562f, 0.82613f, 0.967592f, 0.846296f, 0.211786f, 0.467714f, 0.670399f, 0.893941f, 0.260086f, 0.00617443f, 0.736166f, 0.336154f, 0.924484f, 0.0194528f, 0.472163f, 0.947271f, 0.843659f, 0.637149f, 0.974735f, 0.296876f, 0.669006f, 0.569546f, 0.20116f, 0.654917f, 0.546547f, 0.820704f, 0.605349f, 0.673724f, 0.556966f, 0.070143f, 0.0166695f, 0.467624f, 0.660667f, 0.494119f, 0.857361f, 0.884427f, 0.805896f, 0.269175f, 0.318624f, 0.0725401f, 0.680126f, 0.076112f, 0.815093f, 0.637355f, 0.378459f, 0.555372f, 0.318617f, 0.664214f, 0.498975f, 0.839348f, 0.928194f, 0.885326f, 0.382787f, 0.55833f, 0.632732f, 0.699359f, 0.939815f, 0.0526236f, 0.084209f, 0.243343f, 0.679591f, 0.121869f, 0.37269f, 0.0869808f, 0.56071f, 0.161165f, 0.350729f, 0.286705f, 0.658271f, 0.0525391f, 0.460454f, 0.952039f, 0.763749f, 0.252623f, 0.514233f, 0.630456f, 0.11327f, 0.142385f, 0.09471f, 0.910605f, 0.159448f, 0.025932f, 0.193778f, 0.734099f, 0.347049f, 0.715323f, 0.331636f, 0.492643f, 0.172658f, 0.544111f, 0.678647f, 0.82822f, 0.890233f, 0.538535f, 0.193232f, 0.628986f, 0.637995f, 0.181863f, 0.503949f, 0.46497f, 0.272194f, 0.581389f, 0.531691f, 0.804678f, 0.678814f, 0.799185f, 0.779134f, 0.299096f, 0.280952f, 0.524904f, 0.422067f, 0.86106f, 0.739144f, 0.437234f, 0.410388f, 0.270291f, 0.754206f, 0.559645f, 0.25864f, 0.0243176f, 0.770453f, 0.56095f, 0.898787f, 0.245929f, 0.681202f, 0.95394f, 0.569529f, 0.452469f, 0.975237f, 0.896771f, 0.223286f, 0.989632f, 0.292195f, 0.18598f, 0.0775047f, 0.0462231f, 0.121657f, 0.765414f, 0.940138f, 0.320731f, 0.956966f, 0.617806f, 0.848577f, 0.770346f, 0.54212f, 0.422321f, 0.488888f, 0.157264f, 0.0614975f, 0.235589f, 0.31519f, 0.615688f, 0.0252402f, 0.620932f, 0.429205f, 0.78533f, 0.296248f, 0.861138f, 0.41389f, 0.87524f, 0.411513f, 0.888992f, 0.191521f, 0.177546f, 0.770683f, 0.412321f, 0.99239f, 0.168588f, 0.152511f, 0.68212f, 0.931234f, 0.395882f, 0.834497f, 0.313145f, 0.826681f, 0.71435f, 0.20711f, 0.170136f, 0.527598f, 0.591789f, 0.655174f, 0.908624f, 0.637615f, 0.847109f, 0.0362419f, 0.457725f, 0.127153f, 0.710776f, 0.095789f, 0.0364299f, 0.971963f, 0.503109f, 0.907669f, 0.00268601f, 0.0376114f, 0.330092f, 0.00216109f, 0.391222f, 0.788424f, 0.506559f, 0.387133f, 0.152886f, 0.933285f, 0.227926f, 0.882869f, 0.733733f, 0.822269f, 0.0970804f, 0.255417f, 0.15843f, 0.301121f, 0.801318f, 0.703989f, 0.438714f, 0.813886f, 0.647927f, 0.818138f, 0.840587f, 0.979557f, 0.64096f, 0.148562f, 0.241392f, 0.805949f, 0.188091f, 0.983173f, 0.629896f, 0.0623323f, 0.172154f, 0.276237f, 0.484383f, 0.976235f, 0.650926f, 0.748822f, 0.523162f, 0.132491f, 0.983323f, 0.826655f, 0.622063f, 0.927223f, 0.986423f, 0.422319f, 0.857705f, 0.614299f, 0.195418f, 0.75345f, 0.753493f, 0.82528f, 0.695535f, 0.871959f, 0.198182f, 0.252445f, 0.0848789f, 0.0246484f, 0.155478f, 0.766652f, 0.521933f, 0.050651f, 0.000431992f, 0.366988f, 0.361293f, 0.215211f, 0.0113326f, 0.415247f, 0.16039f, 0.854401f, 0.429871f, 0.88418f, 0.339746f, 0.560085f, 0.0304348f, 0.0195183f, 0.0423525f, 0.39167f, 0.416544f, 0.57624f, 0.960926f, 0.722137f, 0.548531f, 0.972245f, 0.0661971f, 0.661878f, 0.328153f, 0.744898f, 0.565517f, 0.606903f, 0.846644f, 0.471272f, 0.331511f, 0.503534f, 0.248501f, 0.447479f, 0.500011f, 0.568788f, 0.739181f, 0.962357f, 0.160933f, 0.647045f, 0.419411f, 0.902111f, 0.0363436f, 0.876261f, 0.992914f, 0.201877f, 0.491814f, 0.935375f, 0.495645f, 0.480016f, 0.250264f, 0.746046f, 0.387599f, 0.332632f, 0.699724f, 0.160943f, 0.18238f, 0.157698f, 0.0555704f, 0.0943856f, 0.815176f, 0.95347f, 0.438966f, 0.719201f, 0.146659f, 0.499255f, 0.647801f, 0.592177f, 0.223986f, 0.121259f, 0.212785f, 0.682767f, 0.662474f, 0.744542f, 0.145665f, 0.0513408f, 0.263725f, 0.633071f, 0.719178f, 0.751036f, 0.845591f, 0.445084f, 0.0600563f, 0.484062f, 0.0302693f, 0.0467352f, 0.290252f, 0.568309f, 0.130947f, 0.00218117f, 0.358267f, 0.976421f, 0.69907f, 0.802502f, 0.298183f, 0.0968203f, 0.179036f, 0.928288f, 0.104217f, 0.414126f, 0.850352f, 0.421163f, 0.54415f, 0.166134f, 0.902478f, 0.17836f, 0.405866f, 0.50712f, 0.335796f, 0.715559f, 0.135021f, 0.105094f, 0.787175f, 0.367156f, 0.395401f, 0.164392f, 0.39428f, 0.604062f, 0.947249f, 0.884381f, 0.654034f, 0.423842f, 0.013755f, 0.455803f, 0.836788f, 0.998852f, 0.891757f, 0.806675f, 0.183851f, 0.501819f, 0.0742693f, 0.462696f, 0.912391f, 0.490791f, 0.3255f, 0.920401f, 0.209304f, 0.0509929f, 0.00198485f, 0.713042f, 0.705819f, 0.221963f, 0.625561f, 0.990062f, 0.87923f, 0.0403516f, 0.902873f, 0.587933f, 0.74762f, 0.219974f, 0.522457f, 0.651021f, 0.185259f, 0.401079f, 0.527382f, 0.41003f, 0.255617f, 0.204435f, 0.184973f, 0.23386f, 0.764599f, 0.814429f, 0.232333f, 0.949143f, 0.285716f, 0.571215f, 0.194195f, 0.127978f, 0.220286f, 0.699305f, 0.301491f, 0.780858f, 0.456808f, 0.381645f, 0.580219f, 0.913607f, 0.18016f, 0.551105f, 0.599133f, 0.8982f, 0.288888f, 0.129585f, 0.155321f, 0.906122f, 0.132426f, 0.627033f, 0.0943135f, 0.90147f, 0.744035f, 0.956401f, 0.286716f, 0.92634f, 0.869586f, 0.197875f, 0.245068f, 0.797152f, 0.243978f, 0.0029176f, 0.536576f, 0.448313f, 0.578926f, 0.576594f, 0.0279766f, 0.140589f, 0.531467f, 0.731435f, 0.722225f, 0.793909f, 0.438038f, 0.0416411f, 0.356844f, 0.802197f, 0.879949f, 0.78601f, 0.54284f, 0.284302f, 0.082457f, 0.297974f, 0.432173f, 0.516112f, 0.362222f, 0.805553f, 0.910032f, 0.14728f, 0.317529f, 0.40087f, 0.259343f, 0.567768f, 0.541162f, 0.135919f, 0.924043f, 0.389049f, 0.126096f, 0.0763522f, 0.614717f, 0.236133f, 0.143414f, 0.641401f, 0.341851f, 0.822335f, 0.360423f, 0.635841f, 0.692367f, 0.865551f, 0.628575f, 0.123744f, 0.688649f, 0.543258f, 0.527071f, 0.396863f, 0.283506f, 0.649493f, 0.174779f, 0.462425f, 0.999697f, 0.0520634f, 0.155628f, 0.934503f, 0.347624f, 0.387869f, 0.850368f, 0.704923f, 0.803748f, 0.93635f, 0.284214f, 0.292087f, 0.490883f, 0.63007f, 0.479258f, 0.63344f, 0.913521f, 0.820823f, 0.519035f, 0.155867f, 0.0218023f, 0.435236f, 0.440155f, 0.312685f, 0.923886f, 0.729272f, 0.779987f, 0.41635f, 0.995626f, 0.655923f, 0.113123f, 0.107358f, 0.309989f, 0.890005f, 0.0393405f, 0.566035f, 0.718976f, 0.0419229f, 0.806378f, 0.184939f, 0.718635f, 0.426383f, 0.199313f, 0.597232f, 0.207885f, 0.0979516f, 0.18374f, 0.650931f, 0.508527f, 0.868066f, 0.374399f, 0.763201f, 0.389844f, 0.851939f, 0.102532f, 0.569876f, 0.641274f, 0.512953f, 0.5503f, 0.38177f, 0.952295f, 0.845207f, 0.627583f, 0.154942f, 0.918327f, 0.383177f, 0.0323818f, 0.118195f, 0.597676f, 0.74541f, 0.756755f, 0.29324f, 0.236624f, 0.324037f, 0.313808f, 0.785109f, 0.436458f, 0.166312f, 0.269294f, 0.657411f, 0.342839f, 0.791003f, 0.413033f, 0.095342f, 0.562967f, 0.929033f, 0.372442f, 0.318249f, 0.457151f, 0.0845246f, 0.541658f, 0.360231f, 0.511668f, 0.412251f, 0.912032f, 0.505069f, 0.262456f, 0.737895f, 0.274547f, 0.0442639f, 0.926439f, 0.948311f, 0.691462f, 0.442879f, 0.8754f, 0.245462f, 0.964447f, 0.153074f, 0.873637f, 0.885767f, 0.438426f, 0.724104f, 0.189726f, 0.894894f, 0.685126f, 0.66051f, 0.421584f, 0.60197f, 0.663103f, 0.256222f, 0.0951405f, 0.253675f, 0.742905f, 0.732114f, 0.972861f, 0.646337f, 0.206869f, 0.933182f, 0.460643f, 0.617571f, 0.155458f, 0.685424f, 0.921464f, 0.112495f, 0.0326442f, 0.777823f, 0.114861f, 0.930235f, 0.518505f, 0.828133f, 0.472568f, 0.187044f, 0.437994f, 0.0758454f, 0.970258f, 0.627685f, 0.702015f, 0.22676f, 0.311245f, 0.904505f, 0.980784f, 0.152715f, 0.896043f, 0.796668f, 0.758406f, 0.778774f, 0.697944f, 0.00945681f, 0.396067f, 0.238081f, 0.571738f, 0.488675f, 0.825316f, 0.61304f, 0.791359f, 0.102336f, 0.233998f, 0.800525f, 0.71137f, 0.336429f, 0.163301f, 0.557184f, 0.586251f, 0.672416f, 0.244185f, 0.399021f, 0.637515f, 0.958232f, 0.483219f, 0.337786f, 0.136581f, 0.473416f, 0.215908f, 0.18168f, 0.693056f, 0.23042f, 0.883538f, 0.374635f, 0.211695f, 0.595548f, 0.820593f, 0.344573f, 0.282011f, 0.454332f, 0.327038f, 0.000917402f, 0.0549154f, 0.365315f, 0.439875f, 0.0844648f, 0.254007f, 0.794073f, 0.308154f, 0.437934f, 0.276972f, 0.919355f, 0.0261948f, 0.769438f, 0.2641f, 0.198885f, 0.966101f, 0.559764f, 0.123938f, 0.199953f, 0.0299818f, 0.653197f, 0.614793f, 0.475555f, 0.324656f, 0.281644f, 0.796215f, 0.648613f, 0.532154f, 0.334535f, 0.157352f, 0.888127f, 0.184127f, 0.766378f, 0.966347f, 0.972827f, 0.161384f, 0.789465f, 0.161954f, 0.643703f, 0.959713f, 0.186375f, 0.356035f, 0.98124f, 0.890085f, 0.951176f, 0.738523f, 0.567806f, 0.788211f, 0.697128f, 0.158079f, 0.615107f, 0.175742f, 0.00087403f, 0.682844f, 0.770078f, 0.900257f, 0.603647f, 0.256177f, 0.292316f, 0.0521886f, 0.733072f, 0.732903f, 0.15466f, 0.859994f, 0.749214f, 0.81277f, 0.690821f, 0.0871517f, 0.536864f, 0.61165f, 0.911363f, 0.291076f, 0.990806f, 0.465582f, 0.42672f, 0.650891f, 0.346158f, 0.365325f, 0.65537f, 0.155177f, 0.342061f, 0.766712f, 0.324513f, 0.677385f, 0.454501f, 0.619278f, 0.585384f, 0.277829f, 0.780265f, 0.205013f, 0.115243f, 0.475227f, 0.798551f, 0.347859f, 0.513611f, 0.91549f, 0.346032f, 0.476028f, 0.940483f, 0.896188f, 0.472846f, 0.834689f, 0.933848f, 0.0773943f, 0.730155f, 0.647934f, 0.484447f, 0.0799081f, 0.602382f, 0.846805f, 0.667573f, 0.839229f, 0.826398f, 0.605332f, 0.618392f, 0.0509072f, 0.0207609f, 0.224265f, 0.909765f, 0.198481f, 0.868754f, 0.374745f, 0.878138f, 0.813178f, 0.141953f, 0.67433f, 0.707803f, 0.241497f, 0.55633f, 0.0970334f, 0.704567f, 0.322991f, 0.759508f, 0.789822f, 0.253608f, 0.450525f, 0.678693f, 0.673853f, 0.4521f, 0.121972f, 0.72688f, 0.545481f, 0.818882f, 0.514336f, 0.26292f, 0.0151278f, 0.00732674f, 0.939697f, 0.263827f, 0.171886f, 0.585323f, 0.899954f, 0.0765824f, 0.633741f, 0.111016f, 0.404388f, 0.0727737f, 0.470588f, 0.268918f, 0.499059f, 0.748549f, 0.41052f, 0.0837198f, 0.379509f, 0.689658f, 0.943127f, 0.469812f, 0.66954f, 0.631608f, 0.189718f, 0.824274f, 0.542368f, 0.364657f, 0.398373f, 0.182024f, 0.563191f, 0.000463342f, 0.053823f, 0.482991f, 0.678146f, 0.855849f, 0.253442f, 0.230127f, 0.869565f, 0.832267f, 0.143135f, 0.865522f, 0.122105f, 0.697407f, 0.393396f, 0.594313f, 0.723475f, 0.507965f, 0.163211f, 0.353912f, 0.170464f, 0.69387f, 0.677314f, 0.0352086f, 0.76777f, 0.270768f, 0.72994f, 0.780155f, 0.162973f, 0.437177f, 0.30326f, 0.841017f, 0.969776f, 0.84691f, 0.998957f, 0.0803233f, 0.34654f, 0.626189f, 0.256172f, 0.169087f, 0.011458f, 0.141743f, 0.985929f, 0.305722f, 0.42469f, 0.770609f, 0.895321f, 0.345501f, 0.0372501f, 0.174137f, 0.0892318f, 0.149059f, 0.217592f, 0.980435f, 0.372879f, 0.801079f, 0.611124f, 0.55515f, 0.71853f, 0.777703f, 0.282011f, 0.677403f, 0.284747f, 0.893636f, 0.526491f, 0.578273f, 0.605364f, 0.536548f, 0.876358f, 0.977666f, 0.82618f, 0.327431f, 0.43535f, 0.976921f, 0.365204f, 0.360949f, 0.661694f, 0.3788f, 0.303999f, 0.833506f, 0.769931f, 0.984484f, 0.830619f, 0.596813f, 0.256631f, 0.342354f, 0.211741f, 0.480985f, 0.156707f, 0.194089f, 0.294124f, 0.0229276f, 0.152847f, 0.20838f, 0.735298f, 0.29585f, 0.580515f, 0.179788f, 0.961631f, 0.664593f, 0.228788f, 0.988589f, 0.740765f, 0.692283f, 0.633887f, 0.591812f, 0.631869f, 0.482088f, 0.182103f, 0.194961f, 0.932069f, 0.815949f, 0.97663f, 0.00321936f, 0.416946f, 0.751696f, 0.276315f, 0.42461f, 0.162478f, 0.122763f, 0.976472f, 0.197001f, 0.249816f, 0.0988475f, 0.0492697f, 0.170823f, 0.308457f, 0.566725f, 0.969683f, 0.82008f, 0.443133f, 0.290308f, 0.712629f, 0.104436f, 0.271146f, 0.433486f, 0.162777f, 0.295001f, 0.00706051f, 0.159164f, 0.982884f, 0.785968f, 0.563684f, 0.878506f, 0.996777f, 0.184828f, 0.860534f, 0.460421f, 0.405588f, 0.231332f, 0.454473f, 0.177382f, 0.69441f, 0.980233f, 0.0406836f, 0.770267f, 0.490676f, 0.228413f, 0.484287f, 0.106554f, 0.76049f, 0.572014f, 0.435451f, 0.31732f, 0.036037f, 0.846877f, 0.618015f, 0.478935f, 0.386394f, 0.878349f, 0.921997f, 0.425029f, 0.0446865f, 0.86969f, 0.0922333f, 0.196239f, 0.756767f, 0.560272f, 0.807042f, 0.309844f, 0.74002f, 0.381336f, 0.794198f, 0.544657f, 0.384193f, 0.884803f, 0.364934f, 0.241674f, 0.207013f, 0.7099f, 0.58936f, 0.876078f, 0.398796f, 0.508855f, 0.352048f, 0.837214f, 0.108648f, 0.733437f, 0.141866f, 0.713733f, 0.481324f, 0.99968f, 0.279308f, 0.693086f, 0.12665f, 0.680087f, 0.913595f, 0.979134f, 0.929132f, 0.088604f, 0.0657521f, 0.3873f, 0.514501f, 0.487289f, 0.97546f, 0.316114f, 0.19143f, 0.178553f, 0.350775f, 0.00432832f, 0.197521f, 0.611761f, 0.738909f, 0.35769f, 0.888571f, 0.985438f, 0.196313f, 0.227811f, 0.230726f, 0.491513f, 0.590531f, 0.588628f, 0.597536f, 0.127964f, 0.709513f, 0.998737f, 0.657883f, 0.380948f, 0.638691f, 0.935765f, 0.724699f, 0.634965f, 0.0997543f, 0.0848483f, 0.563561f, 0.224521f, 0.68957f, 0.018406f, 0.973272f, 0.245803f, 0.0521846f, 0.95593f, 0.838984f, 0.575486f, 0.689339f, 0.293988f, 0.172232f, 0.749088f, 0.105492f, 0.782773f, 0.982242f, 0.512855f, 0.666952f, 0.564991f, 0.426079f, 0.268583f, 0.200784f, 0.935242f, 0.0378196f, 0.447407f, 0.547996f, 0.965037f, 0.934715f, 0.440276f, 0.958489f, 0.173333f, 0.123474f, 0.0802499f, 0.424981f, 0.494363f, 0.798343f, 0.566251f, 0.243821f, 0.264189f, 0.0951665f, 0.537235f, 0.53466f, 0.976458f, 0.268952f, 0.749503f, 0.154052f, 0.436807f, 0.25866f, 0.958374f, 0.899719f, 0.439639f, 0.0587805f, 0.0208674f, 0.917651f, 0.921434f, 0.165194f, 0.760968f, 0.671524f, 0.0727238f, 0.918638f, 0.648259f, 0.658971f, 0.584858f, 0.840813f, 0.847814f, 0.170104f, 0.91862f, 0.313914f, 0.335469f, 0.162633f, 0.645348f, 0.855711f, 0.104972f, 0.0329765f, 0.396648f, 0.400214f, 0.603795f, 0.384633f, 0.859126f, 0.0937945f, 0.375272f, 0.872602f, 0.979902f, 0.785618f, 0.0772138f, 0.540503f, 0.09794f, 0.17693f, 0.641151f, 0.763509f, 0.631704f, 0.794396f, 0.120896f, 0.070601f, 0.157818f, 0.489285f, 0.119313f, 0.715391f, 0.540251f, 0.254123f, 0.952205f, 0.546296f, 0.493261f, 0.229487f, 0.0423695f, 0.413891f, 0.619045f, 0.0137289f, 0.963241f, 0.068086f, 0.877313f, 0.576835f, 0.893131f, 0.800452f, 0.796079f, 0.0524707f, 0.363082f, 0.933241f, 0.237574f, 0.997836f, 0.441316f, 0.79692f, 0.809117f, 0.967089f, 0.799937f, 0.398065f, 0.00212683f, 0.469694f, 0.885177f, 0.341553f, 0.13186f, 0.91821f, 0.358324f, 0.310943f, 0.145477f, 0.830015f, 0.589568f, 0.44769f, 0.674439f, 0.162346f, 0.237803f, 0.540769f, 0.451391f, 0.598529f, 0.282071f, 0.293301f, 0.0604747f, 0.510597f, 0.73881f, 0.228732f, 0.0567351f, 0.455859f, 0.19745f, 0.553058f, 0.564941f, 0.775575f, 0.693834f, 0.258503f, 0.237224f, 0.339459f, 0.14242f, 0.239592f, 0.783003f, 0.050519f, 0.515439f, 0.325062f, 0.78496f, 0.983896f, 0.947207f, 0.728585f, 0.21937f, 0.7966f, 0.668894f, 0.434569f, 0.880538f, 0.0181109f, 0.577499f, 0.379877f, 0.168695f, 0.123193f, 0.935591f, 0.106843f, 0.157375f, 0.413981f, 0.661202f, 0.418603f, 0.301505f, 0.12235f, 0.217523f, 0.291922f, 0.390134f, 0.534702f, 0.670236f, 0.890481f, 0.20324f, 0.206657f, 0.552903f, 0.392794f, 0.902983f, 0.962504f, 0.797904f, 0.635953f, 0.292137f, 0.180469f, 0.484039f, 0.39552f, 0.744105f, 0.913101f, 0.0137772f, 0.124353f, 0.197006f, 0.406842f, 0.622996f, 0.142235f, 0.996856f, 0.434001f, 0.656566f, 0.59283f, 0.176573f, 0.144062f, 0.852539f, 0.500089f, 0.869166f, 0.11969f, 0.586362f, 0.422721f, 0.246049f, 0.159578f, 0.00497406f, 0.740171f, 0.0764762f, 0.430388f, 0.87774f, 0.908127f, 0.985444f, 0.14588f, 0.722973f, 0.733219f, 0.191227f, 0.443189f, 0.0640015f, 0.517273f, 0.0306847f, 0.373219f, 0.351447f, 0.770752f, 0.746587f, 0.551821f, 0.809159f, 0.59491f, 0.188787f, 0.112883f, 0.566536f, 0.819566f, 0.410144f, 0.54271f, 0.332758f, 0.615145f, 0.191363f, 0.489615f, 0.354987f, 0.960338f, 0.623565f, 0.957175f, 0.505025f, 0.642512f, 0.473598f, 0.375494f, 0.998481f, 0.785355f, 0.110431f, 0.431049f, 0.751209f, 0.349683f, 0.422449f, 0.711056f, 0.56415f, 0.548511f, 0.723139f, 0.553406f, 0.781189f, 0.933916f, 0.198305f, 0.713925f, 0.996284f, 0.129174f, 0.197931f, 0.686833f, 0.179496f, 0.503734f, 0.588643f, 0.891453f, 0.104466f, 0.295562f, 0.501657f, 0.354877f, 0.850596f, 0.144988f, 0.513696f, 0.675075f, 0.547987f, 0.958786f, 0.816923f, 0.482653f, 0.0852548f, 0.71496f, 0.112995f, 0.0584912f, 0.0640326f, 0.443337f, 0.0521254f, 0.932508f, 0.682979f, 0.780754f, 0.153132f, 0.520997f, 0.593065f, 0.879744f, 0.829637f, 0.580643f, 0.618082f, 0.560511f, 0.971666f, 0.0485484f, 0.734169f, 0.770737f, 0.93916f, 0.755172f, 0.105978f, 0.488665f, 0.199998f, 0.971012f, 0.230891f, 0.429226f, 0.469178f, 0.0224203f, 0.439181f, 0.635167f, 0.162624f, 0.102113f, 0.499927f, 0.989104f, 0.323647f, 0.520266f, 0.182815f, 0.894651f, 0.183042f, 0.184294f, 0.371266f, 0.923951f, 0.297685f, 0.661793f, 0.162735f, 0.54869f, 0.612413f, 0.849253f, 0.0796882f, 0.93868f, 0.905974f, 0.201802f, 0.467066f, 0.015462f, 0.145179f, 0.895501f, 0.0399703f, 0.73783f, 0.928015f, 0.290037f, 0.0127794f, 0.660176f, 0.768915f, 0.0611624f, 0.59375f, 0.197471f, 0.993766f, 0.668543f, 0.561358f, 0.705228f, 0.193655f, 0.340477f, 0.175667f, 0.411412f, 0.495274f, 0.20456f, 0.439602f, 0.429848f, 0.789995f, 0.668581f, 0.140415f, 0.755966f, 0.878249f, 0.0220638f, 0.623944f, 0.79379f, 0.950259f, 0.253693f, 0.434523f, 0.950525f, 0.149035f, 0.700093f, 0.780686f, 0.744102f, 0.173265f, 0.627226f, 0.549647f, 0.0228237f, 0.473883f, 0.00742775f, 0.0821427f, 0.379757f, 0.344386f, 0.736901f, 0.339416f, 0.262134f, 0.38348f, 0.101302f, 0.152379f, 0.0496804f, 0.152217f, 0.249193f, 0.363546f, 0.962433f, 0.692226f, 0.23119f, 0.268991f, 0.250231f, 0.0950519f, 0.351426f, 0.646594f, 0.341355f, 0.997766f, 0.510319f, 0.72302f, 0.552213f, 0.207419f, 0.750046f, 0.70985f, 0.420369f, 0.985432f, 0.909247f, 0.205197f, 0.478539f, 0.512852f, 0.672696f, 0.971522f, 0.556539f, 0.780706f, 0.889015f, 0.544833f, 0.498118f, 0.272023f, 0.018144f, 0.746029f, 0.083547f, 0.980626f, 0.699201f, 0.461987f, 0.624705f, 0.563836f, 0.708676f, 0.492007f, 0.687247f, 0.993667f, 0.446995f, 0.197628f, 0.599036f, 0.0752622f, 0.529617f, 0.191455f, 0.00515825f, 0.127586f, 0.312099f, 0.223878f, 0.00231979f, 0.129675f, 0.0727625f, 0.909658f, 0.524597f, 0.937275f, 0.827607f, 0.736921f, 0.494255f, 0.291899f, 0.453238f, 0.396438f, 0.0703756f, 0.172434f, 0.939525f, 0.790865f, 0.0328456f, 0.588702f, 0.217977f, 0.412422f, 0.460639f, 0.465881f, 0.0243425f, 0.00895228f, 0.0425363f, 0.992284f, 0.447183f, 0.216484f, 0.122755f, 0.617058f, 0.0431797f, 0.692331f, 0.818024f, 0.825901f, 0.88796f, 0.0218601f, 0.86947f, 0.484876f, 0.199033f, 0.20534f, 0.861005f, 0.626784f, 0.959516f, 0.179813f, 0.275457f, 0.479256f, 0.632075f, 0.293118f, 0.516963f, 0.995624f, 0.269653f, 0.510676f, 0.806218f, 0.839128f, 0.0744236f, 0.00414232f, 0.0808256f, 0.290425f, 0.850942f, 0.251608f, 0.432648f, 0.254348f, 0.729562f, 0.130449f, 0.0496187f, 0.118903f, 0.445543f, 0.575739f, 0.299474f, 0.887744f, 0.177957f, 0.931709f, 0.688859f, 0.678725f, 0.0825151f, 0.561248f, 0.0944602f, 0.101246f, 0.881836f, 0.641342f, 0.759043f, 0.661163f, 0.729505f, 0.00116935f, 0.951158f, 0.651216f, 0.582024f, 0.183692f, 0.0574782f, 0.719584f, 0.920926f, 0.894845f, 0.0250875f, 0.236701f, 0.0276926f, 0.757403f, 0.359298f, 0.903896f, 0.857549f, 0.391836f, 0.860684f, 0.385672f, 0.866655f, 0.0525078f, 0.199139f, 0.734153f, 0.113567f, 0.962971f, 0.696906f, 0.109213f, 0.732915f, 0.519414f, 0.254859f, 0.563371f, 0.802798f, 0.703578f, 0.219371f, 0.326014f, 0.51395f, 0.0520437f, 0.808046f, 0.157353f, 0.717751f, 0.106514f, 0.63996f, 0.100496f, 0.806815f, 0.535318f, 0.949571f, 0.315457f, 0.718858f, 0.0144244f, 0.493562f, 0.679857f, 0.537302f, 0.257917f, 0.248231f, 0.970416f, 0.215747f, 0.260754f, 0.705911f, 0.337085f, 0.0810561f, 0.131216f, 0.0964396f, 0.0581134f, 0.0652655f, 0.367965f, 0.570519f, 0.543193f, 0.485556f, 0.877042f, 0.68437f, 0.0970229f, 0.839031f, 0.687555f, 0.421574f, 0.0072242f, 0.112718f, 0.376165f, 0.256039f, 0.905163f, 0.481015f, 0.976688f, 0.44672f, 0.505033f, 0.827824f, 0.871342f, 0.612695f, 0.368103f, 0.316908f, 0.0808598f, 0.949908f, 0.746749f, 0.193154f, 0.203643f, 0.482257f, 0.355387f, 0.839368f, 0.38212f, 0.693222f, 0.121367f, 0.856845f, 0.596884f, 0.142164f, 0.904448f, 0.891239f, 0.552777f, 0.621616f, 0.821323f, 0.246115f, 0.446838f, 0.507474f, 0.88037f, 0.979186f, 0.63586f, 0.4092f, 0.563701f, 0.672052f, 0.220747f, 0.802606f, 0.912292f, 0.479805f, 0.81934f, 0.395447f, 0.820209f, 0.0807894f, 0.0823812f, 0.838224f, 0.122338f, 0.419926f, 0.366944f, 0.976147f, 0.308975f, 0.0502506f, 0.164821f, 0.508505f, 0.05446f, 0.417526f, 0.674822f, 0.451643f, 0.738939f, 0.907528f, 0.139576f, 0.815772f, 0.604352f, 0.335576f, 0.629058f, 0.739361f, 0.339942f, 0.654086f, 0.983225f, 0.800515f, 0.421016f, 0.242199f, 0.705033f, 0.667766f, 0.607148f, 0.883339f, 0.129436f, 0.960134f, 0.416758f, 0.782157f, 0.575662f, 0.310401f, 0.280256f, 0.0103829f, 0.299996f, 0.696368f, 0.778568f, 0.785373f, 0.35414f, 0.713419f, 0.774064f, 0.672779f, 0.0335733f, 0.0260403f, 0.309257f, 0.56561f, 0.823762f, 0.885718f, 0.478146f, 0.727463f, 0.404819f, 0.294524f, 0.418617f, 0.525707f, 0.600867f, 0.300731f, 0.946569f, 0.433926f, 0.913954f, 0.374384f, 0.24482f, 0.422946f, 0.608803f, 0.834739f, 0.999752f, 0.62248f, 0.311682f, 0.193417f, 0.952556f, 0.9488f, 0.267526f, 0.0338157f, 0.334645f, 0.70904f, 0.713905f, 0.845518f, 0.213907f, 0.321207f, 0.15708f, 0.65225f, 0.746379f, 0.192876f, 0.503195f, 0.77888f, 0.070674f, 0.316134f, 0.72445f, 0.695228f, 0.152465f, 0.545359f, 0.400305f, 0.498732f, 0.216983f, 0.484399f, 0.0943073f, 0.207141f, 0.537247f, 0.330498f, 0.883461f, 0.714721f, 0.961275f, 0.59487f, 0.0636283f, 0.737567f, 0.6383f, 0.483291f, 0.247155f, 0.857567f, 0.631703f, 0.429701f, 0.454042f, 0.714251f, 0.979674f, 0.665489f, 0.53912f, 0.523109f, 0.0549938f, 0.924437f, 0.392357f, 0.635091f, 0.179913f, 0.23256f, 0.721207f, 0.490126f, 0.984059f, 0.825843f, 0.748589f, 0.554943f, 0.340699f, 0.133856f, 0.446496f, 0.667434f, 0.103882f, 0.195872f, 0.294135f, 0.935846f, 0.0890971f, 0.544157f, 0.563039f, 0.46606f, 0.1378f, 0.654452f, 0.122944f, 0.073661f, 0.553047f, 0.32019f, 0.897619f, 0.564044f, 0.470212f, 0.491478f, 0.692478f, 0.059955f, 0.690505f, 0.585268f, 0.839648f, 0.487905f, 0.795444f, 0.855615f, 0.588132f, 0.493212f, 0.313429f, 0.301619f, 0.958473f, 0.705264f, 0.508996f, 0.709552f, 0.363808f, 0.236151f, 0.641981f, 0.379334f, 0.588468f, 0.920788f, 0.247678f, 0.724616f, 0.126874f, 0.411534f, 0.467776f, 0.176375f, 0.902795f, 0.257912f, 0.523172f, 0.12205f, 0.64428f, 0.690845f, 0.807008f, 0.400226f, 0.055123f, 0.691599f, 0.329486f, 0.490543f, 0.471629f, 0.946182f, 0.383887f, 0.624581f, 0.514031f, 0.356098f, 0.479177f, 0.270793f, 0.522778f, 0.541909f, 0.188393f, 0.770944f, 0.727937f, 0.586735f, 0.812681f, 0.00823873f, 0.780915f, 0.842566f, 0.97061f, 0.177203f, 0.508702f, 0.62454f, 0.342503f, 0.483114f, 0.722538f, 0.80982f, 0.639306f, 0.664388f, 0.225568f, 0.414917f, 0.693165f, 0.569524f, 0.35426f, 0.312786f, 0.726347f, 0.0639119f, 0.476121f, 0.192057f, 0.543966f, 0.590539f, 0.231263f, 0.686497f, 0.98829f, 0.75142f, 0.564079f, 0.0198914f, 0.0859048f, 0.452964f, 0.7643f, 0.932101f, 0.979583f, 0.186903f, 0.385352f, 0.517286f, 0.552364f, 0.903872f, 0.248989f, 0.197119f, 0.424309f, 0.969977f, 0.524458f, 0.471119f, 0.833608f, 0.980825f, 0.28423f, 0.212905f, 0.259927f, 0.709319f, 0.952739f, 0.400923f, 0.346101f, 0.557426f, 0.345971f, 0.696839f, 0.369703f, 0.74033f, 0.317726f, 0.810623f, 0.00095053f, 0.511518f, 0.55232f, 0.852479f, 0.186896f, 0.984056f, 0.35133f, 0.733324f, 0.333542f, 0.891915f, 0.892631f, 0.859045f, 0.629717f, 0.95311f, 0.973292f, 0.870052f, 0.376442f, 0.955109f, 0.878706f, 0.831966f, 0.904439f, 0.090226f, 0.457511f, 0.508178f, 0.757862f, 0.315269f, 0.299051f, 0.00307837f, 0.0503489f, 0.461593f, 0.383666f, 0.9412f, 0.62874f, 0.322915f, 0.594926f, 0.234609f, 0.975646f, 0.386876f, 0.144096f, 0.197405f, 0.017263f, 0.00194336f, 0.529636f, 0.490175f, 0.0740788f, 0.730821f, 0.934975f, 0.0852962f, 0.961476f, 0.628018f, 0.171702f, 0.469954f, 0.360609f, 0.554185f, 0.470818f, 0.161318f, 0.890747f, 0.729567f, 0.839131f, 0.757475f, 0.885114f, 0.861754f, 0.684986f, 0.822687f, 0.190117f, 0.0288109f, 0.101413f, 0.356411f, 0.606827f, 0.984595f, 0.250643f, 0.562617f, 0.509067f, 0.606134f, 0.143183f, 0.753764f, 0.42892f, 0.00569317f, 0.331559f, 0.228103f, 0.856878f, 0.139f, 0.802178f, 0.652949f, 0.0898696f, 0.349402f, 0.0576169f, 0.501473f, 0.957921f, 0.404505f, 0.285333f, 0.363342f, 0.624577f, 0.210267f, 0.534573f, 0.711512f, 0.414286f, 0.437086f, 0.21548f, 0.673452f, 0.172285f, 0.789582f, 0.171501f, 0.545055f, 0.368777f, 0.840091f, 0.0795685f, 0.443115f, 0.937032f, 0.97631f, 0.833763f, 0.350579f, 0.612087f, 0.241638f, 0.604022f, 0.205365f, 0.0910252f, 0.500496f, 0.0618943f, 0.306671f, 0.135412f, 0.879524f, 0.727931f, 0.311255f, 0.613369f, 0.553155f, 0.97048f, 0.286825f, 0.65849f, 0.328945f, 0.926423f, 0.222118f, 0.770134f, 0.00497807f, 0.241586f, 0.371391f, 0.0499316f, 0.860676f, 0.388414f, 0.0490442f, 0.841403f, 0.788269f, 0.00710306f, 0.591672f, 0.476099f, 0.863898f, 0.646663f, 0.26467f, 0.865229f, 0.878215f, 0.745007f, 0.18261f, 0.321436f, 0.0869906f, 0.121174f, 0.386345f, 0.367444f, 0.336269f, 0.749858f, 0.297982f, 0.698849f, 0.853547f, 0.935968f, 0.94279f, 0.950681f, 0.197965f, 0.396266f, 0.129254f, 0.931324f, 0.523649f, 0.499535f, 0.509434f, 0.386011f, 0.546035f, 0.683498f, 0.811974f, 0.667707f, 0.0393593f, 0.255919f, 0.924579f, 0.871657f, 0.469282f, 0.042623f, 0.227752f, 0.805485f, 0.536926f, 0.982236f, 0.336951f, 0.155744f, 0.252055f, 0.0254342f, 0.727967f, 0.272359f, 0.47154f, 0.953559f, 0.0391744f, 0.231566f, 0.79129f, 0.799607f, 0.0838479f, 0.33954f, 0.943043f, 0.791206f, 0.953935f, 0.534319f, 0.243267f, 0.029661f, 0.485159f, 0.671489f, 0.31243f, 0.0255479f, 0.0498638f, 0.67887f, 0.749428f, 0.3063f, 0.264987f, 0.566766f, 0.486102f, 0.384858f, 0.344514f, 0.0420542f, 0.740293f, 0.456772f, 0.555114f, 0.5424f, 0.343212f, 0.54725f, 0.634486f, 0.501399f, 0.788969f, 0.647696f, 0.711318f, 0.21642f, 0.552437f, 0.860784f, 0.483015f, 0.102228f, 0.0410136f, 0.700498f, 0.496406f, 0.934693f, 0.992023f, 0.765688f, 0.423802f, 0.538972f, 0.0667414f, 0.390147f, 0.11476f, 0.598344f, 0.638864f, 0.0181589f, 0.28639f, 0.496866f, 0.217171f, 0.59036f, 0.0793986f, 0.899908f, 0.830652f, 0.164535f, 0.614489f, 0.125172f, 0.702629f, 0.765871f, 0.0599793f, 0.736008f, 0.804631f, 0.588334f, 0.874484f, 0.0219589f, 0.665231f, 0.021349f, 0.763559f, 0.271918f, 0.895048f, 0.360778f, 0.154612f, 0.756385f, 0.791282f, 0.761342f, 0.48507f, 0.333422f, 0.561764f, 0.337604f, 0.863646f, 0.569103f, 0.225558f, 0.959984f, 0.302282f, 0.482395f, 0.492459f, 0.546571f, 0.0969414f, 0.295959f, 0.114857f, 0.588218f, 0.158047f, 0.582859f, 0.128798f, 0.350742f, 0.23493f, 0.355987f, 0.948633f, 0.24425f, 0.48679f, 0.781629f, 0.613991f, 0.00259594f, 0.832076f, 0.226109f, 0.353453f, 0.293911f, 0.53209f, 0.280915f, 0.312423f, 0.853643f, 0.735621f, 0.786695f, 0.558889f, 0.826306f, 0.824058f, 0.865441f, 0.691746f, 0.984011f, 0.953064f, 0.768883f, 0.075343f, 0.644279f, 0.606134f, 0.637826f, 0.96824f, 0.867386f, 0.662157f, 0.282204f, 0.854771f, 0.575143f, 0.760855f, 0.425274f, 0.526426f, 0.51551f, 0.173752f, 0.250269f, 0.0718145f, 0.86036f, 0.972755f, 0.922556f, 0.786071f, 0.912873f, 0.308962f, 0.807096f, 0.6535f, 0.994705f, 0.073716f, 0.618295f, 0.492507f, 0.553491f, 0.769549f, 0.466125f, 0.671833f, 0.596665f, 0.376966f, 0.976303f, 0.114262f, 0.33294f, 0.311872f, 0.832442f, 0.030041f, 0.560114f, 0.489543f, 0.172893f, 0.02074f, 0.0487108f, 0.709956f, 0.714885f, 0.499625f, 0.505481f, 0.0465617f, 0.778833f, 0.564333f, 0.178409f, 0.811857f, 0.610094f, 0.486218f, 0.126869f, 0.663186f, 0.852589f, 0.551538f, 0.398321f, 0.599403f, 0.761502f, 0.448972f, 0.0349859f, 0.381255f, 0.459973f, 0.357422f, 0.591028f, 0.551849f, 0.780519f, 0.399729f, 0.992049f, 0.610586f, 0.167629f, 0.913926f, 0.00525993f, 0.463541f, 0.687116f, 0.0301318f, 0.998411f, 0.303014f, 0.389526f, 0.191397f, 0.0485435f, 0.645825f, 0.0644446f, 0.545485f, 0.803161f, 0.527352f, 0.0392867f, 0.402408f, 0.180068f, 0.342006f, 0.122349f, 0.494184f, 0.816004f, 0.141213f, 0.887642f, 0.677055f, 0.81867f, 0.0713925f, 0.294113f, 0.243646f, 0.0916459f, 0.415963f, 0.102229f, 0.675766f, 0.648715f, 0.3249f, 0.023914f, 0.716525f, 0.520458f, 0.55829f, 0.0192804f, 0.792391f, 0.327761f, 0.00986895f, 0.926089f, 0.641364f, 0.556168f, 0.679491f, 0.359651f, 0.765137f, 0.448557f, 0.832623f, 0.531892f, 0.0401571f, 0.820219f, 0.4483f, 0.399641f, 0.0522186f, 0.498818f, 0.941872f, 0.152986f, 0.719836f, 0.646759f, 0.773646f, 0.525147f, 0.67968f, 0.0677296f, 0.414053f, 0.191738f, 0.137422f, 0.112622f, 0.36914f, 0.935913f, 0.118887f, 0.431148f, 0.79774f, 0.266562f, 0.29987f, 0.487814f, 0.632592f, 0.728103f, 0.788662f, 0.928283f, 0.680062f, 0.92501f, 0.572043f, 0.837907f, 0.377004f, 0.260299f, 0.419454f, 0.434112f, 0.812986f, 0.867119f, 0.906811f, 0.929856f, 0.252947f, 0.365709f, 0.176834f, 0.270347f, 0.821275f, 0.788086f, 0.746725f, 0.527146f, 0.773846f, 0.34274f, 0.972822f, 0.419464f, 0.873507f, 0.508657f, 0.930039f, 0.0300526f, 0.0276344f, 0.742487f, 0.920272f, 0.667396f, 0.636921f, 0.356219f, 0.421662f, 0.97804f, 0.795539f, 0.691565f, 0.449484f, 0.927937f, 0.446389f, 0.31938f, 0.963623f, 0.977388f, 0.267271f, 0.981866f, 0.178604f, 0.927389f, 0.692281f, 0.398067f, 0.26157f, 0.275562f, 0.740463f, 0.0300114f, 0.644454f, 0.020473f, 0.823367f, 0.476134f, 0.91428f, 0.690258f, 0.430381f, 0.132247f, 0.134522f, 0.792323f, 0.414874f, 0.579072f, 0.216163f, 0.333439f, 0.500119f, 0.302189f, 0.223479f, 0.353756f, 0.26351f, 0.323033f, 0.345635f, 0.494739f, 0.773011f, 0.202248f, 0.675009f, 0.44436f, 0.10568f, 0.792557f, 0.273839f, 0.771164f, 0.217629f, 0.0117101f, 0.447494f, 0.262039f, 0.0729463f, 0.168122f, 0.932708f, 0.523333f, 0.661263f, 0.588571f, 0.436633f, 0.464305f, 0.792759f, 0.0922854f, 0.226091f, 0.457019f, 0.991399f, 0.297617f, 0.891445f, 0.674486f, 0.610306f, 0.458768f, 0.346884f, 0.859144f, 0.394789f, 0.505957f, 0.756246f, 0.927334f, 0.18868f, 0.446175f, 0.889549f, 0.810579f, 0.129489f, 0.935933f, 0.791653f, 0.800206f, 0.492832f, 0.247432f, 0.333932f, 0.865335f, 0.850728f, 0.0397239f, 0.430762f, 0.678164f, 0.607935f, 0.812988f, 0.472954f, 0.654096f, 0.195102f, 0.589594f, 0.259284f, 0.0235512f, 0.816587f, 0.913337f, 0.626546f, 0.197613f, 0.960908f, 0.448535f, 0.826306f, 0.974263f, 0.237144f, 0.283808f, 0.76009f, 0.774733f, 0.521747f, 0.093365f, 0.56867f, 0.974468f, 0.82523f, 0.486585f, 0.0876118f, 0.844382f, 0.184445f, 0.902508f, 0.914591f, 0.315663f, 0.223033f, 0.0797762f, 0.520933f, 0.80171f, 0.558458f, 0.19027f, 0.0600096f, 0.837953f, 0.27773f, 0.311072f, 0.689664f, 0.961714f, 0.178571f, 0.0782305f, 0.255316f, 0.852218f, 0.284925f, 0.169079f, 0.247419f, 0.428893f, 0.509164f, 0.529034f, 0.0932099f, 0.532579f, 0.00556066f, 0.661644f, 0.0307554f, 0.588391f, 0.179421f, 0.0119119f, 0.514301f, 0.259695f, 0.626493f, 0.379885f, 0.511277f, 0.279113f, 0.353348f, 0.972152f, 0.166663f, 0.838509f, 0.422474f, 0.171259f, 0.400788f, 0.601623f, 0.470386f, 0.503779f, 0.62779f, 0.82932f, 0.895982f, 0.0824422f, 0.789089f, 0.727913f, 0.474258f, 0.0497131f, 0.00955813f, 0.252122f, 0.890049f, 0.337881f, 0.484709f, 0.273788f, 0.999112f, 0.740117f, 0.404148f, 0.190148f, 0.903226f, 0.491247f, 0.303718f, 0.118576f, 0.880404f, 0.710057f, 0.814665f, 0.056526f, 0.873991f, 0.807616f, 0.7606f, 0.0980763f, 0.479651f, 0.469628f, 0.721994f, 0.798353f, 0.189775f, 0.655126f, 0.36509f, 0.369786f, 0.315095f, 0.343931f, 0.983116f, 0.555985f, 0.225449f, 0.566013f, 0.125261f, 0.0206297f, 0.899223f, 0.397869f, 0.0086109f, 0.528844f, 0.36998f, 0.419304f, 0.352928f, 0.398114f, 0.738457f, 0.229685f, 0.322922f, 0.991783f, 0.993516f, 0.00377801f, 0.661103f, 0.680122f, 0.948009f, 0.924472f, 0.246157f, 0.993241f, 0.395537f, 0.130494f, 0.379061f, 0.482428f, 0.606916f, 0.342766f, 0.693158f, 0.90456f, 0.303971f, 0.784298f, 0.821562f, 0.0634914f, 0.851069f, 0.0973823f, 0.972907f, 0.873059f, 0.820636f, 0.629946f, 0.118271f, 0.211263f, 0.720244f, 0.337837f, 0.928264f, 0.318676f, 0.131561f, 0.40809f, 0.0659858f, 0.79075f, 0.274425f, 0.156597f, 0.514231f, 0.366287f, 0.996598f, 0.681998f, 0.57301f, 0.165393f, 0.163006f, 0.53473f, 0.155232f, 0.802874f, 0.490654f, 0.442575f, 0.646104f, 0.0417704f, 0.400137f, 0.842228f, 0.255275f, 0.282046f, 0.268781f, 0.100579f, 0.949506f, 0.651639f, 0.33989f, 0.28822f, 0.796744f, 0.960923f, 0.811584f, 0.205499f, 0.250308f, 0.674535f, 0.863348f, 0.802493f, 0.281164f, 0.288604f, 0.801861f, 0.756335f, 0.182745f, 0.26038f, 0.639078f, 0.0118065f, 0.771779f, 0.749096f, 0.756532f, 0.576785f, 0.699314f, 0.716363f, 0.387166f, 0.684195f, 0.227072f, 0.599258f, 0.374418f, 0.515709f, 0.0850697f, 0.216767f, 0.388641f, 0.35353f, 0.390818f, 0.488494f, 0.875992f, 0.55097f, 0.979684f, 0.66537f, 0.322002f, 0.956732f, 0.989972f, 0.759803f, 0.68069f, 0.302221f, 0.524167f, 0.193841f, 0.561364f, 0.881131f, 0.126314f, 0.221103f, 0.831082f, 0.732482f, 0.306293f, 0.25238f, 0.518912f, 0.664075f, 0.854708f, 0.410863f, 0.422132f, 0.790214f, 0.624666f, 0.826667f, 0.742433f, 0.643664f, 0.257051f, 0.291887f, 0.30994f, 0.984902f, 0.34293f, 0.417699f, 0.973489f, 0.18253f, 0.335018f, 0.645121f, 0.853594f, 0.142092f, 0.00140872f, 0.438017f, 0.660029f, 0.0439089f, 0.760549f, 0.17638f, 0.867179f, 0.568021f, 0.248953f, 0.203794f, 0.929354f, 0.796162f, 0.150492f, 0.294376f, 0.0365475f, 0.7358f, 0.580934f, 0.745314f, 0.621556f, 0.555663f, 0.947511f, 0.940511f, 0.595953f, 0.669709f, 0.0868572f, 0.368872f, 0.529678f, 0.761891f, 0.79758f, 0.840227f, 0.285224f, 0.909886f, 0.446478f, 0.330743f, 0.776215f, 0.836051f, 0.88733f, 0.874798f, 0.272198f, 0.738723f, 0.0737272f, 0.918806f, 0.127292f, 0.524442f, 0.132595f, 0.787819f, 0.517401f, 0.642899f, 0.378123f, 0.841222f, 0.585387f, 0.621287f, 0.0283291f, 0.808297f, 0.0812849f, 0.850406f, 0.460515f, 0.767217f, 0.322963f, 0.192544f, 0.716186f, 0.193532f, 0.484245f, 0.673234f, 0.847921f, 0.225627f, 0.848513f, 0.40118f, 0.849782f, 0.418573f, 0.347771f, 0.855674f, 0.0714761f, 0.195996f, 0.00437628f, 0.352138f, 0.473055f, 0.70412f, 0.621735f, 0.178853f, 0.371567f, 0.653595f, 0.189244f, 0.351817f, 0.899764f, 0.235987f, 0.221373f, 0.458357f, 0.340361f, 0.684854f, 0.408874f, 0.777796f, 0.969712f, 0.85128f, 0.348101f, 0.801514f, 0.458754f, 0.713774f, 0.682207f, 0.416362f, 0.954578f, 0.0584264f, 0.85257f, 0.563311f, 0.122204f, 0.882302f, 0.171371f, 0.490891f, 0.329193f, 0.913678f, 0.65997f, 0.310574f, 0.623693f, 0.473249f, 0.640358f, 0.608075f, 0.222066f, 0.707867f, 0.117805f, 0.117652f, 0.17752f, 0.173416f, 0.539982f, 0.510867f, 0.672772f, 0.250098f, 0.371021f, 0.10894f, 0.314708f, 0.604465f, 0.783892f, 0.552285f, 0.82579f, 0.439523f, 0.653172f, 0.629957f, 0.622902f, 0.0065166f, 0.841154f, 0.0814163f, 0.0985239f, 0.593193f, 0.22948f, 0.531344f, 0.481579f, 0.767712f, 0.166649f, 0.841859f, 0.683126f, 0.867295f, 0.832777f, 0.973099f, 0.0271803f, 0.947553f, 0.00621338f, 0.0738052f, 0.535525f, 0.050823f, 0.518615f, 0.187707f, 0.436181f, 0.0177505f, 0.947396f, 0.319046f, 0.0448127f, 0.886991f, 0.269284f, 0.582218f, 0.107443f, 0.126828f, 0.419803f, 0.349143f, 0.90281f, 0.104078f, 0.178948f, 0.84054f, 0.65621f, 0.504473f, 0.16552f, 0.561898f, 0.493207f, 0.230607f, 0.147987f, 0.308696f, 0.956418f, 0.546902f, 0.957827f, 0.792695f, 0.311232f, 0.903448f, 0.340009f, 0.933647f, 0.701222f, 0.800572f, 0.965257f, 0.851995f, 0.732689f, 0.156221f, 0.651537f, 0.650012f, 0.486839f, 0.916366f, 0.262605f, 0.340967f, 0.600215f, 0.0109303f, 0.884928f, 0.705577f, 0.662114f, 0.463401f, 0.305938f, 0.598698f, 0.156752f, 0.0471922f, 0.577322f, 0.214467f, 0.720244f, 0.641074f, 0.425668f, 0.882058f, 0.855877f, 0.759533f, 0.428873f, 0.442939f, 0.34863f, 0.559511f, 0.546673f, 0.889679f, 0.705352f, 0.331606f, 0.722972f, 0.191987f, 0.880071f, 0.121f, 0.229362f, 0.900354f, 0.160051f, 0.416177f, 0.746829f, 0.373132f, 0.907209f, 0.476464f, 0.981733f, 0.442532f, 0.783611f, 0.437506f, 0.388315f, 0.615209f, 0.107328f, 0.0905414f, 0.771929f, 0.901086f, 0.778449f, 0.553645f, 0.303516f, 0.966506f, 0.787031f, 0.111003f, 0.876478f, 0.877366f, 0.998614f, 0.0275316f, 0.126583f, 0.333877f, 0.320575f, 0.695409f, 0.367766f, 0.0619515f, 0.558233f, 0.667851f, 0.362001f, 0.511192f, 0.593832f, 0.104918f, 0.223187f, 0.95935f, 0.586756f, 0.552799f, 0.688142f, 0.959247f, 0.302578f, 0.829863f, 0.37575f, 0.906485f, 0.689028f, 0.319606f, 0.248993f, 0.0570994f, 0.725527f, 0.0163315f, 0.246428f, 0.288259f, 0.936057f, 0.019056f, 0.577446f, 0.892901f, 0.976875f, 0.260174f, 0.101546f, 0.909216f, 0.888497f, 0.890482f, 0.443225f, 0.147186f, 0.948733f, 0.169857f, 0.302271f, 0.593198f, 0.180348f, 0.969808f, 0.84065f, 0.38528f, 0.509264f, 0.623012f, 0.416222f, 0.765992f, 0.591265f, 0.703121f, 0.0857105f, 0.129768f, 0.345686f, 0.911736f, 0.521593f, 0.583656f, 0.495557f, 0.524357f, 0.611519f, 0.0110056f, 0.81857f, 0.847559f, 0.451589f, 0.986858f, 0.231394f, 0.986387f, 0.47108f, 0.0798482f, 0.0484913f, 0.566229f, 0.289017f, 0.529059f, 0.591231f, 0.97866f, 0.322908f, 0.0274567f, 0.296049f, 0.974199f, 0.0491088f, 0.231948f, 0.261758f, 0.163036f, 0.78452f, 0.282729f, 0.20247f, 0.031378f, 0.764975f, 0.660229f, 0.284101f, 0.601626f, 0.375652f, 0.268876f, 0.122623f, 0.801724f, 0.211906f, 0.116186f, 0.679825f, 0.999403f, 0.119206f, 0.251004f, 0.77768f, 0.54229f, 0.0891417f, 0.691306f, 0.0877097f, 0.25466f, 0.578414f, 0.614318f, 0.542089f, 0.377539f, 0.854583f, 0.933576f, 0.202052f, 0.152883f, 0.220008f, 0.757031f, 0.629259f, 0.263746f, 0.725689f, 0.536366f, 0.978988f, 0.777539f, 0.813108f, 0.817181f, 0.530806f, 0.0939171f, 0.242994f, 0.874139f, 0.747708f, 0.807063f, 0.0350361f, 0.533946f, 0.319516f, 0.680287f, 0.436791f, 0.739375f, 0.740547f, 0.154306f, 0.701016f, 0.00234878f, 0.939335f, 0.862891f, 0.593673f, 0.719357f, 0.181157f, 0.0885877f, 0.485182f, 0.700532f, 0.114159f, 0.956177f, 0.0805812f, 0.302443f, 0.117464f, 0.783196f, 0.639125f, 0.753739f, 0.379389f, 0.502846f, 0.583664f, 0.0196653f, 0.250722f, 0.39182f, 0.721552f, 0.66313f, 0.295055f, 0.342602f, 0.889733f, 0.388999f, 0.861722f, 0.831452f, 0.988328f, 0.477979f, 0.415305f, 0.526842f, 0.71775f, 0.810882f, 0.688081f, 0.388987f, 0.201506f, 0.0903916f, 0.66571f, 0.401052f, 0.655103f, 0.869451f, 0.980343f, 0.369992f, 0.164526f, 0.113849f, 0.420296f, 0.0916802f, 0.928891f, 0.538109f, 0.956781f, 0.343222f, 0.298249f, 0.0215474f, 0.545035f, 0.830245f, 0.662835f, 0.104736f, 0.0493058f, 0.93374f, 0.0414065f, 0.833949f, 0.138226f, 0.557654f, 0.594962f, 0.22009f, 0.722154f, 0.8246f, 0.0997313f, 0.599946f, 0.708322f, 0.198689f, 0.614759f, 0.469621f, 0.984223f, 0.770478f, 0.595345f, 0.0143708f, 0.261983f, 0.103563f, 0.207683f, 0.996445f, 0.583387f, 0.87197f, 0.399747f, 0.15654f, 0.356559f, 0.839196f, 0.0784418f, 0.671753f, 0.392062f, 0.205537f, 0.0189803f, 0.807179f, 0.495353f, 0.00446501f, 0.964691f, 0.229715f, 0.971734f, 0.7399f, 0.398118f, 0.189112f, 0.725908f, 0.0376952f, 0.471589f, 0.734895f, 0.749929f, 0.456986f, 0.251562f, 0.695605f, 0.485735f, 0.911215f, 0.0309049f, 0.462976f, 0.234532f, 0.275878f, 0.828262f, 0.147824f, 0.829732f, 0.367973f, 0.271491f, 0.671973f, 0.725092f, 0.575875f, 0.314053f, 0.283632f, 0.776727f, 0.567926f, 0.487624f, 0.00710749f, 0.4581f, 0.507153f, 0.438787f, 0.599484f, 0.0630961f, 0.446721f, 0.147339f, 0.880934f, 0.764336f, 0.533937f, 0.705525f, 0.424653f, 0.742123f, 0.0696696f, 0.199586f, 0.495463f, 0.182899f, 0.864884f, 0.141033f, 0.713732f, 0.670125f, 0.39876f, 0.200447f, 0.935647f, 0.142121f, 0.823798f, 0.894973f, 0.0688477f, 0.444488f, 0.237844f, 0.652158f, 0.0583972f, 0.672934f, 0.0409217f, 0.449197f, 0.998904f, 0.017062f, 0.527327f, 0.594482f, 0.919851f, 0.642763f, 0.0166157f, 0.146743f, 0.202536f, 0.710072f, 0.220063f, 0.42262f, 0.401871f, 0.442955f, 0.0388413f, 0.825911f, 0.455906f, 0.645273f, 0.552892f, 0.421103f, 0.255049f, 0.211356f, 0.0938391f, 0.370987f, 0.923417f, 0.411729f, 0.215158f, 0.660066f, 0.518895f, 0.116835f, 0.258864f, 0.502941f, 0.547548f, 0.534453f, 0.621126f, 0.135573f, 0.674448f, 0.425275f, 0.899835f, 0.438131f, 0.711096f, 0.616808f, 0.376458f, 0.379622f, 0.00695235f, 0.652446f, 0.864579f, 0.82628f, 0.069206f, 0.261676f, 0.148714f, 0.232246f, 0.795325f, 0.213598f, 0.575413f, 0.0716856f, 0.649749f, 0.359545f, 0.548619f, 0.190285f, 0.290353f, 0.285725f, 0.531256f, 0.748506f, 0.612982f, 0.166108f, 0.804547f, 0.0111855f, 0.930841f, 0.5736f, 0.951222f, 0.990194f, 0.149537f, 0.857895f, 0.866818f, 0.48156f, 0.697083f, 0.892048f, 0.106432f, 0.282388f, 0.106496f, 0.644213f, 0.0825565f, 0.99033f, 0.74448f, 0.912348f, 0.513386f, 0.618006f, 0.0383737f, 0.629989f, 0.319011f, 0.0181079f, 0.986454f, 0.349811f, 0.314267f, 0.240873f, 0.167084f, 0.290668f, 0.660774f, 0.918395f, 0.257655f, 0.7115f, 0.440883f, 0.0940582f, 0.212359f, 0.338975f, 0.533599f, 0.62604f, 0.165259f, 0.864207f, 0.664372f, 0.441045f, 0.633473f, 0.430536f, 0.293942f, 0.467641f, 0.330037f, 0.211291f, 0.855025f, 0.724142f, 0.746025f, 0.381033f, 0.145113f, 0.661244f, 0.00047397f, 0.318483f, 0.125864f, 0.154241f, 0.951409f, 0.296145f, 0.144645f, 0.916007f, 0.45091f, 0.329749f, 0.68544f, 0.271914f, 0.968292f, 0.538024f, 0.362295f, 0.226466f, 0.720538f, 0.446668f, 0.55843f, 0.984257f, 0.57587f, 0.435172f, 0.465055f, 0.974807f, 0.879132f, 0.606958f, 0.272897f, 0.928581f, 0.163117f, 0.338888f, 0.187483f, 0.777955f, 0.0344172f, 0.847382f, 0.0359137f, 0.82887f, 0.0367074f, 0.985197f, 0.761066f, 0.763216f, 0.307284f, 0.436844f, 0.348138f, 0.655239f, 0.949047f, 0.489637f, 0.187679f, 0.562968f, 0.992744f, 0.527728f, 0.596024f, 0.742456f, 0.803745f, 0.56077f, 0.64699f, 0.512688f, 0.804106f, 0.528222f, 0.78619f, 0.046336f, 0.858301f, 0.221091f, 0.0275115f, 0.614239f, 0.584934f, 0.894209f, 0.433158f, 0.397711f, 0.54934f, 0.238469f, 0.756508f, 0.461006f, 0.536856f, 0.61681f, 0.904252f, 0.957949f, 0.00946035f, 0.98205f, 0.281272f, 0.749333f, 0.207199f, 0.33586f, 0.5621f, 0.494833f, 0.0953187f, 0.264148f, 0.978974f, 0.624195f, 0.422894f, 0.574342f, 0.586763f, 0.407432f, 0.671367f, 0.691812f, 0.0354768f, 0.544334f, 0.53725f, 0.0523175f, 0.931544f, 0.696832f, 0.535487f, 0.562655f, 0.978433f, 0.9759f, 0.6137f, 0.88824f, 0.634806f, 0.91389f, 0.802327f, 0.788886f, 0.29587f, 0.359461f, 0.330227f, 0.192235f, 0.33422f, 0.166573f, 0.410696f, 0.173734f, 0.914069f, 0.295933f, 0.119086f, 0.408076f, 0.538984f, 0.142058f, 0.00935989f, 0.315463f, 0.342517f, 0.674444f, 0.228584f, 0.153145f, 0.126419f, 0.0146576f, 0.543831f, 0.399264f, 0.266148f, 0.897295f, 0.42099f, 0.45644f, 0.951078f, 0.933947f, 0.152281f, 0.893732f, 0.0116767f, 0.38166f, 0.5368f, 0.093994f, 0.363905f, 0.302806f, 0.186361f, 0.985696f, 0.314611f, 0.209669f, 0.392243f, 0.111831f, 0.918114f, 0.601192f, 0.889127f, 0.0664733f, 0.877663f, 0.237696f, 0.48902f, 0.00822174f, 0.95089f, 0.287086f, 0.587423f, 0.605854f, 0.321565f, 0.997006f, 0.313941f, 0.326961f, 0.607774f, 0.336284f, 0.663275f, 0.745426f, 0.921719f, 0.364348f, 0.777875f, 0.393044f, 0.10163f, 0.00308402f, 0.0668498f, 0.279901f, 0.65965f, 0.642138f, 0.747309f, 0.328212f, 0.623957f, 0.398941f, 0.207494f, 0.841148f, 0.612283f, 0.223398f, 0.73807f, 0.529274f, 0.265768f, 0.958483f, 0.286796f, 0.53327f, 0.0956185f, 0.52155f, 0.912272f, 0.812075f, 0.76738f, 0.724869f, 0.0703279f, 0.571684f, 0.576001f, 0.558419f, 0.535236f, 0.510872f, 0.995674f, 0.879704f, 0.166254f, 0.842393f, 0.37984f, 0.923193f, 0.956935f, 0.0477059f, 0.0734965f, 0.874884f, 0.849077f, 0.207027f, 0.124655f, 0.309133f, 0.6932f, 0.546135f, 0.8569f, 0.563165f, 0.73295f, 0.385436f, 0.857465f, 0.891117f, 0.938905f, 0.13618f, 0.632439f, 0.684117f, 0.501954f, 0.0890991f, 0.288565f, 0.17376f, 0.0915308f, 0.653107f, 0.845979f, 0.789127f, 0.439814f, 0.22862f, 0.806013f, 0.233774f, 0.943114f, 0.954302f, 0.933807f, 0.657556f, 0.164121f, 0.624513f, 0.782399f, 0.166331f, 0.425038f, 0.112441f, 0.055798f, 0.480522f, 0.108632f, 0.212424f, 0.109991f, 0.972284f, 0.766122f, 0.798159f, 0.280962f, 0.403135f, 0.73327f, 0.600336f, 0.610574f, 0.540811f, 0.895212f, 0.162785f, 0.76752f, 0.397826f, 0.746574f, 0.65947f, 0.0890833f, 0.174131f, 0.348146f, 0.89503f, 0.787937f, 0.829608f, 0.263003f, 0.521369f, 0.879155f, 0.269169f, 0.142506f, 0.0333792f, 0.704816f, 0.721753f, 0.795799f, 0.399332f, 0.0642958f, 0.838391f, 0.203988f, 0.703254f, 0.578773f, 0.260028f, 0.244866f, 0.0521185f, 0.0643188f, 0.902621f, 0.333046f, 0.34006f, 0.763157f, 0.438156f, 0.995069f, 0.503676f, 0.0424489f, 0.954542f, 0.0501422f, 0.72261f, 0.180772f, 0.405272f, 0.905464f, 0.397728f, 0.481824f, 0.219146f, 0.18593f, 0.361789f, 0.540865f, 0.212726f, 0.0145311f, 0.996108f, 0.949028f, 0.0313359f, 0.892986f, 0.209844f, 0.0204217f, 0.143729f, 0.149781f, 0.80839f, 0.601906f, 0.314669f, 0.644023f, 0.318997f, 0.290432f, 0.292971f, 0.279199f, 0.246305f, 0.302936f, 0.588377f, 0.427576f, 0.422404f, 0.640749f, 0.590413f, 0.797506f, 0.391294f, 0.845834f, 0.737661f, 0.455596f, 0.996297f, 0.935487f, 0.888209f, 0.196764f, 0.214778f, 0.665268f, 0.13161f, 0.279638f, 0.435887f, 0.395731f, 0.542431f, 0.181147f, 0.143058f, 0.344884f, 0.341706f, 0.420025f, 0.95141f, 0.199822f, 0.649671f, 0.977817f, 0.719646f, 0.873828f, 0.214876f, 0.217572f, 0.904443f, 0.804816f, 0.0704537f, 0.332569f, 0.244298f, 0.30215f, 0.0706434f, 0.782896f, 0.100429f, 0.986729f, 0.104373f, 0.221871f, 0.686011f, 0.903187f, 0.658629f, 0.00593545f, 0.66306f, 0.510265f, 0.824122f, 0.66244f, 0.845467f, 0.979222f, 0.107885f, 0.158799f, 0.903068f, 0.939234f, 0.412399f, 0.324726f, 0.16968f, 0.910127f, 0.107273f, 0.316888f, 0.835599f, 0.0330597f, 0.573721f, 0.86464f, 0.717939f, 0.649407f, 0.89027f, 0.806881f, 0.663934f, 0.571069f, 0.949662f, 0.857635f, 0.0942166f, 0.656745f, 0.316127f, 0.137846f, 0.358969f, 0.747496f, 0.427922f, 0.584548f, 0.43169f, 0.454915f, 0.356048f, 0.00170449f, 0.26271f, 0.0553734f, 0.712526f, 0.699642f, 0.626845f, 0.216316f, 0.59791f, 0.914564f, 0.73967f, 0.0456612f, 0.0303278f, 0.619759f, 0.93395f, 0.0345666f, 0.34491f, 0.161455f, 0.433299f, 0.898209f, 0.591036f, 0.0803389f, 0.331712f, 0.921816f, 0.856827f, 0.236875f, 0.618282f, 0.893639f, 0.698095f, 0.228753f, 0.946864f, 0.45136f, 0.298134f, 0.207007f, 0.0854858f, 0.119187f, 0.635895f, 0.52909f, 0.69962f, 0.127592f, 0.15653f, 0.23986f, 0.733369f, 0.544024f, 0.0871906f, 0.494791f, 0.802796f, 0.657784f, 0.229278f, 0.667806f, 0.661302f, 0.796142f, 0.904963f, 0.366172f, 0.545317f, 0.669708f, 0.810318f, 0.459827f, 0.486483f, 0.74267f, 0.624436f, 0.818295f, 0.371175f, 0.497552f, 0.521131f, 0.984321f, 0.125459f, 0.422566f, 0.176894f, 0.597355f, 0.387584f, 0.390039f, 0.676318f, 0.76024f, 0.682459f, 0.887529f, 0.982262f, 0.546939f, 0.666575f, 0.121634f, 0.128986f, 0.848621f, 0.563456f, 0.610312f, 0.655875f, 0.10287f, 0.271705f, 0.709657f, 0.360677f, 0.166403f, 0.944628f, 0.479802f, 0.410072f, 0.350689f, 0.387629f, 0.32527f, 0.204866f, 0.32971f, 0.323529f, 0.0405677f, 0.715867f, 0.373414f, 0.0464384f, 0.41172f, 0.453869f, 0.764397f, 0.907818f, 0.0541775f, 0.399667f, 0.238141f, 0.697363f, 0.459104f, 0.250045f, 0.838594f, 0.50154f, 0.573339f, 0.159081f, 0.844144f, 0.0314762f, 0.454688f, 0.785239f, 0.801135f, 0.639101f, 0.373761f, 0.48864f, 0.649401f, 0.786162f, 0.124549f, 0.817864f, 0.819934f, 0.827829f, 0.49073f, 0.233411f, 0.0887261f, 0.494884f, 0.578041f, 0.633325f, 0.430376f, 0.480944f, 0.530314f, 0.969412f, 0.826959f, 0.884511f, 0.820284f, 0.233308f, 0.999118f, 0.0519965f, 0.825901f, 0.708105f, 0.734174f, 0.448959f, 0.195161f, 0.804685f, 0.680453f, 0.506802f, 0.246122f, 0.9991f, 0.281302f, 0.14217f, 0.358793f, 0.729983f, 0.614269f, 0.799955f, 0.877031f, 0.305935f, 0.780001f, 0.713362f, 0.920822f, 0.264835f, 0.710924f, 0.990316f, 0.842847f, 0.852389f, 0.972967f, 0.76547f, 0.10173f, 0.48786f, 0.0459325f, 0.255809f, 0.956663f, 0.180142f, 0.998191f, 0.997955f, 0.185299f, 0.602267f, 0.491361f, 0.875398f, 0.0658466f, 0.567658f, 0.997795f, 0.591734f, 0.249337f, 0.552591f, 0.647966f, 0.805961f, 0.851738f, 0.377059f, 0.530383f, 0.653499f, 0.107055f, 0.487349f, 0.676637f, 0.829513f, 0.649088f, 0.626673f, 0.922129f, 0.771083f, 0.249981f, 0.459453f, 0.26202f, 0.249224f, 0.692789f, 0.934312f, 0.7581f, 0.334683f, 0.925708f, 0.0535473f, 0.549126f, 0.174379f, 0.890911f, 0.469886f, 0.0168745f, 0.225596f, 0.490898f, 0.665503f, 0.56331f, 0.785783f, 0.406198f, 0.648971f, 0.556845f, 0.968865f, 0.584668f, 0.0468998f, 0.303567f, 0.1311f, 0.638951f, 0.717894f, 0.915575f, 0.173391f, 0.671815f, 0.366176f, 0.741083f, 0.560976f, 0.528959f, 0.503424f, 0.313394f, 0.317896f, 0.122852f, 0.790566f, 0.588063f, 0.867979f, 0.901013f, 0.286144f, 0.519279f, 0.268692f, 0.789779f, 0.986381f, 0.147227f, 0.483949f, 0.29949f, 0.9893f, 0.183272f, 0.651737f, 0.0700821f, 0.513175f, 0.321574f, 0.533289f, 0.0188718f, 0.283338f, 0.658904f, 0.450936f, 0.308419f, 0.238598f, 0.491723f, 0.3378f, 0.674554f, 0.317872f, 0.833756f, 0.404867f, 0.858322f, 0.951014f, 0.462002f, 0.213524f, 0.907227f, 0.966018f, 0.943972f, 0.240083f, 0.824311f, 0.0136299f, 0.0415106f, 0.211277f, 0.823492f, 0.0955109f, 0.491925f, 0.489097f, 0.131855f, 0.576084f, 0.185541f, 0.367526f, 0.639359f, 0.10945f, 0.0304542f, 0.134525f, 0.79432f, 0.803408f, 0.75494f, 0.265617f, 0.272427f, 0.898437f, 0.179157f, 0.418492f, 0.0192533f, 0.712957f, 0.414789f, 0.460179f, 0.354575f, 0.403837f, 0.799037f, 0.597008f, 0.965766f, 0.334546f, 0.166894f, 0.473735f, 0.464255f, 0.640725f, 0.569866f, 0.333975f, 0.219429f, 0.153702f, 0.753632f, 0.451345f, 0.43749f, 0.994772f, 0.956143f, 0.0781375f, 0.9015f, 0.260371f, 0.52886f, 0.104433f, 0.320454f, 0.0454706f, 0.856138f, 0.426182f, 0.69376f, 0.766984f, 0.84683f, 0.490401f, 0.682308f, 0.0449822f, 0.754187f, 0.0369971f, 0.911769f, 0.0797669f, 0.417506f, 0.231764f, 0.647801f, 0.823268f, 0.544316f, 0.0549245f, 0.225344f, 0.793053f, 0.820461f, 0.931705f, 0.50056f, 0.459531f, 0.192332f, 0.799059f, 0.620209f, 0.0882766f, 0.796886f, 0.388648f, 0.695499f, 0.480631f, 0.975325f, 0.396253f, 0.0500061f, 0.13329f, 0.765852f, 0.0275982f, 0.229545f, 0.748629f, 0.612383f, 0.47132f, 0.918444f, 0.708658f, 0.247371f, 0.20317f, 0.415411f, 0.336757f, 0.971761f, 0.460052f, 0.458069f, 0.410259f, 0.624179f, 0.843347f, 0.588644f, 0.281138f, 0.400356f, 0.0439346f, 0.376624f, 0.92801f, 0.287149f, 0.0609871f, 0.665996f, 0.503455f, 0.746663f, 0.532239f, 0.642501f, 0.791451f, 0.560526f, 0.943232f, 0.384689f, 0.512636f, 0.507541f, 0.274697f, 0.559578f, 0.340455f, 0.13262f, 0.318885f, 0.441004f, 0.668159f, 0.0839833f, 0.894819f, 0.141383f, 0.158399f, 0.78188f, 0.923151f, 0.0128941f, 0.374007f, 0.77666f, 0.876198f, 0.389595f, 0.0871047f, 0.996259f, 0.845139f, 0.687196f, 0.121923f, 0.445344f, 0.963142f, 0.117184f, 0.909071f, 0.582335f, 0.0248982f, 0.273772f, 0.864425f, 0.652238f, 0.678229f, 0.549301f, 0.430469f, 0.432778f, 0.972329f, 0.0430739f, 0.230677f, 0.378969f, 0.770843f, 0.571774f, 0.253866f, 0.232173f, 0.771504f, 0.379452f, 0.650724f, 0.885934f, 0.759265f, 0.685853f, 0.209983f, 0.991538f, 0.312572f, 0.124554f, 0.93123f, 0.465089f, 0.426527f, 0.364899f, 0.444177f, 0.538276f, 0.981309f, 0.509641f, 0.680088f, 0.688518f, 0.722841f, 0.0184349f, 0.955936f, 0.817036f, 0.412555f, 0.0763725f, 0.523845f, 0.00403837f, 0.786148f, 0.962713f, 0.0550463f, 0.960108f, 0.411254f, 0.537216f, 0.32681f, 0.10792f, 0.477548f, 0.262875f, 0.423429f, 0.898253f, 0.690482f, 0.871238f, 0.569451f, 0.48595f, 0.927744f, 0.389064f, 0.480579f, 0.610086f, 0.339745f, 0.967366f, 0.247182f, 0.629689f, 0.479802f, 0.289142f, 0.957839f, 0.290307f, 0.0344763f, 0.25645f, 0.200464f, 0.654806f, 0.617545f, 0.408059f, 0.304512f, 0.925965f, 0.838382f, 0.373956f, 0.633223f, 0.619079f, 0.148073f, 0.118666f, 0.443222f, 0.432855f, 0.885924f, 0.148833f, 0.787847f, 0.239637f, 0.871192f, 0.984566f, 0.623271f, 0.487293f, 0.0352336f, 0.457538f, 0.928901f, 0.850248f, 0.431738f, 0.36331f, 0.645589f, 0.498171f, 0.794208f, 0.0849365f, 0.527237f, 0.767714f, 0.328182f, 0.374523f, 0.444516f, 0.0559615f, 0.0419167f, 0.845386f, 0.5857f, 0.865954f, 0.0309568f, 0.453031f, 0.00774489f, 0.474677f, 0.424881f, 0.425867f, 0.606955f, 0.713672f, 0.567942f, 0.640633f, 0.780415f, 0.581821f, 0.848634f, 0.775869f, 0.71623f, 0.997316f, 0.584945f, 0.828567f, 0.808222f, 0.0395258f, 0.594642f, 0.764727f, 0.997978f, 0.24524f, 0.373046f, 0.176825f, 0.308495f, 0.766623f, 0.467008f, 0.606107f, 0.288612f, 0.231055f, 0.808635f, 0.472013f, 0.368067f, 0.696817f, 0.278501f, 0.101347f, 0.0829357f, 0.6004f, 0.215608f, 0.368665f, 0.846323f, 0.0981594f, 0.313847f, 0.433136f, 0.689086f, 0.824282f, 0.727438f, 0.108271f, 0.748229f, 0.337563f, 0.425716f, 0.868851f, 0.180594f, 0.860347f, 0.978163f, 0.191819f, 0.936035f, 0.873956f, 0.588142f, 0.240084f, 0.282904f, 0.998058f, 0.115019f, 0.666553f, 0.573109f, 0.651596f, 0.736717f, 0.175013f, 0.603761f, 0.50385f, 0.607941f, 0.0299177f, 0.993083f, 0.388408f, 0.654143f, 0.231389f, 0.166839f, 0.313691f, 0.212742f, 0.345719f, 0.653166f, 0.239532f, 0.048652f, 0.463448f, 0.442667f, 0.648099f, 0.0208802f, 0.614332f, 0.737179f, 0.167007f, 0.0763713f, 0.533591f, 0.268109f, 0.492427f, 0.375391f, 0.681049f, 0.606853f, 0.139883f, 0.105637f, 0.76219f, 0.468941f, 0.0529323f, 0.828829f, 0.937117f, 0.433731f, 0.289874f, 0.892131f, 0.19397f, 0.0132927f, 0.35071f, 0.709076f, 0.9679f, 0.341529f, 0.348603f, 0.415816f, 0.228108f, 0.488989f, 0.333788f, 0.161957f, 0.570714f, 0.508283f, 0.465879f, 0.277558f, 0.794945f, 0.0121472f, 0.427985f, 0.665044f, 0.833469f, 0.94267f, 0.33806f, 0.285193f, 0.723311f, 0.974406f, 0.695304f, 0.460532f, 0.675224f, 0.0901268f, 0.647891f, 0.962078f, 0.758498f, 0.0277073f, 0.980495f, 0.884625f, 0.0327249f, 0.768726f, 0.724125f, 0.745225f, 0.00158805f, 0.938205f, 0.606819f, 0.742826f, 0.255673f, 0.421963f, 0.371387f, 0.432566f, 0.0239052f, 0.885388f, 0.181065f, 0.920133f, 0.506331f, 0.233921f, 0.168982f, 0.561517f, 0.58763f, 0.431242f, 0.487615f, 0.745375f, 0.371755f, 0.775379f, 0.290286f, 0.498143f, 0.0404679f, 0.00843829f, 0.488149f, 0.801368f, 0.606526f, 0.118841f, 0.488715f, 0.458259f, 0.900423f, 0.257545f, 0.743129f, 0.0907666f, 0.986963f, 0.369976f, 0.607443f, 0.651521f, 0.900842f, 0.618528f, 0.100974f, 0.442052f, 0.61976f, 0.560051f, 0.24266f, 0.150083f, 0.436379f, 0.095813f, 0.079459f, 0.791146f, 0.850643f, 0.11496f, 0.0699083f, 0.143467f, 0.054094f, 0.287862f, 0.368917f, 0.665334f, 0.278383f, 0.762243f, 0.453091f, 0.861052f, 0.862359f, 0.418895f, 0.373134f, 0.0971329f, 0.264926f, 0.75727f, 0.858821f, 0.427618f, 0.914274f, 0.467849f, 0.919047f, 0.172397f, 0.16596f, 0.326933f, 0.489623f, 0.439691f, 0.747162f, 0.803337f, 0.862075f, 0.27494f, 0.90832f, 0.0928894f, 0.0353712f, 0.627672f, 0.297624f, 0.423108f, 0.926387f, 0.606557f, 0.590447f, 0.809819f, 0.79839f, 0.624967f, 0.974975f, 0.336289f, 0.424392f, 0.353217f, 0.555949f, 0.801565f, 0.237361f, 0.818772f, 0.767745f, 0.706867f, 0.786984f, 0.367558f, 0.697085f, 0.95369f, 0.782313f, 0.901393f, 0.802397f, 0.979802f, 0.53119f, 0.431988f, 0.473957f, 0.278091f, 0.577054f, 0.561467f, 0.278046f, 0.484842f, 0.798062f, 0.523014f, 0.887974f, 0.549188f, 0.264482f, 0.967209f, 0.439549f, 0.287108f, 0.489645f, 0.0468009f, 0.576898f, 0.975522f, 0.720684f, 0.754914f, 0.227268f, 0.352387f, 0.928097f, 0.0313694f, 0.258029f, 0.241354f, 0.0709821f, 0.954653f, 0.0894702f, 0.356928f, 0.676296f, 0.919929f, 0.793819f, 0.761619f, 0.742586f, 0.677755f, 0.631662f, 0.690294f, 0.528917f, 0.844844f, 0.386891f, 0.451643f, 0.894426f, 0.152653f, 0.988929f, 0.4543f, 0.766829f, 0.82622f, 0.360857f, 0.88979f, 0.438321f, 0.147023f, 0.0806725f, 0.995685f, 0.463487f, 0.953199f, 0.289579f, 0.808851f, 0.146665f, 0.745513f, 0.231612f, 0.838304f, 0.10183f, 0.286207f, 0.882168f, 0.532409f, 0.477905f, 0.540575f, 0.873101f, 0.190819f, 0.497637f, 0.655335f, 0.32515f, 0.904345f, 0.330202f, 0.743194f, 0.143097f, 0.0565959f, 0.044624f, 0.519861f, 0.108242f, 0.282962f, 0.533308f, 0.237235f, 0.289047f, 0.0643234f, 0.0227788f, 0.75774f, 0.990309f, 0.354389f, 0.394248f, 0.485096f, 0.0518331f, 0.175479f, 0.0172035f, 0.918304f, 0.83998f, 0.294807f, 0.139766f, 0.63909f, 0.766865f, 0.331524f, 0.178873f, 0.858263f, 0.104528f, 0.506799f, 0.25516f, 0.0557155f, 0.0896441f, 0.476819f, 0.0679275f, 0.523957f, 0.623747f, 0.101086f, 0.707701f, 0.347366f, 0.40146f, 0.926623f, 0.793363f, 0.5183f, 0.353883f, 0.0170278f, 0.550552f, 0.566898f, 0.761358f, 0.969432f, 0.0830791f, 0.409803f, 0.233851f, 0.461094f, 0.61238f, 0.663356f, 0.838447f, 0.0936641f, 0.896317f, 0.0342364f, 0.605435f, 0.594078f, 0.142495f, 0.224693f, 0.266037f, 0.968376f, 0.250094f, 0.634636f, 0.152495f, 0.374344f, 0.766249f, 0.514728f, 0.236246f, 0.394472f, 0.714031f, 0.394143f, 0.298254f, 0.706938f, 0.16714f, 0.651014f, 0.933411f, 0.678186f, 0.666454f, 0.357514f, 0.694775f, 0.693118f, 0.67172f, 0.198115f, 0.332186f, 0.629232f, 0.784186f, 0.37814f, 0.771727f, 0.447776f, 0.705953f, 0.496304f, 0.814896f, 0.656693f, 0.53542f, 0.261516f, 0.406417f, 0.531009f, 0.0275669f, 0.448455f, 0.680984f, 0.772053f, 0.665164f, 0.644186f, 0.270284f, 0.949715f, 0.977336f, 0.2282f, 0.113808f, 0.547055f, 0.59781f, 0.00346764f, 0.659073f, 0.967426f, 0.723033f, 0.570098f, 0.959023f, 0.758847f, 0.0443661f, 0.329846f, 0.180227f, 0.640039f, 0.418957f, 0.31487f, 0.171225f, 0.359142f, 0.663463f, 0.0361466f, 0.466258f, 0.355709f, 0.0728117f, 0.0561539f, 0.302612f, 0.966088f, 0.312772f, 0.572468f, 0.950502f, 0.140537f, 0.804575f, 0.143191f, 0.554696f, 0.31913f, 0.313319f, 0.415355f, 0.557689f, 0.868706f, 0.568624f, 0.322493f, 0.960727f, 0.800806f, 0.97337f, 0.636029f, 0.854868f, 0.0316508f, 0.537545f, 0.62288f, 0.126693f, 0.638876f, 0.22898f, 0.88884f, 0.322239f, 0.408508f, 0.876548f, 0.283979f, 0.229775f, 0.197694f, 0.756162f, 0.605596f, 0.475759f, 0.716177f, 0.313979f, 0.824405f, 0.431531f, 0.93625f, 0.29437f, 0.57963f, 0.942052f, 0.0665976f, 0.532284f, 0.782766f, 0.899503f, 0.601734f, 0.974714f, 0.453663f, 0.399994f, 0.601611f, 0.0351596f, 0.350032f, 0.950207f, 0.964415f, 0.958216f, 0.639434f, 0.420463f, 0.185442f, 0.382668f, 0.504688f, 0.523907f, 0.402958f, 0.790744f, 0.411467f, 0.731239f, 0.899588f, 0.0667593f, 0.528711f, 0.85476f, 0.116003f, 0.922713f, 0.609319f, 0.224816f, 0.243179f, 0.699852f, 0.437211f, 0.993828f, 0.434946f, 0.0437369f, 0.40611f, 0.188708f, 0.147626f, 0.956368f, 0.375801f, 0.739141f, 0.0106513f, 0.877191f, 0.48731f, 0.898436f, 0.833442f, 0.862006f, 0.301964f, 0.148368f, 0.151504f, 0.407424f, 0.449227f, 0.149134f, 0.118857f, 0.88912f, 0.176878f, 0.699557f, 0.496226f, 0.442326f, 0.930008f, 0.922029f, 0.961842f, 0.763233f, 0.817566f, 0.59639f, 0.0646593f, 0.537041f, 0.860439f, 0.801642f, 0.030929f, 0.190828f, 0.41728f, 0.622681f, 0.632888f, 0.59156f, 0.769584f, 0.37493f, 0.17385f, 0.0626788f, 0.304964f, 0.374021f, 0.53998f, 0.688026f, 0.732396f, 0.682658f, 0.778569f, 0.658455f, 0.541922f, 0.944647f, 0.193992f, 0.347534f, 0.954737f, 0.226359f, 0.606846f, 0.259203f, 0.525089f, 0.554629f, 0.911144f, 0.761243f, 0.814348f, 0.641373f, 0.946439f, 0.316011f, 0.114762f, 0.534172f, 0.192506f, 0.241857f, 0.392134f, 0.60636f, 0.854794f, 0.805252f, 0.409614f, 0.612887f, 0.123575f, 0.839406f, 0.302633f, 0.649842f, 0.0356233f, 0.742045f, 0.413918f, 0.745436f, 0.459173f, 0.297346f, 0.169182f, 0.793266f, 0.0856126f, 0.935399f, 0.235959f, 0.10074f, 0.654248f, 0.0952724f, 0.663783f, 0.996306f, 0.709982f, 0.905973f, 0.888761f, 0.720037f, 0.25771f, 0.848951f, 0.976113f, 0.63487f, 0.565978f, 0.908386f, 0.273005f, 0.848013f, 0.978949f, 0.908749f, 0.601055f, 0.186663f, 0.992795f, 0.425448f, 0.967182f, 0.602136f, 0.643628f, 0.0584813f, 0.460012f, 0.448426f, 0.171141f, 0.556465f, 0.580555f, 0.872362f, 0.449653f, 0.156139f, 0.212328f, 0.998929f, 0.847401f, 0.504401f, 0.516766f, 0.571697f, 0.217583f, 0.222284f, 0.213078f, 0.647338f, 0.673887f, 0.426729f, 0.308536f, 0.755475f, 0.114233f, 0.132511f, 0.801619f, 0.337967f, 0.596502f, 0.243033f, 0.0515908f, 0.982832f, 0.349651f, 0.427672f, 0.97232f, 0.259496f, 0.291335f, 0.570966f, 0.664706f, 0.301763f, 0.633364f, 0.54933f, 0.877609f, 0.125295f, 0.984686f, 0.28117f, 0.886473f, 0.218579f, 0.323286f, 0.287905f, 0.880335f, 0.559238f, 0.726381f, 0.238366f, 0.41792f, 0.995409f, 0.322266f, 0.0953773f, 0.446585f, 0.0716302f, 0.721718f, 0.746432f, 0.961932f, 0.112667f, 0.757459f, 0.654223f, 0.848422f, 0.697044f, 0.423866f, 0.929048f, 0.111573f, 0.582656f, 0.0200577f, 0.44937f, 0.553144f, 0.74263f, 0.794523f, 0.830143f, 0.740351f, 0.741544f, 0.356784f, 0.963254f, 0.15918f, 0.939537f, 0.80688f, 0.237186f, 0.190782f, 0.558923f, 0.615213f, 0.293705f, 0.904548f, 0.79284f, 0.185429f, 0.00810836f, 0.721038f, 0.564903f, 0.268942f, 0.257018f, 0.0530519f, 0.527247f, 0.920222f, 0.820124f, 0.111895f, 0.109811f, 0.587158f, 0.429519f, 0.591644f, 0.254192f, 0.350801f, 0.299972f, 0.882022f, 0.817647f, 0.633054f, 0.606266f, 0.990079f, 0.139097f, 0.724972f, 0.0772518f, 0.67211f, 0.700957f, 0.202332f, 0.481672f, 0.90614f, 0.310924f, 0.19062f, 0.0712553f, 0.00612124f, 0.782944f, 0.0744189f, 0.0263658f, 0.305614f, 0.248776f, 0.0458998f, 0.260601f, 0.555472f, 0.221336f, 0.49202f, 0.110911f, 0.618794f, 0.414334f, 0.752921f, 0.870457f, 0.343256f, 0.218376f, 0.154645f, 0.757857f, 0.652319f, 0.890323f, 0.629723f, 0.101674f, 0.783192f, 0.0596106f, 0.144572f, 0.474774f, 0.174112f, 0.195932f, 0.493227f, 0.112646f, 0.996225f, 0.134407f, 0.881545f, 0.450861f, 0.310567f, 0.509461f, 0.521029f, 0.269803f, 0.897753f, 0.0652435f, 0.791288f, 0.408702f, 0.77576f, 0.4061f, 0.034406f, 0.302217f, 0.270236f, 0.168705f, 0.992101f, 0.521785f, 0.662134f, 0.308386f, 0.196541f, 0.663632f, 0.98909f, 0.146276f, 0.0388228f, 0.705712f, 0.244185f, 0.845867f, 0.113058f, 0.0871161f, 0.212426f, 0.379537f, 0.207442f, 0.889858f, 0.125029f, 0.596035f, 0.0982994f, 0.452979f, 0.313197f, 0.208453f, 0.313032f, 0.181714f, 0.725375f, 0.158508f, 0.79157f, 0.0516266f, 0.233432f, 0.884625f, 0.536409f, 0.56068f, 0.00272319f, 0.409232f, 0.628506f, 0.806752f, 0.458667f, 0.292f, 0.469911f, 0.616007f, 0.0677015f, 0.479823f, 0.237522f, 0.375919f, 0.311802f, 0.41963f, 0.361113f, 0.739867f, 0.799933f, 0.920616f, 0.868819f, 0.0492135f, 0.805827f, 0.348683f, 0.735856f, 0.439831f, 0.48462f, 0.648015f, 0.52143f, 0.919378f, 0.641207f, 0.362818f, 0.585762f, 0.655237f, 0.825461f, 0.45015f, 0.102988f, 0.989794f, 0.264378f, 0.935502f, 0.861179f, 0.704196f, 0.414725f, 0.944714f, 0.172455f, 0.303253f, 0.816398f, 0.279285f, 0.905868f, 0.659504f, 0.811797f, 0.745049f, 0.5312f, 0.853933f, 0.334082f, 0.541627f, 0.242702f, 0.347521f, 0.889458f, 0.0294332f, 0.984726f, 0.996691f, 0.67806f, 0.496936f, 0.548464f, 0.973525f, 0.839863f, 0.0487781f, 0.111969f, 0.466638f, 0.886713f, 0.965632f, 0.976538f, 0.292486f, 0.660092f, 0.255806f, 0.0997183f, 0.0844828f, 0.432525f, 0.930895f, 0.808542f, 0.374321f, 0.418907f, 0.145023f, 0.238337f, 0.621779f, 0.647911f, 0.408323f, 0.110784f, 0.680445f, 0.167629f, 0.633968f, 0.38811f, 0.445281f, 0.0107516f, 0.489654f, 0.885342f, 0.587052f, 0.0225841f, 0.976548f, 0.129556f, 0.56597f, 0.102489f, 0.432207f, 0.743853f, 0.120321f, 0.494494f, 0.225072f, 0.224017f, 0.395315f, 0.257046f, 0.387203f, 0.423059f, 0.554966f, 0.737481f, 0.377376f, 0.489935f, 0.173226f, 0.861628f, 0.0333025f, 0.0932294f, 0.00671683f, 0.827265f, 0.663642f, 0.540409f, 0.99617f, 0.725174f, 0.190944f, 0.728644f, 0.579892f, 0.748321f, 0.617871f, 0.130579f, 0.245324f, 0.203039f, 0.821786f, 0.0717586f, 0.704972f, 0.966078f, 0.898646f, 0.398553f, 0.973942f, 0.461521f, 0.0644376f, 0.30631f, 0.383316f, 0.891258f, 0.259913f, 0.169668f, 0.714982f, 0.615635f, 0.559467f, 0.616616f, 0.770833f, 0.169926f, 0.388598f, 0.208993f, 0.278535f, 0.554226f, 0.0827589f, 0.706816f, 0.126392f, 0.690821f, 0.676062f, 0.121265f, 0.896982f, 0.0388845f, 0.670777f, 0.708964f, 0.994758f, 0.341129f, 0.37529f, 0.101514f, 0.153307f, 0.842892f, 0.477475f, 0.0283206f, 0.947715f, 0.905052f, 0.0397956f, 0.738682f, 0.0172491f, 0.398329f, 0.207674f, 0.819838f, 0.503421f, 0.781826f, 0.135193f, 0.294824f, 0.816439f, 0.763956f, 0.720865f, 0.834563f, 0.162494f, 0.301494f, 0.10709f, 0.370368f, 0.927791f, 0.500762f, 0.14252f, 0.741825f, 0.278368f, 0.0206278f, 0.182151f, 0.971885f, 0.137581f, 0.483364f, 0.384977f, 0.696589f, 0.340396f, 0.745152f, 0.802406f, 0.203352f, 0.919363f, 0.753524f, 0.372803f, 0.449986f, 0.696786f, 0.535036f, 0.499219f, 0.0314585f, 0.647437f, 0.727908f, 0.921411f, 0.32227f, 0.957174f, 0.272344f, 0.282078f, 0.445171f, 0.144022f, 0.299585f, 0.813071f, 0.678695f, 0.567202f, 0.812063f, 0.405263f, 0.9f, 0.992405f, 0.396305f, 0.92526f, 0.276566f, 0.546944f, 0.75437f, 0.531069f, 0.586935f, 0.916611f, 0.137257f, 0.828234f, 0.0554768f, 0.450604f, 0.998812f, 0.294749f, 0.163121f, 0.282978f, 0.334924f, 0.259305f, 0.15947f, 0.0787569f, 0.754918f, 0.886703f, 0.0111505f, 0.906784f, 0.050589f, 0.22299f, 0.066966f, 0.374187f, 0.169991f, 0.0816437f, 0.170185f, 0.882675f, 0.270558f, 0.0356211f, 0.376503f, 0.715536f, 0.350391f, 0.162741f, 0.288581f, 0.635397f, 0.566589f, 0.534105f, 0.475434f, 0.178913f, 0.928208f, 0.252494f, 0.615583f, 0.251827f, 0.19447f, 0.961938f, 0.305609f, 0.593316f, 0.847266f, 0.744115f, 0.612543f, 0.24277f, 0.20847f, 0.477976f, 0.0518278f, 0.0152872f, 0.631431f, 0.0549163f, 0.328825f, 0.59685f, 0.558903f, 0.683194f, 0.255128f, 0.115275f, 0.952675f, 0.264164f, 0.193556f, 0.246357f, 0.198612f, 0.681457f, 0.270092f, 0.714036f, 0.817953f, 0.636855f, 0.283205f, 0.131918f, 0.841106f, 0.123482f, 0.028812f, 0.995828f, 0.384277f, 0.843682f, 0.764375f, 0.567424f, 0.941897f, 0.951325f, 0.18631f, 0.667919f, 0.738847f, 0.62275f, 0.964064f, 0.995357f, 0.425137f, 0.906932f, 0.688342f, 0.0471274f, 0.164173f, 0.310808f, 0.0994296f, 0.318221f, 0.293541f, 0.00581898f, 0.87577f, 0.906742f, 0.498474f, 0.178821f, 0.302167f, 0.0999429f, 0.135979f, 0.0169123f, 0.183307f, 0.073467f, 0.511984f, 0.389584f, 0.422023f, 0.548747f, 0.496203f, 0.820108f, 0.837884f, 0.0116966f, 0.75667f, 0.306426f, 0.446261f, 0.740293f, 0.0617691f, 0.731056f, 0.921502f, 0.111565f, 0.553342f, 0.90181f, 0.588966f, 0.899782f, 0.838532f, 0.548925f, 0.626024f, 0.59153f, 0.869307f, 0.331242f, 0.0256317f, 0.757944f, 0.374959f, 0.695617f, 0.340961f, 0.834587f, 0.998895f, 0.879709f, 0.437381f, 0.99448f, 0.735159f, 0.659503f, 0.5298f, 0.93604f, 0.186548f, 0.0753599f, 0.32131f, 0.252669f, 0.101402f, 0.651554f, 0.885193f, 0.0628296f, 0.919042f, 0.110233f, 0.70135f, 0.309103f, 0.884887f, 0.243368f, 0.720378f, 0.0672109f, 0.523772f, 0.270488f, 0.307305f, 0.263874f, 0.70498f, 0.464827f, 0.695951f, 0.914524f, 0.0221541f, 0.287136f, 0.3114f, 0.389098f, 0.385562f, 0.975716f, 0.170828f, 0.217957f, 0.927547f, 0.910391f, 0.653454f, 0.0758241f, 0.820644f, 0.0665078f, 0.110731f, 0.882233f, 0.20648f, 0.952657f, 0.32112f, 0.952035f, 0.224238f, 0.927685f, 0.680405f, 0.139316f, 0.378105f, 0.381615f, 0.594834f, 0.471939f, 0.408969f, 0.491383f, 0.454735f, 0.768353f, 0.353205f, 0.80698f, 0.251159f, 0.0118578f, 0.266174f, 0.961116f, 0.670582f, 0.62263f, 0.503359f, 0.857653f, 0.182818f, 0.4892f, 0.803616f, 0.218005f, 0.743287f, 0.0763764f, 0.908062f, 0.328088f, 0.842997f, 0.59184f, 0.559818f, 0.0614147f, 0.159875f, 0.489821f, 0.744524f, 0.82447f, 0.809519f, 0.875425f, 0.67424f, 0.938252f, 0.527641f, 0.235542f, 0.700584f, 0.430199f, 0.964745f, 0.731701f, 0.342589f, 0.0273191f, 0.0354802f, 0.294863f, 0.263651f, 0.030499f, 0.501893f, 0.769643f, 0.211326f, 0.584002f, 0.80953f, 0.341599f, 0.308817f, 0.438602f, 0.993219f, 0.346702f, 0.457499f, 0.414148f, 0.882384f, 0.855597f, 0.0641278f, 0.42825f, 0.273324f, 0.4623f, 0.668859f, 0.63831f, 0.857007f, 0.845658f, 0.146669f, 0.211893f, 0.502162f, 0.799475f, 0.65045f, 0.305315f, 0.274964f, 0.182841f, 0.954136f, 0.463376f, 0.834691f, 0.0184708f, 0.398692f, 0.864279f, 0.953113f, 0.890904f, 0.333008f, 0.215403f, 0.375784f, 0.95605f, 0.383674f, 0.378765f, 0.405168f, 0.171666f, 0.545179f, 0.669923f, 0.384985f, 0.801676f, 0.350565f, 0.00337708f, 0.631043f, 0.0519745f, 0.71121f, 0.642583f, 0.145279f, 0.712888f, 0.284956f, 0.0921465f, 0.577798f, 0.34649f, 0.937083f, 0.929081f, 0.612238f, 0.490393f, 0.0424106f, 0.599653f, 0.707806f, 0.804232f, 0.965361f, 0.327246f, 0.666762f, 0.021784f, 0.682931f, 0.681838f, 0.0724264f, 0.205187f, 0.668736f, 0.473539f, 0.961394f, 0.729708f, 0.024514f, 0.566873f, 0.497288f, 0.558562f, 0.138497f, 0.941736f, 0.972125f, 0.111753f, 0.288791f, 0.912262f, 0.559286f, 0.185214f, 0.7715f, 0.989913f, 0.376245f, 0.060584f, 0.154194f, 0.978276f, 0.882586f, 0.0247684f, 0.738887f, 0.630539f, 0.190555f, 0.525523f, 0.83807f, 0.291769f, 0.91042f, 0.282253f, 0.921474f, 0.0236699f, 0.277483f, 0.104831f, 0.939341f, 0.476085f, 0.689769f, 0.736036f, 0.206843f, 0.382487f, 0.0348795f, 0.177103f, 0.91728f, 0.838084f, 0.137021f, 0.733489f, 0.526792f, 0.589004f, 0.574598f, 0.165783f, 0.880822f, 0.0123784f, 0.288395f, 0.101822f, 0.0803773f, 0.335963f, 0.638068f, 0.233806f, 0.417383f, 0.952079f, 0.606481f, 0.817961f, 0.921173f, 0.70529f, 0.132949f, 0.366304f, 0.157502f, 0.788171f, 0.456362f, 0.934255f, 0.467461f, 0.616087f, 0.431466f, 0.0107934f, 0.0281284f, 0.125773f, 0.648653f, 0.462969f, 0.850999f, 0.108886f, 0.269924f, 0.958876f, 0.0607822f, 0.377576f, 0.0159777f, 0.215239f, 0.551793f, 0.605937f, 0.769733f, 0.902639f, 0.422435f, 0.850766f, 0.738137f, 0.242012f, 0.739853f, 0.295256f, 0.072313f, 0.00499006f, 0.134117f, 0.0619816f, 0.384254f, 0.779899f, 0.414359f, 0.0622828f, 0.868238f, 0.879185f, 0.720135f, 0.599743f, 0.67316f, 0.627264f, 0.788426f, 0.520692f, 0.77885f, 0.521608f, 0.419226f, 0.125957f, 0.948685f, 0.456223f, 0.122047f, 0.968073f, 0.745772f, 0.0444724f, 0.404498f, 0.703905f, 0.553675f, 0.332f, 0.936517f, 0.608138f, 0.651625f, 0.525357f, 0.0418359f, 0.896627f, 0.0912335f, 0.267571f, 0.553597f, 0.354797f, 0.241745f, 0.338559f, 0.066604f, 0.0190339f, 0.894f, 0.586077f, 0.766166f, 0.435573f, 0.00517216f, 0.644431f, 0.920422f, 0.30956f, 0.739591f, 0.614317f, 0.153654f, 0.314762f, 0.737547f, 0.413188f, 0.764076f, 0.930615f, 0.109515f, 0.146156f, 0.669901f, 0.704036f, 0.444418f, 0.162992f, 0.974594f, 0.71312f, 0.0301947f, 0.153717f, 0.411245f, 0.950341f, 0.164568f, 0.687654f, 0.521892f, 0.639889f, 0.277799f, 0.0132736f, 0.157706f, 0.910418f, 0.936465f, 0.573647f, 0.267704f, 0.00714697f, 0.182185f, 0.741549f, 0.475334f, 0.28607f, 0.674605f, 0.105207f, 0.667732f, 0.472204f, 0.297792f, 0.955608f, 0.137354f, 0.581651f, 0.0227979f, 0.434107f, 0.593207f, 0.117993f, 0.382285f, 0.578991f, 0.00468433f, 0.489849f, 0.482814f, 0.601705f, 0.784944f, 0.687895f, 0.809286f, 0.503371f, 0.224533f, 0.982967f, 0.935806f, 0.83864f, 0.765722f, 0.78486f, 0.255872f, 0.573153f, 0.57346f, 0.666158f, 0.0866073f, 0.608673f, 0.8369f, 0.802918f, 0.380381f, 0.80692f, 0.930134f, 0.545355f, 0.826637f, 0.0235991f, 0.296427f, 0.264481f, 0.0334558f, 0.940874f, 0.644491f, 0.145155f, 0.931148f, 0.516667f, 0.737245f, 0.426548f, 0.456089f, 0.275857f, 0.826369f, 0.0312548f, 0.162226f, 0.835581f, 0.0551627f, 0.235584f, 0.737127f, 0.757186f, 0.535057f, 0.388136f, 0.804533f, 0.520342f, 0.239397f, 0.0111184f, 0.886874f, 0.671199f, 0.0102062f, 0.525171f, 0.54132f, 0.197769f, 0.966243f, 0.242902f, 0.30363f, 0.483834f, 0.420135f, 0.799298f, 0.688168f, 0.079587f, 0.545242f, 0.378923f, 0.388659f, 0.544782f, 0.562912f, 0.756239f, 0.241471f, 0.084162f, 0.917187f, 0.724327f, 0.594817f, 0.357432f, 0.197771f, 0.421488f, 0.60364f, 0.153701f, 0.216854f, 0.854795f, 0.793797f, 0.864704f, 0.249874f, 0.392237f, 0.0893547f, 0.126951f, 0.162292f, 0.348888f, 0.104106f, 0.459023f, 0.360549f, 0.225123f, 0.619885f, 0.556321f, 0.533507f, 0.369956f, 0.707384f, 0.00900924f, 0.571209f, 0.369161f, 0.433963f, 0.125497f, 0.447801f, 0.998385f, 0.00721151f, 0.596754f, 0.198993f, 0.544076f, 0.256515f, 0.824956f, 0.395937f, 0.82036f, 0.724246f, 0.274992f, 0.931312f, 0.211844f, 0.888995f, 0.567783f, 0.403347f, 0.0233643f, 0.305413f, 0.18654f, 0.202946f, 0.277751f, 0.00679857f, 0.621933f, 0.714503f, 0.903398f, 0.857239f, 0.841092f, 0.167112f, 0.2957f, 0.53974f, 0.124685f, 0.303459f, 0.940138f, 0.0796079f, 0.508971f, 0.384426f, 0.855042f, 0.285243f, 0.549414f, 0.476934f, 0.781292f, 0.48505f, 0.27334f, 0.0602828f, 0.829215f, 0.457946f, 0.466487f, 0.246539f, 0.81927f, 0.426943f, 0.114767f, 0.780408f, 0.16347f, 0.0984895f, 0.877369f, 0.457513f, 0.212888f, 0.284341f, 0.487792f, 0.509021f, 0.895808f, 0.76787f, 0.440658f, 0.363798f, 0.681661f, 0.474451f, 0.600067f, 0.954591f, 0.0890766f, 0.730658f, 0.224916f, 0.921279f, 0.376547f, 0.260774f, 0.601968f, 0.4237f, 0.739528f, 0.145402f, 0.41468f, 0.152907f, 0.47141f, 0.119075f, 0.273265f, 0.950216f, 0.55966f, 0.968888f, 0.939802f, 0.776441f, 0.668253f, 0.771813f, 0.722996f, 0.23648f, 0.343948f, 0.347981f, 0.552765f, 0.375207f, 0.924972f, 0.592547f, 0.508824f, 0.496403f, 0.0940674f, 0.944428f, 0.56447f, 0.301115f, 0.889245f, 0.0223575f, 0.763835f, 0.267003f, 0.500808f, 0.824617f, 0.838881f, 0.944627f, 0.496405f, 0.14692f, 0.315796f, 0.77764f, 0.240432f, 0.306096f, 0.292526f, 0.296885f, 0.373744f, 0.346349f, 0.322487f, 0.883683f, 0.16284f, 0.0647008f, 0.329655f, 0.410038f, 0.560839f, 0.828523f, 0.851761f, 0.369957f, 0.864426f, 0.871436f, 0.0633008f, 0.16101f, 0.615145f, 0.148793f, 0.322985f, 0.330853f, 0.868008f, 0.43142f, 0.811799f, 0.135211f, 0.458559f, 0.108207f, 0.695897f, 0.315194f, 0.637078f, 0.563875f, 0.597988f, 0.427874f, 0.689716f, 0.471646f, 0.725956f, 0.622428f, 0.471164f, 0.823061f, 0.505723f, 0.297301f, 0.0265635f, 0.527678f, 0.743072f, 0.48214f, 0.138272f, 0.398495f, 0.0859242f, 0.460059f, 0.942352f, 0.898106f, 0.798673f, 0.187484f, 0.357981f, 0.431898f, 0.41474f, 0.394494f, 0.884989f, 0.993217f, 0.713402f, 0.680949f, 0.753447f, 0.262199f, 0.475949f, 0.581497f, 0.997133f, 0.387826f, 0.403276f, 0.275721f, 0.380806f, 0.209255f, 0.60866f, 0.623474f, 0.543617f, 0.241541f, 0.425924f, 0.428409f, 0.397315f, 0.09587f, 0.620919f, 0.126089f, 0.38629f, 0.610477f, 0.374492f, 0.338553f, 0.218924f, 0.806786f, 0.832234f, 0.80869f, 0.294897f, 0.376391f, 0.153017f, 0.653983f, 0.208456f, 0.726007f, 0.602219f, 0.791533f, 0.33923f, 0.97356f, 0.577972f, 0.265774f, 0.206974f, 0.962825f, 0.950871f, 0.0578961f, 0.610349f, 0.646963f, 0.375467f, 0.729135f, 0.546659f, 0.170292f, 0.332371f, 0.710321f, 0.522126f, 0.0930859f, 0.264027f, 0.470624f, 0.581995f, 0.676597f, 0.280836f, 0.689249f, 0.787284f, 0.949667f, 0.642154f, 0.417964f, 0.455748f, 0.208287f, 0.859757f, 0.481885f, 0.804135f, 0.056898f, 0.693433f, 0.160249f, 0.837059f, 0.0546828f, 0.798152f, 0.839746f, 0.605187f, 0.183213f, 0.2599f, 0.383068f, 0.851459f, 0.306443f, 0.309147f, 0.0381959f, 0.719869f, 0.242022f, 0.22479f, 0.994963f, 0.366324f, 0.717579f, 0.217008f, 0.431604f, 0.594694f, 0.624695f, 0.814518f, 0.961515f, 0.475361f, 0.578813f, 0.84533f, 0.305233f, 0.0790036f, 0.658456f, 0.686757f, 0.567089f, 0.792823f, 0.831184f, 0.937264f, 0.764091f, 0.679602f, 0.0103403f, 0.948929f, 0.241996f, 0.657831f, 0.453863f, 0.714861f, 0.241192f, 0.924878f, 0.632439f, 0.105144f, 0.788324f, 0.810018f, 0.210902f, 0.550243f, 0.486251f, 0.0913733f, 0.798959f, 0.194691f, 0.411302f, 0.279607f, 0.577979f, 0.719798f, 0.638684f, 0.17349f, 0.298712f, 0.993729f, 0.441379f, 0.844718f, 0.685629f, 0.455068f, 0.330483f, 0.265889f, 0.368193f, 0.0688269f, 0.138687f, 0.627119f, 0.355442f, 0.805071f, 0.807763f, 0.673589f, 0.000873119f, 0.0354007f, 0.230154f, 0.831104f, 0.833678f, 0.469663f, 0.214547f, 0.758954f, 0.590854f, 0.341966f, 0.875465f, 0.478901f, 0.2021f, 0.666199f, 0.600773f, 0.00324002f, 0.554362f, 0.686026f, 0.908726f, 0.46423f, 0.77122f, 0.838512f, 0.157614f, 0.527408f, 0.991745f, 0.990287f, 0.947701f, 0.173036f, 0.682941f, 0.424896f, 0.441374f, 0.899804f, 0.82589f, 0.080801f, 0.358268f, 0.226601f, 0.12377f, 0.471976f, 0.593304f, 0.251538f, 0.217325f, 0.084385f, 0.820333f, 0.929372f, 0.3018f, 0.868119f, 0.354941f, 0.817628f, 0.854257f, 0.465488f, 0.87711f, 0.467136f, 0.536533f, 0.761141f, 0.0176133f, 0.824427f, 0.35775f, 0.883069f, 0.926057f, 0.468452f, 0.736605f, 0.595839f, 0.863943f, 0.714158f, 0.7314f, 0.893097f, 0.438854f, 0.327221f, 0.791686f, 0.5375f, 0.87044f, 0.509864f, 0.707702f, 0.246594f, 0.600985f, 0.769923f, 0.937123f, 0.487803f, 0.162059f, 0.945864f, 0.783905f, 0.935941f, 0.466245f, 0.857716f, 0.507292f, 0.899158f, 0.673879f, 0.673613f, 0.288398f, 0.6941f, 0.738393f, 0.55069f, 0.976364f, 0.118459f, 0.237908f, 0.31801f, 0.695152f, 0.806048f, 0.996444f, 0.271285f, 0.430659f, 0.0847206f, 0.505409f, 0.964534f, 0.533697f, 0.402601f, 0.636051f, 0.905861f, 0.187011f, 0.162622f, 0.13625f, 0.217484f, 0.331014f, 0.178526f, 0.700494f, 0.669568f, 0.551995f, 0.186994f, 0.512293f, 0.888964f, 0.693861f, 0.254946f, 0.111767f, 0.617156f, 0.00432868f, 0.736541f, 0.538015f, 0.924411f, 0.703041f, 0.356651f, 0.82463f, 0.338636f, 0.337042f, 0.589604f, 0.446137f, 0.928251f, 0.223612f, 0.308999f, 0.336899f, 0.448885f, 0.973801f, 0.697394f, 0.0422027f, 0.0897108f, 0.399189f, 0.703481f, 0.543053f, 0.72385f, 0.159818f, 0.782179f, 0.304272f, 0.826399f, 0.0707951f, 0.26092f, 0.365618f, 0.413427f, 0.84302f, 0.131124f, 0.556202f, 0.706646f, 0.780119f, 0.104328f, 0.946335f, 0.0637464f, 0.0732376f, 0.0595677f, 0.525762f, 0.987167f, 0.32953f, 0.815905f, 0.478352f, 0.296297f, 0.625132f, 0.553781f, 0.592135f, 0.28049f, 0.192426f, 0.23416f, 0.817321f, 0.826737f, 0.0622751f, 0.576221f, 0.270625f, 0.899673f, 0.699229f, 0.466704f, 0.721756f, 0.969387f, 0.805635f, 0.169292f, 0.939678f, 0.470333f, 0.951276f, 0.605481f, 0.258478f, 0.482099f, 0.709427f, 0.666574f, 0.685317f, 0.601123f, 0.850523f, 0.159515f, 0.781839f, 0.895366f, 0.200522f, 0.31974f, 0.0524494f, 0.529465f, 0.551828f, 0.73694f, 0.922469f, 0.218472f, 0.734122f, 0.688273f, 0.864047f, 0.130662f, 0.786044f, 0.220167f, 0.607686f, 0.312601f, 0.641538f, 0.567144f, 0.828449f, 0.619842f, 0.83648f, 0.611485f, 0.898507f, 0.411619f, 0.583162f, 0.530753f, 0.83583f, 0.626444f, 0.557886f, 0.180592f, 0.198511f, 0.232223f, 0.526427f, 0.615557f, 0.411498f, 0.273077f, 0.74293f, 0.835388f, 0.270267f, 0.805291f, 0.0972044f, 0.241121f, 0.736203f, 0.663411f, 0.363918f, 0.458822f, 0.80512f, 0.605458f, 0.375393f, 0.862337f, 0.0593959f, 0.253904f, 0.536793f, 0.589653f, 0.933257f, 0.953445f, 0.568967f, 0.210733f, 0.555606f, 0.432325f, 0.646601f, 0.93889f, 0.614317f, 0.560362f, 0.710996f, 0.210809f, 0.379712f, 0.887f, 0.163997f, 0.56018f, 0.0240339f, 0.49022f, 0.742717f, 0.519842f, 0.586268f, 0.78603f, 0.636755f, 0.582241f, 0.796528f, 0.259907f, 0.0745921f, 0.655932f, 0.0389202f, 0.0726865f, 0.864875f, 0.312982f, 0.452136f, 0.7015f, 0.247177f, 0.27854f, 0.0632686f, 0.0813697f, 0.279874f, 0.586784f, 0.461093f, 0.0778263f, 0.662647f, 0.357942f, 0.710333f, 0.956567f, 0.898341f, 0.174392f, 0.00585557f, 0.884456f, 0.278071f, 0.685814f, 0.560874f, 0.94756f, 0.24619f, 0.854f, 0.353335f, 0.254453f, 0.792681f, 0.305647f, 0.99284f, 0.270542f, 0.588071f, 0.653879f, 0.685535f, 0.740965f, 0.0128991f, 0.972981f, 0.982195f, 0.784451f, 0.123193f, 0.432136f, 0.529464f, 0.763657f, 0.226716f, 0.210642f, 0.417861f, 0.656148f, 0.579897f, 0.856393f, 0.218321f, 0.771127f, 0.0338039f, 0.567034f, 0.630268f, 0.908676f, 0.521216f, 0.701863f, 0.514884f, 0.421301f, 0.752762f, 0.524206f, 0.117344f, 0.173013f, 0.612242f, 0.394583f, 0.865125f, 0.752344f, 0.315942f, 0.142906f, 0.665908f, 0.907319f, 0.524857f, 0.0720145f, 0.193825f, 0.889935f, 0.315781f, 0.207526f, 0.418102f, 0.116293f, 0.271694f, 0.733742f, 0.187469f, 0.694859f, 0.83994f, 0.948731f, 0.0598494f, 0.586697f, 0.493972f, 0.955683f, 0.37149f, 0.199311f, 0.146326f, 0.601498f, 0.946194f, 0.831491f, 0.320438f, 0.801112f, 0.484785f, 0.0333543f, 0.74116f, 0.226681f, 0.0447326f, 0.315809f, 0.303605f, 0.497916f, 0.967853f, 0.710093f, 0.961844f, 0.316589f, 0.923962f, 0.206211f, 0.632804f, 0.702471f, 0.293214f, 0.459488f, 0.240221f, 0.273956f, 0.214241f, 0.895807f, 0.428641f, 0.0928225f, 0.264767f, 0.997019f, 0.616878f, 0.680763f, 0.0939435f, 0.418914f, 0.0206921f, 0.388642f, 0.503535f, 0.993482f, 0.274211f, 0.604227f, 0.20554f, 0.0823207f, 0.484587f, 0.132433f, 0.165187f, 0.74246f, 0.905328f, 0.870367f, 0.747256f, 0.0635862f, 0.301832f, 0.420023f, 0.538413f, 0.796804f, 0.275343f, 0.671668f, 0.422441f, 0.153756f, 0.107716f, 0.520214f, 0.680467f, 0.621875f, 0.0994287f, 0.251441f, 0.410875f, 0.341878f, 0.0305172f, 0.893489f, 0.542774f, 0.881573f, 0.159878f, 0.978881f, 0.530476f, 0.611658f, 0.782136f, 0.62399f, 0.753435f, 0.238884f, 0.9115f, 0.241982f, 0.619147f, 0.842602f, 0.209986f, 0.741427f, 0.477977f, 0.339636f, 0.688182f, 0.194028f, 0.726511f, 0.743978f, 0.0382991f, 0.737422f, 0.0462307f, 0.12968f, 0.467882f, 0.0295334f, 0.712377f, 0.446366f, 0.0486053f, 0.30363f, 0.410012f, 0.74849f, 0.349723f, 0.890933f, 0.670958f, 0.639506f, 0.993475f, 0.399773f, 0.984779f, 0.551193f, 0.743251f, 0.596086f, 0.118846f, 0.197895f, 0.403803f, 0.159353f, 0.643236f, 0.127084f, 0.483102f, 0.490118f, 0.918884f, 0.181435f, 0.747842f, 0.677603f, 0.667513f, 0.238327f, 0.67862f, 0.658214f, 0.612771f, 0.296302f, 0.166472f, 0.161012f, 0.588091f, 0.197845f, 0.513839f, 0.833909f, 0.463192f, 0.950884f, 0.0533873f, 0.432471f, 0.863352f, 0.822684f, 0.0342464f, 0.225652f, 0.702801f, 0.86235f, 0.473653f, 0.988191f, 0.227529f, 0.878562f, 0.0485657f, 0.0471784f, 0.458532f, 0.650269f, 0.845933f, 0.591122f, 0.513426f, 0.551219f, 0.791989f, 0.794158f, 0.810032f, 0.257106f, 0.767354f, 0.499332f, 0.254888f, 0.903956f, 0.117117f, 0.116458f, 0.452096f, 0.850185f, 0.544318f, 0.326435f, 0.215906f, 0.740467f, 0.401712f, 0.567547f, 0.887705f, 0.435517f, 0.378752f, 0.758246f, 0.375751f, 0.448469f, 0.176343f, 0.0144379f, 0.624023f, 0.489881f, 0.593496f, 0.989702f, 0.244849f, 0.175646f, 0.173303f, 0.586476f, 0.99795f, 0.79035f, 0.374323f, 0.698993f, 0.921009f, 0.290843f, 0.183281f, 0.4822f, 0.576796f, 0.789544f, 0.0994564f, 0.508556f, 0.109639f, 0.733261f, 0.140442f, 0.787f, 0.254106f, 0.0559873f, 0.606764f, 0.401688f, 0.68709f, 0.13815f, 0.029515f, 0.00818356f, 0.782633f, 0.181943f, 0.0634527f, 0.683833f, 0.00813154f, 0.486167f, 0.854093f, 0.191719f, 0.86377f, 0.609881f, 0.515957f, 0.487769f, 0.0271336f, 0.73167f, 0.234502f, 0.0613808f, 0.961206f, 0.999486f, 0.823175f, 0.300045f, 0.354843f, 0.246346f, 0.123407f, 0.347522f, 0.354241f, 0.694702f, 0.323798f, 0.0366013f, 0.538566f, 0.729588f, 0.992623f, 0.218945f, 0.406589f, 0.0438158f, 0.155472f, 0.970552f, 0.409469f, 0.153691f, 0.0203969f, 0.275005f, 0.701389f, 0.42303f, 0.147195f, 0.368979f, 0.604133f, 0.126673f, 0.67592f, 0.105526f, 0.54339f, 0.871531f, 0.394669f, 0.126213f, 0.599392f, 0.431891f, 0.988939f, 0.567489f, 0.496111f, 0.368918f, 0.470483f, 0.0421722f, 0.675878f, 0.603576f, 0.44158f, 0.992638f, 0.836131f, 0.420694f, 0.741066f, 0.403237f, 0.574347f, 0.648549f, 0.250641f, 0.798726f, 0.891189f, 0.0422597f, 0.51827f, 0.739092f, 0.202508f, 0.619545f, 0.450979f, 0.966478f, 0.176743f, 0.693801f, 0.65698f, 0.986479f, 0.579998f, 0.428425f, 0.639208f, 0.652359f, 0.396176f, 0.268982f, 0.0115209f, 0.689203f, 0.0668897f, 0.38583f, 0.245746f, 0.761784f, 0.45692f, 0.302772f, 0.461184f, 0.501472f, 0.559463f, 0.287875f, 0.129634f, 0.470875f, 0.672356f, 0.663933f, 0.381709f, 0.528953f, 0.761458f, 0.652946f, 0.669969f, 0.982658f, 0.602676f, 0.479083f, 0.536523f, 0.330208f, 0.194745f, 0.641579f, 0.840228f, 0.450018f, 0.692135f, 0.355857f, 0.455585f, 0.486695f, 0.584968f, 0.206563f, 0.965777f, 0.303506f, 0.934809f, 0.458971f, 0.810761f, 0.75679f, 0.975268f, 0.210766f, 0.248278f, 0.0802836f, 0.694557f, 0.559991f, 0.919831f, 0.898269f, 0.423921f, 0.402418f, 0.862905f, 0.383914f, 0.088649f, 0.355223f, 0.0554185f, 0.300398f, 0.409473f, 0.931162f, 0.553423f, 0.310724f, 0.709629f, 0.308529f, 0.307363f, 0.659964f, 0.00663364f, 0.258103f, 0.360775f, 0.663727f, 0.490966f, 0.940088f, 0.396988f, 0.564506f, 0.315455f, 0.959141f, 0.057101f, 0.0195982f, 0.519149f, 0.901276f, 0.48174f, 0.139353f, 0.0851095f, 0.0280393f, 0.256546f, 0.121875f, 0.00495883f, 0.999756f, 0.657477f, 0.571574f, 0.5227f, 0.694834f, 0.946927f, 0.366485f, 0.434974f, 0.478532f, 0.412874f, 0.867329f, 0.0975095f, 0.0271852f, 0.778299f, 0.565213f, 0.53727f, 0.290105f, 0.791131f, 0.0144325f, 0.275715f, 0.581405f, 0.501518f, 0.0129648f, 0.297322f, 0.275774f, 0.0750361f, 0.154392f, 0.0974631f, 0.309081f, 0.172081f, 0.848699f, 0.840117f, 0.0103903f, 0.968982f, 0.600323f, 0.259561f, 0.572473f, 0.82728f, 0.432188f, 0.78679f, 0.764765f, 0.0234963f, 0.280857f, 0.206387f, 0.519519f, 0.241991f, 0.586645f, 0.045972f, 0.089996f, 0.133891f, 0.608837f, 0.00619712f, 0.895718f, 0.439825f, 0.63276f, 0.785436f, 0.992793f, 0.604488f, 0.204594f, 0.115584f, 0.116164f, 0.93579f, 0.706941f, 0.211937f, 0.0692218f, 0.3304f, 0.318649f, 0.710189f, 0.982268f, 0.116389f, 0.298634f, 0.411521f, 0.954601f, 0.72633f, 0.550592f, 0.251087f, 0.462077f, 0.817913f, 0.384922f, 0.762362f, 0.322915f, 0.389228f, 0.225212f, 0.713655f, 0.349589f, 0.764699f, 0.166066f, 0.374613f, 0.508018f, 0.58467f, 0.736121f, 0.68524f, 0.160013f, 0.364459f, 0.120574f, 0.190756f, 0.318128f, 0.35933f, 0.184048f, 0.0399303f, 0.980637f, 0.560814f, 0.303475f, 0.797824f, 0.816656f, 0.394171f, 0.031498f, 0.373127f, 0.553551f, 0.547722f, 0.311606f, 0.814148f, 0.82553f, 0.506601f, 0.102923f, 0.624813f, 0.991727f, 0.936333f, 0.487983f, 0.170005f, 0.669482f, 0.921824f, 0.350938f, 0.117821f, 0.710319f, 0.244534f, 0.927799f, 0.126162f, 0.322003f, 0.900591f, 0.717494f, 0.551761f, 0.806162f, 0.835034f, 0.763623f, 0.108624f, 0.00990392f, 0.902354f, 0.824175f, 0.554519f, 0.885359f, 0.308364f, 0.572235f, 0.63138f, 0.335896f, 0.605877f, 0.46389f, 0.806253f, 0.766758f, 0.526007f, 0.397714f, 0.60308f, 0.93283f, 0.545794f, 0.660899f, 0.604516f, 0.29167f, 0.214183f, 0.0573974f, 0.229982f, 0.979779f, 0.368175f, 0.434765f, 0.415207f, 0.418815f, 0.354797f, 0.403499f, 0.871134f, 0.644369f, 0.644598f, 0.471213f, 0.956022f, 0.431544f, 0.586249f, 0.139016f, 0.702862f, 0.187983f, 0.944175f, 0.589743f, 0.901744f, 0.875612f, 0.146502f, 0.581585f, 0.0458156f, 0.538324f, 0.52507f, 0.767346f, 0.948295f, 0.0187263f, 0.305238f, 0.544379f, 0.814933f, 0.391502f, 0.130744f, 0.953611f, 0.394568f, 0.272426f, 0.649744f, 0.861592f, 0.835051f, 0.482925f, 0.245874f, 0.290328f, 0.287375f, 0.837873f, 0.0066875f, 0.413453f, 0.262712f, 0.0880322f, 0.243793f, 0.82881f, 0.6031f, 0.306577f, 0.42487f, 0.969813f, 0.914381f, 0.00901938f, 0.856536f, 0.71473f, 0.831734f, 0.0200897f, 0.247702f, 0.746342f, 0.306575f, 0.206043f, 0.574619f, 0.828791f, 0.723755f, 0.93929f, 0.852708f, 0.405139f, 0.414797f, 0.542813f, 0.290311f, 0.125276f, 0.931837f, 0.0717161f, 0.791285f, 0.14805f, 0.836408f, 0.398334f, 0.485683f, 0.682892f, 0.0932766f, 0.404823f, 0.644894f, 0.346455f, 0.427197f, 0.259743f, 0.597138f, 0.0679476f, 0.0289522f, 0.849093f, 0.350032f, 0.454357f, 0.603621f, 0.907092f, 0.404162f, 0.351306f, 0.270505f, 0.653166f, 0.769691f, 0.938824f, 0.473653f, 0.434848f, 0.342873f, 0.318166f, 0.543479f, 0.856732f, 0.153989f, 0.879561f, 0.870354f, 0.422029f, 0.839287f, 0.124407f, 0.465203f, 0.460858f, 0.989059f, 0.679192f, 0.946028f, 0.846782f, 0.918742f, 0.314033f, 0.49666f, 0.0920023f, 0.843132f, 0.839722f, 0.272321f, 0.979717f, 0.348738f, 0.444116f, 0.983432f, 0.795065f, 0.794573f, 0.671099f, 0.511916f, 0.0563633f, 0.559247f, 0.533963f, 0.50525f, 0.711275f, 0.802424f, 0.917303f, 0.122918f, 0.80023f, 0.559959f, 0.257324f, 0.13848f, 0.171588f, 0.0874861f, 0.0871963f, 0.72098f, 0.515483f, 0.279985f, 0.00499612f, 0.225363f, 0.238013f, 0.269871f, 0.990479f, 0.766968f, 0.999129f, 0.715754f, 0.00825198f, 0.37617f, 0.665278f, 0.747982f, 0.828414f, 0.71452f, 0.469985f, 0.859196f, 0.535797f, 0.775488f, 0.415358f, 0.720911f, 0.368545f, 0.401326f, 0.745221f, 0.153016f, 0.578119f, 0.548487f, 0.0108803f, 0.525463f, 0.85297f, 0.401923f, 0.125322f, 0.0132056f, 0.673783f, 0.392176f, 0.0484537f, 0.983614f, 0.733353f, 0.648133f, 0.103747f, 0.619905f, 0.345302f, 0.53134f, 0.687227f, 0.370661f, 0.177329f, 0.362335f, 0.898738f, 0.123485f, 0.136967f, 0.888547f, 0.21683f, 0.366909f, 0.653203f, 0.335775f, 0.869464f, 0.0816942f, 0.902404f, 0.457509f, 0.530483f, 0.803953f, 0.0166294f, 0.13743f, 0.636046f, 0.0234916f, 0.713996f, 0.333192f, 0.0889455f, 0.0801999f, 0.722104f, 0.823817f, 0.418968f, 0.642144f, 0.537163f, 0.63819f, 0.32562f, 0.221282f, 0.62735f, 0.0201243f, 0.838979f, 0.577024f, 0.339198f, 0.791407f, 0.250698f, 0.22916f, 0.506478f, 0.184422f, 0.345273f, 0.0775661f, 0.735546f, 0.783081f, 0.563042f, 0.52338f, 0.578283f, 0.92201f, 0.331034f, 0.417922f, 0.818801f, 0.356291f, 0.542004f, 0.544088f, 0.803525f, 0.212841f, 0.731448f, 0.612983f, 0.748431f, 0.253143f, 0.231774f, 0.294001f, 0.593668f, 0.265074f, 0.553367f, 0.866867f, 0.18076f, 0.662788f, 0.629639f, 0.73018f, 0.467859f, 0.808596f, 0.644864f, 0.022537f, 0.0364958f, 0.54453f, 0.592496f, 0.43437f, 0.952427f, 0.218378f, 0.244185f, 0.436451f, 0.71122f, 0.593662f, 0.835231f, 0.0332252f, 0.378105f, 0.497219f, 0.984476f, 0.0730146f, 0.472074f, 0.48317f, 0.139109f, 0.593514f, 0.340308f, 0.619867f, 0.28969f, 0.00251761f, 0.908032f, 0.224354f, 0.849769f, 0.550466f, 0.821944f, 0.162849f, 0.738565f, 0.68601f, 0.509678f, 0.0200363f, 0.507831f, 0.866033f, 0.638294f, 0.116883f, 0.843762f, 0.889224f, 0.260872f, 0.18303f, 0.130803f, 0.769403f, 0.414257f, 0.0478247f, 0.275858f, 0.874808f, 0.409034f, 0.986896f, 0.182275f, 0.906189f, 0.483678f, 0.215844f, 0.0907204f, 0.0648673f, 0.252829f, 0.832949f, 0.100708f, 0.156126f, 0.813764f, 0.398981f, 0.812887f, 0.120614f, 0.500278f, 0.308537f, 0.920879f, 0.581683f, 0.475571f, 0.385586f, 0.592255f, 0.598037f, 0.948205f, 0.90025f, 0.599848f, 0.608096f, 0.0367805f, 0.990955f, 0.68853f, 0.548609f, 0.294576f, 0.30996f, 0.883756f, 0.967547f, 0.218314f, 0.511624f, 0.590131f, 0.0163507f, 0.871621f, 0.818298f, 0.161421f, 0.275694f, 0.214449f, 0.616178f, 0.996522f, 0.30145f, 0.462069f, 0.015384f, 0.977253f, 0.57646f, 0.0811966f, 0.271921f, 0.924299f, 0.106255f, 0.0241342f, 0.766667f, 0.950522f, 0.577713f, 0.27764f, 0.668152f, 0.270199f, 0.332724f, 0.0121983f, 0.600661f, 0.555089f, 0.530421f, 0.72221f, 0.380044f, 0.653603f, 0.89445f, 0.0928122f, 0.594942f, 0.328926f, 0.976484f, 0.42039f, 0.996746f, 0.860078f, 0.867956f, 0.0398631f, 0.806536f, 0.0995371f, 0.658456f, 0.0472054f, 0.66889f, 0.540563f, 0.532939f, 0.865011f, 0.401918f, 0.820783f, 0.0920071f, 0.0658646f, 0.253436f, 0.263612f, 0.669429f, 0.296443f, 0.706652f, 0.351249f, 0.91166f, 0.913569f, 0.788687f, 0.234301f, 0.831165f, 0.980835f, 0.203369f, 0.373045f, 0.423267f, 0.670498f, 0.802715f, 0.936269f, 0.78477f, 0.915481f, 0.113364f, 0.601332f, 0.310504f, 0.743434f, 0.765364f, 0.603253f, 0.483632f, 0.125628f, 0.289788f, 0.997899f, 0.503365f, 0.726792f, 0.800784f, 0.450583f, 0.269655f, 0.444556f, 0.555119f, 0.93947f, 0.533848f, 0.0782537f, 0.157712f, 0.85099f, 0.327261f, 0.832598f, 0.510364f, 0.912637f, 0.539609f, 0.350554f, 0.854618f, 0.946954f, 0.386823f, 0.714464f, 0.00204045f, 0.968002f, 0.48749f, 0.562856f, 0.427489f, 0.848607f, 0.493587f, 0.826042f, 0.445187f, 0.0619741f, 0.101287f, 0.526013f, 0.194595f, 0.775672f, 0.486149f, 0.272355f, 0.127834f, 0.743296f, 0.150596f, 0.681096f, 0.57281f, 0.0672587f, 0.255456f, 0.841653f, 0.872262f, 0.649119f, 0.123757f, 0.179241f, 0.875755f, 0.647584f, 0.705624f, 0.648403f, 0.0508813f, 0.829607f, 0.695577f, 0.916696f, 0.689075f, 0.911448f, 0.135606f, 0.549444f, 0.281353f, 0.391995f, 0.832494f, 0.742705f, 0.712778f, 0.475071f, 0.288333f, 0.174372f, 0.26146f, 0.537422f, 0.0596647f, 0.608866f, 0.423589f, 0.609099f, 0.143077f, 0.919032f, 0.902764f, 0.595446f, 0.380225f, 0.321925f, 0.647344f, 0.812108f, 0.969231f, 0.761545f, 0.619274f, 0.187524f, 0.799921f, 0.307736f, 0.389503f, 0.250851f, 0.576744f, 0.470898f, 0.520214f, 0.247824f, 0.875442f, 0.458726f, 0.0483422f, 0.0345533f, 0.246986f, 0.764085f, 0.0722482f, 0.215028f, 0.157917f, 0.943235f, 0.568253f, 0.611883f, 0.703953f, 0.744177f, 0.376982f, 0.929422f, 0.731934f, 0.569088f, 0.520327f, 0.860078f, 0.472155f, 0.927979f, 0.40246f, 0.326026f, 0.51597f, 0.488182f, 0.0903602f, 0.810176f, 0.98767f, 0.306279f, 0.222395f, 0.449744f, 0.341067f, 0.923371f, 0.805345f, 0.880787f, 0.354113f, 0.520321f, 0.125835f, 0.354522f, 0.886473f, 0.879818f, 0.166946f, 0.800076f, 0.493049f, 0.755293f, 0.121424f, 0.36928f, 0.475916f, 0.60888f, 0.419866f, 0.486128f, 0.953577f, 0.0166693f, 0.897612f, 0.76408f, 0.29579f, 0.90232f, 0.27467f, 0.846143f, 0.599024f, 0.852155f, 0.620326f, 0.937455f, 0.956604f, 0.914655f, 0.0814477f, 0.467409f, 0.0893654f, 0.789564f, 0.944074f, 0.788553f, 0.244569f, 0.168005f, 0.779147f, 0.51142f, 0.62443f, 0.395262f, 0.0596324f, 0.654439f, 0.168753f, 0.99687f, 0.657187f, 0.760906f, 0.915153f, 0.467333f, 0.436316f, 0.528364f, 0.482071f, 0.810865f, 0.561541f, 0.835901f, 0.61142f, 0.748716f, 0.00598633f, 0.996771f, 0.112488f, 0.376406f, 0.822818f, 0.341099f, 0.432226f, 0.804915f, 0.211529f, 0.815314f, 0.635673f, 0.109762f, 0.288317f, 0.798835f, 0.995449f, 0.973567f, 0.656728f, 0.689204f, 0.0583982f, 0.118429f, 0.828065f, 0.00536045f, 0.138903f, 0.209343f, 0.0480099f, 0.443857f, 0.125573f, 0.681736f, 0.407285f, 0.0818151f, 0.375224f, 0.190126f, 0.868232f, 0.93468f, 0.822556f, 0.127266f, 0.104354f, 0.508798f, 0.343762f, 0.966641f, 0.994762f, 0.520799f, 0.283876f, 0.185071f, 0.569375f, 0.195671f, 0.38562f, 0.875036f, 0.954734f, 0.266918f, 0.280726f, 0.385349f, 0.134495f, 0.420917f, 0.463568f, 0.252675f, 0.310618f, 0.712974f, 0.172954f, 0.451586f, 0.208031f, 0.374081f, 0.507844f, 0.45277f, 0.52935f, 0.38675f, 0.181988f, 0.627821f, 0.296563f, 0.458081f, 0.679424f, 0.107427f, 0.957737f, 0.499756f, 0.510599f, 0.511263f, 0.204941f, 0.783688f, 0.748013f, 0.313695f, 0.822132f, 0.877007f, 0.932383f, 0.57994f, 0.511188f, 0.744959f, 0.231559f, 0.98697f, 0.686656f, 0.349502f, 0.727331f, 0.0570541f, 0.460354f, 0.317294f, 0.29985f, 0.614703f, 0.897589f, 0.672334f, 0.80712f, 0.203369f, 0.739073f, 0.663163f, 0.840658f, 0.442582f, 0.972734f, 0.822226f, 0.0408981f, 0.60215f, 0.469584f, 0.439678f, 0.12661f, 0.695087f, 0.738005f, 0.730278f, 0.848876f, 0.615831f, 0.978384f, 0.539188f, 0.34485f, 0.244979f, 0.79015f, 0.202316f, 0.493524f, 0.749691f, 0.888322f, 0.942176f, 0.967565f, 0.343653f, 0.772204f, 0.516119f, 0.0458385f, 0.0860436f, 0.669792f, 0.528784f, 0.0186552f, 0.970551f, 0.674466f, 0.185799f, 0.569726f, 0.392632f, 0.0565441f, 0.884705f, 0.436255f, 0.205135f, 0.0951112f, 0.516395f, 0.902937f, 0.820844f, 0.619476f, 0.454277f, 0.630864f, 0.972527f, 0.257479f, 0.554272f, 0.339491f, 0.948593f, 0.330156f, 0.894974f, 0.82963f, 0.0822031f, 0.408084f, 0.223281f, 0.916071f, 0.689165f, 0.464661f, 0.634858f, 0.181302f, 0.229017f, 0.210696f, 0.151731f, 0.0317992f, 0.222419f, 0.788384f, 0.105893f, 0.850989f, 0.0346799f, 0.0334926f, 0.135013f, 0.437604f, 0.507569f, 0.0101919f, 0.19781f, 0.554976f, 0.412081f, 0.75034f, 0.0838736f, 0.184646f, 0.414339f, 0.690666f, 0.68731f, 0.913875f, 0.102824f, 0.284373f, 0.542406f, 0.0448331f, 0.68077f, 0.290499f, 0.263842f, 0.479761f, 0.275982f, 0.294421f, 0.876497f, 0.0382377f, 0.149754f, 0.114487f, 0.34663f, 0.724447f, 0.389409f, 0.802181f, 0.512255f, 0.871142f, 0.817144f, 0.943827f, 0.888949f, 0.629429f, 0.287183f, 0.249371f, 0.872029f, 0.585722f, 0.11813f, 0.520707f, 0.791212f, 0.552112f, 0.589188f, 0.38551f, 0.242621f, 0.661368f, 0.0682262f, 0.634157f, 0.443192f, 0.203633f, 0.201176f, 0.584291f, 0.950453f, 0.259034f, 0.761136f, 0.772442f, 0.611783f, 0.862685f, 0.913769f, 0.772802f, 0.908552f, 0.248499f, 0.516554f, 0.896326f, 0.192584f, 0.666127f, 0.291131f, 0.67864f, 0.450392f, 0.798543f, 0.856595f, 0.274009f, 0.811873f, 0.621547f, 0.252523f, 0.863666f, 0.964819f, 0.911717f, 0.223313f, 0.529873f, 0.464219f, 0.846257f, 0.592794f, 0.347513f, 0.259943f, 0.875496f, 0.314201f, 0.0395176f, 0.201387f, 0.527071f, 0.572934f, 0.965283f, 0.164273f, 0.722183f, 0.670461f, 0.573421f, 0.0891485f, 0.390577f, 0.114763f, 0.349043f, 0.614023f, 0.199395f, 0.767955f, 0.963946f, 0.997774f, 0.871356f, 0.422047f, 0.703578f, 0.295348f, 0.613672f, 0.29313f, 0.836419f, 0.0611616f, 0.99903f, 0.775352f, 0.829162f, 0.103054f, 0.523498f, 0.961165f, 0.692672f, 0.932918f, 0.618085f, 0.772023f, 0.371329f, 0.0404679f, 0.928768f, 0.111364f, 0.0583651f, 0.88597f, 0.18057f, 0.66822f, 0.981161f, 0.336133f, 0.762795f, 0.594076f, 0.375663f, 0.799212f, 0.635779f, 0.0445139f, 0.0620577f, 0.767288f, 0.979813f, 0.291096f, 0.268214f, 0.89948f, 0.0465171f, 0.186285f, 0.775602f, 0.260225f, 0.933776f, 0.462414f, 0.831417f, 0.520135f, 0.124447f, 0.695567f, 0.831564f, 0.0788556f, 0.565818f, 0.94302f, 0.45306f, 0.0770404f, 0.302754f, 0.423112f, 0.962129f, 0.514299f, 0.36983f, 0.491933f, 0.656737f, 0.165862f, 0.130265f, 0.298323f, 0.132495f, 0.615909f, 0.0133612f, 0.352362f, 0.660888f, 0.45423f, 0.657297f, 0.79193f, 0.93095f, 0.845148f, 0.24055f, 0.415642f, 0.950532f, 0.906417f, 0.38877f, 0.276392f, 0.191902f, 0.824704f, 0.291277f, 0.370849f, 0.416511f, 0.829611f, 0.0220368f, 0.425669f, 0.18961f, 0.285454f, 0.551285f, 0.227607f, 0.444496f, 0.974809f, 0.0600968f, 0.211983f, 0.581975f, 0.00425177f, 0.960302f, 0.64041f, 0.494323f, 0.541578f, 0.119043f, 0.943748f, 0.966992f, 0.209228f, 0.60463f, 0.127989f, 0.104585f, 0.436124f, 0.740095f, 0.361377f, 0.907628f, 0.974453f, 0.91908f, 0.492144f, 0.0683203f, 0.419664f, 0.345833f, 0.212963f, 0.250144f, 0.632806f, 0.910376f, 0.451072f, 0.871015f, 0.611367f, 0.871778f, 0.910306f, 0.119627f, 0.984545f, 0.318298f, 0.868194f, 0.818802f, 0.575346f, 0.149502f, 0.254122f, 0.175093f, 0.415803f, 0.843205f, 0.803958f, 0.554162f, 0.713087f, 0.379507f, 0.664716f, 0.618683f, 0.98676f, 0.941917f, 0.694065f, 0.339624f, 0.0668197f, 0.683359f, 0.97611f, 0.588092f, 0.107186f, 0.686056f, 0.382191f, 0.188653f, 0.404279f, 0.44653f, 0.123f, 0.0146833f, 0.440021f, 0.725741f, 0.124184f, 0.83591f, 0.538041f, 0.0555726f, 0.591682f, 0.346451f, 0.293581f, 0.0507477f, 0.354474f, 0.408784f, 0.175109f, 0.67453f, 0.161961f, 0.622366f, 0.586914f, 0.0823875f, 0.727024f, 0.70076f, 0.888525f, 0.930183f, 0.821958f, 0.589729f, 0.943463f, 0.710158f, 0.96339f, 0.622963f, 0.58137f, 0.9565f, 0.927559f, 0.885087f, 0.870896f, 0.234865f, 0.551913f, 0.723878f, 0.827738f, 0.970025f, 0.216431f, 0.722694f, 0.230254f, 0.130758f, 0.217069f, 0.321699f, 0.236559f, 0.734331f, 0.248787f, 0.24723f, 0.870885f, 0.9878f, 0.265207f, 0.563228f, 0.766959f, 0.852504f, 0.280999f, 0.00920061f, 0.739933f, 0.0973193f, 0.921099f, 0.81306f, 0.335371f, 0.715043f, 0.696763f, 0.223199f, 0.257661f, 0.384619f, 0.384785f, 0.0556174f, 0.529579f, 0.83923f, 0.293077f, 0.187327f, 0.120192f, 0.652666f, 0.11147f, 0.100827f, 0.655984f, 0.742341f, 0.838797f, 0.120838f, 0.707987f, 0.677343f, 0.565744f, 0.538032f, 0.015161f, 0.274831f, 0.30208f, 0.886585f, 0.739963f, 0.700467f, 0.456345f, 0.219709f, 0.926903f, 0.232933f, 0.19907f, 0.102168f, 0.11887f, 0.0908123f, 0.366894f, 0.789954f, 0.460337f, 0.322457f, 0.883223f, 0.948383f, 0.784219f, 0.863504f, 0.764734f, 0.759244f, 0.988275f, 0.864745f, 0.953824f, 0.31822f, 0.314996f, 0.882982f, 0.815942f, 0.485903f, 0.0115252f, 0.684831f, 0.614017f, 0.0873085f, 0.52319f, 0.0558119f, 0.55041f, 0.310008f, 0.850893f, 0.725259f, 0.488155f, 0.116138f, 0.762803f, 0.0302866f, 0.645977f, 0.287585f, 0.21666f, 0.309405f, 0.674184f, 0.816923f, 0.905169f, 0.101181f, 0.123499f, 0.351557f, 0.0405134f, 0.878338f, 0.015469f, 0.866496f, 0.0844565f, 0.490755f, 0.669352f, 0.085941f, 0.152457f, 0.238297f, 0.472498f, 0.438051f, 0.757135f, 0.149849f, 0.431595f, 0.912593f, 0.089832f, 0.634364f, 0.0177313f, 0.741192f, 0.523192f, 0.912263f, 0.0871267f, 0.627257f, 0.935303f, 0.0816778f, 0.251181f, 0.624053f, 0.395471f, 0.42887f, 0.54241f, 0.742145f, 0.424883f, 0.51269f, 0.935702f, 0.301565f, 0.119601f, 0.38729f, 0.261783f, 0.402373f, 0.728986f, 0.348084f, 0.997016f, 0.0222313f, 0.698249f, 0.034954f, 0.185386f, 0.95165f, 0.546179f, 0.651428f, 0.26796f, 0.0685543f, 0.55737f, 0.283411f, 0.767661f, 0.0244081f, 0.685367f, 0.947972f, 0.034217f, 0.726605f, 0.698051f, 0.426886f, 0.801432f, 0.756371f, 0.407575f, 0.836811f, 0.686345f, 0.859593f, 0.523643f, 0.351548f, 0.765494f, 0.176591f, 0.516729f, 0.777242f, 0.108195f, 0.81436f, 0.277935f, 0.877531f, 0.708538f, 0.730981f, 0.540901f, 0.184072f, 0.845363f, 0.0416249f, 0.739659f, 0.738858f, 0.402735f, 0.791638f, 0.526591f, 0.867771f, 0.41814f, 0.295131f, 0.044962f, 0.0655176f, 0.0198664f, 0.106658f, 0.954147f, 0.966123f, 0.82762f, 0.632706f, 0.140776f, 0.989987f, 0.845963f, 0.226568f, 0.486297f, 0.988705f, 0.572034f, 0.439592f, 0.706967f, 0.393107f, 0.143573f, 0.697269f, 0.104599f, 0.698352f, 0.867078f, 0.492137f, 0.383308f, 0.0374334f, 0.731598f, 0.932175f, 0.816022f, 0.76578f, 0.125882f, 0.377018f, 0.138172f, 0.622443f, 0.232894f, 0.396606f, 0.378826f, 0.468683f, 0.603877f, 0.51426f, 0.918394f, 0.808697f, 0.583117f, 0.983041f, 0.0401852f, 0.279656f, 0.634658f, 0.0174982f, 0.652553f, 0.657667f, 0.804523f, 0.0146742f, 0.0437468f, 0.502127f, 0.825505f, 0.082082f, 0.85776f, 0.748285f, 0.367666f, 0.583369f, 0.83577f, 0.489429f, 0.452757f, 0.272175f, 0.778049f, 0.642109f, 0.946722f, 0.448775f, 0.924783f, 0.120213f, 0.560099f, 0.6108f, 0.404566f, 0.322061f, 0.894217f, 0.871752f, 0.934318f, 0.540806f, 0.715612f, 0.245321f, 0.693621f, 0.536857f, 0.947538f, 0.549564f, 0.00690011f, 0.581177f, 0.159086f, 0.578516f, 0.277567f, 0.0780366f, 0.205541f, 0.783508f, 0.339408f, 0.621534f, 0.294725f, 0.568251f, 0.550272f, 0.959998f, 0.306617f, 0.983857f, 0.643051f, 0.201416f, 0.379511f, 0.0911273f, 0.00867392f, 0.689255f, 0.00360455f, 0.89881f, 0.969304f, 0.730101f, 0.141655f, 0.669899f, 0.454591f, 0.547034f, 0.143947f, 0.187448f, 0.773797f, 0.261486f, 0.561844f, 0.839189f, 0.824408f, 0.169363f, 0.253418f, 0.819671f, 0.622918f, 0.631451f, 0.685432f, 0.399756f, 0.124523f, 0.922578f, 0.506742f, 0.127644f, 0.673104f, 0.231756f, 0.429476f, 0.651572f, 0.147774f, 0.694393f, 0.845516f, 0.917211f, 0.93802f, 0.312698f, 0.810501f, 0.123674f, 0.203391f, 0.0207843f, 0.623855f, 0.828925f, 0.637242f, 0.201973f, 0.181628f, 0.711198f, 0.852358f, 0.0979782f, 0.986842f, 0.391859f, 0.303603f, 0.900008f, 0.929104f, 0.921181f, 0.530946f, 0.259832f, 0.648264f, 0.569696f, 0.436142f, 0.546196f, 0.0834616f, 0.939629f, 0.232199f, 0.573199f, 0.39586f, 0.254669f, 0.243346f, 0.304382f, 0.654493f, 0.560111f, 0.781565f, 0.635758f, 0.507616f, 0.75214f, 0.476468f, 0.647811f, 0.527588f, 0.0332494f, 0.366896f, 0.531055f, 0.0697664f, 0.777532f, 0.536011f, 0.722944f, 0.0900476f, 0.57308f, 0.913552f, 0.176855f, 0.906393f, 0.694757f, 0.437899f, 0.286775f, 0.3538f, 0.187071f, 0.404394f, 0.130317f, 0.865417f, 0.317758f, 0.725547f, 0.652804f, 0.305662f, 0.320363f, 0.332596f, 0.17036f, 0.152259f, 0.691891f, 0.560425f, 0.189973f, 0.540408f, 0.577431f, 0.720768f, 0.402886f, 0.285252f, 0.266165f, 0.474568f, 0.116938f, 0.540145f, 0.420395f, 0.830567f, 0.420468f, 0.253555f, 0.950871f, 0.100956f, 0.614152f, 0.519237f, 0.139785f, 0.455553f, 0.183753f, 0.986065f, 0.411425f, 0.305915f, 0.429603f, 0.841138f, 0.561344f, 0.436388f, 0.610828f, 0.15472f, 0.675246f, 0.853011f, 0.965463f, 0.621879f, 0.406218f, 0.329405f, 0.717781f, 0.433035f, 0.0178493f, 0.718941f, 0.10781f, 0.441911f, 0.174089f, 0.430148f, 0.32203f, 0.197737f, 0.277149f, 0.537757f, 0.298766f, 0.612162f, 0.741896f, 0.575298f, 0.396661f, 0.756537f, 0.0430394f, 0.109055f, 0.536147f, 0.770903f, 0.364357f, 0.22412f, 0.554143f, 0.905576f, 0.403468f, 0.905772f, 0.4869f, 0.640775f, 0.643692f, 0.274591f, 0.943092f, 0.225239f, 0.276099f, 0.531784f, 0.0124671f, 0.0565806f, 0.266562f, 0.0155241f, 0.625282f, 0.909237f, 0.103068f, 0.469269f, 0.653213f, 0.125399f, 0.448836f, 0.950663f, 0.593978f, 0.182179f, 0.633481f, 0.498007f, 0.776594f, 0.507905f, 0.749718f, 0.971869f, 0.674292f, 0.135901f, 0.204592f, 0.309865f, 0.472272f, 0.902697f, 0.243614f, 0.48535f, 0.421191f, 0.484195f, 0.147626f, 0.663167f, 0.422793f, 0.0577459f, 0.0945983f, 0.308984f, 0.689708f, 0.954331f, 0.163813f, 0.522568f, 0.413598f, 0.704285f, 0.14746f, 0.200504f, 0.303418f, 0.233206f, 0.244352f, 0.316168f, 0.636593f, 0.233694f, 0.386377f, 0.285191f, 0.132191f, 0.888384f, 0.0673355f, 0.273624f, 0.710301f, 0.497124f, 0.211171f, 0.245496f, 0.260614f, 0.751294f, 0.134577f, 0.988738f, 0.0417233f, 0.493367f, 0.0692844f, 0.0922724f, 0.800404f, 0.0343097f, 0.34494f, 0.339203f, 0.384323f, 0.958678f, 0.795491f, 0.447462f, 0.321355f, 0.517795f, 0.587684f, 0.344861f, 0.259348f, 0.960066f, 0.469398f, 0.142309f, 0.706147f, 0.354212f, 0.707038f, 0.0158585f, 0.440891f, 0.749678f, 0.523209f, 0.0270166f, 0.131271f, 0.386052f, 0.802055f, 0.394042f, 0.853838f, 0.135632f, 0.155355f, 0.553912f, 0.276347f, 0.929328f, 0.264493f, 0.570699f, 0.437027f, 0.7571f, 0.825212f, 0.940382f, 0.108118f, 0.38541f, 0.3061f, 0.216764f, 0.772938f, 0.510621f, 0.632783f, 0.23145f, 0.290395f, 0.568904f, 0.786351f, 0.105085f, 0.444512f, 0.805947f, 0.66873f, 0.78683f, 0.216537f, 0.937454f, 0.427521f, 0.0749362f, 0.560645f, 0.447932f, 0.2315f, 0.143913f, 0.822126f, 0.246609f, 0.881098f, 0.850086f, 0.686795f, 0.00215024f, 0.5587f, 0.613078f, 0.35141f, 0.159527f, 0.89901f, 0.37716f, 0.5231f, 0.0457704f, 0.808698f, 0.301096f, 0.218873f, 0.236171f, 0.114397f, 0.619328f, 0.217334f, 0.47348f, 0.858687f, 0.202401f, 0.370079f, 0.618376f, 0.23096f, 0.524045f, 0.185272f, 0.128056f, 0.745207f, 0.232581f, 0.247388f, 0.830298f, 0.522178f, 0.751212f, 0.595712f, 0.957827f, 0.484628f, 0.210787f, 0.531757f, 0.487252f, 0.231507f, 0.0111242f, 0.83636f, 0.0214627f, 0.735164f, 0.793203f, 0.357078f, 0.744416f, 0.336283f, 0.0429804f, 0.287745f, 0.640177f, 0.844866f, 0.426414f, 0.0408242f, 0.0431777f, 0.984603f, 0.000617907f, 0.232387f, 0.416756f, 0.419424f, 0.471341f, 0.685176f, 0.201536f, 0.899329f, 0.407221f, 0.824743f, 0.314813f, 0.976795f, 0.179168f, 0.190919f, 0.0478787f, 0.133257f, 0.196867f, 0.25424f, 0.345138f, 0.975666f, 0.547967f, 0.822544f, 0.842198f, 0.145387f, 0.980333f, 0.969722f, 0.385827f, 0.742174f, 0.992562f, 0.778518f, 0.737936f, 0.874408f, 0.93019f, 0.848756f, 0.10286f, 0.411697f, 0.513535f, 0.100505f, 0.235844f, 0.0712042f, 0.780822f, 0.65207f, 0.106151f, 0.843968f, 0.137026f, 0.19359f, 0.470046f, 0.685024f, 0.801273f, 0.443104f, 0.840353f, 0.303245f, 0.94544f, 0.626175f, 0.313943f, 0.371233f, 0.510667f, 0.753433f, 0.472468f, 0.482272f, 0.355332f, 0.423747f, 0.303537f, 0.745258f, 0.322039f, 0.899848f, 0.42553f, 0.516047f, 0.190752f, 0.130942f, 0.305774f, 0.442567f, 0.827156f, 0.42771f, 0.838491f, 0.561399f, 0.98035f, 0.922267f, 0.467943f, 0.535141f, 0.83542f, 0.0678746f, 0.339785f, 0.497421f, 0.837094f, 0.635399f, 0.0376445f, 0.290444f, 0.953545f, 0.815358f, 0.015509f, 0.0934704f, 0.0117289f, 0.471379f, 0.211196f, 0.50282f, 0.304326f, 0.677232f, 0.464641f, 0.263981f, 0.406351f, 0.501177f, 0.90898f, 0.123073f, 0.456577f, 0.616319f, 0.329018f, 0.36137f, 0.235127f, 0.449414f, 0.0533181f, 0.124245f, 0.823626f, 0.181028f, 0.0965832f, 0.515334f, 0.0578094f, 0.430617f, 0.476579f, 0.892971f, 0.24295f, 0.894233f, 0.633983f, 0.451852f, 0.486397f, 0.0788665f, 0.314991f, 0.961955f, 0.721795f, 0.925039f, 0.136851f, 0.285745f, 0.0426938f, 0.00889496f, 0.379703f, 0.435715f, 0.306528f, 0.800782f, 0.510652f, 0.700367f, 0.415429f, 0.499462f, 0.659518f, 0.615336f, 0.0678577f, 0.104654f, 0.0371008f, 0.726568f, 0.523198f, 0.581961f, 0.47025f, 0.212008f, 0.935105f, 0.620384f, 0.634939f, 0.535458f, 0.0439939f, 0.476947f, 0.385057f, 0.589417f, 0.500308f, 0.640718f, 0.441176f, 0.820168f, 0.124298f, 0.149802f, 0.96686f, 0.932195f, 0.791948f, 0.751393f, 0.452534f, 0.107434f, 0.821382f, 0.977205f, 0.477527f, 0.834642f, 0.149939f, 0.207407f, 0.729512f, 0.991264f, 0.327756f, 0.860948f, 0.0246052f, 0.582887f, 0.528856f, 0.0216231f, 0.871167f, 0.992184f, 0.394165f, 0.99151f, 0.351569f, 0.167225f, 0.736738f, 0.726891f, 0.889942f, 0.830547f, 0.497418f, 0.180943f, 0.239298f, 0.249516f, 0.351323f, 0.23906f, 0.633892f, 0.797763f, 0.256025f, 0.740394f, 0.794716f, 0.548886f, 0.94153f, 0.426771f, 0.964263f, 0.602134f, 0.157692f, 0.51221f, 0.883211f, 0.459695f, 0.624687f, 0.677619f, 0.524757f, 0.567082f, 0.965132f, 0.615383f, 0.363414f, 0.178103f, 0.382568f, 0.605458f, 0.704619f, 0.23453f, 0.704259f, 0.791189f, 0.747455f, 0.201132f, 0.48362f, 0.517318f, 0.865407f, 0.376693f, 0.27156f, 0.273983f, 0.439398f, 0.679456f, 0.616666f, 0.956534f, 0.222882f, 0.548331f, 0.427016f, 0.688625f, 0.316475f, 0.0797888f, 0.197334f, 0.825732f, 0.046541f, 0.667399f, 0.995749f, 0.747012f, 0.193808f, 0.12538f, 0.340587f, 0.460038f, 0.090228f, 0.169801f, 0.593597f, 0.0286974f, 0.277012f, 0.0333368f, 0.555538f, 0.64682f, 0.664105f, 0.112142f, 0.972264f, 0.589269f, 0.437943f, 0.077566f, 0.637009f, 0.399174f, 0.289606f, 0.639596f, 0.676414f, 0.835179f, 0.44786f, 0.0174114f, 0.392065f, 0.12716f, 0.821315f, 0.0340378f, 0.193213f, 0.348501f, 0.901849f, 0.0942689f, 0.735283f, 0.00792822f, 0.844442f, 0.107897f, 0.583495f, 0.883682f, 0.684787f, 0.569863f, 0.096334f, 0.655823f, 0.686633f, 0.405986f, 0.00363057f, 0.440372f, 0.0493766f, 0.377997f, 0.965714f, 0.323141f, 0.138127f, 0.870226f, 0.502981f, 0.864036f, 0.930167f, 0.24043f, 0.617038f, 0.171409f, 0.498145f, 0.325839f, 0.0213956f, 0.62056f, 0.948913f, 0.378266f, 0.0567162f, 0.451742f, 0.875486f, 0.681645f, 0.924886f, 0.359523f, 0.828532f, 0.33314f, 0.981575f, 0.6529f, 0.198985f, 0.356704f, 0.730095f, 0.689353f, 0.80525f, 0.86304f, 0.019015f, 0.98754f, 0.361893f, 0.842485f, 0.793509f, 0.301799f, 0.201418f, 0.0551384f, 0.509297f, 0.193336f, 0.171306f, 0.830488f, 0.12314f, 0.109343f, 0.916502f, 0.589594f, 0.957195f, 0.710631f, 0.353375f, 0.839165f, 0.31661f, 0.810285f, 0.89454f, 0.426378f, 0.268367f, 0.54897f, 0.945698f, 0.102724f, 0.132359f, 0.993314f, 0.624269f, 0.633677f, 0.304598f, 0.865015f, 0.737248f, 0.887137f, 0.635383f, 0.790786f, 0.986307f, 0.0834649f, 0.308325f, 0.773805f, 0.693736f, 0.869477f, 0.378664f, 0.166997f, 0.548414f, 0.591115f, 0.207419f, 0.678926f, 0.306532f, 0.882389f, 0.330757f, 0.66696f, 0.0226264f, 0.293737f, 0.549755f, 0.190018f, 0.428002f, 0.0330888f, 0.78409f, 0.850576f, 0.0957443f, 0.75285f, 0.183112f, 0.318606f, 0.679375f, 0.0513686f, 0.784358f, 0.680503f, 0.936123f, 0.19679f, 0.342259f, 0.857399f, 0.497498f, 0.373449f, 0.963185f, 0.061194f, 0.67867f, 0.319073f, 0.944838f, 0.945182f, 0.375355f, 0.664758f, 0.660519f, 0.924169f, 0.330604f, 0.490298f, 0.0174605f, 0.814949f, 0.557866f, 0.631376f, 0.738338f, 0.428307f, 0.967856f, 0.545299f, 0.840206f, 0.680977f, 0.156847f, 0.734255f, 0.367661f, 0.642721f, 0.508084f, 0.887059f, 0.217669f, 0.90437f, 0.983986f, 0.560042f, 0.932969f, 0.313569f, 0.855987f, 0.538502f, 0.275809f, 0.883581f, 0.620688f, 0.0784743f, 0.223647f, 0.824707f, 0.715881f, 0.314945f, 0.816051f, 0.503688f, 0.338043f, 0.150112f, 0.930396f, 0.155001f, 0.0774007f, 0.0745277f, 0.707445f, 0.853576f, 0.620116f, 0.702835f, 0.660482f, 0.459573f, 0.815874f, 0.884924f, 0.779751f, 0.764061f, 0.107455f, 0.229721f, 0.0151863f, 0.932072f, 0.666714f, 0.500362f, 0.68834f, 0.597092f, 0.708239f, 0.970872f, 0.857097f, 0.685983f, 0.955755f, 0.190806f, 0.0163263f, 0.487328f, 0.186357f, 0.434234f, 0.864356f, 0.954898f, 0.121264f, 0.741515f, 0.134672f, 0.998451f, 0.412249f, 0.636198f, 0.333825f, 0.394477f, 0.563415f, 0.834848f, 0.0771076f, 0.835773f, 0.56283f, 0.0627276f, 0.36464f, 0.982207f, 0.736576f, 0.286206f, 0.171741f, 0.467778f, 0.467378f, 0.745612f, 0.8679f, 0.36728f, 0.441325f, 0.936111f, 0.635793f, 0.832643f, 0.584554f, 0.0834765f, 0.614986f, 0.34952f, 0.0930057f, 0.504816f, 0.946701f, 0.89807f, 0.38719f, 0.146971f, 0.76105f, 0.00644369f, 0.463738f, 0.826216f, 0.18824f, 0.289021f, 0.803412f, 0.743778f, 0.0281653f, 0.750498f, 0.790439f, 0.0265427f, 0.289931f, 0.268671f, 0.946377f, 0.167911f, 0.820347f, 0.763946f, 0.201094f, 0.144418f, 0.413465f, 0.667066f, 0.557799f, 0.935135f, 0.675409f, 0.0583699f, 0.902752f, 0.702898f, 0.24328f, 0.75703f, 0.958257f, 0.743549f, 0.126296f, 0.265276f, 0.729513f, 0.962756f, 0.123353f, 0.143048f, 0.263312f, 0.690127f, 0.859566f, 0.485524f, 0.0239273f, 0.00151717f, 0.0723809f, 0.602373f, 0.762771f, 0.640783f, 0.475153f, 0.192226f, 0.904081f, 0.375573f, 0.953741f, 0.281071f, 0.614488f, 0.396497f, 0.295024f, 0.650256f, 0.201304f, 0.500559f, 0.439527f, 0.453997f, 0.0177716f, 0.239765f, 0.86825f, 0.600484f, 0.0629735f, 0.179571f, 0.813547f, 0.422881f, 0.635806f, 0.957556f, 0.151832f, 0.571374f, 0.897366f, 0.110469f, 0.798898f, 0.881717f, 0.31844f, 0.645391f, 0.912229f, 0.0643488f, 0.084613f, 0.726527f, 0.216498f, 0.906139f, 0.853988f, 0.84643f, 0.941913f, 0.594186f, 0.633076f, 0.753172f, 0.502716f, 0.363552f, 0.506002f, 0.313169f, 0.135435f, 0.816577f, 0.667825f, 0.627015f, 0.251642f, 0.781796f, 0.856541f, 0.294344f, 0.119712f, 0.356421f, 0.362389f, 0.146107f, 0.910781f, 0.762419f, 0.39919f, 0.336941f, 0.92832f, 0.415532f, 0.089885f, 0.516f, 0.530227f, 0.327444f, 0.83888f, 0.413443f, 0.459605f, 0.171019f, 0.981721f, 0.137748f, 0.489884f, 0.352895f, 0.955072f, 0.82157f, 0.103319f, 0.927083f, 0.532581f, 0.316902f, 0.637615f, 0.013524f, 0.785173f, 0.551048f, 0.201483f, 0.38202f, 0.67241f, 0.771687f, 0.531025f, 0.826922f, 0.468332f, 0.0624375f, 0.0825748f, 0.244726f, 0.0474653f, 0.295925f, 0.19707f, 0.963282f, 0.0333516f, 0.451775f, 0.832708f, 0.715401f, 0.4051f, 0.96577f, 0.940278f, 0.14701f, 0.555778f, 0.0758023f, 0.0197387f, 0.439182f, 0.770812f, 0.271119f, 0.984473f, 0.964287f, 0.245488f, 0.152525f, 0.761959f, 0.455694f, 0.550487f, 0.522703f, 0.754432f, 0.050449f, 0.255882f, 0.46119f, 0.0253107f, 0.761951f, 0.267347f, 0.485221f, 0.620061f, 0.543256f, 0.95605f, 0.947825f, 0.0579034f, 0.97709f, 0.377694f, 0.84545f, 0.0448161f, 0.613559f, 0.105458f, 0.0365728f, 0.129131f, 0.954268f, 0.031975f, 0.0117617f, 0.889931f, 0.594795f, 0.510126f, 0.0368811f, 0.525887f, 0.291737f, 0.585558f, 0.337933f, 0.4318f, 0.555003f, 0.678292f, 0.443403f, 0.0961935f, 0.0921452f, 0.745526f, 0.240156f, 0.164814f, 0.957537f, 0.879883f, 0.950124f, 0.636305f, 0.220515f, 0.205567f, 0.189646f, 0.538752f, 0.290674f, 0.32938f, 0.797885f, 0.510492f, 0.630532f, 0.0980946f, 0.240802f, 0.898951f, 0.831824f, 0.255786f, 0.87384f, 0.566666f, 0.102045f, 0.334717f, 0.973228f, 0.431538f, 0.148153f, 0.528583f, 0.680616f, 0.376027f, 0.119179f, 0.366423f, 0.920142f, 0.556832f, 0.519105f, 0.206382f, 0.757003f, 0.021572f, 0.612761f, 0.451421f, 0.0577189f, 0.669513f, 0.830178f, 0.612823f, 0.60906f, 0.825019f, 0.993897f, 0.0701606f, 0.153628f, 0.61948f, 0.808924f, 0.423015f, 0.98627f, 0.671347f, 0.225241f, 0.267217f, 0.658016f, 0.681039f, 0.60694f, 0.54466f, 0.417781f, 0.0437905f, 0.146063f, 0.74165f, 0.571657f, 0.989927f, 0.535368f, 0.072208f, 0.145779f, 0.706269f, 0.585279f, 0.754385f, 0.61125f, 0.197921f, 0.79298f, 0.739187f, 0.599358f, 0.513894f, 0.574557f, 0.69983f, 0.849722f, 0.776265f, 0.175063f, 0.131493f, 0.707275f, 0.507535f, 0.730282f, 0.652986f, 0.742082f, 0.17585f, 0.654827f, 0.82512f, 0.58306f, 0.935568f, 0.102209f, 0.802158f, 0.520895f, 0.851372f, 0.483173f, 0.384515f, 0.0963455f, 0.366792f, 0.91588f, 0.157587f, 0.636136f, 0.819416f, 0.684009f, 0.98648f, 0.0268828f, 0.120039f, 0.763116f, 0.310086f, 0.328987f, 0.161907f, 0.82533f, 0.2567f, 0.953775f, 0.4694f, 0.778376f, 0.554404f, 0.986563f, 0.819607f, 0.377642f, 0.318059f, 0.918451f, 0.426894f, 0.516104f, 0.0522369f, 0.126048f, 0.660289f, 0.484337f, 0.956744f, 0.286428f, 0.0413375f, 0.896751f, 0.870654f, 0.200405f, 0.631848f, 0.824929f, 0.0500405f, 0.627212f, 0.434032f, 0.564735f, 0.89303f, 0.623865f, 0.0888084f, 0.403164f, 0.808939f, 0.415461f, 0.892036f, 0.796837f, 0.914876f, 0.74146f, 0.0978747f, 0.936716f, 0.89141f, 0.0777628f, 0.318249f, 0.715764f, 0.132868f, 0.578082f, 0.629962f, 0.93883f, 0.697048f, 0.083048f, 0.423943f, 0.196325f, 0.610782f, 0.67452f, 0.482867f, 0.253195f, 0.487306f, 0.918178f, 0.836293f, 0.518131f, 0.604459f, 0.16633f, 0.730498f, 0.21196f, 0.499088f, 0.0243054f, 0.398041f, 0.937355f, 0.313733f, 0.0234008f, 0.484782f, 0.209581f, 0.0270179f, 0.538044f, 0.714142f, 0.372622f, 0.227493f, 0.706833f, 0.960303f, 0.429944f, 0.840859f, 0.405883f, 0.381973f, 0.0148768f, 0.497663f, 0.213393f, 0.561021f, 0.348902f, 0.786089f, 0.28272f, 0.86897f, 0.531537f, 0.661053f, 0.189288f, 0.74971f, 0.325308f, 0.918797f, 0.813701f, 0.228766f, 0.824648f, 0.292886f, 0.710634f, 0.0932822f, 0.215401f, 0.0661168f, 0.074035f, 0.119914f, 0.25693f, 0.787931f, 0.672028f, 0.809371f, 0.624077f, 0.98712f, 0.770035f, 0.812618f, 0.11387f, 0.797945f, 0.586221f, 0.227731f, 0.0190717f, 0.911422f, 0.289266f, 0.104082f, 0.772593f, 0.365488f, 0.933498f, 0.286594f, 0.0819389f, 0.588701f, 0.812149f, 0.308459f, 0.281146f, 0.633226f, 0.580048f, 0.437438f, 0.398447f, 0.129135f, 0.4693f, 0.155483f, 0.55256f, 0.639354f, 0.900999f, 0.441239f, 0.951415f, 0.993208f, 0.0965534f, 0.457934f, 0.874072f, 0.146623f, 0.365402f, 0.859546f, 0.876866f, 0.608724f, 0.454491f, 0.840641f, 0.638527f, 0.654233f, 0.698724f, 0.706963f, 0.979879f, 0.296499f, 0.873044f, 0.996017f, 0.634044f, 0.769548f, 0.177342f, 0.667196f, 0.70298f, 0.640204f, 0.827305f, 0.377461f, 0.67522f, 0.661258f, 0.516612f, 0.203282f, 0.0711081f, 0.313474f, 0.281737f, 0.307195f, 0.047267f, 0.0455222f, 0.755168f, 0.87994f, 0.360752f, 0.209819f, 0.710788f, 0.0622891f, 0.617599f, 0.229477f, 0.863717f, 0.852072f, 0.115508f, 0.736702f, 0.190183f, 0.152829f, 0.0356765f, 0.472027f, 0.491483f, 0.122155f, 0.494228f, 0.137175f, 0.547976f, 0.195646f, 0.0121695f, 0.73299f, 0.309884f, 0.560044f, 0.987009f, 0.430698f, 0.00382474f, 0.814072f, 0.470584f, 0.347878f, 0.941325f, 0.230163f, 0.64553f, 0.700458f, 0.848281f, 0.339537f, 0.1447f, 0.552574f, 0.0186459f, 0.461755f, 0.598745f, 0.185845f, 0.228224f, 0.782785f, 0.269419f, 0.560944f, 0.59951f, 0.325321f, 0.418616f, 0.69145f, 0.107765f, 0.0735108f, 0.641734f, 0.784847f, 0.710308f, 0.894437f, 0.711628f, 0.64592f, 0.10606f, 0.768545f, 0.182833f, 0.0521074f, 0.373284f, 0.836888f, 0.812419f, 0.428769f, 0.0369999f, 0.107018f, 0.534173f, 0.297168f, 0.171209f, 0.447395f, 0.350044f, 0.713297f, 0.355536f, 0.771001f, 0.540365f, 0.768313f, 0.980241f, 0.502351f, 0.307796f, 0.707297f, 0.230677f, 0.237729f, 0.848202f, 0.778981f, 0.747103f, 0.875742f, 0.528053f, 0.931245f, 0.6015f, 5.17358e-05f, 0.643154f, 0.974905f, 0.506503f, 0.538104f, 0.794559f, 0.464988f, 0.775557f, 0.509155f, 0.383407f, 0.334673f, 0.252116f, 0.934364f, 0.508817f, 0.316989f, 0.249102f, 0.482309f, 0.421111f, 0.5004f, 0.946172f, 0.275846f, 0.00794803f, 0.80494f, 0.53359f, 0.193383f, 0.868671f, 0.22597f, 0.741639f, 0.0730955f, 0.418945f, 0.391232f, 0.798867f, 0.611787f, 0.961968f, 0.740611f, 0.259884f, 0.318891f, 0.807088f, 0.735529f, 0.856915f, 0.475515f, 0.36784f, 0.574426f, 0.41317f, 0.252748f, 0.869888f, 0.265862f, 0.586496f, 0.279353f, 0.936098f, 0.999699f, 0.578387f, 0.12723f, 0.368401f, 0.634045f, 0.748139f, 0.409005f, 0.88407f, 0.0502159f, 0.995984f, 0.0912325f, 0.0429103f, 0.970043f, 0.0216342f, 0.0568862f, 0.360242f, 0.833031f, 0.179521f, 0.59828f, 0.701973f, 0.387729f, 0.667839f, 0.115342f, 0.775766f, 0.246466f, 0.310886f, 0.186815f, 0.291886f, 0.566824f, 0.926555f, 0.292389f, 0.66239f, 0.363306f, 0.67926f, 0.111689f, 0.734432f, 0.711458f, 0.14954f, 0.00754289f, 0.62662f, 0.825252f, 0.149637f, 0.947528f, 0.459901f, 0.045079f, 0.939959f, 0.433388f, 0.70712f, 0.961558f, 0.95893f, 0.721015f, 0.874506f, 0.832101f, 0.282481f, 0.90934f, 0.761407f, 0.392322f, 0.159559f, 0.94197f, 0.870158f, 0.03336f, 0.256874f, 0.0622876f, 0.529925f, 0.987597f, 0.405906f, 0.0755638f, 0.528436f, 0.783823f, 0.528075f, 0.703557f, 0.92635f, 0.560757f, 0.490081f, 0.703722f, 0.937953f, 0.359367f, 0.793429f, 0.410178f, 0.670041f, 0.80674f, 0.00688808f, 0.16676f, 0.106225f, 0.444607f, 0.193202f, 0.522418f, 0.386556f, 0.670946f, 0.02345f, 0.914917f, 0.666931f, 0.116329f, 0.668862f, 0.0387895f, 0.528626f, 0.759742f, 0.0109455f, 0.707786f, 0.960788f, 0.786994f, 0.659212f, 0.730779f, 0.551935f, 0.0823566f, 0.352984f, 0.0386925f, 0.276281f, 0.36703f, 0.831537f, 0.360835f, 0.977842f, 0.191179f, 0.236736f, 0.539506f, 0.812653f, 0.420959f, 0.314764f, 0.681369f, 0.922514f, 0.0198208f, 0.254843f, 0.290766f, 0.0609381f, 0.79257f, 0.956871f, 0.293394f, 0.883664f, 0.692588f, 0.959669f, 0.515316f, 0.103004f, 0.526106f, 0.937301f, 0.755371f, 0.363085f, 0.949461f, 0.64215f, 0.955915f, 0.449413f, 0.499907f, 0.581976f, 0.937035f, 0.168617f, 0.98217f, 0.795014f, 0.418159f, 0.589456f, 0.71694f, 0.618336f, 0.917788f, 0.795414f, 0.148801f, 0.93661f, 0.452789f, 0.460439f, 0.39141f, 0.1485f, 0.569739f, 0.969689f, 0.286177f, 0.288925f, 0.121401f, 0.689391f, 0.800055f, 0.58403f, 0.0913524f, 0.721822f, 0.820777f, 0.627701f, 0.848366f, 0.430608f, 0.568319f, 0.24714f, 0.456631f, 0.474619f, 0.182914f, 0.16318f, 0.969156f, 0.0715661f, 0.357084f, 0.489423f, 0.441219f, 0.641865f, 0.0972819f, 0.281715f, 0.892366f, 0.666108f, 0.407355f, 0.793999f, 0.767004f, 0.849207f, 0.594093f, 0.591909f, 0.185094f, 0.481622f, 0.130339f, 0.207815f, 0.633715f, 0.0950679f, 0.304213f, 0.777771f, 0.566875f, 0.650894f, 0.908f, 0.715623f, 0.453709f, 0.494873f, 0.164986f, 0.136478f, 0.844892f, 0.351003f, 0.529236f, 0.357621f, 0.540397f, 0.501937f, 0.783928f, 0.325222f, 0.21133f, 0.0124853f, 0.0514517f, 0.123201f, 0.483255f, 0.897414f, 0.827372f, 0.383265f, 0.749082f, 0.144005f, 0.832858f, 0.419486f, 0.812362f, 0.354209f, 0.750605f, 0.725897f, 0.311671f, 0.898322f, 0.139518f, 0.375711f, 0.648342f, 0.938626f, 0.503861f, 0.388468f, 0.340517f, 0.443478f, 0.938442f, 0.586266f, 0.274055f, 0.0277146f, 0.27798f, 0.134791f, 0.323235f, 0.460063f, 0.206483f, 0.990425f, 0.285144f, 0.0296279f, 0.887272f, 0.677299f, 0.189501f, 0.50649f, 0.362349f, 0.57537f, 0.493371f, 0.749639f, 0.984641f, 0.545836f, 0.75374f, 0.841115f, 0.961771f, 0.377901f, 0.079646f, 0.36752f, 0.70832f, 0.41948f, 0.616419f, 0.619567f, 0.797896f, 0.971316f, 0.992549f, 0.977303f, 0.233725f, 0.0465331f, 0.443758f, 0.68886f, 0.809364f, 0.720206f, 0.473988f, 0.0438189f, 0.394437f, 0.843318f, 0.673354f, 0.247272f, 0.716884f, 0.465691f, 0.67913f, 0.103581f, 0.247044f, 0.776397f, 0.713336f, 0.0857064f, 0.733572f, 0.00824115f, 0.973825f, 0.0054631f, 0.690264f, 0.131226f, 0.202669f, 0.419127f, 0.0808313f, 0.90791f, 0.00845407f, 0.553777f, 0.333988f, 0.10771f, 0.864626f, 0.900613f, 0.358792f, 0.213129f, 0.9265f, 0.916642f, 0.305348f, 0.0714905f, 0.448046f, 0.0165338f, 0.781888f, 0.657568f, 0.380822f, 0.285861f, 0.747746f, 0.336165f, 0.122518f, 0.109034f, 0.196583f, 0.53702f, 0.332354f, 0.675378f, 0.457182f, 0.586038f, 0.0790538f, 0.39616f, 0.451382f, 0.212597f, 0.0578382f, 0.394242f, 0.250448f, 0.192612f, 0.987726f, 0.149995f, 0.48443f, 0.22735f, 0.0562007f, 0.397844f, 0.571009f, 0.0596158f, 0.533837f, 0.772239f, 0.37539f, 0.636339f, 0.084022f, 0.910418f, 0.385733f, 0.842044f, 0.358594f, 0.927797f, 0.0216316f, 0.834033f, 0.151185f, 0.65671f, 0.264563f, 0.683936f, 0.562267f, 0.240411f, 0.860032f, 0.0446961f, 0.936807f, 0.477205f, 0.860825f, 0.2123f, 0.284143f, 0.0455541f, 0.694883f, 0.0617012f, 0.575504f, 0.269704f, 0.346369f, 0.339188f, 0.480336f, 0.985856f, 0.0546475f, 0.626681f, 0.361976f, 0.626888f, 0.055417f, 0.82409f, 0.710263f, 0.128441f, 0.595352f, 0.22604f, 0.43445f, 0.837705f, 0.104783f, 0.0511415f, 0.190961f, 0.596936f, 0.053452f, 0.304174f, 0.57171f, 0.353215f, 0.010488f, 0.246816f, 0.0932122f, 0.612738f, 0.501998f, 0.586356f, 0.396924f, 0.0936036f, 0.924441f, 0.505925f, 0.262601f, 0.32949f, 0.00111347f, 0.46364f, 0.507593f, 0.121674f, 0.538844f, 0.855018f, 0.41841f, 0.103038f, 0.549434f, 0.966196f, 0.951207f, 0.0533569f, 0.445739f, 0.378899f, 0.160229f, 0.638584f, 0.873784f, 0.57244f, 0.935941f, 0.258489f, 0.0491446f, 0.467041f, 0.898167f, 0.338616f, 0.500514f, 0.301561f, 0.863336f, 0.848966f, 0.390039f, 0.28318f, 0.410614f, 0.256398f, 0.105856f, 0.0358722f, 0.961555f, 0.341872f, 0.891291f, 0.659691f, 0.798237f, 0.568368f, 0.181049f, 0.953716f, 0.66974f, 0.321753f, 0.730963f, 0.800236f, 0.615347f, 0.926229f, 0.771897f, 0.718593f, 0.760681f, 0.967301f, 0.773375f, 0.860493f, 0.443775f, 0.436871f, 0.244916f, 0.970733f, 0.0458495f, 0.577526f, 0.279178f, 0.934203f, 0.268333f, 0.192285f, 0.210131f, 0.710649f, 0.353909f, 0.836996f, 0.777894f, 0.230633f, 0.228066f, 0.708844f, 0.474627f, 0.302571f, 0.701639f, 0.0487951f, 0.379025f, 0.836639f, 0.684808f, 0.994508f, 0.926402f, 0.300223f, 0.53037f, 0.905855f, 0.0893086f, 0.714568f, 0.901778f, 0.666019f, 0.266441f, 0.730149f, 0.393682f, 0.430029f, 0.208461f, 0.794102f, 0.79503f, 0.586481f, 0.903543f, 0.241359f, 0.456652f, 0.00214802f, 0.312227f, 0.582326f, 0.615416f, 0.0558838f, 0.923502f, 0.706949f, 0.559163f, 0.948034f, 0.328065f, 0.951462f, 0.868804f, 0.147185f, 0.91278f, 0.779487f, 0.816029f, 0.639607f, 0.305077f, 0.918527f, 0.197986f, 0.294465f, 0.892737f, 0.539866f, 0.420432f, 0.122988f, 0.835f, 0.898758f, 0.386068f, 0.101431f, 0.589552f, 0.489902f, 0.26309f, 0.533791f, 0.356569f, 0.0118044f, 0.953867f, 0.26857f, 0.186294f, 0.0452774f, 0.421917f, 0.493784f, 0.414785f, 0.721879f, 0.912289f, 0.658226f, 0.844909f, 0.296203f, 0.168926f, 0.240677f, 0.680888f, 0.341393f, 0.440625f, 0.934391f, 0.269084f, 0.382079f, 0.353045f, 0.892814f, 0.46388f, 0.136527f, 0.666674f, 0.149175f, 0.878254f, 0.525858f, 0.803983f, 0.407269f, 0.369408f, 0.37673f, 0.98668f, 0.700055f, 0.158113f, 0.597962f, 0.632887f, 0.709538f, 0.950499f, 0.429259f, 0.657987f, 0.0603f, 0.78455f, 0.817818f, 0.670467f, 0.45188f, 0.533857f, 0.398086f, 0.237219f, 0.748755f, 0.657383f, 0.536506f, 0.399018f, 0.87733f, 0.342198f, 0.758642f, 0.509341f, 0.293924f, 0.060145f, 0.504314f, 0.568298f, 0.178665f, 0.953087f, 0.42456f, 0.666576f, 0.569727f, 0.721221f, 0.824107f, 0.796511f, 0.626571f, 0.255025f, 0.225761f, 0.59357f, 0.690361f, 0.686626f, 0.746304f, 0.184284f, 0.648282f, 0.819329f, 0.952076f, 0.448158f, 0.0332633f, 0.852651f, 0.531981f, 0.896184f, 0.737609f, 0.560398f, 0.353053f, 0.307972f, 0.485161f, 0.300442f, 0.942142f, 0.73065f, 0.979565f, 0.927786f, 0.118953f, 0.528236f, 0.659064f, 0.284041f, 0.624441f, 0.229304f, 0.73557f, 0.880571f, 0.339063f, 0.708249f, 0.826763f, 0.210482f, 0.136053f, 0.0496121f, 0.466992f, 0.822229f, 0.191336f, 0.304231f, 0.620374f, 0.0859391f, 0.223158f, 0.2694f, 0.193214f, 0.261619f, 0.014816f, 0.17563f, 0.554757f, 0.674788f, 0.741212f, 0.766272f, 0.914706f, 0.615055f, 0.160788f, 0.637888f, 0.430139f, 0.464245f, 0.380538f, 0.892205f, 0.335936f, 0.921497f, 0.846967f, 0.00290858f, 0.91668f, 0.307019f, 0.489716f, 0.890401f, 0.680415f, 0.846589f, 0.337138f, 0.486051f, 0.356143f, 0.666638f, 0.146973f, 0.760682f, 0.262908f, 0.0927556f, 0.390415f, 0.960416f, 0.195444f, 0.515854f, 0.310233f, 0.52904f, 0.765056f, 0.512377f, 0.989755f, 0.487331f, 0.367056f, 0.0187709f, 0.541553f, 0.373764f, 0.932688f, 0.0389721f, 0.484621f, 0.199486f, 0.400526f, 0.0814984f, 0.180155f, 0.911501f, 0.694136f, 0.34408f, 0.78081f, 0.368966f, 0.398434f, 0.37802f, 0.945652f, 0.911507f, 0.655942f, 0.36852f, 0.44883f, 0.583638f, 0.982306f, 0.17161f, 0.94737f, 0.51886f, 0.0805748f, 0.981497f, 0.46145f, 0.0340455f, 0.632266f, 0.685372f, 0.67774f, 0.694415f, 0.949281f, 0.0680856f, 0.513159f, 0.0697832f, 0.360516f, 0.970561f, 0.320675f, 0.95767f, 0.0560639f, 0.139137f, 0.886109f, 0.880892f, 0.968041f, 0.616826f, 0.553778f, 0.379093f, 0.538205f, 0.513793f, 0.958085f, 0.959205f, 0.907414f, 0.932649f, 0.22889f, 0.98758f, 0.0628116f, 0.955119f, 0.271644f, 0.801689f, 0.011347f, 0.646311f, 0.745771f, 0.47517f, 0.600875f, 0.294792f, 0.764504f, 0.554181f, 0.472776f, 0.0642935f, 0.606999f, 0.775537f, 0.408396f, 0.281776f, 0.340066f, 0.0262481f, 0.565226f, 0.611996f, 0.969395f, 0.9418f, 0.719319f, 0.796495f, 0.823326f, 0.225035f, 0.739689f, 0.451779f, 0.0521533f, 0.449227f, 0.959449f, 0.961225f, 0.660242f, 0.920841f, 0.416676f, 0.797053f, 0.655847f, 0.608478f, 0.900489f, 0.165995f, 0.738849f, 0.27131f, 0.801538f, 0.94637f, 0.370646f, 0.679767f, 0.494438f, 0.378872f, 0.35697f, 0.359024f, 0.303692f, 0.275711f, 0.323702f, 0.512316f, 0.371951f, 0.533268f, 0.685444f, 0.40831f, 0.771926f, 0.748736f, 0.540789f, 0.642759f, 0.538328f, 0.647328f, 0.291415f, 0.874469f, 0.834747f, 0.857975f, 0.968321f, 0.990562f, 0.263434f, 0.639832f, 0.441566f, 0.0726332f, 0.340444f, 0.752048f, 0.349807f, 0.730568f, 0.789266f, 0.811853f, 0.513046f, 0.899613f, 0.516308f, 0.497525f, 0.234687f, 0.237778f, 0.165675f, 0.762917f, 0.451826f, 0.615823f, 0.662717f, 0.457509f, 0.158498f, 0.577316f, 0.35561f, 0.330589f, 0.700955f, 0.841483f, 0.163454f, 0.193675f, 0.662746f, 0.991028f, 0.736513f, 0.560741f, 0.216299f, 0.708886f, 0.122411f, 0.901935f, 0.113462f, 0.504369f, 0.0346855f, 0.435608f, 0.862252f, 0.75051f, 0.151968f, 0.911389f, 0.652589f, 0.267185f, 0.157826f, 0.190982f, 0.335694f, 0.688365f, 0.911853f, 0.706414f, 0.704084f, 0.973135f, 0.838225f, 0.104534f, 0.0721f, 0.0749146f, 0.326383f, 0.87291f, 0.402227f, 0.401096f, 0.412568f, 0.0246242f, 0.525776f, 0.188117f, 0.00442395f, 0.494337f, 0.519534f, 0.110586f, 0.173421f, 0.20723f, 0.318541f, 0.73166f, 0.681771f, 0.870382f, 0.710488f, 0.206312f, 0.15444f, 0.147928f, 0.97648f, 0.596264f, 0.363473f, 0.606857f, 0.88176f, 0.745383f, 0.923696f, 0.965812f, 0.753421f, 0.641137f, 0.611174f, 0.459111f, 0.66334f, 0.954044f, 0.489173f, 0.948543f, 0.150962f, 0.0701563f, 0.8108f, 0.350131f, 0.713544f, 0.498818f, 0.200341f, 0.186501f, 0.64419f, 0.586686f, 0.745698f, 0.686946f, 0.673159f, 0.556574f, 0.410714f, 0.738815f, 0.696961f, 0.858431f, 0.10813f, 0.81019f, 0.787369f, 0.737881f, 0.260082f, 0.542611f, 0.309025f, 0.235043f, 0.964064f, 0.234988f, 0.87565f, 0.675234f, 0.493421f, 0.833309f, 0.910046f, 0.856748f, 0.339225f, 0.537402f, 0.105541f, 0.614716f, 0.374233f, 0.66333f, 0.098417f, 0.627339f, 0.415579f, 0.821638f, 0.705974f, 0.463912f, 0.0648303f, 0.954619f, 0.350892f, 0.126585f, 0.970619f, 0.883343f, 0.712869f, 0.203829f, 0.0761472f, 0.932658f, 0.868495f, 0.268359f, 0.406852f, 0.936335f, 0.885286f, 0.426577f, 0.814333f, 0.487315f, 0.266312f, 0.874065f, 0.113086f, 0.0879669f, 0.358795f, 0.731274f, 0.780572f, 0.762504f, 0.396417f, 0.0754197f, 0.0542f, 0.257103f, 0.856874f, 0.369736f, 0.27032f, 0.99483f, 0.778053f, 0.212175f, 0.180389f, 0.341515f, 0.978491f, 0.341037f, 0.70969f, 0.0857076f, 0.897486f, 0.113346f, 0.940731f, 0.503259f, 0.766457f, 0.272352f, 0.251583f, 0.19934f, 0.747792f, 0.244096f, 0.355233f, 0.747844f, 0.238513f, 0.74016f, 0.735271f, 0.488837f, 0.937653f, 0.974487f, 0.888443f, 0.251202f, 0.571489f, 0.864624f, 0.638694f, 0.971124f, 0.943243f, 0.702042f, 0.779263f, 0.257991f, 0.234725f, 0.065335f, 0.924497f, 0.227651f, 0.597242f, 0.893316f, 0.720336f, 0.697012f, 0.733315f, 0.628808f, 0.801178f, 0.168906f, 0.414159f, 0.26456f, 0.418753f, 0.0699098f, 0.657538f, 0.407016f, 0.0388166f, 0.0684677f, 0.0342391f, 0.790733f, 0.9259f, 0.796201f, 0.705881f, 0.0255235f, 0.719836f, 0.33844f, 0.186822f, 0.566064f, 0.675268f, 0.0149093f, 0.606167f, 0.350088f, 0.10668f, 0.446297f, 0.0843774f, 0.790409f, 0.717251f, 0.559988f, 0.257403f, 0.425087f, 0.376849f, 0.584526f, 0.476961f, 0.776508f, 0.800178f, 0.680013f, 0.412751f, 0.202657f, 0.826877f, 0.486285f, 0.00149935f, 0.390268f, 0.758384f, 0.905976f, 0.768315f, 0.253647f, 0.983081f, 0.00663012f, 0.202434f, 0.178113f, 0.116399f, 0.039723f, 0.6561f, 0.391824f, 0.297508f, 0.588924f, 0.923464f, 0.00537664f, 0.836237f, 0.964078f, 0.828544f, 0.150285f, 0.963379f, 0.966769f, 0.570818f, 0.181068f, 0.17895f, 0.909913f, 0.865376f, 0.40041f, 0.849182f, 0.743446f, 0.970249f, 0.00954235f, 0.73294f, 0.406437f, 0.731526f, 0.470572f, 0.905462f, 0.153149f, 0.069615f, 0.0179346f, 0.196463f, 0.115977f, 0.577559f, 0.370076f, 0.357853f, 0.229909f, 0.43031f, 0.865533f, 0.0289437f, 0.44876f, 0.538148f, 0.542429f, 0.678139f, 0.305213f, 0.265633f, 0.203731f, 0.731977f, 0.504254f, 0.791669f, 0.248444f, 0.00427831f, 0.728808f, 0.422607f, 0.0443968f, 0.412837f, 0.77262f, 0.838393f, 0.724063f, 0.57939f, 0.650184f, 0.952033f, 0.531606f, 0.510049f, 0.280466f, 0.661898f, 0.298809f, 0.937598f, 0.908492f, 0.538353f, 0.188075f, 0.716075f, 0.303379f, 0.361017f, 0.462339f, 0.855308f, 0.064749f, 0.741943f, 0.66316f, 0.861273f, 0.665325f, 0.922275f, 0.198738f, 0.648602f, 0.816523f, 0.602193f, 0.65667f, 0.462498f, 0.293423f, 0.266133f, 0.597445f, 0.830623f, 0.540784f, 0.98207f, 0.0532956f, 0.676609f, 0.167312f, 0.646478f, 0.841116f, 0.891341f, 0.48221f, 0.0474615f, 0.958032f, 0.472501f, 0.0507142f, 0.321953f, 0.241055f, 0.888323f, 0.736603f, 0.796845f, 0.785677f, 0.707954f, 0.0422941f, 0.491214f, 0.695153f, 0.431698f, 0.0973597f, 0.69562f, 0.231038f, 0.160969f, 0.472323f, 0.296825f, 0.0143042f, 0.647385f, 0.472272f, 0.0449773f, 0.0375269f, 0.340891f, 0.182227f, 0.0961762f, 0.0278703f, 0.0500822f, 0.320766f, 0.612475f, 0.765363f, 0.129653f, 0.993632f, 0.597538f, 0.671239f, 0.898884f, 0.136976f, 0.654171f, 0.877248f, 0.430103f, 0.510388f, 0.00281405f, 0.579553f, 0.675898f, 0.283895f, 0.547819f, 0.797886f, 0.956798f, 0.916383f, 0.0430432f, 0.773556f, 0.682857f, 0.00983586f, 0.959418f, 0.380881f, 0.413192f, 0.909154f, 0.671533f, 0.465914f, 0.158052f, 0.534799f, 0.0888263f, 0.0101368f, 0.928351f, 0.0414402f, 0.319122f, 0.133462f, 0.961109f, 0.741489f, 0.785996f, 0.169425f, 0.559779f, 0.944418f, 0.782808f, 0.852151f, 0.00149579f, 0.205381f, 0.446745f, 0.842947f, 0.29455f, 0.787455f, 0.0536224f, 0.193258f, 0.366233f, 0.11789f, 0.639724f, 0.541375f, 0.786406f, 0.526812f, 0.843084f, 0.0228975f, 0.0407159f, 0.917178f, 0.247129f, 0.399214f, 0.601143f, 0.47783f, 0.0326244f, 0.0280982f, 0.994886f, 0.039664f, 0.757133f, 0.83938f, 0.120956f, 0.174113f, 0.313512f, 0.636826f, 0.576719f, 0.953172f, 0.195074f, 0.577762f, 0.476535f, 0.569366f, 0.350372f, 0.156191f, 0.411399f, 0.153506f, 0.935683f, 0.473002f, 0.440206f, 0.119016f, 0.645946f, 0.0209994f, 0.504743f, 0.675811f, 0.379955f, 0.335104f, 0.805845f, 0.115485f, 0.324205f, 0.347445f, 0.398456f, 0.0608475f, 0.695133f, 0.963092f, 0.852476f, 0.728553f, 0.634305f, 0.808109f, 0.705899f, 0.855941f, 0.224381f, 0.875126f, 0.257128f, 0.00800127f, 0.129995f, 0.999965f, 0.713339f, 0.110972f, 0.237753f, 0.0847136f, 0.68729f, 0.162604f, 0.859784f, 0.742029f, 0.847837f, 0.313516f, 0.136476f, 0.878395f, 0.938595f, 0.599178f, 0.951067f, 0.21406f, 0.561472f, 0.739648f, 0.850327f, 0.0271676f, 0.0405028f, 0.641079f, 0.260596f, 0.254249f, 0.702193f, 0.960725f, 0.38681f, 0.846363f, 0.517851f, 0.90948f, 0.107653f, 0.779072f, 0.931403f, 0.105728f, 0.178626f, 0.463024f, 0.145339f, 0.216668f, 0.818549f, 0.783054f, 0.80364f, 0.11403f, 0.871478f, 0.613073f, 0.246428f, 0.69674f, 0.646755f, 0.74023f, 0.361362f, 0.957374f, 0.322948f, 0.592186f, 0.687559f, 0.767892f, 0.918306f, 0.85567f, 0.374087f, 0.0485491f, 0.415257f, 0.571648f, 0.956083f, 0.543928f, 0.366023f, 0.228243f, 0.439239f, 0.732554f, 0.162414f, 0.893113f, 0.442318f, 0.873651f, 0.486249f, 0.975333f, 0.021467f, 0.0117069f, 0.45745f, 0.760263f, 0.397957f, 0.40605f, 0.977974f, 0.268662f, 0.991085f, 0.862039f, 0.851756f, 0.134341f, 0.868184f, 0.347163f, 0.695905f, 0.620275f, 0.268942f, 0.776129f, 0.805826f, 0.020793f, 0.922417f, 0.703328f, 0.66502f, 0.651994f, 0.442992f, 0.199149f, 0.163923f, 0.516534f, 0.830496f, 0.436574f, 0.350105f, 0.624314f, 0.385537f, 0.00687786f, 0.0963305f, 0.162069f, 0.431528f, 0.662414f, 0.420444f, 0.27102f, 0.515764f, 0.384239f, 0.747993f, 0.0230769f, 0.301118f, 0.183377f, 0.717655f, 0.425752f, 0.605783f, 0.259882f, 0.543188f, 0.952181f, 0.853013f, 0.382584f, 0.279875f, 0.337507f, 0.790354f, 0.140324f, 0.00178103f, 0.89052f, 0.981606f, 0.967049f, 0.469f, 0.270805f, 0.892961f, 0.441842f, 0.258373f, 0.2039f, 0.750057f, 0.132035f, 0.970401f, 0.245466f, 0.277798f, 0.621281f, 0.256343f, 0.289629f, 0.214118f, 0.733642f, 0.226264f, 0.223815f, 0.933411f, 0.0981471f, 0.244844f, 0.705185f, 0.612502f, 0.459645f, 0.231061f, 0.180095f, 0.683949f, 0.62148f, 0.273106f, 0.420026f, 0.138759f, 0.0501066f, 0.21252f, 0.694149f, 0.119514f, 0.974127f, 0.571826f, 0.0811982f, 0.60171f, 0.841024f, 0.616945f, 0.24451f, 0.320739f, 0.80335f, 0.230985f, 0.881866f, 0.205061f, 0.070866f, 0.409333f, 0.862503f, 0.28329f, 0.110689f, 0.574015f, 0.772147f, 0.572682f, 0.640735f, 0.757784f, 0.628274f, 0.694181f, 0.417125f, 0.029089f, 0.0211161f, 0.759778f, 0.699903f, 0.505733f, 0.346615f, 0.165152f, 0.966993f, 0.974606f, 0.358874f, 0.21057f, 0.596211f, 0.428221f, 0.695422f, 0.534236f, 0.912104f, 0.354949f, 0.082759f, 0.381062f, 0.0662933f, 0.515534f, 0.170889f, 0.215113f, 0.279478f, 0.507817f, 0.842307f, 0.341165f, 0.0252222f, 0.700538f, 0.694553f, 0.191996f, 0.166709f, 0.712132f, 0.0224051f, 0.77722f, 0.930428f, 0.373895f, 0.895222f, 0.994022f, 0.657036f, 0.172438f, 0.784169f, 0.419275f, 0.791009f, 0.777573f, 0.39067f, 0.624302f, 0.359934f, 0.612963f, 0.706313f, 0.111959f, 0.0390335f, 0.970666f, 0.666958f, 0.471559f, 0.484552f, 0.314426f, 0.472257f, 0.904414f, 0.944772f, 0.412989f, 0.976617f, 0.572601f, 0.862967f, 0.313269f, 0.229798f, 0.23277f, 0.83076f, 0.588171f, 0.912323f, 0.793586f, 0.710813f, 0.16191f, 0.587905f, 0.00747314f, 0.634314f, 0.98659f, 0.0590751f, 0.294304f, 0.120698f, 0.406781f, 0.901869f, 0.917492f, 0.781419f, 0.644313f, 0.895011f, 0.105034f, 0.231572f, 0.831534f, 0.409516f, 0.0972754f, 0.128893f, 0.0207831f, 0.36514f, 0.680242f, 0.995298f, 0.813521f, 0.17838f, 0.666933f, 0.657365f, 0.734068f, 0.745543f, 0.176226f, 0.246687f, 0.178081f, 0.389388f, 0.37581f, 0.616925f, 0.777974f, 0.235395f, 0.639782f, 0.372604f, 0.629282f, 0.549173f, 0.837367f, 0.152404f, 0.530772f, 0.00985781f, 0.240783f, 0.159127f, 0.586533f, 0.742018f, 0.102374f, 0.570525f, 0.414934f, 0.944272f, 0.3101f, 0.7438f, 0.424261f, 0.982069f, 0.159292f, 0.594847f, 0.481841f, 0.350749f, 0.940426f, 0.593612f, 0.749338f, 0.238546f, 0.779049f, 0.494601f, 0.111275f, 0.494378f, 0.428584f, 0.296693f, 0.53248f, 0.153693f, 0.088863f, 0.529992f, 0.136403f, 0.222496f, 0.0779707f, 0.130267f, 0.58797f, 0.170469f, 0.688227f, 0.0272089f, 0.476707f, 0.51153f, 0.197059f, 0.205029f, 0.107399f, 0.631572f, 0.218695f, 0.145721f, 0.562572f, 0.639606f, 0.919694f, 0.277057f, 0.473889f, 0.553769f, 0.806082f, 0.533948f, 0.982034f, 0.575968f, 0.44451f, 0.0864928f, 0.141039f, 0.698115f, 0.357452f, 0.810979f, 0.959997f, 0.111074f, 0.190409f, 0.353476f, 0.890042f, 0.984756f, 0.402445f, 0.173425f, 0.456301f, 0.305938f, 0.570571f, 0.502218f, 0.790741f, 0.174554f, 0.158844f, 0.873969f, 0.224072f, 0.512449f, 0.960338f, 0.19284f, 0.282728f, 0.200631f, 0.987078f, 0.17059f, 0.899308f, 0.738105f, 0.770904f, 0.685526f, 0.567407f, 0.929639f, 0.889502f, 0.986333f, 0.507396f, 0.454575f, 0.946174f, 0.000128393f, 0.97613f, 0.247681f, 0.223189f, 0.130846f, 0.503126f, 0.00977749f, 0.257345f, 0.156397f, 0.262276f, 0.601337f, 0.111028f, 0.219943f, 0.0214403f, 0.879047f, 0.974838f, 0.526578f, 0.995052f, 0.573951f, 0.738533f, 0.745115f, 0.576467f, 0.478822f, 0.345538f, 0.952433f, 0.429159f, 0.965597f, 0.0971296f, 0.876261f, 0.540817f, 0.953571f, 0.606756f, 0.648853f, 0.296477f, 0.316441f, 0.763382f, 0.628519f, 0.719841f, 0.317647f, 0.224754f, 0.905354f, 0.133716f, 0.511366f, 0.684844f, 0.0750072f, 0.60444f, 0.197361f, 0.058035f, 0.362226f, 0.92726f, 0.435769f, 0.405334f, 0.15729f, 0.747457f, 0.11012f, 0.923759f, 0.631698f, 0.529456f, 0.480963f, 0.997847f, 0.0915321f, 0.552318f, 0.942094f, 0.155205f, 0.321001f, 0.88759f, 0.614815f, 0.452906f, 0.980156f, 0.988733f, 0.530218f, 0.830658f, 0.786017f, 0.772253f, 0.777924f, 0.55863f, 0.282608f, 0.189867f, 0.112464f, 0.449778f, 0.186788f, 0.0719575f, 0.451825f, 0.634827f, 0.408563f, 0.28201f, 0.590164f, 0.624124f, 0.290393f, 0.411561f, 0.505042f, 0.226456f, 0.100228f, 0.155996f, 0.200603f, 0.626228f, 0.824954f, 0.629744f, 0.544411f, 0.311014f, 0.862041f, 0.427736f, 0.539546f, 0.845024f, 0.316539f, 0.93555f, 0.0783485f, 0.158411f, 0.881053f, 0.213352f, 0.729507f, 0.202396f, 0.510654f, 0.815964f, 0.247689f, 0.303486f, 0.914875f, 0.973396f, 0.322303f, 0.565204f, 0.712887f, 0.404316f, 0.574151f, 0.810808f, 0.585602f, 0.953374f, 0.463926f, 0.438665f, 0.886745f, 0.957678f, 0.43447f, 0.0935005f, 0.0438857f, 0.193685f, 0.788244f, 0.0893059f, 0.969534f, 0.0802372f, 0.059717f, 0.807384f, 0.822331f, 0.633693f, 0.833317f, 0.387917f, 0.505188f, 0.461769f, 0.213152f, 0.0342209f, 0.325889f, 0.138084f, 0.559839f, 0.70969f, 0.366358f, 0.295135f, 0.398068f, 0.192014f, 0.166762f, 0.143056f, 0.364799f, 0.466608f, 0.615921f, 0.80872f, 0.106005f, 0.105853f, 0.0739101f, 0.880153f, 0.411685f, 0.31732f, 0.959769f, 0.154294f, 0.756141f, 0.63009f, 0.141698f, 0.49859f, 0.42693f, 0.739907f, 0.0242807f, 0.116376f, 0.60273f, 0.920794f, 0.312465f, 0.193958f, 0.0546883f, 0.277781f, 0.954336f, 0.12488f, 0.454498f, 0.989237f, 0.179482f, 0.0193954f, 0.520011f, 0.5112f, 0.420542f, 0.511111f, 0.527766f, 0.746887f, 0.405658f, 0.823256f, 0.795496f, 0.878712f, 0.929097f, 0.31443f, 0.0562202f, 0.542419f, 0.365227f, 0.621199f, 0.390671f, 0.842298f, 0.0553187f, 0.183106f, 0.752693f, 0.783371f, 0.0239456f, 0.401386f, 0.6085f, 0.487029f, 0.414038f, 0.106318f, 0.587626f, 0.600169f, 0.863234f, 0.564907f, 0.878195f, 0.858119f, 0.800449f, 0.304501f, 0.349082f, 0.85689f, 0.240666f, 0.914041f, 0.920501f, 0.0946677f, 0.296726f, 0.647105f, 0.157593f, 0.738604f, 0.777838f, 0.822456f, 0.121005f, 0.0835438f, 0.00650387f, 0.190033f, 0.970416f, 0.710227f, 0.497362f, 0.146237f, 0.169611f, 0.50219f, 0.195827f, 0.0658138f, 0.917113f, 0.693886f, 0.617656f, 0.668504f, 0.0501968f, 0.77622f, 0.278322f, 0.411264f, 0.38033f, 0.291897f, 0.584225f, 0.511621f, 0.636816f, 0.00325911f, 0.552845f, 0.487012f, 0.295391f, 0.351319f, 0.330664f, 0.504898f, 0.268667f, 0.273362f, 0.158858f, 0.342329f, 0.346874f, 0.586149f, 0.415282f, 0.367159f, 0.281282f, 0.394212f, 0.649718f, 0.701435f, 0.575093f, 0.987478f, 0.543518f, 0.60293f, 0.585194f, 0.0846587f, 0.993948f, 0.519088f, 0.392095f, 0.573498f, 0.493422f, 0.63178f, 0.383882f, 0.198191f, 0.894283f, 0.528548f, 0.599863f, 0.636292f, 0.10397f, 0.6732f, 0.364287f, 0.809858f, 0.560692f, 0.994631f, 0.4384f, 0.842604f, 0.652818f, 0.776153f, 0.339616f, 0.516514f, 0.143501f, 0.257708f, 0.760231f, 0.926892f, 0.185963f, 0.565086f, 0.140491f, 0.0228559f, 0.00735798f, 0.813714f, 0.425085f, 0.911598f, 0.426543f, 0.151993f, 0.793393f, 0.628017f, 0.434025f, 0.254041f, 0.546806f, 0.312753f, 0.530425f, 0.470881f, 0.956417f, 0.829595f, 0.570299f, 0.49159f, 0.505353f, 0.179936f, 0.617646f, 0.0823811f, 0.132929f, 0.5014f, 0.290813f, 0.957392f, 0.797293f, 0.304657f, 0.727281f, 0.333453f, 0.641057f, 0.111023f, 0.0091141f, 0.17541f, 0.286548f, 0.0893028f, 0.00954593f, 0.0441531f, 0.880874f, 0.831576f, 0.216571f, 0.339205f, 0.411432f, 0.815293f, 0.69624f, 0.636377f, 0.0785996f, 0.0102724f, 0.591968f, 0.496091f, 0.847951f, 0.609832f, 0.0627377f, 0.249463f, 0.612134f, 0.544395f, 0.463748f, 0.40182f, 0.61142f, 0.271422f, 0.314641f, 0.831937f, 0.175664f, 0.945095f, 0.978263f, 0.313427f, 0.922018f, 0.280094f, 0.539594f, 0.187436f, 0.332567f, 0.386781f, 0.809014f, 0.053213f, 0.576812f, 0.254369f, 0.862251f, 0.381249f, 0.767665f, 0.176679f, 0.349803f, 0.80332f, 0.718744f, 0.178139f, 0.555278f, 0.384449f, 0.815755f, 0.933792f, 0.61947f, 0.957829f, 0.233526f, 0.382213f, 0.304502f, 0.948054f, 0.485502f, 0.580438f, 0.696949f, 0.0937883f, 0.728815f, 0.676401f, 0.305457f, 0.157044f, 0.136247f, 0.626979f, 0.563179f, 0.188353f, 0.454238f, 0.288522f, 0.755235f, 0.866475f, 0.979532f, 0.91483f, 0.601608f, 0.74356f, 0.904399f, 0.814325f, 0.334625f, 0.440071f, 0.349416f, 0.156377f, 0.22615f, 0.208253f, 0.275315f, 0.94069f, 0.297708f, 0.801272f, 0.236748f, 0.785785f, 0.139803f, 0.163611f, 0.788068f, 0.120665f, 0.10143f, 0.964675f, 0.807978f, 0.375503f, 0.719976f, 0.0627234f, 0.744448f, 0.148521f, 0.670968f, 0.564889f, 0.967662f, 0.138617f, 0.586044f, 0.580505f, 0.482541f, 0.555217f, 0.0987674f, 0.111251f, 0.162678f, 0.231221f, 0.0836387f, 0.76811f, 0.286222f, 0.40711f, 0.980047f, 0.764288f, 0.657563f, 0.763509f, 0.96356f, 0.606738f, 0.563903f, 0.0720881f, 0.306462f, 0.556852f, 0.976887f, 0.995086f, 0.70922f, 0.112916f, 0.321314f, 0.944721f, 0.212512f, 0.796404f, 0.935032f, 0.656479f, 0.265373f, 0.671016f, 0.0253296f, 0.132415f, 0.437462f, 0.399299f, 0.142063f, 0.965011f, 0.552034f, 0.59333f, 0.12919f, 0.567946f, 0.15816f, 0.947786f, 0.462562f, 0.496888f, 0.734393f, 0.598166f, 0.00171491f, 0.898537f, 0.755027f, 0.291732f, 0.862137f, 0.519213f, 0.493989f, 0.776933f, 0.0761662f, 0.613793f, 0.493426f, 0.159023f, 0.235848f, 0.589783f, 0.332266f, 0.849369f, 0.651109f, 0.127742f, 0.29675f, 0.273595f, 0.687917f, 0.442929f, 0.931522f, 0.561769f, 0.0636195f, 0.906886f, 0.477365f, 0.672938f, 0.861644f, 0.0969883f, 0.0387793f, 0.870088f, 0.736888f, 0.889562f, 0.249274f, 0.60556f, 0.668005f, 0.110343f, 0.100921f, 0.0862836f, 0.703271f, 0.629034f, 0.485964f, 0.417137f, 0.393032f, 0.0188766f, 0.728669f, 0.29715f, 0.0372549f, 0.670083f, 0.984021f, 0.919079f, 0.565775f, 0.355215f, 0.207795f, 0.278668f, 0.466946f, 0.344781f, 0.250272f, 0.400208f, 0.399751f, 0.590169f, 0.789912f, 0.85021f, 0.12721f, 0.851221f, 0.182549f, 0.319829f, 0.0236746f, 0.140023f, 0.122837f, 0.922413f, 0.215876f, 0.421003f, 0.335499f, 0.588046f, 0.148991f, 0.955343f, 0.707926f, 0.0355906f, 0.383157f, 0.115756f, 0.781074f, 0.624957f, 0.852997f, 0.819437f, 0.688536f, 0.540103f, 0.00235164f, 0.133666f, 0.536905f, 0.854726f, 0.0536206f, 0.0376954f, 0.102685f, 0.680753f, 0.451366f, 0.918893f, 0.476345f, 0.0675023f, 0.760103f, 0.0714962f, 0.866499f, 0.490291f, 0.12542f, 0.482161f, 0.631525f, 0.443632f, 0.819449f, 0.136307f, 0.703275f, 0.0271129f, 0.47967f, 0.38198f, 0.592568f, 0.934314f, 0.716009f, 0.832238f, 0.786019f, 0.555664f, 0.00513192f, 0.28334f, 0.542588f, 0.304002f, 0.259903f, 0.393253f, 0.62914f, 0.485006f, 0.4082f, 0.09165f, 0.471402f, 0.343116f, 0.995312f, 0.42106f, 0.575573f, 0.6356f, 0.996344f, 0.0922824f, 0.0503404f, 0.861474f, 0.971098f, 0.531618f, 0.278897f, 0.694201f, 0.739111f, 0.417865f, 0.347274f, 0.0560049f, 0.776491f, 0.29693f, 0.352665f, 0.851979f, 0.462535f, 0.925921f, 0.635194f, 0.749285f, 0.474837f, 0.0422809f, 0.250704f, 0.0542927f, 0.960633f, 0.504724f, 0.71587f, 0.512241f, 0.579656f, 0.274177f, 0.59571f, 0.0450952f, 0.325116f, 0.133309f, 0.00706547f, 0.0769446f, 0.133744f, 0.727747f, 0.636273f, 0.515981f, 0.3346f, 0.969261f, 0.751505f, 0.0726293f, 0.090784f, 0.992285f, 0.297629f, 0.156763f, 0.11701f, 0.798585f, 0.153628f, 0.876391f, 0.60225f, 0.0345976f, 0.867972f, 0.604693f, 0.7169f, 0.980062f, 0.56994f, 0.652737f, 0.492232f, 0.216526f, 0.134844f, 0.328194f, 0.349324f, 0.652535f, 0.0983934f, 0.267568f, 0.476328f, 0.940637f, 0.618916f, 0.645229f, 0.564712f, 0.361145f, 0.719035f, 0.7945f, 0.35482f, 0.832579f, 0.395652f, 0.961265f, 0.444648f, 0.569746f, 0.842745f, 0.608784f, 0.506809f, 0.333537f, 0.789048f, 0.228185f, 0.0515458f, 0.98826f, 0.0079848f, 0.912117f, 0.650609f, 0.193825f, 0.409119f, 0.290398f, 0.529025f, 0.485192f, 0.665535f, 0.513694f, 0.305503f, 0.431641f, 0.155585f, 0.349066f, 0.194616f, 0.0609608f, 0.7737f, 0.365058f, 0.947661f, 0.113823f, 0.485191f, 0.270988f, 0.340072f, 0.599013f, 0.0691046f, 0.0280304f, 0.470698f, 0.217867f, 0.27945f, 0.627204f, 0.417909f, 0.642555f, 0.920911f, 0.216709f, 0.704156f, 0.662401f, 0.179275f, 0.0822332f, 0.169142f, 0.382683f, 0.0331443f, 0.847433f, 0.262524f, 0.856625f, 0.98401f, 0.342673f, 0.0682913f, 0.0991218f, 0.597256f, 0.713984f, 0.0756392f, 0.156673f, 0.741148f, 0.529208f, 0.550065f, 0.956161f, 0.209575f, 0.621153f, 0.0550376f, 0.722213f, 0.34307f, 0.887517f, 0.961557f, 0.286025f, 0.0360352f, 0.963817f, 0.57112f, 0.792167f, 0.874987f, 0.936579f, 0.458739f, 0.221819f, 0.0484225f, 0.665387f, 0.220781f, 0.578058f, 0.385384f, 0.883892f, 0.248328f, 0.196923f, 0.763805f, 0.834794f, 0.760918f, 0.317117f, 0.980345f, 0.901547f, 0.502061f, 0.196929f, 0.0528333f, 0.189622f, 0.67401f, 0.194932f, 0.819875f, 0.626089f, 0.99374f, 0.724266f, 0.00707075f, 0.0384145f, 0.377771f, 0.958005f, 0.739583f, 0.0563767f, 0.202651f, 0.367577f, 0.698997f, 0.0820815f, 0.882301f, 0.616544f, 0.0582296f, 0.949367f, 0.491598f, 0.511587f, 0.74732f, 0.947975f, 0.761361f, 0.383735f, 0.525491f, 0.996303f, 0.950501f, 0.0831566f, 0.885541f, 0.450013f, 0.010177f, 0.825059f, 0.258228f, 0.93181f, 0.228712f, 0.259199f, 0.233653f, 0.820137f, 0.929304f, 0.123893f, 0.989354f, 0.592356f, 0.3745f, 0.71626f, 0.765341f, 0.395999f, 0.840106f, 0.115831f, 0.320817f, 0.270444f, 0.182095f, 0.112124f, 0.0783929f, 0.499542f, 0.30114f, 0.596813f, 0.468669f, 0.889689f, 0.478028f, 0.543028f, 0.272562f, 0.595185f, 0.667194f, 0.60921f, 0.29821f, 0.26297f, 0.66534f, 0.865841f, 0.12424f, 0.908586f, 0.934559f, 0.156946f, 0.96181f, 0.342982f, 0.0481719f, 0.542999f, 0.427977f, 0.761714f, 0.837432f, 0.0189111f, 0.334859f, 0.763214f, 0.959384f, 0.00574281f, 0.445965f, 0.535224f, 0.635295f, 0.197553f, 0.636564f, 0.539617f, 0.666011f, 0.234288f, 0.355765f, 0.053203f, 0.709216f, 0.0888354f, 0.475347f, 0.464947f, 0.202297f, 0.797056f, 0.392016f, 0.936453f, 0.308735f, 0.502893f, 0.675965f, 0.940242f, 0.757746f, 0.555337f, 0.534555f, 0.0817575f, 0.403504f, 0.755465f, 0.315231f, 0.862395f, 0.842581f, 0.316213f, 0.149369f, 0.296974f, 0.036262f, 0.807712f, 0.482911f, 0.28549f, 0.335535f, 0.0817643f, 0.636789f, 0.404951f, 0.469242f, 0.308286f, 0.25039f, 0.237834f, 0.586363f, 0.133399f, 0.886036f, 0.776181f, 0.465954f, 0.0859602f, 0.113114f, 0.52154f, 0.580957f, 0.949964f, 0.621371f, 0.868865f, 0.385465f, 0.491927f, 0.768945f, 0.389671f, 0.868688f, 0.0854205f, 0.549694f, 0.139308f, 0.424174f, 0.0325483f, 0.802686f, 0.508515f, 0.697088f, 0.603539f, 0.728966f, 0.937695f, 0.288556f, 0.686755f, 0.56678f, 0.577736f, 0.9149f, 0.145155f, 0.809056f, 0.479846f, 0.792542f, 0.235605f, 0.289845f, 0.339546f, 0.948304f, 0.374576f, 0.312527f, 0.0241412f, 0.0254658f, 0.102198f, 0.99887f, 0.755931f, 0.771815f, 0.221894f, 0.650446f, 0.522338f, 0.647594f, 0.343701f, 0.35394f, 0.145472f, 0.780817f, 0.0928448f, 0.920876f, 0.0360954f, 0.19768f, 0.158536f, 0.58765f, 0.0930221f, 0.478469f, 0.80627f, 0.61792f, 0.367957f, 0.749602f, 0.54134f, 0.431034f, 0.0941319f, 0.153414f, 0.435797f, 0.411997f, 0.393457f, 0.408773f, 0.253482f, 0.136788f, 0.479941f, 0.698831f, 0.440438f, 0.267989f, 0.324515f, 0.345774f, 0.647049f, 0.474003f, 0.432191f, 0.668224f, 0.314087f, 0.903054f, 0.920958f, 0.76844f, 0.13128f, 0.392562f, 0.620915f, 0.252017f, 0.880444f, 0.556165f, 0.011176f, 0.899954f, 0.0411076f, 0.0495049f, 0.250841f, 0.404541f, 0.358772f, 0.0987615f, 0.718135f, 0.475056f, 0.344506f, 0.933108f, 0.610929f, 0.0210743f, 0.761055f, 0.583257f, 0.285506f, 0.963131f, 0.714188f, 0.650956f, 0.917127f, 0.718439f, 0.487927f, 0.494666f, 0.502551f, 0.319778f, 0.818145f, 0.0373288f, 0.500038f, 0.643328f, 0.343029f, 0.0312736f, 0.439563f, 0.516751f, 0.418804f, 0.404099f, 0.799441f, 0.383659f, 0.497928f, 0.0884743f, 0.834432f, 0.448695f, 0.174522f, 0.969026f, 0.0567128f, 0.811041f, 0.436852f, 0.669133f, 0.956817f, 0.934233f, 0.999377f, 0.46376f, 0.904531f, 0.990048f, 0.844536f, 0.344221f, 0.327283f, 0.672179f, 0.447807f, 0.629699f, 0.468759f, 0.552807f, 0.439826f, 0.27493f, 0.71894f, 0.434387f, 0.745172f, 0.958573f, 0.281854f, 0.730554f, 0.601443f, 0.591778f, 0.784222f, 0.380494f, 0.776479f, 0.745254f, 0.282708f, 0.171382f, 0.0901646f, 0.580693f, 0.0139402f, 0.225617f, 0.351103f, 0.132169f, 0.420177f, 0.346412f, 0.169704f, 0.348524f, 0.747227f, 0.216859f, 0.496962f, 0.795404f, 0.645949f, 0.362256f, 0.941042f, 0.965377f, 0.857509f, 0.0768885f, 0.00932251f, 0.683445f, 0.511655f, 0.00601335f, 0.120911f, 0.161513f, 0.211679f, 0.787344f, 0.874349f, 0.717985f, 0.502714f, 0.166127f, 0.265323f, 0.702488f, 0.680595f, 0.834315f, 0.033373f, 0.945105f, 0.688605f, 0.733733f, 0.799686f, 0.110531f, 0.957362f, 0.872062f, 0.537134f, 0.594211f, 0.543484f, 0.559464f, 0.664876f, 0.121834f, 0.208257f, 0.623329f, 0.231384f, 0.351651f, 0.28177f, 0.677623f, 0.159049f, 0.0789706f, 0.649168f, 0.708874f, 0.429019f, 0.806167f, 0.322563f, 0.856619f, 0.0595638f, 0.955667f, 0.877296f, 0.63245f, 0.554974f, 0.997797f, 0.655268f, 0.0881875f, 0.774129f, 0.228393f, 0.280366f, 0.840425f, 0.288769f, 0.137836f, 0.822214f, 0.812979f, 0.268801f, 0.431051f, 0.743164f, 0.449795f, 0.0280965f, 0.813509f, 0.753704f, 0.752745f, 0.40483f, 0.209138f, 0.136398f, 0.547444f, 0.952821f, 0.145824f, 0.921534f, 0.675708f, 0.0968346f, 0.429042f, 0.90069f, 0.880692f, 0.660973f, 0.762841f, 0.043475f, 0.548615f, 0.351768f, 0.487706f, 0.837525f, 0.858942f, 0.426968f, 0.693482f, 0.834067f, 0.178751f, 0.916725f, 0.312368f, 0.952488f, 0.336711f, 0.571418f, 0.886898f, 0.640941f, 0.1806f, 0.55419f, 0.590488f, 0.83163f, 0.14007f, 0.403142f, 0.887247f, 0.342949f, 0.88435f, 0.171615f, 0.209037f, 0.268949f, 0.0488915f, 0.431707f, 0.229817f, 0.641149f, 0.00553621f, 0.0360574f, 0.35453f, 0.904074f, 0.495435f, 0.780787f, 0.196379f, 0.810491f, 0.837112f, 0.189245f, 0.359259f, 0.275542f, 0.299573f, 0.220301f, 0.866422f, 0.507245f, 0.487767f, 0.243448f, 0.698851f, 0.588256f, 0.0844826f, 0.907929f, 0.819771f, 0.342594f, 0.215029f, 0.41934f, 0.00178745f, 0.273484f, 0.364893f, 0.236331f, 0.574799f, 0.557957f, 0.481694f, 0.426242f, 0.406354f, 0.286845f, 0.293724f, 0.178113f, 0.00349964f, 0.932298f, 0.545826f, 0.777305f, 0.10292f, 0.167152f, 0.30941f, 0.785231f, 0.0760898f, 0.625054f, 0.589052f, 0.847903f, 0.111181f, 0.177771f, 0.500524f, 0.842363f, 0.114009f, 0.612185f, 0.878975f, 0.955185f, 0.399446f, 0.0946839f, 0.540699f, 0.915803f, 0.442323f, 0.56911f, 0.55533f, 0.401268f, 0.284556f, 0.101289f, 0.983081f, 0.835117f, 0.606981f, 0.372049f, 0.496544f, 0.226489f, 0.279214f, 0.914644f, 0.937939f, 0.281129f, 0.389272f, 0.968187f, 0.635215f, 0.487692f, 0.909698f, 0.844426f, 0.1477f, 0.226635f, 0.521511f, 0.370946f, 0.150209f, 0.729102f, 0.367415f, 0.761533f, 0.615057f, 0.692156f, 0.667996f, 0.0963341f, 0.914547f, 0.691541f, 0.151564f, 0.945305f, 0.0662834f, 0.366292f, 0.551977f, 0.291646f, 0.679143f, 0.851856f, 0.791583f, 0.503778f, 0.023168f, 0.412157f, 0.247637f, 0.912395f, 0.00945087f, 0.758841f, 0.376842f, 0.467647f, 0.404122f, 0.276024f, 0.202679f, 0.829769f, 0.0542804f, 0.265896f, 0.631932f, 0.761238f, 0.277217f, 0.316484f, 0.497037f, 0.117953f, 0.268658f, 0.438275f, 0.908489f, 0.463122f, 0.633023f, 0.00544212f, 0.53295f, 0.127467f, 0.784857f, 0.871983f, 0.454343f, 0.13975f, 0.279066f, 0.334803f, 0.446106f, 0.897049f, 0.351662f, 0.51381f, 0.321255f, 0.350486f, 0.101246f, 0.54997f, 0.183608f, 0.305128f, 0.233735f, 0.822038f, 0.771658f, 0.200972f, 0.40196f, 0.562487f, 0.108847f, 0.718786f, 0.0755256f, 0.961698f, 0.585156f, 0.970544f, 0.361813f, 0.987947f, 0.344862f, 0.964177f, 0.014727f, 0.0226188f, 0.807721f, 0.137678f, 0.148848f, 0.662738f, 0.741941f, 0.190003f, 0.997506f, 0.717802f, 0.00164524f, 0.200278f, 0.512166f, 0.930637f, 0.228209f, 0.220154f, 0.441296f, 0.425959f, 0.693154f, 0.421103f, 0.106279f, 0.521333f, 0.347792f, 0.023648f, 0.67607f, 0.418503f, 0.139156f, 0.650666f, 0.168607f, 0.539383f, 0.793094f, 0.177687f, 0.295956f, 0.926763f, 0.126443f, 0.478607f, 0.199744f, 0.936475f, 0.710082f, 0.088558f, 0.223505f, 0.853099f, 0.271153f, 0.934545f, 0.604885f, 0.523008f, 0.430345f, 0.632033f, 0.676408f, 0.492389f, 0.494581f, 0.315705f, 0.407379f, 0.417697f, 0.675943f, 0.168078f, 0.382832f, 0.379915f, 0.269397f, 0.761822f, 0.981925f, 0.146796f, 0.799504f, 0.381602f, 0.705672f, 0.422183f, 0.210244f, 0.0850634f, 0.582337f, 0.934588f, 0.466793f, 0.6366f, 0.826037f, 0.574077f, 0.553228f, 0.924906f, 0.922825f, 0.66238f, 0.162232f, 0.224305f, 0.0519152f, 0.855643f, 0.366552f, 0.152796f, 0.00665957f, 0.915834f, 0.826795f, 0.978109f, 0.69574f, 0.190423f, 0.850852f, 0.192516f, 0.0265149f, 0.523871f, 0.855658f, 0.277339f, 0.476368f, 0.0804248f, 0.892567f, 0.533843f, 0.422648f, 0.909866f, 0.12791f, 0.597845f, 0.625991f, 0.927966f, 0.319578f, 0.139636f, 0.392265f, 0.104043f, 0.931437f, 0.0622179f, 0.616482f, 0.184848f, 0.301881f, 0.633924f, 0.848496f, 0.011613f, 0.558658f, 0.742868f, 0.176664f, 0.498611f, 0.744262f, 0.0285374f, 0.418136f, 0.825301f, 0.42586f, 0.974819f, 0.719124f, 0.433044f, 0.870553f, 0.627664f, 0.854485f, 0.518249f, 0.590694f, 0.704523f, 0.450934f, 0.0700942f, 0.0874604f, 0.337147f, 0.492185f, 0.8885f, 0.621986f, 0.168248f, 0.837084f, 0.944791f, 0.719689f, 0.927206f, 0.844932f, 0.989313f, 0.724708f, 0.653446f, 0.365233f, 0.0451572f, 0.432647f, 0.165102f, 0.795004f, 0.126218f, 0.239627f, 0.0155477f, 0.935287f, 0.989966f, 0.30067f, 0.337323f, 0.612089f, 0.935274f, 0.847273f, 0.291589f, 0.726199f, 0.768206f, 0.872156f, 0.87183f, 0.354196f, 0.634677f, 0.445589f, 0.397467f, 0.869365f, 0.347935f, 0.638584f, 0.508064f, 0.0356273f, 0.640255f, 0.195039f, 0.121921f, 0.170327f, 0.236788f, 0.525543f, 0.380477f, 0.640126f, 0.966145f, 0.0275385f, 0.483208f, 0.380622f, 0.621541f, 0.642745f, 0.557541f, 0.822002f, 0.303046f, 0.416204f, 0.779118f, 0.387479f, 0.96399f, 0.464379f, 0.864708f, 0.614493f, 0.801388f, 0.146563f, 0.713396f, 0.0371329f, 0.746244f, 0.641826f, 0.108604f, 0.364927f, 0.363469f, 0.0106725f, 0.823084f, 0.851167f, 0.273869f, 0.227434f, 0.435503f, 0.0165272f, 0.630164f, 0.896852f, 0.773881f, 0.0413545f, 0.558784f, 0.483894f, 0.774959f, 0.0977034f, 0.135825f, 0.728994f, 0.00489014f, 0.599283f, 0.261376f, 0.341713f, 0.687273f, 0.203976f, 0.152216f, 0.63596f, 0.821107f, 0.599782f, 0.0429922f, 0.175607f, 0.691483f, 0.571165f, 0.123619f, 0.338721f, 0.41125f, 0.827582f, 0.259272f, 0.954404f, 0.711268f, 0.158892f, 0.723477f, 0.26951f, 0.709728f, 0.938119f, 0.832301f, 0.737552f, 0.519661f, 0.416426f, 0.882457f, 0.453152f, 0.115849f, 0.271428f, 0.0334407f, 0.936773f, 0.508819f, 0.555718f, 0.377546f, 0.517199f, 0.864394f, 0.0810964f, 0.797491f, 0.349751f, 0.662266f, 0.46162f, 0.619854f, 0.354706f, 0.628023f, 0.671643f, 0.000773542f, 0.846307f, 0.542696f, 0.592178f, 0.0777423f, 0.634771f, 0.682495f, 0.261238f, 0.508481f, 0.984641f, 0.959791f, 0.741369f, 0.32138f, 0.535256f, 0.847494f, 0.86677f, 0.8867f, 0.432765f, 0.760854f, 0.158056f, 0.991061f, 0.737626f, 0.526399f, 0.923892f, 0.541165f, 0.65592f, 0.179625f, 0.726484f, 0.498102f, 0.733978f, 0.228333f, 0.193556f, 0.189515f, 0.240356f, 0.232233f, 0.507678f, 0.345721f, 0.324308f, 0.790667f, 0.946143f, 0.993343f, 0.137192f, 0.0727121f, 0.716761f, 0.691615f, 0.478477f, 0.394535f, 0.115059f, 0.474343f, 0.762372f, 0.0948848f, 0.196792f, 0.492499f, 0.29865f, 0.455808f, 0.484853f, 0.835931f, 0.895271f, 0.305977f, 0.382993f, 0.87606f, 0.602305f, 0.775395f, 0.127797f, 0.927046f, 0.506469f, 0.495949f, 0.40417f, 0.379146f, 0.423219f, 0.0446891f, 0.398602f, 0.689065f, 0.847912f, 0.550092f, 0.89121f, 0.00920063f, 0.576135f, 0.0883344f, 0.592445f, 0.956837f, 0.828345f, 0.174842f, 0.807681f, 0.429489f, 0.505379f, 0.807906f, 0.536595f, 0.478865f, 0.0814109f, 0.490502f, 0.121416f, 0.800612f, 0.391844f, 0.954796f, 0.231231f, 0.0557827f, 0.887462f, 0.998108f, 0.25508f, 0.83718f, 0.405546f, 0.906978f, 0.235831f, 0.574562f, 0.2957f, 0.188627f, 0.185206f, 0.819698f, 0.693555f, 0.442004f, 0.169963f, 0.426534f, 0.425901f, 0.543655f, 0.969529f, 0.933518f, 0.145669f, 0.759227f, 0.915676f, 0.273991f, 0.729098f, 0.31145f, 0.0192084f, 0.511204f, 0.77779f, 0.25558f, 0.464314f, 0.273419f, 0.727192f, 0.134382f, 0.976244f, 0.775359f, 0.518023f, 0.189192f, 0.803747f, 0.211738f, 0.600633f, 0.851521f, 0.584827f, 0.44586f, 0.901889f, 0.310346f, 0.12561f, 0.979792f, 0.540059f, 0.307323f, 0.359533f, 0.790244f, 0.672675f, 0.0738207f, 0.945995f, 0.354888f, 0.714272f, 0.614953f, 0.580057f, 0.0454896f, 0.773029f, 0.276525f, 0.400251f, 0.777706f, 0.216194f, 0.731417f, 0.391679f, 0.900286f, 0.541262f, 0.0339563f, 0.392093f, 0.702863f, 0.434141f, 0.942108f, 0.110307f, 0.927712f, 0.777655f, 0.119819f, 0.400947f, 0.535523f, 0.279621f, 0.994394f, 0.496025f, 0.45035f, 0.737689f, 0.304766f, 0.789883f, 0.691568f, 0.0935304f, 0.915671f, 0.72731f, 0.729875f, 0.649525f, 0.141318f, 0.264691f, 0.311853f, 0.843073f, 0.0702589f, 0.689202f, 0.469382f, 0.0296724f, 0.786056f, 0.983078f, 0.0617036f, 0.888933f, 0.608236f, 0.338423f, 0.862757f, 0.259319f, 0.711308f, 0.48213f, 0.483573f, 0.73203f, 0.599131f, 0.427597f, 0.449767f, 0.662143f, 0.142532f, 0.74296f, 0.355283f, 0.5316f, 0.937622f, 0.38181f, 0.601194f, 0.93952f, 0.299073f, 0.0300616f, 0.636648f, 0.564301f, 0.0981288f, 0.830984f, 0.0247317f, 0.70846f, 0.443461f, 0.168187f, 0.751938f, 0.0515943f, 0.191639f, 0.940248f, 0.46713f, 0.00027386f, 0.688898f, 0.138161f, 0.815352f, 0.645526f, 0.728443f, 0.774305f, 0.284412f, 0.112302f, 0.824175f, 0.709396f, 0.473611f, 0.546887f, 0.133892f, 0.615861f, 0.408212f, 0.343921f, 0.503693f, 0.823462f, 0.00885317f, 0.734236f, 0.777598f, 0.708333f, 0.4036f, 0.253607f, 0.435411f, 0.100474f, 0.110289f, 0.217749f, 0.515388f, 0.633986f, 0.024931f, 0.637958f, 0.735677f, 0.934728f, 0.493779f, 0.16506f, 0.453233f, 0.587303f, 0.14519f, 0.482511f, 0.474612f, 0.402911f, 0.471623f, 0.00747627f, 0.0555732f, 0.977537f, 0.412581f, 0.394904f, 0.80255f, 0.977978f, 0.0657417f, 0.644969f, 0.842881f, 0.30897f, 0.263598f, 0.626181f, 0.459894f, 0.621051f, 0.0663734f, 0.00782845f, 0.634455f, 0.798101f, 0.760185f, 0.452868f, 0.627108f, 0.755537f, 0.630484f, 0.575739f, 0.637636f, 0.916605f, 0.285008f, 0.0181095f, 0.718673f, 0.279337f, 0.520797f, 0.326475f, 0.0360228f, 0.0481964f, 0.0094155f, 0.624682f, 0.978486f, 0.300725f, 0.560873f, 0.857252f, 0.898491f, 0.0261796f, 0.935442f, 0.00226439f, 0.369742f, 0.901717f, 0.199691f, 0.49845f, 0.724823f, 0.539641f, 0.541844f, 0.436235f, 0.217045f, 0.480357f, 0.505569f, 0.8483f, 0.966082f, 0.244648f, 0.378249f, 0.188199f, 0.795171f, 0.945042f, 0.190996f, 0.607762f, 0.107782f, 0.77143f, 0.564195f, 0.895802f, 0.281813f, 0.214475f, 0.424026f, 0.948014f, 0.630798f, 0.936923f, 0.884403f, 0.409745f, 0.585478f, 0.793767f, 0.476362f, 0.379856f, 0.717676f, 0.412765f, 0.276357f, 0.990492f, 0.272063f, 0.178426f, 0.695097f, 0.336698f, 0.993225f, 0.988549f, 0.557652f, 0.65713f, 0.293518f, 0.208687f, 0.172545f, 0.96807f, 0.934269f, 0.230664f, 0.896686f, 0.314386f, 0.527961f, 0.462698f, 0.797798f, 0.151281f, 0.638963f, 0.295506f, 0.349582f, 0.883782f, 0.672516f, 0.621829f, 0.285226f, 0.759997f, 0.757289f, 0.543576f, 0.0625032f, 0.850267f, 0.557823f, 0.772413f, 0.138459f, 0.373712f, 0.480045f, 0.030689f, 0.641374f, 0.782408f, 0.168057f, 0.360421f, 0.199623f, 0.115377f, 0.813596f, 0.678358f, 0.342444f, 0.26582f, 0.00591525f, 0.283163f, 0.407682f, 0.785782f, 0.0977254f, 0.160728f, 0.762813f, 0.573479f, 0.898984f, 0.0405639f, 0.420568f, 0.275309f, 0.623229f, 0.341443f, 0.765046f, 0.864441f, 0.27867f, 0.0692433f, 0.062564f, 0.649539f, 0.422946f, 0.851217f, 0.947537f, 0.350746f, 0.673897f, 0.720034f, 0.00890734f, 0.963641f, 0.852696f, 0.550347f, 0.0843111f, 0.258905f, 0.0346203f, 0.0211018f, 0.717017f, 0.457505f, 0.54584f, 0.483439f, 0.176523f, 0.464043f, 0.408288f, 0.221654f, 0.997748f, 0.920986f, 0.234864f, 0.784818f, 0.786941f, 0.382804f, 0.0270011f, 0.241091f, 0.106924f, 0.40364f, 0.447491f, 0.366943f, 0.796474f, 0.186059f, 0.503018f, 0.735243f, 0.903425f, 0.975389f, 0.678276f, 0.495448f, 0.604736f, 0.197145f, 0.961042f, 0.647923f, 0.686651f, 0.0193707f, 0.452604f, 0.327127f, 0.91481f, 0.903362f, 0.53074f, 0.854814f, 0.581991f, 0.317361f, 0.229803f, 0.48692f, 0.63633f, 0.987766f, 0.714006f, 0.230898f, 0.650067f, 0.547455f, 0.541696f, 0.0752586f, 0.713999f, 0.245399f, 0.231803f, 0.582825f, 0.710767f, 0.593871f, 0.131555f, 0.900225f, 0.519546f, 0.485698f, 0.805788f, 0.956696f, 0.109453f, 0.633426f, 0.0845869f, 0.178138f, 0.217805f, 0.507283f, 0.688616f, 0.559781f, 0.134245f, 0.854137f, 0.854356f, 0.683975f, 0.685215f, 0.370101f, 0.692283f, 0.692915f, 0.857771f, 0.199484f, 0.308744f, 0.539065f, 0.769612f, 0.0965434f, 0.412466f, 0.584648f, 0.56389f, 0.902638f, 0.255939f, 0.599727f, 0.72638f, 0.805014f, 0.733429f, 0.0323149f, 0.357784f, 0.859215f, 0.841399f, 0.0476339f, 0.354678f, 0.373714f, 0.268403f, 0.633773f, 0.643707f, 0.431396f, 0.356627f, 0.319686f, 0.884927f, 0.43825f, 0.123213f, 0.917867f, 0.887923f, 0.476999f, 0.320888f, 0.850616f, 0.460518f, 0.984096f, 0.708742f, 0.602617f, 0.242342f, 0.0822375f, 0.769586f, 0.859953f, 0.986874f, 0.271621f, 0.381774f, 0.580256f, 0.806828f, 0.653448f, 0.175783f, 0.720684f, 0.604432f, 0.810283f, 0.82537f, 0.777029f, 0.190185f, 0.881346f, 0.123456f, 0.4169f, 0.312984f, 0.71109f, 0.379802f, 0.702901f, 0.91573f, 0.138463f, 0.893744f, 0.904974f, 0.148429f, 0.868553f, 0.021413f, 0.325659f, 0.321182f, 0.458394f, 0.9185f, 0.657111f, 0.391165f, 0.423989f, 0.692714f, 0.204703f, 0.548315f, 0.337581f, 0.597745f, 0.118339f, 0.58786f, 0.27224f, 0.377868f, 0.518281f, 0.669602f, 0.114614f, 0.453017f, 0.65691f, 0.260958f, 0.429086f, 0.919754f, 0.632038f, 0.464322f, 0.427757f, 0.390527f, 0.698182f, 0.529399f, 0.535967f, 0.860006f, 0.86582f, 0.87482f, 0.414901f, 0.828315f, 0.790706f, 0.584447f, 0.137916f, 0.0666782f, 0.626311f, 0.339679f, 0.806634f, 0.664283f, 0.893367f, 0.192582f, 0.0922133f, 0.0631515f, 0.975556f, 0.796498f, 0.135178f, 0.537959f, 0.78077f, 0.663352f, 0.0141877f, 0.825989f, 0.0777304f, 0.948731f, 0.420816f, 0.811672f, 0.666337f, 0.142219f, 0.604513f, 0.880968f, 0.369619f, 0.720551f, 0.950459f, 0.203459f, 0.254215f, 0.187391f, 0.872013f, 0.540719f, 0.835673f, 0.760819f, 0.801522f, 0.537615f, 0.469476f, 0.200005f, 0.383686f, 0.903821f, 0.719678f, 0.643503f, 0.742222f, 0.660802f, 0.622005f, 0.115279f, 0.80868f, 0.410083f, 0.602116f, 0.196751f, 0.695222f, 0.623775f, 0.424857f, 0.0827443f, 0.302176f, 0.818945f, 0.54384f, 0.937174f, 0.66109f, 0.218779f, 0.231331f, 0.745365f, 0.698025f, 0.99938f, 0.836967f, 0.741806f, 0.577539f, 0.34268f, 0.863178f, 0.116269f, 0.904559f, 0.155217f, 0.703401f, 0.170877f, 0.254972f, 0.819891f, 0.728599f, 0.7314f, 0.0494436f, 0.395706f, 0.750079f, 0.510133f, 0.131256f, 0.706587f, 0.716959f, 0.672644f, 0.572409f, 0.134055f, 0.8016f, 0.948409f, 0.685077f, 0.883509f, 0.42391f, 0.0802641f, 0.396451f, 0.680006f, 0.796024f, 0.737545f, 0.779766f, 0.874185f, 0.185475f, 0.224181f, 0.726417f, 0.262177f, 0.983726f, 0.998792f, 0.601068f, 0.0632906f, 0.266559f, 0.994812f, 0.368607f, 0.338329f, 0.857998f, 0.394432f, 0.00395892f, 0.403091f, 0.975504f, 0.23115f, 0.882397f, 0.817858f, 0.40079f, 0.304486f, 0.19727f, 0.0403942f, 0.84796f, 0.121088f, 0.0914703f, 0.970986f, 0.187894f, 0.260465f, 0.0981842f, 0.129235f, 0.0053786f, 0.202048f, 0.431041f, 0.182747f, 0.118168f, 0.327375f, 0.134632f, 0.0938664f, 0.541778f, 0.893052f, 0.677389f, 0.60834f, 0.104955f, 0.455115f, 0.462641f, 0.21083f, 0.554428f, 0.513763f, 0.414927f, 0.152386f, 0.137165f, 0.304633f, 0.785922f, 0.0616525f, 0.872498f, 0.526546f, 0.243628f, 0.59958f, 0.763127f, 0.392787f, 0.239071f, 0.497765f, 0.938576f, 0.758766f, 0.105476f, 0.583509f, 0.107149f, 0.072246f, 0.0686736f, 0.491876f, 0.222793f, 0.242647f, 0.392899f, 0.134979f, 0.0411305f, 0.521578f, 0.297438f, 0.809898f, 0.0138163f, 0.470257f, 0.904504f, 0.0581343f, 0.797919f, 0.116889f, 0.775738f, 0.835381f, 0.353088f, 0.0392369f, 0.0841973f, 0.620153f, 0.839601f, 0.659522f, 0.698976f, 0.210228f, 0.0302424f, 0.397398f, 0.800551f, 0.427025f, 0.15325f, 0.0813214f, 0.433884f, 0.0652032f, 0.804778f, 0.296914f, 0.0291595f, 0.437946f, 0.131204f, 0.29828f, 0.220672f, 0.467927f, 0.177905f, 0.290324f, 0.0388322f, 0.542294f, 0.776009f, 0.824298f, 0.735709f, 0.153466f, 0.400214f, 0.708594f, 0.453441f, 0.594539f, 0.692301f, 0.488494f, 0.45268f, 0.854562f, 0.415268f, 0.613101f, 0.717661f, 0.668751f, 0.835263f, 0.500444f, 0.293188f, 0.446861f, 0.261365f, 0.618792f, 0.839053f, 0.147956f, 0.556072f, 0.757753f, 0.455075f, 0.869194f, 0.273371f, 0.8442f, 0.0187834f, 0.650478f, 0.766219f, 0.00604557f, 0.799275f, 0.480036f, 0.342347f, 0.804639f, 0.109157f, 0.700395f, 0.144913f, 0.0896981f, 0.104342f, 0.996452f, 0.802804f, 0.904757f, 0.267159f, 0.268582f, 0.257929f, 0.64107f, 0.0970939f, 0.139546f, 0.79182f, 0.587922f, 0.820792f, 0.710431f, 0.813237f, 0.237078f, 0.844224f, 0.844752f, 0.775276f, 0.279869f, 0.527013f, 0.00486709f, 0.29619f, 0.0297883f, 0.596303f, 0.617605f, 0.795947f, 0.97924f, 0.77399f, 0.800557f, 0.621752f, 0.24925f, 0.00137245f, 0.889115f, 0.296036f, 0.690818f, 0.0984665f, 0.733391f, 0.993227f, 0.00142601f, 0.0876534f, 0.626902f, 0.783111f, 0.391165f, 0.348762f, 0.0616425f, 0.584172f, 0.278297f, 0.186677f, 0.313632f, 0.630907f, 0.659842f, 0.000195905f, 0.0848633f, 0.994714f, 0.252779f, 0.282139f, 0.743638f, 0.171873f, 0.661953f, 0.248161f, 0.717851f, 0.760843f, 0.345918f, 0.862501f, 0.671703f, 0.64076f, 0.693063f, 0.366835f, 0.968806f, 0.804512f, 0.301244f, 0.328024f, 0.874884f, 0.47607f, 0.00138562f, 0.956339f, 0.654877f, 0.213509f, 0.301763f, 0.66921f, 0.327652f, 0.0984915f, 0.461783f, 0.308599f, 0.526057f, 0.261795f, 0.490774f, 0.711595f, 0.120919f, 0.423112f, 0.529085f, 0.460559f, 0.346745f, 0.813399f, 0.210967f, 0.871596f, 0.437f, 0.0797882f, 0.319964f, 0.453486f, 0.312109f, 0.616004f, 0.717271f, 0.497556f, 0.696008f, 0.325173f, 0.998081f, 0.0344036f, 0.470713f, 0.595906f, 0.503973f, 0.768447f, 0.0669863f, 0.75852f, 0.0691862f, 0.904392f, 0.526621f, 0.454254f, 0.282096f, 0.61511f, 0.520861f, 0.929658f, 0.316033f, 0.122634f, 0.778338f, 0.781493f, 0.699447f, 0.374198f, 0.300907f, 0.908406f, 0.420848f, 0.292415f, 0.365145f, 0.260794f, 0.827939f, 0.0225802f, 0.885312f, 0.371748f, 0.0942798f, 0.163306f, 0.345233f, 0.584805f, 0.00530463f, 0.543839f, 0.686881f, 0.731238f, 0.202015f, 0.766038f, 0.817129f, 0.759973f, 0.74491f, 0.249627f, 0.33974f, 0.86768f, 0.873101f, 0.538603f, 0.897788f, 0.488417f, 0.803839f, 0.60539f, 0.801472f, 0.546895f, 0.896886f, 0.722128f, 0.337904f, 0.664771f, 0.411652f, 0.00687161f, 0.162172f, 0.883211f, 0.82153f, 0.814886f, 0.45111f, 0.0546196f, 0.859811f, 0.000270441f, 0.793295f, 0.873731f, 0.942733f, 0.186087f, 0.70483f, 0.963201f, 0.600287f, 0.455936f, 0.540894f, 0.988648f, 0.849189f, 0.708664f, 0.0118315f, 0.598502f, 0.332059f, 0.688875f, 0.307857f, 0.850157f, 0.0282664f, 0.142987f, 0.630389f, 0.627275f, 0.247403f, 0.324155f, 0.990004f, 0.982975f, 0.0650682f, 0.890491f, 0.694133f, 0.0698983f, 0.00596018f, 0.186113f, 0.955229f, 0.474459f, 0.587411f, 0.105645f, 0.634679f, 0.578154f, 0.789058f, 0.221689f, 0.317176f, 0.513465f, 0.949536f, 0.187694f, 0.720225f, 0.637694f, 0.564973f, 0.863555f, 0.656051f, 0.425104f, 0.72279f, 0.0150462f, 0.769399f, 0.995999f, 0.383894f, 0.884713f, 0.82651f, 0.133181f, 0.343152f, 0.432729f, 0.379639f, 0.797775f, 0.577667f, 0.993345f, 0.715517f, 0.0591047f, 0.0951223f, 0.291318f, 0.567864f, 0.611515f, 0.326818f, 0.0252071f, 0.0706829f, 0.550466f, 0.229062f, 0.368205f, 0.0114132f, 0.726769f, 0.995834f, 0.00206917f, 0.361047f, 0.229185f, 0.704359f, 0.708189f, 0.763087f, 0.418145f, 0.166241f, 0.467016f, 0.199175f, 0.749868f, 0.230697f, 0.919803f, 0.173331f, 0.703199f, 0.238424f, 0.36542f, 0.733332f, 0.865953f, 0.406924f, 0.376155f, 0.504744f, 0.324332f, 0.795637f, 0.876924f, 0.150811f, 0.284575f, 0.606989f, 0.668304f, 0.773779f, 0.400718f, 0.461116f, 0.0356158f, 0.828637f, 0.230266f, 0.933551f, 0.452046f, 0.23424f, 0.147727f, 0.584319f, 0.246715f, 0.778469f, 0.751298f, 0.142385f, 0.497668f, 0.820541f, 0.520754f, 0.635979f, 0.995609f, 0.777778f, 0.73501f, 0.635293f, 0.753446f, 0.382544f, 0.432099f, 0.609674f, 0.60688f, 0.357035f, 0.241933f, 0.270505f, 0.919522f, 0.155695f, 0.92069f, 0.413791f, 0.170884f, 0.459599f, 0.287268f, 0.376801f, 0.303515f, 0.170855f, 0.0423617f, 0.842472f, 0.495546f, 0.404054f, 0.0946646f, 0.275245f, 0.957405f, 0.659572f, 0.330991f, 0.217615f, 0.259105f, 0.365855f, 0.623508f, 0.358096f, 0.366259f, 0.115222f, 0.683045f, 0.116525f, 0.418933f, 0.73935f, 0.046771f, 0.626346f, 0.544816f, 0.206997f, 0.136698f, 0.50891f, 0.465636f, 0.973117f, 0.0879731f, 0.496635f, 0.0528215f, 0.256656f, 0.150501f, 0.172589f, 0.446358f, 0.668215f, 0.281295f, 0.639564f, 0.600982f, 0.689498f, 0.172988f, 0.311158f, 0.596166f, 0.914397f, 0.691011f, 0.828275f, 0.751661f, 0.126823f, 0.595763f, 0.476016f, 0.438493f, 0.85836f, 0.055756f, 0.1724f, 0.354587f, 0.36832f, 0.0914993f, 0.370013f, 0.65743f, 0.313155f, 0.369982f, 0.760313f, 0.830683f, 0.453527f, 0.085066f, 0.0648175f, 0.732424f, 0.986999f, 0.77105f, 0.173702f, 0.0774072f, 0.787711f, 0.479358f, 0.0513305f, 0.439819f, 0.868344f, 0.730487f, 0.293238f, 0.420022f, 0.124757f, 0.0971248f, 0.740998f, 0.257308f, 0.354677f, 0.752762f, 0.368821f, 0.825613f, 0.237673f, 0.650889f, 0.779095f, 0.680979f, 0.954989f, 0.477473f, 0.29367f, 0.709763f, 0.449627f, 0.312359f, 0.236185f, 0.0620183f, 0.0817302f, 0.675886f, 0.727033f, 0.803278f, 0.919081f, 0.153602f, 0.185638f, 0.059088f, 0.635481f, 0.681467f, 0.955608f, 0.584436f, 0.267903f, 0.972799f, 0.970777f, 0.668493f, 0.0944233f, 0.904109f, 0.32312f, 0.523612f, 0.38511f, 0.668045f, 0.368678f, 0.391273f, 0.497355f, 0.0173796f, 0.171289f, 0.111696f, 0.894711f, 0.456682f, 0.11279f, 0.0153473f, 0.736969f, 0.660566f, 0.0133941f, 0.419917f, 0.526311f, 0.7516f, 0.899376f, 0.842206f, 0.652725f, 0.504881f, 0.937657f, 0.105858f, 0.898005f, 0.181238f, 0.511456f, 0.573173f, 0.51929f, 0.648309f, 0.20973f, 0.354556f, 0.375805f, 0.188542f, 0.0110647f, 0.960757f, 0.050705f, 0.0815619f, 0.782723f, 0.314808f, 0.40585f, 0.0328103f, 0.456401f, 0.222684f, 0.266882f, 0.679273f, 0.116498f, 0.105427f, 0.375314f, 0.886496f, 0.133358f, 0.58684f, 0.983258f, 0.105889f, 0.234651f, 0.525368f, 0.659181f, 0.193151f, 0.781094f, 0.975721f, 0.75392f, 0.539964f, 0.574357f, 0.389485f, 0.00738067f, 0.949821f, 0.276828f, 0.0109401f, 0.10862f, 0.744617f, 0.526253f, 0.331845f, 0.613306f, 0.260269f, 0.129338f, 0.171237f, 0.00535067f, 0.252849f, 0.115543f, 0.656546f, 0.380222f, 0.669431f, 0.696468f, 0.0788784f, 0.269542f, 0.731211f, 0.891437f, 0.686094f, 0.643402f, 0.946833f, 0.852984f, 0.855147f, 0.0741065f, 0.735505f, 0.628903f, 0.164329f, 0.828951f, 0.93577f, 0.416256f, 0.720396f, 0.820992f, 0.68111f, 0.675366f, 0.635796f, 0.0421593f, 0.558648f, 0.397164f, 0.841473f, 0.357881f, 0.101455f, 0.625198f, 0.317364f, 0.0309509f, 0.949349f, 0.429982f, 0.740296f, 0.83634f, 0.431143f, 0.551933f, 0.669405f, 0.989428f, 0.520325f, 0.0122792f, 0.347439f, 0.792887f, 0.14999f, 0.835497f, 0.0626093f, 0.780253f, 0.353592f, 0.0868309f, 0.851044f, 0.532502f, 0.290523f, 0.0931025f, 0.0303709f, 0.286026f, 0.347305f, 0.710572f, 0.868018f, 0.382781f, 0.672354f, 0.422583f, 0.267142f, 0.0534792f, 0.626161f, 0.709761f, 0.146052f, 0.0549357f, 0.25044f, 0.545147f, 0.817305f, 0.528971f, 0.214889f, 0.933382f, 0.677984f, 0.212322f, 0.617944f, 0.200769f, 0.63663f, 0.473708f, 0.843618f, 0.0158016f, 0.789755f, 0.369974f, 0.129889f, 0.6002f, 0.0639386f, 0.26817f, 0.192894f, 0.47349f, 0.128915f, 0.531f, 0.836731f, 0.00176826f, 0.171285f, 0.301016f, 0.491037f, 0.684083f, 0.442135f, 0.62612f, 0.334639f, 0.630786f, 0.108427f, 0.922433f, 0.211707f, 0.934806f, 0.353681f, 0.846479f, 0.224087f, 0.0387647f, 0.912567f, 0.352177f, 0.639788f, 0.85912f, 0.580208f, 0.209145f, 0.648709f, 0.780819f, 0.276763f, 0.570481f, 0.92891f, 0.360862f, 0.313299f, 0.9281f, 0.641601f, 0.531437f, 0.611739f, 0.348233f, 0.328984f, 0.460753f, 0.786445f, 0.561262f, 0.586937f, 0.914711f, 0.295035f, 0.522733f, 0.178518f, 0.193203f, 0.067031f, 0.0952899f, 0.44979f, 0.451621f, 0.300487f, 0.726786f, 0.534888f, 0.156079f, 0.180306f, 0.568849f, 0.609314f, 0.63499f, 0.75209f, 0.641635f, 0.791956f, 0.674595f, 0.0351817f, 0.683243f, 0.10263f, 0.903683f, 0.7759f, 0.886257f, 0.625032f, 0.827247f, 0.297826f, 0.00176633f, 0.619953f, 0.464783f, 0.921148f, 0.67926f, 0.528511f, 0.577298f, 0.163977f, 0.264389f, 0.789901f, 0.0141889f, 0.532587f, 0.236263f, 0.129726f, 0.605237f, 0.583784f, 0.0723834f, 0.738629f, 0.687056f, 0.0506192f, 0.2465f, 0.958154f, 0.0971148f, 0.78452f, 0.985721f, 0.310138f, 0.540363f, 0.168563f, 0.881159f, 0.547955f, 0.194954f, 0.0955894f, 0.879779f, 0.438003f, 0.672806f, 0.924577f, 0.224892f, 0.670132f, 0.480454f, 0.354263f, 0.67239f, 0.0954662f, 0.236402f, 0.583413f, 0.0585043f, 0.477896f, 0.603105f, 0.0429229f, 0.504042f, 0.206812f, 0.0616322f, 0.835752f, 0.66132f, 0.624212f, 0.531751f, 0.681237f, 0.557261f, 0.779206f, 0.521052f, 0.0583492f, 0.814716f, 0.767002f, 0.0346656f, 0.957944f, 0.145976f, 0.446197f, 0.393021f, 0.871972f, 0.520205f, 0.468223f, 0.263578f, 0.810964f, 0.319026f, 0.642277f, 0.270199f, 0.225704f, 0.897925f, 0.197058f, 0.336161f, 0.657704f, 0.0432936f, 0.743068f, 0.206791f, 0.537499f, 0.0734435f, 0.674593f, 0.559151f, 0.416683f, 0.810173f, 0.652502f, 0.00259192f, 0.421945f, 0.777675f, 0.173665f, 0.811577f, 0.631349f, 0.71241f, 0.099652f, 0.0575853f, 0.196091f, 0.769379f, 0.833208f, 0.286898f, 0.0482026f, 0.106219f, 0.0961621f, 0.631901f, 0.221729f, 0.546256f, 0.226065f, 0.538867f, 0.780143f, 0.690409f, 0.547232f, 0.373159f, 0.495359f, 0.878823f, 0.53195f, 0.929734f, 0.433977f, 0.717026f, 0.97011f, 0.45834f, 0.63122f, 0.676207f, 0.457788f, 0.491343f, 0.299583f, 0.326815f, 0.733564f, 0.820148f, 0.727172f, 0.755076f, 0.625684f, 0.564744f, 0.759587f, 0.101223f, 0.90051f, 0.265415f, 0.687357f, 0.898139f, 0.485221f, 0.729456f, 0.869902f, 0.198439f, 0.209563f, 0.339186f, 0.323029f, 0.0600406f, 0.887052f, 0.228774f, 0.780437f, 0.201377f, 0.358911f, 0.471789f, 0.931232f, 0.941895f, 0.546953f, 0.966439f, 0.836993f, 0.976292f, 0.183496f, 0.20134f, 0.345574f, 0.764903f, 0.944351f, 0.0855852f, 0.276308f, 0.917877f, 0.207373f, 0.0956428f, 0.656021f, 0.955109f, 0.866709f, 0.317181f, 0.880536f, 0.105305f, 0.802864f, 0.83936f, 0.85476f, 0.541733f, 0.172791f, 0.901183f, 0.0787686f, 0.17047f, 0.695448f, 0.628866f, 0.310038f, 0.980721f, 0.519745f, 0.314494f, 0.838773f, 0.817105f, 0.956199f, 0.497561f, 0.440748f, 0.866263f, 0.130101f, 0.585493f, 0.64134f, 0.545642f, 0.543746f, 0.634721f, 0.692108f, 0.104547f, 0.48778f, 0.525365f, 0.222945f, 0.0415997f, 0.503657f, 0.120902f, 0.0969362f, 0.627469f, 0.779534f, 0.44861f, 0.350597f, 0.345213f, 0.683907f, 0.679977f, 0.840668f, 0.790789f, 0.893772f, 0.51972f, 0.844986f, 0.474268f, 0.886176f, 0.676864f, 0.435934f, 0.848231f, 0.532467f, 0.648873f, 0.968256f, 0.61548f, 0.79997f, 0.589352f, 0.759299f, 0.0874378f, 0.416241f, 0.919548f, 0.491485f, 0.505018f, 0.354504f, 0.807806f, 0.255302f, 0.175807f, 0.537194f, 0.113588f, 0.210534f, 0.937963f, 0.0289638f, 0.649871f, 0.0415402f, 0.985796f, 0.408788f, 0.868951f, 0.368989f, 0.249701f, 0.386199f, 0.505068f, 0.766356f, 0.121093f, 0.0671078f, 0.253398f, 0.69509f, 0.905225f, 0.17466f, 0.101305f, 0.239099f, 0.413984f, 0.283976f, 0.22179f, 0.416776f, 0.639288f, 0.0832629f, 0.935949f, 0.242455f, 0.307911f, 0.942863f, 0.517647f, 0.511876f, 0.980054f, 0.105804f, 0.294665f, 0.375717f, 0.299203f, 0.0041073f, 0.692539f, 0.980715f, 0.289277f, 0.998179f, 0.249108f, 0.175353f, 0.642178f, 0.413443f, 0.818611f, 0.360028f, 0.07985f, 0.348019f, 0.288372f, 0.934103f, 0.493211f, 0.161424f, 0.58625f, 0.101337f, 0.248807f, 0.744097f, 0.485165f, 0.407927f, 0.502129f, 0.254136f, 0.478751f, 0.42083f, 0.248873f, 0.424183f, 0.77324f, 0.215235f, 0.953848f, 0.815983f, 0.158094f, 0.391452f, 0.911929f, 0.646365f, 0.359223f, 0.680833f, 0.785218f, 0.355855f, 0.892665f, 0.340406f, 0.520206f, 0.443302f, 0.71346f, 0.263724f, 0.994689f, 0.940092f, 0.937445f, 0.427203f, 0.086859f, 0.916273f, 0.886754f, 0.376372f, 0.590542f, 0.703157f, 0.644814f, 0.0973851f, 0.764644f, 0.766873f, 0.78788f, 0.501908f, 0.915237f, 0.325129f, 0.805438f, 0.677256f, 0.994908f, 0.56436f, 0.362835f, 0.565735f, 0.429897f, 0.875547f, 0.504688f, 0.244607f, 0.830024f, 0.483786f, 0.777301f, 0.496426f, 0.631197f, 0.9522f, 0.158597f, 0.672437f, 0.600779f, 0.147453f, 0.691156f, 0.938142f, 0.881237f, 0.842964f, 0.382955f, 0.171285f, 0.936033f, 0.72643f, 0.382905f, 0.698039f, 0.926544f, 0.439297f, 0.0560052f, 0.279561f, 0.160687f, 0.459306f, 0.321321f, 0.73143f, 0.713356f, 0.898014f, 0.300067f, 0.327653f, 0.921897f, 0.18009f, 0.153996f, 0.222553f, 0.235365f, 0.496638f, 0.845838f, 0.484972f, 0.574097f, 0.278898f, 0.280513f, 0.639917f, 0.00846011f, 0.576826f, 0.514818f, 0.905084f, 0.194731f, 0.995362f, 0.651051f, 0.0309386f, 0.260537f, 0.969857f, 0.281356f, 0.676183f, 0.902037f, 0.152027f, 0.0789176f, 0.0313313f, 0.276369f, 0.528068f, 0.240229f, 0.96577f, 0.466625f, 0.809421f, 0.716923f, 0.496516f, 0.928267f, 0.466881f, 0.314971f, 0.701822f, 0.877596f, 0.975407f, 0.259825f, 0.346589f, 0.518496f, 0.464989f, 0.631272f, 0.999335f, 0.85388f, 0.106687f, 0.544377f, 0.496506f, 0.0495288f, 0.557982f, 0.659796f, 0.714556f, 0.861876f, 0.53801f, 0.341512f, 0.977187f, 0.774364f, 0.0222033f, 0.682623f, 0.213629f, 0.915206f, 0.856457f, 0.829606f, 0.495821f, 0.440149f, 0.134f, 0.91534f, 0.127665f, 0.135935f, 0.796209f, 0.947672f, 0.606545f, 0.95812f, 0.805233f, 0.522448f, 0.281149f, 0.784618f, 0.528592f, 0.231617f, 0.344436f, 0.623061f, 0.25302f, 0.386911f, 0.370523f, 0.630385f, 0.700022f, 0.727151f, 0.534839f, 0.133714f, 0.421592f, 0.140723f, 0.070464f, 0.775013f, 0.153538f, 0.829366f, 0.459244f, 0.828389f, 0.547179f, 0.950638f, 0.71957f, 0.508546f, 0.873755f, 0.11234f, 0.845236f, 0.801012f, 0.347623f, 0.937428f, 0.0476699f, 0.246573f, 0.154953f, 0.838394f, 0.398271f, 0.717012f, 0.00336201f, 0.666849f, 0.942137f, 0.503052f, 0.923131f, 0.172334f, 0.0475491f, 0.967214f, 0.542301f, 0.699006f, 0.449127f, 0.322264f, 0.292825f, 0.115944f, 0.785234f, 0.0267876f, 0.0219151f, 0.0816941f, 0.429375f, 0.291332f, 0.316293f, 0.381101f, 0.637254f, 0.0153958f, 0.157349f, 0.464019f, 0.4051f, 0.43946f, 0.806448f, 0.526227f, 0.17687f, 0.750141f, 0.659381f, 0.995801f, 0.582237f, 0.481447f, 0.0463786f, 0.985857f, 0.44112f, 0.85009f, 0.872144f, 0.958045f, 0.0223657f, 0.373458f, 0.132445f, 0.609049f, 0.198428f, 0.00217104f, 0.12125f, 0.71728f, 0.909938f, 0.867929f, 0.0668491f, 0.148454f, 0.266331f, 0.267368f, 0.565304f, 0.238869f, 0.560016f, 0.697578f, 0.163684f, 0.956766f, 0.985476f, 0.865582f, 0.457229f, 0.824121f, 0.716539f, 0.535521f, 0.190561f, 0.532445f, 0.440451f, 0.196858f, 0.568288f, 0.697552f, 0.0656491f, 0.238439f, 0.348217f, 0.508543f, 0.0735468f, 0.91486f, 0.388206f, 0.196435f, 0.635512f, 0.730833f, 0.584855f, 0.536759f, 0.630322f, 0.0524932f, 0.583308f, 0.65385f, 0.183771f, 0.847247f, 0.274343f, 0.687695f, 0.543999f, 0.462012f, 0.127895f, 0.541794f, 0.773117f, 0.111856f, 0.330496f, 0.0557353f, 0.108308f, 0.933698f, 0.422001f, 0.062609f, 0.840392f, 0.174242f, 0.763923f, 0.238557f, 0.990698f, 0.5489f, 0.814017f, 0.712998f, 0.348819f, 0.92057f, 0.77589f, 0.405501f, 0.987185f, 0.586148f, 0.0340775f, 0.874879f, 0.528434f, 0.463603f, 0.174784f, 0.466188f, 0.560802f, 0.682338f, 0.818371f, 0.833119f, 0.70543f, 0.403955f, 0.309361f, 0.841809f, 0.0837514f, 0.0658028f, 0.635184f, 0.478617f, 0.819805f, 0.241208f, 0.402354f, 0.371352f, 0.574236f, 0.879457f, 0.694758f, 0.0255712f, 0.217473f, 0.030704f, 0.502755f, 0.590585f, 0.713211f, 0.587852f, 0.765876f, 0.919681f, 0.548157f, 0.660895f, 0.900054f, 0.712622f, 0.283203f, 0.495466f, 0.11754f, 0.139739f, 0.902674f, 0.465694f, 0.719928f, 0.514653f, 0.820026f, 0.113656f, 0.188105f, 0.961152f, 0.5188f, 0.130029f, 0.0159896f, 0.827994f, 0.605139f, 0.934137f, 0.835487f, 0.436506f, 0.181797f, 0.398376f, 0.365892f, 0.24449f, 0.563175f, 0.768978f, 0.218127f, 0.588646f, 0.924228f, 0.298714f, 0.553758f, 0.283015f, 0.785156f, 0.645116f, 0.193191f, 0.602467f, 0.0834046f, 0.845722f, 0.162275f, 0.700826f, 0.734836f, 0.364575f, 0.529733f, 0.166439f, 0.125427f, 0.333995f, 0.169423f, 0.664584f, 0.197292f, 0.0436679f, 0.320572f, 0.655961f, 0.720951f, 0.51083f, 0.22972f, 0.715727f, 0.638601f, 0.144037f, 0.937777f, 0.927911f, 0.123267f, 0.929121f, 0.0972168f, 0.725653f, 0.323356f, 0.751896f, 0.198276f, 0.158348f, 0.868324f, 0.131178f, 0.899521f, 0.198024f, 0.431845f, 0.994101f, 0.891005f, 0.85f, 0.839544f, 0.544451f, 0.176621f, 0.601967f, 0.0216223f, 0.537717f, 0.290386f, 0.633253f, 0.845378f, 0.0437701f, 0.993162f, 0.0854528f, 0.851031f, 0.386806f, 0.798763f, 0.0330196f, 0.732928f, 0.309405f, 0.959024f, 0.0200453f, 0.506768f, 0.891905f, 0.229395f, 0.644895f, 0.220381f, 0.819345f, 0.844336f, 0.827662f, 0.75855f, 0.258202f, 0.705638f, 0.0214844f, 0.194284f, 0.650836f, 0.551501f, 0.109274f, 0.99566f, 0.436286f, 0.245548f, 0.545725f, 0.556864f, 0.0177391f, 0.433361f, 0.0733969f, 0.318562f, 0.734191f, 0.541346f, 0.584533f, 0.654032f, 0.480747f, 0.0396135f, 0.440329f, 0.438634f, 0.787352f, 0.196885f, 0.999867f, 0.780408f, 0.148673f, 0.672902f, 0.0855072f, 0.542285f, 0.817219f, 0.344624f, 0.869507f, 0.0972594f, 0.738224f, 0.678642f, 0.610263f, 0.513905f, 0.327563f, 0.595982f, 0.300305f, 0.367507f, 0.385162f, 0.512591f, 0.0331952f, 0.457096f, 0.77215f, 0.237526f, 0.532184f, 0.172633f, 0.0760759f, 0.764021f, 0.656615f, 0.250267f, 0.913947f, 0.0693472f, 0.811476f, 0.0654472f, 0.180779f, 0.25495f, 0.491045f, 0.243572f, 0.688457f, 0.302134f, 0.995999f, 0.0877077f, 0.290827f, 0.421128f, 0.930957f, 0.122838f, 0.602823f, 0.267248f, 0.819376f, 0.378619f, 0.10743f, 0.646243f, 0.0390166f, 0.485882f, 0.410412f, 0.0314222f, 0.445647f, 0.668752f, 0.584085f, 0.14271f, 0.193579f, 0.235109f, 0.155165f, 0.802243f, 0.222773f, 0.593747f, 0.649464f, 0.383544f, 0.391871f, 0.680344f, 0.369907f, 0.650128f, 0.840548f, 0.0512257f, 0.845229f, 0.0324772f, 0.820746f, 0.507174f, 0.143959f, 0.948798f, 0.202721f, 0.336271f, 0.124466f, 0.030435f, 0.17137f, 0.152208f, 0.159802f, 0.96511f, 0.20956f, 0.710096f, 0.520639f, 0.655321f, 0.225285f, 0.464752f, 0.502103f, 0.0716045f, 0.852669f, 0.477213f, 0.531703f, 0.843568f, 0.178469f, 0.47283f, 0.13775f, 0.932464f, 0.195978f, 0.352279f, 0.458219f, 0.88598f, 0.401532f, 0.33308f, 0.289794f, 0.490644f, 0.0128116f, 0.917066f, 0.430907f, 0.845364f, 0.9673f, 0.111233f, 0.380055f, 0.0719343f, 0.995952f, 0.67487f, 0.369355f, 0.452539f, 0.138657f, 0.77244f, 0.0423f, 0.872063f, 0.779729f, 0.0243229f, 0.0438687f, 0.677882f, 0.85632f, 0.548454f, 0.823104f, 0.0494186f, 0.311531f, 0.583488f, 0.46654f, 0.946371f, 0.416478f, 0.380618f, 0.978415f, 0.360331f, 0.934685f, 0.507023f, 0.563155f, 0.0599655f, 0.468624f, 0.207611f, 0.729588f, 0.987562f, 0.0986833f, 0.186597f, 0.486791f, 0.186946f, 0.32957f, 0.139015f, 0.439042f, 0.33656f, 0.710923f, 0.847317f, 0.755213f, 0.679668f, 0.512238f, 0.246794f, 0.130706f, 0.972152f, 0.380354f, 0.97653f, 0.86102f, 0.633842f, 0.541387f, 0.573967f, 0.662506f, 0.581571f, 0.324206f, 0.325255f, 0.167391f, 0.533735f, 0.210881f, 0.557627f, 0.0425774f, 0.248431f, 0.609063f, 0.411411f, 0.0296826f, 0.107329f, 0.470474f, 0.219309f, 0.377342f, 0.487793f, 0.128537f, 0.383163f, 0.155686f, 0.160019f, 0.563484f, 0.427877f, 0.855583f, 0.944766f, 0.625127f, 0.428711f, 0.548492f, 0.845844f, 0.974884f, 0.0283575f, 0.928495f, 0.314943f, 0.704869f, 0.434655f, 0.792576f, 0.302688f, 0.887315f, 0.448706f, 0.360527f, 0.61462f, 0.386755f, 0.456536f, 0.913248f, 0.562782f, 0.834938f, 0.417069f, 0.936944f, 0.175957f, 0.0292056f, 0.165132f, 0.860349f, 0.920219f, 0.887488f, 0.981758f, 0.664164f, 0.208711f, 0.837174f, 0.0690807f, 0.285295f, 0.0465079f, 0.450513f, 0.909982f, 0.195234f, 0.598476f, 0.0319583f, 0.562492f, 0.593147f, 0.0953558f, 0.922204f, 0.855676f, 0.180321f, 0.944682f, 0.886156f, 0.785763f, 0.0513129f, 0.584269f, 0.481476f, 0.594496f, 0.31895f, 0.862149f, 0.761318f, 0.830565f, 0.477565f, 0.704674f, 0.448482f, 0.0647326f, 0.576446f, 0.0936495f, 0.0290601f, 0.531201f, 0.805988f, 0.617532f, 0.311513f, 0.940009f, 0.548031f, 0.289231f, 0.713648f, 0.168361f, 0.438717f, 0.710118f, 0.956462f, 0.719465f, 0.121624f, 0.997186f, 0.243058f, 0.572056f, 0.33345f, 0.0567612f, 0.784417f, 0.15373f, 0.194629f, 0.838849f, 0.365281f, 0.853493f, 0.937009f, 0.884989f, 0.912643f, 0.615399f, 0.171796f, 0.508634f, 0.801327f, 0.793735f, 0.898612f, 0.144338f, 0.763831f, 0.0432119f, 0.444554f, 0.690018f, 0.0769864f, 0.258341f, 0.299487f, 0.462314f, 0.612981f, 0.61242f, 0.270474f, 0.687894f, 0.15412f, 0.945785f, 0.304665f, 0.527352f, 0.862864f, 0.814089f, 0.355384f, 0.0585086f, 0.685452f, 0.696904f, 0.327063f, 0.507143f, 0.264042f, 0.606223f, 0.191667f, 0.841703f, 0.217113f, 0.118348f, 0.826108f, 0.827688f, 0.607877f, 0.683131f, 0.0545193f, 0.745739f, 0.389008f, 0.866404f, 0.262548f, 0.408929f, 0.44413f, 0.726945f, 0.139415f, 0.863922f, 0.729537f, 0.193518f, 0.573765f, 0.217033f, 0.0911973f, 0.455508f, 0.0853736f, 0.883664f, 0.918828f, 0.0206688f, 0.322978f, 0.691095f, 0.599105f, 0.657169f, 0.0346459f, 0.883606f, 0.603325f, 0.00704693f, 0.34111f, 0.575056f, 0.293797f, 0.659662f, 0.0266977f, 0.343559f, 0.73245f, 0.568653f, 0.976468f, 0.40845f, 0.574158f, 0.583174f, 0.262365f, 0.27649f, 0.783194f, 0.96572f, 0.638504f, 0.0109963f, 0.297281f, 0.95719f, 0.857866f, 0.118023f, 0.823408f, 0.193587f, 0.336572f, 0.649514f, 0.195704f, 0.64884f, 0.727483f, 0.280076f, 0.391448f, 0.319339f, 0.656744f, 0.682944f, 0.849771f, 0.527175f, 0.986829f, 0.431986f, 0.50676f, 0.205591f, 0.94704f, 0.00324137f, 0.76835f, 0.494667f, 0.0566577f, 0.638742f, 0.956018f, 0.584582f, 0.756424f, 0.646476f, 0.277489f, 0.762332f, 0.997635f, 0.813419f, 0.836437f, 0.6161f, 0.484459f, 0.680175f, 0.962532f, 0.253346f, 0.549721f, 0.527324f, 0.678575f, 0.817699f, 0.228619f, 0.051797f, 0.272214f, 0.422288f, 0.809362f, 0.614724f, 0.46797f, 0.709692f, 0.975017f, 0.360894f, 0.0906186f, 0.297165f, 0.152778f, 0.831593f, 0.685158f, 0.714934f, 0.31502f, 0.988036f, 0.917857f, 0.297085f, 0.630157f, 0.965444f, 0.969337f, 0.822654f, 0.239443f, 0.983868f, 0.247457f, 0.765808f, 0.578277f, 0.162221f, 0.090011f, 0.125098f, 0.453486f, 0.602982f, 0.997495f, 0.535055f, 0.298486f, 0.74823f, 0.0878896f, 0.297253f, 0.505105f, 0.246785f, 0.702703f, 0.953522f, 0.992123f, 0.730079f, 0.885203f, 0.872968f, 0.136767f, 0.0848781f, 0.20931f, 0.241017f, 0.490057f, 0.850751f, 0.255625f, 0.383044f, 0.253957f, 0.17459f, 0.904922f, 0.933217f, 0.563103f, 0.615326f, 0.298383f, 0.730389f, 0.990698f, 0.797211f, 0.0405547f, 0.0917579f, 0.383499f, 0.47776f, 0.569275f, 0.761912f, 0.91392f, 0.563875f, 0.646229f, 0.823883f, 0.818332f, 0.376973f, 0.685708f, 0.562361f, 0.313728f, 0.451813f, 0.0814237f, 0.261835f, 0.603268f, 0.546794f, 0.226541f, 0.770576f, 0.326147f, 0.652414f, 0.149648f, 0.749899f, 0.932337f, 0.143466f, 0.363197f, 0.885366f, 0.361895f, 0.28782f, 0.196789f, 0.208795f, 0.863102f, 0.402006f, 0.972238f, 0.128598f, 0.573996f, 0.897687f, 0.367745f, 0.981472f, 0.958369f, 0.341549f, 0.568072f, 0.63617f, 0.66779f, 0.301268f, 0.0970404f, 0.395191f, 0.562295f, 0.940136f, 0.972699f, 0.40398f, 0.808631f, 0.946714f, 0.501458f, 0.102879f, 0.0850953f, 0.107325f, 0.985752f, 0.822408f, 0.145373f, 0.678183f, 0.890433f, 0.379324f, 0.673399f, 0.315857f, 0.387693f, 0.267464f, 0.399486f, 0.563653f, 0.948893f, 0.996971f, 0.312536f, 0.224712f, 0.195422f, 0.862912f, 0.8311f, 0.111842f, 0.0215436f, 0.014879f, 0.108368f, 0.341035f, 0.0922098f, 0.246749f, 0.0802057f, 0.403072f, 0.73072f, 0.0258649f, 0.3814f, 0.0909907f, 0.965118f, 0.317121f, 0.550146f, 0.918783f, 0.800225f, 0.499974f, 0.881534f, 0.822591f, 0.768862f, 0.264584f, 0.53143f, 0.686706f, 0.75677f, 0.585163f, 0.528601f, 0.788635f, 0.571163f, 0.349808f, 0.470605f, 0.881969f, 0.191596f, 0.920181f, 0.914795f, 0.498367f, 0.570864f, 0.867099f, 0.512945f, 0.279374f, 0.953339f, 0.612305f, 0.729747f, 0.687118f, 0.644624f, 0.621666f, 0.451161f, 0.380568f, 0.366232f, 0.652734f, 0.936622f, 0.892705f, 0.160316f, 0.266727f, 0.387105f, 0.656982f, 0.791355f, 0.850267f, 0.173026f, 0.616806f, 0.911728f, 0.373296f, 0.511997f, 0.599183f, 0.0201844f, 0.183038f, 0.225816f, 0.083518f, 0.304678f, 0.127526f, 0.365757f, 0.469518f, 0.0323771f, 0.891389f, 0.576512f, 0.236756f, 0.459983f, 0.496918f, 0.903592f, 0.939872f, 0.190675f, 0.320497f, 0.0203818f, 0.150569f, 0.0856717f, 0.0852438f, 0.361675f, 0.531786f, 0.532727f, 0.800923f, 0.0737097f, 0.499973f, 0.313016f, 0.42983f, 0.72471f, 0.254885f, 0.967803f, 0.816051f, 0.754813f, 0.595467f, 0.939499f, 0.73407f, 0.0328131f, 0.117256f, 0.801046f, 0.98091f, 0.0316226f, 0.735494f, 0.97615f, 0.928681f, 0.66647f, 0.92542f, 0.772282f, 0.525005f, 0.0113489f, 0.662231f, 0.647464f, 0.691623f, 0.878107f, 0.986174f, 0.750473f, 0.725888f, 0.972051f, 0.269137f, 0.967739f, 0.345124f, 0.525215f, 0.00230173f, 0.876499f, 0.713296f, 0.206258f, 0.148654f, 0.492083f, 0.170662f, 0.540144f, 0.797632f, 0.845735f, 0.0901862f, 0.725708f, 0.962217f, 0.765269f, 0.136793f, 0.655495f, 0.973011f, 0.721749f, 0.505018f, 0.898978f, 0.1419f, 0.787899f, 0.405809f, 0.275214f, 0.865547f, 0.216191f, 0.980591f, 0.0639681f, 0.868678f, 0.834204f, 0.426262f, 0.629369f, 0.109223f, 0.0778093f, 0.100758f, 0.468726f, 0.55479f, 0.990777f, 0.786453f, 0.720513f, 0.123705f, 0.737568f, 0.2643f, 0.142287f, 0.298431f, 0.470926f, 0.26009f, 0.771193f, 0.558194f, 0.813712f, 0.318702f, 0.703376f, 0.271103f, 0.474335f, 0.766687f, 0.0102456f, 0.553279f, 0.921765f, 0.527138f, 0.939181f, 0.17783f, 0.618403f, 0.55028f, 0.770801f, 0.918018f, 0.0156285f, 0.0582344f, 0.419305f, 0.440191f, 0.800206f, 0.372418f, 0.710976f, 0.22981f, 0.753679f, 0.105767f, 0.595989f, 0.481063f, 0.430187f, 0.398237f, 0.920512f, 0.782136f, 0.90022f, 0.183508f, 0.991203f, 0.103273f, 0.937175f, 0.931229f, 0.463889f, 0.37013f, 0.107878f, 0.833853f, 0.822181f, 0.457514f, 0.368197f, 0.12845f, 0.275395f, 0.831697f, 0.14058f, 0.91069f, 0.1159f, 0.507011f, 0.187544f, 0.255681f, 0.85009f, 0.597002f, 0.201436f, 0.0758791f, 0.121787f, 0.843484f, 0.992153f, 0.0290397f, 0.420884f, 0.541761f, 0.234377f, 0.584748f, 0.214682f, 0.454908f, 0.373232f, 0.705042f, 0.0846849f, 0.676359f, 0.391221f, 0.0726224f, 0.818027f, 0.845553f, 0.359103f, 0.399189f, 0.532295f, 0.591965f, 0.0638131f, 0.830835f, 0.620067f, 0.0838342f, 0.938791f, 0.550718f, 0.00248069f, 0.935693f, 0.743766f, 0.359448f, 0.230411f, 0.381636f, 0.960077f, 0.652757f, 0.00918726f, 0.592932f, 0.372511f, 0.389753f, 0.993675f, 0.384581f, 0.343378f, 0.00957446f, 0.561085f, 0.188613f, 0.901168f, 0.745008f, 0.386326f, 0.760493f, 0.263977f, 0.943769f, 0.0411888f, 0.466905f, 0.793125f, 0.81984f, 0.325548f, 0.766207f, 0.368973f, 0.446107f, 0.572874f, 0.455362f, 0.108699f, 0.371513f, 0.951581f, 0.193994f, 0.018419f, 0.60699f, 0.615651f, 0.148897f, 0.0329962f, 0.869811f, 0.659208f, 0.471403f, 0.279857f, 0.449411f, 0.926895f, 0.0170235f, 0.333788f, 0.132859f, 0.159284f, 0.894341f, 0.438885f, 0.477194f, 0.353768f, 0.2066f, 0.918251f, 0.0471047f, 0.723558f, 0.413295f, 0.102194f, 0.32278f, 0.607575f, 0.328097f, 0.141306f, 0.63415f, 0.381959f, 0.638005f, 0.267259f, 0.381353f, 0.609073f, 0.94418f, 0.0949181f, 0.0779184f, 0.831966f, 0.0372947f, 0.458696f, 0.325194f, 0.480357f, 0.811655f, 0.534986f, 0.464123f, 0.753483f, 0.657256f, 0.435935f, 0.488373f, 0.783909f, 0.991293f, 0.373999f, 0.371571f, 0.292291f, 0.226431f, 0.0552599f, 0.72983f, 0.530037f, 0.592297f, 0.922314f, 0.535397f, 0.848662f, 0.320842f, 0.461469f, 0.697733f, 0.699023f, 0.387278f, 0.187353f, 0.91391f, 0.146173f, 0.821822f, 0.744637f, 0.049221f, 0.00713855f, 0.845146f, 0.473476f, 0.780767f, 0.511241f, 0.702851f, 0.183109f, 0.751074f, 0.908804f, 0.648501f, 0.723216f, 0.804815f, 0.357459f, 0.992428f, 0.540083f, 0.201443f, 0.542932f, 0.0260532f, 0.41567f, 0.803766f, 0.377759f, 0.0282258f, 0.873163f, 0.771989f, 0.135332f, 0.429786f, 0.899436f, 0.503036f, 0.46967f, 0.0314196f, 0.168672f, 0.6573f, 0.61836f, 0.296532f, 0.75275f, 0.440724f, 0.477417f, 0.101412f, 0.672003f, 0.808464f, 0.214804f, 0.679745f, 0.375457f, 0.122195f, 0.0725861f, 0.149689f, 0.432308f, 0.171043f, 0.836608f, 0.828204f, 0.16157f, 0.606298f, 0.540329f, 0.737885f, 0.10423f, 0.193228f, 0.384045f, 0.579478f, 0.572002f, 0.357053f, 0.647583f, 0.804919f, 0.657946f, 0.78592f, 0.205077f, 0.0635974f, 0.356279f, 0.0302115f, 0.112462f, 0.5329f, 0.0353439f, 0.883937f, 0.867497f, 0.732951f, 0.534466f, 0.166197f, 0.343865f, 0.233998f, 0.677171f, 0.900603f, 0.319964f, 0.0777299f, 0.293807f, 0.92375f, 0.665116f, 0.511788f, 0.569408f, 0.183141f, 0.241797f, 0.328806f, 0.773182f, 0.506117f, 0.903332f, 0.0634056f, 0.966247f, 0.109753f, 0.676579f, 0.615518f, 0.022722f, 0.794906f, 0.333341f, 0.100288f, 0.965705f, 0.175894f, 0.672127f, 0.92922f, 0.400484f, 0.99517f, 0.296742f, 0.70313f, 0.653463f, 0.630647f, 0.3f, 0.25781f, 0.502493f, 0.692245f, 0.164286f, 0.901121f, 0.777933f, 0.499881f, 0.310926f, 0.945782f, 0.485547f, 0.133376f, 0.682151f, 0.992685f, 0.492031f, 0.440652f, 0.289835f, 0.801857f, 0.148922f, 0.797449f, 0.297553f, 0.235087f, 0.673506f, 0.701569f, 0.274506f, 0.664335f, 0.348808f, 0.0858898f, 0.891046f, 0.86499f, 0.56995f, 0.122645f, 0.32221f, 0.722885f, 0.647581f, 0.291142f, 0.879507f, 0.117262f, 0.159482f, 0.395556f, 0.766304f, 0.00745551f, 0.95851f, 0.953378f, 0.725128f, 0.149534f, 0.0715187f, 0.428435f, 0.087609f, 0.619377f, 0.780261f, 0.924924f, 0.289078f, 0.479124f, 0.0779071f, 0.551067f, 0.0981934f, 0.160841f, 0.921033f, 0.772312f, 0.915264f, 0.181145f, 0.311038f, 0.638103f, 0.942361f, 0.944867f, 0.356726f, 0.806764f, 0.848946f, 0.0495556f, 0.831846f, 0.148647f, 0.282114f, 0.146988f, 0.494403f, 0.281035f, 0.863299f, 0.501103f, 0.326049f, 0.223236f, 0.828293f, 0.205454f, 0.766755f, 0.605667f, 0.610746f, 0.0220558f, 0.442917f, 0.970086f, 0.738035f, 0.659323f, 0.757438f, 0.77343f, 0.982792f, 0.653796f, 0.162166f, 0.111772f, 0.0154878f, 0.398852f, 0.553334f, 0.186396f, 0.523945f, 0.522701f, 0.76907f, 0.0846576f, 0.205697f, 0.108288f, 0.32589f, 0.975228f, 0.593238f, 0.960279f, 0.275291f, 0.354261f, 0.480216f, 0.318182f, 0.849524f, 0.143325f, 0.700827f, 0.342653f, 0.536966f, 0.157807f, 0.578958f, 0.983365f, 0.471684f, 0.812554f, 0.592856f, 0.61995f, 0.755793f, 0.124307f, 0.830922f, 0.983727f, 0.545654f, 0.141342f, 0.96937f, 0.900402f, 0.199047f, 0.687875f, 0.466796f, 0.106049f, 0.523671f, 0.858705f, 0.51011f, 0.837409f, 0.357153f, 0.617167f, 0.144112f, 0.598025f, 0.321082f, 0.407618f, 0.383217f, 0.831688f, 0.518964f, 0.31747f, 0.153182f, 0.0169523f, 0.219738f, 0.130376f, 0.0114876f, 0.0131408f, 0.227636f, 0.862836f, 0.87053f, 0.0494288f, 0.934751f, 0.313082f, 0.844151f, 0.881587f, 0.873415f, 0.93892f, 0.522037f, 0.538872f, 0.239712f, 0.0700234f, 0.497359f, 0.824724f, 0.060273f, 0.255059f, 0.804214f, 0.0385446f, 0.686466f, 0.0236183f, 0.367231f, 0.912675f, 0.980003f, 0.550162f, 0.160156f, 0.740405f, 0.591668f, 0.283903f, 0.518298f, 0.0992232f, 0.833306f, 0.0356076f, 0.479255f, 0.219035f, 0.125489f, 0.106494f, 0.751202f, 0.672062f, 0.0275192f, 0.415199f, 0.945351f, 0.162596f, 0.526399f, 0.156734f, 0.313128f, 0.152892f, 0.290877f, 0.306564f, 0.881553f, 0.534238f, 0.118855f, 0.453356f, 0.907232f, 0.0990579f, 0.403085f, 0.582612f, 0.8524f, 0.642647f, 0.917638f, 0.690479f, 0.708151f, 0.946478f, 0.220274f, 0.604333f, 0.374995f, 0.085968f, 0.450081f, 0.23202f, 0.619388f, 0.172781f, 0.371988f, 0.904045f, 0.197943f, 0.700031f, 0.574309f, 0.0590342f, 0.917979f, 0.619084f, 0.471351f, 0.977649f, 0.152323f, 0.787392f, 0.0169904f, 0.955696f, 0.361285f, 0.999772f, 0.0413336f, 0.00745567f, 0.834509f, 0.618306f, 0.191782f, 0.490097f, 0.866924f, 0.881582f, 0.185547f, 0.646587f, 0.53591f, 0.0810783f, 0.641288f, 0.0908556f, 0.281889f, 0.360082f, 0.0169111f, 0.148972f, 0.335747f, 0.924505f, 0.6449f, 0.42539f, 0.241403f, 0.527155f, 0.854003f, 0.917513f, 0.930921f, 0.940182f, 0.546018f, 0.480607f, 0.567392f, 0.24036f, 0.260858f, 0.755869f, 0.696928f, 0.889399f, 0.635946f, 0.979741f, 0.645656f, 0.841219f, 0.57826f, 0.547416f, 0.437659f, 0.227435f, 0.354821f, 0.475219f, 0.602813f, 0.9542f, 0.426673f, 0.190239f, 0.787201f, 0.83574f, 0.222938f, 0.223357f, 0.943922f, 0.307732f, 0.407235f, 0.772202f, 0.823804f, 0.907674f, 0.469757f, 0.644941f, 0.944729f, 0.678936f, 0.182763f, 0.669295f, 0.261396f, 0.732253f, 0.324244f, 0.812283f, 0.199705f, 0.551836f, 0.20551f, 0.622396f, 0.515947f, 0.830756f, 0.950204f, 0.37391f, 0.994554f, 0.921947f, 0.89421f, 0.650081f, 0.0513643f, 0.564519f, 0.166337f, 0.963208f, 0.0222917f, 0.143124f, 0.285645f, 0.60238f, 0.754984f, 0.484512f, 0.00350181f, 0.634146f, 0.53443f, 0.207476f, 0.47257f, 0.328493f, 0.606535f, 0.557861f, 0.508002f, 0.839055f, 0.2215f, 0.393696f, 0.41709f, 0.633709f, 0.880473f, 0.312146f, 0.991068f, 0.0422319f, 0.427465f, 0.317993f, 0.321067f, 0.482519f, 0.939097f, 0.93866f, 0.18651f, 0.0218747f, 0.498072f, 0.920035f, 0.775045f, 0.138467f, 0.00783922f, 0.928655f, 0.645646f, 0.829622f, 0.692938f, 0.207094f, 0.0186484f, 0.40103f, 0.359273f, 0.166751f, 0.0197518f, 0.157962f, 0.00489814f, 0.450554f, 0.834233f, 0.7104f, 0.499501f, 0.591914f, 0.568131f, 0.151023f, 0.201974f, 0.678773f, 0.0498054f, 0.707166f, 0.215978f, 0.941606f, 0.251902f, 0.838026f, 0.764797f, 0.185298f, 0.244075f, 0.335499f, 0.0638809f, 0.858298f, 0.0786895f, 0.416929f, 0.850201f, 0.431233f, 0.145361f, 0.0391591f, 0.744356f, 0.962381f, 0.298952f, 0.214611f, 0.539385f, 0.299848f, 0.476192f, 0.818564f, 0.489667f, 0.149053f, 0.453578f, 0.69312f, 0.489025f, 0.384821f, 0.0507784f, 0.528422f, 0.167769f, 0.0695061f, 0.362341f, 0.310005f, 0.0874438f, 0.0182253f, 0.416149f, 0.889368f, 0.867267f, 0.782126f, 0.673169f, 0.0351738f, 0.427632f, 0.206792f, 0.739605f, 0.0657612f, 0.328473f, 0.0386429f, 0.797805f, 0.753864f, 0.468673f, 0.896956f, 0.608983f, 0.140393f, 0.858324f, 0.690824f, 0.0963475f, 0.860534f, 0.155646f, 0.610728f, 0.791791f, 0.647572f, 0.867231f, 0.536277f, 0.167431f, 0.509598f, 0.292278f, 0.673647f, 0.760399f, 0.135678f, 0.236575f, 0.0918812f, 0.50639f, 0.00361561f, 0.470789f, 0.150309f, 0.445664f, 0.640191f, 0.251783f, 0.869104f, 0.303484f, 0.45136f, 0.105541f, 0.124908f, 0.349515f, 0.46051f, 0.536571f, 0.910595f, 0.662813f, 0.569908f, 0.255237f, 0.426836f, 0.680352f, 0.429791f, 0.79238f, 0.256657f, 0.25979f, 0.91802f, 0.770557f, 0.746647f, 0.786927f, 0.834828f, 0.665623f, 0.718874f, 0.282906f, 0.0994461f, 0.637917f, 0.0317004f, 0.729398f, 0.618314f, 0.346005f, 0.652679f, 0.960861f, 0.614272f, 0.218315f, 0.722266f, 0.334078f, 0.490082f, 0.759666f, 0.0824943f, 0.246811f, 0.501582f, 0.437904f, 0.669119f, 0.469253f, 0.497209f, 0.366719f, 0.268422f, 0.125883f, 0.392855f, 0.642103f, 0.100537f, 0.696517f, 0.686808f, 0.658717f, 0.0527048f, 0.492001f, 0.144315f, 0.0806398f, 0.916123f, 0.0947704f, 0.698308f, 0.641307f, 0.149544f, 0.0495856f, 0.806163f, 0.758025f, 0.686753f, 0.817656f, 0.545491f, 0.0896702f, 0.283765f, 0.362967f, 0.771175f, 0.895561f, 0.270495f, 0.373034f, 0.750738f, 0.315994f, 0.386214f, 0.37898f, 0.823998f, 0.417079f, 0.704027f, 0.311309f, 0.902728f, 0.612723f, 0.954697f, 0.787412f, 0.259005f, 0.555986f, 0.345166f, 0.154027f, 0.285371f, 0.479638f, 0.938153f, 0.827424f, 0.417747f, 0.131627f, 0.585372f, 0.276595f, 0.338166f, 0.888816f, 0.205515f, 0.724796f, 0.30414f, 0.675818f, 0.760469f, 0.438074f, 0.515091f, 0.0415316f, 0.865371f, 0.64607f, 0.549665f, 0.415766f, 0.969352f, 0.74064f, 0.820653f, 0.683802f, 0.745104f, 0.638719f, 0.950003f, 0.612648f, 0.80751f, 0.811646f, 0.28429f, 0.435325f, 0.164869f, 0.506926f, 0.625481f, 0.875001f, 0.250263f, 0.119058f, 0.410753f, 0.362809f, 0.520447f, 0.532355f, 0.30614f, 0.990048f, 0.246524f, 0.596864f, 0.429183f, 0.960561f, 0.725848f, 0.114912f, 0.282102f, 0.560757f, 0.367448f, 0.537203f, 0.976068f, 0.685703f, 0.918309f, 0.234538f, 0.490541f, 0.929749f, 0.660109f, 0.919554f, 0.423967f, 0.528061f, 0.912007f, 0.977372f, 0.895536f, 0.577261f, 0.911036f, 0.542754f, 0.79095f, 0.196632f, 0.382023f, 0.211566f, 0.218488f, 0.123244f, 0.540393f, 0.0934283f, 0.421639f, 0.668694f, 0.18205f, 0.861314f, 0.865269f, 0.0239912f, 0.0644175f, 0.161088f, 0.0976057f, 0.495183f, 0.497982f, 0.642607f, 0.800152f, 0.779988f, 0.631244f, 0.892617f, 0.277899f, 0.689278f, 0.0372923f, 0.659564f, 0.729482f, 0.947426f, 0.879573f, 0.219491f, 0.259561f, 0.713637f, 0.759587f, 0.728768f, 0.227487f, 0.682074f, 0.0508287f, 0.365871f, 0.0115379f, 0.0253321f, 0.724254f, 0.784426f, 0.605822f, 0.79863f, 0.0920109f, 0.264806f, 0.529715f, 0.280521f, 0.0806833f, 0.573684f, 0.263211f, 0.98225f, 0.697906f, 0.0727361f, 0.422524f, 0.892327f, 0.215485f, 0.150975f, 0.272374f, 0.254977f, 0.0471687f, 0.854011f, 0.905523f, 0.487369f, 0.671862f, 0.309957f, 0.0326223f, 0.15492f, 0.485134f, 0.906009f, 0.00797781f, 0.312363f, 0.351138f, 0.807354f, 0.433191f, 0.994537f, 0.152766f, 0.336247f, 0.821376f, 0.568848f, 0.334488f, 0.34449f, 0.113985f, 0.716185f, 0.0828765f, 0.31891f, 0.0101528f, 0.398173f, 0.653834f, 0.101553f, 0.0429466f, 0.794195f, 0.598342f, 0.0329396f, 0.26652f, 0.534885f, 0.178991f, 0.393045f, 0.945898f, 0.236378f, 0.875477f, 0.843853f, 0.738825f, 0.957059f, 0.883943f, 0.377353f, 0.779163f, 0.819641f, 0.39917f, 0.0942807f, 0.404984f, 0.717679f, 0.969535f, 0.642952f, 0.0152037f, 0.322173f, 0.740293f, 0.735752f, 0.934312f, 0.617279f, 0.447043f, 0.197315f, 0.216372f, 0.514738f, 0.175573f, 0.991895f, 0.247655f, 0.675527f, 0.825682f, 0.0679679f, 0.711012f, 0.397803f, 0.261216f, 0.561776f, 0.555192f, 0.295563f, 0.389618f, 0.989129f, 0.737709f, 0.433677f, 0.961196f, 0.878383f, 0.500939f, 0.758256f, 0.653572f, 0.451451f, 0.115132f, 0.192219f, 0.939038f, 0.635529f, 0.477316f, 0.804115f, 0.00827723f, 0.487808f, 0.412956f, 0.713571f, 0.67833f, 0.267152f, 0.752279f, 0.944106f, 0.337772f, 0.94516f, 0.0482466f, 0.300545f, 0.00893618f, 0.116131f, 0.729364f, 0.872157f, 0.973988f, 0.834828f, 0.349206f, 0.793585f, 0.908499f, 0.0230343f, 0.871465f, 0.90529f, 0.623719f, 0.156356f, 0.274895f, 0.170041f, 0.815941f, 0.489124f, 0.266382f, 0.180785f, 0.639142f, 0.180608f, 0.694559f, 0.655653f, 0.558426f, 0.311658f, 0.150371f, 0.685133f, 0.75854f, 0.416914f, 0.0211004f, 0.106531f, 0.675141f, 0.386412f, 0.616957f, 0.702496f, 0.751583f, 0.823503f, 0.232479f, 0.518833f, 0.88042f, 0.449801f, 0.873537f, 0.403454f, 0.748868f, 0.540153f, 0.135152f, 0.319178f, 0.976757f, 0.762667f, 0.303477f, 0.460385f, 0.627705f, 0.66124f, 0.225106f, 0.957666f, 0.854031f, 0.662319f, 0.251712f, 0.104927f, 0.238142f, 0.532306f, 0.0441043f, 0.154565f, 0.0345476f, 0.83563f, 0.913591f, 0.810374f, 0.182844f, 0.244655f, 0.863284f, 0.309717f, 0.916182f, 0.487567f, 0.931449f, 0.251717f, 0.724678f, 0.606854f, 0.189304f, 0.673796f, 0.0773815f, 0.889599f, 0.256576f, 0.362145f, 0.920125f, 0.611832f, 0.0974827f, 0.963835f, 0.347465f, 0.368334f, 0.0557915f, 0.51206f, 0.950342f, 0.284642f, 0.125789f, 0.910985f, 0.369621f, 0.461925f, 0.580513f, 0.0226002f, 0.905911f, 0.757851f, 0.00114986f, 0.86232f, 0.625117f, 0.771487f, 0.689423f, 0.918658f, 0.863122f, 0.525129f, 0.031389f, 0.599619f, 0.960601f, 0.840296f, 0.534162f, 0.81502f, 0.540934f, 0.159492f, 0.814338f, 0.723885f, 0.090235f, 0.576617f, 0.338563f, 0.36344f, 0.592914f, 0.0181945f, 0.00990845f, 0.179302f, 0.248085f, 0.0174004f, 0.569925f, 0.282361f, 0.59425f, 0.876042f, 0.991342f, 0.385033f, 0.423606f, 0.605631f, 0.754561f, 0.447055f, 0.542943f, 0.144129f, 0.227229f, 0.814315f, 0.645272f, 0.0350435f, 0.177281f, 0.217253f, 0.108555f, 0.0933903f, 0.638201f, 0.319816f, 0.465517f, 0.396075f, 0.559073f, 0.731407f, 0.652334f, 0.415819f, 0.463731f, 0.898378f, 0.781612f, 0.853351f, 0.567849f, 0.0676322f, 0.972681f, 0.271317f, 0.227251f, 0.91604f, 0.227314f, 0.10091f, 0.139674f, 0.879678f, 0.0618158f, 0.93691f, 0.858663f, 0.656639f, 0.416152f, 0.197135f, 0.846068f, 0.416782f, 0.711312f, 0.991886f, 0.380021f, 0.793923f, 0.7898f, 0.391976f, 0.72784f, 0.823548f, 0.703683f, 0.0557875f, 0.106768f, 0.376691f, 0.993151f, 0.47171f, 0.526288f, 0.812549f, 0.131579f, 0.653928f, 0.788616f, 0.581642f, 0.868925f, 0.205821f, 0.39915f, 0.296946f, 0.966696f, 0.644619f, 0.289385f, 0.212465f, 0.806189f, 0.285725f, 0.534083f, 0.327135f, 0.669993f, 0.131962f, 0.319439f, 0.661052f, 0.826859f, 0.698392f, 0.439574f, 0.317291f, 0.433467f, 0.466467f, 0.702061f, 0.0260792f, 0.103434f, 0.463534f, 0.238455f, 0.0238458f, 0.149948f, 0.994296f, 0.784839f, 0.277535f, 0.289423f, 0.610954f, 0.0181285f, 0.267422f, 0.570679f, 0.0927f, 0.18874f, 0.104791f, 0.361917f, 0.48399f, 0.469215f, 0.89176f, 0.0340089f, 0.848645f, 0.796003f, 0.698686f, 0.83429f, 0.249566f, 0.20247f, 0.0560978f, 0.532086f, 0.00241042f, 0.978845f, 0.653804f, 0.171889f, 0.14379f, 0.970395f, 0.190568f, 0.817508f, 0.534476f, 0.545703f, 0.238863f, 0.248701f, 0.439671f, 0.872105f, 0.0711503f, 0.109641f, 0.663663f, 0.879851f, 0.404459f, 0.670435f, 0.35154f, 0.787346f, 0.353047f, 0.307953f, 0.623819f, 0.917576f, 0.217974f, 0.953093f, 0.530778f, 0.0942481f, 0.544627f, 0.156973f, 0.455068f, 0.846388f, 0.843091f, 0.357362f, 0.739226f, 0.713216f, 0.738706f, 0.382027f, 0.446798f, 0.297191f, 0.55579f, 0.950182f, 0.654786f, 0.745809f, 0.969976f, 0.0328249f, 0.444964f, 0.788204f, 0.882919f, 0.218934f, 0.227815f, 0.952823f, 0.622917f, 0.952082f, 0.600167f, 0.770613f, 0.0856661f, 0.590275f, 0.371377f, 0.192921f, 0.450472f, 0.897739f, 0.579872f, 0.629459f, 0.797775f, 0.512651f, 0.220825f, 0.662543f, 0.215113f, 0.408932f, 0.117188f, 0.0488343f, 0.624517f, 0.547773f, 0.980149f, 0.143366f, 0.146225f, 0.814327f, 0.779139f, 0.603293f, 0.712174f, 0.25335f, 0.759281f, 0.726628f, 0.0954946f, 0.507432f, 0.619316f, 0.61139f, 0.0073343f, 0.811255f, 0.451277f, 0.40173f, 0.725122f, 0.869911f, 0.793965f, 0.905632f, 0.908934f, 0.727874f, 0.442662f, 0.177654f, 0.0428857f, 0.176376f, 0.586001f, 0.490787f, 0.681465f, 0.876579f, 0.476623f, 0.0891462f, 0.748424f, 0.173574f, 0.922245f, 0.368648f, 0.0713835f, 0.909052f, 0.121269f, 0.164625f, 0.221131f, 0.741261f, 0.998728f, 0.210454f, 0.592318f, 0.953165f, 0.799059f, 0.652669f, 0.627318f, 0.354413f, 0.12043f, 0.947838f, 0.861037f, 0.760182f, 0.117874f, 0.911965f, 0.781214f, 0.667469f, 0.729352f, 0.821422f, 0.809641f, 0.0766209f, 0.481135f, 0.450774f, 0.249029f, 0.484877f, 0.41154f, 0.368076f, 0.273665f, 0.17875f, 0.800276f, 0.606232f, 0.833419f, 0.431604f, 0.417373f, 0.342649f, 0.259456f, 0.17573f, 0.608306f, 0.255278f, 0.221354f, 0.844619f, 0.383746f, 0.408302f, 0.280374f, 0.443266f, 0.472583f, 0.614341f, 0.99775f, 0.511718f, 0.598597f, 0.21895f, 0.572983f, 0.680042f, 0.346485f, 0.376984f, 0.485663f, 0.368217f, 0.0719982f, 0.621932f, 0.716446f, 0.497886f, 0.308174f, 0.772743f, 0.377591f, 0.118699f, 0.361724f, 0.145399f, 0.322687f, 0.435509f, 0.874113f, 0.823203f, 0.0697124f, 0.71379f, 0.680413f, 0.43251f, 0.849853f, 0.442805f, 0.718404f, 0.57f, 0.976774f, 0.131632f, 0.442071f, 0.217625f, 0.0987891f, 0.818226f, 0.409763f, 0.251333f, 0.361336f, 0.229466f, 0.414572f, 0.967588f, 0.38856f, 0.453527f, 0.168258f, 0.121589f, 0.259288f, 0.708411f, 0.92906f, 0.756081f, 0.926194f, 0.171172f, 0.0627588f, 0.426189f, 0.901095f, 0.509919f, 0.140936f, 0.811498f, 0.477058f, 0.00490302f, 0.647061f, 0.474544f, 0.195222f, 0.786194f, 0.808953f, 0.540596f, 0.97078f, 0.0126724f, 0.0650848f, 0.0433997f, 0.0312905f, 0.899887f, 0.939005f, 0.223059f, 0.834616f, 0.722675f, 0.594256f, 0.954715f, 0.37608f, 0.64524f, 0.335348f, 0.515949f, 0.401999f, 0.393233f, 0.0490024f, 0.0250427f, 0.187972f, 0.384919f, 0.833782f, 0.783104f, 0.977303f, 0.158729f, 0.333586f, 0.0502338f, 0.801494f, 0.291031f, 0.49816f, 0.958078f, 0.479391f, 0.835572f, 0.320777f, 0.706245f, 0.396989f, 0.411453f, 0.667117f, 0.919936f, 0.298127f, 0.468245f, 0.62581f, 0.125593f, 0.0927706f, 0.600427f, 0.153621f, 0.306354f, 0.0734575f, 0.456476f, 0.455768f, 0.844137f, 0.0233551f, 0.43679f, 0.133455f, 0.296743f, 0.148274f, 0.36981f, 0.170767f, 0.695778f, 0.743133f, 0.809318f, 0.583172f, 0.49528f, 0.706006f, 0.859869f, 0.286241f, 0.924451f, 0.199671f, 0.840548f, 0.236104f, 0.100701f, 0.937621f, 0.780132f, 0.276649f, 0.134453f, 0.0898831f, 0.0197874f, 0.388934f, 0.532583f, 0.532269f, 0.280046f, 0.413882f, 0.614893f, 0.860659f, 0.85073f, 0.835906f, 0.243669f, 0.781437f, 0.657171f, 0.640155f, 0.636711f, 0.246225f, 0.400486f, 0.437177f, 0.732831f, 0.886331f, 0.0484648f, 0.784466f, 0.307803f, 0.78296f, 0.435225f, 0.040348f, 0.10938f, 0.085782f, 0.912009f, 0.690018f, 0.845696f, 0.763105f, 0.27025f, 0.578797f, 0.69952f, 0.571293f, 0.476323f, 0.389342f, 0.0964858f, 0.69871f, 0.847456f, 0.989922f, 0.765655f, 0.499258f, 0.935291f, 0.200629f, 0.421518f, 0.992777f, 0.919894f, 0.0312754f, 0.200879f, 0.13463f, 0.439071f, 0.962482f, 0.118074f, 0.739496f, 0.561802f, 0.295868f, 0.0610594f, 0.0495111f, 0.0437061f, 0.907812f, 0.384339f, 0.0956576f, 0.238232f, 0.59842f, 0.398248f, 0.0494056f, 0.795226f, 0.675948f, 0.927738f, 0.416942f, 0.456946f, 0.80176f, 0.488236f, 0.678677f, 0.180541f, 0.979995f, 0.514626f, 0.928086f, 0.766595f, 0.660089f, 0.830318f, 0.62411f, 0.573957f, 0.189075f, 0.411805f, 0.211143f, 0.542054f, 0.139239f, 0.688617f, 0.765168f, 0.653583f, 0.0153753f, 0.138088f, 0.710597f, 0.874174f, 0.369406f, 0.753912f, 0.0326591f, 0.532357f, 0.948062f, 0.760923f, 0.334434f, 0.023816f, 0.0403458f, 0.531485f, 0.68693f, 0.444792f, 0.116474f, 0.00305501f, 0.979432f, 0.858887f, 0.896419f, 0.55056f, 0.494668f, 0.283919f, 0.309247f, 0.517832f, 0.752532f, 0.239866f, 0.179353f, 0.637841f, 0.491144f, 0.573195f, 0.472105f, 0.525877f, 0.864037f, 0.133561f, 0.511198f, 0.700817f, 0.403014f, 0.92291f, 0.903589f, 0.767714f, 0.321063f, 0.817249f, 0.196288f, 0.0313713f, 0.0379668f, 0.444515f, 0.0305067f, 0.560237f, 0.486024f, 0.300577f, 0.287569f, 0.622349f, 0.496723f, 0.125681f, 0.527687f, 0.956522f, 0.752448f, 0.188189f, 0.997759f, 0.600438f, 0.0332686f, 0.961283f, 0.813999f, 0.552099f, 0.852963f, 0.404257f, 0.645259f, 0.112288f, 0.228243f, 0.886161f, 0.949725f, 0.300789f, 0.452646f, 0.961252f, 0.97437f, 0.699202f, 0.895913f, 0.185787f, 0.757885f, 0.627126f, 0.992427f, 0.48017f, 0.947875f, 0.897657f, 0.98695f, 0.942724f, 0.51713f, 0.926083f, 0.298111f, 0.152125f, 0.67908f, 0.318174f, 0.211883f, 0.636607f, 0.836706f, 0.278385f, 0.077398f, 0.969227f, 0.246706f, 0.697787f, 0.0180306f, 0.690303f, 0.943149f, 0.827064f, 0.237975f, 0.946178f, 0.987358f, 0.339291f, 0.279195f, 0.111103f, 0.341787f, 0.772583f, 0.146264f, 0.497895f, 0.936975f, 0.836435f, 0.621066f, 0.79411f, 0.035769f, 0.0600016f, 0.995965f, 0.449941f, 0.105262f, 0.103016f, 0.677542f, 0.848522f, 0.0144764f, 0.272691f, 0.99499f, 0.0246795f, 0.394497f, 0.432227f, 0.905833f, 0.14186f, 0.223843f, 0.837145f, 0.884101f, 0.0958894f, 0.278607f, 0.306735f, 0.277072f, 0.121907f, 0.846329f, 0.928566f, 0.494188f, 0.866881f, 0.82777f, 0.40037f, 0.0298162f, 0.454833f, 0.0557116f, 0.568425f, 0.716013f, 0.625131f, 0.359461f, 0.167985f, 0.768185f, 0.954992f, 0.567223f, 0.297983f, 0.302766f, 0.909732f, 0.0675928f, 0.0475448f, 0.612588f, 0.454469f, 0.0555836f, 0.0137198f, 0.679233f, 0.997264f, 0.670852f, 0.98384f, 0.79776f, 0.444311f, 0.299769f, 0.415529f, 0.428637f, 0.0172332f, 0.107078f, 0.176099f, 0.238645f, 0.383938f, 0.26459f, 0.193779f, 0.169667f, 0.744224f, 0.852553f, 0.398356f, 0.0836121f, 0.254284f, 0.0210508f, 0.700994f, 0.110569f, 0.642708f, 0.909614f, 0.255123f, 0.0434409f, 0.196863f, 0.489927f, 0.814851f, 0.0462726f, 0.345261f, 0.0971585f, 0.125154f, 0.320215f, 0.650961f, 0.870661f, 0.0648448f, 0.505123f, 0.615948f, 0.281158f, 0.0647115f, 0.931344f, 0.149243f, 0.904606f, 0.280679f, 0.491131f, 0.177151f, 0.661114f, 0.922054f, 0.926097f, 0.177883f, 0.316882f, 0.685586f, 0.127404f, 0.898184f, 0.173397f, 0.435682f, 0.238084f, 0.38306f, 0.482842f, 0.392207f, 0.730058f, 0.920396f, 0.5362f, 0.523487f, 0.159495f, 0.621999f, 0.987929f, 0.171821f, 0.732103f, 0.860741f, 0.614877f, 0.0981477f, 0.794807f, 0.936615f, 0.265722f, 0.76072f, 0.0555835f, 0.465874f, 0.838684f, 0.13283f, 0.544939f, 0.562257f, 0.538816f, 0.0887406f, 0.845126f, 0.0543769f, 0.479723f, 0.0172412f, 0.190061f, 0.896127f, 0.621624f, 0.909402f, 0.984097f, 0.868161f, 0.464493f, 0.588519f, 0.0339487f, 0.510743f, 0.457221f, 0.51175f, 0.906448f, 0.506998f, 0.128875f, 0.371335f, 0.719548f, 0.244392f, 0.164222f, 0.460635f, 0.736981f, 0.386091f, 0.74204f, 0.23905f, 0.790501f, 0.125684f, 0.59015f, 0.142645f, 0.55644f, 0.0467885f, 0.00931126f, 0.345958f, 0.903315f, 0.307665f, 0.22823f, 0.803552f, 0.781198f, 0.545732f, 0.203391f, 0.71276f, 0.196048f, 0.453246f, 0.171651f, 0.763062f, 0.691391f, 0.203338f, 0.47249f, 0.88801f, 0.398356f, 0.459257f, 0.505327f, 0.807932f, 0.249673f, 0.941125f, 0.584451f, 0.551284f, 0.614088f, 0.302869f, 0.293274f, 0.641043f, 0.379531f, 0.95633f, 0.545617f, 0.984686f, 0.0236969f, 0.34287f, 0.640143f, 0.0201265f, 0.509974f, 0.98276f, 0.628205f, 0.613f, 0.736292f, 0.871173f, 0.434412f, 0.0964367f, 0.715149f, 0.0651578f, 0.858076f, 0.970373f, 0.697583f, 0.0511957f, 0.1312f, 0.0485288f, 0.522365f, 0.540259f, 0.048487f, 0.718387f, 0.494992f, 0.554173f, 0.0165956f, 0.37798f, 0.536323f, 0.352967f, 0.980283f, 0.811323f, 0.993776f, 0.888372f, 0.577185f, 0.325079f, 0.687499f, 0.302191f, 0.760436f, 0.258223f, 0.407045f, 0.642952f, 0.186617f, 0.217038f, 0.300392f, 0.909526f, 0.825396f, 0.669611f, 0.243431f, 0.830297f, 0.519504f, 0.740907f, 0.017328f, 0.619513f, 0.198669f, 0.951779f, 0.000801512f, 0.461046f, 0.237398f, 0.0297098f, 0.458399f, 0.0106786f, 0.940433f, 0.901133f, 0.118996f, 0.86597f, 0.600847f, 0.500417f, 0.669039f, 0.597425f, 0.863528f, 0.177502f, 0.928123f, 0.0235643f, 0.0162282f, 0.431811f, 0.0247326f, 0.46343f, 0.117594f, 0.705301f, 0.993842f, 0.128674f, 0.351389f, 0.583711f, 0.744332f, 0.0290085f, 0.601058f, 0.896482f, 0.145603f, 0.26196f, 0.510078f, 0.42398f, 0.847985f, 0.694315f, 0.84136f, 0.425329f, 0.777447f, 0.480603f, 0.442984f, 0.248403f, 0.967697f, 0.0191499f, 0.797625f, 0.650762f, 0.504973f, 0.793651f, 0.371018f, 0.0922546f, 0.377238f, 0.068083f, 0.212269f, 0.881175f, 0.0865724f, 0.60714f, 0.20614f, 0.495879f, 0.869379f, 0.798335f, 0.817325f, 0.407834f, 0.684409f, 0.994383f, 0.458125f, 0.160241f, 0.985585f, 0.602732f, 0.990763f, 0.94435f, 0.650575f, 0.654134f, 0.792205f, 0.669694f, 0.212634f, 0.649366f, 0.601599f, 0.152201f, 0.406112f, 0.41898f, 0.932211f, 0.833933f, 0.629197f, 0.460935f, 0.877179f, 0.464883f, 0.492687f, 0.978639f, 0.590143f, 0.695603f, 0.8976f, 0.989153f, 0.850627f, 0.776675f, 0.858904f, 0.262062f, 0.572785f, 0.468946f, 0.249937f, 0.38188f, 0.504424f, 0.564753f, 0.761964f, 0.380359f, 0.22803f, 0.0788631f, 0.489809f, 0.971161f, 0.619884f, 0.0317643f, 0.516531f, 0.625844f, 0.236571f, 0.615007f, 0.599899f, 0.751722f, 0.685894f, 0.354725f, 0.740931f, 0.968282f, 0.888018f, 0.621882f, 0.924862f, 0.527046f, 0.347151f, 0.212002f, 0.572193f, 0.117247f, 0.194615f, 0.095253f, 0.0201087f, 0.098146f, 0.310113f, 0.323643f, 0.894278f, 0.369888f, 0.810741f, 0.172767f, 0.709853f, 0.516814f, 0.548164f, 0.888336f, 0.0797477f, 0.24525f, 0.938654f, 0.502689f, 0.295827f, 0.119806f, 0.289672f, 0.961867f, 0.741689f, 0.292624f, 0.945117f, 0.71285f, 0.699524f, 0.804372f, 0.210751f, 0.982166f, 0.418573f, 0.589543f, 0.938117f, 0.337398f, 0.723417f, 0.610449f, 0.0908809f, 0.0543101f, 0.654165f, 0.663814f, 0.14508f, 0.741849f, 0.396282f, 0.526416f, 0.655926f, 0.192024f, 0.718833f, 0.15958f, 0.677303f, 0.733393f, 0.404192f, 0.124883f, 0.0175574f, 0.544939f, 0.601568f, 0.361211f, 0.443735f, 0.193085f, 0.323427f, 0.634401f, 0.976123f, 0.208605f, 0.422247f, 0.780503f, 0.0134489f, 0.0751375f, 0.54448f, 0.0500473f, 0.869196f, 0.0016913f, 0.506276f, 0.924825f, 0.949871f, 0.83844f, 0.00014734f, 0.637409f, 0.949198f, 0.519147f, 0.186983f, 0.0327156f, 0.79524f, 0.256879f, 0.204747f, 0.0328527f, 0.88794f, 0.632243f, 0.0589014f, 0.254368f, 0.918402f, 0.117684f, 0.893522f, 0.276757f, 0.856862f, 0.517076f, 0.263484f, 0.974121f, 0.0329834f, 0.0341347f, 0.590086f, 0.860627f, 0.0518987f, 0.291223f, 0.166075f, 0.180794f, 0.939487f, 0.330483f, 0.295762f, 0.818621f, 0.464363f, 0.88698f, 0.662816f, 0.113086f, 0.876906f, 0.233095f, 0.602022f, 0.605284f, 0.372794f, 0.81424f, 0.0330449f, 0.204503f, 0.25696f, 0.691717f, 0.278742f, 0.0521629f, 0.675656f, 0.188969f, 0.00757971f, 0.13839f, 0.810708f, 0.871205f, 0.158449f, 0.194538f, 0.259537f, 0.277723f, 0.791728f, 0.960963f, 0.701475f, 0.944527f, 0.440489f, 0.657244f, 0.630292f, 0.661049f, 0.282093f, 0.241272f, 0.425455f, 0.105716f, 0.78398f, 0.834028f, 0.772558f, 0.987713f, 0.869861f, 0.398555f, 0.640129f, 0.479359f, 0.082363f, 0.836305f, 0.799196f, 0.0100903f, 0.709837f, 0.52487f, 0.630181f, 0.338377f, 0.549398f, 0.35527f, 0.403584f, 0.550187f, 0.922802f, 0.323531f, 0.413257f, 0.64132f, 0.892639f, 0.237584f, 0.0482399f, 0.518739f, 0.0191092f, 0.48928f, 0.60362f, 0.418672f, 0.79729f, 0.222655f, 0.663298f, 0.11272f, 0.189199f, 0.261977f, 0.624759f, 0.247813f, 0.321991f, 0.869541f, 0.0345437f, 0.705514f, 0.236079f, 0.0751642f, 0.0265965f, 0.750211f, 0.956067f, 0.700557f, 0.643285f, 0.358891f, 0.299891f, 0.119464f, 0.632929f, 0.0396922f, 0.416897f, 0.857252f, 0.358908f, 0.820325f, 0.226221f, 0.00299245f, 0.873745f, 0.121183f, 0.0709516f, 0.328258f, 0.311731f, 0.787461f, 0.130027f, 0.422927f, 0.850793f, 0.128519f, 0.0353783f, 0.912582f, 0.92066f, 0.50438f, 0.566446f, 0.330203f, 0.428012f, 0.962995f, 0.658071f, 0.273066f, 0.392982f, 0.240056f, 0.282333f, 0.281442f, 0.734583f, 0.360461f, 0.824135f, 0.660209f, 0.776367f, 0.28154f, 0.465446f, 0.950371f, 0.219994f, 0.315196f, 0.906205f, 0.255356f, 0.126619f, 0.398926f, 0.122939f, 0.757885f, 0.431244f, 0.952485f, 0.0897354f, 0.0735005f, 0.223834f, 0.993829f, 0.910219f, 0.939369f, 0.209587f, 0.247965f, 0.378534f, 0.43695f, 0.593372f, 0.176592f, 0.550697f, 0.13481f, 0.938469f, 0.153942f, 0.513803f, 0.129937f, 0.925577f, 0.873291f, 0.0110865f, 0.599096f, 0.164479f, 0.993353f, 0.306322f, 0.761716f, 0.19688f, 0.738774f, 0.101273f, 0.375798f, 0.871668f, 0.651067f, 0.752728f, 0.317489f, 0.860593f, 0.151999f, 0.834951f, 0.0131671f, 0.213692f, 0.131601f, 0.948809f, 0.386539f, 0.735252f, 0.63589f, 0.597934f, 0.153738f, 0.207024f, 0.414825f, 0.0393166f, 0.656596f, 0.633114f, 0.71046f, 0.515206f, 0.725811f, 0.956858f, 0.96653f, 0.307947f, 0.81287f, 0.231269f, 0.443008f, 0.866685f, 0.330293f, 0.630222f, 0.610747f, 0.537684f, 0.520227f, 0.196919f, 0.622207f, 0.476517f, 0.113564f, 0.894873f, 0.092264f, 0.263747f, 0.620474f, 0.035461f, 0.0751112f, 0.142827f, 0.96917f, 0.453922f, 0.370087f, 0.860608f, 0.692643f, 0.349574f, 0.88413f, 0.349871f, 0.138777f, 0.696332f, 0.512382f, 0.453479f, 0.0715139f, 0.962642f, 0.117193f, 0.755279f, 0.0467926f, 0.951346f, 0.932626f, 0.708602f, 0.591814f, 0.0766236f, 0.911442f, 0.684024f, 0.676403f, 0.423532f, 0.918271f, 0.744965f, 0.592189f, 0.449637f, 0.982688f, 0.150236f, 0.267047f, 0.621663f, 0.00228062f, 0.788285f, 0.370236f, 0.495627f, 0.294375f, 0.406271f, 0.892055f, 0.952665f, 0.0619688f, 0.786144f, 0.154908f, 0.182073f, 0.265545f, 0.838363f, 0.0994781f, 0.384246f, 0.0825485f, 0.307077f, 0.920718f, 0.0360689f, 0.0136542f, 0.516079f, 0.785751f, 0.622565f, 0.838129f, 0.934121f, 0.890701f, 0.949006f, 0.505474f, 0.576906f, 0.270199f, 0.493857f, 0.486989f, 0.158093f, 0.346061f, 0.78021f, 0.846452f, 0.0833809f, 0.954651f, 0.355517f, 0.903562f, 0.1996f, 0.705845f, 0.258689f, 0.744718f, 0.167873f, 0.978481f, 0.998333f, 0.737268f, 0.879358f, 0.554217f, 0.501416f, 0.712734f, 0.36335f, 0.133565f, 0.717549f, 0.450434f, 0.2594f, 0.571242f, 0.95148f, 0.309606f, 0.0138764f, 0.616544f, 0.0912953f, 0.285406f, 0.542064f, 0.899954f, 0.349686f, 0.847954f, 0.194902f, 0.974816f, 0.711702f, 0.590018f, 0.40569f, 0.0615247f, 0.860793f, 0.951327f, 0.325705f, 0.20677f, 0.902547f, 0.377651f, 0.372405f, 0.150593f, 0.694874f, 0.196005f, 0.460057f, 0.948702f, 0.868886f, 0.668987f, 0.744096f, 0.134359f, 0.121742f, 0.968874f, 0.657978f, 0.642594f, 0.131876f, 0.630214f, 0.806247f, 0.865757f, 0.902028f, 0.445547f, 0.298948f, 0.469114f, 0.0150796f, 0.0826065f, 0.425651f, 0.31539f, 0.0164835f, 0.782148f, 0.316098f, 0.331723f, 0.35115f, 0.663207f, 0.874859f, 0.472857f, 0.299885f, 0.303156f, 0.353277f, 0.85299f, 0.305924f, 0.753377f, 0.687635f, 0.721103f, 0.0175073f, 0.131642f, 0.793767f, 0.895199f, 0.168561f, 0.0137051f, 0.741135f, 0.521726f, 0.669587f, 0.869922f, 0.399693f, 0.975729f, 0.785194f, 0.223006f, 0.47353f, 0.396348f, 0.577172f, 0.164608f, 0.187767f, 0.40811f, 0.0538205f, 0.879997f, 0.0382984f, 0.660866f, 0.0198569f, 0.127509f, 0.00440152f, 0.733446f, 0.313383f, 0.870143f, 0.779805f, 0.869333f, 0.30661f, 0.734021f, 0.0171242f, 0.989702f, 0.893072f, 0.961857f, 0.578993f, 0.37131f, 0.339649f, 0.893034f, 0.993413f, 0.890027f, 0.985948f, 0.732727f, 0.144102f, 0.176959f, 0.205401f, 0.91985f, 0.618145f, 0.425502f, 0.232627f, 0.822216f, 0.664413f, 0.661354f, 0.0736633f, 0.167671f, 0.100399f, 0.757384f, 0.067736f, 0.760572f, 0.0928382f, 0.962066f, 0.459678f, 0.979835f, 0.194456f, 0.752379f, 0.16628f, 0.373694f, 0.804512f, 0.985093f, 0.541025f, 0.476111f, 0.581787f, 0.999706f, 0.242947f, 0.0282187f, 0.0515976f, 0.663627f, 0.467204f, 0.544393f, 0.0968091f, 0.246363f, 0.553636f, 0.504417f, 0.531388f, 0.686031f, 0.0876361f, 0.428347f, 0.376407f, 0.554175f, 0.561901f, 0.202451f, 0.920244f, 0.259299f, 0.542616f, 0.483982f, 0.549205f, 0.54552f, 0.207978f, 0.352002f, 0.705705f, 0.532275f, 0.179278f, 0.428465f, 0.134763f, 0.659402f, 0.0057269f, 0.801147f, 0.646996f, 0.383481f, 0.861122f, 0.323674f, 0.0827917f, 0.584816f, 0.364272f, 0.643767f, 0.763442f, 0.542709f, 0.583704f, 0.13157f, 0.472268f, 0.840147f, 0.298832f, 0.197026f, 0.609529f, 0.299575f, 0.779332f, 0.105797f, 0.946181f, 0.374778f, 0.157552f, 0.855743f, 0.949876f, 0.75281f, 0.97056f, 0.328316f, 0.278471f, 0.338026f, 0.290353f, 0.331418f, 0.105357f, 0.107911f, 0.209987f, 0.204651f, 0.150709f, 0.274328f, 0.737791f, 0.997707f, 0.179658f, 0.493024f, 0.65032f, 0.415079f, 0.753049f, 0.277085f, 0.467552f, 0.872592f, 0.711235f, 0.764987f, 0.962283f, 0.916678f, 0.933345f, 0.16943f, 0.705291f, 0.305846f, 0.932473f, 0.417927f, 0.630764f, 0.954316f, 0.242577f, 0.65197f, 0.527587f, 0.322707f, 0.167167f, 0.82909f, 0.392693f, 0.114201f, 0.49168f, 0.601137f, 0.725202f, 0.55052f, 0.871408f, 0.183662f, 0.194188f, 0.766514f, 0.390563f, 0.53373f, 0.411142f, 0.11287f, 0.496191f, 0.237936f, 0.0864019f, 0.170401f, 0.498972f, 0.52159f, 0.31857f, 0.483729f, 0.363289f, 0.431386f, 0.113659f, 0.480874f, 0.575185f, 0.142799f, 0.745861f, 0.882621f, 0.682881f, 0.521802f, 0.844527f, 0.202177f, 0.0689832f, 0.439121f, 0.0190587f, 0.401935f, 0.54349f, 0.182965f, 0.39918f, 0.824962f, 0.149391f, 0.941701f, 0.688548f, 0.843249f, 0.61073f, 0.186105f, 0.425176f, 0.0335142f, 0.078846f, 0.894642f, 0.150805f, 0.871669f, 0.983689f, 0.569739f, 0.120006f, 0.23462f, 0.546894f, 0.985899f, 0.111177f, 0.778787f, 0.0306535f, 0.530043f, 0.934035f, 0.600232f, 0.795862f, 0.000255291f, 0.899834f, 0.799882f, 0.6844f, 0.909917f, 0.526249f, 0.784017f, 0.508718f, 0.603375f, 0.101162f, 0.504013f, 0.89333f, 0.249172f, 0.983046f, 0.425236f, 0.314616f, 0.210964f, 0.86667f, 0.422713f, 0.889854f, 0.630856f, 0.250198f, 0.10653f, 0.532989f, 0.341159f, 0.503815f, 0.042197f, 0.116202f, 0.139078f, 0.00744486f, 0.484724f, 0.100958f, 0.428136f, 0.781813f, 0.933248f, 0.913441f, 0.566981f, 0.211166f, 0.222149f, 0.303675f, 0.521641f, 0.907715f, 0.386349f, 0.534989f, 0.388098f, 0.0928392f, 0.741067f, 0.453121f, 0.120637f, 0.344422f, 0.28851f, 0.42738f, 0.221189f, 0.558106f, 0.616776f, 0.927745f, 0.71598f, 0.960932f, 0.211125f, 0.795583f, 0.218155f, 0.327569f, 0.97426f, 0.366298f, 0.132889f, 0.273736f, 0.784914f, 0.57263f, 0.600575f, 0.592524f, 0.612454f, 0.233136f, 0.181411f, 0.298813f, 0.983425f, 0.931825f, 0.432271f, 0.375455f, 0.348776f, 0.704192f, 0.3458f, 0.469054f, 0.206761f, 0.545479f, 0.319201f, 0.0283074f, 0.524172f, 0.790276f, 0.350788f, 0.491273f, 0.855947f, 0.456643f, 0.766323f, 0.859359f, 0.506045f, 0.203754f, 0.56715f, 0.666739f, 0.918874f, 0.272368f, 0.729093f, 0.265262f, 0.99749f, 0.521925f, 0.137931f, 0.093001f, 0.851225f, 0.666747f, 0.382704f, 0.350107f, 0.60679f, 0.40621f, 0.866533f, 0.432777f, 0.948598f, 0.0121469f, 0.71365f, 0.519644f, 0.292866f, 0.383114f, 0.724785f, 0.476142f, 0.457834f, 0.435974f, 0.722377f, 0.268621f, 0.794421f, 0.028675f, 0.659385f, 0.128917f, 0.412119f, 0.0739568f, 0.036621f, 0.145276f, 0.13657f, 0.860479f, 0.0404693f, 0.790565f, 0.465281f, 0.355455f, 0.849531f, 0.919323f, 0.0617039f, 0.315882f, 0.703688f, 0.010304f, 0.89633f, 0.486141f, 0.998679f, 0.242657f, 0.577039f, 0.0329449f, 0.848627f, 0.932338f, 0.109061f, 0.719444f, 0.0570264f, 0.712136f, 0.66945f, 0.220701f, 0.648711f, 0.886529f, 0.611644f, 0.307003f, 0.0654794f, 0.00418425f, 0.574744f, 0.326092f, 0.390828f, 0.805966f, 0.671923f, 0.843696f, 0.631535f, 0.46795f, 0.259107f, 0.660515f, 0.679202f, 0.176025f, 0.0569527f, 0.0855054f, 0.780762f, 0.312956f, 0.973318f, 0.0683091f, 0.840799f, 0.24185f, 0.225479f, 0.369804f, 0.209389f, 0.757325f, 0.648027f, 0.781705f, 0.0523023f, 0.29403f, 0.354478f, 0.65567f, 0.0788939f, 0.645401f, 0.201949f, 0.761682f, 0.0419674f, 0.39134f, 0.966735f, 0.928743f, 0.330331f, 0.516785f, 0.878995f, 0.288281f, 0.932334f, 0.523682f, 0.715837f, 0.465523f, 0.545675f, 0.985006f, 0.118815f, 0.346305f, 0.922536f, 0.315067f, 0.974697f, 0.0746082f, 0.745428f, 0.712839f, 0.25902f, 0.27883f, 0.680903f, 0.256771f, 0.248894f, 0.120108f, 0.0671847f, 0.119086f, 0.172175f, 0.286801f, 0.174667f, 0.1063f, 0.95757f, 0.0951392f, 0.0908864f, 0.688181f, 0.487435f, 0.883682f, 0.682503f, 0.125781f, 0.617355f, 0.132983f, 0.211431f, 0.839752f, 0.141492f, 0.0747301f, 0.879295f, 0.705781f, 0.487312f, 0.236955f, 0.471991f, 0.784116f, 0.672602f, 0.580948f, 0.560414f, 0.724544f, 0.883303f, 0.95667f, 0.617553f, 0.29172f, 0.0741911f, 0.961876f, 0.42648f, 0.246887f, 0.286034f, 0.794506f, 0.58938f, 0.750983f, 0.554592f, 0.734428f, 0.458975f, 0.450334f, 0.255665f, 0.1741f, 0.673493f, 0.123515f, 0.125788f, 0.738598f, 0.164642f, 0.865752f, 0.69991f, 0.356539f, 0.137902f, 0.711637f, 0.0666647f, 0.985536f, 0.979876f, 0.628472f, 0.68901f, 0.0651761f, 0.880762f, 0.134784f, 0.456508f, 0.610558f, 0.164991f, 0.687468f, 0.802499f, 0.266486f, 0.113039f, 0.249944f, 0.829623f, 0.190044f, 0.0325146f, 0.385954f, 0.103577f, 0.432229f, 0.658499f, 0.518404f, 0.288699f, 0.800206f, 0.305622f, 0.658524f, 0.569329f, 0.682139f, 0.389223f, 0.986657f, 0.638365f, 0.683896f, 0.734146f, 0.467965f, 0.863144f, 0.349018f, 0.857988f, 0.519195f, 0.137434f, 0.198396f, 0.47824f, 0.33314f, 0.58306f, 0.819482f, 0.131867f, 0.978421f, 0.634582f, 0.191915f, 0.302606f, 0.795154f, 0.808797f, 0.101746f, 0.191043f, 0.382334f, 0.0742625f, 0.299295f, 0.416325f, 0.696179f, 0.615711f, 0.743909f, 0.938272f, 0.496033f, 0.66508f, 0.321946f, 0.70886f, 0.341679f, 0.80148f, 0.766432f, 0.224154f, 0.95704f, 0.522049f, 0.100194f, 0.153635f, 0.183131f, 0.938512f, 0.501546f, 0.701983f, 0.0469377f, 0.306475f, 0.462542f, 0.892279f, 0.77836f, 0.122795f, 0.955546f, 0.679641f, 0.343777f, 0.744099f, 0.620283f, 0.0510458f, 0.621126f, 0.497496f, 0.0615522f, 0.994788f, 0.116699f, 0.174825f, 0.84207f, 0.147225f, 0.56432f, 0.459457f, 0.783872f, 0.6876f, 0.226885f, 0.793955f, 0.763438f, 0.460798f, 0.929226f, 0.484258f, 0.947753f, 0.809431f, 0.146492f, 0.872402f, 0.92335f, 0.44157f, 0.70711f, 0.290489f, 0.568933f, 0.86936f, 0.315753f, 0.0230588f, 0.140049f, 0.542548f, 0.794032f, 0.0363069f, 0.263593f, 0.78054f, 0.0612037f, 0.0121797f, 0.881876f, 0.517335f, 0.173431f, 0.646599f, 0.277209f, 0.553398f, 0.0854287f, 0.283189f, 0.575213f, 0.129925f, 0.257416f, 0.798785f, 0.944648f, 0.950456f, 0.0976221f, 0.365262f, 0.605363f, 0.918504f, 0.64519f, 0.673155f, 0.027879f, 0.219172f, 0.48537f, 0.65908f, 0.280854f, 0.424895f, 0.881106f, 0.788609f, 0.178011f, 0.274207f, 0.574707f, 0.305934f, 0.349095f, 0.94066f, 0.356352f, 0.114581f, 0.253141f, 0.984931f, 0.876784f, 0.228779f, 0.359667f, 0.387525f, 0.564695f, 0.0347474f, 0.0232462f, 0.92298f, 0.845051f, 0.142808f, 0.323234f, 0.0942305f, 0.720866f, 0.475697f, 0.77392f, 0.229708f, 0.362771f, 0.140601f, 0.543391f, 0.209958f, 0.385444f, 0.356594f, 0.404747f, 0.875072f, 0.920314f, 0.93781f, 0.542478f, 0.999612f, 0.649792f, 0.464563f, 0.71913f, 0.067716f, 0.892564f, 0.511679f, 0.120239f, 0.94121f, 0.939246f, 0.158685f, 0.554051f, 0.608282f, 0.59656f, 0.0820175f, 0.288989f, 0.0551669f, 0.60417f, 0.183301f, 0.695141f, 0.457712f, 0.2546f, 0.851147f, 0.433316f, 0.381404f, 0.408653f, 0.302199f, 0.181817f, 0.139157f, 0.687415f, 0.717399f, 0.543787f, 0.903703f, 0.635132f, 0.308985f, 0.639285f, 0.746764f, 0.395103f, 0.220186f, 0.449086f, 0.430574f, 0.446683f, 0.840254f, 0.948244f, 0.594952f, 0.977248f, 0.600554f, 0.154041f, 0.411787f, 0.634164f, 0.174319f, 0.0357253f, 0.477696f, 0.209104f, 0.789559f, 0.809459f, 0.322492f, 0.521382f, 0.679866f, 0.042858f, 0.906839f, 0.182991f, 0.109828f, 0.652227f, 0.134167f, 0.156985f, 0.797595f, 0.901733f, 0.173423f, 0.511025f, 0.991431f, 0.748042f, 0.258461f, 0.247526f, 0.443121f, 0.642915f, 0.40633f, 0.178967f, 0.956317f, 0.118498f, 0.77716f, 0.84374f, 0.615613f, 0.775724f, 0.128556f, 0.047564f, 0.482233f, 0.869486f, 0.912726f, 0.712969f, 0.589686f, 0.915699f, 0.127395f, 0.0243428f, 0.796528f, 0.0271926f, 0.276897f, 0.854741f, 0.273008f, 0.409598f, 0.272909f, 0.611109f, 0.385579f, 0.855294f, 0.0808233f, 0.895329f, 0.788063f, 0.397411f, 0.538612f, 0.643484f, 0.363602f, 0.845004f, 0.505217f, 0.859102f, 0.80703f, 0.928915f, 0.903243f, 0.116869f, 0.973045f, 0.781131f, 0.825223f, 0.604321f, 0.125879f, 0.334724f, 0.47945f, 0.344978f, 0.993253f, 0.0462239f, 0.136637f, 0.135684f, 0.905821f, 0.709746f, 0.703002f, 0.824723f, 0.503736f, 0.309801f, 0.257925f, 0.446654f, 0.284797f, 0.492379f, 0.43401f, 0.0674284f, 0.495682f, 0.787423f, 0.247764f, 0.806895f, 0.693029f, 0.93894f, 0.369134f, 0.0293536f, 0.397517f, 0.434083f, 0.280603f, 0.457201f, 0.265151f, 0.617149f, 0.409492f, 0.471634f, 0.576589f, 0.519764f, 0.0372819f, 0.614149f, 0.209851f, 0.962954f, 0.721739f, 0.861157f, 0.667498f, 0.190374f, 0.18033f, 0.161539f, 0.722929f, 0.0673748f, 0.466838f, 0.636999f, 0.439436f, 0.414309f, 0.471628f, 0.119459f, 0.791597f, 0.0954365f, 0.81868f, 0.179773f, 0.951307f, 0.442901f, 0.415485f, 0.592253f, 0.596485f, 0.0820338f, 0.454377f, 0.314596f, 0.7888f, 0.733904f, 0.388865f, 0.737712f, 0.628816f, 0.0052384f, 0.921227f, 0.200301f, 0.875352f, 0.675662f, 0.708127f, 0.0445684f, 0.801732f, 0.220593f, 0.195389f, 0.031508f, 0.138105f, 0.004039f, 0.801566f, 0.220978f, 0.0527361f, 0.420341f, 0.152275f, 0.257702f, 0.662879f, 0.195477f, 0.477988f, 0.149647f, 0.360582f, 0.252035f, 0.837836f, 0.202909f, 0.0443178f, 0.124772f, 0.519917f, 0.792469f, 0.950344f, 0.556252f, 0.393459f, 0.626201f, 0.895579f, 0.0857474f, 0.663377f, 0.689754f, 0.360722f, 0.476277f, 0.22723f, 0.460077f, 0.472823f, 0.088477f, 0.208273f, 0.753047f, 0.142233f, 0.592708f, 0.147864f, 0.785634f, 0.0503793f, 0.721425f, 0.94303f, 0.121167f, 0.892101f, 0.815383f, 0.703281f, 0.446439f, 0.121052f, 0.880847f, 0.736922f, 0.594894f, 0.0383547f, 0.411381f, 0.800388f, 0.530794f, 0.948522f, 0.803177f, 0.0677633f, 0.938261f, 0.162068f, 0.25666f, 0.0170452f, 0.509109f, 0.598514f, 0.750054f, 0.700235f, 0.166511f, 0.132547f, 0.0892302f, 0.268259f, 0.519604f, 0.323998f, 0.888942f, 0.884842f, 0.464882f, 0.964561f, 0.298755f, 0.926063f, 0.704481f, 0.577166f, 0.878532f, 0.323947f, 0.649356f, 0.108289f, 0.438164f, 0.0072268f, 0.276634f, 0.460823f, 0.106675f, 0.510821f, 0.080038f, 0.381653f, 0.884968f, 0.442802f, 0.426584f, 0.207201f, 0.75459f, 0.302402f, 0.131164f, 0.747887f, 0.796919f, 0.310198f, 0.886895f, 0.827975f, 0.385015f, 0.133066f, 0.140414f, 0.303026f, 0.322819f, 0.335723f, 0.235426f, 0.243013f, 0.913023f, 0.846627f, 0.128839f, 0.803731f, 0.678621f, 0.775961f, 0.255289f, 0.623905f, 0.422038f, 0.501386f, 0.52264f, 0.633341f, 0.262209f, 0.642365f, 0.403741f, 0.0553783f, 0.33729f, 0.625458f, 0.121564f, 0.908396f, 0.0465776f, 0.0216111f, 0.165593f, 0.819747f, 0.156041f, 0.454712f, 0.634647f, 0.717452f, 0.791361f, 0.16383f, 0.876477f, 0.298547f, 0.0967544f, 0.306887f, 0.376036f, 0.921137f, 0.449657f, 0.643716f, 0.36668f, 0.853546f, 0.0979937f, 0.608885f, 0.127596f, 0.274848f, 0.477162f, 0.355337f, 0.203537f, 0.196091f, 0.0411482f, 0.7056f, 0.0659719f, 0.559514f, 0.120639f, 0.91403f, 0.699591f, 0.0606869f, 0.286808f, 0.147464f, 0.0819117f, 0.471353f, 0.238771f, 0.0024005f, 0.850257f, 0.450605f, 0.170032f, 0.541669f, 0.234009f, 0.716294f, 0.313126f, 0.943393f, 0.866585f, 0.145735f, 0.394582f, 0.68414f, 0.363647f, 0.256421f, 0.0112904f, 0.0966522f, 0.996209f, 0.211737f, 0.367466f, 0.29625f, 0.876097f, 0.632086f, 0.739723f, 0.68968f, 0.352125f, 0.757828f, 0.755f, 0.341412f, 0.991008f, 0.0579852f, 0.0432854f, 0.0779292f, 0.346145f, 0.434658f, 0.345201f, 0.246648f, 0.117396f, 0.49991f, 0.448512f, 0.223898f, 0.359364f, 0.402891f, 0.374578f, 0.556938f, 0.0631965f, 0.818556f, 0.191346f, 0.99804f, 0.812671f, 0.383271f, 0.477208f, 0.287621f, 0.32783f, 0.404819f, 0.360004f, 0.48539f, 0.730465f, 0.842978f, 0.840347f, 0.176263f, 0.725395f, 0.913036f, 0.579613f, 0.190412f, 0.393441f, 0.179916f, 0.97419f, 0.205657f, 0.882818f, 0.751801f, 0.663449f, 0.282115f, 0.309451f, 0.684265f, 0.925508f, 0.907791f, 0.644116f, 0.594189f, 0.270316f, 0.928215f, 0.270332f, 0.535511f, 0.0507398f, 0.628708f, 0.85227f, 0.45383f, 0.929312f, 0.677593f, 0.484119f, 0.976435f, 0.97058f, 0.461061f, 0.0915939f, 0.341794f, 0.211881f, 0.734182f, 0.578379f, 0.505584f, 0.253547f, 0.575241f, 0.403074f, 0.554885f, 0.791949f, 0.551603f, 0.192511f, 0.62504f, 0.352356f, 0.467595f, 0.955976f, 0.430357f, 0.1926f, 0.869406f, 0.636174f, 0.391593f, 0.737206f, 0.488382f, 0.711914f, 0.713012f, 0.718183f, 0.130062f, 0.203195f, 0.185301f, 0.721868f, 0.382154f, 0.225553f, 0.830909f, 0.549502f, 0.887707f, 0.564624f, 0.707833f, 0.861514f, 0.692271f, 0.223948f, 0.0848766f, 0.069706f, 0.774395f, 0.241254f, 0.0330149f, 0.0621875f, 0.830338f, 0.711968f, 0.825082f, 0.765116f, 0.410175f, 0.468473f, 0.723556f, 0.53847f, 0.721592f, 0.688386f, 0.996853f, 0.495969f, 0.308593f, 0.130009f, 0.136017f, 0.186983f, 0.773281f, 0.464971f, 0.267662f, 0.366385f, 0.706133f, 0.352993f, 0.381277f, 0.927696f, 0.436281f, 0.115097f, 0.224903f, 0.182432f, 0.324585f, 0.853631f, 0.962648f, 0.426183f, 0.972765f, 0.754619f, 0.932642f, 0.0397336f, 0.405386f, 0.185493f, 0.196159f, 0.280581f, 0.81349f, 0.0566108f, 0.913126f, 0.864805f, 0.864243f, 0.839135f, 0.65982f, 0.310596f, 0.0306325f, 0.719261f, 0.91392f, 0.682861f, 0.286705f, 0.495547f, 0.837516f, 0.877889f, 0.103057f, 0.0915095f, 0.041526f, 0.913605f, 0.0120425f, 0.430544f, 0.3469f, 0.424993f, 0.271809f, 0.640018f, 0.978747f, 0.519083f, 0.591846f, 0.453999f, 0.818611f, 0.561709f, 0.490296f, 0.764526f, 0.345333f, 0.465684f, 0.501756f, 0.646381f, 0.303442f, 0.487852f, 0.302947f, 0.759262f, 0.705049f, 0.359549f, 0.0306396f, 0.521511f, 0.855995f, 0.763526f, 0.301525f, 0.0211847f, 0.801818f, 0.440616f, 0.187869f, 0.286936f, 0.653456f, 0.0863641f, 0.687108f, 0.987247f, 0.582493f, 0.0787707f, 0.215817f, 0.152722f, 0.727039f, 0.680357f, 0.157492f, 0.0874165f, 0.29075f, 0.849083f, 0.709289f, 0.307685f, 0.373957f, 0.604046f, 0.249798f, 0.922869f, 0.355248f, 0.11615f, 0.0781376f, 0.575865f, 0.376602f, 0.829088f, 0.135778f, 0.1659f, 0.155543f, 0.593435f, 0.392356f, 0.0452224f, 0.474088f, 0.291258f, 0.989302f, 0.340455f, 0.341552f, 0.0144077f, 0.769514f, 0.964297f, 0.549967f, 0.0488852f, 0.613462f, 0.675892f, 0.757522f, 0.724489f, 0.571236f, 0.14291f, 0.406721f, 0.343369f, 0.0858385f, 0.186502f, 0.806342f, 0.539056f, 0.536357f, 0.904026f, 0.70836f, 0.450419f, 0.713453f, 0.0945273f, 0.54752f, 0.162833f, 0.154616f, 0.148919f, 0.963524f, 0.307454f, 0.735734f, 0.213009f, 0.552391f, 0.433575f, 0.775243f, 0.98033f, 0.318374f, 0.00285737f, 0.99413f, 0.500573f, 0.0649286f, 0.85529f, 0.957998f, 0.514092f, 0.375678f, 0.958082f, 0.0966625f, 0.86574f, 0.0921497f, 0.627249f, 0.901373f, 0.223073f, 0.863927f, 0.883334f, 0.461885f, 0.0646166f, 0.653075f, 0.366411f, 0.61753f, 0.919812f, 0.851461f, 0.591763f, 0.173021f, 0.742659f, 0.258634f, 0.999868f, 0.633771f, 0.734484f, 0.126218f, 0.322469f, 0.609085f, 0.391892f, 0.294525f, 0.0657253f, 0.283494f, 0.0219703f, 0.274235f, 0.199938f, 0.140622f, 0.0261972f, 0.0954744f, 0.252706f, 0.125962f, 0.591655f, 0.351266f, 0.951874f, 0.0331499f, 0.639152f, 0.524904f, 0.811898f, 0.753506f, 0.806572f, 0.573111f, 0.860953f, 0.718553f, 0.222265f, 0.472788f, 0.17718f, 0.790505f, 0.196329f, 0.958922f, 0.474081f, 0.842605f, 0.541059f, 0.744722f, 0.900755f, 0.269413f, 0.252577f, 0.199723f, 0.538515f, 0.63466f, 0.824158f, 0.993387f, 0.687465f, 0.577214f, 0.986416f, 0.171009f, 0.711906f, 0.801219f, 0.101932f, 0.265538f, 0.517818f, 0.815548f, 0.361354f, 0.51904f, 0.983438f, 0.463077f, 0.167169f, 0.883352f, 0.170694f, 0.935116f, 0.732944f, 0.0358385f, 0.269548f, 0.838122f, 0.986801f, 0.338054f, 0.0736178f, 0.583174f, 0.823464f, 0.292892f, 0.619814f, 0.429944f, 0.205241f, 0.601124f, 0.975362f, 0.115201f, 0.441878f, 0.399484f, 0.145629f, 0.613184f, 0.31096f, 0.175023f, 0.922024f, 0.223168f, 0.676566f, 0.196824f, 0.154837f, 0.366641f, 0.0328393f, 0.806666f, 0.81512f, 0.967253f, 0.317381f, 0.31028f, 0.203464f, 0.87059f, 0.721569f, 0.640017f, 0.985287f, 0.553971f, 0.111783f, 0.187386f, 0.0354623f, 0.123158f, 0.277595f, 0.895027f, 0.499938f, 0.826473f, 0.645091f, 0.861861f, 0.362853f, 0.53105f, 0.0392038f, 0.963459f, 0.314704f, 0.299601f, 0.0288469f, 0.647459f, 0.561967f, 0.551995f, 0.0351248f, 0.231971f, 0.726246f, 0.124732f, 0.443812f, 0.0468727f, 0.59497f, 0.0819643f, 0.617699f, 0.367713f, 0.796483f, 0.0771232f, 0.556894f, 0.444883f, 0.969592f, 0.733371f, 0.169334f, 0.308866f, 0.459915f, 0.833199f, 0.086676f, 0.0771984f, 0.96669f, 0.567968f, 0.322198f, 0.098317f, 0.207871f, 0.242587f, 0.293557f, 0.0314135f, 0.7136f, 0.689609f, 0.357997f, 0.76835f, 0.761416f, 0.513577f, 0.0437506f, 0.248481f, 0.8781f, 0.938893f, 0.452103f, 0.803518f, 0.939733f, 0.49525f, 0.635703f, 0.592329f, 0.723816f, 0.383401f, 0.730649f, 0.824321f, 0.616737f, 0.0221482f, 0.73448f, 0.55418f, 0.4532f, 0.35911f, 0.165987f, 0.549263f, 0.713057f, 0.970698f, 0.0558401f, 0.0478223f, 0.501555f, 0.877499f, 0.323109f, 0.527453f, 0.138095f, 0.54054f, 0.151781f, 0.410274f, 0.182295f, 0.288251f, 0.982909f, 0.511266f, 0.461464f, 0.648477f, 0.188035f, 0.520581f, 0.239408f, 0.491809f, 0.718919f, 0.0938332f, 0.285729f, 0.106841f, 0.606726f, 0.490935f, 0.86651f, 0.180865f, 0.985614f, 0.159484f, 0.0834094f, 0.0251471f, 0.881426f, 0.634299f, 0.803784f, 0.124723f, 0.363128f, 0.96287f, 0.48943f, 0.689214f, 0.565162f, 0.0180327f, 0.718634f, 0.835039f, 0.711085f, 0.140549f, 0.549321f, 0.581991f, 0.0430252f, 0.622331f, 0.608388f, 0.798413f, 0.0259461f, 0.939007f, 0.80905f, 0.393104f, 0.592326f, 0.919957f, 0.0515215f, 0.21022f, 0.816602f, 0.902884f, 0.570879f, 0.64424f, 0.585107f, 0.0248819f, 0.179805f, 0.978196f, 0.102385f, 0.613371f, 0.917875f, 0.0269309f, 0.837388f, 0.103777f, 0.177646f, 0.0352003f, 0.548149f, 0.326652f, 0.889184f, 0.156289f, 0.0854004f, 0.0193054f, 0.928428f, 0.396445f, 0.381079f, 0.296542f, 0.554379f, 0.854839f, 0.97794f, 0.454189f, 0.133098f, 0.240306f, 0.279264f, 0.377384f, 0.777238f, 0.124053f, 0.745216f, 0.726462f, 0.361903f, 0.568819f, 0.211092f, 0.505899f, 0.976372f, 0.182271f, 0.293568f, 0.00238258f, 0.856982f, 0.183392f, 0.18003f, 0.713097f, 0.977668f, 0.100877f, 0.349218f, 0.147611f, 0.315809f, 0.603447f, 0.64022f, 0.0857591f, 0.896518f, 0.651759f, 0.139246f, 0.55121f, 0.595465f, 0.690662f, 0.923067f, 0.732652f, 0.460265f, 0.892629f, 0.958834f, 0.8925f, 0.174999f, 0.546506f, 0.0428178f, 0.250985f, 0.237769f, 0.8357f, 0.707597f, 0.419884f, 0.668426f, 0.418209f, 0.0162044f, 0.563968f, 0.656426f, 0.262716f, 0.377029f, 0.146079f, 0.117027f, 0.115488f, 0.683381f, 0.875439f, 0.87393f, 0.140898f, 0.537138f, 0.444611f, 0.797474f, 0.317486f, 0.972075f, 0.394308f, 0.329786f, 0.605717f, 0.49305f, 0.764609f, 0.958847f, 0.113853f, 0.450245f, 0.760901f, 0.933014f, 0.050825f, 0.134767f, 0.855269f, 0.502479f, 0.898026f, 0.391195f, 0.0719292f, 0.636708f, 0.688786f, 0.10816f, 0.0163563f, 0.251003f, 0.197639f, 0.880459f, 0.441534f, 0.131779f, 0.815068f, 0.88632f, 0.426271f, 0.0119967f, 0.14107f, 0.626235f, 0.738132f, 0.617686f, 0.949852f, 0.257557f, 0.0580807f, 0.51944f, 0.162752f, 0.840121f, 0.320176f, 0.446263f, 0.574496f, 0.46924f, 0.481378f, 0.117363f, 0.528148f, 0.536896f, 0.810889f, 0.0764278f, 0.158937f, 0.85015f, 0.898797f, 0.592393f, 0.771639f, 0.801977f, 0.114191f, 0.339039f, 0.0259773f, 0.680674f, 0.419337f, 0.599168f, 0.0757838f, 0.512989f, 0.732161f, 0.507442f, 0.869276f, 0.321673f, 0.731624f, 0.383285f, 0.38206f, 0.801143f, 0.438091f, 0.560173f, 0.660212f, 0.23746f, 0.731079f, 0.318417f, 0.36504f, 0.876286f, 0.736329f, 0.791173f, 0.956445f, 0.323262f, 0.947492f, 0.473555f, 0.485068f, 0.740577f, 0.113883f, 0.542844f, 0.99052f, 0.314031f, 0.70648f, 0.257082f, 0.215745f, 0.745425f, 0.745272f, 0.113282f, 0.846858f, 0.424482f, 0.829325f, 0.165168f, 0.514918f, 0.695552f, 0.301505f, 0.702294f, 0.632457f, 0.095175f, 0.179056f, 0.469551f, 0.118574f, 0.0442971f, 0.684475f, 0.449821f, 0.864671f, 0.567892f, 0.576176f, 0.632051f, 0.885669f, 0.204395f, 0.0971353f, 0.352499f, 0.738907f, 0.466793f, 0.496468f, 0.351037f, 0.243115f, 0.911098f, 0.227332f, 0.644997f, 0.637867f, 0.332965f, 0.208059f, 0.216949f, 0.46867f, 0.886851f, 0.227812f, 0.671073f, 0.474314f, 0.763482f, 0.925339f, 0.0540861f, 0.972279f, 0.28742f, 0.325972f, 0.0267175f, 0.266578f, 0.0406248f, 0.576108f, 0.113293f, 0.8665f, 0.628075f, 0.516012f, 0.780659f, 0.810629f, 0.660676f, 0.0992584f, 0.352639f, 0.394222f, 0.15539f, 0.373866f, 0.365409f, 0.501467f, 0.90406f, 0.632545f, 0.806643f, 0.140516f, 0.111344f, 0.320082f, 0.192266f, 0.267615f, 0.354809f, 0.875555f, 0.0405757f, 0.307203f, 0.691234f, 0.0835093f, 0.543558f, 0.716852f, 0.671519f, 0.265425f, 0.366704f, 0.787857f, 0.372456f, 0.659346f, 0.244761f, 0.395423f, 0.353887f, 0.654218f, 0.880588f, 0.62891f, 0.478918f, 0.030856f, 0.744313f, 0.196252f, 0.381714f, 0.832991f, 0.572231f, 0.960189f, 0.257614f, 0.253268f, 0.797496f, 0.69877f, 0.926288f, 0.079237f, 0.609679f, 0.648218f, 0.735571f, 0.440182f, 0.864101f, 0.161878f, 0.159404f, 0.415711f, 0.593876f, 0.995945f, 0.140339f, 0.572495f, 0.841811f, 0.657716f, 0.19231f, 0.0181406f, 0.807133f, 0.566996f, 0.608455f, 0.224459f, 0.4223f, 0.435267f, 0.662959f, 0.886933f, 0.183438f, 0.692375f, 0.779116f, 0.8541f, 0.664286f, 0.929841f, 0.964775f, 0.422457f, 0.929662f, 0.878484f, 0.767223f, 0.537799f, 0.79105f, 0.453013f, 0.658287f, 0.888925f, 0.0472853f, 0.736983f, 0.0629988f, 0.772934f, 0.225754f, 0.783285f, 0.548115f, 0.751911f, 0.740392f, 0.144652f, 0.950571f, 0.562828f, 0.510774f, 0.61591f, 0.776793f, 0.909532f, 0.761456f, 0.0999396f, 0.688207f, 0.97207f, 0.318053f, 0.355286f, 0.771431f, 0.750133f, 0.516243f, 0.190795f, 0.427775f, 0.283418f, 0.286814f, 0.401656f, 0.346635f, 0.352157f, 0.937786f, 0.024645f, 0.278092f, 0.432369f, 0.449559f, 0.62551f, 0.740431f, 0.543411f, 0.897199f, 0.303562f, 0.259347f, 0.200149f, 0.680107f, 0.192251f, 0.0760841f, 0.840244f, 0.172685f, 0.892975f, 0.352777f, 0.549554f, 0.0523146f, 0.303126f, 0.0260337f, 0.036535f, 0.980034f, 0.102809f, 0.814378f, 0.835065f, 0.386273f, 0.6071f, 0.0930895f, 0.871808f, 0.193911f, 0.430767f, 0.885207f, 0.254736f, 0.00908399f, 0.998593f, 0.604866f, 0.973251f, 0.193466f, 0.463873f, 0.27736f, 0.0773324f, 0.849132f, 0.844f, 0.125167f, 0.938337f, 0.785522f, 0.444699f, 0.140913f, 0.0915302f, 0.467264f, 0.67407f, 0.203647f, 0.558308f, 0.314105f, 0.241028f, 0.205094f, 0.477013f, 0.631483f, 0.169874f, 0.146013f, 0.185098f, 0.0824085f, 0.306384f, 0.0702848f, 0.0203417f, 0.131966f, 0.792877f, 0.360839f, 0.266718f, 0.232539f, 0.250638f, 0.476562f, 0.477389f, 0.849534f, 0.802507f, 0.943572f, 0.641526f, 0.845753f, 0.219046f, 0.651024f, 0.99469f, 0.202947f, 0.821584f, 0.433272f, 0.215533f, 0.391946f, 0.229529f, 0.835089f, 0.0849454f, 0.455666f, 0.998175f, 0.634306f, 0.0763347f, 0.567693f, 0.796136f, 0.446085f, 0.73937f, 0.522221f, 0.790854f, 0.802317f, 0.442015f, 0.575168f, 0.600855f, 0.666882f, 0.381843f, 0.601493f, 0.544687f, 0.733424f, 0.406066f, 0.573913f, 0.19919f, 0.582f, 0.0550953f, 0.569645f, 0.0875205f, 0.126882f, 0.543065f, 0.927089f, 0.168898f, 0.986988f, 0.906766f, 0.908712f, 0.178763f, 0.849812f, 0.687846f, 0.923719f, 0.105701f, 0.833577f, 0.865992f, 0.208242f, 0.224616f, 0.900711f, 0.593214f, 0.914112f, 0.377051f, 0.427738f, 0.379995f, 0.00788512f, 0.0284525f, 0.286179f, 0.861688f, 0.1796f, 0.703761f, 0.67592f, 0.0535396f, 0.0522033f, 0.723248f, 0.305373f, 0.105823f, 0.219043f, 0.0185547f, 0.502168f, 0.45647f, 0.710568f, 0.323213f, 0.390663f, 0.324126f, 0.753844f, 0.257257f, 0.00722329f, 0.805279f, 0.399644f, 0.00685557f, 0.565763f, 0.931747f, 0.306555f, 0.376521f, 0.635822f, 0.323792f, 0.616773f, 0.0146792f, 0.164804f, 0.35065f, 0.150957f, 0.754849f, 0.833571f, 0.987182f, 0.469289f, 0.492988f, 0.680896f, 0.502522f, 0.222399f, 0.962471f, 0.631338f, 0.725246f, 0.817241f, 0.117617f, 0.0647289f, 0.149253f, 0.17814f, 0.937932f, 0.228594f, 0.997632f, 0.00808709f, 0.975811f, 0.268736f, 0.0984531f, 0.998211f, 0.735972f, 0.443816f, 0.855411f, 0.0915925f, 0.865221f, 0.618293f, 0.515434f, 0.563065f, 0.863216f, 0.952183f, 0.259968f, 0.703818f, 0.0249326f, 0.8609f, 0.219079f, 0.667082f, 0.525095f, 0.327602f, 0.223916f, 0.0785055f, 0.149047f, 0.929653f, 0.959718f, 0.4298f, 0.52351f, 0.411019f, 0.911005f, 0.605485f, 0.681659f, 0.363473f, 0.269242f, 0.0177429f, 0.690073f, 0.81481f, 0.521546f, 0.218472f, 0.316103f, 0.874616f, 0.909483f, 0.813413f, 0.0632681f, 0.277424f, 0.690147f, 0.851992f, 0.0892098f, 0.688557f, 0.937125f, 0.833351f, 0.113076f, 0.903101f, 0.176372f, 0.105112f, 0.479078f, 0.434056f, 0.577398f, 0.386865f, 0.367798f, 0.026212f, 0.899348f, 0.585439f, 0.236936f, 0.622744f, 0.0752682f, 0.221239f, 0.894639f, 0.218937f, 0.975631f, 0.096821f, 0.0284117f, 0.072328f, 0.0827532f, 0.787252f, 0.515446f, 0.81932f, 0.582593f, 0.191294f, 0.42557f, 0.629784f, 0.362662f, 0.946834f, 0.845638f, 0.994889f, 0.692884f, 0.153913f, 0.0978367f, 0.613994f, 0.48708f, 0.859723f, 0.916252f, 0.328909f, 0.102319f, 0.812725f, 0.227103f, 0.405228f, 0.523504f, 0.243892f, 0.859925f, 0.801817f, 0.0011166f, 0.975437f, 0.273452f, 0.564827f, 0.449715f, 0.036097f, 0.292633f, 0.68235f, 0.00398159f, 0.87888f, 0.403724f, 0.356468f, 0.506308f, 0.367138f, 0.458221f, 0.924481f, 0.950841f, 0.530794f, 0.150865f, 0.43758f, 0.0344036f, 0.00665103f, 0.082743f, 0.866126f, 0.20521f, 0.73732f, 0.591323f, 0.573932f, 0.935947f, 0.579041f, 0.618868f, 0.262846f, 0.596978f, 0.116659f, 0.0239183f, 0.68981f, 0.695968f, 0.225083f, 0.411562f, 0.580573f, 0.52255f, 0.428126f, 0.307788f, 0.0858744f, 0.940854f, 0.0113875f, 0.754918f, 0.88299f, 0.559396f, 0.340941f, 0.519733f, 0.39149f, 0.555568f, 0.744767f, 0.878541f, 0.790263f, 0.974643f, 0.41797f, 0.211371f, 0.620027f, 0.0685091f, 0.535988f, 0.637239f, 0.529062f, 0.576366f, 0.794985f, 0.621648f, 0.439529f, 0.504987f, 0.242352f, 0.346939f, 0.529057f, 0.0434876f, 0.505588f, 0.542285f, 0.146307f, 0.712506f, 0.363234f, 0.628982f, 0.313431f, 0.750136f, 0.874787f, 0.596567f, 0.0311857f, 0.839364f, 0.995601f, 0.576761f, 0.687218f, 0.885489f, 0.58522f, 0.44643f, 0.585192f, 0.570862f, 0.0743739f, 0.0430503f, 0.509719f, 0.154523f, 0.88849f, 0.33323f, 0.132801f, 0.0657563f, 0.392214f, 0.291483f, 0.691657f, 0.719635f, 0.14432f, 0.628194f, 0.510175f, 0.772377f, 0.0521979f, 0.614788f, 0.863319f, 0.116435f, 0.13198f, 0.541235f, 0.607762f, 0.179594f, 0.109577f, 0.466121f, 0.0622991f, 0.201895f, 0.168892f, 0.380382f, 0.75734f, 0.53331f, 0.734033f, 0.043109f, 0.346835f, 0.730065f, 0.288959f, 0.455534f, 0.680757f, 0.684472f, 0.383187f, 0.655883f, 0.651751f, 0.272637f, 0.460788f, 0.756032f, 0.345337f, 0.486229f, 0.614304f, 0.442909f, 0.25913f, 0.432749f, 0.211558f, 0.742106f, 0.495101f, 0.197951f, 0.801089f, 0.224768f, 0.861973f, 0.389373f, 0.920927f, 0.55556f, 0.85315f, 0.719037f, 0.447062f, 0.742733f, 0.357599f, 0.389938f, 0.709586f, 0.975127f, 0.122511f, 0.834877f, 0.70683f, 0.924272f, 0.981302f, 0.949697f, 0.939456f, 0.29405f, 0.611033f, 0.0782227f, 0.654357f, 0.452443f, 0.0590294f, 0.320334f, 0.254831f, 0.262204f, 0.202811f, 0.77546f, 0.613065f, 0.831814f, 0.936336f, 0.147728f, 0.400054f, 0.169029f, 0.0624219f, 0.742198f, 0.123529f, 0.766895f, 0.979775f, 0.49911f, 0.64663f, 0.912194f, 0.207431f, 0.829884f, 0.185013f, 0.556736f, 0.0521908f, 0.515951f, 0.587696f, 0.667938f, 0.465566f, 0.780172f, 0.839661f, 0.533201f, 0.736327f, 0.443875f, 0.187566f, 0.914724f, 0.903275f, 0.048623f, 0.638303f, 0.424f, 0.897581f, 0.664215f, 0.199464f, 0.941401f, 0.89244f, 0.984834f, 0.672877f, 0.863197f, 0.824398f, 0.851614f, 0.345036f, 0.992657f, 0.209134f, 0.0919466f, 0.557075f, 0.033277f, 0.33972f, 0.189897f, 0.315651f, 0.272392f, 0.838766f, 0.478908f, 0.996954f, 0.611741f, 0.547869f, 0.0702573f, 0.75574f, 0.322897f, 0.404965f, 0.123521f, 0.858347f, 0.833113f, 0.129333f, 0.627266f, 0.0282441f, 0.18176f, 0.831762f, 0.43121f, 0.164116f, 0.764437f, 0.242359f, 0.944137f, 0.527344f, 0.0566526f, 0.801946f, 0.882477f, 0.270734f, 0.744573f, 0.264837f, 0.310905f, 0.203049f, 0.598361f, 0.722903f, 0.294378f, 0.480961f, 0.231185f, 0.623784f, 0.0165777f, 0.911747f, 0.836799f, 0.40649f, 0.370294f, 0.0891179f, 0.777113f, 0.0462116f, 0.600887f, 0.833337f, 0.126701f, 0.749949f, 0.609225f, 0.533643f, 0.25853f, 0.497521f, 0.000704963f, 0.6763f, 0.835601f, 0.557648f, 0.218548f, 0.7903f, 0.333088f, 0.998962f, 0.692565f, 0.608204f, 0.672425f, 0.186048f, 0.228699f, 0.615913f, 0.474062f, 0.0190515f, 0.166839f, 0.276867f, 0.789744f, 0.359525f, 0.457662f, 0.672122f, 0.170369f, 0.901702f, 0.294395f, 0.373035f, 0.597311f, 0.400003f, 0.280115f, 0.643847f, 0.139061f, 0.384005f, 0.931499f, 0.811971f, 0.308691f, 0.0389924f, 0.83356f, 0.570812f, 0.618889f, 0.670241f, 0.0155265f, 0.474782f, 0.122035f, 0.331081f, 0.507853f, 0.195582f, 0.342751f, 0.259943f, 0.917701f, 0.66449f, 0.743213f, 0.893463f, 0.364383f, 0.442529f, 0.163537f, 0.283688f, 0.807777f, 0.611442f, 0.454316f, 0.22006f, 0.953012f, 0.156561f, 0.566899f, 0.312106f, 0.475521f, 0.210756f, 0.920142f, 0.137471f, 0.669088f, 0.0585373f, 0.836081f, 0.191608f, 0.254845f, 0.486011f, 0.075566f, 0.622073f, 0.210472f, 0.0907429f, 0.425509f, 0.16353f, 0.523425f, 0.54579f, 0.368517f, 0.535908f, 0.0875819f, 0.680664f, 0.329899f, 0.532038f, 0.089285f, 0.85776f, 0.777489f, 0.859216f, 0.288147f, 0.983525f, 0.203696f, 0.165571f, 0.809551f, 0.636441f, 0.776048f, 0.226028f, 0.721532f, 0.62279f, 0.698789f, 0.285756f, 0.212431f, 0.957557f, 0.196306f, 0.54497f, 0.40739f, 0.559639f, 0.966f, 0.950159f, 0.226812f, 0.253332f, 0.544645f, 0.216067f, 0.613898f, 0.963088f, 0.853584f, 0.16471f, 0.428458f, 0.85613f, 0.732022f, 0.744422f, 0.202531f, 0.0674777f, 0.037437f, 0.755197f, 0.0188698f, 0.569553f, 0.700514f, 0.561545f, 0.861676f, 0.217073f, 0.15402f, 0.106327f, 0.765353f, 0.167019f, 0.894573f, 0.936287f, 0.602059f, 0.416865f, 0.0755147f, 0.00253465f, 0.123654f, 0.542248f, 0.556168f, 0.293051f, 0.075411f, 0.195429f, 0.302439f, 0.780352f, 0.845063f, 0.559801f, 0.580377f, 0.871613f, 0.761807f, 0.790887f, 0.31054f, 0.355577f, 0.383535f, 0.771371f, 0.942595f, 0.370097f, 0.711186f, 0.304642f, 0.950213f, 0.740567f, 0.412174f, 0.692508f, 0.770162f, 0.296496f, 0.158796f, 0.377169f, 0.642188f, 0.921547f, 0.275625f, 0.750651f, 0.595328f, 0.163743f, 0.760417f, 0.69372f, 0.74179f, 0.950827f, 0.20372f, 0.085737f, 0.812048f, 0.852176f, 0.906627f, 0.380317f, 0.00976704f, 0.00843117f, 0.333703f, 0.718039f, 0.585602f, 0.119216f, 0.085977f, 0.218696f, 0.479175f, 0.981356f, 0.403643f, 0.195815f, 0.470633f, 0.599814f, 0.642532f, 0.0590197f, 0.190236f, 0.437582f, 0.656899f, 0.910241f, 0.702452f, 0.58384f, 0.80942f, 0.867268f, 0.53488f, 0.219692f, 0.00706689f, 0.663453f, 0.808216f, 0.601974f, 0.376532f, 0.83036f, 0.629283f, 0.883264f, 0.193387f, 0.0443994f, 0.0761849f, 0.997602f, 0.197784f, 0.699003f, 0.896512f, 0.171291f, 0.109706f, 0.142077f, 0.40578f, 0.95964f, 0.248552f, 0.285008f, 0.830174f, 0.964721f, 0.775325f, 0.321831f, 0.604808f, 0.754044f, 0.64506f, 0.562077f, 0.542853f, 0.513915f, 0.448492f, 0.196941f, 0.656907f, 0.0488933f, 0.617255f, 0.580532f, 0.0304698f, 0.282691f, 0.925985f, 0.278908f, 0.608455f, 0.247628f, 0.264545f, 0.874203f, 0.0352378f, 0.378687f, 0.978938f, 0.708673f, 0.83408f, 0.333302f, 0.406912f, 0.47241f, 0.532175f, 0.846942f, 0.230808f, 0.498074f, 0.737747f, 0.838437f, 0.827828f, 0.372765f, 0.716195f, 0.0031591f, 0.60139f, 0.239205f, 0.362793f, 0.368054f, 0.0469707f, 0.243922f, 0.917699f, 0.330605f, 0.884813f, 0.964747f, 0.714459f, 0.0288523f, 0.872513f, 0.892936f, 0.110412f, 0.671794f, 0.0569587f, 0.392471f, 0.0335411f, 0.546055f, 0.620579f, 0.996046f, 0.629146f, 0.720871f, 0.424433f, 0.18234f, 0.970005f, 0.37306f, 0.193882f, 0.16579f, 0.67068f, 0.344031f, 0.673785f, 0.677497f, 0.116794f, 0.612862f, 0.430412f, 0.0718545f, 0.965153f, 0.0675488f, 0.420747f, 0.0240714f, 0.560629f, 0.736834f, 0.202314f, 0.168625f, 0.879575f, 0.350342f, 0.0633921f, 0.320659f, 0.651919f, 0.93551f, 0.0287724f, 0.401608f, 0.619234f, 0.440252f, 0.46345f, 0.187329f, 0.766523f, 0.953905f, 0.11476f, 0.877794f, 0.540893f, 0.711903f, 0.870188f, 0.605244f, 0.580351f, 0.475272f, 0.200008f, 0.334535f, 0.951009f, 0.148014f, 0.660032f, 0.282946f, 0.293743f, 0.640482f, 0.295294f, 0.43565f, 0.459423f, 0.369859f, 0.14906f, 0.100024f, 0.979403f, 0.619681f, 0.225737f, 0.159481f, 0.166316f, 0.431837f, 0.702767f, 0.00762606f, 0.382219f, 0.821446f, 0.665227f, 0.665509f, 0.393431f, 0.174661f, 0.247567f, 0.352685f, 0.0757953f, 0.447083f, 0.00220328f, 0.94772f, 0.172234f, 0.659594f, 0.182595f, 0.658573f, 0.926163f, 0.395575f, 0.833623f, 0.586329f, 0.446466f, 0.248359f, 0.43228f, 0.286672f, 0.637918f, 0.818844f, 0.505608f, 0.924497f, 0.876322f, 0.486439f, 0.492004f, 0.116082f, 0.419319f, 0.371351f, 0.112833f, 0.799946f, 0.813323f, 0.627463f, 0.626841f, 0.212818f, 0.080466f, 0.45839f, 0.936047f, 0.330806f, 0.396407f, 0.128132f, 0.337196f, 0.508015f, 0.276482f, 0.469119f, 0.416351f, 0.418221f, 0.256517f, 0.433233f, 0.0633748f, 0.64523f, 0.375232f, 0.772746f, 0.748978f, 0.231822f, 0.0306966f, 0.482867f, 0.600628f, 0.639023f, 0.564375f, 0.263144f, 0.690557f, 0.978581f, 0.779492f, 0.344248f, 0.563673f, 0.919689f, 0.139741f, 0.746071f, 0.48462f, 0.771355f, 0.508453f, 0.877165f, 0.881915f, 0.329949f, 0.271941f, 0.992272f, 0.955772f, 0.592646f, 0.0958913f, 0.971883f, 0.32395f, 0.668041f, 0.726392f, 0.607352f, 0.451372f, 0.248852f, 0.681079f, 0.348441f, 0.389822f, 0.947261f, 0.859747f, 0.0752741f, 0.00475409f, 0.880169f, 0.495632f, 0.552549f, 0.932897f, 0.0370653f, 0.158477f, 0.396098f, 0.336555f, 0.147542f, 0.244161f, 0.800122f, 0.161507f, 0.317774f, 0.747631f, 0.105783f, 0.913389f, 0.217816f, 0.689807f, 0.407019f, 0.387921f, 0.796469f, 0.778097f, 0.99188f, 0.842639f, 0.973156f, 0.0750759f, 0.391345f, 0.249398f, 0.235551f, 0.732391f, 0.421792f, 0.113257f, 0.563915f, 0.58631f, 0.111841f, 0.869968f, 0.0037584f, 0.941006f, 0.686305f, 0.589205f, 0.320806f, 0.729806f, 0.580344f, 0.939498f, 0.209748f, 0.925537f, 0.189512f, 0.311534f, 0.942974f, 0.611348f, 0.755157f, 0.968464f, 0.94105f, 0.154846f, 0.0839139f, 0.374204f, 0.440558f, 0.488214f, 0.665687f, 0.783799f, 0.543538f, 0.363276f, 0.600286f, 0.387724f, 0.768738f, 0.244694f, 0.98572f, 0.11021f, 0.674951f, 0.360568f, 0.0993691f, 0.121901f, 0.218621f, 0.87908f, 0.625172f, 0.286251f, 0.0200376f, 0.130153f, 0.309825f, 0.509561f, 0.624001f, 0.0635901f, 0.799018f, 0.570478f, 0.359543f, 0.383777f, 0.922699f, 0.00686779f, 0.699793f, 0.7135f, 0.52636f, 0.183373f, 0.200387f, 0.414875f, 0.638781f, 0.685314f, 0.696136f, 0.654266f, 0.635831f, 0.8221f, 0.0593308f, 0.455524f, 0.565491f, 0.394954f, 0.0464883f, 0.623067f, 0.949965f, 0.902042f, 0.947205f, 0.1711f, 0.937498f, 0.0470314f, 0.432514f, 0.295752f, 0.728123f, 0.246107f, 0.518614f, 0.159337f, 0.0283117f, 0.680406f, 0.30313f, 0.944064f, 0.603427f, 0.584558f, 0.279374f, 0.221425f, 0.0173622f, 0.351158f, 0.873431f, 0.59189f, 0.333288f, 0.803731f, 0.455546f, 0.324609f, 0.587345f, 0.510321f, 0.265491f, 0.916252f, 0.205887f, 0.2905f, 0.756927f, 0.62592f, 0.701707f, 0.524933f, 0.0732553f, 0.701777f, 0.365049f, 0.557713f, 0.00681914f, 0.281786f, 0.52879f, 0.291129f, 0.53505f, 0.700351f, 0.0604884f, 0.340905f, 0.778127f, 0.329368f, 0.778571f, 0.584514f, 0.407648f, 0.39103f, 0.395246f, 0.670026f, 0.638777f, 0.969351f, 0.500163f, 0.680367f, 0.508428f, 0.115356f, 0.804179f, 0.953212f, 0.572265f, 0.371534f, 0.103027f, 0.0456428f, 0.210913f, 0.179688f, 0.493465f, 0.565033f, 0.283612f, 0.607693f, 0.906922f, 0.837819f, 0.899815f, 0.0851523f, 0.626258f, 0.41873f, 0.667188f, 0.273192f, 0.653154f, 0.46232f, 0.586902f, 0.907028f, 0.989101f, 0.396109f, 0.242971f, 0.711676f, 0.0384654f, 0.572655f, 0.233847f, 0.139856f, 0.809284f, 0.381491f, 0.442258f, 0.818172f, 0.546706f, 0.368972f, 0.346516f, 0.0577279f, 0.212582f, 0.44512f, 0.943408f, 0.812529f, 0.258691f, 0.994612f, 0.622952f, 0.85047f, 0.978712f, 0.555412f, 0.785713f, 0.0686208f, 0.790245f, 0.635581f, 0.326273f, 0.324096f, 0.1216f, 0.588925f, 0.937101f, 0.0580164f, 0.532749f, 0.753574f, 0.298395f, 0.708837f, 0.925584f, 0.314537f, 0.0199974f, 0.914857f, 0.0709083f, 0.365013f, 0.766875f, 0.253048f, 0.446831f, 0.739593f, 0.943318f, 0.948265f, 0.854331f, 0.964466f, 0.591531f, 0.763801f, 0.927365f, 0.071033f, 0.904064f, 0.224232f, 0.593028f, 0.508106f, 0.866237f, 0.17225f, 0.218926f, 0.529941f, 0.0546165f, 0.475684f, 0.428893f, 0.849621f, 0.779129f, 0.998162f, 0.39752f, 0.46901f, 0.103009f, 0.0545734f, 0.815139f, 0.357352f, 0.271335f, 0.713358f, 0.100985f, 0.464451f, 0.163076f, 0.401539f, 0.438434f, 0.549619f, 0.479359f, 0.851188f, 0.699579f, 0.745942f, 0.425003f, 0.481552f, 0.143529f, 0.952757f, 0.983489f, 0.617207f, 0.534987f, 0.481627f, 0.45129f, 0.727141f, 0.438207f, 0.716823f, 0.475713f, 0.6761f, 0.191068f, 0.0135497f, 0.371372f, 0.950274f, 0.132142f, 0.138519f, 0.431744f, 0.044696f, 0.143351f, 0.964098f, 0.0737461f, 0.2113f, 0.851505f, 0.495653f, 0.431771f, 0.725464f, 0.130739f, 0.915484f, 0.146845f, 0.285753f, 0.998684f, 0.707186f, 0.00516941f, 0.26057f, 0.103101f, 0.0908891f, 0.290059f, 0.672285f, 0.0566395f, 0.749191f, 0.56508f, 0.480546f, 0.925915f, 0.889116f, 0.753385f, 0.151551f, 0.829278f, 0.622423f, 0.281648f, 0.981675f, 0.789335f, 0.648073f, 0.330195f, 0.706532f, 0.991695f, 0.624727f, 0.912806f, 0.222264f, 0.686186f, 0.292185f, 0.62477f, 0.551049f, 0.296795f, 0.260681f, 0.249491f, 0.887398f, 0.312407f, 0.3111f, 0.450064f, 0.228129f, 0.300622f, 0.0268301f, 0.357236f, 0.372048f, 0.394023f, 0.611144f, 0.1639f, 0.263486f, 0.52356f, 0.373948f, 0.755847f, 0.342152f, 0.409573f, 0.53276f, 0.668326f, 0.889879f, 0.0864506f, 0.355495f, 0.878126f, 0.726512f, 0.903876f, 0.000187004f, 0.358175f, 0.140873f, 0.775369f, 0.018159f, 0.196947f, 0.095644f, 0.105281f, 0.645324f, 0.428589f, 0.0170538f, 0.848981f, 0.494392f, 0.433215f, 0.735048f, 0.611888f, 0.892693f, 0.231126f, 0.653006f, 0.958474f, 0.801838f, 0.813979f, 0.646147f, 0.650979f, 0.389706f, 0.915836f, 0.451289f, 0.143266f, 0.738046f, 0.423176f, 0.282744f, 0.690591f, 0.570777f, 0.255477f, 0.337051f, 0.77689f, 0.277745f, 0.539835f, 0.459001f, 0.909962f, 0.265262f, 0.34509f, 0.321861f, 0.0539542f, 0.846826f, 0.996099f, 0.481874f, 0.708116f, 0.850162f, 0.369266f, 0.094268f, 0.0749089f, 0.958772f, 0.514745f, 0.121995f, 0.636401f, 0.62874f, 0.163716f, 0.969632f, 0.981522f, 0.473334f, 0.496228f, 0.0480764f, 0.764567f, 0.937061f, 0.929395f, 0.363888f, 0.282947f, 0.938167f, 0.428342f, 0.768651f, 0.907915f, 0.974172f, 0.398318f, 0.16123f, 0.409964f, 0.803203f, 0.740767f, 0.891692f, 0.39842f, 0.523639f, 0.314543f, 0.456075f, 0.150667f, 0.279852f, 0.422093f, 0.465474f, 0.264575f, 0.677157f, 0.544893f, 0.904432f, 0.99908f, 0.793004f, 0.775158f, 0.432617f, 0.484001f, 0.931907f, 0.734817f, 0.409538f, 0.818343f, 0.172727f, 0.640275f, 0.508192f, 0.492913f, 0.169585f, 0.15526f, 0.31094f, 0.510842f, 0.799051f, 0.0744766f, 0.95865f, 0.0787125f, 0.187659f, 0.744356f, 0.424918f, 0.651432f, 0.399407f, 0.422122f, 0.234407f, 0.867176f, 0.0031812f, 0.576058f, 0.0765145f, 0.430805f, 0.847064f, 0.614349f, 0.521165f, 0.811179f, 0.0851852f, 0.863514f, 0.540318f, 0.190077f, 0.876957f, 0.0796464f, 0.14774f, 0.355131f, 0.0387811f, 0.844614f, 0.428063f, 0.737132f, 0.591586f, 0.497913f, 0.904092f, 0.235953f, 0.787808f, 0.147862f, 0.0467231f, 0.767655f, 0.578869f, 0.141525f, 0.226493f, 0.276889f, 0.375777f, 0.597596f, 0.509915f, 0.911535f, 0.155048f, 0.0807722f, 0.593731f, 0.475499f, 0.534079f, 0.326091f, 0.456234f, 0.469692f, 0.386506f, 0.376216f, 0.130604f, 0.871723f, 0.63914f, 0.269276f, 0.26115f, 0.0649642f, 0.927679f, 0.428795f, 0.422493f, 0.512882f, 0.805651f, 0.17752f, 0.645434f, 0.574177f, 0.74434f, 0.134506f, 0.924828f, 0.449199f, 0.616417f, 0.0897774f, 0.563852f, 0.0430616f, 0.766246f, 0.984203f, 0.251402f, 0.502739f, 0.70647f, 0.253403f, 0.840979f, 0.00160235f, 0.626249f, 0.688034f, 0.276211f, 0.0338151f, 0.721406f, 0.184782f, 0.0933805f, 0.469703f, 0.0579994f, 0.973281f, 0.328976f, 0.0224026f, 0.0120294f, 0.952645f, 0.434664f, 0.510599f, 0.468921f, 0.849224f, 0.0732937f, 0.307609f, 0.105425f, 0.930987f, 0.830965f, 0.143655f, 0.827359f, 0.24991f, 0.547596f, 0.58949f, 0.630434f, 0.272995f, 0.910347f, 0.553301f, 0.398667f, 0.37172f, 0.565485f, 0.312348f, 0.0207811f, 0.0938434f, 0.431078f, 0.874804f, 0.0382148f, 0.245888f, 0.916753f, 0.0281113f, 0.975986f, 0.928301f, 0.898875f, 0.284067f, 0.455321f, 0.519795f, 0.410715f, 0.728965f, 0.509349f, 0.0262562f, 0.377225f, 0.647666f, 0.102608f, 0.483928f, 0.985199f, 0.332942f, 0.862284f, 0.539911f, 0.776392f, 0.362682f, 0.944709f, 0.952443f, 0.0163763f, 0.0530153f, 0.584523f, 0.452316f, 0.346231f, 0.769532f, 0.359455f, 0.698313f, 0.333678f, 0.0630267f, 0.0613665f, 0.292989f, 0.136602f, 0.657469f, 0.514898f, 0.0925696f, 0.245946f, 0.399356f, 0.00502625f, 0.113463f, 0.298903f, 0.0883632f, 0.593901f, 0.940429f, 0.715745f, 0.557883f, 0.442471f, 0.600357f, 0.558476f, 0.381213f, 0.713004f, 0.700084f, 0.63013f, 0.853213f, 0.459162f, 0.514956f, 0.191383f, 0.415676f, 0.554952f, 0.36569f, 0.562775f, 0.398038f, 0.34118f, 0.379005f, 0.0318352f, 0.369871f, 0.0846944f, 0.571178f, 0.662504f, 0.0934849f, 0.609795f, 0.0044253f, 0.248656f, 0.713574f, 0.145329f, 0.375437f, 0.997878f, 0.0519915f, 0.707906f, 0.751402f, 0.537598f, 0.275107f, 0.726846f, 0.950406f, 0.120217f, 0.510785f, 0.28646f, 0.99745f, 0.662108f, 0.037174f, 0.704815f, 0.96889f, 0.585646f, 0.621016f, 0.253529f, 0.702981f, 0.384114f, 0.493708f, 0.946507f, 0.349568f, 0.308275f, 0.657793f, 0.260429f, 0.703277f, 0.224442f, 0.178678f, 0.0533109f, 0.408747f, 0.222425f, 0.259758f, 0.201722f, 0.481596f, 0.461603f, 0.583516f, 0.548155f, 0.557014f, 0.950552f, 0.438872f, 0.339406f, 0.982351f, 0.545019f, 0.876471f, 0.379414f, 0.817809f, 0.116976f, 0.740747f, 0.541459f, 0.650105f, 0.010522f, 0.411823f, 0.790107f, 0.581072f, 0.493902f, 0.178236f, 0.0510262f, 0.793219f, 0.721524f, 0.0202778f, 0.967812f, 0.442783f, 0.585765f, 0.506299f, 0.455301f, 0.982905f, 0.218136f, 0.367442f, 0.711311f, 0.951539f, 0.511261f, 0.559317f, 0.741668f, 0.0389977f, 0.0124546f, 0.923073f, 0.634987f, 0.710564f, 0.714429f, 0.154461f, 0.314793f, 0.270273f, 0.48032f, 0.678968f, 0.650322f, 0.120074f, 0.154f, 0.863101f, 0.660725f, 0.989582f, 0.851138f, 0.171238f, 0.468959f, 0.564795f, 0.0262704f, 0.613367f, 0.899521f, 0.186535f, 0.390592f, 0.451016f, 0.561485f, 0.742754f, 0.323051f, 0.382154f, 0.0792466f, 0.735059f, 0.606898f, 0.294006f, 0.912585f, 0.5191f, 0.117282f, 0.878891f, 0.0961379f, 0.838315f, 0.405403f, 0.858181f, 0.989743f, 0.729755f, 0.162535f, 0.67851f, 0.542451f, 0.405107f, 0.0865721f, 0.707122f, 0.15019f, 0.240717f, 0.39602f, 0.613774f, 0.487051f, 0.670991f, 0.57201f, 0.674157f, 0.371978f, 0.34165f, 0.825731f, 0.420471f, 0.581756f, 0.685447f, 0.377548f, 0.361245f, 0.640912f, 0.874889f, 0.109935f, 0.718771f, 0.38296f, 0.608281f, 0.491219f, 0.216237f, 0.729194f, 0.340244f, 0.603779f, 0.921871f, 0.329327f, 0.208833f, 0.924213f, 0.421747f, 0.531276f, 0.00795173f, 0.918173f, 0.0789264f, 0.130723f, 0.910299f, 0.0848694f, 0.754063f, 0.17522f, 0.484633f, 0.0412105f, 0.0334952f, 0.62661f, 0.0299762f, 0.371506f, 0.524782f, 0.650564f, 0.70848f, 0.506701f, 0.200102f, 0.215629f, 0.0784514f, 0.504449f, 0.709497f, 0.149314f, 0.28348f, 0.216472f, 0.0615314f, 0.71074f, 0.717697f, 0.105789f, 0.88394f, 0.257676f, 0.912471f, 0.853964f, 0.0569171f, 0.832451f, 0.206953f, 0.0555372f, 0.18866f, 0.120599f, 0.79349f, 0.0556901f, 0.0996212f, 0.669235f, 0.929572f, 0.743434f, 0.3225f, 0.588423f, 0.883245f, 0.458549f, 0.667092f, 0.362529f, 0.133026f, 0.891944f, 0.292762f, 0.0656984f, 0.891433f, 0.156739f, 0.778279f, 0.829316f, 0.00918652f, 0.754315f, 0.40035f, 0.0286117f, 0.470567f, 0.461861f, 0.893933f, 0.0322868f, 0.86838f, 0.960487f, 0.747865f, 0.164985f, 0.543611f, 0.924465f, 0.0648404f, 0.354452f, 0.850454f, 0.635748f, 0.359546f, 0.729677f, 0.170065f, 0.835594f, 0.241911f, 0.612096f, 0.298257f, 0.656033f, 0.736473f, 0.570684f, 0.141063f, 0.65175f, 0.732718f, 0.998333f, 0.642224f, 0.195743f, 0.812069f, 0.565661f, 0.0111318f, 0.864431f, 0.850898f, 0.0313304f, 0.183694f, 0.867757f, 0.823855f, 0.31423f, 0.273361f, 0.0860176f, 0.983894f, 0.0956444f, 0.66443f, 0.887831f, 0.286919f, 0.843797f, 0.119932f, 0.497116f, 0.571003f, 0.682796f, 0.866104f, 0.440773f, 0.384498f, 0.788672f, 0.171808f, 0.309293f, 0.700145f, 0.451478f, 0.416702f, 0.38524f, 0.690447f, 0.229804f, 0.851363f, 0.993086f, 0.466875f, 0.593496f, 0.812165f, 0.22422f, 0.897163f, 0.592888f, 0.409687f, 0.367272f, 0.606949f, 0.0418853f, 0.902139f, 0.515622f, 0.879613f, 0.0087846f, 0.495049f, 0.758792f, 0.574896f, 0.97937f, 0.42588f, 0.4043f, 0.396314f, 0.698346f, 0.867443f, 0.957644f, 0.580143f, 0.158789f, 0.806535f, 0.292822f, 0.575212f, 0.440745f, 0.394654f, 0.97793f, 0.315495f, 0.365574f, 0.989251f, 0.149957f, 0.646115f, 0.47268f, 0.445343f, 0.363087f, 0.198103f, 0.0885023f, 0.590964f, 0.786558f, 0.757322f, 0.875607f, 0.415867f, 0.233232f, 0.408189f, 0.328638f, 0.98307f, 0.689366f, 0.271193f, 0.40178f, 0.916204f, 0.396797f, 0.736722f, 0.487217f, 0.53466f, 0.418768f, 0.493619f, 0.526003f, 0.207898f, 0.3513f, 0.764979f, 0.184003f, 0.630575f, 0.284706f, 0.812363f, 0.89832f, 0.810347f, 0.157824f, 0.414233f, 0.834702f, 0.482118f, 0.613242f, 0.798075f, 0.405224f, 0.102532f, 0.362188f, 0.771588f, 0.783701f, 0.306191f, 0.458318f, 0.21087f, 0.843597f, 0.048031f, 0.025925f, 0.119953f, 0.110736f, 0.00805772f, 0.945727f, 0.170829f, 0.942903f, 0.957509f, 0.914612f, 0.277685f, 0.0998828f, 0.157159f, 0.477879f, 0.620781f, 0.454242f, 0.09695f, 0.800274f, 0.669118f, 0.0545194f, 0.0747449f, 0.959952f, 0.561033f, 0.35094f, 0.640937f, 0.72153f, 0.940412f, 0.493563f, 0.782122f, 0.0391054f, 0.560916f, 0.602838f, 0.369561f, 0.288648f, 0.285488f, 0.175487f, 0.354876f, 0.0420985f, 0.385587f, 0.91713f, 0.256593f, 0.310404f, 0.218336f, 0.340142f, 0.154145f, 0.274297f, 0.306909f, 0.643085f, 0.727223f, 0.015141f, 0.473561f, 0.637071f, 0.586807f, 0.57735f, 0.994438f, 0.203348f, 0.400903f, 0.376024f, 0.397213f, 0.118403f, 0.326235f, 0.238752f, 0.378954f, 0.327215f, 0.484799f, 0.536918f, 0.88017f, 0.361464f, 0.350449f, 0.188614f, 0.136302f, 0.679481f, 0.28402f, 0.172178f, 0.422458f, 0.603042f, 0.49143f, 0.043025f, 0.0261847f, 0.257402f, 0.455479f, 0.72791f, 0.28391f, 0.116325f, 0.432857f, 0.336493f, 0.0302461f, 0.678545f, 0.929686f, 0.902836f, 0.244853f, 0.85614f, 0.666575f, 0.720534f, 0.891851f, 0.249178f, 0.685972f, 0.837344f, 0.916753f, 0.228053f, 0.600715f, 0.939043f, 0.461278f, 0.295011f, 0.475544f, 0.480572f, 0.931025f, 0.014823f, 0.275961f, 0.0728855f, 0.184995f, 0.435816f, 0.131878f, 0.102206f, 0.63762f, 0.00180148f, 0.831552f, 0.872646f, 0.0593314f, 0.388552f, 0.809018f, 0.618149f, 0.288378f, 0.0156647f, 0.744867f, 0.201755f, 0.00170218f, 0.737832f, 0.447234f, 0.239707f, 0.764839f, 0.355098f, 0.917599f, 0.0452707f, 0.766898f, 0.606773f, 0.351303f, 0.354268f, 0.837914f, 0.833773f, 0.0415325f, 0.689535f, 0.970246f, 0.245289f, 0.170493f, 0.785941f, 0.611172f, 0.99488f, 0.255219f, 0.144579f, 0.667399f, 0.143206f, 0.787674f, 0.886961f, 0.263737f, 0.183517f, 0.390872f, 0.56748f, 0.078612f, 0.774178f, 0.0704361f, 0.726794f, 0.744586f, 0.0216967f, 0.946146f, 0.027991f, 0.545636f, 0.46659f, 0.812134f, 0.386265f, 0.955681f, 0.662299f, 0.481497f, 0.430118f, 0.996269f, 0.957166f, 0.433195f, 0.933126f, 0.997205f, 0.41795f, 0.830028f, 0.778497f, 0.871957f, 0.872685f, 0.627754f, 0.590224f, 0.503084f, 0.26531f, 0.842474f, 0.985117f, 0.813906f, 0.697348f, 0.567247f, 0.348052f, 0.539768f, 0.885292f, 0.83726f, 0.647066f, 0.504051f, 0.853265f, 0.684865f, 0.432105f, 0.564111f, 0.479551f, 0.660563f, 0.191942f, 0.535453f, 0.0981221f, 0.283992f, 0.235373f, 0.285301f, 0.0336606f, 0.0267226f, 0.797876f, 0.293447f, 0.272971f, 0.416199f, 0.319188f, 0.655346f, 0.528362f, 0.200321f, 0.218261f, 0.210511f, 0.563691f, 0.803145f, 0.311688f, 0.0458166f, 0.781406f, 0.414209f, 0.723707f, 0.279047f, 0.563268f, 0.903739f, 0.975284f, 0.358803f, 0.116477f, 0.928829f, 0.0524135f, 0.929989f, 0.223963f, 0.239982f, 0.686052f, 0.0841157f, 0.491084f, 0.947208f, 0.686472f, 0.659798f, 0.70586f, 0.325346f, 0.593309f, 0.526232f, 0.691239f, 0.880092f, 0.871785f, 0.00576415f, 0.154296f, 0.316782f, 0.832757f, 0.891824f, 0.712168f, 0.256573f, 0.314953f, 0.731322f, 0.69323f, 0.410329f, 0.0598054f, 0.0633719f, 0.153841f, 0.191406f, 0.917982f, 0.782984f, 0.950621f, 0.431821f, 0.475662f, 0.930644f, 0.43351f, 0.0779847f, 0.143985f, 0.275326f, 0.980414f, 0.0562501f, 0.855428f, 0.354228f, 0.509527f, 0.411792f, 0.0680083f, 0.364961f, 0.0390038f, 0.266477f, 0.0988358f, 0.846641f, 0.882675f, 0.309469f, 0.0565254f, 0.642614f, 0.374367f, 0.737144f, 0.992361f, 0.268723f, 0.611044f, 0.291866f, 0.415973f, 0.473206f, 0.753897f, 0.378031f, 0.678003f, 0.200336f, 0.449631f, 0.171387f, 0.34159f, 0.766647f, 0.668858f, 0.226873f, 0.977119f, 0.949211f, 0.505311f, 0.477781f, 0.258112f, 0.0192562f, 0.829727f, 0.199369f, 0.0769564f, 0.721004f, 0.273987f, 0.579016f, 0.478694f, 0.929445f, 0.81796f, 0.347308f, 0.1142f, 0.478117f, 0.614233f, 0.0158434f, 0.926876f, 0.464126f, 0.583562f, 0.126896f, 0.913065f, 0.15919f, 0.593088f, 0.271819f, 0.85154f, 0.293742f, 0.435965f, 0.118852f, 0.0890801f, 0.285569f, 0.100301f, 0.66851f, 0.363812f, 0.556509f, 0.982328f, 0.568594f, 0.362003f, 0.549044f, 0.682929f, 0.0830196f, 0.219488f, 0.32431f, 0.306314f, 0.845461f, 0.317929f, 0.513239f, 0.469761f, 0.0866943f, 0.971634f, 0.749946f, 0.312276f, 0.110921f, 0.790912f, 0.0906199f, 0.365027f, 0.693894f, 0.290282f, 0.113001f, 0.624913f, 0.988962f, 0.66503f, 0.351687f, 0.776399f, 0.16496f, 0.976108f, 0.768692f, 0.950021f, 0.0137268f, 0.782994f, 0.989928f, 0.92683f, 0.529316f, 0.392654f, 0.954002f, 0.571183f, 0.923659f, 0.111812f, 0.0981338f, 0.122619f, 0.622718f, 0.591275f, 0.273072f, 0.814748f, 0.0196948f, 0.843352f, 0.00885786f, 0.193041f, 0.584187f, 0.777858f, 0.952638f, 0.0184829f, 0.656321f, 0.0363939f, 0.359728f, 0.662433f, 0.638927f, 0.909029f, 0.354032f, 0.65834f, 0.10391f, 0.224123f, 0.477069f, 0.661853f, 0.330598f, 0.791712f, 0.533738f, 0.408965f, 0.894608f, 0.95827f, 0.737298f, 0.735627f, 0.727397f, 0.210358f, 0.0177663f, 0.802234f, 0.839811f, 0.382884f, 0.525836f, 0.634119f, 0.541241f, 0.517584f, 0.0919362f, 0.123339f, 0.193696f, 0.56937f, 0.0724227f, 0.539913f, 0.60809f, 0.275282f, 0.202694f, 0.0724591f, 0.331825f, 0.964982f, 0.714297f, 0.181775f, 0.97801f, 0.310005f, 0.274382f, 0.255482f, 0.74804f, 0.656908f, 0.352639f, 0.237788f, 0.763843f, 0.0898946f, 0.0556271f, 0.945395f, 0.233283f, 0.459549f, 0.291393f, 0.380366f, 0.00761878f, 0.754733f, 0.445453f, 0.383008f, 0.953107f, 0.801082f, 0.77968f, 0.778829f, 0.00416506f, 0.028506f, 0.408037f, 0.0167465f, 0.231224f, 0.0218634f, 0.802864f, 0.432155f, 0.374266f, 0.6581f, 0.13919f, 0.334472f, 0.817559f, 0.534311f, 0.0921687f, 0.885542f, 0.921301f, 0.335071f, 0.196437f, 0.336152f, 0.305071f, 0.000878531f, 0.940655f, 0.918713f, 0.697764f, 0.224071f, 0.179097f, 0.609544f, 0.178313f, 0.672489f, 0.576281f, 0.374879f, 0.490673f, 0.0209759f, 0.977082f, 0.977767f, 0.645734f, 0.264889f, 0.425193f, 0.876967f, 0.513684f, 0.893216f, 0.942787f, 0.958608f, 0.240452f, 0.454345f, 0.378708f, 0.630916f, 0.597085f, 0.873556f, 0.561133f, 0.601752f, 0.999286f, 0.10868f, 0.935995f, 0.419598f, 0.619687f, 0.21474f, 0.375042f, 0.946096f, 0.37599f, 0.572168f, 0.256488f, 0.430483f, 0.689666f, 0.447373f, 0.344317f, 0.31939f, 0.745312f, 0.184443f, 0.810819f, 0.688951f, 0.886608f, 0.823717f, 0.535063f, 0.503938f, 0.923031f, 0.217417f, 0.521355f, 0.963095f, 0.857502f, 0.103348f, 0.764154f, 0.317005f, 0.202662f, 0.171049f, 0.00759843f, 0.685194f, 0.191648f, 0.861524f, 0.452244f, 0.42509f, 0.375843f, 0.487236f, 0.594071f, 0.144758f, 0.391594f, 0.375469f, 0.0870385f, 0.847586f, 0.185147f, 0.596277f, 0.183901f, 0.00842619f, 0.592075f, 0.573614f, 0.843781f, 0.142902f, 0.15364f, 0.646929f, 0.0892638f, 0.622267f, 0.891082f, 0.96448f, 0.694048f, 0.58694f, 0.709285f, 0.724762f, 0.577442f, 0.539584f, 0.169461f, 0.257079f, 0.182425f, 0.790564f, 0.271816f, 0.478529f, 0.111367f, 0.411876f, 0.107244f, 0.885156f, 0.140449f, 0.340984f, 0.669242f, 0.409775f, 0.417205f, 0.222673f, 0.716909f, 0.278746f, 0.0974982f, 0.351324f, 0.644261f, 0.605993f, 0.959356f, 0.709013f, 0.221732f, 0.426471f, 0.486874f, 0.943151f, 0.573228f, 0.20139f, 0.0056907f, 0.56611f, 0.712727f, 0.914089f, 0.43214f, 0.712815f, 0.815321f, 0.0330771f, 0.094264f, 0.909579f, 0.642416f, 0.006873f, 0.41765f, 0.701491f, 0.541806f, 0.626139f, 0.127387f, 0.901576f, 0.236642f, 0.472672f, 0.395314f, 0.732611f, 0.387834f, 0.830261f, 0.395911f, 0.764832f, 0.932663f, 0.784981f, 0.404438f, 0.180541f, 0.995126f, 0.124877f, 0.0750531f, 0.775687f, 0.152062f, 0.599499f, 0.0665797f, 0.862486f, 0.568055f, 0.169529f, 0.207695f, 0.341386f, 0.416456f, 0.301757f, 0.942727f, 0.574895f, 0.0317433f, 0.449472f, 0.834351f, 0.00770673f, 0.299701f, 0.361295f, 0.280399f, 0.74131f, 0.0203017f, 0.794719f, 0.334522f, 0.237113f, 0.311298f, 0.294878f, 0.478388f, 0.421921f, 0.157156f, 0.31681f, 0.314472f, 0.606741f, 0.811527f, 0.796103f, 0.310328f, 0.151267f, 0.100948f, 0.557801f, 0.496497f, 0.243911f, 0.718503f, 0.971905f, 0.883f, 0.547776f, 0.347316f, 0.782998f, 0.684509f, 0.480502f, 0.0783967f, 0.0692244f, 0.947015f, 0.629444f, 0.870759f, 0.193753f, 0.827108f, 0.447125f, 0.0796941f, 0.755518f, 0.00448889f, 0.457882f, 0.500657f, 0.880133f, 0.965818f, 0.139194f, 0.87915f, 0.746309f, 0.381925f, 0.997604f, 0.571539f, 0.757676f, 0.346344f, 0.021274f, 0.614877f, 0.0489256f, 0.812085f, 0.649245f, 0.65368f, 0.59189f, 0.411203f, 0.135296f, 0.144665f, 0.538057f, 0.75719f, 0.0142835f, 0.260769f, 0.0672047f, 0.613627f, 0.287363f, 0.264982f, 0.129293f, 0.361468f, 0.0549015f, 0.557387f, 0.845291f, 0.698132f, 0.818284f, 0.1126f, 0.193457f, 0.646869f, 0.597663f, 0.544439f, 0.17282f, 0.782441f, 0.770151f, 0.709623f, 0.343153f, 0.552879f, 0.548038f, 0.752989f, 0.549972f, 0.672095f, 0.87582f, 0.955548f, 0.311044f, 0.912004f, 0.249169f, 0.753995f, 0.702344f, 0.906776f, 0.63884f, 0.202816f, 0.245157f, 0.903338f, 0.687757f, 0.68334f, 0.36402f, 0.586169f, 0.178845f, 0.088714f, 0.855479f, 0.831101f, 0.236207f, 0.342863f, 0.0615278f, 0.0731346f, 0.891181f, 0.76257f, 0.816886f, 0.310601f, 0.535123f, 0.459628f, 0.551505f, 0.571281f, 0.709753f, 0.0292223f, 0.593478f, 0.107417f, 0.316914f, 0.567733f, 0.462745f, 0.243221f, 0.270869f, 0.655028f, 0.47336f, 0.619956f, 0.643538f, 0.275546f, 0.11702f, 0.33149f, 0.755853f, 0.855251f, 0.0386841f, 0.0435289f, 0.109853f, 0.293621f, 0.371091f, 0.431532f, 0.563657f, 0.159055f, 0.85303f, 0.64411f, 0.714508f, 0.975522f, 0.875886f, 0.262888f, 0.826408f, 0.583355f, 0.523709f, 0.193719f, 0.410391f, 0.991841f, 0.183163f, 0.639219f, 0.172018f, 0.838954f, 0.588928f, 0.661519f, 0.662144f, 0.422971f, 0.1109f, 0.0253813f, 0.47453f, 0.640467f, 0.793112f, 0.557496f, 0.379137f, 0.999332f, 0.858455f, 0.309814f, 0.134333f, 0.0132461f, 0.82194f, 0.439918f, 0.987648f, 0.279281f, 0.164631f, 0.147135f, 0.902111f, 0.184585f, 0.482819f, 0.0707794f, 0.159107f, 0.30131f, 0.993267f, 0.245424f, 0.37454f, 0.35634f, 0.122597f, 0.938857f, 0.693804f, 0.348595f, 0.92542f, 0.0348975f, 0.225595f, 0.370385f, 0.486661f, 0.777579f, 0.244736f, 0.462099f, 0.913458f, 0.829255f, 0.121728f, 0.720604f, 0.901608f, 0.826562f, 0.61733f, 0.434164f, 0.283134f, 0.158365f, 0.186713f, 0.773638f, 0.00277137f, 0.815615f, 0.11357f, 0.449243f, 0.918311f, 0.671511f, 0.406604f, 0.172264f, 0.864247f, 0.28041f, 0.201363f, 0.533451f, 0.254058f, 0.588508f, 0.587943f, 0.552362f, 0.340251f, 0.501069f, 0.175259f, 0.717303f, 0.152411f, 0.485068f, 0.860247f, 0.316549f, 0.0997113f, 0.788903f, 0.00377454f, 0.897165f, 0.731088f, 0.72421f, 0.983197f, 0.709219f, 0.722073f, 0.900025f, 0.948974f, 0.837514f, 0.686165f, 0.457643f, 0.245526f, 0.189808f, 0.118665f, 0.209807f, 0.763101f, 0.715023f, 0.598781f, 0.965135f, 0.868997f, 0.223561f, 0.670716f, 0.99781f, 0.145113f, 0.266044f, 0.719911f, 0.58673f, 0.529704f, 0.404348f, 0.728003f, 0.889631f, 0.524128f, 0.472478f, 0.40759f, 0.46659f, 0.257081f, 0.657219f, 0.37316f, 0.133779f, 0.939127f, 0.644057f, 0.925486f, 0.0304648f, 0.746252f, 0.836801f, 0.269247f, 0.547866f, 0.0164205f, 0.714248f, 0.253847f, 0.724494f, 0.77699f, 0.0604745f, 0.971237f, 0.249226f, 0.580107f, 0.828316f, 0.460406f, 0.606842f, 0.456018f, 0.237932f, 0.42174f, 0.694471f, 0.687645f, 0.837182f, 0.875367f, 0.756231f, 0.0400628f, 0.789693f, 0.14741f, 0.371227f, 0.575896f, 0.926123f, 0.459602f, 0.581003f, 0.385102f, 0.154742f, 0.37969f, 0.22614f, 0.308876f, 0.850189f, 0.163223f, 0.599109f, 0.373049f, 0.856136f, 0.371121f, 0.965673f, 0.577745f, 0.639973f, 0.123351f, 0.870461f, 0.754086f, 0.236437f, 0.720433f, 0.0527095f, 0.29122f, 0.547433f, 0.882622f, 0.940694f, 0.194832f, 0.0750346f, 0.0610123f, 0.310287f, 0.341471f, 0.983267f, 0.375502f, 0.876803f, 0.287406f, 0.748471f, 0.594963f, 0.628531f, 0.438567f, 0.665441f, 0.672503f, 0.506363f, 0.308025f, 0.655934f, 0.994362f, 0.824733f, 0.961195f, 0.746385f, 0.0960097f, 0.310106f, 0.453354f, 0.381799f, 0.109705f, 0.104281f, 0.868622f, 0.501508f, 0.11718f, 0.500258f, 0.948738f, 0.471366f, 0.780311f, 0.532016f, 0.49108f, 0.549401f, 0.00727923f, 0.81396f, 0.771862f, 0.0687179f, 0.210695f, 0.560634f, 0.701196f, 0.200612f, 0.241739f, 0.264693f, 0.375663f, 0.00471052f, 0.734523f, 0.203789f, 0.0913241f, 0.425225f, 0.876708f, 0.0238135f, 0.509967f, 0.876341f, 0.549541f, 0.469744f, 0.0518966f, 0.160679f, 0.0455441f, 0.889455f, 0.757726f, 0.758576f, 0.437118f, 0.392305f, 0.0345043f, 0.92864f, 0.732631f, 0.548112f, 0.373253f, 0.617855f, 0.339635f, 0.0494614f, 0.36108f, 0.744314f, 0.422427f, 0.463968f, 0.564526f, 0.653425f, 0.780431f, 0.716295f, 0.238265f, 0.584077f, 0.265653f, 0.463058f, 0.732914f, 0.0885101f, 0.291173f, 0.173535f, 0.765263f, 0.480756f, 0.648483f, 0.0151566f, 0.414509f, 0.220405f, 0.50928f, 0.0271092f, 0.12019f, 0.944946f, 0.817961f, 0.493538f, 0.369312f, 0.354326f, 0.287443f, 0.030618f, 0.357926f, 0.316122f, 0.362009f, 0.668179f, 0.341988f, 0.268399f, 0.621757f, 0.573012f, 0.492584f, 0.972075f, 0.0498279f, 0.281859f, 0.228451f, 0.393648f, 0.324706f, 0.709167f, 0.964169f, 0.233573f, 0.34167f, 0.609674f, 0.0458664f, 0.760891f, 0.443914f, 0.246326f, 0.899665f, 0.0959899f, 0.49794f, 0.477643f, 0.65378f, 0.732796f, 0.321912f, 0.620424f, 0.941089f, 0.913828f, 0.72776f, 0.0321257f, 0.75628f, 0.274313f, 0.611542f, 0.128138f, 0.695211f, 0.926982f, 0.720654f, 0.588312f, 0.495734f, 0.123597f, 0.228186f, 0.66672f, 0.0573115f, 0.260192f, 0.213768f, 0.769004f, 0.967237f, 0.382545f, 0.834618f, 0.0757735f, 0.712371f, 0.935933f, 0.796569f, 0.599636f, 0.612858f, 0.463462f, 0.78504f, 0.717045f, 0.374879f, 0.707674f, 0.208134f, 0.591191f, 0.765945f, 0.155521f, 0.232395f, 0.654584f, 0.214316f, 0.735305f, 0.0839292f, 0.848127f, 0.710719f, 0.941026f, 0.874579f, 0.769307f, 0.301192f, 0.197223f, 0.217495f, 0.625208f, 0.924223f, 0.109125f, 0.321889f, 0.316792f, 0.179218f, 0.716343f, 0.280709f, 0.72566f, 0.739555f, 0.264069f, 0.657673f, 0.853048f, 0.803091f, 0.820985f, 0.651857f, 0.931743f, 0.510448f, 0.387036f, 0.93948f, 0.739968f, 0.156606f, 0.774725f, 0.724864f, 0.838277f, 0.340938f, 0.197131f, 0.455342f, 0.208851f, 0.0474198f, 0.489681f, 0.718457f, 0.20933f, 0.107909f, 0.885783f, 0.176625f, 0.123576f, 0.406788f, 0.630986f, 0.0527968f, 0.147339f, 0.826964f, 0.76672f, 0.911876f, 0.663619f, 0.195413f, 0.979305f, 0.587192f, 0.736023f, 0.878371f, 0.872901f, 0.704097f, 0.165629f, 0.0568425f, 0.335889f, 0.229509f, 0.0537321f, 0.334414f, 0.692468f, 0.260873f, 0.0967046f, 0.52543f, 0.533514f, 0.553588f, 0.13187f, 0.630808f, 0.609632f, 0.963756f, 0.557915f, 0.219282f, 0.784697f, 0.967045f, 0.00652943f, 0.736587f, 0.0784029f, 0.81302f, 0.148816f, 0.953596f, 0.502145f, 0.097795f, 0.905445f, 0.779644f, 0.283433f, 0.29729f, 0.0683082f, 0.574513f, 0.251414f, 0.467007f, 0.228528f, 0.469036f, 0.807922f, 0.0549555f, 0.416164f, 0.904429f, 0.227143f, 0.465156f, 0.604122f, 0.574088f, 0.934791f, 0.108433f, 0.852014f, 0.907469f, 0.945096f, 0.459356f, 0.667031f, 0.281934f, 0.637253f, 0.932625f, 0.804203f, 0.0843158f, 0.963223f, 0.887788f, 0.305144f, 0.944713f, 0.776812f, 0.594855f, 0.478587f, 0.0797217f, 0.036862f, 0.896295f, 0.0297441f, 0.0766876f, 0.7874f, 0.150145f, 0.884818f, 0.14161f, 0.485735f, 0.364699f, 0.329101f, 0.0938824f, 0.708327f, 0.931794f, 0.665628f, 0.892828f, 0.439991f, 0.6202f, 0.169928f, 0.925779f, 0.018304f, 0.739203f, 0.940643f, 0.505835f, 0.243505f, 0.0885657f, 0.727978f, 0.385604f, 0.704526f, 0.0057521f, 0.237235f, 0.363028f, 0.787715f, 0.880617f, 0.535948f, 0.459587f, 0.856384f, 0.0469387f, 0.0326529f, 0.898075f, 0.361336f, 0.908772f, 0.558115f, 0.6705f, 0.739076f, 0.673523f, 0.54199f, 0.7216f, 0.706949f, 0.4299f, 0.693178f, 0.118263f, 0.627025f, 0.246125f, 0.452557f, 0.819869f, 0.939203f, 0.465305f, 0.626229f, 0.107427f, 0.286635f, 0.214797f, 0.521525f, 0.472208f, 0.754895f, 0.375884f, 0.148967f, 0.498511f, 0.774345f, 0.83256f, 0.812576f, 0.249913f, 0.802774f, 0.87416f, 0.120424f, 0.530108f, 0.829449f, 0.813338f, 0.580094f, 0.897474f, 0.515633f, 0.857695f, 0.353416f, 0.426706f, 0.786654f, 0.676372f, 0.774821f, 0.623743f, 0.0176362f, 0.530675f, 0.531131f, 0.834187f, 0.550216f, 0.0224422f, 0.0538156f, 0.656118f, 0.902216f, 0.83654f, 0.64387f, 0.305327f, 0.0589362f, 0.496555f, 0.562009f, 0.343018f, 0.847697f, 0.182216f, 0.0835304f, 0.477091f, 0.341358f, 0.909489f, 0.844192f, 0.250927f, 0.933091f, 0.0520628f, 0.40084f, 0.672863f, 0.87823f, 0.442065f, 0.0937743f, 0.88828f, 0.237486f, 0.63274f, 0.909439f, 0.382021f, 0.905333f, 0.869442f, 0.230645f, 0.729319f, 0.0606626f, 0.631403f, 0.194657f, 0.10353f, 0.722611f, 0.877988f, 0.629357f, 0.183838f, 0.649866f, 0.877232f, 0.724609f, 0.595428f, 0.429649f, 0.425882f, 0.213661f, 0.898753f, 0.901602f, 0.665194f, 0.27595f, 0.956716f, 0.023234f, 0.967866f, 0.662391f, 0.780798f, 0.762026f, 0.136363f, 0.406325f, 0.111442f, 0.770045f, 0.198666f, 0.8796f, 0.865666f, 0.321917f, 0.415935f, 0.983409f, 0.222184f, 0.950112f, 0.38876f, 0.286987f, 0.291493f, 0.240819f, 0.649202f, 0.862471f, 0.291304f, 0.970219f, 0.862215f, 0.0320834f, 0.192766f, 0.590521f, 0.635422f, 0.9835f, 0.228775f, 0.188603f, 0.0157858f, 0.70571f, 0.307928f, 0.113621f, 0.696907f, 0.588957f, 0.282671f, 0.0120755f, 0.166472f, 0.958485f, 0.157565f, 0.0117145f, 0.175625f, 0.532964f, 0.213409f, 0.4184f, 0.26797f, 0.0135374f, 0.190527f, 0.848565f, 0.087241f, 0.171327f, 0.929766f, 0.352087f, 0.163126f, 0.194579f, 0.708994f, 0.59182f, 0.201136f, 0.264034f, 0.126743f, 0.0568339f, 0.462297f, 0.426802f, 0.439699f, 0.303216f, 0.697761f, 0.118959f, 0.995954f, 0.349346f, 0.375857f, 0.711591f, 0.57804f, 0.650406f, 0.289833f, 0.962389f, 0.469556f, 0.645988f, 0.543234f, 0.219211f, 0.617346f, 0.709983f, 0.0910768f, 0.391303f, 0.981123f, 0.805719f, 0.805006f, 0.798241f, 0.485463f, 0.173305f, 0.9613f, 0.00920269f, 0.961719f, 0.467961f, 0.245859f, 0.305431f, 0.148351f, 0.167167f, 0.436692f, 0.922042f, 0.492883f, 0.24934f, 0.308159f, 0.99099f, 0.9951f, 0.244618f, 0.131421f, 0.342017f, 0.822735f, 0.142372f, 0.811411f, 0.0409804f, 0.721215f, 0.861459f, 0.766847f, 0.284534f, 0.264093f, 0.675163f, 0.664999f, 0.665671f, 0.745024f, 0.771032f, 0.483728f, 0.898326f, 0.521523f, 0.249476f, 0.258946f, 0.257854f, 0.0855351f, 0.216374f, 0.809722f, 0.495059f, 0.133953f, 0.199373f, 0.301335f, 0.710782f, 0.0216161f, 0.274523f, 0.260882f, 0.545702f, 0.625261f, 0.748891f, 0.800363f, 0.534662f, 0.284751f, 0.757313f, 0.964026f, 0.256365f, 0.321775f, 0.209238f, 0.988314f, 0.762191f, 0.337054f, 0.861542f, 0.235185f, 0.476932f, 0.437778f, 0.914141f, 0.402043f, 0.380551f, 0.905735f, 0.638406f, 0.773127f, 0.309329f, 0.0671007f, 0.795017f, 0.799532f, 0.00364822f, 0.369172f, 0.875997f, 0.600051f, 0.882769f, 0.396643f, 0.189659f, 0.725344f, 0.825717f, 0.2182f, 0.786751f, 0.506846f, 0.242098f, 0.672779f, 0.317106f, 0.627122f, 0.509488f, 0.675008f, 0.89748f, 0.219216f, 0.145694f, 0.290574f, 0.718498f, 0.983559f, 0.420981f, 0.119246f, 0.663962f, 0.470443f, 0.667008f, 0.579719f, 0.571089f, 0.997056f, 0.626232f, 0.773617f, 0.939652f, 0.446185f, 0.111748f, 0.967741f, 0.652235f, 0.397335f, 0.494093f, 0.51104f, 0.397897f, 0.670147f, 0.846698f, 0.0213984f, 0.550662f, 0.288313f, 0.750895f, 0.193161f, 0.050176f, 0.280056f, 0.390065f, 0.199181f, 0.451561f, 0.564859f, 0.325755f, 0.408679f, 0.998351f, 0.974254f, 0.526062f, 0.0957082f, 0.219961f, 0.812711f, 0.958309f, 0.272282f, 0.161978f, 0.338449f, 0.557122f, 0.870514f, 0.628552f, 0.840722f, 0.0219039f, 0.0575009f, 0.185114f, 0.0819644f, 0.337032f, 0.0216506f, 0.982923f, 0.891166f, 0.0296416f, 0.132156f, 0.913832f, 0.79417f, 0.422663f, 0.239595f, 0.62447f, 0.112625f, 0.762766f, 0.912618f, 0.689301f, 0.0103053f, 0.84427f, 0.89194f, 0.0801654f, 0.115514f, 0.935909f, 0.404519f, 0.116629f, 0.437316f, 0.456131f, 0.937935f, 0.48319f, 0.14409f, 0.379065f, 0.0453652f, 0.579558f, 0.1382f, 0.282545f, 0.602832f, 0.983994f, 0.862103f, 0.428647f, 0.6004f, 0.783887f, 0.89323f, 0.787228f, 0.280172f, 0.404725f, 0.333178f, 0.702263f, 0.177241f, 0.731057f, 0.195261f, 0.258201f, 0.35049f, 0.72335f, 0.509525f, 0.153213f, 0.0179785f, 0.911976f, 0.571066f, 0.028932f, 0.693651f, 0.986674f, 0.952026f, 0.533778f, 0.238231f, 0.772806f, 0.0107944f, 0.285385f, 0.104306f, 0.58825f, 0.499696f, 0.775419f, 0.316042f, 0.972347f, 0.61327f, 0.0776558f, 0.568497f, 0.424756f, 0.685905f, 0.256827f, 0.574769f, 0.357528f, 0.594186f, 0.326758f, 0.420383f, 0.294078f, 0.643391f, 0.549081f, 0.276275f, 0.330507f, 0.067916f, 0.653988f, 0.781768f, 0.884367f, 0.240856f, 0.280531f, 0.709184f, 0.369147f, 0.0581054f, 0.486437f, 0.290935f, 0.105259f, 0.0815294f, 0.866518f, 0.650869f, 0.703351f, 0.869202f, 0.468616f, 0.568117f, 0.975868f, 0.271798f, 0.0865298f, 0.894777f, 0.256255f, 0.322548f, 0.614776f, 0.658665f, 0.0100567f, 0.249481f, 0.422542f, 0.3974f, 0.499621f, 0.50149f, 0.879339f, 0.649601f, 0.455446f, 0.658601f, 0.719479f, 0.837564f, 0.0624449f, 0.902218f, 0.225339f, 0.350457f, 0.489363f, 0.763642f, 0.243925f, 0.657255f, 0.0705136f, 0.0489285f, 0.186975f, 0.439029f, 0.346806f, 0.694161f, 0.502898f, 0.98227f, 0.680688f, 0.960858f, 0.208254f, 0.511671f, 0.716765f, 0.711505f, 0.911834f, 0.626555f, 0.0469704f, 0.673963f, 0.218715f, 0.339074f, 0.968538f, 0.257862f, 0.942298f, 0.538326f, 0.492178f, 0.165233f, 0.691901f, 0.903309f, 0.524838f, 0.926782f, 0.193413f, 0.802709f, 0.711884f, 0.0240081f, 0.140502f, 0.0563052f, 0.584991f, 0.319483f, 0.0546981f, 0.910044f, 0.812915f, 0.747399f, 0.417452f, 0.857698f, 0.210939f, 0.168606f, 0.231105f, 0.336397f, 0.868238f, 0.866334f, 0.0218861f, 0.990205f, 0.246814f, 0.644786f, 0.269771f, 0.392032f, 0.239372f, 0.437806f, 0.772413f, 0.0163668f, 0.0532537f, 0.920045f, 0.33141f, 0.514837f, 0.871406f, 0.397055f, 0.498462f, 0.591409f, 0.0411478f, 0.676721f, 0.118477f, 0.83862f, 0.707243f, 0.420312f, 0.444369f, 0.783343f, 0.00486774f, 0.869095f, 0.132895f, 0.899124f, 0.428715f, 0.2236f, 0.961385f, 0.273355f, 0.138576f, 0.852518f, 0.500557f, 0.480699f, 0.44492f, 0.784342f, 0.661856f, 0.695567f, 0.572185f, 0.111332f, 0.256081f, 0.819809f, 0.322147f, 0.404687f, 0.943613f, 0.706108f, 0.951866f, 0.261504f, 0.782387f, 0.760186f, 0.0156952f, 0.815611f, 0.178297f, 0.471005f, 0.611869f, 0.116486f, 0.0850198f, 0.104099f, 0.604362f, 0.745123f, 0.15129f, 0.548693f, 0.445766f, 0.479616f, 0.253791f, 0.765529f, 0.558392f, 0.847801f, 0.898313f, 0.627633f, 0.0950122f, 0.842727f, 0.375165f, 0.406892f, 0.196276f, 0.650598f, 0.527738f, 0.343633f, 0.234852f, 0.361932f, 0.787421f, 0.669053f, 0.902753f, 0.254946f, 0.694282f, 0.609353f, 0.523103f, 0.146424f, 0.157292f, 0.107735f, 0.721125f, 0.279951f, 0.969449f, 0.129756f, 0.59466f, 0.656208f, 0.666184f, 0.384704f, 0.840437f, 0.165976f, 0.439087f, 0.0224346f, 0.563953f, 0.496244f, 0.486372f, 0.923374f, 0.00637722f, 0.833891f, 0.430868f, 0.476303f, 0.526871f, 0.85095f, 0.346899f, 0.59411f, 0.150974f, 0.487017f, 0.180168f, 0.32126f, 0.398172f, 0.874478f, 0.0562483f, 0.645354f, 0.520445f, 0.576221f, 0.145211f, 0.132088f, 0.639109f, 0.835965f, 0.712716f, 0.101905f, 0.962231f, 0.904648f, 0.245937f, 0.338644f, 0.768588f, 0.219802f, 0.785703f, 0.684242f, 0.00758828f, 0.344332f, 0.845255f, 0.343437f, 0.479491f, 0.00184634f, 0.867279f, 0.692014f, 0.431415f, 0.333164f, 0.726412f, 0.620137f, 0.706249f, 0.7203f, 0.470956f, 0.816513f, 0.695551f, 0.791482f, 0.770726f, 0.395524f, 0.624206f, 0.815844f, 0.0873979f, 0.611708f, 0.256229f, 0.822988f, 0.259085f, 0.441877f, 0.392015f, 0.0981093f, 0.88807f, 0.019005f, 0.108683f, 0.651687f, 0.100758f, 0.325939f, 0.269713f, 0.948986f, 0.825146f, 0.564144f, 0.770639f, 0.485206f, 0.416936f, 0.0984107f, 0.771148f, 0.266221f, 0.44929f, 0.304169f, 0.0864227f, 0.119333f, 0.609946f, 0.352228f, 0.803194f, 0.0700682f, 0.180989f, 0.290626f, 0.654246f, 0.873521f, 0.195073f, 0.0980244f, 0.32034f, 0.14283f, 0.213314f, 0.572725f, 0.811518f, 0.904587f, 0.431793f, 0.472596f, 0.701579f, 0.165594f, 0.788756f, 0.55967f, 0.412133f, 0.673068f, 0.475394f, 0.423188f, 0.998463f, 0.134837f, 0.440722f, 0.283467f, 0.519767f, 0.827366f, 0.616524f, 0.269592f, 0.0610548f, 0.214388f, 0.310935f, 0.813268f, 0.614236f, 0.305517f, 0.0430781f, 0.620736f, 0.641705f, 0.895556f, 0.3765f, 0.982094f, 0.845038f, 0.981563f, 0.744293f, 0.291727f, 0.00362085f, 0.717874f, 0.725714f, 0.542053f, 0.320815f, 0.258247f, 0.240783f, 0.290881f, 0.296439f, 0.715697f, 0.0383373f, 0.384729f, 0.428255f, 0.454301f, 0.434624f, 0.666046f, 0.186181f, 0.230389f, 0.706728f, 0.559589f, 0.941174f, 0.54638f, 0.252105f, 0.210496f, 0.370935f, 0.469081f, 0.65679f, 0.246057f, 0.593924f, 0.828955f, 0.715542f, 0.584473f, 0.265623f, 0.443921f, 0.883346f, 0.60509f, 0.288227f, 0.636306f, 0.497498f, 0.0708454f, 0.835096f, 0.627698f, 0.328114f, 0.316023f, 0.5014f, 0.921875f, 0.54686f, 0.0416384f, 0.157481f, 0.838317f, 0.935189f, 0.269667f, 0.167253f, 0.588981f, 0.209506f, 0.663613f, 0.158796f, 0.720612f, 0.0420776f, 0.36182f, 0.501057f, 0.195321f, 0.655048f, 0.320891f, 0.495573f, 0.589786f, 0.931608f, 0.467956f, 0.0568821f, 0.382032f, 0.761145f, 0.288557f, 0.36101f, 0.125653f, 0.182641f, 0.334124f, 0.157218f, 0.762846f, 0.149435f, 0.999255f, 0.4778f, 0.553885f, 0.0677615f, 0.931818f, 0.016556f, 0.803526f, 0.0220922f, 0.631252f, 0.199443f, 0.400167f, 0.582883f, 0.765045f, 0.577627f, 0.547879f, 0.823248f, 0.180415f, 0.998187f, 0.783894f, 0.211209f, 0.533494f, 0.754303f, 0.65733f, 0.133927f, 0.828414f, 0.792878f, 0.411378f, 0.744205f, 0.527533f, 0.903261f, 0.426149f, 0.224438f, 0.52951f, 0.398703f, 0.127338f, 0.630412f, 0.688104f, 0.339014f, 0.553921f, 0.34712f, 0.62277f, 0.038325f, 0.410101f, 0.171616f, 0.806647f, 0.679862f, 0.823435f, 0.517721f, 0.176172f, 0.960146f, 0.0800634f, 0.487031f, 0.0279664f, 0.0173489f, 0.0645565f, 0.268324f, 0.165998f, 0.971805f, 0.421874f, 0.536972f, 0.0730187f, 0.845134f, 0.3398f, 0.305973f, 0.0977254f, 0.836375f, 0.289279f, 0.753972f, 0.641238f, 0.946321f, 0.962601f, 0.67325f, 0.257082f, 0.533891f, 0.8623f, 0.788637f, 0.946002f, 0.431869f, 0.292219f, 0.32183f, 0.897805f, 0.677521f, 0.902471f, 0.314869f, 0.252362f, 0.405313f, 0.600214f, 0.805096f, 0.202731f, 0.959067f, 0.32637f, 0.180819f, 0.700432f, 0.477366f, 0.78468f, 0.807295f, 0.666499f, 0.760154f, 0.708467f, 0.353349f, 0.832866f, 0.408311f, 0.0210555f, 0.297889f, 0.612174f, 0.759349f, 0.589077f, 0.993623f, 0.142461f, 0.334269f, 0.560127f, 0.848384f, 0.151291f, 0.404091f, 0.0174518f, 0.464505f, 0.730424f, 0.103645f, 0.280192f, 0.143918f, 0.450896f, 0.957061f, 0.545256f, 0.857519f, 0.262689f, 0.979739f, 0.403343f, 0.957957f, 0.853007f, 0.150011f, 0.856873f, 0.842149f, 0.310354f, 0.828174f, 0.173182f, 0.671715f, 0.608794f, 0.457571f, 0.991531f, 0.196842f, 0.854958f, 0.916562f, 0.205036f, 0.502097f, 0.545073f, 0.990717f, 0.660022f, 0.160164f, 0.334036f, 0.487408f, 0.524314f, 0.786715f, 0.778241f, 0.291536f, 0.259401f, 0.338952f, 0.829521f, 0.0694723f, 0.375024f, 0.141045f, 0.580219f, 0.487215f, 0.409129f, 0.557917f, 0.241972f, 0.316169f, 0.910911f, 0.686209f, 0.00985684f, 0.467838f, 0.493742f, 0.671694f, 0.823553f, 0.842008f, 0.433344f, 0.294061f, 0.188521f, 0.92429f, 0.538474f, 0.750357f, 0.88262f, 0.568984f, 0.595121f, 0.84028f, 0.00421434f, 0.776732f, 0.335066f, 0.409157f, 0.0208589f, 0.497187f, 0.612949f, 0.250027f, 0.522101f, 0.300015f, 0.58257f, 0.240747f, 0.572784f, 0.690404f, 0.953512f, 0.0912815f, 0.0733098f, 0.68624f, 0.794803f, 0.696063f, 0.60953f, 0.815455f, 0.625078f, 0.714355f, 0.772728f, 0.479029f, 0.626334f, 0.474357f, 0.914993f, 0.75467f, 0.745836f, 0.63729f, 0.19669f, 0.0905315f, 0.893427f, 0.849832f, 0.912964f, 0.382397f, 0.71154f, 0.808354f, 0.893045f, 0.456135f, 0.393691f, 0.863108f, 0.761282f, 0.991937f, 0.573704f, 0.690977f, 0.3117f, 0.567825f, 0.306727f, 0.326662f, 0.491348f, 0.399847f, 0.77062f, 0.405923f, 0.918753f, 0.258499f, 0.902771f, 0.73017f, 0.637004f, 0.585638f, 0.605306f, 0.115159f, 0.118974f, 0.432776f, 0.488925f, 0.66015f, 0.350921f, 0.18767f, 0.973977f, 0.723712f, 0.339241f, 0.379722f, 0.536957f, 0.624038f, 0.497347f, 0.944084f, 0.159237f, 0.777434f, 0.289676f, 0.511357f, 0.39244f, 0.415509f, 0.890435f, 0.595442f, 0.47797f, 0.466247f, 0.66677f, 0.451693f, 0.580417f, 0.25935f, 0.643025f, 0.380881f, 0.944449f, 0.650725f, 0.165078f, 0.702137f, 0.704296f, 0.752474f, 0.936447f, 0.868422f, 0.262513f, 0.0232052f, 0.555611f, 0.74614f, 0.398948f, 0.195334f, 0.0348564f, 0.583205f, 0.423472f, 0.0960633f, 0.733525f, 0.99676f, 0.487536f, 0.296982f, 0.20456f, 0.571804f, 0.868799f, 0.749744f, 0.621992f, 0.759803f, 0.0618532f, 0.253088f, 0.445758f, 0.650843f, 0.648296f, 0.750919f, 0.0334708f, 0.297256f, 0.310481f, 0.532567f, 0.404802f, 0.377319f, 0.542259f, 0.12443f, 0.790325f, 0.444367f, 0.452441f, 0.217944f, 0.424292f, 0.115662f, 0.61383f, 0.245621f, 0.747123f, 0.830206f, 0.369922f, 0.865725f, 0.651759f, 0.461403f, 0.145014f, 0.225638f, 0.346928f, 0.0338172f, 0.143913f, 0.235113f, 0.753127f, 0.939304f, 0.684814f, 0.633211f, 0.960311f, 0.489829f, 0.883591f, 0.474476f, 0.173168f, 0.804425f, 0.121522f, 0.153494f, 0.0543107f, 0.204177f, 0.602172f, 0.536432f, 0.323885f, 0.439595f, 0.0364584f, 0.520795f, 0.635875f, 0.199897f, 0.194836f, 0.741096f, 0.971576f, 0.194318f, 0.181178f, 0.326358f, 0.633951f, 0.632444f, 0.361302f, 0.29806f, 0.942541f, 0.87561f, 0.230811f, 0.0783732f, 0.657944f, 0.96467f, 0.170779f, 0.45759f, 0.261792f, 0.567791f, 0.403396f, 0.628791f, 0.323723f, 0.227396f, 0.506212f, 0.872135f, 0.210903f, 0.194407f, 0.54982f, 0.577773f, 0.461273f, 0.450567f, 0.976968f, 0.508873f, 0.450128f, 0.881639f, 0.688893f, 0.0998914f, 0.966041f, 0.53252f, 0.0757306f, 0.502864f, 0.275422f, 0.687194f, 0.348087f, 0.35807f, 0.171159f, 0.972887f, 0.863733f, 0.813569f, 0.51552f, 0.197781f, 0.802414f, 0.524504f, 0.533703f, 0.619684f, 0.333113f, 0.0153569f, 0.907485f, 0.44377f, 0.428598f, 0.183857f, 0.982795f, 0.238431f, 0.208793f, 0.321625f, 0.380313f, 0.568526f, 0.930941f, 0.677121f, 0.544023f, 0.419881f, 0.388237f, 0.011026f, 0.121431f, 0.239208f, 0.189497f, 0.659145f, 0.109031f, 0.142288f, 0.555917f, 0.99295f, 0.786536f, 0.0710536f, 0.768471f, 0.161077f, 0.719407f, 0.513358f, 0.472459f, 0.130592f, 0.878847f, 0.372559f, 0.987415f, 0.819368f, 0.896491f, 0.293905f, 0.983938f, 0.549059f, 0.398498f, 0.596892f, 0.997351f, 0.691984f, 0.0992515f, 0.953706f, 0.353985f, 0.967347f, 0.595026f, 0.175495f, 0.593134f, 0.333987f, 0.199959f, 0.124917f, 0.367774f, 0.688183f, 0.826602f, 0.00830476f, 0.875706f, 0.41639f, 0.337927f, 0.448663f, 0.243666f, 0.707968f, 0.88552f, 0.1651f, 0.309453f, 0.0265487f, 0.970021f, 0.872214f, 0.456927f, 0.635171f, 0.243996f, 0.693179f, 0.997546f, 0.220315f, 0.00512867f, 0.503069f, 0.980794f, 0.546817f, 0.83832f, 0.572533f, 0.859018f, 0.129256f, 0.64796f, 0.531453f, 0.0151519f, 0.954558f, 0.50729f, 0.690222f, 0.0997272f, 0.254811f, 0.410683f, 0.578204f, 0.764459f, 0.252579f, 0.725538f, 0.393329f, 0.326625f, 0.918815f, 0.227689f, 0.538058f, 0.445234f, 0.778616f, 0.793048f, 0.00585421f, 0.475651f, 0.0352852f, 0.858657f, 0.290356f, 0.37671f, 0.469648f, 0.251567f, 0.624495f, 0.450786f, 0.374024f, 0.145673f, 0.67222f, 0.351939f, 0.813303f, 0.56368f, 0.215226f, 0.0814795f, 0.960962f, 0.355566f, 0.435692f, 0.396444f, 0.641797f, 0.253165f, 0.932764f, 0.280643f, 0.831266f, 0.852321f, 0.563509f, 0.451012f, 0.864254f, 0.171573f, 0.787336f, 0.701232f, 0.583738f, 0.185954f, 0.367937f, 0.158504f, 0.0161709f, 0.86806f, 0.939253f, 0.267748f, 0.352643f, 0.426932f, 0.189601f, 0.911403f, 0.50837f, 0.732431f, 0.985006f, 0.269347f, 0.958147f, 0.855181f, 0.883161f, 0.956014f, 0.974718f, 0.707734f, 0.52887f, 0.991762f, 0.0393665f, 0.105822f, 0.141936f, 0.504212f, 0.476858f, 0.584185f, 0.0764541f, 0.180425f, 0.558995f, 0.895737f, 0.768966f, 0.165616f, 0.304485f, 0.575581f, 0.874015f, 0.398608f, 0.0082093f, 0.0736755f, 0.0499443f, 0.581033f, 0.874252f, 0.876927f, 0.991794f, 0.672979f, 0.650433f, 0.286385f, 0.946385f, 0.358745f, 0.243017f, 0.655395f, 0.163383f, 0.242879f, 0.0232899f, 0.464411f, 0.409471f, 0.679895f, 0.997155f, 0.029812f, 0.159658f, 0.370295f, 0.27686f, 0.211441f, 0.936067f, 0.155365f, 0.83717f, 0.603396f, 0.61765f, 0.493705f, 0.945561f, 0.893608f, 0.258562f, 0.736011f, 0.144251f, 0.364804f, 0.282035f, 0.709481f, 0.193582f, 0.313855f, 0.2994f, 0.742215f, 0.360354f, 0.981149f, 0.350727f, 0.402133f, 0.388844f, 0.583267f, 0.070153f, 0.21933f, 0.716418f, 0.249012f, 0.0757469f, 0.0186221f, 0.646731f, 0.0770813f, 0.265132f, 0.578124f, 0.368505f, 0.645117f, 0.513793f, 0.838181f, 0.00636151f, 0.121437f, 0.274747f, 0.617832f, 0.628392f, 0.681296f, 0.513797f, 0.0434236f, 0.154694f, 0.975077f, 0.590228f, 0.987464f, 0.402142f, 0.714017f, 0.563677f, 0.624326f, 0.658532f, 0.847364f, 0.379046f, 0.666956f, 0.211503f, 0.164405f, 0.0785213f, 0.795591f, 0.436383f, 0.168083f, 0.656521f, 0.09148f, 0.862772f, 0.573072f, 0.711908f, 0.60611f, 0.526567f, 0.198538f, 0.868665f, 0.537465f, 0.842959f, 0.00195253f, 0.827145f, 0.977914f, 0.479378f, 0.255765f, 0.377757f, 0.266293f, 0.264698f, 0.374865f, 0.406781f, 0.788782f, 0.457216f, 0.607319f, 0.663994f, 0.932821f, 0.688466f, 0.920392f, 0.82204f, 0.905654f, 0.299072f, 0.98596f, 0.259191f, 0.359024f, 0.511f, 0.640021f, 0.0260404f, 0.228917f, 0.480962f, 0.0145337f, 0.891536f, 0.75293f, 0.500486f, 0.595336f, 0.697801f, 0.936754f, 0.871415f, 0.901875f, 0.90638f, 0.356738f, 0.0370333f, 0.842833f, 0.246147f, 0.663604f, 0.986032f, 0.848929f, 0.805214f, 0.400486f, 0.834942f, 0.0638208f, 0.67463f, 0.111669f, 0.585896f, 0.743536f, 0.746684f, 0.914686f, 0.518284f, 0.63239f, 0.283595f, 0.181878f, 0.890666f, 0.305306f, 0.202127f, 0.433876f, 0.111278f, 0.604247f, 0.440199f, 0.812756f, 0.739672f, 0.814564f, 0.246007f, 0.240815f, 0.808788f, 0.496448f, 0.180202f, 0.935318f, 0.100369f, 0.279289f, 0.520393f, 0.686972f, 0.409546f, 0.718325f, 0.7967f, 0.622775f, 0.307297f, 0.153473f, 0.445662f, 0.0112306f, 0.823669f, 0.69551f, 0.398283f, 0.711707f, 0.053126f, 0.14718f, 0.894394f, 0.0492904f, 0.21273f, 0.196796f, 0.478175f, 0.227983f, 0.814148f, 0.488083f, 0.452984f, 0.658198f, 0.517192f, 0.383138f, 0.0411468f, 0.658421f, 0.254412f, 0.834593f, 0.78294f, 0.639942f, 0.360754f, 0.849921f, 0.433348f, 0.0629977f, 0.251698f, 0.00425808f, 0.0742739f, 0.590643f, 0.852995f, 0.44001f, 0.802642f, 0.186821f, 0.770974f, 0.787275f, 0.702866f, 0.947383f, 0.0997299f, 0.738891f, 0.119124f, 0.482181f, 0.281371f, 0.586083f, 0.991044f, 0.356575f, 0.342173f, 0.873849f, 0.974298f, 0.30734f, 0.181679f, 0.754f, 0.203723f, 0.32117f, 0.124177f, 0.430788f, 0.76273f, 0.0252674f, 0.571264f, 0.620615f, 0.864177f, 0.144175f, 0.758325f, 0.644709f, 0.952742f, 0.461476f, 0.401015f, 0.439588f, 0.520973f, 0.165119f, 0.845272f, 0.382533f, 0.697601f, 0.298341f, 0.517291f, 0.687995f, 0.831807f, 0.406744f, 0.00147834f, 0.0503307f, 0.0969225f, 0.812963f, 0.300985f, 0.0614599f, 0.296362f, 0.255696f, 0.469395f, 0.302228f, 0.682409f, 0.855154f, 0.318436f, 0.731659f, 0.898572f, 0.196598f, 0.709197f, 0.0914218f, 0.70073f, 0.624826f, 0.687569f, 0.503143f, 0.546211f, 0.965121f, 0.78538f, 0.59169f, 0.785625f, 0.743999f, 0.500571f, 0.657924f, 0.0492368f, 0.031132f, 0.373758f, 0.517738f, 0.559081f, 0.509297f, 0.338738f, 0.512054f, 0.754298f, 0.384323f, 0.525394f, 0.923157f, 0.188505f, 0.297817f, 0.0560293f, 0.465045f, 0.591416f, 0.0247203f, 0.890947f, 0.614514f, 0.684119f, 0.751641f, 0.333143f, 0.995364f, 0.699339f, 0.847508f, 0.909596f, 0.210375f, 0.0579457f, 0.252702f, 0.834395f, 0.21708f, 0.831192f, 0.173178f, 0.026883f, 0.450337f, 0.162823f, 0.554947f, 0.418359f, 0.330839f, 0.541603f, 0.947367f, 0.827405f, 0.199467f, 0.792635f, 0.217672f, 0.814948f, 0.422815f, 0.797286f, 0.230456f, 0.151905f, 0.955378f, 0.245243f, 0.869898f, 0.0846103f, 0.966006f, 0.358681f, 0.231625f, 0.0742771f, 0.925698f, 0.39544f, 0.163441f, 0.0563207f, 0.375602f, 0.192107f, 0.983945f, 0.0693443f, 0.459649f, 0.0862239f, 0.0300678f, 0.580992f, 0.100373f, 0.687713f, 0.723878f, 0.49037f, 0.332304f, 0.772052f, 0.663358f, 0.547988f, 0.416127f, 0.983808f, 0.897234f, 0.234652f, 0.873977f, 0.726734f, 0.516347f, 0.0135771f, 0.0687126f, 0.898031f, 0.745826f, 0.945414f, 0.596578f, 0.250961f, 0.680425f, 0.70184f, 0.3849f, 0.235968f, 0.650414f, 0.174933f, 0.871153f, 0.376684f, 0.740842f, 0.896868f, 0.203744f, 0.228205f, 0.368293f, 0.851204f, 0.779779f, 0.390117f, 0.196098f, 0.334587f, 0.965125f, 0.258294f, 0.994362f, 0.552795f, 0.00458971f, 0.627195f, 0.144484f, 0.0193671f, 0.172626f, 0.863175f, 0.681595f, 0.424902f, 0.995404f, 0.866294f, 0.594732f, 0.0967612f, 0.363474f, 0.553648f, 0.166862f, 0.754552f, 0.377603f, 0.687499f, 0.702658f, 0.715975f, 0.940931f, 0.0106362f, 0.403338f, 0.644233f, 0.518175f, 0.588178f, 0.778881f, 0.97979f, 0.932757f, 0.285407f, 0.0743181f, 0.806927f, 0.169634f, 0.388293f, 0.29852f, 0.45683f, 0.0809973f, 0.995686f, 0.796594f, 0.442121f, 0.355805f, 0.286648f, 0.292238f, 0.337873f, 0.596707f, 0.419495f, 0.945673f, 0.0221655f, 0.00437317f, 0.258344f, 0.594591f, 0.435367f, 0.240169f, 0.0165289f, 0.223482f, 0.0831526f, 0.834681f, 0.10958f, 0.00299531f, 0.239054f, 0.820969f, 0.40539f, 0.9016f, 0.940475f, 0.436835f, 0.150688f, 0.0904121f, 0.168206f, 0.997886f, 0.072182f, 0.26026f, 0.911627f, 0.17641f, 0.862734f, 0.969125f, 0.647594f, 0.0418974f, 0.604534f, 0.644808f, 0.337931f, 0.175766f, 0.149241f, 0.0669352f, 0.498339f, 0.588808f, 0.207361f, 0.633391f, 0.676561f, 0.332095f, 0.392212f, 0.386744f, 0.313642f, 0.581496f, 0.587427f, 0.812137f, 0.838925f, 0.553267f, 0.239962f, 0.883877f, 0.277647f, 0.615999f, 0.277633f, 0.654658f, 0.569249f, 0.264581f, 0.285088f, 0.919378f, 0.310061f, 0.154421f, 0.81211f, 0.0805758f, 0.537273f, 0.718268f, 0.78967f, 0.168712f, 0.672929f, 0.188122f, 0.542312f, 0.889333f, 0.750834f, 0.792864f, 0.665908f, 0.355375f, 0.0248623f, 0.859699f, 0.901034f, 0.978931f, 0.979496f, 0.611859f, 0.626397f, 0.109279f, 0.536334f, 0.403299f, 0.261629f, 0.214884f, 0.23765f, 0.365601f, 0.292705f, 0.757067f, 0.668028f, 0.777016f, 0.437371f, 0.959043f, 0.928364f, 0.623429f, 0.278643f, 0.767776f, 0.606668f, 0.41287f, 0.525901f, 0.20721f, 0.824017f, 0.00833184f, 0.340564f, 0.477853f, 0.646877f, 0.437629f, 0.272634f, 0.977585f, 0.720644f, 0.767572f, 0.251215f, 0.519238f, 0.458834f, 0.257776f, 0.190404f, 0.419795f, 0.833873f, 0.0831019f, 0.23368f, 0.200893f, 0.789614f, 0.879695f, 0.0838073f, 0.444594f, 0.880399f, 0.864939f, 0.0978044f, 0.66689f, 0.973639f, 0.918454f, 0.0414451f, 0.998649f, 0.301783f, 0.988848f, 0.780013f, 0.405024f, 0.102775f, 0.826986f, 0.547494f, 0.361771f, 0.775435f, 0.888387f, 0.640246f, 0.894718f, 0.291769f, 0.968296f, 0.0865464f, 0.374765f, 0.886514f, 0.686886f, 0.00595553f, 0.295335f, 0.0480263f, 0.312763f, 0.128689f, 0.779346f, 0.541304f, 0.611078f, 0.182802f, 0.678796f, 0.851202f, 0.377671f, 0.601242f, 0.0745997f, 0.594458f, 0.267097f, 0.561975f, 0.451893f, 0.17634f, 0.113208f, 0.186267f, 0.501896f, 0.169807f, 0.935481f, 0.646633f, 0.698092f, 0.0125801f, 0.89294f, 0.0404446f, 0.19095f, 0.164982f, 0.0281738f, 0.764832f, 0.199218f, 0.335745f, 0.847957f, 0.704248f, 0.0827675f, 0.551416f, 0.318433f, 0.0174397f, 0.974683f, 0.355133f, 0.659525f, 0.299524f, 0.0348649f, 0.0830367f, 0.892005f, 0.484873f, 0.35453f, 0.303067f, 0.0449598f, 0.677799f, 0.0645166f, 0.210052f, 0.949441f, 0.769507f, 0.369312f, 0.131324f, 0.585159f, 0.432039f, 0.857668f, 0.587967f, 0.905259f, 0.230036f, 0.324217f, 0.97751f, 0.484565f, 0.629018f, 0.225109f, 0.273108f, 0.0643733f, 0.968138f, 0.272667f, 0.280672f, 0.172835f, 0.25218f, 0.572744f, 0.658715f, 0.373569f, 0.0822719f, 0.467123f, 0.478136f, 0.441749f, 0.928454f, 0.675788f, 0.0515112f, 0.326865f, 0.717996f, 0.791608f, 0.835636f, 0.62661f, 0.752345f, 0.355879f, 0.301332f, 0.592752f, 0.674709f, 0.8171f, 0.475421f, 0.993677f, 0.349471f, 0.464499f, 0.290476f, 0.754061f, 0.286752f, 0.864602f, 0.0794103f, 0.744692f, 0.902555f, 0.243577f, 0.541223f, 0.17843f, 0.990312f, 0.398339f, 0.645027f, 0.548395f, 0.843345f, 0.648185f, 0.435208f, 0.886112f, 0.4496f, 0.906236f, 0.411202f, 0.590934f, 0.954434f, 0.235815f, 0.281263f, 0.548929f, 0.153537f, 0.184205f, 0.7991f, 0.677191f, 0.436472f, 0.644432f, 0.266107f, 0.611344f, 0.479622f, 0.51194f, 0.219136f, 0.853853f, 0.436816f, 0.6076f, 0.59187f, 0.491823f, 0.839212f, 0.0891322f, 0.79803f, 0.291623f, 0.234777f, 0.181739f, 0.611303f, 0.898885f, 0.197685f, 0.864132f, 0.812749f, 0.881813f, 0.532308f, 0.775868f, 0.86234f, 0.203799f, 0.11907f, 0.63381f, 0.525241f, 0.917297f, 0.822734f, 0.0351789f, 0.783906f, 0.197773f, 0.0485804f, 0.730865f, 0.154961f, 0.362621f, 0.572194f, 0.351583f, 0.708539f, 0.477232f, 0.584068f, 0.677132f, 0.428083f, 0.546457f, 0.77613f, 0.312815f, 0.775791f, 0.100256f, 0.738037f, 0.709004f, 0.548878f, 0.761758f, 0.958375f, 0.964517f, 0.887815f, 0.612814f, 0.498814f, 0.164157f, 0.170602f, 0.235105f, 0.487629f, 0.307261f, 0.596674f, 0.947006f, 0.473144f, 0.397058f, 0.153987f, 0.92083f, 0.535958f, 0.0851835f, 0.282776f, 0.563342f, 0.0861208f, 0.311185f, 0.867459f, 0.810231f, 0.131134f, 0.769348f, 0.221934f, 0.908438f, 0.355699f, 0.0335063f, 0.512362f, 0.989534f, 0.164223f, 0.144575f, 0.123998f, 0.635566f, 0.761381f, 0.690244f, 0.377104f, 0.966984f, 0.927097f, 0.221802f, 0.840417f, 0.656228f, 0.886511f, 0.0520425f, 0.933234f, 0.960195f, 0.410967f, 0.0131046f, 0.98945f, 0.410679f, 0.416786f, 0.335773f, 0.867022f, 0.473227f, 0.218017f, 0.824167f, 0.042242f, 0.286993f, 0.479034f, 0.0468841f, 0.0240143f, 0.752881f, 0.832831f, 0.550008f, 0.659603f, 0.283631f, 0.445006f, 0.0618597f, 0.795936f, 0.605933f, 0.622893f, 0.118388f, 0.0121302f, 0.75759f, 0.366031f, 0.721477f, 0.850805f, 0.330059f, 0.395251f, 0.855987f, 0.291648f, 0.194895f, 0.844415f, 0.632958f, 0.10251f, 0.356481f, 0.264689f, 0.439693f, 0.495715f, 0.394411f, 0.996949f, 0.170269f, 0.638766f, 0.199071f, 0.931374f, 0.70971f, 0.226326f, 0.393906f, 0.0564923f, 0.0181645f, 0.114254f, 0.756949f, 0.0379847f, 0.0607238f, 0.766953f, 0.23202f, 0.368807f, 0.173989f, 0.408378f, 0.948673f, 0.650679f, 0.152183f, 0.0212014f, 0.0289645f, 0.0329749f, 0.284794f, 0.0103853f, 0.242957f, 0.598746f, 0.0915884f, 0.416697f, 0.397829f, 0.110467f, 0.245823f, 0.405882f, 0.99591f, 0.21921f, 0.610271f, 0.807742f, 0.299738f, 0.64813f, 0.275229f, 0.526575f, 0.585021f, 0.846538f, 0.828594f, 0.107584f, 0.758753f, 0.45955f, 0.203831f, 0.907287f, 0.742649f, 0.375063f, 0.846021f, 0.429571f, 0.606226f, 0.687485f, 0.911635f, 0.37944f, 0.630247f, 0.92855f, 0.744963f, 0.0724244f, 0.364864f, 0.547149f, 0.265658f, 0.0431736f, 0.640118f, 0.409493f, 0.416564f, 0.965693f, 0.868874f, 0.681317f, 0.813757f, 0.456762f, 0.807098f, 0.135874f, 0.728657f, 0.109546f, 0.884686f, 0.296474f, 0.278131f, 0.702295f, 0.0818165f, 0.154129f, 0.459227f, 0.863289f, 0.185109f, 0.549708f, 0.103023f, 0.321497f, 0.840481f, 0.967839f, 0.971399f, 0.195059f, 0.876058f, 0.0751044f, 0.80548f, 0.0878057f, 0.933578f, 0.578939f, 0.212132f, 0.66614f, 0.541055f, 0.794425f, 0.940204f, 0.312221f, 0.578872f, 0.249227f, 0.682941f, 0.936471f, 0.233682f, 0.497073f, 0.855049f, 0.727995f, 0.122327f, 0.860892f, 0.92598f, 0.103458f, 0.271832f, 0.541797f, 0.353715f, 0.746916f, 0.119324f, 0.621795f, 0.776785f, 0.0376066f, 0.606235f, 0.98535f, 0.540997f, 0.403493f, 0.516905f, 0.242495f, 0.317253f, 0.44587f, 0.427675f, 0.451131f, 0.825751f, 0.432025f, 0.917243f, 0.142327f, 0.793069f, 0.247703f, 0.171014f, 0.15947f, 0.772607f, 0.232115f, 0.514799f, 0.483581f, 0.577916f, 0.665164f, 0.959653f, 0.898639f, 0.862961f, 0.414654f, 0.131458f, 0.171707f, 0.221476f, 0.927684f, 0.943996f, 0.914863f, 0.970896f, 0.446371f, 0.938255f, 0.666103f, 0.0893337f, 0.909624f, 0.637013f, 0.775433f, 0.468151f, 0.116681f, 0.277571f, 0.0764407f, 0.162423f, 0.384658f, 0.920455f, 0.387538f, 0.779293f, 0.593171f, 0.372044f, 0.476376f, 0.176086f, 0.524137f, 0.0438486f, 0.595312f, 0.321621f, 0.401834f, 0.750315f, 0.357228f, 0.526045f, 0.44901f, 0.662365f, 0.476719f, 0.322529f, 0.516499f, 0.708421f, 0.735793f, 0.0104833f, 0.00532161f, 0.463197f, 0.98893f, 0.221206f, 0.418423f, 0.321729f, 0.799445f, 0.293395f, 0.265432f, 0.287705f, 0.628185f, 0.00118771f, 0.25694f, 0.0278366f, 0.159475f, 0.803109f, 0.498007f, 0.944893f, 0.0641895f, 0.717842f, 0.641131f, 0.441682f, 0.0740112f, 0.0526145f, 0.887327f, 0.938251f, 0.0894169f, 0.0215554f, 0.197522f, 0.752314f, 0.639109f, 0.268944f, 0.189877f, 0.250059f, 0.973319f, 0.00784774f, 0.182758f, 0.0961477f, 0.145629f, 0.0574231f, 0.289511f, 0.427288f, 0.59409f, 0.809736f, 0.593583f, 0.826503f, 0.0167115f, 0.0395654f, 0.175921f, 0.918072f, 0.988553f, 0.195865f, 0.0493576f, 0.256882f, 0.0993088f, 0.267146f, 0.370154f, 0.612375f, 0.240145f, 0.368014f, 0.974433f, 0.817853f, 0.255606f, 0.5134f, 0.888767f, 0.376799f, 0.301158f, 0.807284f, 0.674619f, 0.710718f, 0.407684f, 0.364833f, 0.683545f, 0.551968f, 0.0888487f, 0.10451f, 0.562518f, 0.706546f, 0.0930773f, 0.0180842f, 0.271144f, 0.807563f, 0.897958f, 0.2587f, 0.616013f, 0.805699f, 0.599381f, 0.368372f, 0.351136f, 0.829284f, 0.260464f, 0.0157136f, 0.516772f, 0.42577f, 0.189366f, 0.951162f, 0.870767f, 0.96263f, 0.717807f, 0.0699912f, 0.409069f, 0.258555f, 0.44689f, 0.952556f, 0.650453f, 0.0565907f, 0.944194f, 0.794816f, 0.349263f, 0.111698f, 0.0893996f, 0.333501f, 0.918001f, 0.16194f, 0.0164505f, 0.899396f, 0.361277f, 0.556422f, 0.99869f, 0.182667f, 0.442393f, 0.996485f, 0.710526f, 0.292991f, 0.498181f, 0.609877f, 0.486425f, 0.313886f, 0.949695f, 0.989009f, 0.863366f, 0.155735f, 0.0421055f, 0.496073f, 0.535372f, 0.438363f, 0.526073f, 0.700835f, 0.148732f, 0.446968f, 0.0329374f, 0.193337f, 0.155741f, 0.714287f, 0.411356f, 0.865726f, 0.681642f, 0.162871f, 0.574011f, 0.631729f, 0.896857f, 0.669892f, 0.825005f, 0.0815891f, 0.563653f, 0.476689f, 0.251805f, 0.972645f, 0.197786f, 0.981898f, 0.207308f, 0.901507f, 0.0791852f, 0.124701f, 0.418809f, 0.83853f, 0.512213f, 0.0912239f, 0.0111224f, 0.300854f, 0.897104f, 0.849134f, 0.489731f, 0.0449163f, 0.541635f, 0.324326f, 0.943505f, 0.921968f, 0.118138f, 0.760508f, 0.376111f, 0.0268056f, 0.173483f, 0.0219624f, 0.382466f, 0.869401f, 0.52782f, 0.270667f, 0.00334581f, 0.65812f, 0.494211f, 0.941646f, 0.80405f, 0.507431f, 0.183213f, 0.403965f, 0.243346f, 0.857107f, 0.348323f, 0.0825182f, 0.113305f, 0.365823f, 0.740004f, 0.959118f, 0.472712f, 0.804029f, 0.95695f, 0.184744f, 0.237458f, 0.607636f, 0.653327f, 0.887677f, 0.443347f, 0.897552f, 0.808931f, 0.770809f, 0.450934f, 0.192356f, 0.88196f, 0.731589f, 0.659181f, 0.454563f, 0.427396f, 0.643558f, 0.119666f, 0.162486f, 0.865478f, 0.973537f, 0.005524f, 0.501481f, 0.676537f, 0.572447f, 0.650847f, 0.320487f, 0.131539f, 0.631316f, 0.775465f, 0.973387f, 0.48632f, 0.908495f, 0.863751f, 0.501378f, 0.217811f, 0.551988f, 0.458329f, 0.926665f, 0.796882f, 0.53953f, 0.673495f, 0.759102f, 0.559385f, 0.870888f, 0.917354f, 0.664628f, 0.591642f, 0.721897f, 0.81984f, 0.348603f, 0.618429f, 0.393732f, 0.612639f, 0.559268f, 0.594818f, 0.0240865f, 0.919583f, 0.951564f, 0.912822f, 0.834258f, 0.227765f, 0.858413f, 0.558966f, 0.99628f, 0.210777f, 0.190269f, 0.489516f, 0.886066f, 0.797631f, 0.721393f, 0.648251f, 0.123166f, 0.292298f, 0.342009f, 0.978376f, 0.340087f, 0.705938f, 0.340266f, 0.735755f, 0.386855f, 0.924698f, 0.364137f, 0.909995f, 0.0349718f, 0.60813f, 0.140911f, 0.0576143f, 0.461955f, 0.563707f, 0.118206f, 0.568721f, 0.390357f, 0.201702f, 0.828934f, 0.212367f, 0.604297f, 0.340181f, 0.35123f, 0.143424f, 0.795792f, 0.566785f, 0.805546f, 0.770922f, 0.719113f, 0.0990554f, 0.522208f, 0.634463f, 0.874989f, 0.48286f, 0.604899f, 0.245499f, 0.742334f, 0.144995f, 0.511141f, 0.273659f, 0.832553f, 0.761872f, 0.187341f, 0.0158627f, 0.68155f, 0.612817f, 0.29456f, 0.387387f, 0.823899f, 0.620883f, 0.673587f, 0.196102f, 0.328783f, 0.0783226f, 0.117904f, 0.909313f, 0.223046f, 0.784899f, 0.788061f, 0.829547f, 0.569972f, 0.590199f, 0.759869f, 0.851828f, 0.624583f, 0.784306f, 0.275525f, 0.951656f, 0.269522f, 0.61056f, 0.767513f, 0.546942f, 0.609999f, 0.330411f, 0.971002f, 0.415065f, 0.630046f, 0.138175f, 0.809245f, 0.781137f, 0.885986f, 0.952628f, 0.18252f, 0.0135932f, 0.925388f, 0.802527f, 0.711905f, 0.459045f, 0.469015f, 0.454683f, 0.803198f, 0.738985f, 0.589639f, 0.729487f, 0.0206505f, 0.0471438f, 0.555607f, 0.647299f, 0.710894f, 0.0232273f, 0.473536f, 0.992742f, 0.138496f, 0.551738f, 0.395757f, 0.0232328f, 0.776831f, 0.40743f, 0.126116f, 0.762352f, 0.856934f, 0.938773f, 0.49775f, 0.815219f, 0.247492f, 0.936613f, 0.516516f, 0.55747f, 0.999511f, 0.645613f, 0.704286f, 0.552449f, 0.451766f, 0.287689f, 0.48226f, 0.430813f, 0.165118f, 0.618992f, 0.241117f, 0.314003f, 0.0530261f, 0.728283f, 0.376294f, 0.125774f, 0.137133f, 0.151684f, 0.828655f, 0.241104f, 0.893395f, 0.908325f, 0.991044f, 0.639374f, 0.962975f, 0.891643f, 0.271515f, 0.423306f, 0.84826f, 0.677847f, 0.288955f, 0.772833f, 0.922881f, 0.58682f, 0.769327f, 0.389095f, 0.431119f, 0.777751f, 0.148845f, 0.961312f, 0.659001f, 0.0589023f, 0.141155f, 0.19504f, 0.000765664f, 0.816062f, 0.427383f, 0.250311f, 0.715713f, 0.857908f, 0.298356f, 0.810578f, 0.413091f, 0.0148862f, 0.915761f, 0.147426f, 0.356771f, 0.166736f, 0.0924138f, 0.400727f, 0.262604f, 0.740243f, 0.543766f, 0.941331f, 0.298581f, 0.045212f, 0.998012f, 0.270978f, 0.364636f, 0.573023f, 0.443122f, 0.835473f, 0.155941f, 0.104697f, 0.907616f, 0.99258f, 0.798865f, 0.26f, 0.648707f, 0.805339f, 0.406667f, 0.67507f, 0.974242f, 0.664198f, 0.758657f, 0.0178747f, 0.738077f, 0.241809f, 0.659722f, 0.440549f, 0.282782f, 0.306465f, 0.0758013f, 0.14522f, 0.191062f, 0.772218f, 0.321738f, 0.802261f, 0.739133f, 0.911742f, 0.405674f, 0.453852f, 0.790895f, 0.228438f, 0.133695f, 0.0672329f, 0.271262f, 0.602318f, 0.496663f, 0.839782f, 0.765948f, 0.762234f, 0.572786f, 0.678214f, 0.367012f, 0.054096f, 0.634219f, 0.389622f, 0.140702f, 0.262828f, 0.736748f, 0.109723f, 0.403525f, 0.347585f, 0.218126f, 0.661328f, 0.216073f, 0.839315f, 0.389476f, 0.173967f, 0.6853f, 0.972736f, 0.316608f, 0.91018f, 0.733169f, 0.836239f, 0.79083f, 0.289316f, 0.900352f, 0.337066f, 0.19927f, 0.252872f, 0.0403512f, 0.334056f, 0.0458046f, 0.0125463f, 0.518202f, 0.131157f, 0.891323f, 0.101934f, 0.745387f, 0.0230805f, 0.840668f, 0.509314f, 0.817136f, 0.846837f, 0.179772f, 0.110293f, 0.863004f, 0.0407414f, 0.15709f, 0.723f, 0.749676f, 0.599542f, 0.539487f, 0.475971f, 0.903518f, 0.562761f, 0.176217f, 0.237273f, 0.183964f, 0.532962f, 0.593046f, 0.408261f, 0.17082f, 0.281051f, 0.722534f, 0.821272f, 0.287547f, 0.273163f, 0.736222f, 0.270509f, 0.289959f, 0.992854f, 0.502057f, 0.599229f, 0.132384f, 0.629982f, 0.995445f, 0.437534f, 0.366953f, 0.374743f, 0.170458f, 0.602025f, 0.467811f, 0.144916f, 0.938602f, 0.0962815f, 0.587758f, 0.580466f, 0.0733088f, 0.418199f, 0.247033f, 0.625023f, 0.32498f, 0.975208f, 0.204406f, 0.637679f, 0.6115f, 0.0876326f, 0.603851f, 0.447662f, 0.64321f, 0.673376f, 0.964428f, 0.0946905f, 0.195538f, 0.878627f, 0.338571f, 0.0178136f, 0.476829f, 0.554766f, 0.411815f, 0.449492f, 0.0729066f, 0.969491f, 0.359562f, 0.494517f, 0.484236f, 0.919227f, 0.600618f, 0.625219f, 0.794333f, 0.805586f, 0.666122f, 0.965683f, 0.528569f, 0.891717f, 0.140393f, 0.79759f, 0.577391f, 0.763289f, 0.20801f, 0.177661f, 0.371169f, 0.548201f, 0.846194f, 0.732316f, 0.986391f, 0.0623603f, 0.172577f, 0.159146f, 0.768465f, 0.658948f, 0.531107f, 0.221383f, 0.436848f, 0.430568f, 0.0506848f, 0.700965f, 0.515319f, 0.699194f, 0.20634f, 0.210227f, 0.3904f, 0.857165f, 0.157405f, 0.961468f, 0.495033f, 0.184921f, 0.846398f, 0.330724f, 0.634038f, 0.189147f, 0.450485f, 0.187222f, 0.404023f, 0.00236388f, 0.931786f, 0.135573f, 0.602142f, 0.618866f, 0.252505f, 0.54096f, 0.852662f, 0.739679f, 0.097013f, 0.480278f, 0.783236f, 0.765232f, 0.190613f, 0.394705f, 0.132664f, 0.997013f, 0.99244f, 0.254413f, 0.434662f, 0.0958931f, 0.317958f, 0.274899f, 0.0537962f, 0.536602f, 0.946362f, 0.637584f, 0.48559f, 0.726569f, 0.566276f, 0.296169f, 0.64028f, 0.349356f, 0.470348f, 0.755729f, 0.446221f, 0.0269839f, 0.0272818f, 0.660063f, 0.360886f, 0.0748171f, 0.233837f, 0.522727f, 0.147242f, 0.679103f, 0.0294322f, 0.0387432f, 0.103845f, 0.968886f, 0.713026f, 0.583265f, 0.525373f, 0.332164f, 0.733758f, 0.127217f, 0.599796f, 0.964788f, 0.981505f, 0.164519f, 0.730032f, 0.858293f, 0.659433f, 0.170366f, 0.972842f, 0.913257f, 0.715129f, 0.538941f, 0.779474f, 0.241045f, 0.736057f, 0.561962f, 0.0228246f, 0.896983f, 0.948562f, 0.558583f, 0.019025f, 0.158188f, 0.873232f, 0.242444f, 0.943358f, 0.375036f, 0.246231f, 0.665553f, 0.113559f, 0.682651f, 0.451092f, 0.763624f, 0.958767f, 0.520576f, 0.860918f, 0.606418f, 0.771554f, 0.691394f, 0.00944814f, 0.654227f, 0.630449f, 0.997169f, 0.102747f, 0.927235f, 0.765837f, 0.641497f, 0.467332f, 0.759331f, 0.607432f, 0.104646f, 0.813646f, 0.736717f, 0.538414f, 0.660265f, 0.562663f, 0.787445f, 0.863065f, 0.685598f, 0.701698f, 0.799293f, 0.882257f, 0.596097f, 0.838928f, 0.720528f, 0.723564f, 0.443364f, 0.773785f, 0.157988f, 0.492769f, 0.500118f, 0.229944f, 0.268233f, 0.704697f, 0.21838f, 0.563423f, 0.521119f, 0.187359f, 0.703179f, 0.539207f, 0.18224f, 0.308922f, 0.597369f, 0.576366f, 0.525489f, 0.940259f, 0.413666f, 0.654303f, 0.379866f, 0.152853f, 0.318109f, 0.169557f, 0.301647f, 0.948932f, 0.198906f, 0.563176f, 0.808374f, 0.794709f, 0.281876f, 0.51802f, 0.504197f, 0.979889f, 0.134977f, 0.0674366f, 0.571003f, 0.0545859f, 0.852502f, 0.817411f, 0.277611f, 0.850023f, 0.86635f, 0.843949f, 0.767062f, 0.0243032f, 0.832766f, 0.103435f, 0.766998f, 0.0809732f, 0.868137f, 0.0436018f, 0.767215f, 0.944113f, 0.26165f, 0.535751f, 0.891189f, 0.613507f, 0.230717f, 0.826793f, 0.90983f, 0.902705f, 0.2274f, 0.0591369f, 0.0952792f, 0.76841f, 0.271257f, 0.892712f, 0.858496f, 0.559836f, 0.746414f, 0.649751f, 0.923867f, 0.267264f, 0.476589f, 0.98997f, 0.382942f, 0.643292f, 0.980777f, 0.235266f, 0.0795356f, 0.206256f, 0.392724f, 0.00524073f, 0.726938f, 0.22979f, 0.175653f, 0.370933f, 0.754208f, 0.518768f, 0.0731024f, 0.374884f, 0.526815f, 0.820789f, 0.698781f, 0.684112f, 0.947069f, 0.528096f, 0.812364f, 0.726435f, 0.275394f, 0.937842f, 0.677265f, 0.805396f, 0.649637f, 0.666419f, 0.121323f, 0.0619148f, 0.726193f, 0.8854f, 0.835788f, 0.411723f, 0.550008f, 0.193728f, 0.201855f, 0.484289f, 0.227465f, 0.620363f, 0.098864f, 0.847027f, 0.889017f, 0.961642f, 0.284766f, 0.71569f, 0.210706f, 0.268288f, 0.654382f, 0.933237f, 0.608494f, 0.297602f, 0.985109f, 0.341269f, 0.574067f, 0.951014f, 0.381361f, 0.0390001f, 0.132829f, 0.400454f, 0.623617f, 0.391841f, 0.147822f, 0.559094f, 0.753036f, 0.176367f, 0.468801f, 0.916402f, 0.505478f, 0.0937695f, 0.3424f, 0.265769f, 0.84268f, 0.799894f, 0.612063f, 0.615141f, 0.652949f, 0.514943f, 0.659052f, 0.381337f, 0.0512221f, 0.894979f, 0.214731f, 0.300755f, 0.317488f, 0.539459f, 0.943168f, 0.74588f, 0.951298f, 0.374936f, 0.788679f, 0.522414f, 0.262568f, 0.380122f, 0.950226f, 0.80637f, 0.695311f, 0.663997f, 0.651776f, 0.567625f, 0.637554f, 0.88283f, 0.502462f, 0.651799f, 0.304513f, 0.744262f, 0.630791f, 0.874436f, 0.468431f, 0.468395f, 0.156895f, 0.752278f, 0.444929f, 0.313451f, 0.772185f, 0.686227f, 0.266354f, 0.352239f, 0.556416f, 0.175538f, 0.886954f, 0.80055f, 0.592855f, 0.117733f, 0.890135f, 0.694178f, 0.143462f, 0.183786f, 0.111361f, 0.751949f, 0.910558f, 0.177295f, 0.617773f, 0.980424f, 0.186026f, 0.934027f, 0.782383f, 0.998444f, 0.570814f, 0.463394f, 0.625836f, 0.678522f, 0.186423f, 0.421975f, 0.51969f, 0.56891f, 0.241427f, 0.587216f, 0.431899f, 0.61606f, 0.250613f, 0.313678f, 0.402734f, 0.15466f, 0.503842f, 0.558041f, 0.614553f, 0.870482f, 0.590434f, 0.816333f, 0.825288f, 0.867169f, 0.04316f, 0.321845f, 0.739151f, 0.221427f, 0.175579f, 0.754401f, 0.316374f, 0.190673f, 0.272849f, 0.603555f, 0.673068f, 0.0751547f, 0.268687f, 0.216717f, 0.867664f, 0.468306f, 0.817736f, 0.375376f, 0.747197f, 0.262925f, 0.884748f, 0.481215f, 0.531307f, 0.40478f, 0.727778f, 0.232204f, 0.0111088f, 0.109155f, 0.225445f, 0.95549f, 0.580218f, 0.0179345f, 0.230458f, 0.90268f, 0.128021f, 0.606634f, 0.212615f, 0.643174f, 0.420191f, 0.966698f, 0.148805f, 0.936902f, 0.427286f, 0.922583f, 0.954008f, 0.489383f, 0.595573f, 0.862088f, 0.972187f, 0.766681f, 0.154849f, 0.939441f, 0.342115f, 0.317699f, 0.824605f, 0.534231f, 0.770833f, 0.198245f, 0.404023f, 0.180527f, 0.715574f, 0.271331f, 0.48273f, 0.209219f, 0.530061f, 0.190801f, 0.503903f, 0.335641f, 0.623987f, 0.261913f, 0.710136f, 0.52045f, 0.965192f, 0.0952744f, 0.121001f, 0.031291f, 0.641217f, 0.498995f, 0.98109f, 0.553887f, 0.115804f, 0.0791406f, 0.0481144f, 0.451669f, 0.504631f, 0.139138f, 0.305004f, 0.706337f, 0.667417f, 0.824515f, 0.863433f, 0.758306f, 0.838828f, 0.0628382f, 0.386401f, 0.444192f, 0.772499f, 0.59096f, 0.143982f, 0.455908f, 0.797249f, 0.754216f, 0.89061f, 0.0942095f, 0.499635f, 0.913581f, 0.599755f, 0.249166f, 0.564834f, 0.398485f, 0.0133317f, 0.653655f, 0.397257f, 0.136592f, 0.818902f, 0.449319f, 0.801893f, 0.610453f, 0.264237f, 0.221726f, 0.337326f, 0.35534f, 0.925313f, 0.197837f, 0.36576f, 0.24177f, 0.369551f, 0.862368f, 0.927855f, 0.186939f, 0.281315f, 0.444484f, 0.970839f, 0.530399f, 0.663522f, 0.480791f, 0.298823f, 0.834414f, 0.000362955f, 0.394165f, 0.076971f, 0.0220796f, 0.428804f, 0.889852f, 0.85644f, 0.208431f, 0.493519f, 0.643436f, 0.661069f, 0.777199f, 0.837695f, 0.726576f, 0.312783f, 0.344399f, 0.430382f, 0.235437f, 0.83473f, 0.172753f, 0.526748f, 0.885962f, 0.904429f, 0.487373f, 0.220492f, 0.999547f, 0.0381287f, 0.0554077f, 0.266235f, 0.690878f, 0.0281044f, 0.742065f, 0.212958f, 0.194056f, 0.224718f, 0.566314f, 0.0771658f, 0.213819f, 0.513215f, 0.282513f, 0.362161f, 0.318223f, 0.442504f, 0.419344f, 0.238926f, 0.997876f, 0.386875f, 0.832378f, 0.0568294f, 0.950657f, 0.294634f, 0.594692f, 0.936411f, 0.143774f, 0.912139f, 0.0267354f, 0.235006f, 0.64102f, 0.491119f, 0.00979097f, 0.128689f, 0.112191f, 0.698623f, 0.314074f, 0.018156f, 0.894285f, 0.51748f, 0.494384f, 0.121172f, 0.676978f, 0.220353f, 0.551305f, 0.360828f, 0.591426f, 0.477987f, 0.856079f, 0.568853f, 0.32561f, 0.326201f, 0.436064f, 0.724033f, 0.0356362f, 0.790356f, 0.458894f, 0.329052f, 0.613057f, 0.922875f, 0.980869f, 0.634058f, 0.0913828f, 0.471529f, 0.678107f, 0.72559f, 0.619647f, 0.285882f, 0.723729f, 0.215217f, 0.381512f, 0.522362f, 0.999275f, 0.941393f, 0.5391f, 0.346071f, 0.11983f, 0.938514f, 0.893123f, 0.149674f, 0.216018f, 0.62274f, 0.590566f, 0.453861f, 0.585271f, 0.159612f, 0.832163f, 0.688786f, 0.878436f, 0.768609f, 0.0182591f, 0.521624f, 0.242915f, 0.319346f, 0.895387f, 0.680631f, 0.586943f, 0.36178f, 0.195096f, 0.940498f, 0.0713945f, 0.784851f, 0.452908f, 0.014823f, 0.380542f, 0.769342f, 0.334072f, 0.542043f, 0.073854f, 0.831959f, 0.192065f, 0.772846f, 0.0207625f, 0.695405f, 0.122613f, 0.0689288f, 0.0774109f, 0.402734f, 0.918181f, 0.492536f, 0.943891f, 0.396396f, 0.338269f, 0.174756f, 0.858506f, 0.706656f, 0.232598f, 0.902888f, 0.0232391f, 0.933194f, 0.840573f, 0.432253f, 0.994002f, 0.237402f, 0.540469f, 0.890985f, 0.600949f, 0.0360909f, 0.994874f, 0.247599f, 0.528897f, 0.132192f, 0.559757f, 0.354476f, 0.608939f, 0.0500324f, 0.221974f, 0.725789f, 0.916872f, 0.975481f, 0.47478f, 0.476658f, 0.718356f, 0.557299f, 0.507325f, 0.638196f, 0.371043f, 0.169353f, 0.94656f, 0.00855371f, 0.233763f, 0.725029f, 0.404322f, 0.772414f, 0.15335f, 0.550963f, 0.849622f, 0.733453f, 0.0758419f, 0.683996f, 0.503317f, 0.970196f, 0.521742f, 0.68888f, 0.468305f, 0.0719073f, 0.678399f, 0.290667f, 0.75198f, 0.0459418f, 0.157773f, 0.245017f, 0.637026f, 0.984097f, 0.739316f, 0.740636f, 0.514009f, 0.565287f, 0.688721f, 0.913287f, 0.382862f, 0.967688f, 0.0467683f, 0.424222f, 0.127091f, 0.927243f, 0.897798f, 0.287813f, 0.0502903f, 0.686632f, 0.683619f, 0.814509f, 0.0899549f, 0.381423f, 0.527956f, 0.685924f, 0.420243f, 0.704938f, 0.65919f, 0.648959f, 0.94251f, 0.459588f, 0.25664f, 0.848237f, 0.887238f, 0.746489f, 0.893294f, 0.295475f, 0.0295005f, 0.371808f, 0.0415862f, 0.544484f, 0.14464f, 0.793934f, 0.782912f, 0.0538201f, 0.557197f, 0.0630537f, 0.838322f, 0.134248f, 0.553618f, 0.645032f, 0.354804f, 0.617168f, 0.876732f, 0.130592f, 0.679223f, 0.156673f, 0.12631f, 0.148912f, 0.926549f, 0.372323f, 0.496342f, 0.904119f, 0.747807f, 0.696363f, 0.275942f, 0.596396f, 0.375462f, 0.012028f, 0.548492f, 0.989382f, 0.475792f, 0.459052f, 0.100197f, 0.258228f, 0.912339f, 0.810651f, 0.868541f, 0.680623f, 0.0184828f, 0.128553f, 0.0682615f, 0.761748f, 0.993481f, 0.716995f, 0.273896f, 0.452432f, 0.442725f, 0.699469f, 0.324601f, 0.248393f, 0.531693f, 0.774441f, 0.942833f, 0.184796f, 0.129317f, 0.90462f, 0.692213f, 0.248467f, 0.585284f, 0.988108f, 0.0619278f, 0.0377834f, 0.696714f, 0.932663f, 0.302306f, 0.480454f, 0.239548f, 0.267572f, 0.34719f, 0.0419092f, 0.747019f, 0.904019f, 0.286885f, 0.848883f, 0.935396f, 0.334755f, 0.21997f, 0.151156f, 0.127164f, 0.303261f, 0.496119f, 0.747873f, 0.825951f, 0.362257f, 0.195735f, 0.127633f, 0.0361607f, 0.22829f, 0.264407f, 0.254855f, 0.61719f, 0.820758f, 0.930943f, 0.22506f, 0.0200303f, 0.792105f, 0.652014f, 0.966935f, 0.57851f, 0.712762f, 0.388077f, 0.60813f, 0.624291f, 0.928777f, 0.870221f, 0.784416f, 0.53137f, 0.819399f, 0.849431f, 0.971249f, 0.373368f, 0.52572f, 0.934896f, 0.184968f, 0.796003f, 0.930155f, 0.336169f, 0.694969f, 0.305976f, 0.513695f, 0.873715f, 0.923034f, 0.116645f, 0.320457f, 0.112744f, 0.395056f, 0.483268f, 0.403615f, 0.246422f, 0.112713f, 0.955845f, 0.530588f, 0.378185f, 0.203345f, 0.49863f, 0.981093f, 0.593413f, 0.856221f, 0.647784f, 0.34789f, 0.538461f, 0.176787f, 0.760408f, 0.681924f, 0.610988f, 0.707563f, 0.299869f, 0.734003f, 0.1127f, 0.0834526f, 0.0220461f, 0.117956f, 0.0304949f, 0.320282f, 0.515334f, 0.132549f, 0.405509f, 0.761268f, 0.180804f, 0.585011f, 0.675927f, 0.933179f, 0.583383f, 0.181295f, 0.858632f, 0.61501f, 0.115127f, 0.160397f, 0.286001f, 0.0365904f, 0.612176f, 0.890251f, 0.855244f, 0.544736f, 0.600654f, 0.192526f, 0.207142f, 0.585061f, 0.723241f, 0.0305854f, 0.906201f, 0.300921f, 0.658964f, 0.968552f, 0.278554f, 0.0310787f, 0.717203f, 0.248136f, 0.630781f, 0.270253f, 0.289819f, 0.734087f, 0.720263f, 0.171219f, 0.899631f, 0.564664f, 0.0258576f, 0.519758f, 0.644002f, 0.701642f, 0.869865f, 0.786975f, 0.717549f, 0.0491178f, 0.434058f, 0.394163f, 0.885417f, 0.727599f, 0.785278f, 0.242689f, 0.492116f, 0.85453f, 0.155595f, 0.728303f, 0.856938f, 0.399704f, 0.241284f, 0.850065f, 0.922071f, 0.877973f, 0.168211f, 0.851038f, 0.157012f, 0.303181f, 0.356058f, 0.583792f, 0.191925f, 0.941222f, 0.492563f, 0.144931f, 0.223785f, 0.814394f, 0.338385f, 0.540184f, 0.774187f, 0.119114f, 0.206181f, 0.735758f, 0.575481f, 0.158476f, 0.547546f, 0.279155f, 0.878953f, 0.495945f, 0.576014f, 0.457666f, 0.222405f, 0.193601f, 0.204385f, 0.90942f, 0.722909f, 0.115831f, 0.996332f, 0.116538f, 0.109814f, 0.789295f, 0.787046f, 0.276958f, 0.493615f, 0.708681f, 0.859758f, 0.212426f, 0.441307f, 0.0215186f, 0.382688f, 0.349373f, 0.830311f, 0.364945f, 0.78871f, 0.092119f, 0.411143f, 0.180855f, 0.643677f, 0.274428f, 0.928137f, 0.301677f, 0.238322f, 0.631149f, 0.876727f, 0.617039f, 0.819574f, 0.320929f, 0.566256f, 0.091213f, 0.720415f, 0.451016f, 0.841243f, 0.0637418f, 0.773849f, 0.523216f, 0.129316f, 0.228553f, 0.83839f, 0.720857f, 0.4508f, 0.729326f, 0.283889f, 0.521687f, 0.670042f, 0.310788f, 0.237641f, 0.198172f, 0.857647f, 0.590305f, 0.486897f, 0.895551f, 0.976329f, 0.0461186f, 0.764466f, 0.156225f, 0.150065f, 0.121629f, 0.339321f, 0.864672f, 0.0475929f, 0.181843f, 0.930669f, 0.749646f, 0.413713f, 0.758736f, 0.265734f, 0.811058f, 0.83143f, 0.148884f, 0.814754f, 0.00183105f, 0.304799f, 0.281774f, 0.381291f, 0.598088f, 0.963552f, 0.423599f, 0.30476f, 0.107936f, 0.817804f, 0.930188f, 0.0292939f, 0.859812f, 0.991556f, 0.336604f, 0.782314f, 0.388782f, 0.295328f, 0.884533f, 0.257462f, 0.300516f, 0.591447f, 0.723904f, 0.326247f, 0.146774f, 0.97647f, 0.297485f, 0.589497f, 0.970214f, 0.0410628f, 0.921568f, 0.62248f, 0.339269f, 0.495581f, 0.0767454f, 0.966806f, 0.0589158f, 0.396406f, 0.995582f, 0.745146f, 0.0589678f, 0.0342307f, 0.431874f, 0.567572f, 0.336451f, 0.244786f, 0.460678f, 0.862148f, 0.97088f, 0.511187f, 0.802736f, 0.30921f, 0.617095f, 0.445207f, 0.0750825f, 0.394839f, 0.222186f, 0.367263f, 0.00337537f, 0.627881f, 0.134698f, 0.665422f, 0.879893f, 0.622672f, 0.0302323f, 0.885841f, 0.537989f, 0.911056f, 0.278257f, 0.716116f, 0.269452f, 0.979533f, 0.410223f, 0.618212f, 0.317339f, 0.719066f, 0.905226f, 0.95324f, 0.957791f, 0.250142f, 0.522632f, 0.360267f, 0.357336f, 0.776491f, 0.882933f, 0.100169f, 0.116828f, 0.166653f, 0.768858f, 0.850701f, 0.0346909f, 0.375351f, 0.318612f, 0.881048f, 0.778074f, 0.45394f, 0.19884f, 0.211993f, 0.998809f, 0.286914f, 0.757266f, 0.413899f, 0.240068f, 0.399836f, 0.000750573f, 0.158225f, 0.279642f, 0.761147f, 0.492584f, 0.684564f, 0.0415782f, 0.476355f, 0.126179f, 0.116378f, 0.0221162f, 0.97848f, 0.891277f, 0.45055f, 0.782095f, 0.156758f, 0.794473f, 0.618912f, 0.531278f, 0.602697f, 0.399455f, 0.702711f, 0.263113f, 0.0445142f, 0.753808f, 0.37428f, 0.223015f, 0.836329f, 0.606861f, 0.735915f, 0.142172f, 0.587444f, 0.767676f, 0.170938f, 0.590825f, 0.152644f, 0.675136f, 0.514966f, 0.869304f, 0.124112f, 0.770372f, 0.892914f, 0.0584586f, 0.0171729f, 0.441062f, 0.706832f, 0.840641f, 0.812824f, 0.782498f, 0.530312f, 0.0831706f, 0.606121f, 0.082016f, 0.988946f, 0.872385f, 0.134207f, 0.35928f, 0.712274f, 0.225883f, 0.218709f, 0.332244f, 0.338422f, 0.117309f, 0.372851f, 0.463702f, 0.45301f, 0.0303854f, 0.231422f, 0.697024f, 0.482024f, 0.0043619f, 0.884546f, 0.530352f, 0.722058f, 0.657565f, 0.596428f, 0.221456f, 0.47345f, 0.447847f, 0.486759f, 0.913181f, 0.218909f, 0.837963f, 0.381696f, 0.285305f, 0.795781f, 0.876721f, 0.726653f, 0.877756f, 0.25639f, 0.326533f, 0.0298693f, 0.242767f, 0.284716f, 0.0232318f, 0.408906f, 0.192667f, 0.874931f, 0.000391752f, 0.660105f, 0.207311f, 0.813546f, 0.00368367f, 0.867223f, 0.68173f, 0.451206f, 0.20393f, 0.130545f, 0.513202f, 0.373289f, 0.04779f, 0.591133f, 0.360522f, 0.828792f, 0.204391f, 0.261686f, 0.840183f, 0.753748f, 0.950143f, 0.54666f, 0.394118f, 0.625572f, 0.318039f, 0.074424f, 0.168893f, 0.760687f, 0.81346f, 0.447106f, 0.127068f, 0.881654f, 0.533629f, 0.0562974f, 0.0354889f, 0.865537f, 0.685353f, 0.326312f, 0.0881701f, 0.868933f, 0.603044f, 0.645942f, 0.644711f, 0.657063f, 0.480383f, 0.246866f, 0.183549f, 0.0892146f, 0.441892f, 0.531132f, 0.954091f, 0.159256f, 0.0835811f, 0.493946f, 0.476517f, 0.942527f, 0.408721f, 0.00653435f, 0.0834318f, 0.524329f, 0.186832f, 0.629579f, 0.172714f, 0.0858283f, 0.0689363f, 0.34424f, 0.782379f, 0.0185725f, 0.584837f, 0.174917f, 0.487611f, 0.445817f, 0.886239f, 0.468502f, 0.476558f, 0.229707f, 0.129198f, 0.272364f, 0.0300387f, 0.101355f, 0.136276f, 0.358289f, 0.987152f, 0.239242f, 0.682611f, 0.661904f, 0.0805846f, 0.14475f, 0.775397f, 0.910405f, 0.1246f, 0.222585f, 0.058568f, 0.072662f, 0.85029f, 0.368821f, 0.360277f, 0.569662f, 0.465136f, 0.295499f, 0.757381f, 0.561263f, 0.152508f, 0.579781f, 0.762937f, 0.865448f, 0.315933f, 0.0928943f, 0.355187f, 0.705349f, 0.28899f, 0.378469f, 0.625726f, 0.386859f, 0.00989368f, 0.203887f, 0.379569f, 0.405408f, 0.269942f, 0.574519f, 0.546921f, 0.307467f, 0.83233f, 0.27854f, 0.484269f, 0.506514f, 0.766033f, 0.202428f, 0.705517f, 0.468779f, 0.462951f, 0.917114f, 0.0420313f, 0.63035f, 0.690599f, 0.0984404f, 0.365548f, 0.498503f, 0.0900206f, 0.446141f, 0.784607f, 0.971757f, 0.862731f, 0.720257f, 0.779566f, 0.252187f, 0.140158f, 0.292969f, 0.943034f, 0.249158f, 0.540571f, 0.14069f, 0.322399f, 0.332654f, 0.872873f, 0.10853f, 0.0938648f, 0.195022f, 0.108344f, 0.647948f, 0.0539708f, 0.841677f, 0.903013f, 0.847462f, 0.817227f, 0.834615f, 0.440096f, 0.284655f, 0.966755f, 0.884198f, 0.0708221f, 0.448811f, 0.114418f, 0.655087f, 0.550545f, 0.619192f, 0.382552f, 0.635639f, 0.0903912f, 0.80223f, 0.885799f, 0.994593f, 0.636088f, 0.130848f, 0.320617f, 0.751163f, 0.374591f, 0.494888f, 0.744976f, 0.348855f, 0.350868f, 0.705441f, 0.742399f, 0.336918f, 0.180846f, 0.0451081f, 0.68227f, 0.515551f, 0.0282521f, 0.26814f, 0.170132f, 0.103779f, 0.221597f, 0.568927f, 0.237043f, 0.541676f, 0.74259f, 0.492674f, 0.763025f, 0.511421f, 0.85459f, 0.776193f, 0.690783f, 0.492501f, 0.419218f, 0.140563f, 0.171486f, 0.772961f, 0.983848f, 0.565914f, 0.830099f, 0.688199f, 0.469671f, 0.425257f, 0.248831f, 0.229074f, 0.853564f, 0.589752f, 0.947709f, 0.729819f, 0.236991f, 0.551146f, 0.225102f, 0.181392f, 0.706441f, 0.0775105f, 0.0841077f, 0.35211f, 0.978525f, 0.218744f, 0.750949f, 0.704113f, 0.449898f, 0.966484f, 0.0106887f, 0.820635f, 0.236401f, 0.880151f, 0.271564f, 0.610231f, 0.88292f, 0.367338f, 0.395313f, 0.988624f, 0.579237f, 0.585322f, 0.820054f, 0.511555f, 0.530661f, 0.986911f, 0.414232f, 0.437382f, 0.650508f, 0.925384f, 0.733178f, 0.985954f, 0.526044f, 0.0999448f, 0.223699f, 0.661449f, 0.275497f, 0.595932f, 0.0252661f, 0.358223f, 0.00490222f, 0.00723672f, 0.450841f, 0.913175f, 0.664549f, 0.09219f, 0.813527f, 0.874422f, 0.87645f, 0.261922f, 0.181881f, 0.41414f, 0.879238f, 0.32461f, 0.315214f, 0.464158f, 0.237772f, 0.500516f, 0.0593136f, 0.878194f, 0.0388181f, 0.269684f, 0.555233f, 0.208229f, 0.735903f, 0.43728f, 0.203055f, 0.55765f, 0.262298f, 0.280388f, 0.616353f, 0.664842f, 0.224197f, 0.649632f, 0.633621f, 0.380696f, 0.0245201f, 0.483146f, 0.221768f, 0.441952f, 0.959894f, 0.0493276f, 0.616725f, 0.104681f, 0.230533f, 0.707058f, 0.500384f, 0.05228f, 0.134377f, 0.0405846f, 0.369997f, 0.747358f, 0.345489f, 0.926711f, 0.307617f, 0.229975f, 0.713876f, 0.644125f, 0.119532f, 0.878276f, 0.992438f, 0.958023f, 0.439826f, 0.681482f, 0.419516f, 0.488463f, 0.180604f, 0.0648086f, 0.753004f, 0.881174f, 0.0430597f, 0.792289f, 0.384788f, 0.165759f, 0.953536f, 0.941777f, 0.103897f, 0.358685f, 0.223135f, 0.700617f, 0.645657f, 0.199259f, 0.724836f, 0.258711f, 0.771646f, 0.623592f, 0.7923f, 0.525011f, 0.79812f, 0.917418f, 0.0408786f, 0.70516f, 0.685949f, 0.845311f, 0.848584f, 0.816048f, 0.577728f, 0.0632474f, 0.0337705f, 0.749029f, 0.354352f, 0.115613f, 0.405688f, 0.354145f, 0.0960672f, 0.545181f, 0.128382f, 0.707834f, 0.777129f, 0.455415f, 0.291398f, 0.202387f, 0.312735f, 0.231164f, 0.915044f, 0.105688f, 0.992714f, 0.475474f, 0.547683f, 0.536471f, 0.12417f, 0.890503f, 0.969704f, 0.398818f, 0.652417f, 0.43562f, 0.459029f, 0.526732f, 0.623382f, 0.328677f, 0.629836f, 0.921082f, 0.18711f, 0.214384f, 0.233311f, 0.226147f, 0.797971f, 0.534456f, 0.256337f, 0.689548f, 0.193202f, 0.503527f, 0.132612f, 0.0113974f, 0.561125f, 0.951401f, 0.642326f, 0.713237f, 0.257228f, 0.287788f, 0.0727935f, 0.992315f, 0.492784f, 0.753093f, 0.787538f, 0.302604f, 0.276507f, 0.421724f, 0.53667f, 0.521195f, 0.914161f, 0.477701f, 0.667751f, 0.834651f, 0.719402f, 0.622925f, 0.610117f, 0.0918504f, 0.827973f, 0.776474f, 0.997031f, 0.604986f, 0.693104f, 0.920856f, 0.953291f, 0.753704f, 0.937652f, 0.49416f, 0.0343811f, 0.210229f, 0.718012f, 0.00326219f, 0.662774f, 0.545044f, 0.605222f, 0.793254f, 0.812442f, 0.223717f, 0.222193f, 0.414127f, 0.109099f, 0.0470771f, 0.81452f, 0.52753f, 0.40668f, 0.862339f, 0.45624f, 0.403171f, 0.949618f, 0.0508641f, 0.107696f, 0.548259f, 0.703493f, 0.77282f, 0.897441f, 0.960316f, 0.375285f, 0.672975f, 0.0594269f, 0.211847f, 0.596767f, 0.375966f, 0.264368f, 0.153689f, 0.43175f, 0.334658f, 0.792881f, 0.712137f, 0.255055f, 0.835249f, 0.19435f, 0.523901f, 0.747742f, 0.021932f, 0.825722f, 0.12995f, 0.746476f, 0.0302897f, 0.143445f, 0.633426f, 0.667043f, 0.062095f, 0.378326f, 0.992086f, 0.460239f, 0.868868f, 0.510366f, 0.870358f, 0.384342f, 0.225636f, 0.0825906f, 0.0475967f, 0.202343f, 0.63943f, 0.753755f, 0.00888219f, 0.92597f, 0.4676f, 0.526284f, 0.312375f, 0.526216f, 0.663695f, 0.0312666f, 0.102075f, 0.0150701f, 0.693283f, 0.997117f, 0.954093f, 0.815279f, 0.763802f, 0.725875f, 0.292492f, 0.344055f, 0.627345f, 0.522168f, 0.621334f, 0.333947f, 0.1424f, 0.165267f, 0.499736f, 0.746754f, 0.79877f, 0.776785f, 0.557139f, 0.0425215f, 0.90292f, 0.316732f, 0.869703f, 0.785483f, 0.0158521f, 0.94999f, 0.484853f, 0.980765f, 0.216394f, 0.536688f, 0.882527f, 0.29969f, 0.474124f, 0.660068f, 0.978133f, 0.562514f, 0.922584f, 0.106834f, 0.561946f, 0.898387f, 0.53585f, 0.520597f, 0.411147f, 0.0280199f, 0.0521744f, 0.98895f, 0.0385853f, 0.0455102f, 0.970508f, 0.256327f, 0.0389597f, 0.624331f, 0.274006f, 0.378284f, 0.33111f, 0.482736f, 0.923735f, 0.0209944f, 0.931935f, 0.435454f, 0.174434f, 0.346234f, 0.317617f, 0.850623f, 0.278118f, 0.927707f, 0.513877f, 0.381132f, 0.44689f, 0.930011f, 0.607872f, 0.928808f, 0.299398f, 0.203065f, 0.120989f, 0.316432f, 0.383152f, 0.842135f, 0.704556f, 0.118635f, 0.422995f, 0.000466669f, 0.147807f, 0.502291f, 0.993403f, 0.601303f, 0.222253f, 0.0296877f, 0.0284052f, 0.87341f, 0.233206f, 0.0381863f, 0.700907f, 0.689801f, 0.399134f, 0.784999f, 0.63014f, 0.865453f, 0.287433f, 0.990328f, 0.882574f, 0.0774038f, 0.778073f, 0.484293f, 0.738884f, 0.684839f, 0.468305f, 0.0653757f, 0.997647f, 0.0303581f, 0.0133819f, 0.670839f, 0.505136f, 0.607782f, 0.915422f, 0.861656f, 0.149417f, 0.707365f, 0.602442f, 0.647925f, 0.511412f, 0.956392f, 0.726319f, 0.30591f, 0.561806f, 0.297597f, 0.527965f, 0.43694f, 0.773655f, 0.763751f, 0.493458f, 0.224437f, 0.938869f, 0.546626f, 0.641176f, 0.676299f, 0.120913f, 0.244841f, 0.913733f, 0.392493f, 0.380461f, 0.917425f, 0.346866f, 0.946269f, 0.115818f, 0.19961f, 0.900466f, 0.0815982f, 0.91916f, 0.461648f, 0.865653f, 0.983458f, 0.810979f, 0.762103f, 0.384499f, 0.572888f, 0.156534f, 0.281532f, 0.862645f, 0.278199f, 0.337823f, 0.407339f, 0.193315f, 0.384848f, 0.986914f, 0.819812f, 0.828864f, 0.658969f, 0.424426f, 0.0739355f, 0.947452f, 0.368272f, 0.402025f, 0.242601f, 0.693957f, 0.215303f, 0.814995f, 0.265798f, 0.0264865f, 0.286466f, 0.015661f, 0.583045f, 0.291179f, 0.669322f, 0.511267f, 0.229816f, 0.131331f, 0.730827f, 0.74252f, 0.93343f, 0.720619f, 0.612438f, 0.259147f, 0.112357f, 0.586765f, 0.0858606f, 0.153671f, 0.773048f, 0.822479f, 0.443573f, 0.55486f, 0.910416f, 0.85707f, 0.0148852f, 0.853716f, 0.228104f, 0.513679f, 0.951789f, 0.727959f, 0.200735f, 0.210806f, 0.125079f, 0.228391f, 0.209873f, 0.237775f, 0.108994f, 0.446076f, 0.221169f, 0.834191f, 0.98984f, 0.0542308f, 0.58488f, 0.315972f, 0.254531f, 0.828329f, 0.904021f, 0.875414f, 0.150553f, 0.0298306f, 0.215226f, 0.586307f, 0.417627f, 0.479362f, 0.172838f, 0.5259f, 0.908004f, 0.0605249f, 0.859353f, 0.828878f, 0.984935f, 0.39564f, 0.749108f, 0.526107f, 0.157768f, 0.336767f, 0.580207f, 0.598838f, 0.755481f, 0.144988f, 0.698507f, 0.464909f, 0.344876f, 0.172977f, 0.468696f, 0.668333f, 0.919779f, 0.232349f, 0.715044f, 0.280844f, 0.1119f, 0.676872f, 0.209419f, 0.0207841f, 0.770692f, 0.610173f, 0.803793f, 0.47074f, 0.186878f, 0.269158f, 0.749201f, 0.540574f, 0.915717f, 0.523814f, 0.571266f, 0.10382f, 0.811718f, 0.731922f, 0.468545f, 0.708574f, 0.323435f, 0.610058f, 0.45889f, 0.356482f, 0.981413f, 0.812081f, 0.802843f, 0.140016f, 0.27479f, 0.879972f, 0.976442f, 0.0214847f, 0.606645f, 0.452834f, 0.33259f, 0.259304f, 0.324395f, 0.22969f, 0.0908657f, 0.994912f, 0.00520821f, 0.219624f, 0.419453f, 0.820987f, 0.279137f, 0.787163f, 0.742862f, 0.702888f, 0.0585412f, 0.17378f, 0.803108f, 0.967417f, 0.554914f, 0.676712f, 0.801808f, 0.203466f, 0.917554f, 0.547952f, 0.110401f, 0.566604f, 0.000901547f, 0.428874f, 0.410979f, 0.882269f, 0.568531f, 0.204807f, 0.158472f, 0.797748f, 0.923136f, 0.626076f, 0.995379f, 0.970147f, 0.636004f, 0.256138f, 0.263984f, 0.0188201f, 0.836662f, 0.891073f, 0.815278f, 0.213562f, 0.265101f, 0.287762f, 0.853247f, 0.162469f, 0.27606f, 0.396637f, 0.0501615f, 0.519138f, 0.364286f, 0.0357294f, 0.34329f, 0.43058f, 0.134315f, 0.399785f, 0.243176f, 0.897879f, 0.0347835f, 0.977129f, 0.964701f, 0.992374f, 0.5317f, 0.855217f, 0.0626301f, 0.720206f, 0.157749f, 0.331044f, 0.119822f, 0.361034f, 0.657655f, 0.734292f, 0.487953f, 0.878978f, 0.348533f, 0.361729f, 0.655813f, 0.495023f, 0.407889f, 0.922945f, 0.903442f, 0.38402f, 0.512097f, 0.429171f, 0.506999f, 0.895231f, 0.182171f, 0.618858f, 0.88438f, 0.296033f, 0.481725f, 0.858442f, 0.493233f, 0.151025f, 0.16046f, 0.180032f, 0.441936f, 0.211194f, 0.7617f, 0.867114f, 0.199935f, 0.743809f, 0.637003f, 0.808767f, 0.561247f, 0.776601f, 0.43555f, 0.188716f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.605085f, 0.0733608f, 0.0200205f, 0.114568f, 0.178815f, 0.0580576f, 0.123144f, 0.232838f, 0.0916902f, 0.111395f, 0.138349f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/mobilenet_quantized.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/mobilenet_quantized.example.cpp
new file mode 100644
index 000000000..3130d3039
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/mobilenet_quantized.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: mobilenet_quantized.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {132, 137, 131, 144, 155, 144, 119, 126, 110, 128, 137, 121, 110, 120, 103, 105, 114, 99, 133, 145, 129, 124, 136, 118, 124, 136, 120, 112, 124, 111, 121, 132, 119, 125, 137, 121, 133, 140, 126, 133, 139, 128, 124, 129, 112, 117, 123, 110, 88, 95, 79, 96, 103, 87, 105, 113, 101, 83, 90, 74, 99, 106, 92, 103, 109, 100, 88, 94, 83, 86, 93, 80, 73, 76, 68, 59, 64, 56, 17, 19, 9, 17, 19, 9, 0, 0, 0, 20, 21, 12, 55, 56, 49, 105, 106, 97, 99, 99, 86, 116, 113, 103, 129, 126, 116, 135, 132, 121, 121, 118, 107, 120, 120, 109, 111, 108, 100, 117, 114, 106, 101, 96, 89, 110, 107, 99, 92, 86, 79, 96, 95, 86, 96, 93, 83, 94, 89, 80, 109, 106, 96, 140, 134, 125, 130, 125, 116, 126, 121, 111, 146, 138, 129, 163, 156, 145, 159, 152, 140, 181, 175, 166, 175, 167, 159, 181, 173, 164, 174, 171, 161, 151, 148, 138, 167, 164, 154, 153, 152, 141, 148, 141, 132, 162, 157, 147, 153, 148, 136, 161, 156, 144, 156, 153, 140, 138, 136, 123, 131, 135, 123, 115, 112, 100, 123, 128, 112, 118, 117, 106, 104, 106, 94, 120, 121, 112, 112, 112, 100, 120, 122, 110, 112, 114, 100, 102, 105, 90, 109, 112, 97, 106, 107, 91, 127, 129, 115, 130, 128, 113, 110, 108, 93, 121, 119, 103, 99, 96, 81, 87, 85, 70, 112, 113, 95, 118, 119, 100, 106, 107, 89, 131, 129, 114, 113, 111, 93, 129, 120, 107, 122, 120, 105, 111, 111, 95, 96, 95, 84, 90, 90, 76, 96, 98, 72, 85, 87, 75, 80, 82, 72, 13, 13, 0, 24, 23, 12, 6, 6, 0, 52, 51, 40, 104, 103, 94, 118, 120, 107, 125, 124, 115, 133, 135, 123, 120, 121, 114, 136, 139, 131, 150, 153, 145, 144, 145, 138, 148, 151, 143, 154, 155, 148, 130, 133, 126, 138, 142, 134, 149, 152, 144, 150, 153, 145, 156, 159, 151, 159, 165, 156, 151, 157, 148, 145, 151, 142, 149, 155, 147, 161, 167, 158, 159, 165, 156, 146, 152, 143, 150, 153, 147, 166, 165, 154, 227, 223, 206, 249, 245, 226, 255, 251, 234, 255, 253, 236, 255, 255, 239, 255, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 240, 238, 236, 221, 206, 207, 191, 114, 111, 98, 143, 140, 129, 230, 228, 215, 245, 243, 230, 216, 216, 202, 158, 158, 144, 103, 103, 89, 115, 118, 103, 222, 221, 208, 255, 255, 247, 255, 255, 255, 255, 255, 254, 255, 255, 254, 255, 255, 254, 255, 255, 251, 250, 248, 235, 240, 237, 222, 251, 249, 234, 255, 255, 243, 255, 255, 246, 255, 255, 247, 255, 255, 246, 245, 241, 224, 49, 45, 28, 12, 7, 0, 227, 223, 206, 255, 255, 243, 255, 251, 236, 236, 232, 218, 235, 231, 216, 239, 234, 220, 243, 239, 224, 255, 255, 242, 255, 255, 246, 255, 255, 245, 255, 255, 245, 255, 255, 245, 255, 255, 245, 255, 255, 245, 255, 255, 245, 255, 255, 244, 255, 255, 245, 255, 255, 245, 255, 255, 244, 255, 255, 247, 255, 255, 248, 255, 255, 247, 255, 255, 247, 255, 255, 247, 255, 255, 247, 255, 255, 245, 255, 255, 244, 255, 255, 244, 255, 255, 245, 255, 255, 244, 255, 255, 244, 255, 255, 244, 255, 255, 247, 255, 255, 245, 255, 255, 244, 255, 255, 244, 255, 255, 244, 255, 255, 241, 255, 255, 241, 255, 255, 241, 255, 255, 240, 255, 255, 241, 255, 255, 241, 255, 255, 241, 255, 255, 241, 254, 251, 236, 242, 240, 224, 210, 208, 193, 219, 216, 201, 234, 232, 216, 255, 255, 244, 255, 255, 247, 255, 255, 251, 255, 255, 251, 255, 255, 250, 255, 255, 255, 19, 19, 3, 25, 25, 11, 101, 104, 87, 134, 147, 127, 146, 158, 140, 165, 175, 158, 167, 177, 160, 159, 168, 154, 151, 160, 146, 140, 152, 136, 146, 157, 145, 146, 157, 145, 147, 158, 148, 155, 163, 152, 169, 177, 165, 166, 172, 161, 163, 170, 159, 156, 163, 149, 153, 160, 146, 139, 146, 132, 128, 135, 124, 135, 142, 130, 155, 162, 148, 152, 158, 145, 128, 135, 124, 127, 134, 122, 130, 134, 124, 121, 125, 114, 40, 46, 35, 41, 40, 32, 0, 0, 0, 12, 13, 6, 90, 91, 82, 105, 106, 97, 133, 132, 124, 148, 148, 136, 153, 152, 141, 158, 155, 145, 149, 146, 135, 153, 151, 140, 154, 154, 142, 153, 151, 140, 145, 142, 134, 146, 143, 135, 136, 133, 125, 135, 131, 124, 135, 131, 124, 158, 155, 145, 138, 135, 125, 151, 148, 138, 158, 155, 145, 158, 155, 145, 182, 176, 167, 174, 168, 159, 174, 169, 157, 172, 167, 158, 167, 161, 152, 179, 174, 164, 171, 168, 158, 178, 175, 164, 181, 178, 168, 158, 155, 145, 168, 168, 156, 167, 161, 152, 156, 153, 142, 153, 151, 138, 160, 158, 145, 157, 154, 142, 147, 145, 132, 138, 141, 126, 135, 135, 122, 138, 141, 126, 135, 135, 122, 134, 136, 124, 127, 129, 117, 125, 127, 114, 135, 137, 125, 142, 144, 130, 145, 148, 133, 140, 140, 126, 137, 137, 121, 145, 145, 129, 147, 145, 130, 148, 148, 132, 147, 145, 130, 137, 137, 121, 152, 152, 136, 146, 146, 130, 135, 136, 120, 138, 136, 119, 130, 130, 114, 139, 137, 122, 139, 139, 123, 141, 141, 126, 151, 151, 135, 137, 136, 123, 127, 128, 112, 114, 115, 97, 108, 110, 98, 77, 79, 67, 12, 10, 0, 41, 41, 27, 0, 0, 0, 84, 86, 74, 102, 104, 92, 138, 140, 128, 156, 158, 146, 142, 144, 132, 141, 142, 133, 147, 148, 141, 138, 142, 134, 145, 147, 139, 151, 155, 147, 146, 150, 142, 152, 156, 148, 141, 147, 138, 145, 151, 142, 144, 147, 141, 153, 159, 150, 161, 167, 158, 154, 160, 151, 159, 165, 156, 159, 165, 156, 170, 176, 167, 170, 173, 165, 132, 135, 130, 167, 171, 163, 166, 164, 151, 254, 249, 235, 255, 251, 234, 255, 255, 238, 255, 255, 240, 255, 255, 242, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 251, 238, 245, 243, 230, 185, 182, 169, 164, 161, 151, 137, 135, 122, 247, 244, 231, 239, 239, 225, 229, 228, 215, 141, 141, 128, 73, 76, 61, 106, 106, 95, 254, 251, 238, 255, 255, 247, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 246, 250, 248, 235, 244, 242, 229, 255, 255, 240, 255, 255, 250, 255, 255, 250, 255, 255, 251, 255, 255, 250, 42, 38, 21, 28, 26, 8, 180, 178, 161, 255, 255, 248, 255, 255, 249, 252, 247, 233, 240, 235, 221, 242, 238, 223, 245, 240, 228, 255, 255, 245, 255, 255, 250, 255, 255, 251, 255, 255, 251, 255, 255, 251, 255, 255, 250, 255, 255, 250, 255, 255, 250, 255, 255, 250, 255, 255, 250, 255, 255, 249, 255, 255, 252, 255, 255, 252, 255, 255, 252, 255, 255, 252, 255, 255, 253, 255, 255, 253, 255, 255, 252, 255, 255, 251, 255, 255, 250, 255, 255, 249, 255, 255, 249, 255, 255, 249, 255, 255, 247, 255, 255, 246, 255, 255, 247, 255, 255, 249, 255, 255, 247, 255, 255, 246, 255, 255, 247, 255, 255, 247, 255, 255, 249, 255, 255, 247, 255, 255, 247, 255, 255, 247, 255, 255, 246, 255, 255, 247, 255, 255, 246, 255, 255, 242, 241, 238, 223, 214, 212, 197, 227, 223, 208, 243, 241, 226, 255, 255, 245, 255, 255, 254, 255, 255, 253, 255, 255, 253, 255, 255, 254, 182, 180, 165, 18, 16, 3, 30, 29, 16, 255, 255, 245, 162, 168, 161, 163, 171, 162, 165, 174, 162, 161, 172, 160, 163, 172, 160, 151, 162, 149, 153, 164, 152, 154, 162, 152, 157, 167, 157, 165, 173, 164, 166, 175, 165, 170, 178, 169, 176, 182, 173, 167, 173, 164, 170, 177, 165, 160, 167, 153, 164, 171, 160, 161, 167, 156, 166, 172, 161, 168, 174, 163, 168, 172, 162, 155, 158, 148, 157, 159, 149, 145, 147, 137, 130, 134, 124, 31, 33, 23, 15, 17, 7, 3, 2, 0, 100, 102, 92, 116, 115, 106, 135, 135, 126, 146, 145, 134, 149, 149, 138, 168, 168, 156, 168, 166, 155, 161, 159, 148, 165, 162, 152, 153, 152, 141, 151, 148, 140, 156, 153, 145, 155, 154, 146, 163, 159, 152, 152, 149, 141, 153, 150, 142, 159, 156, 146, 159, 156, 146, 170, 167, 156, 161, 159, 148, 183, 178, 168, 184, 179, 169, 163, 158, 148, 161, 156, 146, 168, 162, 153, 167, 164, 154, 170, 167, 156, 168, 166, 155, 157, 154, 144, 160, 158, 147, 167, 164, 154, 167, 164, 154, 161, 159, 148, 161, 159, 148, 157, 154, 142, 156, 153, 142, 156, 156, 143, 146, 145, 134, 131, 131, 117, 141, 141, 128, 131, 130, 119, 140, 140, 128, 142, 142, 131, 137, 136, 125, 133, 135, 123, 134, 136, 124, 145, 148, 133, 145, 148, 133, 146, 146, 132, 140, 142, 128, 145, 145, 129, 145, 145, 129, 145, 145, 129, 154, 154, 138, 135, 138, 121, 152, 152, 136, 154, 154, 138, 142, 145, 128, 148, 148, 132, 144, 144, 128, 151, 149, 134, 151, 151, 135, 154, 154, 138, 151, 151, 135, 151, 148, 136, 145, 145, 131, 144, 144, 128, 130, 133, 118, 109, 111, 99, 22, 24, 10, 45, 45, 31, 20, 20, 8, 98, 100, 88, 112, 112, 100, 156, 158, 146, 147, 149, 136, 149, 151, 141, 154, 155, 148, 152, 156, 148, 143, 146, 138, 145, 149, 141, 144, 147, 139, 138, 142, 134, 131, 134, 129, 135, 141, 132, 133, 139, 130, 149, 155, 149, 154, 160, 153, 160, 165, 159, 161, 167, 160, 163, 169, 162, 175, 179, 171, 170, 173, 165, 171, 174, 166, 156, 159, 151, 184, 187, 177, 222, 220, 207, 255, 252, 237, 255, 253, 236, 255, 255, 240, 255, 255, 243, 255, 255, 244, 255, 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 242, 231, 231, 217, 132, 130, 117, 166, 166, 152, 170, 167, 154, 251, 251, 237, 231, 231, 217, 225, 225, 211, 89, 89, 75, 111, 110, 101, 227, 227, 214, 252, 250, 237, 255, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 245, 245, 243, 230, 240, 237, 222, 255, 255, 247, 255, 255, 254, 255, 255, 251, 255, 255, 255, 54, 52, 37, 23, 21, 8, 110, 109, 91, 255, 255, 251, 255, 255, 252, 255, 255, 243, 246, 241, 227, 247, 242, 230, 248, 245, 230, 255, 255, 242, 255, 255, 253, 255, 255, 253, 255, 255, 253, 255, 255, 254, 255, 255, 254, 255, 255, 254, 255, 255, 253, 255, 255, 253, 255, 255, 255, 255, 255, 253, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 254, 255, 255, 254, 255, 255, 255, 255, 255, 254, 255, 255, 254, 255, 255, 254, 255, 255, 254, 255, 255, 253, 255, 255, 254, 255, 255, 253, 255, 255, 250, 255, 255, 251, 255, 255, 251, 255, 255, 251, 255, 255, 251, 255, 255, 250, 255, 255, 250, 255, 255, 250, 255, 255, 251, 255, 255, 252, 255, 255, 251, 255, 255, 251, 255, 255, 252, 255, 255, 249, 255, 255, 246, 244, 242, 227, 225, 223, 208, 229, 227, 214, 251, 249, 236, 255, 255, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 29, 27, 9, 30, 29, 20, 27, 27, 13, 255, 255, 255, 147, 165, 154, 153, 166, 155, 165, 176, 165, 158, 169, 158, 168, 179, 169, 163, 174, 164, 166, 176, 168, 158, 168, 160, 169, 180, 170, 167, 176, 166, 167, 176, 166, 179, 187, 178, 174, 183, 173, 173, 179, 170, 156, 162, 154, 162, 168, 159, 160, 166, 157, 169, 175, 166, 163, 169, 160, 167, 173, 164, 146, 150, 140, 148, 151, 141, 159, 161, 152, 145, 147, 137, 24, 26, 16, 19, 18, 9, 6, 7, 0, 90, 89, 80, 112, 113, 104, 128, 128, 119, 156, 156, 145, 153, 152, 141, 155, 155, 144, 167, 164, 154, 160, 158, 147, 157, 154, 144, 161, 159, 148, 160, 159, 148, 165, 162, 152, 153, 152, 141, 165, 164, 153, 168, 166, 155, 164, 161, 151, 166, 163, 153, 167, 164, 154, 177, 174, 163, 165, 162, 152, 168, 166, 155, 175, 173, 162, 164, 161, 151, 159, 153, 144, 160, 158, 145, 167, 165, 152, 164, 161, 151, 173, 170, 160, 163, 160, 149, 161, 159, 148, 166, 163, 153, 174, 171, 161, 166, 165, 154, 161, 159, 148, 152, 149, 139, 170, 167, 154, 168, 166, 153, 147, 147, 133, 156, 156, 143, 148, 148, 136, 141, 141, 128, 152, 151, 140, 140, 140, 128, 139, 138, 127, 155, 155, 144, 139, 138, 127, 145, 144, 133, 148, 148, 134, 148, 150, 136, 150, 153, 138, 153, 155, 140, 144, 147, 130, 128, 131, 114, 145, 148, 131, 140, 142, 126, 140, 142, 126, 152, 152, 136, 149, 150, 134, 147, 147, 131, 152, 152, 136, 155, 156, 140, 146, 146, 130, 149, 150, 134, 166, 166, 150, 162, 162, 147, 158, 158, 144, 156, 156, 143, 153, 153, 139, 151, 154, 139, 130, 132, 120, 37, 40, 25, 34, 34, 20, 21, 23, 9, 102, 104, 92, 116, 118, 106, 140, 142, 129, 142, 144, 134, 153, 154, 145, 159, 163, 155, 156, 159, 151, 135, 138, 130, 151, 155, 147, 143, 146, 138, 138, 142, 134, 159, 162, 157, 151, 154, 149, 151, 156, 150, 154, 160, 153, 166, 169, 164, 163, 166, 158, 163, 166, 160, 174, 179, 173, 173, 177, 169, 170, 173, 165, 184, 187, 179, 156, 159, 151, 175, 179, 169, 242, 240, 224, 255, 254, 238, 255, 255, 240, 255, 255, 244, 255, 255, 245, 255, 255, 247, 255, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 249, 249, 236, 222, 221, 208, 132, 132, 118, 169, 169, 156, 135, 137, 125, 202, 202, 188, 229, 228, 215, 103, 102, 91, 134, 135, 126, 161, 161, 147, 249, 247, 231, 254, 251, 236, 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 248, 235, 244, 242, 227, 249, 246, 233, 255, 255, 252, 255, 255, 255, 255, 255, 255, 38, 36, 21, 31, 31, 17, 110, 108, 93, 255, 255, 255, 255, 255, 255, 255, 255, 253, 248, 245, 232, 249, 244, 232, 249, 246, 233, 255, 255, 242, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 255, 255, 253, 255, 255, 253, 255, 255, 253, 255, 255, 254, 255, 255, 254, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 254, 255, 255, 254, 255, 255, 254, 255, 255, 255, 255, 255, 251, 255, 255, 247, 243, 241, 228, 233, 228, 216, 234, 231, 218, 255, 255, 244, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 228, 226, 209, 21, 20, 12, 31, 34, 19, 221, 224, 207, 255, 255, 255, 154, 167, 158, 148, 159, 151, 157, 167, 159, 158, 168, 160, 157, 167, 159, 167, 177, 169, 159, 169, 161, 162, 173, 165, 168, 179, 171, 171, 179, 172, 176, 184, 176, 176, 182, 175, 175, 181, 174, 174, 179, 173, 178, 184, 178, 161, 167, 158, 176, 182, 173, 171, 177, 169, 169, 175, 164, 170, 177, 165, 160, 164, 154, 153, 157, 147, 155, 156, 147, 144, 148, 137, 37, 39, 29, 16, 18, 8, 2, 4, 0, 123, 125, 115, 107, 109, 99, 149, 149, 138, 168, 168, 156, 156, 156, 145, 168, 166, 155, 171, 168, 158, 158, 155, 145, 158, 155, 145, 158, 155, 145, 153, 151, 140, 173, 170, 160, 165, 162, 152, 171, 168, 158, 180, 177, 167, 180, 177, 167, 173, 170, 160, 172, 169, 159, 174, 171, 161, 171, 168, 158, 164, 161, 151, 173, 170, 160, 158, 155, 145, 164, 161, 151, 161, 159, 146, 161, 159, 146, 160, 158, 145, 161, 159, 146, 161, 159, 146, 170, 167, 154, 165, 162, 150, 163, 160, 149, 156, 156, 145, 148, 148, 136, 165, 164, 153, 174, 174, 160, 177, 177, 166, 173, 173, 159, 170, 170, 157, 167, 167, 153, 152, 152, 138, 158, 157, 146, 146, 145, 134, 146, 145, 134, 140, 140, 128, 149, 149, 138, 142, 142, 131, 142, 142, 131, 140, 140, 126, 141, 141, 128, 147, 149, 134, 145, 148, 131, 150, 153, 136, 136, 139, 122, 145, 148, 131, 149, 152, 135, 152, 152, 136, 155, 158, 141, 161, 163, 147, 160, 160, 144, 140, 140, 124, 140, 140, 124, 151, 151, 135, 151, 151, 135, 162, 162, 147, 180, 180, 164, 167, 167, 153, 164, 166, 152, 168, 168, 154, 146, 145, 134, 61, 61, 47, 32, 31, 20, 27, 29, 17, 95, 97, 85, 94, 96, 84, 153, 155, 142, 142, 144, 134, 149, 153, 142, 160, 164, 156, 143, 146, 138, 143, 146, 138, 150, 153, 145, 166, 170, 162, 166, 170, 162, 165, 168, 162, 135, 141, 132, 159, 165, 156, 163, 169, 162, 167, 172, 166, 166, 171, 165, 181, 186, 180, 186, 191, 183, 173, 179, 170, 174, 180, 171, 181, 187, 178, 151, 157, 148, 178, 182, 171, 241, 238, 223, 255, 255, 243, 255, 255, 241, 255, 255, 245, 255, 255, 247, 255, 255, 248, 255, 255, 249, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 252, 238, 216, 216, 202, 130, 129, 116, 165, 167, 155, 122, 124, 112, 197, 197, 185, 130, 129, 118, 143, 145, 135, 95, 95, 81, 253, 253, 239, 253, 253, 239, 255, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 247, 244, 229, 243, 241, 226, 255, 255, 244, 255, 255, 255, 255, 255, 255, 33, 32, 14, 24, 27, 12, 151, 149, 134, 255, 255, 254, 255, 255, 255, 255, 255, 253, 249, 246, 233, 250, 248, 235, 252, 250, 237, 255, 255, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 255, 255, 249, 244, 242, 229, 234, 231, 218, 240, 237, 224, 255, 255, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 46, 45, 27, 45, 48, 33, 16, 18, 6, 255, 255, 255, 255, 255, 255, 155, 164, 168, 150, 162, 158, 149, 162, 153, 141, 152, 144, 159, 169, 161, 163, 174, 166, 162, 173, 165, 169, 180, 172, 173, 181, 174, 173, 181, 174, 176, 184, 176, 177, 185, 176, 166, 172, 163, 171, 177, 169, 166, 172, 163, 164, 170, 162, 159, 165, 156, 168, 174, 165, 173, 179, 168, 169, 175, 164, 162, 168, 157, 152, 158, 149, 156, 159, 149, 76, 80, 70, 6, 7, 0, 17, 19, 9, 62, 63, 54, 119, 119, 107, 144, 146, 136, 159, 158, 147, 165, 164, 153, 167, 164, 154, 165, 162, 152, 165, 162, 152, 165, 162, 150, 155, 152, 141, 157, 154, 144, 159, 156, 146, 157, 154, 144, 158, 155, 145, 181, 178, 168, 179, 176, 166, 167, 164, 154, 167, 164, 154, 175, 173, 162, 178, 175, 164, 186, 183, 173, 184, 181, 170, 178, 175, 164, 173, 170, 160, 180, 177, 167, 180, 178, 165, 178, 175, 164, 181, 179, 166, 178, 178, 165, 181, 181, 167, 177, 174, 161, 167, 167, 153, 173, 173, 159, 169, 169, 158, 170, 170, 159, 167, 167, 153, 167, 166, 155, 170, 170, 157, 168, 168, 156, 159, 158, 147, 155, 155, 142, 161, 161, 147, 158, 158, 144, 144, 143, 130, 146, 145, 134, 145, 145, 131, 151, 151, 137, 146, 145, 134, 157, 159, 145, 160, 160, 146, 150, 153, 138, 159, 162, 147, 159, 162, 147, 164, 166, 152, 158, 161, 144, 154, 156, 142, 155, 157, 143, 159, 162, 147, 157, 159, 145, 159, 162, 145, 157, 160, 143, 164, 167, 150, 154, 154, 140, 144, 143, 130, 159, 159, 143, 163, 165, 151, 168, 170, 156, 169, 169, 156, 165, 168, 153, 166, 169, 154, 142, 144, 130, 66, 68, 56, 45, 44, 33, 21, 23, 9, 99, 101, 89, 104, 106, 94, 149, 153, 140, 140, 144, 134, 163, 166, 156, 149, 152, 144, 128, 131, 123, 144, 147, 139, 153, 157, 147, 159, 165, 156, 159, 165, 156, 149, 155, 147, 148, 154, 147, 162, 168, 161, 174, 180, 171, 162, 168, 159, 180, 186, 177, 180, 186, 177, 186, 191, 183, 182, 188, 179, 181, 187, 178, 171, 177, 169, 147, 153, 144, 191, 195, 182, 222, 221, 208, 255, 255, 245, 255, 255, 247, 255, 255, 248, 255, 255, 249, 255, 255, 249, 255, 255, 250, 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 245, 231, 231, 217, 162, 162, 151, 165, 167, 155, 107, 109, 97, 119, 121, 109, 170, 171, 162, 92, 94, 80, 253, 253, 239, 254, 254, 240, 254, 254, 240, 255, 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 248, 233, 245, 243, 228, 243, 241, 226, 255, 255, 255, 255, 255, 255, 18, 18, 2, 18, 18, 4, 210, 210, 194, 255, 255, 255, 255, 255, 255, 255, 255, 251, 252, 250, 237, 254, 251, 238, 255, 255, 243, 255, 255, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 251, 247, 244, 231, 240, 237, 224, 251, 249, 236, 255, 255, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 240, 33, 33, 19, 53, 56, 41, 192, 195, 178, 255, 255, 255, 255, 255, 255, 149, 161, 159, 154, 166, 160, 159, 171, 162, 149, 162, 153, 154, 165, 157, 154, 165, 157, 144, 154, 146, 147, 155, 147, 151, 159, 152, 159, 167, 160, 159, 167, 160, 162, 170, 162, 162, 168, 161, 163, 169, 162, 168, 174, 165, 156, 162, 156, 166, 172, 163, 168, 174, 165, 169, 175, 164, 168, 174, 163, 165, 169, 159, 146, 150, 140, 161, 165, 155, 48, 52, 42, 10, 12, 2, 15, 17, 7, 94, 96, 86, 116, 115, 106, 151, 150, 141, 155, 155, 144, 166, 165, 154, 156, 153, 142, 160, 158, 147, 161, 159, 146, 146, 143, 133, 160, 158, 147, 160, 158, 147, 153, 151, 140, 135, 132, 121, 163, 160, 149, 155, 152, 141, 171, 168, 158, 173, 170, 160, 171, 168, 158, 166, 163, 153, 161, 159, 148, 164, 161, 151, 173, 170, 160, 171, 168, 158, 166, 163, 153, 177, 174, 161, 172, 169, 157, 167, 165, 152, 175, 173, 160, 171, 171, 158, 169, 169, 156, 158, 158, 144, 171, 171, 158, 168, 168, 154, 161, 161, 147, 168, 168, 154, 168, 168, 154, 163, 163, 150, 175, 177, 164, 168, 170, 156, 165, 164, 151, 156, 156, 145, 161, 161, 147, 150, 153, 138, 145, 145, 131, 151, 154, 139, 149, 149, 136, 153, 153, 139, 150, 153, 138, 157, 159, 145, 150, 153, 138, 157, 159, 145, 156, 158, 144, 163, 165, 151, 164, 166, 152, 155, 158, 141, 159, 162, 147, 158, 161, 146, 135, 139, 124, 157, 161, 146, 159, 162, 147, 149, 153, 138, 152, 157, 142, 164, 166, 152, 162, 164, 150, 153, 155, 140, 161, 163, 149, 162, 164, 150, 156, 158, 144, 159, 161, 149, 157, 159, 147, 142, 144, 132, 51, 54, 39, 29, 31, 19, 15, 17, 3, 99, 101, 89, 118, 120, 107, 155, 159, 146, 155, 158, 148, 150, 154, 143, 152, 156, 148, 149, 155, 147, 153, 159, 150, 149, 155, 147, 143, 149, 141, 142, 148, 139, 149, 155, 147, 153, 159, 150, 160, 166, 157, 175, 181, 172, 170, 176, 167, 171, 177, 169, 178, 184, 176, 174, 180, 171, 175, 181, 172, 175, 181, 172, 171, 177, 169, 149, 155, 147, 189, 193, 183, 204, 204, 190, 255, 255, 249, 255, 255, 248, 255, 255, 249, 255, 255, 250, 255, 255, 251, 255, 255, 251, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 249, 240, 240, 228, 188, 187, 176, 155, 157, 145, 152, 151, 140, 165, 167, 155, 133, 133, 119, 255, 255, 246, 255, 255, 242, 255, 255, 245, 255, 255, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 251, 236, 245, 243, 228, 245, 243, 228, 255, 255, 255, 255, 253, 240, 30, 30, 14, 26, 26, 12, 253, 253, 237, 255, 255, 255, 255, 255, 255, 255, 255, 249, 255, 255, 242, 255, 255, 243, 255, 255, 246, 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 247, 249, 246, 233, 243, 241, 228, 255, 255, 244, 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 106, 106, 93, 27, 27, 15, 27, 29, 17, 255, 255, 255, 255, 255, 255, 255, 255, 255, 145, 156, 145, 146, 157, 149, 151, 161, 153, 153, 164, 156, 163, 174, 168, 162, 170, 162, 166, 174, 167, 156, 164, 157, 165, 173, 166, 147, 155, 147, 163, 171, 164, 164, 172, 165, 163, 169, 162, 146, 152, 145, 141, 147, 140, 140, 146, 139, 155, 161, 154, 158, 163, 155, 170, 173, 165, 159, 165, 154, 148, 151, 143, 150, 154, 143, 146, 150, 140, 29, 33, 22, 14, 16, 6, 20, 21, 12, 105, 105, 94, 117, 116, 107, 170, 172, 160, 175, 174, 163, 171, 171, 160, 170, 167, 154, 165, 162, 150, 156, 153, 140, 167, 165, 152, 168, 166, 153, 155, 152, 139, 155, 152, 139, 156, 153, 142, 160, 158, 147, 165, 162, 152, 179, 176, 166, 184, 181, 170, 179, 176, 166, 165, 162, 152, 167, 164, 154, 187, 184, 174, 179, 176, 166, 177, 174, 161, 174, 172, 159, 178, 175, 162, 185, 185, 172, 181, 180, 169, 173, 173, 159, 169, 169, 156, 165, 164, 151, 162, 162, 149, 170, 170, 157, 167, 166, 155, 165, 164, 153, 167, 166, 155, 169, 169, 158, 175, 177, 164, 174, 173, 162, 166, 165, 154, 159, 158, 147, 149, 149, 138, 159, 162, 147, 154, 154, 140, 153, 153, 139, 149, 151, 137, 158, 161, 146, 151, 153, 141, 153, 155, 140, 149, 151, 137, 166, 168, 156, 158, 163, 147, 159, 164, 149, 151, 154, 139, 151, 154, 139, 159, 164, 149, 160, 165, 150, 146, 151, 136, 139, 144, 129, 157, 161, 146, 145, 150, 134, 151, 156, 140, 146, 151, 136, 140, 145, 130, 166, 171, 156, 167, 172, 157, 163, 167, 154, 151, 156, 140, 149, 153, 140, 155, 159, 146, 151, 155, 142, 120, 122, 110, 49, 51, 39, 48, 53, 40, 19, 24, 11, 108, 112, 99, 131, 135, 123, 153, 158, 145, 156, 160, 147, 157, 161, 150, 151, 155, 145, 148, 151, 141, 145, 151, 142, 135, 141, 132, 148, 154, 145, 145, 151, 142, 153, 159, 150, 153, 159, 148, 163, 170, 159, 167, 173, 162, 169, 175, 164, 168, 174, 163, 175, 181, 170, 176, 182, 171, 176, 182, 171, 173, 179, 168, 170, 177, 165, 155, 161, 150, 186, 192, 181, 184, 186, 172, 255, 255, 250, 255, 255, 249, 255, 255, 251, 255, 255, 251, 255, 255, 251, 255, 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 249, 251, 239, 240, 240, 226, 204, 204, 190, 167, 166, 155, 137, 136, 125, 177, 177, 164, 223, 223, 209, 210, 210, 196, 163, 163, 150, 227, 228, 212, 255, 255, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 243, 245, 243, 228, 245, 243, 228, 255, 255, 244, 205, 202, 187, 50, 47, 34, 30, 30, 12, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 249, 255, 255, 244, 255, 255, 246, 255, 255, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 255, 255, 243, 248, 245, 232, 247, 244, 231, 255, 255, 249, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 35, 35, 24, 49, 50, 41, 250, 252, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 155, 166, 158, 157, 167, 159, 160, 171, 162, 167, 175, 168, 158, 166, 159, 144, 155, 144, 134, 142, 132, 165, 173, 166, 147, 155, 147, 158, 163, 157, 143, 151, 144, 135, 143, 136, 122, 130, 123, 131, 136, 130, 134, 140, 131, 125, 131, 122, 132, 136, 128, 148, 151, 143, 149, 152, 144, 152, 156, 146, 149, 153, 142, 136, 143, 132, 132, 136, 126, 59, 63, 52, 0, 0, 0, 72, 74, 64, 123, 125, 113, 145, 144, 133, 171, 173, 161, 174, 173, 162, 181, 179, 166, 174, 172, 159, 164, 161, 151, 169, 164, 154, 175, 173, 162, 170, 165, 153, 170, 167, 156, 178, 175, 164, 174, 171, 161, 180, 178, 165, 184, 181, 168, 185, 182, 171, 188, 185, 175, 177, 174, 163, 174, 171, 161, 186, 183, 173, 191, 188, 177, 182, 182, 168, 175, 173, 160, 170, 167, 156, 171, 171, 158, 180, 178, 165, 178, 175, 162, 178, 178, 165, 173, 173, 159, 169, 169, 158, 165, 164, 153, 174, 173, 162, 162, 162, 151, 166, 165, 154, 176, 176, 164, 171, 171, 160, 183, 183, 171, 167, 166, 155, 160, 159, 148, 155, 155, 144, 176, 176, 162, 168, 168, 154, 164, 166, 152, 155, 155, 142, 165, 164, 151, 165, 168, 153, 155, 157, 143, 168, 170, 156, 157, 161, 146, 157, 159, 145, 161, 163, 149, 166, 171, 156, 150, 154, 139, 145, 150, 134, 156, 160, 147, 163, 167, 152, 152, 156, 144, 164, 166, 154, 159, 164, 149, 157, 161, 146, 159, 164, 149, 157, 161, 146, 160, 165, 150, 164, 168, 153, 158, 162, 149, 159, 163, 151, 152, 156, 144, 144, 148, 135, 141, 143, 131, 154, 156, 144, 129, 131, 119, 16, 18, 6, 38, 40, 28, 27, 29, 17, 102, 104, 92, 142, 144, 132, 158, 162, 149, 171, 175, 162, 159, 163, 151, 153, 157, 147, 163, 170, 159, 162, 168, 157, 148, 155, 143, 163, 170, 159, 159, 165, 154, 161, 167, 156, 171, 178, 167, 170, 177, 165, 171, 178, 167, 173, 179, 168, 177, 184, 172, 168, 174, 163, 166, 172, 161, 169, 175, 164, 164, 171, 160, 167, 173, 162, 171, 175, 164, 186, 190, 179, 178, 180, 166, 255, 255, 248, 255, 255, 250, 255, 255, 251, 255, 255, 252, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 249, 249, 236, 250, 248, 235, 198, 198, 187, 163, 163, 150, 171, 173, 161, 175, 174, 163, 148, 148, 136, 174, 173, 162, 139, 139, 125, 148, 148, 134, 255, 255, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 242, 238, 223, 244, 242, 227, 255, 255, 240, 26, 24, 9, 26, 26, 12, 204, 205, 186, 255, 255, 255, 255, 255, 255, 255, 255, 253, 255, 255, 245, 255, 255, 246, 255, 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 255, 255, 244, 250, 248, 235, 250, 248, 235, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 53, 53, 39, 30, 31, 24, 43, 46, 27, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 160, 173, 162, 154, 167, 156, 159, 169, 161, 163, 174, 166, 159, 170, 159, 144, 153, 143, 152, 161, 151, 144, 152, 145, 133, 141, 133, 149, 157, 148, 149, 157, 150, 143, 151, 144, 140, 146, 139, 127, 133, 126, 133, 139, 132, 131, 134, 129, 136, 139, 131, 147, 148, 141, 160, 164, 156, 155, 156, 147, 155, 156, 147, 168, 173, 160, 130, 134, 121, 44, 46, 36, 9, 8, 0, 68, 67, 58, 113, 113, 102, 156, 156, 145, 162, 162, 151, 181, 179, 166, 168, 166, 153, 179, 176, 166, 175, 169, 160, 174, 168, 159, 175, 169, 160, 177, 172, 160, 184, 179, 167, 173, 171, 158, 187, 185, 172, 193, 191, 178, 193, 191, 178, 192, 189, 179, 178, 175, 164, 184, 181, 170, 180, 177, 167, 180, 177, 167, 192, 189, 179, 153, 152, 141, 168, 166, 155, 168, 168, 156, 169, 169, 156, 173, 173, 159, 177, 174, 163, 176, 176, 162, 173, 172, 161, 174, 173, 162, 169, 169, 156, 165, 164, 151, 168, 168, 156, 175, 174, 163, 177, 177, 166, 184, 184, 173, 188, 187, 176, 167, 166, 155, 159, 158, 147, 156, 156, 145, 165, 164, 153, 165, 164, 151, 154, 156, 142, 159, 159, 145, 163, 163, 150, 169, 169, 156, 164, 166, 152, 169, 171, 157, 170, 174, 159, 171, 173, 159, 171, 175, 160, 158, 163, 147, 157, 161, 146, 156, 158, 144, 159, 161, 149, 162, 164, 152, 151, 155, 142, 165, 169, 156, 165, 170, 154, 152, 157, 142, 155, 159, 146, 152, 157, 142, 163, 167, 152, 166, 170, 158, 159, 163, 151, 156, 160, 147, 148, 152, 139, 142, 146, 133, 143, 145, 133, 134, 136, 124, 63, 65, 53, 36, 38, 26, 24, 26, 14, 60, 64, 52, 113, 117, 104, 174, 178, 166, 160, 164, 152, 161, 166, 153, 161, 168, 154, 158, 164, 151, 156, 163, 152, 163, 170, 159, 168, 174, 163, 170, 177, 165, 173, 179, 168, 173, 179, 168, 180, 186, 175, 168, 174, 163, 167, 173, 162, 168, 174, 163, 161, 167, 156, 158, 164, 153, 162, 169, 155, 158, 164, 151, 164, 171, 158, 164, 171, 158, 163, 167, 154, 157, 161, 148, 159, 159, 145, 255, 255, 251, 255, 255, 251, 255, 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 242, 248, 248, 235, 238, 238, 224, 220, 220, 207, 106, 106, 93, 170, 170, 159, 161, 161, 149, 156, 158, 146, 175, 174, 163, 128, 128, 117, 152, 152, 138, 255, 255, 255, 255, 255, 255, 255, 255, 252, 235, 233, 218, 241, 238, 223, 221, 219, 203, 23, 21, 6, 25, 23, 8, 255, 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 249, 255, 255, 249, 255, 255, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 249, 255, 255, 243, 255, 252, 239, 255, 255, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 220, 220, 207, 51, 54, 39, 41, 40, 32, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 163, 176, 165, 168, 181, 170, 174, 184, 176, 169, 180, 170, 165, 176, 165, 162, 170, 160, 164, 172, 165, 170, 173, 167, 157, 160, 154, 153, 156, 151, 163, 166, 160, 164, 167, 161, 161, 161, 157, 150, 151, 144, 150, 151, 144, 142, 141, 133, 140, 139, 130, 134, 130, 122, 132, 129, 121, 127, 124, 113, 121, 118, 107, 118, 115, 107, 121, 118, 107, 118, 115, 107, 163, 156, 149, 155, 149, 142, 171, 166, 159, 185, 182, 174, 185, 182, 174, 199, 195, 188, 202, 196, 189, 202, 199, 191, 201, 198, 190, 201, 198, 190, 201, 198, 190, 202, 195, 191, 196, 193, 187, 195, 191, 188, 193, 189, 186, 191, 187, 183, 198, 194, 190, 191, 190, 186, 196, 192, 189, 190, 189, 183, 198, 197, 191, 192, 191, 185, 196, 195, 188, 194, 192, 186, 195, 192, 186, 196, 193, 185, 194, 193, 184, 196, 193, 185, 195, 194, 185, 205, 201, 193, 184, 183, 175, 183, 182, 174, 171, 171, 162, 174, 173, 164, 165, 164, 155, 156, 156, 145, 147, 146, 137, 135, 135, 126, 137, 134, 124, 134, 134, 123, 127, 127, 116, 128, 128, 117, 140, 140, 128, 145, 144, 133, 151, 151, 137, 167, 167, 153, 173, 173, 159, 162, 162, 149, 165, 168, 153, 178, 180, 166, 165, 170, 154, 176, 178, 164, 171, 175, 160, 171, 175, 160, 169, 171, 157, 168, 170, 156, 168, 170, 156, 165, 170, 154, 173, 177, 164, 164, 168, 153, 168, 173, 158, 151, 155, 142, 157, 161, 148, 160, 164, 152, 173, 177, 164, 153, 158, 145, 150, 154, 141, 143, 147, 134, 136, 140, 127, 130, 134, 121, 142, 146, 133, 125, 130, 117, 16, 18, 6, 24, 28, 15, 22, 26, 13, 99, 103, 90, 156, 160, 147, 157, 161, 148, 159, 165, 152, 162, 169, 155, 158, 164, 151, 164, 171, 158, 162, 169, 155, 164, 171, 158, 178, 185, 171, 171, 178, 167, 168, 174, 163, 167, 177, 162, 164, 171, 158, 166, 172, 159, 153, 160, 146, 148, 155, 141, 146, 153, 139, 151, 157, 144, 158, 162, 149, 152, 158, 145, 157, 161, 146, 149, 153, 138, 166, 171, 156, 133, 135, 121, 174, 174, 160, 255, 255, 254, 255, 255, 254, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 248, 248, 235, 245, 244, 233, 212, 212, 199, 146, 146, 132, 128, 128, 117, 116, 115, 104, 120, 120, 109, 100, 100, 89, 99, 96, 83, 200, 197, 185, 255, 255, 252, 255, 255, 252, 255, 255, 242, 232, 227, 213, 246, 242, 225, 83, 81, 66, 45, 43, 28, 123, 121, 104, 255, 255, 255, 255, 255, 255, 255, 255, 253, 255, 255, 250, 255, 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 247, 255, 255, 243, 255, 252, 239, 255, 255, 251, 255, 255, 255, 255, 255, 255, 241, 241, 228, 38, 41, 26, 26, 28, 15, 154, 155, 146, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 178, 187, 175, 187, 196, 186, 170, 176, 167, 176, 182, 173, 183, 189, 180, 187, 191, 183, 170, 171, 164, 141, 140, 134, 144, 142, 136, 127, 123, 115, 143, 139, 134, 160, 157, 151, 188, 185, 179, 192, 188, 183, 209, 206, 198, 215, 212, 202, 212, 207, 197, 219, 214, 204, 214, 209, 199, 218, 213, 201, 219, 214, 202, 217, 212, 200, 220, 215, 203, 217, 209, 201, 209, 201, 192, 210, 202, 194, 205, 198, 187, 202, 197, 185, 198, 193, 181, 192, 187, 175, 205, 200, 188, 205, 200, 188, 197, 192, 180, 191, 186, 174, 184, 179, 169, 183, 178, 168, 181, 176, 164, 186, 181, 169, 179, 174, 162, 181, 176, 164, 184, 179, 165, 181, 176, 164, 185, 181, 166, 184, 181, 168, 180, 178, 165, 182, 180, 167, 186, 183, 173, 181, 179, 166, 182, 180, 167, 180, 178, 165, 180, 178, 165, 177, 174, 161, 180, 178, 165, 182, 180, 167, 182, 180, 167, 186, 183, 171, 182, 180, 169, 185, 182, 169, 190, 187, 174, 190, 187, 174, 190, 187, 174, 194, 192, 179, 192, 189, 177, 193, 191, 178, 195, 193, 180, 202, 200, 187, 198, 195, 182, 196, 194, 181, 196, 194, 183, 206, 203, 192, 208, 205, 195, 210, 207, 199, 203, 202, 193, 204, 205, 198, 191, 192, 185, 177, 178, 171, 165, 164, 155, 146, 145, 136, 131, 130, 121, 124, 123, 112, 125, 125, 113, 130, 132, 120, 162, 164, 150, 156, 160, 147, 164, 168, 155, 164, 168, 153, 171, 175, 162, 165, 169, 156, 173, 177, 164, 157, 161, 148, 153, 158, 145, 145, 149, 136, 146, 150, 138, 150, 154, 141, 144, 148, 135, 51, 55, 42, 29, 31, 19, 14, 18, 5, 67, 71, 59, 120, 124, 111, 164, 168, 155, 157, 161, 148, 146, 153, 139, 160, 167, 153, 164, 171, 158, 174, 180, 167, 174, 180, 167, 167, 173, 160, 174, 180, 167, 167, 173, 160, 154, 161, 145, 153, 160, 144, 153, 158, 143, 152, 157, 142, 156, 160, 145, 152, 157, 142, 145, 150, 134, 157, 159, 145, 162, 164, 150, 164, 167, 150, 168, 170, 156, 158, 161, 144, 167, 167, 151, 165, 165, 149, 255, 255, 249, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 252, 238, 247, 247, 233, 241, 241, 230, 185, 185, 172, 108, 105, 93, 126, 126, 114, 165, 164, 153, 160, 159, 148, 130, 127, 117, 243, 241, 228, 255, 255, 250, 255, 255, 248, 240, 235, 221, 222, 218, 203, 212, 209, 194, 36, 34, 18, 35, 33, 17, 255, 255, 247, 255, 255, 255, 255, 255, 254, 255, 255, 252, 255, 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 255, 255, 247, 255, 255, 244, 255, 252, 239, 255, 255, 255, 255, 255, 255, 255, 255, 255, 52, 55, 40, 56, 56, 45, 28, 28, 17, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 142, 144, 132, 149, 148, 140, 158, 157, 148, 183, 182, 174, 212, 208, 200, 229, 226, 218, 227, 222, 212, 247, 242, 232, 249, 246, 233, 255, 252, 239, 255, 255, 245, 255, 255, 245, 255, 250, 238, 255, 251, 239, 249, 244, 232, 247, 242, 230, 243, 238, 226, 241, 236, 224, 240, 235, 223, 241, 236, 224, 240, 235, 223, 247, 242, 230, 252, 245, 233, 245, 238, 226, 253, 246, 235, 245, 240, 228, 220, 216, 201, 196, 191, 179, 188, 183, 171, 153, 148, 134, 129, 124, 112, 113, 108, 96, 91, 88, 77, 83, 77, 68, 120, 114, 107, 80, 75, 65, 75, 69, 62, 76, 70, 63, 77, 71, 64, 72, 67, 57, 79, 74, 62, 67, 64, 54, 72, 69, 59, 78, 78, 67, 67, 64, 54, 61, 61, 47, 66, 65, 54, 73, 70, 60, 71, 68, 55, 63, 60, 47, 86, 83, 70, 86, 84, 68, 111, 109, 96, 109, 107, 92, 135, 133, 117, 143, 141, 124, 159, 157, 142, 172, 170, 155, 178, 176, 159, 193, 191, 176, 190, 188, 170, 205, 203, 185, 214, 212, 195, 207, 205, 188, 209, 207, 190, 203, 202, 184, 203, 201, 186, 198, 195, 180, 209, 204, 190, 207, 203, 188, 209, 204, 192, 210, 205, 191, 214, 209, 197, 211, 206, 194, 217, 212, 200, 217, 212, 200, 214, 209, 197, 221, 216, 204, 219, 216, 203, 223, 221, 208, 210, 208, 195, 216, 213, 203, 220, 220, 209, 211, 211, 199, 216, 215, 206, 217, 216, 207, 208, 207, 198, 187, 189, 179, 175, 176, 167, 149, 151, 141, 118, 119, 110, 114, 116, 104, 111, 113, 100, 114, 118, 105, 109, 111, 99, 47, 49, 34, 37, 39, 27, 30, 32, 20, 110, 114, 102, 153, 160, 146, 160, 164, 152, 162, 169, 155, 158, 164, 151, 180, 186, 173, 170, 177, 163, 174, 180, 167, 167, 173, 160, 154, 161, 145, 158, 165, 149, 154, 161, 145, 158, 163, 147, 171, 173, 159, 171, 174, 157, 163, 164, 148, 159, 159, 143, 153, 154, 135, 153, 153, 137, 149, 150, 132, 149, 150, 134, 180, 178, 163, 192, 193, 177, 222, 222, 206, 241, 242, 226, 251, 251, 235, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 253, 239, 241, 241, 228, 230, 230, 216, 99, 99, 88, 156, 156, 145, 158, 157, 146, 166, 165, 156, 172, 169, 159, 255, 255, 244, 255, 255, 245, 255, 255, 245, 214, 212, 197, 207, 203, 188, 18, 16, 1, 53, 51, 36, 124, 122, 107, 255, 255, 255, 255, 255, 254, 255, 255, 249, 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 251, 255, 255, 245, 255, 255, 242, 255, 255, 249, 255, 255, 255, 255, 255, 255, 174, 172, 159, 105, 106, 99, 40, 37, 31, 242, 244, 232, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 241, 238, 223, 242, 240, 224, 242, 239, 226, 245, 243, 230, 250, 248, 235, 255, 255, 247, 255, 255, 255, 255, 255, 251, 255, 255, 255, 222, 220, 207, 162, 157, 145, 70, 65, 53, 56, 51, 39, 56, 51, 39, 80, 75, 64, 110, 105, 93, 126, 121, 109, 129, 124, 112, 135, 130, 118, 122, 117, 105, 134, 129, 117, 134, 129, 117, 127, 120, 109, 126, 121, 109, 130, 126, 114, 120, 113, 102, 120, 115, 103, 118, 113, 101, 111, 106, 94, 112, 107, 95, 98, 93, 81, 113, 108, 96, 104, 102, 91, 108, 103, 96, 106, 100, 93, 105, 99, 92, 94, 89, 82, 98, 92, 85, 93, 88, 80, 91, 85, 78, 74, 71, 63, 83, 80, 72, 82, 79, 71, 77, 76, 68, 92, 92, 83, 89, 88, 79, 85, 85, 76, 88, 87, 78, 97, 95, 84, 89, 88, 79, 99, 96, 85, 94, 91, 81, 89, 86, 76, 82, 81, 70, 92, 92, 79, 77, 77, 65, 82, 81, 70, 78, 78, 67, 94, 91, 81, 91, 88, 77, 92, 89, 78, 92, 89, 78, 94, 92, 79, 99, 96, 85, 97, 95, 84, 91, 88, 77, 103, 100, 90, 104, 102, 91, 91, 88, 77, 91, 85, 78, 94, 89, 82, 79, 74, 66, 72, 67, 57, 62, 62, 48, 86, 83, 70, 122, 119, 107, 150, 148, 132, 196, 194, 179, 228, 226, 211, 245, 241, 224, 247, 245, 227, 254, 250, 233, 248, 245, 230, 243, 239, 224, 237, 235, 220, 233, 230, 215, 235, 230, 218, 227, 224, 211, 228, 226, 211, 229, 227, 214, 230, 228, 215, 235, 232, 220, 233, 230, 217, 233, 230, 217, 225, 223, 210, 227, 224, 211, 223, 221, 208, 220, 217, 206, 210, 209, 198, 202, 201, 190, 184, 186, 174, 157, 161, 148, 136, 140, 127, 120, 124, 111, 117, 121, 109, 124, 129, 114, 142, 146, 131, 148, 152, 137, 161, 163, 147, 169, 171, 155, 188, 189, 170, 213, 214, 196, 244, 244, 226, 255, 255, 239, 255, 255, 245, 255, 255, 250, 255, 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 243, 242, 239, 226, 239, 238, 227, 214, 211, 199, 147, 145, 134, 94, 91, 81, 145, 143, 130, 255, 255, 247, 255, 255, 247, 252, 250, 235, 222, 220, 207, 42, 40, 24, 56, 54, 38, 52, 50, 35, 255, 255, 255, 255, 255, 255, 255, 255, 250, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 255, 255, 250, 255, 255, 245, 255, 255, 245, 255, 255, 255, 255, 255, 255, 255, 255, 253, 53, 52, 41, 63, 65, 53, 107, 105, 88, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 161, 163, 151, 89, 88, 77, 52, 49, 39, 50, 47, 39, 106, 103, 92, 114, 111, 100, 149, 146, 135, 147, 141, 132, 149, 144, 134, 136, 131, 119, 136, 131, 119, 151, 146, 134, 143, 138, 126, 142, 137, 125, 136, 131, 119, 142, 137, 125, 137, 132, 121, 141, 136, 124, 134, 129, 117, 144, 139, 128, 154, 149, 137, 127, 120, 109, 120, 115, 103, 130, 123, 111, 119, 112, 101, 121, 116, 104, 119, 114, 102, 121, 117, 102, 113, 108, 96, 113, 108, 96, 106, 101, 89, 107, 102, 92, 112, 106, 99, 98, 92, 85, 107, 102, 94, 110, 107, 99, 106, 100, 93, 105, 99, 92, 106, 100, 93, 106, 100, 93, 103, 97, 90, 97, 94, 86, 92, 88, 80, 102, 99, 91, 100, 96, 91, 91, 87, 81, 92, 91, 85, 89, 88, 81, 92, 92, 83, 91, 90, 82, 82, 81, 70, 95, 94, 83, 84, 84, 72, 85, 85, 74, 92, 92, 81, 96, 95, 84, 88, 88, 74, 84, 84, 70, 90, 90, 78, 84, 84, 70, 87, 87, 73, 81, 81, 67, 83, 81, 68, 88, 86, 73, 77, 74, 61, 94, 92, 79, 88, 86, 73, 93, 88, 76, 99, 96, 83, 93, 88, 76, 99, 94, 82, 91, 86, 74, 102, 100, 87, 103, 101, 88, 102, 100, 87, 114, 111, 98, 107, 104, 92, 115, 112, 100, 135, 132, 119, 132, 130, 117, 123, 121, 108, 121, 118, 105, 118, 116, 103, 106, 103, 90, 89, 87, 74, 67, 65, 52, 68, 66, 53, 79, 76, 64, 153, 151, 136, 214, 212, 197, 250, 248, 233, 251, 249, 234, 255, 255, 242, 255, 255, 243, 252, 250, 237, 249, 247, 231, 245, 243, 230, 242, 242, 229, 238, 238, 224, 234, 234, 221, 236, 235, 222, 236, 239, 224, 237, 237, 223, 234, 234, 221, 233, 233, 220, 229, 232, 217, 227, 229, 215, 222, 224, 212, 220, 222, 210, 212, 211, 203, 183, 183, 171, 168, 167, 159, 162, 162, 151, 174, 174, 160, 208, 207, 194, 240, 242, 228, 255, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 251, 240, 242, 239, 228, 237, 235, 222, 135, 132, 121, 99, 96, 85, 115, 112, 100, 255, 255, 242, 255, 255, 247, 225, 223, 208, 82, 80, 67, 65, 63, 48, 51, 49, 34, 245, 244, 226, 255, 255, 255, 255, 255, 249, 255, 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 255, 255, 247, 255, 255, 246, 255, 255, 252, 255, 255, 255, 255, 255, 255, 141, 141, 128, 19, 24, 18, 69, 69, 55, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 135, 136, 120, 149, 150, 134, 153, 151, 138, 151, 148, 136, 136, 133, 121, 144, 141, 129, 149, 146, 133, 146, 144, 131, 150, 147, 134, 147, 142, 130, 148, 143, 131, 156, 151, 139, 154, 149, 137, 144, 139, 128, 147, 142, 130, 141, 136, 124, 149, 144, 134, 146, 140, 131, 141, 136, 124, 133, 128, 118, 137, 132, 123, 132, 126, 117, 96, 90, 81, 89, 86, 76, 76, 70, 61, 69, 64, 52, 91, 86, 76, 113, 108, 96, 61, 55, 46, 72, 67, 57, 63, 58, 48, 65, 60, 50, 81, 78, 70, 79, 74, 66, 60, 54, 45, 70, 64, 57, 66, 61, 54, 53, 47, 40, 85, 80, 70, 68, 62, 53, 72, 67, 57, 71, 68, 57, 79, 76, 65, 77, 74, 63, 70, 69, 61, 64, 64, 55, 61, 60, 51, 61, 60, 53, 63, 62, 54, 48, 47, 39, 73, 72, 63, 62, 62, 50, 74, 73, 62, 77, 77, 65, 69, 69, 57, 54, 53, 42, 68, 67, 56, 69, 69, 55, 64, 64, 53, 68, 66, 53, 77, 74, 63, 80, 77, 67, 74, 71, 61, 80, 77, 67, 86, 83, 72, 89, 86, 76, 92, 89, 78, 93, 90, 80, 105, 100, 86, 90, 85, 71, 94, 92, 77, 94, 90, 76, 112, 107, 95, 101, 98, 86, 103, 101, 88, 101, 98, 86, 104, 102, 89, 104, 102, 89, 99, 96, 83, 110, 108, 95, 112, 107, 95, 111, 106, 94, 116, 114, 101, 124, 119, 107, 118, 116, 103, 122, 119, 107, 130, 128, 115, 123, 121, 108, 114, 111, 98, 123, 121, 108, 118, 116, 103, 124, 122, 107, 127, 124, 111, 113, 110, 97, 93, 90, 78, 77, 74, 61, 86, 83, 70, 83, 83, 69, 98, 98, 84, 151, 151, 137, 210, 210, 196, 240, 240, 226, 255, 255, 242, 255, 255, 243, 255, 255, 242, 255, 255, 240, 245, 245, 231, 242, 242, 229, 244, 244, 230, 245, 245, 231, 242, 242, 229, 241, 241, 228, 236, 235, 222, 237, 237, 223, 239, 239, 225, 234, 234, 221, 234, 234, 223, 234, 234, 223, 223, 222, 211, 211, 210, 201, 197, 196, 190, 177, 178, 169, 166, 168, 159, 166, 168, 159, 179, 181, 171, 213, 215, 205, 237, 239, 229, 253, 254, 247, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 244, 251, 249, 236, 225, 223, 212, 168, 166, 153, 215, 213, 200, 255, 255, 245, 252, 250, 237, 123, 121, 108, 57, 54, 41, 36, 33, 20, 191, 189, 173, 255, 255, 255, 255, 255, 249, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 251, 255, 255, 247, 255, 255, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255, 23, 22, 9, 42, 41, 33, 222, 225, 210, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 158, 158, 142, 158, 156, 143, 150, 147, 134, 149, 146, 133, 166, 163, 153, 158, 155, 145, 134, 131, 120, 126, 121, 111, 124, 118, 109, 165, 160, 151, 193, 189, 177, 255, 255, 255, 255, 255, 255, 114, 109, 99, 135, 130, 120, 97, 91, 82, 129, 126, 116, 78, 73, 63, 80, 75, 65, 94, 91, 81, 96, 90, 81, 79, 74, 64, 93, 88, 78, 93, 88, 78, 77, 72, 62, 57, 54, 43, 68, 62, 53, 83, 81, 70, 89, 83, 74, 74, 68, 59, 84, 79, 69, 93, 88, 78, 98, 92, 85, 77, 71, 64, 86, 81, 71, 65, 60, 52, 87, 82, 72, 121, 116, 106, 75, 72, 64, 73, 70, 62, 82, 79, 69, 61, 60, 51, 61, 60, 49, 71, 71, 62, 63, 62, 54, 80, 79, 70, 60, 59, 50, 71, 71, 62, 131, 130, 121, 69, 68, 60, 83, 82, 73, 62, 62, 50, 59, 58, 47, 92, 92, 81, 84, 84, 70, 57, 57, 44, 57, 57, 44, 77, 77, 64, 70, 70, 57, 68, 68, 54, 67, 65, 52, 56, 53, 40, 75, 73, 60, 53, 51, 38, 63, 60, 47, 72, 69, 57, 67, 65, 52, 68, 63, 51, 71, 66, 54, 75, 73, 60, 78, 75, 62, 74, 72, 59, 83, 81, 68, 75, 73, 58, 78, 79, 63, 75, 75, 61, 84, 84, 70, 85, 85, 72, 82, 80, 65, 109, 107, 92, 117, 115, 102, 120, 117, 104, 118, 116, 103, 120, 117, 104, 125, 120, 108, 117, 115, 102, 120, 117, 104, 132, 130, 117, 121, 118, 105, 128, 123, 111, 129, 127, 112, 117, 115, 100, 113, 110, 97, 124, 122, 107, 136, 134, 119, 121, 119, 103, 121, 118, 105, 130, 128, 115, 116, 116, 102, 124, 124, 110, 121, 121, 108, 123, 123, 109, 126, 126, 112, 119, 119, 105, 130, 129, 116, 133, 133, 119, 99, 99, 86, 78, 78, 65, 63, 63, 50, 60, 60, 46, 92, 93, 75, 153, 154, 135, 204, 205, 186, 240, 241, 223, 252, 253, 234, 253, 253, 237, 255, 255, 241, 254, 254, 242, 254, 254, 240, 247, 247, 235, 246, 245, 234, 249, 249, 238, 244, 246, 234, 249, 249, 238, 248, 248, 237, 248, 248, 237, 247, 247, 235, 238, 237, 228, 240, 239, 231, 239, 238, 229, 232, 231, 223, 234, 234, 225, 230, 232, 223, 215, 217, 207, 211, 212, 205, 200, 201, 194, 187, 186, 177, 178, 178, 169, 167, 166, 157, 173, 172, 163, 170, 169, 163, 168, 167, 159, 186, 188, 178, 202, 204, 192, 218, 220, 207, 235, 237, 225, 248, 249, 240, 255, 255, 252, 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 253, 255, 255, 246, 255, 255, 249, 255, 255, 254, 255, 255, 245, 151, 148, 136, 68, 68, 54, 49, 46, 33, 215, 213, 200, 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 255, 255, 253, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 80, 78, 65, 32, 30, 17, 46, 40, 31, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 85, 85, 76, 91, 90, 82, 95, 94, 85, 91, 90, 82, 109, 106, 98, 107, 104, 94, 108, 105, 95, 104, 102, 91, 122, 119, 109, 132, 126, 117, 191, 186, 174, 255, 255, 255, 206, 201, 191, 137, 132, 123, 108, 103, 94, 108, 103, 94, 126, 121, 111, 119, 114, 104, 92, 87, 77, 97, 91, 82, 109, 106, 96, 108, 103, 94, 122, 117, 107, 157, 152, 142, 175, 169, 160, 203, 197, 188, 122, 117, 107, 174, 168, 159, 208, 205, 195, 205, 201, 193, 213, 210, 199, 213, 209, 201, 215, 212, 204, 225, 222, 216, 228, 224, 219, 225, 223, 222, 227, 226, 222, 232, 230, 228, 232, 230, 226, 232, 230, 228, 232, 230, 228, 236, 234, 232, 233, 231, 230, 233, 232, 228, 233, 232, 228, 234, 235, 230, 229, 230, 225, 227, 228, 223, 225, 225, 221, 228, 229, 224, 229, 231, 223, 145, 147, 135, 45, 47, 37, 121, 123, 111, 106, 108, 96, 113, 115, 103, 89, 89, 75, 66, 65, 52, 105, 105, 92, 68, 68, 54, 83, 83, 69, 82, 82, 68, 70, 70, 57, 114, 111, 98, 78, 75, 62, 85, 82, 69, 101, 98, 86, 83, 81, 70, 77, 74, 61, 93, 90, 78, 107, 104, 92, 75, 73, 60, 94, 92, 79, 85, 82, 69, 92, 92, 79, 95, 93, 78, 73, 71, 58, 87, 85, 72, 88, 86, 73, 75, 75, 61, 99, 96, 83, 83, 81, 68, 85, 82, 69, 101, 98, 86, 89, 87, 74, 107, 104, 94, 99, 96, 85, 109, 106, 96, 125, 123, 112, 134, 131, 120, 146, 144, 131, 150, 148, 132, 155, 152, 139, 158, 156, 143, 146, 144, 131, 122, 119, 107, 121, 121, 108, 119, 119, 105, 110, 110, 96, 120, 120, 107, 125, 123, 110, 130, 127, 117, 123, 122, 111, 124, 123, 112, 131, 131, 117, 128, 125, 112, 134, 134, 121, 130, 129, 116, 132, 130, 117, 135, 135, 122, 138, 137, 126, 135, 135, 124, 140, 140, 128, 144, 143, 132, 130, 127, 117, 124, 124, 110, 94, 93, 82, 90, 90, 78, 59, 58, 47, 42, 42, 31, 50, 50, 39, 88, 87, 76, 146, 146, 130, 195, 195, 181, 222, 221, 208, 247, 247, 231, 240, 240, 224, 253, 253, 239, 255, 255, 244, 255, 255, 245, 251, 250, 239, 249, 249, 238, 249, 249, 238, 244, 243, 232, 244, 243, 232, 241, 241, 230, 240, 240, 228, 238, 237, 226, 236, 235, 224, 238, 238, 224, 236, 233, 223, 234, 234, 223, 229, 228, 217, 226, 226, 215, 227, 227, 218, 229, 228, 219, 227, 227, 218, 224, 223, 216, 224, 221, 215, 227, 223, 218, 230, 227, 221, 227, 226, 220, 225, 222, 216, 220, 219, 215, 220, 216, 210, 209, 207, 203, 208, 206, 202, 203, 201, 197, 205, 204, 200, 185, 184, 180, 187, 185, 181, 180, 178, 172, 169, 168, 162, 169, 168, 162, 160, 159, 150, 168, 167, 159, 155, 156, 147, 148, 149, 142, 145, 147, 139, 150, 151, 144, 153, 152, 145, 145, 147, 139, 145, 143, 137, 148, 149, 142, 140, 141, 134, 140, 141, 134, 135, 136, 129, 141, 140, 134, 144, 142, 136, 138, 136, 130, 144, 142, 136, 146, 145, 138, 142, 141, 135, 136, 137, 130, 134, 135, 128, 140, 141, 134, 141, 142, 135, 134, 135, 128, 130, 132, 124, 130, 132, 124, 131, 132, 128, 134, 135, 128, 134, 135, 130, 138, 136, 130, 133, 131, 128, 131, 129, 125, 126, 125, 119, 125, 124, 117, 127, 126, 120, 130, 129, 120, 131, 128, 120, 125, 122, 114, 125, 123, 112, 129, 126, 116, 127, 124, 113, 129, 126, 116, 123, 120, 110, 118, 116, 105, 115, 110, 100, 128, 123, 113, 126, 121, 111, 131, 128, 118, 153, 147, 138, 150, 145, 135, 150, 145, 137, 159, 153, 146, 167, 161, 154, 165, 161, 156, 177, 173, 165, 179, 176, 168, 182, 179, 171, 190, 186, 178, 186, 183, 173, 198, 198, 187, 102, 99, 91, 92, 88, 80, 131, 128, 118, 116, 113, 103, 93, 90, 80, 102, 99, 89, 96, 93, 83, 97, 91, 82, 105, 100, 90, 125, 119, 110, 179, 174, 164, 175, 173, 162, 191, 186, 176, 205, 200, 190, 205, 200, 190, 216, 213, 203, 215, 212, 202, 220, 215, 205, 221, 218, 207, 224, 221, 211, 221, 218, 207, 227, 224, 213, 229, 224, 215, 231, 225, 216, 223, 220, 210, 233, 230, 219, 58, 55, 45, 237, 234, 224, 233, 230, 219, 234, 231, 220, 235, 232, 224, 235, 232, 222, 231, 230, 221, 237, 236, 227, 233, 232, 224, 234, 230, 224, 232, 231, 223, 230, 228, 222, 230, 228, 222, 234, 234, 225, 232, 231, 224, 229, 231, 223, 231, 230, 223, 230, 229, 220, 230, 228, 222, 228, 229, 222, 230, 229, 220, 228, 229, 222, 228, 229, 222, 230, 232, 223, 229, 231, 221, 115, 118, 103, 223, 222, 211, 228, 230, 218, 229, 228, 217, 227, 227, 216, 226, 226, 215, 224, 223, 212, 226, 226, 215, 231, 230, 219, 226, 226, 215, 233, 230, 219, 227, 227, 216, 227, 227, 216, 227, 226, 220, 231, 230, 223, 233, 232, 226, 233, 232, 228, 236, 234, 228, 232, 230, 226, 229, 227, 223, 217, 215, 211, 222, 220, 216, 212, 211, 205, 194, 192, 186, 181, 180, 173, 177, 176, 172, 160, 159, 150, 167, 166, 155, 130, 130, 114, 130, 129, 118, 132, 131, 120, 112, 112, 100, 113, 112, 104, 108, 107, 96, 97, 94, 86, 94, 93, 84, 95, 94, 85, 106, 105, 97, 100, 100, 91, 106, 105, 97, 130, 129, 118, 119, 119, 107, 142, 142, 131, 147, 147, 135, 134, 134, 123, 127, 127, 116, 145, 144, 133, 139, 138, 127, 147, 147, 135, 140, 140, 128, 123, 122, 113, 119, 119, 107, 124, 123, 112, 128, 128, 115, 132, 130, 117, 136, 133, 121, 138, 138, 124, 136, 133, 121, 145, 145, 131, 139, 139, 125, 141, 141, 128, 153, 153, 139, 147, 147, 133, 144, 143, 130, 141, 141, 128, 138, 137, 126, 142, 139, 128, 144, 143, 130, 145, 144, 133, 148, 148, 136, 149, 149, 138, 148, 148, 136, 151, 150, 139, 142, 142, 131, 138, 137, 126, 151, 150, 141, 156, 156, 145, 133, 133, 121, 126, 125, 117, 94, 93, 84, 77, 77, 65, 67, 66, 57, 56, 56, 45, 59, 58, 47, 50, 47, 36, 52, 49, 39, 87, 84, 74, 110, 107, 97, 152, 150, 137, 186, 183, 173, 215, 215, 199, 231, 231, 217, 233, 233, 218, 234, 231, 218, 238, 236, 223, 244, 244, 230, 245, 243, 230, 244, 241, 231, 247, 244, 233, 247, 244, 233, 244, 241, 231, 243, 240, 230, 241, 241, 230, 240, 240, 228, 236, 235, 224, 234, 234, 223, 236, 235, 224, 239, 238, 227, 236, 235, 224, 232, 232, 220, 236, 235, 224, 233, 233, 222, 230, 229, 218, 226, 226, 215, 226, 226, 215, 224, 223, 214, 222, 224, 212, 224, 223, 214, 224, 223, 214, 223, 222, 213, 222, 221, 212, 223, 222, 213, 222, 219, 211, 223, 220, 212, 221, 218, 210, 227, 223, 216, 227, 223, 216, 227, 223, 216, 228, 225, 217, 222, 218, 213, 228, 225, 217, 229, 226, 218, 224, 223, 216, 222, 220, 214, 227, 223, 216, 227, 227, 218, 226, 225, 219, 227, 227, 218, 225, 224, 216, 222, 221, 212, 224, 223, 214, 227, 226, 220, 230, 228, 222, 229, 227, 221, 227, 226, 220, 225, 224, 218, 234, 230, 223, 236, 232, 227, 235, 231, 226, 234, 230, 223, 236, 233, 225, 238, 235, 227, 240, 236, 228, 238, 235, 225, 233, 230, 219, 236, 233, 223, 238, 235, 225, 245, 239, 230, 246, 240, 231, 247, 242, 232, 245, 239, 230, 243, 238, 228, 248, 243, 233, 250, 245, 238, 252, 246, 239, 247, 241, 234, 254, 248, 241, 253, 247, 240, 254, 249, 239, 250, 245, 235, 255, 251, 241, 255, 251, 241, 255, 251, 241, 181, 180, 169, 201, 200, 189, 239, 238, 227, 135, 132, 121, 192, 192, 181, 203, 201, 190, 208, 205, 195, 209, 206, 196, 210, 208, 197, 219, 216, 205, 220, 217, 206, 227, 224, 213, 225, 223, 212, 217, 211, 202, 228, 225, 215, 234, 231, 220, 234, 229, 219, 233, 230, 219, 235, 232, 222, 239, 233, 224, 239, 234, 222, 242, 237, 227, 242, 237, 225, 241, 236, 224, 229, 224, 213, 152, 150, 137, 203, 198, 186, 241, 238, 225, 240, 237, 224, 240, 237, 224, 240, 237, 224, 240, 237, 224, 238, 236, 223, 234, 231, 218, 234, 235, 219, 233, 233, 218, 233, 233, 218, 231, 231, 217, 230, 230, 216, 234, 234, 221, 231, 231, 217, 231, 231, 217, 230, 230, 216, 230, 230, 216, 230, 230, 216, 230, 230, 216, 227, 227, 214, 229, 228, 215, 230, 230, 216, 230, 230, 214, 230, 230, 214, 81, 85, 65, 255, 255, 241, 227, 228, 212, 230, 230, 214, 231, 231, 215, 231, 231, 215, 231, 231, 215, 229, 229, 213, 232, 232, 216, 234, 232, 216, 233, 233, 220, 235, 232, 220, 236, 234, 221, 236, 234, 221, 236, 235, 222, 213, 210, 199, 237, 234, 224, 238, 237, 226, 238, 235, 225, 237, 236, 225, 237, 236, 225, 236, 235, 226, 236, 235, 226, 237, 236, 227, 237, 236, 227, 237, 236, 227, 237, 236, 227, 241, 241, 232, 0, 0, 0, 239, 238, 231, 237, 235, 229, 233, 232, 226, 226, 225, 219, 217, 216, 209, 187, 186, 177, 171, 170, 164, 180, 179, 170, 185, 185, 176, 166, 165, 156, 192, 192, 183, 209, 208, 199, 195, 194, 183, 181, 180, 171, 187, 186, 177, 154, 153, 145, 130, 129, 120, 135, 135, 126, 147, 146, 137, 154, 153, 145, 160, 159, 150, 118, 117, 108, 106, 105, 97, 106, 106, 95, 94, 93, 80, 128, 125, 112, 132, 130, 117, 147, 145, 132, 142, 139, 126, 126, 126, 112, 143, 140, 128, 147, 147, 133, 154, 154, 140, 152, 150, 137, 153, 153, 139, 143, 140, 128, 149, 146, 133, 145, 145, 131, 151, 151, 137, 149, 149, 136, 148, 148, 134, 151, 150, 139, 153, 152, 141, 155, 155, 144, 144, 143, 134, 165, 164, 155, 146, 145, 136, 148, 148, 136, 145, 144, 133, 148, 148, 136, 147, 147, 135, 145, 144, 133, 153, 152, 141, 146, 145, 134, 141, 141, 129, 144, 143, 132, 143, 140, 129, 141, 138, 127, 137, 134, 124, 143, 140, 129, 139, 136, 126, 132, 131, 120, 137, 136, 125, 127, 127, 116, 131, 130, 119, 114, 114, 103, 109, 108, 97, 95, 92, 82, 88, 85, 75, 86, 83, 72, 74, 71, 61, 68, 67, 58, 55, 54, 46, 49, 48, 40, 47, 46, 37, 48, 47, 39, 47, 46, 37, 48, 47, 39, 36, 36, 27, 42, 41, 33, 38, 37, 28, 48, 48, 36, 35, 35, 24, 60, 59, 48, 35, 35, 24, 61, 60, 49, 51, 53, 41, 52, 54, 42, 76, 78, 65, 92, 94, 82, 99, 99, 88, 105, 105, 94, 121, 121, 112, 109, 108, 99, 128, 128, 119, 126, 125, 117, 139, 138, 129, 139, 138, 129, 145, 144, 135, 155, 154, 146, 160, 159, 150, 161, 160, 152, 160, 159, 150, 165, 164, 155, 161, 158, 150, 165, 164, 155, 163, 162, 154, 161, 160, 152, 159, 158, 149, 162, 161, 153, 161, 162, 153, 162, 163, 154, 167, 166, 157, 160, 159, 150, 163, 162, 154, 166, 165, 156, 166, 165, 156, 162, 161, 153, 167, 166, 157, 168, 167, 159, 160, 159, 150, 154, 153, 145, 142, 141, 133, 145, 144, 135, 138, 137, 126, 131, 130, 119, 132, 129, 119, 128, 125, 114, 131, 128, 118, 111, 109, 98, 128, 123, 113, 103, 97, 88, 112, 107, 97, 97, 91, 82, 98, 91, 82, 82, 76, 67, 78, 73, 63, 77, 72, 62, 58, 53, 43, 48, 43, 33, 41, 36, 26, 37, 32, 20, 46, 37, 26, 70, 53, 45, 226, 226, 215, 234, 234, 223, 214, 211, 201, 203, 201, 188, 224, 222, 209, 227, 224, 211, 233, 230, 217, 240, 237, 224, 242, 237, 225, 247, 244, 231, 244, 242, 229, 252, 250, 237, 242, 239, 226, 255, 255, 246, 255, 255, 247, 255, 255, 247, 255, 255, 252, 255, 255, 251, 255, 255, 247, 255, 255, 247, 255, 255, 249, 255, 255, 247, 255, 255, 246, 255, 252, 239, 244, 242, 229, 91, 88, 75, 255, 255, 255, 254, 251, 238, 251, 249, 234, 250, 248, 233, 250, 248, 233, 248, 245, 230, 245, 243, 228, 242, 243, 225, 240, 241, 223, 240, 240, 224, 241, 242, 224, 238, 239, 220, 239, 240, 221, 238, 239, 220, 237, 237, 219, 238, 239, 220, 237, 237, 219, 237, 237, 219, 237, 237, 219, 236, 236, 218, 237, 237, 219, 236, 237, 216, 237, 238, 217, 237, 238, 217, 238, 239, 218, 67, 68, 47, 255, 255, 255, 240, 241, 220, 240, 238, 220, 241, 239, 221, 242, 240, 223, 243, 241, 224, 244, 242, 225, 247, 245, 227, 242, 240, 223, 245, 243, 228, 245, 243, 228, 243, 241, 226, 244, 242, 227, 217, 215, 202, 221, 219, 203, 252, 250, 237, 249, 246, 233, 245, 245, 231, 244, 243, 232, 246, 245, 234, 248, 248, 237, 248, 248, 237, 248, 248, 237, 249, 249, 238, 251, 250, 239, 249, 249, 238, 253, 252, 241, 7, 7, 0, 255, 255, 246, 248, 248, 239, 246, 245, 236, 245, 244, 237, 245, 244, 237, 242, 243, 236, 236, 238, 230, 240, 241, 234, 237, 239, 231, 234, 233, 227, 237, 235, 229, 236, 234, 228, 236, 234, 228, 232, 233, 226, 211, 212, 205, 192, 191, 185, 177, 176, 170, 184, 185, 176, 183, 182, 174, 232, 231, 223, 255, 255, 250, 215, 214, 205, 116, 115, 104, 94, 93, 82, 97, 95, 82, 91, 88, 75, 114, 114, 101, 144, 143, 130, 141, 138, 125, 147, 145, 132, 152, 152, 138, 149, 149, 136, 151, 151, 137, 152, 152, 138, 152, 152, 138, 154, 154, 140, 236, 234, 221, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 211, 210, 201, 190, 189, 183, 149, 148, 140, 162, 161, 153, 160, 159, 150, 160, 159, 148, 154, 154, 142, 160, 159, 148, 148, 148, 136, 151, 151, 137, 152, 152, 138, 151, 150, 139, 140, 140, 128, 141, 141, 129, 144, 141, 131, 144, 141, 131, 132, 129, 119, 139, 136, 126, 134, 131, 120, 134, 134, 123, 132, 129, 119, 138, 137, 126, 139, 136, 126, 139, 136, 126, 133, 133, 121, 135, 132, 121, 125, 123, 112, 128, 125, 117, 125, 122, 114, 121, 118, 110, 119, 118, 110, 124, 123, 114, 119, 119, 107, 114, 114, 103, 112, 112, 100, 113, 113, 102, 109, 108, 97, 111, 110, 101, 114, 114, 105, 114, 114, 105, 112, 111, 103, 113, 113, 102, 109, 108, 97, 110, 109, 100, 108, 107, 98, 116, 115, 106, 110, 109, 100, 110, 109, 100, 112, 111, 103, 105, 104, 96, 109, 108, 99, 110, 109, 98, 113, 110, 99, 108, 105, 97, 113, 112, 104, 112, 111, 103, 108, 105, 97, 109, 108, 99, 102, 101, 92, 111, 110, 103, 113, 109, 101, 123, 119, 114, 116, 112, 107, 116, 112, 107, 116, 115, 106, 120, 119, 111, 112, 111, 103, 119, 118, 110, 121, 121, 112, 116, 115, 106, 128, 127, 121, 111, 110, 103, 117, 116, 109, 114, 113, 107, 124, 123, 116, 120, 119, 113, 128, 127, 121, 126, 125, 117, 130, 129, 120, 117, 116, 107, 126, 125, 117, 128, 128, 119, 128, 128, 119, 128, 128, 119, 121, 121, 112, 138, 135, 125, 145, 142, 132, 131, 128, 118, 133, 128, 118, 134, 129, 119, 141, 136, 126, 142, 137, 127, 134, 129, 119, 149, 144, 134, 154, 149, 139, 148, 143, 133, 148, 143, 131, 159, 153, 144, 156, 151, 141, 169, 164, 152, 157, 152, 140, 162, 157, 145, 255, 255, 249, 255, 255, 245, 86, 81, 69, 255, 255, 242, 255, 255, 251, 255, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 30, 29, 16, 255, 255, 255, 255, 255, 254, 255, 255, 254, 255, 255, 252, 255, 255, 253, 255, 255, 249, 255, 255, 247, 255, 255, 249, 255, 255, 245, 255, 255, 245, 255, 255, 244, 255, 255, 242, 255, 255, 240, 246, 246, 230, 248, 249, 233, 249, 250, 234, 246, 246, 230, 242, 243, 225, 245, 246, 227, 246, 247, 228, 246, 247, 228, 247, 248, 229, 246, 247, 226, 248, 250, 229, 252, 253, 232, 77, 78, 57, 255, 255, 252, 252, 251, 231, 255, 253, 233, 255, 254, 236, 255, 254, 236, 255, 255, 238, 255, 255, 239, 255, 255, 240, 255, 255, 239, 255, 255, 239, 255, 255, 245, 255, 255, 242, 255, 255, 240, 255, 255, 245, 255, 255, 245, 255, 255, 246, 255, 255, 247, 255, 255, 248, 255, 255, 248, 255, 255, 250, 255, 255, 249, 255, 255, 253, 255, 255, 253, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 14, 15, 0, 255, 255, 255, 255, 255, 249, 255, 255, 249, 255, 255, 254, 255, 255, 253, 255, 255, 252, 255, 255, 250, 251, 253, 243, 255, 255, 249, 255, 255, 247, 255, 255, 248, 247, 246, 238, 246, 247, 238, 252, 251, 244, 251, 253, 245, 248, 249, 242, 246, 247, 240, 244, 246, 238, 244, 246, 238, 241, 242, 235, 244, 242, 236, 245, 244, 237, 243, 245, 235, 188, 187, 178, 82, 81, 72, 77, 77, 65, 75, 74, 63, 117, 116, 105, 141, 141, 128, 139, 138, 127, 147, 147, 135, 148, 148, 136, 144, 143, 132, 147, 145, 134, 128, 128, 117, 81, 80, 69, 82, 81, 70, 113, 110, 99, 102, 101, 90, 155, 156, 147, 197, 198, 191, 255, 255, 255, 142, 143, 136, 128, 129, 122, 131, 133, 126, 138, 136, 130, 146, 145, 138, 144, 143, 134, 137, 136, 127, 134, 133, 125, 109, 108, 99, 110, 109, 100, 116, 115, 104, 120, 119, 111, 106, 106, 95, 109, 108, 97, 124, 121, 111, 124, 121, 111, 117, 114, 104, 142, 139, 128, 122, 119, 109, 144, 141, 131, 145, 142, 132, 131, 130, 119, 137, 136, 125, 134, 134, 123, 133, 132, 124, 134, 134, 123, 131, 130, 121, 127, 127, 116, 124, 123, 112, 124, 123, 114, 123, 122, 113, 131, 130, 121, 112, 111, 103, 113, 113, 102, 112, 112, 100, 110, 109, 100, 111, 110, 101, 112, 111, 103, 104, 103, 94, 106, 105, 97, 109, 108, 99, 109, 108, 99, 109, 108, 97, 108, 107, 96, 103, 102, 91, 135, 135, 124, 102, 101, 92, 114, 114, 105, 95, 94, 83, 105, 104, 96, 105, 104, 96, 104, 103, 94, 109, 108, 99, 110, 109, 100, 109, 106, 98, 108, 107, 98, 109, 108, 99, 108, 107, 98, 109, 106, 98, 110, 107, 99, 114, 111, 103, 121, 118, 110, 118, 115, 107, 117, 114, 106, 122, 119, 111, 108, 107, 98, 108, 107, 98, 110, 107, 99, 117, 116, 107, 131, 130, 121, 111, 110, 101, 114, 113, 107, 114, 114, 105, 125, 124, 117, 118, 117, 110, 114, 113, 107, 119, 118, 112, 123, 121, 115, 113, 112, 106, 124, 123, 114, 117, 116, 107, 112, 111, 103, 125, 124, 115, 145, 144, 135, 128, 128, 119, 127, 126, 118, 129, 126, 116, 137, 134, 126, 130, 125, 116, 142, 137, 127, 147, 141, 132, 139, 133, 124, 151, 146, 136, 151, 146, 136, 156, 151, 141, 161, 156, 144, 155, 150, 138, 150, 145, 133, 155, 152, 139, 172, 167, 156, 163, 158, 146, 163, 160, 147, 255, 255, 255, 255, 255, 249, 126, 121, 109, 255, 255, 255, 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 247, 245, 245, 231, 227, 227, 214, 225, 225, 211, 223, 223, 209, 224, 224, 210, 215, 214, 201, 215, 213, 200, 219, 219, 205, 152, 152, 138, 182, 180, 167, 217, 217, 203, 218, 218, 204, 213, 213, 200, 217, 217, 203, 215, 214, 201, 210, 210, 194, 211, 211, 195, 204, 204, 188, 208, 208, 192, 195, 198, 181, 205, 206, 190, 204, 204, 188, 203, 203, 187, 199, 200, 184, 199, 200, 184, 194, 194, 178, 195, 195, 177, 191, 192, 174, 190, 191, 173, 184, 185, 164, 189, 190, 169, 185, 187, 166, 180, 181, 160, 180, 179, 159, 130, 129, 107, 229, 227, 210, 179, 178, 156, 173, 172, 150, 184, 180, 161, 181, 177, 156, 183, 179, 160, 181, 177, 158, 186, 183, 163, 204, 200, 181, 213, 209, 190, 233, 231, 211, 245, 244, 224, 255, 255, 240, 255, 255, 244, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 19, 21, 7, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 255, 255, 253, 255, 255, 249, 255, 255, 248, 255, 255, 250, 255, 255, 247, 246, 245, 236, 206, 206, 197, 78, 78, 67, 124, 123, 112, 83, 83, 71, 142, 142, 131, 140, 140, 128, 145, 144, 133, 135, 135, 124, 146, 145, 134, 155, 155, 144, 68, 67, 56, 109, 108, 97, 78, 78, 65, 89, 88, 77, 94, 93, 84, 141, 142, 135, 180, 182, 174, 191, 192, 185, 183, 184, 177, 194, 196, 188, 209, 211, 203, 175, 176, 169, 165, 163, 157, 153, 152, 143, 142, 141, 135, 137, 135, 129, 118, 117, 108, 110, 109, 102, 126, 125, 117, 110, 109, 100, 118, 117, 108, 109, 108, 99, 113, 113, 102, 114, 114, 103, 91, 88, 77, 92, 89, 78, 102, 99, 89, 103, 100, 90, 106, 102, 94, 110, 107, 97, 113, 112, 104, 112, 111, 103, 108, 107, 98, 102, 101, 92, 103, 102, 93, 104, 103, 94, 126, 126, 114, 106, 108, 98, 113, 114, 105, 109, 108, 97, 96, 95, 86, 101, 103, 93, 103, 102, 93, 98, 97, 89, 98, 97, 89, 97, 96, 87, 98, 97, 89, 98, 97, 89, 100, 100, 91, 94, 93, 84, 97, 96, 85, 108, 107, 98, 106, 105, 97, 104, 104, 92, 90, 90, 78, 104, 103, 94, 109, 108, 99, 104, 103, 94, 97, 96, 87, 105, 104, 96, 87, 86, 77, 102, 101, 92, 99, 98, 90, 95, 94, 85, 96, 95, 86, 108, 105, 97, 95, 94, 85, 107, 104, 96, 108, 105, 97, 97, 95, 84, 108, 105, 95, 109, 106, 96, 107, 104, 94, 103, 100, 92, 114, 111, 103, 109, 106, 98, 114, 114, 105, 126, 125, 117, 118, 117, 108, 108, 106, 100, 108, 106, 100, 118, 117, 110, 111, 110, 103, 120, 119, 113, 111, 110, 103, 116, 115, 106, 106, 105, 99, 108, 107, 98, 94, 93, 84, 97, 96, 87, 103, 102, 93, 119, 118, 110, 135, 135, 126, 126, 125, 117, 134, 130, 122, 141, 138, 127, 129, 126, 116, 149, 146, 135, 134, 131, 120, 144, 139, 129, 153, 147, 138, 154, 149, 139, 162, 157, 145, 162, 157, 145, 157, 152, 140, 164, 159, 147, 171, 166, 154, 170, 165, 153, 163, 159, 144, 171, 167, 152, 255, 255, 255, 255, 255, 255, 147, 142, 130, 255, 255, 252, 255, 255, 246, 247, 247, 233, 213, 213, 200, 208, 206, 193, 195, 195, 181, 196, 196, 182, 191, 191, 178, 199, 199, 186, 196, 196, 182, 202, 202, 188, 183, 183, 169, 187, 185, 172, 178, 178, 165, 153, 153, 139, 119, 119, 105, 108, 107, 94, 112, 112, 98, 78, 78, 67, 75, 74, 63, 74, 73, 62, 57, 57, 46, 40, 39, 28, 0, 0, 0, 59, 58, 47, 55, 55, 43, 52, 51, 40, 61, 60, 51, 41, 41, 27, 116, 116, 102, 76, 76, 62, 94, 93, 80, 59, 58, 45, 92, 92, 79, 60, 60, 44, 80, 80, 64, 67, 70, 53, 93, 96, 79, 67, 70, 53, 64, 65, 49, 47, 49, 32, 53, 56, 39, 50, 51, 35, 47, 48, 29, 94, 95, 74, 43, 45, 24, 62, 63, 42, 56, 54, 36, 63, 61, 43, 66, 64, 49, 64, 62, 44, 96, 95, 77, 77, 75, 57, 70, 68, 50, 89, 88, 70, 103, 99, 80, 110, 109, 89, 127, 125, 105, 128, 127, 106, 137, 136, 116, 137, 136, 116, 144, 143, 123, 149, 147, 127, 139, 138, 118, 149, 150, 129, 156, 158, 137, 151, 152, 131, 155, 156, 135, 173, 174, 153, 170, 171, 151, 170, 171, 155, 167, 168, 149, 171, 172, 156, 178, 179, 163, 183, 185, 169, 204, 206, 192, 50, 53, 36, 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 242, 242, 231, 47, 46, 35, 73, 76, 61, 69, 69, 55, 139, 138, 127, 142, 142, 131, 142, 142, 131, 140, 140, 128, 145, 144, 133, 126, 126, 114, 84, 84, 72, 116, 115, 104, 120, 120, 109, 191, 191, 180, 236, 235, 226, 236, 238, 230, 243, 245, 237, 243, 245, 237, 239, 240, 233, 241, 242, 235, 236, 238, 230, 234, 235, 228, 233, 234, 227, 230, 232, 224, 230, 232, 224, 214, 215, 208, 209, 211, 203, 189, 190, 183, 137, 139, 129, 95, 94, 85, 106, 106, 93, 95, 95, 79, 97, 97, 81, 118, 118, 104, 100, 97, 84, 92, 90, 74, 100, 98, 82, 96, 94, 81, 107, 104, 94, 125, 124, 115, 154, 153, 145, 138, 137, 128, 130, 128, 122, 108, 107, 98, 104, 103, 96, 108, 107, 98, 134, 133, 125, 102, 104, 94, 109, 111, 101, 100, 102, 92, 104, 105, 96, 99, 100, 91, 90, 91, 82, 84, 85, 76, 91, 90, 82, 91, 90, 82, 89, 88, 79, 95, 94, 85, 107, 104, 94, 105, 105, 94, 130, 129, 118, 131, 130, 119, 127, 127, 116, 145, 144, 133, 125, 125, 113, 114, 114, 103, 120, 120, 109, 120, 119, 111, 85, 85, 76, 84, 83, 75, 71, 71, 62, 87, 86, 77, 92, 92, 83, 92, 92, 83, 84, 84, 72, 78, 78, 67, 83, 81, 70, 128, 125, 114, 100, 97, 86, 111, 109, 96, 109, 106, 96, 94, 91, 81, 94, 91, 81, 95, 92, 82, 93, 90, 80, 96, 93, 85, 97, 96, 87, 98, 97, 89, 102, 101, 92, 128, 128, 119, 98, 97, 89, 117, 116, 109, 110, 109, 102, 103, 102, 93, 105, 104, 98, 92, 92, 83, 100, 100, 91, 111, 110, 101, 111, 110, 101, 103, 102, 93, 91, 90, 82, 87, 86, 77, 134, 133, 125, 128, 128, 117, 144, 141, 131, 130, 127, 117, 130, 129, 118, 136, 133, 123, 132, 129, 119, 149, 144, 134, 151, 146, 136, 156, 151, 141, 150, 145, 133, 163, 158, 146, 151, 146, 134, 165, 160, 149, 172, 167, 156, 174, 169, 157, 175, 173, 160, 165, 160, 149, 173, 173, 157, 177, 178, 162, 42, 37, 25, 169, 169, 156, 177, 174, 161, 175, 175, 161, 160, 160, 146, 161, 159, 146, 123, 123, 109, 117, 117, 103, 82, 80, 67, 66, 64, 49, 74, 69, 55, 51, 47, 32, 55, 50, 38, 70, 65, 51, 100, 95, 83, 138, 136, 121, 134, 131, 116, 207, 204, 192, 146, 144, 129, 152, 150, 137, 139, 137, 124, 144, 141, 129, 102, 102, 88, 119, 119, 107, 135, 135, 124, 110, 109, 100, 113, 112, 104, 133, 134, 127, 143, 144, 137, 151, 153, 145, 154, 155, 148, 151, 153, 145, 165, 166, 159, 142, 143, 136, 143, 144, 137, 104, 103, 94, 136, 138, 128, 144, 146, 136, 155, 156, 149, 149, 150, 143, 161, 159, 156, 159, 161, 154, 144, 145, 140, 134, 135, 130, 135, 136, 129, 137, 133, 128, 121, 120, 114, 113, 112, 104, 120, 119, 113, 100, 100, 91, 181, 180, 171, 106, 105, 97, 119, 118, 110, 102, 101, 92, 91, 87, 79, 70, 69, 61, 75, 74, 65, 73, 72, 63, 72, 69, 61, 72, 69, 59, 71, 68, 55, 70, 67, 54, 59, 57, 42, 81, 79, 64, 40, 40, 24, 48, 48, 32, 40, 40, 24, 34, 34, 18, 41, 42, 23, 54, 54, 38, 80, 80, 64, 74, 74, 58, 82, 82, 68, 118, 118, 104, 112, 114, 100, 112, 114, 100, 151, 154, 139, 60, 63, 48, 168, 170, 156, 158, 158, 142, 178, 179, 163, 169, 171, 155, 170, 173, 156, 181, 181, 165, 180, 183, 168, 199, 201, 187, 213, 215, 203, 243, 245, 233, 255, 255, 247, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 235, 237, 223, 84, 84, 70, 88, 87, 76, 78, 80, 68, 138, 137, 126, 139, 138, 127, 144, 143, 132, 152, 151, 140, 147, 147, 135, 132, 131, 122, 73, 72, 63, 78, 78, 69, 81, 80, 69, 242, 242, 231, 234, 236, 226, 244, 246, 238, 255, 255, 251, 255, 255, 255, 255, 255, 255, 255, 255, 254, 255, 255, 251, 246, 247, 240, 218, 219, 212, 247, 248, 241, 251, 253, 245, 249, 250, 243, 248, 249, 242, 250, 252, 244, 246, 245, 236, 199, 199, 188, 70, 71, 55, 101, 99, 84, 103, 101, 86, 108, 106, 91, 99, 96, 81, 107, 105, 90, 106, 103, 90, 165, 162, 150, 92, 89, 78, 187, 184, 176, 231, 230, 221, 238, 237, 228, 224, 223, 214, 226, 225, 219, 221, 222, 215, 223, 225, 218, 218, 219, 212, 205, 206, 199, 207, 208, 201, 200, 201, 194, 198, 199, 192, 197, 198, 191, 180, 182, 174, 180, 182, 174, 194, 193, 184, 170, 169, 161, 173, 172, 163, 100, 100, 89, 195, 194, 185, 198, 197, 189, 188, 187, 178, 177, 176, 168, 175, 174, 165, 175, 174, 163, 177, 176, 168, 165, 164, 153, 174, 173, 162, 153, 152, 143, 161, 160, 152, 168, 167, 159, 151, 150, 141, 139, 138, 129, 141, 140, 132, 123, 122, 113, 127, 127, 116, 71, 71, 60, 94, 91, 81, 108, 105, 93, 107, 104, 92, 101, 98, 86, 121, 118, 107, 107, 104, 94, 96, 93, 83, 99, 96, 85, 129, 126, 116, 121, 118, 110, 111, 110, 101, 133, 132, 124, 133, 132, 124, 155, 154, 148, 135, 134, 128, 155, 154, 148, 133, 132, 126, 138, 137, 128, 149, 148, 142, 140, 141, 132, 168, 167, 160, 156, 155, 149, 163, 162, 154, 106, 105, 97, 102, 99, 91, 85, 85, 76, 89, 88, 79, 81, 80, 71, 145, 144, 133, 149, 146, 135, 142, 142, 131, 146, 143, 133, 151, 148, 138, 151, 146, 136, 153, 147, 138, 157, 152, 142, 157, 152, 142, 161, 156, 144, 163, 160, 147, 170, 165, 153, 172, 167, 156, 170, 167, 154, 167, 162, 148, 160, 158, 143, 101, 97, 80, 96, 94, 79, 90, 85, 73, 0, 0, 0, 57, 54, 41, 59, 57, 44, 82, 80, 67, 135, 131, 116, 164, 159, 147, 174, 169, 155, 181, 176, 162, 188, 181, 167, 194, 187, 173, 192, 188, 173, 191, 186, 174, 185, 180, 168, 170, 163, 152, 144, 139, 128, 139, 134, 122, 139, 134, 122, 134, 131, 120, 131, 128, 118, 125, 125, 113, 131, 130, 119, 129, 131, 119, 101, 103, 93, 125, 126, 117, 114, 116, 106, 121, 123, 113, 114, 115, 108, 121, 122, 115, 128, 130, 120, 109, 111, 103, 125, 125, 121, 111, 111, 107, 114, 115, 110, 120, 121, 116, 121, 122, 117, 114, 115, 110, 101, 102, 99, 119, 119, 117, 116, 116, 116, 118, 121, 120, 101, 101, 101, 110, 113, 110, 97, 100, 97, 111, 111, 109, 112, 112, 110, 106, 107, 102, 112, 113, 106, 118, 116, 112, 111, 109, 105, 106, 105, 101, 111, 110, 103, 104, 104, 100, 103, 101, 95, 95, 93, 87, 105, 104, 98, 96, 95, 88, 137, 135, 129, 121, 120, 114, 109, 107, 101, 134, 133, 127, 144, 142, 138, 143, 144, 139, 134, 135, 130, 122, 123, 118, 128, 129, 124, 123, 124, 119, 98, 98, 94, 105, 106, 101, 105, 104, 100, 84, 83, 77, 126, 125, 119, 119, 120, 113, 130, 129, 120, 108, 110, 100, 102, 104, 94, 74, 76, 68, 115, 116, 111, 48, 49, 40, 70, 71, 62, 58, 60, 48, 74, 77, 62, 69, 71, 59, 88, 88, 74, 86, 89, 74, 106, 108, 96, 125, 127, 112, 141, 143, 129, 138, 141, 126, 163, 165, 151, 159, 162, 147, 170, 172, 158, 170, 172, 158, 165, 168, 151, 173, 176, 161, 175, 177, 162, 180, 183, 168, 197, 199, 185, 214, 216, 202, 255, 255, 243, 255, 255, 255, 209, 212, 197, 118, 120, 103, 41, 43, 31, 100, 101, 96, 90, 91, 84, 143, 145, 135, 133, 134, 125, 145, 144, 133, 151, 150, 141, 142, 142, 131, 147, 146, 137, 108, 107, 98, 112, 111, 105, 64, 64, 55, 247, 246, 238, 241, 242, 233, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 236, 238, 230, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 245, 244, 233, 52, 52, 36, 105, 105, 92, 110, 111, 92, 101, 99, 84, 95, 93, 78, 94, 92, 75, 107, 105, 90, 47, 45, 32, 216, 214, 201, 240, 237, 226, 239, 238, 229, 247, 246, 238, 247, 246, 238, 251, 249, 243, 248, 247, 241, 242, 243, 236, 242, 243, 236, 244, 246, 238, 239, 240, 233, 225, 226, 219, 236, 238, 230, 236, 238, 228, 235, 237, 227, 236, 238, 228, 237, 236, 227, 234, 234, 225, 239, 238, 229, 40, 40, 26, 239, 238, 229, 240, 239, 231, 234, 234, 223, 234, 234, 223, 236, 235, 224, 234, 234, 223, 232, 232, 220, 235, 232, 222, 239, 238, 227, 229, 228, 217, 229, 228, 217, 240, 236, 228, 233, 233, 222, 234, 234, 225, 232, 232, 220, 232, 232, 220, 232, 232, 220, 233, 230, 217, 82, 79, 69, 103, 100, 90, 89, 86, 76, 86, 83, 70, 100, 97, 86, 93, 90, 80, 96, 93, 83, 130, 127, 117, 118, 116, 105, 216, 213, 205, 223, 220, 212, 229, 228, 219, 224, 223, 214, 229, 227, 221, 229, 227, 221, 230, 228, 222, 232, 231, 224, 224, 223, 216, 231, 230, 223, 227, 227, 218, 229, 228, 219, 230, 229, 220, 233, 232, 224, 239, 238, 229, 212, 211, 203, 77, 76, 68, 68, 67, 58, 81, 80, 69, 112, 112, 100, 137, 136, 125, 137, 136, 125, 145, 142, 132, 146, 143, 133, 145, 142, 132, 150, 145, 135, 169, 164, 154, 163, 158, 146, 168, 162, 153, 169, 164, 152, 170, 165, 153, 174, 169, 157, 171, 166, 154, 169, 164, 150, 151, 147, 132, 133, 129, 110, 112, 108, 91, 139, 134, 120, 150, 145, 133, 141, 138, 125, 135, 132, 119, 143, 138, 126, 153, 148, 134, 148, 143, 129, 140, 135, 121, 161, 156, 142, 151, 147, 132, 149, 144, 130, 142, 138, 123, 147, 140, 129, 147, 142, 130, 144, 139, 128, 142, 139, 126, 132, 130, 117, 128, 125, 117, 128, 125, 117, 135, 131, 124, 102, 101, 92, 114, 113, 107, 154, 155, 148, 115, 116, 109, 119, 120, 111, 119, 120, 113, 112, 113, 104, 135, 136, 129, 135, 137, 127, 116, 118, 108, 145, 143, 137, 112, 111, 105, 125, 123, 119, 124, 122, 118, 119, 118, 114, 123, 124, 119, 127, 128, 123, 122, 123, 118, 114, 115, 108, 119, 120, 115, 115, 116, 111, 116, 117, 112, 129, 130, 125, 119, 120, 113, 108, 109, 102, 123, 124, 119, 104, 104, 100, 120, 121, 116, 144, 142, 138, 111, 112, 105, 116, 117, 112, 108, 106, 102, 114, 113, 109, 135, 136, 131, 113, 112, 108, 112, 111, 105, 111, 110, 103, 119, 118, 112, 106, 105, 99, 116, 114, 108, 113, 112, 106, 123, 121, 115, 110, 108, 104, 105, 106, 101, 105, 104, 100, 123, 124, 121, 107, 108, 105, 104, 104, 102, 108, 109, 106, 109, 110, 107, 121, 119, 118, 113, 113, 111, 127, 127, 125, 133, 133, 131, 129, 129, 127, 150, 151, 148, 135, 135, 133, 151, 152, 149, 143, 144, 139, 150, 151, 144, 157, 159, 149, 150, 152, 140, 127, 129, 117, 133, 134, 125, 141, 143, 131, 136, 138, 126, 147, 149, 136, 144, 146, 134, 142, 142, 131, 119, 119, 107, 97, 96, 85, 80, 79, 68, 59, 59, 43, 57, 58, 42, 88, 88, 74, 67, 70, 53, 74, 77, 60, 102, 106, 86, 94, 97, 82, 116, 119, 102, 127, 129, 115, 100, 102, 88, 66, 68, 56, 105, 105, 103, 129, 129, 129, 127, 128, 123, 141, 142, 135, 149, 148, 140, 146, 145, 136, 148, 147, 139, 142, 141, 133, 146, 145, 136, 114, 113, 107, 127, 126, 122, 71, 71, 62, 255, 255, 247, 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 248, 112, 112, 98, 93, 91, 76, 148, 148, 132, 113, 110, 95, 106, 104, 88, 91, 88, 73, 109, 109, 93, 163, 161, 145, 244, 244, 230, 236, 235, 222, 249, 249, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 255, 246, 226, 227, 218, 255, 255, 255, 255, 255, 248, 255, 255, 249, 255, 255, 248, 255, 255, 246, 254, 254, 242, 255, 255, 249, 59, 57, 44, 255, 254, 244, 255, 255, 246, 255, 255, 247, 255, 255, 244, 255, 255, 244, 255, 255, 245, 255, 253, 240, 247, 244, 231, 223, 221, 208, 240, 237, 224, 235, 232, 220, 255, 255, 245, 255, 253, 242, 254, 254, 242, 255, 252, 241, 252, 251, 240, 255, 255, 249, 255, 255, 243, 168, 166, 153, 64, 61, 48, 100, 97, 84, 87, 84, 76, 88, 87, 76, 84, 84, 72, 121, 118, 107, 143, 140, 129, 177, 174, 161, 229, 226, 216, 230, 229, 220, 240, 239, 231, 249, 249, 240, 251, 250, 239, 251, 250, 239, 218, 217, 208, 255, 255, 247, 247, 246, 238, 227, 227, 218, 230, 229, 220, 255, 255, 247, 251, 250, 241, 255, 255, 245, 255, 255, 249, 246, 245, 234, 144, 143, 134, 64, 64, 55, 71, 71, 60, 100, 100, 89, 145, 144, 133, 152, 149, 139, 147, 145, 132, 146, 144, 131, 160, 158, 145, 151, 148, 138, 155, 150, 140, 142, 137, 125, 167, 164, 154, 169, 164, 152, 165, 160, 149, 174, 169, 157, 170, 165, 153, 171, 166, 154, 162, 157, 145, 114, 113, 92, 127, 123, 106, 144, 137, 123, 126, 119, 108, 141, 136, 122, 141, 136, 124, 140, 135, 123, 143, 139, 124, 135, 131, 116, 161, 156, 142, 149, 144, 130, 141, 134, 121, 146, 139, 126, 151, 147, 132, 133, 128, 116, 133, 128, 116, 143, 138, 126, 149, 144, 134, 128, 125, 114, 137, 134, 126, 148, 147, 141, 132, 131, 122, 125, 124, 115, 123, 121, 115, 120, 121, 114, 123, 122, 113, 112, 111, 105, 119, 118, 112, 121, 122, 115, 113, 112, 104, 62, 61, 54, 81, 80, 71, 89, 88, 79, 76, 75, 66, 70, 69, 63, 82, 81, 72, 67, 66, 57, 68, 67, 58, 61, 60, 51, 79, 76, 68, 87, 84, 76, 76, 75, 66, 82, 79, 73, 67, 64, 58, 74, 71, 65, 88, 86, 80, 73, 75, 65, 116, 118, 110, 108, 109, 104, 119, 118, 114, 111, 109, 105, 114, 113, 109, 114, 113, 109, 123, 121, 117, 121, 120, 116, 106, 105, 99, 104, 105, 98, 113, 112, 106, 113, 112, 106, 109, 107, 101, 106, 105, 99, 126, 125, 119, 118, 117, 110, 105, 104, 98, 109, 107, 101, 119, 118, 114, 106, 107, 102, 100, 101, 96, 105, 106, 101, 113, 114, 109, 106, 107, 102, 119, 119, 117, 118, 118, 116, 115, 116, 113, 123, 124, 121, 116, 114, 112, 113, 113, 111, 126, 126, 124, 130, 131, 126, 127, 128, 123, 123, 124, 119, 128, 129, 122, 125, 126, 119, 135, 136, 129, 133, 134, 127, 131, 133, 126, 127, 128, 121, 135, 136, 129, 151, 153, 145, 148, 149, 142, 153, 154, 147, 161, 160, 154, 155, 156, 147, 156, 158, 148, 142, 144, 134, 140, 141, 132, 144, 143, 134, 168, 170, 158, 161, 163, 151, 161, 163, 151, 155, 157, 145, 135, 137, 125, 111, 113, 100, 81, 83, 75, 108, 109, 102, 130, 131, 128, 135, 135, 135, 142, 143, 136, 141, 142, 133, 151, 150, 141, 152, 151, 142, 148, 147, 139, 148, 147, 139, 146, 145, 138, 135, 134, 128, 140, 139, 132, 145, 143, 137, 44, 46, 36, 213, 215, 203, 187, 190, 175, 166, 168, 156, 189, 191, 179, 212, 214, 202, 239, 240, 231, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 223, 223, 209, 98, 98, 84, 61, 61, 45, 71, 71, 58, 116, 116, 102, 81, 81, 67, 64, 64, 53, 123, 122, 111, 91, 91, 78, 240, 240, 228, 255, 255, 248, 255, 255, 247, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 57, 58, 42, 255, 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 254, 255, 255, 254, 255, 255, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 166, 164, 151, 56, 53, 42, 93, 90, 82, 110, 109, 102, 130, 128, 122, 113, 112, 104, 119, 118, 110, 134, 134, 121, 181, 179, 166, 240, 237, 224, 234, 234, 221, 255, 255, 244, 255, 255, 249, 255, 255, 250, 255, 255, 250, 255, 255, 252, 255, 255, 253, 255, 255, 251, 255, 255, 252, 255, 255, 254, 255, 255, 254, 255, 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 131, 130, 119, 74, 73, 64, 88, 87, 76, 87, 86, 75, 165, 162, 152, 153, 151, 140, 153, 151, 138, 153, 151, 140, 160, 158, 147, 157, 154, 142, 164, 161, 149, 160, 158, 145, 168, 166, 153, 168, 162, 153, 170, 165, 153, 167, 162, 150, 176, 171, 159, 160, 155, 143, 170, 165, 153, 136, 128, 110, 139, 130, 115, 146, 139, 126, 126, 119, 108, 128, 123, 111, 139, 134, 122, 135, 130, 118, 141, 136, 122, 147, 142, 128, 137, 133, 119, 143, 139, 124, 126, 121, 107, 160, 155, 141, 143, 138, 126, 126, 121, 109, 135, 130, 118, 164, 159, 147, 150, 147, 136, 131, 128, 118, 141, 140, 132, 127, 123, 115, 127, 126, 118, 125, 124, 115, 113, 112, 104, 134, 133, 125, 118, 117, 108, 108, 107, 96, 66, 65, 56, 81, 80, 69, 76, 76, 64, 73, 72, 63, 60, 59, 50, 85, 81, 73, 89, 86, 80, 99, 95, 87, 81, 80, 71, 73, 70, 62, 81, 79, 73, 99, 98, 90, 66, 63, 55, 91, 91, 80, 88, 85, 77, 91, 87, 83, 81, 78, 70, 91, 88, 77, 94, 91, 83, 67, 64, 56, 71, 68, 57, 101, 98, 90, 115, 111, 108, 113, 112, 108, 106, 105, 101, 114, 113, 109, 114, 113, 109, 112, 111, 107, 123, 121, 115, 111, 110, 103, 113, 112, 106, 112, 111, 105, 120, 119, 113, 124, 121, 115, 115, 111, 106, 120, 119, 113, 119, 118, 112, 113, 112, 108, 117, 115, 111, 109, 107, 103, 109, 107, 103, 112, 111, 107, 113, 113, 111, 104, 104, 102, 107, 108, 105, 119, 120, 115, 121, 121, 119, 119, 119, 117, 132, 130, 126, 121, 121, 119, 129, 130, 125, 128, 129, 124, 131, 132, 128, 131, 132, 128, 129, 130, 123, 135, 136, 129, 138, 140, 132, 135, 136, 129, 134, 135, 128, 134, 135, 128, 134, 135, 128, 133, 132, 126, 134, 133, 127, 134, 135, 128, 138, 137, 128, 142, 143, 136, 146, 145, 138, 142, 141, 133, 142, 141, 135, 141, 140, 132, 142, 143, 136, 148, 149, 142, 155, 154, 148, 157, 158, 151, 151, 153, 145, 149, 150, 145, 135, 136, 131, 136, 137, 132, 137, 139, 131, 148, 149, 144, 143, 144, 137, 137, 139, 129, 151, 149, 143, 148, 147, 141, 148, 147, 141, 148, 147, 141, 145, 144, 135, 149, 148, 142, 135, 134, 128, 151, 149, 143, 152, 151, 144, 76, 77, 68, 70, 71, 62, 88, 90, 80, 112, 111, 103, 118, 120, 107, 126, 128, 116, 140, 140, 128, 148, 150, 138, 150, 152, 140, 150, 153, 138, 159, 162, 147, 161, 163, 149, 154, 156, 140, 161, 163, 147, 138, 141, 124, 122, 125, 108, 0, 0, 0, 118, 119, 110, 101, 102, 95, 99, 100, 93, 119, 120, 115, 78, 79, 72, 114, 116, 106, 30, 32, 20, 212, 214, 202, 222, 224, 212, 212, 212, 201, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 46, 46, 30, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 244, 242, 229, 157, 154, 144, 81, 78, 70, 114, 110, 105, 101, 102, 95, 99, 100, 93, 98, 97, 91, 121, 120, 114, 59, 61, 49, 212, 212, 199, 244, 244, 230, 247, 247, 231, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 177, 177, 166, 118, 117, 106, 100, 100, 89, 116, 114, 108, 109, 108, 99, 135, 132, 121, 161, 161, 149, 149, 146, 133, 153, 151, 140, 157, 154, 142, 156, 153, 140, 154, 149, 137, 163, 158, 148, 165, 160, 149, 165, 160, 151, 167, 161, 152, 177, 170, 159, 167, 160, 149, 161, 154, 143, 167, 160, 147, 142, 136, 118, 132, 126, 110, 139, 134, 120, 120, 113, 102, 133, 128, 116, 140, 135, 123, 141, 136, 122, 132, 130, 117, 136, 131, 119, 150, 145, 133, 142, 139, 126, 138, 136, 123, 134, 131, 118, 135, 132, 119, 142, 139, 126, 149, 146, 133, 162, 157, 147, 153, 151, 140, 128, 125, 114, 135, 131, 124, 138, 137, 128, 135, 134, 128, 127, 126, 120, 131, 129, 123, 127, 126, 118, 113, 112, 104, 59, 58, 45, 75, 75, 61, 83, 83, 71, 91, 90, 82, 112, 111, 105, 137, 135, 131, 140, 138, 136, 175, 173, 171, 160, 158, 156, 169, 167, 166, 176, 174, 173, 168, 166, 166, 161, 159, 159, 162, 160, 159, 170, 168, 167, 166, 164, 162, 148, 148, 146, 133, 131, 129, 63, 62, 54, 80, 77, 67, 111, 109, 96, 80, 75, 65, 79, 76, 65, 78, 77, 71, 113, 112, 108, 113, 109, 105, 114, 113, 109, 114, 113, 109, 120, 119, 115, 128, 127, 121, 114, 113, 107, 116, 114, 108, 117, 116, 109, 104, 101, 95, 130, 127, 121, 121, 117, 112, 127, 123, 117, 120, 116, 110, 114, 113, 109, 116, 114, 110, 109, 107, 103, 110, 108, 104, 117, 115, 113, 114, 112, 111, 115, 116, 111, 133, 133, 131, 128, 128, 126, 125, 125, 121, 131, 132, 128, 123, 124, 119, 123, 121, 117, 133, 133, 129, 127, 126, 122, 127, 128, 123, 119, 120, 115, 126, 127, 122, 129, 130, 123, 133, 134, 127, 131, 133, 126, 135, 136, 129, 134, 135, 128, 145, 143, 137, 139, 138, 131, 139, 138, 131, 133, 132, 126, 163, 162, 154, 142, 141, 133, 132, 131, 124, 142, 141, 133, 142, 141, 133, 140, 139, 130, 152, 151, 144, 139, 138, 131, 146, 145, 138, 137, 135, 129, 146, 145, 138, 142, 141, 135, 145, 143, 137, 142, 141, 135, 153, 152, 145, 148, 147, 141, 148, 147, 141, 144, 142, 136, 146, 145, 138, 149, 148, 142, 146, 145, 138, 151, 149, 143, 151, 149, 143, 152, 151, 144, 148, 147, 141, 149, 148, 142, 149, 148, 142, 175, 174, 167, 170, 171, 166, 165, 166, 159, 164, 165, 160, 154, 155, 150, 144, 145, 140, 135, 136, 131, 108, 109, 102, 111, 111, 107, 106, 105, 99, 85, 84, 78, 75, 74, 67, 62, 63, 56, 77, 78, 69, 76, 77, 70, 83, 83, 79, 127, 127, 125, 114, 116, 113, 111, 114, 111, 122, 125, 121, 120, 122, 121, 110, 113, 110, 116, 119, 116, 118, 118, 116, 64, 65, 60, 51, 53, 43, 113, 115, 103, 123, 125, 115, 133, 135, 123, 125, 127, 114, 119, 121, 109, 129, 131, 119, 129, 131, 117, 128, 130, 118, 133, 135, 123, 134, 137, 120, 133, 135, 121, 130, 133, 116, 136, 139, 122, 136, 139, 122, 138, 138, 122, 144, 144, 128, 165, 165, 147, 33, 33, 17, 168, 168, 152, 160, 161, 142, 159, 160, 139, 158, 159, 138, 144, 144, 126, 153, 152, 134, 150, 149, 128, 159, 155, 135, 146, 141, 125, 153, 149, 129, 162, 158, 139, 157, 153, 136, 157, 155, 138, 149, 147, 129, 161, 157, 140, 167, 166, 148, 174, 172, 157, 135, 132, 121, 38, 34, 29, 104, 102, 98, 120, 119, 115, 122, 123, 118, 122, 123, 118, 116, 114, 110, 108, 106, 102, 109, 111, 103, 59, 58, 45, 155, 156, 140, 160, 160, 144, 155, 155, 142, 160, 160, 144, 165, 165, 149, 168, 168, 152, 166, 166, 150, 189, 189, 175, 187, 187, 173, 189, 191, 177, 191, 193, 179, 188, 188, 174, 187, 190, 175, 192, 194, 182, 156, 158, 146, 70, 72, 58, 73, 72, 63, 128, 127, 123, 129, 130, 125, 148, 147, 139, 156, 156, 145, 145, 144, 133, 155, 152, 139, 146, 144, 131, 158, 156, 143, 156, 153, 140, 167, 162, 150, 167, 161, 152, 165, 160, 149, 162, 157, 145, 170, 165, 155, 168, 163, 151, 172, 167, 156, 175, 170, 158, 162, 157, 145, 137, 134, 114, 135, 131, 114, 126, 119, 106, 137, 133, 119, 146, 139, 126, 130, 126, 112, 137, 132, 121, 150, 147, 134, 147, 145, 134, 144, 141, 131, 155, 152, 141, 130, 127, 117, 152, 149, 139, 143, 140, 128, 135, 132, 121, 156, 153, 142, 139, 136, 126, 139, 136, 126, 136, 133, 125, 144, 141, 133, 134, 133, 127, 142, 141, 135, 128, 127, 121, 132, 131, 124, 114, 113, 107, 67, 66, 55, 66, 65, 52, 83, 83, 71, 206, 206, 193, 233, 232, 226, 237, 235, 231, 237, 235, 229, 234, 233, 229, 236, 234, 230, 236, 234, 230, 234, 233, 229, 201, 199, 195, 238, 236, 232, 232, 230, 228, 234, 232, 233, 234, 232, 231, 236, 234, 232, 230, 228, 226, 241, 236, 235, 242, 241, 237, 212, 208, 202, 0, 0, 0, 110, 107, 97, 88, 85, 77, 74, 71, 65, 117, 113, 110, 117, 115, 111, 116, 114, 110, 117, 113, 110, 127, 126, 120, 114, 113, 107, 117, 114, 108, 123, 119, 114, 125, 122, 116, 115, 111, 106, 116, 112, 107, 125, 122, 116, 121, 117, 114, 114, 113, 109, 121, 120, 116, 128, 127, 123, 126, 125, 121, 113, 112, 108, 135, 134, 130, 114, 115, 110, 126, 127, 122, 127, 128, 123, 128, 129, 124, 130, 131, 126, 126, 127, 122, 123, 124, 119, 133, 131, 128, 151, 149, 145, 125, 123, 119, 133, 131, 128, 134, 133, 129, 133, 131, 128, 138, 136, 130, 133, 132, 126, 138, 136, 130, 135, 134, 128, 135, 134, 128, 139, 138, 131, 134, 133, 127, 138, 136, 130, 142, 141, 133, 144, 141, 133, 153, 152, 143, 206, 200, 193, 153, 150, 142, 152, 151, 142, 146, 143, 137, 146, 143, 135, 145, 144, 135, 150, 146, 141, 152, 151, 142, 148, 147, 141, 153, 152, 145, 147, 146, 139, 145, 143, 137, 151, 149, 143, 149, 148, 142, 155, 154, 148, 158, 156, 150, 151, 149, 143, 155, 156, 149, 146, 145, 138, 148, 147, 141, 154, 153, 147, 154, 153, 147, 146, 145, 138, 147, 146, 139, 146, 145, 138, 144, 142, 136, 146, 145, 138, 146, 144, 140, 145, 143, 139, 146, 144, 140, 157, 158, 151, 145, 146, 141, 147, 147, 143, 148, 149, 144, 157, 158, 153, 150, 151, 146, 143, 144, 139, 151, 152, 147, 150, 151, 148, 155, 155, 155, 156, 158, 159, 150, 152, 151, 144, 146, 145, 151, 153, 155, 158, 160, 161, 143, 145, 146, 135, 140, 138, 139, 144, 142, 142, 144, 143, 143, 145, 142, 137, 140, 136, 83, 86, 83, 88, 91, 86, 81, 84, 79, 82, 85, 80, 68, 71, 66, 66, 69, 62, 55, 56, 51, 55, 59, 53, 59, 60, 55, 60, 62, 54, 59, 61, 51, 66, 65, 54, 52, 54, 42, 49, 51, 39, 62, 62, 48, 49, 49, 36, 77, 77, 64, 28, 28, 15, 53, 53, 37, 42, 43, 27, 48, 49, 30, 49, 50, 32, 58, 56, 39, 44, 42, 25, 54, 53, 35, 52, 50, 33, 58, 54, 37, 54, 49, 33, 66, 62, 48, 84, 79, 65, 70, 66, 49, 39, 37, 22, 67, 65, 48, 60, 59, 41, 70, 67, 52, 132, 131, 122, 130, 128, 124, 131, 132, 129, 131, 132, 129, 136, 137, 132, 134, 135, 130, 141, 142, 137, 140, 140, 136, 137, 138, 133, 138, 140, 132, 125, 124, 115, 78, 78, 65, 57, 58, 42, 50, 51, 35, 42, 43, 27, 46, 44, 31, 47, 47, 33, 50, 50, 37, 48, 48, 34, 63, 63, 50, 62, 62, 50, 43, 43, 30, 68, 67, 56, 71, 71, 60, 99, 99, 88, 105, 104, 96, 131, 129, 125, 147, 145, 141, 128, 128, 119, 163, 162, 154, 149, 149, 138, 152, 149, 139, 151, 148, 138, 152, 150, 137, 153, 151, 138, 157, 154, 142, 169, 164, 152, 164, 161, 149, 166, 163, 153, 159, 153, 144, 155, 150, 140, 165, 160, 151, 165, 160, 151, 177, 170, 159, 175, 168, 157, 127, 125, 107, 117, 115, 100, 131, 129, 116, 127, 122, 110, 125, 120, 108, 112, 107, 97, 138, 135, 127, 137, 134, 126, 156, 153, 145, 117, 114, 104, 144, 141, 131, 136, 133, 123, 145, 142, 132, 131, 128, 118, 159, 156, 146, 130, 127, 117, 125, 123, 112, 133, 132, 124, 140, 139, 130, 123, 122, 113, 132, 131, 122, 148, 147, 139, 130, 128, 122, 134, 133, 127, 91, 90, 84, 64, 64, 55, 83, 83, 71, 189, 189, 175, 250, 248, 235, 241, 241, 228, 237, 236, 225, 238, 235, 225, 236, 235, 224, 237, 236, 225, 244, 242, 229, 201, 199, 186, 208, 206, 193, 228, 225, 213, 238, 235, 225, 234, 234, 225, 236, 233, 225, 234, 234, 225, 236, 235, 226, 239, 238, 227, 250, 247, 239, 255, 255, 250, 136, 133, 123, 0, 0, 0, 124, 121, 113, 112, 111, 105, 97, 95, 91, 120, 119, 115, 114, 113, 109, 119, 118, 114, 130, 128, 122, 118, 117, 110, 117, 116, 109, 124, 123, 116, 122, 118, 113, 119, 118, 112, 120, 116, 112, 128, 124, 121, 118, 114, 111, 128, 126, 125, 126, 124, 123, 117, 115, 113, 127, 125, 124, 113, 111, 110, 116, 117, 114, 119, 119, 117, 124, 127, 124, 143, 143, 141, 127, 127, 125, 120, 120, 118, 121, 121, 119, 129, 130, 125, 124, 122, 120, 123, 121, 119, 127, 126, 122, 123, 121, 117, 130, 128, 124, 138, 136, 132, 130, 128, 124, 137, 135, 129, 147, 146, 139, 137, 135, 129, 140, 139, 132, 137, 135, 129, 142, 141, 135, 147, 146, 137, 141, 140, 132, 144, 141, 133, 143, 140, 132, 145, 142, 134, 149, 145, 137, 152, 149, 141, 152, 149, 141, 147, 146, 139, 144, 142, 136, 147, 146, 139, 146, 145, 138, 149, 145, 137, 149, 148, 142, 151, 149, 143, 156, 155, 149, 147, 146, 139, 146, 145, 138, 147, 146, 139, 149, 148, 142, 153, 152, 145, 144, 142, 136, 151, 149, 143, 151, 149, 143, 142, 141, 135, 146, 145, 138, 154, 153, 147, 145, 143, 137, 144, 142, 136, 141, 140, 134, 144, 142, 136, 139, 137, 133, 145, 143, 139, 145, 146, 141, 143, 144, 137, 131, 129, 125, 138, 136, 132, 136, 137, 132, 137, 135, 129, 125, 124, 117, 140, 139, 132, 139, 138, 131, 141, 140, 134, 141, 140, 134, 137, 135, 131, 136, 137, 132, 144, 145, 142, 142, 142, 140, 131, 132, 129, 136, 136, 134, 144, 145, 142, 144, 145, 142, 152, 155, 152, 145, 148, 145, 151, 154, 151, 155, 157, 154, 159, 161, 161, 157, 159, 158, 157, 159, 158, 151, 153, 153, 144, 146, 145, 151, 153, 153, 142, 142, 144, 147, 146, 149, 138, 138, 138, 125, 125, 123, 108, 109, 102, 135, 136, 129, 101, 102, 95, 112, 113, 106, 110, 109, 100, 99, 100, 91, 105, 106, 97, 111, 110, 101, 93, 95, 83, 120, 120, 107, 104, 104, 88, 134, 134, 119, 131, 129, 116, 106, 103, 90, 126, 121, 109, 112, 107, 95, 130, 126, 114, 114, 109, 97, 103, 98, 86, 96, 91, 77, 99, 96, 85, 112, 107, 93, 141, 138, 123, 91, 88, 75, 83, 82, 73, 87, 85, 79, 73, 74, 69, 87, 85, 81, 77, 76, 72, 74, 75, 70, 68, 66, 62, 83, 83, 79, 73, 74, 67, 95, 93, 87, 98, 97, 91, 81, 80, 71, 137, 134, 126, 114, 111, 103, 147, 146, 137, 118, 117, 106, 100, 100, 87, 109, 109, 95, 98, 98, 86, 109, 108, 97, 129, 131, 119, 97, 96, 87, 103, 102, 93, 84, 83, 75, 137, 135, 129, 153, 152, 145, 142, 141, 135, 140, 139, 132, 146, 145, 136, 146, 145, 136, 148, 148, 136, 146, 143, 133, 156, 153, 140, 150, 147, 136, 151, 148, 136, 157, 154, 142, 161, 159, 148, 165, 162, 152, 164, 161, 153, 167, 164, 156, 158, 155, 147, 166, 163, 155, 167, 161, 152, 168, 162, 153, 167, 162, 150, 133, 134, 115, 108, 107, 94, 112, 112, 100, 120, 116, 108, 139, 138, 129, 123, 122, 113, 114, 114, 105, 107, 104, 96, 113, 109, 101, 129, 126, 118, 134, 134, 123, 140, 140, 128, 151, 148, 138, 147, 145, 134, 142, 139, 128, 145, 142, 132, 137, 134, 124, 156, 153, 145, 134, 130, 122, 126, 125, 117, 133, 132, 124, 126, 125, 117, 138, 136, 130, 130, 128, 122, 135, 134, 130, 124, 123, 116, 170, 169, 161, 211, 211, 197, 255, 255, 255, 252, 252, 236, 246, 246, 230, 240, 240, 224, 243, 241, 226, 243, 241, 224, 236, 236, 218, 229, 227, 210, 238, 237, 219, 205, 203, 185, 238, 237, 219, 236, 234, 219, 238, 236, 221, 236, 234, 219, 237, 235, 220, 245, 243, 228, 255, 255, 248, 219, 216, 201, 138, 136, 123, 0, 0, 0, 166, 164, 158, 123, 121, 117, 131, 129, 125, 112, 111, 107, 121, 120, 116, 121, 120, 114, 119, 118, 112, 126, 125, 119, 118, 117, 110, 120, 119, 113, 122, 118, 113, 127, 126, 120, 122, 117, 117, 118, 115, 116, 114, 112, 113, 124, 121, 124, 126, 125, 128, 123, 123, 125, 122, 121, 126, 113, 112, 117, 117, 118, 125, 124, 125, 132, 144, 145, 151, 127, 128, 132, 133, 135, 137, 123, 124, 121, 123, 124, 119, 125, 123, 119, 124, 122, 118, 128, 127, 123, 125, 123, 119, 128, 127, 123, 128, 128, 126, 125, 125, 123, 126, 127, 122, 137, 138, 135, 142, 142, 140, 142, 143, 138, 135, 135, 133, 136, 136, 134, 137, 138, 133, 140, 140, 140, 132, 130, 126, 141, 140, 134, 148, 147, 139, 146, 143, 133, 131, 130, 121, 149, 148, 140, 145, 142, 134, 144, 142, 136, 148, 147, 141, 142, 141, 135, 151, 149, 143, 147, 146, 139, 154, 153, 147, 152, 151, 144, 162, 163, 156, 152, 151, 144, 152, 151, 144, 154, 155, 148, 153, 153, 149, 151, 152, 147, 145, 147, 139, 147, 147, 143, 153, 151, 147, 148, 147, 141, 143, 144, 137, 148, 147, 141, 135, 134, 128, 137, 135, 129, 147, 146, 139, 151, 149, 145, 144, 142, 138, 144, 142, 138, 142, 141, 137, 149, 148, 144, 142, 143, 138, 139, 137, 133, 137, 138, 133, 135, 134, 130, 135, 134, 128, 140, 139, 132, 144, 142, 136, 140, 139, 132, 142, 141, 135, 135, 134, 128, 133, 132, 126, 133, 131, 128, 139, 137, 133, 132, 131, 124, 142, 141, 137, 139, 137, 133, 145, 143, 139, 138, 139, 134, 142, 143, 138, 127, 128, 123, 133, 136, 133, 131, 134, 131, 130, 133, 129, 127, 129, 126, 142, 144, 141, 125, 128, 125, 133, 136, 133, 135, 137, 134, 125, 125, 125, 122, 122, 122, 124, 126, 126, 127, 127, 125, 125, 125, 123, 133, 133, 131, 118, 118, 116, 116, 117, 114, 122, 123, 118, 121, 121, 119, 116, 117, 114, 125, 123, 119, 138, 139, 134, 118, 117, 108, 120, 120, 109, 136, 133, 123, 128, 125, 114, 129, 126, 118, 130, 127, 119, 127, 123, 115, 128, 128, 119, 127, 126, 118, 125, 124, 117, 122, 118, 113, 138, 135, 127, 134, 130, 124, 127, 126, 118, 123, 125, 117, 130, 131, 128, 127, 127, 125, 122, 123, 120, 122, 123, 118, 127, 126, 122, 133, 131, 128, 133, 133, 129, 137, 138, 133, 131, 132, 128, 131, 132, 128, 141, 140, 136, 134, 135, 130, 133, 133, 129, 129, 130, 125, 134, 135, 130, 130, 128, 122, 137, 139, 131, 119, 120, 115, 131, 132, 128, 129, 130, 125, 129, 130, 125, 135, 136, 131, 129, 130, 125, 133, 134, 127, 143, 144, 137, 135, 134, 128, 138, 136, 130, 151, 150, 141, 140, 139, 130, 151, 148, 138, 150, 147, 136, 157, 154, 144, 146, 144, 131, 166, 163, 153, 158, 155, 147, 163, 157, 150, 157, 153, 148, 163, 162, 156, 156, 155, 149, 161, 160, 154, 147, 146, 139, 165, 163, 157, 163, 160, 149, 166, 163, 153, 111, 109, 98, 128, 128, 119, 125, 125, 121, 125, 126, 119, 121, 122, 115, 120, 119, 113, 112, 113, 106, 124, 123, 116, 120, 119, 113, 99, 98, 92, 62, 62, 58, 135, 134, 128, 142, 138, 130, 158, 155, 147, 139, 136, 128, 143, 140, 132, 135, 131, 124, 137, 134, 126, 139, 136, 128, 128, 125, 117, 133, 132, 124, 126, 125, 117, 125, 124, 117, 124, 123, 116, 141, 140, 136, 160, 158, 156, 141, 140, 136, 182, 182, 168, 255, 255, 255, 255, 255, 248, 253, 253, 237, 253, 253, 237, 251, 251, 233, 251, 251, 233, 251, 251, 233, 249, 250, 232, 252, 251, 233, 254, 252, 234, 254, 252, 234, 250, 248, 231, 250, 248, 231, 248, 246, 226, 250, 249, 229, 255, 255, 249, 255, 255, 250, 194, 193, 173, 125, 123, 108, 93, 90, 82, 138, 139, 134, 127, 126, 122, 124, 122, 118, 119, 118, 114, 114, 113, 109, 121, 120, 114, 114, 113, 107, 116, 114, 108, 156, 155, 149, 115, 111, 106, 127, 126, 120, 114, 113, 107, 131, 129, 127, 125, 124, 127, 126, 125, 130, 121, 118, 124, 121, 120, 125, 120, 121, 125, 121, 121, 130, 119, 122, 130, 116, 118, 129, 117, 120, 128, 120, 120, 131, 118, 121, 131, 123, 126, 134, 85, 85, 83, 123, 121, 117, 123, 121, 117, 123, 121, 117, 128, 127, 123, 125, 123, 119, 90, 88, 84, 136, 138, 139, 129, 130, 134, 124, 126, 130, 125, 127, 131, 121, 122, 126, 116, 119, 125, 123, 126, 132, 119, 123, 128, 116, 120, 123, 121, 125, 130, 113, 117, 120, 122, 124, 123, 111, 114, 109, 149, 148, 140, 141, 137, 129, 147, 144, 136, 140, 139, 130, 155, 151, 145, 149, 148, 142, 115, 116, 113, 116, 116, 116, 122, 122, 122, 118, 118, 118, 131, 131, 131, 130, 132, 131, 141, 141, 141, 151, 151, 151, 143, 143, 141, 131, 133, 133, 149, 149, 147, 134, 135, 130, 156, 156, 154, 156, 155, 151, 141, 140, 134, 146, 145, 138, 149, 148, 142, 152, 150, 146, 148, 146, 145, 136, 137, 132, 135, 135, 133, 147, 147, 145, 162, 162, 160, 146, 144, 142, 144, 145, 142, 138, 139, 136, 142, 140, 139, 140, 140, 138, 140, 140, 136, 138, 140, 132, 138, 136, 130, 135, 134, 128, 138, 136, 130, 142, 138, 130, 137, 135, 129, 127, 126, 120, 134, 133, 129, 135, 134, 130, 142, 143, 138, 142, 140, 139, 131, 132, 129, 137, 134, 133, 140, 140, 138, 142, 144, 141, 135, 137, 134, 127, 129, 126, 124, 127, 124, 118, 121, 118, 127, 129, 126, 128, 128, 126, 126, 126, 124, 128, 128, 126, 131, 132, 129, 123, 123, 123, 132, 135, 134, 122, 124, 123, 124, 126, 128, 125, 128, 127, 125, 128, 127, 115, 117, 118, 121, 121, 121, 114, 116, 117, 107, 109, 110, 99, 100, 102, 109, 109, 109, 107, 107, 107, 121, 122, 117, 118, 117, 110, 121, 118, 110, 132, 129, 123, 118, 115, 107, 131, 128, 122, 95, 93, 87, 113, 114, 109, 97, 97, 93, 104, 104, 102, 115, 116, 113, 111, 109, 107, 112, 110, 109, 114, 114, 114, 104, 104, 104, 102, 102, 102, 102, 102, 102, 104, 104, 104, 111, 111, 109, 128, 127, 123, 130, 128, 122, 132, 131, 124, 135, 134, 128, 136, 137, 132, 128, 129, 124, 96, 99, 96, 114, 116, 113, 110, 112, 112, 111, 114, 111, 106, 108, 107, 108, 110, 109, 102, 104, 104, 100, 102, 101, 96, 98, 98, 96, 98, 98, 104, 107, 106, 101, 103, 102, 102, 105, 102, 136, 137, 132, 128, 129, 122, 138, 136, 130, 135, 135, 126, 148, 147, 139, 142, 141, 133, 155, 152, 141, 159, 156, 146, 156, 153, 142, 153, 151, 140, 156, 153, 142, 165, 161, 156, 66, 64, 60, 134, 135, 130, 116, 117, 112, 126, 127, 122, 132, 130, 126, 130, 131, 126, 124, 122, 118, 133, 133, 129, 127, 126, 122, 114, 115, 108, 118, 119, 112, 123, 121, 115, 163, 162, 156, 129, 130, 123, 111, 112, 105, 126, 127, 120, 120, 121, 114, 122, 123, 116, 108, 109, 102, 58, 59, 54, 64, 65, 60, 79, 75, 70, 61, 58, 52, 15, 12, 4, 78, 74, 66, 147, 144, 136, 135, 131, 124, 134, 130, 122, 146, 145, 138, 134, 133, 127, 134, 133, 127, 130, 132, 124, 134, 135, 130, 127, 128, 123, 149, 149, 147, 162, 162, 162, 0, 0, 0, 182, 182, 168, 237, 237, 221, 222, 222, 206, 224, 224, 208, 218, 219, 200, 219, 220, 201, 223, 221, 206, 212, 210, 192, 213, 211, 193, 210, 209, 191, 203, 202, 184, 209, 204, 188, 209, 208, 188, 205, 203, 183, 205, 201, 182, 185, 184, 163, 198, 196, 176, 117, 116, 96, 75, 74, 63, 159, 157, 153, 133, 133, 129, 125, 125, 121, 118, 118, 114, 123, 121, 117, 119, 118, 114, 120, 119, 115, 112, 111, 105, 118, 117, 110, 119, 118, 112, 120, 119, 111, 130, 128, 122, 97, 96, 89, 130, 127, 130, 127, 126, 131, 126, 125, 132, 187, 186, 193, 200, 199, 204, 207, 208, 212, 136, 137, 143, 127, 128, 134, 114, 118, 124, 120, 124, 131, 121, 121, 130, 120, 124, 131, 118, 121, 129, 65, 67, 64, 16, 14, 8, 0, 0, 0, 0, 0, 0, 40, 39, 32, 84, 85, 78, 92, 93, 88, 131, 133, 137, 137, 138, 144, 142, 142, 151, 133, 135, 141, 126, 130, 135, 126, 129, 137, 120, 125, 132, 119, 124, 131, 113, 118, 126, 119, 125, 129, 113, 118, 126, 113, 118, 126, 116, 122, 129, 157, 159, 149, 151, 150, 141, 146, 145, 136, 151, 150, 141, 90, 89, 82, 120, 121, 114, 123, 125, 125, 122, 123, 127, 127, 128, 134, 125, 127, 133, 127, 128, 134, 123, 126, 134, 125, 128, 136, 133, 136, 144, 131, 134, 142, 120, 124, 131, 121, 125, 132, 124, 127, 135, 109, 111, 113, 145, 143, 141, 160, 158, 154, 159, 158, 151, 146, 145, 138, 85, 84, 80, 107, 107, 109, 120, 119, 124, 128, 129, 135, 132, 133, 140, 132, 134, 138, 134, 133, 140, 131, 131, 135, 130, 130, 134, 125, 127, 131, 122, 123, 127, 117, 119, 123, 119, 123, 124, 151, 153, 143, 140, 139, 132, 138, 136, 130, 140, 139, 132, 126, 125, 119, 99, 98, 94, 116, 117, 114, 113, 112, 115, 119, 119, 119, 121, 121, 123, 121, 121, 123, 122, 122, 124, 116, 118, 120, 115, 117, 118, 118, 120, 122, 110, 112, 114, 109, 111, 115, 89, 92, 89, 126, 127, 122, 116, 119, 114, 123, 124, 119, 126, 127, 122, 122, 123, 120, 51, 52, 49, 123, 125, 125, 118, 121, 120, 133, 135, 137, 120, 121, 123, 137, 139, 140, 121, 123, 124, 127, 126, 131, 115, 116, 120, 114, 115, 119, 109, 110, 117, 106, 107, 111, 113, 113, 113, 91, 92, 87, 127, 126, 118, 124, 123, 114, 119, 118, 110, 78, 77, 71, 59, 57, 51, 84, 85, 80, 115, 116, 111, 115, 116, 113, 116, 119, 116, 112, 112, 110, 115, 116, 113, 112, 112, 110, 106, 108, 107, 102, 104, 104, 107, 109, 108, 109, 109, 111, 101, 103, 104, 102, 103, 100, 124, 123, 116, 119, 118, 112, 118, 117, 110, 130, 128, 122, 62, 61, 54, 55, 56, 51, 87, 90, 86, 116, 119, 116, 100, 105, 104, 116, 120, 119, 109, 113, 112, 117, 121, 120, 106, 111, 109, 98, 105, 102, 96, 101, 99, 106, 111, 109, 99, 104, 102, 93, 100, 98, 100, 102, 99, 133, 133, 129, 125, 126, 119, 132, 131, 122, 127, 126, 118, 139, 138, 129, 146, 143, 135, 151, 148, 140, 156, 153, 145, 156, 156, 145, 165, 164, 155, 54, 53, 44, 53, 54, 49, 48, 52, 46, 130, 131, 126, 120, 121, 116, 218, 218, 214, 231, 230, 223, 226, 225, 219, 255, 252, 247, 218, 217, 210, 196, 195, 188, 120, 120, 118, 126, 127, 120, 134, 133, 127, 215, 213, 207, 183, 184, 177, 197, 196, 190, 184, 183, 177, 118, 119, 112, 115, 116, 109, 113, 114, 107, 63, 64, 57, 64, 65, 60, 54, 52, 48, 75, 71, 68, 82, 79, 73, 0, 0, 0, 0, 0, 0, 132, 129, 121, 135, 131, 124, 138, 136, 130, 137, 135, 129, 146, 145, 138, 138, 136, 132, 136, 137, 132, 129, 131, 128, 138, 139, 136, 190, 190, 190, 200, 201, 198, 112, 111, 103, 109, 109, 93, 167, 168, 147, 100, 101, 83, 91, 94, 75, 62, 65, 46, 91, 92, 74, 82, 82, 66, 74, 72, 57, 79, 77, 60, 94, 92, 75, 81, 79, 64, 71, 69, 53, 104, 103, 85, 70, 66, 49, 85, 83, 65, 118, 118, 104, 149, 150, 143, 158, 159, 154, 134, 135, 130, 113, 114, 109, 120, 121, 116, 119, 118, 114, 119, 118, 114, 118, 118, 114, 119, 120, 115, 111, 110, 103, 117, 116, 109, 104, 105, 98, 0, 0, 0, 88, 90, 82, 71, 72, 67, 121, 121, 123, 125, 124, 128, 129, 128, 133, 244, 244, 248, 161, 160, 165, 238, 240, 244, 180, 182, 184, 215, 216, 220, 203, 204, 211, 204, 208, 213, 107, 107, 116, 113, 116, 124, 112, 115, 123, 102, 104, 104, 23, 21, 17, 0, 0, 0, 0, 0, 0, 57, 58, 51, 63, 64, 57, 58, 59, 52, 131, 133, 135, 136, 137, 141, 133, 135, 139, 208, 209, 213, 255, 255, 255, 216, 220, 223, 192, 196, 201, 192, 196, 199, 253, 255, 255, 133, 137, 142, 109, 113, 116, 115, 121, 126, 113, 117, 122, 32, 36, 28, 0, 0, 0, 11, 10, 1, 88, 87, 78, 80, 81, 74, 70, 71, 66, 64, 66, 65, 113, 114, 118, 132, 133, 140, 119, 123, 128, 208, 211, 217, 164, 168, 174, 140, 143, 151, 127, 130, 138, 171, 175, 183, 134, 137, 145, 120, 123, 133, 126, 129, 137, 94, 95, 101, 138, 139, 134, 135, 136, 131, 135, 136, 131, 63, 64, 59, 76, 76, 72, 84, 84, 82, 123, 125, 128, 124, 125, 132, 138, 139, 146, 138, 140, 144, 131, 132, 139, 137, 138, 144, 125, 128, 134, 131, 134, 140, 140, 144, 149, 124, 127, 133, 120, 126, 130, 140, 144, 138, 165, 164, 155, 154, 153, 145, 110, 107, 99, 71, 71, 62, 55, 53, 49, 129, 129, 129, 124, 126, 130, 122, 121, 126, 128, 129, 131, 135, 136, 140, 127, 128, 132, 125, 129, 132, 123, 125, 128, 131, 133, 137, 121, 122, 128, 118, 119, 126, 93, 95, 92, 144, 145, 138, 143, 144, 137, 112, 113, 106, 116, 118, 110, 59, 60, 55, 55, 55, 53, 125, 128, 127, 125, 128, 127, 122, 124, 123, 116, 118, 120, 179, 181, 182, 137, 139, 140, 125, 127, 129, 128, 129, 131, 135, 136, 138, 110, 112, 116, 104, 106, 110, 104, 106, 108, 112, 112, 110, 90, 89, 80, 23, 21, 15, 43, 42, 36, 54, 53, 46, 64, 63, 59, 59, 60, 55, 122, 123, 118, 116, 117, 112, 106, 107, 102, 229, 230, 227, 209, 210, 207, 191, 191, 189, 194, 195, 192, 171, 173, 170, 193, 193, 193, 108, 108, 110, 102, 104, 104, 101, 104, 100, 129, 130, 123, 0, 0, 0, 42, 41, 35, 63, 64, 57, 51, 52, 45, 60, 61, 56, 60, 63, 60, 114, 114, 112, 160, 163, 160, 172, 175, 171, 144, 147, 143, 110, 113, 110, 118, 121, 118, 203, 206, 203, 158, 161, 158, 200, 202, 199, 202, 205, 202, 97, 100, 97, 109, 112, 109, 81, 82, 77, 107, 108, 101, 129, 130, 123, 134, 133, 125, 138, 136, 130, 132, 131, 122, 136, 133, 125, 21, 18, 7, 42, 41, 33, 56, 57, 48, 50, 51, 44, 48, 52, 44, 41, 47, 40, 110, 113, 108, 123, 125, 117, 131, 132, 128, 133, 132, 126, 148, 147, 141, 138, 136, 130, 169, 168, 162, 121, 121, 112, 121, 122, 115, 144, 145, 140, 124, 123, 116, 110, 109, 102, 135, 136, 129, 118, 119, 110, 112, 113, 104, 113, 114, 107, 116, 120, 112, 58, 59, 52, 44, 45, 38, 57, 56, 52, 53, 51, 47, 54, 52, 48, 74, 72, 66, 66, 64, 58, 0, 0, 0, 0, 0, 0, 131, 130, 121, 146, 145, 138, 137, 139, 131, 139, 137, 133, 133, 133, 129, 140, 140, 136, 130, 133, 129, 136, 138, 135, 135, 137, 134, 132, 135, 132, 137, 138, 135, 145, 146, 141, 138, 139, 134, 139, 137, 133, 130, 131, 128, 125, 125, 121, 119, 120, 115, 116, 117, 114, 115, 115, 115, 125, 125, 125, 135, 135, 137, 142, 140, 141, 151, 148, 149, 151, 148, 149, 146, 143, 144, 130, 130, 130, 126, 126, 124, 122, 123, 120, 122, 123, 118, 123, 124, 119, 122, 123, 118, 125, 125, 121, 116, 117, 112, 122, 123, 118, 118, 116, 112, 130, 128, 124, 121, 120, 114, 98, 99, 92, 0, 0, 0, 96, 95, 84, 82, 81, 72, 83, 84, 77, 133, 133, 131, 125, 124, 128, 123, 123, 127, 130, 130, 134, 120, 121, 125, 117, 119, 123, 124, 125, 132, 116, 117, 124, 120, 121, 127, 125, 128, 134, 128, 132, 139, 118, 121, 131, 129, 133, 141, 131, 133, 135, 30, 28, 24, 0, 0, 0, 18, 17, 8, 36, 36, 27, 53, 55, 46, 44, 45, 38, 75, 78, 77, 132, 134, 138, 133, 134, 143, 128, 129, 135, 138, 139, 146, 136, 137, 143, 140, 144, 149, 166, 169, 175, 128, 132, 137, 237, 240, 246, 119, 123, 128, 117, 123, 130, 112, 116, 121, 36, 39, 33, 0, 0, 0, 60, 62, 54, 56, 55, 47, 76, 75, 68, 67, 69, 62, 43, 43, 41, 131, 133, 137, 118, 119, 126, 118, 119, 126, 187, 189, 193, 118, 119, 126, 214, 218, 223, 191, 195, 200, 175, 179, 184, 124, 127, 133, 128, 132, 139, 123, 126, 134, 128, 132, 139, 0, 0, 0, 69, 69, 65, 66, 67, 62, 64, 65, 60, 64, 65, 60, 50, 50, 50, 130, 130, 134, 124, 126, 130, 128, 129, 133, 191, 195, 198, 187, 189, 193, 225, 227, 231, 212, 216, 219, 224, 228, 231, 244, 248, 251, 123, 127, 130, 113, 117, 120, 114, 119, 118, 0, 0, 0, 58, 60, 50, 54, 53, 44, 59, 58, 49, 48, 49, 44, 135, 135, 133, 127, 127, 129, 125, 125, 125, 171, 171, 173, 192, 192, 192, 223, 223, 225, 223, 225, 227, 209, 211, 213, 195, 197, 197, 127, 128, 130, 111, 113, 115, 115, 117, 116, 115, 118, 112, 0, 0, 0, 38, 40, 32, 45, 47, 39, 42, 43, 36, 43, 44, 39, 95, 97, 97, 127, 129, 128, 125, 128, 127, 124, 126, 126, 210, 213, 212, 216, 218, 218, 160, 163, 162, 203, 206, 205, 196, 198, 200, 97, 99, 101, 100, 102, 103, 102, 104, 106, 89, 92, 91, 108, 110, 100, 0, 0, 0, 22, 23, 16, 33, 34, 27, 41, 42, 37, 22, 23, 18, 120, 121, 116, 114, 117, 111, 116, 117, 114, 144, 145, 142, 95, 96, 93, 104, 107, 104, 141, 141, 139, 111, 114, 111, 115, 117, 114, 99, 101, 100, 96, 98, 98, 102, 105, 102, 74, 76, 68, 0, 0, 0, 9, 10, 5, 29, 30, 25, 33, 34, 27, 22, 25, 19, 42, 44, 41, 110, 113, 110, 113, 115, 112, 99, 101, 98, 104, 107, 104, 103, 108, 102, 106, 111, 107, 99, 104, 100, 91, 97, 90, 99, 101, 98, 87, 90, 86, 92, 97, 95, 114, 116, 113, 106, 107, 102, 19, 19, 15, 130, 129, 120, 137, 135, 129, 152, 151, 144, 141, 140, 132, 68, 67, 58, 0, 0, 0, 41, 42, 33, 38, 41, 34, 44, 47, 39, 36, 39, 31, 39, 43, 35, 58, 61, 55, 124, 127, 122, 125, 125, 121, 168, 167, 160, 206, 206, 197, 245, 244, 235, 226, 225, 217, 247, 246, 238, 125, 129, 119, 116, 118, 108, 118, 119, 110, 140, 139, 132, 169, 170, 163, 118, 119, 110, 108, 110, 100, 114, 116, 106, 74, 78, 70, 51, 52, 45, 62, 63, 56, 57, 58, 53, 50, 51, 46, 58, 59, 54, 60, 62, 54, 57, 58, 53, 0, 0, 0, 0, 0, 0, 137, 136, 127, 131, 133, 126, 134, 135, 128, 130, 132, 124, 135, 136, 131, 137, 138, 133, 133, 136, 133, 135, 135, 133, 138, 141, 138, 131, 134, 131, 130, 133, 129, 133, 133, 131, 131, 131, 131, 128, 128, 126, 132, 135, 134, 127, 127, 129, 124, 126, 128, 127, 128, 132, 127, 127, 129, 125, 127, 129, 127, 126, 131, 131, 131, 133, 133, 130, 133, 130, 130, 132, 133, 132, 135, 128, 130, 129, 131, 132, 129, 131, 132, 129, 129, 130, 125, 122, 123, 120, 121, 122, 117, 129, 130, 125, 120, 121, 116, 125, 125, 121, 136, 137, 132, 132, 131, 124, 145, 143, 137, 0, 0, 0, 0, 0, 0, 85, 85, 74, 90, 90, 78, 83, 83, 71, 121, 121, 110, 121, 121, 119, 119, 116, 120, 123, 123, 127, 119, 118, 125, 117, 119, 123, 119, 118, 125, 127, 128, 134, 122, 123, 129, 121, 121, 130, 118, 119, 128, 116, 118, 129, 111, 114, 122, 124, 126, 130, 17, 18, 15, 55, 54, 48, 0, 0, 0, 30, 29, 20, 13, 12, 4, 42, 43, 36, 48, 48, 48, 138, 138, 140, 137, 137, 141, 141, 140, 147, 130, 131, 137, 129, 130, 134, 121, 122, 126, 123, 124, 130, 116, 119, 125, 112, 116, 121, 118, 122, 127, 117, 120, 126, 119, 123, 126, 99, 101, 100, 33, 37, 29, 0, 2, 0, 43, 43, 34, 55, 56, 47, 76, 77, 70, 34, 35, 30, 132, 134, 138, 124, 126, 130, 133, 135, 141, 125, 127, 133, 131, 132, 139, 123, 126, 132, 124, 127, 135, 127, 130, 138, 125, 128, 136, 134, 137, 147, 126, 129, 137, 124, 125, 134, 104, 107, 106, 22, 22, 20, 41, 42, 37, 29, 30, 25, 49, 49, 47, 34, 34, 34, 138, 140, 142, 128, 129, 135, 125, 127, 133, 127, 128, 134, 136, 140, 144, 139, 143, 146, 128, 132, 137, 120, 124, 127, 121, 125, 128, 117, 120, 126, 117, 120, 126, 136, 138, 139, 29, 30, 23, 17, 21, 13, 12, 13, 6, 28, 29, 22, 52, 53, 48, 120, 120, 118, 131, 131, 133, 128, 128, 130, 125, 124, 127, 130, 130, 132, 182, 181, 184, 123, 125, 127, 112, 116, 117, 117, 119, 121, 118, 120, 124, 120, 121, 125, 116, 118, 120, 83, 87, 79, 7, 10, 2, 12, 13, 6, 30, 31, 24, 41, 42, 35, 24, 25, 20, 74, 77, 74, 130, 132, 131, 122, 124, 123, 117, 119, 119, 120, 122, 121, 121, 123, 122, 109, 111, 113, 107, 112, 113, 108, 109, 113, 100, 101, 105, 100, 101, 105, 97, 99, 103, 109, 112, 109, 103, 102, 93, 0, 0, 0, 6, 7, 2, 21, 22, 17, 21, 24, 18, 22, 23, 18, 116, 119, 114, 111, 114, 109, 114, 117, 111, 115, 117, 114, 108, 111, 107, 108, 110, 109, 109, 111, 113, 109, 111, 111, 109, 111, 113, 102, 104, 106, 101, 103, 104, 106, 108, 107, 57, 57, 55, 0, 0, 0, 0, 0, 0, 10, 11, 6, 26, 29, 24, 9, 12, 6, 18, 21, 18, 117, 120, 117, 107, 109, 106, 111, 114, 111, 122, 125, 121, 113, 115, 114, 107, 109, 108, 102, 106, 105, 100, 102, 101, 105, 110, 108, 101, 103, 102, 103, 106, 105, 101, 104, 100, 90, 90, 86, 0, 0, 0, 137, 135, 129, 134, 133, 127, 142, 141, 133, 146, 145, 136, 116, 115, 106, 0, 0, 0, 68, 67, 58, 61, 65, 55, 60, 64, 56, 18, 22, 14, 32, 36, 28, 33, 37, 29, 128, 129, 122, 133, 132, 126, 131, 129, 123, 153, 152, 145, 130, 128, 122, 130, 128, 122, 130, 129, 120, 127, 134, 120, 130, 132, 120, 134, 134, 123, 128, 130, 118, 119, 119, 107, 103, 102, 93, 72, 74, 64, 102, 104, 94, 148, 149, 142, 51, 52, 45, 44, 45, 38, 47, 48, 41, 79, 80, 75, 52, 53, 48, 55, 56, 51, 69, 69, 65, 0, 0, 0, 77, 78, 71, 138, 137, 128, 133, 132, 126, 145, 143, 137, 131, 133, 126, 134, 135, 128, 136, 137, 132, 132, 135, 132, 124, 127, 124, 132, 135, 134, 131, 133, 133, 129, 131, 130, 135, 135, 135, 135, 135, 135, 133, 133, 133, 128, 129, 131, 127, 128, 132, 132, 134, 138, 133, 135, 139, 135, 136, 138, 125, 127, 131, 125, 127, 131, 129, 131, 132, 129, 129, 131, 129, 131, 132, 131, 133, 135, 129, 131, 130, 128, 130, 127, 125, 125, 121, 114, 115, 110, 129, 130, 125, 118, 118, 114, 119, 120, 115, 119, 120, 115, 122, 123, 118, 120, 121, 116, 135, 134, 128, 126, 125, 119, 0, 0, 0, 0, 0, 0, 84, 84, 72, 91, 92, 74, 102, 100, 83, 112, 112, 96, 69, 69, 53, 147, 146, 128, 144, 144, 128, 149, 149, 138, 131, 133, 124, 133, 134, 127, 125, 126, 119, 120, 119, 115, 123, 121, 119, 125, 123, 121, 119, 120, 115, 133, 133, 129, 116, 117, 112, 13, 12, 8, 56, 57, 50, 0, 0, 0, 12, 11, 2, 0, 0, 0, 59, 57, 51, 44, 45, 40, 94, 91, 90, 144, 144, 144, 140, 138, 138, 136, 136, 138, 131, 131, 133, 134, 133, 136, 111, 113, 115, 125, 127, 129, 124, 128, 129, 114, 119, 120, 116, 120, 121, 118, 123, 121, 115, 118, 112, 26, 30, 22, 0, 0, 0, 52, 54, 44, 55, 56, 49, 88, 90, 82, 49, 50, 43, 108, 111, 103, 123, 126, 123, 131, 133, 133, 117, 119, 121, 119, 123, 124, 120, 124, 127, 123, 126, 132, 124, 127, 135, 120, 124, 131, 126, 129, 137, 117, 120, 128, 126, 130, 133, 68, 71, 70, 0, 0, 0, 55, 53, 51, 21, 21, 19, 59, 60, 57, 37, 37, 37, 52, 52, 52, 122, 124, 125, 117, 119, 123, 128, 132, 135, 134, 138, 141, 135, 139, 142, 132, 135, 141, 128, 132, 135, 129, 133, 137, 126, 130, 133, 119, 123, 126, 117, 122, 118, 53, 57, 49, 14, 17, 9, 0, 0, 0, 44, 45, 38, 30, 31, 28, 94, 95, 90, 130, 131, 128, 123, 125, 125, 129, 129, 129, 128, 128, 130, 133, 132, 135, 127, 128, 132, 127, 128, 132, 124, 126, 128, 124, 126, 130, 121, 122, 126, 120, 122, 121, 47, 51, 43, 71, 72, 65, 0, 0, 0, 0, 0, 0, 42, 43, 36, 36, 39, 31, 22, 25, 19, 116, 119, 116, 122, 125, 121, 121, 123, 120, 116, 118, 118, 129, 131, 130, 114, 116, 115, 111, 113, 115, 109, 111, 113, 100, 101, 105, 99, 100, 102, 100, 102, 101, 110, 113, 110, 80, 81, 74, 0, 0, 0, 0, 0, 0, 17, 19, 11, 12, 12, 8, 12, 12, 8, 106, 107, 102, 120, 121, 116, 113, 114, 109, 112, 112, 110, 111, 111, 109, 106, 106, 104, 100, 102, 99, 111, 111, 111, 109, 110, 107, 103, 106, 105, 104, 104, 104, 97, 100, 97, 51, 52, 49, 1, 2, 0, 0, 0, 0, 5, 9, 3, 35, 38, 32, 14, 17, 11, 0, 0, 0, 118, 121, 116, 125, 128, 123, 117, 120, 115, 113, 116, 110, 109, 112, 107, 111, 114, 109, 97, 100, 97, 103, 106, 103, 103, 106, 103, 108, 111, 107, 95, 98, 95, 86, 89, 83, 66, 67, 60, 3, 5, 0, 121, 121, 112, 141, 140, 132, 146, 145, 136, 148, 147, 139, 119, 118, 110, 0, 0, 0, 30, 32, 22, 46, 50, 42, 35, 38, 28, 22, 25, 17, 25, 29, 21, 40, 44, 36, 138, 136, 130, 148, 147, 141, 135, 134, 128, 134, 133, 127, 134, 133, 125, 130, 129, 120, 130, 129, 120, 78, 75, 64, 71, 71, 60, 78, 78, 67, 74, 76, 64, 78, 80, 68, 74, 76, 64, 107, 109, 99, 87, 89, 79, 93, 95, 85, 81, 83, 73, 55, 56, 49, 58, 59, 52, 57, 58, 51, 52, 53, 48, 38, 41, 34, 0, 0, 0, 0, 0, 0, 130, 129, 120, 134, 135, 128, 130, 132, 124, 135, 136, 129, 125, 124, 117, 137, 138, 133, 131, 132, 128, 130, 131, 128, 137, 139, 138, 121, 123, 122, 131, 133, 133, 124, 126, 126, 124, 126, 126, 132, 135, 134, 131, 133, 133, 129, 131, 132, 125, 127, 129, 124, 126, 128, 130, 131, 135, 123, 125, 127, 137, 139, 140, 125, 127, 129, 129, 131, 132, 133, 132, 135, 125, 127, 129, 129, 131, 132, 128, 129, 131, 123, 125, 125, 118, 121, 118, 121, 121, 119, 123, 124, 121, 127, 127, 125, 133, 133, 129, 130, 131, 126, 120, 121, 116, 124, 122, 118, 125, 126, 119, 133, 132, 126, 0, 0, 0, 40, 39, 28, 59, 58, 47, 82, 81, 70, 88, 85, 75, 43, 43, 30, 77, 77, 64, 53, 50, 40, 53, 52, 41, 49, 49, 38, 53, 52, 41, 60, 59, 48, 43, 43, 30, 59, 58, 45, 63, 60, 49, 74, 73, 62, 50, 49, 43, 57, 57, 48, 67, 66, 57, 61, 60, 51, 45, 44, 35, 0, 0, 0, 60, 59, 50, 5, 4, 0, 54, 53, 44, 132, 131, 122, 62, 61, 52, 73, 72, 63, 73, 71, 65, 69, 68, 62, 70, 69, 63, 60, 62, 54, 52, 54, 46, 57, 58, 51, 48, 52, 44, 61, 65, 57, 61, 65, 57, 67, 71, 63, 73, 76, 68, 7, 10, 2, 0, 0, 0, 52, 54, 44, 37, 39, 29, 79, 81, 71, 56, 57, 48, 59, 61, 51, 72, 74, 64, 65, 66, 59, 76, 80, 72, 92, 93, 86, 81, 85, 77, 102, 106, 98, 118, 118, 114, 108, 109, 104, 111, 111, 109, 101, 102, 97, 83, 83, 81, 10, 11, 8, 0, 0, 0, 27, 27, 25, 27, 28, 23, 45, 46, 41, 45, 46, 41, 95, 96, 91, 88, 91, 88, 76, 79, 76, 100, 102, 101, 115, 117, 116, 138, 140, 140, 135, 137, 136, 163, 165, 162, 138, 140, 140, 136, 138, 135, 128, 131, 125, 132, 135, 130, 38, 40, 32, 42, 43, 36, 0, 0, 0, 13, 14, 7, 37, 38, 31, 105, 106, 99, 138, 140, 132, 150, 151, 144, 137, 139, 131, 137, 139, 131, 140, 139, 132, 140, 138, 134, 133, 131, 128, 123, 121, 117, 125, 126, 119, 104, 105, 98, 114, 116, 106, 40, 41, 32, 95, 97, 89, 0, 0, 0, 7, 10, 2, 43, 44, 37, 23, 24, 17, 51, 52, 45, 74, 76, 68, 116, 115, 106, 121, 121, 112, 125, 126, 117, 120, 119, 111, 114, 114, 103, 105, 106, 97, 98, 99, 92, 83, 87, 81, 71, 74, 66, 64, 65, 58, 73, 74, 67, 55, 54, 46, 0, 0, 0, 0, 1, 0, 8, 9, 2, 17, 19, 11, 37, 38, 31, 58, 59, 52, 63, 64, 57, 62, 63, 56, 59, 61, 53, 49, 50, 45, 53, 54, 49, 52, 54, 46, 49, 50, 43, 51, 52, 45, 52, 54, 46, 63, 64, 57, 55, 56, 51, 56, 57, 52, 48, 49, 44, 0, 0, 0, 0, 0, 0, 30, 33, 27, 11, 14, 9, 110, 114, 106, 45, 48, 41, 52, 55, 48, 52, 55, 48, 45, 49, 39, 48, 52, 44, 55, 56, 47, 42, 45, 37, 53, 56, 51, 51, 54, 48, 53, 56, 51, 61, 65, 57, 59, 63, 52, 40, 44, 34, 35, 36, 27, 126, 125, 117, 144, 143, 134, 140, 139, 130, 145, 144, 135, 131, 130, 121, 0, 0, 0, 0, 2, 0, 48, 52, 42, 23, 25, 15, 28, 31, 23, 15, 17, 7, 102, 104, 94, 77, 76, 68, 88, 85, 77, 83, 84, 75, 90, 89, 80, 85, 85, 76, 92, 92, 81, 77, 77, 65, 75, 73, 60, 89, 87, 74, 72, 69, 59, 70, 70, 59, 74, 76, 64, 72, 74, 62, 64, 66, 54, 88, 90, 78, 65, 67, 55, 98, 99, 90, 48, 49, 42, 53, 57, 49, 70, 71, 64, 59, 62, 54, 31, 35, 27, 0, 0, 0, 94, 96, 88, 116, 118, 110, 131, 133, 126, 123, 125, 117, 140, 141, 134, 143, 144, 137, 133, 133, 131, 136, 136, 134, 128, 130, 127, 122, 125, 121, 131, 133, 133, 133, 136, 135, 136, 138, 137, 139, 141, 141, 138, 140, 140, 137, 139, 140, 131, 133, 135, 127, 128, 130, 129, 131, 132, 135, 136, 138, 136, 138, 139, 137, 139, 140, 125, 127, 129, 127, 128, 132, 137, 137, 139, 128, 129, 131, 125, 127, 129, 157, 157, 159, 120, 120, 120, 119, 119, 117, 127, 127, 125, 123, 124, 121, 128, 128, 126, 125, 125, 123, 133, 133, 129, 120, 121, 116, 123, 124, 119, 119, 120, 115, 127, 126, 120, 0, 0, 0, 0, 0, 0, 83, 83, 71, 86, 83, 70, 155, 152, 141, 53, 50, 40, 50, 47, 34, 54, 52, 41, 61, 60, 49, 43, 43, 32, 52, 51, 40, 53, 53, 39, 234, 231, 218, 162, 162, 149, 143, 140, 128, 54, 53, 42, 66, 65, 56, 59, 58, 49, 56, 55, 47, 62, 61, 52, 6, 5, 0, 0, 0, 0, 38, 37, 28, 47, 46, 37, 42, 42, 31, 81, 80, 69, 66, 65, 56, 56, 55, 47, 73, 72, 63, 63, 62, 54, 57, 57, 48, 123, 122, 113, 109, 111, 101, 109, 111, 101, 71, 73, 63, 68, 72, 62, 53, 57, 47, 74, 78, 68, 69, 73, 65, 17, 21, 13, 0, 0, 0, 56, 57, 48, 42, 43, 34, 59, 61, 51, 131, 133, 124, 78, 80, 70, 72, 74, 64, 78, 80, 70, 77, 78, 69, 72, 74, 64, 88, 90, 80, 81, 83, 73, 90, 91, 82, 68, 72, 64, 73, 76, 68, 67, 69, 62, 70, 71, 66, 64, 65, 60, 49, 50, 45, 30, 31, 26, 27, 28, 23, 53, 55, 48, 47, 48, 41, 106, 107, 102, 77, 78, 73, 65, 68, 62, 50, 53, 47, 66, 69, 64, 66, 69, 64, 68, 71, 66, 67, 71, 63, 61, 64, 59, 59, 62, 54, 64, 67, 59, 64, 65, 60, 50, 51, 44, 12, 13, 6, 9, 10, 3, 6, 7, 0, 2, 4, 0, 131, 130, 121, 78, 80, 70, 81, 80, 71, 70, 71, 62, 77, 76, 68, 84, 83, 75, 83, 83, 71, 87, 86, 75, 82, 81, 70, 84, 84, 72, 81, 83, 71, 62, 64, 52, 81, 83, 71, 58, 60, 50, 0, 0, 0, 3, 7, 0, 31, 33, 23, 8, 10, 0, 122, 124, 114, 65, 67, 55, 76, 77, 68, 82, 81, 70, 75, 74, 63, 84, 84, 72, 88, 87, 76, 78, 78, 67, 71, 73, 61, 73, 75, 65, 69, 70, 61, 66, 68, 58, 67, 69, 62, 48, 49, 40, 17, 19, 11, 0, 0, 0, 0, 0, 0, 7, 8, 1, 91, 92, 85, 66, 67, 60, 63, 62, 54, 63, 62, 54, 61, 60, 51, 96, 95, 86, 62, 61, 52, 67, 66, 57, 77, 79, 67, 58, 60, 50, 65, 67, 57, 64, 66, 56, 58, 60, 50, 74, 76, 68, 66, 67, 62, 0, 0, 0, 7, 10, 4, 9, 12, 4, 30, 33, 27, 35, 38, 32, 55, 59, 51, 55, 59, 51, 55, 59, 51, 57, 61, 50, 57, 61, 50, 56, 57, 48, 57, 59, 49, 57, 61, 50, 59, 61, 51, 54, 58, 48, 59, 63, 52, 46, 50, 40, 60, 62, 52, 88, 87, 78, 102, 101, 92, 146, 145, 136, 149, 148, 140, 147, 148, 139, 141, 140, 132, 70, 69, 61, 0, 0, 0, 22, 26, 15, 35, 34, 26, 34, 33, 25, 128, 128, 119, 67, 64, 54, 77, 76, 68, 87, 86, 77, 78, 78, 69, 75, 74, 63, 80, 79, 70, 78, 78, 67, 81, 80, 69, 88, 81, 69, 69, 62, 51, 138, 135, 125, 255, 255, 243, 66, 69, 54, 72, 74, 62, 76, 76, 64, 74, 76, 64, 67, 69, 57, 109, 111, 101, 144, 146, 136, 59, 61, 51, 60, 64, 56, 38, 40, 32, 17, 19, 11, 40, 41, 34, 111, 112, 105, 122, 123, 116, 131, 133, 126, 141, 142, 135, 141, 142, 135, 133, 133, 129, 132, 135, 132, 130, 131, 128, 141, 141, 139, 133, 136, 133, 121, 123, 122, 132, 135, 134, 129, 131, 130, 132, 135, 134, 139, 141, 141, 137, 139, 140, 130, 132, 133, 135, 136, 138, 135, 136, 138, 127, 128, 130, 135, 136, 140, 125, 127, 129, 124, 126, 128, 125, 127, 131, 131, 131, 133, 128, 129, 131, 129, 131, 132, 127, 128, 130, 126, 125, 128, 129, 129, 129, 119, 119, 119, 126, 126, 126, 127, 127, 125, 139, 137, 135, 128, 126, 125, 128, 126, 125, 124, 122, 118, 120, 119, 115, 140, 139, 132, 13, 12, 4, 0, 0, 0, 59, 56, 46, 93, 90, 78, 32, 30, 17, 43, 40, 27, 50, 47, 36, 74, 68, 59, 57, 54, 43, 54, 52, 41, 53, 50, 40, 56, 53, 40, 217, 215, 202, 255, 255, 245, 253, 252, 241, 64, 64, 53, 62, 61, 52, 66, 65, 56, 67, 66, 57, 54, 53, 44, 48, 48, 36, 42, 42, 31, 10, 9, 0, 73, 72, 61, 94, 93, 82, 59, 58, 49, 71, 71, 62, 62, 61, 52, 55, 54, 46, 63, 62, 54, 62, 61, 52, 202, 204, 194, 60, 62, 52, 223, 225, 216, 65, 69, 58, 61, 65, 55, 60, 64, 56, 68, 72, 64, 60, 64, 56, 60, 64, 56, 1, 3, 0, 37, 39, 29, 44, 46, 36, 38, 40, 30, 81, 83, 73, 70, 71, 62, 70, 71, 64, 66, 68, 58, 69, 70, 61, 72, 74, 64, 249, 251, 241, 176, 177, 168, 255, 255, 254, 65, 69, 58, 66, 69, 62, 62, 66, 56, 76, 80, 70, 69, 70, 63, 60, 62, 54, 9, 10, 3, 30, 31, 24, 38, 40, 32, 118, 119, 112, 76, 77, 70, 65, 66, 61, 65, 68, 62, 62, 62, 58, 62, 65, 60, 46, 50, 42, 210, 214, 206, 206, 210, 199, 106, 109, 99, 54, 58, 50, 64, 65, 58, 62, 63, 56, 67, 69, 62, 51, 52, 45, 3, 5, 0, 21, 22, 15, 77, 76, 68, 82, 81, 72, 75, 74, 65, 76, 76, 64, 71, 71, 60, 83, 83, 69, 226, 226, 213, 167, 167, 153, 178, 178, 165, 240, 240, 226, 66, 69, 54, 74, 76, 64, 73, 75, 63, 79, 81, 69, 64, 66, 54, 0, 0, 0, 0, 0, 0, 23, 27, 16, 44, 48, 37, 69, 70, 61, 76, 77, 68, 74, 73, 64, 78, 78, 67, 72, 74, 62, 239, 238, 227, 170, 170, 159, 159, 158, 147, 148, 148, 136, 62, 63, 54, 63, 64, 55, 73, 74, 67, 69, 70, 63, 72, 74, 64, 66, 67, 60, 0, 0, 0, 0, 0, 0, 69, 70, 61, 52, 54, 44, 53, 55, 46, 59, 58, 49, 70, 69, 61, 41, 40, 32, 189, 188, 179, 131, 130, 121, 71, 71, 62, 158, 157, 146, 64, 64, 55, 50, 52, 42, 50, 51, 44, 55, 56, 47, 70, 71, 64, 77, 78, 73, 0, 0, 0, 17, 20, 15, 14, 17, 9, 107, 110, 104, 47, 50, 45, 48, 52, 44, 48, 52, 44, 61, 65, 57, 44, 47, 39, 57, 61, 50, 37, 41, 30, 59, 62, 54, 55, 59, 49, 55, 59, 49, 55, 56, 47, 74, 78, 68, 59, 61, 51, 59, 61, 51, 76, 77, 68, 33, 32, 23, 135, 135, 126, 131, 130, 119, 148, 149, 140, 183, 182, 174, 87, 86, 77, 0, 0, 0, 20, 21, 12, 21, 20, 12, 53, 50, 40, 60, 59, 48, 80, 79, 68, 76, 75, 66, 67, 69, 57, 66, 68, 56, 74, 73, 62, 73, 72, 61, 65, 67, 55, 73, 75, 63, 91, 86, 72, 61, 59, 44, 166, 164, 151, 102, 99, 89, 77, 74, 63, 71, 71, 60, 81, 80, 69, 70, 70, 59, 76, 77, 68, 66, 68, 56, 83, 85, 72, 94, 98, 87, 59, 61, 51, 0, 0, 0, 0, 0, 0, 153, 154, 147, 115, 116, 109, 118, 119, 112, 130, 132, 124, 131, 133, 126, 130, 133, 128, 138, 139, 134, 137, 138, 135, 141, 141, 139, 130, 133, 129, 136, 138, 135, 137, 140, 136, 131, 133, 133, 136, 138, 137, 135, 137, 136, 132, 135, 134, 136, 138, 139, 128, 129, 131, 137, 139, 140, 132, 134, 136, 153, 155, 157, 125, 127, 129, 127, 128, 130, 125, 127, 129, 125, 127, 129, 131, 133, 135, 130, 132, 133, 129, 131, 132, 123, 125, 127, 123, 123, 125, 126, 126, 126, 130, 130, 130, 120, 120, 120, 128, 128, 128, 126, 124, 123, 118, 116, 114, 123, 121, 119, 144, 142, 138, 131, 129, 125, 151, 153, 145, 41, 42, 33, 0, 0, 0, 91, 91, 80, 162, 162, 151, 58, 55, 45, 64, 61, 50, 37, 34, 24, 56, 53, 42, 58, 55, 45, 54, 52, 41, 67, 64, 54, 52, 51, 40, 49, 49, 36, 48, 50, 36, 58, 60, 48, 55, 55, 43, 44, 46, 34, 60, 62, 52, 60, 59, 50, 56, 55, 47, 67, 66, 57, 33, 32, 23, 0, 0, 0, 47, 46, 35, 113, 113, 102, 61, 58, 50, 57, 57, 48, 61, 60, 51, 61, 60, 51, 56, 55, 47, 53, 52, 43, 85, 87, 77, 64, 66, 56, 50, 54, 43, 61, 65, 55, 51, 54, 46, 58, 61, 53, 55, 59, 51, 29, 33, 22, 29, 32, 24, 8, 9, 2, 0, 0, 0, 38, 40, 30, 133, 134, 125, 58, 59, 52, 65, 67, 57, 66, 68, 58, 67, 69, 60, 80, 82, 72, 58, 60, 50, 229, 231, 221, 232, 233, 226, 248, 249, 242, 75, 79, 71, 72, 76, 65, 69, 70, 61, 63, 64, 57, 63, 64, 57, 53, 55, 48, 0, 0, 0, 28, 29, 22, 10, 12, 4, 92, 93, 86, 45, 47, 39, 57, 58, 53, 55, 59, 51, 56, 57, 50, 51, 54, 46, 51, 55, 44, 157, 161, 150, 220, 223, 213, 96, 100, 90, 79, 82, 74, 52, 55, 48, 60, 64, 56, 51, 52, 45, 59, 61, 51, 5, 6, 0, 31, 33, 23, 118, 117, 108, 61, 60, 51, 67, 66, 55, 82, 81, 70, 70, 69, 61, 77, 77, 65, 234, 234, 221, 69, 69, 55, 222, 221, 208, 232, 232, 218, 66, 68, 56, 81, 83, 71, 76, 77, 68, 70, 71, 62, 80, 82, 72, 50, 52, 42, 0, 0, 0, 14, 17, 7, 111, 115, 105, 69, 70, 61, 59, 61, 51, 55, 57, 45, 61, 60, 49, 54, 53, 42, 174, 173, 162, 71, 71, 60, 64, 64, 53, 61, 60, 49, 69, 68, 60, 63, 64, 55, 86, 88, 78, 71, 73, 63, 76, 77, 68, 69, 70, 61, 0, 0, 0, 0, 0, 0, 64, 66, 56, 61, 60, 51, 54, 53, 44, 55, 54, 46, 61, 60, 51, 73, 72, 63, 35, 34, 26, 94, 93, 82, 124, 124, 110, 41, 41, 29, 50, 52, 42, 41, 42, 33, 47, 48, 41, 40, 41, 32, 44, 45, 38, 64, 65, 58, 0, 0, 0, 0, 2, 0, 118, 124, 117, 37, 40, 32, 52, 55, 49, 58, 61, 53, 51, 54, 46, 52, 55, 48, 50, 54, 43, 36, 40, 29, 62, 66, 56, 59, 63, 52, 55, 59, 49, 47, 51, 41, 65, 67, 57, 57, 61, 50, 62, 63, 56, 67, 69, 60, 71, 73, 63, 11, 10, 1, 125, 124, 115, 133, 132, 124, 144, 146, 136, 147, 146, 137, 117, 116, 107, 0, 0, 0, 37, 39, 29, 33, 30, 22, 72, 69, 59, 77, 74, 63, 63, 60, 49, 73, 72, 61, 68, 67, 58, 66, 65, 54, 66, 65, 54, 73, 72, 61, 75, 74, 63, 64, 64, 53, 97, 97, 83, 67, 67, 53, 97, 96, 85, 68, 68, 54, 71, 71, 58, 67, 69, 57, 80, 82, 70, 58, 60, 48, 58, 62, 49, 72, 76, 65, 64, 68, 55, 91, 92, 83, 31, 35, 25, 0, 0, 0, 72, 75, 67, 81, 83, 73, 122, 123, 116, 136, 137, 130, 120, 121, 114, 129, 132, 124, 139, 142, 137, 131, 134, 129, 140, 143, 140, 127, 129, 126, 128, 130, 127, 139, 142, 139, 125, 128, 125, 131, 133, 133, 132, 135, 134, 138, 140, 140, 129, 129, 129, 133, 132, 135, 141, 140, 143, 141, 140, 143, 136, 136, 138, 135, 135, 137, 133, 132, 135, 134, 133, 138, 129, 131, 132, 128, 129, 131, 129, 131, 132, 128, 129, 131, 131, 133, 135, 125, 127, 129, 127, 128, 130, 125, 127, 129, 129, 129, 129, 130, 130, 130, 126, 126, 126, 126, 124, 125, 134, 132, 131, 131, 132, 129, 131, 129, 125, 130, 128, 124, 126, 125, 121, 65, 66, 59, 0, 0, 0, 75, 74, 65, 51, 53, 41, 60, 59, 48, 41, 41, 29, 40, 40, 26, 46, 44, 31, 65, 62, 52, 49, 46, 35, 80, 77, 67, 64, 64, 51, 81, 81, 67, 57, 59, 45, 55, 57, 45, 67, 69, 60, 57, 59, 49, 42, 43, 34, 47, 48, 39, 54, 53, 44, 53, 55, 43, 37, 39, 29, 0, 0, 0, 85, 87, 77, 43, 45, 33, 53, 52, 41, 57, 57, 48, 52, 51, 42, 50, 49, 43, 50, 51, 44, 45, 43, 37, 52, 54, 44, 38, 40, 30, 51, 55, 44, 55, 59, 49, 50, 54, 43, 57, 60, 52, 25, 29, 19, 42, 45, 37, 46, 50, 42, 48, 52, 44, 0, 0, 0, 50, 52, 42, 79, 81, 71, 67, 69, 60, 55, 56, 47, 55, 56, 47, 77, 78, 69, 50, 52, 42, 53, 55, 46, 64, 66, 56, 72, 74, 64, 73, 75, 65, 70, 71, 64, 78, 81, 71, 60, 64, 54, 58, 59, 52, 65, 66, 59, 47, 51, 43, 0, 0, 0, 27, 28, 21, 104, 105, 98, 53, 55, 48, 52, 54, 46, 50, 51, 46, 51, 52, 45, 60, 64, 56, 54, 58, 50, 51, 54, 46, 46, 50, 42, 48, 52, 42, 54, 58, 50, 62, 66, 58, 68, 72, 64, 44, 47, 39, 55, 59, 51, 66, 68, 58, 13, 14, 5, 122, 124, 114, 70, 71, 62, 80, 79, 70, 64, 64, 55, 61, 60, 49, 94, 93, 82, 69, 69, 57, 63, 63, 50, 59, 58, 45, 67, 67, 53, 64, 66, 52, 71, 73, 61, 77, 79, 67, 72, 74, 62, 77, 79, 67, 87, 89, 77, 63, 64, 57, 0, 0, 0, 10, 12, 2, 50, 54, 43, 62, 63, 54, 59, 61, 51, 63, 64, 55, 74, 76, 66, 57, 57, 48, 62, 62, 50, 62, 62, 50, 52, 51, 42, 61, 60, 49, 86, 88, 78, 55, 56, 47, 66, 68, 58, 60, 62, 52, 45, 47, 37, 64, 66, 56, 0, 0, 0, 108, 110, 100, 48, 47, 39, 50, 50, 41, 61, 60, 51, 56, 55, 47, 45, 44, 35, 55, 54, 46, 47, 48, 39, 54, 53, 44, 44, 46, 36, 36, 40, 27, 50, 52, 42, 51, 52, 45, 74, 76, 66, 67, 69, 60, 69, 70, 61, 58, 61, 53, 0, 0, 0, 38, 41, 34, 59, 64, 56, 44, 47, 39, 45, 48, 41, 39, 43, 33, 39, 43, 35, 40, 44, 36, 54, 58, 48, 51, 55, 44, 46, 50, 40, 44, 46, 36, 42, 45, 35, 55, 56, 47, 54, 58, 50, 57, 61, 50, 56, 57, 50, 63, 64, 55, 72, 74, 64, 0, 0, 0, 119, 118, 110, 129, 131, 121, 121, 123, 113, 146, 145, 136, 149, 148, 140, 3, 2, 0, 18, 17, 8, 117, 114, 104, 63, 59, 51, 70, 67, 56, 66, 63, 53, 68, 66, 55, 50, 50, 41, 67, 66, 57, 54, 53, 44, 64, 64, 55, 69, 69, 57, 64, 64, 53, 10, 14, 6, 35, 36, 27, 0, 0, 0, 2, 4, 0, 7, 9, 0, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 76, 66, 93, 96, 88, 114, 117, 109, 122, 123, 116, 130, 133, 126, 130, 133, 128, 133, 139, 132, 133, 137, 131, 132, 135, 130, 131, 134, 131, 137, 140, 134, 132, 135, 132, 133, 136, 133, 144, 147, 143, 132, 135, 134, 135, 137, 136, 135, 135, 137, 126, 125, 128, 140, 139, 142, 137, 137, 139, 128, 128, 130, 143, 143, 145, 137, 137, 139, 131, 131, 133, 129, 129, 131, 131, 133, 135, 129, 131, 132, 125, 127, 129, 125, 127, 129, 130, 130, 132, 139, 141, 143, 121, 123, 124, 128, 129, 131, 128, 130, 129, 128, 128, 128, 128, 128, 128, 121, 121, 121, 127, 125, 124, 126, 126, 124, 131, 129, 125, 132, 130, 126, 130, 131, 126, 140, 140, 136, 0, 0, 0, 8, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 16, 9, 12, 13, 6, 9, 11, 1, 10, 12, 2, 20, 21, 14, 15, 16, 9, 30, 31, 24, 16, 19, 11, 10, 14, 6, 26, 30, 22, 52, 55, 48, 45, 48, 41, 33, 37, 29, 26, 30, 22, 28, 31, 23, 33, 37, 29, 23, 26, 18, 0, 0, 0, 47, 51, 43, 31, 35, 27, 46, 49, 44, 51, 54, 46, 42, 45, 37, 43, 46, 38, 51, 54, 46, 53, 57, 49, 60, 64, 56, 61, 65, 57, 67, 71, 61, 53, 57, 49, 58, 60, 50, 76, 80, 70, 65, 69, 58, 42, 45, 35, 65, 66, 59, 6, 7, 0, 0, 0, 0, 35, 36, 29, 55, 56, 49, 50, 51, 44, 64, 65, 58, 58, 61, 53, 61, 65, 57, 59, 63, 52, 61, 65, 57, 55, 59, 49, 72, 76, 65, 62, 66, 56, 76, 80, 70, 45, 49, 39, 51, 54, 46, 59, 63, 52, 65, 69, 58, 12, 13, 4, 85, 87, 77, 55, 56, 47, 64, 64, 55, 52, 51, 42, 63, 62, 54, 75, 74, 65, 66, 65, 56, 53, 55, 43, 56, 58, 46, 56, 58, 46, 57, 61, 48, 58, 60, 48, 66, 68, 58, 53, 55, 46, 53, 55, 46, 62, 63, 54, 52, 55, 48, 0, 0, 0, 82, 86, 76, 45, 48, 41, 45, 48, 41, 35, 38, 30, 26, 30, 20, 45, 47, 39, 31, 29, 23, 48, 47, 39, 35, 34, 26, 16, 15, 6, 20, 21, 12, 17, 19, 9, 20, 19, 11, 27, 28, 19, 13, 12, 4, 6, 7, 0, 0, 0, 0, 0, 0, 0, 16, 18, 8, 24, 26, 16, 10, 12, 2, 9, 11, 1, 12, 11, 4, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, 0, 0, 90, 69, 60, 3, 0, 0, 39, 36, 28, 2, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 0, 1, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, 11, 3, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 105, 96, 135, 137, 127, 122, 124, 114, 132, 131, 122, 152, 151, 142, 59, 58, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 130, 115, 113, 112, 104, 125, 128, 123, 112, 120, 110, 111, 117, 108, 118, 119, 110, 124, 123, 114, 127, 126, 120, 112, 111, 105, 108, 106, 100, 130, 128, 122, 113, 114, 105, 113, 112, 104, 108, 106, 100, 114, 115, 108, 127, 128, 121, 127, 130, 122, 136, 139, 131, 129, 132, 126, 127, 133, 126, 131, 136, 130, 126, 132, 125, 132, 135, 130, 129, 131, 128, 135, 137, 134, 130, 133, 129, 132, 135, 132, 134, 134, 134, 127, 127, 127, 123, 123, 123, 130, 130, 130, 141, 141, 141, 129, 129, 131, 127, 127, 129, 140, 139, 142, 134, 133, 136, 135, 135, 137, 134, 133, 136, 136, 136, 138, 128, 129, 131, 177, 176, 179, 125, 124, 127, 136, 138, 139, 128, 128, 130, 118, 120, 122, 132, 134, 136, 126, 125, 128, 126, 126, 126, 126, 126, 126, 120, 120, 120, 137, 134, 135, 127, 127, 127, 129, 129, 129, 125, 123, 121, 119, 119, 117, 144, 147, 143, 122, 125, 121, 133, 136, 135, 107, 107, 107, 92, 93, 88, 89, 87, 83, 103, 102, 93, 106, 105, 99, 92, 91, 85, 111, 110, 103, 109, 107, 101, 135, 134, 130, 102, 100, 94, 115, 116, 109, 112, 113, 108, 108, 109, 102, 86, 87, 82, 108, 109, 102, 111, 109, 105, 124, 122, 118, 119, 119, 117, 136, 136, 134, 131, 133, 135, 121, 123, 124, 107, 108, 105, 102, 105, 100, 96, 100, 92, 97, 98, 91, 81, 82, 77, 85, 86, 81, 67, 70, 65, 66, 69, 64, 67, 70, 65, 55, 56, 51, 56, 57, 52, 39, 42, 37, 47, 48, 41, 38, 41, 34, 23, 26, 18, 40, 44, 36, 52, 55, 49, 0, 1, 0, 9, 12, 8, 8, 10, 7, 29, 34, 33, 3, 6, 3, 0, 0, 0, 21, 26, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 1, 0, 9, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 16, 17, 10, 8, 11, 3, 0, 3, 0, 5, 9, 3, 14, 17, 9, 0, 0, 0, 2, 5, 0, 0, 0, 0, 5, 9, 1, 0, 2, 0, 7, 10, 4, 7, 10, 4, 29, 32, 26, 17, 18, 13, 26, 29, 24, 17, 20, 15, 19, 23, 15, 27, 28, 23, 33, 33, 29, 50, 51, 44, 66, 68, 58, 51, 53, 43, 52, 54, 44, 66, 68, 58, 65, 67, 57, 98, 99, 92, 100, 101, 94, 95, 96, 91, 97, 97, 93, 113, 114, 107, 94, 96, 88, 81, 83, 73, 78, 79, 72, 77, 78, 69, 94, 92, 86, 95, 96, 91, 92, 92, 90, 90, 90, 88, 71, 71, 69, 69, 74, 72, 86, 86, 86, 83, 83, 83, 81, 81, 81, 92, 92, 92, 101, 103, 102, 103, 107, 108, 116, 120, 121, 109, 116, 118, 96, 103, 103, 72, 79, 79, 77, 84, 81, 77, 82, 80, 85, 90, 88, 76, 81, 79, 78, 83, 81, 98, 103, 101, 95, 100, 96, 93, 98, 97, 76, 81, 77, 76, 81, 77, 93, 95, 92, 80, 82, 81, 109, 111, 113, 128, 128, 126, 129, 129, 127, 142, 143, 136, 140, 144, 136, 140, 141, 134, 136, 137, 130, 129, 131, 121, 137, 136, 127, 138, 137, 128, 140, 139, 130, 132, 131, 122, 121, 118, 110, 152, 149, 139, 125, 123, 110, 124, 122, 109, 137, 132, 121, 134, 131, 116, 115, 110, 98, 127, 124, 113, 131, 128, 118, 131, 128, 120, 123, 120, 112, 97, 97, 93, 121, 122, 117, 93, 99, 95, 88, 96, 93, 91, 98, 95, 96, 100, 101, 103, 107, 108, 116, 118, 120, 128, 129, 133, 94, 96, 97, 125, 125, 123, 126, 126, 124, 120, 121, 114, 122, 123, 116, 133, 134, 127, 142, 145, 139, 127, 133, 126, 125, 130, 124, 124, 129, 123, 126, 132, 125, 125, 128, 123, 121, 124, 118, 131, 134, 131, 134, 135, 130, 128, 128, 126, 135, 135, 133, 140, 140, 140, 134, 134, 134, 127, 127, 127, 134, 133, 136, 126, 125, 128, 128, 128, 128, 131, 131, 133, 176, 175, 178, 135, 135, 137, 131, 131, 133, 127, 127, 129, 125, 124, 127, 129, 129, 131, 138, 140, 142, 139, 141, 143, 124, 126, 128, 135, 135, 137, 117, 119, 121, 117, 119, 123, 123, 125, 127, 119, 118, 121, 125, 124, 127, 120, 119, 122, 135, 135, 137, 127, 127, 129, 121, 121, 123, 129, 129, 131, 121, 121, 121, 118, 117, 120, 130, 132, 133, 121, 122, 126, 124, 126, 130, 118, 120, 124, 111, 113, 117, 109, 111, 115, 109, 111, 115, 120, 119, 124, 118, 117, 122, 114, 115, 119, 108, 109, 113, 107, 108, 112, 119, 118, 123, 107, 108, 112, 107, 108, 112, 100, 100, 102, 127, 125, 124, 121, 121, 119, 123, 121, 119, 125, 123, 121, 133, 133, 133, 135, 135, 137, 51, 52, 56, 130, 131, 139, 128, 129, 135, 130, 131, 139, 128, 128, 137, 123, 124, 132, 115, 116, 124, 109, 110, 119, 109, 110, 117, 107, 111, 117, 103, 106, 112, 99, 103, 106, 101, 103, 104, 97, 100, 99, 123, 124, 121, 130, 132, 124, 116, 117, 112, 142, 143, 138, 161, 161, 157, 137, 139, 131, 31, 34, 31, 144, 146, 147, 139, 141, 143, 138, 140, 144, 136, 137, 141, 129, 133, 137, 125, 127, 131, 116, 120, 123, 119, 123, 128, 116, 119, 125, 113, 116, 124, 119, 122, 130, 114, 118, 124, 99, 104, 104, 136, 139, 133, 135, 136, 129, 143, 144, 137, 137, 138, 133, 138, 140, 132, 105, 106, 101, 111, 114, 111, 104, 107, 106, 102, 105, 102, 109, 111, 111, 114, 116, 115, 132, 135, 130, 117, 120, 115, 104, 107, 104, 111, 114, 111, 106, 108, 105, 110, 113, 108, 104, 107, 102, 133, 133, 129, 137, 138, 133, 138, 140, 132, 136, 137, 130, 123, 125, 117, 123, 125, 117, 81, 82, 77, 99, 99, 97, 114, 114, 112, 109, 109, 109, 111, 111, 111, 106, 108, 107, 118, 121, 120, 102, 104, 104, 96, 98, 100, 103, 105, 107, 102, 104, 104, 111, 113, 115, 103, 105, 107, 136, 138, 139, 135, 137, 136, 129, 131, 130, 113, 115, 112, 120, 120, 118, 123, 126, 123, 86, 88, 87, 101, 103, 102, 113, 114, 116, 102, 104, 106, 102, 104, 106, 101, 103, 104, 110, 112, 114, 99, 100, 104, 130, 131, 135, 103, 105, 109, 99, 100, 106, 88, 90, 94, 99, 100, 104, 132, 135, 134, 125, 125, 121, 104, 104, 102, 107, 108, 103, 113, 112, 108, 97, 97, 93, 28, 28, 26, 124, 126, 126, 124, 128, 129, 125, 129, 132, 124, 128, 131, 123, 127, 130, 124, 127, 133, 128, 132, 137, 124, 127, 133, 116, 122, 127, 120, 126, 130, 121, 127, 134, 120, 125, 132, 122, 130, 136, 128, 133, 141, 123, 129, 136, 115, 121, 128, 123, 129, 134, 121, 127, 132, 114, 120, 125, 119, 125, 129, 113, 119, 124, 110, 116, 121, 116, 122, 127, 117, 120, 128, 113, 117, 122, 113, 117, 122, 109, 112, 118, 114, 118, 124, 113, 117, 122, 108, 110, 111, 113, 118, 114, 85, 88, 80, 137, 140, 132, 134, 135, 128, 136, 137, 130, 136, 137, 130, 137, 136, 127, 134, 133, 127, 117, 114, 106, 151, 148, 140, 146, 143, 135, 143, 140, 132, 153, 151, 140, 165, 160, 153, 38, 35, 27, 123, 119, 116, 98, 96, 93, 116, 112, 109, 121, 117, 114, 126, 119, 117, 116, 117, 114, 86, 86, 86, 90, 94, 95, 84, 90, 90, 88, 92, 93, 93, 95, 96, 96, 98, 100, 97, 99, 103, 96, 98, 102, 90, 92, 98, 132, 134, 138, 51, 52, 58, 128, 130, 129, 131, 132, 129, 125, 128, 123, 131, 134, 129, 119, 125, 118, 118, 123, 119, 119, 125, 118, 121, 127, 123, 113, 118, 114, 118, 124, 117, 128, 130, 127, 130, 133, 128, 122, 125, 121, 130, 131, 128, 123, 123, 123, 134, 134, 134, 130, 130, 130, 129, 129, 129, 125, 125, 125, 133, 133, 133, 133, 132, 135, 134, 133, 136, 126, 125, 128, 129, 128, 133, 127, 126, 131, 131, 131, 135, 126, 125, 128, 131, 131, 133, 133, 132, 135, 138, 138, 140, 121, 123, 124, 115, 116, 120, 116, 118, 122, 115, 116, 120, 116, 118, 122, 108, 109, 113, 117, 121, 124, 120, 124, 127, 112, 116, 119, 98, 102, 105, 104, 108, 111, 102, 106, 109, 102, 106, 109, 98, 102, 105, 97, 101, 104, 100, 104, 110, 107, 108, 114, 101, 102, 108, 102, 103, 112, 96, 97, 106, 95, 96, 105, 97, 98, 107, 101, 102, 110, 106, 106, 115, 106, 107, 113, 109, 110, 117, 107, 108, 114, 106, 110, 115, 128, 129, 135, 81, 82, 79, 129, 129, 127, 162, 161, 157, 119, 120, 115, 121, 121, 119, 35, 35, 33, 25, 28, 27, 136, 137, 143, 127, 127, 136, 124, 125, 136, 122, 123, 131, 120, 120, 131, 111, 112, 123, 115, 115, 126, 102, 104, 115, 99, 102, 112, 95, 97, 108, 99, 102, 112, 92, 96, 103, 100, 99, 104, 116, 116, 116, 133, 133, 129, 141, 142, 135, 147, 148, 141, 134, 135, 130, 37, 38, 33, 14, 16, 13, 123, 125, 127, 130, 132, 133, 135, 136, 140, 135, 136, 140, 130, 131, 135, 126, 130, 135, 120, 124, 129, 125, 128, 136, 113, 116, 126, 113, 116, 126, 109, 111, 122, 105, 108, 118, 113, 117, 122, 146, 149, 146, 140, 144, 136, 145, 148, 143, 146, 149, 144, 113, 114, 107, 45, 47, 39, 108, 110, 111, 100, 101, 105, 111, 112, 119, 114, 115, 119, 124, 126, 130, 116, 118, 122, 110, 112, 116, 117, 121, 124, 114, 118, 122, 113, 114, 118, 109, 111, 113, 103, 106, 105, 99, 101, 98, 145, 148, 143, 143, 144, 139, 138, 140, 132, 119, 120, 113, 21, 22, 17, 64, 64, 62, 113, 113, 113, 121, 121, 123, 129, 129, 131, 133, 135, 139, 125, 127, 133, 121, 121, 130, 118, 119, 126, 114, 118, 126, 110, 111, 120, 108, 109, 115, 105, 108, 116, 101, 102, 108, 120, 121, 125, 139, 142, 139, 131, 132, 128, 135, 135, 133, 116, 117, 112, 38, 39, 36, 60, 62, 62, 128, 129, 131, 129, 130, 134, 121, 125, 130, 111, 115, 120, 117, 120, 126, 103, 106, 112, 106, 110, 115, 102, 105, 111, 100, 104, 110, 94, 95, 103, 90, 94, 99, 90, 92, 98, 82, 84, 86, 116, 117, 114, 120, 121, 116, 112, 112, 110, 56, 57, 52, 21, 21, 19, 13, 13, 13, 123, 125, 127, 120, 124, 127, 121, 127, 130, 120, 124, 127, 116, 122, 127, 121, 127, 134, 123, 129, 136, 122, 130, 136, 119, 127, 134, 116, 122, 131, 113, 121, 130, 117, 125, 133, 117, 123, 132, 120, 125, 134, 119, 124, 133, 117, 123, 132, 116, 122, 131, 110, 118, 126, 113, 118, 128, 112, 117, 126, 110, 115, 127, 112, 120, 131, 109, 114, 126, 109, 114, 126, 109, 115, 124, 113, 118, 126, 106, 112, 117, 108, 114, 119, 110, 113, 119, 112, 116, 119, 106, 113, 109, 75, 80, 76, 131, 135, 127, 128, 129, 122, 127, 128, 121, 137, 135, 129, 138, 136, 130, 138, 136, 130, 144, 143, 134, 153, 152, 143, 152, 149, 141, 160, 158, 147, 54, 52, 41, 12, 11, 2, 25, 24, 17, 97, 97, 93, 98, 98, 94, 111, 109, 105, 113, 114, 109, 120, 121, 116, 67, 64, 65, 89, 92, 91, 79, 84, 85, 81, 85, 86, 89, 94, 92, 89, 91, 93, 104, 106, 108, 255, 255, 255, 78, 79, 83, 85, 89, 92, 91, 95, 100, 166, 169, 175, 35, 40, 40, 137, 138, 135, 159, 160, 156, 130, 133, 126, 107, 113, 107, 120, 126, 119, 110, 115, 109, 106, 112, 105, 116, 121, 117, 104, 109, 105, 118, 121, 118, 127, 129, 126, 134, 134, 132, 134, 134, 132, 119, 119, 119, 125, 125, 125, 126, 126, 126, 129, 129, 129, 119, 119, 119, 138, 138, 138, 130, 130, 132, 127, 127, 129, 130, 130, 132, 121, 121, 123, 123, 123, 127, 123, 123, 127, 128, 127, 132, 127, 127, 129, 133, 132, 135, 122, 122, 124, 119, 118, 121, 123, 125, 128, 120, 121, 125, 114, 118, 122, 114, 118, 122, 124, 128, 131, 105, 109, 112, 107, 111, 115, 105, 109, 112, 100, 104, 108, 97, 101, 104, 96, 100, 103, 93, 97, 101, 99, 103, 106, 90, 92, 96, 227, 228, 230, 93, 94, 98, 107, 108, 114, 96, 97, 104, 94, 95, 103, 106, 106, 115, 97, 98, 107, 99, 99, 110, 98, 101, 111, 102, 105, 113, 100, 104, 112, 102, 105, 113, 96, 99, 105, 107, 111, 117, 70, 70, 68, 162, 163, 158, 133, 132, 124, 118, 118, 114, 51, 52, 47, 94, 95, 92, 47, 49, 51, 131, 132, 139, 131, 132, 141, 125, 126, 135, 123, 124, 132, 115, 116, 124, 113, 113, 124, 255, 255, 255, 118, 121, 129, 104, 107, 115, 98, 101, 109, 95, 97, 108, 93, 96, 107, 92, 93, 99, 66, 66, 66, 166, 164, 160, 150, 151, 144, 114, 115, 108, 42, 41, 35, 44, 45, 38, 29, 31, 28, 100, 102, 103, 131, 133, 135, 133, 135, 137, 133, 135, 137, 128, 129, 131, 123, 127, 130, 148, 152, 155, 111, 115, 118, 114, 118, 126, 111, 114, 124, 109, 112, 120, 106, 109, 119, 111, 114, 124, 156, 158, 157, 148, 149, 144, 136, 139, 133, 37, 40, 34, 53, 57, 49, 35, 36, 29, 88, 90, 92, 109, 111, 115, 108, 109, 113, 109, 112, 118, 119, 123, 126, 121, 122, 126, 210, 214, 217, 121, 122, 126, 116, 118, 122, 116, 118, 122, 109, 111, 115, 106, 107, 109, 102, 104, 104, 145, 148, 143, 144, 145, 140, 42, 43, 38, 26, 26, 22, 24, 25, 22, 16, 17, 14, 127, 127, 127, 116, 116, 120, 128, 128, 130, 130, 132, 133, 129, 130, 134, 113, 114, 120, 123, 124, 130, 115, 116, 122, 106, 110, 115, 108, 109, 115, 101, 102, 110, 106, 107, 113, 76, 78, 82, 144, 147, 141, 113, 116, 108, 72, 75, 69, 9, 12, 6, 29, 31, 28, 29, 31, 30, 125, 127, 131, 128, 129, 135, 121, 125, 128, 120, 124, 127, 113, 117, 122, 103, 106, 112, 158, 161, 167, 109, 112, 118, 98, 102, 107, 90, 94, 99, 92, 92, 101, 89, 91, 95, 53, 56, 53, 69, 71, 59, 24, 26, 18, 22, 23, 18, 8, 9, 4, 24, 25, 20, 22, 22, 20, 118, 121, 120, 123, 127, 130, 119, 125, 127, 120, 124, 129, 121, 127, 132, 119, 125, 129, 117, 123, 130, 114, 120, 127, 116, 122, 129, 117, 123, 130, 114, 120, 127, 113, 118, 126, 117, 123, 130, 107, 113, 120, 122, 128, 135, 119, 124, 131, 102, 108, 115, 115, 121, 128, 115, 121, 128, 117, 123, 130, 110, 116, 123, 116, 122, 129, 106, 111, 119, 113, 118, 126, 112, 118, 122, 110, 113, 119, 112, 118, 120, 112, 118, 120, 113, 117, 120, 111, 115, 116, 110, 114, 113, 110, 113, 108, 55, 59, 51, 121, 122, 115, 113, 114, 107, 125, 126, 119, 128, 127, 121, 142, 141, 135, 138, 137, 128, 69, 68, 60, 15, 17, 5, 20, 22, 10, 7, 14, 0, 15, 18, 10, 16, 19, 13, 80, 83, 77, 93, 96, 90, 106, 107, 102, 116, 114, 110, 117, 115, 111, 72, 74, 75, 75, 78, 77, 80, 82, 83, 82, 86, 87, 79, 84, 85, 88, 90, 92, 76, 78, 80, 92, 94, 95, 72, 73, 77, 64, 68, 71, 75, 79, 82, 123, 130, 132, 27, 31, 32, 50, 52, 51, 90, 93, 90, 12, 16, 10, 0, 0, 0, 51, 54, 50, 103, 106, 101, 114, 120, 116, 111, 114, 111, 110, 113, 110, 118, 121, 118, 117, 120, 117, 136, 136, 134, 125, 125, 123, 123, 124, 121, 120, 120, 120, 127, 127, 127, 113, 113, 113, 129, 129, 129, 141, 140, 143, 119, 118, 121, 133, 132, 137, 123, 123, 127, 123, 123, 127, 122, 121, 126, 141, 140, 145, 127, 126, 131, 126, 125, 130, 126, 125, 128, 123, 123, 125, 123, 123, 125, 127, 128, 130, 135, 139, 142, 123, 127, 130, 126, 130, 133, 95, 99, 102, 104, 108, 111, 104, 108, 111, 99, 103, 106, 88, 92, 95, 96, 100, 103, 95, 99, 102, 93, 97, 101, 95, 99, 102, 95, 99, 102, 167, 169, 173, 255, 255, 255, 90, 92, 96, 89, 91, 95, 95, 96, 105, 97, 98, 107, 96, 97, 106, 92, 96, 103, 95, 98, 106, 93, 96, 107, 97, 100, 108, 97, 100, 110, 97, 100, 110, 90, 93, 101, 5, 8, 7, 45, 48, 45, 0, 0, 0, 15, 16, 11, 1, 3, 0, 38, 41, 38, 55, 58, 57, 110, 113, 119, 131, 134, 142, 128, 128, 137, 120, 120, 129, 118, 121, 129, 114, 118, 126, 106, 106, 115, 106, 109, 117, 95, 98, 106, 97, 100, 108, 99, 103, 110, 92, 96, 103, 89, 92, 98, 45, 49, 50, 2, 5, 1, 0, 0, 0, 50, 51, 44, 28, 31, 25, 8, 11, 5, 0, 0, 0, 23, 25, 26, 133, 135, 137, 133, 135, 137, 136, 138, 139, 131, 133, 137, 132, 134, 138, 106, 107, 111, 175, 179, 180, 119, 123, 126, 111, 114, 122, 109, 112, 120, 106, 109, 119, 102, 104, 115, 36, 41, 41, 0, 0, 0, 17, 19, 11, 11, 14, 9, 21, 24, 18, 19, 19, 15, 0, 0, 0, 120, 121, 123, 114, 115, 119, 114, 115, 119, 123, 127, 130, 128, 132, 135, 106, 110, 113, 135, 140, 140, 121, 122, 126, 114, 115, 119, 111, 113, 117, 109, 111, 115, 108, 110, 111, 0, 0, 0, 0, 0, 0, 4, 7, 4, 17, 20, 17, 14, 16, 13, 10, 13, 10, 121, 121, 121, 121, 121, 123, 123, 123, 125, 125, 127, 129, 120, 121, 125, 142, 143, 145, 133, 135, 139, 120, 121, 125, 122, 123, 129, 111, 112, 119, 104, 106, 112, 102, 103, 110, 87, 89, 90, 0, 0, 0, 59, 62, 56, 10, 13, 8, 2, 5, 0, 0, 1, 0, 0, 0, 0, 131, 133, 137, 131, 135, 138, 126, 130, 133, 117, 121, 124, 110, 114, 117, 93, 97, 101, 201, 205, 208, 102, 105, 111, 96, 99, 105, 95, 98, 104, 93, 97, 103, 89, 91, 95, 32, 34, 36, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 1, 0, 8, 8, 8, 100, 102, 103, 120, 124, 127, 120, 126, 128, 121, 125, 130, 119, 123, 128, 117, 120, 126, 116, 122, 129, 114, 120, 127, 114, 120, 127, 114, 120, 127, 110, 116, 123, 110, 116, 123, 110, 116, 123, 194, 198, 201, 204, 209, 207, 166, 171, 165, 252, 255, 250, 229, 232, 224, 216, 219, 214, 213, 216, 210, 185, 188, 182, 225, 229, 223, 252, 255, 250, 234, 236, 233, 241, 246, 242, 211, 216, 214, 239, 244, 240, 242, 249, 247, 248, 253, 251, 104, 109, 107, 111, 116, 114, 124, 127, 124, 0, 0, 0, 79, 80, 75, 97, 100, 97, 118, 118, 114, 121, 122, 117, 125, 126, 119, 37, 39, 29, 0, 0, 0, 18, 22, 14, 11, 17, 8, 6, 12, 3, 23, 26, 20, 14, 17, 11, 22, 28, 22, 109, 112, 107, 100, 101, 96, 156, 155, 151, 191, 187, 181, 78, 85, 85, 83, 87, 88, 85, 90, 90, 72, 77, 78, 78, 83, 83, 104, 107, 106, 79, 81, 80, 71, 76, 76, 61, 63, 67, 71, 75, 78, 74, 78, 81, 102, 106, 109, 50, 55, 55, 29, 31, 32, 62, 65, 64, 57, 60, 54, 54, 57, 52, 0, 0, 0, 0, 0, 0, 111, 116, 112, 118, 123, 119, 108, 111, 107, 113, 113, 111, 116, 119, 116, 122, 123, 120, 121, 121, 119, 119, 119, 117, 113, 113, 113, 115, 115, 115, 123, 123, 123, 125, 125, 125, 123, 123, 125, 133, 132, 137, 130, 130, 134, 123, 123, 127, 128, 127, 134, 121, 120, 127, 121, 120, 127, 123, 123, 127, 121, 120, 125, 125, 124, 128, 126, 125, 130, 123, 125, 127, 148, 149, 153, 136, 141, 142, 111, 115, 118, 100, 104, 108, 103, 107, 110, 104, 108, 111, 106, 110, 113, 102, 106, 109, 96, 99, 105, 93, 97, 101, 96, 100, 103, 93, 97, 101, 86, 90, 96, 96, 100, 103, 102, 106, 109, 114, 115, 119, 92, 93, 97, 97, 99, 103, 95, 98, 104, 95, 96, 105, 95, 98, 106, 95, 97, 108, 93, 97, 105, 97, 100, 110, 90, 93, 103, 93, 96, 107, 95, 97, 108, 96, 99, 107, 0, 0, 0, 1, 3, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 1, 3, 0, 32, 37, 35, 99, 100, 104, 136, 137, 143, 131, 132, 141, 128, 128, 137, 120, 120, 129, 118, 119, 126, 146, 150, 155, 159, 162, 168, 96, 99, 105, 105, 109, 114, 89, 92, 98, 96, 99, 107, 90, 94, 99, 109, 113, 116, 8, 10, 7, 0, 0, 0, 38, 41, 34, 0, 0, 0, 7, 9, 6, 0, 0, 0, 0, 0, 0, 145, 147, 149, 133, 135, 137, 136, 138, 139, 133, 135, 137, 131, 133, 135, 146, 148, 150, 195, 197, 199, 129, 131, 132, 109, 110, 117, 113, 117, 122, 106, 109, 119, 108, 108, 119, 96, 99, 105, 0, 0, 0, 0, 0, 0, 4, 7, 2, 0, 0, 0, 28, 31, 25, 0, 0, 0, 123, 125, 127, 108, 109, 113, 121, 122, 126, 124, 126, 130, 129, 130, 134, 115, 116, 120, 148, 149, 151, 116, 120, 121, 109, 111, 115, 115, 116, 120, 108, 110, 111, 102, 104, 106, 7, 9, 8, 23, 26, 22, 0, 0, 0, 0, 0, 0, 9, 12, 8, 0, 0, 0, 66, 68, 67, 117, 119, 121, 121, 121, 123, 125, 127, 129, 125, 127, 129, 127, 128, 130, 131, 133, 135, 116, 118, 120, 120, 121, 127, 107, 111, 117, 104, 105, 114, 101, 102, 108, 117, 119, 123, 64, 66, 63, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 115, 119, 129, 130, 134, 128, 132, 135, 121, 125, 128, 106, 110, 115, 114, 118, 122, 104, 108, 111, 98, 102, 107, 98, 102, 107, 93, 97, 103, 88, 91, 97, 86, 91, 94, 62, 66, 67, 17, 20, 17, 0, 0, 0, 0, 0, 0, 2, 5, 1, 0, 0, 0, 0, 0, 0, 82, 84, 86, 127, 128, 132, 123, 126, 132, 119, 123, 128, 117, 123, 128, 114, 118, 124, 120, 124, 131, 114, 120, 127, 114, 120, 127, 112, 117, 124, 112, 117, 124, 112, 115, 123, 118, 121, 129, 138, 142, 145, 253, 255, 255, 146, 148, 152, 246, 250, 251, 180, 184, 185, 250, 252, 253, 202, 204, 206, 220, 225, 223, 255, 255, 255, 255, 255, 255, 192, 197, 195, 234, 239, 239, 189, 194, 192, 214, 219, 218, 118, 123, 121, 196, 201, 199, 111, 116, 114, 106, 113, 113, 114, 119, 118, 43, 45, 44, 31, 34, 31, 103, 106, 101, 105, 106, 101, 114, 115, 110, 122, 123, 116, 59, 61, 53, 0, 0, 0, 17, 20, 15, 15, 18, 12, 19, 22, 17, 24, 27, 22, 16, 19, 13, 14, 17, 11, 113, 113, 111, 100, 101, 96, 118, 115, 109, 173, 171, 165, 80, 82, 81, 80, 82, 81, 85, 87, 86, 88, 88, 90, 225, 225, 225, 128, 130, 127, 69, 72, 69, 61, 66, 64, 62, 66, 67, 63, 68, 68, 78, 83, 83, 95, 99, 102, 29, 34, 35, 0, 0, 0, 17, 22, 18, 53, 54, 49, 57, 59, 56, 32, 35, 32, 0, 0, 0, 0, 0, 0, 116, 119, 116, 116, 119, 116, 113, 115, 112, 116, 119, 116, 111, 111, 109, 142, 142, 142, 115, 115, 115, 133, 133, 133, 130, 130, 130, 121, 121, 121, 126, 125, 128, 125, 124, 127, 128, 127, 132, 116, 116, 120, 128, 127, 132, 135, 134, 141, 125, 123, 130, 121, 120, 127, 122, 121, 128, 122, 121, 128, 123, 122, 129, 140, 139, 144, 145, 147, 149, 112, 112, 110, 63, 68, 68, 105, 109, 110, 103, 107, 110, 98, 102, 105, 104, 108, 111, 98, 102, 105, 100, 104, 108, 86, 90, 96, 98, 102, 107, 100, 101, 105, 92, 96, 101, 91, 95, 98, 92, 96, 99, 86, 91, 92, 216, 220, 221, 110, 112, 116, 88, 92, 95, 94, 95, 101, 91, 94, 102, 91, 94, 102, 93, 97, 105, 93, 96, 107, 93, 97, 105, 95, 98, 106, 95, 97, 108, 95, 95, 107, 95, 95, 107, 60, 64, 67, 0, 0, 0, 0, 0, 0, 14, 17, 11, 0, 1, 0, 0, 0, 0, 71, 77, 72, 33, 37, 40, 128, 132, 137, 127, 127, 136, 125, 127, 133, 121, 122, 128, 122, 123, 129, 225, 227, 231, 184, 185, 189, 105, 109, 112, 103, 106, 112, 93, 97, 101, 91, 94, 102, 95, 98, 104, 113, 117, 120, 0, 0, 0, 0, 0, 0, 31, 36, 30, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 132, 135, 134, 137, 139, 138, 133, 135, 137, 133, 135, 137, 129, 131, 132, 172, 174, 173, 161, 164, 163, 255, 255, 255, 125, 127, 131, 113, 114, 120, 110, 111, 120, 100, 104, 112, 132, 133, 140, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0, 0, 38, 41, 36, 0, 0, 0, 108, 110, 109, 116, 118, 122, 117, 119, 121, 123, 125, 127, 124, 126, 128, 206, 208, 209, 113, 114, 116, 227, 228, 230, 124, 126, 128, 111, 113, 117, 109, 111, 113, 106, 107, 109, 86, 88, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 24, 21, 0, 2, 0, 0, 0, 0, 123, 125, 125, 113, 113, 113, 131, 133, 135, 128, 129, 131, 118, 121, 120, 121, 123, 124, 144, 146, 147, 108, 109, 113, 114, 115, 119, 104, 106, 112, 101, 102, 108, 105, 104, 111, 29, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 96, 97, 128, 129, 133, 127, 132, 132, 124, 128, 131, 114, 118, 122, 206, 211, 211, 235, 237, 238, 234, 239, 239, 111, 115, 118, 96, 100, 103, 89, 92, 98, 86, 91, 94, 101, 102, 106, 50, 52, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 29, 31, 121, 122, 126, 123, 125, 128, 117, 121, 124, 119, 123, 128, 118, 122, 127, 116, 117, 124, 116, 119, 125, 114, 118, 124, 114, 118, 124, 118, 122, 127, 113, 116, 124, 122, 123, 131, 114, 118, 124, 114, 118, 126, 120, 124, 131, 111, 114, 124, 117, 120, 130, 118, 121, 131, 117, 120, 130, 111, 114, 124, 110, 113, 121, 109, 112, 118, 114, 118, 124, 113, 117, 120, 116, 120, 123, 109, 113, 116, 111, 115, 118, 111, 115, 116, 107, 112, 113, 113, 120, 120, 113, 118, 116, 46, 49, 46, 0, 0, 0, 106, 109, 103, 105, 106, 101, 106, 107, 100, 138, 140, 132, 102, 104, 96, 0, 0, 0, 5, 9, 3, 11, 14, 9, 14, 16, 13, 7, 13, 6, 5, 9, 3, 19, 22, 17, 123, 124, 119, 110, 108, 104, 106, 102, 98, 124, 120, 117, 72, 77, 76, 76, 79, 78, 87, 87, 87, 86, 86, 88, 182, 182, 180, 221, 221, 219, 78, 78, 78, 68, 71, 70, 62, 64, 66, 68, 71, 70, 79, 81, 82, 103, 106, 105, 25, 28, 27, 25, 30, 28, 28, 33, 29, 15, 17, 14, 50, 52, 49, 53, 56, 53, 32, 35, 32, 0, 0, 0, 17, 20, 17, 120, 122, 119, 110, 113, 110, 113, 113, 111, 118, 118, 116, 126, 126, 126, 120, 120, 120, 120, 120, 120, 123, 123, 125, 118, 117, 120, 126, 125, 128, 128, 128, 130, 112, 111, 116, 118, 117, 122, 121, 120, 125, 125, 123, 130, 121, 120, 127, 120, 121, 127, 114, 115, 121, 127, 126, 133, 137, 137, 141, 129, 129, 129, 70, 71, 66, 10, 12, 4, 52, 56, 55, 99, 104, 102, 104, 108, 111, 104, 108, 111, 104, 106, 110, 104, 106, 110, 97, 99, 103, 97, 99, 103, 96, 97, 104, 95, 97, 101, 96, 98, 102, 93, 97, 101, 96, 98, 102, 94, 95, 99, 206, 211, 209, 97, 99, 101, 95, 97, 101, 95, 96, 105, 94, 95, 103, 91, 94, 102, 90, 93, 101, 92, 95, 105, 89, 92, 102, 95, 98, 106, 95, 96, 105, 99, 99, 110, 96, 97, 106, 127, 128, 132, 0, 1, 0, 22, 25, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 86, 82, 0, 0, 0, 127, 128, 134, 127, 127, 136, 118, 119, 126, 122, 123, 129, 113, 114, 120, 149, 150, 154, 200, 202, 201, 255, 255, 255, 105, 109, 114, 98, 102, 107, 98, 101, 109, 85, 89, 94, 91, 95, 98, 0, 0, 0, 0, 0, 0, 10, 15, 9, 0, 0, 0, 0, 0, 0, 18, 23, 19, 0, 0, 0, 94, 97, 93, 133, 136, 135, 136, 138, 139, 138, 140, 140, 132, 135, 134, 123, 123, 123, 238, 241, 240, 235, 237, 238, 127, 128, 132, 116, 117, 124, 114, 114, 123, 105, 108, 116, 109, 110, 117, 36, 38, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 34, 29, 1, 3, 0, 19, 22, 21, 116, 118, 120, 115, 117, 118, 124, 126, 128, 127, 128, 130, 113, 115, 114, 211, 214, 213, 255, 255, 255, 137, 139, 140, 111, 113, 115, 104, 106, 110, 108, 110, 111, 118, 121, 120, 0, 0, 0, 2, 5, 1, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 2, 1, 104, 107, 106, 114, 116, 115, 120, 121, 123, 123, 125, 127, 125, 127, 129, 113, 114, 116, 103, 105, 107, 117, 119, 123, 111, 113, 117, 108, 109, 117, 104, 102, 110, 99, 100, 106, 19, 19, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 40, 40, 131, 135, 138, 123, 127, 128, 120, 124, 127, 113, 117, 120, 113, 117, 120, 97, 99, 101, 103, 105, 109, 104, 106, 110, 95, 97, 101, 95, 97, 101, 88, 90, 94, 93, 94, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 114, 116, 117, 119, 121, 125, 127, 129, 124, 126, 128, 123, 125, 128, 117, 119, 123, 121, 122, 126, 120, 121, 125, 121, 122, 126, 118, 122, 125, 117, 118, 125, 120, 121, 127, 117, 120, 126, 117, 120, 128, 116, 119, 127, 118, 121, 129, 117, 120, 128, 117, 120, 128, 118, 121, 131, 114, 120, 127, 110, 116, 121, 110, 117, 117, 110, 117, 119, 112, 118, 118, 109, 116, 116, 108, 115, 115, 109, 116, 114, 112, 119, 116, 109, 113, 112, 105, 112, 109, 110, 118, 113, 79, 87, 82, 0, 0, 0, 90, 94, 88, 109, 110, 105, 109, 107, 103, 109, 107, 101, 114, 113, 107, 0, 0, 0, 3, 4, 0, 8, 14, 8, 1, 7, 3, 22, 28, 24, 0, 6, 0, 0, 0, 0, 91, 91, 89, 108, 106, 102, 102, 98, 97, 120, 116, 112, 82, 78, 77, 82, 80, 78, 86, 87, 84, 83, 83, 83, 77, 77, 75, 70, 70, 68, 72, 73, 70, 73, 76, 72, 67, 68, 67, 69, 72, 69, 101, 102, 99, 22, 24, 21, 21, 23, 20, 36, 38, 37, 33, 36, 33, 18, 21, 18, 36, 38, 35, 38, 41, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 106, 103, 103, 106, 103, 108, 111, 107, 112, 112, 110, 115, 116, 113, 113, 113, 111, 127, 127, 127, 116, 116, 116, 123, 123, 125, 126, 125, 128, 122, 122, 124, 118, 117, 122, 121, 120, 125, 119, 118, 123, 121, 120, 127, 114, 113, 120, 119, 118, 125, 122, 121, 128, 129, 128, 135, 128, 128, 128, 26, 26, 22, 0, 0, 0, 76, 76, 74, 43, 45, 42, 97, 100, 99, 103, 105, 107, 107, 109, 110, 101, 103, 104, 97, 99, 101, 103, 105, 107, 101, 102, 106, 100, 101, 105, 96, 97, 104, 97, 101, 106, 91, 95, 100, 93, 94, 98, 86, 87, 93, 81, 83, 87, 92, 96, 99, 94, 95, 101, 94, 95, 101, 94, 95, 101, 89, 92, 98, 92, 96, 103, 95, 98, 104, 91, 95, 100, 92, 96, 101, 95, 96, 103, 93, 94, 100, 94, 95, 99, 115, 117, 118, 0, 0, 0, 52, 55, 49, 0, 0, 0, 3, 6, 3, 0, 0, 0, 4, 9, 5, 0, 0, 0, 128, 132, 135, 127, 131, 136, 131, 133, 137, 120, 121, 125, 116, 120, 123, 114, 118, 122, 109, 111, 113, 105, 109, 110, 97, 101, 104, 99, 103, 106, 97, 101, 106, 90, 94, 97, 83, 87, 90, 45, 50, 46, 5, 11, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 30, 26, 0, 0, 0, 55, 58, 55, 135, 137, 134, 132, 135, 132, 133, 136, 135, 133, 136, 133, 135, 137, 136, 125, 128, 127, 123, 125, 125, 122, 124, 125, 114, 115, 119, 111, 112, 119, 104, 108, 113, 104, 108, 111, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 18, 21, 16, 0, 0, 0, 122, 124, 123, 115, 117, 116, 116, 118, 118, 122, 124, 123, 123, 125, 125, 115, 117, 116, 131, 133, 133, 123, 125, 127, 113, 115, 114, 111, 114, 113, 113, 115, 114, 106, 108, 107, 31, 34, 31, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 50, 52, 49, 110, 112, 112, 117, 119, 119, 123, 125, 125, 125, 128, 127, 122, 124, 123, 122, 124, 123, 116, 118, 120, 114, 115, 119, 107, 109, 110, 104, 106, 110, 95, 96, 103, 94, 97, 93, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 140, 140, 128, 129, 131, 127, 128, 130, 118, 120, 122, 115, 117, 118, 106, 108, 107, 103, 105, 107, 103, 105, 109, 96, 98, 102, 92, 93, 97, 93, 94, 98, 86, 88, 89, 0, 0, 0, 2, 5, 0, 0, 0, 0, 0, 0, 0, 3, 6, 1, 0, 0, 0, 0, 0, 0, 77, 77, 75, 125, 128, 127, 123, 126, 123, 117, 120, 117, 127, 127, 125, 117, 120, 117, 129, 129, 129, 121, 123, 122, 122, 124, 125, 123, 125, 127, 120, 121, 123, 118, 120, 124, 123, 127, 130, 111, 115, 118, 120, 124, 127, 114, 118, 122, 110, 114, 117, 117, 121, 122, 118, 122, 125, 120, 124, 127, 115, 122, 122, 114, 119, 120, 119, 123, 124, 115, 122, 122, 118, 122, 123, 109, 113, 112, 113, 118, 116, 102, 110, 107, 112, 117, 115, 109, 116, 114, 107, 113, 109, 115, 123, 116, 3, 8, 2, 86, 87, 82, 114, 113, 109, 112, 111, 107, 110, 109, 102, 104, 103, 96, 35, 34, 28, 0, 0, 0, 14, 15, 10, 0, 4, 0, 3, 6, 1, 0, 0, 0, 0, 0, 0, 30, 31, 26, 100, 101, 96, 98, 96, 93, 108, 106, 102, 77, 75, 74, 76, 74, 72, 72, 73, 68, 75, 73, 69, 77, 78, 73, 75, 73, 69, 63, 64, 59, 67, 68, 64, 53, 54, 49, 59, 60, 55, 95, 96, 91, 28, 29, 22, 31, 32, 29, 33, 36, 33, 21, 26, 22, 33, 36, 35, 52, 57, 53, 25, 30, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 102, 98, 103, 108, 104, 109, 112, 109, 113, 113, 111, 122, 123, 120, 113, 113, 111, 111, 111, 111, 113, 112, 115, 112, 111, 114, 106, 106, 108, 118, 117, 120, 113, 112, 115, 116, 116, 118, 120, 119, 126, 115, 114, 119, 119, 118, 125, 113, 112, 119, 129, 128, 135, 126, 125, 128, 71, 71, 69, 0, 0, 0, 91, 92, 85, 56, 57, 50, 44, 47, 41, 100, 102, 101, 100, 102, 101, 97, 100, 99, 107, 109, 108, 115, 117, 118, 106, 108, 107, 104, 106, 108, 107, 109, 110, 100, 101, 105, 94, 95, 99, 91, 95, 98, 90, 94, 95, 90, 94, 97, 92, 94, 95, 94, 96, 97, 94, 96, 97, 93, 94, 98, 96, 98, 102, 92, 93, 97, 84, 88, 91, 92, 96, 99, 89, 93, 96, 89, 91, 95, 86, 88, 89, 86, 88, 89, 90, 93, 92, 97, 100, 99, 0, 0, 0, 23, 26, 20, 0, 0, 0, 0, 2, 0, 0, 0, 0, 31, 36, 32, 20, 25, 23, 70, 75, 73, 126, 131, 129, 135, 140, 138, 118, 123, 121, 113, 118, 114, 109, 113, 112, 106, 111, 107, 98, 103, 99, 98, 103, 99, 91, 96, 94, 85, 90, 88, 90, 94, 95, 96, 101, 99, 113, 118, 114, 0, 0, 0, 0, 0, 0, 11, 15, 7, 0, 0, 0, 46, 51, 45, 0, 0, 0, 54, 59, 53, 173, 178, 172, 121, 127, 121, 131, 136, 132, 133, 139, 132, 138, 141, 138, 136, 138, 135, 127, 129, 128, 128, 130, 129, 127, 129, 128, 115, 117, 116, 110, 114, 113, 100, 102, 101, 64, 66, 63, 35, 38, 32, 8, 11, 5, 0, 0, 0, 0, 0, 0, 25, 28, 23, 0, 0, 0, 100, 102, 99, 107, 109, 108, 116, 118, 118, 117, 119, 119, 122, 125, 121, 127, 129, 128, 116, 118, 118, 118, 121, 120, 113, 115, 114, 113, 115, 114, 123, 125, 125, 108, 111, 107, 51, 54, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 7, 9, 6, 135, 137, 134, 111, 114, 111, 114, 116, 113, 125, 128, 125, 125, 128, 127, 128, 130, 129, 117, 119, 119, 120, 122, 121, 110, 112, 112, 110, 112, 112, 99, 100, 102, 118, 121, 118, 15, 18, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 117, 114, 143, 145, 142, 137, 140, 136, 125, 128, 125, 118, 121, 120, 114, 116, 115, 103, 106, 105, 107, 109, 110, 97, 99, 101, 92, 94, 95, 65, 67, 66, 81, 84, 81, 0, 0, 0, 16, 19, 13, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 75, 78, 73, 17, 20, 15, 37, 40, 36, 22, 24, 21, 22, 24, 23, 38, 41, 38, 24, 27, 24, 12, 15, 12, 21, 23, 20, 21, 23, 20, 33, 36, 33, 29, 31, 28, 26, 29, 26, 40, 45, 39, 42, 48, 41, 71, 77, 70, 47, 52, 46, 53, 58, 52, 68, 73, 67, 60, 65, 59, 100, 106, 100, 62, 67, 63, 43, 49, 45, 52, 56, 55, 56, 61, 57, 54, 59, 55, 41, 46, 42, 35, 40, 36, 24, 31, 29, 10, 18, 13, 24, 32, 27, 14, 21, 17, 30, 38, 33, 13, 18, 14, 48, 52, 46, 114, 113, 109, 116, 114, 110, 108, 106, 100, 108, 106, 100, 61, 60, 53, 0, 0, 0, 1, 2, 0, 0, 3, 0, 16, 19, 13, 0, 0, 0, 0, 0, 0, 99, 102, 96, 42, 45, 39, 130, 133, 118, 209, 210, 189, 21, 22, 17, 30, 31, 24, 40, 41, 34, 62, 63, 56, 73, 74, 67, 66, 67, 60, 58, 59, 52, 49, 50, 43, 33, 34, 27, 44, 45, 38, 21, 22, 17, 37, 38, 33, 33, 33, 31, 48, 51, 48, 48, 51, 48, 67, 70, 67, 65, 67, 64, 38, 43, 39, 0, 0, 0, 0, 0, 0, 28, 30, 27, 89, 94, 90, 102, 105, 102, 107, 110, 104, 103, 106, 103, 107, 108, 105, 109, 110, 107, 109, 111, 111, 105, 105, 105, 109, 109, 111, 115, 115, 117, 108, 108, 110, 113, 112, 117, 114, 114, 116, 112, 111, 116, 112, 111, 116, 114, 113, 118, 115, 116, 120, 122, 122, 124, 120, 120, 118, 0, 0, 0, 50, 49, 43, 66, 68, 58, 57, 58, 51, 37, 38, 31, 7, 8, 3, 72, 73, 68, 91, 92, 85, 105, 106, 101, 93, 96, 90, 93, 96, 90, 93, 96, 90, 90, 94, 88, 96, 99, 94, 85, 88, 82, 86, 89, 83, 86, 89, 83, 82, 85, 80, 83, 87, 81, 96, 99, 94, 108, 111, 103, 113, 116, 108, 114, 117, 109, 106, 109, 101, 101, 104, 96, 71, 74, 66, 32, 38, 29, 10, 14, 6, 9, 12, 4, 0, 5, 0, 8, 14, 8, 29, 32, 26, 0, 3, 0, 3, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 48, 54, 47, 6, 12, 5, 34, 40, 33, 31, 37, 28, 26, 32, 23, 17, 23, 14, 25, 31, 22, 17, 23, 14, 18, 24, 15, 22, 28, 20, 26, 32, 25, 35, 41, 34, 21, 27, 20, 41, 47, 40, 34, 39, 35, 0, 0, 0, 0, 0, 0, 24, 28, 20, 0, 0, 0, 32, 37, 31, 0, 6, 0, 116, 122, 113, 46, 51, 45, 48, 54, 47, 28, 36, 29, 40, 45, 41, 36, 43, 39, 46, 51, 45, 36, 42, 38, 45, 50, 46, 50, 56, 51, 41, 46, 44, 43, 49, 45, 43, 49, 45, 14, 19, 15, 83, 87, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 21, 16, 85, 88, 82, 17, 20, 15, 18, 21, 16, 22, 25, 19, 30, 33, 27, 19, 22, 17, 19, 22, 17, 22, 25, 19, 29, 32, 26, 21, 24, 18, 9, 12, 6, 12, 16, 10, 17, 20, 15, 9, 12, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8, 2, 0, 2, 0, 113, 116, 110, 32, 37, 31, 29, 35, 31, 27, 32, 28, 19, 24, 18, 18, 23, 19, 21, 27, 20, 29, 35, 31, 20, 25, 21, 37, 40, 36, 28, 31, 25, 30, 33, 27, 28, 31, 25, 45, 48, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 106, 100, 34, 40, 33, 31, 36, 30, 27, 33, 26, 14, 20, 13, 23, 26, 20, 23, 26, 22, 21, 24, 18, 19, 22, 17, 32, 35, 30, 26, 29, 24, 29, 31, 28, 17, 20, 15, 13, 14, 9, 35, 38, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 12, 16, 10, 36, 36, 34, 34, 34, 32, 33, 36, 33, 39, 42, 39, 29, 35, 31, 26, 31, 27, 32, 35, 32, 35, 37, 34, 31, 34, 29, 28, 34, 25, 33, 36, 31, 24, 28, 20, 29, 35, 27, 29, 35, 27, 26, 32, 23, 20, 26, 19, 28, 34, 27, 34, 40, 33, 32, 37, 33, 29, 37, 32, 28, 33, 29, 31, 36, 32, 27, 34, 31, 35, 40, 38, 38, 43, 39, 29, 35, 31, 29, 35, 31, 32, 37, 33, 31, 35, 34, 37, 45, 40, 28, 35, 31, 45, 53, 48, 32, 35, 30, 0, 0, 0, 116, 117, 112, 116, 117, 112, 113, 114, 107, 100, 99, 93, 87, 89, 81, 0, 0, 0, 1, 4, 0, 0, 0, 0, 5, 9, 3, 0, 0, 0, 81, 84, 81, 33, 36, 31, 52, 55, 49, 47, 50, 45, 49, 50, 45, 41, 40, 32, 42, 41, 33, 35, 36, 27, 47, 48, 39, 35, 36, 27, 44, 47, 39, 29, 32, 24, 47, 51, 43, 45, 48, 41, 43, 44, 39, 47, 47, 43, 23, 24, 17, 39, 42, 37, 63, 64, 59, 50, 53, 47, 84, 85, 80, 67, 70, 65, 11, 16, 10, 0, 0, 0, 0, 0, 0, 73, 76, 70, 97, 100, 95, 97, 100, 97, 103, 106, 103, 107, 109, 106, 105, 105, 103, 104, 104, 102, 106, 108, 107, 106, 106, 106, 107, 107, 109, 104, 103, 106, 109, 109, 111, 112, 111, 114, 112, 111, 114, 115, 114, 119, 109, 109, 111, 113, 112, 115, 121, 121, 123, 115, 115, 115, 108, 109, 106, 0, 0, 0, 83, 84, 77, 94, 96, 88, 55, 56, 49, 102, 104, 96, 23, 24, 19, 0, 0, 0, 2, 5, 0, 11, 14, 9, 3, 6, 1, 9, 12, 8, 8, 11, 5, 15, 18, 12, 11, 14, 9, 10, 15, 9, 5, 11, 4, 7, 13, 6, 10, 16, 7, 13, 19, 12, 11, 17, 8, 11, 17, 8, 23, 26, 18, 23, 26, 18, 14, 17, 7, 22, 26, 15, 22, 28, 20, 11, 17, 6, 12, 18, 7, 28, 34, 25, 31, 37, 28, 34, 40, 31, 11, 17, 8, 19, 25, 16, 11, 14, 9, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 121, 115, 28, 34, 27, 33, 39, 32, 27, 35, 27, 29, 35, 29, 43, 51, 44, 26, 32, 23, 41, 47, 40, 38, 47, 37, 31, 37, 28, 35, 41, 32, 31, 37, 28, 29, 35, 29, 28, 34, 27, 38, 43, 37, 0, 0, 0, 0, 0, 0, 9, 12, 4, 0, 0, 0, 0, 0, 0, 118, 124, 115, 28, 34, 25, 39, 44, 38, 35, 41, 34, 38, 46, 39, 39, 44, 38, 35, 43, 36, 29, 37, 30, 36, 42, 36, 40, 45, 39, 47, 52, 46, 21, 26, 22, 36, 42, 36, 42, 48, 41, 32, 37, 31, 3, 6, 1, 0, 0, 0, 4, 7, 2, 0, 0, 0, 8, 14, 8, 38, 43, 37, 29, 35, 27, 24, 28, 20, 28, 31, 23, 35, 41, 34, 26, 30, 22, 26, 29, 24, 35, 38, 30, 33, 36, 31, 29, 32, 26, 28, 31, 25, 28, 31, 25, 29, 32, 26, 21, 24, 18, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 120, 116, 40, 45, 41, 26, 32, 25, 20, 25, 21, 31, 36, 30, 33, 39, 32, 25, 30, 24, 20, 26, 19, 32, 37, 31, 27, 33, 26, 28, 34, 27, 42, 45, 39, 21, 24, 18, 28, 31, 25, 2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 10, 4, 17, 20, 15, 37, 40, 34, 47, 51, 43, 38, 41, 34, 48, 52, 44, 46, 50, 42, 50, 53, 45, 45, 48, 41, 36, 38, 28, 51, 54, 46, 41, 42, 35, 50, 51, 44, 8, 11, 3, 19, 19, 15, 42, 43, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 95, 90, 35, 38, 32, 38, 41, 36, 42, 44, 41, 22, 25, 19, 23, 26, 22, 18, 21, 18, 46, 49, 46, 40, 43, 40, 19, 22, 17, 36, 39, 33, 28, 31, 25, 32, 35, 30, 30, 33, 25, 17, 20, 15, 28, 31, 23, 33, 39, 32, 40, 44, 36, 43, 46, 40, 31, 36, 32, 32, 37, 33, 26, 31, 27, 36, 42, 38, 18, 23, 19, 15, 21, 17, 19, 24, 22, 23, 31, 26, 8, 14, 8, 12, 17, 13, 4, 9, 3, 19, 24, 20, 16, 24, 17, 32, 40, 33, 36, 44, 37, 33, 36, 31, 0, 0, 0, 117, 115, 111, 117, 115, 113, 114, 113, 109, 110, 109, 102, 97, 96, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 30, 33, 27, 15, 18, 12, 44, 45, 40, 53, 54, 49, 50, 50, 48, 55, 53, 49, 11, 14, 9, 31, 34, 29, 21, 22, 17, 15, 18, 10, 29, 30, 25, 42, 43, 38, 38, 39, 34, 44, 45, 38, 64, 65, 58, 47, 48, 41, 49, 50, 43, 55, 56, 49, 41, 42, 35, 57, 58, 51, 73, 74, 67, 97, 98, 91, 76, 77, 70, 0, 0, 0, 22, 25, 19, 8, 11, 5, 86, 89, 83, 92, 95, 89, 100, 103, 97, 100, 103, 97, 97, 100, 97, 96, 99, 96, 102, 102, 102, 102, 102, 102, 112, 112, 112, 107, 107, 109, 105, 104, 107, 102, 102, 104, 111, 110, 113, 111, 110, 115, 111, 108, 113, 111, 110, 113, 104, 103, 106, 108, 108, 108, 116, 117, 114, 50, 51, 46, 0, 1, 0, 95, 97, 89, 62, 63, 54, 45, 47, 39, 37, 38, 31, 24, 26, 18, 11, 15, 7, 11, 14, 9, 11, 14, 9, 3, 8, 2, 4, 9, 3, 5, 11, 4, 13, 19, 12, 3, 8, 2, 24, 29, 23, 8, 14, 8, 0, 0, 0, 4, 9, 5, 0, 0, 0, 0, 2, 0, 5, 11, 4, 18, 22, 14, 18, 22, 14, 42, 45, 37, 28, 31, 21, 33, 37, 29, 15, 21, 13, 21, 28, 16, 7, 13, 4, 3, 9, 0, 0, 6, 0, 5, 11, 4, 0, 0, 0, 18, 21, 16, 4, 7, 2, 4, 9, 3, 4, 9, 3, 97, 102, 96, 0, 0, 0, 0, 0, 0, 0, 8, 1, 0, 2, 0, 55, 63, 55, 30, 38, 29, 31, 40, 28, 36, 44, 35, 28, 34, 25, 24, 30, 21, 12, 18, 9, 0, 0, 0, 0, 2, 0, 0, 4, 0, 0, 1, 0, 4, 7, 2, 54, 58, 50, 0, 0, 0, 12, 16, 6, 46, 50, 42, 6, 12, 3, 0, 5, 1, 0, 1, 0, 0, 0, 0, 27, 32, 28, 45, 50, 46, 36, 42, 36, 50, 56, 49, 32, 37, 31, 26, 32, 25, 0, 2, 0, 0, 1, 0, 0, 0, 0, 1, 7, 3, 0, 5, 0, 0, 2, 0, 0, 6, 0, 6, 12, 5, 19, 22, 17, 91, 97, 88, 4, 10, 1, 8, 11, 5, 8, 14, 8, 14, 17, 11, 24, 30, 21, 31, 34, 29, 36, 39, 33, 30, 33, 27, 23, 26, 20, 9, 12, 4, 5, 9, 3, 10, 13, 8, 10, 13, 8, 3, 6, 1, 17, 20, 15, 0, 0, 0, 1, 7, 1, 110, 115, 109, 10, 15, 9, 25, 30, 24, 15, 21, 15, 15, 21, 15, 21, 27, 20, 42, 48, 41, 38, 43, 39, 35, 41, 34, 39, 45, 36, 27, 33, 24, 21, 24, 18, 16, 19, 11, 25, 29, 21, 48, 52, 46, 17, 20, 15, 10, 13, 8, 0, 0, 0, 2, 5, 1, 76, 80, 74, 17, 20, 15, 16, 19, 11, 50, 53, 45, 35, 38, 30, 30, 33, 25, 35, 38, 30, 39, 43, 33, 38, 42, 32, 73, 77, 66, 42, 45, 35, 80, 82, 72, 24, 26, 16, 29, 31, 21, 21, 22, 15, 47, 48, 41, 0, 0, 0, 2, 3, 0, 99, 100, 95, 10, 11, 6, 16, 17, 12, 4, 7, 2, 19, 19, 17, 24, 27, 24, 26, 29, 26, 28, 30, 27, 12, 16, 10, 51, 54, 48, 50, 53, 47, 50, 53, 47, 22, 25, 19, 47, 51, 43, 23, 26, 18, 18, 21, 16, 1, 4, 0, 16, 19, 13, 14, 17, 9, 19, 22, 17, 2, 5, 1, 7, 9, 8, 1, 6, 5, 8, 10, 9, 7, 9, 6, 5, 10, 6, 12, 17, 15, 34, 39, 37, 13, 18, 14, 18, 23, 19, 20, 25, 21, 12, 17, 15, 15, 20, 19, 17, 22, 18, 48, 55, 50, 43, 49, 43, 0, 0, 0, 97, 97, 93, 112, 113, 108, 119, 118, 114, 114, 115, 110, 107, 108, 101, 0, 0, 0, 5, 9, 3, 0, 3, 0, 26, 29, 24, 11, 14, 9, 7, 10, 4, 17, 18, 13, 16, 17, 12, 22, 22, 20, 24, 27, 22, 8, 9, 6, 0, 0, 0, 0, 2, 0, 4, 7, 2, 8, 11, 5, 4, 7, 2, 15, 18, 12, 25, 29, 21, 23, 24, 17, 22, 23, 16, 23, 24, 19, 7, 8, 1, 83, 84, 77, 60, 62, 54, 91, 92, 85, 108, 109, 102, 22, 25, 17, 0, 0, 0, 0, 0, 0, 89, 92, 87, 85, 88, 82, 96, 99, 94, 97, 100, 95, 101, 104, 98, 101, 104, 100, 100, 100, 98, 107, 108, 105, 101, 101, 101, 104, 104, 104, 130, 130, 130, 108, 108, 108, 119, 116, 120, 109, 109, 111, 123, 120, 123, 116, 113, 116, 111, 108, 111, 110, 107, 108, 113, 111, 110, 114, 115, 110, 36, 35, 29, 0, 0, 0, 77, 78, 71, 55, 54, 46, 121, 123, 113, 0, 1, 0, 19, 19, 15, 8, 9, 4, 7, 7, 5, 5, 8, 5, 2, 5, 1, 0, 4, 0, 0, 0, 0, 0, 3, 0, 0, 5, 1, 0, 0, 0, 5, 10, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, 14, 10, 0, 4, 0, 7, 10, 4, 22, 25, 17, 39, 43, 35, 32, 38, 29, 37, 40, 32, 28, 35, 23, 7, 14, 2, 4, 10, 1, 0, 0, 0, 0, 3, 1, 4, 9, 7, 0, 2, 0, 0, 5, 1, 13, 18, 14, 0, 0, 0, 34, 40, 33, 10, 15, 11, 0, 0, 0, 0, 0, 0, 0, 2, 7, 0, 0, 0, 0, 0, 0, 25, 30, 24, 32, 38, 29, 49, 56, 44, 34, 40, 31, 28, 34, 25, 0, 3, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 9, 12, 8, 0, 0, 0, 30, 33, 27, 42, 45, 37, 19, 22, 19, 0, 0, 0, 0, 5, 5, 0, 2, 0, 0, 0, 0, 32, 37, 33, 33, 39, 32, 33, 39, 30, 22, 28, 22, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 6, 7, 12, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 36, 33, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 3, 0, 12, 17, 13, 10, 15, 9, 26, 29, 26, 42, 45, 39, 30, 33, 27, 21, 24, 18, 3, 7, 0, 3, 6, 1, 7, 10, 4, 2, 5, 0, 7, 9, 6, 8, 10, 7, 0, 0, 0, 36, 38, 35, 10, 15, 11, 0, 2, 0, 4, 9, 5, 0, 5, 1, 0, 5, 3, 0, 5, 1, 0, 0, 0, 34, 39, 35, 32, 37, 31, 44, 47, 39, 26, 30, 22, 35, 36, 29, 17, 21, 13, 15, 18, 12, 22, 25, 19, 24, 27, 24, 50, 52, 49, 7, 9, 8, 67, 69, 69, 38, 40, 40, 45, 47, 47, 40, 43, 42, 60, 62, 62, 44, 46, 45, 28, 30, 29, 61, 64, 63, 75, 78, 75, 43, 46, 38, 37, 39, 29, 23, 27, 16, 40, 41, 34, 29, 30, 23, 12, 13, 4, 30, 31, 24, 111, 111, 107, 99, 101, 98, 93, 94, 91, 89, 92, 89, 72, 74, 71, 79, 81, 80, 86, 88, 89, 79, 81, 80, 95, 97, 99, 95, 97, 99, 101, 103, 104, 115, 117, 118, 117, 119, 119, 23, 26, 22, 30, 33, 27, 14, 17, 11, 9, 12, 4, 24, 27, 22, 14, 17, 11, 0, 0, 0, 86, 88, 87, 72, 74, 73, 61, 64, 63, 73, 75, 74, 65, 67, 66, 47, 49, 51, 46, 48, 50, 79, 81, 82, 77, 82, 82, 78, 82, 85, 99, 103, 106, 82, 86, 87, 93, 97, 101, 105, 109, 112, 107, 111, 115, 113, 117, 122, 110, 114, 117, 104, 108, 109, 58, 61, 57, 0, 0, 0, 64, 65, 60, 125, 123, 119, 120, 119, 115, 109, 110, 105, 111, 110, 103, 12, 16, 8, 0, 0, 0, 0, 0, 0, 44, 47, 41, 12, 15, 12, 11, 14, 9, 18, 21, 16, 16, 19, 15, 1, 2, 0, 3, 7, 0, 12, 12, 10, 10, 11, 8, 5, 5, 3, 13, 13, 11, 5, 5, 1, 26, 26, 24, 49, 50, 45, 78, 81, 75, 0, 0, 0, 0, 0, 0, 7, 8, 3, 0, 0, 0, 0, 0, 0, 76, 77, 68, 126, 127, 118, 69, 70, 63, 0, 0, 0, 0, 0, 0, 30, 33, 27, 87, 90, 84, 90, 94, 88, 106, 107, 102, 100, 101, 96, 105, 106, 101, 101, 102, 99, 97, 97, 95, 101, 102, 99, 102, 102, 102, 104, 104, 104, 105, 105, 105, 112, 112, 112, 114, 112, 113, 118, 115, 118, 121, 119, 122, 126, 123, 127, 131, 128, 129, 113, 113, 113, 109, 107, 105, 204, 202, 198, 55, 56, 49, 0, 0, 0, 87, 89, 81, 113, 114, 107, 17, 19, 11, 23, 26, 18, 35, 37, 34, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 4, 8, 9, 21, 26, 26, 63, 67, 70, 82, 86, 89, 96, 100, 103, 106, 111, 111, 112, 116, 117, 102, 107, 103, 10, 14, 6, 18, 22, 12, 17, 21, 11, 24, 28, 20, 11, 17, 6, 8, 12, 1, 3, 9, 0, 100, 106, 102, 128, 132, 137, 125, 128, 138, 135, 138, 148, 145, 147, 158, 126, 129, 137, 126, 129, 139, 112, 115, 125, 113, 116, 126, 113, 116, 126, 113, 116, 126, 107, 110, 121, 106, 109, 119, 99, 103, 110, 46, 51, 47, 31, 34, 29, 35, 41, 32, 53, 59, 48, 6, 12, 3, 0, 0, 0, 3, 8, 2, 53, 58, 54, 139, 144, 140, 142, 147, 145, 144, 146, 145, 133, 135, 137, 135, 136, 138, 131, 133, 133, 127, 128, 130, 124, 126, 130, 117, 119, 123, 110, 114, 117, 110, 114, 117, 99, 103, 106, 131, 133, 135, 39, 44, 38, 34, 40, 31, 15, 21, 13, 0, 0, 0, 0, 0, 0, 11, 16, 10, 15, 21, 17, 148, 152, 155, 142, 146, 149, 153, 157, 162, 142, 146, 151, 139, 143, 146, 136, 140, 146, 135, 139, 144, 132, 135, 143, 121, 125, 130, 119, 122, 130, 111, 114, 122, 113, 117, 122, 109, 111, 113, 42, 45, 39, 22, 23, 16, 5, 9, 1, 2, 5, 0, 0, 0, 0, 9, 12, 6, 125, 128, 125, 121, 123, 122, 121, 123, 122, 139, 141, 141, 139, 141, 141, 140, 143, 142, 134, 139, 137, 138, 142, 143, 134, 139, 139, 133, 135, 137, 121, 122, 126, 113, 114, 118, 120, 121, 123, 16, 19, 15, 25, 29, 21, 7, 10, 2, 5, 9, 1, 28, 31, 23, 40, 43, 38, 73, 76, 72, 130, 132, 131, 135, 136, 138, 131, 133, 135, 127, 128, 132, 124, 126, 130, 121, 122, 126, 110, 112, 116, 111, 112, 119, 106, 107, 113, 107, 108, 114, 100, 100, 109, 100, 101, 105, 78, 80, 79, 24, 26, 18, 0, 0, 0, 0, 0, 0, 63, 64, 57, 63, 64, 55, 47, 48, 41, 137, 138, 133, 130, 133, 129, 131, 134, 131, 127, 129, 126, 125, 128, 127, 115, 117, 116, 151, 153, 153, 108, 110, 111, 107, 109, 110, 103, 105, 107, 102, 104, 106, 102, 104, 108, 102, 102, 106, 36, 41, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 17, 11, 22, 24, 21, 31, 33, 33, 124, 126, 128, 125, 124, 127, 124, 126, 128, 127, 128, 130, 122, 124, 125, 119, 123, 124, 115, 116, 120, 111, 115, 118, 175, 179, 180, 132, 136, 139, 103, 107, 110, 110, 114, 117, 104, 108, 113, 96, 99, 105, 99, 103, 108, 97, 100, 108, 98, 102, 107, 100, 101, 105, 13, 13, 11, 0, 0, 0, 33, 31, 27, 117, 115, 111, 120, 119, 113, 119, 118, 112, 118, 117, 110, 79, 80, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 13, 8, 0, 0, 0, 79, 81, 78, 74, 77, 72, 81, 84, 79, 65, 68, 62, 62, 65, 60, 72, 73, 68, 64, 64, 62, 66, 67, 62, 62, 60, 58, 84, 83, 79, 75, 73, 69, 117, 115, 111, 88, 86, 82, 102, 100, 96, 98, 99, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 94, 87, 87, 89, 81, 102, 103, 98, 102, 104, 96, 104, 104, 100, 102, 103, 98, 153, 153, 149, 113, 113, 111, 100, 100, 98, 105, 105, 103, 111, 111, 109, 110, 108, 106, 116, 114, 112, 112, 110, 111, 128, 126, 127, 134, 132, 133, 125, 123, 123, 121, 119, 120, 142, 142, 142, 118, 116, 114, 116, 114, 112, 31, 32, 27, 0, 0, 0, 3, 7, 0, 5, 9, 1, 17, 21, 13, 54, 57, 52, 95, 99, 100, 102, 105, 111, 103, 106, 112, 96, 99, 105, 97, 101, 106, 98, 102, 107, 89, 92, 98, 90, 94, 97, 95, 99, 102, 95, 99, 102, 93, 97, 101, 97, 101, 106, 92, 96, 101, 90, 94, 97, 88, 91, 97, 93, 97, 103, 99, 104, 102, 14, 19, 15, 64, 67, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 33, 25, 54, 60, 51, 62, 67, 63, 119, 123, 128, 127, 130, 140, 126, 128, 141, 121, 121, 134, 116, 116, 129, 116, 118, 131, 105, 108, 120, 102, 104, 117, 99, 102, 114, 98, 100, 113, 97, 99, 112, 96, 98, 111, 93, 96, 107, 131, 135, 138, 1, 3, 0, 0, 0, 0, 0, 0, 0, 50, 53, 45, 33, 37, 29, 34, 40, 31, 22, 24, 21, 149, 151, 150, 143, 145, 144, 138, 140, 142, 133, 135, 137, 129, 131, 132, 122, 123, 127, 117, 119, 123, 110, 111, 118, 114, 113, 118, 115, 116, 122, 107, 107, 116, 102, 103, 110, 104, 106, 112, 0, 0, 0, 75, 81, 72, 0, 0, 0, 53, 58, 52, 48, 54, 45, 63, 69, 62, 32, 37, 33, 121, 125, 128, 143, 147, 153, 145, 148, 154, 142, 146, 151, 141, 145, 150, 136, 140, 146, 133, 137, 142, 125, 128, 136, 119, 122, 130, 118, 121, 129, 113, 116, 124, 104, 107, 115, 121, 125, 132, 26, 29, 28, 0, 0, 0, 87, 90, 84, 93, 96, 88, 37, 40, 32, 60, 63, 58, 83, 83, 81, 106, 108, 107, 120, 122, 121, 125, 128, 127, 130, 130, 130, 132, 134, 136, 130, 132, 133, 130, 132, 133, 127, 128, 132, 121, 122, 126, 107, 108, 112, 109, 110, 117, 106, 107, 111, 43, 45, 46, 57, 60, 52, 46, 50, 42, 65, 69, 58, 80, 83, 77, 44, 47, 39, 32, 35, 32, 138, 140, 142, 135, 136, 140, 135, 136, 140, 133, 135, 139, 130, 131, 135, 127, 128, 132, 255, 255, 255, 123, 124, 130, 110, 111, 118, 102, 103, 112, 102, 102, 114, 97, 98, 105, 115, 116, 120, 81, 83, 73, 0, 0, 0, 38, 40, 30, 80, 82, 72, 70, 71, 64, 22, 23, 16, 119, 120, 115, 132, 135, 132, 133, 136, 133, 130, 133, 129, 123, 126, 123, 117, 119, 119, 174, 177, 176, 179, 181, 180, 115, 117, 118, 107, 109, 110, 106, 107, 109, 99, 100, 102, 99, 100, 104, 71, 73, 74, 35, 35, 33, 47, 47, 43, 19, 19, 15, 40, 40, 36, 24, 25, 22, 3, 5, 5, 129, 131, 132, 125, 124, 128, 125, 127, 131, 123, 125, 127, 122, 123, 127, 121, 122, 126, 120, 121, 123, 111, 113, 117, 123, 125, 125, 152, 154, 156, 110, 114, 115, 106, 107, 111, 105, 109, 114, 104, 108, 113, 99, 103, 108, 99, 103, 108, 96, 99, 105, 96, 99, 105, 30, 32, 33, 37, 37, 37, 0, 0, 0, 102, 100, 96, 124, 123, 116, 125, 122, 116, 117, 114, 108, 101, 98, 90, 0, 0, 0, 0, 0, 0, 14, 17, 11, 0, 3, 0, 0, 0, 0, 0, 0, 0, 12, 15, 12, 76, 80, 74, 87, 88, 83, 64, 65, 58, 56, 57, 52, 69, 69, 67, 68, 71, 68, 62, 65, 62, 79, 80, 77, 59, 60, 57, 123, 121, 117, 95, 93, 87, 89, 86, 78, 114, 111, 103, 145, 142, 132, 127, 124, 113, 135, 135, 126, 106, 107, 100, 0, 0, 0, 0, 0, 0, 49, 50, 43, 98, 99, 92, 99, 100, 93, 105, 106, 99, 108, 109, 102, 109, 110, 105, 105, 106, 101, 108, 109, 104, 127, 128, 123, 105, 106, 101, 121, 122, 117, 102, 103, 98, 116, 117, 114, 118, 118, 116, 120, 120, 118, 115, 115, 115, 120, 118, 119, 121, 119, 120, 117, 114, 115, 117, 114, 115, 116, 114, 112, 118, 116, 114, 74, 71, 65, 0, 0, 0, 60, 62, 54, 78, 81, 75, 53, 57, 49, 52, 55, 49, 96, 100, 101, 105, 108, 116, 97, 101, 106, 97, 101, 106, 95, 98, 104, 95, 98, 104, 91, 95, 100, 91, 95, 100, 91, 95, 100, 92, 96, 99, 91, 95, 98, 93, 97, 103, 91, 95, 98, 92, 96, 99, 97, 99, 103, 88, 92, 95, 92, 96, 99, 0, 0, 0, 13, 19, 12, 38, 41, 34, 0, 0, 0, 55, 59, 51, 14, 17, 9, 32, 36, 28, 44, 47, 43, 125, 127, 133, 128, 128, 139, 128, 128, 139, 121, 121, 132, 115, 115, 126, 115, 115, 126, 108, 108, 121, 103, 103, 117, 100, 100, 113, 98, 100, 113, 95, 97, 108, 95, 97, 108, 93, 96, 109, 107, 111, 119, 0, 0, 0, 47, 51, 43, 0, 0, 0, 24, 28, 20, 18, 22, 14, 23, 26, 18, 15, 18, 12, 120, 122, 119, 143, 145, 144, 138, 138, 140, 136, 138, 139, 127, 128, 130, 120, 119, 124, 118, 117, 122, 115, 114, 119, 109, 110, 117, 106, 107, 113, 103, 104, 111, 101, 102, 108, 95, 96, 103, 122, 124, 125, 17, 21, 13, 0, 0, 0, 8, 14, 8, 43, 49, 41, 54, 60, 51, 10, 15, 11, 84, 89, 89, 140, 144, 149, 132, 135, 141, 145, 149, 152, 140, 144, 147, 144, 145, 151, 125, 128, 134, 120, 124, 129, 116, 119, 125, 113, 117, 122, 110, 113, 119, 109, 112, 120, 103, 104, 113, 7, 12, 12, 0, 0, 0, 38, 41, 36, 7, 10, 4, 36, 39, 33, 23, 26, 20, 45, 48, 45, 117, 119, 119, 118, 118, 118, 127, 127, 127, 129, 131, 130, 133, 136, 135, 132, 135, 134, 120, 121, 123, 125, 127, 131, 117, 119, 123, 114, 115, 119, 108, 109, 113, 107, 108, 112, 111, 113, 115, 123, 126, 121, 0, 0, 0, 10, 13, 8, 29, 32, 26, 50, 52, 49, 18, 21, 20, 125, 127, 129, 135, 136, 140, 136, 137, 141, 132, 134, 138, 130, 131, 135, 127, 128, 132, 237, 239, 243, 121, 122, 126, 107, 108, 114, 104, 106, 112, 104, 105, 114, 99, 99, 108, 94, 95, 101, 13, 14, 9, 12, 13, 4, 10, 12, 4, 63, 64, 55, 51, 52, 45, 21, 22, 15, 87, 88, 83, 138, 139, 134, 133, 136, 133, 127, 129, 126, 130, 132, 131, 122, 124, 123, 115, 117, 116, 223, 224, 223, 111, 113, 115, 107, 108, 112, 101, 102, 106, 101, 100, 105, 96, 98, 102, 103, 105, 107, 31, 34, 29, 0, 0, 0, 19, 19, 15, 15, 16, 11, 14, 14, 12, 0, 2, 1, 99, 100, 102, 129, 128, 133, 124, 126, 130, 123, 125, 128, 123, 125, 128, 120, 121, 125, 117, 119, 123, 120, 121, 125, 96, 98, 100, 209, 211, 215, 100, 104, 108, 105, 109, 112, 100, 104, 110, 100, 104, 110, 99, 103, 108, 99, 100, 106, 96, 99, 105, 88, 91, 97, 55, 57, 59, 28, 28, 28, 0, 0, 0, 103, 99, 96, 132, 129, 123, 125, 122, 116, 118, 115, 109, 123, 120, 112, 0, 0, 0, 0, 0, 0, 14, 20, 13, 0, 3, 0, 1, 7, 1, 22, 24, 21, 7, 9, 6, 109, 112, 107, 76, 77, 70, 50, 52, 42, 52, 54, 46, 57, 59, 56, 58, 59, 56, 76, 76, 74, 77, 77, 75, 92, 90, 89, 94, 92, 86, 81, 80, 71, 95, 94, 83, 128, 129, 113, 156, 154, 136, 166, 164, 149, 155, 156, 147, 0, 0, 0, 0, 1, 0, 0, 0, 0, 98, 99, 92, 92, 93, 86, 91, 92, 85, 112, 113, 106, 106, 107, 100, 107, 108, 101, 142, 143, 136, 114, 115, 108, 106, 107, 100, 112, 113, 108, 106, 107, 102, 102, 103, 98, 133, 131, 129, 121, 119, 118, 124, 122, 120, 115, 116, 113, 119, 117, 118, 119, 117, 118, 124, 121, 122, 111, 109, 109, 104, 104, 104, 110, 108, 106, 52, 50, 46, 0, 0, 0, 90, 90, 86, 79, 80, 73, 65, 68, 60, 44, 47, 41, 91, 96, 94, 95, 99, 102, 100, 104, 110, 96, 99, 105, 95, 98, 104, 93, 97, 101, 91, 95, 98, 95, 97, 101, 82, 84, 88, 103, 105, 109, 95, 97, 101, 93, 94, 98, 99, 100, 106, 93, 94, 98, 92, 93, 97, 91, 95, 98, 93, 97, 101, 0, 0, 0, 40, 45, 41, 11, 16, 10, 0, 0, 0, 0, 0, 0, 32, 35, 30, 0, 0, 0, 0, 0, 0, 118, 119, 126, 129, 129, 140, 128, 128, 139, 120, 120, 131, 118, 116, 128, 211, 212, 223, 107, 107, 118, 107, 107, 118, 208, 208, 219, 104, 105, 116, 96, 96, 108, 96, 96, 108, 98, 101, 111, 91, 94, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 9, 12, 6, 0, 0, 0, 0, 2, 0, 110, 114, 113, 143, 145, 144, 139, 141, 143, 130, 132, 133, 122, 124, 125, 118, 120, 122, 101, 100, 105, 220, 221, 223, 121, 122, 126, 106, 107, 113, 104, 106, 112, 102, 103, 112, 96, 97, 104, 128, 129, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 6, 5, 7, 12, 10, 143, 147, 151, 140, 144, 147, 143, 147, 153, 146, 150, 155, 129, 133, 137, 255, 255, 255, 201, 205, 208, 255, 255, 255, 120, 124, 129, 109, 112, 118, 109, 112, 120, 104, 108, 113, 93, 98, 99, 0, 0, 0, 8, 11, 5, 0, 0, 0, 25, 28, 23, 18, 21, 18, 23, 26, 22, 131, 133, 133, 120, 120, 120, 125, 125, 125, 129, 131, 130, 142, 144, 143, 255, 255, 255, 255, 255, 255, 237, 237, 237, 122, 121, 126, 116, 115, 122, 109, 111, 115, 107, 108, 114, 115, 117, 118, 1, 4, 0, 0, 0, 0, 0, 0, 0, 12, 15, 12, 38, 41, 38, 16, 18, 17, 80, 82, 83, 131, 133, 137, 131, 133, 137, 133, 135, 139, 131, 133, 137, 132, 134, 138, 123, 125, 128, 223, 225, 229, 113, 114, 120, 107, 108, 114, 101, 101, 112, 100, 101, 107, 97, 98, 105, 28, 28, 28, 24, 26, 18, 5, 6, 0, 30, 31, 24, 25, 29, 21, 36, 37, 32, 67, 68, 64, 132, 135, 132, 135, 137, 134, 128, 130, 127, 127, 129, 126, 116, 118, 118, 186, 189, 185, 107, 109, 106, 106, 108, 107, 108, 109, 113, 101, 102, 106, 100, 101, 105, 100, 101, 105, 108, 109, 113, 8, 10, 7, 3, 6, 3, 0, 0, 0, 0, 0, 0, 15, 16, 13, 0, 0, 0, 100, 100, 102, 130, 130, 134, 123, 123, 127, 123, 125, 128, 122, 123, 127, 115, 116, 120, 117, 119, 123, 117, 119, 123, 97, 99, 101, 222, 224, 225, 113, 114, 116, 108, 109, 113, 104, 108, 113, 104, 108, 113, 106, 107, 113, 98, 102, 107, 93, 97, 103, 92, 96, 101, 102, 106, 107, 24, 26, 26, 0, 0, 0, 64, 63, 59, 122, 118, 113, 122, 118, 113, 122, 117, 110, 114, 111, 103, 14, 13, 7, 0, 0, 0, 11, 16, 10, 8, 14, 8, 15, 17, 14, 20, 20, 18, 16, 17, 14, 121, 124, 118, 72, 73, 66, 58, 60, 48, 49, 50, 41, 65, 66, 61, 64, 65, 60, 80, 81, 78, 58, 59, 56, 124, 123, 116, 81, 80, 71, 99, 96, 85, 116, 114, 99, 158, 157, 137, 174, 173, 155, 142, 140, 122, 19, 23, 13, 8, 9, 2, 0, 0, 0, 79, 83, 72, 94, 96, 86, 123, 125, 117, 102, 104, 94, 119, 118, 110, 114, 114, 105, 100, 102, 92, 127, 126, 118, 120, 119, 113, 114, 115, 108, 111, 111, 107, 117, 115, 111, 104, 102, 98, 112, 110, 109, 134, 132, 131, 124, 122, 120, 111, 109, 107, 124, 121, 122, 120, 118, 119, 126, 124, 125, 122, 122, 122, 111, 111, 109, 100, 100, 98, 70, 71, 64, 0, 0, 0, 81, 84, 79, 59, 62, 54, 60, 66, 57, 29, 35, 29, 91, 96, 92, 92, 96, 101, 85, 89, 94, 91, 95, 100, 93, 97, 103, 90, 94, 99, 89, 90, 97, 255, 255, 255, 96, 98, 102, 153, 155, 159, 132, 134, 138, 93, 94, 98, 93, 97, 101, 90, 92, 96, 89, 91, 95, 85, 86, 90, 89, 91, 95, 0, 0, 0, 0, 0, 0, 12, 18, 11, 0, 0, 0, 0, 0, 0, 12, 16, 10, 3, 6, 3, 0, 0, 0, 111, 112, 119, 123, 123, 134, 125, 122, 136, 121, 121, 134, 111, 112, 123, 113, 113, 124, 177, 177, 188, 117, 118, 127, 255, 255, 255, 105, 108, 118, 90, 91, 102, 88, 88, 102, 94, 94, 105, 94, 94, 105, 0, 0, 5, 0, 0, 0, 4, 7, 2, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 82, 85, 84, 142, 144, 143, 137, 139, 140, 130, 132, 133, 122, 124, 125, 113, 114, 116, 112, 111, 114, 255, 255, 255, 128, 127, 132, 103, 104, 111, 113, 112, 119, 100, 100, 109, 99, 100, 106, 101, 102, 108, 0, 0, 0, 59, 64, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 123, 127, 130, 138, 142, 145, 140, 142, 148, 145, 149, 152, 125, 127, 131, 251, 253, 255, 124, 126, 130, 145, 147, 151, 191, 192, 196, 125, 127, 133, 110, 111, 120, 109, 110, 119, 122, 123, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 16, 13, 28, 30, 27, 91, 91, 91, 113, 113, 113, 121, 121, 121, 129, 129, 129, 136, 136, 136, 125, 125, 125, 255, 255, 255, 255, 255, 255, 122, 122, 124, 116, 116, 120, 111, 113, 117, 104, 106, 110, 103, 105, 107, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 4, 7, 6, 8, 10, 9, 142, 143, 145, 133, 135, 137, 136, 138, 139, 135, 136, 140, 132, 134, 138, 122, 123, 127, 255, 255, 255, 122, 123, 129, 109, 110, 117, 107, 107, 116, 94, 95, 101, 95, 96, 103, 89, 92, 91, 7, 9, 6, 0, 0, 0, 0, 3, 0, 5, 9, 3, 5, 9, 3, 5, 8, 5, 123, 126, 123, 131, 134, 131, 131, 134, 131, 128, 130, 127, 122, 124, 123, 152, 155, 152, 255, 255, 255, 113, 115, 114, 109, 111, 115, 103, 105, 109, 101, 100, 105, 96, 98, 102, 102, 104, 108, 9, 12, 8, 12, 15, 12, 0, 0, 0, 0, 0, 0, 23, 26, 22, 2, 4, 3, 74, 76, 78, 130, 131, 135, 128, 128, 130, 126, 125, 130, 124, 126, 130, 120, 121, 125, 120, 121, 123, 122, 124, 125, 206, 208, 209, 148, 149, 151, 108, 110, 111, 113, 114, 116, 98, 102, 105, 103, 106, 112, 99, 100, 106, 93, 97, 103, 99, 100, 106, 95, 97, 101, 106, 108, 107, 32, 35, 32, 4, 7, 2, 22, 23, 16, 113, 112, 106, 123, 119, 114, 123, 119, 114, 123, 120, 112, 99, 95, 87, 0, 0, 0, 8, 14, 8, 3, 8, 4, 10, 15, 11, 19, 22, 19, 18, 23, 19, 82, 85, 80, 75, 78, 73, 52, 54, 42, 62, 63, 54, 58, 59, 52, 56, 57, 52, 63, 64, 57, 149, 150, 145, 81, 80, 71, 87, 86, 75, 101, 98, 86, 135, 133, 117, 159, 158, 138, 161, 157, 140, 144, 142, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, 112, 105, 115, 116, 109, 97, 98, 89, 108, 107, 98, 127, 128, 119, 114, 116, 106, 104, 105, 96, 112, 113, 106, 118, 119, 112, 107, 108, 101, 120, 119, 113, 113, 112, 108, 104, 102, 98, 108, 105, 104, 134, 132, 131, 113, 111, 110, 110, 108, 106, 117, 114, 115, 120, 118, 117, 118, 116, 114, 117, 115, 113, 109, 110, 107, 112, 112, 110, 62, 62, 58, 0, 0, 0, 93, 96, 90, 61, 65, 57, 79, 82, 74, 40, 43, 38, 106, 111, 107, 96, 100, 103, 93, 97, 103, 93, 97, 103, 90, 94, 99, 94, 95, 101, 90, 92, 96, 87, 88, 92, 158, 159, 163, 255, 255, 255, 94, 95, 99, 86, 87, 91, 89, 91, 95, 89, 91, 95, 88, 90, 94, 88, 90, 94, 89, 91, 95, 19, 21, 23, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 99, 100, 104, 124, 125, 134, 120, 118, 130, 120, 120, 133, 121, 119, 131, 104, 102, 112, 255, 255, 255, 202, 203, 212, 255, 255, 255, 109, 110, 119, 100, 100, 109, 94, 94, 105, 94, 94, 105, 94, 95, 103, 96, 97, 104, 0, 0, 0, 24, 27, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 13, 18, 16, 129, 131, 130, 136, 138, 137, 133, 135, 137, 121, 123, 124, 108, 110, 111, 114, 114, 116, 189, 191, 193, 107, 108, 112, 110, 111, 118, 105, 104, 111, 106, 105, 112, 101, 102, 110, 102, 103, 110, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 86, 91, 92, 134, 138, 141, 136, 137, 141, 138, 142, 145, 146, 148, 152, 127, 128, 132, 204, 208, 211, 168, 170, 174, 122, 123, 127, 118, 120, 124, 113, 113, 122, 113, 114, 120, 106, 107, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 1, 12, 15, 12, 30, 33, 29, 129, 129, 129, 122, 122, 122, 129, 129, 129, 134, 134, 134, 125, 125, 125, 253, 253, 253, 148, 148, 148, 127, 127, 129, 113, 112, 115, 116, 116, 120, 108, 109, 113, 97, 99, 103, 71, 73, 72, 29, 31, 28, 0, 0, 0, 0, 1, 0, 0, 1, 0, 11, 14, 13, 12, 17, 15, 136, 138, 139, 125, 127, 129, 135, 136, 138, 135, 136, 138, 132, 134, 136, 124, 126, 128, 248, 250, 249, 123, 125, 128, 111, 113, 117, 106, 107, 113, 97, 98, 105, 90, 92, 98, 120, 121, 123, 23, 25, 24, 0, 0, 0, 0, 0, 0, 3, 6, 1, 65, 68, 62, 0, 0, 0, 131, 134, 131, 132, 135, 132, 129, 131, 128, 130, 133, 129, 118, 121, 120, 120, 122, 119, 230, 231, 226, 111, 114, 111, 103, 105, 107, 102, 104, 108, 100, 101, 105, 92, 93, 97, 97, 99, 103, 0, 2, 1, 14, 16, 13, 0, 0, 0, 5, 8, 5, 29, 29, 29, 0, 0, 0, 53, 55, 57, 121, 123, 124, 122, 124, 125, 125, 127, 129, 127, 128, 130, 115, 117, 118, 121, 123, 124, 115, 117, 118, 111, 114, 113, 255, 255, 255, 138, 140, 140, 99, 100, 102, 97, 101, 104, 99, 103, 108, 96, 99, 105, 93, 97, 101, 93, 97, 103, 85, 89, 92, 93, 95, 94, 25, 30, 26, 23, 26, 18, 0, 0, 0, 113, 112, 104, 121, 118, 110, 124, 121, 113, 118, 115, 107, 110, 107, 99, 0, 0, 0, 31, 36, 30, 0, 3, 0, 0, 1, 0, 0, 0, 0, 5, 10, 6, 29, 35, 29, 101, 104, 96, 53, 57, 45, 52, 54, 44, 62, 63, 54, 90, 90, 86, 60, 59, 50, 90, 90, 78, 97, 96, 85, 117, 115, 102, 113, 110, 95, 149, 144, 130, 161, 160, 140, 165, 163, 146, 33, 35, 22, 0, 0, 0, 0, 0, 0, 111, 112, 105, 70, 71, 64, 87, 89, 79, 129, 131, 121, 101, 103, 93, 120, 121, 112, 112, 111, 103, 116, 114, 108, 118, 117, 108, 113, 112, 106, 128, 127, 121, 110, 109, 102, 116, 114, 110, 111, 109, 105, 103, 101, 99, 174, 172, 170, 98, 96, 95, 108, 105, 106, 104, 102, 102, 105, 103, 102, 104, 102, 100, 110, 108, 106, 101, 102, 99, 104, 104, 100, 62, 60, 56, 0, 0, 0, 83, 87, 79, 69, 73, 65, 68, 72, 64, 32, 35, 30, 107, 113, 109, 94, 95, 99, 93, 94, 98, 95, 96, 103, 93, 94, 100, 95, 97, 101, 99, 100, 104, 95, 96, 103, 82, 84, 88, 255, 255, 255, 92, 93, 97, 92, 93, 97, 88, 90, 94, 87, 88, 92, 85, 86, 90, 88, 90, 94, 83, 85, 89, 115, 117, 118, 0, 0, 0, 0, 0, 0, 93, 99, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 36, 38, 39, 131, 132, 141, 127, 125, 137, 121, 119, 131, 118, 116, 128, 112, 110, 122, 106, 106, 117, 106, 106, 115, 103, 104, 113, 101, 102, 110, 100, 100, 109, 95, 95, 107, 95, 96, 105, 97, 98, 107, 124, 125, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 3, 1, 0, 0, 0, 109, 113, 112, 139, 141, 143, 132, 134, 136, 127, 128, 130, 116, 118, 120, 113, 114, 118, 113, 114, 118, 107, 108, 114, 109, 108, 115, 108, 107, 114, 106, 106, 115, 102, 103, 112, 93, 94, 100, 134, 139, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 5, 22, 27, 28, 136, 141, 142, 133, 135, 139, 136, 140, 144, 143, 144, 148, 144, 145, 149, 133, 137, 140, 121, 125, 128, 109, 111, 115, 115, 116, 120, 111, 113, 117, 109, 110, 117, 109, 111, 113, 107, 109, 108, 21, 26, 22, 16, 19, 15, 0, 0, 0, 1, 7, 3, 8, 10, 7, 11, 14, 11, 111, 114, 113, 115, 117, 116, 119, 119, 119, 129, 129, 129, 131, 131, 131, 137, 137, 137, 136, 136, 136, 128, 128, 128, 121, 121, 123, 118, 117, 120, 109, 109, 113, 103, 105, 109, 120, 122, 121, 11, 14, 13, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 4, 2, 17, 21, 20, 103, 106, 105, 118, 120, 122, 137, 139, 140, 133, 135, 137, 132, 135, 134, 128, 130, 129, 255, 255, 255, 122, 124, 125, 108, 109, 113, 108, 110, 111, 99, 100, 106, 92, 93, 97, 96, 98, 100, 0, 0, 0, 17, 19, 19, 0, 0, 0, 5, 11, 4, 11, 14, 9, 10, 13, 8, 125, 128, 123, 135, 138, 132, 132, 135, 132, 130, 133, 129, 125, 128, 125, 118, 121, 118, 144, 147, 143, 135, 137, 134, 108, 110, 109, 104, 106, 110, 106, 107, 109, 95, 97, 101, 92, 94, 95, 14, 16, 15, 24, 27, 24, 0, 0, 0, 4, 7, 2, 5, 8, 5, 0, 1, 0, 1, 3, 2, 114, 116, 115, 128, 130, 129, 125, 128, 127, 121, 121, 121, 116, 118, 120, 119, 119, 119, 110, 112, 114, 113, 114, 116, 107, 109, 108, 230, 232, 232, 122, 124, 123, 111, 116, 114, 100, 105, 106, 95, 99, 100, 93, 98, 99, 90, 94, 97, 88, 92, 95, 77, 82, 80, 38, 43, 39, 42, 45, 39, 5, 6, 0, 95, 93, 87, 125, 124, 115, 128, 128, 119, 130, 127, 119, 132, 129, 121, 15, 12, 4, 14, 17, 11, 8, 14, 10, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 7, 1, 104, 110, 101, 48, 52, 42, 57, 59, 49, 71, 71, 62, 45, 43, 37, 158, 157, 146, 83, 81, 68, 91, 88, 75, 156, 152, 137, 127, 122, 110, 160, 155, 141, 151, 150, 129, 120, 122, 108, 0, 0, 0, 0, 0, 0, 13, 14, 7, 81, 83, 75, 131, 133, 126, 95, 97, 87, 100, 102, 92, 112, 113, 104, 112, 113, 104, 93, 95, 85, 106, 105, 97, 120, 121, 112, 149, 148, 142, 102, 100, 96, 116, 114, 110, 108, 105, 104, 109, 107, 105, 108, 105, 104, 95, 96, 93, 104, 104, 102, 105, 103, 102, 109, 110, 107, 105, 105, 103, 109, 110, 107, 100, 100, 98, 107, 108, 103, 92, 93, 88, 60, 62, 54, 0, 0, 0, 88, 90, 82, 73, 76, 68, 80, 84, 73, 32, 36, 28, 110, 113, 108, 92, 94, 95, 92, 93, 99, 95, 96, 103, 93, 94, 98, 92, 93, 97, 90, 92, 96, 88, 90, 94, 90, 92, 96, 83, 85, 89, 82, 84, 88, 86, 87, 91, 88, 90, 92, 86, 88, 89, 89, 91, 93, 89, 91, 93, 85, 86, 90, 107, 109, 110, 0, 0, 0, 0, 0, 0, 31, 34, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 8, 128, 129, 135, 129, 128, 137, 126, 124, 136, 120, 118, 130, 115, 113, 125, 111, 112, 123, 110, 111, 122, 102, 102, 114, 101, 102, 110, 95, 96, 105, 93, 92, 101, 92, 93, 99, 90, 92, 98, 108, 109, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 110, 113, 110, 137, 139, 138, 133, 136, 135, 129, 131, 130, 124, 126, 126, 122, 122, 124, 117, 119, 123, 113, 112, 117, 112, 111, 118, 108, 107, 114, 108, 107, 114, 103, 104, 113, 97, 98, 105, 116, 118, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 14, 19, 17, 139, 143, 144, 129, 133, 137, 132, 136, 137, 135, 139, 142, 139, 143, 146, 136, 140, 144, 126, 130, 133, 125, 129, 132, 113, 114, 118, 116, 117, 124, 114, 115, 119, 107, 109, 108, 129, 131, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 9, 5, 16, 19, 15, 52, 55, 51, 107, 109, 106, 116, 117, 114, 126, 126, 126, 133, 133, 133, 139, 137, 135, 137, 134, 133, 128, 128, 128, 120, 120, 120, 122, 122, 124, 113, 113, 113, 108, 110, 111, 106, 108, 107, 9, 12, 8, 1, 3, 0, 0, 0, 0, 0, 3, 0, 4, 9, 7, 4, 9, 7, 41, 46, 44, 126, 131, 129, 129, 131, 128, 132, 135, 132, 131, 134, 131, 129, 135, 129, 99, 102, 96, 102, 104, 104, 105, 110, 108, 98, 102, 103, 98, 103, 101, 89, 92, 91, 90, 92, 94, 16, 18, 17, 25, 28, 25, 0, 0, 0, 10, 13, 8, 22, 25, 19, 15, 18, 12, 88, 91, 86, 143, 146, 140, 138, 141, 136, 128, 130, 127, 120, 122, 119, 114, 116, 113, 114, 117, 111, 114, 116, 113, 109, 111, 111, 101, 103, 102, 104, 106, 108, 102, 104, 104, 95, 97, 99, 54, 57, 54, 7, 9, 6, 0, 0, 0, 0, 0, 0, 8, 10, 7, 12, 15, 12, 0, 1, 0, 117, 120, 117, 126, 126, 124, 124, 126, 126, 125, 125, 125, 117, 119, 119, 118, 120, 122, 121, 123, 122, 114, 116, 115, 111, 111, 111, 111, 114, 113, 101, 103, 102, 106, 111, 109, 98, 103, 101, 98, 103, 101, 96, 100, 101, 91, 96, 96, 94, 96, 97, 73, 75, 74, 131, 135, 134, 29, 32, 26, 0, 0, 0, 76, 77, 70, 118, 117, 108, 128, 128, 119, 131, 130, 121, 141, 137, 129, 47, 46, 37, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 124, 113, 56, 62, 53, 57, 58, 51, 63, 62, 56, 81, 78, 70, 109, 106, 96, 89, 84, 72, 104, 102, 89, 130, 126, 110, 150, 146, 129, 155, 150, 136, 161, 160, 140, 6, 8, 0, 0, 0, 0, 0, 0, 0, 99, 100, 91, 92, 93, 86, 95, 94, 85, 91, 92, 83, 111, 112, 103, 100, 100, 89, 117, 116, 107, 110, 109, 98, 99, 100, 91, 111, 112, 105, 117, 116, 109, 91, 90, 86, 112, 111, 107, 104, 104, 102, 108, 105, 104, 98, 98, 96, 100, 100, 98, 99, 97, 96, 95, 96, 93, 105, 105, 103, 100, 100, 98, 113, 113, 111, 105, 105, 103, 114, 115, 110, 95, 96, 91, 76, 77, 70, 0, 0, 0, 87, 89, 81, 83, 87, 79, 75, 79, 71, 33, 37, 29, 114, 117, 111, 87, 88, 92, 92, 93, 99, 90, 92, 98, 90, 92, 96, 89, 91, 95, 90, 92, 98, 89, 91, 95, 88, 90, 94, 86, 87, 91, 91, 90, 95, 85, 86, 90, 87, 89, 90, 83, 85, 87, 89, 91, 93, 75, 77, 79, 80, 82, 83, 95, 97, 99, 0, 0, 0, 0, 0, 0, 5, 10, 6, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 4, 0, 121, 123, 124, 130, 130, 134, 119, 118, 125, 121, 120, 129, 119, 117, 127, 111, 112, 121, 113, 113, 122, 102, 102, 114, 103, 104, 113, 99, 100, 106, 97, 98, 105, 96, 98, 100, 89, 91, 93, 86, 88, 87, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 95, 98, 93, 138, 141, 138, 137, 140, 134, 131, 134, 131, 128, 130, 127, 118, 120, 122, 117, 119, 121, 115, 116, 120, 106, 107, 111, 100, 101, 107, 107, 108, 114, 102, 104, 108, 96, 98, 102, 100, 102, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 6, 11, 7, 0, 5, 1, 52, 57, 53, 66, 70, 69, 114, 121, 119, 139, 146, 146, 142, 147, 147, 145, 149, 150, 126, 132, 132, 121, 128, 128, 117, 124, 124, 111, 116, 114, 112, 117, 115, 100, 106, 102, 171, 179, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 12, 8, 3, 8, 4, 16, 19, 15, 125, 128, 125, 107, 109, 106, 128, 128, 126, 127, 127, 125, 126, 126, 124, 133, 133, 131, 137, 138, 135, 118, 118, 116, 115, 116, 113, 113, 113, 111, 108, 109, 106, 100, 102, 99, 0, 0, 0, 2, 5, 1, 0, 0, 0, 0, 0, 0, 1, 7, 3, 1, 7, 3, 158, 163, 157, 85, 91, 84, 113, 119, 112, 171, 177, 171, 178, 181, 175, 206, 209, 201, 167, 171, 163, 155, 158, 152, 139, 144, 138, 142, 144, 141, 142, 147, 143, 72, 78, 74, 21, 26, 24, 37, 40, 36, 21, 26, 22, 0, 5, 0, 10, 15, 9, 67, 72, 66, 1, 7, 1, 58, 61, 55, 22, 28, 22, 26, 32, 25, 51, 54, 50, 90, 93, 90, 115, 118, 112, 92, 98, 91, 85, 90, 86, 76, 81, 77, 49, 54, 52, 28, 33, 29, 12, 17, 13, 33, 36, 33, 54, 57, 54, 8, 11, 5, 0, 0, 0, 0, 4, 0, 3, 6, 1, 5, 9, 3, 37, 40, 36, 0, 0, 0, 32, 35, 32, 51, 54, 50, 66, 69, 65, 104, 107, 104, 102, 107, 101, 102, 105, 102, 99, 101, 98, 110, 113, 108, 103, 108, 104, 100, 106, 102, 95, 100, 96, 69, 74, 72, 41, 46, 44, 25, 29, 30, 32, 39, 39, 35, 40, 38, 29, 34, 33, 42, 47, 45, 10, 13, 10, 0, 0, 0, 48, 49, 42, 131, 129, 123, 131, 130, 121, 134, 130, 122, 129, 126, 118, 84, 83, 75, 0, 0, 0, 12, 15, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 158, 164, 151, 53, 62, 52, 94, 96, 86, 63, 59, 51, 184, 179, 167, 86, 81, 71, 101, 96, 84, 121, 117, 102, 154, 150, 131, 159, 154, 138, 156, 152, 135, 60, 60, 44, 0, 0, 0, 0, 0, 0, 83, 87, 79, 87, 89, 81, 103, 102, 93, 103, 101, 95, 85, 85, 76, 100, 100, 91, 113, 112, 104, 112, 111, 103, 95, 94, 85, 139, 138, 129, 108, 107, 98, 131, 129, 123, 118, 116, 112, 109, 107, 103, 98, 96, 93, 105, 104, 100, 125, 123, 121, 99, 99, 97, 99, 99, 97, 109, 107, 105, 102, 103, 100, 104, 104, 102, 104, 104, 100, 106, 107, 102, 104, 104, 100, 94, 95, 90, 71, 72, 67, 0, 0, 0, 90, 91, 84, 72, 75, 67, 115, 119, 108, 39, 43, 35, 106, 109, 101, 80, 82, 83, 94, 96, 97, 97, 99, 103, 87, 88, 92, 92, 91, 96, 91, 90, 95, 88, 90, 94, 93, 93, 95, 90, 89, 92, 93, 93, 95, 88, 90, 92, 90, 90, 90, 89, 92, 91, 76, 79, 78, 76, 76, 76, 51, 53, 52, 135, 137, 136, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 63, 54, 0, 4, 0, 44, 48, 37, 143, 147, 134, 189, 194, 179, 210, 215, 202, 207, 211, 198, 182, 186, 178, 166, 169, 164, 195, 199, 191, 185, 186, 179, 170, 173, 165, 177, 180, 170, 68, 72, 64, 24, 26, 18, 16, 19, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 1, 13, 19, 10, 59, 63, 52, 32, 35, 30, 35, 38, 32, 20, 26, 19, 26, 32, 25, 11, 14, 9, 9, 12, 6, 21, 24, 18, 18, 21, 16, 4, 7, 2, 0, 5, 1, 14, 19, 15, 29, 35, 31, 42, 47, 43, 21, 26, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 181, 186, 182, 31, 36, 32, 50, 57, 55, 42, 52, 49, 34, 44, 41, 33, 43, 40, 33, 43, 40, 44, 53, 52, 35, 42, 41, 39, 48, 47, 34, 41, 38, 38, 45, 43, 45, 52, 52, 37, 44, 42, 27, 34, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 19, 15, 5, 11, 4, 93, 99, 93, 49, 55, 48, 31, 36, 30, 39, 42, 39, 35, 38, 32, 40, 45, 39, 30, 33, 25, 35, 38, 32, 34, 40, 31, 33, 37, 29, 43, 46, 40, 39, 42, 37, 40, 43, 40, 36, 38, 35, 15, 17, 14, 0, 0, 0, 0, 0, 0, 13, 18, 14, 53, 58, 54, 26, 32, 25, 42, 48, 41, 54, 59, 53, 46, 51, 45, 46, 51, 45, 41, 47, 40, 57, 63, 56, 39, 44, 40, 48, 53, 49, 53, 58, 54, 48, 53, 49, 55, 60, 56, 49, 54, 52, 47, 52, 50, 19, 24, 20, 0, 0, 0, 15, 21, 15, 17, 23, 14, 100, 106, 100, 46, 51, 45, 50, 56, 49, 54, 59, 53, 48, 54, 47, 50, 56, 51, 32, 40, 33, 42, 48, 41, 42, 49, 45, 39, 44, 40, 47, 52, 48, 35, 40, 36, 38, 43, 39, 36, 42, 38, 38, 43, 39, 32, 37, 33, 0, 0, 0, 18, 21, 18, 12, 15, 12, 10, 13, 10, 25, 28, 23, 22, 28, 24, 30, 33, 29, 24, 27, 24, 25, 30, 28, 26, 31, 29, 31, 35, 34, 19, 24, 22, 33, 38, 36, 37, 39, 38, 28, 33, 31, 29, 36, 34, 31, 35, 34, 28, 33, 31, 25, 33, 28, 32, 36, 37, 36, 43, 41, 38, 42, 41, 36, 42, 38, 32, 40, 37, 68, 71, 68, 25, 28, 25, 0, 0, 0, 109, 107, 101, 132, 131, 122, 141, 140, 132, 138, 135, 127, 121, 120, 114, 0, 0, 0, 11, 14, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, 171, 164, 42, 50, 43, 60, 66, 57, 150, 154, 143, 159, 156, 148, 83, 78, 66, 99, 94, 84, 118, 113, 101, 140, 135, 121, 147, 143, 124, 159, 154, 140, 153, 148, 134, 8, 10, 0, 0, 0, 0, 0, 0, 0, 79, 80, 73, 92, 94, 84, 98, 99, 90, 120, 119, 111, 105, 105, 94, 121, 121, 110, 120, 117, 106, 117, 114, 104, 89, 83, 74, 141, 140, 132, 113, 109, 101, 108, 106, 100, 98, 97, 91, 108, 106, 102, 103, 101, 97, 98, 96, 93, 103, 101, 99, 93, 94, 91, 111, 109, 107, 105, 103, 102, 102, 103, 100, 101, 102, 97, 101, 102, 97, 104, 104, 100, 104, 105, 98, 94, 95, 90, 70, 71, 66, 0, 0, 0, 87, 89, 81, 66, 70, 60, 76, 77, 68, 22, 26, 15, 123, 127, 117, 57, 57, 55, 74, 75, 74, 72, 72, 74, 84, 83, 86, 73, 73, 75, 77, 77, 77, 80, 80, 80, 85, 87, 86, 72, 72, 72, 64, 64, 62, 63, 63, 61, 74, 77, 74, 67, 70, 65, 38, 39, 36, 19, 19, 17, 25, 28, 25, 10, 13, 10, 46, 49, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 15, 21, 13, 117, 125, 104, 17, 21, 11, 26, 30, 20, 24, 28, 20, 28, 31, 25, 39, 42, 37, 33, 36, 31, 35, 38, 32, 31, 34, 29, 39, 42, 37, 36, 39, 31, 38, 41, 34, 30, 33, 25, 37, 40, 32, 25, 28, 23, 33, 36, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 159, 163, 155, 24, 28, 20, 35, 41, 34, 38, 43, 37, 52, 55, 49, 40, 46, 37, 29, 37, 28, 38, 47, 37, 45, 50, 44, 35, 42, 38, 27, 34, 29, 41, 48, 45, 41, 48, 45, 38, 45, 43, 37, 45, 40, 27, 32, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 75, 68, 17, 22, 16, 37, 45, 38, 39, 47, 44, 28, 36, 29, 41, 52, 44, 31, 42, 31, 60, 71, 60, 26, 36, 31, 40, 53, 44, 32, 42, 36, 38, 46, 41, 42, 49, 45, 41, 51, 48, 31, 40, 37, 29, 36, 34, 0, 4, 0, 0, 0, 0, 0, 0, 0, 13, 19, 12, 132, 137, 131, 46, 51, 45, 36, 42, 36, 38, 43, 37, 33, 37, 29, 14, 21, 9, 18, 24, 15, 95, 99, 89, 35, 38, 30, 36, 42, 36, 35, 41, 32, 57, 63, 54, 33, 36, 31, 45, 50, 46, 32, 37, 33, 21, 26, 22, 0, 0, 0, 0, 0, 0, 21, 27, 20, 76, 82, 75, 56, 62, 55, 48, 54, 47, 48, 54, 47, 52, 57, 51, 55, 61, 54, 36, 42, 36, 38, 43, 37, 34, 40, 33, 61, 66, 62, 31, 36, 32, 42, 47, 43, 45, 50, 46, 38, 43, 39, 40, 45, 41, 41, 46, 42, 0, 0, 0, 42, 48, 41, 125, 130, 124, 36, 42, 34, 50, 58, 51, 49, 55, 48, 51, 59, 52, 43, 49, 43, 56, 64, 56, 43, 49, 43, 45, 50, 46, 24, 29, 23, 22, 28, 24, 20, 26, 19, 21, 27, 20, 25, 30, 24, 18, 23, 17, 26, 29, 26, 51, 54, 48, 0, 1, 0, 18, 21, 16, 12, 16, 10, 103, 106, 101, 18, 21, 16, 16, 19, 15, 10, 13, 10, 14, 16, 15, 14, 19, 17, 12, 15, 12, 20, 25, 23, 21, 26, 24, 4, 9, 7, 27, 32, 30, 10, 14, 13, 8, 15, 13, 0, 4, 2, 15, 20, 19, 10, 17, 15, 14, 21, 21, 8, 13, 12, 15, 20, 19, 37, 40, 36, 42, 42, 40, 45, 45, 45, 35, 33, 32, 0, 0, 0, 110, 109, 102, 125, 124, 115, 135, 135, 126, 144, 141, 133, 142, 141, 133, 0, 0, 0, 5, 9, 3, 0, 3, 0, 0, 0, 0, 162, 167, 163, 24, 32, 27, 59, 68, 65, 61, 67, 58, 54, 58, 50, 95, 97, 87, 114, 114, 105, 95, 92, 84, 121, 118, 105, 143, 141, 126, 159, 155, 135, 157, 155, 138, 24, 24, 10, 0, 0, 0, 0, 0, 0, 138, 142, 134, 84, 85, 76, 93, 95, 85, 113, 114, 105, 109, 108, 99, 98, 98, 86, 125, 122, 114, 103, 102, 91, 85, 85, 74, 115, 112, 102, 139, 138, 127, 105, 104, 96, 103, 101, 95, 109, 107, 101, 123, 121, 115, 94, 92, 88, 99, 98, 94, 97, 95, 93, 100, 100, 98, 96, 94, 90, 94, 95, 90, 109, 110, 105, 102, 100, 96, 108, 109, 104, 102, 100, 96, 102, 104, 96, 88, 90, 82, 71, 72, 67, 0, 0, 0, 89, 93, 85, 74, 78, 68, 90, 91, 82, 68, 72, 64, 0, 1, 0, 10, 12, 4, 20, 21, 16, 1, 2, 0, 7, 8, 3, 19, 19, 15, 17, 18, 13, 7, 8, 1, 12, 13, 6, 20, 21, 14, 10, 12, 4, 16, 17, 12, 27, 28, 21, 38, 39, 34, 31, 32, 27, 45, 46, 41, 28, 31, 25, 37, 40, 34, 29, 32, 26, 53, 56, 51, 7, 10, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 152, 158, 149, 48, 52, 42, 53, 57, 47, 111, 116, 103, 255, 255, 255, 18, 22, 10, 229, 233, 220, 58, 62, 47, 61, 66, 51, 52, 57, 41, 75, 80, 65, 51, 56, 40, 90, 95, 80, 67, 71, 59, 22, 26, 15, 36, 42, 34, 40, 46, 37, 48, 52, 44, 0, 0, 0, 0, 0, 0, 3, 9, 0, 124, 130, 119, 37, 41, 30, 51, 55, 42, 36, 43, 29, 81, 87, 74, 221, 225, 212, 242, 246, 231, 26, 31, 16, 181, 186, 171, 142, 146, 131, 48, 54, 36, 192, 196, 181, 222, 227, 211, 18, 21, 16, 40, 45, 39, 20, 25, 21, 24, 27, 24, 25, 30, 26, 59, 64, 60, 0, 0, 0, 52, 57, 53, 25, 33, 26, 40, 45, 39, 48, 53, 49, 37, 45, 38, 212, 221, 206, 229, 239, 220, 0, 2, 0, 0, 4, 0, 65, 75, 56, 0, 0, 0, 205, 214, 197, 124, 133, 121, 198, 206, 198, 6, 13, 8, 0, 6, 3, 8, 13, 12, 32, 37, 33, 45, 48, 45, 11, 14, 9, 136, 139, 133, 61, 65, 57, 44, 47, 39, 39, 43, 35, 25, 32, 18, 214, 218, 205, 175, 177, 162, 16, 19, 4, 21, 25, 12, 7, 11, 0, 181, 186, 171, 122, 126, 113, 36, 40, 29, 12, 16, 10, 35, 37, 34, 25, 30, 26, 32, 37, 33, 0, 0, 0, 0, 0, 0, 140, 146, 139, 29, 35, 29, 57, 63, 56, 71, 77, 70, 67, 72, 66, 64, 70, 64, 55, 61, 54, 40, 45, 39, 17, 22, 16, 41, 46, 42, 27, 32, 28, 10, 14, 13, 7, 12, 10, 3, 7, 6, 22, 27, 28, 4, 9, 7, 29, 34, 33, 6, 11, 7, 103, 108, 104, 86, 92, 88, 39, 44, 40, 21, 26, 22, 34, 39, 35, 40, 45, 41, 42, 48, 41, 49, 55, 48, 47, 50, 45, 22, 25, 19, 12, 15, 12, 15, 17, 14, 25, 28, 25, 14, 19, 15, 2, 4, 3, 6, 11, 7, 12, 17, 15, 12, 17, 15, 0, 2, 0, 4, 7, 4, 33, 36, 33, 2, 5, 1, 0, 0, 0, 4, 9, 7, 16, 18, 17, 9, 11, 12, 4, 8, 9, 9, 11, 10, 6, 11, 9, 6, 11, 9, 0, 2, 0, 12, 16, 17, 18, 20, 22, 9, 11, 10, 11, 16, 14, 28, 33, 31, 12, 17, 15, 7, 12, 12, 15, 20, 19, 7, 12, 10, 17, 19, 19, 23, 23, 23, 47, 47, 45, 50, 50, 48, 0, 0, 0, 70, 71, 64, 125, 124, 115, 148, 147, 139, 138, 137, 128, 127, 126, 118, 21, 22, 15, 11, 14, 9, 0, 0, 0, 155, 161, 154, 36, 42, 38, 63, 70, 65, 55, 62, 59, 48, 54, 45, 51, 54, 46, 58, 59, 52, 74, 73, 64, 115, 112, 104, 144, 142, 127, 144, 142, 127, 157, 156, 135, 156, 154, 138, 0, 0, 0, 0, 0, 0, 33, 37, 29, 88, 92, 82, 109, 111, 103, 104, 105, 96, 94, 96, 86, 120, 121, 112, 125, 125, 113, 103, 102, 91, 103, 102, 91, 118, 117, 106, 99, 98, 90, 151, 148, 140, 103, 100, 92, 111, 110, 103, 97, 96, 87, 94, 92, 86, 100, 99, 93, 128, 127, 123, 100, 98, 97, 101, 102, 99, 102, 100, 96, 95, 93, 89, 103, 101, 97, 127, 126, 122, 103, 101, 97, 110, 108, 104, 105, 104, 98, 93, 94, 87, 72, 73, 66, 0, 0, 0, 91, 92, 85, 79, 82, 74, 83, 84, 77, 96, 100, 90, 21, 23, 13, 24, 26, 18, 19, 23, 15, 15, 16, 11, 93, 95, 85, 64, 66, 56, 31, 33, 21, 108, 111, 96, 47, 49, 34, 91, 93, 79, 122, 125, 108, 149, 151, 137, 194, 197, 182, 6, 7, 2, 24, 25, 22, 33, 33, 31, 19, 22, 19, 26, 29, 26, 16, 19, 15, 7, 10, 4, 17, 20, 15, 0, 0, 0, 0, 0, 0, 81, 85, 77, 29, 32, 24, 30, 32, 22, 60, 62, 50, 163, 167, 154, 243, 247, 225, 100, 104, 82, 237, 243, 220, 94, 99, 79, 214, 220, 197, 222, 228, 205, 64, 69, 49, 143, 148, 130, 61, 66, 51, 208, 212, 201, 121, 124, 116, 12, 16, 10, 16, 19, 13, 18, 21, 16, 28, 31, 25, 0, 0, 0, 34, 40, 31, 20, 26, 15, 46, 50, 38, 52, 56, 43, 47, 53, 42, 49, 56, 42, 65, 69, 54, 40, 45, 32, 19, 26, 12, 9, 13, 0, 166, 170, 158, 29, 33, 22, 157, 160, 152, 177, 178, 173, 14, 15, 10, 4, 7, 4, 15, 17, 16, 14, 16, 15, 28, 30, 27, 90, 95, 93, 0, 0, 0, 142, 147, 145, 10, 15, 11, 56, 62, 55, 54, 60, 51, 42, 48, 39, 18, 24, 13, 31, 40, 28, 2, 11, 1, 0, 0, 0, 100, 107, 96, 0, 4, 0, 1, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 10, 7, 9, 8, 2, 4, 3, 18, 20, 22, 14, 16, 15, 60, 63, 60, 48, 54, 47, 29, 30, 23, 21, 23, 13, 35, 37, 23, 0, 2, 0, 12, 13, 4, 83, 83, 79, 77, 77, 75, 63, 63, 61, 50, 52, 51, 65, 67, 68, 69, 71, 75, 75, 77, 81, 78, 79, 83, 101, 102, 106, 96, 98, 102, 109, 110, 117, 137, 138, 144, 132, 136, 139, 49, 54, 54, 26, 29, 24, 15, 18, 12, 3, 6, 1, 0, 0, 0, 0, 1, 0, 13, 18, 14, 154, 158, 159, 148, 152, 155, 154, 158, 161, 146, 150, 153, 146, 150, 153, 140, 144, 147, 131, 134, 140, 131, 135, 138, 125, 129, 132, 114, 118, 124, 116, 119, 125, 106, 107, 113, 100, 104, 110, 121, 125, 128, 61, 66, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 34, 52, 55, 51, 49, 49, 47, 110, 112, 112, 125, 128, 127, 129, 131, 132, 128, 129, 131, 131, 133, 135, 138, 138, 140, 131, 131, 135, 135, 136, 140, 131, 132, 139, 137, 138, 144, 132, 134, 138, 136, 137, 141, 143, 144, 148, 127, 128, 132, 134, 138, 141, 142, 146, 149, 134, 138, 141, 132, 136, 139, 133, 135, 139, 142, 143, 145, 139, 141, 143, 138, 140, 142, 138, 140, 142, 125, 127, 129, 133, 135, 137, 139, 143, 144, 136, 138, 137, 138, 140, 140, 120, 122, 121, 86, 87, 84, 0, 0, 0, 0, 0, 0, 58, 59, 52, 127, 128, 119, 144, 141, 131, 133, 132, 124, 132, 131, 120, 114, 113, 107, 0, 0, 0, 80, 83, 75, 67, 71, 63, 53, 58, 52, 71, 78, 74, 66, 76, 68, 24, 36, 18, 27, 36, 21, 26, 27, 20, 23, 24, 17, 63, 62, 54, 62, 62, 50, 154, 154, 140, 155, 156, 140, 9, 11, 1, 2, 4, 0, 0, 0, 0, 113, 114, 107, 84, 85, 78, 86, 87, 80, 104, 103, 94, 102, 101, 92, 109, 108, 99, 130, 129, 118, 108, 107, 98, 113, 112, 104, 107, 104, 96, 107, 104, 96, 102, 101, 92, 102, 99, 91, 116, 115, 106, 88, 86, 80, 124, 121, 115, 98, 96, 93, 99, 98, 94, 98, 96, 95, 102, 100, 96, 96, 94, 90, 90, 88, 84, 100, 99, 95, 102, 103, 98, 104, 102, 98, 99, 98, 94, 110, 108, 104, 100, 101, 94, 52, 54, 46, 0, 0, 0, 101, 104, 96, 85, 88, 80, 120, 123, 113, 22, 25, 17, 31, 34, 29, 26, 29, 24, 15, 18, 10, 0, 0, 0, 121, 122, 115, 133, 134, 127, 0, 0, 0, 6, 8, 0, 64, 67, 48, 111, 114, 92, 215, 219, 197, 155, 158, 137, 149, 153, 131, 0, 0, 0, 19, 19, 15, 3, 4, 3, 11, 14, 13, 9, 9, 9, 16, 16, 16, 16, 18, 17, 8, 10, 9, 0, 0, 0, 93, 95, 92, 85, 88, 82, 26, 29, 24, 30, 33, 25, 36, 40, 29, 47, 51, 41, 38, 42, 29, 59, 63, 52, 18, 22, 12, 3, 7, 0, 39, 41, 43, 43, 44, 50, 24, 25, 32, 12, 14, 18, 17, 19, 23, 26, 28, 32, 33, 34, 41, 31, 33, 37, 35, 36, 40, 40, 42, 46, 53, 55, 57, 74, 76, 78, 94, 96, 97, 140, 143, 142, 2, 5, 0, 17, 21, 13, 33, 37, 27, 12, 16, 6, 0, 1, 0, 0, 0, 0, 17, 21, 11, 48, 52, 44, 151, 152, 147, 149, 149, 149, 154, 153, 156, 149, 149, 151, 155, 154, 157, 150, 150, 152, 150, 149, 154, 150, 149, 154, 149, 150, 156, 138, 139, 148, 136, 136, 147, 123, 124, 132, 120, 120, 129, 62, 66, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 29, 22, 50, 56, 49, 164, 166, 165, 136, 138, 139, 143, 144, 148, 145, 147, 151, 144, 145, 149, 138, 139, 146, 131, 132, 139, 125, 127, 131, 121, 122, 128, 122, 123, 127, 114, 113, 118, 116, 118, 122, 111, 112, 119, 92, 94, 95, 0, 0, 0, 0, 0, 0, 59, 61, 49, 94, 97, 82, 92, 94, 82, 78, 80, 68, 128, 129, 122, 121, 121, 121, 134, 133, 136, 133, 132, 137, 136, 135, 140, 135, 134, 139, 138, 139, 146, 135, 136, 142, 131, 132, 141, 125, 126, 135, 124, 125, 134, 121, 121, 132, 114, 114, 125, 132, 133, 144, 37, 40, 36, 40, 43, 38, 79, 82, 76, 89, 93, 85, 80, 83, 75, 45, 50, 44, 102, 104, 104, 129, 130, 134, 136, 140, 146, 134, 138, 141, 133, 137, 140, 130, 131, 135, 128, 129, 133, 110, 114, 117, 124, 128, 131, 117, 118, 125, 111, 112, 119, 109, 110, 117, 106, 107, 113, 114, 115, 121, 6, 11, 11, 0, 0, 0, 0, 0, 0, 53, 56, 51, 70, 71, 66, 58, 61, 55, 28, 28, 26, 94, 96, 95, 121, 123, 124, 128, 129, 131, 130, 130, 132, 129, 131, 132, 130, 130, 134, 131, 131, 135, 129, 130, 136, 124, 125, 132, 125, 127, 133, 125, 123, 130, 129, 130, 136, 125, 127, 133, 124, 125, 132, 117, 118, 125, 118, 119, 126, 121, 122, 128, 121, 122, 126, 116, 116, 120, 119, 118, 123, 116, 116, 118, 118, 117, 120, 115, 115, 117, 114, 114, 116, 113, 112, 115, 108, 110, 111, 110, 112, 112, 109, 111, 111, 115, 117, 116, 122, 124, 123, 10, 13, 10, 2, 5, 0, 67, 65, 59, 120, 121, 112, 125, 122, 114, 139, 136, 126, 141, 138, 127, 127, 126, 118, 134, 133, 125, 92, 92, 81, 80, 79, 68, 60, 62, 50, 39, 39, 25, 54, 54, 40, 93, 99, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 21, 12, 13, 14, 7, 0, 0, 0, 0, 0, 0, 72, 73, 66, 80, 81, 74, 71, 72, 65, 89, 88, 79, 114, 114, 105, 124, 123, 114, 104, 103, 94, 113, 112, 104, 108, 107, 98, 120, 116, 110, 109, 108, 99, 114, 110, 105, 113, 109, 103, 147, 145, 141, 105, 104, 100, 113, 112, 108, 136, 132, 129, 108, 106, 102, 126, 124, 123, 113, 111, 110, 95, 93, 91, 96, 94, 92, 97, 95, 91, 103, 101, 97, 91, 90, 86, 99, 98, 94, 99, 98, 94, 103, 101, 97, 123, 121, 115, 81, 83, 75, 0, 0, 0, 137, 141, 130, 106, 109, 99, 53, 57, 49, 17, 21, 13, 9, 12, 6, 12, 16, 17, 18, 23, 19, 28, 29, 33, 50, 51, 57, 59, 59, 70, 48, 49, 58, 87, 88, 96, 103, 104, 111, 116, 117, 124, 136, 137, 143, 159, 158, 165, 156, 155, 162, 153, 151, 159, 144, 145, 151, 141, 139, 149, 129, 130, 138, 116, 117, 126, 111, 112, 121, 118, 119, 128, 116, 117, 126, 114, 114, 123, 106, 106, 115, 107, 108, 114, 69, 71, 73, 30, 33, 29, 38, 41, 34, 0, 0, 0, 0, 0, 0, 37, 41, 28, 61, 65, 57, 31, 34, 31, 102, 103, 110, 142, 142, 155, 133, 133, 149, 127, 127, 140, 133, 133, 147, 122, 122, 135, 117, 117, 131, 118, 119, 130, 117, 118, 129, 117, 118, 129, 113, 113, 122, 113, 113, 122, 110, 111, 120, 108, 109, 115, 124, 125, 132, 11, 14, 11, 46, 50, 40, 0, 0, 0, 84, 91, 77, 100, 104, 91, 102, 106, 96, 40, 44, 36, 151, 152, 149, 143, 143, 145, 137, 137, 139, 142, 142, 144, 140, 139, 144, 138, 134, 142, 137, 133, 141, 131, 130, 139, 131, 130, 139, 122, 122, 133, 123, 123, 134, 122, 122, 133, 118, 118, 132, 142, 142, 151, 0, 2, 3, 62, 68, 61, 19, 25, 16, 71, 77, 70, 76, 82, 73, 50, 56, 49, 86, 88, 87, 133, 135, 139, 145, 146, 153, 146, 147, 154, 148, 149, 155, 135, 136, 142, 136, 137, 143, 130, 131, 137, 124, 125, 132, 121, 120, 127, 121, 120, 127, 115, 114, 121, 108, 107, 116, 121, 120, 127, 1, 3, 2, 0, 0, 0, 60, 62, 50, 77, 79, 65, 88, 90, 78, 74, 76, 64, 92, 93, 86, 123, 124, 121, 125, 124, 127, 133, 132, 137, 137, 137, 141, 141, 140, 147, 134, 133, 138, 118, 116, 124, 131, 130, 139, 129, 129, 140, 127, 127, 138, 120, 120, 133, 117, 117, 131, 125, 126, 137, 2, 4, 5, 17, 20, 17, 18, 21, 16, 79, 82, 74, 81, 84, 79, 80, 83, 77, 50, 52, 49, 127, 128, 132, 132, 136, 139, 134, 138, 141, 133, 135, 139, 131, 133, 137, 110, 112, 116, 175, 179, 180, 124, 126, 130, 116, 117, 124, 114, 113, 120, 111, 112, 119, 108, 107, 114, 103, 104, 111, 25, 27, 29, 25, 28, 27, 0, 0, 0, 4, 7, 2, 40, 43, 40, 31, 34, 31, 36, 36, 34, 54, 57, 56, 126, 126, 126, 134, 133, 136, 130, 130, 132, 130, 130, 132, 130, 130, 134, 128, 127, 132, 128, 127, 132, 125, 123, 130, 127, 126, 131, 125, 123, 130, 121, 120, 127, 121, 120, 127, 121, 120, 127, 121, 120, 127, 110, 112, 116, 118, 120, 124, 114, 113, 118, 119, 118, 123, 122, 122, 124, 116, 116, 118, 116, 116, 118, 114, 114, 116, 116, 116, 118, 114, 114, 116, 116, 116, 118, 114, 114, 114, 111, 114, 113, 113, 113, 113, 114, 114, 114, 24, 24, 24, 28, 28, 26, 0, 0, 0, 114, 114, 105, 125, 122, 114, 144, 141, 131, 139, 136, 126, 149, 146, 135, 137, 134, 124, 138, 135, 125, 137, 135, 122, 132, 130, 117, 134, 132, 114, 134, 130, 113, 78, 78, 69, 109, 111, 101, 121, 122, 115, 107, 108, 101, 109, 110, 105, 138, 139, 134, 25, 28, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 97, 89, 90, 89, 82, 92, 92, 83, 100, 100, 91, 110, 109, 100, 94, 93, 84, 106, 105, 97, 106, 105, 97, 110, 109, 102, 123, 121, 115, 138, 136, 130, 142, 141, 135, 141, 137, 133, 139, 137, 133, 145, 143, 139, 144, 141, 140, 121, 119, 118, 131, 129, 127, 140, 138, 138, 121, 119, 120, 120, 118, 119, 105, 103, 104, 114, 112, 111, 98, 96, 95, 98, 96, 95, 102, 100, 96, 99, 98, 94, 111, 110, 103, 106, 105, 99, 71, 74, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 94, 83, 54, 60, 51, 79, 85, 81, 102, 105, 113, 104, 107, 117, 118, 120, 133, 104, 106, 119, 99, 102, 114, 107, 107, 120, 106, 106, 119, 102, 102, 116, 104, 105, 116, 112, 110, 122, 108, 106, 118, 99, 97, 109, 108, 107, 116, 107, 105, 117, 108, 107, 116, 109, 109, 121, 113, 111, 123, 111, 109, 121, 113, 113, 124, 107, 107, 118, 110, 111, 122, 111, 112, 123, 109, 110, 119, 155, 155, 164, 4, 6, 8, 48, 51, 48, 0, 0, 0, 117, 121, 111, 85, 88, 78, 73, 76, 68, 26, 29, 26, 59, 60, 64, 140, 140, 156, 138, 138, 154, 132, 132, 148, 126, 128, 143, 123, 123, 138, 117, 119, 134, 113, 113, 126, 109, 109, 123, 107, 107, 120, 103, 103, 117, 103, 104, 115, 102, 102, 114, 101, 101, 112, 117, 118, 125, 0, 0, 0, 5, 11, 4, 0, 0, 0, 55, 59, 49, 55, 60, 47, 62, 66, 56, 52, 55, 48, 114, 116, 113, 144, 144, 146, 142, 141, 146, 145, 141, 147, 140, 139, 144, 138, 138, 142, 137, 136, 143, 135, 134, 141, 131, 130, 139, 128, 127, 136, 126, 124, 134, 121, 121, 132, 120, 120, 131, 120, 120, 131, 0, 0, 4, 14, 19, 15, 0, 0, 0, 13, 19, 12, 43, 49, 43, 53, 58, 52, 48, 51, 50, 156, 157, 161, 137, 138, 142, 143, 144, 148, 145, 147, 151, 144, 143, 150, 133, 135, 141, 130, 131, 137, 131, 132, 139, 120, 119, 126, 119, 118, 125, 116, 115, 122, 112, 111, 118, 111, 109, 117, 20, 19, 22, 49, 50, 45, 0, 0, 0, 77, 79, 67, 76, 78, 65, 73, 75, 65, 62, 63, 54, 137, 138, 135, 122, 122, 124, 128, 127, 132, 140, 137, 142, 142, 141, 148, 140, 138, 146, 255, 255, 255, 129, 128, 135, 132, 133, 142, 125, 126, 137, 121, 121, 132, 115, 115, 128, 114, 114, 125, 31, 33, 37, 23, 25, 24, 0, 0, 0, 39, 43, 35, 28, 31, 25, 36, 39, 33, 23, 25, 24, 131, 133, 137, 129, 130, 134, 135, 136, 140, 137, 138, 142, 131, 133, 137, 127, 128, 134, 127, 128, 132, 116, 117, 124, 119, 118, 125, 113, 112, 119, 111, 109, 117, 109, 108, 115, 109, 108, 115, 86, 87, 91, 2, 4, 3, 0, 0, 0, 0, 0, 0, 19, 22, 19, 39, 42, 39, 15, 17, 14, 10, 10, 10, 118, 117, 120, 125, 124, 127, 131, 131, 133, 129, 129, 131, 129, 128, 133, 126, 125, 130, 126, 125, 130, 128, 127, 132, 124, 125, 132, 119, 118, 125, 127, 126, 133, 119, 118, 125, 121, 120, 127, 119, 118, 125, 116, 118, 122, 113, 114, 120, 113, 112, 117, 104, 103, 108, 255, 255, 255, 215, 215, 217, 109, 109, 111, 114, 114, 116, 144, 144, 144, 115, 115, 115, 112, 111, 114, 114, 114, 114, 107, 107, 107, 116, 116, 118, 115, 115, 115, 71, 71, 71, 27, 27, 27, 0, 0, 0, 103, 100, 94, 141, 138, 127, 135, 132, 121, 138, 136, 123, 131, 129, 116, 137, 135, 120, 138, 136, 123, 136, 133, 121, 143, 141, 126, 137, 135, 120, 146, 145, 127, 93, 95, 83, 148, 148, 136, 135, 135, 126, 116, 118, 108, 89, 88, 81, 83, 83, 79, 99, 100, 93, 19, 20, 13, 0, 0, 0, 114, 115, 108, 71, 72, 65, 100, 100, 91, 94, 93, 84, 113, 112, 104, 103, 100, 92, 118, 117, 108, 130, 129, 120, 136, 133, 125, 144, 142, 136, 149, 148, 144, 161, 159, 156, 156, 155, 151, 157, 153, 150, 151, 149, 147, 147, 145, 143, 161, 159, 158, 141, 139, 138, 159, 156, 159, 168, 166, 166, 160, 157, 160, 140, 137, 140, 135, 133, 136, 121, 116, 120, 110, 107, 108, 98, 96, 95, 97, 95, 91, 100, 99, 95, 95, 97, 89, 102, 106, 96, 61, 65, 57, 0, 0, 0, 95, 101, 90, 79, 86, 75, 61, 67, 56, 42, 48, 39, 83, 88, 84, 100, 104, 112, 103, 106, 116, 106, 109, 121, 99, 102, 112, 103, 106, 116, 102, 102, 114, 106, 106, 117, 104, 105, 116, 103, 104, 115, 100, 100, 111, 103, 104, 113, 104, 105, 116, 104, 105, 116, 104, 105, 116, 106, 106, 117, 104, 105, 116, 103, 104, 115, 109, 109, 121, 107, 107, 118, 107, 107, 118, 107, 107, 118, 107, 107, 118, 110, 111, 122, 118, 119, 126, 0, 2, 3, 29, 31, 30, 18, 21, 16, 0, 0, 0, 17, 21, 13, 50, 53, 47, 12, 17, 15, 3, 7, 10, 137, 137, 150, 135, 135, 148, 131, 131, 147, 125, 125, 139, 122, 122, 135, 118, 118, 132, 114, 114, 127, 113, 113, 126, 104, 104, 118, 106, 106, 117, 101, 101, 112, 100, 100, 111, 99, 99, 108, 97, 98, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 9, 1, 95, 99, 89, 66, 69, 62, 48, 52, 44, 64, 67, 61, 144, 144, 144, 142, 139, 145, 145, 141, 147, 145, 141, 147, 145, 141, 147, 204, 200, 208, 159, 156, 161, 206, 205, 212, 130, 129, 138, 128, 126, 138, 123, 122, 133, 124, 125, 136, 115, 115, 126, 33, 37, 42, 0, 0, 0, 0, 0, 0, 5, 10, 6, 49, 55, 48, 28, 33, 29, 46, 49, 46, 115, 117, 118, 143, 142, 147, 143, 142, 149, 145, 144, 151, 143, 142, 147, 115, 114, 121, 244, 243, 250, 140, 138, 146, 118, 116, 124, 118, 116, 124, 118, 116, 124, 113, 112, 119, 107, 106, 113, 121, 122, 126, 18, 21, 18, 0, 0, 0, 33, 37, 29, 55, 56, 47, 56, 57, 48, 49, 50, 43, 111, 111, 107, 128, 128, 130, 130, 130, 134, 137, 137, 141, 145, 144, 151, 140, 138, 146, 141, 140, 145, 142, 141, 148, 130, 129, 138, 124, 125, 136, 118, 119, 130, 121, 121, 134, 114, 114, 125, 106, 106, 115, 12, 16, 17, 0, 0, 0, 62, 68, 61, 32, 35, 30, 14, 16, 15, 15, 20, 19, 82, 84, 88, 136, 137, 141, 131, 135, 138, 132, 134, 138, 132, 134, 138, 127, 128, 132, 124, 126, 130, 125, 123, 130, 118, 116, 124, 114, 113, 120, 112, 111, 118, 108, 107, 114, 107, 106, 113, 128, 129, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 17, 14, 39, 42, 39, 18, 21, 20, 13, 13, 13, 115, 115, 117, 123, 123, 125, 127, 127, 129, 130, 130, 134, 128, 127, 132, 126, 125, 130, 126, 125, 132, 123, 122, 129, 123, 122, 129, 116, 115, 122, 120, 119, 126, 119, 118, 125, 116, 115, 122, 115, 114, 121, 114, 113, 120, 108, 107, 114, 114, 113, 118, 98, 97, 102, 255, 255, 255, 143, 143, 143, 213, 214, 209, 255, 255, 255, 238, 236, 234, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 119, 119, 108, 108, 108, 111, 111, 111, 106, 106, 106, 19, 22, 19, 0, 0, 0, 87, 83, 78, 129, 126, 118, 143, 140, 129, 142, 137, 125, 143, 141, 126, 149, 144, 130, 149, 144, 130, 147, 145, 130, 137, 135, 120, 139, 138, 120, 145, 143, 126, 126, 126, 112, 148, 148, 134, 100, 100, 89, 93, 95, 85, 92, 93, 86, 107, 108, 101, 0, 0, 0, 0, 0, 0, 6, 5, 0, 89, 88, 79, 119, 119, 107, 104, 103, 94, 94, 93, 84, 106, 105, 97, 122, 119, 111, 146, 143, 135, 127, 123, 115, 129, 125, 120, 141, 137, 131, 132, 131, 124, 139, 138, 131, 111, 110, 103, 118, 117, 110, 105, 104, 98, 118, 117, 110, 130, 128, 124, 162, 160, 159, 168, 166, 164, 160, 155, 159, 164, 159, 163, 168, 163, 167, 172, 167, 171, 159, 154, 158, 145, 140, 144, 125, 120, 124, 105, 103, 102, 116, 114, 112, 112, 113, 106, 109, 113, 103, 37, 40, 32, 0, 0, 0, 114, 121, 110, 93, 99, 91, 66, 72, 61, 57, 63, 54, 84, 89, 85, 102, 105, 111, 95, 98, 106, 102, 104, 115, 102, 104, 115, 102, 104, 115, 93, 96, 107, 96, 99, 109, 99, 99, 110, 101, 101, 112, 103, 104, 113, 103, 104, 111, 99, 99, 108, 102, 103, 112, 102, 103, 110, 103, 104, 113, 104, 105, 114, 103, 104, 113, 105, 103, 115, 106, 104, 116, 106, 104, 116, 103, 104, 115, 104, 105, 116, 102, 102, 114, 95, 96, 105, 0, 0, 0, 0, 3, 1, 95, 100, 94, 0, 0, 0, 0, 2, 0, 66, 70, 69, 6, 11, 11, 3, 6, 12, 127, 130, 142, 136, 135, 151, 127, 126, 142, 122, 121, 137, 118, 118, 134, 116, 116, 129, 118, 118, 132, 158, 158, 169, 96, 96, 108, 111, 112, 123, 99, 99, 110, 100, 100, 111, 96, 97, 106, 96, 97, 106, 101, 102, 106, 0, 0, 0, 0, 1, 0, 0, 0, 0, 17, 20, 15, 30, 33, 25, 28, 31, 23, 26, 30, 22, 150, 150, 150, 144, 140, 146, 146, 143, 148, 145, 141, 147, 146, 143, 148, 155, 152, 158, 255, 255, 255, 140, 138, 146, 128, 127, 134, 126, 124, 134, 125, 123, 134, 123, 122, 133, 114, 114, 125, 139, 140, 149, 0, 5, 5, 0, 0, 0, 31, 34, 31, 6, 11, 7, 21, 26, 22, 40, 43, 40, 60, 62, 62, 138, 140, 142, 142, 141, 146, 147, 145, 153, 140, 138, 146, 138, 137, 144, 255, 255, 255, 130, 130, 134, 114, 113, 120, 115, 114, 121, 115, 114, 121, 114, 113, 120, 112, 111, 118, 112, 111, 116, 0, 0, 0, 24, 27, 24, 0, 0, 0, 43, 44, 39, 52, 55, 49, 47, 47, 43, 62, 62, 60, 129, 129, 131, 133, 132, 137, 131, 128, 133, 140, 139, 144, 141, 138, 144, 130, 126, 132, 128, 127, 134, 119, 118, 125, 127, 125, 137, 123, 122, 133, 120, 118, 130, 115, 115, 126, 123, 124, 132, 11, 13, 15, 0, 0, 0, 0, 0, 0, 24, 27, 24, 26, 29, 28, 16, 18, 17, 21, 22, 24, 132, 134, 138, 131, 133, 137, 133, 135, 139, 131, 133, 137, 131, 131, 135, 118, 117, 122, 255, 255, 255, 115, 114, 119, 116, 115, 122, 112, 111, 116, 109, 108, 115, 107, 106, 113, 107, 108, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 4, 28, 33, 29, 6, 11, 9, 7, 7, 7, 109, 109, 109, 136, 136, 138, 128, 128, 130, 128, 128, 130, 131, 131, 135, 126, 125, 130, 127, 126, 131, 128, 127, 132, 122, 121, 126, 125, 124, 128, 122, 121, 128, 116, 116, 120, 115, 114, 121, 111, 110, 115, 114, 113, 118, 109, 111, 115, 112, 111, 116, 100, 99, 104, 105, 104, 107, 111, 110, 113, 115, 115, 117, 100, 100, 100, 102, 102, 102, 111, 111, 111, 102, 102, 102, 104, 104, 104, 105, 105, 105, 105, 105, 105, 106, 106, 106, 125, 125, 125, 22, 22, 20, 8, 9, 4, 26, 25, 18, 130, 127, 117, 145, 143, 130, 149, 144, 132, 146, 144, 129, 149, 147, 131, 159, 154, 140, 153, 151, 136, 144, 142, 127, 146, 145, 127, 141, 142, 124, 148, 141, 130, 141, 136, 124, 110, 109, 98, 92, 92, 83, 90, 91, 84, 44, 45, 38, 10, 12, 4, 0, 0, 0, 99, 98, 90, 78, 78, 69, 88, 85, 77, 117, 116, 105, 199, 199, 190, 106, 102, 94, 119, 118, 112, 152, 149, 141, 147, 144, 136, 100, 96, 91, 166, 164, 158, 168, 167, 160, 141, 140, 134, 128, 127, 121, 124, 122, 118, 124, 123, 116, 120, 121, 116, 137, 139, 131, 171, 170, 166, 183, 182, 178, 0, 0, 0, 155, 150, 149, 160, 155, 159, 163, 158, 161, 161, 156, 160, 161, 156, 160, 152, 147, 151, 128, 123, 127, 102, 100, 98, 106, 107, 102, 99, 100, 91, 50, 53, 45, 0, 0, 0, 92, 99, 87, 83, 89, 80, 79, 86, 75, 29, 36, 25, 74, 79, 73, 96, 99, 105, 100, 103, 114, 91, 94, 104, 92, 95, 105, 91, 94, 104, 93, 96, 107, 91, 94, 104, 98, 101, 111, 101, 101, 112, 98, 101, 109, 101, 102, 108, 118, 119, 126, 96, 97, 104, 178, 179, 185, 92, 92, 101, 102, 103, 112, 101, 102, 110, 104, 102, 114, 105, 103, 115, 105, 103, 115, 105, 103, 115, 105, 103, 115, 103, 104, 115, 106, 106, 115, 22, 23, 27, 0, 5, 3, 14, 19, 15, 0, 0, 0, 0, 0, 0, 0, 5, 1, 3, 7, 8, 6, 10, 15, 106, 109, 121, 138, 138, 154, 133, 133, 149, 121, 121, 134, 118, 118, 132, 115, 115, 128, 121, 121, 134, 109, 109, 121, 97, 95, 107, 116, 117, 126, 90, 91, 102, 93, 94, 102, 94, 95, 103, 96, 97, 104, 113, 114, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 16, 19, 13, 25, 30, 24, 31, 36, 32, 142, 142, 142, 141, 138, 144, 146, 143, 148, 142, 139, 145, 141, 138, 144, 123, 123, 127, 183, 182, 187, 255, 255, 255, 137, 136, 143, 140, 138, 148, 123, 122, 131, 121, 119, 131, 115, 115, 126, 118, 119, 128, 0, 0, 0, 3, 5, 5, 0, 0, 0, 0, 4, 2, 21, 26, 22, 22, 24, 21, 35, 35, 35, 148, 147, 150, 136, 135, 140, 140, 139, 144, 141, 140, 145, 136, 135, 142, 120, 119, 124, 255, 255, 255, 232, 231, 236, 130, 130, 134, 119, 118, 125, 114, 113, 120, 112, 111, 118, 102, 102, 106, 28, 28, 30, 0, 0, 0, 0, 0, 0, 6, 6, 4, 29, 30, 25, 40, 43, 40, 37, 37, 37, 138, 135, 138, 118, 117, 122, 127, 124, 130, 131, 131, 135, 146, 143, 148, 134, 133, 138, 255, 255, 255, 127, 126, 133, 136, 135, 144, 125, 123, 134, 117, 117, 131, 115, 115, 128, 115, 116, 124, 55, 57, 63, 8, 10, 9, 0, 0, 0, 3, 6, 3, 11, 14, 13, 15, 17, 16, 14, 15, 17, 130, 132, 133, 129, 130, 134, 132, 134, 138, 131, 133, 137, 130, 131, 135, 126, 125, 130, 125, 124, 128, 123, 123, 127, 115, 114, 121, 114, 113, 120, 109, 109, 113, 105, 104, 111, 102, 104, 108, 12, 15, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 21, 17, 0, 4, 2, 0, 1, 0, 88, 90, 92, 128, 128, 130, 128, 128, 130, 128, 128, 130, 129, 129, 131, 130, 130, 132, 126, 125, 130, 128, 127, 132, 122, 121, 126, 123, 123, 127, 121, 120, 127, 115, 116, 122, 111, 113, 117, 113, 114, 118, 111, 113, 117, 109, 111, 115, 110, 112, 116, 107, 109, 110, 112, 111, 114, 109, 109, 111, 111, 110, 115, 106, 106, 108, 107, 107, 109, 108, 108, 110, 109, 109, 111, 108, 108, 110, 100, 100, 100, 113, 113, 113, 109, 109, 109, 115, 116, 113, 16, 17, 12, 16, 17, 10, 0, 0, 0, 131, 130, 119, 139, 136, 126, 141, 138, 123, 169, 164, 150, 149, 144, 130, 152, 151, 133, 139, 138, 120, 145, 143, 126, 144, 142, 125, 149, 147, 127, 146, 144, 129, 124, 122, 107, 105, 105, 94, 95, 94, 83, 122, 124, 114, 0, 0, 0, 0, 0, 0, 67, 69, 60, 73, 72, 61, 88, 87, 78, 128, 125, 114, 110, 109, 98, 96, 95, 86, 100, 99, 93, 32, 31, 24, 134, 133, 127, 117, 116, 109, 77, 76, 68, 11, 10, 1, 9, 8, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 36, 36, 25, 57, 57, 44, 126, 128, 114, 219, 219, 207, 179, 174, 176, 178, 173, 175, 45, 41, 38, 160, 155, 159, 151, 146, 150, 156, 150, 157, 141, 135, 139, 121, 119, 122, 104, 102, 100, 95, 93, 89, 102, 104, 96, 69, 69, 65, 0, 0, 0, 93, 97, 86, 80, 84, 73, 104, 110, 99, 34, 40, 31, 69, 75, 66, 92, 98, 103, 94, 99, 109, 97, 100, 110, 96, 98, 111, 96, 99, 109, 93, 96, 107, 96, 99, 109, 97, 100, 110, 98, 101, 111, 97, 100, 108, 90, 92, 98, 255, 255, 255, 85, 85, 94, 111, 112, 119, 146, 147, 154, 104, 105, 114, 92, 92, 101, 109, 108, 117, 104, 102, 112, 104, 105, 114, 103, 104, 113, 104, 105, 114, 102, 103, 112, 97, 98, 107, 142, 146, 151, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 5, 9, 12, 95, 97, 110, 138, 138, 152, 129, 129, 142, 118, 118, 132, 120, 120, 133, 117, 117, 131, 118, 119, 130, 107, 107, 118, 122, 123, 131, 100, 100, 109, 96, 96, 108, 95, 96, 105, 95, 96, 105, 94, 95, 103, 92, 93, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 26, 19, 20, 26, 19, 19, 24, 20, 72, 74, 75, 140, 137, 140, 138, 138, 142, 140, 137, 142, 142, 141, 146, 135, 132, 138, 136, 135, 142, 135, 134, 141, 128, 127, 136, 129, 127, 139, 123, 122, 131, 121, 121, 132, 118, 119, 130, 113, 113, 122, 26, 28, 30, 0, 2, 1, 42, 47, 45, 0, 0, 0, 10, 15, 11, 10, 12, 12, 31, 33, 33, 107, 107, 109, 140, 138, 146, 137, 136, 143, 140, 138, 146, 140, 139, 144, 131, 130, 137, 133, 132, 137, 120, 119, 124, 115, 114, 119, 118, 116, 124, 115, 114, 121, 114, 113, 120, 112, 111, 118, 131, 133, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 23, 20, 18, 21, 16, 33, 36, 33, 91, 91, 89, 120, 119, 122, 125, 122, 127, 133, 132, 137, 137, 133, 139, 139, 136, 141, 129, 128, 133, 130, 129, 136, 130, 129, 138, 123, 123, 134, 121, 121, 132, 116, 116, 128, 110, 111, 118, 132, 136, 139, 5, 10, 8, 0, 4, 0, 0, 0, 0, 42, 44, 43, 12, 15, 14, 14, 16, 13, 62, 67, 65, 130, 132, 131, 129, 131, 132, 128, 129, 133, 130, 130, 134, 125, 124, 128, 125, 124, 128, 120, 119, 124, 120, 119, 124, 114, 113, 118, 109, 109, 113, 104, 106, 110, 96, 98, 100, 65, 67, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 12, 8, 10, 15, 11, 6, 11, 7, 57, 59, 58, 128, 130, 127, 127, 129, 128, 130, 130, 130, 132, 135, 134, 130, 130, 130, 125, 127, 129, 121, 123, 124, 122, 122, 124, 122, 123, 127, 123, 125, 128, 122, 123, 127, 120, 121, 125, 115, 117, 118, 116, 118, 120, 111, 113, 115, 108, 108, 110, 108, 108, 110, 109, 109, 111, 112, 111, 114, 111, 110, 113, 109, 109, 111, 108, 108, 108, 111, 111, 111, 108, 108, 108, 111, 111, 111, 111, 111, 111, 108, 108, 108, 104, 107, 104, 100, 103, 97, 26, 29, 24, 27, 28, 23, 0, 0, 0, 114, 114, 105, 141, 138, 127, 139, 134, 122, 143, 139, 124, 150, 146, 131, 149, 145, 128, 144, 142, 125, 156, 154, 136, 165, 163, 146, 139, 138, 118, 157, 154, 134, 115, 113, 98, 103, 103, 89, 103, 102, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 67, 83, 83, 71, 96, 93, 83, 95, 93, 78, 109, 109, 95, 81, 80, 69, 18, 17, 10, 145, 143, 137, 104, 103, 96, 28, 27, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, 184, 183, 198, 192, 196, 110, 107, 101, 128, 123, 127, 145, 140, 144, 143, 138, 142, 123, 118, 122, 113, 107, 111, 103, 100, 101, 75, 74, 67, 91, 92, 85, 59, 60, 55, 0, 0, 0, 90, 94, 86, 92, 95, 87, 74, 80, 69, 39, 45, 36, 76, 82, 75, 90, 94, 99, 96, 99, 107, 95, 97, 108, 93, 96, 107, 92, 95, 105, 99, 102, 112, 91, 94, 104, 93, 96, 107, 97, 100, 110, 95, 98, 106, 99, 103, 110, 167, 168, 175, 102, 103, 110, 96, 97, 104, 106, 107, 113, 100, 100, 109, 101, 102, 110, 104, 102, 112, 104, 102, 112, 105, 103, 115, 107, 107, 118, 102, 102, 114, 103, 104, 115, 106, 106, 115, 122, 123, 131, 0, 0, 0, 0, 0, 0, 57, 63, 58, 0, 0, 0, 0, 0, 0, 0, 6, 3, 0, 0, 0, 33, 36, 46, 130, 130, 143, 128, 127, 143, 129, 129, 142, 114, 114, 127, 116, 116, 128, 117, 118, 129, 116, 114, 126, 109, 109, 121, 111, 112, 123, 103, 104, 113, 100, 100, 109, 94, 94, 105, 94, 95, 103, 96, 97, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 20, 13, 15, 21, 17, 21, 27, 20, 12, 15, 14, 141, 140, 143, 142, 139, 145, 143, 142, 147, 140, 137, 142, 136, 135, 142, 131, 130, 137, 133, 131, 141, 133, 129, 139, 127, 125, 137, 125, 123, 134, 127, 125, 137, 118, 119, 130, 117, 118, 127, 143, 145, 146, 0, 0, 0, 1, 7, 3, 0, 0, 0, 0, 0, 0, 15, 20, 19, 13, 18, 16, 66, 68, 69, 135, 134, 139, 135, 134, 139, 137, 137, 141, 138, 138, 142, 137, 137, 141, 129, 128, 133, 126, 125, 130, 122, 121, 126, 116, 116, 120, 114, 113, 120, 112, 111, 118, 111, 109, 117, 106, 107, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 24, 18, 25, 28, 23, 29, 30, 25, 42, 43, 36, 127, 127, 125, 127, 127, 129, 136, 135, 140, 138, 134, 140, 135, 134, 139, 135, 134, 139, 135, 134, 139, 131, 130, 137, 127, 126, 133, 124, 125, 132, 116, 117, 124, 115, 116, 120, 114, 116, 115, 0, 0, 0, 0, 0, 0, 0, 2, 1, 24, 27, 24, 35, 37, 34, 5, 8, 5, 31, 34, 31, 128, 133, 129, 112, 117, 113, 124, 128, 127, 123, 125, 125, 121, 123, 122, 120, 119, 122, 115, 117, 118, 112, 111, 114, 109, 109, 111, 100, 102, 103, 97, 99, 101, 78, 80, 79, 126, 131, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 15, 11, 32, 37, 33, 3, 8, 4, 16, 19, 15, 108, 111, 107, 132, 135, 132, 137, 137, 137, 133, 133, 133, 124, 126, 126, 129, 129, 129, 130, 130, 130, 124, 126, 126, 124, 126, 128, 120, 121, 123, 121, 123, 122, 117, 119, 119, 120, 122, 121, 114, 116, 115, 109, 111, 111, 116, 118, 120, 117, 119, 121, 109, 111, 113, 108, 108, 110, 109, 109, 109, 111, 111, 111, 113, 113, 113, 111, 111, 111, 113, 113, 113, 108, 108, 108, 108, 108, 108, 109, 110, 107, 106, 108, 105, 110, 113, 108, 88, 91, 86, 21, 22, 17, 0, 0, 0, 98, 97, 91, 137, 134, 126, 150, 147, 136, 147, 142, 128, 144, 140, 126, 157, 153, 136, 159, 158, 140, 158, 156, 139, 157, 156, 135, 142, 143, 123, 140, 136, 117, 117, 115, 100, 106, 106, 93, 113, 113, 102, 2, 1, 0, 0, 0, 0, 85, 87, 77, 73, 71, 58, 81, 81, 67, 125, 123, 110, 116, 116, 100, 83, 83, 69, 9, 7, 1, 113, 112, 106, 146, 145, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 6, 0, 0, 0, 0, 6, 7, 0, 57, 58, 53, 51, 52, 45, 14, 15, 8, 3, 5, 0, 57, 58, 51, 29, 30, 23, 17, 15, 13, 207, 202, 204, 202, 197, 199, 36, 31, 31, 118, 114, 115, 134, 129, 130, 135, 130, 131, 130, 125, 127, 102, 98, 97, 91, 89, 88, 81, 79, 73, 94, 96, 88, 58, 59, 52, 0, 0, 0, 81, 85, 75, 83, 87, 77, 76, 82, 71, 29, 35, 27, 69, 75, 68, 88, 94, 99, 88, 94, 101, 91, 96, 105, 93, 96, 109, 92, 95, 105, 97, 100, 110, 95, 97, 108, 93, 96, 107, 88, 91, 101, 95, 97, 108, 93, 97, 105, 92, 96, 103, 99, 99, 108, 96, 97, 106, 99, 99, 108, 96, 97, 106, 99, 99, 108, 101, 100, 109, 102, 101, 110, 99, 99, 108, 102, 103, 112, 106, 106, 117, 102, 103, 112, 101, 102, 110, 92, 96, 101, 0, 0, 0, 0, 0, 0, 28, 34, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 132, 135, 143, 130, 130, 141, 129, 129, 140, 128, 128, 139, 121, 121, 130, 113, 112, 119, 101, 102, 108, 97, 98, 105, 100, 101, 107, 99, 100, 104, 106, 107, 113, 99, 100, 106, 92, 93, 99, 95, 97, 101, 95, 98, 95, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 14, 20, 13, 14, 19, 15, 6, 11, 7, 142, 144, 143, 134, 134, 134, 140, 137, 140, 139, 136, 139, 137, 137, 141, 133, 132, 137, 133, 132, 137, 130, 129, 136, 128, 127, 136, 125, 123, 132, 122, 121, 130, 120, 120, 129, 118, 119, 126, 107, 111, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 18, 14, 18, 23, 19, 13, 18, 14, 128, 130, 129, 125, 127, 129, 130, 130, 134, 131, 131, 133, 130, 130, 132, 127, 127, 127, 127, 127, 129, 122, 122, 124, 119, 119, 119, 114, 114, 114, 112, 112, 112, 107, 109, 108, 105, 105, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 16, 8, 28, 29, 22, 58, 60, 50, 48, 49, 42, 38, 39, 34, 62, 62, 60, 59, 60, 55, 120, 122, 119, 136, 139, 133, 179, 182, 174, 196, 200, 190, 197, 201, 191, 148, 151, 141, 113, 120, 108, 20, 26, 17, 31, 36, 30, 15, 17, 14, 8, 10, 7, 0, 0, 0, 12, 15, 12, 38, 41, 36, 7, 10, 4, 151, 154, 151, 35, 40, 36, 39, 44, 38, 17, 22, 18, 28, 33, 29, 25, 30, 26, 21, 23, 20, 22, 24, 21, 35, 37, 34, 17, 22, 18, 25, 30, 26, 37, 40, 36, 33, 38, 34, 34, 39, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 4, 16, 19, 15, 0, 0, 0, 134, 139, 135, 24, 27, 24, 31, 33, 33, 28, 33, 31, 17, 22, 18, 10, 15, 11, 21, 26, 22, 28, 33, 31, 42, 45, 39, 64, 67, 61, 72, 75, 69, 102, 105, 100, 89, 92, 87, 81, 84, 79, 114, 117, 111, 97, 100, 97, 100, 102, 99, 99, 101, 100, 100, 102, 99, 104, 104, 102, 102, 105, 102, 101, 102, 99, 98, 98, 96, 91, 91, 89, 86, 88, 85, 95, 98, 95, 78, 80, 77, 99, 102, 96, 118, 121, 116, 161, 165, 159, 76, 80, 72, 26, 26, 22, 0, 0, 0, 60, 58, 52, 146, 143, 135, 147, 141, 132, 160, 158, 143, 145, 143, 126, 163, 159, 142, 161, 160, 142, 171, 170, 149, 171, 170, 149, 171, 170, 147, 121, 120, 99, 118, 116, 101, 132, 132, 118, 0, 0, 0, 0, 0, 0, 19, 19, 7, 118, 117, 106, 83, 83, 69, 139, 140, 121, 110, 109, 91, 74, 72, 57, 90, 90, 78, 64, 60, 54, 161, 160, 154, 0, 0, 0, 0, 0, 0, 44, 45, 38, 145, 147, 139, 82, 81, 74, 108, 106, 102, 98, 96, 93, 73, 71, 67, 57, 56, 52, 83, 81, 79, 141, 140, 136, 128, 128, 126, 126, 124, 123, 85, 83, 82, 181, 177, 178, 116, 111, 113, 89, 85, 84, 114, 109, 109, 114, 110, 107, 110, 106, 103, 132, 129, 123, 86, 82, 77, 91, 90, 84, 92, 91, 85, 111, 110, 103, 53, 55, 48, 0, 0, 0, 82, 86, 78, 87, 91, 80, 91, 97, 86, 28, 34, 25, 59, 64, 58, 86, 90, 96, 95, 97, 108, 90, 93, 103, 92, 95, 107, 95, 97, 108, 88, 91, 101, 96, 98, 111, 91, 94, 104, 92, 95, 105, 92, 95, 105, 95, 97, 108, 96, 96, 108, 97, 98, 107, 93, 94, 102, 97, 98, 107, 94, 95, 103, 96, 97, 106, 97, 98, 105, 100, 99, 106, 97, 98, 105, 97, 98, 105, 100, 101, 107, 97, 101, 106, 95, 99, 102, 98, 102, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 2, 0, 0, 0, 84, 91, 88, 118, 120, 122, 126, 125, 130, 121, 122, 126, 123, 125, 127, 109, 111, 113, 121, 123, 120, 110, 113, 110, 106, 111, 107, 111, 116, 112, 95, 100, 96, 84, 89, 85, 78, 83, 79, 61, 66, 62, 55, 60, 56, 0, 0, 0, 0, 0, 0, 27, 33, 26, 0, 2, 0, 33, 39, 30, 31, 37, 28, 52, 57, 51, 21, 27, 18, 118, 124, 115, 140, 144, 138, 166, 169, 164, 164, 167, 159, 136, 139, 131, 157, 160, 152, 148, 151, 143, 167, 171, 161, 152, 156, 146, 152, 158, 147, 111, 117, 106, 38, 44, 33, 35, 41, 34, 22, 28, 22, 0, 0, 0, 0, 2, 0, 0, 0, 0, 19, 24, 18, 69, 75, 68, 62, 68, 61, 22, 28, 22, 25, 30, 26, 17, 22, 18, 17, 22, 18, 17, 22, 18, 19, 22, 19, 3, 8, 2, 17, 20, 15, 10, 13, 8, 31, 34, 29, 29, 32, 26, 31, 36, 30, 33, 39, 32, 39, 42, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 26, 20, 15, 18, 10, 0, 3, 0, 32, 36, 28, 37, 40, 32, 43, 46, 38, 42, 45, 37, 42, 45, 37, 37, 40, 32, 27, 33, 26, 42, 48, 39, 45, 51, 42, 40, 46, 37, 42, 48, 39, 39, 44, 38, 42, 48, 41, 52, 57, 53, 14, 19, 15, 0, 0, 0, 0, 1, 0, 14, 17, 11, 153, 156, 151, 45, 48, 43, 47, 52, 46, 46, 51, 45, 49, 54, 50, 61, 66, 62, 46, 51, 47, 42, 47, 43, 41, 46, 42, 35, 41, 34, 43, 49, 43, 42, 48, 41, 41, 47, 40, 48, 52, 46, 50, 56, 49, 46, 51, 45, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 2, 0, 136, 142, 138, 19, 24, 20, 45, 50, 46, 35, 40, 38, 29, 36, 34, 42, 49, 47, 36, 43, 41, 29, 36, 34, 34, 41, 38, 21, 28, 26, 22, 27, 26, 27, 32, 30, 32, 37, 33, 22, 28, 24, 28, 33, 29, 34, 39, 35, 30, 33, 27, 29, 42, 35, 29, 35, 31, 31, 36, 32, 32, 37, 33, 31, 35, 34, 35, 40, 38, 35, 40, 38, 33, 38, 36, 31, 35, 34, 35, 40, 38, 34, 39, 37, 34, 39, 35, 38, 43, 39, 35, 40, 36, 42, 47, 43, 25, 28, 25, 0, 0, 0, 16, 14, 8, 163, 160, 149, 164, 160, 145, 159, 158, 140, 164, 162, 145, 168, 164, 147, 159, 158, 138, 177, 175, 155, 174, 173, 151, 174, 173, 151, 121, 120, 99, 123, 123, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 93, 82, 77, 77, 65, 83, 81, 66, 142, 140, 122, 83, 81, 66, 104, 102, 87, 50, 47, 39, 153, 151, 147, 35, 34, 30, 0, 0, 0, 0, 0, 0, 108, 109, 102, 142, 143, 138, 136, 137, 132, 144, 142, 138, 141, 140, 136, 99, 98, 94, 145, 143, 139, 149, 145, 141, 137, 134, 133, 158, 156, 154, 154, 152, 151, 165, 161, 160, 142, 137, 138, 0, 0, 0, 107, 103, 100, 81, 77, 76, 85, 81, 75, 102, 98, 93, 129, 126, 118, 85, 81, 75, 77, 76, 70, 94, 92, 86, 92, 93, 86, 84, 85, 78, 0, 0, 0, 88, 94, 85, 79, 85, 77, 95, 101, 90, 26, 32, 23, 59, 64, 56, 78, 82, 87, 92, 96, 103, 91, 94, 104, 93, 97, 105, 92, 96, 103, 90, 93, 101, 90, 93, 103, 88, 91, 99, 89, 92, 100, 89, 92, 100, 92, 96, 103, 91, 94, 102, 93, 94, 100, 95, 96, 103, 93, 94, 100, 99, 100, 104, 99, 100, 104, 94, 96, 97, 92, 94, 95, 79, 81, 82, 68, 73, 71, 52, 57, 53, 49, 56, 51, 107, 115, 108, 164, 170, 164, 1, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 3, 0, 56, 63, 58, 3, 8, 2, 15, 21, 17, 1, 7, 1, 0, 1, 0, 10, 15, 9, 33, 39, 30, 45, 51, 42, 17, 23, 14, 7, 13, 4, 13, 21, 11, 11, 16, 10, 24, 32, 25, 37, 45, 40, 33, 38, 34, 40, 45, 41, 7, 12, 8, 0, 0, 0, 0, 0, 0, 0, 4, 0, 13, 19, 10, 13, 21, 11, 171, 177, 171, 36, 42, 36, 42, 48, 39, 41, 47, 40, 40, 46, 37, 33, 39, 30, 40, 46, 37, 39, 45, 36, 35, 41, 32, 42, 48, 39, 46, 52, 43, 38, 44, 35, 42, 48, 41, 45, 51, 42, 40, 45, 39, 35, 41, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 13, 6, 36, 42, 36, 33, 39, 32, 29, 35, 29, 39, 44, 38, 38, 43, 37, 39, 47, 40, 33, 38, 34, 32, 37, 33, 38, 43, 37, 35, 41, 34, 38, 43, 37, 53, 58, 52, 35, 41, 34, 33, 39, 32, 35, 41, 34, 33, 39, 32, 1, 7, 1, 0, 0, 0, 0, 0, 0, 54, 58, 48, 94, 98, 87, 35, 38, 28, 31, 35, 27, 69, 73, 63, 48, 54, 43, 42, 45, 35, 43, 50, 39, 41, 47, 38, 38, 44, 35, 32, 38, 29, 35, 41, 32, 28, 34, 25, 26, 32, 23, 43, 49, 43, 29, 35, 29, 29, 35, 31, 10, 13, 8, 0, 0, 0, 8, 11, 5, 130, 133, 128, 24, 27, 22, 23, 26, 22, 5, 10, 6, 17, 22, 18, 8, 14, 10, 21, 26, 22, 34, 39, 35, 39, 44, 40, 36, 42, 36, 43, 49, 43, 55, 61, 54, 51, 54, 48, 33, 39, 30, 24, 29, 23, 18, 23, 17, 24, 27, 22, 28, 31, 23, 0, 0, 0, 1, 7, 1, 113, 119, 112, 3, 6, 3, 13, 19, 12, 45, 48, 45, 5, 10, 6, 12, 17, 15, 8, 13, 12, 7, 12, 10, 10, 14, 13, 24, 31, 29, 10, 14, 13, 19, 24, 22, 49, 54, 50, 74, 79, 73, 10, 15, 11, 11, 16, 12, 24, 29, 25, 40, 45, 39, 28, 33, 29, 54, 59, 55, 30, 33, 29, 21, 23, 20, 40, 43, 40, 35, 37, 36, 37, 39, 38, 31, 33, 33, 25, 30, 28, 25, 28, 25, 14, 16, 13, 48, 51, 48, 29, 31, 28, 53, 56, 53, 30, 32, 31, 53, 56, 53, 7, 9, 6, 0, 0, 0, 134, 131, 120, 141, 138, 123, 153, 148, 132, 162, 158, 141, 168, 167, 149, 170, 166, 147, 164, 163, 142, 165, 162, 140, 177, 174, 152, 127, 124, 111, 75, 75, 61, 0, 0, 0, 0, 0, 0, 75, 74, 63, 71, 71, 62, 84, 84, 72, 138, 138, 122, 115, 113, 98, 85, 83, 65, 35, 33, 17, 85, 81, 73, 117, 116, 109, 0, 0, 0, 70, 71, 64, 106, 107, 100, 107, 108, 101, 100, 101, 94, 141, 142, 135, 115, 116, 109, 106, 107, 102, 113, 112, 108, 118, 116, 112, 120, 118, 117, 134, 132, 131, 163, 161, 160, 89, 87, 85, 87, 83, 82, 79, 74, 74, 29, 24, 24, 53, 49, 46, 61, 57, 54, 71, 67, 62, 96, 95, 88, 145, 144, 135, 73, 71, 65, 78, 78, 69, 91, 90, 82, 92, 91, 85, 80, 82, 72, 0, 0, 0, 82, 86, 78, 77, 83, 74, 84, 90, 81, 33, 39, 30, 55, 61, 52, 61, 65, 66, 69, 73, 74, 62, 66, 69, 76, 80, 85, 69, 73, 78, 71, 75, 78, 68, 72, 75, 69, 73, 76, 67, 71, 74, 52, 56, 59, 36, 41, 41, 33, 37, 38, 49, 54, 52, 52, 57, 53, 79, 85, 81, 113, 116, 110, 100, 103, 97, 37, 40, 34, 25, 28, 23, 12, 16, 10, 12, 18, 11, 27, 33, 26, 25, 33, 26, 25, 30, 24, 25, 33, 26, 36, 42, 38, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 1, 9, 2, 36, 42, 36, 39, 47, 40, 23, 31, 22, 37, 45, 36, 34, 40, 31, 29, 37, 28, 43, 51, 42, 25, 31, 22, 25, 34, 24, 63, 71, 62, 34, 42, 34, 29, 37, 30, 46, 54, 49, 30, 38, 33, 44, 52, 47, 46, 51, 47, 0, 0, 0, 0, 0, 0, 14, 17, 9, 27, 33, 24, 99, 105, 96, 29, 35, 27, 40, 46, 37, 38, 44, 35, 38, 43, 37, 55, 63, 53, 39, 45, 36, 42, 48, 39, 67, 73, 64, 38, 44, 35, 39, 45, 36, 22, 28, 20, 19, 25, 16, 19, 24, 18, 19, 25, 16, 20, 26, 19, 31, 36, 30, 33, 39, 32, 14, 17, 11, 32, 35, 30, 0, 0, 0, 140, 146, 137, 24, 29, 23, 8, 14, 6, 20, 26, 19, 33, 39, 32, 32, 37, 31, 36, 42, 36, 40, 45, 39, 52, 57, 51, 32, 35, 30, 25, 28, 23, 8, 14, 8, 20, 26, 19, 26, 32, 25, 21, 27, 20, 29, 35, 31, 14, 20, 13, 42, 48, 41, 0, 0, 0, 151, 157, 148, 25, 29, 21, 25, 29, 21, 42, 45, 37, 26, 30, 22, 31, 34, 29, 16, 19, 11, 43, 46, 38, 36, 42, 34, 42, 48, 39, 48, 54, 45, 32, 38, 29, 22, 28, 20, 41, 47, 38, 5, 11, 4, 11, 16, 12, 10, 15, 11, 18, 21, 18, 0, 0, 0, 75, 78, 75, 10, 13, 10, 4, 7, 4, 18, 21, 20, 15, 17, 16, 4, 7, 6, 4, 7, 6, 3, 5, 5, 6, 11, 9, 20, 25, 23, 15, 21, 17, 34, 40, 33, 48, 54, 47, 74, 80, 71, 19, 25, 16, 53, 57, 49, 37, 40, 32, 0, 3, 0, 0, 0, 0, 0, 0, 0, 72, 74, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 3, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 4, 2, 0, 0, 0, 2, 9, 9, 11, 16, 14, 26, 31, 29, 5, 10, 8, 15, 20, 19, 11, 16, 14, 0, 2, 0, 0, 4, 0, 34, 39, 37, 12, 17, 13, 23, 25, 24, 29, 35, 31, 8, 10, 7, 15, 17, 16, 5, 7, 9, 11, 13, 15, 12, 14, 18, 0, 1, 0, 3, 5, 5, 12, 15, 12, 15, 17, 14, 7, 9, 8, 0, 0, 0, 52, 55, 51, 45, 48, 45, 36, 39, 33, 0, 0, 0, 113, 110, 99, 146, 141, 127, 151, 147, 130, 146, 145, 125, 172, 169, 149, 165, 162, 142, 157, 154, 134, 179, 176, 154, 175, 171, 150, 139, 139, 123, 9, 8, 0, 0, 0, 0, 0, 0, 0, 84, 84, 72, 66, 65, 54, 84, 84, 70, 131, 131, 113, 81, 80, 60, 95, 93, 76, 47, 45, 32, 110, 107, 99, 13, 14, 7, 95, 96, 91, 99, 100, 93, 84, 85, 78, 77, 78, 71, 80, 81, 74, 77, 78, 69, 78, 80, 70, 79, 81, 71, 84, 85, 76, 95, 97, 89, 114, 115, 110, 63, 62, 58, 26, 24, 20, 109, 105, 102, 101, 97, 94, 0, 0, 0, 122, 118, 113, 56, 52, 46, 59, 55, 52, 56, 55, 49, 88, 85, 79, 136, 133, 125, 95, 94, 85, 78, 74, 66, 90, 89, 80, 113, 112, 104, 87, 86, 77, 0, 0, 0, 72, 75, 67, 76, 80, 72, 79, 82, 74, 12, 18, 9, 195, 201, 192, 0, 0, 0, 0, 1, 0, 7, 12, 8, 18, 23, 21, 0, 4, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 28, 34, 27, 7, 12, 8, 14, 20, 13, 5, 11, 4, 7, 13, 6, 18, 23, 19, 13, 18, 14, 19, 24, 18, 22, 28, 24, 19, 24, 20, 28, 34, 27, 25, 30, 26, 27, 33, 26, 22, 30, 25, 27, 34, 29, 31, 36, 30, 24, 32, 27, 21, 26, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 157, 150, 31, 39, 32, 15, 23, 16, 31, 39, 32, 7, 15, 8, 28, 34, 25, 33, 39, 30, 50, 56, 48, 45, 51, 42, 39, 45, 36, 61, 67, 58, 13, 19, 10, 3, 11, 4, 0, 7, 0, 10, 18, 11, 17, 25, 20, 0, 6, 1, 0, 5, 0, 22, 30, 25, 25, 30, 24, 10, 16, 7, 28, 34, 25, 60, 66, 57, 10, 16, 7, 13, 19, 12, 15, 21, 15, 14, 20, 13, 19, 24, 18, 32, 38, 29, 38, 44, 35, 42, 48, 39, 38, 44, 35, 15, 21, 13, 24, 30, 21, 13, 19, 12, 25, 31, 22, 13, 19, 10, 23, 26, 20, 15, 18, 12, 21, 24, 18, 30, 31, 26, 2, 3, 0, 131, 134, 129, 0, 2, 0, 4, 7, 2, 4, 9, 5, 11, 16, 12, 1, 7, 3, 22, 28, 24, 20, 25, 21, 25, 30, 24, 38, 43, 37, 14, 20, 13, 11, 14, 9, 14, 20, 13, 13, 19, 10, 13, 19, 12, 1, 7, 3, 0, 2, 1, 3, 8, 4, 29, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 18, 21, 16, 106, 107, 109, 132, 134, 138, 136, 135, 142, 137, 136, 143, 138, 138, 142, 140, 138, 146, 144, 145, 151, 158, 157, 166, 152, 153, 162, 158, 157, 166, 149, 148, 157, 161, 159, 169, 150, 149, 158, 140, 142, 148, 104, 106, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 28, 20, 67, 70, 65, 69, 73, 67, 73, 75, 74, 152, 154, 158, 153, 152, 157, 155, 154, 161, 150, 151, 157, 153, 151, 160, 144, 145, 153, 149, 150, 156, 153, 151, 159, 148, 148, 157, 148, 148, 157, 143, 143, 152, 143, 146, 157, 140, 143, 153, 131, 134, 144, 141, 144, 154, 151, 151, 162, 152, 153, 164, 149, 152, 162, 151, 153, 164, 148, 151, 159, 158, 158, 169, 159, 159, 171, 156, 156, 165, 153, 154, 163, 151, 152, 159, 164, 165, 169, 168, 169, 176, 158, 159, 165, 156, 157, 163, 158, 159, 165, 163, 164, 168, 157, 156, 161, 142, 143, 147, 144, 145, 149, 142, 143, 147, 121, 121, 123, 12, 15, 14, 0, 0, 0, 0, 0, 0, 86, 83, 72, 137, 135, 120, 167, 162, 146, 161, 157, 140, 157, 153, 136, 159, 155, 135, 177, 173, 154, 172, 169, 147, 183, 180, 156, 61, 55, 46, 0, 0, 0, 0, 0, 0, 90, 90, 78, 64, 60, 52, 63, 60, 49, 139, 137, 124, 81, 80, 62, 80, 78, 61, 60, 58, 43, 87, 84, 74, 145, 144, 135, 0, 0, 0, 112, 113, 106, 107, 108, 101, 120, 121, 114, 106, 107, 100, 118, 119, 112, 114, 118, 107, 113, 116, 106, 109, 113, 103, 109, 111, 101, 98, 99, 92, 100, 101, 94, 10, 12, 4, 0, 0, 0, 97, 96, 87, 123, 120, 112, 0, 0, 0, 99, 95, 87, 35, 31, 25, 35, 31, 25, 57, 53, 46, 102, 101, 92, 144, 141, 133, 78, 74, 66, 78, 78, 69, 109, 108, 99, 108, 107, 98, 70, 71, 62, 0, 0, 0, 74, 78, 70, 68, 72, 62, 58, 62, 51, 131, 137, 128, 11, 17, 8, 1, 7, 1, 17, 20, 15, 8, 14, 8, 10, 15, 11, 15, 18, 12, 0, 5, 1, 0, 5, 1, 18, 23, 19, 8, 14, 10, 4, 9, 5, 0, 2, 0, 15, 21, 17, 13, 18, 14, 17, 22, 16, 14, 19, 15, 18, 23, 19, 22, 28, 22, 25, 30, 26, 16, 24, 19, 33, 38, 34, 24, 32, 25, 43, 49, 43, 34, 40, 33, 25, 33, 26, 33, 39, 32, 15, 23, 18, 3, 8, 4, 34, 39, 35, 8, 10, 7, 0, 0, 0, 39, 44, 40, 0, 8, 1, 0, 6, 1, 0, 4, 0, 63, 69, 62, 9, 17, 10, 32, 38, 29, 50, 56, 48, 63, 69, 60, 56, 63, 51, 41, 47, 38, 20, 26, 17, 0, 6, 0, 0, 3, 0, 0, 5, 0, 0, 1, 0, 0, 3, 0, 0, 2, 0, 0, 5, 1, 0, 0, 0, 32, 37, 33, 0, 0, 0, 163, 166, 160, 0, 0, 0, 2, 5, 1, 3, 6, 3, 11, 14, 11, 19, 22, 17, 22, 24, 21, 7, 10, 4, 35, 41, 32, 36, 42, 34, 35, 41, 32, 26, 32, 23, 15, 21, 13, 10, 16, 7, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 25, 28, 7, 6, 11, 21, 21, 23, 62, 61, 66, 78, 77, 82, 120, 121, 127, 155, 156, 162, 152, 153, 160, 151, 152, 159, 142, 143, 149, 158, 159, 163, 8, 10, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 0, 32, 35, 30, 99, 102, 96, 101, 102, 99, 107, 109, 110, 127, 127, 129, 138, 138, 140, 147, 144, 149, 147, 142, 146, 150, 144, 151, 149, 143, 151, 153, 147, 156, 149, 142, 153, 143, 136, 148, 144, 139, 152, 133, 131, 141, 147, 144, 149, 6, 6, 4, 0, 0, 0, 43, 44, 37, 88, 90, 82, 90, 91, 84, 66, 67, 64, 48, 48, 46, 150, 149, 156, 123, 122, 131, 134, 132, 144, 138, 137, 146, 135, 133, 143, 141, 139, 149, 177, 175, 185, 246, 244, 254, 140, 136, 146, 134, 132, 144, 136, 134, 146, 131, 130, 141, 123, 123, 134, 147, 150, 158, 0, 0, 0, 19, 24, 20, 0, 0, 0, 79, 82, 74, 79, 82, 74, 55, 59, 53, 36, 38, 37, 125, 124, 128, 150, 149, 158, 153, 151, 160, 158, 156, 168, 153, 151, 162, 148, 146, 156, 151, 149, 161, 150, 148, 160, 148, 145, 160, 144, 144, 157, 145, 145, 160, 148, 147, 163, 140, 140, 156, 140, 140, 156, 139, 139, 155, 136, 135, 151, 137, 136, 152, 138, 138, 152, 137, 136, 152, 138, 138, 154, 136, 139, 152, 136, 136, 149, 136, 136, 149, 137, 137, 150, 136, 136, 149, 138, 138, 150, 135, 135, 146, 135, 135, 144, 132, 133, 142, 137, 138, 146, 130, 131, 139, 129, 130, 138, 130, 131, 139, 137, 138, 146, 128, 128, 137, 133, 135, 141, 104, 103, 106, 7, 9, 6, 0, 0, 0, 66, 65, 54, 139, 137, 122, 166, 165, 147, 164, 160, 143, 152, 151, 133, 160, 156, 137, 159, 155, 135, 163, 160, 138, 176, 173, 151, 0, 2, 0, 0, 0, 0, 23, 22, 13, 71, 71, 62, 51, 48, 38, 99, 96, 83, 168, 166, 151, 87, 85, 68, 95, 93, 78, 49, 46, 31, 63, 60, 47, 7, 7, 0, 77, 78, 69, 100, 102, 92, 58, 60, 50, 51, 53, 43, 57, 58, 51, 56, 57, 48, 45, 47, 37, 48, 52, 42, 42, 45, 35, 40, 41, 29, 100, 102, 90, 95, 97, 85, 0, 1, 0, 8, 10, 0, 67, 67, 53, 36, 33, 22, 24, 22, 9, 49, 46, 35, 67, 64, 56, 40, 37, 29, 61, 60, 51, 88, 85, 77, 130, 127, 117, 80, 77, 67, 87, 84, 74, 101, 98, 88, 108, 107, 96, 92, 92, 83, 0, 0, 0, 79, 83, 72, 74, 78, 68, 157, 161, 150, 15, 18, 10, 28, 31, 25, 4, 7, 2, 12, 16, 10, 16, 19, 13, 18, 21, 18, 1, 3, 0, 0, 0, 0, 4, 9, 5, 7, 12, 10, 0, 4, 2, 6, 11, 9, 3, 7, 6, 3, 7, 6, 5, 10, 8, 0, 2, 0, 7, 12, 10, 0, 2, 0, 0, 3, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 4, 5, 1, 6, 9, 0, 2, 3, 0, 0, 0, 0, 0, 0, 2, 3, 9, 11, 12, 19, 0, 4, 11, 0, 1, 9, 53, 54, 65, 80, 80, 91, 111, 112, 119, 145, 147, 151, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 13, 8, 165, 166, 163, 176, 175, 178, 163, 162, 167, 170, 167, 173, 170, 167, 173, 177, 174, 182, 171, 168, 176, 160, 156, 166, 154, 150, 160, 149, 142, 153, 144, 140, 150, 134, 130, 143, 130, 125, 138, 128, 126, 138, 136, 135, 144, 0, 0, 1, 15, 18, 12, 0, 0, 0, 47, 53, 44, 82, 86, 78, 93, 96, 90, 64, 67, 61, 149, 151, 150, 143, 142, 151, 150, 148, 160, 143, 141, 155, 147, 145, 157, 154, 152, 164, 146, 141, 156, 143, 141, 155, 144, 142, 156, 141, 138, 153, 133, 130, 145, 129, 126, 143, 127, 124, 141, 127, 127, 140, 0, 0, 0, 82, 85, 84, 0, 0, 0, 106, 107, 100, 107, 108, 101, 83, 84, 77, 71, 72, 67, 114, 112, 111, 110, 107, 110, 113, 110, 118, 135, 129, 137, 146, 140, 149, 156, 150, 159, 188, 183, 189, 190, 184, 192, 171, 164, 176, 156, 149, 162, 155, 147, 163, 144, 137, 153, 139, 134, 149, 149, 145, 160, 0, 0, 8, 0, 0, 0, 0, 0, 0, 62, 63, 56, 55, 56, 51, 52, 53, 50, 47, 47, 47, 126, 125, 130, 129, 128, 137, 136, 134, 146, 143, 142, 151, 149, 145, 156, 149, 145, 158, 255, 255, 255, 121, 117, 128, 139, 135, 147, 139, 135, 147, 135, 133, 145, 134, 130, 143, 128, 126, 138, 127, 127, 138, 7, 8, 14, 24, 27, 24, 0, 0, 0, 14, 17, 11, 24, 27, 22, 32, 35, 30, 37, 37, 39, 66, 65, 72, 150, 149, 158, 153, 151, 160, 151, 150, 159, 150, 149, 158, 148, 146, 158, 145, 144, 155, 149, 147, 161, 154, 151, 166, 150, 148, 162, 145, 143, 159, 142, 141, 157, 149, 148, 164, 145, 145, 160, 142, 141, 157, 140, 140, 156, 143, 142, 158, 140, 142, 157, 141, 143, 158, 132, 134, 149, 134, 136, 151, 133, 135, 150, 133, 133, 147, 132, 132, 146, 138, 138, 152, 136, 136, 149, 131, 131, 143, 128, 128, 137, 125, 126, 135, 133, 131, 139, 128, 129, 135, 128, 127, 134, 130, 131, 139, 136, 137, 145, 131, 130, 139, 131, 132, 141, 137, 138, 144, 32, 34, 36, 24, 25, 22, 45, 44, 35, 118, 116, 103, 136, 132, 117, 157, 153, 136, 157, 154, 134, 185, 181, 162, 155, 151, 132, 177, 173, 154, 151, 148, 128, 0, 0, 0, 0, 0, 0, 108, 107, 98, 85, 81, 73, 63, 60, 49, 123, 121, 106, 120, 118, 100, 96, 95, 77, 177, 175, 155, 70, 68, 50, 59, 58, 45, 0, 0, 0, 104, 108, 98, 98, 99, 90, 92, 95, 85, 104, 108, 98, 101, 105, 94, 101, 105, 94, 90, 94, 84, 82, 87, 74, 94, 98, 85, 99, 101, 89, 92, 94, 80, 85, 87, 75, 0, 0, 0, 184, 185, 164, 188, 189, 168, 0, 0, 0, 79, 76, 64, 53, 50, 40, 42, 38, 30, 31, 28, 20, 79, 76, 68, 106, 103, 92, 129, 126, 116, 87, 84, 74, 91, 88, 77, 110, 108, 95, 107, 104, 92, 100, 100, 91, 0, 0, 0, 86, 88, 78, 163, 165, 153, 9, 13, 2, 25, 29, 21, 25, 28, 25, 6, 11, 9, 12, 17, 13, 6, 11, 7, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 5, 12, 54, 55, 62, 93, 94, 100, 117, 118, 125, 148, 147, 154, 171, 169, 181, 169, 167, 179, 159, 159, 173, 164, 163, 179, 156, 155, 171, 151, 149, 165, 143, 142, 158, 145, 144, 163, 143, 142, 160, 144, 143, 162, 142, 140, 161, 144, 143, 164, 143, 141, 162, 147, 143, 165, 142, 139, 158, 138, 135, 157, 142, 140, 154, 50, 51, 55, 7, 9, 8, 38, 41, 34, 0, 0, 0, 0, 0, 0, 89, 93, 85, 56, 62, 53, 53, 56, 51, 69, 69, 67, 168, 170, 174, 160, 156, 164, 166, 162, 170, 158, 152, 163, 155, 151, 162, 140, 136, 146, 133, 129, 141, 139, 132, 148, 136, 129, 145, 132, 127, 142, 131, 126, 141, 127, 122, 140, 126, 121, 138, 125, 123, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 87, 79, 83, 87, 79, 71, 77, 68, 62, 65, 60, 78, 79, 81, 141, 138, 153, 138, 136, 150, 150, 148, 162, 154, 151, 166, 153, 150, 164, 157, 155, 169, 162, 159, 174, 255, 255, 255, 138, 136, 150, 133, 130, 147, 138, 136, 152, 129, 126, 143, 123, 121, 137, 152, 153, 162, 3, 5, 7, 0, 0, 0, 59, 61, 53, 83, 84, 77, 72, 73, 66, 60, 61, 56, 53, 54, 51, 104, 101, 104, 109, 105, 113, 135, 132, 140, 151, 145, 154, 168, 162, 171, 159, 153, 162, 168, 162, 171, 255, 255, 255, 173, 166, 180, 156, 149, 164, 145, 140, 153, 140, 135, 150, 141, 136, 154, 158, 153, 168, 12, 11, 14, 0, 0, 0, 57, 58, 51, 50, 51, 46, 43, 43, 41, 37, 39, 38, 28, 28, 30, 143, 142, 151, 131, 130, 139, 144, 140, 150, 146, 142, 152, 148, 144, 157, 141, 137, 148, 125, 121, 133, 146, 141, 154, 141, 137, 150, 139, 135, 147, 133, 129, 141, 128, 126, 138, 123, 122, 133, 60, 60, 72, 8, 10, 9, 0, 0, 0, 0, 0, 0, 42, 48, 41, 17, 22, 18, 36, 38, 39, 2, 3, 7, 151, 152, 159, 148, 146, 156, 153, 149, 159, 151, 150, 159, 153, 151, 162, 151, 149, 161, 148, 145, 160, 150, 148, 162, 147, 144, 159, 148, 145, 162, 144, 143, 159, 137, 136, 152, 139, 139, 155, 142, 141, 157, 142, 141, 157, 140, 140, 156, 142, 141, 157, 140, 140, 156, 135, 137, 152, 136, 138, 154, 132, 132, 146, 133, 135, 148, 133, 133, 149, 131, 131, 145, 132, 132, 146, 130, 131, 139, 186, 187, 193, 144, 143, 150, 151, 151, 155, 128, 129, 135, 131, 131, 135, 164, 163, 170, 217, 218, 225, 116, 117, 126, 129, 130, 138, 125, 126, 135, 25, 26, 33, 20, 20, 20, 0, 0, 0, 109, 106, 96, 157, 153, 138, 149, 145, 128, 156, 152, 133, 156, 152, 133, 149, 145, 126, 159, 155, 135, 168, 164, 145, 0, 0, 0, 58, 61, 53, 66, 65, 56, 79, 76, 68, 83, 78, 66, 143, 141, 124, 147, 146, 128, 135, 133, 115, 103, 102, 84, 75, 74, 54, 60, 60, 44, 0, 0, 0, 121, 123, 113, 100, 104, 93, 92, 95, 85, 118, 119, 110, 93, 95, 85, 85, 88, 78, 94, 98, 87, 94, 96, 84, 97, 99, 86, 108, 110, 98, 98, 100, 88, 66, 69, 54, 0, 0, 0, 111, 115, 90, 181, 182, 163, 0, 0, 0, 113, 110, 95, 44, 41, 29, 31, 28, 18, 28, 25, 14, 61, 59, 48, 152, 150, 137, 117, 115, 102, 108, 105, 95, 82, 80, 67, 113, 110, 97, 102, 102, 88, 102, 99, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 0, 145, 148, 154, 167, 168, 179, 155, 158, 168, 153, 154, 165, 148, 148, 159, 146, 147, 158, 124, 125, 136, 138, 138, 150, 138, 138, 150, 133, 134, 145, 136, 136, 147, 136, 134, 146, 143, 141, 153, 143, 141, 153, 143, 141, 153, 146, 141, 156, 140, 135, 150, 144, 139, 154, 147, 142, 157, 146, 141, 156, 146, 141, 158, 144, 138, 158, 147, 143, 163, 141, 137, 159, 141, 137, 159, 143, 140, 161, 151, 148, 169, 153, 149, 173, 149, 145, 169, 144, 140, 164, 144, 140, 164, 143, 139, 163, 142, 138, 162, 140, 136, 160, 138, 135, 159, 142, 138, 162, 136, 133, 154, 182, 180, 191, 6, 5, 8, 19, 22, 17, 0, 0, 0, 0, 0, 0, 46, 50, 42, 81, 87, 78, 43, 49, 43, 44, 45, 42, 138, 138, 142, 167, 163, 171, 163, 159, 170, 165, 159, 170, 162, 158, 169, 151, 147, 157, 144, 137, 151, 139, 135, 145, 130, 125, 140, 131, 126, 141, 126, 121, 136, 126, 121, 136, 125, 122, 138, 116, 114, 128, 140, 141, 152, 3, 5, 7, 0, 4, 0, 0, 0, 0, 18, 24, 15, 62, 68, 59, 28, 34, 27, 15, 20, 19, 161, 159, 171, 142, 140, 154, 145, 143, 157, 154, 151, 166, 155, 153, 167, 136, 134, 148, 130, 125, 140, 255, 255, 255, 161, 158, 173, 147, 144, 159, 133, 130, 145, 129, 126, 143, 126, 123, 140, 116, 114, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 48, 37, 66, 67, 60, 43, 44, 39, 48, 48, 46, 133, 131, 131, 113, 110, 116, 118, 112, 121, 138, 132, 141, 157, 151, 160, 166, 160, 171, 161, 155, 166, 153, 147, 158, 163, 156, 169, 157, 150, 166, 151, 144, 160, 144, 139, 154, 135, 130, 148, 149, 144, 162, 0, 0, 0, 0, 0, 0, 15, 16, 11, 20, 21, 16, 21, 23, 20, 24, 24, 24, 26, 28, 30, 151, 150, 159, 121, 117, 130, 142, 140, 152, 147, 143, 155, 149, 147, 159, 151, 147, 157, 147, 143, 155, 140, 136, 148, 144, 139, 152, 139, 135, 147, 130, 128, 140, 123, 122, 133, 125, 123, 134, 149, 147, 159, 0, 0, 0, 45, 48, 45, 0, 0, 0, 23, 26, 20, 1, 7, 3, 0, 2, 1, 3, 5, 9, 124, 125, 132, 150, 151, 159, 150, 148, 160, 152, 147, 160, 150, 148, 160, 151, 146, 161, 149, 147, 161, 148, 145, 160, 145, 143, 159, 147, 144, 160, 143, 140, 157, 143, 142, 158, 140, 140, 156, 142, 141, 157, 141, 143, 158, 137, 136, 152, 140, 142, 157, 136, 138, 154, 135, 137, 152, 133, 135, 150, 133, 133, 149, 135, 134, 150, 135, 135, 148, 133, 133, 147, 128, 128, 139, 127, 125, 137, 155, 154, 161, 255, 255, 255, 242, 241, 246, 255, 255, 255, 255, 254, 255, 248, 247, 252, 255, 255, 255, 131, 130, 139, 126, 124, 136, 130, 129, 138, 80, 81, 87, 25, 28, 27, 0, 0, 0, 71, 67, 60, 144, 140, 126, 142, 138, 123, 163, 159, 140, 159, 155, 135, 155, 151, 132, 152, 151, 131, 150, 149, 128, 0, 0, 0, 91, 92, 83, 95, 92, 82, 80, 77, 67, 101, 99, 84, 174, 173, 155, 129, 127, 110, 129, 127, 110, 18, 17, 0, 91, 89, 71, 150, 153, 136, 0, 0, 0, 73, 75, 65, 98, 100, 88, 98, 100, 88, 117, 121, 111, 109, 113, 100, 111, 113, 100, 106, 110, 97, 102, 106, 94, 105, 107, 95, 88, 91, 76, 60, 65, 50, 0, 0, 0, 2, 5, 0, 58, 62, 40, 255, 255, 233, 0, 0, 0, 101, 99, 82, 42, 39, 26, 57, 54, 41, 62, 56, 47, 91, 88, 75, 163, 160, 147, 107, 103, 88, 84, 79, 67, 89, 87, 74, 94, 92, 77, 124, 122, 109, 108, 105, 95, 0, 0, 0, 130, 129, 118, 115, 117, 105, 81, 85, 72, 67, 71, 63, 44, 47, 41, 114, 114, 123, 136, 136, 149, 134, 136, 151, 136, 135, 151, 129, 129, 142, 136, 136, 149, 142, 142, 155, 137, 137, 150, 137, 137, 150, 137, 135, 149, 144, 142, 156, 141, 139, 151, 141, 138, 153, 141, 138, 153, 142, 140, 154, 142, 138, 153, 144, 139, 154, 141, 136, 154, 140, 135, 152, 138, 132, 150, 140, 135, 152, 140, 134, 155, 139, 133, 156, 142, 136, 159, 146, 140, 162, 141, 137, 161, 140, 136, 160, 145, 142, 166, 141, 137, 161, 142, 138, 162, 142, 138, 162, 142, 138, 162, 137, 133, 158, 141, 137, 161, 141, 137, 161, 146, 139, 164, 140, 136, 158, 145, 143, 159, 0, 0, 2, 0, 1, 0, 21, 24, 18, 0, 0, 0, 15, 18, 12, 69, 75, 66, 28, 31, 25, 43, 46, 40, 78, 78, 80, 160, 156, 164, 165, 161, 171, 166, 160, 171, 163, 156, 167, 150, 143, 155, 231, 225, 236, 158, 152, 163, 143, 136, 148, 255, 255, 255, 144, 139, 154, 130, 123, 139, 123, 118, 133, 118, 115, 129, 118, 118, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 16, 10, 25, 30, 26, 22, 27, 28, 106, 104, 116, 145, 144, 155, 149, 147, 161, 149, 147, 161, 155, 151, 166, 158, 156, 172, 144, 142, 156, 150, 148, 162, 141, 138, 153, 137, 135, 151, 139, 134, 149, 128, 125, 142, 125, 122, 138, 119, 116, 131, 107, 106, 113, 0, 0, 0, 0, 0, 0, 23, 24, 17, 27, 28, 23, 15, 16, 11, 28, 29, 24, 35, 35, 35, 123, 119, 125, 123, 117, 126, 132, 126, 135, 146, 140, 151, 159, 153, 164, 165, 157, 169, 164, 155, 169, 166, 159, 173, 156, 149, 162, 151, 144, 160, 139, 134, 149, 134, 129, 147, 131, 129, 145, 105, 103, 115, 10, 10, 10, 0, 0, 0, 9, 12, 8, 9, 12, 8, 9, 11, 10, 14, 15, 17, 80, 79, 86, 136, 134, 146, 130, 128, 140, 141, 137, 148, 147, 145, 157, 152, 148, 158, 163, 159, 170, 126, 122, 132, 142, 138, 151, 139, 135, 147, 132, 128, 140, 128, 126, 138, 126, 124, 136, 134, 132, 144, 15, 17, 18, 23, 26, 22, 0, 0, 0, 0, 2, 0, 0, 4, 0, 0, 4, 2, 1, 6, 7, 38, 42, 45, 144, 144, 155, 154, 152, 164, 150, 148, 160, 153, 151, 162, 149, 147, 159, 149, 147, 161, 148, 145, 160, 147, 144, 159, 145, 143, 159, 143, 142, 158, 143, 142, 158, 144, 143, 159, 143, 142, 158, 138, 140, 155, 142, 144, 159, 139, 141, 156, 136, 138, 154, 135, 137, 152, 134, 137, 149, 135, 138, 150, 132, 134, 147, 137, 137, 150, 135, 135, 148, 133, 134, 145, 132, 133, 142, 129, 130, 138, 137, 138, 144, 130, 129, 136, 127, 126, 133, 130, 129, 136, 121, 120, 127, 128, 128, 137, 125, 127, 133, 128, 128, 137, 131, 132, 141, 144, 143, 152, 21, 26, 26, 0, 0, 0, 39, 36, 28, 157, 150, 136, 142, 138, 123, 162, 158, 141, 154, 150, 133, 160, 156, 137, 147, 146, 126, 171, 170, 149, 118, 119, 112, 97, 96, 87, 77, 74, 63, 92, 89, 76, 138, 136, 121, 115, 111, 95, 87, 83, 66, 99, 97, 79, 0, 0, 0, 126, 127, 108, 121, 124, 107, 0, 0, 0, 0, 0, 0, 20, 22, 10, 59, 61, 49, 79, 81, 71, 69, 74, 61, 88, 92, 80, 83, 85, 72, 67, 69, 57, 33, 35, 22, 23, 25, 13, 0, 0, 0, 0, 0, 0, 84, 85, 66, 60, 61, 40, 182, 183, 160, 0, 0, 0, 63, 61, 43, 54, 52, 37, 43, 39, 24, 74, 69, 57, 87, 82, 70, 183, 178, 164, 83, 81, 66, 96, 94, 81, 103, 101, 88, 135, 133, 117, 115, 112, 100, 112, 112, 100, 0, 0, 0, 154, 154, 140, 101, 106, 90, 68, 73, 60, 69, 73, 63, 45, 48, 43, 124, 125, 132, 139, 142, 152, 138, 138, 154, 137, 136, 152, 137, 137, 150, 137, 136, 152, 137, 136, 152, 140, 140, 154, 144, 144, 157, 142, 140, 154, 145, 143, 157, 144, 142, 156, 140, 137, 152, 133, 130, 145, 138, 136, 150, 138, 133, 148, 139, 134, 149, 135, 131, 146, 140, 135, 150, 141, 136, 154, 140, 135, 152, 159, 153, 173, 139, 133, 156, 135, 129, 152, 134, 128, 151, 136, 132, 156, 136, 132, 156, 136, 132, 156, 137, 133, 158, 141, 137, 161, 142, 138, 162, 138, 135, 159, 137, 133, 158, 140, 136, 160, 138, 135, 157, 138, 135, 157, 137, 134, 156, 136, 133, 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 47, 40, 20, 26, 19, 24, 27, 22, 48, 51, 50, 166, 165, 172, 161, 158, 165, 165, 159, 170, 155, 148, 159, 134, 128, 136, 255, 255, 255, 234, 227, 238, 136, 130, 139, 117, 111, 122, 132, 128, 140, 126, 121, 136, 120, 117, 134, 122, 119, 136, 117, 117, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 1, 3, 8, 4, 6, 11, 11, 19, 21, 27, 165, 164, 173, 150, 148, 162, 155, 151, 166, 154, 149, 164, 151, 149, 163, 148, 145, 160, 143, 140, 157, 143, 140, 157, 141, 138, 155, 131, 129, 145, 133, 130, 147, 127, 124, 141, 122, 120, 134, 130, 129, 138, 0, 0, 0, 0, 0, 0, 0, 2, 0, 8, 11, 5, 21, 24, 18, 18, 21, 16, 12, 15, 12, 146, 143, 146, 120, 117, 125, 124, 118, 127, 149, 142, 153, 156, 149, 160, 161, 155, 168, 161, 155, 168, 168, 162, 175, 160, 154, 167, 153, 146, 162, 147, 142, 157, 140, 135, 152, 135, 132, 149, 158, 156, 170, 0, 0, 0, 24, 25, 20, 10, 11, 8, 5, 8, 5, 5, 5, 3, 7, 8, 10, 3, 2, 9, 142, 140, 150, 119, 117, 129, 137, 133, 143, 139, 135, 145, 148, 144, 155, 255, 255, 255, 130, 126, 134, 140, 136, 146, 140, 136, 148, 134, 130, 143, 129, 127, 139, 127, 125, 137, 118, 116, 128, 33, 35, 37, 5, 8, 5, 0, 0, 0, 4, 9, 5, 0, 0, 0, 0, 0, 0, 1, 6, 7, 0, 0, 0, 142, 142, 153, 145, 144, 155, 149, 147, 159, 147, 145, 157, 151, 149, 163, 148, 145, 160, 148, 145, 160, 144, 144, 157, 143, 142, 158, 143, 142, 158, 140, 140, 156, 142, 141, 157, 136, 135, 151, 141, 143, 158, 136, 138, 154, 133, 135, 150, 136, 138, 154, 134, 136, 151, 133, 135, 150, 131, 133, 148, 132, 134, 147, 132, 132, 146, 136, 136, 149, 128, 128, 139, 129, 129, 140, 125, 126, 135, 133, 134, 143, 129, 130, 138, 125, 126, 135, 131, 132, 141, 128, 128, 137, 132, 133, 142, 128, 128, 137, 125, 126, 135, 129, 130, 138, 125, 126, 135, 42, 47, 47, 5, 8, 5, 21, 20, 12, 151, 147, 132, 157, 150, 136, 151, 147, 130, 165, 161, 145, 161, 157, 140, 174, 170, 151, 144, 143, 123, 88, 85, 77, 70, 70, 59, 86, 83, 70, 87, 85, 70, 242, 240, 223, 136, 134, 117, 107, 105, 88, 94, 92, 75, 22, 20, 5, 55, 56, 37, 42, 45, 28, 0, 0, 0, 1, 3, 0, 13, 15, 3, 15, 17, 5, 29, 31, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 16, 4, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 158, 159, 138, 64, 62, 42, 93, 92, 69, 21, 19, 1, 58, 56, 39, 54, 53, 35, 134, 130, 113, 87, 83, 68, 134, 129, 115, 142, 138, 121, 80, 75, 64, 105, 100, 86, 117, 115, 100, 125, 123, 108, 95, 93, 78, 105, 105, 92, 0, 0, 0, 132, 137, 122, 102, 106, 94, 77, 83, 72, 72, 79, 68, 86, 92, 86, 128, 132, 139, 132, 132, 146, 135, 134, 150, 139, 139, 155, 140, 137, 152, 136, 134, 148, 138, 136, 152, 134, 132, 146, 137, 135, 149, 135, 133, 147, 144, 142, 156, 139, 134, 149, 133, 130, 145, 135, 133, 147, 134, 132, 146, 131, 126, 141, 133, 128, 143, 135, 131, 146, 255, 255, 255, 163, 159, 174, 149, 145, 160, 225, 220, 235, 139, 133, 154, 134, 128, 151, 131, 125, 147, 133, 127, 152, 131, 124, 149, 133, 129, 153, 135, 131, 155, 134, 130, 154, 135, 131, 155, 135, 131, 155, 134, 130, 154, 129, 125, 149, 138, 135, 157, 137, 131, 153, 135, 131, 153, 135, 132, 149, 111, 112, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 23, 14, 11, 16, 10, 14, 19, 15, 17, 21, 20, 136, 135, 142, 156, 153, 161, 153, 147, 158, 155, 148, 159, 145, 139, 150, 201, 195, 206, 155, 148, 159, 255, 255, 255, 138, 131, 145, 255, 255, 255, 147, 142, 157, 125, 120, 137, 118, 113, 130, 118, 115, 131, 152, 153, 164, 0, 0, 0, 10, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 9, 7, 1, 6, 9, 107, 108, 114, 150, 148, 160, 153, 148, 163, 153, 150, 164, 155, 151, 166, 151, 149, 163, 149, 145, 160, 144, 142, 156, 149, 147, 161, 135, 133, 147, 128, 126, 140, 128, 126, 140, 123, 121, 135, 119, 117, 129, 33, 32, 35, 72, 74, 71, 0, 0, 0, 0, 0, 0, 10, 13, 8, 10, 13, 10, 16, 19, 15, 21, 21, 23, 147, 144, 149, 124, 118, 129, 134, 127, 138, 147, 141, 152, 156, 147, 161, 155, 148, 161, 145, 138, 152, 152, 146, 159, 150, 143, 159, 145, 140, 155, 137, 131, 149, 136, 133, 150, 133, 130, 145, 42, 41, 46, 71, 72, 67, 0, 0, 0, 5, 8, 5, 2, 5, 1, 3, 6, 3, 3, 5, 9, 140, 141, 150, 123, 122, 131, 125, 121, 131, 137, 136, 145, 127, 123, 134, 147, 143, 151, 128, 125, 135, 140, 136, 146, 139, 135, 145, 134, 132, 142, 135, 133, 143, 125, 123, 132, 122, 121, 130, 135, 134, 139, 14, 16, 15, 0, 0, 0, 0, 0, 0, 11, 14, 11, 0, 0, 0, 0, 4, 2, 0, 0, 0, 115, 116, 122, 143, 142, 149, 147, 145, 155, 145, 144, 153, 145, 144, 153, 151, 149, 161, 147, 145, 157, 148, 148, 161, 143, 143, 156, 142, 142, 155, 145, 145, 160, 140, 140, 154, 139, 141, 154, 134, 137, 149, 134, 137, 149, 133, 135, 148, 133, 135, 148, 132, 134, 147, 129, 132, 145, 132, 134, 147, 132, 133, 144, 131, 131, 143, 128, 128, 141, 130, 130, 141, 130, 131, 139, 128, 128, 137, 125, 126, 135, 127, 127, 136, 127, 127, 136, 128, 128, 137, 130, 131, 139, 127, 127, 136, 127, 127, 136, 125, 126, 135, 124, 125, 134, 121, 122, 128, 103, 107, 108, 21, 26, 22, 0, 0, 0, 94, 92, 79, 132, 127, 113, 152, 145, 129, 159, 152, 138, 155, 151, 134, 153, 149, 129, 160, 156, 135, 74, 72, 66, 70, 69, 61, 125, 125, 111, 118, 117, 99, 177, 175, 157, 111, 110, 92, 108, 106, 89, 85, 83, 65, 58, 56, 39, 62, 62, 46, 6, 9, 0, 0, 0, 0, 23, 25, 13, 49, 51, 39, 101, 104, 89, 149, 151, 139, 93, 96, 81, 70, 72, 60, 41, 43, 31, 34, 36, 22, 43, 45, 33, 43, 45, 31, 102, 105, 88, 109, 109, 91, 182, 183, 160, 87, 86, 66, 22, 21, 0, 78, 76, 58, 91, 89, 69, 60, 59, 41, 93, 91, 76, 120, 116, 99, 168, 164, 147, 121, 119, 101, 96, 94, 79, 89, 87, 72, 97, 95, 80, 116, 114, 99, 137, 135, 120, 109, 109, 95, 0, 0, 0, 138, 142, 129, 91, 98, 84, 68, 72, 62, 71, 74, 66, 48, 51, 48, 118, 119, 128, 132, 132, 146, 137, 135, 151, 136, 133, 150, 133, 130, 145, 135, 133, 147, 129, 127, 141, 135, 133, 147, 133, 130, 145, 133, 130, 145, 134, 132, 146, 134, 129, 145, 133, 130, 145, 137, 135, 149, 133, 130, 145, 131, 126, 141, 126, 121, 136, 139, 134, 149, 255, 255, 255, 127, 123, 138, 255, 255, 255, 255, 255, 255, 148, 143, 163, 130, 124, 146, 133, 127, 150, 123, 120, 144, 130, 123, 148, 133, 129, 153, 131, 128, 152, 131, 128, 152, 131, 128, 152, 135, 131, 155, 134, 130, 154, 131, 128, 152, 133, 129, 153, 134, 130, 152, 130, 127, 149, 133, 130, 147, 158, 158, 171, 0, 0, 0, 0, 0, 0, 82, 87, 81, 0, 0, 0, 12, 18, 11, 1, 7, 3, 8, 10, 7, 6, 11, 9, 99, 100, 104, 153, 151, 159, 151, 145, 156, 153, 147, 158, 147, 143, 153, 132, 126, 137, 131, 125, 136, 138, 131, 145, 134, 130, 143, 121, 117, 130, 125, 120, 137, 121, 117, 132, 121, 116, 134, 113, 110, 127, 122, 120, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 1, 151, 152, 160, 143, 141, 155, 156, 154, 168, 153, 150, 166, 155, 153, 167, 142, 140, 154, 255, 255, 255, 131, 129, 143, 133, 130, 145, 134, 131, 148, 129, 126, 143, 128, 126, 140, 121, 119, 131, 143, 142, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 10, 4, 1, 2, 0, 1, 3, 0, 0, 0, 0, 94, 94, 98, 111, 107, 115, 131, 125, 136, 139, 133, 144, 149, 142, 153, 151, 144, 158, 161, 155, 166, 160, 154, 165, 153, 149, 161, 147, 142, 157, 141, 138, 155, 140, 137, 154, 134, 132, 144, 151, 150, 157, 58, 59, 54, 12, 16, 10, 0, 0, 0, 11, 14, 11, 21, 23, 20, 0, 0, 0, 14, 15, 17, 130, 131, 135, 122, 123, 129, 126, 125, 132, 127, 126, 131, 141, 140, 145, 141, 140, 147, 141, 140, 147, 138, 138, 142, 132, 134, 138, 131, 133, 137, 129, 128, 133, 129, 130, 134, 130, 130, 132, 4, 7, 6, 0, 0, 0, 0, 0, 0, 7, 13, 6, 13, 18, 14, 9, 11, 10, 0, 0, 0, 100, 103, 97, 136, 139, 131, 225, 229, 219, 196, 200, 190, 167, 171, 163, 164, 167, 161, 158, 161, 158, 141, 145, 146, 132, 136, 139, 134, 138, 143, 126, 130, 135, 128, 132, 137, 138, 141, 147, 133, 137, 142, 134, 138, 141, 136, 140, 146, 136, 140, 146, 129, 133, 139, 124, 127, 133, 128, 129, 135, 133, 135, 141, 131, 132, 141, 132, 133, 142, 129, 130, 138, 131, 132, 139, 128, 129, 133, 125, 129, 132, 125, 127, 131, 122, 123, 127, 130, 131, 137, 129, 130, 136, 129, 130, 134, 128, 129, 135, 124, 126, 130, 127, 128, 132, 128, 129, 131, 131, 135, 134, 29, 31, 28, 16, 17, 10, 82, 82, 68, 147, 140, 127, 142, 138, 121, 148, 144, 127, 149, 145, 126, 185, 182, 160, 179, 176, 154, 62, 63, 54, 92, 92, 81, 106, 104, 88, 150, 146, 129, 137, 135, 120, 101, 99, 84, 94, 90, 76, 44, 41, 29, 80, 78, 63, 64, 64, 51, 32, 32, 16, 0, 0, 0, 31, 33, 21, 53, 55, 43, 52, 55, 40, 85, 87, 73, 93, 96, 81, 98, 98, 82, 92, 93, 77, 95, 98, 81, 74, 77, 60, 77, 80, 63, 112, 113, 95, 59, 59, 41, 141, 142, 121, 78, 76, 56, 3, 2, 0, 112, 108, 89, 98, 94, 75, 83, 82, 64, 80, 76, 60, 125, 121, 102, 176, 172, 155, 130, 126, 112, 106, 103, 90, 94, 92, 79, 101, 98, 86, 132, 133, 114, 108, 108, 90, 116, 118, 106, 0, 0, 0, 115, 119, 108, 76, 82, 71, 54, 58, 48, 97, 101, 93, 39, 44, 38, 120, 120, 131, 131, 131, 147, 133, 130, 147, 131, 129, 145, 130, 128, 142, 134, 131, 148, 136, 134, 148, 134, 129, 145, 135, 131, 146, 132, 127, 142, 133, 128, 143, 133, 128, 143, 131, 126, 141, 129, 127, 141, 123, 118, 133, 127, 123, 138, 127, 123, 138, 142, 138, 153, 225, 220, 235, 134, 129, 145, 131, 126, 143, 219, 214, 229, 133, 128, 148, 126, 123, 142, 126, 120, 143, 131, 128, 152, 131, 125, 147, 122, 118, 142, 130, 127, 151, 128, 124, 148, 131, 128, 152, 131, 128, 152, 133, 129, 153, 133, 129, 153, 134, 130, 154, 134, 130, 154, 125, 121, 143, 127, 124, 143, 131, 131, 145, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 4, 9, 5, 1, 7, 3, 0, 3, 0, 16, 17, 21, 141, 140, 145, 153, 147, 158, 151, 145, 156, 140, 136, 146, 139, 135, 147, 139, 133, 146, 131, 126, 141, 134, 129, 145, 128, 123, 141, 126, 121, 138, 127, 122, 140, 123, 120, 140, 119, 116, 135, 122, 120, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 6, 5, 0, 0, 0, 156, 160, 165, 138, 137, 148, 144, 142, 156, 141, 138, 153, 147, 144, 159, 147, 144, 159, 147, 144, 159, 138, 133, 148, 134, 132, 144, 134, 132, 144, 129, 127, 141, 123, 122, 133, 121, 119, 131, 120, 119, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 71, 66, 50, 56, 49, 2, 5, 1, 0, 2, 0, 121, 121, 121, 98, 95, 101, 123, 119, 125, 138, 134, 142, 141, 140, 147, 155, 154, 161, 137, 136, 143, 141, 140, 147, 142, 141, 148, 125, 123, 130, 129, 128, 135, 130, 130, 132, 191, 191, 191, 10, 11, 6, 16, 19, 11, 0, 0, 0, 0, 3, 0, 15, 18, 12, 0, 1, 0, 149, 152, 146, 24, 29, 23, 8, 14, 8, 27, 33, 26, 34, 40, 33, 60, 66, 57, 81, 86, 80, 81, 86, 80, 85, 91, 84, 60, 65, 61, 35, 41, 34, 14, 17, 11, 0, 0, 0, 19, 22, 17, 0, 0, 0, 19, 22, 17, 58, 59, 52, 3, 5, 0, 7, 9, 6, 57, 63, 58, 15, 21, 17, 0, 0, 0, 13, 18, 14, 5, 10, 6, 4, 9, 3, 15, 21, 17, 0, 5, 1, 0, 3, 1, 10, 14, 13, 4, 9, 7, 6, 11, 9, 12, 17, 15, 26, 31, 29, 5, 10, 8, 15, 20, 19, 17, 21, 20, 1, 6, 5, 14, 19, 15, 1, 6, 5, 0, 0, 0, 14, 16, 13, 26, 29, 28, 32, 35, 34, 38, 41, 38, 39, 42, 39, 36, 42, 38, 36, 41, 40, 45, 50, 46, 57, 63, 58, 43, 49, 45, 42, 47, 45, 35, 40, 38, 38, 42, 41, 43, 48, 47, 45, 49, 48, 39, 44, 40, 27, 32, 30, 25, 30, 26, 18, 21, 18, 63, 64, 57, 59, 56, 48, 153, 148, 134, 159, 152, 138, 153, 146, 130, 159, 153, 134, 163, 160, 138, 195, 191, 170, 87, 84, 74, 96, 94, 81, 175, 173, 158, 149, 147, 129, 144, 142, 127, 116, 114, 99, 73, 71, 56, 28, 25, 12, 103, 103, 89, 54, 54, 40, 10, 10, 0, 0, 0, 0, 35, 37, 25, 71, 73, 61, 66, 69, 54, 85, 85, 72, 94, 97, 82, 109, 112, 97, 98, 98, 82, 94, 94, 76, 80, 80, 62, 92, 93, 75, 77, 78, 60, 93, 91, 74, 83, 84, 63, 123, 122, 102, 0, 0, 0, 118, 117, 97, 119, 115, 96, 73, 72, 50, 97, 93, 72, 149, 146, 124, 126, 122, 103, 107, 103, 86, 103, 101, 86, 78, 76, 60, 95, 93, 78, 122, 120, 103, 126, 127, 108, 137, 136, 125, 0, 0, 0, 108, 112, 101, 69, 75, 64, 76, 80, 70, 61, 65, 57, 36, 39, 33, 113, 113, 122, 130, 129, 145, 131, 129, 145, 130, 128, 142, 131, 129, 143, 133, 130, 145, 132, 127, 142, 132, 127, 142, 134, 129, 145, 132, 127, 142, 128, 124, 139, 132, 127, 142, 128, 124, 139, 128, 126, 140, 126, 123, 138, 128, 124, 139, 130, 125, 140, 127, 123, 138, 124, 119, 134, 128, 123, 141, 125, 120, 137, 127, 122, 140, 127, 122, 142, 126, 123, 142, 130, 124, 146, 132, 126, 151, 130, 123, 148, 122, 118, 142, 128, 124, 148, 130, 127, 151, 131, 128, 152, 133, 127, 152, 137, 133, 158, 133, 129, 153, 133, 129, 153, 134, 130, 152, 134, 130, 152, 136, 133, 152, 129, 129, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 37, 31, 42, 48, 41, 12, 18, 11, 0, 4, 0, 0, 0, 0, 147, 146, 149, 149, 143, 151, 142, 136, 144, 142, 138, 149, 144, 138, 149, 137, 131, 142, 137, 132, 145, 131, 126, 139, 131, 126, 141, 126, 121, 136, 126, 121, 136, 126, 123, 138, 121, 119, 133, 116, 114, 126, 164, 163, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 0, 56, 61, 59, 142, 143, 149, 142, 142, 151, 143, 141, 153, 140, 138, 150, 141, 139, 151, 137, 136, 145, 130, 129, 138, 121, 120, 127, 126, 124, 134, 127, 128, 134, 149, 150, 154, 187, 190, 187, 88, 91, 88, 0, 0, 0, 78, 81, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 19, 23, 15, 151, 155, 147, 23, 26, 20, 8, 14, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 1, 0, 0, 0, 8, 14, 10, 10, 13, 10, 8, 10, 7, 4, 7, 4, 3, 6, 1, 0, 0, 0, 0, 2, 0, 74, 78, 70, 23, 26, 18, 0, 0, 0, 4, 10, 1, 124, 130, 121, 3, 9, 0, 0, 0, 0, 4, 10, 1, 18, 24, 15, 41, 47, 38, 29, 35, 27, 45, 51, 42, 0, 0, 0, 13, 19, 10, 57, 63, 54, 38, 41, 34, 1, 4, 0, 17, 21, 13, 24, 28, 20, 32, 35, 30, 5, 9, 1, 83, 84, 75, 58, 61, 53, 15, 18, 10, 37, 40, 32, 8, 11, 3, 21, 24, 18, 14, 17, 11, 8, 14, 6, 10, 14, 6, 5, 11, 2, 20, 26, 19, 8, 11, 5, 0, 0, 0, 0, 2, 0, 12, 18, 11, 0, 5, 0, 0, 4, 0, 0, 6, 0, 34, 40, 33, 6, 12, 5, 1, 7, 1, 35, 41, 34, 55, 61, 54, 1, 7, 1, 0, 2, 0, 10, 15, 9, 0, 6, 0, 0, 1, 0, 37, 40, 34, 0, 4, 0, 13, 19, 12, 0, 0, 0, 88, 93, 87, 1, 7, 1, 0, 0, 0, 24, 29, 25, 6, 11, 7, 0, 0, 0, 4, 9, 3, 44, 47, 41, 35, 37, 34, 33, 36, 33, 2, 5, 0, 29, 30, 23, 23, 21, 8, 137, 133, 119, 144, 140, 124, 150, 147, 127, 162, 156, 138, 160, 156, 135, 190, 185, 164, 91, 91, 78, 92, 89, 76, 142, 140, 124, 185, 181, 164, 102, 100, 85, 75, 73, 58, 65, 62, 50, 114, 111, 98, 116, 114, 101, 50, 51, 35, 0, 0, 0, 0, 0, 0, 40, 41, 29, 33, 32, 21, 87, 89, 77, 95, 95, 81, 50, 50, 37, 125, 125, 109, 89, 89, 73, 78, 79, 63, 108, 108, 92, 84, 85, 66, 79, 77, 60, 81, 80, 62, 50, 48, 28, 95, 94, 74, 6, 4, 0, 156, 155, 132, 127, 124, 102, 141, 138, 116, 139, 135, 114, 162, 159, 137, 97, 96, 76, 75, 73, 58, 83, 81, 66, 91, 88, 73, 93, 91, 76, 122, 120, 103, 132, 131, 113, 121, 123, 111, 0, 0, 0, 79, 82, 74, 76, 80, 72, 61, 65, 55, 54, 58, 50, 46, 49, 44, 97, 98, 107, 124, 124, 138, 129, 126, 143, 127, 127, 140, 128, 126, 140, 128, 126, 140, 129, 126, 143, 129, 127, 141, 131, 126, 141, 128, 124, 139, 126, 121, 136, 128, 124, 139, 128, 124, 139, 124, 119, 134, 127, 125, 139, 131, 126, 141, 130, 124, 142, 127, 122, 140, 127, 122, 140, 128, 123, 141, 132, 126, 147, 130, 124, 144, 128, 123, 143, 126, 123, 142, 124, 118, 140, 127, 123, 145, 131, 125, 147, 128, 124, 148, 129, 125, 149, 136, 132, 156, 133, 127, 152, 135, 131, 155, 133, 129, 151, 127, 123, 145, 131, 128, 148, 136, 133, 150, 129, 128, 147, 133, 134, 145, 106, 106, 115, 57, 62, 62, 0, 0, 0, 0, 0, 0, 1, 7, 1, 0, 0, 0, 109, 112, 107, 47, 52, 46, 7, 13, 6, 4, 7, 4, 120, 122, 119, 142, 139, 143, 141, 138, 142, 144, 140, 146, 137, 133, 141, 135, 132, 138, 133, 129, 137, 132, 128, 136, 130, 126, 134, 121, 118, 126, 108, 107, 112, 98, 97, 102, 93, 94, 98, 142, 144, 143, 54, 57, 56, 0, 0, 0, 0, 1, 0, 0, 0, 0, 6, 11, 7, 0, 0, 0, 0, 0, 0, 0, 1, 0, 142, 147, 143, 0, 5, 1, 28, 33, 29, 11, 14, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 1, 0, 0, 0, 3, 6, 1, 0, 3, 0, 2, 5, 0, 0, 0, 0, 29, 32, 26, 10, 13, 8, 0, 0, 0, 11, 14, 9, 0, 0, 0, 0, 3, 0, 146, 150, 140, 1, 5, 0, 4, 8, 0, 16, 19, 11, 51, 54, 46, 0, 6, 0, 42, 48, 39, 0, 2, 0, 2, 5, 0, 0, 1, 0, 0, 6, 0, 104, 108, 100, 40, 44, 36, 37, 40, 32, 29, 32, 24, 38, 41, 34, 0, 0, 0, 133, 137, 129, 38, 41, 34, 135, 138, 130, 12, 16, 8, 18, 22, 12, 90, 94, 84, 51, 54, 46, 5, 9, 0, 18, 24, 15, 3, 9, 0, 60, 64, 54, 32, 38, 27, 41, 47, 38, 0, 2, 0, 30, 33, 25, 15, 18, 10, 50, 53, 45, 36, 37, 30, 7, 8, 1, 80, 81, 74, 45, 47, 37, 9, 11, 1, 28, 29, 22, 66, 69, 62, 40, 44, 36, 29, 32, 24, 57, 60, 52, 106, 109, 101, 9, 12, 4, 40, 44, 36, 61, 66, 60, 25, 30, 24, 0, 0, 0, 0, 1, 0, 3, 8, 2, 7, 13, 6, 7, 13, 6, 57, 63, 54, 0, 0, 0, 6, 12, 3, 24, 29, 23, 16, 19, 13, 3, 6, 1, 2, 5, 0, 32, 35, 30, 21, 24, 18, 18, 21, 16, 0, 0, 0, 2, 5, 1, 1, 4, 0, 0, 0, 0, 6, 11, 7, 24, 27, 22, 0, 3, 0, 4, 9, 5, 4, 9, 5, 8, 11, 5, 86, 92, 88, 73, 76, 70, 9, 12, 6, 0, 3, 0, 16, 19, 13, 28, 31, 25, 13, 14, 7, 0, 0, 0, 135, 131, 116, 141, 135, 119, 160, 154, 135, 173, 167, 148, 175, 169, 149, 176, 171, 150, 92, 89, 76, 114, 111, 98, 129, 127, 112, 191, 187, 170, 101, 99, 84, 75, 73, 60, 77, 74, 61, 98, 98, 84, 134, 131, 118, 48, 48, 34, 124, 124, 110, 58, 60, 48, 21, 23, 11, 27, 29, 17, 47, 48, 36, 88, 91, 76, 87, 90, 75, 187, 187, 173, 85, 86, 70, 82, 82, 66, 81, 81, 65, 95, 95, 77, 90, 91, 72, 151, 150, 129, 66, 65, 45, 161, 158, 136, 134, 131, 109, 175, 171, 150, 147, 144, 120, 155, 152, 130, 185, 182, 160, 133, 130, 106, 97, 93, 76, 80, 76, 62, 100, 98, 82, 92, 90, 74, 91, 88, 75, 111, 110, 92, 97, 96, 78, 135, 137, 125, 0, 0, 0, 78, 81, 71, 67, 71, 61, 61, 65, 55, 72, 76, 65, 42, 45, 39, 108, 109, 115, 117, 117, 131, 124, 124, 138, 129, 127, 141, 128, 126, 140, 128, 126, 140, 125, 122, 136, 127, 123, 138, 127, 123, 138, 131, 126, 139, 124, 119, 134, 130, 128, 142, 129, 127, 139, 127, 125, 139, 127, 125, 139, 131, 129, 143, 129, 127, 141, 128, 125, 142, 125, 122, 138, 129, 126, 143, 128, 125, 142, 128, 125, 142, 134, 131, 148, 129, 126, 143, 129, 126, 143, 129, 127, 141, 128, 126, 140, 129, 127, 139, 113, 111, 123, 102, 101, 108, 94, 94, 98, 97, 96, 99, 144, 146, 145, 75, 78, 77, 19, 22, 21, 15, 21, 17, 4, 9, 7, 1, 7, 3, 14, 20, 13, 18, 23, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 11, 3, 58, 61, 53, 21, 24, 18, 0, 0, 0, 1, 4, 0, 7, 10, 4, 8, 11, 5, 0, 2, 0, 1, 4, 0, 2, 5, 0, 0, 0, 0, 1, 4, 0, 10, 13, 8, 23, 26, 20, 23, 26, 20, 0, 0, 0, 8, 11, 5, 50, 53, 47, 48, 52, 46, 15, 17, 14, 0, 0, 0, 0, 0, 0, 9, 12, 8, 0, 0, 0, 36, 42, 38, 86, 92, 88, 0, 4, 0, 0, 0, 0, 48, 54, 47, 18, 21, 16, 0, 3, 0, 0, 0, 0, 0, 0, 0, 67, 70, 65, 0, 0, 0, 50, 53, 45, 0, 3, 0, 42, 45, 37, 16, 19, 11, 0, 0, 0, 1, 4, 0, 7, 10, 2, 0, 0, 0, 14, 17, 9, 43, 46, 38, 100, 104, 93, 43, 47, 36, 36, 40, 29, 28, 31, 21, 18, 22, 12, 52, 56, 46, 47, 51, 43, 38, 44, 35, 4, 8, 0, 7, 10, 2, 21, 24, 14, 8, 11, 3, 0, 4, 0, 57, 63, 54, 0, 0, 0, 38, 41, 34, 33, 37, 27, 3, 7, 0, 19, 23, 13, 51, 55, 44, 28, 31, 21, 1, 4, 0, 21, 24, 16, 16, 19, 11, 14, 17, 9, 22, 25, 17, 25, 31, 22, 1, 7, 0, 17, 21, 13, 49, 55, 46, 0, 0, 0, 57, 60, 52, 26, 30, 22, 16, 17, 10, 38, 40, 30, 12, 13, 4, 27, 28, 19, 40, 41, 32, 0, 0, 0, 37, 38, 31, 15, 19, 8, 30, 33, 25, 48, 49, 42, 50, 53, 45, 26, 30, 22, 11, 15, 7, 38, 41, 34, 32, 38, 29, 9, 12, 4, 0, 0, 0, 25, 29, 21, 5, 9, 1, 36, 39, 31, 23, 26, 18, 0, 0, 0, 48, 52, 44, 51, 55, 44, 42, 45, 35, 0, 0, 0, 2, 6, 0, 34, 35, 28, 14, 15, 8, 99, 100, 93, 31, 35, 27, 21, 24, 16, 3, 7, 0, 40, 46, 37, 6, 12, 3, 38, 44, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 14, 6, 0, 0, 0, 3, 5, 0, 8, 9, 2, 0, 3, 0, 7, 8, 1, 27, 28, 21, 34, 35, 28, 20, 21, 12, 0, 0, 0, 101, 97, 82, 141, 135, 117, 180, 174, 153, 174, 168, 147, 188, 182, 161, 179, 173, 152, 104, 104, 88, 138, 136, 119, 123, 122, 102, 171, 168, 148, 108, 106, 91, 78, 75, 62, 60, 59, 48, 139, 139, 125, 49, 46, 33, 66, 65, 52, 45, 47, 35, 35, 37, 25, 0, 0, 0, 33, 35, 22, 23, 25, 13, 86, 89, 74, 84, 86, 72, 87, 90, 75, 81, 84, 67, 88, 91, 74, 61, 61, 45, 85, 88, 69, 138, 138, 120, 70, 68, 48, 117, 116, 96, 6, 4, 0, 111, 107, 88, 182, 178, 157, 168, 164, 143, 174, 170, 149, 148, 145, 123, 110, 106, 85, 75, 70, 54, 126, 121, 107, 79, 77, 62, 86, 84, 68, 99, 96, 81, 124, 123, 105, 114, 112, 95, 124, 124, 110, 0, 0, 0, 99, 102, 92, 57, 61, 48, 51, 55, 44, 50, 54, 43, 39, 43, 35, 107, 109, 110, 110, 112, 116, 124, 125, 132, 117, 118, 127, 122, 123, 131, 111, 112, 121, 120, 120, 129, 130, 129, 138, 120, 118, 128, 125, 126, 135, 118, 119, 128, 120, 120, 129, 125, 126, 135, 128, 127, 136, 125, 127, 133, 126, 125, 132, 115, 116, 122, 117, 119, 123, 80, 81, 85, 87, 88, 92, 67, 69, 73, 55, 57, 59, 76, 78, 80, 95, 95, 97, 45, 45, 47, 12, 15, 14, 2, 4, 3, 3, 6, 3, 14, 16, 13, 31, 34, 31, 2, 5, 0, 25, 28, 23, 15, 21, 15, 5, 11, 4, 18, 23, 17, 25, 30, 24, 39, 44, 38, 13, 19, 12, 15, 18, 12, 31, 36, 30, 8, 14, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 20, 15, 19, 23, 15, 35, 38, 30, 99, 102, 94, 23, 26, 18, 23, 26, 18, 108, 111, 103, 50, 53, 45, 11, 15, 7, 35, 38, 30, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 43, 37, 0, 0, 0, 42, 45, 39, 3, 6, 1, 19, 22, 19, 11, 16, 10, 0, 0, 0, 0, 0, 0, 25, 30, 24, 103, 108, 102, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 6, 0, 17, 20, 15, 5, 9, 3, 0, 0, 0, 2, 5, 0, 0, 0, 0, 5, 9, 3, 0, 2, 0, 0, 0, 0, 7, 10, 2, 0, 0, 0, 0, 0, 0, 25, 29, 21, 3, 7, 0, 23, 24, 17, 0, 0, 0, 50, 53, 45, 29, 33, 22, 19, 23, 13, 48, 54, 43, 18, 22, 12, 18, 22, 12, 0, 0, 0, 22, 28, 20, 0, 0, 0, 5, 11, 2, 18, 24, 15, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 16, 10, 12, 16, 8, 25, 28, 23, 59, 62, 56, 83, 87, 81, 104, 107, 102, 126, 132, 123, 125, 129, 121, 146, 150, 142, 128, 131, 123, 148, 154, 145, 141, 147, 138, 140, 144, 134, 138, 144, 133, 142, 145, 137, 138, 142, 132, 144, 146, 136, 150, 152, 142, 156, 158, 146, 149, 151, 139, 164, 166, 156, 176, 178, 166, 165, 167, 155, 156, 158, 146, 87, 89, 79, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 87, 79, 111, 115, 107, 129, 133, 122, 141, 143, 131, 149, 151, 139, 144, 146, 134, 147, 149, 136, 147, 149, 136, 147, 149, 136, 148, 149, 140, 138, 140, 130, 135, 137, 125, 148, 150, 138, 154, 156, 144, 149, 151, 139, 154, 156, 144, 151, 155, 145, 153, 158, 145, 160, 164, 152, 156, 160, 147, 145, 150, 134, 158, 162, 149, 135, 137, 125, 131, 133, 121, 116, 118, 106, 105, 107, 95, 92, 92, 79, 91, 91, 78, 83, 83, 69, 60, 62, 50, 45, 44, 33, 62, 63, 54, 41, 42, 33, 21, 24, 14, 0, 0, 0, 65, 62, 52, 151, 147, 130, 183, 179, 160, 166, 160, 141, 195, 189, 170, 189, 183, 164, 100, 98, 80, 110, 109, 89, 136, 133, 111, 186, 183, 163, 144, 142, 125, 101, 98, 88, 116, 116, 102, 165, 164, 151, 31, 29, 14, 108, 108, 92, 63, 63, 50, 51, 53, 41, 135, 137, 125, 142, 144, 132, 67, 69, 57, 66, 68, 56, 40, 41, 29, 57, 61, 46, 57, 59, 45, 71, 74, 57, 95, 98, 81, 72, 75, 58, 52, 52, 36, 82, 81, 63, 0, 0, 0, 96, 95, 75, 108, 105, 83, 150, 147, 125, 154, 151, 127, 150, 147, 125, 112, 109, 87, 119, 115, 96, 90, 86, 69, 96, 94, 79, 80, 78, 61, 92, 90, 74, 97, 95, 80, 109, 107, 90, 114, 112, 96, 120, 120, 107, 0, 0, 0, 109, 113, 100, 72, 76, 63, 54, 59, 46, 48, 52, 42, 45, 48, 41, 40, 45, 41, 42, 47, 43, 37, 39, 38, 33, 36, 35, 45, 47, 47, 27, 32, 30, 27, 32, 30, 43, 45, 44, 17, 19, 19, 26, 28, 30, 2, 4, 3, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 10, 13, 8, 16, 19, 11, 21, 24, 16, 14, 17, 9, 7, 10, 2, 2, 5, 0, 40, 44, 36, 15, 18, 10, 18, 22, 14, 23, 26, 20, 3, 7, 0, 46, 50, 42, 2, 5, 0, 28, 31, 25, 53, 56, 51, 10, 13, 8, 0, 2, 0, 3, 8, 2, 3, 6, 1, 7, 13, 6, 0, 3, 0, 0, 0, 0, 0, 6, 0, 49, 55, 48, 12, 18, 11, 14, 20, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 39, 31, 79, 82, 76, 4, 8, 0, 8, 11, 3, 31, 35, 27, 10, 14, 6, 39, 43, 35, 8, 11, 3, 47, 48, 41, 25, 29, 21, 16, 19, 11, 21, 24, 16, 52, 55, 48, 18, 21, 16, 26, 29, 24, 15, 18, 12, 0, 2, 0, 14, 17, 11, 0, 0, 0, 31, 34, 29, 0, 0, 0, 11, 14, 9, 22, 25, 19, 23, 26, 20, 0, 0, 0, 7, 10, 4, 0, 3, 0, 24, 27, 22, 12, 16, 10, 0, 0, 0, 32, 36, 28, 19, 23, 15, 15, 18, 12, 60, 64, 56, 18, 22, 14, 66, 70, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 23, 16, 58, 59, 52, 98, 99, 92, 120, 121, 114, 150, 152, 142, 24, 28, 18, 28, 31, 21, 2, 6, 0, 19, 23, 15, 0, 3, 0, 0, 6, 0, 0, 4, 0, 0, 0, 0, 64, 70, 62, 128, 131, 121, 139, 143, 133, 148, 151, 141, 123, 127, 117, 152, 156, 146, 140, 144, 134, 137, 141, 130, 125, 129, 119, 144, 148, 137, 137, 141, 130, 130, 134, 124, 132, 136, 126, 114, 118, 107, 137, 141, 130, 135, 138, 128, 131, 135, 125, 125, 129, 119, 132, 136, 126, 135, 138, 128, 139, 143, 133, 133, 137, 127, 141, 142, 133, 150, 152, 142, 161, 163, 151, 155, 157, 145, 130, 132, 120, 159, 162, 147, 143, 145, 133, 156, 158, 144, 164, 166, 154, 155, 156, 147, 36, 39, 31, 0, 0, 0, 42, 45, 37, 14, 17, 9, 12, 16, 8, 30, 33, 25, 17, 21, 13, 95, 98, 91, 100, 104, 93, 141, 143, 131, 149, 151, 137, 137, 140, 125, 153, 155, 138, 138, 141, 124, 135, 138, 121, 137, 140, 123, 140, 142, 126, 138, 141, 124, 140, 140, 124, 130, 133, 116, 134, 137, 120, 144, 147, 132, 142, 145, 128, 143, 146, 129, 143, 146, 129, 147, 149, 134, 136, 139, 122, 146, 146, 130, 157, 160, 143, 153, 155, 138, 142, 145, 128, 148, 148, 132, 151, 151, 133, 153, 154, 135, 162, 162, 147, 166, 166, 148, 175, 173, 158, 174, 175, 156, 184, 181, 168, 202, 201, 190, 26, 28, 15, 6, 5, 0, 54, 53, 42, 159, 158, 140, 153, 148, 132, 190, 186, 167, 181, 177, 158, 181, 177, 158, 122, 121, 100, 138, 137, 115, 144, 143, 119, 172, 169, 147, 185, 184, 163, 131, 129, 114, 139, 137, 122, 157, 155, 138, 185, 183, 165, 100, 101, 83, 0, 0, 0, 121, 122, 106, 66, 69, 54, 60, 62, 50, 58, 60, 48, 84, 86, 72, 53, 56, 41, 58, 61, 46, 53, 56, 41, 60, 63, 46, 74, 77, 60, 39, 39, 23, 0, 0, 0, 82, 81, 63, 135, 133, 115, 127, 125, 105, 107, 106, 85, 124, 123, 103, 136, 135, 114, 97, 96, 76, 80, 79, 59, 92, 90, 72, 88, 87, 69, 89, 88, 70, 83, 82, 64, 87, 85, 68, 125, 124, 106, 106, 104, 86, 115, 113, 98, 131, 131, 117, 0, 0, 0, 79, 81, 69, 99, 103, 90, 55, 60, 47, 42, 45, 37, 59, 62, 54, 5, 11, 4, 3, 8, 4, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 11, 16, 12, 0, 0, 0, 0, 6, 0, 32, 37, 31, 0, 2, 0, 30, 33, 27, 3, 7, 0, 0, 0, 0, 9, 13, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 149, 136, 0, 0, 0, 8, 12, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 48, 43, 38, 41, 36, 0, 0, 0, 17, 20, 15, 0, 0, 0, 7, 12, 8, 0, 3, 0, 15, 21, 15, 69, 73, 67, 0, 0, 0, 3, 6, 1, 0, 1, 0, 0, 0, 0, 1, 4, 0, 0, 5, 0, 24, 27, 22, 0, 0, 0, 10, 14, 6, 62, 66, 58, 0, 0, 0, 11, 15, 7, 3, 7, 0, 9, 12, 4, 35, 38, 30, 37, 40, 32, 31, 35, 27, 0, 1, 0, 14, 17, 9, 0, 2, 0, 0, 0, 0, 12, 16, 8, 5, 9, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 36, 33, 111, 114, 111, 156, 158, 155, 159, 162, 159, 164, 166, 165, 156, 158, 155, 144, 147, 143, 123, 126, 123, 128, 131, 125, 132, 135, 130, 118, 121, 116, 122, 125, 117, 120, 121, 114, 125, 126, 117, 129, 131, 121, 137, 141, 130, 118, 122, 112, 134, 135, 126, 142, 144, 134, 150, 152, 140, 144, 146, 134, 143, 145, 133, 148, 150, 136, 142, 144, 132, 44, 48, 37, 44, 48, 37, 0, 0, 0, 71, 75, 64, 54, 58, 48, 22, 28, 20, 75, 81, 70, 48, 54, 45, 125, 131, 120, 164, 168, 157, 133, 137, 127, 139, 143, 131, 123, 127, 117, 139, 143, 131, 136, 140, 129, 128, 131, 121, 130, 134, 124, 132, 138, 127, 135, 138, 128, 132, 138, 127, 135, 138, 128, 133, 137, 127, 135, 138, 128, 133, 137, 127, 140, 144, 134, 140, 144, 134, 135, 138, 128, 130, 134, 124, 133, 134, 125, 136, 140, 127, 121, 125, 112, 132, 137, 124, 137, 141, 128, 129, 133, 120, 134, 136, 124, 136, 138, 126, 138, 142, 129, 139, 143, 131, 141, 143, 131, 148, 152, 139, 16, 20, 9, 22, 25, 17, 29, 32, 24, 0, 3, 0, 52, 55, 48, 57, 60, 52, 1, 4, 0, 52, 55, 48, 100, 102, 92, 134, 136, 122, 142, 144, 130, 141, 143, 127, 134, 134, 119, 135, 136, 120, 140, 140, 124, 135, 136, 120, 139, 139, 123, 131, 131, 115, 137, 137, 119, 140, 141, 122, 135, 136, 118, 138, 139, 118, 140, 141, 122, 145, 145, 127, 140, 140, 124, 139, 139, 123, 145, 145, 129, 152, 152, 136, 146, 146, 130, 147, 147, 131, 151, 151, 135, 151, 151, 135, 153, 153, 137, 151, 151, 133, 154, 155, 136, 166, 166, 150, 167, 167, 151, 174, 174, 158, 195, 195, 179, 192, 192, 179, 18, 17, 6, 26, 25, 18, 35, 35, 24, 165, 163, 146, 184, 180, 163, 182, 178, 159, 180, 174, 155, 176, 170, 152, 110, 111, 88, 187, 186, 164, 175, 171, 150, 169, 166, 144, 188, 184, 162, 190, 186, 167, 174, 170, 151, 187, 186, 166, 159, 158, 138, 146, 145, 127, 123, 123, 105, 111, 112, 93, 120, 123, 106, 81, 81, 67, 0, 0, 0, 0, 0, 0, 33, 33, 19, 0, 0, 0, 0, 0, 0, 34, 36, 20, 80, 83, 66, 77, 80, 63, 77, 78, 60, 75, 75, 59, 80, 80, 62, 88, 88, 70, 82, 83, 64, 96, 95, 77, 120, 121, 100, 78, 76, 58, 113, 111, 93, 81, 80, 62, 80, 78, 61, 115, 113, 96, 79, 77, 60, 92, 90, 72, 109, 107, 90, 145, 143, 126, 130, 128, 111, 132, 132, 116, 0, 0, 0, 105, 107, 95, 74, 76, 64, 50, 54, 41, 123, 127, 119, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 23, 19, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 9, 3, 24, 29, 23, 0, 0, 0, 14, 20, 13, 27, 33, 26, 0, 1, 0, 2, 5, 0, 0, 0, 0, 0, 3, 0, 167, 171, 163, 156, 160, 147, 0, 0, 0, 155, 159, 144, 173, 178, 160, 129, 134, 116, 12, 14, 0, 166, 171, 156, 167, 172, 157, 0, 1, 0, 21, 24, 18, 18, 21, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 0, 0, 0, 0, 0, 0, 0, 29, 31, 28, 10, 13, 8, 14, 17, 11, 0, 2, 0, 29, 32, 26, 9, 12, 6, 10, 13, 8, 0, 0, 0, 23, 24, 19, 30, 31, 24, 1, 2, 0, 0, 0, 0, 0, 0, 0, 5, 9, 1, 0, 0, 0, 18, 22, 14, 9, 12, 4, 7, 10, 4, 7, 10, 2, 8, 11, 5, 6, 12, 5, 0, 3, 0, 53, 56, 51, 109, 110, 105, 129, 129, 127, 115, 118, 112, 142, 143, 138, 127, 128, 123, 131, 132, 128, 126, 127, 122, 128, 129, 124, 137, 138, 133, 130, 132, 124, 140, 141, 134, 133, 134, 127, 134, 135, 128, 138, 142, 134, 140, 141, 132, 143, 145, 135, 133, 135, 123, 145, 149, 136, 144, 148, 135, 149, 153, 140, 150, 152, 140, 142, 144, 132, 156, 158, 146, 155, 157, 145, 140, 142, 129, 140, 142, 129, 143, 145, 131, 145, 148, 133, 151, 151, 137, 136, 138, 126, 158, 161, 146, 127, 131, 118, 44, 48, 35, 0, 0, 0, 21, 24, 14, 47, 53, 42, 67, 73, 62, 32, 36, 26, 10, 16, 5, 35, 42, 30, 125, 129, 119, 138, 142, 132, 124, 128, 116, 155, 159, 146, 135, 139, 126, 127, 131, 118, 129, 133, 122, 117, 121, 111, 107, 114, 103, 127, 130, 120, 134, 141, 129, 121, 125, 114, 125, 129, 119, 123, 127, 117, 127, 130, 120, 133, 137, 127, 137, 141, 128, 117, 121, 109, 130, 134, 121, 135, 139, 126, 133, 138, 125, 127, 131, 118, 126, 128, 116, 128, 132, 119, 124, 128, 116, 129, 131, 119, 138, 140, 128, 121, 123, 111, 133, 135, 123, 137, 141, 128, 131, 135, 123, 40, 44, 34, 110, 114, 104, 0, 0, 0, 0, 3, 0, 40, 44, 36, 2, 5, 0, 15, 18, 10, 0, 0, 0, 73, 75, 65, 135, 137, 125, 132, 132, 118, 138, 141, 126, 139, 139, 125, 127, 129, 115, 131, 131, 115, 137, 137, 121, 137, 137, 121, 142, 143, 127, 135, 138, 121, 138, 138, 120, 136, 139, 120, 137, 140, 121, 142, 143, 125, 146, 146, 128, 147, 148, 129, 144, 147, 130, 142, 143, 127, 144, 144, 128, 149, 150, 134, 135, 136, 120, 154, 154, 138, 125, 125, 109, 162, 163, 145, 153, 153, 137, 144, 144, 128, 146, 146, 130, 160, 160, 144, 154, 155, 136, 187, 187, 171, 183, 183, 167, 32, 31, 20, 39, 38, 31, 0, 0, 0, 106, 104, 88, 176, 172, 155, 181, 177, 158, 180, 174, 155, 191, 187, 168, 122, 121, 96, 136, 135, 110, 154, 151, 127, 150, 147, 125, 160, 159, 137, 186, 183, 161, 185, 184, 161, 180, 179, 159, 172, 170, 153, 150, 149, 128, 106, 107, 89, 112, 113, 95, 102, 102, 84, 111, 112, 93, 98, 99, 80, 138, 138, 120, 98, 98, 82, 83, 83, 67, 63, 65, 49, 76, 76, 60, 73, 76, 59, 65, 68, 51, 63, 64, 46, 73, 73, 55, 80, 80, 62, 71, 72, 54, 83, 82, 64, 115, 113, 96, 67, 65, 48, 100, 98, 80, 89, 88, 70, 87, 85, 70, 87, 83, 66, 83, 79, 62, 136, 132, 115, 124, 119, 105, 127, 123, 106, 137, 134, 114, 128, 124, 107, 123, 121, 106, 0, 0, 0, 101, 104, 89, 58, 60, 48, 122, 124, 114, 23, 26, 18, 19, 22, 17, 0, 2, 0, 32, 35, 30, 7, 9, 6, 13, 18, 14, 6, 11, 7, 0, 0, 0, 19, 24, 20, 0, 0, 0, 11, 16, 10, 0, 0, 0, 28, 34, 27, 0, 5, 0, 12, 18, 11, 0, 3, 0, 4, 9, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 9, 3, 8, 11, 3, 15, 18, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 10, 7, 50, 52, 49, 86, 88, 85, 136, 138, 135, 149, 151, 148, 166, 169, 166, 152, 155, 152, 151, 154, 151, 140, 143, 140, 130, 133, 129, 122, 125, 119, 121, 122, 117, 121, 122, 117, 118, 118, 114, 106, 107, 102, 119, 120, 115, 120, 121, 114, 115, 116, 109, 118, 119, 112, 0, 0, 0, 28, 31, 23, 0, 0, 0, 0, 0, 0, 24, 28, 20, 29, 32, 24, 9, 12, 4, 7, 10, 2, 51, 54, 46, 131, 133, 124, 151, 153, 143, 131, 133, 121, 134, 135, 126, 128, 130, 120, 126, 127, 120, 129, 131, 121, 136, 138, 128, 136, 138, 128, 130, 132, 122, 127, 129, 117, 134, 135, 126, 129, 131, 121, 121, 123, 111, 135, 137, 125, 135, 137, 125, 132, 137, 124, 129, 131, 117, 132, 137, 122, 135, 138, 121, 131, 136, 121, 129, 133, 118, 129, 131, 117, 119, 121, 109, 127, 129, 115, 120, 122, 108, 122, 125, 110, 134, 136, 122, 150, 153, 138, 147, 149, 134, 155, 157, 143, 162, 164, 150, 0, 0, 0, 0, 0, 0, 60, 64, 54, 35, 38, 28, 110, 114, 104, 29, 36, 25, 68, 74, 63, 0, 6, 0, 55, 59, 49, 136, 140, 127, 110, 114, 102, 117, 121, 109, 121, 125, 112, 122, 126, 113, 123, 127, 117, 120, 123, 113, 116, 122, 111, 120, 123, 113, 118, 122, 112, 117, 123, 112, 119, 125, 114, 115, 119, 108, 116, 120, 110, 121, 125, 114, 115, 119, 106, 114, 118, 105, 129, 131, 119, 124, 128, 116, 122, 124, 112, 122, 124, 112, 120, 122, 110, 119, 121, 109, 128, 130, 118, 121, 123, 111, 122, 126, 113, 119, 121, 109, 127, 131, 118, 132, 137, 124, 132, 137, 124, 80, 84, 73, 93, 97, 86, 11, 15, 5, 0, 0, 0, 37, 40, 32, 12, 16, 8, 19, 23, 15, 26, 30, 22, 77, 78, 69, 127, 128, 119, 123, 122, 111, 121, 121, 108, 120, 120, 107, 123, 123, 109, 124, 124, 108, 125, 125, 109, 132, 132, 116, 142, 143, 125, 128, 129, 111, 137, 137, 119, 142, 143, 125, 146, 146, 128, 132, 133, 114, 142, 143, 125, 134, 135, 117, 127, 128, 110, 255, 255, 255, 158, 158, 142, 155, 156, 138, 128, 129, 113, 255, 255, 255, 152, 152, 134, 244, 244, 228, 255, 255, 255, 255, 255, 255, 242, 243, 225, 153, 153, 137, 168, 166, 151, 163, 164, 146, 173, 173, 157, 40, 39, 28, 38, 36, 32, 0, 0, 0, 101, 99, 84, 168, 164, 147, 175, 171, 152, 150, 147, 127, 165, 162, 142, 130, 127, 105, 111, 111, 88, 122, 119, 97, 142, 139, 117, 125, 121, 100, 126, 123, 101, 134, 131, 109, 163, 159, 140, 141, 139, 119, 135, 133, 113, 128, 129, 111, 94, 94, 76, 81, 81, 63, 97, 98, 79, 123, 123, 105, 95, 93, 76, 100, 98, 80, 82, 83, 64, 74, 74, 56, 90, 91, 72, 73, 73, 55, 70, 71, 53, 87, 87, 69, 102, 102, 84, 66, 66, 50, 67, 67, 51, 49, 50, 34, 69, 69, 53, 68, 66, 51, 77, 74, 59, 103, 101, 86, 93, 91, 76, 73, 71, 56, 83, 81, 66, 191, 187, 170, 83, 79, 62, 122, 118, 101, 175, 171, 154, 103, 98, 82, 67, 65, 50, 0, 0, 0, 91, 93, 79, 144, 146, 134, 5, 9, 0, 8, 11, 5, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 4, 0, 3, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 33, 26, 62, 68, 61, 146, 152, 145, 146, 152, 145, 152, 155, 150, 142, 144, 141, 116, 119, 116, 85, 87, 84, 93, 95, 92, 68, 71, 68, 67, 70, 67, 75, 78, 77, 74, 77, 74, 97, 97, 95, 101, 104, 100, 101, 104, 100, 103, 106, 103, 103, 106, 103, 109, 112, 109, 108, 111, 107, 110, 113, 110, 110, 113, 110, 106, 108, 105, 121, 123, 120, 115, 117, 114, 113, 115, 112, 118, 121, 118, 122, 125, 119, 116, 119, 114, 120, 123, 117, 114, 116, 113, 121, 122, 117, 121, 122, 117, 119, 120, 115, 113, 114, 107, 114, 115, 108, 118, 119, 112, 120, 121, 114, 122, 123, 116, 120, 121, 114, 22, 25, 17, 44, 45, 38, 0, 0, 0, 0, 0, 0, 38, 41, 34, 23, 26, 18, 26, 30, 22, 57, 60, 52, 148, 151, 141, 151, 153, 141, 138, 140, 128, 130, 132, 120, 134, 136, 124, 143, 145, 133, 131, 133, 121, 133, 135, 123, 131, 133, 121, 134, 136, 124, 138, 137, 126, 137, 139, 127, 135, 137, 125, 128, 130, 118, 130, 132, 120, 130, 133, 118, 127, 129, 115, 130, 133, 118, 149, 151, 137, 129, 131, 117, 133, 135, 121, 133, 135, 121, 136, 138, 126, 123, 125, 113, 121, 123, 111, 124, 124, 110, 127, 127, 114, 135, 135, 122, 132, 132, 118, 130, 129, 116, 114, 115, 99, 154, 156, 140, 144, 147, 132, 102, 105, 90, 60, 62, 50, 0, 0, 0, 30, 34, 23, 25, 29, 19, 24, 30, 19, 36, 43, 32, 42, 49, 37, 120, 123, 113, 149, 153, 140, 121, 125, 112, 111, 118, 104, 120, 124, 111, 120, 124, 111, 117, 123, 110, 127, 134, 120, 123, 127, 117, 110, 116, 105, 118, 122, 112, 114, 121, 110, 104, 110, 99, 111, 115, 105, 120, 124, 111, 124, 128, 116, 124, 128, 116, 111, 116, 103, 130, 134, 121, 116, 120, 107, 118, 123, 110, 124, 128, 116, 121, 125, 112, 120, 124, 111, 120, 122, 110, 117, 121, 109, 125, 130, 117, 114, 118, 105, 115, 119, 106, 124, 128, 116, 132, 137, 124, 101, 105, 92, 79, 83, 70, 0, 0, 0, 0, 1, 0, 11, 15, 7, 25, 29, 21, 53, 57, 49, 4, 8, 0, 64, 68, 57, 114, 116, 104, 110, 109, 98, 121, 121, 108, 121, 121, 108, 123, 123, 109, 127, 127, 114, 123, 123, 109, 128, 129, 111, 138, 138, 120, 119, 120, 101, 134, 135, 117, 133, 134, 115, 135, 136, 118, 135, 136, 118, 147, 148, 129, 138, 138, 120, 255, 255, 255, 138, 138, 122, 120, 121, 105, 255, 255, 242, 255, 255, 255, 237, 237, 221, 149, 150, 134, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 150, 148, 132, 161, 159, 144, 151, 151, 135, 170, 171, 155, 39, 38, 27, 28, 27, 21, 0, 0, 0, 49, 49, 38, 167, 165, 150, 167, 166, 148, 177, 173, 154, 164, 163, 140, 109, 104, 80, 122, 119, 95, 117, 113, 92, 105, 102, 80, 107, 106, 83, 128, 127, 106, 116, 115, 95, 113, 111, 91, 88, 87, 69, 113, 111, 93, 90, 91, 72, 82, 83, 64, 87, 85, 70, 96, 97, 78, 96, 97, 78, 92, 90, 72, 96, 95, 77, 79, 77, 60, 84, 85, 66, 75, 75, 59, 68, 68, 52, 83, 84, 65, 70, 71, 53, 62, 63, 44, 61, 61, 45, 64, 65, 49, 64, 62, 46, 78, 76, 60, 86, 84, 68, 77, 74, 59, 68, 66, 51, 121, 119, 103, 94, 92, 77, 119, 114, 102, 94, 90, 76, 104, 100, 83, 174, 169, 155, 125, 121, 102, 92, 88, 71, 99, 96, 83, 0, 0, 0, 56, 58, 46, 0, 0, 0, 0, 0, 0, 90, 93, 90, 144, 147, 143, 109, 112, 109, 87, 90, 86, 64, 70, 65, 69, 74, 70, 61, 66, 62, 79, 85, 81, 68, 73, 67, 64, 67, 61, 73, 76, 70, 63, 69, 62, 81, 85, 77, 68, 71, 66, 72, 78, 72, 82, 87, 81, 88, 91, 86, 87, 90, 84, 86, 87, 82, 98, 98, 94, 93, 94, 89, 165, 166, 161, 97, 100, 95, 90, 94, 88, 117, 120, 115, 115, 116, 111, 107, 110, 104, 115, 116, 113, 114, 114, 112, 124, 127, 124, 119, 119, 117, 124, 127, 124, 117, 120, 117, 113, 115, 112, 111, 114, 111, 113, 115, 112, 117, 120, 117, 123, 126, 121, 116, 119, 114, 116, 119, 114, 114, 117, 111, 122, 125, 119, 115, 118, 110, 123, 127, 119, 122, 123, 116, 133, 134, 127, 119, 120, 111, 120, 121, 114, 121, 122, 115, 122, 124, 114, 121, 123, 113, 120, 121, 114, 113, 114, 107, 2, 4, 0, 0, 1, 0, 0, 0, 0, 5, 9, 1, 0, 0, 0, 67, 71, 63, 25, 29, 21, 67, 71, 63, 123, 125, 115, 130, 132, 120, 133, 133, 119, 137, 139, 127, 128, 130, 118, 153, 152, 141, 140, 142, 128, 127, 129, 115, 138, 141, 126, 133, 133, 119, 133, 135, 123, 140, 142, 129, 128, 130, 118, 127, 129, 115, 148, 150, 136, 144, 147, 132, 136, 138, 124, 126, 128, 114, 131, 134, 119, 136, 138, 124, 135, 137, 123, 136, 138, 124, 140, 142, 128, 141, 143, 129, 128, 130, 116, 147, 149, 132, 144, 144, 128, 126, 128, 112, 141, 143, 127, 130, 133, 116, 122, 125, 108, 156, 159, 142, 163, 165, 151, 64, 66, 52, 0, 0, 0, 0, 0, 0, 4, 8, 0, 15, 19, 8, 14, 17, 7, 13, 19, 8, 67, 73, 62, 145, 151, 140, 131, 137, 124, 142, 149, 135, 140, 147, 133, 133, 138, 125, 130, 134, 121, 135, 139, 126, 129, 136, 125, 125, 132, 118, 140, 144, 134, 117, 123, 112, 117, 123, 110, 118, 123, 110, 111, 116, 101, 139, 144, 129, 161, 166, 151, 202, 207, 192, 235, 239, 224, 140, 145, 130, 128, 132, 119, 121, 125, 112, 120, 122, 110, 122, 126, 113, 122, 126, 113, 122, 124, 112, 120, 122, 110, 122, 124, 112, 127, 129, 117, 127, 129, 117, 128, 132, 119, 128, 132, 119, 68, 72, 62, 0, 0, 0, 12, 16, 8, 8, 11, 3, 40, 44, 36, 16, 19, 11, 0, 1, 0, 95, 99, 89, 116, 118, 106, 130, 129, 116, 120, 120, 107, 124, 123, 112, 121, 121, 108, 119, 119, 105, 118, 118, 104, 119, 119, 103, 124, 124, 108, 124, 124, 108, 125, 125, 109, 132, 132, 116, 141, 141, 126, 148, 149, 130, 140, 141, 122, 138, 138, 120, 124, 124, 106, 255, 255, 247, 197, 198, 179, 140, 141, 122, 132, 133, 114, 127, 128, 110, 141, 139, 121, 139, 140, 121, 147, 148, 129, 244, 244, 226, 148, 149, 130, 151, 151, 133, 161, 162, 143, 173, 173, 155, 169, 169, 154, 61, 60, 49, 19, 17, 13, 17, 18, 13, 10, 9, 0, 142, 143, 127, 161, 160, 140, 154, 150, 131, 140, 142, 118, 118, 114, 95, 99, 96, 74, 126, 123, 101, 107, 103, 84, 108, 105, 85, 97, 93, 76, 99, 95, 78, 85, 83, 65, 88, 87, 69, 110, 109, 91, 91, 88, 73, 86, 84, 68, 108, 108, 92, 94, 92, 75, 103, 102, 84, 78, 76, 58, 80, 78, 61, 91, 89, 71, 77, 75, 57, 82, 82, 66, 76, 76, 60, 108, 108, 92, 78, 79, 63, 75, 75, 59, 63, 60, 45, 61, 59, 44, 61, 59, 46, 67, 65, 52, 73, 71, 58, 56, 53, 40, 63, 60, 47, 79, 76, 64, 168, 166, 153, 92, 89, 76, 90, 85, 73, 151, 146, 134, 98, 93, 79, 113, 110, 95, 128, 126, 110, 0, 0, 0, 0, 0, 0, 148, 150, 138, 88, 90, 82, 95, 96, 91, 120, 123, 117, 81, 84, 81, 101, 104, 100, 102, 105, 102, 99, 101, 98, 93, 96, 90, 102, 105, 102, 110, 113, 108, 106, 109, 103, 109, 112, 107, 100, 103, 97, 107, 110, 102, 109, 113, 105, 111, 115, 107, 113, 116, 108, 109, 112, 107, 106, 107, 102, 122, 123, 118, 111, 111, 107, 115, 116, 111, 107, 108, 101, 116, 117, 112, 109, 112, 107, 104, 107, 102, 117, 120, 115, 115, 116, 111, 114, 115, 110, 113, 114, 109, 121, 124, 118, 112, 113, 108, 115, 116, 111, 109, 112, 107, 122, 125, 119, 127, 130, 124, 124, 127, 122, 117, 120, 115, 118, 121, 116, 118, 121, 116, 122, 125, 119, 120, 123, 115, 123, 127, 119, 123, 127, 119, 117, 121, 113, 130, 134, 124, 129, 131, 121, 122, 124, 114, 122, 124, 114, 120, 121, 112, 122, 124, 114, 127, 128, 119, 120, 121, 112, 120, 121, 112, 136, 139, 131, 46, 50, 42, 54, 58, 50, 0, 0, 0, 9, 12, 4, 23, 26, 18, 0, 0, 0, 0, 2, 0, 21, 24, 16, 59, 63, 52, 141, 143, 131, 134, 136, 122, 145, 148, 133, 110, 110, 96, 151, 151, 137, 123, 123, 109, 141, 141, 128, 150, 153, 138, 138, 137, 126, 149, 149, 136, 141, 141, 128, 129, 131, 117, 121, 121, 108, 141, 141, 126, 164, 166, 152, 129, 131, 117, 140, 142, 128, 163, 165, 151, 130, 133, 118, 138, 141, 126, 135, 137, 123, 130, 133, 118, 131, 134, 119, 134, 136, 122, 133, 135, 119, 122, 125, 108, 138, 141, 124, 139, 139, 123, 147, 148, 129, 136, 139, 122, 151, 154, 137, 149, 152, 133, 1, 4, 0, 0, 0, 0, 21, 23, 13, 16, 20, 9, 47, 51, 41, 45, 49, 39, 5, 11, 2, 8, 14, 6, 64, 71, 57, 119, 126, 112, 133, 140, 126, 125, 132, 118, 117, 123, 110, 135, 139, 126, 121, 125, 112, 140, 145, 132, 114, 121, 107, 118, 123, 110, 123, 127, 114, 119, 126, 112, 127, 131, 118, 116, 121, 105, 255, 255, 255, 255, 255, 255, 255, 255, 255, 132, 137, 122, 255, 255, 251, 117, 122, 107, 115, 117, 105, 115, 119, 106, 121, 125, 110, 130, 133, 118, 125, 127, 112, 129, 131, 117, 130, 133, 118, 120, 122, 108, 122, 125, 110, 119, 121, 109, 138, 140, 128, 38, 40, 30, 8, 12, 1, 0, 0, 0, 0, 2, 0, 26, 30, 22, 9, 12, 4, 0, 3, 0, 110, 114, 104, 119, 121, 109, 113, 113, 100, 121, 123, 109, 119, 119, 105, 123, 123, 109, 121, 121, 108, 128, 128, 115, 125, 125, 111, 118, 118, 102, 118, 118, 102, 127, 128, 112, 135, 136, 120, 131, 131, 115, 149, 150, 132, 135, 136, 118, 139, 140, 121, 144, 144, 126, 140, 141, 122, 147, 148, 129, 140, 141, 122, 153, 152, 134, 151, 149, 132, 156, 154, 136, 149, 150, 132, 153, 152, 134, 155, 153, 135, 149, 147, 129, 153, 152, 134, 156, 154, 136, 160, 161, 142, 159, 159, 143, 56, 56, 45, 24, 26, 18, 0, 0, 0, 13, 13, 2, 144, 144, 128, 178, 176, 159, 174, 170, 149, 190, 189, 166, 114, 111, 89, 112, 108, 89, 107, 103, 84, 97, 93, 74, 86, 83, 63, 106, 102, 85, 79, 75, 58, 82, 80, 65, 94, 92, 77, 89, 87, 72, 94, 92, 77, 87, 85, 70, 91, 88, 73, 101, 99, 82, 91, 89, 71, 107, 105, 88, 89, 88, 70, 79, 77, 60, 89, 88, 70, 103, 101, 86, 80, 78, 63, 80, 80, 64, 62, 62, 46, 66, 64, 49, 71, 69, 53, 74, 72, 57, 67, 65, 52, 64, 61, 48, 74, 72, 59, 67, 65, 52, 95, 95, 81, 108, 105, 93, 75, 73, 62, 81, 78, 68, 91, 88, 77, 144, 141, 131, 94, 91, 81, 97, 96, 85, 0, 0, 0, 121, 121, 108, 112, 112, 100, 122, 124, 114, 70, 71, 64, 115, 118, 112, 83, 87, 81, 87, 90, 86, 95, 98, 93, 93, 96, 90, 95, 98, 93, 96, 99, 94, 99, 102, 96, 95, 98, 93, 99, 102, 94, 99, 102, 94, 99, 102, 94, 97, 101, 93, 94, 97, 89, 103, 107, 99, 96, 100, 92, 105, 106, 99, 97, 98, 91, 107, 108, 101, 112, 113, 106, 111, 112, 105, 108, 109, 102, 113, 114, 107, 110, 114, 106, 110, 114, 106, 110, 113, 108, 113, 114, 109, 115, 118, 112, 111, 112, 105, 115, 116, 109, 115, 116, 109, 116, 117, 112, 116, 117, 112, 118, 121, 116, 116, 119, 114, 118, 121, 116, 117, 121, 113, 122, 125, 119, 120, 123, 115, 113, 116, 108, 122, 125, 117, 130, 134, 124, 122, 124, 114, 130, 132, 122, 122, 124, 114, 122, 124, 114, 126, 127, 118, 122, 124, 114, 120, 121, 112, 127, 128, 119, 123, 125, 115, 125, 126, 117, 126, 127, 118, 125, 129, 119, 7, 10, 2, 48, 52, 44, 0, 0, 0, 19, 23, 15, 48, 52, 44, 3, 7, 0, 14, 17, 9, 8, 11, 3, 42, 45, 35, 144, 146, 134, 134, 134, 121, 151, 151, 137, 147, 147, 133, 125, 125, 111, 134, 134, 121, 152, 152, 138, 156, 156, 143, 160, 160, 146, 145, 145, 131, 148, 148, 134, 154, 156, 140, 116, 119, 102, 158, 161, 144, 147, 149, 132, 142, 145, 128, 161, 163, 149, 123, 126, 111, 150, 153, 138, 137, 140, 125, 147, 149, 134, 143, 145, 131, 120, 122, 108, 125, 127, 110, 133, 135, 119, 145, 148, 131, 135, 138, 121, 150, 153, 134, 153, 154, 135, 130, 130, 112, 157, 160, 141, 153, 156, 136, 69, 71, 55, 60, 64, 52, 0, 0, 0, 11, 15, 7, 15, 18, 10, 18, 24, 15, 10, 16, 7, 28, 34, 25, 103, 109, 98, 131, 137, 124, 127, 134, 120, 129, 133, 120, 136, 140, 127, 124, 128, 116, 125, 130, 117, 121, 125, 112, 112, 119, 105, 118, 123, 110, 123, 127, 114, 120, 124, 111, 129, 133, 120, 129, 133, 118, 255, 255, 255, 113, 117, 102, 74, 79, 64, 113, 117, 102, 255, 255, 255, 117, 122, 107, 122, 127, 111, 111, 113, 98, 127, 131, 116, 130, 133, 118, 133, 135, 121, 126, 128, 114, 128, 130, 116, 125, 127, 112, 123, 126, 111, 122, 124, 112, 142, 144, 132, 19, 20, 11, 51, 55, 44, 0, 0, 0, 2, 5, 0, 58, 61, 53, 15, 18, 10, 19, 23, 15, 79, 83, 72, 101, 103, 91, 120, 120, 107, 118, 120, 105, 117, 117, 103, 120, 122, 108, 123, 123, 109, 119, 119, 105, 121, 121, 108, 124, 124, 110, 125, 125, 111, 124, 124, 108, 134, 134, 119, 139, 139, 123, 144, 144, 126, 141, 141, 126, 141, 142, 124, 141, 142, 124, 142, 143, 125, 149, 150, 132, 127, 128, 110, 151, 149, 132, 155, 153, 135, 152, 151, 131, 153, 152, 134, 149, 147, 127, 137, 136, 116, 152, 151, 133, 149, 150, 132, 162, 163, 145, 167, 168, 149, 156, 159, 142, 38, 40, 28, 12, 13, 6, 16, 17, 10, 0, 0, 0, 152, 150, 135, 164, 162, 145, 166, 165, 143, 178, 177, 154, 87, 84, 64, 99, 95, 76, 91, 87, 70, 115, 111, 95, 92, 90, 72, 93, 89, 74, 93, 88, 76, 104, 102, 89, 87, 85, 72, 86, 83, 70, 88, 86, 73, 91, 88, 75, 94, 92, 79, 99, 96, 83, 93, 91, 76, 97, 95, 80, 78, 76, 60, 79, 76, 64, 75, 73, 60, 81, 79, 66, 78, 75, 62, 74, 72, 59, 63, 60, 47, 78, 76, 60, 81, 79, 64, 66, 64, 51, 68, 66, 53, 77, 74, 61, 74, 71, 61, 73, 70, 60, 83, 81, 70, 81, 78, 68, 88, 85, 77, 106, 102, 94, 97, 94, 86, 82, 79, 71, 59, 58, 49, 0, 0, 0, 111, 110, 99, 108, 107, 96, 124, 123, 114, 85, 86, 81, 106, 107, 102, 76, 76, 72, 78, 81, 75, 87, 90, 86, 93, 96, 90, 83, 87, 81, 94, 97, 91, 88, 91, 86, 99, 102, 96, 97, 100, 95, 96, 99, 94, 99, 102, 94, 89, 93, 85, 100, 103, 95, 100, 101, 94, 101, 102, 95, 112, 113, 106, 102, 104, 96, 101, 102, 95, 104, 105, 96, 106, 107, 100, 109, 111, 103, 114, 115, 108, 113, 114, 107, 114, 115, 108, 104, 105, 98, 108, 109, 104, 111, 112, 105, 112, 113, 108, 114, 115, 108, 116, 118, 110, 116, 118, 110, 118, 118, 114, 115, 116, 109, 121, 122, 115, 121, 122, 115, 121, 122, 115, 122, 125, 117, 123, 125, 117, 123, 125, 117, 122, 123, 116, 118, 119, 112, 120, 121, 112, 122, 124, 114, 130, 132, 122, 127, 128, 119, 127, 128, 119, 125, 126, 117, 120, 121, 112, 119, 120, 111, 123, 125, 115, 128, 130, 118, 119, 120, 111, 121, 123, 113, 120, 121, 112, 12, 16, 6, 14, 17, 7, 0, 0, 0, 0, 0, 0, 3, 7, 0, 55, 59, 51, 11, 15, 7, 52, 55, 48, 121, 125, 114, 134, 136, 124, 144, 143, 130, 138, 138, 124, 135, 135, 122, 151, 151, 137, 147, 147, 133, 148, 148, 134, 158, 158, 144, 142, 142, 129, 137, 136, 123, 154, 154, 138, 147, 149, 134, 140, 142, 126, 158, 161, 144, 128, 130, 116, 107, 109, 95, 125, 127, 112, 255, 255, 255, 130, 133, 118, 123, 126, 111, 153, 155, 140, 155, 158, 141, 161, 163, 147, 163, 166, 149, 165, 168, 151, 154, 155, 136, 139, 140, 121, 141, 142, 124, 143, 146, 127, 151, 151, 133, 147, 150, 130, 147, 150, 130, 114, 117, 100, 71, 73, 63, 0, 0, 0, 7, 10, 2, 1, 4, 0, 0, 0, 0, 10, 15, 9, 21, 27, 20, 124, 130, 119, 149, 156, 142, 136, 140, 125, 138, 143, 128, 139, 144, 129, 127, 131, 118, 124, 128, 116, 125, 130, 115, 128, 132, 119, 114, 118, 105, 115, 119, 106, 125, 130, 115, 114, 118, 103, 127, 131, 116, 182, 187, 172, 170, 174, 159, 194, 199, 183, 231, 236, 221, 255, 255, 255, 144, 149, 131, 133, 135, 121, 131, 134, 119, 133, 135, 119, 131, 134, 119, 120, 123, 106, 125, 127, 110, 134, 136, 122, 134, 136, 122, 120, 122, 108, 138, 140, 128, 119, 121, 109, 44, 46, 36, 123, 127, 117, 0, 0, 0, 0, 2, 0, 58, 61, 53, 1, 4, 0, 54, 58, 50, 46, 50, 42, 106, 108, 96, 121, 123, 109, 124, 124, 110, 119, 119, 105, 120, 120, 107, 125, 125, 111, 131, 131, 117, 127, 127, 114, 121, 121, 108, 125, 125, 109, 130, 130, 114, 123, 123, 107, 130, 130, 114, 138, 138, 122, 140, 141, 122, 141, 142, 124, 141, 142, 124, 146, 146, 128, 140, 141, 122, 149, 147, 129, 161, 160, 142, 145, 143, 126, 145, 143, 126, 152, 151, 133, 158, 156, 139, 151, 149, 132, 153, 152, 134, 161, 162, 143, 167, 168, 149, 160, 160, 144, 120, 122, 110, 6, 7, 0, 12, 12, 8, 23, 24, 17, 0, 0, 0, 147, 147, 133, 164, 162, 147, 152, 151, 129, 158, 157, 135, 66, 62, 57, 92, 87, 77, 77, 72, 60, 96, 94, 81, 89, 87, 72, 86, 81, 71, 104, 101, 93, 100, 97, 86, 95, 92, 82, 91, 88, 77, 97, 95, 84, 83, 80, 72, 99, 95, 87, 82, 79, 71, 85, 81, 73, 87, 84, 76, 67, 64, 56, 75, 72, 64, 74, 71, 63, 79, 76, 68, 71, 67, 60, 85, 81, 73, 67, 64, 56, 74, 71, 63, 54, 51, 43, 86, 83, 72, 80, 77, 69, 80, 79, 70, 66, 65, 56, 77, 73, 65, 82, 79, 73, 87, 85, 79, 80, 78, 72, 109, 106, 98, 92, 88, 80, 134, 134, 123, 0, 0, 0, 135, 137, 127, 131, 133, 124, 97, 96, 89, 94, 95, 90, 104, 104, 100, 67, 68, 64, 72, 75, 69, 71, 74, 68, 89, 92, 87, 89, 92, 87, 89, 92, 87, 95, 98, 93, 86, 92, 86, 88, 93, 87, 88, 92, 84, 94, 97, 89, 93, 96, 88, 94, 97, 89, 97, 101, 93, 92, 95, 87, 88, 92, 84, 98, 99, 92, 101, 104, 96, 100, 103, 95, 102, 104, 94, 105, 106, 99, 112, 113, 106, 109, 111, 103, 98, 99, 92, 105, 106, 99, 114, 115, 108, 113, 114, 107, 107, 108, 101, 114, 115, 108, 109, 111, 103, 114, 117, 109, 119, 120, 111, 120, 121, 114, 121, 122, 115, 121, 122, 115, 120, 121, 114, 123, 125, 115, 126, 127, 118, 115, 117, 107, 122, 124, 114, 123, 125, 115, 119, 120, 111, 127, 128, 119, 134, 136, 124, 120, 122, 110, 130, 134, 121, 121, 123, 111, 131, 133, 121, 122, 124, 112, 127, 129, 117, 121, 123, 111, 131, 133, 121, 127, 129, 117, 129, 131, 121, 133, 135, 123, 87, 91, 80, 7, 10, 0, 22, 25, 17, 140, 144, 134, 18, 22, 14, 15, 18, 10, 53, 57, 49, 9, 12, 4, 90, 94, 84, 140, 145, 132, 148, 150, 136, 135, 135, 122, 152, 152, 138, 139, 139, 125, 146, 146, 132, 154, 154, 138, 148, 148, 132, 139, 139, 123, 159, 159, 143, 148, 148, 132, 140, 142, 126, 135, 138, 121, 150, 153, 136, 126, 128, 112, 254, 255, 240, 235, 237, 223, 118, 118, 104, 125, 127, 112, 161, 163, 149, 154, 156, 142, 164, 167, 150, 148, 148, 132, 121, 124, 105, 159, 162, 145, 149, 150, 132, 144, 144, 126, 135, 136, 118, 149, 150, 132, 152, 152, 134, 151, 151, 133, 138, 138, 120, 138, 141, 124, 14, 16, 6, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 6, 12, 5, 14, 20, 13, 11, 17, 8, 98, 105, 91, 132, 137, 122, 130, 135, 119, 130, 133, 118, 126, 128, 114, 125, 127, 114, 138, 141, 126, 129, 131, 117, 125, 130, 117, 128, 130, 116, 118, 123, 108, 114, 118, 103, 129, 133, 118, 120, 124, 109, 131, 136, 121, 132, 137, 122, 128, 133, 115, 129, 134, 116, 130, 135, 117, 129, 132, 115, 128, 130, 116, 144, 147, 130, 137, 140, 123, 143, 146, 129, 129, 132, 115, 123, 126, 109, 136, 138, 124, 129, 131, 117, 135, 137, 123, 126, 128, 116, 80, 82, 72, 58, 62, 51, 0, 0, 0, 11, 15, 7, 66, 67, 60, 58, 61, 53, 14, 17, 9, 17, 21, 13, 82, 87, 74, 120, 122, 110, 125, 127, 112, 122, 125, 110, 127, 128, 112, 127, 128, 112, 123, 123, 107, 127, 128, 112, 129, 132, 115, 120, 123, 106, 125, 125, 109, 125, 125, 109, 132, 132, 116, 132, 132, 116, 135, 136, 120, 138, 138, 122, 141, 141, 126, 142, 143, 127, 149, 150, 132, 144, 142, 127, 143, 141, 124, 149, 147, 129, 142, 140, 120, 147, 148, 129, 155, 153, 133, 156, 154, 136, 146, 145, 125, 163, 161, 141, 170, 171, 153, 177, 177, 164, 43, 44, 37, 5, 5, 1, 7, 8, 3, 9, 10, 3, 0, 0, 0, 144, 143, 132, 137, 135, 118, 149, 147, 127, 166, 165, 143, 80, 76, 75, 82, 78, 75, 79, 75, 70, 77, 73, 67, 71, 68, 57, 82, 79, 71, 101, 97, 92, 83, 80, 74, 83, 80, 72, 96, 93, 87, 82, 79, 71, 86, 82, 77, 86, 82, 77, 79, 76, 68, 94, 90, 85, 77, 73, 67, 88, 85, 79, 74, 71, 65, 83, 80, 74, 88, 85, 79, 92, 88, 82, 83, 80, 74, 85, 81, 75, 85, 81, 75, 87, 83, 78, 91, 87, 81, 88, 84, 81, 88, 84, 81, 91, 87, 81, 98, 97, 91, 88, 86, 80, 106, 105, 99, 100, 96, 91, 96, 93, 85, 40, 39, 30, 50, 50, 41, 100, 100, 91, 79, 80, 73, 70, 71, 64, 99, 100, 95, 97, 97, 93, 79, 80, 75, 75, 78, 73, 82, 85, 80, 81, 84, 79, 83, 87, 81, 90, 94, 86, 83, 87, 81, 89, 92, 87, 89, 95, 86, 100, 103, 95, 94, 97, 89, 88, 92, 84, 93, 96, 88, 95, 98, 91, 90, 94, 84, 94, 96, 86, 97, 98, 91, 86, 90, 79, 100, 104, 93, 102, 104, 94, 101, 103, 93, 102, 104, 94, 101, 103, 93, 105, 106, 97, 108, 109, 102, 106, 107, 100, 113, 114, 107, 111, 112, 105, 109, 111, 103, 108, 110, 100, 122, 124, 114, 107, 109, 99, 111, 112, 103, 127, 128, 119, 119, 120, 111, 118, 119, 110, 114, 116, 106, 120, 121, 112, 125, 126, 117, 126, 127, 118, 125, 126, 117, 109, 111, 101, 126, 127, 118, 125, 126, 117, 127, 129, 117, 133, 135, 123, 126, 128, 116, 125, 127, 114, 126, 128, 116, 128, 130, 118, 129, 131, 119, 126, 128, 116, 127, 129, 117, 134, 136, 124, 123, 127, 114, 132, 137, 124, 161, 165, 155, 7, 10, 2, 78, 81, 73, 0, 0, 0, 0, 2, 0, 0, 0, 0, 38, 41, 34, 25, 28, 23, 38, 42, 32, 96, 100, 88, 138, 141, 126, 145, 145, 131, 134, 134, 121, 160, 160, 146, 147, 147, 131, 139, 139, 123, 156, 157, 141, 148, 148, 132, 141, 141, 126, 177, 178, 162, 153, 153, 137, 166, 166, 150, 167, 167, 151, 126, 128, 114, 255, 255, 255, 131, 134, 119, 255, 255, 255, 214, 217, 200, 251, 254, 237, 134, 137, 120, 154, 156, 140, 141, 144, 125, 147, 150, 130, 159, 163, 143, 165, 165, 147, 141, 142, 124, 132, 133, 114, 137, 137, 119, 146, 146, 128, 144, 144, 126, 159, 159, 141, 145, 145, 129, 21, 23, 13, 59, 63, 52, 0, 0, 0, 62, 68, 61, 0, 0, 0, 13, 19, 12, 29, 35, 29, 35, 41, 34, 69, 75, 64, 138, 144, 131, 131, 134, 119, 133, 135, 121, 140, 142, 128, 138, 141, 126, 131, 134, 119, 134, 136, 122, 126, 128, 114, 140, 142, 128, 130, 133, 118, 130, 135, 119, 131, 136, 121, 132, 137, 122, 127, 131, 116, 128, 132, 117, 140, 145, 128, 118, 123, 106, 132, 137, 120, 131, 136, 119, 131, 134, 117, 128, 131, 114, 133, 135, 119, 140, 142, 126, 138, 138, 122, 134, 137, 120, 129, 132, 115, 136, 139, 122, 138, 141, 126, 129, 131, 117, 118, 120, 107, 72, 73, 66, 0, 0, 0, 0, 0, 0, 42, 43, 36, 25, 29, 21, 52, 55, 48, 15, 18, 10, 68, 72, 62, 129, 131, 119, 123, 126, 111, 127, 129, 115, 137, 140, 125, 129, 132, 115, 128, 130, 116, 127, 129, 115, 126, 128, 114, 126, 128, 114, 123, 126, 111, 124, 124, 108, 118, 118, 104, 126, 126, 112, 128, 129, 113, 141, 141, 126, 141, 141, 126, 138, 138, 122, 137, 137, 121, 142, 143, 127, 144, 144, 128, 145, 143, 126, 142, 143, 125, 147, 148, 129, 138, 138, 120, 137, 135, 118, 166, 165, 147, 155, 156, 140, 170, 172, 158, 65, 68, 62, 10, 13, 8, 10, 13, 8, 10, 11, 6, 0, 0, 0, 0, 0, 0, 144, 146, 134, 141, 142, 124, 149, 147, 127, 171, 173, 150, 82, 77, 81, 95, 91, 90, 88, 84, 81, 93, 90, 82, 77, 73, 65, 83, 80, 74, 85, 81, 75, 81, 77, 74, 75, 72, 66, 84, 83, 77, 90, 89, 82, 81, 79, 75, 85, 84, 78, 81, 79, 73, 78, 74, 70, 84, 83, 79, 82, 80, 76, 81, 77, 74, 89, 85, 82, 96, 92, 89, 89, 85, 82, 104, 102, 98, 87, 85, 81, 88, 84, 81, 97, 95, 91, 91, 90, 86, 93, 88, 88, 96, 94, 92, 96, 94, 90, 70, 69, 63, 49, 48, 42, 83, 82, 75, 0, 0, 0, 57, 56, 52, 92, 91, 87, 104, 104, 100, 97, 97, 93, 87, 88, 83, 114, 117, 111, 88, 91, 86, 78, 79, 74, 85, 88, 82, 87, 90, 84, 81, 84, 79, 81, 84, 79, 78, 81, 75, 79, 82, 76, 83, 87, 79, 85, 88, 80, 87, 90, 82, 85, 88, 80, 88, 92, 84, 95, 98, 91, 89, 93, 85, 93, 97, 86, 94, 97, 89, 94, 97, 89, 94, 97, 89, 87, 90, 82, 100, 102, 92, 93, 96, 88, 94, 98, 87, 106, 109, 99, 101, 103, 93, 105, 106, 97, 107, 108, 101, 94, 96, 88, 109, 111, 103, 108, 110, 100, 101, 103, 93, 109, 111, 101, 111, 112, 103, 116, 118, 108, 116, 118, 108, 115, 117, 107, 114, 116, 106, 121, 123, 113, 119, 120, 111, 120, 121, 112, 125, 127, 114, 123, 125, 113, 127, 129, 117, 128, 130, 118, 120, 122, 110, 119, 121, 109, 123, 125, 113, 129, 131, 119, 128, 130, 118, 140, 142, 129, 126, 128, 116, 122, 124, 112, 119, 121, 109, 128, 130, 118, 129, 131, 119, 125, 127, 114, 125, 127, 114, 138, 142, 129, 163, 166, 156, 0, 2, 0, 0, 3, 0, 0, 0, 0, 14, 17, 11, 0, 0, 0, 54, 57, 52, 4, 7, 2, 10, 14, 6, 52, 56, 46, 149, 151, 137, 149, 149, 136, 131, 131, 117, 145, 145, 131, 173, 173, 157, 141, 141, 126, 146, 146, 130, 131, 131, 115, 140, 140, 124, 165, 165, 149, 159, 159, 143, 149, 150, 134, 154, 154, 138, 134, 137, 120, 125, 127, 110, 152, 152, 136, 160, 160, 144, 152, 152, 136, 168, 168, 152, 134, 137, 120, 162, 163, 145, 130, 130, 112, 173, 173, 155, 145, 145, 129, 141, 142, 124, 140, 141, 122, 140, 141, 122, 151, 151, 133, 139, 140, 121, 135, 136, 118, 156, 157, 139, 141, 141, 126, 112, 114, 102, 81, 85, 75, 0, 0, 0, 22, 25, 19, 9, 12, 6, 0, 2, 0, 33, 39, 32, 41, 47, 40, 109, 115, 104, 156, 163, 149, 137, 142, 126, 131, 134, 119, 140, 142, 128, 138, 141, 126, 134, 136, 122, 134, 136, 122, 134, 136, 122, 130, 133, 118, 142, 144, 130, 125, 130, 115, 133, 135, 121, 128, 133, 115, 123, 128, 112, 131, 136, 119, 133, 138, 121, 132, 137, 120, 131, 136, 119, 134, 137, 120, 141, 143, 127, 133, 135, 119, 131, 131, 115, 145, 145, 129, 150, 153, 136, 142, 145, 128, 145, 148, 131, 144, 147, 130, 147, 149, 132, 144, 147, 132, 120, 122, 110, 60, 62, 52, 7, 8, 1, 29, 32, 24, 55, 59, 51, 34, 35, 28, 40, 44, 36, 28, 31, 23, 88, 90, 80, 123, 125, 113, 131, 134, 119, 131, 134, 119, 130, 133, 118, 134, 136, 122, 136, 138, 124, 124, 124, 110, 122, 125, 108, 125, 127, 112, 125, 125, 111, 131, 134, 119, 129, 132, 115, 128, 129, 113, 138, 138, 122, 144, 144, 128, 141, 143, 127, 145, 148, 131, 145, 148, 131, 145, 148, 131, 137, 140, 123, 159, 162, 145, 148, 151, 132, 150, 153, 134, 172, 175, 156, 205, 207, 193, 137, 140, 123, 23, 27, 14, 19, 22, 17, 17, 22, 16, 15, 21, 15, 7, 9, 6, 28, 31, 25, 0, 0, 0, 23, 25, 13, 155, 155, 142, 151, 151, 135, 151, 152, 131, 149, 150, 129, 93, 98, 69, 171, 174, 144, 156, 155, 134, 108, 106, 91, 111, 109, 98, 87, 86, 75, 77, 73, 65, 86, 83, 75, 85, 85, 74, 76, 75, 66, 88, 86, 80, 77, 76, 70, 81, 79, 73, 83, 82, 75, 71, 70, 64, 77, 76, 72, 77, 76, 72, 81, 79, 75, 83, 81, 77, 77, 72, 69, 87, 85, 81, 94, 92, 88, 68, 66, 62, 50, 49, 43, 68, 67, 60, 49, 48, 42, 53, 51, 47, 60, 58, 52, 34, 33, 27, 19, 17, 13, 6, 5, 1, 98, 96, 95, 90, 88, 86, 87, 85, 83, 84, 84, 82, 88, 89, 86, 121, 122, 117, 95, 98, 93, 82, 85, 80, 90, 94, 88, 71, 74, 66, 83, 87, 79, 80, 83, 75, 86, 89, 81, 83, 87, 79, 85, 88, 80, 82, 86, 78, 85, 88, 80, 87, 90, 82, 87, 90, 82, 89, 93, 85, 86, 90, 79, 99, 102, 92, 90, 94, 84, 93, 97, 86, 92, 95, 85, 95, 97, 87, 92, 95, 85, 94, 97, 89, 94, 98, 87, 97, 101, 91, 100, 104, 93, 90, 91, 82, 105, 106, 97, 105, 106, 97, 106, 108, 98, 109, 111, 103, 112, 113, 104, 115, 117, 107, 119, 120, 111, 113, 114, 105, 111, 112, 103, 115, 117, 107, 107, 109, 99, 121, 125, 114, 111, 112, 103, 115, 119, 108, 117, 121, 111, 120, 121, 112, 117, 121, 109, 124, 128, 116, 120, 124, 111, 118, 120, 107, 133, 135, 123, 121, 123, 111, 128, 130, 116, 125, 127, 112, 134, 136, 122, 134, 136, 124, 130, 132, 120, 147, 149, 134, 125, 127, 112, 130, 133, 118, 131, 133, 121, 135, 137, 125, 144, 147, 132, 129, 131, 119, 132, 136, 126, 19, 23, 13, 33, 34, 27, 0, 0, 0, 97, 100, 95, 0, 0, 0, 42, 45, 39, 17, 20, 15, 30, 33, 27, 61, 65, 57, 145, 147, 135, 138, 138, 124, 137, 136, 123, 144, 143, 130, 145, 145, 129, 167, 167, 151, 133, 133, 117, 161, 161, 145, 139, 139, 123, 156, 157, 141, 187, 187, 171, 155, 156, 140, 154, 155, 136, 165, 165, 147, 155, 156, 138, 149, 150, 132, 142, 145, 126, 155, 156, 138, 168, 169, 150, 182, 183, 164, 159, 159, 143, 167, 168, 149, 160, 160, 144, 174, 175, 156, 167, 168, 149, 156, 157, 139, 166, 166, 148, 153, 154, 135, 142, 143, 125, 138, 138, 120, 135, 136, 118, 154, 154, 138, 119, 121, 109, 19, 20, 13, 0, 0, 0, 25, 28, 23, 32, 35, 30, 0, 0, 0, 24, 29, 23, 35, 41, 34, 173, 177, 169, 99, 102, 92, 128, 132, 119, 129, 131, 117, 130, 133, 118, 131, 134, 119, 128, 130, 116, 135, 137, 123, 141, 143, 129, 137, 140, 125, 134, 136, 122, 130, 133, 118, 128, 131, 114, 142, 147, 129, 150, 155, 137, 140, 142, 126, 143, 146, 129, 133, 135, 119, 137, 142, 124, 131, 134, 117, 144, 147, 130, 135, 138, 121, 140, 142, 126, 147, 147, 131, 141, 141, 126, 141, 143, 127, 144, 147, 130, 141, 143, 127, 149, 152, 135, 154, 156, 140, 141, 143, 131, 26, 27, 18, 60, 62, 54, 1, 4, 0, 0, 0, 0, 31, 35, 27, 33, 37, 29, 33, 37, 29, 99, 100, 91, 121, 123, 111, 138, 141, 126, 134, 136, 122, 131, 134, 119, 136, 138, 124, 129, 131, 117, 130, 133, 118, 121, 123, 109, 121, 123, 109, 120, 122, 108, 106, 108, 94, 137, 136, 123, 153, 153, 139, 166, 169, 154, 205, 208, 191, 200, 204, 189, 149, 153, 138, 83, 88, 75, 46, 52, 41, 20, 26, 15, 26, 32, 21, 17, 23, 12, 48, 52, 44, 45, 48, 41, 46, 50, 42, 44, 47, 39, 32, 38, 29, 35, 41, 34, 38, 43, 37, 14, 20, 13, 26, 32, 25, 13, 18, 14, 0, 0, 0, 80, 83, 68, 141, 141, 126, 147, 148, 129, 134, 135, 114, 136, 140, 118, 92, 89, 95, 80, 77, 80, 81, 81, 81, 87, 87, 87, 45, 45, 45, 28, 26, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 31, 31, 31, 33, 80, 77, 80, 100, 98, 101, 100, 98, 101, 90, 87, 90, 90, 87, 90, 94, 91, 92, 90, 88, 88, 81, 81, 81, 110, 113, 110, 104, 107, 104, 72, 75, 69, 76, 80, 74, 80, 83, 75, 85, 88, 80, 182, 186, 178, 88, 92, 84, 82, 86, 78, 88, 92, 84, 85, 88, 80, 82, 86, 78, 83, 87, 79, 88, 92, 84, 78, 81, 73, 86, 89, 81, 88, 92, 84, 87, 90, 82, 95, 99, 89, 87, 91, 80, 136, 140, 129, 90, 94, 84, 93, 97, 86, 73, 77, 66, 88, 92, 82, 97, 101, 91, 95, 99, 89, 104, 108, 98, 102, 104, 94, 105, 106, 97, 105, 106, 97, 106, 108, 98, 106, 108, 98, 111, 112, 103, 113, 114, 105, 114, 116, 106, 121, 123, 113, 113, 116, 106, 109, 113, 103, 118, 122, 112, 123, 127, 117, 108, 112, 99, 117, 121, 109, 123, 127, 114, 118, 123, 110, 120, 124, 111, 128, 132, 119, 128, 130, 118, 125, 127, 114, 122, 124, 112, 119, 121, 109, 127, 129, 115, 138, 140, 128, 129, 131, 119, 134, 136, 124, 137, 140, 125, 134, 136, 122, 129, 131, 117, 148, 150, 136, 137, 140, 125, 138, 141, 126, 135, 137, 123, 131, 133, 121, 117, 121, 109, 95, 99, 89, 25, 29, 21, 18, 21, 16, 0, 0, 0, 0, 0, 0, 53, 56, 51, 22, 25, 19, 23, 26, 20, 158, 161, 156, 156, 158, 146, 141, 141, 129, 152, 152, 138, 142, 143, 127, 147, 147, 131, 151, 151, 135, 131, 131, 115, 140, 140, 124, 137, 137, 121, 158, 158, 142, 147, 147, 131, 163, 164, 148, 174, 175, 156, 176, 176, 160, 180, 180, 162, 140, 141, 122, 158, 158, 140, 148, 149, 130, 171, 172, 154, 152, 152, 134, 176, 177, 159, 153, 154, 135, 152, 152, 134, 144, 144, 126, 155, 156, 138, 153, 154, 135, 149, 150, 132, 133, 134, 115, 147, 148, 129, 167, 168, 149, 153, 154, 135, 148, 149, 130, 143, 146, 129, 2, 4, 0, 26, 27, 20, 0, 0, 0, 62, 65, 60, 0, 0, 0, 30, 33, 27, 32, 35, 30, 97, 100, 95, 79, 83, 72, 143, 145, 133, 147, 149, 134, 135, 137, 123, 126, 128, 112, 138, 141, 126, 131, 134, 119, 144, 147, 132, 133, 135, 119, 138, 141, 124, 140, 142, 126, 136, 139, 122, 137, 140, 123, 142, 145, 128, 130, 133, 116, 135, 138, 121, 133, 135, 119, 137, 140, 123, 135, 138, 121, 147, 149, 132, 137, 140, 123, 140, 142, 126, 162, 165, 146, 136, 139, 122, 142, 145, 128, 157, 160, 143, 150, 153, 136, 158, 161, 144, 147, 149, 132, 140, 145, 130, 23, 24, 17, 85, 87, 77, 0, 3, 0, 8, 11, 3, 55, 59, 51, 50, 53, 45, 19, 23, 15, 120, 121, 112, 141, 143, 131, 131, 136, 121, 141, 143, 129, 144, 148, 135, 165, 170, 154, 149, 153, 138, 113, 117, 104, 55, 60, 47, 19, 23, 13, 31, 35, 25, 46, 50, 40, 40, 44, 34, 47, 52, 39, 51, 55, 44, 40, 44, 34, 48, 52, 44, 38, 41, 34, 48, 54, 45, 39, 44, 38, 42, 48, 41, 39, 47, 40, 45, 50, 44, 44, 52, 45, 49, 57, 49, 55, 61, 54, 41, 47, 40, 41, 49, 41, 38, 43, 37, 33, 39, 32, 32, 37, 31, 33, 39, 32, 0, 0, 0, 0, 0, 0, 113, 113, 100, 147, 147, 131, 171, 172, 154, 165, 166, 145, 144, 148, 126, 78, 77, 84, 81, 82, 91, 75, 76, 85, 78, 78, 87, 74, 75, 84, 83, 81, 91, 83, 81, 91, 92, 90, 100, 86, 85, 92, 88, 87, 94, 88, 88, 92, 90, 89, 94, 85, 84, 89, 88, 88, 92, 87, 87, 91, 86, 85, 90, 95, 95, 99, 100, 99, 104, 79, 79, 81, 84, 83, 86, 94, 94, 96, 81, 81, 83, 88, 88, 92, 92, 91, 96, 79, 78, 83, 90, 89, 94, 87, 83, 89, 97, 94, 99, 103, 100, 105, 84, 82, 83, 89, 86, 87, 130, 131, 128, 124, 122, 120, 87, 87, 87, 74, 77, 74, 81, 84, 79, 83, 87, 81, 83, 87, 79, 100, 103, 95, 79, 85, 77, 76, 80, 72, 72, 78, 70, 76, 82, 73, 96, 100, 92, 88, 92, 84, 83, 87, 79, 85, 88, 80, 85, 88, 80, 85, 88, 80, 89, 93, 83, 88, 94, 83, 79, 83, 72, 88, 94, 83, 88, 94, 83, 89, 93, 83, 92, 95, 85, 93, 97, 86, 92, 95, 85, 95, 99, 89, 93, 97, 86, 89, 93, 83, 102, 106, 96, 103, 107, 97, 107, 109, 99, 109, 111, 101, 107, 109, 99, 107, 109, 99, 104, 105, 96, 111, 112, 103, 116, 118, 108, 114, 116, 106, 113, 116, 106, 115, 119, 108, 114, 116, 106, 117, 121, 109, 121, 125, 112, 120, 124, 111, 111, 116, 103, 120, 124, 111, 124, 128, 116, 123, 127, 114, 118, 120, 107, 125, 130, 117, 126, 128, 114, 130, 133, 118, 128, 130, 116, 130, 133, 118, 129, 131, 117, 133, 135, 121, 128, 130, 116, 131, 134, 119, 129, 131, 117, 131, 134, 119, 127, 129, 115, 131, 134, 119, 130, 133, 118, 140, 142, 128, 131, 135, 123, 150, 154, 143, 42, 45, 37, 12, 16, 10, 0, 0, 0, 38, 41, 36, 59, 62, 56, 22, 25, 19, 19, 22, 17, 82, 85, 80, 165, 167, 157, 151, 151, 137, 140, 140, 126, 160, 160, 144, 154, 154, 138, 156, 157, 141, 152, 152, 136, 141, 141, 126, 134, 134, 119, 166, 166, 150, 162, 162, 147, 171, 172, 156, 158, 158, 140, 174, 175, 156, 145, 145, 127, 152, 152, 134, 155, 156, 138, 171, 172, 154, 173, 173, 155, 158, 158, 140, 173, 173, 155, 161, 162, 143, 141, 144, 125, 148, 151, 132, 134, 135, 117, 148, 149, 130, 145, 149, 129, 169, 170, 152, 151, 154, 135, 145, 149, 129, 155, 158, 139, 157, 160, 141, 147, 149, 132, 51, 53, 41, 78, 79, 72, 0, 0, 0, 40, 40, 36, 0, 0, 0, 46, 49, 44, 33, 36, 31, 72, 75, 67, 128, 131, 121, 149, 153, 140, 149, 151, 137, 136, 138, 124, 135, 137, 123, 134, 136, 122, 134, 137, 120, 140, 142, 128, 138, 141, 124, 112, 114, 98, 148, 150, 134, 142, 145, 128, 137, 140, 123, 154, 156, 140, 141, 143, 129, 158, 161, 144, 138, 141, 124, 142, 145, 128, 149, 152, 135, 136, 139, 122, 142, 145, 128, 137, 140, 125, 148, 150, 136, 147, 149, 134, 153, 158, 143, 142, 147, 129, 132, 137, 120, 146, 151, 136, 143, 150, 136, 143, 147, 136, 42, 45, 37, 37, 40, 32, 0, 0, 0, 1, 4, 0, 0, 0, 0, 43, 47, 36, 36, 40, 29, 70, 71, 62, 58, 62, 51, 44, 48, 37, 51, 55, 44, 55, 61, 50, 52, 58, 47, 46, 52, 43, 49, 56, 44, 40, 46, 35, 36, 42, 34, 45, 51, 42, 43, 49, 41, 55, 61, 52, 39, 45, 36, 44, 47, 39, 42, 48, 41, 43, 49, 41, 41, 47, 38, 52, 57, 51, 46, 51, 45, 41, 47, 40, 59, 64, 58, 42, 48, 41, 56, 62, 53, 54, 60, 51, 52, 57, 49, 69, 75, 68, 39, 44, 38, 43, 49, 43, 50, 56, 49, 53, 58, 52, 0, 0, 0, 0, 0, 0, 103, 102, 93, 153, 153, 139, 141, 141, 128, 159, 159, 143, 128, 129, 113, 133, 135, 119, 80, 80, 84, 81, 80, 89, 84, 82, 94, 93, 91, 103, 90, 88, 100, 91, 89, 101, 87, 85, 99, 91, 89, 101, 94, 94, 105, 92, 90, 102, 86, 84, 96, 90, 88, 100, 102, 101, 110, 78, 77, 84, 88, 87, 94, 87, 86, 93, 88, 87, 94, 94, 93, 100, 91, 90, 97, 85, 84, 91, 92, 91, 96, 85, 84, 91, 81, 80, 87, 79, 78, 85, 83, 81, 89, 74, 74, 76, 97, 96, 101, 123, 120, 123, 131, 128, 129, 106, 106, 104, 100, 100, 98, 77, 78, 73, 73, 74, 69, 102, 103, 98, 85, 86, 81, 82, 86, 78, 83, 87, 81, 75, 79, 71, 77, 83, 74, 89, 93, 85, 97, 103, 94, 76, 82, 73, 84, 90, 81, 81, 87, 78, 80, 83, 75, 88, 92, 84, 81, 87, 78, 87, 90, 82, 82, 86, 78, 84, 90, 81, 84, 90, 81, 83, 89, 80, 76, 82, 71, 82, 88, 79, 93, 97, 86, 87, 91, 80, 90, 94, 84, 92, 95, 85, 97, 101, 91, 97, 101, 91, 102, 104, 94, 97, 101, 91, 97, 101, 91, 116, 118, 106, 108, 110, 100, 104, 105, 96, 105, 106, 97, 116, 118, 108, 109, 111, 101, 114, 116, 106, 115, 117, 107, 113, 116, 106, 109, 113, 103, 115, 119, 108, 123, 127, 117, 117, 121, 109, 121, 125, 112, 117, 121, 109, 122, 126, 115, 118, 123, 110, 121, 125, 112, 122, 126, 113, 127, 131, 118, 128, 130, 118, 128, 130, 118, 127, 129, 115, 128, 130, 116, 131, 133, 121, 143, 145, 131, 129, 131, 117, 127, 129, 115, 135, 137, 123, 136, 138, 124, 136, 138, 124, 135, 139, 124, 138, 141, 126, 137, 140, 125, 137, 141, 128, 143, 147, 136, 2, 5, 0, 26, 29, 24, 0, 0, 0, 44, 47, 41, 13, 14, 9, 15, 18, 12, 8, 11, 5, 40, 43, 38, 95, 97, 89, 159, 162, 147, 139, 139, 125, 140, 140, 124, 146, 146, 130, 159, 159, 143, 153, 153, 137, 158, 158, 142, 170, 171, 155, 149, 150, 134, 158, 158, 142, 167, 167, 151, 158, 158, 142, 151, 151, 133, 163, 164, 146, 173, 173, 155, 180, 180, 162, 158, 158, 140, 146, 146, 128, 138, 138, 120, 152, 152, 134, 153, 154, 135, 145, 145, 127, 143, 146, 127, 130, 130, 112, 173, 177, 157, 147, 150, 130, 158, 161, 142, 144, 147, 128, 142, 145, 126, 137, 140, 121, 144, 147, 128, 143, 146, 129, 141, 143, 131, 33, 37, 29, 0, 0, 0, 0, 0, 0, 53, 57, 49, 29, 32, 24, 43, 46, 38, 62, 66, 56, 145, 149, 136, 153, 158, 143, 138, 143, 128, 126, 128, 114, 128, 131, 114, 136, 139, 122, 144, 147, 132, 137, 140, 123, 156, 159, 142, 143, 146, 129, 130, 133, 116, 145, 148, 131, 144, 147, 130, 138, 143, 128, 140, 145, 130, 135, 137, 123, 135, 139, 124, 138, 143, 128, 150, 154, 139, 144, 149, 133, 166, 171, 156, 149, 151, 137, 102, 106, 94, 45, 49, 36, 49, 56, 42, 77, 83, 72, 52, 58, 47, 45, 51, 42, 54, 60, 51, 54, 60, 51, 55, 61, 52, 67, 73, 64, 0, 0, 0, 47, 51, 43, 66, 70, 60, 35, 39, 26, 139, 143, 131, 66, 68, 58, 65, 69, 56, 59, 63, 52, 55, 61, 50, 65, 69, 56, 66, 70, 57, 51, 55, 42, 55, 59, 49, 52, 56, 46, 61, 65, 55, 61, 65, 55, 44, 48, 37, 54, 58, 48, 57, 63, 54, 57, 60, 52, 55, 59, 51, 48, 54, 45, 47, 51, 43, 58, 61, 55, 55, 59, 51, 52, 57, 49, 47, 52, 46, 47, 52, 46, 64, 70, 64, 42, 48, 41, 59, 62, 56, 53, 58, 52, 60, 68, 61, 45, 53, 46, 0, 6, 0, 0, 0, 0, 0, 0, 0, 100, 100, 89, 162, 162, 149, 146, 146, 132, 156, 153, 140, 144, 143, 130, 146, 146, 132, 135, 135, 122, 111, 108, 111, 119, 116, 120, 120, 119, 124, 112, 111, 116, 120, 119, 124, 120, 119, 126, 129, 128, 135, 125, 123, 130, 129, 128, 135, 127, 128, 134, 128, 127, 134, 127, 126, 133, 123, 122, 129, 136, 135, 142, 131, 131, 135, 129, 128, 133, 122, 121, 126, 127, 127, 129, 122, 122, 124, 121, 121, 123, 130, 130, 132, 134, 133, 136, 123, 123, 125, 115, 117, 118, 114, 114, 116, 98, 98, 98, 88, 89, 86, 85, 86, 81, 81, 83, 75, 80, 81, 74, 85, 86, 79, 69, 70, 63, 91, 92, 85, 87, 89, 81, 87, 90, 84, 85, 88, 80, 81, 84, 79, 86, 89, 81, 65, 68, 60, 78, 84, 75, 78, 84, 75, 82, 88, 79, 83, 89, 80, 76, 82, 73, 77, 83, 74, 79, 85, 77, 84, 90, 81, 78, 84, 75, 79, 85, 77, 83, 89, 80, 84, 90, 81, 82, 88, 79, 81, 87, 78, 86, 93, 82, 82, 86, 76, 97, 101, 91, 101, 105, 94, 99, 102, 92, 102, 106, 96, 82, 86, 76, 96, 100, 90, 93, 97, 86, 92, 96, 83, 107, 109, 97, 101, 103, 91, 119, 121, 109, 106, 108, 96, 116, 118, 106, 107, 109, 97, 118, 119, 110, 120, 121, 112, 115, 117, 107, 122, 126, 113, 115, 119, 108, 121, 125, 114, 117, 121, 109, 110, 114, 102, 128, 132, 119, 121, 125, 112, 124, 128, 116, 118, 123, 110, 140, 145, 132, 129, 133, 120, 129, 131, 119, 128, 130, 116, 129, 131, 119, 130, 133, 118, 125, 127, 112, 127, 129, 115, 136, 138, 124, 131, 134, 119, 138, 141, 126, 143, 145, 131, 123, 126, 111, 138, 141, 126, 132, 137, 124, 113, 117, 104, 142, 145, 135, 155, 156, 147, 36, 39, 31, 57, 60, 54, 0, 0, 0, 31, 34, 29, 0, 0, 0, 54, 57, 52, 28, 30, 27, 22, 25, 19, 28, 30, 20, 148, 150, 136, 151, 151, 135, 152, 152, 136, 149, 150, 134, 144, 144, 128, 151, 151, 135, 149, 150, 134, 159, 159, 143, 141, 141, 126, 152, 152, 136, 159, 159, 141, 166, 166, 148, 165, 165, 147, 128, 129, 111, 160, 161, 142, 131, 131, 113, 151, 154, 135, 161, 164, 145, 157, 160, 141, 152, 152, 134, 148, 148, 132, 147, 150, 130, 145, 149, 129, 154, 157, 138, 147, 150, 130, 147, 150, 130, 144, 144, 126, 144, 147, 128, 157, 160, 141, 157, 160, 141, 148, 151, 132, 142, 145, 128, 160, 165, 150, 3, 7, 0, 0, 0, 0, 0, 0, 0, 30, 33, 25, 25, 29, 21, 71, 75, 62, 89, 94, 81, 138, 143, 128, 103, 107, 95, 155, 157, 143, 143, 147, 132, 143, 145, 131, 135, 137, 123, 121, 123, 109, 134, 136, 122, 137, 140, 125, 144, 147, 132, 142, 144, 130, 164, 166, 152, 167, 171, 159, 136, 140, 127, 97, 101, 91, 45, 51, 40, 74, 80, 69, 26, 32, 21, 63, 69, 60, 45, 51, 40, 50, 57, 46, 62, 68, 57, 80, 84, 73, 55, 61, 52, 48, 54, 45, 60, 66, 57, 43, 51, 42, 56, 64, 54, 45, 54, 44, 58, 66, 57, 55, 61, 52, 30, 33, 25, 16, 19, 11, 9, 13, 2, 11, 16, 3, 99, 103, 90, 67, 71, 59, 68, 73, 60, 92, 96, 83, 64, 68, 55, 71, 75, 64, 60, 64, 52, 67, 71, 59, 61, 65, 55, 59, 63, 52, 53, 57, 47, 74, 78, 68, 67, 71, 61, 78, 81, 71, 82, 86, 76, 66, 70, 60, 78, 81, 71, 58, 62, 51, 71, 75, 64, 68, 72, 64, 59, 62, 54, 74, 78, 70, 76, 82, 73, 81, 85, 77, 69, 73, 65, 107, 110, 102, 79, 82, 76, 73, 76, 70, 22, 25, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 52, 40, 161, 161, 147, 158, 158, 144, 156, 153, 140, 159, 157, 144, 148, 148, 134, 144, 143, 130, 152, 152, 138, 125, 125, 111, 105, 105, 94, 99, 99, 88, 93, 95, 83, 84, 86, 74, 85, 87, 77, 106, 107, 100, 98, 99, 92, 88, 91, 86, 106, 107, 102, 97, 97, 93, 86, 89, 83, 90, 93, 90, 85, 87, 84, 81, 84, 79, 75, 78, 75, 83, 86, 83, 78, 81, 75, 74, 75, 70, 87, 88, 83, 83, 83, 79, 76, 76, 72, 85, 86, 81, 80, 83, 75, 82, 86, 78, 81, 84, 79, 78, 81, 73, 81, 83, 75, 76, 77, 70, 93, 95, 85, 79, 83, 72, 86, 89, 81, 86, 89, 81, 85, 86, 79, 85, 88, 80, 93, 96, 88, 79, 82, 74, 79, 82, 74, 71, 77, 68, 76, 80, 72, 82, 86, 78, 77, 83, 74, 79, 85, 77, 83, 89, 80, 53, 59, 50, 75, 81, 72, 79, 85, 77, 88, 94, 85, 78, 84, 75, 82, 88, 79, 79, 85, 77, 82, 88, 79, 82, 88, 79, 86, 92, 84, 86, 90, 79, 93, 97, 86, 83, 87, 77, 95, 99, 89, 94, 98, 87, 87, 91, 80, 99, 102, 92, 104, 109, 96, 99, 103, 90, 104, 109, 96, 97, 99, 86, 105, 107, 95, 102, 104, 92, 109, 111, 99, 114, 116, 104, 116, 118, 106, 105, 107, 95, 115, 117, 105, 114, 116, 104, 118, 120, 107, 108, 110, 98, 114, 116, 104, 120, 124, 111, 121, 125, 114, 123, 127, 114, 118, 123, 110, 121, 125, 112, 122, 124, 112, 123, 125, 113, 128, 130, 118, 125, 127, 114, 122, 124, 112, 138, 140, 128, 137, 139, 127, 136, 138, 124, 136, 138, 124, 135, 137, 123, 137, 140, 125, 143, 145, 131, 131, 134, 119, 134, 136, 122, 143, 145, 131, 138, 140, 128, 131, 135, 123, 133, 138, 125, 133, 138, 125, 44, 48, 37, 9, 12, 4, 18, 21, 16, 7, 10, 2, 0, 0, 0, 50, 53, 45, 39, 42, 37, 28, 31, 25, 66, 68, 58, 170, 170, 157, 155, 156, 140, 161, 161, 145, 146, 146, 130, 156, 157, 141, 149, 150, 134, 149, 150, 134, 146, 146, 130, 173, 173, 157, 135, 136, 120, 174, 175, 156, 138, 138, 120, 166, 166, 148, 151, 151, 133, 170, 171, 153, 157, 160, 141, 149, 152, 133, 151, 154, 135, 162, 163, 145, 154, 155, 136, 163, 166, 147, 147, 147, 131, 161, 164, 145, 151, 154, 135, 140, 143, 124, 137, 140, 121, 145, 149, 129, 141, 144, 125, 147, 150, 130, 140, 143, 124, 135, 138, 119, 137, 140, 123, 138, 143, 128, 17, 21, 13, 81, 85, 77, 0, 0, 0, 17, 21, 13, 34, 40, 29, 62, 67, 54, 88, 92, 80, 116, 120, 107, 81, 85, 72, 150, 154, 139, 130, 134, 121, 107, 111, 98, 69, 73, 63, 39, 43, 33, 42, 49, 37, 47, 51, 43, 55, 59, 49, 45, 51, 40, 55, 61, 50, 63, 70, 58, 64, 71, 60, 54, 60, 51, 60, 66, 57, 55, 61, 52, 56, 62, 53, 63, 71, 62, 69, 75, 66, 53, 59, 48, 50, 58, 49, 67, 73, 64, 57, 63, 54, 60, 66, 57, 68, 74, 65, 61, 67, 58, 71, 77, 68, 69, 75, 66, 70, 76, 67, 65, 69, 58, 61, 65, 55, 57, 61, 50, 0, 0, 0, 33, 37, 27, 111, 116, 103, 101, 103, 91, 105, 107, 95, 122, 124, 112, 89, 94, 81, 90, 95, 82, 110, 114, 102, 84, 86, 74, 83, 85, 72, 109, 111, 99, 104, 109, 96, 113, 116, 106, 124, 128, 116, 95, 99, 86, 102, 106, 96, 106, 109, 99, 121, 123, 113, 98, 99, 90, 91, 90, 82, 57, 59, 49, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 17, 8, 140, 142, 128, 9, 8, 0, 67, 67, 53, 126, 126, 112, 168, 166, 153, 163, 160, 147, 160, 158, 143, 157, 155, 140, 145, 143, 130, 151, 148, 136, 147, 147, 133, 130, 129, 116, 124, 124, 110, 122, 125, 110, 108, 105, 93, 104, 104, 90, 101, 103, 91, 106, 108, 96, 100, 102, 90, 105, 106, 97, 101, 103, 91, 94, 96, 86, 95, 97, 87, 93, 97, 86, 93, 95, 85, 90, 94, 86, 88, 92, 84, 85, 86, 79, 86, 89, 81, 90, 91, 84, 87, 91, 80, 85, 88, 78, 81, 83, 73, 88, 92, 82, 93, 94, 87, 99, 100, 93, 82, 86, 76, 81, 85, 77, 82, 86, 78, 82, 86, 76, 76, 77, 68, 87, 89, 79, 79, 81, 71, 79, 82, 74, 85, 88, 78, 78, 81, 73, 80, 83, 75, 71, 74, 66, 88, 92, 84, 82, 86, 78, 76, 80, 72, 72, 78, 70, 81, 85, 77, 78, 81, 73, 76, 80, 72, 77, 83, 74, 84, 90, 81, 83, 87, 79, 78, 84, 75, 75, 80, 74, 74, 80, 71, 81, 87, 78, 82, 88, 79, 82, 88, 79, 82, 88, 79, 88, 94, 85, 86, 92, 84, 74, 80, 71, 83, 87, 77, 93, 97, 86, 100, 104, 93, 97, 101, 91, 102, 106, 96, 100, 104, 93, 96, 100, 88, 101, 105, 92, 99, 103, 90, 106, 110, 97, 106, 108, 96, 105, 107, 95, 108, 110, 98, 107, 109, 97, 119, 121, 109, 105, 107, 95, 113, 115, 103, 114, 116, 104, 112, 114, 102, 112, 114, 102, 137, 139, 129, 126, 128, 116, 124, 128, 116, 116, 120, 107, 123, 127, 114, 117, 121, 109, 124, 128, 116, 128, 130, 118, 137, 139, 127, 133, 135, 123, 150, 152, 140, 138, 140, 128, 128, 130, 118, 131, 134, 119, 143, 145, 131, 123, 126, 111, 121, 123, 109, 131, 134, 119, 131, 134, 119, 135, 137, 123, 141, 143, 129, 136, 138, 124, 137, 140, 125, 139, 143, 131, 135, 137, 125, 101, 105, 94, 4, 8, 0, 67, 71, 63, 0, 0, 0, 0, 0, 0, 32, 36, 28, 40, 43, 38, 21, 24, 18, 164, 166, 154, 172, 175, 158, 159, 159, 143, 189, 190, 171, 162, 162, 147, 132, 132, 116, 160, 160, 144, 156, 157, 141, 158, 158, 142, 156, 157, 141, 154, 154, 138, 175, 175, 159, 134, 135, 117, 178, 179, 161, 153, 154, 135, 184, 187, 168, 161, 164, 145, 162, 165, 146, 162, 165, 146, 149, 152, 133, 137, 140, 121, 168, 171, 152, 122, 125, 108, 144, 147, 128, 143, 146, 127, 141, 144, 125, 150, 153, 134, 156, 159, 140, 141, 144, 125, 141, 144, 125, 126, 129, 110, 125, 127, 110, 138, 143, 128, 132, 137, 124, 61, 65, 57, 32, 36, 28, 0, 0, 0, 0, 0, 0, 15, 21, 13, 56, 63, 51, 67, 73, 60, 163, 170, 156, 79, 86, 72, 59, 65, 54, 59, 65, 54, 64, 71, 60, 49, 55, 46, 59, 64, 56, 91, 97, 88, 69, 75, 66, 56, 62, 53, 98, 104, 95, 57, 63, 54, 74, 80, 69, 48, 54, 45, 49, 55, 46, 74, 80, 69, 76, 82, 73, 60, 66, 57, 68, 74, 63, 72, 79, 68, 66, 71, 63, 68, 74, 63, 78, 85, 73, 71, 77, 68, 72, 78, 70, 52, 57, 49, 93, 99, 91, 73, 76, 68, 88, 92, 84, 73, 76, 68, 87, 91, 80, 88, 92, 80, 67, 71, 61, 0, 0, 0, 131, 135, 123, 116, 118, 106, 121, 123, 111, 101, 103, 91, 107, 111, 98, 93, 97, 84, 123, 127, 114, 92, 96, 83, 118, 123, 110, 113, 117, 104, 104, 106, 94, 72, 74, 62, 11, 15, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 10, 71, 71, 60, 94, 93, 80, 141, 138, 125, 161, 159, 144, 147, 145, 132, 147, 145, 130, 164, 162, 147, 149, 147, 131, 152, 150, 135, 167, 165, 150, 159, 157, 142, 144, 142, 127, 150, 147, 134, 143, 140, 128, 129, 126, 114, 149, 146, 133, 147, 145, 134, 102, 101, 90, 100, 100, 87, 92, 92, 79, 101, 103, 91, 99, 101, 89, 90, 92, 80, 99, 100, 91, 101, 103, 93, 90, 91, 82, 97, 98, 89, 90, 94, 84, 109, 111, 103, 81, 85, 77, 73, 76, 68, 81, 85, 77, 81, 85, 75, 78, 81, 71, 92, 95, 85, 83, 84, 75, 82, 86, 76, 87, 91, 80, 83, 87, 77, 81, 83, 73, 86, 90, 79, 72, 76, 65, 85, 88, 78, 83, 87, 77, 87, 91, 80, 82, 86, 76, 80, 84, 73, 79, 83, 72, 79, 83, 72, 79, 82, 74, 78, 81, 73, 86, 89, 81, 75, 79, 71, 78, 81, 73, 81, 85, 77, 78, 81, 73, 75, 79, 71, 81, 85, 77, 78, 81, 73, 74, 78, 70, 82, 86, 78, 80, 83, 75, 77, 83, 74, 79, 85, 79, 85, 91, 82, 79, 85, 77, 81, 87, 78, 83, 89, 80, 85, 88, 80, 96, 100, 92, 95, 99, 89, 83, 87, 77, 90, 94, 84, 86, 90, 79, 94, 98, 87, 99, 102, 92, 92, 95, 85, 90, 94, 84, 95, 99, 89, 103, 107, 95, 107, 109, 97, 104, 109, 96, 109, 111, 99, 106, 108, 96, 111, 113, 100, 112, 114, 102, 109, 111, 99, 113, 115, 103, 114, 116, 104, 116, 118, 106, 114, 116, 104, 119, 120, 111, 115, 117, 107, 119, 121, 109, 118, 120, 107, 122, 124, 112, 121, 125, 112, 116, 120, 107, 121, 123, 111, 140, 142, 129, 123, 125, 113, 131, 133, 121, 155, 157, 145, 115, 117, 105, 138, 140, 128, 137, 139, 127, 141, 143, 129, 142, 144, 130, 135, 137, 123, 133, 135, 121, 135, 137, 123, 137, 140, 125, 135, 137, 123, 144, 147, 132, 140, 142, 128, 141, 143, 131, 146, 150, 138, 151, 155, 142, 22, 25, 17, 55, 59, 51, 0, 0, 0, 130, 133, 126, 48, 49, 42, 26, 29, 24, 40, 43, 38, 173, 175, 163, 175, 177, 160, 152, 152, 136, 165, 165, 149, 137, 137, 121, 159, 159, 143, 155, 156, 140, 160, 160, 144, 177, 178, 162, 144, 144, 126, 154, 155, 136, 159, 163, 143, 162, 165, 146, 136, 139, 120, 150, 153, 134, 144, 147, 128, 137, 140, 121, 154, 157, 138, 154, 157, 138, 153, 156, 136, 135, 138, 119, 168, 171, 152, 157, 160, 143, 149, 154, 136, 158, 163, 147, 147, 154, 138, 141, 148, 132, 125, 132, 118, 106, 113, 99, 93, 97, 84, 69, 75, 64, 43, 50, 39, 43, 50, 39, 57, 60, 52, 43, 49, 41, 4, 10, 1, 89, 93, 85, 0, 0, 0, 28, 31, 21, 88, 94, 83, 129, 136, 123, 69, 75, 64, 67, 73, 62, 60, 66, 55, 70, 77, 65, 60, 66, 55, 77, 83, 74, 75, 81, 72, 56, 63, 51, 86, 92, 84, 59, 65, 54, 75, 81, 70, 136, 143, 132, 71, 78, 66, 82, 88, 79, 93, 96, 88, 69, 73, 65, 71, 74, 66, 65, 68, 60, 62, 68, 57, 81, 87, 78, 87, 90, 82, 80, 83, 75, 97, 101, 91, 92, 99, 87, 92, 95, 87, 87, 90, 82, 86, 90, 79, 96, 100, 90, 109, 111, 103, 108, 110, 100, 117, 121, 111, 103, 107, 97, 105, 106, 99, 0, 0, 0, 11, 15, 5, 71, 73, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 25, 15, 69, 71, 59, 107, 109, 97, 146, 145, 134, 150, 147, 136, 147, 145, 134, 150, 147, 136, 139, 138, 127, 142, 139, 126, 137, 135, 122, 173, 171, 158, 168, 167, 149, 150, 148, 130, 131, 129, 112, 146, 145, 127, 139, 138, 120, 159, 158, 140, 163, 161, 143, 161, 159, 144, 146, 144, 129, 156, 154, 138, 168, 166, 151, 142, 139, 126, 158, 155, 145, 147, 145, 134, 142, 139, 128, 123, 121, 108, 127, 124, 113, 131, 128, 118, 113, 113, 100, 104, 104, 90, 106, 108, 94, 98, 100, 88, 95, 97, 85, 94, 96, 84, 92, 94, 84, 107, 109, 99, 90, 91, 82, 90, 91, 82, 90, 91, 84, 102, 104, 94, 87, 90, 82, 69, 73, 65, 96, 100, 92, 86, 90, 79, 85, 87, 77, 84, 85, 76, 81, 83, 73, 87, 89, 79, 83, 84, 75, 69, 73, 63, 88, 90, 80, 79, 83, 72, 79, 83, 72, 80, 84, 73, 81, 85, 75, 69, 73, 63, 81, 85, 75, 80, 84, 73, 78, 81, 71, 79, 82, 74, 83, 87, 79, 76, 80, 72, 76, 80, 72, 76, 82, 73, 81, 85, 77, 73, 76, 68, 82, 86, 78, 80, 83, 75, 79, 82, 74, 81, 85, 77, 71, 74, 66, 80, 83, 75, 83, 87, 79, 66, 69, 62, 79, 85, 77, 81, 87, 78, 76, 82, 73, 79, 85, 77, 81, 87, 78, 89, 93, 85, 85, 88, 80, 88, 92, 82, 90, 94, 84, 94, 98, 87, 88, 92, 82, 94, 98, 87, 93, 97, 86, 102, 106, 96, 102, 106, 96, 101, 105, 94, 111, 112, 103, 104, 106, 94, 107, 111, 100, 108, 110, 98, 101, 103, 91, 108, 110, 98, 121, 123, 111, 112, 114, 102, 115, 117, 105, 118, 120, 107, 112, 114, 102, 114, 116, 104, 116, 118, 108, 114, 116, 104, 119, 121, 109, 120, 122, 110, 131, 133, 121, 122, 126, 113, 121, 125, 112, 136, 140, 127, 126, 128, 116, 133, 135, 123, 134, 136, 124, 125, 127, 114, 128, 130, 118, 134, 136, 124, 134, 136, 124, 127, 129, 117, 137, 140, 125, 141, 143, 129, 141, 143, 129, 140, 142, 128, 134, 136, 122, 130, 133, 118, 148, 150, 136, 140, 142, 128, 133, 135, 123, 131, 133, 121, 153, 155, 142, 4, 8, 0, 7, 10, 2, 2, 4, 0, 18, 22, 14, 54, 58, 50, 17, 20, 15, 39, 43, 35, 86, 90, 79, 125, 127, 112, 152, 152, 136, 191, 192, 174, 155, 156, 140, 151, 151, 135, 160, 161, 142, 161, 161, 145, 168, 168, 152, 174, 175, 156, 161, 164, 145, 165, 168, 149, 157, 160, 141, 172, 175, 156, 153, 159, 139, 164, 169, 149, 150, 155, 137, 150, 154, 139, 170, 174, 159, 158, 163, 147, 135, 139, 124, 101, 105, 92, 90, 97, 83, 71, 78, 66, 36, 43, 32, 52, 57, 49, 50, 57, 46, 47, 53, 42, 41, 47, 38, 54, 60, 51, 55, 61, 52, 70, 76, 67, 59, 64, 56, 67, 71, 63, 51, 54, 46, 53, 57, 49, 33, 37, 29, 0, 0, 0, 31, 35, 27, 75, 79, 69, 79, 86, 75, 82, 88, 77, 95, 101, 90, 90, 96, 85, 112, 118, 107, 82, 88, 77, 64, 70, 62, 70, 77, 65, 71, 78, 66, 72, 78, 70, 105, 111, 102, 70, 77, 65, 71, 77, 68, 84, 90, 81, 86, 92, 84, 85, 88, 80, 97, 101, 93, 100, 103, 95, 109, 113, 105, 100, 103, 95, 93, 96, 88, 93, 96, 88, 95, 97, 89, 144, 147, 139, 75, 79, 71, 107, 110, 102, 89, 93, 85, 55, 56, 49, 8, 9, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 66, 57, 80, 79, 70, 124, 123, 116, 137, 136, 127, 133, 132, 124, 156, 156, 147, 146, 145, 136, 154, 154, 142, 153, 152, 141, 149, 149, 138, 163, 160, 149, 138, 135, 125, 155, 152, 141, 139, 133, 124, 143, 140, 129, 136, 133, 123, 141, 138, 127, 136, 131, 121, 131, 128, 118, 137, 135, 122, 142, 139, 126, 149, 146, 133, 130, 128, 115, 143, 140, 128, 144, 141, 129, 142, 139, 126, 127, 124, 111, 137, 135, 122, 137, 135, 122, 129, 126, 116, 125, 123, 112, 134, 131, 120, 144, 141, 131, 157, 154, 144, 165, 162, 152, 164, 161, 151, 150, 147, 136, 101, 98, 90, 29, 26, 18, 104, 106, 90, 92, 94, 80, 100, 102, 90, 99, 101, 89, 101, 103, 91, 98, 100, 88, 95, 99, 89, 89, 93, 83, 87, 89, 79, 88, 92, 82, 87, 91, 80, 89, 93, 85, 80, 84, 73, 90, 94, 84, 89, 93, 83, 85, 87, 77, 74, 76, 66, 93, 95, 85, 88, 90, 80, 83, 84, 75, 81, 83, 73, 80, 84, 73, 83, 87, 77, 83, 87, 77, 76, 80, 70, 75, 79, 69, 82, 86, 76, 88, 92, 82, 81, 85, 75, 74, 78, 68, 79, 83, 72, 71, 74, 66, 74, 78, 70, 75, 81, 72, 72, 75, 67, 74, 80, 71, 72, 78, 70, 78, 81, 73, 74, 78, 70, 80, 83, 75, 79, 82, 74, 76, 80, 72, 79, 82, 74, 80, 83, 75, 74, 78, 70, 78, 84, 75, 75, 81, 72, 82, 88, 79, 79, 85, 77, 79, 85, 77, 84, 90, 81, 83, 87, 79, 87, 91, 80, 90, 94, 84, 88, 92, 82, 95, 99, 89, 92, 95, 85, 104, 108, 98, 94, 98, 85, 95, 99, 89, 106, 108, 96, 100, 104, 93, 99, 102, 92, 99, 100, 91, 105, 106, 97, 109, 111, 101, 114, 116, 104, 109, 111, 101, 114, 116, 106, 111, 113, 100, 118, 120, 107, 114, 116, 104, 111, 113, 100, 122, 124, 112, 119, 121, 109, 120, 122, 110, 116, 118, 106, 114, 116, 104, 116, 120, 107, 122, 126, 113, 123, 125, 113, 123, 127, 114, 127, 131, 118, 129, 131, 119, 136, 138, 126, 131, 133, 121, 133, 135, 123, 137, 139, 127, 128, 130, 116, 135, 137, 123, 142, 144, 130, 138, 141, 126, 138, 141, 126, 141, 143, 129, 142, 144, 130, 137, 140, 125, 138, 141, 126, 135, 137, 123, 135, 137, 125, 141, 143, 131, 15, 19, 8, 15, 18, 10, 51, 54, 46, 2, 4, 0, 21, 24, 16, 24, 28, 20, 42, 45, 37, 87, 91, 80, 76, 78, 65, 175, 175, 159, 149, 150, 134, 176, 176, 160, 137, 137, 121, 156, 157, 141, 165, 165, 149, 155, 156, 140, 184, 186, 172, 159, 162, 147, 168, 170, 156, 151, 156, 140, 109, 114, 98, 90, 95, 80, 79, 86, 72, 64, 71, 57, 67, 73, 62, 53, 59, 48, 56, 63, 51, 48, 56, 46, 56, 64, 54, 42, 48, 39, 63, 70, 58, 51, 59, 50, 59, 64, 56, 47, 53, 44, 62, 70, 60, 54, 60, 51, 50, 56, 48, 53, 59, 50, 120, 126, 117, 80, 83, 75, 132, 136, 126, 93, 100, 89, 62, 66, 58, 72, 76, 65, 0, 0, 0, 0, 0, 0, 81, 87, 76, 111, 117, 106, 75, 81, 70, 93, 100, 89, 75, 81, 70, 73, 77, 66, 108, 112, 101, 88, 94, 85, 92, 98, 89, 120, 126, 117, 91, 97, 86, 79, 85, 77, 98, 104, 95, 90, 96, 87, 88, 94, 85, 76, 82, 73, 103, 109, 100, 106, 109, 101, 92, 95, 87, 71, 74, 68, 28, 31, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 57, 51, 122, 123, 116, 162, 161, 155, 161, 159, 156, 159, 157, 153, 151, 149, 145, 163, 162, 158, 171, 167, 162, 139, 136, 130, 156, 152, 147, 160, 157, 151, 146, 143, 137, 156, 152, 147, 128, 127, 121, 173, 169, 164, 149, 145, 137, 127, 123, 115, 160, 157, 149, 155, 151, 143, 149, 145, 137, 150, 147, 139, 159, 156, 148, 133, 127, 120, 123, 120, 110, 129, 126, 118, 130, 127, 117, 134, 131, 120, 124, 121, 113, 127, 124, 113, 122, 119, 109, 130, 127, 117, 151, 148, 138, 178, 175, 164, 152, 149, 141, 75, 72, 64, 32, 29, 21, 0, 0, 0, 40, 37, 29, 71, 67, 62, 36, 32, 27, 42, 38, 32, 161, 158, 154, 147, 143, 140, 202, 199, 193, 236, 232, 227, 222, 219, 211, 221, 218, 210, 223, 220, 212, 95, 98, 83, 98, 100, 88, 104, 106, 94, 100, 102, 90, 91, 92, 83, 98, 99, 90, 93, 97, 86, 93, 97, 86, 92, 95, 85, 83, 87, 79, 87, 91, 80, 87, 91, 80, 89, 93, 85, 87, 91, 80, 98, 99, 90, 86, 88, 78, 91, 92, 83, 87, 89, 79, 84, 85, 76, 82, 86, 76, 82, 86, 76, 85, 88, 78, 78, 81, 71, 83, 87, 77, 94, 98, 87, 75, 79, 69, 83, 87, 77, 71, 75, 64, 79, 83, 72, 82, 86, 76, 72, 76, 65, 69, 75, 64, 64, 70, 62, 75, 81, 72, 69, 75, 66, 75, 79, 71, 63, 69, 60, 89, 93, 85, 75, 79, 71, 79, 82, 74, 83, 87, 79, 83, 87, 79, 75, 79, 71, 72, 75, 67, 87, 90, 82, 81, 87, 78, 71, 77, 68, 75, 81, 72, 84, 90, 81, 86, 92, 84, 82, 88, 79, 110, 116, 105, 86, 92, 84, 88, 92, 82, 86, 89, 81, 97, 101, 93, 87, 91, 80, 89, 93, 83, 92, 95, 85, 110, 114, 104, 106, 109, 99, 103, 107, 97, 100, 104, 93, 101, 103, 93, 106, 108, 98, 105, 106, 97, 102, 104, 94, 115, 117, 107, 112, 113, 104, 108, 110, 100, 116, 118, 108, 116, 118, 108, 117, 121, 111, 118, 119, 110, 116, 118, 108, 118, 119, 110, 123, 125, 113, 127, 129, 117, 128, 130, 118, 123, 125, 113, 130, 132, 120, 126, 128, 116, 127, 129, 117, 131, 133, 121, 133, 135, 123, 151, 153, 141, 141, 143, 129, 131, 134, 119, 131, 134, 119, 155, 157, 145, 142, 144, 130, 135, 137, 123, 140, 142, 128, 128, 130, 116, 148, 150, 136, 142, 144, 130, 141, 143, 129, 143, 145, 131, 145, 147, 135, 131, 133, 121, 50, 54, 43, 12, 16, 8, 35, 38, 30, 0, 0, 0, 0, 0, 0, 40, 44, 36, 39, 43, 35, 90, 94, 86, 42, 43, 34, 207, 209, 197, 191, 192, 176, 175, 175, 161, 166, 166, 152, 135, 135, 122, 91, 93, 81, 45, 47, 35, 51, 55, 44, 59, 63, 52, 59, 63, 52, 41, 47, 36, 48, 54, 43, 72, 79, 68, 50, 56, 48, 62, 68, 57, 56, 62, 53, 55, 61, 52, 59, 64, 56, 61, 67, 58, 56, 62, 53, 59, 65, 54, 61, 67, 56, 68, 74, 63, 53, 59, 48, 64, 71, 60, 72, 79, 68, 71, 78, 66, 66, 72, 61, 90, 94, 84, 72, 76, 65, 109, 113, 103, 85, 88, 78, 109, 113, 103, 93, 97, 86, 92, 95, 85, 19, 23, 13, 0, 0, 0, 114, 118, 107, 116, 120, 110, 125, 129, 119, 117, 123, 112, 109, 113, 103, 89, 95, 84, 109, 115, 104, 99, 102, 94, 82, 88, 79, 76, 80, 72, 26, 32, 23, 31, 35, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 91, 90, 86, 139, 138, 131, 157, 153, 148, 143, 139, 134, 151, 147, 142, 153, 150, 144, 153, 146, 142, 152, 149, 143, 131, 128, 122, 144, 142, 136, 144, 142, 136, 149, 148, 142, 150, 146, 143, 142, 141, 137, 153, 149, 148, 157, 152, 152, 141, 137, 133, 145, 141, 138, 150, 146, 143, 151, 147, 144, 139, 135, 134, 166, 162, 161, 142, 137, 136, 142, 137, 136, 144, 139, 139, 137, 133, 130, 132, 128, 125, 130, 126, 123, 139, 135, 132, 142, 138, 132, 170, 166, 159, 177, 174, 163, 110, 108, 95, 44, 41, 29, 0, 0, 0, 220, 218, 202, 106, 101, 87, 102, 99, 89, 196, 190, 185, 252, 249, 243, 245, 242, 236, 249, 245, 240, 242, 238, 233, 233, 229, 223, 236, 232, 227, 229, 225, 222, 235, 231, 228, 235, 231, 228, 233, 229, 225, 234, 230, 226, 233, 229, 225, 227, 223, 220, 233, 229, 225, 231, 227, 224, 227, 223, 218, 224, 221, 215, 221, 217, 212, 108, 112, 99, 105, 107, 95, 99, 101, 89, 100, 102, 90, 97, 101, 91, 89, 93, 83, 97, 101, 91, 89, 93, 83, 87, 90, 82, 85, 88, 80, 90, 91, 84, 82, 86, 78, 91, 92, 85, 87, 89, 81, 88, 90, 80, 80, 82, 72, 79, 83, 72, 82, 86, 76, 80, 82, 72, 80, 84, 73, 69, 70, 61, 60, 62, 52, 76, 80, 70, 74, 78, 68, 73, 75, 65, 80, 84, 73, 80, 84, 73, 73, 77, 66, 71, 75, 64, 74, 78, 68, 81, 85, 75, 64, 67, 59, 101, 104, 96, 82, 86, 78, 68, 74, 65, 71, 77, 68, 75, 79, 71, 76, 82, 73, 89, 93, 85, 81, 85, 77, 82, 86, 78, 76, 80, 72, 74, 78, 70, 80, 83, 75, 81, 85, 77, 82, 86, 78, 81, 85, 77, 85, 88, 80, 78, 84, 75, 90, 96, 87, 89, 95, 86, 92, 98, 89, 85, 91, 82, 88, 94, 83, 90, 96, 87, 86, 89, 81, 94, 98, 87, 100, 104, 93, 107, 111, 100, 100, 104, 93, 101, 105, 94, 100, 104, 93, 104, 108, 98, 106, 109, 99, 107, 111, 98, 114, 116, 104, 113, 114, 105, 111, 112, 103, 113, 115, 103, 115, 117, 107, 112, 113, 104, 118, 122, 112, 118, 122, 112, 122, 124, 114, 123, 125, 115, 119, 121, 109, 136, 138, 126, 123, 125, 113, 116, 118, 106, 126, 128, 116, 126, 128, 116, 127, 129, 117, 133, 135, 123, 125, 130, 117, 133, 135, 123, 134, 136, 122, 131, 134, 119, 141, 143, 129, 127, 129, 115, 136, 138, 124, 131, 134, 119, 143, 145, 131, 137, 140, 125, 147, 149, 134, 143, 145, 131, 138, 141, 126, 143, 145, 131, 143, 145, 131, 140, 142, 128, 144, 147, 132, 103, 107, 97, 17, 21, 13, 48, 52, 44, 0, 0, 0, 4, 8, 0, 101, 104, 96, 44, 47, 39, 87, 91, 80, 140, 141, 132, 66, 68, 58, 56, 57, 48, 64, 66, 56, 57, 61, 50, 61, 65, 57, 44, 48, 37, 67, 71, 63, 48, 54, 45, 55, 61, 52, 78, 85, 73, 55, 61, 52, 66, 71, 63, 61, 67, 56, 84, 91, 79, 52, 58, 47, 48, 54, 43, 48, 54, 43, 66, 72, 61, 68, 74, 63, 60, 66, 55, 69, 75, 64, 71, 78, 66, 69, 75, 64, 68, 74, 63, 81, 87, 76, 85, 92, 80, 76, 82, 71, 95, 101, 90, 76, 80, 70, 90, 94, 84, 97, 101, 91, 107, 111, 100, 108, 112, 101, 111, 115, 105, 83, 87, 77, 89, 93, 83, 0, 0, 0, 36, 40, 29, 72, 76, 65, 29, 33, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 6, 0, 103, 101, 95, 147, 146, 139, 152, 150, 146, 151, 149, 145, 123, 121, 117, 152, 150, 146, 134, 133, 129, 155, 151, 147, 145, 141, 138, 139, 135, 132, 156, 150, 147, 144, 138, 136, 155, 149, 146, 147, 140, 138, 148, 142, 137, 150, 144, 139, 139, 132, 130, 143, 139, 136, 145, 141, 138, 147, 143, 140, 144, 140, 137, 141, 136, 135, 135, 130, 129, 149, 144, 143, 141, 136, 135, 142, 137, 136, 136, 131, 131, 146, 142, 141, 152, 148, 145, 190, 186, 182, 180, 176, 173, 113, 109, 105, 32, 30, 26, 52, 48, 45, 58, 54, 49, 25, 22, 14, 186, 183, 171, 200, 197, 187, 250, 246, 241, 227, 221, 216, 233, 229, 223, 225, 222, 216, 215, 211, 206, 222, 218, 213, 228, 224, 219, 224, 220, 217, 220, 216, 212, 221, 217, 214, 223, 219, 216, 224, 220, 217, 213, 209, 205, 235, 231, 228, 234, 230, 226, 233, 229, 225, 235, 231, 228, 228, 224, 221, 231, 227, 224, 230, 226, 223, 229, 225, 222, 231, 227, 224, 230, 226, 223, 229, 225, 222, 225, 222, 218, 228, 224, 219, 227, 223, 218, 102, 106, 94, 106, 108, 96, 94, 98, 87, 97, 102, 89, 96, 100, 90, 92, 95, 85, 90, 94, 86, 87, 90, 82, 87, 90, 82, 89, 93, 85, 85, 88, 80, 88, 92, 84, 86, 87, 80, 84, 85, 78, 84, 85, 78, 76, 77, 68, 80, 82, 72, 87, 89, 79, 84, 85, 76, 83, 84, 75, 80, 82, 72, 80, 82, 72, 80, 82, 72, 74, 78, 68, 66, 68, 58, 74, 78, 68, 88, 90, 80, 85, 87, 77, 74, 78, 68, 73, 75, 65, 74, 78, 68, 80, 83, 75, 72, 78, 70, 77, 83, 74, 78, 81, 73, 68, 74, 65, 75, 81, 72, 73, 76, 68, 75, 79, 71, 78, 81, 73, 75, 79, 71, 87, 90, 82, 87, 90, 82, 80, 83, 75, 89, 93, 85, 88, 92, 84, 82, 86, 78, 85, 88, 80, 78, 84, 75, 86, 92, 84, 84, 90, 81, 76, 82, 73, 84, 90, 81, 91, 97, 88, 90, 94, 84, 92, 95, 85, 93, 97, 86, 97, 101, 91, 97, 101, 91, 97, 101, 91, 99, 102, 92, 100, 104, 93, 106, 109, 99, 94, 98, 87, 110, 114, 102, 104, 109, 96, 107, 109, 97, 113, 115, 103, 113, 114, 105, 107, 109, 99, 112, 113, 104, 121, 123, 113, 120, 121, 112, 120, 121, 112, 115, 117, 107, 126, 128, 116, 128, 130, 118, 128, 130, 118, 133, 135, 123, 128, 130, 118, 130, 132, 120, 131, 133, 121, 131, 133, 121, 127, 129, 115, 134, 136, 124, 136, 138, 124, 130, 133, 118, 149, 151, 137, 119, 121, 107, 125, 127, 112, 135, 137, 123, 149, 151, 137, 150, 153, 138, 168, 170, 156, 154, 156, 142, 150, 153, 138, 144, 147, 132, 130, 133, 118, 124, 129, 114, 138, 140, 128, 114, 118, 107, 7, 10, 0, 65, 66, 59, 0, 0, 0, 2, 4, 0, 58, 61, 53, 50, 53, 45, 71, 73, 63, 73, 75, 65, 51, 55, 44, 55, 59, 51, 61, 65, 55, 83, 87, 77, 62, 66, 56, 61, 65, 57, 62, 68, 59, 55, 61, 52, 78, 85, 73, 103, 109, 98, 67, 73, 62, 59, 65, 54, 92, 99, 85, 74, 80, 69, 93, 100, 86, 120, 123, 113, 75, 79, 69, 92, 99, 87, 82, 88, 77, 155, 161, 150, 90, 97, 83, 103, 110, 96, 93, 100, 86, 114, 118, 105, 89, 94, 81, 86, 93, 82, 114, 118, 107, 81, 85, 75, 103, 107, 97, 87, 91, 80, 88, 92, 82, 23, 27, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 91, 85, 149, 148, 140, 159, 158, 149, 170, 169, 163, 133, 132, 126, 165, 161, 156, 178, 177, 171, 141, 137, 131, 159, 156, 150, 173, 169, 166, 142, 138, 134, 144, 140, 137, 134, 130, 126, 139, 135, 134, 142, 137, 136, 146, 139, 139, 136, 130, 128, 132, 125, 123, 134, 130, 126, 140, 133, 131, 142, 135, 135, 149, 143, 140, 161, 154, 152, 175, 169, 164, 139, 133, 128, 144, 138, 134, 129, 125, 120, 158, 154, 149, 174, 171, 165, 138, 134, 131, 37, 33, 30, 39, 35, 32, 18, 14, 13, 15, 10, 10, 82, 78, 79, 168, 164, 165, 235, 230, 232, 251, 246, 250, 241, 239, 240, 243, 238, 242, 238, 236, 236, 236, 233, 234, 238, 234, 235, 213, 208, 209, 235, 230, 232, 221, 216, 218, 227, 222, 223, 220, 215, 214, 234, 229, 230, 225, 221, 220, 225, 223, 222, 228, 223, 223, 225, 222, 218, 223, 219, 216, 229, 225, 222, 224, 220, 217, 231, 227, 224, 228, 224, 221, 219, 215, 209, 224, 220, 217, 229, 225, 222, 236, 232, 229, 234, 230, 226, 234, 230, 226, 231, 227, 224, 233, 229, 225, 228, 224, 221, 230, 226, 223, 231, 227, 224, 230, 226, 223, 229, 225, 222, 229, 225, 222, 222, 218, 215, 219, 215, 211, 105, 106, 97, 100, 102, 92, 96, 100, 90, 100, 104, 93, 102, 106, 96, 104, 108, 100, 92, 95, 87, 94, 96, 88, 90, 94, 86, 87, 89, 81, 87, 89, 81, 86, 88, 78, 84, 85, 78, 87, 89, 81, 81, 83, 75, 87, 89, 79, 88, 90, 82, 79, 81, 71, 90, 91, 82, 91, 92, 83, 75, 79, 69, 81, 83, 73, 73, 75, 65, 71, 75, 64, 72, 74, 64, 68, 72, 62, 69, 70, 61, 87, 89, 79, 48, 52, 42, 76, 77, 68, 68, 72, 64, 71, 74, 66, 71, 74, 66, 68, 72, 64, 68, 72, 64, 83, 87, 79, 72, 75, 67, 97, 101, 93, 78, 81, 73, 80, 83, 75, 79, 82, 74, 81, 85, 77, 78, 81, 73, 82, 86, 78, 83, 87, 79, 87, 90, 82, 74, 78, 70, 81, 85, 77, 81, 87, 78, 83, 87, 79, 83, 89, 80, 83, 89, 80, 91, 97, 88, 97, 101, 93, 93, 96, 88, 92, 95, 87, 100, 103, 95, 90, 94, 86, 94, 98, 87, 97, 101, 91, 102, 106, 96, 102, 106, 96, 103, 107, 97, 102, 104, 94, 98, 100, 88, 111, 112, 103, 101, 103, 91, 112, 114, 102, 113, 114, 105, 113, 115, 103, 113, 114, 105, 123, 125, 115, 121, 123, 111, 116, 118, 108, 127, 127, 116, 118, 117, 106, 100, 102, 90, 138, 137, 126, 128, 130, 118, 137, 136, 123, 126, 128, 114, 145, 147, 135, 168, 168, 154, 164, 166, 152, 169, 171, 157, 178, 178, 165, 182, 184, 169, 158, 161, 146, 158, 161, 146, 128, 130, 116, 127, 129, 115, 113, 115, 101, 102, 105, 90, 91, 93, 79, 102, 105, 90, 69, 71, 57, 79, 81, 67, 88, 90, 78, 79, 81, 69, 90, 92, 80, 73, 77, 66, 65, 69, 58, 31, 35, 25, 45, 48, 41, 0, 0, 0, 48, 49, 42, 75, 79, 69, 105, 107, 95, 63, 65, 53, 63, 65, 53, 64, 68, 57, 92, 95, 85, 66, 70, 60, 69, 73, 63, 72, 76, 65, 63, 70, 58, 61, 67, 56, 78, 85, 73, 57, 64, 52, 68, 74, 63, 90, 96, 85, 96, 102, 91, 114, 121, 107, 99, 103, 90, 117, 121, 109, 116, 120, 107, 94, 98, 85, 86, 93, 80, 86, 93, 80, 68, 75, 61, 96, 102, 89, 136, 143, 129, 70, 77, 65, 14, 21, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 23, 13, 148, 149, 140, 170, 169, 161, 154, 153, 145, 169, 168, 160, 193, 190, 182, 167, 166, 157, 138, 135, 127, 149, 145, 137, 153, 152, 143, 163, 162, 154, 146, 143, 135, 147, 144, 138, 142, 138, 132, 145, 142, 136, 157, 153, 150, 155, 150, 149, 147, 143, 140, 128, 123, 123, 141, 136, 135, 134, 129, 128, 131, 127, 126, 131, 127, 126, 136, 129, 129, 131, 126, 128, 130, 124, 124, 126, 119, 119, 157, 151, 149, 191, 185, 182, 143, 137, 134, 16, 11, 4, 137, 115, 100, 33, 19, 8, 124, 116, 110, 153, 146, 144, 206, 201, 200, 251, 247, 246, 255, 251, 251, 248, 243, 244, 237, 232, 234, 236, 231, 233, 240, 235, 236, 240, 235, 236, 223, 220, 221, 237, 234, 235, 235, 230, 234, 213, 207, 211, 224, 221, 224, 233, 230, 234, 239, 236, 239, 242, 237, 241, 255, 255, 255, 209, 204, 206, 218, 216, 216, 232, 230, 230, 223, 220, 221, 231, 229, 227, 211, 209, 207, 212, 210, 209, 220, 218, 217, 224, 222, 218, 217, 215, 211, 218, 216, 212, 220, 216, 212, 217, 213, 210, 230, 226, 223, 228, 224, 221, 228, 224, 221, 229, 225, 222, 231, 227, 224, 233, 229, 225, 233, 229, 225, 233, 229, 225, 230, 226, 223, 230, 226, 223, 231, 227, 224, 223, 219, 216, 227, 223, 220, 222, 218, 215, 223, 219, 216, 225, 222, 218, 221, 217, 214, 106, 109, 101, 96, 100, 92, 90, 94, 86, 97, 101, 93, 93, 97, 86, 93, 96, 88, 90, 91, 84, 87, 90, 82, 89, 93, 85, 90, 91, 84, 81, 83, 75, 88, 90, 82, 84, 85, 78, 81, 83, 75, 84, 85, 78, 80, 81, 74, 85, 86, 79, 78, 80, 70, 80, 82, 72, 73, 75, 65, 78, 80, 70, 76, 77, 68, 79, 81, 71, 80, 82, 72, 73, 75, 65, 79, 81, 71, 81, 83, 73, 83, 84, 75, 82, 86, 76, 86, 87, 80, 73, 76, 68, 76, 80, 72, 74, 78, 70, 75, 79, 71, 72, 75, 67, 71, 74, 66, 78, 81, 73, 75, 79, 71, 80, 83, 75, 61, 65, 57, 74, 78, 70, 79, 82, 74, 76, 80, 72, 75, 79, 69, 85, 88, 78, 79, 82, 74, 78, 84, 75, 82, 88, 79, 83, 89, 80, 81, 85, 77, 82, 88, 79, 86, 92, 84, 86, 92, 84, 86, 92, 84, 94, 98, 87, 94, 98, 87, 96, 100, 90, 96, 100, 90, 93, 97, 86, 101, 105, 94, 101, 103, 93, 95, 97, 87, 102, 104, 94, 104, 105, 96, 107, 109, 99, 108, 110, 98, 113, 115, 103, 120, 122, 110, 105, 107, 95, 129, 131, 119, 130, 129, 118, 128, 128, 117, 156, 156, 145, 165, 164, 153, 156, 156, 143, 147, 147, 133, 171, 171, 158, 178, 178, 165, 146, 146, 132, 147, 147, 133, 123, 123, 109, 146, 146, 132, 123, 123, 109, 106, 106, 95, 99, 99, 86, 105, 105, 92, 79, 81, 69, 84, 86, 72, 102, 105, 90, 86, 89, 74, 83, 85, 70, 83, 85, 70, 91, 93, 79, 73, 75, 63, 101, 103, 91, 100, 102, 88, 87, 89, 77, 85, 87, 75, 88, 90, 78, 78, 80, 68, 76, 80, 70, 93, 97, 86, 47, 51, 41, 51, 55, 44, 0, 0, 0, 73, 77, 66, 121, 123, 113, 102, 104, 92, 74, 76, 64, 100, 102, 90, 75, 80, 67, 74, 78, 65, 111, 116, 103, 113, 117, 104, 111, 116, 103, 92, 96, 83, 95, 99, 89, 119, 126, 112, 100, 107, 94, 111, 118, 104, 105, 112, 98, 112, 119, 103, 116, 121, 105, 107, 111, 98, 119, 121, 109, 106, 110, 97, 37, 41, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 125, 113, 145, 144, 133, 153, 152, 141, 158, 156, 143, 191, 188, 175, 182, 180, 167, 167, 165, 152, 178, 175, 164, 160, 158, 147, 174, 171, 161, 145, 142, 134, 159, 156, 148, 146, 143, 135, 153, 150, 142, 170, 166, 160, 143, 139, 134, 156, 152, 147, 145, 142, 136, 145, 141, 140, 146, 141, 143, 147, 142, 146, 136, 131, 133, 144, 139, 139, 144, 139, 139, 143, 138, 138, 143, 138, 138, 182, 178, 177, 172, 168, 167, 63, 58, 57, 7, 2, 1, 54, 50, 49, 17, 13, 12, 104, 100, 99, 219, 212, 214, 248, 241, 241, 252, 245, 245, 245, 238, 238, 240, 233, 235, 238, 231, 231, 238, 230, 233, 235, 228, 228, 242, 235, 235, 241, 236, 237, 237, 232, 234, 236, 232, 231, 240, 235, 236, 238, 234, 235, 241, 236, 237, 240, 234, 238, 240, 234, 238, 240, 234, 238, 238, 235, 238, 237, 234, 237, 237, 234, 237, 242, 240, 243, 242, 240, 243, 239, 237, 237, 234, 232, 233, 237, 234, 235, 234, 232, 233, 237, 234, 235, 225, 223, 223, 229, 226, 227, 224, 222, 220, 224, 222, 220, 205, 203, 202, 227, 226, 222, 217, 215, 211, 192, 191, 187, 215, 213, 209, 224, 222, 218, 222, 220, 216, 229, 227, 223, 226, 225, 221, 230, 228, 224, 230, 228, 224, 222, 218, 215, 224, 222, 218, 239, 237, 233, 242, 241, 237, 255, 254, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 203, 201, 197, 114, 110, 107, 54, 50, 47, 113, 116, 110, 99, 100, 93, 94, 97, 89, 90, 94, 86, 98, 99, 90, 94, 97, 89, 95, 99, 89, 88, 90, 80, 101, 103, 93, 93, 95, 85, 83, 84, 75, 79, 82, 74, 81, 83, 75, 78, 79, 72, 86, 87, 80, 77, 78, 71, 80, 81, 74, 78, 79, 72, 78, 79, 72, 78, 79, 72, 71, 73, 63, 81, 83, 73, 81, 83, 73, 77, 78, 69, 72, 74, 64, 72, 74, 64, 76, 77, 68, 76, 77, 68, 74, 78, 68, 73, 74, 67, 69, 73, 65, 72, 75, 67, 81, 85, 77, 94, 97, 89, 76, 80, 72, 83, 87, 81, 73, 76, 68, 84, 85, 78, 71, 74, 66, 76, 80, 72, 74, 78, 70, 81, 85, 77, 81, 85, 77, 80, 83, 75, 87, 90, 82, 80, 83, 75, 83, 87, 79, 80, 83, 75, 88, 92, 84, 85, 88, 80, 87, 90, 82, 88, 92, 84, 59, 63, 52, 85, 88, 80, 76, 80, 72, 85, 88, 78, 85, 88, 78, 76, 80, 70, 90, 94, 84, 94, 98, 87, 101, 103, 93, 119, 120, 111, 99, 100, 91, 88, 90, 80, 70, 70, 59, 95, 97, 85, 69, 71, 59, 63, 65, 53, 80, 82, 70, 80, 79, 68, 89, 88, 77, 80, 79, 68, 76, 76, 64, 87, 87, 73, 95, 95, 81, 83, 83, 69, 77, 77, 64, 85, 85, 72, 116, 116, 102, 103, 103, 89, 90, 90, 76, 101, 104, 89, 98, 100, 86, 105, 105, 92, 92, 94, 80, 109, 112, 97, 109, 112, 97, 107, 109, 95, 125, 127, 112, 104, 106, 92, 99, 101, 87, 87, 90, 75, 105, 107, 93, 107, 109, 95, 105, 107, 93, 105, 107, 93, 85, 87, 73, 95, 97, 85, 113, 115, 103, 84, 86, 74, 131, 135, 123, 132, 137, 124, 100, 104, 93, 12, 16, 6, 0, 0, 0, 59, 63, 52, 78, 80, 70, 122, 124, 112, 99, 101, 89, 116, 118, 106, 137, 140, 125, 114, 116, 104, 122, 127, 111, 106, 110, 95, 106, 110, 95, 125, 132, 116, 111, 116, 103, 95, 99, 86, 82, 89, 75, 19, 23, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 30, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 36, 24, 118, 120, 105, 159, 162, 145, 148, 150, 134, 183, 183, 167, 161, 161, 145, 189, 190, 171, 154, 155, 136, 153, 154, 135, 151, 150, 129, 165, 163, 146, 168, 166, 151, 163, 160, 147, 142, 139, 126, 171, 168, 156, 156, 153, 140, 142, 139, 128, 177, 174, 161, 142, 138, 130, 153, 150, 142, 156, 152, 147, 137, 133, 128, 138, 135, 129, 146, 142, 139, 132, 128, 125, 155, 151, 147, 165, 161, 156, 120, 116, 110, 25, 21, 18, 30, 26, 23, 79, 74, 74, 66, 62, 61, 208, 204, 203, 254, 249, 250, 252, 248, 249, 241, 236, 237, 240, 235, 236, 235, 230, 232, 236, 231, 233, 234, 229, 230, 236, 231, 233, 234, 229, 230, 233, 228, 229, 237, 232, 234, 237, 232, 234, 240, 233, 235, 239, 232, 234, 241, 234, 236, 240, 235, 236, 237, 232, 234, 237, 232, 234, 237, 232, 234, 238, 234, 235, 240, 235, 236, 240, 234, 238, 238, 234, 235, 237, 232, 236, 239, 236, 239, 236, 233, 236, 236, 233, 236, 236, 233, 236, 213, 211, 214, 220, 218, 221, 224, 221, 224, 231, 229, 229, 227, 225, 226, 230, 227, 228, 224, 221, 222, 226, 224, 225, 230, 227, 228, 230, 227, 228, 231, 229, 227, 231, 229, 227, 236, 234, 232, 247, 246, 242, 255, 255, 255, 255, 255, 255, 255, 255, 255, 212, 211, 205, 82, 81, 74, 55, 54, 48, 60, 58, 52, 53, 52, 45, 57, 56, 50, 62, 60, 56, 56, 55, 51, 64, 63, 59, 71, 70, 66, 71, 70, 66, 73, 71, 67, 66, 64, 60, 75, 73, 69, 75, 73, 71, 74, 72, 70, 78, 73, 72, 68, 66, 64, 123, 127, 117, 116, 120, 110, 103, 107, 97, 103, 107, 97, 102, 106, 96, 99, 102, 92, 102, 104, 94, 97, 98, 89, 94, 96, 86, 85, 87, 77, 88, 90, 80, 87, 89, 79, 86, 87, 80, 84, 85, 78, 77, 78, 71, 76, 77, 68, 74, 76, 68, 70, 71, 62, 83, 84, 75, 76, 77, 68, 72, 74, 64, 78, 79, 72, 65, 67, 57, 70, 71, 62, 77, 78, 69, 78, 80, 70, 67, 69, 60, 72, 74, 64, 69, 70, 61, 65, 66, 59, 73, 74, 67, 66, 67, 60, 65, 66, 59, 65, 66, 59, 53, 57, 49, 68, 72, 64, 62, 63, 56, 63, 64, 57, 49, 50, 43, 55, 56, 49, 56, 57, 50, 55, 59, 51, 49, 50, 43, 184, 185, 178, 43, 44, 37, 42, 43, 36, 57, 58, 51, 53, 57, 49, 42, 43, 36, 29, 30, 23, 41, 42, 35, 48, 49, 42, 40, 41, 34, 44, 45, 38, 43, 44, 37, 45, 49, 39, 37, 41, 30, 37, 41, 30, 39, 43, 33, 44, 46, 36, 47, 48, 39, 44, 46, 36, 31, 33, 23, 33, 34, 25, 47, 46, 35, 29, 31, 21, 47, 48, 36, 52, 54, 42, 60, 62, 50, 72, 74, 62, 69, 69, 57, 102, 101, 90, 92, 92, 81, 89, 89, 75, 88, 88, 74, 94, 93, 80, 78, 78, 65, 99, 99, 86, 111, 111, 97, 109, 109, 95, 100, 100, 87, 95, 95, 81, 84, 84, 70, 119, 119, 105, 113, 113, 100, 126, 126, 112, 136, 138, 124, 106, 108, 94, 108, 111, 96, 126, 128, 114, 147, 149, 134, 130, 133, 118, 113, 115, 101, 107, 109, 95, 112, 114, 100, 136, 138, 124, 129, 131, 117, 131, 134, 119, 125, 127, 112, 126, 128, 116, 133, 138, 125, 118, 123, 110, 129, 131, 121, 104, 105, 96, 0, 0, 0, 121, 123, 113, 163, 165, 153, 128, 130, 118, 113, 115, 101, 135, 137, 123, 142, 146, 131, 108, 112, 99, 73, 77, 64, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 0, 28, 30, 18, 134, 134, 123, 184, 184, 171, 189, 189, 175, 180, 180, 164, 177, 178, 162, 156, 157, 141, 181, 181, 165, 172, 170, 155, 193, 191, 176, 175, 173, 158, 160, 158, 143, 170, 168, 150, 159, 158, 140, 156, 154, 136, 156, 154, 138, 164, 162, 147, 136, 134, 119, 156, 153, 140, 152, 150, 137, 182, 180, 167, 155, 152, 139, 141, 138, 127, 134, 131, 120, 139, 136, 128, 178, 175, 167, 180, 177, 169, 36, 33, 25, 6, 3, 0, 35, 32, 19, 222, 220, 207, 207, 204, 196, 233, 229, 225, 241, 236, 235, 227, 222, 223, 236, 231, 233, 238, 234, 235, 240, 234, 238, 233, 228, 229, 238, 234, 235, 236, 231, 233, 238, 234, 235, 238, 234, 235, 236, 231, 233, 235, 230, 232, 235, 230, 232, 235, 230, 232, 236, 231, 233, 236, 231, 233, 236, 231, 233, 237, 233, 232, 234, 229, 230, 230, 225, 227, 236, 232, 231, 235, 230, 230, 236, 232, 231, 236, 231, 233, 236, 231, 233, 236, 231, 233, 237, 232, 234, 237, 232, 234, 234, 229, 230, 236, 231, 233, 237, 234, 235, 236, 233, 234, 236, 233, 234, 234, 232, 233, 229, 226, 227, 224, 221, 222, 238, 236, 236, 255, 255, 255, 255, 255, 255, 255, 255, 255, 237, 235, 231, 158, 156, 152, 119, 118, 114, 59, 57, 53, 60, 58, 54, 52, 50, 48, 52, 53, 48, 64, 63, 59, 59, 57, 53, 66, 64, 60, 67, 65, 61, 61, 59, 55, 83, 81, 77, 83, 81, 77, 70, 69, 65, 85, 86, 81, 78, 77, 73, 82, 80, 76, 80, 78, 74, 80, 78, 76, 85, 84, 80, 89, 87, 85, 77, 76, 72, 88, 86, 84, 83, 81, 77, 94, 92, 88, 82, 80, 76, 80, 78, 74, 94, 95, 90, 101, 105, 92, 120, 124, 111, 105, 106, 97, 116, 118, 108, 109, 111, 101, 128, 130, 120, 104, 105, 96, 109, 111, 101, 112, 113, 104, 105, 106, 97, 109, 111, 101, 83, 84, 75, 86, 88, 78, 66, 68, 58, 84, 85, 76, 72, 74, 64, 81, 83, 73, 80, 82, 72, 67, 69, 60, 64, 66, 56, 64, 66, 56, 59, 61, 51, 59, 61, 51, 62, 63, 54, 62, 63, 54, 57, 59, 49, 57, 59, 49, 55, 56, 47, 55, 56, 47, 84, 85, 78, 77, 78, 71, 53, 55, 48, 61, 60, 53, 38, 40, 32, 50, 51, 44, 58, 59, 52, 59, 61, 53, 47, 48, 41, 55, 56, 49, 29, 30, 23, 36, 35, 29, 38, 40, 32, 32, 31, 24, 31, 33, 25, 35, 34, 28, 31, 33, 25, 24, 26, 18, 49, 50, 43, 19, 20, 13, 33, 32, 25, 42, 43, 36, 35, 36, 29, 37, 38, 31, 35, 36, 29, 34, 35, 28, 47, 51, 43, 25, 29, 19, 38, 40, 30, 31, 33, 23, 44, 46, 36, 87, 86, 77, 43, 43, 34, 53, 52, 43, 53, 52, 43, 52, 51, 40, 42, 42, 31, 61, 60, 49, 75, 74, 63, 74, 73, 62, 76, 76, 64, 82, 82, 68, 103, 103, 89, 120, 117, 104, 145, 145, 131, 111, 109, 96, 122, 119, 107, 113, 114, 98, 130, 130, 114, 116, 116, 100, 96, 96, 80, 109, 109, 93, 113, 114, 98, 123, 123, 109, 131, 131, 115, 142, 143, 127, 126, 126, 112, 139, 139, 125, 121, 121, 108, 142, 143, 127, 159, 159, 145, 131, 134, 119, 125, 127, 112, 133, 135, 121, 125, 125, 111, 144, 143, 130, 144, 147, 132, 147, 149, 134, 135, 137, 125, 140, 142, 129, 137, 139, 127, 142, 144, 130, 140, 145, 132, 140, 142, 129, 168, 169, 160, 21, 24, 14, 0, 0, 0, 55, 56, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 67, 55, 144, 146, 134, 184, 186, 172, 194, 194, 180, 159, 159, 143, 191, 192, 176, 161, 161, 145, 160, 161, 142, 163, 164, 148, 165, 163, 146, 170, 168, 150, 172, 170, 153, 181, 179, 164, 182, 181, 163, 134, 131, 116, 147, 145, 130, 141, 138, 123, 152, 150, 135, 149, 147, 131, 188, 186, 171, 153, 151, 136, 157, 154, 142, 136, 133, 121, 155, 152, 139, 172, 169, 157, 190, 187, 174, 89, 87, 74, 14, 11, 0, 83, 80, 72, 22, 18, 13, 175, 171, 170, 255, 255, 254, 252, 248, 249, 236, 231, 233, 238, 234, 235, 238, 233, 237, 238, 233, 237, 240, 234, 238, 240, 234, 238, 234, 228, 232, 238, 233, 237, 236, 231, 235, 230, 225, 229, 236, 231, 233, 236, 231, 233, 237, 232, 234, 235, 230, 232, 238, 234, 235, 236, 231, 233, 236, 231, 233, 235, 230, 232, 235, 230, 232, 237, 232, 234, 234, 229, 230, 234, 229, 230, 236, 231, 233, 234, 229, 230, 235, 230, 232, 234, 229, 230, 235, 230, 230, 236, 232, 231, 236, 232, 231, 237, 233, 232, 241, 236, 235, 236, 232, 231, 228, 223, 223, 229, 225, 224, 255, 251, 251, 255, 255, 255, 255, 255, 255, 216, 214, 212, 88, 86, 82, 96, 94, 90, 68, 66, 62, 66, 64, 62, 62, 60, 60, 69, 67, 67, 70, 68, 69, 77, 75, 74, 70, 68, 67, 75, 72, 73, 76, 74, 74, 66, 67, 64, 73, 74, 71, 73, 71, 69, 78, 76, 75, 70, 68, 67, 82, 80, 76, 99, 98, 94, 95, 93, 87, 89, 88, 81, 76, 75, 68, 99, 98, 92, 91, 90, 86, 96, 95, 88, 78, 77, 73, 104, 102, 98, 92, 93, 88, 103, 101, 97, 92, 91, 87, 95, 93, 89, 91, 90, 86, 105, 106, 101, 91, 92, 85, 102, 100, 94, 78, 79, 72, 95, 97, 89, 79, 83, 72, 117, 117, 103, 120, 122, 110, 120, 120, 109, 112, 114, 102, 111, 113, 100, 113, 115, 103, 113, 114, 105, 118, 120, 107, 102, 104, 94, 91, 92, 83, 95, 97, 87, 86, 88, 76, 90, 91, 82, 91, 92, 83, 85, 87, 77, 67, 69, 60, 73, 75, 65, 78, 80, 70, 69, 70, 61, 71, 73, 63, 83, 84, 75, 72, 74, 64, 55, 56, 47, 81, 83, 73, 64, 66, 56, 62, 63, 54, 57, 59, 49, 53, 55, 46, 44, 45, 38, 45, 47, 39, 97, 98, 91, 72, 73, 66, 60, 62, 54, 43, 42, 36, 52, 54, 46, 47, 48, 41, 37, 38, 31, 60, 62, 54, 40, 41, 34, 33, 34, 27, 49, 50, 43, 52, 54, 46, 35, 34, 28, 51, 52, 45, 66, 64, 58, 46, 45, 38, 46, 45, 38, 46, 45, 38, 51, 52, 45, 98, 97, 91, 39, 38, 31, 49, 50, 43, 45, 47, 39, 48, 47, 41, 47, 48, 39, 36, 38, 28, 56, 57, 48, 52, 54, 44, 66, 68, 56, 63, 65, 53, 49, 49, 38, 92, 92, 83, 90, 90, 78, 96, 95, 84, 90, 90, 78, 90, 90, 78, 108, 107, 94, 113, 113, 102, 104, 104, 90, 104, 104, 90, 128, 125, 112, 106, 103, 90, 127, 124, 111, 117, 115, 102, 145, 143, 128, 108, 108, 92, 153, 153, 139, 193, 191, 176, 134, 134, 121, 135, 135, 122, 130, 129, 116, 147, 147, 133, 142, 142, 129, 151, 151, 137, 160, 160, 146, 171, 171, 158, 149, 149, 136, 160, 160, 146, 141, 141, 128, 153, 153, 139, 130, 129, 116, 155, 157, 143, 162, 164, 150, 165, 168, 153, 153, 155, 140, 162, 164, 150, 114, 116, 102, 158, 160, 148, 164, 166, 154, 113, 115, 103, 90, 91, 82, 13, 14, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 6, 0, 78, 80, 68, 145, 148, 133, 190, 192, 176, 153, 153, 137, 162, 162, 147, 190, 191, 173, 191, 192, 174, 137, 137, 119, 179, 177, 160, 149, 147, 129, 175, 174, 154, 149, 147, 127, 147, 146, 128, 174, 173, 153, 167, 166, 148, 187, 185, 168, 175, 174, 156, 167, 166, 148, 153, 151, 136, 164, 162, 147, 135, 132, 119, 165, 162, 150, 157, 154, 144, 174, 171, 161, 158, 155, 145, 178, 175, 164, 54, 51, 43, 92, 88, 80, 0, 0, 0, 77, 73, 67, 217, 213, 210, 255, 251, 247, 245, 241, 238, 237, 233, 232, 236, 232, 229, 233, 228, 227, 240, 235, 236, 237, 232, 234, 238, 234, 235, 238, 234, 235, 239, 236, 239, 238, 233, 237, 234, 228, 232, 238, 233, 237, 242, 237, 241, 241, 235, 239, 240, 234, 238, 237, 232, 236, 236, 231, 235, 236, 231, 233, 235, 230, 234, 231, 227, 228, 235, 230, 232, 237, 232, 234, 236, 231, 233, 234, 229, 230, 234, 229, 230, 234, 229, 230, 234, 229, 230, 235, 230, 230, 235, 230, 230, 234, 230, 226, 217, 213, 210, 230, 228, 224, 229, 227, 223, 246, 245, 238, 255, 255, 255, 255, 255, 255, 212, 208, 202, 99, 95, 89, 66, 62, 59, 63, 59, 55, 73, 69, 68, 67, 63, 62, 70, 68, 67, 73, 71, 69, 77, 75, 74, 82, 80, 78, 82, 80, 78, 84, 82, 81, 89, 87, 85, 76, 76, 74, 87, 85, 83, 85, 83, 84, 81, 78, 79, 102, 100, 98, 92, 90, 89, 76, 74, 72, 89, 87, 83, 104, 104, 100, 100, 101, 96, 87, 88, 83, 90, 88, 84, 86, 87, 80, 87, 85, 79, 104, 103, 96, 97, 96, 87, 89, 88, 79, 91, 90, 82, 103, 102, 93, 91, 90, 84, 89, 88, 81, 97, 96, 89, 91, 90, 84, 81, 83, 75, 83, 82, 73, 98, 97, 89, 90, 91, 82, 96, 95, 84, 77, 76, 68, 87, 89, 79, 81, 83, 73, 84, 85, 76, 80, 82, 70, 95, 99, 86, 141, 141, 128, 148, 148, 136, 127, 129, 117, 122, 124, 114, 115, 117, 105, 113, 115, 103, 111, 113, 100, 107, 109, 97, 98, 100, 88, 109, 111, 101, 112, 113, 104, 100, 102, 92, 91, 93, 81, 95, 97, 87, 99, 100, 91, 84, 85, 76, 87, 89, 79, 98, 99, 90, 87, 89, 79, 64, 66, 56, 78, 80, 70, 85, 87, 77, 79, 81, 71, 63, 64, 55, 66, 68, 58, 65, 67, 57, 67, 69, 62, 67, 69, 62, 57, 59, 49, 73, 74, 67, 58, 59, 52, 69, 68, 60, 45, 47, 39, 74, 76, 68, 43, 44, 37, 45, 47, 39, 53, 55, 48, 48, 49, 42, 55, 56, 49, 35, 36, 29, 50, 51, 44, 35, 36, 29, 47, 46, 39, 47, 48, 41, 47, 48, 41, 46, 45, 38, 43, 42, 36, 63, 62, 56, 33, 34, 27, 54, 53, 46, 56, 55, 49, 56, 57, 50, 48, 49, 42, 49, 50, 41, 50, 52, 42, 50, 52, 42, 62, 63, 54, 63, 64, 55, 70, 70, 59, 71, 71, 60, 60, 59, 48, 60, 59, 48, 83, 83, 71, 81, 80, 69, 81, 80, 69, 95, 94, 83, 82, 81, 70, 99, 99, 86, 100, 100, 87, 104, 104, 90, 111, 111, 97, 128, 128, 115, 121, 118, 105, 109, 107, 94, 104, 104, 88, 138, 136, 121, 151, 151, 135, 151, 149, 134, 155, 152, 137, 158, 158, 142, 168, 168, 152, 147, 147, 131, 138, 138, 122, 141, 141, 126, 158, 158, 142, 138, 138, 122, 178, 179, 163, 163, 163, 150, 158, 158, 144, 167, 167, 153, 165, 164, 151, 162, 164, 150, 142, 144, 130, 81, 81, 67, 31, 33, 21, 0, 0, 0, 0, 0, 0, 12, 13, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 89, 82, 144, 143, 134, 136, 133, 123, 153, 151, 136, 182, 181, 163, 167, 166, 148, 174, 173, 155, 165, 163, 146, 161, 162, 143, 187, 187, 169, 174, 175, 156, 113, 111, 93, 174, 173, 153, 163, 161, 141, 153, 152, 132, 188, 187, 167, 166, 165, 147, 150, 149, 128, 155, 156, 138, 155, 153, 135, 167, 166, 148, 172, 170, 153, 153, 151, 136, 151, 149, 134, 143, 140, 128, 159, 157, 142, 195, 192, 182, 146, 143, 135, 0, 0, 0, 0, 0, 0, 71, 67, 64, 227, 223, 220, 255, 254, 251, 248, 244, 240, 234, 230, 226, 237, 233, 230, 241, 237, 233, 240, 235, 234, 238, 234, 233, 237, 233, 232, 236, 232, 231, 238, 234, 235, 238, 234, 235, 237, 232, 234, 237, 232, 234, 238, 234, 235, 237, 232, 234, 237, 232, 234, 238, 234, 235, 237, 232, 236, 237, 232, 236, 238, 233, 237, 237, 232, 236, 235, 230, 234, 236, 231, 235, 236, 231, 235, 237, 232, 236, 234, 229, 230, 234, 228, 232, 235, 230, 232, 231, 227, 228, 237, 232, 234, 230, 226, 225, 229, 225, 224, 227, 226, 222, 225, 223, 220, 255, 255, 255, 255, 255, 255, 188, 187, 180, 89, 88, 81, 54, 52, 48, 71, 70, 66, 66, 64, 62, 71, 69, 68, 75, 71, 70, 72, 67, 67, 79, 74, 74, 82, 78, 77, 85, 80, 79, 74, 70, 69, 85, 83, 82, 85, 83, 82, 76, 74, 72, 77, 75, 74, 99, 98, 94, 80, 78, 74, 89, 87, 83, 77, 76, 72, 76, 74, 70, 89, 87, 83, 90, 88, 84, 87, 85, 81, 76, 74, 72, 97, 95, 91, 83, 81, 79, 84, 84, 82, 86, 87, 82, 76, 76, 72, 90, 89, 82, 91, 92, 85, 91, 92, 85, 144, 142, 136, 83, 82, 73, 92, 92, 83, 88, 87, 78, 84, 83, 75, 131, 130, 121, 87, 86, 77, 118, 117, 108, 84, 83, 75, 92, 92, 83, 88, 87, 78, 83, 83, 71, 81, 80, 69, 87, 86, 75, 88, 87, 78, 73, 72, 61, 104, 104, 92, 81, 83, 71, 86, 88, 76, 85, 87, 75, 80, 84, 71, 146, 145, 134, 121, 121, 110, 114, 116, 104, 112, 113, 104, 113, 115, 103, 120, 120, 109, 114, 116, 106, 118, 119, 110, 120, 121, 112, 104, 105, 96, 100, 102, 92, 95, 97, 87, 84, 86, 74, 92, 94, 84, 93, 95, 83, 90, 91, 82, 83, 84, 75, 80, 82, 72, 79, 81, 71, 102, 104, 94, 65, 69, 58, 67, 69, 60, 72, 74, 64, 69, 70, 61, 69, 70, 61, 59, 61, 53, 67, 69, 62, 79, 81, 71, 71, 73, 63, 52, 54, 46, 84, 83, 77, 49, 50, 41, 81, 79, 73, 166, 164, 158, 58, 59, 52, 62, 63, 56, 83, 84, 77, 52, 54, 46, 69, 70, 63, 60, 62, 54, 60, 62, 54, 89, 88, 81, 53, 52, 45, 52, 54, 46, 49, 50, 43, 60, 58, 52, 88, 90, 82, 49, 50, 43, 47, 48, 41, 42, 43, 36, 74, 76, 66, 57, 57, 48, 58, 60, 50, 76, 77, 68, 70, 69, 61, 60, 62, 52, 80, 79, 70, 74, 73, 62, 102, 101, 90, 77, 77, 65, 66, 65, 54, 74, 73, 62, 94, 93, 82, 102, 101, 90, 108, 107, 96, 130, 129, 116, 120, 120, 107, 114, 114, 101, 126, 126, 112, 120, 117, 104, 131, 129, 116, 117, 115, 102, 150, 148, 132, 125, 125, 109, 155, 152, 137, 167, 165, 150, 163, 161, 145, 175, 175, 159, 148, 148, 134, 147, 147, 133, 176, 176, 162, 165, 164, 151, 168, 168, 154, 147, 147, 133, 131, 131, 117, 117, 117, 103, 20, 20, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 11, 4, 56, 55, 47, 113, 113, 102, 109, 111, 99, 136, 138, 124, 158, 161, 146, 158, 158, 142, 151, 149, 134, 167, 165, 150, 157, 155, 138, 152, 151, 133, 139, 138, 120, 142, 140, 122, 150, 149, 128, 172, 171, 151, 173, 172, 152, 138, 137, 117, 191, 189, 169, 152, 151, 131, 172, 170, 153, 149, 147, 129, 155, 153, 135, 139, 138, 120, 150, 148, 132, 139, 137, 122, 143, 141, 126, 162, 162, 149, 191, 188, 175, 74, 72, 59, 2, 0, 0, 26, 24, 13, 92, 88, 80, 181, 178, 172, 251, 247, 244, 244, 240, 235, 233, 229, 225, 233, 229, 225, 237, 233, 232, 238, 234, 233, 238, 234, 233, 236, 232, 231, 237, 233, 232, 241, 236, 235, 237, 233, 232, 231, 227, 226, 237, 233, 232, 237, 233, 232, 240, 235, 234, 233, 228, 227, 235, 230, 232, 238, 234, 235, 238, 234, 235, 238, 234, 235, 238, 234, 235, 237, 234, 235, 238, 233, 237, 238, 233, 237, 235, 230, 234, 236, 231, 235, 236, 231, 235, 234, 232, 235, 236, 231, 233, 236, 231, 233, 236, 231, 233, 233, 228, 229, 222, 217, 219, 245, 241, 242, 255, 255, 255, 255, 255, 255, 123, 121, 117, 70, 69, 65, 74, 72, 68, 62, 60, 56, 68, 66, 62, 77, 76, 72, 76, 75, 68, 76, 74, 70, 80, 78, 72, 71, 70, 64, 81, 79, 75, 81, 79, 75, 81, 79, 75, 91, 87, 83, 88, 84, 81, 94, 90, 87, 94, 90, 87, 94, 90, 87, 89, 85, 82, 82, 80, 76, 98, 96, 93, 91, 90, 86, 105, 104, 100, 92, 91, 87, 81, 79, 75, 100, 99, 93, 96, 95, 88, 81, 79, 73, 85, 85, 76, 94, 92, 86, 88, 86, 80, 90, 89, 82, 89, 88, 81, 89, 88, 81, 91, 90, 84, 83, 84, 77, 87, 85, 79, 71, 70, 64, 94, 93, 84, 90, 89, 80, 95, 94, 85, 75, 74, 65, 88, 87, 78, 77, 76, 68, 82, 81, 72, 98, 97, 89, 92, 92, 83, 84, 83, 75, 91, 90, 82, 84, 83, 75, 111, 110, 99, 82, 81, 72, 89, 88, 77, 95, 94, 83, 95, 94, 83, 110, 109, 98, 84, 84, 72, 109, 111, 99, 77, 79, 67, 104, 106, 94, 85, 85, 74, 122, 119, 107, 130, 129, 118, 120, 120, 109, 119, 119, 107, 116, 115, 104, 106, 108, 96, 105, 106, 97, 102, 104, 94, 95, 97, 87, 121, 123, 113, 96, 100, 90, 106, 109, 99, 93, 95, 85, 102, 104, 94, 95, 97, 87, 87, 89, 79, 92, 94, 84, 85, 88, 78, 83, 87, 77, 73, 75, 65, 73, 77, 66, 69, 73, 63, 76, 77, 68, 71, 72, 65, 82, 86, 78, 71, 72, 65, 70, 71, 62, 62, 63, 56, 80, 81, 74, 99, 100, 93, 63, 64, 57, 79, 80, 73, 71, 72, 65, 78, 79, 72, 81, 83, 75, 70, 71, 64, 62, 66, 58, 68, 72, 64, 99, 100, 93, 71, 72, 65, 72, 73, 66, 55, 56, 49, 57, 58, 51, 67, 69, 62, 56, 57, 50, 55, 56, 49, 64, 65, 58, 70, 71, 64, 69, 70, 63, 64, 63, 57, 47, 48, 41, 51, 52, 45, 64, 66, 56, 51, 53, 43, 70, 71, 62, 66, 68, 58, 90, 89, 80, 88, 87, 78, 70, 70, 59, 59, 58, 47, 100, 100, 89, 100, 100, 89, 133, 133, 121, 108, 107, 96, 82, 81, 70, 131, 131, 117, 132, 131, 120, 149, 149, 138, 135, 132, 121, 166, 166, 152, 147, 147, 133, 152, 152, 138, 165, 164, 151, 170, 170, 157, 169, 169, 156, 142, 142, 129, 113, 113, 102, 68, 67, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 30, 19, 104, 104, 92, 123, 122, 111, 125, 125, 113, 132, 132, 118, 146, 146, 132, 139, 139, 125, 139, 139, 125, 140, 140, 124, 152, 152, 136, 140, 140, 124, 140, 140, 124, 141, 141, 126, 138, 138, 120, 166, 165, 147, 168, 167, 149, 143, 142, 121, 154, 150, 133, 131, 129, 112, 168, 167, 149, 159, 158, 140, 170, 168, 150, 161, 159, 144, 159, 157, 142, 167, 165, 150, 156, 154, 138, 153, 151, 136, 178, 176, 160, 93, 91, 76, 3, 0, 0, 181, 179, 164, 69, 67, 64, 135, 134, 128, 255, 255, 251, 240, 239, 235, 238, 234, 231, 238, 234, 231, 236, 232, 231, 240, 235, 234, 231, 227, 226, 235, 230, 230, 235, 230, 230, 238, 234, 233, 236, 232, 231, 240, 235, 234, 236, 232, 229, 237, 233, 232, 236, 232, 231, 229, 225, 224, 237, 233, 232, 236, 232, 231, 237, 233, 232, 236, 232, 231, 236, 232, 231, 234, 229, 228, 238, 234, 233, 234, 229, 230, 235, 230, 232, 236, 231, 233, 240, 235, 236, 238, 236, 236, 231, 228, 231, 233, 230, 234, 237, 234, 237, 233, 227, 231, 238, 235, 238, 241, 236, 237, 255, 255, 255, 255, 255, 255, 108, 104, 103, 102, 100, 98, 70, 65, 64, 67, 65, 63, 71, 69, 68, 70, 68, 67, 77, 75, 74, 80, 78, 76, 80, 78, 76, 88, 86, 84, 84, 83, 79, 75, 73, 69, 82, 80, 76, 88, 86, 80, 84, 83, 79, 85, 84, 78, 88, 86, 80, 98, 97, 91, 87, 83, 78, 93, 89, 84, 93, 89, 84, 100, 96, 91, 86, 82, 77, 93, 89, 86, 93, 89, 86, 98, 96, 93, 94, 92, 88, 109, 107, 101, 95, 93, 87, 85, 84, 78, 95, 93, 87, 87, 85, 79, 94, 92, 86, 87, 86, 77, 97, 96, 87, 83, 82, 73, 95, 94, 85, 87, 86, 77, 91, 90, 82, 92, 92, 83, 103, 102, 93, 87, 89, 79, 84, 83, 75, 97, 96, 87, 85, 85, 76, 84, 83, 75, 81, 80, 71, 95, 94, 85, 98, 97, 89, 78, 78, 69, 88, 87, 76, 83, 82, 73, 114, 114, 105, 133, 132, 124, 91, 90, 82, 87, 86, 77, 84, 83, 75, 91, 91, 80, 76, 75, 66, 66, 65, 56, 97, 96, 85, 111, 110, 99, 76, 75, 66, 74, 73, 62, 113, 113, 102, 82, 81, 70, 76, 76, 64, 131, 129, 116, 127, 127, 116, 117, 116, 105, 116, 115, 104, 114, 114, 103, 104, 105, 96, 98, 99, 90, 100, 102, 92, 103, 107, 99, 107, 109, 99, 96, 100, 90, 85, 88, 78, 95, 97, 87, 88, 92, 82, 91, 92, 83, 88, 92, 82, 114, 118, 107, 92, 94, 84, 82, 86, 76, 83, 84, 77, 75, 79, 69, 74, 78, 70, 71, 72, 65, 73, 74, 67, 78, 81, 75, 65, 68, 60, 67, 69, 62, 57, 60, 52, 77, 78, 71, 72, 73, 66, 71, 72, 65, 67, 69, 62, 95, 97, 89, 67, 69, 62, 77, 78, 71, 59, 61, 53, 69, 70, 63, 66, 69, 62, 74, 75, 70, 173, 175, 167, 73, 74, 67, 58, 59, 52, 57, 58, 51, 80, 81, 74, 71, 72, 65, 45, 47, 39, 59, 61, 53, 67, 69, 62, 58, 59, 52, 65, 66, 59, 84, 85, 76, 57, 59, 49, 71, 73, 63, 70, 71, 62, 67, 69, 60, 63, 62, 54, 85, 85, 76, 75, 74, 65, 96, 95, 86, 105, 104, 96, 94, 93, 82, 104, 104, 92, 124, 123, 112, 134, 134, 123, 105, 105, 94, 99, 99, 88, 41, 41, 29, 18, 17, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 12, 6, 73, 71, 65, 130, 129, 120, 111, 110, 99, 137, 136, 125, 145, 145, 131, 137, 136, 123, 141, 141, 128, 147, 147, 133, 152, 152, 138, 140, 140, 126, 144, 143, 130, 180, 180, 164, 144, 142, 127, 140, 140, 124, 136, 134, 119, 129, 127, 112, 131, 131, 113, 152, 152, 134, 156, 157, 139, 137, 135, 118, 140, 141, 122, 122, 120, 103, 144, 142, 125, 142, 140, 122, 135, 133, 113, 130, 128, 111, 123, 121, 106, 155, 152, 139, 179, 176, 164, 97, 95, 84, 0, 0, 0, 54, 51, 43, 114, 111, 103, 168, 165, 159, 237, 234, 228, 254, 250, 246, 235, 231, 228, 236, 234, 230, 238, 236, 234, 233, 231, 230, 235, 230, 230, 233, 231, 230, 237, 235, 233, 233, 228, 227, 237, 233, 232, 238, 234, 233, 237, 233, 232, 237, 233, 232, 237, 233, 232, 236, 232, 229, 235, 231, 228, 235, 231, 228, 237, 233, 232, 236, 232, 231, 234, 229, 228, 235, 230, 230, 236, 232, 231, 236, 232, 231, 234, 229, 228, 233, 228, 227, 235, 230, 230, 235, 230, 230, 234, 229, 230, 231, 227, 228, 231, 227, 228, 236, 233, 234, 230, 227, 228, 248, 246, 247, 255, 255, 255, 255, 255, 255, 133, 131, 129, 121, 119, 118, 68, 66, 64, 71, 69, 70, 66, 63, 64, 69, 67, 67, 76, 74, 74, 80, 77, 78, 84, 82, 83, 83, 81, 81, 82, 80, 78, 88, 85, 86, 89, 87, 85, 75, 73, 71, 92, 90, 89, 87, 85, 81, 78, 77, 73, 88, 86, 80, 102, 100, 94, 89, 88, 81, 100, 99, 93, 88, 86, 80, 98, 97, 91, 90, 89, 82, 96, 93, 87, 86, 83, 75, 110, 107, 99, 117, 114, 106, 99, 95, 87, 88, 85, 77, 87, 84, 76, 89, 86, 78, 91, 90, 82, 95, 94, 85, 87, 85, 79, 85, 84, 78, 84, 83, 77, 83, 82, 75, 99, 98, 92, 89, 88, 79, 82, 81, 72, 96, 95, 86, 76, 76, 64, 88, 87, 78, 96, 95, 86, 94, 93, 84, 95, 94, 85, 86, 88, 78, 91, 90, 82, 85, 87, 77, 84, 83, 75, 85, 85, 76, 89, 88, 79, 87, 86, 77, 88, 87, 78, 110, 109, 98, 74, 73, 64, 90, 90, 78, 110, 109, 98, 84, 83, 75, 116, 115, 104, 91, 91, 80, 92, 92, 81, 89, 88, 77, 97, 96, 85, 67, 66, 55, 105, 104, 96, 102, 101, 92, 92, 92, 83, 91, 92, 83, 81, 80, 71, 67, 66, 57, 99, 98, 90, 112, 112, 100, 120, 120, 109, 112, 113, 104, 122, 124, 114, 120, 121, 112, 119, 120, 111, 99, 100, 93, 105, 106, 99, 93, 94, 87, 97, 98, 91, 74, 76, 68, 111, 115, 105, 91, 92, 83, 93, 97, 86, 98, 99, 90, 100, 102, 92, 91, 92, 83, 79, 80, 73, 76, 80, 72, 77, 78, 71, 78, 81, 73, 67, 68, 64, 77, 78, 71, 69, 73, 65, 80, 81, 76, 60, 64, 56, 81, 83, 75, 70, 71, 64, 107, 108, 101, 73, 74, 67, 67, 69, 62, 67, 69, 62, 65, 66, 59, 87, 89, 81, 74, 78, 70, 58, 61, 53, 51, 54, 46, 58, 61, 53, 67, 69, 62, 67, 69, 62, 70, 71, 64, 69, 70, 63, 57, 58, 51, 70, 71, 64, 72, 73, 66, 67, 69, 62, 65, 66, 59, 66, 67, 60, 59, 61, 53, 58, 59, 52, 19, 20, 13, 17, 19, 9, 14, 16, 6, 0, 0, 0, 0, 0, 0, 14, 14, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 32, 20, 76, 75, 66, 105, 107, 95, 102, 104, 92, 111, 110, 99, 103, 102, 91, 100, 100, 89, 117, 117, 103, 119, 119, 107, 116, 115, 104, 128, 128, 117, 162, 162, 151, 165, 164, 151, 146, 146, 132, 133, 133, 119, 125, 125, 111, 120, 120, 107, 113, 113, 100, 196, 196, 180, 116, 116, 100, 126, 126, 110, 123, 123, 107, 134, 134, 119, 143, 141, 126, 159, 159, 143, 120, 117, 102, 147, 145, 130, 124, 124, 106, 138, 136, 121, 134, 134, 119, 116, 116, 100, 134, 131, 118, 178, 178, 165, 81, 79, 66, 21, 18, 5, 225, 223, 208, 210, 208, 197, 145, 142, 136, 245, 241, 238, 255, 251, 247, 250, 246, 243, 238, 234, 231, 241, 237, 233, 245, 241, 238, 241, 236, 235, 241, 236, 235, 237, 233, 232, 237, 235, 233, 236, 234, 232, 239, 237, 235, 233, 231, 230, 232, 230, 228, 238, 236, 234, 236, 234, 232, 237, 233, 232, 237, 233, 232, 241, 236, 235, 236, 232, 229, 233, 228, 227, 234, 229, 228, 234, 229, 228, 233, 228, 227, 233, 228, 227, 233, 228, 227, 233, 228, 227, 233, 228, 227, 235, 230, 230, 236, 232, 231, 236, 232, 231, 236, 232, 231, 231, 227, 224, 235, 230, 230, 255, 251, 247, 255, 255, 255, 210, 206, 203, 35, 30, 29, 68, 66, 64, 63, 58, 59, 64, 62, 63, 62, 60, 60, 74, 71, 72, 81, 78, 79, 91, 88, 92, 90, 88, 88, 97, 94, 97, 87, 84, 87, 88, 85, 86, 103, 100, 101, 102, 99, 100, 84, 82, 83, 74, 72, 70, 83, 81, 79, 100, 98, 97, 99, 99, 97, 83, 81, 77, 84, 85, 78, 103, 101, 95, 89, 88, 79, 84, 83, 75, 108, 107, 98, 111, 110, 103, 104, 103, 94, 76, 75, 68, 73, 72, 63, 89, 88, 79, 82, 79, 71, 101, 98, 90, 104, 102, 91, 94, 91, 81, 97, 95, 84, 85, 82, 71, 88, 85, 77, 107, 104, 96, 91, 91, 80, 94, 93, 84, 90, 89, 80, 92, 91, 85, 83, 82, 73, 99, 98, 90, 88, 87, 78, 102, 101, 90, 98, 97, 89, 83, 83, 71, 95, 94, 83, 80, 79, 70, 91, 90, 82, 95, 94, 83, 88, 87, 76, 88, 87, 76, 95, 94, 83, 83, 83, 71, 77, 76, 68, 87, 86, 77, 95, 94, 83, 103, 102, 91, 83, 83, 71, 85, 85, 74, 91, 91, 80, 103, 102, 91, 92, 92, 81, 90, 90, 78, 80, 79, 68, 110, 109, 98, 81, 80, 69, 104, 104, 92, 94, 93, 82, 74, 73, 62, 74, 73, 64, 119, 118, 110, 69, 68, 60, 74, 73, 64, 82, 81, 72, 102, 101, 92, 91, 90, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 12, 6, 11, 14, 9, 35, 38, 32, 31, 32, 27, 33, 34, 27, 32, 36, 28, 77, 78, 71, 49, 50, 43, 41, 42, 35, 48, 49, 42, 54, 58, 50, 38, 40, 32, 51, 54, 46, 26, 29, 24, 33, 37, 29, 33, 37, 29, 25, 28, 23, 14, 17, 11, 11, 14, 9, 5, 9, 3, 5, 9, 1, 3, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 62, 50, 99, 100, 91, 95, 94, 83, 90, 92, 80, 97, 96, 85, 67, 69, 57, 87, 90, 75, 103, 102, 91, 95, 94, 83, 106, 106, 95, 123, 126, 111, 88, 88, 74, 195, 195, 181, 113, 113, 100, 117, 117, 103, 130, 129, 116, 123, 123, 109, 104, 104, 90, 128, 128, 117, 90, 90, 76, 124, 124, 110, 88, 88, 74, 113, 113, 102, 133, 133, 119, 139, 139, 125, 141, 141, 126, 141, 141, 128, 112, 112, 96, 119, 119, 103, 102, 102, 88, 108, 107, 94, 116, 116, 102, 134, 134, 121, 113, 113, 100, 137, 135, 122, 143, 140, 128, 144, 144, 128, 147, 145, 132, 74, 72, 57, 17, 17, 3, 6, 6, 0, 253, 252, 243, 106, 105, 97, 241, 240, 234, 247, 246, 240, 247, 243, 237, 243, 239, 236, 241, 237, 231, 239, 237, 233, 238, 236, 234, 239, 237, 233, 241, 236, 235, 238, 236, 234, 239, 237, 235, 237, 233, 232, 238, 234, 233, 240, 238, 237, 234, 232, 231, 238, 234, 233, 238, 234, 233, 236, 234, 232, 233, 231, 230, 223, 221, 219, 235, 230, 230, 235, 230, 230, 235, 230, 230, 233, 228, 227, 233, 228, 227, 234, 229, 228, 229, 225, 224, 229, 225, 224, 230, 226, 225, 227, 223, 220, 229, 225, 222, 229, 225, 222, 235, 231, 228, 235, 231, 228, 249, 245, 242, 255, 255, 255, 243, 239, 238, 75, 71, 70, 58, 53, 53, 68, 66, 64, 63, 61, 60, 67, 64, 65, 75, 72, 73, 87, 84, 85, 83, 81, 81, 94, 89, 91, 90, 88, 88, 103, 100, 103, 103, 100, 103, 110, 107, 110, 90, 87, 90, 97, 95, 95, 104, 101, 104, 99, 97, 98, 99, 97, 98, 88, 85, 86, 98, 96, 97, 80, 78, 76, 91, 89, 90, 83, 83, 81, 84, 85, 80, 104, 105, 98, 109, 108, 99, 104, 103, 94, 85, 85, 76, 92, 92, 83, 95, 94, 85, 102, 99, 91, 83, 82, 73, 110, 109, 100, 111, 108, 100, 108, 107, 98, 102, 101, 92, 106, 106, 95, 79, 76, 68, 96, 95, 84, 102, 99, 89, 86, 83, 72, 100, 97, 86, 88, 85, 75, 93, 90, 80, 91, 90, 82, 91, 88, 77, 87, 86, 77, 99, 95, 87, 95, 92, 84, 80, 79, 70, 90, 89, 80, 83, 83, 71, 91, 91, 80, 96, 95, 84, 84, 84, 72, 71, 71, 60, 87, 86, 75, 102, 101, 90, 91, 91, 80, 89, 88, 77, 98, 98, 86, 97, 96, 85, 92, 92, 81, 90, 90, 78, 81, 80, 69, 90, 90, 78, 92, 92, 81, 95, 94, 83, 88, 87, 76, 95, 94, 83, 95, 94, 83, 71, 71, 60, 87, 86, 75, 96, 95, 84, 81, 80, 69, 94, 93, 82, 98, 98, 86, 83, 82, 73, 85, 85, 76, 96, 95, 86, 82, 81, 72, 68, 67, 58, 91, 90, 82, 74, 73, 64, 100, 100, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 114, 107, 0, 0, 0, 10, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 23, 16, 55, 54, 48, 77, 76, 70, 84, 83, 77, 88, 86, 80, 83, 84, 77, 85, 86, 79, 71, 72, 65, 69, 70, 61, 73, 75, 65, 59, 61, 51, 56, 57, 48, 40, 41, 32, 83, 85, 72, 66, 68, 56, 70, 70, 59, 66, 65, 54, 64, 64, 55, 62, 62, 50, 71, 71, 60, 83, 83, 71, 92, 94, 80, 70, 72, 58, 71, 73, 59, 105, 105, 92, 91, 93, 79, 90, 90, 76, 85, 87, 73, 100, 100, 87, 89, 89, 75, 124, 124, 110, 116, 116, 100, 96, 96, 82, 110, 110, 94, 187, 187, 173, 90, 90, 76, 118, 118, 104, 90, 90, 76, 127, 127, 114, 120, 120, 109, 99, 99, 86, 109, 109, 95, 109, 109, 95, 110, 110, 96, 127, 127, 114, 127, 127, 114, 104, 104, 88, 109, 109, 95, 127, 127, 114, 125, 125, 109, 142, 143, 127, 130, 129, 116, 45, 44, 33, 27, 27, 15, 6, 6, 0, 69, 69, 57, 141, 141, 128, 225, 223, 212, 242, 239, 228, 245, 242, 234, 236, 233, 225, 241, 237, 231, 237, 234, 228, 233, 232, 228, 233, 232, 228, 236, 234, 230, 238, 236, 232, 241, 237, 233, 236, 234, 230, 234, 232, 231, 237, 235, 231, 238, 236, 234, 239, 237, 235, 238, 236, 234, 242, 240, 239, 234, 232, 231, 240, 238, 237, 234, 232, 231, 236, 234, 232, 236, 234, 232, 234, 232, 231, 232, 230, 228, 231, 229, 227, 235, 230, 230, 233, 228, 227, 231, 227, 226, 234, 229, 228, 230, 226, 225, 231, 227, 226, 230, 226, 225, 225, 221, 220, 242, 238, 235, 255, 255, 255, 255, 255, 255, 145, 141, 138, 35, 30, 29, 57, 53, 49, 67, 63, 60, 72, 67, 67, 82, 78, 77, 78, 73, 74, 80, 75, 77, 100, 95, 97, 98, 96, 97, 96, 93, 94, 92, 90, 93, 96, 93, 94, 95, 92, 93, 91, 89, 90, 106, 104, 105, 94, 91, 92, 78, 76, 75, 102, 100, 98, 67, 64, 65, 110, 108, 106, 80, 78, 74, 78, 77, 73, 100, 99, 95, 116, 114, 110, 99, 97, 96, 99, 97, 96, 91, 89, 88, 84, 83, 79, 112, 111, 105, 104, 103, 94, 102, 104, 94, 112, 112, 100, 78, 80, 68, 105, 104, 96, 109, 108, 99, 92, 92, 83, 124, 121, 111, 90, 90, 78, 89, 86, 78, 110, 107, 99, 90, 89, 80, 100, 97, 89, 81, 78, 70, 99, 96, 85, 87, 84, 74, 85, 82, 71, 85, 82, 71, 83, 81, 70, 96, 93, 83, 81, 78, 68, 102, 99, 89, 87, 84, 74, 85, 81, 73, 89, 86, 78, 100, 97, 86, 85, 81, 73, 112, 112, 100, 102, 101, 90, 84, 84, 72, 82, 81, 70, 87, 86, 75, 97, 96, 85, 89, 88, 77, 91, 91, 80, 90, 90, 78, 87, 86, 75, 98, 98, 86, 95, 94, 83, 81, 80, 69, 84, 84, 72, 87, 86, 75, 80, 79, 68, 78, 78, 67, 87, 86, 75, 85, 85, 74, 80, 79, 68, 104, 104, 92, 98, 98, 86, 84, 84, 72, 82, 81, 70, 83, 83, 71, 103, 102, 91, 102, 101, 92, 87, 86, 77, 91, 90, 82, 91, 90, 82, 105, 104, 96, 59, 58, 49, 91, 90, 82, 87, 89, 77, 78, 80, 68, 87, 86, 77, 83, 82, 73, 98, 99, 90, 64, 65, 58, 74, 76, 68, 62, 63, 56, 53, 55, 48, 69, 70, 63, 69, 70, 63, 60, 62, 54, 60, 62, 54, 62, 63, 56, 73, 74, 67, 60, 62, 54, 67, 69, 62, 58, 59, 52, 58, 59, 52, 49, 50, 43, 62, 63, 56, 62, 63, 56, 66, 68, 58, 59, 61, 51, 47, 48, 41, 56, 57, 50, 55, 56, 49, 52, 54, 46, 62, 63, 56, 62, 63, 56, 63, 64, 57, 67, 66, 57, 68, 67, 60, 61, 60, 51, 60, 62, 52, 66, 68, 58, 64, 65, 58, 66, 67, 60, 66, 64, 58, 60, 58, 52, 48, 47, 41, 52, 51, 42, 78, 78, 69, 60, 59, 50, 53, 52, 43, 62, 61, 52, 57, 59, 49, 94, 96, 86, 66, 65, 54, 68, 67, 56, 66, 65, 54, 66, 68, 56, 65, 67, 55, 54, 53, 42, 87, 86, 75, 108, 107, 94, 73, 72, 61, 67, 66, 55, 144, 143, 132, 96, 95, 84, 80, 82, 70, 81, 80, 69, 66, 65, 52, 82, 82, 68, 69, 69, 55, 85, 85, 72, 68, 68, 54, 90, 90, 76, 89, 89, 75, 88, 88, 72, 108, 107, 94, 96, 96, 82, 100, 100, 87, 112, 112, 96, 110, 110, 96, 108, 107, 94, 133, 133, 119, 113, 113, 102, 119, 119, 107, 104, 104, 92, 97, 97, 83, 120, 120, 109, 118, 117, 106, 135, 135, 122, 141, 141, 129, 74, 73, 62, 114, 114, 103, 28, 28, 17, 89, 88, 77, 75, 74, 63, 155, 154, 146, 239, 238, 229, 234, 234, 225, 230, 228, 222, 237, 235, 229, 239, 238, 229, 233, 232, 226, 242, 241, 235, 234, 233, 227, 237, 235, 231, 236, 234, 230, 236, 234, 230, 237, 235, 231, 238, 236, 232, 238, 236, 232, 240, 239, 235, 238, 236, 232, 237, 235, 231, 238, 236, 232, 237, 235, 231, 239, 237, 233, 237, 235, 231, 238, 234, 231, 238, 234, 231, 237, 233, 232, 240, 235, 234, 237, 233, 232, 231, 227, 226, 236, 232, 231, 233, 228, 227, 231, 227, 226, 234, 229, 228, 235, 230, 230, 232, 230, 228, 235, 230, 230, 233, 228, 227, 255, 255, 255, 255, 255, 255, 215, 211, 208, 156, 152, 149, 56, 52, 48, 70, 65, 62, 77, 72, 71, 79, 74, 74, 77, 72, 71, 88, 84, 81, 108, 105, 104, 99, 94, 93, 85, 80, 81, 97, 93, 94, 88, 85, 86, 106, 104, 105, 94, 91, 90, 78, 76, 77, 104, 102, 100, 87, 85, 83, 92, 90, 89, 82, 80, 78, 97, 95, 93, 105, 103, 102, 99, 97, 96, 105, 104, 100, 106, 105, 101, 89, 87, 83, 104, 102, 98, 96, 95, 88, 104, 103, 96, 89, 88, 81, 103, 101, 95, 92, 91, 85, 99, 98, 94, 77, 76, 72, 88, 86, 80, 105, 104, 96, 76, 76, 64, 92, 92, 83, 91, 91, 80, 80, 79, 68, 111, 110, 101, 88, 87, 78, 78, 78, 67, 111, 110, 99, 78, 78, 67, 87, 86, 75, 95, 94, 83, 97, 96, 87, 95, 92, 84, 77, 77, 65, 84, 84, 72, 95, 92, 82, 77, 74, 63, 89, 86, 76, 91, 88, 75, 89, 88, 77, 102, 99, 89, 95, 92, 82, 73, 70, 60, 99, 96, 85, 91, 87, 79, 96, 93, 83, 100, 97, 86, 92, 89, 78, 104, 104, 92, 102, 101, 90, 95, 94, 83, 87, 84, 74, 97, 96, 85, 88, 87, 76, 90, 90, 78, 98, 98, 86, 66, 65, 54, 90, 90, 78, 81, 80, 69, 92, 92, 81, 109, 108, 97, 94, 93, 82, 94, 93, 82, 97, 95, 84, 87, 86, 75, 94, 93, 82, 89, 88, 77, 84, 84, 72, 109, 108, 97, 77, 77, 65, 87, 86, 75, 82, 81, 72, 89, 88, 77, 96, 95, 84, 87, 86, 75, 100, 100, 89, 75, 74, 65, 72, 74, 64, 111, 112, 103, 92, 94, 84, 84, 84, 72, 73, 72, 61, 92, 88, 80, 108, 105, 97, 88, 85, 77, 85, 81, 73, 82, 81, 72, 78, 78, 69, 60, 62, 54, 94, 96, 88, 70, 71, 64, 68, 67, 60, 69, 70, 63, 77, 78, 71, 56, 57, 50, 62, 63, 54, 66, 68, 58, 64, 64, 55, 77, 76, 70, 66, 65, 56, 66, 67, 60, 64, 63, 57, 49, 50, 41, 63, 64, 55, 53, 55, 46, 57, 59, 49, 62, 61, 52, 49, 50, 41, 62, 63, 54, 72, 74, 64, 64, 66, 56, 43, 43, 34, 45, 44, 35, 57, 57, 48, 64, 64, 55, 68, 67, 58, 64, 64, 55, 77, 76, 68, 72, 69, 61, 70, 66, 58, 102, 99, 89, 71, 68, 57, 82, 81, 70, 89, 88, 77, 64, 64, 53, 99, 99, 88, 63, 63, 52, 63, 63, 52, 77, 79, 67, 60, 59, 48, 84, 84, 72, 71, 71, 60, 70, 72, 60, 69, 69, 57, 82, 81, 70, 76, 76, 62, 97, 95, 84, 71, 68, 55, 74, 73, 62, 108, 105, 95, 83, 83, 71, 103, 102, 91, 102, 102, 88, 90, 90, 76, 76, 76, 64, 73, 72, 59, 104, 104, 90, 94, 93, 80, 69, 69, 55, 85, 85, 72, 105, 105, 92, 110, 110, 96, 104, 104, 90, 95, 95, 79, 132, 132, 118, 132, 131, 120, 105, 105, 94, 53, 52, 43, 0, 0, 0, 0, 0, 0, 38, 37, 28, 46, 45, 36, 100, 102, 92, 197, 196, 190, 245, 244, 237, 238, 237, 230, 219, 218, 212, 228, 229, 222, 227, 228, 221, 222, 223, 216, 227, 228, 221, 234, 233, 227, 232, 233, 226, 233, 234, 227, 234, 233, 227, 232, 231, 224, 234, 233, 229, 232, 230, 226, 234, 233, 229, 232, 230, 226, 236, 234, 230, 236, 234, 230, 236, 234, 230, 237, 235, 231, 239, 237, 233, 236, 234, 230, 236, 234, 230, 236, 234, 230, 233, 232, 228, 233, 231, 230, 234, 233, 229, 236, 234, 232, 236, 232, 231, 236, 234, 232, 236, 232, 231, 236, 232, 231, 238, 234, 233, 225, 221, 220, 235, 230, 230, 225, 222, 218, 242, 238, 235, 255, 255, 255, 255, 255, 255, 95, 91, 88, 75, 71, 68, 71, 67, 64, 83, 79, 78, 71, 66, 65, 85, 80, 79, 82, 78, 77, 93, 88, 88, 89, 85, 84, 89, 85, 84, 88, 84, 81, 96, 92, 91, 103, 99, 98, 88, 86, 82, 102, 100, 98, 93, 88, 88, 89, 87, 85, 89, 87, 85, 80, 78, 76, 97, 95, 93, 88, 86, 82, 96, 94, 90, 89, 88, 81, 90, 89, 82, 90, 89, 80, 104, 103, 96, 98, 97, 91, 112, 111, 105, 102, 100, 94, 104, 103, 96, 97, 96, 89, 100, 100, 91, 105, 104, 96, 68, 67, 58, 69, 68, 60, 91, 90, 82, 90, 89, 80, 111, 110, 101, 85, 85, 76, 88, 87, 78, 85, 85, 74, 104, 104, 92, 106, 106, 95, 88, 87, 76, 99, 99, 88, 82, 81, 70, 88, 87, 76, 73, 72, 61, 94, 91, 81, 82, 81, 70, 87, 84, 74, 97, 95, 84, 88, 87, 76, 87, 86, 75, 83, 83, 71, 91, 88, 77, 99, 99, 88, 91, 88, 77, 89, 86, 76, 99, 99, 88, 102, 99, 89, 83, 81, 68, 87, 85, 72, 95, 92, 82, 100, 97, 86, 92, 89, 78, 95, 92, 82, 94, 91, 81, 100, 100, 89, 80, 79, 68, 69, 69, 57, 100, 100, 89, 92, 92, 79, 104, 104, 92, 95, 94, 83, 80, 79, 68, 102, 99, 89, 105, 105, 94, 79, 76, 65, 90, 90, 78, 82, 81, 70, 88, 85, 75, 111, 109, 98, 77, 77, 65, 95, 92, 82, 88, 85, 75, 82, 81, 70, 98, 98, 86, 96, 95, 84, 73, 72, 61, 94, 93, 82, 102, 101, 90, 71, 71, 60, 88, 87, 76, 60, 59, 48, 97, 96, 87, 88, 87, 78, 96, 95, 84, 88, 87, 78, 76, 75, 66, 91, 90, 82, 75, 74, 63, 69, 69, 57, 114, 108, 101, 78, 74, 66, 87, 86, 77, 73, 72, 63, 109, 108, 99, 73, 72, 63, 71, 71, 62, 71, 70, 64, 113, 112, 106, 91, 90, 84, 76, 77, 68, 59, 61, 51, 70, 69, 61, 73, 75, 65, 78, 78, 69, 67, 65, 59, 77, 76, 70, 70, 69, 61, 59, 57, 51, 62, 61, 52, 74, 73, 64, 67, 69, 60, 56, 57, 48, 67, 69, 60, 59, 61, 51, 83, 84, 75, 70, 71, 62, 55, 56, 47, 80, 78, 72, 61, 60, 51, 56, 55, 47, 99, 98, 90, 82, 79, 69, 88, 85, 75, 84, 83, 75, 49, 49, 38, 89, 88, 77, 63, 60, 49, 61, 58, 50, 70, 70, 59, 68, 67, 58, 70, 70, 59, 63, 63, 52, 70, 70, 59, 106, 106, 95, 68, 67, 56, 77, 77, 65, 103, 102, 91, 80, 79, 68, 71, 71, 60, 91, 91, 80, 84, 84, 72, 80, 77, 67, 77, 77, 64, 83, 81, 68, 94, 92, 79, 83, 83, 71, 89, 88, 77, 84, 84, 72, 75, 74, 63, 73, 72, 61, 94, 93, 82, 94, 93, 82, 82, 81, 70, 25, 24, 13, 0, 0, 0, 0, 0, 0, 2, 0, 0, 31, 28, 18, 202, 202, 188, 123, 122, 111, 192, 192, 183, 245, 244, 237, 232, 231, 224, 239, 238, 231, 211, 209, 205, 226, 225, 221, 222, 220, 216, 236, 234, 230, 222, 223, 218, 222, 223, 218, 226, 224, 223, 220, 221, 216, 220, 221, 216, 223, 224, 220, 227, 228, 223, 225, 225, 221, 228, 229, 224, 221, 222, 217, 229, 230, 225, 232, 230, 226, 236, 234, 230, 234, 233, 229, 232, 230, 226, 233, 232, 228, 233, 232, 228, 233, 232, 228, 238, 236, 232, 237, 235, 231, 233, 232, 228, 234, 233, 229, 233, 232, 228, 234, 233, 229, 234, 233, 229, 238, 236, 232, 234, 233, 229, 237, 235, 231, 230, 228, 224, 233, 232, 228, 237, 235, 231, 231, 229, 227, 229, 227, 223, 255, 255, 255, 255, 255, 255, 193, 189, 186, 248, 244, 240, 97, 94, 90, 77, 72, 73, 83, 79, 80, 79, 74, 76, 75, 70, 74, 75, 70, 74, 101, 96, 100, 94, 89, 91, 75, 71, 72, 106, 101, 102, 99, 97, 96, 107, 103, 100, 81, 77, 74, 88, 86, 82, 100, 99, 95, 100, 96, 91, 95, 92, 86, 84, 83, 77, 91, 90, 84, 97, 96, 89, 98, 96, 93, 75, 73, 69, 108, 104, 101, 85, 84, 78, 94, 92, 86, 90, 89, 80, 88, 87, 78, 83, 82, 73, 97, 96, 87, 88, 87, 78, 97, 96, 87, 110, 109, 100, 100, 99, 93, 89, 88, 81, 85, 84, 78, 100, 102, 92, 68, 67, 58, 113, 112, 104, 91, 90, 82, 89, 88, 79, 89, 88, 79, 110, 109, 100, 111, 110, 101, 80, 79, 70, 81, 80, 71, 99, 99, 88, 104, 104, 92, 105, 105, 94, 75, 74, 63, 100, 100, 89, 97, 96, 85, 104, 104, 92, 70, 70, 59, 92, 92, 81, 106, 106, 95, 95, 92, 82, 74, 73, 62, 91, 91, 80, 85, 82, 71, 86, 83, 72, 94, 92, 79, 91, 91, 80, 94, 92, 79, 101, 98, 88, 98, 98, 84, 104, 102, 89, 106, 103, 90, 96, 94, 81, 77, 74, 63, 82, 79, 69, 91, 88, 77, 114, 111, 100, 100, 97, 86, 94, 92, 79, 97, 97, 83, 104, 104, 90, 63, 63, 50, 95, 95, 81, 97, 96, 85, 85, 85, 74, 114, 114, 103, 92, 89, 78, 106, 106, 95, 88, 87, 76, 80, 79, 68, 90, 90, 78, 86, 83, 72, 96, 93, 83, 95, 92, 82, 99, 99, 88, 124, 121, 113, 68, 67, 58, 117, 116, 107, 83, 82, 73, 84, 83, 75, 74, 73, 64, 105, 104, 96, 80, 79, 68, 100, 100, 91, 96, 95, 86, 98, 97, 89, 106, 105, 97, 92, 92, 83, 83, 82, 73, 71, 71, 62, 89, 88, 79, 78, 80, 68, 77, 79, 67, 92, 86, 79, 87, 84, 76, 89, 86, 76, 90, 90, 78, 83, 82, 73, 85, 85, 76, 76, 75, 66, 75, 74, 67, 96, 95, 88, 85, 84, 78, 81, 80, 71, 74, 73, 64, 87, 86, 77, 67, 66, 55, 90, 89, 80, 69, 68, 60, 70, 69, 61, 74, 73, 64, 74, 73, 64, 61, 60, 51, 125, 125, 113, 48, 47, 39, 63, 63, 52, 63, 62, 54, 68, 67, 58, 69, 68, 60, 71, 71, 62, 74, 73, 64, 78, 78, 69, 79, 76, 68, 79, 76, 68, 72, 69, 59, 77, 74, 63, 82, 79, 69, 72, 69, 59, 74, 71, 61, 88, 87, 76, 73, 70, 60, 77, 74, 63, 85, 82, 71, 194, 191, 181, 96, 93, 83, 80, 79, 68, 75, 74, 65, 75, 74, 63, 70, 70, 59, 71, 71, 60, 91, 91, 80, 97, 96, 85, 89, 88, 77, 102, 101, 90, 78, 78, 65, 42, 42, 29, 33, 31, 18, 80, 77, 67, 0, 0, 0, 91, 91, 80, 19, 17, 6, 6, 6, 0, 20, 20, 8, 103, 102, 91, 174, 173, 162, 230, 229, 218, 232, 232, 220, 227, 227, 216, 225, 225, 213, 215, 214, 203, 218, 217, 208, 217, 216, 207, 225, 224, 216, 218, 217, 210, 223, 221, 215, 223, 221, 217, 222, 223, 218, 223, 221, 217, 213, 214, 209, 223, 224, 220, 226, 226, 224, 236, 237, 232, 223, 224, 220, 226, 226, 224, 223, 224, 222, 225, 225, 223, 226, 226, 224, 225, 225, 223, 226, 226, 224, 226, 227, 222, 222, 223, 218, 229, 230, 225, 230, 231, 226, 227, 226, 222, 233, 232, 228, 232, 230, 226, 230, 228, 224, 227, 226, 222, 234, 233, 229, 232, 230, 226, 232, 230, 226, 233, 232, 228, 232, 230, 226, 230, 228, 224, 236, 234, 230, 234, 233, 229, 233, 232, 228, 231, 229, 225, 229, 225, 222, 253, 251, 247, 255, 255, 255, 210, 206, 205, 46, 42, 41, 54, 50, 49, 70, 65, 66, 71, 69, 70, 73, 70, 71, 85, 83, 84, 96, 93, 94, 90, 87, 90, 91, 85, 89, 104, 101, 104, 85, 83, 86, 97, 95, 95, 99, 97, 98, 104, 102, 100, 94, 91, 90, 104, 102, 100, 96, 94, 92, 100, 98, 97, 93, 89, 86, 100, 96, 93, 77, 73, 67, 94, 90, 85, 75, 72, 64, 102, 99, 91, 110, 107, 99, 92, 92, 83, 97, 96, 89, 104, 103, 96, 98, 97, 91, 95, 92, 84, 95, 93, 87, 97, 96, 87, 95, 94, 85, 96, 95, 84, 89, 88, 77, 90, 89, 80, 108, 107, 98, 78, 78, 67, 90, 89, 80, 95, 94, 85, 106, 105, 97, 114, 114, 105, 102, 101, 92, 92, 92, 83, 103, 102, 91, 77, 76, 68, 89, 88, 79, 78, 78, 67, 77, 77, 65, 83, 82, 73, 85, 85, 74, 102, 101, 90, 83, 83, 71, 76, 76, 64, 71, 71, 58, 78, 78, 65, 108, 107, 96, 95, 94, 83, 91, 91, 80, 87, 87, 73, 95, 95, 81, 108, 107, 94, 90, 90, 76, 76, 76, 62, 89, 89, 75, 102, 100, 87, 89, 87, 74, 84, 84, 70, 107, 104, 92, 103, 101, 88, 99, 96, 83, 93, 90, 78, 87, 85, 72, 100, 97, 84, 86, 83, 70, 71, 68, 57, 109, 106, 96, 109, 106, 96, 108, 105, 95, 85, 82, 69, 108, 107, 94, 120, 117, 106, 113, 113, 102, 99, 99, 88, 83, 83, 71, 100, 100, 89, 117, 116, 107, 116, 115, 106, 100, 97, 86, 98, 98, 86, 110, 107, 99, 125, 122, 114, 117, 114, 104, 96, 93, 83, 89, 86, 76, 95, 92, 82, 80, 77, 67, 97, 94, 86, 104, 103, 94, 78, 78, 69, 104, 103, 94, 97, 96, 87, 88, 87, 78, 100, 100, 91, 83, 83, 71, 92, 92, 83, 91, 91, 80, 97, 96, 85, 99, 98, 90, 112, 111, 103, 87, 86, 77, 78, 78, 69, 84, 83, 75, 85, 85, 74, 82, 81, 70, 104, 102, 91, 102, 99, 89, 91, 88, 77, 95, 92, 82, 89, 86, 76, 88, 87, 78, 95, 94, 85, 106, 105, 97, 114, 114, 105, 89, 88, 79, 100, 100, 91, 64, 64, 55, 88, 85, 75, 85, 81, 73, 89, 86, 78, 80, 79, 70, 81, 80, 71, 84, 83, 75, 78, 78, 69, 95, 94, 85, 83, 83, 71, 74, 73, 64, 98, 98, 86, 68, 67, 56, 74, 73, 62, 73, 72, 61, 85, 85, 74, 85, 85, 74, 72, 69, 59, 99, 96, 85, 108, 105, 97, 80, 77, 67, 83, 81, 70, 87, 84, 74, 84, 83, 75, 74, 73, 64, 62, 62, 50, 32, 31, 20, 21, 20, 12, 0, 0, 0, 14, 10, 2, 93, 90, 82, 0, 0, 0, 0, 0, 0, 2, 1, 0, 70, 70, 59, 43, 43, 32, 87, 86, 75, 123, 122, 111, 131, 130, 119, 184, 184, 173, 215, 214, 203, 222, 219, 209, 209, 207, 194, 219, 216, 205, 210, 209, 198, 207, 204, 194, 209, 206, 196, 205, 205, 194, 208, 207, 196, 209, 208, 197, 211, 211, 199, 209, 208, 197, 218, 218, 206, 213, 213, 202, 216, 215, 206, 222, 219, 211, 218, 217, 208, 219, 218, 212, 219, 218, 212, 225, 224, 218, 223, 224, 220, 221, 222, 217, 220, 219, 215, 221, 222, 217, 226, 226, 224, 220, 220, 218, 225, 225, 223, 222, 223, 220, 222, 223, 220, 222, 223, 220, 224, 222, 220, 223, 224, 222, 229, 230, 227, 222, 223, 220, 226, 226, 224, 225, 225, 223, 226, 227, 222, 225, 225, 221, 226, 227, 222, 227, 226, 222, 227, 226, 222, 229, 227, 223, 233, 232, 228, 231, 229, 225, 233, 232, 228, 232, 230, 226, 234, 233, 229, 237, 235, 231, 234, 233, 227, 238, 236, 232, 255, 255, 255, 255, 255, 255, 71, 70, 66, 55, 53, 49, 82, 78, 77, 88, 86, 84, 74, 71, 72, 87, 84, 85, 90, 87, 90, 95, 92, 95, 96, 91, 95, 98, 95, 99, 97, 93, 94, 96, 93, 94, 106, 104, 105, 100, 95, 95, 104, 102, 102, 97, 95, 95, 99, 97, 96, 103, 101, 99, 92, 87, 86, 92, 88, 84, 87, 83, 80, 94, 90, 87, 91, 87, 83, 90, 88, 84, 95, 93, 87, 95, 92, 86, 93, 90, 82, 97, 94, 86, 78, 74, 66, 97, 94, 86, 103, 100, 92, 87, 84, 76, 79, 76, 68, 103, 102, 93, 82, 79, 71, 81, 80, 71, 80, 77, 69, 101, 98, 90, 100, 100, 91, 89, 86, 76, 109, 108, 97, 92, 89, 78, 83, 82, 73, 71, 71, 62, 110, 109, 100, 95, 94, 85, 103, 102, 93, 85, 85, 74, 83, 83, 71, 95, 94, 83, 98, 98, 86, 104, 104, 92, 77, 77, 65, 89, 88, 77, 105, 105, 94, 89, 88, 77, 91, 91, 80, 105, 105, 94, 97, 96, 85, 103, 102, 91, 87, 86, 75, 103, 102, 91, 82, 82, 68, 68, 67, 56, 90, 90, 78, 94, 93, 80, 88, 87, 76, 84, 84, 70, 104, 104, 90, 98, 98, 84, 88, 88, 74, 105, 105, 92, 78, 75, 62, 89, 89, 75, 92, 89, 76, 88, 88, 74, 82, 80, 67, 77, 74, 61, 85, 82, 69, 81, 79, 66, 99, 96, 83, 91, 88, 75, 91, 88, 77, 89, 86, 76, 104, 102, 91, 93, 90, 80, 116, 113, 103, 100, 97, 86, 99, 99, 88, 74, 73, 62, 85, 85, 74, 98, 98, 86, 87, 86, 75, 89, 88, 79, 118, 117, 108, 87, 86, 75, 89, 86, 78, 77, 76, 68, 116, 113, 105, 72, 69, 59, 95, 92, 84, 78, 78, 67, 75, 73, 62, 88, 85, 77, 73, 72, 63, 108, 107, 98, 95, 94, 85, 92, 92, 83, 91, 90, 82, 99, 98, 90, 82, 81, 72, 64, 64, 55, 98, 97, 89, 92, 92, 83, 94, 93, 84, 100, 100, 91, 94, 93, 84, 84, 83, 75, 83, 82, 73, 74, 73, 64, 92, 92, 83, 221, 216, 204, 209, 204, 192, 170, 165, 153, 147, 145, 134, 101, 98, 90, 78, 74, 66, 74, 71, 63, 92, 88, 80, 83, 80, 72, 30, 27, 19, 83, 81, 70, 56, 53, 42, 79, 76, 68, 33, 31, 20, 43, 40, 29, 91, 88, 77, 65, 62, 54, 50, 47, 39, 66, 63, 55, 180, 177, 169, 85, 82, 71, 63, 60, 49, 71, 68, 57, 75, 73, 62, 91, 88, 77, 132, 129, 119, 182, 180, 169, 155, 152, 141, 191, 188, 177, 194, 191, 181, 205, 202, 191, 203, 201, 190, 212, 209, 198, 209, 206, 196, 210, 208, 197, 210, 209, 198, 216, 215, 204, 205, 204, 196, 195, 194, 185, 208, 207, 198, 203, 202, 191, 208, 207, 198, 204, 203, 194, 204, 204, 192, 204, 204, 192, 203, 202, 191, 198, 198, 187, 203, 202, 191, 205, 205, 194, 201, 200, 189, 208, 207, 196, 205, 205, 192, 209, 208, 197, 205, 205, 192, 204, 204, 190, 208, 207, 196, 210, 209, 198, 210, 209, 198, 215, 214, 205, 209, 208, 199, 212, 211, 203, 212, 212, 201, 209, 208, 199, 212, 211, 203, 210, 209, 200, 219, 218, 210, 216, 214, 208, 217, 216, 209, 218, 216, 212, 217, 215, 211, 224, 222, 218, 220, 219, 215, 220, 218, 217, 219, 219, 217, 218, 218, 216, 222, 219, 218, 213, 213, 211, 220, 220, 218, 219, 219, 217, 225, 225, 223, 221, 221, 219, 216, 217, 214, 222, 223, 220, 224, 222, 220, 223, 221, 219, 220, 218, 217, 226, 224, 223, 227, 225, 224, 226, 224, 223, 230, 228, 226, 227, 226, 222, 222, 220, 216, 223, 221, 217, 239, 237, 233, 255, 255, 255, 255, 255, 255, 160, 158, 154, 35, 34, 30, 54, 52, 48, 91, 90, 86, 78, 77, 73, 88, 86, 84, 91, 89, 88, 83, 81, 79, 98, 96, 95, 100, 98, 97, 98, 96, 95, 96, 92, 93, 102, 97, 99, 95, 90, 92, 102, 97, 99, 91, 89, 90, 96, 92, 91, 96, 92, 91, 102, 98, 97, 91, 86, 85, 98, 96, 95, 105, 104, 100, 93, 89, 86, 82, 81, 74, 97, 96, 89, 100, 96, 91, 93, 89, 84, 79, 75, 70, 88, 85, 79, 74, 71, 65, 74, 72, 66, 91, 87, 81, 113, 109, 103, 98, 97, 89, 77, 73, 65, 97, 94, 86, 104, 101, 93, 82, 79, 71, 88, 85, 75, 81, 80, 69, 78, 78, 67, 78, 75, 64, 102, 99, 91, 107, 104, 94, 85, 82, 71, 100, 97, 89, 102, 99, 89, 99, 95, 87, 88, 85, 75, 74, 71, 63, 105, 104, 96, 95, 94, 85, 76, 75, 66, 91, 91, 80, 84, 84, 72, 81, 80, 69, 94, 96, 84, 85, 87, 75, 78, 78, 67, 104, 104, 92, 82, 81, 70, 78, 78, 67, 97, 96, 85, 102, 101, 90, 70, 72, 60, 85, 85, 74, 91, 91, 78, 92, 92, 81, 91, 91, 78, 96, 96, 82, 89, 88, 77, 89, 88, 77, 99, 99, 86, 97, 97, 83, 90, 90, 76, 84, 84, 70, 96, 95, 84, 74, 73, 62, 98, 98, 84, 116, 115, 104, 94, 93, 80, 96, 96, 82, 108, 105, 93, 91, 91, 78, 99, 96, 83, 96, 94, 81, 103, 101, 88, 107, 104, 92, 80, 78, 65, 120, 117, 104, 113, 110, 99, 81, 79, 66, 96, 93, 83, 111, 109, 98, 92, 89, 78, 110, 109, 98, 114, 114, 103, 98, 98, 86, 87, 86, 75, 80, 79, 68, 107, 104, 94, 69, 68, 60, 75, 74, 65, 91, 90, 82, 84, 83, 75, 96, 93, 85, 98, 97, 89, 109, 106, 96, 96, 95, 84, 67, 64, 56, 83, 80, 72, 76, 75, 66, 107, 104, 96, 90, 89, 80, 69, 68, 60, 73, 72, 63, 91, 90, 82, 102, 101, 92, 78, 74, 66, 67, 66, 57, 97, 96, 87, 99, 98, 90, 106, 105, 97, 88, 87, 78, 95, 94, 85, 98, 97, 89, 89, 88, 79, 94, 93, 84, 235, 232, 222, 233, 230, 219, 228, 225, 215, 220, 217, 206, 229, 226, 216, 222, 219, 209, 228, 225, 215, 225, 223, 212, 219, 216, 205, 224, 221, 211, 225, 223, 212, 223, 220, 210, 221, 218, 207, 223, 220, 210, 219, 216, 205, 220, 217, 206, 214, 211, 201, 216, 213, 203, 217, 214, 206, 214, 211, 203, 217, 214, 204, 209, 206, 196, 216, 213, 203, 212, 209, 198, 213, 210, 199, 214, 211, 201, 202, 199, 189, 209, 208, 197, 210, 208, 197, 212, 209, 198, 210, 209, 198, 212, 209, 198, 212, 209, 198, 208, 207, 196, 210, 209, 198, 208, 207, 198, 204, 204, 192, 208, 207, 196, 202, 201, 190, 208, 207, 196, 205, 205, 194, 205, 204, 196, 206, 206, 195, 205, 204, 196, 205, 205, 194, 204, 204, 192, 203, 202, 191, 203, 202, 191, 203, 202, 191, 203, 202, 191, 205, 205, 194, 203, 203, 189, 204, 204, 192, 204, 204, 192, 208, 207, 196, 205, 205, 194, 210, 209, 198, 210, 209, 200, 211, 210, 201, 211, 210, 201, 210, 209, 200, 226, 225, 217, 211, 210, 201, 212, 211, 203, 205, 204, 196, 216, 214, 208, 217, 216, 209, 216, 214, 210, 216, 214, 210, 218, 216, 212, 220, 218, 217, 218, 216, 214, 219, 217, 216, 219, 217, 216, 218, 218, 216, 219, 219, 217, 220, 220, 218, 220, 220, 218, 219, 219, 217, 217, 214, 215, 222, 223, 220, 216, 217, 214, 220, 218, 217, 223, 221, 219, 230, 228, 226, 211, 209, 207, 219, 217, 216, 244, 242, 238, 255, 255, 255, 255, 255, 255, 133, 132, 126, 168, 167, 160, 47, 46, 39, 94, 92, 88, 80, 78, 74, 76, 75, 68, 82, 80, 76, 88, 86, 84, 85, 83, 82, 127, 125, 124, 84, 82, 81, 92, 90, 91, 90, 88, 86, 98, 96, 97, 95, 92, 93, 88, 86, 84, 98, 96, 95, 102, 100, 98, 89, 85, 84, 97, 95, 93, 88, 86, 84, 94, 90, 89, 96, 94, 92, 96, 94, 90, 88, 86, 82, 87, 85, 81, 104, 102, 98, 96, 95, 88, 91, 90, 84, 97, 96, 89, 100, 99, 93, 81, 78, 72, 77, 76, 70, 91, 90, 84, 86, 82, 77, 85, 84, 78, 96, 95, 88, 81, 80, 71, 80, 79, 70, 87, 86, 77, 87, 84, 76, 103, 100, 92, 83, 80, 72, 114, 111, 103, 104, 102, 91, 83, 81, 70, 102, 99, 89, 91, 88, 77, 102, 99, 89, 83, 81, 70, 86, 83, 72, 89, 86, 76, 67, 64, 54, 108, 105, 97, 89, 86, 76, 106, 106, 95, 75, 74, 65, 69, 69, 57, 95, 94, 83, 100, 100, 89, 109, 108, 97, 87, 86, 77, 64, 64, 53, 88, 87, 76, 90, 90, 78, 105, 105, 94, 92, 92, 81, 83, 83, 71, 97, 96, 85, 64, 66, 54, 105, 105, 94, 94, 93, 82, 84, 84, 72, 87, 86, 75, 89, 88, 77, 99, 99, 88, 74, 74, 60, 74, 73, 62, 88, 88, 74, 95, 95, 81, 110, 110, 96, 70, 70, 57, 97, 96, 85, 95, 95, 81, 95, 95, 81, 81, 81, 67, 87, 87, 73, 103, 103, 89, 113, 110, 97, 99, 96, 83, 92, 89, 76, 97, 95, 82, 106, 103, 90, 123, 121, 108, 81, 79, 66, 77, 74, 63, 83, 81, 70, 100, 97, 86, 94, 91, 81, 87, 84, 74, 106, 106, 95, 109, 106, 96, 96, 95, 84, 98, 98, 86, 112, 112, 98, 98, 98, 86, 83, 81, 70, 63, 62, 54, 112, 111, 103, 88, 87, 78, 87, 86, 77, 86, 83, 75, 77, 76, 68, 114, 114, 105, 83, 82, 73, 83, 82, 73, 104, 103, 94, 118, 117, 108, 85, 85, 76, 97, 96, 87, 98, 97, 89, 97, 96, 87, 88, 87, 78, 78, 78, 69, 108, 105, 97, 107, 104, 96, 91, 90, 84, 82, 79, 71, 71, 67, 60, 81, 79, 73, 81, 80, 71, 90, 89, 80, 75, 74, 65, 75, 74, 65, 228, 225, 213, 231, 226, 214, 232, 227, 215, 233, 230, 219, 230, 227, 217, 230, 227, 217, 228, 225, 215, 230, 227, 217, 228, 225, 215, 223, 220, 210, 220, 217, 206, 221, 218, 207, 213, 210, 199, 221, 218, 207, 219, 216, 205, 221, 218, 207, 221, 218, 207, 216, 213, 203, 216, 213, 203, 214, 211, 201, 213, 210, 199, 213, 210, 199, 214, 211, 201, 214, 211, 201, 214, 211, 201, 215, 212, 202, 214, 211, 201, 214, 211, 201, 212, 209, 198, 213, 210, 199, 209, 208, 197, 211, 211, 199, 206, 206, 195, 204, 204, 192, 210, 209, 198, 210, 209, 198, 209, 208, 197, 209, 208, 197, 210, 209, 198, 209, 208, 197, 204, 204, 192, 204, 204, 192, 202, 201, 190, 209, 208, 197, 205, 205, 194, 204, 204, 192, 204, 204, 192, 203, 202, 191, 203, 202, 191, 203, 202, 191, 204, 204, 192, 201, 200, 189, 206, 206, 195, 205, 205, 194, 206, 206, 195, 202, 201, 190, 205, 204, 196, 202, 201, 192, 210, 209, 200, 208, 207, 198, 206, 206, 197, 210, 209, 202, 209, 208, 199, 208, 206, 200, 211, 209, 205, 211, 210, 203, 211, 209, 205, 211, 209, 205, 216, 214, 212, 215, 212, 211, 220, 218, 217, 216, 214, 212, 219, 217, 218, 218, 216, 216, 218, 216, 216, 218, 216, 216, 215, 216, 213, 215, 212, 213, 218, 216, 214, 217, 215, 213, 215, 212, 211, 255, 255, 255, 255, 255, 255, 127, 126, 122, 255, 255, 252, 30, 28, 24, 76, 74, 72, 70, 68, 67, 82, 79, 80, 83, 81, 79, 79, 80, 77, 83, 83, 81, 85, 83, 82, 89, 87, 85, 90, 88, 86, 89, 87, 85, 80, 78, 76, 91, 90, 86, 90, 88, 84, 88, 86, 84, 82, 80, 78, 76, 74, 72, 92, 90, 89, 105, 103, 102, 99, 97, 96, 90, 88, 84, 90, 88, 84, 84, 83, 79, 102, 100, 94, 102, 98, 93, 97, 94, 88, 85, 84, 78, 89, 86, 80, 98, 97, 91, 88, 86, 80, 89, 87, 83, 97, 95, 91, 99, 98, 92, 94, 92, 86, 90, 89, 82, 100, 100, 91, 92, 91, 85, 91, 90, 82, 89, 88, 79, 99, 95, 87, 94, 93, 84, 94, 93, 84, 105, 104, 96, 111, 110, 101, 90, 90, 78, 89, 88, 77, 66, 63, 53, 95, 92, 82, 87, 84, 74, 89, 86, 76, 73, 70, 60, 80, 77, 67, 92, 89, 78, 97, 95, 84, 96, 93, 83, 65, 62, 52, 103, 100, 90, 100, 97, 86, 75, 73, 62, 100, 97, 86, 108, 105, 95, 70, 70, 59, 82, 81, 70, 80, 79, 68, 109, 108, 97, 84, 84, 72, 90, 90, 78, 81, 80, 69, 103, 102, 91, 96, 95, 84, 100, 100, 89, 69, 69, 57, 91, 91, 80, 104, 104, 92, 94, 93, 82, 84, 84, 72, 82, 81, 70, 91, 91, 80, 74, 73, 62, 69, 69, 57, 89, 88, 77, 87, 86, 75, 96, 95, 84, 88, 88, 74, 90, 90, 76, 104, 104, 90, 102, 102, 88, 94, 93, 82, 71, 71, 58, 83, 83, 69, 80, 79, 66, 108, 107, 94, 97, 97, 83, 110, 110, 96, 103, 101, 88, 114, 111, 98, 116, 114, 101, 74, 72, 59, 94, 92, 79, 85, 82, 69, 97, 95, 84, 111, 109, 98, 71, 68, 55, 121, 118, 105, 95, 93, 80, 120, 117, 106, 111, 109, 96, 64, 61, 48, 74, 71, 61, 95, 94, 83, 121, 118, 107, 96, 93, 83, 95, 94, 83, 79, 76, 68, 117, 116, 107, 99, 98, 90, 96, 93, 85, 99, 98, 90, 123, 122, 113, 85, 85, 76, 102, 101, 92, 77, 77, 65, 112, 112, 100, 96, 93, 85, 77, 77, 65, 76, 76, 64, 109, 108, 97, 73, 72, 63, 95, 92, 84, 75, 74, 65, 77, 76, 68, 73, 72, 63, 68, 67, 58, 78, 78, 69, 74, 73, 64, 77, 76, 68, 111, 110, 101, 100, 100, 91, 95, 94, 85, 230, 228, 215, 236, 234, 221, 232, 227, 215, 230, 227, 217, 230, 227, 217, 233, 230, 219, 228, 225, 215, 227, 224, 213, 225, 223, 212, 224, 221, 211, 223, 220, 210, 223, 220, 210, 222, 219, 209, 225, 223, 212, 220, 217, 206, 221, 218, 207, 217, 214, 204, 219, 216, 205, 220, 217, 206, 216, 213, 203, 217, 214, 204, 219, 216, 205, 215, 212, 202, 209, 206, 196, 214, 211, 201, 216, 213, 203, 219, 216, 205, 213, 210, 199, 212, 209, 198, 213, 210, 199, 212, 212, 201, 206, 206, 195, 210, 209, 198, 209, 208, 197, 210, 209, 198, 210, 209, 198, 209, 208, 197, 208, 207, 196, 211, 211, 199, 206, 206, 195, 205, 205, 194, 206, 206, 195, 208, 207, 196, 203, 201, 190, 210, 209, 198, 203, 202, 191, 206, 203, 192, 203, 201, 190, 206, 206, 195, 204, 204, 192, 208, 207, 196, 204, 204, 192, 205, 205, 194, 205, 205, 194, 205, 204, 196, 206, 206, 197, 201, 200, 191, 203, 202, 193, 208, 206, 200, 208, 206, 200, 209, 208, 201, 210, 209, 202, 213, 212, 206, 212, 211, 207, 211, 209, 205, 210, 208, 204, 212, 210, 209, 211, 209, 207, 215, 212, 211, 215, 212, 211, 211, 209, 209, 212, 210, 211, 215, 212, 211, 215, 212, 211, 212, 210, 209, 253, 251, 247, 255, 255, 255, 192, 191, 187, 18, 16, 12, 138, 136, 134, 85, 83, 82, 80, 78, 76, 82, 80, 78, 89, 87, 85, 92, 90, 89, 89, 86, 87, 83, 81, 81, 91, 91, 91, 86, 86, 86, 79, 79, 79, 83, 83, 83, 85, 85, 83, 84, 84, 82, 84, 84, 82, 85, 85, 83, 85, 84, 80, 85, 83, 82, 91, 90, 86, 80, 78, 74, 77, 76, 72, 97, 95, 91, 91, 90, 86, 87, 85, 79, 116, 114, 110, 78, 77, 71, 105, 104, 98, 84, 83, 77, 106, 102, 94, 94, 91, 83, 87, 85, 79, 97, 94, 86, 92, 88, 80, 103, 100, 92, 80, 78, 72, 92, 91, 85, 81, 79, 73, 90, 89, 82, 97, 96, 89, 68, 67, 60, 99, 98, 90, 88, 87, 78, 70, 69, 61, 80, 79, 70, 105, 104, 96, 86, 83, 75, 87, 86, 75, 93, 90, 80, 96, 93, 85, 83, 83, 71, 91, 88, 77, 89, 86, 76, 59, 56, 46, 77, 74, 63, 71, 68, 57, 103, 102, 91, 96, 93, 83, 95, 92, 82, 93, 90, 80, 103, 100, 90, 99, 96, 85, 96, 93, 83, 95, 92, 82, 88, 85, 75, 87, 84, 74, 75, 73, 62, 88, 85, 75, 84, 84, 72, 99, 98, 90, 91, 90, 82, 99, 99, 88, 94, 93, 84, 71, 71, 60, 88, 87, 78, 69, 68, 60, 80, 79, 68, 110, 109, 98, 73, 72, 61, 102, 101, 90, 100, 100, 89, 80, 79, 68, 104, 104, 92, 109, 108, 97, 74, 74, 60, 91, 91, 80, 98, 98, 86, 81, 80, 69, 77, 77, 64, 69, 69, 57, 73, 72, 59, 73, 72, 59, 89, 89, 75, 78, 78, 65, 100, 97, 86, 102, 99, 89, 89, 89, 75, 97, 97, 83, 83, 81, 68, 105, 105, 92, 96, 96, 82, 89, 89, 75, 87, 85, 72, 107, 104, 92, 101, 98, 86, 99, 96, 85, 116, 113, 103, 116, 113, 103, 72, 69, 59, 125, 123, 112, 108, 105, 95, 127, 124, 113, 77, 74, 63, 89, 86, 76, 66, 63, 53, 103, 102, 91, 108, 105, 95, 111, 109, 98, 59, 56, 46, 99, 95, 87, 114, 111, 100, 78, 74, 66, 109, 106, 98, 137, 136, 127, 90, 89, 80, 78, 78, 69, 84, 83, 75, 101, 98, 90, 68, 67, 58, 108, 107, 96, 91, 88, 77, 75, 72, 64, 107, 104, 94, 82, 79, 69, 100, 100, 89, 62, 61, 52, 99, 95, 87, 102, 99, 91, 67, 64, 54, 81, 78, 70, 89, 88, 79, 113, 112, 104, 100, 100, 91, 69, 68, 60, 78, 78, 67, 90, 90, 78, 228, 225, 213, 224, 222, 209, 230, 228, 215, 229, 224, 215, 230, 227, 217, 230, 227, 217, 227, 224, 213, 227, 224, 213, 227, 224, 213, 224, 221, 211, 223, 220, 210, 224, 221, 211, 223, 220, 210, 221, 218, 207, 220, 217, 206, 223, 220, 210, 217, 214, 204, 220, 217, 206, 221, 218, 207, 220, 217, 206, 220, 217, 206, 220, 217, 206, 216, 213, 203, 212, 209, 198, 214, 211, 201, 215, 212, 202, 216, 213, 203, 213, 213, 202, 210, 209, 198, 214, 211, 201, 211, 211, 199, 209, 208, 197, 212, 212, 201, 210, 209, 198, 210, 209, 198, 210, 209, 198, 215, 214, 205, 212, 212, 201, 208, 207, 198, 206, 206, 195, 204, 204, 192, 205, 205, 194, 206, 206, 195, 207, 204, 194, 199, 196, 185, 209, 206, 196, 202, 199, 189, 201, 198, 188, 211, 211, 199, 201, 200, 189, 199, 199, 188, 208, 207, 196, 202, 201, 192, 208, 207, 198, 198, 197, 189, 204, 203, 194, 210, 209, 200, 204, 203, 194, 205, 204, 198, 206, 205, 199, 209, 208, 201, 205, 204, 198, 208, 206, 200, 206, 205, 201, 212, 211, 207, 211, 209, 205, 212, 211, 207, 205, 204, 200, 210, 208, 204, 211, 209, 205, 246, 244, 240, 255, 255, 255, 127, 126, 122, 188, 186, 184, 78, 76, 75, 99, 97, 96, 83, 81, 79, 94, 91, 92, 83, 81, 81, 89, 86, 87, 88, 85, 86, 90, 88, 88, 87, 84, 85, 86, 87, 84, 85, 85, 83, 90, 88, 86, 78, 78, 76, 84, 84, 82, 85, 85, 83, 85, 85, 83, 80, 81, 78, 83, 83, 81, 83, 83, 81, 88, 89, 86, 86, 87, 84, 92, 90, 89, 93, 94, 89, 91, 90, 84, 91, 90, 84, 96, 95, 86, 85, 85, 76, 95, 94, 85, 96, 95, 86, 92, 92, 83, 89, 88, 79, 90, 89, 80, 94, 93, 84, 106, 102, 96, 83, 80, 74, 83, 82, 75, 111, 108, 100, 108, 107, 98, 84, 83, 75, 97, 96, 87, 96, 95, 86, 82, 81, 74, 87, 85, 79, 109, 108, 99, 82, 81, 72, 92, 92, 83, 87, 86, 77, 106, 106, 95, 100, 100, 89, 99, 99, 88, 75, 74, 63, 91, 91, 80, 110, 109, 98, 109, 106, 96, 92, 92, 81, 98, 98, 86, 65, 62, 52, 97, 96, 85, 101, 98, 88, 88, 85, 75, 83, 81, 70, 83, 83, 71, 64, 61, 50, 78, 75, 64, 86, 83, 72, 89, 86, 76, 108, 105, 95, 81, 78, 68, 111, 109, 98, 77, 74, 63, 79, 76, 65, 113, 110, 99, 81, 80, 69, 74, 73, 62, 95, 94, 85, 77, 76, 68, 109, 108, 99, 90, 89, 80, 95, 94, 83, 96, 95, 84, 91, 90, 82, 75, 74, 65, 106, 106, 95, 102, 101, 90, 66, 65, 54, 99, 96, 85, 84, 84, 72, 92, 92, 81, 78, 78, 67, 85, 85, 72, 108, 107, 96, 75, 74, 63, 103, 102, 91, 78, 78, 67, 97, 97, 83, 97, 95, 82, 87, 85, 72, 92, 89, 78, 100, 97, 84, 104, 102, 89, 109, 107, 94, 102, 99, 89, 115, 112, 102, 78, 75, 64, 79, 76, 65, 118, 116, 103, 88, 85, 75, 115, 112, 100, 123, 121, 108, 100, 97, 84, 107, 104, 94, 83, 81, 70, 93, 90, 80, 132, 129, 119, 96, 93, 83, 85, 82, 71, 121, 118, 105, 123, 121, 108, 122, 119, 107, 77, 74, 61, 82, 79, 69, 81, 78, 68, 124, 121, 111, 118, 116, 105, 79, 76, 65, 138, 137, 126, 95, 94, 85, 74, 71, 63, 106, 105, 97, 91, 87, 79, 76, 75, 66, 104, 103, 94, 110, 109, 100, 109, 108, 97, 120, 117, 106, 108, 107, 96, 75, 74, 63, 116, 115, 104, 91, 88, 77, 117, 116, 105, 89, 88, 77, 77, 77, 65, 90, 90, 78, 81, 80, 69, 95, 94, 85, 75, 74, 65, 84, 83, 75, 105, 105, 94, 91, 91, 80, 76, 76, 64, 231, 229, 216, 229, 227, 214, 230, 228, 215, 229, 226, 216, 229, 226, 216, 229, 226, 216, 223, 220, 210, 229, 226, 216, 225, 223, 212, 225, 223, 212, 227, 224, 213, 225, 223, 212, 227, 224, 213, 222, 219, 209, 221, 218, 207, 224, 221, 211, 218, 218, 206, 215, 214, 203, 216, 215, 204, 217, 216, 205, 214, 211, 201, 215, 212, 202, 217, 214, 204, 219, 216, 205, 215, 212, 202, 214, 211, 201, 220, 217, 206, 216, 213, 203, 212, 209, 198, 215, 212, 202, 213, 213, 202, 212, 212, 201, 211, 211, 199, 211, 211, 199, 208, 207, 198, 209, 208, 197, 206, 206, 197, 211, 210, 201, 202, 201, 192, 211, 211, 199, 209, 208, 199, 210, 209, 198, 202, 201, 190, 202, 201, 190, 209, 206, 196, 208, 205, 195, 203, 202, 191, 205, 205, 194, 206, 206, 195, 204, 204, 192, 204, 204, 192, 204, 203, 194, 203, 202, 193, 206, 206, 197, 203, 202, 193, 202, 201, 192, 203, 202, 193, 202, 201, 194, 205, 204, 198, 205, 204, 198, 206, 205, 199, 208, 206, 200, 206, 205, 199, 208, 206, 200, 215, 213, 207, 247, 246, 240, 218, 216, 212, 0, 0, 0, 48, 46, 45, 78, 76, 75, 111, 109, 107, 88, 85, 86, 92, 90, 91, 97, 95, 95, 88, 85, 86, 88, 85, 86, 88, 85, 86, 91, 89, 88, 90, 88, 86, 89, 87, 85, 91, 89, 88, 87, 85, 83, 87, 85, 83, 80, 81, 78, 87, 85, 83, 86, 87, 84, 97, 97, 95, 85, 85, 83, 84, 84, 82, 87, 88, 85, 81, 82, 77, 85, 86, 81, 90, 90, 86, 88, 89, 84, 82, 80, 76, 76, 74, 70, 87, 85, 79, 78, 78, 69, 111, 110, 101, 110, 109, 100, 103, 102, 93, 98, 97, 89, 74, 73, 64, 75, 74, 65, 98, 97, 89, 89, 88, 79, 85, 84, 78, 90, 89, 80, 84, 83, 77, 99, 98, 90, 96, 95, 86, 80, 79, 70, 100, 100, 91, 81, 80, 71, 78, 78, 69, 84, 83, 75, 100, 100, 91, 80, 79, 70, 105, 104, 96, 92, 92, 83, 75, 74, 63, 97, 96, 87, 85, 85, 74, 84, 84, 72, 90, 90, 78, 81, 80, 69, 100, 100, 89, 95, 94, 83, 104, 104, 92, 102, 101, 90, 104, 104, 92, 103, 102, 91, 98, 98, 84, 76, 76, 64, 85, 85, 74, 102, 101, 90, 80, 77, 67, 103, 100, 90, 85, 82, 71, 107, 104, 94, 82, 79, 69, 80, 77, 67, 102, 99, 89, 93, 90, 80, 113, 110, 99, 89, 88, 77, 109, 108, 97, 78, 78, 67, 63, 63, 52, 90, 90, 78, 102, 101, 90, 80, 79, 70, 99, 99, 88, 80, 79, 68, 98, 98, 86, 94, 93, 82, 102, 101, 90, 83, 83, 71, 105, 105, 94, 104, 104, 92, 74, 73, 62, 77, 77, 65, 68, 67, 56, 76, 76, 64, 87, 87, 73, 111, 110, 99, 89, 88, 77, 85, 85, 74, 102, 101, 90, 89, 88, 77, 102, 100, 87, 101, 98, 86, 88, 85, 75, 92, 89, 78, 86, 83, 70, 72, 69, 59, 115, 112, 102, 113, 110, 99, 80, 77, 67, 98, 98, 84, 93, 90, 80, 108, 105, 95, 100, 97, 86, 98, 98, 86, 121, 118, 105, 92, 89, 78, 104, 102, 91, 95, 92, 82, 93, 90, 80, 86, 83, 72, 87, 84, 74, 80, 77, 67, 80, 77, 67, 131, 128, 120, 77, 74, 63, 104, 102, 91, 80, 77, 67, 75, 73, 62, 108, 107, 98, 90, 89, 80, 74, 71, 63, 67, 64, 56, 85, 85, 76, 113, 113, 102, 109, 108, 97, 99, 98, 90, 78, 78, 67, 77, 77, 65, 78, 78, 69, 110, 109, 98, 120, 119, 111, 120, 117, 106, 90, 90, 78, 117, 116, 105, 95, 94, 83, 81, 80, 71, 74, 73, 62, 96, 95, 84, 97, 96, 87, 70, 69, 61, 105, 105, 94, 68, 67, 56, 80, 79, 68, 94, 93, 82, 227, 224, 211, 229, 224, 213, 231, 229, 216, 230, 227, 217, 229, 226, 216, 229, 226, 216, 228, 225, 215, 227, 224, 213, 223, 220, 210, 224, 221, 211, 229, 226, 216, 225, 223, 212, 224, 221, 211, 223, 220, 210, 222, 219, 209, 224, 221, 211, 224, 221, 211, 213, 213, 202, 217, 216, 205, 217, 214, 204, 219, 216, 205, 215, 214, 203, 217, 214, 204, 222, 219, 209, 217, 214, 204, 219, 216, 205, 219, 216, 205, 217, 214, 204, 216, 213, 203, 217, 214, 204, 216, 213, 203, 216, 215, 204, 215, 214, 203, 212, 212, 201, 209, 208, 199, 209, 208, 197, 210, 209, 200, 210, 209, 200, 206, 206, 197, 210, 209, 200, 205, 205, 194, 204, 204, 192, 209, 208, 197, 207, 204, 194, 206, 203, 192, 204, 204, 192, 209, 206, 196, 208, 205, 195, 198, 195, 184, 203, 202, 191, 202, 201, 192, 206, 206, 197, 202, 201, 192, 198, 197, 189, 201, 199, 193, 208, 207, 198, 203, 202, 193, 198, 197, 189, 199, 199, 190, 208, 206, 200, 202, 201, 192, 246, 245, 238, 161, 160, 154, 32, 31, 24, 48, 47, 41, 96, 94, 90, 97, 95, 93, 94, 91, 90, 94, 91, 92, 90, 88, 86, 89, 87, 85, 84, 84, 84, 88, 88, 88, 88, 86, 84, 82, 80, 78, 90, 88, 86, 88, 86, 84, 87, 85, 83, 87, 85, 83, 92, 90, 89, 84, 82, 81, 84, 82, 81, 87, 85, 83, 87, 88, 85, 91, 90, 86, 95, 93, 89, 84, 85, 80, 93, 94, 89, 84, 85, 80, 79, 80, 75, 100, 99, 93, 83, 84, 77, 98, 97, 91, 66, 64, 58, 78, 77, 71, 95, 93, 87, 102, 101, 92, 100, 100, 91, 96, 95, 86, 74, 73, 64, 82, 81, 72, 95, 94, 85, 82, 81, 72, 112, 111, 103, 82, 81, 72, 90, 89, 80, 108, 107, 98, 81, 80, 71, 98, 97, 89, 81, 80, 71, 78, 78, 67, 94, 93, 82, 78, 78, 69, 99, 99, 88, 105, 104, 96, 91, 90, 82, 94, 93, 84, 91, 90, 82, 98, 97, 89, 76, 75, 66, 77, 77, 65, 88, 87, 78, 97, 96, 85, 103, 102, 91, 82, 79, 69, 68, 67, 56, 76, 76, 64, 105, 105, 92, 99, 99, 86, 89, 89, 75, 95, 95, 81, 92, 92, 79, 76, 76, 62, 99, 99, 86, 92, 92, 79, 81, 80, 69, 100, 97, 86, 82, 81, 70, 91, 88, 77, 101, 98, 88, 91, 88, 77, 100, 97, 86, 67, 64, 54, 102, 101, 90, 77, 77, 65, 77, 77, 65, 89, 88, 77, 102, 101, 90, 102, 101, 90, 64, 64, 55, 67, 66, 55, 94, 93, 84, 82, 81, 72, 70, 70, 59, 92, 89, 78, 90, 90, 78, 95, 94, 83, 70, 70, 59, 100, 100, 89, 70, 67, 56, 92, 92, 81, 69, 69, 57, 71, 71, 60, 75, 74, 63, 77, 77, 65, 91, 91, 80, 94, 93, 82, 111, 110, 99, 101, 98, 88, 74, 73, 62, 104, 102, 91, 72, 69, 57, 71, 68, 57, 78, 75, 64, 101, 98, 88, 94, 91, 81, 73, 70, 60, 92, 89, 78, 111, 109, 98, 120, 117, 106, 115, 112, 102, 102, 99, 89, 92, 89, 78, 113, 113, 102, 93, 90, 80, 108, 105, 95, 78, 75, 64, 117, 114, 104, 109, 106, 96, 75, 73, 62, 123, 120, 110, 121, 118, 107, 75, 74, 65, 117, 114, 106, 121, 121, 112, 103, 100, 92, 115, 112, 104, 100, 100, 91, 72, 69, 61, 132, 131, 122, 139, 138, 129, 89, 88, 79, 73, 72, 63, 134, 133, 125, 66, 65, 54, 102, 101, 90, 68, 67, 58, 75, 74, 63, 92, 92, 83, 74, 73, 64, 116, 115, 106, 120, 116, 108, 95, 94, 85, 99, 98, 90, 66, 65, 56, 71, 71, 60, 100, 100, 89, 73, 72, 61, 94, 93, 84, 98, 98, 86, 110, 109, 98, 94, 93, 82, 78, 78, 67, 92, 92, 81, 234, 231, 220, 224, 221, 211, 234, 231, 220, 230, 227, 217, 230, 227, 217, 229, 226, 216, 227, 224, 213, 230, 227, 217, 225, 223, 212, 229, 226, 218, 221, 218, 210, 224, 221, 213, 227, 223, 216, 220, 217, 206, 220, 216, 208, 216, 215, 204, 221, 218, 207, 220, 217, 206, 215, 214, 203, 218, 218, 206, 220, 217, 206, 216, 215, 204, 217, 216, 205, 213, 210, 199, 219, 219, 207, 220, 217, 206, 219, 216, 205, 220, 217, 206, 222, 219, 209, 212, 209, 198, 214, 211, 201, 215, 212, 202, 213, 213, 202, 217, 216, 205, 214, 211, 201, 216, 213, 203, 216, 215, 204, 216, 215, 204, 212, 209, 198, 210, 209, 198, 209, 208, 199, 209, 208, 197, 208, 207, 198, 209, 208, 197, 206, 206, 195, 194, 193, 182, 205, 202, 191, 210, 208, 197, 205, 205, 194, 204, 203, 194, 202, 201, 192, 206, 206, 197, 206, 206, 197, 199, 199, 190, 199, 199, 190, 197, 196, 188, 196, 195, 186, 238, 237, 230, 77, 76, 70, 0, 0, 0, 89, 88, 81, 106, 105, 99, 91, 90, 84, 87, 85, 81, 84, 83, 79, 84, 83, 79, 88, 86, 84, 85, 83, 82, 88, 86, 84, 74, 75, 72, 84, 84, 82, 85, 85, 83, 85, 85, 83, 78, 76, 75, 90, 88, 86, 85, 84, 80, 84, 83, 79, 84, 83, 79, 85, 84, 80, 82, 80, 76, 78, 77, 73, 91, 90, 86, 91, 90, 86, 94, 92, 88, 94, 96, 88, 84, 85, 78, 100, 99, 93, 85, 85, 76, 95, 94, 85, 110, 109, 100, 91, 90, 82, 81, 80, 71, 83, 82, 73, 69, 68, 60, 84, 83, 75, 103, 102, 93, 76, 75, 66, 92, 92, 83, 83, 82, 73, 81, 80, 71, 85, 85, 76, 89, 88, 79, 105, 104, 96, 89, 88, 77, 94, 93, 84, 69, 69, 57, 100, 100, 89, 90, 89, 80, 80, 79, 70, 96, 95, 86, 92, 92, 81, 90, 90, 78, 83, 82, 73, 97, 96, 85, 97, 96, 87, 70, 69, 61, 91, 90, 82, 87, 86, 77, 61, 60, 51, 67, 66, 57, 94, 93, 84, 88, 87, 78, 83, 83, 71, 114, 114, 103, 87, 86, 75, 75, 74, 63, 103, 102, 91, 84, 84, 70, 78, 78, 65, 74, 74, 60, 77, 77, 64, 56, 56, 43, 68, 68, 54, 87, 87, 73, 108, 107, 96, 91, 91, 80, 82, 79, 69, 103, 102, 91, 97, 96, 85, 75, 74, 63, 99, 99, 88, 108, 107, 96, 105, 105, 94, 90, 90, 78, 82, 81, 70, 100, 100, 89, 103, 102, 91, 83, 83, 71, 84, 84, 72, 66, 65, 54, 91, 90, 82, 99, 98, 90, 80, 79, 68, 104, 103, 94, 99, 96, 85, 95, 92, 82, 80, 79, 70, 93, 90, 80, 110, 109, 98, 88, 87, 76, 78, 78, 67, 102, 101, 90, 96, 95, 84, 100, 100, 89, 106, 106, 95, 89, 88, 77, 98, 98, 84, 91, 91, 78, 70, 67, 56, 59, 58, 45, 118, 116, 103, 98, 98, 84, 96, 95, 84, 91, 88, 77, 60, 57, 47, 113, 110, 99, 83, 81, 68, 109, 107, 94, 68, 66, 55, 107, 104, 92, 73, 71, 58, 91, 88, 75, 119, 119, 107, 97, 95, 82, 110, 107, 97, 79, 76, 65, 73, 70, 60, 93, 90, 80, 77, 77, 65, 69, 69, 57, 85, 82, 71, 121, 121, 110, 133, 132, 124, 76, 76, 64, 82, 81, 72, 70, 69, 61, 113, 112, 104, 113, 112, 104, 75, 72, 64, 112, 111, 103, 127, 126, 118, 74, 73, 64, 97, 96, 87, 80, 79, 68, 127, 127, 116, 117, 116, 105, 69, 69, 57, 106, 106, 95, 118, 117, 108, 68, 67, 58, 103, 102, 93, 112, 111, 103, 73, 72, 63, 111, 110, 101, 92, 92, 83, 119, 118, 110, 91, 90, 82, 87, 86, 77, 85, 85, 76, 112, 112, 100, 77, 77, 65, 73, 72, 61, 61, 60, 49, 76, 76, 64, 46, 45, 38, 60, 57, 51, 42, 38, 32, 43, 37, 32, 23, 21, 15, 14, 14, 5, 12, 9, 1, 19, 18, 9, 18, 17, 8, 12, 9, 3, 22, 18, 13, 19, 16, 10, 30, 26, 21, 45, 42, 34, 73, 69, 64, 70, 69, 61, 107, 104, 96, 140, 140, 128, 184, 184, 173, 225, 225, 213, 246, 245, 234, 215, 214, 203, 219, 219, 207, 209, 208, 197, 216, 215, 204, 220, 217, 206, 220, 217, 206, 221, 218, 207, 219, 216, 205, 216, 215, 204, 217, 214, 204, 214, 211, 201, 216, 213, 203, 212, 212, 201, 212, 209, 198, 219, 216, 205, 215, 212, 202, 211, 211, 199, 215, 214, 205, 211, 210, 201, 213, 213, 202, 205, 204, 196, 205, 205, 194, 206, 206, 195, 211, 210, 201, 208, 207, 196, 212, 211, 203, 204, 204, 192, 208, 207, 198, 209, 208, 199, 204, 203, 194, 203, 202, 193, 199, 199, 190, 194, 192, 186, 234, 234, 225, 28, 27, 21, 91, 90, 84, 92, 91, 85, 85, 84, 78, 87, 85, 79, 84, 83, 77, 87, 85, 79, 84, 83, 77, 84, 83, 79, 94, 92, 88, 84, 83, 79, 83, 81, 77, 83, 81, 79, 84, 82, 81, 84, 82, 81, 83, 83, 81, 86, 87, 84, 80, 81, 78, 88, 86, 82, 83, 81, 77, 90, 89, 82, 81, 79, 73, 78, 77, 71, 97, 96, 89, 85, 84, 80, 78, 77, 73, 99, 98, 94, 99, 98, 94, 89, 88, 79, 80, 79, 70, 77, 78, 69, 88, 90, 80, 80, 82, 72, 94, 93, 84, 88, 87, 78, 90, 89, 80, 95, 94, 85, 82, 81, 72, 87, 86, 77, 85, 85, 76, 103, 102, 93, 94, 93, 84, 91, 90, 82, 89, 88, 79, 92, 92, 83, 74, 73, 64, 87, 86, 77, 105, 104, 96, 101, 98, 88, 81, 80, 69, 97, 95, 84, 109, 106, 96, 91, 88, 77, 104, 102, 91, 88, 85, 75, 94, 93, 82, 99, 99, 88, 80, 79, 68, 87, 86, 75, 88, 87, 76, 89, 88, 79, 95, 94, 85, 97, 96, 87, 89, 88, 79, 78, 78, 69, 92, 92, 83, 95, 94, 85, 81, 80, 71, 90, 89, 80, 95, 94, 83, 83, 83, 71, 99, 99, 86, 103, 103, 89, 100, 100, 87, 63, 63, 50, 82, 82, 68, 90, 90, 76, 119, 119, 105, 92, 92, 79, 71, 71, 60, 80, 79, 68, 112, 112, 100, 88, 87, 76, 80, 79, 68, 106, 106, 95, 74, 73, 62, 78, 78, 67, 102, 101, 90, 108, 107, 96, 62, 62, 50, 103, 102, 91, 88, 87, 76, 87, 86, 75, 103, 102, 91, 104, 103, 94, 71, 71, 62, 77, 76, 68, 64, 64, 55, 71, 71, 62, 100, 100, 89, 96, 93, 83, 66, 65, 54, 92, 92, 81, 96, 95, 84, 73, 72, 61, 100, 100, 89, 92, 92, 81, 109, 108, 97, 87, 86, 75, 104, 104, 92, 99, 99, 88, 98, 98, 84, 82, 82, 68, 67, 67, 53, 93, 90, 78, 95, 93, 80, 115, 112, 100, 73, 70, 60, 73, 72, 61, 104, 104, 92, 64, 61, 50, 91, 88, 77, 92, 89, 78, 117, 115, 102, 84, 84, 70, 76, 76, 64, 108, 105, 95, 103, 100, 90, 95, 94, 83, 121, 118, 107, 78, 75, 64, 110, 107, 97, 97, 95, 84, 64, 64, 53, 109, 108, 97, 91, 88, 77, 136, 133, 123, 83, 82, 73, 80, 79, 70, 109, 108, 99, 87, 86, 77, 95, 94, 85, 124, 121, 113, 88, 85, 77, 112, 111, 103, 103, 102, 93, 67, 66, 57, 73, 72, 63, 100, 100, 89, 130, 129, 118, 80, 79, 68, 76, 76, 64, 70, 69, 61, 67, 66, 57, 88, 87, 78, 88, 87, 78, 100, 100, 91, 77, 76, 68, 77, 76, 68, 100, 100, 91, 108, 107, 98, 61, 60, 51, 104, 103, 94, 116, 115, 106, 78, 78, 67, 84, 84, 72, 88, 87, 76, 71, 71, 60, 84, 84, 72, 255, 255, 255, 255, 255, 255, 255, 255, 253, 21, 17, 9, 255, 255, 255, 255, 255, 255, 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 240, 236, 230, 218, 217, 210, 195, 194, 185, 156, 156, 147, 183, 182, 174, 60, 59, 50, 33, 32, 23, 0, 0, 0, 0, 0, 0, 47, 46, 35, 119, 121, 109, 244, 243, 232, 210, 209, 198, 219, 216, 205, 224, 223, 212, 221, 218, 207, 219, 219, 207, 216, 215, 204, 222, 221, 210, 219, 216, 205, 215, 212, 202, 220, 217, 206, 221, 218, 207, 217, 214, 204, 214, 211, 201, 221, 218, 207, 212, 212, 201, 216, 215, 204, 209, 208, 197, 216, 215, 204, 188, 187, 176, 212, 212, 201, 209, 208, 199, 212, 211, 203, 210, 209, 200, 208, 207, 198, 205, 204, 196, 203, 202, 193, 201, 200, 191, 236, 235, 226, 39, 38, 29, 153, 152, 145, 84, 83, 77, 92, 91, 85, 90, 89, 82, 89, 88, 81, 85, 84, 78, 81, 79, 73, 90, 89, 82, 83, 82, 75, 82, 81, 74, 83, 83, 79, 81, 79, 75, 81, 79, 75, 78, 79, 74, 74, 75, 70, 83, 81, 79, 80, 78, 76, 81, 82, 79, 80, 81, 76, 84, 85, 80, 85, 86, 81, 85, 84, 78, 85, 84, 78, 82, 81, 74, 83, 82, 75, 92, 91, 85, 91, 90, 84, 91, 90, 84, 94, 92, 86, 95, 93, 87, 71, 73, 63, 84, 85, 76, 83, 84, 75, 80, 79, 70, 91, 91, 80, 91, 92, 83, 91, 91, 80, 84, 84, 72, 89, 88, 79, 90, 90, 78, 94, 93, 84, 103, 102, 93, 99, 98, 90, 90, 89, 80, 81, 80, 71, 100, 100, 91, 81, 80, 69, 90, 90, 78, 73, 70, 60, 87, 86, 75, 82, 81, 70, 83, 83, 71, 100, 100, 89, 87, 86, 75, 71, 68, 57, 79, 76, 65, 91, 88, 77, 92, 92, 81, 85, 85, 74, 100, 100, 91, 73, 72, 61, 80, 79, 68, 87, 86, 77, 92, 92, 83, 105, 104, 96, 88, 87, 78, 95, 94, 85, 100, 100, 91, 88, 87, 78, 85, 85, 74, 71, 71, 60, 104, 104, 92, 85, 85, 74, 81, 80, 69, 68, 68, 54, 64, 64, 51, 108, 107, 94, 74, 74, 60, 64, 64, 51, 99, 99, 86, 80, 79, 66, 77, 77, 65, 64, 64, 53, 89, 88, 77, 94, 93, 82, 96, 95, 84, 71, 68, 57, 82, 81, 70, 109, 106, 96, 106, 106, 95, 74, 71, 61, 103, 102, 91, 105, 105, 94, 70, 70, 59, 110, 109, 98, 100, 100, 89, 82, 81, 70, 64, 64, 53, 88, 87, 76, 110, 109, 98, 109, 106, 96, 68, 65, 57, 114, 111, 100, 114, 114, 105, 104, 104, 92, 88, 85, 75, 64, 64, 53, 106, 106, 95, 103, 102, 91, 104, 104, 92, 78, 78, 67, 83, 83, 71, 62, 62, 50, 82, 82, 68, 71, 71, 58, 105, 105, 92, 109, 109, 95, 80, 78, 65, 114, 114, 101, 114, 114, 101, 69, 69, 57, 85, 85, 72, 94, 93, 82, 89, 88, 77, 80, 79, 66, 108, 107, 94, 81, 81, 67, 117, 114, 104, 118, 118, 104, 74, 74, 60, 116, 116, 102, 61, 59, 46, 78, 78, 67, 83, 81, 70, 58, 55, 45, 120, 116, 108, 85, 82, 71, 131, 128, 118, 89, 88, 79, 126, 126, 114, 113, 112, 104, 89, 88, 79, 76, 75, 66, 132, 131, 122, 110, 109, 100, 111, 108, 100, 53, 52, 41, 94, 93, 84, 96, 95, 84, 103, 102, 91, 69, 69, 57, 116, 115, 104, 130, 129, 118, 99, 99, 88, 78, 78, 67, 119, 119, 107, 108, 105, 97, 118, 117, 108, 96, 93, 85, 116, 115, 106, 100, 100, 89, 118, 117, 108, 70, 69, 61, 110, 109, 100, 90, 90, 78, 99, 98, 90, 100, 100, 91, 87, 84, 76, 96, 93, 85, 70, 67, 56, 77, 71, 64, 255, 255, 247, 254, 253, 245, 255, 255, 250, 18, 15, 9, 255, 255, 255, 251, 250, 241, 251, 250, 241, 249, 249, 240, 253, 252, 243, 252, 251, 242, 251, 250, 241, 251, 250, 241, 253, 252, 243, 251, 250, 241, 254, 253, 245, 253, 252, 243, 253, 252, 241, 254, 253, 245, 253, 252, 243, 247, 249, 237, 251, 253, 243, 255, 255, 247, 62, 64, 52, 0, 0, 0, 255, 255, 245, 220, 220, 209, 219, 219, 207, 222, 219, 209, 225, 223, 212, 219, 219, 207, 220, 217, 206, 217, 214, 204, 219, 216, 205, 212, 209, 196, 217, 214, 204, 214, 211, 201, 217, 214, 204, 220, 217, 206, 217, 214, 204, 212, 212, 201, 217, 216, 205, 215, 214, 203, 213, 213, 204, 212, 212, 201, 210, 209, 198, 217, 216, 205, 206, 206, 197, 198, 197, 189, 218, 217, 208, 40, 39, 30, 97, 96, 89, 88, 86, 80, 89, 88, 81, 88, 86, 80, 82, 80, 76, 83, 81, 77, 81, 79, 75, 83, 81, 77, 77, 78, 71, 81, 82, 77, 77, 78, 71, 79, 80, 73, 82, 81, 74, 79, 80, 73, 77, 78, 73, 80, 78, 72, 76, 76, 72, 74, 75, 70, 77, 76, 72, 79, 80, 75, 78, 79, 74, 78, 79, 74, 84, 85, 78, 80, 81, 74, 87, 89, 81, 84, 83, 75, 92, 92, 83, 82, 81, 74, 81, 79, 73, 88, 86, 80, 92, 91, 85, 80, 78, 72, 97, 96, 89, 84, 83, 75, 83, 82, 73, 81, 80, 69, 85, 85, 76, 91, 90, 82, 99, 98, 90, 83, 83, 71, 99, 99, 88, 82, 81, 70, 76, 75, 66, 75, 74, 65, 81, 80, 71, 84, 83, 75, 71, 71, 62, 92, 92, 83, 95, 94, 85, 96, 95, 84, 82, 81, 72, 80, 79, 70, 104, 104, 92, 91, 91, 80, 83, 83, 71, 97, 95, 84, 99, 99, 88, 85, 85, 74, 72, 69, 59, 88, 85, 75, 70, 70, 59, 91, 91, 80, 82, 81, 72, 84, 83, 75, 100, 100, 91, 92, 92, 83, 97, 96, 87, 111, 110, 101, 82, 81, 72, 94, 93, 82, 63, 63, 52, 92, 92, 81, 92, 92, 81, 81, 78, 68, 62, 62, 50, 75, 74, 63, 92, 92, 79, 81, 81, 67, 112, 112, 98, 116, 116, 102, 59, 58, 45, 60, 60, 46, 99, 99, 86, 117, 117, 103, 90, 90, 78, 98, 98, 86, 99, 99, 88, 82, 81, 70, 94, 93, 82, 63, 63, 52, 88, 87, 76, 74, 73, 62, 91, 91, 80, 99, 99, 88, 66, 65, 54, 70, 70, 59, 91, 91, 80, 111, 110, 99, 87, 86, 75, 79, 76, 65, 84, 84, 72, 112, 112, 100, 96, 95, 84, 79, 76, 65, 104, 104, 92, 102, 99, 89, 86, 83, 72, 89, 86, 76, 80, 77, 67, 92, 89, 78, 68, 66, 55, 97, 96, 85, 80, 77, 67, 82, 79, 69, 91, 91, 80, 115, 112, 102, 102, 100, 87, 96, 94, 81, 104, 102, 89, 109, 107, 94, 109, 107, 94, 92, 89, 78, 89, 86, 76, 124, 123, 112, 89, 88, 77, 111, 110, 99, 67, 66, 55, 57, 57, 44, 109, 108, 97, 77, 77, 64, 108, 107, 96, 83, 81, 70, 95, 92, 82, 73, 72, 61, 60, 57, 47, 74, 71, 61, 69, 69, 57, 114, 111, 100, 73, 72, 61, 55, 55, 43, 100, 100, 89, 95, 94, 85, 85, 85, 74, 125, 125, 113, 127, 127, 116, 109, 108, 97, 84, 83, 75, 106, 105, 97, 96, 93, 85, 114, 114, 105, 68, 67, 56, 108, 107, 96, 135, 135, 124, 111, 110, 99, 103, 102, 91, 89, 88, 77, 54, 53, 42, 78, 78, 67, 91, 91, 80, 104, 101, 93, 76, 75, 66, 103, 100, 92, 105, 104, 96, 75, 72, 64, 83, 80, 72, 128, 128, 119, 84, 83, 75, 130, 129, 118, 96, 95, 86, 108, 105, 97, 110, 107, 99, 92, 88, 80, 80, 77, 69, 107, 102, 92, 234, 232, 231, 236, 234, 232, 173, 171, 169, 35, 34, 30, 238, 236, 234, 241, 240, 236, 242, 241, 237, 239, 237, 233, 238, 236, 232, 245, 243, 239, 244, 242, 238, 246, 245, 238, 244, 242, 236, 246, 245, 238, 246, 245, 238, 245, 244, 237, 243, 245, 237, 243, 245, 235, 242, 244, 234, 249, 251, 241, 249, 251, 241, 251, 253, 241, 249, 251, 239, 168, 170, 158, 0, 0, 0, 255, 255, 252, 220, 220, 209, 222, 219, 209, 222, 219, 209, 222, 219, 209, 222, 219, 209, 220, 217, 206, 216, 213, 203, 227, 224, 213, 223, 220, 210, 221, 218, 205, 217, 214, 204, 224, 221, 211, 223, 220, 210, 224, 221, 211, 221, 218, 207, 220, 217, 206, 218, 218, 206, 217, 214, 204, 215, 214, 205, 206, 206, 197, 230, 229, 220, 34, 33, 25, 69, 68, 60, 76, 75, 68, 82, 81, 74, 83, 82, 75, 83, 82, 75, 84, 83, 79, 83, 81, 77, 88, 86, 82, 82, 80, 76, 77, 76, 70, 74, 76, 68, 77, 78, 71, 73, 74, 67, 74, 76, 68, 81, 83, 75, 76, 77, 70, 70, 71, 64, 76, 77, 70, 84, 83, 77, 75, 74, 67, 76, 75, 68, 84, 85, 78, 74, 76, 68, 74, 76, 68, 77, 78, 71, 81, 83, 75, 83, 82, 73, 84, 83, 75, 91, 90, 82, 80, 79, 70, 100, 100, 91, 90, 89, 82, 83, 82, 73, 77, 76, 68, 92, 92, 83, 108, 107, 98, 89, 88, 77, 99, 99, 88, 77, 77, 65, 102, 101, 90, 87, 86, 75, 80, 79, 68, 71, 71, 60, 75, 74, 63, 104, 104, 92, 88, 87, 78, 64, 64, 55, 88, 87, 78, 102, 101, 92, 103, 102, 93, 87, 86, 75, 95, 94, 83, 92, 92, 81, 94, 93, 84, 77, 77, 65, 95, 94, 83, 70, 70, 59, 78, 75, 64, 99, 96, 85, 88, 85, 75, 114, 111, 100, 106, 103, 92, 89, 88, 77, 94, 91, 81, 100, 100, 91, 91, 87, 79, 73, 70, 62, 84, 83, 75, 85, 85, 76, 66, 65, 56, 96, 95, 84, 97, 96, 85, 106, 106, 95, 71, 71, 60, 82, 81, 70, 90, 90, 78, 75, 74, 63, 96, 95, 84, 112, 112, 98, 119, 119, 105, 108, 107, 96, 83, 83, 69, 90, 90, 76, 78, 78, 67, 106, 106, 93, 110, 109, 98, 88, 88, 74, 77, 77, 65, 73, 72, 61, 73, 72, 61, 67, 66, 55, 100, 100, 89, 103, 100, 90, 75, 73, 62, 97, 96, 85, 70, 70, 59, 106, 106, 95, 103, 102, 91, 111, 109, 98, 78, 78, 67, 80, 77, 67, 106, 106, 95, 117, 114, 104, 80, 79, 68, 64, 64, 53, 110, 107, 97, 68, 66, 55, 84, 84, 72, 104, 104, 92, 102, 99, 89, 78, 78, 67, 54, 53, 42, 95, 94, 83, 113, 113, 102, 88, 87, 76, 100, 100, 89, 64, 64, 53, 109, 108, 97, 106, 103, 90, 68, 66, 53, 89, 87, 74, 113, 110, 97, 114, 111, 98, 68, 66, 53, 78, 75, 64, 96, 95, 84, 67, 67, 53, 90, 90, 78, 113, 113, 102, 116, 116, 102, 116, 116, 102, 85, 85, 72, 87, 87, 73, 68, 67, 56, 106, 106, 95, 128, 125, 114, 92, 89, 78, 90, 90, 78, 89, 88, 77, 121, 118, 107, 117, 116, 105, 112, 111, 103, 98, 98, 86, 83, 83, 71, 117, 116, 107, 74, 71, 61, 78, 78, 67, 70, 66, 58, 106, 105, 97, 108, 107, 96, 132, 129, 119, 97, 96, 87, 120, 119, 111, 151, 150, 139, 112, 112, 100, 135, 135, 124, 78, 78, 67, 88, 87, 76, 113, 113, 102, 81, 78, 68, 86, 83, 72, 72, 69, 59, 71, 67, 60, 110, 107, 99, 80, 79, 70, 92, 92, 83, 110, 109, 100, 114, 114, 105, 84, 83, 75, 88, 87, 78, 87, 86, 77, 74, 73, 64, 101, 98, 90, 61, 58, 50, 77, 73, 65, 111, 108, 100, 241, 239, 242, 255, 255, 255, 11, 8, 13, 252, 249, 254, 247, 244, 250, 245, 242, 247, 247, 244, 250, 245, 242, 247, 246, 243, 246, 245, 242, 247, 245, 242, 245, 242, 240, 243, 242, 240, 243, 216, 213, 216, 244, 241, 242, 240, 240, 240, 243, 243, 243, 249, 250, 247, 255, 255, 253, 244, 246, 238, 232, 233, 226, 253, 255, 242, 255, 255, 245, 243, 245, 233, 31, 33, 21, 0, 0, 0, 217, 216, 205, 221, 218, 207, 222, 219, 209, 224, 221, 211, 216, 213, 203, 221, 218, 207, 221, 218, 207, 222, 219, 209, 221, 218, 207, 224, 222, 209, 221, 218, 205, 225, 223, 212, 228, 225, 215, 221, 218, 207, 225, 223, 212, 223, 220, 210, 218, 218, 206, 218, 218, 206, 219, 218, 210, 188, 187, 178, 68, 67, 58, 85, 84, 78, 75, 74, 67, 81, 79, 73, 81, 79, 73, 85, 84, 78, 83, 82, 75, 87, 85, 79, 82, 81, 74, 80, 78, 72, 76, 75, 68, 78, 79, 72, 74, 76, 68, 69, 69, 65, 76, 77, 70, 71, 72, 65, 76, 77, 70, 75, 74, 65, 91, 90, 84, 70, 69, 61, 80, 78, 72, 81, 80, 71, 72, 74, 64, 82, 81, 72, 81, 83, 73, 77, 78, 69, 83, 84, 75, 92, 94, 84, 88, 87, 78, 90, 91, 82, 89, 88, 77, 82, 81, 72, 98, 97, 89, 81, 80, 71, 90, 89, 80, 71, 71, 62, 80, 79, 70, 64, 64, 53, 95, 94, 83, 90, 90, 78, 81, 80, 69, 106, 106, 95, 92, 92, 81, 71, 71, 60, 102, 101, 90, 98, 98, 86, 78, 78, 67, 89, 88, 79, 81, 80, 71, 103, 102, 93, 102, 101, 92, 74, 73, 64, 95, 94, 83, 98, 98, 86, 81, 80, 69, 82, 81, 70, 92, 92, 81, 68, 67, 56, 102, 101, 90, 94, 93, 82, 95, 94, 83, 82, 81, 70, 97, 95, 84, 62, 62, 50, 90, 90, 78, 76, 75, 66, 104, 104, 92, 104, 103, 94, 98, 97, 89, 81, 80, 69, 64, 61, 50, 64, 64, 53, 85, 85, 74, 114, 111, 100, 105, 105, 94, 74, 73, 62, 68, 67, 56, 92, 92, 81, 76, 76, 64, 66, 65, 52, 88, 88, 74, 87, 87, 73, 103, 103, 89, 60, 60, 46, 76, 76, 62, 87, 86, 75, 99, 99, 86, 66, 65, 54, 82, 82, 68, 102, 102, 88, 55, 55, 43, 97, 97, 83, 82, 81, 70, 102, 101, 90, 83, 83, 71, 75, 74, 63, 105, 105, 94, 81, 80, 69, 61, 60, 49, 83, 83, 71, 96, 95, 84, 68, 66, 55, 115, 112, 102, 89, 88, 77, 66, 65, 54, 78, 78, 69, 62, 62, 50, 62, 61, 52, 92, 92, 81, 106, 106, 95, 96, 95, 84, 75, 74, 63, 67, 66, 55, 73, 72, 61, 71, 71, 60, 80, 79, 68, 100, 100, 89, 88, 87, 76, 109, 106, 96, 110, 109, 98, 102, 99, 89, 75, 73, 60, 80, 78, 65, 96, 94, 81, 78, 75, 62, 117, 115, 102, 91, 88, 75, 88, 85, 75, 102, 102, 88, 112, 112, 98, 95, 95, 81, 110, 109, 98, 110, 110, 96, 134, 134, 121, 77, 77, 64, 113, 113, 102, 113, 113, 102, 83, 83, 71, 89, 86, 76, 116, 113, 103, 142, 142, 131, 118, 116, 105, 70, 67, 56, 81, 80, 69, 76, 76, 64, 82, 81, 70, 61, 60, 51, 122, 119, 111, 60, 59, 50, 118, 115, 107, 80, 79, 70, 108, 107, 98, 80, 77, 67, 121, 118, 107, 71, 68, 57, 105, 105, 94, 57, 57, 46, 84, 84, 72, 127, 127, 116, 111, 109, 98, 82, 81, 70, 73, 70, 60, 68, 66, 55, 99, 95, 87, 73, 70, 62, 78, 74, 66, 102, 99, 91, 78, 78, 69, 114, 114, 105, 70, 69, 61, 77, 76, 68, 97, 96, 87, 76, 75, 66, 91, 90, 82, 97, 96, 87, 110, 109, 100, 103, 100, 92, 69, 63, 56, 247, 246, 240, 76, 75, 66, 251, 250, 241, 252, 251, 244, 254, 253, 245, 253, 252, 243, 251, 250, 241, 253, 252, 243, 254, 253, 247, 252, 251, 244, 251, 249, 243, 250, 252, 244, 250, 252, 244, 247, 248, 241, 244, 246, 238, 242, 243, 238, 239, 240, 233, 240, 241, 234, 251, 253, 245, 255, 255, 255, 255, 255, 255, 237, 239, 227, 255, 255, 246, 255, 255, 247, 226, 228, 216, 0, 0, 0, 247, 247, 235, 219, 216, 205, 227, 224, 213, 223, 220, 210, 219, 216, 205, 221, 218, 205, 225, 223, 212, 227, 224, 211, 230, 228, 215, 233, 230, 217, 227, 224, 213, 230, 227, 217, 230, 227, 217, 231, 228, 218, 224, 221, 211, 227, 223, 216, 220, 220, 211, 0, 0, 0, 77, 78, 71, 78, 77, 71, 82, 81, 74, 80, 78, 72, 83, 82, 75, 85, 84, 78, 82, 81, 74, 81, 79, 73, 74, 72, 66, 83, 84, 77, 83, 84, 77, 72, 73, 66, 76, 77, 70, 79, 80, 73, 72, 73, 66, 74, 76, 68, 71, 73, 63, 69, 70, 61, 73, 72, 63, 82, 81, 72, 82, 81, 72, 75, 74, 65, 82, 81, 72, 70, 70, 59, 83, 83, 71, 78, 78, 67, 75, 74, 63, 87, 89, 77, 80, 82, 70, 79, 81, 69, 81, 83, 73, 80, 79, 68, 84, 84, 72, 105, 105, 94, 87, 86, 75, 80, 79, 68, 90, 90, 78, 73, 72, 61, 75, 74, 63, 96, 95, 84, 67, 67, 53, 89, 88, 77, 82, 81, 70, 84, 84, 72, 89, 88, 77, 77, 77, 65, 103, 102, 91, 88, 87, 76, 76, 76, 64, 84, 83, 75, 100, 100, 91, 99, 98, 90, 91, 90, 82, 89, 88, 79, 87, 86, 75, 83, 83, 71, 85, 85, 76, 81, 80, 69, 81, 80, 69, 88, 87, 76, 98, 98, 86, 73, 72, 61, 77, 77, 65, 73, 72, 61, 89, 88, 79, 80, 79, 68, 92, 92, 81, 71, 71, 60, 89, 88, 77, 97, 96, 85, 71, 71, 60, 84, 84, 72, 94, 93, 82, 71, 71, 60, 68, 67, 56, 102, 101, 90, 96, 95, 84, 100, 100, 89, 63, 63, 52, 54, 53, 42, 90, 90, 78, 99, 99, 86, 73, 72, 59, 71, 71, 58, 113, 113, 100, 75, 75, 61, 91, 91, 78, 106, 106, 95, 106, 106, 93, 95, 95, 81, 95, 94, 83, 73, 72, 59, 99, 99, 86, 102, 101, 90, 75, 74, 63, 78, 78, 67, 68, 67, 56, 87, 86, 75, 95, 94, 83, 84, 84, 72, 85, 85, 76, 103, 102, 91, 110, 107, 97, 74, 73, 64, 101, 98, 88, 98, 98, 86, 118, 117, 106, 109, 108, 97, 71, 71, 60, 78, 78, 67, 104, 104, 92, 81, 80, 69, 69, 69, 57, 111, 110, 99, 87, 86, 75, 60, 59, 48, 90, 90, 78, 95, 94, 83, 76, 76, 64, 65, 62, 52, 124, 121, 111, 75, 73, 62, 71, 68, 57, 71, 68, 55, 70, 67, 54, 108, 105, 93, 109, 107, 94, 83, 81, 68, 102, 100, 87, 65, 62, 50, 81, 78, 68, 99, 99, 86, 54, 53, 42, 96, 94, 81, 78, 78, 65, 94, 91, 81, 102, 102, 88, 121, 121, 110, 89, 88, 77, 77, 74, 63, 113, 110, 99, 127, 127, 116, 105, 105, 94, 83, 81, 70, 100, 97, 86, 92, 92, 81, 59, 56, 46, 79, 76, 65, 110, 109, 100, 68, 67, 58, 116, 115, 106, 128, 125, 117, 114, 114, 105, 88, 87, 78, 120, 117, 106, 73, 70, 62, 77, 77, 65, 116, 115, 104, 96, 95, 84, 65, 62, 52, 109, 106, 96, 123, 120, 110, 114, 111, 100, 110, 107, 97, 130, 127, 117, 127, 124, 113, 82, 79, 71, 128, 125, 117, 74, 71, 63, 108, 107, 98, 89, 88, 79, 95, 94, 85, 78, 78, 69, 71, 71, 62, 81, 80, 71, 66, 65, 56, 76, 75, 66, 113, 112, 104, 102, 99, 89, 97, 95, 84, 249, 249, 238, 11, 10, 0, 255, 255, 255, 255, 255, 249, 255, 255, 246, 255, 255, 246, 255, 255, 246, 255, 255, 246, 255, 255, 246, 255, 255, 246, 255, 255, 247, 255, 255, 249, 255, 255, 248, 255, 255, 248, 255, 255, 248, 255, 255, 247, 255, 255, 247, 242, 243, 236, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 255, 244, 255, 255, 251, 255, 255, 255, 25, 24, 13, 255, 255, 255, 225, 223, 212, 220, 217, 206, 222, 221, 210, 227, 224, 213, 227, 224, 213, 228, 225, 215, 230, 227, 217, 235, 232, 222, 231, 229, 216, 225, 223, 212, 235, 232, 222, 238, 235, 225, 233, 230, 219, 229, 226, 218, 186, 183, 175, 0, 0, 0, 85, 85, 76, 84, 83, 77, 83, 82, 75, 81, 79, 73, 79, 80, 73, 83, 82, 75, 84, 83, 77, 83, 82, 75, 82, 81, 74, 78, 77, 71, 74, 76, 68, 69, 70, 63, 81, 83, 75, 69, 70, 63, 72, 73, 66, 71, 72, 65, 70, 71, 64, 75, 74, 65, 71, 71, 62, 73, 72, 63, 90, 89, 80, 77, 76, 68, 82, 81, 72, 82, 81, 70, 78, 78, 67, 69, 69, 57, 90, 90, 78, 87, 86, 75, 83, 83, 71, 75, 74, 63, 92, 92, 81, 77, 77, 65, 94, 93, 82, 94, 93, 82, 104, 104, 92, 89, 88, 77, 89, 88, 77, 95, 94, 83, 94, 93, 82, 97, 95, 84, 78, 75, 64, 83, 83, 69, 104, 102, 89, 90, 90, 78, 66, 65, 52, 96, 96, 82, 100, 100, 87, 71, 71, 60, 82, 81, 70, 82, 81, 70, 95, 94, 83, 78, 78, 67, 77, 77, 65, 83, 83, 71, 59, 58, 47, 80, 79, 68, 73, 72, 61, 68, 67, 56, 102, 101, 90, 97, 96, 85, 88, 87, 76, 83, 83, 71, 69, 69, 57, 108, 107, 96, 94, 93, 84, 99, 98, 90, 99, 98, 90, 76, 76, 64, 89, 88, 79, 80, 79, 70, 91, 88, 77, 88, 85, 75, 97, 96, 85, 82, 81, 70, 104, 104, 92, 104, 104, 92, 110, 109, 98, 77, 77, 65, 73, 72, 61, 80, 79, 68, 100, 100, 89, 106, 106, 95, 88, 88, 74, 73, 72, 59, 97, 96, 85, 99, 99, 88, 74, 74, 60, 62, 62, 48, 71, 71, 58, 95, 95, 81, 103, 103, 89, 63, 63, 52, 60, 60, 46, 71, 71, 58, 97, 95, 82, 70, 70, 57, 92, 92, 81, 61, 60, 49, 77, 77, 65, 71, 71, 60, 109, 108, 97, 94, 93, 82, 95, 94, 85, 82, 79, 71, 82, 81, 72, 112, 111, 103, 82, 81, 72, 75, 74, 65, 62, 61, 52, 83, 83, 71, 67, 66, 55, 110, 109, 98, 98, 98, 86, 111, 110, 99, 88, 87, 76, 104, 102, 91, 106, 106, 95, 81, 80, 69, 70, 70, 59, 96, 93, 83, 111, 109, 98, 95, 92, 82, 103, 100, 90, 99, 96, 85, 114, 111, 98, 83, 81, 68, 73, 71, 58, 73, 71, 58, 100, 97, 84, 64, 61, 48, 117, 114, 104, 132, 129, 119, 101, 98, 86, 89, 87, 74, 102, 100, 87, 128, 125, 112, 82, 81, 70, 103, 103, 89, 118, 117, 106, 83, 83, 71, 133, 133, 121, 100, 97, 86, 88, 85, 75, 88, 85, 75, 120, 117, 106, 94, 91, 81, 95, 94, 83, 99, 96, 85, 158, 155, 145, 109, 106, 98, 92, 88, 80, 116, 115, 106, 97, 96, 87, 111, 110, 101, 130, 129, 120, 87, 86, 77, 94, 93, 84, 121, 121, 112, 98, 98, 86, 68, 67, 56, 123, 122, 111, 77, 74, 63, 102, 99, 89, 95, 92, 82, 80, 77, 67, 57, 57, 46, 95, 94, 83, 79, 76, 68, 135, 131, 124, 120, 119, 111, 140, 139, 130, 140, 139, 130, 73, 72, 63, 77, 76, 68, 73, 72, 63, 62, 61, 52, 63, 62, 54, 97, 95, 84, 118, 117, 106, 85, 85, 74, 84, 84, 70, 255, 255, 247, 14, 14, 3, 255, 255, 250, 255, 255, 248, 255, 255, 247, 255, 255, 246, 255, 255, 246, 255, 255, 246, 255, 255, 248, 191, 191, 180, 255, 255, 253, 255, 255, 246, 255, 255, 246, 255, 255, 249, 255, 255, 247, 255, 255, 246, 255, 255, 245, 250, 252, 242, 255, 255, 247, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 252, 240, 255, 255, 249, 255, 255, 255, 4, 3, 0, 255, 255, 255, 223, 220, 210, 225, 223, 212, 233, 230, 217, 230, 227, 217, 230, 228, 215, 238, 236, 223, 235, 232, 220, 238, 236, 223, 235, 232, 220, 238, 236, 223, 238, 235, 225, 238, 235, 225, 233, 230, 219, 0, 0, 0, 86, 83, 75, 87, 85, 79, 80, 78, 72, 79, 80, 73, 79, 80, 73, 85, 84, 78, 80, 78, 72, 82, 81, 74, 82, 81, 74, 76, 77, 70, 80, 82, 72, 78, 79, 72, 72, 74, 64, 72, 73, 66, 72, 74, 64, 63, 64, 55, 71, 73, 63, 67, 69, 60, 74, 76, 66, 68, 67, 58, 90, 89, 80, 66, 65, 54, 81, 80, 69, 71, 71, 60, 78, 78, 67, 78, 78, 67, 76, 76, 64, 80, 79, 68, 78, 78, 67, 87, 86, 75, 74, 73, 62, 100, 100, 87, 92, 92, 79, 113, 113, 102, 91, 91, 78, 87, 86, 75, 76, 76, 64, 80, 79, 66, 98, 98, 86, 103, 102, 91, 63, 63, 52, 77, 74, 63, 95, 92, 82, 73, 71, 58, 93, 90, 78, 110, 110, 96, 78, 78, 65, 75, 73, 60, 108, 105, 95, 96, 96, 82, 76, 76, 64, 69, 69, 57, 80, 79, 68, 94, 93, 82, 94, 93, 82, 84, 84, 72, 67, 66, 55, 94, 93, 82, 80, 79, 68, 96, 95, 84, 84, 84, 72, 67, 66, 55, 75, 74, 63, 99, 99, 88, 78, 78, 67, 75, 73, 62, 83, 82, 73, 91, 90, 82, 68, 67, 58, 100, 100, 89, 99, 99, 88, 88, 87, 76, 85, 85, 74, 92, 92, 81, 98, 98, 86, 74, 71, 61, 118, 117, 106, 103, 102, 91, 85, 85, 74, 98, 98, 86, 114, 114, 103, 98, 98, 86, 90, 90, 76, 74, 73, 62, 70, 70, 57, 76, 76, 62, 98, 98, 86, 54, 54, 40, 82, 82, 68, 103, 103, 89, 106, 106, 93, 73, 72, 59, 108, 107, 96, 66, 65, 54, 103, 101, 88, 120, 120, 107, 95, 93, 80, 49, 49, 36, 105, 105, 92, 66, 65, 52, 106, 106, 95, 76, 76, 64, 69, 69, 57, 85, 85, 76, 110, 109, 100, 119, 119, 107, 67, 66, 57, 102, 101, 92, 81, 78, 70, 120, 120, 109, 61, 60, 49, 94, 93, 82, 88, 87, 76, 113, 113, 102, 118, 117, 106, 70, 70, 59, 96, 95, 84, 100, 100, 89, 98, 98, 86, 63, 60, 49, 81, 78, 68, 96, 93, 83, 57, 54, 43, 64, 61, 50, 115, 112, 102, 103, 100, 90, 104, 102, 89, 81, 79, 66, 114, 111, 98, 115, 112, 100, 72, 69, 59, 86, 83, 70, 106, 103, 92, 83, 83, 71, 96, 96, 82, 115, 112, 100, 80, 78, 65, 45, 45, 31, 111, 110, 99, 130, 129, 118, 102, 101, 90, 95, 94, 83, 97, 95, 84, 103, 100, 90, 75, 73, 62, 97, 96, 85, 67, 64, 54, 95, 94, 83, 95, 94, 83, 127, 127, 116, 74, 71, 63, 69, 68, 60, 82, 79, 71, 127, 123, 115, 104, 103, 94, 53, 52, 43, 124, 123, 114, 168, 167, 159, 70, 70, 59, 74, 73, 62, 110, 109, 98, 82, 81, 70, 86, 83, 72, 93, 90, 80, 131, 130, 119, 102, 101, 90, 79, 76, 65, 76, 76, 64, 128, 125, 117, 83, 82, 73, 73, 70, 62, 69, 68, 60, 100, 100, 89, 128, 128, 117, 82, 81, 70, 74, 73, 64, 73, 72, 63, 104, 103, 94, 89, 88, 79, 90, 89, 80, 86, 88, 78, 111, 113, 100, 48, 53, 40, 251, 250, 241, 39, 36, 28, 255, 255, 252, 255, 255, 249, 255, 255, 245, 255, 255, 245, 255, 255, 246, 255, 255, 246, 255, 255, 248, 255, 255, 252, 190, 190, 179, 255, 255, 248, 255, 255, 250, 255, 255, 249, 255, 255, 250, 255, 255, 248, 255, 255, 246, 251, 253, 241, 245, 244, 233, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 246, 255, 255, 249, 255, 255, 255, 0, 0, 0, 255, 255, 245, 227, 224, 213, 227, 224, 213, 230, 227, 217, 233, 233, 220, 233, 233, 222, 235, 232, 222, 235, 232, 222, 241, 241, 228, 240, 237, 224, 242, 239, 226, 237, 234, 224, 235, 232, 222, 0, 0, 0, 82, 81, 72, 89, 88, 81, 87, 85, 79, 81, 79, 73, 81, 83, 75, 83, 84, 77, 76, 77, 70, 70, 71, 64, 80, 78, 72, 81, 83, 75, 71, 72, 65, 78, 80, 70, 71, 73, 63, 69, 70, 61, 75, 74, 65, 74, 73, 64, 70, 71, 62, 62, 63, 54, 71, 71, 62, 70, 69, 61, 70, 69, 61, 68, 67, 58, 68, 67, 56, 73, 72, 61, 90, 90, 78, 75, 74, 63, 74, 73, 62, 76, 76, 64, 91, 91, 80, 83, 83, 71, 78, 78, 67, 76, 76, 64, 77, 77, 64, 104, 104, 92, 95, 94, 83, 75, 75, 61, 76, 76, 64, 74, 74, 60, 105, 105, 94, 75, 74, 63, 90, 90, 78, 120, 117, 106, 111, 109, 98, 102, 99, 89, 68, 66, 53, 74, 72, 59, 88, 86, 73, 75, 75, 61, 94, 93, 80, 68, 68, 54, 89, 89, 75, 70, 70, 59, 89, 88, 77, 81, 80, 69, 92, 92, 81, 98, 98, 86, 85, 85, 74, 85, 85, 74, 94, 91, 81, 80, 79, 68, 81, 80, 69, 74, 73, 62, 64, 64, 53, 87, 86, 75, 81, 80, 69, 99, 99, 88, 76, 76, 64, 91, 91, 80, 96, 95, 84, 99, 98, 90, 82, 81, 70, 68, 67, 58, 63, 63, 52, 75, 74, 63, 98, 98, 86, 92, 92, 81, 83, 83, 71, 75, 74, 63, 75, 74, 63, 66, 65, 54, 76, 76, 64, 108, 107, 96, 103, 102, 91, 76, 76, 64, 74, 74, 60, 104, 104, 90, 85, 85, 72, 64, 64, 51, 85, 85, 72, 111, 111, 97, 77, 77, 64, 78, 78, 65, 69, 69, 57, 74, 73, 62, 113, 113, 100, 115, 112, 100, 96, 96, 82, 70, 70, 57, 105, 105, 92, 97, 97, 83, 73, 72, 59, 98, 98, 84, 118, 117, 106, 71, 71, 60, 99, 99, 88, 103, 102, 91, 67, 66, 55, 92, 92, 83, 88, 87, 78, 99, 98, 90, 69, 68, 60, 86, 83, 75, 111, 110, 101, 105, 105, 94, 55, 55, 43, 84, 84, 72, 70, 70, 59, 95, 94, 83, 117, 114, 104, 90, 90, 78, 108, 105, 95, 60, 57, 47, 85, 82, 71, 94, 91, 81, 78, 75, 64, 115, 112, 102, 88, 85, 75, 117, 114, 104, 110, 108, 95, 121, 118, 105, 118, 116, 103, 78, 75, 62, 105, 105, 92, 102, 100, 87, 61, 61, 47, 76, 76, 62, 81, 79, 66, 132, 130, 117, 85, 82, 71, 85, 85, 74, 116, 115, 104, 133, 133, 121, 94, 93, 82, 82, 79, 69, 83, 81, 70, 112, 112, 100, 115, 112, 102, 123, 120, 110, 144, 143, 132, 106, 106, 95, 127, 126, 118, 95, 94, 85, 87, 84, 76, 101, 98, 90, 110, 107, 99, 61, 58, 50, 72, 69, 61, 83, 82, 73, 115, 112, 104, 88, 87, 76, 95, 94, 83, 114, 114, 103, 87, 86, 75, 67, 64, 54, 60, 59, 48, 126, 126, 114, 85, 82, 71, 107, 104, 94, 162, 161, 153, 89, 86, 76, 73, 70, 62, 102, 99, 91, 75, 73, 62, 81, 80, 69, 80, 79, 70, 74, 73, 62, 100, 100, 89, 120, 120, 109, 87, 86, 77, 111, 112, 103, 109, 108, 99, 73, 75, 65, 91, 93, 81, 109, 111, 99, 168, 166, 155, 206, 202, 194, 255, 255, 252, 255, 255, 249, 255, 255, 246, 255, 255, 246, 255, 255, 246, 255, 255, 246, 255, 255, 255, 189, 189, 177, 255, 255, 255, 255, 255, 247, 255, 255, 248, 255, 255, 248, 255, 255, 250, 255, 255, 248, 255, 255, 246, 251, 250, 239, 253, 252, 241, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 242, 255, 255, 248, 215, 214, 203, 0, 0, 0, 244, 243, 232, 227, 224, 213, 230, 227, 217, 231, 231, 217, 234, 234, 223, 239, 238, 227, 238, 238, 224, 241, 241, 230, 241, 241, 230, 244, 244, 230, 254, 251, 240, 240, 237, 224, 44, 41, 31, 88, 87, 78, 81, 80, 71, 83, 82, 75, 82, 81, 74, 80, 78, 72, 80, 78, 72, 83, 84, 77, 84, 83, 77, 70, 69, 63, 72, 73, 66, 73, 74, 67, 69, 70, 63, 72, 73, 66, 68, 67, 58, 71, 72, 65, 73, 74, 67, 77, 76, 68, 69, 68, 60, 73, 72, 63, 76, 75, 66, 70, 69, 61, 71, 71, 62, 75, 74, 65, 84, 84, 72, 75, 74, 63, 74, 73, 62, 80, 79, 68, 73, 72, 61, 82, 81, 70, 87, 86, 75, 71, 71, 60, 90, 90, 78, 75, 74, 63, 100, 100, 89, 103, 102, 91, 105, 105, 94, 73, 70, 60, 99, 96, 85, 91, 91, 78, 102, 101, 90, 96, 95, 84, 106, 106, 95, 113, 113, 102, 104, 104, 92, 66, 64, 51, 89, 87, 74, 100, 97, 84, 89, 87, 74, 64, 61, 48, 75, 73, 60, 85, 85, 72, 74, 74, 60, 91, 88, 77, 88, 87, 76, 68, 67, 56, 81, 80, 69, 76, 76, 64, 68, 67, 56, 97, 96, 85, 88, 87, 76, 94, 93, 82, 61, 60, 49, 87, 86, 75, 99, 96, 85, 76, 76, 64, 94, 93, 84, 81, 80, 69, 63, 62, 54, 53, 52, 43, 75, 74, 65, 102, 101, 92, 102, 99, 91, 89, 86, 78, 100, 100, 91, 102, 101, 90, 87, 86, 75, 81, 80, 69, 85, 85, 74, 105, 105, 94, 71, 71, 60, 68, 67, 56, 98, 98, 86, 108, 107, 96, 70, 70, 59, 68, 67, 56, 62, 62, 48, 74, 74, 60, 78, 78, 65, 76, 76, 64, 116, 116, 102, 108, 107, 96, 95, 94, 83, 117, 116, 105, 77, 77, 65, 91, 91, 80, 125, 125, 111, 115, 112, 100, 89, 89, 75, 87, 87, 73, 70, 70, 57, 76, 76, 62, 102, 102, 88, 123, 123, 109, 85, 85, 74, 71, 71, 60, 69, 69, 57, 64, 64, 55, 76, 75, 66, 110, 107, 99, 78, 74, 66, 75, 72, 64, 56, 55, 47, 100, 97, 89, 87, 86, 77, 87, 84, 74, 57, 57, 46, 75, 74, 63, 110, 109, 98, 106, 105, 97, 90, 90, 78, 112, 112, 100, 91, 91, 80, 88, 87, 76, 78, 78, 67, 92, 92, 81, 109, 108, 97, 70, 67, 56, 94, 93, 82, 102, 102, 88, 99, 99, 88, 96, 94, 81, 75, 73, 60, 110, 109, 98, 121, 118, 105, 107, 104, 92, 86, 83, 70, 113, 110, 97, 108, 105, 93, 120, 117, 104, 102, 102, 88, 90, 90, 76, 81, 81, 67, 120, 120, 107, 98, 98, 84, 66, 65, 54, 124, 123, 112, 132, 131, 120, 91, 91, 80, 96, 95, 84, 116, 115, 104, 108, 107, 96, 75, 72, 64, 71, 67, 60, 86, 83, 75, 114, 111, 103, 77, 73, 65, 66, 63, 55, 78, 74, 66, 147, 144, 136, 104, 103, 94, 75, 74, 63, 95, 94, 83, 71, 71, 60, 103, 102, 91, 103, 102, 91, 108, 105, 95, 91, 91, 80, 74, 73, 62, 81, 80, 69, 92, 92, 81, 123, 122, 113, 67, 64, 56, 113, 110, 99, 87, 84, 74, 99, 96, 85, 138, 137, 126, 84, 84, 72, 74, 73, 62, 102, 101, 90, 107, 109, 99, 76, 77, 68, 108, 110, 100, 67, 69, 60, 113, 115, 103, 119, 121, 109, 28, 25, 14, 255, 255, 255, 255, 255, 252, 255, 255, 247, 255, 255, 247, 255, 255, 247, 255, 255, 248, 255, 255, 248, 255, 255, 247, 255, 255, 247, 255, 255, 248, 255, 255, 248, 255, 255, 249, 255, 255, 249, 255, 255, 251, 255, 255, 248, 255, 255, 247, 241, 238, 225, 237, 235, 222, 248, 245, 234, 255, 253, 240, 242, 239, 228, 255, 255, 252, 255, 255, 247, 45, 42, 32, 42, 42, 31, 226, 226, 215, 228, 225, 215, 236, 233, 223, 236, 235, 224, 240, 240, 228, 241, 241, 230, 246, 246, 232, 242, 242, 229, 244, 243, 232, 246, 246, 232, 229, 228, 217, 101, 96, 86, 80, 79, 70, 88, 87, 78, 83, 84, 77, 78, 79, 72, 79, 80, 73, 78, 79, 72, 74, 76, 68, 80, 81, 74, 73, 74, 67, 71, 72, 65, 77, 78, 71, 78, 79, 72, 72, 73, 66, 67, 69, 60, 67, 69, 60, 71, 71, 62, 71, 71, 62, 71, 71, 62, 73, 72, 63, 69, 68, 60, 71, 71, 62, 72, 69, 61, 68, 67, 58, 75, 74, 65, 71, 71, 60, 77, 74, 63, 77, 76, 68, 91, 90, 82, 66, 65, 54, 64, 64, 53, 70, 70, 59, 77, 77, 65, 84, 84, 72, 74, 73, 62, 74, 73, 62, 78, 75, 64, 103, 100, 90, 80, 79, 68, 83, 83, 69, 115, 112, 100, 57, 54, 43, 99, 96, 85, 83, 83, 71, 111, 110, 99, 101, 98, 88, 70, 67, 56, 66, 64, 51, 95, 93, 80, 74, 72, 59, 96, 94, 81, 103, 101, 88, 91, 88, 75, 83, 81, 70, 75, 73, 62, 92, 92, 81, 92, 92, 81, 83, 83, 71, 99, 99, 88, 94, 93, 82, 95, 94, 83, 80, 79, 68, 83, 81, 70, 81, 80, 69, 97, 96, 87, 96, 95, 86, 97, 96, 85, 74, 73, 64, 84, 83, 75, 77, 76, 68, 85, 85, 76, 102, 101, 92, 66, 65, 56, 89, 88, 79, 71, 68, 57, 102, 101, 90, 83, 83, 71, 98, 98, 86, 95, 94, 83, 84, 84, 72, 84, 83, 75, 103, 102, 91, 82, 81, 70, 57, 57, 48, 108, 107, 96, 70, 70, 59, 54, 53, 42, 91, 91, 78, 78, 78, 65, 63, 63, 50, 90, 90, 76, 106, 106, 95, 99, 99, 88, 91, 91, 80, 105, 105, 94, 104, 104, 92, 80, 79, 68, 46, 45, 34, 117, 115, 102, 106, 106, 93, 73, 72, 59, 106, 106, 93, 77, 77, 64, 92, 92, 79, 87, 87, 73, 68, 68, 54, 123, 122, 111, 140, 140, 128, 45, 42, 32, 92, 88, 80, 103, 100, 92, 74, 71, 63, 104, 101, 93, 81, 78, 70, 71, 68, 57, 66, 63, 55, 91, 91, 80, 106, 106, 95, 120, 120, 109, 83, 83, 71, 73, 72, 61, 87, 86, 75, 108, 107, 96, 75, 74, 63, 105, 105, 94, 111, 110, 99, 70, 70, 59, 89, 89, 75, 119, 119, 107, 123, 123, 109, 109, 109, 95, 89, 89, 75, 73, 71, 58, 76, 76, 62, 119, 119, 107, 80, 79, 66, 131, 131, 117, 113, 110, 97, 108, 105, 93, 95, 93, 80, 117, 115, 102, 111, 109, 96, 68, 68, 54, 113, 113, 102, 82, 81, 70, 90, 90, 78, 112, 112, 100, 92, 92, 81, 135, 135, 124, 65, 62, 52, 96, 95, 84, 110, 109, 100, 103, 102, 91, 135, 131, 124, 149, 148, 140, 79, 76, 68, 123, 120, 112, 96, 93, 85, 93, 90, 82, 88, 85, 77, 107, 104, 96, 66, 65, 56, 90, 89, 80, 106, 106, 95, 66, 65, 54, 110, 107, 97, 85, 82, 71, 114, 111, 100, 96, 95, 84, 78, 75, 64, 69, 69, 57, 61, 59, 48, 83, 81, 70, 87, 84, 74, 66, 63, 53, 89, 86, 76, 81, 78, 68, 60, 57, 47, 96, 95, 84, 117, 116, 105, 108, 107, 98, 100, 100, 89, 114, 116, 106, 90, 91, 82, 80, 82, 72, 53, 55, 46, 97, 99, 86, 28, 24, 18, 255, 255, 255, 255, 255, 249, 255, 255, 248, 255, 255, 248, 255, 255, 249, 255, 255, 252, 255, 255, 251, 255, 255, 253, 255, 255, 252, 255, 255, 253, 255, 255, 251, 255, 255, 252, 255, 255, 251, 255, 255, 249, 255, 255, 242, 249, 246, 233, 186, 181, 169, 189, 184, 172, 207, 204, 192, 223, 221, 208, 255, 255, 244, 255, 255, 254, 254, 254, 242, 2, 1, 0, 255, 255, 252, 225, 225, 213, 233, 233, 222, 232, 232, 220, 242, 242, 231, 248, 248, 237, 247, 247, 235, 251, 250, 239, 246, 245, 234, 251, 250, 239, 232, 232, 220, 46, 45, 34, 70, 70, 59, 88, 87, 78, 78, 80, 70, 83, 84, 77, 78, 79, 72, 79, 80, 73, 74, 76, 68, 73, 74, 67, 77, 78, 71, 69, 70, 63, 76, 77, 70, 72, 73, 66, 73, 72, 63, 69, 68, 60, 71, 71, 62, 69, 68, 60, 64, 64, 55, 69, 68, 60, 69, 69, 57, 70, 69, 61, 67, 66, 57, 67, 66, 57, 69, 68, 60, 69, 68, 60, 74, 71, 61, 68, 67, 58, 71, 71, 62, 77, 76, 68, 80, 79, 70, 82, 81, 70, 78, 78, 67, 100, 100, 89, 89, 88, 77, 71, 71, 60, 78, 78, 67, 96, 94, 81, 82, 80, 67, 87, 85, 72, 77, 74, 61, 73, 72, 61, 85, 82, 71, 80, 79, 68, 85, 85, 74, 85, 85, 74, 80, 77, 67, 77, 77, 65, 89, 86, 76, 84, 84, 72, 95, 95, 81, 102, 100, 87, 82, 82, 68, 71, 68, 55, 80, 79, 66, 95, 94, 83, 73, 72, 61, 74, 73, 62, 91, 91, 80, 83, 81, 70, 96, 95, 84, 81, 80, 69, 82, 81, 70, 104, 104, 92, 84, 84, 72, 84, 84, 72, 80, 79, 70, 94, 93, 84, 83, 82, 73, 97, 96, 87, 94, 93, 84, 99, 98, 90, 99, 98, 90, 63, 62, 54, 98, 97, 89, 73, 72, 61, 99, 96, 85, 68, 67, 58, 85, 85, 74, 109, 108, 97, 68, 67, 56, 110, 109, 100, 97, 96, 87, 66, 65, 56, 76, 75, 66, 88, 87, 76, 85, 85, 74, 99, 99, 88, 109, 108, 97, 63, 63, 50, 71, 71, 58, 110, 107, 97, 91, 91, 80, 116, 116, 102, 62, 62, 50, 97, 96, 85, 100, 100, 89, 80, 79, 68, 71, 71, 60, 81, 80, 69, 116, 115, 104, 121, 121, 108, 74, 72, 59, 70, 70, 57, 71, 71, 58, 88, 88, 74, 59, 58, 47, 88, 87, 76, 110, 109, 98, 77, 74, 63, 80, 79, 70, 102, 99, 89, 83, 81, 70, 95, 94, 85, 77, 74, 63, 67, 64, 56, 63, 63, 52, 57, 57, 48, 104, 102, 91, 75, 74, 63, 55, 55, 43, 63, 60, 49, 92, 89, 78, 68, 67, 56, 91, 91, 80, 90, 90, 78, 77, 77, 65, 91, 91, 80, 77, 77, 64, 114, 114, 101, 70, 70, 59, 110, 109, 98, 64, 64, 53, 98, 98, 86, 109, 109, 95, 83, 83, 69, 97, 97, 83, 106, 106, 93, 71, 68, 55, 97, 95, 82, 80, 78, 65, 123, 121, 108, 101, 98, 86, 137, 135, 122, 123, 123, 109, 90, 90, 76, 80, 79, 66, 99, 99, 86, 123, 120, 110, 63, 63, 52, 129, 126, 116, 139, 136, 126, 109, 108, 97, 82, 81, 72, 121, 118, 107, 124, 121, 113, 95, 92, 84, 156, 153, 142, 96, 93, 85, 113, 109, 101, 92, 88, 80, 103, 100, 92, 71, 71, 62, 88, 87, 78, 77, 76, 68, 78, 74, 66, 92, 92, 81, 114, 114, 103, 116, 115, 104, 128, 125, 114, 83, 81, 70, 65, 62, 52, 111, 109, 98, 121, 118, 107, 77, 74, 63, 138, 135, 125, 123, 120, 110, 102, 99, 89, 139, 136, 126, 118, 116, 105, 85, 82, 71, 97, 96, 85, 105, 105, 94, 91, 91, 80, 78, 78, 67, 77, 77, 65, 71, 73, 61, 102, 101, 90, 82, 81, 72, 14, 14, 3, 254, 254, 242, 234, 234, 223, 241, 241, 230, 239, 238, 227, 234, 234, 223, 242, 242, 231, 245, 244, 233, 244, 243, 232, 241, 241, 230, 246, 245, 234, 246, 245, 234, 251, 251, 237, 252, 252, 238, 252, 252, 238, 233, 233, 220, 191, 188, 175, 156, 151, 139, 213, 208, 196, 177, 172, 160, 252, 250, 237, 255, 255, 251, 248, 248, 237, 160, 159, 148, 78, 78, 67, 231, 230, 219, 234, 234, 223, 231, 230, 219, 243, 240, 230, 246, 245, 234, 248, 248, 237, 247, 247, 235, 252, 251, 240, 253, 252, 241, 247, 247, 235, 40, 39, 28, 84, 84, 72, 81, 83, 71, 80, 82, 72, 86, 88, 78, 76, 77, 68, 77, 78, 71, 77, 78, 71, 72, 73, 66, 76, 77, 70, 74, 76, 68, 67, 69, 62, 71, 72, 65, 72, 74, 64, 71, 73, 63, 66, 65, 56, 67, 69, 57, 70, 69, 61, 69, 68, 60, 69, 68, 60, 70, 70, 59, 74, 73, 64, 70, 70, 59, 71, 71, 62, 67, 66, 57, 68, 67, 58, 72, 69, 61, 79, 76, 68, 75, 74, 65, 73, 72, 63, 83, 82, 73, 77, 76, 68, 84, 84, 72, 90, 90, 78, 82, 81, 70, 73, 72, 61, 88, 87, 76, 91, 91, 78, 74, 72, 59, 80, 77, 67, 92, 89, 76, 83, 81, 70, 67, 66, 55, 107, 104, 94, 87, 84, 74, 78, 78, 67, 88, 85, 75, 67, 64, 54, 106, 103, 92, 97, 96, 85, 81, 78, 68, 74, 71, 61, 87, 85, 72, 81, 78, 68, 92, 92, 81, 88, 85, 75, 71, 68, 57, 92, 92, 81, 63, 63, 52, 94, 93, 82, 68, 67, 56, 70, 70, 59, 91, 91, 80, 73, 72, 61, 66, 65, 54, 78, 78, 67, 85, 85, 74, 81, 80, 71, 80, 79, 68, 98, 97, 89, 92, 92, 83, 96, 95, 86, 78, 78, 69, 81, 80, 71, 91, 90, 82, 80, 79, 70, 78, 78, 69, 96, 95, 86, 91, 91, 80, 84, 84, 72, 78, 78, 69, 108, 107, 96, 78, 78, 69, 68, 67, 58, 92, 89, 78, 81, 80, 69, 85, 85, 74, 93, 90, 80, 75, 73, 62, 96, 94, 81, 102, 101, 90, 64, 61, 50, 65, 62, 52, 83, 83, 71, 82, 81, 70, 87, 86, 75, 102, 101, 90, 121, 121, 110, 96, 95, 84, 95, 94, 83, 73, 72, 61, 116, 115, 104, 92, 92, 79, 81, 81, 67, 64, 64, 51, 108, 107, 94, 88, 88, 74, 91, 91, 80, 97, 96, 85, 106, 103, 92, 121, 118, 107, 114, 111, 100, 108, 107, 96, 103, 100, 90, 67, 64, 54, 66, 63, 55, 81, 78, 68, 92, 89, 78, 77, 74, 63, 86, 83, 72, 91, 91, 80, 113, 110, 99, 72, 69, 59, 81, 80, 69, 68, 67, 56, 113, 113, 102, 104, 104, 92, 74, 73, 62, 91, 91, 78, 119, 119, 105, 70, 70, 59, 88, 87, 76, 88, 87, 76, 126, 126, 114, 105, 105, 94, 119, 119, 107, 67, 66, 55, 116, 115, 104, 115, 112, 100, 63, 60, 47, 72, 69, 57, 129, 126, 114, 150, 147, 136, 75, 73, 60, 121, 118, 105, 94, 93, 82, 94, 91, 81, 96, 93, 83, 115, 112, 102, 116, 113, 103, 103, 100, 90, 120, 117, 106, 67, 64, 54, 144, 143, 132, 134, 134, 123, 110, 107, 99, 91, 88, 77, 142, 138, 130, 88, 85, 77, 116, 113, 105, 95, 92, 84, 70, 66, 58, 104, 103, 94, 118, 117, 108, 88, 87, 76, 121, 121, 112, 130, 129, 120, 74, 73, 62, 81, 78, 70, 147, 147, 135, 78, 78, 67, 155, 155, 144, 62, 62, 50, 110, 109, 98, 135, 135, 124, 95, 92, 82, 137, 135, 122, 85, 85, 74, 122, 119, 109, 110, 107, 97, 97, 95, 84, 113, 113, 102, 131, 130, 119, 75, 74, 63, 102, 101, 90, 75, 74, 63, 127, 126, 118, 124, 123, 114, 105, 104, 96, 68, 68, 54, 246, 245, 234, 223, 222, 211, 218, 218, 206, 220, 220, 209, 213, 213, 202, 212, 212, 201, 211, 211, 199, 212, 212, 201, 208, 207, 196, 208, 207, 196, 209, 209, 195, 203, 202, 191, 202, 202, 188, 216, 214, 201, 194, 192, 179, 178, 175, 162, 171, 168, 156, 188, 186, 173, 255, 255, 244, 255, 255, 249, 255, 255, 254, 239, 238, 227, 0, 0, 0, 247, 247, 235, 237, 236, 225, 238, 237, 226, 239, 238, 227, 247, 247, 235, 248, 248, 237, 246, 245, 234, 255, 255, 245, 255, 255, 246, 244, 243, 232, 147, 146, 137, 74, 73, 64, 87, 86, 77, 75, 74, 65, 81, 83, 73, 76, 77, 68, 79, 81, 71, 74, 76, 68, 80, 81, 74, 78, 79, 72, 70, 71, 64, 79, 80, 73, 72, 73, 66, 69, 70, 63, 74, 76, 68, 67, 69, 60, 68, 67, 58, 64, 64, 55, 68, 67, 58, 71, 71, 62, 60, 59, 50, 66, 65, 54, 72, 69, 61, 69, 69, 57, 62, 62, 50, 74, 73, 64, 70, 70, 59, 72, 69, 61, 61, 60, 49, 73, 72, 63, 71, 71, 62, 71, 67, 60, 70, 69, 61, 80, 79, 68, 83, 81, 70, 66, 65, 54, 106, 103, 92, 80, 78, 65, 64, 64, 51, 81, 79, 66, 104, 102, 91, 94, 93, 80, 62, 62, 50, 108, 105, 95, 97, 96, 85, 82, 81, 70, 77, 77, 65, 61, 60, 49, 100, 100, 89, 85, 85, 74, 96, 95, 84, 95, 94, 83, 89, 88, 77, 78, 78, 67, 84, 84, 72, 84, 84, 72, 75, 74, 63, 81, 80, 69, 80, 79, 68, 74, 73, 62, 104, 104, 92, 85, 85, 74, 87, 86, 75, 90, 90, 78, 88, 87, 76, 77, 77, 65, 88, 87, 76, 100, 100, 89, 94, 93, 82, 92, 92, 83, 82, 81, 72, 92, 92, 83, 87, 86, 77, 64, 64, 55, 88, 87, 78, 85, 85, 74, 89, 88, 77, 89, 88, 77, 100, 100, 89, 82, 81, 70, 82, 81, 70, 63, 63, 52, 87, 86, 77, 90, 89, 80, 62, 62, 50, 66, 65, 54, 85, 85, 74, 90, 90, 78, 127, 127, 116, 111, 110, 99, 69, 69, 57, 69, 69, 57, 75, 74, 63, 95, 94, 83, 65, 62, 52, 55, 55, 43, 64, 64, 53, 76, 76, 64, 134, 134, 123, 99, 99, 88, 73, 72, 61, 60, 59, 48, 82, 82, 68, 67, 67, 53, 85, 82, 71, 102, 102, 88, 115, 112, 100, 102, 101, 90, 81, 80, 69, 120, 120, 109, 60, 59, 48, 124, 123, 112, 109, 106, 96, 79, 76, 65, 100, 97, 86, 97, 95, 84, 73, 72, 61, 57, 57, 46, 124, 121, 111, 86, 83, 72, 104, 102, 91, 109, 108, 97, 72, 69, 59, 57, 54, 43, 96, 93, 83, 73, 72, 61, 112, 112, 100, 88, 87, 76, 82, 81, 70, 103, 103, 89, 91, 91, 80, 114, 114, 103, 71, 71, 60, 111, 109, 98, 80, 79, 68, 78, 78, 67, 71, 71, 60, 77, 77, 65, 123, 121, 108, 92, 89, 76, 75, 73, 60, 92, 89, 76, 87, 85, 72, 80, 78, 65, 120, 117, 106, 103, 100, 90, 122, 119, 109, 92, 89, 78, 132, 129, 119, 136, 133, 123, 115, 112, 102, 101, 98, 88, 109, 106, 96, 116, 113, 103, 82, 79, 69, 80, 77, 69, 82, 79, 69, 73, 70, 60, 117, 114, 106, 109, 106, 96, 75, 72, 64, 106, 103, 92, 64, 64, 53, 104, 104, 92, 94, 93, 84, 124, 121, 113, 82, 81, 72, 73, 72, 61, 125, 125, 113, 74, 73, 62, 114, 114, 103, 131, 130, 119, 130, 127, 117, 149, 149, 136, 124, 123, 112, 149, 146, 135, 87, 84, 74, 67, 65, 52, 89, 89, 75, 88, 85, 75, 79, 76, 64, 116, 113, 103, 85, 82, 71, 87, 86, 75, 73, 72, 61, 92, 92, 81, 98, 98, 86, 124, 123, 112, 106, 106, 95, 114, 114, 105, 118, 118, 104, 255, 255, 255, 255, 255, 245, 252, 251, 240, 255, 255, 244, 249, 249, 238, 255, 255, 245, 255, 255, 248, 255, 255, 246, 255, 255, 249, 255, 255, 249, 255, 255, 245, 241, 241, 228, 255, 255, 245, 255, 255, 246, 255, 255, 243, 255, 255, 243, 255, 255, 249, 255, 255, 244, 252, 251, 240, 255, 255, 251, 254, 254, 242, 24, 23, 12, 255, 255, 255, 240, 240, 228, 241, 241, 230, 244, 243, 232, 246, 245, 234, 251, 250, 239, 245, 244, 233, 254, 254, 242, 255, 255, 244, 255, 255, 244, 219, 219, 207, 87, 86, 77, 84, 83, 75, 87, 86, 77, 81, 83, 73, 80, 82, 72, 78, 80, 70, 76, 77, 68, 74, 76, 68, 74, 76, 68, 77, 78, 71, 69, 70, 63, 59, 61, 53, 66, 67, 60, 67, 69, 62, 75, 74, 65, 66, 68, 58, 63, 64, 55, 68, 67, 58, 68, 67, 58, 57, 57, 48, 69, 68, 60, 68, 66, 55, 67, 66, 55, 68, 67, 58, 64, 64, 53, 77, 77, 65, 60, 59, 48, 73, 72, 61, 67, 66, 57, 66, 65, 56, 60, 59, 48, 74, 73, 64, 74, 73, 64, 69, 69, 57, 76, 76, 64, 86, 83, 72, 95, 94, 83, 74, 71, 61, 60, 58, 45, 81, 78, 68, 83, 81, 68, 90, 90, 78, 85, 85, 74, 89, 88, 77, 68, 66, 55, 84, 84, 72, 98, 98, 86, 57, 57, 46, 93, 90, 80, 100, 97, 86, 73, 72, 61, 80, 79, 68, 89, 88, 77, 81, 80, 69, 94, 93, 82, 67, 66, 55, 90, 90, 78, 83, 83, 71, 66, 65, 54, 90, 90, 78, 100, 100, 89, 80, 79, 68, 91, 91, 80, 78, 78, 67, 89, 88, 77, 94, 93, 82, 82, 81, 70, 68, 67, 56, 95, 94, 83, 68, 67, 56, 78, 78, 67, 87, 86, 75, 92, 92, 81, 94, 93, 82, 91, 91, 80, 106, 106, 95, 74, 73, 62, 97, 96, 87, 76, 76, 64, 71, 71, 60, 70, 70, 59, 104, 104, 92, 68, 67, 56, 63, 63, 52, 89, 88, 77, 62, 62, 50, 98, 98, 86, 110, 107, 97, 109, 108, 97, 104, 102, 91, 96, 94, 81, 78, 75, 64, 92, 89, 78, 106, 103, 92, 102, 101, 90, 63, 63, 52, 100, 100, 89, 113, 113, 102, 76, 76, 64, 90, 90, 78, 54, 53, 42, 88, 87, 76, 96, 95, 84, 83, 81, 68, 66, 64, 51, 137, 134, 124, 67, 66, 55, 66, 65, 52, 100, 97, 86, 106, 106, 95, 131, 130, 119, 117, 116, 105, 121, 121, 110, 69, 69, 57, 121, 121, 110, 120, 120, 109, 113, 113, 102, 108, 107, 96, 83, 83, 71, 80, 79, 68, 64, 64, 53, 65, 62, 52, 50, 47, 39, 97, 95, 84, 53, 50, 40, 75, 73, 62, 85, 85, 74, 52, 51, 40, 106, 106, 95, 70, 70, 59, 111, 109, 96, 80, 77, 67, 89, 88, 77, 121, 118, 107, 57, 54, 43, 82, 81, 70, 127, 127, 116, 75, 74, 63, 67, 65, 52, 116, 114, 101, 85, 82, 69, 103, 101, 88, 99, 96, 83, 65, 62, 52, 93, 90, 80, 85, 82, 71, 121, 118, 107, 127, 124, 113, 97, 95, 84, 70, 67, 56, 129, 126, 116, 85, 82, 71, 134, 131, 120, 92, 89, 78, 91, 88, 77, 101, 98, 88, 96, 93, 83, 122, 119, 111, 75, 73, 62, 80, 77, 67, 79, 76, 65, 68, 65, 57, 102, 99, 91, 118, 117, 108, 113, 112, 104, 81, 80, 71, 81, 80, 71, 102, 101, 92, 160, 159, 148, 97, 96, 85, 105, 105, 94, 83, 81, 70, 89, 86, 76, 104, 104, 92, 59, 56, 46, 87, 85, 72, 94, 91, 81, 60, 58, 45, 118, 117, 106, 75, 73, 62, 125, 123, 112, 78, 75, 64, 88, 85, 75, 125, 125, 113, 158, 157, 146, 85, 85, 74, 85, 85, 74, 123, 122, 111, 119, 119, 107, 117, 116, 105, 255, 255, 232, 255, 255, 250, 255, 255, 245, 255, 255, 245, 255, 255, 247, 255, 255, 244, 255, 255, 244, 253, 252, 243, 254, 254, 242, 253, 252, 241, 252, 251, 240, 252, 251, 240, 255, 255, 248, 255, 255, 247, 255, 255, 244, 255, 255, 244, 255, 255, 245, 255, 255, 247, 255, 255, 248, 253, 252, 243, 171, 171, 162, 0, 0, 0, 255, 255, 254, 231, 230, 219, 242, 242, 231, 244, 243, 232, 247, 247, 235, 249, 249, 238, 253, 252, 241, 254, 254, 242, 255, 255, 245, 255, 255, 248, 255, 255, 245, 35, 34, 26, 84, 83, 75, 85, 85, 76, 85, 85, 76, 91, 90, 82, 81, 83, 73, 80, 82, 72, 74, 76, 66, 72, 73, 66, 70, 71, 62, 71, 72, 65, 65, 66, 59, 67, 69, 60, 58, 60, 50, 65, 67, 57, 64, 64, 55, 65, 67, 57, 67, 66, 55, 64, 64, 53, 67, 64, 56, 61, 60, 51, 61, 60, 51, 63, 63, 52, 68, 65, 57, 59, 58, 49, 63, 63, 52, 73, 70, 60, 75, 74, 63, 74, 73, 62, 68, 67, 56, 63, 63, 52, 68, 67, 56, 69, 69, 57, 82, 81, 70, 82, 81, 70, 78, 78, 67, 77, 74, 63, 89, 86, 76, 74, 71, 61, 91, 88, 77, 79, 76, 65, 67, 64, 54, 60, 57, 47, 98, 98, 86, 78, 75, 64, 70, 67, 56, 103, 102, 91, 77, 77, 65, 76, 76, 64, 90, 90, 78, 70, 67, 56, 78, 78, 67, 89, 88, 79, 73, 72, 61, 87, 86, 77, 77, 77, 65, 74, 73, 64, 92, 92, 83, 87, 86, 75, 78, 78, 67, 89, 88, 77, 85, 85, 74, 83, 83, 71, 78, 78, 67, 100, 100, 89, 99, 99, 88, 60, 59, 48, 91, 91, 80, 84, 84, 72, 100, 100, 89, 84, 84, 72, 91, 91, 80, 87, 86, 75, 96, 95, 84, 94, 93, 82, 74, 73, 62, 82, 81, 70, 68, 67, 56, 69, 69, 57, 83, 83, 71, 63, 63, 52, 95, 94, 83, 87, 86, 75, 98, 98, 86, 49, 51, 39, 105, 105, 94, 70, 70, 59, 97, 96, 85, 106, 103, 92, 97, 96, 85, 79, 76, 65, 74, 72, 59, 96, 95, 84, 105, 105, 94, 92, 92, 81, 72, 69, 59, 108, 107, 96, 114, 114, 103, 76, 76, 64, 63, 63, 52, 78, 78, 67, 105, 105, 94, 140, 140, 128, 97, 96, 85, 107, 104, 94, 55, 55, 41, 110, 107, 97, 80, 77, 67, 92, 92, 79, 113, 110, 99, 68, 66, 55, 117, 116, 105, 99, 99, 88, 117, 116, 105, 82, 79, 69, 105, 105, 94, 66, 65, 54, 84, 84, 72, 71, 71, 60, 61, 60, 49, 66, 63, 53, 103, 102, 91, 66, 63, 53, 77, 73, 65, 121, 118, 107, 68, 66, 55, 60, 57, 47, 102, 99, 89, 88, 85, 75, 114, 111, 100, 84, 84, 72, 71, 68, 57, 110, 107, 97, 100, 97, 86, 97, 95, 84, 80, 77, 67, 66, 65, 54, 116, 115, 104, 64, 64, 53, 90, 90, 78, 73, 71, 58, 97, 95, 84, 103, 100, 90, 103, 101, 88, 82, 79, 69, 104, 102, 91, 109, 106, 96, 123, 120, 110, 120, 117, 106, 99, 96, 85, 79, 76, 65, 107, 104, 94, 143, 140, 129, 79, 76, 65, 79, 76, 65, 102, 99, 89, 93, 90, 80, 72, 69, 59, 92, 88, 80, 78, 78, 67, 81, 78, 68, 92, 92, 81, 106, 102, 94, 106, 102, 94, 103, 102, 93, 127, 126, 118, 74, 71, 61, 97, 96, 85, 134, 134, 123, 138, 137, 126, 151, 150, 139, 69, 69, 57, 97, 96, 85, 123, 122, 111, 71, 71, 60, 120, 117, 106, 67, 64, 54, 117, 115, 102, 155, 152, 139, 89, 88, 77, 95, 92, 82, 131, 130, 119, 89, 86, 76, 83, 83, 71, 99, 98, 90, 107, 104, 94, 95, 94, 83, 116, 115, 104, 92, 92, 81, 76, 76, 64, 114, 114, 103, 5, 4, 0, 185, 184, 178, 216, 215, 206, 225, 224, 216, 248, 248, 239, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 225, 224, 216, 53, 52, 43, 0, 0, 0, 206, 206, 197, 227, 227, 218, 242, 242, 231, 240, 240, 228, 246, 245, 234, 247, 247, 235, 248, 248, 237, 251, 250, 239, 254, 254, 242, 255, 255, 245, 255, 255, 248, 255, 255, 247, 190, 190, 179, 80, 79, 70, 81, 80, 71, 78, 78, 69, 92, 92, 83, 76, 77, 70, 82, 81, 74, 74, 76, 68, 76, 77, 68, 69, 70, 61, 71, 73, 63, 74, 76, 66, 59, 61, 53, 60, 62, 54, 60, 62, 52, 63, 64, 55, 67, 69, 60, 63, 64, 55, 61, 60, 51, 60, 62, 50, 59, 58, 47, 56, 55, 47, 66, 65, 56, 63, 63, 52, 57, 57, 48, 66, 65, 56, 69, 69, 57, 66, 65, 56, 61, 60, 49, 56, 56, 45, 56, 56, 45, 62, 62, 50, 64, 64, 53, 68, 67, 56, 69, 69, 57, 75, 74, 63, 87, 86, 75, 62, 62, 50, 82, 79, 69, 91, 88, 77, 87, 84, 74, 74, 71, 61, 80, 77, 67, 93, 90, 78, 81, 80, 69, 77, 77, 65, 85, 85, 74, 99, 99, 88, 74, 73, 62, 81, 80, 69, 84, 84, 72, 90, 90, 78, 82, 81, 70, 82, 81, 70, 68, 67, 56, 82, 81, 70, 81, 80, 69, 74, 73, 62, 69, 69, 57, 78, 78, 67, 81, 80, 69, 81, 80, 69, 76, 76, 64, 85, 85, 74, 89, 88, 77, 73, 72, 61, 80, 79, 68, 91, 91, 80, 91, 91, 80, 89, 88, 77, 69, 69, 57, 88, 87, 76, 83, 83, 71, 105, 104, 96, 82, 81, 70, 80, 79, 68, 90, 90, 78, 104, 104, 92, 95, 97, 85, 99, 99, 88, 69, 69, 57, 121, 121, 110, 94, 93, 82, 91, 91, 80, 97, 96, 85, 71, 71, 60, 67, 66, 55, 71, 71, 60, 88, 87, 76, 67, 66, 55, 49, 49, 38, 102, 101, 90, 72, 69, 59, 71, 68, 57, 125, 125, 113, 103, 102, 91, 76, 76, 64, 124, 123, 112, 89, 88, 77, 69, 69, 57, 90, 90, 78, 90, 90, 78, 103, 102, 91, 91, 91, 80, 99, 96, 85, 97, 95, 84, 103, 100, 90, 78, 75, 64, 74, 71, 61, 83, 83, 71, 74, 71, 61, 66, 65, 54, 96, 95, 84, 64, 64, 53, 112, 112, 100, 56, 53, 42, 113, 110, 99, 67, 66, 55, 64, 64, 53, 63, 60, 49, 78, 78, 67, 113, 110, 99, 71, 68, 57, 141, 141, 129, 92, 92, 83, 88, 87, 78, 102, 99, 89, 129, 126, 116, 104, 102, 91, 86, 83, 72, 106, 103, 92, 78, 78, 67, 104, 102, 91, 79, 76, 64, 111, 109, 98, 104, 102, 91, 95, 93, 80, 123, 120, 110, 96, 95, 84, 63, 63, 52, 122, 119, 109, 124, 121, 111, 115, 112, 102, 75, 74, 63, 125, 125, 113, 104, 102, 91, 139, 136, 126, 139, 136, 126, 130, 127, 117, 127, 124, 113, 80, 77, 67, 99, 96, 85, 93, 90, 80, 97, 95, 84, 101, 98, 88, 137, 134, 124, 83, 81, 70, 95, 93, 80, 97, 95, 84, 69, 69, 57, 98, 98, 86, 139, 136, 126, 119, 119, 107, 125, 123, 112, 160, 158, 147, 124, 123, 112, 99, 95, 87, 63, 63, 52, 131, 130, 119, 132, 131, 120, 95, 94, 83, 66, 63, 53, 103, 102, 91, 116, 115, 104, 116, 113, 103, 127, 124, 113, 78, 75, 64, 143, 140, 128, 72, 69, 57, 78, 75, 62, 131, 128, 118, 120, 117, 106, 126, 126, 114, 53, 50, 40, 153, 152, 141, 126, 126, 114, 120, 120, 109, 131, 130, 119, 90, 90, 78, 68, 67, 56, 78, 78, 65, 81, 81, 67, 222, 221, 210, 236, 235, 224, 223, 222, 211, 234, 234, 223, 241, 238, 227, 229, 226, 218, 237, 234, 224, 221, 218, 210, 205, 204, 196, 194, 191, 183, 192, 189, 181, 178, 175, 167, 121, 118, 110, 127, 123, 115, 98, 97, 89, 108, 107, 98, 181, 180, 171, 242, 242, 233, 238, 237, 228, 220, 220, 211, 234, 234, 225, 236, 235, 226, 244, 243, 232, 245, 244, 233, 247, 247, 235, 244, 243, 232, 255, 255, 245, 255, 255, 245, 255, 255, 246, 255, 255, 252, 255, 255, 248, 255, 255, 245, 19, 19, 7, 94, 93, 84, 85, 85, 76, 84, 83, 75, 89, 88, 79, 86, 88, 78, 81, 80, 71, 76, 77, 68, 73, 75, 65, 67, 69, 60, 78, 80, 70, 73, 72, 63, 69, 68, 60, 70, 71, 62, 66, 65, 56, 63, 62, 54, 59, 61, 51, 63, 64, 55, 61, 60, 49, 64, 64, 53, 61, 60, 49, 63, 63, 52, 62, 62, 50, 66, 65, 56, 61, 60, 51, 64, 64, 55, 62, 61, 52, 64, 64, 55, 61, 60, 49, 66, 65, 54, 66, 65, 54, 56, 56, 45, 67, 66, 55, 62, 62, 50, 73, 72, 61, 50, 50, 39, 83, 83, 71, 66, 65, 54, 66, 65, 54, 74, 73, 62, 92, 92, 81, 94, 91, 81, 92, 89, 78, 75, 73, 62, 66, 65, 54, 78, 78, 67, 66, 65, 54, 108, 107, 96, 90, 90, 78, 64, 64, 53, 68, 67, 56, 73, 72, 61, 95, 94, 83, 77, 77, 65, 67, 66, 55, 102, 101, 90, 85, 85, 74, 62, 62, 50, 78, 78, 67, 80, 79, 68, 91, 91, 80, 73, 72, 61, 77, 77, 65, 88, 87, 76, 80, 79, 68, 76, 76, 64, 63, 63, 52, 88, 87, 76, 89, 88, 77, 63, 63, 52, 94, 93, 82, 99, 99, 88, 89, 88, 77, 70, 70, 59, 81, 80, 69, 97, 96, 85, 68, 67, 56, 103, 102, 91, 99, 99, 88, 94, 93, 82, 67, 66, 55, 90, 90, 78, 61, 60, 49, 106, 106, 95, 78, 78, 67, 100, 100, 89, 69, 69, 57, 84, 84, 72, 63, 63, 52, 117, 116, 105, 106, 106, 95, 111, 110, 99, 100, 100, 89, 84, 84, 72, 113, 113, 102, 125, 125, 111, 112, 112, 100, 128, 128, 117, 114, 114, 103, 91, 91, 80, 108, 107, 96, 120, 120, 109, 86, 83, 72, 69, 69, 57, 49, 46, 35, 78, 75, 64, 113, 110, 99, 99, 96, 85, 111, 109, 98, 88, 87, 76, 95, 92, 82, 92, 92, 81, 118, 117, 106, 80, 79, 68, 98, 98, 86, 119, 119, 107, 75, 74, 63, 56, 56, 45, 77, 77, 65, 85, 85, 74, 116, 115, 104, 67, 66, 55, 83, 83, 71, 116, 115, 104, 110, 109, 98, 109, 106, 96, 101, 98, 88, 113, 110, 99, 120, 117, 106, 72, 69, 59, 65, 62, 52, 99, 96, 85, 135, 132, 121, 101, 98, 88, 111, 109, 98, 94, 91, 81, 79, 76, 65, 68, 67, 56, 60, 59, 48, 117, 116, 105, 114, 114, 103, 82, 81, 70, 91, 88, 77, 75, 73, 62, 81, 78, 68, 64, 61, 50, 92, 89, 78, 101, 98, 88, 78, 75, 64, 122, 119, 109, 79, 76, 65, 103, 100, 90, 130, 127, 117, 120, 117, 106, 66, 63, 53, 82, 79, 69, 132, 129, 119, 109, 106, 96, 74, 73, 62, 138, 137, 126, 114, 114, 103, 78, 78, 67, 97, 96, 85, 80, 79, 70, 70, 69, 61, 85, 85, 74, 67, 66, 55, 82, 81, 70, 160, 159, 148, 135, 135, 124, 81, 80, 69, 71, 71, 60, 138, 137, 126, 95, 92, 82, 83, 81, 70, 116, 114, 101, 128, 125, 112, 125, 123, 110, 61, 59, 46, 132, 130, 117, 75, 73, 60, 97, 95, 84, 153, 151, 140, 151, 148, 138, 80, 79, 68, 76, 75, 66, 120, 119, 111, 67, 66, 55, 92, 92, 81, 105, 105, 94, 134, 134, 123, 62, 64, 50, 222, 219, 209, 219, 216, 205, 230, 227, 217, 229, 226, 216, 229, 226, 218, 231, 228, 220, 229, 226, 218, 229, 226, 218, 233, 229, 221, 233, 229, 221, 230, 227, 219, 233, 229, 221, 229, 226, 218, 231, 228, 220, 231, 228, 220, 233, 229, 221, 231, 228, 220, 235, 232, 224, 233, 232, 224, 236, 235, 226, 236, 233, 225, 239, 238, 229, 242, 242, 231, 244, 243, 232, 249, 249, 238, 252, 251, 240, 254, 254, 242, 255, 255, 251, 255, 255, 249, 255, 255, 251, 255, 255, 244, 162, 162, 151, 74, 73, 64, 80, 82, 72, 84, 85, 76, 88, 90, 80, 80, 82, 72, 73, 75, 65, 78, 80, 70, 73, 75, 65, 71, 70, 64, 65, 67, 57, 63, 62, 54, 65, 67, 57, 63, 62, 56, 70, 69, 61, 56, 57, 48, 59, 58, 49, 60, 59, 48, 59, 61, 49, 63, 63, 52, 59, 58, 47, 63, 63, 52, 54, 53, 42, 68, 67, 56, 53, 52, 41, 60, 59, 50, 63, 62, 54, 62, 61, 52, 61, 60, 49, 67, 66, 55, 64, 64, 53, 67, 66, 55, 64, 64, 53, 66, 65, 54, 70, 70, 59, 62, 62, 50, 59, 58, 47, 78, 78, 67, 63, 63, 52, 73, 72, 61, 80, 79, 68, 95, 94, 83, 66, 65, 54, 90, 90, 78, 56, 56, 45, 94, 93, 82, 83, 83, 71, 99, 99, 88, 71, 71, 60, 96, 95, 84, 77, 77, 65, 67, 66, 55, 90, 90, 78, 71, 71, 60, 73, 72, 63, 89, 88, 79, 84, 83, 75, 94, 93, 82, 74, 73, 62, 71, 71, 60, 73, 72, 61, 82, 81, 70, 66, 65, 54, 91, 91, 80, 78, 78, 67, 75, 74, 63, 78, 78, 67, 83, 83, 71, 74, 73, 62, 75, 74, 63, 68, 67, 56, 71, 71, 60, 89, 88, 77, 80, 79, 68, 104, 104, 92, 77, 77, 65, 64, 64, 53, 102, 101, 90, 75, 74, 63, 61, 60, 49, 95, 94, 83, 96, 95, 84, 61, 60, 49, 123, 122, 111, 68, 67, 56, 71, 73, 61, 103, 102, 91, 116, 115, 104, 70, 70, 59, 111, 110, 99, 63, 65, 53, 98, 98, 86, 61, 60, 49, 85, 85, 74, 104, 104, 90, 109, 108, 97, 120, 120, 109, 70, 70, 59, 61, 60, 49, 75, 74, 63, 116, 115, 104, 106, 106, 95, 67, 66, 55, 111, 110, 99, 113, 113, 102, 109, 106, 96, 96, 93, 83, 82, 79, 69, 130, 127, 117, 111, 109, 98, 67, 64, 54, 133, 133, 121, 87, 86, 75, 70, 70, 59, 99, 99, 88, 118, 117, 106, 117, 116, 105, 52, 51, 40, 100, 100, 89, 83, 83, 71, 62, 62, 50, 83, 83, 71, 124, 123, 112, 79, 76, 65, 119, 119, 107, 102, 101, 90, 99, 96, 85, 72, 69, 59, 107, 104, 94, 110, 107, 97, 134, 131, 120, 60, 59, 48, 106, 106, 95, 68, 67, 56, 116, 115, 104, 56, 56, 45, 83, 83, 71, 64, 64, 53, 104, 104, 92, 137, 136, 125, 95, 94, 83, 114, 114, 103, 74, 73, 62, 87, 84, 74, 77, 74, 63, 88, 85, 75, 133, 133, 121, 93, 90, 80, 92, 89, 78, 144, 141, 131, 145, 142, 132, 70, 67, 56, 117, 114, 104, 131, 129, 116, 131, 128, 118, 59, 56, 46, 79, 76, 65, 117, 114, 104, 117, 114, 104, 103, 102, 91, 90, 90, 78, 68, 67, 56, 85, 85, 74, 149, 149, 138, 107, 104, 94, 124, 121, 111, 102, 101, 90, 80, 79, 68, 130, 129, 118, 139, 138, 127, 83, 81, 70, 82, 79, 69, 136, 133, 123, 65, 62, 52, 135, 132, 121, 95, 92, 82, 72, 69, 57, 97, 95, 82, 71, 68, 55, 87, 82, 70, 111, 109, 96, 78, 75, 64, 123, 120, 110, 130, 127, 117, 108, 105, 97, 105, 104, 96, 154, 154, 142, 111, 110, 99, 75, 74, 63, 106, 106, 95, 72, 69, 57, 57, 57, 44, 81, 79, 66, 229, 227, 214, 231, 229, 216, 229, 226, 216, 229, 226, 216, 229, 226, 216, 229, 226, 218, 233, 229, 221, 228, 225, 217, 230, 227, 219, 225, 222, 214, 231, 228, 220, 234, 230, 223, 233, 229, 221, 234, 230, 223, 233, 229, 221, 230, 227, 219, 231, 228, 220, 236, 233, 225, 235, 232, 224, 235, 232, 224, 238, 237, 228, 242, 242, 231, 245, 244, 235, 248, 248, 237, 252, 251, 240, 254, 254, 242, 255, 255, 247, 255, 255, 249, 255, 255, 254, 255, 255, 255, 208, 210, 198, 22, 24, 14, 84, 85, 76, 80, 82, 72, 79, 81, 71, 86, 88, 78, 78, 80, 70, 86, 88, 78, 80, 82, 72, 71, 72, 65, 69, 70, 63, 64, 66, 56, 64, 64, 55, 63, 64, 55, 64, 64, 55, 63, 62, 54, 66, 65, 56, 69, 68, 60, 57, 57, 48, 50, 50, 41, 64, 64, 55, 63, 63, 52, 63, 63, 52, 61, 60, 49, 61, 60, 49, 50, 50, 39, 61, 60, 49, 63, 63, 52, 60, 59, 48, 68, 67, 56, 54, 53, 42, 59, 61, 49, 60, 62, 50, 61, 60, 49, 60, 59, 48, 64, 64, 53, 74, 73, 62, 62, 62, 50, 70, 70, 59, 82, 81, 70, 69, 69, 57, 48, 48, 36, 80, 79, 68, 91, 91, 80, 83, 83, 71, 83, 83, 71, 75, 74, 63, 85, 85, 74, 98, 98, 86, 92, 92, 81, 69, 69, 57, 96, 95, 84, 103, 102, 91, 77, 77, 65, 74, 73, 62, 90, 90, 78, 75, 74, 65, 69, 68, 60, 78, 78, 67, 80, 79, 68, 75, 74, 63, 75, 74, 63, 78, 78, 67, 83, 83, 71, 70, 70, 59, 84, 84, 72, 95, 94, 83, 88, 87, 76, 91, 91, 80, 97, 96, 85, 73, 72, 61, 73, 72, 61, 91, 91, 80, 66, 65, 54, 76, 76, 64, 56, 56, 45, 88, 87, 76, 85, 85, 74, 55, 55, 43, 80, 79, 68, 98, 98, 86, 81, 83, 71, 70, 70, 59, 112, 112, 100, 97, 99, 86, 63, 63, 52, 95, 97, 85, 108, 107, 96, 59, 58, 47, 110, 109, 98, 99, 101, 89, 91, 93, 81, 59, 58, 47, 81, 80, 69, 109, 108, 97, 110, 109, 98, 67, 66, 55, 73, 72, 61, 60, 59, 48, 83, 85, 72, 94, 93, 82, 119, 119, 107, 73, 72, 61, 61, 60, 49, 75, 74, 63, 114, 114, 103, 56, 56, 45, 104, 102, 91, 112, 112, 100, 133, 133, 121, 82, 81, 70, 108, 107, 96, 111, 109, 98, 100, 100, 89, 66, 65, 54, 69, 69, 57, 119, 119, 105, 57, 57, 46, 96, 95, 84, 87, 86, 75, 74, 73, 62, 56, 56, 45, 42, 42, 31, 124, 123, 112, 99, 99, 88, 106, 106, 95, 73, 72, 61, 83, 81, 70, 94, 91, 81, 122, 119, 109, 87, 84, 74, 114, 111, 100, 102, 99, 89, 71, 71, 60, 118, 117, 106, 67, 66, 55, 139, 138, 127, 89, 88, 77, 63, 63, 52, 125, 125, 113, 125, 125, 113, 99, 99, 88, 75, 74, 63, 64, 64, 53, 108, 107, 96, 70, 70, 59, 124, 121, 111, 74, 73, 62, 64, 61, 50, 124, 121, 111, 86, 83, 72, 95, 92, 82, 135, 132, 121, 96, 93, 83, 82, 79, 69, 72, 69, 59, 129, 126, 116, 80, 77, 67, 80, 77, 67, 110, 109, 98, 133, 133, 121, 128, 128, 117, 118, 117, 106, 76, 76, 64, 100, 100, 89, 108, 107, 96, 100, 100, 89, 82, 81, 70, 108, 107, 96, 96, 93, 83, 74, 71, 61, 150, 147, 136, 77, 74, 63, 65, 62, 52, 127, 124, 113, 116, 114, 101, 132, 130, 117, 78, 75, 62, 137, 135, 122, 149, 146, 133, 80, 78, 65, 65, 62, 52, 67, 64, 54, 78, 75, 64, 130, 127, 119, 153, 150, 142, 103, 100, 92, 95, 94, 85, 132, 131, 122, 91, 90, 82, 97, 95, 84, 97, 95, 84, 95, 93, 80, 145, 143, 128, 229, 227, 214, 229, 227, 214, 228, 225, 215, 229, 226, 216, 229, 226, 216, 225, 223, 212, 229, 226, 216, 233, 229, 221, 233, 229, 221, 231, 228, 220, 234, 230, 223, 233, 229, 221, 233, 229, 221, 230, 227, 219, 234, 230, 223, 231, 228, 220, 231, 228, 220, 234, 234, 225, 236, 233, 225, 234, 234, 225, 242, 242, 233, 245, 244, 235, 248, 248, 239, 255, 255, 246, 255, 255, 245, 255, 255, 247, 255, 255, 251, 255, 255, 254, 255, 255, 255, 255, 255, 255, 9, 11, 1, 86, 88, 76, 76, 77, 68, 77, 78, 69, 87, 89, 79, 77, 78, 69, 80, 82, 72, 76, 77, 68, 80, 82, 72, 70, 71, 64, 73, 71, 65, 64, 66, 56, 73, 72, 63, 62, 63, 54, 55, 54, 46, 57, 59, 49, 61, 60, 51, 61, 60, 51, 63, 62, 54, 60, 59, 50, 68, 67, 58, 55, 54, 46, 62, 61, 52, 57, 57, 48, 60, 59, 50, 61, 60, 49, 54, 53, 44, 69, 68, 60, 47, 46, 35, 62, 62, 50, 57, 57, 46, 58, 60, 48, 58, 60, 48, 64, 64, 53, 63, 63, 52, 67, 66, 55, 75, 74, 63, 70, 70, 59, 62, 62, 50, 63, 63, 52, 66, 65, 54, 57, 57, 46, 81, 80, 69, 97, 96, 85, 78, 78, 67, 78, 78, 67, 100, 100, 89, 91, 91, 80, 69, 69, 57, 71, 71, 60, 91, 91, 80, 71, 71, 60, 83, 83, 71, 88, 87, 78, 83, 82, 73, 95, 94, 85, 94, 93, 84, 88, 87, 78, 85, 85, 74, 87, 86, 75, 54, 53, 42, 69, 69, 57, 85, 85, 74, 87, 86, 75, 84, 84, 72, 77, 77, 65, 95, 94, 83, 85, 85, 74, 67, 66, 55, 99, 99, 88, 84, 84, 72, 70, 70, 59, 94, 93, 82, 82, 81, 70, 83, 83, 71, 83, 82, 73, 90, 90, 78, 64, 64, 53, 84, 83, 75, 89, 88, 79, 68, 67, 56, 84, 84, 72, 114, 114, 105, 67, 66, 55, 75, 74, 63, 117, 116, 105, 104, 104, 92, 111, 110, 99, 89, 88, 77, 73, 72, 61, 78, 78, 67, 70, 70, 59, 96, 95, 84, 117, 116, 105, 67, 66, 55, 85, 85, 74, 110, 109, 98, 108, 107, 96, 73, 72, 61, 99, 101, 89, 95, 97, 85, 119, 119, 107, 109, 108, 97, 99, 99, 88, 73, 72, 61, 131, 130, 119, 69, 69, 57, 69, 69, 57, 66, 65, 54, 40, 39, 28, 68, 67, 56, 63, 63, 52, 139, 138, 127, 61, 60, 49, 123, 122, 111, 109, 109, 95, 77, 74, 63, 96, 95, 84, 62, 62, 50, 56, 56, 45, 120, 120, 109, 119, 119, 107, 70, 70, 59, 77, 77, 65, 106, 106, 95, 84, 84, 72, 110, 109, 98, 125, 123, 112, 111, 109, 98, 91, 88, 77, 101, 98, 88, 104, 104, 92, 120, 117, 106, 110, 109, 98, 46, 45, 34, 104, 104, 92, 114, 114, 103, 111, 110, 99, 80, 79, 68, 116, 115, 104, 98, 98, 86, 112, 112, 100, 56, 56, 45, 76, 76, 64, 71, 71, 60, 132, 131, 120, 104, 102, 91, 85, 82, 71, 68, 66, 55, 86, 83, 72, 87, 84, 74, 85, 82, 71, 88, 87, 76, 82, 81, 70, 94, 93, 82, 90, 90, 78, 118, 116, 105, 91, 91, 80, 110, 109, 98, 100, 100, 89, 141, 141, 129, 146, 145, 134, 89, 88, 77, 128, 128, 117, 125, 125, 113, 118, 117, 106, 70, 70, 59, 92, 92, 79, 99, 96, 83, 132, 130, 117, 142, 139, 126, 89, 86, 76, 123, 120, 110, 86, 83, 72, 80, 77, 67, 99, 96, 85, 99, 96, 85, 82, 79, 69, 110, 108, 95, 123, 120, 110, 125, 119, 110, 123, 120, 110, 79, 76, 65, 107, 104, 94, 92, 89, 78, 152, 149, 141, 123, 122, 113, 72, 69, 61, 85, 82, 71, 65, 62, 54, 106, 106, 95, 123, 122, 111, 93, 90, 78, 102, 100, 85, 231, 228, 218, 231, 228, 218, 229, 226, 216, 229, 226, 216, 229, 226, 218, 228, 225, 215, 234, 230, 223, 231, 228, 220, 230, 227, 219, 227, 223, 216, 234, 230, 223, 233, 229, 221, 227, 223, 216, 230, 227, 219, 229, 226, 218, 230, 227, 219, 234, 234, 225, 233, 232, 224, 231, 230, 221, 231, 230, 221, 242, 242, 233, 246, 245, 236, 248, 248, 239, 253, 252, 243, 255, 255, 247, 255, 255, 252, 255, 255, 253, 255, 255, 254, 255, 255, 252, 233, 235, 223, 41, 43, 31, 78, 80, 70, 84, 85, 76, 93, 95, 85, 76, 77, 68, 86, 88, 78, 64, 66, 56, 66, 68, 58, 80, 82, 72, 64, 66, 56, 64, 65, 58, 66, 67, 60, 60, 62, 54, 62, 63, 56, 57, 57, 48, 64, 64, 55, 59, 58, 49, 59, 58, 49, 61, 60, 51, 60, 59, 50, 60, 59, 50, 57, 57, 48, 68, 65, 57, 55, 54, 46, 62, 61, 52, 49, 48, 40, 56, 56, 45, 48, 48, 36, 50, 50, 41, 55, 56, 47, 60, 62, 52, 59, 58, 47, 60, 62, 52, 58, 60, 50, 62, 64, 52, 61, 60, 49, 57, 57, 46, 74, 73, 62, 62, 62, 50, 80, 79, 68, 73, 70, 60, 77, 77, 65, 85, 85, 74, 71, 68, 57, 73, 70, 60, 87, 86, 75, 100, 100, 89, 77, 77, 65, 92, 92, 81, 94, 93, 82, 66, 65, 54, 88, 87, 76, 66, 65, 54, 84, 83, 75, 82, 81, 72, 75, 74, 65, 82, 81, 72, 90, 90, 78, 88, 87, 76, 71, 71, 60, 81, 80, 69, 83, 83, 71, 67, 69, 57, 84, 84, 72, 87, 86, 75, 92, 92, 81, 77, 77, 65, 69, 69, 57, 84, 84, 72, 77, 77, 65, 67, 66, 55, 91, 91, 80, 70, 70, 59, 85, 85, 74, 95, 94, 83, 64, 64, 55, 75, 74, 65, 80, 79, 70, 108, 107, 98, 66, 65, 56, 87, 86, 75, 98, 97, 89, 78, 78, 69, 85, 85, 74, 110, 109, 98, 78, 78, 67, 95, 94, 83, 71, 71, 60, 64, 64, 53, 66, 65, 54, 99, 99, 88, 87, 86, 75, 94, 93, 82, 106, 106, 95, 104, 104, 92, 75, 74, 63, 89, 88, 77, 118, 117, 106, 95, 94, 83, 64, 64, 55, 108, 107, 96, 112, 112, 100, 141, 141, 129, 100, 100, 89, 100, 100, 89, 62, 62, 50, 70, 70, 59, 99, 99, 88, 80, 79, 68, 70, 70, 59, 68, 67, 56, 115, 112, 102, 78, 78, 67, 73, 70, 60, 92, 89, 78, 123, 122, 111, 114, 111, 100, 83, 81, 70, 113, 113, 102, 109, 108, 97, 54, 53, 42, 76, 76, 64, 100, 100, 89, 83, 83, 71, 123, 122, 111, 113, 113, 102, 100, 100, 89, 123, 122, 111, 88, 85, 75, 113, 110, 99, 101, 98, 88, 110, 107, 97, 68, 66, 55, 85, 85, 74, 134, 134, 123, 90, 90, 78, 104, 104, 92, 88, 87, 76, 111, 110, 101, 115, 112, 102, 82, 81, 70, 63, 63, 52, 89, 86, 76, 81, 80, 69, 94, 93, 82, 70, 70, 59, 104, 104, 92, 70, 67, 56, 109, 106, 96, 86, 83, 72, 80, 77, 67, 97, 95, 84, 90, 90, 78, 87, 86, 75, 141, 138, 127, 104, 104, 92, 114, 114, 103, 91, 91, 80, 73, 72, 61, 70, 70, 59, 85, 85, 74, 145, 144, 133, 120, 120, 109, 112, 112, 100, 132, 131, 120, 84, 84, 72, 73, 72, 61, 87, 87, 73, 94, 92, 79, 144, 141, 129, 123, 120, 110, 128, 125, 114, 77, 74, 63, 86, 83, 72, 73, 70, 60, 97, 95, 84, 75, 73, 62, 123, 120, 110, 103, 100, 90, 91, 88, 77, 113, 110, 99, 137, 134, 124, 95, 92, 82, 131, 128, 118, 118, 116, 105, 145, 142, 132, 78, 75, 64, 70, 66, 58, 92, 88, 80, 129, 126, 118, 63, 59, 51, 138, 135, 125, 75, 73, 60, 58, 56, 41, 229, 228, 215, 225, 225, 213, 229, 226, 216, 230, 227, 219, 233, 229, 221, 229, 226, 216, 230, 227, 219, 233, 229, 221, 234, 230, 223, 230, 227, 219, 231, 228, 220, 229, 226, 218, 228, 225, 217, 228, 225, 217, 230, 227, 219, 231, 228, 220, 231, 228, 220, 236, 235, 226, 233, 232, 224, 239, 238, 229, 242, 242, 233, 242, 242, 233, 249, 249, 240, 252, 251, 242, 255, 255, 248, 255, 255, 252, 255, 255, 254, 255, 255, 255, 255, 255, 255, 67, 69, 60, 79, 81, 71, 84, 86, 74, 90, 91, 82, 83, 82, 73, 91, 92, 83, 76, 77, 68, 70, 71, 62, 70, 71, 62, 60, 62, 52, 47, 48, 39, 63, 64, 57, 59, 61, 53, 60, 62, 54, 62, 61, 52, 57, 56, 50, 64, 64, 55, 64, 64, 55, 62, 61, 54, 57, 57, 48, 45, 44, 35, 60, 59, 50, 59, 58, 49, 59, 58, 49, 57, 57, 48, 56, 55, 47, 60, 59, 50, 57, 57, 48, 56, 55, 47, 55, 56, 47, 57, 59, 49, 57, 59, 49, 57, 57, 46, 63, 63, 52, 56, 56, 45, 54, 53, 42, 70, 70, 59, 73, 72, 61, 66, 65, 54, 82, 81, 70, 70, 70, 59, 56, 56, 45, 79, 76, 68, 61, 59, 48, 74, 71, 61, 107, 104, 94, 71, 68, 57, 103, 100, 90, 60, 59, 48, 60, 59, 48, 75, 74, 63, 82, 81, 70, 74, 73, 64, 76, 75, 66, 88, 87, 78, 108, 107, 98, 73, 72, 63, 70, 69, 61, 69, 68, 60, 56, 56, 45, 77, 77, 65, 69, 68, 60, 78, 78, 67, 94, 93, 82, 75, 74, 65, 85, 85, 74, 84, 84, 72, 90, 90, 78, 62, 62, 50, 74, 73, 62, 87, 86, 75, 82, 81, 70, 63, 63, 52, 95, 94, 83, 95, 94, 83, 74, 73, 62, 90, 89, 80, 84, 83, 75, 64, 64, 55, 91, 90, 82, 74, 73, 64, 80, 79, 70, 73, 72, 63, 95, 94, 85, 84, 84, 72, 82, 81, 70, 111, 110, 99, 80, 79, 68, 103, 102, 91, 108, 107, 96, 71, 71, 60, 62, 62, 50, 95, 94, 83, 90, 90, 78, 63, 63, 52, 92, 92, 81, 97, 96, 85, 118, 117, 106, 127, 127, 116, 78, 80, 68, 130, 129, 118, 97, 96, 85, 100, 100, 89, 69, 69, 57, 97, 96, 85, 84, 84, 72, 71, 73, 61, 135, 135, 124, 98, 98, 86, 75, 74, 63, 104, 104, 92, 94, 93, 82, 101, 98, 88, 113, 110, 97, 97, 95, 84, 118, 117, 106, 72, 69, 59, 72, 69, 59, 97, 95, 84, 110, 109, 98, 64, 61, 50, 114, 114, 103, 94, 93, 82, 77, 77, 65, 94, 93, 82, 62, 62, 50, 120, 120, 109, 106, 103, 92, 99, 96, 85, 83, 81, 70, 120, 117, 106, 67, 64, 54, 116, 113, 103, 124, 121, 111, 89, 86, 76, 68, 66, 55, 83, 83, 71, 83, 83, 71, 87, 86, 77, 76, 75, 66, 82, 79, 71, 63, 63, 52, 87, 86, 75, 147, 145, 134, 75, 73, 62, 63, 63, 52, 60, 59, 48, 114, 111, 100, 71, 71, 60, 109, 106, 96, 101, 98, 88, 148, 148, 136, 115, 112, 102, 74, 71, 61, 128, 128, 117, 99, 99, 88, 77, 77, 65, 94, 93, 82, 57, 57, 46, 70, 70, 59, 121, 121, 110, 142, 139, 128, 108, 107, 96, 102, 101, 90, 131, 130, 119, 105, 105, 94, 81, 80, 69, 97, 96, 85, 70, 70, 57, 92, 89, 78, 72, 69, 59, 108, 105, 93, 125, 123, 112, 90, 84, 75, 95, 92, 82, 116, 113, 103, 130, 127, 117, 101, 98, 88, 68, 66, 55, 131, 128, 118, 123, 120, 110, 70, 67, 56, 127, 124, 113, 144, 141, 131, 72, 69, 59, 86, 83, 72, 72, 69, 61, 74, 73, 62, 137, 134, 126, 117, 114, 106, 85, 85, 76, 135, 135, 126, 76, 76, 64, 116, 114, 101, 88, 88, 72, 233, 233, 222, 230, 229, 218, 234, 231, 220, 228, 225, 217, 231, 228, 220, 225, 222, 214, 229, 226, 218, 235, 232, 224, 233, 229, 221, 234, 230, 223, 229, 226, 218, 229, 226, 218, 229, 226, 218, 198, 194, 186, 230, 227, 219, 233, 229, 221, 231, 230, 221, 231, 230, 221, 234, 234, 223, 240, 239, 231, 241, 241, 230, 246, 245, 236, 253, 252, 241, 252, 251, 242, 255, 255, 254, 255, 255, 252, 255, 255, 255, 255, 255, 255, 253, 252, 241, 76, 76, 64, 81, 83, 71, 88, 90, 78, 90, 89, 80, 91, 90, 82, 90, 89, 80, 77, 76, 68, 76, 75, 66, 58, 60, 50, 60, 62, 52, 55, 56, 49, 59, 61, 53, 62, 63, 56, 62, 63, 56, 62, 63, 54, 53, 52, 45, 49, 48, 42, 57, 57, 48, 60, 59, 50, 55, 54, 46, 60, 59, 50, 50, 50, 41, 56, 55, 47, 56, 55, 47, 57, 57, 48, 61, 60, 51, 56, 55, 47, 59, 61, 51, 53, 55, 46, 53, 55, 43, 52, 54, 42, 47, 48, 39, 43, 45, 33, 57, 57, 48, 59, 61, 49, 56, 57, 48, 55, 56, 47, 61, 60, 49, 62, 62, 50, 73, 72, 61, 66, 65, 56, 55, 55, 43, 80, 77, 67, 77, 74, 63, 96, 93, 83, 71, 68, 57, 59, 56, 46, 70, 67, 56, 75, 74, 63, 52, 51, 42, 76, 75, 66, 100, 100, 91, 95, 94, 85, 74, 73, 64, 100, 100, 91, 83, 82, 73, 84, 83, 75, 64, 64, 55, 90, 89, 80, 92, 92, 81, 82, 81, 70, 85, 85, 76, 68, 67, 56, 80, 79, 68, 68, 67, 56, 75, 74, 63, 76, 76, 64, 71, 71, 60, 69, 69, 57, 70, 70, 59, 62, 62, 50, 80, 79, 68, 92, 92, 81, 88, 87, 76, 89, 88, 77, 92, 92, 81, 80, 79, 70, 60, 59, 50, 83, 82, 73, 85, 85, 76, 106, 105, 97, 73, 72, 63, 62, 61, 52, 102, 101, 92, 73, 72, 63, 95, 94, 83, 100, 100, 89, 88, 87, 76, 88, 87, 76, 60, 59, 48, 82, 81, 70, 98, 98, 86, 57, 57, 46, 104, 104, 92, 118, 117, 106, 66, 65, 54, 127, 127, 116, 98, 98, 86, 78, 78, 67, 114, 114, 103, 81, 80, 69, 63, 63, 52, 84, 84, 72, 123, 122, 111, 68, 67, 56, 81, 80, 69, 94, 93, 82, 120, 120, 109, 62, 62, 50, 70, 70, 59, 105, 105, 94, 80, 79, 68, 98, 98, 86, 71, 71, 60, 125, 123, 112, 60, 57, 47, 120, 120, 109, 153, 151, 140, 96, 95, 84, 89, 88, 77, 81, 78, 70, 83, 83, 71, 116, 115, 104, 55, 55, 43, 60, 59, 48, 127, 127, 116, 68, 67, 56, 102, 101, 90, 72, 69, 59, 103, 100, 90, 116, 113, 103, 73, 70, 60, 131, 128, 118, 107, 104, 94, 76, 75, 66, 86, 83, 75, 113, 109, 101, 124, 123, 114, 80, 79, 70, 131, 130, 121, 62, 62, 50, 81, 78, 68, 80, 79, 68, 138, 137, 126, 92, 92, 81, 104, 104, 92, 81, 80, 69, 71, 71, 60, 146, 144, 131, 124, 121, 111, 72, 69, 59, 141, 138, 127, 110, 107, 97, 77, 74, 63, 115, 112, 102, 104, 104, 92, 74, 73, 62, 84, 84, 72, 104, 104, 92, 62, 62, 50, 83, 83, 71, 94, 91, 81, 66, 65, 54, 135, 135, 124, 84, 84, 72, 95, 94, 83, 67, 64, 54, 71, 71, 60, 91, 91, 78, 92, 89, 76, 85, 82, 69, 117, 115, 102, 67, 65, 52, 74, 71, 61, 81, 78, 68, 117, 114, 104, 111, 109, 98, 122, 119, 109, 123, 120, 110, 118, 116, 105, 73, 70, 60, 156, 153, 142, 147, 145, 134, 134, 131, 120, 137, 134, 124, 115, 112, 102, 70, 67, 56, 70, 67, 56, 104, 102, 91, 71, 68, 57, 99, 96, 85, 65, 62, 52, 149, 146, 133, 85, 82, 69, 80, 78, 65, 227, 228, 212, 231, 231, 217, 231, 230, 219, 231, 228, 218, 231, 228, 218, 233, 229, 221, 230, 227, 219, 233, 229, 221, 228, 225, 215, 225, 222, 214, 227, 223, 216, 230, 227, 217, 229, 226, 218, 228, 225, 217, 233, 229, 221, 226, 225, 217, 232, 231, 223, 229, 228, 217, 240, 240, 228, 241, 241, 230, 242, 242, 233, 246, 245, 234, 249, 249, 238, 253, 252, 241, 255, 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 119, 107, 76, 77, 68, 87, 89, 79, 81, 83, 73, 76, 77, 68, 87, 86, 77, 70, 69, 61, 81, 80, 71, 77, 78, 69, 63, 64, 55, 63, 64, 55, 65, 66, 59, 51, 52, 45, 53, 55, 46, 56, 57, 50, 57, 58, 51, 48, 47, 39, 64, 64, 55, 63, 62, 54, 59, 58, 49, 57, 57, 48, 57, 57, 48, 57, 57, 48, 62, 61, 52, 49, 48, 40, 62, 61, 52, 61, 60, 51, 63, 63, 52, 60, 59, 50, 55, 54, 46, 54, 53, 42, 55, 54, 46, 49, 48, 40, 63, 62, 54, 56, 55, 47, 50, 50, 41, 68, 67, 58, 66, 68, 58, 63, 63, 52, 67, 66, 55, 63, 62, 54, 69, 68, 60, 73, 75, 65, 94, 93, 82, 73, 70, 60, 87, 84, 76, 72, 69, 59, 91, 88, 77, 66, 63, 53, 103, 100, 90, 77, 73, 65, 63, 62, 54, 94, 93, 82, 53, 52, 43, 70, 70, 59, 99, 99, 88, 92, 92, 83, 74, 73, 64, 78, 78, 69, 80, 79, 68, 77, 76, 68, 69, 68, 60, 66, 65, 54, 85, 87, 75, 81, 80, 69, 81, 80, 69, 78, 78, 67, 81, 80, 69, 76, 76, 64, 68, 67, 56, 73, 72, 63, 69, 69, 57, 77, 77, 65, 73, 72, 63, 92, 92, 81, 87, 86, 77, 91, 91, 80, 60, 59, 48, 88, 87, 76, 84, 83, 75, 85, 85, 76, 99, 98, 90, 63, 63, 52, 80, 79, 70, 95, 94, 83, 91, 91, 80, 105, 105, 94, 73, 72, 61, 74, 73, 62, 99, 99, 88, 103, 102, 91, 96, 95, 84, 56, 56, 45, 71, 71, 60, 97, 96, 85, 64, 64, 53, 79, 76, 65, 105, 105, 94, 90, 90, 78, 61, 60, 49, 70, 70, 59, 114, 114, 103, 102, 101, 90, 75, 74, 63, 85, 85, 74, 62, 62, 50, 127, 127, 116, 92, 92, 81, 68, 67, 56, 127, 127, 116, 97, 96, 85, 50, 50, 39, 125, 125, 113, 123, 122, 111, 97, 95, 84, 65, 62, 50, 62, 62, 50, 96, 95, 84, 63, 60, 49, 55, 55, 43, 118, 117, 106, 103, 100, 90, 58, 55, 45, 87, 84, 74, 63, 63, 52, 63, 60, 49, 78, 78, 67, 83, 83, 71, 67, 64, 54, 65, 62, 52, 121, 118, 107, 145, 142, 132, 70, 67, 56, 58, 55, 45, 82, 79, 71, 146, 143, 133, 111, 109, 98, 136, 133, 123, 70, 66, 58, 79, 76, 68, 110, 107, 99, 130, 127, 119, 71, 71, 62, 136, 133, 125, 130, 127, 117, 103, 100, 90, 74, 71, 61, 96, 95, 84, 125, 123, 110, 103, 101, 88, 92, 89, 76, 165, 162, 152, 99, 99, 86, 101, 98, 88, 87, 86, 75, 101, 98, 88, 134, 134, 123, 135, 135, 122, 87, 84, 74, 93, 90, 80, 116, 113, 103, 73, 72, 61, 78, 78, 67, 85, 85, 74, 143, 140, 129, 99, 96, 85, 128, 128, 117, 87, 87, 73, 113, 110, 97, 157, 154, 142, 109, 106, 96, 68, 66, 53, 77, 74, 63, 113, 110, 99, 61, 59, 48, 145, 142, 132, 77, 74, 63, 142, 139, 128, 143, 140, 132, 123, 120, 110, 76, 70, 63, 82, 76, 69, 164, 159, 152, 94, 89, 80, 101, 98, 88, 96, 93, 83, 122, 119, 109, 122, 119, 109, 63, 60, 49, 96, 93, 83, 109, 106, 96, 127, 124, 113, 111, 109, 98, 94, 91, 81, 122, 119, 107, 72, 69, 57, 232, 232, 218, 237, 236, 225, 232, 232, 220, 231, 230, 221, 230, 229, 220, 232, 232, 220, 230, 229, 218, 233, 229, 221, 229, 226, 216, 230, 227, 217, 227, 224, 213, 229, 226, 218, 230, 227, 219, 229, 226, 218, 225, 222, 214, 233, 229, 221, 233, 229, 221, 236, 233, 223, 239, 238, 227, 239, 238, 227, 245, 244, 235, 244, 243, 232, 249, 249, 238, 255, 255, 246, 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 251, 47, 46, 35, 77, 77, 65, 73, 72, 61, 84, 86, 74, 76, 75, 66, 84, 83, 75, 73, 72, 63, 81, 80, 71, 71, 71, 62, 62, 61, 54, 57, 58, 51, 64, 65, 58, 60, 62, 54, 51, 52, 45, 58, 59, 52, 60, 62, 52, 53, 55, 48, 62, 61, 52, 59, 58, 49, 53, 52, 43, 55, 54, 46, 59, 58, 49, 55, 54, 46, 61, 60, 51, 62, 61, 52, 55, 54, 46, 55, 54, 46, 54, 53, 44, 51, 53, 43, 47, 48, 39, 53, 52, 41, 57, 59, 47, 55, 57, 45, 54, 53, 42, 57, 57, 46, 51, 53, 41, 59, 61, 49, 57, 57, 46, 68, 67, 58, 56, 57, 48, 68, 67, 58, 80, 79, 70, 73, 72, 63, 74, 73, 64, 76, 76, 64, 77, 74, 63, 82, 79, 69, 81, 78, 68, 73, 70, 60, 81, 78, 68, 83, 81, 70, 70, 66, 58, 92, 92, 83, 60, 57, 47, 83, 83, 71, 89, 88, 77, 88, 87, 76, 71, 71, 62, 70, 69, 61, 76, 75, 66, 71, 71, 62, 88, 87, 78, 56, 56, 45, 73, 72, 61, 80, 79, 68, 74, 73, 62, 76, 76, 64, 77, 77, 65, 77, 77, 65, 57, 57, 46, 78, 78, 69, 87, 86, 77, 59, 58, 49, 88, 87, 78, 66, 65, 56, 62, 61, 52, 89, 88, 77, 75, 74, 65, 78, 78, 69, 89, 88, 77, 81, 80, 71, 89, 88, 79, 74, 73, 64, 92, 92, 83, 84, 84, 72, 84, 84, 72, 67, 66, 55, 69, 69, 57, 71, 71, 60, 60, 57, 47, 113, 110, 99, 74, 73, 62, 109, 108, 97, 88, 87, 76, 58, 55, 45, 86, 83, 72, 103, 100, 90, 61, 60, 49, 113, 113, 102, 94, 93, 82, 70, 70, 59, 60, 59, 48, 114, 114, 103, 76, 76, 64, 81, 80, 69, 81, 80, 69, 96, 95, 84, 74, 73, 62, 62, 62, 50, 45, 44, 33, 74, 73, 62, 96, 95, 84, 119, 119, 107, 109, 108, 97, 132, 131, 120, 92, 89, 78, 63, 63, 52, 83, 83, 71, 70, 66, 58, 56, 53, 42, 131, 130, 119, 58, 55, 47, 65, 62, 52, 53, 50, 40, 89, 88, 77, 111, 109, 98, 126, 126, 114, 76, 76, 64, 93, 90, 80, 106, 103, 92, 108, 105, 95, 91, 88, 77, 138, 135, 125, 77, 74, 63, 134, 131, 120, 115, 112, 102, 82, 79, 71, 104, 101, 93, 77, 76, 68, 70, 67, 56, 87, 86, 77, 106, 102, 94, 59, 56, 46, 97, 95, 84, 81, 78, 68, 72, 69, 59, 64, 61, 50, 128, 125, 114, 64, 61, 50, 80, 79, 68, 96, 93, 83, 75, 73, 62, 71, 68, 57, 86, 83, 72, 114, 111, 100, 142, 139, 128, 134, 131, 120, 87, 84, 74, 58, 55, 43, 102, 99, 89, 145, 143, 130, 100, 97, 86, 127, 124, 113, 66, 65, 54, 97, 95, 84, 80, 77, 67, 78, 75, 64, 148, 148, 136, 74, 73, 62, 67, 64, 54, 75, 73, 62, 136, 133, 123, 143, 140, 129, 128, 125, 114, 156, 153, 142, 127, 124, 113, 92, 89, 78, 94, 91, 81, 78, 74, 66, 91, 88, 77, 97, 95, 84, 114, 111, 103, 72, 69, 61, 127, 123, 115, 79, 76, 65, 128, 125, 114, 146, 143, 133, 70, 67, 56, 144, 141, 131, 95, 92, 82, 100, 97, 86, 83, 81, 70, 93, 90, 80, 110, 107, 97, 85, 82, 71, 78, 75, 64, 246, 247, 226, 236, 235, 222, 234, 234, 223, 232, 232, 220, 230, 229, 218, 229, 228, 217, 224, 223, 212, 234, 234, 223, 227, 227, 218, 229, 226, 216, 230, 227, 217, 231, 228, 218, 224, 221, 213, 230, 227, 217, 225, 223, 212, 237, 234, 224, 233, 233, 222, 237, 236, 225, 240, 240, 228, 240, 240, 228, 241, 241, 230, 247, 247, 235, 254, 254, 242, 255, 255, 247, 255, 255, 255, 255, 255, 255, 255, 255, 255, 177, 177, 166, 74, 73, 62, 82, 81, 70, 88, 87, 76, 76, 76, 64, 69, 69, 57, 89, 88, 79, 88, 87, 78, 74, 72, 66, 78, 74, 68, 63, 62, 56, 54, 51, 45, 68, 67, 60, 73, 71, 65, 60, 59, 50, 63, 64, 55, 54, 53, 44, 56, 55, 49, 64, 64, 55, 55, 54, 46, 50, 50, 41, 62, 61, 52, 64, 64, 55, 57, 57, 48, 49, 48, 40, 52, 51, 42, 63, 62, 54, 48, 47, 39, 40, 41, 29, 50, 50, 41, 57, 57, 46, 55, 55, 43, 59, 58, 47, 68, 67, 56, 50, 50, 39, 51, 53, 41, 59, 58, 47, 60, 59, 48, 74, 76, 66, 78, 78, 69, 59, 61, 51, 64, 66, 56, 70, 71, 62, 51, 53, 43, 98, 97, 89, 71, 71, 62, 69, 68, 60, 74, 71, 63, 57, 57, 48, 95, 92, 82, 82, 81, 72, 68, 65, 57, 95, 92, 84, 67, 66, 57, 73, 70, 62, 88, 87, 78, 62, 62, 50, 90, 90, 78, 62, 61, 52, 59, 58, 49, 74, 73, 64, 80, 79, 70, 57, 57, 48, 90, 90, 78, 77, 77, 65, 84, 84, 72, 76, 76, 64, 88, 87, 76, 67, 64, 54, 83, 83, 71, 80, 79, 68, 75, 74, 63, 87, 86, 75, 80, 79, 70, 63, 62, 54, 80, 79, 70, 82, 81, 72, 82, 81, 72, 64, 64, 55, 85, 85, 76, 80, 79, 70, 88, 87, 78, 81, 80, 71, 99, 98, 90, 64, 64, 55, 97, 95, 84, 91, 91, 80, 69, 68, 60, 106, 106, 95, 82, 79, 69, 73, 70, 60, 77, 74, 63, 100, 97, 86, 72, 69, 59, 89, 86, 76, 95, 92, 82, 120, 117, 106, 114, 111, 100, 60, 57, 47, 100, 97, 86, 110, 109, 98, 67, 66, 55, 64, 64, 53, 114, 114, 103, 113, 113, 102, 75, 74, 63, 67, 66, 55, 89, 88, 79, 78, 78, 67, 67, 66, 55, 57, 57, 46, 81, 80, 69, 91, 91, 80, 74, 73, 62, 89, 88, 77, 59, 58, 47, 62, 62, 50, 123, 122, 111, 64, 61, 50, 110, 107, 97, 115, 112, 104, 63, 63, 52, 78, 78, 69, 100, 100, 89, 117, 116, 105, 96, 95, 84, 66, 65, 54, 131, 128, 118, 134, 131, 120, 145, 142, 132, 113, 110, 97, 80, 77, 67, 97, 95, 84, 87, 84, 74, 125, 123, 112, 110, 107, 97, 71, 68, 57, 115, 112, 102, 125, 122, 114, 99, 96, 85, 139, 136, 126, 125, 122, 114, 99, 95, 87, 139, 136, 126, 60, 57, 47, 85, 82, 71, 72, 69, 59, 69, 69, 57, 108, 105, 95, 67, 64, 54, 92, 89, 78, 118, 116, 105, 106, 103, 92, 110, 107, 97, 83, 81, 70, 113, 110, 99, 144, 141, 131, 79, 76, 64, 73, 70, 60, 76, 71, 59, 86, 83, 70, 124, 121, 111, 110, 107, 97, 129, 126, 116, 88, 85, 75, 94, 91, 81, 111, 109, 98, 89, 88, 77, 127, 124, 113, 127, 127, 116, 75, 73, 62, 136, 133, 123, 94, 91, 81, 63, 60, 49, 106, 103, 92, 106, 103, 92, 145, 142, 132, 106, 103, 92, 86, 83, 72, 86, 83, 72, 83, 81, 70, 83, 81, 70, 84, 83, 75, 111, 109, 98, 74, 71, 63, 77, 74, 63, 82, 79, 69, 73, 70, 60, 78, 75, 64, 100, 97, 86, 75, 73, 62, 145, 142, 132, 78, 75, 64, 101, 98, 88, 50, 47, 36, 68, 66, 55, 74, 71, 61, 252, 254, 228, 234, 235, 219, 226, 226, 215, 231, 230, 219, 231, 230, 219, 229, 228, 217, 227, 227, 216, 223, 222, 211, 232, 232, 220, 230, 229, 218, 227, 224, 213, 229, 226, 216, 229, 226, 216, 229, 226, 216, 233, 230, 219, 233, 233, 222, 239, 238, 227, 239, 238, 227, 241, 241, 230, 245, 244, 233, 213, 213, 202, 248, 248, 237, 253, 252, 241, 255, 255, 248, 255, 255, 254, 255, 255, 255, 255, 255, 255, 3, 2, 0, 81, 80, 69, 80, 79, 68, 81, 80, 69, 90, 90, 78, 71, 71, 62, 80, 79, 70, 70, 69, 61, 63, 62, 54, 59, 57, 51, 73, 72, 63, 61, 60, 53, 59, 57, 51, 53, 52, 45, 56, 55, 47, 55, 54, 46, 48, 48, 36, 50, 50, 41, 54, 53, 44, 55, 54, 46, 60, 59, 50, 53, 52, 43, 54, 53, 44, 63, 62, 54, 53, 52, 45, 55, 54, 46, 62, 61, 54, 50, 50, 41, 53, 52, 43, 39, 38, 29, 63, 62, 54, 57, 57, 46, 42, 42, 31, 55, 55, 43, 63, 63, 52, 57, 57, 48, 57, 57, 48, 56, 55, 47, 66, 65, 56, 58, 60, 50, 56, 55, 47, 64, 64, 55, 85, 85, 76, 63, 62, 54, 59, 58, 49, 75, 74, 65, 81, 80, 71, 71, 67, 60, 86, 83, 75, 83, 80, 72, 96, 93, 83, 102, 99, 89, 78, 75, 64, 57, 57, 46, 83, 81, 70, 74, 73, 62, 75, 74, 63, 74, 73, 62, 83, 82, 73, 92, 92, 83, 63, 63, 52, 69, 68, 60, 90, 89, 80, 73, 72, 61, 62, 62, 50, 77, 77, 65, 85, 85, 74, 89, 88, 77, 77, 77, 65, 71, 71, 60, 61, 60, 49, 72, 69, 59, 83, 83, 71, 69, 68, 60, 69, 68, 60, 87, 86, 77, 85, 85, 76, 82, 81, 70, 66, 65, 56, 89, 88, 79, 83, 83, 71, 81, 80, 71, 82, 81, 72, 87, 86, 75, 90, 90, 78, 96, 95, 84, 85, 85, 74, 96, 93, 83, 103, 100, 90, 85, 81, 73, 63, 60, 49, 96, 93, 83, 64, 61, 50, 86, 83, 72, 74, 71, 61, 93, 90, 80, 86, 83, 72, 64, 64, 53, 63, 60, 49, 110, 109, 98, 61, 60, 49, 67, 66, 55, 62, 62, 50, 105, 105, 94, 100, 100, 89, 74, 73, 62, 120, 120, 109, 106, 105, 97, 99, 99, 88, 73, 72, 63, 114, 114, 103, 102, 101, 90, 89, 88, 77, 71, 71, 60, 50, 50, 39, 77, 77, 65, 87, 86, 75, 118, 117, 106, 81, 80, 69, 69, 69, 57, 96, 93, 83, 98, 98, 86, 89, 88, 77, 140, 140, 128, 76, 76, 64, 76, 76, 64, 65, 62, 52, 127, 124, 113, 113, 110, 99, 124, 121, 111, 86, 83, 70, 113, 110, 97, 63, 60, 47, 93, 90, 78, 104, 102, 91, 66, 63, 53, 134, 131, 120, 72, 69, 59, 76, 76, 64, 113, 110, 99, 61, 59, 48, 108, 105, 97, 72, 69, 61, 83, 81, 70, 74, 71, 61, 108, 105, 95, 88, 85, 75, 77, 74, 63, 96, 93, 83, 125, 123, 112, 100, 97, 86, 128, 125, 114, 114, 111, 100, 115, 112, 102, 99, 96, 85, 77, 74, 63, 136, 133, 123, 91, 88, 75, 131, 129, 116, 75, 73, 62, 103, 101, 88, 72, 69, 57, 124, 121, 111, 125, 123, 112, 97, 95, 84, 100, 97, 86, 123, 122, 111, 87, 84, 74, 87, 84, 74, 64, 61, 50, 56, 53, 42, 111, 109, 98, 151, 148, 138, 136, 133, 123, 77, 74, 61, 143, 140, 129, 58, 55, 45, 110, 107, 97, 72, 69, 59, 86, 83, 72, 60, 57, 47, 130, 127, 117, 91, 88, 77, 81, 78, 70, 126, 126, 114, 100, 97, 86, 89, 86, 76, 83, 81, 70, 114, 111, 100, 89, 86, 76, 141, 138, 127, 78, 75, 64, 72, 69, 59, 68, 66, 55, 108, 105, 95, 93, 90, 80, 118, 116, 105, 237, 237, 223, 237, 237, 223, 232, 232, 220, 226, 226, 215, 231, 230, 219, 231, 230, 219, 231, 230, 219, 230, 229, 218, 230, 229, 218, 229, 228, 217, 229, 228, 217, 230, 227, 217, 231, 228, 218, 233, 230, 219, 234, 231, 220, 236, 233, 223, 240, 240, 228, 241, 241, 230, 237, 236, 225, 242, 242, 231, 242, 242, 231, 246, 245, 234, 253, 252, 241, 255, 255, 248, 255, 255, 255, 255, 255, 255, 209, 208, 197, 66, 65, 54, 83, 83, 71, 83, 83, 71, 90, 90, 78, 81, 80, 69, 81, 80, 69, 68, 67, 58, 68, 67, 58, 64, 63, 57, 67, 65, 59, 56, 55, 49, 60, 59, 50, 52, 48, 43, 51, 48, 40, 57, 57, 48, 61, 60, 51, 63, 62, 54, 60, 59, 50, 55, 54, 46, 60, 59, 50, 50, 50, 41, 62, 61, 52, 46, 45, 36, 60, 62, 52, 62, 61, 52, 56, 55, 47, 64, 64, 55, 56, 55, 47, 61, 60, 51, 59, 58, 47, 56, 55, 47, 49, 49, 38, 60, 57, 47, 53, 52, 41, 46, 45, 34, 55, 54, 46, 62, 61, 52, 52, 51, 42, 71, 71, 62, 67, 66, 57, 76, 75, 66, 71, 71, 62, 61, 60, 51, 69, 68, 60, 69, 68, 60, 81, 80, 71, 83, 82, 73, 84, 83, 75, 76, 75, 66, 93, 90, 82, 92, 92, 83, 90, 90, 78, 92, 92, 81, 63, 63, 52, 82, 81, 70, 88, 87, 76, 70, 70, 59, 81, 80, 69, 54, 53, 42, 85, 85, 74, 82, 81, 70, 80, 79, 70, 76, 76, 64, 73, 72, 61, 77, 77, 65, 69, 69, 57, 80, 77, 67, 76, 76, 64, 63, 63, 52, 75, 73, 62, 89, 86, 76, 82, 81, 70, 75, 74, 63, 97, 96, 85, 68, 67, 58, 98, 97, 89, 96, 95, 86, 85, 85, 76, 91, 90, 82, 77, 76, 68, 91, 87, 79, 61, 60, 51, 100, 100, 91, 88, 87, 78, 55, 55, 43, 56, 56, 45, 70, 70, 59, 95, 94, 83, 77, 74, 63, 56, 53, 42, 100, 97, 86, 109, 106, 96, 102, 99, 89, 65, 62, 52, 79, 76, 65, 70, 67, 56, 57, 54, 43, 77, 74, 63, 89, 86, 76, 112, 112, 100, 103, 102, 91, 87, 86, 75, 102, 101, 90, 61, 60, 49, 62, 62, 50, 111, 110, 99, 78, 78, 67, 125, 125, 113, 110, 109, 98, 109, 108, 97, 73, 72, 61, 67, 64, 54, 83, 83, 71, 82, 81, 70, 80, 77, 67, 72, 69, 59, 57, 57, 46, 79, 76, 65, 67, 64, 54, 109, 106, 98, 70, 70, 59, 93, 90, 80, 89, 88, 79, 120, 120, 109, 59, 58, 47, 74, 73, 62, 74, 71, 61, 131, 130, 119, 116, 114, 101, 87, 84, 74, 82, 80, 67, 106, 103, 92, 123, 120, 110, 102, 100, 87, 79, 76, 65, 82, 79, 69, 71, 68, 57, 110, 109, 98, 68, 66, 55, 116, 113, 103, 119, 119, 107, 110, 109, 98, 53, 50, 40, 107, 104, 94, 117, 114, 104, 94, 91, 81, 123, 120, 110, 93, 90, 80, 142, 139, 128, 96, 93, 83, 74, 71, 61, 72, 69, 59, 81, 78, 68, 78, 75, 64, 79, 76, 65, 141, 138, 127, 79, 76, 65, 100, 97, 86, 150, 147, 136, 70, 67, 56, 64, 64, 51, 96, 95, 84, 75, 75, 61, 69, 69, 57, 87, 87, 73, 73, 72, 61, 160, 159, 148, 63, 63, 52, 165, 162, 152, 135, 132, 121, 63, 60, 49, 143, 140, 129, 71, 68, 57, 88, 85, 75, 73, 71, 58, 77, 74, 61, 87, 85, 72, 131, 128, 118, 83, 81, 68, 113, 110, 97, 83, 81, 70, 118, 116, 105, 79, 76, 65, 102, 99, 89, 82, 81, 70, 85, 82, 71, 108, 105, 95, 73, 72, 61, 132, 129, 119, 110, 107, 97, 75, 73, 62, 80, 77, 67, 86, 83, 72, 93, 90, 80, 125, 123, 112, 76, 76, 62, 74, 72, 59, 230, 229, 218, 236, 235, 224, 232, 232, 220, 227, 227, 216, 229, 228, 215, 230, 229, 218, 232, 232, 220, 230, 229, 218, 227, 227, 216, 227, 227, 216, 230, 229, 218, 230, 227, 217, 233, 233, 222, 231, 228, 218, 232, 232, 220, 238, 237, 226, 238, 237, 226, 238, 237, 226, 237, 236, 225, 240, 240, 228, 241, 241, 230, 248, 248, 237, 255, 255, 244, 255, 255, 253, 255, 255, 255, 255, 255, 253, 109, 106, 96, 80, 79, 68, 81, 80, 69, 97, 96, 85, 91, 91, 80, 87, 86, 75, 84, 84, 72, 73, 72, 61, 67, 66, 57, 69, 68, 62, 70, 66, 58, 61, 58, 50, 53, 50, 42, 56, 52, 44, 67, 66, 57, 49, 45, 37, 60, 59, 50, 52, 51, 42, 59, 58, 49, 59, 58, 49, 60, 59, 50, 53, 52, 43, 62, 62, 50, 54, 53, 44, 55, 54, 46, 62, 61, 52, 43, 45, 35, 60, 59, 50, 35, 34, 26, 51, 53, 43, 53, 52, 41, 60, 59, 50, 52, 51, 40, 59, 58, 47, 42, 42, 31, 54, 53, 44, 61, 60, 51, 74, 73, 64, 77, 76, 68, 70, 69, 61, 60, 59, 50, 61, 60, 51, 67, 66, 57, 84, 83, 75, 60, 59, 50, 73, 72, 63, 83, 82, 73, 77, 76, 68, 75, 74, 65, 68, 67, 58, 73, 72, 63, 94, 93, 84, 85, 85, 74, 89, 88, 77, 61, 60, 49, 90, 89, 80, 60, 59, 50, 74, 73, 62, 87, 86, 75, 69, 68, 60, 76, 76, 64, 80, 79, 68, 90, 90, 78, 81, 80, 69, 67, 66, 55, 75, 74, 63, 86, 83, 72, 92, 89, 78, 58, 55, 45, 64, 61, 50, 83, 81, 70, 78, 75, 64, 86, 83, 72, 64, 64, 53, 85, 85, 76, 61, 60, 51, 59, 58, 49, 80, 79, 70, 89, 88, 79, 85, 85, 76, 69, 68, 60, 63, 62, 54, 67, 66, 57, 61, 60, 51, 90, 89, 80, 81, 80, 71, 77, 76, 68, 102, 101, 92, 106, 106, 95, 73, 72, 61, 91, 91, 80, 108, 105, 95, 69, 69, 57, 92, 89, 78, 61, 59, 48, 60, 59, 48, 73, 72, 61, 104, 104, 92, 83, 83, 71, 106, 106, 95, 73, 72, 61, 70, 70, 59, 63, 63, 52, 73, 72, 61, 83, 83, 71, 54, 53, 42, 87, 86, 75, 144, 143, 134, 111, 110, 99, 110, 109, 98, 64, 64, 55, 109, 106, 96, 57, 57, 46, 90, 90, 78, 77, 74, 61, 99, 99, 88, 94, 91, 81, 98, 98, 86, 91, 88, 77, 85, 82, 71, 73, 70, 60, 80, 77, 67, 94, 91, 81, 69, 69, 57, 64, 64, 53, 74, 71, 61, 92, 92, 81, 82, 81, 70, 71, 68, 57, 65, 62, 50, 85, 82, 71, 96, 94, 81, 134, 131, 120, 53, 51, 38, 124, 121, 111, 129, 126, 116, 92, 89, 78, 81, 78, 68, 66, 63, 53, 94, 91, 81, 135, 135, 124, 120, 120, 109, 83, 81, 70, 70, 67, 56, 53, 52, 41, 94, 91, 81, 78, 75, 64, 101, 98, 88, 59, 56, 46, 64, 61, 50, 143, 140, 129, 77, 74, 63, 113, 110, 99, 71, 68, 57, 108, 105, 95, 128, 125, 114, 107, 104, 94, 129, 126, 116, 68, 66, 55, 95, 94, 83, 119, 119, 107, 127, 127, 116, 138, 137, 126, 64, 64, 53, 84, 84, 72, 102, 101, 90, 75, 73, 62, 128, 125, 114, 80, 77, 67, 123, 122, 111, 161, 161, 149, 97, 96, 85, 132, 131, 120, 73, 72, 61, 67, 66, 55, 131, 130, 119, 160, 160, 146, 96, 94, 81, 56, 53, 42, 95, 93, 80, 77, 74, 61, 106, 103, 92, 125, 123, 112, 126, 126, 114, 100, 97, 86, 74, 73, 62, 78, 75, 64, 85, 82, 71, 160, 158, 147, 139, 136, 126, 75, 74, 63, 74, 71, 61, 137, 134, 124, 105, 105, 94, 118, 116, 105, 70, 70, 59, 125, 125, 111, 74, 74, 60, 232, 232, 220, 230, 229, 218, 232, 232, 220, 233, 233, 222, 230, 229, 218, 229, 228, 217, 229, 228, 217, 229, 228, 217, 227, 227, 216, 227, 227, 216, 226, 226, 215, 223, 222, 211, 231, 228, 218, 230, 227, 217, 235, 232, 222, 232, 232, 220, 239, 238, 227, 240, 240, 228, 242, 242, 231, 237, 236, 225, 242, 242, 231, 248, 248, 237, 254, 254, 242, 255, 255, 249, 255, 255, 251, 254, 254, 242, 0, 0, 0, 81, 80, 69, 80, 79, 68, 92, 92, 81, 76, 75, 66, 94, 93, 84, 82, 81, 72, 57, 57, 48, 56, 55, 47, 66, 63, 55, 50, 47, 39, 43, 43, 34, 49, 45, 37, 50, 47, 39, 68, 67, 58, 84, 83, 75, 54, 53, 44, 61, 60, 51, 54, 53, 44, 54, 53, 44, 55, 54, 46, 50, 50, 41, 56, 56, 45, 55, 54, 46, 43, 43, 34, 52, 51, 42, 59, 58, 49, 48, 47, 39, 52, 51, 42, 49, 48, 40, 53, 52, 41, 48, 47, 39, 48, 48, 36, 59, 56, 46, 52, 51, 42, 67, 66, 57, 64, 66, 56, 59, 61, 51, 50, 52, 42, 62, 61, 52, 74, 73, 64, 70, 69, 61, 75, 74, 65, 67, 66, 57, 66, 65, 56, 64, 64, 55, 82, 81, 72, 59, 61, 51, 87, 86, 77, 70, 69, 61, 69, 68, 60, 78, 78, 69, 82, 81, 72, 82, 81, 70, 74, 73, 64, 77, 76, 68, 84, 83, 75, 69, 68, 60, 63, 62, 54, 87, 86, 75, 77, 77, 65, 64, 64, 53, 78, 78, 67, 63, 63, 52, 67, 66, 55, 87, 86, 75, 70, 70, 59, 66, 65, 54, 71, 71, 60, 57, 57, 46, 49, 49, 38, 95, 94, 83, 66, 65, 56, 82, 81, 70, 70, 69, 61, 87, 86, 77, 82, 81, 72, 63, 62, 54, 94, 93, 84, 77, 76, 68, 96, 95, 88, 84, 83, 75, 85, 84, 78, 69, 68, 62, 70, 69, 61, 47, 46, 37, 108, 107, 98, 92, 92, 83, 100, 100, 89, 77, 77, 65, 92, 92, 81, 59, 56, 46, 86, 83, 72, 74, 71, 61, 94, 91, 81, 55, 55, 43, 99, 99, 88, 55, 55, 43, 70, 70, 59, 63, 63, 52, 92, 92, 81, 54, 53, 42, 106, 106, 95, 110, 109, 98, 68, 66, 55, 113, 113, 102, 104, 104, 92, 81, 80, 69, 105, 104, 96, 116, 113, 103, 88, 87, 76, 67, 66, 55, 102, 101, 90, 110, 110, 96, 68, 66, 53, 59, 58, 47, 54, 53, 42, 76, 76, 62, 114, 111, 100, 80, 77, 67, 81, 80, 71, 75, 74, 65, 113, 109, 101, 96, 95, 84, 117, 116, 107, 57, 54, 43, 64, 64, 53, 131, 130, 119, 96, 95, 84, 69, 69, 55, 78, 75, 62, 81, 79, 66, 130, 128, 115, 93, 90, 80, 127, 124, 113, 89, 88, 77, 81, 78, 68, 99, 96, 85, 53, 50, 40, 85, 85, 74, 113, 113, 102, 120, 117, 106, 106, 106, 95, 108, 105, 95, 71, 68, 55, 117, 115, 102, 71, 71, 60, 92, 89, 76, 74, 72, 59, 101, 98, 88, 91, 91, 80, 71, 71, 60, 88, 85, 75, 64, 61, 50, 114, 111, 100, 104, 102, 91, 94, 91, 81, 95, 94, 83, 110, 109, 98, 167, 164, 154, 100, 97, 86, 84, 84, 72, 96, 95, 84, 114, 114, 103, 138, 137, 126, 105, 105, 94, 94, 91, 81, 67, 64, 54, 142, 139, 128, 129, 126, 116, 73, 72, 61, 146, 145, 134, 101, 98, 88, 89, 88, 77, 87, 86, 75, 69, 69, 57, 75, 74, 63, 113, 110, 97, 111, 109, 96, 120, 117, 104, 74, 72, 59, 61, 61, 47, 156, 156, 145, 130, 129, 118, 73, 72, 61, 112, 112, 100, 123, 122, 111, 127, 124, 113, 83, 81, 70, 85, 82, 71, 77, 74, 63, 65, 62, 52, 101, 98, 88, 73, 72, 61, 74, 73, 62, 71, 71, 60, 87, 87, 73, 84, 86, 72, 230, 229, 218, 231, 230, 219, 226, 226, 215, 227, 227, 216, 223, 222, 211, 225, 225, 213, 226, 226, 215, 223, 222, 211, 225, 223, 212, 228, 225, 215, 227, 227, 216, 227, 227, 216, 230, 229, 218, 233, 230, 219, 236, 233, 223, 240, 240, 228, 239, 238, 227, 238, 237, 226, 237, 236, 225, 237, 236, 225, 245, 244, 233, 255, 255, 244, 255, 255, 249, 255, 255, 252, 253, 252, 241, 128, 128, 117, 78, 78, 67, 85, 82, 71, 87, 84, 74, 87, 86, 75, 87, 86, 75, 73, 72, 63, 69, 68, 60, 66, 68, 58, 61, 60, 51, 56, 55, 47, 60, 57, 49, 68, 67, 58, 52, 51, 40, 47, 46, 37, 68, 67, 58, 56, 56, 45, 56, 55, 47, 52, 51, 42, 53, 52, 43, 53, 52, 43, 52, 51, 42, 56, 55, 47, 61, 60, 49, 50, 50, 41, 54, 53, 44, 52, 51, 40, 36, 36, 27, 33, 32, 23, 50, 50, 41, 55, 55, 43, 60, 59, 50, 49, 48, 40, 46, 45, 36, 60, 59, 50, 48, 47, 39, 43, 45, 35, 50, 50, 41, 55, 56, 47, 59, 61, 51, 62, 61, 52, 70, 69, 61, 66, 65, 56, 69, 68, 60, 60, 59, 50, 80, 82, 72, 70, 71, 62, 70, 71, 62, 74, 76, 66, 77, 76, 68, 78, 78, 69, 78, 80, 68, 76, 77, 68, 83, 84, 75, 66, 68, 58, 57, 57, 48, 76, 75, 66, 90, 89, 80, 63, 63, 52, 89, 88, 77, 61, 60, 51, 57, 57, 46, 78, 78, 67, 62, 62, 50, 53, 52, 41, 80, 77, 67, 69, 69, 57, 63, 63, 52, 69, 69, 57, 47, 46, 35, 83, 83, 71, 81, 80, 71, 88, 87, 78, 56, 55, 47, 71, 71, 60, 85, 85, 76, 70, 69, 61, 90, 89, 80, 80, 79, 70, 88, 87, 78, 80, 79, 70, 62, 61, 54, 85, 84, 78, 78, 77, 71, 60, 58, 52, 87, 86, 77, 84, 83, 75, 84, 83, 75, 97, 96, 87, 103, 102, 91, 68, 67, 56, 70, 70, 59, 60, 57, 47, 79, 76, 65, 71, 68, 57, 103, 102, 91, 99, 99, 88, 64, 64, 53, 88, 87, 76, 113, 113, 100, 81, 80, 69, 63, 63, 52, 71, 71, 60, 75, 74, 63, 60, 59, 48, 64, 61, 50, 87, 86, 75, 112, 112, 100, 74, 71, 61, 86, 83, 72, 109, 108, 97, 73, 70, 60, 86, 83, 72, 117, 114, 104, 114, 111, 100, 71, 68, 55, 61, 59, 48, 90, 90, 78, 82, 79, 69, 105, 105, 94, 77, 77, 65, 70, 67, 56, 86, 83, 72, 86, 83, 72, 66, 65, 54, 80, 77, 67, 109, 108, 97, 87, 86, 75, 57, 57, 46, 99, 99, 88, 92, 92, 81, 84, 84, 72, 85, 85, 74, 75, 74, 63, 68, 66, 55, 115, 112, 102, 121, 121, 110, 81, 78, 68, 86, 83, 72, 68, 67, 56, 110, 107, 97, 111, 109, 98, 117, 116, 105, 125, 123, 112, 126, 126, 114, 142, 142, 131, 102, 100, 87, 84, 84, 70, 122, 119, 109, 142, 139, 128, 123, 121, 108, 63, 60, 49, 83, 81, 70, 118, 116, 105, 135, 135, 124, 140, 140, 128, 80, 79, 68, 62, 62, 50, 130, 129, 118, 109, 108, 97, 72, 69, 61, 78, 78, 67, 127, 127, 116, 75, 74, 63, 87, 86, 75, 103, 102, 91, 92, 89, 78, 104, 102, 91, 123, 120, 110, 79, 76, 65, 77, 77, 65, 146, 145, 134, 111, 109, 98, 77, 74, 63, 155, 155, 144, 148, 148, 136, 56, 56, 45, 144, 143, 132, 75, 73, 62, 61, 60, 49, 66, 64, 51, 129, 126, 114, 128, 128, 117, 89, 89, 75, 80, 79, 66, 127, 124, 111, 128, 128, 117, 41, 41, 29, 100, 97, 86, 82, 79, 69, 100, 97, 86, 88, 85, 75, 102, 99, 89, 71, 68, 57, 104, 104, 92, 112, 112, 100, 87, 86, 75, 116, 116, 102, 103, 103, 89, 231, 231, 217, 226, 226, 213, 226, 226, 215, 225, 225, 213, 224, 223, 212, 224, 223, 212, 225, 225, 213, 226, 226, 215, 225, 223, 212, 231, 228, 218, 229, 226, 216, 230, 229, 218, 230, 227, 217, 233, 233, 222, 238, 235, 225, 241, 241, 230, 240, 240, 228, 237, 236, 225, 237, 236, 225, 238, 237, 226, 243, 240, 230, 248, 248, 237, 255, 255, 247, 255, 255, 253, 245, 242, 232, 15, 12, 2, 82, 79, 69, 86, 83, 72, 90, 90, 78, 62, 62, 50, 69, 68, 60, 81, 80, 69, 70, 69, 61, 65, 67, 57, 63, 62, 54, 48, 49, 40, 52, 51, 42, 55, 54, 46, 57, 57, 46, 57, 57, 46, 49, 49, 38, 56, 56, 45, 56, 55, 47, 54, 53, 44, 53, 52, 43, 63, 62, 54, 38, 35, 25, 60, 57, 47, 63, 63, 52, 52, 51, 40, 56, 53, 42, 52, 51, 40, 65, 62, 52, 56, 56, 45, 50, 50, 41, 69, 68, 60, 59, 58, 49, 41, 42, 33, 59, 58, 49, 52, 51, 42, 39, 38, 29, 51, 53, 43, 49, 50, 41, 61, 60, 51, 56, 57, 48, 61, 60, 51, 67, 66, 57, 69, 68, 60, 53, 55, 46, 62, 63, 54, 67, 69, 60, 62, 61, 52, 77, 76, 68, 66, 68, 58, 69, 68, 60, 67, 66, 57, 82, 81, 70, 90, 89, 80, 82, 81, 72, 70, 69, 61, 85, 85, 76, 84, 83, 75, 81, 80, 71, 70, 69, 61, 81, 80, 69, 100, 100, 91, 80, 79, 70, 54, 53, 44, 82, 81, 70, 78, 78, 67, 60, 59, 48, 63, 63, 52, 78, 78, 67, 64, 64, 53, 83, 82, 73, 60, 59, 50, 67, 66, 57, 62, 61, 52, 78, 78, 69, 71, 71, 62, 62, 61, 52, 87, 86, 77, 69, 68, 60, 76, 75, 66, 85, 85, 76, 73, 72, 63, 75, 74, 67, 80, 78, 72, 75, 74, 67, 82, 81, 74, 75, 74, 65, 83, 82, 73, 83, 82, 73, 68, 67, 58, 82, 81, 70, 97, 96, 85, 77, 77, 65, 94, 93, 82, 74, 73, 62, 80, 79, 68, 62, 62, 50, 71, 71, 60, 88, 87, 76, 84, 84, 72, 78, 78, 67, 99, 99, 88, 74, 73, 62, 62, 64, 52, 70, 70, 59, 75, 74, 63, 88, 87, 76, 60, 59, 48, 59, 58, 47, 64, 64, 53, 94, 91, 81, 65, 62, 52, 58, 55, 45, 107, 104, 94, 59, 56, 46, 95, 92, 82, 80, 77, 67, 100, 100, 89, 134, 134, 123, 68, 66, 55, 67, 64, 54, 119, 119, 107, 103, 102, 91, 82, 81, 70, 103, 100, 90, 45, 44, 33, 103, 102, 91, 82, 79, 69, 61, 60, 49, 98, 98, 86, 104, 104, 90, 90, 90, 76, 73, 72, 61, 91, 91, 80, 121, 121, 110, 108, 107, 96, 91, 88, 77, 67, 66, 55, 99, 99, 88, 81, 78, 68, 101, 98, 88, 63, 60, 49, 71, 68, 57, 50, 50, 39, 99, 99, 88, 91, 88, 77, 133, 133, 121, 67, 64, 54, 76, 76, 64, 106, 103, 92, 93, 90, 80, 66, 63, 53, 107, 104, 94, 84, 84, 72, 87, 86, 75, 69, 69, 57, 64, 64, 53, 90, 90, 78, 75, 74, 63, 121, 121, 110, 77, 77, 65, 81, 80, 69, 81, 80, 71, 130, 127, 117, 77, 77, 65, 103, 100, 90, 70, 67, 56, 81, 78, 68, 109, 106, 96, 87, 84, 74, 113, 110, 99, 138, 135, 125, 125, 125, 113, 99, 99, 88, 97, 96, 85, 122, 119, 109, 67, 66, 55, 78, 78, 67, 71, 71, 60, 135, 135, 124, 109, 108, 97, 128, 128, 115, 70, 70, 57, 88, 86, 73, 73, 70, 60, 145, 143, 130, 93, 90, 78, 60, 57, 47, 87, 84, 74, 78, 78, 67, 106, 103, 92, 104, 102, 91, 83, 81, 70, 65, 62, 52, 82, 79, 69, 124, 121, 111, 70, 70, 59, 75, 74, 63, 95, 94, 83, 97, 96, 85, 231, 231, 217, 229, 228, 215, 231, 230, 219, 219, 219, 207, 223, 220, 210, 223, 222, 211, 225, 225, 213, 231, 228, 218, 233, 230, 219, 225, 223, 212, 222, 221, 210, 229, 226, 216, 230, 227, 217, 240, 237, 226, 236, 235, 224, 240, 237, 226, 238, 235, 225, 240, 240, 228, 231, 228, 218, 244, 242, 229, 245, 242, 232, 253, 253, 239, 255, 255, 248, 255, 255, 244, 147, 145, 134, 101, 98, 88, 79, 76, 65, 82, 79, 69, 82, 81, 70, 68, 67, 56, 83, 83, 71, 68, 67, 56, 61, 60, 51, 66, 68, 58, 59, 61, 51, 62, 63, 54, 59, 58, 49, 53, 52, 43, 52, 51, 40, 54, 53, 44, 50, 50, 41, 59, 58, 47, 40, 39, 30, 66, 65, 56, 59, 58, 49, 55, 54, 46, 59, 58, 49, 54, 53, 44, 75, 74, 63, 62, 61, 52, 60, 59, 50, 61, 59, 48, 52, 51, 40, 59, 58, 49, 50, 50, 41, 53, 52, 41, 59, 61, 51, 58, 60, 50, 50, 52, 42, 51, 53, 43, 47, 48, 39, 51, 53, 43, 64, 64, 55, 63, 65, 53, 52, 51, 42, 62, 63, 54, 69, 68, 60, 65, 67, 55, 63, 64, 55, 64, 66, 56, 72, 74, 64, 64, 66, 56, 63, 64, 55, 77, 78, 69, 77, 78, 69, 72, 74, 62, 64, 66, 56, 75, 74, 65, 67, 66, 57, 83, 84, 75, 91, 90, 82, 77, 76, 68, 80, 79, 68, 64, 64, 53, 89, 88, 77, 61, 60, 49, 76, 75, 66, 78, 78, 67, 72, 69, 59, 64, 64, 53, 74, 73, 62, 63, 63, 52, 92, 92, 81, 88, 87, 76, 62, 61, 52, 66, 65, 54, 67, 66, 57, 70, 69, 61, 73, 72, 63, 82, 81, 72, 87, 86, 77, 78, 80, 70, 61, 60, 51, 59, 58, 49, 61, 60, 51, 75, 74, 65, 59, 61, 51, 71, 71, 62, 73, 72, 63, 86, 87, 80, 53, 55, 46, 88, 87, 78, 66, 65, 56, 89, 88, 77, 77, 76, 68, 103, 102, 91, 60, 59, 48, 83, 81, 70, 101, 98, 88, 80, 79, 68, 82, 79, 69, 92, 89, 78, 56, 56, 45, 70, 70, 59, 110, 109, 98, 110, 109, 98, 102, 104, 92, 108, 107, 96, 87, 86, 75, 70, 70, 59, 67, 66, 55, 104, 104, 92, 88, 87, 76, 91, 91, 80, 99, 96, 85, 95, 92, 82, 109, 108, 97, 67, 64, 54, 65, 62, 52, 108, 105, 95, 113, 110, 97, 77, 74, 63, 56, 53, 42, 100, 97, 86, 81, 78, 68, 100, 97, 86, 65, 62, 52, 71, 71, 60, 70, 70, 59, 106, 106, 95, 109, 108, 97, 116, 115, 104, 123, 122, 111, 70, 70, 59, 85, 85, 74, 60, 59, 48, 83, 83, 71, 81, 80, 69, 124, 123, 112, 84, 84, 72, 68, 67, 56, 64, 64, 53, 62, 62, 50, 73, 72, 61, 129, 126, 116, 87, 86, 75, 109, 106, 96, 110, 107, 97, 96, 95, 84, 102, 101, 90, 60, 59, 48, 133, 133, 121, 118, 117, 106, 123, 122, 111, 82, 81, 70, 74, 71, 61, 109, 106, 96, 142, 139, 128, 111, 110, 99, 61, 60, 49, 121, 121, 110, 64, 64, 53, 69, 69, 57, 54, 53, 42, 119, 119, 107, 107, 104, 96, 116, 113, 103, 91, 91, 80, 142, 138, 130, 73, 70, 60, 81, 78, 68, 118, 116, 105, 147, 145, 134, 88, 85, 75, 83, 81, 68, 68, 66, 55, 67, 64, 54, 104, 102, 91, 81, 78, 68, 83, 83, 71, 122, 119, 109, 106, 106, 95, 127, 127, 116, 113, 113, 102, 121, 121, 110, 119, 119, 107, 141, 141, 129, 71, 68, 57, 71, 71, 60, 120, 117, 106, 72, 69, 57, 147, 145, 132, 114, 111, 98, 125, 123, 110, 113, 110, 99, 73, 70, 60, 67, 64, 54, 68, 66, 55, 121, 118, 107, 97, 95, 84, 80, 79, 68, 129, 126, 118, 123, 122, 111, 77, 74, 63, 230, 230, 216, 229, 228, 217, 217, 216, 205, 222, 221, 210, 228, 225, 215, 224, 221, 211, 224, 223, 212, 221, 218, 207, 224, 221, 211, 225, 223, 210, 222, 219, 209, 229, 226, 216, 231, 228, 218, 237, 234, 224, 237, 234, 224, 236, 235, 222, 239, 238, 227, 238, 235, 225, 239, 238, 227, 241, 241, 230, 255, 253, 240, 255, 253, 242, 255, 255, 247, 254, 254, 242, 2, 0, 0, 82, 79, 69, 79, 76, 65, 80, 77, 67, 66, 65, 54, 75, 74, 63, 74, 73, 64, 69, 69, 57, 70, 69, 61, 62, 63, 54, 53, 52, 43, 49, 48, 40, 69, 68, 60, 52, 51, 40, 52, 51, 40, 45, 44, 33, 50, 50, 39, 49, 48, 40, 53, 52, 43, 52, 51, 42, 56, 55, 47, 46, 45, 36, 50, 50, 41, 57, 57, 48, 49, 48, 40, 56, 55, 47, 55, 54, 46, 53, 52, 43, 47, 46, 37, 42, 41, 33, 43, 45, 35, 34, 33, 25, 44, 46, 36, 42, 43, 34, 52, 54, 44, 53, 55, 46, 48, 49, 40, 58, 60, 50, 60, 59, 48, 53, 55, 43, 63, 65, 53, 67, 69, 57, 57, 59, 47, 65, 67, 55, 50, 52, 42, 62, 63, 54, 65, 67, 57, 59, 61, 51, 62, 63, 54, 70, 71, 62, 59, 61, 51, 72, 74, 64, 70, 71, 62, 73, 75, 65, 60, 62, 52, 77, 78, 69, 70, 69, 61, 88, 87, 78, 68, 67, 58, 61, 60, 49, 74, 73, 62, 66, 65, 56, 84, 84, 72, 66, 63, 53, 70, 67, 56, 81, 78, 68, 88, 85, 75, 64, 64, 53, 57, 57, 48, 81, 80, 71, 77, 76, 68, 70, 69, 61, 78, 78, 69, 88, 87, 78, 77, 73, 65, 77, 76, 68, 82, 81, 72, 74, 73, 64, 70, 69, 61, 69, 68, 60, 78, 78, 69, 60, 59, 50, 77, 78, 69, 59, 58, 49, 89, 88, 79, 54, 53, 46, 102, 100, 94, 77, 76, 68, 63, 62, 54, 49, 48, 40, 74, 73, 62, 62, 62, 50, 100, 100, 89, 102, 101, 90, 58, 55, 45, 111, 109, 98, 85, 82, 71, 70, 67, 56, 110, 107, 97, 90, 90, 78, 82, 81, 70, 56, 56, 45, 63, 63, 52, 95, 94, 83, 62, 62, 50, 59, 58, 47, 96, 95, 84, 53, 52, 41, 109, 108, 97, 56, 56, 45, 67, 66, 55, 114, 111, 100, 80, 79, 68, 74, 71, 61, 80, 79, 68, 58, 55, 45, 109, 106, 96, 60, 59, 48, 111, 109, 98, 70, 67, 56, 114, 111, 100, 69, 69, 57, 97, 96, 85, 49, 49, 38, 89, 88, 77, 80, 77, 67, 113, 110, 99, 69, 69, 57, 68, 67, 56, 57, 57, 46, 114, 114, 103, 57, 57, 46, 68, 67, 56, 75, 74, 63, 118, 116, 105, 84, 84, 72, 75, 73, 62, 118, 116, 105, 68, 67, 56, 59, 58, 47, 125, 122, 114, 56, 56, 45, 100, 100, 89, 94, 93, 82, 95, 94, 83, 78, 78, 67, 67, 66, 55, 104, 104, 92, 78, 78, 67, 95, 94, 83, 89, 88, 77, 78, 75, 64, 75, 73, 62, 59, 56, 46, 103, 102, 91, 75, 74, 63, 67, 66, 55, 80, 79, 68, 69, 69, 57, 127, 127, 116, 117, 116, 105, 70, 70, 59, 95, 94, 83, 105, 105, 94, 132, 131, 120, 116, 113, 103, 104, 102, 91, 137, 134, 124, 104, 102, 91, 91, 88, 77, 110, 107, 97, 73, 70, 60, 83, 81, 70, 158, 155, 145, 134, 131, 120, 73, 70, 60, 89, 86, 76, 90, 90, 78, 146, 143, 133, 88, 85, 75, 130, 129, 118, 97, 96, 85, 70, 70, 59, 95, 92, 82, 86, 83, 72, 81, 78, 68, 73, 72, 61, 68, 66, 55, 77, 74, 63, 115, 112, 102, 144, 141, 131, 100, 97, 86, 138, 135, 125, 138, 135, 125, 63, 60, 49, 118, 116, 105, 123, 120, 110, 118, 116, 105, 74, 73, 62, 73, 70, 60, 226, 226, 213, 225, 225, 211, 224, 224, 210, 220, 220, 207, 223, 223, 209, 224, 224, 210, 222, 221, 210, 225, 223, 210, 224, 222, 209, 225, 223, 210, 229, 226, 216, 230, 229, 218, 233, 230, 219, 238, 235, 225, 241, 238, 225, 236, 235, 224, 240, 237, 226, 235, 232, 220, 236, 235, 224, 242, 239, 228, 249, 249, 238, 255, 255, 244, 255, 253, 242, 222, 219, 209, 80, 77, 67, 89, 86, 76, 86, 83, 72, 96, 93, 83, 92, 89, 78, 80, 79, 68, 76, 76, 64, 53, 52, 41, 67, 66, 57, 56, 55, 47, 56, 55, 47, 67, 66, 57, 55, 54, 46, 59, 58, 49, 49, 49, 38, 43, 43, 32, 56, 56, 45, 53, 52, 41, 42, 42, 31, 50, 50, 39, 60, 62, 52, 43, 45, 35, 48, 47, 39, 52, 51, 42, 59, 61, 51, 45, 44, 35, 61, 60, 51, 45, 42, 34, 56, 55, 47, 52, 51, 42, 47, 46, 37, 49, 48, 40, 48, 49, 40, 44, 46, 36, 34, 35, 26, 53, 55, 46, 53, 55, 46, 58, 60, 50, 46, 45, 34, 55, 57, 45, 64, 64, 53, 64, 64, 53, 52, 54, 42, 66, 65, 54, 65, 67, 57, 80, 82, 72, 64, 66, 56, 80, 82, 70, 78, 80, 68, 65, 67, 57, 51, 53, 43, 62, 64, 52, 59, 61, 51, 56, 58, 46, 65, 67, 57, 73, 72, 63, 71, 71, 62, 55, 54, 46, 55, 54, 46, 78, 78, 67, 41, 41, 29, 83, 83, 71, 78, 78, 67, 77, 77, 65, 59, 58, 47, 82, 81, 70, 80, 79, 68, 96, 95, 84, 80, 79, 68, 95, 94, 83, 52, 51, 42, 59, 58, 47, 73, 72, 63, 92, 92, 83, 66, 65, 56, 88, 87, 78, 63, 62, 54, 75, 74, 65, 75, 74, 65, 52, 51, 42, 75, 74, 65, 80, 82, 72, 59, 61, 51, 59, 61, 51, 67, 69, 60, 72, 74, 64, 83, 82, 73, 57, 59, 49, 70, 71, 62, 81, 80, 71, 50, 50, 39, 91, 91, 80, 63, 62, 54, 71, 71, 60, 83, 81, 70, 106, 103, 92, 61, 59, 48, 95, 92, 82, 92, 89, 78, 60, 57, 47, 70, 67, 56, 64, 61, 50, 94, 93, 82, 77, 77, 65, 50, 50, 39, 63, 63, 52, 95, 94, 83, 62, 62, 50, 77, 77, 65, 106, 106, 95, 64, 64, 53, 62, 62, 50, 75, 74, 63, 67, 64, 54, 51, 48, 38, 88, 85, 75, 39, 36, 26, 78, 75, 64, 92, 89, 78, 81, 78, 68, 91, 91, 80, 117, 114, 104, 69, 69, 57, 110, 109, 98, 80, 79, 68, 61, 60, 49, 74, 71, 61, 85, 85, 74, 95, 94, 83, 93, 90, 80, 84, 84, 72, 106, 106, 95, 94, 93, 82, 81, 80, 69, 77, 74, 63, 66, 65, 54, 125, 123, 112, 114, 114, 103, 92, 92, 83, 85, 82, 71, 90, 90, 78, 80, 77, 67, 49, 49, 38, 96, 95, 84, 69, 69, 57, 81, 80, 71, 85, 85, 74, 69, 69, 57, 103, 102, 91, 64, 64, 53, 69, 69, 57, 96, 93, 83, 124, 121, 111, 71, 68, 57, 75, 73, 62, 81, 78, 68, 138, 137, 126, 91, 88, 77, 127, 127, 116, 97, 96, 85, 49, 49, 38, 73, 72, 61, 73, 72, 61, 77, 74, 63, 166, 163, 153, 99, 96, 85, 149, 146, 135, 137, 134, 124, 73, 70, 60, 68, 66, 55, 77, 74, 63, 65, 60, 50, 117, 114, 104, 129, 126, 116, 145, 142, 132, 99, 96, 85, 129, 126, 116, 81, 80, 71, 122, 119, 109, 145, 142, 132, 113, 113, 102, 55, 55, 43, 102, 101, 90, 138, 135, 125, 85, 85, 74, 88, 85, 75, 117, 116, 105, 91, 88, 77, 149, 146, 135, 91, 88, 77, 73, 70, 60, 89, 86, 76, 101, 98, 88, 85, 82, 71, 127, 127, 116, 138, 137, 126, 83, 83, 71, 121, 118, 107, 85, 82, 71, 87, 87, 73, 232, 232, 218, 226, 226, 213, 222, 221, 208, 218, 218, 204, 225, 223, 210, 223, 221, 208, 220, 220, 207, 217, 215, 202, 219, 216, 203, 221, 218, 205, 227, 224, 211, 229, 228, 215, 233, 230, 217, 235, 232, 220, 235, 232, 220, 236, 235, 222, 237, 236, 225, 236, 233, 223, 234, 234, 223, 245, 244, 233, 249, 249, 238, 249, 246, 233, 255, 252, 241, 72, 69, 59, 97, 95, 84, 91, 88, 77, 95, 92, 82, 88, 85, 75, 86, 83, 72, 78, 75, 64, 77, 77, 65, 63, 63, 52, 57, 59, 49, 63, 63, 52, 53, 52, 43, 52, 54, 44, 52, 51, 42, 50, 50, 39, 56, 56, 45, 56, 56, 45, 38, 37, 26, 63, 63, 52, 54, 53, 42, 59, 58, 47, 51, 53, 43, 55, 56, 47, 49, 50, 41, 50, 52, 42, 49, 50, 41, 53, 55, 46, 47, 46, 39, 53, 52, 43, 53, 52, 45, 48, 47, 39, 64, 64, 55, 49, 48, 40, 50, 52, 42, 50, 52, 42, 55, 56, 47, 47, 48, 39, 41, 42, 33, 50, 52, 40, 48, 48, 36, 62, 64, 52, 62, 64, 52, 65, 67, 55, 53, 55, 43, 63, 63, 52, 66, 68, 56, 55, 57, 45, 60, 62, 50, 80, 82, 70, 64, 66, 56, 77, 79, 67, 74, 76, 64, 56, 58, 46, 69, 69, 57, 64, 66, 56, 58, 60, 50, 69, 70, 61, 57, 59, 49, 82, 81, 72, 77, 76, 68, 55, 55, 43, 50, 50, 39, 61, 60, 49, 47, 46, 35, 82, 81, 70, 63, 63, 52, 88, 87, 76, 61, 60, 49, 97, 95, 84, 73, 70, 60, 87, 86, 75, 64, 60, 52, 83, 81, 70, 96, 93, 85, 56, 52, 44, 82, 79, 71, 62, 61, 52, 67, 66, 57, 67, 66, 57, 83, 82, 73, 76, 75, 66, 61, 60, 51, 79, 81, 71, 73, 75, 65, 80, 79, 70, 79, 81, 71, 74, 76, 66, 63, 64, 55, 87, 86, 77, 57, 57, 48, 60, 59, 50, 81, 80, 69, 92, 92, 81, 84, 84, 72, 62, 62, 50, 67, 64, 54, 94, 91, 81, 87, 84, 74, 75, 73, 62, 102, 99, 89, 103, 100, 90, 79, 76, 65, 94, 91, 81, 54, 53, 42, 84, 84, 72, 69, 69, 57, 85, 85, 74, 57, 57, 48, 64, 64, 53, 91, 91, 80, 96, 95, 84, 103, 102, 91, 109, 108, 97, 70, 70, 59, 66, 63, 53, 61, 60, 49, 99, 96, 85, 70, 67, 56, 66, 65, 54, 49, 46, 35, 105, 105, 94, 67, 66, 55, 70, 70, 59, 116, 115, 104, 69, 69, 57, 89, 88, 77, 72, 69, 59, 66, 63, 53, 52, 49, 39, 88, 87, 76, 87, 86, 75, 71, 68, 57, 107, 104, 94, 63, 63, 52, 97, 96, 85, 82, 79, 69, 96, 95, 84, 85, 81, 73, 111, 110, 101, 114, 114, 105, 81, 78, 70, 66, 65, 54, 102, 101, 92, 95, 94, 83, 60, 59, 48, 68, 67, 56, 82, 81, 70, 112, 112, 100, 60, 59, 48, 96, 95, 84, 112, 112, 100, 85, 85, 74, 123, 120, 110, 107, 104, 94, 116, 113, 103, 144, 141, 131, 142, 139, 128, 107, 104, 94, 138, 135, 125, 78, 75, 64, 75, 74, 63, 78, 78, 67, 114, 114, 103, 82, 81, 70, 94, 91, 81, 125, 123, 112, 89, 86, 76, 70, 67, 56, 97, 95, 84, 104, 102, 91, 79, 76, 65, 89, 86, 76, 141, 138, 127, 73, 70, 60, 125, 123, 112, 78, 75, 64, 100, 97, 89, 75, 73, 62, 74, 71, 61, 95, 92, 82, 138, 135, 125, 75, 74, 63, 84, 84, 72, 94, 91, 81, 64, 64, 53, 103, 102, 91, 129, 126, 116, 88, 87, 76, 158, 155, 145, 120, 120, 109, 72, 69, 57, 137, 134, 124, 95, 92, 82, 71, 68, 57, 108, 107, 96, 74, 73, 64, 102, 101, 92, 111, 110, 99, 95, 94, 85, 84, 84, 72, 113, 110, 99, 226, 226, 213, 224, 224, 210, 220, 220, 207, 222, 221, 208, 223, 223, 209, 220, 217, 204, 222, 220, 207, 222, 220, 207, 222, 220, 207, 222, 220, 207, 228, 225, 213, 231, 229, 216, 236, 234, 221, 235, 232, 220, 235, 232, 220, 237, 234, 224, 240, 237, 226, 234, 231, 218, 240, 237, 226, 247, 244, 233, 252, 250, 237, 249, 249, 236, 241, 241, 228, 0, 0, 0, 89, 87, 74, 89, 86, 76, 60, 57, 47, 79, 76, 65, 88, 85, 75, 73, 70, 60, 59, 58, 47, 63, 63, 52, 75, 74, 65, 59, 58, 49, 49, 48, 40, 34, 33, 25, 67, 66, 57, 38, 40, 28, 35, 36, 27, 64, 64, 55, 50, 50, 39, 48, 49, 40, 58, 60, 50, 47, 48, 39, 48, 49, 40, 45, 47, 39, 52, 54, 44, 55, 56, 47, 73, 72, 63, 68, 67, 58, 63, 62, 54, 59, 56, 48, 56, 52, 44, 52, 51, 42, 44, 46, 36, 52, 51, 42, 50, 50, 41, 60, 62, 52, 53, 55, 46, 49, 51, 39, 41, 43, 31, 53, 52, 41, 33, 35, 22, 56, 58, 46, 60, 62, 50, 58, 60, 48, 65, 67, 55, 63, 65, 53, 62, 64, 52, 66, 68, 56, 65, 67, 55, 66, 68, 56, 62, 64, 52, 66, 68, 56, 67, 66, 55, 82, 81, 70, 39, 38, 27, 83, 85, 72, 76, 75, 66, 62, 61, 52, 80, 79, 68, 75, 74, 65, 70, 69, 61, 67, 66, 57, 71, 71, 60, 81, 80, 69, 99, 99, 88, 71, 71, 60, 78, 78, 67, 77, 77, 65, 89, 88, 77, 63, 63, 52, 63, 59, 51, 78, 74, 66, 71, 67, 60, 87, 84, 76, 86, 83, 75, 67, 64, 56, 81, 78, 70, 63, 62, 54, 54, 53, 44, 69, 68, 60, 76, 75, 66, 75, 74, 65, 73, 72, 63, 85, 87, 77, 69, 70, 61, 40, 41, 32, 70, 71, 62, 78, 78, 69, 82, 81, 72, 78, 78, 69, 62, 61, 52, 74, 73, 64, 84, 84, 72, 80, 77, 67, 78, 75, 64, 84, 84, 72, 103, 100, 90, 87, 84, 74, 68, 66, 55, 66, 63, 53, 68, 66, 55, 96, 93, 83, 73, 70, 60, 45, 42, 32, 89, 86, 76, 88, 87, 78, 69, 69, 57, 75, 72, 64, 66, 65, 54, 75, 74, 63, 91, 90, 82, 78, 78, 67, 70, 70, 59, 80, 77, 67, 76, 76, 64, 117, 116, 105, 120, 117, 106, 65, 62, 52, 79, 76, 65, 85, 85, 74, 56, 56, 45, 105, 105, 94, 82, 81, 70, 82, 79, 69, 68, 67, 56, 50, 50, 39, 101, 98, 88, 63, 63, 52, 92, 89, 78, 54, 52, 41, 95, 94, 83, 60, 59, 48, 117, 114, 104, 95, 94, 83, 117, 116, 105, 69, 69, 57, 67, 66, 55, 97, 96, 85, 81, 80, 69, 82, 81, 70, 52, 51, 40, 120, 120, 109, 82, 81, 70, 89, 88, 77, 118, 117, 106, 117, 116, 105, 109, 108, 97, 121, 121, 110, 70, 70, 59, 138, 137, 126, 118, 116, 105, 42, 39, 28, 106, 106, 95, 127, 124, 113, 63, 63, 52, 64, 61, 50, 106, 103, 92, 134, 131, 120, 135, 132, 121, 124, 121, 111, 115, 112, 102, 131, 128, 118, 138, 137, 126, 78, 78, 67, 108, 107, 96, 94, 91, 81, 107, 104, 94, 75, 73, 62, 86, 83, 70, 78, 75, 64, 71, 68, 57, 85, 82, 71, 91, 88, 77, 142, 139, 128, 116, 113, 103, 145, 142, 132, 131, 128, 118, 82, 79, 69, 101, 98, 88, 137, 134, 124, 114, 111, 100, 131, 128, 118, 146, 143, 133, 90, 90, 78, 67, 64, 54, 119, 119, 107, 121, 121, 110, 81, 78, 68, 85, 85, 74, 151, 148, 138, 78, 75, 64, 95, 92, 82, 59, 56, 46, 96, 95, 84, 74, 73, 62, 92, 92, 83, 73, 72, 63, 100, 100, 91, 88, 87, 78, 62, 61, 52, 126, 126, 114, 86, 88, 76, 227, 227, 214, 227, 227, 214, 223, 223, 209, 225, 223, 210, 217, 217, 203, 224, 224, 210, 223, 220, 210, 222, 220, 207, 224, 224, 210, 227, 224, 211, 224, 222, 209, 222, 220, 207, 222, 220, 207, 242, 239, 226, 234, 231, 218, 237, 235, 222, 235, 232, 220, 236, 233, 223, 239, 238, 227, 251, 251, 237, 251, 248, 238, 250, 248, 235, 187, 184, 174, 56, 53, 42, 94, 92, 79, 66, 63, 53, 68, 66, 55, 80, 77, 67, 68, 66, 55, 67, 64, 54, 72, 69, 59, 61, 60, 49, 60, 59, 48, 52, 51, 42, 45, 44, 35, 61, 60, 51, 56, 56, 45, 54, 53, 42, 41, 40, 32, 49, 48, 40, 40, 39, 28, 48, 47, 39, 53, 55, 46, 58, 60, 50, 49, 50, 41, 43, 45, 35, 51, 53, 43, 42, 43, 34, 62, 63, 54, 47, 48, 39, 46, 45, 36, 41, 40, 32, 49, 48, 40, 48, 47, 39, 52, 51, 42, 47, 46, 37, 53, 52, 43, 50, 50, 41, 30, 32, 20, 54, 53, 42, 50, 52, 40, 54, 53, 42, 59, 61, 49, 57, 59, 47, 65, 68, 53, 64, 66, 52, 62, 64, 52, 70, 72, 60, 62, 64, 52, 52, 55, 40, 51, 53, 41, 83, 85, 72, 66, 68, 56, 68, 67, 56, 69, 71, 59, 76, 76, 64, 73, 72, 63, 62, 62, 50, 76, 76, 64, 75, 74, 63, 85, 85, 74, 52, 51, 40, 60, 59, 48, 55, 55, 43, 73, 72, 61, 54, 53, 42, 89, 88, 77, 75, 74, 63, 68, 67, 56, 91, 91, 80, 83, 81, 70, 86, 83, 72, 85, 82, 71, 87, 84, 74, 87, 84, 74, 65, 62, 54, 73, 70, 62, 85, 81, 73, 78, 74, 66, 59, 58, 49, 66, 63, 55, 88, 87, 78, 67, 66, 57, 64, 64, 55, 80, 79, 70, 56, 57, 48, 71, 73, 63, 51, 53, 43, 82, 81, 72, 73, 72, 63, 80, 79, 70, 83, 82, 73, 85, 85, 76, 84, 83, 75, 74, 73, 64, 78, 78, 69, 63, 63, 52, 76, 76, 64, 78, 78, 67, 83, 81, 70, 72, 69, 59, 80, 77, 67, 83, 81, 70, 73, 70, 60, 83, 81, 70, 94, 91, 81, 94, 91, 83, 52, 49, 41, 61, 60, 51, 73, 72, 63, 94, 93, 84, 100, 100, 89, 82, 81, 70, 98, 98, 86, 54, 53, 42, 80, 79, 68, 81, 80, 69, 99, 99, 88, 118, 117, 106, 85, 85, 74, 93, 90, 80, 69, 69, 57, 66, 65, 54, 103, 102, 91, 83, 81, 70, 101, 98, 88, 46, 45, 34, 75, 73, 62, 61, 59, 48, 83, 81, 70, 58, 55, 45, 105, 105, 94, 110, 109, 98, 99, 96, 85, 91, 88, 77, 62, 62, 50, 102, 101, 90, 51, 48, 38, 91, 90, 82, 73, 72, 63, 78, 78, 69, 62, 61, 52, 116, 115, 104, 95, 94, 83, 66, 65, 54, 103, 102, 91, 50, 50, 39, 117, 116, 105, 76, 76, 64, 110, 109, 98, 119, 119, 107, 112, 112, 100, 81, 80, 69, 106, 103, 92, 111, 110, 99, 104, 102, 91, 83, 81, 70, 96, 93, 83, 120, 117, 104, 129, 126, 116, 79, 76, 65, 122, 119, 109, 100, 97, 86, 88, 85, 75, 85, 85, 74, 119, 119, 107, 128, 128, 117, 67, 66, 55, 77, 74, 63, 106, 106, 95, 94, 91, 81, 63, 60, 49, 87, 84, 74, 144, 141, 131, 127, 124, 113, 114, 111, 100, 106, 103, 92, 75, 73, 62, 65, 62, 52, 151, 148, 140, 109, 108, 99, 72, 69, 59, 99, 95, 87, 145, 142, 132, 99, 95, 87, 106, 105, 97, 70, 66, 58, 99, 99, 88, 142, 142, 131, 128, 125, 114, 138, 135, 125, 97, 94, 86, 81, 80, 69, 61, 60, 49, 135, 135, 124, 88, 85, 75, 96, 95, 84, 91, 90, 82, 99, 100, 91, 73, 75, 65, 85, 86, 79, 101, 105, 94, 66, 68, 58, 74, 78, 65, 223, 223, 207, 224, 222, 209, 221, 218, 205, 223, 221, 208, 219, 216, 203, 222, 221, 208, 219, 219, 205, 222, 220, 207, 223, 223, 209, 224, 222, 209, 224, 222, 209, 224, 222, 209, 225, 223, 210, 230, 228, 215, 229, 227, 214, 230, 228, 215, 237, 235, 222, 236, 233, 223, 244, 242, 229, 249, 246, 233, 251, 248, 238, 252, 249, 239, 26, 24, 13, 92, 89, 78, 80, 77, 67, 85, 82, 71, 70, 67, 56, 85, 82, 71, 72, 69, 59, 58, 55, 45, 64, 64, 53, 34, 34, 22, 59, 58, 47, 49, 51, 39, 60, 59, 48, 47, 46, 35, 50, 50, 39, 61, 60, 49, 57, 57, 48, 52, 51, 40, 53, 52, 41, 50, 50, 41, 45, 44, 35, 48, 49, 40, 44, 46, 36, 49, 50, 43, 44, 46, 36, 43, 45, 35, 43, 43, 34, 45, 44, 35, 48, 47, 39, 35, 34, 26, 62, 61, 52, 59, 58, 49, 49, 48, 40, 50, 50, 41, 49, 48, 40, 42, 44, 32, 38, 40, 28, 55, 57, 45, 52, 51, 40, 52, 51, 40, 48, 50, 38, 56, 58, 46, 62, 64, 52, 71, 73, 59, 60, 63, 48, 62, 64, 52, 59, 61, 49, 63, 65, 53, 58, 60, 48, 65, 67, 55, 76, 76, 64, 70, 72, 60, 73, 72, 61, 57, 57, 46, 78, 78, 67, 70, 69, 61, 46, 45, 36, 77, 77, 65, 63, 63, 52, 77, 77, 65, 61, 60, 49, 64, 64, 53, 57, 57, 46, 96, 95, 84, 71, 71, 60, 67, 66, 55, 60, 59, 48, 78, 78, 67, 73, 70, 60, 82, 79, 69, 52, 49, 39, 65, 62, 52, 80, 77, 67, 70, 66, 58, 68, 65, 57, 73, 70, 62, 81, 78, 70, 80, 79, 70, 64, 64, 55, 52, 51, 42, 56, 57, 48, 65, 67, 57, 80, 82, 72, 51, 53, 43, 63, 64, 55, 69, 70, 61, 87, 89, 79, 75, 74, 65, 69, 68, 60, 81, 80, 71, 83, 82, 73, 75, 74, 63, 66, 65, 54, 70, 70, 59, 63, 63, 52, 94, 93, 82, 62, 62, 50, 70, 70, 59, 58, 55, 45, 61, 59, 48, 92, 92, 81, 48, 48, 36, 86, 83, 72, 130, 129, 118, 121, 121, 110, 93, 90, 82, 70, 67, 56, 85, 85, 76, 73, 72, 63, 66, 65, 54, 52, 51, 40, 71, 71, 60, 95, 92, 82, 97, 96, 85, 75, 74, 63, 47, 46, 35, 91, 91, 80, 60, 59, 48, 106, 106, 95, 67, 66, 55, 91, 91, 80, 75, 74, 63, 59, 56, 46, 75, 73, 62, 102, 101, 90, 88, 87, 76, 71, 71, 60, 89, 88, 77, 73, 72, 61, 57, 57, 46, 68, 67, 56, 74, 73, 64, 102, 99, 91, 90, 89, 80, 78, 78, 69, 96, 95, 86, 98, 97, 89, 77, 76, 68, 73, 72, 63, 75, 74, 65, 95, 94, 83, 85, 85, 74, 112, 112, 100, 84, 84, 72, 83, 81, 70, 76, 76, 64, 101, 98, 88, 122, 119, 109, 121, 118, 110, 72, 69, 59, 56, 56, 45, 105, 105, 94, 87, 86, 75, 46, 45, 34, 118, 116, 105, 114, 111, 100, 108, 105, 95, 93, 90, 80, 96, 93, 83, 106, 103, 92, 68, 66, 55, 124, 121, 111, 68, 67, 56, 64, 61, 50, 108, 107, 96, 118, 117, 106, 84, 84, 72, 87, 84, 74, 135, 132, 119, 79, 76, 65, 100, 97, 86, 71, 68, 57, 151, 148, 138, 127, 124, 113, 99, 96, 85, 110, 107, 97, 54, 53, 42, 151, 150, 139, 106, 105, 97, 86, 83, 72, 124, 121, 113, 82, 81, 72, 114, 111, 103, 142, 142, 131, 167, 164, 154, 129, 126, 116, 78, 78, 67, 68, 66, 55, 145, 144, 133, 95, 92, 82, 109, 108, 97, 109, 108, 97, 76, 76, 64, 121, 118, 110, 120, 119, 111, 112, 111, 103, 56, 57, 50, 88, 90, 82, 76, 77, 68, 57, 61, 50, 61, 65, 55, 57, 64, 52, 224, 222, 209, 227, 224, 211, 218, 218, 204, 220, 217, 204, 216, 216, 202, 220, 217, 204, 222, 220, 207, 223, 221, 208, 230, 228, 215, 227, 224, 211, 229, 227, 214, 227, 224, 211, 224, 222, 209, 222, 220, 207, 223, 221, 208, 227, 224, 211, 229, 227, 214, 233, 230, 219, 248, 245, 232, 251, 249, 236, 247, 244, 233, 224, 221, 211, 0, 0, 0, 85, 82, 71, 80, 77, 67, 60, 57, 47, 64, 61, 50, 68, 66, 55, 71, 68, 57, 78, 78, 65, 61, 60, 49, 60, 59, 48, 64, 64, 55, 43, 43, 32, 47, 46, 35, 39, 38, 27, 40, 39, 28, 59, 58, 47, 52, 51, 42, 29, 26, 15, 54, 52, 41, 48, 47, 39, 57, 57, 48, 56, 55, 47, 46, 45, 36, 54, 53, 46, 57, 57, 48, 40, 41, 32, 63, 62, 54, 49, 49, 38, 60, 59, 50, 50, 50, 39, 45, 44, 35, 52, 51, 40, 54, 53, 42, 48, 47, 39, 40, 37, 29, 48, 48, 36, 50, 50, 41, 60, 59, 48, 49, 49, 38, 55, 55, 43, 56, 56, 45, 57, 59, 45, 51, 54, 39, 65, 68, 53, 67, 70, 55, 73, 75, 63, 69, 71, 59, 66, 68, 56, 57, 59, 47, 67, 66, 55, 63, 65, 53, 59, 61, 49, 59, 62, 47, 66, 65, 54, 56, 56, 45, 73, 72, 61, 78, 78, 67, 47, 46, 37, 77, 77, 65, 64, 64, 53, 45, 44, 33, 73, 72, 63, 54, 53, 42, 85, 82, 71, 64, 61, 50, 56, 53, 42, 92, 89, 78, 79, 76, 65, 71, 68, 57, 63, 60, 49, 80, 77, 67, 66, 63, 53, 77, 73, 65, 59, 56, 48, 53, 50, 42, 58, 55, 47, 54, 51, 43, 88, 87, 78, 64, 64, 55, 67, 66, 57, 60, 59, 50, 89, 88, 79, 67, 69, 60, 56, 55, 47, 54, 53, 44, 78, 80, 70, 72, 74, 64, 67, 66, 57, 66, 65, 56, 82, 81, 72, 75, 72, 64, 55, 55, 43, 73, 72, 61, 82, 81, 70, 61, 60, 49, 75, 74, 63, 78, 78, 67, 54, 53, 42, 72, 69, 59, 81, 80, 69, 56, 56, 45, 59, 58, 47, 112, 112, 100, 59, 58, 47, 81, 80, 71, 80, 79, 70, 113, 109, 101, 78, 78, 69, 59, 58, 49, 73, 72, 61, 87, 86, 75, 62, 62, 50, 88, 87, 76, 88, 87, 76, 85, 85, 74, 60, 59, 48, 104, 104, 92, 66, 65, 54, 81, 80, 69, 108, 107, 96, 98, 98, 86, 63, 63, 52, 92, 92, 81, 93, 90, 80, 88, 87, 76, 94, 93, 82, 83, 81, 70, 54, 53, 42, 95, 94, 83, 60, 59, 48, 85, 85, 74, 97, 96, 87, 68, 65, 57, 76, 75, 66, 94, 93, 84, 111, 110, 101, 104, 105, 96, 100, 102, 92, 96, 95, 86, 84, 83, 75, 68, 67, 58, 84, 84, 72, 55, 55, 43, 99, 99, 88, 71, 71, 60, 97, 95, 84, 74, 73, 62, 78, 78, 67, 68, 66, 55, 68, 67, 56, 87, 86, 75, 97, 96, 85, 100, 100, 89, 124, 123, 112, 78, 75, 64, 99, 96, 85, 85, 85, 74, 63, 60, 49, 100, 100, 89, 79, 76, 65, 96, 95, 84, 138, 137, 126, 88, 87, 76, 82, 81, 72, 95, 94, 85, 142, 142, 131, 70, 67, 56, 136, 133, 123, 78, 75, 64, 128, 125, 114, 102, 99, 89, 115, 112, 102, 92, 89, 78, 74, 71, 61, 85, 82, 71, 94, 91, 81, 95, 92, 82, 87, 84, 74, 77, 76, 68, 86, 83, 72, 81, 78, 70, 92, 88, 80, 81, 78, 70, 133, 132, 124, 78, 75, 64, 102, 101, 92, 87, 84, 76, 87, 84, 74, 120, 119, 111, 128, 128, 119, 68, 67, 58, 76, 76, 64, 95, 94, 85, 104, 103, 94, 71, 71, 62, 57, 56, 50, 59, 64, 56, 52, 54, 46, 80, 84, 73, 58, 61, 53, 36, 40, 29, 43, 47, 36, 223, 221, 208, 223, 223, 209, 222, 220, 207, 222, 220, 207, 219, 216, 203, 216, 214, 201, 220, 217, 204, 221, 218, 207, 222, 220, 207, 224, 222, 209, 227, 224, 211, 227, 224, 211, 227, 224, 211, 229, 227, 214, 225, 223, 210, 224, 222, 209, 221, 218, 205, 231, 229, 216, 244, 242, 229, 243, 240, 230, 254, 251, 240, 92, 89, 78, 53, 50, 40, 71, 68, 57, 57, 54, 43, 82, 79, 69, 80, 77, 67, 79, 76, 65, 67, 64, 54, 48, 48, 36, 57, 57, 46, 55, 57, 45, 61, 60, 49, 72, 74, 64, 51, 53, 43, 36, 36, 27, 52, 51, 42, 57, 57, 48, 53, 52, 43, 50, 50, 41, 38, 37, 28, 52, 51, 42, 54, 53, 44, 46, 45, 36, 38, 37, 28, 52, 51, 42, 52, 51, 42, 46, 45, 36, 47, 46, 37, 53, 52, 43, 52, 51, 42, 41, 40, 32, 47, 46, 35, 46, 45, 36, 43, 43, 32, 52, 51, 40, 53, 50, 40, 46, 45, 34, 54, 53, 42, 64, 61, 50, 57, 57, 46, 62, 62, 48, 61, 60, 49, 56, 56, 45, 62, 62, 48, 53, 53, 39, 63, 65, 51, 47, 48, 36, 67, 69, 57, 69, 69, 57, 65, 67, 55, 46, 45, 34, 71, 71, 60, 61, 60, 49, 76, 76, 64, 77, 77, 65, 57, 57, 46, 67, 66, 55, 67, 69, 60, 82, 81, 72, 56, 56, 45, 76, 76, 64, 77, 77, 65, 68, 67, 56, 96, 95, 84, 62, 62, 50, 50, 50, 39, 64, 61, 50, 70, 67, 56, 58, 55, 45, 80, 77, 67, 86, 83, 72, 70, 67, 56, 60, 57, 47, 77, 74, 63, 88, 85, 77, 92, 88, 80, 85, 81, 73, 56, 52, 44, 70, 69, 61, 53, 52, 43, 77, 76, 68, 76, 75, 66, 75, 74, 65, 84, 83, 75, 69, 68, 60, 69, 70, 61, 56, 55, 47, 78, 80, 70, 66, 65, 56, 76, 75, 66, 78, 78, 69, 70, 69, 61, 60, 59, 50, 82, 81, 72, 64, 64, 53, 66, 65, 56, 68, 67, 56, 64, 64, 53, 100, 100, 91, 59, 58, 49, 64, 64, 53, 70, 69, 61, 68, 67, 56, 59, 58, 47, 61, 60, 49, 78, 78, 67, 71, 71, 60, 100, 100, 89, 75, 73, 62, 60, 57, 47, 84, 84, 72, 67, 66, 55, 61, 60, 49, 94, 93, 82, 53, 52, 41, 61, 60, 49, 98, 98, 86, 84, 84, 72, 68, 67, 56, 108, 107, 96, 59, 58, 47, 74, 73, 62, 73, 72, 61, 57, 57, 46, 97, 96, 85, 62, 62, 50, 112, 112, 100, 76, 76, 64, 68, 67, 56, 82, 79, 69, 82, 81, 70, 90, 89, 80, 83, 82, 73, 50, 50, 41, 97, 96, 87, 68, 67, 58, 100, 102, 92, 102, 104, 94, 77, 78, 69, 57, 59, 49, 76, 77, 68, 66, 65, 56, 77, 77, 65, 69, 68, 60, 106, 106, 95, 71, 68, 57, 57, 57, 46, 82, 81, 70, 96, 93, 85, 64, 64, 53, 75, 74, 63, 98, 98, 86, 64, 64, 53, 64, 64, 53, 94, 93, 80, 96, 93, 83, 71, 71, 58, 88, 87, 76, 99, 99, 88, 67, 66, 55, 90, 90, 78, 118, 117, 106, 70, 70, 59, 103, 102, 91, 83, 82, 73, 92, 92, 81, 84, 84, 72, 66, 63, 53, 63, 60, 49, 78, 75, 64, 132, 129, 119, 107, 104, 94, 117, 114, 104, 108, 105, 95, 106, 103, 92, 86, 83, 72, 59, 56, 46, 106, 106, 95, 88, 87, 76, 113, 112, 104, 100, 97, 86, 115, 112, 104, 66, 65, 56, 140, 139, 130, 75, 74, 65, 61, 58, 50, 82, 81, 72, 66, 64, 58, 117, 116, 109, 88, 90, 82, 67, 69, 62, 72, 73, 66, 60, 62, 54, 66, 68, 58, 60, 62, 54, 38, 44, 35, 48, 52, 46, 63, 69, 60, 43, 49, 41, 34, 40, 31, 35, 41, 32, 46, 52, 43, 49, 57, 48, 227, 225, 209, 222, 220, 207, 220, 217, 204, 220, 217, 204, 219, 216, 203, 220, 217, 204, 221, 218, 205, 222, 220, 207, 220, 217, 204, 225, 223, 210, 227, 224, 211, 229, 227, 214, 227, 225, 209, 228, 225, 213, 227, 225, 209, 233, 230, 217, 237, 235, 222, 234, 231, 218, 242, 239, 226, 250, 248, 235, 242, 239, 228, 29, 26, 15, 79, 76, 65, 47, 45, 34, 66, 63, 53, 82, 79, 69, 83, 81, 70, 67, 64, 54, 59, 56, 48, 63, 62, 54, 68, 67, 58, 35, 34, 26, 34, 33, 25, 52, 51, 42, 55, 54, 46, 48, 47, 39, 42, 42, 31, 48, 48, 36, 59, 58, 47, 62, 62, 50, 48, 48, 36, 61, 60, 51, 41, 40, 32, 31, 30, 21, 55, 54, 46, 47, 46, 37, 47, 48, 39, 47, 48, 39, 44, 46, 36, 44, 46, 36, 47, 48, 39, 47, 48, 39, 52, 51, 40, 48, 47, 39, 68, 67, 58, 53, 52, 43, 45, 44, 33, 59, 58, 47, 46, 45, 36, 57, 57, 46, 52, 51, 40, 55, 55, 43, 50, 50, 37, 57, 57, 46, 69, 69, 57, 67, 66, 55, 57, 59, 47, 55, 57, 45, 58, 60, 48, 68, 67, 56, 69, 69, 57, 63, 63, 52, 64, 64, 53, 75, 74, 63, 61, 60, 49, 53, 52, 41, 73, 72, 61, 65, 67, 55, 71, 73, 61, 64, 64, 53, 85, 85, 74, 64, 64, 53, 78, 78, 67, 61, 60, 49, 63, 63, 52, 80, 79, 68, 53, 52, 41, 70, 70, 59, 80, 77, 67, 65, 62, 52, 73, 70, 60, 70, 67, 56, 80, 77, 67, 73, 70, 62, 75, 72, 64, 64, 61, 50, 70, 66, 58, 70, 66, 58, 69, 68, 60, 78, 78, 69, 82, 81, 72, 83, 82, 73, 57, 57, 48, 78, 78, 69, 66, 65, 56, 64, 66, 56, 67, 69, 60, 97, 96, 87, 74, 76, 66, 77, 76, 68, 68, 67, 58, 84, 83, 75, 67, 66, 57, 70, 69, 61, 70, 69, 61, 80, 79, 70, 56, 55, 47, 75, 74, 63, 76, 76, 64, 83, 82, 73, 71, 68, 57, 66, 65, 54, 71, 71, 60, 91, 91, 80, 60, 59, 48, 91, 90, 82, 73, 72, 61, 77, 77, 65, 69, 68, 60, 75, 73, 62, 53, 50, 40, 56, 53, 42, 77, 74, 63, 82, 79, 69, 57, 57, 46, 56, 56, 45, 70, 70, 59, 99, 99, 88, 47, 46, 35, 85, 85, 74, 94, 93, 82, 94, 93, 82, 73, 72, 61, 64, 64, 55, 89, 88, 77, 78, 78, 67, 105, 105, 94, 94, 93, 82, 78, 78, 67, 42, 42, 31, 74, 73, 62, 83, 83, 71, 119, 118, 110, 77, 76, 68, 91, 90, 82, 55, 56, 47, 99, 100, 91, 96, 95, 86, 62, 63, 54, 77, 76, 68, 66, 68, 58, 99, 98, 90, 90, 91, 82, 102, 101, 90, 82, 81, 70, 89, 88, 77, 94, 93, 82, 75, 74, 63, 57, 57, 46, 73, 72, 61, 114, 114, 103, 64, 64, 53, 64, 64, 53, 55, 55, 43, 79, 76, 65, 82, 79, 69, 83, 83, 71, 97, 95, 84, 42, 42, 31, 108, 107, 96, 110, 109, 98, 117, 116, 105, 114, 114, 103, 119, 119, 107, 83, 83, 71, 76, 76, 64, 64, 64, 53, 83, 83, 71, 108, 107, 96, 76, 76, 64, 61, 59, 48, 64, 64, 53, 64, 61, 50, 138, 135, 125, 80, 79, 68, 135, 135, 124, 117, 116, 105, 133, 133, 121, 114, 114, 103, 133, 132, 124, 125, 124, 115, 93, 90, 80, 90, 89, 80, 112, 111, 103, 62, 61, 52, 79, 81, 71, 81, 83, 73, 62, 63, 56, 58, 59, 54, 79, 80, 75, 68, 71, 66, 65, 68, 62, 43, 46, 40, 51, 54, 48, 47, 50, 45, 42, 45, 39, 45, 50, 44, 42, 48, 41, 45, 50, 44, 41, 47, 38, 34, 40, 31, 51, 59, 50, 54, 60, 51, 58, 68, 58, 229, 227, 214, 222, 220, 207, 216, 214, 201, 220, 217, 204, 219, 216, 203, 217, 214, 204, 220, 217, 204, 225, 223, 210, 221, 218, 205, 221, 218, 205, 227, 224, 211, 225, 223, 210, 230, 228, 215, 222, 220, 207, 228, 225, 213, 229, 227, 214, 237, 235, 222, 234, 231, 218, 236, 234, 219, 240, 237, 224, 217, 214, 204, 16, 13, 3, 80, 77, 67, 50, 47, 36, 92, 89, 78, 74, 71, 61, 79, 76, 65, 66, 63, 55, 65, 62, 54, 63, 62, 54, 46, 45, 36, 73, 72, 63, 56, 55, 47, 53, 52, 43, 50, 50, 41, 36, 36, 27, 42, 42, 31, 46, 45, 34, 56, 56, 45, 32, 31, 22, 47, 46, 37, 56, 55, 47, 60, 59, 50, 35, 34, 26, 47, 46, 39, 49, 50, 43, 41, 42, 33, 43, 45, 35, 47, 48, 39, 42, 43, 34, 43, 45, 35, 35, 36, 27, 52, 54, 44, 38, 40, 30, 38, 40, 30, 46, 45, 36, 42, 41, 33, 52, 51, 42, 54, 53, 42, 49, 49, 38, 52, 51, 40, 48, 48, 36, 49, 49, 38, 46, 45, 34, 52, 51, 40, 53, 55, 43, 69, 69, 57, 63, 63, 52, 56, 58, 46, 57, 57, 46, 67, 69, 57, 47, 46, 35, 69, 71, 59, 55, 55, 43, 76, 78, 65, 76, 78, 65, 60, 59, 48, 70, 72, 60, 64, 64, 53, 67, 66, 55, 62, 62, 50, 61, 60, 49, 67, 66, 55, 67, 66, 55, 85, 82, 71, 81, 78, 68, 82, 81, 70, 64, 61, 50, 65, 62, 52, 58, 55, 45, 51, 48, 38, 60, 57, 47, 79, 76, 65, 75, 73, 62, 77, 73, 65, 82, 79, 71, 68, 65, 57, 54, 53, 44, 77, 76, 68, 88, 87, 78, 55, 54, 46, 77, 76, 68, 54, 53, 44, 69, 68, 60, 62, 61, 52, 74, 73, 64, 75, 74, 65, 80, 79, 70, 72, 74, 64, 67, 66, 57, 49, 48, 40, 68, 67, 58, 89, 88, 79, 69, 68, 60, 82, 81, 72, 69, 68, 60, 52, 51, 42, 57, 57, 48, 71, 71, 62, 75, 74, 65, 70, 69, 61, 75, 74, 63, 83, 83, 71, 74, 73, 62, 82, 81, 70, 56, 56, 45, 77, 77, 65, 88, 87, 76, 101, 98, 88, 79, 76, 65, 97, 95, 84, 91, 88, 77, 73, 70, 60, 72, 69, 59, 77, 74, 63, 55, 55, 43, 88, 87, 76, 86, 83, 72, 106, 103, 92, 86, 83, 72, 62, 62, 50, 70, 70, 59, 73, 72, 61, 64, 64, 53, 84, 84, 72, 119, 119, 107, 71, 71, 60, 81, 80, 69, 69, 69, 57, 56, 56, 45, 90, 90, 78, 68, 67, 56, 63, 62, 54, 73, 72, 63, 85, 85, 76, 102, 101, 92, 85, 85, 76, 73, 72, 63, 95, 94, 85, 57, 57, 48, 106, 105, 97, 90, 89, 80, 70, 69, 61, 56, 56, 45, 95, 94, 83, 66, 63, 53, 55, 55, 43, 61, 60, 49, 116, 115, 104, 92, 89, 78, 102, 99, 89, 94, 91, 81, 49, 49, 38, 88, 85, 75, 110, 107, 97, 85, 85, 72, 70, 70, 57, 85, 85, 74, 53, 52, 41, 91, 91, 80, 59, 58, 47, 110, 109, 98, 75, 74, 63, 85, 85, 74, 66, 65, 54, 94, 91, 81, 125, 124, 115, 116, 115, 104, 69, 68, 60, 70, 70, 59, 97, 96, 85, 116, 115, 104, 110, 109, 98, 70, 67, 56, 76, 76, 64, 114, 114, 103, 106, 106, 95, 90, 90, 78, 104, 101, 93, 62, 61, 52, 106, 105, 97, 83, 83, 71, 52, 51, 42, 78, 80, 70, 63, 64, 55, 57, 63, 54, 74, 80, 71, 55, 61, 52, 49, 55, 48, 41, 47, 40, 40, 45, 39, 39, 44, 38, 47, 52, 46, 40, 43, 38, 52, 55, 49, 44, 47, 41, 52, 55, 49, 53, 58, 52, 61, 67, 58, 66, 69, 62, 63, 69, 62, 67, 73, 64, 75, 81, 72, 78, 84, 77, 225, 225, 211, 216, 214, 201, 220, 217, 204, 212, 209, 196, 215, 213, 200, 220, 217, 206, 220, 217, 206, 216, 214, 201, 224, 221, 211, 225, 223, 210, 224, 222, 209, 224, 222, 209, 228, 225, 213, 227, 224, 211, 233, 230, 217, 230, 228, 215, 238, 236, 223, 241, 238, 225, 241, 238, 225, 230, 228, 215, 121, 118, 105, 73, 70, 60, 83, 83, 71, 80, 79, 68, 66, 63, 53, 72, 69, 59, 85, 82, 71, 56, 52, 44, 61, 60, 51, 57, 57, 48, 47, 46, 37, 42, 41, 33, 45, 44, 35, 41, 40, 34, 43, 43, 34, 56, 55, 47, 47, 46, 35, 58, 55, 47, 53, 52, 43, 43, 43, 34, 49, 48, 40, 55, 54, 46, 45, 44, 35, 49, 48, 40, 50, 49, 43, 39, 38, 31, 54, 53, 46, 63, 62, 54, 39, 38, 29, 47, 48, 39, 42, 43, 34, 33, 34, 25, 45, 44, 35, 55, 54, 46, 39, 38, 29, 42, 41, 33, 41, 41, 29, 56, 56, 45, 48, 47, 39, 55, 55, 43, 50, 50, 39, 59, 58, 47, 57, 57, 46, 52, 51, 40, 53, 52, 41, 60, 59, 48, 63, 63, 52, 54, 53, 42, 68, 67, 56, 64, 64, 53, 68, 67, 56, 66, 65, 54, 62, 62, 50, 64, 64, 53, 56, 56, 45, 63, 63, 52, 66, 65, 54, 73, 72, 61, 60, 59, 48, 69, 69, 57, 64, 64, 53, 71, 71, 58, 73, 72, 61, 61, 61, 47, 86, 83, 70, 71, 71, 58, 77, 74, 61, 58, 55, 45, 81, 79, 66, 64, 61, 50, 64, 61, 50, 63, 60, 49, 92, 89, 78, 49, 46, 35, 100, 97, 86, 57, 53, 46, 52, 49, 41, 79, 76, 68, 60, 59, 50, 74, 73, 64, 74, 73, 64, 66, 65, 56, 83, 82, 73, 90, 89, 80, 85, 85, 74, 74, 76, 64, 78, 78, 67, 74, 73, 64, 65, 67, 57, 63, 64, 55, 81, 80, 71, 71, 73, 63, 66, 65, 56, 73, 72, 63, 59, 58, 49, 83, 82, 73, 64, 64, 55, 69, 68, 60, 83, 82, 73, 77, 76, 68, 49, 48, 40, 74, 73, 62, 90, 90, 78, 82, 81, 70, 78, 78, 67, 56, 56, 45, 70, 70, 59, 75, 74, 63, 72, 69, 59, 85, 82, 71, 89, 86, 76, 43, 40, 29, 94, 91, 81, 68, 66, 55, 54, 53, 42, 80, 79, 68, 67, 64, 54, 74, 71, 61, 64, 64, 53, 82, 81, 70, 74, 73, 62, 78, 78, 67, 82, 81, 70, 167, 166, 155, 95, 94, 83, 100, 100, 89, 60, 59, 48, 78, 78, 67, 78, 78, 67, 50, 50, 39, 78, 78, 67, 111, 110, 99, 78, 78, 69, 61, 60, 51, 84, 83, 75, 61, 60, 51, 73, 72, 63, 71, 71, 62, 110, 109, 100, 95, 94, 85, 64, 64, 55, 82, 81, 72, 77, 77, 65, 55, 55, 43, 97, 96, 85, 62, 62, 50, 62, 62, 50, 83, 83, 71, 103, 102, 91, 89, 86, 76, 76, 76, 64, 81, 78, 68, 91, 91, 80, 124, 121, 111, 106, 103, 92, 81, 80, 69, 78, 78, 67, 91, 91, 80, 95, 94, 83, 69, 69, 57, 70, 70, 59, 128, 128, 117, 61, 60, 49, 128, 128, 117, 89, 88, 77, 91, 91, 80, 94, 93, 84, 61, 60, 49, 113, 113, 102, 108, 107, 96, 114, 114, 103, 118, 117, 106, 108, 107, 96, 104, 103, 94, 86, 83, 72, 68, 67, 56, 77, 77, 65, 83, 82, 73, 83, 82, 73, 87, 86, 77, 80, 79, 70, 79, 81, 71, 69, 70, 61, 53, 57, 49, 61, 65, 57, 43, 49, 43, 41, 49, 39, 41, 47, 40, 40, 45, 39, 46, 51, 45, 43, 49, 43, 42, 48, 41, 57, 59, 56, 54, 57, 52, 67, 68, 64, 63, 64, 59, 55, 59, 51, 86, 89, 83, 90, 94, 88, 78, 84, 75, 95, 100, 92, 137, 140, 132, 255, 255, 255, 255, 255, 255, 223, 221, 208, 216, 216, 202, 219, 216, 203, 217, 214, 204, 222, 219, 209, 217, 214, 204, 219, 216, 205, 220, 217, 204, 221, 218, 205, 222, 220, 207, 223, 221, 208, 223, 220, 210, 225, 223, 210, 224, 222, 209, 223, 221, 208, 234, 231, 218, 238, 236, 223, 241, 238, 225, 237, 235, 222, 216, 214, 201, 12, 10, 0, 88, 85, 75, 78, 78, 67, 84, 86, 74, 72, 69, 59, 67, 66, 55, 64, 64, 53, 59, 58, 47, 60, 57, 49, 61, 60, 51, 60, 59, 50, 59, 58, 49, 57, 53, 46, 56, 52, 44, 50, 49, 43, 45, 44, 35, 38, 37, 28, 41, 40, 32, 57, 57, 48, 45, 44, 35, 42, 41, 33, 53, 52, 43, 47, 46, 37, 47, 46, 37, 53, 52, 43, 41, 40, 32, 38, 37, 28, 47, 46, 37, 53, 52, 43, 42, 41, 33, 39, 38, 29, 44, 46, 36, 64, 64, 55, 67, 66, 57, 48, 47, 39, 33, 32, 23, 40, 39, 28, 47, 46, 35, 48, 50, 38, 52, 51, 40, 54, 53, 42, 49, 49, 38, 57, 57, 46, 56, 56, 45, 59, 58, 47, 69, 69, 57, 60, 59, 48, 62, 64, 52, 64, 64, 53, 64, 64, 53, 60, 62, 50, 70, 70, 59, 64, 66, 54, 60, 62, 50, 58, 60, 48, 57, 59, 47, 81, 80, 69, 64, 66, 54, 70, 70, 59, 58, 60, 48, 64, 64, 53, 63, 63, 52, 73, 72, 59, 60, 60, 46, 62, 62, 48, 54, 52, 39, 51, 48, 36, 77, 74, 61, 64, 61, 48, 59, 56, 46, 50, 47, 34, 61, 59, 48, 59, 56, 46, 66, 65, 54, 71, 68, 57, 83, 81, 70, 96, 93, 85, 53, 52, 43, 100, 97, 89, 73, 72, 63, 61, 60, 51, 73, 70, 62, 70, 70, 59, 94, 93, 82, 46, 45, 34, 70, 69, 61, 89, 88, 77, 77, 76, 68, 47, 48, 39, 70, 69, 61, 50, 52, 42, 48, 47, 39, 77, 76, 68, 76, 75, 66, 78, 78, 69, 62, 61, 52, 56, 55, 47, 80, 79, 68, 68, 67, 58, 60, 59, 50, 78, 78, 67, 69, 69, 57, 78, 78, 67, 87, 86, 75, 66, 65, 54, 66, 65, 54, 68, 67, 56, 64, 64, 53, 88, 87, 76, 97, 96, 85, 75, 74, 63, 80, 77, 67, 59, 56, 46, 54, 52, 41, 92, 89, 78, 72, 69, 57, 75, 73, 62, 75, 73, 62, 74, 71, 61, 71, 71, 60, 74, 73, 62, 66, 63, 53, 63, 63, 52, 92, 92, 81, 94, 93, 82, 69, 69, 57, 83, 83, 71, 89, 88, 77, 68, 67, 56, 57, 57, 46, 99, 99, 88, 94, 93, 82, 85, 85, 76, 74, 73, 64, 90, 89, 80, 87, 86, 77, 61, 60, 51, 99, 98, 90, 87, 89, 79, 82, 81, 72, 71, 71, 62, 71, 71, 62, 80, 79, 70, 70, 70, 59, 64, 64, 53, 62, 62, 50, 83, 83, 71, 59, 58, 47, 84, 84, 72, 107, 104, 94, 63, 63, 52, 59, 56, 46, 83, 83, 71, 73, 70, 60, 104, 102, 91, 61, 59, 48, 108, 105, 95, 71, 68, 57, 85, 85, 74, 85, 85, 74, 73, 72, 61, 78, 78, 67, 77, 77, 65, 82, 81, 70, 70, 70, 59, 68, 67, 58, 70, 69, 61, 64, 64, 53, 88, 87, 78, 140, 139, 130, 106, 105, 97, 106, 105, 97, 82, 81, 70, 99, 98, 90, 89, 88, 79, 87, 86, 77, 69, 70, 61, 79, 81, 71, 63, 64, 57, 64, 64, 55, 57, 59, 49, 39, 43, 33, 36, 39, 31, 44, 47, 39, 45, 48, 43, 48, 52, 46, 33, 39, 32, 46, 49, 44, 46, 51, 45, 50, 56, 49, 59, 62, 56, 58, 61, 55, 82, 85, 80, 80, 83, 77, 79, 82, 76, 99, 102, 96, 94, 97, 91, 161, 165, 159, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 225, 223, 210, 224, 222, 209, 221, 218, 205, 220, 217, 204, 217, 215, 202, 217, 214, 204, 220, 217, 206, 219, 216, 203, 219, 216, 205, 228, 225, 213, 223, 221, 208, 217, 216, 205, 222, 221, 208, 222, 221, 208, 226, 226, 213, 230, 230, 216, 234, 234, 221, 237, 235, 222, 236, 234, 221, 142, 142, 129, 17, 14, 4, 83, 83, 71, 72, 74, 62, 87, 89, 77, 71, 73, 63, 77, 78, 69, 65, 67, 57, 71, 73, 63, 60, 62, 52, 51, 52, 45, 62, 61, 52, 52, 50, 44, 57, 53, 48, 47, 46, 37, 46, 45, 38, 55, 54, 48, 59, 57, 51, 44, 45, 38, 53, 55, 48, 45, 47, 37, 36, 38, 28, 31, 33, 23, 49, 50, 43, 42, 43, 36, 34, 35, 26, 38, 36, 30, 45, 44, 35, 50, 52, 42, 50, 50, 41, 41, 40, 32, 43, 45, 35, 62, 63, 54, 47, 48, 39, 43, 43, 34, 41, 40, 32, 36, 38, 28, 70, 70, 59, 41, 41, 29, 38, 40, 28, 57, 57, 46, 44, 46, 36, 55, 55, 43, 55, 55, 43, 56, 55, 47, 62, 64, 52, 57, 57, 46, 66, 65, 54, 66, 68, 56, 70, 70, 59, 60, 62, 50, 69, 71, 59, 42, 44, 32, 67, 69, 57, 42, 44, 32, 48, 50, 38, 55, 57, 45, 62, 62, 50, 56, 58, 46, 62, 64, 52, 77, 77, 64, 79, 76, 65, 68, 68, 54, 72, 69, 59, 68, 66, 53, 61, 59, 46, 65, 62, 52, 68, 66, 55, 80, 77, 67, 64, 61, 48, 82, 79, 69, 79, 76, 65, 59, 56, 46, 67, 64, 54, 60, 57, 47, 81, 78, 68, 53, 50, 40, 51, 48, 38, 73, 70, 62, 67, 64, 56, 86, 83, 72, 88, 85, 77, 95, 92, 84, 53, 50, 40, 67, 64, 54, 64, 64, 53, 66, 65, 54, 64, 64, 53, 62, 64, 52, 53, 55, 46, 85, 87, 77, 69, 70, 61, 85, 87, 77, 68, 67, 58, 53, 52, 43, 78, 78, 69, 66, 65, 56, 57, 57, 46, 56, 56, 45, 82, 81, 70, 70, 67, 56, 80, 79, 68, 75, 73, 62, 63, 63, 52, 49, 49, 38, 63, 60, 49, 84, 84, 72, 62, 62, 50, 81, 80, 69, 50, 50, 39, 64, 64, 53, 55, 55, 43, 58, 55, 45, 81, 80, 69, 63, 60, 49, 82, 81, 70, 74, 74, 60, 91, 88, 77, 63, 63, 50, 72, 69, 57, 84, 84, 72, 59, 58, 47, 57, 54, 43, 85, 82, 71, 63, 60, 49, 71, 71, 60, 82, 81, 70, 92, 92, 81, 64, 64, 53, 81, 80, 69, 55, 55, 43, 91, 91, 80, 73, 72, 61, 66, 65, 54, 80, 79, 70, 83, 82, 73, 71, 71, 62, 74, 73, 64, 84, 83, 75, 91, 90, 82, 81, 80, 71, 61, 60, 51, 96, 95, 86, 83, 82, 73, 76, 76, 64, 96, 95, 84, 110, 109, 98, 100, 100, 89, 78, 78, 69, 88, 87, 78, 95, 92, 82, 82, 81, 70, 120, 117, 106, 96, 95, 84, 67, 66, 55, 91, 88, 77, 92, 89, 78, 73, 70, 60, 99, 96, 85, 80, 77, 67, 64, 64, 53, 77, 77, 65, 75, 73, 62, 108, 107, 96, 63, 63, 52, 78, 78, 67, 111, 110, 101, 75, 74, 65, 66, 65, 54, 78, 78, 67, 99, 98, 90, 60, 58, 52, 60, 58, 52, 83, 82, 75, 80, 78, 72, 94, 92, 86, 49, 50, 43, 67, 72, 66, 58, 61, 53, 44, 47, 41, 45, 48, 43, 31, 35, 27, 42, 45, 37, 39, 45, 36, 46, 50, 42, 54, 57, 52, 62, 66, 58, 71, 77, 68, 88, 92, 84, 83, 87, 79, 80, 83, 75, 85, 88, 80, 94, 97, 89, 114, 117, 109, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 222, 220, 207, 217, 215, 202, 215, 213, 200, 222, 219, 209, 219, 216, 205, 220, 217, 206, 224, 221, 211, 220, 217, 206, 222, 220, 207, 221, 218, 205, 219, 216, 203, 222, 220, 207, 219, 219, 205, 222, 221, 208, 225, 225, 211, 228, 225, 213, 234, 234, 221, 237, 235, 222, 231, 231, 217, 43, 43, 30, 68, 67, 56, 94, 93, 82, 85, 87, 75, 78, 82, 69, 76, 77, 68, 52, 54, 44, 76, 77, 68, 70, 71, 62, 45, 47, 37, 49, 48, 42, 61, 58, 52, 54, 53, 46, 49, 45, 37, 54, 51, 45, 50, 49, 43, 49, 48, 42, 54, 53, 46, 47, 46, 37, 34, 35, 28, 45, 43, 37, 19, 20, 13, 52, 54, 46, 34, 33, 27, 38, 40, 32, 52, 50, 44, 46, 45, 38, 47, 46, 39, 49, 48, 42, 49, 48, 40, 55, 54, 46, 59, 58, 49, 62, 63, 54, 48, 49, 40, 41, 40, 32, 52, 51, 42, 52, 54, 44, 43, 45, 33, 52, 54, 42, 48, 50, 38, 57, 59, 47, 51, 53, 41, 66, 68, 56, 56, 58, 46, 52, 54, 42, 71, 71, 60, 48, 48, 36, 71, 71, 60, 52, 52, 38, 57, 57, 46, 56, 56, 45, 70, 70, 59, 66, 65, 54, 59, 58, 47, 58, 60, 48, 48, 48, 36, 70, 70, 59, 66, 65, 54, 69, 69, 57, 68, 67, 56, 57, 54, 43, 60, 59, 48, 78, 75, 62, 60, 58, 45, 56, 53, 40, 60, 58, 45, 75, 73, 62, 75, 73, 62, 64, 61, 50, 64, 61, 50, 56, 53, 42, 93, 90, 80, 89, 86, 76, 44, 41, 31, 61, 59, 48, 65, 62, 52, 56, 53, 42, 88, 85, 75, 75, 73, 62, 77, 73, 65, 60, 57, 47, 51, 48, 38, 73, 70, 60, 72, 69, 59, 51, 48, 38, 50, 47, 36, 70, 70, 59, 60, 59, 48, 63, 62, 54, 80, 79, 70, 64, 66, 56, 62, 63, 54, 47, 46, 37, 70, 71, 62, 84, 83, 75, 66, 65, 56, 56, 55, 47, 59, 58, 49, 88, 87, 78, 67, 66, 57, 75, 73, 62, 58, 55, 45, 79, 76, 65, 66, 63, 53, 64, 61, 50, 73, 70, 60, 63, 60, 49, 74, 71, 61, 59, 56, 46, 52, 51, 40, 71, 71, 60, 77, 77, 65, 72, 69, 59, 61, 59, 48, 94, 91, 81, 75, 73, 62, 58, 55, 45, 64, 61, 50, 56, 56, 45, 66, 63, 53, 91, 91, 80, 80, 79, 68, 53, 50, 40, 60, 59, 48, 83, 83, 71, 68, 67, 56, 68, 67, 56, 69, 69, 57, 87, 86, 75, 75, 74, 63, 63, 63, 52, 56, 56, 45, 73, 72, 61, 66, 65, 56, 68, 67, 58, 71, 71, 62, 67, 66, 57, 88, 87, 78, 100, 100, 91, 87, 86, 77, 99, 98, 90, 85, 85, 76, 59, 58, 49, 71, 71, 62, 100, 100, 89, 103, 100, 90, 83, 81, 70, 85, 85, 74, 81, 78, 68, 63, 60, 49, 64, 60, 52, 70, 67, 56, 89, 88, 77, 87, 84, 74, 82, 79, 69, 81, 78, 68, 95, 92, 82, 97, 95, 84, 89, 86, 76, 83, 81, 70, 96, 95, 84, 111, 110, 99, 85, 82, 71, 92, 92, 81, 111, 110, 99, 74, 73, 62, 62, 61, 52, 66, 65, 56, 77, 78, 69, 85, 87, 77, 51, 53, 43, 59, 61, 53, 66, 64, 58, 60, 58, 52, 62, 60, 56, 47, 45, 41, 45, 46, 41, 42, 45, 39, 43, 49, 43, 36, 42, 34, 53, 58, 52, 48, 54, 47, 48, 54, 45, 67, 72, 66, 69, 73, 65, 74, 77, 72, 82, 86, 78, 89, 93, 85, 85, 88, 80, 110, 114, 106, 245, 249, 241, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 223, 223, 209, 220, 217, 204, 217, 217, 203, 216, 215, 204, 216, 215, 204, 219, 216, 205, 221, 218, 207, 222, 221, 210, 220, 217, 206, 220, 217, 206, 219, 219, 205, 222, 220, 207, 219, 219, 207, 223, 223, 209, 225, 225, 211, 231, 229, 216, 240, 240, 226, 231, 229, 216, 197, 197, 183, 12, 12, 0, 93, 90, 80, 92, 92, 81, 72, 74, 64, 64, 66, 54, 71, 73, 63, 64, 66, 56, 72, 74, 64, 45, 47, 37, 43, 45, 35, 35, 36, 27, 51, 47, 42, 47, 46, 39, 59, 55, 50, 54, 51, 43, 34, 33, 27, 45, 41, 36, 50, 49, 43, 59, 57, 51, 41, 40, 34, 48, 47, 41, 43, 43, 34, 46, 45, 36, 44, 45, 38, 30, 31, 24, 46, 45, 38, 17, 19, 11, 44, 45, 38, 51, 52, 45, 57, 58, 51, 38, 40, 30, 47, 46, 37, 56, 55, 47, 50, 50, 41, 50, 50, 41, 53, 52, 43, 40, 41, 32, 43, 45, 33, 44, 46, 34, 50, 52, 40, 53, 55, 46, 51, 53, 41, 48, 50, 38, 53, 55, 43, 67, 69, 57, 54, 53, 44, 56, 56, 45, 64, 64, 53, 62, 62, 50, 54, 53, 42, 68, 67, 56, 62, 62, 50, 74, 73, 62, 66, 65, 54, 45, 44, 33, 73, 72, 61, 55, 54, 46, 69, 69, 57, 56, 56, 45, 54, 53, 42, 69, 68, 60, 64, 64, 53, 67, 64, 54, 64, 64, 51, 67, 64, 54, 73, 70, 60, 66, 63, 53, 57, 54, 43, 74, 71, 61, 51, 48, 38, 74, 71, 61, 86, 83, 72, 63, 60, 49, 54, 52, 41, 70, 67, 56, 72, 69, 59, 86, 83, 72, 66, 63, 53, 67, 64, 54, 58, 55, 45, 68, 66, 55, 47, 45, 34, 59, 57, 44, 54, 52, 39, 74, 72, 59, 77, 74, 63, 81, 80, 69, 94, 93, 80, 64, 66, 54, 98, 98, 86, 83, 82, 73, 50, 52, 42, 55, 57, 45, 89, 88, 79, 56, 55, 47, 59, 58, 49, 66, 65, 56, 64, 64, 55, 78, 78, 69, 76, 76, 64, 70, 69, 61, 80, 77, 67, 80, 77, 67, 75, 73, 62, 92, 89, 78, 60, 57, 47, 71, 68, 57, 50, 47, 36, 56, 53, 42, 86, 83, 72, 57, 54, 43, 86, 83, 72, 75, 73, 62, 57, 54, 43, 50, 47, 36, 81, 78, 68, 70, 67, 56, 75, 73, 62, 73, 70, 60, 68, 67, 56, 84, 84, 72, 82, 81, 70, 83, 83, 71, 84, 84, 72, 70, 69, 61, 88, 87, 78, 66, 65, 56, 60, 59, 50, 69, 69, 57, 70, 69, 61, 59, 58, 49, 92, 92, 83, 73, 72, 63, 75, 74, 65, 68, 67, 58, 87, 86, 77, 74, 73, 64, 64, 64, 55, 75, 74, 65, 81, 80, 71, 90, 89, 80, 80, 79, 70, 82, 81, 72, 89, 88, 79, 60, 59, 50, 73, 72, 61, 84, 84, 72, 64, 64, 53, 71, 71, 62, 91, 90, 82, 81, 80, 71, 76, 76, 64, 103, 102, 91, 62, 62, 50, 89, 86, 76, 111, 109, 98, 74, 71, 61, 79, 76, 65, 79, 76, 65, 88, 85, 75, 85, 82, 71, 94, 91, 81, 101, 98, 88, 87, 84, 74, 102, 101, 90, 68, 67, 56, 89, 88, 79, 73, 75, 65, 60, 62, 52, 53, 57, 47, 52, 56, 46, 55, 56, 49, 49, 50, 43, 50, 53, 45, 47, 50, 45, 44, 47, 41, 36, 42, 36, 46, 51, 45, 62, 68, 61, 60, 66, 57, 50, 56, 49, 62, 68, 59, 58, 61, 53, 73, 76, 68, 80, 83, 75, 93, 96, 88, 186, 189, 181, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 220, 221, 205, 219, 219, 205, 220, 217, 204, 219, 216, 203, 217, 216, 205, 213, 213, 202, 215, 212, 202, 215, 214, 203, 219, 219, 207, 215, 214, 203, 219, 219, 205, 218, 218, 204, 219, 219, 207, 219, 219, 205, 224, 224, 210, 230, 230, 216, 233, 233, 220, 231, 231, 217, 134, 134, 123, 55, 55, 43, 75, 74, 63, 85, 85, 74, 79, 81, 71, 74, 76, 64, 74, 76, 66, 74, 76, 66, 64, 66, 56, 53, 55, 46, 63, 62, 54, 56, 55, 47, 45, 43, 37, 51, 47, 42, 45, 41, 36, 63, 59, 53, 63, 59, 53, 47, 46, 39, 47, 46, 39, 23, 24, 17, 28, 27, 21, 43, 44, 37, 53, 52, 45, 28, 30, 20, 56, 55, 49, 41, 42, 35, 49, 48, 42, 53, 52, 45, 35, 36, 29, 50, 51, 44, 51, 52, 45, 50, 52, 42, 53, 52, 43, 38, 40, 30, 36, 38, 28, 35, 37, 25, 34, 36, 24, 38, 40, 28, 45, 47, 35, 41, 43, 31, 47, 48, 36, 55, 57, 45, 56, 58, 46, 45, 47, 35, 47, 48, 36, 61, 60, 51, 55, 55, 43, 62, 62, 50, 60, 59, 48, 60, 59, 48, 57, 57, 46, 53, 52, 41, 77, 77, 65, 66, 65, 54, 61, 60, 49, 56, 56, 45, 48, 47, 39, 68, 67, 56, 71, 71, 62, 43, 43, 32, 62, 62, 50, 56, 56, 45, 61, 60, 49, 66, 63, 53, 64, 61, 50, 65, 62, 52, 60, 57, 47, 71, 68, 57, 51, 48, 38, 45, 42, 32, 44, 41, 31, 68, 66, 55, 49, 46, 35, 53, 50, 40, 82, 79, 69, 59, 56, 46, 63, 60, 49, 87, 84, 74, 80, 77, 67, 81, 78, 68, 59, 56, 46, 75, 73, 62, 58, 55, 45, 59, 57, 44, 66, 63, 53, 57, 54, 43, 66, 63, 53, 72, 69, 59, 56, 56, 43, 73, 72, 61, 61, 60, 49, 68, 67, 56, 87, 86, 75, 57, 57, 46, 69, 71, 59, 62, 62, 50, 59, 58, 47, 73, 72, 63, 71, 71, 62, 61, 60, 51, 73, 72, 63, 70, 69, 61, 56, 55, 47, 85, 82, 71, 93, 90, 80, 66, 63, 53, 56, 53, 42, 61, 60, 49, 59, 58, 47, 52, 51, 40, 57, 54, 43, 62, 62, 50, 71, 68, 57, 82, 79, 69, 65, 62, 52, 83, 81, 70, 63, 60, 49, 52, 49, 39, 71, 68, 57, 79, 76, 65, 77, 74, 63, 75, 74, 63, 49, 49, 38, 55, 54, 46, 95, 94, 83, 60, 59, 50, 81, 80, 69, 55, 54, 46, 71, 71, 60, 81, 80, 71, 68, 67, 58, 73, 72, 63, 68, 67, 58, 91, 90, 82, 52, 51, 42, 81, 80, 71, 63, 62, 54, 92, 92, 83, 85, 85, 76, 73, 72, 63, 81, 80, 71, 105, 104, 96, 87, 86, 77, 82, 81, 72, 85, 85, 76, 93, 95, 83, 71, 73, 61, 69, 69, 57, 82, 81, 72, 95, 94, 83, 95, 94, 83, 82, 81, 72, 83, 83, 71, 87, 86, 75, 81, 80, 69, 92, 92, 81, 94, 93, 82, 67, 64, 54, 87, 84, 76, 76, 76, 64, 92, 89, 78, 63, 63, 52, 59, 58, 47, 80, 79, 68, 70, 69, 61, 69, 71, 59, 51, 55, 44, 55, 57, 45, 50, 52, 42, 52, 56, 46, 39, 43, 33, 46, 50, 42, 46, 50, 42, 42, 45, 37, 43, 46, 40, 68, 71, 66, 53, 56, 51, 60, 63, 58, 45, 50, 44, 69, 75, 68, 94, 97, 91, 88, 92, 84, 115, 118, 110, 255, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 216, 214, 199, 216, 214, 201, 216, 216, 202, 217, 216, 205, 218, 218, 206, 211, 211, 199, 210, 209, 198, 213, 213, 202, 216, 213, 203, 216, 213, 203, 216, 216, 202, 217, 217, 203, 218, 218, 204, 217, 217, 203, 217, 217, 203, 229, 228, 217, 230, 229, 218, 222, 221, 210, 33, 32, 23, 81, 83, 71, 91, 90, 82, 80, 79, 70, 75, 74, 65, 73, 75, 63, 59, 58, 49, 54, 53, 44, 64, 66, 56, 47, 51, 41, 48, 49, 40, 49, 48, 40, 66, 65, 56, 54, 51, 43, 35, 34, 28, 33, 32, 25, 48, 47, 41, 46, 45, 38, 38, 40, 30, 53, 55, 48, 47, 48, 39, 36, 38, 28, 43, 43, 34, 41, 42, 33, 37, 38, 31, 43, 43, 34, 50, 51, 44, 47, 48, 41, 22, 23, 16, 44, 45, 38, 42, 43, 34, 29, 31, 21, 41, 42, 33, 48, 49, 40, 47, 46, 37, 45, 44, 35, 39, 38, 29, 42, 43, 34, 53, 55, 43, 32, 31, 22, 48, 49, 40, 54, 53, 42, 45, 47, 35, 58, 60, 48, 69, 69, 57, 62, 61, 52, 60, 59, 48, 61, 60, 49, 64, 64, 53, 59, 58, 47, 67, 66, 55, 59, 58, 47, 68, 67, 56, 63, 63, 52, 60, 59, 48, 53, 52, 41, 62, 62, 50, 81, 80, 69, 50, 47, 39, 54, 53, 42, 60, 57, 47, 72, 69, 59, 59, 56, 46, 74, 71, 61, 62, 62, 50, 59, 56, 46, 72, 69, 59, 65, 62, 54, 73, 70, 60, 63, 60, 49, 58, 55, 45, 82, 79, 69, 66, 63, 53, 56, 53, 42, 67, 66, 55, 63, 60, 49, 59, 56, 46, 71, 68, 57, 60, 57, 47, 66, 63, 53, 57, 54, 43, 85, 82, 71, 44, 41, 31, 74, 71, 61, 87, 85, 72, 40, 38, 25, 85, 82, 69, 79, 76, 65, 89, 89, 75, 84, 84, 72, 64, 64, 53, 64, 64, 53, 64, 64, 53, 71, 71, 60, 70, 70, 59, 71, 71, 60, 76, 76, 64, 47, 46, 35, 56, 56, 45, 61, 60, 49, 69, 69, 57, 59, 58, 49, 73, 72, 61, 88, 87, 76, 73, 72, 61, 68, 66, 55, 80, 77, 67, 78, 75, 64, 68, 67, 56, 71, 71, 60, 81, 78, 68, 60, 59, 48, 80, 77, 67, 58, 55, 45, 61, 59, 48, 67, 64, 54, 85, 81, 73, 79, 76, 68, 77, 74, 63, 81, 78, 68, 86, 83, 72, 69, 68, 60, 73, 70, 62, 75, 72, 64, 64, 64, 53, 67, 66, 57, 73, 72, 63, 99, 98, 90, 67, 66, 57, 74, 73, 64, 80, 79, 70, 62, 61, 52, 64, 66, 56, 74, 73, 64, 88, 87, 78, 82, 81, 72, 61, 60, 51, 92, 92, 83, 77, 76, 68, 73, 72, 63, 94, 93, 84, 108, 107, 98, 87, 86, 77, 67, 69, 60, 77, 78, 69, 92, 92, 83, 81, 83, 71, 85, 87, 75, 75, 74, 65, 81, 80, 69, 84, 84, 72, 78, 78, 67, 70, 70, 59, 80, 82, 70, 77, 77, 65, 54, 53, 44, 61, 60, 51, 83, 83, 71, 61, 60, 51, 70, 67, 56, 69, 68, 60, 58, 60, 50, 62, 63, 54, 46, 45, 36, 52, 54, 44, 47, 51, 41, 50, 54, 43, 47, 51, 41, 39, 43, 33, 44, 48, 37, 40, 44, 34, 52, 56, 46, 59, 63, 52, 65, 69, 58, 68, 72, 62, 80, 84, 73, 80, 84, 73, 92, 94, 84, 95, 99, 89, 231, 235, 227, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 219, 216, 201, 219, 216, 203, 219, 216, 203, 217, 214, 204, 221, 218, 207, 215, 214, 203, 216, 213, 203, 212, 212, 201, 213, 213, 202, 217, 216, 205, 217, 215, 202, 216, 216, 202, 213, 213, 200, 216, 216, 202, 217, 217, 203, 227, 227, 214, 224, 223, 212, 183, 183, 169, 17, 19, 9, 81, 83, 71, 83, 85, 72, 63, 65, 53, 74, 76, 66, 76, 78, 65, 63, 65, 53, 65, 67, 57, 53, 55, 46, 48, 47, 39, 25, 24, 15, 56, 58, 46, 54, 53, 44, 40, 39, 30, 43, 42, 36, 47, 46, 39, 54, 53, 44, 40, 39, 32, 40, 39, 30, 35, 36, 27, 45, 44, 35, 36, 36, 27, 41, 40, 32, 45, 44, 35, 27, 28, 19, 54, 53, 44, 31, 30, 21, 46, 45, 36, 33, 32, 23, 62, 63, 54, 52, 51, 42, 41, 40, 32, 28, 27, 19, 48, 47, 39, 45, 44, 35, 49, 48, 40, 50, 50, 41, 61, 60, 51, 52, 54, 44, 46, 45, 36, 39, 38, 29, 57, 53, 46, 46, 45, 34, 54, 53, 42, 50, 54, 41, 34, 36, 24, 56, 56, 45, 54, 53, 42, 61, 60, 49, 59, 58, 47, 61, 60, 49, 56, 56, 45, 63, 63, 52, 76, 76, 62, 55, 55, 43, 61, 60, 49, 66, 63, 53, 55, 54, 46, 56, 56, 45, 59, 58, 47, 59, 56, 46, 82, 79, 69, 73, 70, 60, 67, 64, 54, 54, 53, 42, 52, 49, 39, 73, 70, 60, 68, 65, 57, 65, 62, 52, 53, 50, 40, 65, 62, 52, 57, 54, 43, 63, 60, 49, 75, 73, 62, 53, 50, 42, 78, 75, 64, 73, 72, 61, 52, 49, 39, 62, 62, 50, 82, 79, 69, 49, 46, 35, 60, 57, 47, 53, 50, 40, 59, 58, 47, 83, 81, 68, 65, 62, 52, 57, 54, 43, 56, 53, 42, 91, 91, 78, 61, 60, 49, 49, 49, 38, 83, 81, 70, 72, 69, 59, 94, 93, 82, 77, 74, 63, 61, 59, 48, 35, 34, 26, 74, 73, 64, 75, 74, 63, 73, 72, 61, 66, 65, 56, 46, 45, 34, 54, 53, 42, 80, 79, 68, 67, 64, 54, 79, 76, 65, 85, 82, 71, 70, 70, 59, 73, 72, 61, 67, 64, 54, 79, 76, 65, 74, 71, 61, 64, 61, 50, 74, 71, 63, 51, 48, 40, 58, 55, 45, 78, 74, 66, 74, 73, 64, 74, 71, 63, 88, 85, 77, 80, 79, 70, 71, 71, 62, 63, 62, 54, 67, 66, 57, 57, 57, 48, 54, 53, 44, 82, 81, 72, 70, 69, 61, 59, 58, 49, 81, 80, 71, 74, 73, 64, 63, 62, 54, 76, 75, 66, 90, 89, 80, 81, 80, 71, 85, 85, 76, 69, 68, 60, 83, 82, 73, 87, 86, 77, 61, 58, 50, 89, 88, 79, 89, 88, 79, 59, 58, 49, 76, 77, 68, 86, 88, 78, 90, 91, 82, 75, 74, 63, 94, 93, 82, 90, 90, 78, 82, 81, 70, 85, 85, 74, 68, 67, 56, 81, 80, 69, 77, 77, 65, 77, 76, 68, 82, 81, 72, 113, 114, 105, 62, 61, 52, 71, 67, 60, 64, 64, 55, 36, 38, 28, 58, 60, 50, 48, 49, 40, 55, 56, 47, 47, 48, 39, 47, 51, 41, 51, 55, 44, 59, 63, 52, 58, 62, 51, 71, 75, 64, 65, 69, 56, 73, 77, 66, 86, 90, 77, 88, 92, 80, 100, 102, 90, 146, 150, 138, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 213, 211, 195, 220, 218, 202, 215, 213, 200, 216, 216, 202, 212, 209, 198, 210, 208, 197, 212, 209, 198, 212, 212, 201, 214, 211, 201, 215, 212, 202, 217, 216, 205, 213, 213, 202, 210, 210, 196, 219, 219, 205, 222, 221, 208, 222, 221, 210, 219, 219, 207, 108, 107, 96, 66, 68, 58, 85, 85, 74, 83, 85, 72, 62, 64, 52, 59, 61, 49, 63, 64, 55, 60, 62, 52, 62, 63, 54, 58, 60, 50, 51, 53, 43, 51, 53, 43, 53, 52, 41, 34, 33, 25, 50, 50, 39, 50, 50, 39, 48, 48, 36, 41, 41, 29, 56, 55, 47, 53, 52, 43, 34, 35, 26, 38, 37, 28, 40, 39, 30, 42, 41, 33, 46, 45, 36, 38, 40, 30, 45, 47, 37, 54, 53, 44, 35, 34, 26, 35, 36, 27, 33, 34, 25, 61, 60, 51, 58, 55, 47, 42, 41, 33, 44, 41, 33, 50, 50, 41, 49, 48, 40, 39, 38, 29, 48, 47, 39, 52, 51, 42, 60, 62, 52, 42, 41, 33, 49, 48, 40, 55, 55, 43, 52, 51, 40, 58, 60, 48, 56, 58, 46, 55, 57, 45, 56, 58, 46, 44, 46, 34, 59, 58, 47, 44, 46, 34, 55, 55, 43, 53, 52, 41, 59, 58, 47, 60, 59, 48, 63, 63, 52, 61, 60, 49, 50, 50, 39, 59, 58, 47, 64, 64, 53, 60, 59, 48, 57, 53, 46, 82, 81, 70, 51, 48, 38, 57, 53, 46, 68, 66, 55, 57, 57, 46, 53, 52, 43, 71, 71, 60, 61, 60, 49, 70, 67, 56, 54, 53, 42, 53, 52, 41, 71, 71, 60, 67, 66, 55, 61, 60, 49, 43, 43, 32, 57, 54, 43, 85, 82, 71, 83, 81, 68, 78, 75, 64, 91, 88, 77, 80, 77, 67, 71, 68, 55, 56, 56, 43, 45, 44, 33, 82, 81, 70, 60, 59, 48, 36, 36, 25, 64, 64, 53, 64, 64, 53, 92, 89, 78, 70, 67, 56, 57, 57, 46, 66, 63, 53, 73, 70, 60, 85, 85, 74, 82, 81, 70, 49, 49, 38, 77, 77, 65, 59, 58, 47, 48, 48, 36, 91, 91, 80, 78, 78, 67, 88, 87, 76, 78, 78, 67, 83, 82, 73, 78, 75, 64, 50, 50, 39, 61, 59, 48, 63, 60, 49, 77, 74, 63, 71, 68, 57, 77, 74, 63, 68, 65, 57, 77, 74, 63, 79, 76, 68, 66, 63, 55, 74, 71, 63, 75, 73, 62, 80, 77, 67, 82, 81, 70, 67, 66, 55, 61, 60, 51, 82, 81, 70, 80, 79, 70, 82, 81, 70, 63, 62, 54, 69, 68, 60, 78, 78, 69, 80, 79, 70, 76, 77, 68, 64, 64, 55, 91, 90, 82, 75, 74, 65, 88, 87, 78, 88, 87, 78, 68, 67, 58, 63, 62, 54, 85, 85, 76, 83, 82, 73, 70, 69, 61, 76, 75, 66, 83, 84, 75, 77, 78, 69, 84, 85, 76, 65, 67, 57, 73, 75, 65, 77, 79, 67, 71, 73, 61, 77, 78, 69, 86, 88, 78, 76, 78, 65, 71, 73, 61, 73, 72, 63, 72, 74, 64, 64, 66, 56, 55, 56, 47, 45, 49, 39, 56, 57, 48, 42, 43, 34, 45, 47, 37, 58, 60, 50, 62, 63, 54, 65, 69, 58, 70, 71, 62, 81, 83, 73, 86, 88, 76, 94, 96, 86, 94, 96, 84, 95, 97, 85, 244, 246, 234, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 215, 213, 198, 215, 213, 198, 214, 211, 199, 207, 204, 192, 209, 207, 194, 213, 210, 199, 214, 211, 201, 210, 208, 197, 209, 207, 194, 210, 209, 198, 213, 213, 200, 211, 211, 199, 211, 211, 199, 213, 213, 202, 217, 216, 205, 215, 214, 201, 210, 209, 198, 23, 22, 13, 76, 75, 66, 79, 81, 71, 80, 82, 72, 67, 69, 57, 67, 69, 60, 58, 60, 50, 52, 54, 44, 47, 48, 39, 70, 71, 62, 58, 55, 47, 53, 52, 43, 41, 41, 29, 43, 40, 29, 40, 38, 27, 53, 52, 41, 38, 37, 26, 36, 36, 25, 48, 47, 39, 41, 40, 32, 35, 36, 27, 35, 34, 26, 30, 29, 20, 28, 30, 20, 36, 36, 27, 38, 37, 28, 39, 38, 29, 43, 45, 35, 36, 36, 27, 36, 38, 28, 53, 55, 46, 35, 34, 26, 34, 33, 25, 42, 38, 30, 40, 39, 30, 38, 37, 28, 42, 41, 33, 45, 44, 35, 45, 44, 35, 45, 44, 35, 68, 67, 58, 54, 53, 44, 54, 53, 42, 55, 55, 43, 50, 50, 39, 41, 41, 29, 63, 63, 52, 73, 75, 63, 40, 41, 29, 51, 53, 41, 56, 56, 45, 57, 59, 47, 51, 53, 41, 60, 59, 48, 48, 50, 38, 57, 57, 46, 52, 51, 40, 55, 55, 43, 61, 60, 49, 69, 69, 57, 68, 67, 56, 55, 54, 46, 59, 58, 47, 63, 60, 49, 66, 63, 53, 68, 67, 58, 49, 46, 35, 49, 48, 40, 71, 71, 60, 77, 77, 65, 55, 55, 43, 38, 37, 26, 64, 61, 50, 55, 55, 43, 71, 71, 60, 45, 44, 33, 74, 73, 62, 57, 57, 46, 56, 56, 45, 47, 46, 35, 78, 78, 67, 57, 57, 46, 47, 46, 35, 43, 43, 32, 61, 60, 49, 76, 76, 64, 60, 59, 48, 85, 85, 74, 78, 78, 67, 67, 66, 55, 54, 53, 42, 46, 45, 34, 75, 74, 63, 53, 50, 40, 82, 81, 70, 74, 71, 61, 92, 89, 78, 78, 75, 64, 51, 48, 38, 81, 80, 69, 46, 45, 34, 74, 73, 62, 89, 88, 77, 61, 60, 49, 77, 77, 65, 53, 50, 40, 81, 78, 68, 75, 74, 63, 53, 52, 41, 88, 85, 75, 65, 62, 52, 81, 78, 68, 53, 50, 40, 80, 77, 67, 77, 74, 63, 62, 61, 52, 78, 75, 64, 69, 68, 60, 82, 81, 72, 57, 53, 46, 79, 76, 65, 70, 66, 58, 74, 73, 64, 75, 74, 65, 77, 73, 65, 76, 76, 64, 65, 62, 54, 68, 67, 56, 77, 76, 68, 70, 69, 61, 76, 76, 64, 69, 68, 60, 80, 79, 70, 83, 82, 73, 70, 69, 61, 67, 66, 57, 87, 86, 77, 70, 69, 61, 76, 75, 66, 75, 74, 65, 75, 72, 64, 82, 81, 72, 76, 75, 66, 91, 92, 83, 62, 63, 54, 94, 96, 86, 56, 57, 48, 83, 84, 75, 78, 80, 68, 67, 69, 60, 54, 58, 48, 64, 66, 54, 58, 60, 50, 66, 68, 58, 45, 47, 37, 48, 52, 42, 55, 56, 47, 48, 49, 40, 38, 42, 32, 41, 42, 33, 57, 59, 49, 52, 56, 46, 62, 63, 54, 76, 77, 68, 66, 68, 56, 73, 75, 63, 106, 108, 96, 123, 125, 113, 241, 243, 231, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 217, 215, 202, 216, 214, 201, 213, 210, 197, 210, 208, 195, 210, 208, 195, 213, 210, 199, 213, 210, 199, 212, 209, 198, 212, 209, 198, 208, 207, 196, 206, 206, 193, 210, 209, 198, 210, 209, 198, 213, 210, 199, 212, 212, 201, 203, 202, 191, 183, 183, 171, 68, 67, 56, 87, 86, 75, 77, 78, 69, 70, 72, 60, 72, 74, 62, 67, 69, 57, 65, 67, 55, 47, 51, 41, 52, 54, 44, 50, 52, 42, 45, 47, 37, 38, 40, 30, 56, 58, 46, 29, 31, 19, 34, 34, 22, 56, 53, 42, 46, 45, 34, 31, 33, 21, 47, 46, 37, 40, 41, 32, 59, 58, 49, 31, 30, 21, 28, 30, 20, 49, 50, 41, 29, 30, 23, 54, 53, 46, 41, 40, 34, 41, 40, 32, 43, 43, 34, 48, 49, 40, 34, 33, 25, 57, 53, 46, 28, 28, 17, 46, 43, 35, 49, 45, 37, 53, 50, 42, 43, 43, 34, 59, 58, 49, 53, 52, 43, 57, 57, 46, 43, 43, 32, 47, 46, 35, 49, 49, 38, 47, 46, 35, 55, 55, 43, 59, 58, 47, 64, 64, 53, 65, 67, 55, 57, 59, 47, 40, 41, 29, 53, 55, 43, 44, 46, 34, 53, 55, 43, 50, 52, 40, 52, 54, 42, 53, 52, 41, 53, 52, 41, 62, 62, 50, 57, 57, 46, 66, 65, 54, 64, 64, 53, 60, 59, 48, 50, 50, 41, 55, 54, 46, 55, 55, 43, 61, 58, 50, 63, 63, 52, 63, 60, 49, 56, 56, 45, 57, 57, 46, 61, 60, 49, 60, 57, 47, 64, 64, 53, 59, 58, 47, 57, 57, 46, 49, 49, 38, 39, 38, 27, 57, 57, 46, 70, 70, 59, 57, 57, 46, 67, 66, 55, 62, 62, 50, 67, 64, 54, 56, 56, 45, 59, 58, 47, 59, 58, 47, 69, 71, 59, 56, 58, 46, 53, 52, 41, 73, 72, 61, 48, 48, 36, 70, 70, 59, 68, 67, 56, 64, 64, 53, 39, 36, 26, 74, 71, 61, 89, 86, 76, 81, 78, 68, 82, 81, 70, 45, 42, 32, 66, 65, 54, 80, 79, 68, 51, 48, 38, 68, 67, 56, 78, 78, 67, 64, 64, 53, 81, 78, 68, 77, 74, 63, 61, 59, 48, 50, 50, 39, 74, 71, 61, 75, 73, 62, 75, 73, 62, 86, 83, 72, 71, 68, 57, 92, 88, 80, 73, 70, 62, 69, 68, 60, 75, 74, 63, 77, 76, 68, 59, 56, 46, 68, 65, 57, 76, 75, 66, 68, 67, 56, 73, 72, 63, 85, 85, 74, 70, 69, 61, 66, 65, 54, 73, 72, 61, 76, 76, 64, 76, 75, 66, 77, 77, 65, 77, 76, 68, 84, 83, 75, 84, 85, 76, 73, 75, 65, 95, 94, 85, 81, 80, 71, 67, 66, 57, 77, 76, 70, 74, 73, 64, 74, 72, 66, 75, 74, 67, 67, 66, 57, 63, 64, 55, 72, 74, 64, 63, 64, 55, 69, 70, 61, 64, 66, 56, 55, 56, 47, 55, 57, 45, 51, 53, 41, 48, 49, 40, 38, 40, 28, 46, 50, 38, 49, 50, 41, 52, 56, 46, 53, 57, 45, 87, 89, 77, 61, 65, 53, 71, 75, 62, 90, 92, 80, 105, 107, 95, 156, 158, 146, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 210, 208, 195, 210, 208, 195, 212, 209, 196, 213, 210, 197, 209, 207, 194, 209, 206, 196, 212, 212, 201, 213, 210, 199, 207, 204, 194, 212, 209, 196, 208, 206, 193, 207, 204, 194, 206, 203, 192, 208, 206, 193, 205, 205, 194, 206, 206, 195, 110, 109, 98, 62, 61, 52, 80, 79, 70, 78, 78, 69, 68, 67, 58, 57, 57, 48, 63, 64, 55, 57, 59, 49, 58, 60, 50, 60, 62, 52, 45, 47, 37, 45, 44, 35, 41, 40, 32, 50, 50, 41, 55, 54, 46, 46, 55, 43, 45, 42, 32, 35, 35, 24, 42, 42, 31, 35, 35, 24, 49, 48, 40, 38, 40, 30, 43, 43, 34, 42, 41, 33, 43, 43, 34, 53, 52, 43, 52, 51, 42, 34, 36, 24, 50, 50, 41, 49, 48, 40, 35, 37, 25, 38, 40, 28, 41, 43, 31, 35, 35, 24, 40, 39, 30, 37, 34, 24, 24, 21, 13, 42, 41, 33, 57, 57, 46, 43, 43, 32, 60, 59, 48, 52, 51, 40, 43, 43, 32, 52, 51, 40, 53, 52, 41, 61, 60, 49, 59, 58, 47, 56, 56, 45, 44, 46, 34, 55, 57, 45, 48, 50, 38, 50, 52, 40, 69, 71, 59, 59, 61, 49, 56, 58, 46, 55, 55, 43, 57, 57, 46, 56, 56, 45, 59, 58, 47, 63, 62, 54, 61, 60, 51, 57, 57, 48, 68, 67, 58, 75, 72, 64, 62, 61, 52, 60, 57, 47, 54, 51, 43, 63, 60, 49, 50, 50, 39, 66, 65, 54, 53, 52, 41, 63, 63, 52, 54, 53, 42, 45, 44, 33, 50, 50, 39, 62, 62, 50, 75, 74, 63, 57, 57, 46, 40, 39, 28, 47, 46, 35, 55, 55, 43, 53, 52, 41, 68, 67, 56, 58, 55, 45, 61, 60, 49, 65, 62, 52, 59, 58, 47, 66, 65, 54, 47, 46, 35, 57, 57, 46, 87, 86, 77, 54, 53, 42, 68, 67, 56, 76, 76, 64, 54, 53, 42, 64, 64, 53, 74, 71, 61, 95, 92, 82, 84, 84, 72, 71, 71, 60, 70, 70, 59, 61, 60, 49, 63, 63, 52, 105, 105, 94, 63, 63, 52, 59, 58, 47, 85, 82, 71, 49, 49, 38, 96, 95, 84, 68, 67, 56, 73, 70, 60, 87, 84, 74, 58, 55, 45, 72, 69, 59, 81, 78, 68, 83, 80, 72, 73, 70, 62, 85, 82, 71, 66, 63, 55, 71, 71, 60, 80, 79, 70, 70, 70, 59, 77, 77, 65, 83, 82, 73, 77, 77, 65, 66, 65, 54, 87, 86, 75, 63, 63, 52, 75, 74, 63, 75, 74, 63, 60, 59, 50, 57, 57, 48, 55, 54, 46, 74, 73, 62, 70, 69, 61, 79, 81, 71, 79, 81, 71, 73, 72, 63, 62, 63, 54, 72, 74, 64, 59, 57, 51, 84, 83, 77, 73, 71, 65, 67, 65, 59, 63, 62, 54, 65, 66, 59, 69, 70, 61, 57, 59, 49, 64, 66, 56, 43, 45, 35, 42, 43, 36, 47, 48, 41, 49, 50, 41, 58, 60, 50, 60, 62, 54, 58, 60, 50, 72, 74, 64, 72, 74, 62, 99, 101, 89, 97, 99, 84, 127, 129, 115, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 209, 207, 192, 210, 208, 195, 210, 208, 195, 208, 206, 193, 206, 203, 190, 206, 203, 192, 208, 205, 195, 204, 204, 192, 207, 204, 194, 207, 204, 194, 206, 203, 190, 201, 198, 188, 201, 198, 188, 206, 203, 192, 213, 210, 199, 198, 198, 187, 18, 17, 8, 88, 87, 76, 90, 89, 80, 80, 79, 70, 64, 64, 55, 78, 78, 69, 52, 54, 44, 52, 54, 44, 52, 56, 46, 47, 48, 39, 46, 50, 40, 50, 50, 41, 41, 40, 32, 35, 34, 26, 51, 48, 40, 45, 44, 35, 33, 32, 23, 33, 32, 23, 56, 53, 42, 36, 33, 22, 48, 47, 39, 24, 23, 12, 52, 51, 42, 41, 41, 29, 49, 49, 38, 45, 44, 33, 42, 42, 31, 42, 42, 31, 47, 47, 33, 61, 61, 47, 35, 35, 24, 36, 36, 25, 43, 40, 29, 45, 47, 37, 45, 44, 35, 50, 47, 36, 38, 37, 28, 34, 33, 25, 52, 49, 41, 50, 47, 36, 49, 49, 38, 52, 51, 40, 53, 52, 41, 38, 40, 28, 60, 59, 48, 56, 56, 45, 59, 58, 47, 48, 48, 36, 60, 59, 48, 64, 64, 53, 55, 57, 45, 36, 38, 26, 62, 64, 52, 60, 59, 48, 51, 53, 41, 55, 55, 41, 39, 38, 27, 59, 58, 47, 53, 52, 41, 67, 66, 55, 52, 51, 42, 52, 51, 42, 60, 59, 50, 59, 56, 48, 48, 47, 39, 62, 62, 50, 68, 66, 55, 56, 56, 45, 85, 82, 71, 36, 36, 25, 59, 58, 47, 71, 71, 60, 67, 66, 55, 56, 56, 45, 49, 49, 38, 47, 46, 35, 60, 59, 48, 59, 58, 47, 59, 58, 47, 66, 65, 54, 66, 65, 54, 52, 51, 40, 63, 63, 52, 53, 52, 41, 64, 61, 50, 62, 62, 50, 70, 70, 59, 57, 57, 46, 65, 67, 55, 53, 52, 41, 55, 55, 43, 70, 70, 59, 78, 78, 67, 55, 55, 43, 41, 41, 29, 59, 58, 47, 61, 60, 49, 85, 82, 71, 50, 47, 36, 59, 58, 47, 64, 61, 50, 80, 77, 67, 77, 77, 65, 54, 53, 42, 96, 93, 83, 67, 66, 55, 68, 66, 55, 73, 70, 60, 62, 62, 50, 62, 62, 50, 82, 81, 70, 87, 84, 74, 79, 76, 68, 48, 48, 36, 71, 68, 57, 61, 60, 49, 73, 72, 61, 80, 79, 68, 73, 72, 61, 62, 62, 50, 69, 69, 57, 61, 60, 51, 75, 74, 63, 67, 66, 55, 61, 60, 49, 67, 66, 55, 84, 84, 72, 71, 71, 62, 68, 67, 56, 77, 77, 65, 73, 72, 63, 80, 79, 70, 82, 81, 70, 66, 65, 56, 77, 76, 68, 52, 54, 44, 67, 69, 60, 72, 73, 66, 65, 66, 59, 63, 64, 57, 67, 69, 62, 60, 58, 52, 61, 60, 51, 54, 53, 46, 61, 60, 51, 58, 60, 50, 45, 47, 37, 52, 54, 44, 51, 53, 43, 55, 56, 47, 62, 63, 54, 52, 54, 44, 76, 78, 65, 92, 94, 84, 114, 116, 104, 104, 106, 94, 135, 137, 125, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 207, 205, 190, 207, 205, 190, 208, 206, 193, 209, 207, 194, 203, 203, 189, 200, 197, 185, 203, 201, 190, 203, 202, 191, 206, 203, 192, 203, 201, 190, 202, 199, 189, 199, 196, 185, 199, 196, 185, 207, 204, 194, 195, 192, 182, 167, 164, 156, 19, 18, 9, 82, 81, 72, 68, 67, 58, 74, 73, 64, 69, 68, 60, 57, 59, 49, 62, 63, 54, 47, 48, 39, 45, 47, 37, 47, 46, 37, 48, 49, 40, 45, 47, 37, 41, 40, 32, 49, 45, 37, 38, 35, 27, 57, 53, 46, 43, 40, 32, 36, 36, 27, 51, 48, 38, 40, 38, 27, 39, 36, 26, 31, 30, 19, 42, 42, 31, 28, 25, 14, 34, 34, 22, 57, 57, 44, 32, 32, 18, 42, 42, 29, 28, 28, 15, 55, 55, 41, 30, 33, 18, 42, 44, 30, 47, 52, 39, 30, 34, 21, 30, 27, 17, 46, 43, 33, 24, 21, 11, 54, 53, 42, 52, 49, 39, 60, 57, 47, 43, 40, 29, 54, 53, 42, 48, 48, 36, 57, 57, 46, 53, 52, 41, 50, 50, 39, 55, 55, 43, 52, 54, 42, 47, 46, 35, 55, 57, 45, 52, 54, 42, 51, 53, 41, 55, 55, 43, 58, 55, 45, 57, 57, 46, 56, 56, 45, 56, 56, 45, 42, 44, 32, 49, 49, 38, 43, 43, 32, 55, 55, 43, 52, 51, 42, 56, 55, 47, 53, 52, 43, 70, 66, 58, 46, 45, 36, 56, 55, 47, 60, 59, 48, 61, 58, 50, 50, 50, 39, 59, 58, 47, 56, 56, 45, 62, 62, 50, 61, 60, 49, 61, 60, 49, 56, 56, 45, 45, 44, 33, 61, 60, 49, 46, 45, 34, 61, 60, 49, 56, 56, 45, 43, 43, 34, 63, 63, 52, 52, 51, 40, 57, 57, 46, 64, 64, 53, 47, 46, 35, 50, 50, 39, 78, 80, 68, 62, 62, 50, 56, 56, 45, 59, 61, 49, 54, 53, 42, 57, 57, 46, 88, 87, 76, 53, 55, 43, 71, 71, 60, 80, 79, 68, 66, 65, 54, 57, 57, 46, 52, 51, 40, 70, 70, 59, 77, 77, 65, 76, 76, 64, 81, 78, 68, 63, 60, 49, 64, 61, 50, 77, 74, 61, 62, 62, 50, 66, 63, 53, 63, 63, 52, 59, 58, 47, 48, 47, 39, 48, 48, 36, 69, 69, 57, 80, 79, 70, 88, 87, 76, 56, 56, 45, 55, 55, 43, 63, 63, 52, 89, 88, 77, 63, 63, 52, 65, 67, 55, 74, 76, 64, 50, 52, 40, 60, 59, 48, 87, 86, 77, 71, 67, 60, 81, 80, 71, 64, 64, 53, 85, 81, 73, 94, 93, 82, 59, 58, 49, 73, 70, 62, 87, 84, 76, 83, 84, 75, 58, 60, 50, 67, 65, 59, 52, 54, 46, 59, 57, 51, 52, 54, 46, 44, 46, 36, 50, 51, 44, 47, 48, 39, 50, 50, 41, 58, 61, 46, 66, 69, 54, 66, 69, 54, 91, 93, 79, 91, 93, 79, 98, 100, 86, 108, 111, 96, 214, 216, 202, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 206, 204, 188, 202, 200, 185, 202, 200, 187, 200, 197, 185, 200, 197, 185, 198, 195, 182, 203, 201, 190, 202, 200, 187, 201, 199, 186, 200, 197, 187, 200, 197, 187, 200, 197, 187, 193, 190, 180, 187, 184, 174, 190, 187, 176, 124, 121, 115, 67, 64, 56, 80, 79, 70, 70, 69, 61, 71, 73, 63, 76, 77, 68, 49, 50, 41, 52, 56, 46, 48, 49, 40, 42, 45, 35, 52, 54, 44, 43, 45, 35, 46, 45, 36, 36, 36, 27, 35, 31, 23, 33, 30, 22, 31, 30, 21, 36, 36, 27, 36, 36, 27, 43, 43, 34, 40, 39, 28, 46, 45, 34, 42, 42, 31, 39, 38, 27, 27, 27, 15, 40, 39, 28, 36, 36, 25, 58, 55, 43, 49, 49, 36, 43, 40, 27, 35, 35, 22, 40, 40, 26, 33, 33, 19, 42, 44, 32, 58, 61, 46, 35, 35, 24, 54, 53, 42, 49, 46, 35, 32, 31, 20, 49, 46, 35, 58, 55, 45, 51, 48, 38, 59, 56, 46, 63, 60, 49, 54, 53, 42, 61, 60, 49, 41, 40, 32, 62, 62, 50, 49, 49, 38, 59, 58, 47, 36, 36, 25, 55, 55, 41, 59, 58, 47, 57, 59, 47, 63, 63, 50, 59, 58, 47, 27, 29, 15, 52, 52, 38, 50, 50, 39, 59, 58, 45, 56, 53, 42, 55, 55, 43, 57, 57, 48, 57, 57, 48, 53, 52, 43, 66, 63, 55, 52, 51, 42, 42, 41, 33, 60, 59, 48, 62, 62, 50, 46, 45, 34, 59, 58, 47, 61, 61, 47, 47, 46, 35, 61, 60, 49, 56, 56, 45, 52, 51, 40, 49, 49, 38, 56, 56, 45, 57, 57, 46, 62, 62, 50, 57, 57, 46, 59, 58, 47, 60, 59, 48, 54, 53, 42, 49, 49, 38, 50, 50, 41, 59, 61, 49, 57, 59, 47, 59, 61, 49, 66, 65, 54, 54, 53, 42, 68, 67, 56, 53, 52, 41, 66, 65, 54, 85, 85, 74, 52, 51, 40, 46, 46, 32, 53, 52, 41, 48, 48, 36, 60, 60, 46, 69, 69, 57, 54, 53, 42, 81, 81, 67, 81, 80, 69, 42, 42, 31, 46, 45, 34, 69, 69, 57, 50, 50, 39, 83, 83, 71, 62, 62, 50, 69, 69, 57, 59, 58, 47, 59, 58, 47, 95, 94, 83, 43, 43, 32, 62, 62, 50, 67, 66, 55, 91, 90, 82, 82, 81, 70, 91, 91, 80, 56, 58, 46, 70, 72, 60, 81, 83, 71, 55, 57, 45, 71, 73, 61, 81, 80, 71, 75, 74, 65, 91, 90, 82, 80, 79, 70, 71, 71, 62, 63, 62, 54, 60, 59, 50, 66, 65, 56, 55, 54, 46, 56, 52, 44, 48, 47, 41, 55, 56, 49, 59, 57, 51, 52, 54, 46, 37, 38, 31, 48, 49, 40, 37, 39, 29, 63, 64, 55, 66, 68, 56, 114, 114, 103, 84, 87, 70, 104, 106, 92, 123, 126, 111, 192, 195, 178, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 203, 203, 187, 200, 197, 185, 201, 199, 186, 196, 194, 181, 198, 195, 182, 196, 194, 181, 199, 196, 185, 198, 195, 182, 196, 194, 181, 198, 195, 182, 191, 188, 175, 191, 188, 175, 187, 185, 172, 187, 184, 174, 187, 184, 174, 22, 18, 15, 73, 72, 63, 57, 57, 48, 70, 69, 61, 65, 67, 57, 56, 57, 48, 47, 51, 41, 43, 50, 39, 40, 44, 34, 56, 57, 48, 43, 47, 36, 50, 52, 42, 44, 46, 36, 45, 44, 35, 18, 17, 8, 44, 41, 33, 39, 36, 28, 25, 22, 14, 36, 36, 25, 39, 36, 26, 48, 48, 36, 25, 24, 13, 52, 51, 40, 49, 49, 38, 35, 35, 24, 48, 48, 36, 42, 42, 29, 40, 40, 26, 43, 43, 30, 42, 44, 32, 35, 37, 25, 37, 40, 25, 36, 38, 24, 38, 42, 29, 31, 33, 23, 38, 37, 26, 47, 46, 35, 38, 37, 26, 41, 41, 29, 47, 45, 34, 47, 45, 34, 52, 50, 37, 52, 49, 39, 46, 43, 33, 51, 48, 38, 75, 73, 62, 53, 52, 41, 56, 56, 45, 55, 55, 43, 51, 48, 38, 65, 62, 52, 47, 46, 35, 68, 67, 56, 54, 53, 42, 57, 59, 45, 61, 60, 49, 48, 48, 34, 42, 42, 31, 49, 49, 38, 62, 62, 48, 56, 56, 45, 56, 56, 45, 58, 55, 47, 56, 52, 44, 53, 52, 43, 57, 57, 48, 47, 46, 37, 53, 52, 43, 44, 46, 34, 54, 53, 42, 42, 42, 31, 53, 52, 41, 64, 64, 53, 47, 46, 35, 49, 49, 38, 47, 46, 35, 59, 58, 47, 61, 60, 49, 47, 46, 35, 41, 41, 29, 62, 62, 50, 57, 57, 46, 52, 51, 40, 71, 71, 60, 63, 63, 52, 56, 56, 45, 73, 72, 61, 66, 65, 54, 61, 60, 49, 62, 62, 50, 57, 57, 46, 59, 58, 47, 64, 64, 53, 57, 57, 46, 53, 52, 41, 54, 53, 42, 64, 64, 53, 53, 52, 41, 55, 55, 43, 82, 81, 70, 67, 66, 55, 71, 71, 60, 88, 87, 76, 66, 65, 54, 70, 67, 56, 59, 58, 47, 47, 46, 35, 78, 78, 65, 67, 67, 53, 57, 57, 46, 50, 50, 37, 55, 57, 45, 96, 95, 84, 80, 79, 68, 48, 50, 38, 67, 66, 55, 50, 50, 39, 55, 55, 43, 85, 85, 74, 62, 63, 54, 97, 96, 85, 74, 76, 64, 57, 59, 47, 57, 59, 49, 45, 47, 35, 53, 55, 46, 54, 58, 48, 62, 63, 54, 60, 62, 52, 61, 65, 55, 50, 52, 42, 67, 66, 57, 52, 54, 44, 51, 53, 43, 59, 57, 51, 50, 46, 41, 52, 51, 42, 55, 54, 48, 55, 54, 48, 71, 71, 62, 71, 71, 62, 94, 93, 80, 110, 109, 98, 117, 117, 103, 132, 132, 118, 251, 254, 239, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 205, 202, 187, 201, 199, 184, 193, 191, 178, 198, 195, 182, 198, 195, 182, 196, 194, 181, 196, 194, 183, 201, 198, 188, 194, 192, 179, 191, 188, 175, 187, 185, 172, 185, 182, 169, 188, 186, 173, 182, 180, 169, 158, 157, 146, 32, 27, 31, 85, 85, 76, 60, 62, 50, 57, 57, 48, 51, 53, 43, 56, 55, 47, 53, 55, 46, 45, 47, 37, 40, 41, 32, 47, 48, 39, 45, 49, 39, 33, 34, 25, 38, 37, 28, 47, 46, 37, 44, 46, 36, 31, 30, 21, 40, 39, 30, 45, 44, 35, 35, 35, 24, 37, 34, 26, 33, 32, 23, 48, 47, 39, 27, 26, 18, 30, 32, 22, 44, 46, 34, 43, 45, 33, 38, 38, 24, 43, 43, 30, 41, 41, 27, 52, 55, 40, 56, 53, 42, 26, 26, 14, 39, 38, 27, 36, 38, 26, 40, 39, 28, 41, 41, 29, 42, 44, 32, 50, 52, 40, 50, 50, 39, 60, 59, 48, 35, 35, 22, 53, 50, 40, 52, 49, 39, 56, 53, 42, 66, 63, 53, 64, 61, 50, 47, 45, 34, 65, 62, 52, 42, 42, 31, 52, 49, 41, 46, 43, 33, 54, 53, 42, 54, 53, 42, 52, 54, 42, 56, 56, 45, 69, 69, 57, 57, 57, 46, 63, 63, 52, 62, 62, 50, 50, 50, 39, 53, 52, 41, 53, 52, 41, 38, 37, 26, 42, 42, 31, 48, 48, 36, 62, 61, 52, 54, 53, 44, 57, 57, 48, 59, 58, 49, 46, 45, 36, 52, 51, 40, 54, 53, 44, 53, 52, 43, 55, 55, 43, 63, 63, 52, 54, 53, 42, 59, 58, 47, 47, 46, 35, 61, 60, 49, 53, 55, 43, 71, 71, 60, 52, 51, 40, 53, 52, 41, 47, 46, 35, 62, 63, 54, 61, 60, 49, 50, 52, 42, 64, 64, 55, 59, 61, 49, 59, 58, 47, 56, 56, 45, 44, 46, 34, 70, 70, 59, 49, 51, 37, 73, 75, 63, 64, 64, 53, 69, 69, 57, 73, 72, 61, 63, 63, 52, 71, 71, 60, 46, 45, 34, 52, 54, 42, 55, 55, 43, 64, 64, 53, 62, 62, 50, 95, 94, 83, 62, 62, 50, 52, 51, 40, 82, 81, 70, 55, 55, 43, 73, 72, 61, 55, 55, 43, 71, 73, 61, 67, 66, 55, 137, 136, 125, 89, 88, 79, 78, 80, 70, 71, 73, 63, 74, 73, 64, 57, 57, 48, 60, 62, 52, 69, 70, 61, 65, 67, 57, 59, 61, 51, 52, 54, 44, 52, 54, 44, 53, 55, 46, 59, 61, 51, 55, 56, 47, 48, 49, 40, 49, 48, 40, 47, 46, 37, 41, 40, 34, 50, 51, 44, 54, 53, 44, 65, 62, 54, 70, 70, 59, 95, 94, 83, 102, 101, 90, 132, 132, 118, 125, 127, 114, 255, 255, 242, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 198, 196, 178, 200, 198, 183, 199, 195, 180, 196, 191, 179, 191, 188, 175, 193, 191, 178, 192, 189, 177, 185, 182, 169, 193, 191, 178, 185, 180, 168, 184, 179, 167, 185, 182, 169, 178, 175, 162, 167, 164, 154, 117, 114, 104, 67, 62, 64, 80, 79, 70, 61, 60, 49, 47, 46, 35, 53, 52, 43, 71, 73, 63, 52, 54, 44, 31, 35, 22, 22, 24, 12, 43, 43, 34, 36, 40, 29, 57, 57, 46, 41, 42, 33, 39, 38, 29, 38, 40, 30, 25, 24, 15, 43, 43, 34, 39, 38, 27, 31, 30, 19, 28, 28, 17, 33, 32, 21, 31, 30, 19, 41, 41, 29, 38, 37, 26, 37, 39, 27, 38, 37, 26, 40, 39, 28, 40, 40, 26, 57, 57, 44, 44, 46, 34, 39, 38, 27, 48, 48, 36, 42, 42, 31, 51, 53, 41, 30, 32, 20, 34, 36, 24, 37, 39, 27, 55, 55, 43, 25, 32, 18, 49, 49, 38, 47, 46, 35, 51, 48, 36, 53, 50, 40, 59, 57, 44, 64, 64, 51, 49, 49, 38, 58, 55, 43, 60, 59, 48, 53, 52, 41, 57, 57, 48, 41, 41, 29, 43, 43, 32, 49, 49, 38, 44, 47, 32, 51, 54, 39, 56, 56, 45, 70, 72, 58, 59, 58, 47, 53, 55, 43, 50, 50, 39, 52, 51, 40, 60, 59, 48, 56, 53, 42, 54, 53, 42, 53, 52, 43, 48, 47, 39, 54, 53, 44, 53, 52, 43, 55, 54, 46, 61, 60, 49, 56, 55, 47, 52, 51, 42, 45, 47, 37, 59, 58, 47, 54, 53, 42, 55, 57, 45, 62, 62, 50, 42, 42, 31, 59, 58, 47, 45, 44, 33, 55, 55, 43, 52, 51, 40, 48, 48, 36, 54, 53, 42, 29, 31, 19, 69, 68, 60, 57, 59, 47, 55, 56, 47, 52, 54, 42, 53, 52, 41, 62, 62, 50, 68, 67, 56, 48, 48, 36, 66, 68, 56, 61, 60, 49, 62, 61, 52, 40, 39, 28, 69, 69, 57, 62, 62, 50, 71, 71, 62, 66, 65, 54, 49, 50, 41, 46, 45, 36, 71, 71, 60, 81, 80, 69, 50, 50, 39, 41, 41, 29, 50, 50, 37, 75, 74, 63, 52, 51, 40, 66, 65, 52, 63, 65, 53, 83, 83, 71, 66, 68, 56, 72, 74, 64, 55, 55, 43, 48, 47, 39, 100, 102, 90, 64, 66, 54, 65, 67, 57, 57, 59, 49, 52, 54, 44, 52, 54, 44, 56, 57, 48, 53, 55, 46, 47, 48, 39, 41, 42, 33, 52, 51, 42, 45, 47, 37, 45, 47, 37, 52, 54, 44, 62, 61, 52, 90, 90, 78, 94, 93, 80, 99, 99, 86, 145, 145, 131, 126, 126, 112, 248, 248, 235, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 191, 189, 171, 193, 189, 175, 192, 188, 173, 191, 187, 172, 190, 185, 173, 187, 185, 172, 188, 186, 173, 182, 180, 167, 183, 178, 166, 182, 177, 165, 179, 174, 162, 176, 171, 159, 171, 166, 154, 165, 160, 149, 52, 49, 39, 83, 80, 72, 74, 73, 64, 64, 64, 53, 33, 32, 23, 60, 62, 52, 57, 59, 49, 53, 55, 43, 40, 45, 32, 24, 26, 14, 39, 38, 27, 36, 40, 27, 30, 27, 17, 42, 41, 33, 27, 27, 15, 24, 26, 14, 52, 51, 42, 40, 39, 30, 42, 39, 28, 39, 36, 26, 37, 34, 24, 30, 29, 18, 49, 49, 38, 38, 37, 26, 39, 36, 26, 35, 35, 24, 45, 44, 33, 29, 26, 13, 34, 34, 20, 45, 44, 33, 47, 49, 34, 39, 38, 27, 36, 38, 26, 38, 40, 28, 31, 33, 21, 36, 36, 25, 23, 27, 14, 37, 39, 27, 37, 39, 27, 62, 64, 52, 64, 64, 53, 48, 48, 36, 45, 44, 33, 53, 53, 39, 53, 53, 39, 50, 50, 39, 33, 32, 21, 43, 43, 30, 61, 60, 49, 41, 41, 29, 57, 57, 48, 57, 57, 48, 56, 56, 45, 53, 52, 41, 48, 49, 40, 45, 47, 35, 54, 53, 42, 54, 54, 40, 57, 57, 46, 48, 48, 36, 52, 51, 40, 46, 43, 33, 54, 52, 41, 61, 58, 50, 47, 45, 34, 52, 49, 39, 56, 52, 44, 50, 50, 41, 70, 66, 58, 55, 54, 46, 57, 57, 48, 43, 43, 34, 48, 47, 39, 48, 48, 36, 52, 51, 40, 57, 59, 47, 47, 48, 36, 68, 67, 56, 50, 52, 40, 53, 52, 41, 44, 46, 34, 73, 72, 61, 55, 55, 43, 52, 51, 40, 54, 53, 44, 50, 52, 42, 56, 55, 47, 50, 52, 42, 50, 50, 41, 41, 43, 31, 59, 58, 47, 57, 57, 48, 60, 59, 50, 66, 65, 56, 62, 64, 52, 56, 58, 46, 57, 59, 49, 50, 52, 40, 57, 59, 49, 69, 70, 61, 69, 71, 59, 48, 50, 38, 65, 67, 57, 66, 68, 58, 67, 66, 57, 57, 57, 48, 66, 65, 54, 71, 71, 60, 75, 74, 65, 67, 66, 55, 57, 59, 47, 66, 68, 56, 56, 56, 45, 69, 71, 59, 42, 44, 32, 65, 67, 57, 74, 76, 64, 69, 71, 59, 43, 45, 33, 47, 48, 39, 36, 40, 29, 51, 53, 43, 43, 45, 35, 64, 64, 55, 42, 41, 33, 43, 43, 32, 60, 60, 46, 75, 75, 61, 85, 85, 72, 95, 95, 81, 108, 108, 92, 119, 119, 103, 127, 128, 112, 223, 223, 207, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 191, 189, 171, 192, 188, 171, 198, 192, 178, 189, 182, 171, 183, 178, 166, 184, 179, 167, 181, 176, 164, 175, 170, 158, 167, 162, 150, 172, 167, 156, 174, 167, 156, 163, 158, 146, 160, 155, 143, 134, 129, 119, 9, 6, 0, 80, 75, 64, 62, 62, 50, 49, 49, 38, 52, 51, 40, 41, 41, 29, 66, 65, 54, 52, 51, 40, 35, 39, 26, 44, 46, 34, 49, 49, 38, 18, 17, 8, 40, 37, 29, 48, 49, 40, 45, 47, 35, 42, 44, 32, 48, 47, 41, 31, 33, 21, 30, 32, 20, 16, 18, 6, 22, 24, 12, 38, 40, 28, 38, 37, 26, 54, 53, 42, 32, 31, 20, 46, 45, 34, 36, 36, 23, 35, 37, 23, 30, 29, 16, 33, 35, 20, 36, 38, 24, 47, 48, 36, 47, 46, 35, 42, 42, 31, 52, 51, 40, 36, 33, 22, 38, 37, 26, 30, 29, 18, 57, 57, 46, 53, 52, 43, 55, 55, 43, 47, 46, 35, 51, 48, 38, 46, 43, 33, 46, 44, 31, 51, 48, 38, 49, 46, 35, 43, 43, 32, 45, 44, 33, 47, 46, 35, 54, 53, 42, 46, 45, 34, 52, 51, 40, 52, 51, 40, 43, 43, 32, 51, 53, 41, 48, 48, 36, 55, 55, 41, 57, 57, 46, 52, 51, 40, 50, 50, 39, 59, 56, 46, 59, 56, 46, 54, 53, 42, 57, 54, 43, 54, 51, 43, 48, 47, 39, 71, 71, 62, 53, 52, 43, 52, 51, 42, 51, 53, 43, 59, 61, 51, 66, 65, 56, 48, 50, 38, 53, 52, 41, 50, 52, 40, 56, 58, 46, 55, 55, 43, 34, 36, 24, 46, 45, 34, 56, 56, 45, 53, 52, 41, 56, 56, 45, 62, 61, 52, 43, 43, 34, 53, 52, 43, 60, 59, 50, 62, 61, 52, 60, 62, 52, 34, 35, 26, 64, 64, 55, 54, 53, 44, 50, 50, 39, 69, 69, 57, 72, 74, 62, 62, 63, 54, 55, 56, 47, 59, 61, 51, 66, 68, 58, 58, 60, 50, 53, 55, 43, 71, 73, 61, 60, 62, 52, 58, 60, 50, 71, 73, 63, 61, 60, 51, 83, 83, 71, 78, 78, 69, 59, 58, 47, 63, 63, 52, 52, 54, 44, 48, 50, 38, 59, 61, 49, 48, 50, 38, 51, 55, 42, 48, 49, 40, 47, 48, 36, 41, 42, 33, 53, 55, 43, 45, 47, 37, 45, 47, 37, 48, 49, 40, 57, 57, 48, 54, 53, 42, 80, 79, 66, 90, 90, 76, 87, 87, 73, 127, 127, 114, 119, 119, 103, 182, 182, 166, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 187, 185, 168, 179, 175, 159, 184, 178, 164, 181, 174, 160, 177, 171, 157, 183, 176, 165, 172, 164, 153, 171, 166, 154, 163, 158, 146, 167, 162, 150, 166, 159, 147, 154, 147, 136, 151, 146, 134, 78, 73, 63, 40, 34, 27, 81, 78, 68, 65, 60, 50, 55, 55, 43, 40, 41, 29, 46, 50, 38, 42, 44, 30, 40, 45, 32, 26, 31, 18, 52, 54, 42, 31, 30, 19, 43, 43, 34, 39, 36, 28, 47, 46, 37, 36, 36, 25, 16, 18, 6, 36, 38, 28, 36, 38, 28, 26, 30, 20, 28, 30, 18, 45, 42, 32, 35, 35, 24, 26, 26, 14, 46, 43, 33, 47, 45, 34, 50, 50, 39, 27, 27, 15, 43, 45, 33, 36, 38, 26, 34, 36, 24, 45, 47, 37, 37, 39, 29, 39, 38, 27, 57, 59, 47, 38, 37, 28, 33, 32, 21, 41, 41, 29, 47, 46, 35, 49, 45, 37, 50, 47, 36, 35, 35, 24, 56, 53, 42, 40, 38, 27, 52, 50, 37, 60, 57, 47, 47, 47, 33, 50, 47, 36, 42, 39, 28, 47, 46, 35, 66, 65, 54, 41, 43, 31, 59, 61, 49, 44, 46, 34, 52, 54, 44, 53, 55, 43, 49, 51, 39, 50, 52, 40, 50, 50, 41, 54, 51, 43, 50, 52, 40, 56, 55, 47, 54, 51, 43, 56, 52, 44, 46, 45, 36, 52, 49, 39, 58, 55, 47, 55, 54, 48, 61, 60, 51, 62, 61, 52, 66, 65, 56, 49, 48, 40, 42, 43, 34, 53, 55, 46, 52, 54, 44, 59, 58, 47, 47, 48, 36, 49, 51, 39, 55, 57, 45, 51, 53, 41, 59, 58, 47, 55, 54, 46, 59, 56, 46, 56, 53, 42, 56, 55, 47, 59, 58, 49, 53, 52, 45, 57, 57, 48, 57, 57, 48, 62, 61, 52, 53, 55, 46, 67, 66, 57, 69, 68, 60, 45, 44, 33, 50, 50, 41, 55, 57, 45, 76, 77, 68, 67, 69, 60, 37, 39, 29, 52, 54, 44, 49, 50, 41, 62, 63, 54, 51, 53, 43, 48, 49, 40, 59, 58, 49, 63, 64, 55, 60, 59, 50, 48, 48, 36, 46, 45, 34, 42, 44, 32, 55, 57, 45, 42, 44, 32, 40, 41, 29, 44, 46, 36, 43, 45, 33, 40, 41, 32, 40, 41, 32, 40, 41, 29, 41, 43, 31, 35, 37, 25, 55, 55, 43, 102, 101, 90, 102, 101, 90, 110, 109, 98, 113, 113, 100, 132, 132, 118, 203, 203, 189, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 170, 166, 149, 164, 160, 143, 169, 163, 147, 174, 167, 154, 162, 156, 140, 166, 159, 145, 158, 150, 139, 159, 152, 140, 156, 151, 139, 146, 139, 128, 147, 140, 129, 154, 147, 136, 140, 133, 124, 0, 0, 0, 88, 85, 75, 56, 56, 45, 59, 56, 46, 54, 53, 44, 55, 57, 45, 43, 47, 32, 42, 44, 32, 37, 41, 28, 26, 28, 15, 41, 41, 29, 39, 36, 26, 46, 45, 34, 38, 37, 26, 36, 36, 27, 42, 39, 28, 35, 34, 26, 33, 32, 23, 32, 31, 22, 32, 31, 22, 29, 31, 21, 45, 42, 32, 45, 42, 32, 26, 24, 11, 29, 26, 13, 40, 38, 25, 26, 26, 12, 43, 45, 31, 46, 51, 36, 33, 35, 22, 43, 45, 33, 35, 39, 26, 40, 41, 29, 37, 39, 27, 31, 33, 21, 48, 48, 36, 56, 53, 42, 43, 43, 32, 45, 42, 32, 56, 53, 42, 56, 53, 42, 42, 42, 29, 49, 46, 33, 59, 58, 47, 56, 53, 40, 61, 59, 46, 59, 58, 47, 39, 39, 25, 52, 51, 40, 47, 46, 35, 34, 34, 22, 52, 54, 42, 60, 59, 48, 40, 39, 30, 47, 48, 36, 50, 50, 41, 55, 54, 46, 53, 52, 43, 52, 51, 40, 51, 48, 38, 49, 49, 38, 55, 54, 46, 65, 62, 54, 44, 41, 33, 49, 45, 37, 48, 47, 39, 64, 60, 52, 56, 52, 44, 57, 56, 50, 57, 56, 50, 54, 53, 44, 46, 45, 36, 75, 74, 65, 50, 52, 42, 56, 58, 46, 63, 63, 52, 67, 69, 57, 53, 55, 46, 60, 59, 50, 60, 59, 50, 55, 54, 46, 78, 78, 69, 63, 59, 51, 70, 69, 61, 58, 55, 47, 63, 59, 51, 61, 60, 51, 53, 52, 43, 61, 60, 51, 66, 65, 56, 52, 54, 44, 70, 69, 61, 68, 67, 58, 48, 47, 39, 45, 44, 35, 56, 58, 46, 69, 68, 60, 59, 61, 51, 51, 53, 43, 59, 61, 51, 48, 49, 40, 38, 42, 32, 55, 56, 47, 50, 52, 42, 45, 47, 37, 45, 47, 37, 49, 50, 41, 41, 40, 32, 40, 39, 30, 37, 39, 29, 41, 42, 33, 36, 38, 28, 27, 28, 19, 33, 35, 22, 37, 39, 27, 66, 68, 56, 72, 74, 62, 88, 91, 76, 118, 118, 104, 106, 108, 94, 117, 117, 103, 190, 190, 177, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 165, 156, 141, 165, 156, 141, 155, 149, 133, 155, 149, 135, 154, 147, 134, 147, 140, 127, 148, 141, 128, 142, 135, 124, 135, 128, 117, 132, 125, 114, 139, 132, 121, 127, 122, 110, 111, 110, 99, 9, 8, 0, 77, 76, 68, 61, 60, 49, 49, 49, 38, 59, 61, 51, 45, 49, 39, 31, 37, 24, 51, 55, 42, 27, 33, 22, 30, 34, 21, 33, 35, 22, 35, 37, 25, 24, 26, 14, 37, 39, 29, 35, 34, 26, 32, 31, 22, 32, 31, 22, 35, 31, 23, 40, 39, 30, 36, 36, 27, 37, 34, 26, 38, 35, 27, 37, 39, 27, 43, 40, 27, 41, 41, 27, 33, 33, 19, 41, 43, 29, 35, 35, 22, 38, 37, 26, 36, 38, 26, 30, 32, 20, 32, 36, 24, 37, 41, 26, 43, 45, 33, 28, 32, 17, 28, 30, 18, 50, 52, 40, 36, 36, 25, 47, 46, 35, 39, 38, 27, 52, 49, 39, 31, 30, 19, 46, 43, 33, 56, 56, 45, 50, 50, 37, 50, 47, 34, 53, 52, 41, 45, 44, 33, 52, 51, 40, 42, 44, 32, 50, 50, 39, 47, 48, 36, 47, 46, 35, 52, 54, 42, 40, 41, 29, 37, 39, 27, 50, 52, 40, 49, 51, 39, 40, 39, 28, 48, 48, 36, 38, 40, 30, 58, 55, 47, 52, 49, 41, 53, 50, 42, 60, 59, 50, 52, 49, 41, 54, 53, 44, 56, 55, 47, 49, 48, 42, 53, 55, 48, 54, 53, 44, 41, 40, 34, 56, 57, 48, 52, 54, 44, 45, 47, 37, 55, 56, 47, 52, 54, 44, 41, 42, 33, 53, 52, 43, 59, 61, 51, 76, 75, 66, 50, 50, 41, 45, 43, 37, 49, 50, 41, 56, 55, 47, 69, 68, 60, 55, 54, 48, 61, 58, 50, 39, 38, 31, 56, 55, 49, 49, 48, 40, 57, 57, 48, 53, 52, 43, 54, 53, 44, 56, 57, 48, 86, 88, 78, 34, 35, 26, 47, 48, 39, 33, 34, 25, 37, 38, 31, 40, 41, 32, 44, 46, 36, 40, 41, 32, 31, 33, 23, 54, 53, 44, 42, 42, 31, 33, 32, 23, 37, 39, 27, 45, 47, 35, 47, 46, 35, 53, 52, 41, 76, 76, 62, 77, 77, 64, 111, 111, 97, 110, 110, 96, 120, 120, 107, 123, 123, 107, 227, 228, 212, 255, 255, 255, 255, 255, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 146, 137, 122, 150, 141, 126, 144, 135, 120, 143, 134, 119, 137, 128, 113, 132, 123, 110, 142, 132, 120, 132, 123, 112, 141, 131, 121, 137, 127, 117, 131, 124, 110, 128, 123, 111, 73, 75, 63, 51, 48, 40, 70, 70, 59, 57, 59, 47, 37, 39, 27, 38, 40, 30, 44, 46, 36, 43, 45, 33, 40, 41, 29, 45, 47, 35, 29, 31, 19, 30, 32, 20, 24, 26, 14, 35, 35, 24, 36, 36, 27, 25, 24, 15, 39, 38, 27, 25, 24, 13, 39, 36, 26, 21, 20, 12, 42, 38, 30, 31, 30, 19, 50, 47, 39, 35, 35, 24, 33, 31, 20, 23, 26, 11, 38, 38, 24, 35, 37, 25, 31, 33, 21, 47, 46, 35, 40, 41, 29, 45, 47, 37, 37, 39, 27, 39, 44, 29, 43, 47, 34, 43, 45, 31, 36, 40, 25, 28, 30, 18, 46, 50, 38, 43, 43, 32, 54, 52, 41, 51, 48, 38, 44, 41, 31, 57, 54, 43, 46, 46, 32, 40, 38, 25, 45, 43, 30, 51, 54, 39, 51, 48, 38, 36, 36, 25, 47, 48, 36, 48, 50, 38, 42, 44, 32, 55, 55, 43, 43, 45, 33, 42, 44, 32, 60, 59, 48, 42, 46, 33, 45, 47, 37, 48, 47, 39, 56, 55, 47, 56, 55, 47, 42, 41, 33, 54, 53, 46, 50, 49, 43, 44, 45, 38, 64, 63, 57, 63, 64, 57, 55, 54, 48, 43, 42, 36, 46, 45, 38, 43, 43, 34, 52, 50, 44, 49, 50, 41, 50, 52, 42, 45, 47, 37, 52, 54, 44, 48, 49, 40, 66, 67, 60, 51, 53, 43, 53, 55, 48, 51, 55, 44, 35, 36, 27, 56, 55, 49, 45, 47, 39, 42, 43, 36, 46, 45, 36, 53, 52, 43, 54, 53, 44, 47, 46, 37, 48, 48, 34, 47, 46, 35, 43, 43, 32, 39, 38, 29, 40, 39, 28, 39, 38, 29, 46, 45, 36, 43, 45, 35, 40, 41, 32, 40, 41, 32, 35, 36, 27, 39, 38, 29, 35, 34, 26, 34, 33, 25, 56, 56, 45, 66, 65, 54, 87, 86, 75, 81, 81, 67, 92, 92, 79, 108, 107, 94, 118, 118, 102, 113, 113, 100, 105, 105, 92, 227, 228, 212, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 142, 133, 118, 136, 127, 112, 134, 125, 110, 134, 124, 112, 134, 124, 112, 128, 118, 106, 129, 119, 109, 129, 119, 109, 135, 125, 115, 126, 116, 103, 115, 107, 96, 120, 113, 102, 34, 36, 24, 48, 50, 38, 57, 59, 47, 49, 51, 39, 55, 55, 43, 48, 49, 40, 43, 45, 33, 40, 42, 27, 35, 37, 25, 39, 43, 33, 24, 28, 15, 29, 31, 19, 33, 38, 25, 30, 29, 18, 27, 26, 18, 36, 36, 27, 34, 34, 22, 56, 52, 44, 39, 33, 24, 47, 44, 36, 23, 22, 11, 25, 24, 13, 36, 36, 27, 47, 48, 36, 31, 30, 19, 42, 42, 29, 23, 22, 11, 35, 39, 26, 42, 44, 32, 23, 27, 14, 28, 31, 21, 32, 36, 26, 37, 41, 30, 28, 31, 21, 36, 38, 26, 28, 30, 18, 38, 40, 28, 67, 64, 54, 50, 47, 36, 71, 66, 56, 48, 43, 31, 50, 50, 39, 60, 59, 48, 42, 39, 28, 36, 38, 26, 45, 44, 33, 61, 59, 48, 24, 26, 14, 55, 55, 43, 41, 41, 29, 55, 55, 43, 48, 47, 39, 49, 48, 40, 53, 52, 45, 51, 53, 43, 55, 56, 49, 47, 48, 41, 51, 52, 45, 51, 52, 45, 48, 49, 42, 50, 49, 43, 49, 48, 42, 52, 50, 44, 41, 40, 34, 56, 57, 50, 47, 48, 41, 47, 46, 39, 54, 53, 46, 54, 53, 46, 50, 50, 41, 54, 53, 46, 56, 55, 47, 45, 44, 35, 48, 49, 42, 35, 36, 27, 55, 56, 47, 45, 47, 37, 50, 52, 42, 48, 52, 44, 49, 50, 43, 65, 66, 59, 43, 46, 38, 48, 49, 42, 50, 53, 45, 48, 49, 42, 35, 38, 28, 43, 47, 36, 49, 50, 41, 42, 45, 35, 38, 40, 30, 58, 60, 50, 31, 33, 23, 44, 46, 36, 41, 42, 33, 47, 46, 35, 37, 39, 27, 39, 38, 27, 52, 51, 40, 33, 34, 25, 56, 56, 45, 77, 74, 61, 83, 81, 68, 80, 78, 65, 86, 83, 70, 87, 85, 72, 93, 90, 78, 95, 93, 80, 111, 109, 96, 128, 125, 112, 255, 255, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 127, 121, 105, 134, 124, 112, 130, 121, 108, 121, 111, 99, 120, 110, 98, 128, 118, 106, 123, 113, 103, 128, 118, 108, 119, 112, 101, 120, 110, 100, 112, 105, 94, 99, 92, 81, 0, 0, 0, 74, 76, 64, 57, 61, 46, 44, 46, 34, 51, 53, 43, 39, 43, 33, 37, 41, 28, 43, 47, 36, 44, 48, 35, 33, 37, 27, 40, 45, 32, 29, 33, 20, 34, 36, 24, 34, 36, 24, 36, 36, 25, 43, 43, 32, 27, 29, 17, 33, 32, 21, 34, 29, 19, 42, 42, 31, 25, 24, 13, 26, 26, 14, 28, 27, 19, 33, 34, 25, 42, 38, 32, 41, 40, 32, 40, 39, 28, 27, 28, 21, 43, 45, 35, 25, 29, 17, 42, 43, 36, 46, 45, 36, 40, 39, 30, 41, 42, 33, 36, 38, 28, 33, 35, 22, 44, 46, 36, 40, 35, 23, 60, 51, 40, 42, 42, 31, 51, 46, 36, 56, 53, 40, 46, 45, 34, 49, 48, 40, 49, 49, 38, 45, 44, 33, 48, 48, 36, 59, 61, 49, 53, 55, 43, 29, 31, 19, 51, 53, 41, 50, 52, 40, 45, 47, 35, 41, 42, 33, 47, 48, 39, 48, 49, 40, 41, 42, 33, 39, 43, 33, 49, 50, 43, 44, 46, 36, 43, 44, 37, 45, 47, 39, 49, 50, 43, 63, 62, 56, 35, 36, 29, 50, 51, 44, 52, 54, 46, 41, 42, 35, 47, 48, 41, 43, 42, 36, 37, 38, 31, 40, 41, 34, 45, 47, 39, 48, 49, 40, 43, 44, 37, 42, 43, 36, 44, 46, 36, 50, 52, 42, 39, 43, 35, 44, 45, 38, 36, 37, 30, 40, 44, 36, 43, 49, 41, 43, 46, 38, 27, 33, 24, 46, 52, 41, 37, 38, 31, 34, 35, 26, 40, 41, 32, 38, 37, 28, 24, 23, 12, 33, 32, 21, 34, 34, 22, 32, 31, 20, 92, 92, 81, 59, 58, 47, 109, 109, 95, 88, 86, 73, 97, 95, 82, 121, 119, 103, 156, 153, 140, 113, 110, 95, 149, 147, 131, 129, 126, 114, 230, 228, 213, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 112, 101, 119, 112, 99, 119, 109, 98, 110, 101, 90, 115, 106, 93, 108, 99, 86, 117, 108, 97, 109, 99, 89, 109, 99, 89, 102, 93, 80, 125, 118, 107, 92, 87, 75, 0, 0, 0, 55, 60, 45, 55, 60, 47, 45, 47, 35, 36, 40, 27, 37, 39, 29, 43, 47, 34, 32, 36, 24, 38, 40, 28, 26, 30, 20, 37, 41, 28, 35, 39, 26, 30, 32, 20, 41, 43, 29, 38, 40, 28, 41, 43, 31, 31, 28, 18, 31, 28, 18, 36, 33, 22, 26, 24, 13, 40, 38, 27, 35, 35, 24, 37, 34, 24, 36, 36, 27, 38, 35, 27, 41, 40, 32, 33, 32, 23, 33, 32, 23, 43, 43, 34, 55, 56, 47, 22, 24, 14, 13, 14, 5, 47, 48, 39, 35, 36, 27, 33, 34, 25, 53, 52, 43, 40, 38, 27, 47, 41, 32, 53, 51, 38, 47, 45, 34, 45, 42, 32, 40, 38, 27, 53, 50, 40, 29, 31, 21, 50, 50, 41, 42, 42, 31, 52, 51, 42, 45, 44, 33, 43, 43, 32, 60, 59, 48, 50, 52, 40, 39, 43, 33, 44, 48, 37, 57, 61, 50, 33, 34, 25, 49, 50, 41, 47, 48, 39, 59, 63, 52, 26, 30, 20, 46, 50, 42, 64, 67, 59, 53, 56, 51, 41, 42, 37, 63, 64, 57, 41, 42, 35, 43, 44, 37, 45, 47, 39, 40, 41, 34, 34, 35, 28, 47, 48, 41, 48, 49, 42, 37, 38, 31, 45, 47, 39, 48, 49, 42, 59, 61, 51, 44, 46, 36, 39, 38, 29, 37, 39, 29, 41, 42, 33, 32, 36, 26, 42, 43, 36, 25, 29, 21, 27, 28, 21, 38, 40, 32, 26, 27, 20, 37, 38, 31, 43, 45, 35, 41, 43, 31, 35, 35, 24, 66, 65, 54, 74, 74, 60, 75, 75, 61, 85, 82, 69, 104, 102, 87, 99, 96, 83, 110, 108, 95, 115, 113, 98, 116, 114, 101, 212, 209, 194, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 98, 92, 74, 103, 97, 78, 102, 95, 81, 97, 90, 77, 98, 91, 80, 103, 96, 84, 96, 89, 78, 104, 92, 82, 101, 91, 81, 98, 91, 80, 94, 90, 76, 72, 74, 62, 6, 8, 0, 53, 58, 43, 45, 49, 36, 33, 38, 25, 33, 38, 25, 41, 43, 31, 26, 31, 18, 42, 45, 35, 15, 19, 6, 33, 38, 25, 28, 32, 19, 27, 29, 17, 30, 34, 21, 35, 39, 26, 23, 25, 13, 31, 30, 19, 51, 43, 34, 44, 41, 31, 42, 39, 28, 39, 36, 28, 36, 36, 25, 43, 43, 32, 32, 31, 22, 31, 30, 21, 44, 41, 33, 47, 46, 37, 49, 49, 38, 39, 36, 28, 40, 38, 27, 40, 41, 29, 33, 32, 23, 37, 39, 27, 30, 29, 18, 43, 45, 33, 23, 26, 11, 33, 31, 20, 33, 31, 18, 36, 33, 20, 60, 58, 45, 42, 39, 28, 30, 29, 18, 40, 39, 28, 43, 40, 29, 43, 40, 29, 56, 58, 46, 36, 38, 26, 50, 52, 40, 31, 33, 21, 46, 45, 34, 43, 43, 32, 36, 40, 29, 40, 41, 34, 50, 53, 45, 44, 45, 38, 31, 33, 25, 47, 51, 43, 55, 56, 49, 39, 45, 36, 38, 42, 32, 67, 71, 63, 41, 42, 35, 44, 47, 41, 43, 46, 40, 39, 38, 31, 42, 43, 36, 34, 35, 28, 39, 43, 35, 31, 37, 28, 38, 39, 34, 44, 45, 38, 33, 31, 27, 31, 29, 23, 34, 35, 28, 28, 27, 21, 34, 33, 25, 33, 32, 23, 41, 40, 32, 38, 40, 30, 27, 28, 19, 53, 55, 46, 38, 40, 32, 34, 35, 28, 58, 59, 52, 38, 40, 32, 77, 78, 71, 88, 87, 78, 87, 86, 77, 102, 101, 90, 83, 81, 68, 91, 88, 75, 104, 102, 89, 97, 92, 78, 130, 126, 112, 242, 238, 223, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 91, 79, 95, 88, 76, 87, 85, 72, 96, 89, 76, 103, 98, 86, 84, 77, 66, 97, 90, 79, 89, 89, 75, 91, 86, 76, 86, 83, 70, 85, 82, 71, 41, 43, 31, 57, 61, 48, 48, 53, 38, 26, 33, 19, 51, 53, 41, 38, 40, 30, 48, 48, 36, 34, 36, 24, 30, 32, 22, 36, 36, 25, 30, 32, 20, 33, 34, 25, 36, 38, 26, 37, 39, 27, 44, 41, 31, 23, 22, 11, 17, 21, 8, 44, 27, 21, 31, 33, 21, 36, 36, 25, 49, 45, 37, 26, 25, 16, 29, 31, 19, 39, 36, 28, 32, 31, 20, 42, 39, 28, 46, 43, 35, 32, 31, 20, 35, 34, 26, 40, 37, 29, 32, 36, 24, 26, 27, 18, 29, 33, 22, 33, 32, 21, 22, 29, 15, 49, 49, 36, 58, 43, 36, 31, 29, 16, 47, 37, 29, 35, 39, 26, 21, 23, 11, 33, 38, 25, 38, 42, 29, 39, 46, 30, 57, 59, 47, 35, 39, 26, 48, 50, 38, 40, 41, 29, 32, 37, 22, 45, 49, 36, 41, 41, 29, 45, 44, 33, 35, 36, 27, 50, 54, 43, 32, 36, 28, 31, 33, 25, 40, 44, 36, 38, 41, 34, 31, 34, 29, 52, 54, 46, 38, 41, 36, 52, 55, 49, 57, 60, 54, 38, 43, 37, 55, 56, 51, 38, 41, 36, 45, 46, 41, 34, 35, 30, 44, 47, 39, 37, 38, 31, 45, 43, 37, 42, 41, 35, 48, 47, 39, 34, 35, 28, 40, 39, 32, 82, 81, 72, 68, 67, 58, 70, 69, 61, 90, 89, 80, 84, 84, 72, 86, 83, 75, 91, 90, 82, 88, 85, 77, 108, 107, 96, 104, 102, 91, 102, 99, 89, 115, 112, 100, 186, 181, 169, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 90, 84, 68, 87, 85, 72, 82, 80, 67, 78, 78, 65, 89, 87, 72, 80, 78, 63, 82, 80, 67, 67, 67, 51, 84, 83, 75, 76, 76, 60, 68, 68, 52, 16, 18, 6, 74, 76, 66, 35, 37, 23, 38, 42, 29, 36, 38, 26, 56, 55, 47, 54, 52, 41, 41, 41, 29, 55, 54, 46, 31, 30, 19, 19, 24, 11, 29, 31, 19, 30, 29, 18, 35, 37, 25, 34, 34, 22, 19, 21, 8, 38, 37, 26, 22, 26, 13, 30, 32, 20, 29, 31, 21, 54, 51, 43, 28, 35, 21, 57, 57, 46, 35, 31, 23, 33, 30, 22, 35, 31, 23, 31, 30, 21, 32, 29, 19, 38, 35, 27, 35, 29, 22, 21, 23, 13, 24, 26, 16, 35, 38, 28, 25, 24, 15, 18, 22, 10, 35, 32, 21, 29, 31, 17, 22, 30, 13, 35, 32, 19, 12, 14, 2, 36, 36, 25, 19, 21, 8, 39, 43, 31, 30, 34, 21, 29, 31, 17, 39, 43, 31, 42, 44, 32, 32, 31, 20, 23, 27, 14, 33, 35, 22, 37, 39, 27, 36, 40, 29, 33, 37, 29, 43, 51, 42, 33, 39, 30, 14, 32, 20, 20, 28, 18, 41, 47, 40, 40, 43, 38, 42, 43, 36, 42, 45, 39, 41, 42, 37, 38, 41, 34, 44, 45, 42, 54, 52, 48, 44, 45, 40, 56, 57, 52, 47, 45, 41, 55, 54, 48, 69, 70, 63, 80, 79, 70, 66, 65, 56, 109, 108, 99, 73, 72, 63, 84, 83, 75, 103, 100, 92, 95, 94, 83, 105, 105, 94, 96, 95, 84, 97, 95, 84, 152, 151, 140, 223, 220, 210, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 89, 84, 68, 76, 76, 62, 76, 76, 62, 78, 80, 66, 79, 76, 64, 77, 74, 59, 62, 62, 46, 77, 74, 61, 76, 76, 64, 74, 72, 57, 80, 80, 64, 9, 12, 0, 59, 68, 54, 46, 46, 32, 54, 41, 34, 19, 21, 8, 40, 42, 27, 48, 48, 36, 33, 35, 22, 28, 31, 21, 17, 21, 11, 24, 28, 15, 28, 28, 17, 39, 38, 27, 38, 37, 26, 31, 28, 18, 27, 27, 15, 39, 36, 26, 42, 39, 28, 21, 23, 11, 24, 26, 14, 17, 19, 7, 25, 29, 17, 20, 22, 10, 30, 29, 20, 36, 36, 27, 32, 31, 22, 28, 27, 19, 19, 18, 9, 31, 30, 21, 24, 23, 14, 28, 30, 18, 23, 25, 15, 31, 30, 21, 26, 26, 14, 24, 28, 15, 12, 21, 6, 25, 30, 15, 25, 35, 18, 38, 41, 26, 37, 40, 25, 38, 37, 26, 30, 32, 20, 17, 27, 10, 34, 41, 25, 38, 41, 26, 20, 29, 12, 33, 40, 24, 31, 33, 21, 35, 39, 24, 30, 32, 20, 33, 35, 22, 32, 36, 24, 35, 36, 27, 50, 47, 39, 39, 36, 28, 46, 45, 38, 39, 38, 31, 50, 51, 44, 42, 45, 37, 53, 55, 48, 40, 41, 34, 56, 57, 50, 70, 69, 61, 67, 64, 58, 87, 84, 76, 83, 80, 72, 88, 85, 75, 100, 97, 89, 105, 104, 96, 103, 102, 93, 96, 93, 83, 106, 103, 92, 121, 118, 107, 138, 135, 125, 222, 219, 209, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/mul.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/mul.example.cpp
new file mode 100644
index 000000000..841394843
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/mul.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: mul.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {2, -4, 8, -16}}, {1, {32, -16, -8, 4}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {64, 64, -64, -64}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/mul_broadcast_quant8.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/mul_broadcast_quant8.example.cpp
new file mode 100644
index 000000000..163a03811
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/mul_broadcast_quant8.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: mul_broadcast_quant8.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {2, 4}}, {1, {1, 2, 4, 8}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 4, 4, 16}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/mul_quant8.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/mul_quant8.example.cpp
new file mode 100644
index 000000000..838ec5a30
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/mul_quant8.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: mul_quant8.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2}}, {1, {2, 4}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 4}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/mul_relu.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/mul_relu.example.cpp
new file mode 100644
index 000000000..038a8489b
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/mul_relu.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: mul_relu.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {2, -4, 8, -16}}, {1, {32, -16, -8, 4}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {64, 64, 0, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/relu1_float_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/relu1_float_1.example.cpp
new file mode 100644
index 000000000..009bc4528
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/relu1_float_1.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: relu1_float_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-10.0f, -0.5f, 0.5f, 10.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-1.0f, -0.5f, 0.5f, 1.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/relu1_float_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/relu1_float_2.example.cpp
new file mode 100644
index 000000000..4482ee246
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/relu1_float_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: relu1_float_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.0f, 0.001f, -0.002f, 0.003f, -0.004f, 0.005f, -0.006f, 0.007f, -0.008f, 0.009000000000000001f, -0.01f, 0.011f, -0.012f, 0.013000000000000001f, -0.014f, 0.015f, -0.016f, 0.017f, -0.018000000000000002f, 0.019f, -0.02f, 0.021f, -0.022f, 0.023f, -0.024f, 0.025f, -0.026000000000000002f, 0.027f, -0.028f, 0.029f, -0.03f, 0.031f, -0.032f, 0.033f, -0.034f, 0.035f, -0.036000000000000004f, 0.037f, -0.038f, 0.039f, -0.04f, 0.041f, -0.042f, 0.043000000000000003f, -0.044f, 0.045f, -0.046f, 0.047f, -0.048f, 0.049f, -0.05f, 0.051000000000000004f, -0.052000000000000005f, 0.053f, -0.054f, 0.055f, -0.056f, 0.057f, -0.058f, 0.059000000000000004f, -0.06f, 0.061f, -0.062f, 0.063f, -0.064f, 0.065f, -0.066f, 0.067f, -0.068f, 0.069f, -0.07f, 0.07100000000000001f, -0.07200000000000001f, 0.073f, -0.074f, 0.075f, -0.076f, 0.077f, -0.078f, 0.079f, -0.08f, 0.081f, -0.082f, 0.083f, -0.084f, 0.085f, -0.08600000000000001f, 0.08700000000000001f, -0.088f, 0.089f, -0.09f, 0.091f, -0.092f, 0.093f, -0.094f, 0.095f, -0.096f, 0.097f, -0.098f, 0.099f, -0.1f, 0.101f, -0.10200000000000001f, 0.10300000000000001f, -0.10400000000000001f, 0.105f, -0.106f, 0.107f, -0.108f, 0.109f, -0.11f, 0.111f, -0.112f, 0.113f, -0.114f, 0.115f, -0.116f, 0.117f, -0.11800000000000001f, 0.11900000000000001f, -0.12f, 0.121f, -0.122f, 0.123f, -0.124f, 0.125f, -0.126f, 0.127f, -0.128f, 0.129f, -0.13f, 0.131f, -0.132f, 0.133f, -0.134f, 0.135f, -0.136f, 0.137f, -0.138f, 0.139f, -0.14f, 0.14100000000000001f, -0.14200000000000002f, 0.14300000000000002f, -0.14400000000000002f, 0.145f, -0.146f, 0.147f, -0.148f, 0.149f, -0.15f, 0.151f, -0.152f, 0.153f, -0.154f, 0.155f, -0.156f, 0.157f, -0.158f, 0.159f, -0.16f, 0.161f, -0.162f, 0.163f, -0.164f, 0.165f, -0.166f, 0.167f, -0.168f, 0.169f, -0.17f, 0.171f, -0.17200000000000001f, 0.17300000000000001f, -0.17400000000000002f, 0.17500000000000002f, -0.176f, 0.177f, -0.178f, 0.179f, -0.18f, 0.181f, -0.182f, 0.183f, -0.184f, 0.185f, -0.186f, 0.187f, -0.188f, 0.189f, -0.19f, 0.191f, -0.192f, 0.193f, -0.194f, 0.195f, -0.196f, 0.197f, -0.198f, 0.199f, -0.2f, 0.201f, -0.202f, 0.203f, -0.20400000000000001f, 0.20500000000000002f, -0.20600000000000002f, 0.20700000000000002f, -0.20800000000000002f, 0.209f, -0.21f, 0.211f, -0.212f, 0.213f, -0.214f, 0.215f, -0.216f, 0.217f, -0.218f, 0.219f, -0.22f, 0.221f, -0.222f, 0.223f, -0.224f, 0.225f, -0.226f, 0.227f, -0.228f, 0.229f, -0.23f, 0.231f, -0.232f, 0.233f, -0.234f, 0.23500000000000001f, -0.23600000000000002f, 0.23700000000000002f, -0.23800000000000002f, 0.23900000000000002f, -0.24f, 0.241f, -0.242f, 0.243f, -0.244f, 0.245f, -0.246f, 0.247f, -0.248f, 0.249f, -0.25f, 0.251f, -0.252f, 0.253f, -0.254f, 0.255f, -0.256f, 0.257f, -0.258f, 0.259f, -0.26f, 0.261f, -0.262f, 0.263f, -0.264f, 0.265f, -0.266f, 0.267f, -0.268f, 0.269f, -0.27f, 0.271f, -0.272f, 0.273f, -0.274f, 0.275f, -0.276f, 0.277f, -0.278f, 0.279f, -0.28f, 0.281f, -0.28200000000000003f, 0.28300000000000003f, -0.28400000000000003f, 0.28500000000000003f, -0.28600000000000003f, 0.28700000000000003f, -0.28800000000000003f, 0.289f, -0.29f, 0.291f, -0.292f, 0.293f, -0.294f, 0.295f, -0.296f, 0.297f, -0.298f, 0.299f, -0.3f, 0.301f, -0.302f, 0.303f, -0.304f, 0.305f, -0.306f, 0.307f, -0.308f, 0.309f, -0.31f, 0.311f, -0.312f, 0.313f, -0.314f, 0.315f, -0.316f, 0.317f, -0.318f, 0.319f, -0.32f, 0.321f, -0.322f, 0.323f, -0.324f, 0.325f, -0.326f, 0.327f, -0.328f, 0.329f, -0.33f, 0.331f, -0.332f, 0.333f, -0.334f, 0.335f, -0.336f, 0.337f, -0.338f, 0.339f, -0.34f, 0.341f, -0.342f, 0.343f, -0.34400000000000003f, 0.34500000000000003f, -0.34600000000000003f, 0.34700000000000003f, -0.34800000000000003f, 0.34900000000000003f, -0.35000000000000003f, 0.35100000000000003f, -0.352f, 0.353f, -0.354f, 0.355f, -0.356f, 0.357f, -0.358f, 0.359f, -0.36f, 0.361f, -0.362f, 0.363f, -0.364f, 0.365f, -0.366f, 0.367f, -0.368f, 0.369f, -0.37f, 0.371f, -0.372f, 0.373f, -0.374f, 0.375f, -0.376f, 0.377f, -0.378f, 0.379f, -0.38f, 0.381f, -0.382f, 0.383f, -0.384f, 0.385f, -0.386f, 0.387f, -0.388f, 0.389f, -0.39f, 0.391f, -0.392f, 0.393f, -0.394f, 0.395f, -0.396f, 0.397f, -0.398f, 0.399f, -0.4f, 0.401f, -0.402f, 0.403f, -0.404f, 0.405f, -0.406f, 0.40700000000000003f, -0.40800000000000003f, 0.40900000000000003f, -0.41000000000000003f, 0.41100000000000003f, -0.41200000000000003f, 0.41300000000000003f, -0.41400000000000003f, 0.41500000000000004f, -0.41600000000000004f, 0.417f, -0.418f, 0.419f, -0.42f, 0.421f, -0.422f, 0.423f, -0.424f, 0.425f, -0.426f, 0.427f, -0.428f, 0.429f, -0.43f, 0.431f, -0.432f, 0.433f, -0.434f, 0.435f, -0.436f, 0.437f, -0.438f, 0.439f, -0.44f, 0.441f, -0.442f, 0.443f, -0.444f, 0.445f, -0.446f, 0.447f, -0.448f, 0.449f, -0.45f, 0.451f, -0.452f, 0.453f, -0.454f, 0.455f, -0.456f, 0.457f, -0.458f, 0.459f, -0.46f, 0.461f, -0.462f, 0.463f, -0.464f, 0.465f, -0.466f, 0.467f, -0.468f, 0.46900000000000003f, -0.47000000000000003f, 0.47100000000000003f, -0.47200000000000003f, 0.47300000000000003f, -0.47400000000000003f, 0.47500000000000003f, -0.47600000000000003f, 0.47700000000000004f, -0.47800000000000004f, 0.47900000000000004f, -0.48f, 0.481f, -0.482f, 0.483f, -0.484f, 0.485f, -0.486f, 0.487f, -0.488f, 0.489f, -0.49f, 0.491f, -0.492f, 0.493f, -0.494f, 0.495f, -0.496f, 0.497f, -0.498f, 0.499f, -0.5f, 0.501f, -0.502f, 0.503f, -0.504f, 0.505f, -0.506f, 0.507f, -0.508f, 0.509f, -0.51f, 0.511f, -0.512f, 0.513f, -0.514f, 0.515f, -0.516f, 0.517f, -0.518f, 0.519f, -0.52f, 0.521f, -0.522f, 0.523f, -0.524f, 0.525f, -0.526f, 0.527f, -0.528f, 0.529f, -0.53f, 0.531f, -0.532f, 0.533f, -0.534f, 0.535f, -0.536f, 0.537f, -0.538f, 0.539f, -0.54f, 0.541f, -0.542f, 0.543f, -0.544f, 0.545f, -0.546f, 0.547f, -0.548f, 0.549f, -0.55f, 0.551f, -0.552f, 0.553f, -0.554f, 0.555f, -0.556f, 0.557f, -0.558f, 0.559f, -0.56f, 0.561f, -0.562f, 0.5630000000000001f, -0.5640000000000001f, 0.5650000000000001f, -0.5660000000000001f, 0.5670000000000001f, -0.5680000000000001f, 0.5690000000000001f, -0.5700000000000001f, 0.5710000000000001f, -0.5720000000000001f, 0.5730000000000001f, -0.5740000000000001f, 0.5750000000000001f, -0.5760000000000001f, 0.577f, -0.578f, 0.579f, -0.58f, 0.581f, -0.582f, 0.583f, -0.584f, 0.585f, -0.586f, 0.587f, -0.588f, 0.589f, -0.59f, 0.591f, -0.592f, 0.593f, -0.594f, 0.595f, -0.596f, 0.597f, -0.598f, 0.599f, -0.6f, 0.601f, -0.602f, 0.603f, -0.604f, 0.605f, -0.606f, 0.607f, -0.608f, 0.609f, -0.61f, 0.611f, -0.612f, 0.613f, -0.614f, 0.615f, -0.616f, 0.617f, -0.618f, 0.619f, -0.62f, 0.621f, -0.622f, 0.623f, -0.624f, 0.625f, -0.626f, 0.627f, -0.628f, 0.629f, -0.63f, 0.631f, -0.632f, 0.633f, -0.634f, 0.635f, -0.636f, 0.637f, -0.638f, 0.639f, -0.64f, 0.641f, -0.642f, 0.643f, -0.644f, 0.645f, -0.646f, 0.647f, -0.648f, 0.649f, -0.65f, 0.651f, -0.652f, 0.653f, -0.654f, 0.655f, -0.656f, 0.657f, -0.658f, 0.659f, -0.66f, 0.661f, -0.662f, 0.663f, -0.664f, 0.665f, -0.666f, 0.667f, -0.668f, 0.669f, -0.67f, 0.671f, -0.672f, 0.673f, -0.674f, 0.675f, -0.676f, 0.677f, -0.678f, 0.679f, -0.68f, 0.681f, -0.682f, 0.683f, -0.684f, 0.685f, -0.686f, 0.687f, -0.6880000000000001f, 0.6890000000000001f, -0.6900000000000001f, 0.6910000000000001f, -0.6920000000000001f, 0.6930000000000001f, -0.6940000000000001f, 0.6950000000000001f, -0.6960000000000001f, 0.6970000000000001f, -0.6980000000000001f, 0.6990000000000001f, -0.7000000000000001f, 0.7010000000000001f, -0.7020000000000001f, 0.7030000000000001f, -0.704f, 0.705f, -0.706f, 0.707f, -0.708f, 0.709f, -0.71f, 0.711f, -0.712f, 0.713f, -0.714f, 0.715f, -0.716f, 0.717f, -0.718f, 0.719f, -0.72f, 0.721f, -0.722f, 0.723f, -0.724f, 0.725f, -0.726f, 0.727f, -0.728f, 0.729f, -0.73f, 0.731f, -0.732f, 0.733f, -0.734f, 0.735f, -0.736f, 0.737f, -0.738f, 0.739f, -0.74f, 0.741f, -0.742f, 0.743f, -0.744f, 0.745f, -0.746f, 0.747f, -0.748f, 0.749f, -0.75f, 0.751f, -0.752f, 0.753f, -0.754f, 0.755f, -0.756f, 0.757f, -0.758f, 0.759f, -0.76f, 0.761f, -0.762f, 0.763f, -0.764f, 0.765f, -0.766f, 0.767f, -0.768f, 0.769f, -0.77f, 0.771f, -0.772f, 0.773f, -0.774f, 0.775f, -0.776f, 0.777f, -0.778f, 0.779f, -0.78f, 0.781f, -0.782f, 0.783f, -0.784f, 0.785f, -0.786f, 0.787f, -0.788f, 0.789f, -0.79f, 0.791f, -0.792f, 0.793f, -0.794f, 0.795f, -0.796f, 0.797f, -0.798f, 0.799f, -0.8f, 0.801f, -0.802f, 0.803f, -0.804f, 0.805f, -0.806f, 0.807f, -0.808f, 0.809f, -0.81f, 0.811f, -0.812f, 0.8130000000000001f, -0.8140000000000001f, 0.8150000000000001f, -0.8160000000000001f, 0.8170000000000001f, -0.8180000000000001f, 0.8190000000000001f, -0.8200000000000001f, 0.8210000000000001f, -0.8220000000000001f, 0.8230000000000001f, -0.8240000000000001f, 0.8250000000000001f, -0.8260000000000001f, 0.8270000000000001f, -0.8280000000000001f, 0.8290000000000001f, -0.8300000000000001f, 0.8310000000000001f, -0.8320000000000001f, 0.833f, -0.834f, 0.835f, -0.836f, 0.837f, -0.838f, 0.839f, -0.84f, 0.841f, -0.842f, 0.843f, -0.844f, 0.845f, -0.846f, 0.847f, -0.848f, 0.849f, -0.85f, 0.851f, -0.852f, 0.853f, -0.854f, 0.855f, -0.856f, 0.857f, -0.858f, 0.859f, -0.86f, 0.861f, -0.862f, 0.863f, -0.864f, 0.865f, -0.866f, 0.867f, -0.868f, 0.869f, -0.87f, 0.871f, -0.872f, 0.873f, -0.874f, 0.875f, -0.876f, 0.877f, -0.878f, 0.879f, -0.88f, 0.881f, -0.882f, 0.883f, -0.884f, 0.885f, -0.886f, 0.887f, -0.888f, 0.889f, -0.89f, 0.891f, -0.892f, 0.893f, -0.894f, 0.895f, -0.896f, 0.897f, -0.898f, 0.899f, -0.9f, 0.901f, -0.902f, 0.903f, -0.904f, 0.905f, -0.906f, 0.907f, -0.908f, 0.909f, -0.91f, 0.911f, -0.912f, 0.913f, -0.914f, 0.915f, -0.916f, 0.917f, -0.918f, 0.919f, -0.92f, 0.921f, -0.922f, 0.923f, -0.924f, 0.925f, -0.926f, 0.927f, -0.928f, 0.929f, -0.93f, 0.931f, -0.932f, 0.933f, -0.934f, 0.935f, -0.936f, 0.937f, -0.9380000000000001f, 0.9390000000000001f, -0.9400000000000001f, 0.9410000000000001f, -0.9420000000000001f, 0.9430000000000001f, -0.9440000000000001f, 0.9450000000000001f, -0.9460000000000001f, 0.9470000000000001f, -0.9480000000000001f, 0.9490000000000001f, -0.9500000000000001f, 0.9510000000000001f, -0.9520000000000001f, 0.9530000000000001f, -0.9540000000000001f, 0.9550000000000001f, -0.9560000000000001f, 0.9570000000000001f, -0.9580000000000001f, 0.9590000000000001f, -0.96f, 0.961f, -0.962f, 0.963f, -0.964f, 0.965f, -0.966f, 0.967f, -0.968f, 0.969f, -0.97f, 0.971f, -0.972f, 0.973f, -0.974f, 0.975f, -0.976f, 0.977f, -0.978f, 0.979f, -0.98f, 0.981f, -0.982f, 0.983f, -0.984f, 0.985f, -0.986f, 0.987f, -0.988f, 0.989f, -0.99f, 0.991f, -0.992f, 0.993f, -0.994f, 0.995f, -0.996f, 0.997f, -0.998f, 0.999f, -1.0f, 1.0010000000000001f, -1.002f, 1.0030000000000001f, -1.004f, 1.0050000000000001f, -1.006f, 1.0070000000000001f, -1.008f, 1.0090000000000001f, -1.01f, 1.0110000000000001f, -1.012f, 1.0130000000000001f, -1.014f, 1.0150000000000001f, -1.016f, 1.0170000000000001f, -1.018f, 1.0190000000000001f, -1.02f, 1.0210000000000001f, -1.022f, 1.0230000000000001f, -1.024f, 1.025f, -1.026f, 1.027f, -1.028f, 1.029f, -1.03f, 1.031f, -1.032f, 1.033f, -1.034f, 1.035f, -1.036f, 1.037f, -1.038f, 1.039f, -1.04f, 1.041f, -1.042f, 1.043f, -1.044f, 1.045f, -1.046f, 1.047f, -1.048f, 1.049f, -1.05f, 1.051f, -1.052f, 1.053f, -1.054f, 1.055f, -1.056f, 1.057f, -1.058f, 1.059f, -1.06f, 1.061f, -1.062f, 1.063f, -1.064f, 1.065f, -1.066f, 1.067f, -1.068f, 1.069f, -1.07f, 1.071f, -1.072f, 1.073f, -1.074f, 1.075f, -1.076f, 1.077f, -1.078f, 1.079f, -1.08f, 1.081f, -1.082f, 1.083f, -1.084f, 1.085f, -1.086f, 1.087f, -1.088f, 1.089f, -1.09f, 1.091f, -1.092f, 1.093f, -1.094f, 1.095f, -1.096f, 1.097f, -1.098f, 1.099f, -1.1f, 1.101f, -1.102f, 1.103f, -1.104f, 1.105f, -1.106f, 1.107f, -1.108f, 1.109f, -1.11f, 1.111f, -1.112f, 1.113f, -1.114f, 1.115f, -1.116f, 1.117f, -1.118f, 1.119f, -1.12f, 1.121f, -1.122f, 1.123f, -1.124f, 1.125f, -1.1260000000000001f, 1.127f, -1.1280000000000001f, 1.129f, -1.1300000000000001f, 1.131f, -1.1320000000000001f, 1.133f, -1.1340000000000001f, 1.135f, -1.1360000000000001f, 1.137f, -1.1380000000000001f, 1.139f, -1.1400000000000001f, 1.141f, -1.1420000000000001f, 1.143f, -1.1440000000000001f, 1.145f, -1.1460000000000001f, 1.147f, -1.1480000000000001f, 1.149f, -1.1500000000000001f, 1.151f, -1.1520000000000001f, 1.153f, -1.154f, 1.155f, -1.156f, 1.157f, -1.158f, 1.159f, -1.16f, 1.161f, -1.162f, 1.163f, -1.164f, 1.165f, -1.166f, 1.167f, -1.168f, 1.169f, -1.17f, 1.171f, -1.172f, 1.173f, -1.174f, 1.175f, -1.176f, 1.177f, -1.178f, 1.179f, -1.18f, 1.181f, -1.182f, 1.183f, -1.184f, 1.185f, -1.186f, 1.187f, -1.188f, 1.189f, -1.19f, 1.191f, -1.192f, 1.193f, -1.194f, 1.195f, -1.196f, 1.197f, -1.198f, 1.199f, -1.2f, 1.201f, -1.202f, 1.203f, -1.204f, 1.205f, -1.206f, 1.207f, -1.208f, 1.209f, -1.21f, 1.211f, -1.212f, 1.213f, -1.214f, 1.215f, -1.216f, 1.217f, -1.218f, 1.219f, -1.22f, 1.221f, -1.222f, 1.223f, -1.224f, 1.225f, -1.226f, 1.227f, -1.228f, 1.229f, -1.23f, 1.231f, -1.232f, 1.233f, -1.234f, 1.235f, -1.236f, 1.237f, -1.238f, 1.239f, -1.24f, 1.241f, -1.242f, 1.243f, -1.244f, 1.245f, -1.246f, 1.247f, -1.248f, 1.249f, -1.25f, 1.2510000000000001f, -1.252f, 1.2530000000000001f, -1.254f, 1.2550000000000001f, -1.256f, 1.2570000000000001f, -1.258f, 1.2590000000000001f, -1.26f, 1.2610000000000001f, -1.262f, 1.2630000000000001f, -1.264f, 1.2650000000000001f, -1.266f, 1.2670000000000001f, -1.268f, 1.2690000000000001f, -1.27f, 1.2710000000000001f, -1.272f, 1.2730000000000001f, -1.274f, 1.2750000000000001f, -1.276f, 1.2770000000000001f, -1.278f, 1.2790000000000001f, -1.28f, 1.281f, -1.282f, 1.283f, -1.284f, 1.285f, -1.286f, 1.287f, -1.288f, 1.289f, -1.29f, 1.291f, -1.292f, 1.293f, -1.294f, 1.295f, -1.296f, 1.297f, -1.298f, 1.299f, -1.3f, 1.301f, -1.302f, 1.303f, -1.304f, 1.305f, -1.306f, 1.307f, -1.308f, 1.309f, -1.31f, 1.311f, -1.312f, 1.313f, -1.314f, 1.315f, -1.316f, 1.317f, -1.318f, 1.319f, -1.32f, 1.321f, -1.322f, 1.323f, -1.324f, 1.325f, -1.326f, 1.327f, -1.328f, 1.329f, -1.33f, 1.331f, -1.332f, 1.333f, -1.334f, 1.335f, -1.336f, 1.337f, -1.338f, 1.339f, -1.34f, 1.341f, -1.342f, 1.343f, -1.344f, 1.345f, -1.346f, 1.347f, -1.348f, 1.349f, -1.35f, 1.351f, -1.352f, 1.353f, -1.354f, 1.355f, -1.356f, 1.357f, -1.358f, 1.359f, -1.36f, 1.361f, -1.362f, 1.363f, -1.364f, 1.365f, -1.366f, 1.367f, -1.368f, 1.369f, -1.37f, 1.371f, -1.372f, 1.373f, -1.374f, 1.375f, -1.3760000000000001f, 1.377f, -1.3780000000000001f, 1.379f, -1.3800000000000001f, 1.381f, -1.3820000000000001f, 1.383f, -1.3840000000000001f, 1.385f, -1.3860000000000001f, 1.387f, -1.3880000000000001f, 1.389f, -1.3900000000000001f, 1.391f, -1.3920000000000001f, 1.393f, -1.3940000000000001f, 1.395f, -1.3960000000000001f, 1.397f, -1.3980000000000001f, 1.399f, -1.4000000000000001f, 1.401f, -1.4020000000000001f, 1.403f, -1.4040000000000001f, 1.405f, -1.4060000000000001f, 1.407f, -1.408f, 1.409f, -1.41f, 1.411f, -1.412f, 1.413f, -1.414f, 1.415f, -1.416f, 1.417f, -1.418f, 1.419f, -1.42f, 1.421f, -1.422f, 1.423f, -1.424f, 1.425f, -1.426f, 1.427f, -1.428f, 1.429f, -1.43f, 1.431f, -1.432f, 1.433f, -1.434f, 1.435f, -1.436f, 1.437f, -1.438f, 1.439f, -1.44f, 1.441f, -1.442f, 1.443f, -1.444f, 1.445f, -1.446f, 1.447f, -1.448f, 1.449f, -1.45f, 1.451f, -1.452f, 1.453f, -1.454f, 1.455f, -1.456f, 1.457f, -1.458f, 1.459f, -1.46f, 1.461f, -1.462f, 1.463f, -1.464f, 1.465f, -1.466f, 1.467f, -1.468f, 1.469f, -1.47f, 1.471f, -1.472f, 1.473f, -1.474f, 1.475f, -1.476f, 1.477f, -1.478f, 1.479f, -1.48f, 1.481f, -1.482f, 1.483f, -1.484f, 1.485f, -1.486f, 1.487f, -1.488f, 1.489f, -1.49f, 1.491f, -1.492f, 1.493f, -1.494f, 1.495f, -1.496f, 1.497f, -1.498f, 1.499f, -1.5f, 1.5010000000000001f, -1.502f, 1.5030000000000001f, -1.504f, 1.5050000000000001f, -1.506f, 1.5070000000000001f, -1.508f, 1.5090000000000001f, -1.51f, 1.5110000000000001f, -1.512f, 1.5130000000000001f, -1.514f, 1.5150000000000001f, -1.516f, 1.5170000000000001f, -1.518f, 1.5190000000000001f, -1.52f, 1.5210000000000001f, -1.522f, 1.5230000000000001f, -1.524f, 1.5250000000000001f, -1.526f, 1.5270000000000001f, -1.528f, 1.5290000000000001f, -1.53f, 1.5310000000000001f, -1.532f, 1.5330000000000001f, -1.534f, 1.5350000000000001f, -1.536f, 1.537f, -1.538f, 1.539f, -1.54f, 1.541f, -1.542f, 1.543f, -1.544f, 1.545f, -1.546f, 1.547f, -1.548f, 1.549f, -1.55f, 1.551f, -1.552f, 1.553f, -1.554f, 1.555f, -1.556f, 1.557f, -1.558f, 1.559f, -1.56f, 1.561f, -1.562f, 1.563f, -1.564f, 1.565f, -1.566f, 1.567f, -1.568f, 1.569f, -1.57f, 1.571f, -1.572f, 1.573f, -1.574f, 1.575f, -1.576f, 1.577f, -1.578f, 1.579f, -1.58f, 1.581f, -1.582f, 1.583f, -1.584f, 1.585f, -1.586f, 1.587f, -1.588f, 1.589f, -1.59f, 1.591f, -1.592f, 1.593f, -1.594f, 1.595f, -1.596f, 1.597f, -1.598f, 1.599f, -1.6f, 1.601f, -1.602f, 1.603f, -1.604f, 1.605f, -1.606f, 1.607f, -1.608f, 1.609f, -1.61f, 1.611f, -1.612f, 1.613f, -1.614f, 1.615f, -1.616f, 1.617f, -1.618f, 1.619f, -1.62f, 1.621f, -1.622f, 1.623f, -1.624f, 1.625f, -1.6260000000000001f, 1.627f, -1.6280000000000001f, 1.629f, -1.6300000000000001f, 1.631f, -1.6320000000000001f, 1.633f, -1.6340000000000001f, 1.635f, -1.6360000000000001f, 1.637f, -1.6380000000000001f, 1.639f, -1.6400000000000001f, 1.641f, -1.6420000000000001f, 1.643f, -1.6440000000000001f, 1.645f, -1.6460000000000001f, 1.647f, -1.6480000000000001f, 1.649f, -1.6500000000000001f, 1.651f, -1.6520000000000001f, 1.653f, -1.6540000000000001f, 1.655f, -1.6560000000000001f, 1.657f, -1.6580000000000001f, 1.659f, -1.6600000000000001f, 1.661f, -1.6620000000000001f, 1.663f, -1.6640000000000001f, 1.665f, -1.666f, 1.667f, -1.668f, 1.669f, -1.67f, 1.671f, -1.672f, 1.673f, -1.674f, 1.675f, -1.676f, 1.677f, -1.678f, 1.679f, -1.68f, 1.681f, -1.682f, 1.683f, -1.684f, 1.685f, -1.686f, 1.687f, -1.688f, 1.689f, -1.69f, 1.691f, -1.692f, 1.693f, -1.694f, 1.695f, -1.696f, 1.697f, -1.698f, 1.699f, -1.7f, 1.701f, -1.702f, 1.703f, -1.704f, 1.705f, -1.706f, 1.707f, -1.708f, 1.709f, -1.71f, 1.711f, -1.712f, 1.713f, -1.714f, 1.715f, -1.716f, 1.717f, -1.718f, 1.719f, -1.72f, 1.721f, -1.722f, 1.723f, -1.724f, 1.725f, -1.726f, 1.727f, -1.728f, 1.729f, -1.73f, 1.731f, -1.732f, 1.733f, -1.734f, 1.735f, -1.736f, 1.737f, -1.738f, 1.739f, -1.74f, 1.741f, -1.742f, 1.743f, -1.744f, 1.745f, -1.746f, 1.747f, -1.748f, 1.749f, -1.75f, 1.7510000000000001f, -1.752f, 1.7530000000000001f, -1.754f, 1.7550000000000001f, -1.756f, 1.7570000000000001f, -1.758f, 1.7590000000000001f, -1.76f, 1.7610000000000001f, -1.762f, 1.7630000000000001f, -1.764f, 1.7650000000000001f, -1.766f, 1.7670000000000001f, -1.768f, 1.7690000000000001f, -1.77f, 1.7710000000000001f, -1.772f, 1.7730000000000001f, -1.774f, 1.7750000000000001f, -1.776f, 1.7770000000000001f, -1.778f, 1.7790000000000001f, -1.78f, 1.7810000000000001f, -1.782f, 1.7830000000000001f, -1.784f, 1.7850000000000001f, -1.786f, 1.7870000000000001f, -1.788f, 1.7890000000000001f, -1.79f, 1.7910000000000001f, -1.792f, 1.793f, -1.794f, 1.795f, -1.796f, 1.797f, -1.798f, 1.799f, -1.8f, 1.801f, -1.802f, 1.803f, -1.804f, 1.805f, -1.806f, 1.807f, -1.808f, 1.809f, -1.81f, 1.811f, -1.812f, 1.813f, -1.814f, 1.815f, -1.816f, 1.817f, -1.818f, 1.819f, -1.82f, 1.821f, -1.822f, 1.823f, -1.824f, 1.825f, -1.826f, 1.827f, -1.828f, 1.829f, -1.83f, 1.831f, -1.832f, 1.833f, -1.834f, 1.835f, -1.836f, 1.837f, -1.838f, 1.839f, -1.84f, 1.841f, -1.842f, 1.843f, -1.844f, 1.845f, -1.846f, 1.847f, -1.848f, 1.849f, -1.85f, 1.851f, -1.852f, 1.853f, -1.854f, 1.855f, -1.856f, 1.857f, -1.858f, 1.859f, -1.86f, 1.861f, -1.862f, 1.863f, -1.864f, 1.865f, -1.866f, 1.867f, -1.868f, 1.869f, -1.87f, 1.871f, -1.872f, 1.873f, -1.874f, 1.875f, -1.8760000000000001f, 1.877f, -1.8780000000000001f, 1.879f, -1.8800000000000001f, 1.881f, -1.8820000000000001f, 1.883f, -1.8840000000000001f, 1.885f, -1.8860000000000001f, 1.887f, -1.8880000000000001f, 1.889f, -1.8900000000000001f, 1.891f, -1.8920000000000001f, 1.893f, -1.8940000000000001f, 1.895f, -1.8960000000000001f, 1.897f, -1.8980000000000001f, 1.899f, -1.9000000000000001f, 1.901f, -1.9020000000000001f, 1.903f, -1.9040000000000001f, 1.905f, -1.9060000000000001f, 1.907f, -1.9080000000000001f, 1.909f, -1.9100000000000001f, 1.911f, -1.9120000000000001f, 1.913f, -1.9140000000000001f, 1.915f, -1.9160000000000001f, 1.917f, -1.9180000000000001f, 1.919f, -1.92f, 1.921f, -1.922f, 1.923f, -1.924f, 1.925f, -1.926f, 1.927f, -1.928f, 1.929f, -1.93f, 1.931f, -1.932f, 1.933f, -1.934f, 1.935f, -1.936f, 1.937f, -1.938f, 1.939f, -1.94f, 1.941f, -1.942f, 1.943f, -1.944f, 1.945f, -1.946f, 1.947f, -1.948f, 1.949f, -1.95f, 1.951f, -1.952f, 1.953f, -1.954f, 1.955f, -1.956f, 1.957f, -1.958f, 1.959f, -1.96f, 1.961f, -1.962f, 1.963f, -1.964f, 1.965f, -1.966f, 1.967f, -1.968f, 1.969f, -1.97f, 1.971f, -1.972f, 1.973f, -1.974f, 1.975f, -1.976f, 1.977f, -1.978f, 1.979f, -1.98f, 1.981f, -1.982f, 1.983f, -1.984f, 1.985f, -1.986f, 1.987f, -1.988f, 1.989f, -1.99f, 1.991f, -1.992f, 1.993f, -1.994f, 1.995f, -1.996f, 1.997f, -1.998f, 1.999f, -2.0f, 2.001f, -2.0020000000000002f, 2.003f, -2.004f, 2.005f, -2.0060000000000002f, 2.007f, -2.008f, 2.009f, -2.0100000000000002f, 2.011f, -2.012f, 2.013f, -2.0140000000000002f, 2.015f, -2.016f, 2.017f, -2.0180000000000002f, 2.019f, -2.02f, 2.021f, -2.0220000000000002f, 2.023f, -2.024f, 2.025f, -2.0260000000000002f, 2.027f, -2.028f, 2.029f, -2.0300000000000002f, 2.031f, -2.032f, 2.033f, -2.0340000000000003f, 2.035f, -2.036f, 2.037f, -2.0380000000000003f, 2.039f, -2.04f, 2.041f, -2.0420000000000003f, 2.043f, -2.044f, 2.045f, -2.0460000000000003f, 2.047f, -2.048f, 2.049f, -2.05f, 2.051f, -2.052f, 2.053f, -2.054f, 2.055f, -2.056f, 2.057f, -2.058f, 2.059f, -2.06f, 2.061f, -2.062f, 2.063f, -2.064f, 2.065f, -2.066f, 2.067f, -2.068f, 2.069f, -2.07f, 2.071f, -2.072f, 2.073f, -2.074f, 2.075f, -2.076f, 2.077f, -2.078f, 2.079f, -2.08f, 2.081f, -2.082f, 2.083f, -2.084f, 2.085f, -2.086f, 2.087f, -2.088f, 2.089f, -2.09f, 2.091f, -2.092f, 2.093f, -2.094f, 2.095f, -2.096f, 2.097f, -2.098f, 2.099f, -2.1f, 2.101f, -2.102f, 2.103f, -2.104f, 2.105f, -2.106f, 2.107f, -2.108f, 2.109f, -2.11f, 2.111f, -2.112f, 2.113f, -2.114f, 2.115f, -2.116f, 2.117f, -2.118f, 2.119f, -2.12f, 2.121f, -2.122f, 2.123f, -2.124f, 2.125f, -2.126f, 2.1270000000000002f, -2.128f, 2.129f, -2.13f, 2.1310000000000002f, -2.132f, 2.133f, -2.134f, 2.1350000000000002f, -2.136f, 2.137f, -2.138f, 2.1390000000000002f, -2.14f, 2.141f, -2.142f, 2.1430000000000002f, -2.144f, 2.145f, -2.146f, 2.1470000000000002f, -2.148f, 2.149f, -2.15f, 2.1510000000000002f, -2.152f, 2.153f, -2.154f, 2.1550000000000002f, -2.156f, 2.157f, -2.158f, 2.1590000000000003f, -2.16f, 2.161f, -2.162f, 2.1630000000000003f, -2.164f, 2.165f, -2.166f, 2.1670000000000003f, -2.168f, 2.169f, -2.17f, 2.1710000000000003f, -2.172f, 2.173f, -2.174f, 2.1750000000000003f, -2.176f, 2.177f, -2.178f, 2.179f, -2.18f, 2.181f, -2.182f, 2.183f, -2.184f, 2.185f, -2.186f, 2.187f, -2.188f, 2.189f, -2.19f, 2.191f, -2.192f, 2.193f, -2.194f, 2.195f, -2.196f, 2.197f, -2.198f, 2.199f, -2.2f, 2.201f, -2.202f, 2.203f, -2.204f, 2.205f, -2.206f, 2.207f, -2.208f, 2.209f, -2.21f, 2.211f, -2.212f, 2.213f, -2.214f, 2.215f, -2.216f, 2.217f, -2.218f, 2.219f, -2.22f, 2.221f, -2.222f, 2.223f, -2.224f, 2.225f, -2.226f, 2.227f, -2.228f, 2.229f, -2.23f, 2.231f, -2.232f, 2.233f, -2.234f, 2.235f, -2.236f, 2.237f, -2.238f, 2.239f, -2.24f, 2.241f, -2.242f, 2.243f, -2.244f, 2.245f, -2.246f, 2.247f, -2.248f, 2.249f, -2.25f, 2.251f, -2.2520000000000002f, 2.253f, -2.254f, 2.255f, -2.2560000000000002f, 2.257f, -2.258f, 2.259f, -2.2600000000000002f, 2.261f, -2.262f, 2.263f, -2.2640000000000002f, 2.265f, -2.266f, 2.267f, -2.2680000000000002f, 2.269f, -2.27f, 2.271f, -2.2720000000000002f, 2.273f, -2.274f, 2.275f, -2.2760000000000002f, 2.277f, -2.278f, 2.279f, -2.2800000000000002f, 2.281f, -2.282f, 2.283f, -2.2840000000000003f, 2.285f, -2.286f, 2.287f, -2.2880000000000003f, 2.289f, -2.29f, 2.291f, -2.2920000000000003f, 2.293f, -2.294f, 2.295f, -2.2960000000000003f, 2.297f, -2.298f, 2.299f, -2.3000000000000003f, 2.301f, -2.302f, 2.303f, -2.3040000000000003f, 2.305f, -2.306f, 2.307f, -2.308f, 2.309f, -2.31f, 2.311f, -2.312f, 2.313f, -2.314f, 2.315f, -2.316f, 2.317f, -2.318f, 2.319f, -2.32f, 2.321f, -2.322f, 2.323f, -2.324f, 2.325f, -2.326f, 2.327f, -2.328f, 2.329f, -2.33f, 2.331f, -2.332f, 2.333f, -2.334f, 2.335f, -2.336f, 2.337f, -2.338f, 2.339f, -2.34f, 2.341f, -2.342f, 2.343f, -2.344f, 2.345f, -2.346f, 2.347f, -2.348f, 2.349f, -2.35f, 2.351f, -2.352f, 2.353f, -2.354f, 2.355f, -2.356f, 2.357f, -2.358f, 2.359f, -2.36f, 2.361f, -2.362f, 2.363f, -2.364f, 2.365f, -2.366f, 2.367f, -2.368f, 2.369f, -2.37f, 2.371f, -2.372f, 2.373f, -2.374f, 2.375f, -2.376f, 2.3770000000000002f, -2.378f, 2.379f, -2.38f, 2.3810000000000002f, -2.382f, 2.383f, -2.384f, 2.3850000000000002f, -2.386f, 2.387f, -2.388f, 2.3890000000000002f, -2.39f, 2.391f, -2.392f, 2.3930000000000002f, -2.394f, 2.395f, -2.396f, 2.3970000000000002f, -2.398f, 2.399f, -2.4f, 2.4010000000000002f, -2.402f, 2.403f, -2.404f, 2.4050000000000002f, -2.406f, 2.407f, -2.408f, 2.4090000000000003f, -2.41f, 2.411f, -2.412f, 2.4130000000000003f, -2.414f, 2.415f, -2.416f, 2.4170000000000003f, -2.418f, 2.419f, -2.42f, 2.4210000000000003f, -2.422f, 2.423f, -2.424f, 2.4250000000000003f, -2.426f, 2.427f, -2.428f, 2.4290000000000003f, -2.43f, 2.431f, -2.432f, 2.433f, -2.434f, 2.435f, -2.436f, 2.437f, -2.438f, 2.439f, -2.44f, 2.441f, -2.442f, 2.443f, -2.444f, 2.445f, -2.446f, 2.447f, -2.448f, 2.449f, -2.45f, 2.451f, -2.452f, 2.453f, -2.454f, 2.455f, -2.456f, 2.457f, -2.458f, 2.459f, -2.46f, 2.461f, -2.462f, 2.463f, -2.464f, 2.465f, -2.466f, 2.467f, -2.468f, 2.469f, -2.47f, 2.471f, -2.472f, 2.473f, -2.474f, 2.475f, -2.476f, 2.477f, -2.478f, 2.479f, -2.48f, 2.481f, -2.482f, 2.483f, -2.484f, 2.485f, -2.486f, 2.487f, -2.488f, 2.489f, -2.49f, 2.491f, -2.492f, 2.493f, -2.494f, 2.495f, -2.496f, 2.497f, -2.498f, 2.499f, -2.5f, 2.501f, -2.5020000000000002f, 2.503f, -2.504f, 2.505f, -2.5060000000000002f, 2.507f, -2.508f, 2.509f, -2.5100000000000002f, 2.511f, -2.512f, 2.513f, -2.5140000000000002f, 2.515f, -2.516f, 2.517f, -2.5180000000000002f, 2.519f, -2.52f, 2.521f, -2.5220000000000002f, 2.523f, -2.524f, 2.525f, -2.5260000000000002f, 2.527f, -2.528f, 2.529f, -2.5300000000000002f, 2.531f, -2.532f, 2.533f, -2.5340000000000003f, 2.535f, -2.536f, 2.537f, -2.5380000000000003f, 2.539f, -2.54f, 2.541f, -2.5420000000000003f, 2.543f, -2.544f, 2.545f, -2.5460000000000003f, 2.547f, -2.548f, 2.549f, -2.5500000000000003f, 2.551f, -2.552f, 2.553f, -2.5540000000000003f, 2.555f, -2.556f, 2.557f, -2.5580000000000003f, 2.559f, -2.56f, 2.561f, -2.562f, 2.563f, -2.564f, 2.565f, -2.566f, 2.567f, -2.568f, 2.569f, -2.57f, 2.571f, -2.572f, 2.573f, -2.574f, 2.575f, -2.576f, 2.577f, -2.578f, 2.579f, -2.58f, 2.581f, -2.582f, 2.583f, -2.584f, 2.585f, -2.586f, 2.587f, -2.588f, 2.589f, -2.59f, 2.591f, -2.592f, 2.593f, -2.594f, 2.595f, -2.596f, 2.597f, -2.598f, 2.599f, -2.6f, 2.601f, -2.602f, 2.603f, -2.604f, 2.605f, -2.606f, 2.607f, -2.608f, 2.609f, -2.61f, 2.611f, -2.612f, 2.613f, -2.614f, 2.615f, -2.616f, 2.617f, -2.618f, 2.619f, -2.62f, 2.621f, -2.622f, 2.623f, -2.624f, 2.625f, -2.626f, 2.6270000000000002f, -2.628f, 2.629f, -2.63f, 2.6310000000000002f, -2.632f, 2.633f, -2.634f, 2.6350000000000002f, -2.636f, 2.637f, -2.638f, 2.6390000000000002f, -2.64f, 2.641f, -2.642f, 2.6430000000000002f, -2.644f, 2.645f, -2.646f, 2.6470000000000002f, -2.648f, 2.649f, -2.65f, 2.6510000000000002f, -2.652f, 2.653f, -2.654f, 2.6550000000000002f, -2.656f, 2.657f, -2.658f, 2.6590000000000003f, -2.66f, 2.661f, -2.662f, 2.6630000000000003f, -2.664f, 2.665f, -2.666f, 2.6670000000000003f, -2.668f, 2.669f, -2.67f, 2.6710000000000003f, -2.672f, 2.673f, -2.674f, 2.6750000000000003f, -2.676f, 2.677f, -2.678f, 2.6790000000000003f, -2.68f, 2.681f, -2.682f, 2.6830000000000003f, -2.684f, 2.685f, -2.686f, 2.6870000000000003f, -2.688f, 2.689f, -2.69f, 2.691f, -2.692f, 2.693f, -2.694f, 2.695f, -2.696f, 2.697f, -2.698f, 2.699f, -2.7f, 2.701f, -2.702f, 2.703f, -2.704f, 2.705f, -2.706f, 2.707f, -2.708f, 2.709f, -2.71f, 2.711f, -2.712f, 2.713f, -2.714f, 2.715f, -2.716f, 2.717f, -2.718f, 2.719f, -2.72f, 2.721f, -2.722f, 2.723f, -2.724f, 2.725f, -2.726f, 2.727f, -2.728f, 2.729f, -2.73f, 2.731f, -2.732f, 2.733f, -2.734f, 2.735f, -2.736f, 2.737f, -2.738f, 2.739f, -2.74f, 2.741f, -2.742f, 2.743f, -2.744f, 2.745f, -2.746f, 2.747f, -2.748f, 2.749f, -2.75f, 2.751f, -2.7520000000000002f, 2.753f, -2.754f, 2.755f, -2.7560000000000002f, 2.757f, -2.758f, 2.759f, -2.7600000000000002f, 2.761f, -2.762f, 2.763f, -2.7640000000000002f, 2.765f, -2.766f, 2.767f, -2.7680000000000002f, 2.769f, -2.77f, 2.771f, -2.7720000000000002f, 2.773f, -2.774f, 2.775f, -2.7760000000000002f, 2.777f, -2.778f, 2.779f, -2.7800000000000002f, 2.781f, -2.782f, 2.783f, -2.7840000000000003f, 2.785f, -2.786f, 2.787f, -2.7880000000000003f, 2.789f, -2.79f, 2.791f, -2.7920000000000003f, 2.793f, -2.794f, 2.795f, -2.7960000000000003f, 2.797f, -2.798f, 2.799f, -2.8000000000000003f, 2.801f, -2.802f, 2.803f, -2.8040000000000003f, 2.805f, -2.806f, 2.807f, -2.8080000000000003f, 2.809f, -2.81f, 2.811f, -2.8120000000000003f, 2.813f, -2.814f, 2.815f, -2.816f, 2.817f, -2.818f, 2.819f, -2.82f, 2.821f, -2.822f, 2.823f, -2.824f, 2.825f, -2.826f, 2.827f, -2.828f, 2.829f, -2.83f, 2.831f, -2.832f, 2.833f, -2.834f, 2.835f, -2.836f, 2.837f, -2.838f, 2.839f, -2.84f, 2.841f, -2.842f, 2.843f, -2.844f, 2.845f, -2.846f, 2.847f, -2.848f, 2.849f, -2.85f, 2.851f, -2.852f, 2.853f, -2.854f, 2.855f, -2.856f, 2.857f, -2.858f, 2.859f, -2.86f, 2.861f, -2.862f, 2.863f, -2.864f, 2.865f, -2.866f, 2.867f, -2.868f, 2.869f, -2.87f, 2.871f, -2.872f, 2.873f, -2.874f, 2.875f, -2.876f, 2.8770000000000002f, -2.878f, 2.879f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.0f, 0.001f, -0.002f, 0.003f, -0.004f, 0.005f, -0.006f, 0.007f, -0.008f, 0.009000000000000001f, -0.01f, 0.011f, -0.012f, 0.013000000000000001f, -0.014f, 0.015f, -0.016f, 0.017f, -0.018000000000000002f, 0.019f, -0.02f, 0.021f, -0.022f, 0.023f, -0.024f, 0.025f, -0.026000000000000002f, 0.027f, -0.028f, 0.029f, -0.03f, 0.031f, -0.032f, 0.033f, -0.034f, 0.035f, -0.036000000000000004f, 0.037f, -0.038f, 0.039f, -0.04f, 0.041f, -0.042f, 0.043000000000000003f, -0.044f, 0.045f, -0.046f, 0.047f, -0.048f, 0.049f, -0.05f, 0.051000000000000004f, -0.052000000000000005f, 0.053f, -0.054f, 0.055f, -0.056f, 0.057f, -0.058f, 0.059000000000000004f, -0.06f, 0.061f, -0.062f, 0.063f, -0.064f, 0.065f, -0.066f, 0.067f, -0.068f, 0.069f, -0.07f, 0.07100000000000001f, -0.07200000000000001f, 0.073f, -0.074f, 0.075f, -0.076f, 0.077f, -0.078f, 0.079f, -0.08f, 0.081f, -0.082f, 0.083f, -0.084f, 0.085f, -0.08600000000000001f, 0.08700000000000001f, -0.088f, 0.089f, -0.09f, 0.091f, -0.092f, 0.093f, -0.094f, 0.095f, -0.096f, 0.097f, -0.098f, 0.099f, -0.1f, 0.101f, -0.10200000000000001f, 0.10300000000000001f, -0.10400000000000001f, 0.105f, -0.106f, 0.107f, -0.108f, 0.109f, -0.11f, 0.111f, -0.112f, 0.113f, -0.114f, 0.115f, -0.116f, 0.117f, -0.11800000000000001f, 0.11900000000000001f, -0.12f, 0.121f, -0.122f, 0.123f, -0.124f, 0.125f, -0.126f, 0.127f, -0.128f, 0.129f, -0.13f, 0.131f, -0.132f, 0.133f, -0.134f, 0.135f, -0.136f, 0.137f, -0.138f, 0.139f, -0.14f, 0.14100000000000001f, -0.14200000000000002f, 0.14300000000000002f, -0.14400000000000002f, 0.145f, -0.146f, 0.147f, -0.148f, 0.149f, -0.15f, 0.151f, -0.152f, 0.153f, -0.154f, 0.155f, -0.156f, 0.157f, -0.158f, 0.159f, -0.16f, 0.161f, -0.162f, 0.163f, -0.164f, 0.165f, -0.166f, 0.167f, -0.168f, 0.169f, -0.17f, 0.171f, -0.17200000000000001f, 0.17300000000000001f, -0.17400000000000002f, 0.17500000000000002f, -0.176f, 0.177f, -0.178f, 0.179f, -0.18f, 0.181f, -0.182f, 0.183f, -0.184f, 0.185f, -0.186f, 0.187f, -0.188f, 0.189f, -0.19f, 0.191f, -0.192f, 0.193f, -0.194f, 0.195f, -0.196f, 0.197f, -0.198f, 0.199f, -0.2f, 0.201f, -0.202f, 0.203f, -0.20400000000000001f, 0.20500000000000002f, -0.20600000000000002f, 0.20700000000000002f, -0.20800000000000002f, 0.209f, -0.21f, 0.211f, -0.212f, 0.213f, -0.214f, 0.215f, -0.216f, 0.217f, -0.218f, 0.219f, -0.22f, 0.221f, -0.222f, 0.223f, -0.224f, 0.225f, -0.226f, 0.227f, -0.228f, 0.229f, -0.23f, 0.231f, -0.232f, 0.233f, -0.234f, 0.23500000000000001f, -0.23600000000000002f, 0.23700000000000002f, -0.23800000000000002f, 0.23900000000000002f, -0.24f, 0.241f, -0.242f, 0.243f, -0.244f, 0.245f, -0.246f, 0.247f, -0.248f, 0.249f, -0.25f, 0.251f, -0.252f, 0.253f, -0.254f, 0.255f, -0.256f, 0.257f, -0.258f, 0.259f, -0.26f, 0.261f, -0.262f, 0.263f, -0.264f, 0.265f, -0.266f, 0.267f, -0.268f, 0.269f, -0.27f, 0.271f, -0.272f, 0.273f, -0.274f, 0.275f, -0.276f, 0.277f, -0.278f, 0.279f, -0.28f, 0.281f, -0.28200000000000003f, 0.28300000000000003f, -0.28400000000000003f, 0.28500000000000003f, -0.28600000000000003f, 0.28700000000000003f, -0.28800000000000003f, 0.289f, -0.29f, 0.291f, -0.292f, 0.293f, -0.294f, 0.295f, -0.296f, 0.297f, -0.298f, 0.299f, -0.3f, 0.301f, -0.302f, 0.303f, -0.304f, 0.305f, -0.306f, 0.307f, -0.308f, 0.309f, -0.31f, 0.311f, -0.312f, 0.313f, -0.314f, 0.315f, -0.316f, 0.317f, -0.318f, 0.319f, -0.32f, 0.321f, -0.322f, 0.323f, -0.324f, 0.325f, -0.326f, 0.327f, -0.328f, 0.329f, -0.33f, 0.331f, -0.332f, 0.333f, -0.334f, 0.335f, -0.336f, 0.337f, -0.338f, 0.339f, -0.34f, 0.341f, -0.342f, 0.343f, -0.34400000000000003f, 0.34500000000000003f, -0.34600000000000003f, 0.34700000000000003f, -0.34800000000000003f, 0.34900000000000003f, -0.35000000000000003f, 0.35100000000000003f, -0.352f, 0.353f, -0.354f, 0.355f, -0.356f, 0.357f, -0.358f, 0.359f, -0.36f, 0.361f, -0.362f, 0.363f, -0.364f, 0.365f, -0.366f, 0.367f, -0.368f, 0.369f, -0.37f, 0.371f, -0.372f, 0.373f, -0.374f, 0.375f, -0.376f, 0.377f, -0.378f, 0.379f, -0.38f, 0.381f, -0.382f, 0.383f, -0.384f, 0.385f, -0.386f, 0.387f, -0.388f, 0.389f, -0.39f, 0.391f, -0.392f, 0.393f, -0.394f, 0.395f, -0.396f, 0.397f, -0.398f, 0.399f, -0.4f, 0.401f, -0.402f, 0.403f, -0.404f, 0.405f, -0.406f, 0.40700000000000003f, -0.40800000000000003f, 0.40900000000000003f, -0.41000000000000003f, 0.41100000000000003f, -0.41200000000000003f, 0.41300000000000003f, -0.41400000000000003f, 0.41500000000000004f, -0.41600000000000004f, 0.417f, -0.418f, 0.419f, -0.42f, 0.421f, -0.422f, 0.423f, -0.424f, 0.425f, -0.426f, 0.427f, -0.428f, 0.429f, -0.43f, 0.431f, -0.432f, 0.433f, -0.434f, 0.435f, -0.436f, 0.437f, -0.438f, 0.439f, -0.44f, 0.441f, -0.442f, 0.443f, -0.444f, 0.445f, -0.446f, 0.447f, -0.448f, 0.449f, -0.45f, 0.451f, -0.452f, 0.453f, -0.454f, 0.455f, -0.456f, 0.457f, -0.458f, 0.459f, -0.46f, 0.461f, -0.462f, 0.463f, -0.464f, 0.465f, -0.466f, 0.467f, -0.468f, 0.46900000000000003f, -0.47000000000000003f, 0.47100000000000003f, -0.47200000000000003f, 0.47300000000000003f, -0.47400000000000003f, 0.47500000000000003f, -0.47600000000000003f, 0.47700000000000004f, -0.47800000000000004f, 0.47900000000000004f, -0.48f, 0.481f, -0.482f, 0.483f, -0.484f, 0.485f, -0.486f, 0.487f, -0.488f, 0.489f, -0.49f, 0.491f, -0.492f, 0.493f, -0.494f, 0.495f, -0.496f, 0.497f, -0.498f, 0.499f, -0.5f, 0.501f, -0.502f, 0.503f, -0.504f, 0.505f, -0.506f, 0.507f, -0.508f, 0.509f, -0.51f, 0.511f, -0.512f, 0.513f, -0.514f, 0.515f, -0.516f, 0.517f, -0.518f, 0.519f, -0.52f, 0.521f, -0.522f, 0.523f, -0.524f, 0.525f, -0.526f, 0.527f, -0.528f, 0.529f, -0.53f, 0.531f, -0.532f, 0.533f, -0.534f, 0.535f, -0.536f, 0.537f, -0.538f, 0.539f, -0.54f, 0.541f, -0.542f, 0.543f, -0.544f, 0.545f, -0.546f, 0.547f, -0.548f, 0.549f, -0.55f, 0.551f, -0.552f, 0.553f, -0.554f, 0.555f, -0.556f, 0.557f, -0.558f, 0.559f, -0.56f, 0.561f, -0.562f, 0.5630000000000001f, -0.5640000000000001f, 0.5650000000000001f, -0.5660000000000001f, 0.5670000000000001f, -0.5680000000000001f, 0.5690000000000001f, -0.5700000000000001f, 0.5710000000000001f, -0.5720000000000001f, 0.5730000000000001f, -0.5740000000000001f, 0.5750000000000001f, -0.5760000000000001f, 0.577f, -0.578f, 0.579f, -0.58f, 0.581f, -0.582f, 0.583f, -0.584f, 0.585f, -0.586f, 0.587f, -0.588f, 0.589f, -0.59f, 0.591f, -0.592f, 0.593f, -0.594f, 0.595f, -0.596f, 0.597f, -0.598f, 0.599f, -0.6f, 0.601f, -0.602f, 0.603f, -0.604f, 0.605f, -0.606f, 0.607f, -0.608f, 0.609f, -0.61f, 0.611f, -0.612f, 0.613f, -0.614f, 0.615f, -0.616f, 0.617f, -0.618f, 0.619f, -0.62f, 0.621f, -0.622f, 0.623f, -0.624f, 0.625f, -0.626f, 0.627f, -0.628f, 0.629f, -0.63f, 0.631f, -0.632f, 0.633f, -0.634f, 0.635f, -0.636f, 0.637f, -0.638f, 0.639f, -0.64f, 0.641f, -0.642f, 0.643f, -0.644f, 0.645f, -0.646f, 0.647f, -0.648f, 0.649f, -0.65f, 0.651f, -0.652f, 0.653f, -0.654f, 0.655f, -0.656f, 0.657f, -0.658f, 0.659f, -0.66f, 0.661f, -0.662f, 0.663f, -0.664f, 0.665f, -0.666f, 0.667f, -0.668f, 0.669f, -0.67f, 0.671f, -0.672f, 0.673f, -0.674f, 0.675f, -0.676f, 0.677f, -0.678f, 0.679f, -0.68f, 0.681f, -0.682f, 0.683f, -0.684f, 0.685f, -0.686f, 0.687f, -0.6880000000000001f, 0.6890000000000001f, -0.6900000000000001f, 0.6910000000000001f, -0.6920000000000001f, 0.6930000000000001f, -0.6940000000000001f, 0.6950000000000001f, -0.6960000000000001f, 0.6970000000000001f, -0.6980000000000001f, 0.6990000000000001f, -0.7000000000000001f, 0.7010000000000001f, -0.7020000000000001f, 0.7030000000000001f, -0.704f, 0.705f, -0.706f, 0.707f, -0.708f, 0.709f, -0.71f, 0.711f, -0.712f, 0.713f, -0.714f, 0.715f, -0.716f, 0.717f, -0.718f, 0.719f, -0.72f, 0.721f, -0.722f, 0.723f, -0.724f, 0.725f, -0.726f, 0.727f, -0.728f, 0.729f, -0.73f, 0.731f, -0.732f, 0.733f, -0.734f, 0.735f, -0.736f, 0.737f, -0.738f, 0.739f, -0.74f, 0.741f, -0.742f, 0.743f, -0.744f, 0.745f, -0.746f, 0.747f, -0.748f, 0.749f, -0.75f, 0.751f, -0.752f, 0.753f, -0.754f, 0.755f, -0.756f, 0.757f, -0.758f, 0.759f, -0.76f, 0.761f, -0.762f, 0.763f, -0.764f, 0.765f, -0.766f, 0.767f, -0.768f, 0.769f, -0.77f, 0.771f, -0.772f, 0.773f, -0.774f, 0.775f, -0.776f, 0.777f, -0.778f, 0.779f, -0.78f, 0.781f, -0.782f, 0.783f, -0.784f, 0.785f, -0.786f, 0.787f, -0.788f, 0.789f, -0.79f, 0.791f, -0.792f, 0.793f, -0.794f, 0.795f, -0.796f, 0.797f, -0.798f, 0.799f, -0.8f, 0.801f, -0.802f, 0.803f, -0.804f, 0.805f, -0.806f, 0.807f, -0.808f, 0.809f, -0.81f, 0.811f, -0.812f, 0.8130000000000001f, -0.8140000000000001f, 0.8150000000000001f, -0.8160000000000001f, 0.8170000000000001f, -0.8180000000000001f, 0.8190000000000001f, -0.8200000000000001f, 0.8210000000000001f, -0.8220000000000001f, 0.8230000000000001f, -0.8240000000000001f, 0.8250000000000001f, -0.8260000000000001f, 0.8270000000000001f, -0.8280000000000001f, 0.8290000000000001f, -0.8300000000000001f, 0.8310000000000001f, -0.8320000000000001f, 0.833f, -0.834f, 0.835f, -0.836f, 0.837f, -0.838f, 0.839f, -0.84f, 0.841f, -0.842f, 0.843f, -0.844f, 0.845f, -0.846f, 0.847f, -0.848f, 0.849f, -0.85f, 0.851f, -0.852f, 0.853f, -0.854f, 0.855f, -0.856f, 0.857f, -0.858f, 0.859f, -0.86f, 0.861f, -0.862f, 0.863f, -0.864f, 0.865f, -0.866f, 0.867f, -0.868f, 0.869f, -0.87f, 0.871f, -0.872f, 0.873f, -0.874f, 0.875f, -0.876f, 0.877f, -0.878f, 0.879f, -0.88f, 0.881f, -0.882f, 0.883f, -0.884f, 0.885f, -0.886f, 0.887f, -0.888f, 0.889f, -0.89f, 0.891f, -0.892f, 0.893f, -0.894f, 0.895f, -0.896f, 0.897f, -0.898f, 0.899f, -0.9f, 0.901f, -0.902f, 0.903f, -0.904f, 0.905f, -0.906f, 0.907f, -0.908f, 0.909f, -0.91f, 0.911f, -0.912f, 0.913f, -0.914f, 0.915f, -0.916f, 0.917f, -0.918f, 0.919f, -0.92f, 0.921f, -0.922f, 0.923f, -0.924f, 0.925f, -0.926f, 0.927f, -0.928f, 0.929f, -0.93f, 0.931f, -0.932f, 0.933f, -0.934f, 0.935f, -0.936f, 0.937f, -0.9380000000000001f, 0.9390000000000001f, -0.9400000000000001f, 0.9410000000000001f, -0.9420000000000001f, 0.9430000000000001f, -0.9440000000000001f, 0.9450000000000001f, -0.9460000000000001f, 0.9470000000000001f, -0.9480000000000001f, 0.9490000000000001f, -0.9500000000000001f, 0.9510000000000001f, -0.9520000000000001f, 0.9530000000000001f, -0.9540000000000001f, 0.9550000000000001f, -0.9560000000000001f, 0.9570000000000001f, -0.9580000000000001f, 0.9590000000000001f, -0.96f, 0.961f, -0.962f, 0.963f, -0.964f, 0.965f, -0.966f, 0.967f, -0.968f, 0.969f, -0.97f, 0.971f, -0.972f, 0.973f, -0.974f, 0.975f, -0.976f, 0.977f, -0.978f, 0.979f, -0.98f, 0.981f, -0.982f, 0.983f, -0.984f, 0.985f, -0.986f, 0.987f, -0.988f, 0.989f, -0.99f, 0.991f, -0.992f, 0.993f, -0.994f, 0.995f, -0.996f, 0.997f, -0.998f, 0.999f, -1.0f, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/relu1_quant8_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/relu1_quant8_1.example.cpp
new file mode 100644
index 000000000..4bb4c4fb6
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/relu1_quant8_1.example.cpp
@@ -0,0 +1,43 @@
+// Generated file (from: relu1_quant8_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 1, 2, 3}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 1, 2, 2}}}
+}
+}, // End of an example
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {4, 10, 100, 255}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {2, 2, 2, 2}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/relu1_quant8_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/relu1_quant8_2.example.cpp
new file mode 100644
index 000000000..a5dd65890
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/relu1_quant8_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: relu1_quant8_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/relu6_float_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/relu6_float_1.example.cpp
new file mode 100644
index 000000000..2e2ebe423
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/relu6_float_1.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: relu6_float_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-10.0f, -0.5f, 0.5f, 10.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.0f, 0.0f, 0.5f, 6.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/relu6_float_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/relu6_float_2.example.cpp
new file mode 100644
index 000000000..c6fdc8d93
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/relu6_float_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: relu6_float_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.0f, 0.001f, -0.002f, 0.003f, -0.004f, 0.005f, -0.006f, 0.007f, -0.008f, 0.009000000000000001f, -0.01f, 0.011f, -0.012f, 0.013000000000000001f, -0.014f, 0.015f, -0.016f, 0.017f, -0.018000000000000002f, 0.019f, -0.02f, 0.021f, -0.022f, 0.023f, -0.024f, 0.025f, -0.026000000000000002f, 0.027f, -0.028f, 0.029f, -0.03f, 0.031f, -0.032f, 0.033f, -0.034f, 0.035f, -0.036000000000000004f, 0.037f, -0.038f, 0.039f, -0.04f, 0.041f, -0.042f, 0.043000000000000003f, -0.044f, 0.045f, -0.046f, 0.047f, -0.048f, 0.049f, -0.05f, 0.051000000000000004f, -0.052000000000000005f, 0.053f, -0.054f, 0.055f, -0.056f, 0.057f, -0.058f, 0.059000000000000004f, -0.06f, 0.061f, -0.062f, 0.063f, -0.064f, 0.065f, -0.066f, 0.067f, -0.068f, 0.069f, -0.07f, 0.07100000000000001f, -0.07200000000000001f, 0.073f, -0.074f, 0.075f, -0.076f, 0.077f, -0.078f, 0.079f, -0.08f, 0.081f, -0.082f, 0.083f, -0.084f, 0.085f, -0.08600000000000001f, 0.08700000000000001f, -0.088f, 0.089f, -0.09f, 0.091f, -0.092f, 0.093f, -0.094f, 0.095f, -0.096f, 0.097f, -0.098f, 0.099f, -0.1f, 0.101f, -0.10200000000000001f, 0.10300000000000001f, -0.10400000000000001f, 0.105f, -0.106f, 0.107f, -0.108f, 0.109f, -0.11f, 0.111f, -0.112f, 0.113f, -0.114f, 0.115f, -0.116f, 0.117f, -0.11800000000000001f, 0.11900000000000001f, -0.12f, 0.121f, -0.122f, 0.123f, -0.124f, 0.125f, -0.126f, 0.127f, -0.128f, 0.129f, -0.13f, 0.131f, -0.132f, 0.133f, -0.134f, 0.135f, -0.136f, 0.137f, -0.138f, 0.139f, -0.14f, 0.14100000000000001f, -0.14200000000000002f, 0.14300000000000002f, -0.14400000000000002f, 0.145f, -0.146f, 0.147f, -0.148f, 0.149f, -0.15f, 0.151f, -0.152f, 0.153f, -0.154f, 0.155f, -0.156f, 0.157f, -0.158f, 0.159f, -0.16f, 0.161f, -0.162f, 0.163f, -0.164f, 0.165f, -0.166f, 0.167f, -0.168f, 0.169f, -0.17f, 0.171f, -0.17200000000000001f, 0.17300000000000001f, -0.17400000000000002f, 0.17500000000000002f, -0.176f, 0.177f, -0.178f, 0.179f, -0.18f, 0.181f, -0.182f, 0.183f, -0.184f, 0.185f, -0.186f, 0.187f, -0.188f, 0.189f, -0.19f, 0.191f, -0.192f, 0.193f, -0.194f, 0.195f, -0.196f, 0.197f, -0.198f, 0.199f, -0.2f, 0.201f, -0.202f, 0.203f, -0.20400000000000001f, 0.20500000000000002f, -0.20600000000000002f, 0.20700000000000002f, -0.20800000000000002f, 0.209f, -0.21f, 0.211f, -0.212f, 0.213f, -0.214f, 0.215f, -0.216f, 0.217f, -0.218f, 0.219f, -0.22f, 0.221f, -0.222f, 0.223f, -0.224f, 0.225f, -0.226f, 0.227f, -0.228f, 0.229f, -0.23f, 0.231f, -0.232f, 0.233f, -0.234f, 0.23500000000000001f, -0.23600000000000002f, 0.23700000000000002f, -0.23800000000000002f, 0.23900000000000002f, -0.24f, 0.241f, -0.242f, 0.243f, -0.244f, 0.245f, -0.246f, 0.247f, -0.248f, 0.249f, -0.25f, 0.251f, -0.252f, 0.253f, -0.254f, 0.255f, -0.256f, 0.257f, -0.258f, 0.259f, -0.26f, 0.261f, -0.262f, 0.263f, -0.264f, 0.265f, -0.266f, 0.267f, -0.268f, 0.269f, -0.27f, 0.271f, -0.272f, 0.273f, -0.274f, 0.275f, -0.276f, 0.277f, -0.278f, 0.279f, -0.28f, 0.281f, -0.28200000000000003f, 0.28300000000000003f, -0.28400000000000003f, 0.28500000000000003f, -0.28600000000000003f, 0.28700000000000003f, -0.28800000000000003f, 0.289f, -0.29f, 0.291f, -0.292f, 0.293f, -0.294f, 0.295f, -0.296f, 0.297f, -0.298f, 0.299f, -0.3f, 0.301f, -0.302f, 0.303f, -0.304f, 0.305f, -0.306f, 0.307f, -0.308f, 0.309f, -0.31f, 0.311f, -0.312f, 0.313f, -0.314f, 0.315f, -0.316f, 0.317f, -0.318f, 0.319f, -0.32f, 0.321f, -0.322f, 0.323f, -0.324f, 0.325f, -0.326f, 0.327f, -0.328f, 0.329f, -0.33f, 0.331f, -0.332f, 0.333f, -0.334f, 0.335f, -0.336f, 0.337f, -0.338f, 0.339f, -0.34f, 0.341f, -0.342f, 0.343f, -0.34400000000000003f, 0.34500000000000003f, -0.34600000000000003f, 0.34700000000000003f, -0.34800000000000003f, 0.34900000000000003f, -0.35000000000000003f, 0.35100000000000003f, -0.352f, 0.353f, -0.354f, 0.355f, -0.356f, 0.357f, -0.358f, 0.359f, -0.36f, 0.361f, -0.362f, 0.363f, -0.364f, 0.365f, -0.366f, 0.367f, -0.368f, 0.369f, -0.37f, 0.371f, -0.372f, 0.373f, -0.374f, 0.375f, -0.376f, 0.377f, -0.378f, 0.379f, -0.38f, 0.381f, -0.382f, 0.383f, -0.384f, 0.385f, -0.386f, 0.387f, -0.388f, 0.389f, -0.39f, 0.391f, -0.392f, 0.393f, -0.394f, 0.395f, -0.396f, 0.397f, -0.398f, 0.399f, -0.4f, 0.401f, -0.402f, 0.403f, -0.404f, 0.405f, -0.406f, 0.40700000000000003f, -0.40800000000000003f, 0.40900000000000003f, -0.41000000000000003f, 0.41100000000000003f, -0.41200000000000003f, 0.41300000000000003f, -0.41400000000000003f, 0.41500000000000004f, -0.41600000000000004f, 0.417f, -0.418f, 0.419f, -0.42f, 0.421f, -0.422f, 0.423f, -0.424f, 0.425f, -0.426f, 0.427f, -0.428f, 0.429f, -0.43f, 0.431f, -0.432f, 0.433f, -0.434f, 0.435f, -0.436f, 0.437f, -0.438f, 0.439f, -0.44f, 0.441f, -0.442f, 0.443f, -0.444f, 0.445f, -0.446f, 0.447f, -0.448f, 0.449f, -0.45f, 0.451f, -0.452f, 0.453f, -0.454f, 0.455f, -0.456f, 0.457f, -0.458f, 0.459f, -0.46f, 0.461f, -0.462f, 0.463f, -0.464f, 0.465f, -0.466f, 0.467f, -0.468f, 0.46900000000000003f, -0.47000000000000003f, 0.47100000000000003f, -0.47200000000000003f, 0.47300000000000003f, -0.47400000000000003f, 0.47500000000000003f, -0.47600000000000003f, 0.47700000000000004f, -0.47800000000000004f, 0.47900000000000004f, -0.48f, 0.481f, -0.482f, 0.483f, -0.484f, 0.485f, -0.486f, 0.487f, -0.488f, 0.489f, -0.49f, 0.491f, -0.492f, 0.493f, -0.494f, 0.495f, -0.496f, 0.497f, -0.498f, 0.499f, -0.5f, 0.501f, -0.502f, 0.503f, -0.504f, 0.505f, -0.506f, 0.507f, -0.508f, 0.509f, -0.51f, 0.511f, -0.512f, 0.513f, -0.514f, 0.515f, -0.516f, 0.517f, -0.518f, 0.519f, -0.52f, 0.521f, -0.522f, 0.523f, -0.524f, 0.525f, -0.526f, 0.527f, -0.528f, 0.529f, -0.53f, 0.531f, -0.532f, 0.533f, -0.534f, 0.535f, -0.536f, 0.537f, -0.538f, 0.539f, -0.54f, 0.541f, -0.542f, 0.543f, -0.544f, 0.545f, -0.546f, 0.547f, -0.548f, 0.549f, -0.55f, 0.551f, -0.552f, 0.553f, -0.554f, 0.555f, -0.556f, 0.557f, -0.558f, 0.559f, -0.56f, 0.561f, -0.562f, 0.5630000000000001f, -0.5640000000000001f, 0.5650000000000001f, -0.5660000000000001f, 0.5670000000000001f, -0.5680000000000001f, 0.5690000000000001f, -0.5700000000000001f, 0.5710000000000001f, -0.5720000000000001f, 0.5730000000000001f, -0.5740000000000001f, 0.5750000000000001f, -0.5760000000000001f, 0.577f, -0.578f, 0.579f, -0.58f, 0.581f, -0.582f, 0.583f, -0.584f, 0.585f, -0.586f, 0.587f, -0.588f, 0.589f, -0.59f, 0.591f, -0.592f, 0.593f, -0.594f, 0.595f, -0.596f, 0.597f, -0.598f, 0.599f, -0.6f, 0.601f, -0.602f, 0.603f, -0.604f, 0.605f, -0.606f, 0.607f, -0.608f, 0.609f, -0.61f, 0.611f, -0.612f, 0.613f, -0.614f, 0.615f, -0.616f, 0.617f, -0.618f, 0.619f, -0.62f, 0.621f, -0.622f, 0.623f, -0.624f, 0.625f, -0.626f, 0.627f, -0.628f, 0.629f, -0.63f, 0.631f, -0.632f, 0.633f, -0.634f, 0.635f, -0.636f, 0.637f, -0.638f, 0.639f, -0.64f, 0.641f, -0.642f, 0.643f, -0.644f, 0.645f, -0.646f, 0.647f, -0.648f, 0.649f, -0.65f, 0.651f, -0.652f, 0.653f, -0.654f, 0.655f, -0.656f, 0.657f, -0.658f, 0.659f, -0.66f, 0.661f, -0.662f, 0.663f, -0.664f, 0.665f, -0.666f, 0.667f, -0.668f, 0.669f, -0.67f, 0.671f, -0.672f, 0.673f, -0.674f, 0.675f, -0.676f, 0.677f, -0.678f, 0.679f, -0.68f, 0.681f, -0.682f, 0.683f, -0.684f, 0.685f, -0.686f, 0.687f, -0.6880000000000001f, 0.6890000000000001f, -0.6900000000000001f, 0.6910000000000001f, -0.6920000000000001f, 0.6930000000000001f, -0.6940000000000001f, 0.6950000000000001f, -0.6960000000000001f, 0.6970000000000001f, -0.6980000000000001f, 0.6990000000000001f, -0.7000000000000001f, 0.7010000000000001f, -0.7020000000000001f, 0.7030000000000001f, -0.704f, 0.705f, -0.706f, 0.707f, -0.708f, 0.709f, -0.71f, 0.711f, -0.712f, 0.713f, -0.714f, 0.715f, -0.716f, 0.717f, -0.718f, 0.719f, -0.72f, 0.721f, -0.722f, 0.723f, -0.724f, 0.725f, -0.726f, 0.727f, -0.728f, 0.729f, -0.73f, 0.731f, -0.732f, 0.733f, -0.734f, 0.735f, -0.736f, 0.737f, -0.738f, 0.739f, -0.74f, 0.741f, -0.742f, 0.743f, -0.744f, 0.745f, -0.746f, 0.747f, -0.748f, 0.749f, -0.75f, 0.751f, -0.752f, 0.753f, -0.754f, 0.755f, -0.756f, 0.757f, -0.758f, 0.759f, -0.76f, 0.761f, -0.762f, 0.763f, -0.764f, 0.765f, -0.766f, 0.767f, -0.768f, 0.769f, -0.77f, 0.771f, -0.772f, 0.773f, -0.774f, 0.775f, -0.776f, 0.777f, -0.778f, 0.779f, -0.78f, 0.781f, -0.782f, 0.783f, -0.784f, 0.785f, -0.786f, 0.787f, -0.788f, 0.789f, -0.79f, 0.791f, -0.792f, 0.793f, -0.794f, 0.795f, -0.796f, 0.797f, -0.798f, 0.799f, -0.8f, 0.801f, -0.802f, 0.803f, -0.804f, 0.805f, -0.806f, 0.807f, -0.808f, 0.809f, -0.81f, 0.811f, -0.812f, 0.8130000000000001f, -0.8140000000000001f, 0.8150000000000001f, -0.8160000000000001f, 0.8170000000000001f, -0.8180000000000001f, 0.8190000000000001f, -0.8200000000000001f, 0.8210000000000001f, -0.8220000000000001f, 0.8230000000000001f, -0.8240000000000001f, 0.8250000000000001f, -0.8260000000000001f, 0.8270000000000001f, -0.8280000000000001f, 0.8290000000000001f, -0.8300000000000001f, 0.8310000000000001f, -0.8320000000000001f, 0.833f, -0.834f, 0.835f, -0.836f, 0.837f, -0.838f, 0.839f, -0.84f, 0.841f, -0.842f, 0.843f, -0.844f, 0.845f, -0.846f, 0.847f, -0.848f, 0.849f, -0.85f, 0.851f, -0.852f, 0.853f, -0.854f, 0.855f, -0.856f, 0.857f, -0.858f, 0.859f, -0.86f, 0.861f, -0.862f, 0.863f, -0.864f, 0.865f, -0.866f, 0.867f, -0.868f, 0.869f, -0.87f, 0.871f, -0.872f, 0.873f, -0.874f, 0.875f, -0.876f, 0.877f, -0.878f, 0.879f, -0.88f, 0.881f, -0.882f, 0.883f, -0.884f, 0.885f, -0.886f, 0.887f, -0.888f, 0.889f, -0.89f, 0.891f, -0.892f, 0.893f, -0.894f, 0.895f, -0.896f, 0.897f, -0.898f, 0.899f, -0.9f, 0.901f, -0.902f, 0.903f, -0.904f, 0.905f, -0.906f, 0.907f, -0.908f, 0.909f, -0.91f, 0.911f, -0.912f, 0.913f, -0.914f, 0.915f, -0.916f, 0.917f, -0.918f, 0.919f, -0.92f, 0.921f, -0.922f, 0.923f, -0.924f, 0.925f, -0.926f, 0.927f, -0.928f, 0.929f, -0.93f, 0.931f, -0.932f, 0.933f, -0.934f, 0.935f, -0.936f, 0.937f, -0.9380000000000001f, 0.9390000000000001f, -0.9400000000000001f, 0.9410000000000001f, -0.9420000000000001f, 0.9430000000000001f, -0.9440000000000001f, 0.9450000000000001f, -0.9460000000000001f, 0.9470000000000001f, -0.9480000000000001f, 0.9490000000000001f, -0.9500000000000001f, 0.9510000000000001f, -0.9520000000000001f, 0.9530000000000001f, -0.9540000000000001f, 0.9550000000000001f, -0.9560000000000001f, 0.9570000000000001f, -0.9580000000000001f, 0.9590000000000001f, -0.96f, 0.961f, -0.962f, 0.963f, -0.964f, 0.965f, -0.966f, 0.967f, -0.968f, 0.969f, -0.97f, 0.971f, -0.972f, 0.973f, -0.974f, 0.975f, -0.976f, 0.977f, -0.978f, 0.979f, -0.98f, 0.981f, -0.982f, 0.983f, -0.984f, 0.985f, -0.986f, 0.987f, -0.988f, 0.989f, -0.99f, 0.991f, -0.992f, 0.993f, -0.994f, 0.995f, -0.996f, 0.997f, -0.998f, 0.999f, -1.0f, 1.0010000000000001f, -1.002f, 1.0030000000000001f, -1.004f, 1.0050000000000001f, -1.006f, 1.0070000000000001f, -1.008f, 1.0090000000000001f, -1.01f, 1.0110000000000001f, -1.012f, 1.0130000000000001f, -1.014f, 1.0150000000000001f, -1.016f, 1.0170000000000001f, -1.018f, 1.0190000000000001f, -1.02f, 1.0210000000000001f, -1.022f, 1.0230000000000001f, -1.024f, 1.025f, -1.026f, 1.027f, -1.028f, 1.029f, -1.03f, 1.031f, -1.032f, 1.033f, -1.034f, 1.035f, -1.036f, 1.037f, -1.038f, 1.039f, -1.04f, 1.041f, -1.042f, 1.043f, -1.044f, 1.045f, -1.046f, 1.047f, -1.048f, 1.049f, -1.05f, 1.051f, -1.052f, 1.053f, -1.054f, 1.055f, -1.056f, 1.057f, -1.058f, 1.059f, -1.06f, 1.061f, -1.062f, 1.063f, -1.064f, 1.065f, -1.066f, 1.067f, -1.068f, 1.069f, -1.07f, 1.071f, -1.072f, 1.073f, -1.074f, 1.075f, -1.076f, 1.077f, -1.078f, 1.079f, -1.08f, 1.081f, -1.082f, 1.083f, -1.084f, 1.085f, -1.086f, 1.087f, -1.088f, 1.089f, -1.09f, 1.091f, -1.092f, 1.093f, -1.094f, 1.095f, -1.096f, 1.097f, -1.098f, 1.099f, -1.1f, 1.101f, -1.102f, 1.103f, -1.104f, 1.105f, -1.106f, 1.107f, -1.108f, 1.109f, -1.11f, 1.111f, -1.112f, 1.113f, -1.114f, 1.115f, -1.116f, 1.117f, -1.118f, 1.119f, -1.12f, 1.121f, -1.122f, 1.123f, -1.124f, 1.125f, -1.1260000000000001f, 1.127f, -1.1280000000000001f, 1.129f, -1.1300000000000001f, 1.131f, -1.1320000000000001f, 1.133f, -1.1340000000000001f, 1.135f, -1.1360000000000001f, 1.137f, -1.1380000000000001f, 1.139f, -1.1400000000000001f, 1.141f, -1.1420000000000001f, 1.143f, -1.1440000000000001f, 1.145f, -1.1460000000000001f, 1.147f, -1.1480000000000001f, 1.149f, -1.1500000000000001f, 1.151f, -1.1520000000000001f, 1.153f, -1.154f, 1.155f, -1.156f, 1.157f, -1.158f, 1.159f, -1.16f, 1.161f, -1.162f, 1.163f, -1.164f, 1.165f, -1.166f, 1.167f, -1.168f, 1.169f, -1.17f, 1.171f, -1.172f, 1.173f, -1.174f, 1.175f, -1.176f, 1.177f, -1.178f, 1.179f, -1.18f, 1.181f, -1.182f, 1.183f, -1.184f, 1.185f, -1.186f, 1.187f, -1.188f, 1.189f, -1.19f, 1.191f, -1.192f, 1.193f, -1.194f, 1.195f, -1.196f, 1.197f, -1.198f, 1.199f, -1.2f, 1.201f, -1.202f, 1.203f, -1.204f, 1.205f, -1.206f, 1.207f, -1.208f, 1.209f, -1.21f, 1.211f, -1.212f, 1.213f, -1.214f, 1.215f, -1.216f, 1.217f, -1.218f, 1.219f, -1.22f, 1.221f, -1.222f, 1.223f, -1.224f, 1.225f, -1.226f, 1.227f, -1.228f, 1.229f, -1.23f, 1.231f, -1.232f, 1.233f, -1.234f, 1.235f, -1.236f, 1.237f, -1.238f, 1.239f, -1.24f, 1.241f, -1.242f, 1.243f, -1.244f, 1.245f, -1.246f, 1.247f, -1.248f, 1.249f, -1.25f, 1.2510000000000001f, -1.252f, 1.2530000000000001f, -1.254f, 1.2550000000000001f, -1.256f, 1.2570000000000001f, -1.258f, 1.2590000000000001f, -1.26f, 1.2610000000000001f, -1.262f, 1.2630000000000001f, -1.264f, 1.2650000000000001f, -1.266f, 1.2670000000000001f, -1.268f, 1.2690000000000001f, -1.27f, 1.2710000000000001f, -1.272f, 1.2730000000000001f, -1.274f, 1.2750000000000001f, -1.276f, 1.2770000000000001f, -1.278f, 1.2790000000000001f, -1.28f, 1.281f, -1.282f, 1.283f, -1.284f, 1.285f, -1.286f, 1.287f, -1.288f, 1.289f, -1.29f, 1.291f, -1.292f, 1.293f, -1.294f, 1.295f, -1.296f, 1.297f, -1.298f, 1.299f, -1.3f, 1.301f, -1.302f, 1.303f, -1.304f, 1.305f, -1.306f, 1.307f, -1.308f, 1.309f, -1.31f, 1.311f, -1.312f, 1.313f, -1.314f, 1.315f, -1.316f, 1.317f, -1.318f, 1.319f, -1.32f, 1.321f, -1.322f, 1.323f, -1.324f, 1.325f, -1.326f, 1.327f, -1.328f, 1.329f, -1.33f, 1.331f, -1.332f, 1.333f, -1.334f, 1.335f, -1.336f, 1.337f, -1.338f, 1.339f, -1.34f, 1.341f, -1.342f, 1.343f, -1.344f, 1.345f, -1.346f, 1.347f, -1.348f, 1.349f, -1.35f, 1.351f, -1.352f, 1.353f, -1.354f, 1.355f, -1.356f, 1.357f, -1.358f, 1.359f, -1.36f, 1.361f, -1.362f, 1.363f, -1.364f, 1.365f, -1.366f, 1.367f, -1.368f, 1.369f, -1.37f, 1.371f, -1.372f, 1.373f, -1.374f, 1.375f, -1.3760000000000001f, 1.377f, -1.3780000000000001f, 1.379f, -1.3800000000000001f, 1.381f, -1.3820000000000001f, 1.383f, -1.3840000000000001f, 1.385f, -1.3860000000000001f, 1.387f, -1.3880000000000001f, 1.389f, -1.3900000000000001f, 1.391f, -1.3920000000000001f, 1.393f, -1.3940000000000001f, 1.395f, -1.3960000000000001f, 1.397f, -1.3980000000000001f, 1.399f, -1.4000000000000001f, 1.401f, -1.4020000000000001f, 1.403f, -1.4040000000000001f, 1.405f, -1.4060000000000001f, 1.407f, -1.408f, 1.409f, -1.41f, 1.411f, -1.412f, 1.413f, -1.414f, 1.415f, -1.416f, 1.417f, -1.418f, 1.419f, -1.42f, 1.421f, -1.422f, 1.423f, -1.424f, 1.425f, -1.426f, 1.427f, -1.428f, 1.429f, -1.43f, 1.431f, -1.432f, 1.433f, -1.434f, 1.435f, -1.436f, 1.437f, -1.438f, 1.439f, -1.44f, 1.441f, -1.442f, 1.443f, -1.444f, 1.445f, -1.446f, 1.447f, -1.448f, 1.449f, -1.45f, 1.451f, -1.452f, 1.453f, -1.454f, 1.455f, -1.456f, 1.457f, -1.458f, 1.459f, -1.46f, 1.461f, -1.462f, 1.463f, -1.464f, 1.465f, -1.466f, 1.467f, -1.468f, 1.469f, -1.47f, 1.471f, -1.472f, 1.473f, -1.474f, 1.475f, -1.476f, 1.477f, -1.478f, 1.479f, -1.48f, 1.481f, -1.482f, 1.483f, -1.484f, 1.485f, -1.486f, 1.487f, -1.488f, 1.489f, -1.49f, 1.491f, -1.492f, 1.493f, -1.494f, 1.495f, -1.496f, 1.497f, -1.498f, 1.499f, -1.5f, 1.5010000000000001f, -1.502f, 1.5030000000000001f, -1.504f, 1.5050000000000001f, -1.506f, 1.5070000000000001f, -1.508f, 1.5090000000000001f, -1.51f, 1.5110000000000001f, -1.512f, 1.5130000000000001f, -1.514f, 1.5150000000000001f, -1.516f, 1.5170000000000001f, -1.518f, 1.5190000000000001f, -1.52f, 1.5210000000000001f, -1.522f, 1.5230000000000001f, -1.524f, 1.5250000000000001f, -1.526f, 1.5270000000000001f, -1.528f, 1.5290000000000001f, -1.53f, 1.5310000000000001f, -1.532f, 1.5330000000000001f, -1.534f, 1.5350000000000001f, -1.536f, 1.537f, -1.538f, 1.539f, -1.54f, 1.541f, -1.542f, 1.543f, -1.544f, 1.545f, -1.546f, 1.547f, -1.548f, 1.549f, -1.55f, 1.551f, -1.552f, 1.553f, -1.554f, 1.555f, -1.556f, 1.557f, -1.558f, 1.559f, -1.56f, 1.561f, -1.562f, 1.563f, -1.564f, 1.565f, -1.566f, 1.567f, -1.568f, 1.569f, -1.57f, 1.571f, -1.572f, 1.573f, -1.574f, 1.575f, -1.576f, 1.577f, -1.578f, 1.579f, -1.58f, 1.581f, -1.582f, 1.583f, -1.584f, 1.585f, -1.586f, 1.587f, -1.588f, 1.589f, -1.59f, 1.591f, -1.592f, 1.593f, -1.594f, 1.595f, -1.596f, 1.597f, -1.598f, 1.599f, -1.6f, 1.601f, -1.602f, 1.603f, -1.604f, 1.605f, -1.606f, 1.607f, -1.608f, 1.609f, -1.61f, 1.611f, -1.612f, 1.613f, -1.614f, 1.615f, -1.616f, 1.617f, -1.618f, 1.619f, -1.62f, 1.621f, -1.622f, 1.623f, -1.624f, 1.625f, -1.6260000000000001f, 1.627f, -1.6280000000000001f, 1.629f, -1.6300000000000001f, 1.631f, -1.6320000000000001f, 1.633f, -1.6340000000000001f, 1.635f, -1.6360000000000001f, 1.637f, -1.6380000000000001f, 1.639f, -1.6400000000000001f, 1.641f, -1.6420000000000001f, 1.643f, -1.6440000000000001f, 1.645f, -1.6460000000000001f, 1.647f, -1.6480000000000001f, 1.649f, -1.6500000000000001f, 1.651f, -1.6520000000000001f, 1.653f, -1.6540000000000001f, 1.655f, -1.6560000000000001f, 1.657f, -1.6580000000000001f, 1.659f, -1.6600000000000001f, 1.661f, -1.6620000000000001f, 1.663f, -1.6640000000000001f, 1.665f, -1.666f, 1.667f, -1.668f, 1.669f, -1.67f, 1.671f, -1.672f, 1.673f, -1.674f, 1.675f, -1.676f, 1.677f, -1.678f, 1.679f, -1.68f, 1.681f, -1.682f, 1.683f, -1.684f, 1.685f, -1.686f, 1.687f, -1.688f, 1.689f, -1.69f, 1.691f, -1.692f, 1.693f, -1.694f, 1.695f, -1.696f, 1.697f, -1.698f, 1.699f, -1.7f, 1.701f, -1.702f, 1.703f, -1.704f, 1.705f, -1.706f, 1.707f, -1.708f, 1.709f, -1.71f, 1.711f, -1.712f, 1.713f, -1.714f, 1.715f, -1.716f, 1.717f, -1.718f, 1.719f, -1.72f, 1.721f, -1.722f, 1.723f, -1.724f, 1.725f, -1.726f, 1.727f, -1.728f, 1.729f, -1.73f, 1.731f, -1.732f, 1.733f, -1.734f, 1.735f, -1.736f, 1.737f, -1.738f, 1.739f, -1.74f, 1.741f, -1.742f, 1.743f, -1.744f, 1.745f, -1.746f, 1.747f, -1.748f, 1.749f, -1.75f, 1.7510000000000001f, -1.752f, 1.7530000000000001f, -1.754f, 1.7550000000000001f, -1.756f, 1.7570000000000001f, -1.758f, 1.7590000000000001f, -1.76f, 1.7610000000000001f, -1.762f, 1.7630000000000001f, -1.764f, 1.7650000000000001f, -1.766f, 1.7670000000000001f, -1.768f, 1.7690000000000001f, -1.77f, 1.7710000000000001f, -1.772f, 1.7730000000000001f, -1.774f, 1.7750000000000001f, -1.776f, 1.7770000000000001f, -1.778f, 1.7790000000000001f, -1.78f, 1.7810000000000001f, -1.782f, 1.7830000000000001f, -1.784f, 1.7850000000000001f, -1.786f, 1.7870000000000001f, -1.788f, 1.7890000000000001f, -1.79f, 1.7910000000000001f, -1.792f, 1.793f, -1.794f, 1.795f, -1.796f, 1.797f, -1.798f, 1.799f, -1.8f, 1.801f, -1.802f, 1.803f, -1.804f, 1.805f, -1.806f, 1.807f, -1.808f, 1.809f, -1.81f, 1.811f, -1.812f, 1.813f, -1.814f, 1.815f, -1.816f, 1.817f, -1.818f, 1.819f, -1.82f, 1.821f, -1.822f, 1.823f, -1.824f, 1.825f, -1.826f, 1.827f, -1.828f, 1.829f, -1.83f, 1.831f, -1.832f, 1.833f, -1.834f, 1.835f, -1.836f, 1.837f, -1.838f, 1.839f, -1.84f, 1.841f, -1.842f, 1.843f, -1.844f, 1.845f, -1.846f, 1.847f, -1.848f, 1.849f, -1.85f, 1.851f, -1.852f, 1.853f, -1.854f, 1.855f, -1.856f, 1.857f, -1.858f, 1.859f, -1.86f, 1.861f, -1.862f, 1.863f, -1.864f, 1.865f, -1.866f, 1.867f, -1.868f, 1.869f, -1.87f, 1.871f, -1.872f, 1.873f, -1.874f, 1.875f, -1.8760000000000001f, 1.877f, -1.8780000000000001f, 1.879f, -1.8800000000000001f, 1.881f, -1.8820000000000001f, 1.883f, -1.8840000000000001f, 1.885f, -1.8860000000000001f, 1.887f, -1.8880000000000001f, 1.889f, -1.8900000000000001f, 1.891f, -1.8920000000000001f, 1.893f, -1.8940000000000001f, 1.895f, -1.8960000000000001f, 1.897f, -1.8980000000000001f, 1.899f, -1.9000000000000001f, 1.901f, -1.9020000000000001f, 1.903f, -1.9040000000000001f, 1.905f, -1.9060000000000001f, 1.907f, -1.9080000000000001f, 1.909f, -1.9100000000000001f, 1.911f, -1.9120000000000001f, 1.913f, -1.9140000000000001f, 1.915f, -1.9160000000000001f, 1.917f, -1.9180000000000001f, 1.919f, -1.92f, 1.921f, -1.922f, 1.923f, -1.924f, 1.925f, -1.926f, 1.927f, -1.928f, 1.929f, -1.93f, 1.931f, -1.932f, 1.933f, -1.934f, 1.935f, -1.936f, 1.937f, -1.938f, 1.939f, -1.94f, 1.941f, -1.942f, 1.943f, -1.944f, 1.945f, -1.946f, 1.947f, -1.948f, 1.949f, -1.95f, 1.951f, -1.952f, 1.953f, -1.954f, 1.955f, -1.956f, 1.957f, -1.958f, 1.959f, -1.96f, 1.961f, -1.962f, 1.963f, -1.964f, 1.965f, -1.966f, 1.967f, -1.968f, 1.969f, -1.97f, 1.971f, -1.972f, 1.973f, -1.974f, 1.975f, -1.976f, 1.977f, -1.978f, 1.979f, -1.98f, 1.981f, -1.982f, 1.983f, -1.984f, 1.985f, -1.986f, 1.987f, -1.988f, 1.989f, -1.99f, 1.991f, -1.992f, 1.993f, -1.994f, 1.995f, -1.996f, 1.997f, -1.998f, 1.999f, -2.0f, 2.001f, -2.0020000000000002f, 2.003f, -2.004f, 2.005f, -2.0060000000000002f, 2.007f, -2.008f, 2.009f, -2.0100000000000002f, 2.011f, -2.012f, 2.013f, -2.0140000000000002f, 2.015f, -2.016f, 2.017f, -2.0180000000000002f, 2.019f, -2.02f, 2.021f, -2.0220000000000002f, 2.023f, -2.024f, 2.025f, -2.0260000000000002f, 2.027f, -2.028f, 2.029f, -2.0300000000000002f, 2.031f, -2.032f, 2.033f, -2.0340000000000003f, 2.035f, -2.036f, 2.037f, -2.0380000000000003f, 2.039f, -2.04f, 2.041f, -2.0420000000000003f, 2.043f, -2.044f, 2.045f, -2.0460000000000003f, 2.047f, -2.048f, 2.049f, -2.05f, 2.051f, -2.052f, 2.053f, -2.054f, 2.055f, -2.056f, 2.057f, -2.058f, 2.059f, -2.06f, 2.061f, -2.062f, 2.063f, -2.064f, 2.065f, -2.066f, 2.067f, -2.068f, 2.069f, -2.07f, 2.071f, -2.072f, 2.073f, -2.074f, 2.075f, -2.076f, 2.077f, -2.078f, 2.079f, -2.08f, 2.081f, -2.082f, 2.083f, -2.084f, 2.085f, -2.086f, 2.087f, -2.088f, 2.089f, -2.09f, 2.091f, -2.092f, 2.093f, -2.094f, 2.095f, -2.096f, 2.097f, -2.098f, 2.099f, -2.1f, 2.101f, -2.102f, 2.103f, -2.104f, 2.105f, -2.106f, 2.107f, -2.108f, 2.109f, -2.11f, 2.111f, -2.112f, 2.113f, -2.114f, 2.115f, -2.116f, 2.117f, -2.118f, 2.119f, -2.12f, 2.121f, -2.122f, 2.123f, -2.124f, 2.125f, -2.126f, 2.1270000000000002f, -2.128f, 2.129f, -2.13f, 2.1310000000000002f, -2.132f, 2.133f, -2.134f, 2.1350000000000002f, -2.136f, 2.137f, -2.138f, 2.1390000000000002f, -2.14f, 2.141f, -2.142f, 2.1430000000000002f, -2.144f, 2.145f, -2.146f, 2.1470000000000002f, -2.148f, 2.149f, -2.15f, 2.1510000000000002f, -2.152f, 2.153f, -2.154f, 2.1550000000000002f, -2.156f, 2.157f, -2.158f, 2.1590000000000003f, -2.16f, 2.161f, -2.162f, 2.1630000000000003f, -2.164f, 2.165f, -2.166f, 2.1670000000000003f, -2.168f, 2.169f, -2.17f, 2.1710000000000003f, -2.172f, 2.173f, -2.174f, 2.1750000000000003f, -2.176f, 2.177f, -2.178f, 2.179f, -2.18f, 2.181f, -2.182f, 2.183f, -2.184f, 2.185f, -2.186f, 2.187f, -2.188f, 2.189f, -2.19f, 2.191f, -2.192f, 2.193f, -2.194f, 2.195f, -2.196f, 2.197f, -2.198f, 2.199f, -2.2f, 2.201f, -2.202f, 2.203f, -2.204f, 2.205f, -2.206f, 2.207f, -2.208f, 2.209f, -2.21f, 2.211f, -2.212f, 2.213f, -2.214f, 2.215f, -2.216f, 2.217f, -2.218f, 2.219f, -2.22f, 2.221f, -2.222f, 2.223f, -2.224f, 2.225f, -2.226f, 2.227f, -2.228f, 2.229f, -2.23f, 2.231f, -2.232f, 2.233f, -2.234f, 2.235f, -2.236f, 2.237f, -2.238f, 2.239f, -2.24f, 2.241f, -2.242f, 2.243f, -2.244f, 2.245f, -2.246f, 2.247f, -2.248f, 2.249f, -2.25f, 2.251f, -2.2520000000000002f, 2.253f, -2.254f, 2.255f, -2.2560000000000002f, 2.257f, -2.258f, 2.259f, -2.2600000000000002f, 2.261f, -2.262f, 2.263f, -2.2640000000000002f, 2.265f, -2.266f, 2.267f, -2.2680000000000002f, 2.269f, -2.27f, 2.271f, -2.2720000000000002f, 2.273f, -2.274f, 2.275f, -2.2760000000000002f, 2.277f, -2.278f, 2.279f, -2.2800000000000002f, 2.281f, -2.282f, 2.283f, -2.2840000000000003f, 2.285f, -2.286f, 2.287f, -2.2880000000000003f, 2.289f, -2.29f, 2.291f, -2.2920000000000003f, 2.293f, -2.294f, 2.295f, -2.2960000000000003f, 2.297f, -2.298f, 2.299f, -2.3000000000000003f, 2.301f, -2.302f, 2.303f, -2.3040000000000003f, 2.305f, -2.306f, 2.307f, -2.308f, 2.309f, -2.31f, 2.311f, -2.312f, 2.313f, -2.314f, 2.315f, -2.316f, 2.317f, -2.318f, 2.319f, -2.32f, 2.321f, -2.322f, 2.323f, -2.324f, 2.325f, -2.326f, 2.327f, -2.328f, 2.329f, -2.33f, 2.331f, -2.332f, 2.333f, -2.334f, 2.335f, -2.336f, 2.337f, -2.338f, 2.339f, -2.34f, 2.341f, -2.342f, 2.343f, -2.344f, 2.345f, -2.346f, 2.347f, -2.348f, 2.349f, -2.35f, 2.351f, -2.352f, 2.353f, -2.354f, 2.355f, -2.356f, 2.357f, -2.358f, 2.359f, -2.36f, 2.361f, -2.362f, 2.363f, -2.364f, 2.365f, -2.366f, 2.367f, -2.368f, 2.369f, -2.37f, 2.371f, -2.372f, 2.373f, -2.374f, 2.375f, -2.376f, 2.3770000000000002f, -2.378f, 2.379f, -2.38f, 2.3810000000000002f, -2.382f, 2.383f, -2.384f, 2.3850000000000002f, -2.386f, 2.387f, -2.388f, 2.3890000000000002f, -2.39f, 2.391f, -2.392f, 2.3930000000000002f, -2.394f, 2.395f, -2.396f, 2.3970000000000002f, -2.398f, 2.399f, -2.4f, 2.4010000000000002f, -2.402f, 2.403f, -2.404f, 2.4050000000000002f, -2.406f, 2.407f, -2.408f, 2.4090000000000003f, -2.41f, 2.411f, -2.412f, 2.4130000000000003f, -2.414f, 2.415f, -2.416f, 2.4170000000000003f, -2.418f, 2.419f, -2.42f, 2.4210000000000003f, -2.422f, 2.423f, -2.424f, 2.4250000000000003f, -2.426f, 2.427f, -2.428f, 2.4290000000000003f, -2.43f, 2.431f, -2.432f, 2.433f, -2.434f, 2.435f, -2.436f, 2.437f, -2.438f, 2.439f, -2.44f, 2.441f, -2.442f, 2.443f, -2.444f, 2.445f, -2.446f, 2.447f, -2.448f, 2.449f, -2.45f, 2.451f, -2.452f, 2.453f, -2.454f, 2.455f, -2.456f, 2.457f, -2.458f, 2.459f, -2.46f, 2.461f, -2.462f, 2.463f, -2.464f, 2.465f, -2.466f, 2.467f, -2.468f, 2.469f, -2.47f, 2.471f, -2.472f, 2.473f, -2.474f, 2.475f, -2.476f, 2.477f, -2.478f, 2.479f, -2.48f, 2.481f, -2.482f, 2.483f, -2.484f, 2.485f, -2.486f, 2.487f, -2.488f, 2.489f, -2.49f, 2.491f, -2.492f, 2.493f, -2.494f, 2.495f, -2.496f, 2.497f, -2.498f, 2.499f, -2.5f, 2.501f, -2.5020000000000002f, 2.503f, -2.504f, 2.505f, -2.5060000000000002f, 2.507f, -2.508f, 2.509f, -2.5100000000000002f, 2.511f, -2.512f, 2.513f, -2.5140000000000002f, 2.515f, -2.516f, 2.517f, -2.5180000000000002f, 2.519f, -2.52f, 2.521f, -2.5220000000000002f, 2.523f, -2.524f, 2.525f, -2.5260000000000002f, 2.527f, -2.528f, 2.529f, -2.5300000000000002f, 2.531f, -2.532f, 2.533f, -2.5340000000000003f, 2.535f, -2.536f, 2.537f, -2.5380000000000003f, 2.539f, -2.54f, 2.541f, -2.5420000000000003f, 2.543f, -2.544f, 2.545f, -2.5460000000000003f, 2.547f, -2.548f, 2.549f, -2.5500000000000003f, 2.551f, -2.552f, 2.553f, -2.5540000000000003f, 2.555f, -2.556f, 2.557f, -2.5580000000000003f, 2.559f, -2.56f, 2.561f, -2.562f, 2.563f, -2.564f, 2.565f, -2.566f, 2.567f, -2.568f, 2.569f, -2.57f, 2.571f, -2.572f, 2.573f, -2.574f, 2.575f, -2.576f, 2.577f, -2.578f, 2.579f, -2.58f, 2.581f, -2.582f, 2.583f, -2.584f, 2.585f, -2.586f, 2.587f, -2.588f, 2.589f, -2.59f, 2.591f, -2.592f, 2.593f, -2.594f, 2.595f, -2.596f, 2.597f, -2.598f, 2.599f, -2.6f, 2.601f, -2.602f, 2.603f, -2.604f, 2.605f, -2.606f, 2.607f, -2.608f, 2.609f, -2.61f, 2.611f, -2.612f, 2.613f, -2.614f, 2.615f, -2.616f, 2.617f, -2.618f, 2.619f, -2.62f, 2.621f, -2.622f, 2.623f, -2.624f, 2.625f, -2.626f, 2.6270000000000002f, -2.628f, 2.629f, -2.63f, 2.6310000000000002f, -2.632f, 2.633f, -2.634f, 2.6350000000000002f, -2.636f, 2.637f, -2.638f, 2.6390000000000002f, -2.64f, 2.641f, -2.642f, 2.6430000000000002f, -2.644f, 2.645f, -2.646f, 2.6470000000000002f, -2.648f, 2.649f, -2.65f, 2.6510000000000002f, -2.652f, 2.653f, -2.654f, 2.6550000000000002f, -2.656f, 2.657f, -2.658f, 2.6590000000000003f, -2.66f, 2.661f, -2.662f, 2.6630000000000003f, -2.664f, 2.665f, -2.666f, 2.6670000000000003f, -2.668f, 2.669f, -2.67f, 2.6710000000000003f, -2.672f, 2.673f, -2.674f, 2.6750000000000003f, -2.676f, 2.677f, -2.678f, 2.6790000000000003f, -2.68f, 2.681f, -2.682f, 2.6830000000000003f, -2.684f, 2.685f, -2.686f, 2.6870000000000003f, -2.688f, 2.689f, -2.69f, 2.691f, -2.692f, 2.693f, -2.694f, 2.695f, -2.696f, 2.697f, -2.698f, 2.699f, -2.7f, 2.701f, -2.702f, 2.703f, -2.704f, 2.705f, -2.706f, 2.707f, -2.708f, 2.709f, -2.71f, 2.711f, -2.712f, 2.713f, -2.714f, 2.715f, -2.716f, 2.717f, -2.718f, 2.719f, -2.72f, 2.721f, -2.722f, 2.723f, -2.724f, 2.725f, -2.726f, 2.727f, -2.728f, 2.729f, -2.73f, 2.731f, -2.732f, 2.733f, -2.734f, 2.735f, -2.736f, 2.737f, -2.738f, 2.739f, -2.74f, 2.741f, -2.742f, 2.743f, -2.744f, 2.745f, -2.746f, 2.747f, -2.748f, 2.749f, -2.75f, 2.751f, -2.7520000000000002f, 2.753f, -2.754f, 2.755f, -2.7560000000000002f, 2.757f, -2.758f, 2.759f, -2.7600000000000002f, 2.761f, -2.762f, 2.763f, -2.7640000000000002f, 2.765f, -2.766f, 2.767f, -2.7680000000000002f, 2.769f, -2.77f, 2.771f, -2.7720000000000002f, 2.773f, -2.774f, 2.775f, -2.7760000000000002f, 2.777f, -2.778f, 2.779f, -2.7800000000000002f, 2.781f, -2.782f, 2.783f, -2.7840000000000003f, 2.785f, -2.786f, 2.787f, -2.7880000000000003f, 2.789f, -2.79f, 2.791f, -2.7920000000000003f, 2.793f, -2.794f, 2.795f, -2.7960000000000003f, 2.797f, -2.798f, 2.799f, -2.8000000000000003f, 2.801f, -2.802f, 2.803f, -2.8040000000000003f, 2.805f, -2.806f, 2.807f, -2.8080000000000003f, 2.809f, -2.81f, 2.811f, -2.8120000000000003f, 2.813f, -2.814f, 2.815f, -2.816f, 2.817f, -2.818f, 2.819f, -2.82f, 2.821f, -2.822f, 2.823f, -2.824f, 2.825f, -2.826f, 2.827f, -2.828f, 2.829f, -2.83f, 2.831f, -2.832f, 2.833f, -2.834f, 2.835f, -2.836f, 2.837f, -2.838f, 2.839f, -2.84f, 2.841f, -2.842f, 2.843f, -2.844f, 2.845f, -2.846f, 2.847f, -2.848f, 2.849f, -2.85f, 2.851f, -2.852f, 2.853f, -2.854f, 2.855f, -2.856f, 2.857f, -2.858f, 2.859f, -2.86f, 2.861f, -2.862f, 2.863f, -2.864f, 2.865f, -2.866f, 2.867f, -2.868f, 2.869f, -2.87f, 2.871f, -2.872f, 2.873f, -2.874f, 2.875f, -2.876f, 2.8770000000000002f, -2.878f, 2.879f, -2.88f, 2.8810000000000002f, -2.882f, 2.883f, -2.884f, 2.8850000000000002f, -2.886f, 2.887f, -2.888f, 2.8890000000000002f, -2.89f, 2.891f, -2.892f, 2.8930000000000002f, -2.894f, 2.895f, -2.896f, 2.8970000000000002f, -2.898f, 2.899f, -2.9f, 2.9010000000000002f, -2.902f, 2.903f, -2.904f, 2.9050000000000002f, -2.906f, 2.907f, -2.908f, 2.9090000000000003f, -2.91f, 2.911f, -2.912f, 2.9130000000000003f, -2.914f, 2.915f, -2.916f, 2.9170000000000003f, -2.918f, 2.919f, -2.92f, 2.9210000000000003f, -2.922f, 2.923f, -2.924f, 2.9250000000000003f, -2.926f, 2.927f, -2.928f, 2.9290000000000003f, -2.93f, 2.931f, -2.932f, 2.9330000000000003f, -2.934f, 2.935f, -2.936f, 2.9370000000000003f, -2.938f, 2.939f, -2.94f, 2.9410000000000003f, -2.942f, 2.943f, -2.944f, 2.945f, -2.946f, 2.947f, -2.948f, 2.949f, -2.95f, 2.951f, -2.952f, 2.953f, -2.954f, 2.955f, -2.956f, 2.957f, -2.958f, 2.959f, -2.96f, 2.961f, -2.962f, 2.963f, -2.964f, 2.965f, -2.966f, 2.967f, -2.968f, 2.969f, -2.97f, 2.971f, -2.972f, 2.973f, -2.974f, 2.975f, -2.976f, 2.977f, -2.978f, 2.979f, -2.98f, 2.981f, -2.982f, 2.983f, -2.984f, 2.985f, -2.986f, 2.987f, -2.988f, 2.989f, -2.99f, 2.991f, -2.992f, 2.993f, -2.994f, 2.995f, -2.996f, 2.997f, -2.998f, 2.999f, -3.0f, 3.001f, -3.0020000000000002f, 3.003f, -3.004f, 3.005f, -3.0060000000000002f, 3.007f, -3.008f, 3.009f, -3.0100000000000002f, 3.011f, -3.012f, 3.013f, -3.0140000000000002f, 3.015f, -3.016f, 3.017f, -3.0180000000000002f, 3.019f, -3.02f, 3.021f, -3.0220000000000002f, 3.023f, -3.024f, 3.025f, -3.0260000000000002f, 3.027f, -3.028f, 3.029f, -3.0300000000000002f, 3.031f, -3.032f, 3.033f, -3.0340000000000003f, 3.035f, -3.036f, 3.037f, -3.0380000000000003f, 3.039f, -3.04f, 3.041f, -3.0420000000000003f, 3.043f, -3.044f, 3.045f, -3.0460000000000003f, 3.047f, -3.048f, 3.049f, -3.0500000000000003f, 3.051f, -3.052f, 3.053f, -3.0540000000000003f, 3.055f, -3.056f, 3.057f, -3.0580000000000003f, 3.059f, -3.06f, 3.061f, -3.0620000000000003f, 3.063f, -3.064f, 3.065f, -3.0660000000000003f, 3.067f, -3.068f, 3.069f, -3.0700000000000003f, 3.071f, -3.072f, 3.073f, -3.074f, 3.075f, -3.076f, 3.077f, -3.078f, 3.079f, -3.08f, 3.081f, -3.082f, 3.083f, -3.084f, 3.085f, -3.086f, 3.087f, -3.088f, 3.089f, -3.09f, 3.091f, -3.092f, 3.093f, -3.094f, 3.095f, -3.096f, 3.097f, -3.098f, 3.099f, -3.1f, 3.101f, -3.102f, 3.103f, -3.104f, 3.105f, -3.106f, 3.107f, -3.108f, 3.109f, -3.11f, 3.111f, -3.112f, 3.113f, -3.114f, 3.115f, -3.116f, 3.117f, -3.118f, 3.119f, -3.12f, 3.121f, -3.122f, 3.123f, -3.124f, 3.125f, -3.126f, 3.1270000000000002f, -3.128f, 3.129f, -3.13f, 3.1310000000000002f, -3.132f, 3.133f, -3.134f, 3.1350000000000002f, -3.136f, 3.137f, -3.138f, 3.1390000000000002f, -3.14f, 3.141f, -3.142f, 3.1430000000000002f, -3.144f, 3.145f, -3.146f, 3.1470000000000002f, -3.148f, 3.149f, -3.15f, 3.1510000000000002f, -3.152f, 3.153f, -3.154f, 3.1550000000000002f, -3.156f, 3.157f, -3.158f, 3.1590000000000003f, -3.16f, 3.161f, -3.162f, 3.1630000000000003f, -3.164f, 3.165f, -3.166f, 3.1670000000000003f, -3.168f, 3.169f, -3.17f, 3.1710000000000003f, -3.172f, 3.173f, -3.174f, 3.1750000000000003f, -3.176f, 3.177f, -3.178f, 3.1790000000000003f, -3.18f, 3.181f, -3.182f, 3.1830000000000003f, -3.184f, 3.185f, -3.186f, 3.1870000000000003f, -3.188f, 3.189f, -3.19f, 3.1910000000000003f, -3.192f, 3.193f, -3.194f, 3.1950000000000003f, -3.196f, 3.197f, -3.198f, 3.1990000000000003f, -3.2f, 3.201f, -3.202f, 3.203f, -3.204f, 3.205f, -3.206f, 3.207f, -3.208f, 3.209f, -3.21f, 3.211f, -3.212f, 3.213f, -3.214f, 3.215f, -3.216f, 3.217f, -3.218f, 3.219f, -3.22f, 3.221f, -3.222f, 3.223f, -3.224f, 3.225f, -3.226f, 3.227f, -3.228f, 3.229f, -3.23f, 3.231f, -3.232f, 3.233f, -3.234f, 3.235f, -3.236f, 3.237f, -3.238f, 3.239f, -3.24f, 3.241f, -3.242f, 3.243f, -3.244f, 3.245f, -3.246f, 3.247f, -3.248f, 3.249f, -3.25f, 3.251f, -3.2520000000000002f, 3.253f, -3.254f, 3.255f, -3.2560000000000002f, 3.257f, -3.258f, 3.259f, -3.2600000000000002f, 3.261f, -3.262f, 3.263f, -3.2640000000000002f, 3.265f, -3.266f, 3.267f, -3.2680000000000002f, 3.269f, -3.27f, 3.271f, -3.2720000000000002f, 3.273f, -3.274f, 3.275f, -3.2760000000000002f, 3.277f, -3.278f, 3.279f, -3.2800000000000002f, 3.281f, -3.282f, 3.283f, -3.2840000000000003f, 3.285f, -3.286f, 3.287f, -3.2880000000000003f, 3.289f, -3.29f, 3.291f, -3.2920000000000003f, 3.293f, -3.294f, 3.295f, -3.2960000000000003f, 3.297f, -3.298f, 3.299f, -3.3000000000000003f, 3.301f, -3.302f, 3.303f, -3.3040000000000003f, 3.305f, -3.306f, 3.307f, -3.3080000000000003f, 3.309f, -3.31f, 3.311f, -3.3120000000000003f, 3.313f, -3.314f, 3.315f, -3.3160000000000003f, 3.317f, -3.318f, 3.319f, -3.3200000000000003f, 3.321f, -3.322f, 3.323f, -3.3240000000000003f, 3.325f, -3.326f, 3.327f, -3.3280000000000003f, 3.329f, -3.33f, 3.331f, -3.332f, 3.333f, -3.334f, 3.335f, -3.336f, 3.337f, -3.338f, 3.339f, -3.34f, 3.341f, -3.342f, 3.343f, -3.344f, 3.345f, -3.346f, 3.347f, -3.348f, 3.349f, -3.35f, 3.351f, -3.352f, 3.353f, -3.354f, 3.355f, -3.356f, 3.357f, -3.358f, 3.359f, -3.36f, 3.361f, -3.362f, 3.363f, -3.364f, 3.365f, -3.366f, 3.367f, -3.368f, 3.369f, -3.37f, 3.371f, -3.372f, 3.373f, -3.374f, 3.375f, -3.376f, 3.3770000000000002f, -3.378f, 3.379f, -3.38f, 3.3810000000000002f, -3.382f, 3.383f, -3.384f, 3.3850000000000002f, -3.386f, 3.387f, -3.388f, 3.3890000000000002f, -3.39f, 3.391f, -3.392f, 3.3930000000000002f, -3.394f, 3.395f, -3.396f, 3.3970000000000002f, -3.398f, 3.399f, -3.4f, 3.4010000000000002f, -3.402f, 3.403f, -3.404f, 3.4050000000000002f, -3.406f, 3.407f, -3.408f, 3.4090000000000003f, -3.41f, 3.411f, -3.412f, 3.4130000000000003f, -3.414f, 3.415f, -3.416f, 3.4170000000000003f, -3.418f, 3.419f, -3.42f, 3.4210000000000003f, -3.422f, 3.423f, -3.424f, 3.4250000000000003f, -3.426f, 3.427f, -3.428f, 3.4290000000000003f, -3.43f, 3.431f, -3.432f, 3.4330000000000003f, -3.434f, 3.435f, -3.436f, 3.4370000000000003f, -3.438f, 3.439f, -3.44f, 3.4410000000000003f, -3.442f, 3.443f, -3.444f, 3.4450000000000003f, -3.446f, 3.447f, -3.448f, 3.4490000000000003f, -3.45f, 3.451f, -3.452f, 3.4530000000000003f, -3.454f, 3.455f, -3.456f, 3.457f, -3.458f, 3.459f, -3.46f, 3.461f, -3.462f, 3.463f, -3.464f, 3.465f, -3.466f, 3.467f, -3.468f, 3.469f, -3.47f, 3.471f, -3.472f, 3.473f, -3.474f, 3.475f, -3.476f, 3.477f, -3.478f, 3.479f, -3.48f, 3.481f, -3.482f, 3.483f, -3.484f, 3.485f, -3.486f, 3.487f, -3.488f, 3.489f, -3.49f, 3.491f, -3.492f, 3.493f, -3.494f, 3.495f, -3.496f, 3.497f, -3.498f, 3.499f, -3.5f, 3.501f, -3.5020000000000002f, 3.503f, -3.504f, 3.505f, -3.5060000000000002f, 3.507f, -3.508f, 3.509f, -3.5100000000000002f, 3.511f, -3.512f, 3.513f, -3.5140000000000002f, 3.515f, -3.516f, 3.517f, -3.5180000000000002f, 3.519f, -3.52f, 3.521f, -3.5220000000000002f, 3.523f, -3.524f, 3.525f, -3.5260000000000002f, 3.527f, -3.528f, 3.529f, -3.5300000000000002f, 3.531f, -3.532f, 3.533f, -3.5340000000000003f, 3.535f, -3.536f, 3.537f, -3.5380000000000003f, 3.539f, -3.54f, 3.541f, -3.5420000000000003f, 3.543f, -3.544f, 3.545f, -3.5460000000000003f, 3.547f, -3.548f, 3.549f, -3.5500000000000003f, 3.551f, -3.552f, 3.553f, -3.5540000000000003f, 3.555f, -3.556f, 3.557f, -3.5580000000000003f, 3.559f, -3.56f, 3.561f, -3.5620000000000003f, 3.563f, -3.564f, 3.565f, -3.5660000000000003f, 3.567f, -3.568f, 3.569f, -3.5700000000000003f, 3.571f, -3.572f, 3.573f, -3.5740000000000003f, 3.575f, -3.576f, 3.577f, -3.5780000000000003f, 3.579f, -3.58f, 3.581f, -3.5820000000000003f, 3.583f, -3.584f, 3.585f, -3.586f, 3.587f, -3.588f, 3.589f, -3.59f, 3.591f, -3.592f, 3.593f, -3.594f, 3.595f, -3.596f, 3.597f, -3.598f, 3.599f, -3.6f, 3.601f, -3.602f, 3.603f, -3.604f, 3.605f, -3.606f, 3.607f, -3.608f, 3.609f, -3.61f, 3.611f, -3.612f, 3.613f, -3.614f, 3.615f, -3.616f, 3.617f, -3.618f, 3.619f, -3.62f, 3.621f, -3.622f, 3.623f, -3.624f, 3.625f, -3.626f, 3.6270000000000002f, -3.628f, 3.629f, -3.63f, 3.6310000000000002f, -3.632f, 3.633f, -3.634f, 3.6350000000000002f, -3.636f, 3.637f, -3.638f, 3.6390000000000002f, -3.64f, 3.641f, -3.642f, 3.6430000000000002f, -3.644f, 3.645f, -3.646f, 3.6470000000000002f, -3.648f, 3.649f, -3.65f, 3.6510000000000002f, -3.652f, 3.653f, -3.654f, 3.6550000000000002f, -3.656f, 3.657f, -3.658f, 3.6590000000000003f, -3.66f, 3.661f, -3.662f, 3.6630000000000003f, -3.664f, 3.665f, -3.666f, 3.6670000000000003f, -3.668f, 3.669f, -3.67f, 3.6710000000000003f, -3.672f, 3.673f, -3.674f, 3.6750000000000003f, -3.676f, 3.677f, -3.678f, 3.6790000000000003f, -3.68f, 3.681f, -3.682f, 3.6830000000000003f, -3.684f, 3.685f, -3.686f, 3.6870000000000003f, -3.688f, 3.689f, -3.69f, 3.6910000000000003f, -3.692f, 3.693f, -3.694f, 3.6950000000000003f, -3.696f, 3.697f, -3.698f, 3.6990000000000003f, -3.7f, 3.701f, -3.702f, 3.7030000000000003f, -3.704f, 3.705f, -3.706f, 3.7070000000000003f, -3.708f, 3.709f, -3.71f, 3.7110000000000003f, -3.712f, 3.713f, -3.714f, 3.715f, -3.716f, 3.717f, -3.718f, 3.719f, -3.72f, 3.721f, -3.722f, 3.723f, -3.724f, 3.725f, -3.726f, 3.727f, -3.728f, 3.729f, -3.73f, 3.731f, -3.732f, 3.733f, -3.734f, 3.735f, -3.736f, 3.737f, -3.738f, 3.739f, -3.74f, 3.741f, -3.742f, 3.743f, -3.744f, 3.745f, -3.746f, 3.747f, -3.748f, 3.749f, -3.75f, 3.751f, -3.7520000000000002f, 3.753f, -3.754f, 3.755f, -3.7560000000000002f, 3.757f, -3.758f, 3.759f, -3.7600000000000002f, 3.761f, -3.762f, 3.763f, -3.7640000000000002f, 3.765f, -3.766f, 3.767f, -3.7680000000000002f, 3.769f, -3.77f, 3.771f, -3.7720000000000002f, 3.773f, -3.774f, 3.775f, -3.7760000000000002f, 3.777f, -3.778f, 3.779f, -3.7800000000000002f, 3.781f, -3.782f, 3.783f, -3.7840000000000003f, 3.785f, -3.786f, 3.787f, -3.7880000000000003f, 3.789f, -3.79f, 3.791f, -3.7920000000000003f, 3.793f, -3.794f, 3.795f, -3.7960000000000003f, 3.797f, -3.798f, 3.799f, -3.8000000000000003f, 3.801f, -3.802f, 3.803f, -3.8040000000000003f, 3.805f, -3.806f, 3.807f, -3.8080000000000003f, 3.809f, -3.81f, 3.811f, -3.8120000000000003f, 3.813f, -3.814f, 3.815f, -3.8160000000000003f, 3.817f, -3.818f, 3.819f, -3.8200000000000003f, 3.821f, -3.822f, 3.823f, -3.8240000000000003f, 3.825f, -3.826f, 3.827f, -3.8280000000000003f, 3.829f, -3.83f, 3.831f, -3.8320000000000003f, 3.833f, -3.834f, 3.835f, -3.8360000000000003f, 3.837f, -3.838f, 3.839f, -3.84f, 3.841f, -3.842f, 3.843f, -3.844f, 3.845f, -3.846f, 3.847f, -3.848f, 3.849f, -3.85f, 3.851f, -3.852f, 3.853f, -3.854f, 3.855f, -3.856f, 3.857f, -3.858f, 3.859f, -3.86f, 3.861f, -3.862f, 3.863f, -3.864f, 3.865f, -3.866f, 3.867f, -3.868f, 3.869f, -3.87f, 3.871f, -3.872f, 3.873f, -3.874f, 3.875f, -3.876f, 3.8770000000000002f, -3.878f, 3.879f, -3.88f, 3.8810000000000002f, -3.882f, 3.883f, -3.884f, 3.8850000000000002f, -3.886f, 3.887f, -3.888f, 3.8890000000000002f, -3.89f, 3.891f, -3.892f, 3.8930000000000002f, -3.894f, 3.895f, -3.896f, 3.8970000000000002f, -3.898f, 3.899f, -3.9f, 3.9010000000000002f, -3.902f, 3.903f, -3.904f, 3.9050000000000002f, -3.906f, 3.907f, -3.908f, 3.9090000000000003f, -3.91f, 3.911f, -3.912f, 3.9130000000000003f, -3.914f, 3.915f, -3.916f, 3.9170000000000003f, -3.918f, 3.919f, -3.92f, 3.9210000000000003f, -3.922f, 3.923f, -3.924f, 3.9250000000000003f, -3.926f, 3.927f, -3.928f, 3.9290000000000003f, -3.93f, 3.931f, -3.932f, 3.9330000000000003f, -3.934f, 3.935f, -3.936f, 3.9370000000000003f, -3.938f, 3.939f, -3.94f, 3.9410000000000003f, -3.942f, 3.943f, -3.944f, 3.9450000000000003f, -3.946f, 3.947f, -3.948f, 3.9490000000000003f, -3.95f, 3.951f, -3.952f, 3.9530000000000003f, -3.954f, 3.955f, -3.956f, 3.9570000000000003f, -3.958f, 3.959f, -3.96f, 3.9610000000000003f, -3.962f, 3.963f, -3.964f, 3.9650000000000003f, -3.966f, 3.967f, -3.968f, 3.969f, -3.97f, 3.971f, -3.972f, 3.973f, -3.974f, 3.975f, -3.976f, 3.977f, -3.978f, 3.979f, -3.98f, 3.981f, -3.982f, 3.983f, -3.984f, 3.985f, -3.986f, 3.987f, -3.988f, 3.989f, -3.99f, 3.991f, -3.992f, 3.993f, -3.994f, 3.995f, -3.996f, 3.997f, -3.998f, 3.999f, -4.0f, 4.001f, -4.002f, 4.003f, -4.0040000000000004f, 4.005f, -4.006f, 4.007f, -4.008f, 4.009f, -4.01f, 4.011f, -4.0120000000000005f, 4.013f, -4.014f, 4.015f, -4.016f, 4.017f, -4.018f, 4.019f, -4.0200000000000005f, 4.021f, -4.022f, 4.023f, -4.024f, 4.025f, -4.026f, 4.027f, -4.0280000000000005f, 4.029f, -4.03f, 4.031f, -4.032f, 4.033f, -4.034f, 4.035f, -4.0360000000000005f, 4.037f, -4.038f, 4.039f, -4.04f, 4.041f, -4.042f, 4.043f, -4.0440000000000005f, 4.045f, -4.046f, 4.047f, -4.048f, 4.049f, -4.05f, 4.051f, -4.0520000000000005f, 4.053f, -4.054f, 4.055f, -4.056f, 4.057f, -4.058f, 4.059f, -4.0600000000000005f, 4.061f, -4.062f, 4.063f, -4.064f, 4.065f, -4.066f, 4.067f, -4.0680000000000005f, 4.069f, -4.07f, 4.071f, -4.072f, 4.073f, -4.074f, 4.075f, -4.0760000000000005f, 4.077f, -4.078f, 4.079f, -4.08f, 4.081f, -4.082f, 4.083f, -4.0840000000000005f, 4.085f, -4.086f, 4.087f, -4.088f, 4.089f, -4.09f, 4.091f, -4.0920000000000005f, 4.093f, -4.094f, 4.095f, -4.096f, 4.097f, -4.098f, 4.099f, -4.1f, 4.101f, -4.102f, 4.103f, -4.104f, 4.105f, -4.106f, 4.107f, -4.108f, 4.109f, -4.11f, 4.111f, -4.112f, 4.113f, -4.114f, 4.115f, -4.116f, 4.117f, -4.118f, 4.119f, -4.12f, 4.121f, -4.122f, 4.123f, -4.124f, 4.125f, -4.126f, 4.127f, -4.128f, 4.1290000000000004f, -4.13f, 4.131f, -4.132f, 4.133f, -4.134f, 4.135f, -4.136f, 4.1370000000000005f, -4.138f, 4.139f, -4.14f, 4.141f, -4.142f, 4.143f, -4.144f, 4.1450000000000005f, -4.146f, 4.147f, -4.148f, 4.149f, -4.15f, 4.151f, -4.152f, 4.1530000000000005f, -4.154f, 4.155f, -4.156f, 4.157f, -4.158f, 4.159f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.0f, 0.001f, 0, 0.003f, 0, 0.005f, 0, 0.007f, 0, 0.009000000000000001f, 0, 0.011f, 0, 0.013000000000000001f, 0, 0.015f, 0, 0.017f, 0, 0.019f, 0, 0.021f, 0, 0.023f, 0, 0.025f, 0, 0.027f, 0, 0.029f, 0, 0.031f, 0, 0.033f, 0, 0.035f, 0, 0.037f, 0, 0.039f, 0, 0.041f, 0, 0.043000000000000003f, 0, 0.045f, 0, 0.047f, 0, 0.049f, 0, 0.051000000000000004f, 0, 0.053f, 0, 0.055f, 0, 0.057f, 0, 0.059000000000000004f, 0, 0.061f, 0, 0.063f, 0, 0.065f, 0, 0.067f, 0, 0.069f, 0, 0.07100000000000001f, 0, 0.073f, 0, 0.075f, 0, 0.077f, 0, 0.079f, 0, 0.081f, 0, 0.083f, 0, 0.085f, 0, 0.08700000000000001f, 0, 0.089f, 0, 0.091f, 0, 0.093f, 0, 0.095f, 0, 0.097f, 0, 0.099f, 0, 0.101f, 0, 0.10300000000000001f, 0, 0.105f, 0, 0.107f, 0, 0.109f, 0, 0.111f, 0, 0.113f, 0, 0.115f, 0, 0.117f, 0, 0.11900000000000001f, 0, 0.121f, 0, 0.123f, 0, 0.125f, 0, 0.127f, 0, 0.129f, 0, 0.131f, 0, 0.133f, 0, 0.135f, 0, 0.137f, 0, 0.139f, 0, 0.14100000000000001f, 0, 0.14300000000000002f, 0, 0.145f, 0, 0.147f, 0, 0.149f, 0, 0.151f, 0, 0.153f, 0, 0.155f, 0, 0.157f, 0, 0.159f, 0, 0.161f, 0, 0.163f, 0, 0.165f, 0, 0.167f, 0, 0.169f, 0, 0.171f, 0, 0.17300000000000001f, 0, 0.17500000000000002f, 0, 0.177f, 0, 0.179f, 0, 0.181f, 0, 0.183f, 0, 0.185f, 0, 0.187f, 0, 0.189f, 0, 0.191f, 0, 0.193f, 0, 0.195f, 0, 0.197f, 0, 0.199f, 0, 0.201f, 0, 0.203f, 0, 0.20500000000000002f, 0, 0.20700000000000002f, 0, 0.209f, 0, 0.211f, 0, 0.213f, 0, 0.215f, 0, 0.217f, 0, 0.219f, 0, 0.221f, 0, 0.223f, 0, 0.225f, 0, 0.227f, 0, 0.229f, 0, 0.231f, 0, 0.233f, 0, 0.23500000000000001f, 0, 0.23700000000000002f, 0, 0.23900000000000002f, 0, 0.241f, 0, 0.243f, 0, 0.245f, 0, 0.247f, 0, 0.249f, 0, 0.251f, 0, 0.253f, 0, 0.255f, 0, 0.257f, 0, 0.259f, 0, 0.261f, 0, 0.263f, 0, 0.265f, 0, 0.267f, 0, 0.269f, 0, 0.271f, 0, 0.273f, 0, 0.275f, 0, 0.277f, 0, 0.279f, 0, 0.281f, 0, 0.28300000000000003f, 0, 0.28500000000000003f, 0, 0.28700000000000003f, 0, 0.289f, 0, 0.291f, 0, 0.293f, 0, 0.295f, 0, 0.297f, 0, 0.299f, 0, 0.301f, 0, 0.303f, 0, 0.305f, 0, 0.307f, 0, 0.309f, 0, 0.311f, 0, 0.313f, 0, 0.315f, 0, 0.317f, 0, 0.319f, 0, 0.321f, 0, 0.323f, 0, 0.325f, 0, 0.327f, 0, 0.329f, 0, 0.331f, 0, 0.333f, 0, 0.335f, 0, 0.337f, 0, 0.339f, 0, 0.341f, 0, 0.343f, 0, 0.34500000000000003f, 0, 0.34700000000000003f, 0, 0.34900000000000003f, 0, 0.35100000000000003f, 0, 0.353f, 0, 0.355f, 0, 0.357f, 0, 0.359f, 0, 0.361f, 0, 0.363f, 0, 0.365f, 0, 0.367f, 0, 0.369f, 0, 0.371f, 0, 0.373f, 0, 0.375f, 0, 0.377f, 0, 0.379f, 0, 0.381f, 0, 0.383f, 0, 0.385f, 0, 0.387f, 0, 0.389f, 0, 0.391f, 0, 0.393f, 0, 0.395f, 0, 0.397f, 0, 0.399f, 0, 0.401f, 0, 0.403f, 0, 0.405f, 0, 0.40700000000000003f, 0, 0.40900000000000003f, 0, 0.41100000000000003f, 0, 0.41300000000000003f, 0, 0.41500000000000004f, 0, 0.417f, 0, 0.419f, 0, 0.421f, 0, 0.423f, 0, 0.425f, 0, 0.427f, 0, 0.429f, 0, 0.431f, 0, 0.433f, 0, 0.435f, 0, 0.437f, 0, 0.439f, 0, 0.441f, 0, 0.443f, 0, 0.445f, 0, 0.447f, 0, 0.449f, 0, 0.451f, 0, 0.453f, 0, 0.455f, 0, 0.457f, 0, 0.459f, 0, 0.461f, 0, 0.463f, 0, 0.465f, 0, 0.467f, 0, 0.46900000000000003f, 0, 0.47100000000000003f, 0, 0.47300000000000003f, 0, 0.47500000000000003f, 0, 0.47700000000000004f, 0, 0.47900000000000004f, 0, 0.481f, 0, 0.483f, 0, 0.485f, 0, 0.487f, 0, 0.489f, 0, 0.491f, 0, 0.493f, 0, 0.495f, 0, 0.497f, 0, 0.499f, 0, 0.501f, 0, 0.503f, 0, 0.505f, 0, 0.507f, 0, 0.509f, 0, 0.511f, 0, 0.513f, 0, 0.515f, 0, 0.517f, 0, 0.519f, 0, 0.521f, 0, 0.523f, 0, 0.525f, 0, 0.527f, 0, 0.529f, 0, 0.531f, 0, 0.533f, 0, 0.535f, 0, 0.537f, 0, 0.539f, 0, 0.541f, 0, 0.543f, 0, 0.545f, 0, 0.547f, 0, 0.549f, 0, 0.551f, 0, 0.553f, 0, 0.555f, 0, 0.557f, 0, 0.559f, 0, 0.561f, 0, 0.5630000000000001f, 0, 0.5650000000000001f, 0, 0.5670000000000001f, 0, 0.5690000000000001f, 0, 0.5710000000000001f, 0, 0.5730000000000001f, 0, 0.5750000000000001f, 0, 0.577f, 0, 0.579f, 0, 0.581f, 0, 0.583f, 0, 0.585f, 0, 0.587f, 0, 0.589f, 0, 0.591f, 0, 0.593f, 0, 0.595f, 0, 0.597f, 0, 0.599f, 0, 0.601f, 0, 0.603f, 0, 0.605f, 0, 0.607f, 0, 0.609f, 0, 0.611f, 0, 0.613f, 0, 0.615f, 0, 0.617f, 0, 0.619f, 0, 0.621f, 0, 0.623f, 0, 0.625f, 0, 0.627f, 0, 0.629f, 0, 0.631f, 0, 0.633f, 0, 0.635f, 0, 0.637f, 0, 0.639f, 0, 0.641f, 0, 0.643f, 0, 0.645f, 0, 0.647f, 0, 0.649f, 0, 0.651f, 0, 0.653f, 0, 0.655f, 0, 0.657f, 0, 0.659f, 0, 0.661f, 0, 0.663f, 0, 0.665f, 0, 0.667f, 0, 0.669f, 0, 0.671f, 0, 0.673f, 0, 0.675f, 0, 0.677f, 0, 0.679f, 0, 0.681f, 0, 0.683f, 0, 0.685f, 0, 0.687f, 0, 0.6890000000000001f, 0, 0.6910000000000001f, 0, 0.6930000000000001f, 0, 0.6950000000000001f, 0, 0.6970000000000001f, 0, 0.6990000000000001f, 0, 0.7010000000000001f, 0, 0.7030000000000001f, 0, 0.705f, 0, 0.707f, 0, 0.709f, 0, 0.711f, 0, 0.713f, 0, 0.715f, 0, 0.717f, 0, 0.719f, 0, 0.721f, 0, 0.723f, 0, 0.725f, 0, 0.727f, 0, 0.729f, 0, 0.731f, 0, 0.733f, 0, 0.735f, 0, 0.737f, 0, 0.739f, 0, 0.741f, 0, 0.743f, 0, 0.745f, 0, 0.747f, 0, 0.749f, 0, 0.751f, 0, 0.753f, 0, 0.755f, 0, 0.757f, 0, 0.759f, 0, 0.761f, 0, 0.763f, 0, 0.765f, 0, 0.767f, 0, 0.769f, 0, 0.771f, 0, 0.773f, 0, 0.775f, 0, 0.777f, 0, 0.779f, 0, 0.781f, 0, 0.783f, 0, 0.785f, 0, 0.787f, 0, 0.789f, 0, 0.791f, 0, 0.793f, 0, 0.795f, 0, 0.797f, 0, 0.799f, 0, 0.801f, 0, 0.803f, 0, 0.805f, 0, 0.807f, 0, 0.809f, 0, 0.811f, 0, 0.8130000000000001f, 0, 0.8150000000000001f, 0, 0.8170000000000001f, 0, 0.8190000000000001f, 0, 0.8210000000000001f, 0, 0.8230000000000001f, 0, 0.8250000000000001f, 0, 0.8270000000000001f, 0, 0.8290000000000001f, 0, 0.8310000000000001f, 0, 0.833f, 0, 0.835f, 0, 0.837f, 0, 0.839f, 0, 0.841f, 0, 0.843f, 0, 0.845f, 0, 0.847f, 0, 0.849f, 0, 0.851f, 0, 0.853f, 0, 0.855f, 0, 0.857f, 0, 0.859f, 0, 0.861f, 0, 0.863f, 0, 0.865f, 0, 0.867f, 0, 0.869f, 0, 0.871f, 0, 0.873f, 0, 0.875f, 0, 0.877f, 0, 0.879f, 0, 0.881f, 0, 0.883f, 0, 0.885f, 0, 0.887f, 0, 0.889f, 0, 0.891f, 0, 0.893f, 0, 0.895f, 0, 0.897f, 0, 0.899f, 0, 0.901f, 0, 0.903f, 0, 0.905f, 0, 0.907f, 0, 0.909f, 0, 0.911f, 0, 0.913f, 0, 0.915f, 0, 0.917f, 0, 0.919f, 0, 0.921f, 0, 0.923f, 0, 0.925f, 0, 0.927f, 0, 0.929f, 0, 0.931f, 0, 0.933f, 0, 0.935f, 0, 0.937f, 0, 0.9390000000000001f, 0, 0.9410000000000001f, 0, 0.9430000000000001f, 0, 0.9450000000000001f, 0, 0.9470000000000001f, 0, 0.9490000000000001f, 0, 0.9510000000000001f, 0, 0.9530000000000001f, 0, 0.9550000000000001f, 0, 0.9570000000000001f, 0, 0.9590000000000001f, 0, 0.961f, 0, 0.963f, 0, 0.965f, 0, 0.967f, 0, 0.969f, 0, 0.971f, 0, 0.973f, 0, 0.975f, 0, 0.977f, 0, 0.979f, 0, 0.981f, 0, 0.983f, 0, 0.985f, 0, 0.987f, 0, 0.989f, 0, 0.991f, 0, 0.993f, 0, 0.995f, 0, 0.997f, 0, 0.999f, 0, 1.0010000000000001f, 0, 1.0030000000000001f, 0, 1.0050000000000001f, 0, 1.0070000000000001f, 0, 1.0090000000000001f, 0, 1.0110000000000001f, 0, 1.0130000000000001f, 0, 1.0150000000000001f, 0, 1.0170000000000001f, 0, 1.0190000000000001f, 0, 1.0210000000000001f, 0, 1.0230000000000001f, 0, 1.025f, 0, 1.027f, 0, 1.029f, 0, 1.031f, 0, 1.033f, 0, 1.035f, 0, 1.037f, 0, 1.039f, 0, 1.041f, 0, 1.043f, 0, 1.045f, 0, 1.047f, 0, 1.049f, 0, 1.051f, 0, 1.053f, 0, 1.055f, 0, 1.057f, 0, 1.059f, 0, 1.061f, 0, 1.063f, 0, 1.065f, 0, 1.067f, 0, 1.069f, 0, 1.071f, 0, 1.073f, 0, 1.075f, 0, 1.077f, 0, 1.079f, 0, 1.081f, 0, 1.083f, 0, 1.085f, 0, 1.087f, 0, 1.089f, 0, 1.091f, 0, 1.093f, 0, 1.095f, 0, 1.097f, 0, 1.099f, 0, 1.101f, 0, 1.103f, 0, 1.105f, 0, 1.107f, 0, 1.109f, 0, 1.111f, 0, 1.113f, 0, 1.115f, 0, 1.117f, 0, 1.119f, 0, 1.121f, 0, 1.123f, 0, 1.125f, 0, 1.127f, 0, 1.129f, 0, 1.131f, 0, 1.133f, 0, 1.135f, 0, 1.137f, 0, 1.139f, 0, 1.141f, 0, 1.143f, 0, 1.145f, 0, 1.147f, 0, 1.149f, 0, 1.151f, 0, 1.153f, 0, 1.155f, 0, 1.157f, 0, 1.159f, 0, 1.161f, 0, 1.163f, 0, 1.165f, 0, 1.167f, 0, 1.169f, 0, 1.171f, 0, 1.173f, 0, 1.175f, 0, 1.177f, 0, 1.179f, 0, 1.181f, 0, 1.183f, 0, 1.185f, 0, 1.187f, 0, 1.189f, 0, 1.191f, 0, 1.193f, 0, 1.195f, 0, 1.197f, 0, 1.199f, 0, 1.201f, 0, 1.203f, 0, 1.205f, 0, 1.207f, 0, 1.209f, 0, 1.211f, 0, 1.213f, 0, 1.215f, 0, 1.217f, 0, 1.219f, 0, 1.221f, 0, 1.223f, 0, 1.225f, 0, 1.227f, 0, 1.229f, 0, 1.231f, 0, 1.233f, 0, 1.235f, 0, 1.237f, 0, 1.239f, 0, 1.241f, 0, 1.243f, 0, 1.245f, 0, 1.247f, 0, 1.249f, 0, 1.2510000000000001f, 0, 1.2530000000000001f, 0, 1.2550000000000001f, 0, 1.2570000000000001f, 0, 1.2590000000000001f, 0, 1.2610000000000001f, 0, 1.2630000000000001f, 0, 1.2650000000000001f, 0, 1.2670000000000001f, 0, 1.2690000000000001f, 0, 1.2710000000000001f, 0, 1.2730000000000001f, 0, 1.2750000000000001f, 0, 1.2770000000000001f, 0, 1.2790000000000001f, 0, 1.281f, 0, 1.283f, 0, 1.285f, 0, 1.287f, 0, 1.289f, 0, 1.291f, 0, 1.293f, 0, 1.295f, 0, 1.297f, 0, 1.299f, 0, 1.301f, 0, 1.303f, 0, 1.305f, 0, 1.307f, 0, 1.309f, 0, 1.311f, 0, 1.313f, 0, 1.315f, 0, 1.317f, 0, 1.319f, 0, 1.321f, 0, 1.323f, 0, 1.325f, 0, 1.327f, 0, 1.329f, 0, 1.331f, 0, 1.333f, 0, 1.335f, 0, 1.337f, 0, 1.339f, 0, 1.341f, 0, 1.343f, 0, 1.345f, 0, 1.347f, 0, 1.349f, 0, 1.351f, 0, 1.353f, 0, 1.355f, 0, 1.357f, 0, 1.359f, 0, 1.361f, 0, 1.363f, 0, 1.365f, 0, 1.367f, 0, 1.369f, 0, 1.371f, 0, 1.373f, 0, 1.375f, 0, 1.377f, 0, 1.379f, 0, 1.381f, 0, 1.383f, 0, 1.385f, 0, 1.387f, 0, 1.389f, 0, 1.391f, 0, 1.393f, 0, 1.395f, 0, 1.397f, 0, 1.399f, 0, 1.401f, 0, 1.403f, 0, 1.405f, 0, 1.407f, 0, 1.409f, 0, 1.411f, 0, 1.413f, 0, 1.415f, 0, 1.417f, 0, 1.419f, 0, 1.421f, 0, 1.423f, 0, 1.425f, 0, 1.427f, 0, 1.429f, 0, 1.431f, 0, 1.433f, 0, 1.435f, 0, 1.437f, 0, 1.439f, 0, 1.441f, 0, 1.443f, 0, 1.445f, 0, 1.447f, 0, 1.449f, 0, 1.451f, 0, 1.453f, 0, 1.455f, 0, 1.457f, 0, 1.459f, 0, 1.461f, 0, 1.463f, 0, 1.465f, 0, 1.467f, 0, 1.469f, 0, 1.471f, 0, 1.473f, 0, 1.475f, 0, 1.477f, 0, 1.479f, 0, 1.481f, 0, 1.483f, 0, 1.485f, 0, 1.487f, 0, 1.489f, 0, 1.491f, 0, 1.493f, 0, 1.495f, 0, 1.497f, 0, 1.499f, 0, 1.5010000000000001f, 0, 1.5030000000000001f, 0, 1.5050000000000001f, 0, 1.5070000000000001f, 0, 1.5090000000000001f, 0, 1.5110000000000001f, 0, 1.5130000000000001f, 0, 1.5150000000000001f, 0, 1.5170000000000001f, 0, 1.5190000000000001f, 0, 1.5210000000000001f, 0, 1.5230000000000001f, 0, 1.5250000000000001f, 0, 1.5270000000000001f, 0, 1.5290000000000001f, 0, 1.5310000000000001f, 0, 1.5330000000000001f, 0, 1.5350000000000001f, 0, 1.537f, 0, 1.539f, 0, 1.541f, 0, 1.543f, 0, 1.545f, 0, 1.547f, 0, 1.549f, 0, 1.551f, 0, 1.553f, 0, 1.555f, 0, 1.557f, 0, 1.559f, 0, 1.561f, 0, 1.563f, 0, 1.565f, 0, 1.567f, 0, 1.569f, 0, 1.571f, 0, 1.573f, 0, 1.575f, 0, 1.577f, 0, 1.579f, 0, 1.581f, 0, 1.583f, 0, 1.585f, 0, 1.587f, 0, 1.589f, 0, 1.591f, 0, 1.593f, 0, 1.595f, 0, 1.597f, 0, 1.599f, 0, 1.601f, 0, 1.603f, 0, 1.605f, 0, 1.607f, 0, 1.609f, 0, 1.611f, 0, 1.613f, 0, 1.615f, 0, 1.617f, 0, 1.619f, 0, 1.621f, 0, 1.623f, 0, 1.625f, 0, 1.627f, 0, 1.629f, 0, 1.631f, 0, 1.633f, 0, 1.635f, 0, 1.637f, 0, 1.639f, 0, 1.641f, 0, 1.643f, 0, 1.645f, 0, 1.647f, 0, 1.649f, 0, 1.651f, 0, 1.653f, 0, 1.655f, 0, 1.657f, 0, 1.659f, 0, 1.661f, 0, 1.663f, 0, 1.665f, 0, 1.667f, 0, 1.669f, 0, 1.671f, 0, 1.673f, 0, 1.675f, 0, 1.677f, 0, 1.679f, 0, 1.681f, 0, 1.683f, 0, 1.685f, 0, 1.687f, 0, 1.689f, 0, 1.691f, 0, 1.693f, 0, 1.695f, 0, 1.697f, 0, 1.699f, 0, 1.701f, 0, 1.703f, 0, 1.705f, 0, 1.707f, 0, 1.709f, 0, 1.711f, 0, 1.713f, 0, 1.715f, 0, 1.717f, 0, 1.719f, 0, 1.721f, 0, 1.723f, 0, 1.725f, 0, 1.727f, 0, 1.729f, 0, 1.731f, 0, 1.733f, 0, 1.735f, 0, 1.737f, 0, 1.739f, 0, 1.741f, 0, 1.743f, 0, 1.745f, 0, 1.747f, 0, 1.749f, 0, 1.7510000000000001f, 0, 1.7530000000000001f, 0, 1.7550000000000001f, 0, 1.7570000000000001f, 0, 1.7590000000000001f, 0, 1.7610000000000001f, 0, 1.7630000000000001f, 0, 1.7650000000000001f, 0, 1.7670000000000001f, 0, 1.7690000000000001f, 0, 1.7710000000000001f, 0, 1.7730000000000001f, 0, 1.7750000000000001f, 0, 1.7770000000000001f, 0, 1.7790000000000001f, 0, 1.7810000000000001f, 0, 1.7830000000000001f, 0, 1.7850000000000001f, 0, 1.7870000000000001f, 0, 1.7890000000000001f, 0, 1.7910000000000001f, 0, 1.793f, 0, 1.795f, 0, 1.797f, 0, 1.799f, 0, 1.801f, 0, 1.803f, 0, 1.805f, 0, 1.807f, 0, 1.809f, 0, 1.811f, 0, 1.813f, 0, 1.815f, 0, 1.817f, 0, 1.819f, 0, 1.821f, 0, 1.823f, 0, 1.825f, 0, 1.827f, 0, 1.829f, 0, 1.831f, 0, 1.833f, 0, 1.835f, 0, 1.837f, 0, 1.839f, 0, 1.841f, 0, 1.843f, 0, 1.845f, 0, 1.847f, 0, 1.849f, 0, 1.851f, 0, 1.853f, 0, 1.855f, 0, 1.857f, 0, 1.859f, 0, 1.861f, 0, 1.863f, 0, 1.865f, 0, 1.867f, 0, 1.869f, 0, 1.871f, 0, 1.873f, 0, 1.875f, 0, 1.877f, 0, 1.879f, 0, 1.881f, 0, 1.883f, 0, 1.885f, 0, 1.887f, 0, 1.889f, 0, 1.891f, 0, 1.893f, 0, 1.895f, 0, 1.897f, 0, 1.899f, 0, 1.901f, 0, 1.903f, 0, 1.905f, 0, 1.907f, 0, 1.909f, 0, 1.911f, 0, 1.913f, 0, 1.915f, 0, 1.917f, 0, 1.919f, 0, 1.921f, 0, 1.923f, 0, 1.925f, 0, 1.927f, 0, 1.929f, 0, 1.931f, 0, 1.933f, 0, 1.935f, 0, 1.937f, 0, 1.939f, 0, 1.941f, 0, 1.943f, 0, 1.945f, 0, 1.947f, 0, 1.949f, 0, 1.951f, 0, 1.953f, 0, 1.955f, 0, 1.957f, 0, 1.959f, 0, 1.961f, 0, 1.963f, 0, 1.965f, 0, 1.967f, 0, 1.969f, 0, 1.971f, 0, 1.973f, 0, 1.975f, 0, 1.977f, 0, 1.979f, 0, 1.981f, 0, 1.983f, 0, 1.985f, 0, 1.987f, 0, 1.989f, 0, 1.991f, 0, 1.993f, 0, 1.995f, 0, 1.997f, 0, 1.999f, 0, 2.001f, 0, 2.003f, 0, 2.005f, 0, 2.007f, 0, 2.009f, 0, 2.011f, 0, 2.013f, 0, 2.015f, 0, 2.017f, 0, 2.019f, 0, 2.021f, 0, 2.023f, 0, 2.025f, 0, 2.027f, 0, 2.029f, 0, 2.031f, 0, 2.033f, 0, 2.035f, 0, 2.037f, 0, 2.039f, 0, 2.041f, 0, 2.043f, 0, 2.045f, 0, 2.047f, 0, 2.049f, 0, 2.051f, 0, 2.053f, 0, 2.055f, 0, 2.057f, 0, 2.059f, 0, 2.061f, 0, 2.063f, 0, 2.065f, 0, 2.067f, 0, 2.069f, 0, 2.071f, 0, 2.073f, 0, 2.075f, 0, 2.077f, 0, 2.079f, 0, 2.081f, 0, 2.083f, 0, 2.085f, 0, 2.087f, 0, 2.089f, 0, 2.091f, 0, 2.093f, 0, 2.095f, 0, 2.097f, 0, 2.099f, 0, 2.101f, 0, 2.103f, 0, 2.105f, 0, 2.107f, 0, 2.109f, 0, 2.111f, 0, 2.113f, 0, 2.115f, 0, 2.117f, 0, 2.119f, 0, 2.121f, 0, 2.123f, 0, 2.125f, 0, 2.1270000000000002f, 0, 2.129f, 0, 2.1310000000000002f, 0, 2.133f, 0, 2.1350000000000002f, 0, 2.137f, 0, 2.1390000000000002f, 0, 2.141f, 0, 2.1430000000000002f, 0, 2.145f, 0, 2.1470000000000002f, 0, 2.149f, 0, 2.1510000000000002f, 0, 2.153f, 0, 2.1550000000000002f, 0, 2.157f, 0, 2.1590000000000003f, 0, 2.161f, 0, 2.1630000000000003f, 0, 2.165f, 0, 2.1670000000000003f, 0, 2.169f, 0, 2.1710000000000003f, 0, 2.173f, 0, 2.1750000000000003f, 0, 2.177f, 0, 2.179f, 0, 2.181f, 0, 2.183f, 0, 2.185f, 0, 2.187f, 0, 2.189f, 0, 2.191f, 0, 2.193f, 0, 2.195f, 0, 2.197f, 0, 2.199f, 0, 2.201f, 0, 2.203f, 0, 2.205f, 0, 2.207f, 0, 2.209f, 0, 2.211f, 0, 2.213f, 0, 2.215f, 0, 2.217f, 0, 2.219f, 0, 2.221f, 0, 2.223f, 0, 2.225f, 0, 2.227f, 0, 2.229f, 0, 2.231f, 0, 2.233f, 0, 2.235f, 0, 2.237f, 0, 2.239f, 0, 2.241f, 0, 2.243f, 0, 2.245f, 0, 2.247f, 0, 2.249f, 0, 2.251f, 0, 2.253f, 0, 2.255f, 0, 2.257f, 0, 2.259f, 0, 2.261f, 0, 2.263f, 0, 2.265f, 0, 2.267f, 0, 2.269f, 0, 2.271f, 0, 2.273f, 0, 2.275f, 0, 2.277f, 0, 2.279f, 0, 2.281f, 0, 2.283f, 0, 2.285f, 0, 2.287f, 0, 2.289f, 0, 2.291f, 0, 2.293f, 0, 2.295f, 0, 2.297f, 0, 2.299f, 0, 2.301f, 0, 2.303f, 0, 2.305f, 0, 2.307f, 0, 2.309f, 0, 2.311f, 0, 2.313f, 0, 2.315f, 0, 2.317f, 0, 2.319f, 0, 2.321f, 0, 2.323f, 0, 2.325f, 0, 2.327f, 0, 2.329f, 0, 2.331f, 0, 2.333f, 0, 2.335f, 0, 2.337f, 0, 2.339f, 0, 2.341f, 0, 2.343f, 0, 2.345f, 0, 2.347f, 0, 2.349f, 0, 2.351f, 0, 2.353f, 0, 2.355f, 0, 2.357f, 0, 2.359f, 0, 2.361f, 0, 2.363f, 0, 2.365f, 0, 2.367f, 0, 2.369f, 0, 2.371f, 0, 2.373f, 0, 2.375f, 0, 2.3770000000000002f, 0, 2.379f, 0, 2.3810000000000002f, 0, 2.383f, 0, 2.3850000000000002f, 0, 2.387f, 0, 2.3890000000000002f, 0, 2.391f, 0, 2.3930000000000002f, 0, 2.395f, 0, 2.3970000000000002f, 0, 2.399f, 0, 2.4010000000000002f, 0, 2.403f, 0, 2.4050000000000002f, 0, 2.407f, 0, 2.4090000000000003f, 0, 2.411f, 0, 2.4130000000000003f, 0, 2.415f, 0, 2.4170000000000003f, 0, 2.419f, 0, 2.4210000000000003f, 0, 2.423f, 0, 2.4250000000000003f, 0, 2.427f, 0, 2.4290000000000003f, 0, 2.431f, 0, 2.433f, 0, 2.435f, 0, 2.437f, 0, 2.439f, 0, 2.441f, 0, 2.443f, 0, 2.445f, 0, 2.447f, 0, 2.449f, 0, 2.451f, 0, 2.453f, 0, 2.455f, 0, 2.457f, 0, 2.459f, 0, 2.461f, 0, 2.463f, 0, 2.465f, 0, 2.467f, 0, 2.469f, 0, 2.471f, 0, 2.473f, 0, 2.475f, 0, 2.477f, 0, 2.479f, 0, 2.481f, 0, 2.483f, 0, 2.485f, 0, 2.487f, 0, 2.489f, 0, 2.491f, 0, 2.493f, 0, 2.495f, 0, 2.497f, 0, 2.499f, 0, 2.501f, 0, 2.503f, 0, 2.505f, 0, 2.507f, 0, 2.509f, 0, 2.511f, 0, 2.513f, 0, 2.515f, 0, 2.517f, 0, 2.519f, 0, 2.521f, 0, 2.523f, 0, 2.525f, 0, 2.527f, 0, 2.529f, 0, 2.531f, 0, 2.533f, 0, 2.535f, 0, 2.537f, 0, 2.539f, 0, 2.541f, 0, 2.543f, 0, 2.545f, 0, 2.547f, 0, 2.549f, 0, 2.551f, 0, 2.553f, 0, 2.555f, 0, 2.557f, 0, 2.559f, 0, 2.561f, 0, 2.563f, 0, 2.565f, 0, 2.567f, 0, 2.569f, 0, 2.571f, 0, 2.573f, 0, 2.575f, 0, 2.577f, 0, 2.579f, 0, 2.581f, 0, 2.583f, 0, 2.585f, 0, 2.587f, 0, 2.589f, 0, 2.591f, 0, 2.593f, 0, 2.595f, 0, 2.597f, 0, 2.599f, 0, 2.601f, 0, 2.603f, 0, 2.605f, 0, 2.607f, 0, 2.609f, 0, 2.611f, 0, 2.613f, 0, 2.615f, 0, 2.617f, 0, 2.619f, 0, 2.621f, 0, 2.623f, 0, 2.625f, 0, 2.6270000000000002f, 0, 2.629f, 0, 2.6310000000000002f, 0, 2.633f, 0, 2.6350000000000002f, 0, 2.637f, 0, 2.6390000000000002f, 0, 2.641f, 0, 2.6430000000000002f, 0, 2.645f, 0, 2.6470000000000002f, 0, 2.649f, 0, 2.6510000000000002f, 0, 2.653f, 0, 2.6550000000000002f, 0, 2.657f, 0, 2.6590000000000003f, 0, 2.661f, 0, 2.6630000000000003f, 0, 2.665f, 0, 2.6670000000000003f, 0, 2.669f, 0, 2.6710000000000003f, 0, 2.673f, 0, 2.6750000000000003f, 0, 2.677f, 0, 2.6790000000000003f, 0, 2.681f, 0, 2.6830000000000003f, 0, 2.685f, 0, 2.6870000000000003f, 0, 2.689f, 0, 2.691f, 0, 2.693f, 0, 2.695f, 0, 2.697f, 0, 2.699f, 0, 2.701f, 0, 2.703f, 0, 2.705f, 0, 2.707f, 0, 2.709f, 0, 2.711f, 0, 2.713f, 0, 2.715f, 0, 2.717f, 0, 2.719f, 0, 2.721f, 0, 2.723f, 0, 2.725f, 0, 2.727f, 0, 2.729f, 0, 2.731f, 0, 2.733f, 0, 2.735f, 0, 2.737f, 0, 2.739f, 0, 2.741f, 0, 2.743f, 0, 2.745f, 0, 2.747f, 0, 2.749f, 0, 2.751f, 0, 2.753f, 0, 2.755f, 0, 2.757f, 0, 2.759f, 0, 2.761f, 0, 2.763f, 0, 2.765f, 0, 2.767f, 0, 2.769f, 0, 2.771f, 0, 2.773f, 0, 2.775f, 0, 2.777f, 0, 2.779f, 0, 2.781f, 0, 2.783f, 0, 2.785f, 0, 2.787f, 0, 2.789f, 0, 2.791f, 0, 2.793f, 0, 2.795f, 0, 2.797f, 0, 2.799f, 0, 2.801f, 0, 2.803f, 0, 2.805f, 0, 2.807f, 0, 2.809f, 0, 2.811f, 0, 2.813f, 0, 2.815f, 0, 2.817f, 0, 2.819f, 0, 2.821f, 0, 2.823f, 0, 2.825f, 0, 2.827f, 0, 2.829f, 0, 2.831f, 0, 2.833f, 0, 2.835f, 0, 2.837f, 0, 2.839f, 0, 2.841f, 0, 2.843f, 0, 2.845f, 0, 2.847f, 0, 2.849f, 0, 2.851f, 0, 2.853f, 0, 2.855f, 0, 2.857f, 0, 2.859f, 0, 2.861f, 0, 2.863f, 0, 2.865f, 0, 2.867f, 0, 2.869f, 0, 2.871f, 0, 2.873f, 0, 2.875f, 0, 2.8770000000000002f, 0, 2.879f, 0, 2.8810000000000002f, 0, 2.883f, 0, 2.8850000000000002f, 0, 2.887f, 0, 2.8890000000000002f, 0, 2.891f, 0, 2.8930000000000002f, 0, 2.895f, 0, 2.8970000000000002f, 0, 2.899f, 0, 2.9010000000000002f, 0, 2.903f, 0, 2.9050000000000002f, 0, 2.907f, 0, 2.9090000000000003f, 0, 2.911f, 0, 2.9130000000000003f, 0, 2.915f, 0, 2.9170000000000003f, 0, 2.919f, 0, 2.9210000000000003f, 0, 2.923f, 0, 2.9250000000000003f, 0, 2.927f, 0, 2.9290000000000003f, 0, 2.931f, 0, 2.9330000000000003f, 0, 2.935f, 0, 2.9370000000000003f, 0, 2.939f, 0, 2.9410000000000003f, 0, 2.943f, 0, 2.945f, 0, 2.947f, 0, 2.949f, 0, 2.951f, 0, 2.953f, 0, 2.955f, 0, 2.957f, 0, 2.959f, 0, 2.961f, 0, 2.963f, 0, 2.965f, 0, 2.967f, 0, 2.969f, 0, 2.971f, 0, 2.973f, 0, 2.975f, 0, 2.977f, 0, 2.979f, 0, 2.981f, 0, 2.983f, 0, 2.985f, 0, 2.987f, 0, 2.989f, 0, 2.991f, 0, 2.993f, 0, 2.995f, 0, 2.997f, 0, 2.999f, 0, 3.001f, 0, 3.003f, 0, 3.005f, 0, 3.007f, 0, 3.009f, 0, 3.011f, 0, 3.013f, 0, 3.015f, 0, 3.017f, 0, 3.019f, 0, 3.021f, 0, 3.023f, 0, 3.025f, 0, 3.027f, 0, 3.029f, 0, 3.031f, 0, 3.033f, 0, 3.035f, 0, 3.037f, 0, 3.039f, 0, 3.041f, 0, 3.043f, 0, 3.045f, 0, 3.047f, 0, 3.049f, 0, 3.051f, 0, 3.053f, 0, 3.055f, 0, 3.057f, 0, 3.059f, 0, 3.061f, 0, 3.063f, 0, 3.065f, 0, 3.067f, 0, 3.069f, 0, 3.071f, 0, 3.073f, 0, 3.075f, 0, 3.077f, 0, 3.079f, 0, 3.081f, 0, 3.083f, 0, 3.085f, 0, 3.087f, 0, 3.089f, 0, 3.091f, 0, 3.093f, 0, 3.095f, 0, 3.097f, 0, 3.099f, 0, 3.101f, 0, 3.103f, 0, 3.105f, 0, 3.107f, 0, 3.109f, 0, 3.111f, 0, 3.113f, 0, 3.115f, 0, 3.117f, 0, 3.119f, 0, 3.121f, 0, 3.123f, 0, 3.125f, 0, 3.1270000000000002f, 0, 3.129f, 0, 3.1310000000000002f, 0, 3.133f, 0, 3.1350000000000002f, 0, 3.137f, 0, 3.1390000000000002f, 0, 3.141f, 0, 3.1430000000000002f, 0, 3.145f, 0, 3.1470000000000002f, 0, 3.149f, 0, 3.1510000000000002f, 0, 3.153f, 0, 3.1550000000000002f, 0, 3.157f, 0, 3.1590000000000003f, 0, 3.161f, 0, 3.1630000000000003f, 0, 3.165f, 0, 3.1670000000000003f, 0, 3.169f, 0, 3.1710000000000003f, 0, 3.173f, 0, 3.1750000000000003f, 0, 3.177f, 0, 3.1790000000000003f, 0, 3.181f, 0, 3.1830000000000003f, 0, 3.185f, 0, 3.1870000000000003f, 0, 3.189f, 0, 3.1910000000000003f, 0, 3.193f, 0, 3.1950000000000003f, 0, 3.197f, 0, 3.1990000000000003f, 0, 3.201f, 0, 3.203f, 0, 3.205f, 0, 3.207f, 0, 3.209f, 0, 3.211f, 0, 3.213f, 0, 3.215f, 0, 3.217f, 0, 3.219f, 0, 3.221f, 0, 3.223f, 0, 3.225f, 0, 3.227f, 0, 3.229f, 0, 3.231f, 0, 3.233f, 0, 3.235f, 0, 3.237f, 0, 3.239f, 0, 3.241f, 0, 3.243f, 0, 3.245f, 0, 3.247f, 0, 3.249f, 0, 3.251f, 0, 3.253f, 0, 3.255f, 0, 3.257f, 0, 3.259f, 0, 3.261f, 0, 3.263f, 0, 3.265f, 0, 3.267f, 0, 3.269f, 0, 3.271f, 0, 3.273f, 0, 3.275f, 0, 3.277f, 0, 3.279f, 0, 3.281f, 0, 3.283f, 0, 3.285f, 0, 3.287f, 0, 3.289f, 0, 3.291f, 0, 3.293f, 0, 3.295f, 0, 3.297f, 0, 3.299f, 0, 3.301f, 0, 3.303f, 0, 3.305f, 0, 3.307f, 0, 3.309f, 0, 3.311f, 0, 3.313f, 0, 3.315f, 0, 3.317f, 0, 3.319f, 0, 3.321f, 0, 3.323f, 0, 3.325f, 0, 3.327f, 0, 3.329f, 0, 3.331f, 0, 3.333f, 0, 3.335f, 0, 3.337f, 0, 3.339f, 0, 3.341f, 0, 3.343f, 0, 3.345f, 0, 3.347f, 0, 3.349f, 0, 3.351f, 0, 3.353f, 0, 3.355f, 0, 3.357f, 0, 3.359f, 0, 3.361f, 0, 3.363f, 0, 3.365f, 0, 3.367f, 0, 3.369f, 0, 3.371f, 0, 3.373f, 0, 3.375f, 0, 3.3770000000000002f, 0, 3.379f, 0, 3.3810000000000002f, 0, 3.383f, 0, 3.3850000000000002f, 0, 3.387f, 0, 3.3890000000000002f, 0, 3.391f, 0, 3.3930000000000002f, 0, 3.395f, 0, 3.3970000000000002f, 0, 3.399f, 0, 3.4010000000000002f, 0, 3.403f, 0, 3.4050000000000002f, 0, 3.407f, 0, 3.4090000000000003f, 0, 3.411f, 0, 3.4130000000000003f, 0, 3.415f, 0, 3.4170000000000003f, 0, 3.419f, 0, 3.4210000000000003f, 0, 3.423f, 0, 3.4250000000000003f, 0, 3.427f, 0, 3.4290000000000003f, 0, 3.431f, 0, 3.4330000000000003f, 0, 3.435f, 0, 3.4370000000000003f, 0, 3.439f, 0, 3.4410000000000003f, 0, 3.443f, 0, 3.4450000000000003f, 0, 3.447f, 0, 3.4490000000000003f, 0, 3.451f, 0, 3.4530000000000003f, 0, 3.455f, 0, 3.457f, 0, 3.459f, 0, 3.461f, 0, 3.463f, 0, 3.465f, 0, 3.467f, 0, 3.469f, 0, 3.471f, 0, 3.473f, 0, 3.475f, 0, 3.477f, 0, 3.479f, 0, 3.481f, 0, 3.483f, 0, 3.485f, 0, 3.487f, 0, 3.489f, 0, 3.491f, 0, 3.493f, 0, 3.495f, 0, 3.497f, 0, 3.499f, 0, 3.501f, 0, 3.503f, 0, 3.505f, 0, 3.507f, 0, 3.509f, 0, 3.511f, 0, 3.513f, 0, 3.515f, 0, 3.517f, 0, 3.519f, 0, 3.521f, 0, 3.523f, 0, 3.525f, 0, 3.527f, 0, 3.529f, 0, 3.531f, 0, 3.533f, 0, 3.535f, 0, 3.537f, 0, 3.539f, 0, 3.541f, 0, 3.543f, 0, 3.545f, 0, 3.547f, 0, 3.549f, 0, 3.551f, 0, 3.553f, 0, 3.555f, 0, 3.557f, 0, 3.559f, 0, 3.561f, 0, 3.563f, 0, 3.565f, 0, 3.567f, 0, 3.569f, 0, 3.571f, 0, 3.573f, 0, 3.575f, 0, 3.577f, 0, 3.579f, 0, 3.581f, 0, 3.583f, 0, 3.585f, 0, 3.587f, 0, 3.589f, 0, 3.591f, 0, 3.593f, 0, 3.595f, 0, 3.597f, 0, 3.599f, 0, 3.601f, 0, 3.603f, 0, 3.605f, 0, 3.607f, 0, 3.609f, 0, 3.611f, 0, 3.613f, 0, 3.615f, 0, 3.617f, 0, 3.619f, 0, 3.621f, 0, 3.623f, 0, 3.625f, 0, 3.6270000000000002f, 0, 3.629f, 0, 3.6310000000000002f, 0, 3.633f, 0, 3.6350000000000002f, 0, 3.637f, 0, 3.6390000000000002f, 0, 3.641f, 0, 3.6430000000000002f, 0, 3.645f, 0, 3.6470000000000002f, 0, 3.649f, 0, 3.6510000000000002f, 0, 3.653f, 0, 3.6550000000000002f, 0, 3.657f, 0, 3.6590000000000003f, 0, 3.661f, 0, 3.6630000000000003f, 0, 3.665f, 0, 3.6670000000000003f, 0, 3.669f, 0, 3.6710000000000003f, 0, 3.673f, 0, 3.6750000000000003f, 0, 3.677f, 0, 3.6790000000000003f, 0, 3.681f, 0, 3.6830000000000003f, 0, 3.685f, 0, 3.6870000000000003f, 0, 3.689f, 0, 3.6910000000000003f, 0, 3.693f, 0, 3.6950000000000003f, 0, 3.697f, 0, 3.6990000000000003f, 0, 3.701f, 0, 3.7030000000000003f, 0, 3.705f, 0, 3.7070000000000003f, 0, 3.709f, 0, 3.7110000000000003f, 0, 3.713f, 0, 3.715f, 0, 3.717f, 0, 3.719f, 0, 3.721f, 0, 3.723f, 0, 3.725f, 0, 3.727f, 0, 3.729f, 0, 3.731f, 0, 3.733f, 0, 3.735f, 0, 3.737f, 0, 3.739f, 0, 3.741f, 0, 3.743f, 0, 3.745f, 0, 3.747f, 0, 3.749f, 0, 3.751f, 0, 3.753f, 0, 3.755f, 0, 3.757f, 0, 3.759f, 0, 3.761f, 0, 3.763f, 0, 3.765f, 0, 3.767f, 0, 3.769f, 0, 3.771f, 0, 3.773f, 0, 3.775f, 0, 3.777f, 0, 3.779f, 0, 3.781f, 0, 3.783f, 0, 3.785f, 0, 3.787f, 0, 3.789f, 0, 3.791f, 0, 3.793f, 0, 3.795f, 0, 3.797f, 0, 3.799f, 0, 3.801f, 0, 3.803f, 0, 3.805f, 0, 3.807f, 0, 3.809f, 0, 3.811f, 0, 3.813f, 0, 3.815f, 0, 3.817f, 0, 3.819f, 0, 3.821f, 0, 3.823f, 0, 3.825f, 0, 3.827f, 0, 3.829f, 0, 3.831f, 0, 3.833f, 0, 3.835f, 0, 3.837f, 0, 3.839f, 0, 3.841f, 0, 3.843f, 0, 3.845f, 0, 3.847f, 0, 3.849f, 0, 3.851f, 0, 3.853f, 0, 3.855f, 0, 3.857f, 0, 3.859f, 0, 3.861f, 0, 3.863f, 0, 3.865f, 0, 3.867f, 0, 3.869f, 0, 3.871f, 0, 3.873f, 0, 3.875f, 0, 3.8770000000000002f, 0, 3.879f, 0, 3.8810000000000002f, 0, 3.883f, 0, 3.8850000000000002f, 0, 3.887f, 0, 3.8890000000000002f, 0, 3.891f, 0, 3.8930000000000002f, 0, 3.895f, 0, 3.8970000000000002f, 0, 3.899f, 0, 3.9010000000000002f, 0, 3.903f, 0, 3.9050000000000002f, 0, 3.907f, 0, 3.9090000000000003f, 0, 3.911f, 0, 3.9130000000000003f, 0, 3.915f, 0, 3.9170000000000003f, 0, 3.919f, 0, 3.9210000000000003f, 0, 3.923f, 0, 3.9250000000000003f, 0, 3.927f, 0, 3.9290000000000003f, 0, 3.931f, 0, 3.9330000000000003f, 0, 3.935f, 0, 3.9370000000000003f, 0, 3.939f, 0, 3.9410000000000003f, 0, 3.943f, 0, 3.9450000000000003f, 0, 3.947f, 0, 3.9490000000000003f, 0, 3.951f, 0, 3.9530000000000003f, 0, 3.955f, 0, 3.9570000000000003f, 0, 3.959f, 0, 3.9610000000000003f, 0, 3.963f, 0, 3.9650000000000003f, 0, 3.967f, 0, 3.969f, 0, 3.971f, 0, 3.973f, 0, 3.975f, 0, 3.977f, 0, 3.979f, 0, 3.981f, 0, 3.983f, 0, 3.985f, 0, 3.987f, 0, 3.989f, 0, 3.991f, 0, 3.993f, 0, 3.995f, 0, 3.997f, 0, 3.999f, 0, 4.001f, 0, 4.003f, 0, 4.005f, 0, 4.007f, 0, 4.009f, 0, 4.011f, 0, 4.013f, 0, 4.015f, 0, 4.017f, 0, 4.019f, 0, 4.021f, 0, 4.023f, 0, 4.025f, 0, 4.027f, 0, 4.029f, 0, 4.031f, 0, 4.033f, 0, 4.035f, 0, 4.037f, 0, 4.039f, 0, 4.041f, 0, 4.043f, 0, 4.045f, 0, 4.047f, 0, 4.049f, 0, 4.051f, 0, 4.053f, 0, 4.055f, 0, 4.057f, 0, 4.059f, 0, 4.061f, 0, 4.063f, 0, 4.065f, 0, 4.067f, 0, 4.069f, 0, 4.071f, 0, 4.073f, 0, 4.075f, 0, 4.077f, 0, 4.079f, 0, 4.081f, 0, 4.083f, 0, 4.085f, 0, 4.087f, 0, 4.089f, 0, 4.091f, 0, 4.093f, 0, 4.095f, 0, 4.097f, 0, 4.099f, 0, 4.101f, 0, 4.103f, 0, 4.105f, 0, 4.107f, 0, 4.109f, 0, 4.111f, 0, 4.113f, 0, 4.115f, 0, 4.117f, 0, 4.119f, 0, 4.121f, 0, 4.123f, 0, 4.125f, 0, 4.127f, 0, 4.1290000000000004f, 0, 4.131f, 0, 4.133f, 0, 4.135f, 0, 4.1370000000000005f, 0, 4.139f, 0, 4.141f, 0, 4.143f, 0, 4.1450000000000005f, 0, 4.147f, 0, 4.149f, 0, 4.151f, 0, 4.1530000000000005f, 0, 4.155f, 0, 4.157f, 0, 4.159f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/relu6_quant8_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/relu6_quant8_1.example.cpp
new file mode 100644
index 000000000..cc99a692d
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/relu6_quant8_1.example.cpp
@@ -0,0 +1,43 @@
+// Generated file (from: relu6_quant8_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 1, 11, 12}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 1, 11, 12}}}
+}
+}, // End of an example
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {13, 14, 254, 255}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {12, 12, 12, 12}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/relu6_quant8_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/relu6_quant8_2.example.cpp
new file mode 100644
index 000000000..1620cc7c1
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/relu6_quant8_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: relu6_quant8_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/relu_float_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/relu_float_1.example.cpp
new file mode 100644
index 000000000..ead346c45
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/relu_float_1.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: relu_float_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-10.0f, -0.5f, 0.5f, 10.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.0f, 0.0f, 0.5f, 10.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/relu_float_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/relu_float_2.example.cpp
new file mode 100644
index 000000000..b983355cf
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/relu_float_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: relu_float_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.0f, 1.0f, -2.0f, 3.0f, -4.0f, 5.0f, -6.0f, 7.0f, -8.0f, 9.0f, -10.0f, 11.0f, -12.0f, 13.0f, -14.0f, 15.0f, -16.0f, 17.0f, -18.0f, 19.0f, -20.0f, 21.0f, -22.0f, 23.0f, -24.0f, 25.0f, -26.0f, 27.0f, -28.0f, 29.0f, -30.0f, 31.0f, -32.0f, 33.0f, -34.0f, 35.0f, -36.0f, 37.0f, -38.0f, 39.0f, -40.0f, 41.0f, -42.0f, 43.0f, -44.0f, 45.0f, -46.0f, 47.0f, -48.0f, 49.0f, -50.0f, 51.0f, -52.0f, 53.0f, -54.0f, 55.0f, -56.0f, 57.0f, -58.0f, 59.0f, -60.0f, 61.0f, -62.0f, 63.0f, -64.0f, 65.0f, -66.0f, 67.0f, -68.0f, 69.0f, -70.0f, 71.0f, -72.0f, 73.0f, -74.0f, 75.0f, -76.0f, 77.0f, -78.0f, 79.0f, -80.0f, 81.0f, -82.0f, 83.0f, -84.0f, 85.0f, -86.0f, 87.0f, -88.0f, 89.0f, -90.0f, 91.0f, -92.0f, 93.0f, -94.0f, 95.0f, -96.0f, 97.0f, -98.0f, 99.0f, -100.0f, 101.0f, -102.0f, 103.0f, -104.0f, 105.0f, -106.0f, 107.0f, -108.0f, 109.0f, -110.0f, 111.0f, -112.0f, 113.0f, -114.0f, 115.0f, -116.0f, 117.0f, -118.0f, 119.0f, -120.0f, 121.0f, -122.0f, 123.0f, -124.0f, 125.0f, -126.0f, 127.0f, -128.0f, 129.0f, -130.0f, 131.0f, -132.0f, 133.0f, -134.0f, 135.0f, -136.0f, 137.0f, -138.0f, 139.0f, -140.0f, 141.0f, -142.0f, 143.0f, -144.0f, 145.0f, -146.0f, 147.0f, -148.0f, 149.0f, -150.0f, 151.0f, -152.0f, 153.0f, -154.0f, 155.0f, -156.0f, 157.0f, -158.0f, 159.0f, -160.0f, 161.0f, -162.0f, 163.0f, -164.0f, 165.0f, -166.0f, 167.0f, -168.0f, 169.0f, -170.0f, 171.0f, -172.0f, 173.0f, -174.0f, 175.0f, -176.0f, 177.0f, -178.0f, 179.0f, -180.0f, 181.0f, -182.0f, 183.0f, -184.0f, 185.0f, -186.0f, 187.0f, -188.0f, 189.0f, -190.0f, 191.0f, -192.0f, 193.0f, -194.0f, 195.0f, -196.0f, 197.0f, -198.0f, 199.0f, -200.0f, 201.0f, -202.0f, 203.0f, -204.0f, 205.0f, -206.0f, 207.0f, -208.0f, 209.0f, -210.0f, 211.0f, -212.0f, 213.0f, -214.0f, 215.0f, -216.0f, 217.0f, -218.0f, 219.0f, -220.0f, 221.0f, -222.0f, 223.0f, -224.0f, 225.0f, -226.0f, 227.0f, -228.0f, 229.0f, -230.0f, 231.0f, -232.0f, 233.0f, -234.0f, 235.0f, -236.0f, 237.0f, -238.0f, 239.0f, -240.0f, 241.0f, -242.0f, 243.0f, -244.0f, 245.0f, -246.0f, 247.0f, -248.0f, 249.0f, -250.0f, 251.0f, -252.0f, 253.0f, -254.0f, 255.0f, -256.0f, 257.0f, -258.0f, 259.0f, -260.0f, 261.0f, -262.0f, 263.0f, -264.0f, 265.0f, -266.0f, 267.0f, -268.0f, 269.0f, -270.0f, 271.0f, -272.0f, 273.0f, -274.0f, 275.0f, -276.0f, 277.0f, -278.0f, 279.0f, -280.0f, 281.0f, -282.0f, 283.0f, -284.0f, 285.0f, -286.0f, 287.0f, -288.0f, 289.0f, -290.0f, 291.0f, -292.0f, 293.0f, -294.0f, 295.0f, -296.0f, 297.0f, -298.0f, 299.0f, -300.0f, 301.0f, -302.0f, 303.0f, -304.0f, 305.0f, -306.0f, 307.0f, -308.0f, 309.0f, -310.0f, 311.0f, -312.0f, 313.0f, -314.0f, 315.0f, -316.0f, 317.0f, -318.0f, 319.0f, -320.0f, 321.0f, -322.0f, 323.0f, -324.0f, 325.0f, -326.0f, 327.0f, -328.0f, 329.0f, -330.0f, 331.0f, -332.0f, 333.0f, -334.0f, 335.0f, -336.0f, 337.0f, -338.0f, 339.0f, -340.0f, 341.0f, -342.0f, 343.0f, -344.0f, 345.0f, -346.0f, 347.0f, -348.0f, 349.0f, -350.0f, 351.0f, -352.0f, 353.0f, -354.0f, 355.0f, -356.0f, 357.0f, -358.0f, 359.0f, -360.0f, 361.0f, -362.0f, 363.0f, -364.0f, 365.0f, -366.0f, 367.0f, -368.0f, 369.0f, -370.0f, 371.0f, -372.0f, 373.0f, -374.0f, 375.0f, -376.0f, 377.0f, -378.0f, 379.0f, -380.0f, 381.0f, -382.0f, 383.0f, -384.0f, 385.0f, -386.0f, 387.0f, -388.0f, 389.0f, -390.0f, 391.0f, -392.0f, 393.0f, -394.0f, 395.0f, -396.0f, 397.0f, -398.0f, 399.0f, -400.0f, 401.0f, -402.0f, 403.0f, -404.0f, 405.0f, -406.0f, 407.0f, -408.0f, 409.0f, -410.0f, 411.0f, -412.0f, 413.0f, -414.0f, 415.0f, -416.0f, 417.0f, -418.0f, 419.0f, -420.0f, 421.0f, -422.0f, 423.0f, -424.0f, 425.0f, -426.0f, 427.0f, -428.0f, 429.0f, -430.0f, 431.0f, -432.0f, 433.0f, -434.0f, 435.0f, -436.0f, 437.0f, -438.0f, 439.0f, -440.0f, 441.0f, -442.0f, 443.0f, -444.0f, 445.0f, -446.0f, 447.0f, -448.0f, 449.0f, -450.0f, 451.0f, -452.0f, 453.0f, -454.0f, 455.0f, -456.0f, 457.0f, -458.0f, 459.0f, -460.0f, 461.0f, -462.0f, 463.0f, -464.0f, 465.0f, -466.0f, 467.0f, -468.0f, 469.0f, -470.0f, 471.0f, -472.0f, 473.0f, -474.0f, 475.0f, -476.0f, 477.0f, -478.0f, 479.0f, -480.0f, 481.0f, -482.0f, 483.0f, -484.0f, 485.0f, -486.0f, 487.0f, -488.0f, 489.0f, -490.0f, 491.0f, -492.0f, 493.0f, -494.0f, 495.0f, -496.0f, 497.0f, -498.0f, 499.0f, -500.0f, 501.0f, -502.0f, 503.0f, -504.0f, 505.0f, -506.0f, 507.0f, -508.0f, 509.0f, -510.0f, 511.0f, -512.0f, 513.0f, -514.0f, 515.0f, -516.0f, 517.0f, -518.0f, 519.0f, -520.0f, 521.0f, -522.0f, 523.0f, -524.0f, 525.0f, -526.0f, 527.0f, -528.0f, 529.0f, -530.0f, 531.0f, -532.0f, 533.0f, -534.0f, 535.0f, -536.0f, 537.0f, -538.0f, 539.0f, -540.0f, 541.0f, -542.0f, 543.0f, -544.0f, 545.0f, -546.0f, 547.0f, -548.0f, 549.0f, -550.0f, 551.0f, -552.0f, 553.0f, -554.0f, 555.0f, -556.0f, 557.0f, -558.0f, 559.0f, -560.0f, 561.0f, -562.0f, 563.0f, -564.0f, 565.0f, -566.0f, 567.0f, -568.0f, 569.0f, -570.0f, 571.0f, -572.0f, 573.0f, -574.0f, 575.0f, -576.0f, 577.0f, -578.0f, 579.0f, -580.0f, 581.0f, -582.0f, 583.0f, -584.0f, 585.0f, -586.0f, 587.0f, -588.0f, 589.0f, -590.0f, 591.0f, -592.0f, 593.0f, -594.0f, 595.0f, -596.0f, 597.0f, -598.0f, 599.0f, -600.0f, 601.0f, -602.0f, 603.0f, -604.0f, 605.0f, -606.0f, 607.0f, -608.0f, 609.0f, -610.0f, 611.0f, -612.0f, 613.0f, -614.0f, 615.0f, -616.0f, 617.0f, -618.0f, 619.0f, -620.0f, 621.0f, -622.0f, 623.0f, -624.0f, 625.0f, -626.0f, 627.0f, -628.0f, 629.0f, -630.0f, 631.0f, -632.0f, 633.0f, -634.0f, 635.0f, -636.0f, 637.0f, -638.0f, 639.0f, -640.0f, 641.0f, -642.0f, 643.0f, -644.0f, 645.0f, -646.0f, 647.0f, -648.0f, 649.0f, -650.0f, 651.0f, -652.0f, 653.0f, -654.0f, 655.0f, -656.0f, 657.0f, -658.0f, 659.0f, -660.0f, 661.0f, -662.0f, 663.0f, -664.0f, 665.0f, -666.0f, 667.0f, -668.0f, 669.0f, -670.0f, 671.0f, -672.0f, 673.0f, -674.0f, 675.0f, -676.0f, 677.0f, -678.0f, 679.0f, -680.0f, 681.0f, -682.0f, 683.0f, -684.0f, 685.0f, -686.0f, 687.0f, -688.0f, 689.0f, -690.0f, 691.0f, -692.0f, 693.0f, -694.0f, 695.0f, -696.0f, 697.0f, -698.0f, 699.0f, -700.0f, 701.0f, -702.0f, 703.0f, -704.0f, 705.0f, -706.0f, 707.0f, -708.0f, 709.0f, -710.0f, 711.0f, -712.0f, 713.0f, -714.0f, 715.0f, -716.0f, 717.0f, -718.0f, 719.0f, -720.0f, 721.0f, -722.0f, 723.0f, -724.0f, 725.0f, -726.0f, 727.0f, -728.0f, 729.0f, -730.0f, 731.0f, -732.0f, 733.0f, -734.0f, 735.0f, -736.0f, 737.0f, -738.0f, 739.0f, -740.0f, 741.0f, -742.0f, 743.0f, -744.0f, 745.0f, -746.0f, 747.0f, -748.0f, 749.0f, -750.0f, 751.0f, -752.0f, 753.0f, -754.0f, 755.0f, -756.0f, 757.0f, -758.0f, 759.0f, -760.0f, 761.0f, -762.0f, 763.0f, -764.0f, 765.0f, -766.0f, 767.0f, -768.0f, 769.0f, -770.0f, 771.0f, -772.0f, 773.0f, -774.0f, 775.0f, -776.0f, 777.0f, -778.0f, 779.0f, -780.0f, 781.0f, -782.0f, 783.0f, -784.0f, 785.0f, -786.0f, 787.0f, -788.0f, 789.0f, -790.0f, 791.0f, -792.0f, 793.0f, -794.0f, 795.0f, -796.0f, 797.0f, -798.0f, 799.0f, -800.0f, 801.0f, -802.0f, 803.0f, -804.0f, 805.0f, -806.0f, 807.0f, -808.0f, 809.0f, -810.0f, 811.0f, -812.0f, 813.0f, -814.0f, 815.0f, -816.0f, 817.0f, -818.0f, 819.0f, -820.0f, 821.0f, -822.0f, 823.0f, -824.0f, 825.0f, -826.0f, 827.0f, -828.0f, 829.0f, -830.0f, 831.0f, -832.0f, 833.0f, -834.0f, 835.0f, -836.0f, 837.0f, -838.0f, 839.0f, -840.0f, 841.0f, -842.0f, 843.0f, -844.0f, 845.0f, -846.0f, 847.0f, -848.0f, 849.0f, -850.0f, 851.0f, -852.0f, 853.0f, -854.0f, 855.0f, -856.0f, 857.0f, -858.0f, 859.0f, -860.0f, 861.0f, -862.0f, 863.0f, -864.0f, 865.0f, -866.0f, 867.0f, -868.0f, 869.0f, -870.0f, 871.0f, -872.0f, 873.0f, -874.0f, 875.0f, -876.0f, 877.0f, -878.0f, 879.0f, -880.0f, 881.0f, -882.0f, 883.0f, -884.0f, 885.0f, -886.0f, 887.0f, -888.0f, 889.0f, -890.0f, 891.0f, -892.0f, 893.0f, -894.0f, 895.0f, -896.0f, 897.0f, -898.0f, 899.0f, -900.0f, 901.0f, -902.0f, 903.0f, -904.0f, 905.0f, -906.0f, 907.0f, -908.0f, 909.0f, -910.0f, 911.0f, -912.0f, 913.0f, -914.0f, 915.0f, -916.0f, 917.0f, -918.0f, 919.0f, -920.0f, 921.0f, -922.0f, 923.0f, -924.0f, 925.0f, -926.0f, 927.0f, -928.0f, 929.0f, -930.0f, 931.0f, -932.0f, 933.0f, -934.0f, 935.0f, -936.0f, 937.0f, -938.0f, 939.0f, -940.0f, 941.0f, -942.0f, 943.0f, -944.0f, 945.0f, -946.0f, 947.0f, -948.0f, 949.0f, -950.0f, 951.0f, -952.0f, 953.0f, -954.0f, 955.0f, -956.0f, 957.0f, -958.0f, 959.0f, -960.0f, 961.0f, -962.0f, 963.0f, -964.0f, 965.0f, -966.0f, 967.0f, -968.0f, 969.0f, -970.0f, 971.0f, -972.0f, 973.0f, -974.0f, 975.0f, -976.0f, 977.0f, -978.0f, 979.0f, -980.0f, 981.0f, -982.0f, 983.0f, -984.0f, 985.0f, -986.0f, 987.0f, -988.0f, 989.0f, -990.0f, 991.0f, -992.0f, 993.0f, -994.0f, 995.0f, -996.0f, 997.0f, -998.0f, 999.0f, -1000.0f, 1001.0f, -1002.0f, 1003.0f, -1004.0f, 1005.0f, -1006.0f, 1007.0f, -1008.0f, 1009.0f, -1010.0f, 1011.0f, -1012.0f, 1013.0f, -1014.0f, 1015.0f, -1016.0f, 1017.0f, -1018.0f, 1019.0f, -1020.0f, 1021.0f, -1022.0f, 1023.0f, -1024.0f, 1025.0f, -1026.0f, 1027.0f, -1028.0f, 1029.0f, -1030.0f, 1031.0f, -1032.0f, 1033.0f, -1034.0f, 1035.0f, -1036.0f, 1037.0f, -1038.0f, 1039.0f, -1040.0f, 1041.0f, -1042.0f, 1043.0f, -1044.0f, 1045.0f, -1046.0f, 1047.0f, -1048.0f, 1049.0f, -1050.0f, 1051.0f, -1052.0f, 1053.0f, -1054.0f, 1055.0f, -1056.0f, 1057.0f, -1058.0f, 1059.0f, -1060.0f, 1061.0f, -1062.0f, 1063.0f, -1064.0f, 1065.0f, -1066.0f, 1067.0f, -1068.0f, 1069.0f, -1070.0f, 1071.0f, -1072.0f, 1073.0f, -1074.0f, 1075.0f, -1076.0f, 1077.0f, -1078.0f, 1079.0f, -1080.0f, 1081.0f, -1082.0f, 1083.0f, -1084.0f, 1085.0f, -1086.0f, 1087.0f, -1088.0f, 1089.0f, -1090.0f, 1091.0f, -1092.0f, 1093.0f, -1094.0f, 1095.0f, -1096.0f, 1097.0f, -1098.0f, 1099.0f, -1100.0f, 1101.0f, -1102.0f, 1103.0f, -1104.0f, 1105.0f, -1106.0f, 1107.0f, -1108.0f, 1109.0f, -1110.0f, 1111.0f, -1112.0f, 1113.0f, -1114.0f, 1115.0f, -1116.0f, 1117.0f, -1118.0f, 1119.0f, -1120.0f, 1121.0f, -1122.0f, 1123.0f, -1124.0f, 1125.0f, -1126.0f, 1127.0f, -1128.0f, 1129.0f, -1130.0f, 1131.0f, -1132.0f, 1133.0f, -1134.0f, 1135.0f, -1136.0f, 1137.0f, -1138.0f, 1139.0f, -1140.0f, 1141.0f, -1142.0f, 1143.0f, -1144.0f, 1145.0f, -1146.0f, 1147.0f, -1148.0f, 1149.0f, -1150.0f, 1151.0f, -1152.0f, 1153.0f, -1154.0f, 1155.0f, -1156.0f, 1157.0f, -1158.0f, 1159.0f, -1160.0f, 1161.0f, -1162.0f, 1163.0f, -1164.0f, 1165.0f, -1166.0f, 1167.0f, -1168.0f, 1169.0f, -1170.0f, 1171.0f, -1172.0f, 1173.0f, -1174.0f, 1175.0f, -1176.0f, 1177.0f, -1178.0f, 1179.0f, -1180.0f, 1181.0f, -1182.0f, 1183.0f, -1184.0f, 1185.0f, -1186.0f, 1187.0f, -1188.0f, 1189.0f, -1190.0f, 1191.0f, -1192.0f, 1193.0f, -1194.0f, 1195.0f, -1196.0f, 1197.0f, -1198.0f, 1199.0f, -1200.0f, 1201.0f, -1202.0f, 1203.0f, -1204.0f, 1205.0f, -1206.0f, 1207.0f, -1208.0f, 1209.0f, -1210.0f, 1211.0f, -1212.0f, 1213.0f, -1214.0f, 1215.0f, -1216.0f, 1217.0f, -1218.0f, 1219.0f, -1220.0f, 1221.0f, -1222.0f, 1223.0f, -1224.0f, 1225.0f, -1226.0f, 1227.0f, -1228.0f, 1229.0f, -1230.0f, 1231.0f, -1232.0f, 1233.0f, -1234.0f, 1235.0f, -1236.0f, 1237.0f, -1238.0f, 1239.0f, -1240.0f, 1241.0f, -1242.0f, 1243.0f, -1244.0f, 1245.0f, -1246.0f, 1247.0f, -1248.0f, 1249.0f, -1250.0f, 1251.0f, -1252.0f, 1253.0f, -1254.0f, 1255.0f, -1256.0f, 1257.0f, -1258.0f, 1259.0f, -1260.0f, 1261.0f, -1262.0f, 1263.0f, -1264.0f, 1265.0f, -1266.0f, 1267.0f, -1268.0f, 1269.0f, -1270.0f, 1271.0f, -1272.0f, 1273.0f, -1274.0f, 1275.0f, -1276.0f, 1277.0f, -1278.0f, 1279.0f, -1280.0f, 1281.0f, -1282.0f, 1283.0f, -1284.0f, 1285.0f, -1286.0f, 1287.0f, -1288.0f, 1289.0f, -1290.0f, 1291.0f, -1292.0f, 1293.0f, -1294.0f, 1295.0f, -1296.0f, 1297.0f, -1298.0f, 1299.0f, -1300.0f, 1301.0f, -1302.0f, 1303.0f, -1304.0f, 1305.0f, -1306.0f, 1307.0f, -1308.0f, 1309.0f, -1310.0f, 1311.0f, -1312.0f, 1313.0f, -1314.0f, 1315.0f, -1316.0f, 1317.0f, -1318.0f, 1319.0f, -1320.0f, 1321.0f, -1322.0f, 1323.0f, -1324.0f, 1325.0f, -1326.0f, 1327.0f, -1328.0f, 1329.0f, -1330.0f, 1331.0f, -1332.0f, 1333.0f, -1334.0f, 1335.0f, -1336.0f, 1337.0f, -1338.0f, 1339.0f, -1340.0f, 1341.0f, -1342.0f, 1343.0f, -1344.0f, 1345.0f, -1346.0f, 1347.0f, -1348.0f, 1349.0f, -1350.0f, 1351.0f, -1352.0f, 1353.0f, -1354.0f, 1355.0f, -1356.0f, 1357.0f, -1358.0f, 1359.0f, -1360.0f, 1361.0f, -1362.0f, 1363.0f, -1364.0f, 1365.0f, -1366.0f, 1367.0f, -1368.0f, 1369.0f, -1370.0f, 1371.0f, -1372.0f, 1373.0f, -1374.0f, 1375.0f, -1376.0f, 1377.0f, -1378.0f, 1379.0f, -1380.0f, 1381.0f, -1382.0f, 1383.0f, -1384.0f, 1385.0f, -1386.0f, 1387.0f, -1388.0f, 1389.0f, -1390.0f, 1391.0f, -1392.0f, 1393.0f, -1394.0f, 1395.0f, -1396.0f, 1397.0f, -1398.0f, 1399.0f, -1400.0f, 1401.0f, -1402.0f, 1403.0f, -1404.0f, 1405.0f, -1406.0f, 1407.0f, -1408.0f, 1409.0f, -1410.0f, 1411.0f, -1412.0f, 1413.0f, -1414.0f, 1415.0f, -1416.0f, 1417.0f, -1418.0f, 1419.0f, -1420.0f, 1421.0f, -1422.0f, 1423.0f, -1424.0f, 1425.0f, -1426.0f, 1427.0f, -1428.0f, 1429.0f, -1430.0f, 1431.0f, -1432.0f, 1433.0f, -1434.0f, 1435.0f, -1436.0f, 1437.0f, -1438.0f, 1439.0f, -1440.0f, 1441.0f, -1442.0f, 1443.0f, -1444.0f, 1445.0f, -1446.0f, 1447.0f, -1448.0f, 1449.0f, -1450.0f, 1451.0f, -1452.0f, 1453.0f, -1454.0f, 1455.0f, -1456.0f, 1457.0f, -1458.0f, 1459.0f, -1460.0f, 1461.0f, -1462.0f, 1463.0f, -1464.0f, 1465.0f, -1466.0f, 1467.0f, -1468.0f, 1469.0f, -1470.0f, 1471.0f, -1472.0f, 1473.0f, -1474.0f, 1475.0f, -1476.0f, 1477.0f, -1478.0f, 1479.0f, -1480.0f, 1481.0f, -1482.0f, 1483.0f, -1484.0f, 1485.0f, -1486.0f, 1487.0f, -1488.0f, 1489.0f, -1490.0f, 1491.0f, -1492.0f, 1493.0f, -1494.0f, 1495.0f, -1496.0f, 1497.0f, -1498.0f, 1499.0f, -1500.0f, 1501.0f, -1502.0f, 1503.0f, -1504.0f, 1505.0f, -1506.0f, 1507.0f, -1508.0f, 1509.0f, -1510.0f, 1511.0f, -1512.0f, 1513.0f, -1514.0f, 1515.0f, -1516.0f, 1517.0f, -1518.0f, 1519.0f, -1520.0f, 1521.0f, -1522.0f, 1523.0f, -1524.0f, 1525.0f, -1526.0f, 1527.0f, -1528.0f, 1529.0f, -1530.0f, 1531.0f, -1532.0f, 1533.0f, -1534.0f, 1535.0f, -1536.0f, 1537.0f, -1538.0f, 1539.0f, -1540.0f, 1541.0f, -1542.0f, 1543.0f, -1544.0f, 1545.0f, -1546.0f, 1547.0f, -1548.0f, 1549.0f, -1550.0f, 1551.0f, -1552.0f, 1553.0f, -1554.0f, 1555.0f, -1556.0f, 1557.0f, -1558.0f, 1559.0f, -1560.0f, 1561.0f, -1562.0f, 1563.0f, -1564.0f, 1565.0f, -1566.0f, 1567.0f, -1568.0f, 1569.0f, -1570.0f, 1571.0f, -1572.0f, 1573.0f, -1574.0f, 1575.0f, -1576.0f, 1577.0f, -1578.0f, 1579.0f, -1580.0f, 1581.0f, -1582.0f, 1583.0f, -1584.0f, 1585.0f, -1586.0f, 1587.0f, -1588.0f, 1589.0f, -1590.0f, 1591.0f, -1592.0f, 1593.0f, -1594.0f, 1595.0f, -1596.0f, 1597.0f, -1598.0f, 1599.0f, -1600.0f, 1601.0f, -1602.0f, 1603.0f, -1604.0f, 1605.0f, -1606.0f, 1607.0f, -1608.0f, 1609.0f, -1610.0f, 1611.0f, -1612.0f, 1613.0f, -1614.0f, 1615.0f, -1616.0f, 1617.0f, -1618.0f, 1619.0f, -1620.0f, 1621.0f, -1622.0f, 1623.0f, -1624.0f, 1625.0f, -1626.0f, 1627.0f, -1628.0f, 1629.0f, -1630.0f, 1631.0f, -1632.0f, 1633.0f, -1634.0f, 1635.0f, -1636.0f, 1637.0f, -1638.0f, 1639.0f, -1640.0f, 1641.0f, -1642.0f, 1643.0f, -1644.0f, 1645.0f, -1646.0f, 1647.0f, -1648.0f, 1649.0f, -1650.0f, 1651.0f, -1652.0f, 1653.0f, -1654.0f, 1655.0f, -1656.0f, 1657.0f, -1658.0f, 1659.0f, -1660.0f, 1661.0f, -1662.0f, 1663.0f, -1664.0f, 1665.0f, -1666.0f, 1667.0f, -1668.0f, 1669.0f, -1670.0f, 1671.0f, -1672.0f, 1673.0f, -1674.0f, 1675.0f, -1676.0f, 1677.0f, -1678.0f, 1679.0f, -1680.0f, 1681.0f, -1682.0f, 1683.0f, -1684.0f, 1685.0f, -1686.0f, 1687.0f, -1688.0f, 1689.0f, -1690.0f, 1691.0f, -1692.0f, 1693.0f, -1694.0f, 1695.0f, -1696.0f, 1697.0f, -1698.0f, 1699.0f, -1700.0f, 1701.0f, -1702.0f, 1703.0f, -1704.0f, 1705.0f, -1706.0f, 1707.0f, -1708.0f, 1709.0f, -1710.0f, 1711.0f, -1712.0f, 1713.0f, -1714.0f, 1715.0f, -1716.0f, 1717.0f, -1718.0f, 1719.0f, -1720.0f, 1721.0f, -1722.0f, 1723.0f, -1724.0f, 1725.0f, -1726.0f, 1727.0f, -1728.0f, 1729.0f, -1730.0f, 1731.0f, -1732.0f, 1733.0f, -1734.0f, 1735.0f, -1736.0f, 1737.0f, -1738.0f, 1739.0f, -1740.0f, 1741.0f, -1742.0f, 1743.0f, -1744.0f, 1745.0f, -1746.0f, 1747.0f, -1748.0f, 1749.0f, -1750.0f, 1751.0f, -1752.0f, 1753.0f, -1754.0f, 1755.0f, -1756.0f, 1757.0f, -1758.0f, 1759.0f, -1760.0f, 1761.0f, -1762.0f, 1763.0f, -1764.0f, 1765.0f, -1766.0f, 1767.0f, -1768.0f, 1769.0f, -1770.0f, 1771.0f, -1772.0f, 1773.0f, -1774.0f, 1775.0f, -1776.0f, 1777.0f, -1778.0f, 1779.0f, -1780.0f, 1781.0f, -1782.0f, 1783.0f, -1784.0f, 1785.0f, -1786.0f, 1787.0f, -1788.0f, 1789.0f, -1790.0f, 1791.0f, -1792.0f, 1793.0f, -1794.0f, 1795.0f, -1796.0f, 1797.0f, -1798.0f, 1799.0f, -1800.0f, 1801.0f, -1802.0f, 1803.0f, -1804.0f, 1805.0f, -1806.0f, 1807.0f, -1808.0f, 1809.0f, -1810.0f, 1811.0f, -1812.0f, 1813.0f, -1814.0f, 1815.0f, -1816.0f, 1817.0f, -1818.0f, 1819.0f, -1820.0f, 1821.0f, -1822.0f, 1823.0f, -1824.0f, 1825.0f, -1826.0f, 1827.0f, -1828.0f, 1829.0f, -1830.0f, 1831.0f, -1832.0f, 1833.0f, -1834.0f, 1835.0f, -1836.0f, 1837.0f, -1838.0f, 1839.0f, -1840.0f, 1841.0f, -1842.0f, 1843.0f, -1844.0f, 1845.0f, -1846.0f, 1847.0f, -1848.0f, 1849.0f, -1850.0f, 1851.0f, -1852.0f, 1853.0f, -1854.0f, 1855.0f, -1856.0f, 1857.0f, -1858.0f, 1859.0f, -1860.0f, 1861.0f, -1862.0f, 1863.0f, -1864.0f, 1865.0f, -1866.0f, 1867.0f, -1868.0f, 1869.0f, -1870.0f, 1871.0f, -1872.0f, 1873.0f, -1874.0f, 1875.0f, -1876.0f, 1877.0f, -1878.0f, 1879.0f, -1880.0f, 1881.0f, -1882.0f, 1883.0f, -1884.0f, 1885.0f, -1886.0f, 1887.0f, -1888.0f, 1889.0f, -1890.0f, 1891.0f, -1892.0f, 1893.0f, -1894.0f, 1895.0f, -1896.0f, 1897.0f, -1898.0f, 1899.0f, -1900.0f, 1901.0f, -1902.0f, 1903.0f, -1904.0f, 1905.0f, -1906.0f, 1907.0f, -1908.0f, 1909.0f, -1910.0f, 1911.0f, -1912.0f, 1913.0f, -1914.0f, 1915.0f, -1916.0f, 1917.0f, -1918.0f, 1919.0f, -1920.0f, 1921.0f, -1922.0f, 1923.0f, -1924.0f, 1925.0f, -1926.0f, 1927.0f, -1928.0f, 1929.0f, -1930.0f, 1931.0f, -1932.0f, 1933.0f, -1934.0f, 1935.0f, -1936.0f, 1937.0f, -1938.0f, 1939.0f, -1940.0f, 1941.0f, -1942.0f, 1943.0f, -1944.0f, 1945.0f, -1946.0f, 1947.0f, -1948.0f, 1949.0f, -1950.0f, 1951.0f, -1952.0f, 1953.0f, -1954.0f, 1955.0f, -1956.0f, 1957.0f, -1958.0f, 1959.0f, -1960.0f, 1961.0f, -1962.0f, 1963.0f, -1964.0f, 1965.0f, -1966.0f, 1967.0f, -1968.0f, 1969.0f, -1970.0f, 1971.0f, -1972.0f, 1973.0f, -1974.0f, 1975.0f, -1976.0f, 1977.0f, -1978.0f, 1979.0f, -1980.0f, 1981.0f, -1982.0f, 1983.0f, -1984.0f, 1985.0f, -1986.0f, 1987.0f, -1988.0f, 1989.0f, -1990.0f, 1991.0f, -1992.0f, 1993.0f, -1994.0f, 1995.0f, -1996.0f, 1997.0f, -1998.0f, 1999.0f, -2000.0f, 2001.0f, -2002.0f, 2003.0f, -2004.0f, 2005.0f, -2006.0f, 2007.0f, -2008.0f, 2009.0f, -2010.0f, 2011.0f, -2012.0f, 2013.0f, -2014.0f, 2015.0f, -2016.0f, 2017.0f, -2018.0f, 2019.0f, -2020.0f, 2021.0f, -2022.0f, 2023.0f, -2024.0f, 2025.0f, -2026.0f, 2027.0f, -2028.0f, 2029.0f, -2030.0f, 2031.0f, -2032.0f, 2033.0f, -2034.0f, 2035.0f, -2036.0f, 2037.0f, -2038.0f, 2039.0f, -2040.0f, 2041.0f, -2042.0f, 2043.0f, -2044.0f, 2045.0f, -2046.0f, 2047.0f, -2048.0f, 2049.0f, -2050.0f, 2051.0f, -2052.0f, 2053.0f, -2054.0f, 2055.0f, -2056.0f, 2057.0f, -2058.0f, 2059.0f, -2060.0f, 2061.0f, -2062.0f, 2063.0f, -2064.0f, 2065.0f, -2066.0f, 2067.0f, -2068.0f, 2069.0f, -2070.0f, 2071.0f, -2072.0f, 2073.0f, -2074.0f, 2075.0f, -2076.0f, 2077.0f, -2078.0f, 2079.0f, -2080.0f, 2081.0f, -2082.0f, 2083.0f, -2084.0f, 2085.0f, -2086.0f, 2087.0f, -2088.0f, 2089.0f, -2090.0f, 2091.0f, -2092.0f, 2093.0f, -2094.0f, 2095.0f, -2096.0f, 2097.0f, -2098.0f, 2099.0f, -2100.0f, 2101.0f, -2102.0f, 2103.0f, -2104.0f, 2105.0f, -2106.0f, 2107.0f, -2108.0f, 2109.0f, -2110.0f, 2111.0f, -2112.0f, 2113.0f, -2114.0f, 2115.0f, -2116.0f, 2117.0f, -2118.0f, 2119.0f, -2120.0f, 2121.0f, -2122.0f, 2123.0f, -2124.0f, 2125.0f, -2126.0f, 2127.0f, -2128.0f, 2129.0f, -2130.0f, 2131.0f, -2132.0f, 2133.0f, -2134.0f, 2135.0f, -2136.0f, 2137.0f, -2138.0f, 2139.0f, -2140.0f, 2141.0f, -2142.0f, 2143.0f, -2144.0f, 2145.0f, -2146.0f, 2147.0f, -2148.0f, 2149.0f, -2150.0f, 2151.0f, -2152.0f, 2153.0f, -2154.0f, 2155.0f, -2156.0f, 2157.0f, -2158.0f, 2159.0f, -2160.0f, 2161.0f, -2162.0f, 2163.0f, -2164.0f, 2165.0f, -2166.0f, 2167.0f, -2168.0f, 2169.0f, -2170.0f, 2171.0f, -2172.0f, 2173.0f, -2174.0f, 2175.0f, -2176.0f, 2177.0f, -2178.0f, 2179.0f, -2180.0f, 2181.0f, -2182.0f, 2183.0f, -2184.0f, 2185.0f, -2186.0f, 2187.0f, -2188.0f, 2189.0f, -2190.0f, 2191.0f, -2192.0f, 2193.0f, -2194.0f, 2195.0f, -2196.0f, 2197.0f, -2198.0f, 2199.0f, -2200.0f, 2201.0f, -2202.0f, 2203.0f, -2204.0f, 2205.0f, -2206.0f, 2207.0f, -2208.0f, 2209.0f, -2210.0f, 2211.0f, -2212.0f, 2213.0f, -2214.0f, 2215.0f, -2216.0f, 2217.0f, -2218.0f, 2219.0f, -2220.0f, 2221.0f, -2222.0f, 2223.0f, -2224.0f, 2225.0f, -2226.0f, 2227.0f, -2228.0f, 2229.0f, -2230.0f, 2231.0f, -2232.0f, 2233.0f, -2234.0f, 2235.0f, -2236.0f, 2237.0f, -2238.0f, 2239.0f, -2240.0f, 2241.0f, -2242.0f, 2243.0f, -2244.0f, 2245.0f, -2246.0f, 2247.0f, -2248.0f, 2249.0f, -2250.0f, 2251.0f, -2252.0f, 2253.0f, -2254.0f, 2255.0f, -2256.0f, 2257.0f, -2258.0f, 2259.0f, -2260.0f, 2261.0f, -2262.0f, 2263.0f, -2264.0f, 2265.0f, -2266.0f, 2267.0f, -2268.0f, 2269.0f, -2270.0f, 2271.0f, -2272.0f, 2273.0f, -2274.0f, 2275.0f, -2276.0f, 2277.0f, -2278.0f, 2279.0f, -2280.0f, 2281.0f, -2282.0f, 2283.0f, -2284.0f, 2285.0f, -2286.0f, 2287.0f, -2288.0f, 2289.0f, -2290.0f, 2291.0f, -2292.0f, 2293.0f, -2294.0f, 2295.0f, -2296.0f, 2297.0f, -2298.0f, 2299.0f, -2300.0f, 2301.0f, -2302.0f, 2303.0f, -2304.0f, 2305.0f, -2306.0f, 2307.0f, -2308.0f, 2309.0f, -2310.0f, 2311.0f, -2312.0f, 2313.0f, -2314.0f, 2315.0f, -2316.0f, 2317.0f, -2318.0f, 2319.0f, -2320.0f, 2321.0f, -2322.0f, 2323.0f, -2324.0f, 2325.0f, -2326.0f, 2327.0f, -2328.0f, 2329.0f, -2330.0f, 2331.0f, -2332.0f, 2333.0f, -2334.0f, 2335.0f, -2336.0f, 2337.0f, -2338.0f, 2339.0f, -2340.0f, 2341.0f, -2342.0f, 2343.0f, -2344.0f, 2345.0f, -2346.0f, 2347.0f, -2348.0f, 2349.0f, -2350.0f, 2351.0f, -2352.0f, 2353.0f, -2354.0f, 2355.0f, -2356.0f, 2357.0f, -2358.0f, 2359.0f, -2360.0f, 2361.0f, -2362.0f, 2363.0f, -2364.0f, 2365.0f, -2366.0f, 2367.0f, -2368.0f, 2369.0f, -2370.0f, 2371.0f, -2372.0f, 2373.0f, -2374.0f, 2375.0f, -2376.0f, 2377.0f, -2378.0f, 2379.0f, -2380.0f, 2381.0f, -2382.0f, 2383.0f, -2384.0f, 2385.0f, -2386.0f, 2387.0f, -2388.0f, 2389.0f, -2390.0f, 2391.0f, -2392.0f, 2393.0f, -2394.0f, 2395.0f, -2396.0f, 2397.0f, -2398.0f, 2399.0f, -2400.0f, 2401.0f, -2402.0f, 2403.0f, -2404.0f, 2405.0f, -2406.0f, 2407.0f, -2408.0f, 2409.0f, -2410.0f, 2411.0f, -2412.0f, 2413.0f, -2414.0f, 2415.0f, -2416.0f, 2417.0f, -2418.0f, 2419.0f, -2420.0f, 2421.0f, -2422.0f, 2423.0f, -2424.0f, 2425.0f, -2426.0f, 2427.0f, -2428.0f, 2429.0f, -2430.0f, 2431.0f, -2432.0f, 2433.0f, -2434.0f, 2435.0f, -2436.0f, 2437.0f, -2438.0f, 2439.0f, -2440.0f, 2441.0f, -2442.0f, 2443.0f, -2444.0f, 2445.0f, -2446.0f, 2447.0f, -2448.0f, 2449.0f, -2450.0f, 2451.0f, -2452.0f, 2453.0f, -2454.0f, 2455.0f, -2456.0f, 2457.0f, -2458.0f, 2459.0f, -2460.0f, 2461.0f, -2462.0f, 2463.0f, -2464.0f, 2465.0f, -2466.0f, 2467.0f, -2468.0f, 2469.0f, -2470.0f, 2471.0f, -2472.0f, 2473.0f, -2474.0f, 2475.0f, -2476.0f, 2477.0f, -2478.0f, 2479.0f, -2480.0f, 2481.0f, -2482.0f, 2483.0f, -2484.0f, 2485.0f, -2486.0f, 2487.0f, -2488.0f, 2489.0f, -2490.0f, 2491.0f, -2492.0f, 2493.0f, -2494.0f, 2495.0f, -2496.0f, 2497.0f, -2498.0f, 2499.0f, -2500.0f, 2501.0f, -2502.0f, 2503.0f, -2504.0f, 2505.0f, -2506.0f, 2507.0f, -2508.0f, 2509.0f, -2510.0f, 2511.0f, -2512.0f, 2513.0f, -2514.0f, 2515.0f, -2516.0f, 2517.0f, -2518.0f, 2519.0f, -2520.0f, 2521.0f, -2522.0f, 2523.0f, -2524.0f, 2525.0f, -2526.0f, 2527.0f, -2528.0f, 2529.0f, -2530.0f, 2531.0f, -2532.0f, 2533.0f, -2534.0f, 2535.0f, -2536.0f, 2537.0f, -2538.0f, 2539.0f, -2540.0f, 2541.0f, -2542.0f, 2543.0f, -2544.0f, 2545.0f, -2546.0f, 2547.0f, -2548.0f, 2549.0f, -2550.0f, 2551.0f, -2552.0f, 2553.0f, -2554.0f, 2555.0f, -2556.0f, 2557.0f, -2558.0f, 2559.0f, -2560.0f, 2561.0f, -2562.0f, 2563.0f, -2564.0f, 2565.0f, -2566.0f, 2567.0f, -2568.0f, 2569.0f, -2570.0f, 2571.0f, -2572.0f, 2573.0f, -2574.0f, 2575.0f, -2576.0f, 2577.0f, -2578.0f, 2579.0f, -2580.0f, 2581.0f, -2582.0f, 2583.0f, -2584.0f, 2585.0f, -2586.0f, 2587.0f, -2588.0f, 2589.0f, -2590.0f, 2591.0f, -2592.0f, 2593.0f, -2594.0f, 2595.0f, -2596.0f, 2597.0f, -2598.0f, 2599.0f, -2600.0f, 2601.0f, -2602.0f, 2603.0f, -2604.0f, 2605.0f, -2606.0f, 2607.0f, -2608.0f, 2609.0f, -2610.0f, 2611.0f, -2612.0f, 2613.0f, -2614.0f, 2615.0f, -2616.0f, 2617.0f, -2618.0f, 2619.0f, -2620.0f, 2621.0f, -2622.0f, 2623.0f, -2624.0f, 2625.0f, -2626.0f, 2627.0f, -2628.0f, 2629.0f, -2630.0f, 2631.0f, -2632.0f, 2633.0f, -2634.0f, 2635.0f, -2636.0f, 2637.0f, -2638.0f, 2639.0f, -2640.0f, 2641.0f, -2642.0f, 2643.0f, -2644.0f, 2645.0f, -2646.0f, 2647.0f, -2648.0f, 2649.0f, -2650.0f, 2651.0f, -2652.0f, 2653.0f, -2654.0f, 2655.0f, -2656.0f, 2657.0f, -2658.0f, 2659.0f, -2660.0f, 2661.0f, -2662.0f, 2663.0f, -2664.0f, 2665.0f, -2666.0f, 2667.0f, -2668.0f, 2669.0f, -2670.0f, 2671.0f, -2672.0f, 2673.0f, -2674.0f, 2675.0f, -2676.0f, 2677.0f, -2678.0f, 2679.0f, -2680.0f, 2681.0f, -2682.0f, 2683.0f, -2684.0f, 2685.0f, -2686.0f, 2687.0f, -2688.0f, 2689.0f, -2690.0f, 2691.0f, -2692.0f, 2693.0f, -2694.0f, 2695.0f, -2696.0f, 2697.0f, -2698.0f, 2699.0f, -2700.0f, 2701.0f, -2702.0f, 2703.0f, -2704.0f, 2705.0f, -2706.0f, 2707.0f, -2708.0f, 2709.0f, -2710.0f, 2711.0f, -2712.0f, 2713.0f, -2714.0f, 2715.0f, -2716.0f, 2717.0f, -2718.0f, 2719.0f, -2720.0f, 2721.0f, -2722.0f, 2723.0f, -2724.0f, 2725.0f, -2726.0f, 2727.0f, -2728.0f, 2729.0f, -2730.0f, 2731.0f, -2732.0f, 2733.0f, -2734.0f, 2735.0f, -2736.0f, 2737.0f, -2738.0f, 2739.0f, -2740.0f, 2741.0f, -2742.0f, 2743.0f, -2744.0f, 2745.0f, -2746.0f, 2747.0f, -2748.0f, 2749.0f, -2750.0f, 2751.0f, -2752.0f, 2753.0f, -2754.0f, 2755.0f, -2756.0f, 2757.0f, -2758.0f, 2759.0f, -2760.0f, 2761.0f, -2762.0f, 2763.0f, -2764.0f, 2765.0f, -2766.0f, 2767.0f, -2768.0f, 2769.0f, -2770.0f, 2771.0f, -2772.0f, 2773.0f, -2774.0f, 2775.0f, -2776.0f, 2777.0f, -2778.0f, 2779.0f, -2780.0f, 2781.0f, -2782.0f, 2783.0f, -2784.0f, 2785.0f, -2786.0f, 2787.0f, -2788.0f, 2789.0f, -2790.0f, 2791.0f, -2792.0f, 2793.0f, -2794.0f, 2795.0f, -2796.0f, 2797.0f, -2798.0f, 2799.0f, -2800.0f, 2801.0f, -2802.0f, 2803.0f, -2804.0f, 2805.0f, -2806.0f, 2807.0f, -2808.0f, 2809.0f, -2810.0f, 2811.0f, -2812.0f, 2813.0f, -2814.0f, 2815.0f, -2816.0f, 2817.0f, -2818.0f, 2819.0f, -2820.0f, 2821.0f, -2822.0f, 2823.0f, -2824.0f, 2825.0f, -2826.0f, 2827.0f, -2828.0f, 2829.0f, -2830.0f, 2831.0f, -2832.0f, 2833.0f, -2834.0f, 2835.0f, -2836.0f, 2837.0f, -2838.0f, 2839.0f, -2840.0f, 2841.0f, -2842.0f, 2843.0f, -2844.0f, 2845.0f, -2846.0f, 2847.0f, -2848.0f, 2849.0f, -2850.0f, 2851.0f, -2852.0f, 2853.0f, -2854.0f, 2855.0f, -2856.0f, 2857.0f, -2858.0f, 2859.0f, -2860.0f, 2861.0f, -2862.0f, 2863.0f, -2864.0f, 2865.0f, -2866.0f, 2867.0f, -2868.0f, 2869.0f, -2870.0f, 2871.0f, -2872.0f, 2873.0f, -2874.0f, 2875.0f, -2876.0f, 2877.0f, -2878.0f, 2879.0f, -2880.0f, 2881.0f, -2882.0f, 2883.0f, -2884.0f, 2885.0f, -2886.0f, 2887.0f, -2888.0f, 2889.0f, -2890.0f, 2891.0f, -2892.0f, 2893.0f, -2894.0f, 2895.0f, -2896.0f, 2897.0f, -2898.0f, 2899.0f, -2900.0f, 2901.0f, -2902.0f, 2903.0f, -2904.0f, 2905.0f, -2906.0f, 2907.0f, -2908.0f, 2909.0f, -2910.0f, 2911.0f, -2912.0f, 2913.0f, -2914.0f, 2915.0f, -2916.0f, 2917.0f, -2918.0f, 2919.0f, -2920.0f, 2921.0f, -2922.0f, 2923.0f, -2924.0f, 2925.0f, -2926.0f, 2927.0f, -2928.0f, 2929.0f, -2930.0f, 2931.0f, -2932.0f, 2933.0f, -2934.0f, 2935.0f, -2936.0f, 2937.0f, -2938.0f, 2939.0f, -2940.0f, 2941.0f, -2942.0f, 2943.0f, -2944.0f, 2945.0f, -2946.0f, 2947.0f, -2948.0f, 2949.0f, -2950.0f, 2951.0f, -2952.0f, 2953.0f, -2954.0f, 2955.0f, -2956.0f, 2957.0f, -2958.0f, 2959.0f, -2960.0f, 2961.0f, -2962.0f, 2963.0f, -2964.0f, 2965.0f, -2966.0f, 2967.0f, -2968.0f, 2969.0f, -2970.0f, 2971.0f, -2972.0f, 2973.0f, -2974.0f, 2975.0f, -2976.0f, 2977.0f, -2978.0f, 2979.0f, -2980.0f, 2981.0f, -2982.0f, 2983.0f, -2984.0f, 2985.0f, -2986.0f, 2987.0f, -2988.0f, 2989.0f, -2990.0f, 2991.0f, -2992.0f, 2993.0f, -2994.0f, 2995.0f, -2996.0f, 2997.0f, -2998.0f, 2999.0f, -3000.0f, 3001.0f, -3002.0f, 3003.0f, -3004.0f, 3005.0f, -3006.0f, 3007.0f, -3008.0f, 3009.0f, -3010.0f, 3011.0f, -3012.0f, 3013.0f, -3014.0f, 3015.0f, -3016.0f, 3017.0f, -3018.0f, 3019.0f, -3020.0f, 3021.0f, -3022.0f, 3023.0f, -3024.0f, 3025.0f, -3026.0f, 3027.0f, -3028.0f, 3029.0f, -3030.0f, 3031.0f, -3032.0f, 3033.0f, -3034.0f, 3035.0f, -3036.0f, 3037.0f, -3038.0f, 3039.0f, -3040.0f, 3041.0f, -3042.0f, 3043.0f, -3044.0f, 3045.0f, -3046.0f, 3047.0f, -3048.0f, 3049.0f, -3050.0f, 3051.0f, -3052.0f, 3053.0f, -3054.0f, 3055.0f, -3056.0f, 3057.0f, -3058.0f, 3059.0f, -3060.0f, 3061.0f, -3062.0f, 3063.0f, -3064.0f, 3065.0f, -3066.0f, 3067.0f, -3068.0f, 3069.0f, -3070.0f, 3071.0f, -3072.0f, 3073.0f, -3074.0f, 3075.0f, -3076.0f, 3077.0f, -3078.0f, 3079.0f, -3080.0f, 3081.0f, -3082.0f, 3083.0f, -3084.0f, 3085.0f, -3086.0f, 3087.0f, -3088.0f, 3089.0f, -3090.0f, 3091.0f, -3092.0f, 3093.0f, -3094.0f, 3095.0f, -3096.0f, 3097.0f, -3098.0f, 3099.0f, -3100.0f, 3101.0f, -3102.0f, 3103.0f, -3104.0f, 3105.0f, -3106.0f, 3107.0f, -3108.0f, 3109.0f, -3110.0f, 3111.0f, -3112.0f, 3113.0f, -3114.0f, 3115.0f, -3116.0f, 3117.0f, -3118.0f, 3119.0f, -3120.0f, 3121.0f, -3122.0f, 3123.0f, -3124.0f, 3125.0f, -3126.0f, 3127.0f, -3128.0f, 3129.0f, -3130.0f, 3131.0f, -3132.0f, 3133.0f, -3134.0f, 3135.0f, -3136.0f, 3137.0f, -3138.0f, 3139.0f, -3140.0f, 3141.0f, -3142.0f, 3143.0f, -3144.0f, 3145.0f, -3146.0f, 3147.0f, -3148.0f, 3149.0f, -3150.0f, 3151.0f, -3152.0f, 3153.0f, -3154.0f, 3155.0f, -3156.0f, 3157.0f, -3158.0f, 3159.0f, -3160.0f, 3161.0f, -3162.0f, 3163.0f, -3164.0f, 3165.0f, -3166.0f, 3167.0f, -3168.0f, 3169.0f, -3170.0f, 3171.0f, -3172.0f, 3173.0f, -3174.0f, 3175.0f, -3176.0f, 3177.0f, -3178.0f, 3179.0f, -3180.0f, 3181.0f, -3182.0f, 3183.0f, -3184.0f, 3185.0f, -3186.0f, 3187.0f, -3188.0f, 3189.0f, -3190.0f, 3191.0f, -3192.0f, 3193.0f, -3194.0f, 3195.0f, -3196.0f, 3197.0f, -3198.0f, 3199.0f, -3200.0f, 3201.0f, -3202.0f, 3203.0f, -3204.0f, 3205.0f, -3206.0f, 3207.0f, -3208.0f, 3209.0f, -3210.0f, 3211.0f, -3212.0f, 3213.0f, -3214.0f, 3215.0f, -3216.0f, 3217.0f, -3218.0f, 3219.0f, -3220.0f, 3221.0f, -3222.0f, 3223.0f, -3224.0f, 3225.0f, -3226.0f, 3227.0f, -3228.0f, 3229.0f, -3230.0f, 3231.0f, -3232.0f, 3233.0f, -3234.0f, 3235.0f, -3236.0f, 3237.0f, -3238.0f, 3239.0f, -3240.0f, 3241.0f, -3242.0f, 3243.0f, -3244.0f, 3245.0f, -3246.0f, 3247.0f, -3248.0f, 3249.0f, -3250.0f, 3251.0f, -3252.0f, 3253.0f, -3254.0f, 3255.0f, -3256.0f, 3257.0f, -3258.0f, 3259.0f, -3260.0f, 3261.0f, -3262.0f, 3263.0f, -3264.0f, 3265.0f, -3266.0f, 3267.0f, -3268.0f, 3269.0f, -3270.0f, 3271.0f, -3272.0f, 3273.0f, -3274.0f, 3275.0f, -3276.0f, 3277.0f, -3278.0f, 3279.0f, -3280.0f, 3281.0f, -3282.0f, 3283.0f, -3284.0f, 3285.0f, -3286.0f, 3287.0f, -3288.0f, 3289.0f, -3290.0f, 3291.0f, -3292.0f, 3293.0f, -3294.0f, 3295.0f, -3296.0f, 3297.0f, -3298.0f, 3299.0f, -3300.0f, 3301.0f, -3302.0f, 3303.0f, -3304.0f, 3305.0f, -3306.0f, 3307.0f, -3308.0f, 3309.0f, -3310.0f, 3311.0f, -3312.0f, 3313.0f, -3314.0f, 3315.0f, -3316.0f, 3317.0f, -3318.0f, 3319.0f, -3320.0f, 3321.0f, -3322.0f, 3323.0f, -3324.0f, 3325.0f, -3326.0f, 3327.0f, -3328.0f, 3329.0f, -3330.0f, 3331.0f, -3332.0f, 3333.0f, -3334.0f, 3335.0f, -3336.0f, 3337.0f, -3338.0f, 3339.0f, -3340.0f, 3341.0f, -3342.0f, 3343.0f, -3344.0f, 3345.0f, -3346.0f, 3347.0f, -3348.0f, 3349.0f, -3350.0f, 3351.0f, -3352.0f, 3353.0f, -3354.0f, 3355.0f, -3356.0f, 3357.0f, -3358.0f, 3359.0f, -3360.0f, 3361.0f, -3362.0f, 3363.0f, -3364.0f, 3365.0f, -3366.0f, 3367.0f, -3368.0f, 3369.0f, -3370.0f, 3371.0f, -3372.0f, 3373.0f, -3374.0f, 3375.0f, -3376.0f, 3377.0f, -3378.0f, 3379.0f, -3380.0f, 3381.0f, -3382.0f, 3383.0f, -3384.0f, 3385.0f, -3386.0f, 3387.0f, -3388.0f, 3389.0f, -3390.0f, 3391.0f, -3392.0f, 3393.0f, -3394.0f, 3395.0f, -3396.0f, 3397.0f, -3398.0f, 3399.0f, -3400.0f, 3401.0f, -3402.0f, 3403.0f, -3404.0f, 3405.0f, -3406.0f, 3407.0f, -3408.0f, 3409.0f, -3410.0f, 3411.0f, -3412.0f, 3413.0f, -3414.0f, 3415.0f, -3416.0f, 3417.0f, -3418.0f, 3419.0f, -3420.0f, 3421.0f, -3422.0f, 3423.0f, -3424.0f, 3425.0f, -3426.0f, 3427.0f, -3428.0f, 3429.0f, -3430.0f, 3431.0f, -3432.0f, 3433.0f, -3434.0f, 3435.0f, -3436.0f, 3437.0f, -3438.0f, 3439.0f, -3440.0f, 3441.0f, -3442.0f, 3443.0f, -3444.0f, 3445.0f, -3446.0f, 3447.0f, -3448.0f, 3449.0f, -3450.0f, 3451.0f, -3452.0f, 3453.0f, -3454.0f, 3455.0f, -3456.0f, 3457.0f, -3458.0f, 3459.0f, -3460.0f, 3461.0f, -3462.0f, 3463.0f, -3464.0f, 3465.0f, -3466.0f, 3467.0f, -3468.0f, 3469.0f, -3470.0f, 3471.0f, -3472.0f, 3473.0f, -3474.0f, 3475.0f, -3476.0f, 3477.0f, -3478.0f, 3479.0f, -3480.0f, 3481.0f, -3482.0f, 3483.0f, -3484.0f, 3485.0f, -3486.0f, 3487.0f, -3488.0f, 3489.0f, -3490.0f, 3491.0f, -3492.0f, 3493.0f, -3494.0f, 3495.0f, -3496.0f, 3497.0f, -3498.0f, 3499.0f, -3500.0f, 3501.0f, -3502.0f, 3503.0f, -3504.0f, 3505.0f, -3506.0f, 3507.0f, -3508.0f, 3509.0f, -3510.0f, 3511.0f, -3512.0f, 3513.0f, -3514.0f, 3515.0f, -3516.0f, 3517.0f, -3518.0f, 3519.0f, -3520.0f, 3521.0f, -3522.0f, 3523.0f, -3524.0f, 3525.0f, -3526.0f, 3527.0f, -3528.0f, 3529.0f, -3530.0f, 3531.0f, -3532.0f, 3533.0f, -3534.0f, 3535.0f, -3536.0f, 3537.0f, -3538.0f, 3539.0f, -3540.0f, 3541.0f, -3542.0f, 3543.0f, -3544.0f, 3545.0f, -3546.0f, 3547.0f, -3548.0f, 3549.0f, -3550.0f, 3551.0f, -3552.0f, 3553.0f, -3554.0f, 3555.0f, -3556.0f, 3557.0f, -3558.0f, 3559.0f, -3560.0f, 3561.0f, -3562.0f, 3563.0f, -3564.0f, 3565.0f, -3566.0f, 3567.0f, -3568.0f, 3569.0f, -3570.0f, 3571.0f, -3572.0f, 3573.0f, -3574.0f, 3575.0f, -3576.0f, 3577.0f, -3578.0f, 3579.0f, -3580.0f, 3581.0f, -3582.0f, 3583.0f, -3584.0f, 3585.0f, -3586.0f, 3587.0f, -3588.0f, 3589.0f, -3590.0f, 3591.0f, -3592.0f, 3593.0f, -3594.0f, 3595.0f, -3596.0f, 3597.0f, -3598.0f, 3599.0f, -3600.0f, 3601.0f, -3602.0f, 3603.0f, -3604.0f, 3605.0f, -3606.0f, 3607.0f, -3608.0f, 3609.0f, -3610.0f, 3611.0f, -3612.0f, 3613.0f, -3614.0f, 3615.0f, -3616.0f, 3617.0f, -3618.0f, 3619.0f, -3620.0f, 3621.0f, -3622.0f, 3623.0f, -3624.0f, 3625.0f, -3626.0f, 3627.0f, -3628.0f, 3629.0f, -3630.0f, 3631.0f, -3632.0f, 3633.0f, -3634.0f, 3635.0f, -3636.0f, 3637.0f, -3638.0f, 3639.0f, -3640.0f, 3641.0f, -3642.0f, 3643.0f, -3644.0f, 3645.0f, -3646.0f, 3647.0f, -3648.0f, 3649.0f, -3650.0f, 3651.0f, -3652.0f, 3653.0f, -3654.0f, 3655.0f, -3656.0f, 3657.0f, -3658.0f, 3659.0f, -3660.0f, 3661.0f, -3662.0f, 3663.0f, -3664.0f, 3665.0f, -3666.0f, 3667.0f, -3668.0f, 3669.0f, -3670.0f, 3671.0f, -3672.0f, 3673.0f, -3674.0f, 3675.0f, -3676.0f, 3677.0f, -3678.0f, 3679.0f, -3680.0f, 3681.0f, -3682.0f, 3683.0f, -3684.0f, 3685.0f, -3686.0f, 3687.0f, -3688.0f, 3689.0f, -3690.0f, 3691.0f, -3692.0f, 3693.0f, -3694.0f, 3695.0f, -3696.0f, 3697.0f, -3698.0f, 3699.0f, -3700.0f, 3701.0f, -3702.0f, 3703.0f, -3704.0f, 3705.0f, -3706.0f, 3707.0f, -3708.0f, 3709.0f, -3710.0f, 3711.0f, -3712.0f, 3713.0f, -3714.0f, 3715.0f, -3716.0f, 3717.0f, -3718.0f, 3719.0f, -3720.0f, 3721.0f, -3722.0f, 3723.0f, -3724.0f, 3725.0f, -3726.0f, 3727.0f, -3728.0f, 3729.0f, -3730.0f, 3731.0f, -3732.0f, 3733.0f, -3734.0f, 3735.0f, -3736.0f, 3737.0f, -3738.0f, 3739.0f, -3740.0f, 3741.0f, -3742.0f, 3743.0f, -3744.0f, 3745.0f, -3746.0f, 3747.0f, -3748.0f, 3749.0f, -3750.0f, 3751.0f, -3752.0f, 3753.0f, -3754.0f, 3755.0f, -3756.0f, 3757.0f, -3758.0f, 3759.0f, -3760.0f, 3761.0f, -3762.0f, 3763.0f, -3764.0f, 3765.0f, -3766.0f, 3767.0f, -3768.0f, 3769.0f, -3770.0f, 3771.0f, -3772.0f, 3773.0f, -3774.0f, 3775.0f, -3776.0f, 3777.0f, -3778.0f, 3779.0f, -3780.0f, 3781.0f, -3782.0f, 3783.0f, -3784.0f, 3785.0f, -3786.0f, 3787.0f, -3788.0f, 3789.0f, -3790.0f, 3791.0f, -3792.0f, 3793.0f, -3794.0f, 3795.0f, -3796.0f, 3797.0f, -3798.0f, 3799.0f, -3800.0f, 3801.0f, -3802.0f, 3803.0f, -3804.0f, 3805.0f, -3806.0f, 3807.0f, -3808.0f, 3809.0f, -3810.0f, 3811.0f, -3812.0f, 3813.0f, -3814.0f, 3815.0f, -3816.0f, 3817.0f, -3818.0f, 3819.0f, -3820.0f, 3821.0f, -3822.0f, 3823.0f, -3824.0f, 3825.0f, -3826.0f, 3827.0f, -3828.0f, 3829.0f, -3830.0f, 3831.0f, -3832.0f, 3833.0f, -3834.0f, 3835.0f, -3836.0f, 3837.0f, -3838.0f, 3839.0f, -3840.0f, 3841.0f, -3842.0f, 3843.0f, -3844.0f, 3845.0f, -3846.0f, 3847.0f, -3848.0f, 3849.0f, -3850.0f, 3851.0f, -3852.0f, 3853.0f, -3854.0f, 3855.0f, -3856.0f, 3857.0f, -3858.0f, 3859.0f, -3860.0f, 3861.0f, -3862.0f, 3863.0f, -3864.0f, 3865.0f, -3866.0f, 3867.0f, -3868.0f, 3869.0f, -3870.0f, 3871.0f, -3872.0f, 3873.0f, -3874.0f, 3875.0f, -3876.0f, 3877.0f, -3878.0f, 3879.0f, -3880.0f, 3881.0f, -3882.0f, 3883.0f, -3884.0f, 3885.0f, -3886.0f, 3887.0f, -3888.0f, 3889.0f, -3890.0f, 3891.0f, -3892.0f, 3893.0f, -3894.0f, 3895.0f, -3896.0f, 3897.0f, -3898.0f, 3899.0f, -3900.0f, 3901.0f, -3902.0f, 3903.0f, -3904.0f, 3905.0f, -3906.0f, 3907.0f, -3908.0f, 3909.0f, -3910.0f, 3911.0f, -3912.0f, 3913.0f, -3914.0f, 3915.0f, -3916.0f, 3917.0f, -3918.0f, 3919.0f, -3920.0f, 3921.0f, -3922.0f, 3923.0f, -3924.0f, 3925.0f, -3926.0f, 3927.0f, -3928.0f, 3929.0f, -3930.0f, 3931.0f, -3932.0f, 3933.0f, -3934.0f, 3935.0f, -3936.0f, 3937.0f, -3938.0f, 3939.0f, -3940.0f, 3941.0f, -3942.0f, 3943.0f, -3944.0f, 3945.0f, -3946.0f, 3947.0f, -3948.0f, 3949.0f, -3950.0f, 3951.0f, -3952.0f, 3953.0f, -3954.0f, 3955.0f, -3956.0f, 3957.0f, -3958.0f, 3959.0f, -3960.0f, 3961.0f, -3962.0f, 3963.0f, -3964.0f, 3965.0f, -3966.0f, 3967.0f, -3968.0f, 3969.0f, -3970.0f, 3971.0f, -3972.0f, 3973.0f, -3974.0f, 3975.0f, -3976.0f, 3977.0f, -3978.0f, 3979.0f, -3980.0f, 3981.0f, -3982.0f, 3983.0f, -3984.0f, 3985.0f, -3986.0f, 3987.0f, -3988.0f, 3989.0f, -3990.0f, 3991.0f, -3992.0f, 3993.0f, -3994.0f, 3995.0f, -3996.0f, 3997.0f, -3998.0f, 3999.0f, -4000.0f, 4001.0f, -4002.0f, 4003.0f, -4004.0f, 4005.0f, -4006.0f, 4007.0f, -4008.0f, 4009.0f, -4010.0f, 4011.0f, -4012.0f, 4013.0f, -4014.0f, 4015.0f, -4016.0f, 4017.0f, -4018.0f, 4019.0f, -4020.0f, 4021.0f, -4022.0f, 4023.0f, -4024.0f, 4025.0f, -4026.0f, 4027.0f, -4028.0f, 4029.0f, -4030.0f, 4031.0f, -4032.0f, 4033.0f, -4034.0f, 4035.0f, -4036.0f, 4037.0f, -4038.0f, 4039.0f, -4040.0f, 4041.0f, -4042.0f, 4043.0f, -4044.0f, 4045.0f, -4046.0f, 4047.0f, -4048.0f, 4049.0f, -4050.0f, 4051.0f, -4052.0f, 4053.0f, -4054.0f, 4055.0f, -4056.0f, 4057.0f, -4058.0f, 4059.0f, -4060.0f, 4061.0f, -4062.0f, 4063.0f, -4064.0f, 4065.0f, -4066.0f, 4067.0f, -4068.0f, 4069.0f, -4070.0f, 4071.0f, -4072.0f, 4073.0f, -4074.0f, 4075.0f, -4076.0f, 4077.0f, -4078.0f, 4079.0f, -4080.0f, 4081.0f, -4082.0f, 4083.0f, -4084.0f, 4085.0f, -4086.0f, 4087.0f, -4088.0f, 4089.0f, -4090.0f, 4091.0f, -4092.0f, 4093.0f, -4094.0f, 4095.0f, -4096.0f, 4097.0f, -4098.0f, 4099.0f, -4100.0f, 4101.0f, -4102.0f, 4103.0f, -4104.0f, 4105.0f, -4106.0f, 4107.0f, -4108.0f, 4109.0f, -4110.0f, 4111.0f, -4112.0f, 4113.0f, -4114.0f, 4115.0f, -4116.0f, 4117.0f, -4118.0f, 4119.0f, -4120.0f, 4121.0f, -4122.0f, 4123.0f, -4124.0f, 4125.0f, -4126.0f, 4127.0f, -4128.0f, 4129.0f, -4130.0f, 4131.0f, -4132.0f, 4133.0f, -4134.0f, 4135.0f, -4136.0f, 4137.0f, -4138.0f, 4139.0f, -4140.0f, 4141.0f, -4142.0f, 4143.0f, -4144.0f, 4145.0f, -4146.0f, 4147.0f, -4148.0f, 4149.0f, -4150.0f, 4151.0f, -4152.0f, 4153.0f, -4154.0f, 4155.0f, -4156.0f, 4157.0f, -4158.0f, 4159.0f, -4160.0f, 4161.0f, -4162.0f, 4163.0f, -4164.0f, 4165.0f, -4166.0f, 4167.0f, -4168.0f, 4169.0f, -4170.0f, 4171.0f, -4172.0f, 4173.0f, -4174.0f, 4175.0f, -4176.0f, 4177.0f, -4178.0f, 4179.0f, -4180.0f, 4181.0f, -4182.0f, 4183.0f, -4184.0f, 4185.0f, -4186.0f, 4187.0f, -4188.0f, 4189.0f, -4190.0f, 4191.0f, -4192.0f, 4193.0f, -4194.0f, 4195.0f, -4196.0f, 4197.0f, -4198.0f, 4199.0f, -4200.0f, 4201.0f, -4202.0f, 4203.0f, -4204.0f, 4205.0f, -4206.0f, 4207.0f, -4208.0f, 4209.0f, -4210.0f, 4211.0f, -4212.0f, 4213.0f, -4214.0f, 4215.0f, -4216.0f, 4217.0f, -4218.0f, 4219.0f, -4220.0f, 4221.0f, -4222.0f, 4223.0f, -4224.0f, 4225.0f, -4226.0f, 4227.0f, -4228.0f, 4229.0f, -4230.0f, 4231.0f, -4232.0f, 4233.0f, -4234.0f, 4235.0f, -4236.0f, 4237.0f, -4238.0f, 4239.0f, -4240.0f, 4241.0f, -4242.0f, 4243.0f, -4244.0f, 4245.0f, -4246.0f, 4247.0f, -4248.0f, 4249.0f, -4250.0f, 4251.0f, -4252.0f, 4253.0f, -4254.0f, 4255.0f, -4256.0f, 4257.0f, -4258.0f, 4259.0f, -4260.0f, 4261.0f, -4262.0f, 4263.0f, -4264.0f, 4265.0f, -4266.0f, 4267.0f, -4268.0f, 4269.0f, -4270.0f, 4271.0f, -4272.0f, 4273.0f, -4274.0f, 4275.0f, -4276.0f, 4277.0f, -4278.0f, 4279.0f, -4280.0f, 4281.0f, -4282.0f, 4283.0f, -4284.0f, 4285.0f, -4286.0f, 4287.0f, -4288.0f, 4289.0f, -4290.0f, 4291.0f, -4292.0f, 4293.0f, -4294.0f, 4295.0f, -4296.0f, 4297.0f, -4298.0f, 4299.0f, -4300.0f, 4301.0f, -4302.0f, 4303.0f, -4304.0f, 4305.0f, -4306.0f, 4307.0f, -4308.0f, 4309.0f, -4310.0f, 4311.0f, -4312.0f, 4313.0f, -4314.0f, 4315.0f, -4316.0f, 4317.0f, -4318.0f, 4319.0f, -4320.0f, 4321.0f, -4322.0f, 4323.0f, -4324.0f, 4325.0f, -4326.0f, 4327.0f, -4328.0f, 4329.0f, -4330.0f, 4331.0f, -4332.0f, 4333.0f, -4334.0f, 4335.0f, -4336.0f, 4337.0f, -4338.0f, 4339.0f, -4340.0f, 4341.0f, -4342.0f, 4343.0f, -4344.0f, 4345.0f, -4346.0f, 4347.0f, -4348.0f, 4349.0f, -4350.0f, 4351.0f, -4352.0f, 4353.0f, -4354.0f, 4355.0f, -4356.0f, 4357.0f, -4358.0f, 4359.0f, -4360.0f, 4361.0f, -4362.0f, 4363.0f, -4364.0f, 4365.0f, -4366.0f, 4367.0f, -4368.0f, 4369.0f, -4370.0f, 4371.0f, -4372.0f, 4373.0f, -4374.0f, 4375.0f, -4376.0f, 4377.0f, -4378.0f, 4379.0f, -4380.0f, 4381.0f, -4382.0f, 4383.0f, -4384.0f, 4385.0f, -4386.0f, 4387.0f, -4388.0f, 4389.0f, -4390.0f, 4391.0f, -4392.0f, 4393.0f, -4394.0f, 4395.0f, -4396.0f, 4397.0f, -4398.0f, 4399.0f, -4400.0f, 4401.0f, -4402.0f, 4403.0f, -4404.0f, 4405.0f, -4406.0f, 4407.0f, -4408.0f, 4409.0f, -4410.0f, 4411.0f, -4412.0f, 4413.0f, -4414.0f, 4415.0f, -4416.0f, 4417.0f, -4418.0f, 4419.0f, -4420.0f, 4421.0f, -4422.0f, 4423.0f, -4424.0f, 4425.0f, -4426.0f, 4427.0f, -4428.0f, 4429.0f, -4430.0f, 4431.0f, -4432.0f, 4433.0f, -4434.0f, 4435.0f, -4436.0f, 4437.0f, -4438.0f, 4439.0f, -4440.0f, 4441.0f, -4442.0f, 4443.0f, -4444.0f, 4445.0f, -4446.0f, 4447.0f, -4448.0f, 4449.0f, -4450.0f, 4451.0f, -4452.0f, 4453.0f, -4454.0f, 4455.0f, -4456.0f, 4457.0f, -4458.0f, 4459.0f, -4460.0f, 4461.0f, -4462.0f, 4463.0f, -4464.0f, 4465.0f, -4466.0f, 4467.0f, -4468.0f, 4469.0f, -4470.0f, 4471.0f, -4472.0f, 4473.0f, -4474.0f, 4475.0f, -4476.0f, 4477.0f, -4478.0f, 4479.0f, -4480.0f, 4481.0f, -4482.0f, 4483.0f, -4484.0f, 4485.0f, -4486.0f, 4487.0f, -4488.0f, 4489.0f, -4490.0f, 4491.0f, -4492.0f, 4493.0f, -4494.0f, 4495.0f, -4496.0f, 4497.0f, -4498.0f, 4499.0f, -4500.0f, 4501.0f, -4502.0f, 4503.0f, -4504.0f, 4505.0f, -4506.0f, 4507.0f, -4508.0f, 4509.0f, -4510.0f, 4511.0f, -4512.0f, 4513.0f, -4514.0f, 4515.0f, -4516.0f, 4517.0f, -4518.0f, 4519.0f, -4520.0f, 4521.0f, -4522.0f, 4523.0f, -4524.0f, 4525.0f, -4526.0f, 4527.0f, -4528.0f, 4529.0f, -4530.0f, 4531.0f, -4532.0f, 4533.0f, -4534.0f, 4535.0f, -4536.0f, 4537.0f, -4538.0f, 4539.0f, -4540.0f, 4541.0f, -4542.0f, 4543.0f, -4544.0f, 4545.0f, -4546.0f, 4547.0f, -4548.0f, 4549.0f, -4550.0f, 4551.0f, -4552.0f, 4553.0f, -4554.0f, 4555.0f, -4556.0f, 4557.0f, -4558.0f, 4559.0f, -4560.0f, 4561.0f, -4562.0f, 4563.0f, -4564.0f, 4565.0f, -4566.0f, 4567.0f, -4568.0f, 4569.0f, -4570.0f, 4571.0f, -4572.0f, 4573.0f, -4574.0f, 4575.0f, -4576.0f, 4577.0f, -4578.0f, 4579.0f, -4580.0f, 4581.0f, -4582.0f, 4583.0f, -4584.0f, 4585.0f, -4586.0f, 4587.0f, -4588.0f, 4589.0f, -4590.0f, 4591.0f, -4592.0f, 4593.0f, -4594.0f, 4595.0f, -4596.0f, 4597.0f, -4598.0f, 4599.0f, -4600.0f, 4601.0f, -4602.0f, 4603.0f, -4604.0f, 4605.0f, -4606.0f, 4607.0f, -4608.0f, 4609.0f, -4610.0f, 4611.0f, -4612.0f, 4613.0f, -4614.0f, 4615.0f, -4616.0f, 4617.0f, -4618.0f, 4619.0f, -4620.0f, 4621.0f, -4622.0f, 4623.0f, -4624.0f, 4625.0f, -4626.0f, 4627.0f, -4628.0f, 4629.0f, -4630.0f, 4631.0f, -4632.0f, 4633.0f, -4634.0f, 4635.0f, -4636.0f, 4637.0f, -4638.0f, 4639.0f, -4640.0f, 4641.0f, -4642.0f, 4643.0f, -4644.0f, 4645.0f, -4646.0f, 4647.0f, -4648.0f, 4649.0f, -4650.0f, 4651.0f, -4652.0f, 4653.0f, -4654.0f, 4655.0f, -4656.0f, 4657.0f, -4658.0f, 4659.0f, -4660.0f, 4661.0f, -4662.0f, 4663.0f, -4664.0f, 4665.0f, -4666.0f, 4667.0f, -4668.0f, 4669.0f, -4670.0f, 4671.0f, -4672.0f, 4673.0f, -4674.0f, 4675.0f, -4676.0f, 4677.0f, -4678.0f, 4679.0f, -4680.0f, 4681.0f, -4682.0f, 4683.0f, -4684.0f, 4685.0f, -4686.0f, 4687.0f, -4688.0f, 4689.0f, -4690.0f, 4691.0f, -4692.0f, 4693.0f, -4694.0f, 4695.0f, -4696.0f, 4697.0f, -4698.0f, 4699.0f, -4700.0f, 4701.0f, -4702.0f, 4703.0f, -4704.0f, 4705.0f, -4706.0f, 4707.0f, -4708.0f, 4709.0f, -4710.0f, 4711.0f, -4712.0f, 4713.0f, -4714.0f, 4715.0f, -4716.0f, 4717.0f, -4718.0f, 4719.0f, -4720.0f, 4721.0f, -4722.0f, 4723.0f, -4724.0f, 4725.0f, -4726.0f, 4727.0f, -4728.0f, 4729.0f, -4730.0f, 4731.0f, -4732.0f, 4733.0f, -4734.0f, 4735.0f, -4736.0f, 4737.0f, -4738.0f, 4739.0f, -4740.0f, 4741.0f, -4742.0f, 4743.0f, -4744.0f, 4745.0f, -4746.0f, 4747.0f, -4748.0f, 4749.0f, -4750.0f, 4751.0f, -4752.0f, 4753.0f, -4754.0f, 4755.0f, -4756.0f, 4757.0f, -4758.0f, 4759.0f, -4760.0f, 4761.0f, -4762.0f, 4763.0f, -4764.0f, 4765.0f, -4766.0f, 4767.0f, -4768.0f, 4769.0f, -4770.0f, 4771.0f, -4772.0f, 4773.0f, -4774.0f, 4775.0f, -4776.0f, 4777.0f, -4778.0f, 4779.0f, -4780.0f, 4781.0f, -4782.0f, 4783.0f, -4784.0f, 4785.0f, -4786.0f, 4787.0f, -4788.0f, 4789.0f, -4790.0f, 4791.0f, -4792.0f, 4793.0f, -4794.0f, 4795.0f, -4796.0f, 4797.0f, -4798.0f, 4799.0f, -4800.0f, 4801.0f, -4802.0f, 4803.0f, -4804.0f, 4805.0f, -4806.0f, 4807.0f, -4808.0f, 4809.0f, -4810.0f, 4811.0f, -4812.0f, 4813.0f, -4814.0f, 4815.0f, -4816.0f, 4817.0f, -4818.0f, 4819.0f, -4820.0f, 4821.0f, -4822.0f, 4823.0f, -4824.0f, 4825.0f, -4826.0f, 4827.0f, -4828.0f, 4829.0f, -4830.0f, 4831.0f, -4832.0f, 4833.0f, -4834.0f, 4835.0f, -4836.0f, 4837.0f, -4838.0f, 4839.0f, -4840.0f, 4841.0f, -4842.0f, 4843.0f, -4844.0f, 4845.0f, -4846.0f, 4847.0f, -4848.0f, 4849.0f, -4850.0f, 4851.0f, -4852.0f, 4853.0f, -4854.0f, 4855.0f, -4856.0f, 4857.0f, -4858.0f, 4859.0f, -4860.0f, 4861.0f, -4862.0f, 4863.0f, -4864.0f, 4865.0f, -4866.0f, 4867.0f, -4868.0f, 4869.0f, -4870.0f, 4871.0f, -4872.0f, 4873.0f, -4874.0f, 4875.0f, -4876.0f, 4877.0f, -4878.0f, 4879.0f, -4880.0f, 4881.0f, -4882.0f, 4883.0f, -4884.0f, 4885.0f, -4886.0f, 4887.0f, -4888.0f, 4889.0f, -4890.0f, 4891.0f, -4892.0f, 4893.0f, -4894.0f, 4895.0f, -4896.0f, 4897.0f, -4898.0f, 4899.0f, -4900.0f, 4901.0f, -4902.0f, 4903.0f, -4904.0f, 4905.0f, -4906.0f, 4907.0f, -4908.0f, 4909.0f, -4910.0f, 4911.0f, -4912.0f, 4913.0f, -4914.0f, 4915.0f, -4916.0f, 4917.0f, -4918.0f, 4919.0f, -4920.0f, 4921.0f, -4922.0f, 4923.0f, -4924.0f, 4925.0f, -4926.0f, 4927.0f, -4928.0f, 4929.0f, -4930.0f, 4931.0f, -4932.0f, 4933.0f, -4934.0f, 4935.0f, -4936.0f, 4937.0f, -4938.0f, 4939.0f, -4940.0f, 4941.0f, -4942.0f, 4943.0f, -4944.0f, 4945.0f, -4946.0f, 4947.0f, -4948.0f, 4949.0f, -4950.0f, 4951.0f, -4952.0f, 4953.0f, -4954.0f, 4955.0f, -4956.0f, 4957.0f, -4958.0f, 4959.0f, -4960.0f, 4961.0f, -4962.0f, 4963.0f, -4964.0f, 4965.0f, -4966.0f, 4967.0f, -4968.0f, 4969.0f, -4970.0f, 4971.0f, -4972.0f, 4973.0f, -4974.0f, 4975.0f, -4976.0f, 4977.0f, -4978.0f, 4979.0f, -4980.0f, 4981.0f, -4982.0f, 4983.0f, -4984.0f, 4985.0f, -4986.0f, 4987.0f, -4988.0f, 4989.0f, -4990.0f, 4991.0f, -4992.0f, 4993.0f, -4994.0f, 4995.0f, -4996.0f, 4997.0f, -4998.0f, 4999.0f, -5000.0f, 5001.0f, -5002.0f, 5003.0f, -5004.0f, 5005.0f, -5006.0f, 5007.0f, -5008.0f, 5009.0f, -5010.0f, 5011.0f, -5012.0f, 5013.0f, -5014.0f, 5015.0f, -5016.0f, 5017.0f, -5018.0f, 5019.0f, -5020.0f, 5021.0f, -5022.0f, 5023.0f, -5024.0f, 5025.0f, -5026.0f, 5027.0f, -5028.0f, 5029.0f, -5030.0f, 5031.0f, -5032.0f, 5033.0f, -5034.0f, 5035.0f, -5036.0f, 5037.0f, -5038.0f, 5039.0f, -5040.0f, 5041.0f, -5042.0f, 5043.0f, -5044.0f, 5045.0f, -5046.0f, 5047.0f, -5048.0f, 5049.0f, -5050.0f, 5051.0f, -5052.0f, 5053.0f, -5054.0f, 5055.0f, -5056.0f, 5057.0f, -5058.0f, 5059.0f, -5060.0f, 5061.0f, -5062.0f, 5063.0f, -5064.0f, 5065.0f, -5066.0f, 5067.0f, -5068.0f, 5069.0f, -5070.0f, 5071.0f, -5072.0f, 5073.0f, -5074.0f, 5075.0f, -5076.0f, 5077.0f, -5078.0f, 5079.0f, -5080.0f, 5081.0f, -5082.0f, 5083.0f, -5084.0f, 5085.0f, -5086.0f, 5087.0f, -5088.0f, 5089.0f, -5090.0f, 5091.0f, -5092.0f, 5093.0f, -5094.0f, 5095.0f, -5096.0f, 5097.0f, -5098.0f, 5099.0f, -5100.0f, 5101.0f, -5102.0f, 5103.0f, -5104.0f, 5105.0f, -5106.0f, 5107.0f, -5108.0f, 5109.0f, -5110.0f, 5111.0f, -5112.0f, 5113.0f, -5114.0f, 5115.0f, -5116.0f, 5117.0f, -5118.0f, 5119.0f, -5120.0f, 5121.0f, -5122.0f, 5123.0f, -5124.0f, 5125.0f, -5126.0f, 5127.0f, -5128.0f, 5129.0f, -5130.0f, 5131.0f, -5132.0f, 5133.0f, -5134.0f, 5135.0f, -5136.0f, 5137.0f, -5138.0f, 5139.0f, -5140.0f, 5141.0f, -5142.0f, 5143.0f, -5144.0f, 5145.0f, -5146.0f, 5147.0f, -5148.0f, 5149.0f, -5150.0f, 5151.0f, -5152.0f, 5153.0f, -5154.0f, 5155.0f, -5156.0f, 5157.0f, -5158.0f, 5159.0f, -5160.0f, 5161.0f, -5162.0f, 5163.0f, -5164.0f, 5165.0f, -5166.0f, 5167.0f, -5168.0f, 5169.0f, -5170.0f, 5171.0f, -5172.0f, 5173.0f, -5174.0f, 5175.0f, -5176.0f, 5177.0f, -5178.0f, 5179.0f, -5180.0f, 5181.0f, -5182.0f, 5183.0f, -5184.0f, 5185.0f, -5186.0f, 5187.0f, -5188.0f, 5189.0f, -5190.0f, 5191.0f, -5192.0f, 5193.0f, -5194.0f, 5195.0f, -5196.0f, 5197.0f, -5198.0f, 5199.0f, -5200.0f, 5201.0f, -5202.0f, 5203.0f, -5204.0f, 5205.0f, -5206.0f, 5207.0f, -5208.0f, 5209.0f, -5210.0f, 5211.0f, -5212.0f, 5213.0f, -5214.0f, 5215.0f, -5216.0f, 5217.0f, -5218.0f, 5219.0f, -5220.0f, 5221.0f, -5222.0f, 5223.0f, -5224.0f, 5225.0f, -5226.0f, 5227.0f, -5228.0f, 5229.0f, -5230.0f, 5231.0f, -5232.0f, 5233.0f, -5234.0f, 5235.0f, -5236.0f, 5237.0f, -5238.0f, 5239.0f, -5240.0f, 5241.0f, -5242.0f, 5243.0f, -5244.0f, 5245.0f, -5246.0f, 5247.0f, -5248.0f, 5249.0f, -5250.0f, 5251.0f, -5252.0f, 5253.0f, -5254.0f, 5255.0f, -5256.0f, 5257.0f, -5258.0f, 5259.0f, -5260.0f, 5261.0f, -5262.0f, 5263.0f, -5264.0f, 5265.0f, -5266.0f, 5267.0f, -5268.0f, 5269.0f, -5270.0f, 5271.0f, -5272.0f, 5273.0f, -5274.0f, 5275.0f, -5276.0f, 5277.0f, -5278.0f, 5279.0f, -5280.0f, 5281.0f, -5282.0f, 5283.0f, -5284.0f, 5285.0f, -5286.0f, 5287.0f, -5288.0f, 5289.0f, -5290.0f, 5291.0f, -5292.0f, 5293.0f, -5294.0f, 5295.0f, -5296.0f, 5297.0f, -5298.0f, 5299.0f, -5300.0f, 5301.0f, -5302.0f, 5303.0f, -5304.0f, 5305.0f, -5306.0f, 5307.0f, -5308.0f, 5309.0f, -5310.0f, 5311.0f, -5312.0f, 5313.0f, -5314.0f, 5315.0f, -5316.0f, 5317.0f, -5318.0f, 5319.0f, -5320.0f, 5321.0f, -5322.0f, 5323.0f, -5324.0f, 5325.0f, -5326.0f, 5327.0f, -5328.0f, 5329.0f, -5330.0f, 5331.0f, -5332.0f, 5333.0f, -5334.0f, 5335.0f, -5336.0f, 5337.0f, -5338.0f, 5339.0f, -5340.0f, 5341.0f, -5342.0f, 5343.0f, -5344.0f, 5345.0f, -5346.0f, 5347.0f, -5348.0f, 5349.0f, -5350.0f, 5351.0f, -5352.0f, 5353.0f, -5354.0f, 5355.0f, -5356.0f, 5357.0f, -5358.0f, 5359.0f, -5360.0f, 5361.0f, -5362.0f, 5363.0f, -5364.0f, 5365.0f, -5366.0f, 5367.0f, -5368.0f, 5369.0f, -5370.0f, 5371.0f, -5372.0f, 5373.0f, -5374.0f, 5375.0f, -5376.0f, 5377.0f, -5378.0f, 5379.0f, -5380.0f, 5381.0f, -5382.0f, 5383.0f, -5384.0f, 5385.0f, -5386.0f, 5387.0f, -5388.0f, 5389.0f, -5390.0f, 5391.0f, -5392.0f, 5393.0f, -5394.0f, 5395.0f, -5396.0f, 5397.0f, -5398.0f, 5399.0f, -5400.0f, 5401.0f, -5402.0f, 5403.0f, -5404.0f, 5405.0f, -5406.0f, 5407.0f, -5408.0f, 5409.0f, -5410.0f, 5411.0f, -5412.0f, 5413.0f, -5414.0f, 5415.0f, -5416.0f, 5417.0f, -5418.0f, 5419.0f, -5420.0f, 5421.0f, -5422.0f, 5423.0f, -5424.0f, 5425.0f, -5426.0f, 5427.0f, -5428.0f, 5429.0f, -5430.0f, 5431.0f, -5432.0f, 5433.0f, -5434.0f, 5435.0f, -5436.0f, 5437.0f, -5438.0f, 5439.0f, -5440.0f, 5441.0f, -5442.0f, 5443.0f, -5444.0f, 5445.0f, -5446.0f, 5447.0f, -5448.0f, 5449.0f, -5450.0f, 5451.0f, -5452.0f, 5453.0f, -5454.0f, 5455.0f, -5456.0f, 5457.0f, -5458.0f, 5459.0f, -5460.0f, 5461.0f, -5462.0f, 5463.0f, -5464.0f, 5465.0f, -5466.0f, 5467.0f, -5468.0f, 5469.0f, -5470.0f, 5471.0f, -5472.0f, 5473.0f, -5474.0f, 5475.0f, -5476.0f, 5477.0f, -5478.0f, 5479.0f, -5480.0f, 5481.0f, -5482.0f, 5483.0f, -5484.0f, 5485.0f, -5486.0f, 5487.0f, -5488.0f, 5489.0f, -5490.0f, 5491.0f, -5492.0f, 5493.0f, -5494.0f, 5495.0f, -5496.0f, 5497.0f, -5498.0f, 5499.0f, -5500.0f, 5501.0f, -5502.0f, 5503.0f, -5504.0f, 5505.0f, -5506.0f, 5507.0f, -5508.0f, 5509.0f, -5510.0f, 5511.0f, -5512.0f, 5513.0f, -5514.0f, 5515.0f, -5516.0f, 5517.0f, -5518.0f, 5519.0f, -5520.0f, 5521.0f, -5522.0f, 5523.0f, -5524.0f, 5525.0f, -5526.0f, 5527.0f, -5528.0f, 5529.0f, -5530.0f, 5531.0f, -5532.0f, 5533.0f, -5534.0f, 5535.0f, -5536.0f, 5537.0f, -5538.0f, 5539.0f, -5540.0f, 5541.0f, -5542.0f, 5543.0f, -5544.0f, 5545.0f, -5546.0f, 5547.0f, -5548.0f, 5549.0f, -5550.0f, 5551.0f, -5552.0f, 5553.0f, -5554.0f, 5555.0f, -5556.0f, 5557.0f, -5558.0f, 5559.0f, -5560.0f, 5561.0f, -5562.0f, 5563.0f, -5564.0f, 5565.0f, -5566.0f, 5567.0f, -5568.0f, 5569.0f, -5570.0f, 5571.0f, -5572.0f, 5573.0f, -5574.0f, 5575.0f, -5576.0f, 5577.0f, -5578.0f, 5579.0f, -5580.0f, 5581.0f, -5582.0f, 5583.0f, -5584.0f, 5585.0f, -5586.0f, 5587.0f, -5588.0f, 5589.0f, -5590.0f, 5591.0f, -5592.0f, 5593.0f, -5594.0f, 5595.0f, -5596.0f, 5597.0f, -5598.0f, 5599.0f, -5600.0f, 5601.0f, -5602.0f, 5603.0f, -5604.0f, 5605.0f, -5606.0f, 5607.0f, -5608.0f, 5609.0f, -5610.0f, 5611.0f, -5612.0f, 5613.0f, -5614.0f, 5615.0f, -5616.0f, 5617.0f, -5618.0f, 5619.0f, -5620.0f, 5621.0f, -5622.0f, 5623.0f, -5624.0f, 5625.0f, -5626.0f, 5627.0f, -5628.0f, 5629.0f, -5630.0f, 5631.0f, -5632.0f, 5633.0f, -5634.0f, 5635.0f, -5636.0f, 5637.0f, -5638.0f, 5639.0f, -5640.0f, 5641.0f, -5642.0f, 5643.0f, -5644.0f, 5645.0f, -5646.0f, 5647.0f, -5648.0f, 5649.0f, -5650.0f, 5651.0f, -5652.0f, 5653.0f, -5654.0f, 5655.0f, -5656.0f, 5657.0f, -5658.0f, 5659.0f, -5660.0f, 5661.0f, -5662.0f, 5663.0f, -5664.0f, 5665.0f, -5666.0f, 5667.0f, -5668.0f, 5669.0f, -5670.0f, 5671.0f, -5672.0f, 5673.0f, -5674.0f, 5675.0f, -5676.0f, 5677.0f, -5678.0f, 5679.0f, -5680.0f, 5681.0f, -5682.0f, 5683.0f, -5684.0f, 5685.0f, -5686.0f, 5687.0f, -5688.0f, 5689.0f, -5690.0f, 5691.0f, -5692.0f, 5693.0f, -5694.0f, 5695.0f, -5696.0f, 5697.0f, -5698.0f, 5699.0f, -5700.0f, 5701.0f, -5702.0f, 5703.0f, -5704.0f, 5705.0f, -5706.0f, 5707.0f, -5708.0f, 5709.0f, -5710.0f, 5711.0f, -5712.0f, 5713.0f, -5714.0f, 5715.0f, -5716.0f, 5717.0f, -5718.0f, 5719.0f, -5720.0f, 5721.0f, -5722.0f, 5723.0f, -5724.0f, 5725.0f, -5726.0f, 5727.0f, -5728.0f, 5729.0f, -5730.0f, 5731.0f, -5732.0f, 5733.0f, -5734.0f, 5735.0f, -5736.0f, 5737.0f, -5738.0f, 5739.0f, -5740.0f, 5741.0f, -5742.0f, 5743.0f, -5744.0f, 5745.0f, -5746.0f, 5747.0f, -5748.0f, 5749.0f, -5750.0f, 5751.0f, -5752.0f, 5753.0f, -5754.0f, 5755.0f, -5756.0f, 5757.0f, -5758.0f, 5759.0f, -5760.0f, 5761.0f, -5762.0f, 5763.0f, -5764.0f, 5765.0f, -5766.0f, 5767.0f, -5768.0f, 5769.0f, -5770.0f, 5771.0f, -5772.0f, 5773.0f, -5774.0f, 5775.0f, -5776.0f, 5777.0f, -5778.0f, 5779.0f, -5780.0f, 5781.0f, -5782.0f, 5783.0f, -5784.0f, 5785.0f, -5786.0f, 5787.0f, -5788.0f, 5789.0f, -5790.0f, 5791.0f, -5792.0f, 5793.0f, -5794.0f, 5795.0f, -5796.0f, 5797.0f, -5798.0f, 5799.0f, -5800.0f, 5801.0f, -5802.0f, 5803.0f, -5804.0f, 5805.0f, -5806.0f, 5807.0f, -5808.0f, 5809.0f, -5810.0f, 5811.0f, -5812.0f, 5813.0f, -5814.0f, 5815.0f, -5816.0f, 5817.0f, -5818.0f, 5819.0f, -5820.0f, 5821.0f, -5822.0f, 5823.0f, -5824.0f, 5825.0f, -5826.0f, 5827.0f, -5828.0f, 5829.0f, -5830.0f, 5831.0f, -5832.0f, 5833.0f, -5834.0f, 5835.0f, -5836.0f, 5837.0f, -5838.0f, 5839.0f, -5840.0f, 5841.0f, -5842.0f, 5843.0f, -5844.0f, 5845.0f, -5846.0f, 5847.0f, -5848.0f, 5849.0f, -5850.0f, 5851.0f, -5852.0f, 5853.0f, -5854.0f, 5855.0f, -5856.0f, 5857.0f, -5858.0f, 5859.0f, -5860.0f, 5861.0f, -5862.0f, 5863.0f, -5864.0f, 5865.0f, -5866.0f, 5867.0f, -5868.0f, 5869.0f, -5870.0f, 5871.0f, -5872.0f, 5873.0f, -5874.0f, 5875.0f, -5876.0f, 5877.0f, -5878.0f, 5879.0f, -5880.0f, 5881.0f, -5882.0f, 5883.0f, -5884.0f, 5885.0f, -5886.0f, 5887.0f, -5888.0f, 5889.0f, -5890.0f, 5891.0f, -5892.0f, 5893.0f, -5894.0f, 5895.0f, -5896.0f, 5897.0f, -5898.0f, 5899.0f, -5900.0f, 5901.0f, -5902.0f, 5903.0f, -5904.0f, 5905.0f, -5906.0f, 5907.0f, -5908.0f, 5909.0f, -5910.0f, 5911.0f, -5912.0f, 5913.0f, -5914.0f, 5915.0f, -5916.0f, 5917.0f, -5918.0f, 5919.0f, -5920.0f, 5921.0f, -5922.0f, 5923.0f, -5924.0f, 5925.0f, -5926.0f, 5927.0f, -5928.0f, 5929.0f, -5930.0f, 5931.0f, -5932.0f, 5933.0f, -5934.0f, 5935.0f, -5936.0f, 5937.0f, -5938.0f, 5939.0f, -5940.0f, 5941.0f, -5942.0f, 5943.0f, -5944.0f, 5945.0f, -5946.0f, 5947.0f, -5948.0f, 5949.0f, -5950.0f, 5951.0f, -5952.0f, 5953.0f, -5954.0f, 5955.0f, -5956.0f, 5957.0f, -5958.0f, 5959.0f, -5960.0f, 5961.0f, -5962.0f, 5963.0f, -5964.0f, 5965.0f, -5966.0f, 5967.0f, -5968.0f, 5969.0f, -5970.0f, 5971.0f, -5972.0f, 5973.0f, -5974.0f, 5975.0f, -5976.0f, 5977.0f, -5978.0f, 5979.0f, -5980.0f, 5981.0f, -5982.0f, 5983.0f, -5984.0f, 5985.0f, -5986.0f, 5987.0f, -5988.0f, 5989.0f, -5990.0f, 5991.0f, -5992.0f, 5993.0f, -5994.0f, 5995.0f, -5996.0f, 5997.0f, -5998.0f, 5999.0f, -6000.0f, 6001.0f, -6002.0f, 6003.0f, -6004.0f, 6005.0f, -6006.0f, 6007.0f, -6008.0f, 6009.0f, -6010.0f, 6011.0f, -6012.0f, 6013.0f, -6014.0f, 6015.0f, -6016.0f, 6017.0f, -6018.0f, 6019.0f, -6020.0f, 6021.0f, -6022.0f, 6023.0f, -6024.0f, 6025.0f, -6026.0f, 6027.0f, -6028.0f, 6029.0f, -6030.0f, 6031.0f, -6032.0f, 6033.0f, -6034.0f, 6035.0f, -6036.0f, 6037.0f, -6038.0f, 6039.0f, -6040.0f, 6041.0f, -6042.0f, 6043.0f, -6044.0f, 6045.0f, -6046.0f, 6047.0f, -6048.0f, 6049.0f, -6050.0f, 6051.0f, -6052.0f, 6053.0f, -6054.0f, 6055.0f, -6056.0f, 6057.0f, -6058.0f, 6059.0f, -6060.0f, 6061.0f, -6062.0f, 6063.0f, -6064.0f, 6065.0f, -6066.0f, 6067.0f, -6068.0f, 6069.0f, -6070.0f, 6071.0f, -6072.0f, 6073.0f, -6074.0f, 6075.0f, -6076.0f, 6077.0f, -6078.0f, 6079.0f, -6080.0f, 6081.0f, -6082.0f, 6083.0f, -6084.0f, 6085.0f, -6086.0f, 6087.0f, -6088.0f, 6089.0f, -6090.0f, 6091.0f, -6092.0f, 6093.0f, -6094.0f, 6095.0f, -6096.0f, 6097.0f, -6098.0f, 6099.0f, -6100.0f, 6101.0f, -6102.0f, 6103.0f, -6104.0f, 6105.0f, -6106.0f, 6107.0f, -6108.0f, 6109.0f, -6110.0f, 6111.0f, -6112.0f, 6113.0f, -6114.0f, 6115.0f, -6116.0f, 6117.0f, -6118.0f, 6119.0f, -6120.0f, 6121.0f, -6122.0f, 6123.0f, -6124.0f, 6125.0f, -6126.0f, 6127.0f, -6128.0f, 6129.0f, -6130.0f, 6131.0f, -6132.0f, 6133.0f, -6134.0f, 6135.0f, -6136.0f, 6137.0f, -6138.0f, 6139.0f, -6140.0f, 6141.0f, -6142.0f, 6143.0f, -6144.0f, 6145.0f, -6146.0f, 6147.0f, -6148.0f, 6149.0f, -6150.0f, 6151.0f, -6152.0f, 6153.0f, -6154.0f, 6155.0f, -6156.0f, 6157.0f, -6158.0f, 6159.0f, -6160.0f, 6161.0f, -6162.0f, 6163.0f, -6164.0f, 6165.0f, -6166.0f, 6167.0f, -6168.0f, 6169.0f, -6170.0f, 6171.0f, -6172.0f, 6173.0f, -6174.0f, 6175.0f, -6176.0f, 6177.0f, -6178.0f, 6179.0f, -6180.0f, 6181.0f, -6182.0f, 6183.0f, -6184.0f, 6185.0f, -6186.0f, 6187.0f, -6188.0f, 6189.0f, -6190.0f, 6191.0f, -6192.0f, 6193.0f, -6194.0f, 6195.0f, -6196.0f, 6197.0f, -6198.0f, 6199.0f, -6200.0f, 6201.0f, -6202.0f, 6203.0f, -6204.0f, 6205.0f, -6206.0f, 6207.0f, -6208.0f, 6209.0f, -6210.0f, 6211.0f, -6212.0f, 6213.0f, -6214.0f, 6215.0f, -6216.0f, 6217.0f, -6218.0f, 6219.0f, -6220.0f, 6221.0f, -6222.0f, 6223.0f, -6224.0f, 6225.0f, -6226.0f, 6227.0f, -6228.0f, 6229.0f, -6230.0f, 6231.0f, -6232.0f, 6233.0f, -6234.0f, 6235.0f, -6236.0f, 6237.0f, -6238.0f, 6239.0f, -6240.0f, 6241.0f, -6242.0f, 6243.0f, -6244.0f, 6245.0f, -6246.0f, 6247.0f, -6248.0f, 6249.0f, -6250.0f, 6251.0f, -6252.0f, 6253.0f, -6254.0f, 6255.0f, -6256.0f, 6257.0f, -6258.0f, 6259.0f, -6260.0f, 6261.0f, -6262.0f, 6263.0f, -6264.0f, 6265.0f, -6266.0f, 6267.0f, -6268.0f, 6269.0f, -6270.0f, 6271.0f, -6272.0f, 6273.0f, -6274.0f, 6275.0f, -6276.0f, 6277.0f, -6278.0f, 6279.0f, -6280.0f, 6281.0f, -6282.0f, 6283.0f, -6284.0f, 6285.0f, -6286.0f, 6287.0f, -6288.0f, 6289.0f, -6290.0f, 6291.0f, -6292.0f, 6293.0f, -6294.0f, 6295.0f, -6296.0f, 6297.0f, -6298.0f, 6299.0f, -6300.0f, 6301.0f, -6302.0f, 6303.0f, -6304.0f, 6305.0f, -6306.0f, 6307.0f, -6308.0f, 6309.0f, -6310.0f, 6311.0f, -6312.0f, 6313.0f, -6314.0f, 6315.0f, -6316.0f, 6317.0f, -6318.0f, 6319.0f, -6320.0f, 6321.0f, -6322.0f, 6323.0f, -6324.0f, 6325.0f, -6326.0f, 6327.0f, -6328.0f, 6329.0f, -6330.0f, 6331.0f, -6332.0f, 6333.0f, -6334.0f, 6335.0f, -6336.0f, 6337.0f, -6338.0f, 6339.0f, -6340.0f, 6341.0f, -6342.0f, 6343.0f, -6344.0f, 6345.0f, -6346.0f, 6347.0f, -6348.0f, 6349.0f, -6350.0f, 6351.0f, -6352.0f, 6353.0f, -6354.0f, 6355.0f, -6356.0f, 6357.0f, -6358.0f, 6359.0f, -6360.0f, 6361.0f, -6362.0f, 6363.0f, -6364.0f, 6365.0f, -6366.0f, 6367.0f, -6368.0f, 6369.0f, -6370.0f, 6371.0f, -6372.0f, 6373.0f, -6374.0f, 6375.0f, -6376.0f, 6377.0f, -6378.0f, 6379.0f, -6380.0f, 6381.0f, -6382.0f, 6383.0f, -6384.0f, 6385.0f, -6386.0f, 6387.0f, -6388.0f, 6389.0f, -6390.0f, 6391.0f, -6392.0f, 6393.0f, -6394.0f, 6395.0f, -6396.0f, 6397.0f, -6398.0f, 6399.0f, -6400.0f, 6401.0f, -6402.0f, 6403.0f, -6404.0f, 6405.0f, -6406.0f, 6407.0f, -6408.0f, 6409.0f, -6410.0f, 6411.0f, -6412.0f, 6413.0f, -6414.0f, 6415.0f, -6416.0f, 6417.0f, -6418.0f, 6419.0f, -6420.0f, 6421.0f, -6422.0f, 6423.0f, -6424.0f, 6425.0f, -6426.0f, 6427.0f, -6428.0f, 6429.0f, -6430.0f, 6431.0f, -6432.0f, 6433.0f, -6434.0f, 6435.0f, -6436.0f, 6437.0f, -6438.0f, 6439.0f, -6440.0f, 6441.0f, -6442.0f, 6443.0f, -6444.0f, 6445.0f, -6446.0f, 6447.0f, -6448.0f, 6449.0f, -6450.0f, 6451.0f, -6452.0f, 6453.0f, -6454.0f, 6455.0f, -6456.0f, 6457.0f, -6458.0f, 6459.0f, -6460.0f, 6461.0f, -6462.0f, 6463.0f, -6464.0f, 6465.0f, -6466.0f, 6467.0f, -6468.0f, 6469.0f, -6470.0f, 6471.0f, -6472.0f, 6473.0f, -6474.0f, 6475.0f, -6476.0f, 6477.0f, -6478.0f, 6479.0f, -6480.0f, 6481.0f, -6482.0f, 6483.0f, -6484.0f, 6485.0f, -6486.0f, 6487.0f, -6488.0f, 6489.0f, -6490.0f, 6491.0f, -6492.0f, 6493.0f, -6494.0f, 6495.0f, -6496.0f, 6497.0f, -6498.0f, 6499.0f, -6500.0f, 6501.0f, -6502.0f, 6503.0f, -6504.0f, 6505.0f, -6506.0f, 6507.0f, -6508.0f, 6509.0f, -6510.0f, 6511.0f, -6512.0f, 6513.0f, -6514.0f, 6515.0f, -6516.0f, 6517.0f, -6518.0f, 6519.0f, -6520.0f, 6521.0f, -6522.0f, 6523.0f, -6524.0f, 6525.0f, -6526.0f, 6527.0f, -6528.0f, 6529.0f, -6530.0f, 6531.0f, -6532.0f, 6533.0f, -6534.0f, 6535.0f, -6536.0f, 6537.0f, -6538.0f, 6539.0f, -6540.0f, 6541.0f, -6542.0f, 6543.0f, -6544.0f, 6545.0f, -6546.0f, 6547.0f, -6548.0f, 6549.0f, -6550.0f, 6551.0f, -6552.0f, 6553.0f, -6554.0f, 6555.0f, -6556.0f, 6557.0f, -6558.0f, 6559.0f, -6560.0f, 6561.0f, -6562.0f, 6563.0f, -6564.0f, 6565.0f, -6566.0f, 6567.0f, -6568.0f, 6569.0f, -6570.0f, 6571.0f, -6572.0f, 6573.0f, -6574.0f, 6575.0f, -6576.0f, 6577.0f, -6578.0f, 6579.0f, -6580.0f, 6581.0f, -6582.0f, 6583.0f, -6584.0f, 6585.0f, -6586.0f, 6587.0f, -6588.0f, 6589.0f, -6590.0f, 6591.0f, -6592.0f, 6593.0f, -6594.0f, 6595.0f, -6596.0f, 6597.0f, -6598.0f, 6599.0f, -6600.0f, 6601.0f, -6602.0f, 6603.0f, -6604.0f, 6605.0f, -6606.0f, 6607.0f, -6608.0f, 6609.0f, -6610.0f, 6611.0f, -6612.0f, 6613.0f, -6614.0f, 6615.0f, -6616.0f, 6617.0f, -6618.0f, 6619.0f, -6620.0f, 6621.0f, -6622.0f, 6623.0f, -6624.0f, 6625.0f, -6626.0f, 6627.0f, -6628.0f, 6629.0f, -6630.0f, 6631.0f, -6632.0f, 6633.0f, -6634.0f, 6635.0f, -6636.0f, 6637.0f, -6638.0f, 6639.0f, -6640.0f, 6641.0f, -6642.0f, 6643.0f, -6644.0f, 6645.0f, -6646.0f, 6647.0f, -6648.0f, 6649.0f, -6650.0f, 6651.0f, -6652.0f, 6653.0f, -6654.0f, 6655.0f, -6656.0f, 6657.0f, -6658.0f, 6659.0f, -6660.0f, 6661.0f, -6662.0f, 6663.0f, -6664.0f, 6665.0f, -6666.0f, 6667.0f, -6668.0f, 6669.0f, -6670.0f, 6671.0f, -6672.0f, 6673.0f, -6674.0f, 6675.0f, -6676.0f, 6677.0f, -6678.0f, 6679.0f, -6680.0f, 6681.0f, -6682.0f, 6683.0f, -6684.0f, 6685.0f, -6686.0f, 6687.0f, -6688.0f, 6689.0f, -6690.0f, 6691.0f, -6692.0f, 6693.0f, -6694.0f, 6695.0f, -6696.0f, 6697.0f, -6698.0f, 6699.0f, -6700.0f, 6701.0f, -6702.0f, 6703.0f, -6704.0f, 6705.0f, -6706.0f, 6707.0f, -6708.0f, 6709.0f, -6710.0f, 6711.0f, -6712.0f, 6713.0f, -6714.0f, 6715.0f, -6716.0f, 6717.0f, -6718.0f, 6719.0f, -6720.0f, 6721.0f, -6722.0f, 6723.0f, -6724.0f, 6725.0f, -6726.0f, 6727.0f, -6728.0f, 6729.0f, -6730.0f, 6731.0f, -6732.0f, 6733.0f, -6734.0f, 6735.0f, -6736.0f, 6737.0f, -6738.0f, 6739.0f, -6740.0f, 6741.0f, -6742.0f, 6743.0f, -6744.0f, 6745.0f, -6746.0f, 6747.0f, -6748.0f, 6749.0f, -6750.0f, 6751.0f, -6752.0f, 6753.0f, -6754.0f, 6755.0f, -6756.0f, 6757.0f, -6758.0f, 6759.0f, -6760.0f, 6761.0f, -6762.0f, 6763.0f, -6764.0f, 6765.0f, -6766.0f, 6767.0f, -6768.0f, 6769.0f, -6770.0f, 6771.0f, -6772.0f, 6773.0f, -6774.0f, 6775.0f, -6776.0f, 6777.0f, -6778.0f, 6779.0f, -6780.0f, 6781.0f, -6782.0f, 6783.0f, -6784.0f, 6785.0f, -6786.0f, 6787.0f, -6788.0f, 6789.0f, -6790.0f, 6791.0f, -6792.0f, 6793.0f, -6794.0f, 6795.0f, -6796.0f, 6797.0f, -6798.0f, 6799.0f, -6800.0f, 6801.0f, -6802.0f, 6803.0f, -6804.0f, 6805.0f, -6806.0f, 6807.0f, -6808.0f, 6809.0f, -6810.0f, 6811.0f, -6812.0f, 6813.0f, -6814.0f, 6815.0f, -6816.0f, 6817.0f, -6818.0f, 6819.0f, -6820.0f, 6821.0f, -6822.0f, 6823.0f, -6824.0f, 6825.0f, -6826.0f, 6827.0f, -6828.0f, 6829.0f, -6830.0f, 6831.0f, -6832.0f, 6833.0f, -6834.0f, 6835.0f, -6836.0f, 6837.0f, -6838.0f, 6839.0f, -6840.0f, 6841.0f, -6842.0f, 6843.0f, -6844.0f, 6845.0f, -6846.0f, 6847.0f, -6848.0f, 6849.0f, -6850.0f, 6851.0f, -6852.0f, 6853.0f, -6854.0f, 6855.0f, -6856.0f, 6857.0f, -6858.0f, 6859.0f, -6860.0f, 6861.0f, -6862.0f, 6863.0f, -6864.0f, 6865.0f, -6866.0f, 6867.0f, -6868.0f, 6869.0f, -6870.0f, 6871.0f, -6872.0f, 6873.0f, -6874.0f, 6875.0f, -6876.0f, 6877.0f, -6878.0f, 6879.0f, -6880.0f, 6881.0f, -6882.0f, 6883.0f, -6884.0f, 6885.0f, -6886.0f, 6887.0f, -6888.0f, 6889.0f, -6890.0f, 6891.0f, -6892.0f, 6893.0f, -6894.0f, 6895.0f, -6896.0f, 6897.0f, -6898.0f, 6899.0f, -6900.0f, 6901.0f, -6902.0f, 6903.0f, -6904.0f, 6905.0f, -6906.0f, 6907.0f, -6908.0f, 6909.0f, -6910.0f, 6911.0f, -6912.0f, 6913.0f, -6914.0f, 6915.0f, -6916.0f, 6917.0f, -6918.0f, 6919.0f, -6920.0f, 6921.0f, -6922.0f, 6923.0f, -6924.0f, 6925.0f, -6926.0f, 6927.0f, -6928.0f, 6929.0f, -6930.0f, 6931.0f, -6932.0f, 6933.0f, -6934.0f, 6935.0f, -6936.0f, 6937.0f, -6938.0f, 6939.0f, -6940.0f, 6941.0f, -6942.0f, 6943.0f, -6944.0f, 6945.0f, -6946.0f, 6947.0f, -6948.0f, 6949.0f, -6950.0f, 6951.0f, -6952.0f, 6953.0f, -6954.0f, 6955.0f, -6956.0f, 6957.0f, -6958.0f, 6959.0f, -6960.0f, 6961.0f, -6962.0f, 6963.0f, -6964.0f, 6965.0f, -6966.0f, 6967.0f, -6968.0f, 6969.0f, -6970.0f, 6971.0f, -6972.0f, 6973.0f, -6974.0f, 6975.0f, -6976.0f, 6977.0f, -6978.0f, 6979.0f, -6980.0f, 6981.0f, -6982.0f, 6983.0f, -6984.0f, 6985.0f, -6986.0f, 6987.0f, -6988.0f, 6989.0f, -6990.0f, 6991.0f, -6992.0f, 6993.0f, -6994.0f, 6995.0f, -6996.0f, 6997.0f, -6998.0f, 6999.0f, -7000.0f, 7001.0f, -7002.0f, 7003.0f, -7004.0f, 7005.0f, -7006.0f, 7007.0f, -7008.0f, 7009.0f, -7010.0f, 7011.0f, -7012.0f, 7013.0f, -7014.0f, 7015.0f, -7016.0f, 7017.0f, -7018.0f, 7019.0f, -7020.0f, 7021.0f, -7022.0f, 7023.0f, -7024.0f, 7025.0f, -7026.0f, 7027.0f, -7028.0f, 7029.0f, -7030.0f, 7031.0f, -7032.0f, 7033.0f, -7034.0f, 7035.0f, -7036.0f, 7037.0f, -7038.0f, 7039.0f, -7040.0f, 7041.0f, -7042.0f, 7043.0f, -7044.0f, 7045.0f, -7046.0f, 7047.0f, -7048.0f, 7049.0f, -7050.0f, 7051.0f, -7052.0f, 7053.0f, -7054.0f, 7055.0f, -7056.0f, 7057.0f, -7058.0f, 7059.0f, -7060.0f, 7061.0f, -7062.0f, 7063.0f, -7064.0f, 7065.0f, -7066.0f, 7067.0f, -7068.0f, 7069.0f, -7070.0f, 7071.0f, -7072.0f, 7073.0f, -7074.0f, 7075.0f, -7076.0f, 7077.0f, -7078.0f, 7079.0f, -7080.0f, 7081.0f, -7082.0f, 7083.0f, -7084.0f, 7085.0f, -7086.0f, 7087.0f, -7088.0f, 7089.0f, -7090.0f, 7091.0f, -7092.0f, 7093.0f, -7094.0f, 7095.0f, -7096.0f, 7097.0f, -7098.0f, 7099.0f, -7100.0f, 7101.0f, -7102.0f, 7103.0f, -7104.0f, 7105.0f, -7106.0f, 7107.0f, -7108.0f, 7109.0f, -7110.0f, 7111.0f, -7112.0f, 7113.0f, -7114.0f, 7115.0f, -7116.0f, 7117.0f, -7118.0f, 7119.0f, -7120.0f, 7121.0f, -7122.0f, 7123.0f, -7124.0f, 7125.0f, -7126.0f, 7127.0f, -7128.0f, 7129.0f, -7130.0f, 7131.0f, -7132.0f, 7133.0f, -7134.0f, 7135.0f, -7136.0f, 7137.0f, -7138.0f, 7139.0f, -7140.0f, 7141.0f, -7142.0f, 7143.0f, -7144.0f, 7145.0f, -7146.0f, 7147.0f, -7148.0f, 7149.0f, -7150.0f, 7151.0f, -7152.0f, 7153.0f, -7154.0f, 7155.0f, -7156.0f, 7157.0f, -7158.0f, 7159.0f, -7160.0f, 7161.0f, -7162.0f, 7163.0f, -7164.0f, 7165.0f, -7166.0f, 7167.0f, -7168.0f, 7169.0f, -7170.0f, 7171.0f, -7172.0f, 7173.0f, -7174.0f, 7175.0f, -7176.0f, 7177.0f, -7178.0f, 7179.0f, -7180.0f, 7181.0f, -7182.0f, 7183.0f, -7184.0f, 7185.0f, -7186.0f, 7187.0f, -7188.0f, 7189.0f, -7190.0f, 7191.0f, -7192.0f, 7193.0f, -7194.0f, 7195.0f, -7196.0f, 7197.0f, -7198.0f, 7199.0f, -7200.0f, 7201.0f, -7202.0f, 7203.0f, -7204.0f, 7205.0f, -7206.0f, 7207.0f, -7208.0f, 7209.0f, -7210.0f, 7211.0f, -7212.0f, 7213.0f, -7214.0f, 7215.0f, -7216.0f, 7217.0f, -7218.0f, 7219.0f, -7220.0f, 7221.0f, -7222.0f, 7223.0f, -7224.0f, 7225.0f, -7226.0f, 7227.0f, -7228.0f, 7229.0f, -7230.0f, 7231.0f, -7232.0f, 7233.0f, -7234.0f, 7235.0f, -7236.0f, 7237.0f, -7238.0f, 7239.0f, -7240.0f, 7241.0f, -7242.0f, 7243.0f, -7244.0f, 7245.0f, -7246.0f, 7247.0f, -7248.0f, 7249.0f, -7250.0f, 7251.0f, -7252.0f, 7253.0f, -7254.0f, 7255.0f, -7256.0f, 7257.0f, -7258.0f, 7259.0f, -7260.0f, 7261.0f, -7262.0f, 7263.0f, -7264.0f, 7265.0f, -7266.0f, 7267.0f, -7268.0f, 7269.0f, -7270.0f, 7271.0f, -7272.0f, 7273.0f, -7274.0f, 7275.0f, -7276.0f, 7277.0f, -7278.0f, 7279.0f, -7280.0f, 7281.0f, -7282.0f, 7283.0f, -7284.0f, 7285.0f, -7286.0f, 7287.0f, -7288.0f, 7289.0f, -7290.0f, 7291.0f, -7292.0f, 7293.0f, -7294.0f, 7295.0f, -7296.0f, 7297.0f, -7298.0f, 7299.0f, -7300.0f, 7301.0f, -7302.0f, 7303.0f, -7304.0f, 7305.0f, -7306.0f, 7307.0f, -7308.0f, 7309.0f, -7310.0f, 7311.0f, -7312.0f, 7313.0f, -7314.0f, 7315.0f, -7316.0f, 7317.0f, -7318.0f, 7319.0f, -7320.0f, 7321.0f, -7322.0f, 7323.0f, -7324.0f, 7325.0f, -7326.0f, 7327.0f, -7328.0f, 7329.0f, -7330.0f, 7331.0f, -7332.0f, 7333.0f, -7334.0f, 7335.0f, -7336.0f, 7337.0f, -7338.0f, 7339.0f, -7340.0f, 7341.0f, -7342.0f, 7343.0f, -7344.0f, 7345.0f, -7346.0f, 7347.0f, -7348.0f, 7349.0f, -7350.0f, 7351.0f, -7352.0f, 7353.0f, -7354.0f, 7355.0f, -7356.0f, 7357.0f, -7358.0f, 7359.0f, -7360.0f, 7361.0f, -7362.0f, 7363.0f, -7364.0f, 7365.0f, -7366.0f, 7367.0f, -7368.0f, 7369.0f, -7370.0f, 7371.0f, -7372.0f, 7373.0f, -7374.0f, 7375.0f, -7376.0f, 7377.0f, -7378.0f, 7379.0f, -7380.0f, 7381.0f, -7382.0f, 7383.0f, -7384.0f, 7385.0f, -7386.0f, 7387.0f, -7388.0f, 7389.0f, -7390.0f, 7391.0f, -7392.0f, 7393.0f, -7394.0f, 7395.0f, -7396.0f, 7397.0f, -7398.0f, 7399.0f, -7400.0f, 7401.0f, -7402.0f, 7403.0f, -7404.0f, 7405.0f, -7406.0f, 7407.0f, -7408.0f, 7409.0f, -7410.0f, 7411.0f, -7412.0f, 7413.0f, -7414.0f, 7415.0f, -7416.0f, 7417.0f, -7418.0f, 7419.0f, -7420.0f, 7421.0f, -7422.0f, 7423.0f, -7424.0f, 7425.0f, -7426.0f, 7427.0f, -7428.0f, 7429.0f, -7430.0f, 7431.0f, -7432.0f, 7433.0f, -7434.0f, 7435.0f, -7436.0f, 7437.0f, -7438.0f, 7439.0f, -7440.0f, 7441.0f, -7442.0f, 7443.0f, -7444.0f, 7445.0f, -7446.0f, 7447.0f, -7448.0f, 7449.0f, -7450.0f, 7451.0f, -7452.0f, 7453.0f, -7454.0f, 7455.0f, -7456.0f, 7457.0f, -7458.0f, 7459.0f, -7460.0f, 7461.0f, -7462.0f, 7463.0f, -7464.0f, 7465.0f, -7466.0f, 7467.0f, -7468.0f, 7469.0f, -7470.0f, 7471.0f, -7472.0f, 7473.0f, -7474.0f, 7475.0f, -7476.0f, 7477.0f, -7478.0f, 7479.0f, -7480.0f, 7481.0f, -7482.0f, 7483.0f, -7484.0f, 7485.0f, -7486.0f, 7487.0f, -7488.0f, 7489.0f, -7490.0f, 7491.0f, -7492.0f, 7493.0f, -7494.0f, 7495.0f, -7496.0f, 7497.0f, -7498.0f, 7499.0f, -7500.0f, 7501.0f, -7502.0f, 7503.0f, -7504.0f, 7505.0f, -7506.0f, 7507.0f, -7508.0f, 7509.0f, -7510.0f, 7511.0f, -7512.0f, 7513.0f, -7514.0f, 7515.0f, -7516.0f, 7517.0f, -7518.0f, 7519.0f, -7520.0f, 7521.0f, -7522.0f, 7523.0f, -7524.0f, 7525.0f, -7526.0f, 7527.0f, -7528.0f, 7529.0f, -7530.0f, 7531.0f, -7532.0f, 7533.0f, -7534.0f, 7535.0f, -7536.0f, 7537.0f, -7538.0f, 7539.0f, -7540.0f, 7541.0f, -7542.0f, 7543.0f, -7544.0f, 7545.0f, -7546.0f, 7547.0f, -7548.0f, 7549.0f, -7550.0f, 7551.0f, -7552.0f, 7553.0f, -7554.0f, 7555.0f, -7556.0f, 7557.0f, -7558.0f, 7559.0f, -7560.0f, 7561.0f, -7562.0f, 7563.0f, -7564.0f, 7565.0f, -7566.0f, 7567.0f, -7568.0f, 7569.0f, -7570.0f, 7571.0f, -7572.0f, 7573.0f, -7574.0f, 7575.0f, -7576.0f, 7577.0f, -7578.0f, 7579.0f, -7580.0f, 7581.0f, -7582.0f, 7583.0f, -7584.0f, 7585.0f, -7586.0f, 7587.0f, -7588.0f, 7589.0f, -7590.0f, 7591.0f, -7592.0f, 7593.0f, -7594.0f, 7595.0f, -7596.0f, 7597.0f, -7598.0f, 7599.0f, -7600.0f, 7601.0f, -7602.0f, 7603.0f, -7604.0f, 7605.0f, -7606.0f, 7607.0f, -7608.0f, 7609.0f, -7610.0f, 7611.0f, -7612.0f, 7613.0f, -7614.0f, 7615.0f, -7616.0f, 7617.0f, -7618.0f, 7619.0f, -7620.0f, 7621.0f, -7622.0f, 7623.0f, -7624.0f, 7625.0f, -7626.0f, 7627.0f, -7628.0f, 7629.0f, -7630.0f, 7631.0f, -7632.0f, 7633.0f, -7634.0f, 7635.0f, -7636.0f, 7637.0f, -7638.0f, 7639.0f, -7640.0f, 7641.0f, -7642.0f, 7643.0f, -7644.0f, 7645.0f, -7646.0f, 7647.0f, -7648.0f, 7649.0f, -7650.0f, 7651.0f, -7652.0f, 7653.0f, -7654.0f, 7655.0f, -7656.0f, 7657.0f, -7658.0f, 7659.0f, -7660.0f, 7661.0f, -7662.0f, 7663.0f, -7664.0f, 7665.0f, -7666.0f, 7667.0f, -7668.0f, 7669.0f, -7670.0f, 7671.0f, -7672.0f, 7673.0f, -7674.0f, 7675.0f, -7676.0f, 7677.0f, -7678.0f, 7679.0f, -7680.0f, 7681.0f, -7682.0f, 7683.0f, -7684.0f, 7685.0f, -7686.0f, 7687.0f, -7688.0f, 7689.0f, -7690.0f, 7691.0f, -7692.0f, 7693.0f, -7694.0f, 7695.0f, -7696.0f, 7697.0f, -7698.0f, 7699.0f, -7700.0f, 7701.0f, -7702.0f, 7703.0f, -7704.0f, 7705.0f, -7706.0f, 7707.0f, -7708.0f, 7709.0f, -7710.0f, 7711.0f, -7712.0f, 7713.0f, -7714.0f, 7715.0f, -7716.0f, 7717.0f, -7718.0f, 7719.0f, -7720.0f, 7721.0f, -7722.0f, 7723.0f, -7724.0f, 7725.0f, -7726.0f, 7727.0f, -7728.0f, 7729.0f, -7730.0f, 7731.0f, -7732.0f, 7733.0f, -7734.0f, 7735.0f, -7736.0f, 7737.0f, -7738.0f, 7739.0f, -7740.0f, 7741.0f, -7742.0f, 7743.0f, -7744.0f, 7745.0f, -7746.0f, 7747.0f, -7748.0f, 7749.0f, -7750.0f, 7751.0f, -7752.0f, 7753.0f, -7754.0f, 7755.0f, -7756.0f, 7757.0f, -7758.0f, 7759.0f, -7760.0f, 7761.0f, -7762.0f, 7763.0f, -7764.0f, 7765.0f, -7766.0f, 7767.0f, -7768.0f, 7769.0f, -7770.0f, 7771.0f, -7772.0f, 7773.0f, -7774.0f, 7775.0f, -7776.0f, 7777.0f, -7778.0f, 7779.0f, -7780.0f, 7781.0f, -7782.0f, 7783.0f, -7784.0f, 7785.0f, -7786.0f, 7787.0f, -7788.0f, 7789.0f, -7790.0f, 7791.0f, -7792.0f, 7793.0f, -7794.0f, 7795.0f, -7796.0f, 7797.0f, -7798.0f, 7799.0f, -7800.0f, 7801.0f, -7802.0f, 7803.0f, -7804.0f, 7805.0f, -7806.0f, 7807.0f, -7808.0f, 7809.0f, -7810.0f, 7811.0f, -7812.0f, 7813.0f, -7814.0f, 7815.0f, -7816.0f, 7817.0f, -7818.0f, 7819.0f, -7820.0f, 7821.0f, -7822.0f, 7823.0f, -7824.0f, 7825.0f, -7826.0f, 7827.0f, -7828.0f, 7829.0f, -7830.0f, 7831.0f, -7832.0f, 7833.0f, -7834.0f, 7835.0f, -7836.0f, 7837.0f, -7838.0f, 7839.0f, -7840.0f, 7841.0f, -7842.0f, 7843.0f, -7844.0f, 7845.0f, -7846.0f, 7847.0f, -7848.0f, 7849.0f, -7850.0f, 7851.0f, -7852.0f, 7853.0f, -7854.0f, 7855.0f, -7856.0f, 7857.0f, -7858.0f, 7859.0f, -7860.0f, 7861.0f, -7862.0f, 7863.0f, -7864.0f, 7865.0f, -7866.0f, 7867.0f, -7868.0f, 7869.0f, -7870.0f, 7871.0f, -7872.0f, 7873.0f, -7874.0f, 7875.0f, -7876.0f, 7877.0f, -7878.0f, 7879.0f, -7880.0f, 7881.0f, -7882.0f, 7883.0f, -7884.0f, 7885.0f, -7886.0f, 7887.0f, -7888.0f, 7889.0f, -7890.0f, 7891.0f, -7892.0f, 7893.0f, -7894.0f, 7895.0f, -7896.0f, 7897.0f, -7898.0f, 7899.0f, -7900.0f, 7901.0f, -7902.0f, 7903.0f, -7904.0f, 7905.0f, -7906.0f, 7907.0f, -7908.0f, 7909.0f, -7910.0f, 7911.0f, -7912.0f, 7913.0f, -7914.0f, 7915.0f, -7916.0f, 7917.0f, -7918.0f, 7919.0f, -7920.0f, 7921.0f, -7922.0f, 7923.0f, -7924.0f, 7925.0f, -7926.0f, 7927.0f, -7928.0f, 7929.0f, -7930.0f, 7931.0f, -7932.0f, 7933.0f, -7934.0f, 7935.0f, -7936.0f, 7937.0f, -7938.0f, 7939.0f, -7940.0f, 7941.0f, -7942.0f, 7943.0f, -7944.0f, 7945.0f, -7946.0f, 7947.0f, -7948.0f, 7949.0f, -7950.0f, 7951.0f, -7952.0f, 7953.0f, -7954.0f, 7955.0f, -7956.0f, 7957.0f, -7958.0f, 7959.0f, -7960.0f, 7961.0f, -7962.0f, 7963.0f, -7964.0f, 7965.0f, -7966.0f, 7967.0f, -7968.0f, 7969.0f, -7970.0f, 7971.0f, -7972.0f, 7973.0f, -7974.0f, 7975.0f, -7976.0f, 7977.0f, -7978.0f, 7979.0f, -7980.0f, 7981.0f, -7982.0f, 7983.0f, -7984.0f, 7985.0f, -7986.0f, 7987.0f, -7988.0f, 7989.0f, -7990.0f, 7991.0f, -7992.0f, 7993.0f, -7994.0f, 7995.0f, -7996.0f, 7997.0f, -7998.0f, 7999.0f, -8000.0f, 8001.0f, -8002.0f, 8003.0f, -8004.0f, 8005.0f, -8006.0f, 8007.0f, -8008.0f, 8009.0f, -8010.0f, 8011.0f, -8012.0f, 8013.0f, -8014.0f, 8015.0f, -8016.0f, 8017.0f, -8018.0f, 8019.0f, -8020.0f, 8021.0f, -8022.0f, 8023.0f, -8024.0f, 8025.0f, -8026.0f, 8027.0f, -8028.0f, 8029.0f, -8030.0f, 8031.0f, -8032.0f, 8033.0f, -8034.0f, 8035.0f, -8036.0f, 8037.0f, -8038.0f, 8039.0f, -8040.0f, 8041.0f, -8042.0f, 8043.0f, -8044.0f, 8045.0f, -8046.0f, 8047.0f, -8048.0f, 8049.0f, -8050.0f, 8051.0f, -8052.0f, 8053.0f, -8054.0f, 8055.0f, -8056.0f, 8057.0f, -8058.0f, 8059.0f, -8060.0f, 8061.0f, -8062.0f, 8063.0f, -8064.0f, 8065.0f, -8066.0f, 8067.0f, -8068.0f, 8069.0f, -8070.0f, 8071.0f, -8072.0f, 8073.0f, -8074.0f, 8075.0f, -8076.0f, 8077.0f, -8078.0f, 8079.0f, -8080.0f, 8081.0f, -8082.0f, 8083.0f, -8084.0f, 8085.0f, -8086.0f, 8087.0f, -8088.0f, 8089.0f, -8090.0f, 8091.0f, -8092.0f, 8093.0f, -8094.0f, 8095.0f, -8096.0f, 8097.0f, -8098.0f, 8099.0f, -8100.0f, 8101.0f, -8102.0f, 8103.0f, -8104.0f, 8105.0f, -8106.0f, 8107.0f, -8108.0f, 8109.0f, -8110.0f, 8111.0f, -8112.0f, 8113.0f, -8114.0f, 8115.0f, -8116.0f, 8117.0f, -8118.0f, 8119.0f, -8120.0f, 8121.0f, -8122.0f, 8123.0f, -8124.0f, 8125.0f, -8126.0f, 8127.0f, -8128.0f, 8129.0f, -8130.0f, 8131.0f, -8132.0f, 8133.0f, -8134.0f, 8135.0f, -8136.0f, 8137.0f, -8138.0f, 8139.0f, -8140.0f, 8141.0f, -8142.0f, 8143.0f, -8144.0f, 8145.0f, -8146.0f, 8147.0f, -8148.0f, 8149.0f, -8150.0f, 8151.0f, -8152.0f, 8153.0f, -8154.0f, 8155.0f, -8156.0f, 8157.0f, -8158.0f, 8159.0f, -8160.0f, 8161.0f, -8162.0f, 8163.0f, -8164.0f, 8165.0f, -8166.0f, 8167.0f, -8168.0f, 8169.0f, -8170.0f, 8171.0f, -8172.0f, 8173.0f, -8174.0f, 8175.0f, -8176.0f, 8177.0f, -8178.0f, 8179.0f, -8180.0f, 8181.0f, -8182.0f, 8183.0f, -8184.0f, 8185.0f, -8186.0f, 8187.0f, -8188.0f, 8189.0f, -8190.0f, 8191.0f, -8192.0f, 8193.0f, -8194.0f, 8195.0f, -8196.0f, 8197.0f, -8198.0f, 8199.0f, -8200.0f, 8201.0f, -8202.0f, 8203.0f, -8204.0f, 8205.0f, -8206.0f, 8207.0f, -8208.0f, 8209.0f, -8210.0f, 8211.0f, -8212.0f, 8213.0f, -8214.0f, 8215.0f, -8216.0f, 8217.0f, -8218.0f, 8219.0f, -8220.0f, 8221.0f, -8222.0f, 8223.0f, -8224.0f, 8225.0f, -8226.0f, 8227.0f, -8228.0f, 8229.0f, -8230.0f, 8231.0f, -8232.0f, 8233.0f, -8234.0f, 8235.0f, -8236.0f, 8237.0f, -8238.0f, 8239.0f, -8240.0f, 8241.0f, -8242.0f, 8243.0f, -8244.0f, 8245.0f, -8246.0f, 8247.0f, -8248.0f, 8249.0f, -8250.0f, 8251.0f, -8252.0f, 8253.0f, -8254.0f, 8255.0f, -8256.0f, 8257.0f, -8258.0f, 8259.0f, -8260.0f, 8261.0f, -8262.0f, 8263.0f, -8264.0f, 8265.0f, -8266.0f, 8267.0f, -8268.0f, 8269.0f, -8270.0f, 8271.0f, -8272.0f, 8273.0f, -8274.0f, 8275.0f, -8276.0f, 8277.0f, -8278.0f, 8279.0f, -8280.0f, 8281.0f, -8282.0f, 8283.0f, -8284.0f, 8285.0f, -8286.0f, 8287.0f, -8288.0f, 8289.0f, -8290.0f, 8291.0f, -8292.0f, 8293.0f, -8294.0f, 8295.0f, -8296.0f, 8297.0f, -8298.0f, 8299.0f, -8300.0f, 8301.0f, -8302.0f, 8303.0f, -8304.0f, 8305.0f, -8306.0f, 8307.0f, -8308.0f, 8309.0f, -8310.0f, 8311.0f, -8312.0f, 8313.0f, -8314.0f, 8315.0f, -8316.0f, 8317.0f, -8318.0f, 8319.0f, -8320.0f, 8321.0f, -8322.0f, 8323.0f, -8324.0f, 8325.0f, -8326.0f, 8327.0f, -8328.0f, 8329.0f, -8330.0f, 8331.0f, -8332.0f, 8333.0f, -8334.0f, 8335.0f, -8336.0f, 8337.0f, -8338.0f, 8339.0f, -8340.0f, 8341.0f, -8342.0f, 8343.0f, -8344.0f, 8345.0f, -8346.0f, 8347.0f, -8348.0f, 8349.0f, -8350.0f, 8351.0f, -8352.0f, 8353.0f, -8354.0f, 8355.0f, -8356.0f, 8357.0f, -8358.0f, 8359.0f, -8360.0f, 8361.0f, -8362.0f, 8363.0f, -8364.0f, 8365.0f, -8366.0f, 8367.0f, -8368.0f, 8369.0f, -8370.0f, 8371.0f, -8372.0f, 8373.0f, -8374.0f, 8375.0f, -8376.0f, 8377.0f, -8378.0f, 8379.0f, -8380.0f, 8381.0f, -8382.0f, 8383.0f, -8384.0f, 8385.0f, -8386.0f, 8387.0f, -8388.0f, 8389.0f, -8390.0f, 8391.0f, -8392.0f, 8393.0f, -8394.0f, 8395.0f, -8396.0f, 8397.0f, -8398.0f, 8399.0f, -8400.0f, 8401.0f, -8402.0f, 8403.0f, -8404.0f, 8405.0f, -8406.0f, 8407.0f, -8408.0f, 8409.0f, -8410.0f, 8411.0f, -8412.0f, 8413.0f, -8414.0f, 8415.0f, -8416.0f, 8417.0f, -8418.0f, 8419.0f, -8420.0f, 8421.0f, -8422.0f, 8423.0f, -8424.0f, 8425.0f, -8426.0f, 8427.0f, -8428.0f, 8429.0f, -8430.0f, 8431.0f, -8432.0f, 8433.0f, -8434.0f, 8435.0f, -8436.0f, 8437.0f, -8438.0f, 8439.0f, -8440.0f, 8441.0f, -8442.0f, 8443.0f, -8444.0f, 8445.0f, -8446.0f, 8447.0f, -8448.0f, 8449.0f, -8450.0f, 8451.0f, -8452.0f, 8453.0f, -8454.0f, 8455.0f, -8456.0f, 8457.0f, -8458.0f, 8459.0f, -8460.0f, 8461.0f, -8462.0f, 8463.0f, -8464.0f, 8465.0f, -8466.0f, 8467.0f, -8468.0f, 8469.0f, -8470.0f, 8471.0f, -8472.0f, 8473.0f, -8474.0f, 8475.0f, -8476.0f, 8477.0f, -8478.0f, 8479.0f, -8480.0f, 8481.0f, -8482.0f, 8483.0f, -8484.0f, 8485.0f, -8486.0f, 8487.0f, -8488.0f, 8489.0f, -8490.0f, 8491.0f, -8492.0f, 8493.0f, -8494.0f, 8495.0f, -8496.0f, 8497.0f, -8498.0f, 8499.0f, -8500.0f, 8501.0f, -8502.0f, 8503.0f, -8504.0f, 8505.0f, -8506.0f, 8507.0f, -8508.0f, 8509.0f, -8510.0f, 8511.0f, -8512.0f, 8513.0f, -8514.0f, 8515.0f, -8516.0f, 8517.0f, -8518.0f, 8519.0f, -8520.0f, 8521.0f, -8522.0f, 8523.0f, -8524.0f, 8525.0f, -8526.0f, 8527.0f, -8528.0f, 8529.0f, -8530.0f, 8531.0f, -8532.0f, 8533.0f, -8534.0f, 8535.0f, -8536.0f, 8537.0f, -8538.0f, 8539.0f, -8540.0f, 8541.0f, -8542.0f, 8543.0f, -8544.0f, 8545.0f, -8546.0f, 8547.0f, -8548.0f, 8549.0f, -8550.0f, 8551.0f, -8552.0f, 8553.0f, -8554.0f, 8555.0f, -8556.0f, 8557.0f, -8558.0f, 8559.0f, -8560.0f, 8561.0f, -8562.0f, 8563.0f, -8564.0f, 8565.0f, -8566.0f, 8567.0f, -8568.0f, 8569.0f, -8570.0f, 8571.0f, -8572.0f, 8573.0f, -8574.0f, 8575.0f, -8576.0f, 8577.0f, -8578.0f, 8579.0f, -8580.0f, 8581.0f, -8582.0f, 8583.0f, -8584.0f, 8585.0f, -8586.0f, 8587.0f, -8588.0f, 8589.0f, -8590.0f, 8591.0f, -8592.0f, 8593.0f, -8594.0f, 8595.0f, -8596.0f, 8597.0f, -8598.0f, 8599.0f, -8600.0f, 8601.0f, -8602.0f, 8603.0f, -8604.0f, 8605.0f, -8606.0f, 8607.0f, -8608.0f, 8609.0f, -8610.0f, 8611.0f, -8612.0f, 8613.0f, -8614.0f, 8615.0f, -8616.0f, 8617.0f, -8618.0f, 8619.0f, -8620.0f, 8621.0f, -8622.0f, 8623.0f, -8624.0f, 8625.0f, -8626.0f, 8627.0f, -8628.0f, 8629.0f, -8630.0f, 8631.0f, -8632.0f, 8633.0f, -8634.0f, 8635.0f, -8636.0f, 8637.0f, -8638.0f, 8639.0f, -8640.0f, 8641.0f, -8642.0f, 8643.0f, -8644.0f, 8645.0f, -8646.0f, 8647.0f, -8648.0f, 8649.0f, -8650.0f, 8651.0f, -8652.0f, 8653.0f, -8654.0f, 8655.0f, -8656.0f, 8657.0f, -8658.0f, 8659.0f, -8660.0f, 8661.0f, -8662.0f, 8663.0f, -8664.0f, 8665.0f, -8666.0f, 8667.0f, -8668.0f, 8669.0f, -8670.0f, 8671.0f, -8672.0f, 8673.0f, -8674.0f, 8675.0f, -8676.0f, 8677.0f, -8678.0f, 8679.0f, -8680.0f, 8681.0f, -8682.0f, 8683.0f, -8684.0f, 8685.0f, -8686.0f, 8687.0f, -8688.0f, 8689.0f, -8690.0f, 8691.0f, -8692.0f, 8693.0f, -8694.0f, 8695.0f, -8696.0f, 8697.0f, -8698.0f, 8699.0f, -8700.0f, 8701.0f, -8702.0f, 8703.0f, -8704.0f, 8705.0f, -8706.0f, 8707.0f, -8708.0f, 8709.0f, -8710.0f, 8711.0f, -8712.0f, 8713.0f, -8714.0f, 8715.0f, -8716.0f, 8717.0f, -8718.0f, 8719.0f, -8720.0f, 8721.0f, -8722.0f, 8723.0f, -8724.0f, 8725.0f, -8726.0f, 8727.0f, -8728.0f, 8729.0f, -8730.0f, 8731.0f, -8732.0f, 8733.0f, -8734.0f, 8735.0f, -8736.0f, 8737.0f, -8738.0f, 8739.0f, -8740.0f, 8741.0f, -8742.0f, 8743.0f, -8744.0f, 8745.0f, -8746.0f, 8747.0f, -8748.0f, 8749.0f, -8750.0f, 8751.0f, -8752.0f, 8753.0f, -8754.0f, 8755.0f, -8756.0f, 8757.0f, -8758.0f, 8759.0f, -8760.0f, 8761.0f, -8762.0f, 8763.0f, -8764.0f, 8765.0f, -8766.0f, 8767.0f, -8768.0f, 8769.0f, -8770.0f, 8771.0f, -8772.0f, 8773.0f, -8774.0f, 8775.0f, -8776.0f, 8777.0f, -8778.0f, 8779.0f, -8780.0f, 8781.0f, -8782.0f, 8783.0f, -8784.0f, 8785.0f, -8786.0f, 8787.0f, -8788.0f, 8789.0f, -8790.0f, 8791.0f, -8792.0f, 8793.0f, -8794.0f, 8795.0f, -8796.0f, 8797.0f, -8798.0f, 8799.0f, -8800.0f, 8801.0f, -8802.0f, 8803.0f, -8804.0f, 8805.0f, -8806.0f, 8807.0f, -8808.0f, 8809.0f, -8810.0f, 8811.0f, -8812.0f, 8813.0f, -8814.0f, 8815.0f, -8816.0f, 8817.0f, -8818.0f, 8819.0f, -8820.0f, 8821.0f, -8822.0f, 8823.0f, -8824.0f, 8825.0f, -8826.0f, 8827.0f, -8828.0f, 8829.0f, -8830.0f, 8831.0f, -8832.0f, 8833.0f, -8834.0f, 8835.0f, -8836.0f, 8837.0f, -8838.0f, 8839.0f, -8840.0f, 8841.0f, -8842.0f, 8843.0f, -8844.0f, 8845.0f, -8846.0f, 8847.0f, -8848.0f, 8849.0f, -8850.0f, 8851.0f, -8852.0f, 8853.0f, -8854.0f, 8855.0f, -8856.0f, 8857.0f, -8858.0f, 8859.0f, -8860.0f, 8861.0f, -8862.0f, 8863.0f, -8864.0f, 8865.0f, -8866.0f, 8867.0f, -8868.0f, 8869.0f, -8870.0f, 8871.0f, -8872.0f, 8873.0f, -8874.0f, 8875.0f, -8876.0f, 8877.0f, -8878.0f, 8879.0f, -8880.0f, 8881.0f, -8882.0f, 8883.0f, -8884.0f, 8885.0f, -8886.0f, 8887.0f, -8888.0f, 8889.0f, -8890.0f, 8891.0f, -8892.0f, 8893.0f, -8894.0f, 8895.0f, -8896.0f, 8897.0f, -8898.0f, 8899.0f, -8900.0f, 8901.0f, -8902.0f, 8903.0f, -8904.0f, 8905.0f, -8906.0f, 8907.0f, -8908.0f, 8909.0f, -8910.0f, 8911.0f, -8912.0f, 8913.0f, -8914.0f, 8915.0f, -8916.0f, 8917.0f, -8918.0f, 8919.0f, -8920.0f, 8921.0f, -8922.0f, 8923.0f, -8924.0f, 8925.0f, -8926.0f, 8927.0f, -8928.0f, 8929.0f, -8930.0f, 8931.0f, -8932.0f, 8933.0f, -8934.0f, 8935.0f, -8936.0f, 8937.0f, -8938.0f, 8939.0f, -8940.0f, 8941.0f, -8942.0f, 8943.0f, -8944.0f, 8945.0f, -8946.0f, 8947.0f, -8948.0f, 8949.0f, -8950.0f, 8951.0f, -8952.0f, 8953.0f, -8954.0f, 8955.0f, -8956.0f, 8957.0f, -8958.0f, 8959.0f, -8960.0f, 8961.0f, -8962.0f, 8963.0f, -8964.0f, 8965.0f, -8966.0f, 8967.0f, -8968.0f, 8969.0f, -8970.0f, 8971.0f, -8972.0f, 8973.0f, -8974.0f, 8975.0f, -8976.0f, 8977.0f, -8978.0f, 8979.0f, -8980.0f, 8981.0f, -8982.0f, 8983.0f, -8984.0f, 8985.0f, -8986.0f, 8987.0f, -8988.0f, 8989.0f, -8990.0f, 8991.0f, -8992.0f, 8993.0f, -8994.0f, 8995.0f, -8996.0f, 8997.0f, -8998.0f, 8999.0f, -9000.0f, 9001.0f, -9002.0f, 9003.0f, -9004.0f, 9005.0f, -9006.0f, 9007.0f, -9008.0f, 9009.0f, -9010.0f, 9011.0f, -9012.0f, 9013.0f, -9014.0f, 9015.0f, -9016.0f, 9017.0f, -9018.0f, 9019.0f, -9020.0f, 9021.0f, -9022.0f, 9023.0f, -9024.0f, 9025.0f, -9026.0f, 9027.0f, -9028.0f, 9029.0f, -9030.0f, 9031.0f, -9032.0f, 9033.0f, -9034.0f, 9035.0f, -9036.0f, 9037.0f, -9038.0f, 9039.0f, -9040.0f, 9041.0f, -9042.0f, 9043.0f, -9044.0f, 9045.0f, -9046.0f, 9047.0f, -9048.0f, 9049.0f, -9050.0f, 9051.0f, -9052.0f, 9053.0f, -9054.0f, 9055.0f, -9056.0f, 9057.0f, -9058.0f, 9059.0f, -9060.0f, 9061.0f, -9062.0f, 9063.0f, -9064.0f, 9065.0f, -9066.0f, 9067.0f, -9068.0f, 9069.0f, -9070.0f, 9071.0f, -9072.0f, 9073.0f, -9074.0f, 9075.0f, -9076.0f, 9077.0f, -9078.0f, 9079.0f, -9080.0f, 9081.0f, -9082.0f, 9083.0f, -9084.0f, 9085.0f, -9086.0f, 9087.0f, -9088.0f, 9089.0f, -9090.0f, 9091.0f, -9092.0f, 9093.0f, -9094.0f, 9095.0f, -9096.0f, 9097.0f, -9098.0f, 9099.0f, -9100.0f, 9101.0f, -9102.0f, 9103.0f, -9104.0f, 9105.0f, -9106.0f, 9107.0f, -9108.0f, 9109.0f, -9110.0f, 9111.0f, -9112.0f, 9113.0f, -9114.0f, 9115.0f, -9116.0f, 9117.0f, -9118.0f, 9119.0f, -9120.0f, 9121.0f, -9122.0f, 9123.0f, -9124.0f, 9125.0f, -9126.0f, 9127.0f, -9128.0f, 9129.0f, -9130.0f, 9131.0f, -9132.0f, 9133.0f, -9134.0f, 9135.0f, -9136.0f, 9137.0f, -9138.0f, 9139.0f, -9140.0f, 9141.0f, -9142.0f, 9143.0f, -9144.0f, 9145.0f, -9146.0f, 9147.0f, -9148.0f, 9149.0f, -9150.0f, 9151.0f, -9152.0f, 9153.0f, -9154.0f, 9155.0f, -9156.0f, 9157.0f, -9158.0f, 9159.0f, -9160.0f, 9161.0f, -9162.0f, 9163.0f, -9164.0f, 9165.0f, -9166.0f, 9167.0f, -9168.0f, 9169.0f, -9170.0f, 9171.0f, -9172.0f, 9173.0f, -9174.0f, 9175.0f, -9176.0f, 9177.0f, -9178.0f, 9179.0f, -9180.0f, 9181.0f, -9182.0f, 9183.0f, -9184.0f, 9185.0f, -9186.0f, 9187.0f, -9188.0f, 9189.0f, -9190.0f, 9191.0f, -9192.0f, 9193.0f, -9194.0f, 9195.0f, -9196.0f, 9197.0f, -9198.0f, 9199.0f, -9200.0f, 9201.0f, -9202.0f, 9203.0f, -9204.0f, 9205.0f, -9206.0f, 9207.0f, -9208.0f, 9209.0f, -9210.0f, 9211.0f, -9212.0f, 9213.0f, -9214.0f, 9215.0f, -9216.0f, 9217.0f, -9218.0f, 9219.0f, -9220.0f, 9221.0f, -9222.0f, 9223.0f, -9224.0f, 9225.0f, -9226.0f, 9227.0f, -9228.0f, 9229.0f, -9230.0f, 9231.0f, -9232.0f, 9233.0f, -9234.0f, 9235.0f, -9236.0f, 9237.0f, -9238.0f, 9239.0f, -9240.0f, 9241.0f, -9242.0f, 9243.0f, -9244.0f, 9245.0f, -9246.0f, 9247.0f, -9248.0f, 9249.0f, -9250.0f, 9251.0f, -9252.0f, 9253.0f, -9254.0f, 9255.0f, -9256.0f, 9257.0f, -9258.0f, 9259.0f, -9260.0f, 9261.0f, -9262.0f, 9263.0f, -9264.0f, 9265.0f, -9266.0f, 9267.0f, -9268.0f, 9269.0f, -9270.0f, 9271.0f, -9272.0f, 9273.0f, -9274.0f, 9275.0f, -9276.0f, 9277.0f, -9278.0f, 9279.0f, -9280.0f, 9281.0f, -9282.0f, 9283.0f, -9284.0f, 9285.0f, -9286.0f, 9287.0f, -9288.0f, 9289.0f, -9290.0f, 9291.0f, -9292.0f, 9293.0f, -9294.0f, 9295.0f, -9296.0f, 9297.0f, -9298.0f, 9299.0f, -9300.0f, 9301.0f, -9302.0f, 9303.0f, -9304.0f, 9305.0f, -9306.0f, 9307.0f, -9308.0f, 9309.0f, -9310.0f, 9311.0f, -9312.0f, 9313.0f, -9314.0f, 9315.0f, -9316.0f, 9317.0f, -9318.0f, 9319.0f, -9320.0f, 9321.0f, -9322.0f, 9323.0f, -9324.0f, 9325.0f, -9326.0f, 9327.0f, -9328.0f, 9329.0f, -9330.0f, 9331.0f, -9332.0f, 9333.0f, -9334.0f, 9335.0f, -9336.0f, 9337.0f, -9338.0f, 9339.0f, -9340.0f, 9341.0f, -9342.0f, 9343.0f, -9344.0f, 9345.0f, -9346.0f, 9347.0f, -9348.0f, 9349.0f, -9350.0f, 9351.0f, -9352.0f, 9353.0f, -9354.0f, 9355.0f, -9356.0f, 9357.0f, -9358.0f, 9359.0f, -9360.0f, 9361.0f, -9362.0f, 9363.0f, -9364.0f, 9365.0f, -9366.0f, 9367.0f, -9368.0f, 9369.0f, -9370.0f, 9371.0f, -9372.0f, 9373.0f, -9374.0f, 9375.0f, -9376.0f, 9377.0f, -9378.0f, 9379.0f, -9380.0f, 9381.0f, -9382.0f, 9383.0f, -9384.0f, 9385.0f, -9386.0f, 9387.0f, -9388.0f, 9389.0f, -9390.0f, 9391.0f, -9392.0f, 9393.0f, -9394.0f, 9395.0f, -9396.0f, 9397.0f, -9398.0f, 9399.0f, -9400.0f, 9401.0f, -9402.0f, 9403.0f, -9404.0f, 9405.0f, -9406.0f, 9407.0f, -9408.0f, 9409.0f, -9410.0f, 9411.0f, -9412.0f, 9413.0f, -9414.0f, 9415.0f, -9416.0f, 9417.0f, -9418.0f, 9419.0f, -9420.0f, 9421.0f, -9422.0f, 9423.0f, -9424.0f, 9425.0f, -9426.0f, 9427.0f, -9428.0f, 9429.0f, -9430.0f, 9431.0f, -9432.0f, 9433.0f, -9434.0f, 9435.0f, -9436.0f, 9437.0f, -9438.0f, 9439.0f, -9440.0f, 9441.0f, -9442.0f, 9443.0f, -9444.0f, 9445.0f, -9446.0f, 9447.0f, -9448.0f, 9449.0f, -9450.0f, 9451.0f, -9452.0f, 9453.0f, -9454.0f, 9455.0f, -9456.0f, 9457.0f, -9458.0f, 9459.0f, -9460.0f, 9461.0f, -9462.0f, 9463.0f, -9464.0f, 9465.0f, -9466.0f, 9467.0f, -9468.0f, 9469.0f, -9470.0f, 9471.0f, -9472.0f, 9473.0f, -9474.0f, 9475.0f, -9476.0f, 9477.0f, -9478.0f, 9479.0f, -9480.0f, 9481.0f, -9482.0f, 9483.0f, -9484.0f, 9485.0f, -9486.0f, 9487.0f, -9488.0f, 9489.0f, -9490.0f, 9491.0f, -9492.0f, 9493.0f, -9494.0f, 9495.0f, -9496.0f, 9497.0f, -9498.0f, 9499.0f, -9500.0f, 9501.0f, -9502.0f, 9503.0f, -9504.0f, 9505.0f, -9506.0f, 9507.0f, -9508.0f, 9509.0f, -9510.0f, 9511.0f, -9512.0f, 9513.0f, -9514.0f, 9515.0f, -9516.0f, 9517.0f, -9518.0f, 9519.0f, -9520.0f, 9521.0f, -9522.0f, 9523.0f, -9524.0f, 9525.0f, -9526.0f, 9527.0f, -9528.0f, 9529.0f, -9530.0f, 9531.0f, -9532.0f, 9533.0f, -9534.0f, 9535.0f, -9536.0f, 9537.0f, -9538.0f, 9539.0f, -9540.0f, 9541.0f, -9542.0f, 9543.0f, -9544.0f, 9545.0f, -9546.0f, 9547.0f, -9548.0f, 9549.0f, -9550.0f, 9551.0f, -9552.0f, 9553.0f, -9554.0f, 9555.0f, -9556.0f, 9557.0f, -9558.0f, 9559.0f, -9560.0f, 9561.0f, -9562.0f, 9563.0f, -9564.0f, 9565.0f, -9566.0f, 9567.0f, -9568.0f, 9569.0f, -9570.0f, 9571.0f, -9572.0f, 9573.0f, -9574.0f, 9575.0f, -9576.0f, 9577.0f, -9578.0f, 9579.0f, -9580.0f, 9581.0f, -9582.0f, 9583.0f, -9584.0f, 9585.0f, -9586.0f, 9587.0f, -9588.0f, 9589.0f, -9590.0f, 9591.0f, -9592.0f, 9593.0f, -9594.0f, 9595.0f, -9596.0f, 9597.0f, -9598.0f, 9599.0f, -9600.0f, 9601.0f, -9602.0f, 9603.0f, -9604.0f, 9605.0f, -9606.0f, 9607.0f, -9608.0f, 9609.0f, -9610.0f, 9611.0f, -9612.0f, 9613.0f, -9614.0f, 9615.0f, -9616.0f, 9617.0f, -9618.0f, 9619.0f, -9620.0f, 9621.0f, -9622.0f, 9623.0f, -9624.0f, 9625.0f, -9626.0f, 9627.0f, -9628.0f, 9629.0f, -9630.0f, 9631.0f, -9632.0f, 9633.0f, -9634.0f, 9635.0f, -9636.0f, 9637.0f, -9638.0f, 9639.0f, -9640.0f, 9641.0f, -9642.0f, 9643.0f, -9644.0f, 9645.0f, -9646.0f, 9647.0f, -9648.0f, 9649.0f, -9650.0f, 9651.0f, -9652.0f, 9653.0f, -9654.0f, 9655.0f, -9656.0f, 9657.0f, -9658.0f, 9659.0f, -9660.0f, 9661.0f, -9662.0f, 9663.0f, -9664.0f, 9665.0f, -9666.0f, 9667.0f, -9668.0f, 9669.0f, -9670.0f, 9671.0f, -9672.0f, 9673.0f, -9674.0f, 9675.0f, -9676.0f, 9677.0f, -9678.0f, 9679.0f, -9680.0f, 9681.0f, -9682.0f, 9683.0f, -9684.0f, 9685.0f, -9686.0f, 9687.0f, -9688.0f, 9689.0f, -9690.0f, 9691.0f, -9692.0f, 9693.0f, -9694.0f, 9695.0f, -9696.0f, 9697.0f, -9698.0f, 9699.0f, -9700.0f, 9701.0f, -9702.0f, 9703.0f, -9704.0f, 9705.0f, -9706.0f, 9707.0f, -9708.0f, 9709.0f, -9710.0f, 9711.0f, -9712.0f, 9713.0f, -9714.0f, 9715.0f, -9716.0f, 9717.0f, -9718.0f, 9719.0f, -9720.0f, 9721.0f, -9722.0f, 9723.0f, -9724.0f, 9725.0f, -9726.0f, 9727.0f, -9728.0f, 9729.0f, -9730.0f, 9731.0f, -9732.0f, 9733.0f, -9734.0f, 9735.0f, -9736.0f, 9737.0f, -9738.0f, 9739.0f, -9740.0f, 9741.0f, -9742.0f, 9743.0f, -9744.0f, 9745.0f, -9746.0f, 9747.0f, -9748.0f, 9749.0f, -9750.0f, 9751.0f, -9752.0f, 9753.0f, -9754.0f, 9755.0f, -9756.0f, 9757.0f, -9758.0f, 9759.0f, -9760.0f, 9761.0f, -9762.0f, 9763.0f, -9764.0f, 9765.0f, -9766.0f, 9767.0f, -9768.0f, 9769.0f, -9770.0f, 9771.0f, -9772.0f, 9773.0f, -9774.0f, 9775.0f, -9776.0f, 9777.0f, -9778.0f, 9779.0f, -9780.0f, 9781.0f, -9782.0f, 9783.0f, -9784.0f, 9785.0f, -9786.0f, 9787.0f, -9788.0f, 9789.0f, -9790.0f, 9791.0f, -9792.0f, 9793.0f, -9794.0f, 9795.0f, -9796.0f, 9797.0f, -9798.0f, 9799.0f, -9800.0f, 9801.0f, -9802.0f, 9803.0f, -9804.0f, 9805.0f, -9806.0f, 9807.0f, -9808.0f, 9809.0f, -9810.0f, 9811.0f, -9812.0f, 9813.0f, -9814.0f, 9815.0f, -9816.0f, 9817.0f, -9818.0f, 9819.0f, -9820.0f, 9821.0f, -9822.0f, 9823.0f, -9824.0f, 9825.0f, -9826.0f, 9827.0f, -9828.0f, 9829.0f, -9830.0f, 9831.0f, -9832.0f, 9833.0f, -9834.0f, 9835.0f, -9836.0f, 9837.0f, -9838.0f, 9839.0f, -9840.0f, 9841.0f, -9842.0f, 9843.0f, -9844.0f, 9845.0f, -9846.0f, 9847.0f, -9848.0f, 9849.0f, -9850.0f, 9851.0f, -9852.0f, 9853.0f, -9854.0f, 9855.0f, -9856.0f, 9857.0f, -9858.0f, 9859.0f, -9860.0f, 9861.0f, -9862.0f, 9863.0f, -9864.0f, 9865.0f, -9866.0f, 9867.0f, -9868.0f, 9869.0f, -9870.0f, 9871.0f, -9872.0f, 9873.0f, -9874.0f, 9875.0f, -9876.0f, 9877.0f, -9878.0f, 9879.0f, -9880.0f, 9881.0f, -9882.0f, 9883.0f, -9884.0f, 9885.0f, -9886.0f, 9887.0f, -9888.0f, 9889.0f, -9890.0f, 9891.0f, -9892.0f, 9893.0f, -9894.0f, 9895.0f, -9896.0f, 9897.0f, -9898.0f, 9899.0f, -9900.0f, 9901.0f, -9902.0f, 9903.0f, -9904.0f, 9905.0f, -9906.0f, 9907.0f, -9908.0f, 9909.0f, -9910.0f, 9911.0f, -9912.0f, 9913.0f, -9914.0f, 9915.0f, -9916.0f, 9917.0f, -9918.0f, 9919.0f, -9920.0f, 9921.0f, -9922.0f, 9923.0f, -9924.0f, 9925.0f, -9926.0f, 9927.0f, -9928.0f, 9929.0f, -9930.0f, 9931.0f, -9932.0f, 9933.0f, -9934.0f, 9935.0f, -9936.0f, 9937.0f, -9938.0f, 9939.0f, -9940.0f, 9941.0f, -9942.0f, 9943.0f, -9944.0f, 9945.0f, -9946.0f, 9947.0f, -9948.0f, 9949.0f, -9950.0f, 9951.0f, -9952.0f, 9953.0f, -9954.0f, 9955.0f, -9956.0f, 9957.0f, -9958.0f, 9959.0f, -9960.0f, 9961.0f, -9962.0f, 9963.0f, -9964.0f, 9965.0f, -9966.0f, 9967.0f, -9968.0f, 9969.0f, -9970.0f, 9971.0f, -9972.0f, 9973.0f, -9974.0f, 9975.0f, -9976.0f, 9977.0f, -9978.0f, 9979.0f, -9980.0f, 9981.0f, -9982.0f, 9983.0f, -9984.0f, 9985.0f, -9986.0f, 9987.0f, -9988.0f, 9989.0f, -9990.0f, 9991.0f, -9992.0f, 9993.0f, -9994.0f, 9995.0f, -9996.0f, 9997.0f, -9998.0f, 9999.0f, -10000.0f, 10001.0f, -10002.0f, 10003.0f, -10004.0f, 10005.0f, -10006.0f, 10007.0f, -10008.0f, 10009.0f, -10010.0f, 10011.0f, -10012.0f, 10013.0f, -10014.0f, 10015.0f, -10016.0f, 10017.0f, -10018.0f, 10019.0f, -10020.0f, 10021.0f, -10022.0f, 10023.0f, -10024.0f, 10025.0f, -10026.0f, 10027.0f, -10028.0f, 10029.0f, -10030.0f, 10031.0f, -10032.0f, 10033.0f, -10034.0f, 10035.0f, -10036.0f, 10037.0f, -10038.0f, 10039.0f, -10040.0f, 10041.0f, -10042.0f, 10043.0f, -10044.0f, 10045.0f, -10046.0f, 10047.0f, -10048.0f, 10049.0f, -10050.0f, 10051.0f, -10052.0f, 10053.0f, -10054.0f, 10055.0f, -10056.0f, 10057.0f, -10058.0f, 10059.0f, -10060.0f, 10061.0f, -10062.0f, 10063.0f, -10064.0f, 10065.0f, -10066.0f, 10067.0f, -10068.0f, 10069.0f, -10070.0f, 10071.0f, -10072.0f, 10073.0f, -10074.0f, 10075.0f, -10076.0f, 10077.0f, -10078.0f, 10079.0f, -10080.0f, 10081.0f, -10082.0f, 10083.0f, -10084.0f, 10085.0f, -10086.0f, 10087.0f, -10088.0f, 10089.0f, -10090.0f, 10091.0f, -10092.0f, 10093.0f, -10094.0f, 10095.0f, -10096.0f, 10097.0f, -10098.0f, 10099.0f, -10100.0f, 10101.0f, -10102.0f, 10103.0f, -10104.0f, 10105.0f, -10106.0f, 10107.0f, -10108.0f, 10109.0f, -10110.0f, 10111.0f, -10112.0f, 10113.0f, -10114.0f, 10115.0f, -10116.0f, 10117.0f, -10118.0f, 10119.0f, -10120.0f, 10121.0f, -10122.0f, 10123.0f, -10124.0f, 10125.0f, -10126.0f, 10127.0f, -10128.0f, 10129.0f, -10130.0f, 10131.0f, -10132.0f, 10133.0f, -10134.0f, 10135.0f, -10136.0f, 10137.0f, -10138.0f, 10139.0f, -10140.0f, 10141.0f, -10142.0f, 10143.0f, -10144.0f, 10145.0f, -10146.0f, 10147.0f, -10148.0f, 10149.0f, -10150.0f, 10151.0f, -10152.0f, 10153.0f, -10154.0f, 10155.0f, -10156.0f, 10157.0f, -10158.0f, 10159.0f, -10160.0f, 10161.0f, -10162.0f, 10163.0f, -10164.0f, 10165.0f, -10166.0f, 10167.0f, -10168.0f, 10169.0f, -10170.0f, 10171.0f, -10172.0f, 10173.0f, -10174.0f, 10175.0f, -10176.0f, 10177.0f, -10178.0f, 10179.0f, -10180.0f, 10181.0f, -10182.0f, 10183.0f, -10184.0f, 10185.0f, -10186.0f, 10187.0f, -10188.0f, 10189.0f, -10190.0f, 10191.0f, -10192.0f, 10193.0f, -10194.0f, 10195.0f, -10196.0f, 10197.0f, -10198.0f, 10199.0f, -10200.0f, 10201.0f, -10202.0f, 10203.0f, -10204.0f, 10205.0f, -10206.0f, 10207.0f, -10208.0f, 10209.0f, -10210.0f, 10211.0f, -10212.0f, 10213.0f, -10214.0f, 10215.0f, -10216.0f, 10217.0f, -10218.0f, 10219.0f, -10220.0f, 10221.0f, -10222.0f, 10223.0f, -10224.0f, 10225.0f, -10226.0f, 10227.0f, -10228.0f, 10229.0f, -10230.0f, 10231.0f, -10232.0f, 10233.0f, -10234.0f, 10235.0f, -10236.0f, 10237.0f, -10238.0f, 10239.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0, 1, 0, 3, 0, 5, 0, 7, 0, 9, 0, 11, 0, 13, 0, 15, 0, 17, 0, 19, 0, 21, 0, 23, 0, 25, 0, 27, 0, 29, 0, 31, 0, 33, 0, 35, 0, 37, 0, 39, 0, 41, 0, 43, 0, 45, 0, 47, 0, 49, 0, 51, 0, 53, 0, 55, 0, 57, 0, 59, 0, 61, 0, 63, 0, 65, 0, 67, 0, 69, 0, 71, 0, 73, 0, 75, 0, 77, 0, 79, 0, 81, 0, 83, 0, 85, 0, 87, 0, 89, 0, 91, 0, 93, 0, 95, 0, 97, 0, 99, 0, 101, 0, 103, 0, 105, 0, 107, 0, 109, 0, 111, 0, 113, 0, 115, 0, 117, 0, 119, 0, 121, 0, 123, 0, 125, 0, 127, 0, 129, 0, 131, 0, 133, 0, 135, 0, 137, 0, 139, 0, 141, 0, 143, 0, 145, 0, 147, 0, 149, 0, 151, 0, 153, 0, 155, 0, 157, 0, 159, 0, 161, 0, 163, 0, 165, 0, 167, 0, 169, 0, 171, 0, 173, 0, 175, 0, 177, 0, 179, 0, 181, 0, 183, 0, 185, 0, 187, 0, 189, 0, 191, 0, 193, 0, 195, 0, 197, 0, 199, 0, 201, 0, 203, 0, 205, 0, 207, 0, 209, 0, 211, 0, 213, 0, 215, 0, 217, 0, 219, 0, 221, 0, 223, 0, 225, 0, 227, 0, 229, 0, 231, 0, 233, 0, 235, 0, 237, 0, 239, 0, 241, 0, 243, 0, 245, 0, 247, 0, 249, 0, 251, 0, 253, 0, 255, 0, 257, 0, 259, 0, 261, 0, 263, 0, 265, 0, 267, 0, 269, 0, 271, 0, 273, 0, 275, 0, 277, 0, 279, 0, 281, 0, 283, 0, 285, 0, 287, 0, 289, 0, 291, 0, 293, 0, 295, 0, 297, 0, 299, 0, 301, 0, 303, 0, 305, 0, 307, 0, 309, 0, 311, 0, 313, 0, 315, 0, 317, 0, 319, 0, 321, 0, 323, 0, 325, 0, 327, 0, 329, 0, 331, 0, 333, 0, 335, 0, 337, 0, 339, 0, 341, 0, 343, 0, 345, 0, 347, 0, 349, 0, 351, 0, 353, 0, 355, 0, 357, 0, 359, 0, 361, 0, 363, 0, 365, 0, 367, 0, 369, 0, 371, 0, 373, 0, 375, 0, 377, 0, 379, 0, 381, 0, 383, 0, 385, 0, 387, 0, 389, 0, 391, 0, 393, 0, 395, 0, 397, 0, 399, 0, 401, 0, 403, 0, 405, 0, 407, 0, 409, 0, 411, 0, 413, 0, 415, 0, 417, 0, 419, 0, 421, 0, 423, 0, 425, 0, 427, 0, 429, 0, 431, 0, 433, 0, 435, 0, 437, 0, 439, 0, 441, 0, 443, 0, 445, 0, 447, 0, 449, 0, 451, 0, 453, 0, 455, 0, 457, 0, 459, 0, 461, 0, 463, 0, 465, 0, 467, 0, 469, 0, 471, 0, 473, 0, 475, 0, 477, 0, 479, 0, 481, 0, 483, 0, 485, 0, 487, 0, 489, 0, 491, 0, 493, 0, 495, 0, 497, 0, 499, 0, 501, 0, 503, 0, 505, 0, 507, 0, 509, 0, 511, 0, 513, 0, 515, 0, 517, 0, 519, 0, 521, 0, 523, 0, 525, 0, 527, 0, 529, 0, 531, 0, 533, 0, 535, 0, 537, 0, 539, 0, 541, 0, 543, 0, 545, 0, 547, 0, 549, 0, 551, 0, 553, 0, 555, 0, 557, 0, 559, 0, 561, 0, 563, 0, 565, 0, 567, 0, 569, 0, 571, 0, 573, 0, 575, 0, 577, 0, 579, 0, 581, 0, 583, 0, 585, 0, 587, 0, 589, 0, 591, 0, 593, 0, 595, 0, 597, 0, 599, 0, 601, 0, 603, 0, 605, 0, 607, 0, 609, 0, 611, 0, 613, 0, 615, 0, 617, 0, 619, 0, 621, 0, 623, 0, 625, 0, 627, 0, 629, 0, 631, 0, 633, 0, 635, 0, 637, 0, 639, 0, 641, 0, 643, 0, 645, 0, 647, 0, 649, 0, 651, 0, 653, 0, 655, 0, 657, 0, 659, 0, 661, 0, 663, 0, 665, 0, 667, 0, 669, 0, 671, 0, 673, 0, 675, 0, 677, 0, 679, 0, 681, 0, 683, 0, 685, 0, 687, 0, 689, 0, 691, 0, 693, 0, 695, 0, 697, 0, 699, 0, 701, 0, 703, 0, 705, 0, 707, 0, 709, 0, 711, 0, 713, 0, 715, 0, 717, 0, 719, 0, 721, 0, 723, 0, 725, 0, 727, 0, 729, 0, 731, 0, 733, 0, 735, 0, 737, 0, 739, 0, 741, 0, 743, 0, 745, 0, 747, 0, 749, 0, 751, 0, 753, 0, 755, 0, 757, 0, 759, 0, 761, 0, 763, 0, 765, 0, 767, 0, 769, 0, 771, 0, 773, 0, 775, 0, 777, 0, 779, 0, 781, 0, 783, 0, 785, 0, 787, 0, 789, 0, 791, 0, 793, 0, 795, 0, 797, 0, 799, 0, 801, 0, 803, 0, 805, 0, 807, 0, 809, 0, 811, 0, 813, 0, 815, 0, 817, 0, 819, 0, 821, 0, 823, 0, 825, 0, 827, 0, 829, 0, 831, 0, 833, 0, 835, 0, 837, 0, 839, 0, 841, 0, 843, 0, 845, 0, 847, 0, 849, 0, 851, 0, 853, 0, 855, 0, 857, 0, 859, 0, 861, 0, 863, 0, 865, 0, 867, 0, 869, 0, 871, 0, 873, 0, 875, 0, 877, 0, 879, 0, 881, 0, 883, 0, 885, 0, 887, 0, 889, 0, 891, 0, 893, 0, 895, 0, 897, 0, 899, 0, 901, 0, 903, 0, 905, 0, 907, 0, 909, 0, 911, 0, 913, 0, 915, 0, 917, 0, 919, 0, 921, 0, 923, 0, 925, 0, 927, 0, 929, 0, 931, 0, 933, 0, 935, 0, 937, 0, 939, 0, 941, 0, 943, 0, 945, 0, 947, 0, 949, 0, 951, 0, 953, 0, 955, 0, 957, 0, 959, 0, 961, 0, 963, 0, 965, 0, 967, 0, 969, 0, 971, 0, 973, 0, 975, 0, 977, 0, 979, 0, 981, 0, 983, 0, 985, 0, 987, 0, 989, 0, 991, 0, 993, 0, 995, 0, 997, 0, 999, 0, 1001, 0, 1003, 0, 1005, 0, 1007, 0, 1009, 0, 1011, 0, 1013, 0, 1015, 0, 1017, 0, 1019, 0, 1021, 0, 1023, 0, 1025, 0, 1027, 0, 1029, 0, 1031, 0, 1033, 0, 1035, 0, 1037, 0, 1039, 0, 1041, 0, 1043, 0, 1045, 0, 1047, 0, 1049, 0, 1051, 0, 1053, 0, 1055, 0, 1057, 0, 1059, 0, 1061, 0, 1063, 0, 1065, 0, 1067, 0, 1069, 0, 1071, 0, 1073, 0, 1075, 0, 1077, 0, 1079, 0, 1081, 0, 1083, 0, 1085, 0, 1087, 0, 1089, 0, 1091, 0, 1093, 0, 1095, 0, 1097, 0, 1099, 0, 1101, 0, 1103, 0, 1105, 0, 1107, 0, 1109, 0, 1111, 0, 1113, 0, 1115, 0, 1117, 0, 1119, 0, 1121, 0, 1123, 0, 1125, 0, 1127, 0, 1129, 0, 1131, 0, 1133, 0, 1135, 0, 1137, 0, 1139, 0, 1141, 0, 1143, 0, 1145, 0, 1147, 0, 1149, 0, 1151, 0, 1153, 0, 1155, 0, 1157, 0, 1159, 0, 1161, 0, 1163, 0, 1165, 0, 1167, 0, 1169, 0, 1171, 0, 1173, 0, 1175, 0, 1177, 0, 1179, 0, 1181, 0, 1183, 0, 1185, 0, 1187, 0, 1189, 0, 1191, 0, 1193, 0, 1195, 0, 1197, 0, 1199, 0, 1201, 0, 1203, 0, 1205, 0, 1207, 0, 1209, 0, 1211, 0, 1213, 0, 1215, 0, 1217, 0, 1219, 0, 1221, 0, 1223, 0, 1225, 0, 1227, 0, 1229, 0, 1231, 0, 1233, 0, 1235, 0, 1237, 0, 1239, 0, 1241, 0, 1243, 0, 1245, 0, 1247, 0, 1249, 0, 1251, 0, 1253, 0, 1255, 0, 1257, 0, 1259, 0, 1261, 0, 1263, 0, 1265, 0, 1267, 0, 1269, 0, 1271, 0, 1273, 0, 1275, 0, 1277, 0, 1279, 0, 1281, 0, 1283, 0, 1285, 0, 1287, 0, 1289, 0, 1291, 0, 1293, 0, 1295, 0, 1297, 0, 1299, 0, 1301, 0, 1303, 0, 1305, 0, 1307, 0, 1309, 0, 1311, 0, 1313, 0, 1315, 0, 1317, 0, 1319, 0, 1321, 0, 1323, 0, 1325, 0, 1327, 0, 1329, 0, 1331, 0, 1333, 0, 1335, 0, 1337, 0, 1339, 0, 1341, 0, 1343, 0, 1345, 0, 1347, 0, 1349, 0, 1351, 0, 1353, 0, 1355, 0, 1357, 0, 1359, 0, 1361, 0, 1363, 0, 1365, 0, 1367, 0, 1369, 0, 1371, 0, 1373, 0, 1375, 0, 1377, 0, 1379, 0, 1381, 0, 1383, 0, 1385, 0, 1387, 0, 1389, 0, 1391, 0, 1393, 0, 1395, 0, 1397, 0, 1399, 0, 1401, 0, 1403, 0, 1405, 0, 1407, 0, 1409, 0, 1411, 0, 1413, 0, 1415, 0, 1417, 0, 1419, 0, 1421, 0, 1423, 0, 1425, 0, 1427, 0, 1429, 0, 1431, 0, 1433, 0, 1435, 0, 1437, 0, 1439, 0, 1441, 0, 1443, 0, 1445, 0, 1447, 0, 1449, 0, 1451, 0, 1453, 0, 1455, 0, 1457, 0, 1459, 0, 1461, 0, 1463, 0, 1465, 0, 1467, 0, 1469, 0, 1471, 0, 1473, 0, 1475, 0, 1477, 0, 1479, 0, 1481, 0, 1483, 0, 1485, 0, 1487, 0, 1489, 0, 1491, 0, 1493, 0, 1495, 0, 1497, 0, 1499, 0, 1501, 0, 1503, 0, 1505, 0, 1507, 0, 1509, 0, 1511, 0, 1513, 0, 1515, 0, 1517, 0, 1519, 0, 1521, 0, 1523, 0, 1525, 0, 1527, 0, 1529, 0, 1531, 0, 1533, 0, 1535, 0, 1537, 0, 1539, 0, 1541, 0, 1543, 0, 1545, 0, 1547, 0, 1549, 0, 1551, 0, 1553, 0, 1555, 0, 1557, 0, 1559, 0, 1561, 0, 1563, 0, 1565, 0, 1567, 0, 1569, 0, 1571, 0, 1573, 0, 1575, 0, 1577, 0, 1579, 0, 1581, 0, 1583, 0, 1585, 0, 1587, 0, 1589, 0, 1591, 0, 1593, 0, 1595, 0, 1597, 0, 1599, 0, 1601, 0, 1603, 0, 1605, 0, 1607, 0, 1609, 0, 1611, 0, 1613, 0, 1615, 0, 1617, 0, 1619, 0, 1621, 0, 1623, 0, 1625, 0, 1627, 0, 1629, 0, 1631, 0, 1633, 0, 1635, 0, 1637, 0, 1639, 0, 1641, 0, 1643, 0, 1645, 0, 1647, 0, 1649, 0, 1651, 0, 1653, 0, 1655, 0, 1657, 0, 1659, 0, 1661, 0, 1663, 0, 1665, 0, 1667, 0, 1669, 0, 1671, 0, 1673, 0, 1675, 0, 1677, 0, 1679, 0, 1681, 0, 1683, 0, 1685, 0, 1687, 0, 1689, 0, 1691, 0, 1693, 0, 1695, 0, 1697, 0, 1699, 0, 1701, 0, 1703, 0, 1705, 0, 1707, 0, 1709, 0, 1711, 0, 1713, 0, 1715, 0, 1717, 0, 1719, 0, 1721, 0, 1723, 0, 1725, 0, 1727, 0, 1729, 0, 1731, 0, 1733, 0, 1735, 0, 1737, 0, 1739, 0, 1741, 0, 1743, 0, 1745, 0, 1747, 0, 1749, 0, 1751, 0, 1753, 0, 1755, 0, 1757, 0, 1759, 0, 1761, 0, 1763, 0, 1765, 0, 1767, 0, 1769, 0, 1771, 0, 1773, 0, 1775, 0, 1777, 0, 1779, 0, 1781, 0, 1783, 0, 1785, 0, 1787, 0, 1789, 0, 1791, 0, 1793, 0, 1795, 0, 1797, 0, 1799, 0, 1801, 0, 1803, 0, 1805, 0, 1807, 0, 1809, 0, 1811, 0, 1813, 0, 1815, 0, 1817, 0, 1819, 0, 1821, 0, 1823, 0, 1825, 0, 1827, 0, 1829, 0, 1831, 0, 1833, 0, 1835, 0, 1837, 0, 1839, 0, 1841, 0, 1843, 0, 1845, 0, 1847, 0, 1849, 0, 1851, 0, 1853, 0, 1855, 0, 1857, 0, 1859, 0, 1861, 0, 1863, 0, 1865, 0, 1867, 0, 1869, 0, 1871, 0, 1873, 0, 1875, 0, 1877, 0, 1879, 0, 1881, 0, 1883, 0, 1885, 0, 1887, 0, 1889, 0, 1891, 0, 1893, 0, 1895, 0, 1897, 0, 1899, 0, 1901, 0, 1903, 0, 1905, 0, 1907, 0, 1909, 0, 1911, 0, 1913, 0, 1915, 0, 1917, 0, 1919, 0, 1921, 0, 1923, 0, 1925, 0, 1927, 0, 1929, 0, 1931, 0, 1933, 0, 1935, 0, 1937, 0, 1939, 0, 1941, 0, 1943, 0, 1945, 0, 1947, 0, 1949, 0, 1951, 0, 1953, 0, 1955, 0, 1957, 0, 1959, 0, 1961, 0, 1963, 0, 1965, 0, 1967, 0, 1969, 0, 1971, 0, 1973, 0, 1975, 0, 1977, 0, 1979, 0, 1981, 0, 1983, 0, 1985, 0, 1987, 0, 1989, 0, 1991, 0, 1993, 0, 1995, 0, 1997, 0, 1999, 0, 2001, 0, 2003, 0, 2005, 0, 2007, 0, 2009, 0, 2011, 0, 2013, 0, 2015, 0, 2017, 0, 2019, 0, 2021, 0, 2023, 0, 2025, 0, 2027, 0, 2029, 0, 2031, 0, 2033, 0, 2035, 0, 2037, 0, 2039, 0, 2041, 0, 2043, 0, 2045, 0, 2047, 0, 2049, 0, 2051, 0, 2053, 0, 2055, 0, 2057, 0, 2059, 0, 2061, 0, 2063, 0, 2065, 0, 2067, 0, 2069, 0, 2071, 0, 2073, 0, 2075, 0, 2077, 0, 2079, 0, 2081, 0, 2083, 0, 2085, 0, 2087, 0, 2089, 0, 2091, 0, 2093, 0, 2095, 0, 2097, 0, 2099, 0, 2101, 0, 2103, 0, 2105, 0, 2107, 0, 2109, 0, 2111, 0, 2113, 0, 2115, 0, 2117, 0, 2119, 0, 2121, 0, 2123, 0, 2125, 0, 2127, 0, 2129, 0, 2131, 0, 2133, 0, 2135, 0, 2137, 0, 2139, 0, 2141, 0, 2143, 0, 2145, 0, 2147, 0, 2149, 0, 2151, 0, 2153, 0, 2155, 0, 2157, 0, 2159, 0, 2161, 0, 2163, 0, 2165, 0, 2167, 0, 2169, 0, 2171, 0, 2173, 0, 2175, 0, 2177, 0, 2179, 0, 2181, 0, 2183, 0, 2185, 0, 2187, 0, 2189, 0, 2191, 0, 2193, 0, 2195, 0, 2197, 0, 2199, 0, 2201, 0, 2203, 0, 2205, 0, 2207, 0, 2209, 0, 2211, 0, 2213, 0, 2215, 0, 2217, 0, 2219, 0, 2221, 0, 2223, 0, 2225, 0, 2227, 0, 2229, 0, 2231, 0, 2233, 0, 2235, 0, 2237, 0, 2239, 0, 2241, 0, 2243, 0, 2245, 0, 2247, 0, 2249, 0, 2251, 0, 2253, 0, 2255, 0, 2257, 0, 2259, 0, 2261, 0, 2263, 0, 2265, 0, 2267, 0, 2269, 0, 2271, 0, 2273, 0, 2275, 0, 2277, 0, 2279, 0, 2281, 0, 2283, 0, 2285, 0, 2287, 0, 2289, 0, 2291, 0, 2293, 0, 2295, 0, 2297, 0, 2299, 0, 2301, 0, 2303, 0, 2305, 0, 2307, 0, 2309, 0, 2311, 0, 2313, 0, 2315, 0, 2317, 0, 2319, 0, 2321, 0, 2323, 0, 2325, 0, 2327, 0, 2329, 0, 2331, 0, 2333, 0, 2335, 0, 2337, 0, 2339, 0, 2341, 0, 2343, 0, 2345, 0, 2347, 0, 2349, 0, 2351, 0, 2353, 0, 2355, 0, 2357, 0, 2359, 0, 2361, 0, 2363, 0, 2365, 0, 2367, 0, 2369, 0, 2371, 0, 2373, 0, 2375, 0, 2377, 0, 2379, 0, 2381, 0, 2383, 0, 2385, 0, 2387, 0, 2389, 0, 2391, 0, 2393, 0, 2395, 0, 2397, 0, 2399, 0, 2401, 0, 2403, 0, 2405, 0, 2407, 0, 2409, 0, 2411, 0, 2413, 0, 2415, 0, 2417, 0, 2419, 0, 2421, 0, 2423, 0, 2425, 0, 2427, 0, 2429, 0, 2431, 0, 2433, 0, 2435, 0, 2437, 0, 2439, 0, 2441, 0, 2443, 0, 2445, 0, 2447, 0, 2449, 0, 2451, 0, 2453, 0, 2455, 0, 2457, 0, 2459, 0, 2461, 0, 2463, 0, 2465, 0, 2467, 0, 2469, 0, 2471, 0, 2473, 0, 2475, 0, 2477, 0, 2479, 0, 2481, 0, 2483, 0, 2485, 0, 2487, 0, 2489, 0, 2491, 0, 2493, 0, 2495, 0, 2497, 0, 2499, 0, 2501, 0, 2503, 0, 2505, 0, 2507, 0, 2509, 0, 2511, 0, 2513, 0, 2515, 0, 2517, 0, 2519, 0, 2521, 0, 2523, 0, 2525, 0, 2527, 0, 2529, 0, 2531, 0, 2533, 0, 2535, 0, 2537, 0, 2539, 0, 2541, 0, 2543, 0, 2545, 0, 2547, 0, 2549, 0, 2551, 0, 2553, 0, 2555, 0, 2557, 0, 2559, 0, 2561, 0, 2563, 0, 2565, 0, 2567, 0, 2569, 0, 2571, 0, 2573, 0, 2575, 0, 2577, 0, 2579, 0, 2581, 0, 2583, 0, 2585, 0, 2587, 0, 2589, 0, 2591, 0, 2593, 0, 2595, 0, 2597, 0, 2599, 0, 2601, 0, 2603, 0, 2605, 0, 2607, 0, 2609, 0, 2611, 0, 2613, 0, 2615, 0, 2617, 0, 2619, 0, 2621, 0, 2623, 0, 2625, 0, 2627, 0, 2629, 0, 2631, 0, 2633, 0, 2635, 0, 2637, 0, 2639, 0, 2641, 0, 2643, 0, 2645, 0, 2647, 0, 2649, 0, 2651, 0, 2653, 0, 2655, 0, 2657, 0, 2659, 0, 2661, 0, 2663, 0, 2665, 0, 2667, 0, 2669, 0, 2671, 0, 2673, 0, 2675, 0, 2677, 0, 2679, 0, 2681, 0, 2683, 0, 2685, 0, 2687, 0, 2689, 0, 2691, 0, 2693, 0, 2695, 0, 2697, 0, 2699, 0, 2701, 0, 2703, 0, 2705, 0, 2707, 0, 2709, 0, 2711, 0, 2713, 0, 2715, 0, 2717, 0, 2719, 0, 2721, 0, 2723, 0, 2725, 0, 2727, 0, 2729, 0, 2731, 0, 2733, 0, 2735, 0, 2737, 0, 2739, 0, 2741, 0, 2743, 0, 2745, 0, 2747, 0, 2749, 0, 2751, 0, 2753, 0, 2755, 0, 2757, 0, 2759, 0, 2761, 0, 2763, 0, 2765, 0, 2767, 0, 2769, 0, 2771, 0, 2773, 0, 2775, 0, 2777, 0, 2779, 0, 2781, 0, 2783, 0, 2785, 0, 2787, 0, 2789, 0, 2791, 0, 2793, 0, 2795, 0, 2797, 0, 2799, 0, 2801, 0, 2803, 0, 2805, 0, 2807, 0, 2809, 0, 2811, 0, 2813, 0, 2815, 0, 2817, 0, 2819, 0, 2821, 0, 2823, 0, 2825, 0, 2827, 0, 2829, 0, 2831, 0, 2833, 0, 2835, 0, 2837, 0, 2839, 0, 2841, 0, 2843, 0, 2845, 0, 2847, 0, 2849, 0, 2851, 0, 2853, 0, 2855, 0, 2857, 0, 2859, 0, 2861, 0, 2863, 0, 2865, 0, 2867, 0, 2869, 0, 2871, 0, 2873, 0, 2875, 0, 2877, 0, 2879, 0, 2881, 0, 2883, 0, 2885, 0, 2887, 0, 2889, 0, 2891, 0, 2893, 0, 2895, 0, 2897, 0, 2899, 0, 2901, 0, 2903, 0, 2905, 0, 2907, 0, 2909, 0, 2911, 0, 2913, 0, 2915, 0, 2917, 0, 2919, 0, 2921, 0, 2923, 0, 2925, 0, 2927, 0, 2929, 0, 2931, 0, 2933, 0, 2935, 0, 2937, 0, 2939, 0, 2941, 0, 2943, 0, 2945, 0, 2947, 0, 2949, 0, 2951, 0, 2953, 0, 2955, 0, 2957, 0, 2959, 0, 2961, 0, 2963, 0, 2965, 0, 2967, 0, 2969, 0, 2971, 0, 2973, 0, 2975, 0, 2977, 0, 2979, 0, 2981, 0, 2983, 0, 2985, 0, 2987, 0, 2989, 0, 2991, 0, 2993, 0, 2995, 0, 2997, 0, 2999, 0, 3001, 0, 3003, 0, 3005, 0, 3007, 0, 3009, 0, 3011, 0, 3013, 0, 3015, 0, 3017, 0, 3019, 0, 3021, 0, 3023, 0, 3025, 0, 3027, 0, 3029, 0, 3031, 0, 3033, 0, 3035, 0, 3037, 0, 3039, 0, 3041, 0, 3043, 0, 3045, 0, 3047, 0, 3049, 0, 3051, 0, 3053, 0, 3055, 0, 3057, 0, 3059, 0, 3061, 0, 3063, 0, 3065, 0, 3067, 0, 3069, 0, 3071, 0, 3073, 0, 3075, 0, 3077, 0, 3079, 0, 3081, 0, 3083, 0, 3085, 0, 3087, 0, 3089, 0, 3091, 0, 3093, 0, 3095, 0, 3097, 0, 3099, 0, 3101, 0, 3103, 0, 3105, 0, 3107, 0, 3109, 0, 3111, 0, 3113, 0, 3115, 0, 3117, 0, 3119, 0, 3121, 0, 3123, 0, 3125, 0, 3127, 0, 3129, 0, 3131, 0, 3133, 0, 3135, 0, 3137, 0, 3139, 0, 3141, 0, 3143, 0, 3145, 0, 3147, 0, 3149, 0, 3151, 0, 3153, 0, 3155, 0, 3157, 0, 3159, 0, 3161, 0, 3163, 0, 3165, 0, 3167, 0, 3169, 0, 3171, 0, 3173, 0, 3175, 0, 3177, 0, 3179, 0, 3181, 0, 3183, 0, 3185, 0, 3187, 0, 3189, 0, 3191, 0, 3193, 0, 3195, 0, 3197, 0, 3199, 0, 3201, 0, 3203, 0, 3205, 0, 3207, 0, 3209, 0, 3211, 0, 3213, 0, 3215, 0, 3217, 0, 3219, 0, 3221, 0, 3223, 0, 3225, 0, 3227, 0, 3229, 0, 3231, 0, 3233, 0, 3235, 0, 3237, 0, 3239, 0, 3241, 0, 3243, 0, 3245, 0, 3247, 0, 3249, 0, 3251, 0, 3253, 0, 3255, 0, 3257, 0, 3259, 0, 3261, 0, 3263, 0, 3265, 0, 3267, 0, 3269, 0, 3271, 0, 3273, 0, 3275, 0, 3277, 0, 3279, 0, 3281, 0, 3283, 0, 3285, 0, 3287, 0, 3289, 0, 3291, 0, 3293, 0, 3295, 0, 3297, 0, 3299, 0, 3301, 0, 3303, 0, 3305, 0, 3307, 0, 3309, 0, 3311, 0, 3313, 0, 3315, 0, 3317, 0, 3319, 0, 3321, 0, 3323, 0, 3325, 0, 3327, 0, 3329, 0, 3331, 0, 3333, 0, 3335, 0, 3337, 0, 3339, 0, 3341, 0, 3343, 0, 3345, 0, 3347, 0, 3349, 0, 3351, 0, 3353, 0, 3355, 0, 3357, 0, 3359, 0, 3361, 0, 3363, 0, 3365, 0, 3367, 0, 3369, 0, 3371, 0, 3373, 0, 3375, 0, 3377, 0, 3379, 0, 3381, 0, 3383, 0, 3385, 0, 3387, 0, 3389, 0, 3391, 0, 3393, 0, 3395, 0, 3397, 0, 3399, 0, 3401, 0, 3403, 0, 3405, 0, 3407, 0, 3409, 0, 3411, 0, 3413, 0, 3415, 0, 3417, 0, 3419, 0, 3421, 0, 3423, 0, 3425, 0, 3427, 0, 3429, 0, 3431, 0, 3433, 0, 3435, 0, 3437, 0, 3439, 0, 3441, 0, 3443, 0, 3445, 0, 3447, 0, 3449, 0, 3451, 0, 3453, 0, 3455, 0, 3457, 0, 3459, 0, 3461, 0, 3463, 0, 3465, 0, 3467, 0, 3469, 0, 3471, 0, 3473, 0, 3475, 0, 3477, 0, 3479, 0, 3481, 0, 3483, 0, 3485, 0, 3487, 0, 3489, 0, 3491, 0, 3493, 0, 3495, 0, 3497, 0, 3499, 0, 3501, 0, 3503, 0, 3505, 0, 3507, 0, 3509, 0, 3511, 0, 3513, 0, 3515, 0, 3517, 0, 3519, 0, 3521, 0, 3523, 0, 3525, 0, 3527, 0, 3529, 0, 3531, 0, 3533, 0, 3535, 0, 3537, 0, 3539, 0, 3541, 0, 3543, 0, 3545, 0, 3547, 0, 3549, 0, 3551, 0, 3553, 0, 3555, 0, 3557, 0, 3559, 0, 3561, 0, 3563, 0, 3565, 0, 3567, 0, 3569, 0, 3571, 0, 3573, 0, 3575, 0, 3577, 0, 3579, 0, 3581, 0, 3583, 0, 3585, 0, 3587, 0, 3589, 0, 3591, 0, 3593, 0, 3595, 0, 3597, 0, 3599, 0, 3601, 0, 3603, 0, 3605, 0, 3607, 0, 3609, 0, 3611, 0, 3613, 0, 3615, 0, 3617, 0, 3619, 0, 3621, 0, 3623, 0, 3625, 0, 3627, 0, 3629, 0, 3631, 0, 3633, 0, 3635, 0, 3637, 0, 3639, 0, 3641, 0, 3643, 0, 3645, 0, 3647, 0, 3649, 0, 3651, 0, 3653, 0, 3655, 0, 3657, 0, 3659, 0, 3661, 0, 3663, 0, 3665, 0, 3667, 0, 3669, 0, 3671, 0, 3673, 0, 3675, 0, 3677, 0, 3679, 0, 3681, 0, 3683, 0, 3685, 0, 3687, 0, 3689, 0, 3691, 0, 3693, 0, 3695, 0, 3697, 0, 3699, 0, 3701, 0, 3703, 0, 3705, 0, 3707, 0, 3709, 0, 3711, 0, 3713, 0, 3715, 0, 3717, 0, 3719, 0, 3721, 0, 3723, 0, 3725, 0, 3727, 0, 3729, 0, 3731, 0, 3733, 0, 3735, 0, 3737, 0, 3739, 0, 3741, 0, 3743, 0, 3745, 0, 3747, 0, 3749, 0, 3751, 0, 3753, 0, 3755, 0, 3757, 0, 3759, 0, 3761, 0, 3763, 0, 3765, 0, 3767, 0, 3769, 0, 3771, 0, 3773, 0, 3775, 0, 3777, 0, 3779, 0, 3781, 0, 3783, 0, 3785, 0, 3787, 0, 3789, 0, 3791, 0, 3793, 0, 3795, 0, 3797, 0, 3799, 0, 3801, 0, 3803, 0, 3805, 0, 3807, 0, 3809, 0, 3811, 0, 3813, 0, 3815, 0, 3817, 0, 3819, 0, 3821, 0, 3823, 0, 3825, 0, 3827, 0, 3829, 0, 3831, 0, 3833, 0, 3835, 0, 3837, 0, 3839, 0, 3841, 0, 3843, 0, 3845, 0, 3847, 0, 3849, 0, 3851, 0, 3853, 0, 3855, 0, 3857, 0, 3859, 0, 3861, 0, 3863, 0, 3865, 0, 3867, 0, 3869, 0, 3871, 0, 3873, 0, 3875, 0, 3877, 0, 3879, 0, 3881, 0, 3883, 0, 3885, 0, 3887, 0, 3889, 0, 3891, 0, 3893, 0, 3895, 0, 3897, 0, 3899, 0, 3901, 0, 3903, 0, 3905, 0, 3907, 0, 3909, 0, 3911, 0, 3913, 0, 3915, 0, 3917, 0, 3919, 0, 3921, 0, 3923, 0, 3925, 0, 3927, 0, 3929, 0, 3931, 0, 3933, 0, 3935, 0, 3937, 0, 3939, 0, 3941, 0, 3943, 0, 3945, 0, 3947, 0, 3949, 0, 3951, 0, 3953, 0, 3955, 0, 3957, 0, 3959, 0, 3961, 0, 3963, 0, 3965, 0, 3967, 0, 3969, 0, 3971, 0, 3973, 0, 3975, 0, 3977, 0, 3979, 0, 3981, 0, 3983, 0, 3985, 0, 3987, 0, 3989, 0, 3991, 0, 3993, 0, 3995, 0, 3997, 0, 3999, 0, 4001, 0, 4003, 0, 4005, 0, 4007, 0, 4009, 0, 4011, 0, 4013, 0, 4015, 0, 4017, 0, 4019, 0, 4021, 0, 4023, 0, 4025, 0, 4027, 0, 4029, 0, 4031, 0, 4033, 0, 4035, 0, 4037, 0, 4039, 0, 4041, 0, 4043, 0, 4045, 0, 4047, 0, 4049, 0, 4051, 0, 4053, 0, 4055, 0, 4057, 0, 4059, 0, 4061, 0, 4063, 0, 4065, 0, 4067, 0, 4069, 0, 4071, 0, 4073, 0, 4075, 0, 4077, 0, 4079, 0, 4081, 0, 4083, 0, 4085, 0, 4087, 0, 4089, 0, 4091, 0, 4093, 0, 4095, 0, 4097, 0, 4099, 0, 4101, 0, 4103, 0, 4105, 0, 4107, 0, 4109, 0, 4111, 0, 4113, 0, 4115, 0, 4117, 0, 4119, 0, 4121, 0, 4123, 0, 4125, 0, 4127, 0, 4129, 0, 4131, 0, 4133, 0, 4135, 0, 4137, 0, 4139, 0, 4141, 0, 4143, 0, 4145, 0, 4147, 0, 4149, 0, 4151, 0, 4153, 0, 4155, 0, 4157, 0, 4159, 0, 4161, 0, 4163, 0, 4165, 0, 4167, 0, 4169, 0, 4171, 0, 4173, 0, 4175, 0, 4177, 0, 4179, 0, 4181, 0, 4183, 0, 4185, 0, 4187, 0, 4189, 0, 4191, 0, 4193, 0, 4195, 0, 4197, 0, 4199, 0, 4201, 0, 4203, 0, 4205, 0, 4207, 0, 4209, 0, 4211, 0, 4213, 0, 4215, 0, 4217, 0, 4219, 0, 4221, 0, 4223, 0, 4225, 0, 4227, 0, 4229, 0, 4231, 0, 4233, 0, 4235, 0, 4237, 0, 4239, 0, 4241, 0, 4243, 0, 4245, 0, 4247, 0, 4249, 0, 4251, 0, 4253, 0, 4255, 0, 4257, 0, 4259, 0, 4261, 0, 4263, 0, 4265, 0, 4267, 0, 4269, 0, 4271, 0, 4273, 0, 4275, 0, 4277, 0, 4279, 0, 4281, 0, 4283, 0, 4285, 0, 4287, 0, 4289, 0, 4291, 0, 4293, 0, 4295, 0, 4297, 0, 4299, 0, 4301, 0, 4303, 0, 4305, 0, 4307, 0, 4309, 0, 4311, 0, 4313, 0, 4315, 0, 4317, 0, 4319, 0, 4321, 0, 4323, 0, 4325, 0, 4327, 0, 4329, 0, 4331, 0, 4333, 0, 4335, 0, 4337, 0, 4339, 0, 4341, 0, 4343, 0, 4345, 0, 4347, 0, 4349, 0, 4351, 0, 4353, 0, 4355, 0, 4357, 0, 4359, 0, 4361, 0, 4363, 0, 4365, 0, 4367, 0, 4369, 0, 4371, 0, 4373, 0, 4375, 0, 4377, 0, 4379, 0, 4381, 0, 4383, 0, 4385, 0, 4387, 0, 4389, 0, 4391, 0, 4393, 0, 4395, 0, 4397, 0, 4399, 0, 4401, 0, 4403, 0, 4405, 0, 4407, 0, 4409, 0, 4411, 0, 4413, 0, 4415, 0, 4417, 0, 4419, 0, 4421, 0, 4423, 0, 4425, 0, 4427, 0, 4429, 0, 4431, 0, 4433, 0, 4435, 0, 4437, 0, 4439, 0, 4441, 0, 4443, 0, 4445, 0, 4447, 0, 4449, 0, 4451, 0, 4453, 0, 4455, 0, 4457, 0, 4459, 0, 4461, 0, 4463, 0, 4465, 0, 4467, 0, 4469, 0, 4471, 0, 4473, 0, 4475, 0, 4477, 0, 4479, 0, 4481, 0, 4483, 0, 4485, 0, 4487, 0, 4489, 0, 4491, 0, 4493, 0, 4495, 0, 4497, 0, 4499, 0, 4501, 0, 4503, 0, 4505, 0, 4507, 0, 4509, 0, 4511, 0, 4513, 0, 4515, 0, 4517, 0, 4519, 0, 4521, 0, 4523, 0, 4525, 0, 4527, 0, 4529, 0, 4531, 0, 4533, 0, 4535, 0, 4537, 0, 4539, 0, 4541, 0, 4543, 0, 4545, 0, 4547, 0, 4549, 0, 4551, 0, 4553, 0, 4555, 0, 4557, 0, 4559, 0, 4561, 0, 4563, 0, 4565, 0, 4567, 0, 4569, 0, 4571, 0, 4573, 0, 4575, 0, 4577, 0, 4579, 0, 4581, 0, 4583, 0, 4585, 0, 4587, 0, 4589, 0, 4591, 0, 4593, 0, 4595, 0, 4597, 0, 4599, 0, 4601, 0, 4603, 0, 4605, 0, 4607, 0, 4609, 0, 4611, 0, 4613, 0, 4615, 0, 4617, 0, 4619, 0, 4621, 0, 4623, 0, 4625, 0, 4627, 0, 4629, 0, 4631, 0, 4633, 0, 4635, 0, 4637, 0, 4639, 0, 4641, 0, 4643, 0, 4645, 0, 4647, 0, 4649, 0, 4651, 0, 4653, 0, 4655, 0, 4657, 0, 4659, 0, 4661, 0, 4663, 0, 4665, 0, 4667, 0, 4669, 0, 4671, 0, 4673, 0, 4675, 0, 4677, 0, 4679, 0, 4681, 0, 4683, 0, 4685, 0, 4687, 0, 4689, 0, 4691, 0, 4693, 0, 4695, 0, 4697, 0, 4699, 0, 4701, 0, 4703, 0, 4705, 0, 4707, 0, 4709, 0, 4711, 0, 4713, 0, 4715, 0, 4717, 0, 4719, 0, 4721, 0, 4723, 0, 4725, 0, 4727, 0, 4729, 0, 4731, 0, 4733, 0, 4735, 0, 4737, 0, 4739, 0, 4741, 0, 4743, 0, 4745, 0, 4747, 0, 4749, 0, 4751, 0, 4753, 0, 4755, 0, 4757, 0, 4759, 0, 4761, 0, 4763, 0, 4765, 0, 4767, 0, 4769, 0, 4771, 0, 4773, 0, 4775, 0, 4777, 0, 4779, 0, 4781, 0, 4783, 0, 4785, 0, 4787, 0, 4789, 0, 4791, 0, 4793, 0, 4795, 0, 4797, 0, 4799, 0, 4801, 0, 4803, 0, 4805, 0, 4807, 0, 4809, 0, 4811, 0, 4813, 0, 4815, 0, 4817, 0, 4819, 0, 4821, 0, 4823, 0, 4825, 0, 4827, 0, 4829, 0, 4831, 0, 4833, 0, 4835, 0, 4837, 0, 4839, 0, 4841, 0, 4843, 0, 4845, 0, 4847, 0, 4849, 0, 4851, 0, 4853, 0, 4855, 0, 4857, 0, 4859, 0, 4861, 0, 4863, 0, 4865, 0, 4867, 0, 4869, 0, 4871, 0, 4873, 0, 4875, 0, 4877, 0, 4879, 0, 4881, 0, 4883, 0, 4885, 0, 4887, 0, 4889, 0, 4891, 0, 4893, 0, 4895, 0, 4897, 0, 4899, 0, 4901, 0, 4903, 0, 4905, 0, 4907, 0, 4909, 0, 4911, 0, 4913, 0, 4915, 0, 4917, 0, 4919, 0, 4921, 0, 4923, 0, 4925, 0, 4927, 0, 4929, 0, 4931, 0, 4933, 0, 4935, 0, 4937, 0, 4939, 0, 4941, 0, 4943, 0, 4945, 0, 4947, 0, 4949, 0, 4951, 0, 4953, 0, 4955, 0, 4957, 0, 4959, 0, 4961, 0, 4963, 0, 4965, 0, 4967, 0, 4969, 0, 4971, 0, 4973, 0, 4975, 0, 4977, 0, 4979, 0, 4981, 0, 4983, 0, 4985, 0, 4987, 0, 4989, 0, 4991, 0, 4993, 0, 4995, 0, 4997, 0, 4999, 0, 5001, 0, 5003, 0, 5005, 0, 5007, 0, 5009, 0, 5011, 0, 5013, 0, 5015, 0, 5017, 0, 5019, 0, 5021, 0, 5023, 0, 5025, 0, 5027, 0, 5029, 0, 5031, 0, 5033, 0, 5035, 0, 5037, 0, 5039, 0, 5041, 0, 5043, 0, 5045, 0, 5047, 0, 5049, 0, 5051, 0, 5053, 0, 5055, 0, 5057, 0, 5059, 0, 5061, 0, 5063, 0, 5065, 0, 5067, 0, 5069, 0, 5071, 0, 5073, 0, 5075, 0, 5077, 0, 5079, 0, 5081, 0, 5083, 0, 5085, 0, 5087, 0, 5089, 0, 5091, 0, 5093, 0, 5095, 0, 5097, 0, 5099, 0, 5101, 0, 5103, 0, 5105, 0, 5107, 0, 5109, 0, 5111, 0, 5113, 0, 5115, 0, 5117, 0, 5119, 0, 5121, 0, 5123, 0, 5125, 0, 5127, 0, 5129, 0, 5131, 0, 5133, 0, 5135, 0, 5137, 0, 5139, 0, 5141, 0, 5143, 0, 5145, 0, 5147, 0, 5149, 0, 5151, 0, 5153, 0, 5155, 0, 5157, 0, 5159, 0, 5161, 0, 5163, 0, 5165, 0, 5167, 0, 5169, 0, 5171, 0, 5173, 0, 5175, 0, 5177, 0, 5179, 0, 5181, 0, 5183, 0, 5185, 0, 5187, 0, 5189, 0, 5191, 0, 5193, 0, 5195, 0, 5197, 0, 5199, 0, 5201, 0, 5203, 0, 5205, 0, 5207, 0, 5209, 0, 5211, 0, 5213, 0, 5215, 0, 5217, 0, 5219, 0, 5221, 0, 5223, 0, 5225, 0, 5227, 0, 5229, 0, 5231, 0, 5233, 0, 5235, 0, 5237, 0, 5239, 0, 5241, 0, 5243, 0, 5245, 0, 5247, 0, 5249, 0, 5251, 0, 5253, 0, 5255, 0, 5257, 0, 5259, 0, 5261, 0, 5263, 0, 5265, 0, 5267, 0, 5269, 0, 5271, 0, 5273, 0, 5275, 0, 5277, 0, 5279, 0, 5281, 0, 5283, 0, 5285, 0, 5287, 0, 5289, 0, 5291, 0, 5293, 0, 5295, 0, 5297, 0, 5299, 0, 5301, 0, 5303, 0, 5305, 0, 5307, 0, 5309, 0, 5311, 0, 5313, 0, 5315, 0, 5317, 0, 5319, 0, 5321, 0, 5323, 0, 5325, 0, 5327, 0, 5329, 0, 5331, 0, 5333, 0, 5335, 0, 5337, 0, 5339, 0, 5341, 0, 5343, 0, 5345, 0, 5347, 0, 5349, 0, 5351, 0, 5353, 0, 5355, 0, 5357, 0, 5359, 0, 5361, 0, 5363, 0, 5365, 0, 5367, 0, 5369, 0, 5371, 0, 5373, 0, 5375, 0, 5377, 0, 5379, 0, 5381, 0, 5383, 0, 5385, 0, 5387, 0, 5389, 0, 5391, 0, 5393, 0, 5395, 0, 5397, 0, 5399, 0, 5401, 0, 5403, 0, 5405, 0, 5407, 0, 5409, 0, 5411, 0, 5413, 0, 5415, 0, 5417, 0, 5419, 0, 5421, 0, 5423, 0, 5425, 0, 5427, 0, 5429, 0, 5431, 0, 5433, 0, 5435, 0, 5437, 0, 5439, 0, 5441, 0, 5443, 0, 5445, 0, 5447, 0, 5449, 0, 5451, 0, 5453, 0, 5455, 0, 5457, 0, 5459, 0, 5461, 0, 5463, 0, 5465, 0, 5467, 0, 5469, 0, 5471, 0, 5473, 0, 5475, 0, 5477, 0, 5479, 0, 5481, 0, 5483, 0, 5485, 0, 5487, 0, 5489, 0, 5491, 0, 5493, 0, 5495, 0, 5497, 0, 5499, 0, 5501, 0, 5503, 0, 5505, 0, 5507, 0, 5509, 0, 5511, 0, 5513, 0, 5515, 0, 5517, 0, 5519, 0, 5521, 0, 5523, 0, 5525, 0, 5527, 0, 5529, 0, 5531, 0, 5533, 0, 5535, 0, 5537, 0, 5539, 0, 5541, 0, 5543, 0, 5545, 0, 5547, 0, 5549, 0, 5551, 0, 5553, 0, 5555, 0, 5557, 0, 5559, 0, 5561, 0, 5563, 0, 5565, 0, 5567, 0, 5569, 0, 5571, 0, 5573, 0, 5575, 0, 5577, 0, 5579, 0, 5581, 0, 5583, 0, 5585, 0, 5587, 0, 5589, 0, 5591, 0, 5593, 0, 5595, 0, 5597, 0, 5599, 0, 5601, 0, 5603, 0, 5605, 0, 5607, 0, 5609, 0, 5611, 0, 5613, 0, 5615, 0, 5617, 0, 5619, 0, 5621, 0, 5623, 0, 5625, 0, 5627, 0, 5629, 0, 5631, 0, 5633, 0, 5635, 0, 5637, 0, 5639, 0, 5641, 0, 5643, 0, 5645, 0, 5647, 0, 5649, 0, 5651, 0, 5653, 0, 5655, 0, 5657, 0, 5659, 0, 5661, 0, 5663, 0, 5665, 0, 5667, 0, 5669, 0, 5671, 0, 5673, 0, 5675, 0, 5677, 0, 5679, 0, 5681, 0, 5683, 0, 5685, 0, 5687, 0, 5689, 0, 5691, 0, 5693, 0, 5695, 0, 5697, 0, 5699, 0, 5701, 0, 5703, 0, 5705, 0, 5707, 0, 5709, 0, 5711, 0, 5713, 0, 5715, 0, 5717, 0, 5719, 0, 5721, 0, 5723, 0, 5725, 0, 5727, 0, 5729, 0, 5731, 0, 5733, 0, 5735, 0, 5737, 0, 5739, 0, 5741, 0, 5743, 0, 5745, 0, 5747, 0, 5749, 0, 5751, 0, 5753, 0, 5755, 0, 5757, 0, 5759, 0, 5761, 0, 5763, 0, 5765, 0, 5767, 0, 5769, 0, 5771, 0, 5773, 0, 5775, 0, 5777, 0, 5779, 0, 5781, 0, 5783, 0, 5785, 0, 5787, 0, 5789, 0, 5791, 0, 5793, 0, 5795, 0, 5797, 0, 5799, 0, 5801, 0, 5803, 0, 5805, 0, 5807, 0, 5809, 0, 5811, 0, 5813, 0, 5815, 0, 5817, 0, 5819, 0, 5821, 0, 5823, 0, 5825, 0, 5827, 0, 5829, 0, 5831, 0, 5833, 0, 5835, 0, 5837, 0, 5839, 0, 5841, 0, 5843, 0, 5845, 0, 5847, 0, 5849, 0, 5851, 0, 5853, 0, 5855, 0, 5857, 0, 5859, 0, 5861, 0, 5863, 0, 5865, 0, 5867, 0, 5869, 0, 5871, 0, 5873, 0, 5875, 0, 5877, 0, 5879, 0, 5881, 0, 5883, 0, 5885, 0, 5887, 0, 5889, 0, 5891, 0, 5893, 0, 5895, 0, 5897, 0, 5899, 0, 5901, 0, 5903, 0, 5905, 0, 5907, 0, 5909, 0, 5911, 0, 5913, 0, 5915, 0, 5917, 0, 5919, 0, 5921, 0, 5923, 0, 5925, 0, 5927, 0, 5929, 0, 5931, 0, 5933, 0, 5935, 0, 5937, 0, 5939, 0, 5941, 0, 5943, 0, 5945, 0, 5947, 0, 5949, 0, 5951, 0, 5953, 0, 5955, 0, 5957, 0, 5959, 0, 5961, 0, 5963, 0, 5965, 0, 5967, 0, 5969, 0, 5971, 0, 5973, 0, 5975, 0, 5977, 0, 5979, 0, 5981, 0, 5983, 0, 5985, 0, 5987, 0, 5989, 0, 5991, 0, 5993, 0, 5995, 0, 5997, 0, 5999, 0, 6001, 0, 6003, 0, 6005, 0, 6007, 0, 6009, 0, 6011, 0, 6013, 0, 6015, 0, 6017, 0, 6019, 0, 6021, 0, 6023, 0, 6025, 0, 6027, 0, 6029, 0, 6031, 0, 6033, 0, 6035, 0, 6037, 0, 6039, 0, 6041, 0, 6043, 0, 6045, 0, 6047, 0, 6049, 0, 6051, 0, 6053, 0, 6055, 0, 6057, 0, 6059, 0, 6061, 0, 6063, 0, 6065, 0, 6067, 0, 6069, 0, 6071, 0, 6073, 0, 6075, 0, 6077, 0, 6079, 0, 6081, 0, 6083, 0, 6085, 0, 6087, 0, 6089, 0, 6091, 0, 6093, 0, 6095, 0, 6097, 0, 6099, 0, 6101, 0, 6103, 0, 6105, 0, 6107, 0, 6109, 0, 6111, 0, 6113, 0, 6115, 0, 6117, 0, 6119, 0, 6121, 0, 6123, 0, 6125, 0, 6127, 0, 6129, 0, 6131, 0, 6133, 0, 6135, 0, 6137, 0, 6139, 0, 6141, 0, 6143, 0, 6145, 0, 6147, 0, 6149, 0, 6151, 0, 6153, 0, 6155, 0, 6157, 0, 6159, 0, 6161, 0, 6163, 0, 6165, 0, 6167, 0, 6169, 0, 6171, 0, 6173, 0, 6175, 0, 6177, 0, 6179, 0, 6181, 0, 6183, 0, 6185, 0, 6187, 0, 6189, 0, 6191, 0, 6193, 0, 6195, 0, 6197, 0, 6199, 0, 6201, 0, 6203, 0, 6205, 0, 6207, 0, 6209, 0, 6211, 0, 6213, 0, 6215, 0, 6217, 0, 6219, 0, 6221, 0, 6223, 0, 6225, 0, 6227, 0, 6229, 0, 6231, 0, 6233, 0, 6235, 0, 6237, 0, 6239, 0, 6241, 0, 6243, 0, 6245, 0, 6247, 0, 6249, 0, 6251, 0, 6253, 0, 6255, 0, 6257, 0, 6259, 0, 6261, 0, 6263, 0, 6265, 0, 6267, 0, 6269, 0, 6271, 0, 6273, 0, 6275, 0, 6277, 0, 6279, 0, 6281, 0, 6283, 0, 6285, 0, 6287, 0, 6289, 0, 6291, 0, 6293, 0, 6295, 0, 6297, 0, 6299, 0, 6301, 0, 6303, 0, 6305, 0, 6307, 0, 6309, 0, 6311, 0, 6313, 0, 6315, 0, 6317, 0, 6319, 0, 6321, 0, 6323, 0, 6325, 0, 6327, 0, 6329, 0, 6331, 0, 6333, 0, 6335, 0, 6337, 0, 6339, 0, 6341, 0, 6343, 0, 6345, 0, 6347, 0, 6349, 0, 6351, 0, 6353, 0, 6355, 0, 6357, 0, 6359, 0, 6361, 0, 6363, 0, 6365, 0, 6367, 0, 6369, 0, 6371, 0, 6373, 0, 6375, 0, 6377, 0, 6379, 0, 6381, 0, 6383, 0, 6385, 0, 6387, 0, 6389, 0, 6391, 0, 6393, 0, 6395, 0, 6397, 0, 6399, 0, 6401, 0, 6403, 0, 6405, 0, 6407, 0, 6409, 0, 6411, 0, 6413, 0, 6415, 0, 6417, 0, 6419, 0, 6421, 0, 6423, 0, 6425, 0, 6427, 0, 6429, 0, 6431, 0, 6433, 0, 6435, 0, 6437, 0, 6439, 0, 6441, 0, 6443, 0, 6445, 0, 6447, 0, 6449, 0, 6451, 0, 6453, 0, 6455, 0, 6457, 0, 6459, 0, 6461, 0, 6463, 0, 6465, 0, 6467, 0, 6469, 0, 6471, 0, 6473, 0, 6475, 0, 6477, 0, 6479, 0, 6481, 0, 6483, 0, 6485, 0, 6487, 0, 6489, 0, 6491, 0, 6493, 0, 6495, 0, 6497, 0, 6499, 0, 6501, 0, 6503, 0, 6505, 0, 6507, 0, 6509, 0, 6511, 0, 6513, 0, 6515, 0, 6517, 0, 6519, 0, 6521, 0, 6523, 0, 6525, 0, 6527, 0, 6529, 0, 6531, 0, 6533, 0, 6535, 0, 6537, 0, 6539, 0, 6541, 0, 6543, 0, 6545, 0, 6547, 0, 6549, 0, 6551, 0, 6553, 0, 6555, 0, 6557, 0, 6559, 0, 6561, 0, 6563, 0, 6565, 0, 6567, 0, 6569, 0, 6571, 0, 6573, 0, 6575, 0, 6577, 0, 6579, 0, 6581, 0, 6583, 0, 6585, 0, 6587, 0, 6589, 0, 6591, 0, 6593, 0, 6595, 0, 6597, 0, 6599, 0, 6601, 0, 6603, 0, 6605, 0, 6607, 0, 6609, 0, 6611, 0, 6613, 0, 6615, 0, 6617, 0, 6619, 0, 6621, 0, 6623, 0, 6625, 0, 6627, 0, 6629, 0, 6631, 0, 6633, 0, 6635, 0, 6637, 0, 6639, 0, 6641, 0, 6643, 0, 6645, 0, 6647, 0, 6649, 0, 6651, 0, 6653, 0, 6655, 0, 6657, 0, 6659, 0, 6661, 0, 6663, 0, 6665, 0, 6667, 0, 6669, 0, 6671, 0, 6673, 0, 6675, 0, 6677, 0, 6679, 0, 6681, 0, 6683, 0, 6685, 0, 6687, 0, 6689, 0, 6691, 0, 6693, 0, 6695, 0, 6697, 0, 6699, 0, 6701, 0, 6703, 0, 6705, 0, 6707, 0, 6709, 0, 6711, 0, 6713, 0, 6715, 0, 6717, 0, 6719, 0, 6721, 0, 6723, 0, 6725, 0, 6727, 0, 6729, 0, 6731, 0, 6733, 0, 6735, 0, 6737, 0, 6739, 0, 6741, 0, 6743, 0, 6745, 0, 6747, 0, 6749, 0, 6751, 0, 6753, 0, 6755, 0, 6757, 0, 6759, 0, 6761, 0, 6763, 0, 6765, 0, 6767, 0, 6769, 0, 6771, 0, 6773, 0, 6775, 0, 6777, 0, 6779, 0, 6781, 0, 6783, 0, 6785, 0, 6787, 0, 6789, 0, 6791, 0, 6793, 0, 6795, 0, 6797, 0, 6799, 0, 6801, 0, 6803, 0, 6805, 0, 6807, 0, 6809, 0, 6811, 0, 6813, 0, 6815, 0, 6817, 0, 6819, 0, 6821, 0, 6823, 0, 6825, 0, 6827, 0, 6829, 0, 6831, 0, 6833, 0, 6835, 0, 6837, 0, 6839, 0, 6841, 0, 6843, 0, 6845, 0, 6847, 0, 6849, 0, 6851, 0, 6853, 0, 6855, 0, 6857, 0, 6859, 0, 6861, 0, 6863, 0, 6865, 0, 6867, 0, 6869, 0, 6871, 0, 6873, 0, 6875, 0, 6877, 0, 6879, 0, 6881, 0, 6883, 0, 6885, 0, 6887, 0, 6889, 0, 6891, 0, 6893, 0, 6895, 0, 6897, 0, 6899, 0, 6901, 0, 6903, 0, 6905, 0, 6907, 0, 6909, 0, 6911, 0, 6913, 0, 6915, 0, 6917, 0, 6919, 0, 6921, 0, 6923, 0, 6925, 0, 6927, 0, 6929, 0, 6931, 0, 6933, 0, 6935, 0, 6937, 0, 6939, 0, 6941, 0, 6943, 0, 6945, 0, 6947, 0, 6949, 0, 6951, 0, 6953, 0, 6955, 0, 6957, 0, 6959, 0, 6961, 0, 6963, 0, 6965, 0, 6967, 0, 6969, 0, 6971, 0, 6973, 0, 6975, 0, 6977, 0, 6979, 0, 6981, 0, 6983, 0, 6985, 0, 6987, 0, 6989, 0, 6991, 0, 6993, 0, 6995, 0, 6997, 0, 6999, 0, 7001, 0, 7003, 0, 7005, 0, 7007, 0, 7009, 0, 7011, 0, 7013, 0, 7015, 0, 7017, 0, 7019, 0, 7021, 0, 7023, 0, 7025, 0, 7027, 0, 7029, 0, 7031, 0, 7033, 0, 7035, 0, 7037, 0, 7039, 0, 7041, 0, 7043, 0, 7045, 0, 7047, 0, 7049, 0, 7051, 0, 7053, 0, 7055, 0, 7057, 0, 7059, 0, 7061, 0, 7063, 0, 7065, 0, 7067, 0, 7069, 0, 7071, 0, 7073, 0, 7075, 0, 7077, 0, 7079, 0, 7081, 0, 7083, 0, 7085, 0, 7087, 0, 7089, 0, 7091, 0, 7093, 0, 7095, 0, 7097, 0, 7099, 0, 7101, 0, 7103, 0, 7105, 0, 7107, 0, 7109, 0, 7111, 0, 7113, 0, 7115, 0, 7117, 0, 7119, 0, 7121, 0, 7123, 0, 7125, 0, 7127, 0, 7129, 0, 7131, 0, 7133, 0, 7135, 0, 7137, 0, 7139, 0, 7141, 0, 7143, 0, 7145, 0, 7147, 0, 7149, 0, 7151, 0, 7153, 0, 7155, 0, 7157, 0, 7159, 0, 7161, 0, 7163, 0, 7165, 0, 7167, 0, 7169, 0, 7171, 0, 7173, 0, 7175, 0, 7177, 0, 7179, 0, 7181, 0, 7183, 0, 7185, 0, 7187, 0, 7189, 0, 7191, 0, 7193, 0, 7195, 0, 7197, 0, 7199, 0, 7201, 0, 7203, 0, 7205, 0, 7207, 0, 7209, 0, 7211, 0, 7213, 0, 7215, 0, 7217, 0, 7219, 0, 7221, 0, 7223, 0, 7225, 0, 7227, 0, 7229, 0, 7231, 0, 7233, 0, 7235, 0, 7237, 0, 7239, 0, 7241, 0, 7243, 0, 7245, 0, 7247, 0, 7249, 0, 7251, 0, 7253, 0, 7255, 0, 7257, 0, 7259, 0, 7261, 0, 7263, 0, 7265, 0, 7267, 0, 7269, 0, 7271, 0, 7273, 0, 7275, 0, 7277, 0, 7279, 0, 7281, 0, 7283, 0, 7285, 0, 7287, 0, 7289, 0, 7291, 0, 7293, 0, 7295, 0, 7297, 0, 7299, 0, 7301, 0, 7303, 0, 7305, 0, 7307, 0, 7309, 0, 7311, 0, 7313, 0, 7315, 0, 7317, 0, 7319, 0, 7321, 0, 7323, 0, 7325, 0, 7327, 0, 7329, 0, 7331, 0, 7333, 0, 7335, 0, 7337, 0, 7339, 0, 7341, 0, 7343, 0, 7345, 0, 7347, 0, 7349, 0, 7351, 0, 7353, 0, 7355, 0, 7357, 0, 7359, 0, 7361, 0, 7363, 0, 7365, 0, 7367, 0, 7369, 0, 7371, 0, 7373, 0, 7375, 0, 7377, 0, 7379, 0, 7381, 0, 7383, 0, 7385, 0, 7387, 0, 7389, 0, 7391, 0, 7393, 0, 7395, 0, 7397, 0, 7399, 0, 7401, 0, 7403, 0, 7405, 0, 7407, 0, 7409, 0, 7411, 0, 7413, 0, 7415, 0, 7417, 0, 7419, 0, 7421, 0, 7423, 0, 7425, 0, 7427, 0, 7429, 0, 7431, 0, 7433, 0, 7435, 0, 7437, 0, 7439, 0, 7441, 0, 7443, 0, 7445, 0, 7447, 0, 7449, 0, 7451, 0, 7453, 0, 7455, 0, 7457, 0, 7459, 0, 7461, 0, 7463, 0, 7465, 0, 7467, 0, 7469, 0, 7471, 0, 7473, 0, 7475, 0, 7477, 0, 7479, 0, 7481, 0, 7483, 0, 7485, 0, 7487, 0, 7489, 0, 7491, 0, 7493, 0, 7495, 0, 7497, 0, 7499, 0, 7501, 0, 7503, 0, 7505, 0, 7507, 0, 7509, 0, 7511, 0, 7513, 0, 7515, 0, 7517, 0, 7519, 0, 7521, 0, 7523, 0, 7525, 0, 7527, 0, 7529, 0, 7531, 0, 7533, 0, 7535, 0, 7537, 0, 7539, 0, 7541, 0, 7543, 0, 7545, 0, 7547, 0, 7549, 0, 7551, 0, 7553, 0, 7555, 0, 7557, 0, 7559, 0, 7561, 0, 7563, 0, 7565, 0, 7567, 0, 7569, 0, 7571, 0, 7573, 0, 7575, 0, 7577, 0, 7579, 0, 7581, 0, 7583, 0, 7585, 0, 7587, 0, 7589, 0, 7591, 0, 7593, 0, 7595, 0, 7597, 0, 7599, 0, 7601, 0, 7603, 0, 7605, 0, 7607, 0, 7609, 0, 7611, 0, 7613, 0, 7615, 0, 7617, 0, 7619, 0, 7621, 0, 7623, 0, 7625, 0, 7627, 0, 7629, 0, 7631, 0, 7633, 0, 7635, 0, 7637, 0, 7639, 0, 7641, 0, 7643, 0, 7645, 0, 7647, 0, 7649, 0, 7651, 0, 7653, 0, 7655, 0, 7657, 0, 7659, 0, 7661, 0, 7663, 0, 7665, 0, 7667, 0, 7669, 0, 7671, 0, 7673, 0, 7675, 0, 7677, 0, 7679, 0, 7681, 0, 7683, 0, 7685, 0, 7687, 0, 7689, 0, 7691, 0, 7693, 0, 7695, 0, 7697, 0, 7699, 0, 7701, 0, 7703, 0, 7705, 0, 7707, 0, 7709, 0, 7711, 0, 7713, 0, 7715, 0, 7717, 0, 7719, 0, 7721, 0, 7723, 0, 7725, 0, 7727, 0, 7729, 0, 7731, 0, 7733, 0, 7735, 0, 7737, 0, 7739, 0, 7741, 0, 7743, 0, 7745, 0, 7747, 0, 7749, 0, 7751, 0, 7753, 0, 7755, 0, 7757, 0, 7759, 0, 7761, 0, 7763, 0, 7765, 0, 7767, 0, 7769, 0, 7771, 0, 7773, 0, 7775, 0, 7777, 0, 7779, 0, 7781, 0, 7783, 0, 7785, 0, 7787, 0, 7789, 0, 7791, 0, 7793, 0, 7795, 0, 7797, 0, 7799, 0, 7801, 0, 7803, 0, 7805, 0, 7807, 0, 7809, 0, 7811, 0, 7813, 0, 7815, 0, 7817, 0, 7819, 0, 7821, 0, 7823, 0, 7825, 0, 7827, 0, 7829, 0, 7831, 0, 7833, 0, 7835, 0, 7837, 0, 7839, 0, 7841, 0, 7843, 0, 7845, 0, 7847, 0, 7849, 0, 7851, 0, 7853, 0, 7855, 0, 7857, 0, 7859, 0, 7861, 0, 7863, 0, 7865, 0, 7867, 0, 7869, 0, 7871, 0, 7873, 0, 7875, 0, 7877, 0, 7879, 0, 7881, 0, 7883, 0, 7885, 0, 7887, 0, 7889, 0, 7891, 0, 7893, 0, 7895, 0, 7897, 0, 7899, 0, 7901, 0, 7903, 0, 7905, 0, 7907, 0, 7909, 0, 7911, 0, 7913, 0, 7915, 0, 7917, 0, 7919, 0, 7921, 0, 7923, 0, 7925, 0, 7927, 0, 7929, 0, 7931, 0, 7933, 0, 7935, 0, 7937, 0, 7939, 0, 7941, 0, 7943, 0, 7945, 0, 7947, 0, 7949, 0, 7951, 0, 7953, 0, 7955, 0, 7957, 0, 7959, 0, 7961, 0, 7963, 0, 7965, 0, 7967, 0, 7969, 0, 7971, 0, 7973, 0, 7975, 0, 7977, 0, 7979, 0, 7981, 0, 7983, 0, 7985, 0, 7987, 0, 7989, 0, 7991, 0, 7993, 0, 7995, 0, 7997, 0, 7999, 0, 8001, 0, 8003, 0, 8005, 0, 8007, 0, 8009, 0, 8011, 0, 8013, 0, 8015, 0, 8017, 0, 8019, 0, 8021, 0, 8023, 0, 8025, 0, 8027, 0, 8029, 0, 8031, 0, 8033, 0, 8035, 0, 8037, 0, 8039, 0, 8041, 0, 8043, 0, 8045, 0, 8047, 0, 8049, 0, 8051, 0, 8053, 0, 8055, 0, 8057, 0, 8059, 0, 8061, 0, 8063, 0, 8065, 0, 8067, 0, 8069, 0, 8071, 0, 8073, 0, 8075, 0, 8077, 0, 8079, 0, 8081, 0, 8083, 0, 8085, 0, 8087, 0, 8089, 0, 8091, 0, 8093, 0, 8095, 0, 8097, 0, 8099, 0, 8101, 0, 8103, 0, 8105, 0, 8107, 0, 8109, 0, 8111, 0, 8113, 0, 8115, 0, 8117, 0, 8119, 0, 8121, 0, 8123, 0, 8125, 0, 8127, 0, 8129, 0, 8131, 0, 8133, 0, 8135, 0, 8137, 0, 8139, 0, 8141, 0, 8143, 0, 8145, 0, 8147, 0, 8149, 0, 8151, 0, 8153, 0, 8155, 0, 8157, 0, 8159, 0, 8161, 0, 8163, 0, 8165, 0, 8167, 0, 8169, 0, 8171, 0, 8173, 0, 8175, 0, 8177, 0, 8179, 0, 8181, 0, 8183, 0, 8185, 0, 8187, 0, 8189, 0, 8191, 0, 8193, 0, 8195, 0, 8197, 0, 8199, 0, 8201, 0, 8203, 0, 8205, 0, 8207, 0, 8209, 0, 8211, 0, 8213, 0, 8215, 0, 8217, 0, 8219, 0, 8221, 0, 8223, 0, 8225, 0, 8227, 0, 8229, 0, 8231, 0, 8233, 0, 8235, 0, 8237, 0, 8239, 0, 8241, 0, 8243, 0, 8245, 0, 8247, 0, 8249, 0, 8251, 0, 8253, 0, 8255, 0, 8257, 0, 8259, 0, 8261, 0, 8263, 0, 8265, 0, 8267, 0, 8269, 0, 8271, 0, 8273, 0, 8275, 0, 8277, 0, 8279, 0, 8281, 0, 8283, 0, 8285, 0, 8287, 0, 8289, 0, 8291, 0, 8293, 0, 8295, 0, 8297, 0, 8299, 0, 8301, 0, 8303, 0, 8305, 0, 8307, 0, 8309, 0, 8311, 0, 8313, 0, 8315, 0, 8317, 0, 8319, 0, 8321, 0, 8323, 0, 8325, 0, 8327, 0, 8329, 0, 8331, 0, 8333, 0, 8335, 0, 8337, 0, 8339, 0, 8341, 0, 8343, 0, 8345, 0, 8347, 0, 8349, 0, 8351, 0, 8353, 0, 8355, 0, 8357, 0, 8359, 0, 8361, 0, 8363, 0, 8365, 0, 8367, 0, 8369, 0, 8371, 0, 8373, 0, 8375, 0, 8377, 0, 8379, 0, 8381, 0, 8383, 0, 8385, 0, 8387, 0, 8389, 0, 8391, 0, 8393, 0, 8395, 0, 8397, 0, 8399, 0, 8401, 0, 8403, 0, 8405, 0, 8407, 0, 8409, 0, 8411, 0, 8413, 0, 8415, 0, 8417, 0, 8419, 0, 8421, 0, 8423, 0, 8425, 0, 8427, 0, 8429, 0, 8431, 0, 8433, 0, 8435, 0, 8437, 0, 8439, 0, 8441, 0, 8443, 0, 8445, 0, 8447, 0, 8449, 0, 8451, 0, 8453, 0, 8455, 0, 8457, 0, 8459, 0, 8461, 0, 8463, 0, 8465, 0, 8467, 0, 8469, 0, 8471, 0, 8473, 0, 8475, 0, 8477, 0, 8479, 0, 8481, 0, 8483, 0, 8485, 0, 8487, 0, 8489, 0, 8491, 0, 8493, 0, 8495, 0, 8497, 0, 8499, 0, 8501, 0, 8503, 0, 8505, 0, 8507, 0, 8509, 0, 8511, 0, 8513, 0, 8515, 0, 8517, 0, 8519, 0, 8521, 0, 8523, 0, 8525, 0, 8527, 0, 8529, 0, 8531, 0, 8533, 0, 8535, 0, 8537, 0, 8539, 0, 8541, 0, 8543, 0, 8545, 0, 8547, 0, 8549, 0, 8551, 0, 8553, 0, 8555, 0, 8557, 0, 8559, 0, 8561, 0, 8563, 0, 8565, 0, 8567, 0, 8569, 0, 8571, 0, 8573, 0, 8575, 0, 8577, 0, 8579, 0, 8581, 0, 8583, 0, 8585, 0, 8587, 0, 8589, 0, 8591, 0, 8593, 0, 8595, 0, 8597, 0, 8599, 0, 8601, 0, 8603, 0, 8605, 0, 8607, 0, 8609, 0, 8611, 0, 8613, 0, 8615, 0, 8617, 0, 8619, 0, 8621, 0, 8623, 0, 8625, 0, 8627, 0, 8629, 0, 8631, 0, 8633, 0, 8635, 0, 8637, 0, 8639, 0, 8641, 0, 8643, 0, 8645, 0, 8647, 0, 8649, 0, 8651, 0, 8653, 0, 8655, 0, 8657, 0, 8659, 0, 8661, 0, 8663, 0, 8665, 0, 8667, 0, 8669, 0, 8671, 0, 8673, 0, 8675, 0, 8677, 0, 8679, 0, 8681, 0, 8683, 0, 8685, 0, 8687, 0, 8689, 0, 8691, 0, 8693, 0, 8695, 0, 8697, 0, 8699, 0, 8701, 0, 8703, 0, 8705, 0, 8707, 0, 8709, 0, 8711, 0, 8713, 0, 8715, 0, 8717, 0, 8719, 0, 8721, 0, 8723, 0, 8725, 0, 8727, 0, 8729, 0, 8731, 0, 8733, 0, 8735, 0, 8737, 0, 8739, 0, 8741, 0, 8743, 0, 8745, 0, 8747, 0, 8749, 0, 8751, 0, 8753, 0, 8755, 0, 8757, 0, 8759, 0, 8761, 0, 8763, 0, 8765, 0, 8767, 0, 8769, 0, 8771, 0, 8773, 0, 8775, 0, 8777, 0, 8779, 0, 8781, 0, 8783, 0, 8785, 0, 8787, 0, 8789, 0, 8791, 0, 8793, 0, 8795, 0, 8797, 0, 8799, 0, 8801, 0, 8803, 0, 8805, 0, 8807, 0, 8809, 0, 8811, 0, 8813, 0, 8815, 0, 8817, 0, 8819, 0, 8821, 0, 8823, 0, 8825, 0, 8827, 0, 8829, 0, 8831, 0, 8833, 0, 8835, 0, 8837, 0, 8839, 0, 8841, 0, 8843, 0, 8845, 0, 8847, 0, 8849, 0, 8851, 0, 8853, 0, 8855, 0, 8857, 0, 8859, 0, 8861, 0, 8863, 0, 8865, 0, 8867, 0, 8869, 0, 8871, 0, 8873, 0, 8875, 0, 8877, 0, 8879, 0, 8881, 0, 8883, 0, 8885, 0, 8887, 0, 8889, 0, 8891, 0, 8893, 0, 8895, 0, 8897, 0, 8899, 0, 8901, 0, 8903, 0, 8905, 0, 8907, 0, 8909, 0, 8911, 0, 8913, 0, 8915, 0, 8917, 0, 8919, 0, 8921, 0, 8923, 0, 8925, 0, 8927, 0, 8929, 0, 8931, 0, 8933, 0, 8935, 0, 8937, 0, 8939, 0, 8941, 0, 8943, 0, 8945, 0, 8947, 0, 8949, 0, 8951, 0, 8953, 0, 8955, 0, 8957, 0, 8959, 0, 8961, 0, 8963, 0, 8965, 0, 8967, 0, 8969, 0, 8971, 0, 8973, 0, 8975, 0, 8977, 0, 8979, 0, 8981, 0, 8983, 0, 8985, 0, 8987, 0, 8989, 0, 8991, 0, 8993, 0, 8995, 0, 8997, 0, 8999, 0, 9001, 0, 9003, 0, 9005, 0, 9007, 0, 9009, 0, 9011, 0, 9013, 0, 9015, 0, 9017, 0, 9019, 0, 9021, 0, 9023, 0, 9025, 0, 9027, 0, 9029, 0, 9031, 0, 9033, 0, 9035, 0, 9037, 0, 9039, 0, 9041, 0, 9043, 0, 9045, 0, 9047, 0, 9049, 0, 9051, 0, 9053, 0, 9055, 0, 9057, 0, 9059, 0, 9061, 0, 9063, 0, 9065, 0, 9067, 0, 9069, 0, 9071, 0, 9073, 0, 9075, 0, 9077, 0, 9079, 0, 9081, 0, 9083, 0, 9085, 0, 9087, 0, 9089, 0, 9091, 0, 9093, 0, 9095, 0, 9097, 0, 9099, 0, 9101, 0, 9103, 0, 9105, 0, 9107, 0, 9109, 0, 9111, 0, 9113, 0, 9115, 0, 9117, 0, 9119, 0, 9121, 0, 9123, 0, 9125, 0, 9127, 0, 9129, 0, 9131, 0, 9133, 0, 9135, 0, 9137, 0, 9139, 0, 9141, 0, 9143, 0, 9145, 0, 9147, 0, 9149, 0, 9151, 0, 9153, 0, 9155, 0, 9157, 0, 9159, 0, 9161, 0, 9163, 0, 9165, 0, 9167, 0, 9169, 0, 9171, 0, 9173, 0, 9175, 0, 9177, 0, 9179, 0, 9181, 0, 9183, 0, 9185, 0, 9187, 0, 9189, 0, 9191, 0, 9193, 0, 9195, 0, 9197, 0, 9199, 0, 9201, 0, 9203, 0, 9205, 0, 9207, 0, 9209, 0, 9211, 0, 9213, 0, 9215, 0, 9217, 0, 9219, 0, 9221, 0, 9223, 0, 9225, 0, 9227, 0, 9229, 0, 9231, 0, 9233, 0, 9235, 0, 9237, 0, 9239, 0, 9241, 0, 9243, 0, 9245, 0, 9247, 0, 9249, 0, 9251, 0, 9253, 0, 9255, 0, 9257, 0, 9259, 0, 9261, 0, 9263, 0, 9265, 0, 9267, 0, 9269, 0, 9271, 0, 9273, 0, 9275, 0, 9277, 0, 9279, 0, 9281, 0, 9283, 0, 9285, 0, 9287, 0, 9289, 0, 9291, 0, 9293, 0, 9295, 0, 9297, 0, 9299, 0, 9301, 0, 9303, 0, 9305, 0, 9307, 0, 9309, 0, 9311, 0, 9313, 0, 9315, 0, 9317, 0, 9319, 0, 9321, 0, 9323, 0, 9325, 0, 9327, 0, 9329, 0, 9331, 0, 9333, 0, 9335, 0, 9337, 0, 9339, 0, 9341, 0, 9343, 0, 9345, 0, 9347, 0, 9349, 0, 9351, 0, 9353, 0, 9355, 0, 9357, 0, 9359, 0, 9361, 0, 9363, 0, 9365, 0, 9367, 0, 9369, 0, 9371, 0, 9373, 0, 9375, 0, 9377, 0, 9379, 0, 9381, 0, 9383, 0, 9385, 0, 9387, 0, 9389, 0, 9391, 0, 9393, 0, 9395, 0, 9397, 0, 9399, 0, 9401, 0, 9403, 0, 9405, 0, 9407, 0, 9409, 0, 9411, 0, 9413, 0, 9415, 0, 9417, 0, 9419, 0, 9421, 0, 9423, 0, 9425, 0, 9427, 0, 9429, 0, 9431, 0, 9433, 0, 9435, 0, 9437, 0, 9439, 0, 9441, 0, 9443, 0, 9445, 0, 9447, 0, 9449, 0, 9451, 0, 9453, 0, 9455, 0, 9457, 0, 9459, 0, 9461, 0, 9463, 0, 9465, 0, 9467, 0, 9469, 0, 9471, 0, 9473, 0, 9475, 0, 9477, 0, 9479, 0, 9481, 0, 9483, 0, 9485, 0, 9487, 0, 9489, 0, 9491, 0, 9493, 0, 9495, 0, 9497, 0, 9499, 0, 9501, 0, 9503, 0, 9505, 0, 9507, 0, 9509, 0, 9511, 0, 9513, 0, 9515, 0, 9517, 0, 9519, 0, 9521, 0, 9523, 0, 9525, 0, 9527, 0, 9529, 0, 9531, 0, 9533, 0, 9535, 0, 9537, 0, 9539, 0, 9541, 0, 9543, 0, 9545, 0, 9547, 0, 9549, 0, 9551, 0, 9553, 0, 9555, 0, 9557, 0, 9559, 0, 9561, 0, 9563, 0, 9565, 0, 9567, 0, 9569, 0, 9571, 0, 9573, 0, 9575, 0, 9577, 0, 9579, 0, 9581, 0, 9583, 0, 9585, 0, 9587, 0, 9589, 0, 9591, 0, 9593, 0, 9595, 0, 9597, 0, 9599, 0, 9601, 0, 9603, 0, 9605, 0, 9607, 0, 9609, 0, 9611, 0, 9613, 0, 9615, 0, 9617, 0, 9619, 0, 9621, 0, 9623, 0, 9625, 0, 9627, 0, 9629, 0, 9631, 0, 9633, 0, 9635, 0, 9637, 0, 9639, 0, 9641, 0, 9643, 0, 9645, 0, 9647, 0, 9649, 0, 9651, 0, 9653, 0, 9655, 0, 9657, 0, 9659, 0, 9661, 0, 9663, 0, 9665, 0, 9667, 0, 9669, 0, 9671, 0, 9673, 0, 9675, 0, 9677, 0, 9679, 0, 9681, 0, 9683, 0, 9685, 0, 9687, 0, 9689, 0, 9691, 0, 9693, 0, 9695, 0, 9697, 0, 9699, 0, 9701, 0, 9703, 0, 9705, 0, 9707, 0, 9709, 0, 9711, 0, 9713, 0, 9715, 0, 9717, 0, 9719, 0, 9721, 0, 9723, 0, 9725, 0, 9727, 0, 9729, 0, 9731, 0, 9733, 0, 9735, 0, 9737, 0, 9739, 0, 9741, 0, 9743, 0, 9745, 0, 9747, 0, 9749, 0, 9751, 0, 9753, 0, 9755, 0, 9757, 0, 9759, 0, 9761, 0, 9763, 0, 9765, 0, 9767, 0, 9769, 0, 9771, 0, 9773, 0, 9775, 0, 9777, 0, 9779, 0, 9781, 0, 9783, 0, 9785, 0, 9787, 0, 9789, 0, 9791, 0, 9793, 0, 9795, 0, 9797, 0, 9799, 0, 9801, 0, 9803, 0, 9805, 0, 9807, 0, 9809, 0, 9811, 0, 9813, 0, 9815, 0, 9817, 0, 9819, 0, 9821, 0, 9823, 0, 9825, 0, 9827, 0, 9829, 0, 9831, 0, 9833, 0, 9835, 0, 9837, 0, 9839, 0, 9841, 0, 9843, 0, 9845, 0, 9847, 0, 9849, 0, 9851, 0, 9853, 0, 9855, 0, 9857, 0, 9859, 0, 9861, 0, 9863, 0, 9865, 0, 9867, 0, 9869, 0, 9871, 0, 9873, 0, 9875, 0, 9877, 0, 9879, 0, 9881, 0, 9883, 0, 9885, 0, 9887, 0, 9889, 0, 9891, 0, 9893, 0, 9895, 0, 9897, 0, 9899, 0, 9901, 0, 9903, 0, 9905, 0, 9907, 0, 9909, 0, 9911, 0, 9913, 0, 9915, 0, 9917, 0, 9919, 0, 9921, 0, 9923, 0, 9925, 0, 9927, 0, 9929, 0, 9931, 0, 9933, 0, 9935, 0, 9937, 0, 9939, 0, 9941, 0, 9943, 0, 9945, 0, 9947, 0, 9949, 0, 9951, 0, 9953, 0, 9955, 0, 9957, 0, 9959, 0, 9961, 0, 9963, 0, 9965, 0, 9967, 0, 9969, 0, 9971, 0, 9973, 0, 9975, 0, 9977, 0, 9979, 0, 9981, 0, 9983, 0, 9985, 0, 9987, 0, 9989, 0, 9991, 0, 9993, 0, 9995, 0, 9997, 0, 9999, 0, 10001, 0, 10003, 0, 10005, 0, 10007, 0, 10009, 0, 10011, 0, 10013, 0, 10015, 0, 10017, 0, 10019, 0, 10021, 0, 10023, 0, 10025, 0, 10027, 0, 10029, 0, 10031, 0, 10033, 0, 10035, 0, 10037, 0, 10039, 0, 10041, 0, 10043, 0, 10045, 0, 10047, 0, 10049, 0, 10051, 0, 10053, 0, 10055, 0, 10057, 0, 10059, 0, 10061, 0, 10063, 0, 10065, 0, 10067, 0, 10069, 0, 10071, 0, 10073, 0, 10075, 0, 10077, 0, 10079, 0, 10081, 0, 10083, 0, 10085, 0, 10087, 0, 10089, 0, 10091, 0, 10093, 0, 10095, 0, 10097, 0, 10099, 0, 10101, 0, 10103, 0, 10105, 0, 10107, 0, 10109, 0, 10111, 0, 10113, 0, 10115, 0, 10117, 0, 10119, 0, 10121, 0, 10123, 0, 10125, 0, 10127, 0, 10129, 0, 10131, 0, 10133, 0, 10135, 0, 10137, 0, 10139, 0, 10141, 0, 10143, 0, 10145, 0, 10147, 0, 10149, 0, 10151, 0, 10153, 0, 10155, 0, 10157, 0, 10159, 0, 10161, 0, 10163, 0, 10165, 0, 10167, 0, 10169, 0, 10171, 0, 10173, 0, 10175, 0, 10177, 0, 10179, 0, 10181, 0, 10183, 0, 10185, 0, 10187, 0, 10189, 0, 10191, 0, 10193, 0, 10195, 0, 10197, 0, 10199, 0, 10201, 0, 10203, 0, 10205, 0, 10207, 0, 10209, 0, 10211, 0, 10213, 0, 10215, 0, 10217, 0, 10219, 0, 10221, 0, 10223, 0, 10225, 0, 10227, 0, 10229, 0, 10231, 0, 10233, 0, 10235, 0, 10237, 0, 10239}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/relu_quant8_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/relu_quant8_1.example.cpp
new file mode 100644
index 000000000..515b0671c
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/relu_quant8_1.example.cpp
@@ -0,0 +1,43 @@
+// Generated file (from: relu_quant8_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 1, 126, 127}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {128, 128, 128, 128}}}
+}
+}, // End of an example
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {128, 129, 254, 255}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {128, 129, 254, 255}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/relu_quant8_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/relu_quant8_2.example.cpp
new file mode 100644
index 000000000..a59fcf068
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/relu_quant8_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: relu_quant8_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/reshape.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/reshape.example.cpp
new file mode 100644
index 000000000..054b2f45f
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/reshape.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: reshape.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1, 2, 3, 4, 5, 6, 7, 8, 9}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1, 2, 3, 4, 5, 6, 7, 8, 9}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/reshape_quant8.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/reshape_quant8.example.cpp
new file mode 100644
index 000000000..e959af7ce
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/reshape_quant8.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: reshape_quant8.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 4, 5, 6, 7, 8, 9}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 4, 5, 6, 7, 8, 9}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/reshape_quant8_weights_as_inputs.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/reshape_quant8_weights_as_inputs.example.cpp
new file mode 100644
index 000000000..40260cfe1
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/reshape_quant8_weights_as_inputs.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: reshape_quant8_weights_as_inputs.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {{1, {-1}}},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 4, 5, 6, 7, 8, 9}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 4, 5, 6, 7, 8, 9}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/reshape_weights_as_inputs.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/reshape_weights_as_inputs.example.cpp
new file mode 100644
index 000000000..d97b03ee9
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/reshape_weights_as_inputs.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: reshape_weights_as_inputs.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1, 2, 3, 4, 5, 6, 7, 8, 9}}},
+ // int -> INT32 map
+ {{1, {-1}}},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1, 2, 3, 4, 5, 6, 7, 8, 9}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/resize_bilinear.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/resize_bilinear.example.cpp
new file mode 100644
index 000000000..1b2bce5eb
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/resize_bilinear.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: resize_bilinear.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 1.0f, 2.0f, 2.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 1.0f, 1.0f, 1.666666667f, 1.666666667f, 1.666666667f, 2.0f, 2.0f, 2.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/resize_bilinear_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/resize_bilinear_2.example.cpp
new file mode 100644
index 000000000..df5d4bfea
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/resize_bilinear_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: resize_bilinear_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {3, 4, 6, 10, 9, 10, 12, 16}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {3, 4, 5, 8, 6, 10, 7, 8, 9, 12, 10, 14, 9, 10, 11, 14, 12, 16}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/rnn.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/rnn.example.cpp
new file mode 100644
index 000000000..0697fb122
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/rnn.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: rnn.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.23689353f, 0.285385f, 0.037029743f, -0.19858193f, -0.27569133f, 0.43773448f, 0.60379338f, 0.35562468f, 0.23689353f, 0.285385f, 0.037029743f, -0.19858193f, -0.27569133f, 0.43773448f, 0.60379338f, 0.35562468f}}, {1, {0.461459f, 0.153381f, 0.529743f, -0.00371218f, 0.676267f, -0.211346f, 0.317493f, 0.969689f, -0.343251f, 0.186423f, 0.398151f, 0.152399f, 0.448504f, 0.317662f, 0.523556f, -0.323514f, 0.480877f, 0.333113f, -0.757714f, -0.674487f, -0.643585f, 0.217766f, -0.0251462f, 0.79512f, -0.595574f, -0.422444f, 0.371572f, -0.452178f, -0.556069f, -0.482188f, -0.685456f, -0.727851f, 0.841829f, 0.551535f, -0.232336f, 0.729158f, -0.00294906f, -0.69754f, 0.766073f, -0.178424f, 0.369513f, -0.423241f, 0.548547f, -0.0152023f, -0.757482f, -0.85491f, 0.251331f, -0.989183f, 0.306261f, -0.340716f, 0.886103f, -0.0726757f, -0.723523f, -0.784303f, 0.0354295f, 0.566564f, -0.485469f, -0.620498f, 0.832546f, 0.697884f, -0.279115f, 0.294415f, -0.584313f, 0.548772f, 0.0648819f, 0.968726f, 0.723834f, -0.0080452f, -0.350386f, -0.272803f, 0.115121f, -0.412644f, -0.824713f, -0.992843f, -0.592904f, -0.417893f, 0.863791f, -0.423461f, -0.147601f, -0.770664f, -0.479006f, 0.654782f, 0.587314f, -0.639158f, 0.816969f, -0.337228f, 0.659878f, 0.73107f, 0.754768f, -0.337042f, 0.0960841f, 0.368357f, 0.244191f, -0.817703f, -0.211223f, 0.442012f, 0.37225f, -0.623598f, -0.405423f, 0.455101f, 0.673656f, -0.145345f, -0.511346f, -0.901675f, -0.81252f, -0.127006f, 0.809865f, -0.721884f, 0.636255f, 0.868989f, -0.347973f, -0.10179f, -0.777449f, 0.917274f, 0.819286f, 0.206218f, -0.00785118f, 0.167141f, 0.45872f, 0.972934f, -0.276798f, 0.837861f, 0.747958f, -0.0151566f, -0.330057f, -0.469077f, 0.277308f, 0.415818f}}, {2, {0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f}}, {3, {0.065691948f, -0.69055247f, 0.1107955f, -0.97084129f, -0.23957068f, -0.23566568f, -0.389184f, 0.47481549f, -0.4791103f, 0.29931796f, 0.10463274f, 0.83918178f, 0.37197268f, 0.61957061f, 0.3956964f, -0.37609905f}}, {4, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, {1, {0.496726f, 0, 0.965996f, 0, 0.0584254f, 0, 0, 0.12315f, 0, 0, 0.612266f, 0.456601f, 0, 0.52286f, 1.16099f, 0.0291232f, 0.496726f, 0, 0.965996f, 0, 0.0584254f, 0, 0, 0.12315f, 0, 0, 0.612266f, 0.456601f, 0, 0.52286f, 1.16099f, 0.0291232f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/rnn_state.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/rnn_state.example.cpp
new file mode 100644
index 000000000..3766691f2
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/rnn_state.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: rnn_state.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.69424844f, -0.93421471f, -0.87287879f, 0.37144363f, -0.62476718f, 0.23791671f, 0.40060222f, 0.1356622f, -0.69424844f, -0.93421471f, -0.87287879f, 0.37144363f, -0.62476718f, 0.23791671f, 0.40060222f, 0.1356622f}}, {1, {0.461459f, 0.153381f, 0.529743f, -0.00371218f, 0.676267f, -0.211346f, 0.317493f, 0.969689f, -0.343251f, 0.186423f, 0.398151f, 0.152399f, 0.448504f, 0.317662f, 0.523556f, -0.323514f, 0.480877f, 0.333113f, -0.757714f, -0.674487f, -0.643585f, 0.217766f, -0.0251462f, 0.79512f, -0.595574f, -0.422444f, 0.371572f, -0.452178f, -0.556069f, -0.482188f, -0.685456f, -0.727851f, 0.841829f, 0.551535f, -0.232336f, 0.729158f, -0.00294906f, -0.69754f, 0.766073f, -0.178424f, 0.369513f, -0.423241f, 0.548547f, -0.0152023f, -0.757482f, -0.85491f, 0.251331f, -0.989183f, 0.306261f, -0.340716f, 0.886103f, -0.0726757f, -0.723523f, -0.784303f, 0.0354295f, 0.566564f, -0.485469f, -0.620498f, 0.832546f, 0.697884f, -0.279115f, 0.294415f, -0.584313f, 0.548772f, 0.0648819f, 0.968726f, 0.723834f, -0.0080452f, -0.350386f, -0.272803f, 0.115121f, -0.412644f, -0.824713f, -0.992843f, -0.592904f, -0.417893f, 0.863791f, -0.423461f, -0.147601f, -0.770664f, -0.479006f, 0.654782f, 0.587314f, -0.639158f, 0.816969f, -0.337228f, 0.659878f, 0.73107f, 0.754768f, -0.337042f, 0.0960841f, 0.368357f, 0.244191f, -0.817703f, -0.211223f, 0.442012f, 0.37225f, -0.623598f, -0.405423f, 0.455101f, 0.673656f, -0.145345f, -0.511346f, -0.901675f, -0.81252f, -0.127006f, 0.809865f, -0.721884f, 0.636255f, 0.868989f, -0.347973f, -0.10179f, -0.777449f, 0.917274f, 0.819286f, 0.206218f, -0.00785118f, 0.167141f, 0.45872f, 0.972934f, -0.276798f, 0.837861f, 0.747958f, -0.0151566f, -0.330057f, -0.469077f, 0.277308f, 0.415818f}}, {2, {0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1f}}, {3, {0.065691948f, -0.69055247f, 0.1107955f, -0.97084129f, -0.23957068f, -0.23566568f, -0.389184f, 0.47481549f, -0.4791103f, 0.29931796f, 0.10463274f, 0.83918178f, 0.37197268f, 0.61957061f, 0.3956964f, -0.37609905f}}, {4, {0.496726f, 0, 0.965996f, 0, 0.0584256f, 0, 0, 0.12315f, 0, 0, 0.612267f, 0.456601f, 0, 0.52286f, 1.16099f, 0.0291233f, 0.496726f, 0, 0.965996f, 0, 0.0584256f, 0, 0, 0.12315f, 0, 0, 0.612267f, 0.456601f, 0, 0.52286f, 1.16099f, 0.0291233f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0, 0, 0.524902f, 0, 0, 0, 0, 1.02116f, 0, 1.35762f, 0, 0.356909f, 0.436415f, 0.0355731f, 0, 0, 0, 0, 0.524902f, 0, 0, 0, 0, 1.02116f, 0, 1.35762f, 0, 0.356909f, 0.436415f, 0.0355731f, 0, 0}}, {1, {0, 0, 0.524901f, 0, 0, 0, 0, 1.02116f, 0, 1.35762f, 0, 0.356909f, 0.436415f, 0.0355727f, 0, 0, 0, 0, 0.524901f, 0, 0, 0, 0, 1.02116f, 0, 1.35762f, 0, 0.356909f, 0.436415f, 0.0355727f, 0, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/softmax_float_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/softmax_float_1.example.cpp
new file mode 100644
index 000000000..d2cf06af9
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/softmax_float_1.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: softmax_float_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 2.0f, 10.0f, 20.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.25f, 0.25f, 0.25f, 0.25f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/softmax_float_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/softmax_float_2.example.cpp
new file mode 100644
index 000000000..deba11aec
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/softmax_float_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: softmax_float_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, -1.0f, -2.0f, -3.0f, -4.0f, -5.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.011656231f, 0.031684921f, 0.086128544f, 0.234121657f, 0.636408647f, 0.636408647f, 0.234121657f, 0.086128544f, 0.031684921f, 0.011656231f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/softmax_quant8_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/softmax_quant8_1.example.cpp
new file mode 100644
index 000000000..7b7506ed3
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/softmax_quant8_1.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: softmax_quant8_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 10, 20}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {64, 64, 64, 64}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/softmax_quant8_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/softmax_quant8_2.example.cpp
new file mode 100644
index 000000000..8152c89a9
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/softmax_quant8_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: softmax_quant8_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 4, 5, 255, 254, 253, 252, 251}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {15, 24, 40, 67, 110, 110, 67, 40, 24, 15}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/space_to_depth_float_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/space_to_depth_float_1.example.cpp
new file mode 100644
index 000000000..d76f8e799
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/space_to_depth_float_1.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: space_to_depth_float_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.4f, 2.3f, 3.2f, 4.1f, 5.4f, 6.3f, 7.2f, 8.1f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.4f, 2.3f, 3.2f, 4.1f, 5.4f, 6.3f, 7.2f, 8.1f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/space_to_depth_float_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/space_to_depth_float_2.example.cpp
new file mode 100644
index 000000000..452df7a6f
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/space_to_depth_float_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: space_to_depth_float_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {1.0f, 2.0f, 5.0f, 6.0f, 3.0f, 4.0f, 7.0f, 8.0f, 9.0f, 10.0f, 13.0f, 14.0f, 11.0f, 12.0f, 15.0f, 16.0f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/space_to_depth_float_3.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/space_to_depth_float_3.example.cpp
new file mode 100644
index 000000000..ef6928b25
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/space_to_depth_float_3.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: space_to_depth_float_3.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {10, 20, 11, 21, 12, 22, 13, 23, 14, 24, 15, 25, 16, 26, 17, 27, 18, 28, 19, 29, 110, 210, 111, 211, 112, 212, 113, 213, 114, 214, 115, 215}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {10, 20, 11, 21, 14, 24, 15, 25, 12, 22, 13, 23, 16, 26, 17, 27, 18, 28, 19, 29, 112, 212, 113, 213, 110, 210, 111, 211, 114, 214, 115, 215}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/space_to_depth_quant8_1.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/space_to_depth_quant8_1.example.cpp
new file mode 100644
index 000000000..5c82f5d4e
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/space_to_depth_quant8_1.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: space_to_depth_quant8_1.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 4, 252, 253, 254, 255}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {1, 2, 3, 4, 252, 253, 254, 255}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/space_to_depth_quant8_2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/space_to_depth_quant8_2.example.cpp
new file mode 100644
index 000000000..9cc30e773
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/space_to_depth_quant8_2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: space_to_depth_quant8_2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 1, 2, 3, 4, 5, 6, 7, 248, 249, 250, 251, 252, 253, 254, 255}}}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {{0, {0, 1, 4, 5, 2, 3, 6, 7, 248, 249, 252, 253, 250, 251, 254, 255}}}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/svdf.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/svdf.example.cpp
new file mode 100644
index 000000000..1e2b54db6
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/svdf.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: svdf.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.12609188f, -0.46347019f, -0.89598465f, 0.12609188f, -0.46347019f, -0.89598465f}}, {1, {-0.31930989f, -0.36118156f, 0.0079667f, 0.37613347f, 0.22197971f, 0.12416199f, 0.27901134f, 0.27557442f, 0.3905206f, -0.36137494f, -0.06634006f, -0.10640851f}}, {2, {-0.31930989f, 0.37613347f, 0.27901134f, -0.36137494f, -0.36118156f, 0.22197971f, 0.27557442f, -0.06634006f, 0.0079667f, 0.12416199f, 0.3905206f, -0.10640851f, -0.0976817f, 0.15294972f, 0.39635518f, -0.02702999f, 0.39296314f, 0.15785322f, 0.21931258f, 0.31053296f, -0.36916667f, 0.38031587f, -0.21580373f, 0.27072677f, 0.23622236f, 0.34936687f, 0.18174365f, 0.35907319f, -0.17493086f, 0.324846f, -0.10781813f, 0.27201805f, 0.14324132f, -0.23681851f, -0.27115166f, -0.01580888f, -0.14943552f, 0.15465137f, 0.09784451f, -0.0337657f}}, {3, {}}, {4, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{1, {0.014899f, -0.0517661f, -0.143725f, -0.00271883f, 0.014899f, -0.0517661f, -0.143725f, -0.00271883f}}, {0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/svdf2.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/svdf2.example.cpp
new file mode 100644
index 000000000..602cddf75
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/svdf2.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: svdf2.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.12609188f, -0.46347019f, -0.89598465f, 0.35867718f, 0.36897406f, 0.73463392f}}, {1, {-0.31930989f, 0.0079667f, 0.39296314f, 0.37613347f, 0.12416199f, 0.15785322f, 0.27901134f, 0.3905206f, 0.21931258f, -0.36137494f, -0.10640851f, 0.31053296f, -0.36118156f, -0.0976817f, -0.36916667f, 0.22197971f, 0.15294972f, 0.38031587f, 0.27557442f, 0.39635518f, -0.21580373f, -0.06634006f, -0.02702999f, 0.27072677f}}, {2, {-0.31930989f, 0.37613347f, 0.27901134f, -0.36137494f, -0.36118156f, 0.22197971f, 0.27557442f, -0.06634006f, 0.0079667f, 0.12416199f, 0.3905206f, -0.10640851f, -0.0976817f, 0.15294972f, 0.39635518f, -0.02702999f, 0.39296314f, 0.15785322f, 0.21931258f, 0.31053296f, -0.36916667f, 0.38031587f, -0.21580373f, 0.27072677f, 0.23622236f, 0.34936687f, 0.18174365f, 0.35907319f, -0.17493086f, 0.324846f, -0.10781813f, 0.27201805f, 0.14324132f, -0.23681851f, -0.27115166f, -0.01580888f, -0.14943552f, 0.15465137f, 0.09784451f, -0.0337657f, -0.14884081f, 0.19931212f, -0.36002168f, 0.34663299f, -0.11405486f, 0.12672701f, 0.39463779f, -0.07886535f, -0.06384811f, 0.08249187f, -0.26816407f, -0.19905911f, 0.29211238f, 0.31264046f, -0.28664589f, 0.05698794f, 0.11613581f, 0.14078894f, 0.02187902f, -0.21781836f, -0.15567942f, 0.08693647f, -0.38256618f, 0.36580828f, -0.22922277f, -0.0226903f, 0.12878349f, -0.28122205f, -0.10850525f, -0.11955214f, 0.27179423f, -0.04710215f, 0.31069002f, 0.22672787f, 0.09580326f, 0.08682203f, 0.1258215f, 0.1851041f, 0.29228821f, 0.12366763f}}, {3, {}}, {4, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{1, {-0.09623547f, -0.10193135f, 0.11083051f, -0.0347917f, 0.1141196f, 0.12965347f, -0.12652366f, 0.01007236f}}, {0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/svdf_state.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/svdf_state.example.cpp
new file mode 100644
index 000000000..99604a4ba
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/svdf_state.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: svdf_state.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {0.14278367f, -1.64410412f, -0.75222826f, 0.14278367f, -1.64410412f, -0.75222826f}}, {1, {-0.31930989f, -0.36118156f, 0.0079667f, 0.37613347f, 0.22197971f, 0.12416199f, 0.27901134f, 0.27557442f, 0.3905206f, -0.36137494f, -0.06634006f, -0.10640851f}}, {2, {-0.31930989f, 0.37613347f, 0.27901134f, -0.36137494f, -0.36118156f, 0.22197971f, 0.27557442f, -0.06634006f, 0.0079667f, 0.12416199f, 0.3905206f, -0.10640851f, -0.0976817f, 0.15294972f, 0.39635518f, -0.02702999f, 0.39296314f, 0.15785322f, 0.21931258f, 0.31053296f, -0.36916667f, 0.38031587f, -0.21580373f, 0.27072677f, 0.23622236f, 0.34936687f, 0.18174365f, 0.35907319f, -0.17493086f, 0.324846f, -0.10781813f, 0.27201805f, 0.14324132f, -0.23681851f, -0.27115166f, -0.01580888f, -0.14943552f, 0.15465137f, 0.09784451f, -0.0337657f}}, {3, {}}, {4, {0, 0, 0, 0, 0, 0, 0, 0, 0.119996f, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.166701f, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.44244f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0805206f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.119996f, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.166701f, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.44244f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0805206f, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{1, {0.068281f, -0.162217f, -0.152268f, 0.00323521f, 0.068281f, -0.162217f, -0.152268f, 0.00323521f}}, {0, {0, 0, 0, 0, 0, 0, 0, 0.119996f, 0.542235f, 0, 0, 0, 0, 0, 0, 0, 0, -0.166701f, -0.40465f, 0, 0, 0, 0, 0, 0, 0, 0, -0.44244f, -0.706995f, 0, 0, 0, 0, 0, 0, 0, 0, 0.0805206f, 0.137515f, 0, 0, 0, 0, 0, 0, 0, 0, 0.119996f, 0.542235f, 0, 0, 0, 0, 0, 0, 0, 0, -0.166701f, -0.40465f, 0, 0, 0, 0, 0, 0, 0, 0, -0.44244f, -0.706995f, 0, 0, 0, 0, 0, 0, 0, 0, 0.0805206f, 0.137515f, 0}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/examples/tanh.example.cpp b/runtimes/tests/neural_networks_test/generated/examples/tanh.example.cpp
new file mode 100644
index 000000000..5c12ca093
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/examples/tanh.example.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: tanh.mod.py). Do not edit
+// Begin of an example
+{
+//Input(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-1, 0, 1, 10}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+},
+//Output(s)
+{ // See tools/test_generator/include/TestHarness.h:MixedTyped
+ // int -> FLOAT32 map
+ {{0, {-0.761594156f, 0, 0.761594156f, 0.999999996f}}},
+ // int -> INT32 map
+ {},
+ // int -> QUANT8_ASYMM map
+ {}
+}
+}, // End of an example
diff --git a/runtimes/tests/neural_networks_test/generated/models/add.model.cpp b/runtimes/tests/neural_networks_test/generated/models/add.model.cpp
new file mode 100644
index 000000000..e8b3aa130
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/add.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: add.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {2});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto act = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_ADD, {op1, op2, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/add_broadcast_quant8.model.cpp b/runtimes/tests/neural_networks_test/generated/models/add_broadcast_quant8.model.cpp
new file mode 100644
index 000000000..3dd6f3fe6
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/add_broadcast_quant8.model.cpp
@@ -0,0 +1,25 @@
+// Generated file (from: add_broadcast_quant8.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2}, 2.0, 0);
+ OperandType type1(Type::TENSOR_QUANT8_ASYMM, {2, 2}, 1.0, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto act = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type1);
+ // Phase 2, operations
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_ADD, {op1, op2, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/add_quant8.model.cpp b/runtimes/tests/neural_networks_test/generated/models/add_quant8.model.cpp
new file mode 100644
index 000000000..57c7c5708
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/add_quant8.model.cpp
@@ -0,0 +1,25 @@
+// Generated file (from: add_quant8.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_QUANT8_ASYMM, {2}, 1.0, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {2}, 2.0, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto act = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type1);
+ // Phase 2, operations
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_ADD, {op1, op2, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/avg_pool_float_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/avg_pool_float_1.model.cpp
new file mode 100644
index 000000000..9f3b02e7e
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/avg_pool_float_1.model.cpp
@@ -0,0 +1,29 @@
+// Generated file (from: avg_pool_float_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto cons1 = model->addOperand(&type1);
+ auto pad0 = model->addOperand(&type1);
+ auto act = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t cons1_init[] = {1};
+ model->setOperandValue(cons1, cons1_init, sizeof(int32_t) * 1);
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_AVERAGE_POOL_2D, {op1, pad0, pad0, pad0, pad0, cons1, cons1, cons1, cons1, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/avg_pool_float_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/avg_pool_float_2.model.cpp
new file mode 100644
index 000000000..f6f2e5b90
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/avg_pool_float_2.model.cpp
@@ -0,0 +1,33 @@
+// Generated file (from: avg_pool_float_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {5, 11, 13, 3});
+ OperandType type0(Type::TENSOR_FLOAT32, {5, 52, 60, 3});
+ // Phase 1, operands
+ auto i0 = model->addOperand(&type0);
+ auto stride = model->addOperand(&type1);
+ auto filter = model->addOperand(&type1);
+ auto padding = model->addOperand(&type1);
+ auto activation = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t stride_init[] = {5};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t filter_init[] = {100};
+ model->setOperandValue(filter, filter_init, sizeof(int32_t) * 1);
+ static int32_t padding_init[] = {50};
+ model->setOperandValue(padding, padding_init, sizeof(int32_t) * 1);
+ static int32_t activation_init[] = {0};
+ model->setOperandValue(activation, activation_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_AVERAGE_POOL_2D, {i0, padding, padding, padding, padding, stride, stride, filter, filter, activation}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {i0},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/avg_pool_float_3.model.cpp b/runtimes/tests/neural_networks_test/generated/models/avg_pool_float_3.model.cpp
new file mode 100644
index 000000000..c056c61c3
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/avg_pool_float_3.model.cpp
@@ -0,0 +1,33 @@
+// Generated file (from: avg_pool_float_3.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 200, 180, 1});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 96, 86, 1});
+ // Phase 1, operands
+ auto i0 = model->addOperand(&type0);
+ auto stride = model->addOperand(&type1);
+ auto filter = model->addOperand(&type1);
+ auto padding = model->addOperand(&type1);
+ auto activation = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t stride_init[] = {2};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t filter_init[] = {10};
+ model->setOperandValue(filter, filter_init, sizeof(int32_t) * 1);
+ static int32_t padding_init[] = {0};
+ model->setOperandValue(padding, padding_init, sizeof(int32_t) * 1);
+ static int32_t activation_init[] = {0};
+ model->setOperandValue(activation, activation_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_AVERAGE_POOL_2D, {i0, padding, padding, padding, padding, stride, stride, filter, filter, activation}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {i0},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/avg_pool_float_4.model.cpp b/runtimes/tests/neural_networks_test/generated/models/avg_pool_float_4.model.cpp
new file mode 100644
index 000000000..d3b613391
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/avg_pool_float_4.model.cpp
@@ -0,0 +1,33 @@
+// Generated file (from: avg_pool_float_4.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {5, 11, 13, 3});
+ OperandType type0(Type::TENSOR_FLOAT32, {5, 52, 60, 3});
+ // Phase 1, operands
+ auto i0 = model->addOperand(&type0);
+ auto stride = model->addOperand(&type1);
+ auto filter = model->addOperand(&type1);
+ auto padding = model->addOperand(&type1);
+ auto relu6_activation = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t stride_init[] = {5};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t filter_init[] = {100};
+ model->setOperandValue(filter, filter_init, sizeof(int32_t) * 1);
+ static int32_t padding_init[] = {50};
+ model->setOperandValue(padding, padding_init, sizeof(int32_t) * 1);
+ static int32_t relu6_activation_init[] = {3};
+ model->setOperandValue(relu6_activation, relu6_activation_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_AVERAGE_POOL_2D, {i0, padding, padding, padding, padding, stride, stride, filter, filter, relu6_activation}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {i0},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/avg_pool_float_5.model.cpp b/runtimes/tests/neural_networks_test/generated/models/avg_pool_float_5.model.cpp
new file mode 100644
index 000000000..1e0aa941b
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/avg_pool_float_5.model.cpp
@@ -0,0 +1,30 @@
+// Generated file (from: avg_pool_float_5.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 2, 1});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 4, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto cons2 = model->addOperand(&type1);
+ auto pad_same = model->addOperand(&type1);
+ auto act_none = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t cons2_init[] = {2};
+ model->setOperandValue(cons2, cons2_init, sizeof(int32_t) * 1);
+ static int32_t pad_same_init[] = {1};
+ model->setOperandValue(pad_same, pad_same_init, sizeof(int32_t) * 1);
+ static int32_t act_none_init[] = {0};
+ model->setOperandValue(act_none, act_none_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_AVERAGE_POOL_2D, {op1, pad_same, cons2, cons2, cons2, cons2, act_none}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/avg_pool_quant8_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/avg_pool_quant8_1.model.cpp
new file mode 100644
index 000000000..c14c38324
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/avg_pool_quant8_1.model.cpp
@@ -0,0 +1,29 @@
+// Generated file (from: avg_pool_quant8_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.5f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto cons1 = model->addOperand(&type1);
+ auto pad0 = model->addOperand(&type1);
+ auto act = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t cons1_init[] = {1};
+ model->setOperandValue(cons1, cons1_init, sizeof(int32_t) * 1);
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_AVERAGE_POOL_2D, {op1, pad0, pad0, pad0, pad0, cons1, cons1, cons1, cons1, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/avg_pool_quant8_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/avg_pool_quant8_2.model.cpp
new file mode 100644
index 000000000..0d346d48d
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/avg_pool_quant8_2.model.cpp
@@ -0,0 +1,33 @@
+// Generated file (from: avg_pool_quant8_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {5, 11, 13, 3}, 0.5f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {5, 52, 60, 3}, 0.5f, 0);
+ // Phase 1, operands
+ auto i0 = model->addOperand(&type0);
+ auto stride = model->addOperand(&type1);
+ auto filter = model->addOperand(&type1);
+ auto padding = model->addOperand(&type1);
+ auto activation = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t stride_init[] = {5};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t filter_init[] = {10};
+ model->setOperandValue(filter, filter_init, sizeof(int32_t) * 1);
+ static int32_t padding_init[] = {5};
+ model->setOperandValue(padding, padding_init, sizeof(int32_t) * 1);
+ static int32_t activation_init[] = {0};
+ model->setOperandValue(activation, activation_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_AVERAGE_POOL_2D, {i0, padding, padding, padding, padding, stride, stride, filter, filter, activation}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {i0},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/avg_pool_quant8_3.model.cpp b/runtimes/tests/neural_networks_test/generated/models/avg_pool_quant8_3.model.cpp
new file mode 100644
index 000000000..4bcab8fd4
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/avg_pool_quant8_3.model.cpp
@@ -0,0 +1,33 @@
+// Generated file (from: avg_pool_quant8_3.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 100, 100, 1}, 0.5f, 0);
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {1, 23, 23, 1}, 0.5f, 0);
+ // Phase 1, operands
+ auto i0 = model->addOperand(&type0);
+ auto stride = model->addOperand(&type1);
+ auto filter = model->addOperand(&type1);
+ auto padding = model->addOperand(&type1);
+ auto activation = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t stride_init[] = {4};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t filter_init[] = {10};
+ model->setOperandValue(filter, filter_init, sizeof(int32_t) * 1);
+ static int32_t padding_init[] = {0};
+ model->setOperandValue(padding, padding_init, sizeof(int32_t) * 1);
+ static int32_t activation_init[] = {0};
+ model->setOperandValue(activation, activation_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_AVERAGE_POOL_2D, {i0, padding, padding, padding, padding, stride, stride, filter, filter, activation}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {i0},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/avg_pool_quant8_4.model.cpp b/runtimes/tests/neural_networks_test/generated/models/avg_pool_quant8_4.model.cpp
new file mode 100644
index 000000000..998138778
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/avg_pool_quant8_4.model.cpp
@@ -0,0 +1,29 @@
+// Generated file (from: avg_pool_quant8_4.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 1}, 0.5f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto cons1 = model->addOperand(&type1);
+ auto pad0 = model->addOperand(&type1);
+ auto relu1_activitation = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t cons1_init[] = {1};
+ model->setOperandValue(cons1, cons1_init, sizeof(int32_t) * 1);
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t relu1_activitation_init[] = {2};
+ model->setOperandValue(relu1_activitation, relu1_activitation_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_AVERAGE_POOL_2D, {op1, pad0, pad0, pad0, pad0, cons1, cons1, cons1, cons1, relu1_activitation}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/avg_pool_quant8_5.model.cpp b/runtimes/tests/neural_networks_test/generated/models/avg_pool_quant8_5.model.cpp
new file mode 100644
index 000000000..31b6c1834
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/avg_pool_quant8_5.model.cpp
@@ -0,0 +1,30 @@
+// Generated file (from: avg_pool_quant8_5.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 1}, 0.0625f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2, 4, 1}, 0.0625f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto cons2 = model->addOperand(&type1);
+ auto pad_same = model->addOperand(&type1);
+ auto act_none = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t cons2_init[] = {2};
+ model->setOperandValue(cons2, cons2_init, sizeof(int32_t) * 1);
+ static int32_t pad_same_init[] = {1};
+ model->setOperandValue(pad_same, pad_same_init, sizeof(int32_t) * 1);
+ static int32_t act_none_init[] = {0};
+ model->setOperandValue(act_none, act_none_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_AVERAGE_POOL_2D, {op1, pad_same, cons2, cons2, cons2, cons2, act_none}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/concat_float_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/concat_float_1.model.cpp
new file mode 100644
index 000000000..a40506dcd
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/concat_float_1.model.cpp
@@ -0,0 +1,25 @@
+// Generated file (from: concat_float_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 3});
+ OperandType type2(Type::TENSOR_FLOAT32, {4, 3});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto axis0 = model->addOperand(&type1);
+ auto result = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t axis0_init[] = {0};
+ model->setOperandValue(axis0, axis0_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONCATENATION, {op1, op2, axis0}, {result});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {result});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/concat_float_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/concat_float_2.model.cpp
new file mode 100644
index 000000000..2938a1aec
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/concat_float_2.model.cpp
@@ -0,0 +1,26 @@
+// Generated file (from: concat_float_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_FLOAT32, {40, 230});
+ OperandType type0(Type::TENSOR_FLOAT32, {52, 230});
+ OperandType type3(Type::TENSOR_FLOAT32, {92, 230});
+ // Phase 1, operands
+ auto input1 = model->addOperand(&type0);
+ auto input2 = model->addOperand(&type1);
+ auto axis0 = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t axis0_init[] = {0};
+ model->setOperandValue(axis0, axis0_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONCATENATION, {input1, input2, axis0}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input1, input2},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/concat_float_3.model.cpp b/runtimes/tests/neural_networks_test/generated/models/concat_float_3.model.cpp
new file mode 100644
index 000000000..ac5cc8f2a
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/concat_float_3.model.cpp
@@ -0,0 +1,26 @@
+// Generated file (from: concat_float_3.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_FLOAT32, {212, 30});
+ OperandType type0(Type::TENSOR_FLOAT32, {212, 60});
+ OperandType type3(Type::TENSOR_FLOAT32, {212, 90});
+ // Phase 1, operands
+ auto input1 = model->addOperand(&type0);
+ auto input2 = model->addOperand(&type1);
+ auto axis1 = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t axis1_init[] = {1};
+ model->setOperandValue(axis1, axis1_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONCATENATION, {input1, input2, axis1}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input1, input2},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/concat_quant8_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/concat_quant8_1.model.cpp
new file mode 100644
index 000000000..ab377d6a4
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/concat_quant8_1.model.cpp
@@ -0,0 +1,25 @@
+// Generated file (from: concat_quant8_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {2, 3}, 0.5f, 0);
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {2, 6}, 0.5f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto axis1 = model->addOperand(&type1);
+ auto result = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t axis1_init[] = {1};
+ model->setOperandValue(axis1, axis1_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONCATENATION, {op1, op2, axis1}, {result});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {result});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/concat_quant8_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/concat_quant8_2.model.cpp
new file mode 100644
index 000000000..286b5d82c
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/concat_quant8_2.model.cpp
@@ -0,0 +1,26 @@
+// Generated file (from: concat_quant8_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_QUANT8_ASYMM, {40, 300}, 0.5f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {52, 300}, 0.5f, 0);
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {92, 300}, 0.5f, 0);
+ // Phase 1, operands
+ auto input1 = model->addOperand(&type0);
+ auto input2 = model->addOperand(&type1);
+ auto axis0 = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t axis0_init[] = {0};
+ model->setOperandValue(axis0, axis0_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONCATENATION, {input1, input2, axis0}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input1, input2},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/concat_quant8_3.model.cpp b/runtimes/tests/neural_networks_test/generated/models/concat_quant8_3.model.cpp
new file mode 100644
index 000000000..085c0d930
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/concat_quant8_3.model.cpp
@@ -0,0 +1,26 @@
+// Generated file (from: concat_quant8_3.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_QUANT8_ASYMM, {400, 30}, 0.5f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {400, 60}, 0.5f, 0);
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {400, 90}, 0.5f, 0);
+ // Phase 1, operands
+ auto input1 = model->addOperand(&type0);
+ auto input2 = model->addOperand(&type1);
+ auto axis1 = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t axis1_init[] = {1};
+ model->setOperandValue(axis1, axis1_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONCATENATION, {input1, input2, axis1}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input1, input2},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/conv_1_h3_w2_SAME.model.cpp b/runtimes/tests/neural_networks_test/generated/models/conv_1_h3_w2_SAME.model.cpp
new file mode 100644
index 000000000..47d92b6b8
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/conv_1_h3_w2_SAME.model.cpp
@@ -0,0 +1,41 @@
+// Generated file (from: conv_1_h3_w2_SAME.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {1, 3, 2, 3});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 8, 8, 1});
+ OperandType type1(Type::TENSOR_FLOAT32, {1, 8, 8, 3});
+ OperandType type4(Type::TENSOR_FLOAT32, {1});
+ // Phase 1, operands
+ auto b4 = model->addOperand(&type0);
+ auto b5 = model->addOperand(&type0);
+ auto b6 = model->addOperand(&type0);
+ auto b7 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto op0 = model->addOperand(&type3);
+ auto op1 = model->addOperand(&type4);
+ // Phase 2, operations
+ static int32_t b4_init[] = {1};
+ model->setOperandValue(b4, b4_init, sizeof(int32_t) * 1);
+ static int32_t b5_init[] = {1};
+ model->setOperandValue(b5, b5_init, sizeof(int32_t) * 1);
+ static int32_t b6_init[] = {1};
+ model->setOperandValue(b6, b6_init, sizeof(int32_t) * 1);
+ static int32_t b7_init[] = {0};
+ model->setOperandValue(b7, b7_init, sizeof(int32_t) * 1);
+ static float op0_init[] = {-0.966213f, -0.467474f, -0.82203f, -0.579455f, 0.0278809f, -0.79946f, -0.684259f, 0.563238f, 0.37289f, 0.738216f, 0.386045f, -0.917775f, 0.184325f, -0.270568f, 0.82236f, 0.0973683f, -0.941308f, -0.144706f};
+ model->setOperandValue(op0, op0_init, sizeof(float) * 18);
+ static float op1_init[] = {0.0f};
+ model->setOperandValue(op1, op1_init, sizeof(float) * 1);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op2, op0, op1, b4, b5, b6, b7}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/conv_1_h3_w2_VALID.model.cpp b/runtimes/tests/neural_networks_test/generated/models/conv_1_h3_w2_VALID.model.cpp
new file mode 100644
index 000000000..3a7294684
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/conv_1_h3_w2_VALID.model.cpp
@@ -0,0 +1,41 @@
+// Generated file (from: conv_1_h3_w2_VALID.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {1, 3, 2, 3});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 6, 7, 1});
+ OperandType type1(Type::TENSOR_FLOAT32, {1, 8, 8, 3});
+ OperandType type4(Type::TENSOR_FLOAT32, {1});
+ // Phase 1, operands
+ auto b4 = model->addOperand(&type0);
+ auto b5 = model->addOperand(&type0);
+ auto b6 = model->addOperand(&type0);
+ auto b7 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto op0 = model->addOperand(&type3);
+ auto op1 = model->addOperand(&type4);
+ // Phase 2, operations
+ static int32_t b4_init[] = {2};
+ model->setOperandValue(b4, b4_init, sizeof(int32_t) * 1);
+ static int32_t b5_init[] = {1};
+ model->setOperandValue(b5, b5_init, sizeof(int32_t) * 1);
+ static int32_t b6_init[] = {1};
+ model->setOperandValue(b6, b6_init, sizeof(int32_t) * 1);
+ static int32_t b7_init[] = {0};
+ model->setOperandValue(b7, b7_init, sizeof(int32_t) * 1);
+ static float op0_init[] = {-0.966213f, -0.467474f, -0.82203f, -0.579455f, 0.0278809f, -0.79946f, -0.684259f, 0.563238f, 0.37289f, 0.738216f, 0.386045f, -0.917775f, 0.184325f, -0.270568f, 0.82236f, 0.0973683f, -0.941308f, -0.144706f};
+ model->setOperandValue(op0, op0_init, sizeof(float) * 18);
+ static float op1_init[] = {0.0f};
+ model->setOperandValue(op1, op1_init, sizeof(float) * 1);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op2, op0, op1, b4, b5, b6, b7}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/conv_3_h3_w2_SAME.model.cpp b/runtimes/tests/neural_networks_test/generated/models/conv_3_h3_w2_SAME.model.cpp
new file mode 100644
index 000000000..e3104ee1b
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/conv_3_h3_w2_SAME.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: conv_3_h3_w2_SAME.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::INT32, {});
+ OperandType type1(Type::TENSOR_FLOAT32, {1, 8, 8, 3});
+ OperandType type2(Type::TENSOR_FLOAT32, {3, 3, 2, 3});
+ OperandType type3(Type::TENSOR_FLOAT32, {3});
+ // Phase 1, operands
+ auto b4 = model->addOperand(&type0);
+ auto b5 = model->addOperand(&type0);
+ auto b6 = model->addOperand(&type0);
+ auto b7 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type1);
+ auto op0 = model->addOperand(&type2);
+ auto op1 = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t b4_init[] = {1};
+ model->setOperandValue(b4, b4_init, sizeof(int32_t) * 1);
+ static int32_t b5_init[] = {1};
+ model->setOperandValue(b5, b5_init, sizeof(int32_t) * 1);
+ static int32_t b6_init[] = {1};
+ model->setOperandValue(b6, b6_init, sizeof(int32_t) * 1);
+ static int32_t b7_init[] = {0};
+ model->setOperandValue(b7, b7_init, sizeof(int32_t) * 1);
+ static float op0_init[] = {-0.966213f, -0.579455f, -0.684259f, 0.738216f, 0.184325f, 0.0973683f, -0.176863f, -0.23936f, -0.000233404f, 0.055546f, -0.232658f, -0.316404f, -0.012904f, 0.320705f, -0.326657f, -0.919674f, 0.868081f, -0.824608f, -0.467474f, 0.0278809f, 0.563238f, 0.386045f, -0.270568f, -0.941308f, -0.779227f, -0.261492f, -0.774804f, -0.79665f, 0.22473f, -0.414312f, 0.685897f, -0.327792f, 0.77395f, -0.714578f, -0.972365f, 0.0696099f, -0.82203f, -0.79946f, 0.37289f, -0.917775f, 0.82236f, -0.144706f, -0.167188f, 0.268062f, 0.702641f, -0.412223f, 0.755759f, 0.721547f, -0.43637f, -0.274905f, -0.269165f, 0.16102f, 0.819857f, -0.312008f};
+ model->setOperandValue(op0, op0_init, sizeof(float) * 54);
+ static float op1_init[] = {0.0f, 0.0f, 0.0f};
+ model->setOperandValue(op1, op1_init, sizeof(float) * 3);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op2, op0, op1, b4, b5, b6, b7}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/conv_3_h3_w2_VALID.model.cpp b/runtimes/tests/neural_networks_test/generated/models/conv_3_h3_w2_VALID.model.cpp
new file mode 100644
index 000000000..d5860f4cd
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/conv_3_h3_w2_VALID.model.cpp
@@ -0,0 +1,41 @@
+// Generated file (from: conv_3_h3_w2_VALID.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 6, 7, 3});
+ OperandType type1(Type::TENSOR_FLOAT32, {1, 8, 8, 3});
+ OperandType type3(Type::TENSOR_FLOAT32, {3, 3, 2, 3});
+ OperandType type4(Type::TENSOR_FLOAT32, {3});
+ // Phase 1, operands
+ auto b4 = model->addOperand(&type0);
+ auto b5 = model->addOperand(&type0);
+ auto b6 = model->addOperand(&type0);
+ auto b7 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto op0 = model->addOperand(&type3);
+ auto op1 = model->addOperand(&type4);
+ // Phase 2, operations
+ static int32_t b4_init[] = {2};
+ model->setOperandValue(b4, b4_init, sizeof(int32_t) * 1);
+ static int32_t b5_init[] = {1};
+ model->setOperandValue(b5, b5_init, sizeof(int32_t) * 1);
+ static int32_t b6_init[] = {1};
+ model->setOperandValue(b6, b6_init, sizeof(int32_t) * 1);
+ static int32_t b7_init[] = {0};
+ model->setOperandValue(b7, b7_init, sizeof(int32_t) * 1);
+ static float op0_init[] = {-0.966213f, -0.579455f, -0.684259f, 0.738216f, 0.184325f, 0.0973683f, -0.176863f, -0.23936f, -0.000233404f, 0.055546f, -0.232658f, -0.316404f, -0.012904f, 0.320705f, -0.326657f, -0.919674f, 0.868081f, -0.824608f, -0.467474f, 0.0278809f, 0.563238f, 0.386045f, -0.270568f, -0.941308f, -0.779227f, -0.261492f, -0.774804f, -0.79665f, 0.22473f, -0.414312f, 0.685897f, -0.327792f, 0.77395f, -0.714578f, -0.972365f, 0.0696099f, -0.82203f, -0.79946f, 0.37289f, -0.917775f, 0.82236f, -0.144706f, -0.167188f, 0.268062f, 0.702641f, -0.412223f, 0.755759f, 0.721547f, -0.43637f, -0.274905f, -0.269165f, 0.16102f, 0.819857f, -0.312008f};
+ model->setOperandValue(op0, op0_init, sizeof(float) * 54);
+ static float op1_init[] = {0.0f, 0.0f, 0.0f};
+ model->setOperandValue(op1, op1_init, sizeof(float) * 3);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op2, op0, op1, b4, b5, b6, b7}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/conv_float.model.cpp b/runtimes/tests/neural_networks_test/generated/models/conv_float.model.cpp
new file mode 100644
index 000000000..0b97e31a9
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/conv_float.model.cpp
@@ -0,0 +1,37 @@
+// Generated file (from: conv_float.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 3, 3, 1});
+ OperandType type2(Type::TENSOR_FLOAT32, {1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad0 = model->addOperand(&type3);
+ auto act = model->addOperand(&type3);
+ auto stride = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type1);
+ // Phase 2, operations
+ static float op2_init[] = {0.25f, 0.25f, 0.25f, 0.25f};
+ model->setOperandValue(op2, op2_init, sizeof(float) * 4);
+ static float op3_init[] = {0.0f};
+ model->setOperandValue(op3, op3_init, sizeof(float) * 1);
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/conv_float_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/conv_float_2.model.cpp
new file mode 100644
index 000000000..a94c550ac
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/conv_float_2.model.cpp
@@ -0,0 +1,37 @@
+// Generated file (from: conv_float_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type1(Type::TENSOR_FLOAT32, {1, 3, 3, 1});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 3, 4, 1});
+ OperandType type2(Type::TENSOR_FLOAT32, {1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad_same = model->addOperand(&type3);
+ auto act_relu = model->addOperand(&type3);
+ auto stride = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type0);
+ // Phase 2, operations
+ static float op2_init[] = {1.0f, 4.0f, 7.0f, 2.0f, 5.0f, 8.0f, 3.0f, 6.0f, 9.0f};
+ model->setOperandValue(op2, op2_init, sizeof(float) * 9);
+ static float op3_init[] = {-200.0f};
+ model->setOperandValue(op3, op3_init, sizeof(float) * 1);
+ static int32_t pad_same_init[] = {1};
+ model->setOperandValue(pad_same, pad_same_init, sizeof(int32_t) * 1);
+ static int32_t act_relu_init[] = {1};
+ model->setOperandValue(act_relu, act_relu_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op1, op2, op3, pad_same, stride, stride, act_relu}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/conv_float_channels.model.cpp b/runtimes/tests/neural_networks_test/generated/models/conv_float_channels.model.cpp
new file mode 100644
index 000000000..05321fb31
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/conv_float_channels.model.cpp
@@ -0,0 +1,37 @@
+// Generated file (from: conv_float_channels.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 1, 1, 3});
+ OperandType type1(Type::TENSOR_FLOAT32, {3, 1, 1, 3});
+ OperandType type2(Type::TENSOR_FLOAT32, {3});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad0 = model->addOperand(&type3);
+ auto act = model->addOperand(&type3);
+ auto stride = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type0);
+ // Phase 2, operations
+ static float op2_init[] = {1.0f, 1.0f, 1.0f, 2.0f, 2.0f, 2.0f, 3.0f, 3.0f, 3.0f};
+ model->setOperandValue(op2, op2_init, sizeof(float) * 9);
+ static float op3_init[] = {0.0f, 0.0f, 0.0f};
+ model->setOperandValue(op3, op3_init, sizeof(float) * 3);
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/conv_float_channels_weights_as_inputs.model.cpp b/runtimes/tests/neural_networks_test/generated/models/conv_float_channels_weights_as_inputs.model.cpp
new file mode 100644
index 000000000..b3e7da0d7
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/conv_float_channels_weights_as_inputs.model.cpp
@@ -0,0 +1,33 @@
+// Generated file (from: conv_float_channels_weights_as_inputs.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 1, 1, 3});
+ OperandType type1(Type::TENSOR_FLOAT32, {3, 1, 1, 3});
+ OperandType type2(Type::TENSOR_FLOAT32, {3});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad0 = model->addOperand(&type3);
+ auto act = model->addOperand(&type3);
+ auto stride = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2, op3},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/conv_float_large.model.cpp b/runtimes/tests/neural_networks_test/generated/models/conv_float_large.model.cpp
new file mode 100644
index 000000000..165b3bb6f
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/conv_float_large.model.cpp
@@ -0,0 +1,37 @@
+// Generated file (from: conv_float_large.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 3, 3});
+ OperandType type1(Type::TENSOR_FLOAT32, {3, 1, 1, 3});
+ OperandType type2(Type::TENSOR_FLOAT32, {3});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad0 = model->addOperand(&type3);
+ auto act = model->addOperand(&type3);
+ auto stride = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type0);
+ // Phase 2, operations
+ static float op2_init[] = {1.0f, 4.0f, 7.0f, 2.0f, 5.0f, 8.0f, 3.0f, 6.0f, 9.0f};
+ model->setOperandValue(op2, op2_init, sizeof(float) * 9);
+ static float op3_init[] = {0.0f, 0.0f, 0.0f};
+ model->setOperandValue(op3, op3_init, sizeof(float) * 3);
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/conv_float_large_weights_as_inputs.model.cpp b/runtimes/tests/neural_networks_test/generated/models/conv_float_large_weights_as_inputs.model.cpp
new file mode 100644
index 000000000..d3a2b443e
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/conv_float_large_weights_as_inputs.model.cpp
@@ -0,0 +1,33 @@
+// Generated file (from: conv_float_large_weights_as_inputs.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 3, 3});
+ OperandType type1(Type::TENSOR_FLOAT32, {3, 1, 1, 3});
+ OperandType type2(Type::TENSOR_FLOAT32, {3});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad0 = model->addOperand(&type3);
+ auto act = model->addOperand(&type3);
+ auto stride = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2, op3},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/conv_float_weights_as_inputs.model.cpp b/runtimes/tests/neural_networks_test/generated/models/conv_float_weights_as_inputs.model.cpp
new file mode 100644
index 000000000..f4a1e2d0d
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/conv_float_weights_as_inputs.model.cpp
@@ -0,0 +1,33 @@
+// Generated file (from: conv_float_weights_as_inputs.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 3, 3, 1});
+ OperandType type2(Type::TENSOR_FLOAT32, {1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad0 = model->addOperand(&type3);
+ auto act = model->addOperand(&type3);
+ auto stride = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type1);
+ // Phase 2, operations
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2, op3},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/conv_quant8.model.cpp b/runtimes/tests/neural_networks_test/generated/models/conv_quant8.model.cpp
new file mode 100644
index 000000000..81e31be5d
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/conv_quant8.model.cpp
@@ -0,0 +1,38 @@
+// Generated file (from: conv_quant8.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type2(Type::TENSOR_INT32, {1}, 0.25f, 0);
+ OperandType type1(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.5f, 0);
+ OperandType type4(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 1.f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 1}, 0.5f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad0 = model->addOperand(&type3);
+ auto act = model->addOperand(&type3);
+ auto stride = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type4);
+ // Phase 2, operations
+ static uint8_t op2_init[] = {2, 2, 2, 2};
+ model->setOperandValue(op2, op2_init, sizeof(uint8_t) * 4);
+ static int32_t op3_init[] = {4};
+ model->setOperandValue(op3, op3_init, sizeof(int32_t) * 1);
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/conv_quant8_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/conv_quant8_2.model.cpp
new file mode 100644
index 000000000..bae45e35a
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/conv_quant8_2.model.cpp
@@ -0,0 +1,41 @@
+// Generated file (from: conv_quant8_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type2(Type::TENSOR_INT32, {1}, 0.25f, 0);
+ OperandType type1(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.5f, 127);
+ OperandType type4(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 1.f, 127);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 3, 6, 1}, 0.5f, 127);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad_valid = model->addOperand(&type3);
+ auto act_none = model->addOperand(&type3);
+ auto stride1 = model->addOperand(&type3);
+ auto stride3 = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type4);
+ // Phase 2, operations
+ static uint8_t op2_init[] = {129, 131, 133, 135};
+ model->setOperandValue(op2, op2_init, sizeof(uint8_t) * 4);
+ static int32_t op3_init[] = {-4};
+ model->setOperandValue(op3, op3_init, sizeof(int32_t) * 1);
+ static int32_t pad_valid_init[] = {2};
+ model->setOperandValue(pad_valid, pad_valid_init, sizeof(int32_t) * 1);
+ static int32_t act_none_init[] = {0};
+ model->setOperandValue(act_none, act_none_init, sizeof(int32_t) * 1);
+ static int32_t stride1_init[] = {1};
+ model->setOperandValue(stride1, stride1_init, sizeof(int32_t) * 1);
+ static int32_t stride3_init[] = {3};
+ model->setOperandValue(stride3, stride3_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op1, op2, op3, pad_valid, stride3, stride1, act_none}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/conv_quant8_channels.model.cpp b/runtimes/tests/neural_networks_test/generated/models/conv_quant8_channels.model.cpp
new file mode 100644
index 000000000..cbd3927ef
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/conv_quant8_channels.model.cpp
@@ -0,0 +1,38 @@
+// Generated file (from: conv_quant8_channels.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type2(Type::TENSOR_INT32, {3}, 0.25, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 3}, 0.5f, 0);
+ OperandType type4(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 3}, 1.0, 0);
+ OperandType type1(Type::TENSOR_QUANT8_ASYMM, {3, 1, 1, 3}, 0.5f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad0 = model->addOperand(&type3);
+ auto act = model->addOperand(&type3);
+ auto stride = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type4);
+ // Phase 2, operations
+ static uint8_t op2_init[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
+ model->setOperandValue(op2, op2_init, sizeof(uint8_t) * 9);
+ static int32_t op3_init[] = {0, 0, 0};
+ model->setOperandValue(op3, op3_init, sizeof(int32_t) * 3);
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/conv_quant8_channels_weights_as_inputs.model.cpp b/runtimes/tests/neural_networks_test/generated/models/conv_quant8_channels_weights_as_inputs.model.cpp
new file mode 100644
index 000000000..56f5fbd61
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/conv_quant8_channels_weights_as_inputs.model.cpp
@@ -0,0 +1,34 @@
+// Generated file (from: conv_quant8_channels_weights_as_inputs.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type2(Type::TENSOR_INT32, {3}, 0.25, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 3}, 0.5f, 0);
+ OperandType type4(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 3}, 1.0, 0);
+ OperandType type1(Type::TENSOR_QUANT8_ASYMM, {3, 1, 1, 3}, 0.5f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad0 = model->addOperand(&type3);
+ auto act = model->addOperand(&type3);
+ auto stride = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type4);
+ // Phase 2, operations
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2, op3},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/conv_quant8_large.model.cpp b/runtimes/tests/neural_networks_test/generated/models/conv_quant8_large.model.cpp
new file mode 100644
index 000000000..d1a97ca99
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/conv_quant8_large.model.cpp
@@ -0,0 +1,38 @@
+// Generated file (from: conv_quant8_large.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type2(Type::TENSOR_INT32, {3}, 0.25, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2, 3, 3}, 0.5, 0);
+ OperandType type4(Type::TENSOR_QUANT8_ASYMM, {1, 2, 3, 3}, 1.0, 0);
+ OperandType type1(Type::TENSOR_QUANT8_ASYMM, {3, 1, 1, 3}, 0.5, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad0 = model->addOperand(&type3);
+ auto act = model->addOperand(&type3);
+ auto stride = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type4);
+ // Phase 2, operations
+ static uint8_t op2_init[] = {1, 4, 7, 2, 5, 8, 3, 6, 9};
+ model->setOperandValue(op2, op2_init, sizeof(uint8_t) * 9);
+ static int32_t op3_init[] = {0, 0, 0};
+ model->setOperandValue(op3, op3_init, sizeof(int32_t) * 3);
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/conv_quant8_large_weights_as_inputs.model.cpp b/runtimes/tests/neural_networks_test/generated/models/conv_quant8_large_weights_as_inputs.model.cpp
new file mode 100644
index 000000000..e98c4ca51
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/conv_quant8_large_weights_as_inputs.model.cpp
@@ -0,0 +1,34 @@
+// Generated file (from: conv_quant8_large_weights_as_inputs.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type2(Type::TENSOR_INT32, {3}, 0.25, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2, 3, 3}, 0.5, 0);
+ OperandType type4(Type::TENSOR_QUANT8_ASYMM, {1, 2, 3, 3}, 1.0, 0);
+ OperandType type1(Type::TENSOR_QUANT8_ASYMM, {3, 1, 1, 3}, 0.5, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad0 = model->addOperand(&type3);
+ auto act = model->addOperand(&type3);
+ auto stride = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type4);
+ // Phase 2, operations
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2, op3},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/conv_quant8_overflow.model.cpp b/runtimes/tests/neural_networks_test/generated/models/conv_quant8_overflow.model.cpp
new file mode 100644
index 000000000..dca8a0e7b
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/conv_quant8_overflow.model.cpp
@@ -0,0 +1,38 @@
+// Generated file (from: conv_quant8_overflow.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type2(Type::TENSOR_INT32, {3}, 0.25, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2, 3, 3}, 0.5, 0);
+ OperandType type4(Type::TENSOR_QUANT8_ASYMM, {1, 2, 3, 3}, 1.0, 0);
+ OperandType type1(Type::TENSOR_QUANT8_ASYMM, {3, 1, 1, 3}, 0.5, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad0 = model->addOperand(&type3);
+ auto act = model->addOperand(&type3);
+ auto stride = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type4);
+ // Phase 2, operations
+ static uint8_t op2_init[] = {10, 40, 70, 20, 50, 80, 30, 60, 90};
+ model->setOperandValue(op2, op2_init, sizeof(uint8_t) * 9);
+ static int32_t op3_init[] = {0, 0, 0};
+ model->setOperandValue(op3, op3_init, sizeof(int32_t) * 3);
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/conv_quant8_overflow_weights_as_inputs.model.cpp b/runtimes/tests/neural_networks_test/generated/models/conv_quant8_overflow_weights_as_inputs.model.cpp
new file mode 100644
index 000000000..8a3155f23
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/conv_quant8_overflow_weights_as_inputs.model.cpp
@@ -0,0 +1,34 @@
+// Generated file (from: conv_quant8_overflow_weights_as_inputs.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type2(Type::TENSOR_INT32, {3}, 0.25, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2, 3, 3}, 0.5, 0);
+ OperandType type4(Type::TENSOR_QUANT8_ASYMM, {1, 2, 3, 3}, 1.0, 0);
+ OperandType type1(Type::TENSOR_QUANT8_ASYMM, {3, 1, 1, 3}, 0.5, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad0 = model->addOperand(&type3);
+ auto act = model->addOperand(&type3);
+ auto stride = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type4);
+ // Phase 2, operations
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2, op3},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/conv_quant8_weights_as_inputs.model.cpp b/runtimes/tests/neural_networks_test/generated/models/conv_quant8_weights_as_inputs.model.cpp
new file mode 100644
index 000000000..76d13a604
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/conv_quant8_weights_as_inputs.model.cpp
@@ -0,0 +1,34 @@
+// Generated file (from: conv_quant8_weights_as_inputs.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type2(Type::TENSOR_INT32, {1}, 0.25f, 0);
+ OperandType type1(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.5f, 0);
+ OperandType type4(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 1.f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 1}, 0.5f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad0 = model->addOperand(&type3);
+ auto act = model->addOperand(&type3);
+ auto stride = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type4);
+ // Phase 2, operations
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2, op3},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/depth_to_space_float_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/depth_to_space_float_1.model.cpp
new file mode 100644
index 000000000..d45c9bc9f
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/depth_to_space_float_1.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: depth_to_space_float_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 1, 1, 8});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 2, 2, 2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto block_size = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t block_size_init[] = {2};
+ model->setOperandValue(block_size, block_size_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_DEPTH_TO_SPACE, {input, block_size}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/depth_to_space_float_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/depth_to_space_float_2.model.cpp
new file mode 100644
index 000000000..8392d15e9
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/depth_to_space_float_2.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: depth_to_space_float_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 4});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 4, 4, 1});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto block_size = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t block_size_init[] = {2};
+ model->setOperandValue(block_size, block_size_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_DEPTH_TO_SPACE, {input, block_size}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/depth_to_space_float_3.model.cpp b/runtimes/tests/neural_networks_test/generated/models/depth_to_space_float_3.model.cpp
new file mode 100644
index 000000000..3df413b5b
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/depth_to_space_float_3.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: depth_to_space_float_3.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 8});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 4, 4, 2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto block_size = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t block_size_init[] = {2};
+ model->setOperandValue(block_size, block_size_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_DEPTH_TO_SPACE, {input, block_size}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/depth_to_space_quant8_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/depth_to_space_quant8_1.model.cpp
new file mode 100644
index 000000000..4d8aae883
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/depth_to_space_quant8_1.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: depth_to_space_quant8_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 8}, 0.5f, 0);
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 2}, 0.5f, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto radius = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t radius_init[] = {2};
+ model->setOperandValue(radius, radius_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_DEPTH_TO_SPACE, {input, radius}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/depth_to_space_quant8_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/depth_to_space_quant8_2.model.cpp
new file mode 100644
index 000000000..dcabb12ad
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/depth_to_space_quant8_2.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: depth_to_space_quant8_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 4}, 0.5f, 0);
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {1, 4, 4, 1}, 0.5f, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto radius = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t radius_init[] = {2};
+ model->setOperandValue(radius, radius_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_DEPTH_TO_SPACE, {input, radius}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/depthwise_conv.model.cpp b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv.model.cpp
new file mode 100644
index 000000000..2d2cfcc13
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv.model.cpp
@@ -0,0 +1,43 @@
+// Generated file (from: depthwise_conv.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 3});
+ OperandType type1(Type::TENSOR_FLOAT32, {1, 8, 8, 3});
+ OperandType type3(Type::TENSOR_FLOAT32, {3});
+ // Phase 1, operands
+ auto b4 = model->addOperand(&type0);
+ auto b5 = model->addOperand(&type0);
+ auto b6 = model->addOperand(&type0);
+ auto b7 = model->addOperand(&type0);
+ auto b8 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type1);
+ auto op0 = model->addOperand(&type2);
+ auto op1 = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t b4_init[] = {1};
+ model->setOperandValue(b4, b4_init, sizeof(int32_t) * 1);
+ static int32_t b5_init[] = {1};
+ model->setOperandValue(b5, b5_init, sizeof(int32_t) * 1);
+ static int32_t b6_init[] = {1};
+ model->setOperandValue(b6, b6_init, sizeof(int32_t) * 1);
+ static int32_t b7_init[] = {1};
+ model->setOperandValue(b7, b7_init, sizeof(int32_t) * 1);
+ static int32_t b8_init[] = {0};
+ model->setOperandValue(b8, b8_init, sizeof(int32_t) * 1);
+ static float op0_init[] = {-0.966213f, -0.467474f, -0.82203f};
+ model->setOperandValue(op0, op0_init, sizeof(float) * 3);
+ static float op1_init[] = {0.0f, 0.0f, 0.0f};
+ model->setOperandValue(op1, op1_init, sizeof(float) * 3);
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op2, op0, op1, b4, b5, b6, b7, b8}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float.model.cpp b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float.model.cpp
new file mode 100644
index 000000000..ace293dbf
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: depthwise_conv2d_float.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 4});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 3, 3, 2});
+ OperandType type2(Type::TENSOR_FLOAT32, {4});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad0 = model->addOperand(&type3);
+ auto act = model->addOperand(&type3);
+ auto stride = model->addOperand(&type3);
+ auto channelMultiplier = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type1);
+ // Phase 2, operations
+ static float op2_init[] = {0.25f, 0.0f, 0.2f, 0.0f, 0.25f, 0.0f, 0.0f, 0.3f, 0.25f, 0.0f, 0.0f, 0.0f, 0.25f, 0.1f, 0.0f, 0.0f};
+ model->setOperandValue(op2, op2_init, sizeof(float) * 16);
+ static float op3_init[] = {1.0f, 2.0f, 3.0f, 4.0f};
+ model->setOperandValue(op3, op3_init, sizeof(float) * 4);
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t channelMultiplier_init[] = {2};
+ model->setOperandValue(channelMultiplier, channelMultiplier_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, channelMultiplier, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_2.model.cpp
new file mode 100644
index 000000000..58850edae
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_2.model.cpp
@@ -0,0 +1,41 @@
+// Generated file (from: depthwise_conv2d_float_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type4(Type::TENSOR_FLOAT32, {1, 2, 1, 4});
+ OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 4});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 3, 2, 2});
+ OperandType type2(Type::TENSOR_FLOAT32, {4});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad_valid = model->addOperand(&type3);
+ auto act_none = model->addOperand(&type3);
+ auto stride = model->addOperand(&type3);
+ auto channelMultiplier = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type4);
+ // Phase 2, operations
+ static float op2_init[] = {1.0f, 2.0f, 3.0f, 4.0f, -9.0f, 10.0f, -11.0f, 12.0f, 5.0f, 6.0f, 7.0f, 8.0f, 13.0f, -14.0f, 15.0f, -16.0f};
+ model->setOperandValue(op2, op2_init, sizeof(float) * 16);
+ static float op3_init[] = {1.0f, 2.0f, 3.0f, 4.0f};
+ model->setOperandValue(op3, op3_init, sizeof(float) * 4);
+ static int32_t pad_valid_init[] = {2};
+ model->setOperandValue(pad_valid, pad_valid_init, sizeof(int32_t) * 1);
+ static int32_t act_none_init[] = {0};
+ model->setOperandValue(act_none, act_none_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t channelMultiplier_init[] = {2};
+ model->setOperandValue(channelMultiplier, channelMultiplier_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op1, op2, op3, pad_valid, stride, stride, channelMultiplier, act_none}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large.model.cpp b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large.model.cpp
new file mode 100644
index 000000000..98f40e3a7
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: depthwise_conv2d_float_large.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {1, 1, 1, 2});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 2});
+ OperandType type1(Type::TENSOR_FLOAT32, {2});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto op3 = model->addOperand(&type1);
+ auto pad0 = model->addOperand(&type2);
+ auto act = model->addOperand(&type2);
+ auto stride = model->addOperand(&type2);
+ auto channelMultiplier = model->addOperand(&type2);
+ auto op4 = model->addOperand(&type3);
+ // Phase 2, operations
+ static float op2_init[] = {0.25f, 0.0f, 0.25f, 1.0f, 0.25f, 0.0f, 0.25f, 1.0f};
+ model->setOperandValue(op2, op2_init, sizeof(float) * 8);
+ static float op3_init[] = {100.0f, 200.0f};
+ model->setOperandValue(op3, op3_init, sizeof(float) * 2);
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t channelMultiplier_init[] = {1};
+ model->setOperandValue(channelMultiplier, channelMultiplier_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, channelMultiplier, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large_2.model.cpp
new file mode 100644
index 000000000..521eb3ffc
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large_2.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: depthwise_conv2d_float_large_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {1, 1, 1, 4});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 4});
+ OperandType type1(Type::TENSOR_FLOAT32, {4});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto op3 = model->addOperand(&type1);
+ auto pad0 = model->addOperand(&type2);
+ auto act = model->addOperand(&type2);
+ auto stride = model->addOperand(&type2);
+ auto channelMultiplier = model->addOperand(&type2);
+ auto op4 = model->addOperand(&type3);
+ // Phase 2, operations
+ static float op2_init[] = {0.25f, 0.0f, 10.0f, 100.0f, 0.25f, 1.0f, 20.0f, 100.0f, 0.25f, 0.0f, 30.0f, 100.0f, 0.25f, 1.0f, 40.0f, 100.0f};
+ model->setOperandValue(op2, op2_init, sizeof(float) * 16);
+ static float op3_init[] = {600000.0f, 700000.0f, 800000.0f, 900000.0f};
+ model->setOperandValue(op3, op3_init, sizeof(float) * 4);
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t channelMultiplier_init[] = {1};
+ model->setOperandValue(channelMultiplier, channelMultiplier_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, channelMultiplier, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large_2_weights_as_inputs.model.cpp b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large_2_weights_as_inputs.model.cpp
new file mode 100644
index 000000000..19de70509
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large_2_weights_as_inputs.model.cpp
@@ -0,0 +1,37 @@
+// Generated file (from: depthwise_conv2d_float_large_2_weights_as_inputs.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type4(Type::TENSOR_FLOAT32, {1, 1, 1, 4});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 3});
+ OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 4});
+ OperandType type2(Type::TENSOR_FLOAT32, {4});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad0 = model->addOperand(&type3);
+ auto act = model->addOperand(&type3);
+ auto stride = model->addOperand(&type3);
+ auto channelMultiplier = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type4);
+ // Phase 2, operations
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t channelMultiplier_init[] = {1};
+ model->setOperandValue(channelMultiplier, channelMultiplier_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, channelMultiplier, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2, op3},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large_weights_as_inputs.model.cpp b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large_weights_as_inputs.model.cpp
new file mode 100644
index 000000000..0500e0f7d
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large_weights_as_inputs.model.cpp
@@ -0,0 +1,36 @@
+// Generated file (from: depthwise_conv2d_float_large_weights_as_inputs.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {1, 1, 1, 2});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 2});
+ OperandType type1(Type::TENSOR_FLOAT32, {2});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto op3 = model->addOperand(&type1);
+ auto pad0 = model->addOperand(&type2);
+ auto act = model->addOperand(&type2);
+ auto stride = model->addOperand(&type2);
+ auto channelMultiplier = model->addOperand(&type2);
+ auto op4 = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t channelMultiplier_init[] = {1};
+ model->setOperandValue(channelMultiplier, channelMultiplier_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, channelMultiplier, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2, op3},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_weights_as_inputs.model.cpp b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_weights_as_inputs.model.cpp
new file mode 100644
index 000000000..d45063c55
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_weights_as_inputs.model.cpp
@@ -0,0 +1,36 @@
+// Generated file (from: depthwise_conv2d_float_weights_as_inputs.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 4});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 3, 3, 2});
+ OperandType type2(Type::TENSOR_FLOAT32, {4});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad0 = model->addOperand(&type3);
+ auto act = model->addOperand(&type3);
+ auto stride = model->addOperand(&type3);
+ auto channelMultiplier = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type1);
+ // Phase 2, operations
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t channelMultiplier_init[] = {2};
+ model->setOperandValue(channelMultiplier, channelMultiplier_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, channelMultiplier, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2, op3},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_quant8.model.cpp b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_quant8.model.cpp
new file mode 100644
index 000000000..5a6932fc0
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_quant8.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: depthwise_conv2d_quant8.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {2}, 0.25f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 2}, 0.5f, 0);
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {1,1,1,2}, 1.f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto op3 = model->addOperand(&type1);
+ auto pad0 = model->addOperand(&type2);
+ auto act = model->addOperand(&type2);
+ auto stride = model->addOperand(&type2);
+ auto channelMultiplier = model->addOperand(&type2);
+ auto op4 = model->addOperand(&type3);
+ // Phase 2, operations
+ static uint8_t op2_init[] = {2, 4, 2, 0, 2, 2, 2, 0};
+ model->setOperandValue(op2, op2_init, sizeof(uint8_t) * 8);
+ static int32_t op3_init[] = {0, 0};
+ model->setOperandValue(op3, op3_init, sizeof(int32_t) * 2);
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t channelMultiplier_init[] = {1};
+ model->setOperandValue(channelMultiplier, channelMultiplier_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, channelMultiplier, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_quant8_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_quant8_2.model.cpp
new file mode 100644
index 000000000..095036ddd
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_quant8_2.model.cpp
@@ -0,0 +1,41 @@
+// Generated file (from: depthwise_conv2d_quant8_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type2(Type::TENSOR_INT32, {4}, 0.25f, 0);
+ OperandType type4(Type::TENSOR_QUANT8_ASYMM, {1, 2, 1, 4}, 1.f, 127);
+ OperandType type1(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 4}, 0.5f, 127);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 3, 2, 2}, 0.5f, 127);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto pad_valid = model->addOperand(&type3);
+ auto act_none = model->addOperand(&type3);
+ auto stride = model->addOperand(&type3);
+ auto channelMultiplier = model->addOperand(&type3);
+ auto op4 = model->addOperand(&type4);
+ // Phase 2, operations
+ static uint8_t op2_init[] = {129, 131, 133, 135, 109, 147, 105, 151, 137, 139, 141, 143, 153, 99, 157, 95};
+ model->setOperandValue(op2, op2_init, sizeof(uint8_t) * 16);
+ static int32_t op3_init[] = {4, 8, 12, 16};
+ model->setOperandValue(op3, op3_init, sizeof(int32_t) * 4);
+ static int32_t pad_valid_init[] = {2};
+ model->setOperandValue(pad_valid, pad_valid_init, sizeof(int32_t) * 1);
+ static int32_t act_none_init[] = {0};
+ model->setOperandValue(act_none, act_none_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t channelMultiplier_init[] = {2};
+ model->setOperandValue(channelMultiplier, channelMultiplier_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op1, op2, op3, pad_valid, stride, stride, channelMultiplier, act_none}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_quant8_large.model.cpp b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_quant8_large.model.cpp
new file mode 100644
index 000000000..dbabdf55c
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_quant8_large.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: depthwise_conv2d_quant8_large.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {2}, 0.25f, 0);
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 2}, 1.f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 2}, 0.5f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto op3 = model->addOperand(&type1);
+ auto pad0 = model->addOperand(&type2);
+ auto act = model->addOperand(&type2);
+ auto stride = model->addOperand(&type2);
+ auto channelMultiplier = model->addOperand(&type2);
+ auto op4 = model->addOperand(&type3);
+ // Phase 2, operations
+ static uint8_t op2_init[] = {2, 4, 2, 0, 2, 2, 2, 0};
+ model->setOperandValue(op2, op2_init, sizeof(uint8_t) * 8);
+ static int32_t op3_init[] = {0, 0};
+ model->setOperandValue(op3, op3_init, sizeof(int32_t) * 2);
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t channelMultiplier_init[] = {1};
+ model->setOperandValue(channelMultiplier, channelMultiplier_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, channelMultiplier, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_quant8_large_weights_as_inputs.model.cpp b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_quant8_large_weights_as_inputs.model.cpp
new file mode 100644
index 000000000..b965949a4
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_quant8_large_weights_as_inputs.model.cpp
@@ -0,0 +1,36 @@
+// Generated file (from: depthwise_conv2d_quant8_large_weights_as_inputs.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {2}, 0.25f, 0);
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 2}, 1.f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 2}, 0.5f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto op3 = model->addOperand(&type1);
+ auto pad0 = model->addOperand(&type2);
+ auto act = model->addOperand(&type2);
+ auto stride = model->addOperand(&type2);
+ auto channelMultiplier = model->addOperand(&type2);
+ auto op4 = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t channelMultiplier_init[] = {1};
+ model->setOperandValue(channelMultiplier, channelMultiplier_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, channelMultiplier, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2, op3},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_quant8_weights_as_inputs.model.cpp b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_quant8_weights_as_inputs.model.cpp
new file mode 100644
index 000000000..959fed1f8
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_quant8_weights_as_inputs.model.cpp
@@ -0,0 +1,36 @@
+// Generated file (from: depthwise_conv2d_quant8_weights_as_inputs.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {2}, 0.25f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 2}, 0.5f, 0);
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {1,1,1,2}, 1.f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto op3 = model->addOperand(&type1);
+ auto pad0 = model->addOperand(&type2);
+ auto act = model->addOperand(&type2);
+ auto stride = model->addOperand(&type2);
+ auto channelMultiplier = model->addOperand(&type2);
+ auto op4 = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ static int32_t stride_init[] = {1};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t channelMultiplier_init[] = {1};
+ model->setOperandValue(channelMultiplier, channelMultiplier_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op1, op2, op3, pad0, pad0, pad0, pad0, stride, stride, channelMultiplier, act}, {op4});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2, op3},
+ {op4});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/dequantize.model.cpp b/runtimes/tests/neural_networks_test/generated/models/dequantize.model.cpp
new file mode 100644
index 000000000..248830738
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/dequantize.model.cpp
@@ -0,0 +1,20 @@
+// Generated file (from: dequantize.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 1.f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_DEQUANTIZE, {op1}, {op2});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/embedding_lookup.model.cpp b/runtimes/tests/neural_networks_test/generated/models/embedding_lookup.model.cpp
new file mode 100644
index 000000000..a7b82c79d
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/embedding_lookup.model.cpp
@@ -0,0 +1,21 @@
+// Generated file (from: embedding_lookup.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::TENSOR_FLOAT32, {3, 2, 4});
+ OperandType type0(Type::TENSOR_INT32, {3});
+ // Phase 1, operands
+ auto index = model->addOperand(&type0);
+ auto value = model->addOperand(&type1);
+ auto output = model->addOperand(&type1);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_EMBEDDING_LOOKUP, {index, value}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {index, value},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/floor.model.cpp b/runtimes/tests/neural_networks_test/generated/models/floor.model.cpp
new file mode 100644
index 000000000..2425f4757
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/floor.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: floor.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 2});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_FLOOR, {op1}, {op2});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/fully_connected_float.model.cpp b/runtimes/tests/neural_networks_test/generated/models/fully_connected_float.model.cpp
new file mode 100644
index 000000000..598c4cfad
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/fully_connected_float.model.cpp
@@ -0,0 +1,31 @@
+// Generated file (from: fully_connected_float.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type1(Type::TENSOR_FLOAT32, {1, 1});
+ OperandType type2(Type::TENSOR_FLOAT32, {1});
+ OperandType type0(Type::TENSOR_FLOAT32, {3, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto b0 = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type0);
+ auto act = model->addOperand(&type3);
+ // Phase 2, operations
+ static float op2_init[] = {2.0f};
+ model->setOperandValue(op2, op2_init, sizeof(float) * 1);
+ static float b0_init[] = {4.0f};
+ model->setOperandValue(b0, b0_init, sizeof(float) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_FULLY_CONNECTED, {op1, op2, b0, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_2.model.cpp
new file mode 100644
index 000000000..b0d5bd758
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_2.model.cpp
@@ -0,0 +1,32 @@
+// Generated file (from: fully_connected_float_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type4(Type::INT32, {});
+ OperandType type1(Type::TENSOR_FLOAT32, {16, 8});
+ OperandType type2(Type::TENSOR_FLOAT32, {16});
+ OperandType type3(Type::TENSOR_FLOAT32, {2, 16});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 8});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto b0 = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type3);
+ auto act_relu = model->addOperand(&type4);
+ // Phase 2, operations
+ static float op2_init[] = {0.091327f, 0.103366f, -0.316505f, -0.08312f, 0.149366f, -0.196636f, -0.123672f, 0.0628f, 0.063031f, 0.19167f, -0.062001f, -0.061504f, -0.275581f, 0.059388f, -0.118497f, -0.079224f, 0.109758f, 0.008307f, -0.062657f, -0.060962f, -0.049782f, -0.106719f, -0.319482f, -0.10365f, 0.266455f, 0.051517f, -0.123448f, 0.322464f, 0.043282f, -0.173782f, -0.190381f, 0.002013f, 0.096086f, 0.131157f, 0.031164f, 0.100638f, -0.312191f, -0.080923f, -0.101318f, -0.116614f, 0.142238f, 0.08654f, -0.139154f, 0.174268f, -0.073161f, 0.080072f, 0.006874f, 0.229382f, -0.104321f, -0.176035f, -0.208587f, -0.001019f, -0.162032f, 0.080824f, -0.025021f, 0.07446f, -0.252595f, -0.16175f, -0.136403f, 0.008308f, 0.00571f, 0.0966f, 0.289839f, 0.218816f, -0.304651f, -0.070958f, 0.054598f, 0.147113f, -0.139112f, -0.072798f, -0.163335f, -0.167863f, -0.128762f, -0.03578f, 0.117262f, 0.017177f, 0.263335f, -0.176612f, 0.262961f, -0.093654f, -0.339283f, 0.333071f, 0.180827f, 0.287583f, 0.06635f, -0.197947f, -0.114449f, -0.236035f, 0.103532f, -0.034284f, 0.093299f, -0.145361f, 0.054001f, 0.25057f, 0.15701f, -0.14348f, -0.139061f, -0.048873f, 0.067557f, 0.139038f, 0.324106f, 0.227041f, 0.037793f, -0.225747f, -0.241619f, 0.357835f, 0.135762f, -0.306764f, -0.125982f, 0.091916f, 0.266587f, 0.030135f, 0.265148f, 0.141627f, 0.02012f, 0.083815f, -0.124556f, -0.100124f, -0.048159f, 0.181172f, 0.302309f, -0.041084f, 0.146334f, -0.061511f, -0.232605f, 0.281324f, 0.145408f, -0.221897f};
+ model->setOperandValue(op2, op2_init, sizeof(float) * 128);
+ static float b0_init[] = {-0.160594f, 0.20577f, -0.078307f, -0.077984f, 0.001937f, 0.01586f, 0.03681f, 0.012346f, 0.001028f, 0.038551f, 0.075415f, 0.020804f, 0.048478f, -0.03227f, 0.175688f, -0.085662f};
+ model->setOperandValue(b0, b0_init, sizeof(float) * 16);
+ static int32_t act_relu_init[] = {1};
+ model->setOperandValue(act_relu, act_relu_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_FULLY_CONNECTED, {op1, op2, b0, act_relu}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_large.model.cpp b/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_large.model.cpp
new file mode 100644
index 000000000..cb17f7bb6
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_large.model.cpp
@@ -0,0 +1,31 @@
+// Generated file (from: fully_connected_float_large.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 1});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 5});
+ OperandType type1(Type::TENSOR_FLOAT32, {1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto b0 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto act = model->addOperand(&type3);
+ // Phase 2, operations
+ static float op2_init[] = {2.0f, 3.0f, 4.0f, 5.0f, 6.0f};
+ model->setOperandValue(op2, op2_init, sizeof(float) * 5);
+ static float b0_init[] = {900000.0f};
+ model->setOperandValue(b0, b0_init, sizeof(float) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_FULLY_CONNECTED, {op1, op2, b0, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_large_weights_as_inputs.model.cpp b/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_large_weights_as_inputs.model.cpp
new file mode 100644
index 000000000..2b1f58697
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_large_weights_as_inputs.model.cpp
@@ -0,0 +1,27 @@
+// Generated file (from: fully_connected_float_large_weights_as_inputs.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 1});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 5});
+ OperandType type1(Type::TENSOR_FLOAT32, {1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto b0 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto act = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_FULLY_CONNECTED, {op1, op2, b0, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2, b0},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_weights_as_inputs.model.cpp b/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_weights_as_inputs.model.cpp
new file mode 100644
index 000000000..745eafac9
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_weights_as_inputs.model.cpp
@@ -0,0 +1,27 @@
+// Generated file (from: fully_connected_float_weights_as_inputs.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type1(Type::TENSOR_FLOAT32, {1, 1});
+ OperandType type2(Type::TENSOR_FLOAT32, {1});
+ OperandType type0(Type::TENSOR_FLOAT32, {3, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto b0 = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type0);
+ auto act = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_FULLY_CONNECTED, {op1, op2, b0, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2, b0},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/fully_connected_quant8.model.cpp b/runtimes/tests/neural_networks_test/generated/models/fully_connected_quant8.model.cpp
new file mode 100644
index 000000000..cdb9119d0
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/fully_connected_quant8.model.cpp
@@ -0,0 +1,32 @@
+// Generated file (from: fully_connected_quant8.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type4(Type::INT32, {});
+ OperandType type2(Type::TENSOR_INT32, {1}, 0.25f, 0);
+ OperandType type1(Type::TENSOR_QUANT8_ASYMM, {1, 1}, 0.5f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {3, 1}, 0.5f, 0);
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {3, 1}, 1.f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto b0 = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type3);
+ auto act = model->addOperand(&type4);
+ // Phase 2, operations
+ static uint8_t op2_init[] = {2};
+ model->setOperandValue(op2, op2_init, sizeof(uint8_t) * 1);
+ static int32_t b0_init[] = {4};
+ model->setOperandValue(b0, b0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_FULLY_CONNECTED, {op1, op2, b0, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/fully_connected_quant8_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/fully_connected_quant8_2.model.cpp
new file mode 100644
index 000000000..06df5a545
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/fully_connected_quant8_2.model.cpp
@@ -0,0 +1,32 @@
+// Generated file (from: fully_connected_quant8_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type4(Type::INT32, {});
+ OperandType type2(Type::TENSOR_INT32, {3}, 0.25f, 0);
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {2, 3}, 1.f, 127);
+ OperandType type1(Type::TENSOR_QUANT8_ASYMM, {3, 10}, 0.5f, 127);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {4, 1, 5, 1}, 0.5f, 127);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto b0 = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type3);
+ auto act_relu = model->addOperand(&type4);
+ // Phase 2, operations
+ static uint8_t op2_init[] = {129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147};
+ model->setOperandValue(op2, op2_init, sizeof(uint8_t) * 30);
+ static int32_t b0_init[] = {4, 8, 12};
+ model->setOperandValue(b0, b0_init, sizeof(int32_t) * 3);
+ static int32_t act_relu_init[] = {1};
+ model->setOperandValue(act_relu, act_relu_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_FULLY_CONNECTED, {op1, op2, b0, act_relu}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/fully_connected_quant8_large.model.cpp b/runtimes/tests/neural_networks_test/generated/models/fully_connected_quant8_large.model.cpp
new file mode 100644
index 000000000..761f25734
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/fully_connected_quant8_large.model.cpp
@@ -0,0 +1,31 @@
+// Generated file (from: fully_connected_quant8_large.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {1}, 0.04, 0);
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {1, 1}, 1.f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 5}, 0.2, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto b0 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto act = model->addOperand(&type3);
+ // Phase 2, operations
+ static uint8_t op2_init[] = {10, 20, 20, 20, 10};
+ model->setOperandValue(op2, op2_init, sizeof(uint8_t) * 5);
+ static int32_t b0_init[] = {10};
+ model->setOperandValue(b0, b0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_FULLY_CONNECTED, {op1, op2, b0, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/fully_connected_quant8_large_weights_as_inputs.model.cpp b/runtimes/tests/neural_networks_test/generated/models/fully_connected_quant8_large_weights_as_inputs.model.cpp
new file mode 100644
index 000000000..5d70dc9be
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/fully_connected_quant8_large_weights_as_inputs.model.cpp
@@ -0,0 +1,27 @@
+// Generated file (from: fully_connected_quant8_large_weights_as_inputs.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {1}, 0.04, 0);
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {1, 1}, 1.f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 5}, 0.2, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto b0 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ auto act = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_FULLY_CONNECTED, {op1, op2, b0, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2, b0},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/fully_connected_quant8_weights_as_inputs.model.cpp b/runtimes/tests/neural_networks_test/generated/models/fully_connected_quant8_weights_as_inputs.model.cpp
new file mode 100644
index 000000000..ae0b2e13e
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/fully_connected_quant8_weights_as_inputs.model.cpp
@@ -0,0 +1,28 @@
+// Generated file (from: fully_connected_quant8_weights_as_inputs.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type4(Type::INT32, {});
+ OperandType type2(Type::TENSOR_INT32, {1}, 0.25f, 0);
+ OperandType type1(Type::TENSOR_QUANT8_ASYMM, {1, 1}, 0.5f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {3, 1}, 0.5f, 0);
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {3, 1}, 1.f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto b0 = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type3);
+ auto act = model->addOperand(&type4);
+ // Phase 2, operations
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_FULLY_CONNECTED, {op1, op2, b0, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2, b0},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/hashtable_lookup_float.model.cpp b/runtimes/tests/neural_networks_test/generated/models/hashtable_lookup_float.model.cpp
new file mode 100644
index 000000000..8c5970d1c
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/hashtable_lookup_float.model.cpp
@@ -0,0 +1,26 @@
+// Generated file (from: hashtable_lookup_float.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::TENSOR_FLOAT32, {3, 2});
+ OperandType type3(Type::TENSOR_FLOAT32, {4, 2});
+ OperandType type1(Type::TENSOR_INT32, {3});
+ OperandType type0(Type::TENSOR_INT32, {4});
+ OperandType type4(Type::TENSOR_QUANT8_ASYMM, {4}, 1.f, 0);
+ // Phase 1, operands
+ auto lookup = model->addOperand(&type0);
+ auto key = model->addOperand(&type1);
+ auto value = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ auto hits = model->addOperand(&type4);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_HASHTABLE_LOOKUP, {lookup, key, value}, {output, hits});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {lookup, key, value},
+ {output, hits});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/hashtable_lookup_quant8.model.cpp b/runtimes/tests/neural_networks_test/generated/models/hashtable_lookup_quant8.model.cpp
new file mode 100644
index 000000000..043f2d377
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/hashtable_lookup_quant8.model.cpp
@@ -0,0 +1,26 @@
+// Generated file (from: hashtable_lookup_quant8.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::TENSOR_INT32, {3});
+ OperandType type0(Type::TENSOR_INT32, {4});
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {3, 2}, 0.5f, 0);
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {4, 2}, 0.5f, 0);
+ OperandType type4(Type::TENSOR_QUANT8_ASYMM, {4}, 1.f, 0);
+ // Phase 1, operands
+ auto lookup = model->addOperand(&type0);
+ auto key = model->addOperand(&type1);
+ auto value = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ auto hits = model->addOperand(&type4);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_HASHTABLE_LOOKUP, {lookup, key, value}, {output, hits});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {lookup, key, value},
+ {output, hits});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/l2_normalization.model.cpp b/runtimes/tests/neural_networks_test/generated/models/l2_normalization.model.cpp
new file mode 100644
index 000000000..a207ba4e7
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/l2_normalization.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: l2_normalization.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 1, 1, 3});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_L2_NORMALIZATION, {op1}, {op2});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/l2_normalization_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/l2_normalization_2.model.cpp
new file mode 100644
index 000000000..ebce2bb47
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/l2_normalization_2.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: l2_normalization_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 1, 1, 6});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_L2_NORMALIZATION, {op1}, {op2});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/l2_normalization_large.model.cpp b/runtimes/tests/neural_networks_test/generated/models/l2_normalization_large.model.cpp
new file mode 100644
index 000000000..cadfa7b45
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/l2_normalization_large.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: l2_normalization_large.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 3});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_L2_NORMALIZATION, {op1}, {op2});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/l2_pool_float.model.cpp b/runtimes/tests/neural_networks_test/generated/models/l2_pool_float.model.cpp
new file mode 100644
index 000000000..d3a7bf338
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/l2_pool_float.model.cpp
@@ -0,0 +1,29 @@
+// Generated file (from: l2_pool_float.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto cons1 = model->addOperand(&type1);
+ auto pad0 = model->addOperand(&type1);
+ auto act = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t cons1_init[] = {1};
+ model->setOperandValue(cons1, cons1_init, sizeof(int32_t) * 1);
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_L2_POOL_2D, {op1, pad0, pad0, pad0, pad0, cons1, cons1, cons1, cons1, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/l2_pool_float_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/l2_pool_float_2.model.cpp
new file mode 100644
index 000000000..e01a9a55b
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/l2_pool_float_2.model.cpp
@@ -0,0 +1,30 @@
+// Generated file (from: l2_pool_float_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 2, 1});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 4, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto cons2 = model->addOperand(&type1);
+ auto pad_same = model->addOperand(&type1);
+ auto act_none = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t cons2_init[] = {2};
+ model->setOperandValue(cons2, cons2_init, sizeof(int32_t) * 1);
+ static int32_t pad_same_init[] = {1};
+ model->setOperandValue(pad_same, pad_same_init, sizeof(int32_t) * 1);
+ static int32_t act_none_init[] = {0};
+ model->setOperandValue(act_none, act_none_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_L2_POOL_2D, {op1, pad_same, cons2, cons2, cons2, cons2, act_none}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/l2_pool_float_large.model.cpp b/runtimes/tests/neural_networks_test/generated/models/l2_pool_float_large.model.cpp
new file mode 100644
index 000000000..9c3c562c3
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/l2_pool_float_large.model.cpp
@@ -0,0 +1,39 @@
+// Generated file (from: l2_pool_float_large.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 3});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 3});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto filter_width = model->addOperand(&type1);
+ auto filter_height = model->addOperand(&type1);
+ auto stride_width = model->addOperand(&type1);
+ auto stride_height = model->addOperand(&type1);
+ auto pad0 = model->addOperand(&type1);
+ auto act = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t filter_width_init[] = {2};
+ model->setOperandValue(filter_width, filter_width_init, sizeof(int32_t) * 1);
+ static int32_t filter_height_init[] = {2};
+ model->setOperandValue(filter_height, filter_height_init, sizeof(int32_t) * 1);
+ static int32_t stride_width_init[] = {1};
+ model->setOperandValue(stride_width, stride_width_init, sizeof(int32_t) * 1);
+ static int32_t stride_height_init[] = {1};
+ model->setOperandValue(stride_height, stride_height_init, sizeof(int32_t) * 1);
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_L2_POOL_2D, {op1, pad0, pad0, pad0, pad0, stride_width, stride_height, filter_width, filter_height, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/local_response_norm_float_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/local_response_norm_float_1.model.cpp
new file mode 100644
index 000000000..7543bbe3d
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/local_response_norm_float_1.model.cpp
@@ -0,0 +1,33 @@
+// Generated file (from: local_response_norm_float_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::FLOAT32, {});
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 1, 1, 6});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto radius = model->addOperand(&type1);
+ auto bias = model->addOperand(&type2);
+ auto alpha = model->addOperand(&type2);
+ auto beta = model->addOperand(&type2);
+ auto output = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t radius_init[] = {20};
+ model->setOperandValue(radius, radius_init, sizeof(int32_t) * 1);
+ static float bias_init[] = {9.0f};
+ model->setOperandValue(bias, bias_init, sizeof(float) * 1);
+ static float alpha_init[] = {4.0f};
+ model->setOperandValue(alpha, alpha_init, sizeof(float) * 1);
+ static float beta_init[] = {0.5f};
+ model->setOperandValue(beta, beta_init, sizeof(float) * 1);
+ model->addOperation(ANEURALNETWORKS_LOCAL_RESPONSE_NORMALIZATION, {input, radius, bias, alpha, beta}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/local_response_norm_float_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/local_response_norm_float_2.model.cpp
new file mode 100644
index 000000000..5aae9a67b
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/local_response_norm_float_2.model.cpp
@@ -0,0 +1,33 @@
+// Generated file (from: local_response_norm_float_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::FLOAT32, {});
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 1, 1, 6});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto radius = model->addOperand(&type1);
+ auto bias = model->addOperand(&type2);
+ auto alpha = model->addOperand(&type2);
+ auto beta = model->addOperand(&type2);
+ auto output = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t radius_init[] = {20};
+ model->setOperandValue(radius, radius_init, sizeof(int32_t) * 1);
+ static float bias_init[] = {0.0f};
+ model->setOperandValue(bias, bias_init, sizeof(float) * 1);
+ static float alpha_init[] = {1.0f};
+ model->setOperandValue(alpha, alpha_init, sizeof(float) * 1);
+ static float beta_init[] = {0.5f};
+ model->setOperandValue(beta, beta_init, sizeof(float) * 1);
+ model->addOperation(ANEURALNETWORKS_LOCAL_RESPONSE_NORMALIZATION, {input, radius, bias, alpha, beta}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/local_response_norm_float_3.model.cpp b/runtimes/tests/neural_networks_test/generated/models/local_response_norm_float_3.model.cpp
new file mode 100644
index 000000000..016da49fe
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/local_response_norm_float_3.model.cpp
@@ -0,0 +1,33 @@
+// Generated file (from: local_response_norm_float_3.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::FLOAT32, {});
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 1, 1, 6});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto radius = model->addOperand(&type1);
+ auto bias = model->addOperand(&type2);
+ auto alpha = model->addOperand(&type2);
+ auto beta = model->addOperand(&type2);
+ auto output = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t radius_init[] = {20};
+ model->setOperandValue(radius, radius_init, sizeof(int32_t) * 1);
+ static float bias_init[] = {0.0f};
+ model->setOperandValue(bias, bias_init, sizeof(float) * 1);
+ static float alpha_init[] = {4.0f};
+ model->setOperandValue(alpha, alpha_init, sizeof(float) * 1);
+ static float beta_init[] = {0.5f};
+ model->setOperandValue(beta, beta_init, sizeof(float) * 1);
+ model->addOperation(ANEURALNETWORKS_LOCAL_RESPONSE_NORMALIZATION, {input, radius, bias, alpha, beta}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/local_response_norm_float_4.model.cpp b/runtimes/tests/neural_networks_test/generated/models/local_response_norm_float_4.model.cpp
new file mode 100644
index 000000000..8311f8f80
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/local_response_norm_float_4.model.cpp
@@ -0,0 +1,33 @@
+// Generated file (from: local_response_norm_float_4.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::FLOAT32, {});
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 1, 1, 6});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto radius = model->addOperand(&type1);
+ auto bias = model->addOperand(&type2);
+ auto alpha = model->addOperand(&type2);
+ auto beta = model->addOperand(&type2);
+ auto output = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t radius_init[] = {2};
+ model->setOperandValue(radius, radius_init, sizeof(int32_t) * 1);
+ static float bias_init[] = {9.0f};
+ model->setOperandValue(bias, bias_init, sizeof(float) * 1);
+ static float alpha_init[] = {4.0f};
+ model->setOperandValue(alpha, alpha_init, sizeof(float) * 1);
+ static float beta_init[] = {0.5f};
+ model->setOperandValue(beta, beta_init, sizeof(float) * 1);
+ model->addOperation(ANEURALNETWORKS_LOCAL_RESPONSE_NORMALIZATION, {input, radius, bias, alpha, beta}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/logistic_float_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/logistic_float_1.model.cpp
new file mode 100644
index 000000000..2ca725fc6
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/logistic_float_1.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: logistic_float_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op3 = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_LOGISTIC, {op1}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/logistic_float_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/logistic_float_2.model.cpp
new file mode 100644
index 000000000..18d52ccfc
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/logistic_float_2.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: logistic_float_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 32, 40, 2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto output = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_LOGISTIC, {input}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/logistic_quant8_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/logistic_quant8_1.model.cpp
new file mode 100644
index 000000000..b0f97a95d
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/logistic_quant8_1.model.cpp
@@ -0,0 +1,20 @@
+// Generated file (from: logistic_quant8_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.00390625f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.5f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op3 = model->addOperand(&type1);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_LOGISTIC, {op1}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/logistic_quant8_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/logistic_quant8_2.model.cpp
new file mode 100644
index 000000000..b14418301
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/logistic_quant8_2.model.cpp
@@ -0,0 +1,20 @@
+// Generated file (from: logistic_quant8_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 16, 16, 1}, .5f, 0);
+ OperandType type1(Type::TENSOR_QUANT8_ASYMM, {1, 16, 16, 1}, 0.00390625f, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto output = model->addOperand(&type1);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_LOGISTIC, {input}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/lsh_projection.model.cpp b/runtimes/tests/neural_networks_test/generated/models/lsh_projection.model.cpp
new file mode 100644
index 000000000..d5c135775
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/lsh_projection.model.cpp
@@ -0,0 +1,30 @@
+// Generated file (from: lsh_projection.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {3});
+ OperandType type0(Type::TENSOR_FLOAT32, {4, 2});
+ OperandType type1(Type::TENSOR_INT32, {3, 2});
+ OperandType type4(Type::TENSOR_INT32, {8});
+ // Phase 1, operands
+ auto hash = model->addOperand(&type0);
+ auto lookup = model->addOperand(&type1);
+ auto weight = model->addOperand(&type2);
+ auto type_param = model->addOperand(&type3);
+ auto output = model->addOperand(&type4);
+ // Phase 2, operations
+ static float hash_init[] = {0.123f, 0.456f, -0.321f, -0.654f, 1.234f, 5.678f, -4.321f, -8.765f};
+ model->setOperandValue(hash, hash_init, sizeof(float) * 8);
+ static int32_t type_param_init[] = {2};
+ model->setOperandValue(type_param, type_param_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_LSH_PROJECTION, {hash, lookup, weight, type_param}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {lookup, weight},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/lsh_projection_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/lsh_projection_2.model.cpp
new file mode 100644
index 000000000..25e9d8b42
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/lsh_projection_2.model.cpp
@@ -0,0 +1,30 @@
+// Generated file (from: lsh_projection_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {3});
+ OperandType type0(Type::TENSOR_FLOAT32, {4, 2});
+ OperandType type1(Type::TENSOR_INT32, {3, 2});
+ OperandType type4(Type::TENSOR_INT32, {4});
+ // Phase 1, operands
+ auto hash = model->addOperand(&type0);
+ auto lookup = model->addOperand(&type1);
+ auto weight = model->addOperand(&type2);
+ auto type_param = model->addOperand(&type3);
+ auto output = model->addOperand(&type4);
+ // Phase 2, operations
+ static float hash_init[] = {0.123f, 0.456f, -0.321f, -0.654f, 1.234f, 5.678f, -4.321f, -8.765f};
+ model->setOperandValue(hash, hash_init, sizeof(float) * 8);
+ static int32_t type_param_init[] = {1};
+ model->setOperandValue(type_param, type_param_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_LSH_PROJECTION, {hash, lookup, weight, type_param}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {lookup, weight},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/lsh_projection_weights_as_inputs.model.cpp b/runtimes/tests/neural_networks_test/generated/models/lsh_projection_weights_as_inputs.model.cpp
new file mode 100644
index 000000000..4abfc18e2
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/lsh_projection_weights_as_inputs.model.cpp
@@ -0,0 +1,28 @@
+// Generated file (from: lsh_projection_weights_as_inputs.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type3(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {3});
+ OperandType type0(Type::TENSOR_FLOAT32, {4, 2});
+ OperandType type1(Type::TENSOR_INT32, {3, 2});
+ OperandType type4(Type::TENSOR_INT32, {8});
+ // Phase 1, operands
+ auto hash = model->addOperand(&type0);
+ auto lookup = model->addOperand(&type1);
+ auto weight = model->addOperand(&type2);
+ auto type_param = model->addOperand(&type3);
+ auto output = model->addOperand(&type4);
+ // Phase 2, operations
+ static int32_t type_param_init[] = {2};
+ model->setOperandValue(type_param, type_param_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_LSH_PROJECTION, {hash, lookup, weight, type_param}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {hash, lookup, weight},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/lstm.model.cpp b/runtimes/tests/neural_networks_test/generated/models/lstm.model.cpp
new file mode 100644
index 000000000..c1772806a
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/lstm.model.cpp
@@ -0,0 +1,59 @@
+// Generated file (from: lstm.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type8(Type::FLOAT32, {});
+ OperandType type7(Type::INT32, {});
+ OperandType type5(Type::TENSOR_FLOAT32, {0,0});
+ OperandType type3(Type::TENSOR_FLOAT32, {0});
+ OperandType type9(Type::TENSOR_FLOAT32, {1, 16});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2});
+ OperandType type6(Type::TENSOR_FLOAT32, {1, 4});
+ OperandType type1(Type::TENSOR_FLOAT32, {4, 2});
+ OperandType type2(Type::TENSOR_FLOAT32, {4, 4});
+ OperandType type4(Type::TENSOR_FLOAT32, {4});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto input_to_input_weights = model->addOperand(&type1);
+ auto input_to_forget_weights = model->addOperand(&type1);
+ auto input_to_cell_weights = model->addOperand(&type1);
+ auto input_to_output_weights = model->addOperand(&type1);
+ auto recurrent_to_intput_weights = model->addOperand(&type2);
+ auto recurrent_to_forget_weights = model->addOperand(&type2);
+ auto recurrent_to_cell_weights = model->addOperand(&type2);
+ auto recurrent_to_output_weights = model->addOperand(&type2);
+ auto cell_to_input_weights = model->addOperand(&type3);
+ auto cell_to_forget_weights = model->addOperand(&type3);
+ auto cell_to_output_weights = model->addOperand(&type3);
+ auto input_gate_bias = model->addOperand(&type4);
+ auto forget_gate_bias = model->addOperand(&type4);
+ auto cell_gate_bias = model->addOperand(&type4);
+ auto output_gate_bias = model->addOperand(&type4);
+ auto projection_weights = model->addOperand(&type5);
+ auto projection_bias = model->addOperand(&type3);
+ auto output_state_in = model->addOperand(&type6);
+ auto cell_state_in = model->addOperand(&type6);
+ auto activation_param = model->addOperand(&type7);
+ auto cell_clip_param = model->addOperand(&type8);
+ auto proj_clip_param = model->addOperand(&type8);
+ auto scratch_buffer = model->addOperand(&type9);
+ auto output_state_out = model->addOperand(&type6);
+ auto cell_state_out = model->addOperand(&type6);
+ auto output = model->addOperand(&type6);
+ // Phase 2, operations
+ static int32_t activation_param_init[] = {4};
+ model->setOperandValue(activation_param, activation_param_init, sizeof(int32_t) * 1);
+ static float cell_clip_param_init[] = {0.0f};
+ model->setOperandValue(cell_clip_param, cell_clip_param_init, sizeof(float) * 1);
+ static float proj_clip_param_init[] = {0.0f};
+ model->setOperandValue(proj_clip_param, proj_clip_param_init, sizeof(float) * 1);
+ model->addOperation(ANEURALNETWORKS_LSTM, {input, input_to_input_weights, input_to_forget_weights, input_to_cell_weights, input_to_output_weights, recurrent_to_intput_weights, recurrent_to_forget_weights, recurrent_to_cell_weights, recurrent_to_output_weights, cell_to_input_weights, cell_to_forget_weights, cell_to_output_weights, input_gate_bias, forget_gate_bias, cell_gate_bias, output_gate_bias, projection_weights, projection_bias, output_state_in, cell_state_in, activation_param, cell_clip_param, proj_clip_param}, {scratch_buffer, output_state_out, cell_state_out, output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input, input_to_input_weights, input_to_forget_weights, input_to_cell_weights, input_to_output_weights, recurrent_to_intput_weights, recurrent_to_forget_weights, recurrent_to_cell_weights, recurrent_to_output_weights, cell_to_input_weights, cell_to_forget_weights, cell_to_output_weights, input_gate_bias, forget_gate_bias, cell_gate_bias, output_gate_bias, projection_weights, projection_bias, output_state_in, cell_state_in},
+ {scratch_buffer, output_state_out, cell_state_out, output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {0};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/lstm2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/lstm2.model.cpp
new file mode 100644
index 000000000..7c3d95a88
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/lstm2.model.cpp
@@ -0,0 +1,59 @@
+// Generated file (from: lstm2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type8(Type::FLOAT32, {});
+ OperandType type7(Type::INT32, {});
+ OperandType type5(Type::TENSOR_FLOAT32, {0,0});
+ OperandType type3(Type::TENSOR_FLOAT32, {0});
+ OperandType type9(Type::TENSOR_FLOAT32, {1, 12});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2});
+ OperandType type6(Type::TENSOR_FLOAT32, {1, 4});
+ OperandType type1(Type::TENSOR_FLOAT32, {4, 2});
+ OperandType type2(Type::TENSOR_FLOAT32, {4, 4});
+ OperandType type4(Type::TENSOR_FLOAT32, {4});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto input_to_input_weights = model->addOperand(&type1);
+ auto input_to_forget_weights = model->addOperand(&type1);
+ auto input_to_cell_weights = model->addOperand(&type1);
+ auto input_to_output_weights = model->addOperand(&type1);
+ auto recurrent_to_intput_weights = model->addOperand(&type2);
+ auto recurrent_to_forget_weights = model->addOperand(&type2);
+ auto recurrent_to_cell_weights = model->addOperand(&type2);
+ auto recurrent_to_output_weights = model->addOperand(&type2);
+ auto cell_to_input_weights = model->addOperand(&type3);
+ auto cell_to_forget_weights = model->addOperand(&type4);
+ auto cell_to_output_weights = model->addOperand(&type4);
+ auto input_gate_bias = model->addOperand(&type4);
+ auto forget_gate_bias = model->addOperand(&type4);
+ auto cell_gate_bias = model->addOperand(&type4);
+ auto output_gate_bias = model->addOperand(&type4);
+ auto projection_weights = model->addOperand(&type5);
+ auto projection_bias = model->addOperand(&type3);
+ auto output_state_in = model->addOperand(&type6);
+ auto cell_state_in = model->addOperand(&type6);
+ auto activation_param = model->addOperand(&type7);
+ auto cell_clip_param = model->addOperand(&type8);
+ auto proj_clip_param = model->addOperand(&type8);
+ auto scratch_buffer = model->addOperand(&type9);
+ auto output_state_out = model->addOperand(&type6);
+ auto cell_state_out = model->addOperand(&type6);
+ auto output = model->addOperand(&type6);
+ // Phase 2, operations
+ static int32_t activation_param_init[] = {4};
+ model->setOperandValue(activation_param, activation_param_init, sizeof(int32_t) * 1);
+ static float cell_clip_param_init[] = {0.0f};
+ model->setOperandValue(cell_clip_param, cell_clip_param_init, sizeof(float) * 1);
+ static float proj_clip_param_init[] = {0.0f};
+ model->setOperandValue(proj_clip_param, proj_clip_param_init, sizeof(float) * 1);
+ model->addOperation(ANEURALNETWORKS_LSTM, {input, input_to_input_weights, input_to_forget_weights, input_to_cell_weights, input_to_output_weights, recurrent_to_intput_weights, recurrent_to_forget_weights, recurrent_to_cell_weights, recurrent_to_output_weights, cell_to_input_weights, cell_to_forget_weights, cell_to_output_weights, input_gate_bias, forget_gate_bias, cell_gate_bias, output_gate_bias, projection_weights, projection_bias, output_state_in, cell_state_in, activation_param, cell_clip_param, proj_clip_param}, {scratch_buffer, output_state_out, cell_state_out, output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input, input_to_input_weights, input_to_forget_weights, input_to_cell_weights, input_to_output_weights, recurrent_to_intput_weights, recurrent_to_forget_weights, recurrent_to_cell_weights, recurrent_to_output_weights, cell_to_input_weights, cell_to_forget_weights, cell_to_output_weights, input_gate_bias, forget_gate_bias, cell_gate_bias, output_gate_bias, projection_weights, projection_bias, output_state_in, cell_state_in},
+ {scratch_buffer, output_state_out, cell_state_out, output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {0};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/lstm2_state.model.cpp b/runtimes/tests/neural_networks_test/generated/models/lstm2_state.model.cpp
new file mode 100644
index 000000000..74c328bec
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/lstm2_state.model.cpp
@@ -0,0 +1,59 @@
+// Generated file (from: lstm2_state.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type8(Type::FLOAT32, {});
+ OperandType type7(Type::INT32, {});
+ OperandType type5(Type::TENSOR_FLOAT32, {0,0});
+ OperandType type3(Type::TENSOR_FLOAT32, {0});
+ OperandType type9(Type::TENSOR_FLOAT32, {1, 12});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2});
+ OperandType type6(Type::TENSOR_FLOAT32, {1, 4});
+ OperandType type1(Type::TENSOR_FLOAT32, {4, 2});
+ OperandType type2(Type::TENSOR_FLOAT32, {4, 4});
+ OperandType type4(Type::TENSOR_FLOAT32, {4});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto input_to_input_weights = model->addOperand(&type1);
+ auto input_to_forget_weights = model->addOperand(&type1);
+ auto input_to_cell_weights = model->addOperand(&type1);
+ auto input_to_output_weights = model->addOperand(&type1);
+ auto recurrent_to_intput_weights = model->addOperand(&type2);
+ auto recurrent_to_forget_weights = model->addOperand(&type2);
+ auto recurrent_to_cell_weights = model->addOperand(&type2);
+ auto recurrent_to_output_weights = model->addOperand(&type2);
+ auto cell_to_input_weights = model->addOperand(&type3);
+ auto cell_to_forget_weights = model->addOperand(&type4);
+ auto cell_to_output_weights = model->addOperand(&type4);
+ auto input_gate_bias = model->addOperand(&type4);
+ auto forget_gate_bias = model->addOperand(&type4);
+ auto cell_gate_bias = model->addOperand(&type4);
+ auto output_gate_bias = model->addOperand(&type4);
+ auto projection_weights = model->addOperand(&type5);
+ auto projection_bias = model->addOperand(&type3);
+ auto output_state_in = model->addOperand(&type6);
+ auto cell_state_in = model->addOperand(&type6);
+ auto activation_param = model->addOperand(&type7);
+ auto cell_clip_param = model->addOperand(&type8);
+ auto proj_clip_param = model->addOperand(&type8);
+ auto scratch_buffer = model->addOperand(&type9);
+ auto output_state_out = model->addOperand(&type6);
+ auto cell_state_out = model->addOperand(&type6);
+ auto output = model->addOperand(&type6);
+ // Phase 2, operations
+ static int32_t activation_param_init[] = {4};
+ model->setOperandValue(activation_param, activation_param_init, sizeof(int32_t) * 1);
+ static float cell_clip_param_init[] = {0.0f};
+ model->setOperandValue(cell_clip_param, cell_clip_param_init, sizeof(float) * 1);
+ static float proj_clip_param_init[] = {0.0f};
+ model->setOperandValue(proj_clip_param, proj_clip_param_init, sizeof(float) * 1);
+ model->addOperation(ANEURALNETWORKS_LSTM, {input, input_to_input_weights, input_to_forget_weights, input_to_cell_weights, input_to_output_weights, recurrent_to_intput_weights, recurrent_to_forget_weights, recurrent_to_cell_weights, recurrent_to_output_weights, cell_to_input_weights, cell_to_forget_weights, cell_to_output_weights, input_gate_bias, forget_gate_bias, cell_gate_bias, output_gate_bias, projection_weights, projection_bias, output_state_in, cell_state_in, activation_param, cell_clip_param, proj_clip_param}, {scratch_buffer, output_state_out, cell_state_out, output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input, input_to_input_weights, input_to_forget_weights, input_to_cell_weights, input_to_output_weights, recurrent_to_intput_weights, recurrent_to_forget_weights, recurrent_to_cell_weights, recurrent_to_output_weights, cell_to_input_weights, cell_to_forget_weights, cell_to_output_weights, input_gate_bias, forget_gate_bias, cell_gate_bias, output_gate_bias, projection_weights, projection_bias, output_state_in, cell_state_in},
+ {scratch_buffer, output_state_out, cell_state_out, output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {0};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/lstm2_state2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/lstm2_state2.model.cpp
new file mode 100644
index 000000000..885cc34e3
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/lstm2_state2.model.cpp
@@ -0,0 +1,59 @@
+// Generated file (from: lstm2_state2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type8(Type::FLOAT32, {});
+ OperandType type7(Type::INT32, {});
+ OperandType type5(Type::TENSOR_FLOAT32, {0,0});
+ OperandType type3(Type::TENSOR_FLOAT32, {0});
+ OperandType type9(Type::TENSOR_FLOAT32, {1, 12});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2});
+ OperandType type6(Type::TENSOR_FLOAT32, {1, 4});
+ OperandType type1(Type::TENSOR_FLOAT32, {4, 2});
+ OperandType type2(Type::TENSOR_FLOAT32, {4, 4});
+ OperandType type4(Type::TENSOR_FLOAT32, {4});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto input_to_input_weights = model->addOperand(&type1);
+ auto input_to_forget_weights = model->addOperand(&type1);
+ auto input_to_cell_weights = model->addOperand(&type1);
+ auto input_to_output_weights = model->addOperand(&type1);
+ auto recurrent_to_intput_weights = model->addOperand(&type2);
+ auto recurrent_to_forget_weights = model->addOperand(&type2);
+ auto recurrent_to_cell_weights = model->addOperand(&type2);
+ auto recurrent_to_output_weights = model->addOperand(&type2);
+ auto cell_to_input_weights = model->addOperand(&type3);
+ auto cell_to_forget_weights = model->addOperand(&type4);
+ auto cell_to_output_weights = model->addOperand(&type4);
+ auto input_gate_bias = model->addOperand(&type4);
+ auto forget_gate_bias = model->addOperand(&type4);
+ auto cell_gate_bias = model->addOperand(&type4);
+ auto output_gate_bias = model->addOperand(&type4);
+ auto projection_weights = model->addOperand(&type5);
+ auto projection_bias = model->addOperand(&type3);
+ auto output_state_in = model->addOperand(&type6);
+ auto cell_state_in = model->addOperand(&type6);
+ auto activation_param = model->addOperand(&type7);
+ auto cell_clip_param = model->addOperand(&type8);
+ auto proj_clip_param = model->addOperand(&type8);
+ auto scratch_buffer = model->addOperand(&type9);
+ auto output_state_out = model->addOperand(&type6);
+ auto cell_state_out = model->addOperand(&type6);
+ auto output = model->addOperand(&type6);
+ // Phase 2, operations
+ static int32_t activation_param_init[] = {4};
+ model->setOperandValue(activation_param, activation_param_init, sizeof(int32_t) * 1);
+ static float cell_clip_param_init[] = {0.0f};
+ model->setOperandValue(cell_clip_param, cell_clip_param_init, sizeof(float) * 1);
+ static float proj_clip_param_init[] = {0.0f};
+ model->setOperandValue(proj_clip_param, proj_clip_param_init, sizeof(float) * 1);
+ model->addOperation(ANEURALNETWORKS_LSTM, {input, input_to_input_weights, input_to_forget_weights, input_to_cell_weights, input_to_output_weights, recurrent_to_intput_weights, recurrent_to_forget_weights, recurrent_to_cell_weights, recurrent_to_output_weights, cell_to_input_weights, cell_to_forget_weights, cell_to_output_weights, input_gate_bias, forget_gate_bias, cell_gate_bias, output_gate_bias, projection_weights, projection_bias, output_state_in, cell_state_in, activation_param, cell_clip_param, proj_clip_param}, {scratch_buffer, output_state_out, cell_state_out, output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input, input_to_input_weights, input_to_forget_weights, input_to_cell_weights, input_to_output_weights, recurrent_to_intput_weights, recurrent_to_forget_weights, recurrent_to_cell_weights, recurrent_to_output_weights, cell_to_input_weights, cell_to_forget_weights, cell_to_output_weights, input_gate_bias, forget_gate_bias, cell_gate_bias, output_gate_bias, projection_weights, projection_bias, output_state_in, cell_state_in},
+ {scratch_buffer, output_state_out, cell_state_out, output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {1, 2, 0};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/lstm3.model.cpp b/runtimes/tests/neural_networks_test/generated/models/lstm3.model.cpp
new file mode 100644
index 000000000..32f2d012d
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/lstm3.model.cpp
@@ -0,0 +1,60 @@
+// Generated file (from: lstm3.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type9(Type::FLOAT32, {});
+ OperandType type8(Type::INT32, {});
+ OperandType type5(Type::TENSOR_FLOAT32, {0});
+ OperandType type4(Type::TENSOR_FLOAT32, {16,20});
+ OperandType type6(Type::TENSOR_FLOAT32, {2, 16});
+ OperandType type7(Type::TENSOR_FLOAT32, {2, 20});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 5});
+ OperandType type10(Type::TENSOR_FLOAT32, {2, 80});
+ OperandType type2(Type::TENSOR_FLOAT32, {20, 16});
+ OperandType type1(Type::TENSOR_FLOAT32, {20, 5});
+ OperandType type3(Type::TENSOR_FLOAT32, {20});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto input_to_input_weights = model->addOperand(&type1);
+ auto input_to_forget_weights = model->addOperand(&type1);
+ auto input_to_cell_weights = model->addOperand(&type1);
+ auto input_to_output_weights = model->addOperand(&type1);
+ auto recurrent_to_intput_weights = model->addOperand(&type2);
+ auto recurrent_to_forget_weights = model->addOperand(&type2);
+ auto recurrent_to_cell_weights = model->addOperand(&type2);
+ auto recurrent_to_output_weights = model->addOperand(&type2);
+ auto cell_to_input_weights = model->addOperand(&type3);
+ auto cell_to_forget_weights = model->addOperand(&type3);
+ auto cell_to_output_weights = model->addOperand(&type3);
+ auto input_gate_bias = model->addOperand(&type3);
+ auto forget_gate_bias = model->addOperand(&type3);
+ auto cell_gate_bias = model->addOperand(&type3);
+ auto output_gate_bias = model->addOperand(&type3);
+ auto projection_weights = model->addOperand(&type4);
+ auto projection_bias = model->addOperand(&type5);
+ auto output_state_in = model->addOperand(&type6);
+ auto cell_state_in = model->addOperand(&type7);
+ auto activation_param = model->addOperand(&type8);
+ auto cell_clip_param = model->addOperand(&type9);
+ auto proj_clip_param = model->addOperand(&type9);
+ auto scratch_buffer = model->addOperand(&type10);
+ auto output_state_out = model->addOperand(&type6);
+ auto cell_state_out = model->addOperand(&type7);
+ auto output = model->addOperand(&type6);
+ // Phase 2, operations
+ static int32_t activation_param_init[] = {4};
+ model->setOperandValue(activation_param, activation_param_init, sizeof(int32_t) * 1);
+ static float cell_clip_param_init[] = {0.0f};
+ model->setOperandValue(cell_clip_param, cell_clip_param_init, sizeof(float) * 1);
+ static float proj_clip_param_init[] = {0.0f};
+ model->setOperandValue(proj_clip_param, proj_clip_param_init, sizeof(float) * 1);
+ model->addOperation(ANEURALNETWORKS_LSTM, {input, input_to_input_weights, input_to_forget_weights, input_to_cell_weights, input_to_output_weights, recurrent_to_intput_weights, recurrent_to_forget_weights, recurrent_to_cell_weights, recurrent_to_output_weights, cell_to_input_weights, cell_to_forget_weights, cell_to_output_weights, input_gate_bias, forget_gate_bias, cell_gate_bias, output_gate_bias, projection_weights, projection_bias, output_state_in, cell_state_in, activation_param, cell_clip_param, proj_clip_param}, {scratch_buffer, output_state_out, cell_state_out, output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input, input_to_input_weights, input_to_forget_weights, input_to_cell_weights, input_to_output_weights, recurrent_to_intput_weights, recurrent_to_forget_weights, recurrent_to_cell_weights, recurrent_to_output_weights, cell_to_input_weights, cell_to_forget_weights, cell_to_output_weights, input_gate_bias, forget_gate_bias, cell_gate_bias, output_gate_bias, projection_weights, projection_bias, output_state_in, cell_state_in},
+ {scratch_buffer, output_state_out, cell_state_out, output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {0};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/lstm3_state.model.cpp b/runtimes/tests/neural_networks_test/generated/models/lstm3_state.model.cpp
new file mode 100644
index 000000000..ce5a70509
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/lstm3_state.model.cpp
@@ -0,0 +1,60 @@
+// Generated file (from: lstm3_state.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type9(Type::FLOAT32, {});
+ OperandType type8(Type::INT32, {});
+ OperandType type5(Type::TENSOR_FLOAT32, {0});
+ OperandType type4(Type::TENSOR_FLOAT32, {16,20});
+ OperandType type6(Type::TENSOR_FLOAT32, {2, 16});
+ OperandType type7(Type::TENSOR_FLOAT32, {2, 20});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 5});
+ OperandType type10(Type::TENSOR_FLOAT32, {2, 80});
+ OperandType type2(Type::TENSOR_FLOAT32, {20, 16});
+ OperandType type1(Type::TENSOR_FLOAT32, {20, 5});
+ OperandType type3(Type::TENSOR_FLOAT32, {20});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto input_to_input_weights = model->addOperand(&type1);
+ auto input_to_forget_weights = model->addOperand(&type1);
+ auto input_to_cell_weights = model->addOperand(&type1);
+ auto input_to_output_weights = model->addOperand(&type1);
+ auto recurrent_to_intput_weights = model->addOperand(&type2);
+ auto recurrent_to_forget_weights = model->addOperand(&type2);
+ auto recurrent_to_cell_weights = model->addOperand(&type2);
+ auto recurrent_to_output_weights = model->addOperand(&type2);
+ auto cell_to_input_weights = model->addOperand(&type3);
+ auto cell_to_forget_weights = model->addOperand(&type3);
+ auto cell_to_output_weights = model->addOperand(&type3);
+ auto input_gate_bias = model->addOperand(&type3);
+ auto forget_gate_bias = model->addOperand(&type3);
+ auto cell_gate_bias = model->addOperand(&type3);
+ auto output_gate_bias = model->addOperand(&type3);
+ auto projection_weights = model->addOperand(&type4);
+ auto projection_bias = model->addOperand(&type5);
+ auto output_state_in = model->addOperand(&type6);
+ auto cell_state_in = model->addOperand(&type7);
+ auto activation_param = model->addOperand(&type8);
+ auto cell_clip_param = model->addOperand(&type9);
+ auto proj_clip_param = model->addOperand(&type9);
+ auto scratch_buffer = model->addOperand(&type10);
+ auto output_state_out = model->addOperand(&type6);
+ auto cell_state_out = model->addOperand(&type7);
+ auto output = model->addOperand(&type6);
+ // Phase 2, operations
+ static int32_t activation_param_init[] = {4};
+ model->setOperandValue(activation_param, activation_param_init, sizeof(int32_t) * 1);
+ static float cell_clip_param_init[] = {0.0f};
+ model->setOperandValue(cell_clip_param, cell_clip_param_init, sizeof(float) * 1);
+ static float proj_clip_param_init[] = {0.0f};
+ model->setOperandValue(proj_clip_param, proj_clip_param_init, sizeof(float) * 1);
+ model->addOperation(ANEURALNETWORKS_LSTM, {input, input_to_input_weights, input_to_forget_weights, input_to_cell_weights, input_to_output_weights, recurrent_to_intput_weights, recurrent_to_forget_weights, recurrent_to_cell_weights, recurrent_to_output_weights, cell_to_input_weights, cell_to_forget_weights, cell_to_output_weights, input_gate_bias, forget_gate_bias, cell_gate_bias, output_gate_bias, projection_weights, projection_bias, output_state_in, cell_state_in, activation_param, cell_clip_param, proj_clip_param}, {scratch_buffer, output_state_out, cell_state_out, output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input, input_to_input_weights, input_to_forget_weights, input_to_cell_weights, input_to_output_weights, recurrent_to_intput_weights, recurrent_to_forget_weights, recurrent_to_cell_weights, recurrent_to_output_weights, cell_to_input_weights, cell_to_forget_weights, cell_to_output_weights, input_gate_bias, forget_gate_bias, cell_gate_bias, output_gate_bias, projection_weights, projection_bias, output_state_in, cell_state_in},
+ {scratch_buffer, output_state_out, cell_state_out, output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {0};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/lstm3_state2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/lstm3_state2.model.cpp
new file mode 100644
index 000000000..0484ac4b5
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/lstm3_state2.model.cpp
@@ -0,0 +1,60 @@
+// Generated file (from: lstm3_state2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type9(Type::FLOAT32, {});
+ OperandType type8(Type::INT32, {});
+ OperandType type5(Type::TENSOR_FLOAT32, {0});
+ OperandType type4(Type::TENSOR_FLOAT32, {16,20});
+ OperandType type6(Type::TENSOR_FLOAT32, {2, 16});
+ OperandType type7(Type::TENSOR_FLOAT32, {2, 20});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 5});
+ OperandType type10(Type::TENSOR_FLOAT32, {2, 80});
+ OperandType type2(Type::TENSOR_FLOAT32, {20, 16});
+ OperandType type1(Type::TENSOR_FLOAT32, {20, 5});
+ OperandType type3(Type::TENSOR_FLOAT32, {20});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto input_to_input_weights = model->addOperand(&type1);
+ auto input_to_forget_weights = model->addOperand(&type1);
+ auto input_to_cell_weights = model->addOperand(&type1);
+ auto input_to_output_weights = model->addOperand(&type1);
+ auto recurrent_to_intput_weights = model->addOperand(&type2);
+ auto recurrent_to_forget_weights = model->addOperand(&type2);
+ auto recurrent_to_cell_weights = model->addOperand(&type2);
+ auto recurrent_to_output_weights = model->addOperand(&type2);
+ auto cell_to_input_weights = model->addOperand(&type3);
+ auto cell_to_forget_weights = model->addOperand(&type3);
+ auto cell_to_output_weights = model->addOperand(&type3);
+ auto input_gate_bias = model->addOperand(&type3);
+ auto forget_gate_bias = model->addOperand(&type3);
+ auto cell_gate_bias = model->addOperand(&type3);
+ auto output_gate_bias = model->addOperand(&type3);
+ auto projection_weights = model->addOperand(&type4);
+ auto projection_bias = model->addOperand(&type5);
+ auto output_state_in = model->addOperand(&type6);
+ auto cell_state_in = model->addOperand(&type7);
+ auto activation_param = model->addOperand(&type8);
+ auto cell_clip_param = model->addOperand(&type9);
+ auto proj_clip_param = model->addOperand(&type9);
+ auto scratch_buffer = model->addOperand(&type10);
+ auto output_state_out = model->addOperand(&type6);
+ auto cell_state_out = model->addOperand(&type7);
+ auto output = model->addOperand(&type6);
+ // Phase 2, operations
+ static int32_t activation_param_init[] = {4};
+ model->setOperandValue(activation_param, activation_param_init, sizeof(int32_t) * 1);
+ static float cell_clip_param_init[] = {0.0f};
+ model->setOperandValue(cell_clip_param, cell_clip_param_init, sizeof(float) * 1);
+ static float proj_clip_param_init[] = {0.0f};
+ model->setOperandValue(proj_clip_param, proj_clip_param_init, sizeof(float) * 1);
+ model->addOperation(ANEURALNETWORKS_LSTM, {input, input_to_input_weights, input_to_forget_weights, input_to_cell_weights, input_to_output_weights, recurrent_to_intput_weights, recurrent_to_forget_weights, recurrent_to_cell_weights, recurrent_to_output_weights, cell_to_input_weights, cell_to_forget_weights, cell_to_output_weights, input_gate_bias, forget_gate_bias, cell_gate_bias, output_gate_bias, projection_weights, projection_bias, output_state_in, cell_state_in, activation_param, cell_clip_param, proj_clip_param}, {scratch_buffer, output_state_out, cell_state_out, output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input, input_to_input_weights, input_to_forget_weights, input_to_cell_weights, input_to_output_weights, recurrent_to_intput_weights, recurrent_to_forget_weights, recurrent_to_cell_weights, recurrent_to_output_weights, cell_to_input_weights, cell_to_forget_weights, cell_to_output_weights, input_gate_bias, forget_gate_bias, cell_gate_bias, output_gate_bias, projection_weights, projection_bias, output_state_in, cell_state_in},
+ {scratch_buffer, output_state_out, cell_state_out, output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {0};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/lstm3_state3.model.cpp b/runtimes/tests/neural_networks_test/generated/models/lstm3_state3.model.cpp
new file mode 100644
index 000000000..cf00f1ce4
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/lstm3_state3.model.cpp
@@ -0,0 +1,60 @@
+// Generated file (from: lstm3_state3.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type9(Type::FLOAT32, {});
+ OperandType type8(Type::INT32, {});
+ OperandType type5(Type::TENSOR_FLOAT32, {0});
+ OperandType type4(Type::TENSOR_FLOAT32, {16,20});
+ OperandType type6(Type::TENSOR_FLOAT32, {2, 16});
+ OperandType type7(Type::TENSOR_FLOAT32, {2, 20});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 5});
+ OperandType type10(Type::TENSOR_FLOAT32, {2, 80});
+ OperandType type2(Type::TENSOR_FLOAT32, {20, 16});
+ OperandType type1(Type::TENSOR_FLOAT32, {20, 5});
+ OperandType type3(Type::TENSOR_FLOAT32, {20});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto input_to_input_weights = model->addOperand(&type1);
+ auto input_to_forget_weights = model->addOperand(&type1);
+ auto input_to_cell_weights = model->addOperand(&type1);
+ auto input_to_output_weights = model->addOperand(&type1);
+ auto recurrent_to_intput_weights = model->addOperand(&type2);
+ auto recurrent_to_forget_weights = model->addOperand(&type2);
+ auto recurrent_to_cell_weights = model->addOperand(&type2);
+ auto recurrent_to_output_weights = model->addOperand(&type2);
+ auto cell_to_input_weights = model->addOperand(&type3);
+ auto cell_to_forget_weights = model->addOperand(&type3);
+ auto cell_to_output_weights = model->addOperand(&type3);
+ auto input_gate_bias = model->addOperand(&type3);
+ auto forget_gate_bias = model->addOperand(&type3);
+ auto cell_gate_bias = model->addOperand(&type3);
+ auto output_gate_bias = model->addOperand(&type3);
+ auto projection_weights = model->addOperand(&type4);
+ auto projection_bias = model->addOperand(&type5);
+ auto output_state_in = model->addOperand(&type6);
+ auto cell_state_in = model->addOperand(&type7);
+ auto activation_param = model->addOperand(&type8);
+ auto cell_clip_param = model->addOperand(&type9);
+ auto proj_clip_param = model->addOperand(&type9);
+ auto scratch_buffer = model->addOperand(&type10);
+ auto output_state_out = model->addOperand(&type6);
+ auto cell_state_out = model->addOperand(&type7);
+ auto output = model->addOperand(&type6);
+ // Phase 2, operations
+ static int32_t activation_param_init[] = {4};
+ model->setOperandValue(activation_param, activation_param_init, sizeof(int32_t) * 1);
+ static float cell_clip_param_init[] = {0.0f};
+ model->setOperandValue(cell_clip_param, cell_clip_param_init, sizeof(float) * 1);
+ static float proj_clip_param_init[] = {0.0f};
+ model->setOperandValue(proj_clip_param, proj_clip_param_init, sizeof(float) * 1);
+ model->addOperation(ANEURALNETWORKS_LSTM, {input, input_to_input_weights, input_to_forget_weights, input_to_cell_weights, input_to_output_weights, recurrent_to_intput_weights, recurrent_to_forget_weights, recurrent_to_cell_weights, recurrent_to_output_weights, cell_to_input_weights, cell_to_forget_weights, cell_to_output_weights, input_gate_bias, forget_gate_bias, cell_gate_bias, output_gate_bias, projection_weights, projection_bias, output_state_in, cell_state_in, activation_param, cell_clip_param, proj_clip_param}, {scratch_buffer, output_state_out, cell_state_out, output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input, input_to_input_weights, input_to_forget_weights, input_to_cell_weights, input_to_output_weights, recurrent_to_intput_weights, recurrent_to_forget_weights, recurrent_to_cell_weights, recurrent_to_output_weights, cell_to_input_weights, cell_to_forget_weights, cell_to_output_weights, input_gate_bias, forget_gate_bias, cell_gate_bias, output_gate_bias, projection_weights, projection_bias, output_state_in, cell_state_in},
+ {scratch_buffer, output_state_out, cell_state_out, output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {1, 2, 0};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/lstm_state.model.cpp b/runtimes/tests/neural_networks_test/generated/models/lstm_state.model.cpp
new file mode 100644
index 000000000..7f67b2399
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/lstm_state.model.cpp
@@ -0,0 +1,59 @@
+// Generated file (from: lstm_state.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type8(Type::FLOAT32, {});
+ OperandType type7(Type::INT32, {});
+ OperandType type5(Type::TENSOR_FLOAT32, {0,0});
+ OperandType type3(Type::TENSOR_FLOAT32, {0});
+ OperandType type9(Type::TENSOR_FLOAT32, {1, 16});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2});
+ OperandType type6(Type::TENSOR_FLOAT32, {1, 4});
+ OperandType type1(Type::TENSOR_FLOAT32, {4, 2});
+ OperandType type2(Type::TENSOR_FLOAT32, {4, 4});
+ OperandType type4(Type::TENSOR_FLOAT32, {4});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto input_to_input_weights = model->addOperand(&type1);
+ auto input_to_forget_weights = model->addOperand(&type1);
+ auto input_to_cell_weights = model->addOperand(&type1);
+ auto input_to_output_weights = model->addOperand(&type1);
+ auto recurrent_to_intput_weights = model->addOperand(&type2);
+ auto recurrent_to_forget_weights = model->addOperand(&type2);
+ auto recurrent_to_cell_weights = model->addOperand(&type2);
+ auto recurrent_to_output_weights = model->addOperand(&type2);
+ auto cell_to_input_weights = model->addOperand(&type3);
+ auto cell_to_forget_weights = model->addOperand(&type3);
+ auto cell_to_output_weights = model->addOperand(&type3);
+ auto input_gate_bias = model->addOperand(&type4);
+ auto forget_gate_bias = model->addOperand(&type4);
+ auto cell_gate_bias = model->addOperand(&type4);
+ auto output_gate_bias = model->addOperand(&type4);
+ auto projection_weights = model->addOperand(&type5);
+ auto projection_bias = model->addOperand(&type3);
+ auto output_state_in = model->addOperand(&type6);
+ auto cell_state_in = model->addOperand(&type6);
+ auto activation_param = model->addOperand(&type7);
+ auto cell_clip_param = model->addOperand(&type8);
+ auto proj_clip_param = model->addOperand(&type8);
+ auto scratch_buffer = model->addOperand(&type9);
+ auto output_state_out = model->addOperand(&type6);
+ auto cell_state_out = model->addOperand(&type6);
+ auto output = model->addOperand(&type6);
+ // Phase 2, operations
+ static int32_t activation_param_init[] = {4};
+ model->setOperandValue(activation_param, activation_param_init, sizeof(int32_t) * 1);
+ static float cell_clip_param_init[] = {0.0f};
+ model->setOperandValue(cell_clip_param, cell_clip_param_init, sizeof(float) * 1);
+ static float proj_clip_param_init[] = {0.0f};
+ model->setOperandValue(proj_clip_param, proj_clip_param_init, sizeof(float) * 1);
+ model->addOperation(ANEURALNETWORKS_LSTM, {input, input_to_input_weights, input_to_forget_weights, input_to_cell_weights, input_to_output_weights, recurrent_to_intput_weights, recurrent_to_forget_weights, recurrent_to_cell_weights, recurrent_to_output_weights, cell_to_input_weights, cell_to_forget_weights, cell_to_output_weights, input_gate_bias, forget_gate_bias, cell_gate_bias, output_gate_bias, projection_weights, projection_bias, output_state_in, cell_state_in, activation_param, cell_clip_param, proj_clip_param}, {scratch_buffer, output_state_out, cell_state_out, output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input, input_to_input_weights, input_to_forget_weights, input_to_cell_weights, input_to_output_weights, recurrent_to_intput_weights, recurrent_to_forget_weights, recurrent_to_cell_weights, recurrent_to_output_weights, cell_to_input_weights, cell_to_forget_weights, cell_to_output_weights, input_gate_bias, forget_gate_bias, cell_gate_bias, output_gate_bias, projection_weights, projection_bias, output_state_in, cell_state_in},
+ {scratch_buffer, output_state_out, cell_state_out, output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {0};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/lstm_state2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/lstm_state2.model.cpp
new file mode 100644
index 000000000..7952e34bd
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/lstm_state2.model.cpp
@@ -0,0 +1,59 @@
+// Generated file (from: lstm_state2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type8(Type::FLOAT32, {});
+ OperandType type7(Type::INT32, {});
+ OperandType type5(Type::TENSOR_FLOAT32, {0,0});
+ OperandType type3(Type::TENSOR_FLOAT32, {0});
+ OperandType type9(Type::TENSOR_FLOAT32, {1, 16});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2});
+ OperandType type6(Type::TENSOR_FLOAT32, {1, 4});
+ OperandType type1(Type::TENSOR_FLOAT32, {4, 2});
+ OperandType type2(Type::TENSOR_FLOAT32, {4, 4});
+ OperandType type4(Type::TENSOR_FLOAT32, {4});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto input_to_input_weights = model->addOperand(&type1);
+ auto input_to_forget_weights = model->addOperand(&type1);
+ auto input_to_cell_weights = model->addOperand(&type1);
+ auto input_to_output_weights = model->addOperand(&type1);
+ auto recurrent_to_intput_weights = model->addOperand(&type2);
+ auto recurrent_to_forget_weights = model->addOperand(&type2);
+ auto recurrent_to_cell_weights = model->addOperand(&type2);
+ auto recurrent_to_output_weights = model->addOperand(&type2);
+ auto cell_to_input_weights = model->addOperand(&type3);
+ auto cell_to_forget_weights = model->addOperand(&type3);
+ auto cell_to_output_weights = model->addOperand(&type3);
+ auto input_gate_bias = model->addOperand(&type4);
+ auto forget_gate_bias = model->addOperand(&type4);
+ auto cell_gate_bias = model->addOperand(&type4);
+ auto output_gate_bias = model->addOperand(&type4);
+ auto projection_weights = model->addOperand(&type5);
+ auto projection_bias = model->addOperand(&type3);
+ auto output_state_in = model->addOperand(&type6);
+ auto cell_state_in = model->addOperand(&type6);
+ auto activation_param = model->addOperand(&type7);
+ auto cell_clip_param = model->addOperand(&type8);
+ auto proj_clip_param = model->addOperand(&type8);
+ auto scratch_buffer = model->addOperand(&type9);
+ auto output_state_out = model->addOperand(&type6);
+ auto cell_state_out = model->addOperand(&type6);
+ auto output = model->addOperand(&type6);
+ // Phase 2, operations
+ static int32_t activation_param_init[] = {4};
+ model->setOperandValue(activation_param, activation_param_init, sizeof(int32_t) * 1);
+ static float cell_clip_param_init[] = {0.0f};
+ model->setOperandValue(cell_clip_param, cell_clip_param_init, sizeof(float) * 1);
+ static float proj_clip_param_init[] = {0.0f};
+ model->setOperandValue(proj_clip_param, proj_clip_param_init, sizeof(float) * 1);
+ model->addOperation(ANEURALNETWORKS_LSTM, {input, input_to_input_weights, input_to_forget_weights, input_to_cell_weights, input_to_output_weights, recurrent_to_intput_weights, recurrent_to_forget_weights, recurrent_to_cell_weights, recurrent_to_output_weights, cell_to_input_weights, cell_to_forget_weights, cell_to_output_weights, input_gate_bias, forget_gate_bias, cell_gate_bias, output_gate_bias, projection_weights, projection_bias, output_state_in, cell_state_in, activation_param, cell_clip_param, proj_clip_param}, {scratch_buffer, output_state_out, cell_state_out, output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input, input_to_input_weights, input_to_forget_weights, input_to_cell_weights, input_to_output_weights, recurrent_to_intput_weights, recurrent_to_forget_weights, recurrent_to_cell_weights, recurrent_to_output_weights, cell_to_input_weights, cell_to_forget_weights, cell_to_output_weights, input_gate_bias, forget_gate_bias, cell_gate_bias, output_gate_bias, projection_weights, projection_bias, output_state_in, cell_state_in},
+ {scratch_buffer, output_state_out, cell_state_out, output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {1, 2, 0};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/max_pool_float_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/max_pool_float_1.model.cpp
new file mode 100644
index 000000000..b37ce65e4
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/max_pool_float_1.model.cpp
@@ -0,0 +1,29 @@
+// Generated file (from: max_pool_float_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto cons1 = model->addOperand(&type1);
+ auto pad0 = model->addOperand(&type1);
+ auto act = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t cons1_init[] = {1};
+ model->setOperandValue(cons1, cons1_init, sizeof(int32_t) * 1);
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MAX_POOL_2D, {op1, pad0, pad0, pad0, pad0, cons1, cons1, cons1, cons1, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/max_pool_float_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/max_pool_float_2.model.cpp
new file mode 100644
index 000000000..a0b89e167
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/max_pool_float_2.model.cpp
@@ -0,0 +1,33 @@
+// Generated file (from: max_pool_float_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {5, 2, 3, 3});
+ OperandType type0(Type::TENSOR_FLOAT32, {5, 50, 70, 3});
+ // Phase 1, operands
+ auto i0 = model->addOperand(&type0);
+ auto stride = model->addOperand(&type1);
+ auto filter = model->addOperand(&type1);
+ auto padding = model->addOperand(&type1);
+ auto activation = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t stride_init[] = {20};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t filter_init[] = {20};
+ model->setOperandValue(filter, filter_init, sizeof(int32_t) * 1);
+ static int32_t padding_init[] = {0};
+ model->setOperandValue(padding, padding_init, sizeof(int32_t) * 1);
+ static int32_t activation_init[] = {0};
+ model->setOperandValue(activation, activation_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MAX_POOL_2D, {i0, padding, padding, padding, padding, stride, stride, filter, filter, activation}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {i0},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/max_pool_float_3.model.cpp b/runtimes/tests/neural_networks_test/generated/models/max_pool_float_3.model.cpp
new file mode 100644
index 000000000..3d7e231a2
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/max_pool_float_3.model.cpp
@@ -0,0 +1,33 @@
+// Generated file (from: max_pool_float_3.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {5, 2, 3, 3});
+ OperandType type0(Type::TENSOR_FLOAT32, {5, 50, 70, 3});
+ // Phase 1, operands
+ auto i0 = model->addOperand(&type0);
+ auto stride = model->addOperand(&type1);
+ auto filter = model->addOperand(&type1);
+ auto padding = model->addOperand(&type1);
+ auto relu6_activation = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t stride_init[] = {20};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t filter_init[] = {20};
+ model->setOperandValue(filter, filter_init, sizeof(int32_t) * 1);
+ static int32_t padding_init[] = {0};
+ model->setOperandValue(padding, padding_init, sizeof(int32_t) * 1);
+ static int32_t relu6_activation_init[] = {3};
+ model->setOperandValue(relu6_activation, relu6_activation_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MAX_POOL_2D, {i0, padding, padding, padding, padding, stride, stride, filter, filter, relu6_activation}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {i0},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/max_pool_float_4.model.cpp b/runtimes/tests/neural_networks_test/generated/models/max_pool_float_4.model.cpp
new file mode 100644
index 000000000..2734236d3
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/max_pool_float_4.model.cpp
@@ -0,0 +1,30 @@
+// Generated file (from: max_pool_float_4.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 2, 1});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 4, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto cons2 = model->addOperand(&type1);
+ auto pad_same = model->addOperand(&type1);
+ auto act_none = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t cons2_init[] = {2};
+ model->setOperandValue(cons2, cons2_init, sizeof(int32_t) * 1);
+ static int32_t pad_same_init[] = {1};
+ model->setOperandValue(pad_same, pad_same_init, sizeof(int32_t) * 1);
+ static int32_t act_none_init[] = {0};
+ model->setOperandValue(act_none, act_none_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MAX_POOL_2D, {op1, pad_same, cons2, cons2, cons2, cons2, act_none}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/max_pool_quant8_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/max_pool_quant8_1.model.cpp
new file mode 100644
index 000000000..978dcbea0
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/max_pool_quant8_1.model.cpp
@@ -0,0 +1,29 @@
+// Generated file (from: max_pool_quant8_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.5f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto cons1 = model->addOperand(&type1);
+ auto pad0 = model->addOperand(&type1);
+ auto act = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t cons1_init[] = {1};
+ model->setOperandValue(cons1, cons1_init, sizeof(int32_t) * 1);
+ static int32_t pad0_init[] = {0};
+ model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MAX_POOL_2D, {op1, pad0, pad0, pad0, pad0, cons1, cons1, cons1, cons1, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/max_pool_quant8_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/max_pool_quant8_2.model.cpp
new file mode 100644
index 000000000..2ce943466
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/max_pool_quant8_2.model.cpp
@@ -0,0 +1,33 @@
+// Generated file (from: max_pool_quant8_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {5, 2, 3, 3}, 0.5f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {5, 50, 70, 3}, 0.5f, 0);
+ // Phase 1, operands
+ auto i0 = model->addOperand(&type0);
+ auto stride = model->addOperand(&type1);
+ auto filter = model->addOperand(&type1);
+ auto padding = model->addOperand(&type1);
+ auto activation = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t stride_init[] = {20};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t filter_init[] = {20};
+ model->setOperandValue(filter, filter_init, sizeof(int32_t) * 1);
+ static int32_t padding_init[] = {0};
+ model->setOperandValue(padding, padding_init, sizeof(int32_t) * 1);
+ static int32_t activation_init[] = {0};
+ model->setOperandValue(activation, activation_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MAX_POOL_2D, {i0, padding, padding, padding, padding, stride, stride, filter, filter, activation}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {i0},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/max_pool_quant8_3.model.cpp b/runtimes/tests/neural_networks_test/generated/models/max_pool_quant8_3.model.cpp
new file mode 100644
index 000000000..f8c39322d
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/max_pool_quant8_3.model.cpp
@@ -0,0 +1,33 @@
+// Generated file (from: max_pool_quant8_3.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {5, 2, 3, 3}, 0.5f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {5, 50, 70, 3}, 0.5f, 0);
+ // Phase 1, operands
+ auto i0 = model->addOperand(&type0);
+ auto stride = model->addOperand(&type1);
+ auto filter = model->addOperand(&type1);
+ auto padding = model->addOperand(&type1);
+ auto relu1_activation = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t stride_init[] = {20};
+ model->setOperandValue(stride, stride_init, sizeof(int32_t) * 1);
+ static int32_t filter_init[] = {20};
+ model->setOperandValue(filter, filter_init, sizeof(int32_t) * 1);
+ static int32_t padding_init[] = {0};
+ model->setOperandValue(padding, padding_init, sizeof(int32_t) * 1);
+ static int32_t relu1_activation_init[] = {2};
+ model->setOperandValue(relu1_activation, relu1_activation_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MAX_POOL_2D, {i0, padding, padding, padding, padding, stride, stride, filter, filter, relu1_activation}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {i0},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/max_pool_quant8_4.model.cpp b/runtimes/tests/neural_networks_test/generated/models/max_pool_quant8_4.model.cpp
new file mode 100644
index 000000000..461297b4c
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/max_pool_quant8_4.model.cpp
@@ -0,0 +1,30 @@
+// Generated file (from: max_pool_quant8_4.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 1}, 0.0625f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2, 4, 1}, 0.0625f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto cons2 = model->addOperand(&type1);
+ auto pad_same = model->addOperand(&type1);
+ auto act_none = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t cons2_init[] = {2};
+ model->setOperandValue(cons2, cons2_init, sizeof(int32_t) * 1);
+ static int32_t pad_same_init[] = {1};
+ model->setOperandValue(pad_same, pad_same_init, sizeof(int32_t) * 1);
+ static int32_t act_none_init[] = {0};
+ model->setOperandValue(act_none, act_none_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MAX_POOL_2D, {op1, pad_same, cons2, cons2, cons2, cons2, act_none}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/mobilenet_224_gender_basic_fixed.model.cpp b/runtimes/tests/neural_networks_test/generated/models/mobilenet_224_gender_basic_fixed.model.cpp
new file mode 100644
index 000000000..9e0fcd5b8
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/mobilenet_224_gender_basic_fixed.model.cpp
@@ -0,0 +1,672 @@
+// Generated file (from: mobilenet_224_gender_basic_fixed.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 11});
+ OperandType type32(Type::TENSOR_FLOAT32, {1, 1, 1, 256});
+ OperandType type3(Type::TENSOR_FLOAT32, {1, 112, 112, 16});
+ OperandType type6(Type::TENSOR_FLOAT32, {1, 14, 14, 128});
+ OperandType type30(Type::TENSOR_FLOAT32, {1, 14, 14, 64});
+ OperandType type1(Type::TENSOR_FLOAT32, {1, 224, 224, 3});
+ OperandType type24(Type::TENSOR_FLOAT32, {1, 28, 28, 32});
+ OperandType type25(Type::TENSOR_FLOAT32, {1, 28, 28, 64});
+ OperandType type8(Type::TENSOR_FLOAT32, {1, 3, 3, 128});
+ OperandType type16(Type::TENSOR_FLOAT32, {1, 3, 3, 16});
+ OperandType type14(Type::TENSOR_FLOAT32, {1, 3, 3, 256});
+ OperandType type22(Type::TENSOR_FLOAT32, {1, 3, 3, 32});
+ OperandType type28(Type::TENSOR_FLOAT32, {1, 3, 3, 64});
+ OperandType type18(Type::TENSOR_FLOAT32, {1, 56, 56, 16});
+ OperandType type19(Type::TENSOR_FLOAT32, {1, 56, 56, 32});
+ OperandType type10(Type::TENSOR_FLOAT32, {1, 7, 7, 128});
+ OperandType type11(Type::TENSOR_FLOAT32, {1, 7, 7, 256});
+ OperandType type34(Type::TENSOR_FLOAT32, {11, 1, 1, 256});
+ OperandType type33(Type::TENSOR_FLOAT32, {11});
+ OperandType type9(Type::TENSOR_FLOAT32, {128, 1, 1, 128});
+ OperandType type31(Type::TENSOR_FLOAT32, {128, 1, 1, 64});
+ OperandType type7(Type::TENSOR_FLOAT32, {128});
+ OperandType type17(Type::TENSOR_FLOAT32, {16, 1, 1, 16});
+ OperandType type5(Type::TENSOR_FLOAT32, {16, 3, 3, 3});
+ OperandType type4(Type::TENSOR_FLOAT32, {16});
+ OperandType type13(Type::TENSOR_FLOAT32, {256, 1, 1, 128});
+ OperandType type15(Type::TENSOR_FLOAT32, {256, 1, 1, 256});
+ OperandType type12(Type::TENSOR_FLOAT32, {256});
+ OperandType type21(Type::TENSOR_FLOAT32, {32, 1, 1, 16});
+ OperandType type23(Type::TENSOR_FLOAT32, {32, 1, 1, 32});
+ OperandType type20(Type::TENSOR_FLOAT32, {32});
+ OperandType type27(Type::TENSOR_FLOAT32, {64, 1, 1, 32});
+ OperandType type29(Type::TENSOR_FLOAT32, {64, 1, 1, 64});
+ OperandType type26(Type::TENSOR_FLOAT32, {64});
+ // Phase 1, operands
+ auto b87 = model->addOperand(&type0);
+ auto b88 = model->addOperand(&type0);
+ auto b89 = model->addOperand(&type0);
+ auto b90 = model->addOperand(&type0);
+ auto b91 = model->addOperand(&type0);
+ auto b92 = model->addOperand(&type0);
+ auto b93 = model->addOperand(&type0);
+ auto b94 = model->addOperand(&type0);
+ auto b95 = model->addOperand(&type0);
+ auto b96 = model->addOperand(&type0);
+ auto b97 = model->addOperand(&type0);
+ auto b98 = model->addOperand(&type0);
+ auto b99 = model->addOperand(&type0);
+ auto b100 = model->addOperand(&type0);
+ auto b101 = model->addOperand(&type0);
+ auto b102 = model->addOperand(&type0);
+ auto b103 = model->addOperand(&type0);
+ auto b104 = model->addOperand(&type0);
+ auto b105 = model->addOperand(&type0);
+ auto b106 = model->addOperand(&type0);
+ auto b107 = model->addOperand(&type0);
+ auto b108 = model->addOperand(&type0);
+ auto b109 = model->addOperand(&type0);
+ auto b110 = model->addOperand(&type0);
+ auto b111 = model->addOperand(&type0);
+ auto b112 = model->addOperand(&type0);
+ auto b113 = model->addOperand(&type0);
+ auto b114 = model->addOperand(&type0);
+ auto b115 = model->addOperand(&type0);
+ auto b116 = model->addOperand(&type0);
+ auto b117 = model->addOperand(&type0);
+ auto b118 = model->addOperand(&type0);
+ auto b119 = model->addOperand(&type0);
+ auto b120 = model->addOperand(&type0);
+ auto b121 = model->addOperand(&type0);
+ auto b122 = model->addOperand(&type0);
+ auto b123 = model->addOperand(&type0);
+ auto b124 = model->addOperand(&type0);
+ auto b125 = model->addOperand(&type0);
+ auto b126 = model->addOperand(&type0);
+ auto b127 = model->addOperand(&type0);
+ auto b128 = model->addOperand(&type0);
+ auto b129 = model->addOperand(&type0);
+ auto b130 = model->addOperand(&type0);
+ auto b131 = model->addOperand(&type0);
+ auto b132 = model->addOperand(&type0);
+ auto b133 = model->addOperand(&type0);
+ auto b134 = model->addOperand(&type0);
+ auto b135 = model->addOperand(&type0);
+ auto b136 = model->addOperand(&type0);
+ auto b137 = model->addOperand(&type0);
+ auto b138 = model->addOperand(&type0);
+ auto b139 = model->addOperand(&type0);
+ auto b140 = model->addOperand(&type0);
+ auto b141 = model->addOperand(&type0);
+ auto b142 = model->addOperand(&type0);
+ auto b143 = model->addOperand(&type0);
+ auto b144 = model->addOperand(&type0);
+ auto b145 = model->addOperand(&type0);
+ auto b146 = model->addOperand(&type0);
+ auto b147 = model->addOperand(&type0);
+ auto b148 = model->addOperand(&type0);
+ auto b149 = model->addOperand(&type0);
+ auto b150 = model->addOperand(&type0);
+ auto b151 = model->addOperand(&type0);
+ auto b152 = model->addOperand(&type0);
+ auto b153 = model->addOperand(&type0);
+ auto b154 = model->addOperand(&type0);
+ auto b155 = model->addOperand(&type0);
+ auto b156 = model->addOperand(&type0);
+ auto b157 = model->addOperand(&type0);
+ auto b158 = model->addOperand(&type0);
+ auto b159 = model->addOperand(&type0);
+ auto b160 = model->addOperand(&type0);
+ auto b161 = model->addOperand(&type0);
+ auto b162 = model->addOperand(&type0);
+ auto b163 = model->addOperand(&type0);
+ auto b164 = model->addOperand(&type0);
+ auto b165 = model->addOperand(&type0);
+ auto b166 = model->addOperand(&type0);
+ auto b167 = model->addOperand(&type0);
+ auto b168 = model->addOperand(&type0);
+ auto b169 = model->addOperand(&type0);
+ auto b170 = model->addOperand(&type0);
+ auto b171 = model->addOperand(&type0);
+ auto b172 = model->addOperand(&type0);
+ auto b173 = model->addOperand(&type0);
+ auto b174 = model->addOperand(&type0);
+ auto b175 = model->addOperand(&type0);
+ auto b176 = model->addOperand(&type0);
+ auto b177 = model->addOperand(&type0);
+ auto b178 = model->addOperand(&type0);
+ auto b179 = model->addOperand(&type0);
+ auto b180 = model->addOperand(&type0);
+ auto b181 = model->addOperand(&type0);
+ auto b182 = model->addOperand(&type0);
+ auto b183 = model->addOperand(&type0);
+ auto b184 = model->addOperand(&type0);
+ auto b185 = model->addOperand(&type0);
+ auto b186 = model->addOperand(&type0);
+ auto b187 = model->addOperand(&type0);
+ auto b188 = model->addOperand(&type0);
+ auto b189 = model->addOperand(&type0);
+ auto b190 = model->addOperand(&type0);
+ auto b191 = model->addOperand(&type0);
+ auto b192 = model->addOperand(&type0);
+ auto b193 = model->addOperand(&type0);
+ auto b194 = model->addOperand(&type0);
+ auto b195 = model->addOperand(&type0);
+ auto b196 = model->addOperand(&type0);
+ auto b197 = model->addOperand(&type0);
+ auto b198 = model->addOperand(&type0);
+ auto b199 = model->addOperand(&type0);
+ auto b200 = model->addOperand(&type0);
+ auto b201 = model->addOperand(&type0);
+ auto b202 = model->addOperand(&type0);
+ auto b203 = model->addOperand(&type0);
+ auto b204 = model->addOperand(&type0);
+ auto b205 = model->addOperand(&type0);
+ auto b206 = model->addOperand(&type0);
+ auto b207 = model->addOperand(&type0);
+ auto b208 = model->addOperand(&type0);
+ auto b209 = model->addOperand(&type0);
+ auto b210 = model->addOperand(&type0);
+ auto b211 = model->addOperand(&type0);
+ auto b212 = model->addOperand(&type0);
+ auto b213 = model->addOperand(&type0);
+ auto b214 = model->addOperand(&type0);
+ auto b215 = model->addOperand(&type0);
+ auto b216 = model->addOperand(&type0);
+ auto b217 = model->addOperand(&type0);
+ auto op86 = model->addOperand(&type1);
+ auto op85 = model->addOperand(&type2);
+ auto op0 = model->addOperand(&type3);
+ auto op1 = model->addOperand(&type4);
+ auto op2 = model->addOperand(&type5);
+ auto op3 = model->addOperand(&type6);
+ auto op4 = model->addOperand(&type7);
+ auto op5 = model->addOperand(&type8);
+ auto op6 = model->addOperand(&type6);
+ auto op7 = model->addOperand(&type7);
+ auto op8 = model->addOperand(&type9);
+ auto op9 = model->addOperand(&type6);
+ auto op10 = model->addOperand(&type7);
+ auto op11 = model->addOperand(&type8);
+ auto op12 = model->addOperand(&type6);
+ auto op13 = model->addOperand(&type7);
+ auto op14 = model->addOperand(&type9);
+ auto op15 = model->addOperand(&type10);
+ auto op16 = model->addOperand(&type7);
+ auto op17 = model->addOperand(&type8);
+ auto op18 = model->addOperand(&type11);
+ auto op19 = model->addOperand(&type12);
+ auto op20 = model->addOperand(&type13);
+ auto op21 = model->addOperand(&type11);
+ auto op22 = model->addOperand(&type12);
+ auto op23 = model->addOperand(&type14);
+ auto op24 = model->addOperand(&type11);
+ auto op25 = model->addOperand(&type12);
+ auto op26 = model->addOperand(&type15);
+ auto op27 = model->addOperand(&type3);
+ auto op28 = model->addOperand(&type4);
+ auto op29 = model->addOperand(&type16);
+ auto op30 = model->addOperand(&type3);
+ auto op31 = model->addOperand(&type4);
+ auto op32 = model->addOperand(&type17);
+ auto op33 = model->addOperand(&type18);
+ auto op34 = model->addOperand(&type4);
+ auto op35 = model->addOperand(&type16);
+ auto op36 = model->addOperand(&type19);
+ auto op37 = model->addOperand(&type20);
+ auto op38 = model->addOperand(&type21);
+ auto op39 = model->addOperand(&type19);
+ auto op40 = model->addOperand(&type20);
+ auto op41 = model->addOperand(&type22);
+ auto op42 = model->addOperand(&type19);
+ auto op43 = model->addOperand(&type20);
+ auto op44 = model->addOperand(&type23);
+ auto op45 = model->addOperand(&type24);
+ auto op46 = model->addOperand(&type20);
+ auto op47 = model->addOperand(&type22);
+ auto op48 = model->addOperand(&type25);
+ auto op49 = model->addOperand(&type26);
+ auto op50 = model->addOperand(&type27);
+ auto op51 = model->addOperand(&type25);
+ auto op52 = model->addOperand(&type26);
+ auto op53 = model->addOperand(&type28);
+ auto op54 = model->addOperand(&type25);
+ auto op55 = model->addOperand(&type26);
+ auto op56 = model->addOperand(&type29);
+ auto op57 = model->addOperand(&type30);
+ auto op58 = model->addOperand(&type26);
+ auto op59 = model->addOperand(&type28);
+ auto op60 = model->addOperand(&type6);
+ auto op61 = model->addOperand(&type7);
+ auto op62 = model->addOperand(&type31);
+ auto op63 = model->addOperand(&type6);
+ auto op64 = model->addOperand(&type7);
+ auto op65 = model->addOperand(&type8);
+ auto op66 = model->addOperand(&type6);
+ auto op67 = model->addOperand(&type7);
+ auto op68 = model->addOperand(&type9);
+ auto op69 = model->addOperand(&type6);
+ auto op70 = model->addOperand(&type7);
+ auto op71 = model->addOperand(&type8);
+ auto op72 = model->addOperand(&type6);
+ auto op73 = model->addOperand(&type7);
+ auto op74 = model->addOperand(&type9);
+ auto op75 = model->addOperand(&type6);
+ auto op76 = model->addOperand(&type7);
+ auto op77 = model->addOperand(&type8);
+ auto op78 = model->addOperand(&type6);
+ auto op79 = model->addOperand(&type7);
+ auto op80 = model->addOperand(&type9);
+ auto op81 = model->addOperand(&type32);
+ auto op82 = model->addOperand(&type2);
+ auto op83 = model->addOperand(&type33);
+ auto op84 = model->addOperand(&type34);
+ // Phase 2, operations
+ static int32_t b87_init[] = {1};
+ model->setOperandValue(b87, b87_init, sizeof(int32_t) * 1);
+ static int32_t b88_init[] = {2};
+ model->setOperandValue(b88, b88_init, sizeof(int32_t) * 1);
+ static int32_t b89_init[] = {2};
+ model->setOperandValue(b89, b89_init, sizeof(int32_t) * 1);
+ static int32_t b90_init[] = {3};
+ model->setOperandValue(b90, b90_init, sizeof(int32_t) * 1);
+ static int32_t b91_init[] = {1};
+ model->setOperandValue(b91, b91_init, sizeof(int32_t) * 1);
+ static int32_t b92_init[] = {1};
+ model->setOperandValue(b92, b92_init, sizeof(int32_t) * 1);
+ static int32_t b93_init[] = {1};
+ model->setOperandValue(b93, b93_init, sizeof(int32_t) * 1);
+ static int32_t b94_init[] = {1};
+ model->setOperandValue(b94, b94_init, sizeof(int32_t) * 1);
+ static int32_t b95_init[] = {3};
+ model->setOperandValue(b95, b95_init, sizeof(int32_t) * 1);
+ static int32_t b96_init[] = {1};
+ model->setOperandValue(b96, b96_init, sizeof(int32_t) * 1);
+ static int32_t b97_init[] = {1};
+ model->setOperandValue(b97, b97_init, sizeof(int32_t) * 1);
+ static int32_t b98_init[] = {1};
+ model->setOperandValue(b98, b98_init, sizeof(int32_t) * 1);
+ static int32_t b99_init[] = {3};
+ model->setOperandValue(b99, b99_init, sizeof(int32_t) * 1);
+ static int32_t b100_init[] = {1};
+ model->setOperandValue(b100, b100_init, sizeof(int32_t) * 1);
+ static int32_t b101_init[] = {2};
+ model->setOperandValue(b101, b101_init, sizeof(int32_t) * 1);
+ static int32_t b102_init[] = {2};
+ model->setOperandValue(b102, b102_init, sizeof(int32_t) * 1);
+ static int32_t b103_init[] = {1};
+ model->setOperandValue(b103, b103_init, sizeof(int32_t) * 1);
+ static int32_t b104_init[] = {3};
+ model->setOperandValue(b104, b104_init, sizeof(int32_t) * 1);
+ static int32_t b105_init[] = {1};
+ model->setOperandValue(b105, b105_init, sizeof(int32_t) * 1);
+ static int32_t b106_init[] = {1};
+ model->setOperandValue(b106, b106_init, sizeof(int32_t) * 1);
+ static int32_t b107_init[] = {1};
+ model->setOperandValue(b107, b107_init, sizeof(int32_t) * 1);
+ static int32_t b108_init[] = {3};
+ model->setOperandValue(b108, b108_init, sizeof(int32_t) * 1);
+ static int32_t b109_init[] = {1};
+ model->setOperandValue(b109, b109_init, sizeof(int32_t) * 1);
+ static int32_t b110_init[] = {1};
+ model->setOperandValue(b110, b110_init, sizeof(int32_t) * 1);
+ static int32_t b111_init[] = {1};
+ model->setOperandValue(b111, b111_init, sizeof(int32_t) * 1);
+ static int32_t b112_init[] = {1};
+ model->setOperandValue(b112, b112_init, sizeof(int32_t) * 1);
+ static int32_t b113_init[] = {3};
+ model->setOperandValue(b113, b113_init, sizeof(int32_t) * 1);
+ static int32_t b114_init[] = {1};
+ model->setOperandValue(b114, b114_init, sizeof(int32_t) * 1);
+ static int32_t b115_init[] = {1};
+ model->setOperandValue(b115, b115_init, sizeof(int32_t) * 1);
+ static int32_t b116_init[] = {1};
+ model->setOperandValue(b116, b116_init, sizeof(int32_t) * 1);
+ static int32_t b117_init[] = {3};
+ model->setOperandValue(b117, b117_init, sizeof(int32_t) * 1);
+ static int32_t b118_init[] = {1};
+ model->setOperandValue(b118, b118_init, sizeof(int32_t) * 1);
+ static int32_t b119_init[] = {2};
+ model->setOperandValue(b119, b119_init, sizeof(int32_t) * 1);
+ static int32_t b120_init[] = {2};
+ model->setOperandValue(b120, b120_init, sizeof(int32_t) * 1);
+ static int32_t b121_init[] = {1};
+ model->setOperandValue(b121, b121_init, sizeof(int32_t) * 1);
+ static int32_t b122_init[] = {3};
+ model->setOperandValue(b122, b122_init, sizeof(int32_t) * 1);
+ static int32_t b123_init[] = {1};
+ model->setOperandValue(b123, b123_init, sizeof(int32_t) * 1);
+ static int32_t b124_init[] = {1};
+ model->setOperandValue(b124, b124_init, sizeof(int32_t) * 1);
+ static int32_t b125_init[] = {1};
+ model->setOperandValue(b125, b125_init, sizeof(int32_t) * 1);
+ static int32_t b126_init[] = {3};
+ model->setOperandValue(b126, b126_init, sizeof(int32_t) * 1);
+ static int32_t b127_init[] = {1};
+ model->setOperandValue(b127, b127_init, sizeof(int32_t) * 1);
+ static int32_t b128_init[] = {1};
+ model->setOperandValue(b128, b128_init, sizeof(int32_t) * 1);
+ static int32_t b129_init[] = {1};
+ model->setOperandValue(b129, b129_init, sizeof(int32_t) * 1);
+ static int32_t b130_init[] = {1};
+ model->setOperandValue(b130, b130_init, sizeof(int32_t) * 1);
+ static int32_t b131_init[] = {3};
+ model->setOperandValue(b131, b131_init, sizeof(int32_t) * 1);
+ static int32_t b132_init[] = {1};
+ model->setOperandValue(b132, b132_init, sizeof(int32_t) * 1);
+ static int32_t b133_init[] = {1};
+ model->setOperandValue(b133, b133_init, sizeof(int32_t) * 1);
+ static int32_t b134_init[] = {1};
+ model->setOperandValue(b134, b134_init, sizeof(int32_t) * 1);
+ static int32_t b135_init[] = {3};
+ model->setOperandValue(b135, b135_init, sizeof(int32_t) * 1);
+ static int32_t b136_init[] = {1};
+ model->setOperandValue(b136, b136_init, sizeof(int32_t) * 1);
+ static int32_t b137_init[] = {2};
+ model->setOperandValue(b137, b137_init, sizeof(int32_t) * 1);
+ static int32_t b138_init[] = {2};
+ model->setOperandValue(b138, b138_init, sizeof(int32_t) * 1);
+ static int32_t b139_init[] = {1};
+ model->setOperandValue(b139, b139_init, sizeof(int32_t) * 1);
+ static int32_t b140_init[] = {3};
+ model->setOperandValue(b140, b140_init, sizeof(int32_t) * 1);
+ static int32_t b141_init[] = {1};
+ model->setOperandValue(b141, b141_init, sizeof(int32_t) * 1);
+ static int32_t b142_init[] = {1};
+ model->setOperandValue(b142, b142_init, sizeof(int32_t) * 1);
+ static int32_t b143_init[] = {1};
+ model->setOperandValue(b143, b143_init, sizeof(int32_t) * 1);
+ static int32_t b144_init[] = {3};
+ model->setOperandValue(b144, b144_init, sizeof(int32_t) * 1);
+ static int32_t b145_init[] = {1};
+ model->setOperandValue(b145, b145_init, sizeof(int32_t) * 1);
+ static int32_t b146_init[] = {1};
+ model->setOperandValue(b146, b146_init, sizeof(int32_t) * 1);
+ static int32_t b147_init[] = {1};
+ model->setOperandValue(b147, b147_init, sizeof(int32_t) * 1);
+ static int32_t b148_init[] = {1};
+ model->setOperandValue(b148, b148_init, sizeof(int32_t) * 1);
+ static int32_t b149_init[] = {3};
+ model->setOperandValue(b149, b149_init, sizeof(int32_t) * 1);
+ static int32_t b150_init[] = {1};
+ model->setOperandValue(b150, b150_init, sizeof(int32_t) * 1);
+ static int32_t b151_init[] = {1};
+ model->setOperandValue(b151, b151_init, sizeof(int32_t) * 1);
+ static int32_t b152_init[] = {1};
+ model->setOperandValue(b152, b152_init, sizeof(int32_t) * 1);
+ static int32_t b153_init[] = {3};
+ model->setOperandValue(b153, b153_init, sizeof(int32_t) * 1);
+ static int32_t b154_init[] = {1};
+ model->setOperandValue(b154, b154_init, sizeof(int32_t) * 1);
+ static int32_t b155_init[] = {1};
+ model->setOperandValue(b155, b155_init, sizeof(int32_t) * 1);
+ static int32_t b156_init[] = {1};
+ model->setOperandValue(b156, b156_init, sizeof(int32_t) * 1);
+ static int32_t b157_init[] = {1};
+ model->setOperandValue(b157, b157_init, sizeof(int32_t) * 1);
+ static int32_t b158_init[] = {3};
+ model->setOperandValue(b158, b158_init, sizeof(int32_t) * 1);
+ static int32_t b159_init[] = {1};
+ model->setOperandValue(b159, b159_init, sizeof(int32_t) * 1);
+ static int32_t b160_init[] = {1};
+ model->setOperandValue(b160, b160_init, sizeof(int32_t) * 1);
+ static int32_t b161_init[] = {1};
+ model->setOperandValue(b161, b161_init, sizeof(int32_t) * 1);
+ static int32_t b162_init[] = {3};
+ model->setOperandValue(b162, b162_init, sizeof(int32_t) * 1);
+ static int32_t b163_init[] = {1};
+ model->setOperandValue(b163, b163_init, sizeof(int32_t) * 1);
+ static int32_t b164_init[] = {1};
+ model->setOperandValue(b164, b164_init, sizeof(int32_t) * 1);
+ static int32_t b165_init[] = {1};
+ model->setOperandValue(b165, b165_init, sizeof(int32_t) * 1);
+ static int32_t b166_init[] = {1};
+ model->setOperandValue(b166, b166_init, sizeof(int32_t) * 1);
+ static int32_t b167_init[] = {3};
+ model->setOperandValue(b167, b167_init, sizeof(int32_t) * 1);
+ static int32_t b168_init[] = {1};
+ model->setOperandValue(b168, b168_init, sizeof(int32_t) * 1);
+ static int32_t b169_init[] = {1};
+ model->setOperandValue(b169, b169_init, sizeof(int32_t) * 1);
+ static int32_t b170_init[] = {1};
+ model->setOperandValue(b170, b170_init, sizeof(int32_t) * 1);
+ static int32_t b171_init[] = {3};
+ model->setOperandValue(b171, b171_init, sizeof(int32_t) * 1);
+ static int32_t b172_init[] = {1};
+ model->setOperandValue(b172, b172_init, sizeof(int32_t) * 1);
+ static int32_t b173_init[] = {1};
+ model->setOperandValue(b173, b173_init, sizeof(int32_t) * 1);
+ static int32_t b174_init[] = {1};
+ model->setOperandValue(b174, b174_init, sizeof(int32_t) * 1);
+ static int32_t b175_init[] = {1};
+ model->setOperandValue(b175, b175_init, sizeof(int32_t) * 1);
+ static int32_t b176_init[] = {3};
+ model->setOperandValue(b176, b176_init, sizeof(int32_t) * 1);
+ static int32_t b177_init[] = {1};
+ model->setOperandValue(b177, b177_init, sizeof(int32_t) * 1);
+ static int32_t b178_init[] = {1};
+ model->setOperandValue(b178, b178_init, sizeof(int32_t) * 1);
+ static int32_t b179_init[] = {1};
+ model->setOperandValue(b179, b179_init, sizeof(int32_t) * 1);
+ static int32_t b180_init[] = {3};
+ model->setOperandValue(b180, b180_init, sizeof(int32_t) * 1);
+ static int32_t b181_init[] = {1};
+ model->setOperandValue(b181, b181_init, sizeof(int32_t) * 1);
+ static int32_t b182_init[] = {1};
+ model->setOperandValue(b182, b182_init, sizeof(int32_t) * 1);
+ static int32_t b183_init[] = {1};
+ model->setOperandValue(b183, b183_init, sizeof(int32_t) * 1);
+ static int32_t b184_init[] = {1};
+ model->setOperandValue(b184, b184_init, sizeof(int32_t) * 1);
+ static int32_t b185_init[] = {3};
+ model->setOperandValue(b185, b185_init, sizeof(int32_t) * 1);
+ static int32_t b186_init[] = {1};
+ model->setOperandValue(b186, b186_init, sizeof(int32_t) * 1);
+ static int32_t b187_init[] = {1};
+ model->setOperandValue(b187, b187_init, sizeof(int32_t) * 1);
+ static int32_t b188_init[] = {1};
+ model->setOperandValue(b188, b188_init, sizeof(int32_t) * 1);
+ static int32_t b189_init[] = {3};
+ model->setOperandValue(b189, b189_init, sizeof(int32_t) * 1);
+ static int32_t b190_init[] = {1};
+ model->setOperandValue(b190, b190_init, sizeof(int32_t) * 1);
+ static int32_t b191_init[] = {2};
+ model->setOperandValue(b191, b191_init, sizeof(int32_t) * 1);
+ static int32_t b192_init[] = {2};
+ model->setOperandValue(b192, b192_init, sizeof(int32_t) * 1);
+ static int32_t b193_init[] = {1};
+ model->setOperandValue(b193, b193_init, sizeof(int32_t) * 1);
+ static int32_t b194_init[] = {3};
+ model->setOperandValue(b194, b194_init, sizeof(int32_t) * 1);
+ static int32_t b195_init[] = {1};
+ model->setOperandValue(b195, b195_init, sizeof(int32_t) * 1);
+ static int32_t b196_init[] = {1};
+ model->setOperandValue(b196, b196_init, sizeof(int32_t) * 1);
+ static int32_t b197_init[] = {1};
+ model->setOperandValue(b197, b197_init, sizeof(int32_t) * 1);
+ static int32_t b198_init[] = {3};
+ model->setOperandValue(b198, b198_init, sizeof(int32_t) * 1);
+ static int32_t b199_init[] = {1};
+ model->setOperandValue(b199, b199_init, sizeof(int32_t) * 1);
+ static int32_t b200_init[] = {1};
+ model->setOperandValue(b200, b200_init, sizeof(int32_t) * 1);
+ static int32_t b201_init[] = {1};
+ model->setOperandValue(b201, b201_init, sizeof(int32_t) * 1);
+ static int32_t b202_init[] = {1};
+ model->setOperandValue(b202, b202_init, sizeof(int32_t) * 1);
+ static int32_t b203_init[] = {3};
+ model->setOperandValue(b203, b203_init, sizeof(int32_t) * 1);
+ static int32_t b204_init[] = {1};
+ model->setOperandValue(b204, b204_init, sizeof(int32_t) * 1);
+ static int32_t b205_init[] = {1};
+ model->setOperandValue(b205, b205_init, sizeof(int32_t) * 1);
+ static int32_t b206_init[] = {1};
+ model->setOperandValue(b206, b206_init, sizeof(int32_t) * 1);
+ static int32_t b207_init[] = {3};
+ model->setOperandValue(b207, b207_init, sizeof(int32_t) * 1);
+ static int32_t b208_init[] = {2};
+ model->setOperandValue(b208, b208_init, sizeof(int32_t) * 1);
+ static int32_t b209_init[] = {2};
+ model->setOperandValue(b209, b209_init, sizeof(int32_t) * 1);
+ static int32_t b210_init[] = {2};
+ model->setOperandValue(b210, b210_init, sizeof(int32_t) * 1);
+ static int32_t b211_init[] = {7};
+ model->setOperandValue(b211, b211_init, sizeof(int32_t) * 1);
+ static int32_t b212_init[] = {7};
+ model->setOperandValue(b212, b212_init, sizeof(int32_t) * 1);
+ static int32_t b213_init[] = {0};
+ model->setOperandValue(b213, b213_init, sizeof(int32_t) * 1);
+ static int32_t b214_init[] = {1};
+ model->setOperandValue(b214, b214_init, sizeof(int32_t) * 1);
+ static int32_t b215_init[] = {1};
+ model->setOperandValue(b215, b215_init, sizeof(int32_t) * 1);
+ static int32_t b216_init[] = {1};
+ model->setOperandValue(b216, b216_init, sizeof(int32_t) * 1);
+ static int32_t b217_init[] = {0};
+ model->setOperandValue(b217, b217_init, sizeof(int32_t) * 1);
+ static float op1_init[] = {0.247857f, 0.75021f, 0.741359f, 1.36951f, -0.799518f, 0.835508f, 1.00795f, 0.758906f, 0.872059f, -0.442585f, -0.724606f, 0.347115f, 0.0888976f, 0.718811f, 1.06249f, -0.285038f};
+ model->setOperandValue(op1, op1_init, sizeof(float) * 16);
+ static float op2_init[] = {0.652068f, -0.440708f, -0.370313f, 0.0371835f, -0.200534f, 0.187246f, 0.608945f, 0.0446021f, -0.328933f, 0.608707f, -0.458118f, -0.338548f, 0.544501f, -0.100406f, -0.552947f, 0.264365f, 0.00542196f, -0.236679f, 0.00718806f, -0.39411f, 0.566754f, -0.0512145f, -0.355038f, 0.474691f, -0.0822169f, -0.646847f, 0.576151f, -0.0225515f, -0.311586f, 0.520931f, 0.0131213f, -0.0204246f, 0.122719f, 0.0407416f, -0.00254109f, -0.169118f, -0.733753f, 0.488922f, 0.210584f, 0.529329f, 0.35191f, -0.070027f, 0.939339f, 0.246604f, 0.309091f, -0.772781f, -0.0317189f, 0.184809f, 0.217716f, 0.123726f, -0.581245f, 0.753962f, -0.237803f, -0.534238f, 0.066889f, 0.205891f, 0.0796765f, -0.0730868f, 0.247787f, -0.0795177f, -0.153247f, -0.141179f, -0.107013f, 0.347468f, 0.159756f, 0.202276f, 0.333447f, 0.282742f, 0.174085f, 0.0931139f, -0.0784908f, 0.124231f, -0.0355699f, -0.0750061f, -0.0602844f, 0.153779f, 0.190586f, -0.0436086f, 0.127754f, -0.0132479f, -0.0590352f, -0.236779f, 0.100819f, 0.0578522f, -0.110667f, 0.0517516f, 0.28305f, -0.36037f, -0.0109951f, 0.258977f, -0.171027f, 0.182065f, 0.342808f, -0.0865413f, -0.120913f, 0.0876433f, -0.321358f, 0.182235f, 0.182115f, -0.102917f, 0.124579f, 0.266657f, -0.107564f, -0.0623865f, 0.107621f, -0.404334f, 0.0282603f, 0.331853f, -0.0646019f, -0.0455715f, -0.217516f, -0.0037875f, -0.235336f, -0.0671481f, 0.0357478f, -0.0844078f, 0.0935384f, -0.0619307f, -0.0631019f, 0.0568289f, -0.165787f, -0.147547f, -0.12507f, -0.16594f, -0.131169f, -0.0705661f, -0.0969777f, 0.0446729f, 0.245831f, 0.016168f, -0.0636066f, 0.00757261f, -0.241471f, -0.201184f, 0.0612182f, -0.235653f, -0.0647185f, -0.266401f, 0.140807f, 0.253679f, 0.201186f, 0.376029f, 0.55602f, 0.0176408f, -0.34448f, -0.105594f, -0.0830195f, -0.073044f, 0.332442f, 0.189069f, 0.579356f, 0.500409f, 0.081007f, 0.0224194f, -0.418452f, 0.117647f, 0.102363f, -0.308967f, -0.130247f, 0.0744453f, 0.0937165f, 0.129678f, -0.206706f, 0.355731f, -0.183979f, 0.0930233f, 0.376961f, -0.496447f, 0.0753673f, 0.550546f, -0.530313f, -0.119834f, 0.633561f, -0.350414f, 0.17257f, 0.363476f, -0.326057f, -0.117922f, 0.439519f, -0.361867f, -0.587992f, 0.540487f, -0.0493363f, -0.423359f, 0.39267f, -0.0985205f, -0.361801f, 0.406216f, 0.312372f, 0.19384f, 0.38476f, 0.0793438f, -0.0243019f, 0.0973445f, 0.34309f, -0.336955f, 0.047901f, -0.142791f, 0.111938f, -0.0117197f, -0.140463f, 0.134465f, 0.238205f, 0.133603f, 0.28098f, -0.0365245f, 0.0201062f, 0.0713887f, -0.201147f, -0.352104f, 0.122226f, -0.092246f, 0.159098f, 0.282097f, 0.418289f, -0.108599f, -0.294907f, -0.46983f, -0.238307f, -0.442626f, -0.572947f, -0.247161f, 0.0933571f, -0.387562f, -0.0395712f, -0.0761291f, -0.0795069f, 0.228746f, -0.110803f, 0.041032f, -0.00155868f, -0.0828624f, -0.224932f, 0.0649534f, 0.307345f, 0.528949f, -0.0949103f, 0.390639f, 0.54659f, 0.404815f, 0.342257f, 0.489076f, -0.121948f, 0.530045f, -0.476237f, -0.529727f, 0.262048f, -0.0304337f, -0.117802f, -0.0623434f, -0.00425207f, -0.238349f, -0.113178f, -0.259427f, -0.202885f, -0.600946f, -0.225316f, -0.0887756f, -0.29406f, -0.0257875f, 0.129552f, 0.600505f, 0.195343f, 0.693125f, -0.417967f, -0.359057f, 0.428299f, -0.633522f, -0.0536405f, -0.0580457f, -0.237309f, -0.267921f, -0.0486694f, -0.192913f, -0.344927f, -0.085713f, 0.0203166f, 0.0355307f, 0.270309f, 0.0918823f, -0.010063f, -0.135408f, -0.141108f, -0.496817f, -0.290794f, 0.224278f, -0.249464f, -0.0518539f, 0.0756295f, 0.171187f, 0.182209f, -0.195592f, 0.0958233f, -0.0921988f, -0.367889f, 0.134003f, 0.0687944f, 0.308343f, -0.0118914f, 0.331651f, -0.430663f, 0.706435f, 0.141785f, -0.554641f, 0.588355f, -0.750443f, -0.669483f, -0.996132f, -0.457539f, 0.493816f, -0.817835f, 0.120477f, 0.303217f, 0.46568f, 0.630415f, -0.92812f, -0.261296f, -0.702809f, -0.383505f, -0.48721f, 0.299454f, 1.24191f, 0.41616f, 0.162217f, 0.296053f, 0.251336f, 0.0753915f, 0.0408618f, -0.108743f, -0.0320105f, -0.296446f, -0.22903f, 0.277229f, -0.0633153f, 0.121183f, -0.0197022f, -0.284926f, -0.35553f, -0.0807346f, -0.334026f, -0.584447f, -0.200952f, 0.274273f, 0.255205f, 0.298184f, 0.135537f, 0.128646f, -0.0911873f, -0.345975f, -0.51712f, -0.331822f, 0.541729f, 0.790656f, -0.363103f, 0.9478f, 1.07197f, 0.00359358f, -0.397684f, -0.204973f, -0.592952f, 1.0766f, 0.92906f, 0.670814f, -0.0147435f, 0.112532f, 0.0736042f, -1.07179f, -1.08754f, -0.629355f, 0.68915f, 0.12786f, 0.522442f, -0.973202f, -0.867001f, 0.019969f, -0.654796f, -0.849004f, 0.197318f, -0.0344764f, 0.0267163f, -0.0116256f, 0.00203475f, 0.0356207f, 0.000402505f, -0.0853754f, 0.100378f, 0.0482042f, -0.0503914f, 0.0231722f, -0.00244786f, -0.033307f, 0.0556787f, -0.0229831f, -0.0586009f, 0.0728227f, 0.0432203f, 0.0261995f, 0.0298879f, -0.0300803f, -0.0232209f, 0.0302866f, -0.0522305f, -0.0859193f, 0.0553994f, -0.0223054f, 0.0875387f, -0.0641483f, -0.0985766f, -0.300987f, -0.185793f, 0.0301473f, -0.171482f, -0.0271402f, 0.0324297f, -0.104419f, -0.0167332f, -0.201047f, -0.012749f, -0.414162f, 0.0129281f, -0.126695f, -0.177922f, -0.158758f, 0.109131f, 0.15325f, 0.279018f, -0.144136f, -0.247177f, 0.166079f, -0.247908f, -0.251021f, 0.136724f};
+ model->setOperandValue(op2, op2_init, sizeof(float) * 432);
+ static float op4_init[] = {-0.604559f, 0.937928f, -0.974893f, -0.53343f, 1.28805f, 1.10148f, -0.0531712f, 0.645655f, -0.739696f, 0.761929f, -0.768367f, 0.947203f, -0.0259644f, -0.0806925f, 0.826225f, 0.0647016f, 1.1949f, -0.590577f, -0.48047f, 1.0571f, -0.531508f, -0.145154f, -0.85109f, -0.428907f, -0.990977f, -0.21766f, -0.831976f, 0.807643f, -0.883484f, -0.101848f, -0.633951f, -0.934549f, -0.637571f, 0.917919f, -0.616174f, 0.638678f, -0.522414f, 0.164932f, 0.735401f, 0.388233f, -0.54634f, 0.663964f, -0.714432f, -0.770424f, -0.506502f, -0.00663996f, 1.20178f, -0.658902f, 0.202565f, -0.772786f, -0.908852f, -0.753642f, 0.299485f, -0.64437f, -0.258062f, -0.647217f, 1.16684f, -0.601416f, -0.581131f, -0.604002f, 0.303339f, 0.99038f, -0.252728f, 0.835258f, -0.479581f, 1.05239f, 0.0875528f, 0.436033f, 1.14433f, -0.755638f, 1.2817f, -0.110367f, -0.055392f, -0.327483f, 0.960676f, -0.268293f, 0.632768f, -0.77256f, -0.821636f, 0.0321576f, 0.777652f, -0.50267f, 0.998972f, 0.684318f, -0.592786f, -0.105259f, -0.183601f, -0.83277f, -0.584282f, -0.548963f, -0.186272f, -0.573955f, 0.637204f, -0.455254f, -0.0298786f, 0.0313744f, -0.835853f, 1.1131f, 1.13073f, -0.527641f, 0.6035f, 1.09069f, -0.727978f, -0.957797f, 0.795879f, 0.0702782f, 0.992534f, 0.447629f, 1.15544f, 1.02855f, -0.760967f, -0.552526f, 1.16415f, -0.720886f, -0.704716f, -0.918078f, -0.495209f, 0.79913f, -0.579286f, 1.12242f, 1.24057f, 0.868452f, 0.422623f, 1.26555f, -0.85856f, 0.536015f, 0.277351f, -0.375872f};
+ model->setOperandValue(op4, op4_init, sizeof(float) * 128);
+ static float op5_init[] = {-0.371999f, -0.346798f, 0.0479857f, 0.357291f, 0.0781941f, -0.468469f, -0.189905f, -0.330524f, 0.149986f, -0.160447f, -0.0118703f, -0.550328f, -0.791003f, 0.40966f, -0.504578f, -0.59432f, -0.388201f, 0.599258f, 0.765913f, 0.0550903f, 0.687241f, 0.416152f, 0.45043f, 0.799941f, 0.183287f, -0.0806467f, 0.40882f, 0.038171f, 0.623295f, 0.334548f, -0.0286598f, 0.625486f, -0.0592684f, -0.44542f, 0.877997f, -0.37489f, 0.0650874f, 0.523281f, -0.299677f, -0.547368f, -0.273818f, 0.507475f, 0.0302324f, 0.628441f, 0.00878996f, 0.106071f, -0.590101f, 0.00397916f, 0.74002f, 0.656696f, 0.610534f, 0.469231f, 0.788127f, -0.0209616f, 0.695851f, -0.258907f, -0.104862f, 0.419681f, 0.288236f, 0.614652f, 0.567888f, 0.144987f, 0.180178f, 0.0734783f, 0.322781f, -0.568792f, 0.724734f, 0.733f, -0.118631f, -0.267416f, -0.560893f, 1.09369f, -0.33351f, -0.177277f, 0.451596f, -0.409597f, 0.758123f, -0.107428f, 0.446403f, -0.339231f, 0.715291f, 0.726725f, 0.104168f, 0.113386f, 0.801029f, -0.49758f, -0.403269f, 0.104698f, 0.390301f, 0.0562365f, -0.660356f, 0.726264f, -0.382822f, -0.502128f, 0.373597f, -0.327868f, -0.140265f, -0.263564f, -0.00081655f, -0.205775f, -0.216874f, -0.287382f, 0.754078f, 0.568083f, -0.580143f, -0.797676f, -0.193579f, -0.0638705f, -0.42645f, -0.218093f, 0.131062f, 0.366589f, -0.318487f, 0.400512f, 0.0918075f, 0.219986f, -0.191933f, -0.695975f, 0.376914f, -0.629351f, -0.305271f, -0.273703f, -0.539896f, -0.24429f, 0.738327f, -0.0349007f, -0.588518f, 0.656455f, 0.210178f, -0.410348f, -0.0931675f, 0.140479f, -0.455182f, -0.267616f, -0.319923f, -0.409643f, 0.288601f, -0.285263f, 0.194517f, 0.144924f, -0.52604f, 0.517934f, -0.158135f, -0.375607f, -0.417484f, 0.654575f, 0.209492f, -0.630293f, 0.152386f, 0.727502f, 0.418395f, 0.877609f, 0.213141f, -0.608543f, 0.141474f, -0.394892f, 0.584262f, 0.163144f, -0.145766f, 0.297692f, -0.126787f, -0.375714f, 0.374215f, -0.435386f, 0.489997f, 0.967364f, -0.518685f, -0.0186661f, -0.199576f, -1.02716f, 0.0914696f, -0.293028f, -0.342356f, 0.253988f, -0.345911f, -0.0787308f, 0.893786f, 0.0658312f, 0.328602f, 0.471665f, -0.454748f, 0.4051f, 0.42156f, -0.0440271f, -0.250534f, 0.309111f, 0.495076f, 0.453569f, 0.55799f, -0.0140493f, 0.52114f, 0.0349987f, 0.703054f, -0.387149f, 0.105532f, 0.0556309f, -0.403943f, 0.224924f, -0.602211f, -0.126065f, -0.189629f, -0.324051f, 0.0385442f, 0.142331f, 0.399993f, 0.541429f, 0.099055f, -0.748623f, 0.108785f, 0.604047f, -0.0259912f, -0.450731f, 0.310894f, -0.301575f, -0.302417f, -0.35221f, 0.0479682f, -0.168233f, 0.00968778f, -0.263735f, -0.248705f, 0.0826444f, 0.696327f, -0.232563f, 0.281257f, -0.243034f, -0.977377f, 0.260563f, -0.184195f, -0.81334f, 0.385865f, 0.130855f, -0.0985384f, 1.04408f, -0.425736f, -0.299794f, -0.324138f, 0.0633125f, -0.0375996f, 0.241082f, 0.00295235f, 0.132798f, 0.126659f, -0.218771f, -0.058806f, 0.0403471f, 0.665479f, 0.291473f, -0.42599f, 0.238544f, 0.0194395f, -0.464092f, 0.206833f, -0.320888f, -0.408994f, 0.252735f, -0.190033f, 0.0830889f, 0.349072f, 0.113316f, -0.330529f, -0.369646f, 0.931114f, -0.476248f, 0.254663f, -0.415727f, -0.20224f, 0.140527f, 0.371208f, 0.607244f, -0.334175f, 0.200931f, -0.318034f, -0.189317f, 0.339365f, -0.114539f, -0.318915f, 0.0914304f, 0.115291f, 0.0147042f, 0.251819f, 0.768779f, 0.032546f, 0.373579f, 0.262274f, 1.06758f, -0.108359f, 0.585645f, -0.234926f, -0.624228f, 0.561744f, -0.0351643f, 0.335286f, 0.132157f, -0.0132048f, -0.934284f, 0.349157f, -0.0118232f, 0.246363f, 0.566126f, -0.155443f, 0.924225f, -0.191693f, -0.119283f, -0.100521f, -0.0833306f, 0.0185791f, 0.0669909f, -0.594791f, -0.18252f, 0.34093f, 0.396364f, -0.526932f, -0.615619f, 0.0659003f, 0.169685f, -0.228635f, -0.373667f, -0.260108f, -0.269473f, -0.194594f, -0.364131f, 0.68223f, -0.342552f, -0.102094f, -0.0340208f, -0.222481f, -0.251321f, -0.427632f, 0.0946208f, 0.0794745f, -0.294175f, -0.366633f, -0.357383f, -0.120858f, 0.600279f, -0.0332061f, 0.414637f, 0.0185309f, -0.304686f, -0.146834f, -0.0663878f, 0.302625f, 0.562463f, 0.190294f, 0.0786218f, 0.881655f, 0.376057f, -0.00401042f, 0.0395736f, 0.395802f, -0.721873f, 0.375809f, -0.435447f, 0.024138f, 0.169027f, 0.435926f, -0.434633f, 0.530353f, -0.090167f, -0.302625f, 0.385101f, -0.151619f, -1.06575f, 0.376828f, -0.303995f, 0.406449f, 0.647835f, -0.217216f, -0.191952f, 0.0315308f, 1.15128f, 0.154018f, 0.166301f, -0.0178801f, -0.605315f, -0.894466f, -0.583366f, -0.56658f, -0.115601f, 0.363652f, 0.0138519f, -0.322689f, -0.415142f, 0.18056f, 0.0536725f, 0.0671848f, 0.240311f, -0.273762f, 0.0618624f, -0.166808f, -0.520007f, 0.139148f, -0.239895f, 0.34825f, -0.791903f, -0.0769855f, -0.505072f, -0.150669f, -0.566241f, -0.588801f, 0.17482f, 0.218286f, 0.183678f, 0.444937f, 0.461889f, 0.537612f, -0.408438f, 0.279856f, -0.0895601f, 0.308778f, -0.379067f, 0.39896f, 0.148819f, 0.159404f, 0.470025f, 0.529305f, -0.143329f, -0.0234964f, -0.0944836f, -0.111256f, -0.264665f, -0.122156f, -0.354754f, 0.572589f, -0.070721f, 0.0778288f, 0.230499f, 0.299151f, -0.297005f, -0.0373578f, 0.419874f, 0.137546f, 0.414768f, 0.0707102f, 0.383481f, -0.386655f, 0.0424508f, -0.136485f, -0.327173f, -0.221734f, 0.231807f, 0.061912f, 0.19545f, -0.18165f, -0.220439f, 0.53025f, 0.127801f, 0.39273f, -0.399996f, -0.0290772f, 0.130647f, -0.116146f, 0.0542006f, -0.139722f, 0.39392f, 0.436959f, -0.152739f, -0.358973f, 0.061058f, -0.194328f, 0.0764236f, 0.346362f, -0.539156f, -0.439293f, -0.140001f, -0.26639f, -0.213351f, 0.452002f, -0.83031f, 0.298616f, 0.392885f, -0.0404226f, 0.281358f, -0.343876f, 0.543765f, -0.0786674f, -0.103904f, -0.0600652f, 0.00991323f, 0.0883498f, -0.205539f, -0.431245f, 0.50475f, -0.744655f, 0.274307f, 0.0917135f, 0.333497f, -0.261264f, -0.538669f, -0.329816f, 0.253869f, -0.611772f, -0.341715f, 0.646506f, 0.544775f, -0.168372f, 0.418412f, 0.0777067f, -0.135388f, -0.172258f, -0.40888f, 0.518494f, -0.87863f, -0.182439f, 0.206733f, -0.202201f, -0.0634756f, 0.386361f, -0.346156f, 0.198644f, 0.91019f, 0.463408f, -0.380189f, 0.586076f, 0.157232f, -0.133749f, -0.220107f, -0.0331952f, -0.240496f, 0.138215f, -0.607625f, 0.85225f, -0.310817f, 0.226016f, -0.263498f, -0.11137f, 0.127685f, 0.0708366f, -0.117465f, 0.220333f, -0.503921f, 0.246777f, 0.169263f, 0.310528f, 0.31499f, 0.255533f, 0.129487f, 0.358663f, -0.268629f, -0.192541f, -0.61219f, 0.233755f, 0.0841365f, 0.557277f, 0.114199f, 0.406474f, -0.287392f, 0.0854991f, 0.0931511f, -0.606695f, -0.265449f, 0.669253f, -0.758642f, 0.239421f, 0.315769f, 0.806215f, -0.0207951f, -0.41268f, 0.274723f, -0.454755f, 0.107319f, 0.119956f, 0.233164f, -0.141322f, 0.498619f, 0.21934f, 0.0993954f, -0.430761f, 0.661011f, 0.444416f, 0.330196f, -0.649003f, -0.267021f, 0.567728f, -0.00030172f, 0.585227f, -0.318078f, 0.0345984f, -0.0583266f, -0.0507583f, 0.510085f, -0.427116f, -0.29313f, 0.168635f, 0.174464f, -0.880822f, 0.105187f, -0.320177f, 0.814454f, 0.402033f, -0.410031f, -0.826444f, 0.338087f, 0.00150893f, -0.726918f, 0.167069f, 0.820153f, -0.429259f, 0.0971514f, -0.331884f, -0.148075f, 0.290771f, 0.177375f, -0.537975f, 0.691541f, -0.0806398f, 0.206029f, 0.219035f, 0.136478f, -0.119208f, 0.314147f, -0.603724f, -0.0836857f, 0.0443046f, 0.00274185f, -0.339085f, 0.0148529f, -0.282286f, 0.361368f, 0.0403372f, -0.210213f, 0.485913f, -0.0315312f, -0.0946601f, 1.06684f, 0.383381f, 0.240807f, 0.117882f, -0.0522335f, -0.0815176f, -0.247333f, 0.0108036f, 0.256038f, -0.145287f, -0.0553204f, 0.00281186f, -0.295664f, 0.333585f, -0.208129f, -0.373747f, -0.251885f, 0.240119f, 0.138734f, -0.190394f, -0.341898f, 0.375683f, -0.272932f, 0.588467f, 0.370102f, -0.31492f, -0.291584f, 0.0384243f, 0.489104f, -0.36853f, 0.453972f, -0.496767f, 0.0372422f, -0.243886f, -0.167027f, -0.074406f, 0.00203161f, 0.339931f, -0.21225f, 0.289954f, 0.725342f, 0.176641f, 0.0251269f, -0.122453f, 0.0304393f, 0.398168f, 0.271129f, 0.141045f, -0.24813f, 0.327321f, 0.230719f, 0.524471f, -0.145772f, 0.220928f, 0.204231f, 0.510314f, 0.359793f, 0.0555715f, 0.215528f, -0.14752f, 0.274032f, -0.424851f, 0.200054f, -0.614618f, 0.240375f, 0.408675f, 0.051105f, -0.191463f, 0.0511619f, -0.196181f, 0.577017f, -0.119068f, 0.417893f, -0.15034f, -0.0778491f, -0.469383f, -0.126402f, 0.106374f, 0.0560353f, 0.309729f, 0.12314f, 0.0883943f, -0.295549f, -0.0608766f, 0.512349f, 0.168588f, -0.314362f, -0.436952f, -0.1581f, -0.68891f, -0.465867f, -0.514113f, 0.144182f, -0.147637f, 0.214954f, -0.726359f, -0.512929f, -0.322416f, -0.178898f, 0.169492f, 0.465608f, -0.30422f, 0.48376f, 0.491718f, -0.0591513f, 0.33746f, 0.496667f, -0.825805f, 0.583549f, -0.286016f, -0.223519f, 0.0915824f, -0.410154f, -0.298635f, 0.154465f, 0.433647f, -0.268362f, -0.171481f, 0.0365772f, 0.0840775f, 0.476826f, 0.151198f, 1.03378f, -0.260618f, -0.348964f, 0.338437f, 0.19724f, -0.177868f, 0.279016f, -0.0906834f, 0.486829f, 0.360761f, 0.276319f, -0.196894f, -0.224896f, -0.0859952f, -0.507965f, -0.599669f, -0.268747f, 0.037534f, -0.965235f, 0.52092f, -0.520071f, 0.651996f, -0.0917317f, 0.383013f, 0.191021f, -0.117242f, -0.300511f, -0.430103f, 0.773648f, 0.186704f, -0.441941f, 0.380437f, -0.168094f, -0.112784f, -0.29766f, 0.605272f, -0.390518f, -0.3455f, 0.0850069f, 0.499245f, 0.121701f, 0.427952f, -0.165487f, -0.343962f, -0.0618526f, 0.553572f, 0.0671273f, 0.535735f, -0.252518f, 0.237507f, -0.242775f, 0.501301f, 0.223125f, 0.387666f, -0.0638493f, -0.448902f, 0.11086f, -0.409926f, -0.270253f, -0.231364f, -0.273804f, 0.131181f, 0.139108f, 0.0898899f, -0.385535f, 0.603308f, -0.520039f, 0.276174f, 0.272355f, -0.786852f, 0.619771f, 0.241887f, 0.462303f, -1.1661f, 0.497977f, -0.0786931f, 0.0378511f, -0.18253f, 0.166828f, 0.19223f, 0.325653f, -0.125227f, -0.805556f, -0.518351f, -0.886432f, 0.052583f, 0.102031f, -0.882666f, -0.339162f, -0.68591f, 0.583118f, 0.190653f, 0.217251f, 0.642762f, 0.691765f, 0.171299f, 1.20483f, -0.355973f, 0.509433f, 0.282135f, 0.948592f, 0.253663f, 0.0725528f, -0.525396f, -0.380369f, 0.208153f, -0.492214f, 0.71198f, 0.0725346f, 0.184236f, 0.839216f, -0.384334f, 0.380997f, 0.0753943f, 0.571754f, -0.3321f, 0.171173f, 0.243912f, -0.253328f, -0.46436f, 0.279594f, -0.522786f, -0.54214f, 0.397322f, 0.836313f, -0.242371f, -0.479888f, -0.548432f, -0.607909f, -0.577143f, -0.22162f, 0.17737f, -0.300358f, -0.524064f, 0.408748f, 0.0738067f, -0.145552f, 0.351827f, -0.438011f, 0.0810841f, 0.0265885f, -0.0820521f, -0.495109f, 0.595279f, -0.799624f, 0.318209f, 0.145081f, -0.587586f, 0.177644f, 0.330989f, -0.373363f, 0.497302f, 0.059983f, -0.468531f, -0.385987f, -0.607101f, -0.234836f, 0.211209f, -0.275845f, 0.376713f, -0.283742f, 0.574632f, -0.359968f, -0.415865f, 0.221843f, -0.0217085f, 0.145729f, 0.0129024f, -0.662888f, -0.193197f, -0.519249f, 0.267515f, -0.0416337f, 0.227834f, -0.493132f, 0.392436f, -0.580179f, 0.297359f, -0.534621f, 0.499555f, -0.142822f, 0.176653f, -0.00980859f, 0.16683f, -0.472059f, -0.523987f, -0.376091f, -0.710018f, 0.79939f, 0.165761f, -0.348652f, 0.535135f, 0.375553f, 0.22469f, -0.0912158f, -0.370138f, 0.0500168f, 0.023739f, -0.172477f, 0.119806f, 0.383176f, 0.231837f, 0.0605284f, -0.100968f, 0.870541f, -0.0866504f, 0.409598f, 0.346036f, -0.289824f, -0.0732644f, -0.155742f, 0.0287473f, -0.752854f, -0.30823f, -0.408025f, -0.897713f, -0.29823f, -0.392733f, -0.165728f, -0.452032f, -0.0737648f, 0.693609f, 0.770581f, -0.697199f, 0.0877333f, -0.0932719f, 0.816154f, 0.688962f, -0.0667026f, -0.884026f, 0.342806f, -0.422542f, 0.100861f, -0.142711f, 0.417825f, 0.840715f, 0.115279f, 0.0247498f, 0.276853f, -0.149863f, -0.476889f, 0.912344f, 0.616008f, -0.432487f, 0.584148f, 1.13549f, -0.218403f, -0.218826f, 0.359245f, 0.12474f, -0.0657246f, 0.275225f, 0.00851578f, -0.0880628f, -0.0945963f, -0.179661f, -0.492065f, -0.482909f, -0.857491f, 0.039062f, 0.355535f, -0.282645f, 0.177667f, 0.779713f, 0.475427f, 0.224803f, -0.453928f, 0.376146f, 0.363905f, -0.211716f, -0.350152f, 0.533777f, -0.0899128f, -0.114365f, 0.88236f, -0.354094f, 0.200705f, 0.649566f, -0.385433f, 0.477843f, 0.31851f, -0.753048f, -0.11764f, 0.333795f, -0.0543095f, 0.167575f, 0.347282f, 0.324299f, -0.0835072f, 0.479318f, -0.388574f, -0.471185f, 0.480752f, -0.275772f, 0.301711f, -0.411163f, -0.489759f, 0.0623785f, -0.192641f, 0.0569767f, 0.111328f, 0.142228f, 0.0686482f, 0.0796447f, -0.263096f, 0.378977f, -0.0194688f, 0.30457f, 0.0137224f, 0.304379f, -0.50259f, -0.344538f, -0.294819f, 0.558693f, -0.357826f, 0.49133f, 0.506093f, -0.143837f, -0.25083f, 0.666564f, 0.437864f, 0.344516f, -0.437348f, -0.350776f, 0.778032f, -0.284674f, 0.527345f, 0.493619f, -0.19436f, 1.00847f, 0.361624f, -0.400407f, 0.314858f, -0.346484f, -0.508386f, -0.0496384f, -0.189277f, -0.0508045f, -0.19384f, -0.277062f, -0.586299f, 0.0188307f, -0.32649f, 0.195243f, -0.691762f, -0.399693f, 0.572609f, -0.508129f, -0.379947f, -0.172318f, 0.150124f, -0.00221663f, 0.61593f, -0.600549f, -0.562772f, 0.208896f, 0.611838f, 0.268238f, -0.213357f, -0.737937f, 0.699431f, -0.143642f, 0.514483f, 0.132155f, 0.51063f, 0.789351f, 0.520512f, 0.187771f, -0.330414f, -0.175605f, -0.361545f, -0.0891978f, 0.671198f, 0.142142f, -0.352542f, -0.233065f, 0.257493f, -0.0495003f, -0.191727f, -0.0484265f, 0.482953f, 0.193174f, -0.528268f, -0.246402f, -0.000374761f, -0.0302073f, 0.0310964f, -0.213433f, -0.460854f, -0.481105f, -0.60283f, 0.434087f, 0.142084f, 0.705319f, -0.171898f, -0.0783328f, -0.198899f, -0.469111f, -0.513186f, 0.258557f, -0.493187f, 0.157313f, 0.250994f, 0.220334f, 0.0393204f};
+ model->setOperandValue(op5, op5_init, sizeof(float) * 1152);
+ static float op7_init[] = {-0.239844f, 0.432217f, -0.153807f, 0.0767933f, -0.275068f, 0.0063897f, 0.0516512f, 0.422338f, 0.0895534f, -0.416501f, 0.240182f, 0.0289379f, 0.302629f, -0.0327263f, -0.580243f, 0.86227f, 0.517094f, -0.23759f, 0.536654f, 0.597244f, 0.667096f, -0.507551f, -0.255663f, 0.61003f, 0.976404f, 0.232841f, 0.358804f, 0.348653f, 0.47637f, 0.230082f, 0.458516f, -0.664486f, -0.279672f, 0.192337f, -0.179005f, 0.656821f, -1.05123f, 0.0301599f, -0.677498f, -0.646811f, 0.100461f, 0.898003f, 0.12403f, 1.04799f, 0.960812f, -0.00393687f, -0.175513f, 0.242039f, 0.163904f, -0.022697f, 0.296417f, 0.225485f, 0.650953f, 0.257254f, 0.358139f, -0.39075f, 0.627265f, 0.0965187f, -0.232091f, -0.25681f, 0.651693f, 0.631126f, 0.499249f, 0.956892f, 0.710567f, -0.384283f, 0.920582f, 0.525813f, 0.0432827f, 0.0850359f, 1.35225f, -0.463563f, -0.61526f, 1.34561f, 2.03387f, -1.1429f, 0.108398f, 0.14919f, 0.387328f, 0.335212f, -0.33643f, 0.481889f, 0.742792f, 0.416105f, 0.267452f, 1.12879f, -0.692795f, -0.116663f, -0.651768f, 0.815917f, 0.150634f, -1.101f, -0.0903521f, 0.642167f, 0.636696f, 0.31574f, -0.432929f, 0.332695f, 0.571667f, -0.927278f, -0.330166f, 0.728891f, 0.120788f, 0.798598f, 0.215431f, 0.672161f, -0.256499f, -0.0800854f, 0.435699f, 0.64343f, -0.333017f, 0.271489f, 0.429805f, 0.21972f, 0.286028f, -0.512005f, -0.14715f, -0.265395f, 0.543187f, -0.288313f, 0.233415f, 0.571179f, -0.218133f, 0.990613f, 0.0603392f, 0.353106f, 0.610102f, 0.899427f};
+ model->setOperandValue(op7, op7_init, sizeof(float) * 128);
+ static float op8_init[] = {-0.172699f, 0.0449607f, -0.00371321f, 0.0898063f, -0.0704206f, -0.0275239f, 0.041895f, -0.00635676f, -0.0417219f, -0.0280383f, -0.173593f, 0.135424f, -0.0752411f, 0.11462f, -0.124894f, 0.000502583f, -0.216759f, -0.0630591f, -0.110061f, 0.12233f, -0.0932574f, -0.161026f, 0.186579f, 0.130671f, -0.0936801f, -0.0569374f, 0.357974f, 0.0954326f, 0.101225f, -0.0409947f, -0.0455288f, -0.0440348f, 0.123336f, 0.0231551f, -0.0408172f, -0.00361653f, -0.00148246f, 0.119164f, 0.0527698f, 0.0506977f, 0.256418f, -0.0326844f, -0.0874518f, 0.067015f, -0.0604058f, 0.0366124f, 0.00296697f, 0.116773f, 0.218754f, 0.00682259f, 0.126256f, -0.142779f, -0.0523525f, -0.0846195f, 0.117748f, 0.0111739f, -0.0813845f, 0.089366f, -0.0741314f, 0.0120595f, 0.021114f, 0.0707698f, -0.0105984f, 0.0755084f, 0.12208f, 0.0323274f, 0.0109762f, 0.0425386f, 0.0567808f, -0.0683524f, 0.0843128f, 0.0345055f, -0.057605f, 0.0924838f, 0.088714f, 0.0128912f, 0.00135126f, -0.101799f, 0.0929571f, 0.111422f, -0.155157f, 0.152459f, 0.0370272f, -0.0708927f, -0.0769399f, 0.014223f, -0.0931266f, -0.187614f, -0.0911365f, -0.0877861f, 0.172129f, 0.0758516f, 0.0803442f, -0.141961f, 0.112148f, 0.0126529f, -0.124305f, -0.0808925f, -0.0656089f, -0.137144f, -0.0542301f, -0.00423685f, 0.230113f, -0.0321773f, 0.0881237f, 0.0309148f, -0.0446463f, 0.166689f, -0.0496049f, -0.0829833f, -0.0128102f, -0.162538f, 0.131394f, -0.0632246f, -0.0911218f, 0.00599847f, 0.0918562f, -0.0796131f, 0.0160037f, -0.0908461f, 0.168532f, 0.0149281f, -0.176542f, 0.13237f, -0.0343792f, -0.012833f, 0.0642847f, 0.195131f, 0.14246f, 0.0675093f, 0.0566411f, 0.0191019f, -0.185343f, 0.0739265f, 0.027361f, 0.0206688f, 0.0777785f, 0.019568f, -0.028858f, 0.00682113f, -0.125028f, -0.0184913f, -0.0682909f, 0.0564752f, -0.189062f, 0.230366f, -0.131057f, -0.198316f, 0.0377746f, 0.198547f, -0.242385f, -0.159393f, 0.00052912f, 0.0493967f, 0.0332719f, -0.263867f, -0.0880857f, 0.0116087f, 0.115978f, -0.0483443f, 0.0901313f, 0.0970586f, 0.119585f, -0.0797261f, 0.0241821f, -0.192169f, -0.0646386f, 0.108423f, -0.0371298f, 0.236614f, 0.0305832f, 0.0205235f, 0.160216f, 0.130956f, 0.0191171f, -0.0151608f, 0.0975298f, -0.0878115f, 0.0698904f, -0.0770493f, 0.0634754f, -0.00350663f, -0.0706132f, 0.0887002f, 0.0275032f, -0.222906f, 0.15569f, -0.0192414f, 0.0754852f, -0.169138f, -0.0677657f, -0.0572451f, 0.0725533f, -0.173611f, 0.0184328f, -0.127195f, -0.00376658f, -0.152815f, 0.0954231f, 0.0892381f, 0.113555f, -0.175162f, -0.0485214f, 0.0489706f, -0.0690975f, -0.101448f, 0.215883f, -0.108719f, 0.101643f, -0.0446736f, 0.0245646f, -0.0153349f, -0.0271007f, 0.107209f, 0.0411096f, 0.251517f, 0.113063f, 0.113861f, 0.0516725f, 0.167307f, -0.0653524f, -0.0455044f, -0.0610031f, 0.148985f, 0.00901562f, 0.117974f, 0.162654f, 0.199082f, 0.0825426f, -0.120167f, -0.00179235f, 0.0131152f, -0.0399832f, -0.137583f, -0.0081266f, -0.0361761f, -0.00774885f, 0.0845614f, 0.0686634f, 0.0251725f, -0.191803f, -0.221502f, 0.141125f, -0.0519488f, -0.139135f, -0.000889839f, -0.100054f, -0.0969728f, -0.181709f, -0.221205f, 0.0119755f, -0.166578f, -0.199602f, -0.0123114f, -0.0588876f, 0.0332407f, 0.0881103f, -0.125568f, 0.024281f, -0.0470191f, 0.040643f, -0.0487123f, -0.061058f, -0.0372566f, -0.181239f, 0.0351314f, 0.289782f, 0.194156f, -0.0865899f, 0.0101178f, -0.115025f, -0.0583433f, 0.222804f, -0.0150751f, 0.21733f, 0.0281965f, 0.0207271f, -0.158252f, 0.240492f, 0.068967f, -0.0301124f, 0.0176885f, 0.0227344f, -0.0042029f, 0.252948f, 0.135586f, 0.118751f, -0.206414f, -0.0573002f, -0.100519f, 0.121458f, -0.101671f, -0.0849466f, -0.0471731f, -0.0388062f, -0.0284029f, 0.0893331f, -0.12701f, -0.0515264f, 0.0398275f, -0.0546011f, 0.0124467f, 0.0326141f, 0.137525f, 0.170781f, -0.142627f, -0.0149326f, 0.173709f, 0.0894412f, 0.0222928f, -0.0434656f, -0.0796147f, -0.00458306f, 0.0947013f, -0.116854f, -0.0736371f, 0.0468816f, -0.167591f, 0.0276223f, -0.122677f, -0.0548054f, -0.0553621f, 0.0835825f, 0.055769f, -0.0344506f, -0.0567578f, -0.0852109f, 0.0616882f, -0.0769692f, 0.191863f, -0.104617f, 0.0456041f, 0.0474185f, 0.0502244f, 0.0742682f, 0.171057f, -0.164435f, 0.11859f, 0.0421631f, 0.145413f, -0.0423528f, 0.0544199f, 0.038058f, -0.26527f, -0.0193972f, 0.13417f, 0.15207f, 0.0778761f, 0.106752f, -0.032543f, -0.0213577f, -0.0693601f, -0.391853f, -0.136818f, 0.0231998f, -0.134358f, 0.033602f, -0.0345768f, 0.100643f, -0.201398f, 0.0113202f, 0.055087f, 0.0945622f, 0.00493237f, -0.0729234f, 0.178872f, -0.127208f, 0.215793f, -0.0495821f, 0.208672f, -0.122244f, -0.042769f, -0.00195452f, -0.239324f, -0.144123f, -0.0659934f, 0.020396f, -0.028447f, 0.0771253f, 0.0518733f, 0.152141f, 0.246472f, 0.00910313f, -0.000920751f, -0.181364f, -0.0106388f, -0.0178094f, -0.228197f, 0.143756f, -0.0432083f, 0.125136f, -0.0887755f, 0.0248958f, -0.0837246f, 0.144727f, 0.0402559f, -0.161379f, 0.301915f, 0.144324f, -0.0410704f, 0.0333956f, -0.0101343f, -0.0700161f, 0.0357247f, -0.0769183f, 0.0848658f, -0.00621662f, -0.242851f, 0.0674395f, -0.00758944f, -0.0585774f, -0.137638f, -0.134048f, 0.0947884f, 0.0861025f, 0.0345171f, -0.0117775f, 0.0865517f, -0.0263504f, -0.00582769f, -0.055158f, 0.105167f, 0.188121f, 0.0748297f, 0.172841f, 0.0606606f, 0.0414464f, -0.153072f, 0.139805f, 0.0397861f, 0.113649f, 0.0159984f, -0.184234f, 0.00219312f, -0.174635f, -0.163423f, -0.0684454f, 0.0672737f, 0.00909775f, 0.0384862f, -0.0590174f, 0.001999f, 0.225097f, 0.110285f, -0.0750485f, 0.154809f, 0.0958235f, 0.0132659f, 0.0281339f, -0.0108512f, -0.180806f, -0.0249391f, 0.0386283f, -0.106469f, -0.178139f, -0.00381894f, 0.0296336f, 0.00996137f, 0.0402495f, 0.00693643f, 0.0319334f, -0.0449786f, 0.091911f, -0.0675634f, -0.00421441f, 0.0919752f, -0.0656701f, 0.109936f, -0.0475554f, 0.105274f, -0.0318795f, 0.100482f, 0.0632022f, -0.0582397f, -0.0253911f, -0.00997345f, -0.108562f, -0.0866564f, 0.125008f, -0.174409f, 0.172176f, -0.254697f, -0.00139552f, -0.00714151f, 0.035789f, -0.0499116f, -0.131369f, -0.0189716f, 0.109567f, 0.00566761f, -0.0813772f, 0.0467801f, 0.155354f, 0.0327912f, -0.0340732f, -0.0609696f, 0.0509151f, -0.147831f, 0.11692f, 0.0181592f, 0.101068f, 0.184594f, -0.0441256f, 0.0135208f, -0.268271f, 0.00543886f, -0.000367336f, -0.117738f, -0.0444037f, 0.0676478f, 0.0948582f, -0.126182f, 0.0178662f, -0.153527f, -0.00153047f, 0.105665f, 0.032186f, 0.00540494f, 0.0199078f, 0.133774f, -0.0698827f, 0.0172576f, 0.22613f, -0.178975f, -0.134412f, 0.191512f, -0.104144f, -0.201171f, 0.0140216f, 0.0891561f, -0.193577f, -0.070077f, 0.12309f, 0.21912f, 0.00903049f, -0.0398482f, 0.0683166f, -0.16153f, 0.103406f, 0.0287357f, 0.019276f, 0.139484f, -0.0834835f, 0.187182f, -0.206227f, -0.119005f, 0.185202f, -0.143847f, -0.0514418f, 0.234983f, -0.130587f, -0.157969f, 0.157651f, 0.185718f, -0.00281304f, -0.0717317f, -0.0982489f, 0.0827433f, 0.148447f, -0.148186f, -0.0552157f, -0.0845226f, -0.088143f, 0.117013f, -0.093276f, -0.0364769f, -0.0231481f, -0.13587f, -0.0845633f, 0.184157f, 0.234548f, -0.0844759f, -0.0469721f, 0.143575f, 0.00682724f, 0.202476f, -0.0731241f, 0.148424f, 0.145465f, -0.0122816f, 0.0579985f, -0.00232998f, 0.0367301f, 0.0331726f, -0.0613818f, 0.0595954f, -0.0607423f, 0.0561537f, 0.13526f, -0.125133f, 0.0332285f, 0.0777098f, -0.0824843f, 0.117463f, 0.265755f, 0.23483f, -0.0480197f, 0.118755f, -0.18863f, 0.0347844f, -0.050268f, 0.0992196f, -0.0697107f, -0.125519f, -0.0550192f, 0.00271665f, 0.0144316f, -0.0155043f, -0.132996f, 0.159367f, 0.128277f, 0.0252949f, -0.126737f, 0.115928f, 0.112083f, -0.161703f, 0.0785936f, 0.171004f, -0.0955589f, -0.240207f, 0.163404f, -0.156569f, -0.112265f, 0.176127f, 0.0846743f, -0.0374046f, 0.0558602f, -0.106978f, -0.171296f, 0.132462f, 0.00261334f, -0.00428968f, 0.0846042f, -0.0914706f, -0.105592f, 0.0573593f, -0.306283f, -0.0437165f, -0.0141064f, -0.244282f, -0.0381941f, -0.229129f, -0.0977861f, -0.0354019f, -0.171133f, 0.154781f, 0.0653186f, 0.0539781f, -0.0940029f, 0.181102f, -0.0659965f, 0.0510695f, 0.142673f, -0.00916968f, -0.0341946f, -0.0568664f, 0.227332f, 0.0770241f, 0.00267347f, 0.0782687f, -0.111529f, 0.0438466f, 0.144909f, -0.151172f, -0.182788f, -0.0200457f, 0.133102f, 0.0267178f, -0.00938325f, 0.037002f, -0.108933f, -0.0128922f, -0.0599866f, -0.135938f, -0.149963f, 0.00298715f, -0.0737756f, 0.194343f, 0.00428755f, 0.137146f, 0.241237f, -0.157027f, -0.113035f, -0.139903f, 0.0694903f, -0.101389f, 0.0794869f, 0.183088f, 0.0914188f, 0.0728938f, 0.0949384f, 0.214547f, -0.0215643f, 0.0219624f, -0.201959f, 0.174445f, 0.121719f, -0.0472713f, -0.0934167f, -0.0247915f, -0.0351995f, 0.145441f, 0.0547843f, -0.00915121f, 0.028562f, 0.12547f, -0.182313f, -0.118052f, -0.127271f, 0.174176f, -0.0289791f, -0.121071f, -0.265846f, -0.117536f, 0.118476f, -0.0827596f, -0.265335f, 0.109153f, -0.0995659f, -0.0238561f, 0.0779303f, 0.0854883f, -0.0184932f, -0.0110887f, -0.00326806f, 0.00252662f, 0.0176296f, 0.111799f, 0.0431183f, -0.0517575f, 0.0919742f, -0.0127608f, 0.155744f, -0.127375f, 0.0314535f, 0.149613f, 0.0842013f, 0.0293862f, 0.0281455f, 0.0394128f, -0.0466866f, -0.0613884f, 0.0642533f, -0.202673f, 0.0534869f, -0.179346f, -0.207757f, 0.074782f, 0.0057628f, -0.144066f, 0.078882f, 0.035112f, 0.00759045f, -0.0467537f, -0.134999f, 0.134763f, 0.206957f, 0.0161096f, -0.175295f, -0.169457f, 0.0821166f, 0.102572f, 0.0212726f, 0.0899595f, 0.204252f, -0.111171f, -0.0982252f, -0.161432f, 0.160711f, 0.0493972f, -0.14752f, 0.225125f, -0.236314f, -0.191063f, -0.14204f, -0.0589001f, -0.0803838f, 0.0843147f, -0.0719152f, 0.0213074f, 0.248355f, -0.059479f, 0.117611f, 0.0936088f, -0.0832419f, 0.129121f, 0.0386202f, 0.0749675f, 0.0308745f, 0.267176f, 0.0056173f, -0.100199f, -0.0321577f, -0.224399f, 0.116686f, 0.230632f, 0.107567f, -0.01528f, -0.0582684f, -0.205819f, 0.282098f, 0.203155f, -0.0429338f, -0.018327f, -0.0157006f, 0.189914f, -0.112357f, -0.134142f, -0.289639f, -0.162554f, -0.150118f, 0.259181f, -0.00816933f, -0.258786f, -0.0770067f, 0.0716686f, -0.235631f, -0.212828f, -0.0935169f, -0.169488f, 0.00991103f, 0.111147f, -0.0480463f, -0.124689f, 0.0546175f, -0.0637267f, 0.050674f, 0.140396f, 0.0230875f, 0.138631f, -0.029774f, 0.158339f, -0.0788463f, 0.193584f, 0.207496f, 0.0578033f, 0.0955029f, 0.117317f, 0.0109381f, -0.153742f, 0.0469004f, 0.0373743f, 0.0858688f, 0.201089f, 0.0837242f, -0.21427f, 0.0142731f, -0.0691018f, 0.0219388f, 0.0894703f, -0.0102723f, -0.160903f, 0.0840416f, -0.0273234f, 0.0119755f, -0.0927996f, -0.104638f, 0.0893356f, 0.112569f, -0.236792f, 0.256638f, 0.207085f, 0.0917604f, 0.118779f, -0.0728371f, 0.0788934f, -0.0225144f, -0.0503799f, -0.0095871f, 0.12195f, -0.107286f, 0.0940814f, -0.0970017f, -0.142466f, 0.0170319f, 0.148768f, -0.258514f, 0.0792613f, 0.0145733f, -0.32181f, -0.08864f, 0.12864f, -0.070136f, 0.153669f, -0.0914608f, 0.196092f, 0.00286963f, -0.0486095f, -0.0733793f, 0.10252f, -0.074289f, -0.0552322f, -0.109623f, -0.0162614f, 0.148002f, -0.256922f, -0.150673f, -0.241775f, 0.139568f, 0.311122f, 0.0128758f, -0.0588376f, 0.212634f, 0.130826f, 0.104662f, -0.262337f, -0.0118215f, 0.00410812f, 0.0383419f, -0.0723159f, 0.152039f, -0.136137f, -0.0148184f, -0.13602f, 0.112719f, 0.150607f, 0.0593993f, 0.0360995f, 0.387169f, 0.10497f, 0.25739f, 0.00567129f, -0.0142622f, 0.0632609f, 0.0393406f, 0.199631f, 0.0473532f, -0.272633f, -0.149202f, -0.0637278f, -0.0881089f, 0.144849f, -0.0803883f, -0.0882426f, 0.14482f, -0.0258806f, 0.00615381f, 0.0352358f, -0.214808f, -0.0932051f, 0.230403f, 0.12879f, -0.0855881f, -0.0882761f, -0.0720473f, -0.287856f, -0.0148683f, -0.106156f, 0.167196f, -0.0293404f, -0.259126f, -0.0544784f, -0.132434f, -0.150944f, 0.234722f, 0.0605863f, 0.107234f, -0.13865f, -0.0746428f, -0.0221803f, -0.265237f, 0.0625277f, -0.0494436f, -0.0416389f, -0.277862f, -0.053278f, -0.0258379f, 0.0331285f, 0.180347f, 0.0283474f, -0.047705f, -0.0260598f, -0.0675032f, 0.0184431f, -0.143282f, 0.193194f, 0.0566996f, -0.131074f, 0.00106579f, -0.114196f, 0.0598561f, -0.0350459f, -0.157214f, 0.00784787f, -0.083859f, 0.14852f, 0.00208048f, 0.244619f, 0.0568272f, -0.131264f, -0.148066f, -0.0983053f, 0.0345367f, 0.0427766f, -0.103915f, -0.107858f, 0.00103092f, -0.209628f, -0.211877f, 0.0322244f, 0.106379f, -0.113955f, 0.0478548f, 0.122414f, -0.0792911f, -0.0498756f, -0.0290686f, -0.0172711f, 0.00432454f, -0.0550804f, 0.00667552f, -0.150003f, 0.255682f, -0.159751f, -0.0144316f, -0.158606f, 0.163059f, 0.0881503f, 0.17044f, -0.0647693f, 0.14769f, 0.0491989f, 0.0472408f, 0.147817f, 0.0765322f, -0.147734f, -0.03822f, 0.0969919f, 0.0865555f, -0.0964195f, 0.0015339f, -0.0114209f, 0.062323f, -0.0671345f, 0.128234f, -0.0285468f, 0.0571443f, 0.026567f, 0.129565f, 0.251888f, -0.0351352f, 0.00273474f, -0.0922397f, -0.0791929f, 0.125446f, -0.0914547f, -0.0097065f, 0.188405f, -0.0606619f, 0.029599f, 0.0950578f, 0.131771f, 0.0800878f, -0.117497f, 0.150444f, 0.137325f, 0.013257f, -0.0333888f, 0.0480419f, -0.0616702f, 0.0768918f, -0.0108989f, -0.0148459f, 0.0536335f, -0.0154859f, 0.0408427f, 0.0410757f, 0.0272564f, 0.0954664f, 0.124684f, -0.0476273f, 0.00215546f, -0.049636f, -0.0602664f, -0.152866f, 0.0329544f, -0.0310677f, 0.0810267f, 0.00618616f, -0.177168f, 0.000840775f, 0.030791f, 0.102239f, 0.0667823f, -0.0153317f, -0.06333f, -0.164764f, 0.0165404f, -0.10892f, -0.0250758f, -0.00294602f, 0.172003f, -0.116216f, -0.0473f, 0.055367f, 0.0459781f, 0.173269f, -0.12942f, -0.0597379f, -0.178085f, -0.0238534f, 0.0446281f, -0.104689f, -0.0852745f, -0.139773f, 0.0340586f, 0.115569f, -0.0414901f, 0.146612f, 0.0233667f, -0.0322336f, -0.11873f, 0.0101825f, 0.108217f, -0.0507379f, 0.0414824f, 0.0306247f, 2.49687e-05f, 0.0556499f, -0.0127495f, -0.00328595f, -0.154674f, 0.135227f, -0.19442f, 0.00185213f, -0.0877088f, -0.0853083f, 0.0308417f, -0.00418261f, -0.111206f, -0.0999267f, -0.0777044f, -0.00212112f, 0.0475393f, 0.0780179f, 0.119606f, -0.0172803f, -0.0560434f, -0.114174f, 0.139274f, 0.0323926f, -0.109937f, 0.0407359f, 0.0652342f, -0.0196915f, -0.0946131f, -0.0448973f, -0.00323046f, 0.058022f, 0.0331174f, -0.0598599f, -0.121908f, 0.0250067f, 0.035433f, 0.15593f, 0.272445f, 0.199996f, 0.0639087f, 0.172631f, 0.135463f, -0.0404386f, -0.108287f, 0.0479765f, 0.0644609f, -0.0366803f, -0.39709f, 0.134836f, 0.0687971f, -0.0420625f, -0.0215619f, 0.187612f, 0.106084f, 0.28022f, 0.0449317f, 0.00405456f, -0.00547322f, 0.0173844f, -0.0590645f, 0.0768849f, 0.132422f, -0.110332f, -0.18505f, -0.197878f, 0.00240428f, 0.0205794f, -0.0749621f, -0.100248f, 0.134672f, 0.145824f, 0.0108435f, -0.00961915f, -0.0265341f, -0.110514f, 0.0658575f, 0.118833f, 0.104106f, 0.0645025f, -0.0630569f, -0.0465191f, -0.15128f, -0.123687f, -0.0737264f, 0.0208008f, -0.0811851f, 0.0399331f, -0.02581f, 0.0440323f, 0.0843541f, 0.16557f, 0.137926f, -0.148791f, -0.201328f, 0.0563018f, -0.0196045f, 0.0325648f, 0.082406f, -0.0832045f, -0.0929328f, 0.0146253f, -0.116815f, 0.110452f, -0.0279918f, 0.29776f, 0.159692f, 0.179228f, 0.154996f, -0.154573f, 0.104738f, -0.171005f, 0.0487168f, 0.0590936f, 0.150465f, 0.185399f, -0.0390896f, 0.0314993f, -0.117721f, -0.101674f, 0.21034f, 0.11539f, 0.0476638f, 0.00198651f, 0.123238f, 0.0063185f, -0.10932f, -0.167913f, 0.0803791f, 0.230461f, 0.110976f, -0.16213f, -0.195865f, 0.120952f, 0.0362837f, 0.0524662f, -0.0129579f, 0.0741622f, -0.164524f, 0.0378082f, -0.020699f, -0.0511412f, -0.0219928f, -0.071834f, 0.202198f, 0.0627747f, 0.196727f, -0.101635f, 0.217233f, -0.140643f, 0.0951564f, -0.111497f, -0.101686f, 0.110931f, 0.0308026f, -0.116699f, -0.126942f, -0.210004f, -0.294564f, -0.347124f, -0.0733563f, -0.00174861f, 0.0451787f, 0.0970839f, 0.120563f, 0.0454052f, 0.0175521f, -0.214858f, 0.10511f, -0.113108f, 0.063091f, -0.0789468f, 0.211878f, 0.0358017f, 0.0648323f, -0.0303083f, -0.0723141f, -0.170846f, -0.150411f, -0.0945836f, 0.204128f, 0.200488f, 0.139219f, -0.202792f, 0.130097f, 0.056214f, -0.008369f, 0.201142f, 0.194612f, 0.174177f, -0.22059f, 0.115733f, -0.0332348f, -0.053693f, 0.00631526f, 0.189236f, 0.148638f, -0.0733962f, 0.0206301f, -0.11133f, 0.0202766f, -0.17565f, -0.052699f, 0.0737938f, 0.0676804f, 0.0545732f, 0.0957646f, -0.149913f, -0.0774798f, 0.0560396f, -0.0875128f, 0.043351f, 0.0140273f, -0.138749f, 0.128263f, 0.0288341f, -0.257044f, 0.0736511f, -0.138027f, -0.290953f, -0.00410692f, 0.0438561f, -0.0217563f, 0.144684f, -0.190963f, -0.0400122f, -0.124753f, -0.22841f, 0.092536f, -0.226595f, 0.0348837f, -0.0523877f, 0.131039f, 0.300003f, 0.143662f, -0.117173f, -0.0319214f, -0.022186f, 0.08953f, 0.00920283f, 0.0682747f, 0.0967055f, 0.154895f, 0.0986014f, -0.0854603f, -0.0490395f, 0.138525f, -0.0960162f, 0.152626f, -0.0785225f, 0.0708006f, 0.0621875f, -0.0274578f, -0.0213948f, 0.112333f, -0.169541f, 0.184139f, -0.0569852f, -0.0807722f, 0.0113436f, 0.0468139f, 0.0158019f, -0.14254f, -0.0783664f, 0.0728044f, 0.0569418f, -0.221066f, -0.198807f, 0.0165205f, 0.043379f, -0.0684539f, 0.0265973f, -0.0654936f, -0.0374585f, -0.0355225f, 0.205866f, -0.117319f, 0.160034f, -0.0336023f, -0.0490863f, -0.235514f, -0.161706f, -0.0511305f, -0.159514f, -0.0163084f, 0.167757f, -0.0221781f, -0.0469441f, 0.188373f, -0.244422f, -0.222119f, 0.0938521f, -0.230704f, -0.103007f, -0.179313f, 0.0894044f, 0.139758f, -0.0252922f, -0.203345f, 0.0382881f, -0.201337f, -0.0364941f, -0.0519142f, 0.0107912f, 0.186702f, -0.142339f, 0.0116469f, -0.0391102f, 0.0142549f, -0.0136718f, -0.192897f, -0.0335531f, 0.0328664f, 0.0556287f, 0.227552f, 0.0228403f, 0.141429f, 0.230906f, 0.1641f, 0.171455f, -0.0577528f, -0.0079223f, 0.178576f, -0.0664956f, 0.174705f, -0.00676902f, -0.0436302f, 0.0469704f, 0.15558f, 0.0504193f, -0.0748331f, -0.122326f, 0.0426079f, 0.168951f, -0.00887541f, -0.0104754f, 0.4092f, 0.0222114f, 0.00596186f, -0.0215243f, -0.00150738f, -0.168558f, 0.0849733f, 0.0835477f, 0.149545f, -0.124888f, -0.116073f, 0.0389559f, -0.10592f, -0.263385f, 0.204523f, 0.182876f, -0.155729f, -0.16432f, 0.087875f, -0.0114975f, -0.0820145f, 0.101154f, 0.0151071f, 0.108283f, 0.119597f, 0.13888f, -0.0491438f, -0.0815205f, 0.140984f, 0.0817463f, 0.402533f, -0.130941f, 0.0920964f, 0.102898f, 0.108337f, -0.163595f, -0.0859337f, 0.245134f, 0.0782419f, -0.131043f, 0.0876151f, -0.0742261f, 0.0102467f, -0.0197119f, -0.184008f, -0.135205f, 0.0663641f, -0.0120841f, -0.238571f, -0.0641746f, 0.0863488f, -0.112696f, -0.0212363f, -0.185557f, 0.0194749f, -0.0251602f, -0.0422626f, -0.0821575f, 0.0480661f, -0.163766f, 0.0341459f, -0.011502f, -0.128374f, -0.140804f, -0.0775339f, -0.17718f, -0.0789731f, -0.0784556f, -0.162247f, 0.0694861f, 0.0234584f, 0.0615093f, -0.0581038f, 0.0104427f, 0.0150873f, 0.0825013f, 0.233176f, -0.123686f, 0.15781f, -0.0949015f, 0.0304032f, -0.00418097f, -0.0709154f, -0.102892f, 0.121109f, -0.0315604f, -0.063207f, 0.253004f, -0.00310303f, 0.0518143f, -0.109249f, 0.0973294f, -0.0804255f, 0.0260768f, 0.141406f, 0.0531525f, 0.0133687f, -0.158031f, -0.126049f, 0.0114357f, -0.00160797f, 0.0625602f, -0.0487984f, 0.0966252f, -0.200322f, 0.121905f, 0.0332387f, 0.0993922f, -0.247088f, 0.171595f, -0.111991f, -0.271482f, -0.167184f, 0.253819f, 0.0623897f, -0.0965568f, -0.043803f, -0.214052f, -0.0788811f, -0.00240649f, 0.101255f, 0.193079f, 0.23233f, -0.166212f, -0.0662684f, 0.094654f, -0.078202f, -0.00354183f, 0.100082f, 0.0242285f, -0.0329679f, 0.090927f, 0.0104638f, 0.279761f, 0.0645642f, 0.0238642f, -0.116803f, 0.162689f, -0.0927977f, 0.190008f, 0.0240599f, -0.228022f, -0.0813478f, -0.225308f, -0.0596588f, -0.121826f, -0.0250474f, -0.0328607f, 0.214308f, 0.124098f, 0.112535f, 0.0114956f, -0.0595554f, -0.231565f, 0.115131f, -0.150236f, -0.175897f, 0.121548f, 0.152769f, 0.0457865f, -0.102063f, -0.0108369f, 0.0133608f, -0.0515594f, -0.151945f, -0.0115892f, -0.0902452f, -0.125187f, 0.0237751f, -0.132082f, -0.0403699f, 0.206177f, -0.203259f, 0.0147909f, 0.24582f, 0.197511f, 0.288718f, -0.152642f, -0.0812306f, -0.138491f, 0.13898f, 0.00695202f, 0.0792434f, -0.0156941f, -0.0325398f, -0.0938532f, -0.0328464f, 0.133352f, -0.00756848f, -0.0772858f, -0.184222f, 0.040775f, 0.0523509f, 0.182398f, -0.379148f, -0.0645128f, 0.152717f, -0.406466f, 0.177769f, -0.0697569f, -0.237746f, 0.0625669f, 0.0113734f, -0.0165576f, 0.238743f, 0.190937f, -0.0502984f, -0.0126081f, -0.0718044f, 0.0789265f, -0.283942f, 0.370147f, 0.00987145f, 0.042626f, -0.0414393f, -0.0227553f, -0.00387476f, -0.0432974f, 0.111107f, -0.0554144f, 0.112782f, -0.133905f, 0.139084f, 0.137674f, 0.154847f, 0.0361628f, -0.0422319f, -0.223914f, -0.0315037f, -0.00275451f, -0.0930266f, -0.105293f, -0.215219f, -0.0898848f, 0.170625f, -0.00301622f, -0.0841926f, 0.0700197f, -0.111112f, -0.0438741f, -0.13358f, -0.0468616f, -0.140217f, -0.171581f, 0.0189692f, 0.0100881f, -0.123781f, -0.129582f, 0.0601542f, 0.129146f, 0.0216546f, -0.168139f, 0.0918729f, 0.322079f, 0.133114f, -0.0253299f, 0.107586f, -0.203077f, -0.0748277f, 0.252041f, 0.0633792f, 0.0168529f, -0.130707f, -0.195784f, -0.0962361f, -0.00524936f, 0.0787621f, 0.144769f, -0.119737f, -0.0747133f, 0.109965f, -0.0462987f, -0.221874f, -0.186032f, 0.0121311f, -0.0213133f, 0.0590962f, 0.0209995f, 0.0409006f, 0.195907f, -0.0133827f, 0.0224126f, -0.0849057f, 0.174943f, -0.183828f, 0.0415361f, -0.0965415f, -0.0276034f, 0.0697598f, 0.078172f, -0.0131375f, -0.0389183f, -0.109897f, 0.219362f, -0.214332f, 0.158592f, -0.022484f, 0.144066f, 0.0989377f, -0.253354f, 0.0420252f, 0.0573651f, 0.363852f, -0.125633f, 0.217676f, 0.0269909f, 0.124191f, 0.0933362f, -0.0757748f, 0.108031f, 0.150415f, -0.0778956f, -0.107148f, -0.0937799f, 0.168163f, -0.0701003f, -0.112103f, 0.129064f, -0.0795039f, -0.00514682f, -0.0588753f, 0.0281293f, 0.0965556f, 0.0428199f, -0.120442f, 0.0670398f, -0.0241838f, 0.14245f, -0.0589826f, 0.099836f, -0.144418f, 0.0497668f, -0.122555f, 0.151485f, 0.022119f, -0.114282f, -0.0554246f, -0.199168f, 0.0723198f, 0.0609998f, 0.10146f, 0.0674357f, 0.15293f, 0.0934101f, 0.0141637f, -0.0795201f, 0.027381f, 0.219385f, -0.136511f, 0.134182f, -0.12711f, 0.123397f, 0.0525991f, 0.138f, 0.0157929f, -0.0333859f, 0.179212f, 0.100714f, 0.14351f, 0.0332695f, -0.0259377f, -0.0177692f, 0.295058f, -0.107898f, 0.0220822f, -0.0229936f, -0.124161f, 0.261814f, -0.067047f, -0.0454134f, -0.00275927f, -0.107132f, -0.0701007f, 0.155889f, -0.296932f, -0.0742993f, -0.00670278f, 0.0340998f, -0.00617127f, -0.133205f, 0.0368543f, 0.0936736f, 0.0490863f, -0.0712027f, 0.0300496f, 0.145961f, -0.110326f, -0.164224f, 0.142627f, -0.270489f, 0.137933f, -0.084262f, -0.0249233f, -0.166751f, 0.136642f, -0.104848f, 0.148028f, 0.240127f, -0.0057427f, 0.0772271f, 0.156407f, -0.238939f, -0.152731f, -0.01784f, -0.0921454f, 0.0822894f, 0.0159134f, 0.0859036f, 0.06662f, 0.0170005f, 0.192223f, -0.166858f, 0.0163677f, -0.0276745f, -0.0647404f, -0.00263531f, -0.0343093f, 0.0599665f, -0.0487674f, 0.135332f, -0.0712847f, 0.121714f, -0.051333f, 0.20299f, -0.115075f, -0.295389f, -0.0764451f, -0.102148f, -0.141244f, 0.00462396f, -0.123474f, -0.00450355f, 0.141595f, -0.0286987f, 0.10373f, 0.016817f, 0.0586794f, -0.0850479f, 0.300585f, 0.0598063f, 0.249288f, -0.100817f, -0.116057f, 0.0282856f, -0.202129f, 0.0583255f, -0.0777313f, -0.195266f, 0.176731f, -0.141533f, 0.023898f, 0.15502f, -0.122961f, -0.000445127f, -0.101662f, 0.202107f, -0.0864959f, 0.0341756f, 0.186172f, 0.135011f, 0.0258986f, 0.0437675f, -0.160713f, 0.142788f, 0.180236f, -0.0637706f, -0.00849834f, 0.0201353f, -0.0629956f, -0.120933f, 0.0643182f, -0.0371202f, -0.197714f, -0.0582303f, -0.0400267f, -0.0127082f, -0.0452049f, -0.0926198f, -0.0353615f, 0.116093f, -0.112345f, -0.0141346f, 0.121879f, -0.129462f, 0.035214f, 0.0798101f, 0.100199f, -0.137086f, -0.0241102f, 0.173357f, -0.132799f, 0.0977875f, 0.0928609f, -0.293085f, -0.0489037f, -0.154407f, -0.0992825f, 0.190697f, -0.172977f, -0.145834f, -0.0704249f, -0.134932f, 0.139507f, 0.255786f, 0.107853f, -0.112439f, 0.180393f, 0.219105f, -0.247256f, 0.0746452f, -0.156468f, -0.0211741f, 0.124411f, -0.12922f, -0.172282f, -0.030736f, -0.0941285f, -0.017012f, -0.0886889f, -0.0635434f, -0.130207f, -0.0531958f, -0.072763f, -0.187554f, -0.0591383f, -0.2439f, 0.0824466f, -0.184328f, -0.132618f, 0.015123f, -0.168866f, -0.0845322f, -0.0417741f, 0.0290066f, -0.0841339f, -0.0131412f, 0.0604159f, 0.0012818f, -0.038252f, 0.0906791f, 0.0805153f, -0.0256678f, 0.0188034f, 0.0457356f, 0.081937f, 0.219474f, 0.052539f, -0.0859845f, -0.0453515f, 0.0253345f, -0.0710474f, -0.067783f, -0.0390709f, -0.197052f, -0.000185782f, -0.0855716f, -0.0409628f, 0.0881815f, -0.135496f, -0.13855f, -0.0805277f, -0.0373707f, 0.0531982f, 0.140134f, -0.200863f, 0.142769f, 0.0131804f, -0.118615f, 0.054694f, -0.0709905f, 0.231273f, 0.0604598f, -0.058949f, 0.122411f, 0.0201574f, 0.00697552f, -0.124359f, -0.0906115f, 0.0691409f, 0.0831779f, 0.0972403f, -0.09215f, 0.0869448f, 0.132809f, 0.1855f, 0.221115f, 0.00363859f, -0.0524385f, -0.0121825f, -0.092148f, 0.047678f, -0.0226368f, 0.143866f, 0.134924f, 0.0662668f, 0.0822815f, -0.0710086f, 0.13143f, -0.0977136f, 0.0952968f, -0.0340591f, 0.104357f, -0.0207533f, -0.202592f, -0.179783f, 0.00970717f, -0.098478f, 0.119008f, 0.025745f, -0.13412f, -0.136674f, -0.0603386f, -0.0639751f, 0.0590819f, 0.00722687f, -0.0377015f, -0.0978273f, -0.00684323f, 0.0343217f, 0.0317158f, -0.00965797f, 0.147348f, 0.0306197f, -0.0318769f, 0.0791505f, 0.0254346f, -0.0688612f, -0.0609533f, 0.0201862f, 0.0302409f, 0.0161282f, -0.092738f, 0.309054f, 0.127645f, 0.0297889f, 0.0379622f, -0.0139458f, -0.0254052f, 0.0810978f, -0.0216457f, 0.0495567f, -0.0353222f, -0.0196061f, 0.0500018f, 0.0513592f, -0.0839173f, -0.191604f, 0.0856944f, -0.00362945f, 0.113996f, 0.168582f, -0.11245f, -0.0545608f, 0.217013f, -0.0880429f, 0.104478f, 0.0868651f, -0.13262f, 0.0847327f, 0.187663f, 0.0556564f, 0.114756f, 0.044326f, -0.0670334f, -0.047858f, -0.0580794f, 0.0249935f, 0.0990085f, -0.0171371f, -0.00451154f, 0.0800724f, -0.191424f, -0.0087447f, -0.07363f, 0.0671029f, 0.0534213f, 0.170269f, -0.0693179f, -0.0210089f, -0.0327908f, -0.0396615f, -0.0694722f, -0.0866172f, 0.0232876f, -0.182936f, -0.0868934f, -0.00204681f, 0.233132f, 0.0542737f, -0.0372251f, 0.0430114f, -0.0177416f, -0.0430498f, -0.0977458f, -0.097506f, 0.054162f, 0.149832f, -0.0762441f, -0.0929086f, -0.140773f, -0.0761883f, 0.0381338f, 0.162009f, -0.0626901f, 0.131476f, 0.0048326f, 0.00666257f, 0.0237478f, -0.0088115f, 0.00190548f, -0.102885f, 0.118136f, -0.265028f, -0.0893873f, -0.242253f, -0.307967f, 0.0281497f, -0.180656f, 0.0336843f, -0.0342361f, -0.138446f, 0.0138083f, -0.026899f, 0.117654f, 0.164769f, -0.0404746f, -0.245169f, -0.0459455f, -0.0920438f, 0.0325979f, 0.0133373f, 0.0520226f, 0.131615f, -0.0148675f, -0.0473178f, 0.0588608f, -0.0577714f, -0.132127f, -0.0853318f, 0.193728f, 0.169465f, 0.112038f, -0.014055f, -0.103835f, 0.215144f, -0.0927962f, -0.0496659f, -0.0326868f, 0.0935193f, -0.116845f, 0.0479472f, -0.0141359f, 0.104616f, -0.0324158f, 0.0892814f, -0.316715f, -0.170321f, -0.0404995f, -0.0218241f, 0.00247018f, -0.114765f, 0.171065f, -0.0263141f, -0.0593225f, -0.0718916f, 0.0140746f, -0.0394687f, -0.0374259f, -0.0981346f, -0.0634255f, 0.130142f, -0.051521f, 0.0775258f, -0.00812633f, -0.119646f, 0.142518f, 0.139868f, 0.00661674f, -0.0802772f, 0.0136775f, 0.0444826f, -0.111565f, -0.0253988f, -0.0310994f, 0.02995f, -0.200687f, -0.161925f, -0.0273717f, 0.0508769f, -0.0571099f, -0.083545f, -0.175296f, 0.0119524f, 0.192249f, 0.0878149f, 0.172193f, 0.122751f, -0.212669f, -0.24312f, -0.0221087f, -0.0107598f, 0.284282f, 0.036577f, 0.0708189f, -0.170317f, -0.083086f, 0.0900201f, -0.0746669f, -0.048498f, 0.0377271f, -0.0867779f, -0.10316f, -0.088662f, 0.00221775f, 0.0302838f, -0.108555f, -0.0577597f, 0.117163f, -0.0256449f, -0.0706756f, 0.133557f, -0.161821f, 0.245418f, 0.00852618f, 0.0695349f, -0.0554915f, -0.258638f, -0.0120095f, 0.00482609f, -0.12828f, 0.280944f, 0.186466f, 0.0891361f, -0.350661f, 0.118649f, 0.10886f, -0.0642715f, 0.0501067f, 0.220648f, -0.00394587f, -0.0954817f, 0.0906447f, 0.0721119f, 0.20434f, 0.0832669f, -0.0141759f, 0.131492f, -0.125086f, -0.0024438f, 0.141112f, 0.21155f, -0.0330277f, -0.0310205f, 0.0972063f, 0.00430506f, 0.0261058f, 0.000334924f, -0.00348311f, 0.0317818f, 0.0155178f, 0.104793f, 0.0070726f, -0.0435215f, -0.0409853f, -0.00548535f, 0.0759512f, 0.0810721f, -0.23261f, -0.212132f, -0.0553373f, 0.265533f, -0.224418f, 0.141883f, -0.0192186f, -0.131239f, -0.00985394f, 0.104011f, 0.0436406f, 0.082436f, 0.0316317f, -0.00934507f, 0.0487261f, 0.0106413f, -0.108931f, -0.0212009f, -0.129351f, -0.0163451f, 0.0851496f, 0.103055f, 0.163391f, -0.0840725f, 0.0329114f, 0.0363725f, 0.0374686f, -0.082808f, 0.111492f, -0.0649298f, -0.143802f, -0.0290463f, -0.0148513f, -0.00191804f, 0.0520513f, -0.0758965f, -0.110495f, 0.220265f, -0.155656f, 0.111966f, 0.0367597f, -0.128726f, 0.0477349f, -0.174861f, -0.152714f, 0.103269f, -0.13097f, 0.0339843f, -0.14827f, -0.115561f, -0.0415195f, -0.202793f, 0.113747f, -0.0392468f, 0.178419f, -0.0760396f, -0.00780116f, 0.121478f, -0.136616f, 0.0370688f, 0.0638739f, -0.0320419f, -0.045296f, -0.0847989f, -0.0244215f, -0.0684523f, -0.129529f, -0.0684325f, -0.136462f, 0.0798929f, -0.0245593f, 0.0758299f, 0.0918566f, 0.0593196f, -0.18687f, -0.138478f, -0.00498593f, 0.281101f, -0.0934104f, 0.142198f, 0.0282747f, 0.0662623f, 0.132896f, -0.093357f, 0.207477f, 0.133096f, -0.116028f, -0.0335329f, -0.000126415f, -0.133442f, 0.0210034f, -0.134375f, -0.0873112f, 0.20569f, -0.213689f, 0.033495f, -0.0869857f, 0.0667289f, -0.126008f, -0.0540207f, 0.118484f, -0.00108677f, -0.122356f, 0.180387f, 0.0337284f, -0.0181199f, -0.0947591f, -0.0160765f, 0.0186584f, -0.100007f, -0.191905f, -0.0416818f, -0.0865475f, 0.23562f, -0.0756996f, -0.177554f, 0.0112055f, 0.0195314f, 0.0814079f, 0.103461f, -0.214135f, -0.15756f, 0.0512642f, -0.18118f, -0.0886646f, -0.0335615f, -0.1427f, 0.0372878f, -0.0783177f, 0.0730051f, 0.000314256f, -0.139385f, -0.0681984f, 0.00135434f, -0.0506471f, 0.113688f, 0.0685058f, -0.0992231f, -0.0829875f, -0.063166f, -0.0828829f, -0.122379f, -0.246719f, 0.0388746f, -0.181893f, -0.075881f, 0.0380913f, 0.00378035f, -0.0130139f, 0.03299f, 0.0488968f, -0.0147107f, 0.068114f, 0.00838763f, -0.0891802f, 0.0524117f, -0.156442f, 0.0247317f, -0.132847f, 0.0630776f, -0.049079f, 0.247987f, -0.0428303f, -0.0331834f, -0.19369f, -0.0012336f, 0.118839f, -0.116693f, -0.0541087f, -0.00568843f, 0.120751f, -0.00992649f, 0.104202f, 0.121356f, 0.00496952f, -0.0814337f, -0.18266f, -0.10418f, -0.109746f, -0.00884825f, 0.231901f, 0.181485f, -0.0528389f, 0.0807834f, 0.0122595f, 0.0123447f, 0.0154396f, -0.0741758f, 0.161932f, -0.0443555f, -0.0838722f, 0.163636f, 0.0584757f, -0.0984075f, -0.0122865f, 0.0975169f, -0.147459f, -0.071057f, -0.0923475f, 0.130513f, -0.0953139f, -0.00713966f, -0.0103096f, 0.145924f, -0.0145633f, -0.213804f, 0.00609361f, -0.0843165f, -0.0512475f, -0.126392f, -0.0523774f, -0.180639f, -4.00177e-05f, -0.0494302f, 0.0719161f, 0.0844144f, -0.0738461f, 0.190639f, 0.0463167f, -0.163197f, -0.0173909f, -0.0699043f, 0.0762336f, -0.201759f, 0.105285f, -0.0365266f, 0.0898598f, 0.0603571f, 0.120488f, 0.0920998f, -0.0386808f, -0.0948623f, 0.171766f, 0.277991f, -0.04457f, -0.0281013f, 0.219207f, 0.112512f, -0.0543261f, -0.0869038f, -0.0040024f, 0.273078f, -0.0249307f, -0.0590465f, 0.105417f, 0.102052f, -0.0694234f, 0.0882415f, -0.0890629f, 0.109606f, -0.0340665f, 0.188564f, -0.0623034f, -0.0254567f, -0.0804707f, 0.0329007f, 0.0300804f, 0.185748f, -0.125483f, 0.00690707f, -0.0388258f, -0.0307045f, 0.0514741f, -0.0623259f, 0.0119962f, 0.04137f, -0.203944f, -0.0396075f, -0.233556f, -0.145993f, 0.126983f, 0.140825f, -0.0618115f, -0.0502833f, 0.0777282f, 0.0404357f, -0.0594266f, 0.00131402f, 0.0832237f, -0.142782f, -0.0506333f, 0.0539742f, -0.0621177f, -0.21219f, 0.131873f, 0.086103f, -0.205144f, -0.166803f, 0.123788f, -0.0948009f, -0.245768f, 0.0307416f, -0.0511047f, -0.206951f, -0.022106f, -0.199702f, -0.0679579f, 0.0715f, 0.0450989f, 0.0702956f, -0.162816f, -0.111349f, -0.0146996f, -0.00114306f, 0.0145468f, 0.0189125f, 0.0848262f, -0.190641f, 0.0156558f, -0.185864f, 0.0854795f, -0.0322499f, -0.107084f, -0.125933f, -0.0732241f, -0.0561387f, -0.116464f, -0.0524306f, 0.0251268f, 0.0468314f, 0.0372864f, -0.0734524f, 0.125125f, -0.0587485f, 0.076849f, 0.0331419f, -0.102139f, -0.0544558f, -0.128039f, 0.092079f, 0.0490641f, -0.11544f, -0.189464f, -0.0656321f, 0.103955f, 0.00142122f, 0.124106f, -0.0759464f, -0.0399936f, -0.169339f, 0.0335476f, -0.115836f, -0.014281f, 0.0493191f, -0.125868f, 0.0874941f, 0.204933f, 0.204776f, 0.108044f, 0.0622227f, -0.0383418f, -0.127625f, -0.0790735f, -0.158937f, 0.0472291f, 0.147408f, 0.0378936f, 0.00270391f, -0.150557f, 0.0104797f, 0.0358107f, 0.025308f, -0.112183f, 0.0248179f, 0.0167803f, 0.146799f, -0.0548491f, 0.211056f, -0.221245f, 0.119195f, 0.0228883f, 0.0878717f, -0.0681443f, -0.10978f, -0.0604567f, 0.060328f, 0.22788f, -0.0281704f, -0.0430839f, -0.0245067f, 0.0552584f, -0.106454f, 0.00669421f, 0.137727f, 0.00557834f, -0.056555f, 0.101819f, 0.186204f, 0.142322f, 0.0350843f, 0.0399174f, -0.203484f, -0.0854205f, 0.16015f, -0.0333517f, 0.248677f, -0.051179f, 0.113665f, 0.00660695f, -0.206054f, -0.00560627f, -0.196583f, 0.126673f, 0.116458f, 0.0546093f, -0.0525019f, -0.0711659f, 0.149177f, -0.0293999f, 0.0571458f, 0.159095f, 0.16687f, 0.0781164f, -0.0319873f, -0.0396719f, -0.0581299f, 0.0453843f, -0.0898538f, 0.108568f, 0.0791605f, 0.130488f, -0.150389f, 0.00345271f, -0.136816f, 0.206864f, -0.149979f, -0.194251f, 0.118776f, 0.0705309f, -0.0122562f, 0.00198134f, 0.134897f, 0.317873f, -0.0387158f, -0.123969f, 0.0888865f, 0.180172f, 0.0552694f, 0.0437862f, 0.0987677f, -0.203859f, 0.10809f, -0.101977f, 0.14697f, 0.163742f, -0.209347f, 0.22542f, 0.226002f, -0.145534f, 0.0620206f, 0.307485f, -0.107192f, -0.0196315f, 0.0323546f, -0.0389614f, -0.125344f, -0.0223445f, 0.231094f, 0.0202323f, -0.0625594f, -0.0301626f, -0.0587933f, -0.0427447f, -0.138401f, -0.0751604f, -0.211474f, -0.252751f, 0.125032f, -0.0384722f, 0.0240905f, -0.00426011f, -0.0181891f, 0.0257581f, 0.045675f, -0.0199347f, -0.0793348f, 0.197822f, 0.0411504f, -0.0709895f, -0.00852819f, -0.0651964f, -0.0542225f, -0.162067f, -0.0821921f, 0.152079f, 0.10723f, 0.173969f, -0.27477f, -0.0414729f, 0.0721268f, 0.0658214f, 0.208454f, 0.0335373f, -0.116441f, -0.0744124f, 0.163727f, 0.203345f, 0.0278069f, 0.0845419f, 0.0835499f, -0.0705311f, -0.0968129f, -0.19487f, 0.211242f, 0.0715393f, -0.0304682f, 0.247553f, 0.0116998f, 0.0345318f, -0.0512343f, -0.152861f, 0.226138f, 0.0290822f, 0.215118f, -0.140782f, 0.121253f, 0.154864f, 0.138494f, 0.130253f, 0.0775465f, 0.0183418f, -0.00876068f, 0.0855118f, -0.0769588f, 0.0598746f, 0.0795286f, 0.0337264f, -0.0506254f, 0.0263225f, 0.139853f, 0.0875815f, -0.225635f, -0.0150251f, 0.13365f, 0.140236f, -0.192831f, 0.0835753f, 0.0880508f, 0.124333f, 0.172423f, -0.0428863f, -0.0208882f, 0.00825324f, -0.146846f, 0.258136f, -0.167032f, -0.0561354f, -0.0870873f, 0.0204337f, -0.105196f, 0.072395f, 0.22293f, -0.108991f, -0.100299f, -0.0796716f, 0.190567f, -0.215973f, 0.0551725f, -0.0650051f, 0.0562762f, -0.00961007f, 0.0456712f, 0.098333f, -0.201151f, -0.166577f, 0.0253051f, 0.151236f, 0.0120538f, 0.0451528f, -0.209638f, 0.0819228f, 0.0407554f, 0.124648f, 0.143388f, -0.0484168f, 0.0381076f, -0.0142431f, 0.0246808f, -0.0830403f, -0.238581f, -0.0383973f, 0.17038f, -0.012257f, -0.060648f, -0.0622605f, -0.059426f, -0.153853f, -0.130261f, 0.0816513f, 0.030025f, -0.134556f, -0.0481215f, -0.0378222f, -0.133593f, -0.0379211f, -0.158045f, -0.0226384f, -0.00572758f, 0.074853f, -0.0951392f, 0.0257044f, -0.137627f, -0.0314778f, 0.0849743f, -0.122927f, 0.0666558f, -0.137777f, 0.00170929f, 0.132666f, 0.37956f, 0.0266f, -0.0133333f, -0.0488079f, -0.105613f, -0.0629708f, 0.0575456f, -0.0880797f, -0.11669f, -0.162654f, -0.248524f, -0.181226f, 0.320904f, -0.020212f, -0.120116f, -0.155141f, -0.0472368f, -0.0793323f, -0.0607878f, -0.204043f, 0.0311316f, -0.0199528f, 0.0567435f, 0.148293f, 0.102502f, 0.095626f, -0.0314117f, 0.1141f, -0.112346f, 0.0541028f, -0.017825f, -0.0143884f, -0.25706f, -0.0774784f, -0.098594f, 0.090054f, -0.129305f, -0.0162615f, -0.0272403f, -0.0470668f, 0.0268821f, -0.00515814f, 0.0711422f, 0.123805f, 0.0693719f, -0.0967682f, 0.313259f, -0.0333635f, 0.120181f, -0.0717595f, -0.00552246f, 0.0265478f, 0.00239125f, -0.0189893f, -0.177504f, 0.0135765f, 0.0579697f, 0.000292991f, -0.0042544f, 0.0371353f, 0.0650875f, 0.0384406f, -0.184389f, 0.0853138f, 0.0468196f, -0.248459f, -0.000661883f, 0.0764842f, -0.109121f, -0.0202005f, -0.149887f, 0.0427078f, -0.00143086f, -0.0255247f, -0.197424f, 0.0695612f, 0.0591962f, -0.128664f, -0.0936435f, -0.0492177f, -0.0729409f, -0.00832965f, -0.0883277f, -0.0382082f, 0.0726572f, -0.0262116f, -0.121641f, -0.0247429f, 0.238202f, 0.0994194f, -0.129079f, 0.241893f, -0.0692327f, -0.0389585f, -0.111478f, 0.0638517f, 0.1125f, -0.0248642f, 0.191752f, 0.0671649f, 0.0246795f, -0.0146338f, -0.111786f, -0.15721f, -0.111784f, 0.0493152f, -0.113418f, 0.155555f, -0.0441583f, -0.0221688f, 0.109099f, 0.117927f, 0.0975067f, 0.240011f, -0.173625f, -0.168771f, 0.169637f, -0.0230579f, -0.113938f, 0.0480843f, 0.152474f, -0.101004f, -0.0168348f, -0.0359538f, 0.0271355f, -0.0563182f, -0.129406f, -0.0611938f, 0.136024f, 0.0758748f, -0.101391f, -0.0100076f, 0.0546772f, 0.11757f, -0.276434f, -0.0437577f, 0.0548839f, -0.158234f, -0.0704253f, -0.181014f, -0.0960911f, -0.0574161f, 0.102882f, 0.0510386f, -0.0725077f, -0.0539722f, -0.0615725f, -0.137709f, -0.239202f, 0.294011f, -0.0239276f, 0.022841f, -0.0675136f, 0.0524658f, -0.260166f, 0.213349f, -0.12541f, -0.0859568f, -0.116914f, 0.0665262f, -0.13387f, 0.011586f, -0.118338f, 0.100881f, 0.0524632f, -0.0278989f, 0.026872f, -0.0601054f, -0.0582767f, 0.119675f, -0.306548f, 0.107415f, -0.261025f, -0.0945583f, 0.0592492f, -0.337394f, -0.144573f, 0.318536f, 0.12706f, -0.0555753f, 0.0866904f, -0.1776f, -0.214723f, -0.0741453f, 0.196601f, 0.0400608f, -0.174516f, 0.0806414f, 0.0117968f, -0.198012f, -0.142405f, -0.00145463f, -0.233607f, -0.0478751f, -0.117256f, 0.0774815f, 0.0711553f, 0.0985456f, -0.056357f, 0.109433f, -0.201368f, 0.0600491f, -0.148473f, -0.178478f, 0.140186f, 0.257117f, 0.163593f, 0.0135596f, -0.0930734f, -0.078492f, -0.145824f, -0.0315876f, -0.21187f, -0.07986f, 0.0913977f, -0.229473f, -0.113316f, 0.152857f, -0.0430762f, 0.0380018f, 0.0557647f, -0.233387f, 0.0667658f, 0.159418f, 0.0762982f, 0.0492689f, -0.0522863f, -0.163715f, 0.0528343f, 0.00632324f, -0.0149997f, -0.0220881f, 0.255452f, -0.108292f, 0.299563f, -0.0133117f, 0.237214f, 0.0808976f, -0.0343503f, -0.180219f, -0.114327f, -0.190966f, -0.118383f, -0.0989818f, 0.122253f, 0.085922f, 0.17602f, -0.104982f, -0.143598f, -0.0389598f, 0.0549028f, 0.14489f, 0.143877f, 0.236796f, 0.225717f, -0.407218f, -0.190817f, -0.0829787f, -0.254574f, 0.197053f, 0.206266f, -0.0286281f, -0.255729f, 0.194149f, -0.0071821f, -0.0805706f, -0.0267723f, 0.0571294f, 0.1577f, -0.0588524f, -0.12512f, -0.0225048f, 0.0552808f, 0.00449528f, 0.232911f, -0.0808589f, 0.0592191f, 0.024688f, -0.0151915f, 0.13063f, -0.0784453f, -0.0390614f, 0.0815824f, -0.0536467f, 0.0387759f, 0.035878f, 0.0289566f, -0.0285461f, 0.00231399f, 0.0876901f, -0.0668325f, 0.0199796f, 0.0260771f, -0.178934f, 0.0736062f, 0.111527f, -0.0268786f, 0.20855f, -0.0885289f, -0.00313542f, 0.0310495f, 0.0679031f, 0.0176381f, -0.120465f, 0.124164f, -0.0244622f, 0.105084f, -0.0906444f, 0.116082f, -0.057292f, 0.155184f, -0.00687444f, -0.0522558f, -0.145999f, 0.0819421f, -0.017441f, 0.132082f, 0.0503942f, -0.0796991f, 0.0259194f, -0.0628898f, 0.0139093f, 0.0448315f, 0.229562f, 0.14305f, 0.0819974f, -0.150425f, 0.0272608f, -0.106266f, 0.0128856f, -0.0447453f, -0.103401f, -0.0362339f, -0.136026f, 0.001763f, 0.0158583f, 0.0292589f, -0.0083097f, 0.128747f, 0.0304046f, -0.200219f, -0.130123f, 0.0432976f, -0.00665083f, -0.0766868f, -0.15968f, -0.220196f, -0.0428214f, -0.0328094f, -0.0470289f, -0.102818f, 0.0707216f, -0.0631597f, 0.172616f, 0.0337132f, -0.128778f, -0.0262062f, -0.17767f, -0.158488f, 0.0302946f, -0.00777719f, 0.130049f, 0.134122f, -0.0517153f, -0.0575831f, -0.0303365f, 0.149159f, -0.167262f, -0.0174735f, -0.195999f, -0.225549f, 0.0413536f, 0.046851f, 0.0483783f, 0.0764571f, -0.156798f, 0.0820419f, 0.119214f, 0.0740297f, 0.0060036f, -0.095459f, 0.164968f, -0.0549715f, -0.139331f, 0.0870768f, -0.019343f, 0.0117494f, -0.115732f, 0.113334f, -0.0118045f, 0.0514563f, -0.011066f, -0.0142802f, -0.0319034f, 0.048933f, 0.127312f, 0.0384639f, -0.0196872f, -0.13712f, -0.00325855f, -0.0652176f, 0.112447f, 0.204267f, -0.0322322f, 0.075176f, 0.0230896f, -0.0729536f, 0.0309734f, -0.0719224f, -0.034151f, 0.102817f, -0.135529f, -0.0836227f, -0.0908448f, -0.11799f, -0.0293317f, -0.163267f, 0.0113462f, -0.0330998f, 0.0217646f, 0.110115f, -0.0754697f, 0.0548264f, 0.0481341f, -0.117987f, 0.00386464f, 0.0693633f, 0.063561f, 0.0536491f, 0.0750399f, 0.0989413f, -0.203889f, 0.169925f, -0.010273f, 0.0272266f, -0.0917514f, 0.0408084f, -0.122351f, -0.0226766f, -0.0630059f, -0.0735811f, 0.0395158f, 0.130699f, 0.0169628f, -0.134227f, -0.0355556f, -0.00731831f, 0.0782381f, -0.0668297f, 0.150392f, -0.0466923f, 0.0844855f, 0.118271f, -0.0952122f, 0.277312f, 0.0590226f, -0.0908175f, -0.0124234f, 0.0276244f, -0.128816f, -0.0424766f, 0.176822f, -0.0605873f, -0.198654f, -0.0631666f, 0.0747111f, -0.179106f, 0.0281945f, 0.06726f, 0.0536451f, 0.0507462f, -0.21326f, -0.0478382f, 0.131071f, 0.155878f, -0.0774896f, 0.0157737f, -0.0203126f, 0.00267006f, -0.130178f, -0.040555f, -0.0237974f, -0.0714839f, 9.57668e-05f, 0.112896f, 0.0464702f, -0.0396539f, -0.0770299f, 0.00668861f, 0.0862907f, -0.0323896f, 0.0287067f, -0.0168806f, -0.175438f, -0.0623945f, 0.10349f, 0.0230732f, -0.0892896f, -0.0155484f, 0.0361615f, 0.0644915f, -0.0189325f, -0.175908f, -0.0613383f, -0.0166167f, -0.00581144f, 0.0644361f, 0.0682232f, 0.0313409f, -0.0661999f, -0.0193981f, -0.19816f, 0.277753f, 0.0178465f, -0.0549772f, -0.114315f, -0.157114f, -0.0165255f, 0.259682f, -0.14101f, -0.149587f, -0.00937406f, -0.22745f, 0.0627616f, 0.01386f, -0.0219368f, -0.203307f, 0.0273463f, -0.101089f, 0.0384558f, 0.125093f, -0.171255f, -0.0368217f, -0.083789f, -0.0820183f, 0.20587f, 0.0503915f, 0.052501f, -0.045508f, -0.142668f, 0.139177f, -0.0937832f, 0.0243731f, -0.175018f, -0.152214f, 0.139823f, -0.0641826f, 0.0976551f, 0.087964f, -0.00339659f, 0.0221555f, 0.0210038f, -0.0295112f, 0.341439f, 0.0166395f, -0.0261652f, -0.141791f, 0.0888127f, 0.133198f, 0.227569f, 0.12871f, -0.00862417f, -0.128217f, -0.178153f, -0.0469181f, -0.159916f, 0.0721124f, 0.156197f, -0.110048f, 0.0347137f, -0.218616f, -0.0111531f, -0.0915696f, -0.0512099f, 0.0661128f, 0.172619f, -0.239874f, 0.0968841f, 0.030443f, 0.0529872f, -0.091823f, 0.0183353f, -0.144991f, 0.145388f, -0.125422f, 0.052747f, 0.0458846f, 0.0388484f, 0.0276986f, -0.0371784f, 0.0165231f, 0.00878122f, 0.000202298f, -0.0985091f, -0.128042f, 0.0226398f, -0.206164f, 0.0961667f, -0.00656693f, 0.0578369f, 0.0174665f, 0.0940938f, -0.13338f, -0.155597f, -0.0583951f, -0.0825568f, -0.0343649f, 0.109029f, -0.172975f, 0.145448f, -0.0303416f, -0.0883612f, 0.102062f, 0.121856f, 0.0409692f, 0.0686176f, -0.0128777f, 0.0234371f, -0.113961f, -0.19116f, -0.018269f, -0.0559937f, -0.0971581f, -0.00979986f, 0.089138f, 0.0752047f, 0.136552f, -0.0740648f, -0.0175229f, 0.238096f, -0.199098f, -0.0358021f, 0.104531f, 0.112331f, 0.198518f, -0.165263f, -0.0565358f, 0.116056f, 0.19866f, -0.0967278f, -0.0454804f, 0.0761377f, 0.111324f, -0.0659671f, -0.0283584f, -0.0277462f, -0.145907f, -0.199666f, -0.0128277f, 0.132069f, -0.0397881f, -0.0653054f, -0.137086f, -0.0623724f, 0.0576567f, 0.085999f, -0.18748f, 0.157203f, 0.164314f, -0.0797855f, -0.0480075f, -0.0394349f, 0.0359187f, 0.111967f, -0.0673263f, -0.0104314f, 0.146625f, -0.0148276f, 0.151585f, -0.0101137f, 0.152493f, -0.154324f, -0.0872329f, 0.148204f, -0.0295525f, 0.0328908f, -0.0541283f, -0.0630429f, -0.0619181f, 0.052295f, 0.0847393f, 0.104536f, -0.0556167f, -0.0979436f, -0.0845333f, -0.053556f, 0.0218431f, 0.217199f, -0.0451202f, -0.0220605f, 0.0346379f, -0.052707f, 0.053503f, -0.000827278f, 0.146123f, -0.00102966f, 0.0279215f, 0.150342f, 0.125424f, 0.0142945f, -0.013236f, 0.0782394f, 0.0583871f, 0.0590876f, 0.00127168f, -0.132155f, 0.0326385f, 0.0149822f, 0.00796232f, -0.020028f, -0.102893f, -0.235161f, -0.0723414f, -0.0667291f, 0.0462945f, -0.0473567f, -0.16752f, 0.0556397f, -0.07353f, -0.0767573f, 0.200507f, 0.0155892f, -0.197827f, 0.0984903f, -0.0400699f, -0.0864724f, -0.13366f, 0.261813f, 0.0718265f, -0.184674f, 0.0948763f, -0.153321f, -0.0153032f, -0.0587719f, 0.117023f, -0.0652401f, 0.00257141f, 0.00428515f, 0.0823817f, -0.110228f, 0.0801701f, 0.0617526f, -0.0335591f, 0.0708861f, 0.15462f, 0.0860568f, 0.0517604f, -0.139429f, 0.12618f, -0.0632086f, -0.0880444f, 0.070629f, -0.119675f, -0.16086f, -0.113214f, 0.239505f, -0.0917358f, -0.00318168f, -0.252806f, -0.102856f, 0.00607284f, -0.172515f, -0.0393201f, 0.0941587f, 0.180868f, 0.0133103f, 0.0394352f, -0.0690734f, -0.0259229f, -0.0803729f, -0.158711f, -0.0147219f, 0.108443f, 0.185746f, -0.10979f, 0.0772051f, 0.0291784f, -0.0080068f, -0.154964f, 0.015858f, -0.121719f, -0.0310827f, -0.102783f, -0.0687658f, -0.0107129f, -0.0255654f, -0.0278975f, 0.122392f, -0.068837f, -0.0173221f, -0.0741707f, -0.000858351f, 0.0593414f, 0.10803f, -0.0850843f, 0.0925994f, 0.0365498f, 0.1255f, -0.109944f, 0.02208f, -0.132249f, 0.1046f, 0.0216816f, 0.0391734f, -0.008304f, 0.0497538f, -0.101569f, -0.254371f, 0.0356473f, -0.114984f, -0.0371237f, -0.0783222f, 0.00157596f, 0.0966248f, 0.0790255f, 0.244101f, -0.0822241f, -0.0522765f, 0.0531371f, 0.0347223f, 0.123614f, 0.0468085f, 0.0510337f, 0.222675f, -0.038868f, -0.139859f, -0.0113295f, 0.145149f, 0.221162f, 0.228843f, 0.128317f, -0.0124396f, -0.0157035f, -0.0526115f, -0.191908f, 0.153805f, -0.0141954f, -0.0522829f, 0.171504f, 0.123854f, -0.0925271f, 0.21095f, -0.0827264f, 0.0172759f, -0.0252449f, -0.129378f, 0.00443774f, -0.160938f, 0.105481f, 0.13534f, 0.00355659f, 0.145496f, -0.123379f, -0.0175244f, -0.12427f, 0.0015282f, 0.0101306f, -0.0344824f, -0.0531414f, 0.0933016f, 0.0125099f, 0.00376825f, 0.0638185f, -0.0949795f, -0.114357f, -0.0976824f, 0.0376493f, -0.0498671f, -0.100514f, -0.0594884f, -0.128794f, -0.0533632f, -0.0294516f, -0.0499521f, -0.091337f, 0.148683f, 0.107511f, -0.000468264f, 0.165295f, -0.0230211f, 0.108949f, -0.0779036f, 0.0559567f, 0.113318f, 0.00694789f, -0.0814404f, -0.0657221f, 0.080061f, 0.0568939f, 0.0677902f, -0.0133261f, -0.142915f, 0.122386f, 0.0441125f, 0.0741293f, -0.0678397f, -0.00912306f, -0.171159f, 0.000634986f, 0.00952656f, -0.133305f, -0.0320922f, -0.074885f, 0.000263863f, -0.0911682f, -0.0481083f, -0.221524f, -0.0844372f, -0.151319f, 0.142874f, -0.201277f, -0.0235556f, 0.0403526f, 0.128908f, -0.0693749f, -0.206061f, 0.249073f, -0.0941984f, 0.194027f, 0.0388104f, 0.195183f, 0.16735f, -0.0320085f, 0.0953254f, 0.0167841f, 0.162608f, -0.0874219f, -0.103275f, -0.105454f, -0.0860553f, -0.113651f, -0.0337751f, -0.0279642f, 0.0855731f, 0.30795f, -0.0553343f, -0.317791f, 0.00666912f, -0.173202f, 0.0147952f, -0.278206f, -0.0993713f, -0.04859f, 0.0201785f, 0.00111756f, -0.0211501f, -0.149003f, -0.00511864f, -0.187672f, -0.12401f, -0.02453f, 0.079887f, 0.270442f, 0.0104089f, 0.00990611f, -0.168645f, -0.0165361f, -0.0416449f, -0.143636f, -0.253266f, 0.120204f, -0.277875f, 0.0490458f, 0.0286577f, -0.0391378f, -0.116141f, 0.060701f, -0.144035f, -0.18377f, -0.000285051f, 0.0469952f, 0.219971f, -0.0191703f, 0.0443668f, 0.0122558f, 0.129617f, 0.0214268f, 0.151883f, -0.0481293f, 0.0207611f, 0.0766291f, 0.0678848f, 0.0278727f, -0.0854671f, -0.0563301f, -0.137504f, 0.067218f, 0.131001f, -0.177558f, 0.202687f, -0.176686f, 0.0244982f, 0.0350467f, 0.123616f, -0.0273273f, 0.301291f, 0.0323608f, 0.0246705f, -0.210995f, -0.101899f, -0.051361f, 0.0246548f, 0.236065f, -0.0349123f, -0.0529276f, 0.00460993f, -0.116629f, 0.222587f, 0.0934298f, -0.184424f, -0.13709f, -0.108954f, 0.127675f, 0.0112032f, 0.110687f, -0.161488f, -0.0329537f, -0.0345689f, 0.121043f, -0.0434627f, -0.193586f, 0.0883388f, 0.206195f, 0.0239155f, -0.0972509f, -0.0369521f, 0.0520358f, 0.210026f, -0.209281f, -0.103016f, -0.0884552f, -0.0107453f, -0.00806437f, 0.0968846f, -0.0679365f, -0.272885f, -0.0161036f, -0.0508337f, 0.0135399f, -0.0826584f, -0.124043f, 0.188631f, 0.133918f, 0.275548f, -0.190272f, -0.00856913f, 0.244048f, -0.0525777f, -0.229087f, -0.191039f, -0.0864813f, 0.181789f, 0.0865362f, 0.0913007f, -0.102785f, -0.0338967f, -0.00268786f, 0.184434f, -0.00782247f, 0.0155469f, 0.133996f, -0.162733f, 0.121046f, 0.193664f, -0.0575276f, 0.239472f, -0.0111944f, -0.0527833f, -0.128085f, -0.00794014f, -0.0442238f, 0.067919f, 0.106018f, 0.0142339f, -0.114857f, -0.103406f, 0.00263116f, -0.103086f, 0.161632f, -0.159274f, 0.0532023f, 0.0980155f, 0.0150571f, -0.103865f, -0.0454881f, 0.163974f, -0.0473247f, 0.179953f, 0.116341f, 0.0707406f, -0.131026f, -0.00838215f, -0.0860742f, 0.00744028f, -0.174512f, 0.127027f, 0.000388721f, 0.127764f, -0.155343f, 0.0154892f, -0.155749f, -0.0458582f, 0.116164f, 0.143932f, -0.0305507f, 0.00966465f, 0.0318456f, -0.084767f, 0.0820889f, 0.224057f, -0.126599f, 0.190526f, -0.0330095f, -0.0443292f, -0.334318f, -0.0500515f, -0.0108984f, 0.0279018f, 0.10127f, 0.0483084f, -0.0640303f, -0.0540412f, -0.241178f, 0.200509f, 0.0135285f, -0.0192372f, 0.0227597f, 0.182675f, 0.104735f, 0.0451803f, -0.0667325f, -0.0536017f, 0.114755f, -0.128937f, 0.0766177f, -0.179672f, -0.0618343f, 0.107308f, 0.00203581f, -0.226293f, -0.0192704f, -0.0203371f, -0.0981594f, 0.0449521f, -0.0493835f, 0.0340596f, 0.163458f, 0.17679f, -0.0136341f, -0.0218494f, 0.101538f, 0.244462f, -0.0419395f, 0.144743f, -0.0177703f, -0.156568f, 0.102828f, -0.0458706f, 0.219068f, -0.193635f, 0.112201f, 0.0445776f, -0.126625f, 0.0638117f, 0.0339704f, 0.0386619f, 0.0706935f, -0.00411387f, -0.125773f, 0.00446685f, 0.00351388f, -0.187047f, -0.0310596f, 0.0333647f, 0.0840331f, 0.274586f, 0.141267f, 0.0353324f, 0.14256f, 0.0201163f, -0.0176652f, 0.234329f, -0.0797824f, 0.189704f, -0.166459f, -0.0873571f, 0.00123581f, -0.11886f, 0.0757134f, -0.123467f, 0.159079f, -0.00992076f, -0.00241083f, -0.0170236f, 0.250688f, 0.107122f, 0.00215581f, 0.0398999f, -0.0402995f, -0.112824f, -0.0666673f, 0.147065f, -0.204989f, -0.202271f, 0.0553661f, 0.0252155f, -0.213366f, -0.225899f, 0.0731289f, 0.176871f, 0.171699f, -0.0782797f, -0.0492292f, 0.124437f, -0.161625f, -0.0950918f, -0.057821f, -0.0400834f, -0.0424874f, -0.120313f, 0.123785f, -0.0400121f, 0.0805589f, 0.165636f, 0.135714f, 0.0963145f, 0.0647143f, -0.0242214f, -0.0818116f, -0.00802285f, 0.066198f, -0.0122875f, 0.0819387f, -0.0930975f, -0.0917113f, -0.186713f, 0.12075f, -0.103547f, 0.0161581f, -0.214041f, 0.0444281f, -0.0300006f, 0.0898406f, 0.177843f, -0.14487f, -0.121483f, -0.0373653f, -0.0697234f, -0.0682797f, -0.249915f, 0.171429f, 0.0333476f, 0.149409f, 0.0440501f, -0.0610866f, 0.148614f, 0.04734f, -0.123017f, -0.140554f, 0.082426f, 0.0377935f, -0.0115101f, -0.0331593f, -0.0180505f, 0.145021f, -0.0949072f, 0.0279497f, 0.209175f, 0.0374819f, 0.356751f, 0.117538f, -0.172216f, -0.0130463f, -0.216591f, -0.0152004f, 0.156677f, 0.0302407f, 0.0585639f, -0.125885f, -0.213582f, 0.285948f, 0.239296f, -0.103769f, 0.063317f, 0.0652065f, 0.0360212f, 0.0239018f, -0.302758f, 0.0962127f, 0.181995f, 0.0484808f, 0.126062f, -0.129507f, -0.063936f, -0.109254f, -0.0658249f, -0.0509194f, -0.0646627f, -0.116684f, 0.0284995f, -0.0513692f, -0.0407673f, 0.118448f, -0.0344872f, 0.00416573f, -0.0800868f, -0.131293f, 0.178414f, -0.04242f, 0.0555551f, -0.151635f, -2.00645e-05f, -0.0693109f, -0.0309849f, 0.0183158f, 0.0611326f, 0.0867444f, -0.00216716f, 0.0501075f, 0.0686104f, 0.0553206f, 0.0666721f, 0.106494f, 0.0722739f, 0.025164f, 0.0248669f, -0.106334f, 0.0274928f, -0.0273226f, -0.0378158f, 0.10978f, 0.0633726f, 0.122428f, -0.092912f, 0.0544984f, -0.0388115f, 0.0330452f, 0.0806815f, 0.0908865f, -0.139358f, -0.249931f, -0.174677f, 0.172798f, 0.0356417f, 0.133082f, -0.0404763f, 0.024619f, 0.0500196f, 0.166221f, 0.0123825f, -0.183949f, -0.292853f, 0.0109678f, 0.266905f, 0.0385605f, 0.0113034f, 0.0269851f, 0.196296f, 0.0889803f, -0.0186129f, 0.0149827f, 0.0565409f, 0.0948418f, -0.0320624f, 0.389719f, -0.0162508f, -0.0921081f, 0.190614f, -0.16058f, -0.138701f, -0.0592701f, -0.125946f, 0.131651f, -0.126058f, 0.182049f, 0.00733979f, 0.301064f, -0.196491f, 0.0749611f, -0.00638725f, -0.0520892f, -0.0145613f, -0.0650977f, 0.00728838f, 0.053529f, 0.0326541f, 0.0208689f, -0.02391f, -0.0478685f, 0.135036f, -0.0965448f, -0.102037f, -0.090888f, -0.0462615f, -0.129077f, 0.0943894f, -0.144781f, -0.105505f, 0.150007f, 0.0511164f, 0.0634923f, 0.146082f, 0.000172747f, -0.18037f, 0.0693991f, 0.0704313f, -0.00973777f, -0.0141805f, -0.21867f, 0.0567688f, -0.0794858f, 0.109701f, -0.0831771f, -0.0931241f, -0.0219383f, 0.0159481f, -0.121057f, 0.0917159f, -0.207844f, 0.12672f, -0.213919f, 0.114284f, -0.0360534f, 0.0438564f, -0.072833f, -0.0573401f, -0.0881354f, 0.0228941f, 0.0899162f, -0.0462639f, 0.082558f, -0.242603f, 0.276693f, -0.184075f, 0.0386112f, -0.0122821f, 0.146041f, 0.175427f, 0.0298415f, 0.120026f, 0.0300301f, -0.14542f, 0.00180061f, -0.0734906f, 0.0751458f, 0.13125f, 0.161073f, -0.329553f, 0.0599466f, 0.0630255f, -0.0404538f, -0.148991f, -0.00518459f, 0.12501f, -0.211848f, 0.0657868f, 0.24685f, 0.13644f, 0.0736196f, 0.0465085f, 0.0976244f, 0.224633f, 0.0428194f, -0.108678f, -0.0293803f, 0.015114f, -0.17767f, -0.0770766f, 0.0600521f, -0.0459941f, -0.272202f, -0.115368f, 0.231471f, 0.104493f, 0.185235f, 0.111623f, -0.181705f, 0.335477f, -0.140357f, 0.159004f, -0.0263737f, -0.00625571f, -0.131281f, -0.0603387f, 0.072113f, 0.0564928f, 0.11819f, -0.167634f, -0.00951701f, 0.0349205f, 0.00652068f, -0.00988864f, 0.0410595f, 0.00341629f, -0.331709f, -0.222103f, -0.222547f, 0.0236784f, -0.242135f, -0.102845f, -0.00562845f, 0.0630428f, -0.125233f, 0.255057f, -0.171556f, -0.150595f, 0.15712f, -0.151258f, 0.0301846f, 0.0603696f, 0.0953664f, -0.152972f, -0.0284495f, 0.0166f, -0.0472883f, 0.0492704f, 0.035944f, 0.0690954f, -0.0321482f, -0.240196f, 0.172634f, -0.0496176f, -0.0258581f, -0.191395f, -0.170201f, 0.0159426f, 0.00401765f, 0.175701f, 0.223565f, -0.15552f, 0.149892f, 0.150227f, 0.0110521f, 0.039538f, 0.145287f, 0.0825472f, -0.0903259f, 0.0400483f, -0.0216882f, 0.238172f, 0.063753f, 0.280142f, 0.0502212f, -0.187256f, 0.0578526f, -0.129139f, -0.0633249f, -0.0418921f, -0.109054f, 0.0544524f, 0.191343f, 0.000822472f, -0.00847637f, 0.115804f, 0.224796f, -0.0245673f, -0.277355f, 0.0339234f, -0.0774589f, 0.338387f, -0.0364278f, 0.0519249f, -0.197406f, -0.144659f, 0.0749118f, -0.0944101f, 0.0857676f, -0.179071f, -0.0203003f, 0.13603f, -0.105223f, -0.154096f, 0.00357378f, -0.139026f, 0.117336f, 0.178094f, 0.0486975f, 0.138641f, 0.10393f, 0.210834f, -0.0787449f, 0.156522f, -0.0468355f, 0.0819308f, -0.022302f, -0.312368f, -0.0569677f, -0.0623217f, -0.0466638f, 0.00837717f, -0.101009f, -0.106753f, -0.0386659f, 0.116143f, 0.000204868f, 0.150413f, 0.123304f, -0.0136481f, 0.108567f, 0.0573211f, 0.0510749f, 0.0616817f, -0.126807f, -0.147801f, -0.169188f, -0.163961f, 0.134884f, 0.0590232f, -0.153563f, 0.151529f, -0.0500088f, 0.273481f, -0.196571f, -0.0605028f, -0.107503f, 0.0549017f, 0.15274f, 0.116352f, -0.0978418f, -0.0127028f, -0.00949225f, -0.173133f, -0.183746f, 0.0892424f, 0.0694483f, -0.0455859f, 0.0602287f, -0.0196308f, -0.141455f, -0.00432848f, -0.0465605f, -0.171319f, -0.0346249f, -0.15964f, 0.00560572f, -0.0874375f, -0.0225738f, -0.0474563f, 0.0263097f, 0.00550608f, -0.126031f, -0.0220222f, -0.0831331f, 0.0345978f, -0.0191832f, 0.133712f, -0.0307074f, 0.04175f, -0.112431f, -0.0730704f, 0.0244848f, 0.00460259f, -0.133454f, 0.189368f, 0.0498192f, -0.0494948f, 0.0614128f, -0.0584975f, -0.225539f, -0.13661f, 0.156852f, -0.136823f, 0.0835827f, -0.0381224f, -0.300793f, -0.169552f, 0.146767f, 0.120493f, -0.0509559f, 0.153616f, 0.108199f, -0.0610468f, 0.0888797f, 0.132948f, 0.00560103f, 0.0330055f, -3.94768e-06f, 0.002757f, -0.198928f, -0.015661f, 0.0124429f, -0.125041f, 0.0192013f, 0.0111546f, -0.123099f, 0.160743f, -0.0780942f, -0.0689447f, 0.00138133f, 0.00265497f, 0.00203618f, 0.0587071f, -0.100188f, -0.0480203f, 0.261182f, -0.0139299f, 0.0935974f, 0.0430187f, -0.00657605f, -0.0857492f, 0.00365633f, -0.0154905f, 0.071663f, 0.011604f, -0.0173551f, 0.00585313f, 0.157906f, 0.0246482f, -0.0435823f, 0.192368f, -0.0873305f, 0.142374f, -0.0411374f, 0.136059f, 0.0400235f, 0.165472f, 0.110247f, -0.0132162f, 0.00965197f, 0.00170183f, -0.0187315f, -0.0581867f, 0.0607572f, -0.0107472f, 0.0230309f, 0.075533f, 0.121314f, 0.151536f, 0.0533544f, 0.00368556f, -0.0951723f, -0.0331367f, 0.106686f, 0.179556f, 0.0247391f, 0.0663921f, -0.120265f, 0.183456f, 0.00457347f, 0.0561283f, 0.0213388f, 0.0804114f, -0.189927f, 0.161369f, -0.00325326f, -0.111823f, 0.0331747f, 0.00572698f, -0.104849f, 9.74787e-05f, -0.00228126f, 0.0105026f, -0.0946076f, 0.0116189f, 0.033041f, 0.0997778f, 0.108426f, 0.171209f, 0.0766405f, -0.0221143f, 0.087211f, -0.0110173f, -0.00417971f, -0.0193564f, 0.156447f, -0.088923f, -0.0330853f, -0.0850454f, 0.00332488f, 0.176985f, 0.0175577f, -0.0339154f, -0.121472f, 0.163457f, 0.000740709f, -0.0932277f, 0.0630755f, -0.0350953f, 0.116772f, 0.0243453f, -0.000171075f, 0.0364374f, 0.241272f, -0.151344f, -0.0411419f, 0.0631742f, 0.0892415f, -0.0422606f, -0.0102245f, 0.0280994f, 0.143873f, 0.059482f, -0.0372461f, 0.0888024f, 0.0489673f, 0.22517f, -0.0016982f, 0.0664106f, -0.0462471f, -0.00474975f, 0.00118664f, 0.0472472f, -0.0303394f, -0.14823f, 0.123556f, 0.0588197f, -0.00953277f, 0.0784365f, 0.0696329f, -0.0705095f, -0.17955f, -0.0996106f, -0.0532805f, -0.00773275f, -0.172546f, 0.207443f, -0.0823856f, -0.0712587f, -0.122019f, 0.0725528f, 0.252161f, -0.139332f, -0.0312232f, 0.264631f, 0.0883603f, -0.0711061f, -0.0124647f, -0.0382983f, 0.113869f, 0.10247f, -0.144666f, 0.228445f, 0.180324f, -0.144156f, 0.105509f, 0.0033276f, -0.161524f, 0.241056f, -0.0179639f, 0.0731055f, 0.115092f, -0.128187f, -0.0578271f, 0.0955614f, -0.119676f, 0.0522866f, -0.040949f, -0.0827608f, -0.128535f, 0.168288f, 0.0982638f, -0.261035f, -0.126691f, 0.00931665f, -0.0174454f, -0.127368f, -0.0409415f, 0.0783472f, 0.1593f, -0.0503822f, 0.0974656f, -0.0952337f, 0.0657762f, -0.149412f, -0.216279f, 0.397784f, 0.162485f, 0.0953484f, 0.105409f, -0.14012f, 0.05832f, -0.0728146f, 0.0800954f, 0.186887f, 0.10364f, -0.0534616f, 0.0278211f, 0.0396092f, -0.0921263f, 0.0609461f, -0.102462f, 0.0110608f, -0.231813f, -0.227646f, 0.0110631f, 0.00676063f, -0.0266443f, 0.010401f, 0.187142f, -0.130524f, 0.126825f, -0.0316249f, 0.0648946f, -0.117139f, 0.00386583f, 0.19835f, 0.0240068f, -0.0201742f, 0.0912657f, 0.206794f, -0.145458f, -0.0439331f, -0.0286284f, -0.0414818f, -0.0512391f, 0.0117832f, 0.123953f, 0.0617441f, -0.201524f, -0.0282861f, -0.138314f, -0.071297f, 0.065892f, -0.101992f, 0.0267343f, 0.184531f, -0.133483f, 0.172211f, 0.0772031f, 0.0571717f, -0.0746686f, -0.0896641f, 0.0162957f, -0.0447074f, 0.0291528f, 0.105383f, -0.105941f, -0.013623f, -0.0860524f, -0.0612432f, -0.0155998f, -0.0713985f, 0.239383f, -0.0185851f, -0.146209f, 0.119511f, 0.120751f, -0.0279656f, -0.111465f, -0.0975452f, 0.0957562f, -0.0138507f, -0.0569159f, -0.156934f, -0.114557f, 0.0227676f, 0.00938286f, -0.099845f, 0.193243f, 0.210182f, 0.0130307f, -0.022717f, 0.196361f, -0.155628f, 0.117822f, -0.0693485f, 0.240345f, -0.0999301f, 0.0619017f, 0.0355517f, 0.0451734f, 0.117186f, 0.0836766f, 0.0490352f, 0.00952386f, 0.0340251f, 0.0687662f, -0.104643f, -0.129447f, -0.0868723f, 0.0715197f, 0.0570517f, -0.188294f, -0.0587736f, 0.00388352f, 0.0725815f, 0.0542392f, 0.0130456f, -0.0875834f, -0.15606f, 0.0717816f, -0.131558f, -0.225202f, -0.157396f, -0.157946f, -0.0310604f, -0.208861f, 0.144822f, 0.0691593f, -0.0423671f, 0.209063f, 0.138302f, -0.319876f, 0.224656f, 0.0940255f, -0.0576063f, -0.100333f, 0.0488056f, 0.0547046f, 0.168661f, -0.153205f, 0.0426984f, 0.0465929f, 0.0684772f, 0.101671f, 0.0150122f, 0.003824f, 0.140074f, 0.179888f, -0.0688852f, 0.0151969f, 0.0637498f, 0.190249f, -0.14766f, 0.00668085f, -0.12188f, 0.0486556f, -0.154614f, 0.0355465f, 0.0505891f, 0.166749f, 0.120536f, -0.0164974f, -0.0755632f, -0.0930716f, 0.0442111f, 0.0511273f, -0.0544816f, -0.0917104f, -0.12624f, 0.092811f, 0.0545024f, 0.104182f, 0.123435f, 0.118739f, -0.0207243f, 0.0936682f, -0.0875789f, -0.159167f, 0.150861f, -0.0493552f, -0.138874f, -0.0179355f, 0.00745606f, -0.122106f, 0.0371263f, 0.111033f, 0.15673f, 0.296168f, 0.145392f, 0.180993f, -0.0927004f, 0.0918478f, -0.119584f, -0.163245f, 0.00921861f, 0.0271747f, 0.0804808f, 0.145161f, 0.0145726f, -0.153332f, 0.0266479f, 0.0538376f, 0.0592146f, 0.132641f, 0.110878f, -0.0106883f, -0.0139491f, 0.0604327f, 0.0222384f, -0.0664198f, -0.0946897f, -0.10651f, -0.00535981f, -0.033586f, -0.103051f, 0.0894633f, 0.0641019f, -0.110945f, -0.105146f, -0.148259f, -0.169557f, 0.00549638f, -0.0103089f, 0.214644f, 0.0494637f, -0.0207149f, 0.315629f, 0.211881f, 0.281521f, -0.0218905f, 0.050599f, -0.0300244f, -0.0711445f, -0.0275906f, 0.0956181f, 0.157849f, -0.113938f, 0.0762943f, -0.00945345f, -0.0498334f, 0.0955808f, 0.135041f, -0.0470388f, -0.149601f, 0.0539677f, 0.0257905f, -0.084614f, -0.00763823f, 0.17525f, -0.0414234f, -0.0837752f, -0.0301055f, -0.0470877f, -0.0455149f, -0.111254f, -0.139157f, 0.0246826f, 0.0504568f, 0.0622121f, -0.122833f, 0.233181f, -0.0948583f, -0.0421712f, -0.148915f, 0.0654703f, -0.0120971f, 0.0415044f, -0.0517966f, 0.12076f, 0.129259f, 0.0626116f, -0.0244656f, 0.0580543f, -0.0615759f, 0.177526f, -0.0518496f, 0.0504443f, -0.140787f, -0.0858616f, 0.0545217f, 0.188783f, 0.10347f, -0.00578348f, -0.1168f, 0.0410971f, 0.129368f, -0.190413f, 0.208011f, 0.0100303f, 0.100663f, -0.10929f, -0.0105855f, 0.0991714f, -0.0389282f, -0.232246f, 0.0876719f, 0.0539333f, 0.0877028f, 0.0435809f, 0.0448053f, 0.222074f, 0.0909246f, 0.0792227f, 0.239993f, -0.14826f, -0.19408f, -0.0096964f, -0.0498806f, -0.0385968f, -0.0102589f, 0.148903f, 0.0864482f, 0.059924f, -0.0689634f, -0.0129988f, 0.0968144f, 0.0142309f, 0.0228691f, -0.0583857f, -0.0448545f, -0.180306f, 0.133878f, 0.0260958f, 0.0162301f, -0.0706757f, -0.125892f, 0.16294f, 0.00320043f, 0.0306513f, -0.0519735f, 0.0661949f, 0.0149161f, 0.00597003f, -0.209234f, -0.0157429f, -0.103087f, 0.0459732f, -0.0515612f, -0.0831206f, -0.168309f, -0.114243f, 0.0103102f, -0.150359f, -0.14698f, -0.128343f, -0.110976f, -0.0638834f, 0.0194943f, -0.15549f, -0.0431105f, 0.194572f, 0.129903f, 0.100477f, 0.108018f, 0.2209f, 0.171187f, 0.226362f, -0.0381767f, 0.121785f, 0.0844151f, -0.0319137f, -0.0672996f, 0.143547f, 0.0689275f, -0.143692f, -0.0400299f, -0.0724073f, -0.0112102f, 0.0304041f, -0.0669207f, -0.0106773f, -0.0334399f, 0.163609f, 0.03876f, -0.000600808f, 0.0093394f, 0.0429974f, -0.0592303f, 0.170396f, -0.177437f, -0.262744f, -0.0984016f, -0.00755418f, 0.148412f, -0.0475481f, 0.116762f, 0.0674649f, -0.100278f, 0.158398f, -0.0400176f, -0.0463575f, -0.0196041f, 0.194667f, -0.0486167f, -0.105055f, -0.144551f, 0.129651f, -0.155033f, -0.0159316f, 0.229847f, 0.0610452f, -0.00883123f, 0.13893f, 0.125539f, -0.0544228f, -0.12192f, -0.0598275f, 0.0446538f, 0.0323177f, 0.0338089f, -0.0211928f, -0.0746145f, -0.0380042f, -0.117833f, 0.0166911f, 0.111126f, 0.0388273f, -0.0773871f, -0.113551f, -0.139656f, -0.171206f, 0.0317206f, 0.0722964f, 0.0300859f, 0.00212142f, 0.038878f, -0.0024048f, -0.190697f, 0.212752f, 0.191511f, -0.0844237f, -0.0009959f, -0.152569f, 0.000593916f, -0.0753599f, 0.018648f, 0.159708f, 0.0464194f, 0.0844785f, 0.0581194f, -0.0420219f, -0.170172f, 0.0481638f, 0.0716161f, 0.182365f, 0.0715443f, 0.0227458f, -0.162989f, 0.0604183f, 0.141212f, 0.133713f, -0.080541f, 0.0729335f, 0.11809f, 0.0574544f, -0.102712f, -0.098254f, -0.132679f, -0.220421f, -0.185067f, 0.0525402f, 0.0495307f, 0.0157259f, 0.0722966f, 0.144673f, 0.0338373f, -0.00773395f, -0.0162583f, -0.0136909f, 0.106055f, -0.141956f, -0.124069f, 0.0281194f, 0.0942326f, 0.00762355f, -0.123247f, 0.0257954f, -0.0369173f, 0.00405821f, -0.423063f, -0.0230066f, 0.106998f, 0.0499273f, 0.0814771f, 0.0485529f, -0.0527183f, -0.00742157f, 0.0663535f, -0.145139f, -0.0709323f, 0.39825f, -0.0702782f, 0.031195f, 0.129809f, -0.00286868f, 0.0592706f, -0.0119585f, -0.125067f, -0.0109155f, 0.104322f, -0.0474917f, -0.0254399f, -0.0330815f, 0.062322f, -0.095665f, -0.0726352f, -0.0140636f, 0.141246f, -0.0866103f, -0.19427f, 0.0119271f, -0.113384f, -0.137074f, 0.0086608f, 0.153507f, 0.0121503f, -0.085155f, -0.148448f, 0.157649f, -0.113747f, 0.275735f, -0.0451741f, 0.233386f, 0.0935157f, -0.0186397f, 0.0287044f, 0.0835944f, -0.161349f, 0.0580616f, 0.0615212f, 0.179695f, -0.0871331f, -0.105527f, 0.126825f, -0.0693321f, -0.0366007f, 0.0584294f, -0.0532349f, 0.119408f, -0.0683059f, -0.23241f, -0.0806307f, 0.0841979f, 0.0807216f, 0.0980821f, -0.166958f, 0.101409f, 0.0525387f, 0.00802983f, 0.0244494f, 0.157787f, -0.236103f, 0.181644f, 0.0422814f, -0.0479392f, -0.104884f, 0.102814f, 0.0631825f, -0.048159f, 0.135684f, -0.202157f, -0.0763248f, 0.134626f, 0.0634343f, -0.082477f, -0.0764617f, -0.280527f, 0.0778743f, -0.309022f, -0.332065f, -0.0649133f, 0.0905218f, -0.192035f, -0.0287219f, 0.00508849f, -0.130596f, 0.0384925f, -0.117403f, -0.225345f, -0.0927767f, -0.0258281f, -0.193933f, 0.126394f, -0.13002f, -0.174491f, -0.116017f, 0.0258402f, -0.215993f, -0.177163f, -0.0424057f, 0.0488941f, -0.159682f, -0.161191f, -0.19053f, 0.0137722f, 0.0473746f, 0.169304f, -0.00575238f, -0.0133972f, 0.0708857f, -0.0268073f, -0.00517017f, -0.23209f, 0.201108f, -0.00154878f, -0.0710651f, -0.030625f, 0.191692f, -0.202383f, 0.00405393f, -0.0274968f, 0.132657f, 0.122731f, -0.0682938f, 0.0024245f, -0.0070157f, -0.0556072f, -0.123885f, 0.0305302f, -0.100222f, 0.152258f, 0.177575f, 0.0299602f, 0.0890632f, -0.099691f, 0.201806f, -0.20466f, 0.209587f, -0.069369f, -0.135077f, -0.0544463f, -0.166672f, 0.0764806f, -0.127136f, -0.13306f, 0.169508f, 0.132438f, 0.151806f, -0.0150718f, 0.0884784f, 0.092103f, 0.0383537f, -0.0694305f, -0.0366387f, 0.127622f, -0.0661082f, -0.0450538f, 0.0738071f, -0.130371f, -0.110015f, 0.0218652f, -0.0954553f, 0.0341187f, 0.0107107f, -0.117344f, -0.135626f, -0.0645013f, 0.00661076f, 0.137599f, 0.219829f, -0.0419251f, 0.26839f, 0.0107922f, -0.166279f, 0.168899f, -0.203655f, 0.0593406f, -0.0369619f, -0.0296869f, -0.0727119f, 0.152274f, 0.0338246f, 0.0545723f, -0.164833f, 0.0893077f, -0.0710997f, 0.139817f, -0.0792833f, 0.0812461f, 0.168755f, -0.104849f, 0.110167f, 0.156793f, 0.134578f, -0.115458f, 0.0213757f, 0.254629f, 0.167743f, 0.108601f, 0.155189f, -0.00329338f, 0.0857031f, 0.0960671f, -0.15513f, -0.0698877f, 0.0305067f, -0.094869f, -0.129152f, 0.0114462f, 0.105926f, -0.0523391f, -0.0840433f, -0.0346985f, -0.174391f, -0.0810427f, 0.210253f, -0.019113f, -0.115329f, -0.108105f, -0.0406915f, 0.0260937f, 0.115041f, 0.0909511f, -0.0138339f, -0.0943299f, 0.150537f, 0.014057f, -0.19371f, -0.0685975f, 0.0123737f, -0.113386f, 0.0773347f, -0.004291f, -0.198044f, -0.129498f, 0.0356161f, -0.00795837f, 0.0738812f, -0.00422231f, -0.0965801f, 0.0434701f, 0.10906f, -0.119024f, -0.00728046f, -0.138047f, 0.166049f, -0.158957f, -0.0473263f, 0.107104f, 0.00348788f, -0.0296896f, 0.0701529f, 0.0873784f, -0.130231f, -0.15765f, 0.0760814f, -0.0101912f, 0.00518098f, 0.0295746f, -0.00543907f, 0.0663702f, 0.178536f, 0.0599893f, -0.0660631f, -0.0640696f, -0.0307812f, 0.0438053f, -0.0723999f, -0.066503f, -0.0430462f, 0.0340086f, -0.0415865f, -0.0198124f, 0.0191512f, -0.088113f, -0.109527f, -0.0376003f, -0.0160773f, -0.0982986f, -0.251237f, -0.049802f, 0.0638059f, 0.182215f, 0.0678885f, 0.0407861f, 0.18078f, -0.0107593f, -0.198265f, 0.076149f, -0.0143204f, 0.0735635f, -0.0109208f, 0.0335735f, -0.0935695f, 0.0697221f, 0.231037f, -0.0322426f, -0.00570233f, -0.22204f, 0.208801f, 0.0973275f, -0.03731f, -0.102376f, 0.053887f, 0.0243659f, -0.133397f, -0.0485539f, 0.0481363f, -0.0626584f, 0.0630361f, -0.0671484f, -0.103924f, -0.092081f, 0.118841f, 0.00534712f, -0.0774236f, 0.0280841f, 0.0415332f, -0.064321f, -0.0384774f, -0.0247468f, -0.0407255f, 0.04934f, -0.000618645f, 0.0262278f, 0.016694f, -0.302029f, 0.0367263f, -0.0455907f, -0.138068f, -0.197547f, 0.0825342f, 0.0732826f, -0.214317f, 0.0916204f, -0.198208f, -0.0544403f, -0.206957f, -0.0179564f, 0.0361804f, -0.0947331f, -0.0803906f, 0.0221432f, 0.0886675f, -0.105681f, -0.0479376f, -0.0464371f, 0.0853449f, -0.240056f, -0.116712f, 0.013941f, 0.0105609f, -0.0545804f, -0.152865f, -0.176864f, 0.0658891f, 0.163039f, 0.0152149f, -0.0131072f, 0.156795f, -0.480855f, -0.183178f, 0.186598f, -0.04867f, 0.0764485f, -0.21745f, 0.105625f, -0.08861f, 0.105634f, -0.144917f, -0.110189f, -0.418764f, -0.166522f, 0.00513091f, 0.046485f, -0.0259956f, 0.203356f, -0.0946701f, 0.112813f, 0.26243f, -0.317205f, 0.175431f, 0.03306f, -0.3974f, -0.0630429f, -0.0128733f, 0.234884f, -0.147666f, 0.102456f, -0.104467f, -0.0293404f, 0.0674358f, -0.095519f, 0.101361f, -0.100166f, -0.0160631f, 0.108276f, -0.153656f, -0.19199f, 0.151879f, -0.0675065f, -0.0148032f, -0.310951f, -0.119245f, -0.0560632f, 0.291055f, -0.133294f, 0.0431211f, -0.111809f, -0.151283f, 0.0223325f, -0.0604336f, 0.0695086f, -0.207524f, -0.249405f, -0.171665f, 0.109957f, -0.108858f, -0.0621868f, -0.107551f, -0.165142f, 0.294621f, -0.157774f, -0.0951715f, -0.168444f, 0.0949139f, 0.289212f, 0.455634f, 0.000927857f, -0.0761141f, 0.0484737f, -0.118704f, -0.018471f, -0.0843014f, -0.0749902f, 0.250211f, 0.26897f, 0.0191046f, -0.0505597f, 0.0513503f, -0.309069f, -0.051362f, 0.243841f, 0.227262f, -0.0375321f, -0.0727406f, 0.0131794f, 0.0366179f, -0.138704f, -0.132697f, -0.196835f, -0.0211023f, -0.0844551f, 0.147878f, 0.0546933f, 0.10885f, 0.117591f, 0.203829f, 0.0920348f, -0.177726f, 0.0430077f, -6.19605e-05f, -0.0904719f, -0.033249f, -0.0370878f, -0.0184366f, 0.274803f, -0.0400452f, 0.256353f, -0.218893f, -0.0366248f, 0.022762f, -0.0408594f, -0.312113f, 0.259269f, 0.183768f, -0.00458041f, 0.0730899f, -0.0240345f, -0.0447598f, 0.254045f, -0.127254f, 0.0361012f, -0.17205f, 0.217438f, -0.0242174f, 0.0553367f, 0.15114f, -0.0931218f, 0.161464f, -0.157834f, 0.0458361f, 0.0650252f, -0.0431557f, 0.100033f, -0.111117f, 0.230102f, 0.15996f, 0.20376f, 0.0744551f, -0.172622f, -0.25206f, 0.0293906f, 0.148889f, 0.0853146f, -0.0174384f, 0.147661f, -0.288177f, -0.0890241f, 0.0785816f, -0.176685f, -0.177108f, -0.00231441f, -0.15118f, -0.288366f, -0.12527f, -0.0282739f, -0.0705589f, -0.182439f, -0.0895858f, -0.04587f, -0.043458f, -0.0425246f, 0.22736f, 0.220087f, 0.0437746f, 0.145629f, 0.0662888f, -0.0281142f, -0.0332606f, -0.00993529f, -0.0882824f, -0.140099f, 0.269954f, -0.0266605f, -0.0298158f, -0.0730465f, 0.112479f, -0.155354f, -0.141473f, 0.109691f, 0.0441471f, 0.139829f, 0.0243037f, -0.0411899f, 0.104741f, -0.0302024f, 0.0950845f, 0.0790408f, 0.0956918f, -0.0195882f, -0.147276f, -0.184012f, -0.0572098f, 0.267139f, -0.122906f, -0.145072f, 0.0475274f, -0.107686f, 0.0690837f, 0.0311732f, -0.0885577f, 0.0104846f, -0.305783f, 0.00609382f, 0.101853f, 0.231129f, 0.0508508f, -0.045678f, 0.0544788f, -0.011206f, 0.0407383f, 0.079258f, 0.23814f, -0.0433864f, -0.0177154f, -0.0536305f, 0.200997f, -0.15034f, -0.201834f, -0.086509f, 0.0920368f, 0.243025f, 0.135924f, -0.135174f, -0.114905f, 0.0281513f, -0.013632f, -0.0206498f, 0.237476f, 0.236729f, 0.0606555f, 0.000681258f, -0.0233575f, -0.169346f, 0.0385721f, -0.0457501f, -0.201558f, -0.266526f, -0.123949f, 0.155885f, 0.0282336f, 0.0370406f, -0.116642f, 0.204743f, -0.0695385f, -0.038997f, -0.0200656f, 0.0766411f, 0.19069f, -0.0179018f, 0.10714f, -0.157074f, 0.0668978f, -0.110493f, 0.0707105f, 0.041897f, 0.00808206f, -0.0631804f, -0.23441f, -0.0933903f, -0.0348882f, 0.080855f, -0.0948061f, -0.209984f, -0.0161141f, 0.0166183f, 0.11602f, -0.0410873f, 0.109242f, 0.0116161f, -0.0599941f, -0.0420714f, 0.0536077f, -0.158737f, -0.0764756f, 0.0517592f, -0.064673f, -0.0671985f, -0.163753f, -0.163854f, 0.0577553f, 0.064526f, -0.0103741f, 0.00936979f, 0.0324028f, 0.0441885f, 0.0751715f, 0.177747f, -0.2229f, -0.149864f, 0.113103f, 0.0350962f, 0.0872927f, 0.0869533f, 0.206231f, -0.0630134f, -0.0503537f, 0.161637f, 0.270698f, -0.0570723f, 0.129651f, -0.0276818f, -0.162944f, 0.0345072f, 0.1672f, 0.128285f, -0.19567f, 0.00137304f, -0.0950803f, -0.146344f, -0.0095889f, 0.0586282f, 0.113958f, -0.0106096f, 0.165614f, -0.128219f, 0.0837032f, 0.0149633f, -0.146691f, -0.0264055f, 0.0564539f, 0.032771f, 0.0683221f, -0.0819566f, -0.133727f, 0.0145962f, 0.0932194f, -0.00631004f, 0.0601282f, -0.145437f, -0.0314948f, 0.122017f, -0.149859f, 0.0520997f, 0.175663f, 0.0658573f, -0.135578f, 0.15589f, -0.00552863f, -0.0372944f, -0.0647938f, 0.0601464f, -0.02645f, -0.0675414f, 0.138583f, 0.0205267f, 0.220618f, 0.124355f, 0.139661f, -0.00452077f, 0.0248219f, -0.0457623f, 0.0758286f, 0.127744f, 0.169813f, 0.00543003f, -0.151153f, 0.0206755f, -0.18218f, -0.175092f, -0.120075f, -0.0279053f, 0.0602555f, -0.11068f, 0.00738511f, 0.107637f, -0.127337f, -0.0331681f, 0.190599f, -0.0149177f, -0.159413f, 0.148981f, -0.0993213f, 0.0556968f, 0.0530358f, 0.047678f, 0.015377f, 0.0428304f, 0.222338f, 0.0376127f, -0.0404804f, -0.0729169f, 0.0823121f, 0.0933517f, -0.0212677f, -0.178898f, 0.064467f, -0.125129f, 0.180145f, 0.133627f, 0.0564994f, 0.0452438f, -0.100948f, -0.247531f, -0.0236883f, -0.108875f, 0.2253f, 0.2458f, -0.0232947f, 0.0652519f, -0.061935f, 0.0104946f, 0.123322f, 0.163134f, -0.0219771f, -0.00179542f, 0.208368f, -0.0438257f, -0.125235f, 0.0258332f, 0.149107f, 0.102224f, -0.0680811f, 0.0134411f, -0.132659f, 0.250723f, 0.0472561f, -0.0930447f, 0.177631f, -0.041223f, 0.0447066f, -0.0484391f, -0.00628401f, 0.040377f, -0.0389904f, -0.225802f, 0.119535f, 0.0322091f, -0.293741f, 0.0851699f, -0.032814f, 0.0354932f, -0.0199449f, -0.039421f, 0.148741f, 0.079806f, 0.15193f, -0.136133f, -0.005054f, -0.0715549f, -0.0881121f, 0.0694605f, -0.276804f, 0.00215152f, -0.136058f, 0.107022f, -0.0583402f, -0.317568f, 0.0123466f, 0.0576577f, 0.00574288f, -0.178405f, -0.062291f, -0.0204665f, 0.150135f, -0.159043f, -0.165202f, 0.08445f, 0.0670298f, 0.0243613f, -0.0223845f, -0.184576f, -0.00661081f, -0.0690248f, 0.330072f, -0.147467f, -0.0827551f, 0.145597f, -0.195899f, 0.0534788f, -0.213794f, 0.0527318f, -0.115705f, 0.0607222f, 0.0598203f, 0.0196853f, 0.0738439f, -0.0370699f, -0.0837475f, 0.0461205f, 0.0919858f, -0.0527369f, -0.112019f, -0.0105061f, -0.0314364f, -0.00143027f, -0.0281285f, -0.236107f, -0.0252159f, -0.012835f, 0.169725f, -0.0509328f, -0.151393f, 0.120117f, 0.129603f, -0.080146f, -0.0659658f, -0.0864683f, 0.127783f, -0.111953f, 0.112968f, -0.0775035f, 0.0869967f, 0.207065f, 0.0756109f, 0.052175f, -0.125412f, 0.0924229f, -9.62061e-06f, 0.00970938f, -0.210416f, -0.17011f, 0.0159139f, 0.00319266f, -0.00627596f, 0.0980866f, -0.151198f, -0.0426793f, 0.228531f, -0.0744389f, 0.131768f, -0.220777f, 0.0868848f, -0.0792098f, -0.00764289f, -0.0305725f, 0.0951308f, -0.0702434f, -0.0339303f, 0.0900557f, -0.145978f, 0.0100313f, -0.129834f, 0.13564f, -0.186702f, 0.176963f, -0.0231362f, -0.0314504f, -0.0587695f, 0.136825f, 0.0257877f, -0.168627f, 0.0471453f, 0.0428235f, -0.0125165f, -0.133279f, -0.175641f, 0.103661f, 0.0262069f, 0.267388f, 0.0903698f, -0.135452f, -0.0987484f, -0.0788398f, -0.150721f, 0.0332897f, -0.128262f, -0.180887f, 0.123943f, 0.0135619f, -0.0239194f, -0.0287361f, 0.0657444f, -0.000971896f, 0.178299f, -0.0613787f, 0.111932f, 0.267944f, -0.0435861f, 0.00501012f, -0.0878948f, -0.0059742f, -0.254163f, -0.0264504f, -0.00496023f, -0.0337609f, -0.0464378f, 0.00661419f, 0.0769213f, -0.0812793f, -0.00914205f, 0.331133f, 0.0336766f, 0.00874302f, -0.217885f, -0.0117704f, 0.0763623f, -0.127251f, 0.100481f, 0.0282567f, -0.115801f, 0.0887505f, 0.0238801f, -0.0946889f, 0.122759f, -0.0233633f, 0.144388f, 0.0911891f, -0.0369694f, -0.0266667f, -0.0600944f, -0.0766175f, -0.118739f, 0.0470418f, 0.089673f, 0.130719f, -0.208225f, -0.00977027f, 0.038861f, 0.0363396f, 0.106294f, -0.0350697f, -0.0625091f, -0.097479f, 0.0318796f, 0.0347402f, 0.00812588f, 0.0210646f, 0.104109f, 0.0218058f, 0.12178f, -0.0949799f, -0.132982f, 0.0267646f, -0.0439744f, -0.0636047f, 0.023308f, 0.00356987f, -0.0854717f, -0.0564519f, 0.159808f, 0.0747335f, 0.028887f, 0.1119f, 0.25447f, 0.0421052f, -0.0199207f, -0.0948282f, -0.0155818f, 0.132916f, -0.0974086f, -0.0291176f, -0.141628f, -0.0413559f, 0.0452108f, 0.0854395f, -0.0219079f, -0.133847f, 0.0108589f, -0.121263f, -0.0956419f, -0.150211f, 0.13647f, -0.0328736f, -0.157708f, 0.133031f, -0.0232944f, 0.166184f, -0.0661585f, -0.124563f, 0.00087751f, -0.183282f, 0.0122881f, 0.0487266f, 0.0808539f, -0.132398f, -0.0503541f, -0.0436556f, 0.0566565f, 0.0693117f, -0.042622f, 0.00480785f, 0.0842556f, -0.0524886f, 0.199165f, 0.0520656f, 0.0968124f, 0.0622719f, 0.0401533f, -0.015661f, -0.031807f, 0.0701563f, 0.0205174f, 0.0116621f, 0.201394f, 0.0928939f, 0.0573184f, -0.0963363f, 0.0587081f, -0.0918845f, -0.00877668f, -0.0135582f, -0.0172741f, 0.120315f, -0.0620315f, 0.0681478f, 0.158907f, -0.0555568f, -0.0579604f, -0.0348041f, -0.0141263f, 0.134015f, -0.0243368f, -0.0641347f, 0.0606357f, -0.0380018f, 0.0659131f, -0.0534819f, -0.0543372f, -0.0772594f, -0.128473f, 0.0436702f, 0.149823f, 0.0813474f, 0.0536879f, -0.15795f, -0.0485813f, -0.038221f, 0.0835563f, 0.0332889f, -0.141569f, -0.0718426f, 0.0920057f, -0.0572044f, -0.0351391f, -0.12218f, -0.0883764f, -0.0547797f, -0.112759f, 0.0783095f, 0.0802763f, -0.0157029f, -0.0719717f, 0.0723655f, -0.101116f, -0.0845613f, 0.0258197f, -0.0929316f, 0.0229637f, -0.0821354f, -0.0307483f, -0.0449828f, 0.0165291f, 0.0780025f, 0.114596f, 0.0106858f, -0.00314015f, -0.0614204f, 0.122535f, -0.166405f, 0.0147223f, -0.141073f, 0.102579f, 0.106178f, 0.0897852f, -0.0567723f, -0.084071f, 0.00480119f, 0.0493514f, 0.176497f, -0.0560911f, 0.102056f, -0.0777887f, -0.0718735f, -0.0837277f, 0.131308f, 0.179008f, -0.167855f, -0.0828126f, -0.0588265f, -0.007643f, 0.00563281f, 0.0363722f, -0.095183f, -0.106842f, -0.195298f, 0.00188948f, 0.137219f, -0.180304f, -0.0320765f, -0.0872516f, 0.0427285f, 0.0760622f, -0.000697735f, 0.0339031f, 0.106214f, 0.0383171f, -0.113141f, 0.0172508f, -0.0110751f, -0.0254989f, -0.129389f, 0.11366f, -0.0654984f, 0.0268868f, -0.084974f, 0.0557736f, -0.00430571f, 0.032348f, -0.124159f, -0.0480599f, -0.0803962f, -0.077098f, -0.138266f, 0.107071f, 0.00626352f, 0.144606f, -0.180658f, -0.134494f, 0.0144513f, -0.116658f, 0.0780161f, 0.0145499f, 0.00891058f, 0.0165311f, -0.0271497f, -0.0917797f, 0.0733518f, -0.12114f, 0.169664f, -0.0432428f, -0.0221921f, 0.035651f, 0.0406171f, 0.117153f, 0.134642f, 0.0399773f, 0.0679305f, 0.0533925f, 0.187402f, 0.136936f, 0.179011f, 0.00404319f, 0.19903f, 0.216121f, 0.0816283f, -0.0229787f, 0.144271f, -0.0126312f, -0.0471643f, 0.105276f, 0.0847933f, -0.0232564f, -0.0115575f, 0.0610917f, -0.0413806f, 0.061483f, -0.00826779f, -0.0610953f, -0.146265f, -0.135659f, 0.0894593f, -0.0486716f, 0.0138181f, 0.100023f, -0.143851f, 0.126625f, 0.199006f, 0.0702357f, -0.0492591f, -0.0978926f, 0.268056f, -0.190254f, -0.170201f, -0.0883726f, -0.121788f, -0.0535083f, -0.0982122f, 0.0819388f, 0.0464249f, 0.0749061f, -0.027849f, -0.104337f, -0.157996f, 0.0201178f, -0.0508549f, -0.0783135f, -0.0687036f, -0.0845469f, -0.174828f, -0.114795f, 0.0745967f, -0.0711166f, 0.215612f, -0.111328f, 0.107355f, -0.0453429f, -0.235099f, 0.088651f, -0.0876084f, -0.0736103f, 0.124899f, 0.0083793f, 0.17736f, 0.0742383f, -0.145268f, 0.00104708f, -0.277101f, -0.0546775f, -0.00382425f, -0.0537147f, 0.128683f, 0.096479f, 0.191525f, 0.0870638f, -0.0136942f, 0.0820087f, 0.211088f, 0.191963f, 0.241735f, 0.132831f, -0.0866688f, 0.00572814f, -0.0726336f, -0.0928951f, -0.0059677f, -0.0939436f, -0.123371f, 0.00790619f, -0.0137965f, -0.189684f, -0.0708601f, 0.0247188f, 0.127236f, -0.10446f, 0.00289336f, 0.0877539f, -0.0554651f, 0.126098f, -0.105815f, -0.0592592f, -0.083924f, -0.0204172f, -0.124805f, 0.261445f, 0.0678797f, -0.0119643f, 0.0845452f, 0.134247f, -0.0384698f, 0.0538429f, -0.341393f, -0.0899672f, 0.0190777f, -0.149442f, 0.088146f, -0.0191702f, 0.0249452f, -0.0566698f, -0.222535f, 0.174878f, -0.332172f, -0.0176277f, -0.0746746f, 0.18249f, -0.128521f, 0.136488f, 0.109909f, -0.0940534f, -0.0300304f, 0.240288f, 0.0516126f, -0.0829509f, -0.0495591f, -0.0610089f, 0.0359568f, -0.0494112f, -0.104917f, 0.0339092f, 0.0271262f, 0.0620828f, -0.193537f, -0.0811921f, 0.0181313f, -0.0254482f, -0.0242559f, 0.10485f, -0.0510068f, -0.0279784f, 0.152264f, -0.169554f, -0.0868216f, 0.0685036f, 0.0219613f, 0.245676f, 0.0582326f, -0.234415f, 0.151921f, 0.00337672f, -0.0385609f, -0.171521f, -0.119735f, -0.0533884f, -0.0209936f, -0.00864936f, -0.0589233f, 0.0379972f, 0.240892f, 0.0855142f, -0.0615188f, 0.0804337f, 0.0364047f, -0.0623763f, -0.13444f, 0.150525f, -0.0934625f, 0.00741384f, -6.15793e-05f, 0.047561f, -0.0107828f, 0.00427785f, 0.0096977f, 0.114807f, 0.0217425f, -0.150357f, 0.0341705f, 0.0768569f, 0.104114f, 0.0770318f, -0.00931818f, -0.0248882f, 0.0690873f, -0.135507f, -0.258893f, 0.209611f, 0.128542f, -0.0798588f, -0.0369545f, 0.087386f, 0.00750077f, -0.0270288f, -0.118182f, -0.0552481f, -0.0664329f, -0.0383746f, -0.218372f, 0.128504f, 0.0349242f, -0.0250279f, -0.0637534f, -0.0753853f, -0.14823f, -0.0063272f, -0.199679f, -0.0115407f, -0.285945f, 0.0359648f, 0.0327121f, 0.00372557f, -0.0885596f, 0.0345982f, -0.0186217f, -0.0344643f, -0.094869f, 0.0947499f, 0.0894057f, -0.108533f, -0.0265683f, -0.165369f, 0.112789f, -0.0211386f, -0.0136119f, 0.21152f, -0.0877787f, 0.0464598f, 0.101806f, -0.0913091f, -0.00405042f, 0.0968915f, -0.0650991f, -0.0123073f, 0.0540856f, 0.00960033f, 0.043136f, 0.0536568f, 0.0224393f, -0.0288155f, -0.161247f, -0.125882f, -0.0392124f, -0.109237f, 0.0576717f, 0.163152f, 0.0460769f, -0.0376862f, -0.0556446f, 0.102988f, 0.0318743f, 0.0311466f, 0.0994901f, 0.103877f, -0.15379f, 0.0897909f, 0.0411702f, -0.0608437f, -0.136755f, -0.0850347f, 0.0145482f, 0.0442414f, 0.0419267f, 0.0112401f, 0.0100936f, -0.0598468f, -0.244278f, 0.0894368f, 0.123358f, 0.0400036f, -0.119943f, 0.127993f, 0.1454f, 0.0513645f, 0.0395266f, 0.0203953f, -0.0302167f, -0.0380563f, -0.0790281f, -0.0158107f, 0.0974406f, -0.246479f, 0.132432f, -0.0354968f, 0.0618777f, 0.115107f, 0.0736707f, -0.0535294f, -0.0537074f, -0.0378567f, -0.0763482f, -0.123363f, -0.0852886f, -0.107531f, -0.0324894f, 0.0921331f, 0.0581794f, -0.263942f, -0.0154953f, -0.0716734f, 0.0849973f, 0.09091f, -0.162608f, 0.122613f, 0.0660425f, -0.0336315f, -0.0117797f, -0.265864f, -0.0969633f, -0.140523f, 0.0729704f, 0.0258509f, -0.0677438f, -0.0254271f, -0.168794f, -0.0596316f, -0.132829f, 0.0111364f, -0.189556f, -0.168213f, -0.0757753f, 0.0489538f, -0.0909999f, 0.0725254f, 0.321028f, 0.0543685f, -0.126823f, 0.318284f, -0.100664f, 0.0681577f, -0.0539725f, -0.0706159f, -0.078622f, -0.0265738f, 0.231434f, 0.0159367f, 0.0308951f, 0.088562f, 0.020309f, -0.0593359f, 0.0692773f, 0.16716f, 0.112582f, 0.0845761f, 0.00421838f, 0.0648511f, -0.0986721f, -0.119115f, 0.0175429f, 0.0318823f, -0.0123676f, 0.174445f, -0.172599f, -0.128106f, 0.0372914f, -0.0630618f, -0.0981242f, -0.0155458f, -0.0723782f, -0.0748922f, 0.117716f, -0.101008f, 0.0973885f, 0.13032f, -0.008136f, -0.0718853f, -0.171446f, -0.174368f, 0.085225f, 0.0371201f, 0.173874f, 0.0662848f, 0.0951242f, -0.0201597f, 0.18167f, -0.13911f, 0.0174859f, -0.00198857f, -0.0248435f, -0.0392669f, -0.0956917f, -0.305872f, 0.033844f, -0.120808f, 0.0271874f, -0.0548913f, -0.0370338f, -0.183263f, 0.129024f, 0.110588f, -0.0485179f, -0.174562f, -0.0478589f, 0.0228541f, 0.0848141f, 0.067598f, -0.093046f, 0.0349331f, -0.0403968f, -0.170592f, -0.0493203f, -0.247836f, -0.015831f, 0.120167f, 0.203678f, 0.166036f, 0.141781f, 0.0880747f, -0.0207143f, -0.0806387f, 0.26692f, -0.0884419f, -0.0661965f, 0.0589693f, -0.0548143f, 0.156994f, -0.0770057f, 0.157838f, 0.208647f, -0.0377253f, -0.0580301f, -0.156929f, 0.0201437f, 0.0914314f, 0.0827654f, 0.0475002f, -0.103205f, -0.0107386f, -0.159594f, 0.00545093f, 0.0101794f, 0.171613f, -0.0862237f, -0.354016f, -0.142134f, 0.23176f, 0.0905853f, 0.217563f, -0.110912f, 0.157967f, -0.107142f, -0.0234638f, -0.251858f, -0.116621f, -0.0584677f, 0.0662753f, 0.0765783f, 0.0255451f, -0.0541914f, -0.0763822f, -0.0730206f, -0.0229061f, -0.131067f, 0.170911f, 0.127781f, 0.0053063f, 0.170278f, -0.0950493f, -0.0346653f, 0.145523f, 0.147165f, -0.192099f, 0.116802f, 0.0888439f, -0.186559f, 0.0853758f, -0.0946097f, 0.0800709f, -0.169627f, -0.0284312f, -0.0121485f, 0.140126f, 0.15309f, 0.0507364f, 0.240994f, -0.00283482f, 0.0587912f, -0.100022f, 0.132006f, -0.2106f, 0.075544f, -0.0538662f, -0.00733698f, 0.186124f, 0.228985f, -0.016271f, -0.0245902f, -0.337673f, 0.127914f, 0.0672558f, 0.0406015f, -0.0426055f, 0.190527f, -0.0573009f, -0.0709962f, 0.0617738f, -0.0907345f, -0.0232096f, -0.0862748f, 0.0699806f, -0.0536684f, 0.0409291f, 0.00412504f, 0.023598f, 0.0340969f, 0.100553f, 0.00439934f, 0.107422f, -0.20002f, 0.187097f, -0.0146453f, 0.0949273f, 0.0331684f, 0.0731199f, -0.0464612f, -0.21046f, 0.101544f, -0.129764f, -0.202738f, 0.238233f, 0.0813189f, -0.0480535f, -0.0665367f, -0.0331634f, -0.190586f, -0.0497136f, -0.0142477f, -0.0621997f, -0.145445f, 0.0683272f, -0.0862693f, 0.0173492f, -0.181643f, 0.180025f, 0.019862f, -0.054562f, -0.0602705f, 0.0020683f, -0.121318f, -0.0438098f, -0.178227f, -0.0235997f, -0.0816472f, -0.172861f, 0.149396f, -0.153848f, 0.0267191f, -0.0946328f, -0.0685558f, 0.158705f, -0.0358897f, -0.0893648f, -0.204395f, -0.0893452f, 0.0509498f, -0.0790239f, 0.0163266f, 0.0403639f, -0.0613492f, 0.152536f, -0.186592f, -0.0310549f, -0.0309045f, -0.01992f, -0.0129207f, 0.055837f, 0.138541f, 0.0584419f, 0.0990501f, -0.139858f, -0.0326965f, 0.15213f, -0.0887653f, -0.106026f, 0.0803389f, 0.129467f, -0.00250847f, 0.0626827f, 0.0654407f, 0.24985f, -0.0500467f, 0.0963781f, 0.0401885f, 0.0924325f, 0.119933f, 0.157302f, -0.0357306f, -0.0562615f, -0.0232002f, -0.137852f, 0.129844f, 0.0725478f, 0.0190554f, -0.0137929f, -0.000402723f, -0.034554f, -0.130379f, -0.173082f, -0.151903f, 0.0351606f, 0.0590506f, -0.0558176f, 0.0645599f, -0.0106926f, 0.113467f, -0.0152274f, -0.00126248f, -0.113239f, -0.152765f, 0.0508081f, 0.0222702f, 0.102011f, -0.00836111f, 0.00797017f, 0.0994384f, 0.049891f, -0.0398738f, -0.0133129f, 0.0146728f, -0.089794f, 0.0848729f, 0.121835f, -0.14114f, -0.0275496f, 0.109233f, 0.046335f, -0.0514998f, 0.0995f, 0.0310115f, -0.034467f, -0.0457931f, 0.213278f, -0.0203517f, 0.0131086f, -0.193927f, 0.250392f, -0.152087f, -0.0748411f, 0.072879f, -0.0684409f, 0.00387648f, -0.0861347f, 0.00151197f, 0.104481f, 0.0687176f, 0.123018f, -0.0438737f, -0.0322378f, -0.0461832f, 0.0723285f, -0.0080367f, 0.0915174f, 0.0505217f, 0.136071f, -0.0442298f, 0.0615423f, 0.149655f, 0.0294706f, -0.225458f, -0.124449f, 0.0726815f, -0.140964f, 0.164771f, 0.0551767f, 0.0904592f, -0.118941f, -0.0057868f, 0.0567277f, 0.0819238f, 0.138475f, -0.0521398f, -0.0688054f, 0.0723337f, 0.0171323f, -0.146399f, 0.0256809f, 0.104595f, 0.0381023f, 0.0369266f, -0.122314f, 0.0079819f, -0.0526116f, 0.197912f, -0.110533f, -0.0693056f, -0.108105f, 0.0733406f, 0.0752013f, -0.176603f, 0.0747555f, 0.0956068f, -0.139816f, 0.272367f, -0.0960868f, 0.0741605f, 0.0603402f, 0.0910532f, -0.0410284f, -0.00563304f, -0.053175f, -0.143302f, 0.0348099f, 0.0366987f, 0.0575291f, -0.0151579f, 0.123805f, -0.236187f, -0.108712f, -0.0114007f, 0.0082981f, -0.256597f, -0.0568361f, -0.0045906f, 0.142242f, 0.00883428f, 0.0461864f, -0.0238757f, -0.102446f, -0.128894f, -0.142248f, -0.234538f, -0.0767916f, 0.13515f, 0.220174f, -0.159212f, -0.0204824f, 0.126288f, -0.011798f, -0.0454304f, -0.121332f, 0.162123f, -0.0428916f, -0.134382f, -0.131761f, 0.0644061f, 0.090138f, 0.0746719f, -0.0629435f, 0.0660421f, -0.265611f, -0.1252f, -0.138619f, 0.0942247f, -0.186433f, -0.00148188f, 0.0183243f, 0.0571324f, 0.0281606f, -0.041575f, -0.111864f, -0.000725677f, -0.168147f, -0.0192817f, 0.0137908f, 0.0394205f, -0.0802342f, 0.126468f, -0.135291f, 0.0326565f, -0.0709591f, 0.0858799f, 0.08403f, 0.111998f, 0.0953021f, 0.0940655f, 0.15789f, 0.136498f, -0.0400923f, 0.0420829f, -0.0802106f, -0.0162175f, 0.0528788f, -0.157624f, -0.00385809f, -0.180095f, -0.114703f, -0.0903374f, -0.0604941f, -0.0552032f, -0.012021f, -0.176201f, -0.0658382f, 0.127155f, -0.259765f, 0.141773f, 0.0611034f, 0.0737019f, 0.133314f, 0.0914951f, 0.169983f, 0.107022f, -0.0587528f, -0.0389543f, -0.0865521f, -0.0836389f, -0.0453287f, 0.114693f, 0.0788487f, 0.123235f, -0.0324408f, 0.0639763f, 0.0976221f, 0.196041f, 0.0379463f, -0.169787f, -0.163403f, -0.247587f, 0.168823f, 0.0159997f, 0.06721f, -0.148646f, 0.00929928f, -0.0070568f, -0.117536f, -0.0153272f, -0.137354f, 0.038624f, -0.0038443f, 0.00819823f, -0.233045f, -0.00258803f, 0.0139408f, 0.0766028f, 0.116963f, 0.0697311f, 0.0145598f, 0.0588097f, -0.102048f, -0.179685f, 0.0211633f, 0.224168f, 0.111601f, -0.0318441f, 0.186607f, 0.0093449f, 0.0399215f, 0.089086f, -0.0770279f, -0.00576737f, 0.0231839f, -0.0114313f, 0.10389f, 0.13228f, -0.108945f, 0.240051f, -0.0871816f, -0.111792f, 0.00100859f, -0.0129251f, -0.0376253f, 0.0372446f, -0.0805084f, 0.218396f, -0.0105688f, 0.065017f, -0.0663147f, -0.0743168f, -0.003208f, 0.0210738f, 0.153879f, 0.0733973f, -0.0312617f, 0.0483973f, -0.134311f, -0.0281295f, 0.0434177f, 0.150089f, -0.0856805f, -0.192134f, -0.000806565f, 0.149429f, -0.00375822f, 0.0264429f, -0.271188f, -0.199742f, 0.0938549f, 0.218101f, 0.0202135f, 0.10379f, -0.0710046f, -0.080639f, 0.164056f, -0.0611322f, 0.0294645f, -0.105565f, 0.0204174f, 0.0964582f, -0.0808187f, 0.000229935f, 0.0872276f, -0.0340682f, 0.106692f, 0.0297408f, -0.0463206f, -0.149999f, 0.0964339f, 0.0884856f, 0.0168943f, 0.0835406f, 0.201717f, 0.0341834f, -0.154827f, -0.131045f, 0.070719f, 0.0386802f, -0.232184f, -0.0683644f, -0.183196f, 0.00812938f, 0.0659822f, -0.0335141f, 0.0848516f, 0.157614f, -0.201978f, 0.0875637f, -0.187193f, 0.146812f, 0.170169f, 0.0886726f, 0.0970786f, -0.167372f, -0.0939955f, -0.318612f, 0.00587688f, 0.0691672f, 0.0334219f, 0.0686526f, -0.0400554f, 0.0143109f, 0.00520719f, -0.100083f, 0.18689f, -0.237005f, -0.0387298f, -0.0893783f, 0.0497228f, -0.120481f, -0.0886382f, -0.152141f, 0.0517476f, 0.0777118f, 0.173112f, -0.0187714f, 0.042783f, -0.117141f, 0.0383481f, 0.140177f, -0.255425f, 0.136235f, -0.144934f, -0.13871f, -0.0235519f, 0.0134128f, 0.19625f, 0.054515f, 0.0940736f, 0.115104f, -0.0985969f, 0.0777914f, 0.0552802f, 0.213764f, -0.198944f, -0.220573f, 0.346493f, 0.252531f, -0.00422667f, -0.239212f, -0.0686128f, -0.206844f, -0.157226f, 0.0220431f, -0.051903f, 0.120029f, 0.0762696f, 0.207516f, -0.0709739f, 0.07221f, 0.0747801f, -0.133549f, -0.00199314f, -0.00435693f, -0.206254f, 0.104801f, 0.0247941f, 0.175217f, 0.253649f, 0.197022f, 0.0871701f, 0.395563f, -0.0991652f, 0.0768891f, -0.123757f, -0.122086f, 0.0573941f, -0.0406446f, -0.0201263f, 0.187732f, -0.0918992f, -0.00541284f, -0.0611785f, 0.0546662f, 0.233745f, -0.00158087f, 0.127657f, -0.0970245f, 0.25835f, 0.180962f, -0.310234f, 0.173437f, 0.113523f, -0.178352f, -0.0509107f, -0.0407568f, -0.341494f, 0.207493f, -0.146067f, -0.106983f, 0.0651342f, -0.0989794f, -0.0511901f, 0.0301403f, 0.250614f, 0.26192f, -0.101836f, -0.0913256f, 0.238546f, -0.100482f, 0.0816962f, 0.0143809f, -0.0325724f, 0.0297512f, 0.130903f, -0.11606f, 0.0108341f, -0.169158f, 0.0239357f, -0.125937f, 0.0610578f, 0.0786375f, 0.0393175f, 0.12222f, -0.242595f, 0.106215f, 0.0818114f, 0.100762f, -0.015534f, 0.111901f, 0.0547829f, -0.0287998f, -0.108614f, 0.0237385f, 0.183493f, 0.0590939f, -0.0987597f, 0.0985791f, 0.22455f, 0.0930122f, 0.143714f, -0.257628f, -0.0754643f, -0.183765f, 0.176311f, 0.0739302f, -0.14756f, 0.138913f, 0.00097637f, -0.0519384f, -0.0397412f, -0.118281f, -0.160996f, -0.0820528f, -0.260824f, -0.0132233f, -0.239511f, -0.171331f, -0.0485506f, -0.0598971f, 0.0134245f, -0.169096f, 0.101519f, 0.000915713f, -0.018048f, 0.246257f, 0.0590481f, -0.166599f, -0.0902769f, 0.184166f, 0.0462626f, 0.0517882f, 0.149439f, 0.0224431f, 0.0666992f, 0.210815f, 0.0684793f, -0.0125797f, -0.189643f, -0.154604f, 0.156101f, 0.0839951f, 0.0028483f, 0.121006f, -0.132909f, -0.12377f, 0.129019f, 0.091689f, -0.00907862f, 0.128354f, 0.11905f, 0.0471765f, -0.108215f, -0.0102566f, 0.0759183f, -0.0872731f, -0.0473481f, 0.0254678f, 0.0498371f, 0.044096f, 0.0909648f, 0.0724802f, 0.0893671f, -0.00830164f, 0.000632966f, -0.119324f, -0.0274789f, -0.0372516f, 0.0172738f, 0.124678f, -0.0744541f, -0.0271082f, -0.072345f, 0.0450977f, -0.0411264f, -0.0999664f, -0.0281494f, 0.122916f, -0.0443867f, -0.128005f, 0.0286878f, 0.0650687f, 0.165933f, 0.0739527f, 0.0216514f, -0.0835728f, 0.0433372f, 0.119029f, -0.271336f, 0.0233724f, 0.125775f, -0.026998f, 0.0155825f, -0.0241802f, -0.0641533f, 0.0740344f, -0.0222358f, 0.197149f, 0.0980529f, -0.0532091f, 0.202056f, -0.0200424f, 0.0352152f, -0.0920404f, -0.0694799f, 0.12368f, 0.00133602f, 0.118874f, -0.0725191f, 0.0213329f, 0.0624499f, 0.127938f, 0.0865946f, -0.0940003f, -0.132714f, 0.00997395f, 0.0641619f, 0.232552f, -0.179213f, -0.000701496f, -0.113193f, 0.152497f, 0.0231037f, 0.0163832f, -0.0445631f, 0.128751f, 0.0615839f, -0.0502277f, -0.14581f, -0.0526718f, 0.0503422f, -0.0105235f, -0.0795165f, 0.247842f, -0.144936f, -0.0352342f, 0.0849528f, -0.078038f, 0.167335f, -0.158459f, -0.0557134f, -0.0733987f, -0.18299f, -0.0870967f, -0.0811698f, -0.279608f, -0.147386f, -0.00195741f, -0.0882113f, -0.094498f, -0.0687418f, 0.120128f, -0.193807f, -0.0943624f, -0.0452691f, -0.00933126f, 0.0993037f, 0.0807111f, -0.0158083f, -0.0901526f, 0.0559621f, 0.0508216f, 0.0162794f, -0.0146284f, 0.00750276f, 0.0369458f, -0.045062f, 0.0212134f, -0.0931434f, -0.0275704f, -0.0859369f, -0.0872929f, 0.070357f, -0.0100056f, -0.0383859f, -0.0154879f, 0.0698541f, -0.122758f, -0.152523f, 0.0647284f, 0.149023f, 0.034355f, 0.255972f, -0.154432f, 0.0345157f, 0.174081f, 0.048183f, 0.111724f, -0.0466153f, 0.0375638f, 0.0786104f, 0.0734949f, -0.151916f, 0.115964f, -0.0935412f, 0.00818373f, 0.224596f, 0.021205f, 0.0063948f, 0.118865f, -0.0537229f, -0.139579f, 0.0781279f, -0.0783773f, -0.0254585f, -0.0530907f, 0.02068f, 0.0254399f, 0.152746f, -0.0510496f, 0.0234118f, -0.145661f, -0.00738575f, -0.0888684f, -0.115818f, 0.0260417f, -0.0912834f, -0.0256829f, -0.0570219f, 0.0631693f, -0.156361f, 0.0137558f, 0.0969702f, 0.107687f, -0.0117429f, 0.00862114f, 0.0622207f, 0.0165275f, -0.0437323f, -0.0975921f, -0.0812233f, -0.220433f, -0.057978f, -0.176597f, 0.090933f, -0.125221f, -0.0327045f, -0.0115791f, 0.0263586f, 0.0881941f, -0.0431672f, 0.0677644f, 0.0346976f, -0.0816619f, -0.0779857f, 0.0680058f, 0.0194521f, -0.0702188f, -0.132024f, -0.126438f, 0.0205312f, 0.0736443f, 0.314614f, 0.0990097f, -0.0544497f, -0.142955f, -0.0497144f, 0.264921f, -0.140555f, 0.0371764f, -0.00498873f, -8.09877e-05f, -0.000814472f, -0.0102357f, -0.171823f, -0.169105f, 0.113624f, 0.0511462f, -0.0346457f, -0.0914523f, -0.14434f, -0.0141881f, -0.00853768f, -0.0488017f, 0.139081f, -0.100267f, 0.0636093f, -0.0216236f, -0.19739f, -0.233071f, 0.0586845f, 0.0117586f, -0.276713f, 0.0838427f, -0.060244f, -0.0982621f, -0.225253f, -0.0302103f, 0.0570153f, -0.108833f, 0.202391f, 0.152473f, 0.0993896f, -0.178439f, -0.0953168f, -0.136303f, 0.129098f, 0.285423f, 0.109661f, -0.155253f, 0.119626f, 0.0385801f, 0.0875497f, 0.0205439f, -0.0729366f, -0.00487317f, 0.0204085f, 0.0502113f, -0.0442955f, 0.0863624f, -0.053198f, -0.129695f, -0.104573f, 0.145681f, -0.0657611f, -0.168697f, -0.0968554f, -0.109257f, 0.0321962f, 0.0539461f, 0.00939985f, -0.0441588f, -0.150352f, 0.0467044f, 0.0500705f, 0.161322f, -0.0764829f, -0.000157208f, -0.107509f, -0.0760604f, -0.0351501f, -0.0238845f, -0.135212f, -0.110429f, -0.195681f, -0.0570679f, -0.0548974f, 0.186518f, -0.0234867f, 0.198276f, -0.0549863f, 0.0560641f, -0.0518668f, 0.063735f, 0.0292681f, 0.0184227f, 0.00167448f, -0.052506f, -0.116458f, 0.0480938f, -0.21339f, -0.187817f, -0.151569f, -0.150489f, -0.156143f, 0.0823509f, 0.0975686f, -0.0261262f, -0.162331f, 0.0946185f, 0.104162f, 0.0391676f, 0.0251004f, 0.107181f, -0.181923f, -0.0529952f, 0.0459285f, -0.137269f, 0.0157274f, -0.0258557f, 0.134554f, -0.0887164f, 0.0884575f, -0.252294f, -0.0848727f, 0.22683f, 0.0791082f, -0.0254646f, -0.0856142f, 0.164907f, 0.0583032f, -0.00801035f, 0.0531646f, -0.0446117f, 0.137702f, -0.00622047f, -0.0323108f, 0.128118f, 0.219158f, 0.0273014f, 0.0975415f, -0.0187836f, -0.236898f, 0.0466686f, 0.0956944f, 0.198526f, -0.0665949f, -0.167276f, 0.135434f, -0.0722989f, -0.0664697f, 0.226571f, -0.158872f, 0.00833619f, -0.341665f, -0.0794009f, -0.198809f, 0.0731554f, 0.0305384f, 0.175439f, 0.114125f, 0.0856114f, 0.0242627f, 0.0315152f, -0.117879f, 0.175859f, -0.113087f, 0.0120891f, -0.0173612f, 0.00997085f, -0.0264384f, -0.108841f, -0.08689f, 0.102022f, -0.144029f, 0.112119f, -0.0856172f, -0.0686946f, 0.268562f, 0.00047582f, -0.0944364f, -0.0411868f, -0.1289f, -0.196863f, -0.136398f, -0.0254424f, 0.0861067f, 0.0949226f, 0.171072f, -0.154468f, -0.146957f, -0.0410068f, 0.0115478f, 0.197138f, -0.152954f, 0.106627f, 0.00505997f, 0.141712f, 0.0597662f, 0.0270823f, 0.0350312f, 0.012946f, -0.177377f, 0.127674f, 0.0358507f, 0.0797108f, 0.156543f, -0.0809744f, 0.249463f, -0.0700761f, -0.159402f, 0.0272831f, -0.0980119f, 0.143138f, -0.133614f, -0.050634f, -0.187562f, -0.115823f, -0.0155302f, -0.090741f, 0.0632671f, -0.0435965f, 0.129116f, 0.0263236f, -0.00485528f, -0.154666f, -0.0156452f, -0.00018007f, 0.0738241f, 0.000598897f, -0.169133f, -0.0480124f, -0.0298404f, 0.155095f, -0.197852f, 0.214441f, -0.00298255f, -0.0920401f, 0.0700399f, -0.175378f, 0.0431732f, 0.0141123f, -0.0374731f, -0.0897348f, 0.229117f, 0.11757f, -0.0302691f, 0.0620103f, -0.263186f, -0.125723f, 0.0992674f, 0.0997002f, 0.0211126f, -0.0565589f, 0.115602f, 0.0805328f, 0.106907f, 0.186724f, 0.00171608f, -0.143464f, -0.105417f, -0.012032f, 0.0127386f, -0.192324f, -0.0326266f, -0.0906086f, -0.0441885f, 0.159425f, 0.0286838f, -0.189443f, -0.165288f, 0.228009f, -0.043893f, -0.0958844f, 0.0723462f, -0.0792496f, 0.0825272f, 0.00640276f, -0.136032f, 0.043204f, -0.103205f, 0.0080673f, 0.0356712f, 0.119815f, 0.0959082f, 0.101217f, -0.133688f, -0.00477518f, -0.202828f, 0.0936533f, 0.0120575f, -0.00889249f, -0.0818841f, 0.247391f, -0.0450134f, -0.148349f, -0.157881f, 0.141389f, -0.00939112f, 0.148098f, -0.219072f, 0.0288368f, 0.0654726f, 0.150557f, -0.0791778f, 0.075878f, 0.189526f, -0.0743745f, -0.104598f, -0.0496276f, -0.159228f, 0.203632f, 0.0271023f, -0.0950587f, -0.0226568f, -0.0266233f, 0.0221706f, 0.0158419f, 0.0137486f, 0.0919029f, 0.153893f, 0.0611849f, -0.207132f, -0.168769f, -0.200277f, -0.0789195f, -0.231864f, -0.00799611f, -0.103986f, 0.0775991f, 0.0341334f, 0.0774594f, -0.0483841f, -0.0219881f, 0.126847f, -0.160608f, -0.0637534f, 0.115408f, 0.0199509f, -0.0497577f, 0.146514f, 0.0730299f, -0.193839f, -0.197168f, 0.0541603f, 0.0944699f, -0.105253f, -0.301211f, 0.0133876f, -0.0804657f, 0.0249275f, 0.205438f, 0.00265334f, -0.076736f, -0.216052f, 0.0499984f, -0.0401714f, -0.214376f, 0.198967f, -0.116248f, -0.100692f, -0.217941f, 0.0530215f, -0.0272331f, 0.339995f, 0.0302015f, 0.0163579f, 0.0983881f, 0.133081f, -0.204081f, 0.10162f, 0.0527508f, 0.0963845f, 0.151947f, 0.259329f, -0.234546f, -0.0757476f, 0.0299869f, -0.101581f, 0.0659922f, 0.0611209f, 0.0118815f, 0.179008f, 0.0475679f, 0.224218f, -0.187792f, -0.0929802f, -0.0626867f, -0.0368112f, 0.0753352f, -0.147055f, -0.240424f, 0.00216899f, -0.110089f, -0.009897f, -0.266503f, -0.0906472f, -0.0147017f, -0.0186392f, -0.0876514f, 0.00212695f, -0.0430192f, -0.177949f, 0.00131305f, -0.205864f, -0.00143288f, 0.0534494f, -0.0277134f, -0.159272f, 0.0684558f, 0.0342664f, -0.0925628f, 0.0288222f, 0.0404071f, 0.0122947f, -0.0771165f, -0.0771099f, 0.0491848f, 0.17102f, -0.242292f, -0.0137204f, -0.0834788f, -0.0180615f, -0.0117588f, -0.113914f, -0.0767373f, -0.232972f, 0.150733f, -0.0944394f, -0.0254586f, 0.068054f, -0.0659635f, 0.101386f, -0.0748721f, -0.110051f, -0.189159f, -0.140569f, -0.0446965f, -0.0184741f, 0.159162f, 0.0558691f, 0.0216868f, -0.0567114f, -0.123769f, 0.075249f, -0.0256689f, 0.144854f, 0.190347f, -0.133308f, -0.147076f, -0.133791f, -0.016775f, 0.0830687f, 0.101195f, -0.126305f, 0.0978068f, 0.0619856f, 0.196209f, -0.0581432f, 0.0362587f, -0.021826f, 0.0211741f, 0.0583905f, 0.217843f, -0.0397512f, -0.281466f, 0.0845287f, -0.0866152f, 0.102335f, -0.162154f, -0.120561f, -0.0226728f, -0.0808528f, -0.184674f, 0.0724658f, 0.0981803f, -0.0371117f, -0.00392132f, 0.11378f, -0.0405134f, -0.220721f, 0.110583f, 0.0197092f, 0.110334f, 0.0492225f, -0.0713641f, 0.066862f, -0.0472331f, -0.100936f, -0.0506136f, -0.131898f, 0.00987059f, -0.00250881f, -0.177908f, -0.214663f, -0.152705f, -0.00672176f, -0.0803683f, -0.123636f, 0.0288302f, 0.163289f, -0.050421f, 0.0103707f, -0.164398f, -0.0160641f, 0.0351796f, -0.15f, 0.140767f, 0.0411046f, -0.157957f, -0.301276f, -0.0444451f, 0.0171288f, 0.0157163f, 0.0720827f, -0.161942f, 0.0687341f, -0.16283f, 0.0534956f, 0.1062f, -0.0783324f, 0.0202666f, 0.17138f, 0.181385f, -0.152399f, 0.179754f, 0.0214241f, 0.058856f, 0.171961f, 0.22458f, 0.0349289f, 0.0335166f, 0.00686367f, 0.00342673f, 0.0576085f, 0.035613f, -0.134209f, 0.0826126f, 0.00653408f, 0.00170807f, -0.0374835f, -0.130168f, -0.0916371f, -0.19758f, 0.1327f, 0.243551f, 0.17522f, 0.13028f, 0.0862923f, -0.0941983f, 0.102924f, 0.185118f, -0.145095f, 0.0185354f, -0.010714f, 0.0690198f, -0.17636f, -0.275325f, -0.0405699f, 0.0359512f, -0.0626796f, 0.0595415f, 0.0646687f, -0.0522682f, -0.0852782f, 0.166305f, -0.0475514f, 0.149478f, 0.0427084f, 0.0347798f, -0.0735559f, -0.191634f, -0.02225f, 0.0277435f, 0.123117f, -0.323727f, -0.000172165f, 0.00412682f, -0.00319381f, -0.0350868f, 0.193767f, 0.0957432f, -0.0918066f, 0.134113f, -0.00375939f, -0.162116f, 0.00150675f, -0.098307f, 0.0262758f, -0.108571f, -0.0372432f, 0.123669f, 0.207264f, -0.186157f, 0.0687398f, -0.171402f, 0.00893943f, 0.0234102f, -0.0705333f, 0.0202721f, 0.0973912f, -0.149974f, 0.0471726f, -0.021197f, 0.0565218f, -0.162988f, 0.0842796f, 0.242356f, -0.0620233f, 0.227076f, -0.199444f, 0.177561f, -0.0839322f, 0.146353f, -0.120886f, 0.111667f, 0.0985586f, 0.270054f, 0.111572f, 0.110443f, 0.0685904f, -0.0884465f, 0.0819207f, -0.10558f, -0.0261519f, 0.0499509f, -0.195203f, 0.0647375f, -0.0352002f, 0.0255607f, 0.1127f, -0.0670053f, 0.202853f, 0.0184448f, 0.0298616f, -0.0360936f, 0.0157753f, -0.0402077f, 0.144346f, 0.0261414f, -0.064394f, 0.0422587f, -0.117497f, -0.0111331f, 0.0419562f, 0.140246f, 0.0171283f, -0.10808f, -0.0223731f, -0.0645281f, -0.249606f, 0.22143f, 0.0357336f, -0.0717392f, 0.0360515f, 0.176227f, 0.0524783f, -0.0503425f, 0.0562612f, 0.113821f, 0.0919869f, -0.0720958f, -0.0529028f, 0.000553539f, -0.0750961f, -0.0594374f, -0.0280153f, 0.000619967f, -0.0365001f, -0.110254f, -0.0641328f, 0.0952707f, -0.0444509f, 0.0834264f, 0.11683f, -0.01316f, -0.0650312f, 0.203534f, -0.107234f, -0.298236f, -0.10238f, 0.0334302f, 0.0442249f, 0.028449f, -0.165761f, 0.105184f, 0.228591f, 0.00962482f, 0.222622f, -0.0706545f, 0.0106073f, 0.110319f, -0.326858f, -0.440222f, -0.0575952f, 0.24808f, 0.0292478f, 0.0185464f, -0.088782f, 0.0900113f, 0.0458104f, 0.162215f, 0.0379804f, -0.117275f, 0.123599f, 0.148437f, 0.138604f, -0.0331059f, -0.073397f, 0.00611254f, -0.013326f, -0.0303253f, -0.0629295f, 0.0792006f, 0.0799332f, 0.0333825f, -0.0212425f, 0.129907f, -0.0285609f, -0.186399f, -0.148769f, 0.132012f, -0.0853005f, -0.0783566f, -0.134815f, -0.126995f, -0.209875f, -0.131205f, 0.0870434f, 0.0458716f, -0.0728801f, 0.0377689f, -0.159868f, -0.225185f, 0.280205f, 0.151265f, -0.016483f, -0.0330573f, 0.0527649f, -0.0211995f, -0.191451f, 0.0424497f, -0.0922244f, 0.150628f, 0.0736926f, 0.0723533f, 0.0815855f, 0.144464f, -0.151292f, -0.230406f, -0.0452177f, 0.0555814f, -0.11915f, -0.251644f, -0.114128f, 0.118649f, 0.0638393f, 0.0851527f, -0.0264223f, 0.133741f, -0.0942236f, 0.0446431f, -0.110528f, -0.0944695f, 0.0464963f, -0.0815944f, 0.0223472f, 0.082086f, 0.0733629f, -0.0645797f, 0.0147217f, -0.171462f, -0.0138859f, 0.18272f, -0.207324f, -0.137223f, 0.0496793f, 0.281307f, 0.17677f, -0.0229124f, -0.0679883f, 0.0821163f, -0.136658f, -0.112408f, -0.247257f, 0.121516f, 0.0250721f, -0.301257f, -0.101366f, 0.163814f, -0.208966f, 0.189492f, 0.00126161f, -0.0461888f, -0.164712f, -0.0772721f, -0.135091f, -0.122769f, 0.00559763f, -0.144843f, 0.121335f, 0.0345858f, -0.133238f, -0.0241608f, -0.0672589f, -0.0378004f, -0.167598f, -0.0772068f, -0.0139315f, -0.234462f, -0.0241108f, 0.0359123f, 0.257516f, -0.0742828f, 0.0462191f, 0.0093693f, -0.0456165f, -0.127275f, -0.272069f, 0.167343f, 0.000593722f, -0.106951f, 0.102862f, -0.154063f, -0.248708f, 0.341883f, -0.217728f, -0.124336f, 0.0595328f, -0.0339577f, -0.125867f, -0.0167917f, 0.00484468f, -0.0861194f, 0.144455f, 0.0920714f, -0.0897778f, -0.120908f, -0.161827f, 0.226265f, -0.119526f, -0.0649891f, 0.142878f, -0.142797f, 0.13393f, -0.108045f, 0.0108709f, 0.0782845f, -0.239657f, 0.0318416f, -0.137677f, 0.0840237f, -0.0200807f, 0.273602f, 0.0183498f, -0.00220983f, 0.0576786f, -0.085561f, -0.250306f, -0.0871963f, -0.282283f, 0.0123504f, 0.0180853f, 0.32958f, -0.10918f, 0.186381f, -0.131337f, -0.169652f, 0.187906f, 0.172923f, 0.170654f, 0.160303f, 0.0268983f, 0.065761f, -0.109381f, 0.114429f, 0.0540349f, 0.21094f, -0.2052f, -0.165061f, -0.0910276f, 0.131276f, 0.120559f, -0.0649677f, 0.381747f, 0.0552313f, -0.0579638f, 0.00477845f, -0.247373f, -0.0288881f, 0.0451314f, 0.114252f, -0.0229246f, -0.193678f, -0.103561f, -0.0380153f, -0.0226671f, -0.0719931f, 0.101598f, 0.207101f, 0.0374102f, 0.0909302f, -0.139556f, -0.279288f, -0.0301317f, 0.13867f, -0.154832f, 0.163903f, 0.216573f, 0.065601f, -0.145899f, 0.107469f, 0.0653497f, -0.0189586f, -0.0177821f, 0.114605f, 0.0473274f, 0.122825f, -0.20746f, -0.0325988f, 0.0403736f, -0.179467f, -0.0612779f, -0.183201f, -0.0188015f, -0.0266037f, -0.00394589f, 0.134049f, -0.157367f, 0.0256643f, -0.0738643f, 0.02335f, -0.0954701f, -0.00929364f, 0.177004f, -0.141649f, 0.00713208f, 0.231218f, 0.132211f, -0.00867581f, 0.0790205f, -0.150057f, 0.208738f, 0.157519f, -0.0843213f, -0.266932f, 0.122019f, -0.154509f, -0.255897f, 0.124541f, 0.07425f, 0.0708411f, -0.0885144f, 0.08492f, 0.193002f, -0.0267919f, -0.0383252f, 0.0398611f, 0.000949309f, -0.0394554f, 0.0300334f, -0.038555f, 0.0689171f, 0.064731f, 0.105158f, 0.0201803f, -0.0167383f, -0.0886018f, -0.0400471f, -0.0991828f, -0.128224f, -0.122251f, -0.12318f, -0.059461f, 0.0510688f, 0.0201935f, 0.11547f, -0.0346739f, 0.0586807f, 0.054824f, -0.0296076f, -0.00150605f, 0.147464f, 0.204562f, -0.0101649f, 0.0425453f, 0.0779762f, 0.141893f, 0.0817069f, 0.00398279f, -0.0943074f, -0.062065f, 0.00513527f, 0.085407f, -0.15005f, 0.064957f, -0.0457195f, 0.0836821f, -0.222201f, 0.136469f, 0.00275666f, -0.0767138f, 0.142496f, -0.0846225f, 0.0154269f, 0.0542473f, -0.00993712f, 0.0282734f, 0.117859f, -0.0939353f, 0.0677885f, 0.162809f, -0.0410675f, -0.0802079f, -0.0305121f, -0.130228f, 0.0628199f, -0.150679f, -0.0432544f, 0.00944611f, 0.0511651f, -0.181404f, -0.0184578f, -0.165017f, 0.151743f, -0.0441114f, -0.165775f, 0.109653f, -0.168286f, -0.0260845f, 0.0638732f, 0.0138989f, -0.181958f, 0.018256f, -0.0143051f, 0.183006f, -0.144605f, 0.109899f, -0.0254443f, -0.0455018f, 0.118507f, 0.176807f, 0.0102702f, 0.016491f, 0.107213f, -0.159602f, -0.137507f, 0.154397f, -0.25507f, -0.0120717f, -0.119234f, 0.169248f, 0.228893f, -0.124692f, -0.178465f, 0.0220749f, -0.0456234f, -0.0684069f, -0.147037f, 0.0230809f, 0.0876082f, 0.120368f, 0.0582849f, -0.00355417f, -0.0043634f, -0.0153415f, 0.0994447f, -0.0683476f, 0.127842f, -0.134445f, -0.00348224f, 0.263128f, 0.062158f, 0.168719f, 0.022567f, -0.0178715f, -0.0586398f, -0.189262f, 0.0320581f, -0.0753917f, -0.320174f, 0.0396039f, -0.0551406f, -0.0743214f, -0.200079f, -0.128834f, -0.108355f, -0.197825f, 0.0226774f, -0.016341f, -0.0663713f, 0.168752f, 0.0294788f, -0.0959762f, 0.0548698f, -0.0763998f, -0.135451f, -0.0444042f, -0.0978526f, 0.190033f, 0.0128598f, -0.100436f, 0.222873f, 0.0155488f, -0.0529415f, 0.235763f, -0.15444f, -0.0629387f, -0.0552942f, 0.126953f, 0.0607097f, 0.107376f, 0.0808372f, 0.0896583f, 1.23208e-05f, 0.140546f, -0.107814f, 0.0976342f, 0.0509464f, 0.094414f, 0.0460529f, -0.146311f, 0.109649f, 0.0379669f, 0.231985f, -0.0931072f, 0.122329f, -0.00840947f, -0.0472979f, 0.135929f, -0.194327f, -0.149952f, 0.212248f, -0.200507f, 0.0619317f, -0.403503f, -0.0074103f, -0.157606f, 0.036927f, -0.289893f, 0.180634f, 0.247185f, 0.195805f, 0.0217883f, -0.0654866f, 0.128957f, -0.148074f, 0.103619f, 0.0688122f, -0.0769103f, -0.0667347f, 0.205147f, -0.158731f, 0.0978948f, 0.0334864f, 0.312355f, 0.15225f, 0.256623f, 0.046582f, 0.0358733f, 0.214562f, -0.0216264f, -0.05009f, -0.197065f, 0.0279339f, -0.0191823f, -0.0453594f, -0.226503f, -0.0392977f, 0.0914561f, -0.409663f, -0.097359f, -0.204208f, 0.00408153f, -0.057314f, 0.0373159f, -0.207045f, -0.0322718f, -0.0120588f, -0.220491f, -0.037735f, 0.00870751f, 0.102895f, -0.319799f, 0.0475923f, 0.202644f, -0.0453919f, -0.0628576f, 0.0159608f, 0.171638f, -0.101145f, -0.258353f, -0.232272f, -0.0357673f, 0.139009f, 0.314819f, -0.150817f, 0.184125f, -0.000577013f, 0.0439305f, 0.0493102f, -0.135103f, -0.0462226f, 0.167646f, 0.0672773f, 0.0917796f, 0.0164344f, 0.166833f, -0.0554508f, -0.0483194f, -0.0710453f, 0.133401f, -0.129586f, 0.142177f, 0.0314018f, -0.128981f, -0.0555864f, -0.0639047f, 0.0139478f, -0.106605f, 0.164795f, -0.146754f, -0.139427f, -0.211722f, 0.0862267f, -0.148979f, 0.0111862f, 0.0288222f, 0.10779f, -0.0913491f, 0.0626709f, 0.161741f, -0.0695452f, -0.06409f, -0.241185f, 0.18416f, -0.012952f, 0.0641645f, 0.0818256f, -0.0459751f, -0.188514f, 0.095351f, -0.243727f, -0.047294f, 0.0327165f, -0.0525586f, -0.0380367f, -0.04936f, -0.0796283f, -0.00888014f, -0.157112f, -0.118735f, 0.100963f, 0.206172f, 0.00225659f, -0.0475949f, 0.164414f, -0.190789f, -0.0477156f, -0.0431208f, 0.0685282f, 0.0861233f, -0.188987f, -0.132707f, -0.0621275f, -0.0263673f, -0.0657838f, -0.195867f, -0.0529369f, -0.207141f, -0.0426716f, 0.207274f, -0.0630787f, -0.0798529f, 0.0690846f, 0.0102907f, -0.044386f, -0.10565f, -0.252799f, 0.0129527f, 0.210918f, 0.186183f, -0.0110979f, 0.00729927f, 0.0341354f, 0.128562f, -0.115046f, 0.115981f, -0.178558f, -0.188631f, -0.0524225f, -0.135192f, -0.0392289f, 0.015375f, -0.107738f, 0.0129793f, -0.203325f, -0.0342112f, 0.103749f, -0.0710944f, 0.122715f, -0.137377f, -0.212011f, -0.0904258f, 0.092591f, -0.0476834f, -0.20151f, -0.0339491f, 0.10012f, 0.0276839f, -0.150351f, -0.0547634f, -0.0886687f, 0.0406009f, -0.12149f, -0.0918859f, 0.170578f, 0.0427569f, -0.0606375f, -0.0466494f, 0.00461009f, -0.126782f, 0.0874969f, -0.166015f, 0.0799223f, -0.0312467f, -0.0193017f, -0.0562101f, 0.108013f, 0.0175532f, -0.00514444f, -0.172384f, 0.325698f, 0.142243f, -0.129064f, -0.13721f, 0.202511f, -0.158227f, -0.0915347f, 0.0343635f, 0.0688519f, 0.215844f, 0.0664976f, -0.0121733f, -0.0765617f, 0.118552f, 0.0769473f, 0.0738631f, -0.0942948f, 0.0951213f, 0.114847f, 0.0727176f, -0.00459734f, 0.0271333f, 0.105638f, 0.218933f, 0.0732039f, -0.122956f, 0.180283f, 0.130377f, -0.0391219f, -0.0605055f, 0.0193327f, 0.00213438f, -0.0609452f, 0.141759f, 0.0328563f, 0.0800588f, -0.0213263f, -0.0650203f, 0.147285f, 0.309581f, -0.152452f, 0.0886978f, 0.133404f, -0.0182284f, 0.0792112f, 0.117661f, 0.218823f, 0.0857539f, 0.183906f, 0.094034f, 0.170157f, 0.0473895f, 0.0235211f, 0.0788641f, -0.142246f, 0.0949721f, 0.0820037f, -0.0575692f, 0.0242673f, -0.175352f, 0.129898f, 0.0299233f, -0.0606565f, 0.00519385f, -0.0704992f, -0.123457f, -0.0402179f, 0.0878425f, -0.282236f, -0.10746f, -0.105579f, 0.0510242f, 0.0769741f, -0.133865f, -0.056506f, 0.0385912f, -0.276248f, -0.0377645f, 0.0707597f, -0.0783267f, -0.0533399f, -0.089563f, -0.0277635f, -0.0800606f, 0.161597f, -0.00176017f, 0.122499f, -0.0676142f, -0.158159f, 0.059372f, 0.172929f, -0.0214283f, 0.0816784f, 0.114394f, -0.0440936f, -0.027922f, -0.0193225f, -0.0542339f, 0.00595479f, -0.0575622f, -0.268499f, 0.262947f, 0.118281f, -0.0260509f, -0.206773f, -0.036589f, 0.0232736f, -0.130641f, -0.0488136f, -0.0140026f, 0.224197f, -0.107956f, -0.139591f, -0.0255928f, 0.0619364f, -0.271225f, 0.0882249f, -0.0412717f, 0.228665f, 0.0666623f, -0.0505859f, -0.125383f, 0.0521219f, -0.348393f, -0.0623926f, 0.371716f, -0.127563f, -0.114876f, 0.0930328f, -0.0430615f, -0.0387051f, 0.0021063f, -0.0200978f, 0.0263466f, 0.0300958f, 0.11947f, 0.0745755f, -0.0856004f, 0.133831f, 0.0197608f, 0.00308532f, 0.0883606f, 0.0977657f, -0.0156307f, 0.194505f, 0.13151f, 0.0830612f, -0.0611332f, 0.0892632f, 0.00612097f, 0.0642226f, 0.172885f, -0.11454f, 0.401067f, 0.0681062f, -0.0930776f, -0.160715f, -0.100489f, 0.0536899f, 0.0285048f, 0.134809f, 0.0230224f, 0.0198245f, 0.0503254f, -0.0332575f, -0.138526f, -0.00279065f, 0.0892695f, 0.01437f, 0.0863629f, 0.0249261f, -0.0390008f, 0.260795f, 0.102993f, -0.0615158f, 0.261226f, 0.104435f, 0.214451f, -0.0304344f, 0.0461498f, -0.0449774f, 0.271774f, 0.00925403f, 0.112365f, 0.056267f, 0.0512788f, -0.0994859f, -0.15373f, 0.18457f, 0.141318f, -0.0319451f, 0.0259606f, -0.0913739f, 0.292918f, -0.202729f, 0.0486047f, 0.181161f, -0.192701f, -0.112504f, 0.140461f, -0.0227218f, -0.0750287f, 0.0800543f, 0.168633f, -0.064447f, -0.0271601f, -0.0992163f, -0.137441f, 0.00310968f, -0.0641747f, -0.0973397f, 0.0902548f, 0.124458f, -0.10542f, 0.00132161f, 0.0428289f, 0.00571133f, 0.0552314f, -0.123823f, -0.00613879f, -0.112354f, -0.129922f, 0.148748f, -0.0141437f, -0.0934485f, 0.0404023f, -0.0934961f, 0.203745f, -0.141509f, 0.0285238f, -0.174286f, -0.0850962f, 0.0133043f, 0.233109f, -0.0724274f, -0.0348001f, -0.0424904f, 0.071148f, 0.064146f, 0.209003f, -0.216203f, 0.116623f, 0.181697f, -0.179951f, -0.0196096f, -0.0888571f, 0.0734996f, -0.124569f, -0.241133f, 0.0427182f, 0.08957f, -0.103786f, 0.0307141f, 0.145735f, -0.105916f, -0.0196413f, -0.216187f, 0.0525925f, -0.0399962f, -0.0216173f, -0.0262762f, -0.0422824f, 0.135651f, -0.0187902f, 0.239901f, 0.108387f, -0.165558f, -0.200525f, -0.0353432f, -0.0760596f, -0.02736f, -0.0855275f, 0.102126f, -0.057317f, -0.0747551f, 0.0185784f, 0.0173955f, -0.107822f, -0.0177406f, 0.0109801f, -0.124829f, -0.0090104f, 0.177217f, -0.111493f, -0.142127f, 0.151996f, -0.0244708f, 0.0165535f, -0.0578402f, -0.388093f, 0.0195191f, -0.108452f, 0.128003f, 0.0572091f, 0.06642f, 0.147446f, 0.00541234f, 0.106304f, 0.127029f, 0.117799f, 0.0499642f, 0.068437f, 0.0423542f, 0.0628743f, -0.107098f, 0.0696196f, -0.031571f, 0.1601f, -0.161127f, -0.0564164f, -0.0786901f, 0.0295673f, -0.0605565f, -0.0986793f, -0.186727f, -0.0868029f, 0.0279001f, -0.0295473f, 0.0103664f, 0.0294382f, 0.00247871f, -0.0384823f, -0.169708f, -0.0534662f, -0.169744f, -0.0762085f, 0.0388491f, -0.206221f, -0.0475534f, 0.154572f, -0.180633f, -0.0418114f, 0.116163f, -0.0479996f, 0.00375641f, -0.223496f, 0.195143f, 0.00962195f, 0.062075f, 0.0359543f, -0.0256328f, -0.0586324f, 0.0529375f, -0.140908f, -0.12348f, -0.0619908f, -0.281758f, -0.202927f, -0.08823f, -0.0138058f, -0.330534f, 0.02871f, -0.0388176f, 0.0334852f, 0.0164055f, -0.00101008f, -0.00184708f, 0.0471381f, -0.203953f, -0.0999902f, -0.200357f, 0.212563f, -0.13705f, -0.214318f, -0.00755259f, -0.10582f, -0.105208f, 0.0606834f, 0.00207967f, -0.134163f, -0.190517f, 0.0931221f, 0.00210901f, 0.272401f, -0.0415438f, -0.0470442f, 0.118544f, 0.0233511f, -0.155913f, 0.010764f, -0.0614392f, -0.0510119f, -0.0952954f, -0.318397f, -0.223052f, -0.127278f, -0.0876687f, 0.108111f, -0.21129f, 0.0555533f, 0.024438f, -0.0599355f, -0.212861f, -0.0140666f, 0.154399f, -0.00735027f, -0.195498f, -0.132429f, -0.0981625f, -0.076837f, -0.125518f, -0.0382995f, 0.0675779f, -0.27838f, 0.0457509f, 0.103745f, 0.0477786f, -0.158055f, 0.0750014f, -0.0171218f, -0.223433f, -0.111595f, -0.00231841f, -0.137583f, -0.0669627f, 0.0488773f, 0.0773205f, 0.092527f, 0.254673f, 0.179979f, 0.0482801f, -0.124131f, 0.161245f, 0.0458938f, 0.0339361f, 0.0635919f, 0.198602f, 0.152186f, -0.0138291f, 0.142949f, -0.0593636f, 0.00597575f, -0.0979499f, 0.262613f, 0.167552f, -0.0199457f, -0.135099f, 0.310882f, -0.104724f, -0.0190258f, -0.153745f, -0.103045f, 0.0386586f, -0.121088f, -0.0307871f, -0.0701734f, -0.014344f, -0.246113f, -0.11468f, -0.154392f, -0.00793373f, -0.0746561f, -0.147294f, -0.185895f, -0.141018f, -0.0772989f, -0.136948f, 0.0955382f, -0.261662f, -0.135736f, -0.26594f, 0.0319161f, -0.141885f, -0.295266f, -0.11195f, -0.277674f, -0.262433f, 0.231456f, 0.0331002f, -0.0376248f, -0.139914f, -0.215202f, -0.227519f, 0.180932f, 0.301543f, 0.110545f, 0.200859f, -0.0185406f, -0.0164051f, 0.0251446f, -0.288039f, -0.123628f, 0.226281f, -0.0603852f, 0.0179372f, 0.0677779f, -0.00950271f, 0.0544103f, 0.0703937f, -0.0440101f, -0.0898853f, 0.209869f, 0.0635557f, 0.132384f, -0.228752f, -0.0893523f, 0.123145f, 0.154514f, 0.016723f, 0.271911f, -0.0571314f, 0.161126f, 0.110314f, -0.0475167f, 0.0475544f, -0.199377f, 0.0326599f, 0.163687f, 0.0343581f, -0.0327946f, 0.0406555f, 0.140763f, -0.219435f, -0.110744f, 0.0717383f, -0.0141282f, 0.0390847f, 0.0549618f, 0.195448f, 0.0418326f, 0.0566498f, 0.0488634f, -0.0602166f, -0.204631f, -0.210046f, 0.348616f, 0.0470352f, -0.0804311f, -0.19307f, -0.0528433f, 0.315184f, 0.131489f, -0.0771718f, -0.0661586f, 0.13357f, -0.201682f, 0.0319268f, 0.162863f, 0.14128f, -0.135201f, 0.15131f, 0.0131935f, 0.188654f, -0.191427f, -0.0827652f, 0.231585f, 0.179529f, -0.129705f, -0.14306f, 0.120121f, -0.17628f, 0.207279f, 0.316768f, 0.13148f, 0.153289f, -0.183419f, 0.126575f, 0.240272f, -0.0448649f, -0.159714f, 0.0933867f, -0.0577944f, 0.179182f, 0.07985f, -0.0081944f, 0.0841017f, 0.0459124f, -0.0227878f, -0.209667f, -0.00631486f, -0.0712396f, -0.137923f, -0.0715246f, -0.0670995f, -0.081302f, 0.0315015f, 0.131213f, 0.0607522f, 0.0290999f, 0.151507f, 0.157341f, -0.187307f, 0.0369754f, 0.219544f, 0.0573123f, -0.0170165f, -0.168877f, -0.0912022f, -0.169915f, 0.155437f, 0.00915152f, 0.0254228f, 0.0101273f, -0.199449f, 0.128124f, -0.140937f, 0.134816f, 0.100906f, -0.151833f, 0.207284f, -0.1707f, 0.303367f, 0.0292359f, 0.0642642f, 0.180641f, 0.0276882f, -0.0739365f, -0.075193f, 0.0131418f, -0.139847f, 0.0675874f, -0.0140144f, 0.148934f, 0.117968f, -0.23832f, 0.00216349f, -0.114755f, -0.0265598f, 0.122054f, -0.131448f, -0.0642786f, -0.0664123f, -0.0989374f, -0.0858003f, 0.0883521f, -0.17063f, -0.138031f, -0.0097743f, 0.150456f, -0.267299f, 0.102648f, -0.134881f, -0.089012f, -0.0106093f, -0.130356f, 0.248402f, 0.10221f, 0.167036f, -0.157931f, 0.203289f, -0.17553f, 0.20277f, 0.25642f, -0.0362643f, -0.163525f, -0.135539f, -0.0968269f, 0.00774742f, 0.0106192f, -0.0285169f, -0.117898f, 0.113375f, 0.0900914f, -0.218179f, 0.0845755f, -0.0171067f, -0.0672288f, 0.2353f, -0.0747222f, 0.242489f, 0.0651187f, 0.0936988f, 0.1367f, -0.0359058f, -0.0320972f, -0.0379787f, -0.0647422f, 0.0635271f, -0.202104f, 0.103694f, -0.00656016f, -0.097863f, -0.10782f, -0.179636f, -0.116785f, 0.0116226f, 0.138202f, 0.09821f, 0.110049f, 0.222288f, -0.0245681f, -0.16168f, -0.0897552f, -0.124064f, -0.0112814f, 0.128537f, 0.136196f, 0.0418772f, 0.0481489f, 0.00800976f, -0.066933f, 0.0626603f, -0.128438f, -0.0706553f, -0.127803f, 0.192141f, 0.0530038f, 0.0798179f, -0.304607f, 0.114875f, -0.00302429f, 0.164195f, -0.00768463f, -0.249696f, 0.154238f, -0.0394398f, -0.00174523f, 0.172246f, -0.0471447f, -0.149106f, 0.110001f, -0.25218f, -0.229567f, -0.137812f, -0.0377299f, 0.189963f, 0.122021f, -0.147356f, -0.0563587f, -0.0598197f, -0.0523441f, -0.0616105f, 0.153886f, 0.108511f, -0.0663543f, 0.0645012f, 0.176961f, -0.0598883f, 0.306748f, -0.0160002f, -0.0434966f, 0.138077f, 0.0434116f, 0.0924476f, -0.00929001f, -0.157819f, -0.017458f, 0.148959f, -0.108074f, 0.0454616f, 0.0816401f, 0.0592543f, 0.0209849f, 0.0840807f, 0.0438234f, 0.142466f, -0.0102019f, 0.0513667f, 0.0102043f, 0.154978f, -0.121442f, -0.176959f, 0.11911f, 0.00710711f, 0.155086f, -0.0597443f, -0.155915f, -0.184424f, -0.0463651f, 0.0629616f, -0.141211f, -0.126685f, 0.00494116f, 0.0163913f, 0.00901837f, -0.128368f, 0.173049f, -0.21051f, -0.107023f, -0.0680099f, 0.170154f, -0.0275989f, -0.00551579f, -0.167239f, -0.0645563f, -0.100772f, 0.0022638f, -0.100799f, 0.136375f, -0.123142f, 0.0352595f, -0.170832f, 0.0385122f, 0.046406f, -0.0879577f, 0.0193128f, -0.202868f, 0.0737131f, -0.0548354f, -0.0788981f, -0.0896598f, 0.0095358f, -0.0271989f, 0.00963865f, -0.113566f, -0.0734343f, -0.0831453f, -0.173886f, 0.0751453f, 0.146026f, -0.0645909f, -0.12189f, 0.00317173f, 0.0419846f, 0.151386f, -0.0509576f, -0.0365633f, 0.0160684f, -0.09791f, -0.0873409f, -0.0262141f, -0.0820132f, -0.0322381f, 0.0286195f, -0.0273641f, 0.0522733f, -0.0714544f, 0.107109f, 0.0979749f, -0.0179188f, 0.032253f, -0.100749f, 0.074436f, -0.0923275f, 0.034283f, 0.0278053f, 0.175493f, 0.0961278f, 0.123084f, 0.0733298f, -0.0184846f, 0.0453426f, -0.00127655f, 0.0381003f, -0.126745f, 0.0753673f, 0.0352259f, -0.0811196f, 0.021078f, 0.127132f, -0.0215651f, -0.0223678f, 0.245639f, 0.0920714f, 0.173673f, 0.142527f, 0.148352f, -0.104472f, 0.204959f, -0.0276793f, 0.0483926f, -0.06715f, -0.0179545f, -0.119493f, 0.166745f, -0.0467325f, 0.125691f, 0.0403557f, 0.0861802f, -0.0387498f, -0.00216597f, -0.0191077f, -0.00449427f, 0.00547377f, 0.201497f, -0.0849414f, 0.0255544f, -0.0288155f, -0.117315f, -0.04456f, -0.139884f, 0.00530356f, 0.204888f, 0.23625f, -0.00983512f, 0.107601f, 0.0696132f, 0.0428111f, -0.122994f, 0.121498f, 0.128056f, -0.0515478f, -0.231309f, -0.0373573f, 0.136974f, 0.0709642f, 0.0512511f, -0.26325f, 0.00173371f, -0.139443f, -0.153229f, 0.0341405f, -0.136643f, -0.209428f, -0.184643f, 0.0029018f, 0.212315f, 0.154536f, 0.0208473f, -0.108082f, 0.183207f, 0.0172661f, 0.0672014f, -0.128112f, 0.0498659f, 0.204463f, 0.186421f, -0.185577f, 0.00775792f, 0.155563f, -0.0091993f, -0.0326666f, 0.0623882f, -0.145297f, -0.157033f, -0.0286781f, -0.102269f, -0.0889971f, 0.0333676f, 0.161103f, -0.07722f, 0.0713038f, -0.28465f, 0.27885f, -0.0510861f, -0.154607f, 0.0958781f, 0.151061f, -0.0183673f, -0.14155f, -0.00754779f, 0.0422103f, 0.123577f, -0.131019f, 0.171952f, -0.0390391f, -0.111886f, -0.132352f, 0.189426f, 0.303939f, -0.124372f, -0.0523825f, -0.186386f, -0.0421938f, -0.138987f, -0.0287305f, 0.159393f, 0.313261f, -0.105274f, 0.161736f, 0.0147514f, -0.0449571f, -0.0459721f, -0.0410223f, 0.0124728f, 0.140978f, 0.220603f, -0.157678f, -0.26982f, -0.252669f, -0.0535468f, 0.0166008f, 0.11682f, -0.182766f, -0.0193766f, -0.116835f, 0.150191f, -0.300505f, 0.0601228f, 0.0247994f, -0.215003f, 0.133953f, -0.0379703f, 0.0956614f, 0.0208004f, -0.078614f, -0.0859837f, -0.0868898f, 0.0610248f, -0.0768857f, 0.0531017f, -0.172265f, 0.057613f, -0.228077f, 0.0345471f, 0.121956f, 0.0525033f, 0.0547283f, -0.0334467f, -0.0294952f, -0.0479201f, 0.121325f, -0.152082f, 0.0817379f, 0.288121f, -0.205623f, 0.1959f, 0.297997f, 0.0341432f, 0.0717969f, 0.0834884f, -0.0315612f, 0.199799f, 0.0187093f, 0.191451f, -0.198019f, 0.0174022f, -0.058016f, -0.126488f, 0.0298442f, -0.135484f, 0.169327f, 0.166187f, 0.014566f, -0.13882f, 0.0294f, -0.0613566f, -0.0461935f, -0.030037f, 0.124614f, -0.0287482f, 0.0835839f, -0.0746385f, 0.129797f, -0.182163f, -0.0940455f, 0.0140924f, -0.179897f, -0.06345f, 0.0432193f, 0.224181f, -0.212498f, 0.238666f, -0.0211351f, 0.0724096f, 0.051119f, -0.19129f, 0.0674986f, -0.0601698f, 0.0463036f, -0.0243521f, -0.0781872f, -0.147475f, -0.0362369f, 0.1783f, -0.225632f, 0.0647533f, -0.0483906f, 0.234799f, -0.172693f, 0.0197645f, 0.148434f, 0.0587794f, 0.0644131f, -0.107153f, -0.00764006f, -0.110157f, -0.26381f, 0.0618713f, -0.0267171f, 0.0275877f, -0.0833338f, -0.0154153f, -0.176447f, 0.219748f, -0.148769f, 0.117317f, 0.0423911f, 0.0139935f, -0.0663829f, 0.101855f, -0.200376f, -0.147584f, -0.110178f, -0.00220493f, 0.0658868f, -0.0447095f, -0.168382f, -0.0594091f, -0.144965f, -0.0389487f, -0.114771f, -0.118407f, 0.0564376f, -0.00816313f, -0.024729f, 0.0461158f, -0.224438f, 0.0283603f, -0.137035f, 0.0346371f, -0.227015f, 0.105961f, 0.0324801f, 0.00134299f, -0.144239f, -0.0652342f, 0.075502f, 0.0179611f, -0.0262233f, -0.135262f, -0.0865976f, -0.0296766f, 0.0411416f, 0.123845f, -0.0856962f, 0.00471248f, 0.307397f, 0.28426f, -0.168934f, -0.173371f, -0.00863739f, 0.13534f, -0.0102263f, 0.0783458f, 0.029153f, -0.114191f, 0.260074f, -0.132501f, 0.0859815f, -0.0877794f, 0.139074f, -0.0928636f, 0.0609738f, -0.161704f, 0.0472088f, 0.0740528f, -0.252682f, 0.0757204f, 0.0722029f, -0.193717f, 0.191766f, -0.0307253f, 0.141825f, -0.0292367f, -0.171994f, -0.0658453f, 0.106797f, 0.0208707f, -0.186482f, -0.071175f, 0.135595f, -0.131859f, -0.0470146f, -0.0326731f, 0.149788f, -0.0396981f, 0.141241f, -0.134228f, -0.0797602f, -0.0978007f, -0.129585f, -0.00302733f, 0.251197f, -0.130606f, 0.101755f, -0.023532f, -0.0114496f, 0.160134f, -0.0185317f, -0.0582885f, -0.0275123f, -0.0241525f, 0.100835f, -0.0616118f, 0.0642776f, -0.0643821f, -0.0863662f, 0.0129387f, -0.0207624f, 0.142404f, -0.0804893f, 0.0448778f, 0.144696f, -0.141381f, -0.109574f, 0.025401f, 0.0734777f, 0.0136259f, 0.138042f, -0.026292f, -0.0704373f, -0.0270067f, 0.0725393f, -0.203561f, 0.0324991f, -0.00936628f, 0.095664f, -0.0813818f, 0.108369f, 0.0583343f, -0.00806945f, 0.0236721f, -0.0132281f, -0.0511875f, 0.170518f, -0.000638836f, 0.0852932f, -0.138721f, -0.127342f, -0.0658303f, 0.20358f, 0.144831f, 0.0106601f, 0.0143051f, 0.0595102f, -0.217166f, 0.114336f, 0.120742f, -0.0418552f, 0.078644f, 0.0235434f, 0.121099f, 0.0109813f, 0.00446082f, -0.101314f, -0.138936f, 0.133179f, 0.166721f, 0.13354f, -8.96584e-06f, -0.0920169f, -0.10984f, 0.093248f, 0.0120036f, 0.0363021f, -0.111771f, 0.0225843f, 0.0300827f, -0.0138616f, -0.129533f, 0.0451413f, -0.0737559f, 0.0974859f, 0.0530094f, -2.7424e-05f, 0.133875f, 0.138103f, -0.099634f, 0.156801f, 0.12618f, 0.037941f, 0.169255f, -0.0289363f, 0.110988f, -0.111141f, 0.157619f, 0.00892566f, 0.0404413f, 0.13534f, -0.139694f, 0.0500347f, -0.08183f, -0.0919004f, -0.0482381f, -0.244818f, -0.0252284f, -0.0610931f, -0.0264429f, 0.00285914f, -0.118798f, -0.137403f, -0.116063f, -0.0432873f, -0.114606f, 0.131603f, -0.0528804f, -0.0950573f, -0.0467136f, 0.147644f, 0.0690361f, -0.138872f, -0.0779595f, -0.0888312f, -0.0558366f, 0.110144f, -0.0192456f, 0.0586942f, 0.0527115f, -0.0106022f, 0.0952156f, 0.181873f, -0.027421f, -0.0315962f, -0.11397f, 0.107242f, 0.043364f, -0.045221f, -0.0175908f, 0.016728f, 0.158645f, -0.0924442f, 0.0773717f, -0.0863759f, -0.0915623f, -0.021689f, 0.241017f, -0.0378599f, -0.171615f, -0.0542784f, 0.0957602f, -0.00270907f, 0.0227328f, -0.130271f, 0.0111646f, 0.298433f, 0.101962f, -0.0165583f, 0.0577905f, 0.0171903f, 0.017393f, 0.0305576f, -0.161156f, 0.0381006f, 0.0781898f, 0.262288f, -0.209039f, -0.181353f, 0.0539984f, -0.0497049f, -0.125146f, -0.226701f, 0.0772799f, -0.126636f, -0.0364099f, 0.0789937f, -0.11852f, 0.0568105f, 0.0852387f, -0.0531173f, 0.0944505f, 0.0363839f, 0.108362f, 0.0471852f, -0.0387101f, 0.0867353f, -0.183978f, -0.0361573f, -0.165845f, 0.0681123f, -0.118744f, 0.125691f, -0.179482f, -0.193631f, -0.107126f, -0.161061f, 0.093139f, 0.102821f, -0.0303205f, -0.0583412f, 0.115758f, 0.166025f, -0.109257f, -0.22118f, -0.0464129f, 0.381271f, 0.309956f, -0.0194353f, -0.0903144f, -0.226661f, 0.125632f, -0.134281f, -0.0524832f, -0.0764119f, -0.208799f, 0.106036f, -0.0308622f, 0.138759f, 0.0781779f, 0.152292f, 0.148562f, 0.213297f, 0.185437f, 0.0184403f, -0.0441457f, 0.0611643f, -0.209894f, -0.257553f, 0.0695054f, 0.0993274f, -0.291729f, 0.0616548f, 0.120692f, -0.197417f, -0.00651561f, -0.132828f, 0.194439f, 0.0104131f, -0.0338758f, -0.00363203f, 0.172979f, -0.0225772f, 0.101724f, 0.0694559f, -0.047044f, -0.14039f, -0.0989696f, 0.0092656f, 0.234484f, -0.222291f, 0.135082f, 0.0740476f, 0.0408356f, -0.0410945f, 0.0316356f, 0.262269f, -0.257832f, -0.106964f, 0.0525684f, 0.064325f, -0.0544143f, 0.0594439f, 0.0359909f, -0.0759645f, -0.100972f, -0.074875f, 0.0961173f, 0.0998914f, 0.00416186f, -0.0584802f, -0.10924f, -0.0100146f, -0.00174699f, -0.107864f, -0.0725367f, -0.144925f, -0.193166f, -0.0178813f, 0.037538f, -0.135159f, -0.156407f, -0.0901302f, 0.0137844f, -0.00805656f, 0.00267125f, 0.225756f, -0.209003f, 0.12295f, -0.224391f, -0.0652886f, -0.0755978f, 0.0166139f, 0.0295346f, -0.0841999f, -0.1413f, -0.00268512f, 0.0132863f, -0.242986f, -0.203879f, -0.0637427f, -0.2635f, -0.0415526f, -0.0013313f, -0.0259516f, 0.14906f, -0.0334283f, 0.0824642f, -0.0684919f, 0.0943763f, -0.0150429f, -0.0477654f, 0.224415f, -0.0520962f, 0.198299f, 0.263054f, 0.0516896f, 0.0066003f, -0.0181324f, -0.101749f, -0.0107113f, -0.104021f, -0.0945039f, 0.0171668f, 0.146261f, 0.00689254f, -0.0319455f, -0.0674037f, -0.150066f, 0.229977f, -0.0507816f, 0.226299f, 0.453999f, -0.206963f, -0.0241343f, 0.126498f, -0.0888069f, -0.16637f, 0.0835494f, 0.155898f, -0.0327211f, -0.0650553f, 0.116099f, -0.0118318f, 0.0860204f, 0.0412604f, -0.122808f, 0.0765835f, -0.118208f, -0.015505f, -0.0626512f, -0.0483156f, 0.0185854f, -0.229319f, 0.0214389f, 0.0618804f, -0.0884276f, -0.171844f, -0.0639674f, 0.0272715f, -0.099959f, 0.0552958f, 0.0618449f, 0.0288735f, 0.0134768f, -0.00235114f, 0.0178969f, -0.0264031f, -0.0237615f, 0.107558f, -0.00920596f, 0.0524632f, -0.0013653f, -0.167021f, -0.163504f, 0.0236902f, -0.0765197f, -0.0180954f, -0.0506873f, 0.139612f, 0.175825f, 0.0514785f, 0.0292314f, 0.0550216f, 0.0070475f, -0.190525f, -0.0443378f, -0.267687f, -0.105787f, 0.0211126f, -0.0482088f, -0.203779f, 0.0347842f, 0.166064f, -0.115705f, 0.124707f, 0.0825577f, -0.113749f, -0.241971f, 0.018784f, 0.0603707f, 0.0556927f, 0.11098f, -0.056362f, 0.0344046f, 0.0144328f, 0.0502038f, -0.0689829f, -0.0952567f, 0.136529f, 0.0495788f, 0.0458626f, -0.0414555f, 0.161648f, -0.0536199f, -0.0637468f, -0.0643436f, 0.112552f, 0.0674237f, 0.0123203f, -0.128518f, 0.220861f, 0.0535626f, -0.037083f, -0.186883f, 0.0955938f, -0.0832241f, 0.150794f, -0.0211195f, 0.297912f, 0.108137f, 0.077925f, -0.0413384f, -0.12554f, 0.0319348f, 0.148069f, -0.114741f, -0.0593904f, -0.265915f, 0.049162f, -0.120743f, -0.136089f, 0.0107711f, 0.217148f, -0.163728f, 0.0130763f, -0.118111f, 0.0402874f, 0.18146f, -0.111928f, 0.0706964f, -0.0845152f, 0.084905f, -0.00360437f, 0.0896677f, 0.0212914f, 0.0785547f, -0.152061f, 0.0179969f, -0.226755f, 0.0186178f, 0.101363f, -0.0955127f, -0.234262f, 0.0152574f, -0.0381808f, -0.0232962f, -0.0699496f, -0.00587942f, -0.00203752f, 0.14363f, -0.138984f, -0.119294f, -0.0189643f, 0.107395f, -0.087792f, -0.0301673f, 0.125796f, -0.0745405f, -0.0476128f, 0.0843658f, -0.167888f, 0.144594f, 0.108933f, -0.108245f, 0.166306f, 0.104151f, -0.0800566f, -0.00876581f, 0.0472909f, 0.00535854f, -0.0800603f, 0.0853171f, -0.0472681f, -0.241262f, -0.0780111f, 0.163176f, -0.0211086f, 0.0101337f, -0.0934322f, 0.0764829f, 0.0486164f, -0.0170906f, 0.0321697f, 0.155522f, -0.0102631f, -0.0895345f, 0.0442894f, 0.00625677f, 0.109202f, -0.0794168f, 0.0132002f, -0.144778f, -0.120435f, 0.161022f, 0.155492f, -0.270788f, -0.153945f, -0.0502459f, -0.167472f, 0.12025f, -0.0421434f, -0.0720279f, 0.0505764f, -0.018418f, 0.0757209f, -0.01629f, -0.0691772f, -0.243756f, 0.02841f, -0.0936225f, -0.113064f, -0.110291f, -0.170819f, -0.203586f, -0.0201062f, 0.0789067f, 0.0908949f, -0.0318132f, -0.0433653f, -0.0487372f, -0.141825f, 0.0150634f, 0.0214505f, 0.00580135f, 0.0383054f, 0.0915351f, -0.0376059f, -0.00947634f, -0.134472f, 0.151678f, 0.107944f, -0.139178f, 0.0433912f, 0.0254575f, -0.00800395f, 0.0588377f, 0.126431f, -0.0689873f, 0.0190763f, 0.00399918f, 0.0833738f, 0.0863904f, 0.0807009f, -0.170903f, -0.100793f, -0.0728823f, -0.0139638f, 0.0490529f, -0.120272f, -0.106016f, 0.0832064f, 0.196617f, 0.212437f, -0.164698f, -0.00962033f, -0.0185478f, 0.11034f, -0.0697674f, -0.0562806f, 0.0815596f, -0.134426f, 0.0606937f, 0.0632234f, -0.0724386f, 0.119221f, -0.105342f, -0.147441f, 0.0931494f, 0.167211f, -0.0370243f, 0.0690335f, 0.098447f, 0.0478028f, 0.0690242f, 0.0755095f, -0.0953286f, -0.149774f, 0.148082f, -0.065519f, -0.0173821f, 0.0347331f, -0.0875658f, -0.0728735f, 0.0599404f, -0.0340667f, 0.161679f, 0.123255f, -0.0104857f, 0.00877742f, -0.164217f, 0.197926f, 0.0678923f, -0.0930979f, 0.0326042f, 0.0259259f, -0.122972f, -0.174168f, -0.0615049f, -0.067768f, 0.181905f, 0.150531f, -0.0987965f, -0.020391f, 0.0596279f, -0.0155429f, -0.0821233f, -6.65062e-05f, 0.0238419f, -0.0106174f, -0.027483f, 0.041228f, -0.101983f, -0.0590513f, 0.0949375f, -0.227011f, 0.0747195f, 0.079518f, 0.153002f, 0.0205092f, -0.0393849f, -0.0692148f, -0.204117f, 0.0126534f, -0.034984f, 0.140702f, 0.0831043f, -0.2098f, -0.136375f, -0.15077f, 0.105898f, -0.113741f, 0.0906816f, -0.0471878f, -0.173081f, 0.0393239f, -0.0369644f, -0.0330547f, -0.362382f, -0.220268f, -0.00447526f, -0.00213226f, -0.0892709f, -0.0544408f, 0.0137773f, 0.0314421f, 0.0308985f, -0.0132205f, 0.00458251f, -0.0180865f, -0.0696959f, -0.0944853f, 0.0205318f, 0.0488386f, -0.0530661f, 0.0327906f, 0.0598465f, 0.127085f, -0.130337f, -0.0959788f, 0.0972281f, -0.0995927f, -0.0562505f, 0.0531781f, 0.0720495f, 0.218424f, 0.226193f, -0.079143f, -0.0863779f, -0.0440299f, 0.0544233f, 0.00119898f, -0.0855944f, -0.00507969f, -0.105826f, 0.201754f, -0.177631f, -0.190342f, -0.022663f, 0.128898f, -0.0745454f, -0.0558681f, 0.0922532f, -0.00511519f, -0.117789f, -0.0641076f, 0.0849531f, -0.0255669f, -0.0500565f, -0.126321f, 0.0933961f, -0.0344511f, 0.14324f, 0.132846f, 0.0173259f, 0.183226f, 0.0171674f, 0.112401f, 0.158515f, -0.0183407f, -0.0190491f, 0.0594682f, 0.0246831f, 0.0300248f, -0.154169f, -0.0466724f, -0.185994f, 0.0152856f, -0.11172f, 0.00557773f, 0.185396f, -0.266282f, -0.097132f, 0.0303595f, -0.0710393f, -0.166547f, 0.0377307f, -0.104819f, 0.0634248f, -0.0883958f, -0.207927f, -0.0203948f, 0.09745f, -0.0923768f, -0.13596f, 0.0884956f, 0.0616812f, -0.187431f, 0.0546045f, -0.185343f, 0.282705f, 0.125016f, 0.186144f, -0.0654351f, 0.0918114f, -0.120922f, -0.0121978f, -0.185563f, -0.0334536f, 0.0084412f, 0.188197f, -0.0636429f, 0.0704424f, 0.00483194f, 0.0141157f, 0.183985f, 0.0165989f, -0.0178998f, 0.0217116f, -0.0453042f, 0.0673227f, 0.150153f, -0.00928655f, -0.000469134f, 0.226576f, -0.11136f, -0.125545f, 0.0901796f, -0.00120671f, 0.0772167f, -0.12685f, 0.017103f, -0.106634f, 0.226155f, 0.0792502f, 0.0520561f, 0.0937235f, 0.141989f, 0.149458f, -0.0723337f, -0.0311599f, -0.284616f, -0.00672696f, -0.0663376f, 0.0337467f, 0.0836212f, -0.124948f, 0.0836773f, 0.0888377f, 0.0113392f, 0.083619f, 0.0358133f, 0.202356f, -0.0174205f, 0.0476034f, 0.0583856f, -0.00817068f, 0.0170295f, 0.182523f, -0.194959f, 0.165731f, 0.0734191f, 0.0133763f, 0.155161f, 0.0951484f, -0.0785952f, 0.0134327f, -0.0843678f, 0.00512739f, 0.0916417f, -0.0194433f, 0.01825f, 0.114629f, -0.0907869f, 0.059745f, 0.129819f, -0.115565f, 0.200388f, 0.139863f, -0.00345364f, 0.0709602f, -0.0914966f, -0.0865069f, -0.0441261f, -0.0470213f, -0.0703324f, 0.0592398f, 0.021526f, -0.0339797f, -0.321671f, -0.0901139f, 0.28736f, -0.0042627f, -0.0501212f, -0.0288297f, 0.0404723f, -0.214554f, 0.180384f, 0.05396f, -0.113721f, 0.117114f, -0.00680061f, -0.0168571f, -0.0770246f, -0.187645f, 0.051936f, 0.10176f, 0.0496055f, -0.0119991f, -0.148594f, 0.0825325f, -0.0787988f, 0.0634134f, -0.0251415f, 0.20104f, 0.0661174f, -0.07755f, 0.0702885f, 0.000706359f, 0.14576f, -0.0401999f, -0.0944949f, 0.0747786f, 0.0543231f, -0.00803123f, 0.100306f, 0.0280196f, -0.025615f, -0.00249343f, -0.064695f, -0.157504f, 0.184882f, -0.084f, -0.0519587f, -0.0630511f, 0.0628162f, 0.015313f, 0.16545f, 0.114077f, 0.1191f, 0.0031711f, 0.0209174f, 0.105042f, -0.240441f, 0.0887306f, -0.106789f, 0.0764836f, -0.105368f, 0.0598073f, 0.0548903f, -0.0612483f, 0.0642075f, -0.124077f, -0.0877317f, -0.0727054f, 0.18931f, 0.169539f, 0.117087f, -0.0323237f, 0.190761f, 0.183831f, 0.0220406f, 0.00777708f, 0.00670668f, 0.101083f, -0.00650747f, -0.0558987f, -0.0204573f, -0.137829f, -0.0414975f, -0.16439f, 0.0708083f, 0.0702551f, 0.222133f, 0.211645f, 0.0792827f, 0.180341f, 0.120829f, 0.245748f, -0.0554949f, 0.0882342f, 0.217777f, -0.0249255f, 0.179986f, -0.0372626f, 0.159794f, 0.180525f, 0.139581f, -0.111818f, 0.0417753f, -0.123694f, -0.0882328f, 0.140409f, -0.0934211f, -0.0678009f, 0.0962674f, 0.0520689f, -0.114434f, 0.0639819f, 0.102048f, 0.00415213f, 0.0355596f, 0.00427485f, 0.0651173f, -0.170326f, -0.0591436f, -0.0837595f, -0.173907f, -0.0972626f, -0.127203f, 0.149534f, -0.135777f, -0.0403439f, 0.019851f, -0.00466565f, 0.177075f, 0.0453829f, -0.164213f, -0.200843f, 0.0796307f, 0.129153f, -0.125155f, -0.19613f, 0.0751635f, 0.0699684f, -0.0577973f, -0.163727f, -0.0107066f, -0.175678f, 0.0930659f, 0.0238463f, -0.127829f, 0.0392327f, 0.035869f, 0.159403f, -0.0547916f, -0.0574673f, 0.118588f, -0.0652993f, 0.000153598f, 0.0142295f, -0.127771f, -0.138413f, -0.0975507f, -0.163708f, -0.0982388f, 0.0794043f, -0.0790508f, 0.0115247f, 0.215415f, -0.198038f, 0.140441f, 0.00416051f, 0.277927f, -0.13621f, 0.113824f, -0.362992f, -0.0213533f, 0.282063f, 0.0499022f, 0.22504f, 0.108851f, -0.174629f, 0.0890122f, 0.161361f, -0.159873f, 0.0485593f, -0.0292147f, 0.0254543f, 0.112434f, 0.112825f, -0.285948f, -0.127711f, 0.0992619f, -0.135055f, -0.0415518f, -0.137139f, 0.0852555f, -0.221185f, 0.0520527f, -0.0682156f, 0.248905f, 0.140446f, -0.0545061f, 0.0436778f, 0.121191f, -0.284698f, 0.228374f, 0.0190702f, -0.0912182f, -0.127332f, 0.141991f, 0.109496f, -0.0327298f, -0.171284f, -0.0969692f, 0.130164f, 0.236322f, 0.033197f, -0.166154f, -0.0701135f, 0.0638666f, 0.213933f, 0.215908f, 0.0524915f, -0.25079f, 0.0330555f, 0.0994585f, 0.159128f, 0.0635627f, 0.143504f, -0.0687529f, -0.0150583f, 0.0992928f, 0.0688575f, 0.187138f, -0.154962f, 0.0883531f, 0.029688f, 0.0703242f, -0.176038f, 0.078978f, -0.288869f, -0.0444525f, -0.0820981f, 0.0898226f, 0.166853f, -0.213919f, -0.16756f, 0.223733f, -0.0265677f, 0.273658f, 0.0863558f, 0.122589f, -0.116956f, 0.121932f, 0.0998971f, 0.264051f, 0.0776775f, -0.239358f, -0.0999252f, -0.0228122f, 0.127329f, -0.0504099f, -0.199996f, 0.0450763f, 0.00208867f, -0.173306f, -0.0684989f, 0.156984f, 0.177185f, 0.0509005f, -0.0929123f, 0.101707f, -0.0831333f, 0.0510568f, -0.0643706f, 0.20711f, 0.16294f, -0.108909f, -0.246453f, 0.0872977f, 0.0581476f, 0.108173f, 0.207251f, -0.0341197f, -0.197191f, 0.09082f, -0.125657f, 0.0387179f, -0.0172823f, 0.0198742f, -0.0414818f, -0.238932f, 0.146822f, 0.206234f, 0.161157f, 0.109799f, -0.0438304f, -0.0238543f, 0.00611262f, 0.027429f, 0.0560566f, 0.116625f, 0.0267818f, 0.166784f, 0.0877185f, -0.109614f, 0.166765f, -0.106923f, 0.160033f, -0.0276987f, -0.110118f, 0.169921f, 0.0244616f, -0.000542855f, 0.0165595f, 0.0722455f, -0.0984919f, 0.0536497f, 0.0664813f, -0.083743f, -0.181889f, 0.0477309f, -0.0488098f, 0.13488f, 0.126943f, 0.0958728f, 0.0938338f, 0.037917f, 0.200893f, -0.093073f, -0.0211403f, -0.0186743f, -0.153366f, 0.143359f, -0.231045f, -0.0238974f, -0.0260031f, 0.00174925f, -0.179714f, -0.187101f, 0.0523848f, 0.0157465f, -0.156575f, -0.0627841f, 0.154118f, -0.0736508f, -0.0362018f, -0.0997607f, 0.31309f, 0.194881f, -0.0599048f, 0.080986f, -0.0728685f, 0.0075686f, -0.113133f, 0.0182381f, -0.0579092f, -0.154053f, 0.0521063f, -0.229199f, 0.177616f, -0.0551885f, -0.0143091f, -0.0385026f, 0.145808f, -0.163114f, 0.351513f, 0.0713841f, -0.123973f, -0.106142f, -0.111187f, 0.0911276f, 0.120868f, -0.0553687f, 0.0255236f, -0.226468f, -0.0699128f, 0.0827882f, -0.0221737f, 0.0201023f, -0.046156f, -0.143218f, -0.0667957f, -0.0564729f, 0.000216031f, 0.0895092f, -0.0924748f, 0.00703129f, -0.00958518f, 0.0384685f, 0.108217f, -0.241347f, 0.0404837f, -0.181311f, -0.0879929f, -0.0182663f, -0.168308f, -0.0934795f, -0.0866267f, 0.134966f, -0.0418854f, 0.00198662f, 0.0767417f, -0.0266048f, -0.011113f, 0.0867148f, -0.246972f, -0.0342922f, 0.0103525f, -0.183806f, 0.00288881f, -0.042371f, 0.0232017f, -0.0100969f, 0.170852f, -0.172764f, -0.118588f, -0.192462f, -0.0257451f, -0.0584574f, -0.0925366f, -0.104828f, 0.0865425f, 0.164607f, -0.166708f, 0.0820068f, 0.114894f, 0.0243165f, 0.111891f, 0.0240655f, -0.0447168f, 0.0463839f, 0.125826f, 0.0908647f, 0.00755007f, 0.017892f, -0.0946803f, 0.083355f, 0.176671f, -0.181101f, -0.173254f, -0.0844072f, -0.051266f, -0.177673f, -0.0560896f, -0.0472359f, 0.0152015f, 0.0545092f, 0.0660282f, -0.0905754f, -0.151471f, 0.103402f, 0.0379438f, 0.0222056f, -0.0188651f, 0.0372696f, 0.0193452f, -0.0682208f, 0.106705f, 0.0748776f, 0.051877f, -0.105238f, 0.0104021f, 0.116482f, 0.0194861f, 0.120687f, 0.0680841f, 0.221299f, -0.0205435f, 0.266122f, -0.0188272f, 0.0200061f, -0.0278964f, -0.0160068f, -0.0670531f, 0.024423f, -0.221935f, 0.0471705f, 0.000968195f, 0.11176f, 0.0271514f, -0.146179f, 0.0249159f, 0.0942232f, -0.112354f, -0.0343721f, -0.126474f, -0.0492571f, 0.0129208f, 0.0623631f, 0.0761596f, 0.0789176f, -0.0855399f, -0.048919f, 0.0850147f, 0.039666f, 0.136091f, -0.082435f, 0.114259f, -0.190304f, -0.105668f, 0.147242f, -0.0832634f, -0.217064f, 0.0853809f, 0.111706f, -0.0811746f, 0.0720894f, 0.0273603f, -0.0497611f, 0.188628f, -0.122164f, 0.0515798f, -0.00615044f, -0.098573f, -0.0390799f, 0.221686f, 0.173804f, -0.135075f, 0.0237554f, -0.272095f, -0.267159f, 0.0395986f, 0.197776f, -0.3249f, -0.0570371f, -0.0180069f, -0.0106594f, -0.112841f, -0.0632911f, -0.151239f, 0.0415106f, 0.0289764f, -0.0965336f, 0.0704131f, 0.151047f, -0.0703878f, -0.150446f, 0.0975496f, -0.0700423f, 0.00883961f, 0.00479158f, -0.225833f, -0.114528f, 0.102962f, 0.0194825f, 0.198247f, 0.145726f, -0.0198332f, -0.0462709f, 0.109217f, 0.230779f, 0.0841075f, 0.144426f, 0.00896171f, 0.0486951f, -0.024068f, 0.0826893f, 0.263225f, 0.138973f, 0.158779f, -0.0803725f, 0.246199f, 0.0951042f, 0.0893103f, -0.125706f, -0.0082891f, 0.10706f, -0.0875758f, 0.113499f, -0.102992f, 0.00972643f, -0.208887f, -0.108913f, -0.0706636f, -0.0826187f, -0.129016f, 0.120555f, 0.0519712f, 0.0192482f, -0.257285f, 0.0613468f, 0.164616f, -0.171943f, 0.129949f, -0.124079f, -0.266189f, -0.055349f, 0.0975708f, -0.0593509f, 0.0341343f, 0.0893915f, 0.0414663f, -0.0510076f, 0.03802f, -0.0947863f, 0.0401182f, 0.040997f, -0.116119f, -0.0921679f, -0.0660711f, 0.0650193f, -0.132707f, 0.118133f, -0.157676f, 0.140088f, -0.0939836f, -0.244202f, 0.201422f, 0.153291f, -0.0896714f, -0.121794f, 0.00911379f, 0.0530142f, 0.035494f, 0.0154541f, -0.0499024f, 0.198293f, 0.11905f, -0.0862168f, -0.0349872f, 0.0783271f, 0.257099f, -0.306977f, 0.181185f, 0.0497808f, -0.112028f, 0.175227f, -0.0637267f, 0.116299f, -0.0452387f, -0.0278575f, 0.293447f, -0.0597284f, 0.417501f, -0.00731868f, 0.234792f, 0.135939f, -0.162097f, -0.218679f, 0.184031f, 0.189713f, 0.0730928f, 0.22454f, -0.0080301f, 0.113997f, -0.0558519f, -0.0927894f, 0.200249f, -0.223467f, 0.0833658f, -0.0328964f, -0.161998f, 0.232337f, 0.0605469f, -0.0732789f, -0.0283364f, 0.0488354f, 0.241703f, 0.123761f, -0.0491719f, -0.138038f, 0.18618f, 0.0597313f, 0.308696f, -0.38192f, 0.30064f, -0.189242f, 0.0608194f, -0.018018f, 0.117166f, -0.14384f, -0.121155f, -0.0172393f, -0.116218f, 0.140172f, 0.0637117f, 0.0567824f, 0.0442363f, 0.0413949f, -0.148736f, 0.168235f, -0.102755f, -0.0179479f, 0.0858931f, -0.0425497f, -0.0281418f, -0.0402056f, -0.0112564f, -0.0310015f, -0.0176378f, -0.155084f, 0.00504733f, 0.116434f, -0.150844f, -0.10971f, -0.0221764f, 0.0186817f, 0.0401951f, -0.0761428f, 0.0143205f, 0.0797034f, -0.0812946f, 0.0292541f, -0.0248652f, 0.169299f, 0.180902f, 0.132365f, 0.191917f, -0.0800099f, 0.023907f, -0.0433042f, 0.0991252f, -0.0330167f, -0.104239f, -0.0845118f, -0.0241469f, 0.099835f, -0.031803f, 0.136888f, 0.0726057f, 0.149776f, -0.0507444f, 0.0375465f, 0.0046039f, -0.0520668f, 0.0887436f, 0.0454328f, -0.0463729f, -0.140537f, 0.0595692f, 0.0703967f, -0.0966958f, -0.0424693f, 0.0597427f, -0.000698f, 0.0270348f, -0.0398158f, 0.105522f, -0.185226f, -0.144906f, 0.0473343f, 0.204792f, 0.12648f, 0.128669f, -0.0151107f, -0.0219117f, -0.119806f, -0.0176211f, 0.0675132f, 0.213231f, -0.011352f, -0.0299098f, -0.0105376f, 0.192058f, 0.00759997f, -0.055281f, 0.021468f, -0.0041813f, 0.0886238f, -0.124362f, -0.0682662f, 0.169022f, -0.00999863f, 0.159487f, -0.130236f, 0.00251675f, -0.10092f, -0.0662644f, 0.0802892f, -0.106571f, -0.0177165f, 0.0770846f, -0.00993748f, 0.0770072f, -0.149051f, -0.0480426f, 0.0497492f, -0.0289495f, -0.0542627f, 0.149743f, 0.041109f, 0.00142937f, 0.176336f, -0.108128f, 0.161701f, -0.10495f, 0.115795f, -0.248864f, -0.0903342f, 0.172654f, -0.0901976f, -0.100232f, -0.0810243f, 0.106107f, 0.074013f, 0.0377272f, -0.201311f, 0.0547548f, -0.000312693f, 0.124854f, -0.0143871f, -0.2597f, -0.0767492f, 0.0708055f, -0.011782f, -0.155463f, -0.078357f, -0.142406f, 0.0269461f, -0.12045f, 0.0803348f, 0.241726f, 0.0678771f, -0.0708885f, -0.179419f, 0.0740672f, -0.0741137f, -0.125876f, -0.0351856f, -0.148153f, -0.238299f, -0.062683f, 0.304455f, -0.104887f, 0.295034f, 0.203353f, -0.106416f, 0.00687209f, -0.0911984f, -0.231222f, 0.0267519f, 0.117077f, -0.305022f, 0.0429254f, 0.0797689f, -0.122255f, -0.0659563f, -0.0278223f, 0.0753188f, 0.200512f, 0.128822f, 0.195604f, -0.130287f, 0.165342f, 0.0345921f, -0.301487f, 0.0187517f, 0.0485134f, -0.0105702f, 0.189436f, 0.0302066f, -0.1354f, 0.209205f, -0.0736122f, 0.154815f, 0.207173f, -0.164449f, 0.0102829f, 0.190398f, -0.163598f, 0.163898f, 0.000889656f, 0.160728f, 0.0260266f, 0.0795152f, -0.0609859f, -0.00492096f, 0.148513f, 0.0292519f, -0.0151774f, 0.0844808f, -0.104805f, 0.00892504f, -0.157198f, -0.00471483f, 0.159286f, 0.02348f, -0.00545963f, -0.353353f, 0.0873329f, -0.0586433f, -0.0125912f, -0.115963f, -0.119885f, 0.0766535f, 0.241943f, -0.114503f, -0.0698256f, -0.0770665f, -0.0988619f, -0.103501f, -0.0205344f, -0.0688587f, 0.0154166f, -0.0251446f, 0.0576006f, -0.11729f, -0.0783502f, 0.162996f, -0.158068f, -0.0464638f, 0.0899268f, -0.0633511f, -0.0610163f, -0.250437f, 0.0128291f, -0.0825495f, -0.163606f, 0.101236f, -0.131914f, 0.177113f, 0.033363f, -0.0850841f, 0.0542293f, 0.00730493f, 0.171503f, -0.144302f, -0.296228f, 0.178353f, -0.115966f, -0.0852706f, -0.0596784f, -0.0127241f, 0.105473f, 0.123781f, -0.0262393f, 0.0711206f, 0.127076f, 0.00874865f, -0.151151f, -0.0348338f, -0.255797f, 0.0360483f, -0.0708169f, 0.0917352f, -0.0674967f, -0.269284f, 0.0645141f, -0.0489533f, 0.0268497f, -0.0418466f, 0.0329078f, 0.0506418f, -0.0400701f, -0.0190033f, 0.0027575f, 0.157207f, 0.0136099f, -0.156063f, 0.201186f, -0.0689118f, -0.143611f, -0.0976571f, 0.0491335f, 0.148932f, -0.19122f, -0.0740193f, 0.1431f, -0.0663067f, 0.025561f, 0.0362866f, 0.0794159f, 0.0177192f, 0.113754f, -0.108353f, -0.103554f, -0.0586644f, -0.0205509f, -0.00884411f, -0.0342449f, 0.0561992f, 0.0584913f, -0.102268f, -0.103894f, 0.00168468f, 0.02457f, 0.272637f, -0.214107f, 0.0963735f, -0.0860138f, 0.0820107f, -0.0395722f, -0.0890365f, -0.0463005f, 0.106617f, -0.143495f, -0.0336468f, -0.188993f, 0.0051237f, -0.112037f, -0.0389216f, -0.0195912f, -0.0551543f, -0.0499805f, -0.0434386f, 0.0590842f, 0.051763f, -0.144961f, -0.249586f, 0.0188181f, 0.0383496f, -0.110791f, -0.0200909f, -0.0118629f, 0.00154406f, -0.148742f, 0.166765f, 0.0830032f, -0.0325294f, 0.0475391f, 0.0381812f, -0.121096f, 0.000216945f, -0.0949514f, 0.0743923f, 0.0568355f, 0.0161168f, 0.115875f, -0.0852799f, -0.0335874f, -0.217277f, -0.0643241f, 0.266745f, -0.110172f, -0.0533834f, -0.157912f, -0.187104f, 0.0131235f, 0.0597408f, 0.069514f, 0.0601621f, -0.00329732f, -0.0890382f, -0.0675793f, 0.0714738f, 0.0253017f, 0.0243978f, -0.046084f, 0.0773639f, -0.114919f, 0.0310788f, 0.106962f, 0.0828923f, -0.144452f, -0.115416f, -0.0958501f, -0.129221f, -0.127429f, 0.0382421f, -0.0146877f, -0.137468f, 0.150944f, -0.0345054f, 0.0187336f, -0.0557523f, -0.018698f, 0.201412f, 0.149482f, 0.0782161f, 0.00777537f, 0.0576844f, 0.00349577f, 0.0783062f, -0.0556879f, -0.177377f, -0.107606f, 0.0813295f, -0.121168f, -0.129388f, -0.0833719f, -0.133752f, 0.0376285f, 0.0653704f, 0.0718466f, 0.0683823f, -0.0240822f, 0.0983999f, -0.209155f, -0.0730141f, -0.101832f, 0.262119f, 0.0435021f, 0.235285f, -0.0618562f, -0.0276996f, 0.133403f, -0.145838f, -0.196983f, 0.0325785f, 0.172086f, 0.127027f, -0.0530481f, -0.0420235f, -0.0780407f, 0.0731909f, -0.0452311f, 0.00177096f, 0.100321f, -0.0746755f, 0.0165171f, -0.0277538f, -0.0600918f, -0.155733f, -0.0270438f, -0.0562218f, -0.188384f, -0.015533f, -0.125536f, -0.0995965f, 0.0326625f, -0.00473807f, -0.263551f, -0.0126566f, 0.0429798f, 0.0746636f, 0.0014739f, -0.064186f, 0.0383639f, 0.00335138f, 0.00661811f, -0.0666035f, 0.100151f, 0.124637f, -0.0501534f, 0.0729875f, -0.0325801f, -0.118912f, 0.156762f, 0.119222f, -0.0703656f, -0.107443f, -0.0106849f, 0.178534f, -0.188654f, 0.0139277f, -0.112872f, 0.113581f, 0.0148267f, -0.0107155f, -0.103505f, 0.0794643f, -0.0126362f, -0.155417f, -0.0212171f, 0.0136825f, 0.158854f, 0.0471712f, -0.0193459f, 0.0623944f, -0.0880415f, 0.0506584f, 0.148512f, 0.0785552f, 0.0456253f, 0.107337f, 0.0586789f, 0.0392142f, 0.436821f, 0.150519f, -0.205589f, -0.147754f, -0.0206848f, 0.0601468f, -0.163127f, -0.0963941f, -0.107965f, -0.00408072f, 0.280505f, -0.0560431f, -0.00689325f, -0.120938f, 0.0404649f, 0.0536667f, -0.0619378f, 0.00443474f, -0.0870524f, 0.168785f, 0.0643028f, -0.017152f, -0.0315616f, 0.00869542f, -0.0865183f, -0.0871742f, 0.0141768f, 0.0937736f, 0.0931509f, -0.0216183f, 0.0757177f, 0.0198094f, 0.0304987f, -0.219202f, 0.110257f, -0.12914f, -0.110451f, 0.0199733f, -0.0114212f, 0.0385627f, -0.0497267f, 0.138984f, -0.22634f, 0.0100669f, -0.31615f, 0.121993f, 0.118669f, -0.0698531f, 0.0172852f, 0.0185688f, 0.0459071f, 0.108891f, 0.0654304f, 0.118201f, 0.0529336f, 0.0812718f, 0.0478368f, -0.123907f, -0.0491086f, 0.176081f, 0.065931f, 0.0660524f, -0.192385f, 0.0828629f, -0.216643f, -0.0571674f, -0.201397f, -0.0355088f, 0.178072f, -0.0853416f, 0.124099f, 0.0203911f, 0.0274672f, 0.00828269f, 0.00732486f, 0.0847133f, -0.0506192f, 0.0527658f, -0.0200978f, 0.285349f, 0.118459f, 0.291365f, -0.0834235f, 0.25274f, -0.0978069f, -0.109135f, -0.188254f, 0.075106f, -0.219831f, -0.115479f, -0.0618749f, -0.0397322f, -0.0163002f, 0.320431f, -0.0953794f, 0.0680982f, -0.0164492f, 0.266658f, 0.0284907f, 0.0531426f, 0.00771049f, -0.0491838f, 0.245814f, -0.0354842f, -0.00368529f, 0.0147172f, -0.0605167f, 0.0629247f, -0.0272621f, -0.0900155f, -0.104437f, -0.00164132f, -0.147905f, 0.0874303f, -0.0460467f, -0.203972f, -0.101913f, 0.0681534f, -0.175749f, -0.044082f, 0.0499667f, 0.101397f, -0.102439f, -0.0890356f, -0.112409f, -0.236911f, -0.231265f, -0.00391378f, 0.0554511f, -0.0343382f, 0.0273844f, 0.0589773f, -0.0914905f, -0.147848f, 0.00570501f, -0.040181f, -0.185677f, 0.0565334f, 0.100617f, 0.0505527f, 0.283786f, -0.088573f, 0.0789234f, 0.13898f, -0.17573f, 0.169033f, 0.145385f, 0.027815f, 0.111682f, 0.0586907f, -0.0504574f, -0.0120178f, 0.256183f, 0.19722f, 0.0288357f, 0.164119f, 0.00141712f, 0.161929f, 0.12042f, 0.187687f, 0.0181222f, -0.0665429f, 0.0207422f, 0.0040276f, 0.0811161f, 0.108225f, 0.0260353f, 0.159201f, 0.0520188f, 0.00294293f, 0.0781038f, -0.151459f, -0.00911831f, 0.0103881f, 0.0652626f, -0.111244f, -0.136395f, 0.0876616f, -0.0099681f, -0.0383893f, -0.0780621f, 0.136591f, -0.0719446f, -0.174028f, -0.0389173f, 0.0511997f, -0.192826f, 0.00466894f, -0.161537f, -0.0628047f, -0.321016f, 0.167862f, -0.0263652f, 0.116374f, -0.203032f, 0.0149188f, 0.0335333f, 0.0261203f, -0.00278065f, 0.0227422f, -0.127162f, -0.0205502f, 0.0625119f, 0.034512f, -0.174513f, -0.0261973f, -0.010445f, -0.0753829f, -0.00953242f, -0.197817f, -0.0480799f, 0.242346f, -0.173039f, -0.152137f, -0.204285f, -0.152109f, 0.247586f, 0.0289648f, -0.114726f, 0.164881f, 0.0711591f, 0.200464f, 0.0690837f, 0.0574634f, -0.236943f, -0.147197f, 0.0180576f, 0.170739f, 0.0211228f, 0.100023f, -0.150299f, 0.00305585f, -0.0675063f, 0.0733471f, 0.082061f, -0.0570985f, 0.0826223f, 0.0146083f, -0.0469557f, 0.100016f, 0.0331568f, -0.0769573f, 0.0497871f, 0.0264486f, 0.108513f, -0.0433133f, -0.0465537f, -0.0316478f, 0.114871f, 0.246907f, 0.0851856f, 0.00137796f, 0.0868623f, 0.00359539f, -0.0327755f, 0.142459f, -0.109713f, -0.209193f, -0.144129f, -0.102934f, 0.103034f, 0.0752038f, -0.0562995f, 0.0496457f, -0.110615f, -0.131987f, -0.0722309f, -0.101845f, 0.162959f, 0.0353375f, -0.0355354f, -0.0168953f, 0.0298833f, 0.0386642f, 0.0895608f, -0.117205f, 0.249212f, -0.0710824f, 0.248732f, -0.125278f, 0.14746f, -0.118834f, 0.037974f, -0.0080456f, -0.0609013f, 0.0335866f, -0.0722056f, -0.0319603f, -0.164278f, 0.00123964f, -0.0540409f, -0.069079f, -0.0640386f, 0.117626f, -0.0125416f, -0.021695f, 0.0339126f, 0.0592881f, -0.0571117f, -0.0510254f, -0.112075f, 0.0310283f, 0.0276408f, 0.0624321f, -0.102227f, 0.119786f, 0.136984f, -0.198769f, 0.116546f, -0.113675f, -0.0975303f, 0.0863849f, 0.313628f, -0.0233152f, -0.0883958f, 0.0273514f, 0.0861287f, -0.0224486f, 0.145279f, 0.135521f, -0.150667f, 0.00242524f, -0.104743f, 0.0349992f, 0.076474f, -0.192244f, 0.0219344f, -0.0583491f, -0.210056f, 0.11026f, 0.0497622f, -0.00149033f, 0.0527376f, -0.0397358f, -0.0102298f, 0.100811f, 0.0182541f, 0.0531586f, 0.00577213f, 0.0946588f, 0.0306594f, -0.0491657f, 0.0958279f, -0.130564f, -0.252547f, 0.154131f, 0.17401f, 0.0183225f, 0.0654358f, -0.224525f, -0.0756593f, -0.104798f, 0.0814372f, -0.0670822f, 0.0479851f, -0.0598093f, 0.0429571f, -0.0853282f, 0.0881756f, -0.0372427f, 0.154766f, -0.0956291f, 0.014303f, 0.118515f, -0.0273259f, 0.24178f, 0.080003f, 0.0987992f, -0.0248615f, -0.0804173f, -0.119042f, 0.096091f, 0.0976242f, 0.108811f, -0.143906f, 0.0821415f, 0.0343966f, 0.239524f, -0.0819462f, 0.0342312f, -0.0676833f, 0.139296f, -0.0363265f, 0.022595f, -0.00771109f, -0.228094f, 0.0125006f, -0.0341103f, -0.10445f, -0.131254f, -0.0696633f, -0.0415108f, -0.277405f, 0.156478f, -0.0223426f, -0.00234315f, -0.00380435f, 0.0655536f, -0.0871388f, -0.0538015f, -0.109282f, -0.177211f, 0.0310872f, 0.0806125f, -0.033272f, -0.173223f, 0.24033f, -0.141801f, -0.0317155f, -0.134657f, 0.0782554f, -0.0700069f, -0.129455f, -0.186566f, -0.0251692f, 0.184257f, -0.0528547f, 0.0686773f, 0.0568493f, 0.364699f, -0.0174419f, 0.11531f, -0.0191667f, -0.169855f, 0.212244f, -0.114901f, -0.0104762f, -0.100376f, -0.00573494f, 0.0500756f, -0.189343f, -0.095712f, 0.092648f, 0.0817779f, -0.0540596f, 0.0581827f, 0.131968f, -0.140022f, 0.0141728f, -0.17298f, -0.0653304f, 0.00524409f, 0.0917524f, -0.0849808f, -0.274334f, 0.0206348f, 0.0231951f, 0.0162643f, 0.195179f, 0.0114857f, -0.112147f, -0.0213881f, -0.0646119f, 0.074431f, 0.08763f, 0.0838317f, 0.16657f, 0.099608f, 0.0540574f, -0.0545484f, -0.036095f, 0.141203f, 0.187952f, 0.0938441f, 0.0708003f, 0.0936428f, 0.080415f, -0.0133838f, -0.191045f, 0.0447314f, -0.0540455f, -0.0643366f, -0.241018f, 0.114376f, 0.0464285f, 0.114051f, 0.119541f, -0.192401f, 0.143766f, 0.0418396f, -0.00642795f, 0.105539f, 0.00332433f, 0.155646f, -0.0995054f, -0.169426f, 0.0924475f, -0.0932149f, -0.00104536f, -0.0109996f, 0.205104f, 0.0192016f, 0.0929935f, -0.0686127f, -0.0154829f, -0.0660413f, 0.118482f, -0.00785289f, 0.115292f, -0.154392f, 0.159432f, 0.100375f, 0.235818f, 0.172303f, 0.157487f, -0.150497f, 0.0844604f, 0.156848f, 0.0110232f, -0.259092f, 0.184408f, -0.0110206f, 0.141868f, 0.222088f, 0.177232f, 0.137883f, -0.111673f, -0.121316f, -0.094772f, 0.0629649f, 0.0029347f, -0.0537894f, -0.0257443f, 0.0762083f, 0.153583f, -0.0119773f, -0.127657f, -0.0582888f, 0.106867f, -0.16616f, 0.164419f, 0.0892311f, 0.0175192f, 0.293731f, -0.204899f, -0.14175f, -0.219889f, 0.259556f, -0.146205f, 0.0912886f, 0.25086f, 0.083806f, -0.135214f, -0.0729529f, -0.020093f, -0.13573f, 0.0459177f, 0.175398f, -0.031548f, -0.102012f, -0.0458137f, -0.101521f, 0.165019f, -0.0173854f, -0.102994f, 0.0311972f, -0.121498f, 0.0170649f, -0.0820575f, 0.157058f, 0.119157f, -0.175315f, 0.194786f, -0.126683f, 0.113049f, -0.182086f, -0.0215088f, 0.133536f, -0.0945799f, -0.00343771f, -0.165113f, 0.15883f, 0.0398024f, -0.0308584f, -0.00526949f, -0.31943f, -0.0673972f, 0.0604993f, 0.11556f, 0.0322569f, 0.17678f, 0.064807f, 0.243301f, -0.106923f, -0.0857383f, 0.198332f, -0.0974978f, -0.060929f, -0.0286962f, 0.131383f, 0.00353785f, 0.0840156f, -0.161573f, 0.299598f, 0.092483f, 0.136677f, 0.0681064f, -0.0369157f, 0.0109002f, 0.147987f, -0.179359f, 0.0385189f, 0.147483f, 0.0418434f, 0.0412545f, -0.158423f, 0.129262f, -0.111381f, 0.0324425f, -0.118445f, -0.012743f, -0.0497911f, -0.152836f, -0.0138971f, 0.275033f, 0.0379561f, -0.0353908f, 0.112922f, 0.00257108f, -0.102585f, 0.0178443f, -0.0685973f, -0.0589892f, -0.140477f, -0.110938f, -0.0819228f, 0.0237363f, -0.0529214f, -0.154593f, 0.0717149f, 0.141669f, -0.124937f, 0.0884873f, -0.0843145f, -0.0800316f, 0.0015273f, 0.0779853f, 0.215699f, -0.0492029f, 0.255677f, 0.0576604f, -0.187931f, -0.221886f, 0.0838732f, -0.119428f, 0.0794347f, -0.23528f, 0.0990042f, -0.0734224f, -0.0323009f, -0.0329696f, -0.0221162f, 0.176851f, -0.0442899f, -0.014652f, 0.233922f, 0.238337f, 0.0630276f, 0.0826546f, -0.142598f, -0.0712988f, 0.0592387f, -0.169272f, 0.121682f, 0.167921f, -0.0526073f, 0.0439914f, 0.21954f, 0.0338585f, 0.0986377f, -0.091923f, -0.0394824f, -0.0629262f, -0.0720554f, 0.0466092f, -0.0021831f, 0.123134f, 0.0802895f, 0.221041f, 0.0943648f, -0.0215001f, 0.0821858f, -0.0143962f, -0.0921355f, -0.100367f, 0.0304821f, 0.00576877f, 0.220847f, -0.0788137f, -0.216495f, -0.0712411f, -0.111138f, 0.0675874f, -0.0355571f, 0.0323196f, -0.0692189f, 0.0511887f, -0.00621771f, -0.0631967f, -0.10734f, -0.171143f, -0.00266479f, -0.136164f, 0.00392826f, -0.0716647f, 0.0383216f, -0.000406469f, 0.10136f, 0.0675091f, -0.00127984f, -0.0352303f, 0.0274194f, -0.018099f, 0.228436f, -0.112096f, 0.0482143f, -0.0093749f, -0.142246f, -0.0439387f, 0.0606885f, 0.00945743f, 0.151692f, -0.0993015f, 0.1075f, 0.151363f, -0.125159f, 0.0920575f, -0.0549752f, 0.0231742f, 0.0581225f, -0.151087f, 0.127494f, -0.0224457f, 0.0405831f, -0.0186283f, -0.00446636f, -0.0697769f, -0.092547f, -0.0504649f, -0.0741563f, -0.0766082f, 0.0648421f, 0.0335332f, -0.0617778f, -0.037744f, -0.0666786f, -0.282159f, -0.105199f, 0.0477974f, -0.015349f, -0.0731396f, -0.0451088f, -0.0453926f, 0.242446f, 0.080321f, -0.000296348f, -0.136753f, -0.00243719f, -0.188663f, -0.00680661f, -0.0216228f, -0.0405222f, 0.0589496f, -0.126624f, -0.0474198f, -0.045893f, -0.146105f, 0.0157783f, 0.00197217f, -0.0407743f, 0.0852803f, -0.0694973f, 0.0268414f, -0.0831441f, 0.0849132f, -0.0846731f, 0.16431f, -0.00656796f, -0.0932692f, -0.120823f, 0.120436f, 0.0695665f, 0.0163313f, -0.0841651f, -0.0752744f, -0.0582639f, 0.0485903f, -0.0974578f, -0.00806678f, 0.0170652f, -0.209845f, -0.0724398f, 0.0390507f, -0.00857037f, -0.135935f, 0.0292235f, -0.0902007f, 0.0643512f, -0.0436476f, 0.00371703f, -0.00907f, 0.0187564f, -0.00199835f, 0.137764f, 0.092294f, 0.0120731f, 0.159271f, 0.222891f, -0.137774f, 0.0470832f, 0.185701f, 0.0186311f, 0.139952f, -0.145167f, 0.0131761f, 0.0707195f, 0.129918f, -0.0495921f, -0.039669f, -0.19195f, -0.137565f, 0.0562696f, -0.0608375f, -0.0886673f, -0.197458f, 0.268745f, -0.180089f, 0.186463f, -0.237761f, 0.14274f, -0.0681095f, 0.0360334f, -0.137121f, -0.249944f, 0.00815163f, -0.0657336f, 0.0797973f, 0.173332f, 0.286422f, 0.125865f, 0.0388233f, -0.0551546f, -0.18761f, -0.0732028f, -0.223561f, -0.147195f, 0.106057f, -0.0553753f, -0.085981f, 0.0037168f, -0.133886f, 0.0677825f, -0.148835f, 0.00095081f, -0.245516f, 0.0726961f, 0.0294599f, -0.0851962f, 0.227447f, 0.0994209f, -0.0222678f, 0.124198f, 0.0792445f, 0.254729f, -0.227326f, -0.00299856f, -0.0186871f, -0.187767f, -0.0453061f, 0.148381f, 0.170918f, 0.144937f, -0.175299f, 0.136244f, -0.265542f, -0.101558f, -0.0696495f, -0.00551403f, -0.179644f, 0.0449829f, 0.0883214f, -0.167526f, 0.0412836f, 0.0544578f, -0.180489f, 0.18436f, 0.104409f, 0.115841f, 0.0480114f, -0.0900847f, 0.107234f, 0.0729328f, -0.242761f, -0.134889f, -0.106632f, 0.051635f, 0.0247183f, 0.196677f, 0.130069f, -0.0597063f, -0.145512f, 0.125263f, 0.203669f, -0.130532f, 0.16687f, -0.0956061f, -0.197695f, 0.0148986f, 0.00277894f, -0.163156f, -0.136367f, 0.129076f, 0.153134f, 0.038167f, 0.0942609f, 0.0826166f, -0.092352f, -0.152177f, 0.0151285f, -0.0726906f, 0.0461577f, -0.151874f, 0.137347f, 0.0891763f, 0.0597281f, -0.0802155f, 0.0801635f, -0.06655f, -0.150375f, 0.196031f, -0.0272826f, -0.163319f, -0.177977f, 0.159184f, -0.183685f, -0.100851f, -0.00189987f, 0.174179f, -0.121633f, -0.196701f, 0.194773f, -0.0567895f, 0.0165633f, -0.174289f, 0.0555316f, 0.220259f, -0.0759648f, -0.133968f, 0.155835f, -0.00710933f, -0.00816028f, 0.177335f, 0.0469032f, -0.0516512f, -0.0562899f, -0.169219f, -0.0622976f, -0.053489f, 0.107297f, 0.0097646f, -0.277489f, -0.0372857f, 0.135943f, 0.0612752f, 0.0465536f, 0.0799186f, -0.0159454f, 0.0639947f, 0.0123349f, 0.0547988f, -0.189219f, 0.122578f, 0.328674f, -0.177518f, 0.0770314f, -0.18401f, -0.264785f, 0.0635583f, -0.0252952f, -0.105455f, -0.15441f, 0.0208742f, -0.0210277f, 0.0973619f, 0.0746646f, -0.0902651f, 0.0357412f, -0.155219f, -0.0627718f, -0.130589f, -0.0842859f, -0.186088f, -0.153903f, -0.200605f, -0.126459f, 0.170074f, 0.259562f, -0.378867f, -0.155487f, 0.136717f, 0.0831077f, -0.120254f, 0.0779441f, -0.0322035f, 0.251611f, 0.0525719f, 0.0719452f, -0.182622f, 0.0454614f, 0.337278f, 0.19989f, -0.252125f, -0.0653214f, -0.266464f, -0.0357282f, 0.0193252f, -0.380642f, -0.0184413f, 0.0648606f, -0.0732332f, 0.207983f, -0.0362525f, -0.146087f, -0.0585778f, -0.150156f, -0.108055f, 0.0395808f, 0.307377f, 0.156692f, 0.0575351f, 0.11283f, -0.0842016f, -0.148834f, -0.136389f, 0.119414f, -0.0963163f, -0.17213f, 0.0843124f, 0.050097f, -0.0467245f, 0.161712f, -0.0969142f, -0.122187f, -0.123609f, -0.0943029f, 0.205324f, 0.194888f, -0.0263282f, -0.0978351f, 0.0976432f, 0.151996f, -0.0470079f, -0.111552f, -0.0717668f, 0.0224135f, -0.13619f, 0.10257f, 0.0135535f, -0.105547f, -0.101089f, -0.02109f, 0.00724989f, 0.0624006f, -0.010461f, -0.118395f, 0.057202f, -0.0104275f, -0.0264917f, -0.0483311f, 0.00548415f, 0.0719238f, 0.088326f, -0.0797591f, -0.164317f, -0.0830582f, -0.112233f, 0.0445092f, 0.217371f, -0.054274f, -0.0647783f, 0.237438f, -0.0646112f, 0.0176624f, -0.00422478f, 0.00140721f, -0.0301268f, -0.00280278f, 0.133068f, -0.00327723f, 0.129822f, -0.0261647f, 0.105844f, -0.0316572f, -0.0267568f, 0.111631f, 0.110261f, 0.0934261f, -0.119811f, -0.0482122f, -0.140721f, 0.0751114f, -0.111571f, 0.136738f, -0.110011f, -0.0626385f, -0.0130303f, 0.0373946f, -0.0630297f, -0.0357304f, 0.0631108f, -0.111914f, 0.10301f, -0.0584495f, -0.0151384f, 0.0592175f, -0.0100655f, 0.0761505f, 0.0867596f, 0.0914872f, -0.13201f, -0.0364541f, 0.0593647f, 0.0330441f, -0.0461785f, -0.0360856f, -0.0339168f, 0.132559f, 0.185356f, 0.0130216f, -0.255067f, -0.117423f, 0.114581f, -0.120889f, 0.0471267f, 0.062832f, -0.0371075f, 0.0943045f, 0.131954f, -0.0599735f, 0.0216651f, -0.0838564f, 0.119645f, -0.14847f, 0.0155478f, 0.00645479f, 0.0478214f, 0.0371388f, -0.113456f, -0.0265263f, -0.114836f, -0.123182f, 0.163266f, 0.00378429f, -0.00372061f, 0.0373246f, -0.0704691f, -0.143256f, 0.192769f, -0.0159563f, -0.165297f, -0.0739247f, -0.0169702f, -0.0571792f, -0.0219687f, -0.0381829f, -0.0312518f, -0.0175951f, -0.0418625f, -0.0224027f, 0.162624f, 0.177847f, -0.147386f, -0.0278544f, -0.0894681f, -0.106442f, -0.0683103f, -0.0413931f, 0.144387f, -0.087024f, 6.54325e-05f, 0.0616569f, -0.180801f, 0.115745f, 0.0166992f, 0.0507222f, -0.0341893f, -0.147882f, -0.029266f, 0.00548702f, 0.0757531f, 0.0485858f, 0.131577f, -0.0674213f, 0.0932416f, 0.0617305f, 0.170009f, 0.0562002f, -0.110708f, -0.0881992f, -0.0828862f, 0.101503f, -0.110032f, -0.0118443f, 0.0553955f, 0.0269932f, 0.151384f, 0.189344f, -0.00508113f, 0.00701514f, -0.13896f, 0.00942143f, -0.181858f, -0.182453f, 0.0858266f, -0.125994f, 0.0643093f, 0.0651061f, 0.0187432f, 0.0387276f, -0.0478437f, 0.0338592f, 0.0983768f, -0.0157659f, -0.182506f, -0.110007f, 0.0940805f, -0.0689953f, -0.128398f, -0.23169f, 0.20424f, -0.141403f, -0.087941f, -0.102975f, -0.169686f, 0.00228053f, -0.159373f, 0.00757665f, -0.0622429f, -0.0531658f, 0.0877051f, 0.0614136f, 0.126883f, 0.197013f, -0.088685f, 0.16389f, -0.126674f, -0.0595267f, -0.0928849f, -0.051376f, 0.00569531f, -0.0945021f, -0.123743f, -0.0317999f, 0.271745f, -0.0311923f, 0.13584f, 0.0157436f, -0.0032391f, 0.0684661f, 0.240358f, 0.107445f, 0.0287696f, -0.0912303f, -0.135376f, -0.0172953f, 0.218439f, -0.234795f, 0.0603213f, -0.146715f, -0.0451571f, -0.19666f, -0.0501199f, -0.0470063f, -0.107997f, -0.133704f, 0.0150451f, -0.0889018f, 0.112861f, -0.0921217f, -0.0966599f, -0.17391f, 0.138188f, 0.220671f, 0.118826f, -0.131937f, 0.0114676f, -0.155498f, -0.191256f, -0.0355779f, -0.0054594f, 0.159215f, -0.133107f, -0.0959308f, -0.0142732f, 0.0247368f, 0.0713733f, 0.00513131f, 0.123233f, 0.0420631f, -0.0876682f, -0.194496f, 0.156441f, -0.086774f, -0.00967839f, 0.000318415f, 0.0723815f, 0.102611f, -0.126957f, 0.0220541f, -0.0439958f, -0.0839577f, -0.196084f, -0.178553f, -0.00212902f, 0.0885502f, -0.113288f, 0.0348596f, 0.0544947f, 0.0374268f, 0.0925863f, -0.14175f, -0.100615f, -0.0278806f, 0.140529f, -0.180798f, 0.0207777f, 0.114521f, -0.205726f, -0.0223329f, 0.120644f, -0.0360593f, 0.176743f, -0.0167613f, 0.154558f, 0.0394928f, 0.0336677f, -0.165691f, 0.0273113f, -0.00373487f, -0.0666451f, 0.0569457f, 0.141522f, 0.126596f, 0.107784f, 0.0203019f, 0.193178f, -0.226816f, 0.193247f, -0.107764f, 0.0687023f, 0.0511945f, 0.157144f, -0.0228786f, -0.0108651f, -0.0777493f, 0.010864f, 0.00433865f, 0.102825f, 0.159428f, -0.050993f, 0.0458343f, -0.0751783f, 0.0260537f, -0.201835f, 0.245345f, -0.0379609f, 0.129529f, 0.0529963f, 0.00439538f, -0.0616913f, -0.164331f, 0.0681056f, 0.0169479f, 0.0352489f, 0.00676213f, 0.0794616f, 0.0193105f, 0.0764f, -0.173057f, 0.0388675f, 0.0730533f, -0.151638f, 0.0488047f, 0.0442576f, -0.0275534f, -0.116132f, 0.0207212f, 0.179146f, 0.187551f, -0.0786911f, -0.130232f, 0.11921f, 0.0613649f, 0.0124905f, 0.0866229f, -0.0360298f, 0.0409593f, -0.0185723f, -0.098352f, -0.141936f, 0.00839009f, -0.0376425f, 0.0305682f, 0.0411011f, 0.118092f, -0.189046f, 0.079703f, -0.069181f, -0.0146499f, 0.0435627f, -0.00275349f, 0.163437f, -0.0508053f, 0.0799117f, -0.0688605f, -0.221479f, 0.0370452f, -0.00291861f, -0.0949684f, 0.161194f, -0.086924f, -0.0475342f, 0.0440536f, -0.0611698f, -0.0227557f, 0.340177f, 0.033212f, 0.0403742f, 0.0608981f, -0.0806361f, 0.145609f, -0.0853822f, -0.160726f, -0.0298893f, 0.115213f, -0.178563f, 0.124487f, -0.203567f, 0.153877f, -0.131528f, 0.0458083f, 0.0247718f, 0.00625409f, -0.0513306f, -0.288242f, 0.166162f, 0.0146106f, -0.0655416f, -0.0815819f, -0.0970577f, 0.035552f, 0.0860269f, -0.0249599f, -0.0976907f, 0.146056f, 0.114354f, -0.0538447f, -0.155469f, -0.0489349f, -0.0747667f, 0.252494f, 0.206504f, -0.0343955f, -0.0418634f, -0.274013f, -0.091628f, -0.0523698f, 0.0654734f, 0.0246101f, 0.282379f, -0.216905f, 0.139489f, -0.0976523f, 0.202064f, 0.136128f, -0.143568f, -0.0344702f, -0.271866f, -0.240992f, -0.192741f, 0.0933615f, 0.0894183f, -0.150085f, 0.125594f, 0.261655f, -0.324613f, 0.16926f, 0.00994752f, -0.044205f, 0.132438f, -0.209856f, 0.0394501f, 0.155207f, 0.141184f, -0.100321f, 0.194688f, -0.213996f, -0.00751152f, 0.0627207f, -0.031971f, 0.155319f, 0.236537f, 0.132249f, -0.0917359f, -0.156285f, -0.132448f, 0.0076974f, 0.0625074f, 0.00992415f, 0.0351844f, 0.0860853f, -0.0705866f, -0.0202664f, 0.0449632f, 0.0285608f, -0.168727f, 0.0923312f, 0.0427245f, -0.00205917f, -0.174035f, 0.0850175f, 0.00296566f, 0.0587867f, 0.0080182f, -0.00105425f, 0.14835f, -0.0640718f, -0.128433f, 0.165739f, -0.0420402f, 0.106405f, 0.0527832f, 0.00291462f, 0.0153293f, -0.0895957f, 0.237938f, 0.32158f, -0.0710225f, 0.172575f, -0.338071f, -0.34575f, -0.196512f, -0.0482133f, -0.109898f, -0.14005f, 0.112016f, -0.173462f, 0.309331f, 0.0522891f, 0.0986092f, 0.00372108f, -0.0896296f, 0.25531f, 0.0849888f, -0.131458f, -0.185212f, 0.00920969f, 0.176305f, 0.0136338f, 0.111321f, -0.0477394f, 0.0398698f, 0.0681508f, -0.0374859f, 0.103557f, 0.0407718f, -0.0607523f, -0.0357099f, -0.0859756f, 0.0162953f, 0.150954f, 0.255985f, -0.1572f, -0.0379376f, -0.0538405f, 0.0845731f, 0.0563938f, -0.00513537f, 0.0229765f, 0.0302893f, -0.0996866f, -0.124096f, -0.0452435f, -0.0113161f, -0.0921475f, 0.161122f, 0.0310183f, 0.0905338f, 0.114075f, 0.116818f, -0.00512642f, 0.0118061f, 0.0302545f, -0.0575202f, -0.0680278f, -0.21406f, -0.15408f, 0.124751f, -0.152431f, 0.0695495f, 0.0594378f, 0.254272f, 0.0778655f, -0.0322985f, -0.193742f, 0.25285f, -0.0540584f, 0.039247f, -0.0751777f, 0.0135412f, 0.172572f, -0.138501f, 0.202772f, -0.0346905f, 0.022874f, -0.180271f, -0.0310041f, -0.282459f, -0.143252f, -0.107986f, -0.0512196f, 0.055725f, 0.098828f, 0.178821f, 0.032783f, -0.070875f, 0.0900188f, 0.0551683f, -0.00913378f, -0.0733293f, 0.106664f, -0.196099f, 0.144124f, 0.0586508f, 0.00249303f, -0.11378f, -0.117928f, 0.0283897f, -0.0867722f, -0.0300037f, -0.0217292f, -0.0806928f, -0.00536971f, -0.023149f, 0.147148f, -0.0980452f, 0.0301574f, -0.0395377f, -0.017592f, -0.0145329f, 0.0425186f, -0.156782f, 0.0861994f, 0.0866552f, 0.0117734f, 0.106753f, -0.0350978f, -0.0133006f, 0.120679f, 0.031806f, -0.129854f, -0.0403199f, 0.0833913f, 0.034333f, -0.0831704f, 0.0659701f, -0.19473f, 0.0430495f, -0.10121f, 0.050564f, -0.0691131f, 0.174513f, -0.109457f, -0.0240733f, -0.153472f, -0.0518256f, -0.202928f, 0.219795f, 0.0261893f, -0.0659782f, 0.0150751f, -0.068188f, -0.222545f, -0.000432283f, 0.0761819f, 0.0622422f, -0.0945604f, 0.102002f, -0.0321375f, 0.0330332f, 0.0077169f, -0.278836f, -0.100125f, 0.111726f, -0.223667f, 0.123933f, -0.0439376f, -0.0409852f, 0.163699f, 0.274821f, -0.0243265f, 0.266052f, -0.229609f, 0.0544953f, -0.341057f, -0.0292062f, -0.125304f, 0.0974245f, 0.0759418f, 0.0469703f, 0.0467237f, -0.0409672f, -0.0454566f, -0.0584323f, -0.142895f, -0.233591f, 0.160198f, 0.379947f, -0.202298f, -0.0410294f, -0.143708f, -0.176606f, -0.0658562f, -0.129048f, -0.142363f, -0.0162069f, 0.0499456f, -0.273543f, -0.109408f, -0.171235f, 0.012358f, -0.125174f, 0.0602868f, -0.076502f, 0.142653f, 0.0495057f, -0.0702373f, -0.10896f, -0.180973f, -0.199017f, -0.148271f, -0.151102f, 0.114157f, 0.234187f, 0.0757566f, -0.185148f, 0.226029f, -0.0176612f, 0.110892f, 0.0950912f, -0.141465f, 0.0557055f, 0.0668672f, 0.0479531f, 0.0831774f, -0.0166579f, 0.0200367f, -0.0827604f, 0.0899234f, 0.0626917f, -0.0710282f, 0.070569f, -0.301462f, 0.0325763f, 0.0316832f, -0.14969f, 0.0435937f, 0.158507f, -0.190497f, 0.183707f, 0.318006f, -0.195019f, -0.0440334f, -0.0940652f, -0.0499798f, 0.240913f, 0.0758234f, -0.00387766f, 0.0762203f, 0.131962f, 0.153636f, -0.0384933f, -0.190521f, -0.0477811f, 0.189119f, -0.01575f, 0.00553842f, 0.0267681f, 0.0455741f, -0.127527f, -0.0785853f, -0.0978048f, -0.288205f, -0.178153f, 0.174321f, -0.0193253f, 0.0557121f, -0.121288f, 0.0712193f, -0.00948563f, -0.0468453f, 0.154514f, 0.0711588f, 0.213333f, 0.111311f, -0.163178f, -0.110375f, 0.164495f, 0.139158f, -0.000615556f, 0.275033f, -0.0363685f, 0.046795f, -0.119985f, -0.050935f, -0.13351f, -0.161856f, -0.0410674f, -0.0306297f, -0.0190744f, 0.0816308f, -0.199331f, -0.0460269f, 0.0398085f, 0.25075f, -0.140583f, 0.124628f, 0.233276f, -0.0330703f, 0.010825f, 0.105891f, -0.0453386f, -0.0143017f, -0.0954015f, -0.0441222f, -0.179267f, 0.00483606f, -0.14147f, -0.00349042f, 0.0504544f, -0.0875709f, -0.0249266f, -0.00725434f, -0.0520702f, 0.117652f, -0.0427236f, -0.053201f, -0.0877448f, -0.00708887f, -0.0352921f, 0.0681962f, -0.0637719f, 0.0421798f, 0.138703f, 0.000483852f, 0.0758616f, -0.00702403f, -0.0115847f, -0.0527963f, -0.0203552f, -0.115089f, 0.0880466f, -0.078153f, 0.0822538f, -0.0944146f, 0.0286939f, 0.0258516f, -0.0525043f, -0.0742004f, 0.0874809f, 0.132794f, 0.11743f, 0.145239f, -0.0933294f, 0.0906595f, 0.138996f, 0.132414f, 0.239672f, -0.0507348f, 0.0290285f, 0.0601987f, -0.0147946f, 0.0952761f, 0.0491078f, -0.225496f, 0.0284717f, -0.161343f, 0.070601f, 0.270525f, -0.0209718f, 0.023942f, 0.0495503f, -0.0464919f, 0.101512f, 0.135846f, -0.039943f, 0.101857f, 0.0542308f, 0.107063f, -0.152393f, -0.0971794f, -0.145515f, 0.122818f, -0.0156929f, 0.0568903f, -0.241576f, -0.0734003f, 0.117234f, -0.128812f, 0.022335f, -0.0194629f, 0.0569913f, -0.0440265f, -0.0480744f, 0.0820547f, -0.059875f, -0.0826773f, -0.0317755f, 0.224142f, 0.0827693f, -0.192011f, -0.0985624f, -0.034329f, 0.132913f, -0.044133f, -0.10368f, 0.0512809f, -0.174194f, 0.0427777f, 0.0437654f, 0.100556f, -0.103856f, 0.0941623f, -0.0379344f, 0.0432247f, 0.0172621f, -0.0523788f, 0.0801879f, -0.073339f, 0.158193f, 0.0828121f, -0.0462619f, -0.0724852f, 0.0791218f, 0.0618589f, 0.0369027f, -0.0081812f, 0.044935f, 0.0767936f, -0.0587542f, 0.0645805f, 0.00832434f, 0.123544f, 0.0916765f, 0.207907f, 0.166669f, -0.153947f, -0.00787003f, 0.0752825f, 0.060331f, -0.000296821f, 0.025734f, 0.101951f, -0.0435197f, 0.169623f, 0.0653876f, -0.0232076f, -0.0490489f, 0.132654f, -0.105303f, 0.0878412f, 0.0369774f, 0.104395f, 0.0894987f, -0.0684708f, -0.0536492f, 0.214439f, -0.12713f, 0.240612f, -0.0646172f, 0.013532f, 0.146433f, 0.0467945f, 0.0376484f, 0.160955f, -0.144122f, -0.11333f, -0.0652777f, -0.000884931f, -0.0609648f, 0.0096856f, -0.0391963f, 0.0930478f, 0.0513945f, -0.0861417f, 0.198053f, -0.13069f, 0.125055f, 0.0783831f, 0.00645315f, 0.0973056f, -0.104935f, -0.048533f, -0.118656f, 0.0392463f, -0.0377647f, -0.0747861f, 0.120674f, -0.0066906f, 0.00671661f, 0.11917f, 0.0475719f, 0.018145f, -0.22145f, -0.137071f, -0.0341615f, -0.119066f, 0.00270735f, -0.0127161f, 0.0638078f, -0.226147f, -0.120791f, 0.0282435f, 0.016339f, 0.0980619f, -0.0389059f, -0.102298f, -0.151404f, -0.00641111f, 0.0163673f, 0.0967241f, 0.123535f, 0.108788f, 0.0287718f, -0.0909389f, -0.00410379f, -0.0821773f, 0.0883428f, -0.143905f, -0.160046f, -0.0385078f, -0.00695811f, 0.0589878f, -0.056249f, -0.0626617f, -0.0944167f, 0.00160559f, 0.00416143f, -0.129986f, -0.150629f, -0.106454f, -0.0397629f, 0.152361f, 0.144743f, -0.0800196f, -0.0771298f, -0.0352914f, -0.140925f, -0.145287f, 0.0474398f, -0.0134383f, -0.10025f, 0.0578112f, 0.0322683f, -0.0549949f, 0.0198583f, 0.212213f, 0.0295301f, -0.060309f, -0.0710353f, -0.00223409f, -0.0746897f, -0.145442f, 0.0615688f, 0.17374f, 0.0582445f, -0.14114f, 0.0376417f, -0.0392028f, -0.042308f, -0.0754143f, -0.0851995f, -0.0396399f, -0.0674865f, -0.0399528f, 0.160688f, 0.154632f, 0.00848393f, 0.084467f, -0.176712f, 0.0225245f, -0.0581132f, 0.42584f, -0.088722f, -0.087461f, -0.0673456f, 0.0297333f, 0.0637025f, -0.0944173f, 0.0201032f, -0.00437036f, -0.05317f, 0.251714f, 0.0338838f, -0.1726f, 0.149689f, -0.204499f, -0.0312312f, 0.0991607f, 0.147262f, -0.103922f, 0.0614895f, 0.217736f, -0.0524296f, 0.0363406f, -0.0455532f, 0.156665f, 0.0996125f, 0.0310171f, -0.11314f, 0.0389414f, 0.161806f, -0.0795834f, 0.0552996f, 0.00895559f, -0.223801f, -0.105039f, 0.0327041f, -0.0410612f, 0.157269f, -0.0209094f, -0.0928305f, -0.147693f, -0.220526f, 0.139113f, -0.0763192f, 0.0271679f, -0.00378453f, 0.294632f, -0.332448f, 0.210324f, 0.128364f, -0.00420403f, -0.158147f, 0.199544f, 0.0612645f, -0.250673f, 0.0435758f, -0.0781828f, 0.204616f, 0.151747f, -0.0351742f, 0.144051f, -0.191363f, -0.107947f, -0.244105f, 0.0296622f, 0.0163407f, -0.147049f, 0.0856755f, -0.166127f, 0.0175914f, 0.0549798f, -0.0242509f, -0.232922f, -0.0243168f, 0.212655f, 0.0212074f, -0.120678f, -0.0218802f, -0.00474436f, 0.130189f, 0.292899f, -0.20414f, 0.21612f, 0.0708675f, -0.229512f, 0.179018f, -0.0863843f, 0.00309691f, -0.180907f, 0.0432716f, 0.108824f, -0.0340857f, 0.0536037f, -0.00325648f, -0.156554f, 0.0883288f, 0.113543f, 0.0840764f, -0.138365f, -0.290375f, 0.0274911f, -0.0323731f, -0.224885f, -0.0929474f, -0.114925f, -0.100988f, 0.0536198f, 0.111772f, 0.0395627f, 0.0262573f, -0.0938931f, -0.15982f, -0.175795f, -0.175992f, -0.119991f, 0.0286431f, -0.0682055f, -0.0216906f, 0.00352793f, -0.139461f, -0.189603f, 0.0397858f, -0.0659238f, -0.184874f, 0.42227f, 0.309293f, 0.206794f, -0.381482f, 0.0853923f, 0.0839831f, -0.192538f, -0.105881f, 0.106895f, 0.128424f, -0.278437f, -0.0214758f, -0.0532473f, 0.176011f, -0.026237f, -0.0491449f, -0.132775f, 0.217409f, -0.0818919f, -0.191232f, 0.103553f, 0.0444443f, -0.0023659f, -0.117151f, -0.150581f, 0.188663f, 0.0175492f, 0.00867611f, 0.00275264f, 0.334244f, -0.132359f, 0.262102f, -0.0236255f, -0.0722565f, 0.115668f, 0.135301f, -0.00445697f, 0.0331905f, -0.245135f, -0.121966f, -0.0667797f, -0.205365f, -0.23411f, 0.0353339f, -0.288881f, -0.0211775f, 0.0018957f, -0.132582f, 0.0507063f, 0.109853f, -0.0671452f, 0.0866915f, 0.0102141f, -0.141521f, 0.0964649f, -0.133096f, 0.211681f, -0.0444678f, 0.216629f, 0.181052f, 0.171934f, 0.105551f, -0.294868f, -0.244374f, 0.195506f, -0.0566808f, -0.0192741f, -0.0968635f, -0.028152f, 0.172464f, -0.150708f, 0.0712953f, 0.00236629f, -0.0483428f, 0.109666f, -0.0153371f, -0.143634f, -0.135976f, 0.0826642f, -0.0430643f, 0.107006f, -0.083429f, 0.0994739f, 0.0850262f, 0.00835415f, -0.16306f, -0.0260937f, -0.120742f, -0.088417f, 0.0858811f, -0.208285f, -0.155892f, 0.0161273f, -0.230524f, 0.275797f, -0.135335f, 0.388977f, -0.0829688f, -0.129517f, 0.0533664f, 0.33038f, 0.134582f, 0.0245852f, -0.204517f, 0.0432004f, -0.0757294f, 0.064339f, -0.0276342f, -0.00444857f, 0.123751f, -0.118072f, 0.00884147f, 0.121574f, -0.105584f, 0.0198323f, 0.287483f, -0.0022121f, -0.052364f, -0.126993f, -0.104688f, -0.0347797f, 0.013792f, 0.0233411f, -0.0285579f, -0.0439875f, -0.178968f, 0.172712f, 0.0340315f, 0.137262f, 0.212126f, 0.188684f, -0.19207f, 0.0248154f, -0.0663962f, 0.0700602f, -0.090892f, -0.0839459f, 0.0440045f, -0.0498923f, -0.136211f, -0.265021f, 0.0094821f, 0.0670001f, -0.0330929f, 0.0254907f, -0.0781429f, -0.0691337f, 0.100342f, 0.0312887f, -0.0684722f, -0.165532f, 0.212638f, -0.0666987f, -0.141385f, -0.082222f, 0.160335f, -0.0529039f, 0.0765208f, 0.166731f, -0.0247118f, -0.0182956f, -0.0998363f, -0.0547917f, 0.0134324f, -0.0670039f, 0.168417f, -0.0503221f, -0.0774348f, -0.0445283f, 0.0189086f, -0.077635f, -0.156779f, 0.00401642f, -0.145539f, -0.123824f, 0.225481f, 0.125872f, 0.0043041f, 0.0582304f, -0.161028f, -0.0134189f, 0.108599f, -0.0321971f, -0.0336975f, 0.0359847f, -0.177758f, -0.0335358f, 0.0568665f, 0.00859711f, -0.109461f, 0.0328532f, -0.0148532f, -0.0190635f, -0.177006f, 0.0234044f, 0.0778962f, -0.00171268f, 0.126186f, -0.139339f, -0.00558888f, 0.142503f, 0.00574879f, 0.0459843f, -0.134238f, 0.114044f, -0.151415f, -0.050824f, 0.0680024f, -0.126149f, 0.0131981f, 0.0706998f, -0.0949546f, -0.0817979f, -0.0954384f, -0.0841337f, 0.005509f, -0.0950183f, -0.0299509f, -0.058063f, 0.0837774f, 0.022512f, 0.0982002f, -0.046039f, 0.0442482f, 0.0925507f, -0.0237715f, 0.0261215f, 0.110335f, 0.169071f, 0.115049f, -0.118268f, 0.00295589f, 0.15405f, -0.20589f, -0.033868f, -0.0475725f, -0.136079f, 0.184736f, -0.0762705f, -0.202511f, 0.244766f, 0.121048f, -0.0608362f, -0.0380624f, 0.0902081f, 0.0198084f, -0.0847942f, -0.0624414f, 0.191821f, -0.0855998f, -0.103084f, -0.110981f, 0.14036f, -0.212208f, 0.097602f, 0.090465f, 0.211575f, 0.0408382f, -0.310265f, 0.0986268f, 0.101156f, -0.110108f, -0.0542538f, -0.13523f, -0.041301f, 0.025074f, -0.0239835f, 0.0105878f, 0.0700292f, -0.0384649f, -0.0705435f, 0.0410393f, 0.0792247f, 0.00617167f, 0.0214135f, -0.0568194f, 0.105981f, -0.0713203f, -0.145697f, -0.0375053f, 0.0661596f, -0.0971701f, 0.0664077f, -0.16452f, -0.0531974f, 0.0174604f, 0.0259722f, 0.0541843f, -0.212358f, -0.166485f, 0.0234877f, -0.014592f, -0.00559728f, 0.218186f, 0.107968f, 0.113947f, -0.0325235f, 0.0494028f, 0.0908487f, -0.187868f, 0.0149483f, 0.098579f, -0.0905344f, 0.224225f, -0.0345726f, -0.148839f, 0.248139f, 0.0491172f, 0.140878f, -0.222001f, -0.273156f, -0.0969892f, 0.102636f, 0.0542464f, 0.063248f, 0.054702f, -0.0531701f, 0.0942964f, 0.105344f, 0.0853533f, 0.094276f, 0.144495f, -0.0858239f, -0.0132556f, 0.0200622f, -0.0900917f, -0.0658052f, 0.186233f, 0.0426702f, 0.0103796f, -0.019725f, -0.058157f, -0.0335743f, -0.0936351f, 0.00566871f, 0.104856f, -0.0540511f, 0.0978642f, 0.167948f, 0.114939f, 0.0334324f, -0.0532458f, 0.16052f, -0.0480977f, -0.112164f, 0.174997f, 0.192934f, 0.0851935f, 0.0367495f, -0.0747459f, 0.0587528f, 0.104115f, 0.0732958f, 0.117025f, 0.00294884f, 0.0332312f, 0.188654f, -0.0175176f, -0.171723f, -0.020932f, -0.00809613f, 0.101703f, -0.0561268f, 0.0889555f, 0.0843f, 0.0348771f, -0.0771675f, 0.0864367f, -0.0582471f, 0.0337158f, 0.026333f, -0.189729f, -0.157327f, 0.113993f, 0.0405993f, 0.193918f, -0.124221f, -0.0262695f, 0.0225562f, 0.12875f, -0.0453483f, 0.0711068f, -0.00198957f, -0.0343436f, 0.157003f, -0.0436593f, -0.130017f, -0.0110266f, 0.0150739f, -0.056185f, -0.110174f, 0.0880712f, -0.0605681f, 0.160216f, -0.0002802f, -0.103298f, 0.119771f, -0.0247686f, -0.0792959f, 0.0240184f, -0.0577252f, -0.142435f, 0.113181f, -0.12362f, -0.0524875f, 0.151411f, 0.0671949f, 0.0691599f, -0.0945457f, 0.105615f, -0.162279f, 0.24656f, 0.0104282f, -0.175287f, -0.0636278f, 0.224398f, -0.053549f, -0.0275166f, -0.00663742f, -0.0763426f, -0.135081f, 0.0170325f, -0.113613f, 0.0797289f, 0.188512f, 0.0473722f, -0.0391475f, 0.0360707f, 0.243895f, 0.0775301f, 0.100525f, 0.0656643f, 0.172385f, -0.351042f, -0.082887f, 0.0418383f, 0.174749f, -0.0745821f, 0.331236f, 0.16745f, -0.0684921f, 0.0567219f, 0.270972f, -0.0190563f, -0.0633062f, -0.054713f, 0.343967f, 0.0486251f, -0.145695f, -0.11157f, 0.206778f, -0.0196662f, -0.230474f, -0.164876f, -0.21598f, 0.0558726f, -0.135364f, 0.108911f, 0.0890682f, 0.245891f, -0.0784274f, -0.197531f, -0.0407337f, -0.055035f, 0.0640245f, -0.00632085f, 0.12682f, 0.0235772f, -0.0853848f, 0.117943f, 0.00628822f, 0.312242f, 0.255971f, -0.0885849f, -0.0964361f, -0.176174f, -0.164804f, 0.0825114f, 0.197157f, -0.135724f, -0.0861733f, 0.0406587f, -0.0598803f, 0.159609f, 0.122813f, -0.164851f, 0.157074f, -0.166688f, -0.0945363f, 0.00427744f, 0.21901f, 0.0603521f, -0.0327807f, -0.0483465f, -0.220787f, 0.0590441f, 0.0717612f, 0.0793428f, 0.0293642f, -0.092098f, -0.024368f, 0.00616707f, -0.132782f, -0.252856f, -0.175712f, -0.00426344f, 0.0666792f, 0.0915488f, -0.0618869f, -0.192139f, 0.0932196f, 0.0561678f, 0.0124281f, -0.0568171f, 0.0577539f, 0.0445333f, 0.0649722f, 0.062497f, 0.030727f, 0.0413388f, -0.124355f, -0.0298256f, -0.0921489f, -0.0510883f, 0.0437507f, -0.0760496f, 0.0396698f, 0.00266754f, 0.145461f, 0.0364441f, 0.187001f, 0.0213765f, -0.0355555f, 0.0730999f, -0.0380565f, -0.0608009f, 0.0748533f, 0.0191867f, 0.0496688f, 0.0308713f, -0.0925848f, 0.222931f, 0.0569202f, -0.10181f, -0.0528038f, 0.172206f, 0.0598299f, 0.162036f, 0.0614095f, -0.0452743f, -0.0469146f, -0.0622561f, -0.0557238f, 0.0376435f, -0.00146291f, -0.00217964f, -0.0211647f, 0.0540169f, 0.20925f, -0.210078f, -0.0812124f, 0.115603f, -0.00347948f, 0.1424f, 0.0432011f, -0.136352f, 0.126991f, -0.000927588f, 0.208534f, 0.0233254f, 0.133208f, 0.0885656f, -0.032334f, -0.00980057f, 0.0122078f, -0.0475274f, 0.105885f, -0.0216419f, 0.150853f, -0.0274928f, 0.0229854f, -0.13711f, 0.0203504f, 0.177166f, 0.118819f, 0.0673516f, 0.100427f, 0.0259219f, 0.0725366f, -0.136046f, -0.0249866f, -0.055714f, 0.0730214f, -0.0318319f, 0.0569341f, -0.052715f, -0.0830942f, -0.0556549f, -0.140079f, -0.0508876f, -0.14633f, -0.0273144f, -0.0604318f, 0.152785f, 0.0511858f, -0.0205099f, 0.118125f, -0.108407f, -0.05877f, 0.0774045f, -0.0832831f, -0.0796718f, -0.0358494f, -0.0865453f, 0.168817f, 0.0569463f, -0.023026f, -0.00453554f, 0.00961645f, 0.0260015f, 0.0817212f, -0.11276f, 0.0337048f, -0.0127605f, -0.116168f, -0.202844f, -0.0386969f, 0.0973013f, 0.0445968f, 0.0458369f, -0.0156628f, 0.0883708f, -0.0542005f, 0.26668f, -0.0690292f, 0.232721f, -0.105626f, -0.0139156f, 0.123092f, -0.214413f, 0.0785046f, 0.0745319f, 0.0209644f, 0.0102538f, -0.146534f, 0.0389063f, 0.214942f, 0.19587f, -0.093686f, 0.193921f, 0.215522f, 0.0454275f, -0.0895365f, -0.260845f, 0.0770227f, 0.189257f, 0.130519f, -0.00231189f, 0.226223f, -0.191399f, 0.0261158f, 0.211771f, -0.206778f, 0.114589f, -0.155119f, -0.0155031f, 0.165894f, -0.0942239f, -0.125231f, -0.0466717f, 0.238363f, -0.0670617f, 0.169459f, -0.048862f, -0.000871114f, -0.105195f, -0.126062f, 0.148444f, -0.117819f, -0.221561f, -0.0268258f, 0.243357f, -0.0153693f, -0.283912f, 0.254774f, 0.0132436f, 0.0576828f, 0.0622212f, 0.110648f, -0.0130609f, -0.369567f, -0.0651414f, -0.279565f, 0.187972f, 0.261745f, -0.0627218f, -0.196273f, -0.023324f, 0.0452224f, 0.150123f, -0.049271f, -0.200796f, -0.0594692f, 0.266105f, -0.335996f, -0.263791f, -0.112479f, -0.0765297f, -0.223741f, 0.0935299f, -0.0115871f, 0.0889072f, -0.0241111f, -0.315925f, -0.322104f, 0.0310441f, -0.0208965f, -0.0487269f, 0.0780234f, -0.0165262f, 0.103028f, -0.221115f, -0.0299305f, 0.00771692f, -0.09774f, -0.0382033f, -0.118527f, 0.284755f, -0.163874f, -0.0590402f, -0.0409545f, 0.019834f, -0.065696f, -0.222037f, -0.131683f, -0.0210164f, 0.227981f, -0.0395684f, -0.18319f, 0.0747352f, -0.032576f, -0.0696033f, 0.0103169f, -0.0294018f, -0.0222856f, 0.112777f, -0.179502f, 0.0709352f, 0.183755f, 0.0853077f, -0.108501f, -0.0795115f, 0.0197375f, 0.167801f, -0.0302604f, 0.173835f, -0.146917f, 0.0159491f, 0.00611887f, -0.116821f, 0.0954492f, 0.0565181f, 0.136304f, -0.223594f, -0.0360632f, 0.00423757f, -0.0684348f, 0.108806f, 0.00887294f, -0.0212827f, -0.133651f, -0.124853f, 0.229851f, 0.176295f, 0.0500147f, -0.178063f, -0.0130075f, 0.114889f, -0.0139953f, -0.144578f, 0.0551463f, 0.146018f, -0.0587277f, 0.0437727f, 0.0728178f, -0.00936317f, -0.0105355f, -0.170276f, 0.242333f, -0.0677789f, -0.0512577f, -0.0285446f, -0.0731742f, -0.0415587f, 0.212154f, 0.175805f, -0.00859577f, -0.0464776f, 0.24217f, 0.0273184f, 0.016527f, 0.0356817f, -0.0667726f, -0.027758f, 0.29896f, 0.135922f, -0.176839f, 0.047572f, 0.12807f, -0.0295778f, 0.105772f, 0.0350108f, 0.0409225f, 0.00777109f, 0.00460928f, 0.00805236f, -0.103314f, -0.180422f, -0.251531f, 0.107686f, -0.0387119f, -0.252963f, -0.0743682f, -0.0820346f, -0.0379003f, -0.112791f, -0.0860358f, -0.143766f, -0.0524718f, -0.0337346f, 0.179827f, -0.216977f, -0.0317135f, -0.0594092f, -0.0682435f, 0.00268674f, 0.102304f, 0.281823f, 0.0201739f, 0.0701507f, -0.124627f, 0.120785f, 0.159251f, -0.0413751f, 0.263625f, 0.0312612f, 0.0135783f, -0.106364f, -0.201421f, -0.0180394f, 0.0556961f, 0.191761f, -0.0182314f, 0.0401297f, 0.00464928f, -0.171436f, -0.0924111f, -0.0431977f, -0.159912f, 0.142233f, 0.0537275f, -0.15052f, 0.0604784f, 0.10885f, 0.042954f, 0.0682577f, 0.141681f, 0.240175f, -0.0177699f, 0.220854f, -0.0322274f, -0.147367f, 0.0580964f, 0.0803718f, 0.0497526f, 0.0446084f, 0.14261f, 0.0641361f, -0.153388f, -0.206291f, 0.0462281f, 0.0729071f, 0.0459344f, -0.00420717f, 0.0635498f, -0.0935754f, 0.0858489f, -0.0981993f, 0.0530555f, -0.050392f, 0.203621f, -0.126402f, -0.019667f, -0.1816f, 0.0773851f, 0.108721f, -0.0685679f, -0.0623298f, 0.0907238f, -0.169037f, 0.200084f, 0.193265f, -0.141319f, -0.0512478f, 0.151074f, -0.0705883f, 0.0737362f, -0.0478095f, -0.131193f, 0.0988173f, -0.312033f, -0.00448708f, -0.0885421f, 0.0110285f, 0.109421f, 0.0645826f, -0.140203f, 0.072596f, -0.127654f, -0.0266036f, -0.106766f, 0.0622225f, -0.0320195f, 0.120099f, -0.091032f, -0.173415f, 0.109013f, -0.035773f, 0.188324f, -0.0545473f, -0.072225f, -0.219784f, 0.103911f, -0.110004f, -0.0528662f, -0.053625f, 0.0931963f, 0.127593f, 0.100135f, -0.0396878f, 0.0107829f, 0.0750348f, -0.193981f, 0.00881808f, 0.040849f, 0.0474492f, -0.152454f, 0.219221f, 0.0593136f, 0.0697952f, 0.0300837f, -0.0256916f, -0.266024f, 0.00803457f, 0.14534f, 0.106743f, -0.0944594f, 0.063877f, 0.164888f, 0.175777f, 0.0634248f, -0.0690306f, -0.190774f, 0.116151f, -0.1426f, -0.0885612f, 0.0822327f, -0.0413491f, 0.158427f, -0.00128253f, -0.0851379f, -0.068152f, -0.00116455f, 0.00191127f, 0.153504f, 0.0324881f, -0.0259873f, -0.0138074f, -0.0417376f, 0.250319f, -0.0380915f, -0.122894f, 0.0937087f, 0.0153543f, -0.103323f, -0.142257f, 0.103665f, 0.11022f, -0.0393968f, -0.0700266f, -0.0349125f, -0.168057f, -0.0477376f, -0.0593652f, 0.164544f, -0.0264629f, 0.0591267f, 0.0778204f, -0.339546f, 0.281394f, -0.0185314f, -0.238581f, 0.0845479f, -0.0175288f, 0.0267829f, 0.0539129f, 0.0342694f, -0.147567f, -0.0450068f, 0.260678f, -0.220881f, 0.172332f, -0.0325151f, -0.149976f, 0.0488801f, 0.193543f, -0.071066f, 0.0856272f, -0.00608438f, -0.00974292f, -0.146353f, -0.0493149f, 0.00137984f, 0.12735f, 0.103936f, -0.204208f, 0.0500377f, -0.00160076f, 0.0323637f, 0.111395f, -0.0792189f, -0.1701f, -0.0501838f, 0.00440702f, -0.00959971f, -0.192934f, 0.324926f, -0.255432f, -0.310004f, 0.0756694f, 0.0721866f, 0.102313f, -0.112054f, 0.0183763f, -0.0874024f, -0.00523032f, 0.197527f, 0.0668976f, 0.203932f, -0.128298f, -0.203685f, -0.199424f, 0.0833889f, 0.0772772f, 0.268456f, -0.032324f, -0.130765f, 0.0550323f, -0.0494559f, -0.0500548f, 0.112039f, 0.117528f, -0.181274f, 0.0407064f, 0.215157f, 0.192198f, -0.0596494f, -0.11193f, -0.0988027f, -0.0567153f, -0.173723f, 0.262582f, -0.137571f, 0.0815635f, -0.205251f, -0.0228771f, -0.0836049f, 0.0742383f, 0.0441375f, 0.285162f, 0.0322397f, -0.183378f, 0.140664f, 0.0844673f, -0.0666447f, -0.0645793f, -0.104866f, -0.104939f, -0.156301f, -0.18709f, -0.0731932f, -0.0449673f, 0.161066f, 0.128556f, 0.0251669f, 0.15699f, 0.0715622f, -0.0318112f, -0.247117f, 0.0170565f, 0.0779013f, -0.0376623f, 0.0215886f, 0.0656515f, -0.292426f, 0.00959823f, -0.10118f, -0.108076f, -0.183074f, -0.0936683f, -0.123798f, 0.314622f, 0.130582f, 0.181373f, 0.0824816f, 0.0881405f, -0.0174861f, 0.080057f, 0.0882437f, 0.0170882f, 0.243701f, 0.187855f, -0.0135205f, 0.182399f, -0.0117116f, 0.121173f, -0.200419f, 0.0281916f, -0.122932f, -0.183985f, 0.239405f, 0.0308332f, -0.272135f, 0.175342f, 0.0200317f, -0.0430019f, -0.133413f, -0.296819f, 0.0153307f, -0.182182f, 0.0883175f, -0.0435903f, -0.170767f, -0.161743f, -0.199855f, 0.0535436f, -0.052007f, 0.241131f, 0.088869f, -0.120235f, -0.118448f, 0.100745f, 0.0628338f, -0.135979f, -0.117963f, -0.158032f, -0.017468f, -0.128563f, 0.0772865f, 0.0277346f, -0.142071f, -0.116746f, 0.0674668f, -0.0333531f, -0.0576097f, -0.183506f, -0.0296412f, 0.00942458f, -0.192063f, -0.181427f, 0.141574f, -0.0493468f, -0.0582714f, 0.0702157f, -0.0251693f, -0.157688f, 0.276651f, -0.0326493f, 0.147422f, 0.287286f, -0.0553641f, -0.0345156f, 0.174285f, 0.223629f, 0.101793f, 0.0409245f, 0.0216539f, -0.0338465f, 0.0217973f, 0.0267372f, 0.131907f, -0.148148f, 0.129294f, -0.0934422f, 0.112194f, -0.0157266f, 0.123529f, -0.0692589f, -0.0908429f, 0.167693f, -0.145671f, -0.0735056f, 0.0447431f, 0.00789311f, 0.202403f, -0.104252f, 0.139597f, 0.0326386f, 0.133444f, 0.00533711f, -0.0521398f, -0.137382f, -0.0405509f, 0.00647775f, 0.0943444f, -0.0110634f, 0.203413f, 0.173878f, 0.0708271f, -0.0469881f, 0.17109f, -0.165181f, 0.119286f, 0.0425745f, 0.204391f, -0.11624f, -0.00466979f, 0.0186792f, 0.109405f, 0.0927363f, 0.288232f, -0.199266f, -0.0666171f, 0.191164f, 0.104821f, 0.0441013f, -0.129433f, -0.0549941f, -0.0643606f, -0.116731f, 0.0482824f, -0.0816404f, 0.0954341f, -0.0442871f, -0.0213445f, -0.0420436f, 0.160163f, -0.0172142f, -0.121861f, 0.136744f, 0.0303005f, -0.0503022f, 0.0547872f, -0.0635272f, 0.0224823f, 0.0465039f, -0.0209828f, 0.0216702f, -0.139579f, -0.059492f, -0.0982497f, -0.148466f, 0.0310807f, -0.181961f, 0.0204738f, 0.0461078f, -0.0486828f, -0.0279312f, -0.050245f, 0.160629f, 0.0600403f, 0.154094f, -0.0840848f, -0.129439f, 0.0556411f, -0.0821982f, 0.0508676f, 0.0123788f, 0.0856162f, 0.077047f, 0.0110554f, 0.0260425f, 0.0947382f, 0.0417984f, -0.0416624f, 0.129613f, 0.0894983f, -0.00521282f, 0.0970709f, -0.0837297f, 0.0404231f, -0.0561953f, -0.101495f, 0.0476575f, -0.0786593f, -0.0337136f, -0.0848631f, -0.0665948f, -0.0864704f, -0.0572449f, -0.106677f, 0.0363713f, 0.00250887f, -0.0912227f, -0.0830213f, 0.0236256f, 0.10577f, -0.0909722f, -0.0637861f, -0.0540451f, -0.0558753f, -0.0254f, -0.161891f, 0.0957733f, -0.149853f, -0.11911f, -0.0933817f, -0.0125087f, 0.0455727f, -0.139541f, -0.0266151f, 0.0887481f, 0.109229f, -0.0508194f, 0.0170776f, -0.224484f, -0.00758031f, 0.00475116f, -0.00946186f, -0.0918084f, 0.050573f, 0.0873504f, 0.0606598f, 0.0597526f, 0.070312f, 0.0937273f, -0.104479f, 0.0668574f, 0.0756841f, 0.00616442f, -0.135228f, -0.124159f, -0.163533f, 0.0438705f, -0.127974f, -0.0498429f, 0.103589f, -0.0629656f, 0.067175f, -0.0340429f, -0.104249f, -0.1446f, 0.1052f, 0.0156218f, 0.0252439f, 0.0752831f, -0.0313068f, -0.0366213f, -0.0136041f, 0.0226156f, -0.125691f, 0.157538f, 0.0271396f, 0.0532916f, -0.0235474f, 0.0480467f, 0.105951f, 0.00317669f, 0.1084f, 0.0119099f, -0.0530173f, -0.135337f, -0.0108156f, -0.0513699f, -0.0348337f, -0.0918155f, -0.0567409f, -0.0727121f, -0.17248f, -0.0990527f, -0.0489411f, 0.0734693f, 0.0207257f, -0.0659872f, 0.0391384f, -0.111136f, -0.0303669f, -0.0454131f, -0.108006f, 0.0443887f, -0.074144f, 0.0476066f, -0.0149913f, -0.113638f, -0.067969f, 0.00400534f, -0.101922f, 8.8245e-05f, -0.177788f, 0.114381f, -0.0381974f, 0.0932874f, -0.073204f, 0.0316935f, 0.150924f, 0.0063158f, -0.270373f, 0.083003f, 0.0984851f, 0.00384089f, 0.142667f, -0.0507412f, -0.145738f, -0.0503565f, -0.061271f, -0.122928f, -0.189698f, 0.14727f, 0.162541f, -0.0898177f, -0.168791f, 0.073357f, -0.145578f, -0.0561158f, -0.0591023f, -0.094173f, 0.199405f, -0.201539f, 0.174579f, 0.099178f, 0.0893216f, 0.0176029f, -0.136322f, -0.125642f, -0.040438f, 0.112366f, 0.124152f, 0.0609214f, -0.0926915f, 0.0428055f, 0.0758419f, 0.0197747f, -0.112379f, 0.0821357f, 0.0799846f, 0.160163f, 0.172695f, -0.246747f, -0.15415f, -0.0264924f, -0.220551f, -0.0197627f, -0.0646033f, 0.0462058f, -0.0294146f, -0.0763657f, 0.00594f, -0.0604652f, 0.184596f, 0.0701499f, 0.127782f, 0.11465f, 0.0577995f, 0.141863f, 0.0558444f, -0.0662074f, 0.197235f, -0.0618782f, 0.0452556f, 0.0930916f, -0.0888324f, -0.0930614f, -0.0965604f, -0.118033f, 0.0408307f, -0.103405f, 0.0741473f, -0.141139f, 0.0855921f, 0.113872f, -0.0566301f, 0.0542524f, 0.0487334f, -0.0134843f, -0.163843f, 0.06104f, 0.0528935f, -0.0429358f, -0.044303f, 0.0333386f, -0.0808075f, 0.0766293f, -0.109633f, -0.0129444f, 0.0808849f, 0.128782f, 0.0833235f, -0.151111f, -0.0223621f, 0.0864319f, -0.065706f, -0.0314865f, -0.0499982f, 0.0774752f, 0.0432096f, -0.124376f, 0.0266971f, -0.0755158f, -0.199124f, 0.016377f, -0.152849f, 0.000921645f, 0.202508f, -0.0912554f, -0.030741f, -0.115148f, -0.0584711f, -0.104081f, -0.0468941f, 0.136321f, -0.0188549f, 0.0420666f, -0.165131f, 0.119908f, 0.0358577f, -0.0235923f, -0.0438164f, 0.395315f, 0.239149f, 0.0820473f, 0.0359093f, -0.0761169f, 0.0406161f, 0.0499357f, 0.0163585f, -0.0181147f, -0.196676f, 0.0377065f, -0.124139f, -0.0742856f, -0.142303f, -0.190948f, 0.0457796f, 0.154742f, 0.14678f, 0.0466087f, 0.128899f, 0.112835f, 0.0590816f, 0.0990316f, 0.106684f, 0.0849427f, -0.0185851f, 0.0578806f, -0.00715671f, -0.0198777f, 0.0317983f, 0.160351f, 0.0444458f, -0.0131105f, -0.161749f, -0.141022f, 0.135549f, 0.0436698f, 0.0482324f, 0.0427963f, 0.0790561f, -0.0991683f, -0.114963f, -0.0480356f, -0.186283f, -0.0229479f, 0.0489702f, 0.0358302f, 0.166661f, 0.00576022f, -0.112386f, 0.0165864f, 0.0992927f, -0.240899f, 0.0204508f, -0.214441f, 0.0340033f, -0.105017f, 0.141664f, 0.0397737f, -0.116213f, -0.123812f, 0.0274406f, -0.0810824f, 0.168086f, 0.0181929f, 0.101075f, 0.0990064f, -0.019016f, -0.134499f, -0.0329588f, 0.0962917f, -0.128483f, -0.0190677f, 0.116166f, -0.0585572f, 0.168316f, -0.112431f, 0.101171f, -0.0236628f, -0.0225475f, 0.0253931f, -0.210958f, -0.122181f, -0.0606025f, 0.0977957f, 0.114321f, -0.0808743f, -0.0476605f, 0.144581f, -0.115502f, -0.212651f, -0.0654651f, -0.0304158f, 0.0977181f, -0.0466641f, 0.0272283f, -0.113289f, -0.189427f, -0.145457f, 0.189877f, 0.0860091f, 0.0834372f, 0.0580947f, 0.0393932f, -0.0216358f, -0.0958762f, -0.0814794f, -0.13212f, -0.0860365f, -0.191726f, 0.0642823f, 0.0896322f, -0.0263739f, 0.0327666f, 0.0742916f, -0.117661f, -0.0763569f, -0.114139f, -0.027842f, 0.0155512f, -0.0941137f, -0.00609058f, -0.0144038f, 0.142156f, -0.13925f, -0.0545814f, 0.0407862f, 0.0974373f, -0.0589689f, 0.0528525f, 0.0157503f, -0.124428f, 0.0537564f, 0.0684248f, -0.1613f, -0.20181f, 0.0459584f, -0.00496695f, 0.04703f, 0.11002f, -0.192552f, -0.108609f, 0.129148f, -0.20146f, -0.223035f, -0.0483167f, -0.019918f, -0.16869f, 0.0823553f, -0.121967f, -0.207444f, -0.0357562f, 0.168394f, -0.0250628f, -0.201572f, 0.122819f, 0.153778f, 0.152148f, -0.154648f, 0.0180182f, -0.126191f, 0.0513341f, -0.0922241f, -0.0648054f, -0.295072f, -0.173389f, -0.193705f, -0.260384f, -0.0337952f, 0.278285f, 0.0874973f, 0.184498f, -0.0426599f, -0.106273f, 0.0269586f, -0.117448f, -0.079566f, 0.110158f, 0.162609f, 0.0735977f, 0.0893815f, 0.141197f, -0.103569f, -0.0713078f, 0.306868f, -0.0504874f, 0.0329102f, 0.223194f, -0.201637f, 0.0234116f, -0.162151f, 0.0760572f, 0.0107937f, -0.0325203f, 0.126372f, -0.0897652f, -0.176297f, -0.0969995f, -0.0828014f, -0.0346073f, -0.111825f, 0.141109f, 0.0294594f, -0.0528494f, 0.194868f, -0.0532993f, -0.0903533f, -0.119123f, 0.0762788f, 0.074417f, 0.0367476f, 0.167691f, -0.0965376f, 0.0235654f, 0.00980181f, 0.0241182f, -0.278487f, 0.0135398f, 0.15892f, -0.00313537f, -0.0890488f, -0.15998f, 0.0610941f, -0.171487f, 0.113829f, -0.193617f, 0.144051f, 0.0821519f, -0.0649376f, -0.0718665f, -0.0610098f, 0.227396f, -0.0941513f, -0.00402647f, 0.0783442f, 0.188115f, -0.0512096f, -0.123692f, -0.0665152f, -0.312932f, 0.0749931f, 0.235453f, -0.0353975f, -0.173292f, 0.0101687f, 0.0572073f, 0.23532f, -0.0652401f, -0.133481f, -0.0877115f, 0.16116f, -0.0107876f, 0.180165f, 0.0792099f, -0.112134f, -0.0668249f, -0.0112734f, -0.0777447f, -0.0837669f, -0.104766f, -0.13546f, -0.177096f, -0.0558596f, 0.0498077f, -0.0430944f, 0.181466f, -0.0113153f, -0.195342f, 0.00687107f, -0.177484f, -0.281294f, 0.0940494f, -0.19323f, 0.125229f, -0.179446f, -0.0289765f, -0.119603f, 0.186166f, -0.099428f, -0.24367f, 0.157657f, 0.119388f, 0.0264163f, -0.279865f, -0.051293f, -0.0660959f, 0.0510891f, -0.0189331f, 0.0304106f, 0.0836808f, 0.0285634f, -0.0158124f, 0.0902057f, -0.244988f, 0.154821f, 0.0702036f, -0.205841f, -0.1808f, 0.00144443f, 0.0741266f, 0.0912139f, 0.0197859f, 0.0643998f, 0.141655f, 0.220536f, 0.0749074f, -0.0933725f, 0.118923f, 0.0410347f, -0.0161365f, -0.0723201f, -0.262448f, -0.0502746f, 0.044515f, -0.0685405f, 0.0791582f, 0.0344833f, 0.0611067f, 0.0951519f, -0.0523037f, -0.00838804f, -0.184084f, -0.0895456f, -0.0011999f, 0.0849984f, 0.0106403f, -0.0544982f, -0.154347f, 0.112921f, -0.0589115f, -0.157886f, 0.035458f, 0.106848f, 0.0371984f, 0.0239643f, 0.0421104f, -0.0259203f, 0.180176f, -0.212496f, -0.0366865f, -0.0723261f, 0.031068f, -0.0449782f, -0.115249f, -0.176421f, 0.128785f, 0.0496948f, 0.000222186f, -0.0294286f, -0.0897237f, 0.00569609f, 0.116698f, 0.285006f, -0.156228f, 0.127624f, 0.148411f, 0.0609212f, -0.135154f, -0.00909233f, 0.147309f, -0.169101f, -0.0343822f, 0.0851516f, -0.133019f, 0.201457f, -0.130316f, -0.104724f, 0.177934f, -0.0438326f, -0.372659f, 0.0286109f, -0.000941961f, -0.14556f, 0.0897591f, 0.231051f, -0.0873842f, 0.0141118f, -0.0139249f, -0.0289038f, 0.138774f, -0.0571027f, -0.0705663f, -0.01782f, -0.0442669f, -0.11826f};
+ model->setOperandValue(op8, op8_init, sizeof(float) * 16384);
+ static float op10_init[] = {0.870905f, 0.732366f, -0.669046f, 1.08174f, 0.916159f, -0.294452f, 0.592262f, 0.301429f, -0.422655f, -0.625296f, -0.536564f, -0.667137f, -0.583286f, -0.72358f, -0.568471f, -0.57524f, -0.62291f, -0.911421f, -0.501374f, -0.00290018f, -0.878221f, -0.051163f, -0.74821f, 0.888223f, 0.813446f, 0.55647f, -0.622013f, 0.836827f, 0.841449f, -0.816436f, -0.759883f, -0.658268f, -0.625168f, 0.871381f, -0.78675f, -0.608052f, -0.0327976f, -0.379691f, -0.654795f, -0.0660218f, -0.676479f, -0.664595f, 0.265069f, -0.625888f, 0.169051f, -0.675591f, 0.299855f, -0.703214f, -0.134523f, -0.59296f, 0.937484f, -0.710908f, 0.845609f, -0.475655f, -0.636727f, 0.533551f, 0.124115f, 0.695435f, 0.879939f, -0.377836f, -0.816544f, 0.277795f, -0.607381f, -0.656329f, -0.667769f, 1.03546f, -0.725715f, -0.620013f, -0.527745f, -0.646767f, -0.275308f, -0.620535f, -0.637898f, -0.210308f, 1.20405f, 0.595138f, 0.794743f, 0.230801f, -0.840184f, -0.533846f, 0.487095f, -0.708161f, -0.744136f, -0.818685f, 1.0441f, -0.865297f, -0.666535f, 0.501392f, 0.186682f, -0.305148f, 0.56623f, 0.904152f, 0.799276f, 0.318903f, -0.21392f, -0.759348f, 1.00587f, -0.924452f, -0.69364f, 0.775983f, 0.740833f, -1.03741f, 0.567915f, -0.742716f, -0.793044f, 1.04104f, 1.06893f, -0.932649f, -0.672023f, -0.674185f, -0.697389f, 0.243591f, -0.875875f, -0.175759f, 0.0657881f, 0.764382f, 0.616322f, 0.697396f, -0.48311f, -0.592917f, -0.368845f, 1.1508f, -0.615879f, 1.07167f, 0.983414f, -0.53735f, 0.828645f, -0.713031f};
+ model->setOperandValue(op10, op10_init, sizeof(float) * 128);
+ static float op11_init[] = {-0.0338548f, -0.209956f, 0.299f, -0.587087f, -0.155182f, -0.215745f, -0.457096f, 0.354364f, -0.0881957f, 0.448084f, 0.448586f, 0.265426f, -0.588544f, 0.100833f, 0.472292f, 0.884849f, 0.231727f, 0.277485f, -0.347502f, 0.294058f, 0.429232f, 0.856874f, 0.414706f, -0.696934f, 0.0382086f, -0.235027f, -0.208378f, -0.267724f, -0.500691f, 0.574836f, 0.0970658f, 0.392687f, -0.180284f, -0.126758f, -0.357164f, 0.569162f, 0.53462f, 0.83247f, -0.139077f, 0.291479f, 0.201703f, -0.0439143f, 0.560568f, -0.288697f, 0.579956f, 0.462056f, 0.707969f, 0.331557f, 0.71481f, 0.380786f, -0.150362f, 0.654365f, -0.318957f, -0.337636f, 0.57301f, 0.474281f, 0.565656f, 0.509379f, 0.245357f, 0.326285f, -0.651439f, 0.345691f, -0.116152f, -0.302133f, 0.780393f, -0.490086f, 0.247162f, 0.383248f, 0.0440418f, -0.177182f, 0.254644f, 0.296667f, 0.359842f, -0.278091f, -0.277828f, -0.595406f, -0.179306f, 0.431211f, 0.440019f, 0.310423f, 0.208222f, 0.540036f, 0.643585f, -0.139872f, -0.521879f, -0.122953f, 0.218204f, 0.158868f, -1.03219f, 0.557886f, 0.0889677f, -0.235379f, -0.392137f, -0.642783f, 0.328969f, 0.0884135f, -0.309692f, 0.763224f, 0.628604f, 0.00669528f, -0.0988385f, 0.79442f, 0.132674f, 0.250137f, 0.914897f, -0.107312f, -0.588339f, 0.473188f, 0.0187198f, -0.174877f, -0.0569728f, 0.0701776f, 0.735162f, 0.154904f, 0.688248f, -0.374409f, -0.556647f, 0.340098f, 0.888618f, 0.0980508f, -0.569228f, -0.595296f, -0.170562f, -0.0317408f, -0.395618f, -0.0171476f, 0.0485352f, 0.43209f, -0.00638226f, -0.0261422f, 0.0718189f, -0.075711f, -0.293662f, -0.319053f, -0.403627f, 0.174707f, -0.448796f, 0.392557f, 0.181877f, 0.370088f, 0.324692f, 0.177263f, 0.018459f, -0.210587f, 0.176304f, 0.420158f, 0.178299f, -0.805978f, 0.0792364f, -0.0386405f, 0.124362f, -0.792909f, -0.122755f, -0.0688359f, 0.159819f, -0.0211371f, -0.122289f, 0.360688f, 0.341697f, 0.0625401f, 0.0971241f, -0.478006f, 0.908729f, 0.189923f, 0.510477f, 0.20677f, 0.236684f, 0.776365f, 0.442561f, 0.090511f, 0.177896f, -0.236025f, 0.0264561f, 0.118261f, -0.809493f, 0.238168f, 0.112513f, 0.338984f, -0.110895f, 0.305834f, -0.621152f, 0.00687668f, 0.447304f, -0.0398545f, 0.370995f, -0.283421f, -0.213979f, 0.113023f, 0.342538f, 0.0130436f, -0.037166f, -0.22709f, 0.772525f, -0.174775f, 0.234323f, 0.159163f, -0.42859f, 0.277611f, -0.632671f, 0.565038f, 0.103225f, -0.305878f, -0.526211f, 0.136796f, -0.259547f, -0.3352f, 0.535223f, -0.031504f, -0.0424749f, 0.481292f, -0.286163f, 0.33113f, -0.38828f, 0.00899621f, 0.306374f, 0.0976362f, -0.198731f, 0.609803f, -0.0760053f, -0.461488f, -0.391667f, 0.00487682f, 0.679276f, 0.256499f, -0.185734f, 0.36559f, 0.00840063f, 0.0567441f, -0.379714f, 0.800748f, -0.468488f, 0.358766f, 0.284236f, 0.0282058f, -0.223142f, 0.277211f, -0.0509614f, -0.0823523f, 0.185893f, -0.335907f, -0.0972623f, -0.13957f, 0.100473f, -0.172652f, 0.31467f, -0.220244f, -0.0687491f, -0.117143f, 0.156706f, -0.365631f, 0.313351f, -0.189641f, -0.537811f, -0.157297f, -0.232214f, -0.25754f, -0.507994f, -0.201826f, 0.21426f, -0.547716f, 0.109537f, -0.161968f, 0.0497426f, 0.341563f, -0.273487f, 0.327382f, 0.271454f, 0.225869f, 0.799898f, 0.170059f, 0.322003f, 0.6798f, 0.0915071f, 0.377649f, -0.423599f, 1.03058f, 0.583441f, 0.481912f, 0.268723f, -0.781103f, -0.212737f, 0.400762f, -0.17187f, -0.18443f, 0.0283509f, 0.700205f, 0.00291917f, 0.345323f, 0.513524f, -0.0680777f, 0.282601f, 0.326917f, 0.18524f, 0.599054f, 0.428758f, 0.76124f, 0.404333f, -0.408655f, 0.29747f, -0.161153f, -0.388405f, 0.24769f, -0.660875f, -0.0948309f, 0.50273f, 0.563415f, -0.406743f, 0.408056f, -0.59666f, -0.375152f, 0.392314f, -0.679927f, 0.610437f, -0.384638f, -0.451703f, -0.416953f, -0.0573409f, 0.179864f, 0.0947484f, 0.0941479f, -0.0885249f, -0.501555f, 0.270931f, 0.179285f, -0.0532051f, -0.516431f, -0.616671f, -0.0110025f, 0.282093f, -0.148804f, -0.680338f, -0.0646467f, -0.249968f, -0.308296f, 0.334441f, -0.358073f, 0.505024f, 0.565072f, 0.24723f, 0.255784f, 0.129823f, -0.0143696f, 0.175873f, -0.424062f, 0.37883f, 0.339341f, 0.202346f, -0.0812525f, 0.151254f, -0.668127f, 0.379888f, 0.117267f, -0.423117f, -0.0725053f, 0.0516017f, -0.11775f, 0.1602f, -0.550289f, -0.584689f, 0.687462f, 0.170713f, -0.54351f, -0.657189f, 0.118749f, -0.0700519f, 0.476461f, 0.101546f, -0.740269f, -0.490129f, -0.619385f, 0.0119928f, -0.98304f, -0.410634f, -0.464535f, -0.222629f, -0.145482f, -0.285285f, -0.593367f, 0.163485f, 0.546191f, -0.401133f, -0.169553f, -0.449783f, 0.285928f, -0.393424f, -0.103438f, 0.319025f, -0.422313f, -0.0548196f, 0.755713f, 0.299799f, -0.224316f, 0.186109f, 0.261191f, 0.188806f, 0.452686f, -0.132676f, 0.587353f, 0.486365f, 0.111516f, 0.377064f, 0.372242f, -0.202814f, -0.242745f, 0.429545f, 0.146983f, 0.455895f, 0.535846f, -0.412878f, -0.531814f, 0.763798f, -0.386117f, -0.0437994f, 0.721294f, 0.480678f, -0.177401f, -0.0745525f, -0.267356f, -0.14923f, 0.0208479f, 0.0218007f, -0.203715f, 0.220439f, -0.0209882f, 0.0163083f, 0.755739f, 0.279977f, 0.92335f, 0.32819f, 0.0551619f, 0.720485f, 0.171199f, 0.31528f, 0.392863f, -0.386591f, 0.494346f, 0.0935399f, 0.218577f, 0.127615f, 0.0894765f, -0.291666f, -0.106409f, -0.0171746f, 0.391619f, 0.594811f, 0.581108f, 0.47502f, 0.0360244f, 0.248309f, -0.433769f, 0.333228f, 0.784775f, 0.582655f, 0.800568f, 0.60786f, 0.178147f, 0.204481f, 0.532827f, -0.314762f, -0.178923f, -0.204282f, 0.451897f, 0.213505f, 0.149531f, -0.294723f, 0.242786f, 0.327522f, 0.163408f, -0.450946f, 0.606869f, 0.174476f, 0.478188f, -0.222704f, 0.0591118f, -0.901394f, -0.395556f, -0.418037f, 0.24394f, 0.204331f, -0.0563055f, -0.449448f, 0.00225183f, 0.384857f, -0.390059f, -0.291526f, 0.0406258f, 0.231365f, -0.181439f, 0.329772f, -0.550588f, -0.43976f, -0.0649923f, 0.14784f, 0.201397f, 0.326097f, 0.631178f, 0.519138f, 0.285717f, 0.222943f, -0.101931f, 0.00119461f, -0.0954484f, 0.339454f, 0.452597f, 0.301302f, -0.213641f, 0.231858f, -0.344925f, -0.402381f, 0.403374f, 0.0886633f, 0.320585f, 0.0666854f, -0.0594505f, -0.0818335f, 0.264554f, 0.00271777f, 0.480313f, -0.537953f, -0.0842767f, 0.0426721f, 0.0719288f, 0.244644f, -0.0355607f, 0.0363748f, 0.234358f, 0.407311f, -0.192964f, 0.210357f, 0.55353f, 0.705898f, -0.356641f, -0.183765f, 0.0807194f, 0.00233019f, -0.0215063f, -0.727753f, -0.639195f, 0.16073f, -0.282579f, -0.0661458f, -0.56201f, 0.0971901f, 0.0649462f, -0.093705f, 0.0870968f, 0.185054f, 0.035918f, -0.150047f, -0.350367f, 0.0582708f, -0.19228f, 0.0872795f, 0.144485f, -0.495534f, 0.287021f, -0.641304f, -0.100692f, -0.139298f, 0.240197f, -0.0953369f, -0.00277948f, 0.198417f, -0.143929f, 0.314875f, 0.113048f, 0.0424434f, 0.274406f, -0.398218f, -0.0183961f, -0.124207f, 0.356994f, 0.753037f, 0.158145f, -0.12519f, 0.202524f, 0.275662f, 0.0197114f, -0.286796f, -0.416871f, -0.919674f, 0.137863f, -0.00280172f, 0.0106861f, -0.336138f, -0.228682f, -0.0620699f, -0.723415f, 0.156973f, -0.104038f, -0.587032f, 0.175613f, -0.398429f, -0.13091f, 0.045514f, 0.26586f, -0.569088f, 0.193658f, -0.339076f, 0.361382f, -0.293548f, 0.0119532f, -0.826136f, 0.0841467f, -0.102329f, 0.290162f, 0.278434f, -0.246496f, 0.0624403f, 0.00899192f, -0.244363f, -0.000689143f, -0.734794f, 0.703372f, 0.0110255f, 0.215332f, 0.00447861f, 0.099689f, -0.0203157f, 0.260015f, 0.514569f, 0.322258f, -0.0145341f, 0.498998f, 0.213067f, 0.334479f, 0.295417f, 0.168774f, -0.510815f, -0.400703f, -0.0200453f, 0.435062f, 0.620301f, 0.0252454f, 0.0282759f, -0.36328f, 0.0926921f, -0.221672f, -0.58886f, -0.0400342f, -0.313232f, -0.519594f, 0.243078f, -0.334079f, -0.270033f, -0.495776f, 0.167092f, 0.177772f, 0.280106f, 0.00288477f, 0.240111f, -0.00231105f, 0.431575f, 0.268733f, 0.0265645f, 0.158631f, 0.230716f, 0.716073f, -0.0215768f, 0.12377f, 0.187739f, 0.274746f, 0.5097f, -0.15606f, -0.0945299f, -0.361237f, 0.759519f, -0.311927f, 0.0848565f, 0.0137691f, 0.604014f, 0.325685f, 0.169347f, -0.340699f, -0.417058f, 0.354207f, 0.386487f, 0.147206f, -0.0506241f, -0.214027f, -0.0513623f, 0.42701f, -0.634591f, 0.187363f, -0.508312f, -0.00114855f, -0.0599517f, 0.402596f, 0.492643f, 0.241626f, -0.171303f, 0.818462f, 0.216673f, -0.194423f, -0.447242f, -0.616053f, 0.105917f, -0.248924f, -0.236358f, -0.141672f, 0.0837928f, -0.0377266f, 0.0810627f, 0.407032f, -0.403289f, 0.0850846f, 0.195155f, 0.763047f, 0.605947f, 0.205287f, 0.0275962f, 0.424874f, 0.111251f, 0.0067634f, -0.270874f, -0.352443f, -0.307449f, -0.430445f, 0.522896f, -0.118207f, 0.157462f, 0.312531f, 0.31119f, -0.126322f, 0.136599f, 0.404666f, 0.328707f, -0.962272f, 0.264548f, 0.100268f, 0.486026f, -0.29642f, -0.49643f, -0.854072f, 0.225632f, 0.0917746f, -0.339475f, 0.226054f, 0.392809f, -0.506118f, -0.360228f, -0.0652379f, -0.0141473f, 0.357535f, -0.105279f, -0.32792f, -0.18552f, 0.272587f, 0.275618f, 0.203625f, 0.23702f, -0.0533812f, -0.00699177f, -0.187079f, 0.751397f, 0.0730081f, -0.295114f, -0.293974f, -0.381472f, 0.69258f, -0.259377f, 0.181655f, 0.291579f, -0.000446001f, -0.228219f, 0.092192f, 0.153849f, 0.229261f, -0.554917f, -0.540707f, 0.708528f, -0.152686f, -1.22525f, 0.575331f, -0.314974f, -0.458275f, 0.830017f, 0.0762217f, -0.1202f, 0.333304f, 0.111341f, -0.0184735f, -0.0996309f, 0.161016f, 0.403695f, 0.839637f, 0.492135f, -0.823486f, 0.96226f, -0.446345f, 0.289852f, 0.543863f, -0.198117f, 0.752913f, 0.380549f, -0.213973f, -0.437432f, 0.363786f, 0.165172f, 0.224717f, 0.65566f, -0.2263f, 0.459862f, 0.260625f, -0.412871f, 0.00663674f, 0.690948f, -0.39654f, 0.271418f, 0.814153f, -0.363809f, 0.771566f, 0.454207f, 0.291864f, -0.826874f, 0.205491f, -0.59236f, 0.180294f, -0.574109f, -0.133154f, -0.687293f, 0.624961f, 0.750975f, -0.115789f, 0.219708f, -0.560142f, -0.347924f, 0.475591f, 0.668954f, -0.525235f, 0.560277f, 0.406582f, 0.259707f, -0.291881f, 0.40382f, -0.691378f, 0.511281f, 0.38349f, 0.60171f, 0.175382f, 0.797663f, 0.66795f, -0.110644f, -0.122143f, 0.0752459f, 0.649028f, 0.258376f, 0.763628f, -0.525527f, 0.28668f, 0.338321f, 0.550138f, -0.33597f, 0.226952f, 0.531764f, -0.705424f, 0.175642f, -0.0982047f, -0.428523f, -0.37932f, -0.291669f, 0.618546f, -0.923448f, 1.11912f, -0.141063f, 0.166016f, 0.507537f, -0.189442f, -0.0258596f, 0.346139f, 0.433924f, -0.185028f, 0.373976f, -0.511641f, -0.426385f, 0.451116f, 0.523525f, 0.206911f, 0.607599f, 0.194165f, 0.382406f, 0.935012f, -0.668921f, -0.259511f, 0.429638f, 0.115543f, 0.334018f, -0.541269f, 0.216871f, -0.641842f, 0.683943f, -0.502034f, -0.268726f, 0.701026f, -0.174208f, 0.662809f, 0.368597f, -0.135951f, -0.169557f, -0.466358f, 0.0146659f, 0.625388f, -0.190924f, -0.587081f, 0.0369928f, 0.209533f, -0.0256201f, -0.134377f, 0.367434f, 0.0341216f, -0.436878f, -0.351488f, 0.278601f, -0.158937f, 0.648963f, -0.0653587f, 0.23024f, -0.402509f, -0.208165f, -0.486905f, -0.0833748f, -0.114049f, 0.424813f, -0.0702822f, -0.539892f, -0.124429f, 0.184419f, 0.203463f, -0.121436f, -0.520316f, 1.00983f, -0.0868194f, -0.501019f, 0.0462809f, 0.0783426f, -0.2484f, 0.0981621f, -0.198552f, -0.303788f, -0.0840944f, -0.18279f, 0.600747f, -0.0584895f, 0.100108f, -0.669185f, -0.0780443f, -0.331786f, -0.52951f, -0.270123f, 0.519388f, -0.299453f, -0.527781f, -0.678231f, -0.300144f, -0.00385544f, 0.349333f, 0.851644f, -0.336946f, 0.235634f, 0.220692f, 0.411873f, -0.402994f, -0.012952f, 0.0415505f, 0.3485f, 0.196319f, 0.465808f, 0.111701f, -0.26433f, 0.220039f, -0.402731f, 0.0500919f, -0.319965f, -0.0414993f, 0.475354f, 0.143973f, -0.479436f, -0.233601f, 0.158693f, 0.549028f, -0.397703f, 0.336638f, -0.0746536f, -0.303844f, -0.0445528f, -0.233848f, -0.361522f, -0.00597053f, 0.344429f, 0.229481f, -0.458113f, -0.00821081f, -0.111579f, 0.592684f, 0.00628453f, -0.499848f, 0.496396f, -0.343879f, -0.575317f, -0.293076f, -0.160916f, -0.352197f, 0.0679993f, 0.0551412f, -0.0312388f, 0.265375f, -0.201201f, 0.0245684f, 0.462555f, 0.347122f, -0.972172f, -0.0306904f, 0.0297101f, -0.11272f, 0.477086f, 0.481387f, 0.9836f, -0.398339f, 0.0708219f, -0.753974f, -0.23255f, 0.260514f, -0.245355f, -0.0931575f, -0.673779f, -0.0817291f, 0.199195f, -0.480285f, -0.45005f, -0.023799f, -0.366601f, -0.2084f, 0.666304f, 0.132828f, 0.0877088f, 0.454745f, 0.229825f, 0.264379f, 0.407093f, 0.330497f, 0.218693f, 0.523911f, 0.328874f, 0.805786f, 0.00485716f, -0.211797f, 0.404341f, -0.120829f, -0.241701f, -0.764544f, 0.17835f, -0.30668f, -0.0872752f, 0.97527f, 0.0813365f, 0.472389f, 0.919017f, -0.136896f, 0.134787f, 0.0240096f, -0.60919f, -0.232189f, 0.638233f, -0.53722f, 0.383588f, 1.04688f, -0.223798f, 0.468294f, -0.220214f, 0.405335f, -0.280534f, 0.286776f, -0.179761f, 0.178508f, -0.297183f, 0.182498f, -0.685467f, 0.580719f, 0.19707f, -0.128853f, -0.819698f, -0.270809f, -0.832294f, -0.152185f, -0.393175f, -0.750241f, 0.529206f, 0.762727f, -0.407887f, -0.244154f, 0.572863f, 0.466904f, 0.957789f, 0.686932f, 0.133498f, 0.18891f, 0.850856f, 0.510167f, -0.172768f, 0.14671f, -1.13979f, -0.742267f, 0.393743f, 0.444338f, -0.33688f, -0.0438455f, 0.314722f, 0.306787f, -0.405244f, 0.441624f, 0.505547f, -0.291027f, 0.414324f, -0.252424f, 0.570165f, -0.324644f, -0.521873f, -0.0440274f, -0.176604f, 0.866987f, -0.429828f, 0.280288f, -0.0479095f, -0.246395f, -0.581399f, 1.1762f, -0.870758f, 0.643341f, 0.721751f, -0.412596f, -0.406957f, 0.610477f, 0.501528f, 0.41953f, 0.71976f, -0.913314f, 0.638418f, -0.444716f, -0.425936f, -0.0714459f, -0.656934f, -0.436864f, -0.208498f, 0.283547f, 0.403649f, -0.0865038f, 0.157091f, -0.676679f, -0.0651144f, 0.710754f, -0.689077f, 0.528029f};
+ model->setOperandValue(op11, op11_init, sizeof(float) * 1152);
+ static float op13_init[] = {0.546519f, 0.196527f, 1.33245f, 0.223313f, -0.0686019f, 0.29652f, 0.373173f, 0.536225f, 0.675113f, -0.632758f, -0.340469f, 0.693325f, 0.451477f, -0.38477f, 0.163996f, -0.0238434f, -0.480369f, 0.486697f, -0.157606f, -0.453389f, -0.0613977f, 0.148022f, 0.210699f, 0.305469f, -0.719091f, -0.98168f, -0.729431f, 0.384724f, 0.170649f, 0.102487f, -0.177468f, -0.112562f, 0.977599f, 0.843605f, -0.160566f, -0.0826119f, -1.01795f, 0.327381f, -0.311044f, 0.148776f, 0.458008f, 0.712339f, -0.627031f, -0.0185205f, -0.220114f, -0.254519f, 0.157792f, -0.0902074f, -0.40048f, 0.0213905f, -0.106975f, 0.0542978f, -0.259207f, -0.529396f, -0.023698f, 0.0370436f, 0.175882f, -0.231802f, -0.755031f, -0.635971f, -0.210382f, 0.263938f, 0.644176f, -0.407618f, -0.815028f, 0.719426f, -0.215798f, -0.770013f, -0.190236f, -0.594785f, -0.0741564f, 0.436073f, -0.0194503f, 0.253288f, 0.257328f, -0.475578f, 0.323997f, 0.351296f, 0.0860487f, -0.836167f, 0.220064f, -0.593962f, -0.319109f, 0.20685f, -0.474809f, 0.0252552f, 0.137135f, 0.44559f, 0.241269f, -0.0192984f, 0.139146f, -0.431877f, 0.618441f, 0.246926f, -0.749076f, -0.602428f, -0.0262464f, -0.727089f, 0.614319f, 0.119553f, -0.658924f, 0.177904f, 0.520725f, -0.24752f, 0.539497f, -0.346223f, 1.01883f, -0.375712f, 0.150706f, -0.0695844f, 0.291091f, 0.231353f, -0.302372f, -0.159618f, 1.3969f, 0.838611f, -0.0641228f, -0.112692f, -0.443575f, 0.839417f, 0.531622f, 0.328611f, -0.124474f, 0.493831f, 0.0234903f, 0.0202693f, -0.531455f, 0.58728f};
+ model->setOperandValue(op13, op13_init, sizeof(float) * 128);
+ static float op14_init[] = {0.0492167f, -0.0080753f, 0.106292f, 0.0105276f, -0.0331312f, 0.114954f, 0.170489f, -0.12154f, 0.0805692f, -0.167832f, 0.034986f, -0.296966f, -0.0655937f, -0.111175f, 0.0439435f, -0.018318f, -0.134041f, -0.0846412f, 0.092653f, -0.0790839f, 0.179607f, 0.0128861f, 0.170719f, -0.00102839f, -0.000371042f, 0.187442f, 0.367099f, 0.155459f, 0.127148f, 0.109095f, -0.0116157f, -0.0649709f, 0.00564519f, -0.220081f, 0.0481978f, -0.158649f, -0.00169554f, -0.189301f, 0.0927649f, -0.0162247f, -0.146722f, 0.0395212f, -0.119687f, -0.0263079f, -0.0115938f, -0.00645318f, -0.00155876f, 0.201296f, 0.00391423f, 0.0928273f, -0.0865713f, 0.0358025f, 0.0465153f, -0.192458f, -0.0337003f, 0.0168396f, -0.105297f, -0.052292f, -0.200595f, 0.0113962f, 0.0109133f, -0.0220112f, 0.055337f, -0.177347f, 0.0508988f, 0.0870318f, -0.132901f, -0.0590428f, -0.0393112f, 0.109377f, -0.0827402f, 0.112023f, -0.0645175f, 0.159355f, -0.0984026f, -0.18086f, 0.15466f, 0.0725992f, 0.0280992f, 0.0225695f, 0.00691936f, -0.0502526f, -0.128364f, -0.145571f, 0.0579586f, -0.0274957f, -0.16697f, -0.0250412f, 0.0943546f, 0.0787729f, 0.0940538f, -0.119917f, 0.0964136f, 0.113825f, -0.152387f, 0.311643f, -0.0707457f, -0.0727547f, -0.173086f, -0.113407f, -0.0740743f, -0.00903834f, -0.204262f, -0.0651392f, 0.00987691f, -0.129447f, -0.149183f, -0.120871f, -0.0475758f, 0.036237f, -0.226021f, 0.106552f, -0.0534957f, 0.108059f, -0.0924064f, -0.118662f, -0.00377724f, -0.0365475f, -0.0159883f, -0.0557885f, -0.0465726f, 0.0687464f, 0.0692653f, -0.0202816f, 0.190164f, 0.069391f, 0.036889f, 0.155402f, 0.103209f, 0.124473f, -0.0607203f, -0.11585f, -0.153651f, -0.127314f, 0.149033f, -0.0828471f, -0.00839595f, 0.198123f, 0.122013f, 0.167998f, 0.173856f, 0.0256196f, 0.117699f, 0.126546f, 0.0918655f, 0.0382004f, -0.065435f, -0.0483645f, -0.0119214f, -0.0109207f, -0.129997f, -0.142993f, -0.0613742f, -0.108548f, 0.0510479f, 0.020964f, 0.0262848f, 0.0460446f, 0.0716021f, 0.0597847f, -0.0358898f, -0.141561f, -0.0386211f, 0.111586f, -0.0162418f, -0.158925f, -0.219007f, -0.0756682f, -0.109976f, -0.0832409f, 0.0277708f, 0.145679f, 0.0500395f, -0.111505f, -0.0670436f, 0.279826f, -0.0844559f, -0.000112902f, 0.154262f, -0.204945f, -0.0589911f, 0.032408f, -0.11697f, 0.039011f, -0.254155f, -0.0195576f, 0.193946f, 0.00560876f, 0.0117224f, -0.0429483f, -0.0874491f, 0.166817f, 0.208694f, -0.0294162f, -0.135881f, 0.141971f, -0.0327922f, -0.00175662f, 0.124897f, -0.118557f, -0.119867f, 0.115371f, -0.00347566f, 0.0124675f, -0.00602114f, -0.0738759f, 0.0870936f, -0.0791408f, -0.017976f, -0.00963917f, 0.0734867f, -0.148776f, -0.132703f, -0.140691f, 0.170037f, 0.000135891f, -0.0458496f, 0.153835f, -0.117437f, -0.0346555f, -0.076906f, 0.0373166f, -0.0619154f, -0.054829f, 0.0411179f, -0.0415604f, 0.108682f, -0.0672608f, 0.0434165f, 0.0643523f, 0.226074f, 0.0755257f, 0.180693f, -0.0955687f, 0.0446819f, 0.135113f, -0.0790001f, -0.199555f, 0.190408f, -0.000178168f, -0.145356f, -0.144526f, -0.0218069f, 0.0294089f, 0.168454f, -0.0392053f, -0.0673176f, -0.158824f, -0.0925555f, -0.0174453f, 0.0611432f, 0.0321967f, -0.0433546f, -0.176905f, -0.0753259f, -5.27295e-05f, -0.120573f, 0.129824f, -0.181926f, 0.0948043f, -0.0363327f, -0.0152112f, -0.163502f, 0.0703871f, -0.273672f, 0.192872f, -0.223747f, 0.0114178f, 0.197958f, 0.0417495f, 0.0123187f, 0.0486147f, -0.312089f, -0.138923f, -0.0115935f, 0.140518f, 0.0633077f, 0.0619971f, -0.00782752f, 0.00451701f, -0.106805f, 0.231051f, -0.0870636f, -0.364433f, -0.0366613f, -0.0955438f, -0.0216577f, -0.0176759f, 0.0939908f, 0.0132251f, -0.18876f, -0.116116f, 0.00687216f, -0.171588f, -0.114295f, -0.0294445f, 0.0917865f, 0.193141f, -0.00168992f, 0.0101699f, -0.00952344f, 0.0102147f, -0.0711157f, 0.0391557f, -0.134241f, -0.337105f, 0.06641f, -0.0368229f, -0.0238293f, -0.0822427f, -0.187422f, -0.198655f, -0.00713002f, -0.0467149f, -0.163569f, 0.291809f, -0.154768f, 0.0750425f, -0.00786117f, -0.00525774f, 0.152604f, -0.129881f, 0.090134f, 0.140681f, -0.106896f, 0.158144f, 0.0464975f, -0.0305343f, 0.0666374f, -0.492194f, -0.101637f, -0.00844549f, -0.0778769f, -0.0598388f, 0.0144071f, 0.0226333f, 0.055511f, 0.122228f, 0.0939258f, -0.100434f, -0.0637961f, -0.135049f, -0.0947703f, -0.0927133f, 0.0795114f, 0.00848647f, -0.0561512f, 0.0217505f, -0.17491f, -0.0964265f, 0.107838f, 0.002654f, -0.174289f, -0.109367f, 0.0115197f, -0.139991f, 0.134845f, -0.165507f, -0.157441f, 0.0847361f, -0.122034f, 0.203999f, -0.0438373f, -0.0849663f, -0.0401438f, 0.0032295f, -0.128538f, 0.14098f, -0.0523561f, -0.00824747f, 0.238848f, -0.0943977f, 0.171542f, -0.083204f, -0.0750833f, -0.0154852f, -0.0545717f, 0.0562121f, -0.250548f, 0.355748f, -0.0127577f, -0.175393f, -0.0940266f, -0.0245702f, -0.161752f, 0.0713704f, -0.0689921f, 0.0949081f, -0.110655f, 0.11458f, 0.093886f, -0.00122368f, 0.0416001f, 0.0237156f, -0.224473f, 0.0551668f, 0.0385368f, -0.0946446f, -0.00966641f, 0.0241999f, -0.140684f, 0.00477651f, 0.0253581f, 0.0746407f, 0.0577489f, -0.120865f, -0.0441265f, 0.205448f, -0.169091f, -0.172141f, -0.121993f, 0.063009f, -0.114414f, -0.133986f, -0.0664861f, 0.0974314f, 0.0465029f, 0.029562f, -0.0732854f, 0.23398f, 0.0818584f, -0.0809577f, -0.159575f, -0.0798414f, 0.0224608f, -0.00344298f, 0.0414172f, -0.084686f, 0.0347905f, 0.00652246f, 0.0416775f, -0.010326f, -0.0373172f, -0.109738f, 0.0487422f, 0.28135f, 0.181046f, 0.153545f, -0.252753f, 0.0659271f, 0.0351477f, 0.0320459f, -0.0129645f, -0.305184f, 0.0861847f, 0.00172219f, 0.0126068f, -0.136033f, -0.0432554f, -0.0273639f, 0.0786822f, -0.136442f, -0.00635393f, -0.0800038f, 0.139217f, 0.0079255f, 0.0139949f, -0.238955f, 0.0459657f, -0.0177275f, -0.0208276f, 0.062152f, -0.129144f, -0.0656636f, 0.119989f, -0.0748773f, -0.0289873f, -0.0191252f, -0.00243437f, 0.184397f, 0.0103788f, -0.127131f, -0.0328814f, 0.184076f, 0.0840546f, 0.0149544f, -0.0100922f, -0.11661f, 0.0935298f, -0.0390165f, 0.0759842f, 0.15999f, 0.125135f, -0.0217201f, -0.0257261f, -0.0809541f, -0.0173107f, -0.102538f, -0.0307895f, 0.271013f, 0.0766397f, 0.0807188f, 0.0285146f, 0.0446107f, -0.242278f, 0.151835f, -0.178589f, 0.0072848f, -0.0280574f, 0.150958f, 0.0300658f, 0.0259331f, -0.0548878f, -0.00311273f, 0.00940436f, -0.00196552f, -0.12281f, 0.0221584f, -0.158485f, -0.20765f, -0.15677f, 0.0653593f, 0.040512f, -0.0850898f, 0.0695333f, -0.0149501f, 0.142968f, 0.114833f, 0.022345f, 0.026202f, 0.0909355f, 0.100476f, -0.038809f, -0.0881875f, 0.0556801f, -0.0114246f, -0.0473359f, -0.106935f, 0.278771f, -0.0926321f, 0.177681f, 0.14335f, 0.0139497f, 0.138455f, 0.000802558f, -0.00785487f, 0.0880446f, -0.16951f, -0.152086f, 0.00956144f, 0.143776f, 0.227599f, 0.0992357f, 0.145382f, -0.111775f, -0.196603f, 0.136609f, 0.012763f, 0.132275f, -0.0729869f, -0.0811713f, -0.0799113f, 0.0381832f, 0.193389f, 0.0412808f, -0.0865903f, 0.14999f, 0.079186f, -0.0798377f, -0.237072f, -0.0606504f, -0.0633377f, -0.0225933f, -0.0144042f, -0.16748f, -0.132666f, 0.0569834f, 0.136629f, -0.0986089f, 0.0258738f, -0.148541f, -0.0215487f, 0.14057f, 0.121353f, -0.122501f, 0.0510205f, -0.0468193f, 0.0257614f, -0.0813403f, -0.0184783f, 0.0610865f, 0.113536f, -0.0764772f, -0.0654762f, 0.0356131f, 0.120593f, 0.000701469f, -0.011207f, 0.0885916f, -0.113207f, -0.018028f, 0.000686579f, 0.109291f, -0.0726071f, 0.025577f, -0.142312f, 0.0748808f, -0.19693f, 0.102937f, -0.117123f, -0.0410858f, 0.0676378f, -0.139671f, -0.00476818f, -0.00629099f, -0.0890137f, 0.0343115f, 0.149645f, -0.0562569f, -0.117631f, 0.0427329f, -0.104956f, 0.0538572f, -0.0836263f, 0.0771976f, -0.0750694f, 0.0161346f, -0.0860907f, -0.020409f, 0.0160154f, -0.0419108f, -0.0838875f, -0.0204571f, 0.0861213f, 0.155953f, 0.0064597f, 0.131849f, 0.125874f, -0.0523746f, -0.114349f, -0.0416358f, -0.0872385f, 0.0480122f, 0.00288863f, 0.181765f, 0.0951868f, -0.16586f, -0.0258458f, -0.0630367f, 0.0339819f, -0.129774f, -0.0555887f, 0.0510964f, 0.0261776f, -0.024705f, 0.00170325f, -0.11662f, 0.0295839f, 0.0571213f, 0.171625f, 0.178549f, -0.0614394f, 0.0908226f, 0.0431401f, -0.147683f, -0.0801485f, 0.104426f, -0.200215f, -0.00210399f, 0.131242f, -0.074985f, -0.0133755f, -0.0160105f, -0.182432f, -0.147769f, -0.10569f, -0.0904137f, 0.128471f, 0.0405718f, -0.00530241f, 0.134106f, -0.0570188f, -0.137804f, 0.00225738f, 0.179937f, -0.188969f, 0.167005f, 0.0527973f, -0.209259f, 0.021988f, -0.0666499f, -0.0629176f, 0.150208f, 0.145494f, -0.0886062f, -0.0421768f, 0.0327965f, -0.215305f, -0.102755f, 0.000361563f, 0.0132205f, -0.0190006f, 0.00879901f, -0.0235244f, -0.0166984f, -0.0342428f, -0.0832649f, 0.0334605f, 0.13459f, -0.105707f, -0.102384f, 0.151998f, -0.0371934f, -0.081087f, 0.237131f, -0.0408839f, -0.0791937f, 0.0215946f, -0.0715714f, -0.192749f, -0.0332591f, 0.132308f, 0.145569f, 0.0284476f, -0.0991756f, 0.0696881f, 0.0527799f, -0.100154f, 0.0370597f, 0.0435286f, -0.0686432f, 0.0808107f, -0.156254f, 0.0241207f, -0.0225814f, 0.029803f, 0.0451793f, 0.228596f, -0.0598947f, 0.0519975f, 0.0149441f, -0.069995f, -0.0589497f, -0.00627544f, -0.0933683f, 0.0268122f, -0.014502f, 0.0561036f, 0.100682f, 0.222578f, -0.00405048f, 0.0706947f, 0.0798659f, 0.135403f, -0.00710166f, -0.0225438f, 0.0653613f, -0.13813f, 0.121719f, 0.0373233f, 0.0763169f, 0.0683692f, -0.0567941f, -0.00302485f, -0.113824f, -0.109493f, 0.0362708f, 0.20475f, -0.0468547f, -0.138923f, -0.116995f, 0.224091f, 0.116567f, -0.178833f, -0.268479f, 0.00547667f, -0.0359758f, -0.0305019f, -0.0447285f, 0.0775895f, -0.0692764f, -0.00558963f, -0.0175287f, -0.0719026f, -0.0234363f, 0.0846011f, -0.139907f, 0.0260687f, 0.032942f, 0.133716f, 0.00954939f, 0.0637549f, 0.103508f, 0.0801002f, -0.191423f, 0.279081f, 0.149761f, -0.122825f, -0.286675f, -0.0733171f, -0.0326665f, 0.174693f, -0.0447328f, -0.114704f, 0.142963f, 0.0720335f, -0.101278f, -0.028875f, -0.068784f, -0.333874f, -0.0532909f, -0.393075f, -0.151179f, -0.0596503f, -0.0438335f, 0.0455516f, -0.0656532f, -0.272681f, -0.120124f, -0.14181f, -0.136676f, -0.0118414f, -0.0633985f, -0.134824f, 0.0663299f, 0.106551f, 0.120896f, 0.0453364f, -0.219069f, 0.0274996f, 0.0630045f, 0.00982235f, -0.113778f, 0.056311f, 0.119944f, -0.122912f, 0.0822344f, 0.290308f, -0.0658323f, 0.115401f, 0.121139f, -0.0145469f, -0.0497488f, 0.0780023f, 0.0508725f, 0.0105117f, -0.227832f, -0.237472f, 0.151411f, 0.176579f, 0.187783f, 0.106447f, 0.0347247f, -0.0744084f, -0.0669467f, 0.113765f, -0.0603795f, -0.0882256f, -0.0852787f, -0.0746291f, 0.0232977f, 0.0257745f, 0.131218f, 0.209047f, 0.089493f, -0.122133f, 0.0502431f, -0.152461f, 0.0490434f, 0.0561319f, 0.110302f, 0.213338f, -0.0308746f, -0.137503f, -0.162805f, -0.298424f, 0.00859141f, 0.086462f, -0.0186488f, -0.0238316f, 0.0963154f, -0.0986531f, 0.211295f, -0.000441614f, 0.0601404f, -0.171135f, -0.0495896f, -0.22538f, -0.117794f, 0.0185666f, -0.176838f, -0.134198f, -0.0315899f, 0.0457186f, 0.182597f, -0.0408078f, -0.0235907f, 0.0489883f, 0.110585f, 0.0565589f, -0.0683454f, 0.0293736f, 0.10658f, 0.165342f, 0.0301316f, -0.111716f, 0.0995108f, 0.0723284f, -0.143426f, 0.0474135f, -0.213154f, 0.0580365f, 0.123377f, -0.227937f, -0.0825976f, 0.182117f, -0.0796729f, -0.0144197f, 0.0177945f, -0.183136f, 0.041913f, 0.0472313f, 0.111686f, 0.134459f, 0.00786947f, -0.158542f, -0.208572f, -0.0789366f, 0.0346294f, 0.0134203f, 0.0360406f, -0.107432f, 0.139988f, 0.0462694f, 0.120488f, -0.0155272f, 0.0591545f, 0.130209f, -0.215265f, -0.0932772f, 0.0612847f, 0.172206f, -0.0659809f, 0.179974f, -0.120241f, -0.169244f, 0.0506864f, -0.0364558f, 0.047665f, 0.0313756f, -0.131087f, 0.0812904f, -0.0540152f, -0.00315742f, -0.109049f, -0.0392732f, 0.14046f, -0.158187f, 0.138067f, 0.115667f, -0.0072572f, 0.043031f, -0.0838976f, 0.0230993f, -0.069355f, -0.0590289f, -0.11505f, 0.0712727f, -0.0614348f, -0.0224647f, -0.0956382f, 0.15265f, 0.0129695f, 0.0490562f, -0.165935f, 0.106692f, -0.0659336f, 0.0930762f, -0.18223f, -0.0526363f, 0.0341916f, -0.124129f, -0.0771975f, 0.158684f, 0.0920409f, 0.081097f, 0.109989f, -0.0927354f, 0.0360564f, 0.0731718f, -0.0175897f, 0.03814f, -0.206528f, -0.180831f, -0.00374866f, -0.0855626f, -0.0793599f, -0.00984907f, -0.108055f, 0.0291045f, -0.065862f, -0.148504f, -0.133601f, -0.174052f, 0.21205f, 0.263741f, -0.081781f, 0.0113202f, -0.064409f, -0.119665f, 0.169552f, -0.156628f, -0.21961f, 0.137595f, 0.190254f, 0.0641385f, 0.0372727f, -0.0397738f, -0.0350038f, -0.0297238f, 0.0361912f, -0.0281507f, 0.0429097f, 0.065128f, -0.185803f, -0.0344845f, 0.2474f, -0.019044f, -0.143508f, 0.051563f, -0.16674f, -0.00885823f, -0.174305f, -0.0653413f, -0.20566f, 0.0915419f, -0.195137f, 0.0803697f, 0.0241017f, -0.0778403f, 0.1324f, 0.121624f, 0.0721749f, -0.0317701f, -0.0282991f, 0.0829357f, -0.0446889f, -0.221399f, -0.0573394f, 0.0639798f, 0.275477f, -0.0215121f, -0.0249761f, 0.141485f, -0.000536039f, -0.0544694f, -0.142053f, -0.0728612f, 0.00456747f, -0.0582212f, 0.0887192f, 0.027507f, -0.0756964f, -0.12051f, 0.00187038f, -0.170617f, 0.0815445f, 0.182649f, 0.0207706f, -0.0574881f, 0.135789f, 0.0680687f, 0.00853627f, 0.053275f, 0.0152777f, 0.0390285f, -0.196792f, 0.232171f, -0.164028f, 0.0853647f, 0.108125f, 0.0441848f, -0.0648633f, 0.0874179f, 0.131628f, -0.19721f, -0.0996591f, 0.0740258f, -0.0263318f, 0.129169f, -0.0195181f, 0.0500299f, 0.227494f, 0.242276f, 0.0320448f, 0.108489f, 0.0372571f, -0.0320693f, -0.00244309f, 0.0572242f, -0.188381f, -0.0729394f, -0.0222875f, -0.12612f, 0.00204527f, 0.206793f, 0.161682f, -0.025546f, 0.0374374f, -0.163328f, -0.0303548f, -0.122453f, 0.022845f, -0.149735f, 0.0897621f, 0.000939904f, 0.126001f, 0.0533079f, -0.124279f, -0.111203f, -0.179071f, 0.0476198f, -0.0101316f, 0.0992392f, -0.0975323f, -0.0578787f, -0.0898316f, -0.0253303f, -0.234476f, -0.13834f, -0.0430442f, 0.0706073f, -0.0749545f, 0.222766f, -0.361091f, -0.283269f, -0.042671f, -0.0491435f, -0.101454f, -0.19423f, -0.0711788f, -0.11361f, -0.0832408f, -0.24414f, 0.0612154f, -0.114414f, -0.158798f, 0.140562f, 0.0091119f, 0.187348f, 0.121683f, 0.102233f, -0.0878468f, -0.160917f, -0.0578508f, 0.142055f, 0.14557f, -0.0392492f, -0.165748f, -0.20097f, 0.11652f, -0.181798f, -0.132295f, 0.0891044f, -0.118072f, 0.201971f, 0.0332414f, -0.0147372f, 0.0366766f, -0.0545744f, 0.0886495f, -0.0239655f, -0.00409695f, -0.09689f, 0.156897f, -0.11485f, 0.187426f, 0.128149f, -0.0861619f, 0.0365631f, 0.114727f, 0.0433083f, 0.15611f, -0.123248f, 0.137454f, -0.130114f, 0.0913088f, 0.17848f, 0.0202289f, 0.151537f, -0.0878885f, -0.109985f, -0.132346f, 0.018859f, 0.0305484f, -0.0381497f, -0.092044f, 0.178204f, 0.0172576f, 0.0896934f, -0.00837939f, -0.0431898f, 0.057657f, 0.057103f, -0.168536f, 0.071048f, 0.0624253f, 0.198933f, -0.0137471f, -0.272231f, -0.159716f, -0.0877256f, 0.0746378f, 0.048439f, -0.158477f, 0.279114f, 0.155359f, -0.0525185f, -0.240777f, -0.0252886f, 0.056017f, 0.25799f, -0.0356944f, -0.0831027f, 0.094073f, -0.211309f, 0.253028f, -0.114466f, -0.0549911f, 0.0723603f, -0.0487073f, 0.231137f, 0.00824384f, -0.114115f, -0.0857685f, -0.311542f, 0.0204696f, 0.215278f, 0.181503f, 0.00926087f, -0.055034f, 0.0676433f, 0.0950742f, 0.137824f, 0.0567236f, -0.0445646f, 0.230935f, 0.0904069f, 0.132368f, -0.0327701f, -0.108141f, -0.0186523f, -0.0692107f, -0.0471153f, -0.12488f, 0.146122f, 0.0559398f, -0.155606f, 0.0471084f, -0.236806f, -0.047566f, 0.215015f, -0.0916397f, 0.117583f, -0.0123857f, 0.334727f, -0.0562826f, -0.203491f, -0.0524377f, 0.00650569f, 0.258449f, -0.0962554f, 0.00176657f, 0.215625f, 0.240062f, 0.0423998f, -0.228229f, 0.251497f, 0.158806f, -0.0183047f, 0.164062f, -0.190175f, 0.0434275f, -0.0568473f, -0.0831833f, 0.139796f, 0.0295127f, -0.137637f, -0.121978f, -0.115261f, 0.0232111f, -0.0528481f, 0.08297f, 0.222742f, 0.0494635f, 0.00537435f, -0.0411289f, -0.135641f, -0.055453f, -0.104498f, -0.00606978f, 0.107924f, 0.182993f, 0.196488f, -0.220586f, 0.0834931f, 0.136944f, -0.124912f, 0.0566047f, -0.141472f, -0.115923f, 0.00582133f, -0.0647555f, 0.203496f, -0.0917668f, -0.0768195f, -0.257483f, 0.02058f, 0.11171f, -0.0650737f, 0.0538812f, 0.0345428f, 0.186867f, 0.139228f, -0.0232228f, 0.251106f, 0.075727f, -0.0145102f, -0.0013916f, -0.154794f, -0.0475107f, -0.0882924f, -0.0293644f, -0.0463873f, -0.190434f, 0.128487f, -0.211163f, 0.0428343f, 0.0128901f, 0.0834131f, -0.224292f, -0.224269f, -0.099813f, -0.18568f, -0.226043f, -0.0286109f, 0.211421f, 0.100051f, -0.23053f, -0.184351f, 0.00949613f, 0.0591342f, 0.222538f, -0.128832f, -0.0492649f, 0.0241476f, 0.0137129f, 0.116823f, 0.187481f, 0.103007f, -0.0572725f, 0.150223f, 0.151514f, -0.0271873f, -0.0409179f, -0.101334f, 0.0247189f, 0.173993f, 0.0473607f, 0.139463f, 0.0418125f, -0.103283f, 0.185058f, 0.157335f, 0.0333354f, 0.222687f, 0.107339f, 0.0100859f, 0.0270604f, 0.042039f, -0.0825912f, 0.0490693f, -0.190715f, -0.0126432f, 0.00672672f, -0.16169f, -0.22029f, 0.0220799f, 0.233879f, -0.190686f, 0.179533f, -0.114906f, -0.0346892f, -0.0383336f, 0.0579005f, 0.134133f, 0.254502f, -0.090966f, -0.0240384f, 0.0591224f, -0.125023f, -0.0640151f, -0.0509585f, -0.018779f, 0.0184918f, 0.0233031f, 0.138207f, -0.147355f, 0.0818296f, -0.136569f, 0.074626f, 0.259347f, -0.167076f, 0.0924999f, -0.102714f, -0.0349014f, 0.00793676f, 0.175492f, -0.0259951f, 0.201141f, -0.0389568f, -0.123162f, -0.150018f, -0.261208f, -0.0779724f, 0.151716f, -0.27511f, 0.0267754f, -0.02426f, 0.0323975f, 0.0619007f, 0.0355181f, -0.0373477f, -0.0113832f, 0.0991678f, 0.0402597f, 0.168917f, 0.0738804f, -0.0960292f, 0.116448f, -0.235607f, 0.0889576f, -0.23862f, -0.021034f, 0.0124129f, 0.0119729f, -0.192618f, -0.105072f, 0.0523522f, 0.0447149f, 0.345979f, -0.0219146f, -0.0984075f, -0.00578818f, 0.0451021f, -0.028731f, 0.100304f, 0.0195838f, 0.167274f, 0.0209902f, 0.147011f, 0.0424149f, -0.00708879f, -0.13009f, -0.0540268f, -0.222126f, -0.0943983f, -0.144618f, 0.091855f, 0.0247219f, 0.0107608f, -0.0134213f, 0.044302f, -0.15387f, 0.121104f, -0.128266f, -0.13425f, -0.108515f, -0.0166476f, -0.0414318f, 0.159497f, 0.223621f, 0.0412818f, -0.0106633f, 0.0282296f, 0.0277303f, -0.199521f, -0.0699576f, -0.0141956f, -0.27968f, -0.138213f, -0.324123f, -0.0586276f, -0.272205f, -0.202471f, 0.0528705f, 0.116171f, 0.175374f, -0.00621978f, -0.19016f, -0.013336f, -0.0624942f, -0.173633f, -0.0362419f, -0.0393273f, -0.197387f, 0.0266068f, 0.0752167f, 0.0219202f, 0.0991614f, -0.0691717f, -0.0200872f, -0.207639f, 0.0774781f, -0.180694f, -0.106946f, 0.228402f, 0.215501f, 0.140484f, -0.00993635f, -0.17885f, -0.124541f, 0.209396f, 0.0456329f, -0.0326297f, -0.227967f, 0.0176382f, 0.126693f, -0.13374f, -0.0895639f, -0.0498502f, 0.182497f, -0.0403466f, -0.11318f, 0.0829482f, -0.101558f, -0.210259f, -0.0142118f, 0.221004f, 0.201915f, -0.00715938f, 0.291329f, 0.0519045f, 0.247412f, -0.0494128f, -0.24108f, 0.0346359f, 0.256192f, 0.163851f, -0.0312586f, -0.212608f, 0.180212f, -0.168624f, -0.00740805f, 0.039962f, 0.102553f, -0.26046f, 0.153342f, 0.0189885f, -0.226138f, -0.142786f, 0.185155f, 0.0554666f, 0.152146f, -0.135114f, -0.052673f, -0.0907804f, -0.12008f, -0.0433961f, 0.11263f, 0.073007f, 0.137673f, -0.0751304f, -0.0113423f, -0.0684032f, -0.232901f, -0.023975f, -0.0730533f, -0.0159199f, 0.0142321f, -0.0919635f, -0.28055f, 0.0307746f, -0.1517f, 0.0342472f, -0.255429f, -0.0715708f, -0.0395231f, -0.0330115f, -0.144234f, 0.093018f, 0.108852f, -0.0713876f, 0.0618411f, -0.0495429f, 0.269681f, -0.142119f, 0.0770512f, 0.0843751f, -0.0381377f, -0.0373572f, 0.0777432f, 0.00994464f, 0.0162586f, -0.205936f, 0.0938423f, -0.11243f, -0.214231f, 0.019383f, 0.0687085f, 0.167435f, 0.0199677f, 0.0737563f, 0.251097f, 0.30728f, 0.137163f, -0.161624f, 0.0979162f, 0.0861144f, 0.0152253f, 0.0592233f, 0.140931f, -0.207361f, 0.182872f, 0.0638417f, -0.10091f, -0.157222f, -0.121823f, 0.139221f, 0.00900056f, -0.112334f, 0.243735f, -0.111925f, 0.146996f, -0.0584696f, -0.150813f, -0.0413248f, -0.162958f, -0.0351838f, 0.0555584f, -0.103654f, 0.0838595f, -0.110647f, -0.00633099f, -0.121276f, -0.0290704f, 0.127219f, -0.2905f, -0.222927f, -0.1998f, 0.0170748f, -0.173659f, 0.129737f, -0.113299f, 0.0146245f, 0.0190175f, -0.145867f, -0.219518f, -0.0498695f, -0.0834724f, 0.307912f, 0.149158f, -0.164277f, 0.198432f, -0.18827f, -0.197475f, -0.0174183f, -0.178346f, 0.0166028f, 0.193058f, 0.200801f, 0.141707f, -0.124452f, 0.0139854f, 0.0543152f, 0.0191997f, 0.140814f, 0.0138425f, -0.0776235f, 0.0849749f, 0.00500992f, 0.128451f, -0.0833616f, 0.0483032f, 0.136872f, 0.141408f, 0.00120865f, 0.0655269f, -0.0228196f, 0.0359869f, -0.0885993f, -0.0253892f, 0.00630064f, -0.0737311f, -0.09712f, -0.0581056f, 0.0876231f, -0.105556f, 0.106587f, 0.115574f, 0.109382f, -0.0344718f, -0.0857086f, -0.031791f, -0.0481928f, 0.193243f, -0.0807388f, -0.0562995f, -0.109195f, 0.121406f, 0.0294873f, -0.03494f, 0.121593f, -0.114627f, 0.189084f, 0.0336732f, -0.0258573f, -0.00329885f, 0.126326f, -0.0745033f, -0.110684f, 0.0392413f, 0.110288f, -0.0559722f, -0.100013f, -0.052488f, -0.075224f, -0.0129236f, -0.0211523f, -0.0304935f, 0.0620358f, 0.0226703f, -0.16302f, 0.104016f, 0.134436f, 0.0436811f, 0.083413f, -0.015109f, 0.102913f, -0.0684302f, 0.0400464f, 0.0907375f, -0.0320823f, 0.077737f, -0.0671746f, 0.109123f, 0.0416361f, 0.0664548f, 0.065682f, -0.0154766f, 0.0446626f, -0.0557595f, 0.0949753f, -0.0747575f, 0.0900197f, -0.0599175f, 0.0241107f, -0.0812057f, 0.0724707f, 0.109226f, 0.182543f, -0.113744f, 0.089102f, -0.052859f, 0.0474371f, -0.0457188f, 0.0848299f, -0.0293691f, -0.0171324f, -0.0555584f, -0.0895526f, 0.0458561f, -0.00882814f, 0.166514f, -0.061592f, -0.000846884f, -0.0278719f, -0.0824408f, 0.0935833f, -0.0732173f, 0.0674627f, -0.0366389f, -0.049281f, -0.0261238f, 0.0747478f, 0.0614538f, -0.0295898f, -0.0121928f, 0.0661585f, 0.0416677f, -0.0581062f, -0.0795794f, -0.109423f, 0.0586139f, -0.0736785f, 0.0437803f, 0.0310881f, -0.111391f, -0.0376946f, 0.0125955f, 0.0384898f, 0.0493048f, -0.112666f, -0.0894403f, -0.0527379f, 0.0814943f, -0.169342f, 0.0504169f, 0.0332041f, 0.0579662f, 0.0111277f, 0.05307f, 0.243877f, 0.089272f, 0.143625f, -0.115239f, 0.0929253f, 0.0381814f, 0.0581228f, -0.040321f, -0.167923f, -0.103502f, -0.00471829f, -0.0767604f, -0.0267574f, -0.0566762f, -0.169317f, 0.103593f, 0.102613f, 0.0478866f, 0.0543696f, -0.0940746f, -0.104138f, 0.0938678f, -0.0489719f, -0.13554f, -0.0564174f, -0.0430226f, 0.0896248f, -0.146948f, -0.207343f, 0.00506542f, 0.0908469f, -0.105159f, -0.0611224f, 0.0272568f, -0.19027f, 0.00691213f, -0.0903996f, -0.0295333f, 0.0940159f, 0.185201f, -0.0421684f, -0.0273221f, 0.14053f, 0.0449279f, -0.206058f, -0.178543f, 0.186908f, 0.0334227f, -0.0291595f, 0.0414679f, -0.174828f, 0.0669931f, 0.0139986f, -0.14922f, -0.0266109f, -0.155985f, -0.0842504f, -0.047905f, -0.0809344f, -0.0901919f, -0.156473f, 0.0558113f, -0.0153987f, 0.0862919f, -0.116083f, 0.0544894f, 0.145012f, -0.124754f, -0.065691f, 0.0988642f, -0.0999761f, 0.213163f, 0.200784f, 0.0273437f, 0.0808961f, 0.0384633f, 0.148604f, -0.161495f, 0.0333225f, 0.0400704f, 0.199688f, -0.0504757f, -0.0390126f, 0.0456474f, 0.0191444f, -0.150194f, -0.193682f, 0.0390891f, 0.0441431f, 0.148171f, -0.116008f, 0.0400501f, 0.132675f, 0.0609644f, -0.0477124f, 0.0604306f, 0.0234531f, -0.0135008f, 0.138187f, 0.0569733f, 0.0684981f, -0.0293059f, 0.0490282f, -0.0516974f, 0.143206f, -0.0688611f, 0.0478408f, -0.0234555f, 0.114887f, 0.0471186f, -0.112876f, -0.120003f, -0.188073f, 0.0297023f, -0.0301577f, 0.096809f, 0.126747f, 0.0140708f, -0.0714481f, -0.175066f, 0.0820001f, -0.0238793f, -0.0424699f, -0.0767815f, 0.0681881f, 0.0114366f, 0.237764f, 0.000681015f, -0.0827463f, -0.160655f, -0.109263f, 0.0358009f, 0.0449167f, 0.0804853f, 0.295009f, -0.108865f, 0.12588f, 0.0111938f, -0.0694081f, -0.0974965f, -0.0854531f, -0.14163f, 0.0592444f, 0.0970521f, -0.011057f, -0.01159f, -0.0883977f, 0.0568559f, -0.0575635f, 0.0355744f, -0.0930156f, 0.0474116f, -0.0399587f, -0.0173922f, -0.0256595f, 0.0772782f, 0.0809732f, -0.0684049f, 0.00550794f, -0.00429773f, -0.073229f, 0.0437889f, 0.0238044f, 3.62821e-05f, 0.0153545f, -0.104206f, -0.0787933f, -0.191311f, -0.0267167f, 0.120213f, 0.00388337f, 0.0728619f, -0.084387f, -0.139515f, -0.0807818f, -0.049001f, 0.0649109f, 0.0796517f, -0.056174f, 0.114347f, -0.0322248f, 0.123421f, 0.1408f, -0.0696939f, 0.10686f, 0.0298828f, -0.0266939f, 0.13515f, 0.0246972f, 0.188649f, -0.0896813f, 0.147929f, -0.167729f, 0.0900661f, -0.0307076f, 0.131483f, 0.115164f, 0.165179f, -0.0407532f, 0.0225172f, -0.0529889f, 0.10632f, 0.145063f, 0.031157f, 0.057054f, -0.0751172f, -0.0564598f, -0.064296f, -0.00901985f, -0.176483f, -0.0892808f, -0.141043f, 0.0279851f, 0.0518494f, -0.0637775f, -0.0152736f, 0.025294f, 0.0473562f, 0.12226f, -0.107489f, -0.124822f, 0.200005f, -0.0869098f, 0.0230395f, 0.0779498f, 0.0411947f, -0.145934f, 0.0880233f, 0.146335f, 0.0530586f, 0.0216456f, 0.0667408f, -0.00302039f, 0.0064936f, 0.0451044f, -0.123123f, -0.113478f, -0.0349268f, -0.0840606f, -0.052361f, 0.254121f, 0.0524252f, -0.0319224f, 0.0867939f, -0.0985961f, -0.0868445f, -0.0601066f, 0.116264f, 0.00307126f, 0.0054083f, 0.0705744f, -0.067103f, -0.208842f, -0.189537f, 0.0876626f, 0.216028f, 0.197143f, -0.0468551f, -0.143295f, -0.10349f, -0.0478095f, 0.124108f, 0.0899674f, 0.0214125f, -0.115575f, -0.0650363f, 0.178766f, 0.054644f, -0.221033f, -0.0759763f, -0.0268949f, -0.046499f, 0.0890502f, 0.256513f, -0.00769563f, 0.0869381f, -0.0952035f, 0.195947f, 0.0910581f, -0.11275f, -0.0632819f, 0.174044f, 0.0571753f, -0.0971537f, -0.104369f, -0.0803856f, 0.0746456f, 0.0749211f, 0.0388064f, 0.175243f, -0.237036f, -0.181025f, -0.0188401f, 0.155318f, 0.124485f, 0.261587f, -0.179909f, 0.0297941f, -0.013123f, -0.0210597f, 0.241579f, 0.0796048f, -0.100584f, -0.0663762f, 0.065643f, -0.0544565f, 0.0330054f, -0.176361f, -0.00535668f, -0.225376f, 0.0197893f, 0.123849f, 0.0142532f, 0.008983f, 0.167517f, -0.134252f, -0.0796427f, 0.0819941f, 0.175221f, 0.0388609f, 0.00431878f, -0.101259f, 0.230331f, 0.0434766f, -0.0332085f, -0.0419631f, 0.032001f, 0.20115f, -0.0277301f, 0.110956f, -0.157719f, 0.0674006f, -0.00475676f, 0.0903482f, -0.0351216f, -0.0317466f, -0.180848f, 0.0451682f, -0.105899f, 0.0915358f, 0.0748197f, 0.044238f, -0.0695774f, 0.0799306f, -0.0751849f, 0.126679f, 0.150437f, 0.0625792f, 0.0995401f, -0.0413272f, 0.191341f, 0.159132f, -0.0435167f, 0.153822f, 0.0343103f, -0.0475698f, -0.0887323f, 0.0398386f, 0.138432f, 0.0188031f, -0.311453f, -0.0891011f, 0.070038f, 0.0913822f, 0.0773129f, -0.167675f, -0.116703f, 0.150842f, -0.237852f, -0.203543f, -0.0716359f, 0.0956309f, 0.0646161f, 0.00523815f, -0.0814069f, 0.0968068f, 0.0555451f, -0.0339144f, 0.0832618f, -0.139578f, -0.145736f, 0.0590748f, -0.274164f, -0.125351f, -0.117557f, 0.0628157f, -0.205371f, 0.125087f, -0.00506208f, -0.133381f, -0.108932f, -0.00475836f, 0.138468f, -0.00402426f, -0.0566999f, 0.0555077f, 0.137735f, -0.00232439f, 0.137701f, 0.13534f, 0.12905f, -0.155151f, -0.20581f, 0.200096f, -0.106572f, 0.162537f, -0.0511892f, 0.0280491f, 0.054987f, 0.0264562f, 0.0589467f, 0.0247114f, 0.00579157f, -0.170143f, 0.204848f, 0.0958258f, -0.0266192f, 0.0422218f, 0.137806f, -0.107851f, 0.0306629f, -0.0375002f, -0.046599f, -0.139974f, -0.0686025f, -0.0890072f, -0.137008f, -0.117185f, -0.0338734f, 0.152759f, -0.11186f, 0.00406046f, 0.0247243f, -0.0135469f, 0.00542397f, 0.159444f, 0.0735121f, -0.276095f, 0.0531196f, -0.135253f, 0.247246f, -0.0614343f, -0.194338f, 0.00265697f, -0.0952204f, -0.17636f, -0.124009f, 0.149977f, -0.0549827f, 0.108239f, 0.0206565f, 0.234924f, -0.0723414f, 0.0217906f, -0.146245f, -0.100103f, -0.00286639f, -0.0435033f, 0.0435341f, 0.156496f, 0.0965636f, -0.113736f, 0.0615716f, 0.00672452f, 0.150246f, -0.247211f, 0.149569f, 0.047918f, 0.0263673f, -0.0106643f, -0.0268044f, 0.00512925f, 0.02694f, 0.0494972f, -0.1449f, -0.292341f, -0.0831342f, 0.03629f, -0.0477913f, -0.102728f, 0.151196f, -0.0186595f, -0.129287f, 0.0659962f, 0.452887f, -0.0119844f, 0.139116f, 0.00438643f, -0.0301462f, -0.210149f, 0.0512216f, -0.0653356f, 0.0580448f, -0.00938669f, 0.0275416f, -0.0221773f, -0.129286f, 0.00044838f, -0.0608747f, -0.0914192f, -0.0621229f, -0.171583f, 0.0628046f, 0.0908315f, 0.0155317f, 0.20203f, 0.0637476f, 0.0185887f, -0.181352f, -0.365132f, -0.107495f, 0.149894f, 0.102351f, -0.175363f, 0.081237f, -0.116029f, -0.0646285f, 0.00965591f, -0.0644678f, 0.00580674f, -0.145207f, 0.357339f, -0.0990366f, -0.242959f, -0.00707656f, -0.010646f, -0.0149097f, 0.167517f, 0.105063f, 0.0662656f, 0.174729f, -0.0916786f, 0.064609f, 0.183313f, 0.0794393f, 0.0894638f, -0.119107f, 0.209686f, 0.245193f, 0.0459279f, -0.329965f, 0.117509f, -0.169288f, -0.0933549f, -0.107118f, -0.281241f, 0.0531467f, -0.0582125f, 0.0648879f, -0.0605359f, 0.0975132f, 0.0231977f, -0.22936f, -0.256364f, 0.0102512f, 0.433964f, -0.168109f, 0.0679666f, -0.133844f, -0.0520794f, -0.345922f, -0.0449923f, -0.109606f, 0.215228f, 0.0240971f, 0.0735906f, -0.00537278f, -0.000856066f, -0.0816695f, 0.00506573f, 0.214574f, 0.12954f, 0.0328531f, -0.28038f, -0.323073f, 0.0175684f, 0.179184f, 0.216388f, -0.185961f, 0.0401004f, -0.0332848f, 0.186399f, -0.118529f, -0.325333f, 0.108143f, 0.216224f, -0.00281893f, 0.0496458f, -0.176155f, 0.259526f, 0.0320754f, -0.00198916f, 0.270083f, -0.0397449f, -0.138274f, 0.0024338f, 0.075239f, -0.144393f, -0.0295766f, -0.0400178f, 0.202611f, 0.153798f, -0.00357793f, -0.352689f, -0.00202715f, 0.0472424f, -0.0421771f, 0.130699f, 0.14513f, 0.0995647f, -0.0551363f, -0.0495958f, 0.163824f, -0.085947f, -0.0243392f, 0.117949f, -0.134521f, 0.166196f, 0.0509429f, 0.25706f, -0.0207692f, 0.164627f, -0.0145047f, -0.0936169f, -0.0405598f, -0.226373f, 0.154708f, 0.149775f, -0.0661315f, 0.0637047f, 0.000559904f, -0.0251967f, 0.119608f, -0.116566f, 0.13696f, 0.0165192f, -0.0653738f, -0.168048f, -0.0435663f, -0.0482614f, -0.0684455f, 0.262893f, 0.139122f, 0.0507253f, -0.019197f, 0.15253f, 0.0377881f, 0.172847f, 0.0430609f, -0.117676f, -0.25047f, 0.125073f, -0.138584f, 0.0492754f, -0.0652756f, -0.0687829f, 0.0134573f, -0.0322914f, 0.110899f, 0.20246f, 0.0166166f, -0.0963621f, -0.0169074f, 0.038993f, 0.0947277f, 0.0597602f, -0.0654594f, -0.0823239f, 0.141231f, 0.048582f, 0.0855628f, -0.0554064f, 0.155314f, -0.0508583f, 0.152466f, -0.00921795f, -0.0244145f, 0.109958f, 0.109279f, -0.0898189f, 0.0344052f, 0.280179f, -0.000187847f, 0.096542f, -0.00960825f, -0.0598728f, -0.0488384f, -0.113324f, 0.0177872f, -0.107554f, -0.152385f, -0.0325904f, 0.0620075f, -0.054653f, 0.0723999f, 0.0912844f, -0.171343f, -0.0170383f, -0.0717847f, -0.204315f, -0.00308352f, 0.101876f, 0.0905495f, 0.153158f, -0.0326865f, 0.216074f, 0.0229635f, -0.00421942f, 0.134149f, -0.0362216f, -0.020836f, 0.246712f, -0.0760108f, 0.051493f, -0.0569578f, -0.0985157f, 0.0408854f, 0.0172469f, -0.0208151f, -0.0478927f, 0.176446f, 0.067524f, -0.0295486f, -0.0705305f, 0.14055f, -0.0934493f, -0.0289152f, -0.109976f, -0.0531538f, -0.0352469f, -0.138953f, 0.00847366f, 0.15793f, -0.120754f, 0.116751f, -0.00179294f, -0.0885453f, -0.071648f, -0.0214465f, -0.0564818f, -0.166404f, -0.0722204f, 0.123947f, -0.0449239f, -0.0977012f, 0.0653991f, 0.00418603f, -0.039605f, -0.0998606f, 0.0889734f, 0.107901f, 0.172368f, 0.0788072f, -0.0611252f, 0.0965062f, -0.0214831f, 0.121775f, -0.030336f, -0.0768877f, 0.194686f, 0.0852327f, -0.0371382f, 0.120656f, 0.0383402f, -0.0106398f, -0.00193224f, -0.0685831f, -0.0587872f, -0.155223f, 0.00347535f, 0.0504904f, -0.043576f, 0.196734f, 0.0516212f, -0.0955822f, 0.123315f, 0.0563777f, -0.0487352f, -0.0046191f, 0.040658f, -0.0302947f, -0.0142283f, 0.130751f, 0.0991744f, -0.0947231f, 0.07023f, 0.117858f, 0.167612f, -0.0881508f, 0.088703f, -0.113641f, 0.0656007f, -0.0571291f, 0.102153f, -0.0612623f, -0.0979689f, -0.186014f, 0.0946009f, 0.0854978f, -0.0356454f, 0.0293387f, 0.0127383f, 0.0514519f, 0.035269f, -0.0960327f, 0.094176f, -0.0115982f, 0.0126162f, 0.0725006f, -0.0528924f, -0.00972763f, 0.133908f, 0.0131556f, 0.0544925f, -0.101829f, 0.0746102f, 0.200817f, 0.0124175f, 0.172138f, 0.0179817f, -0.0318514f, -0.0828279f, 0.00021606f, -0.07692f, 0.0933838f, 0.0222222f, -0.0801114f, -0.23854f, 0.14722f, 0.151308f, -0.0117061f, -0.0510923f, -0.167397f, -0.155599f, 0.0811328f, -0.0120676f, 0.141565f, -0.0174224f, 0.118079f, -0.179703f, 0.0197853f, -0.00932151f, 0.00477082f, 0.0733199f, 0.00247325f, 0.0615888f, -0.192699f, -0.155982f, 0.0884528f, 0.0126568f, -0.0803826f, -0.0902197f, 0.0738576f, -0.0493416f, -0.0202323f, -0.06578f, -0.0523187f, 0.00281053f, -0.178778f, -0.0455561f, -0.160204f, -0.00179128f, -0.0901671f, -0.144792f, 0.0145452f, -0.19277f, -0.144295f, -0.0313133f, 0.183777f, 0.0528027f, -0.103689f, -0.0652729f, -0.0178131f, 0.173564f, 0.00480854f, 0.0330465f, -0.0890523f, 0.159918f, 0.216388f, 0.0309128f, -0.0913214f, 0.0827942f, -0.141023f, 0.0782225f, 0.0567147f, -0.128586f, -0.193532f, 0.103501f, 0.0620061f, 0.105252f, 0.0614519f, 0.165353f, -0.0450051f, -0.0174787f, 0.0769942f, 0.200842f, 0.0953826f, -0.0872627f, -0.0555126f, -0.0780195f, 0.127431f, 0.0755658f, -0.00833004f, -0.0417669f, -0.0294877f, -0.0792326f, -0.0602886f, -0.101826f, 0.0818209f, 0.0552798f, 0.00868979f, -0.0493813f, 0.116013f, -0.0419945f, -0.17466f, 0.0853771f, -0.109455f, 0.0524394f, -0.136931f, -0.077874f, 0.0323683f, -0.013991f, -0.00211837f, -0.232187f, -0.309728f, 0.345405f, 0.0448311f, -0.106384f, 0.0899941f, -0.0192814f, -0.0905081f, 0.0408604f, -0.119359f, -0.181243f, 0.117656f, 0.0653796f, -0.14893f, -0.011252f, 0.0693317f, -0.0146116f, 0.106735f, -0.0450265f, 0.212892f, -0.16061f, -0.0348836f, 0.0232738f, -0.0521061f, -0.0908581f, -0.0202251f, -0.0386178f, -0.0181122f, 0.163304f, -0.0979625f, 0.126104f, -0.0256149f, 0.0108737f, 0.133827f, 0.104942f, 0.0180755f, -0.152487f, 0.00910273f, -0.0297231f, 0.00922192f, 0.0911863f, -0.0553142f, 0.0117828f, 0.0595819f, 0.0920463f, -0.0165611f, 0.0151274f, 0.105794f, -0.0738713f, -0.110018f, 0.0569288f, 0.160933f, 0.107232f, -0.13679f, -0.0498304f, 0.0135619f, 0.0348981f, 0.0375369f, 0.0878897f, -0.205164f, 0.0791404f, -0.177904f, 0.103036f, 0.175165f, 0.00632306f, 0.090471f, -0.0567196f, -0.152001f, 0.0603402f, -0.0433872f, 0.0157375f, -0.25329f, -0.111728f, -0.262612f, 0.176559f, -0.024096f, -0.165123f, -0.185535f, 0.0874256f, -0.0189206f, 0.117072f, -0.109836f, 0.107112f, 0.0942944f, -0.00593396f, 0.0682451f, -0.160991f, 0.0426117f, -0.0957815f, 0.0130559f, 0.133054f, -0.0522872f, -0.00671646f, -0.0348649f, 0.0412858f, -0.119668f, -0.142983f, 0.103227f, 0.0532352f, 0.103512f, 0.0466436f, 0.0165433f, 0.0242114f, -0.0531073f, 0.0279839f, -0.130451f, -0.163161f, -0.0132361f, 0.0623844f, 0.0850539f, -0.0742729f, 0.10919f, 0.0523889f, -0.132782f, 0.0955467f, -0.117019f, 0.0181791f, 0.113022f, -0.0724596f, -0.0516608f, 0.025768f, -0.128295f, 0.152891f, 0.155509f, -0.000353995f, -0.111252f, 0.0520528f, 0.0338091f, 0.125751f, -0.223965f, -0.0497118f, 0.00518255f, -0.0662629f, 0.0638318f, -0.041817f, -0.181917f, 0.0388369f, -0.0963116f, 0.00345022f, 0.146818f, 0.338464f, -0.0429644f, -0.068534f, -0.0661875f, 0.0370417f, -0.0759064f, -0.121078f, -0.0666682f, 0.0930135f, -0.0734391f, -0.168811f, 0.0361881f, 0.0144366f, -0.00729639f, -0.111375f, 0.0716111f, 0.213256f, -0.0347521f, -0.00359449f, -0.0714898f, -0.0720332f, -0.105182f, 0.128674f, 0.212726f, -0.161703f, 0.0818337f, 0.0311456f, -0.154191f, -0.030456f, -0.0100775f, -0.00465201f, 0.199034f, -0.121235f, 0.252258f, -0.0382518f, 0.168552f, -0.045757f, -0.0144757f, 0.0407767f, -0.215292f, -0.00875678f, -0.0797149f, 0.154842f, 0.213356f, -0.074475f, 0.0171672f, -0.154487f, -0.118673f, -0.0431962f, -0.102844f, 0.0731474f, 0.0697372f, -0.0654746f, -0.173512f, -0.0266076f, -0.0268189f, -0.170237f, 0.161428f, -0.0177291f, 0.00850221f, 0.233519f, -0.0150363f, 0.00594108f, 0.200636f, 0.0138259f, 0.0120326f, -0.184066f, -0.0821071f, -0.0993503f, -0.0597328f, -0.159703f, -0.0291794f, -0.0566395f, 0.135232f, -0.0497812f, -0.0838652f, 0.116678f, 0.0974169f, -0.0753308f, 0.0162012f, -0.0547323f, -0.0606779f, -0.134338f, -0.0531952f, 0.026244f, 0.0256476f, 0.0686703f, -0.332672f, -0.0301233f, 0.223193f, -0.00346071f, 0.0287083f, -0.243838f, 0.123761f, 0.0510711f, -0.0431392f, 0.0794965f, -0.0440368f, 0.289553f, -0.0221748f, 0.160537f, 0.212746f, -0.0458376f, -0.00420751f, -0.138667f, 0.0193318f, -0.148733f, -0.0629622f, -0.130191f, 0.0801776f, 0.0382714f, -0.118047f, 0.135123f, 0.119136f, 0.0915675f, 0.00744866f, 0.0529932f, -0.0604573f, 0.257914f, 0.252977f, 0.248804f, -0.279715f, 0.119317f, -0.1738f, -0.0985547f, -0.163612f, 0.25562f, 0.0335779f, -0.137581f, -0.123719f, -0.0507407f, -0.165882f, 0.0175642f, 0.0772543f, -0.153913f, 0.119706f, -0.0597855f, -0.0159143f, 0.254697f, -0.106938f, 0.117802f, -0.238718f, -0.00165765f, -0.0359856f, -0.0533601f, 0.0575708f, 0.0446905f, -0.202722f, 0.274074f, 0.122678f, -0.122867f, -0.0471451f, -0.281067f, 0.00532344f, 0.009779f, 0.0995185f, 0.217104f, -0.0544992f, -0.0973324f, -0.149892f, -0.130884f, -0.221653f, 0.0982859f, 0.0258985f, -0.0388418f, 0.0794247f, 0.0439822f, -0.0301295f, 0.02419f, -0.0849311f, 0.101809f, -0.0668634f, -0.231176f, -0.126303f, -0.187257f, -0.134621f, -0.12057f, -0.162028f, 0.0313157f, 0.15527f, -0.119165f, -0.159599f, 0.0852558f, -0.0990038f, 0.203831f, -0.0808683f, -0.0656829f, 0.138321f, -0.0444825f, -0.0725266f, 0.489519f, -0.00571154f, 0.0500327f, -0.0679899f, -0.183683f, -0.0770027f, 0.248398f, 0.0562236f, -0.0868818f, 0.0604804f, -0.177546f, -0.173706f, -0.00119736f, -0.0827046f, 0.0834841f, 0.136403f, 0.158338f, 0.0504496f, -0.0585627f, 0.132901f, 0.0571893f, 0.00236365f, -0.0636637f, 0.172971f, 0.101863f, 0.0442502f, 0.16798f, 0.104264f, 0.0312267f, 0.0440528f, 0.0394245f, 0.135855f, 0.0242689f, 0.174535f, -0.0603796f, 0.0913049f, 0.0603968f, -0.134163f, -0.0579957f, 0.0197327f, 0.00110583f, -0.146773f, -0.0582909f, -0.0292094f, 0.107883f, 0.0701676f, -0.0533308f, 0.126288f, -0.0574386f, -0.0508893f, 0.0574697f, -0.11304f, 0.0144655f, -0.0401985f, 0.187947f, -0.0373909f, 0.026843f, 0.122561f, 0.0823694f, 0.158087f, 0.00861297f, 0.0971643f, 0.076612f, -0.151327f, 0.163049f, -0.0419579f, -0.221007f, 0.0196071f, 0.0953091f, 0.0398543f, 0.0592295f, 0.00274197f, 0.0727568f, 0.0808448f, -0.00524432f, 0.0735787f, -0.0254415f, -0.0887633f, -0.132623f, -0.0801788f, 0.111484f, -0.0547963f, -0.0727084f, 0.103031f, 0.115703f, 0.00129754f, -0.0859396f, -0.112626f, -0.100768f, 0.121587f, -0.0734616f, 0.0757818f, 0.0997219f, 0.0400328f, 0.0309096f, 0.0166622f, -0.0525351f, 0.0733003f, 0.0953378f, -0.0292267f, 0.126881f, 0.0690203f, -0.159421f, 0.16068f, 0.0546344f, -0.0603789f, -0.0631821f, -0.0614285f, 0.0102096f, -0.176528f, 0.0395784f, -0.136684f, -0.0975994f, 0.119997f, 0.0582483f, 0.0713014f, -0.0720423f, 0.17256f, -0.0122858f, -0.113599f, 0.186483f, 0.0352595f, -0.148948f, 0.0295351f, 0.138287f, 0.0520619f, -0.0777456f, 0.0107341f, 0.14593f, 0.0391354f, -0.108458f, 0.085686f, -0.00330915f, 0.0928172f, 0.0320911f, -0.1467f, -0.186319f, -0.0978134f, 0.00620222f, 0.0960757f, -0.0573571f, 0.00768706f, 0.14237f, 0.0345349f, 0.106683f, 0.0475078f, -0.185946f, 0.0228862f, 0.237368f, -0.151304f, 0.00388445f, 0.0862244f, -0.0426526f, 0.00348171f, -0.13746f, 0.117103f, 0.111695f, 0.0965904f, 0.126457f, 0.0611055f, 0.101134f, 0.0135353f, 0.0233084f, 0.201795f, 0.0418548f, 0.134805f, -0.00195975f, 0.0886445f, 0.0777913f, 0.0126156f, -0.0285309f, 0.11756f, 0.0172034f, 0.000817241f, 0.04483f, 0.0286797f, 0.162608f, 0.0940664f, -0.136731f, -0.115562f, -0.0279928f, 0.14167f, -0.0310712f, 0.120212f, -0.136546f, 0.104546f, -0.0288248f, 0.00702337f, 0.14612f, -0.00904554f, -0.00212968f, 0.237393f, 0.172319f, 0.0507221f, 0.153592f, 0.135152f, -0.162597f, 0.0417858f, 0.210454f, 0.0238746f, -0.0613036f, 0.0654213f, -0.141558f, 0.0673956f, -0.0653747f, 0.0319719f, -0.0224161f, -0.0169759f, -0.00951443f, 0.0711823f, 0.142074f, -0.0859558f, -0.0953338f, 0.0956342f, 0.101989f, 0.0455122f, -0.0957158f, -0.0623742f, 0.0725999f, 0.134391f, 0.15381f, 0.00839516f, 0.108164f, 0.121343f, -0.0298015f, 0.0294904f, -0.172952f, 0.0379865f, 0.0207834f, -0.0510065f, 0.0285273f, 0.117232f, -0.0892882f, -0.102188f, 0.028011f, 0.0708303f, 0.0921998f, -0.0688256f, 0.0523197f, 0.0447205f, -0.0891711f, -0.0652815f, -0.150365f, 0.212263f, -0.0815829f, 0.182357f, -0.219068f, 0.00705535f, -0.0975863f, -0.269149f, 0.074453f, 0.0991326f, -0.118495f, 0.152596f, 0.109471f, -0.115003f, 0.0877081f, -0.00330222f, 0.0113935f, 0.183457f, 0.0141703f, -0.11064f, 0.17877f, 0.0400426f, -0.170107f, -0.203041f, 0.186693f, -0.122585f, 0.0339954f, 0.0988761f, -0.225329f, -0.0263248f, 0.0189005f, 0.101492f, 0.100383f, 0.147327f, -0.0852217f, 0.0495056f, 0.177459f, -0.00465811f, -0.099964f, 0.20818f, -0.0609657f, -0.0416738f, 0.138033f, 0.194685f, 0.221836f, 0.424375f, -0.0895753f, 0.0184692f, -0.108276f, 0.156568f, 0.0317216f, -0.288048f, -0.13503f, -0.171531f, -0.0551392f, 0.190882f, -0.153561f, 0.221703f, -0.24099f, 0.162754f, 0.0144108f, -0.49505f, 0.187162f, -0.0105737f, 0.137419f, -0.07874f, -0.318322f, -0.0654144f, -0.055572f, 0.333105f, -0.0440719f, 0.129852f, 0.0782591f, 0.00128654f, 0.0967504f, 0.0528817f, 0.0693775f, -0.0654933f, -0.139259f, 0.0547673f, -0.21278f, -0.097957f, 0.0609125f, 0.212334f, -0.152412f, 0.125335f, 0.0375935f, 0.12862f, 0.0179121f, -0.0768172f, 0.0320564f, -0.131159f, -0.275701f, 0.125574f, 0.207695f, 0.0738491f, 0.262343f, -0.41411f, 0.221257f, 0.152367f, -0.1044f, 0.0578982f, -0.276603f, -0.181091f, -0.0787497f, 0.0580738f, 0.124505f, -0.177091f, 0.145325f, 0.285746f, 0.0250852f, 0.0370967f, -0.0349562f, -0.178497f, -0.0347079f, -0.165777f, 0.0124602f, 0.154548f, -0.107118f, -0.0622718f, 0.176413f, -0.16223f, -0.0977408f, -0.234098f, -0.0697303f, 0.0764855f, 0.0975888f, 0.288321f, 0.0858775f, 0.484755f, 0.0572849f, -0.239652f, 0.0827384f, -0.0043071f, 0.290225f, -0.0748236f, 1.47577e-05f, 0.0595283f, 0.0222855f, -0.151439f, 0.0889441f, -0.00952119f, 0.126379f, -0.125057f, -0.138174f, 0.172964f, 0.0804818f, 0.0206822f, -0.00109612f, 0.176157f, 0.0563403f, -0.101061f, -0.130304f, -0.158993f, -0.0925129f, 0.154996f, 0.013719f, 0.21304f, 0.156174f, -0.213376f, -0.0807323f, -0.0450568f, -0.0772976f, -0.120762f, 0.07343f, -0.0738986f, -0.146137f, -0.0612222f, 0.242474f, 0.198031f, -0.169416f, -0.109553f, 0.218558f, 0.0367137f, -0.390708f, -0.0386297f, 0.112127f, 0.0392065f, 0.0276977f, -0.201915f, -0.156829f, 0.204324f, -0.0497256f, 0.242451f, 0.0241002f, -0.162964f, 0.0922634f, -0.0156666f, 0.00507227f, -0.147365f, 0.0390926f, 0.17044f, -0.0813709f, 0.0477702f, 0.0386347f, -0.021897f, -0.0176177f, 0.0657806f, -0.112498f, 0.109609f, 0.0957915f, -0.0109879f, 0.164384f, 0.214947f, -0.055599f, 0.0781036f, -0.178445f, -0.303206f, -0.257129f, -0.167497f, -0.0941531f, 0.147486f, -0.0913307f, 0.0874902f, -0.0182143f, 0.0388826f, -0.18919f, -0.214159f, 0.0571412f, 0.242728f, 0.14186f, 0.200348f, -0.0194939f, -0.0436774f, 0.0197615f, -0.000471134f, -0.0476345f, -0.166084f, 0.164118f, -0.132394f, -0.112257f, 0.299995f, 0.00520167f, 0.0113853f, 0.0519902f, 0.0539062f, -0.0116805f, -0.0759435f, -0.173971f, 0.154295f, 0.0616845f, 0.310122f, 0.0957841f, 0.162959f, -0.18315f, -0.016544f, -0.138187f, 0.0299938f, 0.0500965f, -0.126778f, 0.142468f, 0.120607f, -0.0582122f, -0.0225681f, -0.0957558f, -0.0194467f, -0.0617891f, -0.150422f, -0.0148348f, -0.0904553f, -0.179889f, 0.0577821f, 0.0729049f, 0.0535151f, 0.0547095f, 0.106214f, 0.0474893f, 0.0397777f, 0.116643f, -0.35672f, 0.0138072f, -0.0588567f, 0.225807f, 0.0750985f, -0.0591806f, 0.0233622f, -0.27121f, -0.121039f, -0.0923277f, 0.186478f, 0.0649834f, 0.21277f, -0.21579f, -0.0479577f, 0.0204054f, -0.0218905f, 0.0549973f, 0.238853f, -0.130437f, 0.0600729f, 0.121489f, -0.0253217f, -0.174716f, 0.0244311f, 0.0827599f, -0.0232146f, 0.208709f, -0.161963f, 0.0730601f, -0.0529765f, -0.154982f, 0.128572f, -0.0700984f, 0.0446258f, -0.101642f, -0.00759225f, 0.0510139f, 0.140899f, -0.037873f, -0.158155f, 0.143217f, 0.123863f, -0.0416371f, -0.0288139f, 0.0502326f, -0.202844f, 0.0985479f, 0.197043f, 0.131212f, -0.197074f, -0.236334f, 0.139502f, 0.0096902f, 0.188873f, -0.103596f, -0.429871f, 0.230821f, 0.0851951f, -0.208567f, -0.0134382f, -0.133532f, -0.0326145f, 0.0794587f, 0.136794f, -0.0734311f, -0.112085f, 0.159256f, -0.20904f, -0.00763656f, -0.100027f, -0.0104604f, -0.00359472f, -0.165078f, 0.0717549f, 0.227631f, -0.116772f, -0.105316f, 0.225128f, -0.111907f, -0.190879f, 0.019128f, -0.244279f, -0.069725f, -0.0207296f, -0.0611775f, 0.0882059f, -0.0165773f, 0.0296595f, 0.126516f, 0.119613f, -0.386976f, -0.180438f, -0.0565855f, -0.0954236f, 0.0978751f, -0.0798413f, 0.237095f, -0.029375f, -0.182663f, 0.121789f, 0.0696042f, -0.0140902f, 0.010195f, 0.0341683f, -0.0680707f, -0.0268138f, 0.0833372f, -0.108778f, -0.0461285f, -0.268535f, -0.100277f, 0.193169f, -0.01033f, 0.00335695f, 0.202478f, -0.148106f, 0.116475f, -0.0433723f, 0.161588f, -0.286558f, -0.0559418f, -0.114339f, 0.031851f, 0.0329491f, 0.0207029f, 0.214766f, 0.0154882f, 0.282894f, 0.179387f, 0.00468551f, 0.0226458f, -0.0245399f, 0.215885f, 0.138518f, 0.0478396f, 0.135869f, -0.110615f, 0.253102f, -0.0458856f, -0.0102112f, -0.0265544f, 0.163538f, -0.298691f, -0.00141675f, 0.0206831f, 0.050501f, 0.0269119f, 0.00213103f, 0.0880634f, 0.108115f, 0.0813049f, 0.0249472f, 0.0845536f, 0.151253f, -0.0093627f, -0.156651f, -0.217065f, -0.0549168f, 0.0443194f, 0.0984721f, -0.0248396f, -0.0450432f, 0.0024248f, -0.0307102f, -0.0617788f, -0.140048f, -0.0906831f, 0.196154f, -0.0430776f, -0.126858f, -0.172996f, -0.127501f, -0.0448813f, 0.00440593f, -0.184112f, -0.0499811f, 0.176889f, 0.139948f, 0.169646f, -0.174555f, -0.0862187f, 0.34887f, -0.0954086f, -0.10838f, 0.0858217f, -0.0424367f, 0.27298f, 0.122897f, 0.168806f, 0.0797313f, -0.305003f, 0.0789385f, 0.0254641f, 0.0163941f, -0.0894078f, 0.0167479f, 0.0795204f, -0.248702f, -0.032162f, -0.124999f, -0.0932093f, 0.00926347f, 0.201297f, -0.241159f, -0.153613f, 0.234818f, 0.052746f, 0.0423351f, 0.0336719f, 0.0817587f, -0.0333612f, -0.0148536f, 0.176459f, -0.00252853f, 0.00956473f, -0.249642f, -0.173425f, 0.0202109f, -0.030508f, 0.244344f, -0.0789476f, -0.122607f, -0.0151618f, 0.190677f, -0.15038f, -0.116125f, 0.147868f, -0.0527895f, -0.0116561f, 0.0714463f, 0.0824774f, -0.166951f, 0.0442947f, 0.110951f, -0.0634122f, 0.023021f, -0.13139f, -0.265658f, 0.0198955f, 0.0992545f, -0.130218f, -0.149829f, -0.039502f, -0.0122195f, 0.135409f, -0.001007f, -0.0601958f, -0.0121931f, -0.0542658f, -0.00387722f, 0.0983305f, 0.119291f, 0.044553f, -0.00711063f, -0.0385212f, -0.00487027f, 0.270308f, -0.0513598f, 0.330673f, -0.00842988f, -0.0445498f, 0.121173f, -0.18543f, -0.0130361f, -0.2647f, 0.0489481f, 0.227014f, 0.520253f, -0.216097f, -0.0427511f, -0.160583f, -0.141838f, 0.0495591f, 0.0644528f, 0.0758425f, 0.0611663f, 0.038771f, 0.101168f, -0.262854f, -0.100284f, -0.0280927f, 0.241427f, -0.00251841f, -0.10858f, 0.00230633f, -0.0448797f, 0.121959f, 0.112479f, -0.119423f, 0.0113824f, 0.0368277f, -0.0659401f, -0.0536469f, 0.0343653f, -0.0707258f, 0.103139f, 0.0238473f, 0.0913185f, -0.084746f, -0.173527f, -0.0771703f, 0.0414348f, -0.0129537f, 0.131132f, 0.114851f, 0.0637816f, -0.0109066f, -0.0783052f, -0.226274f, -0.0723113f, -0.0958495f, -0.00401836f, -0.142519f, 0.0184663f, 0.119512f, -0.0544636f, 0.0575436f, -0.0303597f, 0.0677966f, -0.0697716f, -0.0895811f, 0.211579f, 0.0802831f, 0.1103f, 0.148629f, 0.117297f, 0.0454421f, -0.0940951f, 0.0160388f, 0.111393f, 0.08514f, -0.0132118f, 0.18299f, 0.0440409f, 0.0267647f, 0.195759f, -0.109323f, -0.148953f, 0.0959294f, -0.0779885f, 0.0839708f, 0.16711f, 0.0206286f, -0.0503622f, -0.113588f, 0.165816f, 0.107063f, -0.0065165f, 0.0634651f, 0.171269f, -0.110695f, -0.0343391f, 0.0408703f, 0.146522f, -0.112903f, 0.0695562f, -0.010108f, -0.0480704f, -0.0585185f, -0.077678f, 0.0559472f, -0.0257062f, -0.159527f, -0.140566f, -0.110362f, -0.0841367f, 0.0154206f, 0.147483f, -0.0643437f, -0.131529f, 0.0829677f, -0.0571218f, -0.12414f, -0.104809f, 0.0353599f, 0.145546f, -0.0890225f, -0.026905f, 0.146578f, 0.142397f, -0.154857f, 0.175541f, -0.0183266f, 0.154895f, 0.0510473f, 0.216699f, -0.0685163f, -0.177876f, -0.243571f, -0.112769f, -0.00307812f, -0.200023f, 0.0904664f, 0.0183721f, -0.0354406f, -0.168425f, -0.190687f, 0.00803632f, 0.0880693f, -0.077391f, 0.17145f, 0.00621407f, -0.0653566f, -0.0869194f, 0.0138431f, 0.0570045f, -0.0482376f, 0.0427207f, -0.0903798f, -0.114886f, -0.0280987f, -0.00908977f, 0.0190559f, -0.0129739f, -0.0608427f, 0.0736123f, -0.0773148f, 0.0436152f, 0.0591957f, -0.232679f, 0.0423603f, -0.0471689f, -0.0713657f, -0.189851f, -0.0621817f, 0.143499f, 0.153512f, -0.288096f, 0.00741586f, 0.150125f, -0.102815f, 0.0350665f, 0.167966f, 0.0179264f, -0.0887211f, -0.146032f, -0.13057f, -0.0796259f, 0.016219f, 0.0605474f, 0.246394f, 0.141458f, -0.122733f, 0.155112f, -0.0553712f, 0.0088203f, 0.125985f, 0.110821f, -0.0798856f, -0.205369f, 0.130883f, 0.0350427f, 0.234436f, 0.0748238f, 0.132789f, -0.175096f, 0.120036f, -0.0272776f, -0.01276f, -0.0770464f, 0.146057f, -0.135894f, 0.0164688f, -0.014702f, -0.0905133f, 0.0699232f, 0.116481f, 0.0552262f, -0.0433167f, -0.0353f, 0.15966f, 0.11097f, 0.0793942f, 0.0571226f, -0.0980642f, -0.16584f, -0.0914967f, -0.187816f, 0.109635f, -0.00563502f, -0.0388396f, -0.0953157f, 0.0474831f, -0.123219f, 0.0598414f, -0.0735715f, -0.0899469f, -0.0139348f, 0.107397f, -0.00301801f, 0.0397474f, 0.146543f, 0.0389965f, -0.0441507f, -0.0540466f, 0.193291f, -0.0701063f, 0.013162f, 0.219738f, 0.0102075f, 0.0409893f, -0.0284312f, -0.00516775f, 0.145276f, -0.128018f, 0.177054f, 0.0433696f, -0.0600195f, 0.12539f, -0.129025f, 0.120904f, -0.118788f, -0.0517868f, 0.0961948f, -0.0947767f, 0.0341401f, -0.0165542f, 0.104039f, 0.00802208f, 0.0371226f, 0.00890405f, -0.0250663f, 0.050569f, 0.0209881f, -0.0157879f, -0.0790785f, -0.0205603f, -0.0940727f, -0.0955924f, -0.101547f, 0.0509478f, 0.0987037f, 0.0275267f, 0.241332f, 0.0172374f, -0.0518404f, -0.107197f, 0.212593f, -0.0697823f, -0.275643f, -0.0240426f, -0.0323742f, -0.328477f, 0.0266716f, -0.0776968f, 0.030147f, -0.00418251f, -0.00895831f, 0.0808986f, -0.00585299f, -0.0806064f, -0.0501074f, 0.081064f, -0.0459442f, 0.0760648f, -0.235143f, -0.105705f, -0.265626f, 0.0392247f, -0.0368507f, -0.0538071f, 0.0867595f, -0.0800908f, -0.00178848f, -0.39061f, 0.103394f, 0.0138351f, -0.0146539f, 0.0793725f, -0.0551355f, 0.0141349f, -0.215841f, 0.0868501f, -0.01292f, -0.195312f, 0.0757224f, 0.198477f, 0.113096f, -0.0548075f, -0.0660866f, 0.133297f, -0.00716783f, -0.224925f, -0.0801827f, 0.0938539f, 0.0197513f, -0.117024f, -0.0558256f, 0.102637f, 0.0169716f, -0.228746f, 0.238439f, 0.113216f, 0.0589094f, -0.0144283f, -0.12433f, -0.160407f, -0.0218919f, 0.107164f, -0.09397f, -0.182498f, 0.118059f, 0.0765331f, 0.0664539f, 0.0166077f, -0.115602f, 0.0675269f, -0.0902142f, -0.0747229f, -0.012021f, -0.187608f, -0.0162107f, -0.0493444f, -0.0396926f, 0.0577671f, 0.141793f, -0.0791276f, 0.0993539f, -0.0754238f, 0.130713f, -0.128933f, 0.21104f, 0.0979043f, -0.0672056f, -0.0425092f, -0.397311f, 0.0802564f, -0.0558671f, -0.0454318f, -0.164204f, -0.178547f, 0.0782528f, -0.134803f, -0.0577554f, 0.0456745f, -0.160949f, 0.0490087f, -0.117772f, 0.0422498f, -0.0553135f, 0.0246356f, 0.0390443f, -0.00709575f, -0.0474514f, -0.109501f, -0.00972193f, 0.107316f, -0.139381f, 0.0522701f, 0.037948f, -0.145298f, -0.156474f, -0.00239396f, 0.186058f, -0.0410482f, 0.142192f, -0.119257f, 0.135382f, -0.212894f, 0.19723f, 0.236883f, -0.182574f, -0.206153f, -0.182486f, 0.0566347f, 0.03855f, -0.1422f, -0.0329044f, 0.0490794f, 0.116677f, -0.198081f, 0.145052f, -0.199604f, 0.0553338f, -0.083418f, 0.0768482f, -0.168087f, 0.0287285f, -0.286941f, 0.168298f, 0.222459f, -0.0233695f, 0.0245619f, 0.137642f, -0.00695435f, 0.0728837f, 0.159244f, 0.113075f, -0.0518057f, -0.0530726f, -0.00264398f, -0.0206714f, -0.0421545f, -0.0484196f, 0.0700779f, 0.00683736f, 0.227881f, -0.129215f, -0.130981f, 0.0668337f, 0.089876f, 0.0797164f, 0.0915429f, -0.147966f, -0.169214f, -0.0376597f, 0.116289f, -0.167075f, 0.173388f, -0.0616686f, 0.0318406f, 0.034556f, -0.179023f, 0.0720001f, -0.149251f, -0.105382f, -0.184299f, 0.144869f, -0.090899f, -0.206678f, 0.0083035f, 0.148816f, -0.0955665f, -0.0958188f, 0.111019f, -0.084388f, 0.14247f, 0.0447404f, 0.174004f, 0.0267225f, -0.107916f, -0.150245f, 0.0450711f, -0.209073f, 0.0133984f, -0.194539f, 0.126188f, -0.125595f, 0.0484737f, -0.070106f, -0.143177f, 0.00771342f, 0.0569312f, -0.1027f, -0.130294f, -0.0150075f, -0.0027453f, -0.0827917f, -0.00962557f, 0.0120229f, -0.179158f, -0.0994828f, -0.0602054f, 0.067592f, 0.113039f, 0.0167983f, -0.125386f, 0.180495f, -0.256701f, -0.280713f, -0.0905123f, 0.107744f, -0.060599f, -0.0259913f, -0.13534f, 0.108186f, -0.0507834f, 0.0704256f, -0.229746f, 0.0974969f, -0.117642f, -0.103326f, 0.207884f, -0.00578313f, -0.0312299f, -0.00373573f, 0.0857752f, 0.10418f, -0.0301193f, 0.117625f, -0.152642f, -0.0304592f, 0.0600346f, -0.0391284f, 0.100502f, 0.0319944f, -0.00778031f, 0.215178f, -0.069261f, -0.158637f, 0.101995f, 0.0239997f, -0.0747397f, -0.054405f, -0.0615661f, 0.0811636f, 0.049476f, 0.00496773f, 0.0310935f, -0.0157894f, 0.0114213f, 0.0580788f, 0.153799f, -0.016337f, -0.0674695f, -0.0137552f, -0.0142839f, -0.00252348f, -0.0465245f, 0.0926942f, -0.00618393f, 0.138392f, 0.00284082f, -0.0342887f, -0.0129748f, 0.0771051f, 0.0369055f, -0.0298221f, 0.0836679f, 0.0409812f, 0.0840059f, -0.025062f, 0.0212446f, 0.134192f, 0.0737542f, -0.00347768f, 0.0298407f, 0.0118568f, 0.0834436f, -0.0707806f, 0.094164f, -0.0345554f, 0.13431f, -0.120821f, 0.136343f, 0.0156678f, 0.0852716f, 0.0742763f, 0.0509912f, 0.0604953f, -0.159519f, 0.0645076f, -0.170364f, 0.0469085f, 0.0480519f, 0.0462654f, -0.0601728f, -0.0568847f, -0.020761f, -0.0247f, 0.115021f, -0.0427603f, 0.048218f, 0.0429233f, -0.154205f, 0.0434957f, 0.0161122f, 0.0637464f, -0.0239614f, 0.0425298f, -0.0348391f, -0.112623f, -0.0834197f, -0.0146188f, 0.135989f, 0.158664f, -0.0391615f, 0.11386f, 0.0113014f, -0.0606743f, 0.119872f, 0.0231685f, 0.00079139f, 0.0961999f, -0.0851895f, 0.0321709f, -0.00552278f, 0.146383f, 0.0186987f, -0.0738163f, 0.0829293f, 0.0587674f, 0.0424651f, 0.0222964f, -0.0704108f, -0.013072f, -0.039171f, -0.0917565f, 0.00273152f, 0.123364f, -0.105254f, 0.030716f, -0.00976383f, -0.0384507f, 0.172744f, -0.0691898f, -0.0917965f, 0.0109084f, -0.00381184f, -0.128226f, -0.127919f, -0.0243904f, -0.0818585f, -0.0279835f, -0.0999354f, -0.003436f, 0.0100593f, -0.145951f, -0.0583036f, -0.0654446f, -0.157344f, 0.0260907f, 0.0350896f, 0.0688078f, 0.00574801f, -0.113889f, -0.0739603f, 0.108696f, 0.113488f, -0.230325f, -0.038189f, -0.116926f, 0.0949232f, -0.108005f, 0.111544f, -0.139886f, -0.164564f, -0.240808f, 0.0332524f, 0.0391971f, -0.0585689f, 0.0540114f, -0.0279311f, -0.0619062f, 0.0698883f, 0.267085f, 0.133718f, 0.0924058f, -0.11763f, 0.043308f, -0.00675514f, -0.151309f, 0.0498743f, 0.210308f, 0.132843f, 0.0725838f, 0.0155762f, 0.0187351f, -0.117261f, 0.0599181f, -0.0246965f, -0.139388f, -0.0935978f, -0.25321f, -0.191989f, 0.022199f, 0.133694f, 0.125896f, -0.0466208f, -0.00641339f, 0.0964807f, 0.116409f, 0.148963f, -0.164055f, -0.0434881f, 0.15306f, 0.0351286f, 0.205052f, -0.0710544f, -0.145579f, -0.0191165f, -0.052031f, 0.0328251f, -0.125279f, 0.125633f, -0.251311f, 0.00969774f, -0.0934658f, 0.136824f, -0.143433f, 0.0952611f, 0.0283795f, 0.0604143f, 0.0793089f, 0.0862906f, 0.155738f, 0.0508447f, 0.00178625f, -0.0632502f, 0.032171f, -0.0165934f, -0.140582f, 0.128164f, -0.1882f, 0.162144f, 0.119548f, -0.0833659f, 0.0663798f, -0.020924f, -0.196801f, -0.0581407f, 0.0648663f, 0.123539f, 0.0794578f, 0.287242f, 0.160099f, -0.0882144f, 0.133913f, -0.0954356f, 0.0101227f, 0.131304f, 0.111991f, -0.0680894f, 0.0645288f, -0.197997f, -0.191314f, -0.227874f, 0.145782f, 0.125436f, -0.10892f, 0.0421624f, 0.0613586f, -0.132804f, -0.0372636f, 0.00297676f, -0.0418382f, -0.0278833f, -0.157322f, 0.185198f, -0.0922529f, 0.0935562f, -0.159188f, -0.00639518f, -0.166078f, 0.0815744f, 0.240941f, 0.0300026f, 0.179812f, 0.170996f, 0.00129251f, -0.161892f, -0.109331f, 0.0661886f, -0.0730665f, 0.132431f, 0.000143854f, -0.103883f, 0.0399482f, 0.0795332f, -0.0532878f, 0.0211793f, 0.157325f, 0.233304f, 0.223282f, -0.0542172f, 0.202048f, 0.205588f, -0.0170343f, -0.00245867f, -0.0919788f, 0.0771592f, 0.0232391f, 0.148015f, 0.0223977f, -0.0191506f, -0.00421908f, -0.11477f, 0.0654477f, -0.0702446f, 0.154083f, 0.0748916f, 0.179682f, -0.120198f, 0.154599f, -0.0373423f, -0.00442495f, 0.0217346f, 0.263349f, 0.225092f, 0.0518569f, 0.129615f, 0.0508979f, -0.0328167f, -0.0378185f, 0.0368292f, 0.137134f, 0.172677f, -0.05047f, 0.0706234f, 0.114392f, -0.294545f, 0.143127f, -0.0620705f, -0.00960778f, -0.0452862f, 0.0464493f, 0.170097f, 0.111023f, -0.0776531f, -0.101536f, 0.0310871f, 0.0593884f, 0.294386f, 0.0428315f, -0.0876431f, -0.172218f, -0.0954396f, -0.0663719f, -0.0425279f, -0.0671961f, 0.0128747f, -0.0225304f, 0.133892f, -0.123385f, -0.00634607f, 0.022322f, 0.0522684f, 0.0324632f, 0.195785f, -0.0410618f, 0.0626908f, 0.080092f, 0.0041054f, -0.0347467f, 0.0144475f, -0.0406885f, 0.164201f, -0.0818706f, 0.138958f, 0.109513f, 0.028577f, -0.00213489f, -0.0665736f, -0.0323176f, -0.146175f, -0.206958f, 0.0134298f, -0.170139f, 0.0240025f, 0.161021f, -0.103197f, -0.0499954f, -0.0756566f, 0.0679595f, -0.0282847f, 0.1445f, 0.0458305f, -0.00764089f, -0.00567145f, 0.0970373f, -0.0466526f, 0.0664879f, -0.0558295f, -0.0598904f, -0.124885f, 0.192666f, -0.17042f, 0.0456019f, 0.251791f, -0.0719723f, 0.0853736f, 0.0127528f, 0.161802f, 0.103828f, 0.110849f, -0.122136f, -0.172565f, 0.0658274f, -0.0606698f, 0.053387f, 0.078209f, -0.0224275f, -0.0912443f, -0.0937075f, -0.117642f, -0.0830564f, 0.172674f, 0.0119872f, -0.132221f, -0.0358988f, 0.0700392f, 0.0554515f, 0.0681996f, -0.228672f, -0.0421557f, 0.159425f, -0.0260735f, 0.0160632f, 0.0199489f, -0.0581315f, 0.200894f, 0.0449308f, -0.0420687f, 0.0823441f, 0.171466f, 0.0429935f, 0.0481537f, 0.0229262f, -0.0215312f, -0.177009f, 0.079229f, -0.270449f, -0.0817672f, -0.0580715f, 0.0146535f, 0.0137305f, -0.0222516f, 0.244542f, -0.116753f, 0.0390427f, 0.166774f, 0.00193801f, -0.0381751f, -0.223266f, -0.0841593f, 0.00140668f, -0.0763647f, -0.163144f, -0.117025f, 0.138254f, 0.0410861f, -0.0321861f, -0.167308f, -0.0140968f, 0.164782f, 0.0401425f, -0.0966659f, -0.014321f, 0.190609f, -0.05125f, -0.00107003f, 0.132158f, 0.114619f, -0.163659f, -0.051398f, 0.0578668f, -0.0280483f, 0.0913832f, -0.0322546f, -0.167688f, -0.0197469f, -0.0709924f, 0.110314f, -0.144244f, -0.066628f, 0.123472f, -0.100321f, -0.0495299f, 0.0328897f, -0.215277f, 0.0751596f, -0.141412f, 0.131725f, 0.195188f, 0.0579028f, 0.119292f, -0.176544f, 0.0306777f, -0.169684f, 0.115512f, -0.220173f, -0.121326f, -0.177504f, -0.0451942f, 0.112964f, -0.149143f, 0.163985f, -0.0771996f, -0.0831985f, 0.0234543f, 0.0931068f, -0.192258f, -0.0740025f, 0.0169122f, 0.166637f, 0.142893f, 0.107894f, 0.188362f, -0.108329f, -0.0417124f, -0.171453f, 0.0927574f, -0.0649355f, -0.116485f, -0.0741738f, -0.0635658f, 0.0949112f, 0.0390447f, 0.0365759f, 0.269494f, -0.111967f, 0.121723f, 0.0912675f, -0.099472f, 0.00290869f, -0.0209538f, 0.0383455f, -0.0826087f, -0.0493413f, 0.214105f, -0.219744f, 0.194212f, -0.0878031f, -0.242497f, -0.0754097f, -0.10379f, 0.161975f, -0.021715f, 0.0908913f, 0.0783394f, 0.0284685f, -0.0233056f, -0.16653f, -0.0798827f, 0.0952493f, -0.039596f, 0.079009f, -0.142244f, -0.0259928f, 0.0718039f, -0.072307f, 0.0277263f, -0.0368371f, 0.248232f, 0.280655f, 0.215657f, 0.0428301f, 0.182287f, -0.00369438f, -0.169392f, -0.0756608f, -0.124834f, 0.0471105f, 0.060271f, 0.00706641f, 0.12547f, -0.134699f, 0.0930628f, 0.103125f, -0.0204287f, -0.0592601f, -0.0975175f, -0.0441973f, 0.0264767f, 0.152965f, 0.205955f, 0.345712f, 0.207752f, -0.123093f, -0.0231133f, 0.0336607f, 0.0490147f, 0.0467231f, 0.0884587f, 0.176018f, 0.00407096f, 0.0961471f, -0.17295f, -0.035186f, -0.0593087f, -0.269695f, -0.128279f, 0.131324f, 0.106972f, 0.180512f, 0.029074f, -0.047152f, 0.118214f, 0.0291777f, 0.243798f, -0.0284485f, 0.0121636f, 0.244677f, 0.192603f, -0.120342f, 0.0134f, -0.161972f, 0.0113305f, 0.0274637f, -0.325948f, -0.0194316f, -0.0995912f, -0.00339024f, 0.131881f, 0.137493f, 0.110672f, -0.0869784f, 0.000178324f, -0.221507f, -0.0788315f, 0.0188074f, -0.259461f, -0.281497f, 0.156555f, 0.160907f, -0.144281f, -0.0693261f, -0.144554f, -0.032955f, -0.0636677f, -0.144161f, 0.169051f, -0.179344f, 0.145114f, 0.00159738f, 0.0441359f, -0.0286218f, -0.15871f, -0.0123621f, -0.128742f, -0.0662737f, 0.121717f, -0.0747465f, -0.0369627f, -0.0889911f, -0.0357511f, 0.0603326f, -0.0421504f, 0.10876f, 0.0947822f, 0.0263575f, -0.0693639f, -0.0554551f, 0.132096f, 0.196889f, 0.147353f, -0.246946f, -0.0939674f, 0.0312953f, -0.15942f, 0.0678115f, 0.157938f, 0.0879309f, 0.0180176f, 0.0188778f, -0.0255497f, 0.0309129f, 0.0323001f, -0.186373f, 0.169083f, -0.245165f, -0.117851f, 0.0801849f, 0.0833856f, 0.137196f, -0.232505f, -0.193311f, -0.115355f, 0.155811f, -0.229427f, -0.134503f, 0.240752f, -0.0886083f, -0.103817f, -0.167507f, 0.165827f, -0.124229f, -0.211626f, 0.0389593f, -0.0761757f, 0.237407f, -0.00369122f, -0.119265f, -0.138466f, -0.0338166f, -0.131763f, 0.281289f, -0.048298f, -0.0310526f, 0.0753407f, -0.184325f, 0.164005f, -0.0313026f, 0.0306484f, 0.17318f, 0.0350157f, 0.136879f, -0.0933958f, 0.0252765f, 0.0350546f, 0.05654f, 0.0903121f, -0.108448f, -0.0462192f, -0.102339f, 0.210927f, 0.159145f, -0.164042f, -0.0711106f, -0.152632f, -0.0137789f, -0.0617923f, -0.0102721f, -0.29437f, -0.178182f, 0.0296156f, 0.00326917f, 0.203017f, -0.0305066f, -0.178815f, 0.0331449f, 0.163459f, 0.0858564f, -0.0588429f, 0.216828f, -0.0488714f, -0.0120967f, 0.251371f, 0.248444f, 0.103601f, 0.0198821f, -0.0236522f, -0.134655f, 0.0714701f, -0.0209581f, -0.00407658f, -0.0198092f, -0.0827366f, -0.206251f, 0.00349078f, 0.0740798f, 0.235056f, -0.0518591f, -0.162877f, -0.0922697f, -0.0697755f, -0.0436213f, -0.0674972f, 0.151264f, 0.0765576f, -0.13066f, 0.129531f, 0.023042f, 0.0716613f, -0.256735f, 0.0409607f, 0.0369706f, 0.147014f, 0.0510931f, -0.211665f, -0.0247448f, -0.0478965f, 0.0444665f, -0.0786675f, -0.0736752f, 0.255297f, -0.0162502f, 0.115832f, 0.131343f, -0.133753f, 0.314029f, -0.0141577f, 0.238076f, 0.0890825f, -0.190354f, 0.0446148f, -0.214186f, 0.0548072f, -0.237245f, -0.125302f, 0.0628519f, 0.100862f, -0.0317515f, 0.0367534f, -0.0264744f, 0.0316619f, -0.0308713f, 0.0310784f, 0.21918f, -0.182017f, 0.0348467f, -0.177386f, 0.0607561f, 0.0729575f, 0.254536f, -0.0584641f, 0.0223532f, -0.198869f, 0.132616f, -0.0757746f, 0.0613446f, -0.0590169f, 0.0589564f, 0.0789189f, 0.0430626f, 0.0991826f, -0.0590882f, -0.0677024f, -0.0458633f, -0.127018f, -0.0123597f, 0.0589193f, 0.225962f, 0.0462782f, 0.090716f, 0.0845587f, -0.00738469f, -0.129093f, -0.0964556f, -0.0722376f, -0.162565f, 0.045918f, 0.0868918f, -0.158568f, -0.0807743f, -0.246337f, 0.00637666f, 0.0570529f, -0.0506912f, 0.0654846f, -0.172809f, -0.0718514f, -0.0284821f, 0.0291066f, 0.031412f, 0.0893643f, -0.108599f, -0.179059f, -0.0100167f, -0.154121f, -0.0658236f, 0.0142718f, 0.015052f, -0.0567638f, -0.176187f, 0.0275969f, 0.0517931f, -0.0123195f, 0.139964f, -0.199289f, 0.118214f, -0.0485922f, 0.190298f, -0.0550839f, 0.0963122f, -0.0598033f, 0.167242f, 0.0488858f, -0.0598131f, 0.127782f, -0.0633629f, 0.00310902f, 0.0280182f, -0.0560925f, 0.0448761f, -0.0938947f, 0.158903f, 0.00462519f, -0.235795f, -0.152444f, 0.0858606f, 0.157482f, 0.0468173f, -0.0863169f, -0.227139f, -0.173485f, 0.0862225f, -0.0130372f, -0.0423532f, 0.059126f, -0.129918f, 0.137439f, -0.0421637f, 0.138219f, 0.0355153f, -0.0992416f, -0.0164693f, -0.141356f, -0.00762397f, 0.0952329f, 0.0916064f, 0.042302f, 0.0270591f, -0.0257065f, -0.0895824f, 0.0737204f, 0.0198324f, 0.237683f, 0.00907083f, -0.0415339f, 0.0226205f, 0.129767f, 0.0508607f, 0.0876883f, -0.158524f, -0.109955f, -0.0758087f, -0.176058f, -0.0759812f, 0.0671379f, -0.0513482f, 0.0240665f, 0.010054f, -0.0306277f, 0.0882338f, -0.0756929f, -0.118429f, 0.0777159f, -0.0432632f, -0.105812f, -0.120802f, -0.0662532f, 0.0160268f, -0.0376297f, 0.107441f, -0.0262914f, -0.0335137f, -0.184707f, 0.108542f, 0.0354579f, -0.0601397f, 0.05141f, -0.0351167f, -0.00650863f, 0.0437511f, 0.156316f, -0.0953851f, -0.0870043f, 0.140765f, -0.0996149f, -0.0707268f, -0.0183743f, -0.0912087f, -0.0614062f, -0.0302368f, 0.0862977f, -0.0720604f, 0.0963743f, 0.0111143f, -0.0205278f, -0.103496f, 0.0741916f, -0.000542152f, 0.0764299f, 0.0107427f, -0.0299344f, 0.037252f, -0.00378121f, -0.0860692f, 0.0262274f, -0.204435f, -0.13044f, 0.0801843f, -0.151504f, -0.000735572f, 0.0637435f, -0.00736336f, -0.0681176f, -0.0358813f, -0.0327753f, -0.194329f, -0.0202567f, 0.0525542f, -0.0162362f, -0.0197669f, -0.0074871f, 0.0876266f, -0.0413761f, -0.0590077f, 0.094128f, -0.053033f, -0.0729595f, -0.0449988f, 0.0342204f, 0.0819359f, 0.0669735f, -0.0696087f, 0.0705898f, -0.0388024f, -0.0167291f, -0.114686f, 0.130786f, -0.0531039f, 0.0370746f, 0.00886627f, -0.0361791f, -0.0966749f, 0.0160899f, -0.0389205f, 0.027083f, 0.0039257f, -0.0826147f, 0.151437f, -0.0303698f, 0.0507852f, -0.0403668f, 0.0643069f, 0.0577637f, -0.00239874f, -0.0121608f, 0.0688286f, -0.177196f, -0.0153458f, 0.0579241f, -0.134853f, -0.0713707f, -0.101705f, 0.0277676f, -0.0821959f, 0.0713362f, -0.00528748f, 0.180383f, -0.0507892f, -0.187912f, -0.115477f, 0.126269f, 0.0930047f, -0.0408435f, -0.0781343f, 0.0776505f, -0.0789532f, 0.104281f, -0.0786207f, -0.0498614f, 0.14246f, -0.0148147f, 0.359445f, 0.215221f, -0.137603f, 0.013358f, 0.118874f, -0.0195936f, 0.0813422f, 0.00675282f, 0.216339f, -0.0809708f, 0.0129114f, -0.0555585f, 0.0764979f, -0.0467668f, -0.0504319f, -0.220373f, -0.0443219f, 0.176374f, 0.0762807f, -0.0233051f, -0.211837f, 0.0326674f, -0.0377227f, -0.188395f, -0.318067f, -0.470072f, 0.0680127f, -0.19086f, -0.0076868f, 0.209089f, 0.165821f, 0.151311f, 0.0959091f, 0.0396996f, 0.177504f, 0.140584f, 0.0331566f, 0.00818118f, -0.147157f, -0.0401228f, -0.0569273f, -0.0204556f, -0.0836537f, 0.25864f, -0.00257801f, -0.0695338f, -0.10446f, -0.0200874f, 0.152897f, -0.129532f, -0.0437661f, -0.0659004f, 0.0933319f, 0.0306466f, 0.116821f, 0.158342f, -0.109744f, -0.180725f, 0.0498817f, -0.195108f, -0.0840112f, -0.00983122f, 0.0063745f, 0.174787f, 0.150968f, 0.231562f, 0.0678447f, 0.216386f, 0.0695047f, -0.0999208f, 0.281889f, -0.298205f, -0.236945f, -0.00836056f, -0.000190847f, -0.497752f, 0.248748f, 0.0222181f, -0.0247879f, -0.101613f, -0.198964f, -0.17221f, 0.136385f, 0.0859835f, 0.168254f, 0.0304859f, -0.0992083f, -0.253459f, 0.202543f, 0.12602f, 0.290915f, -0.0698637f, -0.129369f, -0.196819f, 0.0343062f, -0.0251569f, 0.138938f, 0.222413f, 0.299887f, 0.248058f, 0.152411f, 0.168394f, 0.0960902f, -0.0297197f, 0.00813115f, 0.083193f, -0.0238307f, 0.171383f, -0.0408673f, 0.0967072f, 0.0319796f, 0.0554933f, -0.0365135f, -0.0691068f, -0.111548f, 0.224233f, 0.285733f, -0.295514f, -0.262275f, 0.0308186f, 0.0443122f, 0.128311f, 0.0372331f, 0.036502f, 0.0348044f, -0.0407806f, -0.00401853f, -0.072731f, 0.100226f, 0.0283941f, 0.115874f, -0.051332f, -0.20228f, 0.186292f, 0.00969319f, -0.122105f, 0.0274849f, 0.0917229f, 0.152635f, -0.0498348f, -0.133974f, 0.0489061f, 0.10953f, 0.0810443f, -0.0135361f, -0.0282673f, 0.0643244f, -0.0625997f, 0.0168114f, 0.0174269f, 0.199763f, 0.0259557f, 0.24293f, 0.187706f, -0.0384967f, 0.00326401f, 0.187078f, 0.21018f, 0.130034f, -0.179755f, -0.0324718f, -0.126627f, -0.065542f, -0.0214055f, 0.0471336f, 0.131573f, -0.100122f, 0.0535805f, 0.205909f, -0.0540411f, 0.0858185f, 0.104833f, -0.0631434f, -0.225545f, 0.00743088f, -0.101683f, -0.0131223f, 0.045062f, 0.124746f, 0.0284778f, 0.0796118f, 0.0480116f, 0.268011f, -0.28357f, -0.154585f, -0.135879f, 0.111699f, -0.103666f, -0.0812416f, 0.0172274f, 0.00501014f, -0.153366f, 0.0108415f, -0.0254872f, -0.125979f, -0.195486f, -0.167021f, -0.147802f, -0.0880349f, 0.399947f, 0.133804f, -0.0651536f, -0.0819412f, -0.110192f, -0.112134f, -0.150625f, 0.136661f, 0.046336f, 0.0923058f, -0.217251f, 0.0397315f, -0.0116584f, -0.0220912f, -0.12975f, -0.113589f, -0.0690431f, 0.0987577f, 0.262109f, -0.124311f, -0.186405f, -0.0563464f, -0.0113327f, 0.266642f, 0.0827918f, 0.304331f, -0.310172f, -0.0021665f, -0.23594f, 0.122693f, -0.0889426f, 0.173972f, -0.13517f, -0.0365438f, -0.14591f, -0.12392f, 0.126387f, 0.0461776f, 0.222472f, -0.0147942f, -0.0367425f, -0.163474f, 0.0169671f, -0.106522f, -0.0599052f, 0.102392f, -0.255443f, -0.105662f, 0.0269821f, 0.134045f, -0.0460317f, 0.116909f, -0.215012f, 0.15637f, -0.174686f, 0.147837f, 0.127509f, -0.0671399f, 0.026527f, 0.327298f, 0.23083f, 0.190045f, -0.00827318f, 0.00691488f, 0.0686313f, 0.0229235f, 0.114834f, -0.0481677f, -0.211355f, 0.0466837f, 0.114852f, 0.0777818f, 0.054336f, -0.078493f, -0.0873033f, 0.174784f, -0.0206698f, 0.00591975f, -0.15527f, -0.0595625f, -0.00597921f, -0.13951f, -0.125309f, 0.0595528f, -0.0484575f, -0.125594f, -0.192272f, -0.0295169f, -0.106236f, 0.0784288f, 0.118367f, -0.0605549f, -0.206721f, 0.0428964f, -0.120386f, 0.0192867f, -0.103898f, 0.0724658f, 0.26435f, 0.250056f, 0.104947f, 0.046709f, 0.101498f, 0.0392707f, -0.0508328f, -0.0598421f, -0.191574f, -0.257243f, -0.217307f, 0.298796f, -0.181372f, 0.0114172f, -0.0909696f, -0.0599278f, 0.169565f, 0.0297132f, 0.042656f, 0.0211899f, 0.00176213f, 0.394792f, -0.00465502f, -0.0240128f, -0.123746f, 0.123216f, 0.156816f, 0.014656f, 0.108435f, 0.131853f, 0.182879f, 0.17316f, 0.187155f, 0.0513488f, -0.0882573f, 0.051531f, 0.110241f, 0.150381f, -0.0645445f, 0.0667886f, 0.110773f, 0.0459527f, -0.0199168f, 0.202595f, -0.0397997f, -0.100692f, -0.0657831f, -0.00798246f, -0.0215446f, -0.0935967f, -0.0771955f, 0.0520849f, -0.0272302f, -0.130657f, -0.00247502f, -0.0358232f, 0.0228767f, -0.0904609f, -0.224132f, 0.031232f, -0.149777f, -0.0813336f, 0.103321f, -0.0109262f, 0.0571998f, -0.135371f, 0.0903745f, -0.169258f, -0.265075f, 0.0538285f, -0.0371037f, 0.117455f, -0.0426208f, -0.086454f, -0.045106f, -0.285394f, 0.0872382f, -0.0227434f, 0.0658628f, -0.0664077f, 0.110154f, -0.106954f, -0.130539f, -0.148189f, 0.203638f, 0.0790162f, -0.0527273f, 0.123418f, 0.150111f, -0.0598053f, 0.154246f, -0.0208917f, -0.332741f, -0.0125782f, -0.171478f, 0.0518573f, -0.161754f, 0.064929f, -0.038992f, -0.0285834f, -0.186995f, -0.0258501f, -0.252437f, -0.0956807f, -0.240125f, 0.0163677f, -0.121795f, -0.0541172f, -0.00321707f, 0.0907787f, -0.0455648f, 0.144134f, -0.0981974f, -0.22137f, 0.0121466f, 0.0814338f, 0.116946f, -0.0299687f, -0.131227f, 0.000621605f, 0.159469f, 0.0639352f, -0.222013f, -0.107765f, 0.0941113f, -0.0513751f, 0.00456533f, -0.0522451f, -0.0218823f, 0.0373823f, -0.0283791f, 0.104437f, -0.0196144f, -0.196498f, -0.0343927f, 0.0339228f, 0.0470987f, 0.0513064f, 0.148692f, -0.0427597f, -0.103501f, -0.189156f, 0.230405f, -0.151039f, 0.0788717f, -0.0341244f, 0.229794f, 0.0115077f, 0.0560125f, -0.258629f, -0.00123662f, -0.0457786f, 0.0704849f, -0.218094f, 0.118622f, -0.121514f, -0.0612205f, 0.201828f, -0.0408175f, 0.000794973f, -0.0598283f, 0.0788749f, -0.109563f, 0.0065211f, -0.127509f, 0.346076f, 0.131964f, 0.0615111f, 0.0760767f, 0.208103f, 0.202533f, -0.143782f, -0.0399972f, 0.100853f, 0.0921818f, 0.14606f, 0.0881985f, -0.0750224f, -0.0789084f, -0.122238f, -0.100747f, 0.0558503f, 0.082508f, -0.0514182f, 0.0206895f, -0.206121f, 0.105488f, -0.186807f, -0.0232382f, 0.0641912f, 0.143718f, 0.0638966f, -0.0988649f, 0.231206f, 0.0642261f, 0.024466f, 0.284906f, 0.176073f, -0.0115371f, 0.269017f, 0.151233f, 0.0469891f, 0.172844f, 0.0998828f, 0.0379633f, -0.0730143f, -0.101648f, 0.0973189f, 0.0522548f, -0.130214f, -0.112406f, 0.120451f, -0.0603048f, 0.0752453f, -0.127247f, -0.0874095f, 0.0283037f, -0.115142f, 0.0270276f, 0.00325157f, 0.0819641f, -0.152179f, -0.126843f, -0.0773733f, -0.0641349f, 0.0650423f, 0.136926f, 0.112704f, 0.0736762f, -0.0909684f, -0.0972189f, 0.176399f, -0.0433745f, 0.187677f, 0.187215f, 0.0331855f, 0.125292f, -0.127744f, 0.133188f, 0.0796941f, 0.202012f, -0.0742243f, 0.0148488f, -0.0933f, 0.0190131f, -0.0342422f, 0.0518658f, 0.159746f, -0.178855f, -0.215111f, 0.144218f, 0.150145f, -0.0911896f, 0.0700008f, -0.0269745f, 0.154761f, -0.187379f, -0.165392f, 0.180475f, -0.05425f, 0.0284491f, -0.108202f, 0.0300619f, -0.0548644f, -0.214552f, 0.213612f, -0.0221963f, 0.0837724f, 0.028901f, -0.151301f, -0.111772f, -0.0908259f, -0.0474616f, -0.0821822f, -0.0830222f, 0.0229443f, -0.172867f, 0.0377483f, 0.0860355f, 0.0432919f, -0.0340587f, -0.0729386f, -0.0312495f, 0.0800241f, -0.112221f, -0.0376401f, -0.0936927f, 0.178309f, -0.0460136f, -0.109798f, -0.0356751f, -0.0124386f, -0.230052f, -0.0469314f, 0.0997176f, 0.0330747f, 0.0798555f, -0.102992f, 0.00620476f, 0.0247977f, 0.11629f, 0.0428125f, -0.161351f, 0.0496499f, -0.00580001f, 0.119211f, 0.174074f, 0.0660423f, -0.113733f, -0.0513719f, -0.123914f, 0.174214f, -0.0456628f, -0.1224f, 0.152123f, 0.0590931f, 0.130521f, -0.0510179f, -0.0847165f, 0.0783211f, -0.0790376f, -0.114822f, -0.0925641f, 0.234219f, -0.0432442f, 0.0837464f, 0.0446104f, 0.0671872f, 0.00965765f, -0.0915519f, 0.0462826f, 0.0547297f, -0.142949f, 0.104082f, 0.0840143f, -0.121789f, 0.167135f, 0.0781581f, 0.0637147f, -0.0684872f, -0.0375652f, -0.0609292f, -0.0718215f, -0.190512f, -0.000940905f, 0.00219721f, 0.215332f, 0.0711742f, -0.0353417f, 0.104653f, 0.0296102f, -0.0474839f, -0.209191f, 0.0470711f, -0.0210355f, 0.0116542f, -0.0858899f, -0.0442189f, -0.0923249f, 0.00110622f, 0.135243f, -0.0976085f, 0.155395f, -0.0366581f, 0.176476f, 0.0989758f, -0.151297f, -0.0337587f, 0.0332346f, 0.0583573f, 0.279567f, 0.0374082f, -0.169731f, 0.0674272f, -0.00495787f, 0.176678f, 0.0479807f, -0.109512f, -0.120116f, -0.0088014f, -0.0521894f, -0.00671005f, 0.0927501f, 0.0352023f, 0.120691f, 0.0191546f, -0.112345f, -0.00798251f, 0.0758334f, 0.0125451f, -0.037242f, -0.0710752f, 0.0907048f, 0.0344546f, 0.0816177f, -0.165788f, -0.00435671f, 0.0833011f, -0.123899f, -0.0139001f, 0.130918f, 0.0233534f, -0.0333028f, 0.00601629f, -0.121355f, 0.0283924f, -0.083364f, 0.157516f, -0.0250231f, -0.0626353f, -0.0789617f, 0.0396679f, 0.0581037f, -0.0204906f, 0.034361f, -0.00869093f, 0.119098f, 0.0748894f, 0.0786083f, -0.0984808f, -0.101265f, -0.0438376f, -0.161424f, -0.0765878f, 0.0678167f, 0.103184f, 0.0152608f, 0.0659542f, 0.0853691f, -0.0474498f, 0.0104633f, -0.130011f, -0.0807307f, 0.0390585f, -0.0888763f, 0.12271f, 0.0520678f, -0.0607515f, 0.0382387f, -0.0652365f, 0.0471425f, 0.0413448f, 0.0887729f, 0.04238f, -0.0179719f, 0.00788794f, 0.0499075f, -0.110023f, 0.0311649f, 0.0509421f, 0.00536561f, -0.0195119f, 0.118655f, 0.041463f, -0.0263542f, -0.0077159f, -0.0446112f, 0.0726654f, -0.154838f, -0.0957033f, 0.0334688f, -0.0406902f, -0.0839727f, -0.00711511f, 0.0352861f, -0.18882f, -0.026041f, 0.072039f, 0.0682338f, -0.02677f, -0.0201404f, 0.00556539f, -0.0993409f, -0.0554741f, 0.111677f, -0.0514049f, -0.0542269f, 0.00224674f, 0.0777083f, -0.0466164f, -0.0808553f, -0.0456447f, 0.0906349f, -0.0460203f, 0.103104f, 0.203415f, -0.00522918f, 0.016159f, -0.142861f, 0.030157f, 0.0985766f, 0.161792f, -0.0508635f, -0.138659f, -0.0981117f, 0.11232f, 0.0627089f, 0.0175694f, -0.135418f, 0.130118f, 0.0198471f, 0.0291032f, 0.153995f, 0.177495f, 0.0460586f, 0.159338f, -0.0460326f, 0.0876795f, -0.117337f, 0.0361826f, -0.184391f, 0.191658f, 0.141464f, -0.0559595f, 0.138497f, 0.0457361f, -0.0417923f, -0.0673078f, -0.0425342f, -0.0474208f, -0.0817997f, -0.0229985f, 0.0802393f, 0.109966f, 0.181595f, -0.0507518f, 0.139439f, -0.137861f, 0.0221537f, 0.121937f, 0.0048576f, 0.0934554f, -0.158286f, 0.211007f, 0.221584f, 0.0173692f, -3.6711e-05f, -0.0423982f, 0.082268f, -0.0582053f, -0.0387702f, -0.0392965f, 0.13106f, -0.0152987f, 0.157087f, 0.00103416f, -0.0168493f, 0.0611745f, 0.0969037f, -0.205166f, -0.0766267f, 0.0908998f, 0.0132981f, -0.0242357f, 0.0586924f, -0.047959f, -0.0249354f, 0.111137f, 0.114821f, -0.110759f, -0.039995f, 0.121773f, 0.0364945f, 0.0431652f, 0.120324f, -0.0923355f, -0.0499297f, 0.0598701f, 0.144721f, 0.0220835f, 0.00436861f, 0.0390272f, -0.074827f, 0.0451423f, 0.0321159f, -0.111541f, -0.133407f, -0.0106711f, -0.0401575f, -0.021697f, -0.0900416f, 0.120356f, -0.122922f, -0.183843f, -0.0944143f, 0.0462952f, 0.0736244f, -0.0929925f, -0.105309f, -0.122412f, -0.0896731f, -0.0382777f, 0.287334f, 0.160711f, -0.0514497f, -0.185915f, 0.151577f, -0.0866993f, 0.0580295f, -0.00686007f, -0.147328f, -0.0318632f, 0.0651626f, 0.0905888f, 0.0104101f, -0.0967696f, 0.0551976f, -0.117945f, -0.150759f, 0.192133f, 0.0386686f, 0.0447176f, 0.0244964f, -0.0217246f, -0.218206f, -0.0284778f, 0.068248f, -0.132047f, -0.106455f, -0.113106f, -0.0947241f, 0.103646f, 0.0148809f, 0.00697141f, 0.233301f, 0.0520241f, 0.101541f, 0.00378776f, -0.44284f, 0.00571297f, 0.413841f, -0.0420513f, 0.273854f, -0.0559524f, -0.141816f, 0.0160408f, 0.318844f, -0.0887743f, -0.0517195f, -0.0945287f, -0.0617135f, -0.284979f, -0.103261f, -0.0756755f, 0.267848f, 0.18197f, -0.0775176f, 0.14709f, -0.0176618f, 0.259644f, -0.222636f, -0.0172858f, 0.163535f, 0.0410831f, 0.125774f, 0.265223f, 0.320523f, 0.0220148f, 0.189365f, 0.0232783f, -0.161833f, 0.145706f, -0.0437457f, 0.0192894f, -0.381249f, 0.00300157f, 0.0784311f, -0.0448834f, -0.229922f, 0.130862f, 0.224819f, -0.139266f, -0.397233f, 0.17187f, 0.0241145f, -0.0553721f, -0.112205f, -0.0848328f, 0.255564f, -0.0319723f, -0.135456f, 0.183412f, -0.223194f, -0.0779187f, -0.0341408f, -0.129345f, -0.0163395f, -0.12223f, 0.15476f, -0.181052f, 0.0184121f, -0.134123f, 0.040432f, 0.257608f, -0.147396f, -0.00513715f, 0.296356f, -0.0104259f, -0.318033f, -0.133188f, -0.140906f, 0.121582f, -0.103397f, -0.0215037f, 0.218334f, 0.147061f, 0.110043f, -0.0468364f, 0.0599209f, -0.173764f, 0.0235384f, -0.0137177f, -0.178442f, -0.107564f, -0.165072f, 0.310393f, -0.261873f, -0.114327f, -0.0399332f, 0.129323f, 0.0934638f, -0.0542461f, -0.0675401f, 0.00790157f, -0.203886f, -0.090676f, -0.0799363f, 0.10182f, -0.0584976f, -0.0180494f, -0.0888768f, 0.0619831f, -0.0973348f, 0.0887777f, 0.0489127f, -0.116449f, 0.0402443f, -0.0368032f, 0.0248618f, -0.0533471f, -0.0510011f, 0.00367711f, -0.181462f, -0.0559256f, 0.00844887f, 0.0801904f, -0.206841f, -0.0880611f, -0.0224123f, 0.273778f, -0.227619f, -0.134853f, 0.0308263f, 0.244058f, -0.13433f, 0.158716f, 0.165348f, 0.108338f, -0.0802341f, -0.071549f, -0.121509f, 0.0901905f, 0.105607f, -0.184589f, 0.107942f, 0.189958f, -0.049423f, 0.050084f, -0.0449744f, -0.0747152f, 0.0485369f, 0.0401904f, -0.110604f, 0.0342444f, -0.0328886f, -0.0571662f, -0.199063f, 0.078913f, 0.0431758f, -0.0619295f, -0.157196f, 0.066198f, 0.117125f, 0.0149672f, 0.0123473f, -0.0311618f, 0.0797797f, 0.119632f, 0.0798727f, -0.00331609f, -0.0141913f, -0.103164f, -0.166464f, 0.0130081f, -0.115697f, -0.112053f, 0.0367582f, -0.0811511f, 0.234074f, -0.115888f, 0.0746668f, -0.0556965f, -0.128858f, -0.115371f, -0.0259607f, -0.0074748f, 0.109183f, 0.0588648f, 0.0331297f, -0.0726197f, 0.00941564f, 0.0424431f, -0.12264f, 0.100876f, -0.0101146f, -0.178181f, 0.0269837f, 0.0511922f, -0.00115342f, -0.138756f, 0.164103f, 0.0147292f, 0.0465472f, 0.142548f, -0.114119f, -0.126233f, 0.187065f, 0.061339f, 0.18536f, -0.0540509f, -0.0107761f, 0.043722f, 0.221482f, 0.101227f, 0.210076f, 0.0752197f, -0.0533946f, 0.181626f, 0.182606f, 0.0532486f, 0.177227f, 0.0247004f, 0.143822f, 0.0763973f, -0.0397272f, -0.105535f, 0.0713674f, 0.0194215f, -0.0152408f, 0.203456f, -0.0986269f, 0.0721948f, 0.184629f, -0.00123884f, -0.00577966f, -0.0212826f, -0.0315872f, -0.0900919f, -0.0733487f, -0.0795211f, 0.00117078f, -0.0657704f, -0.127222f, -0.0990971f, -0.0759441f, 0.0623418f, -0.120599f, -0.0965017f, 0.34746f, 0.0160319f, 0.106502f, 0.0762776f, -0.0600504f, 0.092643f, 0.179016f, 0.252527f, -0.108029f, 0.102533f, -0.0427168f, -0.169631f, -0.110391f, -0.243559f, 0.0305712f, -0.0517068f, -0.232912f, -0.0271314f, -0.141287f, 0.0650492f, -0.0501988f, -0.130826f, 0.140436f, -0.332958f, -0.0832446f, 0.0103828f, -0.204896f, 0.00269085f, 0.0205926f, -0.0274699f, -0.0122416f, 0.0955767f, -0.124725f, 0.228137f, -0.0859859f, 0.010687f, 0.149966f, -0.15585f, -0.0233519f, -0.0512985f, -0.137724f, 0.0650823f, -0.145417f, 0.101789f, -0.145625f, -0.0581542f, 0.107764f, 0.152878f, -0.0867391f, 0.0404716f, -0.0147771f, 0.0350663f, -0.250298f, 0.143023f, -0.0708606f, 0.00147771f, -0.0801677f, 0.0185486f, -0.123138f, -0.105845f, 0.137882f, -0.101244f, 0.115245f, -0.0965734f, 0.173631f, 0.238279f, 0.127721f, -0.00774973f, 0.0589027f, 0.0171166f, -0.169332f, 0.0836271f, 0.232355f, 0.105299f, -0.0516017f, 0.065567f, -0.0662358f, -0.119549f, -0.12622f, 0.017041f, -0.0751843f, -0.190957f, -0.213814f, 0.00707375f, 0.123656f, -0.0254721f, -0.00816756f, 0.178623f, 0.0275094f, -0.0916479f, -0.146826f, 0.0417846f, 0.0854006f, -0.10645f, -0.134091f, 0.106364f, 0.141456f, 0.135855f, 0.06778f, 0.112935f, -0.0832784f, 0.151348f, 0.0644329f, 0.173367f, 0.173826f, 0.243117f, -0.194254f, 0.149304f, -0.0258449f, 0.0818121f, -0.0591455f, 0.094895f, 0.0147066f, 0.0429881f, 0.179633f, 0.215308f, 0.0990382f, 0.159185f, -0.118472f, -0.0592434f, -0.0147031f, 0.147941f, -0.0623742f, 0.0116307f, -0.00658189f, 0.056891f, -0.084221f, 0.00206128f, -0.0730129f, 0.0150792f, -0.037057f, 0.0205696f, 0.176068f, 0.179297f, 0.0750906f, 0.00226135f, 0.0654425f, 0.0380065f, -0.0223823f, -0.115504f, 0.0175518f, -0.0600231f, 0.0172805f, 0.113709f, -0.0115948f, 0.0627313f, -0.163158f, 0.0616634f, 0.0176046f, 0.172708f, -0.182803f, -0.0130129f, 0.0316476f, -0.0545122f, -0.0123119f, -0.00869708f, 0.0455556f, -0.0456984f, -0.239318f, 0.0040217f, 0.0359813f, -0.0260581f, -0.0166913f, -0.0141884f, 0.155234f, -0.0361422f, -0.0991329f, -0.0547785f, 0.0884408f, -0.0687612f, 0.0466189f, -0.0497545f, -0.042271f, -0.165759f, -0.00646829f, -0.112674f, 0.280754f, 0.148567f, -0.17331f, -0.0145661f, 0.100943f, 0.197108f, 0.183252f, 0.0514847f, -0.118783f, -0.015445f, 0.110825f, -0.172287f, -0.0127306f, 0.0634935f, 0.0974202f, 0.161991f, 0.102982f, -0.0884667f, -0.12496f, 0.0102518f, -0.0341242f, 0.0473695f, -0.059265f, -0.0495045f, -0.172482f, -0.0103445f, -0.0331312f, -0.0102024f, -0.00374907f, -0.0770394f, 0.0145252f, -0.041699f, -0.131794f, -0.111482f, -0.123834f, -0.0221138f, 0.0931151f, 0.0481372f, -0.165724f, -0.00381557f, -0.0370224f, 0.0426618f, 0.0202153f, -0.0608394f, -0.0451895f, -0.00651227f, 0.0301524f, -0.209921f, 0.0222233f, -0.0381714f, 0.049461f, 0.127825f, -0.0229066f, 0.120531f, 0.0117534f, 0.200789f, -0.0159395f, 0.085329f, -0.0258011f, 0.148053f, -0.0231676f, 0.0545603f, 0.0527799f, -0.0973758f, -0.030691f, -0.108002f, 0.03228f, 0.175401f, 0.164285f, -0.0551412f, 0.213335f, 0.0432879f, 0.136004f, -0.0518985f, -0.0906709f, 0.0478914f, -0.0717499f, 0.0296705f, 0.0430174f, -0.224474f, -0.000243444f, 0.0254638f, 0.303058f, -0.0613008f, 0.000484362f, 0.0278855f, -0.0680118f, 0.0456234f, 0.00372995f, 0.0416739f, -0.040251f, 0.105813f, 0.182747f, -0.0116132f, 0.231033f, 0.12595f, -0.140472f, -0.115274f, 0.113534f, 0.0813664f, 0.200125f, 0.0759914f, 0.000786726f, 0.105075f, -0.0878387f, -0.0248131f, -0.035153f, -0.155655f, -0.115005f, -0.032799f, 0.00784547f, 0.149348f, -0.0747207f, 0.0748607f, 0.0911161f, -0.0875258f, -0.126204f, -0.119823f, 0.0652691f, -0.026771f, 0.0792123f, 0.126711f, 0.11459f, 0.136122f, 0.0835733f, -0.0412294f, 0.032152f, 0.0857942f, 0.107858f, 0.00102726f, -0.173782f, 0.0299577f, -0.0753325f, 0.00589275f, 0.0621039f, -0.0407653f, -0.021731f, -0.0531541f, 0.171904f, -0.0455593f, -0.0943863f, -0.244679f, 0.166373f, 0.0613139f, 0.107586f, -0.0157857f, -0.0887458f, 0.0599064f, -0.0593116f, 0.192238f, -0.123987f, -0.169269f, 0.103561f, -0.0322776f, 0.0520624f, -0.132874f, 0.000691729f, 0.244556f, -0.114195f, 0.162864f, -0.161247f, 0.0975082f, -0.143722f, -0.00676693f, 0.170909f, -0.129727f, 0.0842136f, -0.0997673f, 0.103342f, 0.0244351f, -0.194624f, 0.263957f, -0.0164657f, 0.27608f, 0.0478259f, 0.257746f, 0.169063f, -0.199403f, -0.168213f, -0.116356f, 0.0585769f, 0.0702247f, 0.0360588f, -0.112677f, -0.065233f, 0.208691f, -0.27679f, -0.175796f, -0.213065f, -0.029123f, 0.161388f, -0.175292f, -0.0237294f, 0.0171084f, -0.0749977f, -0.12292f, 0.140886f, -0.0300919f, 0.258776f, -0.0239721f, 0.146896f, 0.326334f, 0.147829f, -0.225223f, -0.0291825f, -0.062034f, 0.12777f, -0.182643f, 0.00448839f, -0.0141927f, 0.0314051f, -0.269231f, -0.0149172f, -0.0777799f, -0.0861228f, -0.0151364f, -0.100759f, -0.0670639f, -0.0822476f, 0.0288252f, -0.0692622f, -0.137171f, 0.0427931f, 0.0298484f, -0.0166677f, 0.00186879f, 0.117355f, -0.148682f, -0.0815702f, 0.0715009f, -0.0755788f, -0.0824062f, 0.053566f, -0.0175312f, 0.0361743f, -0.11307f, -0.0901057f, 0.294809f, 0.173886f, 0.0945093f, 0.0181059f, 0.100808f, 0.114914f, 0.169458f, 0.0683023f, 0.0517603f, 0.186424f, -0.0749535f, -0.0233684f, -0.252845f, 0.172431f, 0.0803154f, 0.165341f, 0.199633f, 0.169791f, 0.129343f, 0.157553f, -0.0748716f, -0.0727605f, -0.0126387f, -0.0728518f, -0.0659762f, 0.099531f, -0.0952394f, 0.183129f, -0.183225f, 0.0747504f, 0.149955f, 0.0392556f, 0.101047f, 0.116122f, -0.00379066f, -0.212796f, -0.0916812f, 0.00394752f, -0.117038f, 0.0233422f, 0.0709797f, -0.110749f, -0.260099f, -0.0781195f, -0.1627f, 0.0416634f, 0.176479f, -0.141824f, 0.122315f, 0.0143775f, 0.0869304f, -0.062009f, 0.0347222f, -0.0364113f, -0.187631f, -0.126434f, -0.0824942f, -0.102795f, 0.0642904f, 0.0379088f, 0.131924f, 0.156196f, 0.0443621f, 0.158329f, 0.0695482f, -0.0894982f, 0.0568692f, 0.0884958f, -0.0575168f, -0.0717197f, -0.110224f, -0.0225663f, 0.0893616f, -0.0113917f, 0.0370191f, -0.132784f, 0.0545637f, 0.0654466f, -0.11147f, 0.0507596f, 0.123069f, -0.20446f, -0.0878697f, -0.0085251f, -0.247569f, 0.0704968f, 0.00685126f, -0.0143478f, 0.134881f, -0.0111249f, -0.0940318f, -0.0167f, -0.0163138f, 0.109827f, 0.0263411f, 0.0359699f, 0.043765f, 0.0962064f, 0.217568f, -0.0615274f, -0.022922f, -0.0757383f, 0.0327567f, -0.0322323f, -0.0500902f, 0.132177f, -0.112706f, 0.00829471f, -0.11271f, 0.023554f, 0.112746f, -0.0860293f, 0.101843f, 0.0392945f, 0.0124815f, 0.0192558f, -0.104374f, -0.0822198f, 0.0263395f, -0.0587667f, -0.0120098f, 0.0193885f, -0.0897074f, 0.103843f, -0.223198f, -0.036959f, 0.00298741f, -0.0464285f, 0.0717309f, 0.00715811f, -0.0718952f, 0.121571f, -0.110337f, -0.216027f, -0.00424461f, 0.00270351f, 0.177228f, -0.17627f, -0.049291f, 0.0148768f, 0.0259056f, -0.0912512f, -0.0666842f, 0.157749f, -0.0197388f, 0.0702068f, 0.00826394f, -0.0856689f, 0.133678f, -0.128841f, -0.141474f, -0.0297091f, -0.0387585f, 0.160846f, -0.0639485f, -0.0381145f, -0.0053277f, 0.0237516f, 0.173871f, 0.0473641f, 0.077381f, -0.0817914f, -0.0223694f, 0.0495488f, -0.00614066f, 0.130989f, 0.194057f, -0.115251f, -0.00648318f, 0.0643945f, 0.179114f, 0.159868f, -0.145882f, -0.0402569f, 0.0468909f, -0.0346227f, -0.00477962f, -0.0406641f, -0.180024f, 0.0785502f, 0.0332442f, -0.0258294f, -0.209829f, 0.0550271f, 0.142723f, 0.00369366f, -0.135367f, 0.0707357f, -0.165508f, 0.125726f, 0.0726622f, -0.141676f, -0.0375515f, -0.121588f, -0.0956606f, 0.0157579f, 0.0803815f, 0.0401745f, -0.124556f, 0.0804826f, 0.025811f, -0.0138114f, 0.0214426f, 0.191295f, -0.0798621f, -0.0722972f, 0.0900491f, 0.0460672f, 0.24672f, -0.0647392f, -0.142982f, 0.177629f, 0.0752561f, -0.118601f, -0.377279f, -0.102873f, 0.169554f, 0.198455f, 0.465445f, -0.144515f, 0.0774469f, -0.00905173f, 0.0764431f, 0.11383f, 0.0357226f, -0.0923994f, 0.0376572f, -0.0437265f, -0.23284f, -0.367346f, -0.14709f, -0.136132f, 0.0936634f, -0.356207f, -0.0854716f, -0.0336828f, -0.231415f, 0.0419571f, -0.20708f, -0.12332f, 0.164056f, 0.104031f, -0.128937f, 0.222006f, 0.0484161f, 0.278221f, 0.161839f, -0.0423765f, 0.0767385f, -0.0206996f, 0.0124189f, 0.172281f, -0.0900471f, -0.316837f, -0.356241f, 0.00294672f, 0.0424875f, -0.0508967f, 0.338457f, -0.0693928f, 0.0536134f, 0.121152f, -0.293041f, -0.112114f, 0.0398968f, -0.118229f, 0.132977f, -0.382229f, 0.0358327f, 0.131575f, -0.000361196f, -0.0100639f, 0.0160959f, -0.0392146f, -0.105328f, -0.0182876f, 0.0902224f, 0.15651f, 0.00805647f, 0.0263627f, 0.061945f, 0.0141239f, -0.159727f, 0.184456f, -0.0941023f, -0.0126888f, 0.0683659f, 0.124253f, -0.0980458f, 0.0523681f, 0.0331494f, 0.168178f, 0.145002f, 0.0826901f, 0.000171601f, 0.0452603f, 0.25588f, -0.0661905f, 0.0533094f, -0.213094f, -0.168981f, 0.100475f, -0.025206f, 0.00421783f, -0.0780097f, -0.0397149f, 0.13481f, -0.0309076f, -0.244604f, -0.0175088f, -0.233224f, 0.173275f, -0.0755468f, -0.196272f, 0.400018f, -0.350485f, 0.204885f, 0.147596f, -0.0874645f, 0.0887635f, -0.0154313f, -0.0649712f, 0.0752194f, 0.251365f, 0.0306241f, -0.0931345f, 0.0957243f, -0.00182188f, 0.0781618f, -0.164042f, -0.0112079f, -0.106945f, -0.25781f, 0.226757f, 0.163213f, 0.0909298f, -0.0307203f, 0.141138f, -0.0502684f, 0.0970108f, 0.0780053f, -0.0876619f, 0.0290746f, 0.0931557f, -0.0883575f, -0.0713324f, 0.298705f, 0.0285974f, 0.116863f, 0.17358f, -0.232679f, -0.057085f, -0.0738287f, -0.22314f, 0.0250323f, -0.0647043f, -0.0731686f, -0.204434f, 0.0243585f, -0.000968516f, -0.10315f, -0.152075f, 0.216384f, -0.026386f, 0.0430604f, 0.0238753f, -0.00180959f, 0.317246f, 0.00414482f, 0.124631f, 0.0692426f, 0.124366f, 0.139474f, 0.0170479f, 0.112715f, 0.132702f, 0.104606f, 0.027066f, -0.0336735f, 0.205098f, -0.103696f, 0.0556873f, 0.0327074f, 0.134344f, -0.303803f, -0.0145742f, 0.0992121f, -0.106544f, 0.092567f, 0.039468f, -0.0340712f, 0.00545296f, -0.0949385f, -0.161229f, 0.0884996f, 0.0768358f, 0.0459854f, -0.17009f, -0.191676f, 0.0671639f, -0.00980846f, -0.0269544f, -0.155787f, 0.0422036f, -0.0717573f, 0.0690336f, 0.13528f, 0.124915f, -0.0724201f, 0.0223661f, 0.125915f, 0.130124f, -0.127155f, -0.0543504f, 0.104199f, -0.169434f, 0.0451392f, 0.0311696f, -0.0341363f, -0.0840728f, -0.0313507f, -0.102072f, 0.132375f, -0.0546573f, -0.127308f, 0.0357811f, 0.120895f, -0.237196f, 0.100179f, 0.104333f, -0.204958f, -0.0253812f, 0.0510857f, -0.0135631f, 0.260507f, -0.189139f, 0.111418f, 0.0904118f, 0.228118f, -0.0799184f, -0.0302807f, -0.0272024f, 0.0307864f, 0.158944f, -0.0899093f, -0.158836f, -0.0407502f, 0.0265152f, 0.07062f, 0.092196f, 0.0419635f, -0.134786f, -0.0210386f, 0.215952f, 0.00816891f, -0.173349f, 0.053468f, -0.108507f, 0.189575f, -0.10662f, -0.0817296f, 0.0587463f, -0.129719f, 0.055748f, 0.0905315f, -0.00120722f, 0.0676442f, -0.0848214f, 0.0132217f, 0.0493424f, -0.0275566f, 0.210772f, 0.0624876f, 0.0613993f, 0.00672585f, 0.0507104f, 0.0193165f, 0.0645769f, 0.046709f, 0.0552093f, -0.0228778f, 0.0613054f, 0.00268113f, -0.0299846f, -0.0741551f, -0.0517581f, -0.0461851f, 0.119988f, 0.0722097f, -0.150589f, -0.0208816f, -0.172591f, -0.169361f, 0.000777287f, -0.0106016f, -0.0437801f, -0.0271698f, 0.124646f, 0.178689f, 0.0158296f, -0.125159f, 0.133398f, 0.124782f, 0.0410324f, 0.0724639f, -0.107082f, -0.0229159f, -0.175814f, 0.0279888f, 0.0528237f, 0.0491421f, -0.00164726f, 0.157781f, -0.0466534f, 0.00469834f, -0.0629278f, 0.0996794f, 0.0784954f, 0.0562476f, -0.00465384f, -0.128933f, 0.0168491f, -0.0306831f, 0.0247578f, 0.162877f, 0.137149f, 0.0326465f, 0.0349159f, 0.00259776f, -0.0224612f, -0.0544627f, -0.0185915f, 0.122699f, -0.0925172f, 0.14182f, 0.123964f, -0.167297f, -0.0128797f, 0.0758665f, -0.0218418f, -0.0474372f, -0.0139847f, -0.0633192f, 0.104351f, -0.00750703f, 0.13514f, 0.0591707f, 0.0114552f, 0.109977f, 0.0220702f, 0.0142145f, 0.127731f, 0.184706f, 0.158819f, -0.0656536f, 0.102486f, -0.0690719f, 0.0081911f, 0.0183716f, -0.0167701f, 0.0159373f, 0.0445727f, 0.00950175f, 0.0334545f, -0.0895181f, -0.0494681f, 0.0231394f, -0.033254f, 0.129583f, -0.138255f, -0.0100655f, -0.0175491f, -0.0413253f, 0.255248f, -0.01749f, -0.0622011f, 0.125801f, -0.046409f, 0.0172996f, 0.0136401f, -0.0666447f, -0.0545919f, 7.68987e-05f, -0.0844006f, 0.0274182f, 0.13868f, 0.0242109f, 0.0629604f, 0.00854771f, 0.0504743f, 0.0732731f, 0.0464437f, 0.168756f, -0.0962669f, -0.136442f, -0.0822647f, -0.0437799f, 0.091809f, 0.0262205f, 0.1288f, 0.0302394f, -0.00480327f, 0.0968884f, 0.0594642f, -0.124108f, -0.0235632f, 0.0178742f, 0.0995617f, 0.0894881f, 0.123732f, -0.0954122f, 0.109217f, 0.0151693f, -0.0967527f, -0.031997f, -0.170914f, 0.117136f, 0.0620153f, 0.267557f, 0.0511207f, 0.270076f, 0.0101137f, 0.0906368f, -0.0762215f, 0.0251452f, -0.0489659f, 0.0359202f, 0.145567f, 0.0588217f, -0.0144608f, 0.0975444f, 0.170187f, 0.0249519f, -0.0222822f, -0.152493f, 0.00334693f, 0.051885f, 0.00803107f, 0.174586f, 0.138757f, -0.297466f, -0.0211516f, 0.132431f, 0.143434f, 0.242691f, 0.0473042f, 0.00934522f, 0.162645f, 0.182129f, -0.0404687f, -0.0828834f, 0.232105f, 0.000572024f, 0.0610908f, 0.023074f, 0.0541816f, -0.0450714f, 0.0764931f, 0.0116018f, 0.0250624f, 0.0421714f, -0.00764538f, -0.250076f, -0.301663f, -0.271292f, -0.0503374f, 1.48852e-05f, 0.0480205f, 0.0342777f, 0.136247f, 0.133446f, -0.0409259f, -0.0812334f, -0.0545732f, -0.235459f, -0.133881f, -0.185326f, -0.0169083f, -0.190245f, -0.0127819f, 0.0069973f, -0.222129f, -0.0624518f, -0.159865f, 0.0849917f, 0.0589504f, 0.105248f, 0.0362706f, 0.0985203f, -0.17956f, 0.102355f, 0.16426f, -0.0818404f, 0.165055f, 0.155885f, 0.301233f, -0.121538f, 0.00646172f, -0.171479f, -0.00100791f, 0.0101727f, 0.157396f, 0.0780789f, -0.0908596f, -0.0111594f, 0.238587f, 0.0347389f, -0.108654f, 0.103104f, -0.103767f, 0.252235f, -0.155785f, -0.00481188f, -0.00710337f, -0.0670247f, -0.0544344f, 0.112847f, -0.22984f, 0.159536f, -0.0165529f, 0.0413325f, 0.124411f, 0.0308251f, -0.112646f, -0.0392159f, -0.0778658f, -0.00967627f, -0.0911935f, 0.0368132f, -0.012202f, 0.0499515f, 0.121324f, 0.213177f, 0.0804461f, 0.063866f, -0.181877f, 0.00409162f, 0.177498f, -0.10691f, -0.156356f, 0.0579825f, -0.132396f, 0.0758636f, -0.00311834f, -0.15718f, 0.101177f, -0.0475517f, 0.0837489f, -0.03337f, -0.0184338f, 0.0464738f, 0.1488f, -0.0426834f, -0.0908239f, 0.0795939f, -0.0361832f, -0.0305521f, -0.0267553f, 0.108629f, -0.0453967f, 0.0274958f, -0.0995944f, 0.184445f, 0.138708f, 0.139101f, 0.19743f, -0.235683f, -0.127547f, 0.0449924f, -0.0602647f, 0.099668f, 0.0667117f, -0.119358f, -0.148379f, 0.0849516f, -0.0233502f, 0.0323357f, 0.0045903f, 0.132932f, -0.0990381f, -0.0932484f, 0.0407142f, -0.0543724f, -0.0501561f, -0.137291f, -0.0305637f, -0.0776158f, 0.120959f, 0.134736f, -0.0533351f, -0.108516f, 0.0584937f, 0.0404091f, -0.0597039f, 0.0679709f, -0.116689f, -0.111407f, -0.217135f, 0.10529f, 0.0115111f, 0.174284f, -0.10617f, 0.164609f, 0.173024f, 0.111551f, 0.0597962f, -0.158398f, -0.0636096f, 0.0598675f, 0.0161011f, -0.136595f, 0.0501114f, 0.00681035f, 0.112627f, 0.0633841f, 0.164162f, 0.153113f, 0.0662049f, -0.0396345f, -0.228647f, -0.119339f, -0.102775f, 0.179894f, 0.160414f, 0.108042f, 0.0292267f, 0.215385f, 0.00548122f, 0.0118401f, 0.232481f, 0.0504494f, 0.075361f, -0.127836f, -0.0638427f, -0.0426977f, -0.260171f, 0.0373127f, 0.0234694f, -0.0495404f, -0.0809716f, 0.138501f, -0.106646f, -0.0503122f, 0.00566325f, 0.0868659f, -0.169024f, -0.0235962f, 0.0555484f, 0.0813986f, -0.0209157f, 0.161546f, -0.150135f, -0.0652027f, 0.151164f, -0.0443461f, -0.165127f, -0.103449f, 0.135346f, -0.160186f, 0.0231286f, -0.0412249f, 0.0745001f, -0.0677716f, 0.0951572f, -0.0178435f, -0.124096f, -0.039861f, 0.0938902f, -0.0767132f, -0.0573782f, -0.00159988f, 0.0523216f, -0.0242503f, 0.0661988f, -0.000230632f, 0.114796f, -0.0143036f, -0.200145f, 0.00910074f, -0.102294f, 0.100076f, 0.0116592f, 0.0196042f, -0.0259101f, 0.00102561f, -0.0992054f, -0.0202047f, -0.0140359f, 0.0853324f, 0.112504f, -0.0767186f, 0.00960075f, -0.00657634f, 0.0917355f, -0.158871f, -0.128358f, -0.0920051f, 0.0534696f, 0.132512f, -0.125693f, 0.200479f, -0.017234f, 0.00590807f, -0.00905851f, -0.0439555f, 0.0104433f, -0.103116f, 0.0226423f, -0.161399f, -0.0254468f, -0.0675015f, -0.032735f, 0.0838085f, -0.120376f, 0.0864876f, -0.116016f, -0.0987828f, -0.121368f, 0.0163723f, 0.17318f, -0.0176134f, 0.036074f, 0.0682959f, 0.000213432f, -0.11617f, -0.101923f, 0.086107f, -0.0360058f, 0.0247235f, -0.0302883f, 0.0591648f, -0.0179554f, -0.0749138f, -0.00958334f, -0.0188212f, 0.113884f, -0.0134995f, -0.0492632f, -0.0139774f, -0.0913283f, -0.102496f, 0.173479f, -0.0281564f, -0.00447059f, 0.0459106f, 0.0433208f, 0.0179379f, 0.10636f, 0.0245353f, -0.16037f, 0.03292f, -0.0168235f, -0.0468957f, 0.0669307f, -0.0462523f, -0.0851793f, 0.042649f, -0.0576555f, 0.141148f, -0.0867187f, 0.0222098f, 0.0533255f, 0.0476563f, 0.00363488f, 0.033215f, -0.042412f, 0.069148f, 0.132884f, -0.0207856f, -0.0407533f, 0.0352941f, -0.0189262f, -0.00497456f, -0.129793f, 0.0543737f, -0.031499f, -0.184123f, 0.131681f, -0.101709f, -0.00279804f, 0.157892f, 0.148222f, 0.044634f, -0.0112402f, -0.0996959f, -0.134969f, -0.153561f, 0.00065056f, -0.00907331f, 0.146167f, -0.168382f, -0.0791075f, 0.0508178f, -0.0558157f, -0.186405f, 0.118236f, 0.0385268f, -0.181609f, -0.0675564f, -0.200833f, -0.122086f, -0.009993f, -0.14476f, 0.0445101f, -0.206702f, -0.0773689f, -0.0818901f, -0.0288414f, -0.107215f, -0.0192836f, 0.0652562f, -0.124263f, 0.0182308f, -0.12744f, 0.0479547f, 0.0410819f, -0.0444827f, 0.180929f, -0.12424f, 0.0620324f, 0.110723f, 0.140937f, 0.0735553f, -0.148389f, -0.0516381f, -0.233282f, 0.0736644f, -0.0801269f, -0.149787f, 0.104453f, -0.153513f, 0.0850248f, 0.128256f, -0.118655f, 0.0705916f, -0.134612f, 0.0857285f, 0.195062f, 0.077761f, 0.0399696f, -0.0681757f, -0.00717714f, -0.116922f, 0.0564842f, 0.199601f, -0.0722274f, 0.0152418f, -0.0885774f, 0.0599359f, -0.115014f, 0.081421f, -0.0522222f, -0.0409102f, 0.0440976f, -0.125813f, -0.0430211f, 0.0290458f, -0.120864f, 0.0487399f, 0.169203f, 0.100211f, -0.149705f, -0.102657f, -0.0453196f, -0.104593f, -0.0767161f, -0.285288f, -0.04837f, 0.0730971f, -0.00173396f, -0.20635f, -0.123847f, 0.101802f, 0.221743f, 0.149516f, 0.0831648f, -0.0178978f, 0.066132f, -0.0195464f, 0.0808232f, 0.137247f, -0.105984f, 0.0611119f, 0.0147097f, 0.0474208f, -0.0104123f, 0.0229493f, 0.136866f, -0.0716703f, -0.0482095f, -0.0542099f, -0.0202253f, -0.0403528f, 0.106507f, 0.0772007f, -0.107897f, -0.140556f, -0.102684f, 0.164938f, 0.0952719f, 0.167992f, -0.0957046f, 0.170318f, -0.149959f, -0.0126947f, 0.133795f, -0.0648941f, -0.0370755f, -0.0419747f, 0.0458573f, -0.091328f, -0.055894f, -0.0453855f, 0.155123f, -0.0488224f, -0.030955f, -0.0423598f, -0.000716575f, -0.0148603f, 0.0957339f, -0.0262168f, -0.0574627f, -0.0652589f, -0.107433f, -0.0447661f, 0.103444f, 0.103653f, -0.00282551f, -0.128843f, -0.0101753f, 0.170416f, -0.0546486f, -0.135028f, -0.0364155f, 0.142903f, -0.239957f, 0.10621f, 0.051247f, 0.0469381f, -0.0226231f, -0.00637336f, 0.0737495f, 0.109885f, 0.0553773f, 0.0746136f, 0.0535319f, -0.0955927f, 0.0307241f, 0.104242f, -0.139327f, 0.0260899f, 0.107574f, 0.187914f, 0.0477332f, -0.0378763f, 0.17333f, 0.0470871f, 0.0432105f, -0.0193059f, 0.181031f, -0.040887f, 0.0758016f, -0.0438483f, -0.124137f, -0.0620833f, 0.00113133f, 0.00781967f, 0.0219575f, 0.120079f, 0.169383f, 0.0443972f, -0.022148f, -0.0928882f, -0.125019f, 0.14559f, -0.0473095f, -0.135991f, -0.0402665f, 0.163462f, 0.134433f, -0.0626282f, 0.034751f, 0.0204665f, 0.158489f, 0.0923551f, 0.0389919f, -0.0387132f, 0.0532704f, -0.120576f, 0.0278877f, -0.138561f, -0.0089939f, 0.11018f, 0.00801705f, -0.0761219f, -0.0717592f, -0.0513673f, 0.00523012f, 0.0993675f, -0.100408f, -0.0878761f, -0.0443248f, 0.15169f, 0.126521f, -0.0882657f, 0.0979445f, 0.0151183f, 0.014455f, 0.0868088f, -0.166342f, -0.0758472f, -0.19693f, 0.073411f, -0.036997f, 0.123347f, 0.146367f, -0.133228f, 0.117057f, -0.0195823f, 0.112457f, 0.150748f, -0.104506f, -0.0131252f, 0.0467948f, 0.178107f, -0.220318f, 0.135903f, 0.110143f, -0.0657381f, 0.0278249f, -0.0576181f, -0.0226194f, 0.110123f, 0.0909545f, -0.117264f, -0.168054f, -0.00265314f, 0.13193f, -0.0915181f, -0.0468414f, 0.0118644f, -0.15361f, -0.0809925f, -0.196004f, 0.0357606f, 0.193201f, 0.0340211f, -0.197052f, 0.217349f, -0.0236541f, 0.0180348f, 0.045982f, 0.0561647f, 0.18987f, 0.00425959f, -0.140077f, 0.166372f, -0.0130419f, -0.0893631f, -0.0390774f, -0.124781f, -3.71853e-05f, 0.0563197f, 0.0423962f, 0.0365286f, -0.0394573f, -0.0618463f, 0.0518465f, 0.16159f, -0.196236f, -0.212874f, 0.0739625f, 0.0353871f, 0.184467f, -0.0107148f, -0.0851598f, 0.149853f, 0.182625f, 0.0964473f, 0.02188f, -0.0888594f, -0.15278f, 0.175493f, -0.105532f, -0.153976f, -0.01502f, -0.139523f, 0.0887929f, 0.0503693f, -0.000741446f, 0.0336002f, -0.0136429f, -0.0587141f, 0.0648026f, -0.0819668f, -0.0987433f, 0.0249826f, -0.167032f, 0.0636099f, 0.145912f, -0.148858f, 0.0608336f, 0.24209f, 0.227041f, 0.0740229f, 0.0986007f, 0.114243f, 0.23417f, 0.132558f, -0.129836f, 0.150689f, 0.0144661f, -0.148335f, -0.176855f, -0.0137056f, 0.125543f, 0.115331f, -0.00682686f, 0.052277f, -0.022536f, -0.0356142f, -0.0339755f, 0.212203f, -0.0161967f, 0.022782f, 0.147992f, 0.0667075f, -0.0578816f, -0.171073f, 0.0558276f, -0.0590269f, -0.135272f, -0.014378f, -0.0557347f, 0.194427f, -0.0126853f, -0.0873502f, 0.0803134f, -0.12421f, 0.137484f, 0.0258375f, 0.186328f, 0.134182f, 0.0246093f, -0.0645865f, 0.111702f, -0.034699f, 0.181233f, -0.0238755f, 0.125813f, 0.0842406f, 0.183031f, -0.0598155f, 0.245697f, 0.0312404f, 0.0814588f, -0.0322444f, 0.0865587f, 0.198678f, 0.0521107f, -0.132839f, -0.139594f, 0.143826f, 0.122632f, -0.129947f, -0.184194f, -0.197762f, -0.217548f, 0.0699114f, 0.211195f, 0.0316762f, -0.00358143f, -0.11026f, 0.164885f, 0.0309444f, -0.155715f, -0.195615f, -0.0172621f, -0.00112344f, -0.167425f, 0.00429552f, -0.120452f, -0.245431f, -0.119522f, -0.118106f, 0.0108116f, -0.0872528f, -0.169257f, 0.0270708f, -0.171784f, 0.121024f, 0.17804f, -0.191023f, -0.0446992f, 0.00970501f, 0.00196673f, 0.138712f, 0.0903777f, -0.19672f, -0.216687f, -0.045708f, 0.227837f, -0.010228f, 0.0946287f, -0.0741684f, -0.040613f, -0.0714791f, -0.133606f, 0.164368f, -0.0299791f, 0.0351825f, -0.0779772f, 0.033954f, 0.0524658f, -0.0351357f, -0.0855536f, -0.0294337f, 0.0756127f, 0.0977941f, 0.0581376f, -0.119395f, 0.0401141f, -0.059365f, -0.0530002f, 0.122042f, 0.000420021f, 0.121651f, 0.0978229f, 0.108919f, -0.112468f, -0.178135f, 0.0290342f, 0.197987f, 0.0315639f, 0.113109f, -0.229685f, 0.125691f, 0.0137326f, 0.242313f, -0.0741524f, -0.029125f, 0.218219f, -0.169513f, -0.0999682f, -0.165589f, 0.0662993f, -0.229775f, 0.059106f, 0.021652f, -0.179259f, 0.0498533f, 0.136631f, 0.0659487f, -0.0602608f, -0.177352f, -0.0400342f, 0.0596325f, 0.23561f, -0.0774593f, -0.204759f, 0.0651916f, -0.00977185f, 0.206291f, 0.070036f, 0.230868f, -0.0161492f, 0.205551f, -0.00272618f, 0.0881404f, -0.157007f, -0.198082f, 0.103692f, 0.128099f, -0.105409f, 0.0569906f, -0.115896f, 0.0355608f, -0.0304371f, 0.00523947f, -0.0675709f, -0.152215f, -0.16921f, 0.110988f, -0.106128f, 0.0208699f, 0.0676003f, -0.0625427f, -0.0878087f, -0.14954f, 0.141815f, -0.055013f, -0.103974f, -0.0699684f, -0.00457155f, 0.0325801f, -0.065305f, -0.0481944f, 0.0341576f, 0.147058f, 0.0247107f, 0.0754974f, 0.0938479f, -0.00686817f, 0.101421f, 0.104235f, 0.0608477f, 0.113375f, -0.0551453f, 0.0568859f, -0.0892809f, 0.0196157f, -0.0271557f, 0.141894f, 0.0586611f, -0.0446338f, -0.0657518f, 0.13087f, 0.163139f, -0.178556f, -0.026033f, -0.0186782f, -0.033992f, 0.0507161f, 0.00447321f, -0.0480934f, 0.134664f, 0.180506f, 0.0886991f, 0.0263034f, 0.174455f, 0.0257809f, 0.0774396f, 0.16275f, 0.00830143f, 0.162208f, -0.0685138f, 0.113024f, 0.0988647f, -0.0488875f, -0.00499152f, 0.0486584f, -0.00518313f, -0.0268773f, -0.178308f, 0.104775f, 0.0425722f, -0.0811592f, 0.259484f, 0.0870161f, -0.0772459f, 0.0350187f, -0.0582156f, 0.00197791f, -0.0789513f, 0.0267279f, 0.0276067f, -0.125326f, -0.0848114f, 0.240722f, -0.064279f, -0.0838489f, 0.0665209f, -0.0752243f, 0.0849417f, 0.0765159f, 0.0457584f, 0.0300721f, -0.00844421f, -0.00524509f, 0.0292671f, -0.11594f, -0.120262f, -0.0195565f, 0.202918f, 0.00977621f, -0.0654862f, -0.116259f, 0.0717578f, -0.101156f, 0.0211636f, -0.016131f, -0.0805675f, 0.00732417f, 0.00577963f, -0.0995856f, 0.0717028f, -0.112347f, -0.0858455f, -0.18503f, 0.00227762f, 0.02312f, 0.0523139f, -0.0547396f, -0.0726064f, -0.00585426f, -0.192751f, -0.0582899f, 0.220256f, -0.0820906f, 0.0477417f, -0.120973f, -0.110924f, -0.102988f, 0.120771f, 0.0999859f, -0.0288034f, -0.0718033f, 0.101614f, 0.130136f, 0.092103f, 0.157661f, -0.128097f, -0.174736f, -0.053796f, -0.0177985f, -0.0181608f, 0.153569f, 0.0116702f, 0.1272f, -0.0411353f, -0.0252269f, 0.0625156f, -0.0454364f, 0.0053672f, 0.0650199f, -0.171049f, 0.0133555f, 0.0011833f, 0.145401f, 0.0123702f, 0.0679677f, 0.20106f, 0.0898505f, -0.00898362f, -0.0533131f, 0.0674751f, -0.066227f, 0.116225f, -0.0494305f, -0.00423325f, -0.114613f, 0.114488f, 0.162575f, 0.114826f, 0.0266282f, -0.0721032f, 0.0336648f, -0.206887f, 0.0726949f, 0.142056f, 0.0026404f, -0.0130715f, 0.0329598f, 0.0627047f, -0.0136935f, 0.163289f, 0.060344f, 0.0170529f, 0.125782f, 0.0452592f, 0.111898f, -0.086586f, -0.143835f, -0.00214197f, 0.104327f, 0.00991283f, 0.0391574f, 0.122662f, 0.17684f, 0.0953998f, -0.0793238f, 0.0476865f, 0.048359f, 0.033038f, 0.0561141f, 0.0222788f, -0.0528268f, 0.00792118f, 0.0996829f, -0.115296f, -0.0203466f, -0.108663f, 0.061369f, 0.0792902f, -0.0257914f, 0.024982f, 0.0432196f, 0.0687766f, 0.0195594f, 0.110014f, -0.112624f, -0.0440845f, -0.11147f, 0.21882f, 0.190598f, -0.0183972f, -0.0312142f, -0.0869088f, 0.1426f, 0.0343001f, 0.0518998f, 0.0930626f, 0.047533f, -0.130576f, 0.0907656f, -0.0155473f, -0.0493213f, -0.0612271f, 0.0920771f, -0.102488f, -0.0338334f, -0.057955f, 0.0726389f, -0.0334394f, 0.0953315f, 0.02575f, -0.0855793f, -0.133097f, -0.048143f, -0.0444268f, -0.0659391f, 0.0661943f, -0.0165055f, 0.0193379f, 0.00917118f, 0.0651961f, 0.0158065f, 0.0887668f, -0.00900693f, 0.0624844f, -0.0510305f, -0.055071f, -0.0186189f, -0.12038f, -0.0956179f, 0.0495999f, 0.0916311f, 0.132555f, 0.167235f, -0.202494f, -0.0412923f, -0.0845511f, -0.148457f, 0.0211184f, -0.0623694f, -0.029788f, 0.0500649f, -0.0582571f, -0.0415975f, 0.0447035f, 0.0395402f, 0.0426817f, 0.0170492f, 0.184991f, 0.0852413f, -0.00262141f, -0.0507683f, -0.00384451f, 0.0936125f, 0.326467f, -0.123626f, -0.0526193f, -0.00398891f, -0.0318362f, -0.126356f, 0.0307343f, 0.143458f, 0.058355f, 0.0183521f, 0.0672022f, 0.0102167f, -0.206092f, -0.0428801f, -0.00985702f, -0.0445854f, -0.0988178f, -0.177906f, 0.0669455f, 0.00839423f, 0.0833277f, 0.0734932f, -0.00249926f, -0.0945426f, -0.033803f, 0.0125781f, 0.0986367f, 0.11203f, -0.0732062f, 0.0120887f, -0.0338409f, 0.0469833f, 0.0153375f, -0.115527f, -0.203813f, -0.0601034f, 0.0944788f, 0.0107559f, 0.0619347f, -0.0270294f, 0.013477f, -0.152673f, -0.0556772f, 0.0591015f, 0.00897974f, -0.0483985f, 0.0524743f, 0.0539942f, 0.0454756f, 0.15052f, 0.0798627f, 0.00875488f, -0.0235141f, -0.110264f, -0.108789f, 0.092852f, 0.0193547f, 0.506281f, -0.0101649f, -0.125185f, 0.0274984f, 0.206084f, 0.0138848f, 0.0490969f, -0.043385f, 0.0275422f, 0.0318216f, 0.12853f, -0.0269361f, 0.100133f, -0.0162707f, 0.0235377f, 0.0719556f, 0.127549f, -0.0624009f, 0.130751f, -0.0793305f, 0.00891756f, 0.0283817f, -0.00322176f, 0.0613027f, -0.0666218f, -0.00981686f, -0.0407078f, -0.010623f, -0.13208f, 0.0207655f, -0.0116858f, 0.0912797f, -0.0256342f, -0.0809379f, -0.0387359f, -0.0138692f, -0.0345037f, 0.0612719f, -0.0453292f, -0.0834679f, -0.0766878f, -0.0166844f, 0.104561f, -0.0272297f, -0.0351281f, -0.112913f, -0.0813271f, 0.0296496f, -0.000953743f, -0.00142208f, 0.0557043f, 0.018061f, -0.0446542f, -0.0871706f, 0.134839f, -0.0441106f, -0.211585f, -0.200069f, 0.0361438f, 0.0957601f, 0.00366335f, -0.116671f, -0.0186735f, -0.022059f, 0.206169f, 0.0546379f, -0.13935f, -0.0274789f, 0.0579642f, 0.091942f, 0.0956699f, -0.0400646f, 0.216185f, -0.142591f, -0.0608114f, 0.0537295f, 0.163986f, 0.0344787f, 0.0669323f, 0.0102841f, 0.0175066f, 0.0306314f, 0.11977f, -0.120758f, -0.0253747f, -0.0720847f, 0.221072f, -0.152408f, 0.0724518f, 0.0995977f, 0.207716f, 0.118658f, -0.115387f, 0.102173f, -0.0382988f, 0.202202f, 0.136778f, 0.0453659f, -0.000397965f, -0.0341297f, -0.0316426f, -0.0989667f, -0.0584143f, 0.0230828f, -0.0385365f, -0.00039644f, 0.0946013f, -0.0325689f, 0.162284f, 0.119864f, 0.12521f, -0.0496226f, -0.110841f, -0.0812167f, 0.154131f, -0.0401576f, -0.171726f, 0.0760364f, 0.00147092f, 0.0178388f, 0.0164347f, -0.18494f, -0.108767f, 0.0856091f, 0.0128248f, 0.0134104f, -0.0206625f, 0.198649f, -0.101774f, 0.118402f, -0.106872f, 0.0790532f, 0.31208f, -0.104503f, 0.221366f, 0.108715f, -0.0785747f, 0.0860225f, 0.0124152f, -0.0152365f, 0.0415997f, -0.216498f, 0.222525f, 0.00010948f, 0.22495f, 0.126617f, 0.0837539f, -0.10343f, -0.0461965f, 0.0460499f, 0.325301f, -0.104262f, 0.055225f, -0.0842747f, 0.0122698f, 0.0047772f, -0.106242f, -0.0599918f, -0.247671f, -0.117542f, 0.0291219f, 0.0736521f, 0.169387f, -0.154792f, 0.0453801f, -0.105047f, -0.0153828f, 0.0594493f, -0.283981f, -0.0571912f, -0.0753058f, -0.24572f, -0.0193942f, 0.0156148f, 0.127611f, 0.0558817f, 0.157916f, 0.132562f, 0.0158532f, 0.00973742f, -0.0203385f, -0.055864f, -0.0354049f, 0.0543756f, 0.0192652f, 0.174103f, 0.0396276f, 0.00309626f, -0.139835f, 0.133067f, 0.00404204f, 0.0627644f, 0.269977f, -0.141669f, -0.107502f, 0.0907616f, -0.0666098f, 0.0243204f, -0.0758768f, -0.0138853f, -0.0373272f, 0.0707869f, 0.105093f, 0.0599466f, 0.0994015f, 0.080932f, 0.013829f, 0.0101321f, -0.125941f, -0.0459583f, -0.119546f, -0.148984f, -0.0760528f, 0.159849f, 0.00448167f, 0.0852321f, -0.0709168f, 0.0906486f, 0.0909991f, -0.0257232f, -0.0791467f, -0.0559582f, 0.0151411f, 0.0163342f, 0.0967899f, -0.0161311f, 0.0650993f, -0.0171766f, 0.0609393f, -0.0567612f, -0.0957003f, -0.0753419f, -0.214392f, -0.0713152f, -0.0613355f, 0.00179892f, 0.0567592f, -0.0249343f, -0.0835842f, -0.0186649f, 0.0149852f, -0.0572842f, -0.0238066f, -0.0821926f, 0.0659187f, 0.0342061f, 0.156683f, 0.116517f, -0.0546661f, 0.10402f, -0.00480241f, -0.0523725f, -0.0380883f, -0.0546994f, -0.180648f, -0.0640763f, 0.0321595f, 0.0487751f, 0.0465224f, -0.064828f, 0.0820921f, -0.0383253f, 0.0351362f, -0.0832106f, 0.0116427f, -0.0242864f, 0.021749f, -0.055133f, 0.178711f, 0.0720754f, 0.0165517f, -0.0135206f, -0.0749812f, 0.028983f, -0.0610308f, -0.0365529f, -0.152605f, -0.00451426f, 0.0197527f, -0.0842365f, -0.124969f, 0.169012f, 0.0368223f, -0.055574f, -0.027551f, -0.0110338f, 0.0281898f, -0.00495693f, 0.154685f, 0.0544097f, 0.00233078f, -0.0621405f, -0.0509658f, -0.0312413f, -0.0634477f, 0.0228387f, 0.0830149f, 0.114186f, 0.0833592f, 0.0456783f, -0.00661996f, 0.00663814f, -0.0725355f, 0.0985914f, -0.016528f, 0.0100259f, 0.0407348f, 0.0686696f, -0.208166f, -0.0801764f, 0.140074f, -0.190496f, 0.0862792f, -0.0404094f, 0.103806f, -0.0513956f, -0.214911f, -0.0668532f, 0.0118568f, 0.0436801f, 0.0359938f, 0.247097f, 0.165612f, 0.216534f, 0.0541593f, -0.223583f, -0.0971565f, 0.0868748f, 0.221431f, 0.0751797f, 0.18293f, -0.112311f, 0.0352636f, -0.0568786f, -0.0190552f, -0.0344846f, -0.00574534f, -0.049983f, -0.074326f, -0.146739f, -0.0528254f, -0.148481f, 0.0339338f, -0.0687658f, -0.126925f, 0.110463f, -0.179226f, -0.275178f, 0.0725671f, 0.263698f, -0.149539f, -0.0544036f, -0.0558017f, -0.147531f, 0.199768f, 0.0118148f, -0.0124165f, -0.0588988f, -0.140344f, 0.0188398f, 0.11823f, 0.0282249f, -0.0160622f, -0.0810362f, 0.133902f, -0.000118964f, -0.0669401f, 0.0769808f, 0.0905405f, -0.129734f, 0.00490786f, -0.122413f, -0.0964339f, -0.0887849f, -0.080487f, -0.110678f, 0.188659f, 0.166299f, 0.0553105f, 0.0153166f, -0.157128f, -0.146164f, 0.0840788f, 0.234095f, -0.0916391f, 0.0483546f, 0.0935547f, 0.0865391f, -0.100962f, 0.201106f, -0.141284f, 0.129448f, 0.127238f, 0.0843228f, -0.0435653f, 0.0175392f, -0.0358037f, -0.0987649f, -0.00101933f, -0.004197f, -0.146547f, -0.0893929f, -0.00877891f, 0.197398f, -0.0148528f, -0.166447f, -0.0394063f, 0.0350275f, -0.153279f, 0.159223f, -0.00343042f, -0.107678f, 0.0213147f, -0.0236761f, 0.0273656f, 0.00782294f, -0.0781043f, -0.119342f, -0.137623f, -0.0862092f, -0.106831f, -0.112331f, -0.100044f, 0.112236f, -0.0339431f, 0.176153f, 0.0106297f, 0.0617525f, 0.17532f, -0.057379f, 0.323637f, -0.180683f, -0.0211466f, -0.102154f, -0.194607f, -0.126778f, 0.108214f, -0.112873f, 0.0859078f, -0.175945f, -0.129017f, -0.0305565f, 0.142255f, -0.0816675f, 0.0622978f, -0.0583718f, -0.05839f, 0.187459f, 0.149419f, -0.127337f, 0.0200849f, 0.11518f, 0.0224107f, -0.0976318f, 0.200979f, 0.000184428f, -0.0616187f, 0.0783563f, 0.0747572f, 0.0638092f, -0.0610098f, 0.0905139f, -0.00614175f, 0.138554f, 0.177366f, 0.355353f, 0.172908f, -0.128997f, -0.0236299f, 0.171501f, -0.122041f, -0.0453183f, 0.0292847f, -0.0879876f, 0.0263188f, 0.0166294f, -0.157562f, -0.0382086f, 0.0717738f, 0.00851867f, 0.0717821f, -0.195343f, -0.0711182f, -0.0924475f, -0.052077f, 0.151208f, -0.0300801f, -0.167242f, 0.147376f, -0.102447f, -0.217794f, -0.0126332f, -0.0482193f, 0.117791f, 0.0397958f, 0.0171051f, -0.237167f, -0.0442604f, 0.155004f, 0.0494393f, -0.0032092f, 0.0943748f, 0.0272705f, 0.118123f, -0.0100737f, -0.142745f, -0.16311f, -0.152611f, -0.0517303f, -0.0578506f, 0.0975493f, 0.230121f, 0.0806914f, 0.0698394f, 0.00347834f, 0.141088f, 0.150461f, -0.112607f, 0.0256688f, -0.0185949f, 0.0541944f, -0.0437922f, 0.190785f, 0.049676f, -0.192441f, 0.0494356f, 0.000664729f, 0.0810088f, 0.0869309f, 0.0317525f, -0.0726108f, -0.115763f, 0.0655098f, 0.052955f, -0.108407f, -0.0420663f, 0.105542f, 0.22183f, -0.247353f, -0.10434f, -0.124662f, -0.0553361f, -0.0443242f, 0.0279413f, -0.0619061f, 0.094487f, 0.0576409f, -0.172767f, -0.063586f, -0.107582f, 0.0546273f, -0.165452f, 0.0476452f, 0.00908244f, 0.0896353f, 0.0152602f, -0.0707933f, 0.0535819f, 0.0678963f, 0.0817032f, -0.0596036f, 0.105493f, -0.0527942f, 0.202516f, -0.0280536f, -0.101483f, -0.0611291f, -0.165931f, 0.0535628f, -0.194462f, -0.0292176f, 0.0979189f, 0.0325734f, 0.0365337f, -0.0590085f, 0.0255994f, 0.22856f, -0.115562f, -0.0374507f, -0.0907682f, -0.281923f, -0.0117837f, -0.0251611f, -0.0134543f, 0.0796677f, 0.0331931f, 0.0288113f, -0.0781232f, -0.148427f, 0.0386753f, -0.0998701f, 0.152178f, -0.0632351f, 0.152633f, 0.171256f, 0.105353f, -0.0562339f, -0.0634065f, 0.0943332f, -0.0879878f, -0.153541f, -0.0541946f, 0.0465559f, -0.0490596f, 0.0185571f, 0.0396015f, 0.0212191f, 0.263072f, -0.031052f, -0.0239434f, -0.0310677f, 0.0514112f, -0.0211372f, 0.0244138f, -0.154679f, 0.0225267f, -0.00346771f, -0.0884325f, -0.12446f, -0.0619889f, -0.0935003f, -0.104676f, -0.104355f, 0.0880984f, -0.0265771f, -0.10376f, 0.229691f, -0.139067f, -0.0538958f, -0.104917f, -0.118584f, -0.0395619f, 0.255789f, 0.0468485f, 0.19762f, -0.171467f, 0.161502f, 0.0531912f, 0.183514f, 0.0197352f, 0.122671f, -0.116905f, 0.0585687f, 0.102923f, 0.0318928f, 0.196339f, 0.0341038f, 0.0498157f, -0.111346f, -0.132816f, 0.0411298f, 0.0452598f, -0.127852f, -0.0276237f, 0.115473f, -0.018306f, 0.072787f, -0.0326006f, 0.0647276f, -0.00643024f, 0.0770882f, -0.0960374f, 0.0706334f, -0.0543848f, 0.0737371f, -0.0850587f, 0.160197f, -0.0320661f, -0.0834736f, 0.00644877f, -0.166506f, -0.00475119f, -0.16543f, -0.157454f, 0.0200175f, -0.029403f, 0.00217441f, -0.161595f, 0.0228268f, -0.0581512f, -0.0143532f, -0.0850509f, -0.0665063f, 0.196068f, -0.108222f, 0.0917279f, 0.151693f, 0.0339143f, -0.175897f, 0.106987f, -0.0735666f, 0.0246292f, 0.0537701f, -0.0189938f, -0.0371568f, -0.0407939f, -0.0124601f, -0.0204112f, 0.186158f, -0.0547693f, -0.209668f, 0.0613652f, -0.147796f, 0.145464f, -0.0431169f, -0.0800354f, 0.0819162f, -0.0311733f, -0.223271f, 0.114357f, 0.200407f, -0.167883f, -0.0565555f, -0.082116f, -0.157645f, 0.0147805f, -0.25146f, 0.130361f, -0.175493f, 0.0983575f, -0.122586f, -0.0593421f, -0.138212f, -0.0656995f, -0.193956f, -0.212354f, 0.395099f, 0.0260262f, 0.170966f, -0.0331359f, 0.11652f, 0.0502293f, -0.130208f, -0.0296508f, 0.0159232f, 0.0662779f, 0.12035f, -0.0334234f, -0.245169f, 0.153182f, 0.160908f, 0.191002f, -0.161653f, -0.029805f, -0.133755f, -0.0966987f, -0.20416f, -0.0849983f, -0.121233f, 0.0345028f, -0.0651239f, 0.250317f, -0.0191073f, -0.0646154f, 0.0711013f, -0.185597f, 0.102609f, -0.0134878f, 0.025639f, 0.133456f, 0.0736352f, -0.0186072f, 0.122545f, -0.0386821f, -0.161483f, 0.08861f, -0.016981f, -0.140096f, 0.130527f, 0.0170225f, 0.128637f, 0.123293f, -0.0302507f, -0.078807f, -0.0504943f, -0.2324f, 0.102138f, 0.0270247f, 0.0668453f, -0.111898f, 0.111366f, -0.0267719f, -0.101504f, -0.0255139f, -0.0251406f, 0.0491895f, 0.14468f, 0.0102125f, 0.163412f, 0.0564468f, -0.289331f, -0.27788f, 0.120678f, 0.0450981f, 0.0720029f, -0.098434f, 0.0809238f, 0.102152f, 0.187981f, -0.0359026f, 0.00157138f, -0.128335f, 0.0462064f, 0.0422544f, -0.00635947f, 0.0913428f, 0.217387f, -0.0578654f, 0.183622f, 0.0238879f, -0.0341105f, -0.141388f, 0.0399451f, -0.060489f, -0.100463f, 0.0278535f, 0.14355f, 0.224527f, 0.205709f, -0.0169582f, -0.123821f, -0.0556021f, 0.055677f, 0.123974f, -0.117667f, -0.0121714f, 0.0856544f, -0.0218671f, 0.0696434f, 0.00376245f, -0.0377013f, 0.209142f, 0.0520288f, -0.0156725f, -0.0476671f, 0.048126f, 0.178358f, 0.0990241f, -0.0151076f, 0.278761f, 0.249853f, 0.0341297f, -0.189796f, 0.063481f, 0.0310902f, -0.0128432f, 0.224196f, 0.0471976f, -0.142928f, -0.170782f, 0.0689108f, 0.059764f, 0.117208f, -0.0392957f, -0.125759f, -0.0134487f, 0.206955f, 0.0744874f, 0.0622309f, -0.0890242f, -0.0183958f, 0.0893514f, -0.041915f, -0.0730009f, -0.364633f, 0.0621101f, 0.0885124f, -0.0764344f, 0.187484f, -0.114899f, 0.0526588f, 0.00530157f, 0.0545163f, 0.0759391f, -0.165139f, -0.082697f, 0.181177f, -0.0886298f, -0.00547371f, -0.0166092f, 0.106255f, 0.0397349f, -0.1397f, 0.132479f, -0.0613662f, 0.137312f, 0.0730949f, 0.0389918f, -0.0242001f, -0.0537694f, 0.0515583f, 0.106285f, 0.197367f, 0.0966413f, 0.0340544f, -0.0420914f, -0.122777f, -0.00443229f, -0.00465367f, 0.133038f, -0.164217f, -0.0426249f, -0.0782378f, -0.00685746f, 0.0175493f, 0.0355317f, -0.181005f, -0.0785873f, -0.036932f, -0.156365f, 0.12386f, 0.0069765f, 0.0596694f, 0.0486543f, -0.0182861f, 0.170968f, 0.0511411f, -0.0140707f, 0.0638742f, -0.120624f, -0.00957595f, 0.0752915f, -0.0776865f, -0.0903544f, 0.0451975f, -0.150757f, -0.119201f, -0.0593128f, -0.0096603f, 0.0372902f, -0.176847f, 0.0201007f, -0.0217225f, 0.165706f, -0.140582f, -0.0859111f, -0.0703147f, -0.0572036f, -0.0604757f, -0.202534f, 0.109766f, -0.123113f, 0.0914186f, 0.233811f, 0.0429886f, -0.180828f, -0.178421f, 0.0232676f, 0.145208f, 0.0991765f, 0.109628f, 0.0202259f, 0.010757f, 0.114829f, 0.0954936f, 0.0807056f, 0.0310135f, 0.020901f, -0.0340718f, -0.0580983f, -0.0289249f, 0.0793005f, 0.0581955f, -0.161341f, -0.0583527f, 0.169812f, 0.0338911f, -0.124377f, 0.153814f, -0.0383632f, 0.119307f, -0.0218164f, 0.0462396f, 0.0801678f, -0.0176299f, 0.12649f, 0.0422294f, -0.129031f, 0.0806326f, 0.138529f, -0.0552237f, -0.02954f, 0.0164671f, -0.0239995f, 0.163772f, -0.262017f, -0.0447595f, 0.0689815f, 0.0306505f, 0.103149f, -0.0610011f, 0.0259506f, -0.0174423f, -0.0165307f, -0.0545162f, -0.0514521f, 0.0263794f, 0.079718f, 0.0574286f, -0.173827f, -0.00200689f, -0.0598935f, 0.0371539f, -0.213711f, 0.0750598f, 0.0266551f, -0.0217048f, 0.127184f, 0.189435f, -0.0798936f, -0.142863f, -0.0252378f, -0.0977565f, -0.0136097f, -0.183449f, 0.0525337f, 0.116708f, -0.0900164f, -0.0606043f, -0.00462095f, 0.0207602f, 0.188145f, 0.0851213f, 0.0235011f, -0.0645815f, 0.0913083f, -0.072882f, 0.0343748f, 0.0265613f, -0.02979f, 0.0574572f, 0.0272308f, 0.00126756f, -0.0281206f, -0.0396723f, 0.0310357f, -0.187827f, -0.0436894f, 0.0926761f, 0.0561628f, -0.0340517f, -0.0931175f, 0.0360929f, -0.0446404f, -0.0204395f, 0.0553739f, -0.120399f, -0.00921898f, -0.133452f, -0.0178799f, -0.146955f, -0.117122f, -0.0341871f, 0.0796135f, -0.16146f, 0.0223357f, 0.0177322f, -0.0264791f, -0.0738843f, -0.0579481f, -0.0170775f, -0.0975932f, -0.169476f, -0.0826062f, 0.0960074f, -0.0407822f, 0.0323548f, 0.0492624f, -0.124882f, 0.114071f, -0.0293525f, -0.0888607f, -0.0209249f, -0.0369289f, 0.0396282f, 0.00801121f, 0.181714f, 0.050687f, -0.159937f, -0.0944435f, 0.0433056f, -0.0204272f, 0.0241667f, 0.0178888f, -0.104287f, -0.106596f, 0.151866f, 0.105114f, -0.16459f, 0.0390813f, -0.0126433f, 0.0414181f, -0.085814f, 0.0331876f, 0.140766f, -0.0201578f, -0.0258124f, 0.0559379f, 0.0706827f, 0.0775235f, -0.128254f, 0.0959146f, 0.0300454f, -0.167743f, -0.192013f, -0.102125f, -0.0554933f, 0.0146653f, -0.162462f, 0.0409851f, 0.0387179f, -0.0214376f, 0.154117f, -0.110109f, -0.183253f, -0.128314f, -0.0942717f, -0.183272f, 0.0980259f, -0.0243283f, -0.177558f, 0.174996f, 0.00224619f, -0.0106294f, 0.12353f, 0.0439349f, 0.0633786f, 0.0301368f, -0.0887128f, 0.0921649f, 0.168808f, -0.107877f, -0.00910369f, -0.128512f, -0.119631f, 0.0930877f, -0.0352523f, -0.0143242f, -0.078217f, 0.0276591f, -0.0187323f, -0.0307008f, 0.0921205f, 0.0699846f, 0.0200002f, 0.129201f, 0.0617049f, 0.00725568f, -0.119429f, 0.132591f, 0.139869f, 0.157952f, 0.0251645f, -0.0186187f, -0.11061f, -0.017429f, 0.0657905f, -0.0309936f, 0.0132388f, 0.0343541f, 0.0561454f, -0.215837f, 0.185509f, -0.165865f, -0.163054f, -0.117196f, -0.0122991f, 0.11614f, 0.0811041f, -0.153505f, 0.0918396f, 0.0886349f, -0.0139397f, -0.00449692f, 0.00664853f, -0.0132763f, -0.0745228f, 0.0336967f, 0.0614807f, 0.000842729f, -0.048053f, 0.168358f, 0.109664f, -0.0547119f, -0.0241475f, -0.104774f, -0.000900733f, -0.08369f, 0.0119008f, -0.0408972f, 0.0453634f, -0.0465876f, -0.0743383f, 0.0213322f, 0.0274049f, 0.0115028f, -0.157673f, 0.114452f, 0.132829f, 0.0400931f, 0.0176683f, -0.0543693f, -0.116429f, -0.055881f, 0.0548198f, -0.0167624f, -0.137188f, 0.143737f, -0.14635f, -0.0913785f, -0.0830381f, 0.131179f, -0.102912f, -0.0741527f, 0.0818995f, 0.0279944f, 0.0978908f, 0.0569869f, -0.228329f, 0.108536f, -0.0817396f, -0.0409631f, 0.102986f, 0.0679182f, -0.129819f, -0.00178781f, -0.000949371f, 0.0120357f, -0.0911301f, 0.0915518f, -0.120705f, 0.00579146f, -0.0128012f, 0.0299989f, -0.149308f, -0.167055f, -0.0306304f, 0.11268f, 0.0437873f, -0.0914629f, -0.0179627f, -0.0630784f, -0.0660745f, -0.0477981f, -0.192671f, 0.0517858f, 0.0135204f, 0.000108312f, 0.0996472f, -0.128364f, 0.0837089f, -0.0235725f, -0.0836801f, -0.0489354f, 0.0728067f, -0.116644f, -0.0280781f, 0.0717246f, -0.0601562f, -0.0852854f, -0.0193938f, -0.000557825f, 0.172119f, -0.119715f, -0.0970076f, -0.0139308f, -0.0531718f, -0.221834f, -0.0951454f, -0.0195881f, 0.158979f, 0.0553294f, 0.145803f, -0.203284f, 0.00195901f, 0.22512f, 0.150931f, 0.235123f, -0.100634f, -0.142412f, -0.140706f, 0.160307f, 0.039533f, -0.0404806f, -0.0783184f, 0.170532f, 0.0902254f, -0.0335113f, 0.156764f, -0.026775f, 0.129406f, -0.105887f, 0.104044f, 0.209312f, 0.0343641f, -0.10415f, -0.0163317f, -0.022016f, 0.0103985f, 0.0295861f, -0.152081f, -0.0522026f, 0.0710051f, 0.209023f, -0.162775f, 0.2247f, -0.0310906f, -0.0127233f, -0.173616f, 0.0825299f, 0.119814f, -0.160672f, 0.0241808f, -0.0412168f, -0.0203648f, 0.0118348f, -0.0802751f, 0.0744671f, 0.00912047f, -0.0343979f, -0.0287181f, -0.0679421f, 0.0815575f, 0.160853f, 0.177331f, 0.228139f, -0.119137f, -0.0263672f, 0.141391f, 0.0890392f, 0.0241806f, -0.014957f, 0.0842366f, -0.0634034f, -0.00352435f, -0.0647338f, -0.0704556f, 0.248006f, 0.12815f, 0.153623f, -0.23471f, 0.0807046f, -0.131101f, -0.0987092f, -0.123771f, -0.0561046f, 0.142284f, 0.103219f, 0.310772f, 0.141914f, 0.0487534f, -0.168846f, 0.00854855f, 0.0467563f, 0.179686f, 0.00773209f, -0.312531f, 0.0810997f, 0.102518f, 0.215381f, 0.04974f, 0.192328f, 0.0743588f, -0.121022f, -0.091413f, -0.0146611f, -0.0909987f, -0.0884773f, 0.0361979f, 0.277054f, -0.126662f, -0.182756f, -0.0408954f, 0.0275093f, -0.0646125f, 0.0882562f, -0.121664f, 0.225229f, -0.0264722f, 0.186512f, 0.193255f, 0.035211f, 0.0545923f, 0.0709247f, 0.1706f, -0.0377241f, -0.0839551f, 0.136329f, 0.265707f, -0.15558f, -0.0101603f, -0.0052779f, -0.0968517f, 0.0351401f, 0.0845411f, 0.155776f, -0.00614828f, 0.0807984f, 0.253998f, 0.104267f, 0.0719216f, 0.264445f, -0.132094f, 0.229238f, -0.127824f, -0.207305f, -0.173316f, -0.130092f, 0.0512293f, 0.069255f, -0.00543555f, -0.067543f, 0.106868f, -0.00671417f, -0.212076f, -0.0675694f, -0.023777f, -0.0462174f, 0.10912f, 0.0718732f, 0.0997704f, -0.084118f, -0.111854f, -0.094087f, 0.144013f, 0.0158788f, 0.116172f, -0.0786992f, -0.0209709f, -0.000945643f, -0.0520986f, 0.0227475f, -0.059706f, 0.0175124f, 0.117135f, 0.0131238f, 0.0740943f, 0.0429592f, -0.0668684f, -0.127601f, -0.00296672f, -0.0773771f, 0.0606675f, 0.12525f, -0.0597006f, -0.112673f, 0.111145f, 0.0458712f, 0.10238f, -0.20533f, 0.152837f, 0.0436001f, -0.0722206f, 0.0353229f, -0.0836324f, -0.0145917f, 0.160741f, -0.0717213f, -0.0466016f, -0.113821f, 0.246708f, 0.0808379f, -0.0360144f, -0.0466988f, -0.0260007f, 0.0844352f, -0.077483f, 0.0293037f, -0.178987f, 0.00994707f, -0.0578144f, 0.138878f, 0.0439377f, -0.205148f, -0.0593293f, -0.0125513f, 0.0778864f, 0.0395441f, 0.0658933f, 0.0251831f, -0.221564f, -0.0861122f, 0.0901629f, 0.030902f, 0.128875f, 0.232907f, -0.104639f, -0.119405f, 0.053277f, -0.145833f, 0.167751f, 0.0138129f, 0.0478945f, -0.022017f, -0.0612267f, 0.0732605f, -0.131978f, 0.0862236f, 0.0447608f, -0.0594696f, -0.0252319f, -0.100314f, -0.0641654f, 0.228184f, 0.0564216f, -0.218754f, -0.0628334f, -0.0798551f, 0.00338606f, 0.0354515f, 0.0715397f, 0.142089f, -0.101071f, -0.1726f, 0.106584f, 0.0634552f, 0.0709969f, -0.0792633f, -0.0511265f, 0.0629066f, 0.0388203f, -0.0560456f, 0.0314645f, 0.083217f, -0.198786f, 0.0479241f, -0.11223f, -0.197838f, -0.0313312f, 0.122723f, 0.0839681f, -0.134944f, -0.0785882f, -0.0828636f, -0.287712f, 0.153737f, -0.0162443f, -0.0834466f, 0.113596f, -0.0912739f, 0.167337f, -0.144081f, -0.0466559f, -0.0444086f, 0.0345527f, 0.0294048f, -0.070774f, -0.0597546f, 0.109389f, 0.166269f, -0.0102108f, 0.239401f, -0.108908f, -0.0654138f, -0.0157124f, -0.178731f, -0.0278229f, 0.243719f, 0.0908672f, -0.0809205f, 0.0633302f, -0.0896935f, 0.0253119f, 0.104289f, -0.118919f, -0.0791384f, -0.00171327f, 0.0531701f, 0.00817198f, 0.0636778f, 0.0125121f, -0.0372024f, -0.0794561f, 0.0855425f, 0.0802832f, 0.149866f, 0.0899342f, 0.0796351f, -0.130418f, 0.0778847f, 0.138034f, -0.162864f, -0.0658372f, -0.000582841f, -0.0718205f, 0.0164846f, 0.12326f, -0.0301046f, 0.0295128f, 0.0164844f, -0.134958f, 0.126103f, 0.162127f, 0.122943f, 0.097593f, -0.0497622f, 0.0307886f, 0.115607f, 0.119671f, 0.0575297f, 0.237244f, 0.237844f, -0.120385f, 0.0185269f, -0.151675f, 0.013792f, -0.00434609f, 0.256335f, -0.129387f, -0.033707f, -0.172572f, -0.197225f, -0.0775815f, 0.117326f, 0.0722704f, 0.161337f, 0.268689f, -0.0232131f, 0.184057f, -0.02628f, 0.0589023f, 0.0766608f, -0.135857f, -0.293944f, 0.0951457f, -0.0376966f, 0.0991047f, -0.122709f, -0.151732f, 0.0150255f, -0.0182637f, -0.0896096f, -0.229367f, 0.118249f, 0.0414228f, 0.0808293f, -0.119314f, -0.0675262f, -0.0337733f, 0.119718f, 0.0539229f, 0.0895949f, -0.173761f, -0.0373005f, -0.00867023f, 0.242313f, 0.05759f, -0.188828f, -0.114104f, 0.165323f, -0.0485071f, 0.0787469f, 0.0675325f, -0.00982458f, -0.133983f, 0.139999f, 0.158771f, -9.82664e-05f, 0.0928612f, 0.151716f, 0.02759f, -0.0589136f, -0.03301f, -0.0265693f, -0.334053f, 0.0214912f, -0.259733f, 0.0622695f, 0.12815f, -0.128316f, 0.0180234f, -0.0249808f, 0.267746f, -0.0345661f, -0.0327125f, -0.042429f, 0.070859f, -0.01478f, -0.0473442f, -0.0359497f, 0.0189976f, 0.0542908f, 0.221699f, 0.0459262f, 0.190043f, -0.00975724f, -0.031989f, 0.18822f, 0.138925f, -0.0722022f, 0.0984302f, 0.180266f, -0.0988363f, 0.135339f, -0.1186f, -0.229581f, 0.0791205f, -0.142626f, -0.0817902f, -0.102928f, -0.0242243f, -0.143808f, -0.155735f, -0.0625971f, -0.0818553f, 0.0869503f, -0.0443158f, 0.146717f, 0.0384946f, -0.002777f, 0.135658f, 0.0943245f, 0.114505f, 0.150245f, 0.0304449f, 0.000787859f, -0.0581651f, -0.160698f, 0.181799f, -0.0435793f, 0.0367182f, -0.0712613f, 0.00949281f, 0.00189137f, 0.132277f, 0.0802559f, -0.00680718f, -0.112995f, 0.204432f, 0.10122f, 0.175456f, -0.0561278f, -0.00379259f, -0.0242393f, -0.0853658f, 0.134658f, -0.0470472f, 0.0955843f, -0.117244f, 0.128068f, -0.0242188f, -0.00719749f, 0.0557915f, 0.0432744f, -0.0929444f, 0.0929694f, -0.119393f, 0.0298612f, -0.0614791f, 0.0585451f, 0.0555055f, 0.00111062f, -0.0073521f, 0.0225589f, 0.00097404f, 0.212829f, -0.131785f, 0.139471f, 0.121879f, 0.212703f, 0.0150333f, -0.0270374f, 0.0331588f, -0.136124f, -0.194047f, 0.167218f, 0.0979946f, -0.0230122f, 0.0484694f, -0.0555302f, -0.0584359f, -0.131243f, 0.0265817f, -0.0661774f, 0.0642999f, -0.0153791f, -0.0228943f, -0.0808859f, 0.0747044f, 0.161034f, -0.0325942f, -0.00819585f, -0.0168002f, 0.128424f, 0.0771144f, 0.0658046f, -0.0273352f, -0.161335f, -0.117604f, -0.00229974f, 0.181926f, 0.0605688f, -0.0375969f, -0.0053931f, -0.0527661f, -0.00226324f, -0.0486329f, 0.136442f, 0.0125835f, -0.0550688f, 0.154003f, -0.0580668f, -0.00432958f, -0.0122076f, 0.112506f, 0.116569f, -0.0424141f, 0.08537f, -0.164871f, -0.13642f, -0.145119f, 0.0236546f, -0.0943367f, 0.0678614f, -0.0829328f, -0.126546f, -0.0101275f, 0.034004f, 0.0161545f, 0.137562f, -0.067301f, -0.0201343f, 0.154338f, -0.0355364f, -0.0797511f, -0.114489f, 0.0167873f, -0.0203755f, 0.0217353f, 0.0215612f, 0.175963f, -0.202896f, 0.0194114f, 0.00459342f, 0.196304f, 0.149114f, -0.150288f, 0.0380689f, -0.0652609f, 0.144392f, 0.0661209f, 0.0207868f, 0.0931665f, -0.0358892f, -0.0146509f, -0.0209168f, -0.107688f, -0.156446f, -0.146409f, 0.0412418f, -0.160812f, -0.211554f, -0.0200412f, 0.203285f, 0.162618f, 0.170018f, -0.0765926f, 0.0273167f, -0.0207109f, -0.15322f, -0.165167f, -0.134975f, 0.139696f, -0.128546f, -0.080486f, 0.0210503f, -0.10707f, 0.332543f, 0.029513f, 0.0566155f, -0.0850454f, -0.0926807f, -0.021134f, 0.040166f, -0.0115662f, 0.139953f, -0.110765f, 0.0504923f, -0.00275391f, -0.182419f, -0.0669985f, -0.14875f, 0.107175f, -0.0396383f, 0.0905292f, 0.129383f, 0.0131576f, -0.0499257f, 0.0133058f, 0.0531777f, 0.130718f, -0.12285f, -0.0474214f, -0.0964879f, 0.00533043f, -0.00732286f, -0.070387f, -0.105362f, -0.11813f, 0.244213f, -0.0203122f, -0.0507152f, -0.1391f, -0.127327f, -0.19299f, -0.0101486f, 0.0522479f, -0.029387f, 0.160354f, -0.176323f, 0.0446772f, -0.166633f, 0.0192333f, 0.0546932f, -0.142596f, 0.163317f, 0.0315478f, 0.0153579f, 0.1189f, -0.119299f, -0.0825551f, 0.0708388f, 0.0837881f, -0.0549873f, -0.16581f, 0.0669922f, 0.0440967f, -0.00229501f, 0.158094f, -0.0464467f, 0.124619f, 0.174381f, 0.0751483f, -0.0431786f, -0.101814f, 0.0355486f, 0.146799f, 0.0627063f, -0.0671611f, -0.0341973f, 0.14488f, -0.127341f, 0.196102f, 0.0779257f, -0.0989377f, 0.249396f, -0.193817f, 0.0537697f, -0.02757f, 0.108567f, 0.104587f, 0.106003f, -0.0765947f, -0.0996887f, 0.177895f, -0.0233103f, -0.0275741f, 0.143125f, -0.124152f, -0.00827242f, -0.138893f, -0.00297713f, -0.0216323f, 0.166591f, 0.0771929f, 0.0543907f, -0.0795592f, 0.171565f, -0.00853459f, -0.0461613f, -0.0424127f, 0.0460216f, -0.124337f, 0.0272314f, -0.212646f, -0.0732827f, -0.0574534f, -0.0521461f, -0.0927745f, -0.058473f, -0.0359983f, -0.0575153f, -0.0615206f, 0.141538f, -0.00333914f, -0.0273446f, 0.0643426f, 0.0756727f, 0.01994f, 0.0989847f, -0.210229f, -0.171711f, 0.106286f, 0.0844137f, -0.0436689f, -0.00902857f, 0.183789f, 0.205734f, 0.109682f, 0.030121f, 0.088103f, -0.042261f, 0.146634f, -0.0370659f, 0.072551f, -0.0952516f, 0.0381319f, -0.00082042f, -0.0376823f, -0.0255452f, 0.0528172f, 0.0252582f, 0.0648317f, 0.0552988f, -0.110153f, 0.0457175f, 0.0938817f, 0.150512f, -0.0572528f, 0.0131181f, -0.0406079f, 0.171424f, 0.0168995f, -0.101518f, -0.045736f, 0.20297f, -0.0671971f, 0.119488f, 0.0235422f, -0.069127f, 0.0428016f, 0.0677088f, 0.0918837f, -0.166524f, 0.132736f, 0.12259f, 0.079509f, -0.138119f, -0.0131187f, 0.113654f, -0.115099f, 0.0620746f, 0.0293653f, -0.01885f, 0.0899976f, 0.0498609f, -0.0512985f, 0.108378f, 0.108999f, 0.108133f, -0.0596584f, -0.0305435f, -0.125339f, 0.0529319f, 0.0945059f, 0.0145943f, -0.0173728f, 0.0662179f, -0.141226f, 0.0863494f, 0.0163103f, 0.0912383f, 0.0942595f, 0.00119607f, 0.115805f, -0.144172f, 0.0410097f, 0.0123841f, -0.00789274f, -0.145725f, -0.038305f, 0.00983593f, -0.037382f, 0.135444f, 0.0352315f, 0.0639433f, 0.142085f, -0.0980125f, -0.131329f, 0.0509245f, -0.00746145f, -0.0542481f, -0.0447291f, 0.0614461f, -0.0559043f, 0.124276f, -0.0472131f, 0.0198238f, 0.0843348f, 0.00111607f, 0.0995528f, -0.114993f, -0.0631032f, 0.147209f, 0.00854064f, -0.161965f, -0.046016f, 0.0690924f, -0.00325423f, 0.00840996f, -0.134373f, -0.0500765f, -0.060242f, 0.106736f, 0.172203f, -0.0938509f, 0.088433f, 0.0026021f, 0.0501276f, 0.0668051f, 0.0235935f, -0.0805751f, 0.106767f, -0.276774f, -0.00344507f, -0.114564f, 0.0233437f, 0.0775937f, 0.0501874f, -0.138205f, -0.0174192f, -0.117492f, 0.0839187f, -0.0927383f, -0.244181f, -0.0378516f, 0.229453f, -0.194101f, -0.0575955f, -0.0526997f, 0.0504125f, -0.0904885f, 0.0919179f, 0.0529695f, -0.190486f, -0.0611774f, -0.0277967f, -0.0649505f, -0.0427428f, 0.0284712f, -0.124443f, -0.182202f, -0.0188122f, -0.0524912f, 0.00770081f, -0.0368646f, -0.0552739f, 0.081907f, -0.0462215f, 0.0527724f, -0.156756f, -0.2023f, -0.126114f, 0.0614277f, 0.0683136f, 0.189556f, -0.0695223f, 0.0819047f, 0.0607734f, -0.0777004f, 0.125933f, -0.0408698f, 0.170915f, -0.0533876f, 0.077232f, -0.170028f, 0.0839611f, -0.0230655f, -0.0547007f, -0.0660755f, 0.0442244f, -0.145143f, -0.0921901f, 0.0580716f, -0.16432f, -0.200827f, 0.209861f, 0.0842086f, -0.022242f, -0.0706164f, -0.0802509f, 0.0931269f, 0.0600811f, 0.0034247f, -0.0877323f, 0.164236f, -0.00390299f, -0.0993808f, 0.187531f, 0.103109f, -0.00105348f, 0.0286516f, 0.171594f, 0.13018f, -0.0451122f, -0.0139478f, 0.0476767f, -0.0473996f, 0.118971f, 0.0211563f, -0.0587101f, -0.0333626f, -0.151319f, -0.0398511f, -0.0540134f, -0.0033475f, -0.00707217f, -0.0407248f, 0.0375291f, 0.263561f, -0.0873392f, 0.133253f, -0.0510992f, -0.179008f, -0.0336295f, 0.12311f, 0.0523578f, -0.0383507f, 0.038395f, 0.0897154f, -0.189909f, -0.0117705f, 0.270443f, 0.0754302f, 0.098148f, -0.290946f, 0.0355876f, 0.149832f, 0.151095f, -0.0284526f, 0.0168594f, -0.106384f, 0.102174f, -0.00737112f, 0.00767596f, -0.00023924f, 0.0678613f, 0.0607718f, 0.0746405f, 0.0333099f, 0.281148f, -0.0202529f, 0.223243f, 0.123044f, 0.100169f, -0.140718f, -0.0272908f, -0.0141986f, 0.0321571f, 0.116793f, -0.101064f, 0.0111524f, 0.240354f, -0.116342f, -0.0160709f, 0.00645578f, -0.0119916f, -0.253223f, -0.00383721f, -0.0150593f, -0.235001f, -0.222003f, 0.07216f, 0.0686666f, -0.158766f, -0.0982033f, -0.0825634f, 0.187882f, 0.0119425f, -0.292035f, -0.0409587f, 0.0210136f, -0.0117135f, 0.0388468f, 0.0967396f, -0.0918529f, -0.226519f, 0.0912572f, 0.182295f, -0.197275f, 0.283579f, 0.117977f, 0.117161f, -0.0317132f, -0.164251f, -0.0987714f, -0.0829654f, -0.081094f, -0.0384735f, 0.0900674f, -0.0266006f, -0.0548246f, 0.0670288f, 0.0124202f, 0.125454f, 0.0500944f, 0.0801119f, -0.182343f, 0.0498451f, -0.130837f, -0.182048f, -0.213769f, -0.259906f, 0.277072f, 0.00731799f, -0.0339421f, -0.109729f, 0.0359679f, -0.0754612f, 0.264473f, -0.199477f, 0.17402f, -0.0941889f, 0.171223f, 0.0383852f, 0.345756f, 0.22475f, -0.235142f, -0.136785f, 0.157329f, -0.103702f, -0.163873f, 0.174993f, 0.10323f, 0.135024f, 0.0151287f, -0.215562f, 0.000920941f, 0.0340094f, 0.286485f, -0.0258109f, -0.218669f, 0.244344f, -0.116636f, -0.253392f, 0.196695f, 0.259044f, -0.170392f, -0.16811f, -0.0604051f, 0.149221f, 0.14573f, -0.0676723f, 0.190735f, 0.061462f, -0.055494f, -0.121957f, -0.0390176f, -0.107102f, 0.126746f, -0.32041f, -0.016189f, -0.100683f, -0.163045f, -0.0249556f, -0.180497f, 0.0827229f, 0.119603f, 0.161295f, -0.212132f, -0.111803f, -0.046875f, 0.000168262f, 0.0993891f, -0.0913639f, -0.119416f, 0.0939039f, 0.127819f, 0.0521999f, -0.297535f, -0.118066f, -0.0386182f, -0.10032f, -0.0178776f, 0.0669192f, -0.0182026f, -0.0270419f, 0.277933f, 0.206896f, -0.105223f, 0.180378f, -0.100083f, -0.128334f, 0.0938815f, -0.0214117f, -0.0232408f, -0.0921135f, -0.105962f, 0.106889f, -0.0979311f, -0.0185024f, -0.0764653f, -0.0684347f, -0.00796243f, -0.135219f, 0.260311f, 0.165555f, -0.166508f, -0.0678461f, 0.130145f, 0.0739063f, -0.0199767f, -0.122515f, -0.0488632f, -0.0764142f, -0.018592f, 0.0134257f, 0.0979883f, -0.10994f, 0.101035f, -0.0425651f, 0.105498f, -0.0137068f, -0.0667189f, -0.0438992f, 0.0520684f, 0.020684f, -0.212461f, 0.203167f, -0.0741658f, 0.126079f, -0.0116305f, -0.0499971f, -0.0517085f, -0.0481659f, -0.0527967f, 0.0286593f, 0.127541f, -0.00902864f, -0.0311297f, -0.159029f, -0.110183f, -0.0345042f, -0.156699f, -0.146826f, 0.113276f, -0.0371461f, -0.221702f, 0.0722841f, 0.0852189f, 0.079614f, -0.152124f, 0.236037f, -0.0108543f, -0.165361f, -0.107093f, -0.140384f, 0.0131686f, 0.0907302f, 0.028932f, -0.109589f, -0.116908f, 0.0197553f, -0.0532228f, -0.118634f, 0.0774365f, 0.0950711f, 0.063215f, 0.0277014f, 0.0746142f, 0.0487118f, 0.0408926f, 0.0843727f, 0.0462677f, -0.102449f, 0.031786f, -6.90177e-05f, 0.0853278f, -0.0779064f, 0.189515f, 0.13708f, -0.12337f, 0.0629974f, 0.16422f, -0.219718f, 0.0957681f, 0.171687f, 0.0128719f, 0.0661233f, -0.118018f, -0.0538592f, 0.0340987f, 0.0559208f, -0.0104784f, -0.0639594f, 0.148861f, -0.101447f, 0.0978573f, 0.00130671f, -0.0350049f, -0.0974505f, -0.0929784f, -0.0986007f, -0.0589603f, -0.0456416f, 0.0130941f, 0.143721f, -0.0487142f, 0.289766f, -0.120002f, -0.0676012f, 0.121929f, 0.165823f, 0.0106536f, -0.177549f, 0.0962629f, -0.0477178f, -0.0317043f, 0.0778801f, -0.211369f, -0.158262f, 0.002164f, -0.110155f, 0.12052f, 0.131492f, 0.256608f, 0.384984f, 0.114891f, -0.301788f, 0.0695125f, 0.0302091f, 0.0273987f, -0.115426f, -0.0797514f, -0.115847f, 0.090364f, 0.209779f, 0.0204116f, 0.0306776f, 0.0198669f, -0.0410284f, 0.0765341f, 0.160005f, 0.0148807f, -0.0628059f, 0.0210511f, 0.0460974f, -0.0114028f, 0.0605806f, -0.0408848f, -0.034755f, -0.18051f, 0.169898f, -0.136632f, -0.154912f, -0.0815739f, 0.183435f, 0.225434f, 0.208566f, 0.0321364f, -0.379868f, 0.0508597f, 0.0868103f, 0.115106f, 0.167945f, -0.228395f, -0.0122299f, 0.126104f, 0.0894118f, 0.392006f, 0.0663017f, -0.201321f, -0.0257231f, 0.0897379f, 0.123677f, 0.0673161f, -0.322172f, 0.0408695f, -0.00243539f, -0.0649758f, 0.00101031f, -0.175928f, -0.111202f, 0.147532f, -0.0239049f, 0.158372f, 0.0276996f, -0.0812818f, -0.0491679f, -0.184373f, -0.0896518f, 0.0677532f, -0.098225f, -0.184013f, 0.065346f, -0.0625148f, -0.0379951f, 0.100133f, 0.056182f, -0.185796f, -0.0365767f, -0.204213f, -0.193096f, -0.0221288f, 0.194395f, -0.0943608f, 0.0404274f, -0.0574657f, 0.0577581f, 0.0968523f, -0.156609f, -0.119926f, 0.197357f, -0.0131048f, -0.136049f, 0.0696678f, -0.236632f, 0.0921983f, 0.0853142f, -0.174335f, -0.28602f, -0.00410484f, -0.0260025f, -0.173713f, -0.00461319f, 0.128781f, 0.0111141f, -0.0405259f, 0.0478894f, -0.127339f, 0.0601652f, -0.138779f, 0.113972f, -0.137692f, 0.000832954f, 0.240738f, 0.0200591f, 0.0681853f, 0.0773434f, -0.157091f, -0.00908195f, 0.309402f, -0.136776f, 0.0447367f, 0.092389f, -0.0507783f, -0.219078f, -0.0103183f, -0.0901272f, -0.0745002f, -0.0167601f, -0.0355826f, -0.0420582f, 0.028179f, 0.0826318f, 0.0360465f, -0.011039f, -0.13099f, -0.0859917f, 0.083632f, 0.120954f, 0.00377224f, 0.0159053f, 0.12999f, -0.0215237f, 0.224987f, -0.0622985f, 0.115752f, -0.0284199f, -0.078719f, 0.0213853f, 0.128748f, -0.0533833f, -0.0257774f, 0.16859f, 0.0116698f, -0.0416228f, -0.155371f, 0.136517f, 0.188829f, 0.0221507f, -0.105573f, 0.0668f, 0.127816f, -0.105132f, 0.044943f, -0.059599f, 0.0521966f, -0.0577619f, 0.0538274f, 0.0276328f, 0.0340387f, 0.00859393f, 0.0833066f, -0.0382892f, -0.0229896f, -0.076901f, 0.122823f, -0.140473f, 0.105637f, -0.13351f, 0.143025f, -0.202675f, -0.0132439f, 0.0236282f, 0.00134037f, -0.188366f, 0.184975f, -0.132412f, -0.120367f, 0.00269934f, -0.120611f, 0.0512611f, -0.0358094f, 0.0215067f, -0.0156355f, 0.121935f, 0.0808246f, -0.0672606f, 0.0974327f, 0.103482f, 0.0225418f, -0.0518273f, 0.0181517f, 0.202615f, 0.0105428f, -0.106753f, -0.167974f, 0.277726f, -0.0238959f, -0.145748f, -0.063164f, -0.0124628f, 0.0958577f, 0.211944f, -0.119955f, -0.114665f, -0.164763f, -0.00740597f, -0.0861873f, 0.0382849f, -0.061207f, 0.014019f, -0.14919f, -0.0766314f, 0.204237f, -0.0409726f, -0.0180237f, -0.0924689f, 0.0466713f, 0.00643325f, -0.0287888f, 0.0226256f, 0.180972f, -0.125442f, -0.084968f, -0.144878f, 0.0549165f, -0.000500416f, -0.0989722f, 0.182254f, -0.0101927f, 0.271098f, 0.0669558f, 0.0700582f, 0.0794006f, -0.10543f, -0.0562801f, -0.0943062f, 0.167825f, 0.0916368f, 0.00347434f, -0.0992569f, 0.0175149f, 0.0135327f, -0.0204974f, 0.0932195f, 0.0921528f, -0.00962746f, 0.0452992f, 0.112706f, 0.00821333f, -0.0346249f, 0.0795303f, -0.124631f, 0.131385f, 0.0548001f, 0.0135066f, -0.0011513f, 0.0268796f, 0.0556235f, 0.212581f, -0.172226f, -0.10886f, 0.0732279f, -0.0524573f, -0.0530363f, 0.176486f, 0.173724f, 0.018355f, -0.143062f, -0.0761007f, 0.162577f, 0.0709121f, -0.0984034f, 0.0498269f, -0.0452833f, -0.0886571f, -0.161217f, 0.00122392f, -0.144718f, 0.163948f, -0.0888443f, -0.156854f, -0.104594f, -0.144706f, -0.122458f, -0.167896f, 0.051599f, -0.0554274f, 0.0846356f, -0.111139f, 0.0694013f, 0.085005f, 0.0214157f, -0.190732f, 0.112815f, 0.0535526f, 0.164417f, -0.0995918f, -0.0518552f, -0.0439888f, 0.299793f, -0.0482239f, -0.0461537f, -0.12229f, -0.0219118f, -0.0026508f, -0.234821f, 0.00437305f, 0.0517822f, 0.0380548f, 0.0638964f, 0.0472663f, -0.0283477f, 0.0371964f, 0.0668165f, -0.0458263f, -0.0981714f, 0.0842297f, -0.00948563f, -0.152724f, 0.0888999f, 0.133554f, -0.0127582f, 0.0574841f, -0.142377f, 0.064166f, 0.065762f, -0.0775041f, -0.000822683f, -0.0143543f, 0.178776f, -0.20099f, 0.000713839f, -0.147223f, -0.065405f, -0.0560437f, 0.00563309f, -0.0767379f, -0.0905342f, -0.127453f, -0.00753568f, -0.15716f, 0.178819f, 0.0348361f, -0.0136606f, 0.0197074f, -0.0513384f, 0.134735f, -0.00859944f, -0.130673f, 0.0522755f, -0.0905636f, -0.0610301f, -0.127296f, 0.285388f, 0.0708321f, 0.135604f, -0.0660713f, 0.0227302f, -0.147727f, -0.0857295f, -0.104779f, 0.00500704f, 0.134451f, 0.012902f, -0.202219f, -0.045013f, -0.0448634f, 0.0105173f, 0.172675f, -0.170188f, -0.0308594f, 0.00717048f, -0.0246573f, 0.0354731f, -0.0592994f, 0.0701798f, 0.207306f, 0.0964342f, -0.192605f, 0.178976f, 0.073096f, -0.06994f, 0.00720287f, -0.145822f, 0.0963849f, -0.169705f, -0.108246f, 0.0471171f, -0.00101789f, 0.0754263f, 0.158165f, 0.0106033f, 0.132246f, -0.0654524f, -0.042184f, 0.0347402f, 0.220464f, 0.00672436f, 0.203126f, 0.103129f, 0.266483f, -0.140247f, 0.0460419f, -0.0438112f, 0.0575033f, -0.0956654f, -0.0363369f, -0.21283f, 0.0749996f, 0.183095f, -0.0474181f, 0.0278807f, -0.152025f, 0.078686f, -0.147262f, -0.0885333f, 0.134837f, 0.105349f, 0.326372f, 0.294532f, -0.158541f, 0.0321138f, 0.194965f, -0.142065f, -0.100578f, 0.15896f, -0.0340706f, -0.141626f, 0.0191795f, -0.256014f, -0.0414425f, -0.182821f, 0.0622918f, -0.277622f, -0.12392f, 0.0832652f, -0.290947f, 0.203753f, 0.325165f, 0.00197009f, -0.0687692f, 0.0363991f, -0.203187f, 0.270155f, 0.0945486f, -0.108887f, 0.177291f, -0.147592f, -0.0268128f, -0.234216f, -0.0142479f, -0.0242276f, -0.0308835f, -0.0918294f, 0.24897f, 0.194769f, -0.0482733f, -0.240641f, 0.159033f, 0.00826678f, 0.0474968f, 0.0733378f, 0.171595f, 0.100789f, 0.0528713f, 0.0355934f, -0.0428628f, 0.0080043f, -0.0900341f, -0.0370536f, -0.0856304f, -0.0276916f, -0.00705909f, 0.205184f, 0.243387f, -0.133107f, -0.0320627f, 0.0584914f, -0.174958f, -0.0102058f, -0.0872139f, 0.0830113f, 0.0446627f, 0.0513748f, 0.0634608f, 0.151006f, -0.103984f, 0.0441866f, 0.0623226f, 0.0508204f, -0.0974946f, 0.143612f, 0.124373f, 0.206367f, -0.0692779f, -0.0206548f, 0.0741163f, -0.209373f, -0.265053f, -0.0295979f, 0.0739549f, 0.107847f, 0.0702626f, 0.110407f, -0.0763188f, -0.12265f, -0.146899f, -0.188427f, 0.162351f, 0.0218775f, -0.119128f, 0.25135f, 0.141176f, 0.0101348f, -0.0731747f, 0.0850514f, -0.218897f, 0.131057f, 0.00624421f, -0.13397f, 0.0837322f, -0.00313124f, 0.241754f, 0.127877f, -0.222014f, 0.050568f, 0.180529f, 0.102599f, 0.05102f, -0.211577f, -0.119477f, -0.0499027f, -0.235075f, 0.145618f, 0.142055f, 0.116483f, -0.280641f, -0.134448f, 0.0253206f, 0.0762328f, -0.316045f, 0.0698615f, -0.201385f, 0.0115227f, -0.22346f, -0.0154844f, 0.0651677f, 0.115315f, 0.0844899f, -0.30854f, 0.0495143f, -0.073803f, 0.0915317f, -0.223134f, 0.0453078f, -0.0862327f, -0.00980663f, 0.0182444f, 0.225457f, -0.0988564f, -0.130326f, 0.042959f, -0.0890044f, -0.00546111f, -0.0145282f, -0.109054f, 0.0151704f, -0.00166853f, 0.113499f, 0.0701957f, 0.21534f, 0.339441f, -0.0673638f, -0.0913868f, 0.00388825f, -0.170372f, 0.218753f, -0.092451f, 0.0659936f, 0.108751f, -0.333028f, -0.122793f, 0.0404083f, 0.0965792f, 0.0564402f, -0.338407f, -0.0753083f, -0.0639629f, 0.0237324f, -0.114823f, -0.0401522f, 0.00591267f, -0.00817517f, 0.135156f, 0.0694344f, -0.0198032f, -0.0142762f, 0.0727696f, -0.311138f, -0.186857f, 0.017196f, -0.0741773f, -0.0582846f, -0.0532281f, -0.0475043f, 0.143192f, 0.0137695f, 0.0513905f, 0.0892593f, 0.0125573f, 0.105654f, -0.00387826f, -0.21696f, -0.0175823f, -0.0694323f, -0.0699819f, -0.13997f, -0.190789f, 0.0296668f, 0.0424372f, -0.0808942f, -0.096414f, 0.0639231f, -0.148393f, 0.00256977f, -0.126734f, -0.00736873f, -0.092636f, 0.121858f, -0.0613324f, -0.182179f, -0.113722f, 0.00773758f, 0.127473f, -0.0319755f, -0.0759961f, -0.0548896f, -0.00732269f, -0.192604f, -0.0659545f, -0.0552466f, -0.0178548f, -0.168941f, -0.0240721f, 0.0366798f, 0.0235899f, -0.124667f, 0.0071436f, 0.0745601f, -0.0867274f, -0.0248835f, 0.0467215f, 0.128233f, 0.0761868f, 0.0194034f, -0.00697781f, 0.00100662f, 0.0192308f, -0.156525f, 0.0249188f, 0.151968f, 0.0507476f, -0.0388279f, -0.120814f, -0.0892207f, -0.0608252f, -0.0775914f, 0.103709f, 0.258828f, 0.143559f, 0.0603365f, 0.00355083f, 0.129888f, -0.0187826f, 0.0274169f, -0.147376f, -0.0110283f, -0.0129764f, 0.0967194f, 0.00401062f, -0.160308f, 0.0837693f, -0.0833034f, 0.0415382f, -0.140617f, -0.112449f, -0.0625786f, -0.10817f, -0.0161923f, -0.00700928f, -0.0262989f, -0.00506089f, -0.07796f, 0.0255694f, 0.028447f, 0.00651458f, 0.148729f, 0.0262022f, -0.0979776f, -0.0522495f, 0.190594f, 0.0241779f, -0.0441446f, -0.035216f, -0.0661964f, 0.0271657f, 0.179234f, -0.0393242f, 0.0246433f, 0.0355713f, 0.166029f, -0.0105408f, -0.0600242f, -0.0426876f, -0.0067329f, 0.0246759f, 0.01707f, -0.0683698f, -0.0547736f, 0.107366f, 0.0292602f, -0.0475697f, -0.0244828f, -0.155345f, 0.188924f, 0.0661883f, -0.105372f, -0.0147963f, 0.176867f, 0.112175f, -0.0220334f, 0.00137573f, 0.0560836f, 0.102225f, 0.018682f, -0.139637f, 0.000624061f, -0.106335f, -0.145611f, -0.0498823f, -0.0824986f, 0.287642f, -0.241924f, -0.157237f, 0.0795149f, -0.00234587f, 0.0870548f, 0.106357f, -0.111129f, 0.172584f, -0.0612052f, 0.0779073f, -0.175875f, -0.0185326f, 0.0788543f, -0.201955f, 0.113046f, -0.226111f, 0.0384817f, -0.0374493f, -0.0992817f, -0.136705f, 0.0577961f, 0.31745f, -0.14118f, 0.0316305f, 0.223663f, -0.14407f, 0.00645178f, 0.0265929f, 0.162112f, 0.142347f, -0.053366f, 0.262004f, 0.0836644f, 0.0485727f, 0.107344f, -0.127575f, -0.212488f, 0.0604257f, -0.0748533f, 0.00348536f, -0.264915f, 0.236134f, -0.095291f, -0.0888039f, -0.0116673f, -0.108202f, 0.125788f, 0.0382161f, -0.00549821f, -0.06161f, 0.241105f, -0.0538579f, 0.317687f, -0.147669f, 0.0310061f, -0.0013573f, 0.0135886f, -0.0949764f, -0.0859621f, 0.0356967f, 0.0219485f, 0.0902637f, 0.251415f, -0.119767f, -0.0407357f, 0.164033f, -0.151061f, -0.0161805f, -0.144468f, -0.116877f, 0.211031f, 0.0805287f, -0.0697617f, 0.144465f, -0.0361783f, -0.199843f, 0.112147f, 0.00480716f, 0.0240029f, 0.154439f, 0.00441786f, -0.0014514f, 0.0808772f, 0.154937f, -0.169158f, -0.0956719f, 0.190393f, 0.140965f, 0.197102f, -0.0659735f, 0.143375f, 0.134902f, 0.0919361f, -0.0286283f, -0.175154f, -0.0469289f, 0.280482f, 0.0608631f, 0.262256f, -0.0324111f, 0.329737f, 0.127527f, -0.0969518f, 0.0499505f, -0.0328828f, 0.0395566f, -0.0508386f, 0.175652f, -0.25546f, 0.0220357f, -0.114674f, 0.238993f, -0.141755f, 0.0860696f, 0.0900005f, 0.0398732f, -0.0566562f, 0.020778f, 0.100864f, -0.15248f, -0.0544099f, 0.0478477f, -0.0221382f, 0.0223703f, -0.030139f, 0.113125f, 0.0823301f, -0.0216828f, -0.240741f, 0.0226008f, -0.128521f, 0.174708f, 0.00402269f, -0.016665f, -0.305741f, 0.169805f, 0.0829986f, 0.100114f, -0.0613038f, -0.105967f, 0.0784947f, -0.0553148f, 0.0221096f, 0.211562f, 0.0167094f, 0.0659197f, -0.00431445f, -0.0144832f, 0.123454f, -0.130071f, -0.0560744f, -0.00897659f, 0.061458f, 0.0742623f, 0.0917729f, 0.0554834f, -0.0534089f, -0.135632f, 0.0666354f, -0.167198f, -0.0494323f, 0.124971f, -0.169767f, 0.040456f, 0.220241f, -0.179358f, 0.0912633f, 0.00671193f, 0.0164036f, -0.0284664f, -0.0558509f, 0.0743499f, -0.0983304f, -0.0378571f, 0.114553f, 0.299212f, -0.0640454f, -0.0322181f, 0.142281f, 0.170895f, 0.16836f, 0.0246883f, 0.161298f, -0.307736f, -0.084558f, -0.0760575f, 0.0620289f, -0.19872f, -0.0422482f, -0.133008f, 0.0692331f, -0.00164833f, 0.0280283f, -0.018942f, 0.10633f, -0.0994447f, -0.0809403f, -0.00854703f, -0.0795029f, -0.00859909f, 0.0933932f, 0.110125f, 0.116049f, 0.182469f, -0.0568841f, -0.122249f, 0.00067389f, 0.321965f, 0.0869842f, 0.0303577f, -0.145229f, -0.180088f, -0.0678289f, -0.0775871f, 0.0460618f, -0.0537035f, -0.0847987f, -0.111448f, -0.00744286f, 0.183736f, -0.0135085f, 0.0628499f, 0.170357f, 0.164657f, 0.0832734f, 0.13833f, 0.0939795f, -0.0625482f, -0.100802f, 0.0970706f, 0.0544195f, 0.344908f, 0.0472598f, 0.0496784f, 0.207501f, -0.122228f, -0.110977f, -0.05354f, 0.141491f, -0.0872834f, -0.163008f, 0.107496f, 0.226488f, -0.226836f, -0.188718f, 0.0962586f, -0.219981f, 0.0456616f, 0.0550888f, -0.109573f, -0.242928f, 0.0378109f, 0.136534f, -0.22792f, 0.0603211f, 0.0635068f, 0.184638f, -0.212248f, 0.0508015f, -0.128295f, -0.0587602f, -0.181928f, -0.223489f, 0.0261099f, 0.0155279f, -0.0465197f, -0.0414024f, -0.259811f, -0.0507476f, -0.0305458f, 0.12687f, 0.0491918f, 0.0202973f, -0.0392847f, -0.0115324f, -0.0226032f, 0.189959f, 0.187563f, 0.00838088f, -0.0904956f, 0.155597f, -0.124641f, -0.0446535f, 0.0493462f, -0.00638797f, 0.108419f, -0.0641734f, 0.05324f, -0.113216f, 0.162602f, 0.0504023f, -0.161288f, 0.041059f, -0.202002f, 0.0559889f, -0.00236687f, -0.193098f, 0.0188825f, -0.243287f, 0.279598f, -0.0200089f, -0.317662f, -0.0565334f, 0.0606431f, -0.0531597f, -0.0709578f, -0.0714964f, 0.0811527f, 0.138049f, 0.0192241f, 0.140875f, 0.0603691f, -0.16663f, 0.0647794f, 0.164937f, 0.221171f, -0.0560242f, -0.0202875f, 0.0818594f, -0.0419692f, 0.0194028f, 0.114073f, -0.0130796f, -0.19541f, 0.0665572f, -0.149376f, 0.0255071f, 0.0559754f, 0.0941949f, -0.0459398f, -0.146314f, 0.124156f, 0.194012f, 0.244984f, 0.147829f, 0.0583448f, -0.0754099f, 0.188076f, 0.111643f, 0.0266491f, -0.128793f, -0.280034f, -0.0940665f, -0.0468555f, 0.0030899f, 0.178744f, 0.199705f, 0.225434f, 0.166348f, 0.18468f, 0.1445f, 0.062991f, 0.0967077f, -0.166038f, -0.057838f, 0.127843f, -0.108722f, 0.100801f, 0.208662f, 0.0568313f, 0.00264483f, -0.00697839f, -0.114475f, 0.0722915f, -0.0403025f, 0.00124687f, -0.135467f, -0.188313f, -0.125159f, 0.069554f, 0.10032f, 0.109144f, -0.0904443f, 0.221567f, 0.100754f, -0.2143f, -0.0281869f, -0.0393691f, -0.0688357f, 0.0833446f, 0.0662773f, 0.0234241f, -0.148159f, 0.17444f, 0.0996783f, 0.122491f, 0.107343f, 0.109398f, 0.167901f, -0.0737547f, 0.00140275f, 0.0589629f, 0.118668f, 0.0161405f, -0.0546484f, 0.0512873f, 0.0279179f, -0.0379326f, 0.0295482f, -0.03305f, -0.0672062f, 0.0514046f, -0.0138693f, -0.0316989f, -0.107401f, 0.00298491f, -0.152187f, 0.0502737f, -0.0111591f, 0.0550613f, 0.0207605f, 0.131016f, -0.0271292f, 0.0334821f, 0.123442f, -0.213084f, 0.130335f, 0.212134f, -0.00928647f, -0.05229f, -0.0272678f, 0.171741f, -0.110157f, 0.116167f, 0.0964427f, -0.0252615f, -0.0852423f, -0.0428029f, 0.064157f, 0.0489974f, -0.0178035f, -0.0177298f, 0.0793706f, -0.0821857f, -0.0218387f, 0.124222f, 0.0300358f, -0.00976393f, 0.115768f, -0.124786f, -0.103583f, 0.077769f, 0.0212248f, 0.0626997f, 0.0686466f, 0.117051f, 0.0952332f, -0.0191807f, -0.0339839f, 0.129442f, 0.00950386f, 0.0953288f, -0.0735608f, 0.177959f, -0.0395148f, 0.00952138f, 0.0393575f, 0.0253757f, 0.0237612f, 0.123954f, -0.0420128f, 0.0860355f, -0.040582f, -0.0267507f, 0.0163738f, 0.141883f, 0.036129f, 0.0673827f, -0.0313604f, 0.104516f, -0.0944173f, 0.013572f, -0.000578318f, -0.00650484f, -0.0556526f, -0.0445216f, -0.039418f, -0.0664433f, -0.0539212f, 0.0625884f, -0.0170848f, -0.12123f, -0.0406545f, 0.0718999f, 0.233564f, -0.0262396f, 0.0815195f, 0.164073f, 0.0107555f, 0.0243427f, 0.0957566f, -0.0677291f, -0.00194871f, -0.029353f, 0.0630188f, 0.160431f, -0.161011f, -0.0286585f, -0.123431f, -0.0314866f, -0.0890519f, -0.033593f, -0.0299255f, 0.102943f, 0.0271633f, -0.135961f, 0.122566f, -0.0545963f, -0.105512f, -0.0232938f, -0.000558595f, 0.024823f, 0.0645203f, 0.088225f, 0.0390824f, 0.03043f, 0.0407482f, -0.178144f, 0.049019f, -0.0105236f, 0.0873135f, 0.133515f, 0.0139961f, -0.078815f, 0.169837f, 0.00789647f, -0.0730477f, -0.0540289f, -0.0766728f, -0.0053785f, 0.157622f, -0.0747348f, -0.0739635f, -0.16804f, -0.00889819f, -0.162854f, -0.0422412f, -0.233583f, -0.0162207f, 0.0920254f, 0.0123922f, -0.112634f, 0.0961761f, -0.0246604f, -0.0132131f, -0.00623978f, 0.111317f, -0.00665477f, 0.0177033f, 0.134922f, -0.192901f, -0.180497f, 0.12028f, -0.0794685f, -0.0846472f, 0.0209171f, -0.0691134f, 0.0584604f, -0.11671f, -0.0228081f, -0.0135548f, 0.111118f, 0.0335713f, 0.0262801f, -0.0890936f, -0.0434237f, -0.0742313f, 0.00815194f, -0.106821f, -0.00169993f, 0.283834f, -0.116447f, 0.0360765f, -0.0123101f, 0.0505715f, 0.0591114f, -0.209841f, -0.0717233f, 0.0322576f, -0.00667358f, 0.0664951f, -0.135884f, 0.0678048f, 0.0718217f, -0.0171863f, 0.0125137f, -0.161249f, -0.102972f, -0.133346f, 0.202717f, -0.076186f, -0.0804814f, -0.104061f, 0.120408f, 0.0306308f, -0.173376f, -0.017094f, 0.109427f, -0.0752449f, 0.166973f, -0.176673f, 0.0704548f, -0.0446658f, -0.0152214f, -0.134116f, -0.112517f, 0.108599f, -0.0163687f, -0.0993565f, -0.114095f, -0.12193f, 0.0678013f, -0.141446f, -0.0510465f, 0.177979f, 0.147236f, -0.0832245f, 0.0075896f, -0.00294854f, 0.00404948f, -0.136623f, -0.0183298f, -0.133499f, 0.0248071f, 0.102629f, 0.139451f, 0.0445738f, 0.14604f, -0.0180125f, -0.105198f, 0.0659426f, -0.050976f, -0.047662f, -0.20989f, 0.0497171f, 0.1013f, -0.203266f, 0.0727307f, -0.0354557f, 0.00273594f, 0.183507f, 0.0730753f, 0.0786302f, 0.0195207f, -0.0720783f, -0.0352819f, -0.0820849f, 0.259386f, -0.150551f, -0.00990116f, -0.226567f, -0.0734779f, 0.236811f, 0.00743193f, 0.109387f, -0.0741316f, -0.16638f, -0.121232f, 0.199759f, -0.0140177f, -0.200689f, 0.168196f, -0.353253f, -0.106625f, 0.0388399f, 0.184199f, -0.201176f, -0.194466f, 0.403354f, 0.222394f, -0.0577068f, -0.076309f, 0.0305817f, 0.0449707f, 0.108558f, 0.0301892f, 0.0541101f, -0.0146504f, -0.00371224f, -0.333432f, -0.073279f, -0.0388005f, 0.185469f, -0.012105f, 0.24278f, -0.0632295f, -0.00286743f, 0.142626f, -0.0704625f, 0.142438f, -0.298713f, 0.132061f, -0.192058f, -0.0174392f, -0.0450273f, -0.0721175f, 0.0232584f, 0.0994761f, 0.21647f, -0.0017214f, 0.021691f, 0.356537f, 0.0592718f, 0.0199903f, 0.115844f, -0.024676f, -0.0860947f, 0.300603f, -0.00955711f, -0.0336554f, 0.194602f, -0.0578555f, -0.168927f, 0.0612131f, 0.164836f, 0.0115531f, -0.186991f, 0.12197f, -0.0282901f, 0.207696f, 0.0336516f, -0.176989f, 0.105855f, 0.0743955f, -0.137132f, -0.0111873f, -0.122262f, -0.0514674f, -0.000784694f, 0.177088f, -0.0864627f, -0.0710939f, -0.14337f, -0.072524f, 0.0994313f, 0.0403486f, -0.299926f, 0.0368164f, -0.350181f, -0.11513f, -0.45524f, -0.000645624f, -0.0444194f, -0.018512f, -0.080008f, -0.136176f, 0.0528338f, -0.0163021f, -0.1615f, 0.241657f, -0.112341f, 0.105821f, 0.0593263f, 0.137897f, -0.0256021f, -0.0955896f, 0.0667618f, -0.0473541f, -0.129572f, 0.178589f, 0.0719202f, 0.102985f, -0.0944693f, 0.059653f, -0.104631f, 0.099423f, -0.109439f, 0.0270216f, -0.0513762f, 0.156229f, -0.034974f, -0.00446127f, 0.0972799f, 0.00450789f, 0.109381f, 0.199619f, 0.0897898f, 0.0513412f, 0.0928536f, 0.150634f, -0.103497f, 0.0402124f, 0.131069f, 0.119118f, 0.00409827f, 0.0623512f, 0.175709f, -0.0136462f, -0.157213f, 0.10266f, -0.0182393f, -0.148685f, 0.0184686f, -0.00203679f, 0.0401615f, 0.0851338f, 0.0418344f, 0.103901f, 0.0759712f, -0.141828f, 0.0933022f, -0.200215f, 0.127799f, 0.218993f, -0.130205f, -0.0663426f, -0.154038f, -0.193118f, 0.137649f, 0.170813f, -0.0791322f, 0.220227f, -0.107146f, 0.160118f, -0.142167f, -0.0792208f, -0.0453927f, 0.0422557f, 0.0870074f, -0.0867435f, 0.0449506f, -0.0580782f, 0.0766039f, 0.0691281f, -0.12002f, 0.134683f, 0.0876689f, 0.0932101f, -0.0208948f, 0.215476f, -0.0189215f, -0.107123f, -0.0785757f, 0.0200625f, 0.166921f, 0.000162758f, -0.0877402f, 0.0423063f, -0.0463927f, -0.018623f, -0.108338f, -0.0936109f, 0.126147f, 0.0230525f, -0.0401702f, 0.157921f, -0.0515621f, -0.0127485f, -0.046902f, -0.0259158f, -0.179528f, 0.0829825f, 0.00400261f, -0.167715f, 0.158232f, 0.0131731f, -0.143036f, 0.134655f, -0.0161145f, 0.060471f, -0.0527879f, 0.123411f, -0.0775854f, -0.058824f, 0.170946f, 0.0696411f, -0.141754f, 0.0089317f, 0.0786789f, 0.0608119f, -0.0152843f, -0.152591f, -0.00978708f, 0.0485775f, 0.0896452f, -0.0390632f, 0.0585082f, -0.013676f, -0.0169488f, 0.0236388f, -0.0531509f, 0.063865f, 0.00193064f, -0.024911f, -0.0468212f, 0.0585264f, 0.113692f, -0.0634363f, -0.0109766f, 0.205956f, -0.0608481f, -0.181373f, -0.187193f, -0.140714f, -0.0633731f, 0.235032f, -0.0777296f, 0.263419f, 0.151694f, 0.241458f, -0.174678f, -0.0651262f, 0.15948f, 0.101817f, -0.055574f, 0.0521977f, 0.106171f, -0.00704592f, -0.00470302f, 0.103482f, 0.0707371f, -0.00312327f, -0.111051f, 0.195314f, -0.164874f, -0.0186037f, 0.139666f, 0.217614f, -0.0702977f, 0.0950153f, -0.158757f, 0.114986f, 0.270472f, -0.345266f, -0.142677f, 0.00150998f, -0.237322f, -0.0196326f, -0.0113482f, -0.0669798f, 0.041249f, 0.175671f, 0.00597874f, 0.0393972f, 0.0989553f, -0.370962f, -0.317064f, -0.221477f, 0.0502084f, 0.314678f, 0.101212f, -0.0319569f, 0.0808509f, -0.0556427f, 0.0118427f, 0.0425622f, 0.122404f, -0.0950628f, 0.073398f, -0.0537397f, -0.167842f, -0.0423527f, 0.221785f, 0.0941506f, -0.200272f, 0.0623605f, 0.379883f, 0.0621537f, -0.243114f, -0.133346f, 0.174318f, -0.208846f, 0.123316f, 0.0380573f, -0.0741276f, 0.0650494f, 0.112106f, -0.187013f, -0.204697f, -0.0474194f, 0.00386401f, -0.022646f, -0.103746f, -0.198922f, -0.0199284f, 0.0974824f, 0.0644029f, 0.0488654f, -0.0550489f, -0.0960988f, -0.19568f, -0.0780786f, 0.00714668f, -0.327931f, 0.0950064f, -0.038232f, -0.193552f, 0.0961937f, -0.114488f, -0.307011f, 0.312895f, 0.209099f, -0.144087f, 0.308412f, -0.0970272f, -0.0669092f, 0.402608f, -0.0263004f, -0.190049f, -0.158474f, 0.0266238f, 0.0563225f, -0.151467f, 0.160901f, -0.0873688f, -0.121821f, 0.283346f, -0.0299124f, -0.00465677f, -0.0323178f, 0.0462133f, -0.351199f, -0.00121186f, 0.292591f, 0.100006f, 0.038046f, -0.0535143f, 0.043757f, -0.0963213f, -0.0880414f, 0.0357735f, 0.0340036f, 0.0735436f, 0.0630608f, -0.100706f, -0.120462f, 0.0457786f, 0.106813f, 0.00856154f, -0.00111484f, 0.0488833f, 0.195289f, -0.131591f, 0.0890311f, -0.0713477f, 0.125986f, 0.027739f, -0.0139892f, -0.137339f, -0.0639269f, 0.00186831f, -0.0650979f, -0.116023f, 0.0152606f, 0.000225949f, -0.0643422f, 0.0271761f, -0.0745284f, 0.0456167f, -0.00259243f, -0.0291155f, -0.0113906f, -0.0181689f, -0.00218971f, -0.024163f, -0.464196f, -0.0488942f, -0.0597039f, -0.0364676f, 0.0265732f, -0.00250322f, -0.0196786f, 0.0977208f, -0.081059f, -0.0925049f, 0.00785369f, -0.0257175f, 0.0188516f, 0.0339449f, -0.00196071f, -0.0222416f, 0.00426048f, -0.122767f, 0.172932f, -0.107892f, 0.103355f, 0.136873f, 0.147641f, 0.003244f, -0.0462576f, -0.0801318f, 0.156019f, -0.0729405f, 0.298175f, 0.0625101f, -0.116781f, -0.0105909f, 0.0738452f, 0.0299808f, 0.0597198f, -0.0493312f, -0.118655f, -0.0396452f, -0.186043f, -0.111576f, 0.0490073f, 0.0116472f, -0.162373f, -0.0343953f, 0.10991f, -0.114731f, 0.00981854f, 0.00942789f, -0.0855161f, -0.14472f, 0.166487f, 0.0700869f, -0.0913635f, -0.0597557f, -0.05896f, 0.0681847f, -0.173908f, -0.0152776f, -0.00958754f, -0.0673793f, 0.027066f, -0.0566983f, -0.0190915f, 0.0374068f, -0.0248067f, -0.0604025f, -0.0489071f, -0.0204981f, -0.110758f, 0.0482937f, 0.0179156f, -0.150491f, 0.00715693f, -0.0686248f, -0.00878275f, -0.12545f, -0.0564448f, -0.00965487f, 0.0184562f, 0.108529f, 0.0455209f, -0.202773f, 0.104649f, -0.0668879f, 0.166239f, -0.0124072f, -0.024842f, 0.07971f, 0.0432228f, -0.0411457f, -0.108626f, 0.162355f, -0.144091f, 0.106692f, -0.179618f, 0.0947932f, -0.117792f, -0.00844369f, -0.054618f, 0.0924655f, 0.085109f, 0.120663f, 0.0349835f, -0.054006f, 0.0572862f, 0.0179968f, 0.0652823f, 0.0465579f, 0.0243906f, 0.0527265f, 0.142086f, -0.0418248f, -0.0839304f, 0.053818f, 0.0504238f, -0.0221734f, -0.144124f, 0.284468f, 0.202107f, 0.112763f, 0.0070973f, 0.127416f, 0.0961784f, 0.0220885f, 0.1575f, 0.175254f, -0.128846f, 0.0139932f, 0.0457547f, 0.00915962f, 0.0336511f, -0.0470556f, 0.0569306f, -0.0818501f, -0.0610549f, 0.0834295f, -0.089122f, 0.0779234f, -0.187561f, 0.0117347f, -0.094129f, -0.0141046f, -0.0752234f, 0.00410317f, 0.0879957f, -0.0441133f, 0.129409f, -0.00149479f, -0.00196684f, 0.0460437f, 0.0363284f, 0.0528635f, 0.128449f, 0.116167f, 0.101888f, -0.0520854f, 0.0498864f, -0.120491f, -0.0211465f, 0.0174564f, -0.00646402f, -0.00608933f, -0.0978399f, -0.0722602f, -0.00255854f, 0.00335096f, -0.133202f, 0.0838779f, -0.0495303f, 0.0308535f, -0.0964511f, 0.0754979f, 0.0902226f, -0.0527097f, 0.0470521f, 0.0754279f, 0.164255f, 0.0770915f, -0.0678931f, -0.0215138f, -0.0773852f, -0.0701536f, -0.0662596f, -0.01863f, -0.0499756f, -0.0331097f, 0.0237976f, 0.0336025f, -0.110266f, 0.0815537f, -0.0478072f, -0.0394445f, -0.0513694f, -0.0701842f, 0.0810754f, -0.130784f, -0.108936f, 0.0521246f, -0.11583f, 0.0294692f, 0.0470963f, -0.142733f, -0.0327049f, -0.038159f, 0.155134f, 0.0676824f, 0.00624054f, -0.133434f, 0.0413612f, 0.0471953f, -3.62962e-05f, -0.0844839f, -0.10608f, -0.0852075f, 0.178653f, -0.0472134f, -0.0188081f, -0.0116015f, -0.00292225f, -0.0273396f, 0.0374534f, 0.0546354f, -0.0359718f, -0.172934f, 0.0405265f, -0.137593f, 0.0339475f, 0.0225526f, -0.106158f, -0.0756586f, 0.0677986f, -0.030705f, 0.040814f, -0.074935f, 0.0082994f, 0.0104287f, 0.020404f, -0.0653611f, -0.0218631f, 0.015876f, 0.138862f, -0.0835041f, 0.00889592f, 0.143613f, 0.0311542f, 0.0360814f, -0.0933554f, 0.00613563f, 0.0732577f, -0.0233311f, -0.0448508f, 0.0706134f, -0.0171543f, -0.0381668f, 0.0323655f, 0.0644083f, -0.0209078f, -0.0703258f, -0.159598f, 0.0468258f, -0.0659933f, 0.0726496f, 0.00419132f, 0.0791256f, -0.0467608f, 0.0555139f, 0.0923509f, 0.115424f, -0.0571899f, -0.0876997f, 0.0334709f, 0.0518822f, -0.0409461f, 0.0235164f, 0.00776845f, -0.0101085f, 0.115544f, -0.184392f, -0.130402f, 0.0579068f, -0.0145059f, -0.0251119f, -0.119945f, -0.149211f, -0.0466727f, 0.031048f, 0.0773803f, -0.178274f, 0.104013f, -0.0802506f, -0.110736f, -0.0411821f, -0.0269244f, -0.0921738f, -0.160947f, -0.141141f, 0.103096f, 0.015855f, 0.137562f, -0.179942f, -0.0912541f, -0.019937f, -0.0306741f, -0.104297f, 0.0469561f, 0.0918079f, 0.201178f, 0.0047743f, 0.0620504f, 0.063704f, 0.223962f, -0.10583f, -0.0134763f, -0.0601183f, 0.0910027f, 0.0918605f, -0.0933051f, 0.0306756f, -0.0478163f, -0.124281f, 0.113588f, 0.0339567f, -0.0474484f, -0.121669f, -0.198552f, 0.104626f, -0.0903998f, 0.00334451f, 0.152508f, 0.0302902f, -0.0222991f, 0.00923974f, 0.0572594f, -0.111982f, 0.028241f, -0.0322906f, -0.0967543f, 0.0325209f, -0.0106067f, -0.106278f, -0.145361f, -0.0940849f, -0.104772f, -0.172108f, 0.31118f, -0.0587351f, -0.000985978f, 0.0267725f, 0.0664496f, -0.0961707f, 0.0606181f, -0.303164f, -0.108597f, 0.00984648f, 0.0854855f, -0.0153186f, -0.101509f, -0.0714364f, -0.061115f, -0.219602f, 0.0656108f, -0.0676113f, -0.00149781f, -0.196928f, -0.0697899f, -0.0937244f, 0.00286473f, -0.109053f, -0.0163782f, -0.0306908f, -0.0447932f, 0.0679948f, 0.129536f, 0.29931f, -0.0126841f, 0.132428f, -0.130402f, 0.0699856f, 0.183998f, 0.0730128f, -0.0816353f, 0.0899349f, -0.0708429f, 0.11828f, -0.1266f, -0.12456f, 0.0358716f, 0.0178542f, 0.12804f, -0.0569623f, 0.00762434f, -0.0262185f, -0.185834f, 0.127836f, 0.0408293f, 0.0620952f, 0.058468f, 0.00535561f, 0.0693532f, -0.0969873f, -0.0351808f, 0.119247f, -0.239372f, 0.148409f, 0.0702746f, 0.135328f, 0.154728f, 0.162958f, 0.0319637f, -0.10579f, 0.0516788f, -0.122938f, -0.121166f, -0.0687997f, -0.0780373f, -0.0541053f, -0.0713909f, 0.0256712f, -0.0604746f, -0.0277252f, 0.127843f, 0.0523474f, 0.183083f, 0.229473f, 0.204309f, -0.0718646f, -0.122616f, -0.0719529f, 0.00465888f, -0.289993f, 0.0285897f, 0.155629f, 0.165341f, 0.0930105f, -0.0671342f, 0.0531442f, 0.0302045f, 0.110735f, -0.048478f, 0.0778704f, -0.253312f, 0.123728f, 0.0825145f, -0.219703f, 0.037414f, 0.203552f, -0.165889f, -0.0565791f, 0.230386f, -0.0275159f, -0.0662221f, 0.196513f, 0.0409671f, -0.132757f, -0.0175348f, 0.0809199f, 0.0743951f, -0.0436127f, 0.105585f, 0.203884f, -0.1368f, -0.214931f, 0.0229748f, 0.010435f, 0.0227958f, -0.0384626f, 0.0205038f, 0.00680362f, 0.0463559f, -0.119297f, 0.114675f, 0.0254071f, -0.0820239f, -0.148247f, -0.0609885f, 0.202914f, -0.0382133f, 0.019652f, -0.223009f, 0.204723f, 0.0863768f, -0.1612f, 0.0347468f, 0.0133765f, -0.0120645f, -0.125984f, 0.149901f, 0.0356288f, 0.00989157f, 0.0148428f, 0.072391f, -0.0558408f, 0.105107f, -0.252286f, 0.0600787f, 0.0913347f, -0.176479f, -0.0133137f, -0.033327f, -0.0393845f, 0.0845617f, 0.0209645f, 0.0583875f, 0.112669f, 0.04302f, -0.0973597f, -0.214772f, 0.144609f, -0.0534206f, -0.167456f, -0.0197151f, -0.206044f, -0.00157908f, 0.014257f, -0.107977f, 0.0140142f, 0.0131235f, 0.0496929f, 0.0142765f, 0.0872302f, 0.00728164f, -0.0322954f, -0.315723f, -0.169504f, -0.199179f, -0.0365931f, 0.139646f, 0.188575f, -0.0576298f, -0.177551f, -0.0333075f, -0.0872227f, -0.0566571f, 0.0479067f, -0.0425104f, -0.158827f, -0.0327591f, 0.0343791f, 0.00602079f, -0.0476904f, 0.0459166f, -0.125887f, -0.0176486f, -0.0565818f, 0.0359963f, -0.0631224f, -0.0546906f, 0.126524f, 0.160576f, -0.243926f, -0.0645984f, 0.066263f, -0.0679135f, -0.0496521f, 0.0440239f, -0.243385f, 0.0397796f, 0.184998f, -0.0886006f, -0.0466794f, 0.134286f, 0.0668851f, -0.084466f, -0.172534f, -0.115766f, 0.00720836f, 0.242953f, -0.156995f, -0.143978f, 0.0777749f, -0.141627f, -0.142725f, -0.389314f, -0.0486152f, -0.0461505f, 0.0408274f, 0.0261563f, -0.0899499f, 0.141922f, -0.0234456f, -0.160943f, -0.0209698f, 0.100596f, -0.116861f, -0.09783f, 0.0847691f, -0.208366f, 0.249462f, -0.0044202f, 0.0240652f, 0.0666854f, -0.0984379f, 0.0518822f, 0.102273f, 0.0382632f, -0.0428711f, 0.0216388f, 0.221742f, -0.131112f, 0.185041f, -0.0361185f, 0.352996f, 0.0716446f, 0.00609679f, -0.217608f, -0.225872f, 0.0029441f, -0.235055f, -0.344276f, 0.0236781f, -0.142762f, -0.0475186f, 0.00200004f, 0.0425145f, -0.147801f, 0.0438991f, 0.076557f, -0.0716706f, 0.168078f, 0.00774282f, 0.0924835f, 0.247743f, -0.124395f, 0.0776235f, -0.0776987f, 0.165926f, 0.0553502f, -0.273666f, -0.145783f, -0.0916954f, 0.457129f, 0.033721f, -0.117031f, -0.194382f, -0.0768007f, -0.0839067f, 0.106181f, -0.0377191f, 0.135793f, 0.123684f, -0.195094f, 0.0851729f, 0.0190241f, -0.140817f, -0.0674369f, 0.012178f, 0.125475f, 0.0605692f, 0.0842604f, -0.0197615f, 0.222146f, 0.157398f, 0.143268f, -0.0906892f, 0.0818979f, 0.0501071f, -0.0341699f, 0.0569355f, 0.336386f, -0.0308577f, -0.0165293f, 0.0509783f, 0.287777f, -0.021471f, 0.0182313f, 0.184242f, 0.0902077f, -0.359152f, -0.0661433f, 0.05521f, 0.10465f, -0.0838791f, -0.138256f, -0.0752539f, 0.0533193f, 0.0308666f, 0.128854f, 0.132387f, -9.3726e-05f, -0.164936f, -0.203601f, -0.159662f, -0.142714f, 0.0136997f, 0.104937f, -0.00975193f, -0.00558092f, 0.0125408f, -0.0730895f, -0.0808664f, -0.0941249f, 0.0159794f, -0.0748897f, 0.0101574f, -0.0966945f, 0.0400966f, -0.124398f, 0.0181021f, 0.198281f, 0.0120353f, -0.0430183f, 0.0196746f, -0.0780836f, -0.374656f, 0.032821f, 0.136005f, -0.0958412f, -0.0264618f, -0.232219f, 0.0637359f, 0.248051f, 0.0599744f, 0.0286332f, 0.181951f, -0.0870849f, -0.036878f, 0.0770181f, 0.255058f, 0.0374421f, 0.179216f, -0.0744258f, 0.16942f, 0.10116f, 0.254836f, -0.0911118f, 0.124135f, -0.0530877f, 0.0132208f, -0.0823395f, 0.0152652f, 0.310943f, 0.0844902f, 0.0105782f, -0.188867f, -0.250172f, 0.0548745f, 0.0917634f, 0.117341f, 0.0999069f, 0.0516483f, 0.0289214f, -0.0337993f, 0.401649f, 0.0382867f, -0.125878f, 0.16765f, -0.063036f, 0.135221f, 0.210743f, -0.0231213f, 0.141409f, 0.03845f, -0.0018379f, 0.0842162f, -0.303341f, -0.0819353f, -0.0567432f, -0.136424f, 0.164952f, -0.126976f, -0.15238f, 0.132379f, -0.145457f, 0.228124f, 0.14537f, -0.100222f, 0.122538f, -0.118004f, 0.166709f, -0.0709595f, -0.220452f, -0.0440924f, 0.11604f, -0.0952513f, 0.043733f, 0.370012f, -0.250218f, -0.321793f, -0.119009f, -0.107235f, -0.153176f, -0.166096f, -0.113717f, 0.113279f, 0.101213f, -0.209594f, 0.0269358f, -0.0211406f, 0.0849743f, 0.0428708f, -0.184584f, -0.071022f, -0.0465589f, -0.161462f, 0.0380415f, 0.0194979f, 0.0217694f, 0.0743014f, 0.0944318f, 0.317109f, 0.184204f, -0.0397042f, 0.072758f, 0.0115063f, 0.0229836f, -0.256794f, 0.12724f, 0.0313696f, -0.163171f, -0.0376352f, -0.00937997f, 0.120913f, -0.0537793f, -0.237385f, -0.0120173f, -0.0243967f, 0.0353584f, -0.143738f, 0.219133f, 0.0315808f, 0.0925651f, -0.177529f, 0.365388f, -0.229813f, -0.0115797f, -0.0271515f, -0.109407f, 0.340789f, -0.163332f, -0.219606f, -0.158649f, -0.385364f, 0.208869f, 0.0538089f, 0.210344f, 0.160918f, -0.220914f, 0.0651753f, -0.0347839f, -0.163433f, -0.230464f, -0.218369f, 0.151837f, 0.124291f, 0.0234406f, -0.0610564f, 0.077483f, 0.204733f, 0.0300779f, 0.00185091f, 0.00309702f, 0.0525784f, 0.0639444f, 0.0319082f, -0.170354f, -0.162522f, -0.0868574f, 0.114288f, -0.0105749f, -0.153537f, 0.0915931f, -0.14429f, -0.0409809f, 0.155413f, -0.0818179f, -0.00265021f, 0.141653f, -0.0970186f, -0.347509f, 0.10886f, -0.0693038f, -0.220487f, -0.0730963f, 0.0318997f, -0.111386f, -0.131982f, 0.102211f, -0.0619982f, -0.0589991f, 0.170887f, -0.00963465f, 0.038233f, -0.0591587f, -0.223339f, -0.0593159f, -0.139503f, 0.128451f, 0.107519f, 0.030519f, 0.0697795f, -0.00798043f, -0.169755f, 0.0630205f, 0.09007f, 0.0580728f, -0.0388194f, -0.0881f, -0.0994298f, -0.152971f, -0.0707375f, 0.0383578f, 0.0769559f, 0.0749188f, 0.0931168f, -0.134442f, -0.0543153f, 0.118447f, 0.22121f, 0.0216219f, -0.061752f, -0.143337f, -0.0197405f, -0.0901011f, -0.118647f, 0.148214f, 0.0281554f, 0.0629197f, 0.187292f, -0.0802268f, -0.0616499f, -0.0332233f, 0.0450948f, -0.199511f, -0.198881f, 0.00863153f, 0.0110176f, 0.031404f, 0.165232f, -0.0866485f, 0.0353017f, 0.0127719f, 0.0277785f, 0.0927054f, 0.110191f, -0.176975f, -0.157517f, 0.20263f, 0.0551727f, 0.0276181f, 0.0957818f, -0.124436f, -0.299802f, 0.221191f, -0.0633129f, 0.00986417f, 0.0868631f, 0.0814475f, 0.035122f, -0.226985f, 0.0683687f, -0.122105f, 0.216253f, 0.0992373f, -0.0259188f, -0.108442f, 0.100037f, -0.020988f, 0.0710794f, -0.0147912f, 0.292663f, 0.200951f, 0.0780211f, 0.153376f, -0.0124699f, -0.0329897f, -0.175478f, -0.225246f, 0.184065f, 0.0406353f, 0.12549f, 0.131004f, 0.00253473f, -0.0124641f, -0.0165633f, 0.351957f, -0.0592791f, 0.135039f, -0.020079f, 0.126951f, -0.0319979f, 0.0298769f, 0.174163f, 0.0203625f, -0.0747393f, 0.0494826f, -0.013357f, -0.0598721f, -0.141521f, -0.274182f, 0.0141784f, -0.133773f, 0.0414407f, -0.0778054f, 0.0937129f, 0.202157f, -0.309898f, 0.106148f, 0.106964f, 0.00547226f, -0.234797f, 0.0418201f, -0.184756f, -0.113904f, 0.149326f, -0.0600978f, -0.09085f, -0.158939f, 0.0243779f, 0.0957619f, 0.0309082f, 0.00467823f, -0.0503966f, -0.0584509f, 0.00428169f, -0.116514f, -0.10367f, 0.0655234f, -0.0438964f, -0.0596363f, 0.0147015f, 0.00971951f, 0.126744f, -0.0254155f, 0.127916f, -0.265119f, -0.182465f, 0.292737f, -0.157113f, -0.108094f, -0.0876642f, 0.230149f, -0.131649f, 0.0454388f, -0.0432325f, 0.184063f, 0.0285522f, 0.0392443f, 0.0977495f, -0.0126959f, -0.147297f, 0.171192f, 0.105306f, 0.0725389f, 0.0718474f, 0.16108f, 0.130937f, -0.0582467f, -0.146497f, 0.147566f, -0.172598f, -0.0493059f, 0.0124013f, 0.0650806f, 0.0161272f, 0.0505296f, 0.0234675f, -0.1068f, 0.163823f, 0.158081f, -0.0185766f, 0.0112458f, -0.0332021f, -0.103635f, 0.1561f, 0.0272866f, -0.109879f, -0.212125f, 0.138838f, -0.0394174f, 0.154572f, 0.0293184f, -0.183254f, -0.00768149f, 0.0338531f, 0.125464f, 0.134579f, -0.00339806f, -0.0263076f, 0.0534147f, 0.0911985f, -0.0310049f, -0.0917059f, -0.0282251f, 0.0195567f, -0.0757764f, -0.133581f, -0.222596f, 0.0359313f, -0.00152884f, 0.153147f, -0.0269967f, 0.0859855f, 0.0855527f, 0.00709125f, -0.157253f, 0.00294081f, -0.0395589f, 0.111748f, -0.20143f, -0.0866559f, 0.179519f, 0.215677f, -0.224363f, -0.11344f, -0.198968f, 0.0180647f, -0.069311f, -0.113677f, 0.204631f, 0.176405f, 0.0365652f, 0.162226f, 0.0970953f, 0.183137f, 0.0578732f, -0.315086f, 0.0352562f, -0.0896678f, -0.0308215f, 0.0405222f, -0.0315244f, -0.0033071f, 0.0859613f, 0.0272543f, 0.0317951f, 0.243529f, -0.128085f, 0.279217f, 0.0309659f, -0.09924f, -0.105014f, -0.10336f, -0.0283816f, -0.338883f, 0.218804f, -0.287477f, 0.156368f, -0.113696f, -0.145657f, -0.209464f, 0.122073f, -0.154335f, -0.0997243f, -0.0559887f, 0.132449f, -0.133181f, 0.0908062f, -0.0312903f, -0.00374184f, -0.0691552f, 0.258503f, 0.219934f, 0.00814277f, -0.0881205f, 0.0181235f, 0.131334f, -0.172812f, -0.0311182f, 0.0586747f, 0.0243479f, 0.0845881f, -0.0053065f, 0.152258f, 0.0110724f, -0.0522257f, 0.161986f, 0.144856f, 0.107538f, -0.110654f, -0.237494f, -0.0482462f, -0.0998422f, -0.110987f, 0.0655796f, 0.095804f, -0.0272144f, -0.0959133f, 0.0174688f, -0.0103191f, 0.118399f, 0.0417236f, 0.0723176f, 0.248972f, -0.0122548f, -0.10715f, -0.000836338f, -0.22981f, -0.0793305f, 0.261176f, -0.0338109f, 0.0273743f, -0.177456f, -0.275936f, -0.0110415f, 0.133346f, 0.0590756f, 0.0650263f, 0.00298313f, 0.0631674f, 0.00678446f, -0.170611f, 0.0563609f, -0.0709056f, 0.0936291f, 0.0958958f, -0.0743708f, -0.0242014f, -0.109204f, -0.0803029f, -0.103342f, -0.0740035f, 0.186097f, 0.0354596f, 0.0176688f, -0.111981f, 0.0668067f, -0.0867814f, -0.0201669f, -0.266225f, 0.00162143f, -0.151836f, -0.00688202f, 0.063205f, -0.0665917f, -0.155532f, -0.0939614f, -0.1644f, 0.260967f, 0.0755748f, 0.0712109f, -0.0310252f, 0.02876f, -0.0225865f, 0.134733f, -0.0964016f, 0.105943f, 0.0913329f, 0.0160853f, -0.0804118f, 0.0927182f, -0.329087f, -0.0342405f, -0.0104424f, 0.298004f, 0.0144201f, -0.050543f, -0.173265f, -0.0718067f, -0.277541f, -0.137445f, -0.142265f, 0.0843699f, -0.0351449f, 0.183576f, 0.257461f, -0.227927f, -0.095205f, 0.0597401f, -0.218312f, -0.121099f, 0.0449929f, 0.148722f, -0.0792122f, 0.186008f, -0.065192f, 0.0824717f, -0.207446f, 0.0563573f, -0.0384206f, -0.10677f, -0.0986093f, -0.0779589f, -0.288844f, 0.213425f, 0.0634054f, -0.207769f, 0.212342f, -0.0594714f, 0.00349198f, 0.108192f, -0.051108f, 0.0396588f, 0.209794f, 0.0153475f, 0.0929262f, 0.1514f, 0.0335058f, -0.0795613f, 0.251521f, 0.106175f, 0.0606168f, 0.213886f, 0.285903f, 0.0637379f, -0.0335078f, -0.161237f, 0.283431f, 0.109021f, -0.0241812f, 0.00102158f, -0.0277891f, 0.127487f, -0.0548893f, -0.147548f, 0.114442f, -0.162386f, -0.00553418f, 0.273302f, 0.127433f, -0.0104213f, -0.161357f, 0.192024f, 0.146287f, 0.326288f, -0.00221421f, -0.16901f, 0.0274787f, -0.25277f, -0.0959917f, -0.067919f, 0.0913884f, 0.394586f, 0.357196f, -0.194296f, -0.0876866f, -0.0430881f, -0.200484f, 0.111465f, -0.1465f, 0.104428f, -0.0412862f, 0.145991f, -0.170127f, -0.346157f, 0.190451f, 0.219088f, -0.0907164f, 0.11952f, 0.0443023f, -0.240852f, -0.0848632f, -0.0639056f, -0.0353806f, 0.0605845f, 0.196001f, 0.0724473f, 0.275177f, 0.108744f, 0.217314f, 0.185971f, -0.15175f, -0.152115f, -0.0021193f, -0.138085f, -0.0142287f, 0.118819f, -0.0577421f, -0.056596f, -0.282009f, -0.0317969f, -0.106938f, -0.258009f, -0.13563f, 0.0910758f, 0.0770774f, -0.0972182f, 0.0587587f, -0.0656388f, -0.042051f, 0.183996f, 0.224054f, 0.141846f, 0.0191169f, -0.207284f, -0.0437518f, 0.221616f, 0.102995f, 0.0108534f, -0.0459441f, -0.0914237f, -0.109651f, -0.0501152f, 0.189787f, 0.104301f, -0.142994f, 0.0424774f, -0.120301f, -0.104786f, 0.119106f, 0.0859446f, 0.0999409f, 0.238179f, -0.11631f, 0.0487732f, 0.0233328f, -0.0410969f, -0.18783f, -0.0409975f, -0.0154849f, -0.112571f, 0.215065f, -0.0920855f, 0.0202733f, 0.152404f, -0.102871f, -0.480979f, 0.209012f, -0.111254f, 0.0516509f, -0.0258419f, -0.0114702f, -0.0888618f, -0.178763f, -0.0855185f, 0.15685f, 0.293758f, 0.249474f, 0.155409f, 0.220216f, -0.273616f, -0.183509f, -0.0620226f, -0.168821f, -0.219921f, -0.0504961f, 0.0679533f, 0.00189378f, 0.00686537f, -0.0167132f, 0.197248f, -0.0306667f, -0.289988f, -0.0519745f, -0.0700294f, -0.0580479f, -0.012656f, -0.0515285f, 0.0264266f, 0.0982931f, 0.355884f, 0.0230066f, 0.159537f, 0.0219985f, -0.0190965f, 0.00790441f, -0.221405f, 0.0476048f, 0.0797887f, -0.184025f, -0.0401169f, -0.0015737f, 0.227514f, 0.180359f, -0.382306f, 0.0632818f, -0.0909971f, -0.0696207f, 0.158506f, -0.0504469f, -0.0876425f, -0.12928f, 0.0239328f, 0.179775f, -0.0586504f, 0.00852641f, 0.0795135f, 0.0632422f, 0.107555f, -0.0887314f, 0.0288604f, -0.19294f, -0.210945f, -0.101889f, 0.0673262f, 0.235816f, 0.138076f, 0.0451486f, 0.0873758f, -0.130976f, -0.162884f, -0.13894f, 0.165532f, -0.0770354f, 0.0683405f, 0.0612433f, 0.10451f, -0.159149f, 0.157403f, -0.055127f, 0.13843f, 0.146287f, 0.200729f, -0.102975f, -0.122543f, -0.0462155f, -0.0908649f, -0.196199f, -0.391903f, -0.0562523f, 0.0824385f, -0.0524597f, -0.120693f, -0.274023f, -0.00863758f, 0.177157f, 0.0887116f, 0.0951402f, 0.00051829f, -0.187803f, -0.0919409f, 0.0266809f, 0.0288871f, -0.00290689f, -0.0528461f, -0.232577f, -0.319129f, 0.0668297f, -0.0492362f, -0.00635268f, 0.0299976f, 0.140818f, -0.141273f, -0.43801f, -0.379941f, -0.0563164f, 0.0338467f, 0.0270801f, -0.164008f, 0.00551495f, 0.158572f, 0.0779567f, 0.166664f, -0.0990529f, -0.0341446f, 0.0868095f, 0.286782f, -0.332599f, -0.144285f, 0.260913f, -0.0940032f, 0.0785314f, 0.056857f, 0.0970682f, 0.0139585f, 0.0236593f, -0.298624f, -0.280768f, -0.277794f, 0.0321389f, 0.184914f, -0.0269255f, 0.0348772f, 0.26168f, -0.0481851f, 0.182892f, 0.00760128f, -0.0596986f, 0.0690467f, -0.184043f, -0.0383613f, 0.045942f, -0.0857995f, 0.192052f, -0.107548f, -0.139642f, 0.101162f, -0.224851f, -0.0807163f, -0.0533308f, -0.0195885f, -0.253719f, 0.0921682f, -0.00736326f, 0.0649834f, 0.165108f, -0.0464688f, -0.00123215f, 0.0624747f, -0.0304616f, -0.0135805f, 0.0455228f, 0.0814206f, 0.128991f, 0.0761348f, -0.0493844f, -0.0218478f, 0.209101f, -0.0628826f, -0.16109f, -0.0187807f, 0.0309543f, 0.0975512f, 0.0134779f, 0.0837684f, -0.161433f, 0.307904f, 0.0345364f, -0.00705242f, -0.0551306f, 0.0322753f, -0.177027f, -0.0820596f, -0.204048f, -0.0374407f, -0.121828f, 0.119092f, 0.100122f, 0.0220492f, -0.218459f, -0.178209f, -0.0973565f, -0.0814544f, 0.228051f, 0.128584f, 0.0116278f, 0.156617f, -0.0492118f, -0.169259f, -0.189986f, -0.196469f, -0.00287381f, 0.0117234f, -0.0888589f, 0.0726382f, -0.206689f, -0.117519f, 0.364277f, -0.0581074f, -0.00178688f, -0.043688f, -0.240201f, -0.0966722f, 0.00715523f, 0.134809f, 0.0520747f, -0.146484f, -0.0533184f, -0.0472546f, -0.16827f, 0.165529f, -0.00936651f, -0.0455185f, -0.110341f, -0.143276f, -0.125022f, 0.534475f, -0.068326f, 0.188075f, 0.0173204f, 0.0460058f, -0.0184847f, -0.162094f, -0.351312f, 0.154777f, 0.0381553f, -0.0233722f, 0.209004f, -0.241739f, 0.14256f, -0.048952f, -0.0384036f, -0.291416f, 0.328182f, -0.0676963f, -0.0494117f, 0.0418942f, -0.121547f, 0.0544466f, 0.152652f, 0.0415364f, -0.0795664f, -0.245154f, -0.0274756f, -0.154803f, -0.104839f, 0.0085924f, 0.108216f, 0.0343705f, -0.237295f, 0.27306f, 0.00587818f, 0.0733253f, 0.0511628f, -0.180509f, 0.0682891f, 0.0887641f, -0.156246f, 0.0427844f, 0.103484f, 0.170037f, 0.188668f, 0.0763505f, -0.138004f, 0.114468f, 0.0466194f, -0.0668778f, 0.0601832f, 0.198608f, -0.104463f, 0.202557f, 0.00953772f, -0.089868f, -0.175066f, -0.130605f, -0.124138f, 0.1205f, 0.00630633f, -0.0443304f, -0.140352f, -0.0234036f, 0.0609867f, -0.0724053f, -0.235558f, 0.0765356f, -0.167964f, 0.0181724f, 0.0446872f, 0.132308f, 0.100016f, -0.164966f, 0.151717f, 0.0125616f, -0.0714586f, -0.0963096f, -0.163404f, -0.0993658f, 0.0208298f, -0.0271281f, -0.298756f, -0.185193f, -0.105239f, 0.258253f, 0.185379f, -0.0919506f, 0.0904546f, -0.169554f, 0.0473307f, -0.249916f, 0.106594f, 0.158831f, -0.136753f, -0.0416398f, -0.321813f, 0.162641f, -0.0739145f, 0.163913f, -0.286992f, 0.253241f, -0.0519945f, 0.0172707f, -0.55005f, -0.0989144f, 0.114045f, 0.280532f, -0.0971816f, 0.00428452f, 0.152971f, -0.0102613f, -0.00420199f, -0.132364f, -0.0982635f, -0.108954f, -0.137577f, -0.0323039f, -0.0155322f, 0.118068f, 0.158483f, -0.246324f, -0.115984f, 0.0360888f, 0.0102143f, 0.0435264f, -0.00146592f, -0.147563f, 0.258054f, -0.0675001f, 0.0216502f, 0.0732213f, -0.0567347f, -0.00811445f, -0.0144f, 0.0153905f, -0.129965f, -0.263968f, -0.0133356f, 0.0410022f, -0.028339f, -0.132542f, 0.0551098f, 0.149464f, 0.237437f, 0.0139932f, -0.17556f, 0.134532f, -0.0437319f, 0.0656021f, 0.089129f, -0.034754f, -0.029828f, -0.259429f, 0.105624f, -0.0254987f, -0.147463f, -0.0825342f, -0.0700468f, 0.171069f, -0.06384f, 0.188501f, 0.155638f, -0.0796866f, 0.0351439f, -0.182543f, 0.0238384f, -0.0682351f, -0.361961f, 0.24032f, -0.0786696f, 0.000669135f, -0.0850759f, 0.131697f, 0.151631f, 0.0223617f, -0.199614f, -0.028559f, 0.178312f, -0.0588751f, 0.0361688f, -0.00784911f, -0.071519f, -0.318865f, 0.157733f, -0.0919195f, 0.217229f, 0.140045f, -0.0556661f, 0.280718f, -0.0253619f, -0.076502f, 0.126776f, -0.138509f, -0.0858412f, 0.0926238f, 0.176284f, -0.146853f, 0.116084f, 0.00374022f, -0.0152632f, -0.0374719f, -0.0270957f, 0.0744028f, 0.16456f, -0.0390323f, -0.11949f, -0.0383752f, 0.0493139f, 0.220525f, 0.119016f, -0.0382131f, 0.162776f, 0.152136f, 0.286086f, 0.0581797f, 0.0794968f, 0.00063684f, -0.186549f, 0.168851f, 0.0135934f, -0.0820784f, 0.120776f, -0.187307f, -0.0308053f, 0.160454f, -0.114285f, -0.281462f, -0.0736242f, 0.00701229f, 0.188076f, -0.159792f, 0.0717351f, 0.188702f, 0.0132008f, -0.0413337f, -0.246575f, 0.252855f, 0.0149569f, -0.0738322f, -0.0305095f, 0.0445688f, 0.0608726f, 0.0895267f, -0.100682f, -0.00765529f, 0.0237071f, 0.0150354f, 0.0869361f, -0.0505432f, 0.0931079f, -0.069842f, -0.000611148f, -0.132307f, 0.157318f, -0.0109109f, 0.0709901f, 0.109076f, 0.0296941f, 0.0711912f, -0.0127636f, -0.236325f, 0.184676f, -0.0434563f, -0.0488727f, 0.182816f, -0.0968109f, -0.0397583f, 0.103705f, 0.156996f, 0.128555f, -0.243391f, -0.107504f, 0.0877638f, -0.0168378f, 0.212294f, 0.0299856f, 0.123915f, -0.10522f, 0.085809f, -0.00982614f, -0.0777705f, -0.00990586f, -0.0159557f, -0.113838f, -0.0943334f, -0.031643f, 0.0636047f, 0.0564158f, 0.0458474f, 0.214167f, 0.167228f, -0.0299121f, 0.012701f, -0.0279518f, -0.0378289f, -0.00284601f, 0.0595558f, -0.155127f, 0.0385121f, 0.231239f, -0.0896575f, 0.0844185f, -0.034637f, -0.237964f, -0.192568f, 0.161856f, -0.0465301f, -0.0575245f, -0.0882395f, -0.0325342f, -0.046753f, 0.155163f, 0.0412567f, -0.0561295f, -0.131743f, 0.0318468f, -0.118033f, 0.0561286f, -0.10266f, 0.253085f, 0.121011f, 0.164839f, -0.107752f, -0.137333f, -0.067463f, -0.0490912f, -0.154157f, -0.109409f, 0.0763388f, 0.0247973f, -0.120606f, 0.0755663f, 0.0791959f, 0.0778049f, 0.164471f, -0.148512f, 0.055054f, 0.18997f, -0.182093f, 0.0036677f, -0.0827995f, -0.00465504f, 0.0572236f, -0.0755245f, 0.190512f, 0.189215f, -0.0549326f, -0.0601913f, -0.00243372f, 0.010218f, -0.057231f, 0.0357281f, -0.207576f, -0.109123f, -0.129954f, 0.131719f, -0.109592f, -0.076003f, 0.081319f, 0.354632f, -0.041033f, 0.0233343f, -0.0939732f, -0.063646f, 0.0593738f, 0.125991f, 0.031609f, 0.0451947f, 0.0950104f, 0.0368282f, -0.146558f, -0.0166831f, -0.00695996f, -0.00757724f, -0.0709247f, 0.140134f, -0.145785f, 0.0963488f, -0.00499893f, 0.00255638f, -0.0371942f, -0.0365324f, -0.0915715f, -0.172328f, 0.0901391f, -0.149454f, -0.136054f, 0.0403167f, 0.0876098f, 0.20144f, -0.0388257f, 0.172629f, -0.135065f, -0.046325f, 0.0723626f, 0.189741f, 0.00780888f, -0.0306432f, -0.0301453f, 0.0335465f, -0.0731411f, 0.181319f, 0.187695f, -0.0612249f, -0.0251892f, 0.0933756f, -0.0955729f, 0.140492f, 0.179038f, 0.113906f, 0.156634f, -0.0396407f, -0.148756f, -0.138394f, 0.113189f, -0.0465237f, -0.0262689f, -0.0397541f, 0.0994964f, 0.127546f, 0.0603317f, 0.0473705f, -0.141095f, 0.122505f, -0.167488f, -0.0295997f, 0.0332045f, -0.132184f, -0.147107f, -0.0317307f, 0.0327509f, 0.0698418f, 0.0342976f, 0.0298327f, -0.000426752f, -0.0872322f, -0.0484268f, 0.0641301f, -0.0792466f, 0.131558f, -0.186678f, 0.203224f, 0.0565647f, 0.0267393f, 0.103162f, 0.14104f, 0.139996f, 0.0947507f, -0.0162714f, -0.0334127f, -0.0629859f, -0.011384f, 0.0247633f, -0.016152f, 0.0658837f, 0.0713044f, -0.106397f, 0.0271647f, 0.0150319f, 0.0504558f, -0.248262f, 0.0192451f, 0.0802532f, 0.0137552f, -0.277492f, -0.130191f, -0.165563f, -0.092601f, 0.0592148f, 0.119533f, 0.217725f, -0.14459f, -0.050423f, 0.164383f, 0.00787943f, 0.0197654f, -0.159552f, 0.0823012f, -0.113352f, -0.156349f, 0.096163f, 0.0066354f, 0.121917f, 0.154843f, 0.253969f, 0.141167f, -0.0437449f, -0.0319065f, -0.0567217f, 0.0221907f, -0.18308f, -0.181346f, 0.0215678f, -0.0149421f, 0.118584f, -0.0991027f, -0.194996f, -0.0412435f, 0.0558423f, -0.0620055f, -0.00897346f, -0.258565f, -0.0154455f, 0.00492653f, 0.0807537f, -0.268185f, -0.197678f, -0.183945f, -0.0439647f, 0.0850906f, -0.00989543f, -0.113676f, 0.0654482f, 0.181694f, -0.118672f, 0.139595f, 0.281142f, -0.147028f, 0.255642f, -0.266368f, -0.0686739f, -0.225562f, -0.0600741f, -0.213702f, -0.152644f, 0.015419f, 0.160209f, -0.0424158f, 0.097481f, -0.277317f, -0.214052f, 0.138247f, -0.0283524f, 0.185643f, -0.0821252f, 0.401628f, -0.232715f, 0.198676f, -0.164816f, 0.163758f, 0.150992f, -0.146911f, -0.038826f, -0.0966185f, -0.222008f, -0.141433f, -0.0849584f, 0.176041f, -0.106944f, -0.0135332f, -0.0389894f, 0.126198f, -0.0790301f, 0.190846f, -0.162257f, -0.0317146f, 0.0628128f, 0.054046f, 0.0369421f, -0.0203595f, -0.0497327f, -0.0719723f, 0.132131f, 0.014805f, -0.148872f, -0.0785221f, 0.00572897f, 0.291921f, 0.304286f, -0.0892148f, -3.98464e-05f, 0.292673f, 0.135765f, -0.0202309f, 0.263533f, 0.0461475f, -0.0864512f, 0.0123368f, 0.119548f, -0.102727f, 0.358151f, -0.138809f, 0.0189986f, 0.0032667f, -0.172314f, -0.0567083f, 0.0235003f, -0.244894f, 0.306749f, -0.267331f, 0.0222227f, -0.0895475f, -0.249504f, 0.0019995f, 0.0201184f, 0.0022271f, 0.267929f, -0.102445f, -0.0887067f, -0.00109357f, -0.107681f, -0.00487259f, -0.0910377f, -0.108037f, -0.203516f, -0.192506f, -0.0886201f, 0.0278732f, 0.129849f, 0.0297399f, 0.157292f, 0.143438f, -0.0974948f, -0.0643714f, -0.139208f, -0.0458012f, 0.0630564f, -0.0947839f, 0.0368911f, -0.120653f, -0.121473f, 0.0805308f, 0.0992956f, 0.0248111f, -0.123278f, -0.212415f, 0.0392437f, 0.0492763f, 0.0504374f, -0.191185f, 0.0641777f, -0.0686345f, 0.000795359f, -0.0107504f, -0.047285f, 0.132321f, -0.0399313f, -0.169495f, 0.195016f, -0.139203f, -0.179983f, -0.12464f, 0.146349f, -0.0637714f, 0.251366f, 0.0831732f, 0.0134016f, -0.0832526f, -0.0145741f, 0.14149f, -0.150366f, 0.0225484f, -0.0162729f, 0.287378f, 0.114595f, 0.211731f, -0.196591f, 0.000643903f, 0.243682f, -0.0714599f, 0.0554663f, -0.13196f, -0.0644676f, -0.0483188f, -0.0745441f, 0.106132f, 0.0493727f, -0.0945525f, 0.071947f, -0.0859929f, 0.0270945f, 0.154401f, -0.0550312f, 0.0751098f, 0.0413194f, -0.0972803f, 0.0858386f, -0.0840629f, 0.0971949f, 0.0214426f, 0.0407195f, -0.115358f, 0.0806257f, -0.114491f, -0.172386f, -0.194369f, 0.177949f, 0.0464881f, -0.0685991f, -0.0960081f, -0.0359024f, 0.0659415f, -0.130404f, -0.0254106f, 0.0791694f, 0.029151f, 0.128685f, -0.0629373f, -0.208192f, -0.229481f, -0.0549962f, 0.103633f, 0.0665581f, 0.153199f, 0.0199253f, -0.00869576f, -0.0937234f, -0.0207865f, -0.229077f, 0.0205492f, -0.195786f, 0.0419297f, -0.0546041f, -0.0460158f, 0.0412452f, 0.120532f, -0.0566453f, 0.0584975f, 0.042987f, -0.0844668f, 0.0126353f, 0.0547303f, -0.102884f, 0.0579761f, 0.0866303f, -0.156118f, 0.136684f, -0.0135481f, -0.000837681f, -0.0472814f, 0.00983848f, -0.182776f, 0.0282812f, 0.0501604f, 0.138522f, -0.160319f, 0.220979f, 0.030946f, -0.132101f, -0.186348f, 0.00348898f, -0.175399f, 0.181405f, -0.0698051f, 0.00853051f, -0.203946f, 0.227778f, -0.0163889f, -0.0729517f, 0.142189f, -0.00275899f, -0.216566f, 0.0722688f, 0.0220118f, -0.119389f, 0.19225f, -0.191817f, -0.196686f, -0.203527f, 0.0565929f, 0.0211862f, -0.0563853f, -0.0694302f, 0.154427f, 0.248079f, -0.046027f, 0.0484067f, -0.262728f, -0.0704315f, -0.131197f, -0.209846f, -0.227187f, 0.0925708f, 0.0637854f, -0.0606074f, -0.147441f, 0.0298575f, 0.0739223f, -0.20017f, 0.0884837f, 0.0339248f, -0.0529407f, -0.0231547f, -0.0960154f, -0.00159565f, 0.243448f, 0.109009f, 0.0615337f, 0.0452468f, -0.0269406f, -0.0126231f, 0.201715f, -0.0168924f, 0.00158406f, 0.0514784f, -0.0964422f, 0.0380117f, -0.176543f, -0.0338203f, 0.202876f, -0.136869f, 0.00753375f, -0.1125f, 0.208139f, 0.0942678f, 0.260823f, 0.0148595f, -0.0931671f, -0.132979f, -0.0188835f, 0.133626f, -0.0352283f, -0.301801f, 0.0473494f, -0.0828398f, 0.00875213f, -0.160821f, 0.088332f, 0.100236f, 0.0489513f, 0.0229269f, -0.14884f, 0.0121717f, 0.0468141f, -0.0214572f, -0.0926654f, 0.00642697f, 0.102526f, -0.271712f, -0.0327632f, 0.248806f, -0.00653033f, -0.0243025f, 0.0397776f, 0.152573f, 0.0669925f, 0.222257f, -0.0818194f, 0.0695228f, 0.177977f, 0.0060817f, -0.103688f, -0.136026f, 0.0201641f, 0.126801f, 0.0875827f, -0.0282698f, -0.038972f, -0.173836f, 0.133103f, -0.14204f, 0.136335f, -0.147368f, -0.168666f, 0.0113364f, -0.0269052f, -0.155299f, -0.157833f, -0.127995f, 0.00783981f, -0.0333852f, 0.028157f, -0.114099f, 0.00077491f, 0.278915f, 0.0656643f, -0.127659f, 0.190517f, 0.0914846f, -0.185281f, 0.0417702f, -0.108097f, -0.0325772f, -0.114009f, -0.149106f, -0.0408125f, 0.0589975f, -0.0759097f, -0.0157013f, -0.167395f, 0.115564f, 0.0182935f, -0.115316f, 0.244451f, 0.243138f, -0.158071f, 0.00506436f, -0.0778199f, 0.219366f, 0.047641f, 0.0489767f, 0.153021f, 0.184572f, 0.256925f, -0.0740995f, -0.236401f, -0.249556f, 0.00508867f, -0.207422f, -0.0847619f, -0.274011f, 0.155191f, -0.0369582f, 0.035337f, -0.0946456f, 0.0481116f, -0.0414395f, 0.305723f, 0.0857248f, -0.23555f, 0.236912f, 0.079803f, 0.0928335f, 0.136515f, 0.042962f, -0.0204237f, -0.0012664f, 0.219722f, 0.0252999f, 0.306059f, -0.242557f, -0.00127908f, 0.0487354f, 0.162873f, 0.175032f, -0.0504746f, -0.14017f, -0.0221695f, 0.0266013f, -0.0958877f, 0.0884016f, -0.0843456f, 0.0662485f, 0.175165f, -0.0890489f, -0.00472634f, -0.253645f, -0.0105962f, -0.0691034f, -0.0977939f, -0.309428f, 0.22773f, 0.159412f, 0.155704f, -0.273189f, -0.0238283f, 0.0456518f, 0.0964447f, 0.114155f, 0.082703f, 0.0401833f, 0.0780289f, 0.0279831f, -0.0749955f, -0.0700513f, 0.00184827f, -0.115852f, -0.109214f, 0.115584f, -0.00064923f, 0.18488f, -0.119924f, 0.0652846f, -0.0148399f, 0.225127f, 0.000297433f, -0.0919409f, 0.017463f, 0.21054f, 0.036751f, -0.000147444f, -0.0641012f, 0.142195f, 0.17171f, -0.107652f, -0.0652658f, 0.0743585f, -0.150133f, 0.0208531f, 0.031969f, -0.256431f, 0.235228f, -0.204374f, -0.160194f, -0.100253f, 0.120768f, -0.0759541f, 0.230263f, -0.184148f, -0.237058f, 0.109504f, -0.117309f, 0.00514127f, -0.102581f, 0.0958617f, -0.114948f, 0.173084f, -0.0919839f, 0.124619f, 0.0136644f, -0.0409289f, -0.124547f, -0.256343f, -0.206836f, -0.0717978f, -0.110892f, -0.233926f, -0.124756f, 0.0124484f, -0.057383f, -0.0994208f, 0.114815f, -0.305015f, -0.0978271f, 0.159949f, 0.109095f, 0.0872391f, 0.0259188f, -0.0180342f, 0.0699685f, 0.100195f, 0.158112f, 0.0433234f, -0.134325f, 0.167073f, 0.144944f, -0.0952336f, -0.0568046f, 0.110026f, 0.0067991f, 0.104178f, -0.188099f, -0.103352f, -0.0985082f, -0.182452f, -0.149541f, -0.170502f, 0.191931f, 0.307109f, -0.185295f, -0.108905f, -0.00383213f, 0.00470203f, -0.239216f, -0.028857f, 0.00405601f, 0.267092f, 0.219162f, -0.18664f, -0.178891f, -0.215061f, -0.278859f, 0.173726f, 0.0820974f, 0.17818f, -0.274248f, 0.159003f, -0.14048f, 0.0668567f, 0.0142853f, -0.118178f, 0.195064f, 0.0320597f, 0.100234f, 0.0748392f, 0.0802101f, 0.183867f, 0.277761f, 0.093703f, 0.104183f, 0.167168f, 0.366969f, 0.205489f, -0.222496f, 0.011054f, 0.146973f, 0.136657f, 0.145606f, -0.0296665f, -0.372393f, -0.260766f, 0.133361f, -0.00744781f, 0.0198433f, 0.202069f, -0.184632f, 0.125626f, 0.16861f, 0.12287f, -0.0767925f, 0.15376f, -0.119655f, -0.287577f, 0.00268587f, -0.238857f, 0.0875948f, 0.0219321f, -0.149155f, 0.0231203f, -0.154625f, 0.111018f, -0.118635f, 0.0466289f, 0.0660736f, 0.428562f, -0.225166f, -0.0360995f, -0.108197f, -0.0832143f, 0.138361f, -0.299252f, -0.0453561f, -0.233368f, -0.10134f, 0.141674f, -0.0156087f, 0.011803f, 0.0396474f, -0.0331374f, -0.127518f, -0.128936f, 0.104527f, -0.139648f, -0.205712f, -0.115138f, 0.198813f, 0.360785f, -0.0233397f, 0.136216f, 0.15101f, -0.1866f, 0.0880289f, -0.139186f, -0.147033f, 0.00631607f, -0.0296919f, 0.0276749f, 0.0881281f, -0.291614f, -0.0270229f, 0.0191873f, 0.0972607f, 0.0230806f, 0.0557945f, 0.159792f, -0.0308458f, -0.110664f, 0.0802619f, -0.0333721f, 0.0738926f, 0.0288168f, -0.0562985f, -0.000575658f, -0.0115019f, 0.112097f, 0.0890364f, -0.163862f, 0.132333f, -0.0988578f, 0.173305f, -0.10299f, -0.0888584f, -0.0030931f, 0.178767f, 0.174003f, 0.0894983f, -0.129651f, 0.0278265f, 0.057516f, -0.558162f, 0.0811538f, -0.0363403f, -0.0654892f, 0.0463596f, 0.0852658f, 0.0521974f, -0.137961f, -0.131863f, 0.229221f, -0.101828f, -0.00292006f, 0.0124772f, -0.242438f, -0.12324f, 0.242497f, -0.192013f, -0.0747202f, -0.0253187f, -0.0718616f, -0.012754f, 0.0529784f, 0.043925f, -0.0995291f, 0.0505591f, 0.0754426f, 0.11019f, -0.197817f, 0.216988f, -0.0503496f, 0.305512f, -0.0430298f, -0.11161f, 0.16658f, -0.115023f, -0.0897934f, 0.124882f, 0.0395528f, -0.0554513f, 0.198448f, -0.108528f, 0.022756f, 0.0360656f, -0.00396588f, 0.187871f, -0.227756f, -0.0307374f, -0.0383643f, 0.103116f, 0.0280328f, -0.0700202f, 0.0852047f, 0.155666f, -0.00612118f, 0.0830498f, -0.118671f, -0.0406348f, -0.1657f, 0.182617f, -0.162982f, -0.0776712f, -0.200858f, -0.0735361f, -0.121303f, -0.0130171f, 0.146762f, 0.101328f, 0.00459468f, 0.0452329f, 0.0790697f, 0.0303896f, -0.15556f, 0.0668662f, 0.197248f, -0.142587f, 0.0303234f, -0.0341824f, 0.00541279f, 0.125561f, -0.0228641f, -0.0996703f, -0.0327039f, 0.106556f, 0.040576f, -0.0228616f, 0.0756781f, -0.0313239f, 0.148017f, 0.087239f, -0.0422876f, 0.0128014f, 0.00778474f, 0.0124598f, 0.0560041f, 0.0447847f, 0.105744f, -0.198212f, -0.0173031f, -0.0021516f, 0.0959182f, -0.0394694f, -0.0131409f, 0.144321f, -0.0949611f, -0.0434338f, -0.028591f, -0.0792033f, -0.0809983f, 0.155448f, 0.000320005f, -0.0940891f, -0.0247999f, -0.0676534f, -0.042852f, 0.0848677f, -0.0446216f, -0.0964214f, 0.0934581f, -0.0733443f, -0.0147374f, 0.152916f, 0.0987156f, -0.205368f, 0.0375851f, 0.0463014f, -0.026474f, -0.0989731f, 0.109547f, 0.0338784f, 0.0118188f, -0.0516393f, 0.117725f, -0.150448f, 0.0169205f, -0.153319f, -0.0180276f, -0.0475676f, -0.0511672f, 0.00929482f, -0.0593558f, 0.028082f, -0.0343435f, 0.172867f, 0.0589468f, -0.109606f, 0.15939f, 0.124152f, 0.0375051f, -0.0954869f, -0.00923394f, -0.0446397f, 0.156135f, -0.0690702f, 0.0285207f, -0.0350714f, -0.00227138f, -0.0179033f, -0.0193811f, -0.115863f, -0.113995f, 0.101358f, -0.0794385f, -0.0308253f, 0.217193f, 0.169369f, -0.0535013f, -0.0214904f, -0.140248f, -0.150619f, 0.027754f, -0.0584864f, 0.110737f, 0.191755f, -0.0664675f, 0.184456f, -0.0205123f, -0.0919037f, -0.10087f, -0.070961f, -0.0844277f, 0.112392f, -0.0851655f, 0.00625287f, 0.0467219f, 0.108289f, 0.0561126f, 0.065714f, -0.0699781f, -0.110896f, 0.024493f, -0.0745244f, -0.140248f, 0.1176f, -0.0148379f, -0.0359504f, -0.0281652f, -0.0436925f, 0.0910944f, 0.0352464f, 0.0134623f, -0.0240144f, -0.215713f, 0.0596893f, 0.0995058f, 0.206307f, 0.0407711f, -0.0790785f, 0.092015f, -0.0913553f, -0.109589f, 0.0296199f, 0.0318241f, -0.0107308f, -0.0241953f, -0.0569995f, 0.00430332f, -0.0223354f, 0.0990801f, 0.0680456f, -0.132677f, -0.0211391f, -0.0760636f, -0.0151317f, 0.00950609f, 0.112869f, -0.0662181f, 0.0266207f, 0.084343f, -0.0183178f, 0.081674f, -0.0450175f, -0.108309f, -0.0913238f, -0.0580747f, 0.155607f, 0.216523f, 0.0283868f, -0.0403267f, 0.103041f, 0.125105f, 0.11604f, 0.160601f, 0.172004f, -0.162463f, 0.00177551f, -0.0324243f, 0.0470986f, -0.0923051f, -0.0861101f, -0.117457f, 0.222946f, 0.145702f, 0.0620147f, 0.141801f, -0.0542949f, -0.102184f, -0.0538152f, 0.0616995f, 0.280185f, -0.0208195f, 0.0329347f, -0.140841f, -0.247536f, 0.00563455f, -0.215743f, -0.0765964f, -0.0428443f, 0.109371f, -0.107962f, 0.0184958f, -0.253019f, 0.16686f, 0.105852f, 0.0197912f, 0.216231f, -0.0231013f, 0.0684397f, 0.250186f, 0.0677787f, 0.0552047f, -0.0654028f, 0.0345012f, 0.0404865f, 0.205448f, -0.0396411f, -0.0148495f, 0.0217306f, 0.0751467f, 0.00868058f, -0.197404f, -0.0259062f, 0.233391f, -0.0509572f, -0.0701687f, 0.0864018f, 0.04512f, -0.0828308f, 0.0347599f, 0.0356228f, 0.139091f, -0.10029f, 0.181864f, 0.144721f, -0.0580658f, 0.200026f, 0.0608931f, -0.100605f, 0.0500621f, -0.116185f, 0.061231f, 0.0399899f, 0.0704832f, -0.0198649f, 0.0436746f, -0.0848174f, -0.0594157f, 0.0459141f, 0.101992f, -0.0225639f, 0.0328491f, -0.124576f, 0.00901623f, -0.106617f, -0.0790743f, -0.149393f, -0.111297f, -0.00141785f, -0.0986489f, -0.0272536f, -0.111998f, 0.0644795f, 0.00456973f, -0.0416466f, -0.169109f, 0.153414f, 0.0223079f, -0.0251582f, -0.0452782f, 0.297413f, 0.101319f, -0.034451f, -0.0636178f, 0.0208852f, -0.0953486f, -0.129885f, -0.0650877f, 0.207028f, -0.0067712f, 0.110558f, -0.00460292f, -0.0343452f, -0.0647179f, 0.0895972f, -0.166407f, 0.0299957f, 0.114112f, 0.0825283f, 0.0639826f, -0.0588411f, 0.0719045f, 0.13956f, 0.137511f, -0.0367233f, 0.124973f, 0.0333517f, 0.206634f, 0.139346f, -0.0619772f, 0.274648f, -0.170636f, 0.0522071f, -0.161702f, -0.00273581f, -0.0613217f, -0.133662f, -0.103478f, -0.0305509f, -0.23801f, 0.11859f, 0.108553f, -0.0210826f, -0.00371995f, 0.08826f, 0.246381f, -0.20268f, 0.000161593f, -0.159964f, -0.0143778f, -0.230486f, -0.0084759f, 0.0263689f, -0.215712f, -0.315595f, -0.255577f, 0.17439f, -0.236849f, 0.158027f, -0.0979086f, 0.00595291f, -0.152628f, -0.231792f, -0.274363f, -0.0221431f, 0.0773764f, 0.0405473f, 0.0537216f, -0.0648253f, 0.0395505f, 0.169131f, -0.0911498f, -0.05096f, -0.276332f, -0.142917f, 0.118599f, 0.00238534f, -0.257787f, 0.203012f, -0.0643763f, -0.134695f, -0.0879208f, -0.00628858f, -0.0430767f, 0.271704f, -0.0849041f, 0.0831666f, 0.107565f, -0.260383f, -0.0866423f, 0.138457f, 0.00619943f, -0.000413046f, 0.104216f, 0.0333808f, 0.00863497f, -0.107758f, -0.124805f, 0.270046f, 0.0737486f, 0.065203f, -0.113866f, -0.0330365f, -0.191473f, 0.0398691f, 0.118263f, 0.0205686f, -0.0784466f, -0.161596f, 0.00894492f, 0.0908254f, 0.0254452f, 0.0771828f, -0.271077f, 0.0428394f, 0.083752f, 0.0356295f, -0.201973f, 0.0980716f, 0.166446f, -0.121299f, 0.2049f, -0.143584f, -0.00551848f, 0.173327f, 0.183502f, 0.233481f, -0.0436572f, 0.032631f, -0.173408f, 0.149638f, -0.0951374f, 0.0468391f};
+ model->setOperandValue(op14, op14_init, sizeof(float) * 16384);
+ static float op16_init[] = {0.8739f, 0.830384f, -0.767024f, -0.878567f, 0.767678f, -0.558645f, -0.618775f, -0.612598f, 0.910247f, 0.796888f, 0.563224f, 0.630585f, -0.716768f, 0.630871f, 0.734415f, -0.211464f, 0.613973f, -0.504694f, -1.0123f, -0.0627354f, 1.00681f, -0.42962f, 0.466991f, -0.450799f, 0.803035f, 0.693793f, 0.732683f, -0.692463f, 0.886803f, -0.565427f, -0.576628f, -0.652566f, -0.782693f, 0.674996f, 0.221864f, 0.572101f, 0.803257f, -0.52347f, -0.486955f, 0.727345f, 0.589734f, 1.15092f, -0.769234f, -0.0774833f, -0.462587f, 0.74472f, 1.08679f, 1.08325f, 0.383234f, -0.845903f, 1.26034f, 0.813296f, 0.771082f, 0.776552f, 0.846018f, -0.685205f, 0.695407f, 0.797641f, 0.626686f, 0.817206f, 0.515052f, 0.50643f, -0.598648f, -0.46153f, -0.452983f, 0.583775f, 0.640815f, 0.539884f, -0.435857f, -0.513433f, -0.485565f, -0.195357f, 0.652978f, -0.33663f, 0.661144f, -0.898781f, 0.287976f, 0.635894f, -0.62165f, 1.0629f, -0.681778f, -0.185328f, 0.487961f, 0.872278f, 0.395395f, -0.740133f, 0.817477f, -0.57104f, -0.664395f, 0.906709f, -0.0626727f, -0.587757f, 0.951452f, -0.61133f, 0.566099f, -0.653262f, 0.896796f, 0.510386f, -0.00755904f, -0.520829f, 0.699523f, -0.51857f, -0.71965f, 0.323285f, -0.547704f, -0.916064f, -0.617135f, -0.584734f, -0.566928f, -0.680113f, 0.935143f, -0.548582f, 0.577092f, 0.969824f, -0.473696f, -0.53212f, 0.666168f, 0.797083f, 0.329202f, 0.815607f, -0.826578f, 0.890131f, 0.866098f, 0.759649f, -0.554823f, -0.791157f, 0.559045f, -0.747694f};
+ model->setOperandValue(op16, op16_init, sizeof(float) * 128);
+ static float op17_init[] = {-0.177647f, -0.0871816f, 0.0601548f, 0.116089f, -0.183163f, 0.578973f, 0.0811623f, 0.372188f, -0.292915f, -0.251623f, -0.133364f, 0.0249744f, 0.209747f, -0.151377f, -0.274688f, 0.10489f, -0.346888f, 0.0908122f, 0.251565f, 0.102152f, -0.659776f, 0.27186f, -0.0203186f, 0.0910226f, 0.0232463f, 0.0918937f, -0.227945f, 0.220206f, -0.129868f, 0.0454901f, 0.00159753f, 0.277318f, 0.341466f, -0.0645028f, 0.29646f, -0.302511f, -0.225254f, 0.181877f, -0.003094f, -0.368428f, 0.0974374f, -0.200103f, 0.0589677f, 0.277546f, 0.111057f, 0.0328741f, -0.426973f, -0.199579f, -0.0472897f, 0.12313f, -0.242737f, -0.122301f, -0.0727011f, -0.235287f, -0.198718f, 0.324696f, -0.0974758f, -0.0987441f, -0.0489072f, -0.460212f, -0.244398f, -0.723718f, 0.0412443f, 0.267359f, -0.464882f, -0.32003f, -0.303246f, -0.329555f, 0.0122901f, 0.167574f, -0.0176612f, 0.299886f, -0.180337f, 0.293521f, -0.276708f, 0.277298f, 0.0906849f, 0.0211019f, 0.0815586f, -0.148871f, 0.0734914f, 0.428517f, 0.163658f, -0.40818f, 0.113258f, 0.304425f, -0.152113f, 0.105986f, 0.133363f, -0.362861f, -0.0816546f, 0.0946013f, 0.00721106f, -0.408414f, -0.484878f, 0.161902f, -0.0793248f, -0.336323f, -0.460177f, 0.307582f, 0.0354122f, -0.0519718f, 0.00674454f, 0.245323f, 0.033865f, 0.415952f, 0.20131f, 0.0334114f, 0.0995454f, 0.0562219f, -0.142446f, 0.256265f, 0.0640284f, -0.129566f, 0.244361f, 0.197299f, 0.0670241f, -0.309337f, -0.176682f, -0.363202f, 0.0597816f, 0.00494263f, -0.272968f, -0.0303995f, 0.193418f, 0.348788f, 0.139601f, 0.404337f, -0.274467f, -0.220471f, 0.234827f, 0.141957f, -0.205693f, 0.177229f, 0.31607f, 0.435521f, -0.378783f, -0.318383f, -0.0414879f, -0.110089f, 0.329408f, -0.132554f, -0.331081f, 0.223624f, -0.0905046f, 0.168813f, 0.348085f, 0.37548f, -0.0922745f, 0.245665f, -0.0927419f, 0.197676f, -0.102639f, -0.232749f, -0.375181f, 0.379403f, -0.250526f, 0.275713f, 0.124628f, 0.320001f, 0.481393f, -0.269458f, 0.179667f, -0.21777f, -0.0993835f, 0.188987f, 0.12176f, -0.470666f, -0.133013f, -0.44663f, 0.314893f, 0.255007f, 0.144322f, -0.133561f, -0.424778f, -0.344765f, -0.136315f, 0.269317f, -0.287856f, -0.233998f, -0.1886f, -0.241606f, -0.320311f, 0.204107f, -0.16412f, -0.294065f, 0.0965721f, -0.470172f, -0.303492f, -0.560968f, 0.202298f, 0.316824f, 0.174251f, -0.208489f, -0.215164f, -0.491982f, 0.245413f, 0.1279f, 0.177035f, 0.207553f, -0.233947f, 0.229277f, -0.270925f, 0.324056f, 0.309045f, 0.231493f, 0.147565f, -0.302136f, 0.273794f, 0.365701f, -0.111206f, -0.278091f, 0.250966f, 0.383613f, -0.131385f, 0.293494f, 0.0994267f, -0.185249f, -0.405195f, 0.282423f, -0.26585f, 0.660062f, -0.318764f, 0.249091f, -0.192755f, -0.248749f, -0.402543f, 0.307286f, -0.0854098f, 0.00795549f, 0.410958f, 0.162823f, 0.114975f, 0.375128f, 0.328851f, 0.163193f, 0.169105f, 0.360847f, -0.18493f, 0.231475f, -0.202768f, -0.304476f, 0.221781f, 0.252247f, -0.162048f, -0.326926f, 0.072488f, -0.293284f, 0.414543f, -0.301267f, -0.278129f, -0.176203f, 0.249626f, 0.528465f, -0.0376272f, 0.2294f, -0.290052f, -0.125104f, 0.300564f, 0.221424f, -0.196515f, -0.132026f, 0.211947f, 0.0255294f, -0.225691f, -0.1778f, -0.129375f, -0.182211f, 0.355858f, -0.0431843f, -0.0592856f, 0.112769f, -0.247296f, 0.134681f, 0.200602f, 0.359153f, -0.0533255f, -0.0650103f, -0.482401f, 0.124266f, -0.0882049f, -0.150976f, -0.225175f, 0.241558f, -0.223492f, 0.117191f, 0.110726f, 0.0700387f, 0.348165f, -0.218468f, 0.255051f, -0.216326f, -0.0982582f, 0.0521327f, 0.164097f, -0.0305243f, -0.224774f, -0.122026f, 0.22847f, -0.305519f, 0.0611823f, -0.132229f, -0.114884f, -0.322513f, -0.0835829f, 0.178658f, -0.0630996f, -0.210751f, -0.321467f, -0.166589f, -0.279502f, -0.239058f, -0.0959481f, -0.11015f, -0.245431f, -0.247913f, -0.146589f, 0.0946597f, -0.0442946f, 0.164044f, 0.657227f, -0.00436399f, -0.0244688f, -0.287218f, 0.202973f, -0.0169252f, 0.24289f, 0.193422f, -0.11275f, -0.0277141f, -0.386446f, 0.396187f, 0.273171f, 0.456946f, 0.10829f, -0.111849f, 0.0602555f, 0.27488f, 0.219216f, -0.168014f, 0.177434f, 0.158263f, -0.0659201f, 0.21938f, 0.0174049f, 0.0117175f, -0.331309f, 0.212254f, -0.203833f, -0.276827f, -0.12618f, 0.16201f, -0.0375803f, -0.203265f, -0.405161f, -0.0383014f, -0.436336f, 0.139065f, 0.400452f, 0.0355814f, -0.125888f, 0.058507f, 0.321675f, 0.145888f, 0.103469f, 0.405551f, -0.23371f, 0.06158f, -0.180621f, -0.191603f, 0.0476887f, 0.0602744f, -0.119576f, -0.074028f, -0.0118865f, -0.16039f, 0.113066f, -0.339936f, -0.217272f, -0.196035f, 0.050938f, -0.0251069f, -0.235276f, -0.000757713f, -0.296079f, -0.110058f, 0.258742f, 0.420009f, -0.245554f, 0.453115f, 0.317986f, 0.299668f, -0.277939f, -0.39049f, -0.257227f, -0.0856895f, 0.228484f, 0.0342279f, -0.131498f, 0.101379f, -0.0877639f, 0.231183f, 0.326838f, 0.0749738f, -0.283428f, 0.228858f, -0.049279f, 0.160293f, -0.189703f, -0.0250891f, -0.372925f, 0.24678f, -0.22283f, 0.271814f, 0.264571f, 0.228567f, 0.413428f, -0.123231f, -0.292158f, -0.271049f, -0.186574f, 0.152277f, 0.195322f, -0.266342f, -0.0173473f, -0.383596f, 0.309367f, 0.403505f, 0.188349f, -0.120478f, -0.298738f, -0.415039f, 0.214563f, 0.332686f, -0.412697f, -0.045258f, -0.251678f, -0.151431f, -0.238026f, 0.43075f, -0.186537f, -0.144898f, -0.0849375f, -0.0673f, -0.0303413f, 0.143291f, 0.271016f, 0.482529f, -0.299016f, -0.213718f, -0.309961f, -0.0617735f, 0.14388f, 0.155023f, 0.23866f, 0.545315f, -0.0913158f, 0.241437f, -0.221745f, 0.27077f, 0.167114f, -0.345467f, 0.251814f, -0.307936f, 0.205636f, 0.481653f, 0.107034f, -0.125381f, -0.345654f, 0.452588f, -0.154499f, 0.238078f, 0.262978f, -0.549896f, 0.149393f, 0.310907f, -0.347523f, -0.42861f, -0.287733f, 0.407821f, -0.246214f, -0.13513f, -0.000567387f, 0.416311f, -0.155481f, 0.256069f, 0.447515f, 0.267273f, 0.366993f, 0.409352f, 0.367687f, 0.262309f, 0.18948f, 0.0406171f, -0.266851f, 0.31281f, -0.0729797f, -0.228566f, 0.119522f, 0.229003f, -0.150106f, -0.484836f, -0.226986f, -0.149434f, 0.29663f, -0.091025f, -0.2921f, -0.220726f, 0.266003f, 0.365309f, -0.0456341f, 0.266656f, -0.279605f, -0.345084f, 0.370643f, 0.37088f, -0.0268642f, 0.243782f, 0.405799f, 0.278391f, -0.538491f, -0.421344f, -0.358549f, -0.311298f, 0.331689f, -0.0540822f, -0.30822f, 0.289189f, -0.272308f, 0.344655f, 0.500284f, 0.272903f, -0.427396f, 0.4165f, -0.27431f, 0.306682f, -0.198429f, -0.328838f, -0.473414f, 0.39285f, -0.303793f, 0.320321f, 0.328035f, 0.387076f, 0.627329f, -0.288295f, -0.0605434f, -0.319832f, -0.151415f, 0.224896f, 0.299414f, -0.259801f, -0.177669f, -0.626195f, 0.453454f, -0.0100813f, 0.295044f, -0.208736f, -0.647739f, -0.550532f, 0.382869f, 0.45022f, -0.590547f, -0.410671f, -0.279767f, -0.274314f, -0.19359f, 0.319678f, -0.334927f, -0.481704f, -0.246078f, -0.224691f, -0.0542857f, 0.0167961f, 0.282006f, 0.330704f, 0.215266f, -0.356376f, 0.107614f, -0.0754958f, 0.306347f, 0.296404f, 0.353815f, 0.134206f, -0.134798f, 0.368807f, -0.358746f, 0.278237f, 0.350032f, -0.227183f, 0.25473f, -0.442747f, 0.227231f, 0.193296f, -0.490342f, -0.379623f, -0.203105f, 0.411301f, -0.504094f, 0.362848f, 0.367674f, -0.17126f, 0.247855f, 0.428379f, -0.564512f, 0.688888f, -0.121817f, 0.327344f, -0.324932f, -0.321873f, 0.111342f, 0.466117f, -0.114591f, 0.25745f, 0.599431f, 0.188409f, 0.731075f, 0.617758f, 0.365941f, 0.371005f, 0.28158f, 0.325367f, -0.47852f, 0.357208f, -0.406809f, -0.398635f, 0.298849f, 0.388177f, -0.192094f, -0.246657f, -0.0421371f, -0.310092f, 0.474442f, -0.547938f, -0.378277f, -0.445861f, 0.379655f, 0.371314f, 0.0761212f, 0.313204f, -0.392242f, -0.375087f, 0.26996f, 0.213625f, -0.311669f, -0.304637f, 0.314832f, 0.176197f, -0.365741f, -0.173783f, -0.0874835f, -0.587745f, 0.251719f, -0.189482f, -0.394076f, 0.227509f, -0.211751f, 0.190396f, 0.352448f, 0.052262f, -0.264675f, 0.265481f, -0.386231f, 0.215168f, -0.280036f, -0.209575f, -0.0565344f, 0.216523f, -0.219674f, 0.198369f, 0.067544f, 0.210373f, 0.438628f, -0.34531f, 0.269559f, -0.112518f, -0.548147f, 0.256189f, 0.208292f, -0.155067f, -0.249604f, -0.22687f, 0.281386f, -0.390824f, 0.206864f, -0.255331f, -0.288741f, -0.24127f, -0.126734f, 0.276143f, -0.264786f, -0.474847f, -0.111699f, -0.271605f, -0.150584f, -0.0785853f, -0.22858f, -0.406254f, -0.282864f, -0.175679f, -0.165192f, 0.147815f, 0.219002f, -0.0444022f, 0.531143f, -0.281989f, -0.267387f, -0.232064f, 0.191775f, 0.231901f, 0.11466f, -0.265283f, -0.470041f, 0.138806f, -0.16848f, 0.270328f, 0.299141f, -0.0753426f, 0.15565f, -0.139846f, 0.297359f, 0.100413f, -0.341507f, -0.316434f, 0.000290225f, 0.107806f, -0.355047f, 0.305206f, 0.16506f, -0.368997f, 0.0740634f, 0.263219f, -0.187163f, -0.10158f, -0.111327f, 0.139576f, -0.247992f, -0.0548272f, 0.136212f, 0.119239f, -0.320333f, 0.12343f, 0.376278f, -0.553465f, 0.426086f, 0.536895f, 0.197861f, 0.28211f, 0.202422f, 0.391186f, -0.452794f, 0.125706f, -0.319177f, -0.270248f, 0.183954f, 0.176344f, -0.397669f, -0.146993f, -0.000925186f, -0.233553f, 0.326648f, -0.309439f, -0.314187f, -0.275544f, 0.167025f, 0.0392552f, -0.411068f, 0.164177f, -0.108162f, -0.00573354f, 0.251166f, 0.558204f, -0.315271f, 0.283163f, 0.261653f, 0.0670132f, -0.168622f, -0.155348f, -0.0474235f, -0.127982f, 0.0712446f, -0.364687f, 0.0897745f, 0.00733073f, -0.0612411f, 0.175381f, 0.365922f, -0.130426f, -0.049202f, 0.0616472f, -0.109447f, 0.0280195f, -0.223873f, -0.425023f, -0.127319f, 0.101025f, -0.0944779f, 0.22706f, 0.226776f, 0.0947206f, 0.3393f, -0.153124f, -0.639028f, -0.108781f, -0.140769f, 0.257962f, 0.221979f, -0.0850165f, -0.352863f, -0.238736f, 0.275487f, 0.222169f, 0.059329f, -0.483214f, -0.190109f, -0.379134f, -0.917725f, 0.317487f, -0.276374f, -0.089726f, -0.0552475f, -0.0356918f, -0.130264f, 0.348185f, -0.332862f, -0.0269239f, -0.371905f, -0.23288f, 0.0573066f, 0.0850446f, 0.365517f, 0.169593f, -0.0717293f, -0.112743f, -0.141701f, 0.11976f, 0.144278f, 0.234456f, 0.00789795f, 0.00279787f, -0.167253f, -0.0863365f, -0.0916999f, 0.385244f, -0.669646f, -0.562956f, 0.402339f, -0.487651f, 0.183208f, -0.284185f, -0.180969f, -0.00513625f, -0.405246f, 0.155039f, -0.113185f, 0.161695f, 0.352399f, -0.387996f, 0.160007f, 0.135512f, -0.194359f, -0.273423f, -0.0515216f, 0.313761f, -0.267454f, -0.0671176f, 0.204648f, 0.0968436f, -0.211575f, 0.340844f, 0.501942f, -0.322834f, -0.571688f, 0.233282f, 0.197781f, 0.134457f, 0.200076f, 0.0231796f, -0.0233646f, 0.136335f, -0.0475553f, -0.0154011f, -0.05394f, 0.14276f, -0.452707f, -0.301241f, -0.26561f, 0.0193491f, 0.425522f, -0.266067f, -0.0760103f, -0.23328f, 0.169324f, 0.0762291f, -0.222994f, 0.0854677f, -0.281563f, -0.358938f, 0.236145f, 0.410882f, -0.255268f, 0.257027f, 0.269625f, 0.081258f, -0.207181f, -0.129883f, -0.3676f, -0.284548f, 0.22034f, -0.322737f, -0.200545f, 0.0944379f, -0.296793f, 0.30017f, 0.418536f, -0.728572f, -0.298464f, 0.271853f, -0.263083f, 0.181573f, -0.377288f, -0.200982f, -0.0957494f, 0.204865f, -0.27232f, 0.214701f, 0.367255f, 0.179368f, 0.352101f, -0.161102f, -0.495211f, -0.114128f, -0.202276f, 0.22617f, 0.271564f, -0.0971297f, -0.208229f, -0.501904f, 0.290799f, -0.249978f, 0.240916f, -0.451848f, -0.258969f, -0.317451f, -0.48139f, 0.415029f, -0.355259f, -0.309499f, -0.186237f, -0.176257f, -0.222657f, 0.296689f, -0.225151f, -0.211715f, -0.0798991f, -0.149355f, -0.269878f, -0.00542135f, 0.395065f, -0.0506057f, 0.223675f, -0.140136f, -0.321944f, 0.0552234f, 0.13866f, 0.286808f, 0.317716f, -0.418532f, -0.0381384f, 0.172643f, 0.0674257f, 0.512635f, -1.01998f, -0.770424f, 0.280475f, -0.23201f, 0.270747f, -0.902413f, -0.477235f, -0.189689f, -0.492929f, 0.269974f, -0.213427f, 0.210412f, 0.440219f, -0.1266f, 0.413074f, 0.321902f, -0.36647f, 0.407438f, -0.153076f, 0.23766f, -0.42057f, -0.191747f, 0.393705f, 0.310401f, -0.415272f, 0.325159f, 0.532648f, -0.293704f, -0.175539f, 0.351968f, 0.213235f, 0.213214f, 0.218929f, 0.120335f, -0.228709f, 0.187762f, -0.247334f, -0.2135f, 0.168559f, 0.249568f, -0.589931f, -0.127207f, -0.324903f, -0.161224f, 0.217231f, -0.395982f, -0.130205f, -0.301879f, 0.250213f, 0.41101f, -0.249774f, 0.361477f, -0.0715028f, -0.506833f, 0.0712546f, 0.203802f, -0.089808f, -0.369859f, 0.245312f, 0.150604f, -0.027467f, 0.029619f, -0.130162f, -0.291405f, 0.0780199f, -0.327593f, -0.257673f, 0.136259f, -0.126371f, 0.177277f, 0.26127f, -0.730241f, -0.333356f, 0.318555f, 0.164954f, 0.183569f, -0.317724f, -0.22966f, 0.0234902f, 0.164969f, -0.163785f, 0.213277f, 0.123644f, 0.206416f, 0.0728148f, -0.13989f, -0.246562f, 0.0543395f, -0.170864f, 0.0696319f, 0.197585f, -0.0722028f, -0.3203f, -0.186663f, 0.236492f, -0.214728f, 0.222345f, -0.191442f, -0.12056f, 0.135759f, -0.213994f, 0.269784f, -0.210303f, -0.148635f, -0.286331f, -0.242858f, 0.00784691f, 0.0133885f, -0.100079f, -0.202f, -0.295953f, 0.12847f, -0.345867f, -0.0751299f, 0.180716f, -0.221087f, 0.196135f, 0.0130223f, -0.156671f, -0.0242788f, 0.0520482f, 0.166427f, 0.288313f, -0.447982f, -0.209238f, 0.240116f, 0.0410266f, 0.191869f, -0.662093f, -0.238494f, 0.020257f, -0.071556f, 0.284502f, -0.404911f, -0.226362f, -0.0850094f, -0.204616f, 0.106331f, -0.158366f, 0.104914f, 0.109703f, -0.0281585f, 0.330799f, 0.196422f, -0.158644f, 0.0104495f, 0.153696f, 0.154121f, -0.293512f, 0.0318065f, 0.615847f, 0.319811f, -0.196002f, 0.0428157f, 0.274682f, -0.716382f, -0.518719f, 0.572651f, 0.0312116f, 0.189001f, 0.114644f, 0.216293f, -0.141647f, 0.101355f, -0.189668f, -0.160207f, 0.202959f, 0.112228f, -0.201573f, -0.0583956f, -0.441833f, -0.140472f, 0.136687f, -0.0816845f, -0.0523801f, -0.0820299f, 0.0932448f, 0.0421082f, -0.505471f, 0.299505f};
+ model->setOperandValue(op17, op17_init, sizeof(float) * 1152);
+ static float op19_init[] = {0.380364f, 0.737516f, 0.474086f, 0.849658f, 0.804377f, -0.080858f, -0.10305f, 0.536719f, -1.1622f, -0.342834f, 0.402781f, 0.115227f, 0.24287f, -0.695056f, -0.0436921f, 0.222036f, 0.996912f, 0.176891f, -0.0650841f, 0.269952f, -0.00177294f, -0.0444905f, -0.431159f, 0.182715f, -0.0429493f, 1.03982f, -1.14416f, -0.334853f, -0.319257f, 0.250542f, 0.427705f, 1.00408f, 0.319165f, 0.338126f, 1.06596f, -0.130311f, 0.1664f, -0.91822f, -0.482969f, 0.379555f, 0.931786f, -0.259521f, -0.26676f, -0.511134f, -0.161333f, 0.407205f, 0.127215f, -0.115874f, -0.74857f, -0.614097f, -1.24632f, 0.438902f, -0.010038f, -0.131985f, -0.290398f, -0.303011f, 0.362789f, 0.295431f, 0.486214f, 0.48313f, 0.473817f, -0.260674f, -0.160361f, 0.720992f, 0.004341f, -0.0257513f, -0.544244f, -0.197532f, -0.0570926f, -0.0470323f, -0.358175f, 0.309724f, -0.121827f, -0.451902f, 0.654175f, -0.379612f, 0.425311f, 0.64248f, 0.4375f, -0.608515f, 0.183475f, -0.59398f, 0.735809f, -0.911337f, -0.50899f, 0.477327f, 0.424055f, -1.43826f, 0.624114f, 0.084826f, -0.97254f, -1.32759f, 0.622444f, 1.64941f, -0.44358f, -0.345241f, 0.272338f, 0.318131f, -0.716748f, 0.360981f, -0.0467942f, -0.517288f, 0.874968f, 0.893388f, -0.269836f, 1.12224f, -0.0204914f, -0.0885676f, -0.31172f, -0.76596f, -0.00294207f, -1.0415f, -1.26892f, -0.614158f, -0.893911f, 0.585932f, -0.60524f, -0.365573f, 0.793604f, 0.154101f, 0.602275f, 0.0436358f, 1.52191f, -0.525973f, 0.601713f, 0.7219f, -0.308903f, -0.316313f, -0.198256f, 0.560813f, -1.91373f, 1.20156f, 0.412508f, 0.354517f, 0.949946f, -1.29522f, -0.712151f, -1.15794f, 0.91844f, -0.524767f, 0.732848f, -0.513226f, 1.0062f, -0.260316f, 0.256711f, -0.754329f, 0.287398f, 1.30026f, -0.375037f, 1.20769f, -0.0969743f, 0.499185f, 0.925531f, 0.234913f, -0.153141f, -0.403909f, 0.0366042f, 0.169739f, 0.116354f, -0.264196f, -1.46265f, -0.785626f, -0.301059f, -0.890582f, -0.369919f, -0.121138f, -0.894905f, 0.298203f, 1.05391f, 0.365703f, -0.698288f, 0.568782f, -0.420118f, -0.243541f, -0.510473f, -0.485931f, 0.14858f, 0.716983f, -0.561495f, -0.274852f, -0.0997454f, 0.799118f, 0.5632f, 0.3f, -0.143994f, 0.167208f, -0.405972f, -0.611116f, 0.592297f, 0.0573383f, -0.302561f, 0.397041f, -0.208663f, 0.105459f, 0.208787f, -0.28467f, -0.53325f, -0.289965f, -0.46143f, -0.0343105f, 0.454569f, -0.986058f, -0.528081f, -0.484903f, -0.313444f, -0.159601f, -0.057389f, -0.414452f, 1.10135f, 0.310185f, -0.201504f, -0.383645f, 0.358057f, 0.418672f, -0.0795512f, 0.262256f, 0.050103f, 0.106968f, 0.0782813f, -0.328971f, 0.0522201f, 0.331822f, 0.42769f, 0.085807f, 0.317563f, -0.0834861f, -0.964089f, -0.674804f, -0.763733f, 1.20728f, -0.38138f, 0.567048f, 0.257946f, -0.790288f, 0.503187f, 0.637437f, 0.0358286f, 0.573902f, -0.955088f, -0.526057f, -0.427204f, 0.251301f, -0.0395128f, -0.954701f, 0.364203f, 1.39881f, 0.198054f, 0.481997f, -0.56449f, -0.328474f, -0.499845f, -1.18902f, 0.387863f, 0.154186f, 0.213897f, 0.0501174f};
+ model->setOperandValue(op19, op19_init, sizeof(float) * 256);
+ static float op20_init[] = {-0.121763f, -0.00146586f, -0.152926f, -0.0166871f, -0.0651794f, -0.0883152f, 0.226854f, 0.0820697f, -0.0387004f, -0.0709573f, -0.0293144f, 0.0838588f, 0.0277707f, 0.0109299f, -0.160442f, 0.0837343f, 0.0469172f, -0.00955172f, 0.082859f, -0.0517241f, 0.00340798f, -0.187592f, -0.0247601f, -0.185591f, -0.0532604f, 0.105719f, -0.0966383f, -0.0199812f, -0.00629264f, -0.294315f, 0.0403008f, 0.0803754f, 0.0908397f, 0.219608f, -0.0440038f, 0.189251f, -0.291901f, 0.1426f, -0.134149f, 0.0519352f, 0.0551092f, -0.0487455f, -0.153575f, -0.228557f, -0.208332f, 0.0684225f, -0.0891165f, 0.0469084f, -0.0286844f, -0.0918755f, -0.0639394f, -0.233065f, 0.103416f, -0.0636482f, -0.0807054f, 0.0911907f, 0.162369f, -0.0989415f, 0.0365839f, -0.22269f, 0.0418927f, -0.0636223f, -0.000230235f, 0.117136f, -0.0605703f, 0.127913f, -0.0568488f, 0.0117915f, -0.0931372f, 0.0390826f, -0.22523f, -0.26497f, 0.151425f, -0.0157661f, 0.00381962f, 0.0363325f, -0.159047f, 0.0596872f, 0.16343f, -0.136773f, 0.150644f, -0.144535f, -0.186384f, -0.0577443f, 0.250243f, 0.0107071f, 0.139932f, 0.0679555f, -0.17552f, 0.16454f, -0.218745f, 0.0534704f, -0.133623f, -0.0147184f, -0.201297f, -0.0154522f, 0.265836f, 0.227862f, 0.0136758f, 0.112423f, -0.116164f, 0.0440703f, -0.00406094f, 0.122091f, 0.303093f, -0.0224877f, -0.0710294f, -0.0362077f, 0.0404482f, -0.0223894f, -0.240027f, -0.0128031f, -0.209106f, 0.0263517f, 0.162145f, 0.161153f, -0.0253479f, 0.0410495f, 0.00849734f, -0.0909553f, -0.0838269f, 0.0309831f, -0.0774216f, 0.171137f, -0.224768f, 0.123728f, 0.168099f, 0.33109f, -0.0550043f, -0.11535f, -0.0540238f, 0.110545f, -0.282231f, 0.19566f, 0.161858f, -0.0861269f, -0.0411603f, 0.175063f, -0.178382f, 0.0596902f, -0.229927f, -0.139029f, 0.0268697f, 0.338593f, -0.103072f, -0.0721262f, -0.0566519f, 0.258236f, -0.153182f, 0.308195f, -0.0448432f, -0.165331f, 0.0151538f, 0.203669f, -0.134432f, -0.0512151f, -0.0995045f, 0.126257f, 0.0785744f, -0.20454f, -0.266039f, -0.2169f, 0.100161f, 0.0778487f, 0.194347f, 0.139995f, 0.167684f, -0.101231f, 0.124728f, 0.327965f, -0.0403867f, -0.0215f, -0.194443f, -0.0495848f, 0.367298f, -0.164628f, -0.147905f, 0.165968f, -0.12477f, -0.259033f, -0.167712f, -0.272459f, 0.0789812f, 0.155705f, -0.116364f, -0.213157f, 0.0109595f, -0.324647f, 0.173547f, -0.153593f, -0.0375692f, -0.0271882f, -0.209502f, 0.17778f, -0.283972f, -0.271674f, -0.337646f, -0.296036f, 0.389238f, -0.131556f, 0.177566f, -0.206016f, 0.343375f, -0.0749384f, -0.0414254f, -0.123846f, 0.0649346f, -0.13411f, -0.165414f, 0.0754255f, 0.25563f, -0.106748f, -0.209256f, 0.127924f, -0.241351f, 0.0433725f, -0.10482f, -0.00963543f, -0.00829906f, 0.387104f, 0.0515396f, 0.356357f, -0.279054f, 0.301085f, 0.152901f, 0.0874326f, 0.112942f, 0.0719238f, 0.106289f, -0.0121451f, 0.210162f, 0.0121593f, -0.0388293f, -0.0416732f, -0.12197f, 0.0653273f, 0.069732f, -0.274103f, -0.132969f, 0.352856f, -0.233851f, -0.0569251f, -0.110681f, -0.198357f, -0.0540766f, -0.0852768f, 0.179024f, -0.0557452f, -0.285327f, 0.0571257f, -0.175148f, -0.106359f, 0.100622f, 0.00681196f, -0.403083f, 0.231531f, -0.0123008f, -0.0282617f, 0.235791f, -0.143299f, 0.0196585f, -0.216518f, -0.0793211f, -0.238045f, 0.0940979f, 0.0495749f, -0.0853188f, -0.114022f, -0.0603817f, -0.114678f, -0.0633001f, 0.373003f, 0.00726254f, -0.036635f, -0.231092f, 0.152878f, 0.082154f, 0.285196f, -0.0868469f, 0.387558f, -0.135168f, -0.0525403f, 0.145237f, 0.0110357f, -0.367399f, -0.0411672f, -0.198631f, -0.0460401f, 0.132935f, 0.129471f, -0.247866f, -0.211376f, -0.161866f, -0.211406f, -0.0785865f, -0.317434f, 0.245269f, -0.0296679f, 0.0174676f, 0.198054f, -0.154292f, -0.0604169f, 0.14175f, -0.124803f, -0.0134512f, -0.289175f, -0.405146f, 0.24288f, -0.235746f, 0.0666537f, 0.188638f, -0.186829f, 0.00471949f, 0.0932148f, 0.183057f, 0.317406f, 0.280157f, -0.0888505f, 0.0340032f, 0.084196f, 0.0818843f, 0.092675f, 0.0425123f, -0.142637f, 0.359559f, 0.0323628f, -0.131457f, -0.0737881f, 0.179402f, 0.0324868f, 0.108269f, -0.0493381f, -0.0168446f, -0.0414803f, -0.346225f, 0.112857f, 0.0802893f, -0.132876f, -0.0106186f, 0.169731f, -0.0157466f, 0.0464949f, 0.0404022f, -0.0538117f, 0.0623485f, 0.0907022f, 0.0631642f, -0.0395945f, 0.0805517f, -0.222049f, -0.117009f, 0.234693f, 0.1533f, -0.0483102f, 0.329192f, 0.140971f, -0.184198f, -0.0129387f, 0.00127325f, 0.0954443f, -0.232916f, -0.0514174f, 0.0493111f, -0.0637758f, -0.100758f, -0.335302f, -0.11422f, 0.0576151f, 0.136085f, 0.0417112f, 0.0798761f, -0.125253f, 0.0302989f, -0.157727f, -0.017999f, -0.219812f, 0.118703f, -0.0872862f, 0.079907f, -0.0514213f, 0.341905f, -0.187533f, 0.0170589f, -0.146202f, -0.122685f, -0.000718895f, 0.128745f, -0.00734249f, -0.184718f, 0.268723f, -0.099997f, 0.220027f, 0.10537f, -0.187767f, 0.233767f, -0.0791061f, -0.0464785f, -0.0739595f, 0.128014f, 0.367638f, 0.0881683f, -0.188333f, -0.1239f, -0.131963f, -0.102931f, 0.103922f, 0.324045f, 0.032146f, -0.295674f, -0.000199333f, 0.0523844f, -0.167145f, -0.0953917f, -0.0528846f, -0.145583f, -0.136944f, 0.166311f, -0.224109f, -0.409022f, 0.185011f, 0.19026f, -0.0141238f, -0.164354f, -0.0427336f, -0.0273503f, -0.286739f, 0.0660883f, 0.210424f, 0.181741f, -0.128822f, -0.0530232f, -0.0763886f, -0.172659f, -0.14085f, -0.224724f, -0.299584f, -0.280415f, -0.075294f, 0.0275749f, 0.280602f, 0.0108047f, -0.202232f, -0.230469f, -0.161221f, -0.224639f, 0.154745f, -0.0990845f, -0.188823f, 0.0641416f, -0.159532f, 0.152435f, 0.171202f, -0.232407f, -0.158169f, 0.209047f, -0.0474178f, 0.319449f, 0.108957f, 0.11817f, -0.0920148f, -0.391213f, -0.0608732f, 0.0775817f, -0.261466f, -0.041129f, -0.116169f, -0.123826f, -0.223441f, 0.322481f, -0.0677376f, 0.267475f, 0.471766f, -0.000552189f, 0.181942f, -0.0943432f, 0.380185f, 0.102616f, 0.0969943f, -0.178692f, 0.246288f, 0.195408f, -0.0336535f, 0.298933f, 0.0455202f, -0.0809653f, -0.017409f, -0.0171851f, -0.0285496f, 0.104252f, -0.0957008f, -0.0580744f, 0.256482f, -0.132236f, 0.0648953f, -0.0708861f, -0.0039081f, -0.0660617f, 0.104372f, -0.202334f, 0.115703f, -0.0924876f, -0.0318502f, 0.285581f, -0.169541f, -0.220311f, 0.217227f, -0.20039f, -0.172509f, -0.0816564f, -0.101721f, -0.111753f, -0.229721f, 0.150832f, 0.071362f, 0.0354571f, -0.0826334f, 0.00626498f, 0.035324f, -0.089987f, -0.0283019f, -0.0766623f, -0.168529f, 0.0988119f, -0.0987534f, 0.200968f, 0.063242f, -0.012436f, -0.036723f, -0.0168116f, -0.0183112f, -0.0284993f, 0.141086f, 0.0214688f, -0.0842671f, -0.0144926f, 0.0610066f, -0.125587f, 0.0484757f, -0.172457f, -0.15877f, 0.0708463f, 0.210678f, 0.00735093f, -0.0759467f, 0.0572737f, 0.0598959f, 0.0693186f, -0.163268f, -0.107083f, -0.0295297f, -0.116136f, 0.032337f, 0.0302145f, 0.058569f, -0.0962236f, -0.158437f, -0.12913f, -0.0728294f, -0.181127f, 0.0674576f, -0.0381911f, -0.109322f, 0.0647475f, 0.0332791f, 0.0089941f, 0.175037f, -0.112338f, -0.0856613f, -0.143096f, -0.0562949f, 0.1241f, -0.0691377f, -0.0909787f, 0.190082f, -0.101452f, -0.151652f, 0.0568764f, 0.156614f, -0.0221597f, -0.0344162f, 0.0323532f, -0.135157f, 0.312427f, -0.0293915f, -0.105716f, -0.107155f, -0.147632f, -0.083625f, 0.196241f, -0.169723f, 0.0456846f, -0.208414f, 0.00375746f, -0.0123966f, -0.139218f, 0.169502f, -0.180478f, 0.238119f, -0.152929f, -0.139913f, -0.0363045f, 0.107643f, -0.08058f, 0.232263f, -0.094056f, -0.0917993f, 0.0592623f, 0.096131f, 0.146373f, 0.0210147f, -0.0885272f, 0.156334f, -0.0764059f, -0.0169987f, -0.159993f, -0.0444727f, -0.11123f, -0.111217f, -0.00627605f, -0.109645f, 0.178743f, -0.190613f, 0.0628129f, -0.141974f, -0.0429547f, 0.165984f, -0.0791145f, -0.153345f, 0.187987f, -0.208895f, -0.0801783f, 0.221324f, -0.0405893f, -0.0989458f, -0.191138f, 0.111058f, 0.0475456f, -0.0377747f, -0.206032f, -0.00414682f, -0.0845252f, 0.0132202f, -0.23954f, 0.0741943f, -0.028376f, 0.0456232f, 0.00628636f, -0.0610311f, 0.0217437f, -0.0799343f, 0.0504588f, 0.123571f, 0.0386428f, 0.0124522f, 0.0111455f, 0.308583f, 0.0416721f, 0.168403f, 0.133877f, -0.0603129f, 0.01134f, 0.11016f, 0.190655f, 0.209529f, 0.0139188f, 0.0406304f, 0.0192307f, 0.0323257f, -0.21814f, 0.0701631f, 0.0560376f, 0.107661f, 0.16978f, 0.126413f, -0.0195221f, -0.0912044f, -0.229328f, -0.0267494f, 0.0118961f, -0.0637534f, 0.137186f, 0.0363951f, -0.191377f, -0.248844f, 0.130172f, 0.0590758f, -0.170797f, -0.0341409f, 0.240932f, -9.21508e-05f, -0.152086f, 0.0805479f, 0.028501f, -0.12519f, -0.0846912f, 0.128501f, 0.0467035f, 0.0896088f, 0.0523472f, -0.130948f, 0.0608833f, 0.153097f, 0.260759f, 0.0902755f, 0.224845f, 0.00972575f, 0.0160995f, 0.0477556f, 0.0848327f, 0.198868f, -0.183801f, -0.0121969f, -0.193155f, 0.0968058f, -0.116719f, -0.0978925f, 0.0709608f, 0.0975665f, 0.0178993f, 0.0282053f, 0.107428f, 0.0857774f, 0.153004f, -0.126703f, 0.139924f, -0.281684f, -0.0111227f, -0.117871f, 0.0898125f, 0.206752f, -0.0436162f, -0.269802f, 0.157701f, 0.00367765f, -0.0252561f, -0.0881458f, 0.182209f, -0.0502786f, 0.0304472f, -0.124567f, -0.00857368f, 0.00803042f, -0.206588f, -0.00409084f, -0.0681562f, 0.154952f, -0.061482f, 0.0250592f, -0.236324f, -0.0197097f, 0.0279685f, 0.126101f, -0.0469382f, -0.281738f, -0.139406f, 0.0598886f, -0.102636f, 0.0171128f, 0.0722221f, -0.0327486f, -0.0280929f, 0.0044429f, -0.048193f, -0.106313f, 0.0574747f, -0.0267309f, -0.00422801f, -0.0187839f, -0.0239089f, -0.11731f, -0.0941652f, 0.022443f, 0.103914f, -0.122853f, 0.0381604f, 0.0632005f, 0.0943756f, -0.000746983f, 0.185714f, -0.00125785f, -0.00486035f, -0.101309f, -0.049849f, -0.0117656f, 0.111874f, -0.0330368f, 0.0435619f, -0.206657f, 0.317533f, 0.306703f, 0.0643884f, -0.10935f, -0.194967f, -0.020277f, 0.15042f, -0.0439868f, 0.157856f, -0.0981316f, -0.171503f, -0.0516313f, -0.244079f, 0.259472f, 0.100094f, 0.24451f, 0.0181773f, 0.10552f, 0.204575f, 0.101123f, 0.185398f, 0.106766f, 0.1759f, -0.0751168f, -0.0347072f, -0.17574f, -0.11347f, -0.0160956f, -0.162833f, -0.0223169f, -0.132343f, 0.0504071f, -0.214356f, 0.0807329f, -0.157551f, 0.166425f, 0.104226f, 0.106084f, -0.00147906f, 0.0456598f, 0.108479f, 0.252998f, -0.0423071f, -0.128341f, 0.0119236f, 0.019042f, -0.0184908f, -0.180393f, -0.0515276f, -0.185566f, -0.0276789f, -0.227467f, -0.363695f, 0.256899f, -0.152396f, 0.0417788f, 0.0639323f, 0.0402297f, -0.00839169f, -0.108366f, 0.205866f, 0.129884f, -0.0402663f, -0.0458394f, -0.0514737f, 0.00702919f, 0.190837f, 0.0102766f, 0.0033549f, -0.101188f, -0.206389f, 0.205832f, 0.142631f, 0.0130508f, -0.0788449f, 0.106169f, 0.150019f, 0.206637f, 0.0325478f, -0.0300983f, -0.0653612f, 0.0101645f, -0.0768424f, -0.0434723f, 0.0405409f, -0.0520772f, 0.174074f, 0.0397667f, 0.100961f, 0.0989772f, 0.105878f, -0.10632f, -0.0187806f, -0.0184613f, 0.00739359f, 0.199667f, 0.0172948f, -0.226207f, -0.168443f, -0.0964683f, -0.000390955f, -0.161786f, 0.165405f, -0.125805f, 0.0568504f, -0.0693387f, -0.0447613f, -0.208184f, 0.171259f, 0.0213811f, -0.0400403f, -0.0387215f, -0.161801f, 0.139867f, -0.0810521f, -0.171466f, -0.0755621f, 0.220579f, -0.139943f, 0.235271f, -0.0474378f, 0.00303661f, -0.030774f, -0.124363f, -0.291798f, 0.0605643f, 0.251644f, -0.238482f, 0.0418277f, -0.0407744f, -0.0988104f, 0.242949f, -0.0506462f, 0.0113785f, -0.0352498f, -0.107569f, -0.151245f, 0.0673971f, -0.121222f, -0.0287582f, -0.111229f, 0.00843969f, -0.0519648f, 0.139775f, -0.161184f, -0.0506712f, -0.123381f, -0.264027f, -0.0646977f, -0.0979974f, -0.0862895f, -0.0155158f, 0.157433f, 0.0409507f, 0.167897f, -0.0396045f, 0.145752f, -0.169528f, 0.168161f, 0.0663108f, -0.0314094f, 0.029248f, -0.237414f, 0.043048f, -0.0801427f, -0.148089f, -0.122185f, 0.0858839f, -0.147664f, 0.0709367f, -0.024944f, 0.0605754f, -0.0275754f, 0.260047f, 0.139529f, -0.0638799f, 0.153889f, 0.0842222f, -0.174608f, -0.153145f, -0.177964f, 0.206541f, -0.238053f, 0.0726988f, 0.139316f, 0.0591797f, 0.0855318f, 0.0179582f, 0.0168086f, -0.0965224f, -0.128315f, 0.0751349f, 0.178349f, 0.171998f, -0.0893652f, -0.0295201f, -0.0129769f, -0.127714f, -0.00764682f, -0.0327906f, -0.00970552f, 0.113266f, -0.118684f, -0.0490055f, 0.063924f, 0.0222983f, 0.0928486f, 0.0215848f, 0.162555f, -0.0139352f, 0.0509258f, -0.0382084f, -0.207606f, -0.0523019f, -0.0152233f, 0.0886273f, 0.0948222f, 0.0593322f, 0.0391167f, 0.0613811f, -0.11076f, -0.318452f, 0.126448f, 0.163791f, 0.0631023f, -0.0226356f, -0.128848f, -0.100019f, -0.102052f, 0.0736468f, 0.0140198f, -0.0427039f, -0.0131782f, -0.163351f, 0.119609f, 0.0584089f, -0.0461407f, 0.202703f, 0.191604f, -0.0172174f, -0.0151659f, 0.109398f, 0.119537f, 0.00571323f, 0.0121479f, -0.0129911f, 0.196891f, -0.0769234f, 0.0408338f, 0.033434f, 0.0727538f, 0.105532f, -0.170121f, 0.223811f, -0.0256491f, 0.0987913f, -0.168599f, -0.230111f, -0.0874251f, 0.285439f, -0.00870619f, 0.072375f, -0.0681902f, 0.100473f, 0.0357849f, 0.0646213f, 0.0815534f, -0.0904936f, -0.000729126f, -0.0408629f, 0.00791367f, -0.183278f, -0.084852f, 0.0380787f, 0.0119861f, -0.1332f, 0.0195311f, 0.101879f, 0.0176711f, 0.124079f, -0.170235f, 0.0717808f, 0.125928f, 0.0862435f, -0.197306f, -0.0325205f, 0.198641f, 0.144394f, 0.0681162f, -0.0465623f, 0.00289229f, 0.0820616f, 0.011701f, 0.088909f, 0.123753f, -0.00691783f, 0.136213f, -0.0600309f, 0.000882166f, -0.00108048f, 0.119275f, 0.164031f, 0.125636f, 0.069326f, -0.206965f, 0.17212f, 0.275754f, 0.0584626f, -0.186063f, 0.019512f, -0.0516806f, -0.144263f, 0.0818549f, -0.0666096f, 0.0503725f, -0.0291542f, 0.016482f, 0.137406f, -0.0028739f, -0.00310442f, -0.12761f, 0.0912575f, -0.0841728f, 0.0371428f, -0.0648381f, 0.131361f, -0.0180739f, -0.0488503f, -0.00805979f, -0.112502f, 0.179981f, 0.157663f, -0.0040145f, 0.0857851f, -0.150225f, -0.0392053f, 0.0509387f, 0.179713f, -0.340158f, 0.232081f, 0.0955776f, -0.0451021f, -0.100691f, 0.161409f, -0.0130543f, 0.0202751f, 0.192624f, -0.117486f, 0.249824f, 0.152502f, 0.0333573f, 0.153616f, -0.0488291f, 0.144206f, -0.101357f, 0.0619833f, -0.0282441f, 0.0989099f, -0.0635282f, 0.0798867f, -0.134276f, 0.00819014f, 0.17199f, 0.220609f, 0.0764152f, -0.00977614f, -0.118515f, 0.00671268f, -0.233391f, -0.0415099f, -0.231059f, -0.0832087f, -0.0745819f, -0.0547066f, -0.0173529f, 0.149021f, -0.0689238f, 0.0646632f, 0.161006f, 0.126112f, -0.0923665f, 0.0642301f, -0.133968f, -0.0324702f, 0.0523649f, -0.0193252f, 0.0929967f, 0.0165989f, 0.0169445f, -0.0805363f, -0.053397f, 0.0895483f, 0.0812426f, 0.0237573f, -0.0080644f, 0.196266f, -0.0933319f, 0.160393f, -0.0653707f, 0.141972f, -0.0771568f, -0.0458535f, 0.0318099f, 0.119215f, 0.218229f, 0.141364f, 0.0808469f, -0.0687373f, 0.0172776f, 0.0416236f, -0.186807f, 0.0409735f, -0.087341f, 0.0579103f, 0.172118f, -0.0132417f, -0.00736812f, 0.0283898f, -0.0352268f, -0.0545576f, 0.232941f, -0.078594f, -0.0416123f, 0.0486298f, -0.0484354f, 0.0525117f, 0.101252f, -0.0686634f, 0.0120119f, 0.14403f, -0.142283f, -0.0147382f, 0.289106f, 0.0494861f, 0.1183f, 0.0823231f, -0.0940964f, 0.00103304f, 0.0753822f, 0.133729f, -0.107148f, -0.0167868f, 0.0663824f, 0.0640804f, 0.00184604f, 0.154005f, -0.00454032f, 0.0499476f, -0.142828f, -0.0890787f, -0.0473053f, 0.0411929f, -0.0954562f, -0.00731582f, 0.0591638f, -0.0264202f, 0.0757302f, -0.0319824f, -0.0469359f, -0.198772f, 0.223912f, 0.0314918f, 0.0381731f, -0.102691f, -0.140427f, 0.126687f, -0.0817585f, -0.0531709f, 0.105889f, -0.0270207f, 0.0214643f, -0.0816349f, 0.0608291f, -0.0935634f, -0.168623f, 0.144258f, -0.164669f, 0.108766f, -0.0814779f, 0.00241846f, 0.0659046f, -0.0942777f, -0.0890397f, 0.105369f, 0.151275f, -0.0717512f, -0.0493074f, -0.140407f, -0.0172811f, 0.0634424f, 0.249991f, 0.0269078f, 0.156453f, -0.301387f, -0.0997673f, 0.026561f, 0.0932085f, -0.0963f, 0.19287f, -0.119789f, -0.172648f, -0.1784f, -0.0480075f, 0.0288328f, -0.121207f, -0.109088f, -0.225635f, 0.180621f, 0.145767f, -0.0100607f, 0.0904124f, -0.227142f, -0.168847f, -0.013114f, 0.00676613f, -0.126259f, 0.152862f, -0.15937f, -0.0415892f, -0.0462056f, 0.0129561f, 0.24004f, 0.00503096f, -0.0703629f, 0.075849f, -0.104919f, 0.0869551f, 2.22345e-05f, 0.0578207f, -0.107746f, -0.101335f, 0.0707879f, -0.0720031f, -0.137322f, 0.0540443f, 0.0491564f, -0.0117644f, -0.217536f, 0.0308799f, -0.0740967f, -0.0521287f, 0.130147f, 0.0201831f, 0.0259361f, -0.0336979f, -0.00285525f, -0.219361f, -0.105712f, 0.239873f, -0.191303f, 0.0806222f, -0.174987f, -0.012217f, -0.197023f, 0.0492596f, -0.101804f, -0.00543839f, 0.131868f, -0.109042f, -0.073107f, -0.1365f, -0.155295f, -0.0945194f, 0.016341f, -0.268958f, -0.0224198f, 0.170854f, 0.120418f, 0.0955523f, 0.0965278f, -0.035517f, -0.0545711f, 0.00337954f, -0.144529f, -0.0305143f, 0.132406f, -0.108307f, 0.149899f, -0.231701f, 0.241231f, -0.000728205f, 0.155372f, 0.104387f, -0.139394f, 0.00812065f, 0.246093f, -0.15115f, 0.235888f, 0.131774f, 0.105572f, -0.0973481f, -0.188952f, 0.0505968f, -0.0778897f, 0.0626547f, -0.0715128f, -0.103278f, 0.0844924f, 0.131643f, -0.1025f, 0.10291f, 0.162548f, -0.0208971f, 0.0554997f, 0.0350355f, 0.123109f, 0.0732743f, 0.0234119f, -0.140801f, 0.197903f, -0.141f, -0.00452904f, -0.158492f, -0.182686f, -0.0610551f, 0.109176f, 0.181916f, 0.0748494f, 0.0344042f, -0.067836f, -0.137134f, -0.0855471f, -0.117947f, 0.0850113f, 0.0137193f, -0.010527f, 0.130947f, -0.102099f, -0.0957627f, 0.113111f, 0.2145f, -0.0522371f, -0.172599f, -0.1378f, -0.0913496f, -0.11666f, 0.211939f, 0.0569771f, -0.0404667f, -0.145604f, 0.130568f, -0.00276904f, -0.0710652f, -0.119411f, -0.0722745f, -0.18576f, -0.016118f, -0.116839f, -0.090888f, -0.179876f, 0.0294893f, -0.17277f, -0.119309f, 0.232317f, -0.0536684f, 0.18558f, -0.115276f, 0.0383135f, 0.038503f, 0.181748f, 0.0758917f, -0.154463f, -0.182919f, 0.147145f, -0.0126074f, -0.0418381f, -0.11297f, 0.0103289f, -0.0368456f, 0.278182f, 0.157565f, 0.143115f, -0.079821f, -0.178861f, 0.0276078f, 0.000372434f, 0.0233536f, 0.0958963f, 0.187943f, 0.191109f, 0.138723f, -0.0540335f, -0.00365738f, 0.034488f, -0.00474093f, -0.287405f, -0.239822f, -0.0819705f, -0.0573618f, 0.143925f, -0.0191419f, -0.0501005f, 0.0329972f, 0.137078f, -0.0965081f, -0.0682077f, -0.111341f, 0.0625714f, 0.0306097f, -0.0218431f, 0.129635f, -0.0210548f, -0.0197986f, -0.0518177f, -0.0436772f, -0.131071f, -0.225836f, 0.00625549f, 0.0322132f, -0.0768337f, 0.131975f, 0.00889276f, 0.0489575f, -0.248164f, 0.0396795f, 0.1622f, -0.166368f, -0.173215f, 0.209523f, 0.256479f, -0.231697f, -0.143673f, 0.0589807f, 0.151495f, -0.10649f, -0.197632f, -0.0423768f, 0.18235f, -0.135969f, -0.00524809f, -0.0111443f, -0.0113861f, 0.00537076f, 0.120063f, 0.144619f, 0.0906672f, 0.113282f, 0.158077f, 0.0764148f, 0.0199171f, 0.182439f, 0.131114f, 0.0425072f, 0.0506302f, 0.28546f, -0.0197349f, -0.0879918f, 0.0846f, 0.237368f, 0.0783246f, 0.0890284f, -0.134633f, 0.118198f, -0.00682546f, 0.11324f, -0.211299f, 0.013705f, 0.023855f, 0.00747037f, 0.223451f, -0.171756f, -0.0274543f, -0.17746f, 0.0444899f, 0.0668234f, -0.321517f, -0.144064f, -0.0224703f, 0.0801804f, 0.0338708f, -0.118417f, 0.128159f, 0.17046f, -0.143898f, -0.140397f, 0.00895401f, -0.117396f, 0.023287f, -0.0467729f, 0.224132f, -0.0909673f, -0.107415f, -0.161888f, -0.247995f, -0.00860488f, 0.0431389f, -0.191285f, 0.0141539f, -0.116147f, -0.0624177f, -0.0115833f, 0.11179f, 0.0285145f, 0.253069f, 0.0016172f, -0.220828f, 0.032597f, 0.0259053f, -0.0930103f, 0.219059f, 0.0328587f, -0.231498f, -0.101035f, 0.182733f, 0.131782f, -0.00518682f, 0.106017f, -0.103796f, 0.0125917f, 0.0975793f, 0.0521452f, 0.112533f, -0.0899829f, 0.23937f, 0.0527948f, -0.185733f, 0.149283f, 0.0392282f, 0.0206277f, -0.0949587f, -0.0984154f, -0.0226723f, 0.0564458f, -0.00431445f, 0.111011f, -0.173557f, -0.106257f, -0.151055f, -0.0556065f, 0.0640251f, -0.243505f, -0.207463f, 0.202453f, -0.174126f, -0.169518f, 0.299416f, 0.131626f, -0.0134067f, -0.179216f, 0.181195f, 0.120095f, -0.0896925f, 0.00078687f, 0.00178658f, -0.0401267f, -0.00120663f, 0.147796f, 0.034812f, -0.227134f, -0.146281f, 0.122676f, 0.151621f, 0.0703877f, 0.0914774f, -0.00931555f, 0.00133774f, -0.247794f, -0.160732f, 0.0770572f, 0.249643f, 0.217932f, 0.0738432f, 0.035924f, -0.106018f, -0.0162348f, -0.011838f, 0.262566f, -0.0768137f, -0.227345f, -0.0724149f, -0.225263f, -0.0771134f, -0.0734765f, -0.0353514f, 0.000809019f, 0.280063f, 0.0171061f, 0.238279f, -0.0133466f, -0.102419f, -0.254025f, 0.155535f, -0.126355f, 0.013897f, -0.247309f, -0.0881683f, 0.208916f, 0.191098f, -0.103253f, 0.191012f, -0.0169145f, -0.258648f, -0.126752f, 0.170194f, -0.138752f, 0.0583742f, -0.091655f, 0.185282f, -0.26523f, 0.176784f, 0.0972773f, -0.0806131f, 0.126663f, 0.0987247f, 0.0186138f, -0.0925371f, -0.0918171f, 0.145988f, -0.0284764f, 0.012563f, 0.0731498f, -0.264874f, 0.10075f, 0.031231f, 0.114215f, -0.218172f, -0.154288f, 0.0665525f, 0.102346f, -0.0867592f, 0.166863f, -0.0445074f, 0.163581f, -0.0571944f, 0.0564541f, 0.0693555f, 0.156838f, -0.144084f, 0.237257f, -0.078723f, -0.0799481f, -0.257811f, -0.192547f, -0.228727f, 0.0669888f, 0.00860727f, 0.0547705f, 0.0566401f, 0.133286f, -0.0462406f, -0.0564886f, 0.0969748f, -0.132711f, -0.0231345f, 0.103791f, -0.0152155f, -0.101176f, 0.271772f, -0.224406f, -0.150399f, -0.265621f, -0.0421936f, 0.209641f, 0.272643f, -0.0836971f, 0.285742f, -0.0828239f, 0.0890314f, -0.156897f, 0.195036f, 0.18622f, -0.142381f, 0.0981366f, 0.120264f, -0.184913f, -0.126809f, -0.0352029f, 0.0222585f, -0.109725f, 0.177188f, -0.0397066f, 0.141945f, -0.154534f, 0.0101069f, -0.0374879f, 0.100513f, 0.0901533f, 0.0705928f, 0.119557f, 0.133947f, 0.113641f, -0.0805555f, 0.28911f, -0.125454f, -0.148723f, 0.137668f, 0.100457f, 0.21462f, -0.0733323f, -0.0349016f, -0.103982f, 0.196625f, 0.0470219f, 0.178736f, 0.170526f, 0.264673f, -0.158406f, 0.0507479f, -0.113972f, 0.0174423f, -0.0095501f, 0.134027f, 0.0723004f, 0.119682f, -0.145386f, 0.00401078f, -0.130957f, 0.031604f, -0.115654f, 0.152149f, 0.327064f, -0.0696927f, -0.0430574f, -0.197244f, -0.114756f, -0.212657f, -0.132105f, 0.0506328f, -0.220456f, -0.249327f, -0.0812447f, 0.26433f, -0.11489f, -0.0524444f, -0.281329f, 0.154217f, 0.105288f, 0.0501329f, 0.059548f, 0.255756f, -0.169056f, 0.00767002f, -0.0273701f, -0.0640584f, -0.0733251f, -0.0722304f, 0.0401339f, 0.0989603f, -0.150117f, 0.16901f, 0.0451639f, 0.226883f, -0.125865f, -0.179634f, 0.0630091f, -0.197256f, 0.0777011f, -0.225271f, 0.174039f, -0.0153624f, 0.206696f, -0.257132f, -0.0289615f, -0.166864f, 0.00791574f, 0.0951196f, -0.0225803f, 0.108956f, 0.0362924f, 0.0943742f, 0.0357214f, 0.10744f, 0.187531f, 0.0292007f, 0.186666f, 0.089033f, 0.0548251f, -0.226519f, 0.156487f, 0.167638f, 0.210613f, 0.244259f, 0.0900702f, 0.189753f, -0.131505f, -0.21927f, -0.0923843f, 0.144714f, -0.145806f, 0.0827833f, -0.232949f, 0.0100534f, -0.0403841f, -0.170683f, -0.166561f, -0.0415859f, 0.0903052f, 0.0786864f, 0.127101f, -0.0850392f, -0.102242f, 0.0956275f, 0.122035f, 0.141168f, 0.033213f, -0.0850884f, 0.120292f, 0.0814406f, -0.0596541f, 0.152527f, 0.100685f, 0.00698795f, -0.100243f, 0.0104053f, 0.10098f, 0.244871f, -0.0199666f, 0.257328f, -0.116686f, -0.119445f, -0.192839f, 0.178086f, 0.0427172f, -0.0257218f, 0.171972f, -0.296562f, -0.250368f, -0.0156171f, -0.106786f, 0.113587f, -0.0748537f, -0.0321127f, -0.0758407f, 0.114806f, 0.0452392f, -0.168107f, 0.0114412f, 0.0440024f, 0.0972787f, -0.0243558f, 0.0692821f, 0.0760816f, 0.185929f, -0.0562051f, -0.183305f, 0.0946811f, -0.11418f, -0.158481f, 0.117736f, -0.183528f, 0.206095f, -0.12179f, -0.189266f, -0.109165f, -0.136707f, -0.0204956f, 0.253776f, -0.0820915f, -0.251516f, 0.293669f, 0.0268485f, 0.0444304f, -0.0558429f, -0.348562f, 0.289244f, 0.123064f, 0.065258f, -0.0956982f, 0.214264f, -0.0498267f, -0.263771f, -0.0233266f, -0.110222f, -0.0427693f, 0.0261123f, -0.119887f, -0.143324f, -0.031421f, 0.131307f, 0.0691261f, -0.0109609f, -0.265697f, 0.0850318f, 0.0087928f, -0.167774f, 0.214919f, -0.157545f, 0.00574098f, -0.0528089f, 0.17446f, -0.0341973f, 0.168464f, -0.10717f, 0.193871f, 0.223934f, 0.0444987f, -0.186898f, -0.0901894f, 0.264504f, -0.038023f, -0.045079f, 0.0192638f, 0.078446f, 0.0596947f, -0.162183f, -0.248256f, 0.123224f, 0.312637f, -0.223375f, 0.0551141f, 0.324831f, 0.0666989f, -0.280649f, 0.0691396f, -0.0208829f, -0.0549708f, -0.00875925f, 0.235051f, 0.0304747f, -0.11112f, -0.00517323f, 0.13845f, -0.162168f, 0.0786348f, -0.112234f, -0.140868f, 0.0684156f, 0.0556706f, 0.000617623f, 0.00934514f, -0.0979199f, -0.0449759f, 0.158565f, 0.00124008f, -0.103346f, 0.123343f, 0.0455048f, 0.213901f, 0.205338f, -0.111906f, -0.0527817f, -0.00167314f, -0.0422384f, -0.163251f, 0.245198f, -0.131871f, -0.133958f, -0.0493695f, -0.11635f, -0.210995f, 0.0820445f, -0.0292451f, 0.176524f, 0.0340983f, -0.062848f, -0.0803327f, 0.146175f, 0.105935f, -0.300821f, -0.230962f, 0.232483f, 0.186979f, 0.309542f, -0.190345f, 0.0290367f, -0.000604254f, -0.256692f, -0.127606f, 0.00376907f, 0.0926833f, -0.109616f, -0.198911f, -0.182639f, -0.125591f, -0.0376013f, -0.140824f, -0.142159f, -0.272582f, -0.0459699f, -0.263291f, -0.0618196f, 0.0231469f, -0.367311f, -0.32058f, 0.0977621f, 0.0376007f, 0.0113273f, 0.224073f, -0.0906553f, -0.160541f, -0.159614f, 0.116235f, 0.0633637f, -0.067684f, -0.0161025f, -0.208696f, -0.136911f, 0.228833f, -0.188215f, 0.300656f, 0.140706f, 0.0749561f, 0.125291f, 0.14724f, -0.0991632f, 0.0864122f, 0.0869478f, -0.167563f, 0.120387f, 0.181514f, 0.0630136f, -0.0113265f, -0.320548f, 0.13056f, -0.101895f, 0.244093f, -0.18212f, 0.00452135f, -0.0413259f, 0.133743f, -0.144145f, -0.296396f, -0.0249471f, 0.0153846f, -0.181634f, -0.00641961f, 0.1419f, 0.265553f, 0.123852f, 0.194626f, 0.219706f, 0.087147f, 0.147935f, -0.0903955f, 0.0159125f, 0.28341f, -0.16291f, 0.175948f, -0.21378f, -0.112381f, 0.213198f, -0.0240636f, 0.0457854f, 0.0483817f, -0.15712f, 0.27091f, -0.285541f, -0.155012f, -0.237785f, -0.158555f, -0.244161f, 0.0591492f, -0.128298f, 0.0209307f, 0.184384f, -0.0223334f, 0.00445581f, 0.176554f, -0.0697603f, 0.195483f, 0.110775f, 0.0689016f, -0.112131f, 0.0271189f, -0.0717036f, 0.00565916f, 0.215499f, 0.125018f, -0.00282494f, -0.200716f, 0.245174f, -0.0738218f, -0.0122963f, 0.213201f, -0.139332f, -0.167892f, -0.264457f, 0.082706f, -0.299007f, 0.122199f, -0.0567321f, 0.225136f, 0.0992968f, 0.413944f, 0.0141737f, 0.184605f, -0.190655f, -0.155539f, -0.0459021f, 0.307694f, -0.249888f, -0.165425f, -0.186335f, -0.0991058f, -0.105671f, -0.276775f, -0.114099f, -0.116133f, 0.071774f, 0.0101292f, -0.0300097f, -0.0924f, -0.172245f, 0.181669f, -0.368279f, -0.201701f, -0.0548032f, -0.118651f, 0.162104f, -0.234561f, -0.08483f, -0.254777f, -0.220394f, 0.117873f, 0.272167f, -0.194758f, -0.0264096f, 0.114118f, -0.134973f, -0.0866739f, 0.163355f, -0.153773f, -0.0209155f, -0.216218f, -0.0450452f, 0.000959604f, -0.228745f, 0.0716958f, 0.0246147f, 0.200885f, 0.110703f, 0.249328f, 0.495458f, 0.124791f, 0.203483f, -0.250201f, -0.0459404f, 0.135054f, 0.163866f, -0.00533593f, -0.165351f, 0.179244f, 0.350087f, 0.469259f, -0.19131f, 0.176016f, -0.0165678f, -0.00727748f, -0.0639924f, 0.156125f, -0.180413f, -0.162065f, -0.107145f, 0.0362905f, 0.00953257f, -0.0696836f, -0.192961f, -0.25429f, 0.142465f, 0.00653369f, -0.182458f, 0.0823424f, 0.121246f, 0.00830045f, 0.0613724f, -0.0672164f, 0.0930629f, 0.103939f, -0.08148f, -0.107841f, 0.250381f, -0.261543f, -0.255451f, -0.333096f, -0.138452f, 0.00976893f, -0.236643f, 0.166208f, 0.0435071f, 0.0962908f, 0.00419878f, 0.00931028f, -0.240865f, -0.178077f, -0.403639f, -0.20125f, 0.261871f, -0.181256f, -0.170618f, 0.0782273f, 0.185297f, -0.0177792f, -0.0331624f, -0.00458638f, 0.107698f, -0.0872865f, -0.199978f, -0.311353f, -0.203401f, 0.163278f, 0.523337f, 0.0562682f, 0.272375f, -0.00688347f, 0.435478f, 0.197609f, -0.091879f, -0.119517f, -0.367985f, 0.0160273f, 0.261118f, 0.0908978f, 0.0121177f, 0.187961f, -0.0550638f, -0.225438f, 0.0648774f, -0.157838f, 0.0981653f, 0.3036f, 0.0991271f, -0.280124f, 0.331446f, 0.0269266f, 0.0913465f, -0.148606f, 0.00749247f, -0.219456f, 0.0653162f, -0.113414f, -0.080871f, 0.0153253f, -0.0104536f, -0.0337444f, -0.02266f, -0.048818f, 0.0293535f, -0.0804522f, 0.0448473f, -0.0388424f, 0.0885175f, 0.270358f, -0.0101002f, 0.225883f, 0.0457063f, -0.109308f, 0.0375611f, 0.0586005f, -0.0294961f, -0.129253f, 0.125576f, -0.134983f, -0.0427109f, -0.00742816f, 0.0624466f, 0.0921506f, 0.217218f, -0.132886f, -0.0142893f, 0.0401793f, -0.0133938f, -0.176294f, 0.0361158f, 0.137753f, -0.100371f, -0.0745356f, -0.0782492f, 0.0107853f, 0.0104913f, -0.157196f, -0.102874f, -0.225804f, 0.008232f, 0.0986046f, 0.105292f, -0.108643f, 0.0304799f, 0.0363919f, -0.167664f, -0.0192818f, 0.00163039f, -0.0286548f, -0.0128095f, 0.0999709f, 0.0720167f, 0.191841f, -0.0940155f, 0.0243954f, -0.0957261f, 0.0193073f, 0.0372085f, -0.11253f, 0.0739387f, 0.058488f, 0.179126f, 0.116966f, -0.0522783f, -0.151171f, -0.0627777f, -0.0474066f, 0.075866f, -0.159277f, 0.020584f, -0.153347f, 0.0754811f, -0.257302f, -0.065996f, -0.166211f, -0.0101078f, 0.0734332f, 0.0793429f, 0.0499156f, -0.238975f, -0.0744833f, -0.0275133f, 0.0528319f, 0.00107819f, -0.102551f, 0.118994f, 0.104805f, 0.0572655f, -0.103281f, -0.0328109f, 0.0466424f, 0.160654f, -0.114022f, 0.129484f, 0.0630359f, 0.190218f, 0.00465109f, 0.0103497f, -0.0230838f, -0.110465f, 0.103842f, 0.0731263f, -0.0405242f, -0.0364888f, 0.0722455f, 0.217877f, 0.0128647f, -0.0161328f, -0.0275736f, 0.11226f, 0.0581312f, 0.119446f, 0.15226f, -0.161187f, 0.106298f, 0.0476425f, 0.0277407f, 0.182015f, 0.0134261f, -0.0200785f, 0.0980741f, -0.144066f, 0.046601f, -0.122462f, -0.00176688f, -0.162078f, 0.126338f, -0.0199152f, 0.038038f, -0.0529102f, 0.0875749f, 0.00254234f, 0.10248f, -0.157177f, 0.0204484f, 0.141725f, 0.00484698f, 0.301225f, -0.0245901f, 0.0950319f, -0.115827f, 0.0792036f, 0.20297f, -0.168831f, 0.172778f, -0.157442f, -0.218497f, 0.0142406f, 0.172062f, 0.0374043f, 0.140716f, 0.0389592f, -0.0533205f, 0.171136f, -0.163765f, 0.178097f, 0.171108f, 0.109688f, -0.103333f, 0.140709f, 0.0556163f, -0.0938688f, 0.0832893f, 0.137513f, 0.121178f, 0.0362336f, 0.106126f, -0.167134f, -0.0784591f, 0.130345f, -0.106555f, 0.197935f, -0.0309282f, -0.206163f, -0.11608f, -0.068536f, 0.00794505f, -0.144935f, -0.105462f, 0.0141614f, -0.242461f, 0.219859f, 0.0505096f, 0.0826134f, 0.00691333f, -0.210516f, -0.0273347f, -0.149744f, -0.229006f, 0.15621f, 0.0105737f, 0.0527653f, -0.170421f, -0.0994734f, 0.0693196f, -0.013168f, 0.133547f, -0.189788f, -0.0941412f, -0.10978f, -0.171649f, 0.11925f, 0.0362594f, 0.133422f, 0.0178179f, -0.120792f, -0.243934f, 0.0131428f, 0.106736f, -0.228037f, 0.127773f, -0.0921831f, -0.255812f, -0.0185862f, 0.0648011f, -0.101091f, -0.20952f, 0.215693f, -0.0472135f, 0.00362264f, 0.0794957f, -0.168265f, 0.0472817f, 0.0976013f, -0.204143f, -0.0374623f, -0.0748064f, -0.0593234f, -0.112574f, 0.117804f, 0.179774f, 0.0256314f, 0.243803f, -0.0677769f, -0.0664026f, -0.00609442f, 0.104979f, 0.109697f, 0.072688f, 0.0490189f, -0.0364464f, 0.189424f, -0.117763f, -0.197207f, -0.03538f, -0.207353f, -0.0848202f, 0.144936f, 0.0489328f, -0.0843722f, -0.125872f, -0.0276122f, -0.0554877f, 0.0473094f, -0.00779098f, -0.145058f, 0.446869f, 0.318032f, 0.0330787f, 0.0698517f, -0.277383f, 0.202823f, -0.264613f, 0.416983f, 0.0113072f, -0.256347f, -0.00584838f, 0.668021f, 0.148974f, -0.129962f, -0.229062f, -0.0537374f, 0.211514f, 0.113163f, -0.31594f, -0.0690746f, -0.620335f, 0.355797f, 0.247593f, -0.059089f, 0.0656525f, 0.0452602f, -0.128671f, -0.0980946f, -0.225514f, -0.138333f, 0.0580665f, -0.300717f, -0.0487785f, 0.305489f, -0.156994f, 0.152632f, 0.0276785f, 0.127952f, 0.0305895f, -0.166149f, -0.331118f, 0.0564484f, -0.207838f, -0.152435f, -0.0673115f, 0.242134f, -0.0839788f, 0.0930517f, -0.0740806f, 0.133803f, 0.127175f, 0.118421f, 0.0491066f, 0.127058f, 0.197101f, -0.102437f, -0.052902f, 0.160135f, -0.263193f, -0.0750887f, -0.160684f, -0.0305888f, 0.193537f, -0.0825738f, 0.0527266f, -0.125991f, 0.252954f, -0.112691f, -0.330859f, -0.217873f, 0.230543f, -0.235441f, -0.0381729f, 0.00903053f, -0.125171f, -0.0290775f, 0.0496446f, -0.126267f, -0.200254f, 0.0350531f, 0.261073f, -0.0895626f, -0.255996f, 0.102011f, -0.25024f, -0.27169f, -0.0243071f, -0.00872671f, -0.0505115f, -0.0982787f, -0.113361f, 0.227374f, 0.39082f, 0.108647f, 0.398331f, -0.0425956f, 0.239808f, 0.0176254f, -0.0247386f, -0.0798346f, 0.21938f, 0.0857952f, 0.148254f, -0.0715495f, 0.0327738f, -0.170215f, 0.255695f, -0.0397255f, -0.430495f, 0.00613036f, -0.0413493f, -0.116231f, 0.0903728f, 0.150409f, 0.122691f, -0.161078f, 0.245937f, 0.311166f, 0.0526297f, 0.102028f, 0.145485f, 0.0492735f, -0.0061255f, -0.0421286f, -0.110915f, -0.0337947f, -0.0846135f, -0.272255f, 0.0803621f, 0.0384347f, -0.159969f, 0.14781f, 0.262063f, -0.144423f, -0.223236f, -0.0638623f, 0.0907456f, 0.223499f, 0.0398842f, -0.00385592f, -0.0386869f, 0.188297f, -0.201975f, 0.075984f, -0.110502f, -0.0803924f, -0.133951f, 0.193636f, 0.1834f, 0.00631881f, 0.0354773f, 0.0243626f, -0.0977847f, 0.0241574f, -0.000599493f, -0.156671f, -0.0657313f, 0.0613982f, -0.150353f, 0.0336429f, 0.148081f, -0.0811557f, 0.0154047f, -0.168856f, -0.0821951f, 0.137417f, 0.0796521f, 0.0683363f, 0.175886f, -0.0662589f, 0.0656389f, 0.0622708f, -0.0380322f, -0.157142f, 0.0581968f, 0.139872f, 0.164168f, -0.133411f, -0.115755f, 0.155535f, 0.0791717f, 0.140617f, 0.105237f, 0.0135491f, -0.00518017f, -0.0126308f, -0.117188f, 0.0311143f, 0.0597598f, 0.0744582f, 0.209761f, -0.0204385f, -0.0700225f, 0.0190691f, 0.0681151f, 0.0128341f, 0.0771373f, 0.0825693f, -0.0494624f, -0.148467f, -0.136281f, 0.0794052f, -0.0394921f, 0.0211117f, -0.124466f, -0.0184835f, 0.0406519f, -0.0179672f, 0.064887f, 0.0163878f, -0.0858309f, 0.0697334f, -0.209284f, 0.0478404f, -0.121567f, -0.0186989f, -0.296465f, 0.192648f, 0.240602f, 0.0350823f, -0.0551478f, 0.171499f, 0.00835906f, 0.185372f, 0.0134461f, -0.0302956f, -0.0515179f, -0.110102f, 0.0541749f, -0.0219285f, -0.109873f, 0.175148f, -0.208059f, -0.00521394f, -0.087831f, 0.120009f, -0.039281f, 0.134569f, -0.0773004f, 0.150566f, -0.155866f, -0.0669274f, 0.0655985f, -0.166163f, -0.0482645f, 0.150507f, 0.0275749f, 0.0981216f, 0.077495f, -0.0706104f, -0.0899534f, 0.0784846f, -0.100819f, 0.0300863f, -0.135665f, -0.104175f, 0.116302f, 0.0949263f, -0.0606259f, -0.0123086f, -0.0318078f, 0.155099f, 0.04631f, 0.122666f, 0.184675f, 0.0903884f, 0.225381f, 0.0790142f, 0.0920054f, 0.0271939f, -0.0698344f, -0.0421685f, 0.00523177f, -0.0196774f, 0.00971473f, -0.157141f, -0.0621555f, 0.10828f, 0.114953f, 0.0788426f, 0.123532f, 0.0595084f, 0.0507424f, 0.0416865f, 0.124517f, -0.0093001f, -0.0682845f, -0.106367f, -0.122297f, -0.24514f, 0.106104f, 0.0999612f, -0.0362093f, -0.0794948f, -0.115845f, -0.0412123f, 0.121157f, -0.0520765f, 0.0293081f, 0.0828373f, 0.0130561f, 0.0551273f, -0.0607205f, -0.0850314f, -0.0504622f, -0.086282f, 0.0901463f, -0.158594f, 0.0330073f, 0.0553946f, -0.0934554f, 0.0348321f, -0.0556733f, -0.0503742f, -0.200762f, 0.135514f, -0.0456962f, -0.107312f, 0.0557669f, 0.12488f, -0.0935355f, 0.0231619f, 0.0882605f, 0.0369428f, -0.0461314f, -0.0665327f, -0.130602f, 0.0524464f, -0.199851f, 0.147874f, -0.0491948f, -0.0964199f, 0.02731f, 0.107613f, -0.0573481f, -0.162601f, 0.0191026f, 0.0631272f, -0.0674071f, 0.178737f, 0.129097f, -0.124964f, 0.0724421f, 0.0597304f, 0.17374f, -0.0616568f, 0.193452f, 0.0166219f, 0.104404f, -0.035051f, 0.0943314f, -0.0856442f, 0.00241376f, 0.0369354f, -0.069252f, 0.242583f, 0.0497162f, 0.180377f, 0.0284388f, 0.113856f, -0.00477402f, 0.0605012f, 0.100637f, 0.168091f, -0.124229f, -0.0837749f, -0.0611605f, 0.0630374f, -0.201997f, 0.18094f, 0.0963129f, -0.0123308f, -0.0905906f, 0.029996f, 0.13836f, 0.0725569f, -0.0344142f, 0.108646f, -0.104891f, 0.0518494f, -0.108641f, -0.196701f, 0.316906f, -0.0010171f, -0.171259f, 0.0343379f, 0.133219f, 0.233303f, 0.0438546f, 0.171428f, -0.134019f, 0.287741f, 0.0390827f, -0.095526f, 0.094941f, -0.0137698f, 0.0477865f, -0.0226362f, 0.0336554f, 0.225104f, 0.101675f, -0.16743f, -0.247271f, 0.099805f, 0.147034f, -0.0804398f, 0.00966647f, 0.0452347f, -0.0558863f, 0.0428325f, -0.0485883f, 0.100212f, 0.0558109f, -0.13572f, 0.189464f, 0.0124126f, 0.0520572f, -0.0203118f, -0.0745852f, -0.037523f, -0.0365261f, 0.0901693f, 0.0545272f, 0.151065f, 0.0668647f, 0.13127f, 0.17496f, 0.0284235f, 0.16356f, -0.0328422f, 0.00426763f, 0.0827611f, -0.173454f, 0.00996443f, -0.249593f, 0.0988915f, 0.22441f, -0.11343f, 0.092787f, 0.0359474f, -0.127873f, 0.025239f, -0.180968f, -0.157276f, -0.0411603f, 0.0978309f, 0.22557f, 0.00237003f, 0.330124f, -0.209234f, 0.150966f, -0.169975f, 0.108072f, -0.19617f, -0.0611863f, -0.0951567f, -0.308337f, -0.0657192f, 0.0428319f, -0.0752574f, -0.0830245f, 0.201056f, 0.0889962f, -0.0622153f, 0.0633091f, -0.0867155f, -0.0515434f, 0.160388f, -0.206114f, 0.00587805f, 0.212239f, -0.114398f, -0.0239174f, -0.13778f, 0.192684f, 0.00606051f, -0.0102993f, 0.0148517f, -0.00952546f, -0.0733037f, 0.0575347f, -0.333988f, -0.136889f, -0.31824f, -0.0395455f, -0.109462f, -0.0593661f, -0.0448308f, 0.0727243f, 0.13264f, -0.177867f, 0.0762466f, -0.165201f, -0.166649f, -0.0120234f, 0.0945766f, -0.0399034f, 0.0162236f, -0.0238349f, -0.0498019f, 0.0519174f, -0.00233862f, 0.0592462f, 0.188189f, 0.0665054f, -0.084921f, -0.166441f, -0.0365398f, -0.255933f, -0.0917134f, 0.272443f, 0.383063f, -0.126593f, -0.0986979f, -0.0506034f, -0.0362445f, 0.0251744f, -0.185626f, -0.177229f, 0.0619459f, 0.312929f, 0.022784f, 0.159462f, -0.18924f, 0.122641f, 0.0845807f, -0.221519f, 0.218801f, 0.00695306f, -0.208093f, 0.0278141f, -0.0399147f, -0.287364f, 0.218399f, 0.117067f, 0.0285589f, -0.0593975f, 0.216511f, -0.0820827f, 0.162391f, 0.00138002f, -0.111875f, 0.196798f, 0.140738f, 0.332033f, -0.211838f, 0.0707371f, -0.112152f, -0.0449479f, -0.0444516f, 0.168792f, -0.0408123f, 0.0177637f, 0.205413f, -0.226185f, -0.277948f, -0.0754181f, -0.0524973f, 0.0326083f, -0.205173f, -0.0300045f, -0.153032f, 0.0209459f, 0.240918f, -0.103035f, -0.118023f, 0.138865f, 0.0513835f, -0.0821503f, 0.112258f, -0.0228424f, -0.104109f, 0.00877613f, -0.19651f, -0.0946457f, 0.212195f, -0.0968615f, 0.15188f, -0.0694288f, 0.107814f, 0.139436f, 0.139668f, 0.096489f, -0.215524f, 0.0559725f, -0.0887908f, -0.262769f, 0.125454f, -0.323266f, 0.0940458f, 0.19065f, -0.158859f, -0.199516f, 0.0150373f, 0.0232064f, 0.0761453f, 0.261359f, -0.183361f, 0.294617f, 0.0297628f, -0.15828f, 0.0423173f, 0.258869f, 0.22832f, -0.0101069f, -0.234079f, -0.0521867f, -0.077973f, 0.000687808f, -0.184799f, 0.163368f, 0.10862f, -0.0650278f, -0.0211204f, 0.20495f, -0.347462f, -0.0789182f, 0.193061f, 0.0690398f, 0.1971f, 0.24976f, -0.29601f, -0.0444085f, 0.310549f, -0.0623659f, 0.0661573f, -0.0640443f, 0.0372117f, 0.147223f, 0.186619f, 0.0250606f, -0.0681506f, 0.0363049f, -0.113547f, -0.0896605f, -0.00109252f, 0.0622726f, -0.174653f, -0.0722838f, 0.0432632f, 0.00581161f, 0.0569723f, 0.163495f, -0.00855823f, 0.0232071f, -0.0903518f, -0.201458f, -0.229422f, 0.104547f, -0.101743f, -0.169551f, -0.256661f, -0.169489f, 0.264494f, -0.128535f, -0.00683434f, -0.125599f, -0.0628484f, 0.0544777f, 0.178931f, -0.0511462f, 0.15239f, 0.0123327f, -0.193928f, 0.297452f, -0.361186f, -0.265155f, -0.0261654f, 0.202393f, -0.0315106f, 0.0193822f, -0.0952588f, 0.0606169f, 0.238974f, 0.0773794f, 0.384742f, -0.0809812f, -0.0655166f, 0.247151f, -0.00678426f, -0.0657469f, 0.209988f, -0.10326f, -0.00829124f, 0.0933413f, -0.222001f, -0.0512226f, -0.0125414f, -0.0709366f, -0.118219f, -0.0950179f, -0.010397f, -0.118002f, -0.0148557f, 0.00355693f, 0.0310243f, -0.202748f, -0.147921f, 0.0713575f, 0.0988265f, -0.124837f, -0.0322671f, 0.0211529f, 0.0654136f, 0.00912261f, 0.173155f, -0.161183f, 0.0659263f, 0.0292048f, 0.16007f, -0.210729f, 0.0102202f, -0.00911778f, -0.0790447f, 0.00598838f, -0.0427051f, -0.167392f, -0.126998f, 0.0533562f, 0.148554f, 0.123737f, -0.0358513f, -0.128508f, 0.0278133f, 0.172927f, 0.118644f, -0.228327f, 0.0553542f, 0.0230106f, 0.102475f, 0.108758f, -0.209428f, -0.0472042f, -0.193794f, 0.0554233f, 0.0619067f, 0.0813715f, -0.123586f, -0.325999f, 0.310892f, -0.197791f, 0.00016313f, -0.0993477f, -0.0982856f, -0.140464f, 0.018427f, -0.304954f, 0.048746f, 0.220416f, 0.121181f, -0.183277f, -0.116371f, -0.108566f, 0.00037555f, 0.133776f, -0.0311928f, -0.31792f, 0.0651392f, -0.210789f, 0.0952548f, -0.0712986f, -0.051014f, -0.169504f, 0.23008f, -0.164574f, 0.220543f, 0.0658902f, -0.0726899f, 0.132932f, -0.180447f, -0.10218f, 0.0905838f, 0.152266f, 0.0404078f, -0.0665686f, 0.0278876f, -0.0615945f, 0.0753141f, -0.243191f, -0.000623457f, -0.0321889f, -0.195034f, -0.0366797f, 0.0853453f, 0.100148f, 0.104467f, -0.145965f, 0.0702941f, -0.00749419f, 0.0721407f, 0.122675f, 0.227221f, 0.0729365f, 0.375277f, 0.11687f, 0.27008f, -0.132952f, 0.327569f, -0.152797f, -0.0115071f, -0.0399413f, -0.00749708f, -0.0677019f, -0.0749275f, -0.285131f, 0.266926f, 0.0894142f, -0.0654046f, 0.185924f, -0.0688418f, 0.328015f, -0.15265f, 0.0221434f, -0.0870317f, -0.0488541f, 0.0328201f, 0.0559529f, 0.144438f, 0.020106f, 0.0884329f, 0.111428f, 0.0487098f, -0.034624f, -0.0966024f, 0.0321006f, 0.173674f, -0.130477f, -0.281476f, 0.244974f, -0.190636f, 0.0912907f, 0.229843f, 0.1491f, -0.243066f, -0.0601682f, 0.261894f, -0.170715f, 0.0510611f, -0.0300659f, 0.072031f, 0.00381419f, 0.20155f, -0.321729f, 0.00663347f, 0.216052f, 0.268123f, -0.00143847f, 0.0342898f, 0.088133f, -0.0468272f, 0.00233532f, 0.0679299f, -0.110312f, -0.115851f, -0.239644f, -0.0209028f, 0.176426f, -0.0787212f, -0.0651761f, -0.161754f, -0.249362f, -0.164944f, 0.222145f, 0.140633f, 0.225082f, 0.220295f, 0.317356f, -0.0119646f, 0.0792604f, 0.01717f, -0.0166225f, -0.0783952f, 0.225837f, -0.0941866f, -0.13427f, 0.297871f, -0.00703867f, 0.266893f, 0.196179f, 0.194373f, -0.0232983f, -0.115047f, -0.113433f, 0.0795685f, 0.289608f, 0.0948782f, 0.212248f, -0.139332f, -0.0790211f, -0.0619179f, 0.215842f, -0.212197f, 0.0320958f, 0.0539616f, -0.266738f, -0.00866226f, 0.181864f, -0.127228f, 0.0493223f, 0.0661797f, -0.116521f, -0.108356f, -0.049686f, 0.102526f, -0.111001f, -0.030908f, 0.131679f, -0.123036f, -0.0944533f, -0.0568352f, 0.00323012f, -0.0131371f, -0.0173585f, -0.182537f, 0.134134f, 0.0939902f, 0.02778f, 0.166264f, 0.226484f, 0.227308f, -0.13309f, 0.113569f, -0.159221f, -0.0527994f, 0.161943f, -0.00777588f, -0.161016f, -0.0239905f, 0.0187513f, -0.0353457f, -0.0755709f, 0.00100481f, 0.0406576f, -0.372572f, -0.224209f, -0.00506756f, -0.0701591f, -0.0529743f, -0.0626241f, 0.0463252f, -0.230896f, -0.2319f, 0.0774986f, -0.117808f, 0.0387373f, 0.181554f, 0.0362544f, -0.270428f, -0.212321f, -0.0808733f, 0.0920505f, 0.130132f, 0.141748f, 0.161555f, 0.171666f, 0.231419f, -0.00762694f, 0.208311f, 0.041173f, -0.106896f, -0.305976f, -0.0657239f, 0.209292f, 0.105829f, -0.0582318f, 0.0923788f, 0.0764148f, 0.032582f, 0.0918879f, -0.0771831f, 0.089574f, -0.286641f, 0.298634f, -0.079105f, -0.346841f, 0.272665f, 0.144506f, -0.000342685f, 0.00984109f, -0.0202986f, -0.0165261f, 0.022412f, 0.116377f, -0.0995393f, 0.0189819f, -0.0708059f, 0.0101306f, 0.0545561f, 0.0647653f, 0.101881f, 0.0309298f, -0.0114689f, -0.256353f, -0.0253661f, -0.144137f, 0.195209f, 0.262742f, 0.089595f, 0.237269f, 0.151507f, -0.072265f, 0.214271f, 0.124405f, -0.0891007f, 0.379996f, 0.114182f, -0.281825f, 0.0557701f, 0.257499f, 0.0538561f, -0.130288f, -0.0311796f, -0.180315f, 0.0868539f, -0.00357465f, 0.0652337f, 0.0937336f, -0.0921234f, -0.0380478f, 0.0113961f, 0.053897f, 0.00778579f, 0.0579757f, -0.0316105f, 0.0900596f, -0.0495706f, 0.0506856f, -0.0337868f, 0.02978f, 0.1231f, -0.0647612f, -0.0793762f, 0.135548f, -0.0301047f, 0.0127558f, 0.0442381f, 0.00967578f, 0.0636465f, 0.0827803f, -0.00730167f, 0.0171845f, 0.0749362f, 0.110444f, 0.0733742f, -0.0392408f, -0.129793f, 0.0796159f, 0.031606f, -0.0882826f, 0.0419583f, 0.00166461f, -0.09774f, -0.0767511f, -0.0468394f, 0.219852f, 0.161726f, 0.0550813f, 0.025515f, 0.114959f, -0.0125744f, -0.0368795f, 0.0389631f, -0.0327974f, -0.0457306f, 0.000178185f, 0.0251231f, -0.0760922f, -0.00714685f, -0.0634567f, 0.0813185f, 0.0616334f, -0.22801f, 0.0476785f, -0.0154362f, -0.00430656f, -0.0973958f, -0.164847f, 0.0397618f, 0.037751f, -0.0295673f, 0.0756304f, -0.0486308f, -0.00977992f, 0.0120862f, 0.0458831f, -0.031449f, 0.191672f, 0.00393123f, -0.042105f, -0.0198965f, 0.227687f, 0.0474977f, -0.0753248f, 0.0125436f, 0.065903f, -0.0610223f, -0.119354f, -0.0205995f, -0.0767289f, -0.0859657f, 0.00891948f, -0.150555f, 0.0182133f, -0.0471693f, 0.00945846f, -0.0841888f, 0.15164f, -0.0188267f, -0.0697733f, 0.0284376f, -0.0407104f, -0.0626768f, 0.168919f, 0.166368f, 0.0535483f, 0.0388691f, -0.00442723f, 0.0873616f, 0.153678f, 0.133999f, -0.0261883f, -0.0698329f, -0.0091452f, -0.0737081f, -0.0150997f, -0.0495497f, 0.0235018f, 0.0252833f, -0.00634487f, 0.048612f, 0.0217509f, 0.0833151f, 0.163385f, -0.0407445f, 0.00979836f, -0.0239285f, 0.0707809f, 0.0210503f, -0.011322f, -0.113766f, 0.135305f, 0.0798236f, -0.0985485f, -0.118058f, 0.0219454f, -0.0861918f, -0.0637252f, 0.189436f, -0.121348f, 0.229068f, 0.123617f, -0.00163873f, -0.292051f, 0.306573f, -0.255172f, 0.10483f, 0.067647f, -0.125355f, -0.0562185f, -0.0237257f, -0.31492f, -0.118401f, -0.0175156f, 0.0508773f, -0.127546f, -0.0446992f, -0.0972076f, -0.0253171f, 0.0975507f, 0.000426255f, -0.0147889f, 0.0275047f, -0.0423885f, -0.0854466f, -0.0906466f, -0.0401967f, -0.0705671f, 0.0801629f, -0.000932531f, -0.353393f, 0.162667f, 0.056972f, 0.167048f, 0.0657456f, 0.042078f, -0.365307f, 0.0452589f, -0.0129821f, -0.126784f, -0.158963f, 0.112484f, -0.0670371f, -0.143001f, -0.0214964f, -0.108555f, 0.168054f, 0.252329f, 0.00152707f, -0.0954058f, 0.193853f, 0.0373963f, 0.00832569f, 0.173608f, -0.188057f, 0.282427f, 0.142661f, -0.0114288f, 0.070585f, -0.237547f, 0.239421f, -0.0761615f, 0.139739f, -0.148699f, -0.583301f, 0.135271f, -0.0023551f, -0.0640562f, -0.00167161f, 0.263117f, -0.270438f, -0.0430685f, -0.151566f, 0.0454417f, -0.104794f, 0.19906f, -0.00250686f, -0.213282f, -0.258058f, 0.201817f, -0.151331f, 0.0911515f, -0.237772f, 0.00142785f, 0.0729622f, 0.246542f, 0.18451f, -0.303361f, -0.0434569f, -0.169403f, -0.00315525f, -0.307916f, -0.283373f, -0.0525588f, 0.132861f, 0.0685407f, 0.252555f, 0.129936f, 0.214354f, 0.251409f, -0.13749f, -0.124668f, -0.0218872f, 0.230542f, 0.103571f, -0.0407278f, 0.0734443f, 0.0282188f, 0.17875f, -0.0216772f, 0.234679f, 0.0899819f, 0.0544477f, 0.210668f, -0.18296f, -0.0564154f, 0.0563887f, -0.146003f, -0.0891066f, 0.0368902f, -0.0600291f, 0.303182f, -0.126441f, 0.231007f, -0.124093f, 0.129001f, -0.231691f, -0.0428321f, -0.200796f, -0.0878444f, 0.0819611f, 0.198377f, 0.10242f, 0.164173f, -0.0756515f, -0.00412894f, 0.078285f, 0.111822f, -0.113928f, 0.0168513f, 0.0756839f, -0.122314f, -0.0936397f, 0.0749294f, 0.114149f, -0.0729766f, 0.103574f, 0.0928742f, -0.122918f, 0.145506f, 0.161436f, -0.07108f, 0.119579f, -0.156323f, 0.0564128f, -0.0441107f, 0.154635f, -0.149471f, -0.0849957f, -0.177094f, -0.0388702f, 0.141671f, -0.10414f, -0.056237f, -0.193458f, -0.216324f, -0.161683f, 0.0816894f, 0.0797272f, 0.044531f, 0.0625076f, -0.0525973f, -0.0386281f, 0.0868853f, -0.0226079f, -0.251061f, 0.116689f, -0.00120693f, -0.191794f, 0.046815f, -0.112407f, 0.147036f, -0.147791f, 0.0653965f, 0.028667f, -0.00730047f, -0.112055f, -0.213172f, 0.106613f, -0.0531858f, -0.160364f, -0.125902f, -0.101181f, -0.0121972f, 0.00602981f, 0.103852f, 0.295946f, -0.0487318f, -0.00179716f, 0.186227f, -0.203717f, -0.020492f, 0.0951481f, -0.240022f, -0.165412f, 0.180277f, 0.0624806f, -0.01977f, -0.157777f, -0.164283f, 0.0465414f, -0.0320288f, -0.059909f, -0.026666f, 0.209607f, 0.0992763f, 0.0892163f, -0.0837557f, 0.0300387f, -0.0122272f, -0.0496476f, 0.103795f, 0.179375f, -0.0152093f, -0.13864f, 0.0474439f, 0.102758f, -0.15966f, -0.0928849f, -0.0242044f, -0.0207266f, -0.129233f, -0.00420889f, 0.192495f, -0.194687f, 0.00856449f, -0.178623f, 0.177135f, 0.0656961f, -0.153069f, -0.106878f, 0.0720416f, 0.0634753f, -0.0431532f, -0.0296862f, 0.127212f, -0.0597899f, 0.0210431f, 0.0151795f, 0.0890302f, 0.0516888f, 0.0910877f, -0.181684f, -0.0595044f, 0.0965347f, 0.194693f, -0.0396204f, 0.111726f, -0.053309f, -0.237148f, 0.16009f, 0.0809606f, -0.161744f, -0.122011f, -0.280335f, -0.100773f, 0.046909f, 0.260947f, -0.190917f, -0.305854f, 0.0231869f, 0.162133f, 0.155379f, 0.0744395f, -0.0223968f, 0.374342f, -0.336355f, -0.190262f, -0.131343f, -0.104111f, -0.0401232f, 0.0199733f, -0.283463f, 0.0768873f, 0.0239288f, -0.241487f, -0.343913f, 0.310289f, -0.126054f, -0.24904f, -0.298621f, 0.0524104f, -0.0400959f, 0.11648f, 0.0173669f, -0.257079f, 0.0712481f, 0.0337638f, 0.0159792f, -0.0265703f, -0.0766164f, 0.0507021f, 0.0938566f, 0.00621594f, 0.191271f, 0.00984795f, -0.0111265f, 0.118538f, -0.0830903f, 0.124651f, 0.0943853f, 0.0797833f, 0.0893678f, 0.0511935f, -0.199106f, -0.296934f, 0.169403f, 0.141915f, -0.0111682f, -0.0258838f, -0.119564f, -0.145693f, 0.19768f, -0.116085f, -0.116055f, 0.223301f, 0.0922379f, 0.159293f, 0.0022238f, -0.293526f, -0.184758f, 0.144356f, 0.0190053f, -0.229758f, 0.0427982f, -0.112103f, 0.0653405f, 0.113628f, 0.0638511f, -0.0692099f, 0.0878741f, 0.194201f, -0.103877f, -0.121466f, -0.0336848f, -0.455261f, -0.0699328f, 0.104293f, -0.0484139f, -0.0349751f, 0.218303f, 0.0329916f, 0.0574008f, -0.0173415f, -0.309296f, 0.115224f, 0.162632f, 0.188631f, -0.119894f, -1.74397e-05f, 0.0615324f, -0.0255884f, -0.0968594f, -0.242835f, -0.157807f, 0.0226328f, -0.0981425f, -0.0814724f, 0.104468f, -0.09547f, -0.0856053f, 0.105888f, -0.140437f, 0.0841995f, 0.106821f, -0.0656465f, 0.148639f, 0.0397f, 0.0977771f, 0.00988606f, -0.111521f, -0.119945f, -0.0839187f, -0.168723f, 0.0177038f, -0.00059387f, 0.254423f, 0.100081f, 0.0167057f, -0.029464f, 0.247577f, -0.149155f, -0.275757f, 0.09311f, -0.241398f, -0.0900744f, 0.112015f, 0.0819988f, 0.0209783f, -0.0991475f, -0.0263884f, 0.290183f, 0.319425f, 0.274695f, 0.123287f, -0.0627604f, 0.0812636f, -0.109286f, 0.0523708f, -0.243401f, 0.079519f, -0.15568f, -0.091282f, -0.207344f, 0.0151943f, -0.271065f, 0.262206f, 0.178633f, 0.268361f, -0.100121f, 0.0870251f, 0.104601f, 0.0129024f, 0.0903606f, -0.235203f, -0.166293f, 0.140988f, -0.00187278f, -0.0171575f, 0.14252f, 0.0535108f, 0.0138587f, -0.0919781f, 0.347523f, -0.274873f, 0.145655f, -0.0244504f, -0.109215f, 0.029784f, 0.208914f, 0.189438f, -0.0707169f, -0.130452f, 0.305553f, -0.0361333f, 0.0928909f, 0.280194f, -0.291571f, -0.138144f, 0.141973f, -0.161429f, -0.0671782f, -0.0882626f, 0.0937271f, 0.0140079f, -0.124592f, -0.0669519f, 0.120511f, -0.171785f, -0.168458f, -0.103425f, 0.0384858f, -0.180707f, 0.10358f, 0.000942239f, 0.00267612f, -0.0661153f, -0.0127041f, 0.0584304f, 0.127876f, -0.012418f, 0.118071f, 0.106867f, -0.250605f, -0.14319f, -0.116879f, 0.0321056f, -0.122305f, 0.0925208f, -0.222039f, 0.10589f, -0.247198f, -0.0753414f, 0.0546386f, -0.0498237f, -0.130065f, -0.169919f, -0.215656f, 0.0925591f, -0.101307f, 0.174627f, 0.00837601f, 0.150869f, 0.0165425f, 0.0998319f, 0.118999f, -0.11799f, -0.0322857f, 0.242541f, 0.167064f, -0.304387f, -0.0683891f, 0.0885301f, -0.131132f, -0.00723865f, 0.0591369f, -0.0622721f, 0.0743106f, -0.0327625f, -0.0468356f, -0.123388f, -0.199033f, -0.356207f, -0.0415769f, -0.0593727f, -0.124004f, -0.00130249f, 0.00666793f, -0.127022f, 0.0696244f, -0.16102f, -0.12168f, -0.0526204f, 0.0738471f, 0.125876f, 0.0335777f, -0.0343239f, -0.0110391f, 0.0320083f, -0.0646655f, 0.0179492f, 0.0691724f, -0.011633f, -0.0435532f, -0.035062f, 0.0458952f, 0.0926004f, 0.164721f, -0.033497f, -0.0107646f, 0.147379f, 0.134544f, -0.141031f, 0.00777922f, -0.10659f, 0.00378051f, -0.0413837f, -0.0826229f, -0.0211234f, -0.0871929f, 0.0239741f, 0.00613761f, 0.008298f, -0.04639f, -0.0702613f, 0.140925f, 0.072197f, 0.136482f, -0.122191f, -0.0256922f, -0.258095f, 0.0933237f, 0.0963665f, 0.128982f, -0.0658842f, -0.158871f, -0.199649f, 0.114279f, -0.00355723f, 0.131118f, -0.00665752f, -0.252034f, 0.0978304f, 0.0491066f, -0.0273755f, 0.00219052f, 0.472396f, -0.220522f, -0.150306f, 0.0967521f, -0.133544f, 0.0359945f, -0.0648544f, 0.150029f, 0.1743f, -0.0170916f, -0.13064f, 0.173301f, 0.049151f, 0.182837f, -0.074875f, 0.0652346f, -0.0378074f, 0.0263618f, 0.243612f, 0.0332857f, 0.0377393f, -0.2922f, 0.0410701f, 0.0444974f, 0.364445f, -0.118479f, -0.0272035f, -0.0488757f, 0.159762f, -0.0183599f, 0.0457015f, -0.0246701f, 0.141066f, 0.168182f, -0.188009f, 0.0464012f, 0.0190551f, -0.0881326f, -0.0242596f, -0.0367908f, 0.155173f, -0.0567827f, 0.0797552f, 0.0686677f, 0.155004f, -0.168588f, -0.0360589f, 0.0270974f, 0.203281f, -0.160888f, -0.00103164f, -0.202411f, -0.138907f, -0.0581684f, 0.0118375f, 0.0828482f, -0.0914786f, -0.0597037f, 0.0945511f, -0.129859f, -0.113696f, -0.138097f, -0.046237f, -0.141626f, 0.127757f, 0.29937f, 0.159145f, -0.0515918f, 0.246434f, -0.231569f, -0.111811f, 0.109862f, -0.151997f, -0.210394f, 0.0862478f, -0.126456f, -0.089965f, -0.0940526f, 0.216671f, -0.0271943f, 0.165819f, 0.307447f, -0.173063f, -0.0188585f, -0.221892f, -0.233766f, 0.160271f, 0.224223f, -0.049169f, -0.0617062f, -0.084144f, -0.00727686f, 0.121679f, 0.217395f, -0.105969f, -0.222411f, 0.106347f, -0.241294f, -0.19177f, 0.00844738f, -0.186025f, -0.00484347f, -0.159961f, 0.00423594f, 0.243679f, -0.145271f, 0.0184966f, 0.107202f, 0.0703825f, 0.0416473f, -0.107714f, -0.0390014f, 0.0424205f, 0.149238f, 0.0655061f, -0.135761f, -0.169021f, -0.00635405f, -0.370657f, -0.0993255f, -0.0295167f, -0.0821577f, 0.0977719f, -0.040581f, 0.117417f, 0.245719f, -0.0695576f, -0.0283578f, -0.0884073f, 0.0535359f, -0.047795f, 0.243296f, -0.169448f, -0.0156711f, 0.0839281f, -0.13336f, -0.234287f, 0.0372719f, 0.130648f, -0.279402f, 0.167598f, -0.125074f, 0.0241452f, -0.196587f, -0.214561f, -0.249289f, -0.154539f, 0.11612f, -0.0240178f, -0.0834299f, 0.0279316f, 0.00435384f, 0.116893f, -0.0979919f, -0.0740533f, -0.131638f, -0.107614f, -0.0219204f, -0.0410621f, 0.0819922f, -0.0309849f, 0.0494029f, 0.315426f, -0.298561f, -0.00431805f, -0.0861445f, -0.305357f, 0.0824441f, 0.110563f, 0.166516f, -0.164903f, -0.118514f, 0.0329077f, -0.0845006f, -0.157653f, 0.0510506f, 0.0999206f, 0.0151257f, 0.150043f, -0.268294f, -0.221034f, 0.127858f, 0.254995f, -0.0723508f, 0.0868825f, -0.296782f, 0.0542521f, 0.106135f, 0.323424f, -0.16021f, -0.105097f, -0.318312f, -0.216986f, 0.0456242f, -0.181374f, 0.334068f, 0.0656587f, -0.102536f, 0.0635819f, 0.283696f, -0.0637558f, -0.19826f, 0.116646f, 0.027479f, 0.0754537f, 0.235752f, 0.0870649f, 0.10359f, 0.12535f, -0.20205f, 0.111395f, -0.106164f, -0.182878f, 0.0538341f, 0.203679f, 0.00890761f, 0.200996f, -0.240734f, -0.0822328f, 0.0780081f, 0.052349f, -0.24987f, -0.00143649f, 0.140333f, 0.0868106f, 0.078149f, -0.368384f, 0.00740801f, 0.0058583f, 0.0833352f, -0.0360495f, -0.0213137f, -0.109867f, 0.163536f, 0.093701f, 0.143425f, 0.0195045f, 0.0178842f, 0.199466f, 0.145548f, -0.124146f, 0.0195505f, 0.0411893f, -0.309583f, -0.200053f, -0.0965409f, -0.0575278f, 0.194572f, -0.0573679f, 0.0978616f, -0.212145f, 0.0831672f, -0.00206491f, -0.0264475f, -0.105489f, -0.0077057f, 0.348894f, 0.0545611f, 0.0732262f, -0.204708f, -0.0905595f, 0.0120652f, 0.0346568f, 0.162337f, 0.115789f, 0.203486f, -0.137349f, 0.0348266f, 0.0496968f, 0.0198415f, -0.0635764f, 0.159992f, 0.0622597f, 0.246954f, 0.0188406f, -0.208336f, 0.0471019f, -0.0446253f, 0.084138f, -0.21304f, -0.249508f, -0.0390432f, 0.126729f, -0.268565f, 0.169821f, -0.0714964f, 0.127532f, 0.0273023f, -0.134341f, 0.0478405f, -0.107148f, 0.190038f, 0.214277f, -0.169188f, -0.174806f, -0.174306f, 0.232408f, -0.0362035f, 0.156972f, 0.096376f, 0.220207f, -0.00122258f, -0.0468639f, 0.112597f, -0.154085f, 0.135934f, 0.00903044f, -0.100345f, -0.0804146f, -0.0447363f, -0.0783709f, -0.0680733f, 0.0197258f, 0.159687f, -0.267696f, 0.15292f, 0.0597896f, 0.108691f, 0.175996f, 0.170328f, -0.275238f, -0.179934f, -0.186317f, 0.0283878f, -0.0457579f, 0.0581206f, 0.0135034f, 0.0214201f, -0.112387f, 0.13103f, 0.0700685f, -0.18212f, 0.275041f, -0.0595028f, 0.267471f, -0.00752261f, 0.118461f, 0.0264884f, -0.168577f, -0.238494f, -0.112717f, 0.0172465f, -0.124319f, 0.022813f, 0.0215464f, -0.14171f, -0.0946912f, 0.238498f, -0.226112f, -0.0379468f, -0.0430851f, 0.18534f, -0.228045f, -0.0164498f, -0.0476725f, 0.125916f, 0.0331983f, 0.0819492f, 0.171158f, -0.077145f, -0.189572f, 0.168169f, 0.0611308f, 0.249072f, 0.0611846f, 0.157515f, -0.0995594f, -0.137155f, 0.00526033f, -0.201671f, -0.13724f, -0.0479567f, 0.070871f, -0.11012f, -0.0381429f, -0.062384f, -0.0269213f, 0.0494987f, 0.0279797f, -0.0633486f, 0.208622f, -0.0565884f, 0.231978f, 0.226195f, -0.116228f, 0.191083f, 0.0821923f, -0.182005f, -0.176476f, -0.189119f, -0.0579477f, -0.149886f, -0.0882161f, -0.0712805f, -0.0128696f, -0.0895115f, 0.0459812f, 0.00789137f, -0.0518027f, -0.172272f, -0.256091f, 0.0843415f, 0.305929f, 0.0838934f, -0.0828053f, 0.213895f, -0.142245f, 0.130779f, -0.057068f, -0.0780142f, -0.00724139f, -0.0604871f, -0.0715358f, -0.210909f, 0.0659598f, -0.0714268f, 0.0503623f, 0.145972f, 0.0174997f, -0.0730491f, -0.011615f, 0.126747f, 0.16404f, -0.247057f, -0.00288754f, 0.0833242f, -0.0101739f, -0.0248564f, 0.0242787f, 0.0120509f, 0.159715f, 0.00135316f, 0.245232f, 0.0691774f, 0.0305514f, 0.0171392f, 0.141383f, -0.0600871f, -0.0512555f, -0.0391762f, -0.00722576f, -0.00794689f, -0.187432f, -0.024224f, -0.122023f, 0.0639902f, 0.282693f, 0.036779f, -0.0325971f, 0.163765f, -0.236273f, 0.102831f, 0.314087f, -0.108419f, 0.101163f, 0.0424266f, 0.207925f, -0.194653f, 0.11017f, -0.232429f, -0.0596811f, 0.117061f, -0.0749234f, -0.208881f, -0.00901258f, -0.0397171f, -0.146423f, -0.16659f, 0.0671875f, 0.0730297f, -0.057509f, -0.248163f, -0.230915f, 0.0268759f, -0.0363676f, 0.257228f, 0.139313f, 0.224451f, 0.28916f, -0.036099f, 0.132265f, -0.0647307f, 0.0776704f, -0.185898f, -0.168859f, 0.0392261f, 0.112581f, 0.0069709f, 0.129309f, 0.238086f, 0.0469749f, -0.0317249f, 0.183879f, -0.280258f, 0.18125f, -0.236265f, -0.10851f, 0.000529881f, 0.0530913f, 0.0494021f, -0.0412986f, 0.179194f, -0.144276f, -0.0428301f, 0.169561f, -0.16341f, 0.206727f, 0.106561f, 0.108304f, 0.0379085f, -0.0308822f, 0.0257701f, -0.0489446f, -0.0821194f, -0.00781605f, -0.114176f, 0.0208283f, 0.264914f, -0.0796388f, -0.169716f, 0.241848f, 0.19062f, -0.126192f, 0.210841f, -0.0616806f, -0.18964f, -0.0565526f, -0.0442822f, 0.0558652f, 0.172011f, 0.137585f, 0.164216f, 0.161883f, 0.0278959f, 0.178884f, 0.197266f, 0.0910285f, 0.189506f, -0.0364352f, 0.100104f, -0.0516824f, -0.0382902f, 0.10104f, 0.0299399f, -0.0682429f, -0.137941f, -0.0595875f, 0.0698648f, -0.101404f, 0.0328612f, -0.0332247f, -0.0738313f, 0.126984f, 0.164388f, -0.0941099f, -0.0282087f, 0.0549933f, -0.0984592f, 0.202322f, 0.181239f, -0.101544f, 0.1471f, -0.216929f, -0.0314756f, -0.315957f, 0.278482f, 0.217569f, 0.193371f, 0.0749215f, -0.0318671f, 0.21589f, -0.0657692f, 0.208411f, -0.174171f, 0.209975f, -0.109976f, 0.265594f, -0.151343f, 0.22966f, 0.0449711f, -0.180079f, 0.00261465f, 0.182858f, 0.105657f, -0.0566456f, 0.180094f, 0.0232766f, -0.155847f, 0.0969025f, 0.0950858f, -0.163642f, -0.0735185f, -0.172677f, -0.0153708f, 0.0680914f, -0.234342f, 0.228194f, 0.0085419f, -0.115728f, 0.0590461f, 0.193236f, 0.0844164f, -0.284493f, 0.0742405f, -0.0934176f, 0.0648097f, 0.065143f, -0.0548338f, 0.0185309f, 0.0899398f, -0.0928409f, -0.10248f, 0.0884996f, -0.210288f, -0.204062f, -0.0280448f, 0.0249973f, -0.156141f, 0.0514742f, 0.0156461f, -0.0587984f, 0.0226347f, -0.0716949f, 0.0105992f, 0.0140473f, -0.0878937f, 0.018713f, 0.15043f, 0.0754115f, -0.124654f, -0.24476f, -0.00400715f, -0.00268456f, -0.0136566f, -0.00699934f, 0.251423f, 0.142448f, 0.165009f, 0.178087f, 0.172477f, -0.16044f, -0.0738946f, -0.184427f, -0.036275f, 0.0335391f, -0.14188f, -0.0349802f, -0.0517739f, 0.125866f, 0.147199f, 0.133404f, 0.16169f, 0.0696982f, -0.0605443f, -0.0625233f, 0.134842f, 0.182402f, 0.0765188f, 0.0759809f, 0.0522509f, -0.0925495f, -0.019114f, 0.104895f, -0.0353678f, -0.180768f, 0.115632f, 0.0659401f, -0.020193f, -0.05965f, 0.0414703f, -0.297039f, -0.00898606f, -0.00246733f, -0.0774312f, 0.206651f, 0.157584f, -0.0037835f, -0.189993f, -0.134198f, 0.186544f, -0.0193197f, -0.117998f, 0.0670705f, 0.184962f, 0.177679f, -0.0496318f, 0.0590264f, -0.131092f, 0.171071f, 0.123635f, -0.278133f, -0.0278084f, 0.160266f, -0.187925f, -0.0539474f, -0.0715016f, -0.0407893f, 0.154585f, 0.227666f, 0.0770247f, -0.137195f, -0.0932645f, 0.0372575f, -0.0351562f, -0.108804f, -0.0155321f, -0.065844f, -0.00984558f, 0.0608527f, -0.0328019f, -0.132667f, 0.0827959f, 0.0583871f, -0.126612f, -0.00608731f, -0.0126191f, 0.0483057f, 0.0705695f, 0.17522f, -0.00674042f, 0.133795f, -0.0724371f, -0.0925285f, -0.144264f, -0.138138f, -0.0528944f, 0.0315749f, -0.127834f, -0.0358538f, 0.0507173f, 0.143971f, 0.0472687f, 0.202144f, 0.0741375f, -0.0569619f, 0.0915231f, -0.0606112f, 0.138151f, 0.0334615f, -0.0784715f, 0.0240942f, 0.189136f, 0.0530063f, 0.122347f, -0.00740306f, 0.0156275f, 0.146152f, 0.16383f, 0.0470813f, 0.0101709f, -0.182424f, 0.0722406f, -0.0811929f, -0.0212303f, -0.0928145f, 0.0429606f, -0.0637225f, 0.0778684f, -0.121977f, -0.109409f, 0.145139f, 0.0487395f, -0.0449758f, -0.188938f, 0.0579998f, 0.165736f, 0.0683278f, -0.019576f, -0.00227246f, 0.027819f, 0.0102718f, -0.126003f, 0.00724159f, -0.0659478f, -0.0629102f, -0.0789803f, 0.0170517f, 0.0423423f, 0.0616255f, -0.116515f, 0.195543f, -0.0254929f, 0.0482091f, 0.0775089f, 0.0678038f, -0.148672f, -0.202611f, 0.189481f, -0.0179217f, -0.0959399f, 0.108775f, -0.0774287f, -0.189912f, -0.0585987f, -0.187543f, 0.0695302f, -0.00328048f, -0.0490412f, -0.128955f, -0.0514411f, -0.103105f, -0.0323457f, 0.0349192f, -0.0317742f, -0.094223f, -0.059393f, 0.0406599f, 0.0130976f, -0.149955f, 0.0141294f, 0.0558038f, 0.111164f, -0.132845f, -0.0464315f, 0.122998f, -0.0894625f, 0.0677404f, 0.0501959f, -0.033682f, 0.034947f, -0.0629011f, -0.0661554f, -0.0560678f, -0.0730528f, 0.0238989f, -0.166574f, 0.0479916f, 0.0204032f, -0.222427f, 0.0162946f, -0.0278775f, -0.166227f, -0.251205f, -0.084196f, -0.0158063f, 0.100659f, -0.107953f, 0.159616f, -0.0751793f, 0.0170844f, -0.156458f, 0.159416f, -0.15592f, -0.250958f, 0.0382314f, -0.326688f, 0.117836f, -0.0381727f, -0.00561505f, -0.157734f, 0.188578f, -0.188418f, 0.0476952f, -0.00204958f, 0.214996f, -0.0454888f, -0.270638f, 0.0577839f, 0.246498f, 0.258985f, 0.0239033f, 0.181621f, -0.0265058f, 0.0869352f, -0.0994145f, 0.0700555f, -0.0108303f, -0.0243507f, -0.0609361f, 0.0775373f, -0.0520951f, -0.0263486f, 0.00417842f, -0.0557531f, 0.0231625f, 0.154909f, -0.093886f, -0.168539f, -0.0513853f, -0.125412f, -0.220344f, -0.036981f, -0.0111606f, -0.253766f, -0.0955681f, -0.198639f, -0.197823f, 0.0457128f, -0.107891f, -0.251958f, -0.187402f, 0.0122224f, -0.135772f, -0.0943493f, -0.038883f, 0.223725f, -0.139497f, 0.0240389f, -0.0637739f, -0.296512f, -0.139185f, 0.139943f, 0.210764f, 0.00277034f, -0.188671f, 0.0237114f, -0.0151852f, -0.0577861f, 0.148123f, 0.206595f, -0.0712632f, -0.024512f, 0.0121468f, 0.0400246f, 0.0963135f, -0.137117f, 0.0993211f, 0.117172f, -0.0695198f, 0.174308f, 0.10823f, -0.270491f, -0.0119072f, 0.20913f, -0.099443f, -0.130069f, -0.0614466f, 0.116353f, 0.00905316f, 0.159897f, -0.0352248f, -0.0458556f, 0.0699094f, 0.0794173f, -0.00211074f, 0.098767f, 0.172946f, 0.0916127f, -0.133166f, -0.086757f, -0.182904f, -0.0356223f, -0.0575079f, 0.0865772f, -0.186537f, -0.234971f, 0.181611f, -0.144605f, -0.0752913f, 0.14462f, -0.0708205f, 0.153154f, 0.0962642f, 0.0146392f, 0.232418f, 0.00674096f, 0.0124738f, 0.0874514f, -0.105191f, 0.0877007f, 0.090186f, -0.0228389f, 0.0893284f, -0.0192478f, -0.188247f, -0.150718f, 0.191138f, 0.0599858f, 0.0738914f, 0.0923676f, 0.0697585f, 0.2382f, 0.0406125f, 0.183031f, 0.0545029f, 0.0888361f, -0.100521f, -0.0776918f, -0.133424f, 0.260035f, 0.0652176f, -0.0603261f, -0.0383565f, -0.110614f, 0.0289308f, -0.0405152f, 0.026968f, -0.0889762f, -0.188374f, 0.0772489f, 0.084968f, 0.0297528f, -0.135388f, 0.0545145f, 0.113158f, -0.0706217f, -0.0754435f, -0.110839f, 0.230502f, 0.0769311f, 0.392007f, 0.0502489f, 0.134719f, 0.169563f, -0.0689985f, 0.0839956f, -0.222553f, 0.00768246f, 0.0719907f, -0.106915f, -0.0447993f, 0.154323f, 0.056092f, 0.127334f, 0.0595471f, 0.013028f, 0.010201f, 0.175241f, -0.182433f, 0.0640659f, -0.148723f, 0.0865285f, -0.25101f, 0.12139f, 0.142965f, -0.0247835f, 0.206716f, 0.176752f, 0.181694f, 0.0373879f, -0.252943f, 0.271535f, -0.0558249f, -0.249723f, 0.0795919f, 0.0527423f, 0.0625892f, 0.0257658f, 0.133771f, 0.0361064f, -0.0400186f, -0.235845f, -0.0117873f, -0.0438386f, 0.0314972f, -0.0779512f, 0.00486699f, -0.0656794f, 0.153719f, -0.0385763f, -0.00973569f, -0.0799086f, -0.0461102f, 0.0929068f, -0.0187358f, -0.0893008f, 0.00123944f, -0.172433f, 0.0107446f, 0.117221f, 0.0528665f, 0.0431684f, -0.0538728f, -0.0897477f, -0.0715512f, -0.175724f, -0.0461938f, -0.0426967f, -0.0191649f, -0.00543236f, -0.0281429f, -0.105286f, 0.0283441f, 0.124576f, -0.191004f, 0.222624f, -0.0676353f, 0.0106884f, -0.184332f, -0.133084f, -0.0534563f, -0.0972942f, -0.105803f, 0.0479272f, -0.103292f, 0.0802936f, 0.101539f, -0.157126f, 0.19205f, 0.468254f, 0.0298978f, 0.0982881f, 0.139504f, 0.0735296f, -0.0858429f, 0.290408f, -0.260871f, -0.155021f, -0.142401f, -0.0359703f, -0.106188f, 0.315177f, 0.183801f, 0.114615f, -0.207285f, 0.153344f, -0.404989f, -0.216114f, -0.194625f, -0.153652f, -0.0996941f, 0.295473f, 0.215401f, 0.00667314f, -0.235421f, -0.343254f, -0.000878925f, -0.0236932f, -0.171254f, 0.263077f, -0.280435f, -0.264208f, -0.121191f, 0.0220783f, 0.195373f, -0.163426f, 0.2227f, -0.162773f, 0.0512849f, -0.15455f, 0.157398f, 0.16593f, 0.343182f, 0.307128f, 0.079969f, -0.0673473f, 0.0581205f, 0.248391f, 0.189149f, 0.213688f, 0.469868f, -0.194921f, -0.269004f, -0.0503314f, 0.200294f, 0.101838f, -0.153011f, -0.106996f, -0.0579909f, 0.293624f, -0.337622f, -0.140302f, -0.185794f, -0.136581f, 0.354881f, 0.139319f, -0.305201f, -0.0187377f, -0.0737278f, 0.232633f, 0.0289698f, 0.0118687f, -0.1275f, 0.106497f, 0.108413f, -0.0254957f, 0.0382722f, -0.00903419f, -0.0782455f, 0.132428f, -0.232581f, -0.0871426f, -0.133472f, 0.170983f, -0.0622324f, 0.106811f, 0.103177f, -0.171907f, -0.0496521f, 0.152522f, 0.393252f, -0.089566f, -0.148697f, -0.185491f, -0.206786f, -0.243392f, 0.183353f, 0.094504f, 0.229217f, -0.16715f, 0.0313949f, 0.115339f, 0.288365f, -0.13937f, -0.156901f, 0.218017f, -0.309033f, -0.010764f, -0.0882509f, 0.165236f, -0.222589f, -0.0736851f, 0.290039f, -0.0221954f, -0.275849f, 0.00844513f, 0.0882291f, -0.149162f, 0.136207f, 0.215949f, -0.259335f, 0.0566367f, 0.246797f, -0.0840412f, 0.0527414f, 0.130487f, -0.0676339f, 0.0130835f, -0.0297142f, -0.326576f, -0.117853f, -0.0701228f, 7.59507e-05f, 0.175845f, 0.0344298f, 0.166091f, 0.0846592f, -0.175324f, 0.234743f, -0.0669539f, -0.1795f, 0.150406f, -0.149306f, 0.0676304f, -0.0310828f, 0.140306f, -0.0793011f, 0.300281f, -0.189868f, 0.247615f, -0.0773332f, 0.234369f, 0.0736392f, -0.075697f, -0.0687581f, -0.00719974f, 0.164968f, -0.0912931f, -0.25648f, 0.228938f, -0.13354f, 0.0998896f, 0.100791f, -0.175449f, 0.0413121f, -0.182275f, 0.0284299f, 0.156832f, 0.0713168f, 0.0496481f, 0.0725903f, -0.590139f, 0.214514f, 0.17978f, -0.136321f, 0.0806386f, 0.161023f, -0.121205f, 0.265306f, 0.334802f, -0.192856f, 0.172935f, -0.047232f, -0.0905596f, -0.0630929f, 0.0816248f, -0.0296232f, -0.0158665f, 0.260447f, -0.0589306f, 0.165821f, 0.223044f, -0.0694911f, 0.0998683f, -0.123035f, -0.0626098f, -0.10028f, 0.0555001f, 0.0558088f, 0.0848278f, -0.279673f, -0.00583925f, -0.0153821f, 0.170593f, 0.118678f, 0.0356547f, -0.0449065f, -0.180906f, -0.0146003f, 0.249189f, 0.0246496f, 0.195578f, 0.0370453f, 0.0746847f, 0.0470599f, 0.0664992f, 0.0550566f, -0.0979585f, 0.0738886f, -0.0681109f, 0.0619217f, 0.281762f, 0.0832706f, 0.105524f, 0.0605359f, 0.0863725f, -0.0223235f, -0.369215f, 0.227459f, -0.095959f, -0.205566f, -0.122475f, -0.196953f, -0.0454544f, 0.00820645f, -0.341119f, -0.0374948f, 0.0342386f, 0.163406f, -0.286179f, -0.0977511f, -0.118103f, 0.0636462f, 0.0980706f, -0.023167f, 0.0534126f, 0.0530111f, -0.13656f, -0.00747303f, 0.127695f, 0.00936672f, -0.14385f, 0.0849542f, -0.119532f, 0.0852781f, 0.0190806f, 0.0666482f, -0.151161f, -0.19836f, -0.107731f, 0.21761f, -0.0426854f, -0.055502f, 0.0545702f, -0.130605f, 0.0113874f, -0.222f, 0.00518622f, -0.331948f, 0.120636f, 0.0190411f, -0.0125864f, 0.049432f, -0.0208484f, -0.0154154f, 0.0126288f, -0.0365599f, -0.127481f, 0.219615f, 0.0419512f, -0.060932f, 0.0428075f, 0.333323f, 0.0992766f, 0.24285f, 0.0183174f, 0.218272f, 0.0698188f, 0.081681f, 0.125866f, 0.128769f, -0.0776784f, 0.23472f, -0.0984479f, 0.139291f, -0.168553f, 0.0542606f, 0.278983f, -0.102575f, -0.300581f, -0.00672288f, 0.0954174f, -0.0437658f, -0.0308213f, 0.0336308f, -0.0835574f, 0.232566f, -0.000679531f, 0.0900641f, -0.0866161f, 0.0314834f, 0.0095307f, 0.000699351f, -0.223195f, -0.0530663f, 0.0165194f, 0.0462233f, 0.119683f, 0.0364003f, -0.113609f, 0.0298996f, -0.0433187f, -0.0544546f, -0.280343f, 0.108796f, -0.0199334f, 0.136091f, -0.0593785f, -0.0573158f, 0.11226f, -0.186913f, -0.112754f, 0.161791f, -0.104774f, 0.00670307f, -0.101036f, 0.0248512f, 0.183785f, -0.147454f, 0.0903132f, -0.0869077f, -0.0866044f, -0.061755f, 0.0324578f, -0.0209719f, 0.0357577f, 0.10498f, 0.134687f, 0.0823563f, 0.117734f, 0.149808f, 0.0191611f, -0.0690599f, 0.0139613f, -0.0635142f, -0.117238f, 0.0597338f, 0.0118846f, 0.0257925f, -0.0666814f, -0.0695715f, -0.048449f, 0.155378f, -0.126277f, -0.056113f, -0.153912f, -0.0939528f, 0.147231f, 0.0697757f, -0.0923862f, 0.0556496f, 0.0688179f, 0.0076046f, 0.00770875f, 0.0496676f, 0.0788294f, -0.117108f, 0.0509705f, 0.0544858f, -0.0389482f, -0.0765787f, -0.0197383f, 0.0649952f, 0.0960427f, 0.0369906f, 0.136151f, 0.0376488f, -0.090143f, -0.104943f, 0.042544f, -0.0461333f, -0.245445f, -0.222696f, -0.115119f, -0.0354741f, 0.0361005f, 0.216183f, -0.0332617f, -0.00983233f, -0.142166f, 0.0546818f, 0.0829469f, 0.208672f, 0.127656f, -0.103145f, 0.145353f, 0.0174508f, -0.0114557f, -0.0485049f, 0.0171557f, -0.134683f, 0.0916694f, -0.116575f, -0.0465254f, -0.095139f, 0.0545412f, -0.22534f, 0.152254f, 0.0671352f, -0.0265802f, -0.0413508f, -0.0841937f, 0.0550065f, -0.165659f, -0.169978f, -0.176237f, -0.11582f, 0.121944f, -0.133109f, 0.201453f, -0.0864366f, 0.111536f, 0.0671362f, -0.107194f, -0.0919575f, -0.27501f, -0.0340042f, 0.0362335f, 0.0974612f, 0.0546608f, -0.0993745f, -0.0323956f, 0.105191f, 0.0549011f, 0.0434516f, -0.0665266f, 0.0198253f, 0.150409f, 0.0222797f, 0.0157454f, 0.117952f, -0.161147f, -0.00737769f, -0.274317f, -0.175693f, 0.105935f, -0.0874523f, -0.0786282f, 0.173079f, 0.0359941f, 0.03155f, 0.0039741f, -0.0919748f, -0.1671f, 0.0227817f, -0.0215036f, 0.0412732f, -0.0743046f, -0.0621845f, -0.112628f, 0.165779f, 0.0329306f, -0.173871f, -0.219767f, 0.0646101f, -0.0857359f, -0.0880744f, 0.199277f, 0.0713829f, 0.0661905f, -0.144758f, 0.195444f, 0.0643051f, 0.158626f, 0.0449675f, -0.135002f, 0.0901756f, -0.272407f, -0.157871f, -0.254655f, 0.274217f, -0.0926239f, 0.228616f, -0.259785f, 0.171745f, 0.0468291f, 0.0798365f, 0.141886f, 0.116342f, 0.131987f, 0.171131f, -0.12378f, -0.0312866f, -0.0638159f, 0.195003f, 0.112349f, 0.0738137f, -0.0134513f, 0.0953682f, 0.120895f, -0.064833f, 0.162424f, -0.262443f, -0.0857807f, -0.129346f, -0.0312883f, 0.176015f, 0.054771f, -0.182056f, 0.0630562f, -0.109453f, -0.0566785f, -0.188293f, -0.110835f, 0.0622628f, -0.164435f, 0.0623476f, 0.129925f, 0.0403671f, 0.0738435f, -0.187615f, -0.130204f, 0.0924943f, -0.0594306f, -0.0243125f, -0.0632275f, 0.0168679f, -0.0534335f, -0.157284f, 0.077069f, -0.230283f, -0.145421f, 0.0533199f, -0.00352258f, 0.0804313f, -0.149688f, 0.261543f, 0.0765588f, 0.178543f, 0.034254f, -0.1269f, -0.0565328f, 0.0489139f, 0.0725526f, -0.217028f, 0.12342f, 0.0285371f, -0.063824f, -0.0827433f, 0.235465f, -0.090744f, 0.00736688f, -0.100025f, 0.00201627f, 0.0975893f, -0.0201039f, -0.150352f, 0.0640476f, -0.0755034f, 0.0321987f, -0.0960762f, 0.0726677f, -0.0445054f, -0.0604223f, -0.0545353f, -0.0411367f, 0.0120196f, -0.0844184f, -0.0314177f, 0.200902f, 0.0545961f, -0.0510529f, 0.100663f, 0.0212449f, -0.0400555f, 0.161804f, -0.0414394f, -0.125877f, -0.0229409f, -0.0646063f, 0.0571253f, -0.10057f, -0.0624731f, 0.258886f, 0.048297f, 0.101549f, 0.0017102f, 0.175759f, 0.0684902f, -0.0908869f, 0.00631895f, 0.138781f, -0.0062685f, -0.104282f, 0.109548f, 0.0487258f, -0.145813f, -0.0459554f, -0.0796232f, -0.140882f, -0.0940843f, 0.0301464f, 0.247223f, -0.164875f, 0.0921661f, 0.00519353f, -0.0386622f, -0.0938558f, -0.0353911f, 0.156008f, 0.0371328f, 0.0620785f, -0.0462264f, -0.101268f, -0.0817199f, 0.0317804f, 0.0643313f, -0.126258f, 0.048166f, 0.158899f, 0.213572f, -0.134702f, 0.0707135f, -0.0526736f, -0.055991f, -0.123901f, -0.234469f, -0.00623573f, 0.352524f, -0.0383601f, 0.130216f, -0.0214173f, -0.188843f, 0.378852f, 0.160567f, -0.156232f, 0.254933f, -0.0761444f, 0.0460696f, -0.108082f, -0.0291755f, -0.0482767f, 0.207458f, -0.109023f, 0.180354f, 0.456856f, 0.0349445f, 0.0744747f, -0.333123f, 0.203531f, -0.0950502f, -0.204204f, 0.293857f, -0.299887f, 0.114763f, -0.0482511f, -0.151224f, -0.275432f, -0.0155957f, -0.0534824f, -0.296975f, -0.16906f, 0.082102f, -0.0748806f, 0.00579097f, -0.187561f, -0.182386f, 0.175024f, -0.230574f, -0.0410672f, 0.131154f, 0.237527f, -0.0220811f, -0.164524f, 0.145977f, -0.0733642f, -0.1349f, 0.183987f, 0.0400917f, -0.165895f, 0.259722f, 0.000952909f, -0.362503f, -0.0136119f, -0.26091f, 0.179061f, -0.152996f, -0.16569f, -0.007322f, -0.0122648f, -0.112548f, -0.13347f, 0.226509f, 0.264757f, 0.220075f, -0.258747f, -0.249999f, 0.0107195f, -0.165942f, -0.110485f, -0.427972f, 0.0968945f, 0.0107627f, 0.188345f, 0.106308f, 0.145089f, -0.323011f, 0.151161f, 0.0778768f, -0.125583f, 0.0475566f, -0.0964148f, -0.203324f, -0.126476f, 0.148013f, -0.188676f, 0.157802f, 0.0687165f, 0.034006f, 0.161141f, 0.0336686f, -0.0224455f, 0.188815f, 0.0717931f, 0.328696f, 0.0399789f, 0.151016f, -0.182762f, 0.053889f, -0.0225539f, 0.0935138f, 0.29761f, -0.0923405f, -0.291786f, -0.206529f, -0.303795f, 0.0196324f, -0.0959703f, -0.062088f, 0.27551f, -0.123218f, 0.0989359f, -0.168073f, 0.151535f, 0.155467f, -0.0182391f, 0.204258f, 0.225018f, 0.116328f, 0.221215f, 0.219451f, 0.0804173f, -0.222985f, -0.24201f, 0.140778f, -0.0944275f, 0.0663248f, -0.207227f, 0.137553f, 0.0243269f, -0.0953535f, 0.062832f, 0.07804f, -0.0276622f, 0.0199451f, 0.0476254f, 0.109629f, 0.113069f, -0.0458854f, 0.0123628f, -0.192601f, 0.00469113f, 0.0679559f, -0.0725426f, 0.119198f, 0.256814f, 0.114446f, 0.0280008f, 0.291931f, 0.163208f, 0.19967f, 0.196255f, -0.174796f, 0.031165f, -0.124417f, 0.195755f, -0.213471f, 0.137239f, 0.00246658f, 0.0885002f, -0.0761411f, 0.0957554f, -0.0228635f, 0.156547f, 0.126306f, 0.289454f, 0.0940089f, 0.0978981f, -0.00675978f, -0.0707554f, 0.0710112f, -0.055191f, -0.0215721f, -0.096463f, 0.100061f, 0.152802f, 0.139707f, -0.0947356f, 0.0331075f, -0.00323311f, -0.300446f, -0.104901f, 0.0267985f, 0.207103f, 0.169719f, -0.0805345f, -0.0535534f, 0.0828141f, -0.0959566f, -0.228682f, 0.313131f, -0.0962616f, 0.0850941f, -0.0550512f, -0.173242f, 0.136749f, -0.0178546f, 0.189662f, -0.253509f, 0.0773578f, -0.0477901f, 0.0850425f, -0.0565981f, 0.00514148f, 0.195455f, -0.271255f, 0.202365f, 0.0226288f, 0.0099753f, -0.187248f, 0.00627642f, -0.0452278f, 0.0777369f, 0.0453583f, 0.174449f, 0.0165806f, 0.126235f, -0.065832f, -0.0496913f, 0.169145f, 0.0677543f, 0.00116413f, -0.0149713f, 0.131154f, 0.0898604f, -0.0690575f, -0.146058f, -0.163314f, 0.0544038f, -0.135594f, 0.0687082f, 0.109662f, 0.0271474f, -0.00585289f, -0.0272399f, 0.12998f, -0.0756057f, 0.227421f, 0.037474f, -0.012417f, 0.0702255f, -0.114999f, -0.314141f, 0.10594f, 0.155657f, 0.00101481f, -0.012313f, -0.0428204f, 0.102139f, 0.113166f, 0.298856f, 0.0246677f, 0.0019138f, 0.209465f, 0.0569758f, 0.10388f, 0.0392999f, -0.168278f, 0.0682039f, 0.198345f, 0.0362599f, -0.0760321f, 0.0152362f, 0.145203f, 0.0538178f, 0.0656327f, -0.0138736f, 0.0057837f, 0.12506f, 0.0866073f, 0.144696f, -0.294858f, -0.2393f, -0.0839412f, -0.0454678f, -0.114262f, -0.00401527f, 0.144919f, -0.0356751f, 0.107667f, 0.0150268f, -0.0733084f, -0.336732f, -0.172769f, -0.142123f, -0.137356f, 0.243126f, -0.118264f, 0.0653854f, 0.105497f, -0.17896f, 0.109619f, -0.154201f, 0.12146f, -0.0170946f, 0.0243611f, 0.0477995f, 0.00537498f, 0.281835f, 0.371709f, -0.0634893f, -0.184164f, -0.167746f, -0.237802f, 0.0295748f, 0.0542435f, 0.0535336f, -0.00744511f, -0.0299532f, 0.155717f, -0.0599157f, 0.0565378f, 0.111299f, 0.143711f, 0.146117f, 0.107542f, -0.190868f, 0.0255875f, -0.170614f, -0.167813f, 0.197236f, 0.157431f, -0.0612073f, 0.0839856f, -0.243172f, -0.0716664f, -0.212235f, 0.140887f, -0.143785f, -0.128316f, 0.105521f, -0.0495989f, 0.280138f, -0.0502719f, 0.0059838f, 0.0415653f, 0.102801f, -0.144467f, 0.276831f, -0.192772f, -0.0303389f, -0.0537319f, -0.0744961f, 0.136522f, 0.164766f, 0.271709f, -0.280709f, -0.0615068f, -0.181876f, 0.0646773f, -0.1691f, 0.140593f, -0.0279498f, 0.0740332f, 0.34791f, 0.140214f, -0.102816f, 0.104774f, 0.223116f, 0.112008f, -0.20612f, -0.107609f, 0.107151f, -0.105628f, 0.11726f, 0.0943161f, -0.0410757f, 0.138569f, -0.187869f, 0.113827f, -0.0845079f, -0.232753f, 0.100649f, 0.116408f, 0.0584422f, 0.191034f, 0.153257f, 0.206824f, 0.220676f, -0.0474286f, -0.0291285f, 0.420903f, 0.197715f, 0.113135f, -0.0746185f, 0.119712f, -0.0741145f, 0.204837f, 0.212411f, -0.237924f, -0.0164477f, -0.0698589f, 0.138746f, 0.418463f, -0.189252f, -0.119087f, 0.276394f, 0.0526947f, 0.0553387f, -0.150671f, 0.174636f, 0.0241076f, 0.153202f, 0.113383f, -0.211172f, 0.0850875f, -0.118017f, 0.353077f, -0.228479f, -0.158144f, 0.0503838f, 0.0313642f, -0.338467f, -0.452229f, 0.350663f, -0.34978f, 0.130551f, 0.211654f, 0.00981187f, -0.0910767f, 0.0684789f, -0.26841f, 0.243684f, 0.155236f, 0.0834997f, -0.0414097f, 0.263349f, 0.0986009f, 0.283047f, 0.366763f, -0.105946f, -0.30046f, -0.148644f, 0.267708f, 0.200091f, -0.137042f, -0.456552f, 0.104331f, 0.111956f, -0.381391f, -0.0445835f, 0.0202312f, 0.221634f, 0.0832365f, 0.302741f, -0.200455f, -0.0586204f, 0.218728f, 0.136149f, 0.375126f, -0.242173f, -0.0523515f, -0.400975f, 0.168316f, 0.0566782f, -0.0755048f, -0.0174035f, 0.0996974f, 0.0433069f, 0.194943f, 0.13156f, -0.164108f, 0.101725f, -0.163056f, -0.27507f, -0.10358f, -0.181226f, 0.0290477f, 0.019683f, -0.267277f, -0.2248f, 0.188976f, 0.0127995f, 0.162839f, -0.320035f, 0.164918f, 0.0609397f, 0.18405f, 0.14242f, -0.21766f, 0.000666352f, 0.294396f, -0.0742856f, 0.0396931f, 0.176509f, 0.0864403f, -0.188469f, 0.325142f, 0.102837f, 0.226873f, 0.186865f, 0.100025f, -0.0480354f, -0.226415f, 0.0221203f, 0.152783f, 0.195615f, 0.330592f, 0.0652798f, -0.258663f, 0.247019f, 0.272573f, -0.183756f, -0.254019f, 0.0709218f, -0.146356f, -0.0817581f, -0.131117f, 0.0994186f, -0.0735456f, 0.0402275f, -0.17362f, 0.212418f, -0.231293f, 0.029652f, 0.207164f, -0.137758f, -0.117971f, -0.17741f, -0.138282f, 0.00815382f, -0.290234f, -0.0387104f, 0.471712f, -0.136822f, -0.285646f, -0.10429f, 0.0950233f, -0.127346f, -0.134205f, -0.140828f, -0.181521f, 0.0398295f, 0.215692f, -0.256515f, 0.287905f, -0.0331226f, -0.114682f, -0.052554f, 0.214073f, -0.230248f, -0.15143f, 0.00983539f, 0.0822964f, -0.355277f, -0.290716f, -0.147837f, 0.282252f, 0.00907504f, 0.122875f, 0.0250203f, -0.188858f, -0.176569f, 0.24182f, 0.00961653f, 0.0838709f, 0.229348f, 0.104096f, -0.182524f, 0.122872f, 0.209122f, -0.153867f, 0.331493f, 0.0921253f, -0.431247f, 0.0967212f, 0.0504661f, -0.0178819f, -0.178459f, -0.250778f, 0.047353f, 0.0257014f, -0.430279f, -0.0418904f, -0.183993f, 0.0724382f, 0.370924f, -0.0715768f, 0.175306f, -0.0859055f, 0.0755041f, 0.0412369f, -0.0967473f, 0.208082f, -0.00723357f, 0.00129208f, -0.177468f, -0.153295f, 0.214822f, -0.12209f, -0.0892376f, 0.00125091f, -0.0378956f, -0.260408f, 0.0365839f, -0.140604f, -0.084974f, 0.423358f, -0.14291f, -0.065101f, -0.0836068f, -0.0785019f, 0.159149f, -0.260997f, 0.0225511f, 0.0321515f, 0.24063f, 0.305561f, 0.0927721f, -0.00247712f, 0.147084f, -0.375886f, -0.242223f, -0.182422f, -0.0023501f, 0.300957f, -0.253136f, 0.12222f, 0.133299f, -0.211846f, 0.0636467f, 0.171142f, 0.010837f, 0.0473631f, 0.00436833f, 0.0838776f, 0.0695701f, 0.0967769f, 0.269596f, 0.247817f, -0.0183793f, -0.0316209f, 0.0893581f, 0.140201f, -0.0775943f, -0.0118358f, -0.0391616f, 0.0698638f, 0.135842f, 0.0979015f, -0.000687865f, -0.17727f, -0.124023f, -0.10663f, 0.154209f, 0.0356377f, -0.0427038f, -0.0468375f, -0.111683f, -0.0620304f, -0.0711797f, 0.157245f, 0.0924175f, -0.212337f, 0.0868568f, -0.132686f, 0.102122f, 0.138988f, -0.0343314f, -0.0831033f, 0.0856277f, -0.1662f, 0.206566f, -0.00445372f, 0.123853f, -0.0813949f, -0.351517f, 0.0866286f, -0.2151f, 0.0774302f, 0.0775511f, -0.0212508f, 0.0750303f, 0.222317f, -0.140358f, 0.0528263f, 0.116976f, 0.169515f, 0.0101167f, 0.191664f, 0.155649f, 0.204914f, 0.00300132f, -0.187884f, -0.12981f, 0.038814f, -0.0566856f, 0.0283434f, 0.0110679f, 0.0455499f, -0.0777001f, -0.178157f, 0.0266748f, -0.0746063f, -0.239552f, 0.0129975f, -0.0264669f, 0.0869853f, -0.111602f, 0.0114327f, 0.0547876f, 0.145474f, -0.00374372f, -0.117372f, 0.110487f, 0.0282746f, -0.0392925f, -0.161083f, 0.0256731f, -0.135558f, 0.134186f, 0.0351135f, 0.0439089f, -0.114875f, -0.0400127f, -0.0921019f, 0.017746f, 0.0390843f, -0.161927f, -0.0325549f, 0.09644f, -0.0141877f, -0.0937898f, 0.0255777f, 0.0632039f, 0.239331f, -0.0380696f, -0.0286286f, -0.0447813f, 0.165405f, -0.135237f, 0.220726f, -0.0536991f, 0.0649588f, -0.00792401f, 0.095578f, -0.00888079f, -0.120808f, -0.0329143f, 0.0527303f, 0.105016f, -0.251527f, 0.0261099f, -0.0220053f, 0.152747f, -0.0708655f, -0.00027071f, -0.11944f, 0.136492f, 0.158273f, 0.0480846f, 0.116855f, 0.049918f, 0.0555352f, -0.0164127f, -0.0626312f, -0.0710156f, -0.190268f, 0.170186f, -0.0442869f, 0.14566f, -0.0991108f, -0.0248006f, -0.0407336f, 0.110164f, -0.0463481f, -0.0589044f, 0.217462f, 0.0306617f, 0.0275899f, -0.0489557f, 0.0281603f, 0.273242f, -0.0567958f, 0.0614132f, -0.0451799f, -0.191909f, -0.0369096f, -0.134066f, -0.205292f, -0.068349f, 0.127744f, -0.215154f, 0.318676f, -0.0864689f, 0.0699516f, -0.0531152f, -0.210251f, 0.0211801f, 0.183034f, -0.0662351f, 0.253034f, 0.0680723f, 0.0413691f, 0.0661909f, 0.179394f, 0.177322f, 0.143607f, 0.171388f, -0.154302f, 0.170213f, 0.134804f, -0.106546f, 0.115806f, -0.153251f, -0.0125804f, 0.0534105f, 0.0102269f, -0.0225906f, 0.152768f, 0.162731f, -0.17633f, -0.129473f, -0.0830831f, 0.00315176f, -0.104508f, -0.220727f, -0.0585002f, 0.0968828f, 0.250311f, -0.0254681f, -0.10435f, -0.0352903f, -0.0259145f, 0.120853f, 0.225238f, 0.102792f, -0.0862531f, -0.0817701f, -0.0605851f, 0.0565693f, 0.184718f, 0.0827693f, -0.0610187f, 0.0077671f, -0.107498f, -0.184067f, -0.0315984f, 0.0940702f, 0.100387f, -0.0100645f, 0.111f, -0.0535941f, 0.15964f, 0.00441146f, -0.313525f, 0.00902437f, 0.153753f, -0.163773f, -0.150894f, -0.136785f, 0.0461018f, -0.0684619f, 0.0437999f, 0.194042f, -0.114687f, 0.179737f, 0.299877f, -0.149034f, 0.0389575f, -0.162266f, 0.154833f, -0.118108f, -0.0281264f, 0.0711873f, -0.0125956f, 0.228236f, 0.036014f, -0.22862f, -0.100831f, -0.19708f, -0.142736f, -0.17741f, -0.035879f, 0.0443481f, -0.160759f, -0.133544f, 0.212087f, -0.250528f, 0.069147f, -0.0265592f, 0.0394583f, 0.222219f, 0.0495845f, 0.0310043f, 0.126548f, 0.0571012f, -0.0424328f, 0.0747446f, -0.106016f, -0.153186f, -0.0749f, 0.0293087f, 0.00645124f, -0.119154f, -0.0103943f, -0.0363846f, -0.0406151f, 0.0148211f, 0.00350763f, 0.123317f, -0.0891998f, -0.0207421f, 0.00248899f, 0.0502785f, 0.0143118f, -0.138379f, 0.0226861f, -0.0392542f, 0.0128978f, 0.0845278f, -0.10203f, 0.213048f, 0.16011f, -0.22105f, 0.105709f, 0.131046f, -0.136416f, -0.108472f, 0.104923f, 0.116376f, 0.00145134f, 0.0910982f, -0.243769f, 0.0238091f, 0.0489349f, 0.0508988f, 0.0104438f, 0.110882f, -0.181182f, 0.0432459f, -0.0313996f, 0.00816615f, 0.0298123f, 0.00460238f, -0.257957f, 0.0999686f, 0.171579f, 0.0533533f, -0.10572f, 0.102228f, 0.0570634f, 0.132187f, -0.0712833f, -0.11496f, -0.0767353f, 0.00878233f, 0.0512783f, -0.0346125f, 0.154352f, 0.0573743f, 0.100785f, -0.00557048f, -0.00545346f, 0.197243f, -0.108493f, 0.0205805f, 0.118145f, 0.0982738f, 0.070815f, -0.106113f, -0.116275f, 0.107731f, 0.0651687f, -0.0733351f, 0.0032324f, 0.097251f, -0.0488634f, 0.0971199f, 0.20334f, 0.0649219f, -0.0809141f, -0.0323632f, -0.0094802f, 0.0753437f, 0.0465099f, 0.0479431f, -0.0120915f, -0.0411147f, 0.0245441f, 0.0380381f, -0.0334326f, 0.100894f, 0.0179915f, 0.0905783f, -0.0659829f, 0.0575814f, 0.0559146f, 0.00323303f, 0.126724f, 0.0615276f, 0.183074f, 0.0431896f, 0.164971f, -0.21242f, -0.0281267f, 0.185087f, 0.0721795f, 0.15915f, 0.113966f, 0.0886094f, -0.213964f, -0.211458f, 0.0804332f, -0.0481161f, 0.0983927f, -0.00489313f, 0.103166f, -0.0411454f, -0.0136374f, -0.0165421f, -0.225023f, -0.166526f, -0.218673f, 0.00363155f, -0.181221f, -0.031862f, 0.0692176f, 0.0172648f, 0.0312876f, 0.0809113f, -0.212571f, -0.181915f, -0.0216198f, -0.128859f, -0.101059f, -0.167863f, 0.105344f, -0.294174f, -0.173028f, 0.23456f, -0.348106f, 0.207987f, 0.0649392f, 0.134106f, 0.142571f, -0.240993f, 0.25051f, -0.0988661f, 0.292942f, 0.0890386f, -0.0950989f, 0.32278f, -0.153732f, -0.0490746f, 0.367647f, 0.0395813f, -0.187073f, 0.212144f, 0.0561764f, 0.237407f, 0.160975f, 0.0231889f, 0.11363f, -0.214534f, 0.0994013f, 0.0444237f, -0.11078f, 0.161284f, 0.158768f, 0.0577083f, -0.273684f, -0.0219211f, 0.14795f, 0.133386f, 0.187597f, -0.259441f, -0.298542f, 0.121531f, -0.0804447f, -0.022203f, -0.0311107f, 0.108072f, -0.176308f, 0.0302158f, -0.0984576f, -0.0801296f, 0.183414f, 0.0657086f, 0.150177f, 0.0399804f, -0.0362636f, 0.0443311f, -0.207705f, 0.19154f, 0.287582f, -0.0256126f, 0.0246165f, 0.113954f, 0.288111f, -0.0249636f, -0.0717125f, -0.111263f, 0.00305796f, 0.143304f, -0.0882341f, -0.154486f, -0.067643f, -0.137073f, 0.31111f, 0.098234f, -0.0928352f, 0.113506f, 0.226695f, 0.12967f, -0.0214831f, -0.157581f, 0.143304f, -0.0228318f, 0.123643f, -0.136711f, 0.0206609f, 0.177857f, 0.0603704f, 0.0490934f, -0.0103565f, -0.169633f, 0.0617113f, -0.0897283f, 0.0640843f, -0.103563f, -0.15817f, -0.190475f, -0.192074f, -0.0558045f, -0.0783566f, -0.0598472f, -0.0242167f, 0.185228f, 0.271479f, 0.0841463f, -0.111318f, 0.0562257f, -0.0073089f, 0.0618884f, -0.0612143f, -0.0981195f, -0.0349327f, -0.208352f, -0.0696669f, 0.166019f, 0.006388f, -0.196874f, -0.194157f, -0.0501718f, 0.0927974f, -0.0620646f, -0.205631f, 0.112471f, -0.0252594f, 0.0786668f, 0.0756115f, -0.10343f, 0.153891f, -0.142437f, -0.0353469f, 0.181558f, -0.251675f, -0.0868061f, -0.0487822f, 0.0530073f, 0.0571153f, 0.111861f, 0.169626f, 0.0500168f, 0.0743172f, -0.139273f, -0.305728f, -0.0249513f, 0.0489595f, -0.0199362f, -0.0720842f, 0.0133846f, 0.0522471f, -0.000476255f, 0.0920069f, -0.106679f, 0.0894293f, -0.00456805f, 0.113289f, 0.0356792f, -0.0234725f, -0.284162f, 0.0886872f, -0.168825f, 0.17789f, -0.13746f, 0.0161145f, 0.0741083f, -0.0271879f, 0.101677f, -0.116099f, 0.0990972f, -0.00590422f, -0.0808045f, 0.0578663f, -0.0909753f, 0.00897322f, 0.0695663f, -0.136376f, -0.140576f, -0.155642f, -0.0599464f, -0.0202549f, 0.187513f, 0.164245f, 0.0246294f, -0.0566536f, 0.0308769f, 0.0748604f, 0.0240515f, 0.0437531f, -0.177989f, 0.0554386f, 0.159618f, 0.0177529f, -0.098765f, 0.0141439f, 0.159502f, 0.0286504f, -0.0442644f, -0.138102f, -0.175481f, -0.111828f, 0.0529343f, -0.229006f, 0.141561f, -0.191297f, -0.113759f, 0.113326f, 0.146535f, -0.114124f, -0.114238f, -0.106667f, 0.0721454f, -0.0897792f, -0.155526f, 0.148268f, 0.112801f, -0.0267501f, -0.111372f, -0.0135466f, -0.00676442f, -0.135999f, 0.0364092f, 0.0760719f, -0.127574f, 0.136992f, 0.268982f, 0.154751f, -0.0965469f, -0.0902714f, -0.201674f, 0.215974f, 0.0143205f, 0.107535f, -0.0789008f, 0.0619758f, -0.285077f, -0.0255893f, 0.176622f, -0.0399721f, 0.0904298f, -0.00904075f, -0.053114f, -0.184717f, -0.130024f, 0.00408874f, 0.0361089f, -0.116087f, 0.19341f, 0.107742f, 0.190272f, 0.0343729f, -0.166144f, 0.199664f, 0.216546f, 0.0654757f, -0.208535f, -0.117371f, -0.169046f, -0.240139f, 0.124836f, -0.0869394f, -0.0557675f, 0.0021298f, -0.192413f, 0.154667f, 0.141004f, 0.238734f, -0.0755906f, -0.0673033f, 0.247951f, -0.208498f, 0.254538f, -0.0863955f, -0.147034f, 0.207723f, -0.118733f, -0.104011f, -0.107221f, 0.207033f, 0.0360499f, -0.00590937f, 0.329404f, -0.0181599f, 0.0406106f, 0.134646f, 0.0545521f, -0.178858f, -0.232239f, 0.118319f, -0.129655f, 0.222998f, 0.240769f, -0.164791f, -0.115975f, 0.0221351f, -0.0544857f, -0.209528f, -0.0604101f, -0.12789f, 0.032655f, -0.0901611f, 0.0613266f, -0.141204f, -0.239095f, -0.249848f, -0.109767f, -0.243444f, -0.0865247f, -0.0581497f, 0.118665f, -0.0536193f, 0.192407f, -0.0344082f, -0.0637534f, -0.0213267f, -0.196127f, -0.152733f, -0.184421f, 0.0184631f, -0.149939f, 0.10912f, 0.0854453f, -0.211431f, 0.131623f, 0.0671506f, 0.100943f, -0.0183406f, -0.149954f, 0.125981f, -0.113073f, 0.147091f, 0.0380189f, -0.108158f, 0.215084f, -0.12945f, 0.287793f, 0.00295693f, -0.0194147f, 0.101404f, -0.147831f, -0.31526f, 0.280712f, -0.00797856f, 0.000920136f, -0.0514833f, -0.232235f, 0.166164f, -0.021663f, -0.148029f, 0.141726f, 0.104733f, -0.0510852f, 0.0676416f, 0.00461452f, -0.0869396f, 0.0598647f, 0.11364f, 0.122627f, 0.0141442f, 0.0766444f, -0.0570795f, 0.226712f, -0.0997338f, 0.0104233f, 0.0995865f, 0.122755f, -0.105909f, -0.0627385f, 0.232076f, -0.0930674f, -0.138334f, -0.0492798f, 0.0366747f, 0.104036f, -0.163349f, 0.219434f, 0.103719f, 0.134549f, -0.0733146f, 0.0841455f, -0.0616062f, 0.161739f, 0.038485f, 0.125401f, 0.0530106f, -0.138071f, 0.0443872f, -0.0946288f, -0.0466408f, -0.0889262f, 0.0885975f, -0.306334f, 0.156692f, -0.0510206f, -0.115786f, -0.0253643f, -0.280612f, -0.106349f, 0.0280746f, 0.252582f, -0.263919f, -0.153369f, -0.148419f, -0.162501f, -0.110056f, -0.0954707f, -0.0282419f, -0.0941679f, -0.313596f, 0.0717841f, -0.0352554f, -0.153339f, 0.101385f, 0.251079f, 0.138238f, 0.0655082f, 0.104554f, 0.0507936f, 0.0546657f, 0.0454597f, -0.143795f, 0.0645475f, -0.00191894f, 0.014621f, 0.0785744f, -0.0352181f, 0.0456501f, 0.0994518f, 0.109949f, -0.14451f, 0.0214764f, -0.0744291f, 0.255329f, 0.12056f, 0.183743f, -0.10532f, 0.0799724f, 0.0518231f, -0.0331491f, 0.182921f, -0.0718325f, 0.0655274f, 0.0440067f, -0.133689f, -0.0668168f, 0.203297f, 0.00306266f, 0.0504071f, -0.146601f, -0.00813348f, -0.142631f, -0.132171f, 0.150298f, 0.0719717f, -0.0979108f, -0.0723546f, 0.0196102f, -0.00144666f, -0.0986386f, -0.228808f, -0.0689168f, -0.082297f, -0.116596f, 0.162522f, 0.27359f, 0.219524f, 0.209612f, -0.0813527f, 0.126918f, -0.167112f, 0.107524f, 0.0123943f, -0.192413f, -0.173122f, -0.251251f, -0.111124f, -0.0467329f, 0.208626f, 0.129886f, 0.017163f, 0.0239075f, -0.115019f, 0.0567702f, 0.041422f, -0.0445169f, 0.324057f, -0.0756616f, 0.111119f, -0.0674258f, 0.0779091f, -0.145976f, -0.135529f, -0.0753079f, -0.0674643f, -0.075041f, -0.0800775f, -0.102088f, 0.281956f, -0.137588f, 0.132456f, -0.0667155f, 0.197779f, -0.0559399f, 0.0564634f, -0.161183f, -0.00640873f, -0.207826f, -0.10786f, -0.0317456f, -0.259847f, 0.0929499f, -0.167791f, 0.0331083f, -0.147206f, -0.0797324f, 0.0585184f, 0.249077f, -0.0473918f, -0.0819338f, 0.142447f, 0.0467344f, -0.162312f, -0.257706f, -0.29103f, -0.128517f, 0.195024f, 0.362478f, -0.294982f, -0.00535441f, 0.193734f, 0.0157192f, 0.134989f, -0.24539f, -0.0636812f, 0.265858f, -0.205284f, 0.0673664f, -0.0328482f, 0.251281f, -0.282696f, -0.0289903f, -0.0757441f, -0.123714f, -0.146323f, 0.0835978f, -0.235284f, 0.261448f, 0.00751871f, 0.121128f, 0.0570946f, 0.124693f, -0.0176324f, -0.10682f, 0.289394f, -0.192283f, 0.159943f, -0.186865f, 0.25877f, -0.191541f, -0.262421f, -0.094522f, -0.0571403f, 0.0381404f, -0.215849f, -0.0302455f, -0.218693f, -0.0223371f, -0.0451282f, -0.176046f, 0.0436028f, 0.104435f, 0.0254317f, -0.0693392f, -0.0891947f, 0.0737473f, -0.0280509f, -0.00513778f, 0.195974f, -0.0456252f, 0.218487f, -0.0889281f, -0.276844f, -0.110497f, -0.0425891f, 0.0299656f, 0.0789996f, 0.0525175f, -0.07676f, 0.249599f, -0.216332f, 0.144757f, 0.102829f, -0.167998f, -0.250649f, -0.0741028f, 0.154224f, 0.0527946f, 0.180111f, 0.088996f, 0.00539439f, -0.243942f, -0.27293f, -0.219812f, -0.131092f, -0.0270034f, -0.00762297f, 0.011397f, 0.101117f, 0.0948659f, 0.286464f, -0.0259595f, 0.208007f, -0.0155812f, 0.0971389f, 0.00227662f, -0.243313f, -0.0926188f, -0.0497908f, -0.0625168f, 0.0862979f, 0.213153f, -0.0143021f, -0.171711f, 0.0603781f, 0.0987161f, 0.00658844f, 0.00133004f, 0.0826354f, 0.136543f, 0.218047f, 0.158559f, -0.061322f, -0.20113f, 0.163338f, -0.0215241f, -0.0317877f, 0.000529159f, 0.0551288f, 0.0935684f, 0.188363f, -0.253053f, -0.239632f, -0.10442f, 0.224467f, -0.0196021f, 0.0217402f, -0.0785643f, -0.0882825f, -0.14475f, 0.0553543f, -0.142036f, 0.225602f, 0.0292801f, -0.100456f, -0.0556435f, 0.213694f, 0.255275f, -0.121965f, -0.241685f, 0.0830395f, -0.162966f, 0.0297171f, 0.0603596f, -0.0847247f, 0.17716f, 0.0664894f, 0.0368637f, 0.0221098f, -0.0190963f, -0.128692f, -0.0879525f, 0.0312482f, -0.010235f, 0.163419f, 0.202172f, -0.0580615f, 0.0327104f, -0.299992f, 0.0152783f, 0.026473f, -0.0815656f, -0.0342012f, -0.261752f, 0.234139f, -0.0702841f, 0.110783f, -0.0585643f, 0.111893f, -0.229033f, -0.0192643f, 0.0803263f, -0.0034364f, -0.104364f, -0.00521086f, 0.0864187f, 0.0128595f, 0.0846012f, 0.111165f, 0.049406f, 0.0538369f, -0.0640571f, 0.0635662f, -0.246845f, -0.0596314f, -0.145103f, 0.119339f, -0.0304278f, 0.179782f, 0.000908579f, -0.0989151f, 0.0288136f, -0.10341f, 0.111954f, -0.0633066f, 0.0551115f, -0.0833768f, -0.119543f, -0.0314643f, 0.123077f, -0.0987345f, 0.0265244f, -0.0790242f, 0.115197f, -0.129737f, 0.120473f, 0.185589f, -0.239038f, -0.0683431f, -0.178883f, 0.0405297f, 0.0240195f, 0.167097f, 0.0195128f, -0.0229805f, 0.130629f, -0.298108f, -0.0209772f, -0.101167f, 0.0406998f, 0.120559f, -0.0814188f, -0.235656f, 0.067513f, -0.114551f, -0.190412f, -0.0130298f, -0.167855f, -0.229193f, 0.0722301f, 0.144199f, 0.528906f, 0.0706147f, -0.234517f, 0.201641f, -0.0526329f, 0.0407586f, -0.19861f, 0.133599f, 0.0924049f, -0.289104f, 0.0312398f, -0.119671f, 0.203744f, 0.0884402f, 0.0610269f, 0.178695f, -0.0566738f, -0.0747588f, 0.0545742f, -0.0513348f, 0.0707465f, -0.0697245f, 0.0343532f, 0.0216494f, 0.171215f, -0.0352214f, -0.110552f, -0.065643f, 0.140431f, 0.16997f, 0.112627f, 0.160461f, 0.0503516f, -0.0363823f, 0.192887f, -0.190745f, 0.0231717f, -0.140485f, -0.0342748f, 0.268937f, 0.0993354f, -0.186124f, 0.0547277f, 0.125307f, -0.112501f, 0.169121f, 0.12657f, 0.0806648f, 0.0603041f, -0.210434f, -0.0608578f, -0.167817f, 0.0656794f, 0.151097f, -0.0596847f, -0.0334386f, -0.00839505f, -0.0938266f, -0.136488f, -0.0854782f, 0.171566f, 0.0766856f, 0.161251f, 0.00484967f, -0.0066295f, -0.0158161f, -0.218744f, 0.175441f, 0.0992633f, 0.015982f, 0.0664824f, 0.0511283f, 0.115129f, 0.0685484f, 0.0640439f, -0.227662f, -0.0562194f, -0.028932f, 0.162578f, 0.00474962f, -0.05052f, 0.475494f, 0.0882675f, -0.146376f, -0.211009f, 0.0399414f, 0.135844f, -0.0422426f, -0.0307788f, -0.0907363f, 0.107559f, -0.189228f, -0.0510728f, -0.100413f, 0.143782f, -0.156501f, 0.054015f, 0.228782f, -0.18586f, -0.175798f, 0.0596833f, -0.0784344f, -0.150791f, -0.00017436f, 0.0340587f, -0.00324317f, -0.108002f, 0.0389735f, -0.152437f, -0.0284459f, -0.0408801f, -0.0516954f, -0.147478f, 0.0254529f, -0.243084f, -0.09446f, 0.0142168f, 0.219553f, 0.00154404f, 0.190244f, 0.153463f, -0.0491285f, -0.252395f, 0.00214255f, 0.093671f, -0.112901f, -0.157489f, 0.307347f, 0.00293066f, -0.116524f, -0.017885f, 0.10013f, 0.134434f, 0.14842f, -0.0355863f, 0.234569f, 0.201068f, 0.216775f, -0.261653f, -0.0725783f, -0.120533f, -0.0554468f, 0.142074f, 0.0819457f, 0.0145067f, 0.176356f, -0.177982f, -0.0707165f, -0.0389394f, -0.0582071f, -0.0488022f, 0.106313f, 0.169968f, 0.255372f, 0.209675f, 0.0275154f, 0.159793f, -0.215931f, -0.0941327f, -0.131134f, 0.0981881f, -0.106064f, 0.137407f, 0.0777021f, -0.0703821f, -0.0716662f, 0.14555f, 0.116795f, -0.158661f, -0.054545f, -0.0826052f, -0.0790715f, 0.0555433f, 0.0817194f, 0.0520183f, 0.0730651f, 0.0418628f, 0.197504f, 0.0549505f, -0.0305548f, -0.0576319f, 0.0540395f, 0.0650545f, 0.0472262f, 0.0647802f, -0.136269f, 0.096032f, 0.00375464f, -0.076037f, -0.115717f, 0.015725f, 0.0366498f, 0.0119711f, -0.111213f, 0.0225155f, 0.0478258f, 0.0489541f, 0.193058f, 0.0512459f, -0.114413f, -0.205287f, -0.130935f, 0.160581f, 0.0347214f, 0.15304f, 0.124891f, 0.193848f, 0.063653f, -0.025868f, -0.187343f, -0.113865f, 0.0897333f, 0.0909938f, 0.109351f, -0.178585f, 0.0457116f, 0.0460199f, 0.0131091f, -0.105807f, -0.0470934f, 0.159298f, 0.00378479f, 0.0998039f, -0.254117f, -0.0179698f, -0.0415493f, -0.138852f, 0.0482223f, -0.268654f, 0.10812f, 0.0924121f, -0.11866f, -0.237326f, -0.11922f, 0.101564f, -0.0857236f, 0.108076f, 0.0815024f, -0.00222297f, 0.0601979f, -0.14496f, -0.093044f, -0.045809f, -0.134692f, -0.18821f, 0.0682117f, 0.0880673f, -0.105127f, -0.187628f, 0.0818778f, 0.048349f, 0.0653378f, 0.296014f, -0.0665317f, -0.110929f, 0.198365f, 0.0820619f, 0.0610111f, -0.152328f, 0.128202f, -0.228963f, -0.0502278f, 0.237839f, 0.00176824f, 0.242523f, -0.120761f, -0.0179417f, -0.0766105f, -0.0261444f, -0.171045f, -0.0769819f, -0.0189246f, -0.147269f, -0.117595f, -0.0833485f, -0.198219f, 0.0645051f, 0.0771432f, 0.0950721f, -0.231787f, -0.286489f, -0.135402f, -0.108849f, 0.0783292f, 0.268021f, 0.191373f, 0.0870181f, 0.0467838f, -0.100975f, -0.051137f, -0.262741f, -0.0585742f, 0.0226339f, 0.189295f, 0.12589f, -0.111535f, 0.0581875f, 0.0553455f, -0.0808578f, -0.362642f, 0.0184362f, -0.11829f, 0.145353f, -0.160821f, -0.0563136f, 0.046285f, -0.0145111f, -0.0692639f, 0.0713802f, -0.0759237f, -0.054232f, -0.0837634f, -0.104921f, -0.163832f, 0.103168f, 0.00845461f, 0.264384f, 0.205054f, -0.145867f, 0.136894f, 0.000102117f, 0.0257665f, 0.140436f, -0.107987f, 0.015786f, -0.247465f, -0.0488857f, -0.230751f, 0.121107f, -0.178463f, -0.218738f, -0.0533226f, -0.0198436f, 0.010008f, -0.102718f, 0.141921f, 0.0338165f, 0.40521f, 0.0290724f, -0.0382906f, -0.193469f, -0.0591112f, 0.0168595f, 0.03984f, -0.00447853f, -0.141895f, 0.0133999f, -0.0174127f, 0.0307856f, 0.0756068f, -0.187135f, 0.214934f, 0.0700963f, 0.0615178f, 0.101998f, -0.0324754f, 0.173601f, 0.121647f, -0.241527f, 0.0832361f, 0.0635745f, 0.140983f, -0.123511f, -0.0690575f, -0.0759821f, 0.0622005f, -0.0108043f, 0.0133396f, 0.129685f, 0.131956f, -0.119302f, -0.124319f, 0.114008f, -0.0973131f, -0.258069f, 0.0431355f, 0.1631f, 0.0134426f, -0.111986f, 0.140851f, 0.0257352f, -0.053538f, 0.00766237f, 0.0231174f, 0.0462976f, -0.248241f, -0.0150349f, 0.103864f, 0.158466f, -0.0159981f, 0.152851f, -0.154932f, -0.028529f, -0.0972201f, -0.0368554f, -0.274256f, -0.0278598f, -0.0419758f, -0.0558682f, -0.0221663f, 0.25022f, -0.0664094f, -0.193906f, -0.0493615f, -0.35309f, -0.235098f, 0.0150141f, 0.00308633f, 0.252807f, 0.0570821f, 0.0504919f, 0.0908241f, 0.0704101f, 0.0958599f, -0.176014f, -0.10764f, -0.0660326f, -0.0728902f, 0.00935227f, -0.0143362f, -0.102355f, -0.186386f, 0.0958245f, 0.0647333f, -0.0125823f, 0.0377772f, -0.0113163f, -0.0541076f, 0.111689f, 0.148556f, -0.0437577f, 0.00582363f, 0.109009f, 0.0209032f, 0.119165f, 0.173662f, 0.103953f, -0.0299121f, 0.0055769f, 0.311032f, -0.0393205f, -0.0290766f, 0.102252f, 0.00797309f, -0.252064f, 0.117559f, -0.0337573f, 0.273017f, -0.0647795f, 0.200558f, 0.0851795f, -0.0696324f, 0.0720123f, -0.0520601f, 0.0619748f, -0.0886566f, -0.0617627f, 0.272988f, 0.0343995f, 0.0368874f, 0.0739531f, 0.0326295f, -0.0411061f, -0.0236487f, 0.038636f, -0.0737867f, 0.181994f, 0.144975f, -0.008848f, -0.117821f, -0.243705f, 0.105646f, -0.145409f, 0.0332302f, -0.148624f, 0.265131f, 0.0802514f, 0.154749f, 0.108316f, 0.0876491f, 0.125394f, 0.317908f, -0.035747f, 0.000848745f, 0.0948103f, -0.177556f, 0.279028f, -0.00949414f, -0.0464721f, -0.0456468f, -0.033961f, -0.188287f, -0.0250515f, 0.0530903f, -0.072882f, -0.140372f, -0.253451f, 0.115828f, -0.151736f, -0.0785482f, -0.101393f, -0.17594f, -0.120726f, -0.1646f, 0.0390694f, -0.134404f, 0.270419f, 0.101298f, 0.0745609f, 0.0330837f, 0.0889244f, 0.222006f, -0.327362f, -0.114566f, -0.10577f, 0.00960377f, -0.20808f, -0.235352f, -0.054365f, 0.0639131f, 0.131666f, -0.228502f, -0.0246349f, -0.0142522f, -0.0730628f, -0.0961785f, -0.066113f, -0.119874f, -0.150269f, 0.204841f, -0.0599972f, -0.0190175f, 0.222224f, -0.101954f, 0.203378f, -0.0710294f, 0.136263f, -0.0548051f, 0.146299f, 0.00741256f, -0.141587f, -0.17505f, 0.100353f, -0.11392f, 0.0263736f, -8.17523e-05f, -0.117351f, -0.0910413f, -0.0476153f, 0.150066f, -0.0274803f, -0.0514784f, -0.00421565f, -0.109285f, -0.29714f, -0.057249f, 0.122813f, -0.00796528f, 0.0921854f, -0.165222f, 0.129328f, -0.12099f, -0.0307846f, 0.00137035f, 0.0557534f, -0.109416f, 0.0429668f, 0.181765f, 0.00428946f, 0.139277f, 0.284332f, 0.0217889f, -0.156058f, 0.0227186f, 0.151927f, 0.0994589f, 0.0486897f, -0.176124f, 0.192823f, 0.181983f, 0.230913f, 0.118594f, 0.055026f, -0.19094f, -0.230666f, 0.15888f, 0.0823155f, -0.134976f, -0.138522f, -0.149622f, 0.135911f, -0.0322344f, -0.0297507f, -0.0346886f, -0.028311f, -0.105788f, 0.107143f, -0.162303f, 0.0136887f, -0.057276f, 0.0785453f, -0.0394696f, 0.217601f, -0.138195f, -0.229585f, -0.184961f, -0.0694993f, -0.112825f, -0.0264247f, 0.184125f, 0.140602f, -0.0484591f, -0.0355035f, 0.173999f, -0.253477f, -0.0849009f, 0.0334361f, 0.0486071f, 0.187137f, -0.185189f, 0.206875f, -0.0147023f, -0.0544343f, 0.0439201f, 0.0874114f, 0.211543f, 0.0681499f, -0.16693f, 0.0806108f, -0.0563827f, -0.0506898f, 0.104305f, -0.351884f, -0.125584f, 0.134591f, 0.0823491f, 0.292635f, 0.159868f, 0.0018893f, -0.109742f, -0.040878f, -0.0862433f, -0.141548f, -0.0306189f, 0.0126707f, -0.0903778f, 0.128586f, -0.0645041f, -0.0185783f, 0.0767119f, 0.081075f, 0.222919f, -0.135686f, -0.185018f, 0.0826653f, -0.00818464f, 0.138505f, 0.128922f, 0.290478f, 0.0394638f, -0.133332f, -0.071074f, 0.10727f, -0.102579f, -0.0158608f, 0.100014f, 0.112053f, -0.146543f, 0.011154f, 0.266391f, 0.237083f, -0.0665733f, 0.043156f, 0.0620785f, 0.226603f, -0.0167323f, -0.234698f, -0.0906763f, 0.112039f, 0.0786453f, 0.168632f, -0.0417271f, 0.315159f, 0.0754935f, -0.266064f, 0.0400998f, 0.0929476f, 0.178865f, 0.0720098f, 0.264195f, 0.244007f, -0.0639065f, -0.169249f, -0.0699562f, -0.145592f, 0.21176f, 0.100282f, 0.0457453f, 0.0311765f, -0.12536f, -0.156284f, 0.122928f, -0.20437f, -0.186633f, 0.158664f, -0.0412245f, 0.276514f, 0.215252f, -0.0186752f, -0.11489f, 0.210673f, 0.071963f, 0.0686142f, 0.0215144f, -0.283088f, -0.043409f, -0.0179121f, 0.265734f, -0.133047f, 0.0662321f, -0.0374946f, 0.213011f, 0.0868823f, 0.209494f, 0.143494f, 0.142708f, -0.0439707f, -0.291225f, -0.0187056f, 0.223323f, -0.221795f, -0.118144f, 0.10376f, -0.322955f, 0.0238337f, -0.165489f, -0.267289f, 0.145024f, -0.0344104f, 0.304497f, -0.0229514f, -0.00717208f, 0.257357f, -0.0787357f, 0.2275f, 0.212062f, 0.059252f, -0.00989654f, 0.121413f, -0.155533f, -0.284826f, 0.0610229f, 0.176942f, 0.0753082f, -0.0112885f, -0.136774f, -0.0213626f, -0.133278f, 0.0193413f, 0.0584276f, -0.130216f, 0.0219795f, -0.17737f, -0.108631f, -0.182742f, -0.143484f, -0.151408f, 0.0952779f, -0.0633213f, -0.0154988f, -0.16592f, 0.0197317f, 0.0414165f, 0.188828f, -0.215633f, 0.226787f, -0.0759639f, 0.0173962f, -0.157428f, -0.072653f, 0.0326113f, 0.0580054f, -0.00263f, 0.129911f, -0.0596082f, 0.19038f, -0.027865f, 0.130164f, -0.0759007f, -0.0176282f, 0.163789f, 0.140287f, 0.0677563f, 0.0500735f, -0.0819785f, 0.0191498f, -0.145307f, -0.238212f, -0.195393f, 0.00298907f, -0.109957f, -0.157264f, 0.232451f, -0.0824879f, 0.101696f, 0.10107f, -0.0711033f, -0.242967f, -0.102247f, -0.0546172f, 0.216941f, -0.0645678f, -0.133515f, -0.0837269f, 0.125293f, 0.0934864f, 0.0482932f, -0.157603f, 0.0379605f, -0.244443f, 0.0510249f, -0.0705582f, -0.0639019f, 0.170856f, -0.0436698f, -0.108454f, -0.145633f, -0.0236927f, -0.100489f, 0.107578f, 0.000394085f, 0.0295548f, 0.203022f, 0.0127632f, 0.00666699f, 0.132748f, 0.168756f, -0.104682f, -0.0256258f, 0.0546019f, -0.111491f, 0.145944f, -0.145376f, -0.0264392f, 0.265068f, -0.0872947f, 0.135145f, -0.070648f, -0.0590966f, -0.181138f, -0.169548f, 0.0480205f, -0.00197093f, -0.104124f, 0.282541f, -0.0476721f, -0.327167f, -0.0107654f, -0.0797319f, -0.0587301f, -0.19762f, -0.0306457f, 0.0442743f, -0.190004f, -0.0137991f, -0.0119953f, -0.133898f, -0.0443928f, -0.0213219f, 0.186771f, -0.125002f, 0.0507976f, -0.10069f, 0.185444f, -0.0943106f, 0.0995996f, 0.0805849f, 0.0465446f, -0.137525f, 0.247655f, 0.115056f, 0.00687559f, 0.0905463f, 0.266693f, 0.0793006f, 0.298897f, -0.0238774f, -0.135799f, 0.203913f, 0.0515016f, -0.0700987f, 0.253349f, -0.140132f, 0.131283f, -0.0550224f, -0.171589f, 0.241993f, -0.190935f, -0.0576831f, -0.0457072f, 0.0580622f, -0.0750257f, 0.197213f, 0.141507f, 0.055202f, 0.276479f, -0.0502334f, -0.0838636f, 0.070144f, 0.166996f, 0.0208648f, -0.0615077f, -0.0478171f, 0.0509648f, -0.141267f, 0.365843f, 0.073777f, 0.142816f, 0.0337229f, -0.00599924f, 0.0674472f, 0.0851126f, -0.200763f, -0.0278722f, 0.0523332f, 0.0988251f, 0.0655118f, -0.0506816f, 0.0848506f, 0.230353f, -0.0815808f, 0.140357f, 0.503875f, -0.0894819f, -0.199275f, 0.0766773f, -0.159169f, 0.317593f, -0.14099f, -0.0585917f, -0.183092f, 0.00339644f, 0.126777f, 0.0067154f, -0.0909868f, -0.0337972f, -0.256098f, -0.161181f, -0.0646457f, -0.0266959f, 0.0511432f, 0.00349618f, 0.15146f, -0.195418f, -0.286693f, 0.0215277f, -0.272757f, 0.112535f, -0.081244f, 0.125225f, -0.297899f, -0.105467f, -0.106059f, 0.279449f, -0.122069f, -0.0563932f, -0.150565f, 0.162054f, -0.268471f, -0.0758911f, 0.352079f, 0.10676f, -0.118928f, 0.102899f, 0.235384f, -0.283316f, 0.0335229f, 0.218578f, -0.311546f, -0.0609004f, 0.0329223f, -0.124809f, -0.184522f, 0.0422655f, -0.175389f, -0.104483f, 0.0366316f, -0.0517648f, -0.00384091f, 0.140765f, -0.10969f, -0.0376077f, 0.237011f, -0.202733f, -0.066318f, 0.147153f, -0.277392f, 0.337143f, 0.0659733f, 0.198862f, 0.227351f, 0.230223f, 0.018276f, 0.130245f, -0.207307f, 0.199813f, -0.0719076f, 0.107258f, 0.226766f, -0.0845481f, -0.151366f, -0.119914f, 0.205161f, -0.128756f, 0.0581856f, -0.098477f, 0.0269098f, 0.370763f, -0.0391666f, -0.150088f, 0.166399f, -0.128039f, 0.0470361f, 0.29486f, 0.0674753f, 0.218274f, 0.0285053f, 0.139084f, -0.119947f, 0.0948264f, 0.0552348f, -0.114965f, -0.0807989f, -0.00492508f, -0.252726f, 0.0782368f, -0.222863f, 0.27178f, 0.241647f, -0.227258f, -0.125896f, -0.0767666f, 0.113889f, 0.0993663f, 0.00213294f, 0.193513f, -0.0765993f, -0.0378484f, 0.0596313f, -0.179503f, -0.144106f, -0.00940642f, 0.0475162f, -0.246125f, 0.137858f, 0.0354783f, 0.0664788f, -0.118518f, 0.0561343f, 0.108593f, 0.11043f, 0.00812797f, -0.0448008f, -0.285149f, 0.0314596f, 0.0492944f, 0.110259f, -0.228422f, 0.0713836f, -0.0518383f, 0.0858419f, 0.0128281f, -0.170803f, 0.163588f, 0.0588861f, 0.225091f, 0.07898f, 0.0726698f, -0.119039f, 0.247892f, -0.0892168f, 0.323835f, -0.143154f, 0.0431666f, 0.0396764f, -0.326398f, 7.94298e-06f, -0.0712735f, 0.171388f, -0.21191f, 0.0222572f, -0.0712007f, 0.016099f, 0.0453507f, -0.175338f, -0.191168f, 0.103899f, -0.103546f, 0.0638331f, -0.00962028f, 0.0834226f, 0.0354192f, 0.0964642f, -0.208548f, 0.104342f, -0.217328f, 0.143065f, 0.0969882f, 0.111325f, 0.061168f, 0.224605f, 0.13012f, -0.163869f, -0.148583f, -0.101699f, -0.289744f, 0.0522017f, -0.311418f, 0.332015f, 0.0178992f, -0.122604f, 0.0348928f, 0.204616f, -0.235727f, 0.194774f, -0.0993624f, -0.228238f, 0.0243943f, -0.0994964f, 0.0333242f, -0.0619269f, 0.0256679f, 0.0206685f, -0.0907088f, -0.253402f, 0.0373954f, 0.119612f, -0.106464f, -0.206172f, 0.100582f, 0.0181061f, 0.0731502f, -0.140512f, 0.00467647f, 0.217203f, -0.174493f, 0.0374447f, 0.0488423f, -0.0734585f, -0.0488861f, 0.171459f, 0.162361f, -0.152462f, 0.172099f, 0.242363f, 0.0807513f, -0.0552634f, -0.129402f, -0.0271096f, 0.155504f, -0.0582288f, -0.145226f, 0.207983f, 0.0726546f, 0.17028f, -0.0261907f, -0.158799f, 0.152397f, 0.0685597f, 0.0219836f, 0.154049f, 0.163664f, 0.0436644f, -0.0553239f, -0.0952483f, 0.121675f, 0.12066f, 0.186857f, -0.0697225f, -0.185575f, 0.106108f, -0.0913291f, 0.165178f, 0.082077f, -0.128932f, 0.0529499f, 0.0914838f, 0.000808581f, -0.128819f, -0.0766578f, -0.163284f, 0.0903756f, -0.190329f, 0.166181f, 0.146957f, 0.0784133f, 0.0155746f, 0.0356162f, -0.0554081f, -0.0880158f, -0.0241914f, -0.108114f, 0.109631f, -0.138147f, -0.0814881f, -0.0617435f, -0.0323111f, 0.0407496f, 0.0546011f, -0.0623996f, 0.050933f, -0.173283f, 0.178492f, 0.134162f, -0.00852227f, -0.177226f, 0.0672476f, 0.151433f, -0.0806889f, -0.174985f, 0.0246386f, -0.0375049f, -0.0542138f, -0.0678692f, -0.0340651f, 0.161658f, -0.147534f, 0.0945559f, 0.0111506f, -0.0378644f, -0.0306593f, 0.15768f, -0.101943f, 0.0110745f, 0.0697115f, -0.0785279f, -0.0902708f, -0.118889f, -0.155001f, -0.058005f, -0.0129613f, 0.138515f, -0.0758191f, 0.141942f, -0.114852f, 0.214448f, -0.0612018f, -0.00445894f, -0.0520361f, 0.022606f, -0.225757f, -0.103682f, 0.0594282f, 0.222927f, 0.0594835f, -0.0522408f, 0.0576185f, 0.0146333f, -0.000170865f, 0.169077f, -0.183478f, 0.0472603f, 0.0690792f, 0.0795112f, 0.169551f, 0.0610245f, 0.232259f, 0.127951f, 0.175323f, 0.0788545f, -0.12547f, 0.234925f, -0.00242259f, 0.23103f, 0.137076f, -0.232798f, -0.14105f, -0.00773075f, 0.025218f, 0.108766f, -0.223308f, -0.0110841f, -0.00610991f, 0.00415245f, -0.105042f, 0.296189f, -0.0890052f, -0.0075429f, 0.0846358f, 0.0900547f, -0.162132f, 0.0556617f, -0.14467f, 0.0162075f, 0.193296f, -0.0535763f, 0.101115f, 0.0444325f, -0.242129f, 0.0278253f, 0.0367092f, -0.154192f, 0.0463672f, -0.00692398f, -0.138144f, 0.109307f, -0.203369f, 0.0742018f, 0.338f, 0.0568972f, -0.227718f, 0.133028f, 0.223392f, 0.00365197f, 0.149613f, -0.04249f, 0.197037f, -0.0418401f, -0.0576366f, -0.180064f, 0.0364357f, -0.0983834f, 0.0604175f, 0.0408121f, 0.119643f, -0.0534328f, 0.0189452f, 0.17032f, 0.0550593f, 0.0773892f, -0.0184934f, -0.0451102f, 0.177637f, -0.0643241f, 0.12265f, 0.0659024f, -0.0534559f, -0.0431217f, -0.269187f, 0.0322511f, -0.0883223f, -0.0994244f, -0.0428042f, -0.0937695f, 0.0387984f, 0.237975f, -0.0762014f, -0.0253851f, 0.249009f, -0.184969f, -0.140883f, -0.130556f, 0.0884009f, -0.185952f, 0.166071f, -0.149329f, -0.111073f, 0.0215814f, -0.0392089f, -0.0438346f, 0.159052f, 0.0913045f, 0.143966f, 0.261964f, 0.0282406f, -0.143004f, -0.161985f, 0.0243824f, -0.021443f, 0.0858764f, 0.0306562f, 0.107282f, 0.0437493f, 0.100556f, -0.00910151f, -0.210113f, -0.0455546f, 0.0202289f, 0.0192732f, -0.0274762f, 0.110844f, 0.0208504f, -0.246811f, -0.0291277f, -0.134827f, -0.0590535f, 0.221226f, -0.0493101f, -0.164356f, 0.0354058f, 0.00968444f, -0.134147f, -0.129092f, -0.0229352f, 0.00934381f, 0.0393513f, 0.0608587f, 0.172418f, -0.0389528f, -0.166568f, 0.0110792f, 0.144302f, 0.167796f, -0.0757836f, 0.0598982f, 0.0994025f, -0.0714917f, -0.303842f, -0.0224995f, -0.0728017f, -0.184033f, -0.0593032f, -0.0325862f, -0.0408785f, -0.128744f, -0.0747342f, 0.147766f, -0.0860524f, -0.0979769f, 0.0797217f, -0.217195f, 0.0702318f, 0.0863689f, 0.0345669f, -0.0271673f, 0.0978299f, 0.0884192f, -0.024591f, -0.00815786f, 0.104854f, -0.268379f, -0.251809f, -0.146683f, 0.042667f, -0.0354999f, -0.209308f, -0.0727098f, -0.13846f, -0.0531407f, 0.227064f, 0.0500005f, -0.0200406f, 0.278257f, 0.00778573f, -0.140931f, 0.0442088f, -0.174913f, -0.0981207f, 0.170881f, -0.0455822f, -0.187689f, -0.00316352f, -0.279755f, 0.0873059f, 0.14235f, 0.002969f, 0.122239f, -0.187515f, 0.151506f, -0.195724f, -0.0712927f, -0.0750632f, 0.182077f, -0.0665321f, -0.257123f, 0.0438612f, 0.00494612f, -0.0270056f, -0.213588f, 0.179088f, 0.0536625f, 0.0209718f, -0.117785f, 0.15305f, -0.0008429f, -0.131116f, -0.0111854f, 0.031442f, 0.236789f, -0.0473726f, -0.0292517f, -0.0642933f, 0.022955f, -0.0321746f, -0.175353f, 0.103433f, -0.137434f, 0.149161f, -0.132811f, -0.0394169f, -0.234583f, -0.00230934f, -0.0159603f, 0.017747f, -0.111661f, 0.0475098f, 0.0169078f, -0.0683063f, -0.171284f, 0.058323f, -0.0911435f, -0.130242f, 0.0830926f, 0.120274f, 0.243407f, -0.0569262f, -0.126056f, 0.260827f, 0.0581659f, 0.0341678f, 0.195174f, 0.0925144f, -0.0407958f, -0.0014245f, -0.0306393f, 0.233916f, 0.128005f, 0.0418621f, -0.0511885f, 0.0323911f, -0.0349961f, 0.135937f, -0.00519278f, 0.162556f, -0.050493f, -0.167632f, 0.0300552f, 0.0696776f, -0.178231f, 0.0942574f, 0.000235073f, 0.196127f, 9.93524e-05f, 0.0691002f, 0.0787756f, 0.219565f, 0.124301f, 0.0600077f, -0.039414f, -0.0211301f, 0.0510523f, 0.0232999f, -0.00388716f, 0.0334195f, 0.120762f, 0.117582f, -0.248593f, -0.0141657f, -0.00702971f, -0.0705362f, -0.108531f, -0.0211706f, -0.169598f, 0.000635434f, 0.0109744f, -0.209606f, 0.160297f, -0.0571702f, -0.334143f, -0.236385f, 0.000354559f, -0.0256901f, -0.337233f, 0.0300257f, 0.176712f, -0.143452f, 0.21002f, -0.0325479f, 0.064185f, -0.0599848f, -0.0354519f, 0.165903f, 0.162734f, 0.0967528f, -0.182163f, 0.0773548f, -0.178752f, -0.0819438f, -0.124903f, -8.86438e-05f, 0.078557f, 0.0813941f, 0.148902f, -0.0587133f, 0.270492f, -0.175673f, 0.0602696f, -0.153413f, -0.277393f, 0.041214f, -0.105639f, -0.0927406f, 0.148618f, 0.195536f, -0.1477f, 0.120386f, 0.297429f, -0.0384696f, 0.242804f, -0.0579541f, 0.164185f, 0.191915f, -0.0296914f, 0.138401f, -0.045244f, 0.241528f, 0.0814175f, -0.0819832f, -0.309522f, 0.0580075f, 0.0864122f, 0.117985f, -0.199501f, -0.057802f, 0.0139197f, -0.289155f, 0.00196187f, -0.240424f, -0.129247f, 0.326085f, 0.0821432f, 0.307668f, 0.190065f, -0.109508f, 0.018536f, 0.281864f, 0.3159f, -0.19042f, -0.186914f, -0.155548f, -0.131991f, -0.0908059f, 0.387562f, 0.128212f, 0.151174f, 0.0978995f, 0.294256f, -0.171484f, 0.0201144f, 0.21667f, 0.044511f, -0.117694f, 0.356277f, 0.0434023f, -0.00583693f, 0.153524f, 0.183028f, -0.177836f, 0.0714741f, -0.140506f, -0.133798f, -0.0147738f, -0.150208f, -0.309676f, 0.0912607f, 0.0599848f, 0.178408f, -0.0190107f, -0.0754199f, -0.271962f, 0.254131f, 0.102113f, 0.029632f, 0.127097f, -0.273309f, 0.0738351f, 0.0112593f, -0.0475388f, 0.180529f, 0.0319796f, 0.236656f, -0.115322f, -0.121906f, 0.347361f, -0.100722f, 0.1686f, -0.0658068f, 0.14697f, 0.0264067f, -0.00194751f, -0.0350777f, 0.0264652f, -0.259728f, 0.217223f, 0.0692807f, -0.0393484f, -0.0872517f, -0.184576f, -0.0202894f, -0.0162899f, -0.0847247f, 0.186756f, 0.0753623f, -0.0653679f, 0.00217702f, 0.0695816f, 0.051387f, -0.0334265f, -0.0333989f, -0.0559458f, 0.153261f, -0.136404f, -0.035912f, 0.148262f, 0.112059f, 0.268654f, -0.0959641f, -0.0854536f, -0.324753f, -0.188236f, 0.191003f, -0.112211f, 0.0800876f, -0.0897368f, 0.119907f, -0.11523f, -0.103647f, -0.166244f, -0.26769f, 0.0661589f, -0.148279f, 0.0552114f, 0.136428f, -0.0190046f, 0.0983496f, 0.117078f, 0.281904f, -0.0121736f, 0.13535f, 0.000729062f, -0.0151608f, 0.0656638f, -0.00108055f, -0.126203f, 0.028853f, -0.313667f, 0.187762f, -0.26018f, -0.0690308f, 0.0232367f, -0.207477f, 0.194567f, -0.0257278f, -0.299592f, 0.0272147f, -0.0960259f, -0.218833f, 0.082325f, -0.0747892f, -0.104085f, -0.115059f, -0.0433031f, -0.189131f, 0.32242f, -0.130339f, 0.0098419f, -0.0217262f, 0.029825f, -0.0356276f, -0.0666539f, -0.0781832f, -0.158807f, -0.191972f, 0.040057f, -0.0684448f, -0.134491f, -0.00232836f, 0.0104139f, 0.0627034f, 0.0326475f, 0.0163503f, 0.0932966f, -0.182107f, -0.117969f, 0.191129f, 0.0798998f, -0.130469f, 0.0124795f, 0.0245503f, 0.0628306f, -0.162595f, -0.0243625f, 0.111635f, -0.118823f, 0.037925f, 0.215134f, -0.174018f, 0.118832f, -0.268427f, 0.211729f, 0.044851f, 0.0991491f, -0.0159144f, 0.120131f, 0.184686f, 0.155631f, 0.0771292f, -0.0218618f, 0.059008f, -0.0060018f, -0.209928f, 0.0563683f, -0.0556184f, -0.011435f, 0.040344f, 0.120416f, 0.00317266f, 0.118903f, 0.00179928f, -0.388208f, -0.00389478f, -0.100011f, -0.249698f, 0.21342f, 0.020719f, 0.143378f, -0.259643f, -0.170272f, -0.0887512f, 0.0120006f, -0.0512994f, -0.0241011f, 0.0507811f, 0.177403f, 0.164665f, -0.216413f, 0.401759f, -0.00078251f, -0.210084f, 0.222116f, -0.253116f, -0.180699f, 0.348021f, 0.230499f, 0.299283f, 0.0508726f, -0.0383226f, -0.0114788f, 0.100161f, 0.0787191f, 0.0189348f, 0.319088f, -0.19265f, -0.0146785f, -0.0798062f, 0.0543606f, 0.141666f, -0.19566f, -0.0749372f, -0.0787407f, 0.238478f, 0.117835f, 0.232117f, -0.0387508f, -0.0587019f, 0.0116429f, 0.13843f, 0.0627899f, -0.0422196f, 0.0438586f, -0.0601035f, 0.0937819f, -0.256174f, -0.0158454f, 0.0947117f, 0.236652f, -0.207825f, -0.0357881f, 0.122265f, -0.0546838f, -0.0809967f, -0.132021f, 0.187433f, 0.0965789f, 0.0466628f, -0.0308888f, 0.0102194f, 0.122678f, -0.0607101f, -0.236644f, 0.0509888f, -0.130449f, 0.108292f, -0.0926397f, 0.271875f, -0.10683f, 0.0792947f, -0.0127305f, 0.324489f, -0.0117435f, 0.00201345f, -0.226851f, 0.037134f, -0.270681f, -0.102061f, -0.232633f, -0.0693495f, -0.0565835f, 0.181897f, 0.0386167f, 0.284829f, -0.28311f, 0.0206662f, 0.107835f, -0.0535233f, 0.144582f, -0.055393f, 0.0917491f, -0.288463f, 0.241746f, -0.015795f, -0.32826f, -0.123007f, 0.181309f, 0.184566f, 0.0147442f, 0.0214562f, 0.23152f, -0.127322f, 0.015791f, -0.105264f, 0.34053f, 0.142542f, -0.129257f, -0.097083f, 0.0442184f, 0.210436f, 0.0651727f, 0.082115f, -0.189502f, -0.195751f, -0.271738f, -0.105034f, -0.0259011f, -0.116911f, -0.0361255f, -0.245048f, 0.0911662f, 0.0423493f, -0.00397153f, -0.061248f, -0.0546373f, -0.0396883f, -0.0117754f, -0.0696778f, -0.101301f, -0.132616f, 0.0604535f, 0.0981603f, 0.0778097f, -0.13277f, -0.0956883f, -0.0347742f, 0.189169f, 0.196875f, 0.0234121f, 0.0206177f, 0.0663318f, 0.0565859f, -0.0940042f, -0.125164f, -0.167954f, -0.141138f, -0.0646987f, -0.0732027f, 0.0272635f, 0.106764f, -0.185636f, -0.0707019f, -0.0339848f, -0.0210354f, 0.0406703f, 0.0271723f, 0.0722726f, 0.0837366f, 0.0600431f, 0.0314298f, -0.0969304f, 0.0547077f, -0.0533074f, -0.166542f, -0.0652095f, -0.0559683f, -0.138756f, -0.126122f, 0.0653536f, 0.0318429f, -0.12976f, -0.0935575f, -0.0666802f, -0.156629f, 0.0912826f, -0.152729f, 0.166039f, -0.0270966f, 0.0605452f, 0.0297858f, -0.0296927f, -0.190592f, 0.0485603f, 0.119489f, -0.0985582f, -0.0530125f, -0.216446f, 0.137904f, 0.157458f, 0.141063f, -0.0590378f, 0.128517f, -0.0484878f, 0.125334f, -0.144998f, 0.102166f, -0.0437119f, 0.050342f, 0.0726078f, 0.00200244f, -0.0497705f, -0.170246f, -0.0336045f, -0.0488357f, 0.0649006f, -0.0973911f, -0.0759284f, -0.00941284f, 0.108955f, 0.0908334f, 0.0243825f, 0.13916f, -0.10616f, 0.0796676f, 0.251856f, 0.0177026f, 0.00233524f, -0.0798221f, -0.069667f, 0.0499621f, -0.00677958f, -0.106786f, 0.0407619f, 0.0815569f, -0.111148f, -0.0936251f, -0.0920238f, -0.0567838f, 0.102548f, -0.155407f, -0.0711622f, 0.217691f, -0.123826f, 0.0651125f, 0.101546f, 0.225263f, -0.0491691f, 0.117011f, 0.135075f, 0.131057f, 0.0520607f, -0.121525f, 0.172166f, -0.0220853f, -0.107589f, -0.291496f, 0.0927698f, -0.327306f, -0.0125202f, 0.117042f, -0.176187f, -0.0190128f, 0.197278f, -0.217185f, -0.0315534f, 0.134399f, 0.111707f, -0.0209549f, -0.031106f, 0.000980456f, -0.0344751f, -0.013308f, 0.0611571f, -0.000161216f, 0.0241673f, 0.0648266f, 0.0703964f, 0.0242412f, -0.0187867f, -0.0338899f, 0.00657438f, -0.0445215f, -0.169773f, 0.0956218f, 0.0909057f, 0.0852871f, -0.241662f, -0.190484f, 0.195497f, 0.156185f, -0.25315f, -0.112744f, -0.106812f, 0.0199603f, -0.0430618f, 0.155856f, 0.106557f, -0.0292814f, -0.0705643f, -0.143735f, 0.173328f, 0.0444628f, 0.0475904f, -0.00571793f, 0.119919f, 0.148988f, -0.113605f, -0.0873812f, 0.0740373f, -0.234946f, -0.0353761f, -0.0801363f, 0.00571723f, 0.0666818f, 0.0387933f, -0.217077f, 0.179162f, 0.134027f, -0.101175f, -0.118241f, -0.0661273f, -0.146799f, 0.0866247f, 0.113122f, 0.0239417f, 0.0326981f, -0.0424936f, -0.108572f, 0.11838f, -0.123527f, -0.0252232f, 0.0955635f, 0.0348381f, -0.0303951f, -0.0725884f, 0.0992143f, -0.147121f, -0.0613634f, -0.0911593f, -0.0852508f, 0.0669646f, 0.294105f, -0.0848637f, 0.0266982f, -0.0267238f, -0.166701f, -0.162148f, -0.130054f, -0.0902335f, 0.0877105f, -0.00874334f, -0.108486f, -0.106217f, -0.142801f, -0.161093f, 0.104237f, -0.131858f, -0.0732339f, -0.165013f, 0.108699f, 0.0500785f, -0.168363f, 0.0399249f, 0.0546885f, 0.0662023f, -0.203499f, 0.03743f, 0.0731003f, 0.0685354f, -0.105976f, 0.162781f, 0.217348f, -0.0551032f, 0.0451286f, 0.0748883f, 0.0254222f, -0.0661973f, 0.0745446f, -0.128732f, 0.031096f, 0.0908832f, 0.0906453f, 0.2506f, 0.250555f, -0.0697135f, -0.122738f, 0.1756f, 0.000260099f, 0.0539806f, -0.0466324f, -0.156344f, -0.0616403f, 0.341182f, -0.0559752f, 0.0181661f, 0.0612807f, -0.0903686f, -0.182398f, 0.0120244f, 0.172113f, 0.0381663f, -0.0282541f, -0.124235f, -0.00487799f, 0.107968f, 0.211537f, -0.0678314f, 0.0694064f, 0.100424f, -0.0957193f, -0.0984152f, -0.0707881f, -0.0510609f, -0.024911f, 0.0359275f, -0.243127f, -0.233421f, -0.192095f, 0.0635203f, 0.14259f, -0.0437946f, 0.194593f, -0.0652285f, 0.116718f, 0.0162953f, 0.0846186f, -0.0390633f, 0.149594f, -0.0676846f, -0.227827f, 0.213863f, 0.134415f, -0.0383253f, -0.040715f, -0.13408f, -0.22302f, -0.0797402f, -0.111815f, -0.230703f, -0.104345f, -0.0549785f, 0.0213897f, -0.0064211f, 0.0232962f, 0.122556f, -0.102869f, -0.00475803f, -0.035176f, -0.157549f, -0.0222432f, -0.0455815f, -0.0963518f, 0.041606f, 0.173025f, 0.056859f, -0.0777481f, 0.0976101f, -0.00827172f, -0.143197f, -0.107177f, 0.262812f, 0.088572f, 0.248366f, -0.132514f, 0.183667f, -0.151973f, -0.113187f, -0.00397444f, -0.0376475f, 0.084614f, 0.179496f, -0.187448f, 0.0148204f, -0.00179383f, -0.155606f, 0.18096f, -0.0589653f, -0.150711f, -0.266006f, 0.0104231f, 0.16127f, 0.0848243f, -0.187574f, -0.00274734f, 0.0178214f, 0.16873f, -0.30323f, -0.0056288f, 0.0145671f, 0.0241875f, 0.0299995f, -0.155251f, -0.187337f, 0.375994f, 0.0338783f, -0.00635721f, 0.474552f, 0.107297f, -0.256698f, 0.137061f, 0.0242993f, -0.129994f, -0.139906f, -0.215498f, 0.133543f, -0.113722f, 0.131896f, -0.273405f, -0.0837481f, 0.0473259f, 0.0492567f, -0.00504012f, -0.00317807f, 0.000937179f, -0.000316505f, 0.118962f, 0.0487411f, 0.0167468f, -0.0900726f, -0.127562f, -0.0454263f, -0.0460975f, 0.0211806f, -0.207244f, -0.00212613f, -0.0366351f, 0.00807379f, 0.0321872f, 0.269733f, 0.0768761f, -0.000750908f, 0.0872782f, -0.173035f, 0.0372039f, -0.0886042f, -0.221874f, 0.161285f, -0.11033f, 0.0263291f, 0.00258022f, 0.113366f, 0.220367f, 0.128648f, 0.248966f, 0.0589108f, -0.00267807f, 0.145065f, 0.0870094f, -0.061169f, -0.00414316f, 0.123462f, -0.145278f, -0.0951217f, 0.0498526f, 0.00102349f, 0.213634f, -0.0748731f, 0.114564f, 0.155182f, 0.13683f, 0.14083f, 0.0482739f, -0.14091f, -0.215375f, 0.153274f, 0.0660125f, 0.130146f, -0.0395233f, -0.127786f, 0.0631217f, 0.0642642f, 0.0751899f, -0.0337634f, 0.280671f, 0.213551f, -0.146806f, -0.192689f, -0.0290373f, 0.077568f, -0.0582605f, 0.0594207f, -0.179735f, 0.023364f, 0.188683f, 0.0503576f, -0.108071f, 0.0278328f, 0.13917f, 0.118695f, -0.0566065f, -0.0856421f, 0.0620006f, -0.156548f, -0.0297426f, -0.0498292f, 0.0806117f, 0.00263813f, -0.0840434f, -0.092111f, -0.0960338f, 0.101139f, -0.00119895f, -0.105355f, 0.0280035f, 0.045649f, -0.0146992f, -0.0988578f, -0.201236f, -0.0940582f, 0.265531f, 0.03361f, 0.225403f, 0.0402024f, -0.0484201f, -0.0237333f, 0.101498f, -0.179957f, 0.16261f, -0.245382f, -0.0335213f, 0.144803f, -0.155171f, 0.0569362f, 0.0439014f, 0.0256195f, 0.246063f, -0.00649742f, 0.0389034f, -0.000429136f, -0.143446f, -0.127693f, 0.0623036f, 0.144779f, 0.134677f, 0.091218f, 0.154878f, -0.171201f, -0.0082839f, -0.0345196f, -0.304308f, 0.157745f, -0.422785f, -0.0373721f, -0.0353909f, 0.46733f, 0.0023391f, -0.0450555f, -0.122961f, 0.140894f, 0.218777f, -0.145732f, -0.170946f, 0.327612f, -0.0390022f, 0.0202468f, 0.210708f, 0.0253381f, 0.274482f, -0.0881008f, 0.286927f, 0.027791f, -0.394659f, 0.0507294f, 0.118161f, -0.210931f, 0.123032f, 0.187515f, -0.082042f, -0.0189659f, -0.0256146f, -0.185972f, 0.153536f, -0.3176f, 0.106179f, -0.0216271f, 0.159845f, 0.100064f, -0.199297f, -0.176999f, 0.0531379f, 0.0572076f, 0.26009f, 0.173526f, -0.0692188f, 0.0307733f, 0.147166f, -0.075706f, -0.122291f, 0.213354f, 0.193951f, 0.260724f, -0.113038f, -0.180722f, 0.011184f, 0.109872f, 0.103247f, -0.118244f, -0.0303324f, -0.0123848f, 0.2431f, -0.0500287f, -0.0355421f, 0.120722f, 0.0960646f, -0.0690753f, 0.00891014f, 0.139056f, 0.0693387f, 0.0307749f, 0.0676161f, 0.0511248f, -0.171267f, -0.0644993f, -0.207625f, 0.0577355f, 0.177209f, -0.185523f, 0.0742723f, -0.507938f, 0.301201f, -0.0284937f, -0.0260339f, -0.0333649f, 0.00534737f, 0.0124782f, -0.443126f, 0.328205f, 0.0425777f, 0.0244719f, -0.207219f, 0.164614f, -0.307812f, -0.246656f, 0.283271f, 0.131308f, -0.108053f, -0.16013f, -0.0241312f, 0.153378f, 0.134108f, 0.00380752f, 0.167494f, -0.140547f, -0.1903f, -0.0910388f, -0.216038f, 0.120858f, -0.231629f, -0.0381414f, 0.316827f, -0.154853f, -0.106045f, -0.1876f, -0.14223f, -0.178555f, -0.108725f, -0.111643f, -0.309478f, 0.140711f, 0.0189928f, -0.106947f, 0.282443f, -0.112651f, 0.226738f, 0.0151069f, 0.122506f, -0.0472165f, 0.000616342f, 0.191258f, 0.181676f, -0.167357f, -0.133882f, -0.144336f, -0.0702248f, 0.00804034f, 0.0940327f, -0.116136f, 0.0933262f, -0.291929f, 0.0395786f, 0.210549f, 0.0500975f, -0.19127f, -0.176461f, -0.00596865f, 0.128983f, -0.305423f, -0.00388389f, 0.327751f, -0.0404362f, 0.306538f, -0.0448946f, 0.12906f, 0.0730795f, 0.15978f, 0.134912f, -0.143701f, 0.142633f, 0.0185597f, -0.152455f, 0.0579647f, 0.128911f, -0.00784992f, -0.158094f, 0.139189f, 0.0438796f, -0.0201949f, -0.244478f, 0.162462f, 0.17915f, -0.00852526f, -0.179463f, 0.098658f, -0.251208f, 0.153379f, -0.0243547f, -0.0220492f, -0.0124678f, -0.334834f, 0.0976444f, -0.0971709f, 0.0984967f, 0.00766598f, -0.219865f, 0.00365594f, -0.106081f, 0.0586617f, -0.119242f, -0.0325594f, 0.225901f, -0.00326368f, -0.00193783f, -0.189726f, -0.136702f, 0.2983f, -0.115936f, 0.0959898f, -0.0324264f, 0.237235f, 0.318963f, 0.154394f, 0.0111688f, -0.027074f, -0.117531f, 0.0742177f, 0.19986f, 0.180785f, 0.26903f, 0.0494572f, 0.0426041f, -0.224233f, -0.177986f, -0.0719041f, 0.000694181f, -0.112993f, 0.0685403f, 0.131449f, -0.039266f, -0.140058f, 0.122828f, -0.0250534f, -0.236327f, -0.146218f, -0.2391f, 0.143294f, 0.0948701f, 0.102751f, 0.155975f, 0.112803f, 0.147942f, -0.0169998f, 0.0691534f, -0.0469188f, 0.262676f, 0.0156155f, -0.0161684f, -0.0709821f, -0.081891f, 0.185461f, 0.291407f, -0.0925835f, 0.192624f, 0.0316601f, -0.0440816f, -0.147041f, 0.246714f, 0.0047676f, 0.131488f, 0.0265693f, -0.0412266f, -0.0180167f, 0.103678f, 0.0384013f, -0.0821056f, -0.0533621f, -0.103219f, 0.0994622f, -0.0584676f, 0.150284f, -0.145911f, 0.340194f, 0.170337f, -0.256247f, 0.0277867f, -0.0276867f, 0.102755f, 0.154491f, -0.30046f, -0.232832f, -0.234722f, -0.144723f, -0.21821f, -0.137098f, -0.0302338f, 0.150859f, -0.280832f, -0.30537f, -0.0603291f, 0.119582f, 0.0330379f, -0.365122f, -0.320672f, -1.40809e-05f, 0.0707852f, -0.230884f, -0.194294f, -0.0965643f, 0.0878382f, 0.0708009f, -0.0229178f, -0.369926f, -0.500266f, -0.0929187f, -0.0768158f, 0.252663f, 0.235686f, -0.0236544f, 0.0511912f, 0.168037f, 0.0382094f, 0.134533f, -0.23668f, -0.106805f, -0.150785f, 0.248506f, 0.0720868f, -0.298052f, -0.293057f, 0.275997f, 0.141557f, 0.0621771f, -0.0965101f, 0.158534f, -0.00851044f, 0.0434085f, -0.216821f, -0.127542f, -0.203763f, -0.00945462f, -0.125833f, -0.211767f, -0.230446f, 0.652701f, -0.190626f, 0.246168f, 0.120964f, -0.142236f, -0.0357915f, 0.0500529f, 0.0875442f, 0.0536124f, 0.241206f, 0.193537f, -0.218676f, -0.119002f, 0.041992f, -0.0885307f, 0.293758f, -0.163841f, 0.079306f, -0.104982f, -0.345563f, 0.143305f, 0.357549f, -0.0758573f, -0.0558464f, -0.133623f, -0.109157f, -0.0542312f, 0.0687339f, 0.0674252f, 0.32023f, 0.0173304f, 0.112303f, -0.0691228f, -0.0761123f, 0.0715082f, 0.0960405f, 0.359152f, -0.110312f, -0.286597f, -0.123798f, 0.193699f, -0.0182667f, -0.0214218f, -0.158052f, -0.0388003f, -0.165405f, -0.124724f, 0.0358105f, 0.204481f, 0.454524f, -0.0028894f, -0.112781f, -0.0914499f, -0.11464f, 0.348937f, -0.175571f, -0.267737f, 0.527902f, -0.145686f, -0.185881f, 0.0825289f, 0.219407f, 0.314733f, -0.139539f, -0.00127974f, 0.0295479f, 0.0755302f, -0.051948f, 0.146841f, 0.0884856f, -0.10299f, -0.000891297f, -0.122897f, -0.0386509f, -0.0821582f, 0.0297551f, 0.143373f, 0.116887f, 0.0535011f, 0.041097f, -0.0659517f, -0.0843174f, 0.0481385f, 0.0250976f, -0.12253f, -0.168791f, 0.131496f, 0.191165f, 0.0111601f, -0.134873f, -0.0312669f, -0.125494f, -0.0142697f, 0.0244548f, -0.213583f, 0.20983f, -0.0502698f, 0.0313432f, 0.153834f, 0.0729695f, 0.00240293f, -0.195943f, -0.00183631f, 0.111906f, -0.0020425f, 0.236681f, 0.218723f, 0.32315f, 0.0733008f, 0.0332943f, -0.16776f, 0.245011f, 0.27751f, -0.140391f, 0.246514f, -0.22695f, -0.00218857f, -0.0752455f, 0.285112f, -0.0899687f, -0.129157f, -0.175398f, 0.172649f, -0.212344f, -0.0525681f, -0.0685182f, 0.174577f, -0.0190277f, 0.0401829f, 0.231521f, -0.116764f, -0.26071f, -0.15899f, -0.0255752f, 0.166667f, -0.0325522f, -0.121976f, 0.172203f, 0.130324f, 0.184629f, -0.0959472f, 0.0747259f, 0.115112f, 0.149139f, 0.102056f, 0.148177f, -0.00871548f, 0.0447037f, 0.108962f, -0.0827588f, 0.235874f, 0.120867f, -0.114222f, 0.209831f, -0.00661829f, 0.126698f, -0.128517f, 0.0636738f, -0.0411958f, -0.0732912f, 0.188244f, -0.0339062f, -0.223295f, -0.0453834f, -0.0988065f, 0.210366f, -0.00219161f, 0.0253144f, -0.0302233f, -0.108046f, -0.0254965f, -0.15628f, -0.0401524f, 0.132105f, -0.125257f, 0.0155046f, -0.00605987f, 0.00517516f, -0.015107f, 0.133002f, -0.139957f, 0.0317405f, -0.0478421f, -0.0405365f, -0.000875544f, 0.272222f, -0.123044f, -0.00356942f, -0.00460324f, -0.158969f, 0.066255f, 0.0544351f, -0.0193967f, -0.0200716f, 0.186721f, 0.235499f, -0.0463968f, -0.118918f, -0.171111f, 0.0504444f, -0.0826477f, -0.222941f, 0.0105879f, 0.0583759f, 0.0809613f, 0.114229f, -0.10743f, -0.102528f, 0.0785313f, -0.11129f, -0.130054f, 0.154738f, -0.163842f, 0.138186f, 0.122526f, -0.171568f, 0.00258395f, -0.0285482f, 0.113907f, 0.014782f, 0.0459944f, 0.163853f, 0.0969198f, 0.125224f, -0.0861798f, -0.00732539f, 0.150534f, 0.104363f, -0.0258394f, 0.0296666f, -0.0750158f, -0.0064911f, 0.122987f, -0.0919499f, 0.190328f, 0.0839107f, 0.150256f, -0.0547121f, 0.139728f, 0.096763f, 0.0256977f, 0.151602f, 0.0627148f, 0.0912464f, 0.0434579f, 0.197998f, -0.0309472f, -0.201953f, -0.0740992f, -0.102034f, -0.0301665f, 0.087069f, -0.00206813f, -0.0209929f, -0.0496039f, -0.0574675f, 0.0696171f, 0.095803f, 0.168962f, -0.0957633f, 0.00651736f, -0.0863593f, 0.0160962f, -0.019676f, -0.0762854f, 0.0952564f, -0.0333924f, -0.0842379f, 0.113305f, 0.0782366f, -0.225293f, 0.0744996f, -0.0357735f, -0.0284779f, -0.0311396f, -0.0591802f, 0.217897f, 0.158072f, 0.139292f, -0.00265493f, 0.10617f, -0.0423332f, -0.12061f, 0.0745917f, 0.215699f, -0.0670804f, -0.139403f, 0.119277f, -0.0251717f, -0.0457095f, -0.271297f, -0.0954203f, -0.142922f, 0.0466997f, -0.0567314f, 0.0322519f, 0.183128f, 0.0405912f, 0.0269257f, 0.144718f, -0.0728f, 0.023755f, 0.102714f, 0.0274472f, 0.0367763f, 0.086788f, -0.114785f, 0.213459f, -0.104927f, -1.92141e-05f, 0.0989572f, -0.0386035f, -0.305744f, 0.133926f, 0.147469f, 0.0081229f, -0.089391f, -0.0774049f, 0.310475f, 0.136662f, 0.00443234f, 0.0807483f, 0.307383f, -0.233672f, 0.0718523f, -0.107308f, -0.122698f, 0.0520162f, 0.180528f, -0.0825348f, -0.119317f, -0.218474f, -0.199516f, 0.0595255f, 0.0705894f, 0.0705066f, 0.00119898f, 0.0834697f, 0.121511f, -0.0192368f, -0.0344052f, -0.0799028f, 0.232453f, 0.111848f, -0.14956f, -0.12843f, 0.107304f, -0.294341f, -0.118041f, -0.028806f, -0.00954942f, -0.113128f, 0.129816f, 0.113968f, -0.253181f, -0.0436445f, -0.0547656f, -0.083109f, -0.031169f, 0.0165382f, 0.144219f, -0.0667537f, 0.0799658f, -0.0534283f, -0.151086f, 0.152367f, 0.0705909f, 0.0136244f, -0.0248533f, -0.153981f, -0.0117819f, 0.124338f, -0.195925f, -0.0875223f, -0.0498656f, -0.00546649f, -0.157415f, 0.120868f, -0.217847f, -0.00747014f, 0.139008f, 0.0308138f, 0.174948f, 0.0379599f, -0.419573f, -0.0421128f, -0.15076f, -0.128234f, -0.399747f, -0.138003f, -0.176268f, -0.191536f, -0.116086f, -0.19161f, -0.135651f, 0.102977f, -0.174035f, -0.11989f, -0.289375f, -0.0269037f, -0.164844f, -0.110521f, -0.0193969f, 0.158818f, -0.0649461f, 0.0272995f, 0.203127f, -0.075261f, -0.0541612f, -0.034718f, 0.267095f, 0.242414f, 0.155915f, -0.139888f, 0.178919f, -0.00208344f, 0.048783f, -0.0688155f, 0.0401779f, 0.00947018f, 0.052976f, 0.235714f, 0.165201f, 0.21789f, 0.042555f, -0.0784562f, -0.0988402f, -0.133563f, -0.142095f, 0.195437f, 0.134691f, -0.028507f, -0.14029f, -0.110309f, 0.280205f, 0.0522563f, -0.0867971f, 0.211505f, 0.203897f, 0.230583f, 0.0620223f, -0.0885722f, 0.00910187f, 0.205021f, 0.000405968f, -0.0361292f, -0.232852f, -0.0744297f, 0.0328464f, -0.274288f, -0.0428812f, 0.145227f, -0.138138f, -0.120128f, -0.342282f, -0.124994f, 0.182048f, -0.162885f, -0.0133417f, -0.105576f, 0.0151236f, 0.130054f, 0.288931f, 0.0197585f, -0.00933206f, -0.0342413f, -0.0716162f, 0.0580278f, 0.0880912f, 0.0308257f, -0.0910991f, -0.188135f, 0.266534f, 0.102091f, 0.128478f, 0.101016f, -0.267586f, -0.127524f, 0.0348585f, 0.0690457f, -0.0341973f, -0.0265737f, -0.0312297f, -0.122296f, 0.1788f, 0.328916f, -0.101949f, -0.184807f, 0.167059f, -0.0505738f, -0.208924f, -0.0173454f, -0.243994f, 0.125009f, 0.23438f, -0.310651f, -0.0506112f, -0.0220081f, 0.0318968f, 0.0468319f, -0.224933f, -0.0453885f, 0.0128286f, 0.0070014f, 0.0734672f, -0.0427694f, 0.284536f, -0.171311f, 0.00121261f, 0.177816f, -0.20987f, -0.101286f, 0.192092f, -0.110846f, -0.0192952f, -0.201278f, 0.185684f, -0.00563996f, -0.20892f, 0.0277944f, -0.242785f, -0.158902f, 0.124738f, -0.0938823f, -0.16902f, -0.178647f, 0.111777f, 0.215915f, -0.122879f, -0.312532f, 0.11106f, 0.00586262f, 0.337496f, -0.0277829f, 0.0826386f, -0.134513f, 0.0561599f, -0.0633318f, 0.00833758f, 0.102018f, 0.0643186f, -0.0577517f, 0.0722753f, 0.107603f, -0.100045f, 0.193961f, -0.274957f, 0.212745f, -0.0623097f, 0.0743152f, -0.105337f, 0.157773f, -0.244946f, 0.0103067f, 0.0877623f, 0.0211531f, 0.35532f, -0.18108f, 0.134146f, -0.191034f, 0.290051f, 0.0859766f, 0.0284896f, 0.316838f, -0.0456518f, -0.036201f, -0.0822693f, -0.302218f, 0.252978f, 0.0449162f, 0.121582f, 0.0415657f, 0.183299f, 0.223984f, 0.00430309f, -0.0746364f, -0.000649097f, -0.239853f, 0.142087f, -0.0616643f, 0.0926331f, -0.168323f, -0.0748866f, -0.247321f, -0.451672f, 0.101181f, 0.0839173f, 0.0831689f, 0.0120782f, -0.151329f, -0.263753f, 0.244627f, 0.295822f, -0.37087f, -0.0492948f, 0.0358507f, 0.0630712f, 0.276456f, -0.116262f, 0.315451f, 0.0422413f, 0.00842691f, 0.0120324f, 0.370192f, 0.0543923f, 0.0721609f, -0.35587f, 0.145138f, 0.218339f, -0.200323f, 0.158493f, 0.30897f, -0.129063f, 0.0235842f, -0.215236f, 0.175066f, -0.243636f, -0.187146f, 0.199813f, -0.094984f, 0.131935f, 0.476013f, 0.338823f, -0.109925f, 0.00656249f, -0.0141714f, 0.242587f, 0.34552f, 0.11265f, -0.182246f, -0.00287467f, 0.225495f, 0.0333358f, 0.0372465f, 0.216675f, -0.167612f, 0.045551f, -0.147951f, -0.0307742f, 0.0747316f, 0.121755f, 0.0629486f, 0.0955348f, 0.226016f, 0.0688682f, 0.0246544f, 0.103173f, 0.0713445f, -0.228602f, 0.102503f, -0.107839f, -0.000401792f, 0.176827f, -0.0627224f, 0.183517f, -0.169182f, 0.0320252f, 0.14949f, 0.130398f, -0.184007f, -0.138867f, -0.181194f, -0.141598f, 0.161083f, -0.0306276f, 0.0477854f, -0.0100931f, -0.0388022f, 0.0790026f, 0.247882f, 0.00409456f, 0.14011f, 0.0640068f, -0.0315545f, -0.00138345f, -0.00481423f, 0.0691719f, 0.37396f, -0.239147f, -0.0776167f, 0.154481f, -0.0633831f, -0.119255f, -0.0348909f, 0.129578f, 0.287499f, -0.0644166f, 0.401109f, 0.011676f, 0.250777f, 0.111938f, -0.0371163f, -0.187918f, -0.103858f, 0.0371052f, 0.137288f, -0.116461f, 0.0617405f, 0.0201338f, 0.0225466f, -0.169858f, 0.0555158f, -0.0956674f, 0.133398f, 0.00314923f, 0.195622f, 0.00476205f, -0.0170167f, 0.164684f, 0.28637f, -0.173941f, -0.0362967f, 0.164474f, -0.284492f, -0.28111f, 0.0565879f, 0.244673f, 0.0572196f, 0.246841f, -0.325202f, 0.14234f, -0.0815422f, -0.0181287f, 0.162126f, 0.0408605f, -0.102529f, -0.226763f, -0.11186f, -0.0985526f, 0.214862f, -0.172483f, -0.0116937f, 0.173307f, -0.327722f, -0.437369f, 0.40638f, -0.287272f, 0.224261f, -0.0306213f, 0.260394f, 0.0966326f, -0.225246f, 0.238973f, -0.177871f, 0.235586f, 0.162727f, 0.0841997f, 0.160536f, 0.275431f, -0.149627f, 0.110861f, -0.154087f, -0.425786f, 0.130261f, 0.0716528f, 0.0409836f, -0.110701f, 0.461045f, -0.361693f, 0.015807f, -0.371822f, 0.148419f, 0.0255793f, 0.217645f, -0.108581f, -0.0389376f, -0.313884f, 0.0932176f, -0.423979f, -0.228861f, -0.240333f, 0.27269f, -0.107989f, -0.332945f, -0.282313f, -0.0608082f, 0.243831f, -0.155382f, -0.098858f, 0.0435978f, -0.433172f, -0.0804659f, -0.115818f, 0.413737f, 0.105655f, 0.0172065f, 0.048884f, -0.0336806f, 0.0840739f, 0.204009f, 0.0595325f, -0.420509f, 0.177748f, -0.0687246f, -0.00118229f, -0.073389f, 0.0313832f, -0.27273f, -0.0723976f, 0.0446143f, -0.131838f, 0.0478055f, 0.102231f, -0.166095f, -0.346842f, 0.12356f, 0.213285f, -0.12371f, -0.0718988f, -0.180855f, -0.073158f, 0.015039f, -0.185157f, 0.00316458f, 0.181192f, -0.0866025f, 0.0741709f, -0.12423f, 0.333584f, -0.343048f, 0.129604f, 0.149431f, -0.0115114f, 0.225677f, 0.0527133f, 0.00857879f, 0.0790247f, 0.154673f, 0.215207f, -0.0709531f, -0.21343f, -0.0888573f, 0.0214827f, -0.00969871f, -0.232879f, 0.120277f, -0.0646417f, -0.0443628f, -0.026641f, -0.144928f, -0.101378f, -0.260823f, 0.0515956f, -0.0917888f, -0.0498489f, 0.0298476f, 0.11373f, 0.086914f, -0.0828472f, 0.0568315f, -0.11411f, 0.115818f, -0.12643f, 0.016875f, -0.0903009f, 0.341159f, -0.149519f, -0.000371591f, -0.0266447f, -0.129431f, 0.222948f, -0.098544f, 0.192347f, -0.0284509f, -0.0284153f, -0.156013f, 0.101196f, -0.188328f, -0.00965158f, -0.121106f, -0.167088f, -0.0341888f, -0.164549f, 0.0839836f, -0.0885322f, -0.196608f, 0.0583453f, -0.0340103f, -0.0494013f, 0.191599f, -0.113682f, -0.0185121f, -0.262651f, 0.0923446f, 0.235696f, 0.247091f, -0.12801f, -0.211658f, 0.259982f, 0.140314f, 0.0146929f, -0.180685f, -0.0622463f, 0.0879193f, 0.232937f, -0.0526943f, 0.153704f, -0.077622f, 0.0455133f, -0.11218f, -0.0990732f, 0.0674574f, 0.0570589f, 0.164202f, 0.0339965f, 0.197254f, -0.174683f, 0.0498998f, 0.141689f, 0.147571f, 0.0193877f, -0.18647f, -0.133475f, -0.0076534f, 0.146951f, -0.205794f, -0.0384515f, 0.104198f, 0.15276f, -0.0629556f, -0.0820433f, -0.090687f, -0.00903888f, 0.0382938f, -0.0810992f, 0.239035f, -0.0993627f, -0.0816488f, 0.0870798f, 0.0841711f, 0.18314f, -0.166757f, -0.221521f, 0.189125f, 0.116533f, 0.285315f, -0.0847131f, 0.107338f, 0.0462977f, -0.26957f, 0.0701044f, 0.0495267f, 0.121689f, 0.0803907f, -0.0420371f, 0.244585f, -0.00377649f, -0.0336813f, -0.0986634f, 0.0261047f, 0.0756861f, 0.0337403f, 0.142146f, -0.0811403f, -0.141668f, 0.0747545f, -0.24055f, 0.0531579f, -0.0755408f, -0.176124f, -0.118882f, 0.176179f, 0.0533129f, 0.0722439f, -0.0727662f, 0.260822f, -0.0529594f, 0.102974f, -0.0375843f, -0.281068f, -0.189163f, -0.241333f, 0.184179f, -0.219188f, -0.123224f, -0.0506401f, -0.155873f, 0.0861494f, 0.126272f, 0.0042718f, 0.157928f, 0.0139474f, 0.117145f, 0.0318906f, 0.139365f, -0.0125629f, 0.108505f, -0.129882f, 0.033481f, 0.134671f, 0.267817f, -0.0645566f, -0.124872f, -0.138709f, 0.271667f, -0.0905768f, 0.18085f, 0.25451f, 0.0490461f, 0.0923021f, 0.193422f, 0.0144027f, 0.0791352f, 0.181794f, 0.059315f, -0.0652916f, 0.129875f, 0.107845f, -0.156679f, 0.275265f, 0.0617141f, 0.0362933f, -0.00423926f, -0.265083f, -0.115986f, 0.162085f, -0.00277069f, -0.0292779f, -0.145471f, -0.146343f, -0.189411f, -0.145561f, 0.28593f, 0.0982692f, 0.251902f, 0.100086f, 0.202061f, 0.281833f, -0.0704792f, 0.302938f, -0.053711f, -0.0170444f, -0.0166478f, -0.151337f, -0.0647992f, 0.0847721f, 0.0283694f, -0.172831f, -0.101557f, -0.241363f, -0.119522f, 0.0363835f, 0.00753285f, 0.0885571f, 0.058017f, -0.316059f, 0.273294f, 0.178711f, 0.0120666f, 0.27288f, -0.10263f, -0.0573329f, 0.104033f, 0.0339245f, 0.105277f, -0.0500396f, 0.228268f, 0.0979431f, 0.0699636f, -0.0350464f, 0.0273856f, -0.0345854f, -0.0380061f, 0.0128309f, 0.0570926f, 0.246697f, 0.11466f, -0.159423f, 0.259128f, 0.013269f, -0.206688f, -0.204074f, -0.271423f, 0.016393f, 0.215975f, 0.176307f, -0.214032f, 0.240739f, 0.0672757f, -0.0551071f, 0.097383f, 0.172943f, 0.139549f, 0.0647136f, -0.0259467f, -0.0700424f, 0.0349675f, -0.165962f, 0.0121204f, -0.117846f, 0.0802104f, -0.21474f, 0.186106f, 0.16742f, 0.0772826f, -0.147605f, 0.261145f, -0.0529418f, -0.272646f, -0.0457014f, -0.0909251f, 0.132638f, -0.116273f, 0.0119743f, -0.237729f, -0.0903592f, 0.285418f, 0.173607f, -0.00668836f, 0.0164177f, 0.0425932f, -0.265148f, 0.0136733f, 0.319883f, 0.222264f, -0.260614f, 0.107106f, -0.287761f, -0.17815f, 0.116978f, 0.0618007f, -0.252919f, -0.0337914f, 0.0526801f, -0.0642252f, 0.0781396f, 0.182849f, 0.0213598f, 0.0298028f, 0.297555f, -0.202407f, 0.0439746f, 0.148054f, -0.140754f, -0.0591849f, 0.290103f, 0.0957478f, -0.297603f, 0.157348f, 0.132907f, 0.0448458f, 0.189721f, -0.128266f, 0.0694121f, 0.0050622f, -0.15159f, 0.271734f, -0.112644f, -0.0783004f, -0.170283f, 0.183419f, 0.18145f, 0.172969f, -0.039142f, 0.21093f, -0.321716f, -0.116881f, 0.0634301f, 0.294064f, -0.122504f, 0.0895882f, 0.261569f, 0.0817492f, -0.0474775f, 0.204249f, -0.0143026f, 0.105572f, 0.207164f, 0.0711736f, -0.0515147f, -0.147139f, 0.120262f, 0.0483426f, -0.125196f, -0.166767f, 0.228689f, -0.0894695f, 0.214535f, 0.227768f, -0.0452725f, -0.00159362f, 0.073374f, 0.322812f, -0.0135203f, 0.100083f, 0.000394599f, 0.0165802f, 0.0619749f, -0.00105435f, 0.0264618f, 0.0080408f, 0.0710113f, 0.181453f, 0.147214f, 0.0542292f, 0.0359687f, 0.0331089f, -0.129015f, 0.193465f, 0.273518f, 0.194376f, 0.0105639f, -0.0519915f, 0.0112592f, -0.153553f, 0.130178f, -0.0743865f, 0.158864f, 0.344015f, 0.0080898f, 0.0288567f, 0.064544f, 0.150319f, 0.148862f, 0.172503f, 0.19548f, 0.0108469f, 0.0145232f, -0.35721f, -0.260343f, 0.108631f, -0.0825749f, -0.14461f, -0.265508f, -0.103465f, -0.110501f, -0.114271f, 0.187382f, 0.00769971f, -0.0515303f, 0.243144f, -0.262435f, -0.200132f, -0.00308448f, 0.151113f, 0.240994f, 0.0128608f, -0.116939f, 0.117154f, -0.0698424f, -0.154023f, -0.0570951f, -0.0462299f, -0.199795f, 0.0486972f, 0.0535646f, -0.113417f, -0.0563752f, 0.223288f, -0.168317f, -0.11491f, -0.230649f, -0.234935f, 0.0834883f, 0.148044f, 0.15249f, -0.232774f, 0.0487828f, 0.197196f, -0.332026f, 0.00728208f, -0.572528f, 0.119375f, -0.205489f, 0.140716f, -0.226626f, 0.188067f, -0.0699211f, 0.0522651f, -0.10992f, 0.203229f, -0.265028f, -0.137508f, 0.124103f, -0.111402f, 0.191699f, -0.0440614f, 0.083041f, -0.0763598f, 0.0554737f, 0.496283f, 0.127588f, 0.0424904f, 0.319689f, -0.0937031f, 0.178037f, 0.0329545f, -0.099885f, 0.047681f, 0.00225363f, 0.00932186f, -0.097142f, 0.200584f, -0.21877f, -0.144822f, 0.0503637f, -0.10962f, -0.294961f, 0.0622633f, -0.0945204f, 0.178623f, 0.046222f, -0.148302f, 0.104749f, 0.0216141f, -0.0732953f, -0.152065f, 0.0244573f, -0.0937943f, 0.0837335f, 0.21494f, 0.0551042f, 0.0624382f, 0.122519f, 0.140136f, 0.176733f, -0.211658f, -0.193599f, 0.00703761f, -0.0361198f, 0.247684f, 0.0154908f, 0.195963f, -0.0923127f, 0.308593f, -0.339414f, 0.0436548f, -0.335096f, -0.121705f, 0.0545581f, 0.10871f, 0.0863982f, -0.132649f, 0.22977f, -0.264864f, -0.0790019f, 0.124053f, 0.131271f, -0.195549f, 0.0197277f, -0.0765884f, -0.0669009f, -0.0170131f, -0.0288556f, 0.178714f, -0.186384f, -0.0613834f, 0.0623608f, 0.0782005f, 0.0570137f, -0.00258105f, -0.236939f, -0.00196897f, -0.170398f, -0.0486051f, 0.00553834f, 0.0726255f, 0.301277f, -0.106733f, 0.14825f, -0.113226f, -0.0986899f, 0.00890019f, -0.172024f, -0.157407f, -0.271115f, -0.244153f, 0.193622f, -0.227542f, -0.00848989f, -0.294353f, 0.151235f, 0.0557245f, -0.141013f, -0.107774f, -0.0542243f, -0.0108784f, -0.0910292f, -0.040062f, 0.00625952f, -0.237185f, 0.227019f, -0.160377f, -0.15021f, -0.0262765f, -0.014151f, -0.142871f, 0.240927f, -0.124794f, 0.101435f, -0.0361952f, -0.154434f, 0.157322f, -0.0266355f, 0.00546142f, -0.157811f, -0.243266f, 0.211632f, 0.211346f, -0.219517f, -0.210716f, 0.154093f, -0.0252615f, -0.140192f, 0.0570099f, 0.0232827f, -0.230065f, -0.0594737f, 0.00744784f, -0.281774f, 0.291877f, 0.00396617f, -0.262757f, 0.0601402f, -0.333685f, -0.285296f, -0.12299f, -0.268949f, 0.174364f, 0.0475616f, -0.0143828f, -0.0850821f, 0.277863f, 0.0247295f, 0.0756581f, 0.168589f, 0.0168318f, 0.056032f, -0.134405f, -0.170643f, 0.189878f, 0.171579f, -0.0309202f, -0.0675771f, 0.0951104f, 0.0885256f, -0.0997371f, -0.131162f, -0.207293f, 0.344219f, -0.22732f, -0.131178f, 0.122474f, -0.0681106f, -0.0398605f, -0.201557f, -0.207083f, 0.0371506f, -0.338254f, -0.0505895f, -0.0808808f, 0.0770213f, 0.0712419f, 0.141861f, 0.0805574f, -0.192869f, 0.0722147f, -0.0117639f, -0.144241f, -0.0694134f, 0.00702637f, -0.112039f, -0.214357f, -0.180198f, 0.0448053f, 0.160818f, -0.277478f, 0.0166397f, 0.11238f, 0.214027f, 0.175365f, -0.208501f, 0.286248f, -0.0650078f, -0.127911f, -0.0373919f, -0.0509889f, 0.0517831f, 0.225264f, 0.135154f, -0.00891192f, -0.203306f, -0.0241671f, -0.044512f, -0.0819036f, 0.267597f, -0.250647f, -0.0115368f, 0.118946f, -0.0317251f, 0.196634f, -0.0133786f, -0.0172618f, -0.0785291f, 0.0744916f, -0.036495f, 0.180036f, -0.080923f, 0.0394186f, 0.135526f, -0.211464f, -0.0485084f, -0.109094f, -0.132727f, 0.0440247f, 0.158075f, 0.0193534f, -0.0495425f, -0.180057f, 0.0773708f, 0.100345f, -0.159573f, 0.102486f, 0.0137401f, -0.059874f, 0.0301192f, 0.246048f, 0.139352f, 0.0450658f, 0.13773f, -0.0271161f, 0.260246f, 0.0287384f, -0.0921548f, -0.0455116f, 0.260023f, -0.103811f, 0.136845f, 0.158385f, -0.086951f, -0.235247f, -0.0171642f, 0.0707323f, -0.0623304f, -0.0882441f, -0.226997f, -0.0494024f, -0.0984094f, -0.0609721f, -0.100242f, -0.120163f, 0.028943f, -0.137417f, -0.0241126f, 0.209829f, -0.085003f, 0.0917465f, -0.0437446f, 0.131864f, -0.044073f, 0.186267f, 0.0228639f, -0.0271285f, 0.0748502f, -0.122824f, -0.184567f, -0.0527607f, -0.13716f, 0.168935f, 0.257987f, -0.0130409f, -0.186313f, -0.0140281f, -0.0363809f, 0.130572f, 0.169524f, 0.108677f, 0.100126f, -0.0732245f, 0.159483f, 0.0650782f, 0.0616794f, -0.0261898f, 0.00981123f, 0.133697f, 0.110967f, 0.0796911f, -0.157386f, -0.0378338f, -0.0664209f, -0.061405f, -0.0442931f, -0.105885f, 0.0990812f, 0.0378566f, -0.152937f, 0.0514644f, 0.15514f, -0.274692f, 0.159732f, 0.220479f, -0.0995004f, 0.254443f, 0.150193f, -0.213332f, 0.0195458f, -0.192022f, -0.245428f, 0.17412f, 0.00403883f, -0.0452215f, 0.0470753f, 0.154669f, -0.205159f, -0.134453f, 0.324552f, -0.32368f, 0.059586f, 0.199492f, -0.212933f, -0.0178726f, 0.161756f, -0.0147482f, -0.199114f, 0.0580916f, -0.350168f, -0.15313f, -0.0206475f, -0.380564f, -0.375749f, -0.0304038f, -0.043406f, 0.134299f, 0.425102f, -0.323958f, -0.0468657f, 0.134665f, 0.213246f, -0.0673999f, 0.223053f, 0.123379f, 0.188408f, -0.285978f, 0.0757514f, -0.31222f, 0.173892f, 0.129692f, -0.198978f, -0.39489f, 0.0308045f, -0.0950173f, 0.23907f, 0.194137f, 0.166093f, -0.136545f, 0.140586f, 0.0826647f, -0.0192378f, 0.261779f, 0.17875f, 0.0770905f, 0.238539f, -0.0435857f, 0.0906504f, -0.274971f, 0.218681f, 0.0811507f, 0.0746941f, 0.143915f, 0.0394882f, 0.014954f, 0.0612034f, -0.144403f, 0.224216f, -0.064476f, 0.236028f, 0.0558803f, -0.424085f, 0.202011f, 0.0178787f, 0.0591903f, -0.468514f, 0.300725f, -0.161961f, -0.266331f, 0.114647f, 0.0434961f, 0.146649f, -0.175067f, -0.364267f, 0.0271197f, -0.0515332f, -0.314349f, -0.0694535f, 0.262004f, 0.0455883f, -0.222781f, 0.239161f, 0.134252f, 0.0507235f, -0.118579f, -0.00203042f, 0.0749627f, -0.182881f, -0.104238f, 0.161184f, -0.0323719f, 0.212296f, 0.315999f, -0.254507f, -0.17113f, -0.115831f, 0.237513f, 0.221442f, 0.0829483f, -0.129706f, -0.0198613f, -0.0349749f, -0.00784726f, 0.0708251f, 0.0645035f, -0.0407304f, -0.18344f, 0.230274f, -0.137138f, 0.214122f, 0.116069f, 0.016122f, -0.0589521f, 0.133947f, 0.0714678f, 0.118283f, 0.150917f, 0.00367608f, 0.261061f, 0.0117614f, -0.162507f, -0.0851256f, -0.00731317f, -0.102604f, -0.00753987f, 0.0132154f, -0.194438f, -0.16703f, 0.186557f, 0.143654f, -0.183927f, -0.0622031f, -0.0569744f, -0.205009f, 0.106624f, -0.203137f, -0.0874095f, -0.108133f, -0.163018f, 0.0795648f, -0.0144689f, 0.287479f, -0.262636f, -0.0478936f, 0.132987f, -0.265109f, 0.0976932f, -0.199621f, 0.03854f, -0.406723f, 0.0149914f, 0.272741f, 0.200249f, 0.00532028f, -0.146269f, 0.0321364f, -0.0388347f, 0.0529647f, 0.0201765f, 0.164203f, -0.0303618f, 0.0751264f, -0.167343f, -0.0723903f, 0.156583f, -0.00632052f, 0.0141837f, -0.035274f, -0.0356573f, -0.00516673f, -0.198046f, -0.134184f, -0.124062f, -0.283729f, 0.181499f, -0.272663f, 0.0897418f, -0.0946468f, 0.117792f, -0.0946838f, 0.136179f, -0.18173f, 0.210815f, 0.227274f, 0.0187739f, -0.049741f, -0.234952f, -0.0340209f, -0.153493f, 0.223202f, 0.189601f, -0.125249f, 0.0395711f, -0.076397f, 0.126489f, 0.248829f, -0.0238176f, -0.193874f, 0.161994f, 0.159808f, 0.00746535f, 0.0295067f, -0.0769597f, 0.00854966f, -0.0102326f, -0.0275738f, -0.176129f, 0.0514683f, 0.15078f, 0.0922255f, -0.117133f, 0.301623f, 0.0872867f, 0.112477f, 0.219551f, 0.0258256f, 0.174821f, 0.246199f, 0.14642f, -0.0527364f, 0.0100021f, -0.0836989f, -0.0103375f, -0.0454256f, 0.0269475f, 0.14796f, -0.0242866f, -0.0201065f, -0.145715f, -0.0254228f, -0.288486f, -0.00520562f, -0.11914f, 0.00892603f, -0.0278421f, -0.175168f, -0.0888917f, -0.0168307f, 0.20569f, -0.14654f, 0.2989f, -0.0281576f, 0.119515f, 0.0215177f, -0.204236f, -0.00926779f, 0.0412196f, 0.0200168f, 0.0521672f, 0.0602909f, -0.00389861f, -0.0198017f, 0.111994f, -0.11554f, -0.050677f, -0.0840759f, -0.09338f, 0.172569f, -0.0530751f, 0.0409551f, -0.219871f, 0.134608f, 0.00627383f, 0.0386767f, 0.137216f, -0.200724f, -0.134712f, -0.239675f, -0.0357586f, -0.081626f, 0.0115346f, -0.0571935f, 0.0185505f, -0.011037f, 0.155139f, -0.0987448f, -0.0599477f, 0.0485575f, 0.0318583f, 0.0473491f, -0.0848503f, 0.243429f, -0.0309288f, 0.204113f, -0.0565119f, 0.0395426f, -0.0261843f, -0.065043f, 0.00755872f, 0.130307f, 0.0106237f, -0.142451f, 0.0707839f, 0.140018f, 0.103136f, 0.0664175f, 0.0681803f, 0.147232f, 0.0935643f, -0.0363601f, -0.0619863f, 0.131986f, -0.00163213f, 0.0120874f, -0.140178f, 0.0661494f, 0.053985f, 0.0697505f, 0.207324f, -0.153346f, -0.15297f, 0.0299333f, 0.0310756f, 0.154338f, -0.102873f, 0.122709f, -0.122352f, 0.0614207f, 0.136526f, -0.126507f, -0.157365f, 0.0309471f, 0.121778f, -0.0458265f, 0.175128f, 0.104812f, -0.00134986f, 0.0835941f, 0.0819896f, -0.102479f, -0.106792f, -0.0809712f, -0.0439138f, 0.0689133f, 0.0111069f, -0.109763f, -0.0130294f, -0.0535521f, -0.116074f, 0.0173375f, -0.0566417f, -0.0432933f, -0.125427f, 0.0314454f, -0.0883429f, -0.213191f, 0.0755124f, 0.0268685f, -0.0301281f, -0.0143076f, -0.139835f, -0.0904453f, 0.162247f, 0.0626105f, -0.0337931f, -0.165112f, 0.025084f, -0.131147f, 0.0189194f, -0.0315075f, -0.0290538f, -0.0653785f, 0.0437099f, -0.0194227f, -0.0417909f, -0.229515f, 0.0275145f, 0.116414f, -0.0960438f, -0.158035f, -0.049637f, -0.182833f, 0.140691f, -0.0401351f, 0.0548962f, 0.190909f, 0.122942f, 0.00463363f, -0.00497399f, -0.104352f, 0.0463763f, 0.175121f, 0.0375413f, -0.173699f, 0.132763f, -0.0238816f, -0.00333696f, -0.101328f, -0.0877253f, 0.252385f, 0.0708487f, 0.081431f, 0.0608155f, 0.0371568f, -0.21436f, 0.145997f, -0.0844266f, -0.224949f, 0.0628493f, 0.200389f, -0.0277002f, 0.133552f, 0.0588476f, -0.0377838f, -0.0450081f, 0.117017f, 0.0358108f, -0.119498f, -0.130531f, -0.074977f, 0.093081f, 0.15672f, 0.0126434f, -0.0449862f, 0.0199697f, 0.120978f, 0.108527f, 0.0226843f, -0.0728994f, 0.201356f, -0.155799f, 0.172346f, -0.0767787f, -0.0923348f, -0.172239f, -0.0294296f, -0.0653379f, -0.0769389f, -0.0725007f, 0.0563398f, 0.0446221f, -0.136024f, 0.0587123f, -0.00510335f, 0.150592f, -0.0725581f, 0.00887673f, 0.110592f, -0.0244099f, -0.00103945f, 0.061193f, -0.248432f, 0.133764f, -0.104291f, 0.0674928f, -0.0911527f, -0.0977453f, 0.196226f, -0.208693f, -0.092953f, 0.0778817f, 0.181246f, -0.0248469f, 0.140057f, -0.0101066f, 0.132959f, 0.0574091f, 0.0755868f, -0.197703f, -0.0921152f, 0.105837f, 0.0781593f, 0.0398288f, 0.0362362f, 0.224653f, 0.0461569f, -0.032872f, -0.213119f, -0.0322515f, 0.0407024f, 0.0634403f, -0.0129347f, 0.0336725f, 0.0175267f, 0.104608f, 0.0468137f, 0.112898f, -0.00656975f, -0.100392f, -0.0503954f, 0.0838701f, 0.139162f, -0.0550456f, 0.00851639f, 0.0891078f, 0.104949f, -0.064676f, 0.0679577f, 0.0858215f, -0.138169f, 0.14904f, 0.151121f, 0.0699467f, 0.00762684f, 0.0189345f, 0.0548286f, -0.0533644f, -0.0136968f, 0.103487f, -0.0349103f, -0.105408f, 0.0877333f, -0.0860072f, 0.231571f, 0.0279016f, -0.0795237f, 0.103044f, 0.0488643f, -0.0170039f, 0.246171f, -0.0139882f, -0.288654f, -0.262087f, -0.0569171f, 0.0105444f, -0.174504f, 0.0271695f, -0.142185f, -0.253463f, 0.118333f, -0.00712824f, 0.055093f, 0.199273f, -0.187491f, -0.0348716f, 0.149445f, 0.366594f, 0.04657f, 0.193509f, -0.298201f, 0.169268f, -0.269417f, -0.0192082f, 0.124852f, 0.141995f, 0.332551f, 0.145933f, -0.112818f, -0.223242f, -0.0965882f, -0.273264f, -0.195129f, 0.110837f, 0.0270661f, -0.122475f, 0.117405f, -0.275434f, 0.0833883f, -0.0740582f, -0.00861664f, 0.212966f, 0.17841f, -0.0883723f, 0.176021f, 0.0480749f, 0.231965f, -0.0289243f, 0.194918f, 0.0338466f, -0.0934493f, -0.107009f, 0.131017f, -0.0127987f, -0.181726f, 0.109899f, -0.0168084f, 0.216683f, 0.0742118f, -0.0180399f, 0.156275f, -0.16646f, 0.0623701f, -0.025427f, -0.238839f, -0.210953f, 0.0835969f, -0.0454182f, 0.279361f, -0.339695f, 0.171684f, -0.15275f, -0.124615f, -0.0929336f, -0.0916807f, -0.145774f, 0.113419f, 0.0733559f, -0.150571f, 0.00904091f, 0.194517f, 0.0634037f, 0.0162086f, -0.124397f, 0.156202f, -0.26306f, -0.221326f, -0.227324f, 0.148744f, -0.274649f, -0.191393f, 0.191741f, -0.234174f, 0.210825f, -0.186038f, -0.0146785f, 0.0103838f, 0.055385f, -0.190101f, -0.0596029f, 0.154925f, -0.108291f, 0.0430289f, -0.0806836f, -0.0177151f, 0.0104008f, -0.0283379f, -0.121364f, 0.043825f, -0.00524693f, 0.19932f, -0.154856f, 0.00971561f, -0.0997675f, 0.217839f, 0.292694f, -0.356435f, -0.0177019f, -0.142402f, 0.147037f, -0.123947f, 0.083869f, -0.240633f, 0.119605f, -0.157381f, 0.241803f, 0.0688848f, 0.1574f, -0.22539f, -0.0512491f, -0.0615857f, -0.0510699f, 0.114001f, 0.0291299f, 0.0227282f, -0.102834f, 0.170023f, -0.00659005f, 0.050083f, -0.190277f, 0.0208325f, -0.101735f, 0.0181291f, 0.140095f, 0.125847f, 0.123997f, -0.151408f, -0.145072f, 0.0865725f, -0.0574012f, 0.0124688f, 0.0649524f, -0.0847145f, 0.129242f, 0.18985f, -0.0306102f, 0.0165129f, 0.110406f, -0.0872625f, 0.136563f, 0.0247774f, 0.176566f, -0.0416785f, -0.23419f, -0.0410233f, -0.170146f, 0.0503827f, 0.0443741f, 0.10016f, -0.151841f, 0.574431f, -0.0455569f, 0.0716158f, 0.0716527f, -0.0428523f, -0.0251854f, 0.105948f, -0.0884205f, 0.0260292f, -0.199132f, 0.0294151f, 0.0162653f, 0.027603f, 0.198754f, -0.0329775f, 0.0281642f, -0.0888668f, -0.218378f, -0.220601f, -0.0564913f, -0.402933f, -0.0929991f, -0.00517123f, 0.179613f, 0.110838f, 0.17672f, -0.18175f, 0.0742874f, 0.0171746f, 0.0197798f, -0.108308f, -0.122193f, 0.0313312f, 0.00653167f, 0.102789f, -0.0127369f, 0.143006f, 0.0507391f, -0.291598f, 0.186601f, 0.168522f, 0.0914509f, -0.113842f, -0.101045f, -0.0254492f, -0.0898452f, 0.0544035f, -0.153698f, -0.10893f, -0.00855801f, -0.0112952f, -0.205897f, -0.0703899f, 0.00759952f, -0.0877801f, 0.192753f, 0.293798f, -0.076164f, -0.0494375f, -0.141564f, -0.127357f, 0.0193407f, 0.136238f, -0.0206397f, 0.142428f, 0.0489159f, 0.189372f, 0.0103187f, 0.113303f, 0.126184f, 0.00746075f, -0.103832f, -0.0406282f, 0.0914793f, -0.022311f, 0.103906f, -0.158537f, 0.131825f, -0.204772f, 0.161537f, 0.0977582f, -0.0590326f, 0.0485063f, -0.139755f, -0.141727f, 0.159517f, -0.00205985f, -0.00795322f, 0.0150025f, 0.0822175f, 0.0748579f, -0.108819f, 0.196463f, 0.144164f, -0.0301441f, 0.0737261f, -0.0475687f, 0.24039f, 0.0844472f, -0.123579f, 0.214486f, 0.00738305f, 0.0170748f, 0.125822f, 0.201902f, -0.0610637f, -0.298285f, 0.0039999f, 0.0533926f, -0.0895242f, -0.170235f, -0.00939497f, -0.11087f, 0.275482f, -0.14503f, 0.0269484f, 0.148339f, 0.0739198f, -0.0577057f, -0.167838f, -0.0396346f, 0.355486f, 0.0489585f, 0.124646f, 0.0869917f, -0.100127f, -0.051437f, -0.120533f, -0.406616f, 0.231197f, 0.154313f, -0.0344513f, 0.164414f, 0.225122f, 0.0452231f, 0.0323642f, 0.13471f, 0.147264f, 0.00673159f, 0.148038f, -0.101793f, -0.0801553f, 0.0753301f, -0.0367921f, -0.023931f, 0.080545f, -0.0828865f, 0.097468f, 0.0811133f, -0.0603257f, -0.209155f, 0.0825109f, -0.115797f, 0.0861479f, -0.0851174f, 0.311155f, -0.0829896f, -0.152755f, -0.0226293f, -0.0224439f, 0.130581f, 0.0108727f, 0.124827f, -0.0120493f, -0.24035f, -0.0741083f, 0.237194f, 0.196706f, -0.118051f, -0.0146135f, 0.152694f, 0.0590549f, -0.0347809f, 0.000487754f, -0.0389253f, 0.0212003f, 0.230992f, -0.0101826f, -0.0365838f, -0.00166607f, 0.168564f, -0.0962236f, 0.047975f, 0.0169091f, -0.144682f, 0.0671242f, -0.00381746f, 0.113927f, 0.0141315f, -0.142411f, -0.0098794f, -0.14212f, -0.323134f, 0.0391167f, -0.356024f, 0.0123153f, -0.199048f, 0.00840489f, 0.189009f, 0.0673312f, -0.139182f, 0.17714f, -0.157461f, 0.168125f, 0.0805141f, 0.0358546f, -0.10233f, -0.14218f, -0.0668481f, 0.032223f, -0.0126141f, 0.165048f, 0.0309734f, 0.0088312f, -0.0613519f, 0.0519334f, -0.0637242f, -0.0789481f, -0.197438f, 0.0956872f, -0.252073f, -0.0575084f, 0.180256f, -0.247088f, 0.0833065f, -0.102398f, -0.042328f, -0.0937688f, -0.21536f, 0.0594203f, 0.197064f, 0.133689f, -0.137797f, -0.286477f, -0.20025f, -0.154549f, -0.124482f, -0.0635357f, -0.157586f, -0.0156394f, 0.0915719f, 0.00536834f, 0.0710127f, -0.0283057f, 0.0326434f, -0.154119f, 0.105164f, -0.0808451f, 0.160212f, -0.0338239f, -0.0874643f, 0.0477339f, -0.0403781f, 0.0496958f, 0.116713f, -0.063688f, 0.342488f, -0.027725f, -0.0885305f, 0.0345504f, 0.0658889f, -0.0911711f, -0.0291442f, -0.156792f, -0.0377802f, -0.211962f, -0.2623f, -0.195795f, 0.176881f, -0.0460433f, 0.0234272f, -0.170903f, -0.217777f, 0.0194124f, -0.111418f, -0.00304095f, -0.0739236f, 0.122953f, -0.0558773f, 0.207771f, 0.209653f, 0.0666438f, -0.193708f, 0.020577f, 0.108064f, 0.0173129f, 0.100023f, -0.166357f, -0.0279224f, 0.00248337f, -0.00407191f, -0.0235615f, -0.116249f, 0.159291f, -0.0467269f, 0.142955f, 0.212259f, 0.192359f, -0.0919974f, 0.08892f, -0.0768545f, 0.0526198f, 0.023703f, 0.130248f, -0.0231326f, -0.0570569f, 0.305542f, -0.10807f, 0.0565405f, -0.0277837f, 0.150618f, -0.0108615f, 0.101477f, -0.0147715f, 0.118254f, -0.649865f, -0.0860173f, -0.0823583f, -0.0422734f, -0.0119103f, 0.121402f, 0.0108524f, -0.235261f, -0.103149f, 0.136159f, -0.0914081f, 0.113044f, 0.067296f, 0.0360658f, -0.00475364f, -0.0211597f, 0.0325725f, 0.0935267f, -0.155353f, -0.000367768f, -0.239279f, -0.200025f, 0.082654f, -0.137893f, -0.0480104f, -0.156833f, -0.129354f, -0.111053f, -0.117717f, -0.127165f, 0.205794f, 0.11333f, -0.000469568f, -0.0629222f, 0.144339f, 0.154204f, -0.053497f, 0.181899f, -0.351227f, 0.0504983f, -0.169574f, -0.336606f, 0.36372f, 0.2397f, 0.0359273f, 0.0131068f, -0.084584f, 0.126092f, -0.210842f, 0.0358585f, 0.123024f, -0.111366f, -0.163552f, 0.0677402f, 0.138755f, 0.0328021f, 0.293422f, -0.360427f, 0.107458f, -0.239493f, -0.0130194f, 0.189873f, -0.317672f, 0.0320583f, -0.046355f, 0.101533f, 0.101869f, 0.0611868f, -0.0852838f, 0.0288481f, 0.115312f, -0.0567555f, 0.0481849f, 0.0412466f, -0.0640176f, 0.0377692f, -0.0440575f, -0.120669f, 0.0626605f, -0.1758f, 0.118301f, -0.154009f, 0.116189f, -0.0036859f, 0.128822f, -0.0734816f, 0.0255649f, -0.161662f, -0.0595956f, -0.083512f, 0.159778f, -0.110411f, -0.31802f, -0.0404446f, 0.00201306f, -0.128979f, 0.0229432f, 0.0716273f, -0.22342f, -0.0620533f, -0.169001f, 0.00741788f, -0.274553f, -0.10846f, -0.294465f, 0.205632f, 0.0491971f, 0.0142046f, 0.0434943f, 0.0963514f, 0.128491f, -0.241876f, -0.0666986f, 0.0218622f, -0.063865f, 0.247988f, -0.156872f, -0.0271942f, 0.322414f, 0.00868895f, 0.0525344f, -0.0249777f, 0.127647f, 0.234345f, 0.128846f, 0.399996f, 0.0955461f, -0.157991f, -0.532626f, 0.0220011f, 0.00756872f, -0.0595169f, 0.156825f, 0.181118f, -0.0503621f, 0.292548f, 0.0661806f, -0.130019f, -0.238703f, 0.114038f, -0.0832564f, -0.139603f, 0.0338439f, -0.379196f, 0.134583f, -0.0464168f, -0.0910463f, -0.0630293f, -0.0548992f, -0.0953034f, 0.0722291f, 0.159005f, -0.0319896f, -0.175887f, -0.0193868f, -0.00780325f, -0.0739684f, -0.0462178f, 0.0380237f, 0.059149f, 0.187614f, 0.0904608f, -0.0302717f, -0.261361f, 0.148331f, 0.143574f, 0.115089f, -0.0169751f, 0.104402f, 0.122052f, 0.0777389f, -0.187611f, 0.0945008f, 0.0463701f, 0.0740723f, -0.171125f, 0.0968305f, 0.0575397f, 0.00102536f, -0.146862f, 0.219519f, 0.112273f, 0.09039f, -0.13336f, -0.130772f, 0.0419681f, 0.00822668f, -0.00260739f, 0.0521549f, 0.0781913f, 0.0747073f, 0.0134739f, 0.222992f, 0.00147319f, -0.00740546f, 0.0397139f, 0.0881712f, -0.184451f, -0.215856f, -0.0542363f, -0.0207727f, -0.077627f, -0.0676665f, 0.041011f, 0.155653f, 0.0716052f, -0.156236f, 0.0313979f, 0.0357781f, 0.1102f, -0.176874f, 0.0688386f, -0.00685053f, 0.00469151f, -0.149237f, 0.113822f, -0.0454274f, 0.0954553f, 0.0105803f, -0.102935f, -0.0465753f, -0.155449f, -0.00542124f, 0.124622f, -0.051691f, -0.00300001f, 0.0750214f, 0.032135f, 0.251378f, -0.045328f, 0.0313864f, -0.092514f, -0.150795f, -0.225221f, 0.151488f, 0.212236f, 0.138209f, 0.178149f, -0.133585f, -0.0245711f, 0.102659f, -0.0175287f, -0.051079f, -0.0912454f, 0.092807f, 0.0238355f, -0.0752863f, -0.192988f, -0.100221f, 0.000133353f, -0.0674069f, -0.0238756f, 0.117519f, -0.0251561f, 0.220711f, -0.120447f, 0.252455f, -0.0583363f, -0.152544f, 0.135032f, 0.0717845f, -0.262345f, 0.0415921f, -0.157636f, -0.228982f, 0.107234f, -0.0611044f, 0.114829f, -0.0204f, 0.110949f, -0.0745116f, 0.0598003f, 0.159444f, -0.0261279f, -0.00191903f, 0.108826f, -0.123147f, -0.0503838f, 0.0675565f, 0.219643f, -0.102381f, -0.0824908f, -0.0522904f, -0.180755f, -0.0776419f, -0.0363883f, -0.0733374f, -0.233021f, -0.296692f, -0.137653f, -0.137146f, -0.20959f, 0.0628126f, -0.22827f, 0.0102458f, -0.158075f, 0.175563f, 0.10977f, -0.0688984f, 0.258859f, -0.0792447f, -0.0659204f, 0.0461134f, -0.0365472f, -0.146938f, -0.166239f, -0.0404082f, -0.302914f, -0.0804045f, 0.161252f, -0.224191f, 0.310428f, 0.143651f, 0.340479f, -0.128151f, 0.112155f, 0.0380171f, -0.209869f, 0.147745f, -0.0360178f, 0.171178f, 0.0543541f, -0.167607f, 0.0519839f, 0.0677872f, -0.0924961f, -0.0284414f, 0.00926477f, -0.0827008f, -0.363238f, -0.0288787f, -0.0392469f, 0.129773f, -0.0417498f, -0.422719f, 0.00996854f, -0.188784f, -0.0548731f, 0.132722f, -0.200015f, -0.074654f, 0.068124f, 0.00231264f, -0.0142828f, -0.157218f, -0.0990318f, -0.150195f, -0.244769f, 0.153242f, -0.172053f, -0.0391876f, -0.107422f, 0.122345f, 0.108583f, -0.202754f, -0.121211f, -0.0627403f, -0.0132384f, -0.100206f, -0.0100539f, -0.0204408f, -0.0512729f, -0.14089f, 0.240841f, -0.129194f, 0.066736f, 0.0417419f, 0.122064f, -0.274008f, -0.0992203f, -0.0207528f, 0.0227957f, -0.0860615f, 0.352242f, 0.261553f, -0.0948348f, 0.156217f, -0.168993f, -0.0940958f, 0.21486f, 0.106863f, 0.033012f, 0.0860718f, 0.0438189f, -0.0292567f, 0.316021f, 0.111967f, -0.0773718f, 0.0851438f, 0.0293792f, 0.069296f, 0.0926352f, -0.109111f, -0.129652f, 0.152013f, -0.172746f, 0.0403263f, 0.129556f, -0.265441f, 0.144895f, 0.28294f, 0.0143962f, -0.11048f, 0.036435f, -0.0980939f, -0.242744f, 0.190834f, 0.139122f, 0.212468f, 0.00312183f, -0.236582f, -0.161764f, -0.207575f, 0.098263f, 0.256966f, -0.150522f, -0.249358f, 0.0023612f, -0.143612f, -0.0126354f, -0.107963f, 0.00148479f, 0.0467188f, -0.00669704f, 0.116372f, 0.117236f, -0.207108f, -0.0610753f, 0.140775f, -0.0836804f, 0.0305508f, 0.228932f, -0.0862196f, -0.221564f, 0.115287f, 0.0659275f, -0.150639f, 0.145056f, 0.138199f, -0.109965f, -0.22946f, -0.169289f, 0.181133f, 0.190317f, 0.0832077f, -0.0554291f, -0.106147f, -0.060491f, 0.309896f, -0.0520282f, 0.0116698f, -0.0321636f, 0.174419f, -0.0556924f, 0.140573f, 0.0397924f, -0.147922f, -0.209693f, -0.0049641f, 0.0215465f, 0.0193906f, -0.134444f, -0.0572165f, 0.157291f, -0.197329f, 0.226558f, -0.00331654f, 0.0680188f, 0.118837f, 0.0721545f, 0.037649f, -0.0419835f, -0.272743f, -0.0290203f, 0.159449f, 0.129127f, 0.00723611f, 0.00789504f, -0.00193196f, -0.0718082f, 0.0188224f, -0.132487f, -0.0348921f, -0.0723454f, -0.205331f, -0.0546232f, 0.113489f, -0.0547952f, 0.255281f, -0.0899326f, 0.052652f, 0.13928f, 0.0695118f, -0.13132f, 0.206278f, -0.0289374f, 0.0447808f, 0.0713743f, 0.0798243f, -0.0431947f, -0.145036f, -0.120815f, 0.121001f, 0.0649904f, 0.295107f, -0.0537525f, -0.0600162f, 0.06735f, -0.0863771f, 0.271836f, 0.139099f, 0.0109012f, -0.0421582f, -0.0117912f, 0.0622899f, -0.127784f, 0.103729f, 0.0389524f, -0.166657f, -0.128223f, -0.135882f, -0.166365f, 0.0825532f, -0.0421251f, -0.17298f, 0.203412f, -0.104101f, 0.174961f, 0.13591f, 0.0157894f, 0.124492f, 0.0456917f, -0.0756126f, -0.0993396f, 0.0628403f, 0.0720377f, 0.0775463f, 0.137808f, 0.194383f, -0.035832f, -0.162113f, -0.124156f, -0.0805626f, 0.121284f, -0.210226f, 0.0996575f, 0.00997542f, -0.109496f, -0.224897f, -0.0432754f, 0.0939068f, 0.0226619f, 0.0657021f, 0.161718f, 0.0281541f, 0.0318949f, 0.200322f, -0.248436f, -0.0519788f, -0.189302f, -0.183452f, -0.0800766f, 0.13426f, 0.212211f, 0.127992f, -0.0503858f, 0.229288f, 0.217819f, -0.0957542f, 0.0758903f, -0.0578665f, 0.0491318f, 0.000133374f, -0.0920832f, -0.0473626f, 0.112079f, -0.0347347f, 0.0523449f, 0.0858786f, -0.193451f, 0.110988f, -0.0204985f, -0.246703f, -0.246613f, 0.104546f, -0.113113f, 0.092671f, 0.0220944f, -0.0126991f, -0.0339289f, 0.0868368f, 0.0511616f, -0.0306581f, 0.10341f, 0.0451657f, -0.093398f, -0.164362f, 0.0309771f, -0.0422606f, -0.112463f, 0.0716642f, 0.218309f, -0.0909725f, -0.113803f, -0.0562281f, -0.117106f, 0.156094f, -0.0934949f, -0.193522f, -0.0183564f, -0.246537f, 0.00563729f, 0.106296f, -0.0280019f, -0.129267f, 0.0551759f, -0.0442757f, -0.058262f, 0.151415f, 0.0735549f, 0.163618f, -0.082806f, -0.00814127f, 0.215156f, 0.29605f, 0.175946f, 0.0107986f, -0.311806f, -0.0119848f, -0.0628416f, 0.0623615f, -0.201627f, 0.166947f, -0.319559f, 0.0323866f, -0.111911f, 0.238917f, -0.0344027f, 0.174278f, -0.117473f, -0.0663613f, 0.201747f, -0.301362f, -0.05835f, -0.209986f, 0.0287459f, -0.14645f, -0.0870958f, 0.0601392f, 0.218661f, 0.249321f, -0.0233574f, -0.00412536f, 0.212469f, 0.140819f, -0.0639397f, 0.0783898f, 0.0853347f, 0.28265f, -0.22046f, 0.0162685f, 0.0900169f, 0.346268f, -0.0351712f, -0.0434138f, -0.227924f, -0.143647f, -0.00438672f, 0.0945941f, -0.00602608f, -0.0654244f, 0.0350243f, 0.146421f, 0.137791f, -0.184505f, 0.533852f, -0.0126826f, 0.0880553f, 0.039896f, 0.30222f, 0.350513f, -0.420699f, 0.0353072f, 0.394786f, -0.179175f, 0.0216373f, 0.219983f, -0.109521f, 1.4347e-05f, 0.0437846f, 0.0534492f, 0.120718f, -0.0629217f, 0.347398f, -0.334057f, 0.170864f, 0.228355f, 0.200273f, -0.169694f, 0.178578f, 0.0860847f, -0.0972456f, -0.0928181f, 0.0887937f, 0.0879106f, -0.111774f, -0.127513f, -0.150364f, -0.196304f, -0.396702f, 0.0266781f, 0.144606f, -0.191559f, -0.271727f, 0.0535188f, -0.272956f, -0.172227f, 0.00847636f, -0.0214882f, 0.220351f, -0.210879f, 0.140308f, -0.188043f, -0.211352f, 0.0357846f, 0.285592f, 0.211516f, -0.0258637f, 0.37132f, -0.167752f, 0.00335186f, 0.14117f, 0.0888793f, -0.00509206f, -0.142469f, 0.0835963f, -0.180644f, 0.101619f, -0.27666f, -0.113923f, -0.0686132f, 0.0204105f, 0.192806f, -0.148181f, 0.0244243f, -0.142226f, 0.24386f, -0.183728f, 0.116403f, 0.0227599f, 0.152476f, -0.0250862f, 0.153065f, -0.185595f, 0.305557f, 0.0294814f, 0.232583f, 0.256529f, -0.175145f, 0.414853f, -0.0829222f, 0.0725146f, 0.0374453f, 0.0565995f, -0.00205872f, -0.273737f, 0.125428f, 0.000176082f, 0.0263892f, -0.114889f, -0.143082f, 0.122908f, -0.069356f, -0.00143071f, 0.0491686f, 0.0786172f, -0.0288191f, -0.0332596f, -0.252166f, -0.340286f, 0.0638877f, -0.0670409f, -0.194249f, 0.256807f, 0.0189949f, 0.0303044f, 0.0587015f, 0.187631f, 0.0500609f, -0.11214f, 0.0765258f, 0.0349617f, 0.0249802f, -0.133238f, 0.176448f, -0.0277189f, 0.0344862f, -0.107394f, -0.18643f, 0.0635143f, -0.0605622f, 0.168427f, -0.0884964f, 0.0268059f, 0.00394441f, -0.000314299f, -0.0884163f, 0.0598691f, -0.0686454f, -0.0571465f, 0.148353f, 0.180272f, -0.310426f, 0.1644f, 0.155874f, 0.0363443f, 0.171782f, 0.267287f, 0.0186421f, 0.0834139f, 0.0270056f, 0.11645f, 0.102568f, 0.226938f, 0.172513f, 0.0635149f, -0.0222217f, 0.0668002f, -0.124887f, 0.0710064f, 0.0923833f, 0.102052f, -0.151315f, -0.0105156f, -0.0123802f, 0.22761f, -0.0476565f, 0.180824f, 0.0431615f, 0.109002f, -0.123133f, 0.194551f, -0.0402113f, 0.0381988f, 0.0407657f, 0.0457281f, -0.0719803f, -0.129717f, 0.161751f, -0.124311f, -0.372466f, 0.0484661f, -0.205328f, 0.0490029f, -0.153467f, -0.047319f, 0.0686409f, 0.0389943f, 0.0770785f, -0.095268f, -0.211712f, -0.0273535f, -0.0106619f, -0.0434848f, 0.0925126f, 0.202196f, -0.121683f, 0.182829f, 0.191826f, 0.125264f, -0.0457273f, -0.0615127f, -0.0461412f, 0.047813f, 0.0965039f, 0.129996f, 0.0862593f, 0.172527f, -0.026254f, 0.245432f, -0.0309896f, 0.126263f, 0.173165f, -0.0431295f, 0.319317f, 0.0371643f, -0.161992f, 0.0500325f, 0.0232516f, 0.0262177f, -0.221253f, 0.121913f, 0.00390719f, -0.00444532f, 0.018828f, -0.0214617f, 0.151459f, -0.118111f, 0.164796f, 0.15001f, 0.0575376f, -0.186672f, -0.203855f, -0.0850618f, 0.0797261f, 0.170144f, 0.0890225f, -0.217632f, 0.115796f, -0.0520981f, 0.0669414f, -0.0479688f, -0.211083f, 0.0212481f, -0.121224f, -0.164489f, 0.0472509f, 0.143862f, 0.0369835f, -0.144997f, -0.0324606f, -0.187301f, -0.08414f, -0.0531541f, 0.204496f, -0.151981f, 0.0493006f, -0.0364146f, 0.0290732f, -0.0535349f, 0.099456f, 0.0435237f, -0.0411441f, 0.0238159f, -0.28512f, 0.187908f, -0.062756f, -0.0494004f, -0.0745782f, 0.0369551f, 0.0027589f, 0.00296471f, -0.139788f, 0.379177f, -0.0947664f, -0.00116531f, 0.0981963f, 0.165044f, 0.0219742f, -0.0142728f, 0.0148782f, 0.0263842f, 0.203688f, -0.215995f, -0.0502151f, -0.0507923f, 0.083988f, -0.000795793f, -0.113913f, -0.0658666f, 0.0568343f, 0.232414f, -0.0249208f, -0.146387f, 0.0290353f, 0.338727f, -0.171516f, -0.0254188f, -0.180431f, 0.144329f, -0.167483f, 0.0611658f, 0.200653f, 0.0180765f, -0.0429318f, 0.0721781f, -0.0424495f, 0.00580364f, 0.0910418f, 0.0263846f, 0.0394326f, -0.0435401f, -0.00414778f, -0.196586f, 0.0239773f, -0.0839796f, 0.102364f, 0.0675514f, 0.0632597f, -0.0406165f, -0.132344f, 0.0294675f, 0.0696549f, 0.169861f, 0.0788076f, -0.102868f, -0.0432446f, 0.120209f, 0.126136f, 0.0229375f, 0.0399155f, 0.0833042f, -0.0485199f, -0.0974577f, -0.180699f, -0.0802677f, 0.00310428f, -0.239199f, 0.0486424f, -0.0462027f, -0.0235382f, 0.185217f, 0.154497f, -0.00719293f, 0.0971421f, -0.114285f, 0.0830625f, -0.161299f, -0.0352383f, -0.05337f, 0.00257927f, 0.195767f, -0.207422f, 0.113247f, -0.0505515f, 0.0640956f, -0.0761783f, -0.0371429f, -0.0901809f, -0.115725f, -0.021877f, 0.137965f, 0.187986f, -0.0360994f, -0.0832506f, -0.0328132f, -0.0679146f, 0.10761f, -0.0714892f, 0.0053071f, -0.0996814f, -0.0102311f, -0.119614f, 0.133188f, -0.0178573f, 0.0701934f, -0.0463171f, 0.268009f, 0.0887778f, -0.078712f, 0.0849851f, -0.0939837f, -0.0928966f, 0.126371f, 0.218922f, 0.0287673f, 0.0433833f, -0.109732f, -0.172725f, -0.160857f, 0.0360389f, 0.0455371f, -0.0885555f, -0.268207f, 0.150102f, 0.0263575f, 0.150724f, 0.0581705f, 0.127064f, -0.12009f, 0.0604583f, -0.165494f, 0.166857f, -0.144885f, -0.0393337f, 0.0392335f, -0.245334f, 0.332737f, -0.0522476f, -0.00780619f, 0.215989f, 0.0614919f, -0.0248599f, -0.0336227f, -0.0991986f, 0.0891607f, 0.230618f, 0.109352f, -0.0110568f, -0.130035f, -0.00590821f, -0.0154823f, -0.189931f, 0.167217f, -0.037256f, 0.149157f, -0.0497009f, 0.0824142f, 0.242862f, 0.127238f, -0.06953f, -0.199641f, 0.00575032f, -0.0861298f, 0.0809477f, -0.0541039f, -0.290523f, -0.0961407f, -0.154182f, 0.151145f, 0.0352816f, -0.139359f, 0.0130612f, -0.00397859f, 0.0873904f, -0.125998f, 0.0262794f, 0.0211285f, 0.171233f, -0.0572699f, 0.0422492f, -0.0650384f, 0.138899f, 0.155662f, 0.247335f, 0.225027f, -0.0217831f, -0.0911559f, -0.0973081f, -0.0214542f, 0.295371f, -0.121815f, 0.207251f, 0.052494f, -0.0147362f, 0.120674f, -0.160071f, 0.112934f, 0.128336f, 0.0328667f, 0.0560046f, -0.26234f, 0.0939583f, 0.0248898f, 0.240244f, 0.215791f, -0.0706247f, 0.0109831f, 0.062496f, 0.0848731f, 0.413533f, -0.107684f, 0.344049f, -0.0113786f, 0.123637f, 0.0949927f, 0.12768f, -0.103023f, 0.193717f, 0.120202f, -0.0094534f, -0.10956f, -0.0201969f, -0.0400672f, -0.0235751f, -0.0278325f, -0.00876534f, 0.0778505f, 0.109878f, -0.120205f, 0.0031986f, 0.0718936f, -0.086238f, -0.155314f, -0.0173974f, -0.0238431f, 0.346319f, -0.0437167f, 0.101012f, -0.0372693f, -0.326293f, -0.0743517f, -0.00609274f, 0.140461f, 0.133244f, 0.277893f, 0.0510184f, -0.189669f, -0.0258083f, 0.00878191f, 0.206584f, 0.0899694f, 0.0340743f, 0.248351f, -0.185215f, 0.346988f, -0.13359f, 0.10106f, -0.0840164f, 0.181949f, 0.050291f, -0.0479796f, -0.108819f, -0.252074f, -0.0131354f, 0.305307f, -0.0107368f, 0.305563f, -0.211993f, 0.201508f, 0.159496f, -0.172332f, 0.118025f, 0.219116f, -0.00948028f, -0.0712233f, -0.390287f, -0.229187f, 0.242107f, 0.10089f, 0.223108f, 0.0126285f, 0.102713f, -0.0093015f, 0.0409592f, -0.10944f, 0.0609837f, 0.183103f, 0.393517f, 0.120945f, 0.179483f, -0.0766307f, -0.0593604f, -0.219877f, -0.0369033f, 0.287455f, 0.205313f, -0.304561f, -0.159132f, -0.0571859f, 0.38827f, -0.0601298f, -0.163228f, -0.0358859f, 0.28875f, -0.474541f, -0.0871331f, -0.0599801f, -0.0368804f, 0.136161f, -0.143109f, -0.00405366f, -0.100587f, -0.113392f, 0.161476f, -0.229188f, 0.0485844f, -0.048347f, 0.394214f, -0.300982f, -0.161484f, -0.094418f, -0.0591937f, -0.0155891f, 0.252113f, 0.021637f, -0.095772f, 0.00738911f, 0.169505f, 0.0477284f, -0.0278664f, 0.222176f, -0.09898f, -0.108728f, 0.145931f, 0.0305145f, 0.337297f, -0.0920805f, -0.0708663f, 0.283845f, 0.141662f, -0.111684f, -0.160935f, -0.207524f, 0.284704f, 0.0237074f, 0.29553f, 0.340007f, -0.0859995f, 0.274294f, -0.177591f, -0.0227015f, 0.193095f, 0.075423f, 0.0773271f, 0.113542f, -0.0160238f, -0.0728632f, -0.116097f, 0.10622f, -0.216009f, -0.0924174f, 0.00280531f, 0.0834982f, 0.121363f, -0.0601163f, 0.180408f, 0.0780443f, -0.0958076f, 0.230659f, 0.0504493f, 0.198018f, 0.20258f, 0.219201f, -0.0525252f, -0.177043f, -0.179945f, 0.145208f, 0.0987187f, 0.253728f, 0.00274413f, 0.156055f, -0.0643931f, -0.0692193f, -0.184918f, 0.0330037f, -0.110499f, -0.0519564f, 0.0995783f, -0.0329076f, -0.243996f, 0.00599783f, -0.0482933f, 0.0683026f, -0.135876f, -0.0418451f, 0.06609f, 0.0451146f, 0.307196f, -0.0766188f, -0.0480943f, -0.0927472f, 0.0894361f, 0.0756981f, 0.00409878f, 0.0766967f, -0.0667522f, 0.0456016f, -0.0181736f, -0.12744f, 0.00557179f, -0.187605f, -0.148186f, -0.154465f, 0.127545f, 0.134605f, 0.135375f, 0.102747f, -0.0821528f, -0.0975905f, 0.0693815f, -0.125749f, -0.0491818f, -0.020756f, -0.102228f, -0.0172227f, -0.146864f, 0.237352f, -0.169482f, 0.198427f, -0.136222f, -0.0822768f, -0.070868f, 0.269611f, -0.0180523f, -0.0117585f, -0.00833999f, -0.13111f, 0.0840553f, 0.110541f, 0.156874f, 0.059527f, 0.119487f, -0.272849f, 0.14629f, -0.127751f, 0.0427001f, 0.180654f, 0.0858715f, 0.129207f, 0.0681097f, 0.0959047f, 0.278954f, 0.240076f, 0.0139177f, -0.0453776f, -0.0106934f, -0.0370791f, 0.0239982f, 0.0781676f, -0.0215953f, -0.0769911f, -0.120378f, 0.0977861f, 0.0595661f, -0.124439f, 0.0134287f, 0.13189f, 0.0628784f, 0.0598357f, 0.123642f, -0.1223f, 0.0141259f, -0.0109728f, -0.18599f, -0.0332035f, 0.00319234f, -0.0135875f, 0.101199f, -0.074055f, 0.137861f, 0.0467132f, -0.072614f, 0.183823f, -0.00468617f, 0.121325f, -0.0632086f, 0.05328f, 0.0340243f, -0.0534328f, 0.0745918f, -0.0593455f, -0.00548706f, -0.143837f, -0.322157f, 0.0602713f, -0.0397567f, 0.207322f, 0.284047f, -0.196493f, 0.116475f, 0.142273f, 0.0696f, 0.154647f, -0.043312f, 0.135801f, -0.174266f, 0.017051f, 0.253832f, 0.0053388f, -0.0406757f, 0.354269f, 0.0402164f, -0.0975097f, 0.153452f, 0.0584504f, -0.0162646f, 0.162065f, -0.257659f, -0.11035f, -0.000657876f, -0.165478f, 0.158595f, 0.129743f, 0.203259f, -0.0847147f, 0.135379f, -0.153921f, -0.0592781f, 0.0777895f, 0.0109451f, 0.0661254f, -0.154698f, -0.061107f, 0.167269f, 0.0852567f, 0.0648234f, -0.0168776f, 0.0399677f, -0.164019f, 0.135162f, -0.0721985f, -0.109352f, -0.00613735f, 0.0359144f, -0.058821f, -0.19671f, -0.000505576f, 0.0280848f, 0.022849f, -0.296212f, 0.138269f, -0.0964514f, -0.208872f, -0.0709149f, -0.053915f, 0.23813f, -0.22432f, 0.12321f, 0.19829f, 0.0798554f, -0.0410327f, -0.276552f, 0.178301f, 0.0239077f, 0.175857f, -0.161553f, -0.127389f, -0.325858f, 0.0223886f, 0.129162f, 0.0191835f, 0.215917f, 0.123597f, 0.127143f, 0.104514f, -0.110723f, -0.207354f, -0.144798f, -0.0979317f, 0.15015f, 0.0578336f, 0.0899806f, 0.180777f, -0.0108326f, -0.0927018f, 0.160831f, 0.00414431f, 0.104079f, 0.0313957f, 0.172659f, 0.0879768f, -0.127444f, -0.0475069f, 0.199598f, 0.120698f, 0.0970465f, -0.0887412f, 0.0182127f, 0.126322f, 0.140514f, 0.00254274f, -0.104796f, 0.279732f, 0.0439412f, 0.169754f, -0.0202292f, 0.110038f, 0.162125f, -0.162959f, 0.0221938f, -0.0727549f, 0.34862f, -0.229165f, -0.0512087f, 0.267027f, 0.0588444f, -0.0433974f, 0.134198f, -0.160533f, -0.232721f, 0.24816f, -0.158352f, 0.119562f, -0.0381935f, 0.193496f, -0.154765f, 0.0544396f, -0.223854f, 0.194415f, 0.191481f, 0.0717017f, -0.132723f, -0.452978f, 0.148472f, -0.284617f, 0.0403317f, 0.0852845f, -0.271646f, 0.266831f, -0.11552f, -0.0928048f, 0.0891014f, -0.00848268f, -0.0240511f, 0.0382861f, 0.159272f, 0.2445f, -0.0745201f, 0.143856f, 0.127692f, 0.0288983f, 0.0349728f, 0.109106f, -0.13439f, -0.324685f, -0.0905399f, -0.0776744f, 0.146983f, -0.0774098f, 0.0520757f, -0.134307f, -0.0821727f, -0.0665994f, -0.343421f, 0.0887133f, 0.105586f, -0.0407913f, 0.00309115f, 0.18977f, 0.197184f, 0.0945464f, -0.306246f, -0.135312f, 0.251245f, 0.190875f, 0.0848703f, -0.215279f, -0.131628f, -0.124192f, 0.300485f, 0.00142961f, -0.107305f, -0.194435f, 0.255212f, 0.111769f, 0.0243602f, -0.0998385f, 0.277342f, -0.213135f, -0.198882f, -0.0622169f, 0.0172662f, 0.0912441f, -0.287399f, -0.244623f, 0.0949548f, -0.114671f, 0.109614f, -0.170367f, -0.212335f, -0.0739163f, -0.0366402f, 0.0606714f, 0.0136398f, -0.185043f, 0.275219f, 0.140297f, 0.0656137f, 0.157311f, -0.0565583f, -0.356628f, -0.234137f, 0.257163f, 0.313718f, -0.08241f, -0.0879133f, 0.0541932f, 0.117263f, -0.0534757f, -0.120454f, 0.0175628f, 0.180737f, 0.0071742f, -0.144224f, -0.0193385f, -0.229885f, -0.0896711f, -0.0821402f, 0.166573f, 0.535085f, 0.126569f, -0.152485f, 0.0693433f, 0.0330029f, -0.0989229f, -0.0454774f, -0.0238308f, 0.0731106f, -0.0813216f, 0.0418112f, -0.37362f, -0.206153f, -0.164498f, -0.0777989f, 0.237451f, -0.147836f, 0.216479f, 0.131738f, 0.137834f, -0.257912f, -0.228938f, 0.253508f, -0.098132f, -0.0253061f, 0.0152156f, 0.11364f, 0.189572f, 0.235502f, -0.0639238f, -0.0417427f, -0.194414f, -0.110808f, 0.0931391f, 0.181594f, -0.0319855f, 0.158313f, 0.118488f, -0.214967f, 0.351243f, 0.197823f, 0.0476817f, -0.0957221f, -0.207971f, -0.140193f, -0.162617f, 0.0740493f, -0.035513f, 0.151546f, -0.205787f, 0.285995f, 0.05496f, 0.201562f, 0.306826f, -0.0219159f, -0.101703f, -0.0892578f, 0.0901386f, 0.233706f, -0.220895f, 0.106362f, 0.0171848f, -0.167348f, 0.0286121f, 0.129194f, 0.189935f, 0.0172023f, 0.0246482f, 0.0254936f, 0.0279727f, 0.0303657f, -0.187324f, 0.0286335f, -0.16914f, -0.0168824f, 0.034271f, -0.0181162f, -0.0422175f, -0.155898f, 0.0618976f, 0.0996909f, 0.0668954f, -0.00886918f, 0.0168453f, 0.170476f, 0.140791f, 0.141509f, 0.219186f, -0.182865f, -0.175801f, 0.190865f, 0.0578173f, -0.00474557f, -0.106855f, 0.308707f, -0.166416f, -0.337029f, 0.41408f, 0.360203f, -0.014689f, -0.00214953f, -0.0149596f, -0.0192066f, 0.0870641f, -0.121952f, -0.129855f, 0.266508f, -0.215637f, 0.00378858f, 0.403752f, 0.220569f, -0.187183f, -0.0700401f, -0.0241994f, -0.0447297f, -0.062906f, -0.275689f, -0.245023f, -0.0443731f, 0.10625f, -0.273276f, -0.0370833f, -0.147002f, 0.185121f, 0.0332481f, 0.30505f, -0.00800803f, -0.123199f, -0.00245131f, -0.032799f, -0.22364f, 0.050982f, 0.119342f, 0.016705f, -0.153237f, 0.0236655f, 0.118519f, -0.0186604f, -0.145352f, -0.0923098f, -0.164339f, 0.210339f, -0.110583f, -0.00917563f, 0.0247029f, -0.0888923f, -0.119635f, 0.00824178f, 0.234727f, -0.24434f, 0.231004f, -0.100926f, -0.197013f, -0.0637691f, 0.11687f, 0.190738f, -0.068168f, 0.166212f, 0.189692f, 0.221503f, 0.0200501f, -0.0343874f, -0.0171827f, 0.227641f, -0.0397644f, 0.152746f, 0.0263233f, -0.0374265f, 0.000324673f, 0.151739f, -0.030361f, 0.000463576f, 0.0778972f, 0.084034f, 0.242583f, 0.0379756f, 0.0632257f, 0.0465064f, -0.196207f, 0.0332102f, 0.0816465f, -0.0723152f, -0.255553f, 0.0162278f, 0.112692f, 0.241436f, -0.0699486f, 0.00898739f, -0.0683719f, -0.109013f, 0.109022f, 0.0780367f, -0.000342354f, 0.0823781f, 0.0394787f, 0.201368f, -0.155182f, -0.00791163f, -0.168598f, -0.00783229f, -0.00675418f, 0.138662f, -0.164829f, -0.0613485f, -0.187846f, 0.0727247f, -0.0365798f, -0.137987f, 0.00411522f, -0.142541f, 0.0800687f, 0.104717f, -0.0924683f, -0.0234977f, -0.153953f, 0.0380447f, 0.25361f, -0.0795485f, 0.0723709f, 0.014748f, 0.038893f, 0.134519f, -0.0937312f, -0.0620652f, 0.134208f, 0.0909019f, -0.0136811f, -0.0294759f, -0.221066f, -0.161401f, 0.0641756f, -0.0637923f, -0.0418282f, -0.170648f, -0.032866f, -0.0844039f, 0.083036f, 0.0509883f, 0.0748532f, -0.272157f, 0.242181f, 0.0329451f, 0.263107f, -0.00569699f, -0.134657f, 0.0381144f, 0.182831f, 0.0701327f, -0.128443f, 0.0560759f, -0.105007f, 0.164936f, 0.10338f, -0.0456775f, -0.0700019f, -0.0165514f, -0.122434f, 0.14225f, -0.169675f, -0.0388923f, 0.126428f, 0.0682788f, 0.00815996f, 0.105987f, 0.0116498f, 0.0224317f, 0.160859f, -0.0442143f, -0.0319331f, -0.0956497f, 0.0716839f, -0.397422f, -0.370129f, -0.189731f, -0.0712974f, -0.352552f, -0.125009f, -0.00470108f, -0.122867f, -0.130122f, 0.235383f, -0.0569073f, 0.150482f, 0.0130228f, 0.254079f, 0.00611162f, -0.0219601f, -0.368116f, -0.0563977f, 0.207807f, -0.164574f, -0.280067f, -0.0701011f, -0.127909f, 0.108321f, 0.235741f, 0.169004f, 0.48742f, 0.156827f, -0.00999168f, -0.134847f, -0.399391f, 0.126271f, -0.189569f, 0.179048f, -0.39159f, 0.122373f, -0.140597f, -0.0815951f, 0.176982f, -0.196001f, -0.220708f, 0.147639f, -0.0616058f, 0.0407251f, -0.23496f, -0.263443f, 0.0717087f, -0.0697846f, 0.0903506f, -0.321025f, 0.0589718f, -0.0264381f, -0.296677f, 0.0819857f, -0.105107f, 0.0254982f, -0.388377f, -0.0435076f, 0.115577f, 0.285678f, -0.00512302f, -0.054127f, 0.098797f, -0.111932f, -0.333041f, -0.207869f, -0.0535858f, 0.288177f, 0.104784f, 0.176f, 0.132118f, 0.225602f, -0.175249f, -0.0872056f, 0.0753841f, 0.122522f, -0.336588f, -0.191463f, 0.028246f, 0.167497f, -0.101311f, -0.112369f, 0.189222f, -0.108265f, 0.0388607f, -0.273442f, -0.0617054f, -0.261146f, 0.0156861f, 0.197901f, 0.190775f, 0.155002f, -0.153269f, 0.257034f, -0.0853517f, 0.259538f, -0.111818f, -0.131389f, -0.0824978f, 0.146984f, 0.0551229f, 0.163643f, -0.213108f, -0.4821f, 0.290689f, -0.00187239f, 0.0966196f, 0.191185f, 0.228684f, 0.106182f, 0.0737455f, 0.0994701f, 0.00696024f, -0.110912f, 0.356106f, 0.0234867f, -0.0954141f, 0.312416f, -0.183314f, -0.0547533f, -0.0964352f, 0.0132606f, 0.00288502f, -0.0131626f, 0.139647f, 0.0261721f, -0.186088f, -0.175147f, 0.118316f, -0.0103129f, 0.0273501f, 0.0212532f, -0.135696f, 0.0135541f, -0.205833f, 0.0352316f, -0.0982459f, 0.0621939f, -0.142851f, -0.000115955f, 0.0244035f, -0.00353697f, 0.00382373f, 0.0121639f, 0.0763728f, -0.181527f, 0.174402f, -0.223797f, -0.0386893f, 0.203431f, -0.0861466f, 0.112211f, -0.0175009f, -0.0240133f, -0.144815f, -0.0113708f, 0.00963782f, -0.232533f, -0.239679f, 0.0461438f, 0.0686444f, -0.0469885f, 0.13448f, 0.123242f, 0.138377f, -0.14455f, 0.122481f, 0.0434594f, -0.0435366f, -0.0675334f, -0.220873f, 0.229304f, -0.00261092f, 0.011628f, -0.120224f, 0.00468058f, 0.274101f, -0.108045f, 0.204425f, -0.0823418f, -0.0161123f, -0.0207787f, 0.17706f, -0.0303229f, 0.129243f, 0.0285484f, 0.0352518f, 0.0853679f, -0.0884647f, -0.0282783f, -0.179808f, -0.197149f, 0.0442048f, 0.231374f, -0.0602933f, -0.0182912f, 0.0555f, 0.14801f, -0.158711f, -0.251175f, 0.102869f, -0.238236f, -0.0981269f, 0.140377f, -0.0555008f, 0.0908261f, 0.0504241f, -0.0321851f, 0.0734249f, 0.111415f, 0.131546f, -0.0179803f, 0.124604f, 0.158591f, 0.0817196f, 0.151729f, -0.00772986f, -0.0348972f, 0.167249f, 0.00472791f, 0.171367f, 0.0252593f, 0.099035f, -0.0760982f, 0.175827f, -0.231237f, -0.106687f, -0.0286783f, -0.102991f, -0.206338f, 0.0826842f, -0.150184f, 0.102642f, 0.0664918f, 0.198407f, -0.223375f, -0.132962f, -0.0664801f, 0.0670721f, 0.218454f, 0.212137f, -0.0708938f, 0.0405207f, 0.156772f, 0.0264505f, 0.0670072f, 0.056318f, -0.18468f, -0.0816846f, -0.171853f, 0.0817179f, -0.046552f, -0.117203f, 0.0322196f, -0.259623f, -0.230391f, 0.0696318f, 0.149829f, -0.22105f, -0.277687f, 0.00586464f, -0.103962f, -0.0794485f, -0.0586972f, -0.129004f, 0.0343061f, -0.0317683f, 0.101682f, -0.358556f, 0.0153959f, -0.111883f, -0.0342339f, 0.145902f, 0.0410737f, 0.0868281f, 0.134961f, 0.0208279f, 0.0279006f, 0.273792f, -0.0988395f, -0.0474556f, -0.0467211f, -0.100365f, -0.0814176f, -0.278051f, 0.0481404f, 0.0885546f, -0.167376f, 0.119353f, -0.0473406f, 0.0660424f, -0.104263f, 0.35314f, -0.0314565f, -0.176499f, -0.27747f, 0.0879217f, -0.145822f, 0.164862f, -0.0757258f, -0.107293f, 0.0337345f, 0.0464835f, -0.12288f, 0.0890703f, -0.32038f, -0.0911324f, -0.147179f, -0.0217429f, -0.156786f, 0.155412f, -0.226547f, 0.0702508f, 0.108431f, 0.0329542f, 0.223466f, 0.0421734f, 0.0447707f, -0.059839f, -0.0238694f, -0.0174359f, 0.152924f, -0.0723523f, -0.218658f, -0.172304f, -0.0739831f, 0.0241414f, -0.290567f, 0.234287f, -0.132212f, -0.171898f, 0.0280839f, 0.123522f, 0.139078f, -0.10414f, 0.182019f, -0.180492f, -0.128434f, 0.131187f, -0.163535f, -0.149549f, 0.0193726f, 0.141017f, 0.0355782f, 0.000743233f, 0.115503f, -0.020789f, 0.0473714f, 0.146596f, 0.405852f, -0.0884717f, -0.0208121f, 0.157089f, -0.201851f, 0.0297943f, 0.00402824f, 0.235333f, 0.125081f, 0.0153239f, 0.0229121f, -0.049267f, -0.0344065f, -0.113332f, -0.0237861f, 0.0961998f, 0.235365f, -0.192614f, -0.0185993f, 0.0140281f, 0.261691f, -0.178093f, -0.0423084f, 0.066027f, -0.0353551f, 0.206226f, -0.0502995f, -0.121908f, 0.0801374f, -0.0386767f, 0.273023f, -0.113222f, 0.0127399f, 0.222229f, 0.0957302f, -0.0918551f, 0.0970937f, 0.110768f, 0.145683f, -0.115657f, 0.162115f, -0.295925f, 0.101609f, -0.149939f, -0.192513f, -0.00270537f, -0.117431f, 0.00836338f, -0.180238f, 0.00454809f, 0.0358687f, -0.0427767f, -0.134679f, 0.123616f, -0.110237f, 0.170335f, 0.104679f, -0.00435292f, -0.0856951f, 0.0953745f, -0.122879f, 0.0461267f, 0.0729041f, 0.195707f, 0.218917f, 0.0217131f, -0.023212f, 0.183962f, 0.0159108f, -0.0577214f, -0.0485783f, 0.230346f, 0.233948f, -0.00345102f, -0.151851f, 0.217195f, -0.0956711f, 0.121522f, 0.0902098f, -0.259196f, 0.117247f, -0.0308389f, 0.15145f, -0.250906f, -0.0351523f, -0.302374f, -0.133622f, 0.0331966f, 0.103557f, -0.0766359f, 0.0625109f, -0.0660966f, -0.0198775f, 0.106784f, 0.0969437f, 0.148059f, 0.0222773f, -0.122997f, 0.244525f, -0.139134f, 0.0675275f, 0.136051f, 0.00386779f, -0.0585232f, -0.160951f, -0.300345f, -0.120072f, 0.109444f, -0.233166f, 0.00146995f, 0.0472149f, -0.125472f, -0.029991f, 0.204921f, -0.00137698f, -0.183881f, -0.071989f, 0.0427784f, 0.0881584f, -0.165215f, -0.100193f, 0.0369275f, 0.172758f, -0.04648f, -0.0172443f, -0.130008f, 0.125254f, -0.30179f, 0.00646007f, -0.0699058f, -0.017643f, -0.0521125f, -0.0140356f, -0.139821f, 0.131101f, -0.167905f, 0.195702f, 0.296135f, -0.0930392f, 0.21529f, 0.0982341f, -0.0704036f, -0.153487f, -0.0242747f, 0.0861527f, -0.0392423f, 0.116913f, 0.148505f, 0.0609942f, 0.176828f, -0.232594f, 0.0470404f, 0.101094f, -0.00627018f, -0.249312f, 0.121736f, -0.070443f, 0.0972434f, -0.0848227f, -0.120789f, 0.205901f, 0.0130791f, -0.286126f, -0.200128f, -0.0744945f, -0.0726416f, -0.114291f, -0.120186f, 0.0117329f, -0.135773f, 0.103973f, 0.170239f, -0.163443f, 0.00161078f, -0.0739335f, -0.303643f, -0.0208121f, 0.0104105f, -0.11706f, 0.0558828f, -0.0831876f, -0.0926822f, 0.0824413f, 0.126088f, 0.0457081f, 0.1461f, 0.0170726f, -0.196697f, 0.255545f, 0.402226f, -0.101471f, 0.0566216f, 0.189059f, -0.219155f, 0.1288f, 0.00290739f, 0.187303f, -0.16422f, -0.229203f, -0.0769185f, -0.30373f, 0.0651174f, -0.0200218f, -0.107943f, -0.169323f, -0.0824508f, -0.204425f, -0.11047f, -0.0924492f, -0.00249578f, -0.106946f, 0.0772282f, -0.0644249f, -0.0862739f, 0.315033f, -0.0150639f, -0.0163619f, 0.173677f, -0.0062313f, 0.292999f, -0.0591836f, -0.0210609f, 0.0379199f, -0.119296f, -0.0749818f, -0.135761f, -0.0381588f, -0.198998f, 0.0314759f, 0.0905199f, -0.0358164f, 0.1213f, 0.14554f, -0.112422f, -0.0952867f, 0.297376f, -0.14058f, 0.0349388f, 0.023552f, 0.0111071f, -0.0974982f, -0.11916f, -0.0773768f, 0.00716184f, -0.116978f, -0.00539637f, 0.00728649f, 0.0502002f, -0.153056f, 0.00205039f, -0.380801f, -0.119718f, -0.0647611f, 0.118793f, -0.158251f, 0.0056054f, -0.15459f, -0.170045f, -0.180366f, 0.275727f, -0.0385446f, -0.112697f, 0.188049f, 0.0788877f, -0.02257f, -0.210276f, -0.0890582f, 0.0797264f, -0.344039f, 0.000162278f, -0.0474351f, -0.0580639f, -0.181746f, 0.153473f, 0.0152584f, -0.0656669f, 0.0251259f, 0.215527f, 0.105031f, 0.349169f, -0.0957735f, -0.377065f, 0.0914315f, 0.0514318f, 0.113282f, -0.302312f, 0.0360907f, -0.19454f, -0.161156f, 0.149363f, -0.0548072f, -0.057393f, 0.0871137f, 0.102499f, -0.0742287f, -0.04204f, -0.0800674f, -0.106637f, -0.358482f, 0.122308f, 0.0770194f, -0.317349f, -0.0661951f, 0.0348163f, 0.00544635f, 0.0956608f, 0.0678018f, -0.00938377f, -0.436754f, -0.147282f, -0.0563459f, -0.150609f, -0.103201f, 0.16025f, 0.0969809f, 0.238901f, 0.112202f, 0.378766f, -0.27109f, 0.282189f, 0.116632f, -0.0321301f, 0.254882f, 0.0044918f, -0.0263125f, 0.0829864f, -0.0137345f, -0.0265602f, -0.166594f, -0.0822964f, -0.148124f, 0.091476f, -0.311045f, 0.0410123f, -0.133039f, 0.173082f, -0.122585f, 0.149591f, -0.160999f, 0.174207f, 0.16076f, 0.177975f, 0.0446494f, -0.0477466f, -0.0302768f, 0.0490094f, 0.0544281f, 0.0365246f, -0.013198f, 0.139467f, 0.164445f, 0.288004f, 0.0612698f, 0.1268f, 0.17957f, -0.0680386f, -0.158231f, -0.0555948f, 0.0898907f, -0.0430576f, -0.00563254f, -0.114998f, -0.274583f, 0.0977065f, -0.19808f, 0.0372989f, 0.126223f, -0.0366847f, -0.0748304f, 0.314669f, -0.070068f, 0.129813f, -0.087177f, 0.228777f, 0.00967655f, -0.124575f, -0.120432f, -0.279348f, -0.148359f, -0.0364939f, 0.050047f, 0.0189485f, 0.0906649f, 0.121952f, 0.0711264f, -0.0466294f, -0.0120295f, 0.0668173f, -0.0817423f, -0.0520064f, -0.0242292f, -0.374217f, -0.0721382f, -0.111809f, -0.136171f, -0.166949f, 0.186633f, 0.266353f, -0.136429f, -0.0641277f, 0.175524f, 0.0710953f, -0.0545028f, 0.102716f, 0.0287378f, 0.101376f, 0.156943f, 0.236438f, -0.122909f, 0.28361f, -0.116851f, 0.275614f, 0.241154f, 0.106271f, 0.226517f, 0.0135444f, -0.227286f, 0.00112759f, -0.391351f, -0.198246f, -0.304875f, -0.444741f, -0.0210743f, 0.0886682f, -0.0224288f, 0.0260869f, -0.185979f, -0.0159452f, 0.0101528f, -0.0484439f, -0.047784f, -0.229014f, 0.219427f, 0.154175f, 0.0463849f, 0.118675f, -0.0625553f, -0.054174f, -0.133572f, -0.0295079f, 0.3267f, -0.0353835f, 0.148666f, 0.082478f, 0.00537933f, -0.0868523f, -0.115429f, 0.121513f, 0.0220871f, 0.388364f, -0.0407968f, -0.208114f, -0.1919f, 0.138976f, 0.0439226f, -0.150767f, -0.199834f, 0.0507405f, -0.0486308f, 0.0463367f, -0.0290952f, 0.0201639f, -0.102917f, -0.107096f, -0.164935f, 0.258868f, -0.0446622f, 0.0853192f, -0.229676f, -0.0490582f, -0.013933f, -0.107313f, 0.066552f, 0.0825079f, 0.0909858f, 0.0505883f, -0.0342604f, -0.0850703f, -0.0725905f, -0.279863f, -0.0264199f, -0.280556f, 0.124651f, 0.0968177f, -0.0796388f, 0.232506f, -0.304528f, 0.108614f, -0.32284f, -0.0546853f, -0.187634f, -0.114413f, -0.102989f, 0.0628278f, -0.0114882f, -0.183106f, 0.136049f, 0.159028f, 0.264834f, -0.261659f, 0.220936f, 0.0916538f, -0.00233234f, 0.00367384f, 0.0906386f, 0.05581f, 0.238411f, 0.295251f, -0.00952132f, -0.0263757f, -0.0413506f, -0.0704048f, -0.0345356f, -0.0544682f, 0.0309112f, 0.302002f, 0.0251915f, 0.0251763f, 0.0967803f, -0.0630701f, 0.0536678f, 0.0908158f, 0.00459687f, -0.0936482f, -0.0530328f, -0.194567f, -0.0864812f, -0.110141f, 0.106892f, 0.251296f, 0.239346f, -0.01778f, 0.0404898f, 0.0344856f, 0.152131f, 0.00107663f, 0.0962334f, -0.0797733f, 0.159797f, -0.133274f, -0.0981742f, -0.0824682f, -0.113904f, -0.0376824f, 0.0780324f, -0.0119816f, -0.0636708f, -0.176186f, -0.118069f, 0.0876623f, 0.0272581f, -0.168647f, 0.00377525f, 0.0268282f, -0.215668f, -0.15874f, -0.0258948f, 0.0097097f, -0.0570874f, 0.287914f, 0.00641757f, 0.134211f, 0.0897437f, 0.113252f, 0.160633f, -0.0935972f, -0.0203104f, 0.13992f, -0.221005f, -0.0903902f, 0.0337228f, -0.0210593f, -0.158392f, -0.0745536f, 0.149688f, 0.127852f, 0.107471f, -0.0858905f, 0.140092f, 0.00532275f, -0.0904575f, -0.0104302f, 0.026531f, -0.0963189f, 0.347581f, -0.161873f, -0.088142f, 0.00621544f, -0.092875f, -0.0848606f, 0.0565763f, -0.072111f, -0.0444069f, 0.00513405f, 0.0192599f, -0.0789498f, -0.0358856f, -0.100061f, -0.301722f, 0.180036f, -0.164102f, 0.137184f, 0.0734516f, -0.0350578f, -0.151618f, -0.0413827f, 0.115971f, -0.169871f, -0.0918847f, 0.0586317f, 0.0201434f, -0.190152f, -0.0651035f, -0.284582f, -0.00306692f, -0.119079f, -0.226928f, -0.27194f, 0.0359996f, 0.154584f, -0.0584566f, -0.195952f, 0.111883f, 0.126258f, -0.0694576f, -0.188634f, -0.0991361f, 0.0423148f, -0.111754f, 0.0595091f, 0.104896f, 0.0796009f, 0.249678f, 0.0846826f, -0.178189f, 0.215999f, 0.246299f, 0.201804f, 0.15021f, -0.0877912f, 0.0157797f, 0.162641f, 0.05123f, 0.0391861f, 0.0429872f, 0.22269f, -0.113267f, 0.106899f, -0.061136f, -0.139948f, -0.00964778f, -0.132473f, 0.109573f, 0.109833f, -0.209134f, -0.0997524f, -0.207464f, 0.124496f, -0.0441799f, -0.0563813f, -0.26665f, 0.0827787f, 0.0283657f, 0.0996216f, 0.133733f, -0.158669f, -0.155075f, -0.0712937f, -0.287313f, -0.0102693f, 0.0218672f, -0.0675166f, -0.0795305f, 0.148219f, -0.186046f, -0.0489292f, -0.0859781f, -0.253816f, -0.12245f, 0.243966f, 0.136325f, 0.0571539f, 0.183358f, 0.0501225f, 0.0809816f, 0.168768f, 0.0987916f, 0.219375f, 0.196192f, 0.0999195f, 0.142276f, 0.113832f, -0.0422466f, 0.0743434f, 0.00792031f, 0.00913162f, -0.0783512f, 0.131548f, 0.0613645f, -0.0942303f, 0.0279709f, -0.163827f, 0.109901f, -0.0502135f, 0.325809f, 0.0369185f, 0.163688f, -0.0124242f, 0.142473f, -0.0065085f, -0.0379183f, 0.100461f, -0.0543716f, -0.205181f, -0.229233f, -0.00723067f, 0.102548f, 0.172617f, 0.177648f, -0.0104931f, 0.272025f, 0.237696f, -0.0326975f, 0.120071f, 0.209863f, -0.0675577f, 0.222272f, 0.237331f, -0.123337f, -0.314214f, -0.162536f, -0.099183f, -0.08962f, -0.0254635f, -0.100558f, -0.0449911f, 0.0115265f, -0.170124f, 0.0389743f, 0.107975f, 0.0477851f, -0.0382879f, 0.019029f, -0.226843f, -0.0874371f, -0.0125546f, 0.0771992f, -0.0142281f, -0.165154f, 0.0997242f, 0.230992f, -0.157782f, 0.0499663f, -0.209985f, -0.199625f, 0.128577f, 0.0968639f, 0.0604297f, -0.0269404f, 0.00869404f, -0.0780696f, 0.15733f, -0.132777f, 0.200534f, 0.163176f, -0.214276f, 0.178524f, -0.21918f, 0.193127f, -0.0843503f, 0.00279953f, 0.0422202f, -0.0787792f, 0.0248578f, 0.138912f, -0.0375778f, 0.0929186f, -0.129463f, 0.0656461f, -0.232411f, -0.357283f, 0.102717f, -0.142907f, 0.212524f, -0.0861322f, 0.138125f, -0.0505997f, -0.12423f, -0.358328f, -0.000728061f, -0.30313f, 0.107282f, 0.0444511f, -0.0604989f, 0.147534f, 0.00469044f, -0.0379701f, 0.0136997f, -0.154596f, 0.106237f, 0.16294f, -0.16163f, 0.0820081f, -0.00465766f, 0.0480267f, 0.269316f, 0.01101f, -0.119393f, 0.0950286f, -0.410067f, 0.152737f, 0.101365f, 0.0816133f, -0.00367367f, -0.0970435f, -0.0151451f, 0.115258f, -0.118354f, -0.0609875f, 0.321538f, -0.039995f, -0.16803f, -0.00048142f, -0.378972f, -0.0590704f, 0.208523f, -0.0073623f, 0.0420688f, -0.0402862f, 0.289202f, 0.18237f, -0.216225f, -0.0962754f, -0.0128278f, -0.216159f, -0.158183f, -0.0264064f, 0.229218f, 0.0507287f, 0.117215f, -0.17393f, 0.15788f, -0.153407f, 0.407007f, -0.0451575f, 0.0167306f, -0.158343f, -0.397618f, -0.00587366f, 0.098703f, -0.0070779f, -0.092336f, 0.101337f, -0.0963855f, 0.339534f, -0.171714f, -0.010993f, -0.0415756f, -0.229414f, 0.00713199f, -0.158476f, -0.200613f, -0.0289409f, 0.158978f, -0.353355f, 0.0835629f, -0.0112151f, 0.213491f, -0.0936289f, 0.0589293f, 0.0957552f, 0.275634f, 0.335113f, 0.079014f, 0.0178833f, 0.261463f, -0.0759686f, -0.21495f, 0.305279f, 0.024731f, -0.144641f, -0.0524021f, 0.0167536f, -0.0763965f, -0.157926f, -0.121548f, 0.199272f, -0.0455652f, 0.04139f, -0.154762f, 0.0332293f, 0.103783f, 0.122989f, 0.237103f, 0.0997383f, 0.0350758f, -0.152928f, 0.031163f, -0.0761059f, -0.215518f, 0.0625335f, 0.499452f, 0.00684762f, 0.073336f, 0.241691f, -0.162766f, -0.0633091f, 0.0760897f, 0.146022f, -0.0411316f, 0.208503f, -0.143276f, -0.108104f, 0.058494f, 0.0871583f, -0.0757355f, 0.10478f, -0.254173f, 0.176128f, -0.0693223f, 0.0855174f, 0.122281f, 0.0808549f, 0.187644f, -0.037692f, -0.342725f, -0.0229462f, 0.0957991f, -0.16151f, 0.081419f, -0.265724f, 0.0698869f, -0.0108814f, 0.129583f, 0.016683f, -0.152242f, 0.00350569f, -0.131149f, 0.140363f, -0.0816904f, 0.164467f, -0.238561f, -0.118386f, 0.0520473f, 0.196177f, -0.275922f, 0.111824f, 0.107316f, -0.448295f, 0.0755931f, 0.0336313f, 0.230894f, -0.0878445f, -0.148527f, -0.112949f, 0.158293f, 0.141615f, 0.248343f, 0.157106f, 0.245409f, 0.0976692f, -0.267359f, -0.0899905f, 0.0316174f, -0.105814f, -0.261361f, 0.0719491f, -0.134963f, 0.0293662f, 0.349951f, -0.244333f, -0.00534507f, 0.0458969f, 0.178417f, 0.230491f, 0.0182539f, -0.148817f, -0.04409f, -0.0482432f, 0.281727f, -0.143511f, 0.0968574f, -0.0364254f, 0.102497f, -0.148294f, 0.11369f, -0.332836f, 0.203726f, -0.0310361f, -0.0755591f, -0.186791f, 0.175101f, 0.109898f, -0.0582577f, -0.00136801f, 0.0566256f, -0.241459f, 0.0634552f, -0.0966557f, 0.134153f, 0.200804f, -0.103136f, 0.178107f, -0.232817f, 0.329485f, 0.0451439f, -0.192424f, 0.131202f, 0.0872209f, -0.185338f, 0.134188f, -0.0572071f, 0.0795002f, -0.16833f, -0.00752221f, -0.102084f, -0.200059f, -0.00272669f, 0.287073f, -0.0302038f, 0.183009f, -0.0612748f, 0.019993f, 0.148726f, 0.094238f, 0.258272f, -0.354703f, -0.141818f, 0.210595f, -0.076877f, -0.0356632f, -0.140249f, 0.123f, 0.0492573f, -0.041825f, -0.246114f, 0.0309678f, 0.130479f, -0.21321f, 0.130585f, 0.0170737f, 0.0801827f, -0.247094f, -0.0356692f, -0.0665248f, -0.0712626f, 0.266363f, -0.205423f, 0.046996f, -0.128795f, 0.271344f, 0.206041f, 0.17616f, 0.0146735f, -0.285879f, 0.244946f, 0.181462f, -0.0186333f, -0.028626f, 0.100936f, -0.0458316f, -0.145007f, 0.0731278f, 0.114317f, -0.0423157f, 0.280693f, -0.157298f, -0.107078f, 0.0348297f, -0.209285f, 0.120646f, -0.113658f, -0.124726f, 0.382354f, -0.138552f, 0.401393f, -0.0024215f, 0.0494751f, 0.0616988f, -0.134466f, -0.0713716f, 0.132148f, 0.257477f, 0.190041f, 0.0194269f, -0.261551f, -0.0774397f, -0.0476694f, 0.0721587f, -0.104905f, 0.109535f, -0.0540959f, 0.0538087f, 0.136457f, -0.112623f, -0.135511f, -0.110038f, -0.0242112f, 0.0260377f, -0.268064f, -0.0737329f, -0.180061f, -0.07594f, -0.0283941f, 0.083643f, -0.151837f, 0.275121f, 0.0883847f, -0.114109f, -0.0852076f, 0.140123f, -0.106616f, -0.0418913f, -0.0726907f, -0.0671063f, -0.168163f, 0.205983f, 0.24241f, -0.177614f, 0.0891195f, -0.118873f, -0.143575f, 0.14708f, 0.327351f, -0.18803f, -0.0185006f, -0.42435f, 0.0242733f, 0.205506f, -0.133808f, -0.223323f, 0.372024f, 0.148296f, -0.241115f, -0.0869596f, -0.166793f, -0.19044f, -0.191881f, 0.0466768f, -0.141256f, -0.213267f, -0.0792461f, -0.0326265f, 0.0355531f, 0.0845598f, -0.0985383f, 0.0905467f, 0.127054f, 0.123664f, -0.145116f, 0.0942123f, -0.0164035f, -0.102911f, 0.0238856f, 0.0550597f, -0.327534f, -0.0141381f, 0.16748f, -0.140005f, -0.0514918f, -0.032235f, 0.0238263f, -0.206635f, -0.207513f, 0.115356f, 0.140445f, 0.0708472f, -0.0364095f, -0.0258214f, 0.25426f, -0.145107f, -0.261279f, 0.016748f, 0.0963406f, -0.0537813f, 0.149544f, 0.134798f, 0.0857055f, -0.0157655f, -0.0180403f, 0.0405621f, 0.239981f, 0.274483f, 0.011495f, -0.0839633f, -0.0218817f, -0.229857f, -0.197752f, 0.567145f, 0.204574f, 0.237529f, -0.0200345f, 0.0417769f, 0.00599917f, 0.0763555f, 0.0568385f, 0.164839f, 0.031915f, 0.0502391f, -0.254055f, 0.329659f, -0.246769f, 0.0694788f, 0.174732f, 0.0105094f, 0.0703003f, -0.16107f, 0.0273446f, 0.164829f, 0.238161f, -0.0784262f, 0.254247f, 0.0384695f, -0.0640784f, 0.0350951f, -0.258635f, -0.0620523f, -0.117936f, 0.111967f, -0.1084f, 0.00771708f, 0.212601f, 0.119216f, 0.0899283f, 0.21763f, 0.0912064f, 0.0890457f, -0.213567f, 0.0592956f, 0.277801f, 0.159521f, 0.025219f, -0.249472f, 0.0763231f, -0.00225602f, -0.0511978f, -0.124818f, 0.183372f, 0.245656f, 0.0811872f, 0.367132f, 0.0744464f, -0.0712975f, -0.0270067f, 0.136953f, 0.0727378f, -0.260478f, -0.116354f, 0.00287584f, 0.25206f, -0.0344631f, 0.434388f, 0.172719f, -0.253201f, 0.210573f, -0.0387336f, -0.211197f, -0.143962f, 0.291462f, 0.332485f, -0.108803f, 0.325661f, 0.250713f, 0.218309f, 0.210485f, 0.14328f, 0.116129f, -0.171192f, -0.21866f, -0.0551676f, 0.315175f, 0.300222f, -0.237404f, -0.0793797f, -0.0569549f, -0.0433291f, 0.180802f, -0.151958f, -0.16692f, -0.087661f, -0.208076f, 0.271685f, 0.0701124f, -0.0636933f, 0.0522256f, 0.085217f, -0.0188516f, 0.00459576f, 0.0690809f, -0.0575404f, 0.231428f, -0.0167811f, 0.0274856f, 0.12962f, 0.115536f, -0.11678f, -0.120536f, -0.197164f, -0.0222525f, 0.25377f, 0.306954f, -0.00027634f, -0.0349115f, 0.0955536f, 0.0203697f, -0.0573145f, 0.10877f, -0.0186812f, 0.230129f, -0.100356f, -0.0561343f, -0.175183f, 0.277571f, -0.11847f, -0.0421638f, 0.0525595f, -0.248257f, 0.430331f, -0.207328f, 0.147448f, -0.0784672f, 0.0918008f, -0.113096f, -0.0941353f, -0.170616f, 0.0951213f, 0.297165f, 0.078253f, 0.0839041f, 0.0947881f, 0.0172254f, 0.0427136f, 0.0484593f, -0.00259018f, -0.165178f, -0.0368723f, 0.0101139f, -0.129139f, -0.135585f, -0.143725f, 0.147278f, -0.316147f, 0.00989476f, -0.0789379f, 0.280743f, -0.293101f, -0.0559094f, 0.0244341f, 0.236748f, 0.0388206f, -0.118803f, -0.252665f, 0.0767852f, 0.0573719f, -0.135419f, -0.0238572f, 0.0370253f, 0.158516f, 0.129134f, -0.0765001f, -0.0547834f, -0.075878f, 0.0833502f, -0.0456866f, 0.107855f, -0.0210403f, 0.0135048f, 0.294633f, 0.131511f, -0.121126f, -0.0714636f, -0.023091f, -0.230573f, -0.139546f, -0.020412f, -0.251301f, -0.241604f, -0.117695f, 0.0297111f, -0.0152056f, 0.159016f, -0.145519f, -0.277087f, -0.228708f, -0.150872f, -0.149151f, -0.263574f, -0.125114f, -0.0690708f, -0.0194509f, -0.110616f, 0.135663f, -0.033646f, -0.0102726f, 0.168414f, 0.303922f, -0.0331207f, 0.0778172f, -0.0304198f, -0.0511143f, -0.00379743f, 0.218725f, -0.250803f, -0.0241216f, -0.058561f, -0.297181f, 0.134469f, -0.0578126f, -0.20744f, -0.0174636f, -0.220529f, 0.143509f, -0.156155f, -0.116451f, -0.302464f, -0.169628f, 0.0140178f, 0.0734666f, 0.00606925f, -0.153506f, 0.304724f, 0.244888f, -0.16921f, 0.0568757f, 0.154648f, -0.236673f, -0.0362026f, 0.0991292f, 0.178851f, -0.108907f, 0.0184512f, -0.0196351f, 0.0834697f, -0.136117f, -0.074809f, -0.150224f, -0.053534f, -0.115826f, 0.169072f, -0.169178f, -0.175611f, 0.119187f, 0.121016f, -0.123602f, -0.0823976f, -0.0280034f, -0.221022f, 0.0155639f, -0.228852f, 0.0196382f, -0.0799708f, 0.0594722f, -0.145735f, 0.116591f, 0.0204765f, -0.174413f, -0.153819f, -0.0199525f, 0.139484f, 0.0736414f, -0.00362125f, 0.0442568f, 0.240483f, 0.0113756f, -0.0069077f, 0.130086f, -0.0858772f, -0.154835f, 0.199714f, -0.204725f, -0.0843415f, -0.169464f, 0.0473648f, -0.107304f, 0.127887f, 0.0862215f, 0.0562153f, 0.0466221f, 0.0371126f, 0.247888f, -0.0343237f, -0.0154544f, 0.0970172f, 0.104283f, -0.0984044f, 0.0516274f, 0.00312989f, -0.0665676f, 0.229499f, -0.0229233f, -0.158861f, 0.0830261f, -0.113229f, 0.0800353f, -0.0679514f, 0.114174f, -0.20684f, -0.191544f, -0.216298f, 0.121149f, 0.0663216f, -0.0687207f, -0.0752832f, -0.187632f, -0.0919187f, 0.078025f, -0.0797667f, 0.14166f, 0.0961499f, -0.162225f, -0.135258f, 0.303712f, -0.0837229f, 0.128817f, 0.210745f, -0.0651164f, -0.127043f, -0.0150607f, -0.048168f, 0.0109061f, 0.143864f, -0.10267f, 0.101067f, 0.0289298f, 0.100112f, -0.0255528f, 0.225869f, 0.130482f, -0.035291f, 0.12416f, -0.126881f, -0.0670258f, 0.110834f, -0.209727f, -0.0932651f, 0.0934547f, -0.162637f, -0.00767389f, -0.0492058f, -0.0739174f, -0.0548431f, -0.118487f, 0.188957f, -0.0674259f, -0.244004f, -0.146459f, 0.0631808f, -0.112886f, 0.131595f, 0.123878f, -0.0853997f, -0.032462f, 0.0123176f, 0.0824051f, 0.0953715f, 0.118777f, -0.0719264f, 0.254935f, 0.147916f, 0.0362957f, -0.133893f, 0.135902f, -0.0826059f, -0.265135f, -0.00840109f, 0.0674138f, -0.0856603f, -0.114427f, -0.0985151f, -0.143369f, 0.0152597f, 0.0763514f, 0.0863544f, 0.0400569f, 0.319909f, 0.0481285f, -0.0219599f, -0.13795f, 0.0536873f, -0.0947127f, -0.0157943f, 0.0309403f, -0.0561609f, -0.251029f, -0.0818205f, 0.000659789f, 0.238394f, 0.110083f, -0.274867f, -0.256049f, -0.0606952f, -0.230902f, 0.305215f, 0.222119f, 0.0333552f, -0.13009f, -0.173211f, 0.130802f, 0.0218343f, 0.0408346f, -0.244757f, 0.252506f, -0.0759656f, 0.089455f, -0.033968f, 0.285537f, 0.014718f, 0.0419039f, -0.0726971f, 0.072929f, 0.10867f, 0.26893f, -0.0663272f, 0.084004f, -0.136428f, -0.0214271f, 0.228142f, 0.022059f, 0.0392297f, -0.00517454f, -0.195141f, 0.17492f, -0.260833f, -0.0030793f, 0.13684f, -0.183635f, -0.0522064f, -0.0763184f, -0.23149f, 0.0303784f, 0.131949f, 0.137732f, -0.0609853f, -0.00479623f, 0.166938f, -0.103646f, 0.0824584f, -0.23059f, -0.302145f, 0.239847f, 0.150656f, 0.122453f, -0.027727f, 0.352234f, 0.228552f, 0.0365275f, -0.0860383f, -0.0343891f, -0.0126281f, -0.151639f, 0.0136432f, -0.257651f, -0.134403f, -0.374745f, -0.137859f, -0.090626f, -0.118446f, -0.0532255f, -0.210458f, -0.0123633f, 0.238312f, -0.19205f, 0.0617638f, -0.0514527f, -0.0221069f, 0.0763688f, 0.123977f, -0.0243428f, 0.0624295f, 0.0403853f, -0.2499f, -0.0065912f, 0.240684f, 0.0879375f, -0.279062f, -0.0878031f, 0.137682f, 0.023586f, -0.120622f, -0.217763f, -0.0234918f, 0.0441434f, 0.16841f, -0.173418f, -0.210881f, 0.422622f, -0.00936758f, -0.137384f, 0.0243736f, -0.025788f, 0.235025f, -0.0303454f, -0.11954f, -0.0787227f, 0.0587331f, 0.00266252f, 0.0318171f, -0.100691f, -0.0336449f, -0.0592874f, 0.117622f, 0.0674966f, -0.00157015f, -0.011794f, -0.121222f, 0.231921f, 0.151161f, 0.25454f, 0.0233758f, -0.131005f, -0.237073f, 0.0928041f, 0.0595694f, -0.0462149f, -0.114443f, -0.220054f, -0.0856081f, -0.08155f, -0.0459064f, -0.0336963f, -0.264236f, -0.240919f, -0.00761205f, 0.126229f, 0.0782554f, -0.138983f, 0.0688388f, 0.235904f, -0.0893421f, -0.123014f, -0.0472966f, -0.142346f, -0.164033f, -0.0561619f, 0.0872208f, -0.069288f, -0.0919983f, 0.18441f, 0.140972f, -0.121142f, 0.115385f, 0.0399303f, 0.023429f, 0.0274328f, 0.0442055f, -0.169949f, 0.0150296f, -0.0779266f, 0.0184026f, -0.211905f, 0.140619f, -0.0991689f, 0.10926f, 0.113177f, 0.0841652f, -0.0870839f, 0.214376f, -0.0176199f, -0.188434f, -0.167624f, 0.0380261f, 0.0919976f, -0.0266077f, -0.00534621f, -0.0928017f, 0.10463f, 0.040987f, -0.0200547f, -0.00833262f, 0.0192191f, 0.0948849f, -0.00928218f, -0.128873f, 0.0230684f, -0.0892278f, 0.0577555f, -0.0675632f, -0.172491f, -0.160684f, -0.0864104f, 0.0358735f, -0.141507f, -0.0562445f, 0.0505357f, 0.0309779f, 0.0142943f, -0.123069f, -0.0411132f, -0.220096f, 0.10748f, -0.14823f, -0.260146f, 0.213373f, -0.190526f, -0.0107216f, -0.144709f, -0.00407126f, 0.10691f, -0.120072f, 0.121744f, -0.227707f, -0.0727885f, 0.0775055f, -0.0533934f, 0.0133889f, 0.106189f, 0.0134802f, -0.000763439f, -0.248614f, 0.112987f, -0.178115f, -0.0176052f, 0.030443f, -0.1221f, -0.133872f, -0.0851626f, -0.0260008f, 0.213597f, 0.308745f, -0.0123486f, -0.0755081f, 0.0500995f, -0.134959f, -0.0238292f, -0.0911516f, -0.162504f, 0.0978972f, 0.079135f, 0.0219732f, 0.0195389f, 0.136847f, -0.190077f, 0.116861f, 0.157091f, -0.00901714f, 0.0592914f, -0.00786387f, -0.110356f, -0.202022f, 0.0471066f, 0.101215f, 0.0634893f, 0.106424f, 0.0234661f, 0.00645543f, -0.130646f, 0.277715f, -0.135211f, -0.0852798f, 0.229058f, 0.193204f, -0.144046f, 0.150947f, 0.156257f, 0.269801f, 0.0168086f, -0.139973f, -0.127252f, 0.19588f, 0.115583f, 0.239944f, 0.0915896f, -0.139971f, -0.202438f, -0.0530456f, -0.239971f, 0.0531913f, 0.0856272f, -0.299266f, 0.271177f, -0.0172543f, -0.198198f, 0.0424874f, 0.141467f, -0.0460322f, 0.328783f, -0.00819914f, 0.106115f, 0.16246f, 0.203632f, -0.0104329f, -0.0205387f, 0.206366f, -0.0820686f, -0.0662308f, -0.105312f, 0.0307402f, 0.0917688f, 0.0793385f, -0.11684f, 0.0950837f, 0.00710498f, 0.00151898f, -0.00713929f, 0.174233f, -0.121291f, 0.0127514f, 0.179772f, 0.227808f, -0.111272f, 0.27586f, -0.141438f, 0.163744f, -0.0667114f, 0.101347f, -0.192444f, -0.00318479f, 0.00252655f, 0.0292361f, 0.128502f, -0.135627f, 0.0667964f, 0.144604f, -0.0358551f, -0.0916624f, -0.0924243f, 0.0964279f, 0.139892f, 0.0900506f, -0.0470954f, -0.106431f, 0.0123426f, 0.00116192f, 0.0279651f, 0.02027f, 0.374296f, 0.277101f, 0.0229623f, 0.142554f, -0.118086f, 0.217173f, 0.213779f, -0.314644f, 0.0389846f, -0.0380125f, 0.0408197f, -0.259875f, -0.0738153f, -0.0933963f, 0.0690283f, 0.110621f, -0.148013f, 0.243755f, -0.141001f, 0.115051f, -0.374049f, 0.155892f, 0.108788f, 0.20783f, 0.234538f, -0.0468113f, 0.0932165f, -0.133723f, -0.166254f, -0.0364269f, -0.205028f, 0.224193f, 0.156925f, 0.147578f, -0.148368f, 0.0136486f, -0.0212478f, -0.328082f, 0.124933f, -0.0237718f, 0.280209f, 0.0720081f, -0.185042f, -0.133171f, -0.209665f, 0.250164f, -0.174472f, 0.111871f, -0.0307965f, -0.0774521f, 0.185854f, -0.215573f, -0.0303797f, -0.0367094f, -0.00328059f, 0.278323f, 0.305144f, 0.27163f, 0.289344f, 0.0966939f, -0.0137031f, 0.00337277f, -0.101415f, -0.164001f, -0.254846f, -0.243262f, 0.0790031f, 0.229222f, -0.136848f, -0.101164f, -0.0390875f, 0.174139f, -0.274645f, 0.067427f, 0.109533f, -0.133789f, -0.103404f, 0.0710768f, -0.0712052f, 0.0742967f, 0.059047f, 0.14021f, -0.0255504f, -0.120101f, -0.0497876f, -0.0688423f, -0.0304541f, 0.0482962f, 0.106507f, 0.0673234f, -0.0107998f, 0.189707f, -0.161329f, 0.037215f, 0.0087712f, 0.263209f, -0.122585f, 0.274011f, -0.189112f, 0.285317f, 0.190811f, 0.0555598f, 0.116562f, -0.0051153f, 0.0334744f, -0.0815652f, 0.0219048f, -0.168793f, 0.0450648f, -0.0847677f, -0.0603226f, 0.0884307f, 0.0558069f, 0.0523994f, -0.238764f, 0.0558989f, 0.121868f, -0.0251138f, 0.094497f, -0.0301479f, 0.0112231f, -0.191327f, -0.070146f, 0.0610573f, -0.137955f, 0.127589f, 0.213475f, -0.107887f, 0.0144117f, 0.0485662f, -0.188082f, 0.0392086f, 0.303643f, -0.00282219f, -0.0677164f, 0.0476443f, -0.0813375f, 0.173593f, 0.0660869f, 0.260734f, 0.0660297f, 0.14334f, 0.0288141f, -0.00527044f, -0.00280391f, 0.14288f, -0.0701106f, 0.0925554f, 0.208491f, -0.0419632f, -0.0154282f, -0.126497f, 0.0168359f, 0.0436009f, -0.274609f, 0.0128195f, 0.0621743f, -0.0803659f, 0.0133989f, -0.00578974f, 0.0238405f, 0.0647653f, 0.0889573f, 0.111611f, -0.0610732f, 0.0397738f, -0.0881247f, -0.0456843f, -0.00991273f, 0.257245f, 0.106486f, -0.103202f, 0.0292375f, 0.117623f, -0.142297f, 0.0380278f, -0.0237456f, 0.085873f, -0.0119802f, 0.110083f, -0.054789f, 0.0537737f, 0.0764002f, 0.0678683f, 0.100277f, 0.198497f, 0.00435722f, -0.0240797f, -0.0839242f, 0.0305168f, -0.0871477f, -0.0139894f, -0.0347457f, 0.150797f, 0.171671f, -0.075119f, 0.0332279f, -0.0362261f, -0.155447f, 0.107987f, 0.303345f, -0.0491202f, 0.0285548f, 0.0609114f, -0.0610807f, -0.00401999f, 0.464581f, 0.227319f, -0.0447277f, 0.201755f, -0.0142209f, -0.24117f, -0.0713394f, 0.236415f, 0.0736316f, 0.0505499f, -0.0340552f, -0.139998f, 0.113138f, 0.0639705f, 0.0252562f, 0.0681304f, 0.0729662f, -0.154108f, -0.0370336f, -0.0655222f, -0.27838f, -0.0501587f, -0.165525f, 0.179324f, -0.105473f, -0.0331684f, -0.0283479f, 0.135937f, -0.0547527f, -0.0467836f, 0.0033435f, 0.0156941f, 0.0047218f, -0.24743f, -0.096531f, -0.0200882f, 0.273806f, 0.278981f, 0.0356292f, -0.115866f, 0.0617501f, 0.117391f, -0.150181f, 0.27468f, 0.211088f, -0.0859859f, 0.305234f, 0.147988f, -0.00774846f, 0.192275f, 0.19428f, 0.237026f, -0.0432038f, -0.0356152f, -0.0686778f, -0.0837966f, 0.110859f, 0.0669315f, 0.0834317f, -0.112813f, 0.025964f, 0.103068f, 0.260716f, -0.142838f, -0.00515432f, 0.0783443f, 0.0607014f, 0.132554f, -0.0695809f, 0.0158086f, -0.0293789f, -0.09045f, -0.181092f, -0.0500432f, -0.0723359f, 0.0061213f, -0.00532339f, 0.0387893f, -0.169697f, 0.136319f, -0.366647f, -0.069176f, 0.0372781f, 0.236203f, 0.0302071f, -0.0081017f, -0.114434f, -0.0566733f, -0.226859f, -0.110097f, -0.00488356f, -0.0246233f, -0.170877f, 0.119313f, -0.274881f, 0.134015f, -0.026069f, 0.0742459f, 0.0456784f, -0.220086f, 0.00434143f, 0.154164f, 0.195988f, 0.193124f, -0.307741f, 0.129225f, 0.0160813f, 0.0630863f, 0.0598788f, -0.309603f, -0.0616257f, -0.00197308f, -0.0646607f, 0.0628336f, -0.00846857f, 0.0972558f, 0.0748166f, -0.266308f, -0.251294f, -0.128937f, -0.1163f, 0.0253391f, -0.0749366f, 0.0454661f, 0.262812f, 0.0814374f, -0.241465f, -0.0768699f, -0.206211f, -0.0192943f, 0.0709538f, 0.102729f, -0.0736348f, -0.283034f, -0.115033f, -0.136f, -0.344923f, -0.237765f, 0.207209f, 0.121756f, 0.193335f, -0.209788f, 0.13229f, 0.181532f, -0.126121f, 0.0848974f, 0.273434f, -0.0615593f, -0.0230852f, -0.0946842f, 0.0702052f, -0.161653f, -0.169474f, 0.134185f, 0.0388689f, 0.108938f, -0.2162f, 0.029539f, 0.0522565f, -0.0712883f, 0.234001f, -0.119683f, 0.0775894f, 0.11033f, -0.278518f, 0.264644f, -0.00732525f, -0.13894f, 0.0513663f, 0.00135871f, -0.0329149f, -0.228997f, 0.0463631f, -0.120336f, 0.0613229f, 0.0281554f, 0.0394879f, -0.03033f, -0.151549f, -0.2727f, 0.0199511f, -0.0582952f, 0.269337f, -0.0206802f, -0.135754f, 0.0737476f, 0.25559f, 0.115417f, 0.0246394f, -0.322252f, 0.118319f, -0.131576f, -0.0622457f, 0.0275447f, 0.308214f, -0.0232692f, -0.101536f, -0.163436f, 0.0314977f, 0.0127181f, -0.119993f, -0.315814f, 0.0591073f, 0.264107f, 0.147015f, -0.027191f, -0.00281464f, 0.11079f, 0.0663311f, -0.0128345f, -0.0793213f, 0.0134423f, -0.00192699f, -0.202369f, -0.184194f, 0.290663f, 0.269369f, 0.0898135f, 0.0336942f, -0.123668f, -0.0373619f, 0.0988615f, 0.0295653f, 0.00480153f, 0.0542742f, -0.0594875f, -0.127515f, 0.323121f, -0.10992f, 0.135076f, -0.235528f, 0.24481f, -0.139615f, -0.0130135f, -0.196316f, 0.0845129f, -0.0802333f, 0.108689f, 0.244391f, -0.0745825f, -0.0159578f, -0.157696f, -0.0916013f, -0.235401f, 0.133853f, 0.272199f, -0.108273f, -0.10433f, -0.165754f, 0.041021f, 0.0694289f, 0.23926f, -0.0238809f, 0.119121f, -0.315519f, 0.17245f, 0.0585702f, 0.157455f, -0.0739071f, 0.188655f, 0.076248f, -0.103378f, 0.108716f, -0.176239f, 0.00763201f, -0.162471f, 0.00461767f, 0.131009f, 0.139258f, -0.113167f, 0.127094f, 0.0183214f, 0.0586394f, -0.047209f, 0.0930451f, 0.283908f, 0.14481f, 0.171771f, 0.286281f, 0.245719f, -0.183809f, 0.141857f, 0.16219f, -0.115952f, 0.0869297f, 0.135726f, 0.048941f, 0.130358f, 0.0615104f, 0.211264f, 0.0238247f, 0.129598f, -0.157205f, -0.000154025f, 0.160698f, 0.00665002f, -0.0463887f, 0.0104579f, 0.0321867f, 0.0602388f, -0.117736f, 0.287636f, 0.117117f, -0.016508f, -0.00679228f, 0.0517474f, 0.0435405f, -0.266643f, -0.222785f, 0.0322382f, 0.106174f, -0.32817f, 0.0375751f, -0.0497845f, -0.0684418f, -0.0266482f, -0.286311f, 0.0283104f, 0.0662634f, 0.120756f, 0.00745027f, -0.081705f, 0.30508f, -0.12221f, -0.0122968f, 0.154571f, -0.166941f, -0.179859f, -0.137421f, -0.235574f, 0.00151092f, -0.182673f, -0.146637f, -0.0387497f, 0.149845f, -0.0658133f, -0.141898f, 0.118009f, 0.264247f, -0.16093f, 0.0806585f, -0.278654f, -0.122884f, -0.128832f, -0.0797265f, 0.105666f, 0.156184f, -0.00377323f, -0.145526f, -0.00362244f, 0.236278f, -0.101083f, -0.0277464f, 0.0596043f, -0.0217111f, 0.0826888f, 0.0315559f, -0.166152f, 0.222175f, -0.208717f, 0.230061f, 0.0221832f, 0.0558075f, -0.230628f, 0.203582f, 0.0405295f, -0.206545f, -0.12057f, 0.0553333f, -0.0172335f, 0.0157039f, 0.031095f, -0.0287896f, -0.226545f, 0.245018f, -0.290402f, -0.148136f, -0.0852567f, 0.153552f, 0.11402f, -0.302669f, 0.113713f, 0.0923915f, 0.0980988f, 0.240504f, -0.169069f, -0.2471f, -0.0624194f, 0.198725f, 0.0846549f, -0.15104f, -0.0240988f, 0.0323248f, -0.0410087f, -0.0470872f, 0.132139f, 0.00470996f, -0.0565412f, 0.0404969f, -0.239856f, 0.066231f, -0.0342397f, -0.00534338f, -0.0028714f, -0.183255f, 0.0664861f, -0.0860112f, -0.233003f, -0.275929f, -0.187401f, -0.247423f, -0.0383908f, 0.0562354f, -0.139706f, 0.136786f, -0.143417f, -0.0429024f, -0.151989f, -0.0110075f, 0.153415f, -0.0266486f, -0.026454f, 0.180149f, -0.0964213f, 0.261922f, -0.102429f, -0.0472981f, -0.0490077f, 0.180895f, 0.192663f, -0.0177421f, -0.0949353f, -0.0758087f, 0.177025f, 0.079779f, -0.176212f, 0.260571f, 0.0634258f, -0.080223f, -0.0205648f, 0.331562f, -0.14857f, 0.0423249f, -0.257634f, -0.0272132f, -0.0789685f, -0.0315504f, -0.0214664f, -0.0101245f, 0.226499f, 0.18587f, -0.0520173f, -0.145669f, 0.131987f, -0.0855753f, -0.102361f, -0.13527f, 0.0537783f, -0.200554f, 0.239655f, -0.155163f, -0.0262237f, 0.322866f, 0.107739f, -0.0822029f, -0.137638f, 0.0453679f, -0.0443988f, 0.107729f, 0.229157f, 0.0607556f, 0.0773093f, -0.305059f, -0.217605f, -0.107296f, -0.00678858f, -0.208052f, -0.0362597f, 0.0267506f, 0.170205f, 0.212641f, -0.00694023f, 0.104176f, -0.143046f, -0.301309f, 0.172457f, 0.0459481f, -0.121302f, -0.0390561f, 0.0492739f, -0.14447f, 0.0347022f, 0.195173f, 0.107997f, 0.025618f, -0.0593972f, -0.298063f, 0.262087f, -0.0541682f, 0.200378f, 0.00271018f, -0.156656f, 0.129609f, 0.0216752f, -0.115965f, -0.00358297f, -0.102979f, -0.219374f, -0.157662f, -0.0793514f, 0.223682f, -0.221371f, -0.0700215f, 0.0122864f, 0.001091f, -0.0243122f, 0.135462f, -0.0925944f, 0.0760771f, 0.110618f, 0.206593f, -0.133777f, 0.242776f, -0.0231643f, -0.0865485f, 0.187388f, -0.143834f, 0.184509f, -0.0979514f, 0.0681583f, -0.0146826f, -0.246099f, 0.161288f, -0.300084f, -0.00469408f, -0.190041f, 0.124229f, -0.172342f, 0.0444075f, -0.0291276f, 0.0836998f, 0.0738966f, 0.15149f, -0.159862f, 0.0015706f, -0.134817f, -0.00238816f, -0.0175515f, 0.0385684f, 0.24772f, 0.0704006f, 0.25104f, -0.15016f, -0.118512f, -0.115072f, 0.0868146f, 0.144835f, -0.244151f, 0.10077f, -0.0326381f, 0.251248f, -0.282463f, 0.101518f, -0.127353f, -0.0152281f, 0.29002f, -0.151106f, -0.0417497f, 0.135003f, -0.0632967f, 0.142274f, 0.241556f, 0.0937278f, 0.311326f, -0.21386f, 0.308358f, -0.00332839f, 0.112853f, 0.0747177f, 0.131949f, -0.00113941f, -0.182099f, 0.00648249f, 0.12444f, -0.117494f, 0.135089f, 0.144492f, 0.326555f, 0.00895607f, -0.0858859f, 0.0914946f, -0.0223307f, 0.0247698f, 0.0178395f, 0.0510333f, -0.14762f, -0.150787f, -0.109789f, -0.152583f, 0.0151013f, -0.120684f, -0.0739376f, -0.165714f, 0.00590024f, 0.0195002f, 0.0973369f, 0.17477f, 0.172428f, -0.0102863f, -0.376134f, 0.0958873f, 0.105968f, -0.023106f, -0.0316554f, 0.0440571f, -0.152842f, 0.0346226f, -0.0693197f, -0.296806f, -0.00763924f, -0.0221069f, -0.0125703f, -0.106765f, -0.0851428f, -0.155757f, -0.0706497f, 0.00762978f, -0.121871f, 0.178769f, -0.114424f, -0.0945537f, 0.123514f, 0.00868842f, 0.152037f, -0.0636954f, 0.212406f, 0.105316f, -0.0370213f, -0.0391723f, -0.127664f, -0.406008f, -0.142504f, 0.102034f, -0.0997521f, -0.0435001f, 0.104211f, -0.112622f, 0.0987583f, -0.0513983f, -0.155202f, -0.0954083f, 0.104867f, -0.150769f, 0.0239017f, -0.00188573f, -0.0069494f, 0.240382f, -0.117441f, -0.0486646f, 0.0182231f, 0.139967f, -0.230028f, 0.165401f, 0.0511067f, 0.0777054f, -0.0524147f, 0.0418476f, -0.00606931f, 0.162429f, -0.255007f, 0.0149565f, -0.0844013f, -0.0385425f, -0.0480358f, -0.173796f, 0.131292f, -0.0645762f, -0.0243002f, 0.40499f, -0.17295f, 0.111649f, -0.000994237f, 0.171638f, -0.057173f, -0.00636266f, -0.0823419f, 0.188787f, 0.198871f, 0.0285059f, -0.015919f, 0.00356111f, -0.0597717f, -0.0776907f, 0.00257063f, 0.0777249f, 0.122647f, -0.225712f, 0.0989555f, 0.0346382f, -0.142987f, -0.132549f, -0.0256475f, -0.00925872f, 0.0276774f, -0.158582f, -0.0405373f, 0.114779f, 0.0818737f, -0.00840881f, 0.0166841f, 0.068759f, -0.0016845f, -0.0385558f, -0.0205526f, -0.0214818f, 0.126886f, -0.0618775f, -0.115989f, 0.0214084f, -0.172495f, 0.0741136f, 0.206705f, 0.19746f, -0.143477f, 0.0480467f, -0.0882105f, 0.0710736f, -0.0885608f, 0.0591062f, 0.0216113f, -0.1391f, 0.161998f, -0.14736f, 0.126239f, 0.0194471f, -0.064678f, -0.00814411f, 0.108653f, -0.015057f, -0.146058f, 0.181598f, 0.00952934f, -0.126321f, 0.0415549f, 0.0778235f, 0.111422f, 0.0618313f, -0.0357691f, -0.0357133f, -0.01723f, 0.0322421f, -0.127937f, -0.0651249f, 0.020874f, 0.123305f, 0.197908f, 0.0548854f, 0.236361f, -0.00693601f, 0.0124484f, -0.022461f, -0.0405747f, 0.138735f, 0.0758762f, -0.10544f, -0.14491f, -0.144083f, -0.190234f, -0.0471713f, -0.0216039f, 0.103113f, 0.0121938f, -0.205695f, -0.00629575f, 0.000263237f, 0.0339111f, 0.00929677f, -0.143188f, -0.157713f, -0.105358f, 0.0305634f, 0.0103648f, 0.00583474f, 0.0884982f, -0.131031f, 0.0825038f, -0.12018f, 0.0457631f, 0.0548992f, -0.0238039f, 0.132552f, 0.0906662f, 0.0545967f, -0.138237f, -0.0225451f, 0.0300239f, -0.0221258f, -0.126118f, 0.0993662f, 0.0974555f, 0.025361f, -0.163176f, -0.0385406f, 0.0438621f, 0.0607055f, 0.181288f, -0.134372f, 0.0272555f, 0.0495917f, 0.00968781f, 0.0219917f, -0.0581774f, -0.0481319f, -0.0421929f, 0.0336532f, 0.146314f, -0.176831f, 0.140889f, 0.0900882f, -0.101571f, 0.0235093f, 0.0169326f, 0.0221906f, 0.197519f, 0.153946f, 0.130207f, 0.0464821f, 0.0951081f, -0.0605965f, 0.00964126f, 0.00361849f, -0.108903f, -0.047078f, 0.16207f, 0.182642f, -0.0399235f, -0.0303389f, -0.0530213f, 0.0852006f, 0.168962f, -0.0532977f, 0.0524209f, -0.0655188f, 0.0224447f, -0.0371878f, -0.0266729f, -0.217651f, 0.0541149f, 0.180789f, -0.0974125f, 0.0212871f, -0.0436121f, -0.016882f, 0.129243f, -0.183694f, 0.00519075f, -0.0963159f, 0.207814f, -0.0845458f, -0.189409f, -0.153433f, 0.0276101f, 0.0131589f, 0.0141048f, 0.0941256f, 0.206118f, 0.053761f, -0.150893f, -0.142813f, -0.0386562f, -0.0527692f, 0.0327319f, 0.121717f, 0.0019407f, 0.0920567f, -0.12593f, -0.0542617f, 0.135601f, -0.144814f, -0.359986f, 0.129561f, -0.156047f, -0.00611381f, -0.0508998f, 0.119467f, -0.00594893f, -0.104951f, -0.00305816f, -0.133624f, -0.0820906f, 0.16284f, 0.0246709f, -0.0242934f, -0.229282f, 0.0594479f, -0.0387453f, 0.327018f, 0.0832333f, -0.0546175f, -0.213787f, 0.105713f, -0.0535283f, -0.0714757f, 0.0699267f, -0.216771f, 0.16668f, -0.10806f, -0.186945f, -0.147182f, -0.0487411f, 0.0227094f, 0.104237f, 0.0653974f, -0.0128006f, -0.167558f, -0.0851738f, -0.231569f, 0.267991f, 0.110795f, -0.0475555f, 0.179779f, 0.187774f, 0.0298555f, 0.196788f, -0.122632f, 0.0601108f, -0.172051f, -0.131564f, 0.0520796f, 0.0565171f, -0.117058f, -0.01842f, 0.155856f, -0.00886715f, 0.058026f, -0.116574f, -0.0703433f, -0.0848511f, -0.0227889f, 0.131435f, 0.0920614f, 0.0142191f, -0.057021f, 0.14754f, -0.128089f, -0.00447003f, 0.0489744f, -0.0742142f, 0.1611f, -0.132788f, -0.0439793f, 0.142209f, -0.163353f, -0.0669025f, 0.0399556f, -0.179736f, -0.0718449f, 0.0519275f, -0.0882577f, 0.112193f, 0.112453f, 0.093447f, 0.0109246f, 0.205719f, 0.0861299f, 0.0188156f, -0.112848f, 0.0263442f, 0.0649587f, 0.0377382f, -0.0246933f, 0.210461f, 0.0201823f, 0.0590936f, -0.0314242f, 0.010467f, -0.0423374f, 0.124972f, 0.30061f, -0.0272721f, 0.143988f, -0.0359151f, -0.064902f, -0.147166f, -0.0831248f, 0.0632861f, -0.218923f, -0.160122f, -0.119424f, 0.28545f, 0.0648925f, 0.197234f, 0.14726f, 0.167587f, -0.0553418f, 0.0997188f, -0.0867724f, 0.220895f, -0.10239f, -0.0400909f, -0.0949743f, 0.007394f, 0.0470827f, 0.0707259f, -0.0473715f, -0.065779f, 0.0211362f, -0.0802733f, 0.0639124f, -0.19022f, -0.114969f, -0.230425f, 0.0420809f, 0.238213f, 0.278265f, -0.00459983f, -0.0217037f, 0.0254617f, -0.0298958f, -0.0352219f, 0.12083f, 0.104417f, 0.154958f, -0.219694f, 0.178633f, 0.354196f, -0.133559f, -0.0327067f, -0.00540849f, 0.0570564f, 0.0296331f, 0.0510918f, -0.0980873f, -0.0737091f, 0.24519f, 0.0472968f, -0.0958118f, -0.209335f, 0.076053f, 0.0349316f, 0.0563091f, -0.219592f, 0.0679603f, 0.346514f, 0.0831819f, -0.120415f, 0.116739f, -0.0313597f, -0.00877775f, 0.0446654f, -0.0257853f, -0.131466f, -0.219346f, 0.184464f, -0.055281f, -0.0244255f, -0.018898f, 0.0159459f, -0.18692f, 0.0612712f, -0.134497f, -0.0610252f, -0.243204f, 0.049313f, 0.152141f, -0.164636f, 0.315305f, -0.0506095f, -0.0355316f, 0.00342993f, -0.0825111f, 0.173159f, 0.0448778f, 0.0949401f, -0.0168617f, 0.0604713f, 0.00529238f, 0.0172037f, 0.12373f, 0.144905f, 0.122533f, 0.167461f, 0.0950983f, -0.0177524f, 0.00327194f, -0.0160404f, -0.0208724f, -0.104515f, 0.214812f, -0.19646f, 0.207475f, 0.116164f, -0.195117f, 0.176607f, 0.0339136f, 0.130835f, -0.02221f, -0.202539f, -0.172046f, -0.0941899f, -0.0780189f, 0.124635f, 0.130097f, -0.147655f, -0.0409528f, -0.0918206f, 0.192003f, 0.0846989f, 0.00813395f, -0.0571841f, 0.0367042f, -0.179557f, 0.114561f, -0.0980192f, -0.0269994f, 0.0053886f, 0.0597025f, -0.129266f, 0.186953f, 0.0813418f, 0.0939717f, 0.0667477f, -0.0560314f, 0.0451975f, 0.0252441f, -0.0221055f, 0.147684f, -0.173865f, -0.199246f, -0.0411149f, -0.112704f, -0.0565315f, 0.108362f, -0.144974f, -0.162988f, -0.111575f, 0.0265788f, -0.00890106f, -0.0178977f, -0.08986f, 0.0703224f, 0.0476373f, 0.210158f, -0.110834f, -0.12802f, 0.116054f, -0.212697f, -0.131273f, 0.00801188f, -0.110556f, 0.248738f, -0.1311f, -0.341513f, 0.155387f, 0.155443f, -0.0276753f, 0.144341f, -0.089461f, 0.026085f, 0.119125f, 0.0567627f, 0.072773f, -0.158473f, 0.0945811f, -0.0315728f, -0.04377f, -0.0150403f, -0.00729745f, 0.142317f, 0.120936f, 0.190095f, 0.0233196f, 0.228035f, 0.0150496f, 0.106554f, 0.0476135f, -0.0329344f, -0.111263f, -0.0211723f, 0.155245f, -0.0604858f, 0.0416884f, -0.0873578f, 0.130631f, -0.0351437f, 0.0204746f, -0.183214f, -0.139027f, -0.304068f, -0.149892f, 0.0376251f, -0.0820414f, -0.182545f, 0.108454f, 0.191444f, -0.101959f, 0.0719375f, -0.0164651f, -0.0987034f, 0.149542f, -0.204068f, 0.0127784f, 0.174592f, 0.0343265f, 0.122924f, 0.0431665f, -0.141557f, 0.0117127f, -0.0322788f, 0.14933f, -0.0201354f, 0.101328f, -0.124924f, 0.162047f, 0.0392944f, -0.0699462f, -0.25874f, -0.140536f, 0.0519642f, -0.0660416f, 0.147348f, -0.0387162f, 0.0147975f, 0.0944165f, -0.119876f, -0.0478616f, -0.138782f, -0.0194219f, 0.211961f, -0.078182f, -0.0152282f, 0.167309f, 0.112314f, -0.0184742f, -0.11764f, 0.0369592f, -0.115442f, -0.138806f, -0.112629f, 0.115105f, -0.0741001f, -0.12727f, -0.00318725f, -0.0239045f, -0.152646f, 0.00524426f, -0.0134906f, -0.015191f, 0.00753369f, 0.183738f, 0.0776605f, -0.0388847f, -0.210879f, -0.0413543f, -0.0982549f, -0.239683f, -0.0692745f, -0.101835f, -0.089657f, 0.094186f, -0.197261f, -0.0780426f, -0.0159851f, 0.191931f, 0.190446f, 0.0112359f, -0.0270607f, 0.209807f, 0.205749f, -0.052026f, -0.0622621f, 0.0432466f, 0.0112701f, -0.0309643f, -0.156309f, -0.0229816f, 0.155045f, -0.246506f, -0.0305113f, 0.0874038f, -0.0696813f, -0.0621594f, -0.00922468f, -0.212478f, -0.132799f, 0.107969f, -0.0305409f, 0.0368846f, 0.11745f, -0.0623185f, -0.202574f, -0.238665f, -0.250945f, -0.0678474f, -0.144682f, -0.141296f, -0.126331f, 0.136826f, -0.166103f, -0.0427836f, -0.10117f, 0.0429697f, -0.213964f, -0.118953f, -0.182049f, 0.0318732f, -0.221373f, 0.0776346f, -0.115913f, 0.0778452f, -0.0955978f, -0.0916027f, 0.0761035f, -0.046919f, -0.103768f, -0.0641391f, -0.0425329f, -0.0293475f, -0.0528072f, -0.208705f, 0.198237f, -0.0499454f, -0.0295664f, 0.101207f, -0.152127f, -0.0332852f, -0.0932966f, 0.0322394f, 0.148811f, 0.0671016f, 0.085233f, -0.0229056f, 0.0688913f, 0.0201434f, -0.15916f, 0.0419482f, 0.0577812f, 0.237656f, -0.029365f, 0.0990875f, -0.143842f, -0.0731253f, -0.0187979f, 0.205522f, 0.132423f, -0.0139414f, -0.17688f, 0.0382373f, 0.0495193f, -0.0906374f, -0.174426f, -0.0854582f, -0.0256774f, 0.0318874f, -0.0611257f, 0.0343127f, -0.0149535f, 0.0774626f, -0.179f, -0.191056f, 0.0875213f, -0.0956449f, -0.0138191f, 0.102789f, 0.0725355f, 0.0718597f, 0.149984f, 0.000232935f, -0.00407511f, 0.0137394f, 0.19766f, 0.0546618f, 0.0739116f, 0.0526755f, -0.252849f, 0.0168834f, 0.0402739f, 0.102832f, -0.0519505f, -0.152872f, 0.0774295f, 0.234158f, 0.149534f, -0.187071f, 0.0897228f, 0.19376f, -0.0556936f, -0.00879767f, 0.180617f, 0.380293f, -0.268834f, 0.162616f, 0.105894f, -0.069071f, 0.00989114f, -0.255108f, 0.232214f, 0.369527f, -0.194998f, -0.108501f, -0.124044f, 0.255006f, -0.0549f, 0.0695973f, -0.000798115f, -0.0654003f, -0.000310902f, 0.207367f, -0.0450613f, 0.0803703f, 0.0663274f, -0.182357f, 0.100641f, 0.105877f, 0.0341815f, -0.0283555f, -0.0185936f, -0.101771f, -0.015582f, -0.176385f, -0.0310862f, 0.179627f, -0.051354f, -0.00953948f, 0.108855f, -0.159956f, 0.0669853f, 0.0442537f, 0.0114954f, 0.0564079f, 0.0604694f, 0.240774f, 0.155946f, -0.289168f, -0.267203f, 0.0393056f, 0.207179f, -0.0828277f, -0.14614f, -0.125981f, 0.147088f, -0.176905f, -0.197316f, -0.0825901f, -0.233986f, 0.286773f, -0.000854531f, 0.157257f, 0.234148f, -0.0907154f, -0.0958162f, -0.101109f, 0.259525f, -0.109688f, -0.0545367f, 0.103526f, -0.197324f, -0.0188627f, -0.00613636f, -0.287774f, -0.143718f, -0.252679f, -0.0409939f, -0.00258467f, 0.116005f, 0.133501f, -0.258028f, 0.171875f, 0.0410688f, 0.0846721f, 0.277856f, 0.0642904f, -0.073238f, 0.114139f, 0.0838537f, 0.0328359f, 0.219899f, 0.147367f, -0.0692118f, -0.265726f, 0.108495f, 0.147056f, -0.125817f, -0.0722459f, 0.0673909f, -0.0787723f, 0.0685639f, 0.243758f, -0.130551f, 0.101384f, 0.0222948f, 0.0936024f, 0.20513f, -0.216283f, -0.0877217f, 0.0542439f, -0.0274307f, -0.0812488f, 0.000279876f, -0.154362f, 0.231005f, -0.11603f, -0.151201f, -0.279997f, -0.0851209f, -0.236279f, -0.0236202f, 0.109207f, -0.00188466f, -0.194896f, 0.162263f, -0.313276f, 0.103294f, 0.240769f, 0.21384f, -0.225069f, 0.0642183f, -0.0206802f, -0.0694722f, -0.111438f, -0.0314962f, -0.0218674f, -0.0807068f, -0.230082f, -0.0410822f, 0.149791f, -0.0846745f, -0.280147f, -0.0984454f, -0.111567f, -0.102528f, -0.113116f, -0.118515f, 0.0366549f, 0.246917f, -0.0350987f, 0.0219131f, -0.121658f, -0.217988f, -0.0597327f, -0.20059f, -0.127392f, 0.0682101f, 0.0529945f, -0.183243f, -0.26768f, 0.147716f, -0.268819f, 0.00510364f, 0.0773503f, 0.100703f, -0.20365f, -0.118263f, 0.00539374f, -0.172424f, 0.266906f, 0.0680255f, 0.208339f, 0.16001f, 0.0595683f, -0.2754f, 0.085715f, -0.278035f, -0.104312f, 0.0693332f, 0.0142187f, -0.161342f, -0.123433f, -0.0499202f, -0.0116822f, 0.0841614f, -0.217776f, 0.0592282f, 0.127705f, -0.179637f, -0.124887f, 0.186971f, 0.161425f, -0.113176f, 0.0985965f, -0.105669f, -0.258804f, -0.0904111f, 0.209128f, -0.129958f, 0.0380316f, -0.211398f, 0.0886198f, -0.105096f, 0.371725f, 0.194464f, 0.0373984f, -0.103819f, -0.0362573f, -0.0291902f, -0.117546f, 0.00579622f, -0.293285f, 0.0577168f, -0.221224f, -0.0571484f, 0.022508f, 0.148139f, -0.0895378f, 0.0516455f, 0.0440106f, -0.0901533f, -0.109453f, 0.0316768f, -0.156513f, 0.0259817f, 0.150321f, 0.0432197f, 0.141543f, 0.110303f, -0.100975f, -0.165019f, -0.0534634f, -0.0556247f, -0.0609562f, -0.0510987f, -0.0536591f, -0.0897507f, -0.140575f, -0.0412439f, 0.117053f, -0.0525714f, -0.187049f, -0.0914972f, 0.010405f, 0.103321f, 0.0907779f, 0.0759179f, -0.0035197f, -0.0372915f, -0.0773617f, 0.0920234f, -0.0277468f, -0.0312952f, -0.00962813f, 0.136202f, -0.0279936f, 0.237488f, 0.0179485f, -0.0710485f, -0.122229f, -0.0678157f, -0.00981743f, -0.164766f, 0.137396f, 0.0061775f, -0.0450598f, -0.0528082f, -0.0369818f, -0.0316844f, 0.080427f, -0.134359f, -0.00733725f, 0.219374f, -0.103167f, 0.12817f, -0.048257f, -0.0377479f, -0.0783979f, 0.0106942f, 0.0442449f, 0.0409792f, 0.0961813f, -0.221301f, -0.219588f, -0.00674309f, -0.0800115f, -0.0796975f, 0.0685485f, 0.00961007f, 0.176921f, -0.011034f, -0.0641952f, 0.101307f, -0.152272f, 0.103837f, 0.027135f, -0.2192f, 0.0330718f, -0.000200664f, -0.105897f, -0.0842064f, 0.0524679f, 0.261774f, -0.257306f, -0.0705397f, 0.13363f, 0.0548097f, -0.0659867f, -0.167675f, -0.00358065f, 0.0513893f, 0.0505789f, -0.0176746f, 0.0921801f, 0.0199328f, 0.230736f, 0.0348223f, -0.0391643f, 0.166645f, -0.0317868f, 0.00754383f, -0.0816593f, -0.216257f, -0.0238867f, 0.101245f, 0.188198f, -0.0142553f, 0.204737f, 0.233358f, 0.137374f, -0.0915018f, -0.159342f, 0.0535112f, 0.113296f, -0.0555649f, 0.091415f, 0.0195804f, 0.150048f, 0.0157197f, -0.0819246f, 0.0415233f, 0.11375f, 0.183233f, 0.150477f, 0.157121f, -0.0839367f, 0.147674f, -0.000352647f, 0.0213333f, 0.00660213f, -0.138133f, 0.0143286f, 0.0515107f, 0.0737252f, -0.00226656f, 0.237114f, -0.114063f, 0.0919386f, -0.0294259f, 0.0230396f, -0.0620066f, -0.0975459f, 0.0195209f, -0.202108f, 0.106024f, 0.0241281f, -0.0539252f, 0.124732f, 0.0177862f, -0.131941f, -0.0860311f, 0.0387776f, 0.102004f, 0.00745847f, 0.0236748f, 0.107057f, 0.0356041f, 0.115469f, 0.0103068f, 0.0915703f, 0.261651f, -0.0308855f, 0.0283765f, -0.104305f, 0.0466619f, 0.231595f, 0.00856632f, -0.123931f, 0.0867422f, 0.12206f, 0.0263221f, -0.160735f, 0.0827559f, -0.0993357f, -0.0558885f, 0.00189188f, -0.0425102f, -0.0875718f, -0.018929f, 0.0749857f, 0.134854f, 0.259351f, -0.0255012f, -0.0402002f, -0.0454825f, 0.00661745f, 0.0159384f, -0.113721f, -0.0422253f, -0.176183f, 0.0759854f, 0.228023f, 0.0365454f, 0.0153104f, 0.0832344f, -0.041851f, -0.0817729f, -0.0713131f, -0.0272966f, -0.044081f, -0.23341f, -0.0117098f, -0.0548158f, -0.0203078f, -0.165492f, -0.0603197f, 0.00991343f, 0.112964f, -0.096952f, 0.0533371f, 0.0046875f, -0.147596f, -0.0850082f, -0.156956f, -0.037149f, 0.0795623f, -0.046075f, 0.119502f, 0.0417791f, 0.0277976f, -0.0879307f, -0.0912004f, 0.0148868f, -0.168634f, -0.0773905f, 0.166992f, -0.016729f, 0.123202f, -0.0827246f, -0.149216f, -0.191871f, 0.0889267f, -0.0382517f, 0.0326869f, -0.0930414f, 0.0438343f, 0.0753757f, 0.10882f, -0.0394574f, -0.294095f, 0.110101f, -0.026806f, 0.0445976f, 0.0636212f, 0.0872997f, -0.108545f, -0.166892f, -0.0543634f, -0.0151545f, 0.00410242f, -0.0701291f, 0.0923119f, 0.0353995f, 0.129901f, -0.0296902f, -0.138605f, 0.0103529f, -0.191981f, 0.0160538f, 0.0909994f, -0.0609931f, 0.0271155f, 0.0496811f, -0.0204834f, 0.0156505f, 0.0231145f, -0.00984572f, 0.0755979f, 0.07863f, -0.00685346f, -0.163595f, -0.276162f, -0.0725678f, -0.0939709f, -0.0512356f, 0.00784586f, 0.0117216f, 0.141863f, -0.119269f, -0.115755f, -0.00714852f, 0.114098f, 0.119108f, -0.0106884f, 0.140766f, -0.119891f, 0.0157698f, -0.00911562f, 0.131631f, 0.0570977f, 0.0515854f, -0.266712f, -0.339381f, 0.161931f, -0.0485569f, 0.184658f, -0.0980587f, 0.034645f, 0.189099f, -0.129805f, -0.015864f, 0.0141468f, -0.0945048f, -0.0117726f, 0.0123998f, 0.147769f, -0.283536f, 0.0195991f, -0.0765599f, 0.0192664f, 0.213922f, -0.153609f, -0.327059f, -0.110075f, -0.286513f, 0.182521f, 0.00208359f, -0.212609f, 0.0899f, -0.195636f, 0.169317f, -0.309003f, -0.0949936f, 0.0299543f, -0.0720009f, 0.140049f, -0.1331f, -0.0884673f, 0.11877f, 0.0720482f, 0.201829f, 0.099198f, 0.200471f, 0.128426f, 0.136307f, -0.114119f, -0.0627119f, 0.0260456f, -0.142402f, -0.149379f, -0.0170706f, 0.0159811f, 0.0441825f, -0.13815f, 0.148243f, -0.013951f, 0.00559879f, -0.000747977f, -0.221245f, -0.190118f, -0.117131f, -0.0633102f, 0.25877f, -0.114842f, -0.0757059f, 0.0307167f, 0.0101628f, -0.138973f, -0.149257f, 0.0924269f, -0.0718917f, 0.104092f, 0.167393f, -0.0302943f, -0.086842f, 0.11917f, 0.0348518f, -0.176934f, -0.192872f, 0.197309f, -0.0953055f, -0.288812f, -0.0197136f, -0.300335f, 0.0816433f, 0.0391224f, 0.0462403f, -0.0695607f, 0.14088f, -0.154173f, -0.0380521f, 0.319759f, -0.0629018f, -0.0759701f, -0.080003f, -0.121717f, -0.109641f, 0.145157f, 0.116433f, -0.0361417f, 0.184595f, 0.0641646f, -0.00193287f, -0.0539697f, -0.0405871f, 0.142188f, 0.241876f, -0.201092f, 0.180932f, -0.0270759f, -0.0238999f, 0.107871f, -0.0465752f, -0.206117f, 0.0054723f, -0.107554f, -0.162535f, -0.102456f, -0.179642f, -0.0380198f, 0.0534831f, 0.0402602f, -0.00764631f, 0.235565f, -0.0856198f, 0.0151819f, -0.116179f, -0.0591573f, 0.16018f, -0.0609692f, 0.047347f, -0.15283f, -0.115081f, -0.167248f, -0.16094f, -0.183318f, 0.137728f, 0.0940922f, 0.0639829f, -0.194437f, 0.0526783f, 0.111975f, -0.210845f, -0.0254617f, -0.0947807f, 0.0553056f, 0.18012f, -0.249043f, -0.0360894f, 0.125186f, 0.101225f, -0.248883f, 0.0456278f, -0.0810857f, -0.0509769f, 0.181199f, 0.169804f, 0.104452f, 0.103814f, 0.044318f, 0.0325266f, -0.269384f, 0.0822999f, -0.0495858f, -0.0509872f, -0.0966735f, -0.2081f, -0.0495764f, 0.297221f, 0.148593f, 0.21942f, -0.125396f, 0.151792f, 0.0761182f, -0.0312699f, -0.166755f, 0.0692438f, 0.142637f, -0.18877f, 0.0531245f, 0.162321f, -0.0113977f, 0.270157f, 0.0452002f, 0.0182266f, -0.135115f, -0.0124127f, 0.162173f, -0.0281372f, -0.106075f, -0.0792995f, 0.173229f, 0.041672f, 0.0054245f, 0.227157f, -0.0707707f, 0.256057f, -0.212382f, -0.0886519f, 0.0763623f, 0.142234f, -0.0907801f, 0.17675f, -0.110136f, 0.206147f, -0.0530763f, -0.170806f, 0.0931767f, -0.169506f, 0.33239f, -0.0813131f, 0.0468566f, -0.183224f, -0.158352f, -0.0104384f, 0.279294f, -0.0785075f, -0.108748f, 0.0587887f, 0.0311139f, 0.0813147f, -0.120056f, -0.0906153f, -0.0527244f, -0.0978796f, -0.0670721f, -0.138685f, -0.180557f, 0.176102f, -0.201979f, 0.00453266f, -0.0332781f, 0.138526f, -0.106219f, -0.164551f, -0.22345f, -0.011662f, -0.207053f, 0.115373f, -0.0349758f, 0.0923614f, -0.13934f, 0.0265613f, -0.0297339f, 0.0796205f, -0.0483801f, 0.085027f, -0.0810752f, 0.11929f, -0.109755f, 0.0568927f, 0.0577608f, -0.0108103f, -0.00545267f, 0.0405332f, 0.0974564f, -0.114794f, 0.0114167f, 0.00376762f, 0.0893303f, 0.0811585f, 0.0524649f, -0.0714713f, 0.187636f, 0.0596198f, -0.0124645f, 0.127396f, 0.154154f, 0.23722f, 0.0995847f, -0.0853674f, 0.00510008f, -0.0228759f, 0.0565491f, -0.0566393f, -0.0723956f, -0.0638203f, -0.166752f, 0.0422821f, -0.071938f, 0.00780197f, 0.0163461f, -0.0663994f, -0.113159f, -0.00467096f, 0.0478138f, -0.00143455f, 0.00311732f, -0.0173128f, -0.192554f, 0.0137287f, -0.0332712f, -0.147347f, -0.0617092f, 0.0776224f, -0.10911f, 0.154725f, -0.23592f, -0.0208656f, 0.0915742f, 0.208398f, 0.0479482f, 0.0335789f, -0.177314f, 0.22049f, -0.0496062f, 0.106979f, -0.0292381f, -0.0900218f, -0.165543f, -0.125943f, -0.0287658f, 0.0907756f, 0.0146428f, -0.0493337f, -0.0149142f, 0.00898549f, 0.160963f, -0.025727f, -0.0374625f, 0.0928558f, 0.205841f, -0.114986f, 0.0134267f, 0.0205017f, 0.182026f, 0.0321609f, 0.0951664f, 0.0647983f, 0.040115f, 0.112531f, -0.0424381f, 0.0434306f, 0.164311f, -0.0970836f, -0.170357f, 0.119173f, -0.0144102f, 0.0230584f, -0.115468f, -0.129296f, 0.0697585f, -0.104081f, 0.132102f, -0.0547362f, 0.0180634f, 0.0815349f, 0.00991675f, -0.112585f, -0.136935f, 0.161616f, 0.11707f, 0.0331822f, -0.0140679f, 0.130925f, 0.19774f, -0.0459249f, -0.188139f, 0.105721f, -0.0522185f, 0.010737f, 0.0503844f, 0.137758f, -0.0128775f, 0.118943f, 0.165442f, -0.0791582f, 0.0699996f, 0.0226004f, 0.142217f, 0.115288f, -0.0137534f, -0.059613f, 0.00611709f, 0.0788033f, -0.0395997f, 0.115607f, 0.0865175f, -0.0479954f, -0.102217f, -0.0675117f, -0.185737f, 0.0826453f, -0.0340701f, -0.120216f, -0.123851f, -0.050005f, -0.112523f, 0.0837301f, 0.090548f, -0.245845f, -0.155203f, 0.0551614f, -0.0171377f, 0.239082f, -0.125891f, 0.0630528f, 0.0933581f, -0.0167135f, -0.0937839f, -0.0368023f, -0.0209294f, 0.0594811f, -0.0307307f, 0.0552699f, -0.100843f, 0.0112547f, -0.205939f, 0.0973175f, 0.0421776f, 0.0272808f, -0.0520567f, -0.214256f, 0.0626627f, -0.0604528f, 0.0547477f, 0.0799137f, 0.204048f, 0.0848787f, -0.00635553f, -0.0522013f, -0.00235451f, -0.175829f, 0.101749f, 0.182402f, -0.0232234f, -0.0433054f, 0.242536f, -0.0445484f, -0.0618805f, -0.123853f, -0.140288f, -0.0157933f, 0.132581f, 0.0780789f, 0.189638f, 0.0264364f, 0.122405f, -0.00225209f, 0.116837f, 0.10275f, -0.122147f, -0.142695f, 0.0711552f, 0.142025f, -0.0330992f, 0.122009f, 0.0306405f, -0.127432f, 0.165881f, 0.123771f, 0.0227245f, -0.105207f, 0.135511f, -0.00215065f, -0.166136f, 0.047394f, 0.265542f, 0.0647096f, -0.0452826f, -0.0923482f, -0.0541752f, -0.0859512f, 0.000349665f, 0.0136817f, 0.0240058f, 0.0165937f, 0.0974665f, -0.0245205f, 0.191577f, -0.0612633f, 0.00986032f, 0.247865f, 0.059394f, 0.387735f, -0.12455f, 0.0972498f, -0.06322f, -0.243514f, 0.0916761f, -0.0224198f, 0.0781361f, -0.117204f, 0.0714679f, -0.0879231f, 0.00613971f, -0.251385f, -0.165874f, 0.179598f, -0.202991f, -0.144551f, 0.104699f, -0.242926f, -0.0885596f, -0.0389531f, -0.211425f, -0.0675258f, -0.0591405f, -0.0418256f, -0.132249f, 0.100261f, -0.0150262f, 0.33493f, 0.255805f, 0.219947f, -0.0961759f, -0.080413f, -0.0806051f, -0.270587f, 0.196766f, 0.254277f, -0.041627f, 0.122888f, -0.0865164f, 0.0103125f, -0.0762834f, 0.108189f, 0.0626955f, -0.108459f, 0.200614f, -0.102754f, -0.251348f, 0.104758f, 0.207197f, -0.0148683f, 0.252803f, 0.0380721f, 0.185383f, -0.00142583f, 0.220428f, -0.124728f, 0.159849f, -0.163108f, -0.135885f, -0.0389961f, -0.164239f, 0.178085f, 0.0929262f, -0.0107695f, -0.080797f, -0.0126872f, -0.000904867f, 0.145704f, -0.141154f, -0.0678398f, -0.156198f, -0.0348643f, -0.239588f, 0.0690421f, 0.190587f, -0.161579f, -0.0985798f, -0.0793348f, -0.169303f, 0.067533f, 0.146464f, 0.0844152f, -0.154435f, 0.161747f, -0.00931832f, 0.225277f, -0.261715f, 0.0902167f, -0.168972f, 0.00497935f, -0.329854f, -0.146608f, 0.017261f, 0.12618f, -0.106885f, 0.0984772f, 0.29349f, -0.233578f, 0.305601f, 0.110936f, 0.123489f, 0.0691069f, -0.0902201f, 0.108062f, -0.0867201f, -0.0221424f, -0.0584119f, 0.0774929f, 0.184259f, -0.0476509f, -0.0764961f, 0.408196f, -0.180963f, 0.00160038f, -0.00827263f, -0.117734f, -0.0944183f, 0.00158727f, 0.0202884f, -0.0546623f, 0.0770525f, 0.304764f, -0.0928889f, -0.101574f, 0.134219f, 0.00779221f, -0.0778918f, -0.289384f, -0.0832922f, -0.0486298f, 0.101597f, 0.0311883f, -0.00317191f, -0.0720866f, 0.0769254f, 0.123929f, -0.240308f, -0.123415f, -0.136531f, 0.190588f, 0.18671f, 0.106529f, -0.0853246f, -0.109328f, -0.13035f, -0.0779896f, 0.0653695f, -0.0146733f, -0.189777f, 0.00751815f, -0.174761f, 0.194905f, -0.0142047f, 0.130616f, -0.157629f, -0.121312f, -0.0485983f, 0.00913763f, -0.0869852f, -0.116957f, 0.0254693f, -0.119701f, 0.101297f, -0.135123f, -0.0392463f, 0.162416f, 0.0626727f, -0.177739f, -0.115327f, -0.118913f, 0.0282939f, 0.0382036f, 0.261122f, 0.0773296f, 0.171973f, -0.186872f, 0.0973311f, 0.340937f, 0.010346f, 0.0915992f, 0.0991948f, -0.0423637f, -0.00183198f, -0.0411322f, 0.0155469f, -0.191898f, 0.0832257f, 0.0841026f, -0.0786681f, -0.126935f, -0.0951586f, 0.0416147f, 0.187229f, -0.0239801f, 0.0150543f, -0.16696f, -0.154104f, -0.0377587f, 0.203267f, 0.170702f, 0.00744711f, 0.041501f, 0.113254f, -0.0361953f, 0.125948f, -0.0651736f, -0.0728051f, 0.203126f, -0.0135861f, -0.0687471f, 0.146681f, 0.0567412f, -0.0726204f, -0.0189007f, -0.0423142f, -0.0308153f, 0.232426f, 0.0877491f, 0.0368061f, -0.139387f, 0.0234843f, -0.180735f, -0.00102971f, -0.13839f, 0.107926f, 0.0805676f, -0.17635f, 0.294178f, 0.0974086f, -0.28707f, 0.0386707f, -0.318314f, -0.0410431f, 0.251015f, -0.0893823f, -0.113499f, -0.00655773f, -0.211325f, -0.31638f, 0.0578761f, 0.196874f, -0.130963f, 0.00534039f, 0.132623f, 0.0949752f, -0.0397167f, 0.154326f, 0.0151189f, 0.145304f, 0.0229047f, 0.105323f, -0.164449f, -0.0814969f, 0.065868f, -0.159203f, -0.149181f, -0.0871604f, 0.130262f, -0.0889267f, -0.147594f, -0.101318f, 0.0126386f, 0.0264179f, 0.0185599f, -0.107454f, -0.0392964f, 0.0809658f, -0.163813f, 0.0838612f, -0.175296f, 0.0638462f, -0.171399f, 0.249721f, 0.103268f, 0.0426377f, -0.318384f, -0.158234f, 0.289237f, -0.113552f, -0.0689458f, 0.0498394f, 0.0877111f, 0.275764f, 0.0438435f, 0.0488679f, -0.386447f, -0.0417094f, 0.141136f, 0.207956f, -0.133727f, 0.0546381f, 0.161183f, 0.0331931f, -0.177998f, 0.0899087f, -0.163656f, 0.0438686f, 0.109226f, 0.140436f, -0.167026f, 0.00316474f, 0.163685f, -0.105079f, -0.26251f, -0.0483589f, 0.0148004f, 0.231921f, 0.0338784f, 0.0624403f, 0.122127f, 0.00639778f, -0.0168125f, 0.211684f, -0.0919526f, -0.134672f, -0.004814f, -0.179132f, -0.127493f, -0.00334788f, 0.312112f, -0.273497f, -0.261453f, -0.0382388f, 0.280622f, -0.149282f, 0.0530876f, -0.215819f, 0.0033581f, 0.205759f, -0.0638033f, 0.13421f, 0.0390411f, -0.000683117f, -0.0318431f, -0.247933f, -0.0954533f, 0.288239f, -0.0463416f, -0.0949165f, 0.0587334f, -0.0375243f, -0.141043f, 0.103011f, -0.175702f, 0.0522119f, 0.249905f, -0.139124f, 0.329868f, -0.108997f, 0.10862f, -0.0508142f, -0.209573f, -0.0513748f, -0.0595102f, 0.0626003f, 0.239609f, -0.161889f, 0.101241f, -0.0647467f, 0.124609f, 0.12972f, 0.157267f, 0.122701f, -0.0633269f, 0.108939f, -0.044106f, -0.0625188f, 0.0812618f, -0.0319835f, 0.128412f, -0.321742f, -0.163211f, 0.30484f, -0.130449f, -0.0915027f, -0.038646f, -0.166623f, -0.127438f, -0.0810715f, 0.0593131f, 0.00601269f, -0.148632f, -0.105779f, 0.219883f, -0.0165549f, 0.0156407f, 0.099046f, -0.25819f, 0.042895f, -0.0670554f, -0.107927f, 0.12225f, -0.0827782f, 0.0450842f, 0.0721698f, 0.214924f, 0.0324016f, -0.0577733f, 0.11199f, 0.0134028f, 0.0742361f, -0.0173446f, -0.0893513f, -0.0344498f, 0.215465f, 0.0665219f, -0.0348178f, 0.251187f, 0.218263f, 0.0059412f, 0.12813f, 0.120688f, -0.131444f, -0.0276951f, -0.126923f, -0.0178645f, -0.119023f, 0.0150373f, -0.164305f, 0.217799f, -0.0434913f, -0.00268574f, 0.0710565f, -0.203264f, -0.0274433f, 0.144534f, 0.131569f, -0.28048f, -0.167987f, 0.126629f, 0.0600028f, -0.25222f, -0.157738f, 0.106533f, -0.115165f, -0.0714778f, -0.0164584f, 0.115462f, 0.147568f, -0.0466866f, 0.037444f, -0.197109f, 0.107987f, 0.213621f, 0.140662f, -0.0593083f, 0.0534667f, 0.272627f, 0.0448053f, -0.0559392f, 0.163033f, -0.083483f, -0.153211f, 0.0847852f, -0.268376f, 0.107049f, -0.0692813f, 0.179735f, 0.0894667f, 0.245097f, -0.0410475f, 0.226333f, -0.0539978f, -0.0257044f, 0.0296528f, -0.0109396f, -0.0228753f, 0.120183f, 0.0359693f, -0.0480189f, 0.0004811f, -0.127702f, -0.0587402f, 0.19034f, -0.168509f, -0.119243f, -0.0543518f, 0.00282357f, -0.0734806f, 0.148994f, 0.236078f, 0.0600728f, -0.116815f, 0.222833f, 0.0620931f, 0.107965f, 0.173493f, -0.0601631f, 0.0111151f, -0.0463581f, -0.0879156f, -0.13993f, 0.0926466f, 0.128154f, -0.0254487f, -0.00816469f, -0.0229358f, -0.00948208f, -0.0788079f, 0.106906f, 0.0349257f, -0.196585f, 0.0913392f, -0.0613641f, -0.0111153f, -0.1687f, -0.0943344f, 0.0322457f, -0.268754f, -0.194013f, 0.147399f, 0.16619f, 0.176339f, 0.102031f, -0.196591f, -0.155343f, 0.0168552f, -0.0638459f, -0.0816882f, 0.089077f, 0.0866105f, 0.0476312f, 0.0716394f, 0.0413187f, 0.160483f, 0.344105f, 0.0532816f, -0.0963314f, -0.0884465f, 0.121514f, -0.0338976f, -0.143923f, -0.0991742f, 0.125231f, 0.0897348f, -0.273089f, 0.0310493f, 0.123848f, -0.172916f, -0.129795f, -0.193297f, -0.11786f, 0.26131f, 0.105428f, 0.0475221f, 0.0626325f, 0.21736f, -0.0377639f, -0.0703324f, 0.0979338f, 0.0130228f, -0.0555721f, -0.226212f, -0.24478f, 0.158895f, -0.120534f, -0.275076f, 0.00669382f, -0.134819f, -0.0700938f, 0.0549789f, 0.384215f, 0.188899f, 0.171978f, 0.0207141f, 0.140545f, 0.00848386f, 0.231068f, -0.0945408f, 0.322904f, -0.0390001f, 0.300194f, -0.126383f, 0.325266f, 0.0232631f, 0.170953f, 0.0579404f, -0.125777f, 0.103861f, -0.156523f, 0.00937264f, -0.198436f, 0.149871f, 0.162991f, -0.0124394f, 0.141615f, -0.289531f, 0.052058f, -0.0327306f, 0.108435f, 0.153583f, -0.013696f, -0.0442393f, -0.0427641f, 0.00455678f, -0.294431f, 0.00276646f, 0.28193f, 0.237563f, 0.133731f, 0.146254f, -0.0613669f, 0.317904f, 0.0255455f, 0.110035f, 0.281648f, -0.06749f, 0.00115985f, 0.0714503f, 0.0583333f, 0.347783f, -0.107605f, 0.16252f, -0.0571812f, -0.318411f, -0.19124f, 0.140491f, 0.123983f, 0.223898f, -0.0996085f, 0.0299815f, 0.00223249f, 0.161833f, 0.23512f, 0.0739975f, 0.175972f, 0.243359f, -0.188155f, -0.0789917f, 0.184595f, 0.153149f, 0.00247848f, 0.117213f, -0.0382661f, -0.082582f, -0.14334f, -0.181324f, 0.101525f, 0.0330104f, 0.240034f, -0.0045391f, -0.181914f, 0.299235f, -0.0335292f, 0.0528116f, 0.0722831f, -0.155284f, -0.00452411f, 0.0456743f, 0.0256312f, -0.377707f, 0.11566f, -0.0740949f, -0.192694f, 0.234295f, 0.125992f, 0.047263f, 0.0438091f, -0.0572955f, 0.0185556f, 0.00618781f, 0.341274f, 0.308578f, -0.292979f, -0.0481948f, 0.32043f, 0.243199f, 0.407614f, 0.110808f, -0.105218f, 0.0127653f, -0.0511497f, -0.183797f, -0.335988f, -0.187166f, 0.204838f, 0.228422f, 0.204738f, -0.22787f, -0.209895f, 0.0677594f, 0.0607512f, 0.351353f, 0.0804384f, 0.0133103f, -0.0636157f, 0.136659f, 0.241267f, -0.241411f, 0.250134f, 0.333456f, 0.201198f, 0.134929f, 0.221346f, 0.408574f, -0.192473f, -0.222754f, -0.31896f, 0.14486f, -0.159121f, -0.0614902f, 0.0602599f, -0.141813f, 0.117522f, 0.337956f, 0.0215327f, 0.0800383f, 0.0244147f, -0.297408f, 0.0593731f, 0.0248527f, -0.15546f, -0.0130557f, -0.247646f, -0.202897f, 0.10092f, 0.0353508f, -0.203628f, 0.170328f, 0.0243493f, -0.110032f, 0.076512f, -0.129277f, 0.286365f, 0.0486933f, 0.350282f, -0.0373733f, -0.214626f, 0.136388f, -0.232195f, -0.174539f, 0.208282f, -0.189153f, -0.0262647f, 0.164024f, -0.00322615f, -0.295858f, -0.139519f, -0.0493148f, 0.0417425f, -0.027099f, 0.197394f, -0.20298f, 0.0251385f, 0.0916069f, -0.237709f, -0.378588f, -0.237606f, 0.0725018f, 0.196987f, 0.13596f, 0.48924f, -0.0664658f, -0.0936155f, 0.111383f, 0.348506f, -0.341274f, 0.0218134f, -0.0171959f, -0.0975398f, 0.390076f, -0.337476f, -0.136798f, 0.216528f, 0.290171f, 0.126973f, 0.278784f, -0.41047f, -0.208496f, 0.028047f, 0.0391722f, 0.077703f, 0.0632136f, 0.193725f, -0.00169319f, -0.00713146f, 0.27932f, -0.0887334f, -0.205427f, -0.0430191f, 0.0343762f, -0.0303455f, 0.166629f, 0.183267f, 0.09015f, -0.149575f, -0.196418f, -0.112035f, 0.0326912f, -0.22531f, -0.0449764f, -0.0134386f, -0.0907338f, 0.0845167f, 0.0130769f, 0.143257f, -0.251415f, 0.0222905f, 0.177f, 0.312136f, -0.0668499f, -0.277798f, 0.217193f, -0.221173f, -0.225697f, 0.0852289f, 0.205456f, -0.12979f, 0.203034f, 0.0511422f, -0.0319011f, 0.0371529f, 0.12534f, -0.0958767f, 0.00995225f, 0.0892601f, -0.211437f, 0.0496327f, 0.298953f, -0.0618729f, 0.115743f, 0.0142178f, -0.160998f, -0.023048f, -0.14635f, 0.247616f, 0.0581175f, -0.345285f, 0.175156f, 0.390537f, 0.0290424f, 0.00536204f, 0.0205955f, 0.0251875f, -0.159626f, -0.214517f, -0.201106f, -0.207516f, -0.0181582f, 0.00142191f, -0.138551f, -0.093576f, 0.253047f, 0.182986f, 0.270854f, 0.0980316f, 0.134018f, -0.0753587f, -0.0934186f, -0.0417865f, 0.0760947f, -0.123353f, 0.119703f, -0.0247803f, 0.0810322f, -0.0966168f, -0.0425038f, 0.254391f, 0.23974f, -0.176252f, -0.012665f, -0.0201653f, 0.0717864f, -0.115192f, 0.168319f, 0.162917f, 0.0472496f, 0.114815f, 0.0746617f, 0.105803f, -0.113877f, -0.194964f, -0.176246f, 0.0102298f, 0.251912f, 0.0988414f, -0.169374f, -0.0878956f, 0.074899f, 0.0742858f, -0.0548386f, 0.0486498f, 0.0500619f, -0.0534226f, -0.20588f, -0.0235865f, -0.146443f, 0.18493f, -0.134245f, 0.084008f, -0.19147f, 0.342372f, 0.117874f, -0.0672294f, 0.157897f, -0.170561f, -0.110043f, -0.245715f, 0.0864109f, 0.148541f, -0.168412f, 0.110254f, 0.0213399f, -0.0262625f, 0.0216387f, 0.081273f, 0.20711f, -0.0837376f, 0.193384f, -0.0161138f, -0.0020173f, -0.052664f, -0.0270274f, 0.0020696f, 0.133708f, -0.0557403f, -0.0203359f, 0.125437f, -0.112856f, -0.0731342f, -0.044002f, -0.0569085f, -0.14775f, 0.0880233f, -0.134032f, 0.136775f, 0.222044f, 0.155742f, -0.126251f, 0.139135f, 0.0496445f, 0.16836f, 0.0584987f, 0.173866f, 0.150819f, 0.0811541f, 0.130811f, 0.194936f, 0.0409683f, -0.0367834f, 0.000149545f, 0.0266364f, -0.10762f, -0.0744572f, 0.0357041f, 0.0820534f, -0.161106f, -0.0382884f, 0.0106689f, 0.180329f, 0.114688f, -0.124156f, 0.0913282f, -0.0770239f, 0.114428f, -0.129433f, -0.0550064f, 0.027444f, -0.15806f, 0.0385646f, 0.119056f, 0.0348539f, 0.0917802f, 0.0435688f, 0.0420414f, -0.198134f, -0.0158169f, -0.0936677f, 0.0458625f, -0.0238561f, -0.177121f, -0.021101f, 0.033032f, 0.196815f, 0.120659f, -0.194054f, 0.157931f, -0.00472717f, 0.117359f, 0.134495f, -0.053921f, 0.0460138f, -0.126484f, 0.075228f, -0.0345197f, 0.0753778f, -0.0432159f, 0.118759f, 0.156282f, -0.207618f, -0.0352771f, 0.0947418f, 0.162718f, 0.15894f, -0.073309f, -0.0345916f, -0.0477376f, -0.108544f, 0.0625032f, 0.109028f, 0.149014f, -0.106344f, 0.0988595f, 0.0943966f, -0.0590822f, 0.218523f, -0.00959039f, -0.0452321f, -0.129142f, -0.0380725f, 0.0524109f, 0.0185909f, -0.0881881f, -0.0759803f, 0.10065f, -0.00338918f, 0.0371343f, 0.13367f, 0.154284f, -0.0589811f, 0.0367625f, 0.0191081f, -0.118674f, -0.115382f, -0.0184058f, -0.0996128f, -0.0900266f, -0.0149619f, -0.00604138f, 0.0427839f, 0.0396507f, 0.110454f, -0.0803982f, 0.206448f, 0.0298396f, -0.0294202f, 0.112359f, 0.09149f, -0.174763f, -0.00177914f, 0.116822f, -0.106402f, 0.137422f, 0.0176151f, 0.177884f, 0.0633152f, 0.054863f, -0.0264787f, 0.0472432f, -0.0938444f, -0.0854722f, -0.0324447f, 0.000590699f, 0.10279f, -0.152939f, 0.0108718f, -0.236445f, 0.26396f, -0.0927497f, 0.0453768f, 0.103077f, -0.0934696f, -0.0774064f, -0.104909f, 0.155657f, -0.120398f, 0.036363f, -0.0183582f, -0.0814592f, -0.174068f, -0.0564456f, -0.137154f, 0.152503f, -0.0159088f, 0.0534486f, 0.0499862f, -0.0669836f, 0.219159f, -0.127971f, 0.0698788f, 0.0746974f, -0.0045622f, -0.0994335f, 0.1135f, -0.0852066f, -0.0695476f, 0.208474f, -0.200505f, 0.193807f, -0.0545312f, -0.202293f, 0.0812673f, 0.0625461f, 0.0588943f, 0.0724156f, 0.203029f, 0.0259759f, -0.0901303f, -0.0219408f, -0.0888896f, 0.081236f, -0.0317622f, 0.044379f, -0.0430961f, 0.0856837f, 0.0326342f, -0.142247f, 0.0759652f, -0.103662f, 0.127878f, 0.0259732f, -0.0103722f, -0.14901f, 0.0628586f, -0.0973158f, -0.00399707f, -0.0561753f, -0.0915751f, -0.00333325f, -0.0906938f, -0.0391448f, -0.178008f, -0.0434613f, -0.0214288f, 0.238309f, 0.0113643f, -0.149621f, 0.202073f, 0.0836503f, -0.0195217f, 0.0506603f, 0.152843f, 0.0577584f, -0.00258027f, 0.0180769f, 0.0944823f, -0.0589446f, -0.0328215f, -0.0125629f, 0.0273714f, 0.0995576f, -0.0605315f, 0.0887184f, -0.0566169f, -0.00528221f, -0.00269799f, -0.0889987f, -0.139771f, 0.043793f, -0.0812081f, -0.113676f, 0.280968f, 0.127141f, 0.123988f, -0.120612f, 0.124183f, 0.0682668f, 0.0184426f, 0.0407891f, -0.121703f, 0.13427f, 0.179278f, 0.0353566f, -0.00700894f, -0.0131486f, 0.276428f, 0.0299221f, 0.0882377f, -0.0485904f, 0.228512f, 0.0683871f, 0.11681f, -0.131492f, -0.0473126f, -0.143802f, 0.209973f, 0.148305f, 0.194445f, -0.128202f, -0.289373f, 0.146413f, 0.0495135f, 0.227124f, -0.0915532f, 0.0860053f, -0.129163f, -0.0232715f, -0.143231f, -0.0403843f, -0.263079f, -0.258963f, 0.0373287f, -0.152107f, 0.173103f, -0.179883f, -0.0426054f, -0.0701035f, -0.0529014f, -0.300461f, -0.106565f, -0.0671253f, 0.0348831f, 0.270421f, -0.0208906f, -0.161918f, 0.259957f, -0.000491392f, 0.108646f, 0.0160883f, 0.209869f, 0.240919f, -0.000419807f, -0.0803292f, 0.190007f, 0.162901f, -0.163586f, -0.196105f, -0.0263001f, -0.135165f, -0.237858f, -0.0669709f, -0.0247899f, -0.180838f, -0.165982f, 0.0413889f, -0.0878847f, 0.121974f, 0.0275904f, -0.126728f, 0.156293f, 0.203662f, 0.160851f, 0.0482626f, 0.038369f, -0.0622691f, 0.163481f, -0.00751447f, -0.0942163f, -0.140449f, -0.0168947f, 0.057693f, -0.0838783f, -0.0908478f, 0.0160598f, -0.0896725f, -0.206888f, 0.256944f, 0.0182125f, -0.0419116f, -0.0801749f, 0.0567987f, -0.0758247f, -0.0509105f, -0.136345f, 0.173646f, -0.0933856f, -0.109525f, 0.109829f, 0.0956237f, -0.234245f, -0.0286638f, -0.0446419f, -0.0166638f, 0.107707f, -0.0647f, -0.207048f, -0.089567f, 0.143311f, -0.00172949f, 0.0664921f, -0.207602f, -0.307255f, -0.125168f, 0.275814f, 0.242346f, 0.0593008f, 0.04329f, -0.0139195f, -0.130654f, -0.146778f, -0.206878f, 0.24702f, 0.232899f, 0.238517f, -0.0900141f, 0.212391f, -0.0275089f, 0.264127f, 0.16429f, 0.204686f, 0.188106f, -0.0540269f, 0.126275f, 0.0422578f, 0.0815752f, 0.222706f, 0.07184f, 0.168879f, 0.0662651f, 0.193632f, -0.151378f, -0.0118468f, 0.0430249f, 0.138268f, 0.0256582f, 0.132071f, 0.121496f, 0.632917f, 0.363345f, 0.183553f, -0.160558f, -0.188213f, 0.0374665f, 0.427331f, 0.000171984f, 0.47396f, 0.170148f, -0.0730999f, -0.287165f, -0.157577f, 0.300306f, -0.070066f, -0.0531992f, 0.271227f, -0.143533f, -0.102457f, 0.02493f, -0.108968f, 0.0479204f, -0.0319453f, 0.212504f, 0.0756465f, -0.0606006f, 0.103691f, 0.0688439f, 0.0463161f, -0.182202f, -0.155148f, -0.174988f, -0.14483f, -0.327794f, 0.0951732f, -0.118651f, 0.333927f, 0.297083f, -0.0900023f, -0.0555982f, -0.0546888f, 0.0294638f, 0.00857906f, -0.0763662f, -0.0238936f, -0.338014f, 0.136149f, -0.0145639f, 0.0109666f, 0.0391954f, -0.181647f, -0.0758559f, 0.03949f, 0.206094f, -0.139511f, 0.155154f, 0.182212f, -0.0858619f, -0.00786632f, 0.0124496f, 0.0341607f, -0.0130458f, -0.168825f, 0.146084f, 0.209101f, -0.0339139f, -0.142922f, -0.287265f, 0.0114342f, 0.115846f, -0.203705f, 0.0831757f, -0.118805f, 0.0320468f, 0.0560313f, -0.104107f, 0.339622f, 0.24769f, 0.279512f, -0.0654988f, -0.136675f, 0.081877f, -0.321798f, 0.0122436f, -0.0972215f, -0.0262006f, -0.0647649f, 0.15098f, -0.103309f, 0.17958f, 0.002529f, -0.0178165f, -0.188596f, -0.0766873f, -0.148783f, -0.00697379f, 0.0648135f, -0.00672237f, 0.110408f, -0.188361f, -0.217419f, 0.0759514f, -0.114524f, 0.12845f, 0.211112f, 0.119799f, -0.131877f, -0.00444583f, -0.00714569f, -0.0995274f, -0.0472984f, -0.1081f, 0.00827757f, -0.0364817f, -0.0387316f, 0.234219f, 0.0389007f, 0.0785845f, 0.217169f, 0.267261f, 0.220291f, 0.231876f, 0.266147f, -0.25571f, 0.108857f, 0.221354f, 0.169418f, -0.20393f, -0.235525f, -0.247178f, -0.190237f, -0.138516f, -0.21299f, 0.291869f, -0.168337f, -0.02255f, -0.00526297f, -0.000288096f, 0.229935f, -0.0786598f, -0.389797f, 0.00564779f, 0.251128f, 0.00234686f, 0.0284467f, -0.0255846f, 0.207459f, -0.18365f, -0.286128f, 0.0533774f, 0.357443f, 0.156817f, 0.105348f, -0.109441f, -0.372999f, 0.284815f, -0.11383f, 0.16793f, -0.243858f, 0.264562f, -0.143981f, -0.0505693f, -0.263906f, 0.0132039f, 0.0812405f, 0.240987f, -0.00734969f, -0.121568f, -0.179972f, 0.0937363f, -0.111196f, 0.0652074f, -0.375879f, 0.0222462f, -0.0820223f, 0.105115f, -0.177533f, -0.0472765f, 0.232382f, 0.0092087f, -0.0632266f, 0.105213f, 0.172696f, -0.0150079f, -0.1108f, 0.214626f, -0.181404f, -0.206977f, 0.182976f, 0.265772f, -0.00616683f, 0.0448331f, -0.059973f, 0.197987f, 0.150192f, 0.229183f, -0.122923f, -0.116643f, -0.272966f, -0.340992f, 0.0541555f, 0.0394092f, 0.0128733f, 0.0934338f, 0.0320141f, 0.144632f, -0.0696764f, 0.240122f, -0.0082626f, -0.161436f, -0.209722f, -0.0173464f, -0.162676f, -0.0128297f, -0.0487542f, -0.00946108f, 0.0629974f, 0.146315f, -0.106997f, -0.153567f, -0.149202f, 0.0624752f, 0.020382f, 0.16385f, 0.180729f, 0.0662748f, -0.448634f, 0.110786f, -0.272773f, 0.141812f, -0.295004f, -0.00203724f, -0.0961563f, 0.19512f, 0.000520234f, 0.166155f, 0.152812f, 0.23026f, -0.223878f, -0.305921f, -0.318312f, -0.16555f, -0.0623712f, 0.0673899f, -0.240729f, -0.0314645f, 0.0333753f, 0.185097f, -0.170919f, -0.193118f, 0.153047f, -0.184935f, -0.0107526f, 0.0857555f, 0.221246f, 0.211334f, -0.342727f, 0.234495f, 0.0108331f, -0.149979f, -0.0629904f, 0.338669f, 0.0449544f, 0.161901f, 0.330058f, 0.105917f, -0.304475f, -0.189993f, -0.142385f, -0.0414436f, -0.240639f, 0.315768f, -0.297263f, 0.0186857f, -0.137322f, 0.163988f, -0.0816648f, 0.13871f, -0.191849f, 0.393974f, 0.0131533f, -0.177753f, -0.0762828f, -0.22876f, 0.246403f, -0.000192419f, -0.205132f, 0.0787373f, -0.288656f, -0.0224858f, -0.0349217f, 0.417932f, -0.283037f, -0.352634f, 0.20936f, 0.196387f, -0.0859466f, -0.443123f, -0.375274f, -0.313328f, -0.079703f, -0.0272661f, -0.00892243f, -0.068653f, -0.277868f, 0.223653f, 0.232802f, -0.144752f, 0.0712664f, 0.563994f, -0.245429f, -0.134987f, -0.101222f, -0.0512473f, -0.125446f, -0.218079f, 0.157001f, -0.0618015f, -0.220481f, 0.162097f, -0.308521f, -0.127496f, 0.158077f, -0.125325f, 0.201576f, -0.228227f, 0.00579734f, -0.155124f, -0.132208f, -0.040527f, 0.0650302f, -0.00148501f, -0.156475f, 0.036839f, -0.0515198f, 0.211299f, -0.206089f, 0.0875335f, -0.422779f, 0.190181f, 0.0629441f, 0.348244f, 0.209615f, 0.0580462f, -0.0438655f, 0.267049f, -0.180504f, -0.12723f, -0.278883f, 0.123957f, -0.0633026f, -0.185323f, 0.219085f, 0.124847f, 0.00743067f, -0.177178f, -0.0319696f, 0.314998f, -0.165112f, -0.359855f, 0.180489f, -0.174346f, -0.270111f, 0.351142f, 0.0363654f, -0.213228f, 0.42273f, 0.146285f, -0.216734f, 0.0313764f, 0.0277426f, 0.0188413f, -0.187106f, 0.175746f, -0.215112f, 0.311169f, 0.127451f, -0.0793753f, 0.0122851f, 0.272675f, 0.0483094f, 0.0606661f, -0.0455313f, 0.033053f, -0.135647f, -0.126284f, -0.0869613f, 0.12814f, 0.247232f, 0.0540529f, -0.086039f, -0.0132733f, -0.0613134f, 0.236622f, -0.189075f, -0.146657f, 0.173461f, -0.0212027f, -0.0740673f, -0.162778f, -0.260118f, 0.0229282f, -0.126654f, -0.115517f, 0.0675237f, 0.0225043f, 0.0263503f, 0.136182f, -0.151936f, -0.0406461f, -0.0377467f, 0.0168713f, -0.164378f, -0.0514061f, 0.0747724f, 0.0326173f, -0.158534f, -0.0794691f, 0.164852f, 0.187351f, 0.103315f, -0.134921f, 0.0773171f, -0.111092f, 0.185304f, 0.0432549f, -0.128788f, 0.0429585f, 0.215742f, -0.0603276f, -0.0752815f, -0.16473f, 0.176401f, 0.0671032f, -0.0945087f, 0.305616f, 0.0537973f, -0.224501f, 0.0489873f, -0.15132f, -0.251301f, -0.183682f, -0.137038f, -0.154889f, 0.110215f, 0.138786f, -0.269147f, -0.164673f, -0.0910739f, -0.0903444f, -0.108532f, 0.116125f, -0.337646f, -0.243795f, 0.129987f, -0.303877f, 0.0798465f, 0.0940801f, 0.327051f, 0.235801f, 0.00969529f, -0.117542f, -0.019407f, -0.180077f, 0.156296f, -0.0507408f, -0.25458f, -0.253906f, 0.0416232f, -0.147466f, 0.148641f, -0.0302162f, -0.218298f, 0.135929f, -0.134916f, 0.221013f, 0.068638f, -0.143226f, 0.218669f, 0.110243f, -0.070144f, -0.023961f, 0.179315f, 0.0844191f, 0.109344f, 0.0850385f, 0.0511155f, -0.203805f, 0.0461087f, -0.00935839f, 0.0258148f, 0.0203836f, 0.106976f, 0.0161016f, -0.0956453f, -0.0302739f, -0.185679f, 0.074362f, -0.0173187f, -0.239317f, 0.0923351f, -0.0215782f, -0.0294553f, 0.117429f, -0.100594f, -0.0380778f, -0.246505f, -0.136093f, -0.0213534f, -0.109258f, 0.0138579f, 0.100775f, -0.000782803f, 0.187461f, 0.119077f, -0.17563f, 0.213859f, 0.0424162f, -0.0130324f, -0.174491f, -0.00487971f, 0.217473f, 0.0461292f, 0.0902755f, -0.0306419f, 0.0548677f, -0.0825369f, -0.00392677f, 0.191026f, 0.163766f, 0.0137886f, 0.154492f, -0.127811f, 0.0602616f, -0.0937413f, 0.167945f, 0.0563701f, 0.173863f, -0.251754f, -0.0621438f, 0.0626762f, -0.288484f, 0.142491f, 0.174899f, 0.191531f, 0.190469f, 0.00625985f, -0.0188899f, -0.0254396f, -0.253123f, 0.0834059f, -0.0856873f, 0.0441403f, 0.0337133f, -0.0108834f, 0.225337f, -0.199878f, -0.138207f, -0.143881f, 0.0191241f, 0.0466872f, 0.147804f, -0.0421589f, -0.111369f, -0.0872543f, -0.162076f, 0.296706f, -0.130576f, 0.210213f, 0.0542811f, 0.192014f, -0.0382384f, 0.280767f, -0.00911858f, 0.227506f, -0.0920357f, 0.0438944f, 0.0882307f, 0.167497f, -0.246548f, 0.0672035f, -0.113731f, -0.129807f, 0.0464925f, 0.159466f, 0.211785f, -0.0411638f, -0.119439f, -0.295058f, -0.0892593f, -0.109783f, 0.168476f, 0.0684388f, 0.145152f, 0.0162002f, 0.0592384f, 0.0486518f, 0.0346606f, 0.0404363f, -0.0135008f, -0.0211407f, 0.0353893f, 0.0401976f, -0.0989445f, -0.0174635f, -0.0665988f, -0.0149634f, 0.0617638f, 0.159557f, -0.00835134f, 0.0696358f, 0.205054f, -0.0362387f, -0.019494f, -0.105739f, -0.128368f, 0.119306f, 0.208908f, -0.221356f, 0.104017f, -0.063291f, 0.0971419f, -0.162419f, 0.196211f, -0.0539538f, -0.181486f, -0.0741509f, -0.016667f, 0.149729f, -0.0954133f, 0.0691283f, -0.203078f, 0.0328749f, -0.00263548f, 0.0396756f, -0.0740033f, -0.000403704f, -0.00818684f, -0.0891299f, 0.255111f, 0.26324f, -0.123843f, -0.0247222f, 0.0339881f, 0.0284898f, 0.120085f, 0.115613f, 0.0515218f, -0.112085f, -0.224009f, -0.23879f, -0.115323f, -0.0566898f, -0.163412f, -0.0506322f, 0.374857f, 0.0753064f, 0.117434f, -0.249068f, 0.115626f, 0.248597f, 0.0155363f, -0.0156235f, -0.0918019f, -0.150986f, 0.143435f, -0.15216f, 0.102832f, -0.0330157f, -0.0383901f, -0.0791583f, 0.152924f, 0.248767f, 0.0550713f, 0.23238f, 0.177802f, 0.0363491f, -0.0615968f, -0.112679f, -0.0477052f, 0.063844f, 0.0257477f, 0.0400999f, -0.298935f, 0.162026f, -0.159957f, -0.178724f, -0.0397509f, -0.235171f, -0.125591f, 0.168771f, -0.0178747f, -0.0578957f, -0.116086f, -0.0349533f, -0.0612032f, -0.107053f, -0.0884246f, -0.000440532f, -0.049884f, 0.0225275f, -0.125648f, -0.200735f, 0.0136228f, 0.108923f, 0.0740962f, -0.102216f, 0.0985999f, -0.2808f, 0.107916f, -0.0597768f, -0.103135f, -0.130712f, -0.0972897f, 0.142993f, 0.00845413f, 0.0814681f, -0.117412f, 0.154303f, -0.021214f, 0.0927881f, -0.0604714f, 0.0467181f, -0.0960143f, -0.240977f, 0.138814f, -0.0713839f, 0.171182f, 0.018951f, 0.210852f, -0.0912201f, 0.113617f, 0.0913258f, -0.232488f, -0.198256f, -0.00383172f, -0.0137517f, 0.115592f, -0.00595107f, -0.137886f, -0.12026f, -0.0393528f, -0.00811003f, -0.147398f, -0.130034f, 0.27784f, -0.175536f, -0.0752347f, -0.213478f, 0.107355f, 0.046694f, 0.0672529f, -0.0834421f, -0.247255f, -0.0418686f, 0.183453f, 0.159336f, 0.287642f, -0.0781391f, 0.313556f, 0.0909391f, 0.0126636f, 0.105931f, 0.0152375f, -0.0867918f, -0.201136f, -0.20985f, -0.0545511f, -0.0183823f, 0.160007f, -0.0772371f, 0.147448f, -0.0133941f, -0.0231166f, 0.0607849f, 0.13233f, 0.0789042f, 0.0446499f, -0.19328f, 0.184008f, -0.0712559f, 0.0880792f, 0.0632559f, 0.138908f, -0.0834622f, -0.147958f, -0.302151f, 0.0496584f, 0.277911f, -0.250672f, -0.253919f, -0.201632f, 0.21032f, 0.0528601f, -0.0435862f, 0.0978484f, 0.0714003f, -0.0822609f, -0.0106792f, -0.166398f, -0.0811798f, 0.188721f, 0.0502275f, -0.235142f, -0.213413f, -0.0322457f, -0.0540097f, -0.150286f, 0.234802f, 0.0964606f, 0.140543f, 0.0371926f, -0.00760265f, -0.0941834f, -0.00300166f, 0.18062f, -0.0109317f, 0.00233457f, -0.188356f, -0.30918f, -0.219561f, -0.0253002f, -0.0135971f, 0.045139f, 0.0693208f, -0.18802f, -0.052222f, -0.157366f, 0.188582f, -0.102133f, -0.12689f, 0.278918f, -0.010719f, 0.0856096f, 0.060647f, 0.0871743f, -0.167808f, 0.00787733f, 0.0923069f, 0.0439294f, -0.0131344f, -0.0223111f, -0.163769f, -0.0190302f, 0.0581327f, -0.0197625f, 0.06985f, -0.292188f, 0.111646f, -0.0298377f, -0.164912f, -0.0180533f, 0.0921365f, 0.256545f, 0.0942222f, 0.185863f, 0.0958508f, 0.328424f, -0.0611427f, 0.118106f, -0.067433f, -0.212808f, 0.108979f, -0.206932f, 0.118805f, 0.0601947f, 0.136349f, -0.068467f, 0.0970172f, 0.0564256f, -0.0195197f, 0.0125144f, 0.122809f, -0.0136347f, 0.0207063f, -0.201013f, 0.341518f, 0.292439f, 0.0561997f, 0.0168467f, 0.141277f, -0.0376013f, 0.0145891f, -0.106471f, 0.0126476f, 0.174454f, 0.0937383f, 0.0881235f, -0.0107776f, 0.0692996f, 0.117125f, -0.0689229f, 0.126132f, -0.220476f, 0.165256f, -0.137646f, -0.0938832f, -0.16332f, -0.0907899f, -0.0235941f, 0.100819f, -0.233288f, 0.279353f, 0.00706817f, -0.23456f, -0.161495f, -0.0246545f, 0.131604f, 0.144161f, 0.180159f, 0.07877f, 0.0293634f, -0.0700017f, -0.162371f, 0.148492f, 0.045749f, 0.08459f, -0.0361402f, -0.14593f, 0.215302f, -0.00617888f, 0.105646f, 0.128896f, -0.138799f, 0.0230608f, 0.0123943f, 0.254521f, 0.178711f, 0.0158549f, -0.0426962f, -0.0373204f, -0.0211726f, -0.0912233f, -0.0508316f, -0.225323f, -0.179445f, -0.00534069f, 0.0484525f, -0.0342414f, -0.0334099f, 0.10792f, 0.0846355f, 0.193017f, -0.121605f, 0.0604955f, 0.16226f, -0.14047f, -0.14437f, 0.13326f, -0.219291f, -0.181293f, -0.116327f, -0.0985352f, -0.156284f, 0.472923f, -0.0206811f, 0.00217676f, 0.152183f, 0.0204766f, 0.012686f, 0.17631f, -0.0605917f, 0.0902933f, -0.0991974f, 0.0286169f, -0.0223688f, -0.041681f, -0.027878f, -0.0162263f, 0.0750425f, -0.0199565f, -0.0603016f, -0.210748f, -0.182345f, 0.0748078f, -0.287551f, 0.157083f, 0.0736117f, 0.10173f, -0.000969175f, -0.078115f, -0.226505f, 0.127594f, 0.0791909f, -0.008277f, -0.106695f, -0.0450021f, 0.0950986f, 0.175773f, 0.015195f, 0.00480993f, 0.0928526f, -0.106792f, -0.108495f, -0.257577f, 0.136485f, 0.260022f, 0.300988f, 0.175927f, -0.0062089f, -0.0690422f, 0.0658791f, -0.0863969f, -0.215739f, -0.0422549f, -0.0496516f, 0.234514f, 0.147049f, 0.242586f, -0.202776f, 0.0487241f, -0.122161f, 0.0452293f, -0.110793f, 0.260838f, -0.115507f, -0.082044f, -0.13902f, -0.0485845f, 0.0927132f, 0.0569405f, 0.0265606f, 0.0511661f, -0.145639f, -0.0826273f, 0.0311531f, 0.00440881f, -0.227217f, 0.0901096f, 0.193394f, 0.0336331f, 0.122029f, -0.166172f, -0.043445f, 0.0695106f, 0.12384f, -0.073076f, 0.154169f, -0.0950193f, 0.0539804f, 0.0737537f, 0.362518f, -0.0621719f, 0.132442f, 0.0343717f, -0.0153692f, 0.0509008f, -0.211004f, -0.216869f, 0.0509953f, -0.144716f, 0.0866407f, 0.0218133f, -0.110984f, 0.00962149f, -0.0468966f, 0.19782f, -0.0376535f, 0.00551851f, 0.0312609f, 0.168783f, 0.164541f, -0.0457136f, 0.0150954f, 0.0375075f, -0.0529702f, 0.185129f, 0.17518f, -0.111179f, 0.0420874f, -0.14179f, 0.0954945f, 0.0352605f, 0.0552514f, 0.0320372f, 0.176192f, 0.00172315f, 0.145847f, -0.14655f, -0.000633208f, 0.170867f, -0.151304f, -0.0550695f, -0.0739922f, -0.0380965f, 0.0847026f, 0.108739f, -0.00329679f, -0.0231387f, -0.065497f, 0.076664f, -0.0969795f, -0.0481077f, -0.155176f, 0.0586133f, 0.119878f, 0.0977157f, 0.0101517f, 0.0113654f, 0.0229191f, 0.053089f, -0.0603368f, 0.263991f, -0.146621f, 0.0983828f, 0.113227f, -0.0200482f, -0.282714f, -0.120529f, -0.119438f, 0.0496667f, 0.110901f, 0.153462f, 0.121868f, -0.057202f, -0.0902717f, 0.0480681f, -0.0940245f, -0.231736f, -0.182146f, -0.11568f, -0.0987642f, 0.0141648f, -0.0111613f, 0.206462f, -0.105694f, 0.123056f, 0.126094f, 0.157331f, 0.183527f, 0.0312269f, 0.171735f, 0.144704f, 0.0423365f, -0.146342f, -0.0393879f, -0.156414f, 0.0047581f, 0.126369f, 0.0744366f, -0.233906f, -0.235825f, -0.367348f, -0.0929041f, 0.156083f, 0.0335469f, -0.00809972f, 0.101605f, -0.141126f, -0.267594f, -0.196858f, 0.0119865f, 0.321624f, -0.0410143f, 0.436261f, 0.0758699f, 0.0783719f, 0.247254f, 0.0954191f, -0.160588f, 0.41163f, 0.0136637f, -0.00445444f, -0.164705f, -0.291025f, -0.0110971f, -0.199413f, -0.203446f, 0.17368f, -0.0821585f, 0.121943f, -0.389251f, -0.0111359f, -0.075891f, 0.043047f, -0.130226f, 0.0443433f, -0.185786f, -0.0686382f, 0.0412408f, -0.238633f, -0.0387096f, -0.217524f, 0.00231971f, 0.0758986f, 0.183981f, 0.0260165f, -0.12186f, -0.0910195f, 0.109003f, 0.439071f, -0.054693f, 0.0160434f, -0.00367966f, -0.161448f, 0.1678f, 0.194399f, 0.116522f, -0.303773f, 0.242124f, -0.155033f, 0.0492908f, -0.0595607f, -0.193115f, 0.176263f, 0.0495391f, -0.108342f, 0.214419f, 0.05181f, 0.107267f, -0.0560828f, 0.244867f, 0.0469251f, 0.144322f, 0.181179f, 0.000745795f, -0.199975f, -0.13677f, -0.00941043f, -0.0156603f, 0.211395f, 0.15981f, 0.0760398f, 0.035098f, 0.0380405f, 0.28146f, 0.0883318f, -0.00301891f, -0.148287f, 0.351045f, 0.299048f, 0.217476f, 0.0460853f, 0.220165f, -0.00588569f, 0.0421507f, -0.196863f, 0.109158f, 0.00487121f, -0.0145691f, 0.0773152f, -0.0333368f, 0.0133651f, 0.0340385f, -3.44789e-05f, -0.0778032f, 0.166946f, -0.00237521f, -0.0715632f, -0.123001f, 0.210315f, -0.0369013f, 0.00442528f, -0.118997f, 0.287102f, -0.17606f, 0.217689f, -0.116619f, -0.189491f, 0.0453098f, -0.142101f, 0.149929f, -0.133666f, 0.118716f, -0.275889f, -0.0478189f, 0.0550585f, -0.00928719f, -0.0782734f, -0.127119f, 0.166782f, -0.162907f, -0.0198714f, 0.0798773f, -0.180765f, -0.0151484f, -0.1124f, -0.0512482f, -0.138567f, 0.0888021f, 0.0727017f, -0.0578322f, -0.0401633f, 0.109915f, 0.0352866f, -0.0735949f, -0.109992f, -0.164862f, 0.134671f, -0.0251321f, -0.0481643f, 0.0741055f, -0.0539445f, 0.082953f, 0.0907351f, -0.00915333f, -0.134275f, 0.0622264f, -0.0549276f, 0.148638f, -0.034667f, -0.0381537f, 0.0410389f, 0.093973f, -0.0496817f, -0.0680258f, -0.0132672f, -0.152788f, 0.0910096f, 0.155239f, 0.0660332f, 0.0119639f, 0.166009f, -0.109423f, 0.157878f, 0.128787f, 0.124361f, -0.146601f, -0.112105f, -0.0193444f, -0.0842677f, -0.056368f, -0.0124936f, -0.000518553f, -0.147535f, 0.153793f, 0.00374032f, -0.133337f, -0.0365362f, 0.0834834f, -0.0614577f, 0.162623f, 0.120328f, -0.076003f, -0.130517f, 0.265011f, -0.158692f, -0.0479287f, 0.246123f, -0.00221529f, 0.0899513f, -0.126691f, 0.175674f, 0.00427823f, -0.133698f, 0.210436f, 0.158188f, -0.0905332f, -0.103383f, -0.0587363f, 0.111813f, 0.0129172f, -0.0132146f, 0.0474124f, -0.00923084f, 0.188418f, 0.0829913f, 0.0385604f, -0.161941f, -0.0496113f, -0.0396538f, -0.169728f, 0.109449f, 0.199433f, -0.0537431f, 0.217272f, 0.0243039f, -0.232786f, 0.115902f, -0.00903098f, -0.0314262f, -0.165683f, 0.0553994f, 0.177182f, 0.0397567f, 0.230334f, -0.120341f, 0.069667f, -0.00239339f, -0.00490414f, 0.0131002f, 0.0167727f, 0.138345f, -0.0972679f, -0.0203711f, -0.0618757f, -0.166324f, -0.191077f, 0.0467483f, -0.0708427f, 0.0544716f, 0.00620708f, -0.155121f, 0.0132498f, 0.0378955f, 0.124155f, -0.00930535f, -0.196352f, 0.00824021f, -0.0828313f, -0.0991321f, 0.0568136f, -0.118713f, 0.0135204f, -0.0713405f, -0.0137044f, -0.218894f, 0.0427663f, -0.0400213f, -0.0298952f, 0.273862f, -0.0674464f, -0.0721582f, 0.0263896f, 0.172413f, 0.0602411f, -0.166104f, -0.0451388f, 0.0956268f, 0.0333042f, 0.13429f, -0.0202706f, 0.0800917f, 0.0500898f, -0.0220708f, -0.0967037f, 0.0920366f, -0.14044f, -0.103948f, -0.149743f, 0.0672749f, -0.0761638f, -0.0302499f, -0.146905f, 0.0482812f, -0.0145267f, 0.0682031f, 0.0945137f, -0.121578f, -0.0674664f, -0.0186782f, -0.0538495f, 0.00516344f, -0.0564914f, 0.0298925f, -0.0289421f, 0.0280342f, -0.0282362f, -0.0940551f, 0.0357294f, 0.0655377f, -0.0725899f, -0.0520342f, 0.0572453f, -0.0828273f, -0.0170536f, 0.00514829f, 0.0506398f, -0.11253f, 0.00746253f, 0.159066f, 0.363442f, 0.0280422f, -0.0338633f, -0.0831828f, -0.106502f, -0.255367f, 0.132955f, -0.0892976f, -0.0705181f, -0.0528691f, 0.056413f, 0.087168f, 0.00525884f, 0.0718883f, 0.117882f, 0.00339631f, -0.00324392f, 0.0644217f, -0.157206f, -0.138032f, 0.0638095f, -0.00634839f, 0.010447f, -0.0146156f, 0.186894f, -0.082096f, -0.156547f, 0.0337235f, -0.0955461f, 0.0249414f, -0.0894555f, 0.0647153f, 0.0513714f, 0.113209f, -0.340633f, -0.0518221f, -0.020328f, -0.0364117f, 0.0654602f, -0.0446221f, 0.0291022f, -0.0208041f, 0.00485475f, -0.152834f, 0.103206f, -0.0529042f, -0.0830451f, -0.068542f, -0.00546778f, 0.1265f, 0.0526509f, -0.0286721f, 0.0933408f, -0.145826f, -0.0383033f, -0.126404f, -0.09775f, -0.0757015f, -0.00668447f, 0.0592974f, -0.2997f, -0.228943f, 0.178306f, -0.0017913f, 0.0581351f, -0.138306f, 0.256338f, -0.0077619f, -0.13796f, -0.00834976f, 0.0181972f, 0.125035f, -0.201187f, -0.399752f, 0.0117956f, -0.0631317f, 0.111069f, -0.0398867f, -0.0892334f, -0.18517f, 0.0519343f, -0.0220837f, 0.285335f, 0.209476f, -0.0658413f, -0.173289f, -0.309725f, -0.166489f, 0.135876f, -0.0193504f, -0.128944f, -0.0468083f, -0.278891f, -0.182271f, -0.232934f, 0.128318f, -0.173852f, 0.0781148f, 0.339472f, 0.18346f, -0.227247f, -0.143911f, 0.225882f, 0.0541199f, 0.0567202f, 0.185217f, -0.0609546f, 0.00491667f, 0.0560698f, 0.303802f, 0.0453374f, -0.240465f, -0.0210147f, -0.268611f, -0.213426f, -0.0545037f, 0.308667f, -0.336788f, -0.223017f, 0.32269f, 0.103004f, -0.309673f, 0.141314f, -0.288483f, 0.0642117f, 0.10958f, 0.187227f, 0.0584585f, 0.315752f, -0.125698f, 0.0353655f, -0.0508345f, 0.305128f, 0.126277f, 0.263919f, 0.0628437f, -0.0974243f, 0.0956289f, -0.132734f, 0.326421f, 0.396683f, -0.084953f, 0.337736f, -0.0981556f, -0.38864f, -0.12669f, -0.0232249f, -0.283551f, 0.0144346f, 0.195568f, 0.0772228f, 0.112991f, -0.196109f, -0.0543339f, 0.19267f, 0.131982f, 0.112352f, 0.230449f, -0.0170617f, 0.0504841f, -0.0560399f, -0.138752f, 0.124105f, 0.0893109f, 0.235902f, 0.238287f, 0.0593206f, 0.310663f, 0.0182835f, 0.0441164f, -0.0908326f, -0.0812684f, 0.355491f, 0.408376f, -0.0269884f, 0.103111f, 0.334907f, 0.269857f, -0.119455f, -0.293822f, 0.0747053f, -0.300479f, -0.319343f, -0.0355888f, -0.127561f, 0.131095f, -0.100192f, 0.348367f, 0.0381209f, 0.0869274f, -0.11285f, 0.0821668f, 0.0394325f, 0.226144f, 0.127842f, -0.125787f, -0.0897994f, 0.00386773f, 0.185217f, 0.225653f, 0.18505f, -0.0126105f, 0.0443908f, -0.185504f, -0.00600847f, 0.068033f, 0.234784f, -0.165243f, -0.117622f, 0.210782f, -0.0849773f, 0.162185f, -0.0693195f, 0.219818f, 0.0298067f, 0.0974086f, 0.217585f, -0.0933779f, -0.0964092f, 0.353629f, 0.0395099f, 0.013146f, -0.0171038f, -0.224583f, 0.0683477f, -0.0730653f, -0.453125f, -0.0640225f, 0.0081659f, 0.257584f, 0.0672327f, -0.205288f, 0.210772f, -0.257824f, 0.133252f, 0.0446054f, 0.0371759f, -0.0128828f, 0.0754547f, -0.220013f, 0.12262f, 0.147356f, -0.0528906f, -0.0119248f, -0.0338826f, 0.0473427f, 0.0182223f, -0.144225f, -0.245308f, -0.0883041f, 0.0151567f, -0.040752f, -0.111157f, -0.245493f, -0.281464f, -0.160873f, -0.164333f, -0.174337f, 0.0251559f, 0.105272f, -0.252581f, -0.0121119f, 0.181399f, 0.0217288f, 0.0787287f, 0.21595f, -0.10411f, 0.0084293f, 0.0261507f, 0.0640467f, 0.00196845f, 0.140614f, 0.14895f, -0.112668f, -0.225005f, -0.0491575f, -0.0166804f, 0.0213443f, -0.0661902f, -0.0771904f, 0.0381938f, 0.101869f, -0.00976947f, 0.0839041f, 0.0758895f, 0.0108432f, 0.165389f, -0.20829f, 0.0577144f, -0.0236559f, -0.105927f, 0.249845f, 0.198199f, 0.00523269f, -0.109474f, 0.120434f, 0.0381863f, -0.234421f, -0.188459f, 0.132967f, -0.010809f, 0.0403142f, 0.539968f, -0.349396f, 0.160017f, 0.11444f, -0.062611f, 0.195539f, -0.0367792f, -0.0729149f, -0.0680574f, 0.148068f, 0.227826f, -0.247287f, -0.228746f, 0.0934766f, 0.0089439f, 0.0500683f, -0.109083f, 0.0309123f, -0.0318105f, 0.151438f, -0.116857f, -0.0988312f, 0.0402981f, -0.133947f, 0.106589f, 0.198613f, 0.0367953f, 0.00314204f, 0.00705776f, 0.187003f, -0.026167f, 0.125339f, -0.0206071f, -0.181319f, 0.214903f, 0.0348334f, -0.100078f, 0.0280505f, -0.113003f, 0.20932f, -0.055212f, 0.101684f, -0.107086f, 0.219677f, 0.161554f, -0.0131205f, -0.149744f, -0.0447166f, 0.126639f, 0.0828365f, 0.0773057f, 0.166517f, -0.0198442f, -0.0353323f, -0.0263299f, -0.0308396f, 0.0133931f, 0.016566f, 0.166059f, -0.202917f, 0.0100833f, -0.0598146f, 0.00400971f, 0.0117504f, -0.0883153f, -0.158503f, 0.0394812f, -0.13379f, -0.0167153f, 0.2148f, -0.00410374f, -0.104348f, -0.0857535f, -0.0389293f, -0.200661f, 0.0797436f, -0.0825218f, -0.0207222f, -0.0970857f, 0.0369254f, 0.112683f, 0.0875904f, 0.193422f, -0.125124f, -0.00053718f, 0.196001f, -0.0290353f, -0.132668f, -0.0734707f, 0.110043f, 0.0295444f, 0.00795795f, -0.096313f, 0.019476f, 0.0129745f, -0.0149814f, -0.0567421f, -0.0718727f, -0.0501956f, -0.0174681f, -0.0853721f, 0.00156544f, -0.0304733f, 0.0303363f, 0.0969361f, -0.0908548f, 0.115351f, 0.0443239f, -0.0899861f, -0.09991f, -0.0333891f, -0.112931f, -0.0544638f, 0.0401971f, 0.0135254f, 0.0569829f, -0.0278945f, 0.0224649f, 0.159276f, -0.0595961f, 0.0810256f, 0.000976455f, -0.0309998f, 0.0639157f, -0.0198439f, -0.116813f, 0.0365598f, 0.0841206f, 0.0254695f, -0.0525918f, 0.0679034f, -0.000967097f, 0.0392007f, 0.011068f, 0.0222241f, -0.0392107f, -0.0725065f, 0.0675703f, 0.00381455f, 0.0502271f, -0.134655f, 0.0599694f, -0.108438f, -0.00816897f, -0.0231577f, 0.115617f, 0.0715453f, 0.0790986f, 0.102798f, -0.202191f, -0.206192f, 0.0181955f, 0.198012f, -0.0694033f, -0.141109f, -0.0573445f, -0.0524703f, -0.152782f, -0.231748f, -0.0334899f, 0.108346f, -0.151121f, -0.137445f, -0.0991055f, -0.101944f, -0.0462714f, 0.0693284f, -0.13325f, -0.11442f, 0.185984f, -0.290244f, 0.00937992f, 0.0574226f, -0.259045f, 0.230132f, 0.22516f, -0.141207f, -0.145887f, -0.147545f, -0.158762f, 0.0274439f, -0.0561749f, 0.0349081f, 0.0335628f, -0.20415f, -0.0700766f, -0.0865896f, 0.0047132f, -0.10603f, -0.0105283f, -0.0982602f, 0.0565056f, -0.0798345f, 0.236228f, 0.0737766f, -0.0484088f, 0.0557957f, 0.0958904f, 0.112846f, 0.112624f, 0.0756196f, 0.0567584f, 0.00405979f, -0.076621f, 0.143444f, 0.14557f, -0.0278785f, 0.135929f, -0.108218f, -0.189815f, -0.138271f, -0.123103f, 0.16048f, -0.0482282f, -0.112394f, -0.0865704f, 0.0268527f, 0.0122562f, -0.212401f, 0.10631f, -0.12831f, -0.102321f, -0.196699f, -0.104931f, -0.0708909f, -0.0461923f, -0.0646817f, -0.0333923f, 0.0780562f, 0.173888f, -0.00812577f, 0.00544315f, -0.135739f, -0.0321542f, -0.0980129f, 0.146879f, -0.106462f, 0.0964664f, -0.0764347f, -0.105077f, -0.0313024f, -0.115201f, -0.0111429f, 0.033511f, 0.0148177f, 0.131079f, -0.0731002f, 0.180977f, -0.0938127f, -0.0542143f, -0.173672f, -0.123421f, 0.080713f, 0.00392589f, -0.0957735f, 0.142574f, -0.105866f, -0.0628406f, 0.00475755f, 0.0132525f, -0.0781661f, 0.0832848f, 0.0306749f, -0.0536023f, -0.0108728f, -0.0820263f, 0.0364391f, 0.0694864f, 0.205213f, 0.0331846f, 0.0959318f, -0.213561f, -0.121626f, -0.0647714f, 0.0986781f, 0.0107621f, -0.168572f, -0.0516716f, -0.0309028f, -0.0663433f, -0.0214941f, -0.0475055f, 0.0483274f, -0.190313f, -0.110115f, 0.162747f, 0.0749865f, 0.0911451f, 0.0472048f, -0.109948f, -0.00522842f, -0.188047f, 0.0586197f, 0.193848f, -0.0766912f, 0.110444f, 0.0147313f, 0.146292f, -0.0577574f, -0.0475824f, -0.103281f, -0.198222f, -0.0639709f, 0.104132f, -0.105857f, -0.145483f, -0.0446815f, -0.0538672f, 0.215758f, 0.0635573f, -0.0977277f, 0.0832381f, -0.0208671f, -0.0595992f, 0.0110173f, -0.104064f, -0.0229677f, 0.0108515f, -0.14794f, -0.0547049f, 0.00348716f, -0.00685751f, -0.148984f, -0.0642575f, -0.101785f, -0.154417f, -0.0326905f, 0.098176f, 0.129951f, -0.0868219f, 0.0900016f, -0.116877f, -0.1184f, 0.101842f, -0.159941f, -0.0821164f, 0.0396419f, -0.0435385f, 0.1593f, 0.14334f, -0.142863f, 0.177216f, 0.0241726f, 0.184788f, -0.0742102f, 0.040827f, 0.126814f, 0.0530824f, 0.00677639f, 0.0572287f, 0.171686f, -0.166789f, -0.0115266f, 0.028613f, 0.0569894f, 0.00835882f, 0.0353288f, -0.12175f, -0.0794592f, 0.10279f, -0.0499737f, -0.0179249f, 0.118464f, 0.0572185f, -0.102356f, -0.151733f, 0.0807005f, -0.0852885f, -0.079251f, 0.131554f, 0.0231817f, 0.0508039f, 0.00457783f, 0.0826593f, -0.197127f, -0.140164f, -0.0618778f, 0.0137971f, -0.103189f, -0.027194f, -0.042677f, 0.0389576f, -0.0364013f, 0.0413439f, -0.0481903f, 0.0609136f, 0.0428965f, 0.0418969f, 0.0946651f, -0.0651687f, 0.00636633f, -0.0603478f, -0.0340816f, 0.124595f, 0.011618f, -0.105699f, 0.0209471f, -0.0279859f, 0.174401f, 0.181405f, -0.100601f, -0.185649f, -0.0186763f, -0.169599f, -0.107211f, 0.0983014f, -0.103175f, -0.0693391f, -0.0255055f, -0.0952299f, -0.00458742f, 0.0147303f, -0.162745f, 0.227148f, -0.0117972f, 0.0538971f, -0.0595543f, 0.0061189f, -0.103396f, 0.195911f, -0.0697691f, 0.0515372f, 0.0524553f, -0.0599687f, -0.0283811f, -0.0366577f, -0.0850134f, -0.144724f, -0.0694637f, -0.0826693f, -0.0493272f, -0.0463248f, -0.0935426f, 0.0968128f, -0.0295982f, -0.116495f, 0.0905374f, 0.145332f, -0.126823f, -0.0846349f, -0.00364298f, -0.159004f, 0.125734f, 0.0200767f, -0.0100989f, 0.0592613f, 0.0711746f, -0.052708f, -0.129927f, -0.171635f, 0.0536028f, -0.0436741f, -0.0671346f, 0.123026f, -0.0266766f, -0.00128844f, 0.006936f, 0.109455f, -0.107967f, 0.0506299f, -0.15958f, 0.0512022f, -0.0714227f, -0.142419f, -0.145663f, 0.0328946f, -0.00838929f, 0.135078f, -0.116516f, 0.133692f, 0.0027081f, 0.123097f, -0.116642f, 0.0318937f, 0.0270508f, 0.0135023f, 0.057198f, -0.0474178f, -0.167828f, -0.0541074f, -0.0574136f, 0.0292935f, 0.0265396f, -0.132061f, -0.0301757f, -0.16664f, 0.120607f, -0.0363801f, 0.0957502f, 0.0939066f, 0.168644f, -0.029565f, 0.00783809f, -0.0100699f, 0.0887768f, 0.140314f, -0.184181f, -0.0684551f, 0.0991023f, 0.0164909f, 0.132668f, 0.159765f, 0.065565f, -0.215614f, 0.0188324f, 0.0301077f, 0.0754169f, -0.162187f, 0.177152f, 0.139069f, -0.0282307f, -0.128046f, -0.0573553f, 0.0695957f, 0.0728233f, 0.0742555f, 0.00757338f, 0.115585f, 0.000151907f, 0.00934792f, 0.0404052f, 0.109993f, 0.0490671f, -0.0478591f, 0.0353086f, 0.0406764f, -0.0843566f, 0.0796684f, -0.134092f, -0.0939137f, 0.0512854f, 0.02847f, -0.191782f, -0.102256f, 0.0993767f, 0.112477f, 0.0546775f, 0.177045f, -0.0889786f, -0.0284489f, -0.145575f, -0.18619f, 0.118787f, -0.121879f, -0.195056f, -0.0793856f, -0.0628797f, 0.0561486f, 0.0217856f, -0.0688085f, -0.116118f, 0.0653965f, 0.00376658f, -0.122175f, -0.0614844f, 0.0307863f, -0.0728671f, -0.0267218f, -0.0107053f, -0.0924833f, 0.0895601f, 0.0601045f, -0.202886f, 0.031716f, 0.186588f, 0.0318896f, -0.0876682f, -7.72102e-05f, -0.199889f, 0.0592551f, -0.0367607f, 0.125276f, -0.00127308f, -0.0072442f, 0.121552f, 0.084387f, 0.0130147f, -0.144155f, -0.105237f, -0.144242f, 0.0447149f, -0.195839f, -0.0622675f, 0.127028f, -0.146486f, -0.0620632f, -0.0125621f, 0.00287516f, -0.0443172f, 0.104167f, -0.180363f, -0.190862f, -0.136607f, -0.0101634f, 0.108623f, -0.141825f, -0.120685f, -0.00323691f, 0.0585559f, 0.169911f, 0.165382f, 0.0694922f, -0.0524239f, -0.107787f, 0.127782f, 0.149119f, -0.0276379f, -0.0379364f, -0.134096f, 0.121444f, 0.0293372f, 0.104944f, 0.0883756f, 0.172459f, -0.0579167f, 0.0906507f, 0.036026f, 0.100229f, 0.119578f, -0.0341854f, -0.161928f, 0.0656302f, 0.0111037f, 0.178218f, 0.117905f, 0.297506f, 0.0332685f, -0.158273f, 0.0607268f, -0.200797f, 0.144938f, 0.00842229f, -0.1734f, 0.156002f, 0.106755f, 0.0902585f, -0.110569f, 0.0388337f, -0.19452f, 0.0290938f, -0.102153f, 0.316533f, 0.0386076f, 0.195203f, -0.0775193f, 0.207435f, 0.174053f, 0.163374f, 0.0723866f, -0.18319f, 0.0191222f, 0.0164923f, -0.0483164f, 0.0197929f, 0.0591586f, 0.0699289f, 0.117556f, 0.216911f, -0.245327f, -0.102697f, -0.0568817f, -0.0812142f, -0.123782f, -0.208255f, 0.189984f, -0.14457f, -0.0998799f, -0.277155f, -0.0636249f, 0.00267893f, -0.300634f, -0.15194f, 0.272221f, -0.0316173f, 0.0909312f, 0.157991f, -0.134286f, 0.141166f, 0.236587f, 0.157335f, -0.260768f, -0.195418f, -0.00132243f, 0.284019f, 0.266297f, -0.18515f, 0.0761785f, 0.148431f, -0.21846f, -0.129312f, -0.00585859f, -0.319022f, 0.0526947f, -0.0800312f, 0.00343891f, -0.0302467f, 0.0123789f, 0.13913f, -0.0430028f, -0.190366f, 0.12418f, -0.177678f, 0.0831564f, -0.527989f, -0.121533f, 0.00775132f, 0.288053f, 0.0175755f, -0.0518317f, -0.161665f, -0.0775857f, 0.0974314f, -0.0227871f, -0.040391f, 0.141395f, -0.0413977f, -0.0823696f, 0.0585823f, -0.131506f, 0.199094f, 0.233047f, 0.0883129f, 0.255333f, 0.384635f, 0.124645f, -0.179172f, -0.115287f, 0.311906f, -0.0768571f, 0.0315882f, -0.21576f, -0.0687606f, -0.294641f, -0.0610123f, -0.082685f, -0.0298979f, -0.236266f, -0.158007f, -0.0877249f, -0.0875634f, -0.173589f, -0.0599902f, 0.0889724f, -0.0207025f, 0.0248334f, 0.402502f, 0.0265749f, 0.0231971f, 0.0273447f, -0.211955f, 0.101342f, 0.0265103f, 0.149401f, 0.0289052f, -0.0303149f, 0.0925015f, 0.112879f, 0.223193f, 0.217992f, -0.277055f, 0.073811f, -0.0345785f, -0.122454f, 0.016279f, 0.226395f, -0.154592f, 0.0718664f, -0.0241471f, 0.297599f, -0.203877f, -0.148134f, -0.0693867f, 0.0608824f, -0.0816016f, -0.0456526f, -0.0725797f, -0.19712f, 0.00451122f, 0.0526549f, 0.461902f, 0.0294555f, 0.240326f, 0.144125f, -0.15009f, -0.131488f, -0.166475f, -0.0596954f, 0.119364f, 0.0364117f, 0.296674f, -0.136885f, 0.0223043f, -0.192385f, -0.0332979f, -0.174058f, 0.0876777f, -0.0441841f, 0.155119f, -0.155203f, -0.0176818f, -0.302113f, 0.110757f, 0.245483f, 0.110138f, -0.13511f, -0.00599306f, 0.166749f, 0.152285f, -0.0252765f, 0.241817f, 0.126106f, -0.214593f, -0.176592f, -0.181614f, 0.155009f, 0.253954f, 0.194581f, -0.221024f, -0.00527955f, -0.164933f, 0.0460706f, 0.342017f, 0.175038f, 0.270015f, -0.229826f, -0.102667f, -0.196883f, 0.00165443f, 0.0563273f, -0.160883f, -0.0739002f, -0.281241f, 0.0167676f, -0.0146983f, 0.266963f, 0.0345392f, 0.27921f, -0.136966f, 0.276199f, 0.134556f, -0.0801178f, 0.275416f, -0.0780137f, -0.188323f, 0.0426167f, 0.016736f, 0.196336f, 0.20934f, -0.298414f, -0.0670457f, -0.130759f, -0.199709f, 0.0568456f, 0.183424f, -0.288651f, 0.223441f, 0.223712f, -0.0058009f, 0.26152f, -0.122724f, 0.0365618f, -0.0196415f, -0.0544713f, -0.109093f, 0.12595f, -0.310462f, 0.21521f, 0.147405f, -0.0137184f, 0.304098f, -0.138799f, -0.091238f, 0.0153294f, 0.202134f, 0.107735f, -0.0636372f, -0.094039f, -0.269393f, -0.203538f, 0.25135f, -0.0346192f, 0.0432001f, -0.312568f, 0.00139508f, -0.0737464f, 0.185856f, -0.282656f, -0.00109402f, 0.18466f, 0.150305f, 0.120431f, 0.149989f, 0.0521333f, 0.086365f, 0.0813275f, -0.205515f, -0.0321296f, 0.150414f, 0.128868f, 0.033566f, -0.0653706f, 0.168671f, -0.107586f, -0.0158913f, 0.0409414f, -0.166548f, -0.0366041f, -0.0103903f, 0.124946f, -0.0835031f, -0.195882f, 0.180063f, -0.160352f, -0.221005f, 0.298294f, -0.144809f, -0.146662f, 0.4946f, 0.167624f, -0.0290433f, -0.149732f, 0.0114454f, 0.0283927f, 0.201157f, -0.153278f, 0.36918f, 0.313981f, 0.011557f, -0.00505175f, 0.0581186f, -0.058065f, 0.0462351f, -0.00278421f, -0.0415917f, -0.0592682f, 0.135444f, -0.07455f, 0.0452172f, 0.0711994f, -0.0512389f, -0.172052f, -0.191426f, -0.0587695f, 0.0277767f, 0.0295401f, -0.100343f, -0.158867f, -0.00914204f, -0.0799991f, 0.216285f, -0.175807f, 0.108353f, 0.0331472f, 0.211614f, -0.109038f, 0.277852f, 0.13597f, 0.0564488f, 0.127397f, 0.154649f, 0.120825f, -0.0014228f, 0.0105785f, -0.103815f, 0.193875f, -0.338146f, -0.204159f, 0.233978f, -0.075629f, 0.204848f, 0.182267f, 0.149317f, -0.179175f, 0.224751f, 0.137227f, -0.0514879f, -0.0530932f, -0.248842f, -0.256642f, 0.0481668f, 0.239586f, 0.29638f, -0.0518177f, -0.0414334f, -0.032398f, -0.0425277f, -0.0899987f, 0.121088f, -0.0828594f, -0.321911f, 0.0070297f, 0.085941f, -0.181527f, 0.195147f, 0.261818f, -0.0442534f, 0.280827f, 0.0892145f, 0.310468f, 0.0854828f, 0.0854724f, -0.0146585f, -0.0986215f, -0.0691548f, 0.0300527f, 0.0377904f, 0.231358f, -0.0990197f, 0.0336082f, -0.109442f, 0.124981f, 0.0458769f, -0.00717676f, -0.0439977f, 0.197793f, -0.145854f, -0.242329f, -0.266538f, -0.00350806f, -0.0603054f, 0.189179f, -0.209245f, 0.120979f, -0.166999f, -0.180895f, 0.0534809f, -0.165517f, -0.0235567f, 0.318169f, 0.0710887f, -0.222748f, -0.026472f, -0.102648f, 0.12241f, 0.212446f, 0.113399f, 0.0065408f, -0.163954f, -0.0925168f, 0.23755f, -0.00513644f, -0.0393298f, 0.0902413f, 0.130413f, -0.0493416f, -0.0116626f, 0.0530366f, 0.0910727f, -0.126608f, -0.201969f, 0.0358663f, -0.0808173f, 0.0500047f, 0.140738f, -0.181935f, 0.0919293f, 0.0493472f, 0.109186f, 0.0752026f, 0.331046f, -0.157618f, 0.00846618f, 0.111137f, -0.000162393f, -0.0533165f, -0.0403442f, 0.278866f, 0.0706498f, -0.0842414f, -0.173431f, 0.00174492f, -0.0108148f, -0.165794f, 0.0033032f, -0.0971225f, 0.107471f, -0.130492f, -0.0777077f, 0.0531862f, -0.0675135f, -0.0368056f, -0.149137f, 0.081503f, 0.210917f, 0.13256f, -0.14186f, -0.115107f, 0.0737342f, 0.0673081f, -0.264229f, -0.179837f, -0.136157f, 0.0945248f, -0.0230311f, 0.0592951f, 0.0729417f, -0.0170463f, -0.0305578f, -0.168833f, 0.0177773f, -0.0968453f, 0.264947f, 0.0215699f, 0.0246163f, -0.301142f, -0.195455f, -0.151383f, -0.200127f, -0.0175371f, -0.0508429f, -0.256968f, 0.260807f, 0.0100595f, -0.0316971f, -0.0765099f, -0.0610244f, -0.161833f, -0.0291545f, -0.102401f, 0.00233664f, 0.0525981f, -0.118046f, 0.052291f, -0.284127f, -0.16122f, -0.0909441f, 0.208235f, 0.179745f, 0.0093171f, -0.139922f, -0.130854f, -0.043747f, -0.00646231f, -0.00796733f, -0.171639f, 0.0605942f, 0.151612f, 0.0228156f, -0.234334f, -0.0588295f, -0.257352f, 0.12673f, 0.107815f, -0.00579767f, -0.0512443f, -0.0953917f, -0.123779f, -0.165546f, 0.110627f, -0.127102f, 0.0179303f, 0.0213647f, 0.126265f, 0.0493004f, 0.181128f, -0.148011f, 0.188413f, 0.205731f, 0.186561f, 0.0265008f, 0.129317f, -0.0328259f, 0.2734f, -0.0897688f, -0.259728f, 0.0718163f, 0.0740711f, 0.0342404f, 0.167017f, -0.127738f, -0.243615f, -0.34251f, 0.0149404f, -0.21985f, -0.291306f, -0.301083f, -0.0879946f, 0.132867f, -0.0286716f, -0.330036f, -0.138541f, 0.0201261f, -0.0206262f, -0.195338f, -0.189097f, -0.121937f, -0.365437f, 0.138063f, -0.0907782f, 0.0648521f, -0.00512273f, -0.0140866f, 0.0457267f, 0.162504f, -0.263981f, 0.0506702f, 0.0748843f, 0.231794f, 0.134735f, -0.0679524f, -0.127905f, 0.100269f, 0.158177f, -0.0581452f, -0.0679139f, -0.394527f, 0.187185f, 0.096168f, -0.098256f, -0.123185f, -0.0583085f, -0.176549f, 0.327942f, -0.0436006f, 0.122345f, 0.201078f, 0.024806f, -0.0867871f, -0.103353f, -0.280745f, -0.0238603f, -0.197656f, 0.258787f, 0.270568f, -0.0330545f, -0.0319929f, -0.136981f, 0.0398797f, -0.169881f, -0.0809598f, 0.0330871f, 0.202348f, -0.0983309f, 0.197383f, -0.204489f, 0.00371044f, 0.30095f, -0.0380717f, -0.179282f, 0.244127f, -0.185936f, -0.124543f, -0.0411498f, 0.090055f, -0.338949f, -0.317972f, -0.11562f, 0.174484f, 0.0736392f, 0.436672f, 0.0268573f, 0.0506437f, -0.170759f, -0.00334675f, 0.328992f, -0.183543f, 0.13191f, 0.192155f, -0.122853f, 0.236246f, 0.079596f, -0.00764811f, 0.196371f, 0.0103949f, 0.179774f, -0.284097f, 0.184176f, -0.0417046f, 0.212608f, 0.170959f, 0.0674549f, 0.025605f, 0.0204303f, 0.185798f, -0.270741f, 0.0657351f, -0.013044f, -0.00624784f, 0.00388587f, 0.368241f, -0.301919f, -0.192563f, -0.115628f, 0.170193f, -0.00552218f, -0.0251656f, 0.0941633f, -0.219737f, -0.156501f, 0.240836f, 0.4438f, 0.260346f, 0.312277f, -0.129407f, 0.116735f, 0.0323757f, 0.0165151f, -0.103771f, -0.0310081f, 0.0899189f, -0.0358277f, -0.0506099f, 0.0343667f, 0.0521393f, -0.115542f, -0.0226156f, 0.000841181f, -0.00187559f, -0.00224394f, -0.208884f, -0.04068f, -0.0558047f, 0.0931748f, -0.0181616f, -0.0425746f, 0.31457f, 0.193882f, 0.29136f, -0.0341999f, 0.0823644f, 0.0587742f, -0.0513058f, -0.0213126f, -0.0711387f, -0.179653f, 0.0499827f, -0.00854057f, 0.109425f, 0.00591709f, 0.073143f, 0.162066f, -0.0342803f, -0.0173394f, 0.0634966f, -0.0709697f, -0.0808648f, -0.0131857f, 0.129084f, -0.00423948f, 0.0908564f, 0.00492281f, 0.0928515f, 0.099059f, 0.105264f, 0.0458196f, 0.154781f, 0.139527f, -0.115947f, -0.0748488f, -0.0158489f, -0.0393259f, -0.0504835f, 0.0832179f, -0.0446712f, -0.096982f, 0.00170243f, -0.0230432f, 0.0732685f, 0.0959741f, 0.104301f, 0.0968932f, 0.108793f, -0.0852821f, -0.106986f, -0.140488f, -0.200453f, 0.0332369f, -0.289644f, -0.0339822f, -0.116769f, 0.0713805f, 0.0776425f, -0.152733f, 0.0846773f, -0.0872408f, -0.0998327f, 0.119907f, -0.0947123f, 0.0985713f, 0.0308607f, 0.00688164f, -0.0559362f, 0.0131015f, 0.0195881f, 0.111581f, 0.078919f, 0.00211133f, 0.101397f, 0.103758f, -0.134427f, 0.0888472f, -0.0494937f, -0.043504f, 0.105289f, -0.168892f, 0.00993622f, -0.166039f, 0.0477312f, 0.207097f, 0.0645826f, 0.0418885f, 0.0530311f, -0.166723f, 0.0261807f, -0.00415234f, -0.00957681f, 0.0853801f, -0.0113615f, 0.179556f, 0.0721081f, -0.0554954f, 0.0462697f, 0.0979818f, -0.0179131f, 0.0441295f, 0.0416469f, 0.0171731f, 0.00340746f, -0.060349f, -0.12264f, 0.0279599f, 0.00759657f, 0.121563f, -0.133368f, 0.387663f, -0.0512781f, -0.247002f, 0.139844f, 0.145194f, 0.00730657f, -0.0174785f, -0.0325619f, -0.0277456f, 0.00154379f, -0.257475f, -0.19241f, 0.0416751f, -0.096746f, -0.0650741f, -0.0960716f, -0.176037f, -0.0972384f, -0.201992f, 0.00251874f, 0.0218974f, 0.258363f, 0.0931344f, 0.0521282f, 0.031816f, -0.121454f, 0.0664673f, -0.21367f, 0.183807f, 0.37445f, 0.0610395f, -0.0967268f, 0.288397f, -0.136559f, 0.146632f, -0.132662f, -0.0849642f, -0.029772f, 0.244014f, -0.0271585f, -0.0109107f, -0.0532809f, 0.0997605f, -0.269598f, 0.120368f, 0.0914718f, 0.0329996f, -0.0663495f, 0.0249758f, 0.174456f, -0.0558199f, -0.122823f, 0.0330271f, -0.188965f, -0.0208687f, -0.064361f, -0.109488f, 0.0376179f, -0.0754085f, 0.0940255f, -0.15697f, 0.129023f, -0.0226018f, -0.139754f, -0.195532f, -0.00364593f, -0.0936696f, 0.185988f, -0.0165832f, -0.017836f, -0.0432897f, 0.102456f, -0.113861f, -0.281936f, -0.027464f, 0.123302f, -0.115623f, -0.0702669f, -0.114119f, -0.117401f, 0.029191f, 0.0240541f, -0.101381f, 0.14322f, 0.038011f, 0.0762345f, -0.12554f, -0.0670217f, -0.141917f, 0.222214f, 0.0377872f, 0.0869865f, -0.105904f, 0.023638f, -0.0039292f, -0.177957f, -0.0908118f, 0.294644f, -0.142214f, -0.0634974f, 0.0562965f, -0.000934296f, 0.142364f, 0.00158703f, -0.0840134f, 0.0994897f, -0.195206f, -0.179999f, -0.138926f, -0.289667f, -0.150502f, -0.0515056f, 0.198025f, -0.0779126f, -0.0294836f, 0.18669f, -0.122119f, 0.0109546f, 0.254919f, 0.0370714f, 0.0994665f, 0.211376f, 0.151428f, -0.16431f, 0.0757341f, -0.0424788f, 0.139165f, 0.157448f, 0.173103f, -0.141905f, 0.403876f, -0.0481257f, 0.167964f, -0.136895f, -0.0728648f, -0.159898f, -0.203251f, 0.00883861f, -0.0499303f, 0.00116676f, -0.310972f, -0.0304099f, 0.12923f, 0.0355137f, -0.360283f, 0.118353f, -0.168028f, 0.0146756f, 0.131866f, -0.0552592f, 0.0732355f, -0.00645006f, 0.159516f, 0.249404f, 0.102235f, 0.139983f, -0.0653226f, -0.0369139f, 0.10452f, 0.234613f, -0.312059f, 0.0862428f, 0.114538f, -0.0993655f, -0.146532f, -0.120344f, 0.273131f, -0.0546892f, 0.0848527f, 0.0129158f, -0.185104f, 0.137907f, -0.0488916f, -0.0297983f, -0.0646197f, -0.161706f, -0.0102943f, -0.124369f, 0.065538f, 0.181947f, -0.0203712f, 0.159572f, 0.279877f, -0.133159f, -0.0522885f, 0.0857146f, 0.00465356f, -0.0724276f, -0.118568f, -0.239848f, 0.086133f, 0.0955225f, 0.151519f, -0.0400407f, -0.0800781f, 0.102793f, 0.113736f, -0.224401f, -0.202021f, -0.0400216f, -0.0906711f, 0.121685f, -0.00408163f, 0.0800206f, 0.0317105f, -0.105726f, 0.0690216f, 0.0147965f, 0.242563f, -0.21866f, -0.0162361f, -0.103598f, -0.239881f, -0.173959f, -0.191076f, -0.122074f, -0.0169977f, 0.184898f, -0.126039f, 0.00188676f, -0.0214086f, 0.269605f, 0.173053f, 0.323443f, 0.276746f, -0.31273f, 0.045401f, -0.052946f, -0.0533267f, 0.154583f, 0.359084f, 0.0108966f, 0.0153719f, -0.0232103f, -0.0224547f, 0.050473f, 0.115931f, 0.0525314f, -0.211738f, -0.369909f, 0.141499f, 0.114385f, -0.0427911f, -0.0751217f, -0.116316f, 0.0710783f, 0.0781463f, 0.132241f, 0.095696f, -0.160081f, -0.168386f, 0.248122f, 0.0810072f, -0.0572189f, 0.116804f, 0.198999f, 0.00106787f, 0.0359306f, 0.00177538f, 0.0699305f, 0.00864006f, 0.234207f, -0.100989f, 0.205214f, -0.0520911f, 0.186294f, 0.11767f, -0.183649f, 0.268329f, -0.0544591f, -0.0631173f, 0.0532209f, -0.29214f, 0.0871577f, 0.00773278f, -0.183747f, -0.019923f, 0.0271716f, -0.101965f, 0.200106f, -0.198374f, -0.230448f, -0.0770708f, -0.234369f, -0.104949f, -0.256207f, 0.17503f, -0.00888566f, -0.0277061f, 0.0481971f, 0.00872928f, 0.172865f, -0.0462916f, -0.00298762f, 0.195863f, -0.0983094f, 0.0908055f, -0.172838f, 0.0567886f, 0.0966347f, -0.0356586f, 0.134189f, 0.402908f, -0.10931f, 0.0156263f, -0.101803f, -0.026974f, 0.28056f, 0.0706973f, -0.0663403f, 0.0219447f, 0.124034f, -0.0919237f, -0.133349f, -0.0477265f, 0.0904939f, -0.0679359f, -0.0574489f, -0.0811734f, -0.0127578f, -0.124171f, -0.0959383f, 0.0130646f, 0.134065f, 0.108946f, -0.0908774f, -0.0522389f, -0.0477317f, -0.100599f, 0.0124967f, 0.15421f, -0.0692081f, 0.026698f, -0.161641f, 0.150517f, 0.0900489f, -0.0251841f, 0.00101284f, -0.0986275f, -0.00122855f, 0.173463f, 0.0682063f, -0.00824889f, -0.262304f, -0.128237f, 0.085889f, -0.123422f, -0.0449284f, -0.016091f, 0.00732911f, 0.0871983f, -0.0295355f, -0.244457f, -0.103615f, 0.131887f, 0.0337194f, -0.0579628f, -0.0743469f, 0.161813f, -0.0981946f, 0.296391f, -0.0455033f, 0.221421f, -0.189664f, 0.0369764f, 0.0626731f, -0.212554f, -0.0297373f, -0.109546f, -0.210259f, -0.0324359f, -0.0428008f, -0.113635f, 0.0158349f, 0.118252f, -0.0433015f, 0.147025f, -0.289654f, 0.115376f, 0.0969096f, 0.184595f, -0.0404972f, -0.149414f, 0.176284f, 0.0183996f, -0.0781335f, -0.261806f, 0.042117f, 0.0433308f, 0.222173f, 0.122735f, 0.152838f, 0.000635563f, 0.196649f, 0.149702f, 0.148071f, -0.0922592f, 0.0308278f, -0.114101f, 0.346001f, -0.021508f, 0.0692927f, 0.406911f, -0.130445f, 0.191726f, 0.227141f, -0.0469337f, -0.225241f, 0.0342861f, -0.139827f, -0.0472629f, -0.534894f, 0.103391f, -0.0329097f, -0.232606f, -0.0214681f, -0.00929996f, 0.178982f, -0.0491973f, 0.137556f, -0.127053f, 0.236292f, -0.14874f, 0.0725481f, -0.15005f, 0.146498f, -0.0543994f, -0.0897024f, -0.0498312f, -0.156102f, 0.100227f, 0.225281f, 0.0736804f, -0.14943f, -0.229963f, -0.0704884f, 0.0992592f, -0.0802288f, -0.0591835f, -0.100057f, -0.254269f, -0.00137094f, -0.00945466f, 0.0237395f, -0.314154f, 0.187829f, -0.124354f, 0.0300141f, -0.161629f, 0.112341f, 0.142794f, -0.0118832f, 0.216323f, 0.00682994f, 0.308666f, -0.15547f, 0.151102f, 0.029234f, -0.122762f, -0.255222f, -0.109708f, -0.0637985f, 0.0363481f, -0.109872f, 0.244661f, -0.0245603f, 0.120016f, -0.142567f, -0.0470549f, 0.17261f, -0.0833114f, 0.0845514f, 0.220949f, 0.395927f, 0.194979f, -0.254116f, -0.143892f, -0.0933444f, 0.114253f, -0.0632122f, -0.137961f, -0.31144f, 0.25606f, -0.0926142f, 0.00231368f, -0.239556f, 0.215943f, -0.226092f, 0.0458385f, 0.0594909f, 0.177842f, 0.0876569f, 0.0617895f, -0.0862728f, 0.321272f, -0.0829235f, -0.362889f, -0.115291f, 0.131342f, 0.274129f, -0.0904109f, -0.0443421f, 0.0149644f, -0.273801f, -0.0142543f, -0.198853f, -0.0430451f, 0.186816f, 0.0251478f, -0.338466f, -0.101952f, 0.0886423f, -0.087226f, -0.138703f, -0.139995f, -0.135618f, 0.107377f, -0.115146f, 0.0064902f, 0.0286599f, 0.18266f, -0.0135667f, 0.116229f, -0.00676656f, 0.15623f, -0.0104033f, 0.105933f, 0.197115f, -0.114522f, -0.127495f, -0.154475f, -0.177356f, -0.0108722f, 0.0725705f, 0.154286f, 0.0998496f, -0.192463f, -0.0299496f, 0.159083f, 0.116621f, 0.288101f, 0.160982f, 0.320637f, 0.227316f, 0.257681f, 0.0771144f, 0.0376558f, 0.00122882f, 0.25122f, -0.248885f, 0.113301f, 0.16135f, 0.173762f, -0.11315f, 0.113109f, -0.0213777f, -0.166022f, -0.0700284f, -0.120656f, -0.0724082f, -0.0652505f, 0.129512f, -0.158285f, -0.0125294f, 0.0472566f, 0.0536354f, -0.18575f, -0.0175733f, 0.0841098f, -0.167443f, 0.135875f, -0.176653f, -0.0594923f, -0.074495f, 0.305657f, 0.197762f, 0.074036f, -0.0743163f, 0.0727191f, -0.178561f, 0.0123316f, 0.188181f, -0.0337033f, -0.0508794f, -0.0494488f, -0.138279f, -0.22127f, 0.0945743f, 0.0662919f, 0.00386902f, 0.045019f, -0.184732f, 0.100921f, 0.0303928f, -0.0382687f, 0.188193f, 0.00598593f, 0.18299f, -0.113328f, 0.211256f, 0.0943523f, -0.0777609f, 0.0322457f, 0.000516553f, -0.110569f, 0.0294387f, 0.257587f, 0.0478551f, 0.0652311f, -0.165836f, 0.0698875f, 0.049483f, -0.184093f, -0.189942f, 0.0296348f, -0.0890701f, -0.0155432f, 0.00124324f, -0.146491f, -0.210376f, -0.175005f, -0.0235054f, -0.0367296f, 0.00870952f, 0.0571377f, -0.0925382f, 0.189181f, -0.0325362f, -0.0669757f, 0.0648818f, -0.0179939f, 0.101925f, 0.128502f, 0.0135099f, 0.105281f, -0.0739617f, -0.184264f, -0.221695f, 0.219083f, 0.060338f, 0.221153f, 0.0163423f, 0.106463f, -0.0512342f, -0.0877966f, 0.116937f, -0.186867f, 0.227324f, 0.0340586f, 0.273156f, 0.0306951f, -0.291377f, 0.0158215f, -0.0308494f, -0.0159306f, 0.00297017f, -0.0178806f, 0.000594607f, -0.192805f, -0.0494028f, 0.251053f, -0.28808f, 0.0833539f, 0.0700349f, 0.183321f, 0.136833f, -0.00321036f, 0.0584559f, -0.0747766f, 0.0567231f, -0.0680774f, 0.107309f, 0.00736286f, -0.236184f, -0.161934f, 0.0284186f, 0.211324f, 0.0306707f, 0.158266f, 0.0200344f, 0.127533f, -0.0787793f, 0.24507f, 0.102448f, 0.136357f, -0.119456f, 0.0659722f, -0.086005f, -0.386628f, 0.205745f, -0.126207f, 0.178848f, -0.149721f, -0.0363255f, -0.00431747f, 0.061055f, -0.0421659f, 0.0282935f, 0.156364f, 0.231672f, 0.0926834f, -0.0265262f, 0.0357896f, -0.19352f, -0.216747f, 0.141103f, 0.0573982f, 0.290803f, 0.29381f, -0.0378331f, 0.0596444f, -0.0207957f, -0.054988f, 0.0852055f, 0.011614f, 0.0171016f, -0.0144108f, -0.178001f, -0.238686f, 0.0829638f, -0.112399f, -0.114273f, -0.158722f, 0.270586f, 0.153864f, 0.135716f, -0.00906441f, -0.147583f, 0.159069f, 0.0781488f, 0.0705156f, -0.02629f, -0.0825922f, -0.00437607f, 0.0452097f, -0.256695f, -0.053207f, 0.0453639f, 0.0691599f, 0.21427f, 0.0103875f, 0.0386301f, -0.198037f, -0.155368f, -0.0931291f, -0.141716f, 0.0212695f, 0.087931f, 0.0830529f, -0.153462f, 0.194987f, -0.0448796f, -0.0928331f, 0.0332139f, -0.0163832f, -0.122065f, 0.159788f, 0.127222f, -0.131983f, -0.0344554f, 0.0482747f, -0.0779224f, 0.083744f, 0.014511f, 0.190151f, 0.0643492f, 0.116262f, 0.174151f, 0.0733432f, 0.0702669f, 0.0758784f, 0.0446145f, -0.08856f, 0.191979f, 0.267948f, 0.145382f, 0.287729f, 0.0379286f, -0.107841f, -0.0877821f, 0.17296f, 0.156901f, 0.0326611f, 0.0886323f, -0.0227281f, 0.0856047f, -0.125908f, -0.130535f, -0.11541f, 0.0430999f, 0.0577905f, -0.216551f, -0.277111f, 0.15702f, -0.00991502f, 0.385357f, -0.115256f, 0.0688759f, -0.125116f, -0.0433989f, -0.0177068f, -0.119955f, -0.0800427f, -0.037295f, -0.170231f, 0.206525f, -0.186047f, 0.0621719f, -0.081503f, 0.0245637f, 0.00953272f, 0.239341f, 0.147176f, -0.0456259f, -0.171932f, -0.0187717f, 0.0901668f, -0.103174f, -0.108474f, -0.16548f, -0.0564564f, 0.0394842f, -0.0973791f, -0.187002f, -0.105251f, -0.110046f, -0.292084f, -0.0539841f, -0.103751f, -0.00810652f, -0.0188693f, 0.0787755f, -0.214042f, 0.181833f, -0.0195094f, 0.166129f, -0.0104107f, -0.0369793f, 0.0696625f, 0.258401f, 0.116887f, -0.0818842f, 0.0839377f, 0.0533784f, 0.0748635f, 0.109722f, -0.0700152f, -0.0941905f, 0.00563549f, -0.25418f, -0.22191f, -0.0228024f, -0.172258f, 0.191246f, -0.2104f, -0.0553883f, -0.0973234f, -0.0686475f, 0.106679f, -0.0881689f, 0.0322131f, 0.159314f, -0.10754f, 0.0590882f, -0.0230836f, 0.16544f, -0.168822f, -0.0361645f, 0.205481f, 0.0692357f, 0.0489444f, -0.00359276f, -0.0168232f, 0.0100426f, -0.111981f, 0.162495f, -0.0145629f, -0.168365f, 0.163014f, -0.0943556f, 0.0433099f, 0.106688f, -0.0444728f, 0.0859216f, 0.0760937f, 0.242871f, 0.184809f, -0.0367881f, 0.19593f, 0.109692f, 0.209981f, 0.00509989f, -0.21925f, -0.112297f, -0.0599033f, -0.119443f, 0.0755262f, -0.0203279f, 0.0730556f, -0.0271793f, -0.173948f, 0.0583052f, 0.00396104f, 0.0116577f, -0.0658209f, -0.101254f, -0.0238f, 0.0450149f, 0.193967f, -0.0862731f, 0.172111f, 0.221836f, -0.0293346f, -0.224511f, 0.12469f, -0.16558f, -0.0126049f, 0.0670274f, -0.0555178f, 0.015052f, 0.151216f, -0.0430542f, -0.0781447f, 0.188065f, 0.226643f, 0.000899526f, -0.0226112f, 0.184061f, 0.0215877f, -0.000175144f, 0.10456f, 0.1174f, -0.000899174f, 0.23159f, -0.165383f, -0.11972f, -0.121179f, -0.176678f, -0.0850144f, 0.165347f, 0.165206f, 0.0555707f, 0.188635f, -0.0381786f, 0.110498f, 0.10881f, -0.0732421f, 0.0237613f, 0.0490233f, 0.063474f, -0.144059f, -0.00593115f, -0.00239849f, -0.152213f, -0.142165f, 0.141114f, 0.139046f, -0.0647485f, 0.231979f, -0.0163701f, 0.024562f, -0.0711497f, -0.0825967f, 0.0572961f, 0.0422057f, 0.162238f, 0.142794f, 0.0282823f, -0.078353f, 0.00401647f, -0.0530381f, 0.0745299f, 0.0801731f, -0.117447f, -0.0923313f, 0.00719261f, -0.216967f, 0.140363f, -0.098051f, -0.225404f, -0.0274087f, 0.129557f, -0.136949f, -0.146457f, -0.107835f, 0.032047f, -0.0215049f, -0.085498f, 0.0228497f, 0.169469f, 0.0644435f, -0.078901f, -0.0180629f, 0.0426104f, -0.0881801f, 0.122745f, 0.256398f, -0.12727f, -0.148682f, -0.00501162f, 0.192251f, 0.0563622f, -0.0367505f, -0.022408f, -0.0046306f, 0.0529611f, 0.100885f, 0.0172863f, 0.0934356f, -0.0419474f, 0.032336f, -0.184306f, -0.0201746f, 0.0411028f, -0.032788f, -0.0484929f, -0.0244241f, -0.0644065f, 0.184531f, 0.0140603f, 0.0779267f, -0.084102f, 0.216974f, -0.0650817f, -0.161233f, 0.285319f, 0.291715f, -0.0478328f, 0.411779f, 0.0193828f, 0.103143f, -0.0790673f, -0.0362652f, 0.0177246f, 0.151435f, -0.109187f, -0.191366f, 0.0498884f, -0.228296f, 0.143712f, -0.0393704f, -0.0769892f, -0.118643f, -0.0608919f, 0.204649f, 0.262603f, 0.168837f, 0.0250617f, 0.0335216f, 0.164442f, 0.254431f, 0.114707f, -0.0934562f, -0.12455f, 0.071739f, 0.136046f, 0.154551f, 0.0273173f, 0.0467645f, -0.240605f, -0.185916f, 0.219022f, -0.207066f, -0.0039698f, 0.0356306f, 0.0575868f, 0.117969f, -0.132579f, 0.0790277f, -0.119824f, 0.35941f, 0.378994f, 0.120576f, -0.362801f, -0.0990008f, -0.0953531f, 0.205457f, -0.284037f, -0.30103f, 0.0510023f, -0.00792907f, 0.124998f, 0.00401895f, 0.150715f, 0.0494551f, 0.0588828f, -0.0191178f, -0.130725f, -0.113598f, 0.254801f, -0.00302516f, 0.228221f, -0.0753344f, 0.0755588f, -0.221509f, -0.0433359f, 0.157264f, 0.00836095f, -0.0119337f, -0.120949f, 0.0437383f, -0.398782f, 0.191206f, 0.212792f, -0.103787f, -0.0326985f, -0.0806611f, -0.0964797f, 0.379806f, -0.32779f, 0.0644036f, -0.110257f, 0.137173f, -0.406015f, -0.155956f, -0.212585f, 0.0241191f, 0.0989812f, 0.197914f, 0.221586f, -0.234606f, -0.273926f, -0.24559f, 0.158347f, -0.03169f, 0.10567f, 0.0572219f, -0.324604f, 0.149509f, -0.0236095f, -0.0835624f, -0.225155f, -0.27489f, 0.338657f, -0.0108075f, 0.051719f, 0.171891f, 0.209334f, -0.0815751f, -0.060322f, -0.290814f, -0.192806f, 0.231146f, -0.108928f, -0.0178939f, -0.0101319f, -0.21524f, -0.214608f, 0.209046f, 0.0214521f, 0.22859f, -0.0884793f, 0.0402603f, -0.0279745f, 0.0189938f, -0.00359698f, -0.217634f, -0.24294f, 0.138708f, -0.0754734f, -0.0229569f, 0.0291364f, -0.184731f, -0.181778f, 0.076129f, 0.0192012f, -0.0687231f, 0.157446f, -0.105806f, 0.0729129f, -0.126072f, -0.0113468f, 0.188508f, 0.196582f, -0.0473428f, 0.0051957f, -0.1511f, -0.0210353f, 0.0983684f, -0.0642512f, 0.109109f, -0.0161442f, 0.0274537f, 0.146166f, 0.129162f, 0.160771f, -0.0917691f, -0.0712895f, 0.043084f, 0.0137142f, -0.130236f, 0.223054f, 0.0772442f, 0.115167f, -0.0863542f, -0.281312f, -0.156648f, 0.0151835f, 0.207221f, -0.0613564f, -0.113496f, -0.0949858f, -0.107232f, 0.00328965f, -0.0934813f, -0.0393313f, 0.00742486f, -0.0202233f, 0.1121f, -0.0365795f, 0.0451356f, 0.174f, -0.143136f, 0.135874f, -0.14522f, 0.00689676f, -0.0235774f, -0.0466361f, 0.142997f, 0.0375155f, 0.0956271f, 0.0881377f, 0.0957798f, 0.107794f, -0.0156618f, 0.0424498f, -0.0410805f, -0.0113555f, 0.0273598f, -0.0018419f, -0.137784f, -0.14582f, -0.147767f, 0.240069f, -0.225257f, 0.0143059f, -0.048507f, 0.0979357f, 0.0325675f, 0.0478394f, -0.00914512f, -8.56987e-05f, -0.0390102f, -0.266982f, -0.204268f, -0.24259f, -0.136422f, 0.225912f, 0.11554f, 0.639108f, 0.0936698f, -0.00722926f, -0.242069f, 0.169359f, -0.0588532f, 0.105066f, -0.0731041f, -0.207161f, -0.181193f, -0.182719f, -0.0987685f, -0.14517f, 0.13563f, -0.159236f, 0.0408474f, -0.0474329f, -0.0453489f, 0.069079f, -0.0500261f, 0.125013f, 0.018699f, -0.178105f, 0.0207987f, 0.0339365f, 0.15763f, -0.0590446f, 0.0841994f, -0.0501352f, 0.22421f, -0.0576739f, 0.0672744f, -0.0620952f, 0.0438639f, 0.183719f, 0.128219f, 0.137809f, -0.0844593f, 0.133348f, 0.221012f, 0.0312572f, 0.00331164f, 0.0206823f, 0.107428f, 0.245347f, 0.183614f, -0.0486369f, 0.171748f, 0.171588f, 0.084593f, 0.0529077f, 0.122318f, 0.0859007f, -0.0223721f, -0.114965f, 0.0265448f, -0.0448924f, 0.145378f, 0.00392645f, 0.0821342f, -0.0308643f, 0.134613f, 0.164455f, 0.21429f, -0.0772344f, -0.104439f, 0.0808164f, -0.0931556f, 0.0462979f, -0.158992f, 0.130978f, -0.158306f, -0.0119653f, -0.134098f, 0.00410664f, -0.0548213f, -0.168782f, -0.128718f, 0.197966f, 0.0224917f, -0.127164f, 0.133858f, -0.0622213f, 0.0151314f, 0.0634199f, 0.089267f, -0.118626f, -0.203573f, 0.155933f, 0.247278f, 0.0408903f, 0.0251295f, 0.122017f, 0.0210275f, 0.170587f, -0.179661f, 0.163869f, 0.0573654f, 0.187861f, -0.00107926f, -0.251624f, -0.167163f, 0.068129f, -0.0902184f, 0.311831f, -0.199512f, -0.150869f, 0.094964f, 0.100881f, -0.160628f, 0.00940704f, 0.101004f, 0.0823757f, -0.011903f, 0.0506875f, -0.124851f, 0.169157f, 0.0722529f, 0.0382472f, 0.155226f, -0.0587824f, -0.231018f, 0.0569085f, -0.0496799f, -0.0943397f, -0.104079f, -0.180458f, 0.178818f, -0.191922f, -0.0356876f, 0.308455f, 0.118081f, -0.182414f, 0.0620628f, -0.07279f, 0.114763f, 0.219589f, -0.205428f, -0.0385593f, 0.0586273f, -0.103915f, -0.0173581f, -0.0346614f, -0.0857014f, 0.20848f, -0.143324f, -0.0816673f, 0.102322f, 0.0629347f, -0.102678f, -0.0176284f, 0.236332f, -0.0964175f, -0.15902f, 0.244067f, 0.0949674f, 0.0385999f, -0.0895679f, 0.0420934f, 0.211499f, 0.194754f, 0.160402f, 0.14749f, -0.0282949f, -0.00586881f, -0.0851891f, -0.0267338f, 0.068725f, 0.115635f, 0.216891f, 0.12648f, -0.128688f, -0.137028f, -0.0414228f, -0.212666f, 0.189765f, -0.0800026f, 0.194364f, -0.10101f, 0.278126f, -0.0418503f, -0.0802604f, -0.0894976f, -0.159587f, 0.0170355f, -0.198478f, 0.0130055f, 0.177606f, -0.202239f, -0.0149238f, -0.300486f, -0.160071f, 0.168959f, -0.161998f, 0.00625306f, -0.0169205f, -0.0445528f, 0.338951f, 0.234261f, 0.0452395f, -0.0430811f, 0.0691354f, -0.0575273f, -0.340422f, -0.163098f, -0.138832f, -0.119527f, 0.152595f, 0.144933f, 0.250588f, -0.112519f, 0.191929f, 0.0776207f, -0.258198f, -0.0606364f, 0.0952368f, -0.0848296f, -0.310277f, -0.0805695f, -0.0417926f, -0.0224449f, -0.277613f, 0.0967276f, -0.244118f, -0.217581f, 0.163558f, -0.0886723f, -0.183324f, 0.125696f, -0.274992f, 0.102606f, -0.0421954f, -0.241441f, 0.0625707f, 0.0179731f, 0.0251251f, -0.0088337f, 0.160757f, 0.0833167f, -0.156398f, 0.213855f, -0.256925f, 0.230834f, 0.0757745f, -0.139581f, 0.121489f, -0.158782f, 0.211626f, -0.284266f, -0.142967f, -0.29035f, 0.189071f, -0.0588369f, -0.0910401f, 0.0847292f, 0.109349f, 0.0656598f, -0.139978f, -0.0190225f, 0.183682f, -0.185127f, 0.229367f, 0.156224f, -0.171148f, 0.360955f, 0.179829f, -0.0591629f, 0.303446f, 0.0306935f, -0.0347091f, -0.133884f, 0.013443f, 0.175243f, 0.132403f, 0.315995f, 0.305194f, -0.0264757f, -0.0032781f, 0.20997f, 0.311919f, -0.0831951f, 0.165874f, 0.301893f, 0.0968182f, 0.165804f, 0.0851743f, -0.12998f, -0.0304123f, 0.052633f, 0.152873f, -0.135646f, -0.115861f, -0.0866844f, -0.0192138f, -0.0103817f, 0.158178f, 0.148928f, -0.122601f, -0.0306065f, -0.0868127f, 0.136174f, -0.0798643f, 0.0138682f, 0.0502568f, -0.185046f, -0.0292442f, 0.057389f, 0.0706218f, 0.190329f, -0.0289013f, -0.108572f, -0.00296156f, 0.102192f, -0.0238456f, 0.0623359f, 0.122309f, 0.00687731f, -0.258459f, 0.0620412f, -0.142911f, -0.0111478f, 0.207185f, 0.173956f, -0.0168546f, -0.046796f, -0.0313212f, -0.0663851f, -0.0139346f, -0.0844157f, 0.0112371f, 0.0263893f, 0.0220722f, -0.000378936f, -0.0158888f, 0.147501f, 0.0322799f, -0.030079f, 0.0700689f, -0.133564f, -0.106657f, -0.0238139f, -0.044041f, -0.000979668f, -0.117466f, 0.0712017f, -0.0915405f, -0.0620026f, 0.0229178f, 0.0999057f, 0.0079873f, -0.0575265f, 0.0439131f, -0.0629719f, -0.0551709f, 0.11464f, 0.169889f, -0.0614761f, -0.0875054f, -0.138396f, -0.0109261f, 0.0531977f, 0.0779725f, 0.147521f, 0.0443928f, -0.0340777f, -0.185307f, 0.0591864f, 0.113105f, 0.0500942f, -0.074557f, -0.0235816f, -0.0439667f, 0.0620326f, -0.0549995f, 0.0537059f, 0.0981212f, 0.0372834f, 0.130076f, -0.113733f, 0.135775f, 0.0986904f, 0.0131507f, -0.0427824f, 0.0975681f, -0.023142f, 0.0470626f, 0.0809196f, 0.0603315f, -0.119637f, -0.045124f, 0.102934f, 6.51788e-05f, 0.0276937f, -0.126898f, -0.051354f, 0.0982488f, 0.0732426f, 0.046003f, 0.182965f, 0.10382f, 0.0678873f, 0.112688f, 0.0157752f, 0.0101859f, 0.0285895f, 0.0518229f, 0.0319117f, 0.133923f, 0.134823f, -0.0180956f, -0.046217f, -0.0237954f, 0.0556164f, 0.0886601f, -0.139862f, -0.0360756f, -0.252463f, 0.0721562f, -0.150304f, -0.12892f, -0.0204165f, -0.257813f, -0.064132f, -0.221449f, -0.0441501f, -0.261095f, -0.12969f, 0.0444941f, 0.0614669f, 0.0596981f, -0.0105635f, -0.146596f, 0.0798434f, 0.251551f, 0.290989f, -0.195726f, 0.0384806f, 0.0419946f, 0.15346f, 0.0648327f, -0.115093f, -0.253596f, -0.106957f, -0.0512597f, 0.17959f, -0.0889137f, 0.265229f, 0.101403f, -0.0395206f, 0.163797f, -0.00702574f, -0.188679f, -0.232624f, 0.024236f, 0.100615f, 0.0491806f, 0.149646f, 0.12972f, 0.119794f, 0.0793748f, -0.0409477f, 0.146213f, -0.0499785f, -0.0869714f, 0.207611f, 0.00127948f, -0.143647f, -0.106651f, 0.172149f, -0.0757327f, -0.0394249f, 0.0598244f, 0.0494339f, 0.0967777f, -0.00442724f, 0.14328f, 0.175541f, -0.101325f, 0.107924f, 0.0896893f, -0.119485f, 0.0814952f, -0.145038f, -0.0853573f, -0.122102f, 0.262843f, 0.267911f, 0.011469f, 0.0385469f, 0.114396f, 0.072815f, 0.0532683f, 0.192817f, 0.136616f, -0.0720703f, -0.00525962f, 0.00426003f, 0.0493077f, 0.180849f, 0.110424f, -0.116803f, -0.0980102f, 0.0464656f, 0.162574f, -0.224451f, -0.0886819f, -0.0590801f, -0.21377f, -0.167312f, 0.148914f, 0.0106065f, 0.248886f, 0.21426f, -0.19957f, -0.0117993f, 0.0999261f, -0.0526383f, -0.244732f, 0.0206827f, -0.111669f, -0.147708f, -0.0345504f, 0.136897f, 0.0195118f, 0.249929f, -0.0493285f, 0.0250462f, -0.0555473f, 0.0424128f, -0.12563f, 0.209174f, -0.128353f, 0.0262521f, 0.246862f, -0.0305932f, 0.111579f, 0.0765624f, -0.0819076f, 0.0171552f, -0.168903f, 0.105887f, -0.0584266f, 0.179577f, 0.141972f, -0.0017501f, 0.0599459f, 0.124493f, -0.0305431f, 0.0993985f, -0.0450215f, 0.0991322f, -0.106093f, 0.160508f, 0.0697492f, -0.108641f, -0.0734357f, -0.0250914f, -0.146586f, -0.0831372f, -0.0229257f, -0.0632567f, 0.0679136f, -0.00592602f, 0.0436266f, 0.00431503f, 0.0296553f, 0.137757f, 0.0803758f, 0.11011f, -0.0728007f, -0.251475f, 0.124797f, 0.0886896f, -0.105978f, -0.0281971f, -0.186236f, -0.126768f, -0.0862079f, 0.0241285f, 0.0228914f, -0.0153505f, -0.110726f, 0.153025f, -0.027009f, -0.139907f, 0.108622f, -0.128479f, -0.00300266f, 0.00893958f, 0.0239344f, 0.245563f, -0.0547451f, -0.153115f, -0.190237f, -0.091778f, -0.0679358f, -0.137941f, -0.0325519f, -0.0769263f, -0.0218739f, -0.0103621f, 0.104926f, 0.0527947f, -0.134914f, -0.0381158f, 0.00920524f, -0.150248f, 0.047455f, 0.113423f, 0.0844121f, -0.208801f, 0.0997503f, -0.0210903f, -0.115363f, 0.347421f, 0.00108241f, -0.025195f, -0.0874008f, 0.0808816f, -0.125568f, -0.102319f, 0.0670504f, 0.0639215f, -0.102057f, 0.108741f, -0.0837514f, 0.0888527f, 0.0448804f, -0.0667347f, 0.0979061f, -0.0162941f, 0.0197678f, -0.10262f, 0.151982f, 0.0873206f, 0.00104567f, 0.0199277f, 0.104916f, -0.0554213f, -0.188451f, 0.132559f, -0.0182414f, 0.0855603f, 0.031143f, -0.239738f, -0.0710492f, 0.244584f, 0.119196f, -0.0206089f, 0.0958326f, 0.0564571f, -0.0597721f, 0.13286f, -0.114529f, 0.0448453f, 0.00257062f, 0.175138f, -0.0593909f, 0.187756f, -0.0585878f, -0.00514007f, 0.0242875f, -0.139545f, 0.0606521f, 0.100382f, 0.0759652f, -0.135659f, 0.0964396f, 0.13245f, -0.0567198f, -0.236875f, -0.198503f, 0.0466227f, 0.0211684f, -0.153318f, -0.035413f, -0.100695f, 0.0229662f, -0.121878f, -0.0577546f, 0.183899f, 0.0590798f, -0.13154f, -0.272832f, 0.0811526f, -0.100379f, -0.144315f, -0.0258831f, 0.00321842f, -0.155066f, -0.196524f, 0.115258f, 0.462997f, -0.215382f, -0.0365179f, 0.0818321f, 0.00103319f, -0.0479243f, 0.185489f, -0.0214489f, 0.0719351f, 0.014321f, 0.204658f, 0.0416418f, 0.0934401f, -0.128382f, -0.0456312f, -0.243312f, 0.0707081f, -0.190593f, 0.198341f, 0.00173894f, 0.0276824f, 0.111567f, 0.0309421f, 0.060177f, -0.0299249f, 0.0227408f, 0.0104381f, 0.138209f, 0.16008f, -0.175745f, 0.151003f, -0.00128372f, 0.193703f, 0.201729f, 0.00299563f, -0.02665f, 0.128233f, 0.0709252f, 0.0612969f, -0.277868f, 0.000162732f, -0.162282f, 0.0406418f, -0.202909f, -0.0730389f, 0.021458f, -0.148962f, -0.0583063f, 0.0842804f, 0.0917709f, -0.312505f, -0.133448f, 0.108974f, 0.0686852f, 0.0961224f, -0.110217f, -0.112335f, 0.0199645f, 0.0175492f, 0.107656f, 0.0852444f, 0.125387f, 0.0233061f, 0.122027f, -0.0785379f, -0.131291f, -0.112158f, -0.208741f, -0.0232501f, 0.000791434f, 0.253268f, -0.0144325f, 0.205528f, -0.0142457f, -0.153077f, 0.154918f, -0.0999436f, -0.137671f, -0.128947f, 0.0774636f, -0.0955936f, 0.0269465f, -0.0571306f, -0.291675f, 0.0370569f, 0.150117f, 0.238132f, 0.157502f, -0.0277755f, 0.0654468f, 0.109634f, 0.250995f, -0.0945873f, 0.147929f, 0.120976f, 0.0822458f, 0.2156f, -0.0232925f, 0.190997f, 0.063901f, 0.0987414f, -0.215012f, -0.0502374f, 0.123178f, -0.161279f, 0.19547f, -0.05476f, -0.038235f, -0.217749f, -0.122456f, -0.146589f, 0.110151f, 0.0651011f, -0.111845f, 0.0806531f, -0.112645f, 0.148018f, 0.185228f, 0.0443851f, -0.183952f, -0.0436134f, -0.104411f, 0.0896011f, 0.0269625f, -0.00365122f, -0.0151691f, 0.222076f, -0.00288856f, 0.0974848f, 0.00964735f, -0.067958f, 0.127243f, 0.0664678f, 0.00635044f, 0.0198796f, -0.0512404f, -0.130909f, 0.118619f, -0.0332914f, 0.0010014f, -0.0628763f, 0.0384523f, -0.199765f, 0.0889593f, -0.159385f, 0.116155f, -0.0631439f, -0.00906322f, 0.118947f, 0.0820373f, 0.117298f, -0.0952054f, 0.0364546f, 0.13925f, -0.0056933f, -0.0527861f, 0.0396808f, -0.0257547f, -0.0150967f, -0.160384f, -0.0702159f, 0.0577325f, 0.0846391f, 0.11992f, 0.197808f, -0.0585815f, 0.0870359f, -0.075602f, -0.116595f, 0.0184322f, -0.00935283f, 0.0997198f, -0.0293435f, 0.236831f, 0.156087f, -0.0763475f, 0.040804f, 0.011344f, -0.159937f, 0.135958f, -0.0263805f, 0.0227593f, -0.0318044f, -0.0749506f, -0.0370926f, 0.00870756f, 0.0866858f, -0.0603517f, 0.100549f, 0.00801619f, -0.0647646f, -0.0537707f, -0.0468899f, 0.184733f, -0.166017f, -0.195796f, 0.200776f, -0.0482193f, -0.0162575f, 0.171697f, 0.004155f, -0.0516053f, 0.0208045f, -0.00917284f, 0.243703f, 0.0620219f, -0.0276979f, 0.0322934f, 0.0531037f, -0.0849337f, -0.035398f, 0.0117888f, -0.158587f, -0.0650926f, -0.0552303f, 0.0109336f, 0.224454f, -0.128983f, 0.0846934f, -0.0920544f, 0.133201f, 0.0432065f, -0.00151583f, -0.0347378f, 0.0520033f, 0.0181741f, -0.0315122f, 0.0957002f, 0.102581f, 0.144296f, -0.0510121f, -0.208808f, -0.062561f, -0.137897f, -0.106321f, -0.106746f, -0.168367f, 0.191995f, -0.0858774f, -0.111845f, -0.0870694f, -0.0697292f, -0.147281f, -0.162628f, -0.235713f, -0.221169f, 0.0753252f, 0.342031f, 0.16013f, 0.166931f, 0.0693417f, 0.347544f, 0.0287455f, -0.130856f, -0.286521f, 0.258286f, 0.409562f, -0.396295f, -0.0956149f, 0.254935f, -0.131953f, 0.0375288f, -0.0212081f, -0.147285f, 0.328946f, 0.0337317f, 0.0544663f, -0.0246041f, 0.265113f, 0.00428781f, -0.248868f, 0.0691849f, -0.177696f, 0.0295229f, -0.132354f, 0.144524f, -0.0788277f, 0.0937916f, -0.0266771f, -0.0442639f, -0.0258385f, -0.116906f, -0.116136f, -0.101597f, -0.0599255f, 0.0860898f, -0.111303f, -0.173037f, 0.234904f, -0.281937f, -0.250376f, -0.125208f, -0.0678509f, 0.173406f, -0.150882f, -0.101061f, 0.00222553f, 0.10586f, 0.0503393f, 0.0612201f, 0.0769649f, 0.157958f, -0.241191f, 0.117698f, -0.256128f, -0.264928f, 0.0774564f, 0.171593f, 0.134009f, -0.157651f, 0.130573f, -0.0987195f, -0.187077f, 0.0451665f, 0.118837f, 0.113755f, -0.0720911f, -0.127147f, 0.414005f, 0.0534517f, 0.266114f, 0.0842308f, -0.118101f, 0.104747f, -0.11616f, -0.164309f, 0.148532f, 0.125536f, -0.4548f, -0.228021f, 0.155911f, -0.0493214f, -0.0256218f, -0.0713893f, 0.164503f, -0.266834f, 0.0714967f, 0.26759f, -0.089531f, 0.00879333f, -0.0301725f, 0.121534f, -0.112902f, 0.0469254f, 0.0962922f, 0.247994f, -0.193179f, -0.180852f, -0.13809f, -0.0453221f, -0.161555f, -0.0625788f, 0.0200578f, -0.0251558f, -0.146583f, -0.052518f, -0.122446f, -0.0813781f, -0.238865f, 0.096195f, 0.207982f, -0.225558f, 0.057382f, -0.226462f, 0.186488f, -0.0482018f, -0.0593164f, 0.149265f, -0.0345769f, -0.190112f, -0.00869384f, 0.0383295f, 0.0891388f, -0.243957f, 0.123672f, -0.0388262f, -0.0376952f, 0.0980029f, 0.00923736f, -0.291268f, -0.0499277f, 0.207216f, 0.0854493f, -0.065663f, -0.160334f, -0.196224f, -0.184282f, -0.192741f, 0.217292f, -0.0314923f, 0.0699756f, -0.127829f, 0.187909f, 0.176666f, -0.164543f, -0.149835f, -0.272706f, 0.0035084f, 0.03237f, 0.295999f, 0.137225f, 0.0580251f, -0.104903f, -0.153486f, 0.0394975f, -0.0124171f, 0.213122f, -0.10643f, 0.0172491f, 0.106354f, 0.13398f, 0.062099f, -0.12545f, -0.0499416f, -0.112278f, -0.16807f, 0.300571f, -0.0627487f, 0.140564f, -0.237643f, -0.0256145f, -0.127554f, 0.137103f, 0.0369341f, -0.158373f, 0.115423f, -0.122939f, -0.166633f, -0.0242633f, -0.126613f, 0.0901657f, 0.125185f, 0.009029f, 0.0464463f, 0.237277f, 0.0599124f, -0.0832092f, -0.0714648f, -0.126345f, 0.260965f, 0.0163904f, 0.120234f, 0.148086f, -0.137621f, 0.107107f, 0.144216f, 0.102204f, 0.00253192f, 0.118792f, -0.027518f, 0.300392f, -0.160863f, -0.0354125f, -0.168773f, 0.0321199f, 0.0584262f, -0.0574542f, 0.116703f, -0.247578f, 0.121375f, -0.284551f, -0.2861f, -0.0908409f, -0.160788f, 0.0448804f, -0.190653f, 0.0337649f, -0.233559f, 0.0561272f, -0.0498382f, -0.0707089f, -0.0368832f, 0.133171f, 0.14413f, 0.0578206f, -0.168497f, 0.181124f, -0.0159036f, 0.145687f, 0.0906344f, 0.122579f, -0.0196842f, -0.0605547f, -0.0733803f, 0.0410764f, -0.0826989f, 0.0415641f, -0.00776831f, 0.249638f, 0.0914897f, 0.0637454f, 0.0665486f, -0.14219f, -0.0971887f, 0.240718f, -0.496421f, -0.262894f, -0.0668202f, -0.173394f, -0.275347f, 0.102706f, -0.036074f, -0.0291066f, -0.238817f, 0.287707f, 0.0394866f, -0.30923f, 0.0546035f, 0.0693418f, 0.126801f, -0.114605f, 0.267952f, -0.0211153f, -0.00792129f, 0.0455184f, 0.118022f, 0.227264f, 0.10049f, -0.259606f, -0.103391f, -0.204282f, 0.118065f, -0.0842382f, -0.0694867f, 0.132529f, -0.123244f, -0.0548456f, 0.00311002f, 0.339774f, 0.0995856f, 0.149262f, -0.0862869f, 0.0228822f, 0.266487f, 0.170488f, 0.0158569f, 0.176657f, -0.26079f, 0.00962077f, 0.0063612f, 0.146422f, 0.00602813f, 0.152341f, 0.0896815f, 0.0386097f, -0.0867563f, 0.140085f, 0.00615362f, 0.0643278f, 0.0110485f, -0.175148f, -0.0346229f, -0.0840358f, -0.0822386f, 0.0383118f, -0.00796629f, 0.0886403f, 0.0913311f, -0.195109f, -0.036273f, 0.179315f, -0.214627f, -0.56799f, 0.167078f, -0.552922f, -0.0276532f, 0.000922229f, 0.0321477f, 0.285182f, -0.000676596f, 0.0902086f, 0.0322661f, 0.12727f, -0.200236f, -0.0892204f, 0.0231518f, 0.0187923f, 0.130527f, -0.388305f, 0.0985785f, -0.0321104f, 0.0384048f, -0.00269179f, -0.174961f, -0.0834279f, 0.017157f, -0.1166f, -0.00977099f, 0.0357849f, -0.159048f, 0.0432478f, 0.492424f, 0.0290154f, -0.0597601f, -0.00157489f, -0.0715595f, 0.180147f, 0.125937f, -0.0507049f, 0.106765f, 0.164607f, 0.015142f, 0.00157548f, 0.000552047f, 0.0435341f, 0.179883f, -0.131792f, -0.190179f, -0.10263f, 0.0361222f, -0.0537248f, 0.00104909f, -0.188731f, 0.338487f, 0.0276014f, 0.227048f, -0.0421389f, -0.115239f, 0.11084f, -0.0900581f, -0.119004f, 0.0135335f, -0.141172f, -0.0307491f, 0.175458f, -0.0153038f, 0.0699897f, -0.154116f, 0.00191056f, -0.0403515f, 0.0240229f, -0.030209f, 0.182381f, -0.0738912f, 0.028775f, 0.0616841f, 0.207398f, 0.127781f, 0.0231766f, -0.0179606f, 0.0444633f, -0.1569f, -0.116552f, 0.132596f, 0.0235318f, 0.0443656f, -0.112413f, -0.016914f, 0.0264307f, -0.117133f, 0.0771513f, -0.0971898f, 0.000597115f, 0.0615555f, -0.0434914f, 0.106654f, -0.114301f, 0.0657621f, 0.108305f, 0.0182105f, -0.0180025f, -0.0982504f, 0.156445f, 0.140189f, -0.1267f, 0.0320812f, 0.149139f, 0.0766929f, 0.102065f, -0.177769f, 0.158303f, 0.239967f, -0.211247f, -0.0253688f, 0.2256f, 0.0854569f, -0.00468598f, -0.0170312f, 0.0576186f, -0.0548555f, -0.137303f, -0.0400282f, -0.124024f, -0.118806f, 0.0226448f, 0.153295f, 0.0129908f, 0.0642858f, 0.053441f, -0.130015f, 0.183971f, -0.0520048f, 0.0634136f, 0.122112f, -0.0440574f, -0.12245f, 0.0982483f, 0.0212664f, 0.227177f, 0.111334f, 0.0380086f, -0.137009f, -0.0890309f, 0.146865f, 0.0531238f, 0.0821138f, 0.105436f, 0.147058f, -0.0609691f, 0.148689f, -0.130369f, -0.126921f, 0.0816279f, 0.0752818f, 0.0948717f, -0.105744f, 0.0466179f, -0.166799f, -0.0328934f, 0.0505546f, 0.0145775f, -0.0775252f, -0.152014f, 0.0781847f, -0.0971519f, 0.067684f, -0.146902f, 0.16238f, -0.0933438f, 0.0296856f, -0.0259645f, -0.11757f, -0.0417762f, -0.0392985f, -0.0986699f, -0.0313394f, 0.029021f, 0.0375872f, 0.077899f, 0.00977936f, -0.114496f, 0.0883573f, 0.0551066f, -0.123369f, 0.0619639f, -0.0708066f, -0.0886962f, 0.0708753f, -0.143452f, -0.204426f, -0.048514f, 0.446168f, -0.0276084f, 0.240654f, -0.131646f, 0.0663116f, -0.0745069f, 0.0738104f, -0.170451f, -0.273949f, -0.441216f, -0.0462654f, -0.0766957f, -0.15443f, 0.0350241f, -0.104951f, -0.0729552f, -0.189299f, 0.155554f, -0.0843915f, 0.0198996f, -0.157616f, 0.279464f, 0.123338f, -0.125619f, 0.0294467f, -0.149485f, -0.0103003f, 0.0189764f, -0.204304f, 0.099247f, -0.194806f, -0.12757f, -0.102501f, -0.0776483f, 0.0657487f, 0.18635f, 0.0522138f, -0.00154263f, 0.37541f, 0.356382f, -0.017435f, -0.0855783f, 0.194799f, -0.102992f, 0.259328f, 0.224537f, -0.107286f, -0.153838f, 0.0597069f, -0.135075f, 0.0344364f, -0.0338638f, 0.0282694f, -0.137746f, -0.079865f, 0.0359324f, -0.21758f, -0.261701f, 0.0481664f, -0.0732411f, -0.0556305f, 0.0178977f, 0.376592f, -0.147513f, 0.122455f, 0.353105f, -0.0993134f, 0.139853f, 0.261281f, -0.155164f, -0.282062f, -0.297328f, 0.0256806f, -0.00728064f, 0.122225f, 0.171057f, -0.302203f, -0.00685661f, 0.0939998f, 0.0519564f, -0.0112387f, 0.160632f, 0.12402f, 0.0644874f, -0.113401f, 0.186768f, 0.0606855f, -0.0542967f, 0.171622f, 0.0415134f, -0.0430064f, 0.0873557f, -0.0521218f, 0.119645f, -0.029716f, -0.000817571f, -0.430078f, 0.141701f, -0.0759565f, -0.00785887f, -0.0929366f, -0.203185f, 0.06313f, -0.151305f, 0.0440177f, 0.183981f, 0.165044f, 0.179269f, -0.0841126f, 0.0210916f, 0.241523f, -0.0135145f, 0.0397285f, -0.127619f, -0.0451243f, -0.0918162f, 0.0285917f, -0.0431669f, 0.123335f, -0.21623f, 0.0847587f, -0.159231f, 0.0542572f, -0.0830855f, -0.294242f, -0.125454f, -0.214183f, 0.0634001f, -0.0858473f, 0.0143852f, 0.102834f, -0.140183f, 0.0754925f, 0.338781f, -0.0666203f, 0.163734f, -0.315039f, -0.0367517f, 0.285918f, -0.0343079f, 0.163705f, -0.0830711f, -0.166775f, -0.0970965f, 0.153286f, -0.0107155f, 0.153378f, -0.248254f, 0.132958f, -0.0230866f, -0.136991f, -0.0219734f, 0.0559639f, -0.167968f, -0.0211403f, 0.048921f, 0.20403f, -0.00371443f, -0.147262f, -0.130255f, -0.0942774f, 0.0752642f, 0.188213f, -0.276721f, 0.29197f, 0.0451849f, -0.0833989f, -0.240045f, 0.0877975f, -0.104539f, -0.18601f, -0.118483f, -0.131715f, 0.18247f, 0.185218f, -0.0340073f, 0.131994f, -0.0678337f, -0.137388f, -0.00110013f, -0.234553f, -0.0572869f, -0.16939f, -0.104276f, 0.206238f, 0.17463f, 0.0714765f, -0.0595764f, -0.0275714f, -0.0254306f, 0.0411515f, 0.238884f, 0.176304f, -0.226043f, 0.0149972f, -0.187206f, 0.222748f, -0.152809f, 0.121075f, -0.271004f, 0.125678f, 0.016588f, 0.151274f, -0.118324f, 0.0743941f, -0.244696f, -0.016216f, -0.118919f, 0.116379f, -0.0982198f, 0.134083f, -0.287103f, -0.0601385f, -0.248922f, -0.16149f, 0.0392241f, 0.204997f, 0.0202357f, 0.171678f, 0.330412f, -0.301827f, -0.00643565f, -0.0640815f, -0.261788f, -0.0646324f, 0.265004f, -0.0677285f, -0.339745f, 0.0752077f, 0.142928f, 0.210771f, -0.0871539f, -0.129244f, 0.0438527f, -0.0620235f, -0.0790998f, -0.231183f, -0.131616f, 0.164111f, -0.122189f, -0.0240212f, 0.122807f, 0.164012f, 0.020796f, 0.354914f, 0.262229f, 0.115546f, 0.0153988f, 0.157519f, 0.105347f, -0.16152f, 0.0847895f, 0.362612f, 0.23433f, 0.0885558f, 0.148816f, 0.0133603f, -0.0532384f, 0.124335f, -0.1211f, -0.267034f, -0.0706687f, 0.00914888f, 0.0595235f, -0.0526499f, -0.0163789f, -0.128277f, -0.0691741f, -0.0293558f, -0.1527f, 0.0418631f, 0.044466f, 0.0556497f, -0.12455f, 0.186299f, -0.146312f, -0.215899f, -0.107081f, 0.0924418f, 0.0318789f, -0.114876f, -0.149883f, 0.00808053f, -0.0926752f, 0.108795f, -0.0539538f, 0.0912089f, -0.107581f, -0.0978613f, 0.193072f, 0.208409f, 0.0377939f, 0.0565905f, -0.147362f, -0.0638161f, 0.0997828f, -0.0109426f, 0.0282642f, -0.13198f, 0.106205f, -0.0108853f, -0.0151594f, 0.102001f, 0.258143f, 0.0981361f, -0.112076f, 0.0438251f, 0.0286482f, -0.0434448f, -0.180736f, -0.142544f, -0.0255416f, 0.00702961f, -0.139279f, 0.148649f, -0.0245258f, 0.138177f, 0.0377471f, -0.165216f, 0.138894f, -0.126017f, -0.0396569f, 0.0189004f, 0.00119485f, -0.0668444f, 0.104888f, -0.0527734f, -0.0501398f, 0.0787367f, -0.0406081f, -0.0858151f, 0.0346753f, 0.239046f, 0.0323738f, -0.032532f, 0.0744695f, 0.214581f, 0.0541065f, -0.0462414f, -0.229336f, -0.0146867f, -0.0594029f, -0.0332394f, 0.118209f, 0.146264f, -0.107265f, -0.00515544f, 0.0153854f, -0.141309f, -0.0400057f, 0.0158524f, -0.0687005f, 0.0188884f, 0.159042f, -0.13588f, 0.0251787f, 0.0746928f, 0.0578947f, 0.051824f, -0.0537388f, -0.0949421f, -0.268535f, -0.22178f, 0.0873998f, 0.0245603f, -0.140449f, -0.0519932f, -0.0428978f, 0.21029f, 0.210123f, -0.127598f, 0.043222f, -0.0422526f, 0.235663f, -0.0289457f, -0.0429817f, -0.0263411f, 0.0568391f, 0.013212f, -0.210478f, 0.0980206f, 0.0786392f, -0.247095f, -0.233164f, 0.165318f, -0.3493f, -0.291487f, 0.185903f, 0.0989386f, 0.0107198f, 0.123055f, -0.206111f, 0.0813776f, 0.241162f, -0.167225f, -0.161976f, 0.0565056f, 0.0403278f, 0.0585911f, 0.299482f, -0.325437f, 0.0366436f, 0.124774f, 0.0466099f, 0.0157154f, 0.194433f, -0.357846f, 0.0612959f, 0.0465513f, -0.431931f, -0.263211f, 0.000376607f, -0.184322f, 0.381556f, -0.286735f, 0.00569249f, -0.400486f, -0.0300712f, 0.283547f, 0.0468141f, -0.174683f, -0.0842284f, -0.341703f, 0.218703f, 0.141037f, -0.2585f, -0.213906f, -0.0239518f, 0.348808f, -0.037318f, -0.217747f, -0.179728f, -0.210156f, -0.300303f, -0.152822f, 0.0322645f, 0.10484f, 0.105025f, 0.0719557f, 0.00984071f, -0.0705773f, -0.0743675f, 0.238513f, 0.297657f, -0.131242f, 0.234854f, -0.0859857f, 0.110464f, 0.335137f, 0.275236f, -0.133744f, 0.391466f, 0.0537884f, 0.0133389f, -0.0119884f, 0.00236129f, 0.30018f, 0.16722f, -0.0352842f, -0.0238753f, -0.0613764f, 0.00132135f, -0.229892f, -0.14161f, -0.00038831f, -0.018585f, 0.186258f, 0.335071f, 0.18819f, -0.0983007f, 0.259571f, 0.212513f, 0.0294745f, -0.277033f, -0.103078f, -0.0589172f, 0.19448f, 0.484093f, -0.0759171f, -0.120662f, -0.133944f, -0.073975f, -0.238108f, 0.0207839f, 0.121256f, 0.022696f, 0.0778127f, -0.0466277f, 0.263412f, -0.122457f, 0.153679f, 0.0101829f, -0.182479f, -0.0669471f, 0.269959f, 0.0552687f, 0.112478f, -0.131842f, -0.0410093f, 0.068155f, -0.237464f, -0.10514f, -0.0589885f, -0.100744f, -0.226428f, 0.191331f, -0.137803f, 0.0832823f, -0.244238f, 0.112718f, -0.118797f, -0.17886f, 0.117009f, -0.0647536f, -0.12375f, 0.287908f, 0.108236f, -0.194835f, 0.0107096f, -0.0930609f, -0.0234548f, 0.13469f, -0.0862184f, -0.202421f, -0.0973115f, -0.137727f, -0.144842f, 0.00315762f, -0.0273998f, -0.0246865f, 0.0738866f, -0.0780207f, 0.0416229f, 0.0578176f, 0.164641f, -0.14581f, -0.163384f, 0.139954f, -0.059718f, 0.168634f, 0.0737877f, 0.128638f, 0.133586f, 0.0842874f, -0.0632002f, 0.0131707f, 0.0190158f, 0.00829045f, -0.172349f, 0.0559837f, 0.0879513f, 0.248963f, -0.00840242f, 0.0336326f, -0.0477082f, -0.165007f, 0.0173802f, 0.085516f, -0.0232702f, -0.0547665f, 0.201476f, -0.138764f, 0.0871124f, 0.0686303f, -0.204718f, 0.0558728f, -0.225546f, 0.0780619f, -0.0777251f, -0.00638713f, -0.0336779f, 0.154889f, -0.118723f, 0.208591f, -0.208022f, -0.0818976f, -0.0736582f, 0.0528142f, 0.0427429f, 0.0632792f, 0.0654523f, 0.222987f, -0.230276f, 0.00164509f, -0.124693f, 0.0740712f, -0.117404f, 0.22784f, 0.00390851f, 0.214396f, 0.0936649f, 0.0212284f, 0.0899833f, -0.0377005f, 0.0624865f, 0.0903349f, -0.061852f, 0.0520681f, 0.0883386f, -0.244445f, 0.127539f, 0.179142f, -0.0953979f, -0.0966472f, 0.0879536f, -0.128962f, -0.0671948f, 0.0787769f, 0.026926f, 0.0886333f, 0.0126242f, 0.0340039f, -0.051802f, 0.232699f, -0.0692481f, -0.149428f, -0.00204667f, -0.109807f, -0.0920273f, -0.0413732f, -0.0881417f, -0.0336904f, -0.0987917f, 0.00947577f, 0.0100388f, 0.134142f, -0.16755f, 0.14207f, -0.0999878f, -0.0378395f, -0.147241f, 0.0547054f, 0.0995013f, 0.0147028f, 0.119594f, -0.044767f, -0.0182428f, 0.142865f, 0.327004f, 0.0795191f, -0.0207142f, 0.107983f, -0.167376f, 0.168807f, -0.181071f, 0.184522f, -0.0891547f, 0.229051f, 0.0998767f, -0.320415f, 0.0299389f, 0.111808f, 0.204466f, -0.0814377f, -0.0320938f, 0.0135401f, 0.247953f, 0.0399717f, 0.118525f, 0.0908316f, -0.0452025f, 0.298502f, -0.166384f, 0.124045f, -0.219976f, 0.224441f, -0.00545498f, -0.0883168f, -0.166087f, -0.16082f, 0.179744f, 0.155371f, 0.116368f, 0.0621083f, 0.0540506f, 0.00104213f, 0.307852f, 0.0418633f, -0.149639f, 0.11247f, 0.0251675f, -0.0711597f, 0.0910762f, 0.106909f, -0.0247003f, 0.19836f, 0.206444f, -0.00662494f, -0.104804f, -0.135584f, 0.0888649f, 0.033749f, -0.00505625f, -0.245644f, -0.261991f, -0.103018f, -0.0301384f, -0.289115f, -0.315958f, 0.0791397f, 0.0896209f, -0.0533721f, -0.228194f, -0.233208f, -0.147179f, -0.0385294f, -0.278021f, 0.198906f, -0.0388131f, 0.0987797f, -0.0554154f, 0.234759f, 0.00137561f, 0.108513f, -0.0340513f, 0.060397f, 0.0689413f, -0.0151389f, -0.180645f, 0.124523f, 0.134944f, 0.161555f, 0.0302738f, 0.135774f, -0.162288f, 0.17057f, -0.162827f, -0.218529f, -0.137231f, -0.18612f, 0.155048f, -0.156004f, -0.156122f, 0.0714351f, -0.00653053f, -0.0121793f, -0.285876f, -0.119549f, 0.0392257f, 0.0248792f, -0.191263f, -0.0914055f, -0.0645236f, -0.0831803f, 0.0106669f, 0.245654f, 0.0491106f, -0.105253f, -0.0491368f, 0.199125f, 0.145751f, 0.0472695f, -0.189019f, -0.0611195f, -0.204515f, -0.0115386f, -0.210008f, -0.0842183f, -0.0210655f, 0.0194512f, -0.149598f, 0.024036f, 0.368538f, 0.183154f, 0.0732621f, -0.0207142f, 0.184898f, 0.146136f, 0.154507f, -0.193335f, 0.208351f, 0.345773f, -0.136943f, 0.38023f, 0.223042f, 0.201326f, -0.0878296f, -0.0337098f, -0.00131042f, 0.156986f, -0.0337054f, 0.0390798f, 0.111275f, -0.00882369f, -0.169221f, -0.41089f, 0.138874f, 0.0977551f, 0.0322287f, -0.0439811f, 0.0750435f, -0.377234f, 0.147414f, -0.0030786f, -0.0668145f, 0.222085f, -0.0472245f, 0.128175f, -0.0159011f, -0.183004f, 0.0249164f, -0.47494f, 0.164776f, 0.107763f, -0.022501f, -0.0296102f, -0.158637f, 0.0306842f, 0.139567f, -0.183218f, -0.315637f, 0.156599f, -0.184074f, 0.16319f, 0.0163704f, 0.165733f, -0.438383f, 0.0899006f, 0.392399f, 0.284411f, -0.25117f, -0.12179f, -0.0482957f, -0.238434f, -0.196561f, 0.0569177f, 0.0196485f, -0.40095f, -0.0610027f, 0.108062f, -0.424816f, 0.447247f, -0.0898399f, 0.132832f, 0.398477f, 0.000241568f, -0.148533f, 0.134735f, 0.207445f, -0.235731f, 0.0747565f, -0.073203f, -0.0149957f, -0.14837f, -0.298252f, 0.212822f, 0.259588f, 0.15833f, 0.160436f, -0.447991f, -0.483928f, -0.0495619f, -0.206328f, -0.274478f, 0.124335f, 0.135143f, -0.271464f, 0.30436f, 0.0442635f, -0.139573f, -0.001515f, 0.0817578f, -0.125586f, -0.096928f, -0.0933366f, 0.222535f, -0.122377f, -0.252286f, -0.0906704f, 0.226319f, 0.387977f, -0.192362f, -0.154418f, 0.23045f, -0.0115141f, -0.312116f, -0.134774f, 0.0180523f, -0.163507f, -0.0952264f, -0.35996f, 0.135363f, -0.140817f, 0.299451f, -0.229307f, 0.285129f, -0.0677087f, 0.174301f, -0.213877f, 0.122683f, 0.0135805f, -0.0977937f, 0.11891f, -0.142836f, 0.13316f, 0.11767f, 0.117727f, -0.0629259f, 0.0963656f, -0.0346911f, 0.225804f, -0.110455f, -0.0878309f, -0.0553138f, -0.0372285f, -0.0648169f, -0.121131f, -0.0597228f, -0.103283f, 0.0337092f, 0.106894f, 0.0887127f, -0.0230748f, 0.00635257f, 0.0956547f, 0.097383f, -0.0975586f, 0.0987846f, -0.194836f, 0.0398234f, -0.0843805f, 0.107402f, -0.207343f, 0.145082f, 0.0651923f, -0.066817f, 0.179719f, 0.11052f, 0.0791259f, -0.06687f, -0.204064f, 0.186612f, 0.0303424f, -0.134132f, 0.0540649f, 0.0844714f, 0.00500327f, 0.208067f, -0.141818f, -0.0984442f, -0.140917f, 0.119925f, 0.169396f, -0.052325f, -0.00652379f, -0.000285753f, -0.0431066f, -0.093706f, -0.0220549f, 0.175111f, -0.0850537f, 0.130155f, -0.154019f, 0.00149823f, 0.0817551f, 0.109791f, -0.129582f, -0.195205f, 0.0605222f, 0.110717f, 0.0736586f, 0.225577f, 0.0126675f, 0.000637388f, 0.0874261f, 0.0217446f, -0.0695767f, 0.100834f, 0.105536f, -0.0141253f, 0.184058f, 0.144464f, 0.0385037f, 0.194932f, 0.222317f, -0.23805f, -0.0266882f, -0.147267f, 0.17738f, 0.0689689f, -0.0528705f, -0.0501532f, 0.0574651f, -0.220069f, -0.0510179f, -0.0416701f, 0.0714079f, 0.0306425f, 0.22647f, 0.034029f, -0.0679276f, -0.00871636f, -0.17055f, -0.121701f, 0.0577556f, 0.0301831f, -0.159249f, -0.0597996f, 0.155258f, 0.0431537f, -0.0613329f, 0.0646779f, 0.0674474f, -0.0964146f, 0.111784f, -0.0754958f, -0.0824031f, -0.00421865f, -0.113557f, 0.0845831f, -0.146991f, 0.0456184f, 0.180438f, -0.0986836f, -0.0697237f, 0.0350571f, -0.056981f, 0.0499734f, -0.0860727f, -0.178748f, 0.0986982f, -0.0383273f, 0.0872994f, 0.118147f, -0.187036f, -0.0950402f, -0.102756f, -0.296216f, -0.0660294f, 0.148332f, 0.229287f, 0.0638485f, 0.245584f, 0.268556f, 0.291811f, 0.0569302f, -0.175002f, 0.234678f, -0.186291f, -0.067542f, 0.131882f, 0.286072f, 0.0556928f, -0.174907f, -0.250765f, -0.167116f, 0.133656f, -0.0731378f, 0.0447002f, 0.0141873f, 0.000990911f, -0.0442097f, 0.0386672f, 0.155224f, 0.131834f, -0.27591f, 0.243081f, -0.076681f, -0.177324f, -0.17072f, -0.336244f, -0.133043f, 0.268381f, -0.0471484f, 0.115851f, 0.133895f, -0.321202f, 0.405127f, 0.0234442f, -0.00398148f, 0.138387f, -0.10001f, -0.0355595f, 0.0916419f, -0.162386f, 0.0160119f, 0.0949721f, -0.0432642f, 0.123795f, -0.0114513f, -0.101848f, -0.0982935f, 0.0277253f, 0.0593244f, 0.0108557f, 0.246976f, 0.117153f, 0.103326f, -0.0575234f, 0.0454395f, 0.0488851f, -0.20798f, 0.0709714f, 0.0359113f, 0.12084f, -0.229066f, -0.0177793f, -0.223552f, -0.107672f, 0.0586886f, -0.185305f, -0.0619939f, -0.0996898f, -0.0019449f, 0.0915122f, -0.10171f, -0.0850005f, -0.00509161f, -0.0996527f, -0.267025f, -0.100134f, -0.0520246f, 0.255558f, -0.0139424f, -0.0275172f, 0.0182705f, -0.00499423f, -0.102321f, 0.216569f, -0.112758f, 0.250422f, -0.0511015f, -0.0988093f, -0.181803f, 0.208954f, -0.0568355f, 0.00187756f, 0.10033f, 0.125611f, -0.155106f, -0.0593906f, 0.0506109f, 0.0214296f, 0.241186f, -0.227896f, 0.220673f, 0.0683504f, 0.279137f, 0.0472019f, 0.308259f, -0.136888f, -0.121919f, 0.00953203f, 0.0627348f, -0.192216f, -0.250695f, 0.0352926f, -0.0465268f, 0.0814561f, 0.0785659f, -0.0662885f, 0.0323431f, -0.105102f, 0.118744f, -0.0852442f, 0.22453f, -0.0419559f, 0.18794f, -0.0559486f, 0.0834156f, -0.125639f, 0.0136472f, -0.0223578f, 0.0311964f, -0.0740106f, -0.168739f, -0.107678f, -0.0974341f, 0.103191f, -0.171181f, 0.0708308f, -0.0745135f, 0.0291756f, -0.118019f, 0.159934f, -0.236794f, -0.134016f, -0.171975f, 0.0284988f, 0.141994f, 0.0790834f, -0.183875f, -0.0482937f, 0.00695382f, -0.0927433f, -0.226113f, -0.195011f, 0.0738706f, 0.0690523f, 0.0120645f, 0.176243f, -0.0459094f, 0.179543f, 0.0303436f, -0.020628f, -0.0983656f, -0.0124534f, 0.0658073f, -0.0305344f, 0.0909794f, -0.0722082f, 0.130936f, 0.0828145f, -0.0180203f, -0.0892831f, -0.0509878f, 0.035986f, -0.0600363f, -0.256549f, -0.158663f, -0.028577f, 0.0256304f, -0.219529f, -0.0218992f, 0.0430549f, 0.0059949f, 0.0951424f, 0.220308f, 0.0217739f, -0.19864f, -0.1004f, -0.0250002f, 0.00964473f, -0.102725f, 0.0117504f, 0.0893223f, 0.128769f, -0.182766f, 0.0747656f, -0.0466115f, 0.0631073f, -0.040988f, 0.143528f, -0.20677f, -0.00359145f, 0.147929f, -0.0137637f, -0.0312199f, 0.0716219f, 0.204967f, -0.319569f, 0.0453972f, 0.108989f, -0.0114442f, -0.061914f, -0.111726f, 0.0301321f, -0.0198505f, -0.00950903f, -0.178924f, -0.0885267f, -0.198826f, 0.253275f, -0.0156777f, 0.196004f, 0.0935863f, -0.179464f, -0.0342977f, 0.222676f, -0.0652202f, 0.0842156f, 0.0831023f, -0.177404f, 0.246117f, 0.190835f, -0.150755f, 0.318958f, -0.0618606f, -0.00875777f, -0.0582599f, 0.0106146f, 0.161202f, 0.163243f, -0.300872f, 0.0119409f, -0.136058f, -0.154724f, 0.04076f, -0.25189f, -0.0874991f, -0.0969701f, -0.0964234f, -0.139172f, -0.0468084f, -0.200534f, -0.195783f, -0.03604f, -0.0318535f, 0.0217372f, 0.0894895f, 0.13846f, -0.0346959f, -0.010799f, 0.135249f, 0.0341841f, 0.0167455f, -0.0593015f, 0.178991f, 0.151171f, -0.0315447f, 0.0309069f, -0.122744f, -0.112114f, -0.0608593f, -0.175916f, 0.300463f, -0.150165f, -0.072498f, 0.174157f, -0.0698246f, -0.135115f, -0.117522f, 0.0100786f, 0.11011f, -0.102771f, -0.175482f, -0.172608f, 0.0437558f, -0.0578783f, -0.0917732f, -0.0490638f, 0.0880512f, 0.0910564f, -0.0343201f, 0.0724104f, -0.0229792f, -0.285646f, 0.174236f, -0.209814f, 0.151201f, 0.0416097f, 0.172605f, 0.052021f, 0.112292f, -0.0288999f, -0.133176f, 0.111186f, 0.0941371f, -0.106924f, 0.23955f, -0.0913445f, 0.0334779f, 0.165178f, -0.188057f, 0.149781f, 0.026789f, 0.072937f, 0.342911f, -0.0035712f, -0.0532456f, 0.119632f, 0.119285f, 0.103991f, 0.125084f, -0.0903554f, -0.00130303f, 0.0561918f, 0.0202088f, 0.122723f, -0.109962f, -0.217624f, 0.243008f, 0.0172484f, 0.0195807f, 0.0604097f, -0.12988f, -0.014535f, -0.0343793f, 0.249656f, -0.188113f, -0.0235171f, 0.20857f, -0.0523775f, 0.363046f, -0.182886f, 0.0998046f, -0.180424f, 0.0754441f, 0.0306104f, -0.0470765f, 0.0520866f, 0.113246f, 0.00586426f, -0.193349f, 0.0298998f, -0.202723f, 0.250856f, 0.0855722f, 0.102592f, -0.200735f, 0.118143f, -0.265092f, 0.024173f, -0.114321f, -0.151205f, 0.000885106f, -0.0980004f, -0.0613984f, 0.16817f, 0.0827855f, 0.206549f, -0.0748824f, -0.112777f, 0.153696f, -0.0173568f, -0.243484f, -0.162769f, -0.128402f, 0.0343758f, -0.0220858f, -0.0438207f, 0.0410879f, -0.0477049f, 0.16116f, 0.276778f, -0.215842f, 0.040037f, 0.131863f, 0.218374f, -0.259136f, -0.0671261f, -0.100532f, -0.0801466f, -0.27971f, -0.054812f, 0.0186443f, 0.0639411f, 0.095201f, 0.166002f, 0.00505369f, 0.0432223f, -0.105886f, -0.183499f, -0.0998939f, 0.427006f, 0.0454635f, -0.176153f, 0.00976314f, 0.19399f, 0.081089f, 0.130737f, 0.145433f, -0.316542f, -0.040505f, -0.0341006f, 0.0377557f, 0.0512397f, -0.00414855f, 0.189131f, -0.0165923f, -0.287942f, 0.0762348f, 0.242736f, -0.217313f, -0.223326f, -0.225425f, 0.189944f, 0.134713f, 0.121736f, -0.0864885f, -0.212669f, -0.277085f, 0.0465292f, -0.129404f, 0.130469f, 0.0841028f, 0.0253661f, 0.143643f, 0.0781577f, 0.0537399f, 0.0353114f, 0.0542709f, -0.136284f, -0.257612f, -0.0712863f, -0.0446797f, -0.0986686f, 0.0396496f, 0.0315183f, 0.0788339f, 0.0569989f, 0.182211f, 0.0456488f, 0.111161f, 0.0143697f, 0.0731527f, 0.0125843f, -0.0665315f, -0.0998141f, 0.0114537f, -0.270579f, 0.137408f, 0.0941786f, 0.0690545f, -0.0164687f, 0.121867f, -0.00374106f, 0.0349138f, 0.106707f, 0.155516f, -0.100314f, 0.0741957f, 0.01213f, -0.0293465f, 0.0106653f, -0.156294f, -0.0373453f, -0.242219f, -0.383347f, 0.365971f, -0.0218966f, 0.0241233f, 0.142501f, 0.286683f, 0.00679594f, -0.0262279f, -0.0193085f, 0.0370893f, 0.0516292f, 0.0565261f, 0.117173f, -0.163357f, -0.207448f, 0.0595059f, -0.227948f, 0.0917036f, -0.0712062f, 0.0789894f, 0.101181f, -0.0341934f, -0.00883925f, -0.133234f, 0.0436653f, 0.0432134f, 0.0365048f, 0.0277143f, 0.135134f, -0.141778f, 0.079058f, 0.0059308f, 0.10519f, 0.0729926f, 0.0817166f, -0.121146f, -0.0063112f, -0.000679969f, -0.139271f, -0.0162635f, -0.0189524f, -0.141511f, 0.0493173f, -0.0738063f, -0.0247534f, -0.0778721f, 0.0238861f, 0.0454641f, -0.0014731f, -0.0838716f, -0.0717499f, -0.097077f, -0.0953847f, -0.0595523f, 0.0356209f, 0.0517775f, 0.109723f, -0.064382f, 0.11926f, -0.167769f, 0.00897855f, 0.0598227f, -0.0517845f, -0.108908f, -0.099885f, 0.129846f, 0.00512941f, -0.0375071f, 0.0201005f, -0.0215818f, -0.0185966f, -0.0458793f, -0.0978292f, 0.0132947f, 0.13873f, 0.0580724f, 0.0533679f, -0.0817997f, 0.034401f, 0.0283245f, -0.00773606f, -0.0449359f, 0.0873755f, -0.0244827f, -0.168366f, -0.0505345f, -0.00247134f, -0.0215759f, -0.00298496f, -0.0279484f, -0.121622f, -0.119823f, -0.0377622f, 0.0891889f, -0.0619639f, -0.0255862f, -0.0136509f, -0.0130508f, -0.122489f, 0.137738f, -0.0744387f, 0.121989f, -0.124478f, -0.0805573f, -0.0330656f, -0.0545424f, -0.0554898f, 0.148472f, -0.111941f, -0.0559437f, -0.0153188f, -0.0260846f, -0.0293702f, -0.0246657f, 0.0256684f, 0.0285492f, 0.137162f, -0.00444349f, -0.0779968f, -0.0422141f, 0.0840877f, -0.104287f, -0.000181008f, 0.0139842f, -0.0268006f, -0.0555739f, 0.0727238f, -0.00655994f, -0.0147599f, -0.133229f, -0.0752942f, -0.00314946f, -0.0255843f, 0.0682199f, 0.0473014f, 0.0774922f, 0.117301f, 0.0678181f, -0.100202f, 0.104751f, -0.0233197f, 0.0955535f, -0.0434861f, 0.0410852f, 0.113528f, -0.0349609f, -0.064702f, 0.192649f, 0.0359966f, 0.0516362f, 0.174766f, -0.0995682f, 0.048488f, 0.164431f, 0.0282856f, -0.0951606f, 0.0978816f, -0.07403f, -0.0514417f, 0.0012292f, -0.0543666f, -0.0650089f, -0.105107f, -0.281668f, -0.0722425f, 0.24784f, 0.0929878f, 0.0612527f, -0.170486f, -0.252929f, 0.199157f, -0.0788642f, 0.0684531f, 0.0426873f, 0.0192089f, 0.144712f, 0.09005f, -0.091844f, 0.0970385f, -0.0789014f, 0.0685718f, 0.173718f, 0.00066609f, -0.192006f, 0.181869f, -0.156926f, 0.0528867f, 0.157376f, 0.115126f, -0.0166156f, 0.0743137f, 0.162487f, 0.0288808f, -0.00590414f, 0.145093f, -0.0559596f, -0.20084f, -0.0104499f, -0.178636f, 0.307924f, -0.112306f, -0.0686518f, -0.0492537f, -0.268447f, -0.0199381f, -0.310293f, 0.028793f, -0.0829565f, -0.190706f, 0.0815157f, -0.0994337f, -0.0478795f, -0.00193272f, -0.0416515f, -0.241326f, 0.173292f, -0.0392493f, 0.0927694f, -0.0380593f, -0.0728278f, 0.136131f, -0.10107f, 0.0383003f, -0.0894777f, 0.0516835f, 0.0130105f, -0.149129f, -0.0694656f, 0.041656f, 0.00496846f, -0.0835825f, -0.117627f, 0.170558f, 0.0699348f, 0.0176192f, 0.273138f, 0.0259553f, 0.0644571f, -0.102265f, 0.215527f, -0.0809983f, -0.186735f, 0.0497383f, 0.233767f, -0.254922f, -0.0178042f, -0.265535f, 0.181497f, -0.00776286f, 0.181847f, 0.110736f, -0.107589f, 0.0905571f, 0.170932f, -0.0411744f, -0.113479f, 0.242767f, 0.0273209f, 0.000982035f, -0.0479245f, 0.166262f, 0.00217411f, -0.068181f, -0.223527f, 0.295431f, 0.019178f, -0.16672f, 0.0748415f, -0.3258f, -0.0818476f, 0.115163f, 0.0451472f, 0.172366f, 0.175236f, -0.126232f, 0.117801f, 0.0620699f, -0.090946f, -0.0626192f, 0.00598467f, 0.301641f, 0.20514f, -0.175129f, -0.0625866f, -0.177145f, -0.0842294f, 0.248771f, 0.29065f, -0.0882147f, 0.288432f, 0.425494f, 0.0208869f, 0.267721f, 0.00697143f, -0.124025f, -0.17814f, 0.14316f, 0.202821f, 0.398159f, 0.270104f, -0.091514f, 0.000134967f, 0.0512467f, -0.178423f, 0.0181673f, -0.103665f, 0.0979924f, 0.0995553f, -0.115622f, 0.168494f, -0.153534f, 0.101858f, 0.233852f, 0.011348f, -0.237175f, 0.0592826f, 0.178053f, -0.159988f, 0.103595f, 0.00650455f, 0.0261173f, 0.22291f, -0.164793f, 0.184394f, -0.104272f, -0.233729f, -0.141795f, -0.105492f, -0.13841f, 0.223079f, 0.0228493f, -0.205825f, 0.0352814f, -0.0424753f, -0.0771015f, -0.270917f, -0.100786f, -0.0943127f, -0.112538f, 0.121766f, -0.117352f, 0.417779f, 0.083698f, 0.0927764f, 0.045827f, -0.0453872f, 0.0785178f, 0.149686f, -0.00749213f, -0.0625405f, -0.193232f, 0.0200745f, 0.176338f, -0.0732067f, 0.135459f, 0.0997973f, 0.214619f, 0.0974435f, 0.378597f, -0.202963f, -0.109579f, 0.250898f, 0.00835152f, 0.195668f, -0.117295f, 0.298637f, -0.179972f, 0.0385372f, -0.178947f, 0.417114f, 0.263816f, -0.0433203f, -0.289634f, 0.0972187f, -0.345398f, 0.275318f, -0.211552f, -0.059118f, -0.255053f, 0.0585581f, 0.0257645f, 0.0866547f, 0.0857484f, -0.174569f, 0.158492f, -0.138932f, -0.00533508f, -0.103219f, -0.178697f, -0.15585f, 0.011556f, -0.0353245f, 0.0456694f, -0.0926213f, -0.35071f, 0.11722f, 0.187155f, -0.0150293f, 0.353092f, -0.148534f, -0.179679f, 0.205475f, -0.2314f, 0.128165f, 0.237643f, 0.0599461f, -0.146888f, -0.0263493f, 0.0282046f, -0.132235f, 0.10639f, -0.0128414f, -0.11036f, -0.109675f, 0.0770872f, 0.207165f, 0.104895f, 0.111518f, 0.129398f, 0.127827f, 0.0128034f, 0.122275f, -0.0888326f, -0.0532789f, 0.140683f, -0.0405206f, 0.0339213f, -0.0502486f, 0.185574f, -0.00567133f, -0.069644f, 0.00338742f, 0.0530719f, 0.195509f, 0.115007f, -0.0178645f, 0.178654f, 0.0916053f, 0.322577f, 0.136925f, 0.337554f, 0.0962462f, 0.0957148f, 0.129873f, -0.23308f, 0.0300145f, -0.0171785f, -0.0510048f, -0.0191415f, -0.089554f, -0.00149508f, -0.098139f, 0.167989f, -0.163047f, -0.00967631f, 0.0514752f, -0.117862f, 0.0547445f, -0.136678f, -0.113644f, 0.0453032f, -0.087083f, -0.130864f, 0.251652f, -0.179745f, 0.103328f, -0.0706036f, -0.123193f, -0.0931342f, 0.109904f, -0.130471f, 0.00846323f, -0.100067f, 0.0301527f, 0.313649f, 0.183733f, 0.172108f, -0.0144009f, -0.00733766f, 0.103964f, 0.0899104f, -0.0317561f, -0.131299f, 0.132255f, 0.192854f, 0.140966f, 0.0375504f, 0.167838f, -0.109101f, -0.137453f, -0.0295355f, 0.0575957f, -0.192494f, -0.167446f, 0.0505956f, 0.0334251f, 0.0288642f, 0.0538745f, 0.150794f, -0.0970545f, -0.042702f, 0.1037f, -0.226513f, 0.0802711f, -0.0955077f, 0.18843f, 0.173183f, 0.180637f, -0.0155822f, -0.238003f, -0.0276796f, 0.139321f, -0.193327f, 0.00227143f, 0.0235792f, -0.00631554f, 0.10593f, -0.21399f, -0.183262f, -0.195502f, -0.00270706f, -0.054327f, -0.0981206f, 0.105463f, 0.202793f, 0.0558207f, 0.102775f, 0.0321501f, -0.0415955f, 0.00413937f, -0.0416481f, 0.0490874f, -0.0589392f, 0.132574f, -0.0666272f, 0.0741514f, 0.0930577f, -0.076308f, -0.00663302f, 0.0590117f, 0.0578782f, -0.158701f, -0.0128747f, -0.0438787f, -0.132527f, 0.0133857f, 0.20524f, -0.254185f, 0.195995f, 0.12034f, -0.00968375f, 0.304944f, 0.0157442f, 0.151075f, 0.105323f, 0.0800465f, 0.119961f, -0.27012f, 0.0446823f, -0.1444f, -0.0402456f, -0.0793406f, 0.234233f, 0.181839f, 0.0499311f, 0.117206f, -0.0780463f, -0.155861f, -0.0969516f, 0.00986429f, 0.031618f, 0.136358f, -0.195992f, -0.173504f, -0.132652f, 0.135344f, -0.0682311f, 0.239513f, 0.297207f, 0.014358f, 0.0724876f, 0.215233f, 0.049041f, 0.0996684f, 0.00565786f, 0.186254f, 0.163473f, 0.365393f, -0.0713454f, -0.201637f, -0.105796f, -0.148873f, 0.102849f, -0.0696465f, -0.213295f, -0.0920386f, -0.0497894f, -0.125886f, 0.0538525f, -0.0144979f, -0.10225f, -0.154657f, -0.0678034f, -0.147651f, -0.0619081f, -0.160914f, 0.0531498f, -0.00919761f, 0.0572837f, -0.042459f, -0.113838f, -0.134925f, -0.0504664f, 0.120679f, -0.0899957f, 0.198238f, 0.21545f, 0.220518f, 0.0787688f, -0.138676f, -0.245246f, -0.0216481f, 0.0215122f, 0.173597f, 0.195818f, -0.00929068f, 0.193712f, -0.216846f, 0.181803f, 0.103663f, -0.0664653f, -0.326326f, 0.137149f, 0.163929f, 0.17672f, 0.0352431f, -0.0253118f, 0.0359585f, -0.0203337f, -0.201919f, 0.0594335f, 0.034376f, 0.0377444f, 0.0808055f, -0.032345f, 0.398643f, -0.00878665f, -0.0667585f, 0.0218962f, 0.296816f, 0.188407f, -0.266566f, 0.250945f, 0.0349951f, -0.103885f, 0.406323f, 0.0378009f, -0.125155f, 0.0500415f, -0.0441453f, 0.0389294f, 0.00575052f, -0.19992f, -0.066966f, 0.01522f, -0.0100547f, -0.183867f, 0.109466f, -0.147233f, -0.155231f, 0.234699f, -0.112276f, 0.0354647f, 0.04535f, -0.0347334f, 0.0898588f, -0.15012f, 0.18503f, -0.146893f, 0.0236889f, -0.0233392f, 0.299773f, -0.153018f, -0.0327313f, -0.077133f, 0.129354f, -0.248383f, -0.0315495f, -0.110659f, 0.257311f, -0.196166f, 0.367302f, 0.0408427f, 0.0010846f, -0.215297f, 0.0360317f, 0.0708045f, 0.23579f, -0.120824f, -0.0938574f, -0.306618f, -0.169096f, -0.144291f, -0.137962f, -0.415549f, -0.0176363f, 0.109292f, 0.2335f, -0.124825f, -0.0508344f, 0.215104f, 0.179866f, -0.0408473f, -0.183684f, -0.0639884f, -0.29857f, -0.213672f, -5.91788e-05f, -0.105408f, -0.0338083f, -0.114798f, 0.0888478f, -0.0369887f, 0.169243f, 0.0079128f, -0.027076f, 0.0706381f, -0.212248f, 0.0885549f, -0.120389f, -0.181694f, -0.294133f, -0.0681631f, -0.156222f, -0.09462f, -0.13189f, -0.0198269f, 0.15962f, -0.156303f, -0.110414f, -0.110984f, 0.13903f, 0.0684451f, 0.221574f, 0.199202f, -0.155328f, -0.107115f, 0.145465f, -0.00461807f, -0.0234402f, 0.0397603f, 0.210965f, 0.100715f, 0.11709f, -0.101554f, -0.182796f, -0.000492132f, 0.120891f, -0.393329f, 0.124769f, 0.149684f, -0.012067f, 0.0494856f, 0.228953f, -0.120005f, -0.184069f, 0.201663f, -0.0209395f, 0.0882445f, -0.0429354f, -0.0254754f, 0.281784f, -0.211845f, 0.00931776f, -0.307558f, 0.343909f, -0.159577f, 0.229285f, -0.248854f, 0.164292f, -0.104395f, -0.179948f, -0.00626737f, -0.16478f, 0.311105f, -0.0703495f, -0.0865962f, -0.163311f, -0.325548f, 0.0973563f, 0.055602f, -0.134229f, -0.117276f, -0.0662771f, 0.109556f, 0.0741555f, -0.130784f, 0.187316f, -0.125212f, 0.0475488f, -0.0572819f, -0.107578f, -0.108596f, 0.0234943f, -0.059505f, 0.0281938f, 0.057138f, 0.15003f, -0.117537f, 0.0830087f, 0.122634f, -0.0436367f, -0.194616f, -0.0616955f, -0.136846f, -0.0432912f, 0.0925723f, -0.0391108f, 0.111566f, -0.0239622f, 0.18338f, 0.0836636f, -0.0815472f, 0.026573f, 0.0343944f, -0.0989636f, -0.0476723f, 0.0605466f, 0.155042f, -0.075209f, 0.00257206f, 0.0121792f, 0.0723532f, -0.171192f, 0.0505317f, 0.17957f, 0.00955296f, -0.058072f, -0.0980541f, 0.14784f, 0.0271071f, -0.103897f, 0.115752f, 0.0334523f, 0.093599f, 0.0420464f, -0.0712233f, -0.109753f, 0.116263f, 0.0397564f, -0.12688f, 0.150623f, 0.0492467f, -0.05269f, 0.0224256f, -0.0599588f, -0.0427254f, 0.130222f, 0.0636014f, 0.172916f, 0.134607f, 0.0143202f, -0.0569513f, 0.172903f, 0.0374153f, 0.00935771f, -0.105984f, -0.00741935f, -0.0132188f, -0.176531f, -0.155258f, -0.0778016f, -0.103283f, 0.060547f, 0.164984f, 0.0880004f, 0.0439283f, -0.0501977f, -0.00346778f, -0.114958f, -0.00316189f, 0.0316553f, -0.00706817f, 0.163434f, 0.121807f, 0.0639526f, -0.0557547f, -0.0629098f, 0.00218252f, 0.128254f, -0.0639118f, -0.0492694f, -0.090459f, -0.00884101f, 0.150613f, 0.100416f, -0.0177821f, 0.122236f, 0.0460869f, 0.000131562f, 0.089872f, 0.0344131f, -0.0738766f, -0.00776476f, 0.00982144f, 0.0906984f, 0.0302871f, -0.0644303f, -0.0308529f, -0.0575359f, 0.141944f, -0.00301011f, -0.0590649f, 0.0792487f, 0.0369038f, -0.144607f, -0.0159999f, 0.0627378f, 0.297676f, -0.0926801f, -0.0980083f, -0.248774f, -0.208085f, 0.164002f, -0.146317f, 0.104679f, 0.0182502f, 0.0898315f, -0.00711032f, 0.154885f, 0.110622f, 0.292351f, -0.0323339f, -0.385691f, -0.0950244f, 0.187416f, -0.027858f, 0.196925f, 0.103927f, 0.097932f, 0.0890984f, -0.0259394f, 0.00114214f, -0.107087f, -0.21214f, -0.18574f, 0.0775713f, -0.0596645f, -0.0802926f, 0.0961063f, -0.0393915f, -0.114559f, -0.2897f, -0.27705f, -0.270358f, 0.205995f, -0.126354f, -0.083733f, 0.0312765f, -0.101153f, -0.0789386f, -0.100903f, 0.0333087f, 0.00401025f, 0.0112591f, 0.126946f, -0.210219f, -0.200257f, 0.301344f, 0.021921f, 0.0990499f, -0.0992549f, -0.220244f, -0.105529f, 0.148807f, 0.197467f, -0.146907f, 0.0262979f, 0.279448f, 0.264835f, 0.1236f, -0.121748f, -0.0351348f, -0.00159887f, 0.155761f, 0.12814f, 0.257739f, 0.0346363f, 0.000527671f, 0.0867435f, -0.159731f, 0.0391233f, -0.250149f, -0.129436f, -0.302118f, 0.125545f, -0.170927f, 0.0288803f, 0.10201f, 0.399884f, -0.0342918f, -0.0656808f, 0.06333f, -0.0993595f, -0.256674f, -0.163853f, 0.147885f, -0.101939f, 0.275136f, 0.105023f, -0.175068f, 0.0104271f, -0.229711f, -0.126065f, -0.038284f, -0.215001f, -0.191437f, -0.214414f, 0.124169f, 0.00474587f, 0.0434513f, -0.0570156f, -0.0457262f, 0.00540808f, -0.0823231f, 0.119074f, 0.164327f, 0.145243f, 0.213026f, -0.0724171f, -0.0743687f, 0.00914012f, 0.311135f, 0.387295f, 0.0383177f, 0.0326695f, 0.0365835f, -0.176418f, -0.153354f, -0.130635f, 0.0431049f, -0.187018f, -0.0622845f, -0.180503f, -0.20937f, 0.193004f, -0.164977f, -0.0713133f, -0.0226234f, -0.149855f, -0.140794f, -0.0526115f, -0.102752f, -0.00462906f, 0.0666799f, 0.104838f, 0.19759f, 0.016201f, 0.0754553f, -0.144762f, -0.105017f, -0.103656f, -0.127459f, -0.058988f, -0.129913f, 0.17552f, -0.0632197f, 0.065748f, -0.0349837f, 0.089954f, 0.201598f, -0.0860671f, 0.0501759f, 0.0396936f, 0.132365f, 0.0274079f, -0.172918f, -0.0424014f, 0.00315697f, -0.0498864f, -0.159888f, 0.0728748f, -0.0393501f, -0.0788558f, 0.19938f, 0.0599702f, -0.179788f, -0.139224f, -0.25935f, -0.111422f, -0.0448954f, 0.11224f, -0.00280424f, 0.162739f, 0.0599042f, 0.198532f, 0.0551698f, 0.141881f, 0.113061f, -0.260813f, -0.0706352f, -0.172099f, -0.0851529f, -0.0270094f, -0.0738839f, -0.0285579f, -0.0495375f, -0.0490673f, 0.145859f, 0.0403726f, -0.05135f, 0.0953533f, -0.031974f, -0.0225909f, 0.0337631f, 0.0148467f, -0.00102307f, 0.0802353f, 0.0934627f, -0.0284054f, -0.0103353f, 0.0481127f, -0.0519803f, 0.0546109f, 0.0693238f, -0.00514667f, 0.0646193f, 0.02652f, -0.0264323f, 0.190564f, -0.0715026f, -0.100745f, 0.101353f, 0.0497746f, -0.0792714f, -0.128923f, 0.0355607f, 0.00807043f, -0.0609686f, 0.0719352f, 0.124856f, -0.0395563f, -0.10012f, 0.114114f, 0.0819076f, 0.417581f, -0.0344381f, -0.10858f, -0.0403068f, 0.0609247f, -0.0558893f, -0.059377f, -0.131402f, 0.212562f, -0.143456f, -0.0321164f, -0.158395f, 0.0862522f, -0.0776599f, 0.128768f, 0.11639f, 0.0312742f, -0.207378f, 0.020081f, -0.0872889f, -0.0278412f, -0.050281f, 0.15188f, 0.0233405f, -0.0755056f, -0.0534977f, -0.130636f, -0.0132968f, -0.058632f, 0.0104857f, -0.046687f, -0.00341465f, -0.141216f, 0.1673f, -0.125192f, -0.218976f, 0.0441963f, 0.358012f, -0.117605f, -0.210976f, 0.229422f, 0.158338f, 0.0718631f, -0.035771f, -0.229446f, 0.227872f, 0.506037f, -0.0327833f, -0.0994544f, -0.137913f, -0.0512354f, 0.258889f, 0.0248505f, 0.255521f, -0.261223f, 0.326605f, -0.311126f, 0.0771684f, -0.0172131f, 0.0778703f, 0.162119f, -0.120768f, -0.252494f, 0.363528f, -0.121721f, -0.0593301f, 0.192916f, -0.212074f, -0.206883f, -0.0912477f, -0.115038f, 0.252805f, 0.237909f, 0.0988283f, 0.236013f, 0.0995437f, 0.0342081f, 0.00724448f, -0.107171f, 0.122448f, -0.0137271f, 0.160325f, 0.0103205f, 0.0164786f, -0.0809394f, 0.322369f, 0.0546622f, 0.0929345f, 0.095651f, 0.291892f, -0.156599f, 0.0594521f, 0.183217f, -0.0387045f, 0.0992437f, -0.337909f, -0.256562f, -0.356395f, 0.0492441f, 0.13314f, 0.190361f, 0.266515f, 0.213573f, 0.221389f, -0.0662237f, -0.137251f, -0.225709f, 0.00652969f, -0.128804f, -0.00451606f, -0.292062f, 0.0973436f, 0.193399f, -0.161552f, -0.187077f, -0.208418f, -0.101546f, 0.33765f, 0.396877f, 0.158903f, 0.111659f, -0.183377f, 0.306224f, -0.110072f, -0.208631f, -0.273875f, 0.333043f, 0.104672f, 0.359817f, -0.412823f, 0.210378f, -0.0426434f, -0.162003f, 0.132025f, -0.0775075f, 0.0956417f, -0.0194071f, 0.0745751f, 0.0819135f, 0.139867f, 0.0539418f, -0.151641f, -0.0835389f, 0.018013f, -0.140846f, -0.000873387f, -0.0677837f, -0.0103213f, 0.430903f, -0.0813772f, 0.294737f, 0.187578f, -0.152891f, -0.221594f, -0.065691f, -0.287955f, 0.320319f, 0.192042f, 0.135256f, 0.243769f, 0.186859f, 0.0513047f, -0.0147872f, -0.0780871f, -0.0814938f, -0.0679812f, -0.376779f, -0.174302f, 0.0862317f, -0.113217f, -0.0640288f, 0.115864f, -0.17525f, -0.152423f, -0.0263615f, -0.203155f, 0.193025f, -0.0743698f, -0.175889f, -0.0537867f, 0.0533355f, 0.114583f, -0.196035f, -0.110738f, -0.0433742f, 0.277695f, -0.1331f, -0.404893f, -0.115852f, -0.00991882f, -0.178634f, 0.197164f, 0.173818f, -0.097273f, 0.204603f, 0.0461143f, 0.116152f, -0.0404391f, 0.209017f, -0.00143065f, -0.201941f, 0.125789f, -0.0467422f, -0.053625f, -0.204485f, -0.156833f, -0.193782f, -0.0115743f, -0.144886f, 0.11459f, 0.0753464f, -0.135156f, -0.0856314f, 0.00811438f, -0.215809f, -0.19846f, 0.212174f, -0.273419f, -0.0404335f, -0.133679f, -0.10581f, 0.208025f, -0.196934f, -0.0316309f, 0.132342f, -0.288305f, -0.0884303f, -0.0690335f, 0.112487f, -0.238114f, -0.0711501f, -0.122174f, -0.192487f, -0.138341f, -0.233829f, -0.190613f, 0.249194f, -0.0981992f, 0.13362f, 0.0964564f, 0.0362859f, -0.202851f, 0.199457f, 0.133899f, 0.022053f, 0.139923f, 0.261983f, -0.0356104f, 0.00812834f, 0.238432f, -0.114113f, 0.0602564f, 0.186505f, 0.0142478f, -0.0766087f, 0.0715735f, -0.0428731f, -0.0848815f, -0.107216f, -0.00891974f, 0.284784f, -0.212242f, 0.102105f, -0.108764f, 0.194594f, -0.00157407f, -0.0501074f, -0.076181f, -0.175453f, 0.134182f, 0.11785f, 0.0925055f, 0.204407f, 0.0653181f, 0.0852915f, -0.0696143f, 0.0916826f, 0.315829f, -0.215086f, -0.0862245f, 0.095025f, 0.319187f, 0.0461876f, -0.254954f, 0.153812f, 0.335757f, 0.0135511f, 0.134957f, -0.269899f, -0.144308f, 0.0160177f, -0.250615f, -0.134928f, -0.12018f, -0.0449699f, -0.221451f, 0.0873573f, 0.125871f, -0.187012f, -0.132715f, 0.130243f, 0.157875f, 0.173163f, 0.125809f, 0.207364f, -0.0749792f, -0.030488f, 0.082527f, -0.0748638f, -0.0925097f, 0.102313f, 0.0578829f, 0.302885f, 0.237349f, -0.188619f, -0.0242765f, -0.107813f, 0.111796f, 0.072551f, -0.233653f, 0.00205821f, -0.0315583f, -0.0218362f, -0.0199343f, -0.114385f, -0.247148f, 0.118756f, -0.0518558f, -0.0161581f, -0.0939868f, -0.315644f, 0.0841693f, -0.0799678f, 0.075506f, 0.120029f, -0.0686206f, -0.21712f, -0.0504463f, -0.284529f, 0.191689f, 0.146531f, 0.0642741f, 0.0724146f, -0.056899f, 0.21295f, 0.114066f, 0.101385f, -0.158623f, -0.204805f, -0.00729777f, -0.251691f, 0.176951f, -0.180235f, -0.188101f, 0.179437f, 0.00829505f, -0.088717f, -0.0551201f, -0.0908991f, -0.0223947f, 0.13535f, 0.0895201f, 0.116412f, -0.0116493f, 0.146545f, 0.0614217f, 0.0170959f, -0.106166f, -0.0227447f, 0.0635209f, 0.131783f, -0.0624791f, 0.113949f, -0.0753522f, -0.065583f, 0.00736656f, 0.0703912f, -0.113547f, -0.0477155f, 0.133281f, -0.205221f, 0.0698737f, -0.166133f, 0.119135f, 0.0173879f, 0.100929f, -0.149593f, -0.50293f, 0.0540049f, -0.0128228f, -0.272128f, -0.128789f, 0.176956f, 0.244819f, 0.0569031f, 0.0407851f, -0.0880848f, -0.157677f, 0.25118f, 0.112494f, 0.0470031f, 0.0921174f, -0.298323f, -0.121139f, 0.0369055f, -0.01245f, -0.189461f, -0.283031f, 0.211659f, -0.0505271f, 0.113631f, 0.0217842f, -0.0389655f, -0.0146319f, -0.034324f, 0.106267f, -0.296236f, 0.137996f, 0.0845773f, 0.347388f, 0.000325339f, 0.0436337f, -0.164206f, -0.167376f, -0.0187079f, -0.0991043f, 0.0874029f, -0.0393554f, -0.187287f, -0.194901f, 0.58107f, -0.142955f, -0.174257f, -0.25413f, -0.0117035f, -0.0656482f, -0.200974f, -0.137345f, 0.159424f, 0.111958f, 0.17522f, 0.00251519f, 0.161614f, -0.242189f, 0.0425827f, -0.254682f, 0.189517f, 0.0578971f, -0.0277244f, -0.0974325f, -0.126122f, 0.0893659f, -0.104369f, -0.0804991f, -0.0788942f, 0.0821062f, 0.0107987f, 0.0118929f, 0.0368033f, -0.118615f, -0.0449675f, -0.100386f, -0.0917191f, 0.236241f, -0.250709f, 0.178386f, 0.189791f, -0.168131f, -0.0803437f, -0.00221964f, -0.229098f, -0.101845f, 0.0123003f, 0.104745f, -0.157011f, 0.172849f, -0.0967591f, 0.350182f, 0.0661992f, 0.054642f, 0.104884f, -0.127872f, 0.257975f, 0.180965f, -0.168895f, 0.00604884f, -0.107664f, 0.208587f, -0.296141f, 0.274452f, -0.00496048f, 0.0971784f, 0.0399138f, -0.139333f, 0.039682f, -0.334159f, 0.172339f, 0.0116281f, -0.220465f, 0.133402f, 0.1976f, -0.0240128f, -0.0916601f, 0.256889f, -0.0594533f, -0.12797f, 0.134367f, -0.079957f, 0.21924f, -0.10046f, -0.0873849f, -0.161035f, -0.220403f, -0.0364315f, 0.0281587f, 0.274525f, -0.129339f, 0.205293f, -0.194987f, -0.169983f, 0.0910287f, 0.0406297f, 0.0203785f, -0.0503435f, -0.123535f, -0.0288769f, 0.026845f, 0.248715f, 0.202949f, 0.270722f, 0.207585f, 0.284636f, 0.109479f, -0.197396f, -0.154099f, 0.0563264f, -0.000887172f, 0.175666f, -0.146527f, -0.213894f, 0.103298f, -0.0228021f, 0.129525f, -0.0392686f, 0.0681835f, -0.106634f, -0.213588f, -0.0118009f, 0.272422f, 0.138975f, 0.119753f, -0.09855f, -0.114517f, 0.0961975f, -0.1664f, -0.0662028f, 0.0279368f, 0.0713688f, -0.0479683f, -0.106844f, -0.188682f, -0.0309536f, 0.039211f, -0.0540679f, -0.0229466f, 0.173829f, -0.0336432f, -0.147158f, -0.161653f, -0.116459f, -0.13973f, 0.170879f, 0.0726128f, -0.243862f, -0.0702111f, -0.0379339f, 0.1591f, 0.0987217f, -0.132801f, 0.170019f, 0.18677f, 0.0591966f, -0.0088579f, 0.105412f, -0.121431f, 0.166544f, -0.0752055f, -0.0317703f, -0.0146174f, -0.194891f, -0.0271779f, -0.0228873f, -0.00374522f, 0.0875267f, 0.0347515f, -0.0543633f, -0.020685f, -0.124523f, -0.0995137f, -0.00369932f, 0.042548f, 0.00207162f, -0.0690491f, 0.140859f, 0.213486f, -0.206491f, -0.119213f, -0.0290214f, -0.0795992f, 0.0889442f, 0.0278579f, 0.111689f, 0.0134142f, -0.056886f, 0.200994f, 0.212081f, -0.0108669f, -0.0688562f, -0.192277f, 0.0503319f, 0.046491f, -0.0619122f, 0.10244f, -0.115955f, -0.0822027f, 0.171475f, -0.113203f, 0.0311398f, 0.0063962f, 0.0540214f, -0.0100693f, -0.173033f, -0.151366f, -0.0917508f, -0.107063f, 0.0152048f, 0.000125211f, -0.072682f, 0.0734277f, 0.0679354f, 0.0544179f, 0.0575064f, -0.191108f, -0.0264638f, -0.102247f, -0.0242961f, -0.0704553f, -0.0995745f, -0.0539868f, 0.179996f, -0.0229381f, -0.0324205f, -0.153992f, 0.222597f, 9.59841e-05f, 0.100198f, -0.0328841f, 0.0586355f, 0.083847f, -0.106005f, -0.097327f, -0.0743685f, -0.120811f, -0.00341592f, -0.0644262f, -0.00638908f, -0.129813f, 0.0143081f, 0.0950571f, 0.0943747f, -0.205889f, -0.0796959f, -0.264602f, 0.00833586f, -0.241359f, 0.123368f, 0.00482297f, 0.205726f, -0.118859f, -0.0066473f, 0.0325727f, -0.213786f, -0.077227f, 0.0546713f, 0.120656f, 0.10367f, 0.250632f, 0.203165f, 0.12424f, 0.0910557f, -0.255359f, 0.117369f, -0.0293975f, 0.0498385f, -0.237927f, -0.153704f, -0.0705883f, 0.226706f, 0.00969633f, 0.0529707f, 0.142437f, 0.0873562f, 0.0395613f, -0.0781029f, 0.134733f, -0.152776f, 0.0369937f, -0.268541f, -0.178749f, -0.112343f, 0.0609082f, 0.13164f, 0.064041f, 0.180448f, -0.0269057f, -0.012335f, 0.199696f, 0.146806f, -0.0488198f, 0.0591208f, 0.277971f, -0.0629239f, -0.14319f, 0.0256514f, -0.10948f, 0.0668359f, 0.211556f, 0.13666f, -0.0401004f, -0.116544f, -0.0459574f, -0.0817386f, -0.107975f, 0.0872409f, -0.111177f, -0.0110533f, 0.0367965f, 0.0937639f, -0.187961f, 0.0147831f, -0.0412937f, 0.0447002f, -0.152258f, -0.0835927f, 0.0396292f, 0.0651568f, -0.0840028f, -0.10432f, 0.265034f, 0.0764646f, 0.14397f, 0.193091f, 0.280473f, 0.169457f, 0.00129225f, 0.113597f, -0.00778405f, -0.191759f, -0.112998f, -0.0424353f, 0.100553f, 0.00261694f, 0.0909898f, 0.0921014f, 0.135632f, -0.12915f, -0.205153f, 0.14665f, -0.00283071f, -0.164857f, 0.100383f, 0.127651f, 0.103359f, -0.136553f, 0.0506275f, 0.0369185f, 0.0717949f, 0.208942f, 0.00151355f, -0.00773828f, -0.00495051f, -0.0811909f, 0.136018f, -0.0532188f, 0.162394f, 0.196838f, 0.149997f, 0.104523f, 0.0822775f, 0.0236417f, -0.0173356f, 0.0363332f, 0.0163071f, 0.00438811f, 0.126904f, -0.0822978f, 0.207138f, -0.0255131f, 0.0103152f, -0.237009f, -0.0662415f, -0.119708f, 0.0272376f, -0.149278f, 0.104598f, 0.129066f, 0.166726f, -0.0489649f, 0.120156f, 0.197931f, 0.178108f, 0.235372f, 0.160652f, 0.131781f, -0.0118736f, -0.16526f, -0.0433357f, 0.0807169f, -0.00409449f, 0.270743f, 0.0770146f, -0.0156821f, 0.222599f, 0.0430953f, -0.0259099f, 0.0832646f, 0.0185508f, -0.035999f, 0.0117097f, -0.0846194f, -0.0321837f, -0.104575f, -0.185585f, -0.0217208f, -0.00928267f, 0.165626f, 0.0356077f, -0.0236526f, -0.0167773f, -0.0892163f, -0.13654f, 0.0920753f, 0.111336f, 0.254494f, -0.126682f, -0.099927f, 0.0681542f, 0.108058f, 0.0717572f, 0.0142304f, -0.0424573f, -0.0375399f, 0.0764914f, 0.104334f, 0.126557f, -0.25032f, -0.0557813f, 0.151163f, 0.031113f, -0.218644f, 0.005452f, 0.15397f, 0.114453f, -0.0436103f, -0.171414f, 0.0814015f, -0.111336f, 0.144098f, -0.0706162f, -0.0624517f, -0.0687641f, 0.114759f, 0.102042f, 0.0391391f, 0.129821f, -0.0191401f, -0.149325f, 0.0342931f, 0.169992f, 0.0929289f, -0.0755985f, -0.0782908f, -0.002575f, -0.0955057f, -0.224898f, -0.196052f, 0.0439001f, 0.193077f, -0.136454f, 0.133178f, -0.052864f, 0.135719f, -0.129752f, -0.00417726f, 0.200588f, 0.136126f, 0.0233303f, 0.11496f, 0.193396f, -0.111974f, 0.295856f, -0.0886764f, -0.0470807f, -0.0386536f, 0.0320356f, 0.0746214f, 0.00320718f, 0.233436f, -0.0151175f, 0.261808f, -0.175027f, -0.0450554f, 0.206274f, 0.170487f, -0.118513f, -0.0326764f, -0.0200981f, -0.108524f, -0.109222f, -0.124831f, -0.0891044f, 0.194671f, -0.0918607f, 0.174222f, 0.0213391f, 0.0351054f, -0.0703363f, -0.306279f, -0.0653928f, 0.240914f, -0.0180903f, 0.15236f, 0.0533981f, -0.141763f, -0.00430896f, -0.0214107f, -0.215514f, 0.0978553f, -0.130095f, 0.0772979f, -0.0969871f, -0.112181f, -0.160934f, 0.0645422f, 0.191462f, 0.0831114f, -0.166482f, -0.10261f, 0.137888f, 0.0181183f, 0.174031f, -0.0455666f, 0.297551f, -0.257421f, -0.0540601f, 0.10203f, 0.309286f, 0.119862f, -0.164811f, -0.039593f, -0.0937607f, 0.267402f, 0.198517f, -0.257642f, 0.0543313f, 0.012663f, -0.078668f, -0.0746769f, 0.0280389f, -0.0363783f, -0.0660491f, 0.203171f, -0.132102f, 0.073708f, 0.0975244f, -0.245182f, 0.0830548f, 0.268626f, -0.0770193f, -0.135406f, 0.0169672f, 0.132884f, -0.231595f, 0.304301f, 0.110409f, -0.0367289f, 0.014534f, 0.0560428f, -0.130806f, 0.0794673f, -0.260272f, 0.0570175f, 0.283903f, 0.000148062f, -0.111969f, 0.0368155f, 0.129132f, 0.0891575f, -0.229874f, 0.206696f, 0.0301813f, -0.0370839f, 0.0660551f, 0.133803f, 0.00878542f, -0.110441f, -0.10362f, 0.233011f, -0.0951474f, 0.237001f, 0.0951214f, 0.261974f, 0.258551f, -0.185684f, 0.204179f, -0.0743846f, 0.0192748f, -0.0877618f, 0.0276728f, -0.0766119f, -0.0544657f, 0.0987123f, 0.00245341f, 0.0158987f, 0.197225f, 0.0971294f, 0.0473637f, -0.143885f, -0.0509616f, 0.00835688f, 0.064004f, 0.155077f, 0.149621f, -0.0867777f, 0.185072f, -0.0423772f, -0.149672f, -0.225138f, -0.0969989f, 0.102909f, -0.129063f, 0.240881f, -0.00461765f, 0.0777059f, 0.175173f, -0.240473f, -0.0860025f, 0.00379779f, -0.173088f, -0.273931f, 0.0260161f, -0.151647f, -0.0662124f, -0.195815f, 0.0422656f, 0.356595f, 0.0698353f, 0.218992f, 0.0939306f, 0.273598f, 0.12301f, 0.0786385f, -0.173049f, -0.0171907f, 0.0327659f, -0.0754776f, -0.0859611f, -0.031336f, -0.0071313f, -0.0486474f, 0.0374537f, -0.00530863f, -0.0828342f, -0.0611055f, -0.208323f, -0.050574f, 0.179934f, 0.174736f, -0.121518f, 0.151412f, -0.0807153f, 0.00488107f, 0.0578868f, -0.0622251f, -0.0312186f, -0.016749f, 0.0792479f, -0.0851145f, -0.0633939f, 0.112587f, 0.126827f, -0.0355843f, 0.113908f, -0.261204f, 0.0327699f, 0.0670991f, -0.144976f, -0.155748f, 0.0762223f, 0.0982561f, 0.170238f, -0.0784837f, 0.108246f, 0.169895f, -0.0477415f, 0.0586657f, 0.0378946f, 0.0532408f, -0.086288f, -0.0290151f, -0.142857f, -0.12652f, 0.0877261f, 0.0296113f, -0.134467f, 0.0918815f, -0.135005f, -0.226528f, -0.104223f, -0.194242f, -6.05754e-05f, -0.0385761f, 0.0190681f, -0.126648f, 0.198991f, 0.100411f, 0.119514f, 0.098229f, -0.134154f, 0.120493f, -0.213472f, 0.0938777f, -0.0568573f, -0.0787645f, -0.0150637f, -0.204908f, -0.0164277f, -0.202796f, 0.0264535f, 0.0117324f, 0.185058f, -0.139596f, 0.129863f, -0.190932f, -0.1522f, 0.00720167f, -0.155576f, 0.272064f, 0.128741f, -0.113167f, 0.0566401f, -0.0499837f, -0.0546626f, 0.113018f, 0.150505f, 0.0484846f, -0.0193092f, 0.0996884f, 0.148766f, 0.0907107f, -0.229426f, 0.125816f, 0.0378085f, -0.0379688f, -0.0996752f, 0.064326f, -0.085952f, -0.00414395f, -0.0695993f, -0.21767f, 0.218186f, 0.0847152f, -0.104403f, -0.183827f, -0.0659648f, -0.104293f, -0.0498654f, 0.0204822f, -0.0485864f, 0.0209144f, -0.254871f, -0.0926005f, -0.0206942f, 0.04455f, -0.123661f, -0.191089f, -0.195106f, -0.138322f, -0.0488879f, -0.0300194f, -0.115736f, 0.0118678f, -0.1206f, 0.00608101f, 0.0860055f, 0.0042379f, -0.0731948f, 0.0442224f, 0.116936f, -0.00430383f, 0.0479616f, 0.18634f, 0.145455f, 0.119147f, 0.140476f, 0.175791f, 0.0656617f, 0.0455961f, 0.246952f, -0.132374f, 0.22768f, 0.0329303f, 0.0111849f, -0.0422589f, 0.00460924f, -0.120403f, 0.219402f, -0.0118001f, -0.156849f, 0.0934414f, 0.0551399f, 0.0449535f, 0.0293844f, -0.0566931f, -0.213823f, -0.161905f, -0.0546388f, -0.0197053f, 0.0482563f, -0.00541886f, -0.080205f, 0.110688f, -0.096588f, 0.082289f, 0.0188958f, -0.0107383f, -0.0137418f, -0.0280681f, -0.03412f, -0.0701752f, -0.0234244f, -0.0708831f, 0.236706f, -0.145979f, -0.132743f, -0.0494351f, -0.177385f, -0.211959f, 0.0609059f, 0.0521542f, -0.0118436f, 0.0234802f, 0.157435f, -0.136386f, 0.029133f, 0.118286f, 0.0634282f, -0.11533f, 0.0269704f, -0.0668314f, -0.138157f, 0.0460032f, -0.0381186f, -0.163663f, -0.158231f, 0.128561f, 0.0271048f, 0.155929f, -0.0693383f, 0.165128f, 0.0817429f, 0.165129f, -0.0030217f, -0.0251136f, -0.0685081f, 0.0926851f, 0.282662f, 0.105238f, -0.0900491f, 0.0931011f, 0.0558782f, -0.172775f, -0.049872f, -0.187982f, -0.00106986f, 0.166343f, 0.0947721f, 0.102325f, 0.135252f, -0.146323f, 0.0526975f, -0.109211f, 0.00974911f, 0.0113071f, 0.0156074f, 0.153933f, 0.0792857f, -0.0276007f, -0.169108f, 0.19264f, -0.181133f, -0.0832584f, 0.123602f, -0.0372924f, -0.0415934f, 0.210417f, -0.00401461f, 0.138494f, -0.160586f, 0.0800604f, -0.0444208f, 0.166761f, 0.124796f, 0.153726f, 0.015336f, -0.053462f, 0.15877f, -0.177892f, -0.165885f, -0.0702577f, 0.226364f, 0.159508f, -0.0767939f, -0.141771f, 0.253815f, -0.14542f, -0.0727128f, -0.044038f, -0.0183369f, 0.146341f, 0.0919844f, 0.0867076f, 0.0530806f, 0.128237f, -0.0241788f, 0.193103f, 0.0608137f, -0.190809f, -0.177788f, 0.105808f, 0.186443f, -0.0581481f, 0.0532063f, 0.0176766f, 0.040166f, -0.0031927f, -0.0366054f, -0.130554f, 0.105769f, 0.307307f, 0.0762797f, 0.0124332f, 0.0968469f, 0.0789819f, 0.119621f, 0.331455f, 0.168608f, 0.0207833f, 0.133974f, -0.0738482f, -0.0874036f, 0.00935769f, 0.0738661f, 0.0123389f, -0.232023f, 0.0714686f, -0.0723832f, 0.0116087f, -0.131765f, -0.121152f, -0.157049f, -0.182403f, 0.300227f, -0.0700826f, 0.179067f, 0.139522f, 0.160801f, -0.035979f, 0.00313138f, 0.0348875f, 0.043067f, -0.198252f, 0.242201f, 0.29332f, -0.206287f, -0.0560565f, -0.0130932f, -0.0958158f, -0.0633525f, 0.103825f, 0.106256f, -0.212146f, -0.15617f, 0.2089f, -0.0767469f, 0.259189f, 0.140676f, 0.136252f, -0.108222f, -0.0265173f, -0.0172767f, 0.0245452f, 0.135491f, -0.0310943f, -0.0844797f, 0.0654519f, -0.0319734f, 0.144351f, -0.0760586f, -0.0487109f, -0.00476471f, -0.10328f, 0.178448f, -0.0694086f, -0.036197f, -0.215094f, 0.00407127f, 0.11133f, 0.172769f, 0.0591957f, 0.020572f, 0.142443f, 0.0988489f, -0.0550702f, -0.242443f, 0.122518f, -0.20608f, -0.123457f, -0.130535f, 0.0952736f, 0.130997f, 0.116638f, -0.26398f, 0.230659f, 0.201434f, 0.177756f, -0.156286f, 0.0356651f, 0.0849684f, 0.0423504f, 0.0478889f, -0.068789f, -0.129474f, 0.0019174f, -0.178873f, 0.0488721f, 0.0563659f, 0.257248f, 0.142525f, -0.198679f, 0.0943238f, -0.201063f, 0.180418f, -0.0169357f, -0.13379f, -0.0922707f, -0.0200586f, -0.172071f, -0.11178f, 0.0175345f, -0.0527148f, 0.127956f, 0.0101059f, -0.0645614f, -0.0339641f, 0.00810007f, -0.0918737f, -0.108767f, -0.00123347f, -0.0360384f, 0.15742f, 0.0931357f, -0.101262f, -0.0551664f, -0.0496245f, -0.230592f, 0.079512f, -0.153879f, 0.202217f, -0.212615f, 0.156317f, 0.18474f, -0.0730758f, 0.0689604f, -0.0131947f, 0.0385661f, 0.0246491f, -0.116975f, -0.071777f, -0.0221332f, -0.141285f, -0.216946f, 0.0923669f, 0.156435f, -0.0325964f, -0.16469f, -0.0274238f, 0.0184982f, 0.105588f, 0.0994317f, 0.00210503f, 0.0410103f, 0.0978215f, -0.0545365f, 0.14674f, 0.132534f, 0.0652108f, 0.104418f, 0.101453f, 0.0885928f, 0.0659496f, 0.0275886f, -0.150262f, 0.0812171f, 0.130892f, -0.0142279f, -0.0134753f, -0.155097f, 0.206848f, -0.0559771f, -0.237333f, 0.0961113f, -0.149501f, -0.0402599f, -0.047555f, 0.0254666f, 0.0456831f, 0.0352803f, 0.0166995f, -0.0689763f, -0.138677f, -0.173911f, 0.106509f, 0.0419421f, 0.112509f, -0.0542582f, 0.214145f, 0.0640136f, -0.145866f, 0.0391287f, -0.0683549f, -0.0240944f, 0.129651f, -0.308991f, 0.230853f, -0.456442f, 0.0564899f, -0.0107134f, -0.167806f, 0.081991f, 0.191768f, 0.0928612f, -0.289429f, 0.0509544f, 0.110329f, -0.232404f, 0.139392f, -0.0545257f, -0.0645736f, 0.0585083f, -0.141365f, -0.00338169f, 0.0559781f, -0.209936f, 0.0727302f, -0.142572f, -0.0093485f, -0.0729962f, 0.171735f, 0.0489767f, -0.104297f, -0.128278f, 0.0108334f, -0.0651453f, -0.0410694f, -0.140557f, -0.223681f, -0.139282f, -0.0502399f, 0.111675f, -0.0483122f, -0.051685f, -0.035254f, -0.0999138f, 0.110029f, -0.218257f, 0.0167323f, 0.130161f, 0.0690248f, 0.0251303f, -0.132865f, -0.17304f, -0.0643772f, 0.0427317f, 0.110949f, -0.0533575f, 0.124358f, 0.0480527f, 0.250253f, -0.0202979f, -0.0950214f, -0.197449f, -0.232623f, -0.103759f, 0.0134363f, -0.0969658f, 0.0810251f, -0.145911f, 0.0223931f, -0.017707f, 0.220891f, -0.0397864f, -0.166426f, -0.0592068f, -0.052297f, 0.127364f, -0.131137f, 0.141877f, 0.018077f, 0.126482f, -0.157258f, -0.23741f, -0.145977f, 0.0743827f, 0.0394766f, -0.0447714f, 0.033095f, -0.234531f, -0.251539f, 0.0612784f, -0.0733239f, -0.115652f, -0.0892399f, -0.195841f, 0.0890716f, -0.0927961f, 0.100249f, 0.033091f, -0.124652f, 0.0341153f, -0.060223f, -0.222117f, -0.00670716f, 0.0546618f, 0.0059837f, -0.171384f, 0.107257f, -0.131579f, -0.0846414f, 0.0238382f, -0.0906043f, -0.133402f, 0.0574404f, -0.103393f, -0.0660763f, -0.10963f, 0.160256f, -0.0275367f, -0.221118f, -0.0751426f, -0.208214f, -0.0915512f, -0.0492275f, -0.0524427f, 0.270869f, -0.111681f, 0.0348485f, 0.116212f, 0.0812864f, 0.0516902f, -0.0902057f, 0.131855f, 0.283319f, -0.252631f, -0.00940643f, 0.00169152f, 0.0643261f, 0.00697084f, -0.013657f, 0.0601413f, -0.0920098f, 0.0273456f, 0.164389f, 0.0605415f, -0.167042f, -0.190913f, 0.0197024f, -0.046453f, -0.136446f, -0.0315706f, -0.0398488f, -0.161666f, 0.237632f, 0.128159f, 0.00983676f, -0.108822f, -0.179562f, 0.114595f, -0.00948612f, -0.183966f, 0.102093f, 0.212499f, 0.0161638f, -0.0866118f, 0.126237f, 0.0625569f, -0.203243f, 0.0614441f, -0.0642783f, -0.0408933f, 0.0989242f, 0.0330351f, -0.208414f, -0.043262f, 0.106671f, 0.0055459f, 0.0258563f, -0.251695f, -0.173291f, 0.0922925f, 0.122914f, -0.211463f, -0.00538627f, -0.106427f, -0.0580099f, -0.125944f, -0.0936736f, -0.132725f, 0.116198f, 0.0568869f, 0.0442538f, 0.0512703f, -0.149253f, -0.0825934f, 0.187175f, 0.0204684f, -0.0520418f, 0.0814242f, 0.0262562f, -0.108136f, 0.120342f, 0.12475f, 0.149035f, 0.109678f, -0.126544f, -0.0233401f, 0.0507173f, -0.0871036f, 0.123402f, 0.0273692f, -0.0521473f, -0.0561031f, 0.135667f, 0.0728597f, 0.0278424f, 0.0494723f, 0.0425563f, 0.264887f, 0.232679f, 0.191358f, -0.242447f, -0.00434881f, -0.0029504f, -0.119591f, 0.00743443f, -0.0559128f, 0.166451f, 0.0467545f, -0.137939f, 0.0887287f, 0.0797731f, -0.235339f, 0.096553f, 0.151743f, -0.113165f, -0.261916f, -0.00355753f, 0.123657f, -0.0110352f, -0.0629609f, 0.272475f, 0.100998f, 0.0360151f, -0.0184359f, 0.0647201f, -0.290371f, -0.0130202f, -0.13879f, -0.153782f, -0.0520792f, 0.0328071f, 0.125768f, -0.379185f, -0.0512892f, -0.189205f, -0.00377559f, -0.0215912f, -0.0381268f, -0.152775f, 0.0903156f, 0.0611179f, 0.115936f, -0.0586693f, 0.0247649f, 0.140086f, -0.136323f, 0.166327f, -0.136334f, -0.0994708f, 0.274984f, -0.0283771f, -0.0412969f, -0.0489362f, -0.164511f, 0.0332295f, -0.180661f, 0.118515f, 0.359514f, -0.111324f, 0.0919991f, -0.0991683f, 0.0194869f, 0.00797585f, -0.303857f, -0.301714f, -0.27024f, 0.262229f, 0.168468f, 0.200807f, -0.173969f, 0.229427f, -0.0061211f, 0.0123714f, 0.0950799f, 0.184388f, -0.0273971f, 0.116193f, -0.273372f, -0.1676f, -0.0450364f, 0.151111f, -0.0789391f, 0.0554384f, -0.098221f, 0.127879f, -0.0133922f, -0.209133f, -0.0654519f, 0.125582f, 0.0972266f, 0.0797552f, 0.0450454f, 0.302119f, -0.0230442f, -0.329715f, 0.189671f, 0.0125899f, -0.0323112f, 0.220961f, -0.144014f, -0.0104823f, -0.0982211f, -0.167023f, 0.0235481f, 0.0433205f, 0.182589f, -0.0428228f, 0.018627f, 0.182219f, 0.204407f, 0.1685f, 0.120148f, -0.176256f, -0.238445f, -0.0232163f, -0.0630599f, -0.197186f, -0.00587098f, -0.157736f, -0.0853194f, 0.216739f, -0.314292f, -0.0633324f, -0.174605f, 0.0185207f, 0.123337f, -0.0948256f, 0.26442f, -0.222728f, 0.405897f, 0.00634285f, -0.15172f, -0.225466f, 0.151578f, -0.00290698f, 0.0733012f, -0.232248f, -0.201718f, 0.246277f, -0.105364f, 0.0702502f, 0.0254514f, 0.168293f, 0.128595f, -0.0558737f, 0.0209434f, -0.167659f, 0.00676793f, 0.0265326f, -0.22265f, -0.00618423f, -0.00294882f, 0.08288f, 0.147714f, -0.162231f, 0.219004f, -0.0804446f, 0.145945f, -0.0760196f, -0.116994f, -0.150184f, -0.080703f, -0.105688f, -0.0728714f, 0.100933f, -0.146993f, 0.0296249f, -0.0431401f, -0.00163245f, 0.0219098f, -0.0954684f, 0.202847f, -0.0733518f, -0.165126f, -0.140089f, 0.0276841f, -0.0706382f, -0.0326121f, 0.0545865f, 0.0868929f, 0.0560698f, -0.0983054f, 0.136745f, 0.250704f, 0.102635f, 0.105026f, -0.228542f, 0.0334953f, -0.202913f, -0.21927f, 0.119958f, 0.18095f, -0.0527439f, 0.0742911f, 0.126178f, 0.227284f, 0.28972f, 0.180752f, -0.000572754f, -0.0248137f, 0.0510356f, 0.0477594f, -0.0543033f, -0.0334373f, 0.249124f, 0.222469f, -0.00784564f, 0.069971f, 0.150745f, -0.00320279f, -0.00664711f, 0.0296901f, -0.138486f, 0.0641591f, -0.10737f, 0.0527403f, 0.0443139f, -0.0704908f, 0.0146078f, -0.0813099f, 0.000808123f, 0.0760448f, -0.0695766f, 0.129304f, -0.0271913f, -0.0906887f, 0.148602f, 0.0337614f, -0.116649f, 0.00932536f, -0.190285f, 0.200689f, -0.0682795f, -0.0277663f, -0.115556f, 0.101832f, 0.0952084f, 0.202144f, 0.0130999f, -0.135528f, -0.0584829f, -0.00570619f, -0.165872f, 0.0946589f, 0.0265156f, -0.213222f, 0.0870213f, -0.0782632f, -0.0932838f, 0.122409f, 0.170141f, 0.173144f, 0.342967f, 0.134565f, -0.0526456f, -0.0619144f, -0.0891471f, 0.10954f, -0.0144303f, 0.220462f, 0.181819f, -0.101716f, -0.118509f, 0.150749f, -0.238207f, -0.151229f, 0.0916786f, -0.011508f, -0.0163332f, -0.247606f, 0.236337f, -0.0735522f, -0.0918695f, -0.0315468f, 0.0935958f, 0.0381887f, 0.241757f, 0.033832f, 0.158998f, 0.0603531f, -0.180469f, -0.103585f, 0.00819841f, 0.27114f, 0.0854662f, -0.0386369f, -0.0898172f, -0.0138775f, -0.0587887f, 0.0658498f, 0.184887f, -0.0722174f, -0.026589f, 0.168047f, -0.0223276f, 0.099754f, -0.0470531f, 0.0431132f, -0.107339f, -0.225905f, -0.0145706f, -0.203162f, -0.00603034f, 0.0514581f, -0.217944f, -0.160022f, 0.0543118f, -0.143758f, 0.0162612f, -0.0070871f, -0.034466f, -0.0939305f, 0.0803356f, 0.158594f, 0.15235f, -0.243781f, 0.146612f, 0.0627775f, 0.145805f, -0.0456914f, -0.121016f, -0.187398f, 0.264102f, 0.122139f, 0.0996373f, 0.113007f, -0.0849257f, 0.0481467f, 0.0231615f, -0.0112693f, 0.115459f, 0.208322f, 0.00859478f, -0.0687624f, 0.0989845f, -0.0406283f, -0.0208026f, 0.188574f, -0.0547777f, 0.0131846f, -0.0821126f, 0.0040474f, 0.166951f, -0.0260542f, 0.0878963f, -0.233871f, 0.0038415f, 0.142503f, 0.0369657f, 0.0861392f, -0.000101757f, 0.138673f, 0.236372f, 0.00185787f, 0.0130599f, -0.0744809f, -0.0086432f, 0.255084f, 0.102303f, -0.0730181f, -0.0347397f, 0.142509f, -0.0304765f, -0.00317938f, 0.165656f, -0.0125162f, -0.0808155f, -0.173349f, -0.238883f, -0.117425f, 0.195237f, -0.165129f, -0.152162f, -0.216616f, -0.142912f, -0.00953402f, 0.0481836f, 0.0794244f, 0.0193496f, 0.0508451f, -0.126004f, -0.0206714f, -0.017311f, 0.0238886f, -0.0794976f, 0.253679f, -0.163014f, 0.159541f, 0.0623407f, -0.141147f, -0.122191f, 0.0183138f, -0.267592f, 0.0573572f, -0.119555f, 0.104379f, -0.144361f, 0.021394f, 0.055091f, -0.066832f, -0.122617f, 0.0505085f, 0.191884f, 0.111372f, 0.103741f, -0.144162f, -0.129989f, -0.085263f, 0.205379f, 0.224983f, 0.0535906f, -0.0186824f, 0.0849446f, 0.00475927f, 0.202141f, -0.274748f, 0.141082f, -0.0807324f, 0.166299f, -0.161697f, 0.223798f, 0.0670415f, 0.0307627f, 0.115711f, 0.0516334f, 0.305286f, -0.222467f, -0.0318942f, -0.131777f, -0.172381f, -0.169809f, -0.0122917f, 0.0515761f, 0.136488f, -0.0881125f, -0.0795516f, 0.124103f, -0.212326f, -0.0526724f, 0.142647f, 0.19808f, 0.0998789f, -0.163221f, 0.0149588f, 0.0703053f, 0.258646f, -0.152186f, 0.262123f, 0.094094f, -0.0620028f, -0.133746f, -0.135231f, -0.0967988f, 0.0775805f, 0.157491f, 0.000813094f, 0.0453607f, 0.0721893f, -0.0410422f, 0.0890455f, -0.0852537f, 0.188422f, -0.15673f, 0.0768744f, -0.000338728f, 0.011247f, -0.00436062f, -0.065242f, 0.0621797f, 0.133777f, 0.00193562f, -0.149501f, -0.103247f, 0.082558f, 0.190945f, -0.000500228f, 0.125131f, -0.153709f, 0.033263f, -0.0695401f, -0.0602585f, 0.0174914f, 0.00670278f, -0.240821f, -0.0366765f, -0.102067f, -0.117407f, -0.214228f, 0.0133317f, -0.2331f, -0.105696f, 0.0474219f, 0.243174f, 0.0316052f, -0.00857484f, 0.068671f, -0.0692658f, -0.192598f, -0.0522819f, 0.017434f, 0.0875393f, -0.108999f, 0.0224464f, -0.000289803f, 0.0308436f, 0.225872f, -0.021209f, -0.181775f, -0.085254f, -0.115463f, -0.0232141f, -0.147014f, 0.111951f, 0.100439f, 0.0569104f, 0.28157f, 0.0681723f, -0.0752605f, -0.244067f, -0.0156014f, 0.105304f, -0.0573261f, -0.00647298f, 0.188762f, -0.195305f, -0.0362215f, 0.0331957f, 0.203244f, 0.134436f, 0.193755f, 0.0590113f, 0.00577246f, 0.0948787f, 0.167609f, 0.0750456f, -0.0263225f, -0.0407878f, 0.00188451f, 0.0517634f, -0.0105696f, -0.0800808f, -0.0670993f, -0.173271f, -0.0710002f, 0.107975f, -0.0767023f, 0.00934668f, 0.057057f, -0.0601303f, 0.219053f, 0.16163f, 0.0479132f, 0.0421495f, -0.141745f, 0.20212f, 0.161842f, 0.0964657f, 0.111944f, 0.00620971f, -0.0838364f, 0.110689f, 0.125085f, 0.0436805f, -0.00506222f, 0.0179034f, 0.0810833f, -0.226408f, 0.0440001f, -0.121908f, 0.0245795f, -0.077128f, 0.0979553f, 0.155824f, 0.298383f, 0.163301f, 0.147449f, 0.0560002f, -0.180886f, 0.195187f, -0.10273f, -0.141343f, 0.0376381f, -0.0337902f, -0.151743f, 0.0382552f, 0.167902f, -0.0898035f, 0.119957f, 0.177732f, -0.314683f, -0.0378698f, 0.00132685f, 0.097914f, -0.061123f, 0.115466f, 0.134018f, 0.32413f, -0.01979f, -0.148862f, 0.201737f, -0.0645277f, -0.117864f, -0.0155509f, -0.13483f, -0.0991072f, -0.0339839f, 0.0596327f, 0.0305568f, 0.238246f, -0.0457691f, 0.0267058f, 0.23215f, 0.0727463f, 0.143177f, -0.192662f, -0.209848f, 0.0443495f, -0.15238f, 0.0634153f, 0.162508f, -0.0486968f, 0.223476f, 0.232912f, 0.107528f, -0.149894f, 0.23303f, 0.0926871f, 0.157279f, 0.0751353f, 0.214613f, -0.308133f, -0.104217f, -0.133531f, 0.131261f, 0.0176007f, -0.0457933f, -0.17834f, 0.0340446f, 0.152732f, 0.0265756f, 0.174396f, 0.476776f, -0.00513172f, -0.0037786f, -0.148585f, -0.110169f, -0.0628624f, -0.104207f, -0.0258795f, 0.081644f, 0.170207f, -0.149664f, -0.206528f, 0.0878577f, 0.234443f, 0.0424915f, -0.0392859f, 0.172995f, -0.0245516f, -0.0944802f, 0.141654f, 0.0599302f, 0.241537f, 0.0327431f, -0.0718415f, 0.287151f, 0.194156f, -0.243484f, 0.145609f, -0.126163f, 0.0698004f, -0.0462461f, -0.115616f, -0.111691f, 0.0847014f, -0.194548f, 0.343506f, 0.161225f, 0.0631149f, 0.0156949f, 0.0254062f, -0.0998765f, -0.122711f, 0.11109f, 0.215126f, -0.000141033f, -0.0164258f, -0.0868714f, 0.199626f, -0.044338f, 0.0248497f, 0.212063f, -0.0198406f, 0.111463f, 0.0530802f, -0.0532965f, 0.236092f, 0.265785f, -0.183314f, -0.0527879f, 0.043417f, 0.0710839f, -0.0983931f, -0.00438991f, -0.0412851f, 0.182228f, 0.127333f, -0.113378f, 0.255932f, 0.153914f, 0.0709716f, 0.119134f, -0.0189523f, -0.180454f, 0.116696f, -0.0966218f, -0.122574f, -0.269101f, 0.0113528f, 0.0628982f, -0.0470393f, 0.0397081f, -0.136385f, -0.22186f, -0.103589f, -0.0834857f, -0.118511f, 0.0842829f, 0.328932f, 0.0142353f, -0.242934f, 0.151947f, 0.0313093f, -0.010816f, 0.137923f, -0.131657f, -0.284857f, -0.246008f, -0.201069f, -0.0424777f, -0.240015f, -0.178892f, -0.203622f, 0.144707f, -0.0922835f, 0.0237925f, 0.0479535f, 0.0875538f, 0.0936763f, -0.154211f, -0.102749f, -0.070994f, 0.029648f, -0.255873f, -0.0765665f, -0.242201f, -0.160077f, -0.0783533f, -0.253316f, 0.198161f, 0.0912971f, -0.122214f, 0.160509f, 0.0219858f, 0.107816f, 0.0999836f, 0.198589f, 0.18158f, 0.126099f, 0.0183922f, 0.0470495f, 0.00337156f, -0.0911492f, 0.167851f, -0.12535f, 0.170912f, -0.0221781f, 0.0244123f, -0.0408453f, 0.0977436f, -0.018356f, -0.256684f, -0.132659f, 0.138018f, 0.167459f, -0.0300068f, -0.0859621f, -0.11962f, 0.161279f, -0.128255f, 0.118447f, -0.11943f, -0.0799545f, -0.298379f, -0.097287f, 0.120704f, 0.169731f, -0.185681f, -0.269999f, -0.244908f, 0.0999901f, 0.200081f, 0.183987f, 0.429091f, 0.0778352f, -0.263344f, -0.0471771f, 0.296332f, 0.172708f, 0.206192f, -0.13921f, 0.0510251f, -0.125251f, 0.131075f, 0.102271f, -0.0467462f, 0.0257676f, -0.127603f, -0.114564f, 0.00889627f, -0.114112f, 0.0823589f, -0.0514956f, -0.178806f, -0.0337608f, -0.119296f, -0.00738485f, 0.0928288f, 0.0769336f, -0.0976911f, 0.0787971f, -0.078196f, -0.201005f, -0.0696651f, 0.0954467f, -0.163542f, -0.0303046f, 0.158927f, 0.201786f, -0.0513393f, 0.104259f, -0.179513f, -0.0779392f, -0.00327828f, -0.165715f, -0.188637f, -0.137166f, 0.0781553f, 0.103884f, 0.332258f, -0.016888f, 0.156441f, -0.0388447f, 0.0632115f, -0.0582905f, -0.00186296f, -0.0495149f, 0.225687f, -0.153448f, -0.10367f, -0.124781f, 0.0737913f, 0.0862624f, 0.206727f, 0.196715f, -0.0284487f, -0.00988739f, 0.220012f, -0.0252623f, 0.168786f, 0.127867f, -0.0185743f, -0.0307794f, -0.204029f, 0.141954f, -0.211531f, -0.332643f, 0.139616f, -0.0401154f, -0.0643476f, 0.0273888f, 0.218811f, -0.109139f, -0.00338293f, 0.0826068f, 0.0258077f, -0.0032594f, 0.332864f, -0.103928f, 0.0196971f, -0.156372f, -0.0798499f, 0.296399f, 0.0271506f, 0.091495f, 0.241478f, 0.222023f, -0.0387302f, -0.0299842f, 0.0579832f, -0.182791f, 0.0985393f, -0.00523261f, -0.138758f, -0.107541f, -0.0948399f, -0.147055f, 0.184178f, -0.133554f, -0.131978f, -0.296845f, 0.0325436f, 0.199941f, 0.175093f, -0.00230138f, -0.102818f, -0.0420201f, 0.129457f, 0.068017f, -0.0332648f, -0.00894236f, -0.098845f, -0.00753575f, -0.0673654f, -0.145263f, 0.113437f, 0.0914055f, -0.00143512f, 0.0942811f, -0.0305817f, 0.282929f, -0.18672f, -0.112662f, -0.220805f, -0.066148f, 0.199075f, 0.0782547f, 0.114651f, 0.0937889f, 0.205614f, -0.115569f, -0.0613862f, -0.207668f, -0.11476f, 0.153937f, -0.151151f, -0.346595f, 0.0833564f, -0.0359258f, -0.115247f, -0.0581681f, -0.09493f, 0.103946f, 0.25415f, -0.150323f, -0.0380579f, -0.0330787f, -0.00525024f, 0.0186346f, -0.0305149f, -0.186087f, -0.0999572f, -0.115797f, 0.00276318f, 0.0112095f, -0.101085f, -0.106808f, 0.107935f, 0.00961863f, -0.00667402f, 0.00801296f, -0.156995f, 0.181634f, 0.197861f, -0.0630275f, -0.277353f, -0.115226f, -0.36412f, -0.0266432f, 0.0206991f, 0.15612f, 0.0255977f, 0.201208f, 0.139746f, 0.0557096f, 0.0973374f, -0.0266156f, 0.0175912f, 0.134545f, 0.0101333f, -0.160581f, 0.0372828f, -0.0839715f, -0.183419f, -0.00429197f, -0.132434f, -0.120953f, 0.148075f, -0.255095f, 0.0394775f, -0.016211f, 0.191533f, 0.14964f, 0.141708f, 0.115694f, -0.0246513f, 0.0293724f, -0.0883495f, 0.246417f, -0.117415f, 0.0597688f, -0.110295f, -0.00520283f, -0.182618f, 0.0625962f, 0.0081863f, -0.0142607f, 0.0541194f, -0.0554157f, -0.00591652f, -0.0022292f, 0.03706f, 0.214832f, -0.0560465f, -0.131744f, -0.138133f, -0.0986632f, -0.229274f, -0.136698f, 0.0995877f, 0.43432f, -0.160847f, 0.204996f, 0.0603452f, 0.053275f, -0.164842f, -0.0665397f, 0.0256539f, -0.103223f, -0.197584f, -0.0329347f, 0.0701767f, -0.0415869f, 0.0392298f, 0.0519155f, 0.152607f, -0.103417f, 0.0263919f, -0.203595f, -0.038185f, -0.0368837f, 0.092794f, 0.0911869f, 0.0672124f, -0.101674f, 0.247117f, 0.104358f, -0.0781367f, 0.0259994f, -0.0368053f, -0.106514f, 0.224546f, -0.108995f, 0.112747f, -0.366657f, 0.0341756f, -0.041221f, -0.0731361f, 0.308381f, 0.193964f, -0.149423f, -0.0224257f, -0.278178f, 0.0550206f, 0.0494453f, 0.0740552f, -0.140144f, -0.120898f, 0.0805589f, 0.0484794f, 0.0413425f, 0.337922f, 0.0334329f, 0.250736f, 0.0264221f, 0.0346671f, -0.112495f, -0.0637923f, 0.224169f, -0.0160768f, -0.141467f, 0.0300025f, -0.0421491f, 0.189176f, -0.11531f, -0.038429f, -0.188034f, -0.107783f, -0.12626f, -0.159933f, -0.137536f, -0.110569f, -0.182712f, 0.321717f, -0.0170232f, -0.17529f, 0.147837f, -0.0675082f, 0.0675104f, 0.136173f, 0.132304f, 0.0529975f, 0.505866f, -0.255341f, 0.0331028f, -0.120566f, -0.0390507f, -0.0885224f, -0.360095f, 0.0694635f, -0.066831f, -0.212694f, 0.270353f, -0.282276f, -0.237955f, -0.0265897f, 0.415486f, -0.314802f, -0.295329f, -0.0937045f, 0.0339239f, -0.216374f, -0.103194f, -0.120421f, -0.23692f, 0.053388f, 0.396106f, -0.0410978f, 0.00122743f, -0.141285f, -0.0194634f, 0.240345f, 0.0563302f, 0.0557607f, 0.216166f, -0.018195f, -0.0587413f, 0.0335691f, -0.0811946f, 0.0310523f, -0.071152f, 0.00116798f, -0.248101f, -0.233317f, 0.00207474f, 0.211031f, -0.182801f, -0.23281f, -0.0803899f, 0.0796748f, -0.373119f, -0.0236714f, 0.298858f, -0.210002f, -0.123173f, 0.056211f, 0.0710101f, -0.000420267f, 0.222125f, -0.0806963f, -0.177015f, -0.293845f, -0.0810273f, 0.312525f, 0.0173415f, 0.0854641f, -0.0657604f, 0.246809f, 0.18022f, 0.261195f, -0.0449006f, -0.0299894f, 0.125036f, -0.167513f, -0.0828896f, 0.294635f, 0.147186f, 0.172629f, -0.16528f, 0.082555f, -0.130248f, -0.139386f, 0.355252f, 0.17594f, 0.178713f, -0.121214f, -0.0727996f, -0.113729f, -0.0205094f, 0.405982f, -0.060515f, 0.0601772f, 0.144893f, -0.0382382f, -0.103134f, -0.107361f, 0.142849f, 0.245431f, 0.238787f, -0.0994103f, 0.0760072f, 0.14f, 0.154757f};
+ model->setOperandValue(op20, op20_init, sizeof(float) * 32768);
+ static float op22_init[] = {1.08059f, 0.613529f, -0.951719f, -0.861612f, 0.867697f, 0.776146f, 0.886088f, 0.0360881f, -0.228725f, 0.99308f, 0.772503f, 0.13115f, 0.444418f, 0.753733f, 0.806567f, 0.957842f, -1.40967f, -0.29546f, -0.59267f, 0.666514f, -1.10016f, -0.646609f, 0.673707f, 0.953951f, 0.393974f, 0.98207f, -0.644093f, 0.89083f, -0.145055f, -0.821302f, 0.0106507f, -1.09542f, 0.705736f, -0.0362283f, -0.649667f, -0.401635f, -0.00998712f, 0.739409f, -0.187072f, 0.690995f, -0.175346f, -0.465088f, 0.753494f, -1.065f, 1.0958f, -0.684324f, -0.946476f, 0.273813f, 0.795813f, 0.986562f, -0.739017f, -0.449237f, 1.0614f, 0.819235f, 0.557115f, 0.0782367f, 0.00833844f, 0.804665f, 0.954324f, 0.631661f, 0.942427f, -0.650992f, -0.797254f, -0.283754f, 0.497299f, -1.00708f, 0.869227f, -0.574946f, -1.04143f, 0.826134f, 0.710585f, 0.76314f, 0.477792f, 0.930909f, -0.913406f, -1.28013f, 1.40116f, -0.587567f, 0.0107547f, 0.895997f, -0.702578f, -0.681548f, -1.42103f, 0.439222f, 0.629061f, -0.661517f, 0.650495f, 1.01512f, 0.304494f, 0.471469f, 0.70978f, 0.520241f, -1.12464f, 0.789097f, 0.486918f, -0.564991f, -1.16599f, 0.908221f, 0.900087f, 0.804052f, -0.912126f, 1.16053f, -0.964254f, -1.47969f, 0.75153f, -1.10504f, 0.643193f, 0.654283f, -0.774442f, 0.859534f, 1.08754f, 0.894428f, -0.349845f, 0.717952f, -0.818105f, -0.685272f, 0.719653f, 0.221689f, 0.580021f, -0.868784f, -0.765754f, 0.335712f, -1.05373f, -0.736756f, -1.34203f, 0.840665f, -0.783447f, -0.76105f, 0.736778f, -0.714565f, -0.757179f, 0.502076f, -0.429628f, -0.815403f, 0.305288f, 0.511788f, 0.639633f, 0.833758f, -0.881914f, 0.670985f, -0.759582f, 0.477742f, -1.97672f, 0.0150744f, 0.892992f, -0.513419f, -0.636598f, -0.391863f, 0.714185f, -0.271203f, 0.50773f, -0.725078f, -1.09182f, -0.00830997f, 0.800519f, -0.790665f, 0.011206f, 0.648068f, 0.314541f, 0.833785f, 0.743304f, -0.729218f, 0.69944f, 0.716866f, -0.0155263f, 0.236963f, -0.750609f, -0.764535f, -0.974223f, 0.907331f, 0.766474f, -0.902966f, 0.503484f, -0.00109834f, 0.83286f, -0.568512f, -0.30153f, -0.555918f, 0.772897f, -0.910785f, -0.0350145f, -0.973868f, 0.404545f, -0.0615412f, 0.00991651f, -1.01877f, 0.676516f, -0.74005f, -0.598321f, -0.80478f, -1.03634f, -0.874505f, 1.21163f, 1.10213f, -0.00699455f, -0.072837f, -0.449261f, 0.976919f, 0.0676252f, 0.695134f, -0.812793f, 0.759372f, 0.768298f, -0.855527f, 0.614652f, -0.903347f, -1.3134f, 0.884192f, 1.05967f, 0.478357f, -1.11453f, -0.234713f, -0.723932f, 0.288597f, 0.0341888f, -0.4238f, 0.0638279f, 0.793826f, -0.591246f, 0.95119f, 0.88514f, -0.191094f, -0.677312f, -0.934787f, 0.553466f, 0.570809f, 0.292745f, -0.427575f, -0.881358f, -0.879608f, 0.395251f, 0.48285f, -0.605223f, 0.904051f, -0.953032f, -0.500631f, -0.0687485f, 0.0676696f, 0.62603f, 0.0224478f, 0.419152f, 0.835996f, 0.0583883f, -0.620254f, -1.18509f, -0.968522f, -0.298168f, 0.805448f, -0.797511f, 0.413079f, 0.754239f, -0.934051f, 0.800133f, 1.00281f, -0.730008f, 0.2403f};
+ model->setOperandValue(op22, op22_init, sizeof(float) * 256);
+ static float op23_init[] = {-0.28458f, 0.0472449f, 0.32551f, 0.661396f, -0.529311f, -0.109768f, -0.191594f, -0.174226f, -0.677528f, -0.400651f, -0.468258f, 0.465917f, -0.318087f, -0.764231f, -0.291188f, -0.284253f, 0.586599f, -0.0226678f, 0.390401f, -0.471706f, 0.438813f, 0.453643f, -0.36546f, -0.301168f, -0.271752f, -0.334392f, 0.482651f, -0.289412f, -0.793406f, 0.300859f, 0.224297f, 0.203824f, -0.288313f, 0.350108f, -0.368492f, 0.803083f, 0.379972f, -0.337444f, -0.283055f, -0.345158f, 0.388449f, 0.82468f, -0.0244637f, 0.568288f, -0.457818f, -1.08335f, 0.48652f, 0.432265f, -0.233837f, -0.233288f, 0.478888f, -0.339039f, -0.527783f, -0.274578f, 0.227933f, -0.326306f, 0.291881f, -0.25079f, -0.172483f, -0.235968f, -0.213382f, 0.188088f, -0.597735f, 0.145517f, -0.677593f, 0.243537f, -0.168354f, 0.210169f, 0.497489f, -0.156191f, -0.188713f, -0.389135f, 0.125653f, -0.468001f, 0.236705f, 0.743493f, -0.568997f, 0.0730394f, -0.415253f, -0.275788f, 0.211339f, 0.13102f, 0.742574f, -0.939167f, 0.00453726f, 0.256094f, -0.465423f, -0.276601f, 0.273844f, -0.0529241f, -0.154002f, 0.065955f, 0.502945f, -0.144296f, 0.308102f, -0.445824f, -0.199373f, -0.360619f, -0.266055f, -0.374078f, 0.347835f, -0.551932f, 0.385501f, 0.402392f, -0.233246f, 0.674142f, 0.0426675f, -0.957917f, 0.263741f, -0.313646f, -0.394376f, -0.557937f, 0.288833f, -0.3077f, 0.406252f, 0.342111f, -0.251185f, -0.403173f, 0.0751117f, 0.118978f, 0.431095f, 0.0858463f, 0.673327f, 0.167784f, 1.01841f, -0.155637f, 0.526669f, 0.429405f, -0.438051f, 0.40704f, 0.21189f, -0.384288f, 0.560401f, -0.0269653f, 0.239517f, 0.357908f, -0.107261f, -0.294274f, 0.309814f, -0.315181f, 0.388376f, -0.261831f, 0.614283f, -0.304983f, -0.229939f, -0.236821f, 0.0349122f, 0.8521f, -0.25575f, 0.529979f, -0.231175f, 0.251326f, 0.325649f, 0.329067f, -0.315128f, 0.41153f, 0.454485f, 0.21335f, 0.501762f, -0.297765f, -0.129734f, 0.310647f, -0.200211f, -0.657485f, 0.10809f, -0.405919f, -0.22658f, 0.610314f, 0.551553f, -0.286746f, -0.529356f, 0.691515f, -0.233684f, 0.298975f, -0.854537f, -0.813706f, 0.679447f, -0.496609f, -0.29352f, 0.119398f, -0.369995f, 0.28706f, -0.726949f, 0.428352f, 0.206034f, 0.239836f, -0.277531f, 0.35422f, -0.434068f, 0.740928f, 0.378439f, 0.377754f, -0.944411f, -0.666439f, 0.466947f, 0.592947f, 0.780001f, -0.360031f, -0.771556f, 0.0891092f, 0.201805f, -0.341506f, 0.084474f, 0.444853f, 0.143224f, 0.50902f, -0.08028f, -0.192673f, -0.62729f, 0.00593949f, -1.1024f, -1.02446f, 0.252455f, 0.16224f, -1.51712f, -0.00369547f, 0.0075995f, 0.192303f, -0.547526f, -0.205436f, -0.209118f, -0.0254876f, 0.287526f, 0.423511f, 0.0307847f, -0.318243f, -0.0436689f, -0.366271f, 0.283879f, 0.547196f, 0.14235f, 0.228076f, 0.0688717f, -0.0120464f, 0.656107f, 0.525906f, 0.485617f, -0.463831f, -0.297706f, 0.32931f, 0.212747f, 0.0766123f, 0.280379f, -0.475746f, 0.618455f, 0.209996f, 0.395897f, -0.310497f, 0.0888236f, -0.446726f, -0.405172f, 0.075344f, -0.201732f, 0.00210309f, 0.385812f, 0.424705f, -0.183616f, 0.0771259f, 0.153591f, 0.259769f, -0.115946f, -0.0235543f, -0.150271f, 0.344592f, 0.459448f, -0.222459f, -0.517041f, -0.0945315f, -0.384485f, 0.16076f, -0.332681f, -0.196776f, 0.0322294f, 0.411114f, 0.175539f, -0.527312f, 0.0564111f, 0.277134f, -0.341931f, -0.514875f, -0.342404f, -0.0767196f, 0.0884651f, -0.230879f, 0.345558f, 0.0852015f, 0.0562657f, 0.257861f, -0.369273f, 0.377067f, 0.241246f, 0.257019f, 0.343953f, 0.0311605f, 0.347905f, -0.425566f, 0.485304f, 0.244659f, 0.0619747f, 0.109269f, -0.38288f, -0.244667f, -0.0344031f, -0.136566f, -0.154542f, -0.336944f, 0.308047f, 0.0538502f, -0.404385f, 0.0463656f, 0.198913f, 0.137075f, 0.241449f, -0.199885f, -0.12434f, 0.306686f, -0.122854f, 0.398624f, 0.218665f, -0.633676f, -0.931847f, 0.2059f, -0.261068f, 0.331143f, 0.126376f, -0.184037f, -0.198129f, -0.370324f, -0.0560973f, -0.32744f, 0.559529f, 0.0841585f, -0.602346f, -0.375545f, 0.27432f, -0.395894f, -0.0159903f, 0.509431f, 0.297769f, -0.765591f, 0.159231f, 0.139198f, -0.536258f, -0.398787f, 0.149015f, -0.0567586f, -0.138725f, -0.0111194f, 0.140182f, -0.30886f, 0.203031f, -0.0419858f, 0.329565f, -0.52822f, -0.33655f, -0.397831f, 0.243507f, 0.111685f, 0.299017f, 0.10769f, -0.0312799f, 0.109584f, 0.120701f, -0.12889f, 0.349554f, -0.157182f, -0.093955f, 0.119006f, 0.105169f, -0.0889017f, 0.189185f, 0.36128f, -1.09355f, -0.058658f, -0.769913f, 0.096028f, 0.19114f, 0.53226f, 0.279309f, 0.179189f, 0.448786f, -0.13838f, 0.160635f, 0.0633367f, -0.275156f, 0.378503f, 0.0944601f, -1.19245f, -0.0320738f, 0.241066f, -0.132407f, -0.524387f, 0.106939f, -0.251766f, 0.11987f, -0.409609f, 0.222276f, -0.0441906f, -0.0494878f, -0.0501241f, -0.0844014f, -0.28418f, 0.225391f, 0.113369f, -0.154496f, 0.186213f, 0.14614f, 0.401862f, -0.0313085f, 0.560078f, -0.0407017f, 0.122991f, -1.05534f, -0.495545f, 0.420298f, 0.0906709f, -0.113776f, 0.211673f, 0.0413234f, -0.0240217f, -0.591792f, -0.129843f, -0.0503685f, -0.0230143f, 0.524557f, -0.171754f, -0.557895f, -0.020142f, -0.416382f, 0.203279f, -0.296933f, 0.414196f, -0.461552f, 0.448204f, -0.604003f, 0.386268f, -0.300078f, 0.595266f, -0.522842f, 0.31545f, -0.533617f, 0.274282f, 0.112026f, 0.48007f, 0.384362f, 0.290018f, 0.536309f, 0.15782f, -0.364838f, 0.488889f, 0.351907f, 0.597652f, 0.287762f, -0.28167f, 0.160969f, -0.297121f, 0.404882f, -0.149116f, 0.0386217f, -0.349471f, -0.621411f, -0.0252337f, 0.409071f, -0.242507f, -0.384841f, -0.0629887f, 1.14271f, 0.292164f, -0.035478f, 0.421029f, 0.741154f, 0.294348f, -0.568311f, -1.02438f, 0.547155f, -0.147867f, -0.0352431f, 0.559739f, 0.555878f, 0.0771088f, -0.656885f, -0.604422f, -0.0270905f, -0.319741f, 0.0413747f, 0.205865f, -0.157557f, 0.20142f, 0.0739973f, -0.202374f, 0.182571f, 0.125495f, -0.358981f, 0.347608f, 0.120924f, 0.297148f, -0.209438f, -0.130999f, 0.289417f, -0.0272582f, 0.297316f, 0.00982058f, -0.0579106f, 0.138692f, 0.114156f, -0.473807f, -0.122035f, 0.442049f, -0.198079f, -0.262147f, 0.317284f, 0.0710323f, -0.58181f, 0.183706f, 0.287913f, 0.489588f, -0.727535f, -0.253829f, -0.134941f, 0.0686071f, 0.407758f, -0.386223f, -0.194309f, -0.784921f, -0.883296f, -0.503808f, -0.523626f, -0.467586f, 0.394829f, 0.209305f, 0.348011f, -0.0472632f, 0.35137f, 0.255519f, -0.481423f, -0.350921f, -0.890102f, -0.25589f, 0.501613f, -0.583939f, -0.625298f, 0.0170016f, -1.20323f, 0.235603f, -0.0938557f, 0.0682872f, 0.417151f, 0.874886f, 0.209409f, -0.350934f, -1.52988f, -0.319489f, 0.252675f, 0.0163845f, -0.014077f, 0.52858f, -0.331857f, -0.384076f, 0.435026f, -0.702681f, -0.450906f, -0.289385f, 0.468552f, -0.236413f, -0.272462f, -0.177053f, -0.181411f, -0.877142f, -0.523707f, -0.191871f, 0.123453f, -0.0973767f, -0.328066f, 0.455483f, 0.018019f, -0.491974f, -0.0457672f, 0.58567f, -0.106745f, 0.234218f, 0.592343f, -0.215221f, -0.146446f, -0.393353f, 0.0845755f, -0.366009f, 0.325779f, 0.672865f, -0.387826f, 0.0140082f, 0.454678f, -0.438467f, -0.0146397f, 0.323818f, 0.754958f, -0.583166f, -0.0151241f, 0.169896f, -0.128034f, -0.381487f, 0.357348f, -0.0903463f, -0.116242f, -0.51201f, 0.423486f, -0.246135f, 0.207541f, 0.058506f, 0.0181061f, -0.201398f, -0.424677f, -0.104462f, 0.315356f, -0.597712f, 0.312445f, 0.365031f, -0.356414f, 0.603145f, 0.290863f, -1.23732f, 0.348647f, -0.480384f, -0.380007f, -0.739251f, -0.925275f, -0.55773f, 0.262f, 0.39758f, -0.209963f, 0.337f, 0.210139f, 0.320922f, -0.00135561f, 0.203178f, 0.594246f, 0.297506f, 1.22421f, -0.202764f, 0.686579f, 0.407985f, -0.49276f, -0.0310518f, 0.502615f, -0.111716f, -0.746803f, 0.217349f, 0.128753f, -0.0534051f, -0.129357f, -0.268486f, -0.0177429f, -0.576835f, 0.123788f, 0.207148f, 0.580506f, -0.136147f, -0.265628f, -0.112123f, 0.261872f, 0.83822f, -0.183653f, 0.537403f, 0.0780292f, 0.120084f, 0.312278f, 0.194348f, -0.348175f, 0.379561f, 0.00304798f, -0.0675815f, 0.397694f, -0.253529f, -0.202054f, 0.208446f, -0.0691356f, -0.448234f, -0.542895f, -0.0608923f, -0.0816173f, 0.719231f, 0.709942f, -0.290989f, -0.298723f, 0.238037f, -0.476195f, -0.659046f, 0.0458634f, 0.0769501f, -0.514663f, 0.503199f, -0.23664f, 0.242568f, 0.523247f, -0.237217f, -0.355048f, -0.208287f, 0.455394f, 0.278909f, 0.0679524f, 0.262186f, 0.251205f, 0.268933f, 0.124092f, 0.280005f, -0.245157f, -0.627963f, 0.490829f, 0.155191f, 0.588743f, -0.275678f, 0.496014f, -0.142913f, 0.0427233f, -0.508301f, -0.106302f, 0.635352f, -0.418643f, 0.296586f, 0.117892f, -0.489961f, -0.377815f, 0.00515962f, 0.0214661f, 0.170458f, 0.239799f, 0.189391f, -0.291555f, -0.691984f, 0.192272f, -0.261613f, -0.533328f, -0.0399991f, -0.267117f, -0.888026f, 0.0970475f, 0.496815f, 0.369546f, -0.185978f, -1.273f, 0.494725f, 0.263929f, 0.267131f, 0.170038f, 0.151741f, 0.0443488f, -0.112216f, 0.488791f, -0.559816f, -0.516288f, -0.413681f, -0.102365f, 0.0936835f, -0.314291f, 0.189439f, -0.0068965f, 0.0919674f, 0.591694f, 0.297499f, -0.310589f, -0.334006f, 0.275126f, -0.163965f, -0.823688f, 0.306446f, -0.371319f, -0.0867433f, 0.360207f, 0.505795f, -0.753024f, -0.335437f, 0.245845f, 0.38797f, 0.0354519f, -0.300564f, -0.450447f, -0.73269f, 0.0563793f, -0.448483f, 0.0454994f, 0.426707f, -0.0471677f, -0.0956756f, -0.417522f, -0.551067f, 0.311091f, 0.701163f, 0.284595f, 0.359064f, 0.413587f, 0.427149f, -0.184122f, -0.282643f, 0.159131f, -0.197101f, 0.0164417f, -0.194541f, 0.237294f, 0.164777f, 0.282162f, 0.180037f, -0.293898f, -0.626362f, 0.106168f, 0.287652f, -0.0572241f, -0.0079378f, 0.192977f, 0.0289339f, 0.145125f, 0.107306f, -0.460683f, 0.591627f, -0.41787f, 0.319474f, 0.4416f, -0.151445f, 0.000510924f, -0.296513f, 0.257017f, 0.235698f, -0.107753f, -0.521403f, -0.577346f, 0.204939f, 0.389381f, -0.0693782f, -0.512037f, -0.161609f, -0.0698753f, 0.36357f, 0.511599f, 0.304613f, -0.219375f, 0.177276f, -0.466891f, 0.474447f, 0.363063f, -0.245011f, -0.185945f, -0.39641f, -0.682565f, -0.373458f, 0.417891f, 0.447792f, -0.702749f, -0.31978f, -0.287041f, -0.14241f, 0.343063f, 0.0686974f, 0.83276f, 0.486227f, -0.24587f, 0.466556f, -0.362078f, -0.387159f, 0.0751774f, 0.0238287f, -0.136881f, 0.049597f, 0.147923f, -0.246335f, -0.684058f, 0.685558f, 0.614049f, -0.833526f, -0.298629f, -0.320924f, 0.570208f, -0.298971f, 0.213622f, 0.722918f, -0.382636f, 0.282185f, -0.584268f, -0.330018f, 0.254765f, -0.476211f, -0.45157f, -0.27301f, 0.278082f, -0.0824805f, 0.240892f, 0.285216f, -0.169933f, -0.558649f, -0.0106294f, 0.441798f, 0.362046f, -0.0234077f, 0.336997f, 0.444736f, 0.483053f, -0.467628f, 0.738605f, 0.349267f, -0.517043f, 0.328625f, -0.0444833f, -0.147803f, 0.357822f, 0.430387f, -0.130928f, 0.207117f, -0.142205f, -0.427899f, 0.447591f, -0.205128f, 0.166816f, -0.0533599f, 0.664615f, 0.486955f, -0.133336f, 0.17734f, 0.289404f, 0.284984f, -0.250497f, 0.401481f, -0.60177f, 0.094099f, 0.410607f, -0.0985098f, -0.119448f, 0.30604f, 0.620077f, 0.19492f, -1.04747f, -0.321613f, -0.229341f, 0.317273f, -0.486968f, -0.269907f, 0.112753f, 0.290678f, 0.343753f, 0.33094f, 0.279516f, -0.385791f, -0.426854f, 0.405929f, -0.107013f, 0.058309f, -0.716138f, 0.109606f, 0.419565f, 0.190294f, -0.0697917f, 0.221058f, -0.892747f, 0.566996f, 0.492539f, 0.415887f, -0.507608f, 0.378102f, -0.527869f, 0.591827f, 0.31991f, -0.355664f, 0.482923f, 0.421373f, -0.647305f, -0.444675f, -0.0192626f, -0.395639f, -0.141635f, -0.221086f, -0.494469f, -0.266699f, 0.474854f, -0.33933f, -0.63812f, 0.253764f, -0.147953f, 0.323255f, 0.635895f, -0.623815f, -0.38106f, 0.165036f, 0.868031f, -0.0269162f, 0.432662f, -0.185389f, -0.495309f, 0.294331f, 0.874874f, -0.00586187f, 0.255735f, -0.536593f, -0.117957f, 0.377726f, 0.663054f, 0.851108f, 0.00426007f, -0.283435f, 0.252157f, 0.346038f, 0.453359f, 0.233142f, 0.0146662f, 0.0958639f, -0.199732f, -0.347926f, 0.340249f, 0.374625f, 0.386244f, 0.130617f, -0.244714f, -0.0372618f, -0.0817906f, -0.735348f, 0.424626f, 0.234294f, 0.454821f, 0.265538f, 0.180576f, -0.634675f, 0.260027f, -0.0750361f, -0.184737f, 0.258438f, -0.230155f, -0.21351f, 0.26287f, 0.104015f, -0.330617f, -0.547792f, 0.117079f, -0.133192f, -0.272253f, -0.232177f, -0.198713f, -0.0085995f, 0.532946f, -0.164824f, -0.149476f, 0.193047f, -0.192698f, -0.351578f, -0.413908f, -0.61978f, -0.115159f, 0.464364f, 0.352461f, -0.304992f, -0.0344311f, 0.0799772f, -0.320513f, -0.0263528f, 0.135419f, -0.147521f, 0.358647f, 0.0730068f, -0.079573f, 0.250071f, 0.219443f, 0.11923f, -0.106511f, 0.396784f, 0.295005f, -0.135609f, 0.348771f, -0.23499f, 0.684968f, -0.265426f, -0.0398214f, 0.307902f, -0.140235f, -0.0959005f, -0.223349f, 0.309798f, -0.426475f, 0.124432f, -0.249449f, -0.0599369f, 0.423538f, 0.311331f, -0.114655f, -0.116706f, -0.819937f, -0.474292f, 0.054289f, 0.0215138f, -0.528222f, -0.0757207f, -0.077936f, 0.394151f, 0.196156f, 0.267503f, -0.038763f, 0.873804f, -0.233369f, 0.163542f, -0.0368961f, -0.231053f, -0.295993f, -0.144837f, -0.361852f, 0.122099f, 0.373636f, 0.0396199f, -0.541888f, -0.0895688f, 0.0691882f, -0.100818f, 0.101543f, 0.695468f, 0.20973f, 0.0412029f, -0.415797f, 0.27753f, -0.033782f, -0.165342f, -0.168072f, -0.0411244f, -0.297802f, -0.437784f, 0.0122954f, -0.183002f, -0.346861f, 0.188987f, 0.566821f, -0.462526f, 0.169156f, -0.0230011f, -0.347533f, -0.0825414f, 0.0858041f, 0.0816912f, 0.168711f, 0.0958019f, -0.235489f, 0.101598f, 0.368084f, -0.152826f, 0.090415f, 0.331194f, 0.683813f, -0.422855f, -0.0714598f, 0.0145364f, -0.229262f, -0.410765f, -0.343377f, 0.00662536f, 0.00445504f, 0.0190222f, -0.0260757f, -0.195153f, -0.328504f, -0.150611f, -0.0682899f, 0.0706694f, -0.243683f, 0.147197f, 0.0516989f, -0.344566f, 0.0869049f, -0.0274221f, 0.394953f, -0.349753f, -0.15874f, -0.054873f, 0.15663f, -0.277842f, -0.0795349f, -1.25915f, -0.0488831f, 0.350741f, -0.280551f, 0.310576f, 0.326159f, -0.313865f, -0.136379f, 0.0593815f, -0.0914581f, 0.474847f, 0.397999f, 0.41217f, -0.126151f, 0.150896f, -0.659995f, -0.0872846f, -0.805627f, -0.352984f, -0.685241f, 0.251363f, -0.352388f, -0.097203f, 0.574006f, 0.42094f, 0.390694f, -0.0154113f, 0.441489f, -0.00218967f, 0.0154924f, -0.131314f, -0.628982f, 0.589131f, 0.119361f, 0.393015f, -0.158569f, 0.159632f, 0.0118823f, 0.478793f, -0.0151551f, 0.263978f, 0.89767f, -0.410502f, -0.40491f, 0.311519f, -0.367655f, 0.0169983f, 0.316775f, 0.343985f, 0.677277f, 0.268371f, -0.183537f, 0.287716f, -0.425646f, -0.105443f, 0.106672f, 0.102559f, 0.0672446f, 0.0680765f, 0.320394f, -0.0442105f, -0.31673f, -0.0451885f, 0.020198f, -0.0413827f, 0.924041f, -0.0743757f, -0.0193241f, -0.000791183f, 0.557009f, 0.515992f, 0.183158f, 0.18089f, 0.604694f, 0.52851f, 0.534599f, -0.369708f, 0.416954f, -0.0694378f, -0.282321f, 0.435959f, 0.492336f, 0.152354f, -1.06745f, -0.390163f, 0.195539f, 0.0939266f, 0.0777782f, -0.107164f, -0.0737659f, -0.247771f, 0.0627157f, -0.18513f, 0.185318f, -0.174318f, -0.0419082f, 0.331512f, 0.152859f, 0.23797f, -0.477628f, -0.5675f, -0.242439f, 0.00912527f, 0.0838354f, 0.191244f, 0.574798f, 0.00150533f, -0.138359f, -0.390646f, -0.26112f, 0.287543f, -0.0416727f, -0.28693f, -0.00250591f, -0.399128f, -0.298891f, -0.11205f, 0.278782f, 0.432081f, -0.597206f, -0.290583f, -0.333623f, 0.231009f, 0.331836f, -0.221313f, -0.333463f, -0.312468f, -0.178513f, -0.517869f, 0.09102f, -0.364615f, 0.395266f, 0.218189f, 0.0466838f, -0.0246023f, 0.38185f, 0.314399f, -0.229715f, -0.214549f, 0.0328522f, -0.501574f, 0.329837f, -0.278157f, 0.226299f, 0.0388062f, 0.141922f, 0.357031f, -0.227712f, 0.494431f, 0.492322f, -0.465631f, 0.286291f, -0.197484f, -0.530942f, -0.294997f, 0.138695f, 0.229369f, -0.261279f, 0.464707f, -0.481987f, 0.918446f, 0.440349f, 0.328018f, -0.0367362f, -0.356401f, 0.167913f, 0.0362238f, -0.24042f, -0.354509f, -0.422158f, -0.475327f, -0.982861f, -0.0370437f, -0.376175f, -0.443604f, -0.0921708f, -0.146846f, 0.590997f, 0.13147f, -0.133133f, 0.171845f, -0.276833f, 0.599237f, 0.552983f, -0.403315f, -0.141627f, -0.300105f, -0.415139f, -0.347048f, 0.458623f, 0.369696f, -0.500853f, 0.48314f, 0.422414f, -0.0927874f, 0.330846f, -0.130882f, 0.764133f, 0.0161238f, -0.260933f, 0.0458182f, -0.0974341f, -0.269865f, 0.002236f, -0.0485753f, -0.231014f, -0.31729f, 0.22853f, -0.255317f, -0.348309f, 0.410431f, 0.678568f, -0.0703291f, -0.185191f, 0.226945f, 0.627068f, -0.368222f, 0.158838f, 0.749211f, -0.23939f, 0.0816197f, -0.682591f, -0.273638f, 0.286925f, -0.366501f, -0.332059f, -0.259857f, 0.0748254f, -0.153607f, 0.329619f, 0.602949f, -0.314005f, 0.0433747f, -0.522954f, 0.342157f, 0.440552f, -0.0154979f, 0.449894f, 0.388019f, 0.379465f, -0.333659f, 0.653634f, 0.352828f, -0.22033f, 0.293396f, 0.492026f, -0.039334f, -0.465969f, 0.409321f, 0.413606f, 0.0529617f, -0.0784931f, -0.352433f, 0.663441f, -0.150052f, 0.16973f, -0.146832f, 0.682286f, -0.53093f, -0.451654f, 0.0890235f, 0.035876f, 0.301633f, -0.321845f, -0.135431f, -0.298317f, 0.152599f, 0.542188f, 0.000584146f, -0.402341f, 0.168848f, 0.327178f, -1.07945f, 0.230757f, -0.548071f, -0.067232f, 0.217338f, -0.249965f, -0.186744f, 0.0893824f, -0.48183f, 0.461619f, 0.171785f, -0.00105265f, -0.319314f, -0.333689f, -0.0331762f, -0.275127f, -0.542175f, -0.32516f, 0.2379f, 0.212708f, -0.525545f, 0.100505f, 0.158744f, 0.386757f, 0.504002f, 0.0127335f, 0.424901f, 0.43972f, 0.473863f, -0.917212f, 0.63646f, 0.333404f, 0.280221f, 0.844988f, 0.309493f, -0.537074f, -0.522934f, 0.386649f, -0.226615f, -0.293103f, -0.476202f, 0.367038f, -0.51469f, 0.513988f, -0.301544f, -0.128938f, 0.353268f, -0.220982f, 0.234862f, 0.806346f, -0.327725f, -0.316438f, 0.378615f, 0.939783f, 0.287824f, 0.362016f, -0.0801785f, -0.291365f, 0.129365f, 0.434955f, -0.406545f, 0.10262f, -0.366053f, -0.387907f, -0.360194f, 0.275444f, 0.708105f, -0.275367f, 0.0657389f, 0.155826f, 0.386255f, 0.443606f, 0.381738f, -0.120444f, -0.329459f, 0.30956f, -0.314112f, 0.0675867f, 0.124573f, -0.381015f, -0.436792f, -0.282358f, -0.777928f, -1.10983f, -0.305063f, -0.200167f, 0.403258f, 0.577057f, 0.0887346f, -0.446708f, -0.312951f, 0.25244f, -0.0787457f, -0.678425f, 0.15203f, -0.0136721f, -0.33034f, 0.505529f, 0.0166564f, -0.623193f, -0.0605635f, 0.508974f, 0.451334f, -0.142323f, -0.508638f, -0.337917f, -0.565651f, 0.348018f, -0.442688f, 0.00498733f, 0.347301f, 0.199848f, -0.520968f, -0.218368f, -0.295529f, 0.640534f, -0.97495f, 0.147588f, -0.843711f, 0.580055f, 0.310703f, 0.076338f, -0.257719f, -0.288996f, -0.398513f, -0.0190666f, -0.48884f, 0.439871f, 0.571852f, 0.232105f, 0.438396f, -0.217438f, -0.756529f, 0.283229f, 0.46651f, -0.450597f, -0.364917f, 0.265767f, -0.0872929f, -0.324304f, 0.206145f, -0.314037f, 0.493821f, -0.302084f, 0.716557f, 0.558536f, -1.08749f, -0.183815f, -0.420374f, -0.00209701f, 0.584925f, -0.54016f, -0.445813f, -0.160983f, 0.159897f, 0.280479f, -0.351876f, -0.580667f, 0.179402f, -0.672562f, 0.299103f, 0.742569f, 0.4133f, 0.201809f, 0.275369f, -0.46788f, -0.607101f, 0.666976f, -0.347742f, -0.245921f, 0.0266414f, -0.0744779f, -0.304282f, 0.135476f, 0.774557f, -0.333907f, 0.492455f, -0.421841f, -0.356508f, 0.524913f, 0.531382f, 0.721047f, -0.0709106f, -0.110413f, -0.192148f, -0.135676f, -0.413784f, -0.542117f, -0.988202f, -0.0568337f, 0.113418f, 0.457475f, -0.303845f, -0.19091f, 0.325324f, 0.489818f, -0.118417f, -0.612098f, -1.96557f, 0.572772f, -0.548234f, 0.268022f, 0.487776f, -0.529572f, 0.455767f, -0.5065f, -0.0923819f, 0.136805f, -0.347563f, -0.587915f, -0.477469f, 0.342246f, -0.483253f, 0.465903f, 0.164142f, 0.0456683f, 0.0751305f, -0.0548101f, 0.578385f, 0.37565f, -0.71613f, 0.100887f, 0.433818f, 0.480385f, -0.28512f, -0.248334f, 0.359955f, 0.213999f, 0.334976f, 0.619f, 0.078329f, 0.0682168f, 0.223394f, -1.44599f, 0.560948f, -0.42574f, -0.131136f, 0.334085f, 0.0953441f, 0.496571f, 0.098984f, 0.702781f, 0.334427f, -0.161809f, 0.465042f, 0.30334f, 0.269606f, -0.190014f, -0.164743f, -0.911021f, 0.35693f, 0.84492f, -0.72095f, -0.493029f, 0.213562f, -0.43882f, 0.0861252f, -0.120502f, -0.108387f, -0.405531f, 0.296745f, -0.227352f, -0.177779f, 0.353126f, 0.319108f, 0.518896f, 0.0678382f, 0.178845f, -0.746754f, 0.183349f, 0.484585f, 0.137614f, 0.434371f, -0.857267f, 0.306288f, 0.409662f, 0.698081f, -0.593976f, 0.445879f, 0.509344f, 0.380345f, -0.577787f, -0.880695f, -0.512449f, 0.320521f, 0.02419f, 0.61694f, 0.512716f, 0.598198f, 0.445239f, 0.173841f, -0.764185f, -0.704966f, -0.585418f, -0.0527982f, -0.307089f, -0.411287f, -0.489087f, -0.166577f, 0.4596f, -0.210193f, -0.34088f, 0.425077f, -0.0379874f, 0.519145f, 0.563041f, -0.331036f, -0.275483f, -0.655757f, 0.398409f, 0.667285f, 0.445515f, -0.820241f, -0.45353f, 0.308196f, -0.99734f, -0.294409f, 0.346829f, -0.451895f, -0.795142f, -0.0511266f, -0.107286f, -0.154059f, 0.346707f, -0.0845256f, 0.0391692f, 0.347465f, 0.271567f, 0.398179f, -0.0316902f, -0.570784f, 0.864692f, -0.581542f, 0.531353f, 0.443992f, 0.217736f, 0.705419f, -0.531833f, 0.233822f, 0.596461f, -0.300839f, 0.299358f, 0.432538f, 0.678099f, 0.178463f, 0.41265f, -0.464257f, 0.628287f, 0.136917f, -0.116851f, 0.591243f, -0.6497f, -0.589883f, 0.253878f, -0.206552f, -0.300106f, -0.436572f, 0.358151f, -0.30087f, 0.0741844f, -0.133629f, 0.0734079f, 0.309023f, -0.31858f, -0.330816f, -0.491164f, -0.185619f, 0.0477906f, 0.102383f, -0.275384f, -0.144486f, -0.116014f, -0.094743f, 0.16468f, 0.00824189f, 0.192893f, 0.180182f, -0.0374888f, -0.334105f, 0.0964284f, -0.362218f, 0.250041f, -0.0907593f, 0.379193f, 0.53907f, -0.185023f, 0.22417f, -0.802062f, 0.115863f, 0.160576f, -0.00339825f, -0.49276f, -0.172174f, 0.500552f, -0.0207371f, -0.970855f, -0.117337f, -0.38892f, 0.0990167f, -0.495046f, 0.31771f, 0.312408f, -0.000407688f, -0.585845f, -0.282656f, -0.136133f, 0.265468f, -0.481894f, -0.477013f, 0.14466f, 0.717022f, 0.183071f, -0.735398f, -0.136935f, -0.719801f, -0.29953f, 0.249766f, -0.0110162f, 0.285124f, 0.077133f, 0.808596f, -0.448734f, 0.510237f, 0.38693f, -0.129041f, -0.458999f, 0.0185829f, -0.12189f, -0.266424f, 0.285585f, 0.110139f, -0.319555f, 0.655882f, -0.534353f, -0.0848718f, 0.419384f, 0.318302f, 0.0163499f, 0.0373466f, -0.549442f, 0.17553f, -0.0221397f, -0.24192f, -0.916088f, -0.304531f, -0.581433f, 0.0304764f, 0.239215f, -0.0925164f, -0.466268f, 0.378297f, -0.131788f, -0.0244173f, -0.141029f, -0.493859f, 0.120541f, -0.130281f, 0.191682f, 0.0499562f, 0.0387449f, 0.0573297f, -0.222652f, 0.0243462f, -0.00673447f, -0.125307f, -0.0958154f, 0.130999f, 0.516754f, -0.0796003f, 0.200398f, 0.114443f, -0.00693852f, -0.128189f, -0.0793437f, 0.135334f, 0.294696f, -0.852946f, 0.0276752f, 0.334047f, -0.0192718f, -0.157855f, -0.258005f, 0.0512356f, -0.116596f, 0.207956f, 0.105078f, 0.127174f, 0.62152f, 0.531852f, -0.654424f, -0.77393f, -0.884332f, -0.396202f, 0.368097f, 0.0321f, 0.205717f, 0.115985f, 0.00618104f, 0.0671344f, -0.845518f, 0.538342f, 0.15833f, -0.967178f, -0.431731f, -0.586238f, 0.0832515f, 0.179131f, -0.245743f, -0.0332011f, -0.171913f, 0.171773f, -0.00721768f, -0.059507f, -0.0616651f, -0.376146f, -0.168347f, 0.345351f, -0.255941f, -0.262391f, 0.19388f, 0.186394f, 0.322809f, 0.0325143f, 0.424184f, -0.35143f, -0.222107f, 0.150236f, 0.492884f, 0.0464353f, -0.257465f, 0.479298f, 0.0364896f, 0.176826f, -0.252383f, 0.41896f, -0.0680623f, 0.164341f, -0.426261f, -0.222705f, 0.245079f, 0.358465f, -0.246757f, -0.223973f, 0.166328f, 0.282368f, 0.455028f, 0.367856f, -0.347886f, -0.409378f, -0.362854f, 0.283562f, 0.169756f, -0.193617f, 0.00312812f, -0.495832f, 0.352697f, -0.183691f, -0.551904f, 0.107424f, -0.583319f, 0.256329f, 0.107989f, -0.0331182f, -0.269719f, -0.877305f, 0.770568f, 0.0217897f, 0.191136f, -0.171633f, 0.253218f, 0.404315f, -0.788884f, 0.0112146f, 0.745102f, -0.138125f, -0.633483f, 0.504864f, 0.0741772f, 0.00743548f, -0.558327f, 0.0308562f, -0.0460712f, 0.156505f, 0.412151f, 0.253912f, -0.405737f, -0.417017f, 0.287808f, -0.60025f, -0.0854479f, 0.060658f, 0.251385f, 0.191479f, -0.17089f, 0.184903f, 0.144427f, -0.323747f, -0.253991f, 0.692197f, 0.180504f, 0.718203f, 0.339426f, 0.0880803f, 0.1821f, -0.0226106f, 0.239636f, 0.297463f, -0.329112f, -0.252176f, 0.129749f, -0.689667f, -0.0406387f, -0.705156f, 0.487122f, 0.339248f, -0.480679f, -0.250687f, -0.485937f, 0.350601f, -0.494732f, -0.243734f, -0.268831f, -0.410827f, 0.0092456f, -0.180332f, -0.231252f, -0.117829f, 0.683444f, 0.239322f, 0.246556f, -0.131343f, 0.491822f, 0.123562f, 0.192736f, -0.340809f, -0.644343f, -0.290442f, -0.0756787f, -0.324289f, 0.507526f, 0.411936f, -0.177079f, 0.402165f, -0.267137f, 0.24193f, 0.360351f, -0.246662f, -0.571923f, -0.702905f, 0.226792f, -0.139328f, 0.22413f, -0.227143f, -0.709298f, 0.51886f, -0.612136f, 0.625465f, 0.465218f, 0.00702443f, -0.426036f, -0.411896f, 0.0610381f, 0.629113f, -0.477653f, -0.0435138f, 0.14425f, 0.974669f, 0.116439f, -0.242099f, -0.453082f, -0.592571f, -0.606518f, -0.0694814f, 0.49124f, 0.435993f, 0.0573165f, -0.0463377f, -0.0815331f, 0.171534f, 0.523446f, -0.45542f, -0.224177f, -0.237075f, -0.0303856f, -0.281409f, 0.161822f, 0.640442f, -0.188442f, 0.582021f, 0.188833f, -0.441974f, 0.401265f, -0.256714f, 1.07948f, 0.0952702f, -0.205754f, 0.38561f, -0.0153532f, -0.324404f, -0.201656f, -0.49744f, -0.622206f, -0.614933f, 0.466828f, -0.407296f, -0.0402541f, 0.226478f, 1.38546f, -0.195908f, -0.377207f, -0.465495f, 0.64496f, -0.696121f, 0.368228f, 0.487155f, -0.675746f, 0.369155f, -0.135017f, 0.201887f, 0.196515f, -0.211104f, -0.528813f, -0.573743f, -0.658933f, -0.210996f, 0.374055f, -0.342353f, -0.112863f, 0.436295f, -0.537892f, 0.773281f, 0.319618f, -0.607668f, 0.125097f, 0.452643f, 0.3964f, -0.45951f, 0.0684969f, 0.331722f, 0.0313258f, 0.232967f, 0.433636f, 0.0453946f, 0.696013f, 0.305709f, -0.00556975f, -1.04627f, -0.182575f, -0.312805f, 0.289384f, -0.209719f, 0.498444f, -0.0556132f, 0.618527f, -0.489828f, -0.27455f, 0.454784f, 0.38062f, -0.053773f, -0.197319f, -0.0958428f, 0.0976471f, 0.391348f, 0.691822f, -0.928015f, -0.180371f, 0.28998f, 0.53853f, -0.928278f, 0.152375f, -0.0323293f, -0.235519f, 0.242977f, -0.253792f, 0.0648444f, 0.273537f, -1.09638f, 0.494502f, 0.260978f, -0.119055f, -0.505667f, -0.420982f, 0.721884f, 0.342437f, -0.584703f, -0.316703f, 0.314904f, 0.482382f, 0.800729f, -0.197054f, 0.318495f, 0.472762f, 0.660303f, -0.34121f, 0.682947f, 0.423539f, 0.360519f, -0.127974f, 0.336235f, 0.454418f, 0.123031f, -0.421285f, 0.257301f, -0.147292f, -0.372451f, -0.217667f, -0.770868f, 0.173788f, -0.292246f, 0.37707f, -0.51294f, 0.246741f, -0.250596f, -0.102101f, 0.529798f, -0.168518f, 0.40385f, 0.731781f, -0.305084f, -0.329997f, -0.294573f, 0.45172f, 0.320347f, 0.444778f, -0.845154f, 0.503533f, 0.204295f, -0.625158f, -0.256043f, 0.172196f, -0.528596f, -0.1252f, -0.8008f, -0.00855475f, -0.116112f, 0.484289f, 0.114892f, -0.387584f, 0.476534f, 0.357803f, 0.321582f, -0.794938f, -0.401772f, 0.636876f, -0.310624f, 0.42546f, 0.680463f, 0.216965f, -0.74392f, -0.922457f, -0.699813f, -0.129799f, -0.16734f, -0.859169f, 0.328387f, 0.688874f, 0.669709f, -0.228886f, -0.469983f, 0.728589f, 0.27625f, -0.0885543f, 0.415512f, -0.284111f, -0.807751f, 0.0895664f, -0.474001f};
+ model->setOperandValue(op23, op23_init, sizeof(float) * 2304);
+ static float op25_init[] = {0.059552f, -0.776265f, 0.586331f, -0.19955f, -1.15878f, -0.623411f, 0.482733f, 0.620705f, -1.42987f, 0.599004f, 0.296987f, 0.243854f, -0.326452f, -1.66933f, 0.114657f, -0.912619f, -1.40799f, 0.873297f, -2.02128f, 0.349338f, 1.03578f, -0.584717f, 0.68394f, 0.12814f, 0.766933f, -0.348055f, 0.426793f, -0.0519259f, -0.31104f, -0.70917f, -1.98005f, 0.466914f, -1.22813f, 0.922352f, 0.803956f, -0.758258f, -0.0178442f, 0.159704f, -0.693864f, 0.541313f, -0.61248f, 0.140332f, -0.732719f, -0.061292f, -1.21815f, -1.36358f, 1.55065f, -0.867879f, -0.118565f, -1.429f, -0.24872f, 0.756503f, -0.276562f, 1.01472f, 0.613279f, 0.252628f, -0.154586f, 0.213353f, -0.259666f, -0.0845054f, 1.48898f, -0.78227f, 0.475328f, -0.149806f, -0.126194f, -0.504444f, -0.156527f, -0.485018f, -0.398986f, -0.390188f, 0.805819f, 1.24142f, 1.92392f, -0.0204732f, -0.34912f, -0.821812f, 0.714334f, 1.01406f, -0.827258f, 1.56897f, 0.435821f, 0.00175438f, -0.196037f, -1.00622f, -0.934045f, -0.814433f, -0.00923873f, 0.67536f, -0.183227f, 0.118676f, 1.29346f, -0.292178f, -0.172461f, 0.696343f, -0.603604f, -0.135618f, 0.911071f, 0.863372f, 1.14968f, 0.495017f, 0.525449f, 0.94923f, -0.203282f, -1.86435f, 0.334763f, -0.803913f, -0.151671f, 0.61989f, -0.661122f, 0.621632f, -0.835182f, 0.0620014f, 0.110495f, 0.10499f, 0.867545f, -0.117217f, -0.450633f, 0.805698f, 0.270723f, 0.080994f, -0.234987f, -0.834794f, 0.946942f, -0.149305f, -0.994457f, 0.0162253f, -0.229257f, 0.749062f, -0.160174f, -0.192936f, -0.562147f, -0.481395f, 0.0400992f, 0.707402f, 1.25304f, 0.0850877f, -0.387467f, -0.719366f, 0.425257f, 0.663763f, -0.312089f, 0.084609f, -0.127238f, 0.0892191f, 0.452648f, -0.180974f, 0.200651f, -1.02692f, 0.723075f, -0.819408f, 0.61707f, 0.638342f, -1.42357f, 0.182241f, -1.5596f, -0.504548f, 0.99742f, 2.21562f, -0.450749f, 0.899844f, -0.779047f, -0.0130739f, 0.932655f, -0.301747f, -0.302013f, 1.12503f, -1.0337f, 0.157642f, -0.390012f, -0.439374f, 0.319801f, -0.420911f, 0.207037f, -0.415911f, 0.133631f, 0.65813f, -0.103256f, 1.28002f, -0.722025f, 0.198662f, 0.668599f, -0.573971f, -0.503427f, 0.327037f, 0.382418f, 0.452662f, -0.326031f, -0.109258f, 0.634596f, -0.626296f, -0.882987f, -0.975486f, -0.198001f, -0.736511f, -0.401334f, 0.675054f, -0.0783199f, 0.820609f, -0.213448f, -0.517507f, 0.424629f, 0.708728f, 0.375385f, -0.204245f, 1.46808f, 1.40466f, -0.615909f, -0.109114f, 1.3006f, -0.314086f, -0.640962f, 0.597668f, -1.2886f, -0.942914f, -0.615433f, -0.267436f, -0.234165f, 0.180395f, -0.505358f, 0.389795f, -0.418978f, 0.16119f, 0.701265f, 1.801f, 0.797389f, 1.04949f, 0.470902f, 0.794846f, 1.20815f, 0.639917f, 0.1663f, 0.715599f, 0.227951f, -1.18309f, 0.619096f, 0.799573f, 0.666824f, -0.205099f, -0.0918158f, 0.922449f, -0.674654f, 0.607058f, -1.33098f, 0.303168f, -0.158435f, 0.493879f, 0.64636f, 0.76502f, 0.398199f, -0.708121f, 0.245043f, -0.573639f, 1.09403f, 0.477721f, -0.794756f, 0.0482809f};
+ model->setOperandValue(op25, op25_init, sizeof(float) * 256);
+ static float op26_init[] = {0.00876338f, 0.159478f, 0.311471f, -0.00469625f, -0.242645f, -0.283327f, 0.117541f, 0.154311f, 0.016744f, 0.0241657f, 0.166488f, 0.0644902f, -0.0694389f, 0.0201139f, -0.0289717f, -0.113529f, -0.149222f, -0.0559651f, 0.0669082f, -0.0953956f, 0.115591f, -0.0932612f, 0.198847f, 0.258349f, 0.0286179f, 0.0536193f, -0.0161622f, 0.0876863f, 0.0223337f, -0.0558078f, -0.015007f, 0.0117489f, -0.123187f, -0.00973389f, -0.0112027f, -0.0269762f, 0.216264f, 0.0934549f, 0.0489395f, -0.0667397f, -0.048408f, -0.201219f, -0.051415f, 0.217466f, 0.00516112f, -0.0248904f, 0.0924763f, -0.0488527f, 0.02581f, -0.0741177f, 0.0257687f, 0.0631479f, -0.135362f, -0.0443659f, -0.112051f, -0.00969363f, 0.176092f, -0.160745f, 0.0324613f, 0.143151f, -0.281107f, 0.119342f, 0.0919042f, 0.0855942f, 0.0613969f, 0.0313948f, -0.0784912f, 0.270995f, -0.0791038f, 0.0612157f, 0.149409f, 0.0454657f, 0.206511f, -0.0189417f, 0.123541f, -0.0517153f, 0.0294248f, 0.111004f, 0.186126f, -0.135645f, -0.0811628f, -0.0798263f, 0.0706075f, -0.175273f, 0.173768f, 0.14998f, 0.138094f, 0.0740594f, 0.204021f, 0.0880566f, -0.139851f, -0.177713f, -0.0423176f, 0.0368738f, 0.0833688f, -0.0332293f, 0.266283f, -0.12446f, -0.272446f, 0.0747981f, -0.137697f, 0.0238475f, -0.0551994f, -0.0104084f, 0.134573f, -0.0983598f, 0.0826753f, -0.0760464f, -0.206143f, 0.03409f, 0.153575f, -0.0931692f, 0.128078f, -0.204306f, -0.0243301f, 0.164837f, -0.0402115f, -0.167248f, 0.0258381f, -0.0858297f, -0.0882213f, -0.0250546f, -0.0438364f, -0.0132724f, -0.0246596f, 0.200127f, 0.0307405f, -0.169237f, 0.0827933f, -0.0836252f, 0.0653367f, 0.0873026f, -0.0222144f, 0.163728f, -0.0919097f, 0.0278681f, 0.0965614f, -0.188887f, 0.231546f, 0.135525f, 0.0622755f, 0.0741135f, 0.22767f, 0.130422f, 0.0304746f, 0.0694859f, -0.210291f, -0.11043f, -0.233902f, -0.0784602f, -0.155348f, 0.016333f, -0.0206643f, 0.0427296f, 0.0238507f, -0.11085f, 0.0384003f, -0.0580579f, 0.186813f, 0.049836f, -0.12948f, -0.124773f, 0.17535f, -0.0860361f, 0.0401083f, -0.0891493f, -0.00699356f, -0.173003f, -0.0128182f, -0.202517f, -0.0820098f, 0.122637f, 0.17859f, 0.106333f, 0.0623388f, -0.173419f, -0.231867f, 0.207386f, -0.128314f, 0.0830676f, 0.168943f, -0.16992f, 0.0947031f, 0.156151f, 0.0470067f, -0.179337f, -0.025086f, -0.138531f, -0.0102241f, 0.179236f, 0.0613753f, -0.111747f, 0.0190405f, 0.0472922f, -0.0298265f, 0.242461f, 0.0606838f, -0.190629f, 0.0569852f, -0.0506247f, -0.0122446f, 0.00488097f, 0.011793f, 0.00413108f, -0.0100453f, -0.0393225f, -0.108041f, -0.105423f, 0.0817237f, -0.121646f, -0.134984f, -0.0706075f, 0.123754f, 0.037536f, 0.0315421f, -0.0168049f, -0.0360235f, -0.165986f, -0.0976946f, -0.0792321f, 0.00785608f, 0.0641992f, 0.145496f, -0.097555f, 0.149636f, 0.0787423f, -0.0974546f, -0.0579778f, -0.144506f, 0.143188f, -0.149776f, 0.0156335f, -0.0903146f, -0.0917537f, -0.0808573f, -0.0416986f, 0.0487195f, -0.118266f, 0.0489898f, 0.122683f, 0.000334909f, -0.0596077f, -0.138331f, 0.00820342f, -0.278814f, 0.078717f, 0.143128f, 0.0283292f, 0.0222995f, 0.0665451f, -0.290689f, 0.0607143f, 0.191095f, -0.105912f, 0.0540141f, -0.0986289f, -0.0190708f, 0.196634f, -0.126051f, -0.123402f, -0.0311565f, 0.00364957f, -0.103171f, -0.0656316f, 0.0876046f, 0.173918f, -0.121705f, 0.109689f, 0.106514f, -0.0118686f, -0.0102367f, 0.199663f, -0.0169068f, 0.00247418f, 0.0407632f, -0.0477548f, 0.178778f, 0.0247504f, 0.0478882f, 0.150284f, -0.0568678f, 0.210097f, -0.0419008f, 0.00926958f, 0.0957613f, -0.146762f, 0.0863339f, 0.0103325f, 0.0430991f, -0.0163946f, -0.00966456f, -0.047376f, -0.0544308f, -0.102422f, -0.0468923f, 0.0723415f, 0.00513594f, -0.0128337f, -0.0270461f, -0.0587901f, 0.0646151f, -0.0661235f, 0.0131495f, -0.177618f, -0.0965381f, 0.0563572f, 0.00688555f, -0.149936f, 0.0694426f, 0.0625473f, 0.160979f, -0.041036f, 0.0917761f, -0.177051f, -0.103242f, -0.0884674f, 0.0921553f, -0.044548f, -0.0227608f, -0.0859059f, -0.138163f, 0.0981193f, -0.189738f, 0.0790457f, -0.0319639f, -0.0758412f, 0.0412004f, 0.172268f, 0.0520706f, 0.0935804f, 0.0295314f, 0.316108f, -0.130182f, 0.0204448f, 0.00259741f, -0.16649f, 0.120354f, -0.01933f, -0.0700323f, 0.00480373f, -0.0991283f, -0.104685f, -0.0548443f, -0.00594553f, 0.0491485f, -0.00119124f, 0.0506484f, 0.0282869f, 0.000812223f, 0.112375f, 0.11252f, -0.0338051f, -0.0267828f, -0.0274123f, 0.14441f, 0.0424629f, 0.288732f, 0.0245412f, -0.0559521f, 0.117288f, 0.213071f, 0.0113282f, 0.0170604f, 0.155988f, 0.0743209f, 0.0811023f, 0.00700611f, 0.181108f, -0.0732687f, 0.0809446f, -0.0573415f, 0.058625f, 0.0296226f, 0.110352f, 0.0425075f, -0.0277771f, 0.0625209f, 0.117536f, 0.0537062f, 0.0279814f, -0.197759f, 0.0323441f, 0.116016f, 0.00117928f, 0.151057f, 0.243966f, 0.188221f, -0.17648f, 0.0177451f, -0.175784f, -0.0114454f, 0.0129515f, -0.0889886f, 0.030758f, 0.0518997f, -0.0406282f, 0.126934f, -0.105414f, -0.268707f, 0.123266f, -0.0750174f, -0.103859f, -0.100112f, -0.0781959f, 0.00830231f, 0.0501834f, -0.131227f, -0.0329252f, 0.0303431f, -0.172297f, 0.217693f, -0.0539472f, -0.0298653f, -0.0817272f, -0.0936054f, 0.0602272f, -0.157223f, 0.0257968f, 0.0368397f, 0.187442f, -0.115734f, -0.0150824f, 0.0843986f, -0.156232f, -0.145465f, 0.0637285f, 0.0731718f, -0.00559619f, -0.101056f, -0.212017f, -0.063749f, 0.0805047f, 0.0123866f, -0.145781f, 0.10744f, -0.101111f, -0.0820333f, -0.078065f, -0.0979577f, 0.111167f, -0.015162f, -0.1511f, 0.0107793f, -0.000253506f, 0.0313978f, 0.0436483f, 0.00799062f, 0.183408f, 0.125088f, 0.0614701f, -0.154023f, 0.00842366f, 0.157931f, 0.183613f, 0.111623f, -0.12329f, -0.041788f, 0.159551f, 0.0961508f, 0.176349f, -0.0482361f, -0.0661118f, 0.051589f, 0.103051f, 0.0676946f, -0.157157f, -0.010637f, -0.0261365f, -0.0397095f, -0.107986f, -0.0935349f, -0.00497239f, -0.0984972f, 0.0983307f, 0.00753335f, 0.0562289f, 0.0418401f, -0.0683057f, -0.0714867f, 0.00714209f, -0.0612449f, -0.00818821f, 0.12932f, 0.0713897f, 0.0267094f, 0.14234f, 0.0416287f, -0.150195f, -0.0593194f, 0.188388f, -0.116723f, 0.0722492f, 0.0992498f, -0.0097398f, 0.0919518f, 0.0617781f, 0.142179f, 0.191718f, -0.0370943f, -0.107436f, 0.00938994f, -0.130117f, -0.00429991f, -0.142642f, -0.0589068f, 0.19836f, 0.0255428f, 0.186587f, -0.123027f, -0.0445086f, 0.0616465f, -0.00637675f, 0.18734f, 0.0322932f, -0.0365847f, -0.106917f, -0.0648137f, 0.151699f, 0.0646674f, 0.170413f, 0.0547153f, -0.173326f, 0.0823022f, 0.0644477f, -0.0729474f, 0.18493f, -0.271069f, -0.0203812f, -0.0541209f, 0.239898f, -0.0468451f, 0.122137f, -0.240824f, -0.107874f, 0.0413674f, 0.0448064f, 0.139699f, 0.0379864f, -0.0667651f, 0.0517296f, 0.19184f, -0.121097f, 0.00751061f, 0.155873f, 0.0219463f, 0.111683f, -0.0472438f, 0.0507882f, 0.171449f, 0.188018f, -0.132961f, 0.121995f, -0.0615171f, 0.0720035f, 0.0769694f, -0.351642f, -0.263362f, -0.156185f, -0.00988459f, 0.0526734f, 0.123081f, -0.0312942f, 0.00655442f, 0.0926092f, -0.178945f, -0.176873f, 0.120517f, -0.0927009f, 0.0241223f, 0.0603685f, 0.182027f, -0.154118f, -0.16396f, 0.0330035f, 0.0518071f, -0.188037f, 0.0745682f, 0.33734f, -0.134735f, -0.0297512f, 0.155319f, -0.0853722f, 0.164151f, -0.021147f, 0.00137477f, -0.0280427f, -0.0498696f, -0.13882f, -0.0650066f, -0.0351934f, -0.0760493f, -0.176778f, -0.183492f, -0.281477f, -0.292906f, -0.0934788f, 0.0944894f, 0.0764749f, -0.130951f, 0.123597f, -0.0843116f, 0.0341695f, 0.106308f, 0.0591846f, -0.015793f, -0.0954553f, 0.140013f, -0.0759297f, -0.0939965f, -0.252329f, -0.264586f, -0.241676f, -0.0426781f, -0.170923f, 0.0300232f, -0.212001f, -0.224206f, 0.145909f, -0.0580224f, -0.0316785f, -0.0129059f, -0.0821434f, -0.0447792f, -0.00981876f, -0.0454857f, 0.0278988f, -0.0224932f, -0.226316f, -0.176577f, 0.0602501f, -0.00424351f, -0.136234f, -0.0355112f, -0.0307449f, -0.170993f, 0.27114f, 0.141306f, 0.0483288f, 0.222029f, 0.0578468f, -0.0173018f, 0.0378326f, -0.117461f, 0.0650939f, 0.0752418f, 0.00348855f, 0.0291712f, 0.0517731f, 0.220849f, 0.0678442f, 0.122048f, -0.110309f, -0.0240268f, -0.0662232f, 0.158087f, 0.0727303f, 0.0781811f, 0.179543f, -0.218654f, -0.21063f, -0.279802f, -0.102807f, -0.0724389f, -0.0127285f, -0.0269654f, -0.252245f, -0.192167f, 0.0877653f, -0.0688073f, -0.151571f, -0.0371786f, -0.0901437f, -0.227607f, 0.0453767f, 0.00525183f, -0.195646f, 0.209946f, -0.210125f, 0.110715f, -0.221634f, 0.043824f, 0.0571618f, 0.152856f, 0.160866f, 0.149944f, -0.192968f, 0.207793f, 0.279652f, 0.0716593f, 0.176805f, 0.0911199f, 0.0398614f, 0.00169279f, 0.118349f, 0.235613f, 0.174668f, -0.112384f, -0.0516797f, 0.132724f, 0.0978233f, -0.308494f, 0.0239577f, -0.0924207f, 0.0766718f, -0.0123622f, -0.0867404f, -0.280007f, -0.0516933f, -0.131719f, -0.0489877f, 0.242389f, -0.0664892f, 0.0224988f, -0.195589f, -0.150047f, 0.186367f, -0.0714219f, 0.0648816f, -0.060557f, 0.19992f, 0.0324061f, 0.151988f, 0.0667083f, -0.241566f, -0.0318491f, -0.0788045f, 0.0753478f, 0.0244048f, 0.113372f, 0.185301f, 0.0543623f, -0.228153f, -0.0454057f, 0.0431012f, -0.226567f, 0.138309f, -0.160669f, -0.0211285f, -0.0558124f, 0.0278002f, 0.254767f, 0.1323f, -0.18584f, 0.0386094f, -0.0470037f, -0.096806f, 0.0338607f, 0.15074f, 0.0843959f, 0.0634143f, -0.175737f, 0.164395f, 0.167004f, 0.108014f, 0.0601447f, -0.159115f, -0.00586082f, 0.184294f, 0.0400679f, -0.102506f, -0.031922f, 0.0026021f, 0.148978f, 0.159039f, 0.168574f, 0.044804f, 0.238808f, 0.0300665f, -0.171192f, 0.197537f, 0.00969514f, -0.021702f, -0.0540487f, -0.263572f, 0.0278074f, -0.162798f, 0.0143124f, 0.0195344f, -0.110315f, -0.0467159f, -0.0528445f, 0.13692f, -0.0208948f, 0.119802f, 0.315567f, 0.0476461f, -0.0451996f, 0.0539186f, -0.149284f, 0.00174745f, 0.064495f, -0.0614306f, -0.0430424f, 0.0141155f, 0.182455f, 0.191491f, -0.0612747f, 0.0185944f, -0.172597f, 0.00792694f, 0.125857f, 0.074427f, 0.137627f, -0.168539f, 0.052883f, -0.205142f, -0.0751598f, -0.0154265f, -0.0396369f, -0.0208509f, -0.173177f, -0.081266f, 0.101409f, -0.118516f, 0.0212394f, -0.0457845f, -0.0123048f, 0.0791221f, 0.106676f, 0.133509f, 0.206453f, 0.0984886f, -0.196701f, 0.144129f, 0.160702f, 0.116808f, 0.0541367f, -0.120949f, 0.0129943f, -0.105924f, 0.055401f, 0.0113691f, 0.197583f, 0.207278f, -0.0221139f, -0.0753408f, -0.210396f, -0.118933f, 0.123209f, 0.114247f, 0.0864884f, 0.0172599f, 0.140888f, 0.284553f, -0.104654f, -0.188186f, -0.142534f, -0.164113f, -0.120841f, -0.0999144f, -0.294431f, 0.0471226f, 0.189814f, 0.0170973f, 0.203388f, -0.194846f, -0.194346f, -0.0827989f, -0.202365f, 0.0295636f, -0.144839f, -0.101023f, 0.0738116f, 0.0854547f, -0.0879189f, 0.0702432f, 0.0428999f, -0.0148116f, -0.137132f, 0.232558f, 0.0599403f, 0.0603534f, 0.0565148f, 0.0558033f, 0.0849076f, 0.00826806f, -0.187999f, 0.0219025f, -0.210024f, 0.060372f, 0.0012221f, -0.0632743f, 0.079263f, 0.0212033f, -0.0153053f, -0.00923389f, 0.0724875f, -0.147205f, -0.0738639f, 0.0364575f, 0.105355f, 0.0173215f, 0.0584061f, 0.144262f, 0.0906748f, 0.133768f, -0.0639036f, 0.164168f, -0.0364941f, 0.124886f, 0.0874728f, 0.0114059f, -0.0929169f, 0.0676943f, 0.0286698f, -0.213594f, -0.13381f, 0.0882472f, 0.0481514f, -0.133195f, 0.0651088f, 0.0343473f, 0.133647f, -0.0933962f, -0.0663552f, 0.22052f, -0.0898525f, -0.0443377f, 0.0735575f, -0.11522f, -0.0765058f, -0.0134652f, -0.137649f, -0.119297f, 0.11545f, 0.117863f, -0.106025f, -0.00526116f, 0.0562862f, -0.0325628f, -0.185029f, -0.0988822f, -0.080295f, 0.194355f, 0.143009f, -0.126435f, 0.0384513f, 0.140067f, -0.129221f, 0.0839327f, 0.0637651f, 0.0559021f, -0.0470618f, -0.0172889f, 0.114184f, 0.0428075f, 0.0555071f, -0.159362f, -0.00356815f, 0.0322591f, -0.0849376f, -0.0507537f, -0.0717037f, 0.0665027f, 0.020351f, -0.0848021f, -0.114999f, 0.0827162f, -0.108086f, 0.123903f, -0.141949f, -0.0696226f, -0.004578f, -0.0467784f, -0.105867f, -0.0259255f, 0.137118f, 0.0230032f, 0.123881f, -0.0434555f, -0.188568f, -0.18062f, 0.0204669f, 0.0468056f, 0.178258f, 0.0939075f, -0.16224f, -0.0593022f, 0.00179096f, -0.00993349f, 0.0851636f, 0.179839f, 0.0266545f, 0.152239f, -0.0486397f, -0.0751022f, -0.0638447f, 0.083239f, 0.0496538f, -0.0407424f, -0.0878578f, 0.104124f, 0.215826f, -0.0766949f, -0.171596f, 0.0998467f, 0.0560702f, -0.152347f, 0.0437253f, -0.121835f, 0.0746282f, -0.0169001f, 0.0641852f, 0.0376441f, 0.0180893f, -0.0946099f, 0.147556f, 0.0332945f, 0.130441f, -0.0280838f, 0.165146f, 0.113189f, 0.119398f, 0.170549f, 0.118596f, 0.125157f, 0.0753935f, -0.107645f, -0.0644152f, 0.0322274f, -0.0820249f, -0.11446f, 0.134462f, 0.0285202f, -0.00143497f, 0.13063f, 0.0562783f, 0.0869481f, -0.068366f, 0.0194279f, 0.243487f, -0.0404797f, 0.126651f, -0.0234192f, 0.0482178f, -0.151307f, 0.0107203f, -0.0655624f, 0.16568f, -0.0999789f, 0.0712171f, 0.218855f, -0.176255f, 0.181086f, -0.0805067f, 0.299766f, 0.0832707f, -0.0629283f, -0.0293619f, -0.100559f, 0.175887f, 0.247671f, -0.0443676f, -0.00616354f, 0.108343f, -0.170913f, -0.217171f, 0.124508f, 0.0692848f, -0.27996f, 0.144725f, 0.242649f, 0.139488f, 0.243795f, -0.0269778f, 0.191534f, -0.13483f, 0.259261f, -0.0863765f, -0.123248f, -0.212492f, -0.133897f, -0.0485394f, 0.257394f, -0.0967534f, 0.0607498f, -0.020335f, -0.174225f, -0.0475601f, 0.00790416f, 0.174707f, 0.0168195f, -0.135535f, 0.136652f, 0.103246f, -0.00219408f, 0.0434989f, 0.0659415f, -0.100092f, -0.176035f, 0.0917033f, 0.166667f, 0.116577f, -0.00391166f, -0.229816f, -0.236325f, -0.00868036f, -0.181739f, -0.280641f, 0.0601022f, -0.110229f, 0.022637f, -0.0700246f, -0.103308f, 0.126918f, 0.156862f, -0.1504f, 0.15609f, -0.178135f, 0.0527579f, -0.109793f, 0.0612445f, 0.170097f, -0.220498f, -0.137065f, 0.176427f, -0.0831188f, 0.070432f, 0.0678372f, -0.042158f, -0.0646281f, 0.0885653f, 0.159973f, -0.0437315f, 0.11316f, -0.0331459f, 0.091898f, 0.15983f, 0.188177f, 0.029819f, 0.166206f, 0.120275f, -0.0227306f, 0.0802881f, -0.241933f, -0.00841139f, -0.0604021f, -0.0146949f, 0.0778584f, 0.0403865f, 0.0229893f, 0.10455f, -0.217148f, 0.182058f, 0.139137f, 0.096817f, 0.0427556f, -0.0276026f, -0.201422f, -0.0165819f, 0.149223f, -0.239477f, -0.137195f, 0.11635f, -0.17286f, 0.178446f, 0.11584f, -0.0559186f, 0.157228f, -0.227133f, 0.194612f, 0.172814f, 0.0225065f, -0.213124f, -0.0144106f, 0.0315737f, -0.0144104f, 0.0547689f, 0.0857792f, -0.0444324f, -0.0354548f, 0.0613585f, -0.169449f, 0.073124f, 0.00558956f, 0.0291656f, 0.175163f, -0.113333f, 0.0826906f, 0.00725654f, 0.13211f, -0.114854f, 0.140628f, 0.26754f, 0.0817535f, 0.0581469f, 0.263177f, 0.015535f, -0.165904f, -0.249037f, 0.0920516f, 0.248964f, 0.150004f, -0.00284288f, -0.268283f, -0.143289f, -0.0410699f, -0.138826f, 0.036578f, -0.0415711f, 0.0902479f, -0.0599537f, 0.123038f, -0.0728567f, -0.126074f, 0.0580133f, 0.118857f, -0.0861962f, 0.083803f, -0.26315f, -0.215389f, 0.0627534f, 0.0689892f, 0.125107f, 0.184592f, -0.121236f, -0.128237f, 0.0475498f, -0.0358023f, -0.171523f, 0.0788163f, 0.186158f, 0.224304f, -0.00701284f, -0.00412064f, -0.177511f, -0.0416405f, 0.117366f, 0.117034f, -0.0468591f, -0.133218f, 0.0448533f, 0.0367668f, -0.0880715f, -0.0471299f, 0.190049f, 0.0336702f, -0.0500061f, 0.293018f, -0.0809818f, 0.161671f, -0.116429f, 0.0784362f, 0.000667142f, 0.0294916f, 0.0842498f, 0.147913f, 0.0543051f, 0.117336f, -0.0503789f, 0.0219117f, -0.134541f, -0.102037f, 0.0528409f, -0.0152033f, 0.0500999f, 0.00175921f, 0.152724f, 0.0727349f, 0.105993f, -0.24601f, 0.0628403f, 0.169491f, -0.0421102f, -0.0748062f, 0.214526f, 0.00363969f, 0.0920134f, 0.227032f, 0.0783069f, 0.0745736f, -0.00474701f, -0.180434f, 0.102824f, 0.0280065f, -0.101747f, -0.0867236f, -0.0681033f, -0.267834f, -0.0156138f, -0.0371295f, 0.106881f, 0.0631648f, -0.280844f, 0.00671514f, -0.127639f, -0.00429891f, 0.146122f, -0.0733727f, 0.0298433f, -0.0243903f, -0.200448f, 0.0942421f, 0.0526992f, 0.16137f, -0.196709f, 0.078726f, -0.170827f, -0.0716641f, 0.200987f, 0.0729985f, 0.0261553f, 0.05124f, -0.0137581f, 0.151467f, -0.226884f, 0.145988f, 0.0689539f, -0.168728f, 0.119956f, -0.182782f, -0.0312629f, -0.0366523f, 0.025231f, -0.152391f, 0.0951548f, -0.0709135f, 0.168581f, -0.117083f, 0.198473f, -0.111041f, 0.106677f, 0.10477f, -0.105176f, -0.0193063f, 0.0162382f, -0.0822224f, 0.0127294f, -0.13586f, -0.280799f, 0.0595499f, 0.0474846f, -0.0668391f, -0.0231047f, -0.0214624f, -0.00195901f, -0.0136604f, -0.00853008f, 0.00562828f, -0.109643f, -0.060682f, 0.115158f, -0.0208809f, -0.0946765f, 0.171053f, -0.149964f, -0.0857869f, -0.0464832f, 0.234986f, 0.14067f, 0.0722452f, -0.168797f, -0.216184f, -0.27993f, -0.0281455f, 0.0931245f, 0.241258f, 6.41694e-05f, 0.469574f, 0.188906f, 0.156653f, -0.3269f, 0.152961f, 0.0959677f, -0.175789f, 0.0798799f, -0.246293f, -0.0273778f, -0.0126153f, 0.0711274f, 0.0794869f, 0.138554f, -0.187007f, 0.129183f, 0.132195f, -0.0930046f, -0.226194f, 0.167358f, 0.291531f, -0.110623f, -0.0123855f, -0.0502711f, 0.059822f, -0.11634f, 0.129857f, 0.147829f, -0.0267474f, 0.106321f, 0.254604f, 0.0390868f, -0.244479f, -0.02594f, -0.160435f, 0.204339f, 0.00289411f, 0.434005f, 0.103168f, -0.0579538f, -0.162718f, -0.095507f, 0.165413f, 0.100091f, -0.0690695f, 0.0356022f, 0.328663f, 0.134288f, -0.0447179f, 0.00883155f, -0.057994f, 0.0590216f, 0.0541713f, 0.0485099f, 0.0406914f, -0.0752666f, -0.0884101f, -0.212438f, -0.0349009f, -0.0677661f, -0.150527f, 0.0130093f, -0.047471f, -0.040869f, 0.130559f, 0.0827661f, 0.0326372f, -0.298444f, 0.219412f, -0.073247f, 0.173539f, 0.194024f, -0.123167f, 0.397281f, 0.0753255f, 0.154527f, 0.0822463f, -0.147478f, -0.0914543f, -0.295352f, -0.0467593f, -0.124396f, -0.0959f, -0.0873663f, 0.311466f, -0.0702275f, -0.140804f, 0.132465f, 0.0190683f, -0.13071f, 0.0713687f, 0.0164226f, -0.00368903f, 0.107889f, 0.044011f, -0.103357f, -0.1778f, 0.0938447f, -0.148407f, -0.0265973f, 0.19387f, 0.113336f, 0.000916127f, -0.0929418f, -0.126814f, 0.226607f, -0.16848f, -0.0540514f, -0.262179f, 0.143353f, -0.0788112f, -0.0779139f, 0.346616f, -0.038701f, 0.163984f, -0.0590892f, 0.230672f, 0.106518f, -0.230393f, 0.138044f, -0.0158997f, 0.0859234f, -0.126512f, 0.220919f, 0.231973f, -0.11935f, -0.0864661f, -0.101933f, 0.0235972f, -0.111091f, -0.218183f, 0.0761334f, 0.119279f, -0.157172f, 0.0600034f, 0.099672f, -0.00308032f, 0.177744f, 0.108875f, 0.169676f, -0.204831f, -0.159998f, -0.0649605f, 0.0815136f, 0.198975f, 0.0492392f, -0.0954036f, -0.0326945f, -0.0959136f, 0.127847f, 0.0215004f, 0.137588f, -0.0711754f, 0.211577f, -0.18829f, -0.195906f, 0.131818f, -0.169691f, -0.0112949f, 0.0561467f, 0.0861391f, -0.0523167f, 0.0371019f, -0.0755525f, 0.233946f, 0.0810297f, 0.150767f, 0.2446f, 0.000519451f, -0.00953761f, -0.119911f, 0.0163109f, 0.0240408f, -0.0104023f, 0.0180709f, 0.128984f, 0.0687534f, -0.00144891f, 0.0150575f, -0.237095f, 0.113249f, 0.090444f, -0.0340967f, -0.033118f, -0.0205504f, 0.0609522f, 0.0332191f, 0.139844f, 0.0236262f, -0.0652277f, 0.0338667f, -0.0134828f, 0.0306152f, 0.145654f, -0.191526f, 0.0121791f, -0.0414606f, 0.0211189f, 0.0656803f, -0.0514237f, -0.229884f, -0.136664f, 0.187306f, 0.128707f, -0.170928f, 0.194092f, 0.00696663f, 0.208891f, -0.0334024f, 0.0611423f, 0.212827f, 0.0255265f, -0.10277f, -0.222786f, -0.164815f, 0.0521096f, -0.0207505f, 0.191877f, 0.133381f, -0.191344f, 0.00253685f, 0.205187f, 0.0162322f, 0.0308302f, -0.0357503f, -0.0203518f, -0.0912281f, 0.0339453f, 0.0148751f, -0.000156803f, -0.0774331f, 0.217776f, 0.0144081f, 0.0503956f, 0.0710246f, 0.0473412f, -0.00622653f, 0.00694274f, -0.0103585f, -0.086726f, 0.0256762f, 0.0198518f, -0.00492745f, -0.206039f, 0.0433046f, -0.0145528f, 0.164482f, -0.238857f, 0.0174252f, -0.100325f, 0.103774f, 0.200525f, 0.150323f, -0.161196f, 0.144821f, 0.0691004f, 0.0128478f, 0.0684594f, -0.0543243f, -0.0998198f, 0.299227f, 0.14814f, -0.0291905f, 0.199831f, 0.1613f, 0.0177386f, -0.0126408f, 0.14634f, -0.245801f, -0.115427f, -0.0648507f, -0.181356f, -0.108736f, -0.190516f, -0.0884906f, 0.218943f, 0.0861976f, -0.125148f, 0.0936012f, -0.0150837f, -0.00892364f, 0.114635f, -0.0158666f, 0.093321f, 0.0946629f, -0.068544f, 0.170627f, 0.00155749f, 0.096054f, -0.094046f, 0.0137464f, -0.0605235f, -0.0791638f, 0.0997486f, -0.0261691f, -0.150976f, 0.106969f, -0.169993f, 0.0234943f, -0.237254f, -0.00328411f, -0.0572134f, -0.0572621f, -0.118832f, 0.0185368f, -0.0562502f, 0.212847f, -0.0839708f, 0.00907041f, -0.0226176f, -0.0593559f, -0.0471406f, -0.11356f, -0.0678638f, -0.0354544f, -0.176309f, 0.171733f, 0.0584227f, -0.123227f, -0.156713f, -0.0958561f, -0.022304f, -0.102987f, -0.123445f, 0.0976353f, 0.212412f, 0.160919f, -0.0451911f, 0.18302f, 0.105701f, -0.170842f, -0.00407468f, -0.0398138f, 0.0427996f, -0.231719f, -0.104374f, -0.0400263f, -0.198182f, -0.00607583f, -0.277642f, -0.017415f, 0.0572985f, 0.122211f, 0.150132f, 0.0233471f, -0.0552358f, -0.0562307f, -0.108584f, -0.0885233f, -0.0181883f, 0.139618f, 0.0656298f, 0.0370064f, 0.079512f, -0.0122131f, -0.0584074f, 0.0648702f, 0.0874569f, -0.0728665f, -0.16113f, -0.0830812f, -0.165301f, 0.044484f, 0.136886f, -0.113706f, 0.18783f, 0.0766862f, -0.058414f, -0.189859f, 0.1972f, -0.0575607f, -0.0939633f, 0.248094f, 0.00997208f, 0.00675708f, -0.19413f, 0.0678693f, -0.240154f, 0.0232139f, -0.221113f, 0.158885f, -0.104769f, 0.0308954f, -0.0694935f, -0.249689f, 0.119824f, 0.118988f, 0.00958116f, 0.0287961f, -0.267507f, -0.0228424f, -0.135758f, -0.185451f, -0.0720459f, -0.126774f, -0.083099f, -0.174771f, -0.0121072f, 0.00243089f, -0.189381f, -0.0747677f, 0.279111f, -0.0269166f, 0.127537f, 0.000375622f, -0.045941f, -0.0824008f, -0.103872f, 0.154353f, -0.0113235f, -0.0874884f, 0.193713f, 0.0897546f, 0.0390621f, 0.156552f, 0.117382f, -0.103443f, 0.15151f, 0.0287008f, -0.0712318f, 0.179398f, 0.12574f, -0.125624f, -0.158436f, 0.0617534f, -0.022445f, 0.042005f, 0.112857f, 0.0280019f, -0.116777f, -0.14054f, 0.146659f, -0.201335f, 0.101219f, 0.091273f, -0.0417222f, 0.119968f, 0.058007f, -0.115649f, -0.258597f, -0.0540282f, 0.103976f, 0.0725286f, -0.0461907f, 0.122436f, 0.073963f, 0.108804f, 0.0517603f, 0.11298f, 0.03843f, 0.185631f, -0.205735f, -0.0586393f, 0.0545161f, -0.13168f, -0.143061f, 0.0845664f, -0.217847f, 0.11416f, 0.139934f, -0.210769f, 0.0709436f, -0.0205416f, -0.0300742f, 0.0491576f, 0.137717f, -0.0767062f, 0.138736f, -0.0965796f, -0.0156044f, 0.115489f, 0.203274f, -0.226101f, -0.265766f, -0.178131f, 0.00534978f, 0.268649f, -0.240437f, 0.227853f, -0.0138845f, 0.107399f, -0.044818f, 0.0394247f, -0.145653f, 0.249659f, -0.0833047f, -0.110768f, -0.0294928f, -0.171713f, 0.111628f, 0.096506f, -0.0584072f, -0.117945f, 0.126418f, 0.0137448f, 0.00893283f, -0.0793823f, -0.104074f, -0.0131742f, -0.25082f, -0.042324f, 0.0337461f, -0.11234f, -0.265213f, 0.00656311f, -0.0858486f, -0.116362f, -0.152324f, -0.0789978f, 0.028711f, 0.0958666f, 0.0236169f, 0.111797f, -0.00635083f, -0.0266096f, 0.225847f, -0.00485344f, 0.191921f, 0.109085f, 0.0545236f, -0.00528979f, 0.167145f, -0.119809f, -0.188248f, -0.192932f, -0.0377894f, -0.0719051f, 0.172286f, 0.0325853f, -0.0669772f, 0.0578337f, 0.14264f, 0.0917636f, 0.0603792f, -0.0531857f, 0.0221675f, -0.0544403f, -0.061129f, -0.107739f, -0.202008f, -0.174726f, 0.0925696f, -0.127f, -0.231936f, 0.0518836f, 0.0360152f, 0.187249f, -0.00217826f, -0.269524f, 0.0904334f, 0.209922f, 0.0651935f, -0.0195149f, 0.0143192f, 0.132184f, -0.0571326f, 0.0324358f, -0.134905f, -0.0469322f, 0.0399857f, -0.103079f, 0.130123f, 0.119081f, -0.0129259f, -0.0806071f, 0.242076f, 0.231061f, 0.145187f, -0.0895846f, -0.095848f, 0.0480696f, 0.0276397f, -0.158946f, 0.207297f, 0.146641f, -0.0533699f, 0.122797f, 0.00338299f, -0.171104f, 0.130368f, 0.0728425f, 0.191133f, -0.0431884f, 0.203738f, 0.120593f, 0.182047f, -0.0863803f, 0.0727738f, -0.158853f, 0.0985755f, 0.0992161f, 0.0160849f, -0.216878f, -0.107395f, 0.208918f, -0.0872148f, 0.18282f, -0.0375241f, -0.14342f, 0.12031f, -0.0102121f, -0.08614f, -0.075955f, -0.225094f, 0.0235977f, -0.182353f, 0.129048f, -0.276365f, -0.0913239f, -0.162647f, 0.349797f, 0.408414f, 0.0263763f, -0.078886f, 0.152187f, -0.100075f, -0.198402f, -0.0945511f, 0.0288252f, -0.101953f, 0.109077f, 0.0890408f, -0.174228f, 0.0513374f, 0.0889823f, 0.134676f, -0.0534228f, 0.0818074f, 0.139522f, -0.0658771f, 0.0376229f, -0.181157f, -0.0166015f, 0.0821067f, -0.104801f, 0.0930002f, 0.0894424f, -0.0706478f, 0.0976601f, -0.0834424f, 0.192694f, -0.201862f, 0.121731f, -0.130909f, -0.0569478f, 0.048347f, -0.0353531f, 0.03548f, -0.0867994f, 0.110229f, 0.132361f, -0.133294f, -0.0463198f, -0.181307f, 0.0799815f, 0.181535f, 0.252955f, -0.193249f, -0.236089f, -0.0872338f, -0.0222062f, -0.131879f, 0.0307543f, 0.122189f, -0.192567f, -0.0838016f, 0.280351f, -0.106222f, -0.118014f, 0.0477057f, -0.141749f, -0.0925651f, 0.103125f, -0.00483269f, 0.0962392f, -0.117528f, -0.061525f, 0.0275273f, -0.236816f, 0.0780891f, 0.163584f, -0.00548199f, -0.0451328f, -0.209221f, -0.264103f, -0.155267f, -0.102069f, -0.0313162f, 0.0252517f, -0.208542f, -0.168379f, 0.359956f, -0.196595f, 0.0248571f, -0.135366f, -0.0529545f, 0.215218f, -0.183894f, -0.0215425f, 0.0917621f, -0.135668f, -0.238065f, 0.017844f, -0.0817614f, -0.11297f, 0.0685701f, -0.0561068f, -0.133549f, 0.124479f, -0.0541766f, 0.309334f, -0.171207f, -0.0217885f, 0.127738f, 0.019242f, 0.0589652f, 0.103014f, -0.306485f, -0.153225f, 0.0791846f, -0.0369163f, 0.0776625f, 0.114032f, 0.0153117f, -0.0522444f, 0.166957f, -0.0107518f, 0.0328733f, -0.112869f, 0.127991f, 0.0498001f, 0.277596f, 0.0323095f, -0.0796127f, 0.051395f, 0.173709f, -0.0271918f, 0.0932668f, -0.0410246f, -0.0320311f, 0.243109f, -0.290421f, -0.133284f, 0.363377f, 0.0619558f, 0.252239f, 0.074894f, 0.284475f, 0.139968f, -0.202935f, 0.00968333f, 0.055572f, 0.152732f, -0.162532f, 0.147298f, -0.0131459f, 0.209537f, 0.112257f, 0.00916084f, 0.165665f, 0.0875926f, -0.307577f, 0.0277284f, -0.0761797f, 0.0846229f, 0.491206f, -0.00483146f, 0.147814f, -0.186532f, 0.0311896f, 0.107035f, -0.0142813f, 0.0383598f, -0.261357f, -0.0774778f, -0.0100652f, 0.0935355f, -0.231447f, -0.0814383f, -0.0369511f, -0.12382f, 0.0858047f, 0.214384f, 0.0104189f, -0.208844f, -0.15515f, -0.00822712f, 0.100458f, 0.226031f, 0.0506254f, -0.0958021f, -0.0412664f, -0.00725973f, -0.00913606f, 0.214362f, 0.0786359f, -0.0239891f, 0.0109595f, 0.0474758f, -0.0235042f, 0.317422f, 0.259609f, 0.0846364f, 0.0678426f, -0.0231418f, -0.00223036f, 0.218882f, -0.270404f, -0.279028f, 0.256929f, -0.0813403f, 0.0613492f, -0.150356f, 0.0733388f, -0.150003f, 0.127454f, -0.0856458f, -0.00887025f, -0.0537027f, -0.18978f, 0.112242f, 0.0562806f, 0.176947f, 0.20624f, -0.274099f, -0.20382f, 0.026758f, 0.298216f, 0.173265f, 0.203258f, -0.0588319f, -0.0570785f, -0.142812f, 0.0602669f, -0.321857f, 0.119269f, 0.173027f, 0.181671f, 0.102721f, 0.166626f, -0.120482f, 0.0186959f, 0.0344212f, -0.0409846f, 0.187586f, -0.13033f, 0.313574f, 0.0323481f, -0.191573f, 0.27936f, -0.196369f, 0.0627226f, -0.293867f, 0.046917f, 0.2265f, -0.0338301f, -0.290258f, -0.00574399f, 0.0599822f, 0.146566f, -0.138142f, -0.00647847f, -0.0539005f, -0.0273135f, -0.120394f, -0.108777f, -0.102777f, 0.071269f, -0.18587f, -0.163222f, 0.0113993f, 0.124649f, 0.0584381f, -0.137415f, 0.0257972f, -0.109449f, 0.0668103f, 0.0481491f, -0.27633f, 0.12686f, -0.0794108f, 0.100293f, 0.0833171f, 0.191679f, -0.0964207f, -0.140413f, -0.0889316f, 0.113188f, 0.0779097f, -0.0763701f, 0.209265f, 0.106834f, -0.201638f, 0.113367f, 0.0402176f, -0.236694f, -0.091484f, 0.0858425f, 0.0236866f, -0.201403f, 0.012711f, 0.334127f, 0.263675f, 0.0854545f, 0.0751789f, -0.0849188f, 0.0590911f, 0.0884594f, 0.135608f, -0.253917f, 0.0881353f, -0.0339649f, -0.0917923f, 0.272796f, 0.032528f, -0.229461f, 0.191466f, 0.347414f, -0.0397732f, -0.0231426f, 0.0240551f, -0.254797f, -0.0817527f, -0.141283f, -0.118115f, -0.0286685f, -0.13028f, 0.254037f, 0.122017f, -0.183351f, -0.24409f, 0.378075f, 0.0188291f, -0.065634f, 0.100106f, -0.328611f, 0.0529056f, -0.0236003f, 0.314036f, 0.205302f, 0.0151771f, -0.26066f, 0.107092f, 0.237483f, 0.0836054f, 0.0068153f, 0.132684f, 0.0752982f, -0.0340297f, 0.0325916f, -0.136452f, -0.100124f, -0.110632f, -0.0192063f, -0.0985144f, -0.0171686f, -0.119345f, 0.26254f, -0.215765f, 0.0808693f, 0.222398f, -0.0555607f, 0.146929f, 0.0199551f, -0.0966514f, 0.115465f, -0.309006f, -0.10822f, -0.0423914f, -0.00150864f, -0.151972f, -0.0513773f, 0.186527f, -0.0671069f, 0.32747f, -0.0906057f, -0.0795211f, 0.115964f, -0.157746f, -0.112566f, -0.108419f, 0.00264795f, 0.188134f, 0.0126914f, 0.24295f, 0.00241365f, -0.00267886f, -0.138842f, 0.178503f, -0.118769f, 0.211134f, 0.00209115f, 0.0136679f, -0.0508048f, -0.136327f, -0.129599f, -0.0900171f, -0.0595122f, 0.0590354f, 0.0660074f, -0.0598381f, -0.110303f, 0.111877f, -0.0979829f, -0.000535207f, 0.00162678f, 0.100546f, -0.029316f, -0.0759698f, 0.0735566f, 0.249264f, 0.161481f, -0.165195f, -0.0484556f, -0.0652108f, -0.175454f, 0.0460871f, 0.11959f, -0.1214f, 0.0825391f, -0.0529583f, 0.132166f, -0.0370823f, -0.0191509f, 0.0471493f, 0.0599926f, -0.199796f, 0.131152f, 0.18363f, -0.0941655f, 0.136396f, 0.167567f, 0.0255753f, -0.278248f, -0.0823613f, 0.010519f, -0.111151f, 0.140627f, -0.140631f, 0.0717831f, 0.0932167f, -0.135749f, -0.0284483f, -0.126716f, -0.0516972f, 0.0272764f, -0.197866f, 0.342024f, 0.448633f, 0.0874947f, -0.0152569f, -0.119346f, -0.109548f, 0.106433f, 0.185234f, 0.0699493f, -0.312253f, -0.0417641f, -0.136293f, 0.0428199f, 0.18164f, -0.0272163f, -0.114495f, -0.223256f, 0.136486f, -0.0990053f, 0.0924374f, 0.0200505f, 0.0705947f, -0.0516161f, 0.0255916f, -0.045563f, 0.143755f, -0.097226f, -0.0189599f, 0.18063f, -0.0353867f, -0.266539f, 0.0964979f, 0.0803739f, -0.0748517f, 0.00475533f, 0.22494f, -0.266711f, 0.00899705f, -0.0613873f, 0.0584463f, 0.0123471f, -0.407657f, -0.00597073f, -0.0704782f, -0.0679705f, 0.284044f, 0.0832086f, -0.149432f, 0.123852f, -0.0526861f, 0.0132223f, -0.27337f, -0.150436f, -0.0678033f, 0.116779f, -0.117347f, -0.0587839f, -0.148679f, -0.190844f, 0.181505f, 0.057873f, -0.0211839f, -0.248803f, 0.136164f, -0.122079f, -0.071491f, 0.0145691f, -0.156613f, -0.0813406f, 0.201313f, -0.0573411f, 0.0581861f, -0.216761f, 0.0819544f, -0.0740951f, -0.18006f, -0.0360263f, -0.0875593f, -0.133428f, -0.0141984f, -0.01318f, 0.00350609f, 0.0270294f, 0.111583f, -0.17579f, -0.0863094f, -0.00661455f, -0.151019f, 0.107583f, 0.0356311f, -0.0147198f, -0.0358191f, 0.205544f, 0.109952f, 0.142883f, -0.0135654f, 0.0752205f, 0.118522f, -0.106341f, 0.136515f, -0.0194995f, 0.0006524f, -0.0262148f, -0.0904162f, 0.239667f, -0.154679f, -0.156253f, -0.323167f, 0.0281764f, -0.0513138f, -0.0188001f, 0.108756f, 0.239558f, -0.114366f, -0.0620301f, -0.0837035f, 0.129758f, -0.0832344f, 0.0901426f, -0.0414158f, -0.0805849f, -0.0661859f, 0.133661f, -0.0385057f, -0.21182f, 0.249072f, -0.0805149f, 0.094593f, 0.139563f, -0.0971616f, -0.297204f, -0.089234f, -0.0123317f, 0.0792376f, 0.0666058f, 0.0571953f, 0.0279623f, -0.194785f, -0.0236722f, 0.139584f, 0.0472027f, -0.237811f, -0.0552097f, 0.163047f, 0.290788f, -0.100194f, 0.020549f, -0.0734888f, -0.126943f, 0.0360157f, -0.235937f, 0.263929f, 0.188324f, -0.000987015f, 0.136252f, 0.099321f, 0.168638f, 0.10379f, -0.0505366f, -0.169445f, 0.00351623f, -0.202635f, -0.183719f, 0.139455f, 0.237374f, 0.0518896f, -0.001235f, -0.125017f, -0.104897f, -0.164488f, 0.103658f, -0.0731876f, -0.0312223f, -0.154386f, -0.161891f, -0.142811f, -0.20698f, -0.147833f, 0.253582f, -0.0639868f, 0.0952323f, 0.151004f, -0.07223f, 0.229725f, -0.0411745f, 0.249562f, 0.210417f, -0.196058f, 0.0815081f, 0.0694744f, 0.044257f, 0.0300928f, 0.00944847f, -0.00423917f, -0.0622135f, -0.0345542f, -0.136016f, -0.0573218f, 0.162665f, -0.0132023f, -0.181028f, -0.210128f, -0.130588f, 0.0870001f, 0.130073f, 0.118557f, -0.0849469f, -0.185253f, -0.204436f, -0.194438f, 0.183295f, 0.166128f, -0.0445871f, 0.0672675f, 0.134431f, 0.0119047f, 0.022573f, -0.212642f, -0.240949f, 0.151658f, -0.155416f, 0.0802103f, -0.105479f, -0.0678572f, -0.176843f, -0.0786948f, -0.128576f, -0.0251499f, -0.208218f, 0.0935681f, 0.0745133f, -0.25466f, 0.0983807f, -0.0400778f, 0.112014f, -0.0548362f, 0.226699f, -0.212055f, 0.0187043f, 0.00779849f, 0.276138f, -0.0915999f, 0.0813469f, 0.14536f, -0.0499814f, 0.298318f, 0.0572311f, -0.0714836f, -0.189934f, -0.0678358f, 0.119767f, 0.191284f, -0.216978f, 0.0210393f, -0.15276f, -0.212893f, 0.0126589f, -0.0818493f, -0.0984292f, -0.256575f, 0.180177f, 0.0315308f, 0.00158244f, -0.174934f, 0.00979716f, 0.0882196f, -0.0466966f, -0.30638f, -0.0944325f, -0.0381952f, -0.0607513f, -0.122204f, -0.104529f, 0.0262007f, 0.0898659f, -0.0821613f, 0.138184f, -0.173535f, 0.259251f, -0.139067f, 0.0527363f, 0.128494f, -0.197046f, 0.0145129f, 0.25498f, 0.263876f, -0.112988f, -0.138501f, 0.0742189f, 0.216373f, 0.195233f, 0.217683f, 0.0909195f, -0.131642f, 0.214205f, 0.171809f, 0.033819f, -0.211644f, 0.0514242f, 0.0590246f, 0.182824f, 0.0495599f, 0.0136506f, 0.0539667f, 0.0191871f, -0.0595052f, 0.0371647f, 0.264868f, -0.00435729f, 0.178298f, 0.0416091f, -0.135173f, -0.186179f, -0.106651f, 0.250513f, -0.228274f, -0.178401f, -0.250001f, -0.197515f, 0.247742f, -0.0535766f, 0.228706f, 0.0967231f, 0.035031f, 0.124075f, 0.18292f, -0.0435278f, 0.181719f, 0.274658f, -0.202956f, 0.0366596f, -0.245494f, -0.0596839f, 0.0318552f, -0.0172872f, -0.0056095f, -0.117931f, 0.207555f, 0.16968f, -0.0765849f, -0.0130353f, 0.248236f, 0.22278f, -0.10921f, 0.0522654f, -0.180606f, -0.0487688f, -0.136957f, -0.300896f, -0.0782317f, -0.0823527f, 0.131465f, -0.0359998f, 0.17331f, -0.257911f, -0.107391f, -0.197971f, 0.137264f, -0.0460579f, 0.244376f, -0.127552f, 0.0117409f, 0.0919855f, 0.140857f, -0.0135924f, -0.0597312f, 0.0338853f, 0.0336469f, -0.0566574f, 0.0697189f, 0.275758f, -0.143595f, -0.262855f, 0.050069f, 0.0314203f, -0.107885f, 0.0878425f, 0.0505831f, 0.0540679f, 0.302229f, -0.151382f, -0.190609f, -0.232976f, 0.104948f, 0.224504f, -0.16056f, 0.121547f, -0.103255f, -0.139164f, 0.172729f, 0.034253f, -0.0751266f, -0.0137145f, 0.140892f, -0.0497953f, -0.0902039f, -0.011788f, 0.013733f, -0.150507f, 0.0793438f, -0.061776f, -0.0898636f, 0.0158127f, 0.0186629f, 0.115177f, -0.151947f, 0.0946832f, -0.0972865f, 0.165007f, -0.101565f, 0.234293f, 0.0618445f, -0.211372f, -0.0415979f, 0.0666803f, 0.145636f, 0.0541131f, 0.0756753f, 0.0106746f, -0.206225f, -0.23135f, -0.129584f, -0.134978f, -0.195017f, 0.216892f, -0.212634f, 0.0696414f, 0.0220525f, -0.0358239f, -0.165221f, 0.211204f, 0.136964f, 0.0879402f, -0.00686273f, -0.0974347f, -0.136546f, -0.326713f, -0.193612f, -0.0737912f, 0.310661f, -0.202282f, 0.0768661f, 0.103455f, -0.276943f, -0.0716431f, 0.2278f, -0.0302332f, -0.023228f, 0.0941048f, 0.035378f, 0.0433442f, -0.0906005f, 0.100279f, -0.00493115f, 0.0799624f, 0.0947694f, 0.0744578f, -0.271034f, -0.0683303f, -0.136453f, -0.0734047f, -0.0257198f, 0.118323f, -0.109951f, 0.110752f, 0.25925f, 0.0468734f, -0.169645f, -0.0398363f, 0.0606075f, -0.235116f, 0.0917429f, 0.0329187f, 0.120038f, -0.0648065f, 0.202202f, 0.0724886f, -0.138406f, 0.0309749f, 0.175422f, -0.00291769f, 0.0180499f, 0.082371f, -0.0490427f, -0.0691307f, 0.26147f, 0.0204802f, -0.261396f, -0.107315f, -0.0323396f, 0.0325652f, 0.0672529f, 0.101521f, -0.182105f, 0.016484f, 0.10443f, -0.0402159f, 0.0869233f, 0.0370591f, -0.1799f, 0.18006f, 0.108967f, 0.0519388f, 0.0162512f, 0.191129f, 0.13111f, -0.0532841f, -0.126791f, 0.193151f, -0.124202f, -0.16386f, -0.0259391f, -0.0764647f, 0.232933f, 0.25163f, -0.0338209f, 0.108541f, -0.186476f, -0.0383658f, -0.181678f, -0.0288885f, 0.0812533f, -0.153684f, -0.0891894f, -0.0561447f, -0.077854f, -0.118133f, 0.176455f, 0.281412f, -0.0415637f, -0.137362f, 0.207525f, -0.02095f, -0.0785866f, -0.0906263f, 0.25658f, -0.200244f, -0.142735f, -0.182417f, -0.132413f, 0.0267197f, -0.0500258f, -0.0321715f, 0.126459f, 0.032108f, -0.122285f, 0.00588074f, 0.000158041f, 0.0281405f, 0.136653f, 0.101276f, 0.157602f, -0.0538587f, 0.190254f, -0.0889285f, 0.08847f, -0.112365f, -0.242464f, 0.281483f, -0.039269f, -0.153988f, -0.194998f, -0.0598148f, -0.228873f, -0.104483f, -0.100665f, -0.134132f, -0.112239f, -0.00555308f, -0.158702f, 0.06603f, -0.0969541f, -0.0826849f, 0.233574f, -0.0457619f, -0.091769f, -0.223473f, 0.123539f, -0.121747f, -0.0617813f, -0.00569711f, 0.0874195f, 0.133475f, 0.108848f, -0.0725733f, -0.130236f, 0.273775f, 0.0209612f, 0.111227f, 0.0529157f, 0.10317f, -0.265614f, -0.033549f, -0.0323869f, 0.287506f, -0.0936358f, 0.0759332f, 0.083512f, 0.129803f, 0.0635368f, 0.130515f, 0.00792518f, 0.0248709f, 0.027528f, -0.147857f, 0.0442221f, -0.0657258f, 0.194454f, 0.131354f, 0.00161239f, 0.0513542f, -0.0937834f, 0.137045f, 0.194499f, 0.06633f, -0.0469309f, 0.112971f, -0.0607797f, 0.053531f, 0.0120124f, -0.156491f, -0.0348365f, 0.0914378f, 0.278139f, 0.0961918f, -0.121549f, 0.0624163f, -0.0154651f, 0.146774f, 0.114469f, -0.204494f, 0.0275185f, 0.0284537f, 0.103333f, -0.285442f, 0.0570726f, 0.0440372f, 0.0640231f, -0.00798481f, -0.103586f, -0.114323f, -0.198718f, -0.110565f, 0.0460459f, 0.0298537f, -0.076881f, -0.075135f, -0.0355179f, 0.0358805f, -0.0982397f, 0.243475f, 0.101163f, 0.00409767f, -0.0619498f, 0.00921027f, 0.0151035f, -0.00716721f, 0.0814159f, -0.202484f, 0.0667067f, 0.0697877f, -0.101928f, -0.00525258f, 0.261744f, 0.00523074f, 0.151505f, -0.220696f, -0.237729f, -0.0276854f, 0.141343f, 0.246084f, -0.0279048f, 0.111062f, 0.0170684f, -0.0561355f, -0.127129f, -0.026993f, 0.198676f, 0.132844f, 0.152899f, -0.122362f, -0.250992f, 0.0532387f, 0.0826585f, 0.00625896f, 0.348462f, 0.00674724f, 0.00577667f, 0.13166f, -0.169434f, 0.110491f, 0.188129f, -0.212089f, -0.0792955f, -0.00212138f, -0.298819f, 0.0585145f, -0.0177689f, -0.105634f, -0.0326799f, -0.114969f, -0.0917941f, 0.0287939f, 0.0542241f, 0.32998f, -0.170217f, -0.17687f, -0.11071f, 0.133175f, -0.134563f, 0.218006f, -0.152538f, -0.102187f, 0.147073f, -0.0901056f, 0.154812f, -0.215023f, 0.313859f, 0.0321647f, 0.179652f, -0.0545967f, -0.160516f, 0.0882007f, -0.0435897f, 0.00862894f, -0.155595f, 0.173927f, 0.0428214f, -0.259712f, 0.0755791f, 0.00129403f, -0.134428f, 0.193893f, 0.117925f, -0.0791888f, 0.125477f, -0.275058f, -0.15374f, -0.04065f, -0.102758f, 0.0571929f, 0.0285249f, -0.0547421f, -0.1914f, -0.0334187f, 0.211996f, -0.104667f, 0.329738f, -0.340599f, 0.117322f, 0.0828307f, 0.0569466f, 0.0776199f, -0.234214f, 0.00845046f, -0.0620429f, 0.0726262f, 0.0676079f, 0.0857939f, 0.133333f, 0.0235542f, 0.0555523f, 0.0462931f, -0.065305f, -0.205569f, -0.0664637f, 0.13391f, 0.0111876f, 0.0250987f, 0.128884f, 0.232548f, 0.0634961f, -0.0915039f, -0.0259791f, 0.049933f, -0.117029f, 0.020142f, -0.0475551f, -0.226557f, -0.405388f, -0.08627f, -0.298706f, 0.343855f, 0.200853f, -0.171222f, 0.405582f, -0.0963937f, 0.00195715f, -0.125113f, -0.0603736f, 0.0489678f, 0.0758544f, 0.101537f, 0.067834f, 0.0734458f, -0.106943f, 0.219754f, 0.0656197f, 0.0369377f, -0.218272f, -0.189343f, -0.00799371f, 0.0856736f, -0.287541f, 0.0568512f, 0.222028f, 0.296063f, 0.169556f, -0.0264966f, -0.251442f, -0.169828f, 0.138747f, -0.0457189f, -0.22492f, 0.0142776f, -0.249952f, 0.0406122f, 0.0538488f, 0.158796f, 0.000235135f, -0.060568f, -0.174686f, -0.0672138f, -0.169349f, 0.229711f, 0.135141f, 0.125704f, -0.00322429f, 0.216485f, 0.0292805f, 0.149829f, -0.197696f, -0.0423971f, 0.0274287f, -0.00638617f, -0.0267318f, 0.154306f, 0.274104f, 0.206794f, -0.0770574f, -0.240286f, 0.120718f, 0.247807f, -0.220075f, 0.227697f, -0.0843951f, 0.281207f, 0.044932f, -0.305416f, 0.2113f, -0.0238774f, -0.21296f, 0.14466f, 0.232283f, -0.0626976f, 0.0508397f, -0.0424113f, -0.0636988f, -0.0279686f, -0.119144f, -0.154151f, -0.0919951f, 0.0191366f, -0.0297633f, 0.0287382f, 0.153751f, 0.0526619f, -0.0971371f, 0.0420347f, 0.31159f, 0.0219276f, -0.221535f, -0.13801f, 0.0938089f, -0.258386f, 0.182496f, -0.157541f, 0.261817f, -0.0462101f, 0.024396f, -0.201911f, -0.123502f, -0.11994f, 0.0889598f, 0.210861f, 0.0594529f, -0.0181149f, 0.181121f, 0.131949f, 0.00760278f, 0.173536f, 0.00445307f, -0.344947f, 0.192108f, -0.0614201f, -0.0553065f, -0.173843f, 0.135461f, 0.151958f, -0.0485315f, 0.147235f, -0.0629286f, 0.0239299f, -0.129533f, -0.0654212f, -0.047074f, 0.0895511f, 0.367311f, -0.0977673f, 0.278316f, -0.123884f, -0.225437f, 0.0315867f, 0.0758921f, 0.0112268f, -0.143932f, -0.13353f, 0.21692f, -0.0967583f, -0.068028f, 0.23997f, 0.0347818f, 0.0344428f, -0.106722f, 0.233498f, -0.0124065f, 0.139123f, 0.105033f, 0.0357181f, 0.296013f, -0.0976087f, -0.213346f, 0.0229942f, 0.232182f, -0.0907303f, -0.0468876f, 0.272185f, -0.168782f, 0.107121f, 0.112542f, -0.18546f, -0.128385f, 0.0244348f, 0.197993f, 0.0411445f, 0.207001f, -0.0341621f, 0.0929957f, -0.125558f, 0.0531554f, -0.207683f, 0.13662f, -0.195595f, -0.0790122f, -0.0308372f, 0.169889f, 0.191351f, 0.259107f, 0.0159039f, -0.219494f, -0.0676413f, 0.0857304f, 0.277259f, 0.24048f, 0.181166f, 0.0431077f, 0.163631f, 0.0285574f, 0.203067f, -0.0181418f, 0.296379f, 0.112452f, 0.169463f, -0.112085f, 0.274437f, 0.0988309f, 0.0587743f, 0.0318045f, 0.31385f, -0.017839f, -0.24409f, 0.188014f, 0.0795042f, -0.355236f, -0.0517492f, 0.00601148f, -0.00400297f, 0.241653f, 0.0679759f, -0.0222686f, -0.112631f, 0.0287573f, -0.0670441f, 0.143324f, 0.263131f, -0.285202f, -0.0305779f, -0.101695f, -0.0137821f, 0.299705f, -0.157528f, 0.182205f, -0.12867f, 0.0883595f, -0.121239f, -0.331997f, 0.140787f, -0.0224617f, -0.106425f, -0.203265f, -0.0095208f, 0.0384724f, 0.15911f, 0.362378f, 0.0555373f, 0.0378991f, -0.0639883f, -0.158319f, -0.134263f, -0.0595655f, 0.0674767f, -0.318465f, -0.0214729f, -0.00379182f, 0.022417f, 0.0135482f, 0.260381f, -0.0311963f, 0.0880065f, -0.0268291f, -0.0504735f, -0.170872f, 0.00673649f, 0.0793898f, -0.0465021f, -0.135006f, -0.240636f, 0.0914227f, -0.113467f, -0.0104835f, 0.0949837f, 0.11439f, -0.0606427f, 0.00372453f, -0.00203155f, 0.0172444f, -0.00177111f, -0.136076f, -0.249669f, 0.152474f, 0.203735f, 0.319113f, -0.0454988f, 0.0229371f, -0.0391426f, 0.0775409f, -0.0986076f, -0.198949f, 0.206265f, 0.0391479f, -0.223956f, -0.151374f, 0.0152764f, -0.0653141f, -0.193673f, -0.144464f, 0.10597f, 0.124894f, 0.0502188f, 0.161053f, -0.322255f, 0.0722998f, -0.210176f, -0.197018f, 0.00428297f, -0.0366947f, 0.136975f, 0.068058f, 0.0225741f, -0.0357536f, 0.131742f, -0.0133948f, -0.21062f, -0.0673016f, -0.0251731f, -0.0142212f, 0.170075f, 0.090891f, 0.0140049f, 0.241503f, 0.286204f, -0.0459023f, -0.0953268f, -0.10287f, -0.05372f, 0.163109f, 0.0470743f, -0.187113f, -0.061828f, 0.0831315f, -0.269745f, 0.239758f, 0.146171f, -0.347709f, 0.0385438f, 0.117005f, 0.0759864f, -0.346661f, 0.0224273f, 0.346044f, 0.223727f, 0.0411457f, -0.00205991f, -0.0507826f, 0.264427f, -0.105605f, 0.133358f, -0.182108f, 0.294316f, 0.155072f, -0.105395f, 0.0469687f, 0.322175f, -0.0546021f, -0.00447661f, -0.136614f, 0.086259f, -0.0247771f, 0.00802878f, 0.21456f, -0.0230165f, 0.0383254f, 0.229288f, -0.17078f, 0.0688556f, -0.158029f, 0.057897f, -0.0488673f, -0.0558322f, -0.0525868f, 0.193865f, -0.00362319f, 0.238934f, -0.0864644f, -0.0215992f, 0.00349423f, -0.106085f, -0.143939f, -0.0498854f, 0.196979f, -0.127822f, 0.226543f, -0.200053f, 0.0755227f, 0.176141f, -0.323318f, 0.186891f, 0.427121f, 0.0285531f, 0.219494f, 0.126096f, 0.117171f, -0.0646825f, 0.0144302f, 0.131797f, 0.0117623f, 0.0557249f, -0.242732f, -0.140476f, 0.0685345f, 0.146059f, -0.03958f, -0.0448831f, -0.142114f, 0.0474491f, 0.230512f, -0.110115f, 0.458945f, 0.23887f, -0.0583442f, -0.0347358f, 0.0232693f, 0.00363192f, 0.0160319f, -0.106834f, -0.101174f, 0.00374936f, -0.00378183f, 0.0182305f, 0.101469f, 0.0575195f, 0.169706f, -0.0588959f, 0.0544518f, 0.000214143f, 0.211942f, 0.113295f, 0.0725104f, 0.0879433f, -0.237599f, 0.00449709f, -0.221803f, -0.150345f, 0.159882f, -0.140631f, 0.0591749f, 0.00685164f, 0.00134389f, -0.076955f, -0.0572818f, -0.00298663f, -0.032977f, -0.08509f, 0.0472167f, 0.104991f, 0.113598f, -0.11914f, 0.0118427f, 0.0574428f, 0.00881516f, 0.0526442f, -0.138484f, -0.0838579f, -0.0963192f, 0.1269f, 0.108072f, 0.00889539f, -0.0869924f, -0.173575f, -0.0202335f, -0.142473f, 0.0252506f, 0.051517f, 0.0819516f, -0.0209393f, -0.0500372f, -0.075841f, -0.00646553f, -0.0437641f, -0.0284698f, -0.010615f, 0.00529204f, -0.107817f, 0.0479601f, 0.00332739f, -0.0205493f, -0.0132185f, -0.0439476f, 0.106772f, -0.0220931f, 0.118179f, 0.003864f, -0.182492f, 0.143892f, -0.0595431f, 0.135594f, 0.0251055f, -0.0662664f, -0.00808061f, -0.0868774f, 0.0258835f, -0.0146668f, 0.0734465f, -0.127499f, 0.0233865f, -0.00857755f, -0.102938f, -0.0221643f, 0.0160171f, 0.0688758f, -0.184875f, -0.221532f, 0.0921411f, 0.0142671f, -0.0905828f, -0.0631252f, -0.105168f, 0.147888f, -0.0165089f, -0.0713638f, 0.235225f, 0.153314f, 0.209522f, 0.0217917f, -0.0357808f, 0.0396518f, 0.14723f, -0.0671246f, -0.0062598f, -0.24726f, -0.170872f, -0.11809f, 0.0874993f, 0.00885016f, 0.0424242f, -0.0607876f, -0.000333148f, -0.167585f, -0.0640991f, 0.0982224f, -0.136429f, -0.113805f, -0.0461216f, -0.0268392f, 0.135667f, 0.0190027f, -0.00229819f, -0.00862421f, -0.0291289f, -0.000769233f, -0.0135669f, -0.02527f, 0.0951717f, -0.0217569f, 0.0452809f, 0.0749745f, -0.0847539f, 0.00931191f, -0.0646328f, 0.131549f, -0.0474933f, -0.308602f, -0.0530117f, -0.129608f, 0.0858505f, 0.166205f, -0.0180786f, -0.0090179f, 0.0270601f, 0.00587309f, -0.00248022f, -0.147752f, 0.000522608f, 0.121875f, 0.0918665f, 0.138451f, 0.070009f, 0.052363f, 0.107446f, -0.0788256f, -0.0595531f, -0.147448f, 0.111347f, 0.0537488f, 0.0522907f, 0.0967488f, -0.236529f, -0.00828277f, 0.12788f, -0.0883436f, 0.169929f, 0.0177677f, -0.0235875f, 0.146874f, -0.0741758f, -0.0352236f, 0.0871282f, -0.103814f, 0.0137036f, 0.121892f, 0.0488995f, 0.0949766f, 0.0338255f, -0.0022803f, -0.0923977f, 0.0830942f, 0.000588999f, -0.158633f, 0.165777f, 0.0556567f, -0.138841f, 0.0473393f, 0.159415f, 0.0530077f, 0.0118586f, -0.0726833f, -0.187862f, 0.0469737f, 0.116374f, 0.174571f, 0.0596523f, -0.122173f, 0.187077f, -0.0649468f, 0.0401184f, -0.0884568f, -0.0431366f, -0.0616521f, -0.132142f, -0.0295164f, 0.0137418f, -0.0328775f, -0.0929807f, 0.106067f, -0.0937764f, -0.042772f, 0.0859258f, -0.0570476f, 0.0286207f, -0.158612f, -0.155482f, 0.142544f, -0.00189116f, 0.0866886f, 0.0536941f, 0.0329142f, -0.153761f, 0.0872129f, -0.0658208f, -0.000712332f, 0.116691f, 0.0258938f, 0.101528f, 0.0500239f, 0.0821164f, -0.0348943f, 0.111334f, 0.122165f, 0.0347269f, 0.128386f, 0.00195751f, -0.104743f, 0.0276532f, 0.170279f, -0.0411855f, 0.0859055f, 0.0806226f, -0.0138392f, 0.0453553f, -0.0627355f, 0.020762f, -0.0828759f, 0.0746284f, -0.0129219f, -0.112159f, -0.306338f, -0.032033f, -0.129751f, -0.0711626f, -0.200052f, 0.0832126f, 0.122769f, 0.0248363f, 0.0130197f, 0.117873f, 0.131472f, -0.0906825f, 0.266871f, -0.130284f, 0.303134f, -0.0318122f, -0.0663111f, -0.0867671f, 0.181027f, 0.111898f, 0.0343398f, -0.0002621f, 0.0578648f, -0.287671f, -0.0991833f, 0.321076f, -0.0035088f, -0.0335499f, 0.173088f, -0.0530063f, -0.0213703f, -0.0603414f, 0.0546904f, 0.154639f, 0.0259558f, 0.174606f, -0.150032f, 0.0131707f, -0.0681487f, 0.19203f, -0.125105f, 0.134218f, 0.0562721f, -0.0589567f, 0.163286f, -0.00443173f, 0.147911f, -0.131941f, 0.264578f, -0.111455f, 0.00532498f, -0.0109185f, 0.0702784f, -0.0128875f, 0.0375573f, -2.49192e-05f, -0.168669f, -0.176863f, 0.190569f, -0.0582962f, -0.207054f, 0.0970669f, 0.013431f, 0.0287341f, -0.200358f, 0.0708119f, 0.198948f, -0.0700131f, -0.104366f, -0.0571542f, -0.164839f, 0.138374f, 0.0477957f, 0.0271264f, 0.0601281f, 0.0733292f, 0.0917813f, 0.0476975f, -0.112223f, 0.124346f, -0.05552f, 0.0462923f, -0.0253524f, 0.209384f, 0.17856f, 0.278161f, -0.170892f, 0.043706f, 0.0695949f, 0.0205137f, -0.246932f, -0.0592688f, 0.00408656f, -0.0516248f, 0.125676f, 0.00215011f, -0.205357f, -0.163111f, 0.12987f, -0.0536155f, -0.0582815f, 0.0876419f, -0.0364365f, 0.194353f, -0.1584f, 0.0938954f, 0.0642675f, -0.286806f, 0.180919f, 0.0193369f, -0.00124905f, 0.107896f, 0.148408f, 0.0621313f, 0.116844f, 0.00427714f, -0.0430811f, -0.0411836f, -0.161899f, -0.0732558f, 0.0434334f, 0.196051f, -0.0698573f, -0.179865f, 0.112911f, -0.0194477f, -0.255233f, 0.0460004f, -0.099554f, -0.118267f, 0.0668831f, -0.0739574f, -0.083348f, -0.132676f, 0.00662454f, -0.235852f, -0.155645f, -0.135533f, -0.104842f, 0.136073f, 0.0102101f, 0.167324f, -0.27478f, -0.217442f, 0.158894f, 0.245967f, -0.107307f, 0.0784243f, 0.00699047f, 0.243566f, -0.0342239f, -0.152451f, -0.134764f, 0.0625328f, -0.00889736f, 0.0176686f, -0.208695f, 0.0526442f, -0.137498f, -0.0655057f, -0.265093f, -0.11208f, 0.203626f, 0.0783537f, 0.034891f, -0.0399991f, -0.0270222f, -0.111286f, -0.0584003f, 0.296427f, -0.0158787f, 0.120451f, 0.0272242f, 0.0900371f, 0.131105f, -0.0533265f, 0.257033f, 0.07938f, -0.143073f, -0.0577943f, 0.213141f, 0.268793f, 0.0421963f, 0.156838f, 0.164646f, 0.17711f, 0.0227887f, -0.154584f, 0.0594227f, -0.156264f, -0.0293826f, 0.101374f, -0.0045581f, 0.290033f, -0.00748682f, 0.0119944f, 0.279537f, 0.0302793f, 0.038639f, -0.00607573f, 0.00690406f, 0.0584605f, 0.031209f, 0.215436f, 0.0380044f, 0.0566764f, 0.0723431f, -0.118337f, -0.0650584f, 0.17381f, 0.116423f, -0.0512775f, -0.2276f, 0.0383499f, 0.204949f, 0.0713545f, 0.00399984f, 0.226423f, 0.129544f, -0.168072f, -0.0262507f, -0.187854f, 0.0307393f, -0.0550251f, -0.0336028f, 0.0961631f, 0.141131f, -0.0185958f, -0.125963f, 0.137377f, -0.261377f, -0.0467427f, -0.0196349f, -0.0701062f, -0.123119f, -0.0264404f, 0.166326f, -0.0228342f, 0.171931f, 0.101459f, -0.0476439f, 0.0356182f, 0.0917781f, -0.0624003f, 0.0614463f, -0.160195f, -0.215625f, -0.0682781f, 0.0758404f, 0.194895f, -0.0661935f, 0.157289f, 0.28695f, -0.188563f, -0.081452f, -0.12121f, -0.133882f, -0.0359921f, 0.105715f, 0.0599922f, -0.0216509f, 0.0769104f, -0.0908703f, -0.0124585f, -0.15747f, 0.0349661f, 0.0253049f, 0.0875356f, -0.163685f, -0.0315746f, -0.175096f, 0.0101168f, 0.0264244f, -0.148631f, -0.036326f, 0.18867f, -0.138779f, 0.118115f, -0.081364f, 0.0202441f, -0.0962171f, 0.0111151f, -0.0612749f, 0.0807847f, 0.0926975f, 0.131551f, 0.263389f, 0.109175f, 0.0443602f, 0.166478f, 0.120717f, -0.123164f, -0.0114162f, 0.0555495f, -0.0286313f, 0.0216706f, -0.00257089f, -0.175909f, -0.153189f, 0.0437068f, -0.0272179f, -0.091131f, -0.0299339f, 0.10276f, -0.141147f, -0.176807f, 0.1973f, -0.0987194f, 0.0235999f, -0.141484f, -0.216505f, 0.0685089f, -0.0537268f, 0.0603811f, 0.00951713f, 0.0658531f, 0.0191203f, 0.197777f, -0.171104f, 0.074699f, 0.240436f, -0.116422f, 0.0790463f, -0.00366671f, -0.0536282f, 0.15973f, 0.00937862f, -0.0952066f, 0.0961368f, 0.0137876f, 0.0409054f, -0.136738f, -0.010114f, -0.0593421f, -0.202141f, 0.121601f, -0.224847f, 0.243431f, -0.0844739f, 0.130044f, 0.119089f, -0.0762446f, 0.221158f, -0.019747f, -0.164292f, 0.0609186f, 0.0720973f, -0.0566487f, 0.0861602f, -0.0647596f, 0.0374941f, 0.0437987f, 0.00528451f, -0.115559f, -0.00545224f, -0.0556241f, 0.131536f, 0.0890436f, 0.027597f, -0.130004f, 0.0272588f, -0.150187f, 0.0150452f, 0.00237933f, 0.0527512f, -0.0651117f, 0.233263f, 0.173137f, 0.0806915f, 0.0642937f, 0.00111283f, 0.120466f, 0.124892f, -0.119775f, 0.0242004f, 0.0195054f, -0.114326f, 0.241802f, -0.0239617f, 0.0742962f, 0.0790873f, 0.10656f, 0.0426049f, -0.0394933f, 0.145587f, 0.139849f, 0.108658f, 0.0940343f, -0.029298f, -0.0872405f, -0.189069f, -0.0145965f, 0.0260647f, 0.105564f, -0.17305f, -0.147101f, 0.128222f, -0.112248f, 0.155892f, -0.168687f, -0.0204266f, -0.0465777f, 0.138435f, 0.149425f, 0.115902f, -0.0769349f, -0.0357427f, -0.164979f, 0.213401f, -0.0453619f, 0.00957838f, 0.101572f, 0.0543287f, -0.117782f, -0.0782143f, 0.195626f, -0.00485659f, -0.0713348f, -0.208899f, 0.104278f, 0.160253f, -0.0300887f, 0.0811842f, -0.15903f, 0.107123f, -0.0284804f, -0.261491f, -0.034989f, -0.0316675f, 0.139759f, -0.223736f, -0.0332909f, -0.242679f, -0.0152435f, -0.0448901f, 0.162907f, 0.108161f, 0.114816f, 0.1162f, 0.110992f, 0.281171f, 0.0189695f, -0.149512f, 0.215429f, 0.190981f, 0.237114f, 0.126588f, -0.125516f, -0.0778076f, 0.135126f, 0.0630009f, 0.182181f, 0.148463f, 0.180352f, 0.0563062f, -0.251908f, 0.0448147f, -0.0578556f, 0.148276f, -0.0206517f, 0.00420223f, 0.168729f, 0.0866106f, 0.109961f, 0.12133f, -0.180105f, 0.312195f, -0.100539f, -0.0967563f, 0.0556062f, -0.0570724f, 0.225901f, 0.0232091f, 0.11488f, -0.161303f, 0.0131667f, 0.136466f, -0.0270651f, 0.0267156f, 0.0950398f, 0.0612684f, 0.118862f, -0.104668f, -0.0935596f, -0.174535f, 0.0195387f, -0.00200487f, 0.170287f, -0.0628097f, 0.119854f, 0.0941947f, 0.0298327f, -0.183089f, 0.215258f, -0.139426f, 0.124392f, 0.15946f, 0.00532991f, -0.0285639f, 0.257738f, 0.00975794f, -0.044093f, 0.0466714f, 0.109449f, 0.163303f, -0.134884f, -0.0772469f, 0.00692107f, 0.0164461f, -0.0577674f, -0.124855f, 0.0800659f, 0.14251f, 0.129072f, -0.0141297f, -0.312262f, -0.270675f, -0.234011f, -0.244184f, 0.207326f, 0.0215513f, -0.126121f, -0.0177458f, -0.212747f, 0.342306f, 0.0902985f, 0.298396f, 0.15581f, -0.209787f, -0.274917f, -0.176313f, -0.1841f, -0.0246379f, 0.00245831f, -0.00417565f, -0.0604094f, 0.39855f, -0.183812f, -0.0379937f, -0.126469f, 0.184569f, 0.0395012f, -0.212966f, 0.179943f, 0.152222f, 0.191432f, 0.200944f, -0.12272f, 0.0365277f, 0.0718983f, 0.114891f, -0.225815f, 0.013607f, -0.0456534f, -0.104494f, -0.252279f, -0.202601f, -0.170972f, -0.153772f, -0.167216f, -0.341825f, 0.109258f, -0.0592496f, 0.10718f, -0.0901574f, -0.305162f, 0.141733f, 0.138053f, -0.0504641f, -0.0286849f, 0.149624f, -0.00823433f, -0.172245f, 0.17431f, 0.276343f, 0.0775955f, -0.0110997f, -0.0256119f, -0.030221f, -0.0555027f, 0.0867881f, 0.0551012f, -0.201725f, -0.116126f, -0.0775106f, -0.0742509f, 0.064106f, -0.377057f, 0.0352254f, 0.233556f, -0.203563f, 0.121847f, -0.199176f, -0.327954f, 0.506488f, -0.133154f, 0.291958f, 0.14391f, -0.104768f, 0.0495475f, 0.0488147f, -0.111277f, 0.116027f, 0.173445f, -0.201044f, 0.140698f, 0.029968f, 0.105039f, 0.125147f, 0.0247834f, 0.303795f, 0.105938f, -0.0566626f, 0.00991508f, -0.136274f, 0.196186f, -0.0877528f, -0.142657f, -0.0882853f, -0.00287658f, -0.248912f, -0.0254236f, 0.183727f, -0.0437938f, 0.022538f, -0.408097f, 0.257783f, -0.0693964f, 0.139656f, -0.061037f, -0.00497023f, 0.229207f, 0.0949023f, -0.221199f, -0.13795f, -0.190412f, -0.117593f, -0.353685f, -0.134178f, -0.112466f, 0.0101617f, -0.111467f, -0.010549f, 0.289771f, -0.400457f, 0.204642f, 0.199125f, -0.243231f, -0.130498f, -0.178212f, -0.108359f, -0.185582f, 0.230431f, -0.179545f, 0.0963242f, -0.0614328f, 0.130004f, 0.265355f, -0.133313f, -0.146129f, 0.0441971f, 0.121851f, -0.0386048f, 0.1288f, -0.0126557f, 0.14311f, -0.0440997f, 0.143665f, 0.0869717f, 0.193834f, 0.151762f, 0.112137f, -0.131856f, 0.0588369f, 0.194629f, -0.407744f, -0.321456f, -0.0126691f, -0.197771f, -0.0678425f, 0.089359f, 0.190569f, 0.0966351f, -0.00102093f, 0.162238f, -0.0671296f, 0.241511f, 0.108126f, 0.148869f, 0.100808f, 0.0612211f, 0.0213565f, -0.0649494f, -0.192164f, 0.101018f, 0.0524249f, -0.185514f, -0.0624571f, -0.200542f, 0.0471125f, -0.383112f, 0.0322524f, 0.0816203f, -0.0699196f, 0.0208243f, -0.162982f, -0.0415012f, 0.0701968f, -0.260063f, -0.146257f, -0.00790204f, 0.0998336f, 0.0198864f, -0.0551245f, -0.0953835f, -0.291686f, -0.140065f, 0.114451f, -0.167914f, -0.266595f, -0.046768f, 0.0674964f, 0.25792f, -0.030143f, 0.220709f, 0.175791f, -0.209975f, -0.0917304f, -0.338669f, -0.106226f, -0.0255332f, -0.0538518f, -0.20252f, 0.166059f, 0.281094f, 0.125282f, 0.11336f, -0.144846f, 0.0409975f, 0.277514f, -0.0861948f, 0.177098f, 0.0307963f, 0.103087f, 0.200563f, 0.0983335f, -0.18439f, 0.0132434f, 0.00261788f, 0.207064f, 0.131548f, -0.250859f, -0.189908f, 0.216585f, 0.0815738f, -0.206622f, -0.0192646f, 0.383217f, -0.041425f, -0.193418f, 0.0914571f, -0.147747f, -0.157213f, 0.0353084f, 0.313452f, -0.0990107f, 0.204226f, 0.131983f, -0.0847356f, -0.122272f, -0.197898f, 0.0174259f, -0.0150139f, 0.164097f, -0.0874855f, 0.146876f, -0.112884f, 0.292575f, -0.0351722f, -0.182529f, 0.0565296f, 0.0389767f, 0.0445313f, 0.0161879f, 0.140095f, 0.112961f, -0.223743f, -0.131057f, 0.14739f, 0.197041f, 0.12911f, 0.170312f, 0.0470266f, -0.101116f, -0.122916f, -0.0126193f, 0.11867f, 0.0378038f, -0.118885f, 0.305059f, 0.254029f, 0.128199f, 0.339913f, 0.114554f, 0.0237625f, 0.166316f, 0.190909f, -0.0241294f, 0.0619696f, 0.147238f, -0.0891817f, -0.0281379f, 0.116844f, 0.120897f, 0.14096f, -0.0701149f, 0.353246f, 0.36714f, 0.203382f, 0.223038f, -0.164831f, -0.054177f, -0.0919139f, 0.0298921f, -0.209436f, 0.0127353f, 0.266133f, 0.163511f, 0.294585f, 0.0814564f, 0.143306f, -0.0458125f, -0.0394825f, -0.0997682f, 0.0306316f, 0.00169756f, 0.0972424f, 0.291704f, 0.0392285f, -0.0566636f, 0.10771f, -0.049419f, 0.0946935f, -0.0556592f, -0.0401718f, -0.0227522f, -0.0193512f, -0.0354972f, 0.0399291f, 0.0975659f, -0.029435f, 0.0413036f, -0.137828f, -0.180498f, 0.0241286f, 0.311684f, -0.0380068f, -0.120722f, 0.250349f, -0.385776f, 0.053214f, -0.0888138f, 0.240798f, 0.298719f, -0.252565f, -0.068101f, 0.0150112f, -0.102173f, -0.168318f, -0.00860956f, -0.181918f, 0.155439f, 0.0774659f, -0.0931469f, 0.259739f, -0.195454f, -0.231561f, 0.310421f, 0.306146f, 0.0914167f, 0.0769811f, 0.108223f, -0.114479f, -0.143916f, 0.224497f, -0.192419f, 0.294531f, 0.169723f, 0.0587625f, 0.24264f, 0.0574284f, -0.241803f, 0.0876113f, -0.341028f, -0.298281f, 0.100857f, 0.220297f, -0.156666f, -0.271859f, -0.0909708f, 0.235106f, 0.0168589f, -0.189701f, 0.00414023f, -0.315511f, -0.225037f, 0.0917803f, -0.102256f, 0.0357498f, -0.107072f, 0.0562142f, 0.00680612f, -0.0215009f, -0.0718057f, 0.0514249f, -0.181969f, 0.0343097f, 0.194684f, -0.117555f, 0.197352f, 0.0042005f, 0.146501f, -0.00801158f, 0.0412173f, -0.0774603f, -0.0493171f, 0.115371f, 0.189165f, 0.205865f, -0.0468005f, -0.129928f, -0.0812228f, -0.103564f, 0.0601654f, 0.308469f, 0.273543f, -0.267475f, 0.202442f, -0.022453f, -0.0272051f, 0.183539f, -0.192707f, -0.368476f, -0.236785f, 0.323012f, 0.102399f, -0.194545f, 0.0231271f, 0.242385f, -0.313301f, 0.105792f, -0.0484706f, 0.134583f, -0.0427168f, 0.115016f, 0.162562f, -0.0707019f, -0.0228292f, -0.122366f, 0.181604f, 0.13068f, 0.096547f, 0.312225f, -0.139588f, 0.0976624f, -0.0513893f, -0.180542f, -0.0400129f, -0.133679f, 0.211649f, 0.228682f, 0.152685f, -0.201684f, 0.0472814f, 0.0420778f, -0.0732875f, -0.0246313f, 0.193739f, 0.0497034f, 0.0233332f, -0.0730534f, -0.0813124f, 0.0969621f, 0.0425359f, -0.00674572f, 0.0842734f, -0.188946f, 0.151426f, -0.0913359f, 0.137718f, 0.15578f, -0.160886f, 0.119935f, 0.0860001f, -0.0190976f, -0.331345f, -0.0104942f, -0.0353933f, -0.0132834f, 0.0460253f, -0.321911f, -0.0639858f, 0.315761f, 0.0333911f, -0.163197f, 0.109566f, 0.30345f, 0.137218f, -0.126701f, -0.12953f, -0.175032f, 0.084818f, 0.142092f, -0.0315461f, -0.125846f, 0.171468f, 0.392517f, 0.321092f, -0.0626093f, -0.19828f, 0.138666f, -0.16711f, -0.0958821f, -0.298216f, 0.0886035f, 0.0446672f, 0.170413f, -0.151993f, -0.0688932f, 0.0833525f, 0.103529f, 0.0167813f, 0.224195f, 0.0317924f, 0.057363f, 0.0376331f, -0.168322f, -0.243191f, 0.259479f, -0.00780162f, 0.0387375f, -0.281429f, -0.00693008f, 0.078863f, -0.0179196f, -0.218638f, -0.0312391f, -0.18121f, 0.0379013f, 0.0984928f, 0.0581696f, -0.0405282f, -0.0587851f, 0.0212335f, -0.191012f, -0.129176f, 0.0977218f, -0.150177f, 0.0456295f, -0.0580909f, -0.214759f, -0.1281f, -0.0761185f, -0.283152f, -0.265279f, 0.0228379f, 0.266321f, -0.133778f, 0.0180221f, -0.00170836f, 0.331011f, 0.113324f, -0.0330242f, 0.158661f, 0.0654767f, 0.253152f, 0.129429f, 0.0518627f, 0.0808261f, -0.0120176f, -0.106606f, 0.0263674f, -0.113445f, -0.0641304f, -0.0368997f, 0.0940787f, 0.0328545f, -0.111149f, -0.120842f, -0.0555775f, 0.201266f, 0.051034f, 0.200226f, -0.0676116f, -0.171344f, -0.109668f, 0.203168f, 0.210134f, -0.0146123f, -0.0422275f, -0.154101f, -0.229274f, 0.0538566f, -0.227679f, -0.0697673f, 0.154303f, 0.0532908f, -0.194164f, 0.0268995f, -0.0680621f, -0.060786f, 0.0162124f, 0.199714f, -0.0672941f, 0.148713f, -0.129761f, -0.0766902f, -0.0397825f, -0.110553f, 0.125167f, -0.149727f, -0.0551407f, -0.126693f, 0.0328081f, -0.11442f, -0.0579338f, -0.0131037f, 0.0803209f, 0.0138648f, 0.222935f, 0.0551306f, -0.156649f, 0.180529f, 0.188123f, -0.213186f, -0.177414f, 0.0321709f, -0.0568263f, 0.00936928f, -0.150889f, 0.0145029f, 0.0474278f, -0.261595f, -0.184271f, 0.140179f, -0.102995f, 0.225455f, -0.00823882f, -0.0615107f, 0.0311793f, -0.0718134f, -0.098993f, -0.0420133f, -0.0341419f, 0.145355f, -0.0589933f, 0.0194651f, 0.0301695f, -0.188548f, 0.0893816f, 0.138425f, -0.0519605f, 0.154613f, 0.157347f, 0.123867f, -0.0767533f, 0.113346f, 0.00994931f, -0.0284418f, -0.0184848f, 0.0714148f, -0.0937806f, 0.0675069f, -0.14318f, 0.167789f, 0.0945106f, -0.0928227f, 0.000803821f, 0.190585f, -0.0742161f, 0.0744369f, -0.134941f, -0.0328744f, 0.0467842f, 0.0761266f, 0.262273f, 0.0489845f, 0.0132497f, -0.0869901f, -0.103909f, -0.162569f, 0.153604f, 0.20372f, 0.0984475f, 0.176591f, 0.0859005f, 0.0381629f, -0.160123f, 0.0745633f, 0.0759234f, 0.0932381f, -0.0749383f, 0.00919844f, 0.156627f, -0.079161f, -0.0649794f, 0.0696328f, -0.206603f, 0.170492f, 0.294362f, -0.00477858f, -0.0912704f, -0.143337f, 0.0980845f, -0.107371f, -0.177589f, -0.0878837f, -0.183742f, 0.123868f, 0.132642f, 0.00302314f, -0.0256324f, -0.104201f, 0.0887284f, -0.00385419f, -0.0205008f, -0.202138f, 0.164697f, 0.039248f, -0.0946095f, 0.11146f, 0.133002f, 0.0749244f, 0.146438f, 0.0360308f, 0.187891f, -0.00777598f, -0.31966f, -0.220641f, 0.116216f, 0.096072f, 0.0470869f, -0.0282989f, 0.042488f, -0.240443f, -0.173f, -0.169229f, 0.0604586f, 0.0818892f, 0.145007f, 0.0407946f, 0.0594134f, -0.0833267f, 0.0130281f, 0.0658387f, 0.177776f, -0.17642f, -0.106398f, -0.203905f, 0.281218f, -0.141512f, 0.110768f, 0.081099f, -0.21291f, -0.235619f, 0.0414822f, -0.0401093f, 0.0288119f, -0.00770889f, -0.274095f, 0.0184116f, -0.0755828f, -0.21694f, 0.0431234f, 0.154014f, -0.0158173f, -0.10041f, -0.0693332f, -0.116667f, 0.0387801f, -0.210877f, -0.0907612f, -0.208529f, 0.0619983f, 0.00798033f, 0.275301f, -0.298319f, 0.105926f, -0.0886648f, -0.144716f, 0.0422453f, 0.0363203f, 0.159199f, -0.0746369f, -0.254484f, -0.14444f, -0.0202168f, -0.183016f, -0.0674082f, -0.0574929f, -0.216429f, -0.119999f, -0.0736859f, 0.082353f, -0.103135f, -0.37881f, -0.0235089f, -0.0991889f, -0.0336234f, -0.0561417f, -0.0511883f, 0.249064f, 0.0262442f, 0.184865f, 0.295802f, 0.279701f, 0.238253f, 0.20832f, 0.0781103f, 0.0945896f, -0.312976f, -0.262448f, -0.037122f, 0.120244f, -0.0655423f, -0.26136f, -0.259959f, -0.124201f, -0.0763749f, -0.135495f, -0.0328492f, -0.033233f, -0.207439f, -0.12446f, 0.0586986f, -0.109172f, 0.14077f, 0.0529753f, -0.0275495f, -0.131518f, 0.0884728f, 0.0719357f, 0.188575f, -0.272092f, 0.238577f, -0.0504369f, 0.247074f, 0.0224514f, -0.0974453f, 0.21001f, -0.022521f, -0.117758f, -0.0469654f, 0.168465f, 0.272427f, 0.0362257f, -0.0150692f, -0.00860788f, -0.154457f, 0.0552298f, 0.0370169f, -0.171499f, -0.236662f, 0.196838f, -0.0696767f, 0.0225085f, 0.136863f, -0.0384544f, -0.131576f, -0.144281f, -0.0273719f, -0.348746f, 0.0861336f, -0.380741f, -0.309548f, 0.00338602f, -0.062467f, 0.152535f, 0.199206f, -0.0174676f, 0.197734f, -0.0637949f, 0.10335f, -0.0114101f, 0.0931269f, -0.201607f, -0.475963f, -0.163227f, 0.0834395f, -0.0324236f, 0.0421025f, -0.00771547f, 0.315664f, -0.182037f, 0.0030393f, 0.0880546f, -0.123544f, -0.0581384f, -0.142396f, -0.317193f, 0.387458f, -0.236166f, -0.172693f, 0.298122f, -0.144911f, -0.314661f, -0.128083f, -0.282695f, -0.239661f, 0.332396f, -0.0199331f, -0.0624675f, 0.102004f, -0.0103704f, 0.0901281f, 0.0687641f, 0.061826f, 0.159516f, -0.0953005f, 0.00719718f, -0.262126f, 0.0537468f, -0.30437f, -0.0661834f, -0.0806509f, 0.314388f, 0.033472f, 0.0900301f, 0.119306f, -0.226834f, 0.0791338f, 0.0581346f, 0.126756f, 0.223387f, -0.0117027f, 0.17581f, -0.0117926f, 0.110557f, 0.0719737f, 0.328665f, -0.196319f, 0.152976f, -0.20621f, 0.293668f, -0.110381f, -0.137994f, -0.148649f, 0.0249166f, -0.0674873f, 0.282122f, -0.101517f, 0.189398f, 0.0174309f, 0.00471008f, -0.115083f, -0.114508f, 0.179319f, 0.222817f, -0.252288f, 0.0595393f, 0.127377f, -0.0274255f, 0.0970103f, -0.0410092f, -0.224457f, -0.0443427f, 0.195154f, 0.0915417f, 0.00438102f, 0.165465f, -0.0215651f, 0.0313634f, -0.355339f, 0.118863f, -0.0877241f, 0.00771601f, 0.113024f, 0.017738f, 0.0152967f, 0.214122f, -0.00650284f, 0.304134f, 0.0111673f, -0.00990599f, 0.0778962f, 0.231512f, -0.0134258f, -0.0527489f, 0.0551536f, 0.0121673f, -0.137289f, 0.0344819f, -0.330489f, 0.0579892f, 0.136488f, -0.118963f, -0.00429899f, -0.168261f, -0.212931f, 0.164917f, 0.107478f, 0.264972f, -0.127485f, -0.167103f, -0.14501f, 0.177613f, -0.0313879f, -0.0927021f, -0.000484444f, 0.089481f, -0.355499f, -0.260883f, -0.199613f, 0.0928524f, -0.0413481f, -0.158635f, 0.240773f, 0.00942778f, -0.0805867f, -0.110803f, 0.09582f, -0.0820573f, 0.0268577f, -0.06163f, 0.230002f, 0.182806f, -0.155793f, -0.309876f, 0.107895f, 0.135819f, -0.116293f, 0.206951f, -0.143775f, -0.0542793f, -0.0021397f, 0.0613914f, 0.0977375f, -0.0499981f, 0.120708f, 0.0349759f, -0.0798703f, 0.0133024f, -0.046242f, 0.00963243f, -0.0554981f, 0.116369f, 0.0409101f, 0.0332575f, 0.0595747f, 0.155043f, -0.0144675f, 0.0311739f, -0.0216852f, 0.098754f, 0.214597f, 0.00629871f, -0.033889f, -0.0138748f, -0.0527232f, 0.0734688f, -0.0479799f, -0.0394931f, -0.00473927f, 0.0162987f, 0.0123101f, -0.0995128f, 0.0350302f, 0.162151f, -0.128221f, 0.139873f, -0.0354832f, 0.0321798f, -0.137031f, -0.188539f, 0.133847f, 0.10642f, -0.0216914f, 0.125399f, 0.121902f, -0.00160122f, 0.0599827f, -0.040729f, -0.0515526f, 0.222193f, -0.100572f, -0.172939f, -0.00360054f, -0.0282859f, 0.101037f, 0.110915f, 0.0444712f, 0.010894f, -0.27944f, 0.192593f, 0.084256f, -0.0942662f, -0.00578964f, 0.227671f, -0.0777192f, -0.0661216f, 0.0432047f, -0.0605396f, 0.161218f, -0.021406f, -0.000407596f, -0.0488443f, 0.0221023f, -0.0306072f, 0.0194882f, 0.0180034f, -0.0158114f, -0.0303131f, 0.13056f, 0.00124882f, -0.149137f, 0.146993f, 0.0819876f, 0.240416f, -0.0125055f, -0.0720851f, -0.00747659f, 0.0369215f, 0.162703f, -0.0547926f, 0.0936716f, 0.0221188f, -0.0732927f, -0.0858235f, 0.151707f, 0.0918009f, 0.143622f, -0.0286931f, 0.0317466f, 0.0321792f, -0.242398f, 0.0592779f, 0.000428038f, 0.0973631f, -0.0875924f, -0.0208664f, 0.0927469f, 0.146633f, -0.092865f, -0.122257f, 0.158212f, 0.0454458f, -0.105524f, 0.00934124f, 0.0271322f, -0.0873609f, -0.15758f, 0.0328889f, -0.0360764f, 0.0198861f, -0.0130836f, -0.154118f, -0.0231312f, 0.0627793f, -0.0774125f, -0.0488722f, -0.00489492f, -0.0879805f, -0.0359909f, -0.0017841f, -0.0250931f, -0.063705f, -0.116328f, 0.191078f, 0.0476416f, 0.0930326f, -0.114598f, -0.0709616f, 0.0827819f, 0.108868f, -0.0869767f, -0.0582838f, 0.120786f, 0.118224f, -0.12462f, -0.0740747f, 0.049113f, 0.0905367f, -0.0776715f, -0.0935849f, -0.189754f, -0.0235819f, -0.19443f, -0.00215982f, 0.0371356f, 0.0278019f, -0.217778f, -0.0509312f, 0.059751f, -0.0410383f, 0.117111f, 0.0387095f, 0.10543f, 0.0799985f, 0.105469f, -0.193238f, 0.198115f, 0.0324923f, 0.160677f, -0.206221f, 0.0150033f, -0.0910484f, 0.114195f, -0.0320023f, -0.0320947f, -0.00727821f, -0.227994f, -0.0511497f, 0.174961f, 0.0654326f, 0.0795421f, -0.00792696f, -0.0021267f, -0.100696f, -0.0534976f, 0.127984f, -0.0813756f, 0.101089f, -0.145093f, 0.152125f, 0.0627696f, 0.0589034f, 0.167291f, -0.109576f, -0.111277f, -0.0696636f, -0.0322054f, 0.00346736f, -0.0971255f, 0.0697804f, -0.210925f, -0.11635f, -0.052912f, 0.0346173f, -0.177697f, 0.0927123f, 0.0787721f, 0.118736f, 0.030331f, -0.00435634f, 0.000902201f, 0.118006f, 0.0575435f, 0.29331f, 0.137571f, 0.000878836f, -0.104238f, -0.164962f, -0.110181f, -0.0926139f, -0.0354199f, 0.0980522f, 0.0859876f, -0.00572039f, 0.0845585f, 0.00713375f, 0.180354f, -0.152385f, -0.0520625f, -0.0673054f, 0.0753183f, 0.0482817f, 0.0968169f, 0.204303f, -0.127458f, -0.0761804f, -0.00106312f, -0.138311f, 0.0283646f, -0.0815591f, 0.0974396f, -0.0110472f, 0.00864319f, 0.0427965f, -0.0052315f, 0.0769083f, 0.0701925f, -0.0365221f, 0.0644143f, -0.195215f, 0.0779052f, 0.0683467f, 0.0407242f, 0.0874274f, 0.0568914f, -0.104454f, -0.0039708f, -0.168203f, 0.245493f, 0.202255f, 0.13784f, 0.0280401f, 0.0845729f, 0.156386f, -0.00897685f, 0.0461714f, -0.25831f, -0.111526f, 0.135365f, -0.109031f, 0.157197f, -0.0490626f, 0.105701f, -0.0830972f, 0.0394694f, -0.0311685f, -0.0272036f, -0.158553f, 0.0365486f, 0.248753f, -0.00746904f, 0.117702f, -0.0878407f, 0.0824329f, 0.156126f, 0.171712f, -0.259162f, -0.0160859f, -0.162643f, -0.141534f, 0.148689f, 0.331067f, 0.062659f, 0.141511f, 0.0562489f, -0.280449f, 0.123492f, 0.230197f, -0.158933f, -0.0795124f, 0.0280159f, 0.130254f, -0.331917f, 0.195513f, -0.0421953f, -0.0192594f, -0.0105433f, 0.149805f, 0.189689f, -0.14971f, -0.0643318f, 0.0267405f, 0.309462f, -0.123952f, 0.239323f, 0.137504f, -0.213902f, -0.310565f, -0.0319154f, -0.081027f, 0.288254f, 0.169648f, -0.334794f, -0.0156568f, 0.0233303f, -0.169239f, -0.0595243f, -0.0431619f, -0.075607f, -0.121505f, -0.0899316f, 0.175763f, -0.00903817f, 0.103211f, 0.115717f, -0.0886494f, 0.152478f, -0.0864677f, -0.221193f, -0.154509f, 0.105323f, -0.107587f, -0.0769203f, 0.0805999f, 0.101131f, -0.0832265f, 0.0518874f, 0.192355f, -0.120224f, 0.00622215f, 0.0251176f, 0.169556f, -0.149146f, -0.208154f, -0.257498f, -0.199748f, 0.0210424f, -0.0293196f, 0.077687f, 0.0861706f, 0.157598f, -0.134418f, 0.0638509f, -0.146035f, -0.140856f, 0.0806782f, 0.159834f, 0.066388f, 0.147168f, -0.0115862f, -0.163826f, 0.102837f, -0.362753f, -0.0215273f, 0.116684f, -0.147145f, 0.0908352f, -0.13737f, -0.0594426f, 0.0899632f, 0.0148418f, -0.225903f, -0.124503f, 0.0202216f, 0.0274564f, 0.0444995f, -0.0459966f, -0.212611f, -0.00658755f, -0.341036f, 0.112267f, -0.0485796f, 0.167738f, 0.0831361f, -0.340222f, -0.243797f, 0.182269f, -0.0657259f, 0.351352f, -0.318463f, -0.0248881f, -0.034023f, -0.133056f, 0.0196477f, -0.0968066f, -0.246531f, -0.143116f, 0.285988f, -0.137244f, 0.218927f, 0.0367909f, 0.0542169f, -0.1472f, -0.320592f, 0.172971f, -0.082101f, -0.0554897f, 0.0616187f, 0.0293155f, -0.108858f, 0.166181f, 0.0690378f, -0.0348407f, -0.184363f, 0.0518173f, 0.213306f, 0.108817f, -0.026921f, 0.0537036f, 0.191456f, 0.00614137f, -0.165176f, 0.0849793f, -0.185525f, -0.0324207f, 0.133286f, -0.335662f, 0.141743f, 0.0553448f, -0.0341434f, -0.207858f, 0.0744641f, -0.0438704f, -0.106453f, -0.222315f, 0.0124134f, -0.187029f, -0.0941986f, -0.269332f, 0.2049f, 0.160828f, -0.356804f, 0.233253f, -0.0498149f, -0.100311f, 0.169275f, -0.0869545f, 0.0892812f, -0.087871f, -0.101422f, 0.260943f, -0.343269f, -0.235053f, 0.388979f, -0.203659f, -0.0302919f, 0.124684f, -0.106279f, -0.0762194f, 0.0314694f, 0.405282f, 0.0890693f, -0.031515f, 0.121802f, -0.00854126f, -0.0202383f, -0.0821008f, 0.113f, 0.0647575f, -0.0613618f, 0.150296f, 0.0942794f, -0.0266325f, -0.117109f, -0.00782927f, -0.0618358f, -0.214f, 0.184485f, -0.0635826f, -0.326453f, -0.309453f, -0.273138f, 0.00555964f, 0.0792257f, -0.00525047f, -0.0841444f, 0.054988f, -0.05041f, -0.202179f, -0.280835f, -0.303462f, 0.230021f, 0.162871f, -0.250378f, 0.261818f, 0.137514f, 0.0334716f, 0.186018f, -0.343699f, 0.011909f, 0.0747966f, 0.0712546f, 0.279277f, 0.297698f, 0.0739383f, -0.149504f, -0.0747074f, 0.0181047f, 0.25354f, -0.096598f, 0.168146f, 0.0620491f, -0.072677f, -0.0148864f, -0.145658f, -0.259777f, 0.0560789f, -0.0780991f, -0.0111365f, 0.0273338f, 0.0982891f, -0.145779f, 0.0106168f, -0.200868f, -0.174127f, -0.055269f, -0.0949739f, -0.0691243f, 0.0331597f, 0.022748f, -0.00328181f, 0.00690147f, 0.102305f, 0.0136049f, 0.0160055f, 0.0365173f, -0.137891f, -0.183115f, -0.102054f, -0.0177183f, -0.0249091f, 0.0103907f, 0.107372f, 0.215818f, 0.123631f, 0.0308327f, -0.00249133f, 0.00081308f, 0.231539f, 0.0805164f, -0.0256119f, -0.0668449f, -0.17432f, 0.17412f, 0.014825f, -0.0107124f, -0.148044f, 0.202805f, -0.0926601f, -0.0913012f, -0.106764f, 0.142017f, 0.0694238f, -0.0613949f, -0.253285f, 0.171749f, -0.121056f, 0.28008f, 0.0702513f, 0.00653766f, 0.0520022f, 0.132501f, 0.0663647f, -0.102824f, 0.168401f, 0.00542367f, -0.106878f, 0.102004f, -0.0486817f, -0.0654391f, 0.0165411f, -0.0899053f, -0.0737273f, 0.0654252f, 0.088672f, -0.12168f, 0.101783f, 0.0712414f, 0.146457f, 0.0561392f, -0.195261f, 0.0375885f, -0.0451204f, 0.13411f, 0.0342277f, 0.185926f, 0.0486406f, -0.0233463f, 0.00817098f, -0.0689537f, -0.109536f, 0.02244f, -0.0161158f, -0.00286272f, 0.0496864f, -0.0491613f, 0.136863f, -0.014691f, -0.163267f, -0.0808653f, -0.165383f, -0.112162f, 0.0727954f, -0.00367296f, -0.0285555f, 0.190441f, -0.0851482f, -0.12593f, 0.0261142f, -0.014467f, -0.244623f, 0.0721192f, 0.0582706f, 0.0864639f, -0.0638476f, 0.217686f, 0.0964708f, 0.0382789f, -0.0433241f, -0.0182574f, -0.0823222f, 0.0848843f, 0.0560335f, -0.280255f, 0.0125574f, -0.125183f, 0.0241807f, 0.0197535f, 0.175945f, -0.0724856f, 0.30582f, -0.0163232f, -0.266861f, -0.0135118f, 0.205095f, -0.0168028f, 0.242793f, -0.156621f, 0.191128f, -0.0319018f, -0.0638565f, 0.0540416f, 0.0532816f, 0.162591f, 0.11698f, 0.226258f, -0.259476f, 0.00415133f, 0.180471f, -0.00768218f, -0.00709277f, -0.0418433f, -0.0607063f, -0.114554f, -0.0715807f, -0.112632f, -0.022341f, -0.191019f, -0.0441105f, -0.2191f, 0.0481702f, 0.0676156f, 0.00708778f, 0.0263661f, 0.190134f, -0.190423f, 0.021502f, -0.0837899f, 0.119905f, -0.16499f, 0.106602f, 0.0536555f, 0.179056f, -0.219319f, -0.0188681f, -0.131222f, 0.279335f, -0.168344f, -0.0811816f, 0.300009f, 0.0758111f, -0.00280361f, 0.211252f, -0.303392f, 0.125285f, 0.0964154f, -0.0561935f, -0.156693f, 0.0804797f, 0.13909f, 0.0609287f, -0.140864f, -0.121789f, -0.0773293f, 0.104767f, 0.0169921f, -0.0694509f, -0.049881f, -0.0137405f, 0.3357f, 0.241475f, 0.000477846f, 0.151033f, 0.049578f, -0.0735312f, -0.264354f, 0.117013f, -0.144018f, 0.188754f, -0.00288171f, 0.0677222f, -0.0131371f, 0.108464f, -0.205301f, -0.193487f, -0.19982f, 0.01849f, 0.147697f, 0.0424072f, 0.200371f, 0.0799347f, -0.0763841f, -0.221946f, 0.181502f, 0.207012f, -0.0366938f, -0.0776826f, 0.152961f, -0.0457305f, -0.0602823f, -0.0760448f, 0.290364f, 0.12545f, 0.0177486f, 0.0137254f, 0.00972781f, -0.088993f, -0.171603f, -0.355146f, 0.019381f, 0.070985f, -0.134579f, -0.255649f, -0.236191f, 0.0798481f, 0.190538f, -0.260963f, -0.191125f, 0.0812742f, 0.0632352f, -0.249206f, -0.20044f, 0.313669f, 0.316095f, -0.189558f, -0.126949f, -0.0230684f, 0.115201f, 0.219866f, 0.189494f, 0.116475f, -0.0114366f, 0.232397f, -0.144533f, -0.0722317f, 0.480259f, 0.1303f, -0.0346764f, 0.0868118f, -0.38688f, 0.0178994f, 0.119438f, 0.101356f, -0.00247538f, 0.307409f, 0.105627f, 0.2346f, -0.0553596f, 0.0749679f, -0.174176f, -0.124946f, 0.347358f, -0.196105f, 0.232339f, -0.0131566f, -0.0334705f, -0.215054f, 0.273833f, 0.205146f, -0.185272f, -0.0239211f, 0.0585625f, -0.0257441f, -0.176167f, 0.143865f, -0.21044f, 0.0683682f, 0.189665f, -0.0934552f, 0.140985f, -0.0600785f, -0.381241f, 0.117774f, 0.114627f, -0.259562f, -0.162161f, 0.00539164f, -0.270092f, -0.142169f, 0.13041f, 0.0774388f, -0.310026f, 0.00984068f, 0.0238491f, 0.322356f, -0.0897189f, -0.0409313f, 0.159522f, 0.368454f, 0.191949f, 0.0120491f, -0.225147f, 0.103027f, 0.0943266f, -0.0940524f, -0.0506565f, 0.0267692f, 0.0983867f, -0.149302f, 0.159282f, -0.234115f, -0.145628f, 0.252354f, 0.203077f, 0.224079f, 0.138173f, 0.21446f, -0.454013f, 0.0838916f, -0.09225f, -0.0810323f, -0.0603308f, 0.162331f, -0.112313f, -0.262556f, 0.324263f, -0.111199f, -0.0846485f, -0.10472f, -0.373479f, 0.0750092f, 0.183685f, 0.200273f, -0.118051f, 0.223431f, 0.266241f, -0.0349472f, 0.00508978f, -0.381922f, 0.079783f, -0.0257098f, 0.035677f, 0.197318f, 0.0894001f, 0.053153f, -0.0125245f, 0.218508f, 0.152126f, -0.253592f, -0.236277f, -0.031466f, -0.209283f, -0.176193f, 0.170067f, -0.239577f, 0.0558461f, -0.0941654f, -0.133236f, 0.181418f, 0.0217626f, -0.144233f, -0.289924f, 0.012311f, -0.131692f, 0.102873f, -0.0157202f, 0.192252f, -0.153772f, 0.0821173f, -0.221571f, -0.214564f, 0.189033f, 0.0264412f, 0.0159576f, -0.0959271f, 0.149851f, 0.0165317f, -0.223577f, -0.215988f, -0.086779f, 0.155756f, 0.144393f, 0.0373836f, -0.284168f, 0.44893f, -0.18944f, 0.249556f, 0.201121f, -0.0248116f, 0.0714751f, -0.152682f, -0.230648f, -0.204854f, -0.140086f, 0.0722705f, 0.0179633f, -0.102915f, -0.0161512f, -0.0858871f, -0.0604083f, 0.295122f, -0.136989f, 0.274525f, -0.245701f, -0.100476f, -0.164765f, 0.208023f, 0.205537f, 0.199859f, 0.121508f, 0.296005f, -0.275008f, -0.328017f, -0.327727f, -0.092423f, 0.21768f, -0.331376f, -0.267059f, -0.114626f, -0.0962792f, -0.0844954f, 0.154626f, -0.100871f, -0.0789193f, 0.246077f, 0.0619438f, -0.131976f, 0.13295f, -0.0777958f, 0.218312f, -0.100849f, 0.306933f, -0.21582f, 0.0926718f, -0.131552f, 0.110157f, -0.0526284f, -0.302225f, -0.0966203f, -0.0135322f, -0.1066f, -0.204212f, 0.163032f, 0.145133f, 0.423845f, 0.256369f, -0.0673392f, 0.0109416f, 0.330783f, -0.39634f, -0.166536f, 0.0885257f, 0.102801f, -0.12376f, -0.257528f, -0.173103f, 0.201769f, -0.144436f, -0.00421109f, 0.184894f, 0.25554f, 0.226496f, -0.17148f, 0.230057f, -0.0476806f, -0.415244f, -0.0545908f, -0.242493f, -0.199065f, -0.092625f, -0.284603f, -0.095459f, 0.153991f, 0.0297691f, 0.119867f, -0.0310855f, 0.0611856f, 0.0797664f, 0.0542502f, -0.406533f, -0.170824f, 0.0969706f, -0.41086f, -0.237768f, -0.0406677f, -0.3245f, 0.162767f, -0.20409f, 0.145817f, 0.0417627f, 0.0517908f, 0.123193f, -0.0111855f, 0.00886474f, 0.0598093f, -0.298366f, 0.0574876f, -0.0560384f, 0.10781f, -0.210003f, 0.0617101f, -0.125693f, -0.127271f, -0.0905565f, 0.00228877f, -0.167319f, -0.0281797f, 0.224458f, -0.0996636f, -0.178337f, 0.19955f, -0.143319f, 0.261156f, -0.0862966f, 0.144735f, 0.0414073f, -0.0829458f, 0.0187948f, -0.159431f, 0.017493f, 0.0351381f, -0.0519899f, 0.279186f, -0.215989f, 0.146661f, 0.170578f, -0.0737482f, 0.0832053f, -0.0343235f, -0.0585718f, -0.035756f, -0.240503f, 0.0279548f, 0.120237f, -0.152046f, 0.00923889f, 0.0620097f, 0.0459639f, -0.0952242f, -0.107188f, 0.0693797f, 0.0479537f, -0.0392412f, -0.0254562f, 0.0117074f, -0.0454514f, -0.0368483f, 0.0335272f, -0.181483f, -0.00737292f, -0.208117f, -0.0325891f, 0.0819788f, 0.0962018f, -0.0355238f, -0.0850627f, -0.160115f, -0.0530721f, 0.142219f, 0.0526091f, -0.14156f, 0.113836f, -0.0587658f, 0.0536705f, -0.0803964f, 0.261119f, -0.183215f, 0.0821469f, -0.135559f, -0.155303f, 0.0425249f, -0.258138f, 0.132115f, -0.160813f, 0.103447f, -0.0425888f, 0.110421f, 0.0428689f, -0.0127488f, -0.0115205f, 0.0081445f, -0.0316429f, 0.0841728f, 0.0248209f, -0.0988549f, -0.0852677f, -0.0269584f, 0.0908408f, 0.364559f, -0.0648435f, 0.0781365f, 0.0882428f, 0.0918374f, 0.0144156f, 0.0438061f, 0.0247951f, 0.0561491f, 0.0420407f, 0.0546075f, 0.0288443f, -0.0855471f, 0.0137676f, 0.266473f, 0.0553813f, -0.0504588f, -0.0731803f, -0.119833f, 0.185805f, -0.141882f, 0.233815f, -0.0208454f, 0.112569f, 0.0830693f, -0.0467989f, 0.13659f, -0.182756f, -0.173702f, -0.0555809f, 0.0860123f, -0.0177693f, -0.00620235f, 0.00632524f, -0.22138f, 0.150564f, 0.156233f, 0.11688f, 0.037634f, 0.219497f, -0.192741f, -0.0644485f, 0.161181f, 0.0536711f, 0.107453f, 0.196436f, -0.0918086f, 0.126808f, 0.21466f, 0.0647641f, 0.27917f, 0.106871f, 0.0130383f, 0.210324f, -0.262242f, 0.0897962f, 0.171709f, 0.036207f, 0.062534f, -0.0398465f, -0.0784483f, 0.162953f, 0.0464315f, -0.140006f, -0.0205433f, 0.142154f, -0.0127849f, -0.0278447f, 0.021968f, 0.27136f, 0.0255575f, -0.0228729f, 0.212103f, -0.113149f, -0.18845f, 0.0333921f, 0.0699825f, -0.219746f, -0.176354f, 0.0829544f, 0.00660809f, -0.0222895f, -0.23271f, 0.355584f, 0.0108254f, -0.106302f, -0.108282f, 0.309973f, 0.178655f, -0.114532f, 0.180572f, -0.0244995f, 0.0959603f, 0.107581f, 0.0202458f, -0.0210768f, -0.0729342f, 0.200486f, -0.194381f, -0.0170892f, 0.00543686f, -0.0717056f, -0.189031f, 0.0783192f, 0.113212f, -0.298863f, -0.119145f, -0.20741f, -0.0957365f, -0.0718765f, -0.0929741f, 0.0465921f, -0.0113961f, -0.076037f, 0.0428926f, -0.103272f, -0.204183f, 0.134548f, 0.100552f, 0.0163587f, -0.249437f, -0.0561363f, -0.0157149f, 0.0427653f, -0.0366205f, 0.10383f, -0.109659f, -0.112234f, 0.133468f, 0.1881f, 0.00924221f, -0.154818f, 0.179794f, -0.211114f, 0.0719366f, -0.206432f, 0.0433727f, -0.159654f, 0.0295144f, -0.147084f, 0.144292f, 0.208757f, -0.136155f, 0.00244612f, 0.0993438f, -0.0467498f, -0.00283291f, 0.111351f, -0.111781f, 0.290655f, 0.00263016f, 0.0157253f, -0.0469992f, -0.0499377f, -0.05939f, -0.0610896f, 0.0423021f, -0.0142892f, 0.015884f, 0.0714722f, -0.165645f, 0.0224495f, 0.0910232f, -0.0586466f, 0.0754785f, 0.00574797f, -0.0228788f, -0.0233489f, 0.0605941f, 0.0994899f, -0.00478865f, 0.0862546f, 0.0714479f, 0.0334132f, 0.179472f, 0.070678f, -0.0490146f, -0.0133391f, -0.01347f, 0.0311537f, -0.0165236f, -0.171498f, 0.0322574f, -0.105152f, -0.117789f, 0.103978f, 0.0523331f, 0.108514f, -0.0239632f, -0.00318066f, 0.0112913f, -0.0694375f, -0.0285894f, -0.0104575f, 0.00112193f, -0.0575805f, 0.0087555f, -0.0178391f, -0.0011058f, 0.0394181f, 0.167294f, 0.0783998f, -0.107636f, -0.0586705f, -0.0227755f, 0.0607278f, -0.0930354f, 0.0498935f, 0.0344521f, -0.00765701f, 0.0380568f, -0.015096f, 0.0194482f, 0.0185535f, -0.0331396f, -0.0507538f, -0.0575992f, -0.0279613f, -0.0266352f, 0.0510234f, -0.0425697f, 0.0102349f, -0.0260655f, -0.104373f, -0.17341f, -0.044602f, 0.145108f, 0.0339557f, 0.110789f, -0.0551899f, -0.0278757f, -0.0362557f, -0.113081f, 0.0544834f, 0.0848323f, 0.0180171f, -0.0519097f, 0.0437657f, -0.0778096f, -0.128427f, -0.113554f, 0.037198f, 0.00209765f, -0.17401f, -0.128544f, 0.163952f, 0.114076f, 0.0207044f, 0.082641f, -0.0124172f, 0.0794014f, 0.0681355f, -0.0173838f, 0.0519712f, -0.0330677f, -0.0950882f, -0.0570061f, -0.232881f, -0.0422778f, 0.083655f, -0.128498f, 0.0528566f, -0.0424422f, -0.0580496f, -0.0265477f, -0.186958f, 0.0356568f, 0.0179916f, 0.0365456f, 0.0230963f, 0.163251f, -0.0346754f, -0.0596489f, -0.160752f, 0.073657f, -0.0385912f, 0.0232508f, -0.0682275f, -0.0542485f, 0.0605919f, -0.02304f, 0.00846571f, 0.0264435f, -0.0780518f, 0.00944675f, 0.0822038f, -0.0187146f, -0.00736621f, 0.050456f, -0.0592808f, -0.0182849f, 0.124682f, 0.019829f, 0.134942f, -0.125898f, 0.0132041f, 0.249104f, 0.123329f, -0.0247909f, -0.0171193f, 0.126135f, 0.046034f, 0.0281306f, -0.0597382f, 0.185897f, 0.0258078f, -0.0918335f, -0.0842974f, 0.142154f, -0.20815f, -0.0652995f, 0.0186172f, 0.038314f, -0.0347522f, 0.159414f, 0.0505125f, -0.031576f, 0.0168442f, 0.043316f, 0.0168814f, 0.0145351f, 0.0890006f, -0.0543958f, 0.0455605f, 0.0351151f, 0.0632991f, 0.166033f, 0.0748457f, 0.0427282f, -0.0801952f, 0.0371612f, 0.103896f, -0.113498f, -0.0345061f, 0.0617057f, 0.142864f, 0.166205f, -0.00716626f, -0.0106392f, 0.132564f, -0.088545f, -0.0500723f, -0.0265187f, 0.011267f, -0.0880186f, -0.0101731f, -0.11626f, -0.057008f, -0.0102112f, 0.091909f, -0.00233334f, -0.0857499f, 0.0819898f, -0.102456f, -0.023198f, -0.0104138f, 0.0233459f, 0.0470336f, 0.0774524f, -0.134892f, -0.0403787f, -0.106561f, -0.0677285f, -0.122013f, -0.00658442f, -0.0512043f, -0.0940789f, -0.0578204f, 0.0340518f, 0.0761575f, -0.0899639f, 0.0466498f, 0.0578249f, -0.0508549f, 0.129946f, -0.103535f, -0.0707955f, -0.000179738f, -0.0382429f, -0.0299629f, -0.0855964f, -0.0303581f, -0.0325063f, -0.128223f, -0.193489f, 0.125976f, -0.10803f, -0.0710569f, 0.0308528f, 0.0304238f, -0.0525931f, -0.030214f, -0.0240343f, -0.0708247f, 0.0434998f, 0.0881633f, -0.148328f, 0.039915f, -0.0738189f, 0.0528197f, 0.0526365f, 0.0137987f, 0.0645335f, -0.0857159f, 0.0693167f, -0.0429275f, 0.0898849f, -0.123997f, -0.0539651f, -0.0807154f, -0.0117971f, 0.347105f, 0.268706f, -0.0385538f, -0.315217f, -0.000707855f, 0.0856551f, 0.268458f, -0.0422365f, 0.0538211f, -0.0713576f, 0.090087f, -0.156296f, -0.246678f, 0.0887972f, 0.27224f, -0.00163505f, -0.280561f, -0.294158f, 0.0945962f, -0.187976f, -0.16324f, 0.146687f, -0.0639778f, 0.120278f, -0.0632824f, -0.242956f, 0.125904f, -0.101826f, 0.0134325f, -0.115183f, 0.295273f, -0.262664f, -0.234056f, -0.295747f, -0.0865312f, 0.00741386f, 0.139736f, -0.168248f, -0.109628f, 0.167037f, -0.132328f, 0.106483f, -0.0284299f, -0.0876308f, 0.0617747f, 0.0322643f, -0.100038f, 0.0861095f, 0.152922f, 0.00592292f, 0.263996f, -0.118312f, -0.215903f, 0.148868f, 0.278102f, -0.062831f, -0.27704f, -0.095784f, -0.186919f, 0.135372f, -0.155249f, 0.0682803f, -0.133225f, -0.273446f, -0.300182f, -0.128042f, 0.195663f, -0.0826341f, -0.0821974f, -0.0987657f, -0.291236f, -0.0529847f, -0.113763f, -0.0677565f, 0.0952754f, 0.0434255f, 0.261766f, 0.164914f, -0.0239131f, 0.274972f, -0.265006f, 0.112573f, 0.265206f, 0.0728272f, 0.139921f, -0.0628375f, 0.0501701f, -0.168198f, 0.237651f, 0.14561f, -0.0151317f, -0.218437f, -0.0763787f, 0.0554219f, 0.108966f, -0.0965347f, -0.0884702f, 0.143536f, 0.0191463f, 0.204786f, -0.00531399f, -0.0302927f, -0.117961f, -0.0228531f, 0.148011f, 0.133564f, 0.0246407f, -0.212293f, 0.0950483f, -0.224007f, 0.123013f, -0.0496516f, -0.0403146f, -0.166978f, -0.140284f, -0.16919f, 0.0567562f, -0.0166314f, 0.0923529f, 0.181898f, 0.0522736f, 0.124697f, 0.0752746f, -0.168785f, -0.00729738f, 0.0645337f, -0.218107f, -0.222384f, 0.0268477f, 0.00471025f, -0.110118f, 0.0169615f, 0.14896f, -0.228604f, 0.127361f, 0.0919843f, -0.0673226f, 0.105325f, 0.142009f, 0.00674371f, -0.0630326f, 0.0925654f, -0.0168272f, 0.0855453f, 0.238252f, -0.108514f, 0.0745097f, 0.160098f, -0.0398338f, 0.186075f, 0.279182f, -0.026633f, 0.121314f, 0.263625f, 0.0349566f, 0.0244897f, 0.0609747f, 0.0957201f, 0.240599f, 0.0215208f, 0.120287f, 0.200528f, 0.0081929f, -0.0784165f, -0.0882955f, 0.176566f, -0.0270679f, -0.165929f, -0.134435f, 0.101301f, 0.0838166f, 0.0593047f, 0.112565f, 0.0574266f, -0.0768673f, -0.0481553f, -0.125129f, -0.111063f, 0.0710061f, -0.0584371f, 0.0244103f, 0.241272f, 0.00297768f, 0.0575969f, -0.11562f, -0.0568614f, -0.153754f, 0.202151f, -0.0540561f, -0.0488292f, 0.106915f, 0.0285145f, -0.082266f, 0.17991f, 0.22136f, 0.100593f, -0.202834f, 0.0901376f, -0.0136787f, 0.154762f, -0.189631f, 0.0853863f, -0.199989f, -0.00984151f, 0.0788078f, -0.2566f, 0.111567f, 0.00946286f, -0.234221f, -0.285722f, 0.250884f, -0.204563f, 0.148023f, -0.104822f, 0.0629737f, 0.0262367f, 0.0337973f, 0.0864118f, -0.0894629f, -0.136019f, 0.0239135f, 0.077667f, 0.0399095f, -0.155839f, 0.0154991f, -0.105122f, -0.0624307f, 0.220509f, 0.0233027f, -0.0959676f, 0.00678142f, 0.0197859f, 0.16329f, -0.0654498f, -0.150329f, 0.108708f, -0.102817f, -0.000499038f, 0.041596f, -0.0221141f, -0.10283f, 0.125237f, 0.1021f, -0.0166943f, -0.154623f, -0.0595635f, 0.180289f, 0.07216f, 0.113101f, -0.242407f, 0.193216f, 0.138973f, 0.0507385f, -0.0744154f, 0.135817f, -0.108064f, -0.0619201f, -0.272523f, 0.11659f, -0.280696f, -0.00480812f, 0.174978f, 0.0911037f, 0.205476f, 0.166373f, 0.000334752f, -0.117713f, -0.204155f, 0.289487f, 0.00413685f, -0.0471178f, 0.14117f, 0.227627f, -0.18534f, -0.0556035f, -0.00224241f, 0.054632f, -0.101473f, 0.0578443f, 0.125165f, -0.247539f, 0.0620308f, 0.0458075f, -0.36473f, 0.392236f, -0.175126f, 0.32653f, 0.229485f, 0.208965f, -0.0501991f, -0.131364f, 0.160775f, 0.261138f, 0.0466506f, -0.0786249f, 0.16052f, -0.0501035f, 0.155707f, 0.0698053f, 0.00702525f, -0.0153506f, -0.0013146f, 0.0542035f, 0.0823835f, 0.290048f, 0.0173623f, 0.0358793f, -0.114593f, -0.0347511f, 0.14971f, 0.0280937f, -0.142907f, 0.0155123f, 0.13804f, -0.0383065f, 0.163349f, -0.123785f, 0.207405f, 0.198811f, -0.148376f, -0.0654654f, -0.143238f, -0.24743f, -0.0424989f, -0.143209f, 0.00344165f, 0.0814832f, 0.0162193f, -0.0829017f, -0.023778f, -0.0470279f, 0.0543097f, 0.363142f, -0.114362f, -0.250949f, -0.0351558f, 0.0289845f, 0.234563f, -0.140318f, -0.0967107f, -0.0869034f, -0.129059f, 0.0997793f, 0.0868716f, -0.0493956f, -0.00311455f, -0.179506f, -0.0468964f, -0.0111613f, -0.152207f, -0.0911764f, 0.0782696f, 0.165654f, 0.23213f, -0.0702523f, 0.160101f, -0.16194f, -0.138606f, -0.140952f, 0.226129f, 0.401446f, -0.122854f, -0.194903f, 0.175473f, 0.114081f, -0.232251f, -0.0131247f, -0.0618655f, 0.0337528f, -0.115226f, 0.12992f, 0.258458f, -0.211751f, -0.100041f, -0.158036f, 0.169293f, -0.180614f, 0.0313638f, -0.0312108f, 0.166534f, 0.0309729f, -0.165395f, -0.184684f, 0.0663447f, -0.120803f, 0.518412f, -0.0668425f, 0.025768f, -0.0632307f, -0.0178494f, 0.0330852f, -0.0447336f, 0.0511926f, -0.129661f, -0.0229319f, 0.290113f, 0.0567729f, -0.117075f, -0.230342f, -0.0616324f, 0.232452f, -0.258846f, -0.0979493f, -0.008766f, 0.00703218f, 0.218517f, 0.199042f, 0.168629f, -0.161846f, 0.146285f, -0.08854f, -0.0230813f, -0.0831455f, -0.0446546f, 0.263521f, 0.0266123f, 0.0501016f, 0.0452011f, -0.0601587f, 0.023248f, -0.0924494f, -0.202029f, 0.0490311f, 0.0663264f, -0.102881f, 0.0993721f, 0.0865986f, 0.0276604f, -0.0617736f, -0.0234518f, 0.260934f, -0.081424f, -0.0585588f, -0.135255f, -0.0109418f, -0.207928f, -0.0846169f, -0.0549212f, -0.264115f, -0.151016f, 0.165769f, -0.149545f, 0.249754f, -0.237701f, 0.0653214f, -0.35418f, 0.361911f, 0.0924977f, -0.0263322f, 0.312371f, 0.0074125f, 0.125067f, -0.151976f, 0.102688f, 0.0413991f, -0.0434183f, 0.0625797f, -0.0767348f, -0.074504f, 0.117423f, -0.0828808f, 0.0171624f, 0.262258f, -0.17117f, -0.137625f, 0.170306f, -0.104914f, 0.250496f, -0.0105486f, 0.0314667f, 0.0980628f, 0.0597941f, 0.14377f, -0.03192f, 0.158699f, -0.0387382f, -0.180225f, 0.250089f, 0.0558931f, 0.115485f, -0.220311f, 0.130952f, -0.124518f, 0.0130864f, -0.057072f, 0.159348f, 0.00325645f, 0.0858632f, 0.163565f, -0.0210026f, 0.162748f, -0.109832f, 0.0925562f, 0.000858742f, 0.120209f, -0.0591432f, 0.166629f, 0.0572453f, 0.0704817f, -0.0415f, -0.0469602f, 0.0978533f, -0.292751f, -0.353592f, -0.356021f, -0.116193f, 0.131208f, 0.147206f, -0.0288909f, 0.00536007f, -0.146247f, -0.016796f, 0.155985f, -0.115424f, 0.194182f, 0.0716929f, 0.00214457f, -0.17648f, 0.107662f, 0.0999749f, 0.0795758f, 0.127589f, -0.0961722f, -0.0502831f, -0.0686948f, 0.00681352f, -0.117936f, 0.0486664f, 0.0645734f, 0.136086f, -0.060187f, 0.112401f, 0.0232632f, -0.0787584f, -0.0440739f, 0.114309f, -0.0457073f, -0.0147768f, -0.0353918f, -0.0711663f, 0.322714f, 0.0418132f, -0.0234118f, -0.105968f, -0.151364f, 0.155347f, 0.00441097f, -0.011428f, -0.0130508f, -0.0722212f, 0.0026103f, 0.128893f, 0.00285325f, 0.101505f, 0.0693504f, -0.0345637f, 0.0114713f, -0.166835f, -0.0917263f, -0.0994707f, -0.191046f, 0.000834863f, 0.0624312f, 0.098553f, -0.185569f, 0.130414f, 0.161253f, 0.278229f, -0.0902998f, 0.0827738f, 0.171832f, 0.00453142f, 0.0613538f, -0.21111f, -0.0219081f, -0.0657384f, -0.0103298f, 0.0742774f, 0.138506f, -0.0156734f, 0.0722357f, -0.0210251f, -0.0405122f, 0.0462716f, -0.0010936f, 0.145507f, 0.0978738f, -0.0800467f, -0.0362671f, 0.10177f, 0.0161401f, -0.188856f, 0.114658f, 0.0521774f, -0.0322491f, -0.0973849f, 0.184221f, 0.0287941f, 0.205595f, -0.088614f, -0.0786107f, 0.103647f, -0.0197798f, 0.118163f, 0.0186859f, 0.0349788f, 0.0180699f, -0.130306f, 0.0636463f, 0.118808f, 0.0727861f, 0.111653f, -0.00738352f, -0.0694221f, -0.181623f, 0.213847f, 0.133676f, -0.0173879f, 0.01922f, 0.0885245f, -0.0621675f, -0.170642f, 0.0703724f, 0.121201f, -0.0250372f, -0.0539943f, -0.0589779f, 0.0906563f, -0.0981939f, -0.0731958f, -0.199383f, -0.00695616f, 0.160621f, 0.0406418f, 0.0525383f, -0.107364f, -0.134089f, -0.094813f, -0.0419667f, 0.00666582f, 0.0772144f, 0.0727585f, 0.014841f, 0.0331757f, 0.183192f, -0.00588845f, 0.099894f, 0.0121688f, -0.142937f, 0.0361232f, -0.0364827f, -0.162076f, 0.239978f, 0.146627f, 0.0384294f, -0.0607483f, 0.137849f, -0.0015476f, 0.0819273f, 0.0121437f, -0.0364883f, 0.100263f, 0.256304f, 0.147659f, -0.0216038f, -0.0271556f, 0.0494661f, 0.0662723f, 0.0115595f, -0.0528392f, -0.0798043f, -0.191538f, -0.000877238f, 0.00356627f, 0.160469f, -0.0369209f, -0.0650132f, -0.037041f, 0.0222003f, -0.123273f, -0.037039f, -0.127346f, 0.0141174f, 0.00053294f, -0.0848608f, 0.06309f, 0.0392149f, -0.138152f, -0.214559f, 0.0857237f, 0.0597056f, -0.0875055f, 0.104163f, 0.129417f, -0.0664117f, 0.137072f, 0.105624f, -0.0611604f, -0.188383f, -0.00665138f, -0.21055f, -0.143433f, -0.00124537f, 0.104762f, -0.0604081f, -0.0802282f, 0.0911113f, -0.134994f, 0.0434241f, 0.0876332f, 0.105774f, -0.0340829f, -0.121625f, 0.0150433f, 0.0221716f, -0.135307f, -0.0151648f, -0.140386f, 0.0600888f, 0.124333f, 0.104294f, 0.222651f, -0.14801f, 0.00374706f, -0.00949506f, 0.127679f, -0.0455776f, 0.0425434f, -0.073349f, -0.00965575f, 0.0457177f, -0.0422296f, -0.00659978f, -0.242774f, -0.144654f, -0.114162f, -0.096793f, -0.00562223f, -0.106572f, 0.0625233f, 0.284285f, -0.0246402f, -0.0268632f, 0.108079f, 0.0282713f, -0.000853971f, 0.215148f, -0.164171f, -0.0404757f, 0.0748308f, 0.176026f, -0.0122792f, -0.0250052f, -0.0515675f, -0.138716f, -0.0301297f, 0.113146f, -0.0815492f, 0.187868f, 0.0188373f, -0.0178897f, 0.195089f, -0.0689247f, 0.175703f, 0.0579605f, -0.0763993f, 0.0402881f, 0.0877367f, -0.161705f, 0.0736572f, 0.089638f, -0.110386f, -0.101877f, 0.090266f, -0.061882f, -0.0345357f, 0.0183846f, -0.122458f, -0.152773f, -0.199209f, 0.176484f, 0.120704f, -0.122357f, 0.0281327f, -0.136241f, 0.186396f, -0.173678f, 0.0463338f, -0.0974454f, 0.0347006f, 0.173804f, -0.00758534f, 0.0884218f, 0.00608108f, -0.26867f, -0.24539f, 0.0720663f, 0.322157f, 0.0109678f, -0.00683579f, 0.132695f, 0.239803f, -0.0155783f, 0.0110456f, 0.0406478f, 0.09451f, 0.300176f, 0.0130506f, 0.263194f, -0.0629751f, -0.179927f, -0.0178559f, 0.0636423f, -0.110778f, 0.161554f, 0.102663f, 0.142921f, -0.175708f, -0.120517f, -0.0481809f, 0.278275f, -0.0603167f, -0.115109f, 0.116801f, -0.120021f, -0.102912f, 0.23207f, 0.22675f, -0.154659f, -0.0312694f, -0.193766f, 0.222806f, -0.223703f, 0.290031f, -0.0373569f, -0.0101095f, -0.134784f, -0.0701341f, -0.258886f, -0.258442f, 0.231659f, 0.0534922f, 0.344527f, -0.0724513f, -0.109024f, 0.167497f, 0.272189f, -0.135068f, 0.210492f, 0.101022f, 0.202311f, -0.169913f, 0.0992962f, 0.285895f, 0.238063f, -0.185342f, -0.393951f, 0.0518995f, 0.264864f, 0.0994964f, -0.305021f, 0.071486f, 0.163178f, 0.095173f, 0.202581f, 0.159259f, 0.100955f, 0.62527f, -0.197993f, -0.427844f, 0.24217f, 0.0740922f, -0.199771f, -0.0318353f, 0.177821f, 0.0274342f, -0.0800914f, 0.122279f, -0.253729f, 0.12096f, 0.0961196f, -0.0765012f, -0.306595f, -0.267254f, -0.11375f, 0.0308877f, 0.0516649f, -0.111651f, -0.0971518f, -0.271814f, 0.182769f, 0.29283f, -0.199483f, -0.197866f, 0.117132f, 0.4193f, 0.210007f, -0.212219f, 0.0936871f, -0.150669f, -0.188236f, -0.169941f, 0.266764f, 0.162259f, -0.144698f, -0.0648299f, 0.050404f, 0.0454217f, 0.274344f, 0.177451f, 0.0259884f, 0.00564038f, -0.0269964f, -0.12978f, -0.0717445f, -0.0395936f, 0.166516f, 0.00404524f, -0.149018f, -0.170476f, 0.0355402f, -0.100425f, -0.0825065f, -0.00291298f, -0.266282f, -0.285295f, 0.188182f, 0.0126843f, 0.233216f, 0.121758f, 0.0212328f, -0.248049f, -0.0484281f, -0.0146732f, 0.00826966f, 0.0393386f, 0.128864f, -0.114987f, -0.03189f, -0.233304f, -0.0291221f, -0.203421f, 0.228538f, -0.0792112f, 0.372793f, 0.00665551f, 0.214991f, 0.320543f, 0.21565f, -0.16293f, 0.0132174f, 0.310201f, -0.16063f, -0.183259f, -0.168155f, 0.170704f, 0.0230662f, 0.325346f, -0.0621241f, 0.482047f, -0.233337f, 0.139567f, -0.15956f, 0.244878f, 0.232649f, -0.272348f, -0.163084f, -0.0634284f, 0.106312f, 0.100253f, 0.235151f, 0.0338878f, 0.0645962f, 0.0561757f, -0.0220436f, 0.051914f, -0.185803f, 0.0206157f, 0.255831f, 0.179285f, 0.0688428f, -0.0640462f, 0.241561f, -0.0746188f, 0.263561f, 0.183296f, 0.021398f, 0.0523326f, 0.0790021f, -0.0618398f, -0.0337796f, -0.135087f, 0.156046f, 0.125406f, -0.110611f, -0.17675f, 0.0955729f, 0.209415f, 0.100732f, 0.323753f, 0.0637758f, 0.170154f, 0.236787f, 0.183845f, -0.15775f, -0.266291f, -0.0993206f, 0.314679f, 0.0562846f, 0.0707308f, -0.263594f, 0.148943f, 0.199862f, 0.106015f, 0.0981878f, -0.121349f, 0.221536f, -0.0274507f, 0.241457f, 0.0099481f, 0.0154045f, -0.135574f, -0.00874388f, -0.115038f, -0.0255135f, -0.157753f, -0.166898f, -0.0327356f, 0.258986f, 0.0555369f, -0.00498187f, 0.0653538f, 0.0107336f, -0.221195f, -0.129273f, 0.152171f, 0.217947f, 0.0235799f, 0.0665919f, 0.0387216f, -0.189451f, -0.0222249f, 0.0536368f, 0.228188f, -0.0478726f, -0.183711f, 0.00278726f, -0.16975f, -0.118158f, 0.177338f, 0.258855f, -0.059041f, -0.0542866f, 0.0512501f, -0.0919753f, -0.162722f, -0.033536f, -0.103304f, -0.0228726f, 0.0490382f, 0.0394259f, 0.146578f, -0.00326087f, 0.30279f, -0.103743f, -0.142506f, 0.250257f, -0.24596f, -0.0666299f, 0.241018f, 0.25614f, 0.0459711f, 0.0570887f, 0.236701f, -0.00839591f, 0.0689818f, 0.155913f, -0.046122f, 0.0234257f, -0.268816f, -0.23167f, 0.176431f, 0.0108898f, 0.00722063f, -0.16626f, 0.00144934f, -0.083281f, -0.310559f, -0.0815832f, 0.334657f, -0.162608f, -0.0331568f, -0.0156695f, -0.0686652f, -0.0292319f, -0.00583454f, -0.0550117f, -0.0776367f, 0.219421f, -0.162529f, -0.0207987f, -0.0755637f, -0.0911417f, 0.150862f, -0.114942f, -0.167042f, 0.0313527f, -0.0905638f, 0.112477f, 0.0920215f, -0.108562f, 0.0424894f, -0.243553f, -0.174261f, -0.161852f, 0.321773f, 0.0581497f, -0.0188763f, -0.284558f, -0.0807049f, 0.266043f, -0.0676174f, -0.103151f, 0.273171f, -0.221862f, -0.0112867f, -0.219211f, 0.129379f, -0.123089f, 0.0773233f, -0.13862f, -0.0334936f, 0.245387f, 0.220719f, -0.211306f, 0.0490964f, -0.158573f, 0.0194741f, -0.122903f, -0.158949f, 0.0162933f, -0.290068f, 0.0186388f, 0.163557f, -0.0206208f, 0.11431f, 0.0366826f, 0.270837f, 0.176552f, 0.211771f, -0.137462f, 0.139111f, 0.153431f, 0.0283332f, -0.188126f, 0.0900755f, 0.0522737f, 0.068266f, 0.224301f, 0.152713f, 0.0235946f, -0.156094f, -0.0354671f, 0.00383455f, -0.0561093f, 0.0734609f, 0.143032f, -0.0890781f, -0.112975f, -0.180523f, -0.0639426f, 0.0862892f, 0.0458642f, 0.176167f, -0.269625f, -0.0600496f, -0.0458989f, 0.00318411f, 0.0222897f, -0.196922f, -0.181618f, -0.124266f, -0.0281084f, -0.0639729f, -0.0811699f, 0.0869907f, -0.176777f, -0.172052f, -0.219039f, 0.13441f, 0.053534f, -0.239734f, -0.180777f, 0.155062f, -0.248456f, 0.0269715f, 0.019889f, 0.18312f, -0.204902f, 0.272735f, 0.0667079f, 0.0455985f, 0.10264f, -0.183827f, 0.0896071f, 0.180947f, -0.0391485f, -0.109521f, -0.0198149f, -0.116558f, 0.156961f, -0.0285634f, -0.180908f, 0.00172267f, 0.0201443f, 0.226507f, 0.210254f, 0.0320132f, -0.0665529f, -0.221065f, -0.0804985f, -0.0964198f, -0.0817663f, -0.051039f, -0.206985f, -0.20555f, 0.0794353f, -0.0371661f, -0.233656f, 0.057677f, 0.241113f, -0.221688f, 0.0993869f, 0.0843296f, -0.205986f, -0.208875f, 0.249839f, 0.0597034f, -0.0389573f, 0.0361849f, 0.0257132f, -0.225859f, -0.154667f, 0.163523f, 0.19423f, 0.241398f, -0.0366286f, 0.120979f, -0.110645f, 0.0397212f, 0.0563749f, 0.17099f, 0.172915f, 0.204244f, 0.0522964f, -0.008532f, 0.00099796f, 0.232307f, -0.181423f, 0.179105f, 0.0279591f, -0.073585f, -0.0200418f, -0.0289592f, 0.0325666f, 0.22502f, -0.169208f, 0.025781f, 0.0246172f, -0.0380901f, -0.142638f, 0.253315f, -0.210484f, -0.165015f, 0.262998f, -0.207828f, -0.158578f, 0.169366f, 0.061356f, -0.0497747f, 0.0850721f, 0.0899204f, 0.158414f, -0.107743f, -0.0104258f, 0.316004f, 0.240783f, 0.0500188f, 0.160198f, 0.159535f, 0.18749f, 0.0254597f, -0.257853f, 0.210425f, 0.0344333f, -0.00192244f, -0.122156f, -0.141286f, -0.237131f, 0.08908f, -0.156803f, -0.0545361f, -0.0149005f, 0.110921f, 0.0374006f, 0.0214853f, 0.075687f, -0.189994f, 0.0114119f, -0.101387f, 0.00467236f, -0.127615f, -0.0444755f, -0.065116f, -0.277431f, 0.108024f, -0.0497265f, 0.193028f, 0.00250791f, -0.0771935f, 0.330994f, 0.00700061f, 0.0749732f, 0.0710143f, 0.0589655f, -0.0518916f, -0.0496478f, 0.283718f, 0.268768f, -0.0596372f, -0.176254f, -0.0429234f, 0.186595f, -0.208732f, 0.103828f, -0.230334f, 0.0544399f, 0.204961f, 0.0533657f, -0.0602528f, -0.0475638f, -0.0179517f, 0.129164f, 0.148982f, -0.123267f, 0.0817359f, -0.00365232f, -0.0691172f, 0.180939f, 0.262471f, 0.0477211f, -0.166623f, -0.337372f, -0.258972f, -0.0674814f, -0.113094f, 0.058989f, -0.0419569f, -0.17221f, -0.0834231f, -0.0142916f, -0.288068f, -0.178353f, -0.201316f, 0.246698f, 0.152728f, 0.166372f, 0.0655986f, 0.102544f, -0.11226f, 0.303686f, -0.146793f, 0.0565207f, -0.0981182f, 0.0846994f, 0.32186f, -0.0239778f, 0.120725f, 0.168942f, 0.0324129f, 0.0735172f, 0.153947f, 0.0968387f, -0.0891491f, 0.113777f, -0.0162412f, 0.0550932f, 0.0902626f, -0.0290731f, -0.141945f, -0.14071f, 0.183436f, -0.00974521f, 0.0872581f, -0.115643f, 0.0707182f, -0.0713509f, 0.0113143f, 0.0242982f, 0.295451f, 0.0488852f, 0.0185213f, -0.0537468f, -0.0938595f, -0.0294952f, -0.0139497f, -0.165068f, -0.128019f, -0.0522673f, 0.00841662f, 0.110362f, 0.148319f, -0.205367f, -0.164694f, 0.0626232f, 0.00795575f, -0.144793f, 0.0605852f, 0.176955f, -0.0141942f, -0.246647f, 0.248785f, -0.246995f, 0.187389f, 0.19969f, 0.0176574f, -0.12563f, 0.262267f, -0.138315f, -0.0124084f, 0.205413f, -0.0370108f, 0.132459f, -0.166956f, -0.14821f, 0.0547951f, -0.0674569f, 0.0533931f, -0.0398659f, -0.193994f, 0.0206008f, 0.0459092f, -0.0331994f, 0.0036098f, -0.100749f, 0.117714f, 0.111734f, 0.118898f, -0.0681646f, 0.0955105f, -0.161804f, 0.236578f, 0.227652f, -0.0788276f, 0.242348f, 0.185637f, 0.196848f, -0.224825f, 0.0231725f, -0.237008f, 0.165035f, 0.170957f, -0.144188f, 0.18124f, -0.0353342f, 0.0793671f, 0.206627f, 0.209267f, 0.0114445f, 0.215027f, 0.0267196f, 0.0420211f, -0.0882093f, -0.147036f, -0.0707091f, -0.0103284f, -0.00164654f, 0.250562f, 0.307617f, 0.249065f, -0.349525f, 0.211921f, -0.0254289f, -0.0395831f, 0.12882f, 0.29677f, -0.0142519f, -0.0430639f, 0.0779774f, -0.075634f, 0.0260603f, 0.00644866f, 0.109776f, 0.0266826f, -0.240927f, -0.0438288f, 0.106565f, -0.108061f, -0.0254786f, 0.183773f, -0.244991f, -0.0990859f, 0.063466f, 0.118267f, 0.0405241f, 0.129061f, 0.161379f, 0.193762f, 0.128732f, -0.251857f, 0.0786913f, -0.27444f, -0.0475491f, 0.151043f, 0.111223f, -0.200729f, -0.0439595f, 0.138762f, 0.0101534f, -0.0935477f, -0.0574412f, 0.0483139f, -0.0396971f, 0.176601f, -0.0966735f, -0.146589f, -0.0885905f, -0.180818f, 0.148996f, 0.142377f, 0.264001f, 0.0401672f, -0.156622f, -0.247685f, 0.12382f, -0.0452043f, 0.0776781f, 0.111017f, -0.252442f, -0.127288f, -0.0332775f, 0.130277f, -0.159f, 0.0633724f, -0.0213793f, 0.0528805f, -0.227551f, 0.127225f, 0.244579f, -0.163051f, 0.148544f, -0.16005f, -0.123267f, 0.116215f, 0.0620084f, 0.196722f, -0.100893f, -0.231803f, 0.115199f, -0.0806691f, 0.0965857f, -0.0286216f, -0.00911544f, 0.0268636f, -0.0164375f, -0.0522349f, -0.118269f, -0.247721f, -0.181037f, 0.272679f, 0.105212f, 0.0980353f, -0.141437f, 0.14133f, -0.0654868f, 0.096633f, 0.0270464f, -0.0761302f, -0.0441516f, 0.0675365f, 0.0144205f, -0.0176715f, 0.166459f, 0.123713f, -0.184678f, 0.0927504f, -0.057102f, -0.196721f, -0.0222726f, -0.286203f, -0.183129f, 0.0579199f, 0.0860129f, 0.0213396f, 0.0327647f, 0.0595133f, 0.0246082f, -0.02384f, 0.0256762f, 0.0899725f, 0.257582f, -0.00563077f, 0.0556226f, 0.18025f, 0.00429977f, -0.149835f, -0.0467082f, 0.0114373f, 0.152596f, 0.0881103f, 0.313426f, -0.110869f, 0.0795842f, 0.0615045f, -0.105997f, -0.100152f, 0.171638f, -0.0667367f, 0.0301463f, 0.0265887f, -0.337181f, 0.08752f, -0.167148f, -0.221987f, -0.0310582f, -0.0182921f, 0.0250944f, 0.0203846f, -0.0206562f, -0.211524f, -0.0348802f, -0.159528f, 0.0400602f, -0.00260999f, 0.0536487f, -0.145234f, 0.0308169f, -0.23294f, 0.125893f, -0.0500817f, -0.29105f, 0.073281f, -0.00463865f, -0.14316f, -0.0170684f, -0.0115958f, 0.00998763f, 0.00920521f, 0.00413471f, 0.0994119f, -0.0398396f, 0.124977f, 0.101082f, 0.0833544f, 0.00957319f, 0.162309f, -0.00159693f, 0.0035748f, 0.0917216f, -0.0346193f, -0.0520071f, 0.0879929f, 0.0863155f, 0.0195101f, -0.0850265f, -0.0379546f, -0.0121063f, -0.130326f, 0.016267f, -0.0856957f, -0.123932f, 0.222825f, -0.193449f, -0.0195412f, 0.0963173f, -0.145913f, -0.106332f, 0.0926844f, -0.151568f, -0.0953521f, -0.207763f, -0.248361f, -0.0532552f, 0.112115f, -0.00906856f, 0.166367f, 0.00423211f, -0.0665894f, -0.233859f, -0.159474f, 0.0448028f, 0.112654f, -0.124597f, -0.291217f, -0.246966f, -0.0340223f, 0.229723f, -0.0733042f, 0.0520764f, 0.0851365f, 0.0241664f, 0.0539763f, 0.0568057f, 0.13171f, 0.0665595f, -0.161086f, -0.10232f, 0.0439182f, -0.0857336f, -0.0426502f, -0.158477f, -0.259254f, -0.00340287f, -0.230836f, -0.252659f, 0.0206471f, 0.150568f, 0.0560588f, 0.124088f, 0.0794882f, -0.0227506f, -0.00943318f, -0.103798f, -0.107464f, -0.0690725f, -0.0923425f, -0.0565175f, 0.0562234f, 0.0843975f, -0.169352f, -0.0619007f, -0.0427991f, 0.0832142f, -0.158539f, -0.170415f, -0.12425f, -0.0207347f, 0.0853098f, 0.0380166f, 0.156603f, 0.142375f, -0.119517f, -0.234086f, 0.132418f, 0.0554378f, -0.00230417f, -0.0676228f, 0.0387407f, 0.169052f, -0.0530361f, -0.241453f, 0.0161565f, -0.0951915f, -0.0980197f, 0.046008f, 0.210086f, 0.00510179f, -0.114134f, 0.193577f, -0.035404f, -0.0566868f, -0.0226668f, -0.0981277f, -0.0369865f, -0.155193f, -0.220741f, -0.0469488f, 0.15845f, 0.0219267f, 0.0749656f, 0.126472f, 0.174455f, 0.146723f, -0.004875f, -0.200942f, -0.00560361f, -0.248976f, -0.0438803f, 0.0880095f, 0.0519491f, -0.125768f, -0.0841873f, 0.0970353f, 0.17297f, 0.132554f, 0.306982f, 0.174553f, -0.0585957f, 0.0456148f, -0.128832f, 0.213487f, 0.0721569f, -0.147349f, 0.0694732f, 0.0306161f, -0.0576906f, -0.111736f, -0.101397f, -0.0179971f, 0.032905f, -0.165298f, -0.0397058f, -0.0732511f, 0.140504f, 0.0480019f, -0.0952305f, -0.0311835f, -0.0880044f, 0.0707124f, -0.0405227f, -0.0896537f, 0.0965947f, -0.152012f, -0.0140931f, 0.0825812f, -0.0217229f, -0.066929f, -0.145709f, -0.141099f, 0.0447305f, -0.0776019f, -0.120175f, -0.130057f, 0.097092f, -0.0814365f, -0.103124f, -0.0774651f, 0.0682793f, -0.143639f, -0.103674f, -0.159897f, -0.113216f, 0.151296f, 0.132341f, 0.101202f, -0.127959f, -0.109134f, -0.0314788f, 0.132172f, 0.171221f, -0.0417615f, 0.0124894f, 0.128872f, -0.0182653f, -0.130172f, 0.064891f, 0.078077f, -0.0788815f, -0.0302232f, -0.0371451f, 0.0795466f, -0.114336f, -6.76412e-05f, -0.0642913f, 0.0266984f, 0.0534197f, -0.0816312f, -0.190783f, -0.00798295f, -0.21405f, 0.114759f, -0.112343f, -0.0833293f, -0.122888f, -0.120246f, 0.0408417f, -0.191161f, -0.112653f, -0.0487962f, 0.028019f, -0.00183854f, 0.00393322f, -0.0374771f, -0.133326f, -0.040971f, -0.0898169f, 0.00500959f, -0.0272262f, 0.156409f, 0.100604f, -0.00669655f, -0.0253375f, 0.0121337f, 0.0866684f, 0.0357902f, 0.0362057f, 0.0283995f, 0.0600118f, 0.109665f, -0.0815613f, 0.0996191f, -0.116575f, -0.171381f, -0.0739822f, 0.0194203f, -0.181271f, 0.150303f, -0.0135698f, 0.0626518f, -0.0928143f, -0.0196137f, -0.135288f, -0.131222f, 0.026607f, -0.136995f, -0.0514031f, 0.132952f, 0.0304105f, -0.0654162f, 0.10411f, -0.138417f, 0.026531f, -0.11804f, -0.0575166f, -0.0114175f, 0.0419363f, 0.160385f, 0.0204209f, -0.0825943f, 0.0358456f, 0.122537f, -0.0159193f, 0.158775f, 0.0305637f, 0.0510434f, 0.0600138f, 0.0488224f, -0.0579235f, -0.00855674f, 0.0135124f, 0.0460353f, -0.102154f, 0.104933f, 0.109132f, 0.0825033f, -0.0517836f, 0.0272049f, 0.133814f, 0.149096f, -0.0167773f, -0.0671034f, -0.0838246f, 0.0718303f, 0.0690551f, 0.0100885f, 0.0437811f, -0.120941f, -0.148451f, -0.18738f, -0.0589923f, -0.02108f, 0.0770076f, 0.137171f, -0.0636214f, -0.0854319f, 0.105255f, -0.0391793f, 0.0640545f, -0.0200892f, -0.057247f, -0.104558f, 0.017283f, 0.0560463f, -0.171621f, -0.0092085f, 0.0883279f, -0.0022713f, -0.0814812f, 0.00846524f, -0.115717f, -0.0433753f, 0.17228f, -0.0484736f, 0.0359351f, -0.0470014f, -0.019107f, 0.274684f, 0.0583682f, -0.0302746f, 0.0548745f, -0.00379278f, -0.0529474f, 0.0498968f, -0.0305197f, -0.15813f, -0.095322f, 0.0777017f, 0.0283327f, 0.000466372f, 0.103115f, 0.134166f, -0.0666655f, 0.0551025f, 0.0529213f, -0.0111639f, 0.0297936f, -0.142378f, 0.0482908f, 0.0969325f, 0.121879f, -0.143809f, 0.0248887f, -0.017588f, 0.0770229f, -0.00798903f, 0.0878138f, -0.0950181f, -0.0965528f, 0.103642f, -0.0364077f, -0.121922f, 0.058275f, 0.0664719f, -0.0660666f, 0.129618f, -0.0835944f, 0.00310559f, 0.0731032f, -0.0131455f, -0.0292085f, -0.0024164f, 0.0395614f, -0.00336646f, -0.0771146f, -0.127496f, 0.0686029f, 0.0379374f, 0.03784f, 0.0815923f, 0.161239f, -0.00466359f, 0.13543f, 0.0115291f, -0.041684f, -0.000800876f, 0.0224212f, 0.059868f, 0.0239637f, 0.05641f, -0.00731624f, 0.000180814f, 0.037178f, -0.0407337f, 0.0454621f, -0.0163689f, 0.143893f, -0.00432549f, 0.0977133f, -0.109535f, -0.0402839f, -0.0128753f, 0.118791f, -0.0754295f, 0.182656f, -0.0234472f, 0.0699167f, -0.0669864f, 0.150472f, 0.03359f, 0.188038f, -0.00160398f, 0.159209f, -0.0970357f, 0.0151181f, -0.0819716f, 0.134671f, 0.268351f, 0.226693f, -0.172555f, 0.0798323f, 0.0708958f, -0.0108642f, 0.10003f, 0.23037f, -0.0278947f, 0.0583368f, 0.119214f, -0.128391f, 0.0723062f, -0.139678f, 0.0765431f, 0.0260585f, -0.136612f, -0.114401f, -0.00954868f, 0.061485f, 0.0975578f, -0.104607f, -0.083552f, 0.0145232f, -0.00351269f, 0.107169f, -0.066523f, 0.130494f, -0.0187933f, -0.00466736f, -0.0413558f, -0.0704777f, 0.0564442f, 0.0172009f, 0.039812f, -0.0438388f, 0.300695f, -0.0177383f, 0.0659432f, -0.0498066f, -0.0946717f, -0.0271547f, 0.218715f, -0.250683f, 0.0274264f, -0.21116f, 0.0888363f, -0.184271f, 0.164022f, 0.0457337f, -0.205095f, 0.084366f, 0.0972184f, -0.037579f, -0.094087f, -0.149371f, -0.159695f, 0.0379592f, 0.043428f, -0.00855153f, -0.0887597f, -0.0708944f, -0.0301176f, 0.0604523f, 0.114588f, -0.0777581f, -0.0808835f, -0.0549626f, -0.0937385f, -0.141943f, -0.216733f, 0.191015f, 0.0295232f, 0.152459f, -0.104581f, -0.168564f, 0.118285f, 0.173246f, -0.0456063f, -0.0835937f, 0.00284597f, 0.0577978f, 0.132145f, 0.0557556f, -0.00888739f, 0.0126538f, 0.157786f, 0.241235f, 0.0627637f, 0.137478f, -0.0818214f, -0.0124881f, 0.165317f, 0.205021f, 0.258053f, 0.041559f, 0.187594f, -0.0283291f, 0.264301f, 0.0552324f, -0.031194f, 0.0861791f, 0.170738f, 0.10484f, -0.132985f, -0.0256779f, -0.138724f, 0.0747852f, -0.181617f, 0.0256333f, -0.0567471f, 0.0607819f, 0.102771f, 0.116411f, 0.091129f, 0.0543775f, 0.0936717f, 0.136517f, -0.112052f, 0.000608946f, 0.208616f, -0.0691972f, 0.0591617f, -0.0555791f, -0.206336f, -0.146026f, -0.0532955f, -0.128691f, -0.112916f, 0.0193815f, 0.191506f, 0.143752f, -0.221179f, 0.00829613f, -0.0760252f, -0.00770135f, 0.116309f, 0.0279263f, 0.0572894f, 0.146326f, -0.0166103f, 0.082385f, 0.0443965f, -0.0694129f, 0.0990491f, 0.00376951f, -0.0949557f, -0.105879f, 0.176222f, 0.176793f, -0.0142699f, -0.15729f, -0.0297086f, -0.0278472f, 0.019106f, -0.0227954f, 0.204216f, 0.0481322f, -0.00578942f, -0.0603605f, 0.234538f, -0.121611f, -0.0358298f, 0.122886f, -0.0368088f, -0.0446899f, -0.129651f, -0.104019f, -0.105951f, 0.104299f, 0.0793783f, -0.0165287f, 0.0465555f, 0.02559f, -0.128912f, 0.0178763f, 0.064478f, 0.0315224f, 0.00412141f, -0.087871f, 0.0261243f, 0.12188f, -0.0259718f, 0.173235f, -0.135951f, -0.00714732f, -0.0504266f, 0.100227f, -0.0170365f, -0.181463f, -0.00426152f, -0.0700065f, -0.0943784f, 0.189931f, 0.0229407f, 0.00645207f, 0.000691948f, -0.150603f, -0.002726f, -0.14962f, 0.00280088f, 0.0772316f, -0.0324806f, -0.0674461f, 0.0218092f, -0.172968f, 0.0189664f, -0.119278f, -0.0564144f, 0.141644f, -0.0630768f, 0.0325225f, -0.171558f, 0.13628f, -0.179275f, -0.125116f, -0.067696f, 0.135293f, 0.0980128f, -0.00724819f, 0.0740426f, 0.0397664f, 0.149308f, 0.0799479f, 0.0405587f, -0.135049f, -0.00190215f, -0.0448142f, -0.122327f, 0.0193839f, -0.0912735f, 0.050218f, -0.0706217f, 0.0202578f, 0.0147962f, -0.0909232f, -0.00813339f, 0.144248f, -0.0602387f, -0.136588f, -0.203528f, 0.0059784f, -0.005272f, 0.0288191f, 0.15906f, -0.253674f, 0.0233099f, -0.0209152f, 0.0220849f, 0.0557573f, 0.0309347f, -0.0371816f, 0.15153f, 0.128061f, 0.0621812f, 0.100843f, -0.0413966f, -0.0243302f, -0.0721997f, 0.019424f, 0.105058f, -0.100122f, -0.0605158f, -0.100924f, -0.00399597f, 0.170019f, 0.0186143f, -0.118693f, -0.0531506f, 0.0778419f, -0.129722f, 0.0652552f, 0.246672f, -0.160986f, -0.0124942f, 0.134563f, 0.0100956f, -0.18631f, -0.074146f, -0.105724f, 0.0688425f, -0.166645f, 0.170501f, 0.0117188f, -0.0136181f, 0.21053f, 0.082132f, -0.20642f, 0.31302f, 0.0955957f, 0.218143f, 0.0137683f, -0.1341f, 0.0942304f, 0.0314521f, 0.00854835f, 0.0869495f, -0.202644f, 0.158588f, 0.0020125f, 0.144156f, -0.0910666f, -0.106874f, 0.00295229f, 0.0405016f, 0.0124125f, -0.00770672f, -0.247032f, 0.135479f, 0.236586f, 0.0561699f, -0.20613f, 0.0887094f, -0.15307f, 0.0111618f, 0.0527584f, 0.0879733f, -0.141142f, 0.235388f, -0.154796f, -0.166225f, 0.0329863f, -0.12127f, -0.256854f, 0.136888f, 0.150143f, -0.00316105f, -0.0420293f, -0.0851841f, -0.0201106f, -0.0413113f, -0.0420503f, 0.0973229f, 0.0157928f, 0.0757441f, -0.0463433f, -0.117978f, 0.0981945f, 0.0599656f, -0.0352884f, 0.057551f, -0.0683308f, -0.0495138f, -0.0129766f, 0.0389945f, -0.00625032f, 0.162676f, -0.0446901f, -0.0885798f, -0.0935928f, 0.195334f, -0.0578497f, 0.0657189f, -0.219127f, -0.08813f, -0.00269144f, -0.0207329f, 0.012161f, 0.0185406f, 0.134493f, -0.150055f, 0.104951f, -0.175214f, 0.114987f, 0.0032518f, -0.121393f, 0.29889f, -0.0203837f, -0.017964f, -0.0662166f, 0.145164f, 0.00042383f, 0.0525456f, -0.0229649f, -0.012009f, 0.0566441f, -0.197837f, -0.230419f, 0.131307f, -0.00363452f, -0.177119f, 0.251591f, 0.0632149f, -0.0164241f, -0.209763f, 0.00675286f, 0.036502f, -0.0774577f, -0.100726f, 0.0839318f, -0.21449f, -0.0628626f, 0.251883f, -0.141284f, 0.0398201f, 0.0723357f, 0.17225f, -0.115479f, -0.0578939f, -0.0259952f, -0.0298126f, 0.0823063f, -0.0743921f, 0.136099f, -0.0508665f, 0.14495f, 0.0595285f, -0.107083f, 0.265817f, 0.0739519f, -0.0717766f, -0.135249f, 0.117828f, -0.0274153f, -0.0109168f, 0.0258314f, 0.112407f, 0.121579f, -0.0860192f, 0.121225f, 0.158841f, -0.0670557f, -0.0642349f, -0.0432869f, -0.152654f, -0.136805f, -0.0891995f, 0.00962154f, 0.105275f, -0.159346f, 0.0922297f, 0.210575f, -0.0195462f, -0.0774083f, -0.242213f, 0.0953095f, 0.218556f, -0.17962f, -0.10686f, -0.0539756f, -0.161837f, 0.0323954f, 0.140519f, 0.0609463f, -0.00549519f, 0.0151959f, 0.205911f, -0.0664089f, -0.129401f, -0.109155f, -0.115212f, -0.238817f, 0.158364f, -0.0616395f, -0.0505803f, -0.00577291f, -0.0853985f, 0.0575507f, -0.238587f, -0.0594091f, 0.0523084f, -0.116806f, -0.161264f, 0.0711756f, 0.0901035f, -0.0508476f, 0.0354433f, -0.120856f, 0.240786f, 0.0488347f, -0.198298f, 0.181989f, -0.0612726f, 0.0640101f, 0.0851169f, -0.199041f, -0.155261f, 0.0545297f, 0.0739705f, -0.00547823f, -0.0643093f, -0.179317f, 0.0572743f, 0.2555f, -0.160781f, 0.144952f, -0.147022f, 0.0247379f, 0.11958f, 0.00476337f, 0.198659f, 0.00660445f, -0.0620126f, 0.099105f, 0.0413938f, -0.153955f, 0.0305867f, 0.0370499f, 0.0990329f, -0.0920341f, 0.00943916f, -0.0321562f, -0.0781463f, 0.150343f, -0.155623f, -0.0748339f, -0.161269f, -0.0193633f, -0.0228716f, -0.0583315f, 0.0348961f, 0.0588901f, 0.0627522f, 0.0350238f, -0.107963f, 0.0598155f, -0.120396f, -0.120738f, -0.141958f, -0.0962446f, 0.0795892f, -0.0459141f, -0.0365659f, 0.0820878f, -0.0373915f, -0.0680454f, 0.0613146f, 0.0753673f, -0.097285f, -0.0925542f, -0.00970537f, -0.0273255f, 0.055089f, 0.0841959f, 0.130081f, 0.0768967f, 0.25069f, 0.0613896f, 0.12095f, 0.151713f, -0.0601004f, 0.060085f, 0.227077f, -0.00214292f, 0.079379f, 0.0464735f, -0.0138595f, -0.0464259f, -0.0750993f, 0.0437811f, 0.113525f, 0.101251f, 0.0604532f, -0.106702f, 0.153058f, 0.125431f, 0.00562182f, -0.0372792f, -0.0432892f, -0.134125f, -0.152299f, -0.091897f, -0.0936251f, 0.0113649f, -0.115117f, -0.000101488f, -0.00655497f, 0.0952605f, -0.0543115f, 0.10183f, 0.0246798f, 0.086964f, 0.0875047f, -0.0528227f, 0.144371f, -0.0682342f, 0.0214851f, 0.0434313f, -0.0164923f, -0.0623934f, 0.0712967f, 0.0721073f, -0.0428928f, 0.0873822f, -0.0421226f, 0.136249f, -0.124f, 0.0158859f, -0.0358044f, 0.0668287f, -0.158786f, 0.047256f, -0.0201345f, 0.0233574f, 0.0583171f, -0.217753f, -0.202624f, -0.0107693f, -0.078733f, -0.0503321f, -0.0267269f, -0.110885f, 0.0283441f, 0.0915843f, 0.051061f, 0.0659417f, 0.0709137f, -0.131739f, -0.0256041f, -0.0104603f, 0.118799f, -0.0197206f, -0.163355f, 0.131413f, 0.161487f, -0.0450944f, 0.0529977f, -0.196121f, -0.0225621f, 0.0933325f, -0.0702202f, 0.102211f, 0.0839595f, 0.125541f, 0.173725f, -0.0991882f, -0.0929357f, -0.0160677f, -0.050117f, 0.0531735f, -0.00789489f, 0.151968f, -0.189366f, -0.103552f, -0.0734647f, 0.289491f, 0.0889806f, -0.0318166f, -0.0557715f, 0.047732f, -0.0284353f, 0.0383683f, -0.081199f, -0.102922f, -0.203725f, 0.163481f, 0.0357819f, -0.00772892f, -0.222331f, -0.210284f, 0.0348873f, -0.0117532f, -0.0354247f, 0.18052f, -0.193982f, 0.0216094f, 0.0744511f, 0.000950341f, 0.138272f, 0.00284003f, -0.0112962f, -0.0313575f, -0.0555531f, 0.00120256f, -0.102372f, 0.0260426f, 0.0559391f, 0.122508f, 0.024471f, -0.00944717f, 0.0988627f, 0.0223406f, -0.1116f, 0.196131f, -0.00171025f, -0.173509f, 0.183549f, 0.0105569f, 0.0755259f, -0.0712557f, -0.0431496f, -0.0388603f, 0.052811f, -0.0124323f, -0.132581f, 0.10408f, 0.0852869f, -0.0844465f, -0.00957738f, 0.0831069f, 0.165106f, -0.131639f, 0.0295679f, 0.151365f, -0.112551f, -0.154929f, -0.11519f, 0.0669337f, -0.147618f, -0.113816f, 0.0785161f, 0.0150884f, 0.113768f, -0.0310148f, -0.10361f, 0.177135f, -0.157219f, -0.0854868f, 0.109273f, -0.0580144f, 0.0494605f, -0.016739f, 0.0616956f, -0.036598f, -0.200701f, 0.188645f, -0.108611f, -0.0278102f, -0.0165409f, 0.0013202f, 0.0564691f, 0.0105536f, -0.159351f, -0.00658374f, 0.0410587f, -0.100825f, -0.0399311f, 0.0468649f, -0.124125f, -0.064183f, -0.0389476f, 0.00924579f, -0.137195f, 0.167856f, -0.0306967f, -0.0134136f, 0.151966f, -0.145742f, -0.176646f, 0.0486454f, 0.0900443f, -0.0422237f, 0.0265371f, -0.00492572f, -0.0660735f, -0.0125589f, -0.021482f, -0.156262f, 0.0538453f, 0.33888f, -0.21356f, 0.0807071f, 0.0267577f, 0.0623746f, -0.0242941f, 0.207662f, 0.182973f, 0.18203f, 0.0757754f, 0.151009f, -0.0624442f, -0.039609f, -0.0346602f, 0.196468f, 0.0503583f, 0.047857f, 0.0701433f, -0.252215f, 0.198498f, -0.0952939f, -0.0885353f, 0.0532991f, 0.0612603f, 0.123482f, -0.036848f, -0.192518f, 0.188504f, 0.0192128f, 0.192347f, -0.0703302f, 0.263218f, 0.0429438f, 0.033777f, -0.00361581f, 0.0322906f, -0.0605882f, -0.164165f, 0.00601332f, -0.0613628f, 0.265738f, -0.0898622f, -0.217125f, -0.0239286f, -0.238293f, 0.171995f, 0.1149f, 0.0768603f, 0.114547f, -0.151842f, 0.174499f, -0.16052f, -0.0600437f, 0.193516f, 0.126551f, -0.061353f, -0.10875f, -0.318488f, 0.0171593f, 0.0998687f, 0.203799f, 0.247609f, -0.0319131f, -0.00515391f, 0.0714974f, -0.14542f, 0.0884271f, -0.156332f, 0.0204871f, -0.0432498f, 0.195152f, -0.249312f, 0.115578f, 0.0196679f, -0.0304032f, -0.00343034f, -0.190743f, -0.183619f, -0.00591363f, 0.165521f, 0.118626f, 0.194539f, -0.190966f, -0.00888321f, -0.114062f, 0.0508239f, 0.0702621f, 0.10926f, -0.340265f, 0.0675345f, 0.262649f, -0.112517f, -0.215703f, 0.267743f, -0.0837369f, -0.142848f, 0.0482675f, 0.151091f, 0.224119f, 0.0355042f, -0.0898822f, 0.0626202f, -0.116578f, -0.196014f, -0.0401877f, 0.02524f, -0.073043f, 0.241817f, 0.0660902f, -0.214765f, 0.148145f, -0.116201f, -0.28072f, -0.00373681f, 0.161224f, -0.0792923f, -0.0339693f, -0.00471394f, -0.0455792f, -0.0976428f, -0.221144f, -0.0474572f, -0.207159f, -0.196457f, -0.023031f, 0.036203f, 0.0807852f, -0.143406f, -0.0230069f, -0.27057f, -0.015721f, -0.0408283f, 0.0737026f, -0.106874f, -0.13517f, -0.118939f, -0.129977f, -0.108253f, 0.113705f, 0.256506f, 0.0255601f, -0.202959f, -0.140984f, -0.0608518f, 0.00684464f, 0.0282745f, 0.0639437f, 0.191248f, -0.08447f, -0.214318f, -0.0080476f, 0.170709f, -0.2019f, -0.128694f, 0.0740733f, 0.0139724f, 0.0549461f, 0.0357367f, 0.0556998f, 0.138797f, -0.0414379f, 0.197011f, -0.0682969f, -0.119164f, 0.0682071f, -0.0848207f, -0.12835f, 0.0287838f, -0.102715f, -0.113592f, 0.126681f, -0.193704f, 0.232595f, 0.012409f, -0.17996f, -0.128139f, 0.256269f, 0.263217f, -0.0493689f, -0.0771385f, 0.17029f, -0.101196f, -0.0788596f, 0.0044851f, 0.259757f, 0.0852306f, 0.135375f, -0.00443706f, -0.116609f, 0.249917f, -0.0603013f, -0.168502f, 0.261242f, 0.069273f, 0.155521f, 0.251456f, 0.0576233f, -0.236548f, -0.312265f, 0.114398f, 0.134726f, 0.11593f, -0.135074f, -0.159013f, 0.0623007f, 0.139332f, 0.0493188f, 0.0555434f, 0.218542f, 0.140451f, -0.233232f, -0.0172168f, 0.285614f, -0.222063f, 0.0950385f, 0.205428f, -0.0486231f, 0.143907f, -0.30628f, 0.11832f, 0.0117737f, -0.0973445f, 0.0425539f, 0.171456f, -0.0582971f, -0.00668958f, -0.089532f, 0.145274f, 0.0786018f, -0.0406521f, 0.158086f, 0.13686f, 0.0263943f, 0.145984f, -0.0413986f, -0.0741063f, -0.0550412f, 0.188813f, 0.175635f, 0.184426f, -0.135185f, 0.306863f, 0.0243748f, 0.0678787f, 0.242323f, 0.12676f, -0.0797618f, 0.135184f, -0.0289157f, -0.085434f, -0.127504f, 0.15849f, -0.157885f, 0.0116489f, -0.0739476f, -0.153191f, -0.0687657f, 0.159295f, 0.0525689f, 0.104363f, -0.0647415f, -0.0172691f, -0.0112582f, 0.0951838f, 0.0635712f, -0.172096f, 0.0386926f, 0.106407f, 0.10383f, -0.00795729f, 0.00160404f, -0.0403901f, -0.241285f, -0.0273494f, -0.124462f, -0.0954703f, -0.00414135f, 0.0379736f, -0.201621f, 0.110056f, 0.0160567f, 0.0745205f, 0.159994f, 0.0259091f, -0.037659f, -0.203438f, 0.0154907f, 0.00495826f, 0.169736f, -0.0701412f, -0.185394f, 0.146065f, 0.00378721f, 0.241877f, 0.121144f, -0.025352f, 0.104508f, 0.0776477f, -0.11512f, -0.0230505f, 0.169814f, 0.0611035f, 0.0454504f, -0.196149f, -0.172268f, 0.0960515f, 0.0734026f, -0.0201174f, -0.0937355f, -0.0152331f, -0.204466f, -0.0501483f, 0.034143f, -0.121161f, 0.0301918f, -0.123668f, 0.00808136f, -0.0799084f, 0.0387522f, 0.00601144f, 0.0227992f, 0.0976308f, -0.125613f, 0.0240585f, 0.0455412f, -0.0528615f, 0.133638f, 0.0214862f, -0.157031f, 0.0951882f, 0.0897723f, -0.077077f, 0.00492645f, 0.079602f, -0.117356f, -0.206113f, -0.00603294f, 0.112395f, -0.0596658f, -0.044784f, -0.215419f, 0.184413f, -0.0742438f, -0.0801355f, -0.0313016f, -0.03256f, -0.199671f, -0.102343f, -0.0130844f, 0.0852432f, 0.142874f, 0.0447226f, -0.159996f, 0.171984f, -0.0118697f, 0.00732577f, -0.0194639f, -0.0372809f, 0.0375297f, -0.125829f, 0.0326338f, -0.102307f, -0.197422f, -0.0388593f, 0.135009f, 0.0758388f, -0.203217f, 0.0654803f, 0.0416269f, 0.127509f, -0.10973f, -0.051754f, 0.0470706f, -0.0994851f, -0.0894074f, -0.14361f, 0.0795314f, 0.0522964f, -0.155403f, -0.0298341f, 0.0126088f, -0.149494f, -0.123752f, 0.155763f, 0.159245f, -0.05299f, 0.0405518f, 0.141875f, 0.0378554f, -0.101146f, -0.0538372f, 0.190697f, -0.0204309f, -0.049907f, -0.0398028f, -0.0514381f, -0.0862011f, 0.0598188f, 0.00802452f, -0.0321203f, -0.0126819f, 0.170882f, 0.00155881f, 0.0863245f, 0.163019f, -0.116091f, 0.0386496f, -0.0790001f, -0.0164069f, -0.0210503f, -0.0714764f, 0.0812728f, 0.165926f, -0.178589f, 0.0501036f, 0.00937468f, 0.01643f, 0.219378f, 0.0809043f, -0.089213f, 0.00388069f, 0.0350548f, 0.0119612f, 0.0246959f, -0.152759f, -0.0875947f, 0.156629f, 0.134674f, -0.0343527f, -0.0788408f, -0.0941998f, -0.114368f, 0.156412f, -0.0579213f, 0.016347f, -0.0185727f, -0.0865343f, -0.217726f, 0.0973689f, -0.185035f, 0.0793875f, 0.165369f, 0.20313f, -0.100523f, -0.0167306f, 0.000554384f, -0.0869584f, -0.0463441f, 0.00995404f, -0.0840474f, -0.146401f, 0.211613f, -0.105454f, -0.0517809f, 0.00290003f, -0.016206f, -0.16369f, 0.0202401f, -0.0191016f, 0.18724f, -0.0562594f, 0.0313771f, 0.140414f, -0.196263f, 0.0164707f, 0.000709467f, 0.0645029f, 0.0845288f, 0.196353f, 0.101195f, 0.00310789f, 0.0655861f, -0.0419833f, -0.0120097f, -0.228805f, 0.0214192f, 0.0550019f, 0.00612829f, 0.229751f, 0.0282087f, -0.143437f, -0.03036f, -0.0142244f, 0.131984f, -0.186467f, 0.194561f, -0.0921532f, -0.0264418f, -0.154353f, -0.110742f, -0.115636f, -0.166549f, -0.125357f, 0.231554f, 0.0585404f, 0.121676f, 0.021034f, 0.0364913f, 0.0970076f, 0.0223315f, 0.123252f, -0.0207414f, 0.0344845f, -0.0476009f, -0.18235f, 0.0173614f, 0.0318521f, -0.0858085f, 0.0235256f, -0.0370984f, -0.115105f, 0.0557119f, 0.0717964f, 0.216482f, 0.282745f, -0.224762f, -0.217704f, -0.113771f, 0.307208f, -0.150758f, -0.0867028f, -0.133229f, 0.0831334f, -0.165418f, -0.0300427f, -0.273231f, -0.233876f, -0.12676f, 0.207908f, -0.200622f, 0.164658f, -0.121563f, 0.126539f, 0.053675f, -0.0761025f, -0.0346323f, 0.255567f, 0.273014f, 0.112115f, 0.156289f, 0.078496f, 0.100461f, -0.195068f, -0.0417856f, -0.0206392f, 0.0320911f, 0.202208f, -0.0944718f, -0.105843f, 0.270374f, 0.128527f, -0.0717522f, -0.23883f, 0.0556948f, 0.0835846f, -0.197988f, -0.0886216f, 0.236199f, -0.162039f, 0.159523f, -0.183812f, 0.0715929f, 0.0614785f, 0.242298f, 0.26262f, 0.268151f, 0.0684911f, 0.345427f, 0.128408f, -0.194385f, 0.131139f, 0.0507106f, -0.105387f, -0.121979f, -0.155368f, 0.0189132f, -0.106136f, 0.149821f, -0.276827f, 0.0979844f, 0.20204f, 0.247176f, 0.121304f, -0.112904f, -0.0157976f, -0.216003f, -0.176608f, 0.189941f, 0.0720433f, -0.217935f, 0.0489752f, -0.0225154f, 0.0436347f, 0.105121f, 0.125965f, -0.101222f, -0.270919f, 0.0766337f, 0.000467625f, 0.0696638f, 0.0258098f, 0.075469f, 0.207893f, -0.224059f, 0.186587f, 0.175578f, -0.0948431f, 0.131877f, 0.0292412f, -0.0622694f, 0.0147157f, 0.0245611f, 0.0387852f, 0.104455f, 0.148712f, -0.0509139f, 0.162858f, 0.0387697f, 0.143282f, 0.0958882f, 0.0836593f, 0.111328f, 0.179469f, 0.145769f, 0.112828f, -0.163765f, 0.141676f, 0.256452f, -0.117455f, 0.199382f, -0.16313f, 0.256648f, -0.289324f, 0.161387f, -0.131179f, -0.175745f, -0.0907963f, 0.124507f, 0.07251f, -0.210367f, -0.204346f, -0.122479f, -0.206544f, -0.134816f, -0.155297f, -0.207358f, -0.0464189f, -0.136315f, -0.271815f, 0.170089f, 0.190076f, 0.188112f, 0.155486f, -0.171634f, -0.122536f, -0.0788988f, 0.0177405f, -0.219055f, 0.0737434f, 0.202392f, -0.124817f, 0.00973297f, -0.0380965f, 0.22833f, 0.106056f, -0.116917f, -0.0795116f, -0.194294f, 0.0366349f, -0.0256227f, -0.0230784f, -0.32486f, -0.237339f, 0.106879f, -0.0341369f, 0.140069f, -0.28542f, -0.0991923f, -0.0325241f, 0.00885905f, 0.0857022f, -0.184931f, -0.212613f, 0.258769f, -0.162213f, -0.0735985f, -0.162709f, 0.035678f, 0.0891863f, -0.198992f, -0.134579f, 0.144066f, 0.148405f, -0.200582f, 0.0780512f, 0.10895f, -0.124767f, -0.0926742f, 0.0870089f, -0.0427246f, 0.0194696f, -0.0854434f, 0.107581f, 0.0914059f, -0.05068f, 0.155425f, 0.0302479f, 0.179074f, -0.0676926f, -0.0418289f, -0.185112f, 0.0110618f, -0.0870073f, -0.0496938f, 0.045274f, -0.0883603f, 0.309259f, -0.0668737f, 0.114727f, -0.207194f, 0.0615599f, 0.0958942f, 0.140581f, 0.0215078f, -0.096721f, -0.165967f, 0.0301549f, 0.138412f, 0.213114f, 0.108554f, -0.193609f, 0.127724f, 0.164236f, -0.100117f, 0.0925674f, 0.0379598f, 0.167246f, 0.114584f, -0.0507042f, -0.0117762f, -0.179569f, 0.15984f, 0.0809553f, 0.0546779f, -0.0324679f, 0.0452387f, 0.0201824f, -0.0674527f, 0.0442063f, 0.0316811f, -0.0616313f, -0.0776774f, 0.0962603f, -0.0949582f, 0.193998f, 0.00965437f, -0.127425f, 0.200848f, 0.0128428f, -0.185665f, 0.0831608f, -0.0848295f, -0.154273f, -0.165725f, 0.247439f, 0.0406006f, -0.0511455f, 0.299787f, -0.0545067f, -0.031995f, 0.0694814f, 0.140671f, 0.0349004f, 0.0497521f, -0.104217f, 0.146342f, -0.0210183f, -0.21386f, 0.0439861f, -0.119127f, 0.053012f, 0.178937f, 0.0995213f, -0.0631415f, 0.107048f, 0.229006f, 0.0614732f, 0.0145052f, 0.13046f, 0.0757039f, -0.0097019f, 0.141829f, 0.0670175f, -0.109902f, -0.0253706f, 0.00115887f, -0.0733011f, 0.184113f, -0.235732f, -0.110638f, 0.119477f, -0.00377379f, 0.111047f, -0.151626f, -0.214491f, 0.0752938f, 0.236699f, -0.156161f, -0.103619f, -0.00534385f, 0.0940276f, 0.162298f, -0.201979f, 0.15979f, -0.137216f, -0.100037f, -0.197606f, -0.0243278f, 0.06406f, -0.0354989f, -0.0182932f, -0.0874826f, 0.0599237f, -0.12884f, 0.254874f, -0.0460523f, 0.100608f, -0.081665f, 0.0991897f, -0.0751025f, 0.113667f, 0.193752f, 0.0161414f, -0.075863f, -0.167285f, 0.145991f, -0.0888299f, -0.153957f, -0.0960112f, 0.174595f, 0.211708f, -0.174331f, 0.0974954f, 0.0689271f, 0.16064f, 0.0592567f, 0.0965648f, -0.194646f, 0.23718f, -0.176677f, -0.0507568f, 0.0174916f, 0.165892f, 0.0811629f, -0.0306101f, -0.0716591f, -0.268004f, -0.246652f, 0.0555485f, -0.0909618f, 0.129606f, -0.0182213f, 0.045322f, 0.0029032f, -0.138707f, 0.131672f, -0.112299f, 0.0431033f, -0.000799011f, -0.118296f, 0.063302f, 0.12283f, -0.031837f, 0.12765f, 0.175969f, 0.0691226f, -0.0176188f, -0.145294f, -0.160872f, -0.153043f, -0.0938388f, -0.076991f, 0.0104475f, 0.0162216f, 0.0621475f, 0.0140092f, -0.228326f, 0.163399f, -0.170164f, -0.113333f, -0.0904314f, -0.0383903f, 0.272477f, 0.146753f, -0.264671f, -0.138079f, 0.108742f, -0.207814f, -0.217939f, 0.163181f, -0.172719f, -0.00598109f, -0.0434998f, 0.160474f, 0.0934418f, 0.106007f, -0.0147313f, 0.0986363f, 0.0324424f, -0.0786475f, 0.0380214f, 0.0632563f, 0.0421651f, 0.238234f, -0.060795f, -0.0362225f, 0.0412768f, 0.00161187f, -0.102037f, -0.00610261f, 0.065771f, 0.258933f, 0.0688549f, -0.180749f, -0.16743f, 0.0727824f, 0.0138535f, -0.113443f, 0.0339269f, -0.0280557f, 0.102264f, -0.178459f, -0.156845f, 0.265942f, 0.139642f, -0.129847f, -0.0292669f, -0.15945f, 0.171433f, 0.114791f, -0.0347899f, 0.0198372f, 0.0956184f, 0.238695f, -0.191533f, 0.171382f, -0.129755f, 0.0958124f, 0.119187f, -0.0647057f, -0.0206335f, 0.0673258f, -0.102684f, 0.105154f, 0.159988f, 0.202526f, -0.128625f, -0.0269084f, -0.222035f, -0.106003f, -0.017316f, -0.203923f, 0.0115331f, -0.0521304f, -0.205802f, -0.194979f, 0.0537564f, -0.13126f, 0.114678f, -0.0617265f, 0.217946f, 0.0728249f, 0.042865f, 0.0823709f, 0.056058f, -0.0861002f, 0.155678f, 0.11645f, 0.048736f, 0.0228947f, -0.201371f, 0.0647359f, 0.0634617f, 0.137801f, -0.0768187f, 0.0565597f, -0.0939574f, 0.145939f, -0.0551944f, 0.0864702f, 0.0429917f, -0.295525f, -0.199397f, 0.0421799f, 0.183582f, -0.048549f, -0.0148925f, 0.0569924f, -0.143596f, -0.0250856f, -0.106703f, 0.116791f, -0.153541f, 0.0299759f, -0.0285729f, -0.159224f, -0.0777467f, 0.0587618f, -0.133978f, 0.0203819f, 0.206059f, 0.0482332f, 0.101254f, -0.0182164f, 0.0667145f, 0.250348f, 0.0930396f, 0.288391f, -0.0941108f, -0.19516f, -0.0627838f, 0.000838443f, -0.158277f, 0.0440253f, 0.215799f, -0.105109f, -0.0468872f, 0.0214571f, -0.184256f, -0.069902f, 0.117572f, -0.0159638f, 0.135127f, 0.100038f, -0.180428f, 0.0398998f, -0.166807f, 0.058842f, -0.0210765f, 0.171793f, -0.0478337f, -0.1224f, 0.013496f, -0.100068f, -0.154243f, -0.0838918f, -0.03976f, -0.083804f, -0.0425927f, -0.126023f, -0.0809519f, 0.242009f, 0.0042213f, 0.169398f, 0.111019f, -0.0403952f, 0.0837967f, 0.105414f, 0.155687f, -0.0430423f, -0.158513f, 0.0859571f, 0.0472787f, -0.025013f, 0.0720457f, 0.185644f, -0.0489257f, -0.0652683f, -0.0561358f, -0.0493885f, 0.0868969f, -0.105751f, 0.0707828f, 0.118392f, 0.0344283f, -0.0739263f, -0.146707f, 0.136111f, 0.169037f, 0.176189f, -0.0281055f, -0.154616f, 0.0782068f, 0.192603f, 0.00348546f, -0.13849f, 0.274189f, -0.016496f, -0.197017f, -0.163496f, -0.302868f, -0.187749f, -0.0674771f, -0.00765488f, -0.0529471f, 0.0486103f, 0.0388793f, -0.055608f, 0.061181f, 0.0108858f, -0.0159022f, 0.278352f, -0.0742546f, 0.0250948f, -0.0613325f, 0.190087f, -0.0928394f, 0.0371192f, 0.124102f, 0.0625709f, -0.172075f, 0.0637014f, -0.0847413f, -0.084948f, -0.0554285f, -0.077102f, 0.0726279f, -0.115046f, 0.00700342f, 0.0644691f, 0.168887f, -0.0550712f, 0.0804557f, -0.0136218f, 0.377183f, 0.0592864f, -0.0587577f, 0.150214f, 0.275419f, -0.0596862f, 0.0618237f, 0.192724f, -0.00685746f, -0.000591924f, 0.251578f, -0.0736363f, 0.087995f, 0.200066f, 0.0858227f, -0.0909763f, 0.00654451f, 0.197923f, 0.263442f, -0.155303f, 0.178392f, 0.0367916f, -0.00380258f, 0.0280878f, 0.0095223f, 0.132651f, -0.0102275f, 0.144813f, -0.197745f, 0.261545f, 0.084102f, -0.203373f, -0.181053f, -0.0980604f, 0.0955652f, 0.00412825f, -0.0601507f, 0.0276426f, -0.0176618f, 0.169284f, -0.115482f, -0.0312866f, -0.0186044f, -0.101731f, -0.0656763f, -0.19553f, -0.223143f, 0.0550887f, -0.244184f, 0.290792f, -0.0880198f, 0.171141f, 0.0671563f, 0.0661327f, -0.14371f, 0.108816f, -0.0331396f, -0.146351f, -0.0130772f, -0.161823f, 0.155018f, 0.0583381f, 0.0464977f, 0.0387333f, 0.0815842f, -0.0121804f, -0.0564395f, 0.0121404f, -0.0146865f, 0.193651f, -0.0917035f, 0.0861985f, -0.0805375f, 0.011348f, -0.126934f, -0.0339845f, -0.00135827f, 0.0864432f, 0.136587f, -0.26013f, -0.016621f, 0.0245307f, -0.0638433f, 0.0132127f, -0.123249f, -0.311816f, -0.183291f, -0.103497f, 0.00814144f, 0.108931f, 0.23202f, 0.115676f, -0.0127488f, 0.00761872f, -0.0515253f, 0.143904f, -0.199886f, -0.157059f, -0.0547552f, 0.104416f, 0.205618f, 0.0237264f, 0.129438f, -0.0306622f, -0.136865f, 0.136772f, 0.183932f, -0.142521f, 0.051794f, -0.144299f, -0.127602f, 0.074213f, -0.09193f, 0.236055f, -0.111589f, -0.0819491f, 0.0419022f, 0.117357f, -0.0174765f, -0.280869f, -0.0332566f, 0.026957f, 0.142187f, 0.0877437f, 0.247906f, 0.0801769f, 0.223737f, 0.155444f, -0.0365208f, 0.0284303f, 0.0355351f, -0.1309f, 0.00867832f, -0.140465f, -0.121974f, -0.145462f, 0.263357f, -0.0162351f, 0.265726f, 0.0875284f, 0.1252f, -0.0161668f, 0.017666f, -0.0713887f, -0.039782f, -0.0875201f, -0.129348f, 0.0890734f, 0.062809f, 0.126351f, -0.0955003f, 0.0692813f, -0.114712f, -0.0349382f, 0.0751016f, 0.0154595f, 0.0844018f, 0.0226271f, 0.0470222f, -0.0572652f, 0.0429506f, 0.0787734f, -0.129174f, -0.0308548f, -0.22465f, 0.0295207f, 0.00382564f, 0.030732f, 0.0494704f, -0.00903248f, -0.0291997f, 0.00598198f, 0.124606f, 0.00652802f, -0.00337997f, -0.150885f, 0.0957763f, -0.045391f, -0.0597159f, -0.0412943f, -0.133696f, 0.208665f, -0.0304001f, 0.0447075f, -0.087397f, -0.0349716f, -0.0713129f, -0.0315302f, 0.0308855f, 0.196051f, -0.101696f, 0.0488307f, -0.0932657f, 0.0752565f, 0.0436161f, 0.020614f, 0.0193594f, -0.0876582f, -0.0879672f, -0.127362f, -0.0617789f, 0.108908f, -0.099523f, 0.129645f, 0.0123958f, -0.116836f, 0.027611f, 0.152957f, -0.0419203f, -0.0625869f, 0.0141232f, 0.150519f, 0.0442887f, 0.15286f, -0.0596494f, -0.128093f, -0.0949925f, 0.0193017f, 0.0703121f, 0.0975957f, -0.00800557f, 0.0931864f, 0.0686782f, -0.0132494f, -0.100244f, 0.0781387f, 0.0244278f, -0.0947776f, 0.00977547f, -0.0643664f, 0.241138f, 0.141119f, 0.0464793f, -0.209834f, -0.15954f, 0.0565433f, -0.0469586f, -0.156109f, -0.0915612f, -0.112837f, -0.128952f, 0.0926793f, -0.117356f, 0.148591f, 0.0123745f, -0.0138235f, -0.0686051f, -0.165905f, 0.114189f, -0.251657f, -0.00786837f, 0.0960537f, -0.0249851f, -0.103567f, -0.0854475f, -0.16213f, 0.0668158f, 0.0475251f, -0.182087f, 0.170525f, 0.0699941f, -0.167776f, 0.0485981f, 0.0495158f, 0.0274513f, -0.14666f, -0.0665085f, -0.234055f, -0.0486281f, 0.0858859f, -0.0673322f, 0.00306824f, 0.0438131f, 0.103312f, -0.0603157f, 0.0490069f, 0.0191637f, -0.0338169f, -0.105391f, 0.198175f, 0.0451869f, 0.129246f, 0.0502127f, -0.0873825f, 0.0695037f, -0.12121f, 0.0153987f, 0.0603511f, -0.162419f, 0.150165f, -0.0462364f, -0.0308367f, -0.00552034f, 0.0276732f, -0.131282f, 0.0950908f, 0.014737f, -0.0219141f, 0.152766f, -0.0847372f, -0.00493642f, 0.013867f, 0.0483792f, 0.188564f, 0.10868f, -0.0732762f, -0.0658793f, -0.0845307f, 0.0217793f, -0.179548f, -0.113246f, 0.0447389f, 0.158722f, -0.0596006f, 0.0370404f, 0.0543452f, -0.109337f, -0.0377512f, 0.000873623f, -0.00231709f, 0.0579238f, 0.0431001f, 0.0747486f, -0.112154f, 0.00457476f, 0.0247071f, -0.0151456f, 0.149229f, -0.0131462f, -0.189165f, 0.174604f, 0.0882027f, 0.151643f, -0.0406807f, -0.12813f, 0.0541091f, 0.0745483f, 0.0321367f, 0.0438719f, 0.0175075f, 0.100105f, 0.0113538f, 0.092591f, 0.12496f, -0.10802f, 0.0447541f, 0.0233751f, -0.101218f, 0.0887989f, -0.0698826f, 0.0853024f, -0.0600543f, -0.052549f, -0.035875f, 0.119839f, 0.129862f, 0.122014f, -0.111824f, 0.173269f, 0.0725933f, -0.163588f, 0.0637009f, 0.0837488f, 0.0804326f, 0.101557f, 0.129609f, 0.0711985f, 0.066308f, 0.00720182f, 0.171808f, -0.0208154f, -0.0412555f, 0.0691258f, 0.11432f, 0.0479913f, -0.03619f, -0.0502323f, 0.0672851f, -0.0107486f, -0.088131f, 0.0478385f, 0.0281393f, 0.0293012f, 0.000850391f, -0.0137783f, -0.160185f, -0.0276653f, -0.199926f, -0.0637788f, 0.0283918f, -0.0523939f, -0.100071f, 0.091087f, 0.00864812f, 0.0999868f, -0.0004691f, -0.0208842f, -0.0765682f, 0.0383697f, 0.105965f, 0.0276543f, 0.0637154f, -0.11901f, -0.0139966f, -0.11589f, 0.00594908f, -0.0770106f, 0.164551f, 0.0156618f, -0.154546f, 0.111391f, -0.125082f, 0.12676f, 0.0306938f, 0.164021f, 0.00217542f, 0.0945467f, 0.0520465f, 0.150249f, -0.00811082f, 0.0891756f, 0.222909f, 0.0541427f, -0.13428f, -0.164957f, 0.122004f, 0.249086f, -0.157325f, -0.0983521f, 0.171785f, 0.150492f, 0.00738184f, -0.0164641f, -0.275038f, 0.216797f, -0.00065468f, -0.0803421f, -0.189082f, 0.115025f, -0.30084f, -0.101007f, 0.0208249f, 0.0646461f, -0.00187418f, -0.157394f, -0.166131f, 0.17079f, 0.133289f, 0.165174f, -0.0765226f, -0.208294f, 0.0294355f, -0.130754f, -0.0112957f, -0.143165f, 0.134554f, 0.118573f, -0.16393f, 0.09093f, 0.144002f, -0.031268f, 0.0160831f, -0.124866f, 0.0750591f, 0.216436f, -0.193311f, -0.333957f, 0.027807f, -0.126481f, 0.0540614f, -0.0295554f, -0.166832f, 0.193215f, -0.0685266f, -0.0756643f, -0.326104f, 0.201227f, 0.154816f, -0.0434711f, 0.225316f, 0.21006f, 0.0265643f, -0.0733417f, -0.238639f, 0.218378f, -0.0340308f, 0.176403f, 0.120436f, 0.0925345f, 0.0832155f, -0.116857f, 0.198023f, 0.060582f, 0.0234439f, 0.174482f, 0.116066f, -0.0228475f, -0.0423574f, 0.00738286f, -0.0210844f, 0.0271852f, 0.235759f, 0.119923f, 0.128038f, 0.0576195f, -0.0202471f, -0.0826098f, -0.209106f, -0.0115034f, 0.116057f, -0.0138773f, 0.0816921f, 0.0970131f, -0.0485884f, 0.12055f, 0.24819f, -0.145573f, 0.000307985f, 0.0231299f, -0.105279f, -0.220371f, 0.097462f, -0.125469f, -0.0583009f, 0.111009f, -0.0174789f, -0.158796f, -0.0954648f, -0.120637f, 0.0697917f, 0.2362f, -0.15327f, 0.102955f, -0.0615107f, -0.0694322f, -0.251956f, 0.24487f, -0.0262448f, -0.123985f, 0.137531f, -0.097581f, -0.0572944f, 0.0875628f, 0.0879365f, 0.24367f, -0.373018f, 0.0322235f, 0.0512083f, 0.259469f, 0.143687f, 0.0389008f, 0.0589835f, 0.0571084f, -0.124779f, -0.132617f, 0.13039f, -0.0909889f, 0.189852f, 0.248665f, 0.271694f, -0.195064f, 0.0151392f, 0.125216f, 0.0430613f, 0.172503f, -0.199726f, -0.100218f, 0.151603f, -0.123497f, 0.24024f, 0.144125f, -0.286267f, 0.0926118f, -0.149546f, 0.144297f, -0.09534f, 0.0817666f, 0.168119f, -0.0600446f, -0.267253f, -0.278615f, 0.238733f, 0.213097f, -0.163699f, 0.0705663f, 0.249148f, 0.216163f, 0.0206977f, -0.0612636f, 0.0888247f, 0.0272286f, -0.018071f, 0.00158046f, 0.18963f, -0.145392f, 0.162421f, 0.13079f, 0.0527496f, 0.1248f, 0.246472f, -0.06476f, 0.114235f, 0.201902f, -0.0465248f, 0.326567f, 0.339683f, 0.00823769f, -0.0797095f, -0.0845454f, 0.000186015f, 0.101424f, -0.137413f, -0.209609f, 0.0977848f, -0.0134876f, -0.00872584f, 0.234349f, 0.0410388f, 0.234685f, -0.324697f, -0.0651093f, -0.275026f, -0.0746235f, -0.0435857f, 0.0299887f, 0.0939989f, -0.263291f, 0.187808f, -0.172035f, 0.0845092f, -0.103381f, 0.0623706f, -0.0864253f, 0.0445388f, 0.0819683f, 0.0225948f, -0.159682f, -0.17965f, 0.160784f, -0.194068f, 0.00445447f, 0.214027f, 0.0849475f, 0.044708f, -0.13754f, -0.16054f, 0.049192f, 0.0153916f, 0.171724f, 0.187245f, 0.00981073f, -0.0555281f, 0.134869f, 0.113338f, -0.12493f, -0.0427361f, 0.030161f, -0.162185f, -0.138722f, -0.104138f, 0.0920425f, 0.148427f, -0.00272852f, 0.197495f, 0.035986f, -0.0191749f, -0.335083f, -0.0559912f, 0.00266462f, 0.0718625f, -0.00263766f, 0.17569f, -0.0627338f, 0.099986f, -0.138978f, 0.0850386f, 0.0309695f, -0.0724748f, -0.0654941f, -0.144348f, -0.0623508f, 0.102448f, 0.0497922f, 0.0340419f, -0.0797485f, 0.00730721f, 0.020151f, 0.043267f, 0.0269162f, -0.037434f, 0.00756657f, 0.0495187f, -0.125054f, 0.00865194f, -0.110849f, 0.0103302f, -0.01849f, -0.138213f, -0.120561f, 0.134337f, -0.115356f, 0.0896107f, -0.0419665f, 0.00396077f, -0.0287744f, -0.120405f, 0.0751669f, -0.057448f, 0.0545255f, 0.0552354f, 0.0515116f, -0.033037f, -0.124624f, 0.0511774f, -0.0690529f, -0.0798115f, 0.0776158f, 0.0536559f, 0.112884f, 0.0522098f, 0.172026f, 0.0226565f, -0.0018331f, -0.010257f, 0.0426817f, -0.184493f, 0.127811f, 0.0666529f, 0.0011492f, -0.0671437f, -0.0294097f, 0.187425f, 0.0089227f, 0.030477f, 0.137524f, 0.104559f, 0.102095f, -0.0107587f, -0.0652203f, 0.132828f, 0.0535434f, -0.12375f, -0.1167f, 0.034995f, -0.0666608f, 0.107536f, -0.0590892f, 0.0444018f, 0.123138f, -0.033141f, -0.103429f, -0.0171779f, -0.00262144f, -0.102484f, 0.0213018f, -0.0313959f, 0.102303f, -0.00921046f, 0.0889866f, 0.109065f, -0.0336755f, 0.0361013f, -0.075415f, 0.0917544f, -0.111481f, -0.0562105f, -0.152158f, 0.0742173f, 0.0864648f, -0.00499408f, 0.0497421f, -0.0945477f, 0.112931f, -0.0273157f, -0.0278322f, -0.0133378f, 0.0994322f, 0.146075f, 0.168946f, 0.111886f, -0.0943638f, 0.10945f, 0.0451674f, 0.10815f, 0.065149f, -0.134263f, 0.184738f, 0.0627119f, 0.0338711f, 0.0549004f, 0.0464876f, 0.155569f, 0.132813f, 0.0353764f, 0.143186f, -0.0113768f, -0.11933f, 0.144874f, 0.0437522f, 0.00898062f, -0.0322007f, -0.136376f, 0.0149385f, 0.0303964f, 0.118678f, 0.0719669f, -0.0414482f, -0.137468f, 0.0889707f, 0.117081f, 0.128789f, 0.129845f, -0.00266498f, 0.0737277f, 0.113207f, 0.0539991f, -0.145235f, 0.0681214f, -0.0823906f, -0.0755692f, -0.0955779f, 0.047203f, -0.0203299f, 0.0458477f, -0.112747f, 0.0523314f, -0.0483509f, -0.0310826f, -0.0482237f, -0.0957722f, 0.105372f, -0.0389369f, -0.0970261f, -0.129929f, 0.0374683f, 0.0232333f, 0.156599f, 0.0359744f, -0.0374801f, -0.0265715f, 0.112513f, -0.0849841f, 0.0646373f, -0.0146385f, 0.0208341f, 0.0296637f, 0.130226f, 0.0201211f, 0.0120842f, -0.118103f, 0.154511f, 0.198106f, 0.0129946f, -0.0168794f, -0.0888572f, 0.172301f, -0.0615867f, -0.00127691f, -0.0246811f, 0.0216221f, 0.0485011f, -0.168169f, 0.103983f, 0.130223f, 0.0656469f, -0.0674884f, -0.0424802f, -0.00462224f, -0.0602554f, 0.0988111f, -0.0442397f, 0.0908187f, -0.147381f, 0.0180013f, -0.0100328f, 0.0793494f, -0.000478073f, 0.131251f, -0.00225971f, 0.11844f, -0.0103662f, 0.00645498f, -0.15185f, 0.0835295f, 0.0413173f, 0.151072f, 0.0387503f, 0.0703168f, -0.0533221f, -0.0694915f, 0.016093f, 0.0429658f, -0.0408669f, -0.00585308f, 0.0761285f, 0.0237853f, 0.170529f, 0.175397f, 0.0536532f, 0.0292734f, -0.158188f, 0.0858805f, 0.0256892f, -0.00745166f, -0.135871f, 0.0444846f, -0.0786059f, -0.0728156f, 0.0519709f, 0.129909f, 0.0125493f, -0.0245447f, 0.0216795f, -0.0466926f, 0.070722f, 0.0235354f, -0.00643287f, 0.0927426f, -0.0353367f, 0.180266f, 0.083591f, 0.120258f, 0.105413f, -0.0224423f, 0.0131137f, 0.00892425f, 0.151616f, 0.0388693f, -0.172254f, 0.00539345f, -0.00318571f, -0.0903129f, -0.0135789f, 0.288328f, 0.0826123f, 0.0614768f, 0.123709f, 0.0615397f, 0.205706f, -0.102958f, -0.0861134f, 0.0652477f, 0.0396295f, 0.0493381f, 0.115897f, 0.0667408f, -0.0497226f, -0.0553247f, -0.0442819f, -0.111039f, -0.11662f, -0.282368f, 0.0568862f, -0.0687345f, -0.104395f, -0.212289f, -0.368293f, 0.0629134f, 0.0907854f, -0.0865546f, 0.106053f, -0.184945f, -0.144557f, 0.065363f, 0.301015f, 0.233564f, 0.178138f, -0.205601f, 0.0516145f, 0.0811893f, -0.0538757f, -0.0287471f, 0.268696f, -0.230573f, -0.162015f, 0.152217f, 0.00129577f, 0.0527432f, 0.183227f, -0.0779725f, -0.187782f, -0.100139f, -0.0357177f, -0.28538f, -0.0682181f, -0.0769522f, 0.103671f, 0.0646403f, -0.0416402f, -0.018186f, -0.341352f, -0.0206148f, -0.182912f, 0.0166701f, 0.254014f, -0.0697555f, 0.104237f, 0.00650589f, 0.176705f, 0.29584f, -0.00275891f, -0.0756782f, -0.215244f, -0.157982f, 0.144221f, 0.00164352f, -0.357445f, -0.0932525f, 0.145441f, 0.182727f, -0.218085f, -0.18204f, -0.167981f, -0.248149f, 0.0059308f, 0.0233561f, -0.010356f, -0.0529665f, 0.00333199f, 0.0346622f, 0.151443f, -0.0390851f, 0.156609f, -0.107251f, -0.149568f, 0.0540324f, 0.100616f, -0.277002f, -0.175166f, -0.0947762f, 0.0119986f, 0.186003f, 0.0559638f, -0.121097f, -0.0812844f, 0.145878f, -0.245244f, -0.138284f, 0.116709f, -0.107178f, -0.0532941f, -0.0438291f, -0.0450188f, -0.208345f, 0.0609452f, 0.110753f, 0.0624886f, 0.195711f, -0.0274184f, 0.200992f, 0.082717f, -0.141774f, 0.0465756f, -0.0527696f, -0.124045f, -0.0273093f, -0.252508f, -0.0118718f, -0.250311f, 0.170733f, 0.169728f, -0.0542797f, -0.0791457f, 0.299277f, -0.0716877f, 0.0855518f, 0.334676f, 0.0665666f, -0.028566f, -0.319318f, 0.0438286f, 0.133316f, 0.00267902f, -0.0337414f, -0.200796f, 0.162537f, 0.145264f, -0.148571f, -0.294799f, 0.0415894f, -0.105686f, 0.057437f, -0.320258f, 0.19324f, 0.257756f, -0.132117f, 0.278791f, 0.196511f, -0.0835261f, -0.01284f, 0.202746f, 0.166333f, -0.0352903f, -0.0372916f, -0.0920623f, -0.280252f, 0.0142641f, -0.149371f, 0.182456f, -0.0754868f, 0.00946872f, -0.161098f, -0.0284162f, -0.0064214f, 0.152661f, -0.0434931f, -0.073335f, -0.0115752f, -0.233501f, -0.0765244f, -0.297327f, -0.064347f, 0.0264159f, -0.0735291f, -0.216817f, 0.192546f, -0.0951563f, -0.211201f, -0.00295271f, 0.023806f, 0.0454871f, -0.103097f, 0.0512541f, 0.0728315f, 0.0873834f, -0.248934f, -0.000457441f, 0.0321477f, -0.219207f, 0.0906563f, -0.0291878f, 0.151023f, 0.180899f, -0.178377f, -0.278783f, 0.0413716f, -0.202252f, -0.000309945f, 0.0803694f, 0.00324985f, 0.00037475f, 0.13988f, -0.203205f, -0.117348f, -0.0628161f, -0.292962f, -0.205981f, 0.0567642f, -0.0814234f, -0.0210748f, -0.0451101f, -0.154311f, -0.00886737f, -0.248914f, 0.202913f, 0.299363f, 0.0844708f, -0.24131f, -0.164909f, 0.281645f, -0.0492341f, 0.0903217f, 0.202248f, -0.0441238f, -0.159039f, -0.161424f, -0.293071f, 0.234488f, -0.00964139f, 0.150392f, 0.0807872f, -0.045494f, 0.0439616f, -0.260315f, -0.150754f, 0.159197f, 0.0645057f, 0.119122f, -0.102725f, -0.0658185f, 0.0986722f, 0.250897f, 0.0248962f, 0.162134f, 0.197646f, -0.0674331f, -0.137963f, -0.169594f, 0.0220324f, -0.134148f, 0.213925f, 0.00940976f, 0.0126434f, -0.039223f, -0.178849f, -0.0770177f, 0.0403533f, 0.233161f, 0.231737f, -0.0158118f, -0.0597279f, -0.00638761f, -0.116548f, 0.177546f, -0.0349496f, -0.230697f, 0.0936089f, -0.198817f, -0.11166f, 0.119843f, 0.142527f, 0.157786f, 0.152455f, -0.104032f, 0.115672f, 0.0602688f, -0.0919725f, -0.114487f, -0.0197514f, 0.0751035f, 0.00952648f, 0.0846245f, 0.134428f, -0.175975f, -0.169717f, 0.104361f, -0.0632382f, -0.115354f, -0.0238544f, -0.22547f, -0.146169f, -0.0910001f, -0.162273f, 0.085462f, 0.0814494f, 0.194418f, -0.134191f, -0.157623f, 0.189084f, 0.170704f, 0.130403f, -0.157643f, 0.0454129f, 0.17087f, -0.0860685f, -0.0427555f, -0.0203438f, 0.221776f, -0.116018f, 0.0236016f, 0.127765f, 0.210052f, 0.145206f, -0.125243f, 0.0193792f, 0.132288f, -0.0333323f, -0.197586f, 0.00577706f, 0.0422936f, 0.124929f, 0.0395196f, -0.146453f, 0.0942214f, -0.140797f, 0.167451f, -0.135388f, -0.0344248f, 0.112556f, -0.0646954f, 0.0756555f, -0.0783414f, -0.184606f, 0.103946f, 0.117269f, 0.226835f, 0.126143f, 0.136241f, -0.100663f, -0.146119f, -0.0866855f, 0.0946404f, 0.0289977f, 0.202467f, 0.0154311f, -0.141149f, 0.0602307f, -0.159607f, 0.146698f, 0.064767f, 0.167371f, -0.0497403f, 0.00831605f, -0.0111987f, -0.105581f, -0.0516509f, 0.0703839f, 0.0788579f, 0.138622f, -0.153347f, -0.272705f, 0.315952f, -0.059768f, -0.268031f, 0.0543763f, 0.155328f, 0.0357765f, -0.0825536f, 0.22737f, 0.158951f, 0.175591f, -0.256113f, 0.172079f, 0.312915f, 0.103686f, -0.0538581f, 0.228702f, 0.0263018f, -0.0436377f, 0.113615f, -0.00783122f, -0.10706f, -0.0181867f, -0.0791744f, -0.104809f, 0.0956059f, 0.0479401f, 0.0578827f, 0.163253f, -0.000402106f, -0.143704f, -0.0431031f, -0.0793648f, -0.0424701f, 0.0832145f, -0.0146995f, 0.0911407f, -0.126388f, 0.00381361f, 0.126162f, 0.0266192f, 0.10784f, 0.130337f, 0.0040317f, 0.274912f, -0.16144f, -0.120975f, 0.151492f, -0.139784f, 0.0311615f, 0.193148f, -0.159703f, -0.140024f, -0.141675f, -0.0929618f, 0.0534606f, 0.0693763f, -0.000897595f, 0.306867f, -0.148439f, 0.0371872f, 0.213015f, -0.20177f, 0.0119433f, -0.19283f, 0.0591005f, -0.0342396f, 0.366936f, -0.0148143f, 0.134008f, -0.303542f, 0.0981287f, 0.0342463f, -0.0386323f, 0.113962f, -0.0561152f, -0.0305768f, 0.231522f, -0.0853172f, -0.0714482f, -0.19874f, -0.257801f, 0.17412f, -0.126246f, 0.115331f, -0.0298426f, 0.293309f, 0.0632489f, -0.203435f, -0.0301017f, 0.00409313f, -0.0539922f, -0.0594379f, 0.13576f, -0.113995f, -0.0280328f, -0.236711f, 0.232895f, -0.0467395f, 0.0179648f, 0.142896f, 0.0358271f, -0.087968f, 0.0904374f, 0.298357f, -0.242312f, 0.110421f, -0.250908f, -0.0350744f, -0.0829888f, 0.178506f, 0.25482f, -0.0768949f, -0.0753282f, 0.0584664f, -0.0780589f, -0.0260971f, 0.193382f, 0.20647f, -0.0138132f, 0.0826476f, -0.0466696f, -0.142702f, 0.0931519f, 0.0895082f, -0.321709f, -0.220291f, -0.0198883f, -0.0939904f, 0.0956671f, -0.0319437f, 0.117277f, -0.105151f, -0.0385119f, -0.0478997f, 0.131277f, -0.149931f, -0.0296505f, 0.145862f, -0.0779505f, -0.288321f, 0.162886f, -0.081325f, 0.0200912f, -0.0254538f, 0.154265f, -0.145731f, 0.149105f, 0.239629f, -0.14562f, 0.29677f, 0.00638427f, 0.152856f, -0.0176754f, -0.204717f, -0.150953f, 0.115026f, 0.102596f, 0.266289f, 0.0240672f, 0.0905209f, -0.0536525f, -0.287709f, -0.0724192f, 0.018545f, -0.0912629f, -0.0330955f, 0.230026f, -0.0838564f, -0.203643f, 0.245073f, -0.0271291f, 0.25497f, 0.296677f, 0.0103845f, 0.0705788f, 0.0398973f, -0.0213317f, 0.17118f, -0.221032f, 0.304293f, 0.0491556f, -0.0214676f, -0.139263f, 0.0564262f, -0.223075f, 0.333218f, -0.12272f, -0.373574f, -0.0039905f, -0.235415f, 0.0788531f, 0.124652f, 0.124283f, -0.108609f, -0.181251f, -0.254279f, -0.157629f, -0.0136069f, -0.00709514f, -0.0995638f, -0.0142727f, -0.347343f, 0.168651f, 0.0519526f, -0.0599499f, 0.239224f, -0.0577069f, 0.0770696f, 0.264546f, 0.123521f, -0.0197048f, -0.049835f, 0.237479f, 0.0412779f, -0.204297f, 0.170986f, -0.00037835f, -0.0183168f, 0.277487f, 0.0140332f, -0.0985075f, -0.060942f, -0.0727342f, -0.200415f, 0.128794f, -0.06445f, -0.181314f, -0.0205325f, 0.202101f, -0.0380019f, 0.010239f, -0.261392f, -0.167276f, -0.00430951f, 0.0447976f, -0.207953f, -0.0799327f, -0.125651f, 0.256598f, 0.231206f, -0.0555752f, 0.138748f, 0.0287747f, 0.160574f, 0.0734343f, -0.0132349f, 0.172876f, 0.0448241f, -0.227306f, 0.0542877f, 0.188911f, 0.0552584f, 0.0391103f, 0.0202124f, 0.139913f, 0.178107f, -0.0998411f, -0.296176f, 0.21265f, 0.036131f, 0.224896f, -0.0439461f, -0.0433426f, 0.138717f, 0.0885895f, 0.0543529f, 0.0577997f, -0.0647355f, 0.0155943f, -0.00716727f, 0.0525859f, 0.022191f, -0.345135f, 0.0384374f, 0.0515007f, 0.121009f, -0.114051f, -0.327303f, 0.107334f, 0.0723327f, 0.00787837f, 0.231525f, -0.0937894f, -0.01413f, 0.0153931f, 0.197026f, -0.103877f, -0.125446f, -0.0317844f, -0.0707991f, -0.165167f, 0.0189864f, 0.0492451f, -0.117098f, -0.101977f, -0.00262025f, -0.1827f, 0.150677f, -0.22762f, -0.0435417f, 0.0229173f, -0.0508887f, -0.119816f, -0.0157895f, -0.0875109f, -0.0800746f, 0.0109859f, 0.109801f, -0.100551f, 0.290831f, 0.207182f, -0.0363097f, -0.09838f, 0.0918526f, 0.114924f, 0.222389f, 0.0819293f, 0.131485f, -0.125233f, -0.0414588f, 0.129192f, 0.0449141f, 0.0944662f, 0.009578f, -0.126446f, -0.169846f, 0.136265f, 0.0199669f, 0.412362f, 0.0636447f, -0.145735f, 0.0542434f, 0.0195932f, 0.130916f, 0.0372394f, 0.102303f, -0.0443479f, 0.0271365f, 0.0568501f, 0.0799008f, -0.149213f, 0.133247f, -0.114231f, 0.10119f, 0.105024f, -0.0089713f, -0.247667f, -0.186347f, 0.141433f, -0.142987f, 0.0939739f, -0.250636f, 0.0988873f, -0.247292f, -0.155615f, -0.0875672f, -0.0938716f, -0.101267f, -0.173143f, -0.0226226f, 0.134682f, -0.033629f, -0.250147f, 0.0985731f, 0.124969f, -0.155038f, -0.149842f, 0.170067f, 0.107271f, -0.171274f, 0.136571f, -0.0124152f, -0.212642f, -0.0942674f, 0.00475234f, 0.21203f, -0.276399f, -0.0163465f, 0.0601858f, 0.299402f, -0.307673f, 0.0519649f, 0.229687f, 0.219005f, -0.0913645f, -0.267843f, 0.040599f, -0.0124617f, 0.353195f, -0.0272984f, -0.0420916f, 0.190125f, 0.051272f, -0.00924433f, -0.0616953f, 0.0279608f, 0.00504256f, 0.28679f, 0.387887f, 0.0367342f, 0.0385352f, -0.349524f, -0.240379f, 0.12331f, -0.123865f, -0.0645532f, -0.107219f, -0.103384f, -0.25622f, 0.153221f, -0.055946f, 0.0973979f, -0.131691f, -0.00657262f, -0.0137978f, -0.133431f, -0.108836f, 0.0588566f, 0.0322446f, -0.0241531f, 0.123922f, -0.0999862f, 0.204674f, 0.0243876f, -0.161154f, -0.187595f, 0.126312f, 0.128628f, -0.14999f, 0.2399f, -0.134135f, -0.0616323f, 0.0880493f, -0.186781f, -0.0546539f, -0.124798f, -0.0235174f, -0.180089f, -0.160634f, -0.346741f, 0.269128f, 0.180996f, 0.253749f, -0.269165f, 0.126624f, -0.232412f, 0.202127f, 0.0794082f, 0.106911f, 0.285352f, 0.187373f, 0.334007f, 0.129032f, 0.0494822f, -0.0065545f, 0.04794f, 0.0803452f, -0.082867f, -0.0268763f, -0.0616156f, 0.288996f, -0.294336f, 0.22977f, -0.28398f, -0.146691f, -0.0495711f, -0.104958f, 0.0403046f, 0.0500718f, -0.132191f, 0.11076f, -0.0939707f, 0.0647953f, -0.00664029f, 0.103201f, -0.202368f, 0.0358008f, -0.240463f, 0.0359006f, -0.0668812f, 0.056142f, -0.0968335f, -0.0109934f, 0.191579f, 0.136488f, 0.241757f, 0.0630852f, 0.14587f, 0.127832f, 0.281132f, 0.0831953f, 0.19905f, -0.000411594f, 0.0968324f, 0.0812931f, -0.0323674f, -0.0375356f, -0.120256f, -0.0106331f, 0.0848723f, 0.0374686f, 0.374804f, 0.241472f, 0.0280359f, -0.122565f, 0.137739f, 0.150841f, 0.228922f, 0.26867f, -0.276724f, 0.0244766f, 0.106416f, 0.249915f, 0.00750014f, 0.106939f, 0.235228f, -0.070906f, -0.0287542f, 0.157517f, -0.00546453f, -0.0879678f, 0.131848f, 0.1916f, -0.149589f, -0.240965f, 0.121579f, 0.153016f, 0.0209571f, -0.145299f, 0.234577f, 0.0507733f, 0.0367889f, 0.0277003f, 0.0118969f, -0.117122f, -0.252123f, -0.0287691f, -0.174349f, 0.0953427f, -0.0789849f, -0.0203612f, -0.0205842f, 0.187937f, -0.164838f, 0.189369f, 0.163092f, 0.116076f, 0.159419f, -0.036299f, -0.0798397f, 0.134517f, -0.0355365f, -0.0733887f, -0.109656f, 0.0661057f, -0.0458629f, -0.00667005f, 0.00569785f, 0.0106916f, 0.0417253f, 0.0739374f, 0.0867329f, -0.0104167f, -0.1404f, 0.139413f, 0.0713039f, 0.276698f, -0.000394393f, 0.125891f, -0.0513602f, 0.32835f, -0.103326f, 0.025966f, 0.0592258f, -0.122194f, -0.258564f, 0.0455164f, 0.052422f, 0.0751785f, -0.183889f, -0.085483f, 0.229015f, 0.023747f, -0.0886839f, 0.0411411f, 0.0657909f, -0.0826626f, -0.00112383f, -0.0706291f, 0.125623f, -0.0629398f, -0.20282f, 0.0510257f, -0.0247476f, -0.0384486f, 0.0638653f, 0.00313869f, 0.193234f, -0.262293f, -0.0257561f, -0.0314583f, 0.140939f, -0.110476f, -0.0215026f, -0.0617933f, -0.0820561f, -0.256938f, -0.05518f, -0.142176f, -0.170497f, 0.0966813f, 0.256582f, 0.0390838f, 0.156116f, -0.105082f, 0.0327267f, 0.271567f, 0.261052f, -0.125113f, -0.0493425f, -0.132713f, -0.280339f, -0.0756369f, 0.00695787f, -0.0303401f, 0.0443001f, -0.0334482f, 0.0652833f, -0.134058f, 0.164187f, -0.0436406f, -0.198778f, 0.150783f, -0.117447f, 0.183801f, -0.0460695f, -0.228395f, -0.00456969f, 0.215254f, 0.0164663f, -0.019669f, 0.101028f, 0.186979f, -0.26142f, 0.0738413f, 0.368854f, -0.0948519f, -0.0867915f, -0.162623f, 0.0300952f, -0.0339253f, 0.044595f, -0.181697f, 0.0431971f, 0.252344f, -0.169959f, -0.191505f, 0.0606396f, 0.195877f, -0.119098f, -0.116498f, 0.0868934f, -0.0676904f, 0.0393255f, -0.0349697f, -0.144308f, 0.111184f, -0.171069f, -0.0745081f, 0.171771f, 0.14268f, 0.00478443f, 0.153594f, 0.232733f, -0.109717f, 0.208575f, -0.0505067f, -0.185176f, 0.0549367f, -0.00532699f, 0.104938f, -0.0288884f, -0.00672239f, 0.253879f, -0.139491f, -0.0385068f, 0.189127f, -0.291106f, 0.0731699f, -0.0654142f, 0.200656f, -0.181249f, 0.131211f, -0.104822f, -0.0029508f, 0.219828f, 0.061431f, 0.0776718f, 0.199017f, 0.0687521f, -0.0688719f, -0.116497f, -0.00854627f, -0.0474242f, -0.0614204f, -0.102285f, 0.00937006f, -0.00965106f, 0.087258f, -0.074107f, 0.180812f, 0.128289f, -0.0865392f, 0.0370041f, 0.0260753f, 0.0739516f, 0.174913f, -0.0850905f, -0.173607f, 0.150129f, 0.145591f, 0.0649499f, 0.00503764f, 0.273901f, 0.129981f, 0.00390288f, 0.0907355f, -0.304377f, -0.116302f, -0.0638438f, 0.173635f, -0.0784085f, -0.227442f, -0.0867649f, 0.251302f, 0.299051f, 0.0143133f, 0.110384f, 0.00801955f, -0.111582f, 0.29819f, -0.0757921f, 0.237065f, 0.235211f, 0.0402517f, -0.108096f, 0.205115f, 0.00987162f, -0.110592f, 0.115837f, -0.152989f, -0.238762f, 0.157024f, 0.166461f, 0.0623116f, 0.078493f, 0.0934392f, -0.201424f, -0.0371759f, 0.159438f, 0.117135f, 0.279603f, 0.263552f, -0.147421f, -0.0241872f, 0.0507163f, 0.0338268f, -0.0661402f, -0.123228f, -0.0631098f, 0.119303f, 0.02759f, -0.102882f, 0.0741847f, 0.0356428f, 0.0903018f, 0.228522f, -0.0584137f, -0.156196f, -0.032877f, 0.0816987f, -0.152077f, -0.11361f, 0.000479446f, -0.100552f, -0.211397f, 0.0719558f, 0.0990642f, 0.132729f, -0.108075f, -0.0976644f, -0.0558416f, -0.214836f, 0.299901f, -0.0617889f, -0.0204422f, 0.0168918f, -0.00991613f, -0.0583372f, -0.0476612f, -0.00801913f, -0.109131f, -0.0671216f, 0.252399f, 0.233715f, -0.139423f, 0.168504f, -0.0109434f, -0.115599f, 0.218464f, -0.0069238f, -0.316666f, -0.0353178f, -0.0216458f, -0.0725558f, 0.137632f, -0.0122296f, -0.198198f, 0.0867408f, -0.24367f, -0.0649923f, -0.214103f, 0.0535621f, -0.163367f, -0.111115f, -0.0957904f, -0.070618f, 0.0478016f, -0.15655f, -0.13615f, -0.0655913f, 0.333623f, 0.0927177f, 0.185594f, -0.0181306f, -0.112712f, 0.222967f, -0.0658428f, 0.144073f, 0.118336f, -0.270968f, 0.0974227f, 0.0612133f, -0.056556f, 0.0453349f, 0.0474932f, -0.132148f, 0.126952f, -0.195987f, -0.115982f, 0.117352f, -0.238426f, -0.0749397f, -0.063819f, 0.2441f, -0.259201f, -0.118064f, 0.230144f, 0.027363f, -0.130711f, -0.146534f, 0.148847f, -0.0547732f, 0.0492812f, 0.219135f, -0.0851084f, -0.0918952f, 0.0874141f, 0.0690261f, -0.154776f, -0.127384f, -0.158886f, -0.0494132f, 0.0522555f, -0.275865f, -0.101074f, 0.159474f, -0.0313613f, 0.270496f, -0.166532f, 0.00427037f, 0.0203604f, -0.0890289f, 0.0724049f, 0.0812814f, 0.0624336f, -0.0352261f, -0.209652f, -0.280525f, -0.02331f, 0.0475457f, -0.0315071f, 0.233318f, 0.0191201f, -0.116863f, 0.141096f, -0.2563f, 0.248156f, 0.134228f, 0.239514f, -0.127f, -0.0505611f, -0.00685066f, 0.146001f, -0.209201f, 0.0598773f, 0.0421727f, 0.0704763f, -0.129716f, -0.0679717f, -0.119834f, 0.196853f, -0.237098f, 0.10646f, -0.186386f, -0.0457414f, 0.239649f, -0.19117f, -0.0937804f, 0.095395f, -0.126574f, -0.145131f, 0.114216f, 0.0789385f, -0.125638f, -0.25083f, -0.161781f, 0.158848f, 0.0246277f, -0.134526f, 0.0468877f, -0.228635f, 0.170977f, 0.175599f, 0.107063f, 0.211216f, -0.0205261f, 0.154068f, 0.15147f, -0.0517148f, -0.108636f, 0.18657f, -0.10584f, 0.202953f, -0.300885f, 0.294707f, -0.0779316f, -0.0096121f, -0.0964919f, -0.220598f, -0.102112f, -0.0911017f, 0.060262f, -0.113092f, -0.199449f, -0.134571f, -0.134438f, 0.17765f, 0.0834368f, 0.138941f, -0.0938974f, 0.0880927f, 0.0175931f, 0.108665f, 0.1493f, -0.178397f, 0.0430062f, 0.0672798f, -0.184298f, 0.0533964f, 0.0470332f, 0.033115f, 0.150848f, -0.362682f, -0.121837f, 0.00941604f, -0.0336666f, 0.0811373f, 0.0074381f, -0.00964665f, -0.0404571f, -0.251034f, 0.151037f, -0.0804184f, -0.403399f, -0.0214105f, -0.0245353f, 0.0837847f, 0.0169777f, -0.295734f, -0.0663301f, -0.148538f, 0.110572f, 0.00134452f, 0.14554f, -0.0578826f, -0.12793f, 0.0310431f, -0.0395555f, -0.0734821f, -0.359162f, -0.172771f, 0.262869f, 0.0647567f, 0.0303356f, -0.104222f, -0.0648282f, 0.0736592f, 0.260821f, 0.0929261f, 0.190839f, -0.0651439f, 0.0698062f, -0.17793f, -0.21515f, -0.295779f, 0.233159f, 0.220288f, -0.143135f, 0.341283f, 0.325452f, -0.249034f, 0.0301345f, -0.231433f, -0.312268f, -0.166307f, 0.245119f, 0.23115f, -0.277782f, -0.128391f, 0.0452775f, 0.0974486f, 0.375036f, 0.113558f, -0.00338238f, -0.0932165f, -0.0563886f, 0.0189907f, -0.355487f, 0.201419f, 0.0177478f, -0.330818f, -0.173483f, 0.097232f, -0.133579f, 0.452082f, -0.23794f, -0.0882254f, 0.216042f, 0.0590566f, -0.0106196f, 0.0944645f, 0.250353f, -0.112459f, 0.205877f, -0.279263f, -0.269797f, -0.0834718f, -0.0991451f, -0.072464f, -0.0766356f, 0.237247f, 0.136112f, -0.0285619f, 0.0382123f, -0.317389f, 0.090951f, -0.257328f, -0.311671f, 0.0567056f, -0.0502622f, -0.00262024f, 0.254482f, -0.104832f, -0.0857326f, -0.138546f, 0.120493f, 0.0471533f, -0.0170267f, -0.0588457f, -0.14425f, 0.250438f, 0.0504734f, 0.0262784f, -0.0949109f, -0.192348f, -0.153984f, -0.0772045f, 0.196659f, -0.0668782f, 0.286167f, 0.313469f, -0.125884f, -0.097118f, -0.0463001f, 0.132242f, -0.102486f, -0.0905303f, -0.332817f, -0.269509f, 0.0154139f, 0.211823f, 0.24043f, -0.10112f, -0.0983596f, 0.168621f, -0.357876f, -0.204058f, 0.36341f, 0.322433f, -0.0535583f, -0.0272244f, 0.0570786f, 0.00672112f, 0.078502f, -0.238812f, 0.264725f, 0.0653075f, 0.261188f, -0.0364518f, -0.0867633f, 0.072081f, 0.136687f, 0.0108132f, 0.193969f, -0.285103f, 0.0608924f, -0.0398862f, -0.241565f, -0.268658f, -0.182083f, -0.207348f, 0.216184f, 0.293435f, -0.067539f, 0.154153f, 0.179584f, -0.121511f, -0.0708621f, 0.240423f, 0.00867658f, -0.0981105f, -0.0800489f, -0.0286603f, 0.123596f, 0.0093134f, -0.079984f, 0.114493f, 0.248448f, 0.236489f, 0.102075f, -0.0562107f, -0.138184f, 0.0395576f, -0.244347f, -0.273849f, 0.0926381f, 0.190309f, -0.111177f, 0.130455f, -0.0211956f, -0.0367759f, -0.134016f, 0.118799f, 0.0197183f, 0.111198f, -0.0587498f, -0.0681804f, -0.0879506f, 0.105181f, 0.0210344f, 0.0443393f, 0.0261576f, 0.165146f, -0.0213986f, 0.0233873f, -0.0440796f, 0.129713f, -0.0823749f, 0.0916991f, 0.0554443f, -0.0285239f, 0.187114f, 0.141289f, -0.050953f, 0.0645963f, -0.0303263f, 0.14023f, -0.169878f, -0.107704f, 0.0229529f, -0.153735f, 0.121516f, -0.0624979f, 0.0282174f, 0.0940498f, -0.0107153f, -0.0988164f, -0.0522632f, 0.136463f, -0.108415f, -0.0664535f, -0.113509f, 0.160748f, 0.116187f, -0.0715404f, 0.0187226f, 0.0946174f, 0.185084f, 0.0500121f, 0.186067f, 0.0871598f, -0.200685f, -0.0199098f, -0.151652f, 0.0843378f, -0.09117f, 0.0528081f, -0.104948f, 0.0243034f, -0.18528f, -0.0714837f, 0.0312167f, 0.153213f, -0.096967f, 0.164226f, 0.0554825f, 0.140023f, 0.051245f, 0.0962663f, -0.224324f, -0.116301f, -0.0512987f, 0.0415206f, 0.100877f, 0.0485102f, -0.0521277f, -0.113531f, -0.119705f, -0.0216489f, 0.0068724f, 0.122377f, 0.1101f, -0.202183f, 0.121743f, -0.0257011f, -0.126244f, -0.0324152f, 0.0437363f, 0.0546538f, -0.013672f, 0.171556f, -0.0102375f, 0.0762676f, -0.202367f, 0.10527f, 0.0327672f, 0.161628f, 0.00921583f, 0.019016f, -0.156675f, -0.11912f, 0.285887f, -0.112421f, -0.0743987f, 0.116736f, -0.156963f, 0.0364228f, -0.00724144f, -0.0744531f, -0.0683342f, -0.0592286f, 0.00384324f, 0.0801701f, -0.0460989f, 0.0530925f, -0.0716555f, 0.114041f, -0.0127363f, 0.0655179f, 0.0807128f, -0.105391f, -0.106198f, 0.0192765f, 0.120866f, -0.0650481f, 0.0629992f, 0.201952f, -0.0130452f, 0.0314257f, -0.0938839f, -0.0459482f, 0.0791916f, -0.187733f, -0.0240114f, -0.0570106f, 0.054956f, -0.100901f, -0.00691579f, 0.0891541f, 0.158139f, -0.0788989f, 0.0988217f, -0.111184f, -0.00997498f, -0.136546f, 0.0547791f, 0.0391941f, -0.000789758f, -0.13987f, -0.180155f, -0.115859f, -0.104803f, 0.0946149f, -0.0742284f, -0.0567205f, -0.00620641f, -0.157499f, 0.0358516f, -0.136064f, -0.146724f, 0.0682711f, -0.129955f, 0.0466121f, -0.0638305f, -0.0303402f, -0.0388007f, 0.0572332f, -0.00488843f, 0.0631831f, -0.027809f, 0.0422294f, -0.14504f, 0.0760739f, -0.0715437f, -0.0734135f, -0.0664212f, 0.155241f, 0.139289f, 0.0400996f, 0.118994f, 0.00778185f, 0.0681322f, 0.0747181f, -0.00291893f, 0.0200728f, 0.043201f, -0.10846f, -0.231455f, 0.0294756f, 0.145091f, 0.0803073f, 0.188037f, -0.191653f, 0.102012f, -0.0283501f, -0.127032f, 0.0509499f, 0.110002f, 0.0945207f, -0.00782281f, 0.00448149f, 0.224866f, -0.131593f, -0.253388f, -0.16925f, 0.0808504f, -0.0176348f, -0.205683f, 0.103369f, -0.0781639f, 0.171557f, 0.0713931f, -0.122763f, 0.0145986f, 0.0150119f, -0.0139378f, 0.0796261f, 0.0893406f, -0.0176252f, -0.0430661f, -0.0133552f, -0.0194451f, -0.0565728f, -0.0135741f, -0.108326f, -0.0570272f, 0.0465949f, 0.220075f, -0.174813f, -0.0416917f, 0.128303f, 0.0380889f, -0.041414f, -0.0900215f, 0.0329686f, 0.00850056f, -0.0567822f, -0.0146422f, 0.0950008f, 0.0170069f, 0.0227414f, -0.0659344f, 0.00179835f, 0.077891f, 0.046101f, -0.0179986f, -0.0238037f, 0.0463931f, 0.0032515f, 0.233496f, -0.0825775f, 0.174106f, 0.193143f, 0.0528363f, -0.148508f, 0.0441049f, 0.170945f, 0.0582372f, 0.118343f, 0.0109476f, 0.11812f, 0.114839f, -0.00994261f, 0.0785079f, 0.00734433f, -0.00287229f, -0.022604f, 0.00653161f, 0.0664908f, -0.291531f, 0.0353991f, 0.129484f, 0.0779247f, -0.00754709f, -0.173246f, 0.0957105f, -0.250775f, 0.0292705f, -0.128014f, -0.113178f, -0.207664f, 0.0606011f, -0.021638f, -0.01323f, 0.0260407f, 0.22246f, 0.0862887f, -0.00247836f, 0.0738738f, -0.072737f, 0.130699f, 0.0145061f, 0.112729f, -0.195479f, 0.0261115f, -0.045496f, 0.0247854f, 0.192426f, -0.0270215f, -0.078899f, -0.0454575f, 0.221655f, -0.0162356f, -0.0781297f, 0.0985775f, 0.0640199f, 0.212886f, -0.18233f, 0.114398f, 0.198313f, 0.171898f, 0.00899924f, 0.0673847f, -0.0006599f, 0.0289907f, -0.188608f, 0.13818f, -0.185374f, 0.135718f, -0.132902f, 0.0836843f, 0.00612324f, -0.0876324f, -0.0136841f, 0.234043f, -0.109996f, -0.0691807f, -0.138273f, 0.0551899f, 0.099135f, 0.00459381f, -0.19266f, 0.173297f, -0.233939f, 0.0891697f, 0.0273709f, -0.236058f, -0.0727364f, -0.102629f, 0.00724889f, -0.00981429f, -0.00484983f, 0.202919f, -0.101762f, 0.0316914f, -0.15607f, 0.217099f, -0.0654342f, -0.0392519f, -0.0553552f, -0.0301723f, -0.301541f, 0.024073f, -0.149612f, 0.035777f, 0.0373888f, -0.237107f, -0.121405f, -0.158996f, 0.0616648f, -0.163334f, -0.139082f, -0.104501f, -0.0533826f, -0.0339574f, -0.255906f, 0.311724f, -0.105406f, -0.184721f, -0.132046f, 0.230616f, -0.141836f, -0.00421305f, 0.0396683f, -0.242264f, 0.00369812f, 0.0461611f, 0.0191343f, 0.193603f, 0.0709125f, -0.0979211f, 0.00570229f, 0.0890491f, 0.0123638f, 0.00872522f, -0.171648f, -0.166072f, -0.210206f, 0.117843f, -0.0433665f, 0.162344f, 0.147591f, 0.207721f, 0.021548f, -0.0848459f, 0.102837f, 0.0992248f, 0.0325949f, -0.135938f, -0.00821158f, -6.80809e-06f, -0.0680615f, -0.18182f, -0.0461308f, -0.17864f, -0.0393477f, 0.0470558f, -0.0181469f, 0.0637355f, -0.130318f, 0.081874f, 0.0967372f, -0.165032f, -0.172143f, -0.131245f, -0.128288f, 0.0517198f, 0.271661f, -0.117974f, -0.00805514f, 0.141595f, -0.0248604f, 0.0362967f, 0.00392278f, -0.0262595f, -0.106821f, -0.0322311f, 0.134448f, 0.282215f, -0.0218744f, -0.159195f, 0.0129343f, 0.0786105f, -0.0278365f, 0.115423f, 0.113868f, -0.114067f, 0.121244f, -0.000576206f, -0.0417595f, -0.1396f, 0.250835f, 0.112626f, 0.131412f, 0.0655479f, -0.189898f, -0.0489383f, 0.166925f, -0.159709f, -0.107487f, -0.00130526f, 0.0881878f, 0.241614f, -0.136096f, -0.012066f, -0.23839f, -0.232683f, -0.160179f, -0.143984f, -0.0745276f, 0.196092f, -0.107567f, -0.0351428f, -0.0654795f, 0.00421933f, -0.137443f, -0.253892f, 0.052345f, 0.0134866f, 0.20965f, 0.201095f, -0.109303f, 0.0713019f, -0.113165f, -0.00867245f, -0.023423f, -0.218476f, 0.0535885f, 0.0187566f, -0.134907f, -0.076501f, -0.0672752f, -0.117197f, 0.0889654f, -0.0375461f, -0.26592f, 0.0852842f, 0.00354183f, 0.0230198f, -0.102418f, 0.165047f, -0.206918f, -0.0390934f, 0.147039f, 0.146559f, 0.202461f, 0.192129f, -0.00727814f, 0.00649173f, -0.0329312f, -0.00521599f, -0.0431156f, 0.138674f, 0.0992496f, -0.254245f, 0.113258f, -0.26554f, -0.151888f, 0.0924215f, -0.0630449f, 0.130498f, -0.328107f, 0.17491f, 0.0296075f, 0.0489594f, -0.131907f, -0.20685f, -0.0379088f, -0.0106298f, -0.124f, 0.173105f, 0.13157f, -0.235765f, -0.213993f, -0.0140321f, -0.0554913f, 0.0362735f, 0.2299f, 0.0459932f, 0.0946391f, -0.149248f, -0.197017f, -0.163742f, 0.122421f, 0.213402f, 0.0973026f, -0.147317f, -0.0765576f, -0.0880828f, 0.0592838f, 0.216876f, 0.0840871f, 0.036215f, -0.0683408f, 0.13174f, -0.0222306f, -0.0756725f, 0.0759409f, 0.12589f, -0.136039f, 0.0769447f, 0.00394502f, -0.280423f, 0.143851f, -0.00134814f, -0.187654f, -0.0541836f, -0.0294242f, -0.0625889f, 0.0736092f, 0.136697f, 0.0525218f, -0.372459f, 0.161618f, -0.0387886f, 0.0148935f, -0.135925f, -0.153526f, -0.0299395f, -0.194918f, 0.214573f, 0.104889f, -0.0325916f, -0.0213722f, -0.0947786f, -0.0807598f, -0.325846f, -0.0243308f, 0.0329714f, -0.0295764f, -0.0316334f, -0.0662042f, -0.0988793f, 0.246423f, 0.140624f, -0.0070954f, -0.0620639f, 0.131255f, 0.00667004f, -0.0457402f, -0.00145463f, 0.164983f, -0.240868f, 0.0262268f, -0.224672f, 0.0737169f, 0.0410041f, -0.00771639f, -0.128253f, 0.176298f, 0.0275939f, 0.124091f, 0.0132838f, -0.0512624f, -0.105238f, -0.188158f, 0.138443f, 0.103058f, -0.279718f, 0.206777f, 0.00391192f, 0.24635f, 0.159448f, -0.00934865f, -0.207573f, 0.138823f, 0.125754f, -0.21396f, -0.0863709f, -0.155506f, 0.0941438f, 0.184225f, -0.201194f, -0.103358f, -0.0658842f, 0.0904824f, 0.0283523f, 0.14284f, 0.151281f, -0.174503f, 0.274038f, -0.248085f, -0.170293f, -0.216726f, 0.402517f, -0.0737914f, 0.0525327f, -0.198404f, -0.0441546f, -0.179694f, -0.00734062f, 0.0314211f, 0.265891f, -0.0961576f, 0.216587f, -0.117762f, 0.108506f, -0.0834184f, -0.0541866f, 0.213183f, 0.0543562f, -0.364858f, 0.156233f, 0.0673255f, 0.0101985f, 0.0323583f, -0.0434751f, -0.132948f, 0.208251f, 0.0714231f, 0.237137f, 0.021169f, -0.0601687f, -0.0932194f, 0.259422f, 0.0659392f, 0.0569884f, 0.182067f, -0.14344f, -0.0294639f, 0.0197198f, -0.0309711f, -0.111624f, -0.120136f, 0.0577526f, -0.211386f, -0.143016f, -0.130048f, -0.0157719f, -0.0822011f, -0.16639f, 0.0593482f, -0.154407f, -0.138851f, 0.230623f, 0.236016f, -0.000856153f, -0.0828095f, 0.0420356f, -0.0819242f, 0.049236f, 0.000927426f, -0.00776401f, 0.116462f, -0.0498792f, 0.0677653f, -0.0680544f, -0.0966395f, 0.174361f, -0.0404032f, 0.100544f, -0.0416685f, -0.253891f, 0.0676327f, -0.156859f, 0.0225383f, -0.0532389f, -0.000391391f, 0.206516f, -0.095959f, -0.0391604f, 0.0161361f, 0.00725367f, -0.162485f, 0.0500909f, 0.0970061f, 0.0829343f, 0.104003f, 0.156609f, 0.027065f, 0.148923f, -0.0392895f, 0.228374f, -0.00512018f, -0.0586084f, 0.15461f, -0.147732f, -0.223183f, 0.122711f, -0.0314032f, -0.355301f, 0.0165435f, -0.148165f, -0.21615f, -0.0414957f, 0.176322f, -0.216237f, -0.32209f, 0.19949f, 0.249898f, 0.0440243f, 0.0352755f, 0.0146934f, 0.087484f, -0.0192144f, 0.117353f, 0.273833f, 0.0767953f, -0.350772f, -0.143531f, -0.00909504f, 0.13574f, -0.00219312f, -0.235491f, 0.181308f, -0.216463f, 0.20007f, -0.117414f, -0.116028f, 0.0242288f, 0.128458f, -0.315176f, 0.018785f, 0.106964f, 0.0130083f, -0.0961093f, -0.0489368f, -0.125389f, -0.165091f, 0.134202f, -0.2523f, -0.0904066f, 0.00305259f, 0.0866993f, 0.0692824f, 0.19257f, -0.244503f, -0.0736611f, -0.1451f, -0.112495f, 0.0399911f, -0.121157f, 0.253196f, 0.00459905f, -0.227867f, 0.0617407f, 0.071264f, 0.0576891f, -0.211009f, 0.221029f, -0.0993644f, -0.00527626f, -0.143703f, 0.0698772f, -0.229017f, 0.0904411f, 0.0496741f, 0.050896f, -0.174909f, 0.140289f, 0.0437163f, 0.0469978f, 0.142091f, -0.0398878f, -0.19024f, -0.132746f, -0.160016f, 0.0714799f, 0.0916417f, -0.221097f, 0.0621973f, -0.0329025f, 0.0553339f, -0.138454f, -0.0175049f, -0.0707288f, 0.0121416f, 0.0788555f, -0.0916797f, 0.245514f, -0.199987f, -0.159681f, -0.0914456f, 0.0887217f, -0.0355998f, 0.0082238f, 0.171175f, -0.111339f, 0.223556f, -0.00540522f, -0.0462278f, -0.0600485f, 0.0677356f, -0.0796082f, 0.174721f, -0.00357041f, 0.195025f, -0.180574f, -0.0170589f, 0.168635f, 0.0289565f, 0.0613873f, -0.189484f, 0.0118204f, -0.0677387f, -0.0595361f, 0.185515f, 0.0580674f, 0.0960679f, -0.0956365f, 0.0786318f, -0.0990435f, -0.0397969f, -0.0722669f, 0.0205202f, 0.0175538f, -0.166854f, 0.000299677f, -0.0693539f, 0.0888423f, -0.111608f, -0.122428f, -0.195563f, -0.0405939f, -0.0565475f, 0.0827688f, 0.212443f, 0.00589446f, 0.112476f, 0.157233f, -0.181512f, -0.108246f, 0.0429565f, -0.0127869f, -0.0574877f, -0.0771649f, 0.226016f, 0.0893179f, -0.143634f, -0.0611408f, 0.0362317f, -0.106488f, -0.186434f, -0.120156f, -0.00520507f, -0.0588003f, -0.210143f, -0.0930008f, -0.0896528f, -0.0226181f, -0.00240034f, 0.0152493f, 0.00784133f, -0.284287f, 0.258896f, -0.120936f, 0.151308f, 0.0536127f, -0.0122166f, 0.0123942f, 0.100021f, -0.0211357f, 0.0318688f, 0.123929f, -0.0463076f, 0.0298142f, 0.24115f, -0.125382f, -0.158389f, -0.219546f, 0.132037f, -0.0748275f, 0.0268358f, -0.201994f, 0.128296f, -0.166777f, -0.0495168f, 0.111506f, -0.105676f, 0.0992425f, 0.0198304f, 0.172339f, -0.0277795f, 0.0660632f, 0.21808f, 0.0815846f, 0.179436f, 0.0454079f, 0.0193607f, -0.112999f, -0.110505f, 0.116022f, -0.0575295f, -0.224004f, 0.294129f, 0.0991277f, 0.0888203f, -0.130733f, -0.00149296f, -0.0472804f, 0.0269233f, 0.0376028f, 0.110169f, 0.0218587f, 0.11918f, 0.0140077f, 0.0838723f, -0.0293779f, 0.232786f, -0.0170778f, -0.102289f, -0.0536425f, -0.160831f, 0.0222458f, -0.0348127f, 0.0722749f, -0.219219f, -0.0105726f, -0.136038f, 0.174526f, 0.0706014f, -0.0381076f, 0.0818496f, -0.041007f, -0.0279504f, -0.0771f, 0.0702487f, 0.139104f, 0.11835f, 0.0138718f, 0.0624472f, -0.12069f, 0.0599857f, -0.183751f, 0.124901f, -0.0862448f, -0.0746239f, 0.0769627f, 0.115717f, 0.100346f, -0.0728379f, 0.151034f, 0.170774f, -0.11788f, 0.284398f, 0.0163081f, 0.0248215f, -0.0700995f, -0.0466913f, -0.0414379f, 0.0296636f, -0.108305f, -0.0536947f, -0.0147858f, -0.017185f, 0.0633749f, 0.136391f, -0.0300301f, -0.0247302f, 0.0465545f, -0.0992116f, 0.0476226f, -0.0962895f, 0.197636f, 0.00870516f, 0.0734076f, 0.116903f, -0.0779998f, 0.0933539f, -0.0617179f, 0.102445f, -0.145381f, 0.061635f, 0.118898f, -0.00896852f, 0.0233315f, 0.10293f, 0.136991f, 0.143168f, -0.0761006f, -0.0968762f, -0.10459f, -0.0762801f, 0.0154086f, -0.0408641f, 0.0882056f, -0.0348377f, -0.186415f, -0.0832717f, -0.128045f, -0.131255f, -0.0977479f, 0.224647f, -0.149699f, 0.148595f, -0.170503f, 0.202909f, -0.134842f, -0.0349647f, -0.0838062f, 0.259073f, -0.164367f, 0.0959968f, -0.0559757f, -0.0721298f, -0.158059f, 0.131884f, -0.147469f, -0.015298f, -0.123441f, -0.121249f, 0.182295f, -0.115956f, 0.250222f, -0.198862f, 0.443135f, 0.0476663f, 0.20978f, -0.051714f, 0.105792f, -0.0761158f, 0.0339138f, 0.00763426f, 0.106075f, -0.0325905f, 0.0371828f, 0.014405f, -0.00714979f, -0.185414f, 0.0885228f, 0.0151672f, -0.0834886f, 0.0160108f, -0.173657f, 0.0138654f, 0.216881f, 0.176999f, -0.0153225f, 0.071943f, -0.123581f, -0.133487f, -0.0948244f, 0.127535f, 0.497627f, 0.0442228f, 0.339918f, -0.0761195f, -0.0522434f, -0.15864f, -0.257995f, 0.0286491f, -0.0136111f, 0.0308147f, -0.290843f, 0.0909711f, -0.117873f, -0.0522542f, 0.0673399f, -0.0647917f, -0.152532f, 0.0162726f, -0.0492014f, 0.095948f, 0.342433f, -0.360294f, -0.0523382f, 0.0606024f, -0.0229294f, -0.209347f, 0.0514117f, -0.142256f, 0.0790135f, -0.174455f, 0.00357192f, -0.0598755f, -0.0492054f, -0.0404187f, -0.0797992f, 0.12674f, -0.190078f, -0.0130724f, -0.0889742f, -0.0882151f, 0.0217241f, 0.0275939f, -0.0041179f, 0.113382f, 0.110418f, -0.0480335f, -0.0814837f, 0.361619f, -0.150515f, 0.189554f, 0.0124315f, -0.0356898f, 0.0626139f, 0.268562f, 0.113303f, -0.158766f, 0.0635013f, 0.131985f, -0.15666f, -0.180338f, 0.0802486f, -0.0665283f, 0.0864411f, -0.0185992f, -0.0287336f, -0.120775f, 0.0328082f, -0.150635f, -0.121343f, 0.143964f, 0.129334f, -0.236481f, 0.0156494f, -0.104719f, 0.158649f, 0.296516f, 0.0162246f, -0.176099f, -0.070585f, -0.0382287f, -0.028545f, -0.0142301f, -0.157194f, 0.243095f, 0.135748f, 0.0485778f, -0.193295f, -0.188345f, 0.018709f, -0.0369056f, 0.106823f, 0.130484f, -0.0250461f, 0.138573f, 0.121392f, 0.148463f, 0.0623925f, -0.0347983f, 0.194203f, 0.0212668f, -0.0694238f, -0.203761f, -0.192154f, 0.0212174f, -0.0390487f, 0.29176f, 0.168291f, -0.0376847f, -0.108648f, 0.149343f, -0.12275f, 0.0477938f, -0.285289f, -0.135009f, 0.243482f, 0.0553269f, -0.00342714f, 0.0150232f, 0.194492f, -0.0245397f, 0.121771f, -0.0150942f, -0.0629294f, 0.0423804f, -0.00600906f, -0.0642439f, 0.240504f, -0.171047f, 0.0224934f, -0.162227f, 0.0249732f, -0.0837777f, -0.00953304f, 0.0552331f, 0.0951847f, -0.146508f, 0.19355f, -0.0410928f, 0.189542f, -0.244489f, -0.0725524f, -0.0753443f, -0.141169f, 0.0213425f, 0.13565f, -0.0230537f, 0.0775432f, -0.163521f, 0.165672f, -0.050296f, 0.121747f, -0.286051f, 0.140712f, 0.0569617f, -0.0768094f, 0.191671f, 0.100675f, -0.06569f, 0.231045f, 0.00496583f, 0.0256821f, -0.0298698f, 0.119077f, 0.210535f, 0.0884374f, 0.122249f, 0.0258456f, 0.0328535f, -0.159813f, 0.179017f, 0.060699f, 0.113471f, 0.172358f, 0.236032f, -0.0822357f, 0.000708734f, 0.119994f, -0.0416608f, 0.229528f, -0.00637732f, 0.249882f, -0.000698751f, -0.169222f, 0.147388f, -0.208527f, -0.112213f, -0.170714f, 0.215148f, -0.0332582f, -0.258056f, -0.0737531f, 0.0603722f, -0.0513443f, -0.0323219f, -0.0843993f, -0.218622f, -0.144298f, 0.0136905f, 0.0363807f, 0.0911537f, -0.0995493f, 0.162708f, 0.0791763f, -0.0189002f, -0.00943009f, -0.178138f, 0.124046f, 0.0611177f, -0.0615182f, -0.0276502f, -0.246552f, 0.1167f, 0.0226026f, -0.192259f, 0.015561f, -0.138209f, -0.0383521f, 0.0503405f, -0.0230505f, 0.130035f, -0.11779f, 0.208896f, -0.0633937f, 0.042968f, -0.0186316f, -0.062491f, 0.104258f, 0.0839335f, -0.083368f, -0.135951f, 0.104705f, 0.129053f, -0.228104f, 0.0308443f, 0.117762f, 0.00175038f, 0.0154309f, -0.0861869f, -0.132558f, 0.00655893f, -0.169043f, 0.0230632f, 0.215959f, 0.114077f, -0.33349f, -0.106664f, 0.0454484f, -0.145732f, 0.0843251f, -0.211552f, -0.146969f, -0.0296811f, 0.143115f, 0.109592f, -0.0699086f, -0.065549f, 0.0908779f, -0.114406f, 0.200411f, 0.239473f, 0.107752f, 0.0824434f, 0.143339f, 0.025713f, -0.183392f, 0.0821401f, 0.0145631f, -0.158908f, 0.0604318f, 0.184713f, 0.155474f, -0.0416717f, 0.111736f, 0.0753045f, -0.195291f, -0.111708f, -0.159047f, -0.21575f, -0.0915541f, -0.0451807f, 0.00137138f, 0.0341311f, -0.224869f, 0.168507f, -0.062951f, -0.158379f, -0.201471f, -0.365145f, -0.0898417f, -0.0204818f, -0.0966831f, 0.0234643f, -0.139061f, 0.115681f, -0.105809f, -0.191464f, 0.117984f, 0.140034f, 0.19962f, 0.0378713f, 0.086294f, 0.0392628f, 0.0524086f, 0.069938f, -0.204378f, -0.19943f, 0.172097f, -0.0838025f, -0.141277f, 0.294579f, 0.00928844f, 0.0511687f, 0.0187625f, 0.108033f, 0.0574106f, 0.0401574f, -0.0689941f, 0.0381486f, 0.0496099f, 0.0540846f, -0.233765f, 0.00916735f, -0.0134348f, -0.0377136f, -0.0567943f, -0.076915f, -0.0400873f, -0.063457f, 0.141413f, -0.0170422f, 0.0182297f, -0.0225433f, 0.107378f, -0.0729189f, 0.162688f, 0.0532356f, -0.0231734f, -0.407416f, 0.04681f, 0.0902716f, -0.0730418f, 0.141644f, -0.00415981f, 0.0936864f, -0.124467f, -0.0349421f, -0.140631f, -0.209908f, -0.0417595f, 0.163828f, 0.0677022f, 0.010015f, -0.129513f, -0.0863064f, -0.0931455f, 0.0976241f, 0.283569f, -0.073103f, 0.0312353f, 0.207816f, 0.0181011f, -0.122769f, -0.0602832f, -0.0323632f, -0.111808f, 0.25628f, 0.042377f, 0.0835318f, -0.0888962f, 0.0837525f, 0.0231115f, 0.0505099f, -0.00678701f, -0.0808464f, 0.00270681f, 0.148507f, 0.167309f, 0.123002f, 0.12597f, -0.0302656f, -0.0380078f, 0.103389f, -0.080159f, -0.0334606f, 0.159757f, -0.012698f, -0.187036f, 0.0383783f, 0.114703f, 0.0404048f, 0.153594f, 0.120859f, -0.0624666f, -0.0952079f, -0.245376f, 0.041909f, -0.150175f, 0.0341554f, -0.0584498f, 0.0737275f, 0.0520367f, 0.0771779f, 0.171449f, 0.0209214f, 0.173897f, 0.0415997f, -0.0605357f, 0.0607445f, 0.154451f, 0.117122f, -0.0514061f, 0.106011f, 0.0313788f, -0.105615f, -0.159702f, -0.0710627f, -0.141494f, -0.0807766f, -0.0441519f, -0.127497f, 0.0511533f, 0.0130792f, -0.0585933f, 0.177078f, 0.23475f, 0.125582f, 0.00571956f, -0.169426f, -0.00300907f, -0.175383f, -0.067509f, 0.0659808f, 0.0815051f, 0.0684584f, 0.0525309f, 0.00381349f, -0.0246989f, 0.0341376f, -0.00387765f, 0.202543f, 0.0383866f, -0.0520036f, 0.124935f, -0.119693f, 0.189975f, -0.195423f, 0.0506337f, 0.0294973f, 0.0872317f, -0.177271f, 0.139434f, 0.0990585f, -0.0857858f, 0.0472941f, -0.104472f, 0.179086f, -0.184184f, -0.225509f, 0.0727216f, -0.13838f, 0.0885016f, -0.0858618f, 0.107372f, -0.21001f, -0.118609f, 0.0913917f, -0.08942f, 0.0756811f, 0.0284971f, -0.0272792f, -0.113003f, 0.0348813f, 0.016639f, 0.00751447f, 0.037739f, 0.00302034f, 0.276001f, -0.213015f, 0.0518006f, 0.17823f, 0.116938f, 0.104309f, 0.135326f, -0.0248156f, -0.0640884f, -0.0556699f, 0.00924908f, 0.125932f, 0.00348114f, -0.00766459f, -0.249475f, 0.118566f, -0.0705021f, 0.0381681f, 0.170019f, 0.0712481f, -0.0167836f, 0.202139f, 0.157425f, 0.137991f, -0.1564f, 0.0718406f, -0.0105687f, 0.176317f, 0.0531673f, -0.00227366f, 0.100886f, 0.0952725f, 0.0156776f, 0.0162479f, -0.228526f, -0.0720464f, 0.086254f, 0.0720029f, -0.00072715f, -0.125869f, -0.141303f, 0.0315072f, 0.245333f, 0.00691342f, -0.0973259f, -0.164234f, 0.0346539f, -0.105927f, -0.0978237f, 0.103701f, -0.0201751f, -0.0301316f, -0.0392267f, -0.0249358f, -0.0480332f, -0.0420498f, -0.0848936f, -0.213823f, 0.132998f, -0.123895f, 0.123979f, -0.0918765f, 0.0852892f, -0.0171303f, 0.0622924f, -0.0150909f, 0.11062f, 0.340453f, -0.115086f, -0.131908f, 0.0430333f, -0.067933f, 0.059517f, -0.0756584f, -0.0451865f, 0.0264667f, 0.0531691f, 0.0354189f, -0.0511125f, 0.00309003f, -0.106283f, -0.126534f, 0.131457f, -0.176481f, 0.0577933f, -0.0223766f, 0.150189f, -0.205636f, -0.006562f, -0.176947f, -0.0264941f, -0.144157f, 0.0125131f, -0.0145115f, -0.0191832f, -0.0152929f, -0.136432f, 0.224422f, 0.0201393f, -0.0602953f, -0.0160925f, 0.140689f, -0.15165f, 0.00732615f, 0.179419f, 0.050022f, -0.162305f, -0.14718f, 0.00128104f, -0.015485f, -0.240561f, 0.179142f, -0.0579683f, 0.110239f, -0.240397f, 0.150941f, -0.190763f, -0.162084f, 0.0516049f, -0.0576267f, -0.0194246f, -0.150866f, -0.123027f, 0.0851167f, 0.0780423f, 0.0477115f, 0.0299487f, 0.10413f, 0.0846311f, -0.200959f, -0.0824668f, 0.169525f, -0.015957f, -0.191378f, 0.0892436f, -0.072794f, -0.150841f, -0.191491f, 0.0533453f, 0.168525f, -0.102854f, 0.100022f, 0.181162f, 0.10131f, 0.0500074f, 0.00986805f, 0.186053f, 0.0207986f, -0.00241713f, -0.152246f, -0.13283f, 0.1973f, -0.214769f, -3.00778e-05f, -0.0502326f, 0.0504105f, -0.0403373f, 0.0119293f, 0.235437f, -0.1858f, 0.326556f, 0.147462f, 0.177896f, -0.0381957f, 0.252195f, 0.206391f, -0.167106f, 0.214589f, 0.081461f, -0.236675f, 0.0853225f, 0.188476f, 0.0501315f, -0.00138833f, -0.0701222f, -0.0737311f, 0.0157076f, 0.0852563f, 0.0484631f, -0.0985231f, -0.225663f, 0.0888239f, -0.0830946f, 0.111741f, 0.11035f, 0.162056f, 0.188841f, -0.183441f, -0.0891843f, 0.0783177f, 0.0233136f, -0.113339f, 0.0836347f, 0.171112f, -0.0514228f, -0.0111479f, 0.17133f, -0.160053f, -0.0636509f, 0.0986406f, 0.105898f, 0.18145f, 0.0501874f, -0.218024f, -0.197044f, 0.0281254f, -0.206307f, 0.0079579f, 0.105096f, 0.224225f, -0.0401122f, 0.0128525f, -0.0654001f, -0.108227f, 0.108122f, 0.0726031f, 0.169738f, -0.0931967f, -0.241422f, 0.0238606f, 0.128105f, -0.0295823f, 0.0133859f, -0.0802088f, 0.265926f, 0.064014f, -0.143212f, 0.15677f, 0.0878308f, 0.0782661f, -0.0407571f, -0.101642f, -0.0275508f, 0.189999f, 0.125878f, 0.0556639f, 0.123684f, -0.0456726f, 0.0333277f, 0.230864f, 0.0612059f, 0.0664778f, -0.247635f, -0.0609898f, 0.0738448f, -0.213149f, -0.0545537f, 0.0501352f, 0.0512665f, -0.297523f, -0.212628f, 0.167317f, 0.0277513f, 0.12691f, -0.0739153f, -0.00376449f, -0.0665538f, -0.0180687f, -0.0221832f, 0.11448f, 0.0386709f, -0.00649263f, 0.063818f, -0.037248f, 0.0119514f, -0.0220588f, -0.156226f, -0.0441843f, -0.0222686f, 0.0473819f, 0.172311f, -0.0490813f, -0.16654f, -0.123929f, 0.0174711f, 0.0999089f, -0.0267705f, 0.0880913f, 0.0351817f, -0.0235095f, 0.24509f, 0.0376518f, -0.0341685f, -0.0231662f, -0.139816f, -0.0677904f, 0.0312807f, -0.143714f, -0.108723f, -0.0409626f, 0.0405674f, -0.0343207f, 0.154881f, -0.0334951f, 0.0181962f, 8.40706e-05f, -0.0414858f, -0.000336124f, -0.07095f, -0.216081f, 0.019284f, -0.00607555f, -0.178929f, 0.00588737f, 0.00427713f, -0.0451757f, 0.0570049f, 0.0367325f, 0.194941f, 0.0221117f, -0.0918113f, -0.0398246f, -0.0034381f, 0.056552f, -0.0375523f, -0.0330525f, -0.0203864f, -0.0761813f, -0.129388f, -0.0602134f, -0.0347415f, -0.080728f, 0.02935f, -0.0255637f, 0.131364f, 0.141791f, 0.0264685f, -0.221582f, 0.0983732f, -0.0726196f, -0.101004f, -0.172243f, 0.0501069f, 0.185885f, 0.0758972f, -0.0194967f, -0.0353962f, -0.12216f, 0.219269f, 0.167144f, -0.262052f, 0.0105232f, -0.121199f, 0.0424855f, 0.0403773f, 0.031742f, 0.154286f, 0.0327762f, 0.125374f, 0.128134f, 0.148836f, 0.0397795f, 0.0301507f, 0.10875f, 0.0963822f, -0.0839951f, -0.131469f, 0.254294f, -0.164261f, 0.0494971f, -0.102622f, -0.12472f, 0.0692995f, -0.177107f, 0.0522239f, 0.0475125f, 0.0763671f, -0.251818f, 0.086841f, -0.024284f, 0.124346f, 0.17993f, 0.0641092f, -0.0997804f, 0.0281556f, -0.123732f, -0.109623f, -0.110671f, -0.10758f, -0.154805f, -0.209615f, 0.0145215f, 0.179101f, 0.171346f, 0.0068564f, 0.151545f, 0.134752f, 0.15599f, -0.200751f, -0.0545803f, 0.110328f, 0.162855f, 0.0753276f, 0.0132252f, -0.166665f, 0.0655049f, 0.01149f, -0.0815433f, -0.0520243f, -0.0297221f, -0.00130687f, 0.0927073f, -0.00844838f, 0.00202346f, 0.191945f, -0.00858897f, -0.00455804f, 0.0986155f, -0.0142583f, 0.117667f, -0.112806f, -0.014522f, 0.130165f, 0.0638633f, 0.0441465f, -0.0501557f, 0.00432093f, 0.0995511f, -0.0288963f, -0.0754229f, -0.0901234f, 0.0273735f, -0.209291f, 0.10226f, 0.187072f, 0.15697f, 0.139269f, 0.0653753f, -0.0397839f, -0.131281f, 0.0837638f, 0.114403f, 0.148856f, -0.099265f, -0.0681306f, -0.177527f, 0.181635f, 0.169317f, -0.186253f, -0.0392091f, -0.128592f, -0.182551f, 0.119134f, 0.0961213f, 0.130368f, 0.0120948f, -0.0923261f, 0.0731989f, -0.0213642f, 0.0267275f, -0.0395235f, -0.0068124f, 0.0236357f, -0.175007f, 0.0475486f, 0.24674f, 0.0125801f, -0.0677966f, -0.00436008f, -0.193815f, -0.130416f, 0.0644354f, -0.151608f, -0.178785f, 0.0512957f, -0.0796443f, 0.214916f, -0.00969603f, 0.0631522f, 0.202408f, -0.11538f, 0.00411608f, -0.00748383f, -0.0140447f, -0.0406053f, -0.150687f, 0.0145401f, 0.026815f, 0.133404f, -0.0104456f, -0.0311394f, -0.132319f, 0.296459f, 0.0905498f, -0.0383829f, -0.108509f, 0.0890855f, -0.105066f, -0.0597114f, 0.0839179f, 0.0351412f, -0.122742f, 0.0422078f, -0.234506f, 0.0314094f, 0.0115795f, -0.0487367f, -0.118074f, 0.0923864f, 0.202115f, 0.112913f, 0.186142f, -0.0164788f, 0.0616363f, 0.332124f, 0.100333f, -0.176279f, 0.0537754f, 0.0263551f, -0.167855f, 0.047272f, -0.105228f, 0.119079f, 0.0410183f, -0.00671155f, 0.0074867f, -0.155002f, -0.107592f, 0.121679f, 0.126445f, -0.0175433f, -0.1333f, -0.124821f, -0.0248287f, -0.0950555f, -0.158487f, -0.0643658f, -0.153966f, 0.0838022f, -0.101314f, -0.0373182f, -0.264729f, 0.100919f, -0.235467f, 0.14674f, 0.0632207f, -0.124055f, -0.0485566f, 0.0476791f, 0.186543f, -0.125875f, -0.110484f, -0.105875f, -0.0363264f, -0.173867f, 0.0242187f, 0.092231f, 0.207212f, -0.0246874f, -0.127624f, -0.106542f, 0.0536877f, -0.10612f, 0.0111637f, -0.0308262f, -0.0238937f, 0.258102f, -0.287368f, -0.0416983f, -0.0672131f, -0.0725908f, 0.0293611f, -0.0478649f, 0.0657612f, 0.089279f, -0.0362937f, -0.267653f, -0.095762f, 0.0672921f, -0.21718f, -0.0393556f, -0.184032f, 0.0663348f, 0.0389381f, 0.133459f, 0.0614035f, -0.0782151f, 0.1196f, -0.11676f, -0.0413248f, 0.135337f, -0.0540662f, 0.180939f, 0.00980318f, -0.0886974f, -0.204708f, -0.156389f, 0.0440858f, 0.2289f, 0.0796711f, -0.071578f, -0.139232f, 0.166842f, -0.0498865f, 0.0998727f, -0.10246f, -0.117304f, -0.0159203f, 0.0484976f, 0.111761f, -0.193814f, -0.0828589f, -0.147163f, 0.161261f, -0.0163631f, -0.0835008f, 0.10829f, 0.0414662f, -0.0343772f, -0.0340725f, -0.195871f, -0.159558f, -0.164485f, -0.127163f, 0.277993f, 0.105501f, -0.0120704f, -0.137344f, -0.145037f, -0.247857f, -0.00923079f, -0.177101f, 0.0338209f, -0.00352012f, -0.214818f, -0.0420441f, -0.0322592f, 0.123701f, 0.00193923f, 0.0217488f, -0.133141f, -0.0725813f, -0.0218666f, 0.0476923f, -0.042791f, 0.137046f, -0.159186f, -0.227206f, 0.148251f, -0.163664f, -0.237218f, 0.0267847f, -0.079216f, 0.0406229f, -0.0584788f, 0.00219305f, 0.038505f, 0.0313588f, -0.129266f, -0.00951937f, -0.0787033f, 0.281935f, 0.189665f, 0.0305088f, 0.0341581f, 0.0594499f, 0.0933892f, -0.245169f, 0.105588f, 0.00403862f, -0.0866125f, 0.0779346f, -0.217877f, -0.0803699f, -0.134492f, -0.104761f, -0.0300904f, -0.0288223f, 0.0421003f, 0.0338734f, -0.204095f, -0.0426227f, -0.0417358f, -0.0828459f, -0.213554f, 0.00966584f, -0.0330299f, 0.0125931f, 0.0769887f, 0.0445708f, 0.0674788f, 0.0578549f, 0.0324819f, -0.27872f, 0.248913f, 0.122375f, 0.1775f, 0.0500161f, -0.0728201f, -0.0684238f, 0.0812402f, -0.0384902f, -0.0957193f, 0.0925823f, 0.0132468f, -0.021922f, -0.0250219f, 0.197556f, -0.0431953f, -0.110531f, 0.0511842f, 0.0691944f, -0.0741121f, -0.300252f, -0.0193891f, -0.135409f, -0.0067938f, -0.0161304f, -0.0883328f, -0.0397648f, -0.0610468f, -0.178545f, -0.183161f, -0.179793f, -0.043428f, 0.220964f, -0.0360803f, 0.144611f, -0.00298052f, -0.155699f, 0.0787069f, 0.0771398f, -0.0259672f, 0.2272f, 0.102921f, -0.00703035f, -0.221652f, 0.0370881f, -0.0360827f, -0.0540218f, 0.230542f, -0.166825f, -0.0730596f, -0.0127838f, 0.0791799f, 0.0267146f, -0.177371f, 0.244448f, -0.19085f, -0.0898975f, 0.0525266f, 0.0761569f, 0.0152494f, 0.150664f, 0.223099f, -0.116946f, -0.161678f, -0.0845625f, -0.261996f, 0.243963f, 0.108877f, -0.109415f, 0.00939898f, -0.0613055f, -0.148468f, 0.0446449f, -0.00111376f, 0.0196059f, -0.130408f, 0.14028f, 0.0715553f, 0.215104f, 0.265924f, 0.137835f, -0.0764334f, 0.00500627f, 0.081118f, 0.0443328f, 0.30231f, 0.144477f, 0.035409f, 0.171383f, 0.0806937f, 0.138941f, -0.0635094f, -0.124936f, 0.138142f, 0.0345028f, -0.0620868f, -0.136121f, -0.253059f, -0.19811f, 0.128396f, 0.141842f, 0.144375f, 0.150117f, -0.199958f, -0.258205f, -0.0251488f, 0.186046f, 0.0958747f, -0.016858f, 0.0416273f, -0.064068f, -0.0911024f, -0.135498f, -0.288514f, -0.194755f, 0.109523f, -0.0383819f, -0.074338f, 0.292163f, -0.0822919f, -0.00875303f, 0.00368826f, 0.0485744f, 0.0521762f, -0.0549072f, -0.00905804f, -0.0895392f, -0.245191f, 0.000158038f, -0.075373f, 0.0470671f, 0.228514f, -0.160687f, -0.201253f, 0.0859425f, 0.0740839f, -0.129523f, -0.0338816f, 0.181195f, 0.023643f, 0.0752635f, 0.0553413f, -0.242516f, 0.186225f, 0.0397839f, -0.0780753f, 0.0949764f, -0.25064f, -0.0709829f, 0.016196f, 0.0671814f, 0.140228f, 0.280221f, 0.148701f, 0.103564f, 0.0244855f, 0.0767661f, 0.0015536f, 0.215795f, 0.0847503f, -0.0601874f, -0.0580239f, -0.159956f, 0.0890296f, 0.0645871f, -0.130093f, 0.163133f, -0.0176543f, 0.150757f, -0.178865f, 0.030551f, 0.00548856f, 0.105587f, 0.0292968f, -0.00598966f, -0.179383f, 0.0573082f, 0.222384f, 0.142258f, -0.069179f, -0.173445f, 0.039205f, 0.147268f, 0.0805529f, 0.0836546f, -0.118028f, -0.0331108f, -0.121332f, -0.0209208f, 0.320425f, -0.0489808f, -0.0801099f, 0.123191f, 0.0527406f, 0.02524f, -0.244088f, 0.00242727f, 0.148679f, -0.0594119f, -0.0365495f, 0.0551757f, 0.212056f, 0.0444952f, 0.160468f, -0.120965f, 0.0505909f, 0.00208717f, -0.0644444f, -0.198005f, 0.0778004f, -0.178676f, -0.0786653f, 0.0996382f, 0.0600434f, 0.0446542f, 0.0878299f, -0.0451052f, -0.0822713f, 0.0369853f, 0.0965782f, 0.0282109f, 0.104443f, 0.0498743f, -0.0493608f, -0.00469874f, 0.10345f, 0.0723946f, 0.199158f, 0.127024f, 0.224895f, -0.19782f, -0.124678f, -0.0822059f, -0.282538f, -0.0269615f, 0.0219577f, 0.0177923f, -0.00674599f, 0.000498931f, 0.167636f, 0.0377369f, 0.299963f, -0.115622f, 0.170377f, -0.216036f, -0.113279f, -0.220285f, -0.00791122f, -0.0853493f, -0.069326f, 0.125496f, 0.112396f, 0.0442339f, 0.0263032f, 0.093896f, -0.0572976f, -0.150704f, 0.0301656f, 0.0274615f, 0.000880652f, 0.00408171f, -0.140589f, -0.0661733f, 0.0305769f, -0.173233f, -0.195856f, 0.0476229f, 0.0195661f, 0.136776f, -0.110899f, 0.00420506f, -0.104537f, -0.218421f, 0.167713f, 0.205584f, -0.190746f, 0.139237f, 0.0120712f, 0.0757269f, 0.0197655f, -0.12329f, -0.137596f, -0.0811543f, -0.0607503f, 0.00116136f, 0.206997f, 0.0862915f, 0.183571f, 0.00437648f, -0.0444389f, 0.0738844f, 0.019113f, 0.0520631f, 0.146988f, 0.0321142f, -0.0806095f, 0.199f, 0.0576537f, -0.165014f, 0.127635f, -0.169902f, -0.0285413f, 0.117342f, 0.131721f, -0.00612743f, 0.148395f, -0.00273179f, -0.077137f, 0.161982f, -0.161348f, 0.100239f, 0.167767f, 0.10326f, -0.0516689f, -0.0507662f, -0.00949143f, -0.217488f, -0.168484f, 0.0261746f, 0.0214221f, -0.0321349f, -0.0494625f, -0.0842315f, 0.0334645f, -0.0257603f, -0.0114091f, -0.152203f, -0.239138f, 0.196022f, -0.0852932f, -0.0296207f, -0.15635f, -0.124458f, -0.103116f, -0.133091f, -0.135111f, -0.0880372f, -0.0405623f, -0.0701988f, -0.0744367f, -0.241748f, 0.0776741f, -0.157357f, -0.0849035f, 0.231606f, 0.167224f, -0.246772f, 0.0147511f, 0.305244f, -0.108788f, -0.0348165f, -0.125375f, -0.12026f, -0.0781184f, 0.120756f, 0.170602f, 0.332028f, -0.192387f, 0.0303536f, 0.0220235f, 0.00335026f, -0.151351f, 0.238284f, -0.207869f, -0.100539f, -0.197904f, -0.216585f, -0.0347973f, -0.0348162f, 0.248268f, 0.231784f, 0.0702953f, 0.0821355f, 0.0943178f, 0.136361f, 0.228607f, 0.126105f, -0.120706f, 0.0474607f, 0.0581673f, -0.109509f, -0.0238778f, 0.189319f, -0.0623776f, -0.151365f, 0.126574f, 0.101534f, -0.107899f, 0.0665804f, 0.203104f, -0.246447f, 0.0419479f, 0.15001f, 0.011854f, -0.242497f, -0.0818276f, -0.0165281f, 0.200292f, -0.350566f, 0.0248963f, 0.0283851f, -0.0415761f, -0.184916f, -0.0630202f, -0.0725195f, 0.0847852f, -0.00411873f, 0.263352f, 0.00566079f, 0.130412f, -0.205901f, -0.154357f, 0.0315017f, 0.0758527f, -0.156744f, -0.182474f, 0.0473884f, 0.27817f, 0.163935f, -0.10386f, -0.0168547f, -0.282109f, -0.159367f, 0.0949024f, 0.14032f, -0.145379f, 0.061965f, -0.204525f, 0.0973186f, 0.278534f, 0.126995f, -0.142278f, -0.0679224f, 0.10922f, -0.220498f, -0.0420547f, 0.106978f, 0.000615401f, -0.0548566f, 0.225f, -0.0743376f, -0.0372624f, 0.0804017f, -0.107059f, -0.176996f, 0.145289f, -0.163588f, 0.0757263f, -0.158465f, 0.0275313f, -0.0613217f, -0.0242648f, -0.162617f, -0.182264f, 0.218457f, 0.11739f, 0.112592f, 0.12602f, -0.25149f, 0.0132703f, -0.0911752f, 0.118763f, 0.158802f, -0.0207888f, 0.0954946f, -0.236364f, 0.18815f, 0.0460787f, 0.0234132f, 0.147402f, -0.224431f, -0.266781f, -0.14785f, 0.218903f, 0.0974525f, -0.138098f, -0.202613f, 0.0392662f, -0.0371948f, 0.0148945f, -0.181385f, -0.0418412f, -0.0704231f, -0.246395f, -0.132382f, -0.0317725f, -0.0346734f, 0.0734998f, -0.0648274f, 0.235899f, -0.0823098f, -0.216691f, -0.101457f, 0.00484969f, 0.153237f, 0.149626f, -0.0444919f, 0.00521929f, 0.0480663f, 0.359302f, -0.0617036f, 0.243414f, -0.0359253f, -0.127482f, -0.22953f, 0.131754f, -0.100034f, 0.0955094f, -0.0162842f, 0.269459f, -0.0846393f, -0.0810325f, 0.233098f, -0.205037f, -0.0202712f, 0.258176f, 0.15621f, -0.126152f, 0.0532161f, 0.056665f, -0.1286f, 0.227073f, 0.142427f, -0.0611977f, -0.214243f, -0.024541f, 0.101631f, -0.115543f, 0.0861484f, 0.0899979f, -0.0724174f, -0.00365758f, 0.168712f, 0.142311f, 0.228552f, 0.1963f, 0.000232366f, -0.257757f, -0.159537f, -0.00439429f, -0.29019f, 0.0303172f, -0.251573f, -0.360625f, 0.252714f, -0.0647627f, 0.0567579f, 0.074071f, 0.0220827f, -0.108602f, 0.191338f, -0.0658711f, 0.0388224f, -0.121746f, -0.132369f, 0.266752f, 0.316259f, 0.0501678f, 0.267117f, 0.0936496f, -0.256584f, -0.0409145f, -0.0743414f, 0.0750476f, 0.169045f, -0.0320328f, -0.214874f, 0.0788827f, 0.0508262f, 0.122104f, 0.235156f, 0.141141f, 0.101446f, 0.106547f, -0.136185f, 0.226232f, -0.201081f, -0.0970796f, 0.00104127f, 0.229427f, -0.0151113f, 0.0698221f, -0.0390262f, -0.0648117f, 0.145393f, 0.129508f, 0.0132367f, 0.11514f, 0.0325719f, -0.0811805f, 0.240724f, 0.160223f, -0.23714f, -0.249092f, 0.078751f, -0.0611733f, -0.0921485f, 0.102331f, -0.046059f, -0.149504f, 0.0339255f, -0.191552f, 0.0336442f, 0.0953037f, -0.0511696f, 0.180972f, -0.00665997f, 0.029467f, 0.123822f, -0.0729427f, -0.167768f, 0.162584f, -0.217345f, -0.20901f, -0.0329424f, 0.0707122f, 0.0497888f, 0.0665854f, 0.117246f, 0.0227552f, -0.068791f, 0.0188887f, -0.040994f, 0.19203f, -0.151876f, -0.171427f, 0.0929002f, 0.209629f, -0.252191f, -0.0249522f, -0.0522875f, 0.0153497f, 0.167599f, -0.0122793f, -0.13027f, 0.0824168f, -0.00330785f, 0.0777672f, -0.107596f, -0.129631f, -0.109541f, -0.00651535f, 0.235879f, 0.0378602f, -0.175976f, -0.222825f, 0.0703853f, 0.163797f, 0.37637f, 0.31583f, -0.0426376f, -0.0607395f, -0.0321306f, 0.00381398f, 0.303106f, 0.0234701f, 0.143592f, -0.143152f, 0.188426f, 0.132347f, 0.0153931f, -0.0948828f, -0.0586632f, 0.0986255f, -0.0281777f, -0.169509f, -0.207401f, -0.000199584f, -0.258002f, -0.000343902f, -0.0584561f, -0.198889f, -0.0876092f, 0.260605f, -0.179925f, -0.276883f, 0.161258f, -0.00157909f, 0.185625f, 0.0799613f, 0.187388f, -0.0022647f, -0.224154f, -0.0589886f, -0.162612f, -0.0963101f, -0.0604032f, -0.0997892f, 0.0144399f, -0.264977f, -0.202731f, 0.00416682f, -0.120784f, 0.148826f, 0.114274f, -0.321675f, 0.0803231f, 0.130048f, 0.203778f, 0.0328038f, 0.00322111f, -0.101229f, 0.272752f, -0.0476063f, -0.129832f, -0.0290232f, 0.0657671f, 0.123832f, 0.188469f, 0.0777473f, 0.164196f, 0.2668f, -0.0180292f, -0.314126f, 0.0499564f, 0.0473198f, -0.0052489f, 0.0437072f, 0.0131057f, -0.102622f, -0.0838502f, 0.0926171f, -0.104344f, -0.199915f, -0.18208f, -0.117837f, -0.1702f, 0.113056f, 0.106948f, 0.178668f, -0.101861f, 0.203706f, 0.0574561f, 0.149131f, -0.010273f, 0.113219f, -0.217039f, 0.120956f, 0.196671f, 0.0461044f, 0.0742245f, -0.130396f, 0.0537664f, -0.213396f, 0.196752f, -0.0907446f, -0.0689147f, 0.240284f, -0.0304548f, 0.127472f, -0.304106f, 0.0316913f, -0.30223f, 0.0346892f, -0.0497615f, -0.0719998f, 0.0553133f, -0.147659f, 0.19071f, 0.0969327f, -0.198117f, -0.0735421f, 0.0953276f, 0.104112f, -0.119919f, 0.152912f, 0.264227f, 0.00460469f, 0.313358f, -0.00833523f, -0.0285005f, -0.206106f, -0.0505828f, -0.113407f, 0.236376f, 0.120251f, 0.0124149f, 0.190209f, 0.0302067f, 0.200677f, -0.00514269f, -0.271841f, 0.152891f, -0.0326422f, 0.0744227f, 0.0809461f, 0.108167f, 0.115996f, -0.103855f, -0.146314f, -0.182547f, -0.0604073f, -0.149642f, -0.287797f, 0.0606751f, -0.180392f, -0.153308f, -0.161555f, -0.0595522f, -0.187795f, -0.253079f, -0.141884f, -0.11362f, 0.0751011f, 0.206272f, 0.108637f, -0.018136f, -0.213706f, 0.291834f, -0.162045f, 0.0465932f, -0.0805677f, 0.0379749f, -0.0368675f, 0.0217423f, 0.194079f, -0.0395303f, -0.119273f, 0.218927f, -0.269921f, -0.0880667f, -0.181958f, -0.111737f, 0.159221f, 0.122163f, 0.227528f, 0.126093f, 0.267891f, -0.0546506f, -0.0886692f, -0.103877f, 0.0794512f, -0.0114627f, -0.123116f, 0.19501f, 0.0913471f, 0.0636593f, -0.0541478f, 0.100005f, 0.0211371f, -0.0480075f, 0.0553202f, 0.071885f, -0.128259f, -0.118498f, 0.0225117f, -0.0649863f, -0.00487519f, 0.0600077f, -0.00794946f, -0.0324746f, 0.147702f, 0.019828f, 0.00139007f, 0.157115f, -0.156393f, 0.106583f, 0.0299308f, -0.0513641f, 0.0354362f, -0.0936841f, 0.101028f, 0.0216897f, 0.148974f, 0.113056f, 0.0652137f, -0.0175694f, -0.00169268f, -0.0583685f, 0.0392052f, -0.0428062f, 0.0728484f, 0.1103f, 0.0483218f, 0.0267304f, 0.0367902f, 0.0145381f, -0.0292388f, 0.100716f, -0.209867f, -0.00770661f, 0.0295026f, 0.146682f, -0.0537207f, -0.0799192f, -0.0374711f, 0.0327961f, -0.00492798f, 0.04598f, -0.088361f, 0.0902626f, -0.051403f, -0.0464485f, 0.0438923f, 0.0510519f, -0.0815251f, -0.0237418f, 0.0306642f, -0.048499f, 0.051404f, 0.0148407f, -0.0132552f, -0.171268f, -0.0543503f, -0.0777644f, 0.00610025f, 0.0723641f, -0.0238877f, 0.0181861f, 0.164299f, -0.152096f, 0.137051f, -0.0476802f, -0.0699019f, 0.0605506f, 0.0239582f, -0.0516469f, -0.0384339f, -0.0794331f, 0.134149f, 0.0262954f, -0.0973689f, -0.168791f, -0.0802869f, 0.0566883f, 0.0678796f, 0.0580097f, -0.0147469f, -0.0263443f, -0.00848264f, 0.120811f, 0.112631f, -0.099122f, -0.0973634f, -0.0885037f, 0.054129f, 0.0962648f, 0.0219073f, -0.0793131f, 0.103357f, -0.0996007f, -0.0310882f, 0.171131f, 0.0184693f, 0.0868147f, -0.138649f, 0.0518114f, 0.13857f, -0.177581f, 0.144538f, 0.0492049f, 0.172708f, -0.0612202f, -0.197431f, -0.100408f, -0.161788f, -0.0401465f, 0.147839f, -0.0871869f, 0.00431346f, 0.0534088f, -0.112474f, -0.107238f, -0.0115634f, 0.0562477f, 0.0130347f, 0.0981079f, 0.072901f, -0.0562375f, -0.112214f, 0.188591f, 0.0414989f, -0.100691f, -0.0751353f, -0.0638699f, 0.0532656f, 0.0100087f, -0.0272981f, -0.0795073f, 0.142307f, -0.0362338f, -0.0338987f, 0.0427203f, -0.0517681f, -0.0142994f, -0.01885f, -0.0332158f, 0.0835596f, -0.103867f, 0.0553477f, -0.145005f, 0.160869f, -0.0756516f, -0.00738616f, -0.0101588f, 0.183132f, 0.0775225f, 0.00599964f, 0.0762881f, 0.164588f, -0.0451962f, -0.0459143f, 0.0473068f, -0.0696673f, 0.141565f, -0.00575607f, -7.25876e-05f, -0.0422448f, -0.0557525f, -0.132698f, 0.146448f, 0.102034f, -0.175148f, -0.0353414f, -0.0561257f, -0.155273f, 0.170274f, 0.0712159f, 0.0263785f, 0.176291f, -0.0200297f, 0.0463911f, 0.0633174f, -0.05595f, -0.0223304f, 0.0227797f, -0.148465f, -0.0225058f, -0.0307345f, -0.0308574f, -0.0198085f, -0.0435773f, -0.164953f, 0.202593f, -0.0879914f, -0.0376234f, 0.017167f, -0.0891154f, -0.00168762f, -0.143542f, -0.137877f, 0.0298757f, -0.176188f, 0.078128f, 0.0621508f, -0.065425f, 0.0936761f, 0.115056f, -0.0959051f, -0.112982f, 0.073527f, -0.0879079f, -0.0055597f, 0.126601f, -0.0644311f, -0.126091f, 0.162319f, -0.125843f, -0.0722481f, 0.00566875f, -0.0949225f, 0.127922f, -0.0546273f, 0.0455066f, 0.0794612f, 0.0275138f, 0.100302f, 0.137132f, -0.0819783f, 0.0870964f, -0.0514836f, -0.0761976f, -0.00158928f, -0.0545561f, 0.191378f, -0.0542271f, 0.036795f, -0.00144044f, 0.0257756f, -0.108692f, 0.132462f, -0.0428912f, 0.174046f, -0.144304f, -0.101023f, 0.0466968f, -0.000645821f, -0.196455f, 0.209575f, 0.231874f, 0.189035f, 0.0161014f, -0.0470516f, 0.135f, 0.113228f, 0.0931335f, 0.128982f, -0.229706f, 0.175808f, -0.236511f, -0.0832798f, 0.163648f, 0.0361725f, 0.0701325f, -0.229173f, 0.175873f, -0.208711f, 0.00756937f, -0.0110201f, -0.169018f, 0.265528f, 0.211996f, -0.0239488f, -0.123394f, -0.0998259f, 0.0105796f, -0.0105445f, 0.115098f, -0.00751191f, -0.099164f, -0.0777451f, 0.0413475f, 0.218362f, 0.218008f, 0.100722f, 0.00470778f, 0.193405f, 0.00813409f, 0.0654968f, 0.00326797f, 0.120438f, -0.1309f, 0.250594f, -0.0508869f, 0.0628363f, -0.00894752f, -0.0454868f, 0.198977f, 0.115071f, -0.00815926f, -0.0283936f, -0.0308812f, 0.0699827f, -0.0628014f, 0.148307f, 0.0189183f, -0.153736f, 0.0696172f, 0.156091f, 0.269048f, -0.169629f, -0.0655902f, -0.00522174f, -0.00667836f, -0.11858f, 0.0991172f, -0.00136508f, -0.0687901f, -0.0060015f, -0.194458f, -0.0473507f, -0.105731f, 0.253732f, -0.031006f, -0.0178748f, 0.0115663f, -0.0476923f, -0.062242f, -0.00763044f, 0.243151f, 0.0451375f, 0.101702f, -0.0100733f, 0.0498615f, 0.174368f, 0.177358f, -0.0323011f, 0.0337199f, -0.0770523f, -0.00785692f, -0.00101247f, 0.0638644f, -0.0986596f, -0.224658f, 0.141883f, 0.136922f, 0.0552348f, -0.106854f, 0.120431f, 0.114738f, 0.254214f, -0.0163306f, -0.11658f, -0.11187f, -0.097893f, 0.0237246f, 0.0386942f, 0.139487f, 0.0666639f, 0.17616f, 0.120259f, -0.115447f, -0.156526f, -0.196367f, 0.107373f, -0.0546252f, -0.266188f, -0.0643973f, 0.0791356f, -0.106457f, 0.00892607f, 0.174114f, -0.173289f, -0.0421299f, 0.205371f, -0.0105249f, 0.100151f, -0.012183f, -0.15102f, -0.0413025f, -0.0218038f, -0.125621f, -0.00641398f, -0.203079f, 0.0442915f, 0.0140225f, -0.178856f, 0.0172931f, -0.211884f, 0.0108169f, 0.165849f, -0.105056f, -0.212017f, 0.182136f, -0.113971f, 0.0235794f, 0.0335944f, 0.15543f, 0.026579f, -0.0243166f, -0.138294f, -0.0139467f, 0.266755f, -0.181863f, -0.159504f, -0.148284f, -0.0403553f, 0.0241816f, -0.0645552f, 0.0472712f, -0.0842096f, 0.0849309f, 0.0329866f, -0.0184082f, -0.130456f, 0.15627f, -0.00133815f, -0.215514f, -0.0155427f, 0.160136f, 0.02177f, -0.130502f, -0.15863f, -0.0477494f, 0.0625466f, -0.000346417f, 0.100898f, -0.168059f, -0.0255169f, -0.0941089f, -0.0210961f, 0.00487664f, 0.0707932f, -0.123685f, 0.105026f, -0.0813653f, -0.0297971f, 0.18418f, 0.191349f, -0.00335188f, -0.0487956f, -0.079659f, -0.0183963f, -0.0594858f, -0.056689f, 0.147005f, 0.0905474f, -0.0371011f, -0.0310355f, 0.120914f, 0.100587f, 0.172808f, 0.0245107f, -0.0550578f, -0.261934f, -0.00297024f, -0.201941f, 0.13995f, -0.204269f, -0.0658896f, -0.104109f, -0.0889701f, 0.170808f, -0.00273481f, 0.0323272f, 0.121369f, -0.0246324f, 0.00830621f, -0.0312327f, -0.110207f, -0.0863211f, 0.0938827f, 0.063334f, -0.0668362f, -0.123559f, 0.0360363f, -0.00556467f, -0.132015f, 0.0254988f, 0.136593f, -0.0873215f, -0.212712f, 0.232918f, 0.0391574f, 0.187865f, 0.0241233f, -0.0254019f, -0.00611478f, 0.131176f, 0.138586f, -0.0854569f, -0.0154567f, -0.177786f, -0.12056f, 0.0695462f, -0.0501193f, 0.169009f, 0.107966f, 0.0580613f, 0.099415f, 0.126393f, 0.0422688f, 0.332139f, -0.0141595f, 0.0269415f, 0.0187517f, 0.0103351f, 0.101108f, -0.0276796f, 0.179012f, -0.153037f, 0.00796523f, -0.0877289f, -0.238126f, 0.0249395f, -0.0943082f, -0.21195f, -0.0204003f, 0.0672306f, -0.181265f, -0.187966f, -0.229279f, -0.241833f, -0.180053f, 0.114784f, -0.0950345f, 0.217714f, 0.0703225f, -0.16459f, -0.0357235f, 0.172937f, -0.134121f, -0.047782f, -0.107712f, -0.0895349f, 0.17956f, 0.146453f, -0.0483032f, -0.174041f, -0.130804f, 0.199863f, 0.0362322f, -0.109737f, -0.0941019f, 0.0721512f, -0.0623303f, -0.168674f, -0.124856f, 0.0306387f, 0.0425254f, -0.123571f, 0.0917909f, -0.121946f, 0.221388f, 0.0389316f, 0.213738f, 0.148749f, -0.0954707f, -0.0966917f, 0.0194885f, 0.328215f, 0.0185786f, 0.0180633f, 0.131658f, 0.00535827f, 0.180815f, 0.181111f, -0.252949f, -0.0676775f, -0.100917f, 0.062355f, -0.14863f, 0.234345f, -0.0370346f, 0.0931247f, -0.132927f, -0.0678318f, -0.178241f, 0.0749445f, -0.108128f, 0.0391395f, -0.34442f, -0.308162f, 0.0667697f, -0.0271422f, -0.0563261f, -0.00902654f, -0.325041f, 0.0624078f, 0.143782f, 0.275645f, 0.00410625f, -0.132808f, 0.0525191f, 0.123061f, -0.110855f, -0.0696992f, 0.291898f, -0.110839f, -0.0255972f, 0.118072f, 0.0265921f, -0.0736042f, -0.234459f, -0.185782f, 0.191031f, -0.0897466f, 0.190138f, 0.249213f, -0.0455953f, 0.0960834f, 0.0382777f, 0.279665f, 0.0208059f, -0.0141274f, 0.301386f, 0.155485f, -0.0499446f, -0.157407f, -0.047362f, -0.0914196f, 0.265411f, 0.101776f, 0.086931f, 0.0510938f, -0.0941389f, -0.0894477f, 0.0224786f, -0.108728f, 0.0981446f, 0.0612333f, -0.255932f, 0.123745f, -0.209746f, -0.197321f, 0.252531f, 0.138961f, 0.225119f, -0.004333f, 0.202309f, 0.202479f, 0.148573f, -0.0932501f, 0.0160385f, -0.0169154f, -0.210641f, 0.194051f, 0.0812886f, 0.182492f, -0.0104275f, 0.157663f, 0.105147f, -0.061972f, -0.245929f, -0.0576942f, 0.162006f, -0.0323397f, -0.0752897f, -0.0440102f, -0.0549013f, 0.0967604f, 0.238322f, -0.267659f, 0.0339834f, -0.151401f, 0.0672001f, -0.183245f, -0.0461561f, -0.164899f, 0.18486f, -0.132347f, 0.228112f, 0.0720856f, -0.0292823f, 0.0380365f, -0.153593f, 0.0976874f, 0.0167148f, 0.24169f, 0.176425f, -0.258478f, 0.0522751f, -0.149494f, 0.0671171f, 0.0769737f, 0.0310484f, 0.0273821f, 0.244897f, -0.0753406f, -0.0716541f, 0.00167581f, 0.17511f, -0.0767975f, -0.169791f, -0.0691348f, -0.0459287f, 0.0526415f, -0.0266737f, -0.0953872f, -0.0920135f, 0.175299f, 0.150688f, -0.0627722f, 0.0155495f, -0.259657f, -0.0374435f, 0.316015f, -0.0293999f, -0.0750868f, 0.0407045f, 0.222023f, -0.0541579f, -0.123243f, 0.112669f, -0.180559f, -0.135203f, -0.0346303f, -0.020154f, -0.068809f, -0.0139588f, -0.0837329f, -0.0366078f, 0.078832f, -0.00665933f, -0.0521288f, -0.0773869f, 0.0487001f, 0.00100359f, 0.00211723f, 0.00464686f, 0.114317f, 0.225535f, 0.130178f, 0.0385769f, -0.039333f, 0.0529028f, -0.175205f, -0.2296f, -0.287948f, -0.0541667f, 0.112535f, 0.139121f, 0.0107203f, 0.0924855f, 0.0117772f, 0.130411f, -0.231057f, 0.236364f, 0.094278f, 0.0377279f, -0.0519174f, 0.0201178f, -0.228689f, 0.251526f, -0.0815501f, 0.0999814f, -0.130594f, 0.0408427f, -0.0769086f, 0.0993398f, -0.0869587f, -0.134364f, 0.0299878f, 0.108991f, 0.0448434f, -0.00820336f, 0.0155813f, -0.100498f, 0.0570259f, -0.061145f, 0.065249f, -0.0881188f, 0.0494599f, 0.0139291f, 0.00630769f, 0.0935891f, -0.0607808f, 0.0728923f, -0.0453399f, -0.0910924f, 0.158599f, 0.149122f, 0.208663f, -0.0353431f, -0.119364f, 0.105565f, -0.104351f, -0.0358558f, 0.132707f, 0.0494333f, -0.0304035f, 0.000813477f, -0.136355f, 0.0165168f, 0.0633239f, -0.14179f, -0.0129297f, -0.0140281f, 0.0746679f, 0.0289339f, -0.0179267f, 0.0602272f, -0.158447f, 0.0598955f, 0.0378862f, -0.137174f, 0.0234191f, -0.0451674f, 0.0290561f, -0.10691f, 0.162189f, 0.0326849f, -0.0666562f, -0.185425f, 0.176748f, 0.105256f, -0.0347854f, 0.190678f, -0.123985f, -0.0842922f, 0.0847529f, -0.0702237f, -0.0252654f, -0.017368f, -0.139775f, -0.034751f, 0.0278296f, -0.0137456f, -0.030619f, 0.0499762f, 0.102203f, -0.0976849f, 0.0885421f, -0.0928986f, 0.0446592f, 0.0488536f, 0.0464399f, 0.139144f, 0.0254228f, -0.029756f, 0.0648433f, -0.0915304f, 0.0663758f, -0.153307f, -0.0653496f, -0.00915252f, -0.200552f, -0.109955f, 0.0653757f, 0.0804576f, 0.0481182f, 0.00646902f, 0.0643411f, -0.108122f, 0.026121f, -0.114603f, 0.0747361f, 0.0749244f, -0.042485f, -0.0458786f, -0.0224786f, 0.102215f, 0.0451296f, -0.13655f, -0.0555496f, 0.0306613f, -0.107989f, -0.130783f, 0.020457f, 0.0290691f, 0.0784101f, -0.0274084f, 0.000278534f, 0.143807f, 0.00693546f, 0.0673874f, 0.077565f, 0.034466f, 0.210948f, 0.103407f, 0.0842845f, 0.0801899f, 0.104568f, -0.165554f, -0.0546522f, 0.0702198f, -0.00418149f, -0.00895675f, 0.164025f, -0.142502f, 0.0661284f, -0.0107026f, 0.116622f, -0.048201f, 0.0336732f, 0.0603759f, 0.165249f, -0.0139079f, -0.081508f, -0.0216439f, 0.0659773f, -0.0953704f, -0.0896662f, 0.0125866f, 0.0680839f, 0.0250575f, -0.0843028f, 0.054292f, -0.0930044f, -0.205306f, -0.0375392f, -0.00754532f, 0.0893743f, -0.180411f, 0.0580488f, -0.0924067f, -0.0940338f, -0.0872521f, 0.122182f, 0.0252156f, 0.0553541f, 0.0298758f, 0.0495903f, -0.0513525f, -0.073139f, 0.130124f, 0.0719467f, 0.104288f, -0.106591f, -0.0133016f, -0.110592f, 0.121868f, -0.100373f, 0.108702f, -0.0047033f, 0.125181f, -0.0220227f, 0.119779f, 0.100824f, 0.0386102f, -0.075808f, 0.206218f, -0.0492632f, 0.000159309f, 0.0478982f, -0.073578f, -0.0111288f, -0.0192522f, -0.125569f, 0.178167f, -0.0244295f, 0.0663131f, 0.0534486f, -0.132043f, 0.0764561f, 0.105219f, -0.105091f, 0.161182f, -0.032068f, 0.12081f, 0.0350551f, -0.148143f, 0.0221669f, -0.0928296f, -0.0749341f, 0.0607063f, 0.164912f, 0.00349063f, 0.0124875f, -0.00963392f, -0.0507688f, -0.175056f, -0.026779f, -0.0681357f, -0.14787f, 0.114185f, -0.0494378f, 0.170925f, 0.0197966f, 0.0345488f, -0.0645212f, 0.114427f, 0.0412687f, -0.108596f, 0.134168f, -0.0422703f, 0.114344f, 0.000670537f, 0.161455f, 0.0877124f, -0.0980114f, 0.0695349f, -0.0349683f, 0.106881f, -0.0685546f, 0.0952871f, -0.120983f, 0.141455f, 0.115306f, 0.11219f, 0.140757f, 0.00507799f, 0.059952f, 0.0136611f, 0.0882622f, 0.0555502f, 0.110376f, -0.12966f, -0.0772392f, 0.0624411f, -0.177064f, -0.0295319f, 0.0162584f, -0.0874858f, -0.194426f, -0.0427677f, -0.0801682f, 0.0708486f, -0.116321f, 0.0236972f, 0.173373f, -0.0134713f, 0.0104514f, 0.049153f, -0.0691148f, 0.148346f, 0.0893835f, 0.107497f, 0.0177321f, -0.0526122f, 0.022379f, 0.0662692f, -0.157265f, 0.0677729f, -0.152607f, -0.0779586f, 0.0706912f, -0.116979f, 0.087808f, -0.179554f, 0.151073f, -0.183993f, -0.140062f, -0.126229f, -0.0741517f, 0.0755043f, 0.205495f, -0.0389285f, -0.0494553f, -0.0777828f, -0.0381569f, 0.131526f, -0.0599599f, 0.161305f, -0.0589727f, 0.199726f, 0.114872f, 0.0348077f, 0.0246125f, 0.0376542f, -0.14813f, -0.00715726f, 0.116073f, -0.0957251f, 0.136622f, -0.149f, 0.0782503f, -0.190853f, 0.0708757f, -0.00227522f, 0.0756576f, 0.0271799f, -0.0828709f, 0.170657f, 0.145438f, -0.0134952f, 0.163917f, 0.0346219f, -0.0112922f, 0.189f, 0.0363986f, 0.149623f, 0.0836719f, -0.0696396f, -0.122627f, 0.0229198f, -0.0568078f, 0.0408089f, -0.117442f, 0.147644f, -0.0497664f, -0.0732528f, 0.0715154f, 0.0395948f, -0.0499667f, 0.120546f, 0.0614922f, -0.112313f, -0.108022f, -0.00686639f, -0.132537f, 0.0798694f, -0.0646899f, 0.0979426f, 0.0821186f, -0.112264f, 0.03467f, -0.13595f, 0.00071132f, 0.0543375f, 0.00872148f, -0.0418678f, -0.0425319f, -0.121385f, -0.0955902f, -0.0784287f, 0.057966f, -0.150915f, -0.0449999f, 0.0211508f, 0.0391051f, -0.0434393f, -0.0162927f, -0.0210473f, 0.149832f, -0.08501f, 0.00294799f, -0.0120783f, 0.21111f, 0.159902f, 0.0645591f, -0.076731f, -0.0850753f, -0.0218259f, -0.095367f, -0.0422295f, 0.12024f, 0.0530133f, -0.121634f, -0.0151679f, 0.0824521f, 0.0286952f, 0.109024f, 0.00536574f, -0.0552003f, -0.0477341f, 0.0807996f, 0.110748f, 0.0417991f, -0.0334652f, -0.0674855f, -0.108487f, -0.0608442f, -0.193711f, -0.095375f, 0.0214505f, -0.129841f, 0.0275247f, 0.137326f, 0.144571f, 0.208227f, -0.00841338f, 0.0173942f, 0.121862f, 0.0803225f, 0.0539225f, -0.0690939f, -0.126484f, 0.140367f, -0.0200177f, 0.0596425f, 0.0399644f, 0.147408f, 0.0598815f, 0.0147116f, 0.126371f, -0.0442823f, 0.145749f, -0.0334121f, -0.102881f, 0.0146129f, 0.0333554f, 0.150464f, 0.172652f, 0.0845617f, 0.143801f, -0.173359f, 0.210565f, 0.0632684f, -0.115843f, 0.0609879f, -0.0764772f, 0.13464f, -0.132552f, -0.0480271f, 0.0506191f, 0.0455448f, 0.0061475f, 0.0368397f, 0.0184948f, -0.0267125f, -0.0541995f, 5.477e-05f, 0.0231515f, -0.0364525f, 0.0627501f, -0.0528868f, -0.0575653f, 0.179543f, -0.103461f, -0.0166308f, 0.0437477f, 0.155176f, 0.0258572f, -0.00765098f, -0.0248224f, 0.0148758f, 0.174406f, -0.0122026f, -0.041163f, 0.116724f, -0.0343239f, -0.0904247f, -0.112032f, 0.105174f, 0.110614f, 0.0465351f, -0.0144826f, -0.149832f, -0.0949128f, 0.0758935f, 0.0644497f, -0.135539f, -0.0164516f, 0.0358283f, 0.0231407f, 0.043904f, -0.0212996f, 0.131561f, -0.040767f, -0.0849236f, -0.0364873f, -0.0213333f, 0.0574362f, -0.13571f, 0.0669224f, -0.0591101f, 0.00984009f, 0.00809894f, -0.0828176f, 0.138378f, -0.0662256f, 0.00962234f, -0.161603f, 0.132796f, -0.0318338f, -0.029001f, 0.0353522f, 0.0163662f, 0.0541666f, 0.0866837f, 0.0345479f, 0.0116854f, 0.0903324f, -0.0803717f, -0.0707129f, -0.134368f, -0.0140062f, -0.103961f, -0.0594383f, 0.0758464f, 0.0314837f, 0.0960495f, -0.0833391f, -0.0529723f, 0.11566f, -0.25643f, 0.0990253f, -0.0949335f, 0.135968f, 0.0685359f, -0.18515f, 0.12819f, 0.244516f, -0.0830875f, 0.288346f, 0.0130326f, -0.0371162f, 0.143928f, 0.244801f, 0.146803f, -0.107658f, -0.27184f, 0.0890928f, -0.317454f, -0.0422226f, 0.177152f, 0.0277643f, 0.0353283f, 0.064916f, 0.0343499f, 0.21036f, -0.139033f, -0.00581314f, 0.0343022f, 0.00516736f, -0.0647287f, 0.0543031f, -0.128301f, 0.117013f, 0.0110692f, -0.0830828f, -0.257501f, 0.0304751f, -0.0463446f, 0.0259118f, -0.0462168f, 0.124874f, -0.080446f, 0.256564f, -0.0098191f, -0.0431413f, 0.103678f, 0.174688f, 0.252452f, -0.185653f, -0.141352f, 0.133475f, -0.000968542f, 0.0772189f, -0.0499858f, -0.235845f, -0.00042898f, 0.14132f, -0.235668f, 0.00371171f, 0.00475653f, 0.0504037f, 0.0115419f, -0.236411f, 0.147743f, -0.166215f, -0.0906444f, 0.161801f, 0.0339808f, -0.138445f, 0.00764652f, -0.0518908f, -0.287613f, -0.077784f, -0.321601f, -0.121998f, 0.0716644f, 0.208125f, -0.113399f, -0.0171155f, 0.160525f, 0.0401841f, 0.067005f, 0.221172f, 0.0397097f, 0.242524f, 0.0980692f, -0.0119923f, 0.230382f, -0.114596f, -0.325707f, -0.0367048f, 0.0141179f, -0.00240398f, -0.0230727f, 0.157793f, -0.199984f, 0.141508f, -0.22079f, -0.00048389f, -0.0462169f, 0.0881971f, -0.166102f, 0.101816f, 0.169207f, 0.143368f, 0.0629432f, 0.0580359f, 0.0564269f, -0.0294523f, 0.237592f, -0.094959f, -0.163075f, 0.099286f, 0.103037f, -0.0561891f, -0.0901182f, 0.063753f, -0.0102592f, -0.159423f, 0.0434545f, -0.112345f, 0.170987f, 0.116651f, -0.0418786f, -0.00392946f, 0.149664f, -0.0485832f, 0.00462741f, -0.253171f, -0.208013f, -0.3206f, -0.227232f, -0.145072f, -0.0841156f, 0.252894f, 0.0424211f, 0.21596f, 0.23603f, -0.0114656f, 0.0715044f, 0.0886175f, 0.153741f, 0.011315f, -0.0891526f, 0.20981f, 0.0030752f, -0.0697335f, 0.148114f, -0.2444f, -0.0117128f, -0.0282636f, -0.0373154f, 0.0641666f, 0.204158f, 0.0748526f, -0.0780792f, 0.132024f, 0.0629661f, 0.248876f, 0.167307f, -0.132607f, 0.030706f, 0.0933167f, -0.109786f, 0.0628978f, 0.230085f, 0.0487485f, -0.0343867f, -0.0774723f, 0.237772f, -0.00494409f, 0.179378f, -0.181874f, -0.136621f, -0.104052f, -0.104249f, 0.00247391f, 0.146517f, -0.190571f, 0.275368f, 0.0546154f, -0.133307f, -0.260933f, 0.0769503f, 0.0549862f, -0.0620232f, 0.0906296f, 0.0659759f, -0.210135f, 0.336239f, 0.0322401f, 0.0947026f, 0.0140555f, 0.0988411f, 0.0402968f, -0.192673f, -0.00293146f, 0.0477811f, -0.103267f, -0.0534882f, 0.227614f, 0.19791f, -0.168379f, -0.0591586f, 0.150677f, 0.160276f, 0.0313051f, 0.0757606f, -0.144232f, -0.109736f, -0.163458f, -0.0406251f, -0.0227113f, 0.275662f, 0.237593f, 0.0882822f, 0.217004f, 0.106115f, -0.0761626f, -0.0898948f, -0.184059f, 0.0326117f, -0.165878f, -0.136477f, -0.0357549f, 0.0210205f, -0.202622f, -0.0188119f, -0.156624f, 0.154376f, -0.011379f, 0.151134f, 0.161781f, 0.106266f, -0.163346f, 0.168518f, -0.0138577f, 0.0837398f, 0.000393393f, -0.0274941f, -0.104811f, 0.145045f, 0.00835971f, -0.313952f, 0.114882f, -0.0164885f, -0.0832529f, 0.289038f, -0.124121f, -0.15363f, 0.0793051f, 0.158285f, -0.217484f, -0.128363f, 0.334859f, -0.196335f, 0.0356779f, 0.049922f, -0.00976897f, -0.0566134f, -0.00761016f, 0.171637f, 0.0132179f, -0.142038f, 0.0601492f, -0.269629f, 0.00108376f, 0.118401f, 0.156034f, -0.361217f, -0.343893f, 0.23194f, -0.183726f, -0.130806f, -0.0834502f, -0.106191f, -0.223947f, 0.106861f, 0.0328839f, 0.127247f, -0.0813092f, -0.112464f, 0.0804573f, -0.225332f, 0.21336f, -0.102059f, 0.146156f, 0.0086661f, 0.312639f, 0.047745f, 0.0840446f, -0.0946163f, -0.0568266f, 0.0558543f, -0.0717383f, 0.286931f, -0.193584f, 0.151775f, -0.168049f, 0.219776f, 0.134079f, 0.181212f, 0.160058f, 0.0969281f, -0.00505356f, 0.032291f, 0.0483542f, 0.289605f, -0.104448f, 0.0517907f, -0.0164354f, -0.254222f, -0.00329971f, -0.163453f, 0.00342756f, -0.0599415f, 0.0523562f, 0.0865345f, 0.0113749f, 0.00811116f, -0.098211f, -0.0391468f, 0.0794386f, 0.380926f, -0.179756f, 0.137146f, -0.108409f, 0.108961f, -0.0810186f, 0.198107f, -0.080721f, 0.0187877f, -0.423068f, -0.0376319f, -0.041908f, -0.132018f, 0.0280425f, 0.000291481f, -0.266991f, -0.0697128f, -0.205379f, 0.256083f, 0.202357f, 0.000375274f, 0.0268253f, 0.272784f, 0.0933089f, -0.223311f, -0.145296f, -0.352817f, 0.0734802f, -0.00311349f, -0.0643121f, -0.137888f, -0.0769458f, 0.396103f, 0.251678f, -0.081347f, 0.221755f, -0.176445f, -0.17339f, -0.145738f, -0.0187558f, -0.171191f, -0.313605f, -0.0606663f, 0.218094f, 0.249075f, -0.148582f, 0.00928186f, -0.145536f, 0.190843f, 0.102744f, -0.185678f, -0.0563562f, 0.0264889f, 0.296506f, 0.054342f, -0.0117094f, -0.0594407f, 0.278855f, -0.273797f, 0.251668f, -0.0648777f, -0.151412f, 0.191325f, 0.0476376f, -0.125424f, -0.143301f, -0.328696f, -0.14947f, -0.302566f, 0.231646f, 0.0287608f, -0.0496264f, -0.0694777f, -0.312261f, -0.348353f, 0.187902f, -0.137259f, 0.012141f, -0.198433f, -0.112863f, 0.0655192f, 0.0166512f, 0.285466f, -0.176888f, 0.0806342f, 0.0460774f, -0.198617f, -0.071721f, 0.200376f, -0.0641067f, -0.185833f, 0.157443f, 0.177068f, 0.131635f, -0.119023f, 0.0802918f, 0.0660147f, 0.109337f, -0.250264f, 0.292728f, -0.0137633f, 0.106659f, -0.167545f, -0.151142f, 0.06188f, -0.0111327f, 0.199814f, 0.0928136f, 0.0650194f, -0.0743697f, -0.21699f, 0.163992f, -0.203602f, 0.0731906f, -0.0991405f, 0.031608f, -0.184256f, 0.314619f, 0.0537659f, -0.0111605f, -0.245743f, -0.209949f, 0.0168032f, -0.0782126f, -0.0324556f, -0.00978334f, -0.11821f, -0.353328f, -0.148683f, -0.118494f, 0.0211834f, -0.0445544f, 0.173328f, -0.136128f, -0.17774f, -0.128149f, 0.369045f, 0.191858f, -0.148139f, -0.0545611f, 0.0438004f, 0.312481f, 0.0924231f, -0.238614f, 0.0240298f, -0.270696f, 0.0568239f, -0.131386f, 0.0656099f, 0.0680186f, -0.226577f, 0.0401668f, 0.164904f, -0.164717f, -0.152797f, -0.265289f, -0.144141f, 0.369907f, 0.0169932f, 0.0837245f, -0.00490884f, -0.0468113f, -0.0642352f, -0.0903455f, -0.143097f, -0.291441f, -0.14856f, 0.19055f, -0.0492895f, 0.111237f, -0.0909564f, 0.327274f, 0.145427f, 0.323659f, 0.0754301f, -0.0699998f, 0.101841f, 0.378454f, 0.0715461f, -0.297462f, -0.115117f, 0.0381063f, 0.132621f, 0.123936f, 0.196163f, 0.131084f, -0.453117f, -0.0635415f, 0.418349f, -0.271778f, -0.174323f, -0.234745f, -0.0726836f, -0.148097f, -0.493083f, -0.358865f, -0.0101857f, 0.00283596f, -0.0553931f, -0.109032f, -0.13473f, -0.0614453f, 0.0823578f, 0.275446f, -0.155072f, -0.385777f, -0.0646954f, 0.136617f, 0.272463f, -0.141703f, 0.206842f, 0.00702053f, 0.270626f, 0.168102f, 0.0745696f, 0.0903697f, -0.14717f, 0.265304f, 0.0984514f, 0.310047f, -0.439811f, -0.158435f, 0.107517f, -0.440886f, -0.17561f, -0.229514f, -0.191497f, -0.113751f, 0.126802f, -0.183045f, 0.0369559f, 0.419182f, -0.285235f, 0.149635f, 0.18312f, 0.250091f, 0.277883f, -0.209499f, -0.252342f, 0.0678492f, -0.195708f, -0.136701f, -0.0861656f, -0.0966582f, 0.145738f, -0.195255f, -0.0429883f, 0.0865478f, 0.11701f, -0.172297f, -0.166578f, 0.0965192f, -0.124025f, -0.21378f, -0.0119825f, -0.515671f, -0.0993037f, -0.275872f, -0.0986662f, 0.202687f, -0.294897f, -0.167485f, -0.0245122f, -0.377573f, 0.013004f, 0.154751f, 0.101253f, 0.0891413f, 0.319555f, -0.154417f, 0.174433f, 0.0204923f, -0.159469f, -0.0486625f, -0.145411f, -0.0928703f, 0.0750883f, -0.0160439f, -0.281866f, -0.229868f, 0.0186892f, -0.0736205f, -0.26452f, -0.206965f, -0.104719f, 0.0577011f, 0.180554f, 0.026171f, 0.0107297f, -0.0468194f, -0.24524f, -0.291175f, -0.0205501f, 0.00991619f, 0.184198f, -0.268202f, -0.198472f, 0.185827f, -0.017254f, -0.144856f, 0.082231f, 0.0979316f, -0.11667f, -0.0895839f, -0.0620252f, 0.115813f, -0.0094243f, -0.404144f, 0.0417514f, -0.196176f, -0.251176f, -0.110989f, 0.151646f, 0.416249f, -0.232308f, -0.24746f, 0.0338508f, 0.0869128f, -0.0430289f, 0.0419461f, 0.0599666f, 0.0412675f, -0.170952f, 0.285865f, 0.0453712f, 0.0676923f, -0.663742f, 0.217886f, 0.148577f, -0.0593422f, 0.124155f, 0.0469136f, -0.0503547f, -0.282469f, 0.11702f, -0.311024f, 0.0869415f, -0.262028f, -0.172283f, -0.18612f, 0.274709f, 0.0484463f, 0.14306f, -0.318305f, 0.100156f, 0.157505f, 0.172682f, 0.0542162f, -0.0635151f, -0.0905138f, 0.288361f, -0.164534f, 0.12073f, 0.200441f, -0.00393349f, -0.088653f, 0.0621752f, 0.190451f, -0.124954f, 0.00576496f, -0.246155f, 0.0172245f, -0.188325f, -0.168307f, -0.123838f, -0.0846779f, -0.0291591f, -0.0441293f, -0.135374f, 0.0409922f, 0.321099f, 0.281322f, -0.0995681f, -0.297635f, -0.304911f, 0.400205f, -0.0553517f, -0.0125752f, 0.137029f, -0.141564f, 0.352436f, 0.167484f, -0.221108f, 0.13918f, 0.202785f, 0.144679f, 0.0676574f, -0.101233f, 0.359806f, 0.218445f, -0.00184183f, -0.0864795f, 0.128238f, 0.308331f, -0.0667566f, 0.149942f, -0.0913276f, 0.00255623f, -0.198626f, 0.199756f, 0.180923f, 0.159941f, -0.161369f, 0.0559671f, -0.087085f, -0.333501f, -0.0797861f, 0.10758f, 0.573488f, 0.111736f, -0.0621929f, 0.0322796f, 0.0486843f, -0.0907531f, 0.07079f, -0.0160968f, 0.129144f, -0.217551f, -0.261737f, 0.122263f, 0.191799f, 0.171841f, 0.202073f, 0.159862f, 0.145818f, 0.164785f, -0.103917f, -0.0219677f, -0.174706f, -0.0762552f, 0.134994f, 0.119356f, 0.258116f, 0.259402f, 0.187223f, -0.0848553f, -0.0577798f, -0.135869f, 0.165119f, 0.0799378f, 0.0203612f, 0.0700188f, 0.236616f, 0.025995f, 0.233891f, 0.164643f, 0.094846f, -0.0675221f, 0.27002f, -0.143052f, -0.231482f, -0.246503f, -0.033518f, -0.180861f, 0.0546815f, 0.122031f, 0.0231516f, 0.0962682f, 0.0566715f, -0.141689f, -0.251664f, -0.0700716f, -0.0302414f, 0.112524f, -0.0930972f, -0.171571f, 0.0779107f, 0.240578f, 0.0896005f, -0.0223272f, -0.146766f, -0.108463f, -0.266858f, -0.114873f, -0.0630364f, 0.207287f, -0.262905f, 0.0219212f, 0.269033f, 0.139141f, 0.0609019f, 0.00664091f, 0.0310279f, -0.0207227f, 0.180414f, 0.0832304f, -0.0572445f, -0.261943f, 0.030878f, -0.0295873f, -0.0147885f, -0.106906f, -0.301065f, -0.06423f, -0.157565f, -0.181444f, -0.15026f, -0.169553f, -0.18733f, -0.0800251f, -0.00889064f, -0.0963097f, -0.0867018f, 0.0653808f, 0.0914891f, -0.142025f, 0.102366f, -0.201982f, 0.269779f, -0.253514f, -0.0926755f, 0.0696579f, -0.278668f, 0.109483f, 0.201378f, -0.0623128f, -0.31795f, 0.153497f, 0.223146f, -0.00535018f, -0.208567f, -0.120395f, 0.198418f, 0.0434934f, -0.0288471f, -0.149123f, 0.250954f, 0.294584f, 0.109033f, -0.287106f, -0.059901f, 0.108923f, -0.0267061f, -0.123422f, 0.372051f, 0.0549478f, -0.101336f, -0.206702f, 0.0232044f, -0.072128f, 0.134459f, -0.16782f, -0.262565f, -0.20142f, -0.0373702f, 0.280781f, 0.0425154f, 0.0401973f, 5.12312e-05f, 0.148479f, 0.0294383f, -0.166819f, -0.216865f, 0.323721f, -0.00649773f, 0.101544f, -0.0466703f, -0.085041f, 0.000392842f, -0.089585f, -0.0530539f, -0.138248f, 0.150529f, -0.0215659f, -0.0402059f, -0.100787f, -0.26121f, 0.0731829f, -0.0869765f, -0.101103f, -0.0920839f, -0.162094f, -0.125611f, -0.0861077f, 0.00101822f, -0.177638f, 0.0777046f, 0.0019103f, -0.170797f, -0.0136857f, 0.0866732f, 0.0890436f, -0.0556815f, 0.185067f, 0.163484f, -0.253364f, -0.275615f, 0.304688f, 0.0137898f, 0.067069f, 0.0267469f, 0.0047759f, 0.0519969f, 0.202129f, 0.11628f, -0.11995f, 0.196569f, 0.0657516f, -0.0578979f, -0.204124f, 0.130016f, 0.143706f, -0.140239f, -0.00103044f, 0.151432f, -0.0195501f, 0.0949376f, -0.254769f, -0.192091f, 0.0765875f, -0.0897589f, 0.225272f, -0.221426f, 0.0479835f, 0.265415f, -0.162333f, -0.0476155f, -0.104048f, -0.159656f, -0.0528385f, -0.286012f, -0.135578f, 0.333926f, 0.170586f, -0.189713f, 0.0405926f, 0.0153323f, 0.0289536f, -0.0964969f, 0.0686963f, -0.103138f, -0.12945f, 0.124687f, 0.078461f, 0.0845946f, -0.0222993f, 0.0745725f, 0.0275371f, -0.135562f, -0.131441f, -0.15841f, -0.0497136f, 0.0393772f, -0.0273485f, -0.0471246f, 0.179209f, 0.0274713f, -0.138793f, 0.0946258f, -0.00501547f, 0.0474442f, 0.0243297f, 0.0827598f, -0.0814312f, -0.039964f, -0.295311f, -0.218543f, -0.315054f, -0.281383f, -0.252111f, 0.326451f, -0.125164f, 0.0889801f, 0.00383514f, 0.125234f, 0.0486142f, -0.283703f, 0.0112524f, 0.14507f, 0.140037f, -0.289663f, -0.00826233f, -0.216586f, 0.00760851f, 0.105566f, -0.232256f, -0.0378418f, 0.178535f, 0.162374f, -0.0420641f, -0.285804f, 0.0347156f, 0.126086f, -0.191225f, -0.076726f, -0.142945f, -0.0296548f, 0.0663094f, -0.225222f, -0.0404271f, -0.315107f, 0.0385564f, -0.16101f, -0.0363262f, -0.0682057f, 0.0625693f, -0.000864689f, -0.077616f, -0.377665f, 0.162011f, -0.226703f, 0.166143f, 0.0607977f, 0.0101859f, 0.0191619f, -0.0948114f, -0.284405f, -0.185409f, -0.0159811f, 0.151651f, 0.0395226f, 0.0620412f, -0.15035f, 0.0520458f, -0.117662f, -0.0259599f, 0.109786f, -0.126279f, -0.0331062f, -0.0824437f, -0.0688353f, -0.0214317f, 0.0507423f, -0.0849957f, 0.188356f, -0.118577f, 0.020521f, 0.0692057f, 0.0269725f, 0.0474015f, 0.155999f, 0.0695005f, -0.0749192f, -0.0802181f, -0.0342736f, -0.085923f, 0.169131f, -0.0532976f, 0.00825553f, -0.111158f, 0.240679f, -0.103689f, -0.106522f, 0.242876f, -0.111102f, 0.151795f, 0.00655589f, 0.106271f, -0.0530431f, 0.0178093f, -0.0651148f, -0.101019f, 0.138076f, -0.0946657f, 0.130281f, 0.0938333f, -0.0973926f, -0.104673f, 0.217666f, 0.192449f, -0.0702597f, -0.178093f, 0.0394661f, -0.0204316f, -0.054791f, -0.0132672f, -0.0247559f, 0.129097f, 0.253799f, -0.0636897f, 0.0137735f, 0.0973373f, -0.120385f, -0.0736305f, -0.199747f, 0.0738426f, -0.0998525f, -0.122451f, -0.0759673f, 0.286422f, 0.0645581f, -0.119098f, -0.228698f, 0.177996f, 0.245765f, -0.0963765f, -0.0705248f, -0.0399436f, 0.00894684f, -0.275961f, 0.150905f, -0.0485361f, 0.0844529f, 0.000627897f, 0.275543f, 0.020841f, 0.0289598f, 0.201035f, 0.0567076f, 0.234583f, 0.214806f, -0.110695f, -0.110974f, 0.119238f, -0.102174f, -0.102636f, 0.12796f, 0.169945f, -0.096026f, -0.231595f, 0.31539f, 0.187471f, 0.0376469f, -0.0952396f, 0.000566107f, 0.0986578f, 0.282431f, 0.00344363f, 0.141155f, 0.289338f, -0.0321566f, -0.183405f, 0.0560766f, -0.234411f, -0.241693f, -0.158925f, -0.208466f, -0.0546698f, -0.126688f, 0.14993f, 0.164288f, 0.183303f, -0.0223669f, -0.25197f, 0.0611093f, 0.293649f, -0.178917f, 0.118543f, -0.194954f, 0.0829172f, -0.0372706f, -0.035764f, -0.00873049f, 0.134203f, 0.091617f, 0.242908f, -0.0424248f, -0.202679f, -0.0510599f, -0.0257015f, -0.0867501f, 0.162813f, -0.162364f, 0.194133f, 0.00466001f, -0.109941f, 0.00678469f, 0.11085f, -0.173117f, 0.149464f, -0.195695f, -0.0533006f, -0.0939165f, 0.0913889f, 0.152469f, -0.0648148f, 0.350664f, 0.0517203f, -0.149552f, 0.231062f, 0.225298f, 0.0711807f, -0.0258821f, 0.0348155f, 0.242625f, 0.0268257f, 0.0247946f, -0.294348f, -0.017499f, -0.107255f, -0.341776f, -0.116905f, -0.273844f, 0.210793f, 0.27479f, -0.0660939f, 0.242976f, -0.222295f, -0.0452352f, -0.0236378f, 0.1213f, 0.305172f, -0.162959f, 0.176872f, 0.0211866f, -0.156255f, -0.115501f, 0.341366f, 0.0998605f, 0.0835478f, 0.143631f, 0.0264421f, 0.102151f, -0.114148f, -0.0978896f, -0.195027f, 0.033855f, -0.0999201f, 0.153881f, -0.0220552f, -0.0639859f, -0.0053757f, 0.0126737f, -0.105696f, -0.102109f, -0.214363f, -0.0142037f, -0.189727f, -0.199016f, 0.265214f, -0.0330204f, -0.215264f, 0.0773553f, -0.1493f, -0.110457f, -0.0832665f, -0.0718118f, -0.0067861f, -0.0683149f, 0.158309f, -0.218182f, 0.0352794f, 0.373916f, 0.149997f, -0.0525386f, -0.00795337f, -0.135356f, -0.216099f, -0.272398f, 0.045958f, 0.193887f, -0.185374f, 0.21533f, -0.0878308f, -0.304918f, 0.0947467f, 0.220024f, 0.0778218f, 0.194824f, 0.0345559f, -0.164875f, -0.161112f, -0.158344f, 0.0666801f, 0.165339f, 0.058261f, -0.0375478f, 0.223978f, -0.0627771f, -0.0140046f, 0.0633838f, 0.0978962f, -0.250902f, 0.161032f, 0.221561f, -0.109193f, 0.111184f, -0.0207365f, 0.168167f, -0.104506f, -0.0116236f, -0.177823f, 0.100014f, 0.0177641f, -0.132721f, -0.134037f, -0.0877721f, -0.0337439f, 0.189321f, -0.0841715f, 0.174217f, -0.081438f, -0.0359833f, 0.0714843f, 0.185511f, -0.03095f, 0.129447f, -0.2463f, 0.364701f, -0.051798f, -0.208188f, -0.180981f, -0.0814079f, 0.12802f, -0.11675f, -0.278296f, -0.0484722f, -0.0950303f, 0.350581f, -0.000471426f, -0.021005f, 0.200958f, 0.201134f, -0.197297f, 0.0236775f, -0.122762f, 0.352421f, -0.0437912f, 0.0238818f, -0.000456519f, 0.00352184f, -0.0272252f, -0.00238418f, 0.0865809f, 0.326508f, -0.0879576f, -0.102566f, -0.114068f, -0.18218f, -0.179841f, 0.201117f, -0.0710632f, 0.267945f, 0.212239f, -0.201845f, 0.172687f, 0.111963f, -0.154807f, -0.0996424f, -0.106152f, -0.210802f, -0.223399f, 0.167405f, -0.105727f, -0.120769f, -0.0931828f, -0.00131785f, -0.0566415f, 0.123331f, -0.00728129f, 0.191255f, -0.218208f, 0.0358271f, -0.0942154f, -0.0114956f, 0.114f, 0.00891921f, 0.0575024f, -0.0687113f, 0.0333066f, 0.0384617f, 0.116589f, 0.231326f, 0.289168f, -0.149736f, 0.263061f, -0.000795541f, 0.0644393f, 0.171435f, 0.0568724f, 0.00981227f, 0.016606f, 0.0141709f, -0.0706052f, -0.0979858f, -0.0388922f, 0.139618f, 0.182698f, 0.11046f, -0.0789949f, -0.107953f, 0.172267f, -0.025056f, 0.00766748f, -0.0789735f, 0.0343074f, -0.19891f, -0.0724004f, -0.16569f, 0.0446345f, -0.0096604f, -0.161634f, -0.0230805f, 0.234547f, 0.0208118f, -0.0875747f, -0.00492568f, 0.0576015f, -0.187976f, 0.0306124f, -0.251711f, -0.091974f, 0.137959f, -0.282971f, 0.0656307f, -0.0602851f, 0.178934f, 0.0238386f, -0.125716f, -0.091854f, -0.230083f, 0.0626484f, -0.0749496f, 0.26429f, -0.164061f, 0.093985f, -0.0256108f, -0.0191642f, -0.194684f, -0.0616042f, 0.18135f, 0.112895f, -0.221085f, 0.134695f, 0.104488f, 0.096501f, 0.218792f, 0.225133f, -0.245285f, 0.211829f, 0.00505073f, -0.0185114f, -0.0286725f, -0.093729f, 0.0332172f, -0.106867f, -0.0532029f, 0.116066f, 0.150422f, 0.0606228f, 0.0607205f, 0.0837027f, -0.0389415f, 0.283988f, 0.174033f, 0.111697f, -0.0971728f, -0.0900896f, -0.211028f, -0.104411f, -0.0115527f, 0.0803613f, -0.0638415f, 0.221849f, 0.125441f, -0.169769f, 0.0648019f, 0.16474f, -0.0531996f, 0.049407f, -0.164033f, 0.0934817f, -0.078981f, -0.0134592f, 0.0940697f, -0.0635724f, 0.359052f, -0.151154f, -0.061944f, -0.164485f, -0.0817863f, 0.123496f, -0.214807f, 0.0780455f, 0.115264f, 0.217078f, -0.103523f, -0.0878811f, 0.0980654f, 0.155403f, 0.0487189f, -0.0462314f, 0.0331027f, 0.0526882f, 0.148312f, -0.132896f, 0.0498109f, 0.074089f, -0.0404892f, 0.034352f, 0.178678f, 0.11548f, 0.130355f, -0.188067f, 0.0804855f, -0.108109f, -0.102201f, 0.0302652f, -0.195641f, 0.0762555f, 0.0455848f, -0.0594769f, 0.213276f, 0.0571791f, 0.0273219f, -0.022116f, 0.126423f, -0.118585f, -0.0925443f, -0.0980243f, -0.0897661f, 0.0871741f, -0.236395f, -0.196842f, 0.117713f, 0.130139f, -0.035609f, 0.0998464f, 0.0634154f, -0.0132673f, 0.169363f, -0.121202f, 0.110324f, 0.0621242f, 0.081297f, -0.174344f, 0.0382595f, -0.15021f, -0.133666f, 0.0470904f, 0.0542304f, -0.131056f, 0.0253051f, -0.0362563f, -0.0720241f, 0.0466947f, 0.0495073f, 0.0447228f, 0.0828382f, -0.169193f, 0.0079062f, 0.0306569f, 0.00547425f, 0.0888655f, -0.165719f, 0.144207f, 0.0475259f, 0.337866f, -0.111978f, 0.157081f, 0.157638f, -0.178997f, 0.104482f, 0.000859479f, 0.115024f, -0.0749089f, -0.0593184f, 0.227526f, 0.143617f, -0.081266f, 0.0321989f, -0.102764f, 0.0307623f, -0.0985789f, 0.191417f, 0.049708f, 0.109877f, 0.146158f, -0.0887098f, 0.145162f, -0.189211f, -0.15404f, 0.189456f, 0.176362f, -0.0945384f, 0.102192f, 0.204746f, 0.0454142f, 0.0102009f, 0.141807f, -0.129536f, -0.16017f, -0.0816235f, 0.0657158f, -0.0108698f, -0.00383171f, -0.22445f, 0.0917251f, 0.123365f, 0.0682356f, 0.210612f, -0.0128908f, -0.219365f, 0.0780276f, -0.220879f, 0.0969547f, -0.139226f, -0.100829f, -0.0971199f, 0.180086f, 0.106238f, -0.114003f, -0.0590243f, -0.233236f, 0.0311592f, 0.0304851f, 0.00785794f, 0.20404f, -0.162444f, 0.0472138f, -0.0217803f, -0.0808169f, 0.0105783f, -0.028599f, -0.20372f, 0.299416f, 0.130258f, -0.203495f, 0.110772f, 0.103823f, -0.127832f, -0.111113f, 0.0166224f, 0.0329439f, 0.0318883f, 0.17466f, -0.0280204f, 0.169109f, -0.0496189f, -0.0281608f, 0.080164f, -0.224438f, -0.0592801f, -0.146325f, -0.0453813f, 0.0886032f, 0.0143663f, -0.106038f, 0.137669f, -0.207554f, -0.0745725f, -0.00134984f, -0.100263f, 0.0191315f, 0.0827708f, 0.0193725f, 0.0650628f, -0.0761439f, 0.12786f, -0.250151f, 0.157813f, -0.111157f, 0.0433236f, -0.0842234f, -0.113781f, 0.0598391f, -0.103987f, -0.0819522f, -0.0707175f, 0.0774227f, 0.0605921f, -0.132195f, -0.139121f, 0.00632123f, 0.0813448f, 0.200476f, -0.0275212f, -0.120661f, -0.0424972f, 0.299054f, -0.0806652f, 0.0658542f, 0.0145653f, 0.110499f, 0.164204f, 0.0412998f, 0.0707707f, -0.195358f, 0.000873387f, 0.22123f, 0.0379311f, 0.183879f, -0.0830125f, 0.0725088f, -0.0228433f, -0.0693074f, -0.201706f, -0.0994385f, -0.265666f, -0.0327572f, 0.0563057f, 0.234261f, 0.0406438f, -0.0407482f, 0.00350746f, -0.00826201f, 0.0537816f, -0.0344242f, 0.0480342f, 0.197063f, -0.100666f, 0.00423732f, 0.135623f, -0.0146181f, 0.163063f, -0.100561f, -0.0258944f, -0.0374789f, 0.123462f, -0.151518f, 0.124198f, 0.220386f, -0.0484589f, -0.115933f, -0.246577f, -0.148483f, 0.0749238f, 0.153293f, 0.0720605f, 0.0178903f, 0.214224f, -0.0776848f, 0.00327032f, 0.248014f, -0.156225f, 0.0276379f, 0.117719f, 0.0786648f, -0.22452f, -0.0589515f, -0.0528506f, -0.0630049f, -0.0669504f, 0.0292121f, -0.0636535f, 0.152659f, 0.0517827f, -0.0454297f, -0.0316876f, 0.0330265f, 0.0434846f, 0.023447f, 0.0119096f, -0.164577f, -0.0624211f, 0.0635377f, -0.203696f, 0.0868849f, 0.10684f, 0.0130825f, -0.0907632f, -0.0672646f, 0.156086f, 0.122171f, -0.195121f, 0.02859f, -0.0601448f, 0.00769373f, 0.163709f, -0.178772f, -0.0574141f, -0.123378f, 0.109425f, 0.0323501f, 0.105624f, 0.233767f, -0.0334305f, 0.0505399f, 0.100769f, 0.0269296f, 0.279236f, -0.154261f, -0.081702f, 0.0433832f, 0.040829f, -0.0101602f, -0.108756f, 0.0107445f, 0.120641f, 0.04634f, 0.358446f, 0.166344f, -0.00591522f, 0.119632f, 0.197509f, 0.133537f, -0.091901f, -0.155464f, -0.0528853f, 0.266257f, -0.237088f, 0.220279f, -0.277623f, -0.0771795f, -0.0158765f, 0.118631f, -0.1926f, -0.167346f, 0.273909f, 0.254341f, -0.0417372f, 0.0578352f, -0.247762f, 0.0944328f, -0.124266f, 0.0108807f, -0.0155011f, -0.181163f, -0.00996468f, -0.0956419f, 0.276619f, -0.146005f, -0.0119018f, 0.180474f, 0.102499f, -0.0240083f, 0.222399f, 0.0989798f, -0.21843f, -0.124057f, 0.10886f, -0.28476f, 0.0502888f, -0.291573f, -0.292809f, 0.0363573f, 0.0401166f, -0.128054f, -0.335174f, 0.162935f, -0.0504166f, -0.127582f, -0.231874f, 0.298936f, -0.00519945f, 0.110669f, -0.163783f, -0.179246f, -0.189421f, -0.142993f, -0.330526f, -0.0942277f, -0.00489665f, 0.0302292f, 0.0556414f, 0.0445832f, -0.220689f, 0.0701908f, 0.191912f, 0.0207026f, -0.0436624f, -0.129314f, -0.332776f, -0.2648f, 0.0334234f, -0.0819544f, -0.096764f, 0.0963629f, 0.0871839f, -0.283408f, 0.110182f, -0.0382f, -0.180026f, 0.320648f, -0.116235f, -0.257022f, 0.0995379f, 0.10514f, -0.10119f, -0.109459f, -0.00978337f, -0.262142f, 0.159079f, -0.121985f, 0.0150136f, 0.152311f, 0.233244f, 0.0693481f, -0.17486f, -0.0635144f, -0.249735f, -0.132772f, 0.049406f, -0.314029f, -0.05708f, 0.0880518f, -0.330729f, -0.108932f, -0.0842772f, 0.316747f, -0.0533721f, 0.00237428f, -0.111616f, 0.131585f, -0.0672038f, 0.0249294f, -0.0152743f, 0.0363255f, 0.0075928f, -0.208594f, -0.171262f, 0.150542f, 0.277265f, -0.0457332f, -0.158515f, -0.0501158f, 0.020566f, 0.101776f, -0.0825345f, -0.0725311f, -0.0036331f, -0.0458273f, 0.12604f, 0.0715775f, 0.179612f, 0.0115544f, 0.0467228f, -0.146286f, 0.0763632f, 0.21382f, -0.114787f, -0.0494904f, 0.271016f, -0.163479f, -0.0369368f, 0.0313659f, 0.164453f, -0.098118f, 0.0629712f, 0.134634f, 0.121944f, 0.0724131f, 0.0168835f, -0.291766f, -0.181065f, 0.186997f, 0.328679f, -0.093099f, 0.0550262f, -0.145964f, -0.168124f, 0.145873f, -0.128731f, 0.256908f, -0.0731529f, -0.257661f, 0.305829f, -0.0520738f, -0.0888601f, -0.16553f, 0.337322f, 0.292515f, 0.205802f, -0.0761284f, 0.151571f, -0.0774584f, 0.22769f, -0.00147319f, 0.108793f, -0.0311728f, 0.146856f, 0.0150766f, 0.0700721f, -0.12773f, 0.0695853f, 0.143592f, -0.21829f, -0.0130557f, -0.0243339f, -0.162729f, -0.134808f, 0.0400512f, 0.0870063f, -0.150661f, 0.288907f, 0.10508f, -0.0464186f, 0.125249f, -0.031069f, -0.153402f, -0.0408981f, 0.160567f, 0.245113f, 0.184904f, -0.0220466f, -0.147156f, 0.247915f, 0.166816f, 0.0311705f, -0.0334605f, 0.152631f, 0.345362f, 0.0990924f, 0.045418f, 0.185614f, -0.0449364f, -0.00523485f, -0.152477f, -0.191966f, -0.0705954f, -0.0315344f, -0.058496f, -0.149351f, 0.199823f, -0.0692652f, -0.178017f, -0.15574f, 0.0184052f, 0.0782807f, -0.0287938f, -0.207637f, 0.2f, -0.134888f, -0.0446283f, -0.0348326f, 0.0063896f, 0.328054f, 0.0615669f, -0.147111f, 0.29377f, -0.122865f, 0.0202913f, -0.173802f, 0.0472505f, -0.145777f, -0.119356f, 0.176016f, 0.0952756f, -0.0898769f, -0.0897546f, -0.126589f, -0.206558f, -0.0190873f, -0.240646f, -0.0949544f, 0.181494f, 0.0983877f, 0.0982962f, -0.270944f, -0.106992f, -0.0202907f, -0.0951758f, 0.090427f, 0.0443104f, -0.0357237f, -0.0130069f, -0.187447f, 0.0678433f, 0.0646743f, 0.0174296f, 0.0037061f, -0.0370443f, -0.123825f, 0.0407506f, 0.197821f, 0.0930072f, -0.0564797f, -0.0425773f, -0.166428f, -0.273308f, 0.017912f, 0.00036726f, -0.314203f, -0.0162998f, -0.234988f, -0.021075f, -0.174096f, 0.0551141f, 0.141856f, -0.0758216f, 0.0274964f, 0.10066f, -0.1852f, -0.273282f, 0.233669f, 0.199229f, 0.123991f, -0.301321f, -0.012964f, 0.0369477f, -0.187817f, -0.289711f, -0.179f, 0.099963f, -0.259909f, 0.170175f, -0.0955166f, -0.0941226f, 0.108941f, 0.316355f, 0.0760015f, 0.116104f, -0.129587f, -0.0957158f, 0.00601968f, -0.0909411f, 0.269703f, 0.0901406f, -0.154373f, 0.238607f, -0.115829f, -0.0739352f, 0.0813216f, -0.236875f, -0.100908f, -0.182419f, -0.0559631f, 0.112059f, 0.30277f, -0.0891828f, 0.0757178f, -0.101601f, -0.117092f, -0.235906f, 0.229899f, -0.253862f, -0.150212f, -0.0316977f, 0.0508722f, 0.00307811f, -0.162358f, -0.105752f, 0.026202f, 0.164495f, -0.222604f, -0.106615f, -0.0503277f, 0.240115f, -0.0314892f, 0.0665301f, 0.0905679f, -0.106028f, -0.171085f, -0.00351665f, 0.272502f, 0.0612171f, -0.0160342f, -0.275013f, 0.192102f, 0.0530628f, 0.102079f, -0.0454209f, -0.20549f, 0.0767822f, -0.0536704f, 0.0057703f, -0.0852901f, 0.304753f, -0.0418562f, 0.111136f, -0.186794f, -0.00589394f, -0.142374f, -0.0149906f, -0.262947f, 0.123043f, 0.0835548f, -0.0576852f, 0.0165645f, 0.201707f, -0.12529f, -0.0198796f, -0.0742107f, 0.127535f, 0.00824321f, 0.186166f, -0.267439f, 0.0673438f, -0.0498542f, -0.0648639f, 0.0522747f, -0.0762097f, 0.172233f, 0.142363f, 0.0504f, 0.0366695f, 0.0808525f, -0.266487f, 0.0630168f, -0.0851599f, 0.162978f, 0.140088f, 0.0312699f, -0.00737415f, -0.059172f, -0.161195f, -0.244124f, 0.251417f, 0.275073f, -0.202949f, 0.085175f, 0.146793f, -0.0236762f, 0.027032f, 0.24653f, 0.280559f, -0.125865f, 0.224201f, 0.259557f, -0.180353f, -0.00271614f, 0.207557f, -0.0331325f, -0.20124f, -0.146681f, 0.19577f, 0.108427f, -0.235969f, -0.0241008f, -0.0615727f, 0.0735371f, 0.124102f, 0.0521068f, -0.237659f, 0.290434f, -0.0422587f, -0.108077f, 0.14734f, 0.19045f, 0.0700953f, 0.163671f, 0.118998f, 0.0851047f, -0.00356368f, -0.249985f, -0.106166f, -0.243439f, 0.0488689f, -0.0397767f, 0.256678f, -0.116258f, -0.144594f, -0.262234f, 0.0667148f, -0.316529f, -0.0831464f, 0.0664959f, 0.0726659f, 0.0130816f, -0.004901f, 0.226116f, -0.00958453f, -0.25667f, 0.224234f, 0.0120594f, -0.126548f, 0.125359f, -0.0806204f, -0.238231f, 0.0608974f, 0.0848152f, -0.0284436f, 0.318736f, -0.19101f, -0.000415949f, -0.0934992f, -0.00171602f, 0.0125225f, -0.148749f, -0.115482f, -0.034949f, -0.188935f, 0.108091f, 0.108179f, -0.0247408f, -0.138353f, -0.294833f, 0.00735959f, 0.0111732f, -0.224326f, -0.0943971f, 0.142666f, -0.397373f, 0.214064f, -0.153789f, 0.0941183f, -0.212208f, 0.11248f, -0.0582774f, -0.118026f, 0.086539f, 0.0156344f, -0.198873f, 0.0286045f, -0.032454f, -0.00721163f, 0.193436f, 0.0100131f, -0.0449946f, 0.126916f, -0.0920194f, 0.182435f, -0.0802704f, 0.0140144f, 0.0599228f, -0.123984f, -0.00878527f, -0.155137f, -0.0889998f, 0.0328852f, 0.160402f, 0.0220871f, -0.0473379f, 0.160738f, -0.0897082f, -0.0116717f, -0.00509235f, -0.10157f, -0.0646655f, -0.00828687f, 0.131437f, 0.0486446f, -0.118826f, 0.0493888f, -0.0984025f, -0.166588f, 0.132103f, 0.0558542f, 0.0472501f, 0.0593957f, -0.023733f, -0.0146408f, -0.0295838f, -0.140505f, 0.00772192f, 0.0755914f, 0.130707f, 0.129636f, -0.0334118f, 0.0347868f, 0.0374337f, -0.0177976f, 0.0617802f, 0.0719796f, -0.06847f, -0.0553926f, 0.193693f, 0.0476351f, -0.147799f, 0.118216f, 0.115207f, 0.0214864f, -0.0620063f, -0.12696f, 0.162062f, -0.0895978f, 0.116336f, 0.157354f, -0.0722302f, -0.0666227f, -0.0852805f, 0.00720422f, 0.0452051f, 0.12607f, -0.0273236f, 0.0432601f, 0.0722016f, -0.0379863f, 0.0879766f, -0.0247093f, 0.0374798f, -0.0391901f, 0.103326f, -0.0939727f, -0.102106f, -0.0342729f, 0.0038625f, 0.120407f, -0.00952014f, 0.104502f, -0.0695413f, 0.12584f, -0.0907476f, 0.0690716f, -0.0117389f, -0.200141f, 0.0318331f, 0.157997f, 0.00677819f, -0.125994f, 0.15176f, -0.110428f, 0.109692f, -0.0209703f, -0.0504981f, 0.0292831f, 0.0281178f, 0.0227955f, -0.127434f, -0.0770991f, 0.00716679f, -0.0744637f, -0.0288416f, 0.036695f, -0.0971556f, -0.0973574f, 0.10038f, -0.166715f, -0.11143f, 0.00940426f, 0.0237665f, -0.0983397f, -0.116942f, -0.16448f, 0.0372493f, -0.0668258f, -0.0559913f, 0.00154683f, 0.031178f, 0.0754935f, 0.119064f, 0.237495f, -0.0987523f, 0.0554234f, -0.182327f, 0.151162f, 0.154575f, -0.044285f, 0.0683272f, 0.0537679f, 0.0532166f, 0.0384456f, 0.139471f, -0.0183607f, -0.0699226f, -0.0873835f, -0.107253f, -0.0287427f, 0.0382421f, -0.120079f, 0.0233222f, 0.101727f, -0.0665972f, 0.0713518f, 0.13594f, 0.135722f, -0.0737575f, -0.0458695f, -0.00254994f, 0.197943f, -0.124533f, -0.0156723f, 0.0526709f, 0.107197f, 0.111152f, 0.0798285f, 0.100241f, -0.00326463f, -0.0326121f, 0.0262824f, -0.0599327f, 0.127636f, -0.0211118f, 0.0666916f, 0.105557f, 0.035483f, -0.0673026f, -0.0302433f, 0.0252138f, -0.039317f, -0.0577889f, -0.0379741f, -0.193124f, 0.080906f, 0.112767f, 0.0569799f, 0.107421f, -0.0793412f, 0.0755347f, 0.199932f, 0.167349f, 0.160141f, -0.110799f, -0.146073f, 0.202106f, -0.0748368f, -0.0535202f, 0.0549013f, 0.0862323f, -0.169481f, 0.0268687f, 0.0660665f, 0.121729f, -0.00549984f, -0.0552391f, -0.0220804f, 0.0144308f, 0.163315f, 0.0378994f, 0.057749f, 0.0721444f, -0.0740715f, 0.0836552f, 0.0724325f, -0.0961627f, -0.0129056f, -0.0337933f, -0.113101f, 0.12032f, -0.0910217f, -0.0698041f, 0.00198168f, -0.0158122f, 0.135657f, 0.052195f, -0.0938141f, 0.073718f, 0.123871f, -0.0694423f, -0.0728233f, 0.156121f, -0.0231143f, 0.0570324f, -0.106264f, -0.0969998f, 0.0710058f, 0.0183402f, 0.0681008f, -0.027544f, 0.153542f, -0.113182f, 0.0558473f, 0.0710334f, -0.105165f, -0.10062f, 0.0853003f, 0.0156609f, 0.14426f, -0.0112979f, -0.0245724f, 0.181998f, -0.125793f, 0.0255621f, 0.0624907f, 0.0335147f, 0.127376f, 0.0286062f, 0.114991f, -0.0779727f, -0.130755f, 0.128897f, -0.0992019f, 0.180384f, 0.0231763f, -0.149364f, -0.0855648f, 0.0366723f, 0.07462f, 0.0367907f, -0.10094f, -0.0766421f, 0.103261f, -0.163461f, 0.00121936f, -0.0116911f, 0.0441744f, -0.0715939f, -0.253296f, 0.16823f, -0.00878386f, 0.0694994f, -0.278872f, -0.0548036f, 0.126814f, 0.0753212f, 0.131462f, 0.0107077f, -0.268613f, -0.0869732f, 0.0819562f, -0.14885f, -0.157687f, 0.0626265f, -0.176682f, 0.224097f, -0.174439f, -0.160197f, -0.102197f, 0.0874584f, 0.0262251f, 0.0502318f, -0.0282218f, 0.0196564f, 0.0970138f, 0.0983215f, -0.0837038f, -0.0762568f, -0.082203f, 0.277229f, -0.093119f, -0.000858727f, 0.0609157f, -0.0643646f, 0.0397152f, 0.133586f, -0.223439f, -0.201927f, 0.129626f, -0.0490354f, 0.0437322f, -0.180574f, -0.0556974f, 0.0434696f, 0.165691f, -0.0615989f, 0.146561f, -0.37244f, -0.0538281f, -0.0188893f, 0.167969f, -0.0541702f, -0.167633f, 0.0675599f, -0.116911f, -0.0564359f, -0.150334f, -0.120529f, 0.0115722f, -0.163209f, -0.0111731f, -0.0677942f, -0.148895f, 0.0966752f, -0.003014f, -0.0285975f, 0.103049f, 0.168219f, -0.070195f, 0.197835f, -0.0814445f, 0.0571577f, -0.0267773f, -0.0859616f, -0.0814967f, -0.0406693f, -0.0220422f, 0.163876f, -0.150848f, -0.198513f, 0.0760626f, 0.0164436f, 0.0917726f, 0.0640892f, -0.19365f, 0.0302962f, -0.00917356f, 0.0743056f, 0.158142f, 0.132998f, -0.00369754f, 0.141021f, -0.0813235f, 0.162808f, -0.259185f, 0.0684506f, -0.0547928f, -0.0337246f, -0.114157f, -0.184438f, -0.0877764f, 0.0293686f, -0.0951995f, -0.118265f, -0.036506f, -0.121243f, -0.0903345f, -0.0422597f, 0.0352125f, -0.221457f, 0.109774f, 0.0346225f, 0.107245f, -0.0893723f, 0.086758f, -0.00419672f, 0.0428209f, -0.229757f, 0.132804f, 0.0540074f, -0.0105976f, -0.382948f, 0.030124f, -0.198936f, -0.254688f, 0.0263269f, 0.120786f, 0.153608f, 0.0922964f, 0.017702f, 0.121165f, -0.162639f, -0.131156f, -0.113634f, 0.0568473f, 0.123398f, -0.0223049f, 0.0784688f, -0.0267248f, 0.0462307f, 0.202554f, 0.00387159f, -0.247498f, 0.107978f, 0.106151f, 0.0905738f, -0.0719008f, -0.121684f, -0.106927f, -0.0274667f, -0.0553425f, 0.135271f, -0.141757f, -0.058397f, -0.122046f, 0.195657f, -0.139851f, 0.0144232f, -0.0709623f, 0.0165926f, 0.168196f, 0.10831f, 0.0797827f, 0.0755437f, 0.164857f, 0.00294681f, -0.0555089f, -0.180607f, 0.194051f, -0.251366f, 0.225872f, 0.132895f, -0.112711f, 0.0464558f, 0.121459f, 0.0125297f, -0.0580123f, 0.116541f, -0.235849f, -0.309379f, 0.163317f, -0.202003f, 0.166583f, -0.0925186f, 0.0757345f, 0.0371748f, -0.246982f, -0.0686119f, -0.0283425f, 0.012781f, -0.145324f, -0.0671793f, -0.172384f, -0.278993f, 0.0989099f, -0.00421688f, 0.0396696f, -0.177773f, -0.117787f, -0.171304f, 0.245109f, -0.103393f, -0.0444871f, -0.0185954f, 0.0757429f, -0.0970937f, -0.179324f, -0.00835153f, 0.241045f, -0.22198f, -0.159763f, 0.0617822f, -0.00238758f, 0.062403f, 0.0746701f, -0.0333581f, -0.0598979f, -0.180531f, -0.0268647f, -0.00123093f, -0.0278263f, -0.0303491f, 0.172904f, 0.0147442f, 0.0823202f, -0.18434f, 0.119975f, 0.0115081f, -0.153383f, -0.12532f, -0.0709749f, 0.143627f, 0.221009f, 0.0410148f, 0.258628f, -0.143133f, -0.0649508f, 0.183188f, -0.133563f, 0.0365344f, -0.0941104f, 0.0366865f, 0.212933f, 0.0111343f, -0.000988654f, -0.176333f, -0.149069f, -0.0130769f, 0.0126834f, 0.0741723f, 0.160242f, -0.0744563f, -0.220736f, -0.244937f, -0.0141681f, -0.0995547f, 0.00979737f, -0.162219f, -0.0581967f, 0.000711502f, -0.132274f, -0.0349882f, 0.0747661f, 0.0200841f, 0.116302f, -0.148254f, 0.123274f, 0.221371f, 0.310472f, 0.149801f, -0.0828218f, -0.0451734f, -0.0493595f, 0.125644f, -0.151407f, 0.0301213f, 0.0214369f, 0.0692506f, 0.084397f, 0.00919209f, -0.0198223f, -0.0525662f, 0.042697f, -0.0965258f, -0.193544f, 0.0341785f, 0.00398513f, -0.0241769f, -0.170728f, -0.16817f, -0.000664445f, -0.0496485f, -0.0893791f, -0.0417468f, 0.0821317f, -0.048225f, -0.130129f, -0.102411f, 0.0534914f, 0.0799864f, 0.0654265f, -0.0685161f, 0.0665297f, 0.0335713f, -0.0688605f, -0.096705f, 0.00249287f, -0.0553037f, 0.112537f, 0.0175383f, 0.0946231f, 0.070815f, -0.127323f, 0.00211677f, 0.185429f, -0.0772651f, 0.121009f, -0.0634153f, 0.124782f, 0.0194156f, 0.13762f, -0.0193743f, -0.136949f, -0.0558633f, -0.228574f, -0.0205103f, -0.0835394f, -0.119001f, -0.130533f, 0.0592648f, 0.171964f, 0.109814f, 0.186595f, 0.0130304f, 0.0255995f, -0.178233f, -0.0737985f, -0.0252168f, -0.104152f, -0.0889973f, 0.022557f, 0.0534165f, 0.01106f, 0.0354434f, -0.0714481f, -0.104958f, -0.0206228f, 0.129988f, -0.108669f, -0.127193f, -0.188503f, 0.0734394f, -0.103138f, -0.0488481f, -0.101977f, 0.11343f, -0.0194992f, 0.0462299f, -0.0546676f, -0.097854f, 0.126084f, 0.0806137f, -0.0159704f, 0.13461f, 0.0460401f, -0.157325f, 0.0616874f, 0.0779662f, -0.00953944f, -0.0423624f, 0.139539f, -0.0188161f, 0.106868f, -0.0571034f, -0.000671377f, -0.0586774f, -0.0711617f, 0.298794f, -0.0945564f, 0.222834f, -0.036357f, 0.021134f, 0.148452f, -0.0884214f, 0.121823f, -0.0993162f, 0.052127f, 0.0338193f, -0.0299042f, 0.0982537f, 0.0548513f, -0.00485731f, -0.058565f, -0.152618f, -0.162895f, -0.00292857f, -0.0710966f, 0.198546f, -0.0775093f, 0.0405454f, -0.120668f, -0.139756f, -0.142925f, 0.136674f, -0.165358f, -0.057681f, -0.0544216f, -0.107951f, -0.20785f, 0.0281379f, 0.0164581f, 0.110454f, 0.304771f, 0.0310385f, -0.128856f, 0.0183937f, 0.101689f, 0.0205525f, 0.0684014f, 0.097194f, 0.0332042f, 0.136304f, -0.06899f, -0.0436868f, -0.17145f, 0.214642f, -0.0696363f, 0.242978f, 0.0985849f, 1.29515e-06f, -0.136397f, -0.0292219f, 0.0856835f, -0.000964665f, -0.0420432f, -0.00860646f, -0.165964f, -0.0168843f, -0.0993828f, 0.0429903f, 0.123991f, 0.128231f, -0.061572f, 0.148198f, 0.109452f, -0.147109f, 0.103153f, 0.0789029f, -0.0692638f, -0.0915384f, 0.1974f, 0.00889099f, 0.0362707f, -0.106283f, -0.00785085f, -0.0377926f, -0.124757f, -0.0389457f, 0.0777976f, -0.0303933f, 0.0254308f, 0.0421959f, -0.0973465f, -0.0950907f, 0.0945703f, 0.097309f, 0.051516f, -0.0238567f, 0.132105f, -0.0683698f, 0.158371f, -0.0107913f, -0.0760963f, 0.0396591f, 0.206966f, 0.11895f, 0.0526896f, -0.106696f, -0.119326f, -0.175729f, 0.134155f, -0.206346f, -0.0428929f, -0.117112f, -0.0226435f, 0.13138f, 0.0623344f, -0.0211459f, -0.112555f, -0.126257f, -0.163801f, 0.102787f, -0.00751388f, 0.18539f, -0.0435023f, 0.0366819f, 0.0940148f, 0.173341f, 0.0463879f, -0.181323f, -0.0748024f, -0.0658833f, -0.14503f, -0.02386f, -0.0357935f, -0.0703284f, -0.0734402f, 0.0594165f, -0.0285057f, -0.172356f, -0.150318f, -0.0394827f, 0.0394672f, -0.0216518f, -0.185358f, 0.0356599f, 0.0410222f, 0.0663323f, 0.237023f, -0.0824599f, -0.0711712f, -0.133727f, 0.0228519f, -0.223479f, 0.0603447f, -0.230887f, 0.00250584f, 0.119923f, -0.0350961f, -0.221865f, 0.186652f, 0.0822679f, 0.145672f, -0.0414959f, 0.170951f, -0.184094f, 0.101173f, -0.1971f, -0.215243f, 0.095813f, -0.0988557f, 0.0327536f, -0.062946f, 0.0040046f, -0.187959f, 0.00580231f, -0.156016f, 0.112716f, -0.159505f, 0.011852f, -0.231159f, -0.207455f, 0.00898247f, 0.164905f, -0.0232052f, 0.159289f, -0.201493f, 0.12335f, -0.0163036f, 0.0198753f, -0.0564129f, -0.107321f, 0.03772f, -0.00414437f, -0.032945f, -0.105219f, 0.0185348f, 0.121334f, 0.020354f, 0.0451195f, 0.198276f, -0.18865f, -0.154767f, 0.161048f, -0.0820691f, -0.200435f, 0.101201f, 0.151687f, -0.212602f, -0.0319209f, -0.0663899f, -0.0550161f, -0.146798f, -0.100965f, -0.128417f, -0.0629303f, 0.0612907f, -0.0749233f, -0.0498237f, 0.147697f, -0.071321f, 0.100552f, 0.0842711f, -0.180766f, 0.114725f, 0.0389921f, 0.0417633f, -0.171343f, 0.0495039f, 0.0905324f, 0.00759678f, 0.223468f, -0.136915f, 0.0725203f, -0.130785f, -0.0221944f, 0.254851f, 0.163765f, 0.0859407f, 0.0973864f, 0.0811843f, -0.0676126f, -0.020402f, -0.165957f, 0.119951f, -0.232246f, 0.00443262f, -0.0126707f, 0.117183f, -0.0759463f, 0.016229f, -0.08153f, 0.1014f, -0.0756662f, -0.0733592f, -0.0744986f, 0.0140072f, 0.0546881f, 0.215888f, 0.156957f, -0.0863674f, 0.0378443f, -0.0420321f, -0.0300746f, -0.131267f, -0.0631958f, -0.0510273f, -0.140965f, 0.0671226f, -0.0977379f, -0.0271214f, 0.194041f, 0.203478f, 0.0738121f, -0.111006f, 0.0576893f, 0.259649f, 0.0163804f, 0.199629f, -0.0340188f, 0.0236184f, 0.0976294f, 0.0260118f, -0.0110957f, 0.174963f, -0.175569f, -0.101361f, -0.108243f, -0.0867975f, 0.0897087f, 0.172582f, 0.243179f, 0.0401738f, 0.0499015f, -0.165856f, -0.0837651f, -0.0409416f, 0.0695557f, 0.222872f, -0.014283f, 0.107938f, -0.0163601f, -0.0724082f, -0.0562819f, -0.0363717f, -0.145413f, 0.0123037f, 0.104331f, 0.0798749f, -0.0769588f, 0.0279727f, 0.0489418f, -0.0546312f, 0.0883794f, 0.0758778f, 0.0827222f, 0.0168206f, 0.173488f, -0.0603134f, 0.110042f, 0.0756098f, -0.0633329f, 0.0359708f, -0.206889f, 0.178235f, 0.0583109f, -0.030725f, 0.14824f, 0.109287f, 0.0524376f, 0.0682117f, 0.116097f, -0.0723839f, 0.0642357f, 0.0738266f, -0.0623691f, 0.0158796f, 0.0252906f, 0.117761f, -0.153846f, -0.0815873f, -0.0133461f, -0.166795f, 0.0954005f, -0.13227f, 0.039428f, -0.0635777f, -0.160318f, -0.0519216f, -0.0926714f, -0.047426f, 0.0569543f, 0.079995f, 0.0155215f, 0.0289556f, -0.0495337f, -0.170652f, -0.153957f, 0.0612162f, -0.0177891f, 0.134421f, -0.0332053f, -0.0251077f, -0.0669212f, 0.154883f, 0.202054f, 0.10216f, -0.165455f, -0.0334184f, -0.0415366f, 0.141459f, -0.0989114f, -0.0236062f, -0.0763425f, -0.0262037f, -0.0957994f, 0.207418f, -0.223129f, 0.130683f, -0.0543598f, 0.0664861f, 0.199114f, -0.117146f, -0.300708f, 0.145577f, 0.0396002f, -0.102845f, -0.124316f, -0.148811f, -0.24728f, 0.258232f, -0.28766f, -0.259089f, 0.0153742f, -0.02758f, 0.30834f, 0.240392f, -0.177708f, 0.219107f, -0.0153193f, -0.36632f, 0.101805f, 0.0207983f, 0.0588139f, 0.368027f, -0.171942f, 0.110897f, 0.277662f, 0.0510171f, -0.0258745f, 0.127529f, -0.235033f, -0.291665f, -0.227159f, -0.0670074f, -0.101392f, 0.0233382f, 0.103167f, -0.414466f, 0.0377896f, -0.0922659f, -0.00317904f, -0.0261824f, 0.179683f, -0.00104646f, -0.223136f, 0.0635409f, 0.327642f, -0.180864f, 0.146257f, 0.334082f, -0.111352f, 0.0175403f, 0.189065f, -0.170858f, -0.106073f, 0.0811227f, -0.14124f, 0.150403f, -0.0273105f, 0.289692f, 0.199049f, 0.0754067f, 0.0498516f, 0.103529f, 0.137719f, -0.447623f, 0.214478f, -0.0526649f, 0.150055f, 0.277503f, -0.398204f, -0.0914484f, -0.159695f, -0.224617f, 0.0978518f, 0.000558385f, -0.0862572f, 0.12705f, 0.153885f, -0.359659f, -0.174925f, 0.0718214f, -0.0529972f, -0.0945412f, -0.0534835f, 0.146968f, -0.151648f, 0.185498f, -0.0503322f, 0.0740061f, 0.179865f, -0.0431157f, -0.11898f, -0.0783128f, 0.0103743f, 0.0228035f, -0.0123999f, -0.188036f, 0.45506f, 0.0447099f, 0.0940932f, 0.2042f, 0.069514f, -0.300807f, -0.04122f, 0.0978391f, 0.264619f, 0.170684f, 0.147166f, 0.134596f, -0.0416939f, -0.290444f, 0.184482f, 0.242753f, -0.105611f, 0.139361f, -0.0889815f, -0.0583323f, -0.243742f, -0.0636708f, -0.136173f, 0.0520372f, 0.168659f, -0.144971f, -0.0895088f, -0.325908f, 0.110514f, -0.0391025f, -0.147565f, -0.0914912f, -0.211048f, 0.12519f, 0.222668f, -0.111743f, 0.0730686f, 0.242165f, 0.0972375f, 0.107689f, 0.0196591f, 0.0922527f, 0.222202f, -0.171447f, 0.336006f, -0.0976639f, -0.0861184f, 0.268472f, 0.0288694f, 0.168488f, 0.27627f, 0.107607f, 0.0393026f, 0.00421891f, -0.0736754f, 0.0272822f, -0.393804f, 0.184009f, 0.327089f, -0.0568429f, 0.257623f, 0.126287f, 0.0584802f, -0.114684f, -0.0749369f, -0.180536f, 0.285591f, -0.059039f, -0.051661f, -0.036278f, -0.0286967f, -0.183601f, -0.048595f, -0.111336f, 0.101188f, 0.100744f, 0.227481f, 0.249241f, -0.0251296f, -0.0803556f, -0.143991f, 0.102989f, -0.373076f, 0.0571147f, -0.238268f, -0.0271435f, -0.146793f, -0.0535983f, -0.262339f, 0.203577f, 0.11151f, -0.174943f, -0.0154929f, -0.168398f, -0.0918396f, 0.168397f, 0.150775f, 0.0402413f, -0.0340173f, -0.0917608f, 0.0266509f, 0.252549f, 0.100402f, 0.241537f, 0.00590557f, 0.0150694f, 0.147446f, -0.0118215f, 0.218826f, 0.14315f, 0.108389f, 0.019436f, 0.22308f, -0.276148f, -0.0399072f, 0.0672975f, 0.141234f, 0.0128107f, 0.169776f, -0.258012f, -0.102202f, -0.0881549f, -0.317435f, 0.290829f, 0.14131f, 0.0717842f, -0.122241f, 0.0388965f, 0.263911f, -0.0564869f, -0.382708f, -0.0358098f, 0.0613213f, -0.065638f, -0.0411823f, -0.0494225f, -0.0307736f, 0.228777f, -0.274318f, -0.423909f, 0.0367168f, 0.274757f, 0.0946096f, -0.190449f, -0.101845f, -0.146845f, 0.214909f, -0.283843f, 0.222173f, -0.182499f, -0.0514544f, 0.0961222f, -0.162476f, -0.0698494f, -0.170632f, -0.0373481f, 0.0365044f, -0.0449039f, 0.270126f, -0.172142f, 0.0305271f, 0.21943f, -0.101379f, -0.0609425f, -0.000445683f, 0.0496661f, -0.0533252f, -0.12223f, -0.170734f, 0.056755f, 0.02301f, -0.139954f, -0.0120781f, -0.0705836f, -0.0377313f, 0.253733f, -0.159933f, 0.0651284f, -0.145557f, 0.115275f, 0.221421f, -0.0516772f, 0.0224527f, 0.0613906f, -0.0596808f, -0.0229672f, 0.081791f, 0.173886f, -0.0691669f, 0.060514f, 0.0570338f, -0.0257843f, -0.0640251f, -0.0914835f, 0.202189f, 0.0505331f, -0.0190961f, 0.136618f, -0.0628118f, 0.0706322f, 0.0248122f, 0.130804f, -0.00198595f, 0.0327018f, -0.00297155f, -0.0765985f, 0.0190029f, 0.00380107f, -0.0262757f, 0.0502649f, 0.0356136f, -0.25938f, 0.0614806f, 0.236646f, 0.113061f, 0.254375f, 0.214064f, -0.053845f, -0.0717904f, 0.00508645f, -0.1089f, -0.0868992f, -0.0388682f, -0.0137388f, -0.0563811f, -0.168409f, 0.20344f, 0.0343258f, 0.0415471f, -0.0739319f, 0.0106559f, 0.0632638f, 0.299715f, 0.0548276f, 0.0652699f, -0.202887f, -0.289568f, 0.0823994f, -0.108129f, -0.234759f, -0.0274097f, 0.0898141f, 0.131f, 0.102869f, -0.154445f, -0.126855f, -0.066723f, -0.124851f, 0.165615f, 0.0131245f, 0.0412477f, 0.165368f, 0.202582f, -0.0580204f, -0.0816661f, 0.121195f, 0.0578444f, 0.198257f, -0.0143301f, 0.394514f, 0.00115039f, -0.0690282f, 0.0401813f, 0.0154484f, 0.0151f, 0.147546f, -0.205464f, 0.130149f, -0.0164012f, 0.212066f, 0.124293f, -0.0766603f, 0.143191f, 0.0838439f, -0.104857f, -0.0658123f, 0.146924f, -0.138198f, 0.227872f, -0.10616f, -0.207656f, -0.0375701f, -0.147359f, 0.0331051f, 0.102145f, 0.129161f, 0.0173784f, -0.228047f, 0.15648f, -0.0459046f, -0.093053f, -0.227824f, -0.0305371f, -0.00312498f, -0.0426042f, 0.141335f, -0.174084f, -0.0789603f, 0.177668f, -0.0369327f, -0.050403f, -0.00768587f, -0.00587414f, 0.11672f, -0.0825686f, -0.132142f, -0.127108f, -0.0578091f, 0.215006f, 0.0929412f, -0.0386159f, -0.0350713f, -0.0212248f, 0.0536168f, -0.216976f, -0.061465f, 0.170292f, 0.152349f, -0.004848f, -0.0390142f, 0.198853f, 0.144955f, -0.0371547f, 0.106893f, -0.0534008f, -0.0952083f, 0.139942f, -0.0732407f, -0.232636f, -0.0532104f, -0.0990968f, 0.0167646f, 0.126952f, 0.29162f, -0.120077f, -0.0719848f, 0.141668f, -0.00464127f, -0.144863f, 0.153879f, -0.213418f, 0.121063f, -0.27621f, 0.0310286f, 0.146789f, -0.0542977f, -0.126808f, 0.0140109f, -0.0543224f, 0.166069f, -0.193337f, -0.0691862f, 0.0716929f, 0.0206461f, -0.135723f, 0.135829f, 0.0880871f, 0.0431917f, -0.108745f, 0.096061f, 0.260285f, -0.00824679f, 0.205946f, 0.11371f, 0.0609021f, -0.134439f, 0.0373617f, 0.259651f, -0.0922257f, -0.12333f, 0.133803f, 0.136699f, -0.268416f, -0.130718f, 0.182122f, -0.0448664f, 0.105742f, -0.129441f, 0.0566363f, 0.201081f, 0.0309332f, -0.0586704f, -0.203536f, -0.0840241f, -0.18797f, -0.0921008f, -0.0661422f, 0.287327f, 0.175143f, -0.130495f, 0.00542182f, 0.0572454f, 0.245931f, 0.1207f, 0.036333f, -0.00436324f, -0.0592283f, 0.0135572f, 0.0708152f, 0.0395865f, -0.00826721f, 0.127702f, 0.224632f, -0.127582f, 0.205419f, 0.101815f, -0.0161268f, 0.0924962f, 0.149092f, 0.105013f, 0.244013f, 0.160137f, 0.258513f, -0.0301342f, -0.0182179f, 0.136467f, 0.244942f, 0.143554f, 0.0977503f, 0.151133f, -0.16069f, -0.030291f, 0.0972091f, -0.126214f, -0.283966f, 0.0421169f, -0.128341f, -0.235182f, 0.0794641f, -0.0967804f, 0.27274f, 0.0606656f, -0.00604771f, 0.109126f, -0.0146218f, -0.0592328f, 0.136309f, 0.0241781f, -0.108484f, 0.328793f, 0.0746785f, -0.0786625f, -0.0851505f, 0.125914f, -0.0939877f, -0.112004f, -0.0528294f, -0.159068f, -0.127888f, -0.0591374f, 0.198558f, -0.0166408f, 0.0847654f, 0.209818f, 0.202966f, -0.0891079f, -0.12512f, -0.084668f, -0.281461f, -0.169261f, 0.123199f, 0.0156888f, -0.0294796f, -0.118093f, -0.0683947f, -0.0119551f, 0.267498f, -0.14338f, -0.103903f, -0.0794759f, 0.120647f, -0.117426f, 0.221312f, -0.0735602f, -0.0698559f, 0.177823f, -0.00592444f, 0.000963531f, 0.27091f, 0.209967f, -0.00313126f, -0.0144503f, -0.192202f, 0.124365f, -0.150935f, -0.0549984f, 0.152404f, -0.0652902f, -0.0674997f, -0.0373597f, 0.0680918f, -0.162423f, 0.0990351f, 0.110585f, 0.170481f, 0.17646f, -0.0107067f, -0.0684976f, -0.114375f, 0.139582f, 0.0349795f, -0.213087f, 0.0348465f, -0.136298f, 0.0200377f, 0.137342f, -0.0135238f, 0.289597f, 0.146747f, -0.016773f, -0.00730558f, 0.0349334f, 0.128402f, -0.119666f, 0.0799973f, -0.0113706f, 0.0440982f, 0.00253234f, 0.0928279f, -0.13574f, 0.162452f, -0.032404f, -0.0350275f, 0.133242f, 0.153014f, -0.00857024f, -0.0284409f, 0.0894496f, 0.0785885f, -0.113291f, -0.0531622f, -0.132189f, 0.101259f, -0.172313f, -0.115304f, 0.0143916f, 0.177635f, -0.0819839f, 0.116591f, 0.0843851f, 0.0536516f, -0.0763319f, 0.0762907f, -0.146831f, 0.0322935f, 0.0194606f, -0.16801f, 0.0975753f, 0.0525794f, -0.218139f, -0.0571346f, 0.0522468f, 0.226832f, 0.0687355f, 0.262552f, -0.153407f, -0.0889999f, -0.168881f, 0.145814f, -0.088728f, -0.0486185f, 0.237842f, -0.0578457f, 0.100588f, -0.010277f, 0.120455f, -0.0232915f, -0.0789897f, -0.271248f, 0.0979768f, 0.300181f, 0.030415f, -0.109581f, -0.179576f, 0.179889f, 0.0260493f, -0.108f, -0.178969f, 0.0839553f, -0.149259f, 0.221997f, 0.176105f, 0.0336194f, -0.0836367f, -0.109106f, -0.127141f, 0.0950766f, 0.189368f, -0.121075f, 0.193029f, -0.0665917f, -0.104815f, -0.0306046f, 0.0139677f, -0.12245f, 0.117225f, 0.116606f, -0.150882f, -0.129614f, 0.000604104f, 0.100537f, 0.241373f, 0.0769885f, 0.200708f, -0.026704f, -0.0759981f, 0.0255852f, -0.142814f, 0.187843f, -0.0455644f, -0.200701f, 0.043803f, 0.232249f, -0.0880579f, 0.0359483f, -0.00881006f, 0.0648348f, -0.127187f, 0.16079f, 0.10879f, 0.0490558f, -0.13477f, 0.0329561f, 0.105529f, 0.140878f, -0.13795f, 0.114665f, 0.170361f, -0.015373f, 0.0398577f, -0.034846f, -0.12855f, -0.0765393f, -0.0515112f, 0.248156f, 0.132462f, 0.229099f, 0.128716f, -0.28674f, -0.0444373f, -0.250477f, -0.0505385f, -0.169824f, -0.156593f, -0.0563401f, -0.0647702f, 0.0343177f, -0.0410764f, 0.0263082f, 0.0693335f, 0.235205f, 0.0600174f, -0.00241391f, -0.0670675f, 0.0344171f, -0.0210932f, -0.00742972f, -0.0592088f, -0.179988f, 0.144062f, -0.0556466f, 0.0921254f, 0.0407723f, 0.0562478f, 0.0134263f, -0.297996f, 0.206041f, -0.0597878f, 0.0378544f, -0.179333f, -0.00157386f, -0.212168f, 0.0831932f, 0.289173f, 0.0326898f, 0.0861446f, 0.0938657f, -0.0242501f, 0.0115797f, -0.10113f, 0.0193416f, -0.0732034f, 0.150796f, 0.188276f, 0.189404f, -0.0171117f, 0.0595021f, -0.0561801f, 0.0290197f, 0.0117831f, 0.0724505f, -0.0865305f, 0.195517f, -0.0208695f, 0.025767f, 0.0311055f, -0.21931f, 0.18567f, -0.262406f, -0.126925f, 0.0958549f, 0.159464f, -0.113144f, 0.0585239f, 0.0696558f, 0.0213346f, -0.0657264f, -0.0327102f, 0.132561f, -0.0467408f, -0.119246f, 0.0947814f, -0.0215139f, 0.043146f, -0.0306352f, 0.185035f, 0.0732637f, 0.0171688f, -0.00300553f, -0.0180006f, 0.0620914f, -0.152211f, 0.0259669f, -0.00637329f, 0.0685445f, -0.0765604f, -0.0856104f, 0.0188776f, 0.212042f, 0.130427f, 0.150683f, 0.156847f, -0.114676f, -0.00442896f, -0.0798291f, -0.111392f, -0.0459857f, -0.155106f, 0.211869f, -0.259266f, -0.0767739f, 0.0290604f, -0.036858f, -0.0581672f, -0.0361144f, -0.103827f, -0.0261326f, -0.0157023f, -0.0670555f, -0.155712f, 0.0643003f, 0.0917852f, -0.0126927f, 0.0639277f, 0.0432549f, -0.23446f, -0.029645f, 0.049276f, 0.25147f, 0.0315206f, 0.0290317f, -0.00302507f, 0.0634197f, -0.0528297f, 0.155262f, -0.053755f, -0.181373f, -0.239841f, -0.0659526f, -0.263083f, 0.0348236f, 0.102477f, -0.0398355f, 0.0600433f, -0.169223f, 0.100942f, 0.0968063f, -0.0626259f, 0.11648f, 0.113026f, 0.0699584f, 0.00743595f, -0.0419898f, 0.0756481f, 0.032302f, 0.142032f, -0.196446f, -0.1183f, 0.0868975f, -0.0037183f, -0.10565f, 0.0434526f, 0.00872819f, -0.0675603f, -0.000562043f, 0.103725f, 0.177569f, 0.171193f, 0.0580865f, -0.214532f, 0.162115f, 0.09294f, -0.101806f, 0.204819f, 0.0464149f, 0.0361345f, 0.102683f, 0.1489f, 0.177738f, 0.110363f, -0.0204217f, 0.0429287f, 0.00257986f, 0.0355409f, 0.0114643f, 0.059855f, 0.0830032f, -0.105061f, 0.026127f, 0.226905f, -0.12333f, -0.148054f, -0.173029f, -0.142291f, -0.00375766f, -0.0960563f, 0.0737201f, -0.0166458f, 0.0926879f, -0.0734108f, 0.157615f, -0.0295222f, 0.104931f, -0.17541f, -0.165566f, 0.0439596f, 0.0816657f, -0.0261724f, 0.247793f, 0.122435f, -0.0680912f, 0.202487f, 0.0692143f, -0.0101457f, -0.0146823f, 0.159588f, 0.151701f, 0.0957535f, 0.0107555f, 0.120833f, -0.0112073f, 0.135186f, -0.0953023f, 0.183594f, 0.018215f, -0.0802296f, 0.160973f, -0.0769069f, 0.178744f, -0.0991273f, -0.106755f, 0.0889294f, -0.115717f, -0.0762156f, 0.192752f, -0.0502432f, 0.0305052f, -0.106759f, 0.0364142f, -0.0113053f, 0.045943f, 0.101429f, -0.0813765f, -0.148497f, 0.0827331f, 0.163706f, 0.0150188f, 0.152234f, 0.0724338f, -0.185793f, 0.13631f, 0.0598764f, 0.177674f, 0.133048f, 0.0297503f, 0.0553373f, 0.093129f, 0.0703452f, 0.0957117f, -0.0421746f, 0.0380968f, 0.033918f, 0.117691f, 0.0760592f, -0.0806786f, -0.0559969f, 0.00790404f, 0.0153081f, -0.176798f, 0.0921225f, 0.0989794f, -0.209465f, 0.152841f, -0.0121981f, -0.153438f, 0.242052f, -0.120119f, -0.130919f, 0.0976042f, 0.0187092f, -0.225126f, 0.00766115f, -0.00368805f, -0.0447365f, 0.0086066f, -0.0579511f, -0.105808f, -0.151374f, 0.0752334f, 0.146198f, -0.0804077f, 0.00153445f, 0.0753909f, -0.120038f, 0.320011f, 0.13666f, 0.150146f, 0.212491f, -0.0748368f, -0.128698f, 0.0766222f, -0.23221f, -0.0229131f, -0.0357307f, -0.169439f, -0.0864761f, -0.260499f, -0.230602f, 0.0734997f, 0.0784084f, -0.121068f, -0.0806598f, -0.0451103f, 0.156228f, 0.0449953f, -0.00608398f, -0.00594995f, -0.172856f, 0.00473136f, 0.100482f, -0.125056f, 0.231396f, -0.17163f, 0.137071f, -0.311105f, -0.125126f, -0.281276f, -0.131028f, 0.0630859f, 0.0251373f, 0.154667f, -0.32185f, 0.107799f, 0.0824803f, -0.164346f, -0.109496f, -0.143467f, 0.00780757f, -0.258052f, -0.20815f, 0.00264404f, -0.137192f, -0.0886838f, -0.0320778f, 0.314534f, -0.0704642f, 0.291362f, 0.0832932f, -0.160199f, 0.0602104f, -0.0503187f, -0.0633714f, 0.0348867f, -0.166203f, -0.195056f, 0.292495f, 0.192897f, -0.0112798f, -0.161439f, 0.12026f, 0.188476f, 0.0959179f, -0.238492f, 0.232284f, -0.297033f, -0.25781f, 0.186824f, -0.344018f, 0.0626098f, 0.173639f, 0.0601098f, -0.0842936f, -0.0731456f, 0.112475f, 0.0182847f, -0.0447003f, -0.000679876f, -0.0659487f, 0.191779f, 0.162847f, -4.60913e-06f, 0.123057f, -0.15824f, -0.115623f, -0.00333204f, 0.160063f, 0.185256f, -0.0383868f, 0.124026f, 0.0737295f, -0.214072f, -0.276082f, -0.132062f, 0.135893f, -0.0296287f, 0.106028f, -0.246154f, -0.116249f, 0.0490946f, -0.0311292f, -0.105106f, 0.13578f, 0.000815511f, 0.167676f, -0.271557f, 0.106631f, -0.0413765f, -0.0516803f, 0.121158f, -0.0603595f, 0.152133f, -0.116556f, -0.0793084f, -0.168858f, -0.105281f, 0.223043f, 0.287008f, -0.00936506f, -0.159076f, -0.221028f, 0.224074f, 0.0193795f, -0.187605f, 0.0215403f, -0.060181f, 0.331117f, 0.132273f, -0.219699f, -0.0765311f, 0.0875702f, -0.0768327f, -0.0598066f, -0.105185f, 0.135572f, 0.0658983f, 0.133326f, 0.0205726f, -0.214326f, -0.0366907f, -0.109416f, 0.134132f, 0.135634f, 0.115883f, -0.0407979f, -0.04581f, -0.0912428f, -0.208722f, -0.0962829f, -0.092488f, 0.0975851f, 0.0109449f, 0.184964f, -0.0424315f, 0.309694f, -0.0876404f, -0.00469585f, -0.0224892f, -0.136919f, -0.0786503f, -0.142208f, -0.0247739f, -0.0770689f, 0.194845f, -0.11118f, -0.0847728f, -0.0162248f, -0.00951472f, 0.113901f, -0.0983417f, -0.121725f, -0.0657096f, -0.142069f, 0.167781f, -0.092218f, 0.139956f, 0.193204f, -0.0803999f, 0.0583061f, 0.159891f, 0.233549f, 0.0598773f, -0.0197461f, 0.118801f, 0.250934f, 0.0850359f, -0.203488f, -0.0952956f, 0.196515f, -0.125379f, -0.257193f, 0.208794f, 0.277191f, 0.184848f, 0.0733847f, -0.0145907f, 0.168303f, 0.137205f, -0.23661f, -0.194457f, 0.112023f, -0.124167f, 0.0325377f, 0.163122f, 0.394265f, 0.0755139f, 0.10097f, -0.0889347f, 0.24515f, -0.094984f, 0.170284f, 0.128133f, -0.237762f, -0.0108444f, 0.132646f, 0.152966f, 0.121121f, 0.0451542f, 0.277589f, -0.0184468f, 0.125178f, 0.0568556f, -0.0319542f, -0.0781749f, 0.308063f, -0.0905614f, -0.0196911f, 0.404839f, -0.0569709f, -0.195547f, 0.0495099f, -0.15284f, 0.094929f, -0.0592695f, 0.0385261f, 0.243958f, -0.122059f, -0.154904f, 0.222801f, 0.100247f, -0.234553f, -0.114984f, 0.125111f, -0.0861828f, -0.125405f, -0.0630254f, -0.177991f, 0.184106f, -0.219213f, -0.0137407f, 0.0657826f, 0.286679f, -0.0268167f, 0.0368224f, -0.0174998f, -0.0259086f, -0.0460112f, -0.113611f, -0.0136212f, 0.0959133f, -0.0859731f, -0.195407f, -0.0600149f, -0.0295681f, -0.0847344f, -0.191409f, 0.018847f, -0.118918f, -0.00509565f, -0.180563f, -0.0268187f, 0.0317913f, -0.00638091f, 0.0860037f, 0.220632f, -0.0695852f, -0.215893f, -0.201897f, -0.0164763f, -0.05569f, -0.0516056f, 0.0265692f, 0.144961f, -0.075534f, -0.0939836f, 0.0102425f, -0.1109f, 0.0150341f, -0.256502f, -0.107504f, -0.0287624f, -0.102901f, 0.332689f, 0.0326562f, -0.127866f, 0.11007f, -0.10045f, -0.0289677f, -0.0100875f, 0.0884232f, 0.00292687f, 0.0455741f, -0.146555f, -0.17409f, 0.112981f, 0.0976044f, -0.200477f, -0.0222832f, 0.0866365f, -0.0452986f, 0.0144353f, 0.203189f, -0.154492f, -0.0577846f, 0.13686f, -0.0768935f, 0.0474048f, -0.14986f, 0.0035781f, -0.125506f, 0.103477f, 0.0164823f, 0.0989073f, -0.10907f, 0.153527f, -0.0070209f, 0.0489352f, -0.0633469f, -0.115543f, 0.027711f, 0.0194553f, 0.0539842f, -0.0118125f, -0.143452f, 0.022539f, 0.00892791f, -0.116659f, -0.0210579f, -0.195555f, -0.0554469f, -0.00292887f, 0.175246f, -0.0448935f, -0.142985f, 0.0245415f, -0.183124f, -0.014348f, 0.139729f, -0.071585f, -0.0460828f, 0.0988005f, 0.110251f, 0.0601957f, -0.269766f, -0.0432062f, -0.0732343f, -0.0946799f, -0.0303322f, -0.00705866f, -0.00643542f, 0.0299446f, 0.202311f, 0.0755248f, 0.0998648f, -0.129259f, -0.0472309f, 0.00733819f, 0.106636f, -0.181175f, -0.0178459f, -0.0277673f, 0.0455031f, -0.0562852f, -0.0041616f, 0.0456093f, -0.183812f, 0.2294f, -0.106561f, 0.137499f, 0.0498552f, -0.00396853f, -0.22716f, 0.0272981f, 0.115269f, 0.0595427f, -0.105859f, 0.0436305f, 0.0895491f, 0.083878f, 0.174627f, 0.052607f, -0.121457f, 0.123567f, 0.146387f, 0.0651185f, -0.159928f, 0.0398829f, 0.163571f, 0.243937f, -0.021371f, 0.000655396f, -0.132967f, -0.0104524f, 0.208354f, 0.012666f, -0.0748255f, -0.0944629f, -0.0376535f, -0.0818367f, 0.132116f, -0.0305365f, 0.22014f, -0.00163749f, 0.00162841f, 0.172856f, 0.0578561f, 0.114351f, 0.205421f, 0.00318852f, 0.0198985f, -0.0584936f, 0.203655f, 0.157891f, -0.119292f, -0.112965f, 0.0898116f, -0.0148413f, -0.10608f, -0.0902988f, 0.159351f, -0.0646764f, -0.0205418f, -0.0199207f, 0.180344f, 0.143249f, -0.035338f, 0.057762f, -0.191386f, -0.0464013f, 0.0914069f, -0.191851f, -0.0675541f, -0.0423403f, -0.100927f, 0.0161619f, -0.0987854f, -0.100793f, 0.196418f, 0.00248705f, -0.0432446f, 0.0796261f, 0.152038f, -0.260016f, 0.198313f, -0.0567401f, 0.108115f, -0.00268071f, -0.0741292f, 0.0234285f, -0.224526f, 0.148266f, 0.0154036f, -0.0439509f, 0.0562957f, 0.177758f, -0.0681992f, -0.125969f, -0.150851f, -0.115606f, 0.06024f, 0.0711427f, 0.131505f, -0.0257035f, 0.126524f, -0.0558877f, -0.0855141f, 0.0232705f, -0.124038f, 0.115589f, 0.0203549f, 0.0254935f, 0.0140062f, 0.0876424f, -0.123214f, -0.0230097f, -0.161573f, -0.0360475f, -0.00654435f, 0.000688853f, -0.134106f, -0.0467477f, -0.131559f, 0.00342672f, -0.312512f, 0.0363554f, 0.151835f, -0.0853129f, 0.074602f, -0.211398f, -0.0102531f, -0.171873f, -0.00628835f, 0.00905569f, -0.0912632f, -0.0871372f, 0.122377f, 0.0850191f, 0.0985194f, -0.0294299f, 0.0562857f, -0.109574f, -0.0521253f, 0.193533f, -0.0366273f, 0.0445506f, -0.0472588f, -0.0943586f, 0.0447386f, 0.000856782f, -0.0259025f, 0.136455f, 0.0782866f, -0.0935313f, 0.0818118f, -0.0408051f, 0.0916395f, -0.133102f, -0.0581482f, -0.0228836f, 0.0666584f, -0.05829f, -0.04921f, -0.146942f, -0.107502f, 0.0547391f, 0.108538f, 0.0593637f, -0.0859511f, 0.213622f, -0.187088f, 0.0399089f, -0.035216f, -0.026333f, -0.012114f, 0.0322534f, 0.105685f, -0.0174143f, 0.00747345f, 0.0629153f, -0.0878523f, -0.0622083f, -0.0155112f, -0.0951758f, 0.00687557f, 0.0835443f, 0.0194767f, -0.0652855f, 0.0561613f, -0.0116323f, 0.105403f, -0.0162472f, -0.0552087f, 0.0343595f, 0.0287434f, -0.12661f, 0.0297873f, 0.139689f, 0.0652805f, 0.0574699f, 0.0164074f, 0.14186f, -0.0500572f, -0.0823913f, 0.167216f, 0.0256832f, -0.0723006f, -0.0397851f, 0.155773f, -0.114949f, -0.107053f, 0.0714464f, -0.0198649f, 0.0808929f, 0.037622f, 0.0354652f, -0.0201184f, -0.173943f, -0.0264803f, -0.0119942f, 0.00605799f, 0.113154f, 0.0967286f, -0.017262f, -0.106195f, -0.121338f, -0.0338321f, -0.025503f, 0.245601f, -0.0164296f, 0.0790656f, -0.0710732f, -0.0141372f, -0.0114468f, 0.00872849f, -0.0427291f, -0.0461845f, -0.0977246f, -0.163739f, 0.00876315f, -0.0399299f, -0.0506629f, -0.108793f, 0.112329f, 0.109512f, -0.0742309f, 0.0179484f, -0.136843f, 0.0453056f, -0.0478109f, 0.0326966f, 0.0502415f, -0.029296f, -0.0742189f, -0.0646355f, -0.056093f, 0.0380967f, 0.00111274f, 0.0452459f, 0.0386938f, 0.0038341f, -0.0391247f, -0.0566286f, 0.113694f, -0.0937831f, -0.120651f, -0.0826467f, -0.116464f, -0.137164f, -0.045446f, -0.0194932f, -0.0983434f, -0.0743301f, 0.161476f, -0.0570881f, 0.0233631f, 0.0774775f, -0.0195871f, 0.185679f, 0.0672005f, 0.0853373f, 0.0180244f, 0.119239f, 0.0753913f, -0.0509421f, 0.0605903f, 0.0885008f, -0.0903598f, 0.0721227f, 0.0615892f, -0.0524508f, 0.127184f, 0.117977f, 0.0709854f, -0.102516f, 0.119883f, 0.146393f, 0.0427582f, 0.0609739f, 0.0783221f, 0.0217784f, -0.13305f, 0.0445663f, 0.0505068f, 0.116983f, -0.0103749f, -0.0736808f, -0.0653908f, -0.0265551f, 0.0600847f, -0.0996167f, -0.00321938f, 0.120602f, 0.0598046f, 0.00528088f, 0.0401353f, 0.0147057f, -0.0952419f, -0.0878364f, -0.13797f, 0.0743507f, -0.12589f, -0.0372878f, -0.012834f, 0.0600101f, 0.0287103f, -0.0825206f, 0.0641763f, 0.0177716f, 0.012303f, -0.0745559f, 0.105182f, -0.0540853f, -0.0333342f, -0.136472f, -0.0341253f, -0.0602999f, 0.114152f, 0.0893467f, -0.0520577f, -0.168502f, -0.126018f, -0.0102771f, 0.0587005f, 0.054732f, -0.0188105f, 0.046725f, 0.0238157f, 0.102737f, -0.0711375f, -0.0462772f, 0.124127f, 0.0631692f, -0.0570988f, 0.0552801f, -0.143249f, -0.0702477f, 0.104784f, 0.034309f, 0.0541354f, 0.110499f, -0.0192115f, -0.0202143f, -0.0599411f, 0.0723049f, -0.00906449f, 0.0414672f, -0.0491892f, 0.0268872f, 0.193699f, 0.130654f, -0.0405223f, 0.00221397f, -0.0621476f, 0.00502492f, -0.121537f, -0.0428734f, -0.0360498f, -0.0304358f, -0.0795509f, -0.011439f, -0.129438f, 0.077344f, -0.0700982f, -0.126275f, 0.151499f, 0.0312616f, 0.00851158f, 0.0736084f, -0.00405348f, 0.00451125f, 0.0703292f, -0.235454f, -0.0349943f, 0.242182f, -0.0268495f, 0.0576268f, 0.0480364f, 0.0570949f, 0.0737214f, 0.0325877f, 0.17182f, -0.106664f, 0.133195f, -0.109936f, -0.0566498f, -0.0187242f, 0.113351f, -0.122787f, 0.239851f, -0.216096f, 0.0907362f, -0.0206398f, 0.124239f, 0.115552f, -0.0981731f, 0.229738f, 0.277904f, -0.00153517f, -0.0763558f, 0.0606891f, 0.0328893f, -0.0243596f, 0.0903597f, 0.0240072f, -0.0782398f, 0.252151f, -0.0358518f, 0.155218f, 0.120661f, 0.224858f, -0.222757f, -0.142516f, 0.0306588f, -0.0427539f, 0.211028f, 0.0584786f, 0.0413481f, 0.192026f, 0.0382383f, -0.0390723f, 0.056745f, -0.0409426f, 0.0781339f, -0.103876f, 0.0971f, -0.0144666f, -0.0293698f, -0.0131107f, 0.0533274f, 0.103563f, -0.0363352f, 0.025181f, 0.289348f, -0.162167f, -0.155639f, 0.083584f, 0.0791367f, 0.111414f, -0.0476062f, 0.0445369f, 0.186017f, 0.0939264f, 0.00028199f, 0.0519289f, 0.0612015f, 0.169587f, 0.00236124f, 0.0385773f, -0.159372f, 0.066127f, 0.0140739f, -0.0439157f, -0.118116f, 0.179047f, -0.210218f, -0.209824f, -0.0403195f, -0.0962556f, 0.0953758f, -0.0709532f, -0.0128881f, -0.0406544f, 0.1922f, 0.0525305f, 0.0526913f, -0.0291345f, -0.176972f, 0.0407904f, 0.0358403f, -0.226603f, -0.164446f, -0.0959771f, 0.0915601f, 0.0271341f, 0.165565f, 0.0769051f, -0.203278f, -0.149399f, -0.0178386f, -0.050493f, -0.126185f, 0.119848f, -0.148173f, 0.0694459f, 0.0939007f, -0.162401f, -0.0651222f, -0.00866512f, 0.00346045f, -0.163929f, -0.0267806f, 0.149871f, -0.1576f, -0.109532f, -0.0239465f, -0.0831406f, -0.0629723f, -0.093224f, -0.104425f, 0.101352f, 0.0281282f, -0.1245f, -0.197789f, -0.0999238f, -0.144703f, -0.0138961f, 0.044811f, -0.231391f, 0.11074f, 0.181848f, 0.227113f, -0.196751f, -0.130673f, 0.222223f, -0.13932f, 0.0955812f, -0.0709586f, 0.0923136f, 0.0294518f, -0.125254f, 0.0251324f, 0.215381f, -0.0580489f, 0.195959f, 0.0588185f, 0.0228786f, 0.10875f, 0.0473915f, 0.0348885f, 0.0437052f, -0.0156806f, 0.0256575f, 0.0149649f, 0.0165051f, -0.0131347f, 0.0853129f, -0.0553428f, -0.00592157f, 0.260953f, 0.0350467f, -0.125306f, -0.0487768f, 0.00343992f, 0.113883f, 0.174624f, -0.18147f, 0.0215507f, 0.0141983f, 0.163106f, -0.0745335f, 0.0685851f, -0.120164f, -0.0713498f, -0.144946f, -0.183849f, -0.127094f, 0.0279581f, 0.0260933f, -0.077414f, -0.0367985f, 0.292717f, 0.115279f, 0.111953f, 0.204568f, 0.0581474f, -0.111962f, 0.0945887f, 0.0185968f, 0.17383f, 0.0121393f, -0.0684536f, -0.182747f, 0.0509556f, -0.0831389f, -0.0826389f, -0.0152207f, -0.0329033f, -0.0569269f, 0.0739019f, -0.0639917f, -0.112477f, -0.124869f, 0.071562f, -0.159744f, -0.167634f, -0.00556883f, -0.0179709f, -0.169591f, -0.162433f, -0.0855786f, -0.0192485f, 0.0306147f, -0.0728922f, -0.0708004f, -0.341319f, -0.0861684f, 0.0448614f, -0.0801514f, -0.0507588f, 0.0155091f, -0.200218f, -0.0728925f, -0.0447197f, -0.219095f, -0.163538f, -0.0615088f, 0.182309f, -0.338238f, 0.0910807f, 0.0576643f, -0.236668f, -0.0966111f, 0.0108258f, 0.0937891f, -0.0178186f, -0.163416f, 0.0983393f, -0.0503308f, -0.0720752f, 0.237937f, 0.0794506f, -0.0676877f, -0.0261349f, 0.215386f, -0.083854f, 0.160793f, -0.117172f, -0.403981f, 0.106404f, -0.327203f, -0.10027f, -0.205913f, -0.360654f, -0.0924219f, 0.106851f, -0.118155f, 0.0539939f, 0.170544f, -0.227901f, 0.250867f, 0.038719f, -0.0115589f, -0.00665565f, -0.0967185f, 0.189361f, 0.264097f, 0.0185725f, 0.17279f, 0.222368f, -0.259067f, 0.184307f, 0.390224f, -0.193493f, -0.011492f, -0.197282f, 0.0325945f, -0.0111955f, 0.0044905f, -0.199482f, 0.131038f, 0.15635f, 0.0810646f, -0.294985f, -0.145189f, 0.0969076f, 0.02804f, 0.0450704f, -0.396155f, -0.0644737f, -0.422233f, -0.273229f, -0.318068f, 0.140255f, -0.156009f, -0.241412f, 0.181814f, -0.138849f, 0.0151069f, 0.148677f, -0.159092f, 0.157785f, 0.250005f, -0.188404f, 0.0364424f, 0.253255f, -0.24276f, -0.169294f, 0.0409781f, 0.0968108f, -0.203192f, -0.0422862f, 0.305183f, 0.122162f, -0.283592f, 0.00149554f, -0.0835338f, 0.0748312f, 0.259988f, -0.197612f, -0.0856517f, -0.357363f, 0.399447f, -0.0430669f, 0.0497714f, -0.107537f, -0.0431585f, 0.114282f, -0.239678f, 0.217556f, -0.303666f, -0.0811295f, 0.157969f, -0.187861f, 0.338178f, 0.0565134f, -0.316844f, -0.0722227f, 0.00688845f, -0.152709f, 0.093852f, 0.149136f, 0.167007f, -0.173051f, -0.284284f, -0.0213729f, 0.10468f, 0.112099f, -0.190844f, 0.00853662f, -0.246351f, 0.0464101f, 0.131334f, 0.25071f, 0.0837534f, -0.383042f, 0.0256517f, -0.00424962f, -0.274924f, 0.141007f, 0.107513f, -0.267332f, -0.0551423f, -0.216276f, -0.0490882f, -0.290488f, 0.242792f, -0.119212f, -0.0218677f, 0.0988319f, -0.368761f, 0.164697f, 0.0267961f, -0.105771f, -0.153821f, -0.153126f, 0.299342f, -0.064212f, 0.130658f, 0.0785488f, 0.278499f, 0.131072f, -0.115298f, 0.0154177f, -0.0880035f, -0.157531f, 0.188299f, 0.0803461f, 0.0548153f, -0.284493f, -0.0886858f, -0.102087f, -0.237607f, -0.114988f, 0.0870072f, -0.00345999f, 0.184263f, -0.285405f, -0.130964f, -0.025304f, -0.00601552f, -0.07438f, -0.136152f, -0.0286806f, 0.0207288f, -0.027592f, -0.162992f, -0.055326f, -0.233307f, -0.070812f, 0.0492962f, 0.110918f, -0.0406196f, -0.153045f, 0.173669f, 0.0734072f, -0.0732667f, -0.105041f, -0.167236f, 0.0101264f, 0.243949f, 0.0461432f, 0.128032f, 0.0848078f, -0.0418796f, -0.0321023f, -0.0399245f, 0.259749f, 0.0778096f, 0.0505481f, -0.0311115f, -0.0382627f, 0.0299341f, 0.252194f, -0.37373f, -0.176958f, -0.120184f, -0.227335f, 0.0770466f, 0.212278f, -0.17664f, -0.017297f, -0.0695772f, 0.157742f, 0.12983f, 0.127458f, 0.0720215f, 0.0043244f, 0.152869f, -0.114001f, -0.139799f, 0.0953f, 0.208727f, 0.127268f, 0.0193805f, 0.0362372f, 0.138369f, 0.369941f, -0.195237f, -0.135113f, 0.0805611f, 0.0788809f, -0.242547f, 0.080329f, -0.238086f, -0.147299f, 0.10078f, 0.056007f, 0.26819f, -0.134325f, -0.151631f, 0.0331869f, -0.203848f, 0.0324533f, 0.125324f, -0.169101f, 0.0118455f, 0.147101f, 0.00218031f, 0.143348f, -0.308314f, -0.0970472f, -0.274939f, -0.211166f, -0.2332f, 0.0979211f, -0.244075f, 0.0385465f, 0.15513f, 0.00294408f, 0.288371f, 0.191319f, 0.229467f, 0.0253275f, 0.0470585f, -0.0753111f, 0.225266f, 0.000188945f, 0.0867073f, -0.0294118f, 0.188972f, 0.202248f, 0.143651f, 0.0570583f, -0.0985795f, -0.0880473f, 0.00706351f, -0.133447f, -0.172788f, 0.160309f, -0.0815013f, -0.134103f, 0.120766f, 0.116774f, -0.208355f, 0.14182f, 0.0824939f, 0.169538f, 0.135365f, -0.0491423f, -0.145899f, -0.113093f, 0.103455f, 0.256475f, 0.143091f, 0.119487f, -0.125903f, 0.0889941f, 0.00627312f, -0.0635065f, -0.00173588f, -0.194384f, 0.201773f, 0.0226254f, -0.137802f, 0.00940859f, 0.0668968f, 0.015292f, -0.082253f, -0.165651f, 0.169124f, 0.0916621f, 0.062f, 0.0826089f, -0.198886f, 0.00702447f, -0.066128f, -0.153257f, -0.0321511f, -0.238177f, -0.0847952f, -0.151128f, -0.150681f, -0.207457f, 0.0400082f, -0.134914f, 1.47486e-05f, 0.15748f, -0.125246f, 0.124323f, 0.182628f, 0.0918873f, -0.200642f, -0.227084f, 0.0444718f, 0.000128548f, -0.152922f, -0.0994708f, -0.0767886f, -0.018398f, 0.15476f, -0.0834883f, -0.0612922f, 0.0143985f, 0.0103263f, 0.048866f, 0.101129f, -0.0395604f, -0.0247876f, -0.129414f, 0.0443794f, -0.141152f, -0.178373f, -0.0711169f, -0.102212f, 0.211871f, 0.0257683f, -0.0103359f, 0.0362521f, -0.0390291f, -0.0434494f, 0.0631298f, -0.0998652f, -0.147124f, 0.0454152f, -0.248975f, -0.123281f, -0.052062f, -0.0541515f, 0.211952f, 0.004575f, -0.0693103f, 0.0476817f, 0.0849155f, 0.165769f, -0.140951f, -0.119905f, 0.280747f, -0.0465653f, 0.17111f, -0.270557f, 0.00575594f, -0.0348503f, -0.017439f, -0.0826443f, -0.0409663f, 0.0295465f, 0.0984439f, -0.120604f, 0.0344263f, -0.0011637f, 0.00989551f, -0.00340078f, 0.00850722f, 0.179638f, -0.22089f, -0.131107f, 0.120485f, 0.152177f, 0.170744f, 0.044543f, 0.217742f, -0.136022f, 0.25275f, 0.147083f, 0.0754945f, 0.0177406f, -0.0478084f, -0.0658235f, 0.0231398f, -0.141303f, 0.198448f, 0.167752f, -0.039019f, -0.0973094f, 0.0864122f, 0.101708f, -0.14336f, -0.0807588f, -0.258401f, -0.094703f, 0.170076f, 0.0405475f, 0.14992f, 0.100936f, -0.0272648f, -0.00115674f, 0.132567f, 0.0171761f, 0.0101015f, 0.0246377f, 0.107046f, -0.193572f, 0.0857711f, -0.140774f, 0.090101f, -0.0736433f, 0.0204346f, -0.0225741f, -0.104077f, -0.109885f, -0.0665963f, -0.0853857f, 0.115213f, -0.0909068f, 0.158656f, -0.094653f, 0.156084f, -0.210277f, 0.183888f, 0.0486522f, 0.0459398f, 0.0767724f, 0.0632939f, -0.100826f, -0.0820544f, -0.0381878f, -0.100497f, -0.0112067f, 0.00456652f, -0.0368487f, 0.196488f, 0.197605f, -0.020906f, 0.0406091f, -0.124886f, -0.165626f, 0.201416f, -0.0188704f, 0.128892f, -0.0448254f, 0.0587233f, 0.0857203f, 0.19674f, -0.00305874f, -0.0356856f, 0.0696455f, 0.103251f, -0.00764705f, 0.156359f, -0.0118428f, 0.0731261f, 0.026711f, 0.176531f, -0.127627f, 0.151902f, -0.187902f, 0.051981f, -0.0136416f, 0.219165f, 0.0629147f, -0.102626f, -0.138369f, 0.210953f, -0.0573071f, -0.101651f, -0.0306738f, -0.10068f, 0.137384f, -0.0334064f, -0.102798f, -0.078398f, -0.146785f, -0.190086f, 0.0997806f, 0.110652f, 0.0336697f, -0.148625f, 0.130426f, 0.0262291f, 0.0210783f, 0.134645f, -0.0574887f, 0.0891707f, 0.146593f, -0.0439369f, 0.0193809f, 0.147821f, 0.131402f, -0.128196f, -0.117948f, -0.0082931f, 0.0418679f, 0.0421375f, 0.187787f, -0.146945f, 0.198291f, -0.0198647f, 0.133588f, 0.146167f, 0.104667f, 0.0303985f, 0.166221f, 0.0353582f, 0.066328f, 0.00763346f, 0.0172443f, -0.0144061f, 0.149391f, -0.0736738f, 0.0714296f, 0.194504f, -0.163136f, 0.113252f, -0.138801f, 0.141143f, 0.072513f, 0.114953f, -0.0705785f, -0.0819726f, -0.0416392f, -0.00168314f, 0.309822f, 0.314872f, -0.20742f, -0.0292699f, 0.212946f, -0.111383f, -0.0241276f, -0.0795632f, -0.141719f, 0.079961f, -0.136757f, -0.0957298f, -0.0790917f, -0.0207451f, -0.0869134f, -0.153206f, -0.0927432f, 0.0440053f, -0.0416051f, 0.0988587f, -0.129157f, 0.253741f, -0.177436f, -0.118281f, -0.0596451f, -0.161791f, -0.0468495f, 0.0660165f, 0.0646108f, 0.110763f, 0.150378f, -0.0788609f, -0.101075f, -0.039072f, -0.217344f, 0.110009f, -0.0946182f, -0.0679836f, 0.195697f, -0.0336805f, -0.221617f, -0.100527f, 0.0844283f, -0.0869825f, -0.215412f, 0.0522465f, -0.310825f, -0.0758645f, -0.0197462f, 0.16689f, -0.0501116f, 0.0528725f, 0.0652941f, -0.111503f, 0.146213f, 0.0498871f, -0.162778f, -0.186309f, 0.0320245f, -0.0559443f, -0.138532f, 0.166738f, 0.23775f, -0.104099f, 0.0813241f, 0.106198f, 0.155907f, 0.0143641f, -0.27389f, 0.0415984f, 0.0588035f, -0.210843f, -0.0576417f, 0.0201035f, 0.0236608f, -0.0891144f, 0.0783343f, -0.0468252f, 0.0136883f, 0.136813f, 0.224546f, 0.0838766f, 0.113943f, 0.0872885f, 0.0995554f, -0.283958f, -0.148619f, -0.0733536f, -0.069118f, -0.31957f, 0.0934041f, 0.0193094f, -0.114826f, 0.212339f, -0.14886f, 0.0372198f, -0.188002f, 0.12721f, 0.153615f, -0.238889f, -0.0610167f, 0.0660693f, 0.0237842f, 0.0196724f, 0.0698749f, -0.086472f, 0.145701f, -0.145899f, -0.131192f, 0.178764f, -0.0926532f, 0.0870725f, 0.211072f, 0.0530389f, -0.0229531f, 0.106928f, 0.141112f, 0.0927335f, 0.109605f, -0.0261064f, -0.202331f, 0.177214f, -0.0562009f, 0.0252349f, 0.0142205f, -0.0990799f, -0.0404558f, -0.0497172f, -0.0261545f, 0.00835299f, 0.1414f, 0.305146f, -0.0643732f, -0.174145f, -0.177636f, 0.0224124f, -0.159585f, 0.060461f, -0.0401957f, -0.255138f, 0.192734f, 0.0418678f, 0.226092f, -0.065158f, 0.250729f, 0.0216877f, 0.0485944f, 0.0593485f, 0.206733f, 0.0284838f, -0.0993838f, 0.111706f, -0.135409f, -0.0932348f, -0.245356f, -0.144911f, -0.0446288f, 0.169573f, -0.0874826f, 0.0614141f, 0.137376f, 0.212286f, 0.0525785f, 0.240151f, 0.192901f, 0.00270827f, 0.0649812f, 0.025633f, 0.0545001f, -0.165721f, -0.285222f, -0.177316f, 0.262168f, 0.0959569f, 0.0643447f, -0.105277f, 0.160041f, 0.0239113f, -0.327854f, -0.0143892f, -0.0721955f, 0.0589124f, -0.156789f, 0.0385054f, 0.00434418f, 0.00661083f, -0.0861682f, -0.17405f, -0.19816f, 0.032739f, 0.0962337f, 0.0273996f, 0.185195f, -0.0430574f, -0.0355297f, -0.0533337f, 0.0801419f, 0.0855895f, 0.192111f, 0.320079f, 0.0365444f, 0.0347775f, 0.00796121f, -0.00574291f, -0.129792f, -0.172943f, 0.0878978f, 0.13569f, -0.139428f, -0.234947f, -0.2039f, 0.009278f, 0.0365433f, 0.0995451f, -0.107576f, 0.0252316f, -0.224508f, -0.236106f, -0.173547f, 0.118866f, 0.274699f, 0.134199f, 0.0322871f, 0.227172f, 0.289238f, -0.159233f, 0.230645f, 0.105203f, -0.0076566f, 0.214628f, 0.0517194f, 0.062672f, -0.0359387f, -0.195713f, -0.0290635f, 0.10452f, 0.431139f, -0.121463f, 0.076151f, -0.0824319f, -0.141275f, 0.267839f, -0.0823061f, 0.299149f, 0.0241075f, -0.132798f, -0.0609192f, 0.0626f, -0.252442f, 0.0589183f, -0.0314585f, 0.325479f, -0.000260207f, 0.0534638f, -0.262571f, -0.0310267f, -0.131758f, -0.170439f, 0.185731f, -0.246671f, 0.293513f, 0.198999f, -0.0340642f, -0.00733451f, -0.165487f, -0.0580672f, -0.140173f, 0.183642f, -0.0745772f, -0.0100438f, -0.201889f, 0.359286f, -0.229729f, 0.135328f, 0.0353221f, 0.153671f, -0.333703f, 0.349391f, -0.283276f, 0.0844848f, -0.173128f, -0.0759373f, 0.0330402f, 0.0772456f, -0.0635397f, 0.0932651f, 0.0284708f, 0.0380076f, 0.193609f, -0.176046f, -0.128711f, -0.114186f, 0.120813f, 0.0699857f, 0.196557f, 0.00166849f, -0.117778f, 0.0110301f, -0.0768714f, 0.0275332f, -0.0916222f, -0.102956f, -0.122657f, 0.15944f, 0.0316099f, -0.0522308f, 0.323727f, -0.230552f, 0.101301f, 0.177956f, 0.0396021f, -0.00430731f, -0.0211394f, 0.0629329f, -0.332695f, 0.106424f, -0.0777535f, 0.113195f, 0.315107f, 0.188398f, -0.246375f, -0.0857383f, -0.182672f, -0.0547001f, -0.106207f, 0.290031f, 0.146533f, -0.219576f, -0.145823f, -0.0503989f, 0.137121f, 0.258976f, -0.242726f, -0.188562f, -0.167759f, -0.0669314f, -0.0530194f, 0.0631968f, -0.111672f, 0.06546f, -0.0555054f, 0.078628f, -0.253099f, 0.308566f, -0.0721161f, -0.210335f, -0.348234f, 0.0724778f, 0.0423384f, 0.146994f, -0.0171791f, 0.309001f, -0.218651f, -0.0208223f, -0.0764915f, 0.24548f, 0.214937f, 0.0469843f, -0.150643f, -0.364755f, -0.122736f, 0.04556f, 0.333004f, -0.0266167f, -0.0363954f, 0.0982738f, 0.205156f, 0.209017f, 0.379903f, 0.0877701f, -0.128108f, -0.0867397f, -0.121851f, 0.0361453f, 0.00828376f, -0.0477988f, -0.0413106f, -0.161172f, 0.213305f, -0.00111569f, -0.0845275f, 0.071948f, -0.130634f, 0.0380625f, -0.0372861f, -0.178729f, 0.0194546f, -0.194831f, -0.0154283f, 0.362365f, -0.00805127f, 0.112677f, -0.201804f, 0.169338f, -0.216447f, -0.0547855f, -0.00510067f, -0.125008f, -0.147269f, 0.0964131f, -0.0873803f, -0.0757989f, -0.208004f, -0.059758f, -0.161146f, -0.00347624f, 0.0957962f, -0.235102f, 0.0365928f, 0.0348293f, -0.138594f, -0.0961241f, -0.0922681f, 0.287121f, 0.213448f, 0.118349f, -0.112899f, 0.121456f, -0.38608f, 0.195398f, 0.0408939f, -0.0138475f, 0.117457f, 0.0381928f, -0.0666606f, 0.0583368f, -0.128743f, 0.00220194f, 0.221192f, 0.238882f, -0.00231248f, 0.231522f, -0.073622f, -0.205765f, -0.0593279f, -0.0661419f, 0.318657f, -0.330258f, -0.193455f, -0.22593f, -0.0671599f, 0.17033f, -0.171215f, 0.0116427f, 0.241463f, 0.228159f, -0.0170908f, -0.135802f, 0.0784335f, -0.00603656f, -0.078385f, -0.0021585f, 0.121708f, -0.245062f, -0.0522396f, -0.121177f, -0.0807951f, 0.00210092f, 0.0804021f, 0.0779514f, -0.0417517f, -0.0344947f, 0.305998f, 0.096872f, -0.221276f, -0.146757f, -0.405486f, 0.0219563f, -0.269971f, -0.198412f, 0.119681f, -0.308861f, -0.08031f, 0.34819f, -0.127822f, -0.0691973f, 0.267604f, -0.277355f, -0.0174407f, -0.0106171f, 0.0211675f, -0.103112f, -0.126997f, 0.159662f, 0.290092f, -0.121849f, -0.0484707f, -0.17268f, 0.132567f, -0.211913f, 0.081409f, -0.0920952f, 0.0921937f, 0.0852403f, -0.185974f, -0.138618f, 0.0515165f, -0.000206601f, 0.0261034f, 0.02268f, 0.0567344f, -0.0441425f, 0.000201588f, 0.123293f, 0.0111576f, -0.0247089f, 0.0292397f, -0.0413888f, -0.161404f, -0.0514603f, -0.185822f, -0.260259f, -0.235918f, 0.0626553f, -0.0652801f, -0.00033412f, 0.242051f, 0.0189393f, 0.0909879f, 0.0302474f, -0.0819969f, 0.192308f, 0.150875f, -0.201269f, -0.0346066f, 0.0306141f, 0.145129f, -0.0706513f, -0.0863287f, -0.243291f, -0.090859f, 0.0281991f, 0.0507814f, 0.0706022f, 0.0496821f, 0.0498656f, -0.233804f, 0.174798f, -0.0774f, -0.0312718f, -0.13f, -0.0598909f, 0.0527177f, -0.178637f, -0.0151832f, -0.0542142f, 0.0265296f, -0.0420384f, -0.000872416f, 0.0931796f, 0.15586f, 0.121803f, -0.00167083f, 0.0111609f, 0.135678f, 0.0678526f, 0.080266f, 0.241192f, -0.00336424f, 0.180641f, -0.110856f, 0.0218416f, -0.0664325f, 0.0656633f, -0.114564f, 0.137031f, 0.040926f, 0.0303197f, -0.0382224f, -0.150869f, 0.0960662f, 0.0726808f, -0.157034f, 0.171881f, 0.0685848f, 0.114226f, 0.0538545f, 0.0418982f, -0.0331658f, 0.0492706f, -0.037532f, -0.158263f, 0.0607966f, -0.0145445f, 0.185706f, -0.0643315f, -0.0135165f, 0.0172603f, -0.0780011f, -0.0848638f, 0.0492496f, 0.129232f, 0.165865f, 0.0344715f, -0.136814f, 0.000358394f, -0.0232335f, 0.152952f, -0.0600099f, -0.192977f, -0.0367816f, 0.198188f, -0.0454363f, 0.0343977f, -0.106495f, 0.066069f, 0.0490978f, 0.120434f, 0.0694759f, -0.227996f, 0.130196f, -0.0418278f, 0.115506f, 0.115386f, -0.100832f, -0.0456429f, 0.0152398f, -0.216708f, -0.0403585f, -0.00478148f, -0.136817f, 0.0379711f, -0.0607023f, -0.0676654f, 0.0251749f, 0.210399f, -0.0397646f, -0.0179528f, 0.284763f, 0.189958f, -0.21906f, 0.255155f, 0.162647f, 0.189845f, -0.0784556f, 0.0737819f, 0.143771f, 0.0829507f, 0.0126301f, -0.0785413f, -0.0544143f, 0.0322777f, 0.0643078f, -0.077909f, -0.06629f, -0.00821725f, 0.210941f, -0.117791f, 0.191588f, -0.106581f, 0.157519f, 0.0588131f, -0.265521f, -0.0469105f, 0.289005f, -0.0430911f, -0.16949f, -0.0573989f, -0.0204011f, 0.0678602f, 0.0696468f, -0.0739312f, -0.112755f, 0.172463f, -0.127034f, 0.12292f, -0.0443834f, -0.129821f, -0.0675303f, -0.019138f, 0.185586f, -0.0669875f, -0.0147212f, 0.160956f, 0.0856461f, 0.291873f, 0.0847378f, 0.0694323f, 0.31807f, 0.0934259f, 0.160415f, -0.153634f, -0.113406f, -0.0978282f, -0.098476f, 0.0873472f, 0.0526589f, 0.0204514f, 0.0170254f, -0.103036f, -0.0455209f, -0.0405997f, 0.247829f, 0.102961f, 0.0499039f, 0.00902703f, 0.225984f, 0.0499765f, -0.0312189f, 0.258194f, 0.0519406f, 0.0395597f, 0.0940849f, 0.104081f, -0.205589f, 0.0385255f, -0.0408024f, 0.108601f, 0.0500888f, -0.195943f, 0.0626389f, 0.10276f, -0.12249f, -0.130169f, 0.129958f, -0.0352117f, 0.226996f, -0.172877f, -0.0760449f, -0.102074f, -0.210024f, 0.185188f, -0.039205f, -0.136848f, -0.0180378f, -0.191396f, -0.150125f, 0.0795335f, 0.2136f, 0.0119987f, 0.0433865f, 0.194074f, -0.0226395f, -0.0979459f, -0.0714822f, -0.0110733f, -0.161748f, 0.0500666f, -0.110909f, -0.0104191f, -0.0175613f, -0.00674762f, 0.106509f, 0.00460456f, 0.00410412f, -0.0772316f, 0.00435154f, -0.0910512f, 0.218492f, 0.29147f, -0.0424606f, 0.143124f, -0.137895f, -0.164627f, -0.00438107f, -0.0431847f, 0.203699f, -0.26555f, -0.0705588f, -0.00872925f, 0.231877f, 0.14079f, 0.181708f, -0.0346643f, 0.11212f, -0.0811222f, 0.184272f, 0.214823f, 0.171745f, -0.149717f, 0.137817f, 0.147611f, -0.235522f, -0.109146f, -0.178914f, 0.0186289f, 0.213876f, 0.311256f, -0.00381206f, -0.163733f, -0.09959f, 0.0146397f, 0.0614946f, -0.070104f, 0.0712374f, 0.244531f, -0.108812f, -0.142565f, 0.107698f, 0.262462f, 0.11883f, -0.194032f, -0.310899f, -0.0923784f, -0.124957f, 0.31112f, 0.199515f, -0.0551783f, -0.0352741f, 0.115085f, -0.104223f, -0.189291f, -0.0704483f, 0.00209226f, 0.0250195f, -0.0990892f, -0.176042f, 0.00743281f, -0.0509205f, -0.101501f, -0.103593f, 0.0408785f, -0.189692f, 0.0454693f, -0.0758089f, -0.142164f, -0.0846186f, -0.137354f, 0.222218f, 0.115253f, 0.31373f, -0.0803589f, -0.246954f, 0.18759f, 0.136355f, -0.224809f, -0.105703f, -0.0672083f, -0.0128911f, 0.017288f, 0.117852f, 0.15952f, -0.02357f, -0.0766566f, -0.280274f, -0.0769868f, 0.204228f, -0.101775f, 0.0521978f, 0.0639076f, -0.275116f, 0.127074f, 0.319094f, -0.0496913f, -0.323741f, -0.00608965f, 0.207233f, -0.0163952f, 0.105694f, -0.211254f, -0.00304822f, -0.16232f, -0.281322f, -0.127316f, -0.0579882f, -0.125202f, 0.0406097f, 0.0958925f, 0.128083f, 0.150832f, 0.269484f, 0.0174735f, -0.153725f, -0.0608457f, -0.0918351f, 0.248253f, 0.0973075f, 0.252591f, -0.234673f, -0.456033f, -0.226221f, -0.146773f, -0.0938882f, -0.22362f, -0.419022f, -0.0244509f, 0.0775353f, -0.16682f, 0.110756f, 0.0211042f, 0.0439886f, -0.0180996f, 0.127548f, 0.202282f, -0.061889f, -0.321123f, 0.135843f, -0.0576641f, 0.253072f, 0.0291771f, -0.060265f, 0.253647f, 0.0445468f, 0.0788502f, 0.226324f, 0.0240673f, 0.0987722f, -0.132738f, -0.112783f, -0.0865062f, 0.234074f, 0.00825199f, 0.0191752f, 0.252977f, -0.126319f, 0.184873f, -0.192595f, -0.0350754f, -0.157661f, 0.0590188f, 0.109224f, 0.10246f, 0.132791f, 0.0229383f, 0.038484f, 0.0700208f, 0.161872f, 0.166603f, -0.311951f, -0.137464f, 0.136704f, 0.311738f, 0.0897168f, -0.0366482f, -0.0132269f, -0.200461f, -0.111733f, -0.102239f, 0.0955726f, -0.066715f, 0.036535f, 0.129882f, -0.168885f, -0.115976f, 0.039667f, -0.036747f, 0.397541f, -0.184108f, 0.0804691f, 0.259191f, 0.0598376f, -0.149627f, 0.0161797f, 0.110143f, 0.0987844f, 0.0104797f, -0.0440806f, -0.203626f, 0.0711966f, 0.159525f, -0.0638732f, -0.00707343f, -0.0707757f, -0.00112342f, 0.335561f, -0.0531144f, -0.138866f, -0.0445795f, -0.0714467f, 0.199598f, 0.229658f, -0.255406f, 0.00462221f, 0.0222959f, 0.141108f, 0.0303531f, -0.167629f, -0.144085f, -0.293201f, -0.060638f, -0.35519f, -0.0580885f, 0.0421959f, -0.145221f, 0.136134f, 0.0810518f, 0.243392f, -0.0444259f, -0.0184391f, -0.151038f, -0.164964f, 0.276209f, -0.112475f, -0.00604662f, 0.258133f, 0.334345f, 0.05369f, 0.114225f, 0.0966445f, 0.198215f, 0.212682f, -0.151994f, -0.217456f, 0.0471213f, -0.14941f, 0.289639f, 0.0927457f, 0.179868f, -0.242042f, -0.0110401f, -0.190477f, 0.106072f, -0.0249445f, -0.0997299f, -0.117081f, -0.0526052f, 0.0243068f, -0.0408382f, -0.0895717f, 0.154589f, -0.054847f, 0.0549975f, -0.0659244f, 0.0693153f, -0.0744928f, -0.0653151f, -0.0428189f, -0.0295288f, -0.0857484f, 0.0357081f, -0.0475737f, -0.0851937f, 0.0441033f, 0.058631f, -0.0767789f, -0.13133f, 0.132014f, 0.0863137f, 0.158134f, -0.0937582f, -0.0214128f, -0.0382279f, -0.0636957f, 0.142762f, -0.0683914f, 0.0816568f, -0.115786f, -0.028825f, 0.118278f, -0.0529596f, -0.0665385f, -0.131019f, -0.0441827f, -0.0822874f, 0.169602f, -0.0465438f, -0.183741f, -0.114164f, 0.113757f, -0.0403487f, -0.0331101f, -0.0921883f, 0.00606357f, 0.15367f, 0.0757934f, 0.0322723f, 0.105067f, 0.124355f, 0.065019f, 0.124772f, -0.191533f, 0.0269353f, 0.0283246f, 0.0227436f, -0.128871f, -0.0171146f, 0.0471678f, -0.0258445f, -0.093097f, -0.0211685f, -0.0600165f, 0.145823f, 0.0351299f, 0.0306387f, 0.0928449f, 0.020633f, -0.0156347f, -0.336677f, -0.179342f, -0.0594072f, -0.154574f, 0.112135f, 0.150599f, 0.003752f, -0.150725f, 0.021317f, -0.0318604f, 0.0968784f, 0.0983328f, -0.0771072f, 0.14515f, 0.207984f, -0.0487643f, 0.0428345f, 0.101249f, -0.139048f, -0.00305358f, 0.0918825f, 0.0925437f, 0.0406735f, -0.205242f, 0.0932068f, -0.166277f, -0.324435f, -0.0454614f, -0.289616f, -0.0424508f, 0.102857f, 0.029932f, 0.00522758f, 0.133492f, -0.0711855f, -0.0727679f, 0.0902612f, -0.02277f, 0.144463f, -0.129104f, 0.0376435f, -0.053579f, -0.0568182f, -0.095203f, -0.0295839f, -0.024113f, -0.0362666f, -0.0471181f, -0.177127f, 0.0215891f, 0.15187f, 0.0378124f, -0.0340302f, 0.109707f, 0.067768f, -0.0485194f, 0.0400735f, 0.0555731f, -0.092074f, 0.0215187f, -0.145584f, -0.10234f, 0.165734f, 0.0518075f, 0.0717425f, 0.0980258f, -0.095871f, 0.23448f, -0.000350734f, -0.0337965f, -0.156476f, 0.119158f, 0.0123784f, -0.119895f, -0.151691f, -0.0681052f, 0.0836279f, 0.0811906f, 0.0305851f, -0.219819f, 0.0455165f, 0.0222054f, -0.0728992f, 0.0364407f, -0.117564f, -0.0789609f, 0.0440201f, 0.162188f, -0.00293156f, 0.0551516f, -0.030544f, 0.163791f, 0.0283258f, 0.0397608f, -0.0215811f, -0.11412f, -0.0256026f, -0.0875023f, -0.0506704f, -0.0330186f, -0.115645f, -0.0753315f, -0.00654053f, -0.068948f, -0.0512098f, -0.158833f, 0.0260133f, 0.0321327f, 0.0390961f, 0.166651f, 0.296434f, 0.0606042f, 0.0460612f, 0.194287f, -0.00961754f, -0.113885f, -0.13879f, -0.057224f, -0.169211f, 0.0370581f, -0.0283348f, 0.0186667f, -0.235216f, 0.181624f, -0.17774f, 0.00239914f, -0.143897f, -0.00537761f, 0.00713175f, 0.035354f, -0.126193f, 0.0632383f, 0.0271724f, -0.0885833f, -0.00342025f, 0.0317724f, 0.0221655f, 0.00536708f, 0.0709982f, 0.0771157f, 0.110328f, 0.0215413f, -0.00537737f, -0.0113961f, 0.0584477f, 0.000181931f, 0.0628471f, -0.00394254f, -0.0764792f, 0.131407f, -0.0899963f, 0.0270626f, -0.0315986f, 0.0392935f, 0.0351313f, -0.0718891f, 0.0237393f, -0.0503026f, 0.0974977f, -0.0451524f, -0.127728f, -0.0215397f, -0.0525875f, -0.0291766f, 0.0275494f, -0.0869515f, 0.00634754f, 0.178436f, -0.0874092f, -0.107764f, -0.0325903f, -0.0638598f, -0.0556118f, -0.0090645f, 0.0725253f, 0.0844809f, 0.0992927f, -0.143285f, -0.0416147f, 0.0686426f, 0.0205201f, -0.184125f, 0.0256464f, 0.166796f, -0.119928f, -0.00605947f, 0.0784457f, 0.285424f, 0.124978f, -0.0544052f, -0.143497f, -0.0157371f, -0.122462f, 0.25789f, 0.202243f, -0.0354807f, -0.277413f, 0.167601f, -0.0688136f, -0.047526f, -0.0363665f, -0.103497f, 0.0351962f, -0.166136f, 0.0891543f, 0.0245743f, -0.188406f, 0.0200952f, 0.124089f, 0.164161f, 0.0880762f, -0.0907854f, -0.133524f, -0.0566516f, 0.0412672f, 0.133444f, -0.278156f, -0.288995f, -0.182365f, 0.0243154f, -0.331878f, 0.157532f, 0.0851254f, -0.0333738f, 0.011283f, -0.328031f, -0.0204129f, -0.0647704f, 0.0322273f, -0.238533f, -0.078365f, -0.168842f, 0.0210886f, 0.0356542f, -0.00789153f, 0.220394f, -0.0397844f, -0.33376f, -0.0676485f, 0.0981919f, -0.250851f, -0.261881f, -0.00731219f, 0.0222684f, -0.137277f, -0.0161299f, -0.0661681f, 0.0223069f, -0.0987457f, -0.0443223f, -0.0563248f, 0.118604f, -0.21096f, -0.106761f, 0.0345171f, -0.188673f, 0.0699016f, 0.150403f, -0.136874f, -0.139644f, 0.291549f, 0.0848205f, -0.0839795f, -0.104376f, 0.293055f, -0.105637f, 0.0949011f, -0.154883f, -0.0946205f, 0.236074f, 0.0478931f, -0.166698f, 0.169898f, 0.0705702f, 0.16999f, -0.126646f, 0.00211296f, 0.0752693f, -0.181352f, 0.151266f, 0.0162372f, 0.236885f, -0.0162937f, -0.183498f, 0.213964f, 0.134337f, -0.213408f, 0.0411873f, 0.046849f, -0.348019f, -0.156864f, -0.254915f, 0.0548079f, -0.153826f, 0.0962386f, -0.028218f, -0.260966f, -0.0970408f, 0.013011f, 0.0489439f, 0.0527315f, -0.0708404f, -0.0962218f, 0.231167f, -0.148734f, -0.112686f, 0.339503f, -0.208979f, -0.0316341f, -0.182154f, -0.0185458f, 0.0888153f, 0.110488f, 0.146989f, -0.0839455f, -0.159321f, -0.0321582f, 0.33154f, -0.314455f, 0.178995f, 0.00957251f, 0.103689f, 0.272899f, 0.158337f, 0.184826f, 0.0885714f, 0.089068f, -0.101234f, 0.197589f, -0.00163397f, 0.163792f, -0.0743328f, 0.117898f, 0.0776132f, 0.0640767f, 0.191664f, -0.149655f, 0.125064f, -0.19771f, -0.206406f, 0.00659386f, -0.0378201f, -0.238779f, -0.254225f, -0.155819f, 0.231851f, -0.25815f, 0.035227f, 0.119804f, -0.204335f, 0.0831053f, 0.172132f, 0.0585559f, 0.0219198f, 0.187883f, -0.0511639f, 0.21566f, 0.0273497f, 0.145951f, -0.0670546f, 0.0125968f, 0.0764965f, -0.0574767f, 0.18907f, -0.158305f, -0.0845295f, 0.120638f, -0.138195f, 0.198833f, -0.226922f, -0.0413189f, 0.267572f, -0.186219f, 0.225046f, -0.105831f, 0.0986308f, 0.120664f, -0.0909183f, -0.0305751f, -0.1702f, 0.195179f, -0.251282f, -0.166375f, 0.159573f, -0.0519198f, -0.191938f, 0.158028f, -0.287794f, 0.0516223f, -0.052844f, -0.116186f, -0.0940664f, -0.0354755f, -0.167794f, -0.0204074f, 0.0300299f, 0.0100231f, -0.278619f, 0.117007f, -0.0474157f, 0.215164f, 0.329625f, -0.10304f, -0.0943812f, 0.0356231f, 0.23999f, -0.111313f, -0.0729358f, -0.094166f, 0.153485f, -0.0458744f, 0.0334594f, 0.202774f, 0.0959297f, -0.102634f, -0.0284461f, 0.215372f, -0.108568f, -0.237076f, 0.0938579f, 0.276261f, -0.106977f, -0.0830916f, -0.106874f, 0.0949424f, -0.254056f, 0.0878051f, -0.0286595f, -0.0438366f, -0.0562987f, 0.132997f, 0.0134728f, -0.0282253f, 0.292606f, 0.103288f, -0.116734f, -0.0738491f, -0.11365f, -0.0568424f, -0.0917282f, 0.130458f, 0.0604209f, -0.21659f, -0.159018f, 0.0629073f, 0.00105149f, -0.00971024f, -0.0395089f, 0.0197363f, -0.151793f, 0.0669715f, 0.169517f, 0.137651f, -0.031961f, -0.0145164f, 0.0557798f, 0.127323f, -0.0732975f, 0.0977444f, -0.195898f, -0.096529f, -0.00412736f, -0.212998f, 0.150468f, 0.109172f, -0.0904168f, -0.0115775f, -0.0376267f, 0.0795806f, -0.230111f, 0.0896944f, 0.0484461f, -0.0417597f, 0.00858499f, -0.317428f, -0.05514f, 0.196093f, -0.0580094f, -0.0859691f, -0.227108f, -0.0339316f, 0.167763f, -0.103936f, -0.0492759f, -0.0921477f, -0.133871f, 0.0545813f, -0.115196f, -0.170529f, 0.0406897f, -0.116775f, -0.0987076f, -0.0692331f, -0.00298726f, 0.0337995f, -0.0850799f, 0.252841f, 0.145071f, -0.237898f, 0.114857f, -0.0786831f, 0.0185394f, -0.00175027f, 0.0486605f, -0.048183f, -0.111868f, -0.204835f, 0.0739289f, -0.1053f, 0.0536133f, 0.170556f, -0.0849688f, -0.0530091f, 0.040368f, -0.16272f, 0.200803f, -0.0673339f, -0.0502536f, 0.151878f, -0.145053f, -0.0237845f, 0.0529504f, -0.297595f, 0.0278263f, -0.195862f, -0.16616f, -0.0351432f, -0.16523f, 0.205069f, -0.0801392f, -0.037527f, 0.220795f, 0.0628524f, 0.213924f, 0.179672f, 0.0905325f, -0.0484498f, 0.36784f, -0.0678234f, 0.00604395f, 0.235798f, 0.298634f, -0.0902001f, 0.00946687f, -0.0760631f, 0.144389f, -0.0923036f, -0.279715f, 0.149917f, -0.00481986f, -0.0821987f, 0.108981f, -0.0572992f, -0.192153f, -0.0235925f, -0.126443f, -0.107613f, 0.135216f, -0.202044f, -0.175145f, 0.0222632f, -0.0720464f, -0.288328f, 0.0266912f, -0.061019f, -0.159913f, -0.358783f, -0.106803f, 0.200648f, -0.0970206f, 0.104263f, 0.00337298f, 0.066799f, -0.111901f, -0.0275084f, -0.191042f, 0.174457f, 0.0505837f, 0.0230039f, 0.299193f, 0.00438969f, -0.279569f, -0.206676f, 0.0063567f, -0.0744425f, 0.0277028f, 0.107046f, -0.158484f, 0.256836f, -0.0948856f, -0.0389175f, -0.0739942f, 0.029435f, -0.156166f, -0.329168f, 0.119287f, 0.191841f, 0.121493f, 0.155025f, -0.0999044f, 0.0907666f, -0.0942855f, 0.179742f, 0.124244f, -0.00165838f, -0.200105f, -0.119474f, -0.211497f, -0.0135486f, 0.0816121f, 0.0186282f, 0.0857872f, 0.0363457f, -0.0596434f, 0.202586f, -0.138606f, -0.0194363f, 0.136255f, 0.100148f, 0.144734f, -0.0375452f, -0.168462f, -0.279021f, -0.184336f, -0.130521f, -0.298972f, -0.105901f, 0.201199f, -0.074659f, -0.00906547f, -0.0978511f, -0.0598773f, 0.148116f, 0.101672f, 0.0574525f, -0.230089f, 0.0725044f, 0.0673015f, 0.0256061f, 0.312887f, -0.10975f, 0.0265382f, 0.0200595f, 0.0592405f, -0.070751f, -0.0570336f, 0.0400042f, -0.0362084f, 0.0763859f, 0.132903f, -0.164886f, 0.243443f, -0.0746067f, 0.111987f, -0.320279f, 0.131867f, -0.0164461f, 0.00983903f, 0.166567f, -0.211087f, -0.0221409f, -0.121649f, 0.183092f, 0.0737146f, -0.0993803f, 0.223062f, 0.134911f, -0.0518499f, -0.0591148f, 0.107224f, 0.195336f, -0.156462f, 0.0605844f, 0.246827f, -0.101704f, -0.0445777f, -0.121757f, 0.0503802f, -0.190779f, -0.18282f, -0.125608f, -0.129361f, -0.0565244f, -0.0883035f, 0.180682f, -0.116927f, 0.0526731f, 0.0230187f, 0.0417602f, 0.0321556f, 0.250869f, -0.0204609f, 0.0574206f, 0.105828f, 0.114082f, -0.043851f, 0.0396144f, -0.0389548f, 0.206708f, 0.188191f, -0.0635729f, 0.143119f, -0.0205543f, -0.0138097f, -0.0491278f, -0.0442013f, -0.10429f, -0.26394f, 0.258883f, 0.242698f, -0.0672954f, 0.146907f, -0.292014f, 0.0205236f, 0.0371709f, 0.218512f, -0.207566f, -0.132511f, -0.0868955f, -0.202136f, -0.0126371f, -0.264918f, -0.180895f, -0.166683f, -0.149816f, 0.181837f, -0.00599295f, 0.0783144f, 0.0832313f, -0.184005f, 0.0021863f, -0.198396f, 0.0450486f, -0.137623f, -0.165464f, -0.0710921f, -0.0962729f, 0.273545f, -0.00706581f, 0.244507f, -0.110571f, 0.100697f, -0.219109f, -0.0988326f, 0.120509f, 0.0476071f, 0.0445025f, 0.0982255f, 0.0206022f, -0.00172487f, -0.148054f, -0.0176777f, 0.140289f, 0.171979f, -0.216811f, 0.00859533f, -0.0695299f, -0.0934405f, 0.322962f, 0.0944716f, -0.0382832f, -0.0942702f, -0.0301482f, -0.122891f, 0.176848f, 0.0840325f, 0.0195194f, 0.0266658f, 0.0481065f, -0.139953f, 0.0687789f, -0.0706886f, 0.0591817f, -0.111283f, -0.184086f, 0.292532f, 0.18451f, -0.0736735f, 0.0891742f, -0.268332f, 0.147187f, -0.0116671f, 0.0161802f, -0.0167879f, -0.0866014f, -0.118128f, -0.253431f, 0.00167561f, 0.279882f, 0.0388f, 0.215474f, 0.155929f, -0.183754f, -0.0900901f, -0.20564f, 0.20878f, 0.242227f, -0.0778474f, -0.0283968f, 0.0475844f, -0.245302f, 0.146516f, -0.235814f, -0.0505417f, -0.158145f, -0.0274982f, 0.0827194f, -0.355161f, 0.144612f, -0.147553f, -0.0946157f, 0.0439859f, 0.174521f, -0.3035f, -0.00315858f, 0.160705f, 0.102211f, 0.140342f, 0.0541922f, 0.192171f, 0.145795f, 0.114101f, -0.111963f, -0.0127958f, -0.194032f, -0.00409252f, -0.292647f, -0.0228118f, -0.0467759f, -0.371366f, 0.000812922f, 0.0245691f, 0.0581168f, 0.0417413f, -0.010284f, 0.191265f, -0.00864228f, 0.212784f, -0.102357f, -0.0085479f, 0.10108f, 0.237448f, -0.000713617f, -0.058662f, 0.0630335f, 0.0692787f, -0.0339815f, -0.120936f, -0.0715317f, 0.0917368f, 0.292599f, 0.042312f, -0.124955f, 0.00664164f, 0.162658f, 0.0152106f, 0.148533f, 0.0395615f, 0.283783f, -0.244616f, 0.081727f, 0.00277195f, 0.17166f, 0.139565f, -0.0538156f, -0.127499f, -0.147055f, -0.021096f, -0.0545469f, 0.14813f, -0.148584f, -0.0826961f, 0.164366f, -0.0157433f, 0.177482f, 0.106814f, 0.130627f, -0.113117f, -0.212257f, 0.0921636f, 0.0846196f, -0.131387f, 0.232006f, -0.288991f, -0.0934418f, 0.0963452f, 0.111899f, -0.111645f, -0.0475491f, 0.207986f, 0.174887f, -0.0751887f, 0.0468093f, -0.159031f, 0.166523f, -0.101357f, 0.057079f, -0.0418302f, 0.0505931f, -0.025431f, -0.280067f, 0.267556f, -0.179367f, 0.0872983f, 0.0803487f, 0.176348f, -0.128971f, -0.266564f, 0.0510406f, -0.170081f, 0.100945f, -0.0960286f, -0.150727f, -0.0650393f, 0.200585f, 0.0082598f, -0.0523969f, 0.0242403f, -0.161941f, 0.0705741f, -0.221186f, 0.0384282f, 0.210436f, -0.049133f, -0.168345f, -0.23861f, 0.0584597f, -0.0732335f, 0.26585f, -0.0916502f, 0.0147976f, 0.0292919f, -0.164111f, -0.232879f, -0.134197f, -0.0783445f, -0.0125803f, -0.11827f, -0.0639137f, 0.230673f, -0.25113f, -0.0799337f, -0.05333f, -0.210176f, -0.0635287f, 0.00536271f, 0.0851208f, -0.0319073f, -0.104804f, -0.150705f, 0.00646028f, 0.154316f, -0.0424009f, -0.150529f, -0.0790852f, -0.24151f, -0.210798f, -0.00383937f, 0.0963083f, -0.051492f, -0.0641675f, 0.0538462f, 0.231254f, -0.0296402f, -0.121276f, 0.0598482f, -0.253323f, -0.235825f, -0.0174066f, -0.0612518f, -0.18872f, -0.0018372f, -0.190281f, -0.254084f, -0.0985212f, -0.128208f, 0.0952545f, -0.0630212f, 0.143751f, -0.190089f, 0.0580571f, -0.109956f, -0.0427879f, -0.0334911f, -0.087085f, 0.107583f, 0.128128f, 0.0832403f, 0.114557f, 0.0640212f, -0.0665054f, 0.110431f, 0.0051029f, -0.00888668f, -0.069536f, 0.0563389f, 0.138805f, 0.0690019f, 0.0184963f, 0.221311f, -0.00196817f, 0.133956f, 0.0455447f, 0.0746955f, -0.066103f, 0.201059f, -0.0998143f, -0.101695f, -0.203316f, -0.0685283f, -0.0478979f, -0.0671207f, -0.23874f, 0.0267852f, -0.160718f, -0.118752f, 0.229576f, 0.059249f, -0.0166331f, 0.28306f, -0.0912268f, 0.202595f, 0.0787157f, -0.0391939f, 0.0487074f, -0.215377f, 0.146696f, 0.0428365f, 0.0692239f, -0.0582407f, 0.127282f, -0.107022f, 0.103021f, -0.0570538f, 0.0967376f, 0.120615f, -0.0213948f, -0.0810412f, 0.250618f, -0.195846f, -0.0450166f, 0.0483912f, -0.187297f, 0.00838976f, -0.0353768f, -0.115602f, 0.0815498f, -0.170522f, -0.138456f, -0.171169f, 0.29121f, -0.152123f, -0.0381997f, -0.0260082f, -0.055059f, -0.0565412f, 0.2063f, 0.160458f, -0.223601f, -0.0534131f, -0.178152f, -0.31121f, 0.0230703f, -0.245836f, -0.0636644f, -0.178866f, 0.0755059f, -0.175104f, -0.112512f, 0.0331107f, -0.0574742f, 0.144634f, -0.0555235f, 0.0429518f, 0.0788085f, -0.200021f, 0.0205946f, 0.0581191f, 0.105747f, 0.12127f, 0.115314f, -0.00588524f, 0.199121f, -0.067645f, -0.00425119f, 0.197422f, 0.164998f, -0.0958805f, 0.0951565f, -0.169752f, -0.00103422f, -0.0567098f, 0.0156799f, 0.00633091f, -0.113134f, -0.0708922f, -0.0748991f, 0.182665f, -0.0458917f, -0.039907f, 0.0841542f, -0.08448f, -0.215454f, -0.211307f, 0.0822565f, 0.160616f, -0.26391f, 0.136276f, -0.186462f, 0.0424544f, 0.0973202f, -0.0801472f, -0.0259258f, -0.298507f, -0.208139f, 0.165024f, -0.0422264f, 0.0155398f, -0.0901256f, -0.122804f, -0.0370365f, -0.072913f, 0.0767171f, 0.180787f, 0.036965f, 0.326064f, -0.0153967f, -0.157313f, 0.0785892f, -0.209933f, 0.0052515f, 0.209669f, 0.118709f, -0.169201f, 0.11133f, -0.0321127f, 0.285077f, 0.0146672f, 0.057918f, -0.101048f, 0.104747f, -0.0197402f, -0.0461159f, 0.0626203f, -0.0934307f, -0.0383512f, 0.092326f, -0.000824995f, 0.212161f, 0.0195528f, -0.00520558f, 0.240688f, -0.0287953f, -0.190703f, -0.037198f, -0.0178165f, -0.0956238f, -0.174592f, -0.0357532f, -0.148505f, 0.340615f, 0.146119f, 0.0980721f, -0.179913f, -0.100317f, 0.0311195f, 0.136153f, -0.0306267f, -0.00299297f, 0.0697029f, -0.187503f, 0.23715f, -0.0158875f, -0.0789165f, -0.0116745f, 0.159767f, -0.143415f, 0.100458f, 0.0629951f, -0.0616746f, 0.0777195f, 0.123513f, -0.00789031f, -0.176943f, 0.0643356f, 0.163238f, -0.0695239f, 0.0484484f, -0.0194979f, -0.0649907f, -0.0285157f, 0.179421f, 0.161605f, -0.100853f, -0.122681f, 0.173247f, -0.0259403f, 0.106877f, 0.0950871f, -0.0142289f, 0.19246f, 0.0230298f, 0.0774865f, 0.075834f, -0.0688211f, -0.00229801f, -0.138503f, 0.227727f, -0.0681482f, -0.139537f, 0.067227f, 0.00385019f, 0.0439782f, -0.0600494f, 0.000493002f, 0.114526f, -0.0452783f, 0.103592f, -0.11431f, -0.0970305f, -0.249188f, 0.00637942f, -0.0875492f, -0.0299692f, -0.203161f, -0.172637f, -0.0509406f, -0.118158f, -0.139703f, 0.0121094f, 0.159047f, -0.0110066f, -0.0623423f, 0.165151f, -0.085846f, 0.0157988f, 0.152901f, -0.0306015f, 0.0754814f, -0.249378f, 0.0569897f, -0.0279879f, -0.0310373f, -0.0688381f, 0.125766f, 0.175116f, 0.064095f, -0.00215593f, 0.330433f, -0.135356f, 0.106143f, -0.100133f, 0.0311651f, -0.0583303f, -0.188033f, 0.0544873f, -0.0844439f, 0.0481114f, 0.110922f, 0.00829134f, 0.0229304f, 0.0319627f, -0.05368f, 0.0450012f, -0.0880564f, -0.126897f, 0.0873014f, 0.129855f, 0.140141f, -0.0443811f, 0.0598084f, -0.0230671f, -0.0463452f, 0.0682414f, 0.0292483f, 0.0350382f, 0.110351f, 0.0308917f, 0.227348f, 0.114969f, 0.0448855f, -0.00305119f, 0.0291076f, 0.0285477f, -0.00122867f, -0.0247951f, 0.0990232f, -0.023245f, -0.115369f, -0.0558978f, 0.0440511f, -0.0197318f, -0.0167452f, -0.0416231f, -0.0653236f, 0.159609f, -0.0484813f, -0.0193314f, -0.036998f, -0.141567f, -0.234164f, 0.104438f, 0.22657f, -0.0691924f, -0.190376f, -0.0560593f, 0.125544f, 0.00714313f, 0.0363692f, 0.0374549f, 0.0300426f, 0.0956119f, -0.0577626f, 0.0311546f, -0.154035f, 0.117174f, -0.155405f, -0.118271f, 0.0380206f, -0.157827f, -0.121372f, 0.101298f, -0.0136204f, -0.0924393f, 0.190627f, 0.075182f, -0.0940201f, 0.0995219f, -0.00476706f, 0.01358f, 0.171104f, -0.0155958f, -0.181371f, -0.0748836f, 0.0799757f, 0.132899f, 0.0501291f, 0.012425f, 0.00874816f, 0.0749641f, -0.0443173f, -0.0734006f, -0.0488566f, -0.0395f, 0.0752565f, 0.156063f, -0.111717f, -0.214138f, -0.0416504f, 0.0146332f, 0.0773683f, 0.000698995f, -0.0632329f, 0.0189836f, -0.242579f, -0.0286996f, 0.288232f, 0.0927548f, 0.0778801f, -0.0924437f, 0.0916904f, -0.0698424f, 0.205422f, 0.0207667f, -0.0450439f, -0.0660704f, -0.101705f, -0.00316614f, -0.0353396f, 0.108369f, -0.0711379f, -0.132278f, -0.0442365f, -0.0257673f, 0.00166155f, -0.215254f, -0.148218f, 0.0330107f, -0.0373637f, 0.0238373f, -0.0291474f, 0.106622f, 0.032229f, -0.0988652f, -0.132189f, 0.178811f, -0.222948f, -0.147006f, 0.0616244f, -0.0146328f, 0.186297f, 0.130956f, -0.0266133f, 0.0116596f, -0.0833993f, -0.233244f, -0.112778f, -0.0978733f, 0.110991f, -0.132673f, 0.153868f, 0.0321458f, -0.0395343f, -0.122926f, 0.0675422f, -0.241466f, -0.0528483f, 0.0183746f, -0.109402f, -0.0728518f, -0.143615f, -0.112201f, -0.0894158f, -0.0833611f, -0.00157786f, -0.0882301f, -0.0295434f, 0.10056f, -0.0126655f, 0.00759608f, 0.135763f, -0.0666381f, 0.0807146f, 0.14619f, -0.00970091f, 0.0282257f, -0.113968f, 0.13619f, -0.058796f, 0.00216534f, 0.193806f, -0.20871f, 0.159698f, -0.0693494f, -0.0643537f, -0.093884f, -0.00616869f, -0.0490268f, -0.204479f, -0.0378387f, 0.105144f, -0.108458f, -0.0350944f, -0.00316391f, 0.122996f, -0.0155349f, -0.157744f, 0.000864632f, -0.173332f, -0.206079f, 0.0370823f, 0.184234f, -0.187761f, 0.154257f, -0.142486f, -0.0411744f, 0.0873788f, 0.0464279f, -0.0472158f, -0.140266f, 0.193013f, -0.042026f, 0.171309f, 0.0840359f, -0.188128f, -0.0563839f, -0.160488f, 0.12823f, 0.0459984f, 0.06786f, 0.217386f, 0.23033f, -0.0520306f, 0.0341521f, -0.0246717f, -0.0434063f, 0.00857989f, 0.0972544f, 0.0679344f, 0.0668195f, 0.122686f, 0.0416275f, 0.259556f, -0.0549426f, -0.0171693f, 0.0198152f, -0.148376f, 0.0711785f, -0.101851f, 0.135357f, 0.0397899f, -0.183847f, 0.0953778f, -0.0951118f, -0.0268456f, 0.167829f, -0.0538099f, 0.0633252f, -0.0917018f, -0.0404959f, -0.232441f, -0.0261176f, -0.163503f, -0.0116106f, -0.0769981f, 0.152592f, 0.151022f, 0.0810039f, 0.0464183f, -0.0743602f, 0.204798f, 0.0868744f, 0.145977f, 0.0523607f, -0.068519f, 0.0836069f, 0.00219079f, 0.0815725f, -0.259092f, 0.05108f, 0.108394f, -0.231951f, -0.0535037f, 0.0110567f, 0.100627f, -0.0911983f, -0.21034f, -0.107343f, -0.00962277f, -0.0268862f, -0.144408f, 0.106145f, 0.170562f, -0.111914f, 0.181799f, -0.221377f, 0.136694f, -0.107175f, -0.0439502f, 0.317026f, -0.0603461f, -0.15995f, -0.0446988f, 0.00860168f, 0.167885f, 0.0697489f, 0.0330673f, 0.0279489f, -0.147843f, -0.094283f, -0.0978011f, 0.0508978f, 0.205713f, -0.268657f, -0.118678f, -0.0947815f, -0.0928944f, -0.0249088f, -0.0493313f, 0.0398049f, 0.0654205f, 0.0876169f, 0.0332889f, 0.122845f, 0.155012f, 0.100994f, -0.0706485f, 0.0507939f, 0.0398862f, -0.0951649f, 0.00316748f, 0.138405f, 0.0766244f, 0.125288f, -0.198004f, 0.114727f, -0.147081f, 0.0017001f, -0.060766f, -0.00284105f, -0.00144907f, -0.293642f, -0.13719f, 0.23959f, 0.198074f, -0.0528809f, 0.110043f, -0.0881369f, 0.142793f, -0.0474605f, 0.195225f, -0.142661f, 0.00099095f, 0.0258109f, 0.183967f, 0.10243f, -0.256631f, -0.0556004f, 0.151644f, -0.184697f, -0.14056f, 0.141244f, -0.109492f, -0.248438f, 0.139074f, 0.17925f, -0.00373216f, 0.105872f, 0.0243831f, -0.150405f, -0.141462f, -0.0390697f, 0.203373f, 0.0370702f, -0.0219311f, -0.0501992f, -0.0653607f, 0.0417092f, -0.00453547f, 0.0876853f, 0.10167f, 0.0802208f, 0.0940488f, -0.309012f, 0.168778f, 0.0765338f, 0.0158863f, 0.0274539f, -0.0814793f, -0.145459f, 0.168705f, 0.199303f, 0.205878f, 0.0159309f, 0.0309375f, -0.169754f, 0.0628049f, -0.104831f, -0.178835f, -0.0720747f, -0.0124146f, -0.114645f, 0.063374f, 0.0706483f, 0.00738066f, -0.0395917f, -0.0529422f, 0.0210208f, -0.139073f, -0.125914f, 0.150252f, -0.0942379f, -0.159806f, -0.0772452f, 0.017924f, 0.0395779f, 0.19472f, 0.0921993f, -0.0835752f, 0.0185701f, -0.129466f, -0.124997f, 0.0146055f, 0.204617f, -0.042803f, 0.0187766f, -0.207523f, -0.304526f, 0.157992f, -0.15185f, -0.198125f, 0.0400359f, 0.113678f, -0.109689f, 0.0470538f, 0.102987f, 0.264877f, -0.151204f, -0.0349649f, 0.0816247f, -0.0535843f, -0.00538113f, 0.0408826f, -0.0434633f, -0.0188555f, -0.0799452f, 0.0744558f, 0.0863209f, -0.0391076f, -0.156235f, 0.046869f, 0.190841f, 0.226297f, 0.182812f, -0.166635f, -0.169743f, -0.152963f, 0.0861532f, -0.0621801f, -0.136112f, -0.226068f, 0.115348f, 0.0708943f, -0.0972067f, -0.0535878f, -0.0930089f, 0.0920434f, 0.0877718f, -0.159212f, 0.124133f, -0.0359383f, 0.0692385f, 0.00302971f, 0.0412785f, 0.155621f, 0.17802f, -0.0740086f, 0.241543f, 0.0694457f, 0.0958412f, 0.0716056f, -0.0643495f, -0.130229f, 0.334361f, 0.161425f, -0.133618f, 0.0106252f, 0.00942374f, 0.00205903f, -0.00857117f, -0.228903f, -0.212274f, 0.218811f, 0.126089f, -0.00667912f, 0.335949f, -0.0780349f, 0.13912f, -0.12485f, -0.129735f, 0.122462f, 0.0389254f, -0.0450626f, -0.102934f, 0.0477856f, 0.0951457f, 0.0827908f, 0.0263911f, 0.012364f, 0.00379686f, 0.0456859f, 0.212315f, -0.143306f, -0.21281f, 0.334205f, -0.0150638f, 0.348048f, 0.106638f, -0.148398f, 0.0845201f, 0.360291f, -0.0893389f, 0.121993f, 0.155516f, 0.119468f, 0.0056596f, -0.213567f, 0.204646f, 0.266313f, -0.11209f, 0.163826f, 0.0584083f, 0.269312f, 0.209031f, -0.0637224f, 0.0269762f, 0.160127f, -0.0796105f, 0.0871272f, -0.0460904f, -0.000266228f, 0.115283f, 0.0117309f, 0.24109f, 0.0188805f, -0.0319799f, 0.21052f, 0.333764f, -0.295075f, -0.089085f, 0.191047f, -0.200303f, -0.0741347f, 0.092119f, 0.0578419f, 0.0196557f, -0.123919f, -0.14871f, 0.0194578f, 0.0991302f, -0.314665f, -0.0452453f, 0.27161f, 0.0932297f, -0.0826961f, -0.0184156f, -0.0310367f, -0.189699f, 0.0909993f, 0.243787f, 0.177395f, 0.134875f, -0.176748f, 0.118057f, 0.223928f, -0.0784048f, 0.0717927f, 0.411928f, -0.0582989f, 0.0308417f, -0.000215812f, 0.223335f, 0.136759f, 0.12485f, 0.270239f, -0.0869686f, 0.0034946f, -0.0127497f, 0.0264056f, 0.0266723f, -0.0452214f, 0.111873f, 0.0115362f, -0.238182f, 0.125168f, -0.132431f, 0.141257f, -0.00127671f, 0.0674204f, -0.159379f, -0.0575817f, -0.244875f, -0.306753f, 0.39332f, -0.379285f, 0.043386f, 0.0662112f, 0.131456f, 0.321045f, -0.250201f, -0.262497f, 0.0923969f, 0.2908f, 0.173041f, 0.137592f, -0.0628786f, -0.0974311f, -0.000772985f, 0.222943f, -0.0667221f, -0.179864f, -0.287067f, 0.285412f, 0.266902f, -0.0648799f, -0.155809f, 0.155688f, -0.0319217f, 0.14898f, -0.0743975f, -0.0112207f, -0.0367533f, -0.0715343f, 0.116554f, 0.210506f, -0.0159834f, 0.19138f, 0.212633f, -0.156487f, -0.111664f, -0.156408f, 0.310567f, -0.120203f, 0.217494f, 0.00309377f, 0.120838f, -0.0107034f, 0.11773f, -0.13133f, 0.061087f, 0.241329f, -0.302786f, -0.0169618f, -0.286011f, -0.0794201f, -0.0255915f, 0.0614444f, 0.0405898f, 0.093126f, -0.102229f, 0.000563069f, -0.0864568f, 0.106428f, 0.124744f, 0.243079f, 0.0791354f, 0.118235f, 0.17594f, -0.0446628f, 0.270686f, -0.164075f, -0.370712f, -0.0872818f, 0.0843848f, 0.0986686f, 0.0272129f, -0.0457466f, -0.0200051f, -0.0687236f, -0.0481928f, -0.321522f, -0.0975396f, -0.406163f, -0.132061f, -0.208569f, -0.0156885f, 0.023262f, -0.0516604f, 0.107188f, -0.312872f, -0.185397f, 0.0702135f, 0.341109f, 0.257742f, 0.113822f, -0.0615313f, 0.28627f, -0.169924f, 0.22121f, -0.154745f, -0.118075f, -0.0730975f, 0.163251f, -0.0448802f, -0.078949f, 0.234158f, 0.0821219f, 0.350804f, -0.315534f, 0.00448838f, -0.166465f, -0.00775836f, 0.0783302f, -0.0420734f, -0.166436f, -0.272419f, -0.1963f, 0.161833f, 0.268666f, 0.330872f, -0.416188f, -0.133553f, 0.0754103f, 0.38631f, 0.336684f, 0.0821716f, 0.013958f, 0.158123f, -0.0702129f, 0.102615f, -0.384241f, -0.0266115f, -0.0712518f, -0.0337726f, 0.147715f, 0.176461f, 0.0766194f, -0.240514f, 0.0579987f, -0.025161f, -0.133683f, 0.156733f, 0.0174516f, -0.061788f, -0.0561875f, -0.139622f, 0.271308f, -0.0425696f, 0.277099f, 0.102186f, 0.159462f, 0.130401f, 0.207576f, -0.0703969f, -0.218149f, 0.0244652f, 0.125702f, 0.0163614f, 0.0869484f, -0.0190932f, 0.131416f, -0.0204398f, -0.134832f, 0.000580359f, -0.221074f, 0.035722f, -0.0876274f, 0.127875f, 0.0344606f, 0.00531522f, 0.072062f, 0.293742f, -0.0581864f, 0.0946519f, 0.14504f, 0.204083f, -0.126414f, -0.0709564f, 0.247624f, -0.297324f, 0.201325f, 0.0962405f, -0.246636f, 0.0141435f, 0.00820695f, -0.0587292f, 0.0489638f, -0.0357163f, 0.0484825f, 0.361352f, -0.0253298f, 0.105149f, 0.0759561f, 0.128869f, 0.164282f, 0.175996f, 0.237738f, 0.198038f, 0.304935f, -0.259115f, -0.0421992f, -0.0176051f, 0.135176f, -0.122116f, -0.113864f, 0.0283345f, -0.115366f, 0.3234f, 0.105693f, -0.325314f, 0.227538f, 0.166032f, 0.170541f, 0.0101914f, -0.121068f, -0.231199f, -0.0626829f, -0.187546f, 0.084903f, 0.128041f, 0.136649f, -0.203132f, 0.242135f, 0.236652f, 0.122241f, 0.0660337f, -0.175408f, -0.0838314f, -0.143642f, 0.0717097f, 0.178703f, 0.0254694f, -0.205354f, 0.212097f, -0.221318f, -0.110122f, -0.169791f, 0.1261f, -0.361205f, -0.199776f, 0.0397376f, -0.0491861f, 0.103071f, 0.0567845f, -0.13274f, 0.0903776f, 0.142668f, -0.117319f, -0.0834851f, 0.397567f, -0.044454f, 0.00235761f, -0.30464f, 0.135772f, 0.248516f, -0.30111f, -0.0674874f, -0.27915f, -0.156747f, -0.225165f, 0.110934f, 0.0519437f, -0.0561713f, 0.0103486f, 0.098641f, 0.292207f, -0.037454f, 0.27054f, -0.230864f, 0.108791f, -0.233275f, 0.115953f, 0.216135f, 0.033922f, 0.254613f, 0.0438698f, -0.0987291f, -0.227834f, 0.0561857f, 0.179909f, -0.0230547f, -0.273887f, -0.293822f, 0.0841382f, 0.243145f, -0.132315f, 0.120717f, -0.179904f, -0.0292899f, 0.0592324f, 0.224402f, -0.0844688f, 0.032797f, 0.0459936f, -0.167473f, -0.172775f, -0.0677033f, 0.118114f, -0.0648097f, 0.305295f, 0.124735f, -0.0592195f, -0.153575f, 0.070038f, -0.0386939f, 0.0922337f, -0.0306631f, -0.0766571f, 0.220192f, -0.0355637f, -0.0937118f, -0.186181f, 0.250452f, 0.131948f, 0.164497f, -0.155442f, 0.2603f, 0.251729f, -0.0938684f, -0.044645f, -0.0151985f, -0.269944f, -0.0641882f, 0.223144f, 0.209579f, -0.178367f, -0.0466756f, 0.364614f, 0.147927f, -0.00553606f, -0.177013f, -0.302341f, 0.300303f, 0.136235f, -0.0794888f, 0.135929f, 0.0369487f, -0.236767f, -0.0170479f, 0.0731222f, 0.138636f, 0.0597187f, 0.036555f, 0.154314f, -0.243117f, -0.275956f, -0.151961f, 0.030638f, -0.173812f, -0.120079f, 0.313327f, -0.0992985f, 0.0817294f, -0.255897f, -0.262248f, 0.0474283f, -0.279508f, -0.0263125f, 0.0681575f, -0.149897f, -0.405251f, -0.168749f, 0.09633f, -0.255468f, -0.133936f, 0.107768f, -0.0464809f, 0.162509f, -0.0871978f, -0.11471f, -0.275447f, -0.210678f, 0.099547f, -0.114438f, -0.048782f, -0.169034f, -0.17218f, 0.064711f, -0.0385188f, -0.102375f, -0.236685f, -0.0628232f, -0.163885f, -0.0193122f, 0.114535f, 0.00709723f, -0.0797472f, -0.166753f, 0.0841985f, 0.0684535f, 0.0560892f, 0.114397f, -0.0183192f, 0.00507358f, -0.102951f, 0.201561f, -0.206099f, -0.0460009f, 0.0860696f, -0.148373f, 0.116406f, 0.067116f, -0.00923107f, 0.0860435f, -0.138504f, 0.124313f, -0.0316182f, 0.0295639f, 0.00608528f, -0.0342333f, -0.026629f, 0.141888f, 0.0440976f, -0.00912123f, -0.19098f, -0.143537f, 0.0359568f, -0.0255208f, -0.0273419f, 0.17341f, -0.0581611f, 0.0114289f, -0.0152074f, -0.108058f, 0.0668715f, 0.17332f, 0.132857f, 0.25292f, 0.0384204f, -0.139185f, -0.00601079f, -0.150407f, 0.116746f, 0.0799888f, 0.183577f, 0.200482f, -0.117091f, -0.131601f, -0.141662f, -0.14602f, 0.030079f, 0.139666f, 0.111671f, -0.133007f, 0.0986226f, 0.0985824f, 0.0697727f, 0.0453317f, -0.112107f, 0.00740416f, 0.171811f, 0.1359f, -0.0831839f, -0.184889f, 0.153216f, 0.0390227f, -0.000811211f, -0.0216792f, -0.0497102f, -0.0358276f, -0.0925422f, 0.071102f, 0.0548827f, -0.0643526f, 0.0391256f, 0.152083f, -0.0465547f, 0.183572f, -0.0511993f, 0.0168251f, -0.00252452f, 0.118756f, 0.0367339f, -0.11395f, 0.03092f, -0.0475774f, 0.0519023f, 0.134134f, 0.0708758f, 0.0725228f, 0.0250569f, 0.00941041f, -0.0752515f, -0.0484263f, 0.0873364f, -0.111088f, -0.088331f, -0.0758252f, 0.134153f, -0.193745f, -0.0535702f, 0.10517f, -0.0783394f, 0.0376373f, 0.0866162f, -0.190702f, 0.107422f, -0.0105936f, 0.00918029f, -0.032531f, -0.13252f, -0.0593505f, 0.16132f, 0.143583f, 0.0505299f, 0.0105081f, 0.0634489f, 0.168058f, -0.00668203f, -0.0917455f, -0.101712f, -0.0647853f, -0.0790083f, 0.100973f, 0.232618f, -0.117927f, 0.0134442f, 0.0680973f, 0.224476f, -0.00423525f, 0.204708f, -0.0468981f, -0.00963722f, 0.0147986f, -0.0692811f, -0.000946731f, 0.166206f, 0.0877361f, 0.0792686f, 0.0748179f, -0.00947171f, -0.0836149f, -0.144468f, -0.142147f, 0.0598595f, 0.0767712f, -0.0729457f, 0.131262f, -0.060207f, -0.106818f, -0.0240537f, -0.116184f, 0.0834456f, -0.04037f, 0.140412f, -0.106161f, 0.0847353f, 0.110856f, 0.0526605f, -0.0589679f, 0.0973307f, 0.0683979f, -0.220788f, -0.0689553f, 0.164989f, -0.0992946f, 0.106542f, 0.141724f, -0.00118788f, -0.097124f, 0.00294857f, 0.0895059f, 0.063572f, -0.0441477f, 0.0315451f, -0.00859043f, 0.186009f, 0.131306f, 0.0123969f, 0.0871435f, 0.0106014f, -0.0135171f, -0.0598122f, -0.081985f, 0.223758f, -0.000667712f, -0.0969543f, -0.0878635f, -0.0918281f, 0.130589f, -0.0504623f, -0.00313128f, -0.0294507f, -0.089509f, -0.0726517f, -5.69943e-05f, -0.00132945f, 0.113891f, -0.0900017f, 0.168213f, 0.0586243f, 0.00071927f, -0.10717f, 0.0489182f, -0.0625239f, 0.0658789f, 0.0270899f, -0.0830816f, 0.11993f, -0.0536103f, 0.0376319f, 0.0323722f, 0.157237f, -0.0373008f, -0.13686f, 0.00414072f, 0.160718f, 0.130026f, 0.0454242f, -0.153592f, -0.0210648f, 0.0931972f, -0.151144f, 0.0221053f, -0.107319f, -0.159499f, -0.0282408f, -0.0503123f, 0.181434f, -0.0189937f, 0.112246f, -0.199512f, 0.0351673f, -0.03342f, 0.0650339f, -0.121864f, -0.00313474f, -0.127308f, -0.174944f, 0.0370411f, 0.183382f, 0.197502f, -0.0208653f, -0.0912516f, -0.0791003f, 0.192802f, -0.0372127f, -0.0934089f, -0.00786737f, -0.0444981f, 0.153706f, 0.0456558f, -0.0123776f, -0.0216876f, -0.094183f, 0.0373681f, -0.089504f, -0.0665862f, 0.160062f, -0.0937661f, -0.0611911f, -0.198789f, -0.00187326f, -0.0458674f, -0.0992694f, -0.0751675f, -0.0565035f, -0.104299f, 0.0333381f, -0.103669f, -0.135932f, 0.0338755f, -0.00624168f, 0.0926046f, -0.0298794f, -0.0345357f, 0.197841f, -0.061881f, -0.00106668f, 0.0668126f, -0.0704101f, -0.128543f, -0.0619692f, -0.0159472f, 0.0396576f, 0.0361818f, 0.0534844f, -0.0335476f, 0.00881818f, -0.014614f, 0.0610455f, 0.0564565f, 0.200486f, -0.0192602f, -0.0479068f, -0.0380426f, 0.0220227f, 0.0227559f, 0.0448066f, 0.0190443f, 0.0840701f, -0.0492392f, 0.0196029f, 0.0569163f, 0.0900702f, -0.00427307f, 0.195653f, -0.00381667f, -0.000337512f, 0.0369774f, -0.070095f, -0.147586f, -0.0250277f, -0.107541f, -0.222526f, 0.136668f, -0.0800923f, -0.0580991f, 0.126386f, -0.0579742f, 0.181316f, -0.052307f, -0.171488f, 0.00789463f, 0.0315844f, 0.0438527f, 0.152712f, 0.100019f, -0.0514082f, 0.029587f, -0.0042786f, -0.0101303f, 0.0854348f, -0.0291147f, -0.148311f, 0.0791581f, -0.0817965f, -0.171412f, 0.159449f, -0.0181191f, 0.0826452f, -0.0383869f, 0.142023f, -0.0260604f, -0.0454753f, 0.141227f, 0.139217f, 0.0179185f, 0.046448f, 0.184338f, -0.135964f, -0.0351971f, -0.0886574f, -0.0129663f, -0.135265f, -0.0333122f, 0.0994835f, -0.0245923f, -0.0129638f, -0.136017f, -0.0462567f, 0.0874661f, 0.037149f, 0.20516f, 0.0421979f, 0.0358054f, -0.0842265f, 0.0769092f, -0.109354f, 0.100099f, -0.0790814f, 0.0974264f, -0.104373f, 0.0932189f, 0.146536f, -0.1599f, -0.0504613f, -0.148333f, -0.0429581f, 0.134427f, -0.00667559f, -0.0355473f, -0.0655753f, 0.152339f, -0.155756f, 0.0773236f, -0.02285f, 0.108919f, -0.178147f, -0.0446996f, 0.0754597f, 0.0239106f, 0.16547f, -0.0363029f, 0.0702426f, 0.0948949f, -0.0578571f, -0.0398102f, 0.0489517f, -0.178456f, -0.0155132f, 0.00474975f, 0.122271f, -0.136863f, -0.101677f, 0.00358298f, 0.0538924f, 0.0210358f, -0.072415f, -0.0225252f, 0.153515f, 0.13672f, 0.0329772f, 0.0523396f, -0.00820083f, 0.0307827f, -0.0915364f, 0.0676564f, 0.0448145f, -0.066137f, 0.14237f, 0.166687f, -0.159015f, -0.270639f, -0.0534953f, 0.0398285f, 0.175058f, 0.0743294f, -0.0412965f, -0.145299f, -0.00311283f, 0.0295906f, -0.0906803f, -0.0934655f, 0.08852f, 0.0922381f, -0.0706829f, 0.0237752f, 0.129097f, 0.0777549f, 0.0496929f, -0.092716f, 0.0755502f, -0.208273f, 0.0788255f, -0.0026094f, -0.0502178f, 0.132304f, 0.00378106f, 0.00888802f, 0.0341231f, -0.138074f, -0.130251f, -0.0351743f, -0.0359758f, 0.104903f, 0.148922f, -0.0515454f, 0.0279189f, -0.0888f, -0.117207f, 0.153204f, 0.027219f, 0.0626578f, 0.0248347f, -0.0651041f, 0.112004f, 0.0297099f, 0.0506644f, 0.010113f, 0.036172f, 0.0671937f, 0.143914f, -0.18937f, -0.154405f, 0.0420503f, -0.0114617f, 0.131748f, 0.044935f, 0.0761249f, -0.0302271f, -0.0741153f, 0.0866648f, 0.199526f, 0.166461f, -0.0158971f, 0.0249812f, 0.0377967f, 0.117819f, 0.114994f, 0.0439227f, -0.0665224f, 0.131354f, -0.216483f, -0.164618f, -0.0705381f, 0.0375673f, -0.0989807f, -0.00759032f, 0.13786f, -0.0309593f, 0.144587f, -0.129386f, 0.0808913f, 0.155668f, 0.0932482f, 0.0431025f, -0.0764218f, -0.0145733f, -0.0102379f, -0.0626959f, -0.0899961f, -0.192525f, 0.178553f, 0.112469f, 0.0174685f, -0.232686f, -0.0189397f, 0.0278002f, 0.127871f, -0.00902208f, 0.124995f, -0.16787f, -0.18239f, 0.202434f, 0.0434863f, -0.109696f, 0.0371725f, 0.127974f, 0.164711f, 0.0548527f, 0.0217032f, 0.113209f, 0.115741f, -0.156192f, 0.116412f, -0.244984f, 0.0617905f, 0.0018488f, 0.059218f, -0.0396956f, -0.139043f, -0.221978f, -0.215092f, -0.179331f, -0.0349304f, 0.219537f, -0.0491131f, -0.0920436f, 0.10133f, 0.135071f, 0.155349f, 0.197607f, -0.0345318f, -0.207751f, -0.0117401f, 0.0232302f, 0.000718095f, 0.133929f, -0.163415f, -0.210534f, -0.00629559f, -0.120809f, 0.150108f, 0.194836f, -0.0362366f, -0.207896f, 0.159559f, 0.150073f, -0.00965771f, -0.319656f, -0.0238185f, -0.190145f, 0.104929f, -0.253611f, -0.0905602f, 0.106359f, -0.171581f, -0.0233038f, 0.107613f, 0.0101766f, -0.176343f, 0.0485143f, 0.0890504f, -0.261063f, -0.0834002f, 0.155372f, 0.1395f, 0.102659f, -0.092348f, 0.171863f, -0.0146135f, 0.102243f, -0.14787f, -0.142529f, 0.131621f, 0.0617717f, -0.195242f, -0.100369f, -0.0963585f, -0.171353f, 0.0994948f, -0.183573f, 0.247662f, 0.166846f, 0.0589093f, 0.0642273f, -0.311898f, -0.15838f, -0.18348f, 0.00852077f, 0.194526f, 0.139182f, 0.0468985f, 0.136093f, 0.0713914f, 0.150731f, -0.19923f, 0.197939f, 0.275363f, -0.161097f, 0.0385785f, 0.192038f, -0.108497f, -0.0418582f, -0.126249f, -0.0819649f, -0.123897f, -0.151496f, 0.117715f, 0.225146f, 0.051882f, -0.0265388f, -0.230585f, -0.0906786f, -0.150701f, -0.286539f, -0.0515349f, -0.120461f, 0.106889f, -0.0350141f, -0.145757f, -0.0333262f, -0.193857f, -0.176314f, -0.0930202f, -0.194364f, 0.190273f, -0.0445717f, -0.139265f, -0.293835f, 0.029536f, 0.111658f, 0.124648f, -0.0195451f, 0.0734597f, -0.187788f, 0.0779692f, -0.153238f, 0.0794506f, 0.0539615f, 0.0248447f, -0.0593964f, 0.0638628f, -0.173144f, 0.0119087f, -0.134003f, 0.128231f, 0.0198222f, -0.0922291f, -0.115856f, -0.10944f, 0.190814f, 0.0958809f, 0.176484f, 0.145534f, -0.0400042f, 0.0492666f, -0.124756f, -0.0429504f, -0.0278241f, 0.186838f, -0.00797074f, 0.0424285f, -0.107927f, 0.256784f, 0.106479f, -0.20033f, -0.0341796f, -0.0397277f, -0.0790634f, -0.212934f, -0.306127f, -0.162953f, 0.245214f, 0.011747f, 0.127977f, 0.13411f, 0.176407f, -0.0440685f, 0.248432f, -0.160629f, -0.0135563f, 0.0883022f, -0.0588224f, 0.155618f, 0.0768836f, 0.0205602f, -0.163967f, 0.28752f, 0.207861f, -0.00583286f, -0.175073f, 0.170556f, -0.125235f, -0.0336627f, -0.0358143f, -0.0418106f, -0.0198679f, 0.0639397f, 0.127264f, 0.199856f, -0.059647f, -0.00300745f, 0.194555f, 0.0319264f, -0.0121384f, -0.0205966f, 0.14835f, 0.0498602f, 0.100447f, 0.101962f, -0.0320204f, 0.190873f, 0.0469187f, -0.102376f, -0.120657f, 0.217722f, -0.012023f, -0.125198f, -0.0492092f, 0.0323435f, -0.146528f, -0.0298542f, -0.197446f, 0.189804f, -0.223588f, 0.110492f, 0.152448f, 0.0407322f, 0.0729257f, -0.107761f, -0.146141f, -0.0216241f, -0.00652658f, -0.0660323f, 0.0301865f, 0.150053f, -0.229759f, 0.0409239f, 0.0985969f, 0.0365759f, 0.141769f, 0.0330884f, -0.0357947f, -0.0933032f, -0.0601867f, -0.0869296f, -0.0716975f, -0.123909f, 0.0585659f, 0.032953f, -0.116702f, -0.0920212f, -0.0876966f, -0.077929f, -0.140974f, -0.0632375f, -0.109502f, 0.21135f, 0.118317f, 0.144145f, 0.0242061f, 0.000866392f, 0.159431f, 0.177763f, 0.140631f, -0.157554f, -0.0500091f, 0.127475f, 0.124099f, -0.0869999f, -0.139273f, 0.110908f, -0.0612645f, 0.190551f, 0.105294f, -0.144335f, -0.11488f, -0.0565301f, 0.161065f, -0.12935f, -0.00150791f, -0.0632186f, -0.0914019f, 0.0665873f, -0.0257864f, 0.0799079f, 0.187706f, 0.027439f, -0.189567f, 0.207609f, 0.00807114f, 0.105786f, -0.0889715f, -0.165917f, -0.0189045f, -0.0940164f, -0.154695f, 0.0309166f, 0.0373739f, 0.0448777f, 0.0713778f, 0.264285f, 0.0828341f, 0.149683f, 0.072157f, -0.068175f, 0.182475f, -0.012738f, -0.0910073f, 0.140954f, 0.166321f, 0.0762021f, -0.0314444f, 0.00301586f, 0.0580252f, 0.0142435f, -0.105621f, -0.0234565f, 0.130655f, 0.0536881f, -0.0655688f, -0.0422964f, 0.150525f, -0.158814f, 0.104229f, -0.0289324f, -0.14622f, -0.089831f, 0.0432139f, -0.0466775f, -0.0164068f, -0.00334365f, 0.00278155f, -0.037334f, -0.0247598f, 0.0990163f, 0.0101735f, 0.102618f, 0.140847f, -0.0679858f, 0.0215845f, -0.147673f, -0.155048f, -0.00183011f, 0.049559f, 0.0552631f, 0.111732f, -0.189608f, 0.0371358f, -0.00670275f, -0.0469627f, -0.0480019f, -0.0263872f, 0.157897f, 0.218311f, -0.00519136f, -0.112868f, -0.0851817f, -0.0949426f, 0.0214844f, -0.0615942f, -0.0184938f, -0.125125f, 0.102189f, 0.147375f, -0.0542569f, -0.0398886f, 0.204176f, -0.0619828f, -0.0473627f, -0.023093f, -0.0492578f, -0.0132619f, -0.0550315f, 0.0604557f, 0.175127f, 0.011162f, -0.0913042f, 0.0504034f, -0.141943f, 0.0816252f, 0.0103404f, 0.192616f, 0.0246859f, -0.0737567f, 0.0416392f, 0.0687466f, 0.0461788f, -0.183722f, -0.00461588f, -0.0402205f, 0.144962f, 0.0690798f, -0.0112655f, 0.120906f, -0.0227379f, -0.0208672f, -0.131833f, -0.0141129f, -0.0407201f, -0.147275f, -0.00354938f, 0.0581619f, 0.106046f, 0.0180339f, 0.00692355f, 0.180025f, -0.0108353f, -0.17669f, -0.222053f, 0.0637676f, -0.116471f, 0.199482f, 0.0974321f, 0.144551f, 0.106626f, 0.0803343f, -0.132486f, -0.0433083f, -0.097845f, 0.0999269f, 0.00443344f, 0.0553953f, 0.0778921f, -0.177546f, -0.0265384f, -0.05214f, -0.00373559f, -0.0122557f, -0.116246f, 0.0140208f, 0.04156f, 0.145485f, 0.0747459f, -0.0314884f, 0.00501017f, -0.0537335f, 0.171748f, -0.103779f, -0.0790223f, -0.0171399f, 0.127734f, -0.0951802f, 0.128722f, 0.0103749f, 0.0789156f, 0.159017f, 0.0568422f, -0.0966425f, -0.0781331f, -0.105216f, -0.0615212f, -0.19255f, -0.0172397f, 0.0590389f, 0.310063f, -0.0989199f, -0.0651682f, -0.0178543f, -0.00513187f, 0.214273f, -0.0900058f, -0.0288371f, -0.1165f, -0.103455f, -0.18082f, -0.0669368f, -0.0968071f, -0.0132692f, 0.060665f, -0.0672809f, -0.0543084f, -0.0512408f, 0.0562569f, 0.197752f, 0.237935f, -0.157076f, -0.0387571f, 0.072964f, 0.0196045f, -0.0608766f, 0.101272f, -0.0548546f, 0.0741685f, 0.0733624f, -0.158171f, -0.0246436f, -0.0567897f, -0.147064f, -0.0662865f, 0.237072f, -0.0814011f, -0.161081f, 0.167919f, 0.182014f, -0.0659318f, 0.234734f, 0.0789839f, 0.208544f, 0.0818713f, 0.182785f, 0.0171605f, -0.0740039f, -0.137525f, 0.0953743f, 0.021419f, 0.102834f, 0.101321f, 0.141163f, -0.26321f, -0.0180212f, -0.0226165f, 0.0877724f, 0.0325302f, 0.0325715f, -0.194913f, 0.0843749f, 0.0448278f, -0.130557f, -0.151299f, 0.0747973f, 0.0333866f, -0.101347f, 0.0996885f, -0.0855139f, 0.0604876f, 0.175494f, -0.000703507f, -0.128488f, -0.0593532f, -0.0896918f, 0.127653f, -0.362644f, 0.0999532f, -0.0425492f, -0.0811681f, -0.192333f, 0.0598621f, -0.136715f, -0.0915933f, -0.163206f, 0.144637f, 0.118652f, 0.171965f, -0.0465972f, -0.0629646f, -0.1503f, 0.0727302f, 0.0309339f, -0.0914947f, 0.135969f, 0.0150939f, 0.0176786f, -0.180527f, 0.0413244f, 0.241516f, -0.105028f, -0.0155796f, -0.075817f, 0.0217656f, -0.0447567f, -0.0761052f, 0.102133f, -0.0294555f, 0.188559f, -0.0108517f, 0.027599f, 0.130273f, 0.156529f, 0.231187f, -0.0877798f, -0.108443f, -0.0929521f, 0.305017f, -0.0454812f, -0.0389174f, -0.135105f, -0.00970509f, 0.0689609f, -0.00439013f, -0.0594595f, 0.0566168f, -0.098333f, 0.0675806f, -0.0262699f, -0.200896f, -0.165984f, 0.175553f, -0.130929f, 0.0522855f, 0.183889f, -0.0530606f, -0.088573f, 0.111689f, -0.157401f, -0.227644f, -0.212314f, 0.0305847f, 0.297479f, 0.0492574f, 0.105819f, -0.213374f, -0.123711f, -0.271719f, -0.153296f, -0.0117036f, -0.280746f, 0.0610386f, 0.0663214f, 0.168814f, 0.00931913f, 0.20737f, -0.199002f, -0.0599067f, -0.119873f, -0.150107f, 0.000240138f, 0.0471185f, -0.12982f, -0.100671f, 0.0459041f, 0.00273606f, -0.156062f, 0.0178861f, 0.12714f, -0.010227f, -0.122816f, -0.301274f, -0.035624f, 0.0068691f, 0.0234476f, -0.015675f, 0.157519f, 0.0400936f, 0.116874f, 0.240538f, 0.0984137f, -0.00863027f, 0.0188082f, -0.170169f, 0.175491f, -0.169116f, 0.252965f, -0.0982304f, -0.0225688f, 0.206751f, 0.155833f, -0.0147769f, -0.0648862f, -0.123588f, 0.218314f, -0.10238f, 0.160372f, 0.147667f, -0.0375954f, 0.0440269f, 0.24556f, 0.257933f, -0.259541f, 0.0880858f, 0.220025f, 0.142767f, 0.0234126f, -0.285312f, -0.262425f, 0.0810292f, 0.187212f, 0.0113431f, -0.0316084f, 0.127561f, -0.0114518f, 0.100518f, -0.0792815f, -0.112707f, 0.164616f, 0.0573887f, -0.0457793f, 0.01841f, 0.0547911f, 0.189213f, -0.229512f, -0.0039528f, -0.0349124f, -0.0855928f, -0.0121705f, -0.130799f, -0.211624f, 0.259777f, 0.0405974f, 0.0216095f, -0.199596f, 0.0974335f, -0.090598f, 0.0547476f, -0.0617303f, -0.165042f, 0.0998592f, -0.0579528f, -0.334098f, 0.0143492f, 0.0893005f, -0.0922169f, 0.0265872f, 0.0550798f, 0.210859f, -0.0997265f, 0.0319501f, -0.132267f, -0.0149249f, 0.0368611f, 0.128301f, -0.166169f, 0.308721f, 0.107496f, -0.048358f, 0.00542406f, -0.182729f, 0.00621488f, 0.141735f, 0.229302f, 0.0482228f, -0.229911f, -0.0392131f, 0.0910726f, -0.248488f, 0.303934f, -0.0298826f, -0.221653f, -0.0328247f, 0.0739902f, 0.0717162f, 0.0938539f, -0.209814f, 0.0599074f, -0.104095f, 0.0683894f, 0.0168135f, -0.035145f, 0.114859f, 0.210986f, -0.279687f, 0.0537281f, -0.046572f, -0.0923186f, -0.0340477f, 0.191213f, 0.13898f, -0.115129f, -0.0930623f, -0.104735f, -0.154656f, -0.0320333f, -0.021178f, 0.0482419f, -0.0452816f, -0.195361f, 0.0996287f, -0.230872f, 0.167462f, 0.0434216f, -0.0646194f, -0.0904948f, 0.0886102f, 0.0130104f, -0.0478291f, 0.159321f, -0.0347864f, 0.0112422f, -0.172332f, -0.152683f, 0.145401f, -0.0469124f, 0.0803269f, -0.035001f, -0.179147f, -0.158995f, -0.0363862f, 0.123238f, -0.0424581f, 0.000400432f, 0.061595f, -0.0418602f, 0.0156412f, 0.141426f, -0.10041f, -0.145733f, 0.113135f, 0.0644514f, -0.0924626f, -0.132255f, 0.196906f, -0.185991f, 0.0620662f, -0.2125f, 0.00946067f, 0.0553893f, 0.00567845f, 0.125402f, 0.110235f, -0.0754258f, 0.177121f, 0.0407446f, 0.0787038f, 0.0271474f, 0.147478f, 0.151056f, 0.146872f, -0.097314f, 0.0676105f, -0.0780504f, 0.108872f, -0.0969408f, 0.0596629f, -0.181389f, 0.126417f, -0.0178307f, -0.0658978f, 0.0297919f, 0.0228312f, -0.1115f, 0.102374f, 0.0511855f, -0.0739237f, -0.0715437f, 0.0369783f, 0.158323f, 0.150808f, 0.0792589f, 0.0849438f, 0.0968143f, -0.120515f, -0.0724158f, 0.171288f, -0.0236281f, 0.146941f, 0.0597301f, -0.0332312f, -0.131493f, -0.0739331f, -0.110251f, 0.00424245f, 0.101251f, 0.0781518f, 0.0760975f, -0.0565707f, -0.141284f, 0.137498f, 0.0486122f, -0.139789f, 0.23097f, -0.10412f, 0.049628f, 0.1354f, -0.0253389f, -0.0116113f, 0.059612f, 0.04493f, -0.0890729f, -0.104541f, -0.0515014f, -0.178407f, 0.0413947f, -0.0164287f, 0.127547f, 0.104049f, 0.00837723f, -0.13799f, -0.114113f, -0.107217f, -0.127705f, 0.0380652f, 0.124572f, -0.140616f, 0.0451257f, 0.113774f, 0.189342f, -0.0711325f, -0.0110091f, -0.0331019f, 0.0733271f, 0.0202213f, 0.0632976f, 0.0433156f, 0.0341013f, -0.0213477f, 0.137051f, 0.170046f, 0.0018558f, -0.109418f, 0.0694258f, -0.116209f, 0.141317f, -0.145776f, 0.0987708f, 0.188044f, 0.101362f, 0.0887899f, -0.158143f, 0.138868f, 0.288687f, 0.25498f, -0.0684517f, 0.0416865f, 0.15771f, -0.0101389f, 0.0597453f, -0.0954176f, -0.0150241f, -0.109065f, 0.0834769f, -0.0878766f, 0.0901701f, 0.228941f, 0.119734f, 0.182492f, 0.0552867f, -0.00699158f, -0.0229799f, -0.17004f, 0.0453742f, 0.124973f, -0.0826842f, -0.101412f, -0.066662f, -0.0911878f, -0.120412f, -0.0720575f, -0.0319524f, 0.0168609f, -0.0319732f, 0.136837f, -0.0566604f, -0.052262f, 0.051986f, -0.102672f, -0.121524f, 0.231385f, -0.000228313f, -0.20238f, 0.122829f, -0.137952f, 0.0847896f, -0.0654099f, -0.0061085f, 0.107333f, 0.0214286f, -0.0313212f, 0.00346495f, -0.121391f, 0.0129666f, 0.113788f, -0.0936408f, -0.0550339f, 0.0173707f, -0.0233171f, -0.0503175f, -0.00261816f, 0.0889267f, 0.188031f, -0.12257f, -0.0155493f, -0.0793382f, -0.00476082f, -0.0867888f, -0.207277f, -0.0625141f, 0.0533638f, 0.14517f, -0.0406117f, -0.0458862f, 0.0534199f, -0.0244564f, -0.00154169f, 0.12734f, -0.0659149f, 0.157201f, -0.0304126f, -0.0787567f, -0.0319709f, -0.1061f, 0.0508954f, 0.0706539f, 0.226419f, 0.201467f, -0.074145f, -0.0402757f, -0.0241617f, 0.0936023f, 0.0688194f, -0.230867f, 0.0756976f, 0.0241383f, 0.0385741f, -0.00339679f, 0.023074f, 0.147885f, -0.0348728f, 0.121873f, -0.0425135f, 0.138274f, 0.0647453f, 0.0679898f, 0.0723533f, 0.0459197f, 0.121974f, 0.0271718f, -0.0599196f, -0.156883f, 0.150566f, -0.0143116f, 0.0892308f, 0.0895518f, 0.0332177f, -0.0247707f, -0.0365994f, 0.00415824f, -0.233482f, 0.10745f, 0.0472221f, -0.0714737f, -0.0407486f, -0.140748f, 0.135349f, 0.0991195f, 0.00117495f, -0.0632583f, -0.155215f, 0.0231565f, -0.109684f, -0.0635674f, 0.107341f, 0.0728449f, 0.0283211f, -0.0491933f, -0.099407f, 0.00368737f, 0.0734637f, 0.0340336f, 0.0518948f, 0.000647247f, -0.194489f, 0.137196f, -0.198977f, -0.0447636f, -0.0691562f, 0.048466f, 0.0400622f, -0.0961447f, 0.110335f, 0.11328f, -0.0709469f, -0.14181f, -0.127775f, 0.03955f, -0.0758197f, 0.0603876f, -0.203407f, -0.0491225f, -0.0686395f, -0.0383056f, -0.00391617f, -0.0517898f, -0.0976147f, 0.00561023f, -0.0322992f, 0.167626f, -0.0267314f, -0.0589684f, 0.0604822f, -0.0935986f, -0.101014f, -0.130851f, 0.040791f, 0.12611f, 0.0531214f, -0.105158f, 0.0195672f, -0.0660846f, 0.0745391f, 0.192843f, -0.151007f, -0.0495154f, -0.136554f, 0.0310206f, 0.00220847f, 0.0703836f, 0.183695f, -0.0688993f, 0.0327234f, 0.0919392f, -0.179337f, 0.0237968f, -0.0640803f, 0.130335f, -0.194302f, 0.34537f, -0.0970063f, 0.0963852f, 0.0951517f, 0.174255f, 0.0295422f, -0.100563f, -0.120389f, -0.148137f, -0.102833f, -0.0090772f, -0.181892f, 0.107479f, -0.176413f, -0.0808305f, 0.0785102f, 0.120377f, -0.106686f, 0.0592472f, -0.119625f, 0.116383f, -0.167681f, 0.00602069f, -0.0677974f, 0.114376f, 0.190846f, 0.0970955f, 0.0430939f, -0.108064f, 0.0185667f, -0.259928f, 0.127432f, 0.0954613f, 0.0373594f, -0.190818f, -0.114763f, 0.0651087f, 0.134504f, 0.0980417f, 0.135275f, -0.120759f, -0.19268f, 0.197963f, -0.106559f, 0.00660884f, -0.124402f, -0.0106347f, 0.164478f, -0.194406f, 0.123657f, -0.228469f, -0.0821533f, 0.18935f, 0.035537f, -0.120312f, -0.00915432f, 0.116553f, -0.051856f, 0.0189986f, -0.0877373f, 0.0376392f, 0.191741f, 0.0549962f, 0.133784f, 0.117596f, 0.205598f, -0.116784f, -0.0648628f, -0.106213f, -0.0779439f, 0.00249102f, -0.14573f, -0.0420459f, 0.0747262f, -0.128991f, 0.0428648f, 0.208639f, -0.0484495f, 0.24364f, 0.0162059f, 0.127916f, 0.0628667f, -0.0514665f, -0.00161955f, -0.0227242f, 0.0448352f, 0.0973179f, -0.0261951f, -0.109717f, -0.121739f, 0.00820655f, 0.136657f, -0.115486f, 0.0417127f, -0.166455f, -0.0206632f, -0.131443f, 0.0598459f, -0.0478725f, -0.0483345f, -0.0649863f, 0.0764144f, -0.0970526f, 0.255583f, 0.199321f, -0.100905f, -0.0745779f, 0.00974916f, 0.0514928f, 0.0365061f, 0.0785483f, 0.0410905f, -0.0369619f, -0.099832f, 0.150227f, 0.181211f, -0.0241166f, 0.0122547f, -0.0194212f, 0.271428f, 0.110824f, -0.0431145f, -0.127065f, -0.0392022f, -0.0640598f, 0.0799563f, -0.208536f, 0.0587635f, -0.0196696f, 0.0295681f, 0.28943f, -0.0634973f, -0.0988342f, -0.128075f, -0.0209716f, 0.105139f, -0.113474f, 0.0596532f, -0.12099f, 0.222242f, 0.081188f, 0.0237824f, -0.165776f, -0.202038f, -0.125689f, -0.118791f, 0.000330596f, 0.188393f, -0.121444f, -0.223532f, 0.126299f, 0.0835412f, -0.0683257f, -0.000862589f, -0.0889472f, -0.234977f, 0.105934f, 0.00573589f, -0.140033f, -0.0115286f, 0.0283282f, 0.0602269f, -0.107971f, 0.0363113f, 0.0860815f, 0.0340698f, 0.16533f, 0.123195f, 0.104246f, -0.0774896f, 0.119262f, 0.21392f, 0.0561416f, 0.176793f, 0.0242147f, 0.0500452f, -0.122037f, 0.0217913f, 0.116421f, 0.130277f, -0.0054369f, -0.110963f, 0.135919f, -0.146268f, -0.0303834f, 0.29921f, -0.0459259f, 0.029642f, -0.0902297f, 0.15295f, 0.261917f, -0.0641176f, -0.0684606f, 0.0772479f, -0.144378f, -0.212496f, -0.147795f, -0.256519f, 0.0560483f, -0.0371416f, 0.292721f, -0.187277f, -0.180921f, 0.0701893f, -0.253695f, 0.315924f, 0.0535178f, -0.00972773f, -0.133198f, -0.35952f, -0.206307f, -0.14348f, -0.0409145f, -0.00530267f, 0.279771f, -0.0368467f, 0.029628f, 0.112182f, 0.059054f, 0.0156494f, 0.21607f, -0.0555013f, -0.0254672f, 0.0918576f, -0.0814239f, -0.171139f, -0.0822192f, 0.0745961f, -0.13427f, 0.0544138f, 0.00279591f, 0.0624431f, 0.0495881f, -0.0447846f, 0.09011f, -0.00296881f, -0.0150834f, -0.0347037f, -0.194792f, 0.244939f, 0.086077f, 0.308838f, 0.0325524f, -0.104207f, -0.123874f, -0.271388f, 0.0885053f, 0.027607f, -0.0364591f, 0.143695f, -0.132264f, 0.0420266f, -0.121059f, 0.117672f, 0.0230101f, -0.0925994f, 0.0678882f, 0.0758239f, 0.0743978f, 0.0911863f, 0.0543214f, 0.34315f, 0.0635694f, -0.117168f, 0.315715f, 0.11376f, 0.109024f, 0.0126963f, -0.184086f, 0.120688f, -0.124198f, -0.107851f, 0.0135404f, 0.251457f, 0.185757f, 0.0677659f, -0.0477693f, -0.126366f, 0.0347616f, -0.155769f, -0.00797025f, 0.193684f, 0.180244f, -0.0313464f, 0.0300824f, -0.0724737f, -0.295199f, -0.221896f, -0.0182969f, 0.157509f, -0.025858f, 0.00263347f, -0.0367094f, -0.0305311f, 0.21734f, -0.122547f, -0.182765f, -0.0589466f, -0.113063f, -0.107069f, -0.149551f, -0.137419f, 0.0034483f, -0.318977f, 0.326998f, 0.243985f, -0.0736783f, 0.0209987f, 0.063757f, 0.0507414f, -0.0246078f, 0.0629892f, 0.140614f, 0.0928815f, -0.110111f, -0.0916103f, 0.0488886f, 0.110059f, -0.036635f, -0.0652935f, -0.172319f, -0.138689f, -0.0784724f, -0.10603f, 0.0774732f, -0.236322f, 0.0148153f, -0.0885298f, -0.16281f, -0.0556794f, 0.189181f, -0.197611f, -0.123645f, -0.0253812f, 0.125918f, 0.179816f, -0.0903641f, -0.205257f, 0.0207506f, -0.172889f, 0.0120157f, -0.099067f, 0.143223f, -0.24627f, 0.176728f, -0.134724f, -0.226089f, -0.123265f, -0.0623944f, -0.138332f, 0.0517074f, -0.244871f, 0.0101144f, -0.0629775f, 0.0499393f, -0.178984f, -0.0958657f, 0.114975f, 0.00522387f, 0.099636f, -0.10267f, 0.368003f, 0.0412369f, 0.0399582f, -0.194595f, -0.0795194f, -0.0605128f, 0.0450755f, -0.250176f, 0.0501477f, 0.0629235f, 0.146615f, 0.054077f, 0.008633f, 0.14955f, -0.0363899f, -0.0558117f, -0.142863f, -0.181366f, 0.268147f, -0.0395892f, -0.0114586f, -0.15235f, -0.0735653f, 0.228303f, 0.115123f, 0.0399522f, -0.124426f, -0.0333582f, 0.13125f, -0.208005f, -0.0931502f, -0.155521f, 0.000838561f, 0.0851462f, 0.037449f, -0.0173715f, -0.11395f, 0.0813817f, -0.0343585f, 0.146684f, 0.0701501f, -0.277127f, 0.0321379f, -0.0631708f, 0.17739f, -0.274978f, 0.0493277f, 0.0964137f, 0.208897f, 0.0777199f, 0.230686f, 0.0549065f, -0.0522004f, 0.150066f, 0.177841f, 0.0542879f, 0.165817f, -0.0287339f, -0.1294f, 0.0401274f, 0.210905f, -0.0195675f, 0.0210154f, 0.0250985f, 0.084551f, 0.167721f, 0.303162f, 0.320135f, 0.0960087f, 0.0913756f, -0.173466f, 0.110976f, 0.0604815f, -0.0661857f, -0.00821105f, 0.0932714f, 0.125686f, 0.199752f, 0.159816f, 0.0832295f, -0.156735f, 0.110493f, 0.133248f, -0.152907f, -0.0035405f, 0.166062f, 0.101452f, 0.0184803f, 0.0549653f, -0.00406513f, -0.00148424f, -0.0352009f, -0.011419f, -0.0280896f, 0.0742584f, -0.0465042f, 0.0577287f, 0.130406f, -0.0975022f, 0.0737592f, -0.146943f, -0.0986293f, -0.107263f, -0.0327518f, -0.0639324f, 0.0200793f, 0.157504f, 0.0124096f, -0.161674f, 0.0022275f, 0.0187336f, 0.159194f, 0.165007f, 0.064196f, -0.0934335f, 0.0567051f, 0.00286411f, -0.0309093f, -0.166708f, -0.0486125f, 0.135331f, -0.0589352f, 0.0112829f, -0.0746092f, -0.133506f, 0.0067769f, -0.121498f, -0.0370788f, -0.0178297f, 0.123809f, -0.095518f, -0.174835f, 0.179418f, 0.0449126f, -0.138385f, -0.0326632f, 0.127889f, -0.146057f, 0.0271573f, -0.0545106f, 0.0134486f, -0.13879f, -0.042156f, 0.0226143f, 0.0157294f, -0.192014f, 0.14629f, -0.0184199f, -0.0722412f, 0.0310936f, 0.117314f, -0.21518f, 0.0520159f, 0.0517191f, 0.0791702f, -0.132633f, -0.173955f, -0.0016101f, -0.1774f, -0.0319072f, -0.00903959f, 0.186269f, 0.14906f, -0.0445879f, 0.170275f, -0.17462f, 0.0603899f, -0.0196257f, -0.00790887f, -0.0808309f, 0.201083f, 0.0138198f, 0.165545f, -0.0468532f, 0.128824f, -0.00851427f, 0.00235551f, -0.0533138f, 0.0837428f, -0.0613941f, -0.00121886f, -0.0156882f, 0.0230697f, -0.0389418f, 0.0310774f, -0.0276241f, 0.0760545f, -0.189006f, -0.00440226f, 0.0638215f, 0.153062f, -0.179492f, -0.055675f, -0.163018f, -0.036814f, -0.00310714f, -0.105369f, -0.0778811f, -0.0785956f, -0.209838f, 0.0283431f, -0.0111572f, 0.115352f, 0.0092581f, -0.0251689f, -0.00695604f, -0.0327468f, 0.182539f, -0.0387103f, -0.150945f, 0.0733161f, 0.127084f, 0.0040338f, 0.0455223f, 0.0362708f, -0.0139251f, 0.024365f, -0.19402f, 0.0178148f, 0.212503f, -0.0222401f, -0.183158f, 0.0791592f, -0.066172f, -0.154267f, -0.0666807f, 0.200984f, -0.151894f, -0.0827993f, 0.0370224f, 0.00762073f, 0.106125f, -0.108246f, -0.125796f, 0.00487924f, 0.075533f, -0.150594f, 0.0808338f, -0.0684568f, -0.111294f, -0.00227189f, -0.00225976f, 0.0827283f, 0.0426181f, -0.0345569f, 0.0173709f, 0.0705033f, 0.138481f, -0.0211626f, 0.0919612f, -0.0247037f, -0.115594f, 0.0315604f, -0.160623f, 0.173917f, 0.0691223f, -0.0895182f, 0.134617f, -0.0116134f, 0.205301f, -0.129377f, 0.0583099f, 0.128836f, 0.0678774f, -0.129202f, 0.0784636f, 0.00370505f, -0.0783756f, 0.210648f, -0.0178379f, 0.181801f, 0.0695284f, 0.165227f, -0.170986f, -0.0245144f, -0.00184175f, 0.109954f, 0.0763069f, -0.057355f, 0.0606619f, 0.0040046f, -0.0891713f, -0.0189173f, 0.00719292f, 0.00793619f, -0.166021f, -0.0578348f, -0.00283265f, 0.0117055f, -0.0128611f, -0.229452f, 0.00569324f, -0.133422f, -0.101785f, 0.0692188f, 0.0795095f, -0.0426643f, -0.0619306f, 0.114481f, 0.0818599f, 0.0593232f, -0.145844f, 0.0753652f, -0.0123796f, 0.0303906f, -0.159046f, 0.0570377f, 0.10138f, -0.0772291f, -0.0949535f, 0.110899f, 0.0563689f, 0.0648235f, 0.0455834f, -0.0885193f, 0.197906f, -0.0810317f, -0.0072862f, -0.0749709f, -0.111899f, 0.163043f, -0.067974f, -0.0529681f, -0.132409f, -0.0737641f, -0.0274591f, -0.146609f, -0.0141258f, 0.154514f, -0.154736f, -0.0891355f, 0.0317396f, -0.0656445f, 0.176013f, -0.244544f, -0.0132411f, -0.280797f, 0.00838882f, -0.0923511f, -0.0502753f, -0.0273377f, 0.12007f, -0.181453f, -0.0518073f, -0.226942f, 0.134881f, 0.0663796f, -0.0746143f, 0.10616f, 0.0553646f, 0.0457796f, 0.01259f, 0.116597f, -0.0741868f, 0.142819f, -0.158502f, 0.00664584f, -0.031327f, 0.176361f, -0.0999687f, 0.0548413f, 0.248743f, -0.227342f, -0.0619992f, 0.0827149f, -0.16061f, -0.161195f, -0.0741824f, -0.0355015f, 0.0588286f, 0.0313712f, 0.0750866f, 0.0417255f, -0.0172954f, 0.13726f, -0.187874f, 0.0335886f, 0.121897f, 0.00508333f, 0.174682f, -0.102358f, 0.0409615f, 0.0196912f, -0.0169291f, -0.120786f, -0.00240226f, 0.171961f, -0.0807743f, 0.0235902f, -0.0223002f, 0.104019f, -0.0989118f, -0.00391754f, -0.0824139f, 0.0489848f, -0.112121f, 0.0137598f, 0.1632f, -0.142288f, -0.0262194f, 0.169824f, -0.0517377f, 0.0727523f, 0.0602181f, -0.0322395f, -0.150371f, 0.130608f, -0.253367f, 0.0040618f, -0.0598349f, -0.0802356f, -0.136516f, -0.107972f, 0.0478609f, 0.106692f, -0.0987351f, -0.0557527f, 0.121332f, -0.215665f, 0.00927066f, -0.0809105f, 0.0717801f, -0.117303f, 0.0688941f, -0.077828f, -0.060136f, -0.109015f, -0.0621017f, 0.321806f, -0.0441905f, -0.0138624f, 0.175885f, -0.206586f, 0.124851f, -0.163327f, 0.0177524f, -0.176553f, 0.0100505f, 0.0213593f, -0.138871f, 0.113208f, -0.0199487f, -0.17485f, 0.165462f, -0.237649f, -0.0389203f, 0.139131f, 0.0245193f, 0.0105256f, -0.10631f, -0.00886488f, -0.0357048f, -0.0112547f, -0.00553197f, -0.211099f, 0.0964331f, -0.164073f, 0.10659f, -0.107507f, 0.0430913f, 0.0757582f, 0.249796f, 0.00424334f, -0.0750553f, -0.129641f, -0.213446f, 0.0744583f, 0.0857744f, -0.0677861f, 0.119413f, 0.08573f, 0.104104f, 0.085708f, -0.10316f, -0.0420483f, -0.128983f, 0.108497f, 0.0998839f, -0.0120357f, -0.0580822f, 0.235927f, -0.0783309f, 0.0742538f, 0.0845871f, 0.0729187f, -0.0752414f, -0.159139f, 0.0950898f, 0.0739515f, -0.0267492f, 0.164848f, -0.288408f, 0.00933849f, 0.00307088f, -0.0442297f, -0.125337f, -0.168498f, 0.121206f, 0.08292f, 0.165426f, 0.113608f, 0.178938f, 0.231528f, 0.0224669f, -0.0793772f, 0.134421f, 0.0483542f, -0.140403f, 0.0145592f, -0.046165f, -0.163829f, 0.0329966f, -0.0820065f, -0.0719812f, 0.0262615f, -0.0337708f, -0.0466744f, 0.22328f, -0.0108323f, -0.00127806f, 0.186725f, 0.171348f, -0.232397f, 0.100502f, -0.146592f, -0.0419113f, -0.153894f, -0.111506f, -0.117533f, -0.152898f, -0.0777178f, 0.0445143f, -0.0392286f, 0.00598448f, -0.155534f, -0.27558f, -0.0999726f, -0.0637964f, 0.153758f, 0.0315405f, 0.0773642f, 0.0543513f, 0.129096f, -0.00494073f, 0.0343277f, 0.0195789f, 0.129527f, 0.042612f, 0.136337f, 0.06963f, 0.0637512f, -0.291249f, -0.0922746f, -0.0134028f, 0.234627f, 0.0797683f, -0.0194764f, -0.00967549f, -0.16289f, -0.0694218f, 0.0452488f, 0.0968489f, 0.101348f, -0.092874f, -0.100334f, 0.133145f, 0.0614752f, 0.0170904f, 0.220104f, -0.215674f, -0.174099f, -0.200679f, 0.107335f, -0.217231f, 0.0322378f, 0.0672672f, -0.0634242f, 0.178795f, 0.00116877f, -0.0829131f, -0.00903331f, -0.085793f, 0.0217026f, 0.150862f, 0.0118731f, 0.0847349f, -0.0511577f, 0.156967f, -0.0710846f, -0.134585f, 0.183152f, -0.106372f, 0.0193719f, -0.0827229f, 0.0505651f, -0.150046f, -0.0569333f, 0.0510599f, -0.0413217f, -0.080428f, -0.154436f, 0.0101572f, 0.0290061f, -0.249328f, -0.130163f, -0.0559575f, -0.0603294f, 0.0744774f, -0.0258845f, -0.0230041f, 0.0641582f, -0.0574639f, 0.135435f, -0.0799633f, -0.0275971f, 0.0538557f, 0.14235f, -0.162273f, 0.0577691f, 0.0743997f, -0.0932779f, -0.0580091f, 0.204175f, 0.193603f, 0.233043f, 0.00812723f, 0.0119667f, -0.0734183f, -0.0589273f, 0.0392905f, 0.0130598f, 0.0877694f, 0.0162467f, -0.135846f, -0.0424643f, 0.0956379f, -0.04204f, -0.00458343f, 0.264473f, -0.0229573f, 0.0110367f, 0.0769788f, -0.0419622f, -0.0573903f, 0.137856f, -0.144887f, 0.193329f, 0.0697332f, 0.209356f, -0.129597f, 0.101019f, -0.142236f, 0.0257661f, 0.183084f, -0.135748f, 0.185936f, 0.0849574f, 0.210718f, -0.0998658f, 0.112309f, 0.0496649f, 1.76342e-05f, 0.21071f, -0.280627f, -0.208184f, -0.065974f, 0.157f, -0.0541768f, 0.0629898f, 0.118794f, 0.0107816f, -0.0483383f, -0.180079f, -0.0104047f, -0.0181855f, -0.133515f, -0.124599f, 0.0258673f, -0.242984f, -0.063772f, -0.215559f, -0.170682f, 0.119923f, 0.0827615f, 0.127465f, 0.115498f, 0.0712645f, -0.171563f, -0.175445f, 0.122618f, -0.122247f, -0.0973126f, 0.0480452f, -0.0585936f, 0.0706409f, -0.203441f, 0.115878f, -0.0377912f, -0.145071f, -0.0246633f, 0.140987f, 0.270858f, 0.129535f, -0.081397f, 0.0101914f, -0.178389f, 0.0943037f, 0.0124105f, -0.0278257f, 0.0997215f, 0.126644f, -0.219508f, -0.207561f, -0.0769287f, 0.0609457f, 0.0599873f, 0.0505794f, -0.196671f, -0.0238483f, -0.182581f, 0.160082f, -0.117502f, -0.0304655f, -0.0834501f, -0.162457f, 0.0743735f, -0.24195f, 0.0785936f, -0.0928309f, -0.0214954f, -0.13786f, -0.133103f, -0.130806f, 0.0466574f, -0.0159411f, -0.0754545f, -0.118133f, 0.160522f, 0.157009f, -0.0263907f, -0.0241115f, 0.0634361f, 0.0802057f, -0.0899496f, -0.207304f, 0.0388384f, 0.0146468f, 0.112503f, 0.0914462f, -0.0958974f, -0.062034f, -0.0109364f, -0.11082f, -0.123611f, -0.10988f, 0.134543f, 0.0472075f, 0.0383088f, 0.132811f, 0.0630644f, 0.131838f, 0.0321115f, 0.134321f, -0.00755491f, -0.187363f, 0.0688671f, 0.135469f, -0.00726827f, 0.0967339f, 0.116905f, 0.243473f, 0.0892539f, -0.0249812f, -0.16459f, 0.237914f, 0.0116646f, -0.0100828f, -0.0516064f, 0.0283462f, 0.0591303f, -0.0518852f, -0.312734f, 0.108269f, -0.0049469f, 0.102797f, -0.0437833f, 0.0720513f, 0.10995f, 0.154942f, 0.0433106f, 0.15779f, 0.159569f, 0.0186411f, -0.14644f, -0.00728703f, -0.133196f, -0.112452f, 0.206046f, -0.0497798f, 0.0822236f, -0.134787f, 0.0748501f, 0.00135428f, -0.108436f, 0.0238897f, 0.0129218f, -0.0355481f, -0.0566575f, -0.0390446f, -0.0690936f, 0.0965141f, 0.00267011f, 0.0679583f, -0.0119192f, -0.0220369f, -0.0953063f, 0.10874f, -0.0744221f, 0.134702f, 0.220145f, 0.143105f, -0.0214398f, -0.0651532f, 0.0369186f, 0.0328534f, -0.0598691f, 0.164107f, -0.0657934f, -0.0491021f, 0.174103f, -0.0369237f, -0.157491f, 0.100336f, -0.0217498f, -0.0128763f, -0.0633113f, -0.00332718f, 0.117051f, -0.206598f, 0.18776f, -0.111003f, 0.113269f, -0.0922691f, 0.0631615f, 0.15899f, 0.122111f, -0.179205f, 0.0795244f, 0.0604311f, -0.0716027f, 0.0645312f, -0.089179f, -0.231138f, 0.152318f, 0.134761f, -0.044045f, -0.0657499f, -0.170146f, -0.0774645f, 0.0262195f, 0.0669583f, 0.0700288f, -0.254008f, -0.0596216f, -0.0229317f, 0.215043f, 0.118639f, -0.347179f, -0.0892289f, -0.337864f, -0.131759f, -0.328265f, -0.125928f, -0.110855f, 0.176013f, 0.0890003f, -0.293869f, -0.149648f, -0.271216f, -0.138539f, 0.236052f, -0.065228f, 0.424238f, -0.143655f, -0.262367f, 0.299849f, 0.215319f, 0.129948f, 0.103562f, -0.106185f, -0.0980467f, -0.0247233f, -0.103885f, -0.0554326f, 0.113553f, 0.183254f, -0.121617f, -0.0508657f, 0.362745f, -0.0676624f, 0.0308609f, -0.0696873f, -0.0949912f, 0.133471f, 0.0666239f, 0.390013f, -0.130441f, -0.0453672f, -0.089732f, 0.070934f, -0.24272f, -0.0502297f, 0.0810656f, 0.169573f, -0.176685f, 0.115163f, 0.0206291f, -0.0187289f, -0.33668f, -0.101436f, 0.0955474f, -0.0953478f, -0.130486f, -0.24648f, -0.0609403f, -0.231191f, -0.120528f, -0.0758605f, -0.140356f, 0.130489f, 0.0539826f, 0.313527f, -0.0928275f, 0.248792f, 0.0749275f, 0.411261f, 0.138062f, -0.112096f, 0.115578f, 0.297936f, 0.231432f, 0.261429f, -0.0743565f, 0.111379f, -0.0177805f, 0.0636871f, -0.240955f, 0.301079f, 0.145045f, 0.262273f, 0.122773f, -0.0246785f, 0.243745f, 0.182545f, -0.219254f, 0.0573053f, -0.0797856f, -0.057953f, 0.0914008f, -0.125417f, 0.0364401f, 0.198964f, -0.0267909f, 0.118795f, 0.180298f, -0.176697f, -0.0352805f, 0.194644f, 0.0972937f, -0.017001f, -0.201519f, 0.146562f, -0.0196508f, -0.0530974f, -0.108877f, 0.0489003f, 0.224706f, 0.00442485f, 0.0788353f, 0.0415903f, 0.0776979f, -0.242107f, -0.0893767f, 0.0992131f, -0.0058464f, -0.0406405f, 0.0172523f, 0.154797f, 0.0864401f, -0.0428829f, -0.253469f, 0.0226329f, -0.182253f, -0.0921116f, 0.0718881f, 0.00174727f, -0.2044f, 0.188502f, 0.0322652f, -0.0873089f, -0.0831381f, -0.0083213f, -0.164206f, -0.0124567f, 0.017016f, 0.042451f, -0.190312f, -0.324192f, -0.143597f, 0.142564f, 0.0818785f, -0.0313022f, 0.160213f, -0.196522f, 0.0213269f, 0.0974973f, 0.199143f, -0.0248106f, -0.027947f, 0.027469f, -0.139708f, 0.0558361f, 0.0632616f, -0.106091f, 0.35311f, 0.0121709f, -0.0195391f, 0.142065f, -0.0954308f, 0.0164227f, 0.0973445f, -0.162913f, -0.0920594f, -0.0256209f, -0.0430655f, 0.0383002f, 0.0336432f, -0.0856346f, 0.228131f, -0.0025672f, 0.116972f, -0.144791f, -0.0351408f, 0.240692f, -0.00802447f, -0.246372f, 0.0791325f, 0.00482563f, -0.247708f, 0.0574663f, 0.12877f, 0.0475944f, -0.0327915f, 0.351326f, 0.0706568f, -0.0433332f, -0.0963608f, -0.123265f, -0.133559f, 0.128832f, 0.018824f, 0.0521382f, 0.266024f, -0.0853338f, -0.0984024f, -0.0865633f, 0.0584444f, 0.0518557f, -0.223303f, 0.0883056f, -0.0171144f, 0.15597f, 0.158244f, -0.103685f, -0.123837f, 0.135563f, 0.00991835f, -0.278629f, 0.0321631f, 0.0866345f, 0.214197f, -0.149888f, 0.148855f, -0.0236179f, 0.246422f, 0.118803f, -0.116033f, 0.284803f, -0.101293f, -0.176766f, 0.119046f, -0.219884f, -0.163715f, -0.0818554f, 0.160353f, 0.066363f, -0.061679f, -0.140753f, 0.0649365f, 0.0552087f, -0.19429f, 0.174636f, 0.0455121f, -0.0647303f, -0.201439f, -0.29452f, -0.120959f, -0.00405453f, 0.214032f, -0.0777778f, -0.200824f, -0.148552f, -0.00964095f, -0.177924f, 0.0995455f, 0.210062f, 0.0440327f, -0.0418014f, -0.369878f, 0.225316f, -0.0557571f, 0.0709334f, 0.0543023f, 0.0796459f, 0.25255f, -0.159386f, -0.0934522f, -0.104839f, 0.0688712f, 0.111742f, 0.00943398f, 0.0856374f, -0.0985177f, -0.0684175f, -0.115546f, 0.0298965f, 0.091873f, -0.0915006f, -0.184643f, -0.178712f, 0.172971f, -0.0157093f, 0.252392f, 0.145442f, 0.141314f, -0.22084f, 0.222442f, 0.111181f, -0.090267f, 0.0510653f, -0.0787647f, 0.0409325f, -0.217728f, -0.108518f, 0.150023f, 0.0698339f, -0.0746248f, -0.119398f, -0.251037f, -0.0137289f, -0.0800674f, -0.233002f, -0.0313063f, 0.043344f, 0.233429f, 0.1651f, 0.00250275f, 0.133369f, -0.0415026f, -0.183397f, -0.0211223f, -0.179137f, 0.216047f, 0.067713f, 0.285656f, 0.0776199f, -0.0246818f, -0.0672502f, 0.26802f, -0.186376f, -0.138979f, 0.0811355f, 0.158059f, -0.197622f, -0.0177254f, -0.153898f, -0.177689f, -0.108996f, 0.174994f, 0.239449f, 0.0675454f, 0.0806787f, -0.0662008f, -0.00887528f, -0.00664719f, 0.127022f, 0.0991116f, -0.368529f, -0.0538393f, 0.0116782f, -0.123195f, -0.106161f, 0.0243005f, -0.245301f, -0.455158f, 0.0157164f, -0.0804296f, -0.128388f, 0.0316157f, -0.0924109f, -0.0744619f, -0.107877f, 0.105921f, -0.178489f, -0.0431435f, 0.0759033f, 0.301573f, 0.197598f, -0.21277f, -0.230586f, -0.260702f, -0.186764f, 0.0393819f, -0.0433656f, -0.15258f, 0.0818851f, 0.214227f, -0.0971932f, -0.222086f, 0.271811f, 0.129325f, 0.0963833f, -0.22359f, -0.126754f, -0.086043f, -0.0401761f, 0.167097f, -0.161852f, -0.0883048f, 0.12148f, 0.133283f, 0.31023f, -0.279931f, -0.0923888f, -0.00360134f, -0.110941f, 0.11861f, -0.178082f, -0.134047f, -0.0721862f, 0.24057f, 0.0228249f, -0.0443834f, -0.0184838f, -0.182423f, 0.108273f, -0.118069f, 0.0238422f, -0.0836107f, 0.0237678f, -0.236517f, 0.214724f, -0.141877f, 0.146723f, 0.118346f, 0.0106892f, 0.298396f, 0.336787f, -0.00511313f, -0.183092f, -0.206391f, 0.0823331f, 0.106779f, -0.140549f, -0.200402f, -0.247935f, 0.0752023f, 0.0623815f, 0.286442f, -0.0559569f, -0.260148f, 0.308646f, 0.0602689f, 0.210875f, -0.13931f, 0.157411f, -0.246403f, 0.248925f, 0.221075f, -0.043452f, 0.090084f, 0.175821f, 0.00380028f, -0.31963f, -0.21523f, 0.0354011f, 0.287126f, 0.124315f, -0.000675627f, -0.0920215f, -0.20054f, -0.163084f, -0.352419f, 0.268441f, 0.18658f, -0.177039f, -0.201922f, -0.163047f, 0.0502919f, -0.0382875f, 0.309207f, -0.227246f, 0.098628f, 0.168066f, 0.251f, 0.240027f, -0.153024f, -0.112702f, 0.0366653f, -0.111618f, -0.0123216f, -0.116754f, -0.0528862f, 0.212791f, -0.232102f, -0.360328f, 0.0578408f, -0.00466641f, 0.259755f, -0.0131602f, -0.091054f, 0.14569f, -0.303641f, -0.151817f, -0.0998573f, -0.280946f, 0.376528f, 0.04448f, 0.107218f, 0.0628508f, 0.294171f, 0.0948713f, 0.327833f, -0.137495f, 0.166231f, 0.283417f, 0.171855f, -0.14814f, -0.146515f, -0.251248f, 0.0352434f, 0.081219f, 0.178921f, 0.0395824f, -0.0572049f, -0.210058f, 0.0870533f, 0.290431f, -0.0833238f, -0.0880738f, -0.0389815f, -0.195485f, -0.129034f, 0.136953f, 0.0674639f, 0.0402903f, -0.0573863f, -0.380697f, -0.118153f, -0.112362f, 0.0860391f, 0.269476f, 0.0478969f, 0.110439f, 0.299998f, -0.271639f, -0.0603754f, 0.167915f, 0.216949f, 0.0399614f, 0.271133f, 0.0639911f, -0.0177117f, -0.0604357f, -0.0931152f, -0.0792804f, -0.120433f, -0.0634114f, -0.224258f, 0.0536436f, -0.281947f, 0.00728636f, 0.0432941f, 0.186362f, -0.196283f, 0.00231491f, -0.150873f, -0.0105356f, 0.214099f, 0.045982f, 0.0493453f, -0.00785674f, 0.147207f, 0.000897571f, 0.207443f, 0.00278839f, 0.0235594f, 0.248142f, -0.141834f, 0.101209f, -0.228209f, -0.0715377f, 0.23022f, 0.0286315f, -0.0541625f, -0.248278f, -0.0843264f, -0.110798f, -0.0650086f, 0.0615956f, -0.065479f, 0.0658375f, -0.127663f, -0.0184985f, 0.0405933f, -0.0388555f, -0.0467641f, 0.00126732f, 0.137505f, -0.174712f, -0.0149603f, 0.284231f, -0.0752907f, -0.283954f, 0.0265857f, -0.109413f, 0.158066f, -0.120418f, 0.0787498f, 0.0820226f, -0.240273f, 0.120439f, 0.137253f, 0.251629f, -0.323884f, -0.0727857f, 0.0546593f, -0.166105f, 0.0282882f, -0.0950015f, -0.0694535f, 0.320753f, -0.107542f, -0.143714f, -0.00103674f, -0.0628046f, 0.0181774f, 0.127882f, 0.126069f, -0.0910648f, 0.0156593f, 0.0225915f, -0.00855861f, -0.256768f, -0.0498645f, -0.101668f, -0.143925f, 0.0269016f, 0.155056f, -0.221569f, 0.169176f, -0.0148862f, -0.0477753f, -0.231486f, -0.142791f, 0.0514992f, -0.150237f, 0.0607405f, 0.14396f, -0.0110816f, -0.146016f, 0.271142f, 0.0098035f, 0.141454f, -0.184656f, -0.0511733f, -0.110413f, 0.21975f, 0.0728308f, 0.0761281f, -0.0649793f, 0.148957f, -0.0418635f, 0.111108f, 0.218662f, -0.0266501f, 0.138558f, 0.110233f, -0.210713f, 0.22945f, 0.114577f, -0.00132529f, -0.0180241f, 0.159455f, 0.0939133f, -0.0948153f, 0.163481f, -0.0284647f, 0.233911f, 0.119253f, -0.0559468f, -0.227293f, -0.289383f, 0.0552777f, 0.117951f, 0.0515904f, -0.0827601f, 0.145653f, -0.249137f, -0.16415f, -0.124275f, 0.0807715f, 0.21157f, -0.192048f, -0.00139575f, 0.300138f, 0.305601f, 0.0601648f, -0.270211f, -0.12119f, 0.11401f, -0.152467f, -0.0392632f, -0.0959139f, 0.0717952f, 0.00242218f, -0.107472f, -0.182638f, -0.145264f, 0.135362f, 0.199313f, -0.0914385f, -0.0389064f, 0.00608873f, 0.0506438f, 0.132164f, -0.0483716f, -0.152663f, 0.224642f, 0.105937f, 0.161277f, -0.265081f, -0.00402083f, -0.265596f, -0.275496f, -0.263793f, 0.026688f, -0.262855f, 0.075202f, -0.0100272f, -0.0923861f, 0.237631f, -0.275249f, 0.211804f, -0.192474f, -0.262369f, 0.0608683f, 0.00580527f, 0.156749f, -0.300287f, 0.120679f, -0.0537205f, -0.100919f, -0.160873f, -0.0488564f, -0.0670616f, 0.145287f, 0.0180232f, 0.256173f, -0.0933754f, -0.116503f, 0.0879759f, 0.0255419f, 0.0950465f, 0.0773444f, -0.195572f, 0.051647f, 0.158721f, 0.10445f, 0.110572f, 0.0324524f, 0.16276f, 0.149127f, -0.0974632f, -0.0550347f, 0.035093f, 0.17478f, -0.0252954f, -0.118097f, 0.184107f, -0.0308527f, 0.155886f, 0.117689f, 0.0283587f, 0.0823199f, -0.0285873f, -0.0590301f, 0.0197748f, 0.0625106f, 0.0579126f, -0.229883f, 0.15873f, -0.00505029f, -0.00841248f, 0.226085f, 0.0247777f, -0.0141159f, 0.227687f, -0.0278191f, 0.0189409f, -0.0253571f, 0.0698939f, -0.0698807f, 0.0545163f, -0.207647f, -0.122883f, -0.0396467f, 0.069986f, -0.0128909f, -0.0600531f, 0.0606714f, -0.132039f, 0.189002f, 0.121762f, 0.0354445f, -0.190901f, -0.0774513f, 0.0627303f, 0.00992347f, -0.100464f, -0.235389f, -0.0590721f, -0.0290574f, 0.142578f, -0.126077f, -0.140814f, 0.0625595f, 0.254395f, 0.0338954f, 0.0623635f, 0.0761878f, -0.00952762f, 0.108656f, 0.020149f, 0.154301f, 0.0813017f, -0.149684f, -0.0989566f, 0.168891f, -0.146353f, 0.182689f, -0.028713f, 0.120736f, 0.17482f, -0.190016f, 0.171938f, 0.112379f, 0.119729f, 0.054013f, -0.108569f, -0.166821f, -0.218356f, 0.156699f, -0.0866211f, 0.136752f, -0.018277f, -0.00531032f, -0.0270894f, -0.102209f, -0.0396801f, -0.0202414f, 0.0512913f, -0.0500061f, -0.0990674f, 0.0380721f, 0.0827472f, 0.0256468f, -0.185882f, -0.03345f, 0.0671955f, -0.0172365f, -0.122311f, 0.100796f, 0.119766f, -0.0459132f, -0.128285f, 0.0189742f, -0.034089f, -0.0590628f, -0.0293145f, -0.0904932f, -0.0347329f, -0.0356188f, 0.0503956f, -0.10551f, -0.183609f, 0.105299f, -0.0957505f, 0.0552548f, -0.146465f, 0.0158965f, 0.0871906f, 0.114849f, -0.210778f, 0.163559f, -0.00793764f, -0.178404f, -0.0913532f, 0.0319501f, 0.110972f, -0.0454653f, -0.0690538f, 0.0320533f, -0.136172f, 0.143865f, -0.0460293f, 0.13357f, 0.000335077f, 0.00127623f, -0.163911f, 0.140985f, 0.0650746f, -0.204189f, -0.0657119f, 0.0304585f, 0.20295f, -0.0824022f, -0.0152108f, 0.178112f, 0.073401f, 0.0610027f, 0.0971689f, -0.132705f, 0.152516f, 0.0551894f, 0.0317134f, 0.00783934f, -0.000933294f, 0.128896f, 0.111081f, -0.0681549f, 0.0789946f, 0.00659449f, -0.0652759f, -0.02125f, -0.0141384f, -0.0912223f, 0.14441f, -0.127958f, 0.113041f, 0.0734233f, 0.135933f, -0.0334428f, -0.0374656f, -0.078383f, -0.0761742f, -0.0492804f, -0.0327142f, 0.0239354f, -0.105758f, 0.119813f, -0.0668918f, -0.0354328f, 0.0894983f, -0.0691555f, 0.0657803f, -0.118261f, 0.127709f, -0.11419f, 0.016955f, 0.164975f, 0.129895f, -0.243234f, 0.0729334f, 0.0130744f, -0.00727367f, -0.0354098f, -0.034892f, 0.0775353f, 0.0907407f, 0.17934f, 0.0834201f, 0.0308962f, 0.0948445f, 0.14603f, 0.226004f, -0.0944142f, 0.0811224f, -0.0234329f, -0.219841f, -0.0498377f, -0.0966445f, 0.0166217f, -0.0207772f, -0.0219054f, -0.067389f, -0.0917322f, -0.229695f, 2.99064e-05f, 0.0782215f, -0.151752f, -0.143018f, -0.0209323f, 0.215054f, -0.109927f, 0.11515f, 0.13622f, -0.112315f, 0.0380543f, 0.0813729f, 0.0891942f, 0.0677379f, -0.0207585f, -0.0957231f, -0.161719f, -0.0837494f, 0.0722308f, -0.195468f, -0.04572f, -0.227505f, 0.0749411f, 0.0743138f, -0.0127444f, 0.029076f, -0.0140635f, 0.00403912f, -0.134728f, 0.0598586f, 0.00554668f, -0.0833162f, 0.0980412f, -0.0352213f, 0.100239f, -0.0245188f, -0.134906f, 0.0972595f, -0.059425f, 0.0988204f, 0.192529f, -0.105641f, -0.177193f, -0.144072f, -0.0937462f, -0.161535f, 0.155564f, 0.120661f, -0.103586f, 0.144079f, 0.0522185f, -0.145088f, 0.0849978f, 0.0762584f, -0.0502383f, -0.0275067f, -0.0335134f, 0.10085f, 0.139636f, -0.0233733f, -0.0872217f, -0.00471851f, 0.101845f, -0.0187078f, 0.220393f, 0.018414f, -0.108874f, 0.0312686f, 0.139477f, -0.138129f, -0.0574222f, -0.042213f, 0.118833f, 0.283591f, -0.112849f, -0.279889f, -0.00766143f, 0.0520252f, 0.0601191f, -0.0323574f, 0.022301f, -0.0446263f, -0.0326654f, -0.0875269f, 0.0797406f, -0.057065f, -0.182374f, -0.060164f, -0.160412f, -0.0626368f, 0.151958f, 0.113011f, -0.150251f, -0.056565f, 0.232485f, -0.0437653f, -0.133604f, -0.18859f, -0.0641458f, 0.158919f, -0.0867232f, -0.117983f, -0.045471f, -0.0942678f, -0.00732013f, -0.00069378f, -0.182903f, -0.0258131f, 0.138266f, -0.118548f, 0.171328f, 0.0455284f, 0.0214356f, 0.070694f, -0.101525f, 0.0528208f, -0.0630588f, -0.0602447f, -0.109371f, -0.0485908f, 0.14281f, 0.266226f, 0.0708608f, -0.0542033f, -0.0841016f, -0.0674517f, -0.238364f, 0.0629834f, -0.0351353f, 0.0878836f, 0.106211f, -0.100152f, -0.171936f, 0.0860876f, 0.0741428f, 0.204209f, 0.160701f, 0.0350726f, 0.107696f, 0.00706109f, -0.136419f, -0.0259258f, 0.222881f, -0.165645f, -0.0256174f, -0.201226f, -0.155155f, 0.0721744f, 0.202047f, -0.0600548f, -0.0147882f, 0.183306f, 0.165935f, 0.0947273f, 0.0680924f, -0.0938372f, 0.171595f, 0.0308984f, -0.0576835f, -0.102029f, 0.00556361f, 0.0986236f, 0.0776183f, -0.0084258f, -0.0252845f, -0.0496655f, -0.126965f, -0.116496f, 0.102041f, -0.0290091f, 0.131191f, 0.148653f, 0.0407816f, -0.138496f, -0.0855904f, 0.0626293f, -0.171025f, -0.199864f, 0.100404f, -0.0861846f, 0.212757f, -0.0171748f, -0.193948f, -0.0394656f, -0.00089238f, 0.0333118f, 0.0223514f, 0.0493396f, -0.0415684f, 0.0651081f, -0.0630212f, -0.106719f, 0.197304f, -0.0644288f, -0.015067f, 0.139238f, 0.119986f, 0.12565f, 0.127143f, 0.217454f, -0.0995729f, 0.0849242f, 0.000567889f, -0.0850938f, -0.0869346f, -0.0194572f, -0.00631079f, -0.0945775f, -0.00562044f, 0.0621643f, 0.114353f, -0.121751f, 0.107837f, -0.058715f, 0.0782524f, -0.0739535f, -0.20895f, -0.0578014f, 0.193901f, -0.0214399f, 0.162999f, -0.0433186f, 0.166246f, 0.0275657f, -0.168568f, 0.078959f, -0.0988922f, -0.172428f, -0.155185f, -0.0392664f, -0.0521705f, -0.179941f, 0.0586462f, 0.148167f, -0.00935435f, -0.0350696f, 0.0474452f, 0.256108f, 0.186132f, 0.0895598f, 0.0841f, -0.0193621f, -0.0538114f, -0.242178f, 0.124432f, 0.127835f, 0.00489749f, 0.075817f, 0.169148f, -0.0035574f, 0.132744f, 0.143867f, 0.112194f, 0.203239f, 0.0220801f, 0.0300957f, 0.0605305f, 0.0540242f, -0.00599926f, 0.100701f, 0.0103895f, -0.0852616f, 0.0146052f, -0.169659f, -0.0985326f, 0.0531135f, 0.226042f, -0.125796f, 0.235582f, 0.114771f, -0.0733308f, -0.0545835f, 0.142227f, -0.127548f, -0.139663f, -0.0156484f, 0.0871898f, -0.0238089f, -0.120883f, -0.178158f, 0.00726171f, -0.0107774f, -0.120923f, 0.0825809f, 0.0811826f, 0.0926195f, -0.0986019f, -0.0492334f, 0.141362f, 0.0651243f, -0.0610013f, -0.157257f, 0.113975f, 0.033576f, -0.00464246f, -0.0761102f, -0.0974445f, 0.000262395f, -0.0214601f, 0.0701375f, 0.00244598f, 0.21081f, -0.00962809f, -0.199788f, -0.257433f, -0.0624685f, -0.0195279f, 0.00586239f, -0.0894383f, 0.0467359f, 0.0943914f, -0.0237342f, 0.0513122f, 0.0101721f, -0.214378f, 0.167953f, -0.0805943f, 0.0458458f, -0.105918f, -0.0352413f, 0.0342794f, 0.0323309f, 0.0138181f, -0.200297f, 0.0332104f, 0.0208095f, 0.191786f, -0.154512f, 0.273749f, -0.066564f, 0.0364442f, 0.0229158f, -0.0493724f, 0.152684f, 0.0739582f, 0.242812f, -0.127883f, 0.217661f, 0.1644f, 0.189578f, 0.306941f, -0.010986f, -0.0348952f, -0.0778488f, -0.121703f, -0.186244f, -0.028799f, 0.0134514f, -0.315308f, -0.0681953f, 0.0498026f, 0.0840889f, 0.186131f, -0.0403638f, 0.0392371f, 0.109554f, -0.0757571f, -0.00571238f, -0.124376f, 0.0504728f, 0.0156168f, 0.075779f, 0.248761f, -0.0395651f, -0.193524f, 0.0288785f, -0.120776f, 0.243005f, 0.189514f, 0.0262845f, -0.157209f, -0.162537f, 0.0881619f, 0.0870143f, 0.115839f, 0.0423617f, 0.174546f, -0.178372f, -0.151534f, 0.0432969f, -0.00715744f, -0.0054543f, 0.0153132f, -0.0447803f, -0.067454f, -0.333457f, 0.199055f, -0.09003f, -0.226167f, -0.0458703f, 0.0889904f, -0.173834f, -0.177442f, -0.250503f, 0.157983f, -0.0219668f, 0.276041f, -0.161844f, -0.18825f, 0.235542f, 0.0677696f, 0.115331f, 0.142585f, 0.144532f, 0.119474f, 0.027405f, 0.0670404f, 0.0016508f, 0.0955282f, -0.0188826f, -0.131891f, -0.173197f, 0.077863f, 0.17067f, 0.0801265f, 0.0433964f, -0.0918321f, -0.145407f, 0.143413f, 0.0048322f, 0.0737725f, 0.105481f, -0.152314f, -0.149791f, 0.220295f, -0.232536f, 0.0218761f, -0.0428961f, -0.167897f, 0.123949f, 0.0581458f, 0.158307f, 0.0563714f, 0.113445f, -0.250092f, 0.0768858f, -0.0563204f, 0.0420112f, -0.130935f, 0.0996081f, 0.0788671f, -0.0756683f, 0.141243f, -0.0802574f, -0.0536022f, 0.0622195f, 0.0993495f, 0.0861282f, 0.12755f, 0.0110484f, 0.326789f, 0.0194653f, -0.0730478f, 0.178946f, -0.0741723f, 0.0724788f, 0.0132654f, 0.0173251f, -0.172985f, 0.253405f, -0.161581f, 0.217303f, -0.130484f, -0.241381f, -0.18979f, -0.0461685f, 0.045002f, 0.180166f, 0.111025f, -0.18123f, 0.00432572f, -0.0063179f, 0.214879f, 0.132526f, -0.131395f, 0.0977497f, -0.0197662f, 0.134327f, 0.0154314f, -0.0347183f, 0.0759945f, 0.0809093f, 0.161192f, 0.0256557f, -0.208369f, 0.117721f, 0.19305f, 0.139934f, 0.266154f, -0.17279f, -0.272182f, -0.122422f, 0.270953f, 0.0748471f, -0.0085484f, -0.058701f, 0.158693f, -0.0439193f, 0.133868f, 0.0474198f, 0.151757f, -0.0846555f, -0.0138877f, 0.177742f, 0.0623559f, 0.159777f, -0.307739f, -0.0860388f, -0.182659f, -0.118621f, 0.126535f, 0.128768f, -0.280069f, 0.104732f, 0.00510368f, -0.0914778f, 0.0723728f, 0.156168f, -0.0349216f, 0.114231f, 0.251795f, -0.0557894f, -0.15283f, -0.192657f, 0.142757f, 0.117385f, 0.219177f, -0.0305167f, -0.107516f, 0.105613f, 0.221387f, 0.0280956f, -0.120376f, -0.191024f, -0.136907f, 0.159829f, -0.142414f, -0.024133f, -0.0572843f, 0.0581632f, 0.0192575f, -0.164006f, -0.0448124f, 0.101575f, 0.0540421f, -0.0659371f, 0.313912f, 0.101607f, 0.0957315f, 0.0615699f, 0.0948634f, 0.0318547f, -0.169522f, -0.140396f, -0.265123f, -0.0793151f, 0.00460759f, -0.239174f, 0.0827461f, 0.00591803f, 0.111054f, 0.0283775f, 0.0460973f, 0.188202f, -0.0410971f, -0.0019906f, 0.0216892f, 0.159264f, 0.00406104f, 0.00491298f, -0.171734f, 0.035546f, -0.155564f, 0.0721104f, 0.128218f, -0.190553f, -0.178336f, -0.0278698f, -0.0323461f, 0.0246597f, 0.0378962f, -0.0622058f, -0.296924f, -0.207349f, -0.0425642f, -0.249506f, -0.0669722f, -0.122827f, -0.0626744f, -0.0277028f, -0.125206f, -0.0579452f, 0.197048f, 0.152209f, 0.088356f, 0.209249f, 0.255998f, -0.0439646f, -0.0979566f, -0.0373196f, 0.166431f, -0.174026f, 0.0579009f, -0.0661197f, -0.137598f, 0.315941f, -0.110227f, 0.234867f, -0.139944f, 0.24313f, 0.00913102f, 0.0317302f, 0.262072f, -0.285681f, -0.101986f, -0.0929656f, -0.307092f, -0.210156f, 0.253199f, -0.0630234f, 0.0903642f, 0.0293378f, -0.0376816f, -0.000254135f, 0.150392f, -0.0793424f, 0.195068f, 0.0708093f, -0.260311f, -0.00852608f, 0.163103f, 0.0753166f, -0.155131f, -0.267587f, -0.00738501f, 0.126462f, 0.00241438f, -0.0421179f, 0.0506461f, -0.119077f, 0.0370317f, -0.111656f, 0.102491f, 0.225032f, -0.254813f, 0.0800601f, -0.0432519f, -0.0609841f, -0.0917156f, -0.0914719f, 0.0306038f, -0.00676507f, -0.201117f, -0.0217601f, 0.227015f, 0.0213654f, 0.0838721f, 0.0612377f, -0.0963866f, 0.11363f, 0.0539502f, 0.138539f, -0.201915f, 0.209722f, 0.169309f, -0.0731156f, -0.0505456f, 0.000727296f, -0.0646822f, -0.178946f, 0.164027f, 0.0265334f, -0.109195f, 0.0745978f, -0.308298f, 0.0267335f, 0.0122975f, -0.0557493f, 0.0615442f, 0.113927f, 0.0291593f, 0.100656f, 0.0814149f, -0.0706216f, -0.0506533f, 0.00742636f, -0.011678f, -0.110267f, 0.0954096f, 0.0304893f, -0.00635589f, 0.0125754f, 0.136112f, 0.078173f, -0.00934486f, -0.0450686f, 0.113881f, 0.380983f, 0.182455f, 0.059045f, 0.233691f, -0.0571435f, -0.0145911f, -0.0858116f, 0.028967f, 0.00736072f, -0.276302f, 0.0931704f, -0.0217445f, 0.125032f, -0.118164f, -0.1469f, -0.0923969f, 0.151712f, -0.188983f, -0.202745f, -0.0247756f, -0.078462f, 0.254292f, 0.157565f, 0.0209311f, -0.149718f, -0.171419f, 0.0103059f, 0.0288314f, -0.0578096f, -0.00406384f, -0.03915f, -0.0484028f, 0.0272772f, -0.295893f, 0.160571f, 0.0647122f, 0.063085f, 0.0827959f, -0.00364164f, 0.0597624f, 0.0888486f, -0.04772f, -0.171446f, 0.0881116f, 0.0420259f, 0.348581f, 0.142075f, -0.263917f, -0.0649891f, 0.0151639f, 0.313287f, -0.20343f, -0.179927f, 0.082096f, 0.0491313f, 0.174021f, -0.0459365f, -0.250008f, -0.0424349f, -0.0548341f, -0.0114733f, -0.0978311f, -0.191615f, 0.110115f, -0.0966773f, -0.0453852f, -0.105726f, -0.0043193f, 0.22111f, 0.173609f, -0.104703f, -0.211551f, -0.295612f, -0.118374f, -0.0464579f, -0.0626322f, -0.0541694f, -0.215615f, -0.0291144f, 0.142562f, 0.0872102f, -0.050666f, 0.0295913f, -0.119385f, -0.0971449f, 0.0248326f, -0.012875f, -0.228991f, -0.128531f, 0.043824f, 0.0418475f, 0.0712492f, 0.283315f, 0.0743832f, -0.104049f, -0.242112f, -0.114109f, 0.312712f, -0.151648f, -0.157711f, 0.15516f, 0.200546f, -0.202333f, -0.222558f, -0.184893f, 0.126889f, -0.098374f, 0.111352f, -0.0200626f, -0.118525f, 0.0778942f, 0.0170781f, -0.208561f, 0.0262325f, -0.158946f, 0.305204f, 0.0814242f, -0.246869f, 0.0504178f, 0.0275712f, -0.0810107f, -0.043377f, 0.19658f, 0.0324054f, 0.0559548f, 0.188152f, 0.200897f, -0.0827855f, -0.0130013f, 0.170155f, 0.0564236f, -0.194414f, -0.160316f, -0.0630302f, 0.0477805f, -0.24378f, -0.0625506f, 0.234984f, 0.0319193f, -0.193845f, -0.175627f, 0.149586f, 0.00530179f, -0.0380744f, -0.0927202f, 0.0163571f, 0.16197f, -0.113058f, 0.0642342f, -0.0698528f, 0.179254f, 0.288273f, -0.22285f, -0.162215f, 0.0272851f, -0.0616013f, 0.105135f, -0.113036f, -0.0162555f, 0.0369684f, 0.0454933f, -0.161403f, -0.242077f, 0.145789f, 0.135558f, 0.0776096f, 0.192473f, 0.172439f, 0.0644486f, 0.0202164f, -0.0661208f, -0.0116247f, 0.16262f, 0.0143152f, 0.108518f, -0.190077f, -0.0278277f, 0.0708352f, 0.220209f, -0.0758131f, -0.156014f, 0.110712f, -0.0923041f, 0.0452518f, 0.265415f, 0.131201f, 0.129215f, 0.0154888f, 0.169101f, -0.0646214f, 0.210541f, -0.068673f, -0.13987f, 0.0469011f, -0.144731f, 0.00945669f, 0.267655f, -0.0107695f, -0.0174129f, 0.12808f, 0.0718236f, 0.222925f, 0.138693f, 0.0375241f, -0.374849f, -0.0760236f, -0.123413f, -0.167895f, 0.012677f, -0.228084f, 0.0629728f, -0.0108997f, 0.0159086f, -0.0257503f, -0.225753f, 0.0638734f, 0.106592f, 0.020774f, -0.0703168f, -0.0136982f, 0.016058f, 0.0684309f, -0.231729f, 0.0526106f, 0.0479343f, 0.0759927f, -0.0131831f, -0.0135048f, -0.0658087f, 0.00539401f, 0.0567524f, -0.295204f, 0.127879f, 0.0679082f, -0.1061f, 0.0967018f, -0.179462f, 0.0619029f, 0.0912443f, 0.0822847f, -0.0114358f, 0.123296f, -0.066484f, 0.0885114f, -0.0224917f, 0.0546221f, -0.191331f, 0.260248f, -0.101274f, -0.0619582f, -0.0951566f, -0.203054f, -0.0597455f, 0.125013f, -0.00855286f, 0.111069f, -0.0515397f, -0.0817334f, -0.0172015f, -0.093368f, 0.0569934f, 0.181779f, -0.126425f, -0.0355078f, 0.0347696f, -0.00742001f, -0.12212f, 0.122928f, -0.051465f, 0.0310742f, 0.157407f, -0.0431013f, 0.0657916f, 0.10412f, 0.0999419f, 0.0510365f, 0.156059f, 0.00555467f, 0.215592f, -0.0603623f, 0.0982795f, -0.093975f, 0.0733742f, 0.0260261f, 0.155986f, 0.106074f, -0.204909f, 0.0941266f, 0.068856f, -0.0360997f, 0.0571157f, -0.134471f, 0.0599088f, -0.0573263f, -0.132595f, 0.29008f, -0.0416761f, -0.0201625f, -0.239251f, -0.065397f, 0.0660558f, -0.176596f, -0.117639f, -0.166649f, -0.00129247f, -0.254019f, 0.0371722f, -0.00413114f, 0.0399403f, 0.158107f, -0.147673f, 0.0732855f, -0.222681f, -0.0396465f, -0.0280158f, 0.160294f, 0.132639f, 0.0117112f, 0.0334283f, 0.0102214f, 0.128507f, 0.148036f, -0.0116935f, -0.101695f, 0.0107872f, 0.0386933f, -0.165884f, -0.0344376f, -0.0362546f, -0.075891f, -0.114798f, 0.082429f, -0.0867472f, -0.267496f, 0.031094f, 0.0423433f, 0.0421048f, 0.02017f, -0.22277f, 0.0531722f, -0.329068f, 0.113566f, -0.178418f, 0.0764453f, -0.14827f, -0.12948f, -0.0705986f, -0.157549f, 0.0056318f, -0.0920456f, 0.104082f, 0.157043f, -0.109697f, -0.00366995f, -0.148945f, -0.122871f, -0.164872f, 0.0807918f, 0.0989407f, -0.0371196f, -0.305033f, 0.16413f, 0.309187f, -0.25585f, 0.145169f, -0.156285f, 0.144749f, -0.0910816f, 0.0778361f, -0.113894f, 0.252064f, -0.00678723f, -0.084262f, 0.174871f, 0.0210947f, 0.132348f, -0.0733244f, -0.0110154f, 0.000102178f, 0.199216f, 0.185539f, -0.0802969f, -0.0558773f, -0.0448182f, 0.0350302f, -0.099088f, 0.054978f, -0.072628f, -0.0941154f, 0.099902f, 0.0647573f, -0.122586f, 0.00431809f, 0.128847f, 0.11057f, 0.0197548f, -0.0261753f, 0.0922194f, 0.045355f, -0.118285f, -0.0926583f, 0.0814293f, -0.132382f, 0.0712574f, 0.0752002f, 0.0752279f, 0.0647072f, -0.230879f, 0.0426543f, -0.0361366f, 0.130416f, 0.05584f, 0.126847f, 0.217051f, -0.0905681f, -0.0701023f, 0.111716f, 0.080288f, 0.0659255f, 0.0685194f, 0.139239f, -0.0552814f, 0.151142f, -0.103071f, -0.213565f, 0.0118545f, -0.147407f, 0.113756f, -0.169987f, -0.103932f, 0.103159f, -0.0271286f, 0.111348f, 0.0675121f, 0.0200299f, 0.137489f, 0.122116f, -0.12511f, 0.0842212f, -0.0741355f, 0.183629f, 0.00268983f, -0.127142f, -0.00604911f, 0.0313813f, -0.116117f, 0.134222f, 0.0776934f, -0.0383093f, -0.029512f, 0.0773529f, -0.0497412f, -0.110143f, 0.0151258f, 0.108396f, -0.133549f, 0.0990732f, -0.103938f, 0.0365595f, 0.00793769f, -0.0230449f, 0.240378f, -0.0657015f, -0.0129879f, -0.158412f, 0.0186037f, 0.0208692f, 0.00740401f, -0.0492264f, -0.000380567f, 0.0150643f, 0.0994752f, 0.0753762f, -0.177428f, -0.148502f, -0.0615379f, 0.0145355f, -0.000817852f, -0.134951f, 0.180161f, -0.0835999f, 0.127956f, -0.181814f, -0.054682f, 0.0730952f, -0.0688505f, -0.136221f, 0.17352f, 0.0804156f, -0.00982206f, -0.0639278f, 0.104593f, -0.123036f, -0.0702646f, 0.152696f, 0.202756f, -0.0554998f, 0.0371379f, 0.0491248f, -0.175525f, 0.228879f, -0.0532126f, 0.106805f, 0.0529807f, -0.0782351f, 0.0101454f, 0.00929617f, 0.0672716f, -0.107626f, -0.0373555f, -0.0412753f, 0.0740126f, 0.13865f, 0.0185464f, -0.0549764f, -0.00642675f, -0.0279757f, 0.0288595f, -0.0956088f, 0.0675988f, 0.0611219f, -0.129637f, -0.0158217f, 0.0863346f, 0.192688f, 0.0846562f, -0.0309797f, 0.0441616f, 0.0152238f, -0.00904116f, 0.104298f, -0.169877f, -0.00676222f, 0.135208f, 0.0625069f, -0.0367092f, 0.245529f, 0.00676351f, 0.00897848f, 0.00335381f, 0.157313f, -0.0606589f, -0.00409023f, -0.104861f, 0.119587f, 0.103691f, 0.071306f, 0.109303f, 0.101926f, 0.0752257f, 0.101338f, -0.107469f, 0.0275914f, 0.175163f, -0.0646133f, 0.048304f, 0.175792f, 0.131829f, -0.223767f, -0.122186f, 0.221545f, -0.1024f, 0.0924947f, 0.160557f, -0.135428f, -0.0692995f, -0.0829554f, 0.0511483f, -0.115588f, 0.164715f, -0.0855993f, 0.0807679f, -0.0370123f, -0.164853f, -0.0565466f, 0.124644f, -0.0806425f, 0.0436532f, -0.0899212f, 0.0435019f, -0.051207f, -0.0397803f, 0.0561083f, 0.123739f, -0.184819f, 0.0665513f, 0.067695f, 0.209673f, -0.0179336f, -0.14014f, -0.0410748f, 0.158893f, -0.160368f, 0.118653f, 0.00479852f, -0.0579189f, -0.226925f, -0.127757f, -0.0927974f, -0.00624752f, 0.156266f, 0.0309228f, 0.244251f, 0.0859649f, -0.0462658f, 0.0170271f, -0.039551f, 0.132923f, 0.157377f, 0.0336723f, 0.151731f, 0.187629f, -0.132562f, 0.100016f, 0.189596f, 0.0619855f, -0.14472f, -0.109455f, 0.128306f, 0.0746244f, -0.141822f, 0.083865f, -0.177605f, 0.000979996f, 0.110077f, 0.0221269f, 0.0157945f, -0.0462954f, -0.0441075f, -0.0136999f, 0.142205f, 0.0430802f, -0.0817761f, -0.0926214f, 0.186813f, -0.00698171f, -0.30773f, 0.0383751f, 0.144418f, -0.111399f, 0.0469681f, 0.00760821f, 0.113258f, 0.126495f, 0.194975f, -0.119669f, -0.00614896f, -0.121871f, -0.0884445f, -0.0053991f, 0.0483485f, 0.00620109f, -0.0250016f, 0.217742f, -0.115312f, -0.0362843f, 0.173093f, -0.00708419f, 0.145589f, -0.29037f, -0.225361f, -0.0508772f, 0.0183557f, 0.247037f, 0.0103457f, -0.0844724f, 0.0787286f, 0.15908f, 0.0219444f, -0.0287218f, -0.152666f, -0.209655f, 0.127243f, -0.144981f, -0.0281308f, -0.145741f, 0.1513f, -0.0558122f, 0.231981f, 0.238421f, 0.0162985f, 0.0409134f, 0.111566f, -0.0245885f, -0.0886582f, 0.0604651f, 0.0611159f, 0.216852f, 0.0999822f, -0.0586662f, 0.124513f, -0.137649f, -0.0918642f, -0.0875375f, -0.194678f, -0.159639f, 0.0617664f, 0.126546f, 0.183846f, 0.271566f, -0.00972164f, 0.160595f, -0.00452168f, -0.00508081f, 0.10572f, 0.125535f, 0.145731f, 0.00991814f, -0.215682f, 0.101355f, 0.0563343f, 0.0718501f, -0.179699f, 0.0592222f, 0.068074f, 0.206391f, -0.0800909f, 0.0694557f, -0.205268f, 0.0790882f, -0.0299722f, 0.0328958f, -0.22226f, 0.163137f, 0.113765f, 0.189995f, 0.0561622f, 0.126108f, 0.0923226f, -0.140676f, 0.0320688f, -0.00552956f, -0.0399966f, -0.255051f, -0.0550279f, -0.0443621f, -0.0595704f, -0.2941f, -0.276663f, -0.0812085f, -0.0933787f, -0.107642f, 0.0757191f, 0.11343f, 0.124828f, 0.0244528f, 0.107093f, -0.07285f, 0.0593669f, 0.126584f, 0.0145317f, 0.0994021f, 0.0394282f, 0.0485823f, 0.146135f, -0.147184f, 0.0819009f, 0.130321f, 0.143849f, 0.139627f, 0.162487f, 0.123349f, -0.0472504f, 0.02017f, 0.203044f, 0.154825f, -0.250578f, 0.157922f, -0.0230071f, 0.192994f, -0.0823696f, -0.0146725f, -0.111273f, 0.0216887f, 0.099629f, 0.0893822f, -0.0865185f, 0.00872292f, 0.205299f, -0.0826889f, 0.153373f, 0.000872525f, -0.0657825f, -0.153709f, -0.0910941f, 0.23811f, 0.171332f, 0.210471f, 0.0944511f, -0.0745431f, 0.117265f, 0.0740554f, -0.0851388f, 0.197772f, 0.0187406f, -0.0430539f, -0.0957531f, 0.033824f, 0.0103936f, -0.212861f, -0.0229622f, -0.229699f, 0.0361831f, -0.0514481f, 0.0818986f, 0.0723826f, 0.0626998f, 0.0288724f, 0.0613447f, -0.206696f, 0.0752967f, -0.0984389f, -0.0141848f, -0.0731905f, 0.00749142f, 0.0454282f, -0.131315f, -0.0216468f, 0.0487113f, 0.0960844f, -0.162743f, -0.0402181f, 0.0837139f, 0.11989f, -0.261032f, 0.139201f, -0.147145f, -0.174883f, 0.0843761f, -0.0320861f, -0.108861f, 0.186904f, -0.0235685f, -0.26853f, 0.176187f, -0.16111f, -0.0984887f, 0.0590704f, -0.1178f, -0.0833043f, 0.228721f, -0.228683f, 0.132263f, -0.134183f, -0.109112f, 0.0759381f, -0.0190113f, -0.0782448f, -0.114341f, 0.0112272f, -0.0812946f, -0.176858f, -0.151535f, 0.113613f, 0.020333f, -0.196548f, -0.188197f, -0.0755765f, -0.100726f, -0.152274f, -0.171688f, 0.016707f, -0.0612959f, 0.0821006f, -0.00693101f, 0.0963083f, -0.0185787f, 0.00859611f, -0.13391f, -0.159264f, 0.0637839f, 0.0492761f, 0.170757f, 0.124234f, 0.17478f, -0.171584f, -0.19575f, 0.0305527f, 0.0820228f, 0.0644095f, 0.0950561f, -0.0394369f, 0.0144416f, -0.00430576f, -0.00816449f, 0.00405542f, -0.0392639f, -0.200032f, -0.0186439f, -0.12089f, -0.0359595f, 0.0391866f, 0.043962f, -0.145558f, -0.0706456f, 0.00599287f, -0.181787f, 0.172927f, -0.0740292f, 0.0265004f, -0.0547782f, -0.0978343f, -0.0103388f, -0.0781255f, -0.101391f, -0.0991284f, -0.0160853f, 0.228931f, -0.0903734f, -0.0860495f, -0.109572f, -0.0142525f, -0.107826f, -0.0164304f, 0.0244624f, 0.00686399f, 0.0285574f, 0.0536486f, 0.0148123f, -0.039781f, 0.0222879f, 0.013698f, -0.118499f, 0.00470781f, 0.155803f, -0.127333f, -0.021993f, 0.0764481f, 0.062905f, -0.0132533f, 0.0135704f, -0.107338f, 0.0485827f, -0.0103023f, 0.00648726f, 0.075638f, -0.130402f, 0.142504f, -0.103121f, -0.0453575f, 0.0882966f, -0.122674f, 0.084565f, -0.122625f, -0.110014f, 0.0290101f, 0.0438742f, -0.0688265f, -0.250084f, -0.135594f, -0.00421102f, -0.00195385f, 0.191248f, 0.0250235f, -0.233383f, 0.184158f, -0.080942f, -0.073205f, 0.022567f, 0.0479707f, 0.0884061f, -0.156527f, 0.139125f, -0.145623f, -0.12639f, 0.0742872f, -0.0477506f, 0.0707121f, 0.0250056f, -0.120081f, 0.13653f, -0.0826601f, -0.0699522f, 0.238373f, 0.0622441f, -0.193281f, 0.0496967f, -0.046022f, -0.118048f, 0.0512546f, 0.120459f, 0.0772901f, -0.0491062f, -0.143132f, 0.159608f, -0.078558f, -0.028207f, 0.0117668f, -0.170082f, 0.228744f, -0.0982485f, 0.0801197f, 0.0683394f, -0.0214999f, -0.11473f, 0.0027407f, 0.014691f, -0.0796018f, 0.0230833f, 0.164201f, 0.113754f, -0.0928565f, 0.181538f, 0.193713f, 0.0543803f, -0.160314f, 0.109046f, 0.0374341f, -0.000714546f, 0.0377511f, -0.0790162f, -0.134332f, -0.102591f, -0.164621f, 0.0465957f, -0.0781098f, -0.119666f, -0.0900004f, -0.0433751f, 0.0698649f, -0.109105f, 0.0846672f, -0.0466755f, 0.0646632f, -0.0903237f, -0.058028f, 0.0193309f, 0.0135644f, 0.173045f, 0.0544439f, -0.0739259f, -0.123369f, 0.152527f, 0.0965469f, -8.47201e-05f, -0.0212943f, -0.0499532f, 0.0452853f, 0.027074f, 0.0564634f, 0.0893777f, -0.136117f, 0.0709636f, 0.073323f, 0.117645f, -0.128197f, -0.0662458f, -0.0653662f, 0.134332f, -0.0108597f, -0.0960276f, -0.0563148f, -0.184786f, 0.0419541f, 0.0793482f, 0.12296f, 0.129421f, 0.0286057f, 0.0499827f, 0.022241f, -0.0447557f, 0.0115302f, 0.0740475f, 0.0118782f, -0.233746f, 0.133297f, -0.157077f, -0.0472386f, -0.0866339f, 0.108501f, 0.0279363f, 0.0861243f, 0.00571474f, 0.0710282f, 0.185917f, 0.0830299f, 0.0449519f, 0.0168467f, 0.0755087f, -0.0808754f, 0.0478822f, 0.00947055f, 0.140272f, 0.0763818f, 0.112357f, -0.00486273f, -0.125768f, -0.0960602f, 0.00331944f, 0.133888f, 0.0360877f, -0.0399373f, 0.140235f, 0.0773075f, -0.17233f, -0.127358f, 0.0791363f, 0.0894272f, -0.0674105f, -0.0875999f, -0.0298155f, 0.0707758f, 0.104651f, 0.217251f, -0.0790959f, 0.137735f, 0.0880792f, 0.0419914f, -0.048245f, 0.060402f, -0.246039f, 0.0156257f, 0.0676017f, -0.107902f, 0.189404f, -0.11522f, 0.0948544f, -0.16983f, -0.0534158f, -0.0724939f, 0.0359896f, 0.101906f, -0.130953f, 0.173746f, 0.109504f, 0.161546f, 0.0983266f, 0.176997f, -0.161702f, -0.0462869f, -0.0225098f, 0.120441f, 0.118993f, -0.164212f, 0.0314712f, 0.113393f, -0.0226438f, -0.0448914f, 0.0248218f, 0.122894f, -0.0194559f, 0.0741964f, -0.0453938f, 0.106798f, 0.0638129f, 0.047994f, 0.000234058f, -0.047904f, 0.222143f, -0.148389f, 0.0634995f, -0.0176762f, -0.019744f, 0.0264861f, 0.0199208f, -0.0592902f, 0.22816f, 0.00450264f, -0.276581f, -0.203022f, 0.178663f, -0.139721f, 0.0316202f, -0.00194135f, -0.517408f, 0.125071f, 0.218832f, 0.168506f, 0.169155f, 0.0235362f, -0.161593f, -0.240142f, 0.202011f, 0.048242f, 0.146121f, -0.178357f, 0.210137f, -0.144419f, -0.265597f, 0.0735004f, 0.109126f, -0.0723237f, 0.187172f, 0.0555017f, 0.0151787f, 0.254463f, 0.134672f, -0.185622f, 0.0524518f, 0.13189f, 0.270217f, 0.217396f, 0.304405f, -0.115147f, -0.0150159f, -0.136513f, 0.177344f, 0.122644f, 0.117269f, -0.087649f, 0.153983f, -0.0288075f, 0.198659f, 0.27021f, 0.152033f, 0.193428f, -0.0968978f, 0.165709f, -0.175538f, 0.0745273f, -0.227099f, -0.177597f, -0.0782343f, 0.0373077f, -0.197458f, 0.163292f, -0.34673f, -0.0389887f, -0.329981f, -0.178505f, 0.156489f, -0.220812f, 0.137892f, -0.357149f, -0.019134f, 0.0427378f, 0.122919f, -0.00817759f, -0.125355f, -0.107764f, -0.164473f, -0.0788569f, -0.140393f, -0.201219f, 0.158616f, 0.218163f, -0.212286f, 0.0698441f, 0.167883f, -0.00376443f, -0.0977824f, -0.043093f, 0.00623548f, -0.0665808f, 0.0673868f, 0.0232857f, 0.161073f, 0.142265f, -0.176053f, -0.314019f, -0.27998f, -0.485801f, -0.1746f, 0.104449f, -0.115372f, -0.0933207f, 0.0502798f, 0.259912f, 0.161367f, -0.152849f, -0.00255872f, 0.0133392f, -0.0947827f, -0.0695104f, -0.285129f, 0.128217f, 0.00554153f, -0.014755f, -0.0353507f, -0.265608f, -0.0873121f, -0.163748f, -0.160833f, -0.00755239f, 0.00612598f, 0.283413f, -0.107959f, -0.0132288f, -0.185202f, 0.139513f, -0.0245854f, 0.0764628f, 0.184982f, -0.0302999f, -0.0519456f, 0.155412f, 0.0130306f, 0.189678f, -0.0144294f, -0.0305119f, 0.193566f, -0.173438f, -0.26712f, -0.0977974f, -0.207117f, 0.296952f, -0.252072f, 0.187287f, -0.0921238f, 0.0150262f, 0.063982f, -0.149279f, 0.0228211f, -0.0366069f, 0.114353f, -0.169268f, 0.281787f, 0.132519f, -0.108423f, -0.242755f, 0.252937f, 0.0228277f, -0.192783f, -0.0306253f, -0.0488572f, -0.118642f, 0.0317179f, -0.19341f, -0.0999549f, 0.0831145f, -0.126578f, 0.220717f, 0.204698f, 0.0673639f, 0.0446447f, 0.065119f, -0.0958452f, 0.106898f, 0.123403f, 0.0825434f, 0.145046f, 0.0204364f, -0.125262f, 0.0819808f, 0.143723f, -0.0278165f, -0.0747846f, -0.0651335f, 0.174823f, -0.0676936f, -0.00461692f, -0.327031f, 0.0490996f, 0.129247f, 0.156969f, -0.248226f, 0.0481241f, 0.0642155f, 0.186807f, -0.359328f, 0.19295f, -0.168494f, 0.0032919f, -0.0390848f, -0.22382f, 0.321776f, 0.0429631f, 0.073631f, -0.0905926f, -0.0514522f, -0.0766372f, -0.219127f, -0.0609405f, 0.061996f, -0.126376f, 0.241216f, -0.0886129f, 0.0929468f, -0.233394f, -0.330346f, -0.111695f, 0.0251958f, 0.04751f, 0.106569f, -0.139318f, -0.0812402f, 0.0469703f, -0.125654f, 0.253799f, -0.238524f, 0.0324262f, 0.109667f, 0.05977f, 0.00392789f, 0.135292f, -0.103733f, -0.0739762f, 0.0506489f, -0.0317991f, -0.0712111f, -0.00218731f, 0.0560001f, -0.0351322f, -0.315955f, -0.0168878f, 0.0590947f, 0.0797109f, -0.203214f, -0.070367f, 0.291034f, 0.156423f, 0.175241f, 0.130397f, 0.0654904f, -0.0937689f, -0.0419564f, 0.26229f, -0.201964f, -0.0127271f, 0.105111f, -0.0256966f, 0.0706768f, 0.154608f, 0.0446469f, 0.200594f, -0.0202549f, 0.0205458f, 0.0677047f, -0.217989f, -0.170312f, 0.0794855f, 0.0468566f, 0.119884f, 0.0828394f, 0.0510443f, -0.00633777f, -0.0336755f, 0.0993782f, -0.0461123f, 0.0786087f, -0.046187f, -0.0620196f, 0.0489543f, 0.00547431f, 0.0100579f, 0.0551972f, 0.00403824f, 0.308484f, -0.0148138f, 0.0691719f, 0.241662f, -0.0485184f, -0.116852f, -0.0184202f, -0.0695284f, -0.12171f, 0.0632118f, 0.248135f, -0.0300185f, -0.143607f, -0.0443246f, -0.0365822f, -0.12185f, -0.0419133f, 0.0896623f, 0.153837f, 0.171076f, 0.126032f, 0.27784f, 0.00120866f, -0.120513f, -4.55319e-05f, 0.023322f, 0.030139f, 0.0909715f, 0.223771f, 0.127371f, 0.0558248f, -0.0305941f, -0.0746079f, 0.0502255f, 0.0829944f, -0.0544422f, 0.109737f, -0.0698535f, -0.0705526f, 0.255268f, 0.0234506f, 0.0274976f, 0.144526f, 0.0785457f, 0.171863f, 0.174573f, 0.021471f, -0.144708f, 0.191012f, -0.11902f, 0.0724565f, -0.0609285f, -0.161142f, 0.102681f, 0.0417905f, 0.0877239f, 0.108045f, -0.0404179f, 0.144219f, 0.08965f, -0.086954f, 0.0814197f, 0.150361f, 0.0567365f, -0.130511f, -0.00625959f, -0.11439f, 0.146935f, 0.00652287f, -0.07748f, 0.178482f, -0.0848864f, 0.161727f, -0.00773123f, -0.0570768f, 0.000767409f, -0.0411392f, -0.0824077f, -0.297456f, 0.0326336f, 0.0991424f, -0.091854f, -0.1944f, 0.238536f, 0.0775704f, -0.0855559f, -0.0899518f, 0.00802587f, 0.0277882f, 0.0418707f, 0.0419522f, -0.0878688f, -0.219008f, 0.0714105f, -0.126753f, 0.0598591f, -0.0427791f, 0.00113385f, 0.00825478f, 0.0583455f, 0.00534157f, 0.0462556f, -0.0848422f, 0.108095f, -0.0654399f, 0.139372f, 0.0490998f, 0.143829f, 0.0106729f, -0.170601f, -0.0571257f, 0.142785f, -0.127413f, 0.160209f, -0.0293636f, 0.0883847f, -0.0505984f, -0.236502f, -0.0714012f, 0.0354004f, 0.209389f, -0.169121f, 0.136802f, -0.161537f, 9.39556e-06f, -0.0675199f, -0.0653937f, -0.172033f, 0.0897072f, 0.0367854f, -0.0313509f, -0.0517521f, -0.102912f, -0.0444008f, 0.185685f, -0.22484f, 0.0750545f, 0.226647f, -0.0254934f, -0.0123416f, 0.0838671f, -0.0861028f, 0.129976f, -0.0518756f, 0.0840779f, -0.171756f, -0.0175792f, -0.0574606f, -0.0610137f, 0.000801756f, -0.027611f, -0.0310769f, 0.114813f, 0.0335536f, 0.184054f, 0.149249f, -0.166731f, -0.12098f, -0.0624415f, -0.106926f, 0.125161f, 0.0904329f, -0.001015f, 0.0525559f, 0.111418f, -0.0865976f, -0.051669f, -0.127062f, -0.273738f, 0.0109554f, -0.183492f, -0.0151599f, -0.0558773f, 0.166783f, 0.0450449f, -0.142707f, 0.000518908f, -0.166723f, -0.0040382f, -0.0152244f, 0.0518509f, -0.0375564f, -0.121488f, -0.0978336f, 0.00786082f, -0.0522826f, 0.095678f, 0.0542187f, 0.102514f, -0.0929428f, -0.116032f, -0.137832f, -0.0321241f, -0.0902616f, -0.164596f, -0.0294033f, -0.240675f, 0.0364724f, -0.122568f, -0.114508f, 0.0380277f, -0.00915817f, -0.221778f, 0.0232978f, -0.0219193f, -0.0169992f, 0.279334f, 0.0989457f, -0.10147f, -0.0219123f, 0.172881f, 0.0496297f, -0.0864264f, -0.105505f, -0.161848f, 0.00797933f, -0.174987f, -0.0988249f, 0.0831393f, 0.0669417f, 0.09063f, 0.0508238f, -0.149158f, 0.0181226f, -0.030691f, -0.0122914f, 0.0934319f, 0.127496f, -0.0710221f, -0.0904474f, -0.0351213f, 0.106984f, 0.162725f, -0.0608449f, 0.0221983f, 0.0950165f, 0.11496f, -0.060513f, 0.0184719f, 0.0744368f, -0.0171061f, -0.167094f, -0.0485262f, 0.0387326f, 0.0312721f, 0.15057f, 0.173962f, -0.162866f, 0.231163f, -0.0233385f, -0.139623f, 0.117012f, 0.0438256f, 0.148301f, 0.145956f, 0.0511683f, 0.207908f, -0.156823f, 0.00317787f, -0.00548722f, 0.0304392f, -0.0283379f, -0.116619f, 0.0318825f, 0.0784925f, -0.0116984f, 0.053114f, 0.0623654f, 0.131338f, -0.10357f, -0.0415991f, 0.0783779f, -0.00631951f, -0.120236f, 0.0747344f, -0.182536f, 0.0686138f, 0.144474f, -0.048821f, -0.16684f, -0.0208302f, 0.113413f, -0.00836478f, -0.0941743f, -0.0624131f, 0.0794991f, 0.168598f, -0.128009f, 0.00142395f, -0.0933691f, 0.0559555f, 0.063025f, -0.0611409f, -0.0484092f, 0.0913251f, -0.0594812f, 0.239383f, -0.118623f, 0.0414554f, -0.0540327f, -0.00552484f, 0.0686829f, 0.040067f, 0.0285349f, 0.140637f, 0.0395993f, -0.179834f, -0.0849776f, 0.0232606f, -0.0252956f, -0.0992108f, 0.0284643f, 0.046678f, -0.0390799f, 0.0638423f, 0.0733747f, 0.142884f, 0.0348593f, -0.141728f, -0.129181f, 0.12485f, -0.0773377f, -0.0096069f, 0.0884325f, -0.0210901f, -0.0209118f, 0.019129f, -0.104936f, -0.0566042f, 0.049859f, -0.0223296f, 0.10351f, -0.116374f, -0.0618529f, -0.228048f, -0.0144804f, -0.0187144f, -0.0210075f, 0.0961339f, -0.0288657f, 0.0474445f, 0.00743287f, 0.0589114f, -0.106693f, -0.0681618f, -0.0274934f, 0.11431f, -0.00844628f, -0.0953022f, -0.116725f, -0.218484f, -0.0335934f, 0.00874548f, 0.063867f, -0.0667783f, 0.0965128f, -0.0131004f, 0.187661f, -0.146689f, -0.0367145f, 0.0667174f, -0.0791414f, 0.0356887f, 0.133409f, 0.111531f, 0.0147624f, 0.0310863f, 0.0490392f, 0.134828f, 0.0786986f, 0.0484379f, -0.167823f, -0.00197361f, 0.128306f, 0.194376f, -0.0873554f, 0.0819737f, 0.00657347f, 0.0529545f, 0.0224378f, 0.0787958f, 0.123398f, -0.100951f, 0.11575f, 0.101088f, 0.202905f, -0.0303339f, 0.126923f, -0.13764f, -0.0030501f, 0.0677282f, 0.208205f, -0.190899f, 0.112385f, -0.10579f, 0.115707f, -0.0208798f, 0.00440646f, -0.00741871f, 0.0904108f, 0.157028f, -0.100492f, -0.0115215f, 0.145762f, -0.0552682f, -0.0679372f, -0.0449856f, 0.0524136f, -0.0843469f, -0.0883089f, 0.0309064f, -0.0321017f, 0.0069665f, 0.00474627f, 0.0402671f, 0.0425537f, 0.0710246f, 0.0873618f, -0.0699041f, -0.133316f, -0.00474244f, -0.0102435f, -0.039979f, -0.143569f, -0.0705771f, 0.137602f, -0.151006f, -0.132895f, 0.108227f, 0.0112355f, 0.103779f, -0.0742033f, -0.0389523f, -0.209681f, -0.0859813f, 0.0196358f, -0.0683298f, 0.0990448f, 0.0911436f, -0.177792f, 0.165608f, -0.0475676f, -0.144938f, 0.0559062f, -0.00681909f, 0.182605f, 0.0699754f, 0.000121924f, -0.0982848f, 0.00747992f, -0.0490325f, -0.111126f, 0.101026f, -0.00649524f, -0.00410055f, 0.0423638f, -0.136471f, 0.0145323f, 0.253025f, -0.0665555f, 0.0805306f, -0.0370787f, -0.0841525f, -0.0950929f, -0.0652965f, 0.0172233f, -0.1547f, 0.123201f, -0.147512f, 0.0610352f, -0.121984f, 0.0747485f, -0.0123262f, 0.123069f, 0.018358f, -0.0554138f, -0.0526256f, 0.01305f, -0.0966154f, -0.0968665f, -0.0204857f, 0.214159f, -0.0918011f, 0.0535913f, -0.0499075f, -0.0794671f, 0.000652376f, 0.0117469f, -0.0379422f, 0.0757247f, 0.123701f, 0.103364f, -0.127591f, 0.111743f, -0.131565f, 0.234678f, -0.0428041f, -0.0677703f, 0.0698582f, -0.2264f, -0.141271f, 0.0073108f, -0.0745124f, 0.0135333f, -0.0765471f, -0.0102535f, 0.0917136f, -0.158297f, -0.0580175f, 0.0336741f, -0.0975188f, 0.140226f, 0.0755555f, 0.0704069f, 0.00792395f, 0.0623659f, 0.0880944f, -0.0509417f, 0.0536913f, -0.0714902f, 0.137309f, -0.134037f, -0.039866f, 0.0556096f, -0.0808019f, -0.00542613f, 0.0442211f, -0.00502314f, -0.0604082f, 0.179635f, -0.05638f, -0.0159539f, -0.135139f, 0.0854722f, -0.140483f, -0.12838f, 0.160244f, 0.0831675f, 0.105665f, -0.0548167f, 0.139538f, -0.117856f, -0.063118f, 0.00915004f, 0.085499f, 0.128176f, -0.0390514f, -0.147336f, -0.131546f, 0.166661f, -0.151681f, 0.0789573f, -0.0653465f, 0.0758009f, 0.160461f, -0.0396673f, 0.0178422f, 0.0551779f, 0.0192021f, -0.0119397f, 0.0685523f, -0.179376f, -0.116253f, -0.0509987f, -0.0250818f, -0.0186232f, 0.0483913f, 0.167202f, -0.130434f, -0.0559f, 0.05764f, -0.0244225f, -0.0749771f, -0.0996609f, -0.0505889f, 0.0190049f, 0.0471679f, 0.21171f, -0.0793533f, -0.107154f, 0.197002f, 0.10692f, 0.252483f, -0.0492853f, 0.0761924f, 0.197496f, 0.133201f, 0.0647468f, -0.135155f, -0.113917f, 0.217909f, 0.213882f, -0.128694f, 0.0461357f, -0.100485f, 0.0590743f, 0.0389611f, 0.0783206f, 0.106972f, 0.222785f, 0.0810704f, 0.0236732f, 0.136997f, 0.0233101f, 0.165537f, -0.0239841f, -0.129488f, 0.0391762f, 0.113887f, 0.180713f, 0.0544884f, 0.0475896f, 0.0166536f, 0.136317f, -0.0612023f, 0.130726f, 0.0132067f, 0.0385888f, 0.089809f, 0.0416521f, 0.00322581f, -0.229392f, 0.11145f, -0.0975439f, 0.054494f, 0.109704f, 0.0087769f, -0.20172f, -0.110801f, 0.0610575f, 0.0435778f, -0.132405f, 0.0538261f, 0.0340891f, 0.093209f, -0.0236047f, 0.134941f, -0.0869402f, -0.00161208f, 0.0370606f, 0.0489362f, 0.096307f, -0.112713f, -0.0107064f, -0.0386132f, -0.0987973f, -0.10539f, -0.0459998f, 0.18327f, -0.0542226f, 0.0154967f, 0.00618909f, 0.184877f, -0.000819018f, 0.115793f, 0.0521745f, 0.101334f, -0.0470976f, 0.127273f, 0.0451308f, -0.0828035f, -0.0851827f, 0.0376932f, 0.172117f, 0.0541657f, -0.159073f, 0.0553664f, -0.0998559f, 0.0300636f, -0.0384166f, 0.00507327f, -0.0466286f, 0.274313f, -0.0587378f, 0.0593705f, 0.124004f, -0.0369306f, 0.0408177f, -0.247485f, -0.18767f, -0.0680793f, -0.153191f, 0.0333909f, 0.0605865f, -0.11287f, -0.0773784f, 0.0226165f, -0.0943573f, 0.192423f, -0.0153312f, 0.0993282f, -0.0253296f, -0.106719f, -0.0873158f, -0.0903671f, -0.0231863f, 0.027206f, -0.0953228f, 0.134462f, 0.0105542f, -0.0597148f, -0.141001f, 0.0720136f, 0.100109f, -0.0170666f, -0.0375103f, -0.106943f, 0.053426f, 0.308818f, -0.12117f, -0.0579714f, -0.217323f, -0.0667762f, 0.0400757f, 0.14914f, -0.0374036f, 0.0709873f, 0.0914366f, 0.0350909f, -0.112514f, -0.205975f, 0.0249893f, 0.00195672f, 0.00361073f, 0.115128f, -0.138659f, -0.0841661f, 0.0416444f, -0.00132389f, -0.0243037f, -0.130178f, -0.0545728f, -0.0597373f, 0.0341679f, 0.0644396f, 0.0743644f, 0.180703f, 0.0561359f, 0.0527029f, -0.0762911f, 0.0283872f, -0.0467662f, 0.225876f, 0.0335476f, 0.134123f, 0.0404186f, -0.16611f, -0.0753272f, 0.0137569f, -0.0291085f, -0.0709245f, -0.210089f, 0.0337757f, 0.0284115f, -0.0301437f, 0.193101f, 0.0697203f, -0.123337f, -0.0379426f, 0.0714576f, -0.154615f, 0.0932179f, 0.0482577f, 0.00103f, -0.0358428f, -0.157999f, -0.163873f, 0.0900866f, 0.0372277f, 0.124029f, -0.057805f, -0.0844519f, -0.0028936f, -0.0655941f, -0.00505105f, -0.0331333f, -0.0816507f, 0.141201f, 0.00255195f, -0.00860152f, 0.0602362f, -0.0740647f, -0.14964f, -0.070303f, 0.0987596f, 0.0344201f, -0.0892413f, -0.203445f, -0.170794f, -0.166264f, 0.0936643f, -0.0483265f, -0.0158084f, 0.111403f, 0.150253f, -0.119033f, 0.104595f, 0.0783431f, -0.10408f, 0.0556796f, 0.0898782f, -0.0322434f, 0.129629f, 0.0457266f, -0.168298f, 0.0195003f, -0.186974f, -0.07362f, 7.10475e-05f, -0.0839839f, -0.0260809f, 0.133294f, 0.082882f, 0.172028f, 0.0697826f, 0.0397086f, 0.148211f, -0.101466f, 0.0999964f, -0.131065f, 0.0250946f, 0.0227798f, -0.0211392f, 0.011475f, 0.0196264f, 0.0753461f, 0.0811928f, -0.0359976f, -0.000440662f, 0.0120421f, -0.108372f, 0.0411327f, -0.0502259f, 0.00169791f, 0.0153077f, -0.177148f, -0.107593f, -0.0718972f, -0.253383f, 0.15635f, 0.0377343f, 0.168105f, 0.0217863f, -0.0395211f, -0.00415476f, -0.0975305f, -0.115639f, -0.0514265f, -0.146919f, 0.0393865f, 0.0419227f, -0.00454558f, 0.0332961f, -0.0529339f, -0.0773208f, 0.180283f, 0.078678f, -0.0633335f, -0.0837221f, 0.0959668f, 0.149784f, 0.119962f, 0.130853f, 0.226759f, -0.0824045f, 0.0378592f, 0.0140584f, -0.00934408f, -0.0835043f, 0.0447274f, 0.115505f, 0.17969f, 0.136078f, 0.0691605f, -0.047705f, -0.0315734f, 0.143106f, 0.269643f, 0.114339f, -0.0391148f, 0.0711956f, 0.0111951f, -0.0293924f, -0.116687f, 0.123274f, 0.0989956f, -0.0354738f, 0.100989f, 0.000319701f, 0.0816359f, 0.0618789f, 0.0695041f, 0.033192f, 0.0845067f, -0.00508599f, 0.0238207f, -0.0901635f, -0.116641f, 0.0923079f, -0.0169863f, 0.077696f, -0.124307f, 0.000610675f, -0.0849385f, -0.0405446f, -0.187445f, 0.119114f, 0.10112f, -0.0773693f, 0.0247257f, -0.100235f, 0.112055f, -0.0405549f, -0.0462817f, 0.208147f, 0.0124448f, 0.189549f, 0.0518458f, 0.0197732f, -0.1624f, -0.157281f, 0.0110216f, 0.193364f, 0.182853f, 0.124243f, -0.0401412f, -0.034629f, 0.0249191f, -0.123128f, 0.085922f, 0.0483188f, 0.110356f, -0.135919f, 0.113893f, 0.0129056f, -0.0117825f, 0.15896f, 0.0346776f, -0.0469288f, 0.0180977f, -0.042788f, -0.132161f, -0.053467f, 0.0723616f, 0.0794915f, 0.0130947f, -0.0902794f, -0.046035f, -0.0626021f, -0.0862689f, 0.232995f, 0.00134829f, 0.0260088f, 0.0827068f, -0.0257537f, -0.029622f, 0.123874f, 0.0371956f, -0.170573f, 0.079833f, -0.0731008f, 0.0824015f, 0.0910085f, -0.238356f, -0.0757722f, 0.117974f, -0.00969821f, -0.0774241f, 0.118752f, -0.00941337f, 0.0276467f, 0.152384f, -0.170932f, 0.192435f, -0.0741371f, 0.0759798f, 0.00981555f, -0.0809501f, -0.110789f, -0.118513f, -0.145421f, 0.178521f, 0.0395072f, 0.0485418f, 0.0398553f, 0.0133344f, 0.119727f, -0.0468419f, -0.103078f, -0.107637f, 0.0907731f, 0.00869198f, 0.0167516f, -0.0483347f, 0.117328f, -0.11282f, -0.140107f, -0.00355483f, 0.020043f, 0.118216f, 0.265542f, 0.00115782f, 0.198628f, 0.0291622f, 0.00245106f, -0.0843969f, -0.0774815f, 0.0918778f, 0.0559791f, 0.124569f, 0.00102884f, -0.035071f, -0.0508423f, 0.104033f, -0.140485f, -0.0628815f, 0.108735f, -0.116683f, -0.0684456f, 0.243447f, -0.00694339f, 0.142821f, 0.098812f, 0.0215156f, 0.0583221f, -0.0848195f, 0.0197903f, 0.0914313f, 0.0807542f, -0.106705f, -0.139558f, -0.0204886f, -0.200525f, 0.0515579f, 0.130284f, -0.111201f, -0.095733f, 0.0729957f, 0.0174345f, -0.0143668f, -0.0264222f, 0.0572905f, -0.00883763f, -0.117193f, 0.096235f, 0.0482198f, 0.0150423f, -0.0839166f, -0.0193629f, 0.11645f, -0.0391274f, -0.0493957f, 0.0503089f, 0.0369197f, -0.0544142f, 0.0700252f, 0.0207711f, 0.0854194f, 0.214473f, -0.0841525f, -0.0606993f, -0.063929f, 0.0194173f, -0.102353f, 0.0270731f, 0.0969097f, 0.140793f, -0.290505f, -0.0957079f, 0.122157f, 0.0309552f, -0.0540462f, -0.0576387f, -0.156242f, 0.0720154f, 0.00359537f, 0.020356f, 0.031883f, -0.0980389f, -0.0477893f, -0.101101f, -0.0951287f, -0.119881f, -0.0482496f, 0.1889f, -0.0056007f, 0.071667f, -0.139894f, -0.054281f, -0.133435f, 0.196266f, 0.10285f, 0.13039f, 0.140645f, 0.0702339f, 0.0442193f, -0.0775858f, -0.0502149f, 0.18282f, -0.138026f, 0.0131669f, 0.0369999f, -0.0422808f, 0.0229682f, 0.0442547f, 0.141319f, 0.183181f, -0.0202519f, -0.145953f, -0.0581391f, -0.0611164f, 0.0401014f, -0.0710309f, -0.093262f, -0.209658f, -0.12449f, -0.0720376f, -0.0254985f, -0.152552f, 0.10274f, 0.061864f, -0.0992691f, 0.0285267f, 0.123909f, -0.102119f, 0.0116053f, 0.0851293f, 0.185854f, 0.188363f, -0.0411408f, 0.0836938f, -0.130779f, 0.10475f, -0.0434811f, 0.125056f, -0.0970301f, -0.0431075f, -0.0301254f, 0.0722898f, -0.03247f, 0.00633188f, -0.100795f, 0.0224775f, -0.18585f, 0.196237f, -0.131748f, -0.119332f, -0.00708234f, -0.0187179f, 0.00605775f, 0.0036201f, -0.16171f, 0.012908f, 0.0105463f, -0.10582f, 0.131429f, -0.0831605f, 0.0435122f, -0.0145839f, -0.17316f, 0.116623f, 0.0902892f, -0.129689f, 0.150204f, 0.202143f, 0.0758038f, -0.0870012f, 0.00156584f, -0.133034f, 0.0246536f, 0.144529f, 0.0549369f, 0.0823319f, -0.034215f, -0.0961643f, 0.0540332f, 0.098496f, 0.045483f, 0.228447f, 0.19327f, 0.00668562f, -0.0920581f, 0.123335f, -0.0348643f, 0.0278245f, -0.0218793f, -0.0791361f, 0.0311138f, -0.0825873f, -0.0147714f, 0.0033993f, -0.039752f, -0.0475114f, 0.0519134f, 0.165107f, -0.165752f, 0.0601788f, 0.042438f, 0.115098f, -0.104231f, 0.0967073f, 0.031645f, 0.01619f, -0.0845823f, -0.0441424f, 0.147401f, 0.145396f, -0.0586475f, -0.0109192f, 0.000516522f, -0.149355f, 0.155266f, -0.150135f, 0.133265f, -0.201697f, 0.0377982f, -0.0601116f, -0.0458665f, 0.0677494f, -0.0887502f, -0.1708f, 0.0755747f, 0.0409235f, -0.241249f, 0.0332289f, -0.0958748f, -0.0703163f, 0.154852f, 0.0348407f, -0.0405843f, -0.0568849f, -0.0521755f, -0.0385912f, 0.0484718f, 0.0799378f, -0.0915213f, -0.0141116f, 0.214421f, -0.126173f, 0.112571f, -0.137202f, -0.0770542f, 0.137977f, -0.0268624f, -0.028433f, 0.142966f, -0.00553534f, 0.0826545f, -0.255712f, 0.0203989f, 0.0692577f, -0.00379089f, -0.233688f, -0.0680374f, 0.22472f, -0.0150217f, 0.0776902f, -0.165191f, -0.155693f, -0.0304753f, 0.108607f, -0.108657f, 0.105129f, -0.352453f, 0.0588963f, 0.0458444f, 0.138724f, 0.0193096f, 0.0981603f, -0.0266849f, 0.0417407f, -0.0130849f, 0.219129f, -0.184964f, 0.0758455f, 0.192157f, -0.172885f, 0.0582954f, 0.16988f, -0.16516f, 0.038072f, -0.0646484f, 0.0335531f, 0.150292f, -0.0445309f, 0.0209239f, -0.0644798f, 0.0905695f, 0.221057f, 0.218115f, 0.110395f, 0.0511631f, -0.00433786f, 0.0740435f, 0.0221675f, -0.110888f, 0.262482f, 0.0598391f, 0.118359f, -0.27536f, 0.15912f, -0.285361f, 0.0929191f, -0.0970659f, -0.0116441f, 0.291694f, 0.0524673f, 0.0870242f, -0.205272f, -0.0232982f, -0.0379863f, 0.0356211f, -0.13449f, -0.0740228f, 0.0733789f, 0.0810668f, 0.0995693f, 0.256662f, -0.0376183f, 0.0616129f, 0.152946f, -0.0575306f, -0.0338735f, -0.215844f, 0.0586965f, 0.0527188f, -0.0247169f, -0.0876277f, -0.105812f, -0.291258f, 0.101378f, 0.128479f, -0.10484f, -0.232578f, 0.0647104f, 0.0524566f, 0.00487664f, -0.166546f, 0.178462f, 0.242134f, 0.233535f, -0.0536188f, 0.000715264f, 0.0871711f, -0.0360006f, -0.192632f, -0.0138638f, 0.0959942f, -0.185909f, -0.132102f, -0.138698f, -0.0697195f, -0.0167467f, 0.054531f, -0.0167917f, 0.0331507f, 0.209079f, 0.0399453f, -0.0576653f, 0.069152f, -0.110858f, 0.0325546f, 0.157061f, -0.0683296f, -0.040457f, 0.0746031f, -0.289811f, 0.0108683f, 0.0440577f, -0.149687f, -0.0597419f, 0.0700398f, 0.0851209f, -0.0113762f, 0.103586f, -0.138035f, 0.0108946f, -0.0432254f, 0.131381f, 0.138952f, 0.164697f, 0.0715235f, -0.0511967f, 0.106737f, -0.146359f, 0.0484234f, -0.0671615f, 0.0606289f, 0.0355542f, 0.0984944f, -0.190619f, -0.0179747f, -0.154323f, -0.288915f, -0.0058478f, 0.0758056f, 0.00749175f, 0.149729f, -0.0244642f, 0.060053f, 0.00420217f, 0.0488855f, -0.0934951f, -0.205209f, -0.172937f, 0.0837431f, 0.0641805f, -0.197716f, -0.161974f, -0.0663788f, -0.121782f, 0.0472383f, -0.115699f, 0.163157f, -0.0827072f, -0.146666f, -0.23553f, 0.142796f, 0.0226524f, -0.0143857f, 0.11616f, 0.0596124f, 0.000780379f, -0.0790014f, 0.0517812f, -0.101215f, 0.0846614f, -0.150336f, -0.0798668f, -0.146219f, 0.107399f, -0.139578f, 0.199111f, 0.0568038f, -0.0668493f, 0.0195763f, -0.132159f, 0.0387838f, -0.102249f, -0.0304417f, 0.156094f, -0.0425508f, 0.0748933f, 0.113586f, -0.0546838f, -0.269347f, 0.00566438f, 0.0368512f, 0.141575f, -0.107681f, -0.230767f, 0.0236134f, -0.164379f, 0.0257386f, -0.0712559f, 0.139744f, 0.114406f, -0.129438f, -0.0255864f, -0.122698f, -0.184161f, 0.106079f, 0.110145f, -0.140231f, 0.163249f, 0.0120278f, -0.0603509f, -0.0933755f, -0.00305875f, -0.181777f, -0.0442163f, -0.101851f, -0.0120365f, -0.123605f, -0.191052f, -0.151089f, -0.0809883f, -0.00351327f, 0.192924f, -0.0352639f, -0.0595439f, 0.239242f, -0.0296966f, -0.138886f, 0.226067f, -0.0667875f, 0.139919f, -0.0567358f, -0.00365541f, 0.0572919f, 0.0432895f, -0.241146f, -0.110417f, 0.0324528f, 0.0779945f, 0.176627f, 0.0237061f, -0.231015f, -0.185487f, -0.0729698f, 0.099744f, 0.0447786f, 0.141201f, -0.17043f, 0.122375f, 0.0825616f, 0.253972f, -0.0881739f, -0.304038f, -0.285641f, -0.12404f, -0.0415155f, 0.0478723f, 0.0343116f, 0.01678f, -0.173871f, -0.0342224f, 0.173717f, 0.0623189f, 0.085419f, 0.0676964f, -0.116956f, -0.0859277f, -0.225278f, 0.129171f, -0.185446f, 0.345067f, -0.0626392f, 0.0396755f, -0.00838062f, 0.0101978f, -0.0415366f, 0.0132763f, -0.0305626f, -0.19435f, -0.129543f, -0.041373f, -0.0454528f, 0.0202729f, -0.0387293f, 0.0986064f, -0.0184007f, -0.197607f, 0.184186f, 0.227299f, -0.109374f, 0.254163f, -0.396051f, -0.180919f, -0.113058f, -0.0942247f, 0.0753491f, -0.149971f, 0.191318f, -0.267861f, 0.0755715f, -0.106148f, 0.00198354f, 0.0278876f, 0.0131516f, 0.0615367f, 0.0220553f, 0.0421284f, -0.113138f, 0.053916f, -0.18335f, 0.00630868f, -0.188127f, -0.0950954f, -0.173015f, 0.0464547f, 0.274456f, 0.296009f, 0.0237575f, -0.0478883f, -0.359134f, -0.101686f, -0.116482f, -0.113393f, -0.171245f, -0.0735281f, -0.0136801f, 0.0624223f, -0.14567f, 0.00189408f, -0.169111f, 0.0165562f, 0.0133307f, -0.27919f, 0.193092f, -0.351744f, -0.150548f, 0.100564f, -0.0331983f, 0.0455536f, 0.297037f, -0.139056f, 0.030784f, 0.0239431f, 0.102447f, 0.256588f, 0.111848f, -0.24036f, 0.128342f, 0.278876f, 0.277841f, 0.0838007f, 0.333998f, 0.114558f, -0.186242f, -0.0294968f, 0.105907f, -0.128575f, -0.0328334f, -0.0974438f, -0.24083f, -0.131805f, -0.199896f, -0.0523905f, -0.136998f, -0.0764933f, -0.0700726f, 0.0754909f, -0.0125325f, -0.0645553f, -0.164537f, -0.192411f, 0.24772f, 0.248149f, -0.0896151f, -0.15032f, -0.126346f, -0.0740029f, -0.238564f, 0.114106f, 0.134886f, 0.117932f, 0.0349117f, 0.158315f, -0.267677f, 0.0562967f, 0.175328f, -0.0866995f, 0.077924f, -0.025936f, -0.320998f, -0.264014f, -0.0441713f, -0.149452f, -0.181216f, 0.0223379f, -0.0479892f, 0.012138f, 0.17043f, 0.232914f, 0.0300108f, 0.244928f, -0.033341f, 0.16783f, 0.208473f, 0.307287f, -0.13052f, -0.0785202f, -0.00400046f, -0.111622f, 0.258877f, 0.0706851f, 0.0518745f, -0.0540382f, -0.135622f, -0.0535355f, -0.127771f, -0.11076f, -0.0969769f, -0.228212f, 0.0464704f, -0.00187062f, 0.244987f, 0.00471117f, -0.0560815f, -0.0740144f, -0.0178734f, 0.185057f, 0.249103f, 0.0427412f, 0.0621521f, -0.159203f, 0.271966f, -0.347894f, -0.211429f, 0.110166f, -0.276876f, 0.0795972f, -0.10297f, -0.119022f, -0.289411f, -0.120305f, 0.430759f, -0.464493f, 0.0598712f, 0.239503f, -0.0302963f, 0.0669733f, 0.0892557f, -0.0495437f, 0.19107f, -0.0700773f, -0.13742f, 0.0674433f, -0.0602806f, -0.124666f, -0.213237f, -0.0295731f, 0.164652f, 0.244596f, -0.11733f, -0.321239f, 0.121451f, 0.275048f, 0.00109331f, -0.236953f, 0.184128f, -0.256066f, 0.1252f, 0.0962284f, 0.123168f, 0.0666767f, -0.235311f, 0.172914f, 0.322082f, -0.177037f, -0.139669f, -0.0583788f, -0.108225f, -0.0632005f, 0.336706f, 0.324073f, -0.187132f, -0.0976891f, -0.0999108f, -0.136447f, -0.311981f, -0.0846824f, -0.196082f, -0.0118429f, -0.0179171f, -0.0265588f, 0.166557f, 0.199151f, 0.199311f, 0.0785659f, 0.264712f, 0.0118854f, 0.00136152f, -0.0407562f, -0.0893829f, 0.106155f, -0.0449161f, -0.238096f, 0.0380748f, 0.115807f, 0.0272555f, -0.0209006f, 0.0730524f, -0.0196427f, 0.0141815f, 0.0857446f, -0.0868999f, 0.114774f, 0.0635222f, 0.0196236f, 0.0794564f, 0.0368591f, 0.0321822f, 0.0889589f, -0.142716f, -0.0348311f, -0.0234825f, -0.0166708f, 0.122559f, 0.106281f, -0.0244119f, -0.00889042f, 0.0529901f, 0.00531293f, -0.0512852f, 0.0485565f, 0.0747318f, -0.155062f, -0.0381425f, -0.0513536f, 0.0568604f, 0.0237388f, -0.00742977f, -0.0603537f, -0.0608269f, -0.0963628f, 0.0393212f, 0.0971962f, -0.0638886f, -0.132712f, -0.1685f, 0.140543f, -0.0466762f, -0.0346782f, 0.0726785f, -0.0438458f, -0.110632f, -0.022584f, 0.0095621f, 0.0406818f, 0.0640637f, -0.0748735f, 0.0121749f, 0.0736962f, 0.129371f, -0.0167536f, -0.0235491f, 0.0236424f, -0.00290284f, 0.0139948f, 0.0462073f, 0.0238533f, 0.105176f, -0.0317671f, -0.105955f, -0.0686083f, -0.0981952f, -0.149607f, -0.0513427f, 0.0965286f, -0.0454539f, 0.00889594f, -0.0600409f, 0.138569f, -0.0788134f, -0.0579985f, 0.056775f, -0.157154f, 0.0378368f, -0.0593813f, 0.251038f, 0.109469f, -0.0455256f, 0.0588937f, 0.0198006f, 0.137474f, -0.0331668f, -0.0537334f, -0.0844716f, -0.0690784f, 0.138574f, 0.0930934f, -0.0434783f, 0.0124983f, 0.0508715f, 0.0700783f, 0.0954143f, -0.155245f, -0.108133f, 0.042515f, -0.126143f, -0.0172414f, 0.0378448f, -0.056916f, -0.0655317f, -0.00741552f, -0.0909257f, -0.0482255f, -0.00300543f, -0.130769f, -0.116575f, -0.076442f, 0.0301881f, -0.114885f, 0.0461384f, -0.0332809f, -0.0481727f, 0.0474047f, -0.148909f, -0.0883783f, -0.0132377f, -0.015558f, 0.142222f, 0.0676023f, -0.165313f, 0.0228557f, -0.037977f, -0.0986931f, 0.0456191f, -0.0417205f, -0.0413678f, -0.00450036f, -0.0109098f, -0.0780882f, -0.00011535f, -0.0748659f, 0.0178523f, 0.055089f, -0.105018f, -0.0193521f, -0.0174105f, 0.0546231f, -0.0302027f, -0.107011f, 0.154268f, 0.0481762f, -0.0365023f, -0.0734233f, 0.0350039f, 0.132569f, 0.0356452f, -0.0539769f, -0.00558739f, -0.00864199f, -0.131907f, 0.0533521f, 0.0183414f, -0.0711924f, -0.0724581f, -0.0510272f, -0.119464f, 0.173123f, 0.113443f, -0.113827f, -0.0468489f, 0.188115f, 0.0948411f, 0.126576f, 0.0209561f, -0.00282954f, 0.10068f, -0.0222636f, -0.01009f, -0.022651f, 0.0432503f, 0.0367272f, 0.0232148f, 0.104175f, 0.0476748f, -0.149411f, 0.0445947f, 0.0105967f, -0.108519f, -0.022672f, -0.017978f, 0.0878074f, 0.0738459f, -0.10328f, -0.0356001f, -0.0289229f, 0.00827445f, -0.048648f, -0.0769642f, 0.0649691f, 0.0251443f, 0.0749768f, 0.05895f, 0.117409f, -0.0739306f, -0.0279418f, -0.0402091f, -0.160646f, -0.0641857f, -0.0659892f, -0.0735957f, 0.0945036f, 0.139819f, -0.0711783f, -0.0208759f, 0.0361401f, 0.044111f, 0.114795f, 0.0481779f, 0.0129707f, 0.0439508f, -0.0419457f, -0.02953f, 0.0702562f, -0.0937086f, -0.0368003f, 0.0111718f, 0.0618585f, 0.0434206f, 0.0234058f, -0.0253911f, -0.0327717f, 0.127601f, -0.138613f, 0.088708f, 0.0156679f, -0.16632f, 0.0331399f, 0.00814041f, 0.072504f, 0.0569364f, -0.0162368f, 0.0493711f, -0.0266547f, 0.0667776f, 0.0235799f, -0.0658414f, 0.118558f, -0.100249f, 0.122357f, 0.0666688f, -0.155185f, -0.0315627f, 0.0439911f, 0.00717923f, -0.157661f, 0.0177546f, 0.0773666f, -0.0333674f, -0.0110893f, 0.0884262f, 0.280022f, 0.0704358f, -0.0190646f, -0.104531f, -0.0820089f, -0.0355714f, 0.141825f, -0.236602f, 0.314741f, -0.232287f, -0.07755f, 0.297582f, -0.152642f, -0.0356991f, 0.231955f, -0.1007f, -0.117606f, -0.09627f, -0.019853f, -0.0962446f, 0.037444f, -0.0612661f, 0.300807f, -0.034755f, -0.0678261f, -0.0240688f, 0.261243f, 0.210967f, 0.156637f, -0.0136302f, -0.0479607f, 0.0717429f, 0.147641f, -0.116886f, -0.161947f, 0.195781f, 0.15963f, -0.164084f, -0.116876f, 0.302139f, 0.119545f, 0.113578f, -0.110961f, 0.00135747f, 0.115748f, 0.0797532f, 0.271201f, -0.336132f, 0.0291765f, -0.075794f, -0.239963f, -0.0878813f, 0.0863092f, -0.00879615f, 0.132963f, -0.141756f, -0.290387f, 0.0467229f, -0.0678184f, 0.0142347f, 0.0801417f, -0.0059754f, -0.100033f, -0.0310688f, -0.148627f, 0.045926f, 0.201312f, -0.0267929f, 0.163746f, 0.0194155f, -0.0461367f, -0.235825f, -0.100864f, -0.0389058f, -0.0784827f, -0.149581f, -0.0164155f, -0.227387f, 0.122612f, -0.138468f, -0.0694903f, 0.280664f, 0.0545079f, 0.21384f, -0.204841f, 0.117097f, -0.230945f, 0.0412604f, 0.0567244f, 0.0299946f, -0.0986257f, 0.198813f, 0.0331111f, -0.213395f, 0.153815f, -0.136136f, -0.0183384f, 0.0556109f, -0.196672f, 0.128604f, 0.15552f, 0.0852183f, 0.0182145f, 0.183429f, 0.14732f, -0.142777f, -0.0536219f, -0.125055f, 0.0176181f, 0.0589617f, 0.0686024f, -0.0360619f, -0.0982826f, -0.13759f, 0.210176f, 0.0702421f, 0.114558f, -0.104003f, 0.123428f, -0.0958564f, -0.176975f, -0.113787f, -0.109432f, 0.0254012f, 0.198568f, 0.0255897f, -0.0761333f, -0.159941f, -0.297437f, -0.318319f, -0.185837f, -0.0454284f, 0.151681f, 0.115758f, -0.33603f, 0.0234233f, -0.278879f, 0.0756477f, -0.0185303f, 0.14792f, 0.280888f, 0.054531f, 0.29566f, 0.272862f, 0.0310115f, 0.117404f, -0.0928628f, -0.343069f, 0.0533735f, 0.315515f, 0.0554215f, -0.0251355f, 0.171898f, 0.245086f, 0.0873628f, -0.30374f, 0.148447f, 0.266494f, -0.0271276f, -0.0620254f, -0.160845f, -0.115757f, 0.0221237f, 0.211415f, -0.101758f, -0.0815333f, -0.0894836f, 0.0964909f, -0.253204f, 0.212326f, 0.134863f, -0.00966004f, 0.0764174f, -0.0809835f, 0.0555716f, 0.116529f, -0.083295f, 0.255117f, -0.0133793f, -0.0822881f, -0.148984f, -0.218538f, 0.0138366f, -0.00634271f, -0.201784f, 0.186452f, -0.220085f, 0.0681478f, 0.120855f, -0.253302f, -0.302865f, 0.352049f, -0.0163029f, -0.0439918f, 0.125305f, 0.109061f, -0.106794f, 0.0334625f, 0.225271f, -0.178644f, 0.108869f, -0.254416f, -0.255148f, -0.202198f, -0.228931f, 0.0946787f, 0.0408246f, -0.0832634f, -0.0321123f, 0.292891f, -0.0185028f, -0.165775f, -0.254319f, -0.262094f, -0.0397236f, 0.0954272f, 0.0624419f, -0.172094f, -0.0387721f, 0.0427057f, -0.104201f, 0.305973f, 0.232774f, 0.125019f, 0.0137827f, -0.0545588f, 0.217523f, -0.0993753f, 0.139569f, 0.331158f, -0.0374069f, -0.124887f, 0.123301f, 0.229099f, 0.00190721f, 0.0025517f, -0.246521f, -0.0253659f, 0.241732f, -0.0291552f, 0.0850381f, -0.0747621f, 0.293353f, 0.10238f, 0.0706627f, 0.161565f, 0.148872f, -0.0877567f, -0.291164f, -0.0419974f, 0.245997f, 0.150957f, -0.172541f, 0.114719f, 0.114045f, 0.0377149f, -0.220357f, 0.0185739f, 0.0717323f, 0.325997f, 0.109133f, -0.226974f, 0.0619134f, -0.0377374f, -0.194436f, 0.0803746f, -0.0445454f, 0.13563f, 0.122304f, 0.219106f, 0.032398f, -0.170813f, -0.0446225f, -0.0486604f, -0.24993f, 0.139728f, -0.154415f, -0.1188f, -0.213774f, 0.0539968f, 0.132522f, -0.152583f, 0.0338632f, -0.0409544f, -0.0472966f, -0.115659f, 0.175973f, 0.155777f, 0.306773f, -0.229044f, 0.0925087f, 0.0958646f, 0.208359f, -0.120931f, -0.135325f, -0.199794f, 0.0434417f, 0.0724154f, -0.215955f, -0.0522333f, 0.06491f, 0.193741f, 0.125895f, -0.0639251f, 0.158794f, 0.0227437f, -0.0287808f, 0.20038f, 0.020661f, -0.250461f, -0.304931f, -0.11844f, -0.125448f, 0.259794f, 0.269786f, -0.310149f, -0.228371f, 0.0314453f, 0.175415f, -0.00521632f, -0.164328f, -0.301417f, 0.0396883f, -0.158086f, 0.0490411f, 0.200819f, 0.0675424f, -0.208357f, -0.180612f, 0.176188f, 0.121147f, 0.0384894f, -0.0311652f, -0.0838521f, 0.0671425f, -0.104021f, 0.176708f, 0.0522364f, 0.104827f, -0.103909f, 0.0834184f, -0.0616139f, 0.14643f, 0.032047f, 0.185083f, -0.0302742f, -0.21084f, 0.232531f, -0.145641f, -0.212725f, -0.00545117f, 0.231693f, 0.02653f, 0.00429203f, 0.0827137f, -0.05663f, -0.0399134f, 0.190458f, -0.146483f, 0.2305f, -0.0811688f, -0.183744f, 0.168855f, -0.0261838f, 0.0343196f, 0.00560299f, -0.0511007f, -0.0117131f, -0.151966f, 0.120704f, 0.183419f, 0.0379334f, 0.0533316f, 0.152807f, -0.352219f, -0.156143f, 0.0815583f, 0.0651579f, 0.00995233f, 0.075362f, 0.174746f, 0.11272f, 0.173833f, 0.150938f, 0.197544f, -0.0531293f, -0.0584891f, 0.00943351f, -0.0681977f, 0.217556f, -0.0103667f, 0.0466774f, -0.167265f, -0.117184f, 0.262609f, -0.0122752f, 0.289236f, 0.0554178f, -0.106552f, 0.0785477f, 0.0979882f, -0.0260279f, 0.208744f, -0.208233f, 0.317547f, -0.00784495f, -0.0975526f, 0.0709077f, 0.158738f, 0.138198f, -0.376501f, -0.105852f, -0.0720889f, 0.117988f, -0.17273f, 0.0486618f, -0.319278f, -0.174427f, -0.185599f, 0.0654311f, 0.192996f, 0.0754395f, -0.190913f, 0.151996f, -0.0189412f, 0.204758f, -0.0849556f, 0.243409f, 0.240428f, 0.157452f, 0.018928f, -0.00959447f, 0.00839693f, 0.00114538f, 0.198147f, 0.145207f, 0.0040745f, -0.115586f, -0.195233f, 0.131762f, -0.100918f, -0.0541486f, -0.146309f, 0.141455f, 0.166709f, -0.0310438f, 0.0453053f, -0.106377f, 0.189266f, 0.0118823f, -0.0737269f, 0.151675f, -0.0155039f, 0.0958168f, 0.020888f, 0.124966f, -0.178976f, 0.0373868f, -0.134872f, -0.102577f, -0.0675947f, 0.153103f, -0.0238925f, -0.0994328f, 0.105352f, -0.142993f, 0.176932f, 0.0454135f, -0.0226158f, -0.0192114f, 0.280724f, 0.135973f, -0.137894f, -0.00574644f, 0.0370746f, 0.222867f, -0.00190981f, 0.158494f, -0.0529711f, 0.0218537f, 0.0353193f, -0.0975216f, 0.0622225f, -0.104325f, 0.119845f, -0.00519582f, -0.198949f, 0.0787052f, -0.014831f, 0.100453f, 0.00243603f, -0.170284f, -0.123599f, 0.219876f, 0.123755f, 0.13934f, 0.181406f, 0.152277f, -0.0643161f, -0.304495f, -0.0930433f, 0.0537837f, -0.344262f, -0.110221f, 0.285097f, 0.211119f, 0.0471185f, 0.159232f, -0.23305f, -0.138756f, -0.109153f, 0.223561f, -0.0392604f, -0.135186f, -0.0495776f, 0.209604f, -0.0646665f, 0.188474f, -0.0274376f, -0.097255f, 0.185603f, -0.0739747f, -0.0945307f, 0.109356f, 0.000594845f, 0.207235f, 0.0320113f, 0.0197794f, 0.0431414f, 0.215145f, -0.195622f, -0.174794f, -0.0487396f, -0.142903f, 0.0559332f, -0.109897f, 0.348225f, -0.0765021f, 0.0226828f, 0.133145f, -0.0102213f, 0.00271098f, -0.16592f, 0.0652344f, -0.124101f, -0.1513f, 0.0228531f, -0.133823f, 0.0161476f, 0.119076f, 0.133216f, 0.0752539f, 0.107095f, 0.273813f, 0.164185f, 0.0533741f, -0.155143f, -0.0277323f, 0.108194f, 0.136407f, 0.164622f, -0.23832f, 0.020783f, -0.158159f, 0.0749741f, 0.117411f, 0.220389f, 0.150914f, -0.255485f, 0.0428693f, -0.183109f, 0.200898f, -0.0180736f, 0.0503463f, 0.0366597f, -0.184051f, -0.0875322f, 0.00516991f, 0.021665f, -0.127573f, 0.186981f, 0.0191299f, 0.119645f, 0.147497f, -0.297262f, -0.155582f, -0.0586454f, -0.12856f, 0.207256f, 0.390786f, -0.113231f, 0.264345f, -0.284084f, 0.051868f, 0.0883262f, -0.171057f, -0.151627f, -0.0325635f, 0.101263f, 0.253612f, -0.0417966f, -0.00553153f, 0.0474195f, -0.102626f, 0.0786526f, -0.193758f, -0.0670396f, 0.00925309f, -0.108988f, -0.186194f, -0.13201f, 0.0479927f, -0.101943f, -0.00412406f, 0.0494687f, 0.0456694f, 0.189059f, -0.196372f, 0.0604515f, 0.0660274f, 0.000179452f, 0.0464327f, -0.074697f, -0.0144327f, -0.249331f, -0.154097f, -0.126443f, -0.0345509f, -0.123476f, 0.0955759f, -0.00203499f, -0.0018577f, 0.123079f, -0.135321f, -0.179758f, -0.277624f, -0.110954f, -0.121008f, 0.153082f, -0.0324888f, -0.0222039f, -0.191888f, 0.061986f, -0.0283405f, 0.114992f, -0.0679643f, -0.193053f, 0.161415f, 0.0336262f, 0.0926139f, 0.173387f, 0.162056f, 0.00603426f, -0.134811f, -0.0033981f, 0.0492772f, -0.0190284f, 0.0832278f, -0.24346f, -0.145357f, -0.229771f, 0.0440487f, 0.246004f, -0.11071f, 0.022304f, -0.244641f, 0.030537f, 0.0846657f, -0.0862148f, 0.00710152f, 0.0828675f, -0.00355231f, 0.15484f, -0.237547f, -0.0213834f, 0.0610527f, 0.317958f, -0.045859f, 0.170794f, 0.0758019f, -0.0063926f, -0.0476864f, -0.105242f, -0.084455f, -0.0404257f, 0.0884609f, -0.0902091f, 0.0582607f, -0.180525f, -0.152417f, 0.272179f, 0.140415f, 0.301068f, 0.0739288f, -0.103335f, -0.27477f, 0.165616f, 0.078976f, -0.0794036f, -0.0528456f, -0.0578225f, -0.224057f, -0.241842f, -0.087626f, -0.0345321f, -0.141246f, 0.226244f, 0.062762f, -0.215522f, 0.0520639f, -0.000884754f, 0.146112f, 0.0617826f, -0.00168757f, 0.0201516f, 0.0931749f, 0.169834f, -0.195182f, -0.00962795f, 0.0250146f, -0.0953577f, -0.00342418f, -0.0532038f, -0.0418673f, 0.19378f, -0.0466882f, 0.114965f, 0.0463888f, 0.0640714f, -0.151316f, 0.00135574f, 0.137148f, -0.181584f, -0.0715158f, 0.130137f, -0.00938308f, 0.196717f, 0.241558f, -0.0622477f, 0.0676642f, -0.268454f, 0.104062f, 0.0326473f, 0.0254072f, -0.113102f, 0.0215005f, -0.0708401f, 0.150858f, 0.0181164f, -0.222012f, 0.0379216f, 0.10551f, -0.0370469f, -0.198799f, 0.117661f, -0.0674795f, 0.021671f, 0.243672f, -0.0434831f, -0.170763f, 0.13f, -0.208054f, 0.0252211f, -0.0403235f, -0.0188098f, -0.0519748f, -0.134444f, -0.0102399f, -0.193749f, 0.0542503f, 0.323699f, 0.0542423f, 0.146644f, 0.0527692f, -0.063145f, 0.0787984f, 0.0270197f, 0.0805143f, 0.225313f, 0.0682869f, 0.258548f, 0.0137408f, -0.185279f, 0.01126f, -0.25588f, 0.255457f, 0.148434f, -0.160899f, 0.196012f, -0.213634f, 0.113968f, -0.170473f, -0.0261262f, -0.134372f, 0.179293f, 0.203282f, 0.0140467f, -0.0214149f, 0.0426936f, 0.200592f, -0.0988802f, 0.0612651f, -0.118011f, 0.185592f, 0.000494461f, 0.00564374f, 0.21844f, 0.0859694f, 0.0278782f, 0.0069512f, -0.245948f, -0.111628f, 0.0999373f, -0.127688f, 0.107662f, 0.123267f, -0.166372f, -0.0653792f, 0.122088f, -0.153073f, -0.0558744f, 0.0308527f, 0.22921f, -0.148163f, 0.109947f, -0.0259917f, -0.12072f, -0.0668258f, -0.0868315f, 0.00231652f, 0.132419f, -0.00163373f, 0.186501f, -0.112851f, 0.103069f, -0.210863f, 0.00434299f, -0.0340703f, -0.221026f, -0.291127f, -0.279409f, 0.222941f, -0.210283f, 0.123884f, -0.306192f, -0.0319604f, 0.232257f, -0.235825f, -0.0327021f, -0.0311451f, -0.142564f, 0.18207f, -0.18427f, -0.0790974f, 0.0312139f, -0.116307f, -0.0636514f, 0.285355f, -0.0222354f, -0.304197f, -0.145543f, 0.249056f, -0.0431844f, 0.189206f, 0.0724495f, -0.089639f, -0.193448f, -0.347072f, 0.179024f, -0.198368f, -0.29705f, -0.174013f, -0.0216763f, -0.158579f, -0.0043874f, -0.0727875f, 0.224645f, -0.419507f, 0.161089f, 0.035364f, 0.0508702f, -0.139609f, -0.0350881f, 0.103404f, 0.191511f, -0.220737f, 0.041307f, 0.0815201f, -0.155545f, -0.199208f, -0.112221f, -0.101614f, -0.0327387f, 0.257847f, -0.0107965f, -0.140433f, 0.0795143f, 0.146184f, -0.233473f, -0.245643f, -0.0179437f, -0.00644955f, -0.320848f, -0.0625738f, 0.0328508f, 0.130172f, 0.215025f, 0.223593f, 0.0241197f, -0.207984f, 0.102311f, 0.182494f, 0.188388f, -0.445389f, 0.0627163f, -0.139687f, -0.00861566f, -0.170993f, -0.0469775f, 0.218734f, -0.404638f, -0.129243f, -0.199136f, -0.13517f, -0.185589f, -0.121489f, -0.115273f, 0.213738f, -0.123674f, -0.0449308f, 0.0875926f, -0.0923429f, -0.110735f, 0.304142f, -0.176732f, 0.0641451f, -0.0357715f, 0.0409349f, 0.254547f, -0.0274693f, -0.010764f, 0.166384f, -0.16516f, -0.00066849f, 0.0630121f, -0.0891955f, 0.1917f, 0.0348992f, -0.113143f, 0.00149066f, 0.121389f, -0.0107909f, 0.130139f, 0.0844893f, -0.00517942f, 0.271403f, 0.0380054f, -0.0382597f, -0.0271972f, 0.0969958f, -0.225097f, 0.00534752f, -0.0253825f, -0.208972f, 0.0146124f, 0.0341558f, -0.0741905f, 0.13895f, -0.171924f, -0.291822f, 0.107962f, -0.109886f, -0.0873226f, 0.102829f, -0.144483f, -0.0490427f, 0.0654132f, 0.0166688f, -0.0483016f, 0.0518277f, 0.0797311f, 0.168853f, 0.26055f, -0.0628332f, 0.136428f, 0.0543018f, 0.214197f, -0.0714778f, -0.110241f, -0.00453923f, -0.136683f, -0.284947f, -0.227287f, 0.13265f, 0.0540732f, 0.0516643f, 0.256109f, 0.192f, -0.342673f, 0.00697389f, 0.291978f, 0.00830963f, 0.0789759f, 0.165603f, -0.0347455f, 0.215963f, 0.143583f, -0.045555f, 0.294902f, -0.056521f, 0.116169f, -0.243205f, 0.349212f, -0.213867f, 0.0869488f, -0.104655f, -0.0597039f, 0.183707f, 0.0297536f, -0.170225f, -0.213896f, 0.138162f, 0.150616f, 0.0725389f, -0.100126f, -0.0577995f, 0.0352547f, -0.0754811f, 0.0506381f, 0.0684984f, -0.0271425f, -0.102696f, -0.127095f, -0.0317086f, 0.0959735f, 0.0190261f, -0.0629707f, 0.0969808f, 0.0516743f, 0.0462299f, 0.14195f, -0.0641178f, -0.0595852f, 0.0549333f, 0.0024846f, 0.11315f, -0.0996097f, -0.0109168f, 0.140176f, -0.0855242f, 0.0371286f, -0.0414983f, 0.0604624f, -0.154051f, -0.01378f, -0.0386175f, -0.0604578f, 0.164841f, -0.0808893f, 0.0182108f, -0.13968f, 0.0767445f, 0.169468f, 0.0330412f, 0.0834249f, 0.0218144f, -0.0239021f, -0.044728f, -0.170726f, 0.0483526f, -0.0544869f, -0.111105f, 0.09127f, 0.0637697f, -0.0989994f, -0.0169381f, -0.0171601f, 0.045134f, -0.0983695f, -0.038304f, 0.00994556f, -0.0239803f, -0.0729043f, -0.115884f, -0.123536f, -0.113997f, -0.062414f, -0.136367f, -0.0448831f, -0.0350782f, 0.216238f, 0.000465402f, 0.124468f, -0.056271f, 0.00614478f, 0.197887f, -0.0338835f, 0.0548804f, 0.0427474f, 0.0560745f, 0.0478564f, -0.0646338f, -0.123827f, -0.0879633f, 0.0262997f, -0.136125f, 0.0716781f, 0.102018f, -0.00923524f, -0.166178f, -0.0971314f, -0.0560349f, 0.0719341f, 0.0609845f, -0.0203519f, -0.038578f, 0.15655f, -0.196895f, -0.135793f, -0.0885932f, -0.160577f, 0.0845379f, 0.0377615f, 0.204474f, -0.0481233f, -0.100647f, 0.145626f, -0.0321132f, -0.00873061f, 0.166619f, 0.0453179f, 0.00681716f, -0.152649f, 0.0453205f, -0.0136093f, -0.0300889f, -0.161423f, 0.156192f, 0.103605f, -0.0455094f, 0.0247143f, -0.0737319f, 0.0646443f, -0.00764656f, 0.187873f, 0.000414575f, -0.00261817f, -0.029979f, -0.0446402f, 0.0236246f, -0.146005f, 0.00458585f, -0.0320762f, -0.021912f, -0.137731f, -0.0786916f, 0.0211351f, 0.0151752f, 0.00110716f, -0.163199f, 0.136677f, 0.0514766f, 0.108498f, -0.176395f, 0.131446f, 0.0181501f, 0.111423f, -0.169911f, 0.0503824f, 0.0348196f, -0.17851f, 0.0925775f, 0.0435657f, -0.0841263f, 0.017253f, -0.159586f, 0.0791848f, 0.00798387f, 0.074282f, 0.0672954f, 0.182493f, 0.0667787f, 0.0314953f, -0.140174f, 0.0864302f, -0.164993f, 0.0476284f, 0.0971804f, 0.137525f, -0.0826328f, -0.131586f, -0.0367384f, 0.0642029f, -0.119481f, -0.135043f, 0.0985484f, 0.140526f, -0.118775f, 0.117418f, 0.10547f, -0.187269f, -0.0523484f, 0.168437f, -0.0922775f, 0.0336374f, -0.0214899f, -0.00940968f, 0.0123662f, 0.115706f, -0.0444474f, -0.0912751f, 0.333943f, 0.0363457f, -0.0378843f, 0.040043f, 0.111831f, 0.0817073f, -0.0863039f, 0.200252f, -0.0549262f, 0.0269942f, 0.0722842f, 0.0872724f, 0.17457f, -0.0897721f, -0.0244782f, -0.0154766f, 0.0561039f, 0.0333932f, 0.0286915f, -0.145185f, 0.187897f, -0.173924f, -0.0772756f, 0.181611f, -0.0401447f, 0.000381369f, -0.0529637f, 0.244661f, 0.0610033f, -0.0215815f, -0.0361089f, 0.176647f, -0.0543453f, 0.00466984f, 0.235369f, -0.00636192f, 0.000427516f, -0.0589968f, 0.0450507f, 0.110448f, -0.173505f, 0.15849f, -0.0157601f, -0.0344231f, -0.14201f, 0.0855212f, 0.0701975f, 0.0495422f, -0.092559f, 0.0637134f, 0.103921f, 0.163192f, -0.149745f, 0.137253f, 0.0951228f, -0.0575557f, 0.0104302f, -0.0676922f, -0.0433432f, 0.0696523f, 0.0486019f, -0.120662f, 0.0229817f, 0.00777093f, 0.00795935f, -0.097592f, 0.191823f, -0.0429927f, -0.0718059f, -0.243152f, 0.118039f, 0.128282f, -0.0725892f, -0.208632f, 0.177321f, -0.0263733f, 0.0408506f, -0.104704f, 0.185592f, -0.310704f, 0.015238f, -0.0603295f, 0.0886049f, -0.161865f, 0.0844975f, -0.00381154f, -0.0504422f, -0.0379313f, -0.0390352f, 0.345102f, 0.0974169f, 0.00444771f, 0.0535861f, 0.0522468f, 0.151802f, 0.017528f, 0.227177f, -0.0567333f, 0.264449f, -0.177242f, -0.195879f, 0.172846f, 0.0671844f, -0.0342861f, -0.0618867f, 0.139415f, 0.0391304f, 0.119932f, 0.140357f, 0.200033f, -0.215747f, 0.268838f, 0.133233f, 0.0121757f, -0.168138f, 0.0765751f, 0.111291f, -0.0833155f, -0.153294f, -0.0748501f, 0.148451f, -0.25297f, 0.0626741f, -0.0352332f, -0.113688f, -0.119939f, 0.246094f, 0.0177391f, 0.109876f, -0.0281284f, -0.0716334f, -0.13574f, 0.164957f, 0.175243f, -0.00796451f, -0.0757334f, -0.160154f, -0.0290562f, 0.0138406f, -0.105125f, 0.103011f, -0.224717f, 0.0601469f, -0.0180389f, 0.216838f, -0.106369f, 0.131873f, 0.0835749f, 0.0327697f, 0.155345f, -0.100902f, -0.138335f, 0.311979f, 0.273878f, 0.166925f, -0.0760578f, -0.0602117f, -0.0360233f, 0.133663f, -0.048102f, -0.17447f, -0.135734f, 0.0509525f, 0.0125941f, 0.124114f, 0.0426962f, 0.092451f, 0.0303506f, -0.10928f, -0.13959f, -0.159688f, -0.158695f, -0.160981f, -0.207851f, -0.0260412f, 0.09557f, 0.164814f, 0.107615f, 0.166499f, -0.11714f, -0.240209f, 0.137997f, 0.0660884f, 0.107927f, -0.0914691f, -0.155661f, -0.153054f, -0.223164f, -0.0986929f, 0.0185151f, -0.11401f, 0.212625f, 0.283018f, 0.000318718f, -0.0533108f, -0.10696f, 0.172559f, 0.117193f, -0.285453f, 0.285122f, 0.200548f, 0.298764f, 0.0959933f, -0.0917429f, 0.0833128f, 0.0617529f, 0.0930943f, -0.142797f, -0.0931998f, -0.253992f, -0.0523774f, -0.0561326f, 0.0681406f, -0.270546f, -0.356439f, 0.185554f, -0.299785f, -0.212104f, -0.174192f, -0.0309512f, 0.0429121f, 0.203093f, 0.12384f, -0.0241587f, 0.121148f, 0.200006f, -0.0420095f, 0.0456263f, -0.0583469f, 0.224678f, -0.0743334f, -0.112737f, -0.30683f, 0.014604f, 0.0475913f, -0.0888425f, 0.0951178f, 0.101982f, 0.3077f, -0.0415579f, -0.285207f, -0.217212f, 0.0972768f, -0.0614811f, 0.265259f, 0.141922f, 0.0372001f, 0.142665f, -0.0196413f, 0.204123f, 0.0429807f, 0.00359607f, -0.165263f, -0.0338159f, 0.138532f, -0.077545f, -0.0815715f, 0.276338f, 0.0311285f, 0.0901382f, 0.185393f, -0.00770268f, 0.0151368f, -0.173049f, 0.0157975f, 0.213212f, -0.0307902f, -0.116792f, -0.0142051f, 0.10359f, 0.174274f, -0.104921f, -0.0352546f, 0.122732f, -0.0969241f, -0.124887f, -0.13242f, -0.0182379f, -0.174373f, 0.00625522f, 0.305061f, -0.243868f, 0.0538746f, 0.0375059f, -0.17963f, -0.294833f, -0.325523f, 0.0907769f, -0.0187644f, -0.119089f, -0.159384f, -0.227872f, -0.0632982f, -0.102837f, -0.295707f, -0.276991f, 0.0808264f, -0.129752f, -0.0507556f, 0.0749632f, 0.134333f, -0.127818f, 0.0756924f, 0.169576f, 0.0087143f, -0.051882f, -0.183964f, -0.154158f, -0.184996f, 0.029868f, 0.104676f, 0.202317f, 0.231091f, -0.0455196f, 0.269836f, 0.160883f, 0.208624f, -0.208181f, -0.202784f, -0.186411f, 0.005878f, 0.163313f, 0.0972746f, -0.0961012f, -0.146595f, -0.054508f, 0.0700343f, -0.0225698f, 0.117301f, 0.00749526f, 0.186695f, -0.0974422f, 0.0514473f, 0.0714816f, -0.0285523f, 0.162758f, 0.221809f, -0.0182202f, -0.0687233f, -0.0944222f, 0.298559f, -0.0161751f, 0.154002f, -0.172214f, 0.125821f, -0.120752f, -0.118363f, -0.106576f, 0.043512f, 0.0738285f, 0.0894084f, -0.00262236f, 0.0273317f, -0.00433961f, 0.0253418f, -0.1177f, 0.11212f, 0.022197f, 0.045574f, -0.00566449f, 0.140176f, 0.0486511f, -0.0788559f, 0.0173043f, -0.0479245f, -0.204444f, 0.125436f, -0.0782851f, 0.0314188f, 0.0927994f, -0.0925527f, -0.103443f, 0.0214798f, -0.0327307f, 0.0911172f, 0.0038639f, -0.0559934f, -0.0430471f, -0.0754895f, -0.0927359f, -0.0498728f, 0.0368363f, -0.00916949f, -0.071968f, 0.0471891f, 0.093898f, -0.225156f, 0.01632f, 0.0488975f, 0.114583f, -0.157439f, 0.0455465f, -0.0555005f, -0.164812f, -0.185407f, 0.0755845f, 0.0356358f, 0.00274102f, 0.118094f, 0.123045f, -0.00890745f, -0.0244804f, 0.0698177f, -0.151349f, -0.0654139f, -0.0434635f, 0.141679f, 0.0654499f, -0.0462664f, -0.0190391f, 0.00400671f, 0.105896f, -0.0436684f, -0.10052f, -0.114683f, -0.155046f, -0.0495088f, -0.17069f, -0.129859f, -0.120822f, 0.0843593f, -0.038814f, -0.189718f, -0.0319913f, -0.114533f, -0.0477026f, 0.0227034f, -0.106086f, -0.180324f, -0.0544674f, 0.0962535f, -0.0929135f, -0.0425107f, 0.0917711f, -0.140759f, 0.00387181f, 0.204216f, 0.216886f, 0.133988f, -0.0100758f, -0.0167138f, 0.169577f, -0.152212f, -0.098024f, -0.04734f, 0.0570247f, 0.0315606f, 0.0607285f, 0.0779079f, -0.159865f, -0.0535076f, -0.155445f, -0.143511f, -0.168675f, -0.00349213f, 0.13602f, 0.00814874f, -0.0242886f, -0.14719f, 0.0248837f, -0.0612227f, -0.0718917f, 0.0433367f, 0.00368066f, -0.0354356f, -0.0216664f, -0.0856538f, 0.0343846f, -0.0234797f, -0.0431803f, 0.0700015f, -0.115869f, 0.140936f, 0.0277935f, 0.0687441f, 0.00997252f, 0.0258672f, -0.0673783f, 0.00641159f, 0.0923247f, 0.0741896f, 0.0325043f, 0.146611f, 0.164865f, -0.0532047f, 0.0913792f, -0.114419f, -0.0367704f, -0.0469246f, -0.0698036f, -0.147223f, -0.048596f, 0.138745f, 0.0791855f, 0.157373f, 0.161121f, -0.172939f, -0.0134164f, -0.184874f, -0.14595f, -0.0614134f, 0.0539368f, -0.0903167f, -0.0751012f, -0.0844823f, 0.111848f, 0.165337f, 0.0630815f, -0.101863f, 0.0928466f, -0.0751006f, -0.0964097f, -0.0193653f, 0.17399f, -0.108506f, 0.0542209f, 0.213747f, 0.240612f, 0.0844709f, 0.046935f, -0.14453f, -0.029509f, -0.0514593f, 0.0407012f, 0.0908674f, 0.0492882f, 0.0890512f, 0.0040099f, 0.00304172f, -0.155433f, 0.0895006f, 0.0202239f, 0.0853642f, -0.207438f, 0.0364597f, 0.085034f, -0.0252595f, 0.125175f, 0.0609606f, 0.101711f, -0.0481872f, 0.127898f, -0.138369f, 0.0890116f, -0.101431f, -0.067594f, 0.0998487f, 0.0192261f, 0.0685485f, -0.0923023f, 0.159707f, 0.0403834f, 0.0106913f, 0.228425f, 0.169284f, -0.0661836f, 0.115968f, -0.0807117f, 0.175673f, 0.159207f, -0.0598585f, 0.0547653f, -0.0299932f, -0.0321444f, -0.0796754f, 0.128018f, -0.0323322f, -0.100812f, 0.112606f, 0.097986f, -0.0981996f, 0.0015262f, 0.0327164f, 0.114702f, -0.132791f, 0.100656f, -0.0288455f, -0.0632353f, -0.0119418f, 0.036406f, 0.0689094f, 0.0994293f, -0.0255264f, 0.0946232f, 0.0435215f, -0.263719f, 0.0750032f, -0.10432f, 0.0372927f, -0.0728996f, -0.185237f, -0.139841f, -0.0751312f, -0.0669524f, -0.0971081f, 0.116698f, -0.0812381f, 0.0954164f, 0.029578f, -0.0105052f, 0.216657f, -0.0238753f, 0.0145478f, 0.00369897f, -0.120791f, 0.0529658f, 0.0237097f, -0.0128684f, -0.0456248f, 0.0709213f, 0.0748195f, 0.21594f, -0.107645f, 0.0419283f, -0.116637f, 0.0206317f, -0.168921f, -0.247372f, -0.0429792f, 0.135639f, -0.129668f, 0.10545f, -0.0363938f, -0.211293f, 0.141379f, -0.0335646f, 0.143561f, 0.118574f, 0.151716f, -0.104123f, 0.147456f, 0.150805f, -0.00491489f, -0.131998f, 0.268219f, 0.0691613f, -0.17046f, 0.0515467f, -0.0177856f, 0.00880313f, -0.0533497f, 0.101313f, -0.0621472f, 0.0421303f, 0.0408065f, -0.169402f, -0.00367869f, 0.101732f, -0.203676f, 0.0810894f, 0.0151326f, 0.0571206f, -0.0102737f, 0.146318f, -0.111231f, -0.0963782f, -0.217393f, -0.138611f, 0.0607464f, 0.010898f, -0.0398532f, -0.16821f, -0.0908034f, -0.0412231f, 0.162951f, 0.0709533f, 0.0328024f, -0.0790943f, -0.100163f, -0.0540389f, -0.102109f, 0.167301f, 0.0388652f, 0.105847f, -0.122224f, -0.0141167f, 0.0617226f, -0.127807f, -0.00089782f, 0.0305065f, 0.0739663f, -0.165008f, 0.122691f, 0.00185184f, -0.0569301f, 0.293864f, 0.0801274f, 0.0872888f, 0.0833894f, -0.00259581f, -0.173532f, -0.0983623f, 0.0138733f, -0.173624f, -0.21165f, -0.0576362f, 0.0577101f, 0.160833f, -0.0952722f, -0.118847f, -0.114318f, 0.125431f, -0.139519f, 0.0499298f, -0.227714f, -0.0881536f, 0.113915f, 0.120561f, 0.00149014f, 0.176449f, -0.206706f, -0.0156274f, 0.113223f, 0.0192819f, -0.0575462f, -0.137795f, 0.0936802f, 0.0365651f, 0.016884f, -0.103243f, 0.00280967f, -0.123449f, -0.166799f, -0.0894984f, 0.0177691f, -0.0997774f, -0.00655128f, -0.102757f, -0.116243f, -0.0798848f, -0.0480608f, -0.0434932f, 0.114596f, -0.0813626f, -0.187625f, -0.0211795f, 0.15855f, -0.0646772f, 0.0457947f, 0.253127f, 0.000240832f, 0.0735514f, -0.100289f, 0.0322968f, 0.216639f, -0.0696008f, 0.149796f, -0.057522f, 0.0225975f, 0.159949f, -0.0166683f, 0.0551441f, -0.0832927f, -0.187577f, 0.150826f, -0.0120803f, -0.0491455f, -0.0837617f, -0.112165f, -0.134474f, 0.147786f, 0.024508f, 0.128014f, 0.0269946f, -0.0830592f, 0.154427f, 0.123326f, 0.106296f, 0.330335f, 0.0704823f, -0.0347156f, 0.177083f, -0.130045f, 0.199464f, -0.133488f, 0.134036f, -0.0753537f, 0.170128f, -0.0308089f, 0.166637f, -0.0766541f, 0.0610803f, -0.0556008f, -0.167956f, -0.0931939f, 0.0156729f, -0.0623686f, -0.0940103f, -0.149863f, 0.160762f, 0.0820495f, 0.205635f, -0.0220362f, -0.102315f, 0.0503845f, -0.263209f, 0.10272f, -0.216649f, -0.209913f, -0.157895f, -0.132675f, 0.112809f, 0.0628096f, 0.0697147f, -0.00293835f, 0.0712656f, 0.115205f, 0.278559f, 0.0888902f, -0.0804952f, 0.217645f, 0.131532f, -0.154918f, -0.11431f, -0.0608955f, -0.0859906f, 0.152317f, 0.0157732f, 0.0807284f, 0.151144f, -0.00139333f, 0.070769f, 0.0550566f, 0.256607f, -0.0245177f, -0.0863634f, 0.102589f, 0.132343f, 0.20523f, -0.0824188f, 0.170489f, 0.0126024f, -0.224054f, -0.101637f, 0.239361f, -0.0654669f, -0.144078f, -0.0949789f, -0.0541387f, 0.0724216f, -0.0410416f, -0.122476f, 0.00454521f, 0.0280066f, -0.0776037f, -0.203414f, -0.168576f, -0.171895f, -0.165265f, 0.148796f, -0.139065f, 0.0696495f, 0.0733077f, -0.143061f, 0.0124321f, -0.0656766f, 0.153647f, 0.173898f, -0.162695f, -0.320131f, -0.241429f, 0.110156f, -0.235396f, 0.206617f, -0.111782f, 0.0998234f, -0.140644f, 0.0353324f, -0.136564f, 0.218488f, -0.0339613f, -0.0849571f, 0.0707103f, -0.201516f, -0.192825f, -0.211125f, 0.199199f, -0.0326291f, 0.101162f, 0.0192028f, 0.13242f, 0.129202f, 0.141269f, 0.1881f, 0.23657f, -0.278145f, 0.319757f, -0.308598f, 0.0179604f, 0.0670292f, 0.0106033f, -0.00137376f, 0.0337243f, -0.0409648f, -0.00454466f, -0.284029f, 0.0279489f, 0.116599f, -0.212433f, 0.193526f, 0.0631862f, 0.0417051f, 0.148925f, -0.0898743f, 0.0255961f, 0.271188f, -0.0406907f, 0.00919216f, 0.123762f, -0.0597881f, -0.157491f, 0.0616878f, -0.163781f, 0.153812f, -0.0253282f, -0.00396999f, -0.124618f, 0.0538935f, -0.0216533f, 0.244184f, -0.0823637f, 0.0186347f, 0.0452056f, -0.1129f, 0.239025f, 0.15603f, 0.0158707f, -0.0373369f, -0.00358687f, -0.171496f, -0.101367f, -0.220009f, -0.0243099f, -0.292164f, -0.0257115f, 0.201057f, 0.0295581f, 0.184664f, 0.0787586f, -0.0166921f, 0.25691f, 0.161579f, 0.186111f, 0.118011f, -0.311893f, -0.0772708f, 0.116419f, 0.100059f, -0.12599f, -0.0177474f, 0.0865192f, -0.0164172f, -0.00952519f, -0.0498568f, 0.0876375f, -0.169055f, -0.141961f, 0.0497497f, 0.0347801f, 0.00908549f, -0.174333f, 0.209299f, -0.00202254f, -0.182648f, 0.106106f, -0.200276f, -0.0738198f, 0.0656476f, -0.0696735f, 0.101045f, 0.0529559f, 0.173206f, -0.0158068f, -0.201496f, -0.0151489f, -0.0639633f, 0.0912124f, -0.028273f, 0.210071f, -0.0836997f, 0.154926f, -0.275246f, 0.067257f, 0.0958501f, 0.120398f, 0.00673608f, 0.0272755f, 0.0813695f, 0.146463f, 0.0458396f, -0.10564f, 0.163046f, -0.0640659f, 0.0136267f, -0.000128203f, -0.088986f, -0.0590564f, 0.0490046f, -0.210003f, -0.0346406f, 0.164267f, -0.127266f, 0.0526659f, -0.257063f, -0.160869f, -0.0776637f, 0.18453f, 0.0584448f, -0.131223f, 0.0338478f, -0.0785069f, 0.112418f, 0.137596f, 0.0610283f, -0.102413f, -0.113325f, -0.0170346f, 0.0915119f, 0.00759179f, -0.117789f, 0.222311f, 0.187751f, -0.0460882f, -0.0140864f, -0.0556954f, 0.0537287f, -0.0167712f, -0.0109225f, 0.138218f, 0.250255f, -0.0547691f, 0.133485f, 0.115144f, -0.268204f, 0.16573f, 0.0131178f, -0.18977f, 0.0508997f, -0.00577514f, -0.0626388f, -0.0537562f, -0.00631664f, -0.13534f, 0.0438343f, -0.250307f, -0.180118f, 0.153294f, -0.116126f, -0.148875f, -0.0732516f, -0.0364347f, 0.14422f, 0.0583021f, -0.0769601f, -0.172752f, 0.127817f, -0.0497619f, -0.011642f, -0.127265f, 0.194251f, 0.171309f, 0.0485409f, -0.0642816f, -0.134518f, -0.123527f, -0.012013f, -0.206946f, 0.137272f, 0.183732f, 0.0419296f, 0.0349002f, 0.0570729f, -0.105051f, -0.0907605f, 0.178504f, 0.112496f, 0.0266972f, 0.147859f, -0.0592316f, -0.030018f, -0.0598401f, -0.0770821f, -0.0528412f, 0.0851273f, -0.11466f, 0.179941f, 0.0546353f, 0.0864927f, -0.233236f, -0.264518f, -0.0775516f, 0.209086f, -0.00486629f, -0.0655142f, 0.201105f, 0.123882f, 0.132132f, -0.0728044f, 0.18208f, 0.211718f, 0.0186567f, -0.232763f, 0.0440211f, 0.0407756f, -0.112053f, 0.0616512f, -0.0799701f, 0.0138665f, -0.0882211f, -0.125869f, -0.0456509f, -0.241888f, 0.0127585f, 0.076783f, 0.0411946f, -0.0926245f, 0.215459f, 0.0024529f, -0.0670847f, 0.0647464f, -0.151395f, -0.0976207f, 0.10577f, 0.108635f, -0.10366f, 0.121715f, -0.0400595f, 0.181189f, -0.0658645f, 0.164001f, -0.0432908f, 0.121548f, 0.141f, -0.0461912f, 0.155274f, -0.111731f, -0.0291831f, 0.1081f, -0.0748307f, -0.0513193f, 0.00339897f, 0.0143372f, 0.098652f, 0.109479f, 0.053772f, 0.0756187f, 0.0422668f, 0.114606f, 0.0954869f, 0.135866f, 0.118192f, 0.0179335f, -0.101435f, -0.113989f, 0.0645545f, 0.114148f, 0.100398f, -0.0279769f, 0.0610631f, -0.128033f, 0.145174f, -0.0190139f, 0.17224f, -0.263717f, 0.167032f, 0.0272838f, -0.0257983f, 0.153613f, 0.0812074f, 0.0340769f, -0.0357905f, 0.129842f, 0.0338046f, -0.283205f, 0.245524f, 0.00247249f, -0.193142f, -0.048326f, 0.192338f, -0.117521f, 0.23514f, 0.129757f, 0.0711746f, 0.179788f, 0.00222949f, -0.0680727f, 0.0812188f, -0.155736f, -0.250206f, -0.0175149f, 0.0184257f, 0.0806397f, -0.0236296f, 0.230054f, 0.000186344f, 0.0187887f, -0.135904f, -0.0590921f, -0.13757f, -0.0596825f, 0.175421f, -0.0229703f, 0.0205503f, -0.175564f, -0.0536809f, 0.075296f, -0.213262f, 0.0322106f, -0.213587f, 0.084008f, 0.156988f, 0.137857f, 0.282417f, 0.156455f, -0.139832f, -0.222723f, 0.0935258f, 0.122521f, -0.263295f, -0.155045f, 0.0313302f, -0.0196527f, -0.146391f, 0.0975536f, 0.145503f, 0.00657922f, 0.0735341f, 0.0107543f, 0.0056815f, -0.0830518f, 0.0104881f, -0.0836232f, 0.0690375f, 0.123212f, -0.0314594f, 0.0188127f, -0.101227f, -0.129506f, 0.265706f, 0.251034f, -0.240904f, 0.163791f, -0.180905f, -0.0800759f, -0.126062f, -0.0848818f, -0.151783f, -0.0364369f, 0.010119f, 0.0581931f, 0.0212232f, -0.0489573f, 0.101531f, 0.0550837f, 0.0354705f, -0.00159097f, -0.0648039f, -0.158361f, 0.163151f, -0.0884151f, 0.105448f, 0.0150826f, -0.0256581f, -0.321033f, 0.156865f, 0.0435066f, 0.115736f, -0.0131794f, -0.205087f, 0.437339f, 0.122778f, 0.0829581f, 0.0804419f, -0.0702339f, -0.0655086f, -0.169888f, 0.00544196f, -0.0176676f, 0.0398868f, -0.030714f, 0.0696253f, -0.123026f, -0.0974677f, 0.091858f, -0.0392729f, -0.00658008f, -0.166985f, 0.0489072f, 0.17952f, -0.0205947f, 0.0179226f, -0.0953401f, 0.145034f, -0.174779f, -0.0489624f, 0.239118f, 0.23792f, -0.123242f, -0.0910504f, -0.207811f, -0.0170485f, -0.00686514f, -0.06486f, 0.0560295f, -0.0487473f, -0.158371f, -0.139431f, 0.149287f, -0.0506436f, 0.0384007f, -0.19969f, -0.0408096f, 0.00789072f, -0.0576324f, -0.193647f, 0.00945372f, -0.0793391f, -0.0353947f, -0.058223f, -0.0681508f, 0.0851677f, 0.114591f, 0.132416f, 0.0698557f, -0.0703443f, -0.0774065f, -0.095628f, 0.124855f, -0.0544455f, 0.152064f, -0.268001f, 0.000815636f, 0.0702588f, 0.114541f, -0.117629f, 0.0208901f, -0.162759f, 0.0610539f, 0.088972f, 0.0883085f, -0.0830541f, 0.0984407f, -0.0385714f, -0.0404271f, -0.215948f, 0.130957f, -0.108181f, -0.119422f, 0.0908774f, -0.10086f, -0.0628632f, -0.0654098f, -0.112577f, 0.051861f, -0.101877f, 0.0722502f, -0.0810429f, -0.110269f, -0.109419f, -0.241789f, -0.10522f, 0.0173359f, 0.0189675f, -0.0401862f, 0.210331f, 0.0830524f, -0.010426f, 0.0769247f, 0.0341656f, 0.0968505f, 0.0777777f, -0.0769721f, -0.205274f, -0.024375f, 0.0605688f, -0.112388f, 0.25853f, -0.0448645f, -0.073246f, 0.0427836f, -0.125376f, 0.215848f, -0.0193127f, 0.0734253f, -0.178843f, -0.0212742f, -0.0706529f, 0.0523257f, -0.0476291f, -0.00530621f, 0.166278f, -0.213265f, 0.0863982f, 0.0621102f, 0.0386025f, 0.179099f, 0.111791f, 0.0955658f, 0.0340196f, 0.0913599f, 0.0912755f, -0.0768078f, 0.00207233f, 0.244117f, -0.105335f, -0.0846142f, -0.200656f, 0.0142517f, -0.0787745f, -0.177699f, 0.113539f, 0.0217118f, 0.0191313f, 0.306113f, 0.0235214f, -0.0157033f, 0.167926f, 0.0332919f, -0.0372184f, -0.000408444f, 0.0138884f, 0.0325736f, -0.132851f, 0.0331583f, -0.0566615f, -0.0666269f, -0.0608433f, 0.0195067f, -0.098767f, 0.0206768f, 0.132552f, 0.180209f, -0.0686394f, 0.0874844f, -0.116563f, 0.151896f, -0.0286183f, -0.0285857f, -0.16472f, -0.178582f, -0.0695828f, 0.0240284f, -0.0634775f, 0.0322408f, -0.0422718f, -0.262369f, -0.127916f, -0.0793962f, 0.00699218f, 0.0546162f, -0.173779f, 0.150548f, 0.0443149f, -0.0559556f, -0.0947637f, -0.150509f, 0.010551f, -0.0667702f, -0.0510915f, -0.183442f, -0.0391435f, -0.171893f, -0.151472f, 0.0656602f, -0.0626185f, 0.124795f, -0.138819f, 0.121082f, 0.00175628f, 0.182832f, -0.0514185f, 0.157095f, 0.113412f, 0.0377616f, -0.171993f, -0.129415f, 0.134699f, 0.176825f, 0.00697349f, 0.0444482f, -0.0648894f, -0.274391f, 0.133759f, 0.11688f, 0.0741738f, 0.00811891f, 0.00252066f, 0.149786f, -0.0840518f, 0.131431f, 0.0208335f, 0.254882f, -0.0023195f, 0.0278739f, -0.136466f, 0.227001f, 0.0140528f, -0.245495f, 0.196031f, -0.188816f, -0.0780731f, -0.116528f, -0.119028f, 0.0981095f, 0.0810659f, -0.073981f, 0.11605f, 0.0346823f, -0.167768f, -0.000185056f, -0.119392f, -0.104305f, 0.0724941f, 0.169102f, 0.0852638f, -0.0944527f, 0.0324173f, 0.0359453f, 0.150663f, 0.0850311f, -0.173966f, 0.0228876f, -0.0334066f, 0.000604998f, 0.106278f, -0.0562876f, -0.0255903f, -0.0714161f, 0.0947406f, -0.131181f, -0.0826377f, 0.100442f, 0.0579183f, 0.0755977f, 0.0228329f, 0.256784f, 0.0131378f, -0.0055967f, -0.0867157f, 0.110399f, 0.0843898f, 0.126627f, 0.0223377f, -0.0370896f, 0.0232652f, -0.11607f, 0.0304799f, 0.0177294f, 0.063562f, 0.129456f, 0.0504753f, -0.0648579f, 0.048718f, -0.0965241f, -0.0885635f, 0.129345f, 0.0429718f, 0.0287422f, -0.0143685f, 0.300954f, -0.00257858f, -0.179205f, -0.00980225f, -0.198745f, -0.00756979f, -0.0558818f, 0.0278554f, -0.12633f, -0.0215061f, 0.0590665f, 0.0760303f, -0.114983f, 0.064316f, 0.154967f, -0.145714f, -0.0310167f, 0.095259f, 0.0125656f, -0.168546f, 0.103427f, -0.0895544f, -0.205088f, 0.0899125f, 0.083726f, -0.0861539f, 0.116905f, -0.0474018f, 0.0294383f, -0.0305694f, -0.00172221f, 0.133191f, 0.0750091f, -0.202206f, 0.0297951f, -0.0554092f, -0.0792784f, 0.12854f, 0.199794f, -0.266186f, 0.0115277f, -0.008868f, 0.0844251f, 0.139115f, -0.194959f, 0.0615276f, -0.080701f, -0.071206f, 0.245844f, -0.00818178f, 0.190737f, 0.0169969f, 0.19842f, 0.357184f, -0.0368749f, 0.13117f, 0.101504f, -0.0578132f, -0.256651f, 0.0996137f, -0.00193969f, -0.0387261f, 0.0641002f, 0.279298f, -0.0675f, 0.506001f, -0.215737f, 0.0988978f, 0.155897f, -0.0819597f, -0.0860576f, -0.272194f, -0.326969f, -0.38449f, 0.0363616f, 0.113583f, -0.00386742f, 0.107321f, 0.0812119f, 0.263661f, -0.0403217f, -0.19033f, -0.0427781f, -0.154502f, -0.0845164f, 0.0697019f, 0.107325f, -0.241355f, 0.0540912f, -0.155764f, -0.197512f, -0.0125014f, -0.000326012f, 0.0450815f, -0.389881f, -0.0332094f, 0.00284498f, 0.27545f, 0.392098f, -0.0292499f, -0.0464762f, 0.0796166f, 0.0681087f, 0.12701f, 0.0948357f, 0.204792f, 0.0318408f, -0.0333836f, -0.116781f, 0.0311849f, -0.167658f, 0.0939066f, -0.0039275f, -0.00792159f, 0.0385311f, -0.128147f, 0.176475f, 0.247558f, -0.0499655f, 0.147083f, 0.148222f, -0.0884352f, -0.144348f, 0.0713125f, -0.0920039f, -0.037414f, -0.192953f, -0.160666f, -0.129845f, 0.0589719f, -0.102059f, -0.233913f, -0.087479f, -0.0849216f, 0.0131217f, -0.0224588f, -0.270573f, -0.260302f, 0.12281f, 0.337819f, 0.0741174f, 0.135913f, 0.332336f, -0.108861f, 0.112764f, -0.288669f, 0.0428603f, -0.00981443f, 0.265069f, 0.165814f, 0.343921f, -0.0237404f, 0.00931397f, -0.313664f, -0.220754f, 0.170612f, -0.231744f, -0.160884f, -0.069506f, 0.129114f, 0.0382819f, 0.0447222f, 0.0126682f, 0.107395f, 0.120605f, -0.258478f, 0.0932997f, -0.00627118f, -0.139096f, -0.108468f, -0.0249444f, -0.0463216f, 0.0457018f, -0.235801f, 0.0136225f, 0.124736f, -0.29871f, -0.0789706f, 0.0429561f, 0.157843f, -0.0338841f, 0.21836f, -0.0271167f, -0.0807301f, -0.145592f, -0.0684805f, -0.107817f, -0.0468223f, -0.0461771f, 0.22931f, 0.142304f, -0.0815209f, 0.149737f, 0.363319f, -0.137418f, 0.191079f, 0.0176845f, 0.205998f, 0.0384169f, -0.182598f, 0.109413f, 0.0211715f, -0.135973f, 0.0386256f, 0.000726429f, -0.199358f, 0.187883f, 0.0457222f, -0.104514f, 0.0435354f, 0.000247397f, -0.0416831f, 0.152955f, 0.153807f, 0.198978f, -0.243062f, 0.247538f, 0.173972f, 0.0644839f, 0.0288431f, 0.212127f, 0.413307f, 0.320361f, -0.156899f, -0.0819796f, 0.200145f, -0.235255f, 0.127579f, -0.0376065f, 0.234423f, 0.216198f, -0.213731f, -0.11815f, -0.0332577f, 0.0972256f, 0.121267f, -0.0661635f, 0.328059f, -0.0946834f, -0.0509464f, 0.0912807f, 0.129418f, 0.137397f, -0.10561f, -0.138725f, 0.0955021f, 0.218396f, 0.0810589f, -0.273199f, -0.171627f, -0.135825f, -0.122585f, -0.0180222f, 0.0621331f, 0.301185f, 0.0942909f, 0.0497267f, 0.107049f, -0.296376f, 0.171277f, 0.0885494f, -0.0742949f, -0.127168f, -0.0250305f, 0.103912f, 0.134432f, 0.222457f, 0.155715f, 0.0926515f, 0.18151f, -0.0325168f, 0.0362297f, 0.155452f, -0.163519f, -0.179569f, 0.182761f, 0.172364f, -0.0666764f, -0.245029f, -0.175689f, -0.230203f, 0.113561f, 0.23567f, 0.0342455f, -0.0879988f, 0.111756f, -0.305954f, -0.324869f, -0.256834f, 0.189161f, -0.0437604f, 0.145577f, 0.104031f, -0.010309f, 0.135294f, 0.0740881f, -0.104341f, 0.252212f, -0.15667f, -0.0961849f, 0.101692f, 0.127823f, 0.0499699f, 0.173204f, -0.0282914f, -0.147955f, 0.169337f, -0.00758378f, 0.236406f, 0.0151118f, -0.127673f, -0.135769f, 0.0478547f, 0.0448006f, -0.15396f, 0.0051245f, -0.028635f, -0.0602674f, 0.00616249f, -0.125354f, 0.00934835f, -0.141208f, -0.104354f, -0.17681f, 0.0118432f, 0.11253f, 0.152695f, 0.0218958f, -0.0591738f, 0.0558029f, -0.0831983f, -0.207819f, 0.0903949f, 0.0964203f, 0.0614674f, -0.0290391f, -0.0124145f, -0.0606799f, -0.120157f, -0.0959133f, 0.0579556f, 0.0492422f, -0.193172f, -0.00704798f, 0.275035f, 0.0448362f, -0.015223f, 0.0400183f, -0.00256347f, -0.0686289f, 0.231241f, 0.0528252f, -0.0907382f, 0.1122f, 0.000119935f, 0.0131514f, 0.09576f, -0.00200802f, -0.0584134f, -0.00612995f, -0.00189615f, -0.139176f, 0.0154851f, -0.0901712f, 0.0626434f, -0.061221f, 0.0159959f, 0.0565567f, -0.0479779f, -0.120286f, -0.0445693f, -0.124499f, 0.0179224f, 0.0501557f, -0.0312866f, -0.0849391f, 0.0428564f, -0.0204012f, -0.0012318f, -0.00418449f, -0.0688548f, -0.0678492f, -0.0150318f, -0.143667f, 0.0398893f, 0.0251019f, -0.0776543f, -0.123209f, -0.0793574f, 0.013586f, 0.100932f, 0.0579839f, 0.152817f, 0.237006f, -0.16202f, -0.0875908f, -0.0785494f, 0.0196369f, -0.0864998f, -0.130494f, -0.169821f, 0.0197928f, -0.0199144f, -0.0195024f, -0.0760094f, -0.0724928f, -0.0106963f, -0.102011f, -0.0083125f, -0.0135099f, -0.0579602f, 0.0584828f, -0.17048f, 0.164064f, -0.0148655f, -0.0500475f, 0.12533f, -0.0529697f, -0.00521843f, 0.0252709f, -0.17992f, 0.0709523f, -0.00658374f, 0.178137f, 0.138967f, -0.108992f, -0.161285f, 0.0086407f, -0.223566f, -0.0384771f, -0.211313f, 0.0677406f, -0.00599888f, 0.118953f, 0.00878774f, 0.066164f, -0.109459f, 0.121902f, -0.0870284f, 0.0361192f, -0.182968f, -0.163024f, 0.0978773f, 0.149324f, -0.13245f, 0.117265f, -0.0258399f, 0.0151476f, 0.0761466f, 0.113917f, 0.0406516f, -0.184228f, -0.172194f, 0.0739748f, -0.0634019f, 0.117356f, -0.114034f, 0.20926f, 0.135086f, -0.138214f, -0.130722f, -0.040236f, -0.0794507f, 0.0509833f, -0.074066f, -0.0716106f, -0.0747813f, 0.0849477f, 0.041613f, 0.0282098f, 0.151484f, -0.0874945f, -0.0447685f, -0.0860599f, 0.0714599f, 0.134779f, 0.0856713f, -0.186603f, 0.209268f, -0.0387035f, -0.128843f, -0.00114051f, -0.0801288f, 0.0282234f, 0.0683361f, 0.081759f, 0.062532f, -0.0831773f, 0.0350438f, 0.0701749f, 0.134698f, -0.177307f, 0.0221676f, -0.0806364f, 0.0468886f, 0.0291498f, -0.0886982f, 0.141409f, -0.197509f, -0.0104803f, 0.0141188f, 0.106016f, -0.0275436f, 0.0328858f, 0.113297f, -0.0373783f, 0.126174f, -0.0762779f, -0.21811f, 0.0496844f, 0.00431464f, 0.125884f, 0.0272418f, 0.252642f, -0.0586763f, 0.0917888f, 0.150307f, 0.0251918f, 0.0465303f, 0.0222542f, -0.0691396f, 0.0445492f, -0.147795f, -0.000448994f, 0.0643487f, 0.181595f, -0.0314131f, -0.0223549f, -0.104567f, 0.000652142f, -0.0154411f, 0.114705f, 0.016104f, -0.112386f, -0.146525f, 0.064174f, 0.0326167f, 0.0411558f, 0.111644f, 0.197547f, -0.0244182f, -0.0862752f, -0.0348772f, -0.0693845f, 0.0143026f, -0.159132f, -0.086737f, 0.0806928f, 0.0736189f, -0.15116f, 0.0260652f, -0.141981f, -0.165028f, 0.10091f, 0.120225f, -0.0252739f, -0.0363347f, 0.0807564f, -0.0108408f, -0.0381566f, -0.0237837f, 0.0604231f, 0.0710043f, -0.030069f, 0.0478521f, -0.130068f, -0.0238831f, 0.102252f, -0.118886f, 0.139065f, 0.0318685f, -0.205221f, -0.0156607f, 0.198583f, -5.98665e-05f, -0.127811f, -0.101378f, 0.0678857f, -0.132976f, -0.188427f, 0.200373f, -0.0669128f, -0.15446f, 0.0299097f, -0.106412f, 0.135736f, -0.100306f, 0.0181424f, 0.129008f, -0.222443f, -0.0552632f, -0.0475511f, 0.00134916f, -0.0390983f, -0.104723f, 0.103996f, 0.109519f, -0.13221f, 0.147881f, 0.0119095f, 0.112126f, -0.04349f, -0.090082f, 0.145782f, 0.0897858f, 0.133676f, -0.0619553f, -0.158935f, 0.0273554f, 0.104289f, -0.206594f, -0.111938f, 0.0950881f, 0.255499f, -0.222386f, 0.248471f, -0.0256488f, 0.170453f, -0.113599f, 0.0236647f, 0.0849356f, 0.154871f, 0.119487f, 0.116493f, 0.168094f, 0.0304802f, 0.180572f, 0.020168f, 0.0602093f, 0.00665532f, -0.0255185f, 0.0846459f, 0.105583f, -0.136665f, 0.0982485f, 0.00507341f, -0.085773f, 0.0700346f, -0.0370705f, -0.137398f, 0.0313906f, 0.138899f, 0.11826f, -0.0207551f, 0.0869546f, -0.0547888f, 0.103498f, -0.19468f, -0.0283711f, -0.0614314f, -0.00709089f, -0.221586f, 0.0599072f, -0.175743f, 0.142587f, 0.129046f, -0.192902f, 0.0243416f, 0.259099f, -0.145485f, 0.0104425f, 0.187847f, -0.0678044f, -0.0352992f, -0.16175f, -0.0833995f, 0.117176f, -0.0665493f, -0.0152509f, 0.0051815f, -0.207266f, -0.019738f, 0.0575673f, -0.071228f, -0.000984146f, -0.0748135f, 0.109115f, 0.120859f, 0.0869642f, -0.216025f, -0.179474f, -0.030288f, 0.223403f, -0.22891f, 0.195074f, -0.096384f, -0.23667f, 0.17142f, 0.00131925f, 0.19362f, 0.164628f, -0.0722163f, 0.213181f, -0.121372f, -0.0458418f, 0.124466f, -0.134492f, 0.18649f, -0.0302282f, -0.159019f, 0.0962952f, 0.077528f, -0.0116104f, 0.237647f, 0.144821f, 0.0467623f, -0.15019f, 0.152276f, -0.162006f, -0.0623796f, 0.0354756f, -0.147509f, -0.0173364f, -0.00318246f, 0.0286479f, -0.0388673f, 0.0771449f, 0.0163912f, 0.170884f, 0.149291f, -0.0370905f, -0.0331998f, 0.158839f, -0.0961084f, -0.0278287f, -0.0201413f, -0.0863623f, -0.0289948f, 0.031955f, -0.0621515f, 0.138831f, 0.0141191f, 0.246623f, 0.0333854f, 0.059378f, -0.012042f, 0.0553571f, 0.150137f, 0.00856219f, 0.0861659f, -4.7618e-05f, 0.218354f, 0.0593148f, 0.0132907f, 0.154899f, 0.0764347f, -0.125991f, -0.00134217f, -0.00303241f, -0.0580433f, 0.345625f, -0.0800776f, -0.102771f, -0.211465f, -0.176251f, 0.21438f, 0.0789203f, -0.106912f, 0.0504311f, 0.162557f, 0.230577f, -0.183784f, -0.0869557f, 0.243017f, 0.00246569f, 0.123343f, -0.10449f, 0.122736f, -0.00643869f, -0.0672606f, -0.0394283f, -0.126697f, 0.0983121f, -0.0122678f, 0.0916673f, -0.169025f, -0.0803425f, 0.105344f, -0.134718f, -0.00613466f, -0.248326f, 0.0880329f, 0.124797f, 0.143799f, -0.0108434f, -0.117157f, 0.149942f, 0.0537911f, -0.121792f, 0.070701f, 0.071616f, -0.110841f, -0.0214507f, -0.0681635f, 0.131059f, 0.199172f, -0.12459f, -0.15316f, 0.00680631f, -0.0775858f, 0.0710502f, 0.264433f, -0.148041f, 0.103597f, 0.139653f, 0.0418093f, -0.112271f, -0.0536534f, -0.18218f, -0.119103f, -0.0176227f, -0.0605089f, 0.107882f, -0.0577954f, -0.00558063f, -0.00938599f, -0.0503342f, -0.0346481f, 0.00204457f, -0.0853209f, 0.137825f, -0.0980989f, 0.0348955f, -0.144187f, 0.0458622f, -0.0799734f, -0.0789403f, -0.0942469f, -0.135119f, 0.0686467f, -0.200206f, -0.115418f, 0.0467989f, -0.0769256f, 0.00951706f, -0.122204f, -0.0854673f, -0.1761f, -0.182107f, 0.137492f, 0.0142369f, 0.010289f, -0.0544045f, 0.109746f, -0.0295191f, -0.0457824f, 0.12209f, 0.0865202f, 0.0589301f, -0.206545f, -0.0900959f, -0.0653394f, -0.180972f, -0.0923688f, -0.0116919f, -0.170174f, -0.268202f, -0.0236283f, -0.0781379f, 0.146047f, -0.098772f, -0.198423f, 0.0758831f, -0.0988761f, 0.143387f, 0.129315f, 0.0284488f, 0.0762478f, 0.0390445f, 0.0451602f, -0.0571305f, 0.072919f, -0.0696496f, -0.0694104f, 0.109173f, -0.100694f, 0.0435224f, 0.218701f, -0.0834622f, 0.0394063f, -0.0921018f, 0.0696063f, -0.0371488f, 0.0856475f, -0.194191f, 0.0685301f, 0.0227734f, 0.195025f, 0.0425709f, 0.224982f, 0.117437f, -0.106625f, 0.0492596f, -0.192776f, 0.0163196f, 0.109095f, -0.00275176f, -0.0445718f, -0.208842f, 0.076956f, 0.0291754f, -0.207081f, 0.00973305f, -0.237124f, 0.0879367f, -0.0417903f, 0.237792f, -0.153824f, -0.0338887f, 0.180044f, 0.0243912f, 0.144806f, -0.0793271f, 0.0708848f, 0.240696f, -0.0854541f, 0.143424f, 0.0285451f, -0.0401421f, -0.00501345f, 0.115746f, 0.147666f, -0.123234f, -0.205089f, 0.289256f, -0.196154f, 0.000694056f, 0.119829f, -0.0359608f, -0.0189577f, -0.0867081f, 0.212768f, 0.273551f, 0.00147898f, 0.0610386f, 0.139745f, 0.0422569f, 0.0258457f, 0.00148501f, -0.0215739f, -0.152039f, 0.22985f, -0.25683f, -0.132792f, 0.0295118f, 0.0244289f, -0.288629f, 0.0688274f, 0.0276397f, -0.064199f, -0.13793f, 0.0814426f, -0.0573788f, -0.120331f, 0.0421837f, -0.251215f, -0.187818f, 0.164919f, -0.011315f, 0.053508f, -0.0850103f, 0.00959646f, -0.0795565f, 0.0709676f, 0.109723f, -0.00832466f, 0.0555221f, -0.0420175f, 0.0346932f, 0.00106526f, -0.122099f, 0.0417366f, -0.154292f, 0.155476f, -0.063853f, 0.00716148f, -0.0277002f, 0.0340423f, 0.0185773f, -0.114273f, -0.0303362f, 0.0161705f, 0.024045f, 0.227834f, -0.118016f, -0.00790451f, 0.0331979f, -0.0202401f, -0.0815151f, -0.076703f, 0.102499f, -0.166698f, 0.1794f, -0.0628112f, -0.128283f, -0.146938f, -0.133489f, 0.00172491f, 0.00280578f, 0.133686f, -0.0894492f, 0.144861f, 0.0965863f, 0.132959f, 0.0452224f, -0.0381161f, 0.126696f, -0.0186052f, 0.0467566f, -0.0868677f, 0.121002f, 0.0651911f, -0.161776f, 0.137306f, -0.0580165f, -0.00690522f, -0.0290725f, 0.164249f, 0.0347949f, 0.00214013f, -0.220871f, -0.129347f, -0.0668542f, -0.0681427f, -0.079008f, 0.314721f, 0.0764624f, 0.00724012f, -0.0839503f, -0.200152f, -0.0365025f, -0.0699129f, -0.0971513f, 0.0984011f, -0.0675972f, -0.0666632f, -0.081528f, 0.033776f, -0.144332f, -0.0928516f, 0.236018f, -0.164754f, 0.0598096f, -0.0835708f, 0.093128f, 0.114598f, -0.132213f, -0.100847f, 0.23257f, -0.0752448f, 0.117899f, 0.147503f, -0.103068f, 0.111783f, -0.10548f, 0.00751441f, -0.213604f, -0.0362565f, 0.134381f, 0.116187f, -0.0519197f, -0.112912f, -0.0312764f, -0.109184f, 0.191952f, 0.0200984f, -0.143034f, -0.0343104f, 0.0182811f, 0.165848f, -0.0193531f, 0.342965f, 0.124239f, 0.257736f, 0.0883163f, 0.121216f, 0.243295f, -0.0440278f, -0.135295f, -0.224263f, -0.0397247f, 0.10285f, -0.0763661f, -0.218827f, -0.19009f, -0.00229781f, 0.142326f, 0.0364133f, -0.0507006f, -0.184573f, -0.0752095f, 0.0969726f, -0.00236847f, 0.0275267f, -0.0493384f, -0.109865f, -0.22903f, 0.130944f, 0.100586f, -0.0126691f, -0.0638565f, 0.187703f, 0.0382685f, -0.271724f, 0.157013f, -0.00578931f, 0.0487145f, 0.0697044f, -0.070719f, 0.100314f, 0.0670889f, -0.089731f, 0.120008f, 0.244028f, -0.0887759f, -0.0562774f, 0.176258f, -0.17484f, 0.116437f, 0.0520487f, -0.0490764f, -0.00139344f, 0.217778f, 0.217131f, 0.0592325f, -0.168734f, 0.120674f, -0.109075f, 0.0932496f, 0.017366f, -0.13439f, 0.0547011f, -0.113507f, 0.0706869f, -0.0794464f, 0.0982502f, 0.0198265f, 0.231302f, -0.0106245f, 0.0253474f, 0.125841f, 0.0105839f, -0.179699f, -0.161713f, 0.145705f, -0.0780071f, -0.0712371f, -0.0315387f, 0.0128114f, -0.0578417f, -0.0975414f, 0.0173277f, 0.0617995f, -0.0615172f, 0.0947733f, -0.0908727f, -0.0603052f, 0.213118f, -0.112434f, -0.0739139f, -0.124443f, -0.253411f, -0.14741f, 0.179934f, -0.114883f, -0.0818029f, -0.0857593f, -0.136172f, 0.0150227f, 0.138098f, 0.00178983f, -0.140547f, 0.247179f, -0.0591442f, 0.138674f, -0.203076f, -0.132054f, 0.18498f, -0.108796f, -0.022882f, 0.0464259f, -0.0141205f, 0.0672424f, -0.266474f, -0.0971649f, 0.139099f, -0.0105568f, -0.0627274f, 0.0215492f, -0.185634f, -0.134133f, 0.0671276f, -0.0661153f, -0.0667367f, 0.107854f, -0.00514662f, 0.0999097f, -0.119004f, -0.0275919f, 0.121292f, -0.25292f, -0.093721f, 0.121788f, -0.14691f, -0.0138386f, -0.179181f, 0.225282f, 0.0935741f, -0.132131f, -0.0939318f, -0.153015f, -0.219946f, 0.180054f, 0.0693597f, -0.00150948f, 0.164725f, 0.0479524f, 0.0037224f, -0.112366f, 0.151742f, 0.0256878f, 0.0385759f, 0.00975147f, 0.100836f, 0.144203f, -0.0116808f, 0.0251552f, -0.109911f, -0.116683f, 0.226818f, -0.0793053f, -0.00746969f, 0.163852f, 0.156874f, 0.0153576f, -0.119723f, -0.117125f, -0.0104274f, -0.037921f, 0.124439f, -0.0930519f, -0.277246f, 0.00946268f, 0.0754356f, 0.11069f, 0.0848534f, 0.0394827f, 0.0410549f, 0.149576f, -0.214529f, -0.0711652f, 0.0793094f, -0.160111f, -0.29032f, 0.215023f, 0.0106941f, 0.0703803f, 0.0106578f, -0.264639f, -0.0366483f, -0.113125f, 0.0651106f, 0.146131f, 0.0108139f, 0.0733677f, 0.111085f, 0.0682245f, -0.0185144f, -0.194783f, -0.00668159f, -0.111964f, 0.0401302f, -0.176438f, -0.122274f, -0.0985983f, 0.0786886f, -0.10677f, -0.0637639f, 0.0436926f, -0.168085f, -0.136904f, -0.00698035f, -0.0102856f, 0.032858f, -0.0846652f, 0.0786414f, -0.0103146f, -0.0172699f, 0.191308f, 0.0970226f, -0.0392855f, -0.0196997f, -0.0208659f, -0.06607f, 0.182636f, -0.121528f, -0.0271831f, -0.212663f, 0.0746408f, -0.157734f, 0.021061f, -0.0984339f, 0.165819f, 0.16082f, 0.26415f, -0.12103f, -0.0903395f, 0.0551471f, -0.0161223f, -0.041954f, -0.0382464f, 0.0801181f, -0.0195517f, -0.206573f, -0.111438f, -0.031608f, -0.183581f, -0.210521f, 0.053813f, -0.0906877f, 0.0699519f, -0.136933f, -0.164104f, 0.118824f, 0.0394529f, -0.0636883f, -0.0529175f, -0.0439108f, 0.0960075f, 0.0529875f, -0.0824199f, 0.0291773f, 0.168542f, 0.0836484f, 0.275921f, -0.102573f, 0.230073f, 0.254858f, 0.102068f, 0.023641f, 0.26348f, 0.0469059f, -0.0469093f, 0.220777f, -0.286882f, -0.0357181f, -0.209371f, -0.159239f, 0.314642f, -0.0208675f, 0.1846f, -0.215729f, 0.279951f, 0.180473f, -0.00323286f, 0.113121f, 0.154741f, 0.300324f, -0.195581f, 0.0756036f, -0.177486f, -0.0339292f, 0.172992f, 0.325225f, -0.219418f, -0.194921f, 0.00358336f, -0.0173981f, 0.0729294f, 0.280013f, 0.333092f, -0.00407656f, -0.301409f, 0.128747f, -0.28168f, -0.314256f, -0.113422f, 0.235306f, 0.00560463f, 0.0378161f, -0.0198608f, -0.142956f, 0.177944f, -0.0786307f, 0.070836f, -0.112579f, 0.052861f, -0.141208f, -0.263223f, 0.23342f, -0.0653926f, -0.0871511f, -0.0103076f, 0.106192f, -0.0983818f, -0.282502f, 0.264288f, 0.188953f, -0.0270305f, -0.313235f, -0.124472f, 0.108204f, 0.0386444f, -0.0612135f, -0.353529f, -0.133861f, 0.227677f, -0.187742f, -0.0661174f, -0.185681f, -0.153708f, -0.302492f, 0.200596f, 0.183744f, 0.0622678f, 0.391556f, 0.14767f, -0.0558014f, -0.0711221f, 0.234971f, 0.402148f, 0.168323f, -0.319123f, -0.0799006f, -0.0533871f, 0.206295f, -0.0669435f, -0.348737f, 0.0397998f, -0.287802f, 0.414969f, 0.304533f, 0.166342f, 0.207638f, 0.198308f, 0.0990035f, -0.300412f, -0.116588f, -0.0190157f, -0.276415f, 0.0340033f, 0.10554f, 0.0921162f, -0.0122708f, -0.00169588f, -0.184484f, -0.0224095f, 0.206177f, 0.043857f, 0.161551f, -0.194626f, 0.0944611f, -0.0751198f, 0.0129817f, 0.203131f, -0.102259f, 0.232573f, -0.191799f, -0.0571708f, 0.143056f, 0.107242f, -0.176972f, 0.0806286f, 0.132875f, 0.154756f, -0.28298f, -0.158248f, -0.311699f, -0.255177f, -0.043651f, 0.0062329f, -0.0890265f, 0.18836f, -0.101636f, 0.191207f, -0.0670028f, -0.33741f, -0.0497557f, 0.0246458f, 0.113071f, 0.0689533f, -0.0245295f, 0.0957643f, -0.098481f, -0.147187f, 0.170077f, 0.0816554f, -0.100763f, -0.0387205f, 0.382944f, 0.229855f, 0.173586f, 0.25056f, -0.059056f, 0.212238f, 0.00434263f, -0.215301f, 0.185169f, -0.0339269f, 0.182791f, 0.187827f, -0.245471f, 0.111364f, -0.145897f, 0.0950495f, -0.0131738f, 0.123283f, -0.0648089f, -0.189129f, -0.122058f, -0.0861568f, -0.0611618f, 0.636366f, 0.736809f, -0.256716f, -0.0412127f, 0.102078f, -0.188738f, 0.0935055f, -0.120318f, -0.260524f, -0.114821f, -0.141467f, 0.491235f, 0.298016f, 0.21589f, -0.0252197f, -0.0632718f, 0.00463951f, -0.207995f, -0.266578f, 0.308666f, 0.310765f, 0.187935f, -0.290959f, 0.111373f, 0.0812371f, -0.0225491f, -0.0435383f, 0.125686f, 0.032111f, -0.145997f, 0.00689719f, -0.185064f, 0.247729f, -0.118588f, 0.129766f, 0.242684f, 0.0787632f, 0.0444306f, -0.170371f, 0.276967f, 0.0217208f, -0.41257f, 0.107179f, 0.0989119f, 0.129354f, 0.0425178f, 0.0314305f, 0.103995f, -0.0809212f, 0.372463f, 0.0845921f, -0.18861f, -0.0254572f, 0.154167f, -0.238877f, 0.133836f, -0.00648153f, 0.232288f, 0.032685f, 0.363062f, -0.144804f, 0.293916f, -0.254803f, -0.214192f, -0.36057f, -0.382258f, 0.313776f, 0.24997f, -0.0697747f, 0.0414923f, 0.208457f, 0.144883f, 0.0192457f, 0.0582103f, -0.272428f, -0.0948573f, -0.0120037f, -0.0940182f, -0.206654f, 0.0130237f, 0.218333f, -0.0602826f, -0.042825f, 0.060412f, 0.0265483f, -0.0471507f, 0.0286716f, 0.155402f, 0.0563468f, 0.0957819f, -0.00255267f, 0.110888f, 0.0290734f, -0.127474f, 0.106566f, -0.108352f, 0.00861226f, 0.13332f, 0.0279242f, -0.0544162f, 0.0208125f, 0.0645146f, -0.097423f, 0.0166138f, -0.10689f, 0.0377916f, -0.0789734f, 0.108595f, 0.0500762f, -0.046141f, 0.362536f, 0.158871f, 0.12387f, -0.258601f, 0.077559f, 0.126662f, 0.25344f, 0.180598f, -0.192426f, -0.105394f, 0.112715f, 0.109178f, 0.0999499f, -0.00691344f, 0.0352418f, 0.250104f, -0.0604681f, 0.262855f, -0.0945072f, -0.202137f, 0.249717f, -0.0729316f, 0.282383f, -0.0350123f, 0.087486f, -0.0532102f, -0.0840887f, 0.168615f, -0.262945f, 0.00884907f, -0.0399028f, 0.0682322f, -0.0217063f, -0.0370947f, 0.128442f, -0.282674f, -0.221895f, 0.232109f, 0.0441874f, -0.0102281f, 0.0741557f, -0.260964f, -0.0391819f, -0.106258f, 0.196757f, 0.182466f, -0.144592f, 0.030687f, 0.165656f, 0.108144f, 0.0790378f, 0.164883f, -0.0489416f, 0.114347f, -0.204461f, 0.142293f, 0.121396f, 0.118356f, -0.0573363f, 0.0624745f, 0.00812769f, 0.0543175f, -0.0440848f, 0.136728f, -0.0675272f, -0.157126f, -0.0181872f, -0.00282027f, 0.238695f, -0.202703f, -0.182977f, 0.243929f, -0.176325f, 0.161712f, -0.0116835f, -0.0353563f, 0.00846957f, -0.194068f, -0.188206f, -0.35769f, -0.0937516f, 0.0810861f, 0.00425294f, 0.0591635f, 0.00121353f, -0.102602f, 0.193323f, 0.167831f, -0.116575f, -0.156657f, -0.0272876f, -0.198268f, -0.0937944f, 0.0131809f, -0.0109882f, 0.0582959f, -0.00407698f, -0.132396f, -0.0601816f, 0.134164f, 0.127806f, -0.0554798f, -0.249857f, 0.0140217f, -0.0602708f, 0.00247137f, 0.00634794f, -0.213683f, 0.0298689f, -0.0433373f, -0.111569f, -0.0540633f, -0.19107f, -0.124961f, 0.0792032f, 0.126076f, -0.0204038f, -0.116273f, -0.0432033f, 0.0798031f, 0.027416f, -0.21347f, -0.134438f, -0.0386782f, 0.101965f, 0.197079f, 0.0712456f, -0.1841f, -0.0359777f, 0.118958f, 0.00384864f, 0.0689699f, -0.148869f, 0.0975514f, 0.0184585f, -0.0145338f, -0.0063414f, -0.0390304f, -0.00922616f, 0.0393735f, -0.00677561f, -0.187166f, -0.0683456f, 0.110883f, 0.0607254f, 0.0169242f, -0.102545f, 0.218944f, 0.0244607f, -0.125224f, -0.194648f, -0.168217f, -0.0194361f, -0.245675f, 0.0847858f, 0.0316608f, 0.0618037f, 0.128778f, -0.262767f, 0.159974f, -0.122389f, 0.0305942f, -0.0869733f, -0.135005f, -0.146724f, 0.148079f, -0.105495f, 0.0740517f, 0.233212f, 0.136981f, -0.0942564f, -0.176839f, 0.0580593f, -0.170882f, -0.108537f, 0.0698883f, 0.0403303f, -0.0438507f, 0.264977f, 0.02278f, 0.151285f, -0.0127768f, 0.168904f, -0.21016f, 0.0772769f, -0.0605209f, -0.0497739f, -0.0891301f, 0.0613813f, 0.00878133f, -0.0889423f, 0.154696f, -0.222321f, 0.0962186f, -0.112886f, -0.0127156f, -0.16128f, 0.183913f, -0.0663535f, 0.0354361f, 0.157454f, -0.0255512f, 0.0147898f, 0.0612561f, 0.0953567f, 0.197077f, 0.0595043f, 0.0243698f, -0.0665777f, 0.0405368f, -0.204739f, -0.0103819f, -0.131885f, -0.141201f, 0.172504f, -0.227495f, 0.0405279f, 0.175494f, 0.12578f, 0.243895f, 0.217178f, 0.266987f, -0.0591961f, -0.106431f, 0.148428f, -0.219151f, 0.0400725f, -0.0129131f, 0.152788f, 0.0632573f, 0.0182006f, 0.15729f, -0.349739f, 0.164475f, -0.370058f, 0.25108f, 0.235571f, -0.0628843f, -0.348934f, 0.189524f, 0.065567f, 0.0326765f, -0.000553408f, -0.0489087f, 0.370912f, 0.0406988f, 0.110557f, -0.117066f, 0.207127f, 0.12027f, 0.222515f, -0.322263f, -0.218227f, -0.187513f, 0.039498f, -0.163116f, -0.170728f, 0.148044f, -0.190501f, 0.00417923f, 0.217897f, -0.0141875f, -0.0636772f, 0.100365f, 0.233881f, -0.106519f, -0.0601823f, 0.352194f, 0.0352076f, -0.0495441f, 0.372917f, -0.00531529f, 0.13163f, 0.0626438f, 0.15136f, 0.323508f, -0.143024f, -0.0651826f, -0.23684f, -0.0192562f, -0.256775f, -0.0760735f, -0.145021f, -0.0665562f, -0.0942427f, 0.205804f, -0.300507f, -0.303363f, -0.0913726f, 0.126804f, 0.19415f, -0.0783592f, 0.0359889f, -0.0205362f, 0.107597f, -0.0196499f, -0.0180722f, 0.103373f, 0.184113f, 0.0299275f, 0.109918f, -0.167687f, -0.0607115f, 0.226513f, -0.120125f, -0.239058f, -0.0258583f, -0.00401677f, -0.0837615f, 0.267023f, 0.098391f, 0.0716995f, 0.0421802f, -0.14972f, 0.0534656f, 0.00838329f, 0.221415f, -0.0387565f, -0.0387209f, -0.212239f, -0.143512f, -0.00863848f, 0.0359522f, 0.01415f, -0.0725073f, 0.187138f, 0.0332442f, -0.0566829f, -0.0256426f, -0.378958f, -0.0536448f, 0.118794f, 0.109232f, -0.0427415f, 0.258979f, -0.220148f, -0.172225f, -0.0330982f, 0.146276f, 0.119243f, 0.109817f, 0.18594f, -0.138764f, 0.174561f, -0.211868f, -0.0752533f, 0.0217019f, 0.084783f, -0.236579f, 0.0118515f, -0.1739f, -0.121716f, 0.237558f, 0.0895857f, -0.0312095f, 0.23828f, 0.30044f, 0.102458f, 0.064316f, 0.115392f, -0.248755f, 0.205269f, 0.121028f, -0.0759086f, 0.0925246f, 0.0848168f, 0.238917f, 0.0716084f, 0.182537f, 0.0276443f, -0.197544f, -0.10214f, 0.140391f, -0.273536f, -0.276554f, -0.0648151f, -0.0895f, -0.169156f, 0.0154389f, -0.178984f, -0.183161f, -0.243519f, 0.112381f, 0.0316457f, -0.266429f, 0.00245653f, -0.221437f, 0.18652f, -0.0854896f, -0.245967f, 0.0117553f, 0.113341f, -0.0490853f, -0.0437269f, 0.0928623f, -0.265436f, -0.0429597f, -0.167249f, -0.0386629f, 0.00429991f, -0.146633f, 0.044209f, 0.177834f, -0.0662082f, 0.177368f, 0.187093f, 0.12563f, 0.185692f, 0.178839f, 0.0384076f, 0.273151f, -0.276322f, -0.259714f, -0.00432917f, -0.185276f, 0.104154f, 0.0504451f, 0.355631f, -0.0844868f, -0.0536274f, -0.15206f, 0.156105f, 0.213866f, -0.0307527f, 0.293716f, 0.100403f, -0.0914708f, 0.168358f, 0.290714f, -0.0380723f, -0.0194848f, 0.0401176f, -0.0634004f, 0.0100659f, 0.091312f, -0.0184459f, 0.0938843f, 0.246277f, 0.0717035f, -0.0135396f, -0.0103609f, 0.0797999f, 0.10873f, -0.00698725f, 0.20375f, 0.0415672f, -0.0443382f, 0.0765936f, 0.144765f, 0.160854f, -0.0266755f, 0.115608f, -0.0069344f, 0.167535f, -0.0210104f, 0.246592f, 0.00515006f, 0.0352856f, 0.142732f, -0.0195855f, 0.284897f, -0.0655947f, 0.0403546f, -0.102661f, -0.0290213f, 0.079823f, 0.122679f, -0.0873975f, 0.176898f, 0.0287244f, -0.108708f, -0.089417f, 0.0569012f, 0.073255f, -0.0563912f, 0.0934081f, -0.151682f, -0.117153f, -0.112571f, -0.136724f, 0.0137771f, -0.0348095f, 0.191981f, -0.06469f, -0.00681704f, -0.158803f, 0.0524017f, -0.0440413f, 0.0226078f, 0.0333496f, 0.0796917f, 0.121306f, -0.116587f, -0.0524228f, 0.0195389f, 0.039253f, -0.0781913f, 0.0528286f, -0.142458f, -0.0392553f, -0.156565f, 0.0360758f, 0.115459f, -0.0697849f, -0.0119528f, -0.0142852f, -0.0243914f, -0.0220155f, 0.0611133f, -0.0617078f, 0.0189219f, 0.134244f, 0.0917566f, 0.118036f, 0.140296f, 0.00668201f, 0.137209f, 0.0563318f, -0.0191049f, -0.109167f, 0.0539904f, 0.0912826f, 0.0646637f, 0.00828986f, -0.0489616f, 0.00978022f, -0.0226492f, -0.0669971f, -0.167095f, -0.0551981f, 0.0679224f, 0.00090788f, 0.171039f, -0.147763f, -0.0669419f, -0.160454f, 0.0389834f, -0.0845941f, 0.127878f, 0.00678037f, 0.040815f, -0.0518615f, 0.0819419f, 0.144131f, 0.0210624f, 0.0637996f, -0.0531849f, -0.0750013f, 0.0520536f, 0.0936953f, 0.0774016f, -0.106552f, 0.0413054f, -0.0993496f, -0.00623983f, 0.0645733f, 0.00571288f, -0.0219647f, -0.0493385f, -0.0774375f, 0.016911f, 0.019083f, -0.0741276f, 0.0313047f, 0.0712742f, 0.0038699f, -0.051972f, -0.0309586f, -0.0255735f, -0.00797331f, -0.116393f, -0.0683142f, -0.0301265f, 0.144003f, -0.0237903f, 0.197883f, 0.0415571f, -0.0389723f, -0.0806318f, 0.00678438f, -0.00699744f, 0.106163f, -0.0295999f, 0.0826699f, -0.0156282f, 0.176367f, -0.0875238f, -0.00210639f, 0.0139896f, 0.0505915f, 0.0716704f, -0.116858f, 0.126971f, 0.0139837f, 0.102232f, 0.082485f, -0.155599f, -0.0162261f, -0.0440794f, -0.0264572f, 0.0832928f, -0.0071776f, 0.125953f, 0.0469031f, 0.0711163f, 0.145678f, 0.114726f, -0.00755038f, -0.012497f, 0.0350191f, 0.0507703f, 0.170733f, -0.017136f, 0.0653089f, 0.171391f, -0.0172105f, 0.154944f, -0.0696283f, 0.041637f, 0.0285812f, -0.0755131f, 0.170189f, 0.000220809f, 0.0744732f, 0.0655269f, -0.102856f, -0.00446654f, -0.00325218f, -0.0815446f, -0.0280425f, 0.0380697f, 0.0204723f, -0.0600455f, 0.0957851f, 0.0708184f, 0.0922651f, 0.0539407f, 0.00124591f, 0.0635712f, 0.0580853f, -0.0579629f, -0.112289f, 0.119515f, -0.0739598f, -0.110562f, 0.061907f, -0.115616f, -0.07288f, -0.0566819f, 0.123057f, -0.0123141f, -0.0418379f, -0.033049f, 0.00409711f, -0.00292457f, 0.144389f, -0.162732f, -0.154642f, 0.161423f, 0.0635671f, -0.0221829f, 0.0824445f, -0.0528425f, -0.112267f, 0.0762298f, 0.0574479f, -0.0526811f, -0.104529f, -0.193725f, 0.0572374f, 0.0170995f, 0.114048f, 0.0770468f, -0.116743f, 0.0701993f, 0.138738f, 0.0775522f, -0.0140225f, -0.092609f, -0.0123175f, -0.0140454f, 0.0916642f, -0.0821616f, 0.0994914f, -0.112592f, 0.0736557f, 0.00741193f, 0.0670732f, 0.0689224f, -0.00792378f, 0.172426f, -0.0134354f, 0.0402985f, -0.00737671f, -0.0476725f, -0.0604812f, -0.0295512f, 0.18975f, 0.0641282f, 0.110727f, -0.00640846f, 0.0418521f, -0.088383f, 0.131995f, 0.0145245f, -0.0456562f, -0.0357695f, 0.0174048f, -0.0401817f, 0.0122706f, -0.0739148f, -0.00959611f, -0.149653f, 0.0352822f, -0.0714883f, 0.0843061f, -0.109101f, -0.0655296f, -0.0677187f, -0.0805726f, -0.0339554f, 0.0470892f, 0.0542522f, -0.0751231f, -0.0363655f, 0.0935018f, 0.0792175f, 0.114329f, 0.14484f, 0.211083f, 0.154491f, -0.0873597f, -0.325113f, -0.0764485f, 0.0709326f, -0.0879169f, -0.247254f, -0.235524f, 0.0527765f, -0.29817f, -0.222378f, 0.0173997f, -0.132174f, 0.0510253f, -0.263265f, 0.0481748f, 0.142855f, -0.141435f, -0.0722661f, -0.0159509f, 0.00862323f, 0.245172f, 0.0705387f, -0.0626261f, -0.017718f, -0.0680798f, 0.117219f, -0.275772f, -0.0212337f, 0.155475f, 0.3951f, -0.150128f, 0.0592725f, 0.0503484f, 0.0283383f, -0.0784242f, -0.0443981f, -0.0532018f, 0.18581f, -0.145014f, 0.0421314f, 0.00959644f, 0.132064f, -0.153527f, -0.0415984f, -0.296892f, 0.216093f, 0.0303895f, -0.414279f, 0.202099f, -0.039097f, -0.0267171f, -0.0710121f, -0.00324451f, -0.0215932f, -0.152618f, 0.191159f, 0.201763f, -0.0157179f, -0.139504f, 0.00189702f, -0.0220224f, -0.00117086f, -0.0638436f, -0.00383564f, -0.0700232f, -0.102265f, 0.0301402f, -0.253521f, -0.0770188f, 0.0345135f, -0.0148429f, -0.0642791f, -0.196257f, -0.00808947f, 0.155783f, 0.0130644f, -0.0676415f, 0.0752171f, -0.200156f, 0.0113708f, 0.11533f, -0.0851745f, -0.044203f, -0.0480286f, -0.19881f, 0.241048f, 0.0710491f, 0.135496f, -0.0662875f, -0.0463518f, -0.150977f, 0.235187f, -0.164982f, 0.0248027f, -0.238832f, 0.129358f, 0.0689888f, -0.0204499f, -0.0999698f, 0.0998604f, -0.00335956f, -0.0555859f, 0.0589063f, 0.325349f, -0.113478f, -0.307587f, 0.150853f, -0.112405f, 0.0244145f, 0.00450971f, -0.248445f, -0.0876612f, -0.180797f, -0.0809926f, -0.0946194f, -0.018546f, 0.254482f, 0.00344031f, 0.0714005f, 0.172832f, 0.0304565f, -0.0467406f, -0.182214f, 0.157423f, -0.219325f, -0.401754f, 0.200955f, -0.0877356f, -0.159969f, 0.174366f, -0.100571f, 0.00447169f, -0.0263915f, -0.213137f, -3.00025e-05f, 0.0311915f, -0.275659f, 0.171771f, 0.223891f, -0.127102f, 0.038453f, -0.185171f, 0.104055f, -0.0198596f, 0.0221395f, 0.0893074f, -0.0506985f, -0.0379163f, 0.322008f, -0.321957f, -0.119333f, 0.0716692f, 0.195675f, -0.107429f, 0.0939935f, 0.0784373f, 0.186374f, -0.0278347f, 0.0287024f, -0.185776f, -0.0115434f, 0.057821f, 0.0466828f, 0.0512612f, -0.0561983f, -0.136814f, -0.0694555f, 0.0233869f, 0.229999f, -0.0483262f, -0.15926f, -0.114219f, -0.183126f, 0.240919f, 0.0470117f, -0.105237f, -0.108601f, -0.0866574f, 0.0271267f, -0.0111155f, -0.100271f, 0.021004f, -0.0236594f, 0.0949952f, -0.0702014f, -0.0169439f, -0.233554f, 0.205064f, -0.0840081f, 0.120907f, 0.0120754f, 0.0187596f, -0.118763f, -0.0515906f, -0.0561823f, 0.0664528f, -0.0415044f, -0.287927f, 0.15946f, 0.0519121f, -0.178609f, 0.217476f, 0.202976f, 0.134488f, -0.217751f, -0.200649f, -0.0627566f, 0.0250353f, 0.0054181f, 0.297253f, -0.065457f, -0.0303047f, 0.0833009f, 0.198833f, -0.0825408f, 0.075654f, -0.0432191f, 0.0958408f, -0.150691f, 0.0624643f, 0.190086f, -0.118274f, -0.0206548f, 0.136778f, -0.306539f, 0.00561983f, -0.144645f, 0.290709f, 0.268706f, -0.0606533f, -0.0367163f, -0.0271732f, -0.166222f, -0.0410159f, -0.00985482f, 0.328637f, -0.0716009f, 0.0951594f, 0.208986f, -0.106968f, -0.0319254f, -0.0169812f, -0.0679827f, 0.0419436f, -0.104835f, 0.0194408f, 0.121189f, 0.115891f, 0.0756433f, -0.0172973f, -0.0320299f, 0.0255844f, -0.167889f, -0.07741f, 0.135997f, -0.142736f, -0.0033938f, -0.153096f, -0.234885f, 0.161267f, -0.184252f, 0.126698f, -0.388663f, 0.234104f, -0.200713f, -0.0731752f, -0.0764575f, -0.324723f, 0.107401f, -0.0500491f, 0.138955f, 0.0359519f, -0.202053f, 0.0062764f, -0.00428459f, -0.255213f, -0.169933f, -0.114519f, 0.16734f, 0.248145f, 0.0431759f, -0.179635f, 0.128225f, -0.155332f, -0.161319f, -0.154775f, -0.172924f, 0.115331f, -0.0171385f, -0.176629f, -0.0269835f, -0.105555f, 0.10027f, 0.126229f, -0.0605769f, -0.155141f, 0.320638f, 0.183119f, 0.160979f, 0.0135103f, -0.238605f, 0.0407452f, 0.107459f, -0.300693f, -0.0564707f, 0.286828f, 0.35797f, -0.0426652f, 0.0187091f, -0.232695f, -0.0216495f, 0.289851f, 0.141436f, -0.252598f, 0.00103048f, 0.088303f, 0.119253f, -0.0469833f, 0.27887f, -0.0846973f, -3.05327e-05f, 0.032663f, -0.0318101f, 0.0892805f, 0.106864f, -0.319127f, 0.115596f, -0.237561f, -0.0720364f, -0.229852f, 0.0219484f, 0.0390626f, 0.114512f, -0.0565136f, -0.204756f, 0.28036f, 0.303198f, -0.201501f, -0.240022f, -0.095153f, 0.146221f, 0.21715f, 0.0916461f, -0.446298f, -0.103694f, -0.0389542f, 0.0797518f, 0.0658411f, -0.314771f, 0.333137f, -0.354533f, -0.19482f, -0.28606f, -0.213396f, -0.0510051f, -0.0415995f, -0.387801f, 0.02321f, 0.214442f, -0.0519455f, 0.0794948f, -0.0256684f, -0.263084f, -0.0875607f, -0.129367f, 0.276863f, -0.24621f, 0.18685f, -0.0836019f, -0.278017f, 0.172545f, 0.0165346f, -0.0232869f, 0.178095f, -0.146844f, 0.248621f, -0.122917f, -0.0485381f, 0.0895864f, 0.267828f, -0.279782f, -0.132046f, 0.152563f, -0.0196836f, 0.140185f, -0.0462655f, -0.0894844f, 0.250452f, 0.167613f, -0.21508f, 0.104038f, -0.144666f, -0.183636f, -0.074578f, 0.0748984f, -0.0171825f, -0.112188f, 0.0525493f, -0.0588712f, 0.00638788f, 0.102359f, -0.0906362f, -0.0382644f, 0.037702f, -0.0333378f, -0.012017f, 0.0385068f, -0.308133f, -0.0818392f, -0.0383629f, -0.318253f, -0.182109f, -0.0138675f, 0.0483102f, 0.31789f, -0.074847f, -0.00564011f, 0.147944f, 0.00984119f, -0.0962338f, -0.310469f, -0.155448f, 0.153098f, 0.0882637f, -0.104013f, -0.14508f, -0.197799f, 0.228207f, -0.14225f, -0.0375928f, -0.143784f, -0.157369f, 0.269769f, 0.0478498f, 0.119183f, -0.217671f, 0.320009f, -0.0416581f, 0.0275812f, -0.233473f, 0.136357f, 0.229196f, 0.293185f, 0.00804159f, 0.309289f, 0.240622f, -0.172628f, -0.038581f, 0.0860858f, -0.254461f, 0.0512302f, 0.0138842f, -0.104624f, 0.0431872f, -0.250281f, -0.269896f, -0.129775f, -0.368551f, 0.022614f, 0.0382575f, -0.164828f, -0.0018538f, -0.179141f, 0.0391572f, -0.0201203f, 0.0484747f, 0.0490229f, 0.0770957f, -0.103705f, -0.281661f, 0.0905072f, -0.0907907f, 0.170904f, 0.0986907f, 0.0619107f, -0.157614f, 0.196559f, 0.0188554f, 0.080644f, -0.039312f, 0.268947f, -0.260474f, 0.0768924f, -0.355806f, 0.165802f, -0.260234f, 0.0812834f, -0.145248f, -0.00913195f, 0.0532944f, -0.280322f, -0.384231f, -0.28158f, -0.0984388f, 0.35242f, 0.0239713f, 0.117847f, -0.0338002f, 0.0524767f, 0.145559f, -0.140093f, -0.219055f, -0.0463246f, 0.130335f, -0.0469498f, 0.00495135f, 0.201035f, 0.203319f, -0.0588166f, -0.0129729f, -0.0368262f, -0.0614213f, 0.130805f, -0.226655f, -0.0463252f, 0.0402532f, 0.0998752f, 0.0721907f, -0.0897752f, 0.0199783f, -0.157341f, -0.125866f, 0.0608767f, -0.0414118f, 0.0208682f, -0.0768531f, -0.036261f, -0.0458374f, 0.134466f, 0.0511306f, -0.147327f, -0.0698398f, -0.0288075f, 0.23601f, 0.104149f, 0.151024f, 0.130405f, -0.132796f, -0.0444085f, 0.260242f, -0.110723f, 0.113037f, -0.185178f, -0.0769025f, -0.00549544f, 0.0678943f, -0.00883666f, 0.0220571f, 0.022456f, 0.128943f, -0.024927f, 0.0684847f, 0.00158456f, -0.103675f, -0.168438f, 0.108756f, 0.147556f, 0.0564544f, 0.0853086f, -0.165177f, -0.0576677f, 0.155247f, -0.0301941f, -0.125873f, -0.0285487f, 0.126042f, -0.0128522f, 0.0574976f, 0.0259353f, -0.0540221f, 0.20342f, 0.00595197f, -0.226626f, 0.206273f, 0.146679f, -0.0573621f, 0.1147f, 0.172214f, -0.177268f, 0.118295f, 0.0306532f, 0.0337988f, 0.0264277f, -0.122059f, 0.14417f, -0.104933f, 0.0557203f, -0.0169737f, 0.047919f, 0.135376f, 0.0642155f, 0.116758f, -0.00361037f, -0.0552641f, 0.104981f, 0.0679652f, 0.00782871f, -0.0718939f, -0.00535471f, 0.0251071f, -0.0851353f, -0.162843f, -0.152887f, 0.0558982f, -0.0327464f, 0.192088f, 0.0255231f, -0.132527f, -0.228949f, -0.113328f, -0.0387685f, -0.145737f, 0.00790646f, 0.123646f, -0.00645881f, -0.192179f, -0.084979f, 0.195481f, 0.00975387f, -0.0502234f, -0.199314f, 0.00243751f, -0.0190307f, 0.029443f, -0.137901f, 0.0205275f, 0.0933742f, -0.00590295f, 0.12199f, -0.036517f, -0.0984042f, -0.184177f, -0.0975178f, -0.117952f, -0.258171f, 0.0565758f, 0.066829f, 0.0796596f, -0.0171399f, -0.0710279f, 0.0713433f, 0.033525f, -0.0468115f, 0.0800521f, 0.048645f, -0.0125515f, 0.0307035f, -0.167738f, 0.0203871f, 0.147728f, -0.099273f, -0.0778204f, -0.0479868f, -0.0124195f, -0.0340611f, -0.0184401f, 0.192252f, -0.22888f, -0.0877388f, -0.0117955f, -0.0903408f, 0.0448667f, 0.0754577f, -0.203946f, -0.163546f, 0.00636426f, -0.219519f, 0.0511102f, -0.145554f, 0.112458f, -0.152635f, 0.187402f, 0.126157f, 0.191122f, 0.132671f, 0.097218f, 0.105203f, -0.0399569f, 0.175495f, 0.217862f, -0.0472958f, -0.0107402f, 0.0570678f, 0.189072f, -0.0523625f, 0.105711f, 0.0227868f, -0.0960841f, -0.208934f, 0.188823f, 0.207432f, 0.0755412f, -0.170032f, 0.149555f, 0.0955133f, 0.0721048f, 0.0819275f, 0.183729f, 0.193268f, 0.131996f, -0.0508042f, 0.179711f, -0.0475622f, -0.0761271f, 0.167046f, -0.134159f, -0.117141f, -0.0952639f, 0.0148812f, 0.0901226f, -0.232638f, -0.185228f, -0.0897878f, 0.167516f, -0.0622849f, 0.22976f, 0.192872f, -0.0676467f, -0.0836141f, 0.107869f, 0.0847412f, -0.121493f, 0.187483f, -0.0298266f, 0.206617f, -0.00184731f, -0.0854045f, 0.0185783f, -0.127104f, -0.249317f, -0.165601f, -0.232232f, 0.158052f, -0.110691f, -0.102405f, 0.265421f, -0.00321484f, -0.0690367f, 0.0711374f, -0.0531819f, 0.193849f, 0.04809f, -0.145491f, -0.0156928f, 0.160306f, -0.160256f, 0.157218f, -0.162715f, -0.111012f, -0.0669278f, -0.0356563f, 0.176162f, 0.203957f, -0.198613f, 0.150164f, 0.126206f, 0.00490515f, 0.0329424f, -0.106958f, 0.0383668f, 0.0623065f, 0.168499f, 0.0884926f, 0.0172857f, -0.146879f, -0.046614f, 0.194299f, 0.0758276f, -0.365846f, -0.117029f, -0.113534f, 0.133564f, 0.280087f, -0.0553782f, 0.151867f, -0.0355302f, 0.0563076f, 0.132488f, -0.154685f, 0.0345685f, -0.019632f, -0.137235f, -0.0849566f, -0.00479134f, 0.0427922f, -0.27314f, -0.0258283f, -0.271407f, -0.124862f, 0.0390462f, -0.0472329f, -0.0185697f, 0.00992208f, -0.00143599f, 0.0671171f, 0.282865f, 0.200343f, 0.261696f, -0.202889f, 0.157f, -0.20361f, -0.299575f, -0.0566465f, -0.284796f, -0.0647245f, 0.0492765f, 0.139743f, -0.011626f, -0.0170036f, 0.0768935f, 0.160591f, 0.0323101f, -0.105706f, -0.0667797f, 0.192042f, 0.160639f, -0.258307f, -0.0960349f, 0.252349f, 0.17345f, -0.201046f, 0.0242703f, -0.0983757f, 0.188044f, 0.123248f, -0.0140959f, -0.0657459f, -0.00214343f, 0.0308704f, -0.0226712f, 0.0197479f, -0.176935f, 0.135682f, 0.0726211f, 0.119898f, -0.154904f, -0.281097f, 0.0198241f, -0.028389f, -0.0731842f, 0.0602334f, -0.0428917f, 0.191241f, 0.135315f, 0.146327f, -0.162474f, 0.185304f, -0.0435619f, 0.192737f, -0.222911f, -0.142169f, -0.0983166f, -0.23746f, -0.222549f, -0.0108138f, 0.0860434f, 0.200591f, -0.168774f, -0.143869f, -0.105573f, -0.0884136f, -0.237777f, -0.136794f, 0.175778f, 0.0774726f, -0.249422f, 0.16999f, 0.163328f, -0.100177f, 0.302894f, 0.026978f, -0.0223295f, -0.390971f, -0.259f, -0.0945982f, 0.22016f, -0.112807f, 0.209952f, -0.0140411f, -0.0198088f, 0.145183f, -0.0235611f, -0.0532871f, 0.196738f, -0.0524959f, -0.106033f, 0.0199632f, -0.219386f, 0.185703f, 0.0286767f, -0.14152f, -0.0996844f, -0.0568005f, 0.027355f, -0.0452034f, 0.146233f, 0.175165f, -0.0541245f, -0.135854f, 0.00439125f, -0.00633377f, -0.0594765f, -0.139019f, 0.11534f, -0.121519f, -0.232304f, 0.0222996f, 0.0212176f, -0.132844f, 0.0467018f, -0.325738f, 0.204708f, 0.253822f, -0.337374f, -0.0522216f, 0.0660004f, -0.060826f, 0.205757f, 0.0098019f, -0.316303f, 0.0261914f, 0.193358f, -0.1809f, 0.00125613f, -0.0586514f, -0.0716777f, -0.134935f, 0.0874821f, -0.185963f, 0.151083f, -0.258298f, -0.0757702f, 0.208774f, 0.100648f, -0.136006f, -0.00739069f, -0.0865382f, 0.0120428f, 0.331841f, 0.25101f, 0.16572f, 0.204674f, 0.0411386f, 0.099359f, -0.215092f, -0.0705376f, 0.0455737f, -0.0752448f, -0.223621f, 0.153156f, -0.31377f, -0.0308407f, -0.0146368f, -0.0485711f, 0.0930673f, -0.00840141f, -0.14899f, -0.0626991f, -0.0200038f, 0.114307f, -0.146567f, 0.135243f, 0.0341867f, -0.0958434f, -0.0239947f, -0.036325f, 0.150933f, 0.11719f, 0.0721473f, 0.0693206f, -0.203249f, 0.0943594f, 0.060834f, 0.0843039f, -0.0969285f, 0.229323f, -0.0404073f, 0.244263f, -0.0882816f, -0.0223606f, -0.129782f, -0.0874492f, -0.0166441f, -0.00523644f, -0.0717405f, -0.130507f, 0.134438f, -0.036851f, 0.22559f, 0.21641f, -0.17333f, 0.0705539f, 0.0356237f, 0.065865f, 0.154644f, -0.104977f, 0.0334528f, -0.235243f, 0.0254439f, 0.0894164f, -0.0384821f, -0.126256f, 0.2029f, -0.0314182f, -0.0312086f, 0.211779f, -0.0127975f, 0.172905f, -0.0618834f, 0.0571658f, 0.152392f, -0.221506f, -0.288262f, -0.0794945f, -0.0868224f, -0.126383f, 0.177576f, -0.0855243f, 0.177051f, -0.188728f, -0.0304904f, 0.165862f, -0.0485344f, -0.0381566f, -0.0127118f, 0.194558f, -0.209295f, 0.116886f, 0.182433f, -0.0218886f, -0.116484f, 0.0597397f, 0.0766602f, -0.0592042f, 0.0341869f, 0.331335f, -0.186265f, -0.0539583f, -0.166088f, 0.245791f, -0.0265155f, -0.077719f, -0.360306f, 0.171553f, 0.0413347f, -0.013522f, -0.0757688f, 0.251633f, -0.093395f, -0.0140245f, -0.191799f, 0.372972f, 0.0426438f, -0.16155f, -0.0889207f, -0.271489f, -0.052836f, -0.174481f, -0.0571348f, 0.131861f, -0.151056f, 0.114535f, -0.141811f, -0.134236f, 0.152365f, -0.047952f, -0.183278f, -0.068292f, -0.207783f, 0.0903112f, 0.0486951f, 0.0361283f, -0.00112822f, 0.272233f, 0.0530094f, 0.0760083f, 0.175972f, 0.0942993f, 0.236807f, -0.28505f, 0.0951338f, 0.274181f, 0.251294f, 0.0453282f, -0.287637f, -0.113597f, -0.0336303f, -0.0469146f, 0.126684f, 0.0285068f, 0.085069f, -0.022036f, -0.0200898f, 0.177822f, 0.101905f, 0.112474f, 0.0447313f, 0.242527f, 0.062527f, -0.235423f, 0.244772f, 0.0241741f, 0.347015f, 0.0803962f, -0.282549f, 0.374443f, 0.171615f, 0.117105f, 0.0939151f, -0.326391f, 0.203823f, -0.0375699f, 0.018426f, 0.0727659f, -0.155459f, 0.0542472f, -0.20589f, -0.0702621f, 0.230232f, -0.0102711f, -0.175714f, 0.118067f, 0.0560038f, 0.0742807f, 0.0383569f, 0.261514f, 0.0714974f, -0.0118596f, -0.0271504f, -0.0104301f, 0.0439377f, 0.0340945f, -0.155371f, 0.0872664f, 0.0136295f, 0.0114795f, 0.126889f, 0.11689f, -0.221243f, 0.128588f, 0.0194433f, -0.119452f, 0.0219253f, 0.0403729f, 0.0307764f, 0.244535f, -0.0310072f, -0.109884f, 0.250687f, 0.0355682f, -0.0100091f, -0.0564206f, -0.071987f, 0.161941f, -0.0829433f, -0.084152f, -0.122452f, 0.206273f, -0.118417f, -0.141944f, 0.110137f, -0.300324f, -0.0332427f, -0.0834944f, 0.0277037f, 0.0555759f, 0.10914f, -0.0123274f, 0.027872f, -0.0482633f, 0.0390593f, -0.178533f, -0.0908259f, -0.15692f, 0.0749614f, 0.0646795f, -0.0875f, 0.147015f, 0.0305928f, 0.149603f, -0.0484234f, -0.051919f, -0.252971f, 0.111722f, 0.00954247f, 0.0540111f, -0.0301406f, 0.0567507f, 0.0296118f, 0.122451f, -0.0990045f, -0.00194698f, 0.100829f, 0.223147f, -0.0447726f, 0.0627506f, -0.245463f, 0.10489f, 0.040312f, 0.174757f, -0.162334f, 0.123291f, 0.1118f, -0.0194053f, -0.213994f, 0.0898482f, 0.168023f, -0.173355f, 0.0399356f, -0.19483f, 0.0442782f, 0.186238f, 0.126837f, 0.0787593f, 0.102968f, -0.0373936f, -0.194353f, -0.289223f, 0.21545f, -0.149195f, -0.0167708f, -0.0799487f, 0.141653f, -0.229511f, 0.117523f, -0.15019f, -0.0522499f, -0.249146f, -0.0554568f, 0.0109253f, 0.0126647f, 0.0173875f, 0.0159649f, -0.147338f, -0.338249f, 0.0816278f, -0.202224f, -0.0792681f, 0.100383f, 0.0479703f, 0.0068752f, -0.00484866f, 0.00230393f, 0.107739f, -0.00220844f, 0.0440666f, -0.0681202f, -0.133359f, -0.0215826f, 0.128866f, 0.119926f, 0.0640322f, 0.00780146f, 0.0945589f, 0.17256f, 0.0120073f, 0.043846f, 0.00974509f, -0.00593035f, -0.235303f, -0.000417713f, 0.108328f, 0.12443f, 0.318761f, 0.238656f, 0.171241f, 0.0299408f, 0.143939f, -0.0284552f, -0.319094f, -0.0377269f, -0.123178f, 0.0411477f, -0.164674f, -0.152581f, -0.00141493f, -0.212149f, -0.0971374f, 0.0390737f, 0.0331434f, -0.151819f, -0.139534f, 0.172997f, 0.0629259f, -0.181351f, -0.0469815f, -0.0504564f, 0.0473381f, -0.0339504f, 0.0404343f, -6.6118e-05f, 0.166353f, -0.0183107f, 0.224784f, -0.0367495f, 0.0644427f, 0.146139f, -0.00377443f, 0.112699f, 0.0103888f, 0.203018f, -0.0663044f, -0.109156f, 0.169537f, -0.10408f, 0.142416f, 0.106939f, -0.230467f, -0.00143719f, 0.0870747f, 0.0936082f, -0.068706f, -0.0811623f, 0.246837f, -0.217115f, -0.00833215f, 0.174211f, 0.0680421f, -0.155943f, 0.0539076f, -0.159108f, -0.190254f, -0.0162453f, 0.0304677f, -0.299843f, 0.192017f, -0.253687f, 0.0644734f, -0.00241408f, 0.0200307f, -0.0928302f, -0.085508f, 0.266663f, 0.0245202f, 0.374875f, -0.221609f, -0.155703f, 0.29781f, -0.217375f, -0.148856f, 0.115366f, -0.35145f, 0.288149f, -0.0717299f, 0.0333943f, -0.238032f, 0.102449f, -0.23699f, -0.0926552f, 0.157173f, 0.0397306f, -0.190289f, -0.200684f, -0.0259063f, 0.229126f, -0.038801f, -0.111138f, -0.213798f, 0.144719f, -0.0941011f, 0.0985519f, -0.143774f, 0.0254472f, 0.265415f, -0.0239021f, 0.295915f, 0.0377156f, -0.151266f, 0.128826f, 0.0962686f, -0.0662235f, 0.130821f, 0.0717224f, 0.159584f, 0.0114567f, 0.0284447f, 0.0369187f, -0.0618233f, 0.137069f, 0.161785f, -0.149203f, -0.0351854f, 0.103369f, 0.134505f, 0.160805f, 0.0955006f, -0.132206f, -0.185004f, 0.26324f, -0.202588f, -0.0207947f, 0.0504794f, -0.123589f, -0.136959f, 0.0371221f, -0.0786484f, -0.226494f, 0.0351134f, -0.0973131f, -0.274964f, -0.243647f, -0.00670701f, 0.231934f, -0.251436f, 0.023454f, -0.0668401f, -0.0471359f, 0.251604f, -0.150389f, 0.140141f, 0.0130251f, -0.207367f, 0.263635f, -0.0585195f, 0.222451f, 0.149687f, 0.23625f, 0.0503171f, 0.116914f, -0.171526f, -0.124009f, -0.210344f, 0.130752f, 0.22778f, 0.242998f, 0.14858f, 0.0901138f, 0.0133184f, 0.185383f, -0.0386115f, 0.11293f, -0.16304f, 0.29437f, -0.0438711f, 0.0574327f, -0.0662818f, 0.287367f, -0.0393356f, -0.13743f, 0.0536022f, 0.21095f, 0.189558f, 0.235446f, -0.142564f, 0.0500631f, 0.280281f, 0.0475232f, 0.181421f, 0.0876241f, 0.00180434f, 0.0732055f, 0.097792f, -0.201191f, -0.10795f, 0.101728f, -0.282327f, -0.030459f, 0.0378113f, -0.079708f, 0.131075f, 0.185335f, -0.302331f, -0.0154999f, 0.138155f, -0.0750077f, 0.319577f, -0.030475f, 0.0288029f, -0.00965072f, -0.104465f, -0.0250378f, 0.0837412f, -0.0599758f, 0.0351622f, -0.00561056f, -0.160387f, 0.0404916f, -0.239353f, -0.196925f, 0.255234f, -0.0946131f, -0.0850294f, 0.0359055f, 0.0117912f, -0.170634f, 0.0471307f, -0.167966f, 0.155598f, -0.036823f, -0.0759039f, -0.190231f, 0.091116f, -0.0178321f, 0.171804f, 0.0511936f, 0.0626885f, 0.013404f, -0.0985724f, 0.0252603f, -0.293482f, 0.198467f, 0.115043f, -0.0307581f, -0.0196498f, -0.187529f, 0.0316952f, -0.0574936f, -0.000650157f, -0.0913665f, 0.112756f, 0.203829f, -0.0165961f, -0.197735f, -0.155808f, -0.0545444f, 0.237144f, 0.0418672f, -0.0515092f, -0.0544566f, 0.031044f, -0.139747f, -0.226416f, 0.0367882f, -0.0443414f, -0.129651f, -0.00849125f, -0.0307046f, 0.184203f, -0.1231f, 0.272626f, -0.213156f, -0.373531f, -0.0631126f, -0.11041f, 0.0192186f, 0.253986f, 0.113753f, -0.0880451f, 0.181108f, 0.0336365f, -0.0713233f, -0.102623f, 0.132811f, 0.162519f, -0.158354f, 0.144969f, 0.0592016f, -0.0450678f, -0.0529727f, -0.116265f, 0.109155f, -0.0218794f, -0.0453088f, 0.160702f, -0.0743514f, -0.114588f, -0.0659163f, -0.316396f, -0.266f, 0.122284f, 0.0630689f, 0.10233f, -0.251174f, 0.21367f, 0.0703492f, 0.0707741f, -0.0114583f, 0.0779391f, -0.0319219f, 0.115272f, -0.00502184f, -0.112631f, 0.17065f, -0.0436675f, 0.00722678f, -0.134743f, 0.0295232f, -0.101383f, -0.241205f, -0.0622105f, -0.186318f, 0.0701196f, 0.0870369f, -0.114596f, -0.0267256f, 0.0921917f, -0.0270036f, 0.0160192f, -0.118825f, 0.0351776f, -0.206681f, -0.0447242f, -0.115648f, 0.145843f, -0.0437314f, 0.209106f, 0.0881576f, -0.00588578f, 0.044325f, 0.247408f, -0.0292229f, -0.217519f, 0.0512364f, 0.206527f, 0.109383f, -0.280502f, 0.209938f, 0.0795864f, -0.215843f, -0.0639288f, -0.0899931f, -0.103202f, -0.0219132f, 0.0380239f, -0.159654f, 0.0484344f, 0.0283957f, -0.171474f, -0.00255984f, -0.0827574f, -0.137087f, -0.0610177f, -0.125014f, -0.134065f, -0.0522706f, -0.123025f, 0.0804437f, -0.105005f, 0.0709536f, 0.139072f, -0.11997f, 0.0489599f, -0.0880994f, 0.0128325f, -0.188545f, -0.143128f, -0.0951848f, 0.0428124f, -0.0709342f, -0.009805f, 0.146382f, -0.206599f, 0.0719764f, 0.0193941f, 0.00148474f, 0.0369111f, -0.00432683f, 7.00702e-05f, -0.140755f, 0.0181024f, 0.088857f, -0.0407951f, 0.0393759f, 0.0971006f, 0.0276812f, -0.0335132f, -0.160914f, -0.248847f, 0.0307698f, 0.0200704f, 0.131174f, 0.079044f, -0.188177f, -0.0225701f, 0.0527387f, 0.132301f, 0.0571113f, 0.111919f, -0.048089f, -0.062899f, 0.0526027f, -0.0235865f, 0.194413f, -0.201535f, -0.0553722f, -0.240948f, 0.0438674f, 0.014725f, 0.187558f, -0.0189675f, 0.157833f, -0.108073f, -0.199147f, -0.152644f, -0.156531f, -0.101533f, 0.0740157f, -0.0409598f, -0.0444516f, -0.131436f, -0.129257f, -0.0572818f, 0.0354213f, 0.268206f, 0.155726f, -0.219642f, 0.121945f, -0.000634724f, -0.110652f, 0.0735488f, 0.0529121f, 0.0405813f, -0.0347762f, -0.0865994f, 0.0491523f, -0.168259f, -0.0786733f, 0.00460622f, 0.0521014f, 0.235426f, -0.141198f, 0.0686025f, -0.110324f, 0.0374745f, -0.0428417f, 0.167485f, 0.136206f, 0.0442963f, -0.0426591f, 0.103134f, 0.023641f, -0.0862922f, 0.0313185f, 0.125554f, -0.0642139f, -0.0322762f, -0.0949536f, -0.020383f, -0.19972f, 0.0274418f, -0.0403887f, 0.0857358f, -0.0385359f, -0.217485f, -0.0555009f, 0.0844717f, -0.063801f, 0.0389008f, 0.104247f, 0.0758811f, -0.0505537f, -0.0246875f, -0.2046f, -0.151774f, 0.052127f, 0.0573765f, 0.0727958f, -0.0621541f, -0.0288411f, 0.0879402f, -0.0808113f, -0.0753787f, 0.100225f, -0.0132948f, 0.137671f, -0.0860821f, 0.112163f, 0.137879f, -0.180725f, 0.0186348f, -0.130183f, 0.090269f, -0.153921f, -0.0597061f, 0.0484919f, -0.0879578f, -0.0112176f, -0.0400156f, -0.0372933f, 0.187899f, 0.220857f, -0.0201298f, -0.0578705f, -0.0575551f, 0.0426164f, 0.13483f, 0.208762f, -0.0546661f, -0.123153f, 0.110333f, 0.0993651f, -0.0694362f, -0.233502f, 0.0307655f, 0.0729199f, 0.000547398f, -0.215026f, 0.0485842f, 0.128624f, 0.049384f, -0.0502886f, -0.102689f, 0.0138185f, -0.0747326f, -0.0847725f, 0.150227f, -0.0484587f, -0.157591f, -0.208242f, -0.219266f, -0.00501082f, 0.0134543f, -0.116676f, -0.115919f, 0.0517045f, 0.0454246f, 0.11679f, 0.0563463f, 0.0337031f, -0.023577f, -0.152648f, 0.0897705f, -0.0198766f, 0.158195f, -0.114652f, 0.0726941f, -0.0739747f, -0.0968384f, -0.146515f, 0.0622042f, 0.161144f, 0.0966373f, -0.153704f, 0.109909f, 0.151538f, -0.0610667f, 0.0927477f, 0.0859091f, -0.0491022f, -0.0979883f, 0.0905127f, -0.00154856f, -0.0787452f, 0.183281f, -0.0730383f, 0.0135967f, 0.04338f, 0.224733f, -0.169201f, -0.108859f, 0.10212f, -0.0150182f, 0.119412f, -0.130242f, -0.0139251f, 0.0692571f, 0.201706f, -0.0173688f, 0.0526918f, 0.141347f, -0.00796247f, 0.00076453f, -0.0507795f, -0.0898496f, -0.0756038f, 0.114741f, -0.116895f, -0.151484f, 0.156142f, -0.0844019f, 0.0149483f, 0.0999593f, -0.128714f, 0.120957f, -0.115477f, -0.0590825f, -0.0610248f, -0.032913f, -0.18984f, -0.098819f, -0.144732f, 0.00383653f, 0.187605f, 0.156618f, 0.0260288f, -0.0745164f, -0.109508f, -0.162588f, 0.0146064f, 0.0711488f, 0.254055f, -0.0258738f, 0.0921718f, 0.146286f, 0.0947905f, 0.0978984f, -0.0516994f, -0.108621f, -0.127881f, 0.0425287f, 0.158767f, 0.0649622f, -0.222496f, 0.11626f, -0.198405f, -0.00017228f, 0.267736f, 0.0749925f, -0.00335043f, 0.0858232f, 0.0385217f, -0.0667068f, 0.116291f, -0.0726939f, 0.0406468f, -0.122735f, 0.026007f, 0.0298438f, 0.0387107f, -0.10203f, -0.0994234f, 0.0053848f, 0.11547f, -0.194107f, 0.0692188f, -0.164455f, 0.0318202f, 0.0327967f, 0.0868836f, -0.110944f, 0.10446f, -0.0757209f, 0.00952f, 0.0957523f, -0.00736166f, -0.00874155f, -0.13767f, 0.0170334f, 0.203221f, -0.0227311f, 0.0329573f, -0.20811f, -0.0798932f, -0.0313115f, 0.116611f, -0.180939f, 0.215902f, -0.040183f, -0.134857f, -0.309308f, -0.0661757f, 0.0620666f, -0.0816488f, 0.170087f, 0.0574245f, 0.136659f, 0.0467813f, -0.0600026f, 0.105697f, 0.0553015f, 0.0539853f, 0.185294f, 0.190684f, 0.021674f, 0.183521f, 0.0974917f, 0.107421f, -0.0432931f, 0.127402f, 0.152111f, 0.0506287f, -0.159534f, 0.214309f, 0.164212f, -0.0965951f, 0.014354f, 0.032582f, -0.123076f, 0.124977f, 0.162968f, -0.170789f, 0.128568f, 0.0865112f, -0.174426f, -0.217912f, 0.0577664f, 0.04241f, 0.0385495f, -0.0545099f, 0.0569846f, 0.00136465f, -0.0371291f, -0.0294583f, -0.0504771f, -0.0673096f, -0.118606f, 0.0451953f, 0.109509f, -0.0306949f, -0.172818f, 0.0693564f, 0.147681f, 0.0509418f, 0.0406934f, 0.293604f, 0.116117f, -0.0716316f, -0.0788872f, 0.151417f, -0.0193868f, -0.0727805f, -0.145623f, -0.114137f, 0.0207422f, -0.134719f, -0.0755638f, -0.0229779f, -0.130481f, -0.243543f, 0.0963806f, -0.173361f, 0.184572f, 0.1681f, -0.063408f, -0.0655694f, 0.0482617f, -0.0453524f, -0.119542f, -0.0312902f, -0.0900539f, 0.0448793f, 0.214832f, -0.129163f, 0.0839704f, -0.0450538f, -0.0889879f, 0.128181f, 0.119324f, 0.0249677f, 0.0152352f, 0.0839709f, 0.0356455f, -0.0425021f, -0.0290409f, -0.0921213f, -0.150123f, 0.169577f, -0.034513f, -0.10128f, 0.23311f, 0.111655f, -0.14073f, -0.00406287f, -0.0275777f, -0.0196103f, 0.0144311f, -0.078789f, 0.249985f, 0.0914361f, -0.0659824f, -0.141585f, 0.178822f, 0.0103238f, 0.135368f, 0.0177455f, -0.0579199f, -0.198858f, 0.0186046f, -0.0056035f, 0.220474f, 0.0351701f, -0.0962214f, -0.113635f, 0.123525f, 0.021558f, 0.045804f, 0.0744341f, -0.155619f, 0.125603f, 0.112932f, -0.0138235f, -0.0015192f, -0.220442f, 0.0301065f, -0.130067f, 0.0807969f, -0.17235f, -0.0228507f, 0.224626f, -0.0384926f, -0.226616f, 0.0447514f, -0.0850545f, -0.0686365f, 0.104634f, 0.0625233f, 0.0223047f, 0.0158913f, -0.0717665f, -0.0213565f, 0.241644f, 0.181164f, -0.0537359f, 0.162842f, -0.159852f, -0.00825989f, -0.173248f, 0.0323969f, -0.108902f, 0.102729f, 1.94277e-05f, 0.153731f, -0.158904f, 0.125047f, 0.0705757f, 0.0523941f, 0.123424f, -0.131891f, -0.00339417f, 0.0090228f, -0.140204f, 0.0852416f, 0.0624258f, -0.0731344f, -0.0417896f, -0.126603f, -0.11263f, 0.0670763f, -0.13331f, 0.0816728f, -0.0260883f, -0.0722118f, -0.0536247f, -0.0369213f, 0.178929f, -0.0811684f, 0.0632822f, -0.111408f, -0.0469696f, -0.0296004f, 0.0134231f, 0.154124f, 0.0186027f, 0.0877882f, -0.181329f, -0.0557013f, 0.114211f, -0.0774545f, -0.127348f, 0.0178177f, 0.210949f, -0.137378f, -0.148763f, -0.104411f, 0.189547f, 0.186397f, 0.214429f, -0.0304433f, -0.09976f, -0.0238427f, 0.160324f, -0.0264519f, -0.012749f, -0.185436f, 0.0384098f, -0.0546923f, 0.0762924f, -0.122508f, 0.0548431f, 0.134422f, -0.046592f, -0.173502f, 0.0201381f, 0.00849885f, 0.234053f, -0.00869717f, -0.17784f, 0.0999844f, 0.133112f, 0.152514f, -0.0470969f, 0.0398344f, 0.21337f, -0.226159f, -0.146118f, 0.015669f, 0.061145f, 0.0368734f, -0.150596f, 0.00363735f, 0.0965737f, 0.130794f, -0.087532f, 0.150943f, 0.0836612f, -0.0483153f, 0.241411f, 0.119805f, -0.0269242f, -0.125632f, 0.123719f, -0.0264535f, -0.0596896f, 0.0407685f, -0.0954671f, 0.1034f, 0.0936688f, 0.123398f, 0.0736442f, -0.0721793f, -0.121407f, -0.0759008f, 0.183094f, 0.0801422f, -0.104934f, -0.0567224f, -0.0446578f, -0.0913866f, 0.182915f, 0.0326863f, 0.0888621f, 0.07113f, 0.234659f, 0.0847144f, -0.178246f, 0.0736909f, -0.0683422f, 0.0270676f, -0.0983799f, -0.0157541f, 0.0956256f, 0.115071f, -0.0284036f, -0.0184209f, -0.109563f, 0.0366072f, -0.14287f, 0.0999024f, 0.169754f, -0.200574f, -0.0319976f, 0.0418232f, 0.0720123f, -0.0873301f, -0.165851f, 0.0101473f, 0.0199205f, -0.0275559f, -0.0398313f, -0.00716922f, 0.0830455f, 0.098415f, -0.0875855f, -0.234762f, 0.119882f, 0.0450765f, 0.0217549f, -0.132708f, 0.104564f, -0.0891103f, 0.0562528f, 0.0150601f, -0.216843f, -0.0394229f, -0.113257f, 0.0415838f, -0.0331562f, -0.0230429f, 0.0452611f, 0.0913192f, -0.216888f, -0.0198337f, 0.0213122f, -0.115936f, 0.062972f, 0.0394158f, -0.209318f, -0.218656f, 0.205098f, 0.0344137f, -0.0987288f, -0.0984536f, -0.0155875f, 0.10965f, 0.175142f, -0.141386f, -0.00305696f, -0.0211042f, 0.0157443f, -0.0570879f, 0.0677218f, 0.0671456f, -0.216104f, -0.00716761f, 0.183158f, 0.0197583f, 0.0472565f, 0.0205839f, 0.13151f, 0.135416f, -0.0868546f, -0.05981f, -0.115f, 0.0393702f, 0.0620353f, -0.0132507f, 0.203018f, -0.00747795f, 0.0885416f, -0.141735f, 0.235474f, -0.0727029f, 0.0710271f, 0.110989f, -0.131328f, 0.176781f, 0.122647f, 0.164428f, 0.195467f, -0.226775f, -0.0678108f, -0.0116725f, -0.00983167f, 0.0870702f, -0.0687744f, 0.264296f, -0.0548152f, -0.0406904f, -0.105381f, -0.185273f, -0.106882f, -0.0887981f, 0.222837f, -0.132247f, -0.122939f, 0.247985f, -0.159013f, 0.00250131f, 0.0408951f, 0.0561216f, -0.0461658f, -0.0670328f, 0.153834f, 0.474998f, 0.0400953f, 0.198604f, -0.0750999f, 0.0346864f, -0.0432146f, 0.142711f, 0.195264f, 0.109645f, -0.238611f, 0.0897316f, -0.0490814f, 0.00782296f, 0.0088503f, -0.191179f, -0.0239859f, -0.174679f, -0.0205488f, -0.227396f, 0.122023f, -0.272038f, 0.0732213f, -0.00930482f, -0.289506f, -0.354226f, 0.0673627f, 0.160086f, 0.127586f, 0.0946187f, 0.10768f, 0.281622f, -0.0688671f, -0.0921544f, -0.209629f, -0.105074f, -0.0953516f, -0.174723f, -0.23893f, -0.3723f, 0.0430473f, 0.270529f, -0.179151f, -0.000809573f, -0.123771f, -0.00816648f, -0.0422159f, 0.223979f, -0.060531f, 0.20797f, -0.407171f, -0.144569f, -0.0594869f, 0.301976f, -0.098757f, -0.0491574f, 0.061926f, 0.082949f, 0.0159643f, -0.148845f, -0.0870663f, 0.124364f, 0.0392519f, 0.0604917f, 0.0928132f, -0.16159f, -0.0803227f, -0.116173f, -0.0927864f, 0.0424892f, 0.143133f, 0.0522964f, 0.222928f, 0.00660034f, 0.180579f, -0.083152f, -0.000958775f, 0.0421704f, 0.176891f, 0.0132366f, 0.149715f, -0.265523f, -0.10986f, -0.0357995f, 0.0530619f, -0.0765975f, -0.0478253f, -0.0394877f, 0.132709f, 0.0918061f, 0.236019f, -0.160192f, -0.0217859f, -0.000904408f, 0.0020647f, -0.193191f, 0.0650504f, -0.0541134f, 0.0423839f, 0.0688939f, -0.0874889f, -0.319334f, -0.149867f, -0.0714128f, 0.160765f, -0.0722217f, -0.0998112f, -0.119107f, -0.102158f, 0.107061f, -0.0621092f, -0.0742456f, 0.125138f, 0.231164f, -0.0158772f, 0.118192f, 0.0501707f, -0.0409034f, -0.0275446f, 0.326116f, -0.231608f, 0.124288f, 0.101538f, 0.1357f, -0.303294f, -0.328885f, -0.0771908f, 0.0789439f, 0.142434f, -0.0691648f, -0.197345f, -0.146354f, 0.0297412f, -0.184544f, -0.0424256f, -0.131773f, -0.182048f, -0.110744f, -0.0722415f, 0.0244528f, -0.0533121f, -0.135182f, -0.162468f, -0.15785f, 0.111342f, 0.138451f, -0.148688f, 0.0652709f, 0.191209f, 0.021328f, 0.305746f, -0.0305854f, 0.0375015f, 0.0207286f, -0.0749804f, 0.0907201f, -0.266952f, 0.0529976f, 0.087689f, -0.17119f, -0.0315246f, 0.0111393f, -0.192599f, -0.0370148f, -0.146607f, -0.135109f, 0.0984078f, -0.103304f, -0.0369135f, -0.0410596f, -0.0227725f, -0.0149964f, 0.135487f, -0.0487033f, -0.0768783f, -0.048178f, -0.228029f, -0.154209f, -0.316115f, 0.0198139f, 0.196185f, -0.145272f, 0.167668f, -0.14668f, -0.0770363f, -0.146213f, 0.0458274f, -0.0904333f, -0.244905f, -0.087481f, 0.105251f, 0.0852887f, 0.0936785f, -0.129118f, -0.0346077f, -0.107463f, -0.0269363f, -0.182854f, -0.164556f, -0.114986f, 0.0188911f, 0.022893f, 0.165f, -0.01204f, -0.153252f, 0.132999f, -0.258927f, 0.202193f, 0.154675f, -0.0793458f, 0.347586f, 0.164923f, 0.180285f, -0.218867f, 0.244791f, 0.119731f, 0.247806f, 0.184927f, 0.0745856f, 0.0651258f, -0.179327f, 0.197238f, -0.133606f, 0.0196236f, -0.0930369f, 0.149344f, -0.135174f, 0.0731956f, -0.154424f, 0.0219558f, -0.115686f, -0.0583696f, 0.163219f, 0.187664f, -0.0508206f, 0.0947715f, 0.040855f, 0.0833784f, -0.0786379f, -0.0759004f, 0.120911f, 0.0977302f, -0.106396f, 0.0589035f, 0.17137f, 0.0627719f, 0.0828179f, 0.0883259f, -0.0133855f, 0.0551264f, -0.160336f, 0.12407f, 0.0360725f, 0.182374f, 0.084125f, 0.0919892f, 0.137656f, 0.147962f, -0.02075f, -0.0112333f, 0.150482f, -0.0794006f, -0.091013f, 0.0820635f, 0.118917f, 0.0428078f, 0.028948f, 0.130781f, 0.0021715f, 0.00479081f, 0.0691983f, 0.154039f, 0.162419f, 0.021427f, -0.13907f, 0.0789272f, -0.280113f, -0.0137902f, 0.00194288f, -0.0636553f, 0.00619784f, 0.082405f, 0.0093169f, 0.0819561f, 0.150177f, -0.0681184f, 0.0281453f, 0.0460724f, 0.105991f, 0.0127683f, 0.22097f, 0.0336565f, -0.0247059f, -0.167861f, -0.241264f, -0.108452f, -0.102313f, 0.0549591f, 0.0246633f, -0.0844629f, -0.121608f, 0.246992f, 0.0559926f, -0.11938f, 0.0825995f, 0.0978685f, -0.217748f, 0.224504f, -0.105013f, 0.11024f, -0.00849168f, 0.0972333f, 0.0408039f, 0.0438514f, 0.0823321f, 0.0497269f, 0.0835854f, 0.10713f, 0.0512382f, 0.102832f, -0.0419944f, -0.152417f, -0.0659777f, 0.0684661f, -0.119864f, 0.0662246f, -0.228901f, 0.173282f, -0.180251f, 0.0427929f, -0.10031f, -0.0408945f, 0.0903343f, 0.0217156f, -0.194777f, -0.0590085f, 0.125312f, 0.240785f, -0.183217f, 0.0997947f, 0.0740752f, 0.101062f, 0.0245265f, 0.157324f, 0.361427f, -0.0361177f, -0.0215261f, 0.037449f, -0.0947482f, -0.0312622f, -0.118253f, -0.248945f, -0.141188f, -0.129774f, 0.065529f, 0.0213997f, -0.0188956f, -0.0847519f, 0.250152f, -0.0521953f, -0.0170717f, -0.167073f, -0.0737448f, -0.0151641f, 0.111527f, 0.196452f, -0.13929f, -0.123943f, 0.0141172f, 0.0753584f, 0.219706f, 0.0291825f, 0.245507f, 0.0787498f, -0.0288182f, 0.11565f, 0.0281928f, 0.146598f, 0.0118938f, -0.0364496f, 0.0327233f, 0.11948f, -0.126047f, -0.0238635f, 0.0551756f, 0.284155f, -0.0479922f, 0.11845f, 0.0280607f, -0.0177348f, -0.0755128f, -0.0179581f, -0.162321f, -0.116066f, -0.0582195f, 0.0838564f, -0.0902647f, -0.00848386f, 0.112595f, 0.204274f, 0.0706904f, -0.129001f, 0.0435937f, -0.0105183f, 0.148145f, -0.247467f, -0.0164736f, -0.183073f, 0.11591f, -0.142154f, -0.127926f, 0.014372f, -0.0275219f, 0.115881f, 0.0570298f, 0.0461324f, -0.0276519f, 0.0144584f, 0.0265436f, 0.0636708f, 0.131287f, -0.0208827f, 0.0536032f, -0.00706681f, -0.151691f, -0.00380494f, 0.18226f, -0.0552749f, -0.0460935f, -0.0132272f, 0.0141353f, 0.124806f, 0.0071308f, 0.105743f, 0.221822f, 0.154266f, -0.0359808f, 0.0740109f, 0.152521f, 0.127842f, -0.0197189f, -0.102336f, -0.0736952f, 0.0723002f, 0.154596f, -0.0356603f, -0.0585505f, -0.196612f, 0.150355f, -0.123983f, -0.0920032f, -0.087385f, 0.139682f, -0.0643907f, 0.220104f, -0.112915f, -0.0701694f, -0.0226909f, 0.0051077f, 0.118512f, 0.147491f, -0.118084f, 0.117323f, -0.0399195f, -0.0126494f, -0.172394f, 0.0438707f, -0.112238f, 0.18382f, 0.0283516f, -0.101287f, 0.0841799f, -0.0627839f, -0.0816728f, 0.0727761f, 0.0893511f, -0.12102f, 0.0128479f, -0.0932956f, -0.150208f, -0.0948327f, 0.115463f, 0.105751f, 0.143655f, 0.117448f, -0.00448836f, 0.031871f, 0.0926345f, 0.0556965f, 0.0818256f, -0.0769675f, 0.295142f, 0.13878f, 0.0546068f, 0.171322f, 0.0483336f, 0.0165355f, 0.120243f, 0.121993f, 0.00179175f, -0.155124f, 0.0731808f, 0.0426543f, 0.0442446f, -0.169805f, 0.198751f, 0.0730558f, -0.120475f, 0.251415f, -0.1558f, 0.021808f, 0.0059688f, 0.218662f, -0.224441f, 0.0509548f, 0.0918367f, 0.130683f, 0.0919284f, 0.0168504f, -0.0341211f, -0.0502171f, 0.0184788f, -0.170644f, 0.110447f, 0.174425f, -0.18222f, 0.185405f, 0.118788f, -0.173025f, 0.131042f, 0.151553f, -0.037722f, -0.0313671f, 0.0713931f, -0.000716466f, 0.0530105f, 0.0841076f, 0.0413839f, 0.0092159f, 0.0110796f, -0.162758f, -0.0280882f, 0.0914607f, -0.0951205f, -0.151493f, 0.129154f, -0.0610453f, 0.20828f, -0.06862f, -0.17246f, -0.204292f, 0.268443f, 0.0249692f, -0.0310407f, -0.0620326f, -0.0917033f, -0.116232f, -0.0899458f, -0.0905778f, -0.183567f, 0.0946387f, -0.0192043f, -0.210879f, -0.0195068f, 0.151918f, -0.090977f, 0.023242f, 0.142072f, -0.152002f, -0.160118f, 0.191873f, -0.0247885f, 0.106044f, 0.00377036f, -0.182318f, 0.13033f, 0.107959f, -0.0879463f, 0.0508478f, -0.0405845f, 0.239662f, -0.279995f, 0.154373f, -0.0242148f, 0.0813853f, -0.0667984f, -0.0631387f, 0.252133f, 0.0825633f, 0.0257357f, -0.197331f, -0.136674f, -0.0458206f, 0.0378765f, -0.117452f, -0.135148f, 0.00182049f, 0.0557435f, 0.0327608f, 0.0226413f, -0.0247713f, -0.104996f, -0.0256858f, -0.0105301f, -0.00840217f, 0.0724223f, -0.0724771f, 0.0105563f, 0.0628721f, 0.138568f, -0.136082f, -0.134348f, -0.168922f, 0.258295f, 0.139774f, 0.0236217f, 0.0523353f, -0.249264f, -0.0773447f, -0.18512f, -0.167527f, -0.087652f, 0.0354258f, 0.11449f, 0.220886f, 0.0693767f, 0.0287741f, -0.0362424f, 0.0582999f, 0.202986f, -0.0422026f, -0.176643f, 0.112744f, 0.0622333f, -0.255792f, 0.127369f, -0.0369281f, -0.157562f, 0.0911175f, 0.0616672f, -0.0126481f, -0.112835f, 0.133039f, -0.166415f, 0.180381f, 0.127506f, -0.103213f, 0.0612099f, -0.0808556f, 0.0349497f, -0.0690418f, -0.0743982f, 0.118686f, -0.0956483f, -0.160731f, 0.149646f, -0.169059f, -0.162751f, -0.182646f, 0.0216386f, -0.170681f, 0.173894f, 0.0760167f, -0.160797f, 0.0708466f, -0.0256243f, -0.171408f, -0.0694878f, 0.00191773f, -0.0435006f, 0.0495402f, -0.199488f, -0.0704454f, 0.0319984f, -0.0875503f, 0.0412102f, 0.00250957f, 0.0138628f, 0.14039f, -0.131181f, 0.125655f, -0.154378f, -0.0360602f, -0.0856235f, -0.157343f, -0.157747f, -0.076764f, 0.0785848f, 0.0455701f, 0.0104617f, 0.0607188f, 0.0638239f, -0.172883f, 0.229228f, -0.127783f, 0.052984f, -0.0538948f, 0.0395537f, -0.0502711f, 0.0137301f, 0.0320701f, -0.111709f, -0.165523f, -0.0182695f, -0.0435297f, -0.304673f, -0.14528f, -0.122374f, -0.029784f, 0.0521514f, 0.00540604f, 0.0206164f, 0.146815f, 0.132199f, 0.256347f, 0.155415f, 0.0889605f, -0.0527538f, 0.148879f, 0.101412f, -0.202251f, 0.115023f, -0.0278749f, 0.118156f, -0.00521329f, 0.0502666f, -0.0823559f, 0.225789f, 0.00132586f, 0.0753466f, 0.0988081f, 0.06198f, 0.0605791f, -0.0680993f, -0.15647f, -0.124314f, 0.109397f, 0.0499371f, 0.0124249f, 0.166421f, 0.157567f, -0.0710655f, 0.172203f, -0.0756756f, -0.00924319f, 0.199068f, -0.030747f, -0.0924927f, -0.0930735f, -0.218173f, 0.132386f, 0.0374416f, -0.00555353f, 0.297165f, 0.0695397f, -0.103751f, 0.105138f, 0.0507034f, 0.0118251f, 0.0249369f, 0.0744664f, -0.22287f, -0.020723f, 0.113296f, -0.0744807f, 0.20926f, 0.0637611f, -0.0555588f, -0.0953879f, 0.17596f, 0.119876f, -0.207195f, 0.0672897f, -0.0559372f, -0.0710006f, 0.173223f, -0.127943f, 0.121441f, -0.190218f, 0.0504229f, -0.0585668f, 0.0991526f, 0.190423f, -0.145446f, 0.117744f, -0.152091f, -0.12541f, -0.0353938f, -0.113136f, -0.0729713f, 0.00711672f, -0.120889f, 0.0976046f, -0.150916f, 0.134189f, -0.0271917f, 0.0183233f, -0.00652119f, 0.000529131f, -0.00710885f, -0.0224775f, -0.0199701f, 0.0161086f, 0.149974f, -0.0992398f, 0.00210124f, 0.0271613f, -0.0938182f, 0.0358528f, -0.219024f, -0.0610977f, 0.0382006f, 0.0697671f, -0.0557989f, 0.0669532f, 0.0463615f, -0.085493f, 0.135922f, -0.0580653f, 0.200007f, -0.178374f, -0.0587149f, -0.0993447f, 0.0127338f, 0.000950102f, -0.19452f, -0.110478f, 0.0865531f, -0.00686404f, -0.201268f, 0.167829f, -0.205961f, -0.15956f, -0.0967972f, 0.00689876f, -0.209054f, 0.124003f, -0.104783f, -0.212763f, 0.11809f, -0.109777f, 0.129089f, 0.0793517f, -0.0479001f, -0.0651567f, 0.107742f, 0.0616814f, -0.0849193f, -0.0928105f, 0.146158f, 0.133809f, 0.132849f, 0.13055f, 0.0074233f, 0.0795085f, -0.222122f, 0.0927814f, 0.0664047f, -0.0774009f, 0.111377f, -0.0722441f, 0.00636216f, -0.0282037f, 0.0996195f, 0.171208f, -0.0255767f, 0.0714201f, -0.00095097f, -0.0785766f, -0.00405282f, -0.168032f, -0.232018f, 0.0750753f, -0.242628f, -0.0891612f, -0.0107522f, -0.0122219f, -0.0753492f, 0.102548f, 0.0737947f, -0.00012802f, 0.104877f, 0.00322342f, 0.0785874f, 0.0053779f, -0.110883f, 0.111174f, 0.121652f, -0.0577279f, 0.0906636f, -0.051506f, 0.250423f, 0.0809272f, -0.0915039f, -0.0981748f, 0.179585f, 0.113629f, -0.0883677f, 0.0598481f, 0.0874944f, 0.0974222f, -0.192827f, -0.0348601f, 0.200291f, -0.12461f, -0.101068f, 0.201808f, -0.0397887f, -0.0511918f, 0.131818f, 0.186045f, 0.0491747f, 0.0398249f, 0.000648551f, -0.0394123f, -0.0271464f, -0.0469637f, -0.118052f, -0.0216436f, 0.0823553f, 0.0200999f, -0.192035f, -0.0952906f, 0.0481196f, 0.00804016f, 0.00829548f, 0.105075f, 0.100327f, 0.00883648f, 0.0494651f, 0.0592694f, -0.118368f, -0.0481411f, -0.18638f, 0.221214f, 0.127964f, 0.0179101f, 0.159965f, 0.211546f, 0.0576328f, -0.0332756f, -0.0437914f, -0.09773f, -0.0284016f, -0.00825436f, -0.0860134f, 0.315152f, -0.121185f, -0.0488331f, -0.220633f, -0.182851f, 0.0407253f, -0.0415933f, 0.0940387f, 0.126497f, 0.103321f, -0.157367f, 0.121364f, 0.217096f, -0.123734f, 0.0788721f, -0.0561478f, 0.202661f, -0.109499f, -0.177038f, -0.0434338f, -0.15405f, 0.0585272f, -0.190099f, -0.00442327f, -0.152895f, -0.125984f, 0.14176f, -0.0990562f, 0.130252f, 0.11755f, 0.143795f, 0.0935937f, -0.0244628f, -0.153089f, -0.010239f, -0.123808f, -0.0100306f, -0.0191722f, 0.132928f, 0.10405f, 0.0492706f, 0.121685f, 0.157403f, 0.225551f, -0.117511f, -0.14421f, -0.0286768f, 0.0514625f, 0.0158677f, 0.186493f, -0.0195572f, -0.0475159f, 0.116025f, 0.00588181f, 0.0560645f, -0.0797968f, -0.0373575f, 0.0999964f, -0.0785804f, 0.00447446f, 0.129204f, -0.197987f, 0.0322275f, -0.0600072f, -0.0421344f, 0.028458f, -0.0145075f, 0.194468f, 0.0965233f, 0.0899365f, -0.230964f, 0.106179f, 0.0992269f, -0.0329885f, 0.129389f, 0.13009f, 0.0195375f, 0.159789f, -0.0292834f, 0.0185541f, -0.192241f, -0.0113235f, 0.152146f, 0.233519f, 0.0448911f, -0.259616f, 0.140749f, -0.101373f, -0.000488546f, -0.0136139f, 0.172814f, -0.0240124f, -0.169247f, 0.181757f, -0.0791372f, -0.158762f, -0.061991f, -0.211613f, 0.276445f, 0.0151229f, -0.0355587f, 0.0562812f, -0.0265694f, 0.0797869f, -0.0625805f, 0.116499f, 0.0483725f, -0.0395458f, -0.197158f, 0.00946846f, -0.0741474f, -0.12008f, 0.0608758f, 0.0119951f, 0.0440007f, -0.0583199f, -0.0351586f, -0.196537f, 0.0603175f, -0.0309324f, -0.110196f, -0.131295f, -0.0943473f, 0.0515706f, 0.0470785f, -0.178598f, 0.0866821f, -0.133077f, -0.247447f, 0.0558652f, -0.0180697f, 0.066126f, 0.101294f, -0.0589877f, 0.100923f, -0.166205f, -0.00440022f, 0.02499f, -0.124661f, -0.19636f, -0.0557627f, -0.030373f, -0.00529046f, 0.0591503f, -0.184972f, 0.0717248f, -0.198649f, 0.00240216f, 0.0499528f, -0.0168775f, -0.0420173f, -0.0155159f, 0.0638473f, 0.0276615f, -0.0531508f, -0.0986322f, -0.0438721f, -0.105421f, -0.0592778f, 0.0232334f, -0.0132404f, 0.0481999f, 0.0416593f, -0.00404756f, 0.161482f, 0.166182f, -0.105335f, 0.0336363f, -0.013344f, -0.0602976f, 0.0550928f, -0.0629674f, 0.0929203f, -0.0690785f, 0.0836946f, 0.11821f, -0.035567f, 0.142302f, -0.05165f, -0.0695987f, 0.202205f, -0.0696666f, 0.160798f, -0.216362f, -0.0112338f, 0.0328386f, 0.266161f, 0.00328839f, 0.02359f, 0.0553255f, -0.0303741f, -0.0266558f, 0.151352f, 0.166144f, 0.232985f, 0.0346999f, 0.089353f, 0.27982f, 0.0655692f, 0.186791f, -0.180121f, -0.0464909f, -0.220333f, -0.0394338f, -0.0397671f, -0.0416889f, -0.0066728f, 0.0746024f, 0.156715f, -0.0518413f, 0.111375f, 0.134141f, 0.102011f, 0.0930127f, -0.0791206f, -0.175756f, 0.00465953f, 0.0630327f, -0.117632f, -0.0404068f, 0.17135f, 0.0665433f, 0.00687643f, -0.195298f, 0.0822199f, -0.0593364f, 0.0338057f, 0.0810386f, -0.250253f, -0.137369f, 0.181071f, -0.0952617f, -0.00625915f, 0.0364175f, -0.0350515f, 0.077132f, -0.0312655f, 0.0541493f, 0.0942767f, 0.0640381f, -0.043125f, 0.113841f, 0.132173f, 0.061059f, -0.180913f, -0.135578f, -0.153091f, 0.0592985f, 0.143158f, 0.0952234f, -0.12575f, 0.0384562f, 0.175137f, 0.269644f, 0.018603f, -0.123869f, 0.130093f, 0.114349f, -0.206361f, 0.128578f, 0.0132318f, -0.123611f, 0.0989107f, 0.117993f, -0.0372981f, 0.0846035f, 0.00992713f, -0.139039f, -0.0262129f, 0.0483849f, 0.0535745f, 0.0340272f, -0.112523f, 0.0261382f, -0.166195f, -0.093944f, -0.00625928f, -0.053938f, 0.107153f, -0.0480406f, 0.307996f, 0.16106f, -0.058948f, 0.208314f, -0.172184f, -0.039654f, 0.088923f, 0.189366f, 0.0776566f, 0.00158971f, 0.0747292f, -0.0765087f, -0.0326502f, -0.0893586f, -0.211678f, 0.0925019f, -0.169717f, 0.270658f, 0.110429f, -0.107617f, -0.0233788f, 0.107325f, -0.10806f, 0.0508361f, 0.0964471f, -0.0569431f, -0.249639f, 0.129454f, -0.000635193f, -0.014469f, 0.057879f, -0.334211f, -0.213459f, 0.0113903f, -0.23271f, 0.190294f, 0.0524569f, 0.177442f, -0.248453f, -0.367031f, 0.343089f, 0.084109f, -0.0934265f, 0.111205f, -0.245756f, 0.0349076f, -0.19419f, -0.0258991f, 0.160434f, 0.200896f, 0.0285377f, 0.0487408f, -0.0183124f, -0.0159413f, -0.111346f, 0.0998242f, -0.0478718f, -0.250177f, -0.0531411f, -0.11267f, -0.301679f, 0.126208f, 0.284602f, 0.0362023f, -0.22046f, -0.182854f, 0.135837f, -0.159699f, 0.231887f, 0.0351829f, 0.00270908f, 0.259485f, 0.336662f, -0.34471f, 0.0566337f, 0.082782f, 0.338911f, -0.179518f, 0.321987f, 0.186843f, -0.170148f, -0.0443873f, 0.070431f, 0.135195f, 0.0213583f, -0.14833f, -0.0619265f, -0.0821839f, -0.272085f, -0.176814f, 0.0976817f, -0.113945f, -0.304198f, -0.0243425f, -0.225076f, -0.323944f, 0.232119f, -0.197364f, 0.143148f, 0.175542f, 0.129897f, 0.0301717f, 0.185718f, -0.0322623f, 0.314666f, -0.125258f, -0.0285077f, 0.162135f, -0.187357f, 0.129746f, 0.0152696f, 0.223863f, 0.323376f, -0.0401144f, -0.229182f, -0.261695f, 0.131945f, 0.0065434f, -0.0384075f, -0.0563393f, 0.13935f, 0.0703278f, 0.0627637f, 0.0592707f, 0.0163079f, -0.0691165f, -0.174814f, -0.0167498f, 0.359618f, -0.0272487f, -0.0977896f, -0.0671107f, -0.109611f, -0.255456f, -0.23808f, 0.263408f, -0.205831f, -0.164101f, 0.16755f, -0.140567f, -0.0795857f, -0.0132757f, -0.0487157f, -0.0317254f, -0.131061f, 0.0587422f, 0.425361f, -0.338886f, -0.0666895f, 0.0387715f, -0.0470937f, -0.0510117f, -0.220789f, 0.0682485f, 0.0536738f, -0.2086f, 0.00109144f, -0.224595f, 0.0215078f, -0.183644f, 0.0897183f, -0.145198f, 0.293624f, 0.0282975f, 0.0750222f, -0.180979f, 0.166209f, -0.130097f, -0.170965f, 0.358194f, 0.190668f, 0.053876f, 0.226623f, 0.0506091f, -0.0615258f, 0.172726f, -0.274747f, -0.330453f, -0.0264798f, 0.294584f, 0.150997f, 0.0525f, 0.0637564f, 0.0405926f, 0.286216f, 0.124311f, -0.199331f, 0.242777f, 0.0604296f, 0.0951381f, -0.0412697f, -0.212198f, -0.115699f, 0.0730397f, 0.106929f, -0.218947f, -0.275837f, 0.106453f, -0.0627949f, -0.140866f, 0.209542f, 0.175559f, 0.151613f, -0.229317f, 0.24106f, -0.211396f, 0.166754f, 0.088679f, -0.224412f, -0.0886975f, -0.135264f, 0.0333818f, 0.131952f, -0.11467f, 0.112262f, 0.311117f, 0.156883f, -0.243584f, 0.298987f, -0.387583f, 0.14087f, -0.241909f, -0.0718638f, -0.101146f, 0.400347f, -0.220466f, 0.198939f, -0.122629f, -0.142938f, -0.385854f, -0.343861f, -0.091215f, 0.258321f, 0.132251f, 0.383781f, -0.238437f, 0.12621f, -0.0749837f, 0.25472f, 0.0786554f, 0.0334002f, -0.0112743f, -0.179172f, 0.198901f, 0.142177f, -0.370634f, -0.110146f, -0.0184499f, -0.000651385f, 0.00790589f, -0.152002f, 0.338348f, 0.20886f, -0.28575f, 0.148838f, -0.130633f, -0.0894821f, 0.116057f, -0.0448624f, 0.165824f, 0.0143606f, 0.0381799f, 0.275203f, 0.0384109f, -0.299665f, -0.0587778f, -0.258091f, 0.280777f, 0.216712f, 0.174983f, -0.291149f, -0.116572f, 0.037695f, 0.0580107f, 0.0491949f, 0.0511792f, 0.32559f, -0.0342886f, -0.0329429f, 0.178536f, 0.0921346f, -0.0291208f, -0.0709375f, 0.0399508f, 0.16147f, -0.0510601f, -0.0246693f, 0.0847233f, 0.0492213f, 0.253741f, 0.208711f, -0.0124054f, 0.282433f, 0.0881589f, 0.00919977f, 0.17284f, -0.0968398f, 0.227684f, -0.323958f, -0.134261f, 0.0668476f, 0.131037f, -0.286905f, -0.0813275f, -0.00136172f, -0.0882813f, 0.12111f, -0.0375023f, 0.00191422f, -0.0408436f, 0.0466566f, -0.0737091f, 0.0204447f, 0.0526262f, 0.155661f, -0.126957f, 0.0673216f, -0.0472879f, 0.0330556f, -0.00772433f, -0.25107f, -0.221899f, -0.0827888f, 0.185748f, 0.0379138f, 0.0303733f, 0.178682f, 0.0131016f, -0.00730619f, -0.192823f, -0.132477f, -0.222159f, -0.168811f, -0.00416863f, 0.298842f, 0.110794f, 0.140718f, 0.0411896f, 0.0887934f, 0.0484635f, -0.0985094f, 0.0964239f, -0.0195349f, 0.0885621f, 0.0426536f, -0.051998f, 0.0101387f, -0.135222f, -0.198147f, 0.0354733f, 0.130049f, -0.21957f, 0.0497364f, -0.143536f, 0.314552f, -0.143606f, 0.0818343f, -0.196362f, -0.0721556f, 0.133944f, -0.0941116f, -0.184201f, -0.0916609f, 0.0386379f, -0.0163313f, -0.22857f, -0.0390694f, -0.0185609f, 0.0962447f, -0.065213f, -0.0916125f, 0.165797f, 0.117332f, -0.0571553f, 0.194895f, -0.221925f, -0.169124f, -0.0995293f, -0.0610896f, 0.197001f, 0.641037f, 0.182752f, -0.0925288f, 0.0531747f, 0.24461f, -0.0111102f, -0.0591532f, 0.153282f, -0.00906598f, -0.0306597f, -0.142966f, 0.159159f, 0.10167f, -0.0526328f, -0.218931f, -0.0972123f, 0.166162f, -0.00452563f, 0.064455f, -0.295072f, 0.0611589f, 0.0191682f, 0.0843618f, 0.100983f, -0.0285672f, -0.0912397f, 0.155306f, 0.262536f, 0.0154174f, 0.0759034f, -0.000297969f, 0.177203f, 0.173474f, 0.035482f, -0.0344102f, -0.171518f, 0.0453961f, 0.0429008f, 0.00140491f, -0.0241509f, -0.388848f, -0.168811f, -0.110713f, 0.121674f, 0.0424354f, 0.161751f, 0.0243064f, 0.0648716f, -0.133614f, 0.135286f, -0.0122419f, -0.0968013f, -0.146776f, -0.217562f, 0.226452f, 0.0164456f, 0.0256065f, -0.00391667f, -0.0109199f, 0.161912f, -0.0179834f, 0.284632f, -0.105084f, 0.0323628f, -0.216701f, -0.0162511f, -0.0508542f, 0.0909027f, -0.0534481f, 0.0503401f, 0.0322397f, -0.0357378f, -0.0607916f, -0.119799f, -0.0815058f, -0.0972109f, -0.117574f, -0.0564703f, 0.0201001f, 0.0335971f, 0.123745f, 0.071738f, 0.177901f, -0.261773f, -0.0885589f, 0.0926263f, -0.0284013f, 0.17346f, -0.073433f, 0.0622584f, -0.0826887f, -0.0630913f, 0.155095f, 0.0868646f, 0.138654f, -0.169473f, 0.131794f, 0.0405832f, -0.177075f, -0.108488f, 0.100211f, 0.134481f, -0.00213527f, -0.2924f, -0.144185f, -0.141859f, -0.0318238f, 0.0973666f, -0.0516404f, 0.130562f, -0.046499f, 0.284496f, -0.00706615f, 0.20383f, 0.035238f, -0.00447639f, -0.0410997f, 0.0414088f, -0.0699538f, 0.151521f, -0.0944625f, 0.123416f, -0.000179522f, -0.279146f, -0.0588382f, -0.239615f, 0.205976f, -0.0053728f, -0.186098f, 0.151481f, 0.00498413f, 0.0683146f, -0.157819f, 0.054049f, 0.283353f, -0.128154f, -0.147157f, -0.140785f, -0.182071f, 0.194815f, -0.00986929f, 0.039264f, -0.0663725f, 0.27748f, 0.182165f, 0.214299f, 0.0486193f, 0.0239442f, -0.0978569f, 0.30444f, -0.0146897f, -0.0250083f, -0.086877f, -0.217708f, 0.0872975f, 0.0653116f, 0.16449f, 0.0285058f, -0.03998f, -0.0842232f, 0.146661f, 0.267393f, -0.119335f, -0.18323f, 0.158942f, 0.138441f, -0.105635f, -0.145586f, 0.158891f, 0.0968946f, 0.131439f, 0.0919777f, -0.216727f, -0.0508753f, 0.10788f, 0.0824816f, 0.0522375f, 0.146761f, 0.00566772f, -0.177951f, -0.0781779f, -0.192787f, 0.168849f, -0.0183716f, 0.020553f, 0.131188f, -0.175814f, 0.232302f, 0.000202945f, 0.0280033f, -0.153902f, 0.218757f, -0.15314f, -0.165216f, -0.0705617f, -0.0771687f, 0.201417f, 0.012613f, -0.0532952f, 0.138027f, -0.0356217f, 0.177111f, -0.178895f, 0.0471822f, -0.148935f, -0.109859f, 0.0894366f, 0.0140281f, 0.0447754f, 0.0649487f, -0.203476f, -0.150939f, -0.0697224f, -0.111874f, -0.24154f, -0.0684208f, 0.141682f, 0.122036f, -0.0338006f, -0.162001f, 0.0237171f, 0.135039f, 0.256242f, 0.160794f, 0.0924016f, 0.0721736f, -0.139773f, -0.20666f, 0.288523f, 0.181928f, -0.112712f, -0.0440128f, 0.166084f, -0.0354399f, -0.0234806f, 0.149024f, 0.0573647f, -0.0446738f, 0.0184067f, 0.015167f, 0.013623f, 0.0879997f, -0.118284f, 0.0876671f, 0.117616f, 0.153081f, -0.0419546f, 0.193044f, -0.176998f, -0.262067f, 0.108174f, -0.00839397f, 0.320664f, 0.0137138f, -0.126046f, 0.117635f, 0.0794403f, -0.106004f, -0.0252386f, 0.140128f, -0.0771914f, 0.0383972f, -0.0698892f, 0.0132626f, 0.156398f, -0.169699f, 0.157298f, 0.224113f, 0.115562f, 0.210335f, -0.15416f, 0.118777f, -0.173026f, 0.0810806f, -0.190158f, -0.236436f, 0.113284f, 0.103909f, 0.188955f, 0.181161f, 0.0813426f, -0.0187248f, -0.0152662f, -0.237706f, 0.185861f, -0.061148f, -0.156843f, -0.192267f, -0.112582f, 0.0163766f, 0.214302f, 0.00666842f, 0.0179207f, -0.055937f, -0.158539f, -0.00937667f, -0.147008f, -0.167559f, -0.000551083f, 0.12699f, 0.182523f, -0.191863f, -0.239594f, 0.0391996f, 0.0117308f, -0.0440097f, 0.108411f, -0.169452f, 0.0994158f, -0.0462087f, 0.0755139f, 0.090815f, 0.00622131f, -0.0221659f, -0.134957f, 0.00808651f, -0.0455348f, -0.0807129f, -0.0666089f, -0.0368757f, 0.00237724f, 0.0978937f, 0.0328483f, -0.128052f, -0.171614f, -0.212811f, -0.0755484f, -0.172642f, -0.0951958f, -0.0185202f, -0.168884f, 0.135589f, -0.249907f, -0.101986f, -0.014367f, 0.193732f, 0.012098f, 0.0444058f, -0.0412797f, 0.0510424f, -0.144859f, 0.0138303f, 0.0691975f, -0.00830184f, 0.0446753f, -0.071745f, 0.107578f, -0.0925638f, 0.056022f, -0.00463957f, 0.0958285f, 0.0754753f, -0.169956f, 0.170849f, -0.0364342f, -0.0951147f, -0.0770838f, -0.00473904f, -0.156971f, -0.0786109f, -0.112583f, 0.127788f, -0.0864304f, 0.00274064f, -0.0741562f, 0.0564772f, 0.0713729f, -0.153693f, 0.0250021f, 0.135765f, -0.0346077f, 0.229264f, -0.10876f, -0.0132192f, -0.145044f, 0.155817f, 0.0740703f, -0.140671f, -0.0720001f, 0.173079f, -0.111894f, -0.166263f, 0.0265302f, 0.0194634f, -0.154215f, -0.256724f, -0.111779f, 0.0962743f, -0.0386607f, -0.206844f, 0.188689f, 0.0778065f, 0.0482321f, -0.15111f, 0.0215632f, 0.246849f, -0.177822f, 0.0050129f, -0.0783098f, 0.0767413f, -0.110508f, 0.0868589f, -0.153253f, -0.0605999f, -0.0349679f, 0.199242f, -0.10319f, 0.0556098f, -0.0452777f, 0.116641f, -0.0599789f, 0.0998566f, 0.146163f, -0.0806018f, -0.179682f, 0.00723722f, -0.114544f, -0.0378503f, -0.114228f, -0.0711832f, 0.0507413f, -0.0936743f, 0.167664f, -0.207749f, 0.0101592f, -0.142334f, 0.134756f, -0.0469027f, -0.184486f, 0.0666593f, -0.0863526f, -0.0200591f, -0.069757f, -0.0435593f, 0.100808f, -0.0131164f, 0.145444f, -0.127275f, -0.0247907f, 0.134126f, -0.0676622f, -0.0618512f, 0.196882f, 0.190948f, 0.0220538f, 0.0702096f, -0.153441f, -0.17053f, -0.0297638f, 0.0590451f, 0.00208003f, -0.123626f, 0.143866f, 0.0466156f, 0.0643603f, 0.106281f, -0.159824f, 0.0349989f, -0.130861f, 0.14742f, 0.152963f, -0.132714f, -0.00315676f, 0.13588f, -0.039194f, -0.086089f, -0.111633f, 0.0105413f, 0.13498f, 0.150648f, 0.105003f, -0.0615123f, -0.0188723f, 0.0328281f, 0.0171951f, -0.118345f, 0.0739075f, -0.160868f, 0.0905985f, -0.0668246f, 0.084734f, -0.116563f, 0.102248f, 0.0203908f, -0.0795313f, -0.114653f, -0.03525f, -0.0963408f, -0.0562318f, 0.130466f, -0.0818663f, 0.00694802f, 0.18924f, 0.00614454f, -0.0255851f, 0.0857307f, 0.0591166f, 0.0408177f, 0.0254276f, -0.0420526f, 0.0141146f, 0.0220108f, 0.00650483f, -0.0079261f, 0.00432124f, 0.0419513f, -0.0209991f, 0.0447696f, -0.076933f, -0.145563f, 0.0378393f, -0.127049f, -0.0588716f, 0.0375745f, 0.0403597f, 0.0216206f, 0.128422f, 0.0293067f, -0.0176493f, -0.185303f, -0.0711043f, 0.104024f, -0.161929f, 0.0236826f, -0.0325283f, 0.0678531f, 0.0646995f, -0.120161f, -0.0230124f, 0.0691149f, -0.234628f, -0.0372187f, 0.0316949f, -0.0515711f, -0.0737139f, -0.0766908f, -0.186993f, 0.109891f, -0.00673052f, 0.17361f, -0.160946f, 0.16088f, 0.0247983f, -0.0655425f, 0.0521196f, -0.194763f, -0.154088f, -0.0454405f, 0.0722664f, -0.107534f, 0.0259785f, -0.174825f, 0.0585254f, 0.0971272f, 0.0555743f, 0.101938f, 0.15682f, 0.0232836f, -0.128849f, 0.0369393f, 0.0260992f, -0.00193073f, -0.0242862f, -0.0965673f, -0.00359611f, -0.076507f, 0.0694135f, -0.0821223f, -0.160819f, -0.0706907f, -0.132069f, 0.0173098f, 0.128749f, 0.113459f, -0.0169236f, -0.109356f, 0.110524f, -0.0156993f, 0.0592296f, 0.0536924f, 0.00483242f, 0.0534804f, 0.0821379f, -0.0319668f, 0.150873f, 0.010971f, -0.115085f, -0.122063f, 0.126574f, -0.00480627f, -0.159879f, -0.0151076f, 0.0528296f, 0.226537f, 0.0531011f, -0.0101279f, 0.169578f, 0.283369f, -0.106569f, -0.0214321f, 0.104072f, 0.0229092f, 0.170028f, -0.0451566f, -0.0463348f, 0.0674414f, 0.0946673f, 0.0130233f, 0.0397684f, 0.157693f, -0.080559f, 0.0787315f, -0.187811f, 0.101877f, -0.185487f, 0.0141499f, -0.062756f, 0.0412179f, 0.0346742f, 0.0614522f, -0.0586621f, 0.0716291f, 0.273968f, 0.110638f, -0.140038f, 0.0588832f, 0.108907f, 0.132338f, 0.0400224f, -0.0328712f, -0.0821576f, -0.0474754f, -0.113914f, -0.0402651f, 0.0981772f, 0.0304551f, 0.00663748f, 0.0679906f, 0.198889f, -0.0123327f, -0.0218729f, -0.0450396f, 0.032285f, 0.157664f, 0.0602657f, 0.0886957f, 0.0383586f, 0.121591f, 0.100324f, -0.0458881f, 0.1486f, -0.0879686f, 0.0393699f, 0.168695f, -0.0302743f, 0.0756752f, 0.254386f, -0.169514f, 0.0581306f, -0.0185801f, -0.0589313f, -0.0389817f, 0.0237643f, -0.0143409f, 0.00508383f, 0.0985357f, 0.2177f, -0.0910192f, 0.0457168f, 0.138725f, -0.122927f, -0.19622f, 0.0558872f, -0.00620371f, -0.162422f, 0.0566597f, 0.0498954f, -0.00301401f, -0.165048f, 0.0182583f, 0.0719208f, 0.152616f, 0.011972f, -0.000105243f, 0.172331f, -0.0932582f, 0.328692f, 0.025582f, 0.00701732f, 0.0976195f, -0.00278695f, -0.16174f, 0.103172f, -0.200857f, 0.154482f, 0.154136f, -0.0182884f, -0.0778175f, -0.229026f, 0.0864728f, 0.095177f, -0.240355f, -0.150801f, 0.226384f, 0.176456f, -0.168212f, 0.165201f, -0.0730968f, 0.0629608f, 0.0201374f, -0.181892f, -0.102273f, 0.105741f, 0.0925303f, 0.0322158f, 0.232533f, -0.0680096f, 0.200935f, -0.103882f, 0.0582748f, -0.043545f, 0.0481898f, -0.00931276f, -0.298269f, -0.237439f, 0.0648049f, 0.0170783f, 0.0996212f, -0.110969f, -0.164932f, -0.0541898f, 0.220646f, 0.0550732f, -0.130149f, -0.238795f, -0.165864f, -0.182825f, 0.213005f, -0.0303103f, 0.0919107f, -0.149433f, 0.145866f, 0.0908757f, 0.295336f, -0.0310267f, -0.330689f, -0.00666845f, -0.0146543f, 0.0453567f, -0.158125f, 0.0272104f, 0.0916873f, 0.0137335f, -0.163551f, -0.152335f, -0.0527344f, -0.236546f, 0.0567248f, 0.0845955f, 0.00275434f, -0.0683103f, -0.0761933f, 0.0993624f, -0.219448f, -0.287777f, -0.0419518f, 0.0457123f, -0.0906939f, 0.184073f, 0.192402f, -0.24441f, 0.0433758f, -0.036745f, -0.101508f, -0.0380958f, 0.0226966f, -0.28118f, 0.285057f, -0.12133f, 0.157234f, 0.00394343f, 0.103167f, -0.0215367f, -0.0807404f, 0.239164f, -0.0229965f, 0.0607725f, -0.0402914f, 0.0991085f, -0.200671f, -0.175143f, 0.121094f, 0.321069f, -0.263427f, 0.218287f, -0.00786343f, -0.171749f, 0.184404f, -0.313749f, 0.00204406f, 0.150229f, 0.185413f, 0.0102922f, 0.10042f, -0.00584224f, -0.0823753f, -0.168679f, -0.151871f, 0.0538878f, -0.0709909f, -0.0482447f, -0.17313f, 0.205661f, -0.0982197f, -0.243347f, -0.16538f, 0.298661f, -0.0866903f, 0.167037f, 0.0479235f, -0.311452f, -0.165681f, -0.036495f, -0.00432752f, -0.0333485f, -0.067626f, 0.293725f, 0.0912942f, 0.128521f, -0.135746f, 0.0949468f, 0.223425f, 0.18287f, 0.0147285f, 0.0677258f, 0.0112351f, -0.156455f, -0.127961f, -0.157047f, -0.0493102f, -0.116771f, 0.126833f, 0.243542f, 0.301693f, 0.254573f, -0.00900348f, -0.0464854f, 0.110671f, -0.0548498f, 0.112941f, 0.159885f, 0.0350429f, -0.154011f, -0.0551362f, -0.00824885f, -0.153636f, 0.231409f, -0.170758f, -0.208663f, 0.174902f, 0.142124f, 0.110863f, 0.289184f, 0.221237f, -0.0971429f, 0.0516051f, -0.128142f, -0.0940392f, -0.0701665f, -0.095394f, 0.145031f, 0.0935078f, 0.0573421f, -0.0664224f, -0.0369088f, 0.0899663f, -0.0953697f, -0.171706f, -0.191773f, 0.0911458f, 0.019379f, 0.0024827f, -0.0342882f, 0.0725835f, 0.081117f, 0.0932869f, 0.153954f, 0.0538131f, -0.074161f, -0.0275074f, 0.0455607f, 0.00455445f, -0.0489402f, -0.158017f, 0.162332f, -0.151917f, -0.0316297f, 0.116577f, -0.119122f, -0.0353339f, -0.0468176f, -0.210155f, -0.158628f, -0.149647f, -0.103902f, 0.119968f, -0.00109444f, 0.0360444f, -0.104807f, -0.139774f, 0.0390095f, 0.0969824f, 0.100193f, -0.159822f, -0.00913778f, 0.0773783f, 0.0258685f, -0.0185403f, 0.167798f, 0.195557f, -0.0181334f, 0.187064f, -0.00148584f, -0.18027f, 0.0268592f, -0.109169f, 0.061467f, 0.11964f, -0.106934f, -0.00957189f, 0.17921f, 0.0564017f, -0.125933f, -0.0202863f, 0.112152f, 0.0192943f, -0.126723f, -0.0211402f, 0.103746f, -0.0923094f, -0.00729527f, -0.0371635f, -0.276437f, -0.0364826f, -0.0283788f, -0.011901f, -0.0771285f, 0.146055f, -0.0981343f, -0.195256f, -0.185424f, -0.206061f, 0.0060468f, -0.0562624f, 0.143885f, 0.235608f, -0.285959f, -0.173253f, -0.167768f, 0.19244f, 0.0276537f, -0.0831538f, 0.00576465f, -0.156033f, 0.0887004f, -0.0512847f, 0.0897947f, 0.00543941f, 0.0277273f, -0.0177483f, -0.0462758f, -0.0601612f, -0.0300514f, -0.142869f, -0.0964089f, 0.0785289f, -0.162234f, 0.070167f, 0.233826f, -0.00488026f, -0.0987314f, 0.102079f, -0.21615f, 0.0566073f, -0.185607f, 0.259009f, -0.120334f, 0.067683f, 0.181951f, 0.0680395f, 0.189164f, 0.103531f, 0.019114f, 0.0290677f, 0.0521691f, -0.193933f, -0.0272687f, 0.134057f, 0.00839052f, 0.108379f, 0.23432f, 0.136072f, -0.189121f, 0.14295f, 0.207973f, -0.177573f, -0.0759059f, -0.0800002f, -0.100312f, -0.082496f, 0.121017f, 0.08098f, 0.0621273f, 0.00977999f, 0.169284f, -0.0370307f, 0.212286f, -0.0423079f, 0.112603f, 0.0638965f, -0.058576f, 0.182436f, 0.0213827f, 0.177573f, 0.0647271f, 0.094103f, 0.0315712f, 0.0407297f, 0.0898914f, -0.0363985f, 0.0285724f, -0.161364f, -0.150831f, 0.0958209f, 0.0831917f, 0.188131f, -0.0269231f, -0.127795f, -0.00348161f, 0.0748385f, -0.129243f, -0.0199351f, -0.289321f, 0.166072f, 0.0690943f, 0.0195054f, -0.0535715f, -0.161311f, 0.193088f, 0.0721542f, -0.0352431f, 0.0234339f, 0.0251339f, -0.214526f, 0.0817129f, 0.0145093f, -0.00530436f, 0.137182f, -0.0474025f, 0.0863855f, 0.00230628f, -0.138633f, -0.0307752f, -0.0895589f, -0.337149f, 0.134994f, -0.129338f, -0.103919f, -0.0715076f, 0.161848f, 0.143382f, 0.0444507f, 0.00181985f, -0.00959828f, -0.142391f, -0.0337184f, 0.0120976f, 0.196362f, 0.0746777f, 0.0758185f, -0.0506056f, -0.039577f, 0.0760567f, 0.278504f, -0.0156129f, 0.0980844f, -0.109023f, -0.0901069f, -0.0936171f, -0.0480451f, -0.0283384f, -0.173438f, 0.0275059f, 0.0897157f, -0.0337089f, -0.0167627f, -0.0206465f, -0.0452324f, -0.0814487f, 0.0207688f, -0.232404f, -0.168775f, -0.024534f, 0.0619196f, -0.0515992f, -0.0366225f, 0.180403f, 0.128609f, -0.253273f, 0.122333f, -0.0275062f, 0.0762956f, -0.211332f, 0.0894838f, -0.0155193f, 0.00814391f, 0.0217488f, -0.0375009f, -0.00804741f, -0.00682783f, 0.0437585f, 0.056874f, 0.0778789f, -0.137731f, -0.16783f, -0.163552f, 0.178113f, 0.0249941f, -0.0288477f, -0.216173f, -0.110866f, 0.08593f, 0.133179f, -0.0393839f, 0.0421086f, 0.0799476f, -0.0761491f, 0.312891f, -0.0939018f, -0.130853f, -0.13487f, 0.205962f, -0.0033462f, -0.162308f, -0.0620058f, -0.146469f, -0.212881f, 0.0157903f, 0.0346878f, 0.0534679f, 0.00293154f, -0.02811f, -0.0661749f, 0.109695f, 0.0205928f, 0.0295987f, 0.1079f, 0.206689f, -0.0491675f, -0.0697727f, 0.0267282f, 0.178115f, -0.0825635f, -0.143811f, 0.0505373f, -0.0408329f, -0.236619f, 0.0264261f, -0.0857696f, 0.0975505f, -0.318824f, -0.20899f, -0.147991f, -0.0545244f, -0.0906159f, 0.125685f, -0.135085f, 0.0412633f, -0.00817664f, 0.0554415f, -0.188119f, -0.0201438f, -0.152304f, 0.0361476f, -0.167807f, 0.0627931f, 0.0327856f, -0.102794f, -0.126584f, 0.0757458f, 0.0382955f, 0.080419f, 0.081203f, 0.100796f, 0.0366824f, -0.0303091f, 0.289281f, -0.0196492f, 0.102847f, 0.239831f, -0.0669422f, -0.128353f, -0.11688f, 0.137228f, 0.0481935f, 0.0593459f, 0.132163f, -0.0578825f, -0.00255539f, 0.144774f, -0.0660957f, 0.0520849f, -0.0604152f, -0.169876f, 0.0394546f, 0.025786f, -0.137462f, -0.0456051f, -0.0238699f, 0.102649f, 0.0897131f, -0.237159f, 0.377528f, 0.030107f, -0.063178f, -0.107506f, 0.0456655f, -0.209385f, 0.15966f, 0.118297f, 0.0699465f, -0.152645f, 0.0413694f, 0.0339903f, -0.080223f, 0.158613f, -0.12368f, -0.133728f, 0.287091f, 0.000172438f, -0.0323701f, -0.0180144f, -0.0949409f, -0.153316f, -0.0842537f, 0.156963f, -0.274695f, -0.204704f, -0.055497f, -0.00357961f, 0.229307f, 0.116334f, -0.155162f, 0.0405051f, -0.324987f, -0.142302f, 0.0618531f, -0.109778f, -0.0156808f, -0.0646547f, -0.0561828f, 0.0957241f, 0.133747f, -0.00348848f, -0.16455f, 0.216779f, 0.0690135f, 0.245042f, 0.151158f, -0.120628f, -0.122702f, -0.0506763f, 0.0246717f, -0.270202f, -0.172355f, -0.178461f, -0.167828f, 0.0349308f, -0.0813292f, 0.0803277f, -0.0580242f, -0.0627781f, 0.162127f, -0.0747871f, 0.0982028f, 0.0282658f, 0.196362f, -0.024706f, 0.227261f, 0.017288f, 0.0869222f, 0.0160337f, -0.0540357f, -0.0440094f, -0.0280288f, 0.108194f, -0.0285781f, 0.0927971f, 0.102461f, -0.0695734f, -0.132907f, -0.225035f, -0.0282866f, -0.0343126f, 0.094311f, -0.257374f, 0.045855f, 0.244807f, -0.0930782f, -0.181439f, 0.182107f, -0.142205f, -0.0160486f, -0.0717667f, 0.0569546f, -0.0986095f, 0.119079f, 0.168329f, 0.296765f, -0.00540817f, -0.359083f, -0.133096f, -0.129874f, -0.34138f, -0.437353f, 0.00231452f, -0.101474f, 0.0141005f, 0.0467153f, -0.0820689f, 0.0292346f, -0.112136f, 0.0330241f, -0.053133f, -0.085579f, 0.0358374f, 0.120067f, 0.0269206f, 0.202992f, -0.0911497f, 0.0567057f, -0.203758f, 0.0551134f, -0.0982145f, 0.158052f, -0.150502f, 0.132158f, -0.0139238f, -0.00295467f, -0.149557f, 0.118054f, 0.123923f, 0.205249f, 0.0147126f, 0.271508f, -0.277352f, -0.168215f, -0.00657027f, 0.209663f, 0.096132f, -0.0740008f, 0.0748842f, 0.153524f, 0.0499787f, 0.154441f, -0.0419597f, 0.317766f, 0.0468063f, -0.0910162f, -0.0817426f, 0.0525588f, -0.147251f, 0.113222f, 0.0209597f, -0.246599f, 0.0679712f, 0.18404f, -0.0315602f, -0.0121918f, 0.0384749f, -0.0496771f, 0.143663f, 0.0342507f, -0.0105925f, -0.0366144f, 0.134f, 0.0253f, 0.221185f, -0.0233998f, -0.0904367f, -0.0173733f, 0.149306f, 0.171403f, -0.00434509f, -0.0498287f, -0.14004f, 0.08439f, 0.241727f, 0.157299f, -0.066337f, 0.0372986f, 0.275731f, 0.114542f, -0.121484f, 0.0529723f, -0.146922f, -0.107756f, -0.112707f, -0.0586536f, -0.0305571f, 0.22679f, -0.141421f, -0.0997411f, -0.0321689f, 0.117893f, -0.192958f, -0.088097f, -0.0118806f, -0.0749241f, 0.00378415f, -0.0920763f, -0.010985f, 0.134847f, 0.237151f, 0.0952788f, 0.114227f, 0.130129f, 0.0500606f, -0.100639f, -0.0143637f, -0.0742599f, -0.0245883f, 0.196026f, 0.0976385f, -0.0155385f, -0.0653704f, -0.232911f, 0.0349445f, 0.118211f, 0.342505f, -0.253882f, 0.251944f, -0.0373978f, 0.0617746f, 0.0136709f, 0.0704847f, 0.195579f, 0.237192f, -0.0178201f, 0.0118458f, 0.155401f, 0.120472f, -0.31543f, -0.165745f, -0.0503387f, -0.320154f, 0.0289263f, -0.231704f, -0.0482444f, 0.277475f, -0.0872326f, -0.136319f, -0.332637f, -0.0106507f, 0.0275309f, 0.122784f, -0.185443f, -0.281063f, 0.0868972f, -0.00692107f, -0.0421801f, -0.0157065f, 0.248565f, -0.0287012f, -0.281815f, 0.181302f, -0.0749549f, -0.184979f, 0.191748f, 0.0281021f, 0.020616f, 0.225502f, -0.278942f, 0.177556f, 0.127588f, 0.0147595f, -0.0604556f, -0.0860034f, -0.174568f, 0.0689029f, 0.0903249f, 0.24868f, -0.0756615f, -0.154064f, -0.103192f, -0.0901057f, -0.00452132f, 0.329402f, -0.158327f, 0.24248f, -0.0614739f, -0.0999023f, -0.0948211f, -0.288526f, 0.14273f, 0.0594364f, 0.0901047f, -0.275611f, 0.227923f, 0.120078f, -0.133532f, 0.131903f, -0.126803f, 0.0919917f, -0.168831f, 0.336771f, -0.430111f, 0.0154923f, -0.230057f, -0.128196f, 0.0872225f, 0.143847f, -0.158354f, 0.087891f, -0.225747f, -0.107896f, -0.223732f, 0.168585f, 0.0366645f, 0.319447f, -0.00991294f, 0.229108f, -0.107042f, -0.0781827f, -0.122163f, -0.205119f, -0.00404736f, 0.257666f, 0.146109f, -0.0506428f, 0.0119511f, -0.0502669f, 0.216797f, -0.0818748f, 0.0207773f, 0.230089f, -0.0205361f, -0.115586f, -0.143192f, -0.0755225f, 0.0985659f, 0.0813486f, -0.358308f, -0.162327f, 0.0234858f, -0.319175f, -0.20418f, -0.264524f, 0.146894f, 0.0176164f, 0.0139102f, 0.196272f, 0.211009f, 0.153756f, -0.0159561f, -0.0963799f, -0.20763f, 0.357339f, -0.124349f, 0.204433f, 0.151762f, 0.0247138f, 0.00447296f, 0.34422f, -0.0393254f, 0.007734f, 0.0568483f, 0.018336f, 0.103099f, -0.186505f, 0.167294f, 0.0734252f, -0.178406f, 0.132997f, 0.209393f, 0.103176f, -0.196631f, -0.240823f, -0.0839009f, 0.126527f, 0.337839f, 0.0308143f, -0.162837f, -0.232937f, -0.184104f, -0.10939f, -0.249846f, -0.0470978f, 0.0967074f, -0.0484341f, -0.0742508f, 0.0567306f, -0.0344553f, 0.12609f, 0.170247f, -0.266649f, -0.354395f, 0.0784931f, 0.0968911f, 0.145243f, -0.00343212f, 0.0220026f, 0.0552099f, 0.159663f, 0.0416999f, -0.345791f, 0.254796f, -0.163798f, 0.121835f, -0.150956f, 0.194436f, -0.161674f, -0.0868003f, 0.192705f, -0.23366f, -0.058267f, 0.0203228f, -0.108686f, -0.265504f, 0.0488612f, -0.0719146f, 0.0994549f, 0.0524368f, 0.0155984f, 0.140905f, -0.417999f, -0.305183f, -0.20584f, 0.095025f, -0.00861502f, 0.176108f, 0.0465171f, -0.039085f, 0.267404f, -0.141307f, 0.0979768f, 0.12596f, 0.102165f, -0.0209653f, -0.0215084f, -0.0368378f, 0.0909984f, -0.362109f, -0.210609f, 0.117762f, -0.0554911f, -0.163324f, -0.136154f, 0.0970498f, -0.242508f, -0.205295f, 0.0591688f, 0.249513f, 0.0200972f, -0.152423f, -0.0159723f, -0.292278f, -0.000616652f, 0.0421516f, -0.176648f, 0.0416596f, -0.1661f, -0.109097f, -0.303671f, 0.263841f, -0.0895832f, 0.225937f, 0.054815f, 0.203762f, -0.153523f, 0.0181317f, 0.303302f, -0.104987f, -0.123039f, 0.0841292f, -0.310346f, -0.0108915f, -0.100412f, 0.253792f, -0.151037f, -0.216165f, 0.25639f, -0.0178122f, -0.190255f, 0.194987f, -0.199809f, -0.00219368f, -0.287861f, 0.211797f, 0.133756f, 0.057107f, 0.0751015f, 0.102133f, -0.14901f, 0.238924f, -0.098829f, -0.0714976f, -0.0251043f, 0.0525354f, 0.243822f, -0.108524f, -0.16098f, 0.0144982f, -0.0109823f, 0.00953916f, 0.184512f, 0.107378f, -0.11647f, -0.0854976f, 0.185086f, -0.0401819f, 0.262474f, 0.118657f, 0.0571856f, 0.150556f, -0.260662f, -0.101519f, -0.100966f, 0.0286848f, 0.202522f, -0.0431048f, 0.00547309f, -0.0401518f, -0.412153f, -0.0724795f, 0.213123f, -0.104806f, -0.0715029f, 0.162522f, -0.0334596f, 0.175065f, -0.131225f, -0.0230981f, 0.00884321f, -0.126005f, -0.0472573f, 0.207595f, 0.19599f, 0.220987f, -0.106575f, 0.0166884f, -0.067861f, -0.165487f, 0.182176f, -0.153741f, -0.0668709f, -0.171378f, 0.0423281f, -0.0797164f, -0.110989f, -0.0452837f, 0.178986f, -0.162824f, -0.183312f, -0.0168031f, 0.414492f, -0.15988f, -0.0857591f, 0.0967772f, 0.0359172f, -0.01725f, 0.0984168f, -0.0497651f, 0.0164026f, -0.0941516f, 0.0269109f, -0.00163701f, 0.126863f, 0.0680677f, -0.0630551f, 0.162254f, -0.1425f, 0.36604f, -0.229598f, 0.235144f, -0.0877479f, -0.060102f, 0.0692646f, 0.00577634f, 0.0800127f, 0.324012f, -0.213103f, -0.163234f, -0.152425f, -0.0949739f, -0.0618946f, 0.00677336f, -0.0960542f, -0.021972f, 0.143728f, 0.172968f, -0.164654f, -0.0689902f, 0.143157f, 0.0763933f, -0.148731f, -0.066965f, -0.0489591f, -0.123441f, 0.124487f, 0.267389f, -0.0606025f, -0.0408599f, -0.131739f, -0.0912949f, 0.195725f, -0.0212986f, -0.0973917f, 0.0536359f, -0.0471214f, -0.0311053f, 0.014553f, -0.225893f, -0.0392374f, 0.00809268f, -0.0285884f, -0.0924948f, -0.108252f, 0.148904f, 0.201772f, 0.209373f, -0.0960476f, -0.0940065f, 0.176581f, -0.150319f, 0.142516f, 0.167847f, -0.0401853f, 0.120433f, 0.0599735f, 0.15418f, -0.313993f, 0.0844261f, 0.0477641f, 0.268508f, 0.0199674f, 0.10916f, 0.0573194f, -0.0173927f, 0.0130542f, 0.056282f, 0.20274f, 0.0807833f, -0.147997f, 0.101794f, -0.0713994f, 0.0462846f, 0.248611f, 0.0533858f, 0.184471f, -0.007267f, -0.217854f, 0.0919475f, -0.0514651f, 0.0924488f, 0.104983f, 0.271974f, 0.000226877f, -0.167139f, -0.125291f, 0.0829792f, 0.150293f, -0.0121753f, -0.0410047f, 0.057484f, 0.0226142f, -0.00632776f, 0.260251f, 0.10861f, 0.141939f, -0.222952f, 0.134931f, -0.0707128f, 0.122644f, -0.0921065f, -0.155543f, -0.0235918f, -0.112986f, 0.0807206f, -0.265818f, -0.0525278f, -0.227284f, 0.157074f, -0.0952853f, 0.0945778f, 0.145043f, 0.0274572f, -0.0291262f, -0.0422116f, -0.00479133f, 0.0458137f, -0.14144f, -0.0866367f, 0.0780485f, -0.0570756f, 0.0272757f, 0.0148326f, -0.201766f, 0.0393477f, -0.16066f, -0.208635f, 0.0890198f, -0.0463531f, 0.0921021f, -0.118327f, -0.158003f, 0.00161379f, 0.050843f, 0.150333f, 0.102796f, 0.00188237f, -0.199157f, 0.128187f, -0.0442878f, 0.108691f, 0.0449527f, -0.0645267f, 0.229774f, 0.052884f, -0.0685749f, -0.0137175f, 0.171212f, 0.1407f, 0.182395f, 0.106705f, -0.157036f, -0.159601f, 0.0427255f, 0.0622911f, 0.191397f, 0.00715606f, 0.000427721f, -0.0641664f, 0.190393f, 0.0865384f, -0.182632f, 0.0125783f, -0.140586f, -0.0566275f, -0.0321416f, 0.220224f, -0.123702f, 0.18085f, -0.145258f, 0.190869f, -0.222457f, 0.168818f, -0.19224f, -0.0176791f, -0.063042f, -0.141568f, 0.219272f, 0.130514f, 0.00944122f, -0.282355f, 0.143035f, 0.0986838f, 0.0885484f, -0.0944953f, -0.209338f, -0.0649628f, 0.00943748f, -0.0765303f, 0.169503f, 0.191807f, 0.072075f, -0.00645071f, -0.168024f, -0.133489f, -0.034428f, 0.265336f, -0.169935f, 0.216757f, 0.103019f, 0.146017f, 0.089306f, 0.0809098f, 0.174167f, 0.114089f, 0.105339f, -0.295324f, 0.0286881f, -0.0243993f, 0.195125f, 0.12612f, -0.16249f, -0.050912f, -0.164918f, 0.034391f, 0.0194195f, 0.00463572f, -0.0457074f, 0.0705861f, -0.150386f, -0.246482f, 0.0720018f, -0.121734f, -0.0211004f, 0.117673f, -0.0642674f, -0.216576f, -0.189757f, 0.147834f, 0.0641127f, -0.227226f, -0.0222775f, 0.135807f, 0.121139f, -0.25927f, -0.110386f, 0.124643f, 0.000530331f, 0.0876687f, 0.0187622f, -0.00450721f, 0.259366f, -0.192503f, -0.173006f, -0.0674518f, -0.00541882f, 0.274382f, 0.133072f, 0.186689f, 0.00146011f, -0.0184199f, 0.022995f, 0.133741f, -0.0200947f, 0.252778f, -0.00633005f, -0.142717f, -0.00272707f, -0.0154386f, 0.000657893f, -0.0333313f, -0.0666123f, -0.0801758f, 0.00515945f, 0.0534377f, -0.145625f, 0.0111581f, -0.107945f, -0.106961f, -0.0777976f, 0.235487f, -0.180754f, 0.122207f, -0.1613f, -0.148741f, -0.0688733f, 0.00534531f, 0.0203349f, -0.141856f, 0.00667273f, 0.218443f, 0.00686688f, 0.0367518f, 0.192864f, -0.0347775f, 0.0403429f, -0.221547f, -0.227577f, 0.213776f, -0.0986727f, 0.140281f, -0.142257f, -0.108079f, -0.0750713f, -0.0211959f, 0.0672887f, 0.14928f, -0.00293859f, -0.102523f, 0.092689f, 0.0648602f, -0.193784f, 0.182538f, 0.31182f, 0.0143227f, -0.165804f, 0.0935122f, 0.11492f, 0.112914f, 0.0606883f, 0.0794698f, -0.102928f, -0.132778f, -0.1235f, -0.0575965f, 0.100394f, -0.194958f, 0.0455861f, 0.0455833f, -0.132815f, 0.0148837f, 0.158619f, 0.039622f, -0.336542f, 0.0808856f, 0.0616814f, 0.029327f, 0.0819746f, -0.0659796f, -0.132755f, 0.0249135f, 0.066877f, -0.0589625f, -0.087883f, 0.00314632f, -0.0882036f, -0.0316438f, 0.240653f, 0.271511f, -0.0998482f, 0.109412f, 0.386017f, -0.0547305f, 0.00505285f, 0.0247331f, 0.0354201f, -0.189814f, 0.275206f, -0.124957f, 0.131159f, 0.114443f, 0.029229f, 0.113324f, -0.0621181f, -0.164164f, -0.129025f, -0.00170373f, 0.183609f, 0.0187762f, -0.0563506f, -0.205736f, 0.245232f, -0.163826f, -0.0881812f, -0.178645f, 0.0927541f, 0.043177f, -0.232629f, -0.00331721f, -0.24955f, -0.293318f, 0.164624f, -0.0556468f, -0.148419f, -0.120499f, 0.0615391f, -0.151055f, -0.0306933f, -0.210636f, 0.0284461f, 0.081354f, -0.0818095f, 0.0831491f, -0.0191867f, 0.0884108f, -0.120779f, 0.122874f, 0.133191f, -0.343868f, 0.0425308f, 0.242436f, -0.0231862f, 0.185227f, 0.100735f, -0.232011f, -0.300496f, 0.103067f, -0.0370647f, 0.105347f, 0.127609f, -0.1501f, -0.037985f, -0.00117283f, 0.0659423f, -0.0336213f, -0.0224047f, 0.222655f, 0.144423f, 0.151477f, -0.138485f, 0.126982f, -0.0396741f, 0.294377f, -0.0451981f, -0.0608807f, 0.00104422f, 0.0432951f, 0.0678247f, 0.138016f, 0.206934f, 0.0405524f, 0.172257f, 0.209839f, 0.108382f, 0.0864667f, -0.11747f, -0.0634121f, 0.146639f, 0.0154911f, -0.049148f, -0.149033f, -0.0704137f, -0.140798f, 0.201396f, 0.0830532f, -0.151449f, -0.314361f, 0.0498976f, -0.0906107f, -0.10976f, 0.194483f, 0.0315856f, -0.0707144f, 0.152786f, 0.0852407f, -0.319317f, 0.189889f, -0.0640784f, -0.217558f, -0.0176883f, -0.0870895f, -0.0876135f, 0.0173645f, -0.0680903f, 0.222688f, -0.15138f, -0.144687f, -0.0190858f, 0.150261f, 0.0545393f, 0.0742516f, 0.117881f, 0.263329f, 0.187291f, -0.285704f, 0.131129f, 0.0804581f, -0.00343814f, 0.0978867f, -0.0492447f, 0.0129213f, -0.0575666f, 0.0239806f, -0.171875f, 0.167643f, -0.222402f, 0.0980318f, -0.0751751f, -0.18582f, -0.0590752f, -0.226285f, 0.0530102f, -0.020515f, 0.179762f, 0.210757f, -0.20478f, -0.104141f, -0.169243f, -0.0852973f, 0.00546751f, 0.168529f, -0.00568185f, 0.00398386f, -0.174066f, -0.0150984f, 0.0228183f, -0.229554f, 0.191149f, -0.178572f, 0.136457f, -0.296714f, -0.0232416f, -0.0313926f, 0.138587f, 0.00570923f, -0.0953362f, 0.156934f, 0.0806791f, -0.236183f, 0.077365f, 0.250799f, 0.0063424f, 0.0665813f, -0.14119f, 0.0833654f, 0.0220696f, -0.00400273f, 0.0767298f, -0.0628977f, 0.205545f, 0.0643059f, 0.065295f, -0.103657f, 0.00217001f, -0.164919f, -0.0878316f, 0.0186642f, -0.121422f, 0.319468f, 0.156759f, 0.0373985f, -0.220828f, -0.114754f, 0.223333f, -0.0510213f, -0.0119776f, 0.0158377f, -0.0423978f, 0.129596f, -0.142533f, -0.052282f, -0.048737f, -0.130711f, -0.223425f, -0.04986f, -0.0197256f, -0.0970124f, -0.146962f, 0.0881066f, 0.0697808f, 0.0219091f, -0.0185382f, 0.220805f, -0.0542064f, 0.149092f, -0.329959f, 0.116408f, -0.259787f, -0.353796f, -0.209713f, 0.0623684f, -0.213268f, 0.0715209f, -0.0346618f, 0.184024f, 0.176675f, 0.0152749f, -0.0440381f, -0.0614312f, -0.0836396f, -0.0344705f, -0.188774f, 0.0824229f, 0.265615f, -0.115591f, 0.0626033f, 0.146015f, -0.0798421f, 0.039245f, -0.162378f, -0.102708f, 0.188164f, -0.0135272f, 0.0245143f, 0.150031f, -0.282874f, -0.132272f, -0.26535f, -0.0437211f, -0.0254619f, -0.215026f, -0.158963f, 0.046012f, -0.244387f, -0.0978645f, 0.184941f, 0.083157f, 0.15104f, 0.431036f, -0.285468f, 0.0273933f, -0.166864f, 0.239595f, 0.157394f, 0.136736f, 0.408963f, -0.320264f, -0.0962735f, -0.16383f, -0.114383f, 0.184821f, 0.0628012f, -0.0787108f, 0.0377255f, -0.0462515f, 0.00685705f, -0.249435f, -0.0499233f, 0.00976634f, -0.307036f, -0.197066f, 0.326158f, 0.0197898f, -0.164291f, 0.146234f, -0.269735f, 0.26385f, -0.00547089f, 0.166018f, 0.0271708f, -0.0271057f, 0.185948f, 0.234983f, 0.205992f, -0.139695f, -0.163934f, -0.0403743f, 0.158788f, 0.113632f, -0.0493964f, -0.0822058f, 0.170519f, 0.0021667f, 0.0676038f, -0.148727f, -0.0918483f, -0.012795f, -0.000904915f, -0.0912294f, 0.00670825f, -0.0468935f, -0.162896f, -0.144942f, 0.0939492f, -0.0579571f, -0.190704f, -0.082148f, 0.154606f, -0.0222946f, -0.277656f, 0.0687263f, -0.172961f, 0.0690557f, -0.071756f, 0.275218f, 0.172711f, 0.0866465f, -0.139232f, -0.0893383f, 0.297678f, -0.050025f, -0.232028f, 0.107053f, -0.055084f, 0.0302937f, -0.0864678f, 0.227649f, 0.0313559f, -0.207066f, 0.157392f, 0.000432f, 0.0917709f, -0.0664844f, 0.0400279f, -0.0614186f, -0.0965934f, -0.169696f, 0.132651f, 0.0559228f, -0.127025f, -0.0944415f, -0.0339894f, 0.138257f, -0.0448905f, -0.0117661f, -0.132685f, -0.0976532f, -0.116375f, 0.00809434f, 0.0469103f, 0.0533453f, -0.0102805f, -0.0481217f, 0.0291082f, -0.00822915f, -0.0971089f, 0.0391686f, 0.313688f, 0.0900846f, 0.15179f, 0.00173565f, -0.132865f, -0.0158336f, -0.0295231f, 0.0546103f, -0.154566f, 0.141948f, -0.0350168f, -0.114173f, -0.0289641f, -0.0800746f, -0.0175808f, -0.0770621f, -0.106934f, 0.133543f, 0.0516644f, -0.000725807f, 0.0134718f, -0.013045f, 0.0123611f, -0.139331f, -0.0862843f, 0.0499943f, -0.0535528f, -0.0384762f, 0.160794f, -0.120072f, 0.217696f, 0.177835f, 0.0468834f, -0.146513f, -0.0128188f, -0.0153278f, -0.0327452f, 0.00904161f, -0.12891f, 0.142387f, -0.0237918f, -0.0900166f, 0.103194f, 0.0340164f, 0.00611563f, -0.0376994f, 0.0742831f, 0.0242082f, -0.0585359f, -0.0567465f, 0.0292504f, 0.149224f, 0.0353951f, -0.0522227f, -0.0509756f, 0.0643409f, 0.0654331f, 0.0686746f, 0.0724647f, 0.125725f, 0.121091f, -0.121594f, 0.00956021f, 0.146888f, 0.0287706f, -0.0238619f, -0.0785541f, 0.13748f, -0.140774f, -0.0365083f, 0.0506057f, 0.165986f, -0.0819779f, 0.0939525f, -0.0057006f, 0.0325572f, -0.021764f, 0.0521594f, -0.0699906f, -0.0741502f, 0.0133763f, 0.148056f, 0.0616614f, -0.0469516f, 0.00443021f, 0.12817f, -0.0645785f, 0.0554003f, -0.0926279f, -0.0220356f, 0.0163022f, 0.148532f, 0.0757959f, 0.0968756f, -0.128675f, -0.0864882f, 0.0987718f, 0.0627446f, -0.148365f, -0.0450275f, -0.0171147f, 0.00238784f, -0.204432f, -0.0326343f, -0.10015f, -0.143289f, 0.146868f, 0.116512f, -0.129923f, 0.061799f, 0.0184247f, -0.0716858f, 0.145607f, 0.0693936f, -0.0249205f, -0.0913975f, 0.0190876f, 0.0743691f, -0.0125914f, 0.00917538f, 0.0111652f, -0.0469614f, 0.0196283f, 0.00815925f, 0.0339297f, 0.159722f, -0.0478077f, 0.0425242f, -0.149724f, -0.064246f, 0.107088f, 0.172925f, 0.0548642f, 0.0140381f, -0.188715f, 0.215345f, 0.0233185f, -0.0641741f, -0.0533012f, -0.0457918f, 0.0552011f, -0.00577928f, -0.0713939f, -0.00875264f, -0.0328875f, -0.162639f, -0.068136f, 0.112937f, -0.0417921f, -0.0240897f, -0.101502f, -0.0508811f, 0.114303f, 0.0606285f, 0.0495977f, -0.1824f, -0.173462f, 0.088885f, -0.0170086f, -0.0240251f, -0.0480441f, -0.167174f, 0.132921f, -0.0810514f, 0.162966f, 0.0659804f, 0.0445293f, 0.0042705f, -0.0174976f, -0.0120106f, -0.11492f, -0.0102957f, 0.0639693f, 0.120846f, -0.00451582f, 0.0765756f, 0.175087f, -0.0485644f, 0.155194f, -0.0800231f, 0.141101f, -0.0766714f, 0.199273f, -0.0365257f, 0.0446484f, -0.0124015f, 0.124547f, 0.0177437f, -0.0285395f, 0.091296f, -0.0833654f, 0.0457072f, 0.102056f, -0.184031f, 0.177966f, 0.009864f, 0.0418256f, 0.092871f, 0.0219267f, -0.0320081f, 0.127977f, -0.0266065f, 0.106638f, -0.0946746f, -0.00834812f, 0.0267112f, -0.013094f, -0.0896755f, 0.00282686f, -0.0116155f, -0.0945198f, -0.101695f, 0.152562f, 0.184615f, -0.0242591f, -0.0760879f, 0.111743f, -0.0715806f, 0.13509f, 0.0047053f, 0.168732f, 0.018946f, -0.124081f, 0.0605901f, -0.0784593f, 0.122328f, -0.0145547f, -0.0290419f, 0.054331f, 0.0548861f, -0.0134776f, -0.161401f, 0.100935f, 0.0348075f, 0.171846f, 0.0917716f, 0.196617f, 0.0158126f, 0.135026f, -0.0287248f, 0.0911696f, 0.00790865f, 0.0900383f, -0.0872234f, 0.0751674f, -0.112308f, 0.0337922f, 0.00861877f, -0.142907f, 0.145783f, -0.0202242f, 0.0519785f, -0.0410182f, -0.0718748f, -0.131356f, -0.0266543f, -0.079985f, 0.0181734f, -0.0727235f, -0.0211797f, 0.177248f, 0.0191607f, 0.0592584f, -0.113001f, -0.0165646f, -0.0264938f, 0.249822f, -0.0108735f, -0.135125f, -0.0828146f, 0.0271987f, 0.0404919f, -0.0757473f, -0.0817378f, 0.0315261f, -0.0800965f, 0.0606058f, 0.108077f, -0.0267474f, 0.028696f, 0.0430892f, -0.0209459f, 0.156775f, -0.0671295f, 0.121493f, -0.0897579f, -0.0783453f, -0.0629217f, -0.0417157f, 0.103154f, 0.0899528f, 0.102442f, -0.101838f, 0.0195807f, -0.164035f, -0.110515f, -0.141396f, 0.0386173f, 0.0042102f, 0.0557199f, 0.0144107f, 0.174485f, 0.0219464f, 0.0793742f, -0.106427f, -0.134078f, -0.111139f, -0.0819731f, -0.0933476f, 0.0868701f, 0.0467395f, -0.00162622f, -0.0644488f, 0.00337579f, 0.0224206f, 0.0644574f, 0.0418531f, 0.0483889f, 0.104783f, 0.141756f, 0.109427f, 0.108904f, 0.102649f, -0.0709043f, -0.0441273f, -0.00296979f, 0.0503424f, 0.182507f, 0.193221f, -0.0930908f, 0.0618071f, 0.147624f, 0.181022f, -0.100693f, 0.0664999f, -0.0338942f, -0.0936353f, 0.022839f, 0.195696f, 0.00124974f, -0.0749942f, 0.0711826f, -0.0372454f, -0.0821713f, -0.1331f, 0.0314274f, -0.0098766f, -0.147073f, -0.188606f, 0.141467f, -0.146516f, 0.0950065f, 0.00154804f, 0.0445063f, 0.0158236f, -0.0239041f, -0.105382f, -0.0533976f, 0.00785434f, -0.0236665f, -0.0658765f, 0.0386993f, 0.0430259f, 0.146891f, -0.0753582f, 0.11454f, 0.188984f, 0.102938f, 0.01279f, 0.106492f, -0.0951411f, -0.206279f, 0.113716f, -0.0239219f, -0.035334f, -0.0628803f, -0.0562101f, -0.0639467f, 0.233697f, 0.0734757f, 0.0290402f, -0.0615913f, -0.0498555f, -0.0282117f, 0.0410888f, -0.00860254f, -0.00991138f, -0.0773788f, 0.0984127f, 0.20035f, -0.0304117f, -0.0358141f, -0.0343748f, -0.050711f, 0.0344559f, 0.0755312f, 0.0362605f, -0.0303401f, 0.0539734f, -0.110694f, -0.0127698f, 0.0427621f, 0.0452207f, -0.105948f, 0.0309432f, -0.0271829f, 0.187035f, 0.0621317f, 0.0115344f, -0.0431882f, 0.0282613f, -0.111156f, -0.0685053f, 0.00700323f, -0.00720577f, -0.0119737f, 0.100559f, 0.109443f, -0.0177307f, 0.114696f, -0.0683923f, 0.0467483f, -0.0532191f, -0.0294009f, -0.0695006f, -0.0361177f, -0.0912779f, 0.100419f, -0.163869f, 0.0249934f, -0.0794077f, 0.183445f, -0.0277448f, 0.309521f, -0.202116f, -0.0621192f, -0.0552445f, 0.101627f, 0.0811852f, -0.118435f, -0.18539f, 0.00751368f, 0.168545f, -0.0837931f, -0.0222294f, 0.173563f, -0.107388f, -0.125531f, -0.080655f, 0.0628712f, -0.0597342f, -0.0480963f, -0.0821937f, -0.0617803f, 0.0365158f, 0.00936929f, 0.0926707f, 0.0209141f, 0.0302322f, 0.0771013f, -0.0392065f, -0.0609191f, 0.0845314f, 0.194771f, -0.00897272f, 0.0274303f, 0.118409f, 0.0904227f, -0.028648f, 0.21953f, -0.0789094f, -0.0798776f, 0.0199958f, 0.0193808f, -0.0542079f, -0.0749643f, 0.0633453f, -0.0536504f, -0.0954091f, -0.220988f, -0.118548f, 0.026773f, -0.0482436f, -0.205323f, -0.0825051f, 0.165209f, 0.105857f, 0.0507112f, -0.291879f, -0.191375f, 0.0600803f, 0.194867f, 0.207424f, 0.0107583f, 0.0157197f, 0.0235299f, -0.0872377f, 0.151843f, -0.0183602f, -0.0516763f, -0.0548697f, -0.156532f, 0.107296f, 0.113736f, -0.198904f, 0.279194f, 0.318045f, -0.0260349f, 0.105835f, -0.172014f, 0.00585878f, -0.169893f, -0.128359f, -0.230276f, -0.207917f, 0.373295f, 0.132095f, -0.294551f, 0.0994064f, 0.345963f, -0.292617f, -0.130842f, 0.0387214f, 0.197857f, -0.0241314f, 0.0496341f, 0.164288f, -0.0614909f, -0.0201285f, -0.0952987f, -0.147429f, 0.229341f, -0.0746604f, 0.178438f, 0.242097f, -0.176033f, -0.208606f, -0.212344f, -0.254244f, -0.0823717f, 0.168344f, 0.125295f, -0.00459898f, 0.029077f, 0.143849f, 0.159995f, 0.0648833f, -0.196766f, -0.218791f, 0.285401f, -0.0692775f, -0.0558676f, -0.0348179f, 0.0789615f, 0.107982f, 0.195957f, -0.0418543f, -0.0127532f, -0.0155128f, 0.258789f, -0.176296f, -0.0992142f, -0.0233141f, -0.0389571f, 0.234198f, 0.0877568f, -0.080424f, 0.0673626f, -0.224797f, -0.0694216f, 0.116124f, 0.0580195f, -0.180412f, -0.217335f, 0.211963f, 0.0975632f, -0.191274f, -0.24931f, -0.0124916f, 0.0785611f, -0.136118f, 0.197804f, -0.00186204f, 0.142658f, 0.0195492f, 0.12691f, 0.0511827f, -0.0143803f, -0.316129f, 0.10479f, -0.354019f, -0.121877f, -0.215379f, -0.0519853f, 0.00173597f, -0.0422881f, -0.0723647f, -0.249327f, -0.237942f, 0.0911903f, 0.261766f, 0.321316f, 0.0772439f, -0.0974493f, 0.0930925f, -0.0439547f, -0.101458f, 0.0833238f, -0.0249046f, -0.0443402f, 0.0784924f, -0.0494021f, -0.025897f, -0.106368f, -0.21731f, 0.216196f, 0.0936067f, 0.121679f, 0.245833f, -0.18394f, -0.189458f, -0.0626717f, 0.185422f, 0.0990726f, 0.266703f, 0.0284726f, -0.266235f, -0.113313f, -0.248905f, 0.219354f, 0.176225f, 0.0884488f, 0.166913f, -0.207838f, -0.15537f, -0.0932883f, -0.118359f, -0.210567f, 0.0549816f, 0.179236f, 0.0398582f, -0.0280907f, 0.11361f, 0.165098f, 0.23232f, 0.000463538f, -0.113308f, -0.11596f, 0.0185977f, 0.170293f, 0.131561f, -0.0809036f, -0.0291002f, -0.158999f, 0.289109f, -0.0655736f, -0.286016f, 0.170837f, -0.0878082f, 0.00605365f, -0.190921f, -0.0928237f, -0.236183f, -0.151367f, 0.365428f, -0.277603f, -0.061971f, -0.291636f, 0.0263214f, 0.0728574f, -0.000367116f, -0.0834745f, -0.260069f, -0.196876f, 0.259263f, 0.12266f, -0.0394739f, 0.00419844f, 0.286211f, -0.0893316f, 0.0994702f, 0.239759f, 0.00536341f, -0.146633f, 0.18836f, -0.153176f, 0.254078f, 0.0821376f, -0.0123987f, 0.0921881f, -0.22895f, -0.0214101f, 0.0548768f, 0.00924246f, -0.0533382f, 0.0264947f, 0.153469f, -0.063957f, -0.28777f, -0.341087f, 0.28005f, -0.0327367f, -0.0196849f, -0.235608f, 0.00648927f, -0.024546f, -0.252593f, -0.0986381f, 0.118887f, -0.000389117f, -0.016142f, 0.0516107f, 0.0146382f, 0.118158f, 0.0619522f, 0.0564928f, 0.0523274f, 0.120452f, -0.13084f, -0.148591f, 0.283264f, 0.248102f, 0.0649939f, -0.0116517f, -0.0939412f, -0.0296346f, 0.271995f, 0.0251815f, 0.0218296f, 0.231853f, 0.136514f, 0.0630175f, -0.0459082f, -0.0344676f, 0.0669852f, -0.0221644f, -0.00755491f, 0.0768507f, -0.093496f, -0.029423f, 0.171348f, 0.0140851f, 0.0524329f, -0.0390022f, -0.0272068f, -0.0498415f, 0.0362897f, -0.043004f, -0.0215778f, 0.0857038f, 0.0916078f, -0.107529f, -0.0353361f, 0.154334f, -0.0878479f, 0.116495f, -0.211017f, 0.0561997f, -0.101469f, -0.0914904f, -0.056733f, -0.0277705f, 0.110781f, -0.0866661f, -0.0202542f, -0.112247f, -0.0114866f, -0.0784373f, 0.075588f, -0.00557349f, -0.0831411f, 0.0722768f, -0.042198f, 0.0562096f, -0.109555f, -0.0586581f, -0.157069f, 0.0549312f, 0.0607192f, 0.131254f, 0.0657374f, -0.0804995f, 0.173506f, 0.0155435f, 0.0473854f, -0.0499239f, 0.126886f, 0.0482615f, 0.0128736f, 0.0564394f, -0.043816f, 0.0464518f, 0.0977338f, -0.00113808f, 0.0561971f, 0.0989831f, -0.0331989f, -0.0201305f, -0.17685f, 0.0685128f, -0.10491f, 0.0350285f, -0.0695799f, -0.0223252f, -0.0885364f, -0.0145905f, 0.072662f, -0.133614f, 0.0990705f, -0.0376099f, -0.0653586f, -0.016811f, 0.119135f, 0.0626318f, -0.092117f, 0.0359917f, 0.0628636f, -0.007789f, -0.063672f, 0.157978f, 0.077222f, -0.0127075f, 0.202072f, 0.0254716f, -0.0237045f, 0.0198278f, -0.0800511f, 0.0845802f, -0.0154621f, 0.0651077f, 0.0595002f, -0.0213515f, -0.0272819f, -0.0166778f, -0.0753502f, -0.0299175f, -0.0611572f, 0.0372214f, -0.04079f, -0.0753792f, 0.00820589f, -0.0437564f, 0.0328295f, 0.134252f, 0.0444792f, 0.0709348f, 0.0305811f, -0.158617f, 0.121797f, -0.179696f, -0.0101862f, -0.0756639f, -0.106812f, -0.051463f, -0.107337f, 0.0909877f, -0.0782409f, -0.142034f, -0.233849f, -0.116898f, -0.0409434f, -0.0489049f, 0.12767f, -0.121985f, -0.0967848f, 0.13245f, -0.0416274f, -0.0964092f, -0.136664f, -0.0212631f, 0.14695f, 0.168145f, 0.0940612f, -0.0118349f, -0.0389066f, -0.000757378f, 0.0805496f, 0.0263189f, 0.0128457f, -0.0674208f, 0.0487244f, 0.140658f, -0.0310239f, -0.156262f, -0.194503f, -0.0413214f, -0.183793f, -0.0169796f, 0.0782416f, -0.0712606f, -0.121248f, -0.0755891f, -0.0996667f, -0.123769f, 0.114754f, 0.0518282f, 0.267354f, 0.0407861f, -0.00324133f, -0.0152772f, 0.0647904f, 0.0566251f, 0.135268f, 0.00847811f, 0.0713262f, -0.026639f, 0.0373696f, 0.0479018f, 0.0336679f, -0.0471113f, -0.0345703f, -0.109028f, -0.0979023f, -0.110868f, -0.15402f, 0.0540533f, 0.102918f, 0.018676f, 0.0208912f, -0.0567702f, 0.00403948f, -0.0427533f, -0.0414311f, -0.139984f, 0.100984f, -0.14284f, 0.133872f, -0.0200234f, -0.103153f, -0.115132f, 0.034861f, 0.115749f, -0.136527f, -0.0874389f, -0.0325685f, 0.0429248f, 0.103406f, -0.0280907f, -0.148727f, -0.032907f, 0.0680602f, 0.0625013f, -0.0744614f, -0.0201179f, 0.0806128f, -0.00631686f, 0.0525379f, -0.152788f, -0.0269948f, 0.0752684f, -0.063037f, 0.0325698f, -0.108655f, -0.0149019f, 0.0707674f, 0.153578f, -0.0642226f, 0.0976119f, 0.00793008f, 0.0395198f, 0.0142784f, -0.0725905f, 0.0153463f, 0.0125841f, 0.0829461f, -0.0637994f, -0.0598462f, -0.0166078f, -0.0461461f, 0.0415429f, -0.0995773f, 0.180369f, 0.0336745f, -0.0714087f, 0.0442718f, 0.0422094f, 0.066482f, -0.149777f, -0.120435f, -0.0873266f, 0.0928931f, 0.0999695f, -0.0142122f, 0.0732814f, 0.155422f, -0.0191566f, 0.0647286f, -0.0711336f, -0.135384f, 0.129972f, -0.0354778f, -0.189017f, 0.0952733f, 0.163029f, 0.0433849f, 0.029263f, -0.0574659f, 0.00958303f, 0.0842656f, -0.0280923f, 0.150836f, -0.0401507f, -0.15049f, 0.00892211f, 0.0245306f, 0.134883f, 0.138791f, 0.241553f, 0.0285078f, 0.132287f, -0.0491f, -0.182568f, -0.0690248f, -0.0175614f, 0.0155923f, 0.145041f, 0.00810825f, 0.206666f, 0.12419f, 0.000282166f, -0.0429254f, -0.157567f, 0.152469f, -0.0289974f, 0.0244394f, 0.0629388f, 0.0648357f, -0.0327941f, -0.010834f, 0.0633369f, 0.140232f, -0.0185712f, 0.00481353f, -0.0149009f, -0.0233301f, 0.16813f, -0.11214f, -0.012258f, -0.0652515f, -0.0649246f, -0.155049f, -0.0888436f, -0.0777453f, 0.116025f, 0.147077f, 0.189327f, 0.0731288f, 0.193252f, -0.0103333f, -0.0675197f, -0.0577781f, 0.100901f, 0.126806f, 0.01545f, -0.0132554f, 0.135275f, 0.238816f, -0.0533923f, -0.0685877f, 0.0717158f, -0.0931473f, 0.0597145f, 0.187761f, 0.0787029f, -0.259773f, 0.0641584f, 0.230492f, 0.126257f, 0.0282633f, -0.0437215f, -0.159803f, -0.125447f, -0.0871963f, -0.0878901f, -0.017518f, -0.259367f, 0.0244579f, 0.102232f, -0.119518f, 0.00166526f, -0.0294047f, 0.128019f, -0.155701f, -0.212854f, 0.216554f, -0.0305268f, -0.13122f, -0.115495f, 0.114283f, 0.0110208f, 0.0807449f, -0.0136721f, 0.134014f, 0.293276f, -0.110823f, -0.0240435f, -0.0818436f, -0.124581f, 0.0824624f, 0.0259864f, -0.0625978f, -0.111449f, -0.166505f, -0.0368015f, 0.0453097f, 0.0307672f, -0.0203597f, -0.194061f, -0.0166662f, -0.0257211f, 0.0427164f, -0.104032f, 0.145918f, 0.0175844f, -0.0948935f, 0.0626179f, -0.212638f, 0.0838303f, 0.084399f, 0.000341877f, 0.0795855f, 0.197683f, -0.0572734f, -0.00270593f, 0.184527f, -0.210597f, -0.150718f, 0.0059784f, 0.0268788f, -0.0845667f, -0.177921f, -0.0781564f, 0.122821f, -0.295212f, 0.108446f, -0.0631499f, 0.0903978f, 0.0376947f, -0.0757957f, -0.0494813f, -0.134634f, 0.0383043f, 0.069054f, -0.102149f, 0.00539339f, -0.133261f, -0.00803446f, -0.0911564f, -0.146694f, -0.0582368f, -0.235716f, -0.143642f, 0.108384f, 0.0728035f, -0.141136f, -0.0910358f, -0.00937876f, -0.0120724f, 0.0742083f, -0.0695668f, 0.143367f, 0.149601f, -0.049925f, -0.0906218f, 0.0128504f, 0.020253f, -0.223714f, -0.0636823f, -0.226459f, 0.0144802f, 0.00750404f, -0.255654f, 0.145829f, 0.0231039f, 0.21323f, 0.129398f, -0.111334f, 0.137788f, -0.0387997f, 0.0894595f, 0.0509601f, -0.10615f, -0.259435f, -0.161871f, 0.0654279f, -0.00484704f, -0.155946f, -0.151433f, -0.122743f, 0.119947f, 0.131163f, 0.0397613f, -0.293182f, -0.0393652f, 0.0396002f, 0.0739669f, 0.160726f, -0.177774f, -0.0312997f, -0.081026f, 0.0794344f, -0.0290907f, 0.0236441f, -0.00739172f, 0.0717602f, 0.0591172f, -0.0108486f, -0.067989f, -0.176337f, 0.080346f, -0.0101702f, -0.023996f, 0.0454628f, 0.0742417f, 0.0230161f, 0.107677f, 0.0356299f, -0.119933f, 0.00597064f, -0.0824815f, 0.261236f, -0.177483f, 0.0329475f, -0.258445f, -0.150487f, -0.0964127f, -0.12776f, 0.0137992f, -0.0237729f, -0.151652f, 0.151576f, 0.0401796f, -0.200537f, 0.0718776f, 0.0426156f, -0.0384849f, 0.12618f, -0.0347955f, 0.10134f, -0.0739255f, 0.202767f, -0.118575f, -0.0155796f, 0.139383f, 0.240114f, -0.0505958f, 0.0685934f, 0.180565f, -0.233615f, 0.156814f, 0.233934f, -0.0498448f, -0.0286265f, 0.110353f, 0.0366369f, -0.229352f, 0.0811015f, 0.00688823f, 0.191276f, 0.120998f, -0.0229412f, 0.122364f, 0.133866f, -0.0954539f, -0.201138f, -0.0120603f, -0.0126358f, 0.121016f, 0.147643f, 0.0852221f, -0.0777672f, -0.241722f, 0.229627f, -0.20315f, 0.0361678f, 0.103367f, 0.113091f, -0.0441779f, -0.248929f, 0.246311f, -0.123218f, 0.102894f, 0.0388391f, 0.0194499f, 0.230162f, -0.096409f, -0.000504597f, 0.274894f, -0.0469533f, 0.111989f, -0.0165575f, -0.00307557f, 0.0533025f, 0.0704235f, 0.104705f, 0.0407992f, 0.0936f, 0.112192f, 0.0450357f, -0.214171f, 0.133126f, 0.09467f, -0.159746f, -0.078628f, -0.0383372f, -0.227947f, 0.170925f, 0.139822f, -0.0833367f, 0.126185f, 0.0179993f, -0.0855914f, 0.0659728f, -0.0996862f, -0.165453f, 0.178285f, -0.003016f, -0.100848f, 0.0014043f, -0.0310917f, -0.0499764f, 0.157279f, -0.106836f, 0.244424f, -0.00756592f, 0.0341909f, -0.109928f, 0.0679662f, -0.0328566f, 0.314406f, 0.147291f, -0.115032f, -0.107675f, -0.11509f, 0.0365924f, -0.0908504f, 0.0070746f, -0.178125f, 0.282213f, 0.0623548f, 0.021299f, 0.250964f, -0.320759f, -0.0107989f, 0.118988f, 0.175294f, 0.0505741f, 0.137061f, -0.0835159f, -0.136984f, 0.150117f, -0.0921302f, -0.0576703f, 0.121679f, 0.0357115f, -0.226148f, 0.00902412f, -0.125448f, -0.0793252f, -0.0367336f, -0.139178f, 0.0242927f, 0.0667821f, -0.0579211f, 0.0370285f, -0.135846f, -0.0167798f, 0.20995f, -0.0709525f, -0.100314f, -0.185867f, -0.0632467f, -0.123532f, 0.203701f, -0.181139f, 0.181262f, -0.236351f, -0.0499668f, 0.138481f, 0.259909f, -0.111025f, 0.207648f, -0.272467f, 0.20023f, -0.0909678f, 0.161598f, 0.00360931f, -0.323602f, 0.00320773f, 0.0578896f, 0.00245778f, 0.125938f, -0.107858f, 0.0608992f, 0.182443f, 0.0741502f, 0.0871283f, 0.0285931f, -0.0704548f, 0.110484f, 0.0306425f, 0.263415f, 0.127238f, -0.178421f, -0.00229964f, -0.120789f, -0.243886f, 0.144839f, 0.0868171f, 0.0747637f, -0.0302647f, -0.0741965f, -0.105788f, 0.149778f, -0.204164f, -0.0938534f, -0.0539272f, 0.258575f, 0.135683f, -0.228459f, 0.14654f, 0.210951f, 0.153927f, 0.311741f, 0.0198829f, -0.311324f, -0.00214234f, 0.0335641f, -0.166461f, 0.013939f, 0.161731f, 0.148873f, -0.0496261f, -0.23916f, -0.118108f, 0.146794f, 0.168803f, -0.0696328f, 0.283207f, -0.0106865f, 0.249863f, 0.210558f, 0.210516f, 0.0114713f, 0.0889559f, -0.214042f, 0.081818f, -0.11793f, 0.0607923f, -0.204477f, 0.180587f, -0.263113f, 0.177464f, -0.173976f, -0.113307f, -0.268919f, -0.083577f, 0.0703171f, -0.0568226f, -0.0553172f, 0.111731f, 0.0565842f, 0.0505556f, -0.0712442f, -0.0754225f, 0.0859166f, -0.125402f, -0.081119f, -0.0115825f, -0.111126f, 0.0832054f, 0.159848f, -0.130521f, -0.109094f, -0.116607f, -0.0012039f, 0.335223f, -0.0827555f, -0.142066f, 0.20867f, 0.148209f, -0.237933f, -0.0158386f, -0.322304f, -0.220913f, 0.0211544f, -0.0770571f, 0.00346335f, -0.060375f, -0.147359f, -0.167659f, 0.0228895f, 6.22828e-06f, -0.294634f, 0.00901956f, 0.15787f, -0.1199f, 0.00471066f, 0.0851012f, -0.0378047f, -0.0915258f, -0.247528f, 0.044892f, -0.100823f, 0.0192763f, 0.126998f, -0.0110085f, 0.0533933f, -0.171033f, 0.0406529f, -0.254114f, -0.0564974f, 0.156159f, 0.0742441f, 0.132657f, -0.15615f, -0.163996f, 0.0659052f, 0.1061f, 0.0454468f, 0.0915327f, 0.250553f, 0.102054f, 0.153317f, 0.0982075f, -0.121104f, -0.0582351f, 0.0171499f, -0.0749699f, -0.00901737f, -0.123817f, 0.089427f, 0.0856671f, -0.0998002f, -0.129746f, 0.0710259f, -0.0366555f, 0.107477f, 0.0540252f, -0.0791548f, 0.0889265f, 0.0272609f, -0.145711f, 0.0811309f, -0.0634651f, -0.149867f, 0.153704f, 0.11712f, -0.00372983f, -0.142749f, 0.188818f, 0.0779357f, 0.19365f, 0.1603f, 0.0910158f, -0.173072f, -0.104882f, -0.191814f, -0.0383519f, 0.237104f, -0.0177224f, -0.0328186f, -0.236392f, -0.117744f, -0.134497f, 0.140383f, 0.0228382f, 0.0877025f, -0.00195929f, 0.00907818f, -0.0621174f, 0.131692f, 0.194396f, 0.119203f, 0.055661f, 0.176626f, 0.0216149f, -0.0161472f, 0.0918544f, 0.0666585f, -0.0916678f, -0.0050781f, 0.0693981f, -0.122519f, -0.00259179f, -0.03033f, -0.0157039f, 0.0248291f, 0.201487f, 0.114749f, 0.0681468f, 0.116076f, 0.0712274f, 0.0616975f, 0.0340446f, -0.0309051f, -0.00260626f, 0.16699f, 0.287696f, -0.141929f, 0.0242284f, -0.0525068f, 0.0205279f, -0.060964f, 0.106661f, -0.0733513f, 0.222448f, 0.0492104f, -0.00290937f, 0.103094f, 0.0317992f, 0.0403186f, 0.10122f, 0.0892774f, -0.135881f, 0.105952f, -0.0719557f, 0.0423372f, -0.0131642f, -0.0998754f, 0.0459529f, 0.0104205f, -0.12425f, 0.15459f, -0.13479f, -0.110503f, 0.172367f, -0.158808f, 0.019441f, -0.137763f, 0.208739f, 0.0325391f, -0.228115f, -0.0117682f, 0.0470581f, -0.113829f, -0.0955626f, 0.108575f, 0.107104f, 0.128827f, -0.0431504f, -0.0450749f, -0.119082f, 0.114598f, -0.0683766f, -0.082896f, -0.0725229f, -0.197452f, -0.122664f, -0.0309746f, 0.142502f, 0.103659f, -0.0754779f, 0.0302166f, -0.0653688f, 0.141629f, 0.0597415f, -0.058944f, -0.0672685f, 0.0948298f, 0.0885065f, 0.00145538f, -0.00881966f, -0.223143f, -0.0173392f, -0.00907626f, -0.153088f, -0.139541f, -0.0793513f, -0.020971f, -0.051123f, -0.0928351f, -0.0726519f, 0.155745f, 0.0579854f, 0.101305f, 0.000704459f, 0.0230552f, -0.0277863f, 0.104862f, -0.227309f, -0.146485f, -0.0750845f, 0.0858074f, -0.103169f, -0.229635f, 0.0746293f, -0.0892769f, -0.0985022f, 0.187825f, 0.053662f, -0.0808329f, 0.205999f, -0.0836067f, 0.10183f, -0.00682401f, -0.0247513f, -0.0727403f, -0.125711f, 0.152874f, -0.254459f, 0.00452456f, 0.124284f, -0.0110582f, -0.105287f, 0.0266977f, -0.0752113f, -0.024139f, -0.0110425f, -0.0284848f, 0.0496544f, -0.00437056f, -0.00691156f, 0.23617f, 0.0655934f, 0.077737f, -0.0960507f, -0.0423671f, 0.257924f, 0.0176592f, 0.0613872f, -0.194935f, -0.1568f, -0.11564f, -0.0923654f, -0.234022f, -0.235753f, -0.107447f, -0.0381049f, -0.0176555f, -0.0381917f, -0.0350936f, -0.0580639f, -0.20449f, 0.0896137f, 0.0827087f, 0.0513764f, 0.0622172f, -0.00159451f, 0.167711f, 0.208763f, -0.0489446f, -0.211526f, 0.128126f, 0.0431293f, -0.00514987f, -0.0876526f, -0.227166f, -0.14169f, 0.00952322f, 0.0228845f, -0.0183172f, 0.11925f, 0.0275043f, 0.0822689f, -0.0660003f, 0.124347f, -0.0436243f, -0.119844f, -0.0748631f, 0.0458525f, -0.0114292f, 0.0973013f, -0.235443f, -0.0610106f, 0.162022f, 0.0119494f, 0.200215f, 0.0472509f, 0.136151f, 0.143527f, -0.149954f, -0.248959f, -0.117207f, -0.172034f, 0.095745f, -0.0428733f, -0.10008f, 0.08218f, -0.0524113f, 0.022068f, -0.221372f, -0.129901f, 0.225811f, 0.188439f, -0.124723f, 0.233276f, -0.134388f, -0.132242f, -0.240925f, 0.0399548f, 0.0428472f, 0.00260607f, 0.169907f, -0.140738f, 0.0289864f, -0.221674f, 0.126023f, -0.0249055f, -0.13115f, -0.0481678f, 0.0641019f, -0.0400267f, 0.107471f, -0.101388f, -0.109418f, -0.236312f, -0.170398f, -0.0179616f, -0.240874f, -0.0432252f, 0.0345408f, 0.03176f, -0.129148f, -0.0719657f, -0.110369f, -0.060091f, -0.192133f, 0.102273f, -0.107633f, 0.34783f, 0.0696884f, -0.167724f, -0.269577f, -0.00821127f, 0.0535087f, 0.00990142f, -0.29149f, -0.135092f, 0.0476952f, 0.173877f, -0.0795445f, -0.203947f, 0.0719522f, 0.0228148f, 0.00364183f, 0.0563347f, 0.252294f, 0.0134225f, 0.0869713f, 0.101118f, -0.0324584f, -0.267649f, -0.183108f, 0.0391716f, -0.035034f, -0.163194f, -0.0233206f, 0.0759536f, 0.189901f, -0.159997f, 0.100993f, 0.0455912f, -0.0794707f, 0.0119877f, -0.181278f, 0.087949f, -0.178418f, 0.190976f, 0.204699f, 0.22785f, -0.115286f, 0.113255f, -0.258882f, 0.00388987f, -0.0903167f, 0.206888f, -0.163175f, 0.236257f, 0.206015f, -0.0484038f, -0.0579978f, 0.0654988f, 0.14756f, 0.0422452f, 0.179971f, -0.0492173f, 0.0949221f, -0.0162375f, 0.244075f, -0.112303f, -0.0233973f, 0.187641f, -0.250852f, -0.0303823f, -0.197938f, -0.0723348f, 0.00279027f, -0.0370528f, 0.0725984f, -0.155215f, -0.00544447f, 0.119407f, -0.0312264f, -0.0380913f, -0.0285948f, -0.0525116f, -0.0670504f, -0.106606f, -0.0368481f, -0.0898971f, 0.0316414f, -0.0140424f, 0.199016f, 0.0208277f, 0.292219f, -0.0581125f, -0.185389f, 0.0544051f, -0.16348f, 0.0439595f, 0.242146f, -0.00190569f, 0.0850863f, -0.136862f, -0.168388f, 0.00527986f, -0.259502f, -0.16734f, 0.061928f, -0.0388345f, 0.1845f, -0.127012f, 0.0310295f, -0.000654373f, 0.027921f, 0.0256935f, -0.216966f, -0.0534513f, -0.273343f, -0.0302063f, 0.0554637f, -0.0736411f, 0.106954f, 0.0862941f, -0.0159507f, -0.0222154f, -0.0892427f, 0.0775608f, 0.0326867f, -0.296815f, -0.0340406f, -0.0394826f, -0.0903227f, 0.254437f, 0.0159144f, 0.247216f, -0.185353f, 0.171293f, -0.145903f, -0.245287f, -0.122737f, -0.0530921f, 0.250831f, -0.128526f, -0.0715521f, 0.280141f, 0.143187f, 0.0242397f, -0.0330453f, -0.301852f, 0.0288833f, -0.0205947f, -0.0592311f, -0.112925f, 0.118833f, 0.0974425f, -0.0317398f, -0.0918027f, -0.113849f, -0.160143f, 0.124637f, 0.136351f, 0.215216f, -0.241071f, 0.225011f, -0.0387333f, 0.045675f, 0.196312f, -0.240863f, -0.00296512f, 0.0989606f, -0.260698f, 0.136676f, -0.0652692f, 0.148614f, -0.248517f, 0.070348f, 0.190428f, 0.144657f, 0.113186f, -0.196028f, -0.14226f, 0.176432f, -0.0568214f, -0.221277f, -0.0014877f, 0.267904f, -0.148827f, 0.131539f, 0.052893f, 0.123392f, 0.318355f, 0.192873f, 0.220771f, 0.110018f, 0.0777882f, 0.134146f, 0.029825f, -0.114534f, -0.0709195f, -0.208644f, 0.0668043f, -0.128396f, -0.0204662f, 0.119103f, -0.0281023f, 0.020412f, 0.0158863f, -0.119826f, -0.121847f, 0.00347424f, -0.0662873f, -0.218482f, 0.0384158f, -0.189299f, 0.0586039f, -0.0822848f, -0.00046968f, 0.0130632f, -0.15557f, 0.00957718f, -0.00578703f, 0.0732023f, 0.104041f, 0.218513f, 0.0717098f, 0.0526647f, 0.00290131f, 0.114463f, 0.0389184f, 0.0508448f, -0.112943f, 0.109888f, -0.0803504f, -0.102595f, -0.0385924f, 0.138532f, -0.128056f, 0.0114036f, -0.0632744f, -0.00318467f, -0.0932695f, 0.0788218f, -0.0234376f, 0.170666f, 0.187812f, 0.0505775f, 0.0495331f, 0.101149f, 0.00484498f, 0.019059f, -0.145798f, -0.147502f, -0.0594863f, -0.118706f, -0.0975932f, -0.125989f, 0.0980405f, 0.0890613f, 0.0104627f, 0.0683158f, -0.0761882f, -0.0307326f, 0.0605891f, 0.174114f, 0.0215385f, 0.03637f, -0.0888081f, 0.0687157f, -0.14574f, 0.150437f, 0.0611535f, -0.145028f, -0.0604416f, -0.0249063f, 0.0716703f, -0.041992f, -0.0236885f, -0.0989832f, -0.242879f, -0.0336792f, -0.0225376f, 0.0798948f, 0.16416f, 0.0860233f, 0.0254778f, -0.0856874f, -0.117163f, 0.0411839f, -0.189088f, -0.0563656f, 0.0334453f, -0.136319f, 0.0915998f, -0.0246863f, -0.0554337f, -0.0493804f, -0.0686342f, -0.0676474f, -0.025897f, 0.0565696f, -0.015919f, 0.183671f, 0.0840795f, -0.0490845f, -0.158779f, -0.0672653f, -0.116965f, 0.179823f, 0.0828257f, -0.0968176f, -0.0898522f, 0.0901306f, 0.0310482f, 0.154981f, 0.0681568f, 0.112549f, 0.137375f, -0.0256443f, 0.168034f, 0.143192f, -0.0974303f, 0.138865f, 0.044201f, -0.0949435f, 0.0383934f, -0.160986f, -0.0725332f, 0.0416353f, 0.0971946f, 0.0872278f, 0.125341f, -0.0396651f, 0.0708903f, -0.066065f, 0.185875f, 0.211464f, 0.0906325f, 0.100305f, 0.176773f, 0.163016f, -0.113255f, -0.127721f, -0.106389f, -0.0173399f, 0.187152f, 0.162205f, 0.000728918f, 0.110759f, 0.144095f, 0.0959371f, 0.00650284f, 0.111393f, 0.120838f, 0.175291f, 0.0140156f, -0.0410732f, -0.0591052f, 0.0163357f, -0.116889f, 0.000160199f, -0.14478f, -0.181425f, -0.0964878f, 0.137595f, 0.0672042f, 0.119934f, -0.044636f, 0.0533292f, 0.0578577f, 0.0203036f, -0.141291f, -0.125551f, -0.0244709f, 0.129111f, -0.143079f, 0.1259f, -0.052626f, 0.0294516f, 0.0197823f, -0.121906f, -0.036431f, -0.019765f, -0.0666938f, -0.00938123f, 0.121732f, 0.204163f, 0.226057f, -0.0434607f, 0.148115f, -0.00137274f, 0.0916754f, -0.0149224f, 0.0731728f, -0.0361258f, 0.0594999f, -0.170638f, 0.161267f, -0.111466f, 0.068071f, 0.182773f, 0.064455f, 0.0502007f, -0.11324f, -0.127352f, -0.0180862f, 0.192412f, -0.142667f, 0.0993482f, 0.00133966f, 0.119942f, 0.0217044f, -0.0377566f, -0.0885186f, -0.105636f, -0.0268073f, -0.0600002f, 0.028101f, 0.0752244f, 0.0849045f, 0.131019f, -0.0209802f, 0.0948669f, -0.241465f, 0.0242094f, -0.0519699f, 0.0047125f, -0.0301456f, 0.0219862f, 0.0637431f, -0.0795503f, -0.0776066f, -0.0332598f, -0.0112268f, 0.0578542f, -0.0237995f, 0.0481265f, -0.0470293f, 0.0263004f, -0.0638056f, -0.129042f, -0.0348432f, -0.0534749f, 0.0381679f, 0.120167f, 0.169614f, 0.00362121f, -0.0385204f, -0.165917f, -0.0955168f, 0.0673444f, 0.0144578f, 0.00295288f, 0.123324f, 0.141225f, -0.119838f, 0.00535633f, 0.157549f, 0.0226215f, -0.126501f, 0.12812f, 0.163067f, 0.102196f, 0.035356f, -0.109618f, -0.134143f, -0.0674668f, 0.134604f, -0.00743621f, 0.188801f, -0.083859f, 0.0694568f, 0.0069658f, -0.101432f, 0.0387129f, 0.0547621f, -0.0386344f, 0.0494242f, 0.0162979f, 0.0327615f, 0.0833604f, -0.276951f, 0.0559764f, -0.0156816f, -0.0379199f, -0.0352123f, 0.0793239f, -0.19562f, -0.0778808f, 0.0391925f, 0.0325123f, 0.230447f, 0.0414009f, -0.103303f, -0.0426658f, 0.0809686f, 0.0321804f, 0.0482865f, 0.150833f, 0.115705f, 0.0280366f, 0.210093f, 0.0830027f, -0.186768f, -0.129344f, 0.145781f, -0.14922f, 0.0655503f, 0.12204f, 0.241424f, -0.0080084f, -0.185347f, -0.0708715f, -0.211048f, 0.00172335f, -0.113759f, 0.0994566f, -0.190975f, -0.123409f, -0.0458256f, -0.127629f, -0.033723f, 0.204273f, 0.0161562f, -0.164813f, -0.0630561f, -0.0598002f, 0.0936936f, 0.185986f, -0.00788934f, -0.112795f, 0.0332202f, 0.0385305f, 0.128952f, -0.0700142f, -0.0734995f, -0.00792632f, 0.0871905f, -0.0317281f, -0.191283f, 0.13087f, 0.0729487f, -0.272816f, 0.00479664f, -0.0945048f, 0.135215f, -0.0564642f, 0.146812f, 0.072073f, -0.210097f, 0.282374f, 0.232369f, 0.0882899f, 0.0935916f, 0.0373436f, -0.171597f, 0.149796f, 0.0821015f, 0.0876769f, 0.000254929f, 0.139292f, -0.151414f, -0.29576f, -0.0552237f, -0.0512298f, 0.0590985f, -0.0295193f, -0.177444f, -0.226039f, -0.243516f, -0.0501208f, 0.0134229f, 0.0656841f, -0.0144516f, 0.291772f, 0.274621f, -0.105936f, 0.126293f, -0.027463f, 0.0499809f, -0.135246f, 0.0283503f, 0.0763693f, 0.0486961f, -0.155367f, 0.186429f, 0.266538f, 0.183935f, -0.257831f, -0.224745f, 0.120188f, -0.119578f, -0.0885674f, 0.119534f, 0.171226f, 0.0525182f, 0.261778f, -0.212919f, -0.110256f, 0.0177006f, 0.246536f, -0.149187f, 0.118151f, -0.11339f, 0.0350686f, 0.276095f, -0.219852f, 0.0284932f, -0.168696f, 0.0284069f, 0.0458592f, 0.211387f, -0.0820061f, 0.131006f, 0.0952916f, -0.0725044f, 0.164357f, 0.0515647f, 0.121065f, -0.0534699f, -0.108665f, -0.0374199f, 0.084192f, 0.0583136f, 0.230685f, 0.0827802f, 0.175598f, 0.122251f, -0.104616f, -0.0736531f, 0.0953428f, 0.00649888f, -0.0853119f, 0.168572f, -0.0834611f, -0.0645025f, -0.00302098f, -0.0904428f, -0.104064f, 0.153717f, 0.113246f, 0.0612854f, -0.177893f, -0.180445f, 0.196633f, 0.152918f, 0.0275016f, 0.00945029f, -0.116901f, -0.0260597f, -0.113282f, -0.0259789f, -0.126382f, 0.00610279f, 0.0778415f, -0.129388f, 0.099943f, 0.0471982f, -0.013495f, -0.0699102f, 0.147208f, 0.154461f, -0.0557462f, -0.123466f, -0.0760136f, 0.0840566f, 0.23337f, 0.0113301f, -0.130651f, 0.194286f, 0.204309f, 0.0275968f, -0.214152f, 0.0945139f, 0.189888f, 0.0136734f, 0.115922f, 0.161128f, -0.175815f, 0.300739f, -0.0927596f, -0.110795f, -0.0787472f, -0.0750186f, -0.113992f, -0.186631f, -0.0178003f, -0.0263772f, -0.156803f, 0.0795593f, 0.113367f, 0.218987f, 0.0440185f, 0.141774f, 0.0971181f, -0.0380376f, -0.0568023f, -0.259684f, 0.107515f, 0.111901f, -0.0281696f, -0.038488f, 0.0728376f, -0.0835217f, 0.0684029f, 0.128425f, 0.0531212f, 0.0438465f, -0.23284f, 0.26378f, -0.106521f, 0.233429f, 0.184197f, 0.106453f, -0.287215f, 0.25295f, 0.17211f, 0.151645f, 0.0391101f, 0.00720723f, -0.0243363f, -0.136497f, -0.120228f, 0.0148944f, -0.127598f, 0.00634615f, 0.16598f, 0.0317864f, 0.0144623f, 0.00965016f, -0.0965661f, 0.0124175f, 0.121129f, -0.0360725f, 0.0627131f, 0.12219f, 0.0909165f, -0.129829f, -0.0810041f, -0.232226f, -0.0144397f, 0.133521f, -0.108279f, -0.0283463f, -0.11385f, 0.0580759f, -0.125368f, 0.0107256f, 0.183169f, 0.0278522f, 0.0120141f, -0.0563827f, 0.0116394f, -0.0656121f, -0.00946882f, -0.0609412f, -0.133818f, 0.117971f, -0.100722f, 0.0179506f, -0.0607237f, 0.237782f, 0.150895f, 0.11377f, 0.0570125f, -0.07089f, 0.178315f, -0.179634f, 0.0896663f, 0.0609025f, -0.0767355f, 0.0187393f, 0.0531494f, -0.159265f, -0.168538f, -0.150363f, 0.114788f, 0.0833179f, -0.0872073f, -0.142358f, -0.0224991f, -0.012993f, -0.0848662f, 0.0117129f, -0.263996f, -0.0868396f, -0.0790802f, 0.104774f, 0.18535f, 0.153979f, -0.161331f, -0.0244474f, -0.172998f, -0.0677059f, 0.177926f, 0.0130412f, 0.102328f, 0.0928013f, -0.149356f, 0.125638f, 0.0192017f, 0.162733f, 0.20631f, -0.136184f, 0.23032f, -0.0606225f, 0.0220418f, -0.0809726f, 0.0578064f, -0.191748f, -0.0172027f, -0.0572699f, 0.182855f, 0.0324596f, -0.00753367f, -0.0312247f, 0.0539697f, 0.0961501f, 0.17195f, 0.0184529f, 0.182805f, 0.00982441f, 0.245253f, -0.104409f, -0.15368f, -0.00875316f, -0.0678773f, 0.0337034f, 0.0107475f, 0.0626251f, 0.0181689f, -0.000370158f, 0.144312f, 0.0437109f, 0.0545887f, 0.144289f, 0.103311f, 0.218529f, 0.234742f, -0.0354948f, 0.157082f, -0.115887f, 0.0838067f, 0.0505808f, -0.132868f, -0.0357566f, -0.0672686f, 0.0621118f, 0.209738f, -0.10799f, 0.094487f, 0.244379f, -0.0857956f, 0.185283f, -0.173709f, -0.154571f, 0.0967471f, 0.0475768f, -0.157356f, 0.00543733f, 0.160994f, -0.0477196f, 0.0728635f, -0.0719851f, -0.0531872f, -0.174755f, -0.0143843f, -0.0592257f, 0.0949311f, 0.00588531f, -0.227318f, 0.0879378f, 0.0473591f, 0.0215507f, -0.144181f, 0.152949f, 0.0151424f, -0.140917f, -0.102899f, -0.0564315f, 0.0226317f, -0.0636536f, 0.0900382f, 0.0720577f, 0.0433091f, -0.0347734f, 0.187994f, -0.0915214f, -0.0288155f, 0.228385f, 0.104514f, 0.0544573f, -0.0460884f, 0.067772f, 0.238234f, 0.035983f, -0.164359f, 0.0973369f, -0.0709806f, 0.0859652f, 0.0948109f, 0.125413f, -0.106379f, 0.224636f, -0.136995f, 0.00932376f, -0.232379f, 0.104766f, -0.0505021f, -0.190345f, 0.00445468f, 0.0867948f, -0.226175f, -0.17206f, 0.207705f, -0.0801018f, -0.0723112f, -0.137419f, -0.200355f, 0.0639828f, 0.0328713f, 0.0714018f, -0.108866f, 0.0472445f, -0.256374f, 0.0939654f, -0.262771f, -0.191758f, 0.0318288f, -0.151777f, 0.119529f, 0.198891f, 0.0758104f, -0.0598461f, 0.162173f, -0.00393129f, 0.132012f, 0.197417f, -0.166751f, 0.116437f, -0.0808856f, 0.157211f, -0.104816f, 0.103447f, 0.0382908f, 0.0984576f, 0.1779f, 0.251505f, 0.044288f, 0.0708538f, 0.200568f, 0.276807f, 0.147606f, 0.00446208f, -0.0365709f, 0.0676623f, 0.0738986f, -0.153067f, 0.102487f, -0.0726094f, 0.0144769f, 0.194438f, 0.0373626f, 0.195521f, -0.159745f, 0.0481338f, 0.0468031f, 0.0550593f, 0.237322f, 0.0521974f, 0.013685f, 0.077794f, -0.143092f, 0.180439f, 0.0336004f, 0.0256816f, -0.122986f, 0.000964867f, -0.207448f, 0.0880206f, 0.109297f, -0.243521f, -0.0937235f, 0.0301145f, 0.221234f, -0.00477909f, 0.155166f, 0.0893725f, 0.070218f, -0.0361211f, 0.101452f, -0.0106347f, 0.0261585f, -0.0180212f, 0.248565f, -0.069344f, -0.032995f, 0.0485428f, 0.261067f, 0.106099f, 0.0548501f, 0.144817f, -0.156263f, -0.0246025f, 0.0327643f, -0.0083287f, 0.00935242f, -0.169011f, 0.0112726f, -0.0761541f, -0.00409789f, -0.0562577f, 0.0916529f, 0.138618f, -0.146979f, -0.123508f, 0.0560357f, -0.13006f, -0.0615997f, 0.0887223f, -0.108078f, 0.122795f, -0.172033f, -0.114226f, -0.133558f, 0.101354f, 0.303087f, -0.0606648f, -0.00762097f, 0.305907f, 0.202344f, 0.109729f, -0.0116045f, 0.1457f, 0.0997194f, 0.0918237f, 0.209251f, -0.0165121f, 0.1421f, 0.186923f, -0.251425f, 0.166956f, 0.173358f, -0.0685143f, -0.011561f, -0.124494f, -0.0941224f, 0.0475932f, -0.0610552f, 0.157964f, 0.31169f, -0.304895f, 0.091371f, 0.262967f, 0.256097f, 0.196767f, 0.212291f, -0.111531f, -0.152819f, -0.191318f, -0.311707f, 0.0698184f, -0.264309f, 0.0142711f, 0.092614f, 0.180794f, -0.299644f, -0.0292698f, -0.187195f, -0.00773323f, 0.0767535f, 0.168046f, -0.185772f, 0.107949f, 0.232271f, 0.251283f, 0.241289f, 0.0210049f, 0.0391003f, 0.0849076f, 0.0314156f, 0.119066f, -0.0484007f, 0.0114289f, 0.15752f, -0.0322229f, -0.20834f, 0.19966f, 0.126258f, 0.19038f, -0.0275188f, -0.124443f, 0.131219f, -0.256641f, -0.14015f, -0.226357f, -0.188442f, -0.0961272f, 0.0243419f, -0.442598f, -0.164865f, -0.175555f, -0.0902979f, 0.0963931f, -0.207277f, -0.084373f, -0.176908f, -0.107587f, -0.140236f, -0.0895022f, 0.159212f, -0.0702688f, -0.0653129f, -0.190991f, 0.155585f, -0.0973414f, -0.317455f, 0.200547f, 0.163403f, 0.0137154f, -0.0649888f, 0.211797f, -0.120511f, 0.0510978f, 0.0181023f, 0.0684518f, -0.156953f, 0.237087f, -0.0934491f, 0.27429f, 0.0115245f, 0.157762f, -0.040259f, -0.490828f, 0.198226f, 0.292029f, 0.227338f, -0.0300592f, -0.102982f, 0.223944f, 0.111494f, -0.223886f, -0.0887211f, 0.0687037f, -0.00895617f, 0.178476f, -0.0401449f, -0.346114f, 0.0342386f, 0.0983319f, -0.264174f, 0.0827226f, -0.0729214f, 0.0215738f, -0.0556606f, 0.110038f, -0.0375343f, -0.0411775f, 0.328305f, 0.223243f, -0.165641f, -0.0485616f, -0.116123f, 0.0116449f, 0.249193f, 0.15334f, -0.0681715f, 0.0333924f, -0.112635f, -0.0182596f, -0.0796315f, 0.213198f, -0.139507f, -0.0278633f, -0.0563387f, 0.109218f, -0.0205508f, -0.0578504f, 0.182318f, -0.123821f, -0.102067f, -0.14033f, -0.0235797f, 0.208179f, 0.302163f, 0.0447197f, -0.116632f, 0.179598f, -0.030888f, 0.0324924f, 0.222968f, -0.078508f, 0.0422574f, 0.0281897f, -0.103931f, 0.0417679f, 0.261437f, -0.154024f, -0.0885222f, -0.0951117f, -0.328589f, 0.00396369f, 0.00777263f, -0.185528f, -0.358574f, 0.22164f, 0.117155f, -0.0622252f, -0.2312f, -0.24033f, -0.0653241f, -0.00378182f, -0.349606f, 0.0228117f, 0.297103f, -0.140697f, -0.0271153f, 0.0289354f, 0.17927f, -0.0280648f, -0.0976609f, 0.100681f, -0.0181945f, -0.00598031f, 0.072118f, -0.0658205f, -0.145818f, 0.127111f, 0.220976f, -0.217564f, 0.0747199f, 0.133069f, -0.180125f, 0.139752f, -0.0297085f, -0.103729f, -0.12278f, 0.134378f, 0.0598134f, 0.103103f, -0.0411055f, 0.160668f, -0.190623f, 0.0942547f, 0.0495427f, 0.107034f, 0.171476f, 0.0214012f, -0.265763f, 0.178136f, -0.101639f, 0.105457f, -0.00197739f, -0.0311321f, -0.204972f, 0.0496768f, -0.125411f, -0.19319f, 0.0253514f, -0.174545f, 0.0591951f, -0.196226f, 0.0961038f, 0.0104829f, 0.179598f, 0.182684f, 0.238013f, 0.0236998f, -0.193357f, -0.0997821f, -0.241542f, 0.18947f, 0.00144861f, 0.0817442f, 0.222942f, -0.0816976f, -0.00920266f, 0.126707f, 0.0521027f, 0.133173f, 0.122206f, 0.113075f, -0.0339334f, 0.289674f, -0.123621f, -0.00808744f, -0.017224f, 0.00414757f, -0.223431f, 0.0829733f, 0.174288f, -0.106315f, 0.110754f, 0.0892308f, 0.275982f, 0.0386091f, -0.142749f, -0.0387527f, -0.0772674f, 0.004064f, -0.147763f, -0.133693f, 0.106592f, -0.182236f, -0.085871f, 0.0248849f, -0.037157f, 0.0249753f, -0.0400008f, -0.259852f, -0.179619f, 0.0359601f, 0.144008f, -0.181688f, 0.109678f, 0.263442f, 0.0883249f, 0.0739735f, -0.0937914f, -0.00124308f, 0.0485952f, 0.00207295f, 0.205707f, 0.0214445f, -0.0509486f, -0.018405f, -0.0411576f, 0.0313929f, 0.0282484f, -0.210353f, -0.0512967f, -0.0271647f, -0.0396302f, 0.0879528f, 0.0602628f, 0.171731f, -0.0750278f, -0.0432902f, -0.261538f, 0.255291f, -0.0219332f, 0.092062f, -0.142873f, -0.0797108f, -0.0364526f, 0.00547604f, -0.0154427f, 0.0944661f, 0.030003f, -0.13192f, 0.00180763f, 0.10257f, 0.0533194f, 0.273887f, 0.166427f, -0.206432f, 0.00974531f, -0.12387f, 0.241988f, 0.119754f, 0.0733286f, 0.0277731f, 0.00993308f, 0.25297f, -0.12639f, 0.145674f, 0.0979234f, 0.0617636f, -0.0804797f, 0.227095f, -0.103641f, -0.150562f, 0.247748f, 0.0664676f, -0.116581f, 0.0103026f, 0.15922f, 0.116483f, -0.22171f, 0.191801f, -0.0881944f, 0.0110362f, 0.01237f, -0.116892f, -0.103618f, -0.113445f, 0.0328008f, -0.0543223f, -0.0746105f, -0.100497f, 0.000855874f, -0.0557495f, 0.218119f, 0.204173f, -0.0509327f, -0.0773986f, -0.0346667f, -0.184759f, -0.0721593f, -0.0355192f, 0.226327f, 0.227847f, -0.0424295f, 0.132729f, 0.0386089f, -0.242823f, -0.16932f, -0.00189754f, 0.00359164f, 0.189564f, 0.0806416f, 0.207173f, -0.0235122f, 0.11077f, 0.111534f, -0.0323524f, -0.114235f, 0.149197f, 0.0230909f, 0.0840487f, -0.044481f, -0.10755f, -0.0113747f, 0.133053f, 0.106704f, -0.00462036f, 0.164327f, 0.0703682f, -0.32057f, -0.209502f, 0.146417f, 0.142021f, -0.0593937f, -0.27786f, -0.0527542f, 0.234461f, 0.0810305f, 0.240579f, -0.0553189f, -0.116971f, 0.0049876f, -0.0472322f, -0.0180421f, 0.110592f, 0.0299182f, -0.0818162f, 0.0961397f, 0.00193912f, 0.210862f, -0.0375763f, -0.232476f, 0.102506f, -0.105714f, -0.00792187f, 0.0454426f, -0.146694f, 0.0802295f, -0.0780405f, -0.200895f, 0.0836519f, -0.108615f, 0.0669123f, 0.13942f, -0.00848366f, 0.106297f, -0.0467658f, 0.0798409f, 0.046355f, -0.0503023f, -0.12667f, 0.0403261f, -0.0177248f, -0.0166617f, -0.147533f, 0.191114f, 0.0668894f, 0.0429459f, -0.139253f, -0.244815f, 0.298303f, 0.158136f, 0.0542713f, 0.052249f, -0.0466798f, 0.016958f, 0.167973f, 0.00240362f, 0.0125551f, 0.0557607f, 0.155385f, -0.250214f, -0.0633954f, -0.0603456f, 0.124569f, -0.00448206f, -0.192564f, -0.0569538f, -0.100518f, 0.218673f, -0.134257f, 0.11382f, -0.115098f, -0.134513f, 0.120681f, 0.165585f, -0.0124401f, -0.0649379f, 0.0849653f, -0.107512f, 0.166957f, 0.0297143f, 0.00801149f, -0.155054f, 0.045475f, 0.120904f, 0.140711f, 0.0424701f, 0.109264f, 0.0223357f, -0.0862619f, -0.214171f, -0.0270817f, 0.286787f, 0.00705311f, 0.16882f, 0.116219f, 0.261034f, -0.0645776f, 0.157839f, 0.0137313f, 0.0669325f, -0.0426238f, -0.188521f, 0.061969f, 0.296297f, -0.116063f, 0.202181f, 0.0566348f, -0.046925f, -0.152899f, 0.109408f, -0.10358f, 0.0722145f, -0.00287426f, 0.253872f, -0.0795188f, -0.101756f, -0.161466f, -0.2686f, 0.0137921f, 0.0721339f, 0.103758f, -0.052676f, -0.22513f, 0.311015f, 0.0752255f, 0.0363193f, 0.0280852f, -0.138297f, 0.274708f, -0.0262583f, -0.0567027f, -0.00701619f, -0.159076f, 0.265098f, -0.0142755f, 0.0155866f, -0.0899892f, -0.179025f, -0.120665f, 0.216337f, -0.0180393f, -0.0350605f, -0.180581f, 0.0721316f, -0.0710083f, 0.0155374f, -0.0713346f, -0.0967165f, -0.125558f, 0.0449267f, -0.0926615f, -0.0783443f, 0.12069f, -0.148203f, 0.0084269f, -0.198211f, 0.0717732f, 0.0113788f, 0.105373f, -0.0553329f, -0.0837949f, 0.0450253f, -0.0633766f, 0.0905471f, 0.0647677f, -0.0105851f, 0.118184f, -0.0433372f, 0.199706f, 0.260835f, -0.0146711f, -0.239696f, 0.139225f, 0.0154472f, -0.336973f, -0.19719f, 0.150878f, -0.0269693f, -0.0365465f, -0.0335539f, 0.121217f, 0.041988f, 0.0396153f, -0.10128f, 0.0116267f, 0.293289f, -0.0832406f, 0.148698f, 0.0208243f, -0.0298401f, 0.0381846f, -0.0379425f, -0.0574408f, 0.0426572f, 0.0169582f, -0.138158f, 0.0344392f, -0.0540267f, 0.0657989f, 0.00256885f, -0.0629012f, 0.0839152f, -0.193073f, 0.0498943f, 0.0261095f, -0.163505f, 0.0963998f, 0.096743f, -0.05202f, -0.0533396f, -0.0273143f, 0.00602463f, 0.0264649f, -0.141954f, -0.0598905f, 0.0222701f, -0.11295f, -0.0245621f, -0.151651f, 0.211982f, -0.0546428f, -0.0469552f, -0.174071f, 0.00521344f, 0.0815039f, -0.112236f, -0.0930554f, 0.0871527f, 0.0619419f, 0.0981196f, 0.250004f, 0.0127602f, -0.0517132f, -0.0438624f, 0.0367439f, 0.128388f, 0.290254f, -0.122038f, -0.00106955f, 0.0764869f, 0.399779f, 0.0608372f, 0.00111876f, -0.0500067f, -0.205593f, 0.0560963f, -0.0778523f, -0.212185f, -0.132162f, 0.128834f, -0.129272f, 0.113137f, -0.142807f, -0.13959f, 0.225189f, -0.244586f, -0.239835f, -0.134222f, 0.107038f, -0.00265747f, 0.0146991f, 0.222478f, 0.0559958f, -0.0479049f, 0.067286f, -0.0177264f, 0.129802f, -0.16047f, 0.210082f, -0.241218f, 0.111876f, 0.112015f, -0.261943f, 0.318613f, -0.0911371f, -0.0955113f, 0.104393f, 0.00207851f, -0.148361f, -0.0480803f, 0.187626f, 0.0616622f, -0.0991872f, -0.29503f, 0.000575899f, -0.183414f, -0.0539523f, 0.0736497f, 0.0343877f, -0.0763272f, 0.123491f, 0.123903f, 0.0707381f, -0.0995892f, -0.0830744f, -0.046598f, 0.243456f, 0.18835f, -0.117796f, 0.0302871f, 0.000804234f, -0.0581535f, -0.198408f, -0.129989f, 0.193747f, 0.0576078f, 0.107933f, 0.262545f, 0.181403f, 0.257448f, 0.0122366f, 0.145918f, -0.12014f, 0.0497117f, -0.113659f, -0.08553f, 0.0560697f, 0.0331243f, -0.00429989f, -0.129406f, -0.229396f, 0.205116f, 0.0792037f, -0.0958713f, 0.0541819f, 0.0986946f, 0.0937544f, 0.00222099f, -0.00205749f, -0.145677f, -0.017705f, 0.0327964f, -0.0418489f, -0.0278104f, -0.123799f, -0.10378f, 0.037738f, -0.20833f, -0.0657643f, -0.12521f, 0.00483108f, -0.0838572f, 0.263343f, 0.129348f, 0.0056835f, -0.14975f, -0.108367f, 0.0460449f, -0.0146846f, 0.178892f, 0.0114079f, 0.195275f, 0.0124641f, -0.00537299f, -0.102658f, 0.0820709f, -0.0385363f, -0.139644f, -0.189609f, -0.0923779f, 0.0289862f, -0.0285612f, -0.0761731f, 0.0716878f, 0.0701151f, 0.076829f, -0.0589151f, -0.094287f, -0.0511906f, -0.144649f, 0.182343f, 0.0862613f, 0.0734773f, -0.0435733f, -0.092766f, -0.0079268f, -0.0117186f, -0.0802863f, -0.110052f, -0.00799751f, -0.0589013f, 0.039597f, -0.06165f, -0.0351933f, 0.000676367f, -0.185486f, 0.217753f, -0.128166f, -0.081892f, -0.131641f, 0.214255f, -0.200277f, -0.117039f, -0.122406f, -0.128438f, 0.0179971f, 0.0567853f, 0.104635f, -0.147953f, -0.134676f, 0.0549829f, 0.067035f, -0.044466f, 0.0300731f, 0.0173876f, -0.0435625f, 0.00344327f, -0.114781f, 0.0300151f, -0.119833f, -0.174592f, 0.022024f, -0.0699386f, 0.0406111f, 0.175699f, 0.0631214f, 0.0506154f, 0.021546f, -0.089634f, -0.00772954f, 0.0415331f, 0.0495043f, 0.155301f, 0.0744517f, -0.0347202f, -0.145826f, 0.109375f, 0.0705595f, -0.1629f, 0.0926999f, -0.0440928f, 0.0120079f, -0.0870506f, -0.0411706f, 0.170871f, 0.114123f, 0.0279543f, 0.103308f, -0.0086549f, -0.000874308f, 0.0604226f, -0.0987859f, 0.0533754f, 0.119642f, -0.108343f, 0.0412869f, 0.0764964f, -0.0435653f, -0.0237817f, -0.142923f, -0.107325f, -0.0357424f, -0.162053f, 0.145743f, 0.0862815f, 0.00119394f, -0.00761977f, -0.0946281f, 0.0600811f, 0.177087f, -0.160685f, 0.0873041f, -0.103704f, 0.0868283f, -0.0508245f, 0.0497895f, -0.0853729f, -0.194481f, -0.012485f, 0.0966609f, 0.0511931f, 0.0304907f, -0.0185015f, 0.0110262f, -0.0990974f, -0.039756f, -0.0591766f, -0.0700251f, 0.108719f, -0.015395f, 0.000852848f, 0.0330387f, -0.0474089f, 0.150725f, -0.103682f, -0.0882096f, 0.138642f, 0.111792f, 0.0750003f, -0.041913f, 0.198834f, -0.0367081f, -0.186244f, -0.0434385f, 0.0870846f, 0.102313f, 0.106466f, 0.0761903f, 0.0780292f, 0.0714384f, 0.0828596f, 0.0631447f, -0.17848f, 0.0374617f, 0.0475383f, 0.119942f, -0.204705f, 0.10969f, -0.165321f, 0.0268228f, 0.0887357f, 0.0470824f, 0.062954f, -0.0228382f, -0.108033f, 0.0925829f, -0.0783857f, -0.0636039f, -0.120894f, -0.0422199f, -0.0570414f, 0.154822f, -0.0687653f, -0.0938289f, 0.0673124f, 0.0529869f, -0.0273917f, 0.0699883f, 0.00652696f, -0.0378889f, 0.105694f, -0.193351f, -0.00489716f, -0.0960719f, -0.000277197f, 0.109018f, -0.0147134f, -0.0151111f, 0.0327052f, -0.141648f, -0.216522f, -0.127639f, 0.153382f, 0.0672971f, 0.0851579f, 0.089041f, 0.0205867f, 0.00309432f, 0.0752709f, -0.0382963f, 0.120987f, 0.15129f, 0.057614f, -0.218739f, -0.0627368f, 0.0603688f, -0.122312f, -0.176303f, -0.125131f, 0.0933129f, 0.136733f, -0.053381f, -0.134847f, 0.0779733f, -0.0356246f, -0.129098f, 0.00141952f, 0.335089f, 0.00562313f, -0.0950813f, -0.119938f, 0.107717f, -0.0342734f, -0.0903707f, -0.101172f, -0.115167f, -0.0501314f, 0.257178f, 0.00567568f, -0.183487f, -0.046686f, 0.466359f, -0.0308915f, 0.0633499f, 0.120189f, -0.0428337f, 0.0170335f, 0.0446783f, -0.0612951f, 0.015682f, 0.0718767f, 0.143471f, 0.00257544f, 0.0224529f, 0.0601309f, -0.140801f, -0.0675688f, -0.247148f, 0.00173254f, 0.109181f, -0.0554992f, 0.0644625f, 0.0880319f, -0.0402663f, -0.11482f, 0.286442f, -0.0471901f, -0.175307f, -0.0441659f, -0.116963f, -0.0842872f, -0.141693f, -0.0144179f, 0.145289f, 0.228915f, 0.130878f, 0.0788272f, -0.112034f, -0.228969f, 0.241103f, -0.141045f, 0.334633f, -0.32313f, 0.158434f, -0.275048f, 0.157395f, 0.0137152f, 0.202397f, -0.193156f, 0.0363494f, -0.000763822f, 0.0654114f, 0.210913f, -0.145492f, 0.119076f, -0.0959461f, -0.170375f, 0.0923266f, 0.0290034f, 0.0409093f, -0.112286f, 0.0908069f, -0.160781f, 0.0189598f, -0.253418f, -0.0429536f, 0.159441f, -0.394687f, 0.147487f, 0.17697f, 0.172226f, 0.0374027f, 0.0408624f, 0.16279f, 0.0742334f, 0.224647f, -0.0393857f, 0.0439502f, 0.304006f, -0.00194863f, -0.0939375f, -0.0655175f, -0.235791f, 0.185513f, -0.128508f, -0.0576831f, 0.198681f, 0.457776f, 0.0484272f, -0.107976f, 0.107281f, -0.118497f, -0.178638f, -0.0460036f, 0.245772f, -0.226157f, 0.222614f, -0.125883f, 0.0678519f, -0.00374749f, -0.0157427f, -0.196642f, 0.145551f, 0.147566f, 0.0169188f, -0.135054f, 0.1882f, 0.31002f, 0.0234807f, 0.0621583f, -0.113582f, 0.0254136f, -0.46496f, 0.181378f, 0.103752f, -0.102493f, -0.191782f, 0.0170002f, -0.174047f, 0.016808f, -0.0994379f, -0.23061f, -0.0112946f, 0.086623f, 0.278957f, 0.0412937f, 0.217195f, -0.111828f, -0.219316f, -0.0674079f, -0.103887f, 0.155275f, -0.0855245f, -0.0364679f, -0.197193f, 0.150301f, 0.160068f, -0.0788252f, 0.133016f, -0.0976027f, 0.0338459f, 0.0743363f, 0.0701241f, 0.0248844f, -0.335302f, 0.017866f, -0.264473f, -0.0645993f, 0.112377f, -0.0258686f, -0.136902f, -0.143479f, 0.0746794f, 0.0325729f, -0.0994057f, -0.160764f, -0.124734f, 0.0768488f, 0.0273565f, -0.189037f, -0.227991f, 0.280718f, -0.170093f, -0.164776f, -0.0539996f, 0.0298295f, 0.0248883f, 0.117367f, -0.0116569f, 0.133806f, 0.137581f, 0.18884f, -0.0349258f, 0.0920282f, 0.218395f, 0.0280589f, 0.0514632f, -0.0667768f, 0.0621703f, -0.300083f, -0.00298917f, 0.0987352f, -0.174786f, 0.179251f, -0.0941954f, -0.026533f, 0.0651933f, 0.170521f, 0.014967f, 0.202561f, -0.0142766f, -0.0113354f, 0.320122f, -0.0568037f, 0.0649077f, -0.0727601f, 0.133283f, 0.00346873f, -0.151898f, 0.0544951f, 0.155558f, 0.0511249f, -0.0130742f, -0.0369537f, 0.00938514f, 0.0618678f, 0.0477225f, -0.0478048f, 0.115592f, -0.0919464f, -0.0657077f, 0.0397369f, -0.0907044f, 0.137301f, 0.0829468f, -0.235884f, -0.0378197f, -0.152865f, -0.0469152f, -0.298338f, -0.0472355f, 0.122758f, 0.0140542f, -0.0610671f, -0.088984f, 0.125333f, -0.028172f, 0.204909f, -0.217243f, 0.161136f, -0.0201032f, 0.234925f, 0.18206f, -0.177729f, -0.00680536f, 0.0384906f, -0.191171f, -0.0913938f, -0.221571f, -0.175036f, 0.0633831f, -0.197955f, -0.0495384f, 0.038723f, 0.00344819f, 0.0268646f, 0.0968445f, -0.154764f, 0.156336f, -0.0498492f, -0.110641f, 0.100056f, -0.00590695f, -0.0583441f, 0.133849f, 0.230199f, -0.102773f, 0.115845f, -0.215677f, -0.0263223f, -0.0755981f, -0.0676227f, -0.198575f, -0.218972f, 0.103755f, 0.323423f, 0.102039f, -0.258371f, -0.0379654f, 0.0046976f, -0.160555f, -0.151647f, -0.0482911f, 0.132863f, -0.0388923f, -0.18157f, -0.138564f, 0.144995f, 0.0329672f, 0.214885f, -0.0788452f, -0.186866f, -0.079112f, -0.0463823f, -0.107936f, -0.237249f, -0.229498f, -0.205315f, -0.230227f, -0.165107f, -0.171092f, 0.0860249f, 0.200786f, 0.0421083f, -0.127362f, 0.0202776f, -0.0935114f, 0.0808526f, -0.0882438f, -0.152632f, -0.0307798f, 0.00983474f, 0.0890666f, 0.0728848f, -0.190762f, -0.0492501f, 0.062739f, -0.01319f, 0.172099f, -0.00502463f, -0.0185708f, -0.132992f, 0.0528957f, 0.19455f, 0.0170559f, 0.0432368f, 0.104f, -0.172693f, -0.107259f, 0.175616f, 0.0728355f, 0.0277569f, 0.017738f, -0.218535f, 0.0360448f, 0.138348f, 0.185889f, 0.13378f, 0.0704369f, 0.253974f, 0.236444f, -0.0513666f, -0.0332116f, 0.208451f, -0.187517f, -0.11555f, 0.287849f, -0.104404f, -0.0635188f, -0.196974f, -0.0067807f, -0.00744651f, -0.00939274f, -0.227115f, 0.0522234f, -0.170606f, 0.0149105f, 0.051669f, -0.047213f, 0.0214063f, -0.0141663f, 0.0550482f, -0.0993892f, -0.0713166f, -0.0744639f, -0.00910453f, -0.0787924f, 0.197439f, 0.0629923f, 0.00929687f, 0.193561f, -0.0322881f, 0.105903f, -0.0630279f, 0.382126f, -0.141061f, -0.0312215f, 0.213976f, -0.0814437f, -0.0518279f, -0.170589f, 0.0852769f, -0.0186385f, -0.114831f, 0.316458f, -0.0165881f, -0.22264f, -0.0684012f, 0.0024954f, 0.0909419f, 0.0285271f, 0.119675f, -0.00918673f, 0.192682f, -0.0412787f, 0.0645603f, -0.155269f, -0.290314f, 0.00127052f, -0.192131f, -0.0114173f, -0.0378984f, 0.0709873f, 0.0307223f, 0.199325f, -0.00671304f, 0.0369421f, 0.237104f, -0.0681192f, -0.0762031f, -0.143296f, 0.224666f, -0.121952f, 0.0295913f, -0.201633f, 0.0961219f, -0.165273f, -0.0688044f, 0.0717734f, -0.22672f, -0.0153983f, 0.137808f, -0.0522941f, 0.231543f, 0.181084f, -0.019304f, -0.00040241f, 0.0810973f, -0.106622f, 0.124837f, -0.0436074f, -0.120334f, 0.0809516f, -0.0901786f, 0.0483565f, -0.0795239f, -0.125964f, -0.074652f, 0.255946f, 0.35809f, 0.179741f, -0.114774f, -0.22836f, -0.0841468f, 0.134569f, 0.0680629f, -0.223504f, 0.0478317f, -0.176664f, 0.0670946f, -0.237816f, 0.154175f, 0.175692f, 0.106242f, 0.0897931f, 0.015919f, -0.157622f, 0.205622f, 0.250991f, -2.43156e-05f, -0.281176f, -0.131665f, 0.204718f, -0.147931f, 0.0179194f, -0.051126f, 0.220715f, 0.0488878f, 0.00393445f, 0.098812f, -0.111353f, 0.0541826f, -0.122057f, 0.112603f, -0.189162f, -0.104703f, 0.0901539f, -0.0144392f, -0.143068f, -0.176036f, -0.162279f, 0.0973261f, 3.7851e-05f, -0.191717f, 0.110156f, 0.070075f, 0.0127936f, 0.149148f, -0.0267258f, 0.00435129f, -0.0706714f, -0.158947f, 0.20238f, 0.0933974f, 0.137366f, -0.174067f, -0.0427253f, -0.0557443f, -0.0899593f, -0.232674f, -0.180088f, -0.112707f, 0.10501f, -0.151282f, 0.0275117f, 0.0606688f, -0.0769922f, 0.138711f, -0.0580968f, 0.066835f, 0.110301f, -0.136623f, -0.163098f, -0.206094f, 0.076808f, -0.0905994f, 0.0020273f, 0.12608f, -0.0514173f, 0.171863f, -0.147985f, -0.141864f, -0.11206f, 0.146115f, -0.170065f, 0.048879f, -0.196142f, 0.0384822f, 0.0915778f, -0.0346877f, 0.0852514f, 0.0892903f, -0.136412f, -0.224286f, -0.0208383f, -0.0292586f, 0.0241381f, -0.0277136f, -0.0589641f, 0.207322f, 0.225945f, 0.0119068f, -0.0735303f, 0.0506788f, 0.00535137f, 0.0370237f, -0.0847871f, -0.0116869f, -0.0781477f, 0.169031f, 0.0536673f, -0.0626688f, 0.0793955f, 0.150737f, 0.0357104f, 0.0888172f, 0.100383f, -0.143629f, 0.054345f, -0.0714348f, -0.0982898f, 0.17314f, 0.104533f, 0.174973f, 0.00199688f, 0.0209564f, 0.0147641f, -0.107995f, 0.04155f, -0.108544f, -0.0537871f, -0.0876149f, 0.103266f, 0.0611641f, 0.0416974f, -0.174444f, 0.0313685f, -0.0904022f, 0.00674263f, 0.0822239f, 0.00137299f, -0.0536956f, 0.0312848f, 0.124737f, 0.219829f, -0.0383232f, 0.108625f, -0.255977f, 0.0691619f, -0.148812f, -0.129805f, -0.155601f, 0.040957f, 0.106638f, 0.0775435f, -0.173417f, 0.0980358f, -0.293116f, -0.0100631f, 0.0474684f, 0.215177f, -0.038461f, -0.0108685f, 0.107902f, 0.0992393f, -0.0180737f, 0.0856842f, -0.146127f, -0.0930969f, 0.044387f, -0.094394f, 0.021098f, 0.123022f, -0.153976f, 0.210123f, 0.0180824f, -0.0957799f, 0.0523579f, -0.151582f, 0.0214378f, -0.0517949f, -0.0811101f, 0.115557f, -0.0242143f, 0.179167f, 0.0269925f, 0.0239264f, -0.0693179f, -0.043463f, 0.294787f, 0.259221f, 0.164187f, 0.108783f, 0.0230464f, 0.0999413f, -0.0248412f, -0.27435f, -0.131918f, -0.107193f, 0.0683655f, 0.014895f, 0.0620162f, -0.0627531f, -0.0039393f, -0.0227543f, -0.0347459f, -0.0205495f, -0.135471f, -0.103091f, 0.33771f, 0.0391181f, 0.133179f, 0.0960316f, 0.0858511f, -0.129841f, 0.125587f, -0.0709822f, -0.0286282f, -0.00505493f, 0.11081f, 0.159185f, -0.00733651f, -0.270755f, 0.116276f, -0.0225957f, 0.18895f, -0.207991f, 0.00268988f, 0.0890917f, 0.062767f, 0.0265636f, 0.21115f, 0.0266016f, -0.0152517f, -0.062595f, -0.130477f, 0.116268f, -0.124951f, 0.0489782f, 0.00193306f, -0.0513074f, 0.19423f, 0.0303771f, -0.222169f, 0.14364f, -0.156908f, -0.131569f, -0.0761332f, -0.144597f, 0.031607f, 0.0617588f, -0.0295955f, 0.00295442f, 0.0157971f, -0.00604864f, -0.0755365f, 0.115732f, -0.100115f, 0.169998f, -0.0746026f, -0.0999709f, -0.0875917f, 0.119266f, -0.00758392f, -0.123669f, -0.00532182f, -0.00084501f, -0.122298f, -0.021207f, -0.0258355f, -0.00628922f, 0.0646856f, 0.0323735f, 0.121788f, 0.0897775f, 0.126884f, 0.0342392f, -0.0591146f, 0.00837153f, -0.0788783f, 0.102593f, 0.00357223f, 0.103492f, 0.100925f, 0.214608f, 0.0680334f, -0.0968064f, -0.0266193f, 0.0259139f, 0.0873343f, 0.0441369f, 0.1319f, -0.151713f, 0.193063f, -0.114873f, -0.143041f, 0.00574809f, -0.112926f, -0.14447f, -0.00280527f, 0.0182754f, 0.0344463f, -0.0625735f, 0.165784f, 0.167336f, 0.278602f, 0.0425774f, -0.193142f, -0.148814f, -0.0718876f, -0.0281465f, -0.16495f, -0.0984829f, 0.123564f, 0.0500717f, -0.15558f, -0.0973546f, 0.02362f, -0.127595f, 0.0386137f, 0.122958f, -0.0878971f, 0.0627192f, 0.0948751f, -0.139487f, 0.0793676f, -0.0283741f, -0.0134049f, 0.201315f, 0.209907f, -0.140484f, -0.0997684f, -0.0193607f, 0.201902f, -0.198932f, 0.0963565f, 0.0897863f, 0.218462f, -0.0624943f, -0.225754f, 0.0160447f, -0.014505f, -0.112259f, -0.152076f, -0.0707846f, -0.114366f, -0.153718f, 0.0894351f, 0.0969387f, 0.25651f, -0.0610411f, -0.140103f, -0.00928127f, 0.072994f, 0.0434985f, 0.0196346f, -0.0406308f, -0.114417f, 0.146738f, -0.0106393f, -0.0571893f, 0.119836f, 0.040804f, 0.18331f, -0.133604f, 0.0451141f, -0.00077886f, -0.110437f, 0.123714f, -0.109258f, 0.0418304f, -0.213345f, 0.212832f, 0.138665f, 0.0216691f, 0.00599755f, 0.0496058f, 0.200091f, 0.129521f, -0.0111037f, 0.0146673f, -0.0269523f, -0.0763409f, -0.0639422f, 0.0543627f, 0.00877219f, 0.106757f, -0.119345f, 0.0900753f, -0.0996334f, -0.0877438f, 0.150982f, -0.0388447f, 0.0266896f, 0.227644f, 0.169903f, 0.183699f, -0.05469f, -0.0220131f, 0.174671f, -0.204361f, 0.154668f, 0.13615f, 0.0897835f, -0.169811f, 0.142154f, -0.100394f, -0.068224f, 0.111654f, -0.0711357f, 0.097203f, 0.243593f, 0.0198868f, -0.0733053f, -0.149632f, 0.0401642f, 0.112351f, -0.0462694f, -0.00590841f, -0.173849f, 0.015141f, 0.0229776f, -0.0928953f, 0.114645f, -0.146466f, 0.0997464f, 0.0431935f, 0.0248219f, 0.0336596f, -0.103032f, 0.235421f, 0.16177f, -0.125211f, -0.0316671f, -0.13929f, 0.028699f, -0.14824f, 0.0157888f, 0.0925941f, 0.0844396f, 0.106175f, 0.0837253f, 0.0336413f, 0.0529321f, 0.143319f, 0.0899565f, 0.182871f, 0.10054f, 0.203327f, -0.0715113f, -0.142673f, -0.0213281f, -0.0278693f, 0.193022f, 0.135496f, -0.0297689f, 0.0282115f, 0.0595569f, 0.257088f, -0.108272f, -0.0445304f, -0.0318725f, -0.100443f, 0.136414f, -0.0139113f, 0.0573334f, -0.00845124f, -0.108496f, 0.100181f, -0.0176047f, -0.249652f, -0.150766f, 0.156752f, -0.106707f, 0.248835f, -0.0617144f, 0.0216498f, -0.118248f, 0.124716f, 0.0472421f, -0.218063f, 0.21175f, 0.128234f, -0.0845033f, -0.14077f, 0.0100243f, -0.0239648f, -0.165684f, -0.274402f, -0.206631f, -0.113827f, 0.143273f, 0.046913f, -0.0875576f, -0.116607f, -0.0165095f, 0.124875f, -0.0314442f, -0.138591f, -0.027213f, 0.113218f, 0.150072f, -0.0156563f, 0.160969f, -0.00958057f, -0.107397f, -0.131377f, -0.191684f, 0.18619f, -0.041261f, -0.101972f, -0.0988639f, -0.121991f, 0.0926862f, 0.0753465f, -0.223465f, 0.201381f, 0.0409442f, -0.00999281f, -0.0310971f, -0.0133371f, -0.0619267f, -0.00993537f, 0.194475f, 0.0351185f, -0.0654191f, -0.021654f, 0.128549f, -0.0981212f, -0.0579119f, -0.300924f, -0.0392005f, -0.0986703f, -0.0505597f, 0.20686f, 0.051621f, -0.0666688f, 0.0463722f, -0.117485f, 0.0106553f, -0.104046f, 0.00203914f, -0.252862f, -0.0592633f, -0.000546085f, 0.160308f, 0.00666617f, -0.0321257f, 0.0702543f, -0.0451535f, 0.11329f, -0.0027625f, 0.0775107f, 0.280493f, -0.0381304f, -0.0274564f, 0.174141f, -0.174124f, -0.158209f, -0.105087f, 0.182002f, -0.289701f, 0.000585534f, -0.195775f, -0.0847924f, 0.222566f, 0.245142f, 0.160935f, -0.0599063f, 0.10594f, -0.146905f, 0.00140468f, 0.0550578f, -0.0514705f, -0.0439758f, 0.0407459f, 0.220005f, -0.143768f, 0.0746489f, 0.0813147f, -0.0334674f, -0.101189f, -0.245242f, -0.0458966f, -0.110424f, -0.0205031f, 0.0940546f, 0.026364f, 0.18455f, -0.104371f, 0.046864f, 0.0626832f, -0.202542f, -0.0615368f, 0.213712f, 0.174361f, 0.0546777f, 0.0408193f, -0.205441f, 0.0745069f, -0.241937f, 0.0176709f, -0.0898825f, -0.16064f, 0.208592f, 0.227871f, 0.272323f, -0.0829578f, -0.0635124f, -0.160388f, -0.111716f, 0.16873f, -0.0516675f, -0.0170121f, -0.00718314f, -0.13507f, 0.13359f, 0.132727f, 0.00270111f, -0.192741f, -0.0358554f, -0.185652f, -0.155802f, 0.194602f, 0.0983111f, -0.148014f, 0.0134791f, 0.0198449f, 0.19586f, 0.182497f, -0.20846f, 0.278756f, 0.0378453f, 0.274522f, -0.0519222f, -0.166502f, 0.0717312f, 0.00847794f, -0.234588f, -0.0851546f, -0.0492157f, -0.140686f, -0.0375185f, -0.0302835f, 0.201487f, 0.237383f, -0.209965f, -0.0559707f, -0.274392f, 0.00532005f, -0.0991831f, -0.0541523f, -0.269369f, -0.0241621f, -0.0711678f, 0.15897f, -0.0969575f, -0.124015f, -0.00722418f, 0.193081f, -0.0128226f, -0.0517161f, -0.114632f, 0.00609285f, -0.0520749f, 0.0706565f, 0.0947218f, -0.0148055f, 0.0499404f, -0.00683349f, -0.0940137f, 0.188709f, -0.0685041f, 0.129705f, -0.040988f, -0.149891f, -0.154998f, -0.173555f, -0.0369459f, 0.122302f, -0.233573f, -0.0198348f, 0.186293f, -0.137435f, -0.0250376f, 0.158912f, -0.179017f, -0.0522108f, 0.0287617f, 0.0169881f, -0.16147f, -0.128298f, -0.120666f, -0.0174817f, 0.0848285f, -0.238263f, -0.061475f, -0.157905f, -0.0839681f, -0.03257f, -0.080061f, -0.177999f, -0.082832f, -0.180137f, 0.0799778f, -0.00147701f, 0.129989f, -0.0895798f, -0.00478125f, -0.0242514f, -0.0782955f, 0.00778947f, -0.276821f, -0.0127608f, -0.00261645f, -0.175237f, -0.0184595f, 0.0153547f, 0.098725f, 0.216728f, 0.14837f, 0.101701f, 0.0358704f, -0.210675f, -0.0400668f, -0.0292409f, -0.032302f, -0.134105f, -0.183851f, -0.190312f, -0.0820678f, 0.0021375f, 0.133446f, 0.0735728f, -0.0308865f, 0.0511924f, 0.0182185f, 0.260306f, 0.100785f, -0.000405421f, -0.0635537f, -0.198615f, -0.0701607f, 0.137195f, -0.0528078f, 0.0744703f, 0.03736f, -0.0306099f, -0.0240586f, 0.147925f, -0.149904f, -0.030168f, -0.158227f, 0.033018f, -0.013195f, -0.122909f, 0.196858f, 0.0876036f, 0.06965f, -0.113221f, 0.0413146f, 0.0277125f, -0.0208735f, -0.0982984f, 0.0277162f, 0.0795677f, 0.0296403f, -0.304508f, 0.0972824f, -0.127571f, 0.0158456f, 0.100104f, 0.250972f, 0.0397758f, 0.112703f, 0.255959f, -0.246198f, 0.159983f, -0.129529f, -0.0916437f, -0.0604762f, 0.0919817f, 0.139357f, -0.142525f, 0.242015f, -0.160176f, 0.0680464f, -0.0410591f, -0.0685452f, -0.13348f, 0.0450255f, 0.0946707f, -0.0115993f, -0.0315509f, -0.27663f, 0.111291f, 0.193451f, 0.205273f, 0.0954519f, -0.143195f, -0.109986f, 0.0402161f, -0.127174f, 0.220771f, 0.116524f, -0.0725682f, 0.103238f, 0.159228f, 0.15001f, 0.0495935f, 0.250544f, 0.185763f, -0.0546251f, 0.0384701f, -0.0633471f, 0.219859f, -0.106809f, 0.171997f, 0.0962822f, 0.00929741f, -0.285928f, 0.210809f, -0.105081f, 0.270535f, -0.199627f, 0.220513f, -0.000493555f, -0.0884804f, 0.0943403f, -0.186902f, 0.183732f, 0.0876558f, 0.186583f, 0.24823f, 0.0140268f, -0.118134f, 0.0479123f, 0.308047f, -0.373715f, -0.100941f, -0.328338f, -0.182837f, 0.233269f, -0.186665f, -0.228372f, -0.0561505f, -0.0313186f, 0.126603f, 0.0961425f, 0.0395482f, 0.0394728f, 0.103446f, 0.0228927f, 0.118411f, -0.0147878f, -0.585232f, -0.278776f, 0.0111025f, 0.170598f, 0.113349f, -0.055435f, 0.329753f, -0.0987856f, 0.0820541f, 0.144193f, 0.0126227f, -0.118957f, 0.00551095f, -0.0176619f, -0.374428f, -0.121538f, 0.0792398f, -0.124005f, 0.152763f, 0.154156f, -0.12754f, 0.100798f, -0.148739f, 0.297369f, 0.181926f, -0.263348f, 0.206501f, 0.130057f, -0.0411896f, -0.354159f, -0.130852f, -0.317211f, 0.225718f, -0.0148615f, 0.257399f, 0.150864f, 0.0589645f, -0.109949f, -0.282047f, 0.0303113f, 0.110828f, 0.167024f, 0.113268f, -0.0813676f, -0.158866f, 0.212105f, 0.179794f, -0.222803f, 0.0765927f, -0.179398f, -0.0972747f, 0.0726331f, 0.0237125f, 0.247612f, 0.00010147f, 0.11175f, -0.0872527f, -0.0865089f, 0.175212f, -0.0240768f, -0.0072622f, 0.35369f, -0.170878f, -0.202121f, -0.0331366f, 0.299405f, -0.230744f, -0.0287802f, 0.255042f, 0.0106629f, 0.0794504f, 0.139419f, 0.284954f, 0.0286253f, 0.277579f, 0.1569f, -0.0148096f, -0.0329601f, -0.130283f, -0.137258f, -0.230497f, 0.459729f, 0.545492f, 0.0263592f, -0.396394f, -0.207215f, 0.152163f, -0.208266f, -0.0159906f, -0.0952753f, -0.105241f, 0.0266685f, -0.106446f, -0.23893f, -0.0400281f, -0.269475f, -0.285199f, 0.160875f, -0.164895f, 0.0873853f, 0.126274f, 0.144408f, 0.175076f, -0.283384f, -0.0634031f, 0.387185f, -0.32706f, -0.361366f, -0.0870415f, -0.0363526f, -0.0223617f, -0.0747185f, -0.0226731f, 0.175852f, -0.03513f, 0.114814f, -0.0355074f, 0.198991f, -0.129875f, 0.0122626f, 0.025821f, -0.0769631f, 0.0319625f, 0.0251545f, -0.18754f, -0.00700721f, -0.00645497f, 0.0521435f, -0.382797f, 0.0817555f, -0.0871467f, 0.259631f, -0.147448f, -0.183951f, 0.0821319f, 0.235768f, -0.0201392f, 0.160461f, 0.0151751f, -0.196746f, -0.178141f, -0.13148f, 0.125174f, -0.141824f, 0.141608f, -0.0612845f, 0.0209761f, 0.0580471f, -0.107676f, -0.0834658f, -0.0555941f, 0.0542558f, -0.0611607f, 0.285301f, 0.173811f, 0.123477f, -0.0291588f, -0.0170949f, -0.139855f, -0.211965f, 0.312949f, 0.194212f, -0.0823152f, 0.29305f, 0.0226573f, -0.0361837f, 0.191318f, -0.112268f, -0.1532f, 0.211265f, -0.0104502f, -0.0413627f, -0.167585f, 0.104703f, 0.142708f, -0.123481f, 0.0913194f, 0.206087f, 0.054659f, 0.318504f, -0.138528f, 0.116694f, 0.031912f, -0.369661f, 0.0601731f, -0.211246f, 0.236695f, -0.217848f, -0.168077f, -0.196988f, 0.186929f, 0.0818503f, -0.242316f, 0.172022f, -0.09991f, 0.0673113f, 0.0675779f, 0.00684277f, -0.230076f, -0.0678345f, -0.0786335f, 0.155159f, -0.319349f, 0.104045f, 0.183092f, 0.13186f, -0.103854f, 0.0889621f, -0.204324f, 0.12628f, -0.125602f, -0.0682588f, -0.0325723f, -0.338365f, -0.0665964f, -0.0795713f, -0.34443f, 0.0197752f, -0.0259646f, -0.088145f, -0.21553f, 0.154739f, 0.211608f, 0.0240085f, 0.0654609f, -0.0230212f, 0.432608f, 0.0636507f, -0.159669f, 0.103657f, 0.0177528f, 0.209945f, -0.397872f, -0.0246997f, -0.0272542f, 0.0932091f, -0.117992f, -0.0709549f, 0.0667665f, 0.0157214f, -0.0268914f, 0.0530496f, -0.156114f, 0.12846f, 0.104057f, -0.152524f, 0.0834468f, 0.100686f, 0.173205f, -0.0955546f, -0.022817f, -0.0296185f, -0.0822207f, 0.023423f, -0.0381095f, 0.191671f, 0.175942f, 0.189841f, 0.0446861f, -0.071763f, 0.0195825f, 0.0182573f, -0.00742866f, 0.025608f, 0.0586734f, -0.0329645f, 0.0330891f, 0.0148478f, 0.05668f, 0.105383f, 0.0209591f, -0.108056f, -0.0399402f, -0.0104603f, -0.0240461f, -0.118686f, 0.131686f, -0.0819971f, 0.0929204f, 0.0437474f, -0.109989f, -0.180165f, -0.0110167f, 0.0807687f, 0.00903623f, 0.0175791f, 0.0444272f, 0.15308f, -0.0651727f, 0.0404832f, 0.0651115f, 0.0885213f, 0.00923158f, -0.147207f, 0.162257f, 0.0411269f, -0.106726f, 0.066509f, -0.0753052f, -0.0260028f, -0.0032511f, -0.00468353f, -0.002118f, -0.0371075f, 0.000117534f, 0.0259633f, 0.00672781f, 0.0626402f, -0.0484842f, -0.206771f, 0.256887f, -0.28014f, -0.00851157f, 0.0173326f, -0.0861564f, 0.136309f, 0.0481383f, 0.00657815f, 0.0545923f, 0.0919077f, -0.0489874f, 0.122858f, -0.0468137f, 0.166143f, 0.0172035f, -0.0557844f, -0.0295607f, 0.0952308f, 0.157008f, 0.103194f, -0.0394532f, -0.0494416f, -0.0801241f, -0.0943182f, -0.0604657f, -0.102816f, -0.0153357f, -0.184594f, -0.110671f, -0.237001f, 0.00663107f, 0.0540701f, 0.0398613f, -0.07848f, -0.0752751f, -0.0589382f, 0.133701f, -0.0484097f, -0.161787f, -0.203679f, 0.0489309f, -0.0125002f, 0.0823636f, 0.0742512f, -0.0647214f, -0.015104f, -0.125415f, 0.0890479f, -0.0535365f, -0.184835f, 0.0706059f, -0.0512062f, 0.0464989f, -0.0562589f, -0.0210839f, 0.0126385f, 0.00967264f, 0.0413046f, -0.0347362f, -0.0755762f, -0.0722066f, -0.0761658f, -0.0871936f, 0.110968f, 0.0868572f, -0.168211f, 0.0568235f, -0.07476f, 0.392954f, 0.00690725f, 0.0404405f, 0.054018f, 0.0550261f, 0.121429f, 0.100804f, -0.0148224f, 0.113245f, -0.115061f, -0.12674f, -0.000975924f, -0.0116134f, -0.0670286f, 0.00526997f, 0.0708206f, -0.0697793f, 0.0307189f, -0.0933201f, 0.191097f, 0.166739f, 0.0438947f, 0.0226906f, -0.179901f, 0.0650906f, 0.147052f, -0.0864369f, 0.0700071f, -0.155334f, 0.038563f, 0.112072f, 0.0489003f, -0.04533f, -0.0296462f, -0.0103384f, -0.0137774f, -0.023892f, 0.0221113f, -0.153189f, -0.0867301f, 0.0946012f, -0.0928748f, 0.0542133f, 0.285689f, 0.0191118f, 0.00759685f, -0.0338744f, -0.0611045f, 0.0340532f, -0.210489f, -0.0247785f, -0.0323554f, 0.0243175f, 0.0622562f, -0.0754317f, -0.140614f, 0.0412005f, 0.0311085f, 0.118941f, -0.0354119f, 0.0739274f, -0.0167173f, 0.0994173f, -0.0407847f, 0.010415f, 0.0781569f, -0.0105942f, -0.0683053f, 0.0177046f, -0.0103767f, -0.0323402f, 0.176728f, -0.0352821f, 0.106198f, -0.156f, -0.119506f, -0.084033f, -0.0532555f, 0.106107f, 0.0847828f, -0.0206222f, -0.0505967f, -0.162254f, -0.152251f, 0.0533035f, -0.173586f, 0.0113354f, 0.147242f, -0.0447097f, -0.0594486f, -0.121707f, -0.141152f, 0.0756913f, 0.135992f, -0.0131266f, -0.00675887f, -0.166458f, 0.0014715f, 0.120711f, -0.0683767f, 0.0519026f, 0.00595886f, -0.215906f, 0.0429093f, -0.120069f, -0.0599698f, -0.100748f, -0.0413359f, 0.0479534f, -0.023822f, 0.0374049f, 0.020256f, 0.0664084f, 0.0196149f, -0.174066f, 0.0540276f, 0.0245545f, 0.174181f, 0.0315029f, 0.0517418f, 0.0231522f, -0.118932f, -0.0737926f, -0.187313f, -0.0682876f, 0.232761f, 0.148833f, 0.121853f, -0.0183479f, -0.092618f, 0.119804f, 0.300909f, -0.011126f, 0.0952744f, -0.102383f, 0.120385f, 0.00477692f, 0.169419f, -0.0766702f, 0.0142613f, -0.111112f, -0.0899144f, -0.274248f, -0.0866039f, 0.227017f, 0.310795f, 0.178263f, 0.205509f, 0.148613f, 0.105754f, -0.0356597f, -0.141134f, 0.105823f, 0.0421238f, -0.00247363f, -0.0236248f, 0.0235875f, 0.0605094f, 0.0468319f, 0.138131f, -0.00843699f, -0.210186f, -0.174777f, 0.0182549f, 0.0260534f, -0.0513954f, 0.0402113f, 0.184505f, 0.105623f, -0.0150924f, 0.331013f, -0.250717f, 0.0584871f, -0.192292f, -0.103839f, 0.0444057f, -0.162188f, 0.104299f, -0.0948404f, -0.122674f, 0.0435033f, -0.270033f, -0.134323f, -0.172572f, 0.0500807f, 0.063931f, 0.0632527f, -0.206978f, 0.0731556f, 0.0812155f, -0.170458f, 0.00603655f, 0.0999926f, -0.27386f, -0.152539f, -0.050675f, -0.00812019f, -0.0700972f, 0.127709f, -0.105272f, -0.218206f, 0.0391236f, 0.139221f, -0.295465f, -0.267091f, 0.0258196f, 0.0190187f, -0.0866477f, 4.49685e-05f, -0.116286f, -0.0720316f, -0.0368256f, -0.186126f, 0.0315717f, 0.144677f, 0.116028f, -0.145434f, -0.241963f, -0.0214539f, 0.143054f, -0.0437086f, 0.0196144f, 0.187926f, -0.174117f, 0.0962941f, -0.244523f, -0.0650069f, 0.154844f, -0.12539f, -0.026936f, 0.0469926f, 0.283513f, 0.0381362f, 0.207718f, -0.363994f, 0.100307f, 0.179708f, 0.161118f, -0.0665177f, 0.258849f, -0.125379f, 0.29065f, 0.00329773f, 0.129773f, -0.0230525f, 0.0900686f, 0.221687f, 0.137468f, -0.0685979f, -0.096037f, 0.0462018f, 0.138989f, 0.00143864f, 0.0576336f, 0.0559053f, -0.10709f, 0.151641f, -0.081913f, -0.126716f, -0.284656f, -0.0745749f, 0.0786459f, -0.089095f, 0.251171f, 0.093445f, -0.166121f, -0.0824012f, -0.150801f, -0.0604235f, -0.0537173f, 0.139555f, -0.0995215f, 0.112704f, -0.0527834f, -0.238665f, 0.0460042f, 0.00506401f, -0.036834f, 0.0413899f, -0.00622439f, -0.306493f, 0.346254f, -0.0878178f, 0.0825513f, 0.276487f, -0.128122f, -0.150272f, 0.0825091f, -0.118893f, -0.06448f, -0.0847511f, 0.012275f, 0.101421f, -0.182939f, 0.089755f, 0.0297006f, -0.233875f, 0.00333426f, -0.0582139f, -0.162169f, 0.161368f, 0.127313f, -0.217942f, -0.0929395f, -0.066512f, -0.0659678f, 0.0873588f, 0.238127f, 0.0013477f, 0.0356963f, 0.0841386f, -0.025854f, 0.222815f, 0.31371f, 0.230762f, 0.122499f, 0.0879019f, 0.131203f, -0.301914f, -0.091141f, -0.144736f, 0.0721071f, -0.0649577f, -0.177029f, 0.136197f, 0.143867f, -0.0124148f, 0.113856f, 0.17847f, 0.0804517f, 0.125896f, -0.119949f, -0.0878037f, 0.208528f, 0.133109f, -0.0187286f, -0.00866307f, -0.101831f, 0.117979f, -0.126491f, 0.0200154f, 0.0787697f, 0.133225f, -0.220893f, -0.0264701f, 0.0203342f, 0.126573f, -0.171014f, 0.129981f, -0.251264f, -0.226655f, 0.0775733f, -0.202783f, 0.0666081f, 0.0948706f, -0.162083f, 0.0659282f, 0.147f, -0.0105279f, 0.127593f, -0.113976f, -0.0197058f, 0.139615f, -0.00831833f, 0.101299f, -0.0633711f, 0.126783f, -0.027126f, -0.00883524f, 0.212759f, 0.102754f, -0.115914f, -0.0477155f, 0.129049f, -0.0945051f, -0.00447211f, -0.150969f, -0.0446496f, -0.0519519f, -0.185742f, 0.128872f, 0.151528f, -0.0510029f, -0.0889668f, -0.196562f, 0.0523706f, -0.247475f, 0.116552f, -0.228628f, -0.184241f, -0.00360471f, 0.295891f, 0.105714f, 0.144663f, -0.383033f, 0.0413527f, 0.0252994f, 0.0151567f, -0.110009f, 0.156859f, -0.163131f, 0.0592057f, 0.210008f, -0.222541f, -0.123328f, -0.367727f, 0.114429f, 0.155437f, 0.0876415f, -0.151801f, -0.0874269f, 0.16298f, -0.24185f, 0.0633714f, -0.239042f, -0.0765129f, -0.202724f, 0.048177f, -0.194942f, 0.141302f, 0.0975753f, 0.196988f, -0.448153f, -0.198823f, -0.0125964f, 0.0941221f, 0.215659f, -0.0850454f, -0.297703f, 0.0808683f, -0.183705f, 0.115256f, 0.0751682f, -0.200724f, -0.105044f, -0.0859754f, 0.141016f, 0.0152576f, -0.228023f, 0.0882602f, -0.278851f, -0.123024f, -0.186204f, -0.0332553f, 0.207216f, -0.241216f, -0.157338f, -0.0776831f, 0.184948f, 0.203349f, -0.22842f, 0.175341f, -0.11318f, 0.2573f, 0.223931f, 0.213305f, -0.166491f, 0.17872f, -0.0820108f, -0.0896857f, 0.0185401f, 0.061232f, -0.0689875f, -0.173146f, -0.331361f, -0.14468f, 0.104251f, 0.13901f, -0.138177f, -0.169436f, 0.26811f, -0.151059f, -0.577289f, 0.0526401f, -0.198725f, 0.0783258f, 0.135783f, 0.00784552f, 0.121993f, 0.00141041f, -0.492305f, -0.413311f, -0.0529635f, -0.0724717f, -0.271869f, -0.129445f, 0.110246f, -0.0233387f, 0.0022437f, 0.00953533f, -0.248457f, 0.305701f, -0.219663f, 0.118488f, -0.306609f, 0.181165f, -0.114806f, -0.0098134f, -0.167177f, 0.154479f, -0.364926f, -0.0851491f, -0.0472953f, 0.237457f, -0.165483f, 0.0013747f, 0.0596908f, 0.344229f, -0.0467129f, 0.202188f, -0.0302274f, -0.0192734f, -0.177137f, -0.00275685f, 0.0551147f, 0.274914f, -0.380484f, -0.0338883f, -0.337415f, 0.0248161f, 0.039057f, -0.237627f, 0.015384f, 0.0867961f, 0.135544f, -0.0527796f, 0.233536f, -0.15045f, 0.0247048f, 0.0840027f, 0.246099f, 0.0350703f, -0.366865f, -0.327784f, -0.028403f, -0.00126187f, -0.00444142f, -0.0169868f, 0.163512f, -0.0458702f, 0.0688222f, 0.389174f, 0.0572017f, 0.00884045f, 0.220137f, -0.118705f, 0.285819f, -0.0246923f, -0.305432f, -0.145646f, 0.31642f, -0.264259f, -0.32102f, -0.202201f, 0.0943457f, 0.0382419f, -0.0187104f, 0.0274035f, -0.182197f, 0.237166f, -0.164282f, 0.0914851f, 0.013415f, -0.201762f, -0.0414061f, 0.176753f, 0.209333f, -0.100644f, -0.132501f, 0.184488f, 0.230356f, -0.304935f, -0.0125131f, 0.172014f, 0.306474f, 0.0687325f, 0.166985f, -0.04308f, 0.044161f, 0.0302222f, 0.163534f, 0.0730754f, 0.121504f, 0.122993f, 0.139036f, 0.0528972f, 0.0972951f, 0.311765f, 0.237168f, 0.11002f, -0.0507049f, 0.11576f, -0.106544f, 0.222259f, -0.176464f, 0.032183f, -0.170731f, 0.0390612f, 0.263655f, 0.198512f, 0.0945514f, 0.312117f, 0.099305f, 0.0656497f, -0.205937f, -0.314867f, -0.273408f, 0.0582062f, 0.146455f, 0.0800949f, -0.165511f, -0.174483f, 0.0822266f, -0.127886f, 0.120283f, 0.249989f, -0.182818f, 0.056221f, 0.00220887f, 0.00027885f, -0.296814f, 0.143772f, -0.306242f, 0.116345f, 0.234543f, -0.172837f, -0.065979f, 0.112973f, 0.193998f, -0.12792f, -0.0293248f, -0.11299f, 0.0241904f, 0.192175f, -0.0260443f, -0.234532f, 0.0631136f, -0.0124987f, 0.0508803f, -0.0131662f, -0.249125f, -0.0253842f, 0.0801062f, -0.30464f, -0.220843f, -0.0579648f, -0.0619921f, 0.0443049f, 0.182551f, -0.10966f, 0.0175641f, -0.125916f, 0.156184f, -0.151556f, 0.0164364f, 0.114468f, 0.00990587f, 0.115809f, -0.192712f, 0.282273f, -0.0629897f, -0.0473748f, -0.192658f, 0.114947f, -0.17212f, 0.21103f, 0.0161913f, 0.117306f, -0.0602195f, -0.0131116f, -0.179701f, 0.253064f, 0.101523f, 0.0228848f, 0.110148f, -0.0248991f, -0.0758684f, -0.0845035f, 0.0553305f, 0.181162f, -0.0132807f, -0.0962184f, -0.246865f, 0.167939f, -0.165395f, 0.130997f, -0.0746308f, 0.152756f, 0.183291f, -0.0860644f, -0.23811f, -0.0608137f, 0.0477573f, 0.0512302f, -0.00325467f, 0.210319f, 0.0291142f, -0.205987f, -0.0808184f, 0.146308f, 0.10335f, 0.166963f, -0.133656f, -0.0454979f, 0.0749794f, -0.265221f, -0.131337f, -0.141656f, 0.135924f, -0.0662647f, -0.0146194f, 0.0626693f, -0.0262468f, -0.179039f, 0.00175429f, 0.208951f, -0.0782461f, 0.0864105f, 0.235499f, 0.23375f, 0.132391f, 0.187234f, -0.113964f, -0.0523286f, 0.203469f, 0.0676298f, -0.0787492f, -0.25253f, -0.0104836f, -0.0457412f, 0.291222f, 0.0397216f, 0.0791081f, -0.153518f, -0.0320714f, 0.192556f, -0.00793048f, -0.230071f, -0.0434142f, -0.0418421f, -0.147664f, 0.0930364f, 0.102835f, -0.216667f, 0.0443679f, -0.0685482f, -0.209142f, -0.00125661f, 0.131227f, 0.0683258f, -0.0232992f, -0.202565f, 0.0320551f, -0.112051f, 0.179692f, -0.114743f, -0.0249848f, 0.00573846f, -0.00649718f, -0.308169f, 0.154626f, -0.142001f, 0.0314412f, 0.207312f, 0.0838889f, -0.0618827f, -0.17406f, 0.120766f, -0.0671766f, 0.13525f, 0.143184f, 0.125665f, -0.127009f, 0.191762f, 0.0609378f, 0.0108282f, -0.102633f, 0.19722f, 0.0287346f, -0.144951f, -0.24806f, -0.0134807f, -0.028699f, 0.174182f, 0.0533519f, -0.209859f, 0.0707427f, 0.106478f, 0.0393379f, -0.0273181f, 0.233354f, 0.208086f, -0.181298f, 0.0159437f, 0.123974f, -0.303791f, 0.133876f, -0.122943f, 0.144684f, -0.0721062f, -0.0353382f, -0.103851f, 0.129523f, 0.0879899f, -0.156043f, -0.0891699f, -0.142179f, -0.165227f, -0.207782f, 0.0284625f, 0.0454713f, -0.12825f, -0.000552764f, -0.215928f, 0.0428918f, 0.0822877f, -0.145059f, -0.0757198f, 0.000298894f, 0.151805f, 0.230248f, -0.101683f, -0.0811768f, 0.0400865f, -0.12346f, 0.00733462f, 0.0266841f, -0.105015f, -0.219109f, -0.174925f, 0.128487f, 0.204746f, -0.112234f, -0.225514f, -0.142231f, -0.0190445f, -0.201614f, 0.0163901f, -0.00532677f, 0.0604355f, -0.162767f, 0.185569f, -0.153633f, -0.1488f, -0.140449f, -0.0257442f, 0.0821569f, -0.0964399f, -0.188565f, 0.000405746f, -0.205534f, 0.26862f, -0.0405396f, -0.149224f, 0.127844f, 0.0871329f, -0.0631834f, -0.141017f, 0.0542641f, -0.0259308f, 0.0369329f, -0.043353f, 0.0946614f, 0.0139653f, -0.0786201f, 0.232488f, -0.152816f, -0.032578f, -0.150011f, -0.000781428f, 0.089129f, 0.0751317f, -0.0608519f, 0.0142599f, -0.00193754f, -0.0294292f, -0.183455f, -0.131152f, 0.00562584f, -0.283966f, -0.128587f, 0.117626f, 0.00113956f, -0.0632791f, -0.0206057f, -0.0435982f, 0.00589135f, -0.0948899f, 0.185895f, 0.0964328f, 0.221444f, 0.330624f, -0.0156833f, 0.156893f, 0.10719f, 0.000276417f, 0.124708f, -0.110061f, -0.0769672f, -0.333397f, -0.0821741f, -0.0622386f, 0.0680868f, -0.235396f, 0.0463578f, -0.174496f, -0.00966309f, 0.255956f, -0.166226f, -0.12271f, -0.190935f, 0.0263037f, -0.205507f, 0.0333005f, -0.0184851f, -0.0177769f, 0.0549098f, 0.129626f, 0.107435f, -0.18103f, 0.249124f, 0.0528888f, 0.129333f, 0.0349755f, -0.255116f, 0.0262536f, -0.0609041f, 0.14686f, 0.172149f, -0.0384399f, -0.118212f, -0.00819025f, -0.177376f, -0.0273036f, -0.220377f, 0.121317f, 0.0374787f, 0.175315f, 0.0497855f, 0.0751475f, 0.0388822f, -0.0254829f, 0.194617f, -0.0412306f, -0.117954f, 0.112288f, -0.0281514f, -0.145361f, -0.13691f, 0.20341f, -0.200086f, -0.30109f, -0.273191f, 0.180877f, -0.12815f, 0.0508673f, -0.216292f, 0.128165f, -0.0578551f, -0.210275f, 0.0732921f, -0.0344855f, 0.222133f, 0.193174f, 0.232034f, 0.255405f, -0.00601618f, -0.029307f, -0.0415534f, -0.00846546f, -0.213973f, 0.148492f, 0.140825f, 0.0979136f, 0.164332f, 0.0805756f, -0.0891501f, 0.16669f, 0.122294f, 0.0397341f, 0.148422f, 0.287075f, 0.290614f, 0.035538f, 0.208991f, -0.0733517f, -0.106069f, 0.0164058f, 0.0772657f, -0.262796f, -0.248446f, -0.222905f, 0.164199f, -0.0430787f, 0.165001f, -0.0355156f, -0.236595f, -0.0170519f, 0.0278693f, -0.105597f, 0.195279f, -0.00647338f, -0.0874294f, 0.0688756f, -0.100758f, -0.0396596f, -0.133866f, -0.052909f, 0.193625f, 0.0309443f, -0.123045f, -0.0103467f, 0.115068f, 0.00580804f, 0.128351f, -0.150137f, 0.0356977f, -0.124001f, 0.027424f, -0.109561f, 0.330371f, 0.30719f, 0.020857f, 0.00338241f, 0.264584f, -0.0270391f, 0.0425549f, -0.019188f, 0.0471278f, -0.2369f, -0.252817f, -0.11501f, 0.0984623f, 0.202425f, 0.119511f, 0.0301669f, -0.275195f, -0.356989f, 0.13118f, 0.00515699f, 0.0741232f, -0.0553102f, -0.0815966f, 0.0289299f, -0.103949f, 0.207503f, 0.256952f, -0.0121035f, -0.050523f, 0.0175849f, 0.10921f, -0.28065f, 0.0483206f, -0.17933f, -0.0373187f, -0.0117133f, -0.0984362f, 0.00258457f, -0.0948985f, -0.132863f, 0.314993f, -0.0307262f, -0.0750195f, 0.114597f, -0.100302f, 0.0131045f, -0.156573f, -0.0137655f, -0.132244f, 0.298089f, 0.0704429f, 0.00376136f, -0.046699f, 0.146408f, 0.083813f, -0.0664237f, 0.0405672f, -0.0181889f, 0.129868f, 0.0278947f, -0.143274f, 0.0468217f, -0.11831f, 0.120662f, 0.017012f, 0.0666498f, 0.0209672f, -0.144932f, -0.13438f, 0.0878795f, 0.0728877f, -0.110426f, 0.0577673f, 0.099294f, 0.0862109f, -0.173493f, -0.161972f, 0.25489f, -0.27509f, -0.0865151f, -0.0294112f, 0.0556132f, 0.178654f, 0.171233f, -0.0545308f, 0.111162f, 0.00361527f, 0.274416f, 0.242373f, -0.0272798f, 0.0410452f, 0.0119586f, -0.279226f, -0.294389f, -0.0993601f, 0.133969f, 0.117966f, 0.131009f, 0.0801038f, -0.0395871f, 0.0319951f, -0.18454f, -0.0784403f, 0.161406f, 0.051105f, -0.153887f, 0.0999138f, -0.0364472f, 0.051782f, 0.0266013f, 0.134353f, 0.0813326f, -0.188654f, 0.249074f, 0.129183f, -0.125794f, 0.0269397f, 0.00238856f, 0.121247f, 0.0248615f, 0.0464536f, 0.0720388f, -0.108429f, -0.0576607f, -0.070101f, -0.143679f, -0.209695f, -0.116441f, -0.169018f, 0.0134858f, -0.0484193f, -0.0678915f, -0.0316716f, -0.0647136f, -0.155161f, -0.025744f, -0.13626f, 0.0324248f, -0.0157084f, -0.102212f, -0.0258531f, 0.119474f, 0.0641629f, 0.0343664f, -0.0695932f, 0.084461f, 0.0386187f, 0.218542f, -0.0599224f, 0.118672f, 0.0604073f, -0.113852f, -0.123475f, -0.160754f, 0.0794382f, -0.151554f, -0.148625f, 0.174265f, 0.0499125f, 0.120757f, -0.0161941f, -0.258541f, 0.146037f, 0.0664799f, -0.111413f, -0.0628566f, -0.0175212f, 0.133771f, 0.152484f, -0.084839f, 0.123445f, 0.0321935f, -0.12387f, -0.0935609f, 0.00129353f, -0.141378f, 0.0138789f, 0.141057f, 0.0118194f, 0.0559903f, -0.141081f, -0.0592414f, -0.0713406f, -0.0527123f, -0.00447463f, 0.0213686f, -0.24389f, -0.0203872f, -0.126603f, 0.0912343f, -0.0149439f, -0.032912f, 0.122195f, -0.012272f, 0.102961f, 0.0768217f, 0.114985f, -0.082096f, 0.117451f, 0.0552361f, -0.0917806f, -0.0931393f, -0.0597871f, 0.109482f, 0.136046f, -0.0982457f, 0.124675f, -0.0440578f, -0.0290092f, -0.216937f, -0.0585889f, 0.08547f, -0.183637f, 0.240317f, 0.12134f, 0.0775002f, 0.0415832f, 0.13752f, -0.0222492f, -0.173901f, -0.212246f, 0.0335639f, 0.00748134f, -0.00406355f, -0.0470727f, 0.0142754f, 0.0292222f, -0.0903264f, -0.221957f, 0.127109f, -0.0331162f, 0.166293f, 0.0384508f, -0.205376f, -0.0547059f, 0.195855f, -0.0395273f, -0.108129f, 0.0549871f, 0.155301f, -0.249382f, -0.0921647f, 0.0922591f, -0.0898937f, -0.0564467f, 0.0329274f, 0.0747419f, -0.0209895f, 0.119823f, 0.161602f, 0.00936037f, 0.111791f, 0.0383716f, 0.145241f, -0.0584996f, 0.249341f, -0.122412f, -0.0892673f, -0.0422719f, 0.0745538f, 0.0245037f, -0.166599f, -0.126388f, -0.0532942f, 0.0758846f, 0.0374369f, 0.0620536f, 0.128082f, -0.118997f, -0.0329413f, 0.035718f, -0.0676963f, -0.116497f, -0.203552f, 0.175335f, 0.0490771f, -0.0236127f, 0.0421835f, 0.00730383f, 0.247539f, 0.0329518f, 0.143532f, -0.0401982f, 0.0925331f, 0.105625f, -0.0674837f, 0.0242669f, 0.0826764f, 0.129834f, -0.0756262f, -0.0595852f, -0.0460506f, -0.163102f, -0.0368635f, 0.0494285f, 0.126778f, 0.0442706f, 0.186373f, -0.0855775f, 0.0872882f, -0.0572672f, 0.0947205f, 0.00197436f, -0.0716977f, -0.0135433f, 0.094667f, 0.0552035f, 0.108765f, -0.181877f, -0.0265849f, -0.0616789f, 0.105558f, -0.0895127f, 0.108683f, 0.0933426f, 0.0862951f, 0.00547786f, -0.0727346f, -0.037138f, -0.114672f, 0.0811175f, 0.113825f, 0.0214825f, 0.141155f, 0.0221884f, 0.169423f, -0.0765314f, 0.0461199f, -0.162572f, 0.0620892f, 0.0141024f, -0.0699605f, -0.23793f, 0.0317257f, 0.0622119f, -0.226796f, -0.041131f, 0.0957845f, 0.149278f, -0.0605889f, 0.226796f, -0.0404787f, -0.0317901f, 0.205589f, -0.0452635f, -0.204687f, 0.272014f, -0.134753f, 0.238984f, 0.203554f, -0.154417f, -0.178429f, 0.211829f, -0.117124f, -0.0321472f, -0.00260896f, -0.108646f, -0.191667f, 0.120702f, 0.0130496f, 0.0394606f, 0.00119836f, 0.167957f, 0.0864806f, -0.0489556f, 0.136586f, 0.0309304f, 0.0378184f, -0.0705595f, -0.097732f, 0.0519364f, 0.0468765f, -0.0729354f, 0.1968f, -0.10465f, -0.0249851f, 0.0237486f, -0.0267581f, -0.112235f, -0.162259f, 0.189115f, 0.0829992f, -0.120548f, 0.0952815f, 0.0466801f, 0.0612306f, 0.0267514f, 0.13151f, 0.0637594f, 0.0774906f, -0.163296f, 0.120795f, 0.0409322f, -0.0154977f, 0.0940223f, 0.0794385f, -0.283843f, -0.412438f, -0.325385f, 0.391328f, -0.0592192f, 0.100201f, -0.307004f, -0.0193452f, 0.207064f, 0.182235f, -0.0129598f, 0.11427f, 0.00754829f, -0.107674f, -0.0563163f, -0.0433229f, -0.107545f, -0.186322f, 0.122339f, 0.0969421f, -0.131048f, -0.0492276f, -0.0749647f, -0.225253f, -0.284407f, -0.246933f, -0.173971f, 0.0692299f, 0.115635f, 0.0986392f, 0.103387f, -0.29516f, 0.152274f, 0.0171123f, 0.27568f, 0.296371f, -0.0552705f, -0.195537f, 0.265222f, -0.104075f, -0.212159f, -0.0818443f, -0.100129f, 0.124444f, -0.0675413f, 0.0583206f, -0.150287f, 0.0504558f, -0.141688f, -0.156488f, -0.134789f, -0.233902f, -0.152346f, -0.111283f, 0.0983469f, 0.129388f, -0.268338f, 0.116776f, -0.140823f, 0.0485016f, 0.295602f, -0.134011f, 0.171026f, -0.3567f, 0.108819f, -0.216935f, -0.325537f, -0.0344588f, -0.14498f, 0.0599027f, -0.00848852f, 0.277704f, 0.132571f, 0.183788f, 0.203323f, 0.142759f, 0.0363759f, -0.0725548f, 0.0207125f, 0.248936f, 0.202374f, -0.164245f, -0.211591f, 0.0648084f, 0.173185f, 0.0718576f, -0.177657f, -0.134569f, -0.147508f, -0.233561f, -0.10602f, 0.222227f, 0.237219f, -0.159065f, -0.221468f, 0.0019754f, 0.149119f, 0.224999f, -0.217021f, 0.119346f, 0.411437f, 0.0863869f, 0.0149623f, -0.0312721f, 0.161482f, -0.204917f, 0.0245584f, 0.0982187f, -0.0268811f, -0.232047f, 0.0590753f, -0.36768f, 0.224048f, 0.0695177f, 0.00522038f, -0.173178f, -0.319421f, -0.128153f, 0.0759192f, -0.0278698f, 0.0940954f, 0.167916f, -0.0834759f, -0.113568f, 0.0142651f, 0.291504f, 0.0143158f, -0.239575f, 0.0865141f, -0.104292f, -0.222266f, 0.204117f, -0.0797476f, 0.145552f, -0.0606938f, -0.0377964f, -0.0348428f, 0.115019f, -0.0174596f, -0.0858638f, -0.30202f, -0.0621306f, -0.113447f, 0.173097f, 0.067718f, -0.130675f, 0.0696882f, -0.335054f, -0.0723961f, 0.0141009f, 0.010316f, -0.155589f, 0.0228556f, 0.0387384f, -0.0475993f, -0.105216f, -0.351611f, 0.0487681f, -0.186063f, -0.112356f, 0.144369f, 0.342623f, -0.209445f, 0.0552299f, -0.387327f, -0.0324631f, 0.111593f, 0.291346f, -0.116137f, 0.255898f, -0.0710883f, -0.0514472f, -0.214521f, -0.144066f, -0.154032f, 0.149547f, 0.0460019f, -0.110376f, -0.221841f, -0.0299048f, -0.0605868f, -0.0437214f, -0.029211f, -0.0515678f, 0.184881f, -0.0414264f, 0.107743f, -0.00727056f, -0.0218953f, -0.0795035f, 0.341133f, 0.0203625f, 0.114618f, 0.112134f, -0.191465f, 0.0774918f, -0.0385705f, 0.0279265f, 0.0222244f, -0.0185277f, -0.0792703f, -0.0615024f, 0.0301023f, 0.0259067f, -0.19137f, 0.11751f, -0.160038f, -0.0170511f, -0.152201f, 0.0250293f, 0.179529f, -0.00155976f, 0.0556907f, 0.213976f, 0.146703f, -0.0999684f, 0.320241f, 0.320557f, -0.0761305f, -0.0564966f, 0.0258221f, -0.133878f, -0.0983001f, -0.0186992f, -0.0269766f, -0.271505f, -0.0050008f, -0.357958f, 0.0816852f, 0.207876f, -0.0725871f, -0.216168f, -0.235386f, -0.0470161f, 0.0103857f, -0.18735f, -0.137122f, -0.0734114f, -0.169467f, -0.12675f, -0.00723014f, -0.0891976f, 0.0252599f, -0.0666215f, -0.0739751f, 0.0410237f, 0.0154692f, 0.139335f, -0.0686885f, 0.389929f, 0.187205f, -0.245407f, 0.0919046f, 0.379842f, 0.0180052f, 0.135226f, -0.0218424f, -0.186835f, 0.154418f, -0.0596009f, 0.167678f, -0.174138f, -0.268129f, 0.342462f, -0.00152738f, -0.0918824f, -0.28155f, 0.144452f, 0.102269f, 0.0385453f, 0.217535f, -0.12887f, 0.0342793f, 0.0894998f, 0.225727f, 0.00104036f, 0.387514f, -0.259052f, -0.0486228f, 0.0512158f, -0.0106556f, 0.0188785f, 0.0129627f, -0.0173935f, -0.172059f, -0.0544489f, 0.25297f, -0.115328f, -0.109033f, -0.189757f, 0.109139f, 0.129699f, -0.133939f, -0.097049f, -0.263046f, -0.100092f, 0.0213523f, 0.160666f, -0.0548979f, -0.0510351f, 0.186692f, 0.152324f, 0.0211036f, 0.190405f, -0.211105f, -0.092197f, 0.254164f, -0.234647f, 0.223134f, -0.10502f, -0.17575f, -0.0399214f, -0.01525f, -0.0138051f, 0.0730797f, -0.100729f, 0.036908f, 0.112873f, 0.275012f, 0.222309f, 0.0819288f, 0.0589812f, 0.0885515f, -0.25829f, 0.17488f, 0.186038f, -0.217596f, 0.07606f, 0.00100552f, 0.0101035f, 0.124965f, -0.168383f, 0.0930721f, -0.0504745f, 0.0126503f, -0.0437245f, 0.123355f, 0.0282002f, -0.0502454f, -0.0236092f, 0.382756f, 0.212753f, 0.364011f, 0.291367f, -0.161673f, -0.308981f, 0.0672678f, 0.0436164f, 0.148724f, 0.328703f, 0.309544f, 0.0351706f, -0.195548f, -0.281737f, -0.101389f, -0.0751514f, -0.119075f, -0.1301f, 0.0222088f, -0.0747958f, 0.0111866f, -0.056257f, -0.0101066f, 0.0666676f, 0.0858476f, -0.212365f, 0.112911f, -0.0182374f, -0.178013f, 0.091655f, 0.0496967f, -0.233918f, -0.301827f, 0.242416f, 0.107536f, 0.220017f, -0.00773307f, 0.213353f, -0.282398f, 0.124553f, -0.0581718f, 0.385755f, 0.0562504f, -0.291001f, -0.137768f, 0.121167f, -0.0395996f, -0.143529f, -0.222185f, -0.380504f, 0.0447707f, 0.00848479f, -0.0580519f, -0.336959f, -0.152117f, 0.0260395f, -0.0548415f, -0.0351638f, -0.217573f, -0.278788f, -0.0273f, 0.191117f, 0.0489655f, 0.172085f, -0.330973f, 0.143114f, 0.0691075f, 0.00881537f, 0.042534f, -0.15082f, 0.220588f, -0.0389902f, -0.0987353f, 0.00409049f, -0.142587f, 0.129372f, 0.130314f, -0.132801f, 0.0306775f, 0.234851f, 0.234878f, 0.00229948f, 0.116492f, -0.149341f, -0.402382f, 0.388521f, 0.339294f, -0.383101f, 0.28409f, 0.0705891f, 0.139841f, -0.188144f, 0.134993f, -0.000854493f, -0.122422f, -0.0286106f, -0.0795225f, -0.38029f, -0.0409163f, -0.403553f, 0.220248f, 0.310807f, 0.0203212f, 0.184071f, -0.265062f, 0.219195f, -0.138642f, 0.209668f, 0.0849315f, -0.005569f, -0.00898213f, -0.0474672f, -0.0637956f, 0.0644538f, -0.0420387f, 0.124811f, -0.130224f, -0.0159052f, 0.147843f, 0.0423002f, -0.00355814f, 0.0592938f, -0.052422f, -0.0869047f, -0.148105f, 0.196683f, -0.193294f, 0.255589f, 0.151657f, -0.00200165f, -0.0341082f, 0.0259409f, -0.161905f, 0.0611839f, 0.116912f, 0.0600921f, 0.0718457f, -0.163661f, -0.180354f, 0.0150979f, 0.0539947f, 0.338549f, -0.087402f, -0.0159998f, 0.0137693f, 0.175395f, -0.221869f, 0.2762f, 0.244706f, 0.168877f, 0.198391f, -0.00242911f, -0.0989182f, 0.199515f, -0.0315324f, 0.202669f, -0.0253351f, 0.182253f, 0.127688f, 0.0334722f, 0.102584f, 0.261783f, -0.0118249f, -0.258817f, 0.154683f, -0.0875309f, 0.0255103f, -0.109287f, -0.0154516f, -0.12605f, 0.238395f, -0.108147f, -0.103606f, -0.253711f, 0.295326f, 0.0273672f, -0.0639931f, 0.289549f, 0.113453f, 0.225061f, 0.0849123f, -0.35114f, -0.14915f, 0.0114735f, -0.118371f, -0.303713f, 0.200231f, 0.115969f, 0.234177f, -0.0999536f, 0.0478422f, 0.0522636f, -0.00227317f, -0.0525375f, -0.286765f, 0.0526445f, -0.121768f, -0.0168746f, -0.203212f, 0.144166f, 0.0717564f, 0.161548f, -0.0461235f, -0.232555f, -0.294849f, 0.077492f, 0.222703f, 0.140938f, 0.0570845f, 0.108908f, 0.271259f, 0.171905f, 0.0855381f, -0.185606f, 0.121948f, 0.22029f, 0.0549816f, -0.0360108f, 0.0421946f, -0.210213f, 0.104256f, -0.137538f, -0.133739f, -0.14188f, -0.0203889f, 0.0656767f, -0.0284477f, -0.192627f, 0.149194f, -0.0607917f, -0.0711467f, 0.0515743f, -0.247306f, 0.179168f, 0.0171482f, 0.0161864f, -0.0484741f, 0.043353f, 0.0797254f, 0.0327124f, 0.05768f, 0.102432f, -0.112361f, -0.213323f, -0.0183321f, 0.0563989f, -0.050658f, -0.0377057f, 0.279329f, 0.100712f, 0.127762f, -0.12489f, -0.0747915f, -0.0595294f, -0.263939f, 0.0855179f, 0.133928f, 0.15779f, 0.147027f, -0.177164f, -0.185749f, -0.184977f, 0.0908992f, -0.0662255f, 0.0367514f, 0.162788f, 0.00454729f, -0.0134497f, -0.146707f, 0.110338f, -0.192993f, -0.00906545f, 0.0864507f, -0.144444f, -0.20505f, 0.218897f, -0.0130373f, 0.210634f, 0.249027f, -0.00922901f, 0.0895848f, 0.245762f, -0.0133053f, 0.122998f, 0.286618f, -0.0498385f, 0.166746f, 0.150027f, 0.0741277f, 0.245962f, 0.0738985f, -0.138873f, -0.0919972f, 0.0287571f, -0.0684052f, -0.0432523f, -0.0235431f, -0.0377455f, 0.101048f, -0.218912f, -0.0119941f, 0.24536f, -0.050662f, 0.227777f, 0.0787471f, 0.0106406f, -0.000796397f, -0.0462925f, -0.121533f, 0.132413f, -0.157563f, 0.10146f, 0.0551155f, 0.188042f, -0.0649307f, 0.124072f, -0.184779f, -0.0465849f, -0.0949845f, 0.0536521f, -0.209987f, -0.0216889f, -0.0477409f, -0.0221045f, -0.0130163f, 0.106492f, -0.0145702f, 0.00498548f, -0.0251865f, 0.0845538f, -0.202639f, 0.0565374f, -0.0914584f, 0.0890732f, 0.0533439f, -0.180147f, -0.000884269f, 0.193206f, -0.19261f, 0.248465f, 0.0449888f, -0.331592f, 0.0278598f, -0.0705226f, 0.200181f, 0.272023f, -0.114342f, -0.200753f, -0.0258674f, 0.0229113f, -0.0880277f, 0.0452501f, 0.0639961f, -0.121196f, -0.0802646f, -0.206944f, -0.17851f, -0.0441064f, 0.00980553f, 0.106516f, -0.13657f, -0.00139135f, -0.128764f, -0.017453f, -0.281969f, -0.0349037f, -0.0378254f, 0.0595999f, -0.171205f, 0.0730708f, 0.127271f, 0.204216f, -0.124822f, -0.185812f, 0.260301f, -0.178665f, 0.0144802f, 0.0113733f, 0.0725923f, 0.0816173f, 0.0864636f, 0.180859f, 0.209386f, -0.208455f, 0.150254f, 0.304072f, 0.105275f, -0.282004f, 0.261878f, -0.0669789f, -0.0187931f, -0.0516298f, 0.107875f, 0.188871f, -0.0811078f, 0.214494f, 0.0730442f, -0.112946f, 0.0200591f, 0.122194f, -0.193306f, 0.0113817f, 0.299779f, 0.159009f, 0.150942f, -0.116555f, 0.0140364f, 0.0441337f, -0.0311363f, -0.15792f, -0.0168766f, -0.18529f, -0.161604f, -0.130608f, -0.132922f, -0.0954194f, -0.0639165f, 0.0943106f, -0.0947775f, 0.037828f, -0.123055f, 0.086936f, 0.148644f, -0.0458071f, 0.206563f, 0.00758858f, -0.107063f, -0.0954641f, -0.150231f, -0.132125f, -0.180803f, -0.0396043f, -0.107447f, 0.127975f, 0.151001f, -0.0513607f, -0.119991f, -0.076195f, -0.0679179f, -0.0144539f, 0.252266f, -0.0235971f, -0.0471975f, 0.0433785f, 0.07135f, 0.139647f, 0.166508f, 0.077249f, 0.0393175f, 0.110017f, 0.0335355f, -0.0836676f, 0.00908394f, -0.138806f, -0.0877785f, -0.0127937f, 0.00534127f, 0.17809f, -0.131034f, -0.0123415f, -0.0980924f, -0.181667f, -0.155054f, 0.0795172f, 0.258803f, -0.113663f, -0.0203882f, -0.120499f, 0.182889f, 0.0988437f, 0.187301f, 0.129857f, 0.14654f, -0.113668f, -0.0246006f, -0.0891582f, 0.0271164f, 0.160412f, -0.156684f, 0.0977627f, -0.0938344f, 0.0187559f, -0.00897839f, 0.0231609f, -0.0331403f, 0.0147557f, -0.0677088f, -0.203515f, 0.196132f, 0.0930721f, 0.195886f, 0.152706f, 0.246193f, 0.118069f, -0.062286f, -0.110409f, -0.239766f, 0.121616f, 0.181034f, 0.0247249f, 0.0757368f, -0.0920024f, -0.117935f, -0.0424646f, -0.0402245f, -0.0996485f, -0.150542f, 0.101539f, 0.0210849f, 0.0454993f, -0.0105304f, 0.0244972f, 0.130749f, 0.116418f, -0.0649205f, -0.225601f, 0.055608f, -0.0346384f, -0.0213919f, 0.0353989f, 0.0484077f, 0.205347f, -0.201197f, -0.145201f, -0.127206f, -0.13419f, -0.162946f, -0.1545f, -0.154358f, -0.0995796f, -0.0890895f, -0.0803614f, 0.0149643f, -0.0744312f, -0.0906753f, -0.00584791f, 0.180072f, -0.133232f, 0.149861f, -0.0641951f, 0.141916f, 0.0553128f, -0.0772265f, 0.130837f, 0.201252f, -0.19381f, -0.197454f, -0.0259642f, 0.0981485f, -0.0450077f, 0.00386921f, -0.0453493f, 0.0926944f, 0.12578f, -0.234883f, -0.0308839f, 0.0690097f, -0.0724703f, 0.125837f, -0.1358f, 0.0488069f, 0.114923f, -0.137866f, -0.0393142f, 0.163892f, -0.221556f, 0.0386329f, -0.103305f, -0.0125932f, -0.134201f, 0.0594924f, 0.0951319f, -0.0919242f, 0.0250856f, 0.134804f, -0.122381f, -0.146702f, 0.0790182f, 0.0341315f, 0.106598f, -0.0267121f, -0.105045f, -0.117294f, -0.147568f, 0.0641607f, -0.104917f, -0.169003f, -0.163363f, 0.0349433f, 0.0929041f, 0.0502228f, 0.092059f, 0.194487f, 0.010728f, -0.0968259f, -0.191658f, -0.0502604f, 0.0153167f, -0.196607f, 0.147044f, 0.154412f, 0.0512895f, 0.0360466f, -0.0785051f, -0.12817f, -0.121424f, 0.0116739f, -0.0495524f, -0.0234621f, 0.0276188f, 0.189832f, 0.0319055f, -0.0286096f, -0.0719335f, -0.192684f, 0.0772986f, -0.097477f, 0.140307f, -0.0973589f, 0.192255f, 0.0013547f, 0.019106f, 0.134387f, 0.00400077f, 0.0535235f, -0.0472755f, 0.0503519f, 0.0333805f, 0.12726f, -0.0515985f, 0.0560354f, 0.12836f, 0.042721f, -0.0882452f, -0.153414f, -0.0946247f, 0.0768604f, -0.132428f, -0.161075f, -0.0701464f, -0.0753259f, -0.0330801f, 0.0645963f, -0.0537619f, 0.135166f, 0.159735f, 0.069761f, 0.0877995f, -0.123161f, 0.139026f, 0.00624779f, -0.0255504f, 0.113364f, -0.0349631f, -0.148354f, 0.153479f, -0.150039f, 0.0583313f, 0.00564031f, 0.0649401f, 0.0772078f, 0.0445295f, 0.153634f, -0.174703f, 0.0632012f, -0.188911f, 0.0280459f, 0.126742f, -0.171454f, 0.249569f, 0.162045f, -0.0142494f, 0.117918f, 0.256454f, -0.209003f, 0.0142068f, 0.212367f, 0.129575f, -0.172376f, -0.0555916f, 0.272911f, 0.0341274f, 0.0824997f, -0.11039f, -0.0448307f, -0.220231f, -0.00650079f, -0.0151262f, -0.0538062f, -0.169922f, -0.221532f, 0.258346f, 0.108413f, 0.273131f, -0.00116702f, -0.0274758f, -0.209458f, -0.23756f, 0.058765f, 0.191692f, 0.0552889f, 0.237993f, -0.0702614f, -0.0529281f, 0.110237f, -0.0945993f, -0.121215f, -0.2667f, 0.128712f, 0.277814f, 0.118421f, -0.0908446f, -0.0477214f, 0.0544832f, -0.0010606f, 0.12648f, -0.0173666f, 0.0363299f, 0.102631f, -0.0597436f, 0.185782f, 0.00998905f, -0.0558313f, -0.0195303f, 0.093576f, 0.0825452f, -0.0686731f, -0.0678058f, 0.0214543f, 0.178781f, -0.102985f, -0.0198689f, 0.0331044f, -0.0283447f, 0.0792482f, 0.0559139f, 0.0516132f, 0.199166f, -0.130395f, 0.0870841f, 0.03476f, -0.0300426f, 0.115201f, 0.0917425f, -0.259924f, -0.136271f, -0.264253f, 0.0577528f, -0.014444f, -0.0154111f, 0.160912f, 0.0413454f, 0.273307f, -0.154951f, 0.0777523f, -0.08374f, -0.116152f, 0.011879f, 0.171104f, 0.0941763f, 0.218478f, 0.0982632f, -0.0815468f, 0.0746481f, 0.0395686f, -0.156889f, -0.143561f, 0.142897f, 0.144826f, -0.0299996f, 0.190995f, 0.222999f, 0.128225f, -0.195742f, 0.13702f, 0.011369f, 0.123255f, 0.057233f, 0.00661426f, 0.175468f, -0.0140225f, -0.057485f, 0.043859f, -0.0851953f, -0.0473997f, 0.265059f, -0.196728f, 0.182894f, -0.0470878f, -0.0313623f, -0.15411f, -0.0492592f, 0.43653f, 0.0448028f, -0.146823f, 0.00464388f, 0.143085f, 0.0517552f, 0.0416648f, 0.150927f, -0.343791f, 0.180466f, 0.189161f, 0.146763f, -0.108558f, 0.0416617f, 0.13454f, -0.136449f, 0.00113524f, -0.137318f, 0.185324f, 0.194929f, 0.13009f, 0.044593f, -0.18669f, 0.0346242f, -0.13295f, 0.0768323f, 0.218094f, 0.156949f, 0.0317132f, -0.272942f, -0.31375f, -0.108307f, 0.0927988f, 0.299548f, -0.0755335f, -0.11627f, -0.112752f, 0.119771f, -0.0279828f, 0.209581f, -0.124545f, 0.116871f, 0.0296073f, -0.00284659f, -0.218455f, 0.11266f, 0.131551f, 0.250903f, -0.231356f, 0.141265f, 0.137856f, -0.0661946f, -0.114954f, -0.139842f, -0.0720849f, 0.119048f, -0.217879f, 0.101214f, -0.0151166f, 0.0847141f, 0.208419f, 0.0831352f, -0.15821f, 0.125258f, 0.0243146f, 0.0573932f, -0.0927866f, -0.207678f, 0.131092f, -0.0501891f, 0.099864f, -0.108299f, -0.107255f, 0.0270575f, 0.134291f, -0.173824f, 0.0234146f, 0.223178f, 0.171104f, 0.182338f, 0.0867663f, -0.093127f, -0.106409f, -0.128762f, 0.108979f, 0.154345f, 0.0081093f, -0.00751198f, -0.117646f, 0.00641043f, -0.143116f, 0.0204894f, 0.0221905f, 0.106083f, -0.0157258f, -0.189955f, -0.0830967f, -0.0716584f, -0.0775856f, -0.147886f, 0.218082f, -0.16778f, 0.00982079f, 0.0692835f, 0.0875981f, -0.188221f, -0.0142732f, 0.253925f, 0.0273142f, -0.0665525f, 0.0748421f, -0.0816135f, -0.0634126f, 0.0930958f, 0.337566f, -0.0187866f, 0.14257f, 0.199746f, -0.172706f, 0.200567f, -0.0701585f, -0.0329733f, -0.19417f, -0.0232813f, 0.0215263f, 0.0483207f, 0.230169f, -0.0964335f, 0.173668f, 0.0338506f, -0.170163f, 0.20667f, 0.0450497f, 0.0608504f, -0.145428f, -0.121585f, 0.282141f, 0.075852f, -0.0623946f, -0.127225f, 0.164576f, -0.0346382f, -0.132386f, -0.00988475f, -0.219284f, -0.149655f, 0.0217738f, -0.131185f, -0.0370639f, 0.134272f, 0.0211597f, -0.0731611f, 0.0440442f, 0.0145543f, -0.166219f, -0.155512f, 0.0268991f, -0.238485f, 0.120456f, 0.0332754f, 0.119101f, -0.130833f, -0.0051907f, -0.109062f, -0.107897f, 0.158889f, 0.0241312f, -0.0946019f, -0.0491436f, -0.0338267f, -0.0319229f, 0.0519876f, -0.102232f, 0.0682622f, -0.0297349f, 0.0804074f, 0.154159f, 0.0795363f, 0.0034388f, 0.122211f, 0.0721791f, 0.0849685f, -0.0520854f, -0.215072f, 0.140331f, 0.028546f, 0.0777231f, 0.0736901f, -0.228279f, -0.132249f, -0.0878563f, -0.0175685f, 0.0520243f, -0.0682731f, 0.0774631f, -0.214572f, 0.10425f, -0.075741f, -0.04721f, 0.181815f, 0.0746596f, -0.158706f, 0.145378f, 0.0452236f, -0.042551f, -0.0299905f, -0.0707922f, 0.0508974f, -0.118022f, -0.253114f, 0.149218f, -0.0349528f, -0.129941f, 0.0265007f, 0.0580512f, 0.135587f, 0.204439f, 0.00171198f, 0.168332f, 0.0265749f, -0.0919471f, -0.072301f, 0.22863f, 0.0964351f, -0.0268997f, 0.0756573f, -0.224311f, -0.0100003f, -0.289865f, 0.121281f, -0.0240322f, 0.15325f, 0.263636f, 0.0956844f, 0.0741492f, 0.112554f, -0.131784f, -0.166231f, 0.053953f, 0.158997f, -0.210811f, -0.0126724f, -0.0143394f, 0.209592f, 0.215929f, -0.0718164f, 0.0856954f, 0.257332f, -0.359719f, 0.0995725f, 0.100397f, 0.116969f, -0.0506473f, 0.159156f, -0.141404f, -0.00362726f, -0.206198f, -0.216553f, -0.113516f, 0.153697f, 0.189908f, 0.271665f, 0.0730702f, -0.0201318f, 0.0653849f, -0.0312862f, 0.233555f, -0.0218693f, -0.101266f, 0.0120357f, 0.154054f, -0.252137f, -0.278313f, -0.252565f, -0.110656f, 0.0578711f, 0.014104f, -0.13735f, -0.234835f, -0.194245f, 0.246849f, 0.316857f, 0.162814f, 0.131774f, -0.000682384f, 0.0566371f, -0.176797f, 0.227251f, 0.0126454f, 0.059639f, -0.194294f, 0.185173f, 0.00339819f, 0.157555f, 0.166739f, -0.120852f, -0.0220667f, -0.0666672f, 0.112758f, -0.12932f, 0.129827f, -0.015472f, -0.226125f, 0.0467672f, -0.16076f, 0.311f, 0.0199014f, -0.190228f, 0.171867f, -0.0813482f, 0.0460947f, -0.0183224f, -0.288403f, 0.114184f, 0.0724425f, -0.224206f, -0.224325f, 0.0171267f, -0.0254178f, -0.0384303f, -0.00753777f, 0.153871f, 0.235879f, -0.0041339f, 0.249563f, 0.190997f, 0.192348f, -0.0530222f, 0.274823f, -0.0375626f, -0.0573946f, -0.363798f, 0.0717357f, 0.0207792f, 0.148516f, -0.0492743f, 0.0907509f, -0.172152f, 0.175496f, -0.0209291f, 0.0348329f, 0.215935f, 0.0800212f, -0.0537469f, 0.162423f, -0.139638f, -0.199044f, -0.116872f, 0.182847f, 0.113031f, 0.123615f, -0.296272f, 0.0153813f, -0.0536346f, -0.0570764f, 0.107486f, 0.00885838f, -0.143097f, 0.370492f, 0.0367036f, 0.243951f, 0.0168456f, 0.159737f, -0.120849f, -0.0369023f, -0.0581125f, 0.208166f, 0.195883f, -0.0909225f, 0.255708f, 0.0574124f, 0.197329f, 0.00625517f, -0.028493f, 0.144199f, -0.0274222f, -0.107547f, 0.00237699f, -0.0327591f, 0.247874f, 0.195356f, -0.0279398f, 0.321229f, 0.141585f, -0.121994f, -0.09117f, 0.0568065f, -0.10498f, -0.00199626f, 0.105179f, 0.0629124f, -0.0494963f, -0.285421f, 0.051523f, 0.126445f, 0.0311342f, 0.00028328f, -0.195866f, 0.0511075f, 0.257785f, -0.023325f, -0.080218f, -0.0925094f, 0.202783f, 0.2528f, -0.00543249f, 0.168281f, -0.0836428f, -0.00396876f, -0.0656932f, -0.115285f, 0.095443f, 0.0177367f, -0.226399f, 0.0880166f, 0.0858987f, 0.0126995f, -0.0556881f, -0.0805234f, 0.192738f, -0.225838f, 0.176147f, -0.019244f, -0.0470391f, 0.066754f, -0.167723f, 0.11689f, -0.005428f, -0.0954494f, 0.110707f, -0.29083f, -0.251054f, -0.164743f, 0.0860785f, -0.0510026f, 0.19399f, 0.192704f, 0.107076f, -0.00878475f, 0.201528f, 0.0663982f, -0.0148866f, 0.2741f, -0.113037f, -0.0356641f, -0.295712f, -0.119579f, -0.0117606f, 0.0598066f, 0.108314f, 0.0776243f, -0.0820618f, -0.248403f, 0.13546f, 0.130733f, 0.0744158f, -0.0647513f, -0.159243f, 0.0419059f, 0.0533677f, 0.048646f, -0.070449f, 0.199102f, 0.00323868f, 0.254561f, 0.0714842f, -0.0976112f, 0.00782018f, 0.20759f, -0.0634971f, -0.139689f, -0.1945f, -0.0769952f, 0.198616f, 0.0362157f, 0.0508114f, 0.0416815f, 0.127151f, 0.142988f, -0.340708f, -0.0410336f, 0.00459977f, -0.138255f, 0.112613f, 0.198806f, -0.0498174f, -0.029438f, 0.00280231f, 0.0110702f, 0.01486f, 0.111033f, -0.107711f, 0.093023f, -0.239109f, -0.175457f, -0.171388f, -0.303528f, 0.0777903f, -0.0101523f, -0.0299388f, 0.198992f, -0.101148f, 0.191274f, -0.0320581f, 0.148854f, -0.1133f, 0.0940616f, -0.0337505f, 0.123438f, 0.258656f, -0.176054f, -0.0591763f, 0.154148f, -0.0397031f, -0.0798807f, -0.0529051f, -0.0662297f, -0.203324f, 0.0400566f, 0.167776f, -0.0928352f, 0.0559595f, -0.00709999f, -0.0938923f, -0.144658f, -0.106036f, -0.193888f, 0.0984555f, 0.0247691f, -0.0872789f, 0.000678161f, 0.319722f, -0.0208655f, 0.206679f, 0.319256f, 0.133632f, -0.166787f, 0.0475862f, -0.119643f, -0.0441065f, 0.172352f, 0.264035f, -0.0406781f, -0.149339f, 0.132175f, 0.0353392f, -0.111776f, 0.072676f, -0.0525137f, -0.00149188f, -0.0295246f, -0.0539917f, -0.155315f, -0.0431708f, 0.150114f, -0.0503749f, -0.00614387f, -0.17495f, 0.115155f, 0.149045f, -0.104982f, -0.0440789f, -0.0786612f, 0.134872f, -0.191169f, 0.0462021f, -0.0475336f, -0.115733f, -0.0989274f, 0.162176f, -0.0781107f, -0.00371134f, 0.187435f, -0.0755541f, 0.0401912f, 0.166269f, -0.214338f, 0.248177f, -0.0524456f, -0.0870754f, 0.0694886f, 0.23643f, 0.19715f, -0.106892f, -0.0319728f, -0.283918f, -0.110488f, 0.0459312f, 0.031135f, 0.0766373f, 0.180548f, -0.200521f, 0.0486825f, 0.0725576f, 0.0189405f, 0.168874f, 0.0898746f, 0.0995231f, -0.280727f, 0.194749f, -0.0447885f, -0.104236f, 0.155309f, -0.0156819f, -0.0394891f, 0.00791292f, -0.236453f, -0.0766023f, 0.205651f, 0.0122595f, 0.31864f, -0.0578933f, 0.149329f, 0.131654f, -0.0566f, 0.195443f, -0.317208f, -0.00260439f, -0.185709f, 0.0141713f, -0.00579113f, 0.243309f, 0.0675449f, -0.0404785f, -0.111594f, 0.293926f, 0.0116787f, -0.0896f, 0.202051f, 0.137577f, -0.180786f, -0.24961f, -0.0332838f, 0.0176662f, 0.000456063f, 0.0733347f, 0.265671f, -0.0882707f, 0.22609f, 0.0391464f, 0.0944054f, 0.0822199f, 0.196027f, 0.0638591f, -0.0395697f, -0.139641f, -0.0602356f, -0.187858f, 0.0518003f, 0.247074f, 0.0537997f, 0.0282402f, 0.0429403f, -0.05457f, 0.0563735f, 0.0287231f, -0.0847984f, 0.0417817f, 0.0675891f, -0.111004f, -0.098711f, 0.165055f, -0.0521095f, -0.0417794f, 0.11502f, -0.0677266f, 0.180979f, 0.150806f, 0.159756f, 0.20006f, -0.194901f, -0.20353f, 0.0654822f, -0.158645f, 0.0254417f, -0.0323413f, -0.0538978f, 0.102261f, 0.0359769f, 0.000233102f, -0.0290015f, 0.0858178f, -0.00782179f, -0.105261f, 0.0337898f, 0.00769674f, -0.11275f, -0.0144802f, 0.0792788f, -0.0393888f, -0.109086f, -0.200859f, -0.00778522f, -0.121597f, 0.145139f, -0.0096123f, -0.0230622f, -0.0712536f, -0.0307327f, -0.137653f, -0.0861125f, -0.012707f, -0.224517f, -0.0839136f, 0.086337f, -0.109207f, 0.0595725f, -0.0423538f, 0.0563947f, 0.038095f, 0.11708f, 0.174425f, -0.0187399f, -0.0838698f, 0.113403f, 0.041476f, -0.0301491f, 0.123452f, -0.197149f, -0.151782f, -0.194866f, -0.0948536f, 0.0668321f, 0.0891996f, 0.0662043f, 0.111646f, -0.0446007f, 0.0988268f, -0.0338309f, 0.00243266f, 0.136343f, -0.0867853f, 0.0251536f, 0.0838566f, 0.189048f, 0.0173782f, -0.0319614f, -0.045992f, 0.0652508f, -0.157897f, -0.0869586f, 0.0610955f, 0.262232f, -0.00331394f, -0.0821176f, -0.0214415f, 0.116892f, -0.0492588f, 0.0519229f, -0.0650256f, 0.0336787f, -0.181131f, -0.16735f, 0.0364233f, -0.136498f, 0.00981126f, -0.078918f, -0.0280437f, -0.10156f, 0.0547895f, -0.0143509f, 0.138769f, -0.0246917f, -0.058795f, 0.0486936f, 0.0406906f, -0.232151f, 0.126017f, 0.128829f, -0.15568f, -0.146151f, 0.130947f, 0.197315f, -0.0394045f, 0.130744f, 0.0725112f, -0.013893f, 0.0934239f, -0.0247533f, -0.0781081f, 0.0282718f, -0.177187f, 0.146751f, -0.0388748f, -0.00442873f, -0.0279474f, -0.0770484f, 0.0272099f, -0.032366f, 0.242007f, 0.156638f, 0.0305786f, 0.0774019f, -0.03736f, -0.0697413f, 0.0512951f, -0.0996678f, -0.112697f, -0.11193f, -0.0736478f, -0.010231f, 0.207657f, 0.160293f, -0.0717323f, -0.0886688f, -0.219069f, 0.089916f, -0.0145675f, 0.0840402f, 0.13078f, 0.148566f, 0.0171258f, 0.0845763f, 0.12935f, -0.00749153f, -0.0692385f, -0.0581614f, 0.0888882f, 0.0350479f, -0.133318f, 0.260085f, -0.0110925f, 0.127947f, 0.0974416f, 0.181722f, 0.141321f, -0.0210356f, 0.0125435f, -0.0545545f, 0.107082f, 0.0632633f, -0.147941f, -0.128353f, 0.0383904f, -0.112023f, -0.0718891f, 0.107047f, -0.236724f, -0.0803553f, 0.0208639f, 0.0889827f, 0.0581782f, -0.0504344f, 0.141328f, -0.00467309f, -0.000254152f, 0.217478f, -0.113256f, -0.0342449f, -0.291688f, -0.124681f, -0.0678803f, -0.12563f, 0.101087f, -0.0277032f, 0.00180846f, 0.126715f, 0.0808875f, -0.161332f, -0.0224131f, 0.0552986f, -0.164087f, 0.0235407f, 0.0887471f, -0.0230872f, -0.0227415f, 0.078426f, 0.105838f, -0.208832f, -0.0378267f, 0.165413f, 0.0168559f, 0.24186f, -0.0321756f, 0.267071f, -0.0725749f, -0.0559548f, -0.0542099f, -0.122254f, 0.23983f, -0.072838f, 0.126332f, 0.181271f, -0.0468327f, -0.104079f, -0.0989654f, -0.00509032f, 0.0511547f, -0.167556f, 0.206365f, 0.0316619f, -0.212046f, -0.170634f, -0.140928f, -0.234002f, 0.116496f, 0.250866f, -0.112971f, 0.00742908f, -0.00232132f, -0.244505f, -0.0987468f, -0.100437f, -0.0922572f, -0.0718815f, -0.0810061f, -0.139351f, 0.131399f, -0.193318f, -0.0825002f, -0.252825f, 0.319373f, -0.180668f, -0.088631f, -0.108275f, -0.175794f, 0.044477f, -0.0684687f, 0.113323f, 0.0919284f, 0.103142f, -0.0751016f, 0.0237242f, -0.268288f, -0.0767686f, 0.1534f, 0.183117f, 0.0947241f, 0.0363547f, -0.0935098f, 0.0198468f, 0.0542791f, -0.170348f, -0.0668225f, -0.0302198f, 0.0573684f, 0.193722f, -0.0244614f, -0.065081f, 0.109136f, 0.0768307f, 0.0256873f, 0.0453174f, -0.0661597f, 0.20237f, -0.208568f, -0.134558f, -0.196872f, 0.0282566f, 0.0176649f, -0.036507f, 0.115582f, 0.0224603f, -0.208337f, -0.0207816f, 0.210674f, 0.0199133f, 0.143284f, 0.0120147f, 0.12285f, 0.0991144f, -0.171326f, -0.0196327f, -0.00153049f, -0.0614434f, -0.0898651f, -0.209515f, -0.0641146f, 0.118986f, 0.227517f, -0.167393f, -0.0662993f, -0.0300821f, 0.146568f, -0.24238f, 0.151277f, 0.0434492f, -0.218813f, -0.0782817f, -0.043116f, -0.129044f, -0.00424144f, 0.0863256f, -0.0715318f, -0.111355f, -0.0319262f, 0.217033f, 0.0864471f, 0.162374f, 0.0819416f, -0.149777f, -0.00627175f, -0.0336798f, 0.0924381f, -0.0124651f, 0.113072f, -0.241778f, -0.167361f, 0.126547f, -0.11035f, 0.226755f, 0.205391f, -0.168886f, -0.139136f, -0.187361f, -0.0752328f, -0.160392f, 0.010484f, 0.189125f, -0.0300863f, -0.0905743f, 0.113189f, 0.0307346f, 0.143355f, -0.0165305f, -0.0344821f, -5.12019e-05f, 0.0100231f, -0.0709305f, 0.140035f, -0.0108631f, -0.178431f, -0.0649574f, 0.00169188f, -0.0699925f, -0.00974395f, 0.0431591f, 0.154666f, 0.170179f, 0.0342364f, -0.0157387f, 0.0737516f, -0.12705f, 0.105916f, 0.0766883f, 0.165234f, -0.0428204f, 0.21164f, -0.157185f, 0.139512f, 0.166859f, 0.0649238f, 0.13572f, 0.259986f, 0.114129f, 0.14633f, 0.129666f, 0.203247f, 0.287593f, -0.00264411f, -0.00762829f, 0.00751441f, 0.0655301f, -0.0377692f, 0.0941954f, 0.0340797f, 0.106044f, 0.00895249f, -0.252947f, 0.0110432f, 0.195676f, 0.0699806f, 0.0470648f, -0.0203483f, 0.0706655f, 0.0377129f, -0.152293f, -0.185047f, -0.0898952f, 0.00176847f, -0.0399621f, 0.0656991f, 0.0859853f, 0.0306474f, 0.0998837f, -0.186947f, 0.169715f, -0.037431f, -0.171258f, -0.0530708f, -0.185526f, 0.220115f, 0.0262814f, -0.0385197f, 0.110483f, 0.112054f, 0.165626f, 0.0849757f, 0.0339659f, -0.0956286f, 0.0616896f, 0.0871681f, 0.139207f, 0.053534f, -0.0703326f, 0.050419f, 0.178934f, -0.0563524f, -0.194358f, 0.0761241f, 0.029846f, -0.176877f, 0.137033f, -0.114829f, -0.0267363f, -0.12175f, -0.0118259f, -0.0222489f, 0.251246f, -0.057763f, 0.0828317f, 0.00111866f, -0.233183f, 0.13586f, 0.00720359f, -0.0279046f, 0.0281618f, 0.0865218f, -0.156236f, -0.051812f, 0.052718f, -0.00496724f, -0.245888f, 0.0515307f, -0.0309329f, 0.0868805f, -0.122769f, 0.0894922f, 0.178203f, 0.0568023f, -0.272229f, 0.0633548f, -0.00900605f, -0.19786f, -0.0720211f, 0.0168254f, -0.00826832f, 0.0277791f, 0.137394f, -0.0497409f, -0.05645f, -0.00752505f, -0.0418801f, -0.285452f, -0.0598413f, 0.0442848f, 0.176789f, 0.00463855f, -0.174108f, 0.151336f, -0.261756f, -0.294926f, 0.167468f, -0.0953157f, -0.146529f, 0.0963361f, 0.0270643f, 0.0676515f, -0.00162348f, 0.0526722f, -0.132143f, -0.110714f, -0.204699f, 0.0301431f, -0.197937f, 0.0274953f, 0.202519f, 0.0448034f, -0.123717f, 0.0129606f, -0.0827276f, -0.0112211f, -0.154155f, -0.0445722f, -0.041245f, -0.105871f, -0.163574f, -0.0916058f, 0.183837f, -0.0893849f, -0.297897f, -0.0452439f, -0.143127f, 0.0516972f, 0.0517401f, -0.0768337f, 0.13676f, 0.0559598f, -0.120368f, 0.0246376f, -0.105037f, -0.0763129f, -0.22662f, -0.191203f, -0.0792421f, 0.142562f, -0.0115289f, 0.0403692f, -0.0228733f, -0.127017f, 0.326124f, -0.0737665f, 0.0827882f, -0.136249f, -0.104458f, -0.0797357f, 0.0153587f, -0.157153f, 0.109396f, -0.132202f, -0.113747f, 0.125884f, -0.0232333f, 0.186902f, -0.00420102f, 0.20026f, 0.202322f, -0.0748704f, -0.0205168f, 0.199412f, 0.253841f, -0.201553f, -0.0334208f, -0.125831f, 0.168647f, 0.1116f, 0.125446f, 0.0625582f, -0.10409f, -0.20468f, -0.0220276f, -0.0899522f, 0.0508478f, 0.0375857f, -0.0374148f, 0.0280236f, -0.0308504f, 0.0539102f, 0.0249079f, -0.138757f, -0.0262261f, 0.00812361f, 0.0369971f, -0.149593f, 0.123746f, -0.210666f, -0.0643721f, -0.117895f, -0.176526f, -0.132702f, -0.253848f, 0.123352f, 0.181649f, 0.283883f, 0.167842f, 0.017851f, -0.103257f, 0.126496f, 0.0261011f, -0.135598f, 0.0327299f, 0.113592f, 0.0605836f, 0.155767f, 0.0741207f, -0.112946f, 0.00588976f, -0.203011f, 0.0580954f, 0.148337f, 0.00187594f, 0.156153f, -0.0488793f, 0.0692237f, -0.172463f, 0.229407f, 0.0235796f, 0.0574088f, -0.065101f, -0.223571f, -0.0521147f, 0.0852587f, -0.0882187f, -0.122982f, 0.0486665f, 0.152112f, 0.135973f, -0.161473f, 0.164465f, -0.0677517f, 0.19605f, -0.0128566f, -0.425323f, -0.151618f, 0.153311f, -0.0967463f, -0.0357838f, -0.0915805f, 0.0318575f, -0.0415556f, -0.114646f, -0.287075f, -0.00950453f, 0.0195184f, 0.182467f, 0.00994684f, 0.0295542f, 0.136673f, 0.00645806f, 0.213663f, -0.115994f, -0.104598f, 0.010969f, 0.0273307f, 0.198088f, 0.0307371f, 0.00333622f, 0.132092f, -0.0746452f, 0.27519f, 0.267868f, -0.082426f, 0.233754f, 0.142584f, 0.0404805f, -0.162709f, 0.102836f, 0.130425f, -0.0289173f, 0.000999933f, -0.203358f, 0.17974f, -0.133131f, 0.0582726f, 0.0211608f, 0.251518f, 0.0472616f, -0.0241508f, -0.00359908f, -0.119819f, -0.125491f, -0.0993715f, 0.202646f, 0.0630698f, -0.0817824f, 0.109761f, 0.303664f, -0.11635f, 0.213672f, -0.0525329f, -0.0850255f, 0.0415826f, 0.0374805f, 0.163432f, -0.00491429f, -0.0110942f, 0.0210576f, -0.0153868f, 0.148909f, -0.00234396f, 0.0920268f, 0.0104646f, -0.0109161f, 0.168708f, -0.0918311f, 0.197205f, -0.00347253f, 0.0833287f, -0.00664352f, 0.136932f, 0.156203f, -0.0983934f, 0.0608729f, 0.0200461f, -0.0559867f, -0.13085f, -0.0188413f, -0.0300658f, -0.0480944f, 0.0963916f, -0.110698f, -0.0162921f, -0.135675f, -0.233358f, -0.0867773f, -0.0259397f, -0.0955846f, -0.186383f, 0.0962101f, -0.0101854f, -0.0314058f, -0.220973f, 0.00873724f, 0.075542f, 0.112177f, -0.0690638f, 0.222745f, 0.177154f, -0.00718237f, -0.0635623f, -0.0679749f, -0.143922f, 0.103643f, -0.214302f, 0.0168155f, 0.186382f, -0.134346f, -0.0243184f, 0.110914f, 0.10083f, -0.113408f, -0.0653465f, -0.118425f, 0.059926f, 0.101008f, -0.0387661f, -0.13627f, -0.00978585f, -0.150675f, 0.0937146f, -0.0329324f, -0.0108517f, 0.0558273f, 0.0243556f, -0.128495f, 0.180332f, -0.0869752f, 0.0717106f, -0.00668314f, -0.14289f, -0.0299553f, 0.0869147f, 0.0581916f, -0.168756f, -0.105399f, -0.0088264f, -0.00941844f, 0.0976074f, 0.143456f, -0.120735f, -0.0833252f, 0.0411209f, 0.109799f, 0.0980448f, 0.0711654f, -0.0674113f, 0.17077f, 0.0645194f, 0.0506301f, -0.135452f, -0.0469879f, -0.0463991f, 0.0668726f, 0.0402987f, 0.0305217f, -0.119718f, -0.0100628f, -0.0266146f, 0.123581f, -0.0932266f, -0.0495416f, 0.0682057f, 0.0321667f, -0.0993108f, 0.0703368f, 0.0970227f, 0.0213686f, -0.0471774f, 0.0683062f, -0.120711f, -0.0398625f, 0.0296386f, -0.101587f, -0.16676f, -0.031228f, 0.0490906f, -0.0605698f, 0.0223336f, 0.0515897f, 0.0139406f, -0.0686184f, 0.0441101f, 0.0714456f, -0.0619867f, -0.0493737f, -0.0012028f, 0.0352167f, -0.0334762f, 0.0194348f, 0.0924587f, -0.0883305f, 0.161487f, -0.0793981f, -0.088463f, 0.0410794f, -0.0242592f, -0.0713802f, 0.000995248f, -0.0496217f, 0.0767467f, -0.0425497f, 0.0215405f, -0.0924711f, 0.0475004f, 0.0174174f, -0.11867f, 0.065469f, 0.174825f, 0.0691191f, 0.0759015f, 0.144888f, -0.033537f, 0.00726034f, 0.0541787f, 0.15146f, 0.08587f, -0.0811821f, 0.102526f, -0.00520463f, 0.0295811f, -0.0996927f, -0.117121f, 0.0556735f, -0.0263181f, -0.125538f, 0.209695f, 0.0119947f, 0.101356f, 0.23516f, 0.0519282f, 0.0619772f, 0.102821f, 0.0715301f, -0.063934f, -0.00168932f, -0.075099f, -0.0285832f, 0.158418f, 0.111461f, 0.0363448f, 0.0664858f, -0.0520967f, 0.0400468f, -0.236893f, -0.0181678f, 0.138026f, 0.0838864f, -0.0222831f, -0.311893f, 0.00511351f, -0.0314233f, -0.0283748f, 0.169689f, 0.195633f, 0.112393f, -0.0710901f, -0.00282808f, 0.00538252f, -0.0127248f, 0.162165f, -0.046712f, 0.023652f, 0.00574553f, 0.113247f, 0.0476038f, -0.108433f, 0.0209991f, -0.0818958f, 0.0425167f, -0.118401f, -0.00788057f, 0.0446801f, 0.0156275f, 0.0666879f, -0.117437f, 0.0375791f, -0.0830466f, 0.0356579f, 0.031293f, 0.0346822f, 0.0439824f, -0.090981f, 0.057065f, 0.0491367f, -0.0109835f, -0.0199782f, 0.00132986f, 0.114653f, 0.0978651f, -0.0278779f, -0.0508913f, 0.048682f, 0.0375619f, 0.0942604f, 0.0760389f, 0.0510287f, -0.0966076f, -0.0574484f, -0.146274f, 0.170593f, 0.0089253f, 0.151688f, 0.072577f, -0.139985f, 0.0264037f, 0.135104f, 0.0651785f, 0.020406f, -0.114806f, -0.0161779f, -0.117295f, 0.196275f, 0.134562f, -0.0483689f, 0.0171154f, 0.110059f, 0.112756f, 0.0264878f, -0.0641942f, -0.0275182f, 0.0913466f, 0.0176484f, 0.093393f, -0.0392062f, 0.0688316f, -0.110513f, -0.130902f, -0.117884f, -0.028091f, -0.0763692f, 0.0545663f, 0.0216322f, -0.0259856f, 0.00802552f, 0.0972476f, 0.02498f, -0.0684911f, 0.0855751f, -0.0437937f, 0.0603223f, -0.0928579f, 0.0201989f, -0.165495f, -0.0684102f, 0.015093f, -0.0298405f, 0.0821671f, 0.170473f, 0.00547965f, -0.0836093f, 0.0808786f, -0.00299721f, -0.136185f, 0.199223f, 0.0663076f, 0.0491545f, -0.0132983f, 0.083154f, 0.0202816f, 0.0587494f, -0.130806f, -0.0514303f, -0.0513341f, 0.0692007f, 0.0722447f, -0.0211768f, 0.0195245f, -0.113364f, -0.0105481f, 0.085107f, -0.0213701f, 0.182695f, 0.141285f, -0.0727657f, -0.131709f, -0.0211886f, 0.109532f, 0.0912243f, -0.0434419f, -0.0593671f, -0.0205697f, -0.00795179f, -0.103664f, 0.121248f, -0.183746f, -0.054158f, -0.118397f, -0.021772f, 0.00805486f, 0.200369f, -0.118247f, 0.349707f, 0.0372268f, -0.0164955f, 0.137692f, -0.275783f, 0.0656478f, -0.272522f, 0.0965203f, -0.195092f, 0.0515625f, -0.081132f, -0.00583711f, -0.169891f, -0.218935f, 0.0600884f, 0.015237f, 0.0370147f, 0.0188609f, 0.137907f, 0.0332844f, 0.0393261f, -0.0527674f, 0.106884f, -0.0283431f, 0.0564146f, -0.0467814f, 0.023617f, -0.0152441f, -0.0026955f, 0.0215375f, -0.0543606f, -0.0600827f, 0.00422562f, 0.00325055f, -0.128746f, 0.0550346f, -0.0454173f, 0.0228384f, -0.204945f, -0.0787473f, 0.150384f, 0.0664084f, 0.153838f, 0.0932671f, -0.0163609f, -0.0158819f, 0.0650229f, 0.105121f, 0.135818f, 0.0501614f, -0.0196463f, 0.0877672f, 0.0967372f, 0.00687919f, -0.0652871f, -0.0749008f, 0.232025f, -0.208817f, 0.237359f, -0.15426f, 0.162304f, 0.0392156f, -0.00367675f, -0.0263316f, -0.117806f, -0.107019f, -0.0563839f, 0.050326f, -0.044621f, -0.0529825f, 0.00689678f, 0.0363758f, 0.0510002f, -0.010856f, 0.0340034f, 0.0530962f, 0.157587f, 0.0203118f, -0.00862574f, -0.0135458f, -0.0290163f, -0.114942f, -0.0167523f, -0.142686f, -0.0573345f, -0.110077f, -0.147151f, -0.146061f, -5.60518e-05f, -0.0181055f, 0.0300727f, 0.0994013f, -0.0794976f, 0.17785f, 0.0298195f, -0.166299f, 0.0061138f, -0.078992f, 0.0249586f, 0.0620676f, 0.0812142f, 0.22474f, -0.266479f, 0.0200977f, -0.0689874f, -0.0601117f, 0.00602861f, 0.0282565f, 0.190113f, -0.0127711f, 0.0189823f, 0.0467257f, -0.121677f, 0.157256f, 0.0130079f, -0.0304612f, 0.05973f, -0.00201193f, -0.0419419f, -0.0105339f, 0.016075f, 0.00973355f, 0.107867f, 0.126792f, -0.021441f, -0.0954906f, 0.08661f, 0.0188989f, -0.0471895f, -0.0756738f, -0.0340389f, -0.188566f, -0.0045518f, -0.122302f, 0.0481576f, 0.128887f, 0.0359469f, 0.103828f, -0.0323987f, -0.161231f, -0.0948684f, -0.012309f, -0.191585f, -0.122224f, -0.214583f, 0.0838167f, -0.252216f, 0.101647f, -0.20387f, -0.181689f, 0.121725f, -0.0112936f, 0.0587565f, 0.208079f, 0.112971f, -0.188243f, 0.0164191f, -0.0682426f, -0.0302201f, 0.0553008f, -0.00528406f, -0.146065f, 0.0685802f, 0.116412f, -0.0436326f, -0.0254931f, -0.0450059f, 0.0688884f, 0.0584413f, 0.0434145f, -0.0657171f, 0.0300419f, -0.168799f, -0.141728f, -0.00354189f, 0.222674f, -0.000344197f, -0.128158f, 0.180755f, -0.18295f, 0.0125797f, 0.0581668f, -0.0414816f, 0.0441393f, -0.028261f, -0.0768382f, -0.127306f, -0.221163f, 0.048165f, 0.0314347f, -0.128595f, -0.0635928f, -0.0575395f, -0.192413f, -0.039284f, 0.0175786f, 0.0742105f, 0.02502f, -0.0577134f, -0.0342552f, -0.0910889f, -0.0611105f, -0.0646988f, 0.126606f, -0.00980378f, 0.0707186f, 0.239271f, 0.185289f, 0.142622f, 0.119958f, 0.0592719f, -0.0597979f, -0.0719118f, -0.12395f, 0.0209269f, 0.0403809f, 0.133931f, -0.168001f, 0.0781516f, -0.0848237f, 0.115475f, 0.0410217f, -0.0710428f, 0.181784f, -0.0870275f, -0.0283834f, -0.0537278f, -0.081611f, -0.130238f, 0.0532513f, 0.119701f, 0.0352373f, -0.0554448f, 0.0780881f, 0.0439949f, 0.154989f, 0.0818161f, -0.0862335f, -0.0310528f, 0.0480943f, 0.0867906f, 0.0878395f, -0.154202f, -0.146759f, 0.0592359f, -0.0291188f, -0.0310192f, -0.00468707f, 0.020907f, 0.0937938f, 0.0126328f, 0.0152481f, -0.0526837f, -0.0397366f, 0.0981151f, 0.0520717f, -0.00920261f, -0.0273252f, 0.00203012f, 0.0820249f, 0.167728f, -0.112752f, 0.000395316f, -0.0100603f, -0.0750389f, -0.0483952f, -0.17904f, 0.0846677f, -0.00225598f, 0.128774f, 0.0307848f, 0.119395f, 0.0170415f, -0.124875f, 0.0918287f, 0.027482f, -0.0315014f, -0.131147f, 0.0015159f, -0.0242933f, -0.0722882f, 0.173439f, 0.0177727f, 0.102333f, -0.0489139f, 0.0191159f, 0.021428f, 0.0706337f, -0.00627415f, -0.110118f, -0.027845f, -0.00255794f, -0.039211f, -0.0851063f, 0.0829817f, 0.0801773f, -0.0287067f, -0.0814197f, -0.025754f, -0.00492086f, -0.00715682f, -0.0233987f, -0.0396579f, -0.00527511f, 0.0184895f, -0.120608f, -0.00904979f, 0.173268f, -0.0849182f, -0.12488f, 0.0484004f, 0.0628398f, -0.125913f, 0.111484f, 0.119877f, -0.0819365f, -0.178003f, 0.0738245f, 0.114138f, 0.106762f, -0.0508796f, 0.118031f, 0.0166038f, 0.0933639f, 0.0144166f, -0.0183339f, -0.138652f, -0.111903f, -0.157228f, -0.0177754f, -0.0803939f, 0.101125f, 0.103454f, -0.0443944f, 0.110679f, -0.00841173f, -0.0253631f, 0.108736f, -0.0486076f, -0.139169f, -0.0630214f, -0.106183f, 0.190372f, 0.0825124f, -0.0993525f, -0.0742288f, -0.0273006f, 0.0408182f, -0.0108085f, -0.034009f, -0.0784814f, 0.13595f, -0.0163547f, -0.056622f, 0.136034f, 0.140375f, -0.0811345f, 0.0699878f, -0.0110917f, 0.0773323f, -0.142911f, -0.0857747f, 0.0339718f, -0.0983531f, -0.0385915f, 0.0690695f, 0.0627784f, -0.111857f, 0.117049f, 0.0687095f, 0.0121779f, -0.0595465f, 0.101218f, 0.0021812f, 0.015838f, 0.141938f, -0.144113f, -0.152852f, -0.0583014f, 0.0528461f, -0.00917176f, -0.0840345f, -0.0583966f, -0.0175285f, -0.0214752f, -0.0955577f, -0.0596549f, 0.0407236f, -0.0101964f, 0.0434244f, -0.153193f, 0.135444f, -0.095633f, 0.0369211f, 0.15586f, -0.0281131f, -0.115719f, 0.117345f, -0.102984f, -0.0614463f, 0.117883f, 0.122835f, 0.0121844f, -0.0496318f, -0.0204652f, -0.0555852f, 0.01008f, 0.0283592f, 0.04695f, -0.0230323f, -0.0331313f, 0.0491614f, 0.225728f, -0.0371757f, 0.0847496f, 0.121579f, -0.0134861f, -0.0179521f, -0.137766f, -0.0878419f, -0.13355f, 0.0506019f, 0.080236f, -0.00817948f, -0.128414f, 0.147545f, 0.0442242f, 0.0436843f, 0.0624368f, 0.0168788f, -0.0393394f, -0.101584f, -0.0665493f, 0.0172508f, 0.0116904f, 0.0677535f, 0.0376294f, -0.132144f, 0.0139761f, -0.15242f, 0.0454797f, 0.112968f, 0.084504f, -0.119503f, 0.172406f, 0.0329056f, -0.0628355f, -0.0641114f, 0.0522137f, 0.113072f, 0.0480261f, 0.120315f, -0.0433162f, 0.0729712f, -0.107949f, 0.0950523f, -0.0839209f, 0.0521944f, -0.0913914f, -0.122044f, -0.0236876f, 0.173967f, 0.0999593f, 0.192816f, -0.136533f, 0.0529002f, 0.0120413f, -0.035401f, 0.125779f, -0.0522104f, 0.0166488f, 0.0668651f, -0.0281983f, 0.107038f, -0.0107924f, 0.0290928f, 0.0301134f, 0.0931573f, 0.100767f, -0.0958737f, 0.167219f, 0.159934f, 0.0363322f, -0.00295724f, 0.0729845f, 0.0688261f, 0.170327f, 0.269782f, -0.304554f, 0.0764447f, 0.187054f, 0.226246f, -0.256618f, 0.297973f, -0.179066f, -0.150441f, 0.248555f, 0.0835895f, -0.173589f, 0.063258f, 0.191391f, -0.0823148f, 0.0327674f, -0.053845f, 0.0638168f, 0.0596363f, 0.0719366f, 0.222164f, 0.0672609f, 0.172433f, 0.0546758f, 0.29227f, 0.287766f, -0.0654787f, -0.256679f, 0.0899456f, 0.00898353f, -0.0762326f, -0.260353f, 0.230055f, 0.0624656f, 0.0110139f, -0.247011f, 0.195746f, 0.124423f, 0.212518f, -0.239247f, 0.0201483f, 0.0145939f, -0.251975f, 0.0237653f, 0.148209f, 0.191539f, 0.0252949f, -0.0537462f, -0.0829896f, -0.00174618f, 0.0469234f, 0.0145451f, 0.371102f, 0.0956199f, 0.169585f, -0.12117f, 0.00131487f, 0.0906063f, 0.0780524f, -0.0150253f, 0.0304688f, -0.126943f, -0.0558055f, -0.081893f, 0.128248f, -0.0962231f, -0.188247f, -0.0685147f, 0.00906402f, 0.0778618f, -0.063752f, -0.0380501f, -0.187169f, 0.21847f, 0.158292f, -0.00399051f, -0.0967225f, -0.247326f, -0.357025f, -0.0459383f, -0.0305558f, 0.185459f, 0.212887f, 0.0397773f, -0.0752328f, -0.31323f, -0.0287433f, -0.153944f, 0.141805f, 0.0543119f, -0.100378f, -0.0845649f, 0.107195f, -0.141917f, -0.108956f, -0.270663f, 0.138642f, 0.0456146f, 0.19624f, 0.08109f, -0.0895418f, 0.0413441f, -0.0267789f, -0.0911482f, -0.023218f, -0.0185163f, -0.114105f, -0.0509374f, 0.181966f, 0.0371136f, -0.0500688f, -0.106924f, -0.196991f, 0.0429921f, 0.0418164f, -0.0441931f, -0.3231f, 0.0978936f, -0.00849871f, -0.00518881f, -0.28065f, -0.0950412f, 0.0495791f, 0.039463f, -0.0892391f, -0.133366f, 0.107908f, -0.141099f, 0.0850496f, -0.000183084f, -0.178656f, -0.165528f, -0.0392002f, 0.327358f, 0.137278f, 0.00906369f, -0.0862791f, 0.053054f, 0.365649f, 0.117213f, 0.109295f, -0.224437f, 0.164082f, 0.0386563f, -0.073805f, -0.26569f, 0.1014f, -0.208949f, -0.158272f, 0.0209547f, -0.00997236f, -0.0574164f, -0.126321f, -0.0754898f, 0.130198f, 0.078179f, -0.142119f, -0.120068f, -0.113257f, 0.107569f, -0.0291601f, -0.0516398f, -0.0722579f, -0.00593229f, -0.0816384f, -0.0893521f, -0.2074f, 0.166503f, -0.0945664f, -0.10017f, -0.176307f, -0.0974682f, 0.22166f, -0.149922f, 0.184058f, 0.120245f, 0.00558273f, -0.0223009f, 0.234819f, 0.0240881f, -0.156176f, -0.0038549f, 0.0869375f, 0.236553f, 0.0367919f, -0.0855536f, 0.10474f, -0.144479f, -0.102139f, -0.0641387f, 0.0281749f, -0.00402611f, 0.132008f, 0.256429f, 0.0497814f, -0.019694f, -0.00528436f, -0.0835698f, -0.25758f, 0.209931f, 0.161435f, -0.0333537f, 0.227131f, -0.0752803f, -0.067526f, 0.153208f, 0.281411f, -0.204108f, 0.0933594f, -0.020175f, -0.0815181f, -0.059828f, -0.0361041f, -0.13394f, -0.0688037f, -0.21143f, 0.221789f, 0.128286f, -0.0898836f, 0.0373944f, 0.352275f, 0.0655549f, -0.0188368f, -0.118612f, 0.28122f, -0.103595f, -0.00066156f, 0.113776f, -0.0474986f, -0.127553f, -0.108712f, 0.0342812f, -0.0705113f, -0.128733f, -0.272845f, -0.0370917f, 0.143251f, 0.0150223f, 0.273458f, -0.132714f, -0.00201034f, -0.0489752f, -0.202566f, -0.0198171f, -0.14699f, -0.0686835f, -0.0405002f, 0.132996f, -0.15669f, 0.215072f, 0.0156105f, -0.21907f, 0.0838309f, -0.0285907f, -0.0589821f, -0.0321981f, -0.142769f, 0.137048f, -0.0823974f, 0.0920703f, 0.0668476f, 0.00390583f, -0.0383353f, 0.00904396f, 0.0829402f, -0.0823463f, -0.112195f, -0.0212914f, 0.109526f, -0.0619766f, 0.00969372f, -0.0340661f, 0.124757f, -0.180054f, 0.188785f, 0.0105367f, -0.176585f, -0.0867033f, 0.010804f, 0.0760156f, -0.0738911f, -0.139307f, -0.00131661f, -0.158436f, 0.00306731f, -0.162235f, -0.122417f, 0.0402063f, 0.036365f, 0.00641502f, 0.0573629f, -0.0549136f, -0.0264115f, -0.155262f, -0.0273783f, -0.112196f, 0.0399629f, 0.00160644f, -0.093145f, -0.0536867f, -0.0862504f, -0.0672153f, -0.162069f, 0.00209683f, -0.0143922f, 0.0243489f, -0.0204935f, 0.0647076f, -0.0100662f, -0.039863f, -0.00400019f, 0.0605473f, -0.0323676f, 0.104918f, -0.0982962f, 0.0673662f, -0.0935054f, 0.0959593f, -0.072332f, -0.0756284f, -0.0112139f, 0.0142236f, -0.166628f, -0.0747267f, -0.168013f, 0.0920376f, -0.150301f, -0.0592611f, -0.0540215f, -0.0113721f, -0.0988949f, 0.137977f, 0.0427958f, 0.118917f, 0.0375705f, -0.108851f, 0.0883947f, -0.11702f, 0.0976188f, 0.0409229f, 0.0994536f, -0.0200074f, -0.0981198f, -0.0893528f, -0.000290923f, -0.0304895f, -0.0135375f, -0.074089f, -0.0709122f, 0.041474f, 0.136195f, -0.0111432f, 0.0123382f, 0.0985024f, -0.183546f, -0.0754801f, -0.0147879f, 0.0591805f, -0.0170481f, -0.0311172f, -0.0518023f, -0.177074f, -0.189803f, -0.109063f, 0.0574093f, -0.00489354f, 0.0373364f, -0.111193f, 0.0880836f, -0.174767f, -0.083414f, -0.0674997f, -0.0221984f, 0.026032f, -0.0194762f, -0.101655f, -0.0320065f, 0.0805106f, -0.00874059f, 0.0511679f, 0.045704f, -0.0767033f, -0.0408045f, -0.0838419f, -0.0616564f, 0.167857f, 0.0837288f, 0.0844409f, -0.100096f, 0.0272996f, 0.00307211f, -0.0924697f, 0.0115638f, -0.0749205f, -0.0445319f, 0.167268f, -0.0839984f, 0.0672253f, -0.0138077f, 0.0854404f, -0.0308157f, 0.119782f, -0.178345f, 0.1692f, 0.168575f, 0.0881138f, 0.198223f, -0.177475f, -1.1359e-05f, -0.0866146f, 0.134149f, 0.178879f, -0.0855567f, -0.170714f, -0.122296f, 0.159224f, 0.0166574f, 0.0531942f, 0.0919217f, 0.0231734f, 0.0451193f, 0.011941f, 0.0993808f, 0.0639887f, -0.0673941f, 0.0331037f, 0.0812769f, 0.112237f, 0.0192373f, 0.0884435f, 0.0942362f, -0.0624068f, -0.0262395f, 0.0801099f, -0.0274445f, -0.169954f, 0.1107f, 0.0434129f, 0.051283f, 0.0743567f, -0.088189f, 0.115155f, -0.144922f, 0.0369773f, -0.125745f, 0.113197f, -0.0517104f, -0.0534437f, -0.0479874f, 0.192791f, -0.0476028f, -0.0893953f, -0.171997f, 0.0600398f, -0.142152f, -0.070108f, -0.00805544f, -0.020139f, 0.0557768f, -0.000417096f, 0.0906763f, 0.0039325f, -0.0841105f, 0.0331318f, -0.089156f, -0.0413397f, -0.0894567f, -0.029318f, 0.00272547f, 0.00443938f, 0.135214f, 0.0220878f, 0.0916788f, -0.109022f, -0.0494006f, 0.0261872f, -0.0609931f, 0.0844874f, -0.0939648f, 0.157525f, 0.0171541f, -0.0759048f, -0.0638656f, 0.117706f, 0.0769901f, 0.0194204f, -0.0244878f, 0.0145801f, 0.0944671f, -0.0257718f, -0.0064865f, 0.188441f, -0.0800907f, 0.117967f, -0.0203084f, -0.1014f, -0.099259f, -0.116626f, 0.138742f, -0.00513908f, 0.0559397f, 0.0981245f, -0.0876375f, -0.162478f, 0.0261089f, -0.110205f, 0.0761338f, 0.0541857f, -0.145658f, 0.200571f, 0.182983f, 0.0846544f, 0.0262544f, -0.130655f, 0.105333f, 0.0634646f, -0.131896f, 0.129816f, 0.10662f, -0.183294f, -0.0758998f, -0.0944303f, -0.0617827f, 0.0610021f, -0.0945893f, 0.209448f, -0.119835f, -0.126733f, 0.0805456f, 0.223198f, -0.212202f, 0.181069f, 0.0367296f, -0.246446f, -0.229664f, 0.199356f, -0.118929f, 0.0609705f, 0.151394f, -0.0835612f, -0.113071f, 0.0162264f, -0.139033f, -0.0585147f, -0.0980995f, -0.011046f, -0.0756879f, -0.0741218f, -0.197751f, -0.0367994f, 0.0956733f, -0.036112f, -0.226466f, 0.0115816f, -0.00169681f, -0.154224f, -0.0379184f, -0.0505589f, 0.0166201f, -0.0186527f, -0.0887052f, -0.230558f, -0.201742f, -0.240992f, 0.0640963f, -0.134665f, -0.276453f, -0.216167f, -0.264639f, 0.0484495f, -0.185191f, 0.120414f, -0.243964f, -0.108144f, 0.226675f, 0.0881548f, -0.238018f, 0.276322f, 0.221997f, 0.0172326f, 0.0895768f, -0.165826f, -0.246912f, -0.0257665f, -0.0186189f, -0.217414f, 0.0390706f, -0.0778869f, -0.212701f, 0.0546428f, -0.0250986f, -0.216076f, -0.13598f, -0.059705f, 0.0782962f, -0.13622f, 0.161622f, -0.252936f, 0.173475f, -0.296681f, 0.279783f, 0.205719f, -0.113273f, 0.137325f, 0.0526967f, -0.0783906f, 0.0313394f, 0.090164f, -0.150072f, -0.092018f, -0.0520191f, 0.0854612f, 0.329676f, -0.00500662f, -0.0475918f, -0.0552414f, -0.0401949f, -0.173286f, 0.0493223f, -0.265524f, 0.166249f, 0.0726904f, 0.0562236f, 0.20639f, -0.203905f, 0.0803461f, -0.0831523f, 0.199984f, -0.260057f, -0.0713157f, -0.00786f, 0.220093f, 0.122726f, 0.174637f, 0.132066f, -0.0545717f, -0.0763681f, -0.294041f, 0.153092f, 0.103533f, -0.0407108f, 0.154015f, -0.0671908f, -0.0843983f, 0.145251f, 0.233993f, -0.19554f, -0.00117209f, 0.0545958f, 0.0387576f, 0.00185078f, -0.0295207f, -0.135194f, -0.0331411f, 0.0853321f, 0.241826f, -0.215982f, 0.316693f, -0.0460571f, -0.0635234f, -0.0521432f, -0.00766619f, 0.0208356f, -0.0633338f, -0.146892f, -0.326182f, -0.0587123f, 0.11432f, -0.173592f, -0.102043f, 0.24035f, -0.10943f, -0.00230714f, -0.108977f, -0.300322f, 0.0126934f, -0.10266f, -0.0423242f, -0.0893517f, -0.0215091f, -0.017558f, 0.0208227f, 0.0674259f, 0.0519712f, -0.0385719f, 0.000476909f, 0.0365699f, -0.0284985f, 0.129807f, 0.116311f, 0.181734f, 0.0247731f, -0.309164f, -0.0956848f, -0.0441608f, 0.160913f, -0.296246f, -0.0764378f, -0.0609659f, 0.0354253f, -0.0834824f, -0.00263452f, 0.163677f, 0.0544128f, 0.268478f, 0.0129655f, 0.0208404f, -0.100674f, -0.324335f, 0.278778f, 0.0749088f, 0.0401038f, -0.0016754f, 0.0849939f, -0.0917414f, 0.117905f, 0.104631f, 0.060142f, 0.271321f, 0.043246f, -0.0689076f, -0.237589f, -0.2504f, 0.0656948f, -0.0124302f, 0.181585f, -0.0577102f, -0.22243f, -0.0792165f, -0.0199075f, -0.133314f, -0.162599f, 0.0829402f, 0.0612079f, -0.236239f, -0.0966726f, -0.136226f, -0.0492793f, -0.0696325f, -0.333078f, -0.0882597f, -0.153514f, 0.214658f, -0.176041f, -0.0920498f, 0.112785f, 0.127467f, -0.010267f, -0.150281f, -0.124711f, 0.114063f, -0.182742f, -0.0491058f, 0.0203765f, 0.191215f, -0.112101f, -0.0523811f, -0.115005f, 0.308213f, 0.0208827f, 0.0797686f, -0.0906643f, 0.0452441f, 0.205203f, -0.0629585f, 0.0869717f, 0.0369502f, 0.0416793f, -0.209096f, -0.0777874f, 0.00923266f, 0.138422f, 0.115856f, -0.0381369f, 0.000429714f, -0.0195403f, 0.0390343f, -0.133232f, -0.0208389f, -0.0192759f, -0.156865f, -0.136534f, 0.0205082f, 0.130524f, 0.16638f, 0.0768217f, 0.0710455f, -0.00870635f, -0.0218807f, -0.000406233f, -0.109458f, -0.0993416f, 0.0278385f, -0.112428f, -0.0978003f, 0.0160189f, -0.0357318f, 0.0210166f, 0.0409976f, 0.103204f, 0.106221f, 0.0384714f, 0.0160119f, 0.0199817f, -0.0502233f, -0.125139f, -0.0218549f, 0.173534f, -0.0995635f, -0.150323f, -0.0987214f, -0.0498902f, 0.0625623f, 0.0643247f, -0.0375136f, -0.00384514f, 0.0704834f, 0.159011f, -0.131857f, 0.17475f, -0.0504428f, 0.041069f, 0.00181779f, -0.081826f, -0.191027f, 0.0600579f, -0.137359f, -0.0826146f, 0.0415665f, -0.049498f, -0.0226071f, 0.0652517f, -0.037897f, -0.0810082f, -0.218457f, -0.198833f, 0.0473405f, 0.0764544f, -0.039614f, 0.270737f, -0.0797767f, -0.0468242f, -0.0835126f, 0.0770183f, 0.0666633f, 0.0111222f, -0.0954332f, -0.118842f, 0.164285f, 0.0217016f, 0.061463f, 0.0843861f, 0.107438f, 0.0463726f, 0.0038379f, 0.100791f, 0.153754f, -0.101448f, -0.152917f, 0.145992f, -0.134972f, -0.179957f, 0.0638347f, -0.154967f, -0.150437f, -0.112966f, -0.0491315f, -0.120073f, -0.225107f, -0.0876707f, 0.0420449f, 0.16915f, -0.0841036f, -0.113011f, 0.212027f, -0.0555573f, 0.177842f, -0.0295817f, 0.0579251f, 0.104543f, -0.00831432f, -0.153645f, 0.0885487f, -0.0400073f, 0.017293f, -0.0608732f, 0.222721f, 0.246911f, 0.0698475f, 0.095572f, 0.0549094f, -0.0695271f, -0.0111615f, -0.116356f, -0.0486817f, -0.0480268f, -0.0433747f, 0.0461621f, -0.129587f, -0.133213f, -0.102085f, -0.0867863f, -0.0585555f, 0.0274745f, 0.129751f, -0.0835492f, 0.11603f, 0.211841f, -0.0102759f, 0.0995626f, 0.0738811f, 0.0224536f, -0.221118f, 0.103419f, 0.0674076f, -0.0728963f, -0.191694f, 0.132295f, -0.0166006f, 0.0334087f, -0.0364447f, -0.0528837f, -0.229367f, -0.00518364f, -0.0335343f, -0.0701178f, 0.0318106f, -0.150599f, 0.0619642f, -0.0806501f, 0.00949061f, -0.0560791f, 0.0877798f, 0.186634f, 0.180062f, -0.103128f, -0.0728989f, -0.00275129f, -0.0475377f, -0.0979164f, -0.0523571f, 0.0378527f, -0.131877f, 0.046779f, -0.0187937f, -0.121086f, -0.0242338f, -0.0638597f, -0.0896618f, 0.251069f, -0.0945644f, 0.0635106f, -0.122971f, 0.0199923f, -0.0943094f, 0.137212f, 0.0493934f, 0.046055f, -0.110686f, -0.164674f, -0.172358f, -0.145723f, 0.128681f, 0.206937f, 0.145346f, -0.141973f, 0.0370133f, -0.156009f, -0.0429635f, -0.062342f, 0.10148f, -0.105999f, 0.0948731f, 0.0929647f, 0.0494958f, 0.0334119f, 0.145502f, 0.0707935f, -0.0742382f, 0.100316f, -0.0460633f, 0.0980532f, -0.115824f, 0.088603f, 0.106137f, -0.0146748f, -0.0842892f, -0.186255f, -0.0429348f, -0.181823f, 0.0631634f, -0.0565486f, -0.0685145f, 0.0780283f, -0.01656f, -0.0534437f, 0.0262004f, -0.14749f, 0.0258332f, 0.112867f, 0.152863f, -0.0561371f, 0.0816479f, -0.0932527f, -0.0713681f, -0.125769f, -0.126134f, -0.0488485f, -0.16621f, -0.0692818f, -0.0315419f, -0.00683874f, -0.148307f, -0.0462246f, -0.0881844f, -0.0643561f, 0.0739925f, 0.140081f, 0.192713f, -0.0885966f, -0.0861266f, 0.00889565f, 0.038289f, -0.107409f, 0.0369537f, 0.131532f, -0.115491f, -0.0257526f, -0.0740331f, 0.0738543f, -0.153283f, 0.189341f, 0.126091f, 0.0225163f, 0.0779035f, -0.00910437f, 0.0670104f, -0.00951965f, 0.0245675f, 0.0922928f, 0.0706894f, -0.056536f, 0.0132402f, 0.102624f, -0.0437611f, -0.016976f, 0.12969f, -0.105159f, 0.00664895f, 0.151942f, 0.0139964f, 0.00770214f, 0.0112802f, -0.211664f, -0.150829f, -0.211128f, 0.129519f, -0.131472f, -0.188738f, -0.110952f, -0.0413313f, 0.0773094f, 0.0111232f, 0.122942f, -0.045196f, 0.116344f, -0.0559583f, -0.154881f, -0.0942968f, -0.0485324f, 0.0853772f, 0.14546f, -0.151243f, -0.154411f, -0.181461f, -0.106813f, 0.0595163f, -0.230694f, 0.157653f, -0.05815f, -0.111062f, 0.0262077f, -0.10065f, 0.0304343f, 0.262787f, -0.11959f, 0.141013f, -0.00434603f, 0.0320162f, -0.175801f, 0.0779731f, -0.0240185f, 0.0226824f, -0.200149f, 0.189415f, -0.0897026f, -0.0363347f, 0.101053f, 0.0624615f, -0.0108656f, -0.178808f, 0.099334f, -0.255178f, -0.208665f, -0.0254777f, -0.120363f, 0.239948f, -0.0071898f, 0.0331462f, 0.201714f, -0.141093f, 0.00820889f, -0.166606f, -0.0940802f, -0.0472432f, -0.0182615f, 0.17836f, -0.0728437f, -0.261218f, 0.0545589f, 0.116584f, 0.157571f, 0.017517f, -0.101411f, -0.110114f, 0.15697f, -0.00649352f, -0.238897f, 0.0453194f, -0.0804493f, 0.0810127f, 0.0577965f, 0.0123341f, 0.0556647f, 0.135993f, 0.193143f, 0.244694f, -0.124078f, 0.0986319f, -0.0555382f, 0.306248f, -0.0507421f, -0.272119f, -0.0558346f, 0.20043f, 0.0142115f, -0.0380791f, -0.168828f, -0.206356f, 0.114397f, 0.0611473f, -0.141404f, -0.185468f, 0.117103f, -0.0875272f, -0.097201f, 0.0319501f, -0.0176339f, 0.0121023f, 0.0563878f, -0.356618f, 0.253293f, 0.317173f, 0.0434816f, 0.0349371f, -0.0628772f, 0.0641851f, -0.00215512f, 0.25191f, -0.16628f, -0.186958f, 0.0498778f, -0.219318f, 0.183857f, 0.0137925f, -0.0962429f, 0.00748595f, 0.166512f, -0.0771219f, -0.0470888f, -0.00640441f, -0.0258602f, -0.0226315f, -0.0234134f, 0.0719357f, 0.0640905f, 0.0133276f, -0.164979f, -0.0855524f, -0.0123519f, -0.221125f, -0.142457f, -0.207412f, -0.173182f, 0.0158853f, 0.0442221f, 0.0466504f, -0.170155f, 0.154427f, -0.24842f, 0.0199575f, -0.0556979f, 0.0278111f, -0.0569278f, -0.012218f, -0.0949092f, 0.04507f, 0.021869f, -0.0300211f, 0.0149224f, -0.0281379f, -0.00105618f, -0.190727f, -0.122778f, 0.0957127f, -0.00193235f, 0.193631f, 0.0273043f, 0.202143f, -0.00447547f, -0.170677f, 0.0350574f, -0.221436f, 0.0211827f, -0.127535f, 0.0577682f, 0.160856f, -0.193768f, -0.172371f, -0.236666f, -0.0985202f, -0.0197372f, -0.0588908f, 0.121938f, -0.0896489f, 0.233247f, -0.10642f, -0.0183866f, -0.0302363f, 0.195028f, -0.234719f, 0.144483f, -0.174416f, -0.129066f, 0.0248767f, 0.00314863f, -0.237638f, -0.0120557f, -0.0549445f, 0.0120866f, 0.142301f, 0.0197296f, 0.261609f, -0.316225f, -0.0641572f, 0.142924f, 0.234199f, 0.0266339f, 0.0516598f, 0.21805f, 0.0254256f, 0.130871f, 0.153647f, -0.0440145f, 0.0901155f, 0.0274984f, -0.163893f, 0.143139f, 0.155577f, -0.075176f, -0.0659006f, 0.000292421f, 0.0948626f, -0.182368f, -0.117344f, -0.0762159f, -0.237082f, 0.253596f, 0.0263043f, 0.232941f, -0.0629678f, 0.0325961f, -0.152747f, 0.0721854f, -0.137453f, 0.0264424f, 0.196981f, 0.0592268f, -0.015365f, 0.0657562f, 0.0853416f, 0.131326f, -0.00926539f, -0.00711619f, 0.0111527f, 0.0775186f, -0.0885285f, -0.000728308f, -0.0537885f, 0.103751f, 0.172707f, 0.0400191f, 0.0572506f, -0.200091f, 0.0588899f, -0.0126554f, -0.124738f, -0.0731091f, 0.177167f, -0.0609657f, 0.00449294f, -0.0288158f, 0.0957161f, 0.0414077f, 0.0524971f, -0.186129f, -0.100274f, -0.105149f, 0.0798848f, 0.0741865f, -0.0835095f, -0.0673897f, -0.0414928f, -0.162298f, -0.0515748f, 0.143289f, -0.05059f, 0.174514f, -0.237397f, -0.145233f, 0.146496f, 0.110486f, 0.0883957f, -0.122343f, -0.056127f, -0.021825f, -0.0141334f, 0.312101f, 0.00419055f, -0.164149f, 0.145802f, 0.12755f, -0.040998f, 0.258935f, -0.16491f, -0.00162148f, -0.0561457f, -0.0435503f, 0.0407262f, -0.137595f, 0.202377f, 0.0749463f, -0.207087f, -0.0769686f, -0.0111694f, -0.0643952f, 0.0397656f, 0.140179f, -0.062758f, -0.143612f, -0.0483797f, 0.0282443f, 0.0908094f, 0.107654f, 0.00201724f, -0.0528248f, 0.0941657f, -0.0551108f, -0.111211f, -0.157823f, 0.00818271f, 0.253284f, 0.0125737f, -0.0583274f, 0.161082f, -0.127155f, 0.0689258f, -0.220598f, 0.032278f, -0.101379f, 0.149777f, -0.00476101f, -0.0872239f, -0.201627f, -0.148589f, -0.05933f, -0.00287935f, -0.299296f, 0.0353495f, -0.153262f, -0.0511081f, 0.134044f, -0.00112911f, -0.100847f, 0.249417f, 0.120784f, -0.135766f, -0.0117123f, -0.149562f, 0.189163f, -0.0685526f, -0.231482f, -0.112954f, -0.174448f, 0.168607f, -0.0415168f, -0.0428122f, -0.188851f, -0.217565f, 0.111418f, 0.0298269f, -0.179974f, -0.207888f, 0.0234001f, 0.138955f, 0.0638024f, -0.141109f, -0.105243f, -0.154103f, 0.012427f, 0.172904f, 0.150869f, 0.0533545f, 0.255548f, -0.0766572f, -0.0146496f, 0.0117994f, -0.0434405f, -0.0933069f, -0.0138562f, -0.0653101f, 0.167255f, -0.0809715f, -0.18058f, -0.0442394f, -0.183692f, 0.0811919f, -0.106027f, 0.0452911f, 0.0722108f, -0.0226658f, -0.149525f, 0.237034f, 0.20463f, 0.144988f, 0.0471833f, 0.0648983f, 0.155139f, -0.00409292f, 0.00323767f, 0.0190396f, 0.173695f, 0.0868024f, -0.0534859f, 0.08615f, 0.0157867f, 0.0827825f, 0.108843f, 0.21281f, -0.1572f, 0.11382f, 0.104255f, 0.140106f, 0.00613886f, -0.186875f, -0.101991f, 0.0698498f, -0.112924f, -0.1181f, -0.0458369f, -0.07158f, 0.0906811f, 0.0123489f, -0.103545f, 0.0460536f, 0.233893f, 0.149928f, -0.207411f, -0.0338307f, 0.273668f, -0.0343884f, -0.10918f, 0.0612135f, 0.0969936f, -0.094246f, 0.098322f, -0.172727f, 0.0589482f, -0.173063f, 0.256557f, 0.0536689f, 0.124971f, 0.0181521f, 0.0597516f, -0.152381f, 0.0565738f, -0.0622297f, 0.044372f, 0.150353f, -0.196487f, -0.133869f, -0.0291577f, 0.0935699f, -0.193529f, 0.266203f, -0.145974f, -0.0436701f, -0.165632f, -0.257843f, -0.0814275f, 0.166949f, -0.0943517f, -0.116203f, -0.155977f, 0.012629f, -0.00237336f, -0.0822269f, -0.121393f, 0.144958f, 0.0328664f, 0.180443f, -0.104065f, 0.0148725f, 0.0128696f, 0.0956502f, 0.15379f, 0.0840983f, -0.00372121f, 0.0439577f, 0.141282f, -0.0564014f, -0.246352f, -0.00497074f, -0.104064f, 0.0689663f, -0.0851852f, -0.133379f, 0.031971f, 0.0377607f, 0.0684237f, -0.0279619f, 0.0892981f, -0.0818062f, 0.0666422f, -0.0237516f, -0.0619832f, -0.210041f, 0.0604179f, -0.098697f, 0.0278293f, 0.206236f, 0.174942f, -0.20328f, 0.108741f, 0.0943609f, 0.047744f, -0.0522666f, 0.0819463f, -0.101755f, -0.160836f, -0.0995765f, -0.0849821f, 0.189193f, 0.0152935f, 0.0850094f, -0.0877825f, -0.089341f, -0.222029f, -0.116253f, -0.0184232f, 0.152967f, -0.027382f, -0.0757678f, 0.158407f, -0.0123056f, -0.133161f, 0.0704565f, 0.0242576f, 0.0310266f, 0.137274f, -0.0178669f, 0.224095f, -0.0124088f, -0.0649908f, -0.065178f, -0.00130033f, 0.127847f, -0.120811f, -0.134409f, -0.141425f, 0.000464022f, -0.0751205f, 0.0558746f, -0.0261009f, -0.0537797f, -0.0738599f, -0.172415f, 0.140118f, 0.00871671f, -0.0121779f, -0.0574655f, 0.15075f, -0.237618f, 0.111895f, 0.143922f, -0.147322f, -0.136467f, -0.100721f, 0.145564f, 0.117667f, -0.0929968f, 0.11065f, -0.00509352f, -0.0357233f, 0.0126162f, -0.045528f, 0.0323541f, 0.117386f, 0.1329f, 0.0964249f, 0.0234668f, -0.0554201f, 0.0413591f, -0.171479f, 0.165281f, 0.173455f, -0.115751f, 0.162122f, -0.159027f, -0.102135f, -0.159294f, 0.243224f, 0.0297305f, 0.0194584f, -0.218197f, 0.184364f, 0.0680997f, -0.119333f, 0.0626915f, -0.273666f, 0.000197524f, 0.148838f, -0.105253f, 0.0711004f, -0.0440931f, -0.118595f, -0.0876403f, 0.114457f, 0.0111937f, -0.264697f, 0.0618395f, 0.0119615f, -0.193143f, 0.211826f, -0.0171919f, 0.0234575f, 0.0434575f, -0.076008f, 0.178002f, -0.248159f, -0.0234186f, -0.0382718f, -0.0293982f, 0.0366818f, -0.0485277f, -0.206035f, -0.154495f, -0.0277935f, -0.0655511f, 0.100008f, -0.0642634f, 0.00106458f, 0.127326f, 0.110055f, 0.0482219f, -0.221308f, 0.150934f, 0.103788f, -0.209525f, 0.14339f, -0.019119f, -0.238055f, -0.0361518f, -0.0600154f, -0.21275f, 0.0953554f, -0.106869f, -0.120829f, 0.154855f, 0.136601f, 0.0206842f, -0.270788f, 0.0943888f, 0.0899543f, -0.010571f, -0.0983219f, 0.0128998f, 0.0443328f, 0.173789f, -0.0955691f, 0.0343009f, -0.0167383f, 0.111411f, -0.215052f, -0.00233536f, -0.0618065f, 0.221272f, -0.0198034f, -0.0448273f, 0.00441129f, -0.125035f, -0.0310063f, -0.00598509f, -0.1132f, 0.00642349f, -0.0455044f, 0.0783766f, 0.0538515f, 0.23919f, -0.0918717f, 0.0202739f, -0.127884f, -0.150435f, -0.00760679f, 0.051291f, 0.0331775f, -0.0214674f, 0.112156f, -0.0692842f, -0.106049f, -0.0772782f, 0.116516f, -0.071984f, -0.210784f, -0.0219735f, 0.0704818f, 0.0231581f, 0.104842f, 0.242246f, -0.0930086f, -0.080537f, 0.146424f, -0.108981f, 0.0371371f, 0.118387f, 0.0753892f, -0.158964f, -0.045919f, 0.0627147f, 0.0897058f, -0.0698116f, 0.137411f, 0.152138f, -0.217709f, 0.000697611f, -0.0862021f, 0.0330052f, 0.168682f, -0.129715f, -0.19517f, 0.0242374f, 0.15178f, -0.217418f, -0.191138f, -0.0669718f, 0.117776f, -0.00496659f, 0.207878f, -0.0325567f, -0.151697f, 0.0498995f, -0.036181f, 0.0816782f, 0.0900013f, 0.00363493f, -0.0960051f, 0.108379f, 0.194013f, 0.073677f, -0.0235275f, -0.101068f, 0.0248201f, 0.0439298f, -0.148255f, 0.10119f, -0.158154f, -0.215714f, 0.0103955f, 0.0622007f, -0.368768f, -0.0169768f, 0.00989634f, 0.0374267f, 0.19233f, -0.148615f, -0.149578f, 0.318239f, -0.0970534f, -0.178996f, -0.0274589f, 0.0552299f, 0.101771f, 0.39322f, 0.248782f, -0.117608f, 0.150445f, -0.182312f, 0.0697266f, -0.100704f, -0.0835644f, -0.0145519f, 0.11457f, 0.321281f, -0.0763055f, 0.0283665f, 0.0842418f, 0.270325f, -0.353023f, 0.238364f, -0.103634f, -0.124856f, -0.0728963f, -0.186485f, 0.144945f, -0.0572089f, 0.0667053f, -0.00435375f, -0.14083f, -0.0118743f, 0.183952f, -0.220675f, 0.126311f, -0.0876644f, 0.0822306f, -0.0710357f, 0.13914f, 0.0769735f, -0.101531f, -0.0059969f, -0.276409f, -0.285015f, 0.116234f, -0.111157f, -0.145277f, -0.338148f, -0.243477f, 0.0509624f, -0.0806413f, -0.18092f, 0.091976f, -0.230158f, 0.168072f, 0.0374197f, 0.0259365f, 0.289218f, 0.194709f, 0.227876f, -0.400099f, 0.266037f, -0.354126f, 0.0895507f, -0.28801f, -0.174366f, 0.0406921f, 0.303371f, -0.133857f, -0.234158f, 0.253153f, -0.0732267f, -0.149941f, -0.318668f, -0.0702968f, -0.323198f, -0.119189f, -0.0987235f, -0.182373f, 0.0135697f, 0.074641f, -0.0764177f, -0.137476f, 0.0229243f, -0.267052f, -0.060387f, 0.100578f, 0.136446f, -0.0536057f, -0.161245f, -0.0139046f, -0.269751f, 0.0300796f, 0.101077f, -0.14669f, 0.340278f, 0.234976f, -0.265254f, -0.100539f, 0.101031f, -0.194233f, -0.278232f, 0.0921149f, 0.108383f, 0.280462f, -0.0194295f, -0.0209577f, -0.0887008f, -0.0148861f, 0.133746f, 0.00917861f, 0.0215647f, 0.107441f, 0.144613f, 0.266644f, -0.0636455f, 0.0964715f, 0.198826f, -0.20441f, 0.329574f, -0.00158009f, 0.0284276f, -0.0706753f, 0.405432f, -0.11119f, -0.20722f, -0.151831f, -0.0899925f, 0.0863433f, -0.164315f, 0.0192349f, -0.114121f, 0.00319568f, 0.105542f, 0.166452f, -0.065522f, 0.0295821f, 0.334108f, 0.0128085f, -0.0397421f, 0.157995f, 0.0742939f, 0.20142f, -0.0899727f, -0.185393f, -0.190866f, -0.0691919f, 0.24309f, -0.0664309f, 0.341297f, 0.00454693f, -0.118927f, -0.220144f, 0.137009f, -0.0598104f, -0.0294854f, 0.131799f, -0.340809f, 0.00260374f, -0.127633f, -0.0756851f, 0.198156f, -0.267967f, -0.0300358f, -0.0231208f, -0.128278f, 0.110446f, 0.157513f, -0.0947693f, 0.2476f, 0.0912398f, 0.03211f, 0.0522786f, 0.0971436f, 0.0537631f, 0.200347f, -0.122437f, -0.257923f, 0.0791859f, 0.124614f, -0.1225f, -0.195031f, -0.156161f, 0.200221f, -0.156496f, -0.315419f, -0.14382f, -0.225626f, 0.000770893f, -0.0377092f, -0.105082f, -0.0486967f, -0.0488353f, 0.132367f, 0.32632f, 0.176397f, 0.132305f, 0.0462669f, 0.311435f, 0.135739f, -0.125447f, -0.299384f, -0.00458241f, 0.0400798f, 0.0145361f, 0.0204015f, -0.304735f, 0.0702532f, -0.185433f, 0.165139f, -0.194823f, 0.0370522f, -0.188566f, 0.015735f, 0.161562f, -0.0751343f, -0.151255f, -0.00719428f, -0.194742f, -0.026831f, 0.187363f, 0.0232305f, 0.271355f, -0.106676f, -0.302612f, 0.109194f, 0.00788717f, -0.160282f, 0.0186894f, -0.091805f, 0.149087f, 0.21808f, -0.0397854f, -0.241456f, 0.0204533f, 0.0272958f, -0.0588776f, 0.0069838f, -0.0969899f, -0.106879f, -0.0544654f, 0.110768f, -0.0485864f, 0.0447781f, -0.0691136f, 0.228661f, 0.240681f, -0.0866715f, -0.0919567f, 0.17601f, -0.0315104f, 0.078596f, 0.0769063f, 0.181277f, -0.0623665f, 0.0150085f, -0.18957f, -0.0782467f, -0.16475f, 0.0775541f, 0.102252f, 0.121118f, 0.0812614f, -0.0614962f, -0.12167f, -0.174026f, -0.0127292f, 0.0533126f, -0.279292f, 0.0110383f, -0.109671f, -0.0783606f, -0.221729f, -0.0349903f, -0.105824f, -0.120988f, 0.056439f, 0.0607135f, -0.0912881f, 0.0231851f, -0.0671338f, 0.0154201f, 0.102f, 0.14974f, 0.208611f, -0.216017f, -0.106252f, 0.11146f, 0.159905f, -0.125959f, -0.0564865f, -0.0585042f, -0.0574306f, 0.0724095f, -0.0178483f, 0.0581024f, -0.204397f, -0.0306159f, 0.112747f, 0.0875878f, 0.121583f, -0.0490992f, -0.0889786f, -0.0614227f, 0.0776374f, 0.0927519f, 0.0322577f, 0.139407f, 0.0646054f, 0.141271f, -0.21835f, -0.119839f, -0.0535307f, -0.080207f, -0.117464f, -0.155682f, -0.216593f, 0.130673f, 0.000404733f, -0.16104f, 0.139705f, 0.163543f, 0.0781992f, 0.269356f, -0.149352f, 0.0623078f, 0.0156996f, -0.232307f, -0.143099f, 0.232967f, 0.0255298f, 0.00166257f, 0.203924f, 0.116533f, -0.0278535f, -0.0461984f, 0.184676f, 0.0601234f, -0.255996f, -0.0554247f, -0.0474753f, 0.110338f, -0.132657f, 0.103411f, -0.152526f, -0.217036f, -0.0618611f, -0.16195f, -0.105667f, 0.0902854f, 0.369343f, 0.104254f, 0.16766f, -0.0978312f, -0.081676f, 0.108111f, -0.18575f, -0.142762f, -0.090848f, 0.0573888f, 0.0679551f, -0.211282f, 0.0839073f, -0.0287699f, 0.0535429f, -0.211668f, 0.00270255f, 0.158536f, 0.00267119f, 0.105694f, 0.0265527f, 0.0370918f, 0.183715f, -0.128518f, 0.093094f, -0.148899f, 0.0219629f, 0.0899163f, -0.057071f, -0.0101113f, 0.0531122f, 0.25217f, -0.0310895f, -0.0786129f, 0.173923f, -0.0437701f, 0.126292f, -0.0967796f, 0.0137105f, -0.179939f, -0.175122f, 0.228529f, 0.0124059f, 0.0110776f, -0.0768961f, -0.248181f, -0.169272f, -0.146898f, -0.113635f, 0.0903588f, 0.0769193f, -0.102068f, -0.181196f, 0.121443f, -0.112407f, 0.0394056f, -0.0694488f, -0.0450572f, 0.131304f, 0.0650416f, -0.244428f, 0.0962932f, -0.234939f, -0.112826f, 0.0956981f, 0.0324681f, 0.179005f, 0.0510765f, -0.088197f, 0.0440939f, 0.0791231f, -0.0913022f, -0.198515f, 0.2094f, -0.175135f, -0.244649f, -0.0258374f, 0.0230745f, 0.0524891f, 0.13456f, -0.284209f, 0.0664098f, 0.0441613f, 0.0888037f, -0.187218f, -0.0125805f, 0.146455f, -0.166475f, -0.16312f, -0.0286255f, -0.125168f, 0.00153161f, 0.033372f, 0.0485439f, -0.197662f, -0.101815f, -0.150036f, -0.00156929f, 0.046036f, -0.0223543f, -0.182758f, 0.173462f, 0.153146f, 0.0676192f, 0.170351f, 0.00467271f, -0.0879431f, -0.142567f, -0.0164399f, -0.0399697f, -0.127791f, 0.128274f, -0.12571f, 0.0110618f, 0.195289f, 0.155517f, 0.112085f, -0.0668067f, 0.0328498f, 0.0205176f, 0.110784f, 0.116335f, 0.204769f, -0.127813f, -0.0606224f, 0.278524f, -0.0372985f, -0.070237f, 0.0915469f, 0.140533f, 0.0309103f, 0.0851868f, 0.187171f, 0.103499f, 0.163888f, -0.0526385f, 0.186809f, -0.135639f, -0.134394f, -0.172248f, -0.0416093f, -0.0324751f, 0.231684f, 0.0853516f, -0.0647734f, 0.057732f, 0.0662547f, -0.0554219f, -0.122954f, 0.0619759f, -0.00352391f, 0.0336601f, -0.122745f, -0.213728f, 0.0296914f, 0.113246f, -0.250214f, -0.0458666f, 0.0891569f, 0.0370191f, 0.206057f, 0.261992f, 0.0590614f, 0.00969548f, -0.146852f, -0.224193f, -0.126764f, -0.0263324f, 0.0750633f, 0.119208f, -0.205452f, -0.102713f, -0.0670132f, -0.0243294f, 0.192566f, 0.0233715f, -0.0620679f, 0.00544677f, -0.205963f, 0.111812f, -0.00364855f, 0.129648f, 0.0896988f, 0.084722f, -0.0351552f, -0.149752f, 0.106095f, -0.134404f, -0.138175f, -0.127754f, 0.0864646f, 0.134654f, -0.185587f, 0.00325334f, 0.0545868f, 0.10692f, 0.292888f, -0.136383f, -0.056073f, 0.196921f, -0.0956174f, 0.0026045f, 0.0498113f, -0.0569468f, 0.115391f, -0.152392f, 0.0774502f, 0.120252f, 0.0633398f, 0.186651f, 0.0315214f, -0.048936f, -0.0898613f, 0.0522775f, 0.248328f, 0.0298218f, 0.143384f, -0.105108f, -0.0540383f, -0.0221869f, 0.0483034f, 0.00248369f, -0.196594f, -0.228508f, 0.110403f, -0.270574f, -0.105523f, -0.0194786f, -0.0141811f, -0.220649f, -0.25334f, 0.0163591f, 0.0245621f, -0.224917f, -0.096719f, -0.100948f, 0.169003f, -0.118463f, -0.096062f, 0.184538f, -0.153813f, -0.146251f, 0.144629f, 0.106997f, -0.00511183f, 0.192991f, 0.178495f, 0.0398738f, -0.00835895f, -0.0531268f, -0.129916f, 0.18244f, -0.129214f, -0.187447f, 0.220301f, 0.337305f, -0.0359044f, 0.0343533f, -0.0202697f, -0.161293f, -0.0412435f, -0.189754f, -0.168897f, 0.141449f, 0.0950968f, 0.0383154f, 0.0347857f, -0.16265f, 0.185004f, -0.099805f, -0.0212449f, 0.0501565f, 0.0209462f, -0.160351f, -0.116808f, -0.214754f, 0.0270167f, -0.0265176f, 0.0306346f, -0.0407413f, 0.0330782f, -0.0624809f, 0.0418435f, -0.0457101f, -0.124507f, 0.0941232f, -0.154813f, 0.131318f, -0.194825f, -0.143316f, -0.00344105f, -0.145597f, -0.136199f, -0.0481004f, 0.0564425f, 0.163249f, -0.0162535f, 0.0425787f, 0.172853f, 0.114653f, 0.0587276f, 0.094715f, -0.104182f, 0.0385558f, 0.0559874f, -0.00751727f, 0.00287524f, 0.113725f, -0.0408174f, -0.036112f, -0.114962f, 0.00745245f, -0.179703f, 0.194615f, -0.235718f, 0.0496823f, 0.0388559f, 0.00968439f, -0.090032f, -0.156282f, 0.0387783f, 0.108556f, -0.229963f, 0.044302f, 0.00616255f, 0.182292f, 0.0820388f, 0.0986739f, 0.233998f, 0.0564657f, -0.0127862f, -0.113868f, 0.0768921f, -0.0331319f, -0.0579627f, -0.0436391f, 0.122479f, -0.149934f, 0.0238097f, -0.0624022f, -0.0797415f, -0.0145673f, 0.0632604f, 0.0498854f, 0.0581596f, -0.0981131f, 0.0889459f, 0.0630736f, -0.0763293f, 0.113031f, 0.237274f, -0.0382022f, 0.117915f, 0.167101f, -0.0283186f, 0.00183765f, 0.201789f, 0.274577f, 0.0287328f, 0.0597527f, 0.00761086f, 0.173093f, -0.054738f, -0.0953154f, -0.00385329f, 0.178182f, 0.0683847f, 0.110077f, -0.158601f, 0.00665129f, -0.0307245f, -0.057307f, -0.150248f, 0.221087f, -0.0254825f, 0.0300392f, -0.131793f, 0.0213003f, -0.0657661f, 0.0242135f, 0.00649469f, -0.0655416f, 0.0151779f, 0.104026f, -0.0412431f, -0.0326756f, -0.13912f, 0.0101181f, -0.182815f, -0.0263798f, -0.0814972f, 0.0136586f, 0.104192f, -0.162991f, -0.0527802f, -0.152191f, -0.152327f, 0.0915614f, 0.130011f, 0.14316f, -0.102226f, -0.0731636f, 0.177987f, -0.0300936f, 0.0980384f, 0.239401f, -0.216214f, -0.0382716f, -0.0475225f, 0.144693f, -0.0162987f, 0.0492552f, -0.100004f, 0.0449778f, -0.00792176f, -0.201107f, -0.027315f, -0.0796939f, -0.253496f, -0.0219445f, -0.0334223f, -0.0229467f, -0.0476878f, 0.113303f, 0.137879f, 0.0932312f, -0.0146049f, 0.145406f, 0.106486f, 0.0101159f, 0.0397978f, -0.0626356f, -0.0414157f, 0.028314f, 0.132188f, -0.0698547f, 0.0578562f, 0.0253683f, 0.179469f, 0.0852896f, 0.169478f, 0.149545f, 0.201162f, -0.0108734f, -0.0590893f, 0.0957367f, 0.00503305f, -0.116935f, -0.14065f, -0.18305f, -0.0904737f, -0.0495767f, -0.147033f, 0.153692f, -0.128278f, -0.189927f, 0.0500016f, -0.133952f, -0.0953842f, 0.287446f, 0.0909008f, 0.0239026f, -0.224284f, -0.102164f, 0.103003f, 0.0275836f, -0.0647257f, -0.209424f, -0.0552382f, 0.0601643f, -0.0841704f, -0.202639f, -0.139269f, 0.0679209f, 0.0580554f, 0.0835865f, 0.166808f, 0.184846f, -0.0884956f, 0.220342f, -0.0423317f, 0.0461642f, 0.0641063f, 0.280886f, -0.0922397f, 0.0481243f, 0.0368747f, -0.0144149f, 0.15808f, -0.140894f, -0.102591f, -0.176114f, 0.101925f, -0.0189659f, 0.0300023f, 0.116185f, 0.218901f, -0.125853f, -0.0541264f, 0.13591f, -0.036234f, -0.145554f, 0.229089f, -0.00556338f, 0.13883f, 0.0389929f, 0.065945f, -0.0562078f, -0.0213562f, -0.175256f, 0.0915409f, -0.176198f, 0.18588f, 0.151108f, -0.0640318f, -0.0803893f, -0.0853915f, 0.00335991f, -0.0515352f, 0.0712584f, -0.108851f, 0.018344f, 0.281025f, 0.146639f, 0.00361132f, 0.147876f, -0.0967964f, 0.0521837f, -0.0938577f, -0.137752f, -0.157504f, -0.262141f, 0.0777711f, 0.114621f, -0.204568f, -0.0200893f, -0.160595f, -0.158405f, 0.225597f, 0.2091f, 0.00397801f, -0.174196f, 0.126451f, 0.0458993f, -0.0384911f, -0.167375f, -0.147533f, -0.0743483f, 0.0637033f, -0.0218764f, 0.113976f, 0.046017f, 0.131446f, 0.00437464f, 0.0363836f, 0.0730549f, -0.0773979f, -0.0796512f, -0.099175f, 0.0221629f, -0.0851951f, -0.126737f, -0.193802f, 0.213415f, 0.169689f, 0.0121318f, 0.0572106f, -0.0795828f, 0.15465f, -0.0200894f, 0.0787262f, -0.101902f, -0.072418f, -0.172223f, -0.0504648f, 0.184891f, -0.0109654f, -0.261646f, 0.0874208f, -0.0118347f, -0.069827f, -0.041216f, -0.0342471f, -0.243718f, 0.17743f, 0.0597565f, 0.353367f, 0.0694696f, -0.0952034f, 0.0970692f, 0.0334803f, -0.124157f, -0.0422203f, 0.0628944f, -0.00658474f, 0.00160163f, 0.0438965f, -0.190577f, -0.153892f, 0.130782f, -0.169905f, 0.210502f, -0.102931f, -0.243551f, -0.200809f, 0.282116f, -0.307308f, 0.00179743f, -0.0373554f, 0.041825f, 0.0782788f, -0.219272f, -0.0831397f, 0.222683f, -0.176592f, 0.151393f, 0.0361864f, 0.138047f, -0.242123f, -0.0132988f, 0.110498f, -0.0366317f, -0.12212f, -0.0494317f, 0.068666f, 0.133211f, -0.274231f, -0.0659911f, 0.103496f, -0.0329843f, -0.0983351f, -0.143149f, -0.282993f, -0.245066f, -0.180462f, -0.018055f, -0.205314f, -0.0628242f, 0.00720754f, -0.181242f, 0.2586f, 0.0762802f, -0.0713768f, -0.078167f, 0.190517f, 0.100462f, 0.172623f, -0.134743f, -0.0813577f, -0.0587162f, -0.232383f, 0.105641f, -0.0781323f, 0.285268f, -0.0792215f, -0.0988385f, -0.160018f, 0.0792765f, -0.228722f, 0.00637146f, 0.052312f, -0.0737825f, 0.247443f, -0.160782f, 0.0822129f, 0.102611f, 0.0247734f, -0.125932f, -0.258036f, -0.203817f, 0.035442f, 0.159885f, -0.0517183f, 0.000992026f, -0.121031f, 0.136344f, -0.0554738f, -0.0547167f, 0.0257797f, 0.0513064f, 0.0647998f, -0.201254f, -0.00100153f, -0.0346006f, -0.0550717f, -0.020998f, -0.167329f, -0.140263f, -0.0804001f, -0.238458f, -0.0843475f, 0.0499651f, 0.0261526f, -0.0706831f, -0.110454f, -0.0560968f, 0.0588213f, 0.20405f, -0.00235754f, -0.12077f, 0.185623f, -0.014452f, 0.150953f, -0.132852f, -0.147087f, -0.0831041f, -0.0264822f, -0.0910323f, 0.100182f, 0.0845094f, 0.172512f, 0.104111f, 0.0524909f, -0.179881f, 0.123742f, -0.21102f, 0.133708f, -0.0991113f, 0.0391486f, -0.031427f, -0.00745691f, 0.223434f, -0.0952412f, 0.00950805f, -0.121764f, 0.0662099f, -0.0194729f, 0.051244f, -0.00143228f, 0.0275782f, -0.0865211f, 0.000218048f, 0.0393896f, 0.128943f, 0.0776602f, -0.0355932f, -0.00924087f, 0.182316f, 0.0802563f, -0.0743417f, 0.0759455f, -0.0684678f, 0.0608567f, 0.144204f, -0.149468f, -0.202047f, -0.138254f, -0.111654f, -0.0766148f, 0.123608f, 0.103531f, 0.188352f, 0.0868757f, 0.157837f, -0.0544736f, -0.0426866f, 0.0547285f, -0.0036875f, 0.0174168f, -0.147221f, -0.148498f, 0.0959166f, 0.0219883f, 0.0619305f, -0.0805559f, 0.114695f, 0.117601f, -0.00476307f, -0.111498f, -0.0848146f, 0.0892337f, -0.0682412f, 0.123168f, -0.0500855f, 0.0504695f, -0.136861f, 0.0947822f, 0.0670236f, -0.00844667f, 0.0522675f, 0.20723f, -0.228652f, -0.0467848f, -0.0712164f, 0.0035107f, 0.0711291f, 0.118406f, 0.145012f, 0.124345f, 0.0481463f, 0.215301f, -0.233979f, -0.0320645f, 0.00567587f, -0.0373099f, -0.134386f, 0.0905791f, 0.039525f, -0.0893463f, -0.0121764f, -0.032367f, -0.0807747f, 0.0149695f, 0.140966f, 0.0754256f, 0.207485f, -0.123036f, 0.0811977f, 0.118389f, -0.0575788f, -0.271434f, 0.135047f, -0.125903f, -0.154054f, 0.0753093f, 0.110718f, -0.029115f, -0.0505391f, -0.0732751f, -0.133537f, -0.0474285f, 0.0914456f, -0.0433885f, -0.0212645f, 0.0161239f, -0.132334f, 0.0824234f, -0.039933f, -0.0394553f, -0.15641f, -0.0590791f, 0.0353423f, -0.0589701f, -0.0689395f, -0.0274853f, -0.0288177f, 0.00140868f, -0.104049f, 0.0448672f, -0.148449f, -0.105697f, -0.143478f, 0.115678f, 0.0794656f, 0.220301f, 0.0238217f, 0.00119785f, 0.0488177f, -0.111948f, -0.0946535f, 0.121108f, -0.0987203f, -0.120734f, -0.122405f, 0.102596f, 0.300383f, -0.0462211f, 0.0270546f, -0.227341f, 0.179451f, 0.0531959f, 0.172351f, -0.153536f, 0.0249466f, 0.0215589f, -0.109414f, -0.0605344f, -0.0436276f, 0.0347216f, 0.0802819f, 0.0456407f, 0.184961f, -0.0964005f, 0.0725459f, -0.140902f, -0.0570908f, -0.0937191f, -0.0372974f, -0.116153f, 0.191767f, 0.00725536f, -0.0321706f, 0.13248f, 0.0814964f, 0.0200455f, 0.0520933f, -0.104934f, 0.0908873f, 0.176538f, -0.0821922f, -0.158474f, 0.111763f, 0.0337208f, 0.027108f, -0.0445779f, -0.117735f, 0.114034f, 0.114038f, 0.0554463f, 0.0903896f, 0.0782152f, 0.130804f, -0.043326f, 0.00594926f, -0.00187576f, 0.0984491f, 0.00980382f, -0.231136f, 0.0210697f, 0.0756663f, -0.204135f, -0.0445576f, -0.0543249f, -0.144572f, -0.201551f, -0.0476475f, 0.128746f, 0.0389481f, 0.0839574f, 0.201931f, 0.0838106f, 0.136766f, -0.181809f, 0.0934568f, 0.0934934f, -0.0267009f, -0.1293f, -0.0773492f, -0.190073f, -0.0980045f, -0.129433f, -0.00806712f, 0.219977f, -0.057944f, 0.118552f, 0.07263f, -0.0356373f, 0.175536f, 0.052319f, 0.200565f, 0.240403f, 0.00152794f, 0.221823f, -0.179588f, -0.0248803f, -0.101268f, 0.156612f, 0.118341f, -0.0576102f, 0.0977815f, 0.273099f, -0.125619f, 0.0651525f, -0.0489077f, -0.0106466f, -0.11354f, 0.144121f, 0.108219f, -0.0754342f, 0.0822896f, -0.0303239f, -0.0186598f, 0.107822f, -0.00353967f, -0.257335f, -0.0482203f, 0.0311735f, -0.323512f, -0.0309865f, -0.0237505f, 0.111249f, -0.0787172f, -0.149492f, -0.0161369f, -0.0311827f, 0.100968f, -0.133167f, 0.110285f, 0.132684f, 0.1043f, 0.129175f, 0.266262f, -0.0970471f, 0.118417f, -0.04738f, -0.0536216f, -0.321889f, 0.0493603f, 0.375923f, -0.238869f, -0.0529867f, -0.175304f, 0.0618463f, 0.302271f, -0.286877f, 0.239307f, 0.160333f, 0.322221f, 0.181392f, 0.0488062f, 0.111705f, -0.153412f, -0.0975627f, -0.283728f, 0.0693261f, -0.0772495f, 0.122746f, 0.111027f, -0.0816517f, 0.00353493f, 0.214513f, -0.256128f, -0.22709f, 0.112609f, 0.313029f, -0.103217f, 0.0110659f, -0.137128f, -0.0450135f, -0.125426f, -0.124034f, -0.188885f, 0.0895588f, 0.285847f, -0.340265f, 0.158917f, 0.0925068f, 0.119676f, -0.0300484f, 0.017657f, 0.124093f, 0.229963f, 0.177112f, -0.181993f, 0.0333771f, -0.000534985f, 0.188728f, 0.110897f, -0.151788f, 0.0793929f, 0.0902547f, -0.0546936f, 0.222033f, 0.0418571f, -0.141557f, 0.111883f, 0.0480497f, 0.0836787f, -0.426697f, 0.253112f, 0.206131f, 0.325686f, -0.275163f, 0.0731275f, -0.267009f, -0.0344235f, -0.027307f, 0.0371403f, 0.140099f, -0.228658f, 0.0517038f, 0.26935f, -0.315827f, -0.0714719f, -0.00571931f, -0.265168f, 0.0746336f, -0.188074f, 0.28863f, 0.0525335f, -0.121696f, 0.0309704f, -0.225999f, 0.167955f, 0.148017f, 0.0533601f, 0.098028f, -0.122059f, -0.124127f, -0.144275f, -0.00907853f, 0.12428f, -0.0138954f, -0.040349f, -0.0461941f, -0.00770657f, -0.091551f, 0.120031f, -0.00537156f, -0.155253f, -0.0971476f, -0.0695069f, -0.205588f, 0.0768376f, -0.00455877f, 0.0475646f, -0.0610517f, 0.0519353f, -0.0116042f, -0.0789939f, 0.279619f, -0.128961f, 0.268022f, 0.0119302f, 0.0307649f, 0.0773069f, 0.324794f, -0.291966f, 0.0755391f, 0.381353f, -0.0173739f, 0.32563f, -0.154009f, 0.127122f, 0.0295217f, 0.326039f, -0.0709772f, 0.0567531f, 0.0897351f, 0.235251f, -0.242461f, -0.380893f, 0.00628678f, 0.100926f, -0.229826f, 0.183932f, -0.365547f, 0.130605f, -0.0392738f, -0.00042538f, 0.0978768f, -0.203983f, 0.00538395f, 0.168383f, 0.211363f, -0.339183f, -0.197995f, 0.238277f, 0.20055f, -0.0802647f, -0.234785f, 0.178097f, 0.166481f, 0.215734f, -0.145513f, -0.0906893f, -0.264947f, 0.0479908f, -0.178965f, 0.199585f, 0.14954f, 0.239405f, -0.247473f, 0.00585774f, -0.0647178f, 0.124201f, 0.0589397f, 0.161293f, -0.103276f, 0.175244f, -0.0553655f, -0.187868f, 0.166096f, 0.0271634f, 0.0771592f, 0.15535f, 0.0174934f, 0.154845f, 0.283978f, -0.036556f, 0.0365613f, 0.104438f, 0.0242991f, -0.0241004f, 0.129454f, -0.0832142f, 0.0282721f, -0.295518f, -0.273236f, 0.160015f, -0.199738f, -0.0886765f, -0.130148f, 0.189738f, 0.159241f, 0.143249f, 0.138988f, 0.108958f, 0.0171775f, 0.220987f, -0.170837f, -0.155467f, -0.048035f, 0.285615f, -0.235074f, -0.025082f, -0.0873696f, -0.0334944f, -0.0842559f, 0.198144f, -0.113362f, -0.350569f, -0.167618f, -0.105877f, -0.0422403f, -0.230715f, 0.174647f, -0.281341f, -0.300911f, -0.343186f, -0.0952295f, -0.0263845f, 0.143436f, 0.0198416f, -0.0332327f, 0.232393f, 0.00601557f, 0.0891519f, 0.216145f, -0.149563f, 0.0142735f, 0.0514202f, 0.0171965f, 0.0922429f, 0.0817676f, 0.324012f, 0.0519651f, -0.182085f, -0.0774328f, 0.138755f, 0.0386764f, -0.161702f, 0.109509f, -0.0170739f, -0.00907257f, 0.122604f, -0.208987f, 0.217563f, -0.0317408f, -0.259283f, 0.0519568f, -0.33571f, 0.0130028f, -0.107823f, 0.0400016f, -0.0321826f, -0.00771981f, 0.0180763f, -0.172941f, -0.0702905f, -0.0723321f, 0.11626f, 0.343369f, 0.049599f, -0.0374043f, 0.22063f, 0.0112415f, -0.251234f, 0.0200727f, -0.264025f, -0.115436f, -0.274897f, -0.0467439f, -0.0487849f, -0.12681f, 0.00670374f, 0.087401f, 0.260813f, 0.103189f, -0.0962675f, 0.163013f, 0.206738f, -0.0832263f, 0.113542f, -0.103932f, 0.0257979f, -0.167185f, 0.0562215f, -0.0670137f, 0.11455f, 0.383758f, -0.225055f, 0.0239169f, -0.186807f, -0.00300913f, 0.35124f, 0.309161f, -0.0235079f, 0.128311f, -0.020434f, 0.239344f, -0.133805f, -0.161967f, 0.0459124f, 0.0410318f, 0.198236f, 0.148142f, -0.204521f, -0.00708845f, 0.115911f, 0.230881f, 0.00330116f, -0.0419822f, 0.137035f, -0.270164f, -0.0578591f, -0.0553997f, 0.139176f, -0.233773f, -0.0897014f, -0.209263f, -0.242749f, -0.055244f, -0.159982f, -0.210397f, 0.123842f, -0.00972449f, -0.0920277f, -0.233729f, -0.309926f, 0.0441353f, 0.0857449f, -0.161838f, 0.146385f, 0.316958f, -0.0933375f, -0.0476416f, 0.10773f, -0.194121f, -0.120978f, 0.0580499f, -0.124162f, -0.143514f, -0.183126f, 0.292215f, 0.102041f, 0.0889789f, -0.177986f, 0.111953f, -0.090387f, -0.221256f, 0.0292243f, 0.0491925f, -0.247868f, -0.142577f, -0.00529836f, 0.136211f, -0.134484f, 0.0167191f, 0.0481375f, 0.2074f, -0.300037f, 0.177915f, 0.192929f, 0.147759f, 0.0803174f, 0.0412049f, 0.154827f, 0.0653243f, -0.249443f, -0.205248f, -0.065213f, 0.0633143f, -0.161736f, 0.225836f, 0.112505f, 0.154585f, -0.354816f, 0.221705f, -0.357852f, 0.270374f, -0.224273f, 0.252207f, 0.0890426f, -0.0534791f, -0.210836f, 0.0644475f, -0.104006f, -0.0570405f, 0.199206f, -0.0344806f, 0.0203509f, -0.322609f, 0.146052f, -0.0250719f, -0.160703f, -0.310935f, -0.0896715f, -0.19674f, 0.00839032f, -0.0776367f, 0.110788f, 0.115607f, 0.219919f, 0.158556f, 0.300568f, 0.129954f, 0.264686f, -0.0732839f, -0.0941338f, 0.00615258f, -0.238577f, 0.308524f, 0.248215f, 0.079369f, 0.0368617f, -0.158351f, -0.0851266f, -0.0210069f, -0.128381f, -0.128262f, 0.101895f, 0.107076f, 0.195543f, 0.13526f, -0.0803068f, -0.0670157f, -0.0448898f, -0.141938f, 0.115928f, 0.0303375f, -0.0273239f, 0.300057f, -0.104739f, 0.0412394f, -0.29116f, 0.161056f, 0.179662f, 0.137008f, 0.198361f, 0.0612458f, -0.111665f, 0.0733204f, -0.102875f, 0.0597157f, -0.066018f, -0.0272211f, 0.094787f, 0.193792f, -0.181012f, -0.0925625f, 0.125074f, -0.0506317f, 0.189797f, -0.0580239f, 0.085739f, 0.204722f, 0.0471777f, 0.173527f, -0.0229748f, -0.053316f, -0.0505439f, 0.03698f, 0.00440141f, -0.12566f, -0.0648562f, 0.0986643f, -0.104347f, -0.11774f, -0.0036238f, 0.0231331f, 0.0541455f, -0.17962f, 0.0761952f, -0.108912f, 0.0858105f, 0.106314f, 0.174013f, -0.0883914f, -0.122836f, -0.0592001f, -0.0190756f, -0.011817f, -0.121271f, -0.147742f, 0.0501472f, 0.189474f, -0.0270118f, 0.0409737f, -0.115808f, 0.157026f, 0.141812f, 0.0720842f, 0.103497f, 0.00647515f, -0.0587795f, -0.140515f, -0.222167f, -0.00804248f, -0.112009f, -0.191166f, -0.0796595f, -0.167161f, 0.173864f, 0.150265f, -0.118283f, 0.00168973f, -0.0379061f, -0.181855f, -0.137495f, 0.00504548f, -0.241359f, 0.126073f, 0.170115f, -0.119454f, -0.077529f, -0.10047f, -0.0279459f, 0.0146447f, 0.0987595f, -0.119313f, -0.0258228f, 0.177496f, -0.0320714f, -0.0769486f, -0.00861796f, -0.0852193f, -0.0253986f, -0.154178f, -0.253051f, 0.137821f, -0.0757371f, 0.0135749f, -0.0955458f, 0.0416335f, 0.0405195f, -0.147218f, 0.0846621f, 0.0212924f, 0.129557f, -0.103175f, -0.0408846f, 0.0504316f, -0.149652f, 0.219917f, 0.0282717f, -0.0416267f, -0.121239f, -0.0322505f, -0.240271f, -0.175039f, -0.121304f, -0.00854252f, -0.0971678f, -0.0703615f, -0.0842523f, 0.0359054f, -0.0127176f, 0.190441f, 0.161083f, -0.160528f, -0.00583947f, -0.223282f, -0.123371f, 0.0160436f, -0.0156213f, 0.170673f, -0.129023f, -0.00506946f, 0.0703744f, 0.0445071f, -0.0857331f, 0.111367f, 0.0828535f, 0.0794646f, 0.275265f, -0.0698627f, -0.0851602f, 0.0341706f, -0.100382f, 0.209998f, -0.253973f, -0.124023f, 0.0921497f, 0.0507136f, 0.147978f, -0.0538502f, 0.0842173f, 0.186717f, 0.126232f, 0.156068f, -0.198355f, -0.0461178f, 0.150994f, 0.0682207f, -0.0345739f, -0.177324f, -0.20248f, 0.0299869f, 0.0847392f, -0.170278f, 0.0759141f, -0.167999f, -0.0624229f, 0.0156653f, 0.062417f, -0.166753f, 0.0895861f, -0.0888396f, -0.0656236f, 0.0117395f, -0.150669f, -0.0277256f, 0.0948088f, -0.106597f, -0.0549446f, 0.135106f, -0.0847106f, -0.0296539f, 0.119508f, 0.190768f, 0.0606843f, -0.0240808f, 0.0838489f, -0.061994f, 0.14436f, 0.0358153f, -0.0208117f, 0.256759f, 0.0093494f, -0.166494f, 0.0695839f, -0.146948f, 0.0496797f, -0.154459f, 0.106389f, 0.0672877f, 0.0472926f, 0.0705159f, -0.182538f, -0.146684f, -0.127487f, 0.128101f, 0.0186975f, 0.0617246f, -0.0310264f, -0.0411756f, -0.147544f, -0.0400306f, -0.0505074f, 0.182915f, -0.20741f, -0.160659f, 0.0749163f, -0.104048f, 0.00573633f, 0.127477f, 0.249661f, -0.0588949f, -0.100449f, -0.0323618f, 0.046746f, 0.0438394f, -0.044781f, 0.11475f, 0.125124f, 0.146386f, -0.0171346f, -0.144785f, -0.109768f, 0.0306628f, -0.165915f, -0.00947778f, -0.13573f, 0.0117162f, -0.192631f, 0.193612f, 0.0388739f, 0.0533808f, 0.103288f, 0.00446435f, -0.0057144f, 0.0825023f, -0.145149f, -0.0882364f, 0.0562257f, 0.0780204f, 0.0320663f, 0.0665545f, 0.0403433f, 0.0444507f, -0.195114f, -0.128944f, 0.00177233f, -0.0690072f, -0.0979028f, -0.049885f, 0.0399567f, 0.0883595f, 0.143593f, 0.0114367f, -0.0680662f, 0.0782036f, -0.134527f, 0.125628f, -0.202807f, 0.229949f, 0.182774f, 0.0159728f, 0.0621058f, -0.237107f, -0.0537723f, -0.0628995f, -0.170483f, -0.0236873f, 0.0654507f, -0.140119f, -0.353985f, 0.138742f, 0.18515f, 0.0553668f, -0.152569f, -0.206378f, 0.0324881f, 0.0897378f, 0.179411f, 0.18494f, 0.0650946f, 0.0284531f, 0.00385072f, -0.0407791f, 0.00402586f, -0.0244542f, -0.195742f, 0.0258582f, -0.0789456f, 0.183167f, 0.0100679f, 0.00101494f, -0.0577418f, 0.120513f, -0.0149517f, 0.195031f, -0.035116f, 0.205155f, 0.0351762f, -0.0196186f, -0.0334429f, -0.0788403f, 0.128993f, -0.0947377f, -0.360293f, -0.140682f, -0.294571f, -0.0409994f, -0.0275309f, -0.089756f, -0.0312177f, 0.129147f, 0.0150731f, -0.15879f, 0.0017513f, 0.0220524f, 0.00200441f, -0.140896f, 0.1154f, 0.0606864f, 0.0464039f, 0.14677f, 0.131802f, 0.0320612f, 0.0712043f, 0.050139f, 0.15559f, -0.181379f, -0.0123158f, 0.110276f, -0.20409f, -0.268499f, -0.0742751f, -0.0248992f, -0.211951f, -0.0566705f, 0.0175528f, -0.0533851f, 0.0985644f, 0.0564312f, -0.133079f, 0.0429266f, -0.147281f, -0.146318f, 0.00180571f, 0.0638211f, -0.289135f, -0.151164f, -0.123904f, 0.101138f, -0.0741509f, 0.0112168f, 0.0520403f, 0.10872f, -0.200795f, 0.0699078f, -0.0954078f, 0.0432255f, -0.204629f, -0.152574f, 0.160371f, -0.353174f, 0.0527079f, 0.06552f, 0.0351731f, 0.0869829f, 0.141456f, 0.133783f, -0.0851393f, -0.090857f, -0.0454629f, -0.0943383f, 0.125621f, -0.0455616f, 0.0628071f, 0.0655726f, 0.0980195f, -0.272539f, -0.0179763f, -0.113266f, -0.142459f, 0.0330865f, -0.205032f, -0.115156f, 0.18391f, -0.0655779f, 0.231229f, -0.0773719f, -0.00290946f, 0.0715203f, 0.0530966f, 0.00171528f, -0.0710404f, -0.0935197f, -0.0893589f, -0.0661647f, -0.123122f, -0.0813141f, -0.0817868f, 0.233153f, -0.0482134f, -0.110967f, 0.117839f, 0.137581f, 0.119748f, -0.115392f, 0.102686f, -0.215755f, -0.108907f, 0.125804f, -2.69306e-05f, 0.0126808f, 0.171769f, -0.0715122f, 0.116292f, 0.183754f, -0.00999837f, 0.146373f, -0.0838761f, -0.263123f, 0.159649f, -0.253822f, -0.161411f, -0.0293979f, -0.174789f, -0.0426204f, -0.0380049f, -0.0362552f, 0.112941f, 0.232096f, -0.170978f, -0.198244f, -0.179939f, -0.213563f, -0.137792f, -0.157704f, 0.115915f, 0.246394f, 0.180769f, 0.0223478f, 0.12937f, -0.0102644f, -0.10185f, -0.0881254f, 0.0779296f, 0.240276f, 0.0589541f, -0.280794f, 0.0641699f, 0.248625f, -0.0926291f, 0.118083f, 0.0898397f, 0.102736f, -0.183992f, -0.0957101f, -0.122061f, 0.165297f, 0.128317f, 0.177055f, -0.0346282f, 0.225272f, -0.062894f, 0.156058f, 0.0802564f, 0.192989f, -0.223854f, 0.174838f, -0.0440509f, 0.109375f, -0.0797419f, -0.0598919f, 0.215141f, -0.0503065f, 0.0566765f, -0.266236f, 0.1935f, -0.068835f, -0.134459f, 0.00882706f, -0.19884f, 0.0573484f, -0.108116f, -0.19559f, 0.114696f, -0.00520795f, -0.195271f, 0.211371f, -0.103713f, 0.0576292f, 0.0212615f, -0.0852529f, -0.0724641f, 0.0749717f, -0.106593f, 0.130545f, 0.0734817f, 0.0532017f, -0.0030917f, -0.0950434f, 0.19062f, 0.178192f, -0.212856f, -0.123009f, 0.124101f, -0.091268f, 0.149908f, 0.000416983f, -0.108066f, 0.0570148f, 0.0622308f, 0.118448f, -0.0278003f, -0.105164f, -0.112084f, -0.011518f, -0.00836983f, 0.035777f, 0.128759f, 0.00983834f, -0.0756524f, -0.0233619f, -0.0253434f, 0.148657f, 0.174107f, -0.0313008f, 0.0788945f, -0.143563f, -0.0612641f, 0.170426f, -0.203419f, 0.0843844f, 0.0950818f, -0.0330374f, -0.0327891f, 0.18121f, -0.0102647f, -0.0834375f, -0.088046f, 0.0968893f, -0.0360707f, 0.0245661f, -0.0311852f, -0.0907612f, -0.102306f, -0.1965f, 0.104704f, 0.107641f, -0.107093f, -0.0825785f, -0.0240737f, 0.139886f, 0.056157f, -0.11275f, -0.176107f, 0.15596f, -0.0832547f, -0.146313f, 0.0857412f, -0.133492f, 0.181291f, 0.0267124f, 0.0286992f, -0.0279293f, 0.225574f, 0.0253266f, 0.0310692f, -0.0639215f, 0.041125f, 0.112884f, 0.0919547f, -0.033526f, -0.081523f, -0.114375f, -0.076432f, -0.171497f, -0.194605f, 0.179391f, -0.011431f, -0.0416909f, -0.172225f, -0.0599215f, -0.0298505f, 0.172789f, 0.117565f, -0.0489004f, 0.0470174f, 0.00349685f, -0.0763051f, -0.0101072f, -0.134985f, 0.0149032f, 0.0190642f, 0.161631f, -0.198038f, -0.10075f, 0.0592493f, -0.0115109f, -0.0215955f, 0.0525187f, 0.102626f, -0.011757f, -0.0750343f, 0.0798324f, 0.00963521f, 0.0125579f, 0.0612591f, 0.0490708f, 0.01141f, 0.0425927f, -0.0750282f, 0.211119f, 0.0322673f, -0.141333f, -0.052246f, 0.0709574f, 0.0671858f, -0.0633164f, -0.101677f, 0.137533f, 0.125482f, -0.0125953f, -0.0332965f, 0.0171802f, -0.0403005f, 0.0431778f, 0.110769f, 0.0281335f, -0.0227012f, 0.167359f, 0.0623195f, -0.0219571f, 0.0569053f, -0.090492f, 0.124145f, -0.0363935f, 0.134913f, 0.0347041f, 0.146431f, -0.154733f, -0.0489537f, 0.117522f, 0.0112574f, 0.0232246f, 0.0487615f, 0.0713794f, -0.0337336f, 0.141729f, 0.0613572f, -0.117978f, -0.191694f, 0.0352373f, -0.0280097f, -0.0567686f, -0.0725322f, 0.0327126f, -0.15427f, -0.0422699f, -0.178896f, -0.0792047f, -0.0729002f, 0.131747f, 0.0433745f, -0.0606322f, -0.0179761f, 0.0602604f, -0.159706f, -0.00264359f, -0.099624f, -0.104963f, 0.0596569f, -0.0283401f, 0.0462613f, -0.0720217f, 0.147799f, 0.000187278f, -0.0470117f, 0.0278136f, -0.00692216f, -0.0700301f, -0.128021f, -0.057423f, 0.0663088f, 0.0140582f, -0.0230756f, -0.0585563f, 0.0724664f, -0.135807f, -0.0298584f, 0.0685322f, 0.162035f, -0.0132946f, 0.0568557f, -0.040362f, -0.0443836f, -0.120924f, 0.0314159f, 0.0735791f, 0.00795262f, -0.0994371f, 0.0859312f, 0.219765f, 0.0130838f, 0.0487009f, 0.0171181f, -0.0517496f, 0.116444f, -0.0561843f, 0.108164f, -0.0661954f, -0.0533557f, 0.0121666f, 0.000735744f, -0.0358432f, 0.00489646f, 0.0601439f, -0.102945f, -0.00689233f, 0.0688869f, 0.0403468f, 0.00315985f, 0.169955f, -0.132177f, 0.251338f, -0.132373f, 0.104014f, 0.114645f, -0.0892942f, -0.0435251f, -0.0394931f, -0.0728463f, 0.0621142f, 0.0946694f, 0.00286086f, -0.0268467f, -0.0654618f, -0.00259635f, 0.0704012f, 0.0703305f, 0.131625f, -0.000429783f, -0.0375444f, 0.00711227f, -0.0754787f, -0.0857059f, -0.000576661f, -0.0468238f, 0.131031f, 0.089591f, -0.0761852f, 0.157513f, 0.0619241f, 0.111772f, 0.0264206f, -0.0115601f, 0.167014f, -0.0267879f, -0.0709045f, -0.0725814f, -0.112915f, -0.103525f, 0.0126763f, 0.0475523f, 0.0194032f, -0.148565f, -0.00988109f, 0.197733f, 0.211963f, -0.148568f, 0.183106f, 0.0503894f, 0.0714701f, -0.207691f, 0.134534f, -0.163102f, -0.0524989f, -0.0919239f, -0.0895181f, 0.0383133f, -0.125748f, 0.0319319f, 0.196506f, -0.0915159f, -0.116036f, 0.111254f, 0.0321774f, -0.0386195f, -0.0629447f, -0.128324f, -0.0808273f, -0.182575f, 0.0913305f, -0.0145352f, 0.00789385f, 0.0406986f, 0.204762f, 0.104333f, 0.149734f, 0.208192f, -0.0955941f, 0.0363336f, -0.0193108f, -0.0530516f, 0.0947921f, -0.0350433f, -0.0267367f, -0.110716f, 0.0778568f, -0.0921665f, 0.0681278f, -0.0302164f, 0.134999f, 0.0801475f, 0.152379f, -0.154441f, 0.0441512f, 0.241371f, -0.145245f, -0.258145f, -0.0369986f, -0.000228497f, 0.0979165f, 0.120332f, -0.142109f, -0.125684f, 0.054852f, -0.168035f, 0.0209885f, 0.0208043f, -0.0898394f, -0.00297991f, 0.180318f, 0.132227f, 0.185934f, 0.162926f, 0.0539372f, 0.0259109f, -0.0533295f, 0.0840093f, -0.0969639f, -0.0245397f, -0.0250236f, 0.0838026f, 0.0062746f, 0.0835056f, -0.182846f, -0.036077f, 0.0615592f, 0.181224f, -0.0792913f, 0.03657f, 0.0808041f, -0.122952f, -0.0837721f, 0.196375f, -0.153929f, 0.0432193f, 0.0461825f, -0.0681413f, -0.0962469f, 0.107044f, -0.057685f, -0.155157f, 0.205445f, -0.0915261f, -0.0443843f, -0.182361f, 0.0617222f, -0.0902426f, -0.0138768f, 0.130076f, 0.201879f, 0.0880118f, 0.0770322f, -0.0244893f, -0.00931564f, 0.133277f, -0.100029f, 0.288857f, 0.125128f, -0.0557113f, -0.117229f, -0.0092843f, -0.0783813f, -0.0999846f, -0.0508603f, -0.0220059f, 0.0464046f, 0.10142f, 0.03507f, 0.0140051f, -0.0871108f, 0.0904303f, -0.0219333f, 0.0898392f, 0.173741f, 0.0487679f, 0.0246944f, -0.111781f, -0.0958131f, -0.180298f, 0.10613f, 0.00323503f, -0.0586847f, -0.0992227f, 0.00927631f, 0.0177082f, 0.063146f, 0.0238195f, -0.0653111f, 0.249377f, -0.0393625f, -0.214828f, -0.0119432f, 0.106388f, -0.0234931f, 0.00174735f, 0.0110702f, 0.10651f, 0.0306843f, -0.0511602f, -0.0153032f, 0.0724361f, -0.0101304f, -0.102069f, -0.0913126f, -0.0387108f, -0.137107f, 0.121564f, 0.032884f, 0.00798757f, -0.113835f, -0.0996549f, 0.072192f, -0.0829007f, -0.0713774f, -0.231719f, -0.0822651f, 0.186104f, -0.145861f, -0.0556912f, -0.0335178f, 0.164352f, 0.118097f, -0.103541f, -0.0854663f, 0.156107f, 0.0796871f, -0.00228426f, 0.156693f, 0.162114f, -0.0156554f, 0.0694221f, -0.0205171f, 0.0834167f, 0.0671659f, -0.000266558f, -0.0739804f, 0.0291611f, 0.0394649f, 0.136126f, 0.126698f, 0.100709f, 0.0337755f, 0.00153088f, -0.0317203f, -0.0378448f, 0.0862301f, 0.0293017f, 0.00697108f, 0.147309f, 0.0600845f, 0.0427469f, -0.156788f, -0.0362087f, 0.199303f, -0.152548f, -0.12199f, 0.0386091f, 0.00809633f, -0.0187618f, -0.177832f, -0.0322894f, 0.110679f, 0.0568116f, 0.0331366f, -0.173938f, -0.0983253f, 0.200075f, -0.235401f, -0.169017f, -0.0242167f, -0.0402051f, -0.110031f, 0.137206f, -0.158287f, -0.02208f, 0.13224f, -0.00561945f, -0.138737f, -0.16234f, -0.108242f, -0.0195199f, 0.00456145f, -0.227336f, 0.198708f, -0.0364937f, -0.200182f, -0.0672216f, 0.0551883f, -0.113173f, 0.0769306f, 0.143437f, -0.209842f, -0.0244055f, -0.00293352f, -0.0666939f, 0.0688074f, -0.0891394f, -0.166341f, 0.0956858f, 0.07537f, 0.0161389f, 0.0138231f, 0.0497889f, 0.0470342f, 0.0270352f, 0.0816946f, 0.0759072f, -0.0166453f, -0.122258f, 0.113459f, 0.0590483f, 0.0469735f, 0.117283f, 0.121068f, -0.00207851f, -0.0339886f, 0.0483883f, -0.0973926f, 0.128268f, 0.133405f, -0.0758412f, 0.0189937f, 0.0908783f, 0.066787f, -0.071291f, -0.137051f, 0.00553619f, -0.123772f, 0.00960179f, 0.10944f, 0.148486f, -0.00536876f, 0.170447f, -0.0755539f, 0.0411079f, -0.107149f, -0.0894112f, 0.0162968f, 0.00381986f, -0.090736f, -0.0441646f, -0.0167737f, 0.10937f, -0.141312f, -0.0720339f, -0.0662943f, 0.0891134f, 0.00991125f, -0.0179756f, -0.167915f, 0.0845064f, 0.0802348f, -0.039344f, 0.0388579f, 0.0271387f, -0.121975f, 0.0122817f, 0.148857f, 0.0306134f, 0.231144f, -0.0625956f, -0.0159108f, 0.0271171f, -0.08551f, -0.139513f, -0.0754616f, 0.0587157f, 0.0356319f, -0.0438091f, -0.161202f, 0.00621912f, 0.0401658f, 0.0580611f, -0.07265f, 0.0869023f, 0.211729f, 0.00183993f, 0.0110673f, 0.0248362f, 0.0877785f, 0.0259412f, -0.0792819f, -0.151993f, 0.0736426f, -0.0151379f, 0.0631214f, -0.00473032f, 0.00419222f, 0.106953f, -0.0857115f, 0.203462f, -0.12156f, -0.0835552f, 0.16084f, -0.0232144f, 0.0068811f, -0.051724f, -0.0340063f, -0.153776f, -0.263674f, 0.150291f, -0.326415f, -0.163032f, 0.0960412f, 0.020726f, -0.0335302f, 0.0468188f, 0.0553569f, 0.0916628f, 0.0453869f, -0.0817133f, -0.11438f, -0.11201f, -0.00861489f, -0.134202f, -0.116007f, -0.00512304f, -0.0722593f, -0.124235f, 0.0216158f, 0.0946954f, -0.114995f, 0.0868869f, 0.172738f, -0.076036f, -0.00689848f, 0.137516f, -0.038653f, 0.0657005f, 0.0767609f, -0.0695885f, -0.00516133f, -0.16232f, 0.0117349f, -0.115196f, 0.0431965f, 0.0604186f, -0.0230077f, 0.0473502f, -0.0247293f, 0.106083f, -0.102053f, -0.129293f, 0.00214221f, 0.182043f, 0.00771927f, -0.0449686f, -0.0772508f, -0.0931962f, 0.0496702f, 0.0381185f, -0.117714f, -0.00778768f, 0.0571783f, 0.00584921f, 0.0521065f, 3.90749e-05f, -0.0881375f, -0.106279f, -0.08872f, -0.0346161f, -0.140483f, -0.0799366f, 0.0279026f, -0.122462f, 0.00983094f, -0.0180995f, -0.181723f, 0.00203333f, -0.0810602f, 0.056886f, 0.0261376f, 0.0183546f, -0.0824963f, 0.08104f, -0.0796615f, -0.0752835f, -0.0176469f, 0.0473353f, -0.0524605f, -0.100574f, -0.0201294f, 0.0929374f, 0.125981f, -0.178458f, 0.00153675f, -0.046912f, 0.0127849f, -0.138133f, -0.161953f, 0.147487f, -0.0181779f, 0.154088f, -0.0418165f, -0.137732f, 0.0606685f, 0.0328458f, -0.0363968f, 0.00497112f, -0.128703f, 0.0169495f, -0.0306403f, -0.00618526f, -0.00177955f, -0.0284799f, 0.0662151f, -0.120507f, -0.132843f, -0.0296229f, 0.0277989f, -0.0674852f, 0.0104183f, -0.143655f, -0.0370141f, -0.106133f, 0.0563752f, -0.0795421f, 0.0119582f, -0.146722f, -0.0645345f, 0.170422f, 0.0627992f, 0.139925f, 0.0878233f, -0.0346912f, 0.0452314f, -0.196106f, -0.0110619f, 0.106211f, 0.0943092f, -0.154762f, 0.0321017f, -0.0650643f, -0.0957377f, 0.00468371f, 0.101507f, 0.0373058f, -0.0778673f, 0.0380332f, -0.0397065f, -0.0445059f, -0.0134129f, -0.154599f, -0.088654f, 0.0679529f, -0.0107485f, -0.0811695f, -0.0388354f, 0.186186f, -0.0783131f, -0.0806276f, -0.0102686f, -0.0306195f, -0.104182f, 0.0243133f, 0.116604f, 0.0314312f, 0.00740113f, 0.035414f, 0.126543f, 0.163781f, 0.0066859f, 0.202495f, -0.128696f, 0.159255f, -0.0656227f, -0.20021f, 0.0798483f, 0.155299f, -0.18984f, 0.136082f, 0.15455f, -0.129592f, -0.0279963f, -0.449608f, -0.080903f, 0.0301346f, -0.0511038f, 0.171819f, 0.00168257f, 0.059624f, -0.0746683f, -0.0066042f, -0.076878f, -0.0717616f, 0.189028f, -0.131753f, -0.159707f, -0.0661166f, 0.0262288f, -0.00613905f, 0.145474f, 0.174248f, -0.277122f, 0.0426468f, -0.0723559f, 0.0285613f, -0.0371549f, 0.251597f, -0.168353f, 0.146377f, 0.150651f, -0.117419f, -0.388909f, -0.02498f, -0.0542734f, -0.0200742f, 0.184745f, 0.0986231f, -0.0534512f, -0.0301606f, 0.226749f, -0.323385f, -0.132824f, -0.0187049f, -0.0108039f, 0.0858059f, 0.0972944f, -0.0854192f, 0.12646f, -0.0568223f, 0.0464686f, -0.0909525f, -0.270531f, -0.0604818f, 0.278208f, 0.00209811f, 0.00472009f, -0.0471745f, 0.18303f, 0.0895532f, -0.0773374f, 0.215199f, -0.0936599f, -0.178347f, -0.0139031f, 0.260634f, 0.10702f, -0.199761f, -0.0303213f, 0.13787f, -0.275152f, 0.0964544f, -0.131709f, -0.232035f, 0.0446721f, -0.000469431f, -0.0974357f, 0.134988f, 0.153937f, -0.0197057f, -0.194978f, 0.127057f, -0.233145f, -0.498132f, 0.147734f, 0.347448f, 0.0420948f, -0.0442987f, -0.15094f, -0.0786806f, 0.285252f, -0.0347993f, -0.033958f, 0.273407f, 0.243025f, 0.177604f, 0.172054f, 0.389269f, 0.026364f, -0.0710187f, 0.21585f, -0.223818f, -0.220831f, 0.078f, -0.0110406f, 0.0236762f, 0.295409f, 0.0838376f, -0.158716f, 0.00355104f, -0.368962f, -0.0333377f, 0.211634f, -0.01288f, 0.166739f, 0.202047f, 0.165908f, -0.0677588f, 0.0633911f, -0.286426f, 0.022173f, 0.159465f, 0.0728823f, -0.0161482f, -0.22522f, 0.0315735f, -0.016046f, -0.0538731f, -0.0559265f, 0.114381f, -0.0942542f, -0.28447f, 0.203351f, 0.0786263f, 0.179045f, -0.314401f, 0.0997564f, 0.0010305f, -0.101461f, 0.00578804f, 0.168222f, -0.0803818f, 0.0716746f, -0.0136679f, 0.0285606f, 0.13867f, -0.0360702f, 0.0477021f, -0.0637567f, -0.0445908f, -0.201693f, -0.177606f, 0.0716782f, -0.01309f, 0.168639f, -0.0353054f, 0.0639149f, 0.253449f, -0.0696449f, -0.158037f, -0.0730867f, 0.0635254f, 0.115306f, 0.0432159f, 0.136495f, 0.0151252f, -0.146086f, 0.107125f, -0.0450443f, -0.120481f, -0.0831146f, -0.0480669f, 0.242636f, -0.251027f, -0.186762f, -0.145016f, 0.149119f, 0.090142f, 0.143089f, -0.00744677f, -0.0601037f, -0.0760751f, 0.0683754f, -0.323541f, 0.169643f, 0.0174211f, 0.111376f, 0.203116f, 0.0191127f, 0.292691f, 0.255383f, -0.271295f, -0.222533f, -0.12164f, -0.035194f, 0.0640692f, 0.0910835f, 0.050254f, 0.0366389f, -0.266645f, 0.149269f, -0.177678f, 0.0980149f, 0.0954675f, -0.10657f, 0.140655f, 0.15106f, 0.321736f, 0.213425f, -0.0749245f, -0.154187f, 0.234855f, 0.429912f, -0.0907717f, -0.188907f, -0.170754f, 0.330903f, -0.170005f, 0.215676f, 0.256659f, 0.0393646f, 0.152663f, -0.184317f, 0.321424f, -0.0761471f, 0.000483806f, -0.0828644f, 0.0945781f, -0.139643f, 0.04776f, 0.00622437f, 0.208941f, -0.0150915f, -0.243618f, -0.147931f, -0.0391436f, 0.00750397f, -0.0755611f, 0.0349944f, -0.0401421f, -0.127826f, 0.124667f, 0.0143398f, 0.0240392f, 0.0854083f, -0.0358677f, 0.181207f, -0.064578f, -0.166232f, -0.168441f, -0.0197995f, -0.163362f, 0.0452722f, -0.00810857f, -0.0489743f, 0.0195271f, 0.153406f, -0.0229634f, 0.0181972f, 0.21373f, -0.17265f, -0.0329472f, 0.170916f, 0.0326801f, 0.0991479f, 0.0394509f, -0.138244f, 0.103826f, -0.0286928f, 0.134136f, -0.0256873f, -0.0678352f, -0.0431186f, 0.12674f, -0.049894f, -0.207742f, -0.000371104f, 0.0380056f, -0.0711986f, 0.190998f, 0.187373f, -0.120452f, 0.133492f, 0.0440552f, 0.0338448f, -0.173471f, 0.166533f, 0.0934553f, -0.00469673f, 0.0728383f, -0.0265261f, -0.223025f, 0.0742487f, -0.110441f, -0.0307376f, 0.120265f, 0.00045845f, -0.124957f, 0.175077f, -0.0298805f, 0.0381743f, -0.136874f, 0.162269f, 0.128233f, -0.265704f, -0.0747253f, 0.0859599f, 0.122564f, -0.0740098f, 0.0800994f, 0.0132483f, -0.24258f, -0.136325f, -0.120044f, -0.00610241f, -0.133768f, 0.117419f, -0.0127364f, -0.148411f, -0.018231f, 0.0892049f, -0.0808318f, 0.0473514f, 0.174976f, -0.0347539f, -0.0244069f, -0.16157f, 0.00775131f, -0.1007f, 0.0361755f, 0.0649958f, -0.267804f, 0.093274f, -0.101048f, -0.00405974f, 0.0230499f, 0.0430769f, -0.0380083f, 0.0650638f, -0.0587378f, 0.112046f, -0.0174438f, 0.155361f, -0.239402f, 0.050865f, -0.0698976f, 0.00724763f, -0.0142043f, 0.231842f, 0.165151f, -0.0522119f, -0.0278122f, -0.080948f, 0.180933f, 0.0161576f, -0.0303778f, -0.101658f, -0.10076f, -0.0187261f, 0.132324f, 0.131986f, -0.139099f, 0.0180205f, 0.0819525f, 0.015729f, -0.133911f, 0.0452336f, -0.108959f, -0.169734f, -0.0831172f, 0.0915113f, -0.0230358f, 0.15147f, 0.0420007f, -0.148386f, -0.0370492f, -0.0837101f, -0.251826f, 0.0288566f, -0.0740285f, -0.0285754f, -0.0238856f, 0.205451f, 0.0913668f, 0.101172f, 0.121541f, 0.0288234f, 0.0690225f, -0.147289f, 0.0409614f, 0.0170888f, -0.0040946f, 0.117172f, -0.195548f, 0.135126f, -0.160374f, 0.126227f, 0.0055996f, -0.0959703f, -0.197631f, -0.14437f, 0.0259968f, 0.232987f, -0.169118f, -0.0254913f, 0.130424f, -0.101656f, -0.124341f, 0.0184954f, 0.0931586f, -0.0571829f, 0.078914f, -0.111963f, 0.0584608f, 0.281286f, 0.15667f, -0.0657178f, -0.0580992f, -0.240388f, 0.00658263f, -0.173939f, 0.127884f, 0.264482f, -0.0941425f, 0.147119f, 0.0887294f, -0.0247292f, -0.00662902f, 0.188667f, 0.0719959f, -0.0457741f, 0.181808f, -0.199515f, 0.24002f, -0.149479f, -0.160093f, -0.155661f, 0.0103051f, 0.0465138f, -0.11773f, 0.0584684f, -0.161307f, -0.0974117f, -0.097169f, -0.0486995f, -0.0657051f, -0.214717f, -0.153711f, -0.101421f, -0.00245431f, 0.185874f, -0.0859451f, -0.113931f, -0.198017f, 0.088803f, 0.119667f, 0.182405f, 0.0816067f, 0.0279404f, -0.119897f, -0.160588f, 0.0463675f, 0.0290897f, 0.0229501f, -0.0773216f, -0.124733f, 0.0771328f, 0.0254613f, -0.174532f, -0.0571093f, -0.00440442f, 0.0312043f, -0.0262366f, -0.0545274f, -0.143371f, 0.00146849f, 0.046146f, 0.046692f, 0.0116085f, 0.0632227f, 0.191593f, -0.122306f, 0.0671393f, -0.100146f, 0.0530461f, 0.0608022f, -0.0321683f, 0.0296004f, -0.119233f, 0.098004f, 0.00664851f, 0.128954f, 0.0617879f, -0.100948f, -0.20733f, -0.0112701f, -0.130943f, -0.012742f, 0.00577597f, -0.0444379f, -0.157312f, 0.0776763f, 0.249969f, -0.0737005f, 0.00454862f, -0.126101f, -0.103771f, -0.0188318f, 0.192092f, 0.0489358f, 0.0451804f, 0.0418901f, -0.0185337f, -0.0220227f, -0.314413f, 0.0442161f, 0.076009f, -0.0301945f, 0.0658563f, 0.122687f, 0.0641015f, -0.215993f, 0.0424811f, 0.212142f, -0.133924f, -0.17507f, 0.0395539f, -0.279946f, -0.0696577f, 0.0555972f, -0.0690221f, -0.0286238f, 0.0759702f, 0.0378003f, -0.0271204f, -0.0155051f, 0.013143f, -0.119735f, 0.349897f, 0.321391f, 0.131711f, 0.248513f, 0.100321f, 0.205086f, 0.298323f, 0.00371004f, -0.0623736f, 0.23827f, -0.0410926f, 0.0287461f, -0.0828694f, -0.140397f, 0.0431646f, -0.186817f, -0.111369f, -0.193106f, 0.0349657f, 0.072632f, -0.0891982f, 0.135391f, -0.0839212f, 0.0519003f, 0.0829734f, -0.117233f, -0.0946706f, 0.0529381f, -0.0534611f, 0.0181588f, -0.0698222f, 0.0554859f, -0.0250923f, -0.0209571f, 0.0584245f, -0.0779142f, -0.0161191f, 0.100507f, 0.0180937f, -0.221188f, 0.16897f, 0.0673243f, -0.169458f, 0.261989f, -0.15588f, 0.140217f, -0.255749f, -0.0987773f, 0.143805f, 0.0936846f, 0.120847f, 0.0911676f, 0.225676f, 0.0424021f, -0.116776f, 0.0706832f, -0.129362f, 0.131293f, 0.267157f, 0.318419f, 0.132305f, -0.089314f, 0.264f, -0.102514f, 0.15808f, -0.151805f, -0.10702f, 0.220161f, 0.18057f, 0.159029f, 0.13307f, 0.208569f, -0.0767349f, 0.20508f, 0.0010901f, 0.136849f, 0.16046f, -0.149879f, 0.0225031f, -0.125291f, -0.0128477f, -0.0274871f, -0.215769f, 0.121026f, -0.111157f, 0.0683219f, -0.0904254f, -0.0177892f, -0.165245f, -0.0656231f, -0.0192649f, -0.294015f, -0.050361f, 0.195793f, 0.169921f, -0.0586105f, 0.0600458f, 0.15824f, 0.0369845f, 0.176338f, 0.0300651f, 0.19637f, -0.0467745f, 0.0699194f, -0.0546408f, 0.112657f, -0.218231f, 0.137808f, 0.103875f, -0.0544939f, -0.140079f, -0.0787778f, 0.160834f, -0.166542f, 0.0249688f, -0.160019f, -0.0393002f, -0.283504f, 0.0648741f, 0.00541385f, 0.152333f, -0.0133114f, 0.323333f, -0.166064f, -0.0365668f, 0.0427682f, -0.037159f, 0.171779f, -0.166689f, -0.0234323f, -0.00698247f, 0.0957856f, 0.240945f, -0.102936f, 0.166875f, 0.155406f, -0.10578f, 0.0268901f, 0.106805f, 0.102428f, 0.0856252f, 0.106481f, -0.0782053f, 0.229657f, 0.059001f, -0.00103609f, 0.132004f, 0.0455175f, -0.20119f, -0.211318f, -0.186302f, -0.101325f, -0.108766f, 0.00502121f, 0.138516f, 0.0408278f, 0.117842f, 0.0760056f, -0.0933333f, 0.0807164f, 0.204976f, -0.0204537f, 0.0572365f, 0.122734f, 0.000841439f, -0.0106687f, -0.23185f, 0.218897f, -0.246247f, -0.0974505f, -0.171007f, 0.140267f, -0.235248f, 0.0280082f, -0.140501f, 0.0359956f, 0.16733f, 0.0119192f, 0.0304547f, -0.159846f, 0.0315225f, -0.187273f, 0.163253f, -0.064167f, -0.0412981f, 0.0733115f, 0.013946f, -0.0856683f, -0.124714f, 0.0978931f, 0.12893f, -0.124724f, 0.0177763f, 0.0812157f, -0.0695321f, -0.211339f, 0.289544f, -0.137231f, 0.138006f, 0.0274147f, 0.088521f, -0.0770122f, -0.00679605f, 0.164952f, 0.269493f, -0.0412988f, -0.0424175f, -0.0485624f, -0.120767f, 0.0786952f, 0.112021f, 0.194951f, -0.060452f, -0.183836f, -0.0635889f, 0.128565f, 0.185545f, -0.00680909f, 0.165726f, -0.0313288f, 0.00207547f, -0.034664f, -0.289718f, -0.0469686f, 0.194872f, 0.118247f, -0.0827077f, -0.146072f, -0.122637f, 0.286151f, 0.167002f, 0.1826f, 0.152513f, -0.187898f, 0.079039f, 0.0224914f, -0.132801f, -0.122669f, 0.00702161f, -0.0863474f, 0.258739f, -0.169137f, -0.204236f, -0.24621f, 0.0972103f, 0.262336f, -0.0446594f, -0.140837f, 0.190186f, -0.233304f, -0.067154f, 0.0799727f, 0.133398f, -0.0812236f, -0.0547751f, -0.00166417f, -0.17352f, 0.099287f, -0.0199359f, -0.0103188f, -0.112866f, 0.149294f, -0.188938f, -0.151183f, -0.079313f, 0.214555f, -0.139327f, -0.108204f, 0.216096f, -0.0533963f, -0.16042f, 0.0146691f, -0.183643f, 0.146227f, -0.0110274f, 0.0067659f, 0.183798f, -0.0967085f, -0.0159163f, -0.0358429f, -0.176546f, 0.165022f, -0.192656f, 0.10614f, -0.0498167f, -0.331344f, -0.249292f, -0.229989f, 0.120978f, -0.0204409f, 0.154699f, 0.261572f, -0.0865993f, -0.195791f, -0.069332f, -0.110228f, 0.0176226f, 0.154442f, -0.215323f, -0.207343f, -0.164821f, 0.11011f, -0.311572f, 0.0704866f, -0.0101355f, -0.0575892f, 0.0333387f, 0.0785032f, 0.276697f, 0.241912f, 0.116454f, 0.183424f, -0.0519841f, 0.0344106f, 0.230282f, -0.00562526f, 0.175687f, -0.279617f, 0.250348f, 0.205709f, 0.0518827f, 0.208936f, -0.00529015f, -0.113649f, 0.160713f, -0.0156743f, -0.233717f, 0.240258f, 0.127687f, 0.16469f, 0.125221f, -0.184192f, 0.116742f, -0.121495f, -0.136439f, 0.188321f, -0.0899486f, -0.0742381f, 0.2932f, -0.3336f, 0.065587f, -0.113724f, 0.147252f, -0.164491f, -0.25504f, 0.165941f, -0.259909f, -0.147118f, 0.252044f, -0.0528132f, -0.0554431f, -0.118873f, -0.0371884f, -0.056346f, -0.302634f, -0.0852716f, -0.0977261f, -0.280184f, 0.119977f, 0.210678f, 0.104351f, 0.263607f, -0.141731f, -0.162933f, -0.217531f, -0.0251617f, 0.150283f, 0.0125942f, 0.167503f, 0.0907663f, -0.257452f, -0.014424f, -0.265145f, -0.0692095f, 0.339108f, 0.0125368f, 0.0371161f, -0.20185f, 0.136095f, 0.287644f, -0.103436f, -0.111887f, 0.145147f, 0.0491606f, -0.126038f, -0.205094f, 0.0860689f, 0.142977f, 0.17262f, -0.11687f, -0.0413473f, 0.120674f, 0.324597f, 0.0608206f, 0.203833f, 0.114332f, 0.212532f, -0.102738f, -0.140162f, -0.232304f, 0.0653837f, 0.0505198f, -0.0386978f, -0.00552765f, -0.0723921f, -0.200413f, 0.0554082f, -0.0767321f, -0.195524f, -0.116664f, -0.195264f, -0.154453f, 0.135828f, 0.00310986f, 0.00818158f, 0.131362f, -0.37868f, -0.27271f, -0.10176f, 0.113762f, 0.158704f, -0.121578f, 0.262168f, 0.0417079f, 0.307788f, -0.0255752f, -0.098697f, 0.115135f, -0.0276556f, -0.153633f, 0.106327f, 0.125061f, 0.237572f, -0.143046f, 0.185323f, -0.323838f, 0.162428f, 0.287412f, -0.0705447f, 0.0263403f, -0.282619f, -0.0465424f, -0.0339291f, -0.133111f, 0.244181f, 0.206252f, -0.0933976f, 0.358579f, -0.158392f, 0.0104876f, -0.0877607f, -0.0814027f, 0.0964855f, 0.194113f, 0.118961f, -0.0712847f, -0.169965f, -0.133895f, 0.193338f, 0.209537f, -0.143366f, -0.154405f, 0.0780666f, 0.0923613f, -0.126159f, -0.0382411f, -0.141581f, -0.306199f, -0.0573025f, 0.0114801f, -0.189972f, -0.0153299f, 0.0367871f, 0.000713947f, -0.00265603f, -0.110115f, -0.136495f, 0.0149165f, -0.0723177f, 0.0429232f, 0.0265006f, 0.00561697f, 0.127186f, 0.0868989f, -0.0139978f, -0.069476f, -0.110621f, 0.0623593f, -0.0846848f, -0.006447f, -0.0756453f, 0.12776f, 0.17066f, 0.116247f, 0.157155f, 0.0239758f, -0.059451f, -0.0655803f, -0.15524f, 0.0890496f, 0.17374f, -0.105382f, 0.116733f, 0.123486f, 0.0919933f, 0.00868165f, -0.0881934f, -0.0156182f, -0.00638121f, -0.201986f, 0.00433166f, -0.152446f, -0.145952f, -0.0447678f, -0.0211943f, -0.0841034f, 0.162754f, 0.010427f, 0.0101528f, 0.138327f, 0.0627172f, 0.19413f, 0.103606f, 0.0287996f, -0.141758f, -0.0544282f, 0.0481777f, -0.0363357f, 0.110058f, -0.0350752f, -0.0743598f, -0.0585003f, -0.0647494f, -0.0689146f, 0.110047f, 0.0742875f, -0.0831797f, -0.00884985f, 0.0996715f, 0.0163975f, -0.0297667f, -0.0326943f, 0.0254979f, 0.0032952f, -0.00345579f, 0.0470014f, -0.0449209f, -0.0705177f, -0.206368f, -0.0484091f, 0.0284528f, -0.138678f, -0.123413f, 0.101464f, 0.0979665f, -0.106207f, -0.136303f, -0.0853449f, 0.0423277f, -0.00040817f, -0.0593855f, -0.143841f, 0.0579786f, 0.0445362f, -0.146692f, -0.0770946f, -0.0614596f, 0.0660155f, 0.0793707f, 0.192722f, 0.00485735f, 0.0199035f, 0.148536f, -0.0130613f, -0.00270889f, -0.0349868f, 0.145366f, -0.0571288f, 0.0456502f, -0.0366984f, -0.102553f, 0.174328f, 0.0333923f, -0.0375753f, -0.116022f, -0.162435f, -0.133255f, -0.0389403f, 0.172795f, -0.00579256f, -0.0803924f, 0.0177172f, -0.0521368f, -0.127849f, 0.0356857f, 0.0716475f, -0.0238211f, 0.176663f, 0.152621f, -0.104066f, -0.20731f, -0.00201667f, -0.0704097f, 0.00748602f, -0.252358f, -0.0018066f, 0.0638843f, -0.0661963f, -0.113118f, -0.0436507f, -0.00876321f, -0.0980029f, -0.0227094f, -0.149987f, -0.153567f, -0.134846f, 0.0648943f, 0.0552762f, 0.0849888f, -0.104588f, -0.159964f, 0.0835738f, -0.132335f, 0.156152f, 0.0117752f, 0.0140476f, 0.0717893f, -0.0143893f, 0.0163345f, 0.0528237f, 0.089983f, 0.0674969f, 0.0417568f, 0.13804f, 0.127595f, 0.106732f, -0.0728912f, 0.114222f, -0.0793308f, 0.16395f, -0.0491339f, -0.0435931f, -0.0958036f, 0.135135f, -0.0765285f, 0.0036349f, -0.165656f, 0.05279f, -0.0281239f, 0.224154f, -0.0994646f, 0.0821522f, -0.0107852f, -0.0949041f, 0.172349f, 0.171328f, 0.161043f, 0.140969f, 0.0261259f, -0.0945795f, 0.1483f, -0.120026f, -0.128392f, -0.136585f, -0.0191347f, -0.0880136f, 0.14144f, 0.128573f, -0.0587865f, 0.122954f, 0.117401f, -0.0189767f, 0.00931461f, -0.130259f, 0.030784f, 0.0340362f, 0.130269f, 0.101887f, 0.181453f, -0.179875f, 0.06813f, 0.0339368f, 0.0120543f, 0.0298985f, -0.0597218f, 0.0993634f, -0.0447418f, 0.00943868f, 0.0892724f, 0.0227868f, -0.128311f, -0.0569694f, -0.117277f, 0.0681664f, 0.217231f, 0.0365367f, -0.0252118f, 0.0359562f, 0.0829495f, 0.0199542f, 0.0950221f, -0.0417913f, 0.0635182f, -0.0570941f, -0.0670382f, -0.188233f, -0.180485f, -0.075175f, -0.0716512f, -0.144604f, 0.230393f, -0.00800173f, 0.032942f, -0.0852286f, 0.115205f, 0.110772f, -0.0865152f, 0.0714076f, -0.00172915f, 0.14499f, 0.148153f, -0.042441f, -0.0513805f, 0.212034f, 0.0122979f, -0.112024f, -0.182149f, 0.0838624f, -0.0279937f, 0.126963f, -0.090517f, -0.0330084f, -0.00152701f, -0.0997179f, 0.0879012f, -0.0660085f, 0.101445f, -0.0119079f, 0.0930633f, 0.0752859f, -0.0815801f, 0.0894509f, 0.0219267f, -0.0319206f, 0.217698f, -0.0583924f, -0.0511372f, -0.0196199f, -0.0741611f, -0.116343f, -0.122579f, 0.182529f, 0.133855f, 0.00338519f, -0.0883975f, -0.0494725f, -0.0409838f, 0.0437197f, -0.0227468f, -0.00405446f, -0.0206356f, -0.0586081f, 0.021395f, -0.0192061f, 0.205792f, 0.124156f, 0.128427f, -0.0616116f, -0.222148f, -0.0403231f, 0.16013f, 0.0149941f, 0.147413f, -0.0694854f, 0.0463648f, 0.0151679f, -0.045879f, 0.186419f, -0.0298506f, -0.00263253f, -0.174382f, 0.239754f, -0.0159993f, -0.0462051f, 0.0729675f, -0.0363253f, -0.0386574f, -0.0316315f, 0.0132136f, 0.0541684f, -0.0877756f, -0.0438356f, -0.0304245f, 0.0797767f, -0.0970823f, 0.0197286f, -0.0850717f, -0.00859394f, -0.0384188f, 0.0849525f, -0.0883915f, -0.0829234f, -0.0936168f, -0.0363387f, -0.243251f, 0.024643f, -0.0317805f, -0.088485f, -0.178175f, -0.128021f, 0.0378631f, -0.0833715f, -0.0615704f, 0.0706259f, 0.12597f, -0.0235507f, -0.00795948f, -0.18827f, 0.134182f, -0.0971107f, 0.195536f, 0.0779987f, -0.223033f, -0.0527117f, -0.0648642f, 0.159499f, -0.053111f, 0.313235f, 0.236366f, 0.0943748f, 0.000814681f, 0.0900387f, -0.142785f, 0.00511489f, -0.0945128f, -0.194547f, 0.169925f, 0.0554962f, -0.139001f, 0.072228f, 0.0305409f, 0.044262f, -0.0603394f, -0.0845768f, 0.150681f, -0.0709082f, 0.138283f, -0.00843857f, 0.0346573f, -0.0904462f, -0.069578f, 0.0592405f, -0.0275062f, -0.112998f, -0.189491f, 0.0994603f, -0.0813917f, 0.174942f, 0.0218859f, 0.154236f, 0.118228f, -0.0107098f, 0.0513018f, -0.164578f, -0.19169f, 0.0211951f, 0.0391679f, -0.0838446f, -0.0513625f, -0.0778612f, -0.0161422f, -0.0204794f, -0.0396527f, -0.123552f, -0.0316667f, 0.0721782f, 0.193995f, -0.172819f, -0.00884086f, 0.00071184f, 0.034702f, -0.079646f, 0.0319809f, 0.014572f, -0.146776f, 0.103996f, -0.0900971f, -0.00432615f, -0.0875869f, 0.0580233f, 0.0499485f, 0.0115632f, 0.0920713f, -0.253029f, -0.073804f, 0.0191219f, 0.115644f, -0.0262321f, 0.125228f, 0.119069f, -0.0416117f, 0.112846f, 0.0186814f, 0.057643f, -0.1267f, 0.112657f, -0.130653f, -0.0332188f, -0.00971139f, -0.0288851f, 0.00530016f, -0.0770726f, 0.0308236f, 0.152211f, 0.205246f, -0.15175f, -0.0237191f, 0.140193f, 0.0602157f, -0.0681608f, 0.167828f, -0.103418f, -0.00313529f, 0.0805326f, 0.0153701f, -0.127009f, -0.0992912f, -0.00405336f, -0.0567045f, -0.0907824f, -0.138152f, -0.084868f, -0.0421332f, -0.0923625f, -0.0868678f, -0.00308738f, 0.142039f, -0.116481f, -0.0588389f, -0.0368858f, -0.132763f, -0.0798864f, 0.233812f, 0.0197961f, 0.0594543f, -0.0704488f, 0.207308f, 0.0389142f, 0.0408485f, -0.0513021f, 0.135017f, -0.0466275f, -0.121124f, -0.172166f, -0.111631f, -0.17151f, -0.14869f, -0.19441f, -0.0783172f, 0.167201f, 0.045031f, 0.0158036f, -0.0738021f, 0.195689f, 0.100256f, 0.108805f, -0.147546f, -0.00689378f, 0.0825651f, 0.044724f, 0.174663f, -0.0269243f, -0.0660156f, -0.0316034f, 0.0263115f, 0.118508f, 0.0247801f, 0.195802f, -0.011539f, 0.103399f, 0.0902996f, -0.027115f, -0.114181f, -0.0272986f, -0.0508258f, 0.0707745f, 0.0176115f, 0.197611f, -0.0847183f, -0.079433f, -0.0941024f, 0.122215f, 0.159813f, 0.00224541f, 0.0752777f, -0.0807937f, -0.0215547f, 0.049614f, -0.0299748f, 0.0668405f, 0.150666f, -0.193477f, 0.133982f, -0.0536576f, -0.0959075f, -0.00845377f, -0.0302143f, 0.0963603f, -0.0610097f, 0.153548f, 0.0928225f, -0.0605724f, 0.11314f, -0.100111f, 0.0728739f, 0.0438253f, -0.0422136f, 0.115475f, 0.0537363f, -0.218353f, 0.0312287f, 0.0784669f, -0.0941489f, 0.0908202f, -0.107462f, -0.124858f, 0.0549766f, -0.0189873f, -0.0814337f, -0.0981048f, -0.171846f, 0.115383f, -0.0138674f, 0.168035f, -0.0127873f, -0.0483811f, 0.100395f, 0.158857f, 0.113555f, -0.0603702f, -0.136082f, 0.101288f, -0.165611f, -0.0461839f, 0.0832798f, -0.0898024f, 0.00117834f, 0.024335f, 0.00768199f, -0.0335348f, -0.244199f, -0.100981f, -0.0912035f, 0.0285528f, -0.085589f, -0.0264518f, 0.157738f, 0.0126011f, 0.0283554f, 0.0716149f, -0.192314f, -0.188575f, 0.0885776f, -0.219468f, -0.00649561f, -0.0404886f, 0.0536092f, -0.0728682f, -0.0801187f, -0.115136f, -0.0169447f, -0.0621869f, -0.00253358f, -0.194922f, 0.0650795f, -0.147081f, 0.106899f, 0.0416154f, 0.0661798f, -0.0511584f, -0.0401719f, 0.158056f, 0.0794211f, 0.196088f, 0.0738454f, -0.0807082f, -0.0679978f, -0.0199066f, -0.057314f, 0.126119f, -0.0773528f, -0.0929489f, -0.0557792f, -0.0948481f, 0.0927889f, 0.095676f, 0.0448728f, -0.123779f, -0.126411f, -0.203623f, 0.0197818f, -0.112981f, 0.126492f, -0.0399179f, 0.139645f, 0.151639f, -0.053652f, 0.00745997f, -0.121566f, -0.0108084f, 0.0984805f, 0.105269f, 0.0970102f, 0.0223915f, -0.0946239f, 0.136997f, -0.0618957f, 0.163429f, -0.12294f, -0.10752f, 0.05393f, 0.0429681f, 0.0248947f, -0.151776f, 0.0904625f, 0.0340953f, -0.0168283f, 0.0664399f, 0.148575f, -0.112693f, -0.136092f, -0.168932f, 0.11079f, -0.0654868f, 0.0222653f, -0.0929531f, -0.00642916f, 0.0363865f, -0.00252949f, -0.110159f, 0.0429899f, 0.0816877f, 0.00595826f, -0.0695087f, 0.109933f, 0.124092f, 0.00233877f, -0.0343834f, -0.0457874f, 0.0655519f, 0.0375205f, -0.0424375f, 0.0439316f, -0.0767095f, -0.129787f, 0.0776302f, -0.0934061f, 0.00459391f, -0.112834f, -0.0209174f, 0.0128172f, -0.100906f, 0.0207849f, 0.0590209f, -0.112027f, 0.0445397f, -0.155974f, -0.223432f, 0.00329604f, -0.02523f, 0.0973986f, -0.189177f, 0.00785072f, -0.226463f, 0.00628682f, 0.0623181f, 0.0425925f, 0.0022449f, -0.106535f, 0.131213f, 0.0179455f, -0.0299743f, -0.0358055f, -0.0903455f, -0.0130382f, -0.0283073f, -0.0415201f, 0.145831f, 0.0656381f, 0.0126287f, -0.11365f, -0.0833577f, -0.0693395f, -0.0596276f, 0.0851825f, 0.120355f, -0.0765089f, -0.165873f, -0.0352456f, 0.0276292f, 0.0231031f, 0.1192f, 0.0478216f, 0.0714156f, 0.0737117f, -0.0379559f, 0.0821845f, 0.040481f, 0.166024f, 0.0516598f, 0.143496f, 0.077988f, -0.19684f, -0.0364208f, 0.0160625f, -0.0093772f, -0.101219f, 0.0539716f, -0.192752f, -0.0732285f, 0.083545f, 0.199723f, -0.156531f, 0.081217f, 0.102724f, 0.0333628f, 0.0484528f, 0.124379f, -0.0268091f, -0.0797741f, 0.0900104f, 0.157518f, -0.0502118f, 0.0430714f, 0.0101741f, 0.0181828f, -0.178071f, 0.11468f, -0.00174234f, 0.182754f, -0.0874065f, -0.0869481f, -0.0240609f, -0.101349f, -0.0891425f, 0.113776f, 0.0205262f, -0.0271332f, 0.0381655f, -0.104666f, 0.0936021f, -0.108096f, 0.0239509f, 0.0711031f, 0.046246f, -0.114103f, 0.0202978f, -0.153255f, -0.0950748f, -0.0489501f, 0.0386252f, -0.0887638f, -0.127937f, 0.171757f, 0.0977724f, -0.0432422f, -0.0180082f, -0.183687f, 0.0921103f, -0.012906f, -0.111486f, -0.0777264f, -0.0566801f, 0.0542197f, 0.0159838f, -0.133208f, -0.0466491f, 0.193042f, 0.113355f, -0.0190817f, -0.162463f, -0.0658669f, -0.00435928f, -0.119677f, 0.0809204f, -0.0183341f, -0.106325f, 0.00645007f, -0.0936112f, 0.0127545f, -0.0761682f, -0.0790592f, -0.139384f, 0.147755f, -0.0743301f, -0.145757f, -0.0816521f, 0.0286602f, -0.112438f, 0.0374499f, 0.03205f, -0.0516197f, 0.165841f, 0.216239f, -0.0251907f, 0.105712f, 0.105418f, 0.105546f, -0.0252621f, -0.154025f, -0.0826762f, 0.197761f, -0.0201368f, -0.0880022f, 0.0247583f, 0.195024f, -0.178241f, -0.0796177f, -0.021619f, -0.0111818f, 0.0580977f, -0.00427269f, -0.139916f, -0.0210155f, -0.233038f, -0.102378f, 0.0792308f, -0.0253546f, -0.103871f, -0.113288f, 0.0145004f, -0.00844569f, 0.180314f, -0.051624f, -0.182609f, 0.0711584f, -0.0362335f, -0.0793791f, 0.11287f, 0.253921f, 0.115175f, 0.0989284f, -0.0455289f, -0.16297f, -0.0222473f, 0.150509f, 0.0574633f, -0.125032f, 0.0867708f, -0.0197145f, -0.0338784f, -0.0275854f, -0.0640593f, -0.0233426f, -0.196921f, -0.0549257f, 0.106411f, -0.10997f, -0.128368f, -0.0899704f, -0.0236132f, 0.0412179f, -0.0423911f, 0.0730842f, 0.0184934f, -0.0512153f, 0.160053f, -0.00140865f, 0.170993f, 0.0272787f, 0.0953757f, 0.145671f, 0.0809085f, -0.00921257f, -0.102815f, -0.168179f, -0.181416f, 0.142897f, 0.123342f, -0.0956785f, -0.00135106f, 0.0321522f, 0.0231519f, -0.0456571f, 0.0641667f, -0.126645f, 0.0214605f, -0.167125f, 0.00961276f, -0.0946061f, 0.0413725f, 0.0758473f, -0.104254f, 0.00129279f, -0.120634f, -0.0257437f, -0.0378895f, -0.0433345f, 0.0990444f, 0.100358f, -0.0460429f, 0.181143f, -0.0767015f, 0.0257821f, -0.153381f, -0.0285219f, 0.0993891f, -0.0965088f, -0.0521447f, -0.100074f, 0.0302205f, -0.0464957f, 0.0128979f, 0.0819629f, -0.0172986f, 0.0892266f, -0.105306f, -0.0264422f, 0.0940561f, -0.0436066f, 0.0588496f, 0.0616906f, -0.20454f, 0.129629f, -0.0343862f, -0.0486988f, -0.00950867f, -0.0970189f, 0.0734344f, 0.0172311f, -0.0079978f, 0.0231152f, 0.0882477f, 0.00419212f, 0.0593727f, 0.0860272f, 0.00158449f, 0.119093f, -0.141254f, -0.0339281f, 0.0635905f, 0.0304301f, -0.073907f, -0.0217398f, -0.0368793f, -0.00978566f, 0.0200579f, -0.0485012f, 0.0803853f, -0.0926462f, -0.00383195f, -0.0200995f, -0.0497446f, -0.158395f, -0.053596f, 0.0258597f, 0.0698221f, 0.134352f, -0.00950657f, -0.113511f, -0.0507339f, 0.0718907f, -0.123724f, 0.177468f, -0.0476223f, 0.159129f, -0.0328504f, 0.0337059f, -0.0748036f, 0.028297f, -0.0294387f, -0.0272241f, 0.0545208f, -0.000894627f, -0.04811f, -0.119027f, 0.0622674f, -0.0124839f, 0.0135591f, 0.0269936f, 0.0582902f, 0.0230685f, -0.0778377f, -0.0229216f, 0.0901792f, -0.0750819f, -0.0864765f, 0.115396f, 0.124312f, -0.0688237f, 0.188672f, -0.0296027f, -0.123988f, -0.0574215f, -0.154741f, 0.230076f, -0.0194514f, -0.142101f, 0.0897935f, 0.181229f, 0.0117945f, 0.00869593f, -0.0742453f, -0.137414f, -0.0266766f, -0.0811081f, 0.0587514f, 0.186256f, 0.0673959f, 0.113856f, -0.0536727f, -0.0295403f, 0.0984955f, -0.151967f, -0.163291f, 0.1012f, 0.00799107f, -0.153864f, -0.094436f, 0.00645116f, 0.0484034f, 0.0272064f, -0.0817631f, 0.0150767f, 0.16715f, 0.0554835f, -0.0766642f, 0.153021f, -0.0602723f, 0.0317147f, 0.123699f, 0.162043f, -0.0726938f, 0.0203909f, -0.0121705f, 0.0219506f, -0.20905f, -0.0403882f, 0.0666188f, -0.0719037f, 0.122484f, -0.165314f, -0.241918f, 0.166603f, -0.0466749f, 0.15343f, 0.000544488f, 0.0684014f, -0.115222f, 0.178269f, -0.218616f, -0.181851f, 0.0191879f, -0.0821512f, 0.0871939f, 0.0453965f, -0.0204705f, 0.0375267f, -0.019709f, 0.0705823f, -0.0790909f, -0.0364796f, -0.021672f, -0.137824f, 0.0482402f, 0.0788839f, -0.113514f, 0.00119256f, -0.0587062f, 0.072254f, 0.0345506f, -0.0278953f, -0.0117081f, 0.037426f, 0.0602262f, -0.0294544f, 0.0945152f, 0.0928985f, 0.0607159f, -0.0692903f, -0.166229f, -0.118881f, 0.0148591f, 0.111691f, 0.132331f, -0.125304f, 0.219785f, 0.00353606f, 0.0885793f, -0.0791742f, -0.0745515f, -0.0363507f, 0.0431918f, -0.0446518f, 0.125271f, -0.0356859f, 0.166996f, 0.0798731f, -0.0483231f, 0.0687396f, -0.139426f, 0.18343f, -0.0513678f, -0.195352f, 0.124713f, 0.0423737f, -0.105954f, -0.0205396f, 0.0906905f, 0.00439515f, -0.0389796f, -0.0116161f, 0.103549f, 0.0689247f, -0.153909f, -0.149049f, -0.182391f, 0.0397233f, -0.0380961f, -0.061562f, -0.108809f, -0.125017f, -0.100004f, -0.1178f, 0.18674f, 0.10583f, 0.152601f, -0.0723251f, 0.0902207f, -0.116422f, -0.18198f, 0.0642967f, 0.0569152f, 0.0128166f, -0.0225374f, -0.205983f, 0.0777891f, -0.0244288f, 0.0883246f, 0.0388341f, -0.0822432f, -0.0015655f, -0.115577f, -0.0334618f, 0.169985f, -0.049786f, 0.0750019f, 0.0102466f, 0.0578017f, 0.0203083f, -0.0954095f, -0.0640318f, -0.0862942f, -0.212954f, -0.0678555f, -0.13855f, 0.0025862f, -0.00759753f, 0.0438805f, 0.0662885f, -0.24708f, -0.0987368f, -0.00460757f, -0.00387528f, 0.0812757f, -0.172515f, -0.0759134f, 0.189225f, -0.00722128f, -0.00355442f, -0.132223f, 0.106188f, -0.140794f, 0.0302451f, -0.0156824f, 0.0106373f, 0.044098f, 0.0749258f, 0.0576784f, 0.0976289f, 0.0653037f, -0.00969952f, 0.165977f, 0.0215847f, 0.0569464f, -0.0173732f, 0.181587f, 0.213958f, -0.0911448f, 0.232265f, -0.0982352f, 0.0737011f, -0.223605f, -0.103117f, 0.0783114f, 0.171494f, 0.134162f, -0.048751f, -0.0526802f, 0.0567624f, 0.00051858f, -0.100579f, -0.122486f, -0.0374953f, -0.00971903f, -0.119787f, 0.0165459f, 0.0212396f, -0.00312267f, 0.0161791f, -0.0975883f, 0.0392334f, 0.0107855f, -0.0307906f, 0.111726f, -0.00511195f, -0.179334f, -0.139293f, -0.0752715f, -0.0865827f, 0.00565136f, -0.0167982f, 0.216692f, -0.130799f, 0.119934f, 0.0239713f, -0.0444475f, -0.144355f, -0.0738135f, 0.0779331f, -0.0377493f, -0.0129701f, 0.0926672f, 0.169665f, 0.048576f, -0.0190793f, 0.0884424f, 0.170459f, -0.0688626f, 0.0560437f, 0.0350661f, 0.027368f, -0.130257f, -0.239703f, 0.065199f, -0.0534508f, 0.0693818f, -0.0872978f, 0.106897f, -0.0138166f, -0.0924045f, 0.156161f, -0.0225254f, -0.182456f, -0.00713456f, 0.129846f, 0.0272454f, -0.0813081f, -0.0892846f, 0.0776995f, -0.0938724f, 0.100201f, -0.0357357f, -0.192754f, -0.1075f, 0.180607f, 0.144251f, 0.17765f, 0.0301141f, -0.0220112f, -0.031475f, -0.0487335f, -0.0538865f, 0.0354793f, 0.113076f, -0.121646f, -0.0105113f, -0.115585f, -0.0123104f, 0.157039f, 0.135387f, -0.0429749f, 0.118293f, -0.0886392f, 0.107296f, 0.0778041f, -0.0965131f, 0.0648416f, 0.0717369f, -0.0148479f, -0.0633449f, -0.0798356f, -0.145521f, -0.0196086f, -0.108632f, -0.138757f, 0.0514615f, 0.0135111f, -0.0338828f, 0.069231f, 0.081436f, -0.155342f, -0.0375983f, -0.0871952f, 0.0613279f, -0.0210429f, -0.0168697f, 0.0339381f, -0.0531356f, 0.0861724f, -0.0383895f, 0.0386911f, 0.190781f, -0.0613675f, 0.0703008f, 0.0507783f, 0.0354457f, 0.00442258f, 0.0564371f, 0.00662379f, -0.0537868f, -0.0860626f, -0.136407f, -0.0391354f, 0.163182f, 0.0715341f, 0.057663f, -0.0151298f, -0.00117289f, 0.0856287f, -0.0602792f, 0.0551066f, 0.0690896f, 0.0113579f, 0.0840562f, 0.0130289f, -0.177367f, -0.0940219f, 0.106863f, -0.00906635f, 0.0659209f, 0.114768f, -0.15783f, 0.0038282f, -0.0846973f, -0.0615734f, 0.155732f, -0.0345325f, 0.0558564f, -0.0975529f, -0.125187f, -0.177918f, 0.0548598f, -0.0666261f, -0.00383026f, -0.029881f, 0.00964734f, 0.234119f, 0.0128274f, -0.0476768f, 0.0596547f, -0.123132f, -0.129686f, 0.0135554f, 0.0200683f, 0.058592f, 0.0673418f, 0.0231115f, -0.059343f, 0.00812734f, 0.00302758f, 0.0280968f, 0.14018f, 0.0852735f, 0.166314f, -0.0888121f, -0.0326976f, 0.0645236f, 0.0378909f, 0.0606196f, -0.130296f, -0.0375593f, -0.0255581f, 0.0573035f, 0.0048587f, -0.017071f, -0.121159f, 0.0586372f, 0.0647034f, 0.0488337f, 0.00254725f, -0.0929665f, 0.0625782f, -0.0177028f, 0.127799f, -0.0725051f, 0.0503328f, 0.0210716f, 0.141594f, -0.0919259f, 0.0979176f, 0.00682336f, -0.101706f, -0.0702652f, -0.0570023f, -0.0191997f, 0.0774147f, -0.11846f, 0.0335772f, 0.0772825f, 0.229567f, 0.0722612f, -0.0821646f, -0.0211265f, -0.0135742f, 0.104015f, -0.0368515f, 0.0183089f, 0.106505f, -0.0761554f, -0.0204249f, 0.111415f, -0.000247064f, -0.0937655f, 0.0174049f, -0.0105244f, -0.0222311f, -0.0903063f, -0.0294531f, 0.0560974f, -0.063565f, -0.17336f, 0.24031f, -0.0699121f, -0.00492344f, 0.0604126f, 0.263178f, 0.0835736f, -0.0524759f, -0.0145863f, -0.00727703f, 0.140631f, 0.136637f, 0.0594484f, -0.0307426f, 0.144736f, 0.0998491f, -0.0164603f, -0.0672143f, -0.0806397f, 0.0994523f, 0.148907f, -0.00914114f, 0.115807f, 0.0587119f, -0.0606992f, -0.0681858f, 0.045509f, 0.109087f, 0.0706f, 0.30089f, -0.0285795f, 0.00229123f, -0.0498562f, -0.0416904f, 0.0313784f, 0.0142967f, -0.117793f, 0.163219f, 0.112571f, 0.0681651f, -0.00848032f, -0.0466695f, 0.04282f, -0.0534163f, 0.00641733f, -0.054543f, 0.0537059f, 0.0459512f, 0.189386f, 0.0910011f, -0.110649f, -0.129431f, -0.103091f, -0.129487f, -0.0492295f, -0.0242992f, 0.155782f, 0.0225564f, -0.0481629f, -0.097802f, 0.0743814f, 0.122142f, -0.145553f, 0.027296f, 0.0830138f, -0.095553f, 0.163431f, -0.0884007f, 0.0725788f, 0.0508042f, 0.0405204f, 0.0587963f, 0.0660626f, -0.209475f, -0.177643f, -0.176807f, -0.104148f, -0.0381402f, 0.200977f, -0.255032f, -0.0148809f, 0.0272985f, 0.00583045f, 0.0209647f, -0.155662f, 0.0269404f, 0.015187f, -0.0563499f, 0.179333f, 0.137119f, 0.169958f, -0.0835396f, 0.0555937f, -0.026225f, 0.0681462f, -0.04249f, -0.138277f, -0.143168f, -0.058186f, -0.02192f, 0.1745f, 0.105468f, 0.15012f, 0.236247f, -0.0657452f, 0.0841026f, -0.081559f, -0.127114f, -0.0586167f, -0.107292f, 0.170801f, -0.147941f, -0.017265f, 0.0184377f, 0.0938548f, -0.0352972f, 0.223741f, -0.00970407f, 0.123574f, -0.0507901f, 0.103113f, -0.0255257f, 0.122005f, 0.100857f, 0.0680905f, -0.106262f, -0.0298817f, -0.0995853f, -0.0928795f, 0.0304852f, 0.101889f, 0.0808255f, -0.154293f, -0.0193841f, 0.122798f, 0.0517486f, -0.136459f, -0.055709f, 0.126822f, -0.214379f, -0.0326285f, 0.186644f, 0.00306135f, 0.0463691f, 0.0745183f, -0.185026f, -0.0213693f, 0.000402086f, -0.0742147f, 0.0884648f, -0.0215564f, 0.175005f, -0.0640305f, -0.058468f, -0.0695142f, -0.00464693f, -0.169903f, 0.110499f, 0.0669211f, 0.0901997f, 0.159028f, -0.133794f, 0.00823836f, 0.0961854f, 0.0820136f, -0.151011f, 0.166869f, -0.116197f, 0.0901284f, -0.0401015f, 0.115755f, -0.0483494f, -0.0704074f, -0.151927f, -0.0865439f, 0.0679713f, 0.0980806f, 0.178881f, -0.170266f, 0.20639f, -0.106513f, -0.0375237f, 0.0808683f, -0.161557f, -0.19168f, 0.113151f, -0.0817364f, -0.0741104f, 0.0556755f, 0.136588f, 0.0441646f, -0.162686f, -0.141824f, -0.0269119f, 0.130023f, -0.0673262f, -0.0494211f, 0.04534f, 0.0578104f, -0.268538f, 0.158802f, -0.0461507f, 0.143723f, 0.194313f, 0.0367414f, 0.0706872f, -0.0509572f, -0.042591f, 0.0686488f, -0.0741568f, -0.153426f, -0.035189f, 0.0596248f, 0.20235f, 0.131879f, -0.0255501f, -0.0828072f, -0.137619f, -0.148258f, 0.141625f, 0.212812f, 0.0498933f, -0.0102075f, -0.11312f, 0.071478f, -0.096508f, -0.285642f, 0.0124885f, 0.197949f, 0.00870221f, 0.0305585f, -0.218345f, 0.0278618f, -0.0693793f, 0.0176367f, 0.0448073f, -0.00888973f, 0.019124f, 0.104003f, 0.21942f, -0.158651f, -0.0346317f, 0.00682599f, 0.113183f, -0.0808809f, -0.131418f, -0.179487f, -0.042417f, 0.106791f, 0.0202281f, -0.00214235f, -0.146161f, 0.144369f, -0.143583f, 0.0568593f, 0.123297f, 0.130466f, 0.128153f, -0.121126f, -0.122848f, 0.148541f, 0.0320071f, -0.00773202f, 0.0527697f, -0.155745f, -0.20215f, 0.0483858f, -0.0560168f, -0.103918f, -0.0907796f, -0.0040545f, 0.0586311f, -0.0769759f, 0.0398418f, -0.169367f, -0.0223943f, 0.140939f, -0.0287047f, -0.0368646f, -0.103421f, 0.0792068f, 0.104133f, -0.107943f, -0.0585193f, 0.266719f, -0.0479195f, -0.110967f, 0.099279f, -0.10699f, -0.137041f, -0.0854954f, -0.102325f, -0.0533847f, 4.52492e-05f, -0.10019f, -0.10938f, -0.0410206f, 0.0578598f, 0.117268f, -0.157002f, 0.0891439f, 0.0244847f, 0.0836714f, -0.123415f, 0.0194692f, -0.0392925f, -0.091674f, 0.105492f, -0.131558f, -0.14338f, 0.152018f, -0.124221f, 0.0287119f, 0.031421f, -0.0315557f, -0.0256364f, 0.154561f, 0.167948f, 0.221273f, -0.12875f, 0.00624719f, 0.127137f, -0.109338f, -0.0296725f, -0.0941987f, -0.0212873f, 0.142298f, 0.131187f, -0.0640169f, -0.154504f, -0.154089f, -0.0842979f, 0.0368768f, 0.129071f, 0.163281f, -0.182607f, -0.0998206f, 0.0947439f, 0.130466f, 0.257617f, -0.205791f, -0.0546352f, -0.222006f, -0.181161f, 0.0277116f, -0.189592f, -0.17119f, 0.118683f, -0.130846f, 0.264162f, 0.0301497f, -0.128812f, -0.178503f, -0.0319114f, 0.051979f, 0.107727f, -0.157075f, 0.0993192f, -0.0266324f, 0.235707f, -0.138925f, 0.0724053f, 0.00178482f, -0.0492914f, 0.00248771f, -0.270692f, -0.249893f, -0.100421f, 0.0408405f, 0.0947362f, -0.0775486f, 0.0280079f, -0.141657f, 0.210358f, -0.144764f, -0.00887079f, 0.0226453f, 0.167954f, 0.153054f, -0.167016f, -0.239815f, 0.206856f, -0.186764f, -0.0595764f, 0.203791f, -0.226567f, 0.196539f, 0.164897f, -0.102978f, -0.0540144f, 0.201267f, 0.198924f, 0.025719f, -0.272195f, 0.238797f, -0.162494f, -0.120981f, 0.294805f, -0.248381f, 0.0786287f, 0.231424f, 0.122362f, 0.146525f, -0.00957507f, -0.0108374f, 0.0214763f, 0.0840197f, -0.00812391f, 0.223245f, -0.0837671f, 0.126736f, -0.202343f, -0.419678f, 0.244224f, -0.270717f, 0.180737f, 0.20843f, -0.00113614f, -0.0608381f, 0.095041f, -0.12176f, -0.0834056f, 0.165319f, 0.246125f, 0.144277f, -0.0866778f, -0.201183f, -0.096362f, 0.0478684f, -0.206191f, 0.215512f, 0.00472346f, 0.26902f, -0.0232838f, 0.128158f, 0.309831f, -0.163435f, 0.213022f, -0.0448196f, -0.28773f, -0.207018f, 0.149081f, 0.0670291f, 0.0382222f, -0.165506f, 0.145031f, 0.115876f, 0.0144887f, 0.0421719f, -0.189286f, -0.0194794f, 0.284086f, -0.229323f, 0.0427244f, -0.184823f, 0.0221083f, -0.107365f, 0.0511143f, 0.1878f, 0.166996f, 0.118625f, -0.127787f, 0.176206f, -0.313256f, -0.0743033f, -0.167927f, -0.150502f, 0.215086f, -0.033137f, -0.0384111f, -0.243324f, -0.227633f, -0.019743f, 0.0528482f, -0.260122f, 0.185512f, 0.202135f, -0.147122f, -0.00962407f, 0.186007f, -0.0619001f, 0.318861f, 0.181607f, -0.00557867f, 0.208792f, -0.00599083f, 0.0605535f, 0.0751673f, 0.0136943f, -0.0500316f, 0.0603418f, 0.0716738f, -0.0105662f, 0.119636f, -0.217883f, -0.261291f, 0.243093f, 0.206024f, -0.0453497f, 0.0270762f, 0.0664331f, 0.130283f, -0.039034f, 0.208779f, 0.0156781f, -0.10724f, -0.0529714f, 0.157984f, -0.206657f, 0.126834f, 0.0248988f, -0.164977f, 0.164943f, 0.0693689f, 0.0680979f, -0.000577866f, 0.0644895f, -0.125959f, 0.0140196f, -0.0680089f, -0.119972f, 0.252666f, 0.24668f, -0.0955058f, -0.158634f, -0.0667894f, -0.00757463f, -0.0254228f, 0.0938635f, 0.0658443f, -0.251478f, -0.240883f, -0.183171f, -0.0716403f, 0.18175f, 0.147944f, 0.0085098f, 0.0292816f, -0.0059893f, 0.0896728f, -0.0439971f, -0.10506f, -0.143347f, 0.0394343f, -0.0404101f, 0.125552f, 0.0157307f, -0.159346f, -0.0732656f, -0.0790286f, 0.170741f, 0.162735f, -0.0199294f, 0.194511f, -0.0426977f, 0.0407494f, -0.270392f, -0.163318f, 0.101327f, 0.209055f, -0.210897f, -0.0114622f, -0.0272092f, 0.0958146f, 0.181433f, -0.0334242f, 0.0857667f, 0.194011f, -0.0622917f, 0.099011f, -0.179632f, -0.0266006f, 0.19055f, 0.00685669f, 0.0104893f, -0.211475f, 0.163431f, 0.231886f, -0.0994643f, 0.0656087f, 0.0590509f, 0.19881f, 0.0333796f, 0.25371f, 0.0543543f, -0.054085f, -0.268465f, 0.164212f, -0.075797f, -0.260143f, -0.181509f, -0.199634f, 0.289371f, -0.172428f, -0.107115f, 0.00597171f, 0.132179f, 0.0226473f, -0.0601488f, 0.0197483f, 0.0912737f, -0.266252f, -0.316819f, -0.282587f, -0.263907f, -0.0550039f, -0.236038f, 0.0491984f, -0.208604f, -0.355967f, -0.116167f, -0.0766504f, 0.13565f, -0.0990125f, -0.011395f, -0.186432f, 0.0166054f, 0.0399813f, -0.0431159f, 0.151412f, -0.232468f, 0.0249069f, -0.170973f, -0.0552849f, 0.100399f, 0.0390164f, 0.101678f, -0.106278f, 0.0520674f, 0.13755f, -0.116462f, -0.0716078f, 0.220166f, 0.140111f, -0.193454f, -0.264462f, 0.0863058f, -0.180341f, 0.111355f, -0.146918f, 0.0491425f, -0.158269f, -0.141195f, -0.276173f, -0.344437f, -0.221748f, -0.0893987f, 0.236039f, -0.290022f, 0.104683f, 0.118992f, 0.130972f, 0.107458f, 0.0194597f, 0.0709246f, -0.275993f, -0.0870792f, 0.0207811f, -0.121029f, 0.133107f, -0.126937f, 0.145136f, -0.068639f, -0.00383167f, -0.0302277f, 0.257655f, -0.127468f, 0.379884f, -0.347158f, 0.138216f, 0.0912934f, 0.0371331f, -0.110262f, -0.0873244f, -0.00142462f, -0.180952f, 0.286526f, 0.133463f, -0.0813866f, 0.0315898f, -0.0140003f, 0.0616055f, 0.00770519f, 0.0972318f, 0.209779f, -0.201404f, -0.0780698f, 0.00423176f, 0.0574046f, -0.213148f, -0.279498f, 0.215635f, 0.0351631f, -0.0402593f, -9.93469e-05f, -0.137377f, -0.147024f, 0.348192f, -0.0957828f, 0.151371f, -0.149804f, 0.115752f, 0.00568434f, -0.0195344f, 0.138012f, 0.0849949f, 0.0781397f, 0.106436f, 0.00674388f, 0.14587f, -0.0440238f, -0.0219425f, -0.0683658f, 0.187275f, 0.1056f, 0.014885f, -0.108557f, 0.0242487f, 0.312868f, 0.104754f, -0.106732f, 0.00151714f, -0.0202945f, -0.173771f, 0.0752711f, 0.0709446f, -0.0666137f, 0.15022f, -0.219724f, -0.0527723f, -0.135492f, 0.108076f, 0.277489f, 0.0121662f, -0.0529351f, -0.0972275f, -0.0235178f, -0.320731f, 0.0739503f, 0.135253f, -0.065536f, -0.228766f, 0.00661493f, -0.261519f, -0.256439f, 0.0150517f, 0.0548501f, 0.114933f, -0.338851f, -0.20491f, -0.17728f, 0.193471f, 0.0106561f, 0.105824f, 0.172911f, -0.0585774f, 0.317777f, -0.135165f, -0.0121468f, -0.206943f, -0.0634255f, 0.169659f, 0.332109f, -0.0382339f, 0.222535f, -0.0916581f, -0.0171982f, -0.0922095f, 0.0518816f, -0.144555f, 0.100764f, 0.067505f, -0.181267f, 0.0603574f, 0.0450588f, -0.035127f, -0.0760098f, -0.160343f, 0.0833013f, 0.112649f, 0.165412f, 0.0376695f, -0.0688402f, -0.0724204f, 0.142017f, 0.23254f, 0.077658f, 0.161748f, -0.252544f, -0.0956063f, -0.120519f, -0.184815f, -0.219752f, 0.176759f, -0.172667f, -0.0340058f, 0.307182f, 0.080903f, 0.357904f, 0.217073f, -0.115141f, 0.140028f, 0.0703809f, 0.20053f, -0.0352608f, -0.187869f, -0.232124f, -0.127757f, -0.00801402f, 0.0401369f, 0.272341f, -0.0132793f, -0.141226f, 0.307322f, -0.102994f, -0.100888f, 0.240592f, 0.0924671f, -0.0338566f, 0.258223f, 0.306338f, 0.0028236f, -0.271381f, -0.0849889f, 0.117171f, -0.116391f, 0.104047f, -0.149718f, 0.227071f, 0.0280633f, 0.0791537f, -0.0625458f, -0.273817f, -0.19011f, -0.377443f, -0.113827f, -0.216395f, 0.0973137f, -0.0994176f, 0.157925f, 0.130597f, 0.139848f, -0.104125f, -0.120589f, 0.124091f, -0.154568f, 0.106198f, -0.255114f, -0.0327439f, -0.126576f, -0.0506216f, 0.0876594f, -0.0916818f, 0.0606703f, -0.039323f, 0.146479f, 0.225678f, 0.00778399f, -0.0635495f, -0.0280117f, -0.0943278f, 0.00747201f, 0.140236f, 0.0996549f, 0.0163827f, 0.136582f, 0.215056f, 0.0501132f, 0.0400017f, 0.0664646f, 0.269038f, -0.127142f, -0.089996f, 0.0741318f, 0.13822f, 0.0977238f, 0.0848638f, 0.143769f, -0.124548f, 0.0135743f, -0.0201759f, -0.0979981f, 0.0204203f, -0.121843f, -0.104387f, 0.0242216f, 0.119411f, 0.086854f, -0.229739f, -0.157837f, -0.231333f, -0.0754474f, -0.0816102f, 0.0827316f, 0.0320728f, -0.0266286f, 0.109796f, -0.021232f, -0.0192174f, 0.0444736f, 0.16415f, -0.278085f, 0.11229f, -0.220601f, -0.0273065f, -0.0457099f, -0.117159f, 0.0759981f, -0.011437f, -0.159728f, 0.145674f, 0.0480356f, -0.0745211f, -0.146766f, -0.165845f, -0.102863f, 0.054116f, 0.14614f, 0.199387f, -0.160953f, 0.279744f, 0.177232f, -0.11922f, -0.214194f, 0.0436227f, 0.105102f, 0.0287257f, 0.127396f, 0.070098f, -0.0765201f, 0.0707063f, -0.136002f, -0.11475f, 0.0833197f, -0.109756f, -0.0469923f, 0.127654f, 0.123122f, -0.0151726f, 0.0499736f, -0.0923502f, 0.000225504f, 0.00975055f, -0.00141732f, 0.260212f, -0.148825f, 0.262605f, -0.0266427f, 0.0578563f, 0.0221615f, 0.141411f, -0.051287f, 0.0945838f, 0.0302578f, -0.0554578f, -0.0470252f, -0.14144f, 0.0440091f, -0.194146f, 0.0568742f, 0.0351577f, -0.186665f, -0.0501357f, -0.102145f, 0.120234f, -0.162857f, 0.152811f, 0.0191526f, -0.136173f, 0.083884f, -0.127539f, 0.00415554f, -0.212633f, -0.0827287f, 0.0179065f, -0.0732789f, 0.192005f, -0.220463f, -0.22892f, 0.00701152f, 0.0188667f, -0.0782474f, 0.0901828f, -0.180985f, 0.0703723f, -0.167854f, -0.180577f, 0.191696f, 0.0110882f, 0.190015f, -0.158031f, 0.0692944f, 0.0827444f, -0.0302294f, -0.0356067f, -0.0630225f, -0.224102f, -0.0625797f, -0.220043f, -0.0737308f, 0.181227f, -0.250498f, 0.0666309f, -0.213892f, 0.046777f, 0.215722f, -0.0332943f, -0.0416898f, -0.234888f, -0.0789341f, 0.218631f, -0.0244199f, -0.0675371f, 0.00516798f, 0.0130736f, -0.0741383f, -0.0687771f, -0.0950031f, 0.167373f, -0.0252008f, -0.238825f, 0.0699703f, 0.0697733f, -0.206112f, 0.238654f, -0.0218558f, 0.112215f, -0.11416f, -0.264863f, 0.0146224f, -0.0790452f, 0.190797f, -0.102491f, 0.140154f, -0.037254f, 0.103645f, 0.129444f, 0.192658f, -0.169274f, 0.189205f, 0.00349468f, 0.0230314f, -0.303003f, -0.0517404f, -0.152624f, -0.0350263f, -0.153426f, 0.125629f, 0.186215f, -0.045705f, 0.0530236f, 0.175772f, 0.0238149f, 0.0344057f, 0.215403f, -0.00443261f, -0.0167697f, -0.0881414f, -0.0368616f, -0.109086f, 0.0336895f, -0.169951f, -0.21147f, -0.100074f, -0.0904761f, 0.166576f, -0.122928f, -0.116955f, -0.203773f, 0.0200124f, -0.161315f, 0.145237f, 0.0190351f, -0.108087f, -0.0672203f, -0.122393f, 0.204168f, -0.0103578f, -0.0331473f, 0.10746f, -0.174334f, 0.0568087f, 0.107842f, 0.171954f, -0.0724443f, -0.0879619f, 0.102391f, 0.182751f, 0.0631488f, -0.0442274f, -0.0207138f, 0.240544f, 0.296422f, -0.126454f, -0.160095f, -0.0376545f, 0.186309f, 0.00429732f, 0.116319f, 0.044958f, 0.00345744f, -0.193602f, 0.0776281f, 0.277679f, -0.0396698f, 0.024473f, -0.159932f, -0.131835f, -0.0199333f, 0.060485f, 0.0401402f, 0.0502228f, -0.0706484f, -0.24854f, 0.208184f, -0.00575715f, 0.36042f, 0.201431f, -0.138303f, -0.0883859f, -0.0981526f, -0.0210295f, -0.0185036f, 0.179499f, 0.153317f, 0.295473f, 0.120477f, -0.0597334f, 0.0527157f, -0.0834125f, -0.181775f, -0.0651672f, -0.150188f, -0.0545477f, 0.141927f, 0.149477f, 0.0178877f, -0.0598667f, -0.109655f, 0.0790666f, -0.181142f, 0.22253f, -0.011451f, 0.222319f, 0.146331f, -0.137626f, -0.106934f, 0.0119946f, 0.0842871f, 0.0028269f, -0.0251086f, 0.276078f, 0.0610314f, -0.068329f, 0.167846f, -0.0486106f, -0.0198145f, 0.0749319f, 0.0559776f, 0.101692f, -0.000184024f, -0.295777f, -0.0183958f, -0.229275f, 0.186114f, 0.0672606f, 0.229157f, -0.0634435f, 0.0568098f, -0.129895f, 0.0793106f, 0.211379f, 0.0762152f, 0.0507264f, -0.0400885f, -0.0219115f, 0.297763f, 0.0788073f, -0.134443f, -0.254645f, -0.179869f, -0.0102265f, -0.0955762f, 0.022233f, 0.03364f, 0.101327f, 0.271166f, -0.221901f, 0.105278f, 0.0517109f, -0.204154f, -0.0405284f, 0.0205299f, -0.0667587f, 0.209578f, 0.142451f, 0.0252231f, -0.152754f, -0.0496856f, 0.0333523f, -0.112965f, -0.139403f, -0.243002f, -0.024354f, -0.11036f, 0.267554f, 0.161832f, -0.0235225f, -0.1174f, 0.247539f, 0.165818f, 0.00909497f, 0.0816861f, 0.221022f, -0.0193498f, 0.0260801f, -0.153992f, 0.102833f, -0.0555248f, 0.159909f, -0.185461f, -0.330148f, 0.174019f, 0.219798f, -0.0770732f, -0.0209616f, -0.191722f, -0.198983f, 0.170183f, 0.032562f, 0.0777792f, -0.137327f, 0.143321f, -0.0353153f, -0.235999f, 0.0594908f, 0.202592f, -0.142846f, 0.101175f, -0.132156f, -0.0209049f, 0.0455069f, 0.004947f, -0.0217855f, -0.120429f, -0.0367002f, 0.0224933f, -0.112515f, 0.020752f, 0.184652f, -0.121429f, 0.144903f, -0.112483f, -0.0132406f, -0.0858813f, 0.100849f, -0.0778892f, 0.127872f, 0.108702f, 0.0172622f, -0.196494f, 0.130506f, -0.0894228f, -0.238899f, 0.166578f, 0.0312081f, -0.0140952f, 0.116916f, 0.0950232f, 0.00211056f, 0.0442165f, -0.0597044f, -0.0435594f, 0.0713578f, -0.258893f, -0.106788f, -0.0119395f, 0.207025f, -0.0567752f, -0.203232f, -0.104378f, 0.0895696f, -0.106181f, -0.0840122f, 0.0396401f, 0.0821996f, 0.0553167f, -0.148374f, 0.243484f, 0.143892f, 0.0516132f, -0.0876349f, -0.143276f, -0.121386f, 0.199177f, 0.0247564f, 0.0752482f, 0.159531f, 0.154364f, -0.0308417f, -0.198033f, 0.0952185f, 0.00233406f, 0.0203441f, 0.371584f, 0.0345262f, -0.101183f, 0.0397543f, -0.0960824f, -0.00850578f, -0.19322f, -0.00737611f, -0.0275159f, -0.0165842f, 0.118132f, 0.122547f, -0.238861f, 0.0776617f, 0.132379f, -0.0216577f, 0.017177f, 0.0763345f, -0.0226683f, -0.00710775f, 0.131759f, -0.101734f, 0.216052f, -0.135504f, 0.0676757f, -0.108874f, 0.150871f, -0.061794f, 0.0176884f, 0.0652949f, -0.137959f, 0.0363262f, -0.289094f, 0.0167682f, -0.229077f, 0.156335f, 0.0772177f, -0.079883f, -0.0419373f, 0.0863525f, 0.0248776f, -0.178254f, 0.0379421f, 0.133932f, -0.14642f, 0.0785913f, -0.0496133f, 0.198256f, 0.0112049f, -0.0590842f, 0.218723f, -0.147393f, 0.181167f, 0.0947072f, -0.214306f, -0.246591f, 0.12883f, -0.00173171f, 0.182896f, -0.107363f, 0.123074f, -0.14054f, 0.209795f, 0.116346f, -0.0617875f, 0.110168f, -0.0232458f, -0.172889f, 0.0595888f, -0.192809f, 0.00841598f, -0.199597f, -0.0586655f, -0.00795562f, -0.0956537f, 0.00128222f, 0.0421622f, -0.152675f, 0.181584f, -0.0704876f, 0.0858321f, -0.0567543f, 0.11328f, 0.152461f, -0.208114f, -0.167482f, -0.0419129f, 0.0908803f, -0.140871f, 0.0105671f, 0.160085f, 0.207388f, 0.199671f, -0.0255306f, -0.0943408f, 0.111921f, -0.180809f, 0.0473658f, 0.0100724f, -0.216183f, 0.0654583f, -0.0243085f, 0.0737685f, -0.0502344f, -0.205512f, -0.0139682f, 0.109137f, 0.105571f, 0.0552158f, -0.125576f, 0.0620585f, 0.068879f, -0.0253168f, 0.133263f, 0.0400752f, -0.0424402f, -0.0872983f, -0.107545f, -0.0277247f, -0.0578045f, 0.0362632f, 0.140196f, -0.0261901f, 0.187779f, -0.0635921f, -0.0523621f, 0.229485f, -0.0190439f, -0.0718016f, 0.043292f, 0.0299828f, 0.123821f, -0.158516f, 0.153005f, -0.214138f, 0.131521f, 0.0891609f, 0.193635f, -0.0886758f, -0.0056219f, -0.0073096f, 0.140728f, -0.0284736f, -0.186328f, 0.00946189f, -0.0481822f, 0.145028f, -0.0471732f, 0.142449f, 0.0480657f, -0.0927644f, 0.017843f, 0.0131457f, -0.03732f, -0.0260419f, 0.0918974f, -0.0431395f, -0.118994f, 0.231523f, -0.318429f, 0.0397127f, 0.0492337f, 0.0726929f, 0.10699f, -0.35274f, 0.164078f, 0.149988f, 0.131295f, -0.00388833f, -0.0601893f, -0.0853431f, 0.267183f, -0.0624809f, 0.0213025f, -0.109965f, -0.00912624f, 0.0275681f, -0.256799f, 0.0402505f, 0.199534f, -0.00599506f, 0.14945f, -0.0331971f, 0.0865041f, -0.0730954f, 0.0564954f, 0.270481f, -0.149565f, -0.0988167f, 0.00997729f, 0.0891173f, -0.0959777f, 0.0471534f, 0.0116906f, -0.02657f, 0.0191297f, 0.0985174f, -0.0396014f, 0.014939f, -0.142408f, -0.188645f, 0.145756f, 0.12443f, -0.0477664f, 0.106668f, 0.118081f, 0.0601337f, 0.0923126f, -0.0981329f, 0.0247064f, 0.189113f, 0.184961f, 0.0779132f, -0.0683965f, 0.0574355f, 0.010815f, 0.128234f, -0.0222933f, -0.104797f, -0.273139f, -0.0875092f, -0.0713455f, -0.0670424f, -0.0397861f, -0.0757338f, -0.0321257f, 0.0375769f, 0.187379f, -0.106943f, 0.127953f, 0.270204f, -0.0822088f, -0.0242656f, 0.0990913f, 0.227184f, 0.0255154f, 0.156065f, -0.0162164f, -0.175027f, -0.0536166f, 0.350152f, -0.0863701f, 0.108102f, 0.0131009f, 0.0558025f, -0.22567f, 0.2056f, -0.295193f, -0.14584f, 0.0661884f, -0.0893963f, 0.11974f, -0.0382503f, 0.0285192f, -0.100242f, 0.113722f, 0.0184857f, -0.00448416f, -0.0413476f, -0.0891821f, -0.177578f, 0.0180004f, -0.165026f, -0.0337959f, -0.236752f, 0.180452f, -0.085643f, 0.108829f, 0.0491221f, 0.117443f, -0.234701f, 0.138727f, -0.025024f, 0.0401201f, 0.0987451f, -0.066132f, -0.16346f, -0.100028f, -0.186702f, -0.110143f, 0.0575087f, -0.130745f, -0.0705247f, 0.0110047f, 0.198597f, 0.1569f, -0.187375f, -0.0377752f, -0.0192336f, 0.0893955f, -0.104773f, -0.0441842f, 0.0238164f, 0.0458868f, 0.061032f, -0.187736f, -0.0753091f, -0.0973642f, -0.00944946f, 0.0210427f, -0.0883291f, 0.0215373f, 0.0569074f, -0.0131094f, -0.190012f, -0.0206695f};
+ model->setOperandValue(op26, op26_init, sizeof(float) * 65536);
+ static float op28_init[] = {0.950459f, 0.0296315f, -0.0123494f, 1.19466f, 0.255425f, -0.197264f, 1.6053f, 0.809934f, 0.513879f, 0.820272f, 0.23914f, -0.194486f, -0.458706f, 0.368204f, -3.87869f, -0.0187326f};
+ model->setOperandValue(op28, op28_init, sizeof(float) * 16);
+ static float op29_init[] = {1.23719f, -0.67217f, 1.08832f, 0.484643f, -1.00873f, -0.653809f, 0.661964f, 1.06108f, 0.184015f, -0.878391f, -2.61659f, 1.83468f, -1.24167f, -0.334045f, -1.42114f, -1.4081f, 0.743121f, -1.58702f, 1.60977f, 0.541011f, 1.03177f, -0.777374f, 0.170171f, -0.410803f, -2.08614f, -0.253479f, -2.48095f, 0.450924f, -1.17839f, 1.02977f, 0.632391f, 0.683954f, 1.24468f, -1.03801f, 0.808721f, 0.503261f, 1.52073f, -0.299188f, 0.0812176f, -0.914902f, -1.96872f, -0.236636f, -1.64942f, -0.512883f, -0.442176f, -0.0897904f, -1.55935f, 2.44719f, -0.321642f, 0.045825f, -0.0790507f, -2.15146f, -0.670395f, 0.376227f, 0.796031f, 0.631427f, -0.277739f, 0.175722f, 0.0270909f, 0.811911f, 0.761613f, 0.639926f, 3.61268f, -1.81263f, -0.688285f, 0.315179f, 0.18691f, -1.5542f, 1.12532f, 0.312383f, 0.0806777f, -0.642157f, 1.22573f, 0.183517f, -0.756625f, -0.332537f, 0.916962f, 1.02378f, 4.7186f, -1.10432f, -0.0695368f, 0.18656f, 0.428627f, -1.33377f, 3.06145f, -0.561649f, -0.496272f, -1.75449f, 1.9422f, -0.33641f, -0.0531178f, -0.696678f, -0.0305814f, -1.75068f, -1.7157f, 1.20486f, -0.779788f, 0.937587f, -0.774572f, 1.5068f, -1.08521f, 1.30134f, -0.970244f, 0.509486f, -0.322837f, -0.513111f, 2.5801f, -0.221533f, 1.53355f, -0.0568376f, 0.26331f, 0.0692347f, -0.911869f, 0.874316f, -1.37498f, 0.116868f, -0.563794f, 1.08106f, -0.737648f, 1.09901f, 0.941713f, 0.319754f, 3.2568f, -0.13864f, 0.882837f, -0.194686f, 2.77097f, -0.19543f, -0.54728f, 0.935008f, -1.22157f, 0.670149f, -1.28085f, 0.137126f, -0.665442f, 0.262963f, 0.34245f, -0.106122f, 2.05506f, -0.604292f, -0.217629f, -0.123072f, -3.16904f, 0.02477f};
+ model->setOperandValue(op29, op29_init, sizeof(float) * 144);
+ static float op31_init[] = {-0.517417f, 0.0426414f, -0.357654f, 0.645831f, -0.182669f, -1.11405f, 0.516978f, 0.0161366f, -0.438554f, 1.18839f, -1.07079f, 0.0316377f, 0.552099f, 1.03371f, 1.01932f, 0.267632f};
+ model->setOperandValue(op31, op31_init, sizeof(float) * 16);
+ static float op32_init[] = {0.0442092f, 0.100294f, -0.165622f, -0.0254995f, -0.000117605f, 0.108391f, 0.103699f, -0.0864047f, 1.14539f, -0.0113399f, -0.0835518f, -0.0363124f, 0.0108043f, -0.0282255f, 0.00364833f, -0.0477529f, 0.136618f, -0.24613f, 0.137167f, 0.000881128f, 0.123369f, 0.697108f, 0.223616f, 0.022898f, -0.159309f, -0.374391f, 0.165748f, 0.376668f, -0.570377f, -0.0785476f, 0.560518f, 0.186954f, 0.8159f, 0.0888002f, 0.406594f, 0.0370246f, -0.127239f, -0.517474f, 0.0261465f, 0.229986f, 0.0585454f, 0.166348f, 0.304265f, 0.120066f, 0.354865f, -0.224302f, -0.735672f, -0.0550739f, 0.404087f, 0.0294423f, 0.0200603f, 0.0209366f, -0.000457059f, -0.0117939f, -0.30404f, 0.00396221f, -0.0269691f, -0.0334725f, -0.0343909f, -0.0246526f, -0.0922904f, 0.0158384f, 0.575937f, 0.0346629f, -0.101794f, 0.254893f, -0.00422475f, -1.21483f, 0.10141f, -0.191787f, 0.473363f, 0.0594516f, 0.141317f, 0.0189096f, 0.120227f, 0.0256014f, 0.0587697f, 0.018237f, 0.818418f, -0.162319f, 0.0492727f, -0.277837f, 0.0923082f, -0.0693218f, 1.13724f, -0.436901f, 0.134505f, 0.165517f, 0.216349f, 0.521773f, 0.133342f, -0.538622f, -0.00520006f, -0.352552f, 0.186707f, -0.563571f, 0.157166f, -0.203963f, 0.615195f, -0.0157265f, -0.184236f, -0.127932f, 0.1663f, -0.280368f, -0.659668f, 0.118125f, 0.440214f, 0.0015294f, 0.0927123f, -0.197986f, 0.0760051f, 0.08768f, 0.0432116f, -0.7727f, -0.39429f, 0.121467f, 0.290871f, 1.06573f, -0.0100696f, -0.3215f, -0.605128f, -0.365822f, 0.0282545f, 0.0354838f, 0.233038f, -0.479717f, 0.179297f, 0.23784f, -0.0593619f, -0.0224619f, 0.0558388f, -0.026943f, 0.080387f, -0.0668255f, 0.0346286f, 0.0982081f, -0.0113279f, -0.0573998f, 0.0346731f, -0.276434f, 0.029451f, 0.978238f, 0.046547f, -0.0428502f, -0.069273f, -0.112573f, 0.0353035f, 0.0760213f, -0.229825f, 0.256784f, -0.0865124f, -0.117515f, -0.0190794f, 0.053253f, -0.0527775f, 0.0563685f, -0.216214f, -0.0908149f, 0.0196348f, -0.0147699f, 0.000646807f, 0.519219f, 0.553983f, -0.0162967f, 0.180212f, -0.158552f, 0.103136f, -0.0657329f, 0.716499f, 0.00303961f, 0.383627f, -0.0865072f, 0.159668f, -0.10951f, 0.504002f, -0.237362f, -0.018895f, 0.402239f, -0.253648f, -0.042068f, 0.632025f, 0.28811f, 0.0143706f, 0.365129f, 0.110419f, -0.292138f, -0.40216f, 0.0356688f, -0.803869f, -0.0731997f, 0.0585228f, 0.116289f, -0.00771922f, 0.14662f, -0.151595f, 0.0332509f, 0.422503f, -0.0735451f, -0.022096f, 0.419504f, 0.0316678f, -0.108478f, -0.0858874f, -0.117858f, -0.0308824f, -0.0150928f, -0.135797f, -0.00134129f, -0.0363398f, -0.133177f, -0.329766f, -0.0157401f, -0.0585963f, 0.418158f, -0.0203871f, -0.0345592f, -0.869422f, -0.0642393f, -0.248801f, 0.310259f, -0.0907119f, -0.428003f, 0.0452463f, 0.0290068f, -0.40103f, 0.130153f, 0.180791f, -0.0258097f, -0.141686f, -0.323571f, -0.395809f, -0.0476737f, 0.27939f, 0.161304f, 0.238462f, -0.0476686f, 0.453612f, 0.02649f, 0.129983f, 0.0522385f, 0.0297746f, 0.213469f, 0.11375f, 0.0878489f, 0.199765f, -0.0642271f, -0.271912f, 0.00243141f, 0.835912f, 0.104512f, -0.0144645f, 0.0659315f, -0.0166996f, -0.0624446f, -0.627624f, -0.104059f};
+ model->setOperandValue(op32, op32_init, sizeof(float) * 256);
+ static float op34_init[] = {1.19974f, -0.185076f, 1.32092f, 0.0976943f, -0.187869f, -0.601424f, 0.109655f, -0.824136f, 1.76613f, 1.92313f, 0.0470319f, 0.0441899f, 1.04743f, 1.48342f, 1.92262f, 0.417516f};
+ model->setOperandValue(op34, op34_init, sizeof(float) * 16);
+ static float op35_init[] = {-0.192145f, 0.606418f, -0.0568535f, -0.174212f, -0.220749f, 0.294504f, 0.250408f, 0.0870216f, -0.106517f, -0.0128364f, 0.190258f, 0.458306f, 0.936822f, -0.362511f, -0.0127489f, -0.0133373f, -0.232533f, -0.442404f, -0.128353f, 0.140481f, 0.354678f, 0.165237f, 0.0561957f, 0.540504f, -0.169096f, -0.31736f, 0.124375f, 0.145857f, -0.286506f, -0.333099f, -0.451718f, -0.691901f, -0.0416297f, -0.195466f, -0.0223783f, 0.427847f, -0.0137003f, -0.172101f, -0.0535766f, 0.271151f, -0.0675339f, -0.429987f, 0.108888f, -0.110792f, -0.921419f, -0.121298f, -0.258522f, -0.52257f, -0.344404f, 0.519004f, 0.167952f, -0.327749f, -0.400563f, 0.765311f, 0.285217f, 0.367853f, -0.200799f, -0.290995f, 0.27534f, 0.530624f, 0.955898f, -0.176768f, -0.445762f, 0.444517f, -0.357274f, 0.324649f, -0.107971f, 0.150048f, 0.494237f, 0.30383f, 0.324753f, 0.567321f, -0.301667f, -0.296505f, 0.264912f, 0.250856f, 0.279213f, -0.466188f, -0.337701f, 0.291899f, -0.064519f, -0.745488f, -0.305469f, 0.61913f, 0.0724054f, -0.444646f, -0.0926981f, 0.161211f, -0.146827f, 0.00351782f, 0.130313f, -0.132444f, -1.32228f, -0.323326f, -0.0250575f, -0.701916f, -0.207874f, 0.0825065f, -0.10657f, -0.341674f, -0.223069f, 0.791148f, 0.0434073f, 0.322624f, -0.0867508f, -0.227108f, 0.121276f, 0.139853f, 0.0622248f, 0.00764603f, -0.313398f, 0.101314f, -0.24079f, 0.620351f, -0.251547f, 0.0892458f, 0.370692f, 0.201349f, 0.233192f, 0.221301f, -0.164076f, -0.111546f, 0.0542954f, 0.223996f, 0.370248f, -0.315324f, -0.155129f, 0.476494f, -0.00596379f, -0.131588f, -0.276947f, 0.468515f, 0.00297447f, -0.529512f, 0.0695675f, 0.0265823f, -0.0858685f, 0.310371f, 0.0143207f, -0.0321677f, -0.515507f, -0.335209f, 0.171599f, 0.021023f};
+ model->setOperandValue(op35, op35_init, sizeof(float) * 144);
+ static float op37_init[] = {1.01203f, 0.729789f, 1.05009f, 2.45074f, -0.428937f, -0.168061f, 0.883948f, -0.463319f, 0.716813f, 0.896726f, -1.56615f, -1.25198f, -0.865042f, 1.70229f, 1.22468f, 0.840712f, 0.992703f, 0.409845f, 1.88565f, 0.918815f, 0.842341f, -1.1515f, -1.97437f, 1.05457f, 0.111851f, 0.675341f, 0.645972f, -0.579008f, -0.226735f, 0.758494f, -1.2271f, 0.945416f};
+ model->setOperandValue(op37, op37_init, sizeof(float) * 32);
+ static float op38_init[] = {0.0270471f, 0.00919901f, -0.0193453f, 0.0103695f, -0.0430962f, -0.0132642f, 0.0137244f, 0.00528576f, 0.0410232f, -0.0444378f, 0.00887553f, -0.0248847f, -0.000360784f, 0.00789876f, 0.00872832f, 0.00384528f, 0.0841045f, 0.049066f, -0.0429076f, -0.000282252f, 0.0454269f, 0.20789f, -0.0372577f, -0.130965f, -0.0968065f, 0.447734f, 8.29139e-05f, -0.0827644f, 0.0259536f, 0.067688f, -0.0901188f, -0.00476768f, -0.812498f, -0.0419137f, -0.404739f, -0.481643f, -0.364882f, 0.0809418f, 0.61269f, -0.0632456f, -0.0305597f, 0.334748f, 0.4738f, 0.316527f, 0.132221f, -0.574053f, 0.0378586f, 0.47517f, 0.404207f, 0.370556f, -0.0152144f, -0.0397815f, -0.245993f, -0.0494612f, -0.302243f, -0.132276f, -1.62311f, 0.112993f, -0.0164078f, -0.333526f, 0.228636f, 0.142801f, 0.304721f, -0.116069f, 0.093896f, 0.6867f, -0.143538f, -0.0901391f, 0.43879f, 0.0573514f, -0.328247f, -0.0460923f, -0.0681418f, 0.0378803f, -0.0743326f, 0.186537f, 0.336441f, 0.343403f, 0.0384152f, 0.180381f, 0.230074f, -0.403994f, 0.0168588f, -0.133206f, 0.161728f, 0.6601f, -0.112798f, -0.379202f, -0.228558f, 0.615611f, -0.0327493f, 0.594717f, 0.318287f, 0.0584771f, 0.0113252f, -0.144715f, -0.301842f, -0.0705235f, 0.0115849f, 0.131159f, 0.670893f, 0.168075f, -0.0718182f, 0.0903675f, -0.353166f, 0.161096f, -0.0640814f, 0.362689f, 0.175512f, -0.473472f, 0.270516f, -0.0792066f, -0.0256601f, -0.0171877f, -0.120534f, -0.113002f, 0.357678f, 0.161182f, -0.0263743f, -0.923133f, 0.463269f, 0.772355f, 0.0742514f, 0.00882856f, 0.063145f, 0.109518f, -0.0389513f, 0.0758492f, -0.0484083f, -0.14761f, -0.122375f, 0.0561956f, -0.150992f, -0.0506205f, 0.522672f, -0.075867f, 0.156564f, 0.120401f, -0.370186f, -0.450635f, -0.100374f, -0.0106076f, -0.0834781f, 0.0691193f, -0.0671956f, 0.11691f, 0.0368327f, 0.0432756f, -0.205644f, 0.0410307f, -0.0199087f, -0.427719f, -0.293893f, 0.468435f, -0.0095345f, -0.198647f, -0.144639f, 0.468013f, -0.247251f, 0.0817541f, -0.216556f, 0.138428f, -0.134626f, 0.798388f, 1.2151f, 0.0627166f, 0.0323023f, -0.468217f, 0.213002f, 0.482848f, 0.0785823f, -0.155659f, 0.0957937f, 0.175202f, 0.53568f, -0.0522815f, 0.199507f, 0.438776f, 0.0555042f, -0.186707f, 0.738733f, 0.198786f, -0.379305f, -0.21661f, 0.276172f, 0.111102f, -0.187843f, 0.00667934f, 0.479794f, 0.417874f, -0.0321797f, 0.113586f, 0.149764f, 0.344401f, 0.0596981f, -0.0722722f, -0.144758f, 0.216975f, -0.273642f, -0.05668f, -0.174795f, 0.315556f, -0.0698253f, -0.0174929f, 1.22012f, 0.298247f, -0.0437427f, 0.0571144f, -0.0448819f, -0.035783f, 0.341813f, -1.44398f, -0.932115f, 0.0554499f, 0.139797f, 0.0454919f, 0.101146f, -0.0365573f, 0.0181533f, -0.072497f, 0.00469406f, 0.114721f, -0.0307393f, -0.0595061f, -0.107221f, -0.0190126f, -0.066591f, 0.0274221f, -0.220164f, 0.04476f, 0.0132432f, -0.033681f, -0.122918f, 0.129631f, 0.0465355f, 0.00490838f, -0.0404164f, 0.085287f, -0.19016f, -0.00529878f, 0.0815777f, 0.214508f, -0.0097201f, -0.014709f, 0.175969f, -0.284429f, -0.138555f, 0.24701f, -0.0639662f, -0.627076f, -0.192857f, 0.721998f, -0.226272f, -0.287441f, 0.163892f, -0.434394f, 0.134582f, 0.346779f, 0.139164f, 0.0617441f, 0.15026f, 0.0976386f, 0.0772374f, -0.241325f, -1.20489f, 0.231982f, -0.324956f, -0.00869559f, 0.629038f, 0.00517482f, -0.000377918f, -0.0204305f, 0.210397f, 0.106963f, -0.231252f, -0.226723f, -0.0227848f, -0.049826f, 1.16369f, -0.050116f, -0.271526f, 0.328031f, -0.205096f, -0.363005f, -0.214108f, 0.225625f, -0.539605f, 0.0983158f, -0.619605f, -0.0497222f, -0.251876f, 0.0436864f, -0.160641f, 0.0571772f, 0.272138f, 0.0668712f, -0.430683f, -0.0100436f, 0.295768f, 0.298574f, -0.106221f, -0.260428f, -0.177709f, 0.0896013f, 0.053705f, 0.0500741f, 0.131009f, -0.181435f, -0.416209f, -0.257817f, 0.266792f, 0.113934f, 0.289465f, -0.150348f, 0.156032f, -0.194724f, -0.663587f, -0.254988f, 0.0849075f, -0.0868606f, -0.444052f, -0.223751f, -0.276668f, 0.0910332f, -0.210636f, 0.129256f, 0.258805f, 0.10269f, -0.286526f, -0.00178165f, 0.563636f, 0.429938f, -0.0224727f, 0.0574613f, 0.05257f, 0.0964023f, -0.0647819f, 0.00682808f, 1.0809f, -0.843355f, -0.764512f, 0.568327f, -0.154132f, 0.299537f, 0.299945f, 0.544647f, 0.208732f, 0.429021f, 0.692963f, -0.0132254f, -0.315425f, -0.0306844f, 0.454138f, 0.0640088f, -0.0526967f, -0.0886315f, -0.353569f, -0.0445053f, 0.419271f, 0.0554374f, 1.36378f, 0.0733646f, -0.150825f, -0.0180057f, -0.497634f, 0.0108371f, -0.0605194f, 0.196103f, -0.413485f, 0.104696f, -0.150669f, 0.125607f, 0.66632f, 0.105853f, 0.603983f, -0.0469635f, -0.536611f, 0.324353f, 0.0555507f, -0.0131337f, -0.187258f, -0.111389f, -0.122898f, 0.137639f, 0.183434f, -0.012268f, 0.343272f, -0.128094f, 0.901428f, -0.159127f, 0.281001f, 0.201204f, -0.383114f, -0.204803f, -0.02333f, 0.0352839f, 0.118129f, -0.282447f, -0.0108675f, -0.0391744f, -0.229019f, 0.0577521f, 0.116441f, 0.0644183f, 0.427821f, -0.704257f, 0.524999f, 0.186882f, -0.127407f, -0.35676f, 0.0595068f, 0.115227f, 0.0461664f, -0.142496f, -0.00631152f, -0.0108409f, -0.481236f, -0.0852718f, -0.376636f, 0.525184f, -0.273659f, 0.121326f, 0.472309f, -0.261966f, 0.0891272f, 0.0111846f, 0.253588f, -0.597467f, 0.0274354f, -0.116376f, 0.18483f, -0.381528f, -1.08966f, 0.220949f, 0.0125376f, -0.159113f, -0.607749f, -0.117129f, 0.0208151f, -0.0192488f, 0.965594f, 0.0103654f, 0.122626f, 0.27669f, 0.308212f, 0.41214f, -0.17695f, 0.457152f, -0.186629f, -0.811885f, -0.450484f, 0.326845f, -0.313783f, -0.0318016f, -0.0703636f, -0.348998f, 0.401331f, -0.0972392f, -0.0138799f, 0.941508f, 0.183815f, -0.368143f, 0.348649f, 0.34287f, -0.329698f, 0.971174f, -0.38763f, 0.270437f, -0.177012f, -0.503141f, -0.464137f, -0.166893f, -0.128612f, -0.233088f, -0.447929f, 0.283954f, 0.091494f, 0.468883f, -0.17161f, 0.414808f, -0.156788f, -0.0546122f, 0.149743f, 0.149753f, 0.164002f, 0.338386f, 0.306504f, -0.636032f, 0.220797f, 1.17419f, 0.228991f, 0.207466f, 0.34877f, -0.215867f, -0.11421f, 0.0348584f, -0.292257f, -0.929841f, -0.0867478f, 0.343753f, -0.313036f, 0.0911876f, -0.065675f, 0.277021f, 0.174759f, -0.0565729f, 0.20129f, -0.183456f, 0.0117971f, -0.288494f, -0.102646f, -0.242777f};
+ model->setOperandValue(op38, op38_init, sizeof(float) * 512);
+ static float op40_init[] = {6.42744f, 0.0321568f, -0.000620484f, 1.38238f, 0.80865f, -0.00817357f, -0.0552231f, 0.722048f, -0.0648024f, 0.00133108f, -0.0215043f, -0.0571425f, 1.02867f, 1.70436f, -0.3152f, 0.00116053f, 0.952789f, -0.00285661f, 0.684438f, -0.342237f, 0.47185f, -0.382995f, -1.09887f, 0.927754f, -0.395105f, 0.399458f, 1.70644f, 1.26431f, -0.628364f, -0.0923156f, 0.128607f, 0.136128f};
+ model->setOperandValue(op40, op40_init, sizeof(float) * 32);
+ static float op41_init[] = {-0.213624f, 0.138209f, 0.0335167f, 0.0765658f, -0.469466f, -0.273326f, -0.00221819f, -0.295019f, 0.0829199f, -0.0548812f, -0.490404f, -0.00631009f, 0.14766f, -0.322987f, -1.15481f, 0.0922192f, -0.518827f, 0.0107877f, -0.141691f, -0.281104f, -0.444652f, -0.0437552f, -0.282668f, -0.0346714f, -0.304982f, 0.655019f, 0.0312901f, 0.236608f, -0.0684982f, -0.0444543f, 0.948018f, 0.33508f, -1.01091f, -0.96846f, 0.358376f, -0.314516f, -0.607375f, 0.582129f, 1.09556f, 0.493909f, 1.29421f, 1.0163f, 0.364732f, 0.341571f, 0.0880636f, -0.351738f, -2.30092f, -0.150112f, -0.960678f, 0.297181f, -0.0706625f, -0.19208f, -0.0957771f, 0.309638f, 0.0750161f, -0.780806f, 0.511076f, 0.773651f, -0.396476f, -0.540966f, 0.0747744f, 0.438967f, 0.0576069f, -0.240702f, 0.965804f, 0.444225f, -0.236452f, -0.0359711f, -0.576393f, 0.191653f, 0.25384f, 0.403406f, 0.785365f, 0.791804f, -0.236619f, -0.159129f, -0.0397893f, -0.0192526f, 0.639548f, -0.151068f, -0.708892f, 0.0186311f, -0.169363f, 0.641973f, 0.835608f, -0.0062986f, -0.0722358f, -0.280815f, 0.528226f, 0.234705f, -0.0855388f, 0.0502671f, -0.0663052f, -0.0660385f, -1.09458f, -0.30802f, -0.352286f, -0.541121f, 0.0738992f, -0.600995f, -0.85345f, -0.640068f, 0.35932f, -0.94734f, -0.750374f, 0.0843853f, 0.533934f, 0.342629f, -0.285891f, -0.362343f, 2.27695f, -0.178586f, -0.146698f, 0.051864f, -1.63582f, -0.498046f, 0.439183f, 0.25438f, 0.860595f, 0.605293f, -0.487595f, 0.693431f, 0.0504463f, 0.0676578f, 0.491436f, 0.00781199f, 0.970881f, 1.24158f, 0.522268f, -1.66232f, 0.596904f, -0.771637f, -0.314527f, -0.0736619f, 0.477234f, -0.26977f, -1.32936f, 0.571956f, 0.401798f, 0.163323f, -0.48078f, -0.199079f, 3.68406f, 0.0363556f, -0.0116286f, 0.683029f, -0.411191f, -0.223925f, -2.16462f, 0.863175f, -0.0633758f, -0.104411f, 0.697775f, -0.0682223f, -0.170274f, -0.798971f, 0.543116f, -0.577803f, -0.264083f, -1.29701f, 1.3298f, 2.19506f, 0.129616f, -0.0882273f, 0.387708f, 0.835795f, -0.44719f, 0.727769f, -0.154647f, -1.36135f, -0.1804f, -0.972617f, -0.102816f, 0.0446513f, 0.00496158f, 0.254847f, -0.289563f, -0.1219f, 0.715903f, 1.20232f, 0.50676f, -0.160549f, 0.0658346f, -0.500259f, -0.18733f, -0.553927f, -0.327592f, -0.0115506f, -0.0648266f, 1.02016f, -0.445415f, 0.147632f, -2.72305f, -1.02403f, 0.091488f, 0.389223f, -0.340593f, 0.0441604f, -0.0813384f, -1.26204f, 0.451759f, 0.109403f, 0.163282f, -0.108921f, -0.513226f, 0.00951998f, -0.962222f, -0.0764701f, 0.417888f, -0.0341903f, -0.215405f, -0.135682f, 0.448615f, -0.0672329f, 0.319827f, 0.36181f, -0.0126959f, 0.120521f, -0.410612f, -0.41408f, 0.0858084f, -0.0372158f, 0.354041f, 0.407449f, -3.48641f, 0.715232f, -0.0997449f, -0.011738f, 0.39694f, -0.472036f, -0.731723f, 0.364184f, -0.032735f, -0.651235f, 0.316316f, 0.617327f, -0.563622f, -0.31476f, -1.77474f, 0.888013f, 0.460156f, 0.208053f, 0.928476f, -0.262615f, -0.0164628f, -0.125161f, 1.41364f, 0.104717f, -0.105201f, -0.949609f, -0.225559f, -0.34806f, 0.382115f, -0.0615256f, -0.466405f, -0.549317f, -0.837217f, 0.954736f, -0.138345f, -0.148199f, 0.526336f, 0.0140706f, -0.162999f, 0.511944f, -0.274986f, -0.340369f, -0.046259f, 0.346976f, -0.0313568f, 0.228732f, -0.0489806f, 0.223879f, 0.562803f, 0.0103503f, 0.0799935f, 0.558369f, -0.171246f, 0.171886f, 0.166322f, 0.238082f, 0.673778f, -0.77636f, -0.163403f, -0.0436278f, 0.141954f, -0.0472412f, -0.204982f, -0.0389803f};
+ model->setOperandValue(op41, op41_init, sizeof(float) * 288);
+ static float op43_init[] = {0.3436f, -1.04269f, 0.225925f, -0.537982f, 1.08172f, -0.204524f, 0.172497f, 0.674492f, 0.456061f, 0.668595f, -0.481863f, -0.133324f, 1.32533f, 0.993317f, 0.748185f, -0.195914f, -0.0134926f, 0.688711f, 0.511972f, 0.636836f, 0.279939f, 0.321013f, 0.876996f, -0.260606f, -0.451471f, 0.190377f, 0.252418f, -0.148638f, -0.0716072f, -0.423855f, -0.435216f, 0.208755f};
+ model->setOperandValue(op43, op43_init, sizeof(float) * 32);
+ static float op44_init[] = {-0.997767f, -0.138253f, 0.257102f, 0.198314f, -0.288036f, 0.000366378f, 0.179375f, 0.0428916f, 0.37398f, 0.200809f, 0.0708428f, -0.0552363f, 0.2561f, 0.0673435f, 0.214471f, -0.273985f, -0.0436041f, -0.280273f, -0.178842f, -0.125207f, -0.0355889f, 0.115009f, 0.378167f, -0.322478f, -0.228919f, -0.304841f, 0.0869207f, 0.00978466f, 0.208113f, 0.0447535f, 0.0834528f, -0.00224961f, 0.943316f, 0.0268451f, -0.0400112f, 0.269991f, 0.128187f, 0.0418591f, -0.183381f, 0.0012768f, 0.0109702f, -0.111818f, -0.111524f, -0.184526f, -0.0207905f, 0.370109f, -0.0994838f, -0.145518f, -0.157454f, 0.0129944f, 0.108774f, -0.0487951f, -0.0819522f, 0.0119885f, 0.0174093f, 0.28421f, 0.646448f, -0.075307f, 0.0465415f, 0.0487265f, 0.0308747f, -0.069307f, -0.053984f, -0.0313228f, -0.509124f, -0.064913f, -0.112027f, 0.208081f, -0.135588f, 0.159906f, -0.178343f, -0.0181903f, 0.0335903f, -0.150214f, 0.303698f, 0.427552f, -0.435008f, -0.224716f, -0.19117f, 0.210815f, 0.065515f, 0.421522f, -0.221878f, 0.0720313f, 0.0249512f, -0.0440652f, 0.154486f, 0.431391f, 0.12956f, -0.0195364f, -0.0706577f, -0.0933352f, 0.0266882f, -0.0467516f, 0.0801773f, -0.0014517f, -0.625292f, 0.712272f, -0.24107f, -0.305843f, 0.0221034f, -0.0928243f, 0.154919f, 0.376946f, -0.126919f, 0.720612f, -0.188993f, -0.186095f, 0.00157104f, 0.188757f, 0.353384f, -0.132509f, -0.0108723f, 0.387704f, 0.325389f, -0.00314436f, -0.345477f, 0.0887929f, 0.169411f, -0.109333f, -0.265296f, 0.0980931f, 0.359309f, 0.112137f, 0.0153721f, -0.257252f, 0.0359218f, 0.118771f, -0.349838f, -0.374118f, -0.146685f, 0.33613f, -0.0721935f, 0.193789f, 0.0234959f, -0.290478f, 0.0641786f, -0.218367f, -0.270102f, 0.67599f, -0.35043f, -0.0972091f, -0.13407f, -0.388246f, 0.113249f, 0.318534f, -0.305088f, 0.181331f, 0.188322f, -0.0540989f, -0.0382463f, -0.239647f, 0.221239f, -0.0593219f, -0.260486f, -0.0336027f, -0.0638945f, 0.116237f, 0.081521f, 0.0775405f, 0.0944801f, 0.25328f, -0.122297f, 0.174045f, -0.0975344f, 0.519531f, -0.212778f, -0.100065f, 0.148534f, 0.0672612f, -0.133572f, -0.386566f, 0.0184244f, 0.0280795f, -0.00774415f, -0.0917038f, -0.175086f, -0.0250174f, -0.0220053f, 0.436752f, 0.23059f, -0.0251884f, -0.0659973f, 0.11087f, -0.237208f, -0.0143132f, -0.0319925f, 0.128432f, 0.0775522f, 0.413272f, 0.140292f, 0.164603f, -0.0943179f, -0.0874061f, -0.177495f, -0.215465f, -0.0133038f, 0.0372306f, 0.182874f, 0.0699622f, -0.000538117f, -0.152859f, -0.311634f, -0.0369478f, 0.124725f, 0.441365f, -0.510488f, -0.189748f, 0.0994777f, -0.2157f, 0.181628f, 0.21132f, 0.135765f, -0.166289f, 0.215432f, 0.0929203f, -0.132281f, 0.152942f, -0.131918f, 0.225004f, 0.00740338f, 0.120945f, -0.0372018f, 0.185297f, -0.16029f, 0.206478f, -0.0228813f, -0.0176945f, 0.19456f, -0.123947f, -0.0668895f, -0.0301439f, -0.0431636f, 0.189757f, -0.327636f, -0.14281f, -0.00723636f, -0.26997f, 0.267678f, 0.19167f, 0.0930639f, 0.221847f, -0.0387626f, -0.00102514f, -0.209264f, -0.122359f, -0.103773f, 0.198442f, -0.174992f, 0.0351541f, -0.154633f, -0.0303902f, -0.00374129f, -0.0923334f, 0.0407157f, -0.00197166f, -0.514059f, 0.290623f, 0.400043f, -0.106561f, -0.0751657f, 0.0658298f, -0.0746318f, -0.203909f, 0.185403f, -0.0801087f, 0.120517f, 0.114952f, 0.0592785f, -0.0994219f, 0.0759047f, -0.236376f, 0.0576872f, -0.222754f, 0.292879f, 0.0521957f, -0.0981655f, 0.173565f, 0.0748591f, -0.0961926f, 0.704405f, -0.254015f, 0.0914885f, -0.214259f, -0.0591475f, 0.160053f, -0.0535757f, -0.059008f, -0.00415964f, -0.721333f, -0.124638f, -0.190073f, 0.260399f, -0.0882691f, 0.214597f, -0.0902513f, 0.0310123f, 0.695001f, 0.15709f, -0.597695f, -0.362653f, 0.0108771f, 0.120093f, -0.075053f, -0.143084f, -0.0663496f, -0.0699786f, 0.0190939f, -0.143067f, 0.0366634f, -0.0586138f, -0.0699544f, -0.0675664f, -0.130475f, 0.169195f, 0.215439f, -0.0412413f, -0.0634872f, 0.299001f, 0.0699954f, 0.648899f, -0.0148224f, 0.440427f, 0.112619f, 0.109053f, 0.212331f, -0.189391f, 0.00321122f, 0.204593f, 0.0945672f, 0.122811f, -0.359781f, -0.132251f, 0.288656f, 0.135345f, -0.0621901f, 0.476585f, -0.174724f, -0.332893f, -0.220906f, -0.189623f, -0.0628548f, -0.168739f, 0.210579f, 0.0783573f, -0.207891f, -0.0136806f, -0.210513f, -0.147619f, 0.187795f, -0.260662f, 0.176043f, 0.400758f, 0.130331f, 0.0211272f, 0.0412953f, -0.196418f, 0.225916f, 0.239182f, 0.0745061f, 0.0697264f, 0.246711f, -0.1615f, -0.421831f, 0.282195f, -0.0182321f, 0.0743141f, -0.222882f, -0.216999f, 0.0937604f, -0.233525f, 0.0635873f, 0.0838526f, 0.206174f, -0.0255005f, -0.173583f, -0.19781f, -0.00470973f, 0.241397f, 0.268798f, -0.0246133f, -0.115923f, 0.413294f, 0.0298273f, 0.0118247f, 0.111536f, 0.0366441f, -0.155052f, 0.232736f, 0.0495747f, -0.0556179f, -0.362717f, -0.0559794f, -0.0586763f, -0.295732f, -0.180765f, 0.0189214f, -0.0876355f, -0.0434118f, 0.0271498f, 0.0179914f, -0.00405699f, -0.0808924f, 0.106749f, -0.224573f, 0.0976894f, -0.130697f, -0.0418523f, 0.138401f, -0.224205f, 0.0565962f, 0.0380854f, -0.0240561f, 0.215736f, -0.0947853f, -0.0690698f, -0.764082f, 0.00703551f, -0.102508f, 0.00595691f, -0.162672f, 0.12469f, 0.284502f, -0.157682f, -0.097986f, 0.133678f, -0.183257f, 0.034345f, 0.163879f, -0.721926f, -0.154023f, -0.129562f, -0.0700016f, 0.0338686f, 0.173143f, 0.164748f, 0.0764562f, 0.0833318f, 0.352624f, -0.231051f, 0.118842f, 0.116711f, -0.0254677f, 0.1588f, 0.0579274f, 0.0807242f, 0.0141021f, -0.0382772f, 0.116882f, 0.214303f, 0.154357f, -0.127557f, 0.061082f, -0.149159f, 0.0250265f, 0.159957f, 0.0356195f, 0.123078f, 0.103538f, -0.0976693f, -0.20973f, 0.118538f, 0.0226554f, 0.0771036f, 0.00287583f, 0.225346f, 0.0286966f, -0.0321717f, -0.0862646f, -0.0289308f, -0.0400484f, 0.0596946f, -0.42053f, -0.0253006f, -0.367883f, -0.305633f, -0.0303856f, 0.0264848f, -0.060172f, 0.0637323f, -0.0828258f, -0.111796f, 0.00238696f, 0.23354f, 0.143485f, 0.0576855f, 0.163778f, 0.025175f, 0.618653f, 0.486542f, 0.15879f, -0.289601f, 0.136273f, -0.0649355f, 0.545632f, 0.224337f, 0.0554444f, -0.0195882f, 0.0896101f, -0.065292f, 0.0175305f, 0.0155976f, -0.00882445f, 0.00561134f, 0.0135699f, -0.0567923f, -0.0413244f, -0.172096f, -0.208423f, -0.0850534f, -0.0230808f, -0.110725f, 0.87247f, -0.174985f, 0.051834f, -0.0126837f, 0.412418f, -0.227744f, -0.0163108f, 0.298347f, -0.076648f, -0.178489f, 0.095808f, 0.0121981f, -0.136045f, -0.0579866f, 0.08059f, 0.0537581f, 0.219009f, 0.0758333f, 0.198842f, -0.211389f, -0.196404f, -0.20316f, -0.206087f, 0.122475f, -0.0630977f, -0.0334145f, -0.374f, -0.0980751f, -0.132815f, -0.126101f, -0.279858f, -0.0178308f, -0.828524f, 0.00446228f, -0.167023f, -0.00632272f, -0.130136f, 0.177766f, 0.317743f, 0.0156051f, 0.252856f, -0.0592896f, -0.1689f, -0.106607f, 0.0398087f, 0.0300818f, -0.0439136f, -0.0551343f, 0.0853696f, 0.00213561f, -0.0490908f, -0.0311854f, -0.0630594f, -0.00913648f, 0.11252f, -0.0799857f, -0.234389f, -0.051806f, 0.0194756f, 0.00407919f, 0.384821f, 0.0173331f, -0.0712322f, -0.103576f, -0.120008f, 0.0725585f, 0.0966257f, -0.16081f, -0.124137f, 0.39725f, -0.0643643f, 0.419011f, 0.21933f, -0.00990585f, 0.0960152f, 0.461456f, 0.206761f, -0.132683f, -0.172062f, 0.105766f, -0.0173104f, -0.373499f, -0.106453f, -0.704373f, 0.0746062f, -0.165774f, 0.319425f, -0.137625f, -0.0313657f, 0.0443941f, -0.0456422f, -0.104721f, -0.0697701f, 0.0331451f, -0.00422528f, 0.0029677f, 0.852368f, -0.0198872f, -0.0900668f, -0.101453f, -0.137428f, 0.129322f, 0.17863f, -0.247587f, -0.118253f, -0.112031f, 0.175801f, -0.134212f, -0.318574f, -0.224928f, 0.077698f, 0.0958551f, -0.0497655f, 0.138903f, 0.0930927f, -0.0231865f, -0.0319309f, 0.0748791f, -0.0068748f, 0.215623f, 0.0509231f, -0.170587f, -0.0273425f, -0.113463f, 0.221946f, -0.234851f, -0.129824f, 0.0869991f, 0.3187f, -0.183724f, -0.0374509f, -0.143004f, 0.0116296f, 0.27605f, 0.533397f, -0.356008f, -0.258424f, 0.411369f, 0.0760917f, -0.319263f, 0.193123f, -0.0324642f, 0.249571f, -0.0725184f, -0.199219f, -0.421124f, -0.273295f, -0.0909357f, -0.15422f, 0.144798f, -0.0767782f, -0.178438f, 0.0840012f, -0.138935f, 0.26065f, -0.0501507f, 0.114025f, -0.245332f, 0.183401f, -0.109097f, 0.0802959f, 0.22644f, 0.0158754f, 0.079201f, 0.168063f, -0.0962881f, -0.177862f, -0.00585562f, 0.122612f, 0.0474541f, -0.115574f, -0.13249f, 0.0516973f, 0.0379483f, 0.205485f, 0.0571525f, 0.138432f, 0.167085f, 0.149931f, -0.30555f, -0.154863f, 0.273669f, -0.269363f, -0.277303f, -0.117719f, -0.130056f, 0.16254f, 0.0178595f, 0.0099221f, -0.0821058f, -0.832783f, -0.247802f, 0.000437512f, -0.0718738f, 0.105544f, -0.0859228f, -0.0781981f, -0.0152479f, 0.0577682f, 0.0432432f, 0.0893925f, -0.0169638f, 0.0401341f, -0.137957f, 0.0371843f, 0.00780299f, 0.135383f, -0.0905592f, 0.248079f, 0.043501f, -0.20674f, -0.120261f, -0.170613f, -0.073779f, -0.0261543f, -0.0111784f, -0.108507f, 0.106975f, 0.0158704f, -0.0650415f, 0.0471562f, 0.108786f, -0.0010104f, -0.0342219f, 0.293312f, 0.22832f, 0.277243f, 0.294822f, 0.0161702f, -0.0171233f, -0.234202f, -0.0539014f, 0.108611f, -0.236384f, 0.140614f, 0.0165573f, 0.0789557f, -0.0727585f, 0.77537f, -0.185072f, 0.00318486f, -0.210554f, 0.172684f, 0.0692409f, -0.161854f, -0.0680684f, -0.0440112f, 0.392964f, 0.213336f, -0.0669562f, -0.0180805f, -0.284579f, -0.229557f, -0.0504555f, -0.0627434f, -0.0186419f, -0.239511f, 0.392045f, -0.194569f, 0.0204815f, 0.185961f, -0.148468f, -0.249575f, 0.303668f, 0.108663f, -0.149364f, 0.084945f, -0.339009f, -0.391481f, -0.139502f, 0.174247f, 0.0906451f, 0.234767f, 0.0705702f, -0.256438f, -0.290319f, 0.027072f, -0.150724f, 0.174573f, -0.0824633f, 0.538801f, -0.0963668f, 0.321383f, 0.316815f, -0.0753205f, 0.286798f, 0.340526f, 0.333932f, -0.0500382f, -0.0795599f, 0.0308395f, -0.092027f, -0.0163176f, 0.0254774f, 0.300869f, 0.182059f, -0.0667341f, -0.0822605f, 0.1041f, 0.32807f, 0.0277766f, -0.0633457f, 0.00799717f, 0.190551f, -0.0428556f, 0.0791671f, -0.0787359f, 0.105112f, -0.141626f, -0.129662f, -0.0928458f, 0.0939267f, 0.319918f, 0.00197538f, -0.0705373f, 0.00349081f, -0.0381092f, 0.106843f, -0.115107f, 0.14461f, -0.0941022f, 0.104072f, 0.0441417f, -0.101069f, -0.036769f, 0.0614558f, -0.0730298f, 0.0384882f, 0.0669455f, -0.0696751f, 0.517891f, 0.0550475f, 0.0723489f, 0.247997f, 0.0756446f, -0.286603f, -0.129575f, 0.173436f, 0.105001f, -0.00469504f, -0.0901384f, -0.253675f, 0.20491f, -0.0585889f, 0.295482f, 0.170905f, -0.281103f, 0.145994f, 0.0866278f, 0.0307803f, -0.0569594f, 0.0426422f, 0.360389f, 0.55195f, 0.09593f, 0.397124f, 0.191536f, -0.211722f, 0.234034f, -0.0784443f, -0.378966f, -0.190407f, -0.00750651f, -0.66388f, 0.565919f, -0.0253019f, -0.421638f, -0.0402029f, 0.0754944f, -0.206012f, 0.183688f, 0.337428f, 0.0737486f, 0.0190236f, -0.232534f, -0.195353f, 0.125169f, 0.0331415f, -0.356153f, 0.0242174f, -0.021123f, -0.142455f, 0.326315f, 0.0163432f, -0.0150546f, 0.051416f, -0.283135f, -0.0462949f, 0.0929148f, 0.0121951f, 0.132771f, -0.013616f, 0.164926f, 0.253921f, -0.139483f, -0.118191f, 0.00735195f, -0.0405987f, -0.184553f, 0.324665f, 0.303452f, -0.458574f, 0.250838f, -0.27917f, -0.130921f, 0.0916452f, 0.185078f, 0.24469f, -0.301072f, -0.370228f, 0.178628f, 0.145236f, 0.183097f, 0.150434f, 0.086305f, 0.0389938f, 0.875306f, -0.00167366f, 0.045869f, -0.237671f, 0.0890955f, 0.0192966f, 0.124476f, 0.0126363f, 0.0490718f, 0.0615049f, 0.105296f, -0.108085f, -0.313966f, 0.426299f, 0.124506f, -0.0795267f, 0.174412f, 0.272431f, 0.124504f, 0.0739427f, -0.0700362f, 0.111758f, 0.00671678f, -0.107815f, -0.0662027f, -0.0918283f, -0.102847f, -0.0980065f, -0.0483559f, -0.120665f, 0.0151454f, 0.00351556f, -0.488797f, 0.0444841f, -0.253477f, -0.28651f, 0.00837357f, 0.0809181f, -0.0199791f, -0.0799819f, 0.0997407f, 0.235679f, 0.97399f, -0.167017f, -0.122257f, 0.597685f, 0.0827836f, 0.119421f, 0.243396f, -0.0572792f, -0.0470654f, 0.120889f, -0.0969786f, -0.0506503f, 4.19253e-05f, -0.0744475f, 0.135971f, -0.0525192f, 0.056829f, -0.148527f, 0.191463f, 0.116223f, -0.0730916f, 0.0129901f, 0.350111f, 0.135758f, 0.152902f, 0.485041f, 0.0448233f, -0.111131f, -0.233994f, -0.410416f, 0.243623f, 0.138663f, -0.00277319f, 0.227577f, 0.0683518f, -0.210476f, 0.226312f, 0.21227f, -0.0362238f, 0.206224f, -0.0785877f, -0.20799f, -0.0422812f, 0.225806f, -0.347121f, -0.154161f, -0.15515f, 0.109949f, 0.386982f, -0.399289f, -0.374705f, -0.193131f, 0.123094f, -0.198874f};
+ model->setOperandValue(op44, op44_init, sizeof(float) * 1024);
+ static float op46_init[] = {0.0353964f, -0.498098f, -0.0637909f, 1.46605f, 0.0985285f, 1.55767f, 1.67486f, 2.08488f, 1.24002f, 1.53329f, -0.0350761f, 0.185034f, 3.21054f, 0.0545383f, 0.137788f, 1.5124f, -0.0263243f, 1.91751f, 1.16072f, 1.34599f, 0.0323791f, -0.516612f, 3.40556f, -0.203818f, 0.916529f, 1.36208f, 1.47077f, 1.58338f, 0.0124303f, 0.116432f, -0.00318241f, -0.000725091f};
+ model->setOperandValue(op46, op46_init, sizeof(float) * 32);
+ static float op47_init[] = {0.156179f, 0.740114f, 0.146084f, -0.180304f, 0.135386f, -0.112967f, -0.159752f, -0.0912054f, -0.16292f, -0.170387f, 0.184984f, 0.534837f, -0.222242f, 0.0663174f, 0.322167f, -0.246094f, 0.225455f, 0.0679039f, -0.139034f, 0.0039652f, 0.096747f, 0.0668452f, -0.101501f, 0.184103f, -0.189683f, -0.181256f, -0.226854f, -0.115267f, 0.117309f, 0.212836f, 0.0102671f, -0.00837151f, 0.205307f, -0.118807f, 0.473089f, -0.27765f, 0.0257295f, -0.295094f, -0.306755f, -0.196187f, -0.151386f, -0.190512f, 0.279854f, 0.368561f, -0.512608f, 0.123368f, 0.785377f, -0.338917f, 0.246306f, -0.39264f, -0.164611f, -0.108249f, 0.0665555f, 0.271457f, -0.442514f, 0.309919f, -0.24764f, -0.256974f, -0.244039f, -0.130222f, 0.144196f, 0.288034f, 0.16275f, -0.0276356f, 0.0973298f, 0.172178f, 0.361618f, -0.159499f, -0.147958f, -0.236342f, -0.197888f, -0.139265f, -0.0194431f, -0.0795726f, 0.154615f, -0.0446899f, -0.209686f, 0.102243f, 0.751226f, -0.128102f, 0.17202f, -0.496175f, -0.0630421f, -0.141689f, -0.0395602f, 0.209026f, -0.399518f, 0.229802f, -0.11026f, -0.0416616f, -0.0478338f, -0.0866013f, 0.0788821f, 0.145776f, 0.163885f, -0.00528089f, 0.322996f, 0.674345f, -0.250062f, -0.266435f, 0.300283f, -0.245216f, -0.171486f, -0.218911f, -0.278993f, -0.238749f, 0.188046f, 0.398108f, -0.367571f, 0.161006f, -0.251809f, -0.283983f, 0.308162f, -0.147899f, -0.256196f, -0.028727f, 0.148012f, 0.237726f, -0.543712f, 0.184632f, -0.229882f, -0.0937904f, -0.23355f, -0.230001f, 0.159108f, 0.186345f, 0.195609f, 0.129094f, 0.489674f, -0.0359821f, 0.287801f, -0.349692f, 0.310358f, -0.550261f, -0.432363f, -0.390494f, -0.310232f, -0.378422f, 0.330258f, 0.210456f, -0.7278f, 0.343291f, -0.112808f, -0.449118f, 0.422889f, -0.56646f, -0.363238f, -0.285837f, 0.386119f, 0.402224f, -0.728247f, 0.29205f, -0.396501f, -0.402005f, -0.351576f, -0.278841f, 0.310083f, 0.328826f, 0.322681f, 0.242448f, 0.230535f, -0.205397f, 0.441373f, -0.201717f, 0.0573488f, -0.362298f, -0.335419f, -0.231367f, -0.0660249f, -0.192796f, 0.201418f, -0.0941352f, -0.462079f, 0.230986f, 0.0567214f, -0.278781f, 0.272637f, -0.405269f, -0.192166f, -0.325699f, 0.228205f, 0.318716f, -0.363493f, 0.188267f, -0.245576f, -0.301783f, -0.107653f, -0.160302f, 0.208713f, 0.167456f, 0.19856f, 0.195301f, 0.167139f, 0.639249f, -0.396651f, -0.173979f, 0.170304f, -0.206958f, -0.0727969f, -0.147468f, -0.12681f, -0.162747f, -0.00979657f, -0.0850251f, -0.12852f, 0.13592f, -0.436702f, -0.143019f, 0.110177f, -0.261806f, -0.2219f, -0.0652627f, 0.0486492f, 0.267457f, -0.252875f, 0.0509038f, -0.162644f, 0.0361367f, -0.100097f, -0.111549f, 0.0648925f, -0.0166337f, 0.217277f, 0.200447f, 0.341306f, -0.348518f, -0.0825517f, -0.17013f, 0.328561f, -0.346055f, -0.274162f, -0.227547f, -0.221071f, -0.312126f, 0.0529024f, -0.446766f, -0.346986f, 0.294348f, -0.709363f, -0.258129f, 0.174978f, -0.334403f, -0.354706f, -0.246383f, 0.300609f, 0.287097f, -0.326242f, -0.0250746f, -0.290678f, -0.221031f, -0.200902f, -0.185348f, 0.197853f, 0.0334783f, 0.239879f, 0.349207f, 0.202404f, -0.169038f, 0.219634f, -0.0465216f, 0.240188f, -0.12988f, -0.230147f, -0.162086f, -0.0892766f, -0.219808f, 0.0623033f, -0.560078f, -0.357664f, 0.18296f, -0.540818f, -0.205105f, 0.0497816f, -0.0818515f, -0.224175f, -0.22876f, 0.27044f, 0.203257f, -0.0265541f, -0.0891287f, -0.109839f, -0.326671f, -0.0904553f, -0.116456f, 0.158232f, 0.00285579f, 0.0707352f, 0.215775f};
+ model->setOperandValue(op47, op47_init, sizeof(float) * 288);
+ static float op49_init[] = {0.473197f, -1.08994f, 0.157816f, 0.475708f, 1.16729f, 1.19871f, 0.434978f, 0.260128f, 0.362141f, 0.81847f, 0.155825f, 1.22273f, -0.382775f, 0.24913f, 0.492578f, -0.541874f, 2.08853f, 2.6003f, -0.14665f, 1.43908f, -0.740456f, -0.0744309f, -0.208456f, 0.235227f, 1.44235f, 1.09803f, -0.430158f, 0.810813f, 0.336378f, 0.0121858f, 0.65212f, 0.865938f, 0.137012f, 0.389252f, -0.54846f, -0.951355f, 1.09939f, 0.120903f, 0.0200256f, 0.277682f, -0.0387516f, 0.193967f, 0.248117f, 1.22538f, 0.930871f, -0.169939f, -0.747988f, 0.66065f, -0.23336f, 1.11278f, 1.44047f, -1.61965f, 0.535887f, 2.11026f, 0.840902f, 0.677272f, 1.36815f, 0.758101f, -0.292219f, 0.202975f, -2.03518f, 1.01007f, 0.902706f, -0.218632f};
+ model->setOperandValue(op49, op49_init, sizeof(float) * 64);
+ static float op50_init[] = {0.0613606f, -0.553296f, 0.195442f, 0.267107f, 0.555671f, -0.10669f, -0.145497f, 0.0230295f, 0.0348993f, -0.179045f, 0.0174281f, -0.010889f, -0.0904074f, -0.0220914f, 0.0483935f, -0.0840004f, 0.0468793f, -0.0856841f, -0.00308835f, -0.301048f, -0.188984f, -0.135143f, 0.249993f, -0.0918953f, 0.0902932f, 0.0467749f, -0.00621833f, -0.0903459f, 0.186926f, -0.00039472f, -0.0259989f, 0.0783119f, -0.042534f, 0.215926f, 0.0965445f, 0.12098f, -0.0839443f, -0.0667839f, 0.163285f, 0.0395507f, 0.162628f, 0.0585461f, 0.0800772f, 0.212197f, 0.12528f, -0.223154f, 0.107762f, 0.145602f, 0.456506f, 0.0179339f, 0.250854f, -0.0810258f, 0.286478f, -0.222802f, 0.233478f, -0.151214f, 0.106238f, -0.0293863f, 0.158757f, -0.106969f, 0.0623353f, 0.0613231f, -0.195503f, -0.063429f, -0.437771f, -0.000534805f, 0.162869f, 0.168638f, -0.052143f, 0.176157f, 0.213678f, -0.247235f, -0.0893308f, 0.152861f, 0.000336537f, 0.339348f, 0.225011f, 0.0203482f, -0.160058f, 0.488881f, -0.20454f, 0.166462f, 0.00362215f, 0.231823f, 0.029677f, 0.108874f, 0.108483f, -0.373634f, -0.0598272f, 0.014483f, -0.0458149f, -0.100886f, 0.0769476f, -0.248573f, 0.0777195f, -0.167846f, -0.00647958f, -0.518774f, 0.0129852f, -0.193443f, 0.095585f, -0.0166189f, 0.33796f, -0.105717f, 0.264887f, 0.14487f, -0.279174f, -0.100932f, -0.197915f, -0.0108937f, 0.111626f, 0.199351f, -0.175863f, 0.0949413f, 0.0559241f, -0.161725f, -0.0733558f, 0.120563f, -0.238592f, -0.176971f, 0.210153f, -0.0585696f, -0.399517f, 0.0162901f, -0.149515f, 0.733276f, 0.193254f, 0.0962554f, -0.0427208f, -0.430693f, 0.0589916f, -0.0103642f, -0.216882f, -0.24326f, -0.120194f, 0.0294264f, 0.00550552f, 0.0405278f, -0.0812524f, 0.0401351f, -0.0489547f, 0.00637494f, 0.0824973f, 0.0130646f, -0.00663252f, 0.0683121f, -0.179022f, 0.00282102f, -0.0349031f, -0.0273978f, -0.0273364f, -0.0127886f, -0.076215f, -0.119346f, -0.0320238f, 0.0791878f, 0.203465f, -0.131939f, -0.0518493f, 0.0874591f, 0.0202136f, -0.38524f, 0.0343551f, 0.109279f, 0.18277f, -0.306352f, -0.0952819f, 0.213221f, -0.425617f, 0.208708f, -0.125334f, -0.042471f, 0.0776871f, -0.0403078f, -0.0676745f, 0.0199275f, -0.183478f, -0.0769372f, -0.202255f, -0.103242f, -0.186987f, 0.0234087f, -0.167436f, -0.20559f, -0.21246f, 0.0408609f, 0.0994809f, 0.308898f, -0.10407f, 0.0804366f, -0.143496f, -0.0976051f, 0.0771549f, 0.0874504f, 0.0660832f, 0.400231f, -0.0107677f, -0.0201709f, -0.00538637f, -0.14317f, 0.098519f, 0.0432682f, -0.161831f, -0.0702254f, 0.237993f, -0.240798f, 0.0160579f, -0.0558574f, -0.155444f, -0.0860663f, -0.247103f, 0.505568f, -0.218629f, 0.0653454f, 0.169408f, -0.134756f, 0.152116f, 0.442444f, 0.0330443f, -0.0523724f, -0.054462f, -0.161614f, -0.261135f, -0.268574f, -0.139154f, -0.260528f, -0.120727f, 0.00851199f, -0.225665f, 0.127361f, -0.00853388f, -0.067299f, 0.260902f, -0.0950226f, -0.11589f, 0.0530933f, -0.0651117f, 0.133556f, 0.0623896f, 0.035837f, 0.155237f, -0.00146263f, 0.0291835f, -0.0617668f, 0.0308919f, 0.0810174f, -0.162716f, 0.122673f, 0.264901f, 0.622652f, 0.0293035f, -0.0149803f, 0.0276966f, -0.23522f, -0.123944f, -0.200096f, -0.1039f, 0.0265614f, -0.0836676f, 0.0183848f, 0.0530677f, 0.13569f, -0.0809946f, 0.0776043f, 0.0289518f, 0.134563f, -0.103627f, -0.100072f, 0.255256f, 0.428188f, 0.0617244f, 0.257458f, -0.628378f, 0.0415636f, 0.15629f, -0.107231f, 0.179781f, 0.201172f, 0.0335359f, 0.0465878f, -0.0498732f, -0.100048f, -0.0499932f, -0.0951436f, -0.063815f, -0.246376f, -0.0641019f, -0.0350241f, 0.104874f, -0.269073f, 0.147352f, -0.100923f, 0.157069f, -0.0797751f, 0.197304f, 0.0802936f, -0.0341514f, -0.0377764f, 0.00532455f, 0.175162f, 0.011831f, -0.0855573f, 0.111826f, -0.442905f, -0.187462f, -0.175206f, -0.0293114f, 0.161544f, 0.0552197f, 0.0229786f, -0.365402f, 0.206905f, 0.163312f, 0.00418296f, -0.212338f, -0.0520069f, -0.195449f, 0.392468f, -0.157212f, -0.0543471f, 0.00612081f, 0.0171858f, 0.180462f, -0.0633955f, 0.0313822f, -0.233804f, 0.147923f, 0.433054f, -0.285436f, 0.0662613f, -0.218327f, -0.154803f, -0.00732503f, -0.00560969f, 0.110964f, 0.352078f, -0.480824f, 0.380461f, -0.102322f, -0.0700391f, -0.126942f, 0.0973346f, 0.305297f, -0.0321992f, -0.257191f, -0.108615f, -0.00894062f, -0.0912208f, 0.103793f, 0.401799f, 0.0178356f, -0.0625159f, 0.0260217f, -0.574657f, -0.0530985f, 0.0222937f, 0.0283881f, -0.0213896f, -0.12484f, -0.0667189f, -0.124614f, 0.111963f, 0.173098f, -0.0162587f, -0.0478848f, -0.0419949f, -0.0132137f, -0.0270728f, 0.099845f, 0.0511251f, -0.00157408f, -0.228143f, -0.058181f, -0.0227875f, 0.0613335f, 0.106632f, -0.172916f, 0.109895f, 0.098608f, -0.00825123f, -0.13266f, -0.284088f, 0.0689f, 0.050195f, -0.075029f, -0.403299f, 0.00851017f, 0.0146457f, 0.138503f, 0.232894f, -0.160556f, -0.245191f, 0.0852165f, 0.105079f, -0.0262715f, 0.0168391f, 0.115025f, 0.171222f, 0.0533667f, -0.0231577f, 0.0297713f, 0.0033973f, 0.0602714f, 0.273466f, -0.0939838f, 0.021778f, 0.0437494f, -0.0221476f, 0.125923f, 0.476835f, 0.0565703f, 0.125948f, 0.153683f, -0.0984985f, -0.086652f, 0.00239828f, 0.266792f, -0.0170875f, 0.283129f, 0.301988f, 0.114729f, 0.286462f, 0.139808f, -0.214992f, -0.370349f, -0.267869f, 0.332746f, 0.216328f, -0.0491584f, -0.333715f, 0.131333f, -0.288929f, -0.0272452f, -0.35606f, 0.168551f, -0.0236755f, -0.360626f, -0.725375f, -0.0843553f, 0.189956f, -0.099322f, 0.465565f, -0.0401153f, -0.098919f, 0.179915f, 0.350419f, -0.0728035f, 0.335099f, -0.167778f, -0.43889f, -0.0460783f, -0.073072f, -0.00816967f, -0.253568f, 0.0225507f, 0.0540864f, -0.193796f, -0.190314f, 0.469408f, -0.0464557f, -0.191024f, -0.0168875f, 0.128583f, -0.155378f, 0.617388f, -0.0751889f, -0.198993f, 0.0919344f, 0.390907f, -0.17043f, 0.111637f, -0.0860929f, -0.57045f, 0.108563f, 0.192771f, -0.0734868f, -0.0374589f, -0.000393409f, 0.130951f, 0.0506631f, 0.0716793f, -0.277701f, 0.0964069f, -0.125347f, 0.297649f, -0.19292f, -0.410269f, 0.373155f, 0.185411f, -0.0150473f, 0.43522f, 0.0663081f, 0.139971f, -0.578405f, 0.00244649f, 0.139626f, -0.237192f, 0.323142f, 0.284569f, -0.0308989f, 0.156165f, 0.168623f, 0.129361f, -0.273174f, -0.244493f, -0.165619f, -0.053782f, 0.085066f, 0.166781f, 0.592791f, -0.113732f, 0.238153f, -0.195248f, 0.299753f, 0.151721f, 0.0895861f, -0.416747f, -0.48231f, -0.0864794f, -0.290134f, -0.854786f, 0.043371f, 0.0348096f, -0.317797f, -0.195994f, 0.0441134f, 0.0854218f, -0.139765f, -0.519656f, 0.125842f, 0.0708613f, 0.148538f, 0.023713f, -0.0336281f, 0.375735f, 0.0461081f, 0.00182428f, -0.297103f, -0.390848f, -0.0462637f, 0.118297f, -0.125625f, 0.100829f, 0.0968214f, -0.21034f, -0.199216f, 0.241105f, -0.416202f, 0.04662f, -0.217136f, 0.220352f, -0.0879237f, -1.01921f, -0.471378f, -0.419665f, -0.298564f, 0.219341f, -0.401424f, 0.411495f, 0.117967f, 0.18423f, 0.170511f, 0.12121f, -0.164519f, 0.0320675f, -0.103215f, 0.514713f, 0.107755f, -0.264157f, 0.0020053f, 0.035195f, -0.1499f, -0.443961f, -0.201063f, -0.0170636f, -0.230425f, 0.024357f, 0.494914f, 0.301452f, 0.0610195f, 0.174152f, -0.0691813f, 0.0989354f, 0.0840198f, -0.180941f, 0.240225f, 0.13592f, -0.0932349f, -0.0803155f, -0.250676f, 0.0904779f, 0.0127132f, -0.0685077f, 0.111999f, -0.230033f, 0.0271863f, -0.00521243f, -0.0568866f, 0.0562361f, 0.0767401f, 0.0369822f, 0.0833809f, -0.0162613f, 0.175772f, -0.0102592f, -0.212172f, -0.0705449f, -0.0025381f, -0.0684261f, 0.0379566f, -0.204754f, -0.484377f, -0.176701f, 0.113349f, 0.124767f, -0.433971f, 0.356637f, -0.172554f, 0.0935165f, -0.371984f, -0.205637f, -0.00808296f, 0.0433747f, -0.134103f, -0.0181152f, 0.289958f, 0.196274f, 0.0606438f, 0.328074f, 0.204039f, -0.306713f, -0.30935f, 0.118879f, 0.144537f, -0.443847f, -0.222681f, -0.117174f, 0.109275f, -0.0963723f, 0.120544f, -0.0327359f, -0.173178f, -0.188993f, 0.0597419f, -0.303694f, -0.110415f, -0.0830144f, 0.131662f, 0.0820229f, 0.490274f, 0.183406f, 0.144465f, 0.0525826f, 0.102197f, -0.182471f, 0.206457f, 0.576408f, -0.257504f, 0.00411544f, 0.0379316f, -0.232768f, 0.0893065f, 0.140366f, -0.157782f, 0.105297f, 0.118859f, 0.520123f, 0.0118877f, 0.36095f, -0.299847f, -0.102449f, 0.0763891f, 0.0431548f, -0.367023f, -0.0244233f, -0.114919f, 0.0803245f, -0.0268541f, 0.0603482f, 0.0152392f, -0.0206518f, -0.0574776f, -0.0161024f, 0.210578f, -0.0200731f, -0.0152114f, 0.122413f, 0.010361f, 0.425108f, -0.0330303f, 0.123289f, 0.0714884f, 0.334209f, -0.035477f, -0.0859245f, 0.0585902f, 0.0848874f, 0.107325f, 0.0325182f, -0.273253f, -0.000165585f, 0.247736f, 0.0303136f, 0.018236f, 0.355533f, 0.655321f, -0.155836f, -0.0231824f, 0.0656354f, 0.0485651f, -0.142885f, 0.274222f, 0.0701947f, -0.137153f, -0.191621f, -0.224266f, 0.100138f, 0.168326f, -0.0951919f, 0.455058f, -0.0568728f, 0.0717376f, -0.0402654f, 0.143702f, 0.0379073f, -0.0700151f, 0.0472715f, -0.0735024f, -0.140067f, -0.141769f, -0.185655f, -0.118691f, -0.135478f, 0.219451f, -0.330001f, 0.189317f, 0.00150253f, 0.191501f, -0.116954f, 0.342857f, -0.172982f, 0.0551407f, 0.00872368f, -0.160394f, 0.10796f, 0.0607818f, 0.130304f, 0.121486f, -0.00118968f, -0.153624f, -0.248966f, 0.0543196f, 0.221722f, -0.149484f, -0.0469482f, -0.258857f, -0.523562f, 0.0745643f, -0.0580291f, -0.254545f, 0.00854766f, -0.194146f, 0.239912f, 0.158081f, 0.730888f, 0.100581f, 0.145688f, 0.0924454f, -0.100753f, -0.468807f, -0.055694f, -0.271712f, -0.228135f, -0.0865436f, -0.0147005f, 0.00288001f, 0.0217037f, 0.306937f, -0.170724f, 0.069359f, 0.0599817f, -0.0225002f, -0.0549755f, 0.153251f, -0.138869f, -0.0984758f, -0.270689f, -0.0957897f, 0.0530979f, 0.229843f, -0.211157f, -0.0203591f, -0.173766f, -0.0898533f, 0.0493408f, -0.00400483f, -0.154215f, -0.0375802f, 0.0500884f, -0.0192403f, 0.36753f, -0.506927f, 0.119958f, -0.000646276f, 0.193737f, 0.0474513f, -0.0429557f, -0.251322f, -0.397706f, 0.0335462f, 0.171176f, -0.0429123f, 0.00711239f, -0.245999f, -0.0861772f, -0.250411f, 0.166334f, -0.189757f, 0.0044825f, -0.246351f, 0.0065946f, -0.00590935f, 0.0931428f, -0.0172438f, 0.0808882f, -0.0707375f, 0.0280889f, 0.150932f, -0.110407f, -0.0107795f, -0.0276179f, 0.153902f, -0.217384f, -0.392626f, 0.131351f, 0.0708754f, 0.584152f, -0.103091f, 0.0999275f, 0.341494f, 0.133071f, 0.0504662f, -0.115208f, -0.0924479f, 0.0806461f, 0.125188f, 0.1155f, -0.00804337f, -0.245754f, -0.0917126f, -0.291402f, 0.117877f, 0.0740694f, 0.0490337f, -0.0331473f, 0.0173532f, 0.0440515f, -0.0153782f, -0.0839477f, 0.301453f, 0.317748f, -0.0363549f, -0.0415339f, -0.193528f, 0.353909f, -0.0719788f, -0.0845451f, 0.119802f, 0.00534836f, -0.138418f, -0.455711f, 0.0125319f, -0.0514694f, 0.17639f, 0.308735f, -0.443552f, 0.306715f, -0.585671f, -0.450453f, -0.240759f, 0.485081f, 0.0413382f, -0.238631f, 0.142336f, 0.377742f, 0.245773f, 0.502474f, -0.00170065f, -0.0887479f, 0.101216f, -0.362334f, -0.386087f, -0.2402f, -0.506511f, 0.510718f, -0.0165522f, -0.535392f, -0.0299863f, -0.283517f, -0.138988f, 0.0594183f, -0.327056f, -0.120543f, 0.338391f, 0.373494f, -0.161187f, -0.181481f, -0.139439f, 0.0544327f, 0.324693f, 0.0412515f, 0.350893f, -0.231155f, -0.0563032f, -0.0176908f, 0.0372451f, 0.118021f, 0.0972486f, 0.0867307f, -0.0554093f, -0.450301f, 0.233671f, -0.143497f, 0.247334f, 0.166797f, -0.111041f, -0.213949f, -0.0597387f, 0.404319f, 0.331154f, 0.101213f, -0.28303f, 0.263716f, -0.0687931f, -0.0569533f, -0.190705f, -0.0182288f, -0.198934f, 0.0040445f, 0.00429904f, -0.031425f, -0.392012f, 0.160971f, 0.219041f, -0.105838f, 0.0632451f, 0.11766f, -0.000627069f, 0.0420757f, -0.109974f, 0.0132862f, -0.188299f, -0.161483f, -0.312023f, -0.0980177f, 0.275298f, 0.122688f, -0.0788809f, 0.403657f, 0.384505f, 0.117898f, -0.628058f, -0.0703106f, -0.0628721f, -0.00408938f, -0.0083951f, -0.102394f, 0.216116f, 0.163785f, -0.0971811f, 0.21634f, 0.00192297f, 0.0465461f, -0.369644f, -0.0819747f, 0.0210939f, -0.00805185f, -0.0935382f, 0.0436116f, 0.211411f, 0.0950514f, 0.00824929f, 0.0259953f, -0.138318f, 0.0816087f, -0.0636539f, -0.193328f, -0.101188f, -0.0390141f, 0.188294f, 0.123596f, -0.0785077f, 0.0293045f, -0.250537f, -0.0767218f, 0.249053f, 0.0488775f, 0.0506405f, 0.146414f, 0.116813f, 0.112397f, -0.246548f, -0.0379897f, -0.0580187f, 0.0882757f, -0.169168f, -0.131839f, -0.060659f, -0.322893f, -0.12243f, -0.0442648f, -0.0575565f, -0.155145f, -0.169939f, 0.084148f, 0.155142f, 0.0695911f, -0.448134f, 0.0158928f, -0.14806f, 0.575689f, -0.355723f, -0.0574311f, 0.0774732f, -0.125322f, -0.576069f, 0.095021f, 0.107333f, -0.283788f, 0.327959f, -0.0618863f, 0.158489f, -0.100823f, -0.0451774f, 0.0129761f, 0.0426199f, 0.379607f, -0.0485871f, 0.18268f, 0.10157f, -0.183807f, 0.3141f, -0.089649f, -0.23006f, -0.364077f, 0.183571f, -0.118238f, 0.212001f, 0.304025f, 0.229892f, -0.0525288f, 0.0939146f, 0.135485f, -0.270406f, 0.488248f, -0.0211379f, -0.0180463f, -0.477648f, -0.159035f, -0.145722f, 0.359647f, 0.165182f, -0.0178689f, -0.209324f, 0.292899f, 0.142587f, 0.137808f, 0.00725273f, -0.0335278f, 0.0593177f, -0.269081f, 0.149916f, -0.0235668f, -0.0303037f, 0.237403f, 0.0507888f, -0.105888f, 0.22924f, -0.00219679f, 0.100342f, -0.0441304f, 0.161892f, -0.374979f, -0.0329623f, -0.363005f, -0.219352f, 0.0956596f, 0.0307884f, 0.144044f, -0.282871f, 0.0812821f, -0.0538441f, -0.272613f, -0.14276f, 0.190644f, 0.035152f, 0.329919f, -0.04626f, 0.0979622f, -0.0379722f, -0.126893f, -0.018698f, 0.20909f, 0.0920407f, 0.0768623f, -0.36094f, -0.157366f, 0.0533168f, -0.0779124f, 0.0754181f, -0.0234426f, 0.163337f, 0.269631f, 0.180782f, 0.10311f, 0.215272f, -0.0990028f, 0.2829f, -0.115266f, 0.289269f, 0.239641f, 0.464399f, -0.067501f, 0.197496f, 0.0408898f, -0.0775026f, -0.237657f, 0.0962214f, -0.0520975f, -0.04112f, -0.0181152f, -0.083583f, 0.0140577f, 0.266622f, 0.00708733f, -0.257253f, 0.0345119f, -0.056309f, 0.0519413f, 0.0630056f, 0.0536268f, 0.0898734f, 0.230267f, 0.254725f, 0.179191f, -0.203525f, 0.118267f, -0.0189303f, 0.169791f, 0.205763f, 0.18704f, 0.161561f, 0.0658595f, -0.238124f, -0.0361001f, -0.197071f, 0.00676697f, -0.302221f, 0.00824857f, -0.192857f, 0.343623f, -0.120478f, 0.00117305f, -0.10361f, -0.162209f, 0.0553154f, 0.0146206f, 0.133987f, 0.0640391f, -0.16865f, -0.0641878f, -0.00568029f, -0.0798949f, -0.130361f, -0.0750307f, 0.0906f, -0.125012f, -0.094468f, 0.04067f, -0.00845329f, -0.0577425f, 0.00533801f, -0.48692f, 0.138822f, -0.00680835f, -0.495978f, 0.0158211f, 0.00275455f, 0.031051f, 0.0748098f, -0.10255f, 0.0257098f, 0.206749f, 0.137808f, -0.135568f, -0.0602586f, 0.147926f, 0.0971592f, -0.0201793f, 0.136898f, 0.00192116f, -0.135631f, -0.0592708f, -0.0366413f, -0.0944906f, -0.0844936f, 0.181266f, 0.0795452f, 0.0208962f, 0.165888f, -0.200143f, 0.152541f, 0.230305f, -0.0833206f, -0.0828203f, 0.100395f, 0.0242936f, 0.240959f, 0.179519f, -0.0424647f, -0.0683156f, -0.259318f, 0.0127407f, 0.233799f, 0.0152458f, 0.00187588f, -0.00218874f, -0.0243817f, -0.0107161f, 0.106396f, 0.27461f, -0.0267821f, 0.502048f, -0.253876f, -0.130148f, -0.167822f, 0.171898f, -0.121099f, 0.216535f, 0.162745f, -0.110734f, 0.312634f, -0.206198f, -0.193185f, -0.0144633f, 0.0401802f, -0.167754f, 0.0847814f, 0.151308f, -0.240723f, 0.0464372f, -0.0392448f, -0.153111f, 0.0188352f, -0.0527162f, 0.162905f, 0.0765951f, -0.0216512f, 0.342439f, 0.018593f, -0.0480509f, -0.0571228f, 0.0755635f, -0.0298298f, -0.0104892f, 0.00420597f, 0.00199922f, -0.089508f, 0.167388f, 0.203988f, -0.0485087f, 0.25784f, 0.0989737f, 0.0509496f, 0.0166028f, -0.0370848f, -0.224752f, 0.0573888f, -0.0364284f, 0.0920127f, -0.564485f, -0.327708f, 0.0585026f, -0.0474918f, 0.0305782f, -0.189141f, 0.188792f, -0.0314893f, 0.252942f, -0.546195f, 0.0285932f, 0.0831944f, -0.253832f, -0.0162793f, 0.233809f, 0.341407f, -0.187253f, 0.401542f, 0.0311792f, -0.196298f, 0.396473f, -0.0960423f, 0.185661f, -0.0618549f, -0.0747246f, 0.0481055f, 0.020522f, -0.079515f, 0.731868f, 0.239404f, -0.0663238f, -0.0906305f, 0.0675802f, -0.110671f, -0.0646847f, 0.125607f, -0.163625f, -0.152005f, 0.190713f, 0.0544485f, -0.229754f, -0.0550752f, 0.0707444f, 0.154144f, 0.0249514f, -0.0722245f, 0.018167f, -0.105112f, -0.227773f, 0.378487f, -0.105096f, -0.467315f, 0.406721f, 0.142437f, -0.0929098f, -0.00886579f, 0.314021f, -0.052604f, 0.112799f, 0.296614f, -0.00695589f, 0.147808f, -0.389149f, 0.0848655f, -0.00668585f, -0.542418f, 0.0586589f, 0.00466591f, 0.0184256f, 0.201032f, 0.0868153f, -0.0958762f, -0.0141481f, 0.0920566f, -0.0224625f, 0.136269f, 0.0835742f, 0.442154f, -0.0401789f, -0.0301299f, 0.108178f, -0.0340601f, 0.0672586f, 0.0269504f, -0.0188959f, 0.0270593f, -0.204316f, -0.0069391f, 0.0206735f, -0.187553f, 0.0201785f, 0.0541869f, -0.000491292f, -0.194229f, 0.0682159f, 0.101251f, 0.139473f, -0.443396f, 0.137837f, 0.206418f, -0.103373f, -0.0976873f, 0.118207f, 0.00720322f, -0.218422f, 0.16397f, 0.251114f, -0.0838023f, -0.0623409f, -0.235295f, -0.0164127f, -0.242061f, 0.138756f, -0.233953f, 0.0525693f, 0.0793695f, 0.0719958f, -0.0581957f, -0.0991127f, 0.209288f, 0.00312931f, 0.0496932f, -0.114726f, -0.0382042f, -0.200309f, -0.254679f, -0.213574f, -0.0488561f, -0.277954f, -0.539807f, 0.150107f, 0.263617f, 0.240065f, 0.0673259f, -0.0359163f, -0.302324f, -0.408359f, 0.0724617f, 0.422352f, -0.145955f, 0.153127f, -0.105668f, 0.109493f, 0.146795f, -0.0560318f, 0.0899286f, 0.0255524f, 0.124993f, 0.0606857f, -0.308228f, -0.177742f, -0.06542f, 0.236233f, -0.405918f, -0.569239f, 0.107825f, 0.0227379f, -0.0248394f, -0.0997978f, 0.362751f, -0.0642983f, -0.675044f, 0.204085f, 0.114303f, -0.00597271f, 0.0748467f, 0.145918f, 0.0753003f, -0.226527f, 0.102618f, -0.240838f, 0.0965099f, 0.103902f, 0.435111f, -0.018702f, 0.147894f, 0.0321385f, -0.086537f, 0.109913f, 0.258748f, 0.113366f, 0.0485521f, 0.110745f, -0.0855656f, 0.0451188f, -0.177116f, 0.0186223f, 0.00883269f, -0.118574f, -0.0190765f, 0.306114f, -0.0814473f, 0.682112f, -0.357302f, -0.109318f, -0.0540897f, -0.049006f, 0.0623989f, 0.0613997f, -0.103602f, 0.303432f, -0.102964f, 0.0381764f, -0.10953f, -0.375024f, 0.0438955f, 0.0380358f, -0.218282f, -0.128058f, 0.0306396f, 0.242777f, -0.054738f, 0.139651f, 0.0411378f, 0.367469f, 0.123885f, -0.0535516f, 0.329106f, 0.0157139f, -0.135372f, 0.187973f, 0.172713f, 0.0854109f, 0.284575f, 0.098901f, -0.506149f, 0.00490871f, 0.00265327f, 0.0156081f, 0.0156622f, -0.12215f, 0.0804569f, 0.102524f, 0.0140774f, 0.0283924f, 0.00642393f, 0.122732f, 0.0830923f, -0.00700162f, -0.122077f, -0.0938638f, -0.14481f, -0.00327738f, 0.0129674f, -0.0418157f, 0.0278388f, 0.13134f, 0.0997984f, -0.14326f, -0.140731f, -0.072463f, -0.215224f, 0.272592f, -0.149146f, -0.176575f, 0.0732286f, 0.445227f, 0.298863f, 0.297613f, -0.00853303f, -0.174647f, 0.0511974f, -0.318012f, -0.404986f, 0.157769f, 0.104544f, -0.00479628f, -0.653413f, 0.00787902f, -0.184517f, 0.576153f, -0.181448f, 0.0352743f, 0.074666f, -0.207863f, -0.153211f, 0.0431337f, 0.102475f, 0.328978f, 0.0420489f, 0.0588942f, 0.169342f, -0.134215f, 0.175159f, 0.311267f, -0.131548f, 0.0945067f, 0.59956f, 0.0122496f, -0.430799f, -0.105123f, -0.120431f, -0.28188f, 0.0344129f, -0.0341775f, -0.157076f, -0.023756f, 0.16346f, 0.213895f, -0.0261465f, -0.0696384f, 0.133955f, 0.0753746f, -0.236123f, -0.198058f, 0.0797279f, 0.0580127f, 0.0562793f, 0.643326f, 0.123117f, -0.177904f, 0.207794f, -0.0657324f, -0.409818f, 0.0235809f, -0.214754f, -0.155564f, -0.379356f, 0.227012f, 0.151938f, 0.00421705f, 0.0118318f, 0.0369196f, -0.160515f, -0.192867f, -0.00229354f, -0.125144f, -0.0465431f, 0.0333213f, 0.27706f, -0.136167f, 0.0884796f, 0.206673f, -0.0199367f, -0.0288111f, 0.0858743f, -0.113611f, 0.017551f, -0.16769f, 0.19548f, -0.166821f, 0.0632462f, 0.0905999f, -0.00703812f, -0.129992f, -0.0225512f, -0.0372745f, -0.374784f, 0.0711692f, -0.162312f, -0.227083f, -0.0948424f, 0.294436f, -0.377703f, 0.187445f, 0.0450708f, -0.121918f, -0.221976f, 0.266264f, 0.760707f, 0.276712f, 0.0778195f, -0.173193f, -0.106867f, -0.0404768f, 0.29611f, 0.210955f, -0.0984763f, 0.216864f, -0.279046f, -0.246963f, -0.0993205f, -0.25159f, 0.0640906f, -0.0257914f, -0.083832f, 0.184854f, -0.00388318f, 0.348872f, 0.474971f, 0.220421f, 0.23439f, -0.0411108f, 0.290154f, 0.104659f, -0.674154f, 0.00744323f, -0.0114469f, -0.0788668f, 0.00477007f, 0.0127763f, 0.148704f, 0.159068f, 0.0852831f, 0.109397f, -0.0144301f, -0.00839578f, -0.228631f, -0.0860425f, -0.00712707f, 0.0605364f, -0.108644f, 0.13987f, 0.154145f, 0.0751164f, -0.0519113f, 0.076631f, -0.0325217f, 0.113175f, -0.258345f, -0.141848f, -0.0483098f, 0.0129462f, -0.0185535f, 0.209674f, -0.0467118f, -0.125889f, -0.466165f, -0.0141842f, -0.300665f, -0.186072f, 0.0504876f, 0.00386082f, -0.133375f, -0.0376487f, -0.264937f, -0.0902597f, -0.0147385f, 0.0103155f, -0.00609632f, -0.0253799f, -0.0331127f, 0.12386f, -0.0413067f, 0.0843054f, -0.0117784f, 0.101228f, 0.0470487f, 0.0893185f, -0.0579749f, -0.213974f, -0.00602555f, -0.0805018f, -0.44034f, 0.00605171f, 0.0386055f, -0.0857668f, -0.304715f, 0.284527f, -0.419375f, -0.117945f, -0.0470768f, 0.0151279f, 0.170693f, -0.0217155f, -0.333327f, -0.0839482f, 0.0234347f, 0.251938f, 0.0382008f, 0.00235032f, 0.194188f, -0.0476025f, -0.282634f, 0.232335f, -0.0313266f, -0.0110514f, -0.110881f, -0.124201f, -0.0373232f, -0.0282327f, 0.164861f, -0.0528263f, 0.0777684f, 0.326109f, -0.105484f, -0.24408f, -0.410909f, 0.0717016f, 0.135132f, -0.00822586f, 0.0889986f, -0.0119163f, 0.230042f, 0.00530912f, 0.0497986f, -0.007115f, -0.179339f, -0.0426337f, 0.0668293f, 0.00693628f, -0.133157f, 0.138257f, 0.182548f, -0.119799f, -0.137384f, -0.218032f, -0.0152216f, 0.165163f, 0.321425f, -0.0719261f, -0.0535362f, 0.185841f, -0.0163248f, 0.108122f, -0.0959411f, -0.0373172f, -0.27448f, 0.0348898f, -0.166013f, 0.161812f, -0.132425f, -0.0289209f, -0.421644f, -0.101874f, -0.16141f, -0.04274f, 0.0480453f, -0.039021f, 0.0586788f, -0.234885f, -0.242403f, 0.038919f, 0.0356198f, -0.0550768f, 0.0246057f, 0.0862557f, -0.308566f, -0.147416f, -0.00985985f, -0.0104814f, -0.0177572f, -0.0412027f, 0.0242443f, -0.19507f, 0.32785f, 0.0788004f, -0.161331f, 0.17678f, -0.0810699f, -0.1546f, 0.125857f, -0.124981f, -0.0106987f, 0.207272f, -0.604753f, -0.0415389f, -0.340852f, 0.00408712f, -0.214965f, -0.0748281f, 0.0404589f, 0.285116f, 0.0144081f, -0.162631f, -0.0215861f, -0.153888f, 0.387294f, -0.00764126f, 0.0608081f, 0.47267f, 0.0546126f, -0.0603822f, -0.368747f, -0.193413f, 0.413439f, 0.250573f, -0.0919951f, -0.205062f, -0.378597f, -0.103693f, -0.0364686f, 0.024476f, -0.136754f, 0.0202888f, -0.0178216f, 0.125527f, -0.597289f, 0.261673f, -0.191381f, 0.0123846f, 0.267765f, -0.0545825f, -0.112335f, 0.257105f, -0.1548f, 0.000756895f, -0.000135195f, -0.0493844f, 0.0711406f, 0.201368f, -0.126064f, 0.476796f, -0.133337f, 0.313014f, -0.176392f, 0.0668156f, 0.183926f, 0.0512879f, 0.0928857f, 0.41671f, -0.0552113f, -0.333994f, -0.269322f, 0.367407f, -0.0710696f, 0.213496f, 0.130636f, 0.0498f, 0.590488f, -0.168079f, 0.056651f, -0.0263843f, 0.129157f, -0.116934f, 0.18456f, 0.164398f, 0.0416276f, 0.0862844f, -0.0460175f, -0.0476335f, -0.266252f, -0.154253f, 0.0745028f, -0.31326f, 0.107256f, 0.0455637f, -0.142944f, 0.0386776f, -0.0196847f, -0.000644906f, 0.0109701f, -0.00890023f, 0.0802168f, -0.126913f, -0.10912f, -0.0567636f, -0.107934f, 0.179347f, 0.241797f, 0.638128f, -0.130217f, 0.197146f, -0.211336f, -0.0737465f, 0.111125f, -0.111334f, 0.178715f, 0.595705f, -0.00355858f, -0.280972f, 0.288604f, -0.246517f, 0.104765f, 0.23599f, 0.0626923f, 0.431966f, -0.0706402f, 0.444929f, -0.0391279f, 0.214596f, 0.0142286f, -0.127732f, 0.101488f, 0.167395f, 0.189494f, 0.111607f, 0.0246908f, 0.0359995f, 0.120173f, -0.045409f, 0.256838f, -0.0781464f, 0.00970439f, -0.0484562f, 0.247528f, 0.0649018f, -0.158475f, 0.139769f, -0.0900704f, -0.371826f, 0.0790552f, -0.37067f, -0.208308f, -0.211739f, -0.282507f, -0.270256f, 0.205481f, -0.503264f, 0.270588f, -0.0385014f, -0.26717f, 0.128288f, 0.362188f, 0.19137f, -0.247913f, -0.153628f, -0.167465f, 0.814905f, -0.0979974f, 0.0865845f, 0.386866f, -0.37493f, -0.129166f, 0.120307f, 0.435242f, -0.218038f, 0.0716689f, -0.34914f, -0.152382f, 0.062478f, -0.114676f, -0.23435f, 0.0159545f, 0.171189f, -0.00842011f, 0.131103f, -0.262238f, -0.215891f, -0.102031f, 0.0864728f, 0.0985599f, 0.164302f, -0.0653579f, 0.320503f, -0.556148f, 0.536547f, -0.0820048f, 0.14663f, 0.397948f, 0.0787573f, -0.748766f, -0.129899f, -0.474231f, 0.123753f, 0.27761f, 0.0410578f, -0.543769f, 0.339079f, 0.0367555f, -0.2571f, -0.0964757f, -0.0154511f, 0.00377123f, -0.113003f, 0.0291767f, -0.257889f, 0.124925f, 0.0266814f, 0.114631f, 0.256503f, -0.0293197f, 0.0422625f, -0.00998103f, 0.0881326f, 0.104533f, -0.125819f, -0.243805f, -0.0148122f, 0.51277f, -0.197339f, 0.257117f, 0.144041f, 0.245811f, -0.160956f, 0.305854f, 0.0214668f, 0.308474f};
+ model->setOperandValue(op50, op50_init, sizeof(float) * 2048);
+ static float op52_init[] = {2.09374f, -0.224081f, -0.26393f, -0.213004f, 0.148951f, 1.95099f, 0.00966659f, 0.00670771f, 0.751565f, 0.15019f, -0.259461f, -0.210099f, 0.114971f, 0.522198f, 0.00564572f, 0.242789f, 1.04283f, 0.983166f, -0.110847f, -0.112012f, -0.707376f, 0.0605569f, 0.967749f, 1.54696f, 2.39179f, -0.0660475f, -1.02395f, 0.663784f, 0.0684345f, 0.835432f, -0.0555699f, -0.595563f, 1.63423f, -0.275387f, -0.57632f, -0.448239f, 1.57884f, -0.854438f, -0.00365815f, 0.157436f, -0.458565f, 0.175284f, -0.240444f, -0.955042f, -0.158954f, 0.0995562f, 1.09967f, -0.109549f, 1.181f, -0.130396f, -0.246582f, -0.121111f, -0.0830782f, -0.801972f, -0.0843711f, -0.0243731f, -0.21979f, 0.114646f, -0.358143f, 0.00306739f, -0.00465024f, 1.03416f, -0.229731f, 1.37862f};
+ model->setOperandValue(op52, op52_init, sizeof(float) * 64);
+ static float op53_init[] = {-0.12698f, -0.238352f, 0.244215f, -0.458646f, 1.27555f, -0.421724f, 0.0884984f, -0.250955f, -0.158853f, -0.176467f, -0.0758706f, -1.31031f, -0.776091f, -0.753093f, -0.0744585f, 0.458402f, -0.386373f, -0.379819f, -0.205575f, -0.434537f, -0.528748f, 0.667563f, 0.197939f, -0.00334295f, -0.674948f, 0.0583558f, 0.349504f, 0.0669012f, -0.62573f, 0.0202494f, -0.851811f, 0.0796548f, -0.349216f, 0.336193f, 0.242802f, 0.410446f, 0.127221f, 0.337145f, -0.671162f, 0.550955f, -0.047319f, 0.60033f, 0.342804f, 0.128321f, -0.329242f, -0.581331f, -0.757822f, 0.260636f, 0.183208f, 0.0755782f, -0.0630638f, -0.328286f, 0.71131f, -0.747697f, -0.114446f, 0.878907f, -0.362007f, 0.567657f, -0.0426601f, -0.120681f, -0.158017f, -0.132928f, -0.0400564f, -0.119035f, -0.347841f, 0.27945f, 0.522869f, -0.318377f, -0.617688f, 0.00215388f, -0.288244f, -0.0643205f, -0.125579f, 0.0714863f, 0.491909f, -1.17593f, -0.790597f, 0.237053f, 1.10418f, 1.01839f, -0.588406f, -0.163287f, -0.00948245f, 0.0295395f, 0.0913539f, -0.597769f, -0.199139f, -0.736147f, -1.13063f, -0.966132f, 0.670015f, -0.384273f, -0.35121f, -0.452121f, 0.139313f, -0.752194f, -0.581573f, 1.20926f, 0.468125f, 0.0024432f, -0.864836f, 1.40619f, 0.248723f, -0.0319902f, 0.243259f, 0.719603f, 1.56375f, 0.582131f, 0.517324f, -0.558173f, -0.486479f, 0.240216f, -0.10745f, -0.600757f, -0.407625f, -0.026077f, 2.22213f, 0.964383f, -0.283648f, 0.242633f, -0.671491f, 0.247282f, 0.246633f, 0.569997f, -0.442304f, 0.711694f, 0.689518f, -0.270639f, -0.0341924f, 0.299518f, -0.221812f, 0.0267754f, -0.701543f, -0.256183f, -0.464542f, 0.533444f, 0.551868f, -0.156954f, -0.522106f, -0.947321f, -0.370692f, 0.302054f, -0.157298f, 0.220857f, -0.485616f, -0.304364f, 0.451741f, 0.226862f, 0.0889601f, -0.72402f, 0.0010362f, -0.0768618f, -0.602799f, -0.202045f, -0.731567f, 0.1843f, -0.019595f, -0.44772f, 1.08144f, -0.0849737f, -0.0383033f, 0.0770167f, 0.00544352f, -0.0513838f, 0.354596f, 0.803038f, 0.14348f, -0.586081f, 0.350211f, 0.445668f, -0.142114f, 0.559075f, -0.197881f, -0.485669f, 0.374767f, -0.529465f, -0.433189f, -0.381117f, 0.303766f, -0.0149781f, 0.259829f, 0.058601f, -0.273908f, -0.600653f, -0.189578f, -0.437372f, -0.0137133f, 0.325366f, -0.269418f, 0.337198f, 0.263951f, -0.216138f, -0.620022f, -0.112354f, 0.262422f, -0.0179674f, 0.942104f, 0.421509f, 0.458286f, -1.16175f, -0.0139678f, -0.103121f, -0.210449f, 1.87519f, 0.0331067f, -0.751383f, 0.222364f, 0.106374f, 0.0638171f, -0.167853f, 0.139778f, 0.38963f, 0.274968f, 0.155153f, -0.34655f, -0.0563739f, -0.261732f, 0.414308f, -0.593183f, -0.306091f, 0.042063f, 0.0501084f, -1.38946f, 0.40545f, -0.226405f, 0.00702765f, -0.194214f, 0.428538f, -0.455647f, 0.72176f, -0.497389f, 1.40647f, -0.173328f, 0.0971494f, 0.144964f, -0.0565212f, -0.0767172f, 0.505409f, 0.466856f, 0.226217f, -0.298469f, 0.587705f, -1.19975f, 0.451319f, -0.245376f, 0.0492834f, -0.227796f, 1.13696f, 0.20848f, 1.05685f, 0.305445f, -0.358505f, -0.297229f, -0.174603f, 0.0937863f, -0.118832f, -0.547926f, -0.233037f, 0.670064f, 0.432594f, 1.08319f, -0.0648255f, -0.242524f, -0.551126f, -0.997542f, -0.612246f, 0.784354f, 0.924871f, 0.0868394f, 0.00189777f, 0.451893f, -0.200028f, -0.456986f, 0.202478f, 0.358685f, 0.479158f, 0.923011f, 2.25015f, -0.577736f, -0.680415f, -0.405968f, 2.08862f, 1.7708f, -0.221745f, -0.668693f, -0.386576f, -0.0936857f, 0.880579f, -0.200297f, -0.182471f, 0.915206f, 0.561029f, -1.09806f, 0.738976f, 1.01242f, -0.84413f, 0.888704f, -0.0140932f, 0.683439f, 0.69737f, 0.909058f, -0.424791f, -0.723923f, 2.54434f, -0.459792f, 0.214831f, 0.538751f, 0.406171f, -0.164808f, 1.96384f, 0.426688f, -0.884862f, 1.96028f, 0.437135f, 1.31552f, 0.295632f, 1.20595f, -0.33993f, 0.41051f, -0.742935f, -0.528444f, -0.256337f, -0.165411f, -0.0731374f, -1.95086f, -1.16248f, -0.510701f, 1.78344f, 0.62322f, -0.397011f, -0.296941f, 0.519863f, 0.145054f, 0.773714f, 0.261809f, -0.121355f, -0.109046f, -0.255428f, -0.124878f, -0.544119f, 0.301598f, -1.87278f, -0.352883f, -0.0320303f, -0.502195f, 0.0743574f, 0.0359745f, 0.0942341f, -0.00728066f, 0.063997f, 0.687835f, 0.0469159f, -0.220356f, 0.361827f, 0.100022f, -0.168349f, -0.177127f, -0.83667f, 0.191707f, -0.584849f, -0.150654f, -0.402803f, -0.255429f, 0.212771f, 0.901497f, -0.422539f, -0.33554f, 0.158121f, -0.0110873f, -0.70106f, 0.84911f, -0.48385f, -0.34909f, -0.756153f, -0.127089f, -0.54675f, 0.233831f, -0.275361f, -0.0572444f, 0.524687f, 0.152529f, 0.0550876f, -0.103777f, -0.17179f, 0.0959539f, 0.336758f, 0.0242661f, 0.209466f, -0.532314f, -0.381342f, 0.881586f, 0.262059f, -0.239896f, -0.112729f, -0.240745f, 0.524678f, 0.635937f, 0.0749855f, -0.404162f, -0.219252f, 0.298954f, -0.362545f, -0.0425563f, 1.14806f, -0.497664f, -0.489604f, -0.541267f, 0.0938686f, -0.0829758f, -0.302335f, -0.354915f, -0.0567779f, 0.548323f, 0.0893113f, -0.171931f, 0.221819f, -0.444963f, -0.13688f, 0.0294968f, 0.61855f, 0.0477813f, -0.647976f, 0.134058f, 1.16525f, -0.0321262f, -0.360732f, -0.268031f, 0.0867808f, -0.28502f, 0.954255f, -0.158386f, -0.695564f, -0.244045f, 0.650121f, -0.532843f, 0.225883f, -1.0656f, 0.730367f, -0.108003f, 0.475861f, 0.427236f, -0.0965219f, 0.131015f, -0.93574f, -0.0239511f, -0.571369f, 0.214945f, 0.668269f, -0.264419f, 0.574199f, 0.209625f, 1.06012f, 0.479062f, -0.550203f, 0.786737f, -0.917411f, -0.802023f, 1.57227f, 0.643995f, -0.626247f, 1.3826f, -0.643308f, -0.296662f, -0.631958f, 0.125903f, -0.561165f, -0.354695f, -0.645927f, 0.529553f, 0.714097f, -0.208208f, -0.307469f, -0.0649088f, -0.672144f, 0.0743959f, -0.580105f, 1.32175f, -0.34053f, 0.213644f, 0.960989f, -0.369211f, -0.700574f, 0.542504f, -0.0307876f, -0.52194f, -1.04995f, 0.166939f, -0.644977f, 0.373263f, -0.293433f, -0.259692f, 0.662439f, -0.339301f, 1.1388f, -0.0593778f, -0.706105f, -0.789209f, 0.808238f, 0.749022f, 1.10028f, -1.14159f, -0.0990618f, 1.79632f, -0.906117f, -0.0451775f, -0.855292f, -0.272456f, -0.144439f, 0.49774f, -0.336441f, 0.198619f, -0.990211f, -0.152451f, 0.780138f, -0.237703f, 0.203953f, -0.109738f, -0.0133946f, -0.343127f, 0.644481f, 0.0697042f, 0.0927609f, 0.102066f, 0.488014f, 0.18753f, 0.160318f, -0.214566f, -0.428027f, 0.085759f, -0.0918024f, 1.19273f, -0.210594f, 0.283777f, -0.176787f, -0.253484f, 0.0706566f, 0.0444775f, -0.0274145f, 0.572465f, -0.245561f, 0.108852f, 0.262295f, 0.43359f, -0.312667f, -0.0226221f, -0.197633f, 0.383403f, -0.0244389f, -0.208731f, 0.202447f, 0.0624711f, -0.616221f, -0.140103f, -0.249181f, -0.389501f, -0.614766f, -0.362506f, 0.2265f, -0.330135f, -1.07509f, 0.146874f, -0.145657f, -0.0291293f, -0.642817f, -0.246684f, -0.630452f, 0.0672653f, 0.269267f, -0.940307f, -0.158987f, -0.305785f, 0.0163865f, 0.376522f, -0.472504f, -0.561235f, -0.436323f};
+ model->setOperandValue(op53, op53_init, sizeof(float) * 576);
+ static float op55_init[] = {1.07345f, -0.394695f, -0.0742894f, -0.383227f, 0.324794f, 0.418869f, 0.934568f, -1.90608f, 0.209722f, -0.224193f, -0.195225f, -0.0252866f, 0.404565f, 0.300348f, 0.357196f, 0.0298129f, 0.337042f, 0.475936f, -0.631903f, 0.0679197f, 0.65726f, 0.140373f, 0.508893f, 0.775208f, 0.445816f, -1.23974f, 0.0313992f, 0.169123f, 0.112667f, -0.581175f, -0.376066f, 0.885236f, 0.215963f, 0.438986f, -0.157146f, 0.0287784f, -0.757865f, 0.0841731f, 1.03121f, -0.271182f, 0.589192f, 0.976112f, 0.145576f, 0.092291f, 1.06837f, 0.119318f, 0.147453f, -0.525313f, 0.302458f, 0.984562f, 0.142083f, -0.513634f, -0.498019f, 1.29289f, -0.676165f, -0.777563f, 0.0133348f, -1.3991f, 0.416201f, 1.29946f, 0.735901f, -0.407577f, 0.0395284f, -0.244576f};
+ model->setOperandValue(op55, op55_init, sizeof(float) * 64);
+ static float op56_init[] = {0.113075f, -0.0541261f, -0.00254935f, 0.0902875f, -0.32416f, -0.010111f, -0.221566f, -0.0446467f, 0.025913f, 0.0487722f, -0.180431f, -0.0793264f, 0.129554f, -0.0131898f, -0.246616f, 0.0261182f, 0.195068f, 0.0110834f, -0.268252f, -0.0556206f, 0.152303f, -0.159758f, 0.00937392f, 0.0980935f, 0.325152f, -0.115004f, -0.350504f, 0.0197425f, -0.11301f, -0.0753603f, -0.175782f, -0.134789f, 0.00631809f, -0.0891922f, -0.239375f, 0.160609f, -0.0435589f, -0.0562327f, -0.350046f, -0.0121122f, -0.140865f, 0.0352316f, -0.0174294f, 0.110653f, -0.139081f, -0.0948299f, -0.0264269f, -0.029115f, 0.137921f, 0.13543f, -0.0189765f, -0.0165422f, -0.0823839f, -0.256189f, -0.121788f, -0.216157f, 0.00363343f, -0.151778f, 0.252971f, -0.173452f, 0.182134f, -0.156715f, 0.14355f, 0.121809f, -0.0304927f, 0.599508f, 0.041677f, 0.097244f, 0.125037f, -0.133955f, 0.173185f, 0.0350644f, -0.145842f, 0.0234546f, -0.0706621f, -0.132305f, -0.0380816f, -0.16649f, -0.105998f, 0.0139125f, -0.0896661f, 0.149856f, 0.132628f, -0.0480307f, 0.138173f, 0.0411969f, 0.148886f, -0.00950225f, -0.0722613f, 0.0126559f, 0.107946f, -0.09147f, 0.0730902f, 0.125814f, 0.281345f, -0.128981f, -0.0151615f, 0.114928f, 0.0109224f, 0.0134429f, 0.0731687f, -0.014135f, 0.357557f, 0.0469398f, 0.0442583f, 0.0772733f, 0.0690856f, 0.17982f, -0.133452f, 0.0745796f, 0.122212f, -0.0208794f, 0.020065f, 0.0295544f, -0.171575f, 0.0622467f, -0.0769533f, -0.00222684f, -0.0404518f, -0.0317308f, -0.331273f, -0.16373f, 0.156179f, 0.00540106f, -0.0322326f, 0.0850205f, 0.0480989f, -0.152385f, 0.0694411f, 0.229565f, -0.0611579f, 0.0585534f, 0.095432f, -0.023594f, 0.079468f, -0.118917f, -0.0132471f, -0.00255374f, 0.0104798f, 0.584729f, 0.14753f, -0.0907179f, -0.163356f, -0.111535f, 0.14899f, -0.0385063f, 0.0277369f, -0.190452f, -0.0012917f, 0.1646f, 0.0322249f, 0.246906f, 0.123279f, -0.0258971f, 0.00786738f, 0.0542629f, 0.0694776f, 0.150078f, -0.16412f, 0.191585f, 0.049951f, -0.159397f, -0.0137556f, 0.174186f, -0.0435317f, -0.307162f, 0.182426f, -0.177937f, -0.115525f, 0.0298391f, -0.368494f, -0.221122f, -0.0168894f, -0.0401771f, 0.109005f, -0.0733102f, -0.025999f, 0.00781864f, 0.00232855f, 0.00959035f, 0.0469935f, -0.299108f, -0.171356f, -0.0674005f, 0.149625f, -0.0230295f, -0.0455517f, 0.0233079f, 0.205671f, 0.0393789f, -0.287905f, 0.141024f, 0.0859168f, -0.179896f, 0.0601555f, -0.121133f, 0.159868f, 0.0623252f, 0.104785f, -0.188308f, -0.146959f, -0.134704f, -0.319101f, 0.0808484f, 0.344271f, 0.0113916f, 0.175252f, 0.0849976f, -0.0352785f, 0.0743872f, -0.165385f, -0.0677743f, 0.0751335f, -0.00489914f, -0.0963297f, -0.0482092f, -0.135487f, -0.0115389f, -0.0197858f, -0.0754902f, 0.194723f, -0.0186476f, -0.0349434f, 0.189749f, 0.0227529f, 0.0180564f, 0.129332f, -0.0349466f, -0.106948f, 0.0585846f, -0.131004f, -0.0161526f, 0.0149128f, 0.0490677f, 0.0892119f, 0.0442311f, -0.102199f, 0.172912f, -0.153624f, 0.143834f, -0.0421306f, 0.142092f, 0.0772596f, 0.0888918f, 0.102791f, -0.0272839f, -0.00127824f, -0.0746725f, 0.116443f, 0.01735f, 0.00530435f, 0.00146042f, 0.152961f, 0.0888051f, -0.064222f, 0.0856799f, 0.202546f, -0.181804f, 0.238388f, -0.256169f, -0.147227f, -0.438656f, 0.150792f, 0.0631181f, -0.120509f, -0.124601f, 0.360747f, -0.17992f, 0.00455713f, -0.0186028f, -0.184596f, -0.0328741f, -0.0477944f, 0.0909452f, 0.161389f, 0.0446495f, 0.0666632f, 0.0517341f, 0.103314f, 0.0148886f, 0.167649f, -0.103161f, -0.0205467f, 0.08749f, 0.0197692f, -0.143094f, -0.127005f, 0.0747773f, -0.00365748f, 0.108105f, -0.194139f, -0.0362674f, 0.11368f, -0.159818f, -0.258553f, 0.0386779f, -0.0822598f, 0.227806f, -0.0291713f, -0.32674f, -0.0639091f, -0.0760022f, -0.0822212f, -0.0692003f, 0.187076f, -0.108717f, -0.182707f, 0.0342372f, 0.305257f, -0.158815f, 0.338278f, -0.0451145f, -0.142913f, -0.0291924f, 0.141666f, 0.0312038f, 0.169821f, -0.2025f, -0.00261782f, 0.352917f, 0.0756915f, 0.234169f, -0.139196f, 0.102657f, -0.0888784f, 0.00680059f, 0.00376785f, 0.0305767f, -0.149481f, 0.0521571f, -0.131383f, -0.238097f, -0.180171f, 0.15758f, 0.210169f, 0.0323097f, -0.130281f, -0.00174302f, -0.204827f, 0.128533f, -0.212914f, -0.0680489f, 0.099698f, 0.190087f, -0.0120034f, -0.103575f, 0.0606324f, -0.18164f, -0.0609338f, 0.128196f, -0.0952195f, 0.108363f, -0.202078f, 0.017342f, 0.29798f, -0.124843f, 0.17263f, -0.0619337f, -0.118845f, -0.0684859f, 0.0557683f, 0.164094f, -0.0331065f, 0.207291f, 0.0498928f, -0.216139f, -0.267346f, -0.147527f, -0.0898127f, 0.110423f, -0.233472f, 0.283513f, -0.0424642f, -0.22378f, -0.181619f, 0.0591461f, -0.0101756f, 0.192878f, 0.0628319f, -0.0903452f, 0.0300737f, -0.105187f, 0.0205333f, 0.067207f, -0.0665262f, 0.0566451f, -0.270871f, -0.092702f, -0.154799f, -0.163357f, 0.0605647f, -0.0727221f, -0.0894837f, -0.0991246f, -0.107933f, 0.0709022f, 0.331668f, 0.041736f, 0.260264f, 0.0962304f, 0.0021933f, -0.058074f, -0.351278f, 0.0429753f, 0.0683849f, 0.105764f, -0.0302333f, -0.169568f, 0.045236f, 0.0262286f, -0.0047575f, 0.0109613f, 0.101706f, -0.183747f, 0.107188f, 0.215325f, 0.0875308f, 0.193807f, 0.0696149f, 0.139551f, -0.108455f, -0.192794f, -0.0605403f, -0.0919858f, -0.162504f, -0.0549617f, -0.157537f, -0.0476119f, 0.158446f, 0.172215f, 0.0603194f, -0.181201f, 0.0478497f, 0.0180984f, -0.188716f, 0.0768344f, -0.0520236f, -0.0978861f, -0.0640551f, -0.000132177f, 0.0962101f, 0.0990038f, -0.425499f, -0.0405614f, -0.00116878f, -0.259144f, -0.0785822f, -0.286815f, 0.217459f, -0.0908754f, 0.181628f, -0.00253978f, -0.233785f, -0.0992499f, 0.277896f, 0.0425967f, 0.230729f, -0.095018f, 0.180517f, -0.0368274f, 0.0438355f, -0.039866f, -0.142834f, 0.034795f, -0.10125f, 0.032544f, -0.1302f, 0.074774f, 0.315333f, -0.0569471f, 0.0532766f, 0.242929f, 0.353312f, -0.0991622f, -0.289271f, 0.0314086f, 0.197108f, 0.294353f, -0.0433009f, -0.045213f, 0.0366935f, 0.596635f, 0.264691f, -0.205574f, -0.135842f, 0.397069f, 0.223099f, 0.108564f, 0.242595f, -0.161814f, 0.441303f, 0.129787f, 0.0106236f, 0.0941791f, 0.0429626f, -0.0440682f, 0.124326f, -0.139163f, -0.177226f, -0.223558f, -0.0530441f, 0.149371f, 0.133559f, 0.141014f, 0.218382f, 0.0506452f, 0.0640441f, -0.224438f, -0.219215f, 0.149014f, 0.0524094f, 0.212479f, 0.130602f, 0.0997917f, -0.177206f, -0.154962f, -0.21409f, -0.0475203f, -0.0283396f, -0.0252686f, 0.00366472f, -0.0766809f, -0.28983f, 0.11261f, -0.047238f, 0.0893207f, 0.0342624f, -0.0270553f, 0.0971939f, -0.0908975f, -0.0780041f, 0.0922621f, 0.0941026f, -0.112727f, 0.0522192f, -0.131715f, 0.137713f, -0.00955559f, -0.118143f, -0.0449736f, -0.0256095f, -0.0258597f, -0.175128f, 0.33382f, 0.0458418f, 0.0354151f, 0.31919f, -0.194444f, -0.0363163f, 0.048864f, -0.0361724f, 0.0392633f, -0.0313611f, 0.105193f, 0.0905754f, -0.0224686f, -0.0603748f, -0.0504811f, -0.0441094f, -0.090443f, -0.151153f, 0.0392048f, -0.0788279f, -0.0173527f, 0.115359f, -0.154197f, 0.0968013f, -0.125278f, -0.0584195f, -0.0712377f, 0.0807372f, 0.107236f, 0.206821f, -0.0608552f, -0.150982f, 0.00527973f, -0.0289015f, 0.243195f, -0.0365259f, -0.247735f, 0.0137881f, 0.0415127f, 0.179904f, -0.128528f, 0.101974f, 0.201864f, -0.109442f, 0.00432531f, -0.206516f, -0.0954068f, 0.352473f, -0.0613019f, 0.0568274f, 0.198017f, -0.127805f, -0.102359f, -0.0611966f, -0.16685f, -0.129159f, -0.139358f, -0.160502f, 0.0745728f, -0.0275402f, 0.121004f, -0.11975f, 0.121666f, -0.000113998f, 0.19457f, -0.0674073f, -0.0170071f, -0.194521f, 0.0371789f, -0.213019f, -0.0189841f, 0.159849f, -0.116225f, 0.333793f, 0.243198f, -0.256168f, -0.0699877f, -0.259659f, 0.308548f, -0.199267f, 0.0394223f, -0.103282f, 0.245868f, 0.0398843f, 0.264948f, -0.115243f, -0.0801352f, 0.0711119f, 0.113787f, -0.0306636f, 0.23021f, -0.174715f, 0.0398342f, 0.0726147f, 0.196337f, -0.258249f, 0.0136434f, -0.326154f, -0.538303f, 0.0996327f, -0.166847f, 0.154552f, 0.00132305f, -0.00524841f, -0.090486f, -0.165517f, 0.146697f, 0.267558f, 0.346641f, 0.0595867f, -0.186239f, -0.0283181f, -0.150645f, 0.105462f, -0.0440037f, -0.29422f, -0.0747327f, 0.0897493f, 0.0213043f, 0.0850174f, 0.0464197f, -0.164205f, 0.0664031f, -0.190015f, -0.00647586f, -0.0487672f, 0.109339f, 0.283672f, -0.0596263f, 0.139893f, -0.00952623f, 0.153302f, 0.0440784f, -0.00753427f, 0.0822453f, 0.274089f, 0.0395388f, -0.145318f, -0.253934f, 0.0103957f, -0.126816f, 0.116435f, 0.00520471f, -0.0872785f, 0.0869315f, -0.0753573f, 0.0991896f, -0.121933f, 0.02169f, 0.00953894f, 0.0619936f, 0.166951f, 0.069511f, 0.0808205f, 0.165089f, 0.213623f, 0.0693948f, 0.109679f, 0.100796f, 0.0860767f, 0.129782f, 0.1225f, 0.0961217f, 0.086015f, -0.0930297f, 0.0328728f, 0.109283f, 0.139185f, -0.067908f, -0.0520607f, 0.0785416f, 0.128432f, 0.17963f, -0.151446f, 0.110289f, -0.186951f, -0.193228f, -0.0401434f, 0.0927678f, -0.332999f, -0.0701199f, -0.0822356f, 0.139383f, 0.0367334f, 0.00243285f, -0.0381577f, 0.18678f, 0.0224115f, 0.17134f, 0.138334f, 0.133046f, -0.0330575f, -0.0900594f, 0.0342154f, -0.116656f, 0.0296864f, 0.0142559f, -0.0239932f, -0.149369f, 0.327535f, 0.122186f, -0.000479581f, -0.138425f, 0.0279581f, 0.0107555f, -0.0198012f, -0.156037f, 0.148003f, 0.0870162f, -0.134214f, 0.0304998f, 0.0190929f, -0.0911391f, -0.111972f, 0.0188851f, -0.0799621f, 0.0414167f, 0.134054f, -0.0673626f, -0.174562f, 0.268506f, -0.0012594f, 0.102484f, 0.0666825f, 0.0792405f, -0.202163f, 0.485791f, -0.0435419f, -0.117671f, 0.0284546f, 0.0516959f, 0.117768f, 0.0794874f, -0.242982f, 0.108368f, -0.0249301f, 0.133993f, -0.144968f, -0.276847f, 0.159277f, -0.0943528f, -0.0950951f, 0.0194216f, -0.18416f, 0.234137f, -0.10042f, -0.0665737f, 0.0765467f, -0.119124f, -0.115854f, 0.116902f, -0.139382f, -0.0918045f, 0.011474f, 0.14058f, -0.1024f, -0.200724f, -0.201398f, -0.169807f, -0.0603527f, 0.260884f, 0.137506f, 0.260979f, 0.274345f, -0.131362f, 0.0515142f, -0.132947f, -0.0058562f, -0.0652924f, -0.0175034f, 0.0543591f, -0.12696f, -0.155411f, -0.141542f, -0.0572044f, 0.093796f, 0.312288f, -0.285327f, 0.273134f, -0.114192f, -0.158102f, 0.114816f, 0.250081f, 0.283291f, -0.276989f, 0.00780068f, -0.0351284f, 0.045596f, -0.189776f, -0.0941111f, -0.316759f, -0.0307214f, 0.0928349f, -0.0862754f, 0.114326f, -0.0728443f, -0.0214987f, -0.106312f, -0.0653976f, -0.300133f, 0.120706f, 0.0109112f, 0.0854285f, -0.0735078f, 0.10727f, 0.00472942f, 0.0767206f, -0.00194872f, 0.00244841f, -0.00999922f, -0.00835904f, -0.0058977f, 0.00212189f, 0.00210316f, 0.0184855f, 0.0827416f, 0.195669f, 0.0182319f, -0.0789003f, 0.0438902f, 0.131888f, -0.0206233f, 0.131806f, -0.0861798f, -0.0461041f, -0.0805495f, 0.244497f, -0.0398585f, -0.128156f, 0.0834159f, -0.0743155f, 0.178075f, 0.0108171f, 0.0121272f, -0.0175948f, 0.00106332f, -0.109884f, 0.0212511f, -0.00546955f, -0.001969f, 0.0421864f, 0.147112f, 0.051353f, -0.0391625f, -0.0175212f, 0.0242585f, -0.058338f, 0.0892591f, -0.07452f, 0.0254763f, 0.13067f, -0.158596f, -0.115871f, 0.0682081f, -0.116456f, 0.161178f, 0.0641533f, -0.0568599f, 0.0465782f, -0.120998f, 0.0565994f, -0.11096f, 0.00337471f, 0.117337f, -0.13828f, -0.147196f, -0.0289582f, -0.204529f, 0.000623357f, -0.0874729f, -0.0737333f, 0.288473f, -0.0800602f, -0.0702894f, -0.102314f, -0.0481914f, 0.109098f, -0.0351324f, 0.0143868f, -0.165894f, -0.0438337f, -0.112665f, 0.0907283f, -0.00701667f, 0.093683f, 0.020547f, -0.0813763f, -0.0516855f, 0.0858162f, 0.0239915f, -0.185836f, 0.0394541f, -0.0807722f, 0.045084f, -0.0907332f, 0.246948f, -0.0380463f, -0.0832131f, 0.116376f, 0.0770762f, -0.0715117f, -0.0100201f, 0.0703188f, -0.050689f, 0.115805f, 0.143862f, -0.0980405f, 0.0940422f, -0.138624f, -0.146485f, 0.113292f, -0.128912f, 0.304398f, 0.0398505f, -0.022056f, 0.261477f, -0.0578915f, 0.140928f, 0.297865f, -0.0220863f, 0.252067f, -0.293008f, 0.0254907f, 0.142012f, 0.0822916f, 0.324888f, -0.0247238f, -0.315683f, 0.301251f, 0.223306f, 0.0225167f, 0.721599f, -0.00109351f, 0.102962f, -0.113305f, -0.119044f, -0.166253f, -0.0637293f, -0.0497459f, -0.123195f, -0.12674f, 0.165874f, -0.30763f, 0.11252f, 0.08796f, -0.096683f, 0.0757019f, 0.0148213f, 0.107513f, -0.091865f, -0.375279f, -0.224928f, -0.113327f, -0.092298f, -0.326107f, -0.162823f, -0.0807803f, -0.100174f, -0.0599602f, -0.11532f, 0.256996f, -0.0833367f, 0.0417432f, 0.101564f, 0.0121333f, 0.166463f, 0.420647f, -0.111737f, -0.00885418f, -0.161809f, 0.233683f, 0.097217f, -0.149395f, -0.0318564f, 0.0465102f, -0.174745f, 0.0647181f, -0.0251904f, 0.00904983f, -0.292793f, 0.0436678f, -0.385512f, -0.0557217f, -0.133437f, -0.0502333f, 0.567248f, -0.0711798f, -0.185193f, 0.266068f, -0.0320763f, -0.173714f, -0.202435f, 0.545727f, -0.551536f, -0.207552f, 0.125191f, -0.093843f, 0.167994f, -0.0145248f, -0.122176f, 0.0734883f, 0.243448f, 0.00665913f, 0.0903113f, -0.455784f, -0.0285418f, 0.145484f, 0.195316f, -0.138689f, 0.0767304f, -0.0116376f, -0.12377f, -0.211497f, 0.21001f, 0.117194f, 0.222866f, 0.171653f, -0.135408f, 0.408654f, 0.0760979f, 0.340034f, -0.269682f, 0.000868766f, 0.169934f, 0.0219936f, -0.216229f, 0.0973989f, 0.349479f, -0.106515f, -0.334782f, 0.222954f, 0.241125f, -0.274665f, -0.229537f, -0.0459262f, -0.181185f, 0.111123f, 0.153197f, -0.191345f, -0.0775489f, 0.0855251f, -0.132832f, 0.0586445f, -0.307182f, 0.0471336f, -0.30509f, 0.0520888f, 0.0525237f, 0.418393f, 0.253964f, 0.0490697f, -0.164419f, -0.0975313f, 0.103853f, -0.44929f, 0.252326f, 0.01928f, -0.232027f, 0.186575f, -0.209188f, -0.283955f, 0.194081f, -0.219159f, 0.0533112f, -0.00783648f, -0.0521154f, 0.165521f, 0.220208f, 0.144372f, 0.300682f, -0.0843022f, -0.0971742f, 0.317016f, -0.213674f, 0.064885f, 0.0191212f, -0.11393f, 0.125201f, 0.170177f, -0.0945173f, 0.303394f, 0.139427f, -0.216321f, -0.211959f, 0.171271f, 0.0692067f, -0.06519f, -0.117853f, -0.304447f, -0.0402242f, 0.0853456f, -0.0741743f, 0.265712f, 0.213068f, 0.16313f, -0.180531f, 0.0370471f, -0.288662f, -0.141782f, -0.367601f, 0.0993716f, -0.187115f, -0.0218616f, 0.129168f, -0.214869f, 0.28965f, -0.0964574f, 0.0480117f, -0.431991f, 0.0559119f, 0.0945202f, -0.0376525f, 0.0447428f, 0.0168663f, 0.0798896f, -0.136845f, 0.285735f, 0.103382f, 0.0670226f, -0.141478f, 0.0464972f, 0.0169546f, 0.0391688f, -0.00774251f, -0.0193538f, 0.0210924f, -0.0746249f, 0.0843993f, -0.0683327f, 0.0792038f, 0.0958132f, -0.0526965f, -0.146704f, 0.118618f, 0.032494f, 0.049704f, -0.00638117f, 0.0450619f, -0.0810777f, 0.242422f, 0.0844283f, 0.0234835f, -0.032978f, -0.202083f, 0.0236966f, 0.20002f, -0.118112f, 0.357182f, -0.0626092f, -0.190711f, 0.078205f, -0.0618099f, 0.0811876f, 0.0770965f, -0.114029f, 0.113166f, -0.145927f, 0.13634f, -0.0596317f, 0.123116f, -0.159898f, -0.0639505f, 0.115488f, 0.0193033f, -0.191011f, 0.117658f, 0.0304087f, -0.0175166f, 0.384136f, 0.169155f, -0.00183011f, -0.115868f, 0.0450621f, 0.0861289f, 0.00935854f, -0.154173f, -0.273183f, -0.280445f, -0.175075f, -0.361855f, -0.197422f, -0.0723603f, -0.19345f, -0.0346083f, -0.0348801f, -0.061463f, -0.0283762f, 0.10252f, -0.0213226f, 0.0237173f, 0.114157f, -0.00717882f, -0.141539f, 0.170844f, 0.292026f, -0.0289119f, -0.2365f, 0.0883193f, -0.113925f, -0.0288974f, 0.00129909f, 0.233697f, 0.0119418f, 0.00598026f, 0.0898803f, 0.0634046f, 0.228805f, -0.0213031f, -0.0674888f, 0.0295349f, -0.0148126f, 0.249992f, -0.120118f, -0.0762531f, 0.195457f, 0.00799008f, 0.213191f, 0.224677f, 0.236352f, 0.00763284f, 0.118009f, -0.0852405f, 0.103128f, -0.148806f, -0.0723949f, 0.203981f, -0.0675412f, -0.224764f, 0.0426081f, 0.175654f, 0.196688f, 0.231073f, 0.0304134f, -0.00912753f, -0.209559f, -0.138705f, -0.0522629f, 0.131445f, 0.623789f, 0.130889f, -0.30883f, -0.204487f, -0.153846f, -0.0159945f, -0.0635528f, 0.0302351f, 0.18959f, 0.0125476f, -0.136123f, -0.0747002f, -0.12107f, -0.100258f, 0.0127224f, -0.191648f, -0.171148f, 0.266989f, 0.0150181f, 0.025774f, -0.057237f, -0.210215f, 0.220181f, -0.108256f, 0.0203696f, -2.99765e-06f, -0.247318f, -0.0756493f, -0.0135253f, 0.0183214f, 0.0774988f, -0.119367f, -0.279353f, -0.323777f, -0.0828381f, -0.00317313f, -0.101517f, 0.250938f, -0.120454f, 0.0186011f, 0.0500825f, 0.072483f, 0.2233f, 0.0815964f, 0.000616792f, -0.0634325f, 0.147282f, 0.302579f, -0.100887f, -0.180329f, -0.191352f, -0.0470783f, -0.0315622f, -0.0630318f, -0.332568f, 0.0200391f, 0.17031f, 0.0540261f, -0.28841f, 0.0990512f, -0.0851869f, 0.106587f, -0.122013f, -0.079446f, 0.677914f, -0.0351227f, -0.0927955f, 0.0353358f, 0.0346187f, -0.0812363f, -0.0229935f, 0.0490508f, 0.062515f, -0.0485058f, 0.25508f, -0.181516f, -0.00994448f, -0.113304f, -0.0998097f, -0.149225f, 0.0224167f, 0.10302f, -0.150632f, -0.0272418f, 0.0891457f, -0.0787545f, 0.0571321f, 0.101092f, 0.05794f, 0.00883519f, -0.0205145f, -0.0659331f, 0.027771f, 0.175719f, -0.0152831f, -0.150664f, -0.182011f, 0.159184f, -0.158366f, 0.136919f, 0.117969f, 0.0102596f, 0.142314f, -0.0136881f, -0.0974402f, 0.0199301f, -0.214979f, 0.0287738f, -0.145735f, 0.0929705f, 0.112677f, -0.27834f, -0.0946221f, 0.0573299f, -0.0336495f, -0.312871f, 0.0472124f, 0.24158f, 0.151752f, 0.138142f, 0.172825f, 0.187532f, -0.0753471f, -0.160944f, -0.157565f, -0.0223023f, -0.0389753f, -0.122958f, -0.381705f, -0.219326f, -0.0386115f, 0.18651f, 0.0100289f, -0.119352f, 0.116071f, -0.142137f, -0.215039f, 0.089505f, 0.0962422f, 0.157947f, 0.0373307f, 0.063834f, -0.0218385f, -0.0735305f, 0.0779122f, 0.152978f, 0.212963f, -0.119357f, -0.0657415f, -0.021147f, -0.0580215f, 0.00864752f, 0.158838f, -0.00153277f, 0.0740359f, 0.10296f, -0.0244865f, 0.000641543f, -0.234022f, -0.0478112f, -0.0220403f, 0.0406169f, 0.00370502f, 0.0897027f, -0.109188f, 0.102417f, -0.11425f, -0.0647686f, 0.0258305f, 0.0640294f, 0.112956f, 0.0545838f, 0.0947525f, -0.144635f, 0.0449017f, 0.0252905f, -0.167632f, 0.150098f, -0.0364859f, -0.154903f, 0.10747f, -0.125059f, -0.0280815f, 0.371077f, -0.0486785f, 0.00926227f, -0.15574f, -0.0285749f, 0.00886929f, -0.215093f, -0.0857837f, 0.130187f, 0.0515041f, -0.0938138f, 0.0741567f, -0.108542f, 0.099023f, 0.0410809f, 0.106474f, -0.223419f, 0.177709f, -0.102383f, 0.158145f, 0.0199482f, -0.111418f, 0.0348613f, -0.0161444f, -0.097712f, -0.0636567f, -0.190962f, -0.145509f, -0.100517f, -0.106925f, 0.0278579f, -0.053167f, -0.13701f, 0.141951f, -0.126187f, 0.0578583f, 0.0539235f, 0.0116454f, -0.113725f, 0.0357441f, -0.0161414f, -0.083016f, -0.0851341f, -0.0719766f, -0.0439507f, 0.0295082f, -0.0706393f, -0.090083f, -0.01403f, -0.019716f, 0.200114f, 0.192448f, -0.0459321f, 0.208056f, -0.00255952f, -0.0603561f, -0.134478f, -0.0705345f, -0.274638f, 0.107574f, -0.0206335f, -0.161125f, 0.327311f, -0.185852f, 0.0608331f, -0.0252052f, -0.0511792f, -0.0893708f, -0.0874501f, 0.11656f, -0.0767038f, -0.0916821f, 0.0423018f, 0.00962552f, -0.0013479f, 0.185576f, 0.00969413f, 0.163568f, -0.19809f, -0.166577f, -0.0268575f, -0.252941f, -0.0681706f, -0.226279f, -0.175912f, -0.0260237f, -0.208367f, 0.0478365f, -0.0545826f, 0.0115055f, 0.243128f, 0.30273f, -0.133419f, -0.0459402f, -0.0874489f, -0.00461627f, -0.153622f, -0.241561f, -0.110688f, -0.167704f, 0.0233087f, 0.0157398f, 0.171963f, -0.0557008f, -0.0445285f, -0.017086f, -0.0265117f, -0.0216023f, 0.00507459f, 0.298444f, -0.187164f, -0.131985f, 0.133672f, -0.0235646f, 0.0650884f, 0.0312644f, -0.15452f, -0.04452f, -0.165752f, -0.216701f, -0.0171984f, -0.164145f, 0.0442439f, -0.0960055f, 0.0610197f, 0.460401f, 0.0139281f, 0.285299f, -0.152041f, 0.0964632f, 0.0214017f, -0.211647f, 0.0730484f, -0.0398321f, 0.0971261f, -0.0945222f, -0.205423f, -0.193095f, -0.00921797f, 0.0129913f, 0.121846f, -0.0013618f, 0.0976804f, 0.0211137f, -0.266673f, 0.231346f, 0.209258f, 0.0885111f, 0.132897f, -0.102756f, 0.0620643f, 0.106256f, 0.0997356f, -0.124422f, -0.203079f, 0.00679019f, 0.105477f, 0.0876888f, 0.00126302f, 0.0724871f, -0.146356f, 0.313974f, 0.0697052f, -0.0808093f, 0.199145f, 0.121731f, 0.0587438f, 0.236477f, -0.0490998f, 0.198353f, 0.134918f, 0.239827f, 0.174598f, 0.0286146f, 0.247995f, -0.144891f, 0.0202831f, 0.0391691f, 0.0889702f, -0.0089158f, -0.0502345f, 0.0709934f, -0.375429f, 0.343266f, 0.185493f, 0.230703f, -0.186826f, -0.044153f, -0.18015f, -0.0581378f, 0.170606f, -0.000270542f, -0.0919639f, 0.0621007f, 0.0409358f, -0.160904f, 0.39468f, 0.197532f, -0.141505f, 0.119156f, 0.229413f, 0.623405f, 0.0765827f, 0.16408f, 0.0533372f, -0.124529f, 0.0870492f, -0.00254054f, 0.00437923f, 0.0729201f, -0.0837635f, -0.000315432f, -0.0517779f, 0.0748484f, -0.086308f, -0.158962f, 0.0736069f, 0.0766358f, -0.107438f, -0.307467f, -0.11376f, 0.00186038f, 0.0295603f, -0.0440203f, -0.116633f, 0.060582f, -0.092909f, -0.0982486f, -0.0850829f, -0.0126014f, -0.0478695f, -0.0451787f, -0.14407f, 0.114908f, 0.00698884f, -0.0244258f, -0.00722237f, 0.133512f, -0.0173388f, -0.200462f, -0.0714877f, -0.103785f, 0.0946723f, 0.230671f, -0.0472817f, 0.0809517f, 0.0748914f, -0.0194296f, -0.0951565f, 0.205884f, -0.0970853f, -0.0785331f, -0.0191628f, -0.191386f, 0.101843f, 0.00904935f, -0.158539f, -0.0102443f, -0.163679f, 0.0413256f, -0.16818f, 0.116014f, -0.0710541f, 0.0524656f, 0.0599011f, 0.156255f, 0.0538019f, 0.16685f, -0.210129f, -0.207902f, 0.0590308f, -0.00140713f, 0.129099f, -0.244016f, 0.102963f, -0.117191f, 0.0678744f, 0.183391f, -0.0968957f, -0.268292f, -0.0629757f, 0.14731f, 0.572662f, 0.0264853f, -0.00983012f, 0.289058f, -0.124067f, -0.177985f, -0.0285733f, -0.204986f, 0.209052f, -0.12197f, -0.0103299f, 0.306579f, -0.121524f, -0.154976f, -0.159305f, 0.0956473f, -0.100496f, -0.0316459f, 0.210591f, -0.207132f, 0.204751f, 0.102329f, -0.113026f, -0.19419f, 0.167538f, 0.274296f, 0.070734f, -0.193641f, -0.101428f, -0.0933157f, -0.0486002f, 0.0550321f, -0.029156f, 0.226866f, -0.00423978f, 0.368497f, -0.268728f, -0.112294f, -0.228671f, 0.0393566f, 0.312397f, -0.270251f, 0.0583047f, -0.138449f, -0.249343f, -0.141763f, -0.108831f, 0.192652f, -0.224377f, 0.283772f, -0.107425f, -0.165611f, 0.121612f, 0.170611f, -0.285432f, 0.0320365f, 0.0195582f, 0.0205298f, -0.0946689f, -0.195255f, 0.0024988f, -0.0870073f, -0.488935f, -0.112645f, 0.367145f, 0.169879f, 0.0113935f, -0.0830861f, 0.00538872f, 0.0880794f, -0.13279f, 0.104729f, -0.0639739f, -0.128698f, 0.120424f, 0.170959f, 0.19056f, -0.00196033f, -0.31004f, 0.162617f, -0.00446819f, -0.069373f, 0.177985f, 0.520579f, -0.00355574f, -0.0372857f, -0.0478543f, -0.188776f, 0.100892f, -0.193156f, -0.016714f, 0.0672871f, -0.226367f, 0.0357675f, -0.337681f, 0.422706f, 0.147775f, 0.0522554f, -0.194255f, -0.267794f, -0.14851f, 0.0532966f, 0.425497f, 0.0697983f, 0.0805107f, 0.0766342f, 0.0567861f, 0.0947867f, 0.0588265f, 0.0388011f, 0.0841769f, -0.0347581f, 0.0912837f, 0.0732651f, -0.0244513f, -0.0409873f, 0.162065f, -0.0237251f, 0.0482974f, -0.0447881f, -0.0197891f, 0.315297f, 0.0752168f, -0.0809239f, 0.152944f, -0.0831229f, 0.038016f, -0.0343541f, 0.534556f, 0.159568f, 0.109138f, -0.0142174f, 0.0461807f, 0.00546349f, 0.0686349f, 0.0101481f, -0.18145f, 0.233903f, 0.022252f, 0.280674f, -0.054163f, 0.0541391f, 0.15762f, -0.0827375f, -0.044322f, -0.0694526f, -0.0724076f, 0.134042f, -0.165089f, 0.0286753f, -0.043829f, 0.0464615f, -0.221729f, -0.052241f, -0.138215f, 0.106572f, -0.172838f, 0.0469433f, 0.0460842f, 0.00879997f, -0.0280663f, -0.0829716f, -0.0158374f, -0.0019205f, 0.0719471f, -0.0389286f, 0.288394f, -0.133516f, 0.128066f, -0.175024f, 0.00844473f, -0.067629f, -0.172599f, 0.0060833f, 0.143877f, 0.365924f, 0.122136f, -0.0783742f, 0.126479f, -0.167014f, 0.00761613f, 0.210274f, -0.145084f, -0.082338f, 0.189034f, 0.046537f, -0.0540034f, 0.0606624f, 0.108861f, 0.070417f, -0.0206896f, 0.0935949f, -0.0968912f, 0.000637289f, 0.0664248f, -0.0135662f, 0.206382f, 0.115633f, -0.309984f, 0.0563054f, 0.255785f, -0.0328372f, -0.0822034f, -0.0174448f, -0.00565707f, -0.117754f, 0.0250496f, -0.0251881f, 0.253121f, 0.0328183f, -0.0852662f, 0.0239643f, 0.185026f, -0.248579f, -0.0537978f, -0.147039f, 0.142091f, 0.0466362f, -0.0131143f, 0.0678359f, 0.0501409f, 0.00855877f, 0.00613367f, 0.0786274f, 0.114498f, -0.0169132f, 0.0373537f, 0.00727491f, -0.112418f, 0.330019f, -0.0504948f, 0.128929f, -0.179513f, 0.337475f, -0.217913f, 0.0276157f, 0.0654204f, 0.0744542f, -0.24827f, -0.0333851f, -0.393635f, -0.301225f, -0.143428f, 0.211926f, -0.0330638f, 0.233932f, -0.0889507f, -0.158878f, -0.213271f, -0.215594f, 0.0278285f, 0.213556f, 0.187808f, 0.208748f, -0.188919f, 0.0511753f, -0.305688f, 0.0955255f, -0.0590712f, 0.212731f, -0.192748f, -0.0173652f, 0.00991931f, -0.0462345f, -0.188373f, 0.0695606f, -0.0918228f, 0.0758566f, -0.0472884f, -0.129876f, -0.141262f, -0.0786047f, -0.168354f, 0.0509509f, 0.154566f, -0.0847538f, 0.280092f, 0.0273081f, 0.083614f, -0.0306491f, -0.0408106f, 0.0373279f, 0.0779862f, 0.034757f, 0.00290294f, -0.0950805f, -0.289347f, -0.10487f, 0.200642f, 0.0283649f, 0.0720383f, -0.0742844f, 0.145434f, 0.146424f, -0.103958f, 0.156769f, -0.1997f, 0.0713646f, 0.0730616f, 0.0794379f, 0.137977f, -0.37683f, 0.114957f, -0.50135f, -0.161876f, -0.0300441f, 0.0104782f, 0.0913192f, -0.0917896f, 0.200099f, -0.153171f, -0.0797176f, -0.189976f, 0.0477942f, -0.0833342f, -0.182861f, -0.134035f, -0.0954855f, -0.0323206f, 0.111938f, 0.238495f, 0.0393704f, 0.0687129f, -0.0142355f, -0.124225f, 0.0679714f, -0.00614679f, -0.0222416f, -0.0544473f, -0.0511021f, -0.0375257f, 0.00208398f, 0.0966027f, 0.0551615f, -0.143929f, -0.153371f, 0.21043f, 0.0837785f, 0.0298234f, 0.0453954f, -0.200591f, 0.0386534f, -0.0359486f, 0.0712621f, 0.105954f, 0.0541106f, 0.147282f, -0.0553411f, 0.041415f, 0.0466664f, -0.110549f, -0.0730289f, 0.0757243f, 0.0597715f, 0.115006f, 0.080533f, 0.121648f, -0.0837472f, 0.0577127f, 0.0160174f, 0.124122f, 0.0992707f, 0.220731f, 0.0172777f, -0.350643f, -0.073646f, -0.213508f, -0.041241f, -0.225608f, -0.012018f, -0.0955706f, -0.0687881f, -0.115149f, -0.00655317f, 0.0533623f, -0.11999f, -0.232439f, -0.101378f, 0.134267f, -0.0709644f, -0.123505f, 0.17333f, -0.134479f, -0.0693893f, -0.0872682f, -0.0103579f, 0.000115466f, 0.123011f, -0.122521f, 0.00753615f, 0.250909f, -0.0273332f, 0.200748f, 0.198699f, 0.0319133f, -0.145248f, 0.216964f, -0.0547239f, 0.00257925f, 0.0671172f, 0.103365f, -0.150521f, -0.00397576f, 0.0961774f, -0.362051f, 0.362568f, -0.00438125f, -0.0273373f, 0.0973637f, 0.0578196f, -0.0401565f, -0.00907735f, -0.00523574f, 0.0194143f, 0.0124352f, 0.0166776f, 0.303753f, 0.106034f, 0.00776774f, -0.0759637f, 0.222048f, 0.172016f, -0.0475624f, -0.0196593f, 0.0737472f, -0.0349685f, -0.00987481f, -0.028372f, -0.0841932f, -0.147022f, -0.104218f, -0.000507974f, 0.192813f, -0.0967521f, 0.287085f, 0.0813316f, -0.0345311f, 0.403332f, -0.119315f, 0.0524715f, 0.261836f, 0.144833f, -0.0917168f, -0.0384339f, -0.136755f, -0.120509f, -0.161379f, -0.0710214f, 0.179855f, 0.1009f, 0.0443552f, -0.0291447f, -0.110011f, 0.191054f, 0.00223243f, 0.192475f, 0.068134f, 0.0177193f, -0.00537692f, 0.0695685f, 0.451519f, 0.105828f, -0.196609f, -0.0165067f, -0.270602f, -0.169397f, 0.0722792f, 0.190808f, 0.107983f, 0.335597f, 0.248245f, -0.152668f, -0.196809f, -0.17473f, -0.112934f, 0.0890659f, -0.110534f, -0.0224037f, -0.281276f, 0.0240118f, 0.256091f, 0.296724f, -0.0161738f, 0.171791f, 0.0413213f, -0.00363253f, -0.417774f, -0.156664f, 0.0690922f, -0.187914f, 0.0223248f, -0.0619958f, -0.140343f, -0.0556246f, -0.0542719f, -0.0989955f, -0.0404008f, 0.0014826f, -0.121511f, -0.125207f, 0.0244336f, -0.14946f, -0.221765f, -0.095713f, -0.0932899f, 0.0825426f, 0.115195f, 0.161947f, 0.188563f, 0.0387226f, -0.0559759f, 0.0177841f, 0.00617732f, -0.0423014f, 0.239703f, 0.218305f, -0.0508124f, -0.0149802f, -0.0347724f, -0.102496f, 0.0556932f, -0.0266277f, 0.084453f, -0.286577f, -0.0540998f, 0.12262f, 0.0821807f, 0.220731f, 0.298521f, -0.131721f, -0.0567495f, 0.0275733f, 0.010012f, 0.298178f, -0.00193501f, 0.02859f, -0.0816896f, 0.0952763f, 0.0510901f, 0.0866064f, -0.323163f, 0.271943f, 0.0341194f, 0.223632f, -0.035586f, 0.123704f, 0.0370922f, -0.0990518f, -0.0446432f, 0.134154f, 0.0328696f, 0.137323f, 0.00370994f, -0.0863264f, 0.166206f, -0.0821178f, -0.0856534f, -0.075403f, 0.0328515f, 0.00496383f, 0.133133f, -0.285148f, 0.245946f, 0.157733f, -0.0144792f, -0.0314813f, -0.311042f, 0.156094f, -0.43042f, 0.0310591f, -0.215451f, 0.107258f, -0.0360583f, -0.14653f, -0.102325f, 0.208877f, -0.193155f, -0.0863271f, -0.0306808f, 0.118011f, -0.0186184f, -0.112401f, 0.0981503f, -0.0450955f, 0.116596f, 0.196613f, 0.274783f, 0.154376f, -0.0654896f, 0.0441973f, -0.151074f, 0.0597545f, 0.0374498f, -0.295294f, -0.0691018f, -0.0907054f, 0.298161f, 0.292179f, 0.103663f, -0.393542f, -0.194426f, 0.0234424f, 0.112328f, 0.326472f, -0.120771f, 0.173186f, 0.0395764f, -0.201523f, 0.164339f, 0.17171f, -0.155771f, 0.101107f, -0.190763f, 0.0421281f, 0.00193918f, 0.241896f, 0.256327f, 0.20133f, 0.395412f, 0.0338569f, 0.0100548f, -0.157454f, -0.0469019f, 0.494509f, -0.00369471f, -0.0555299f, 0.203407f, 0.186097f, 0.0465634f, 0.0762137f, 0.0327708f, -0.0580354f, -0.351443f, 0.0916616f, -0.0525908f, -0.0632189f, -0.0265027f, -0.0129729f, -0.111025f, 0.0937704f, 0.119293f, -0.0108753f, -0.0536941f, 0.0313571f, -0.0564089f, 0.0226939f, 0.0508988f, -0.0104971f, -0.236469f, 0.0520781f, -0.0457687f, -0.0982643f, -0.00357277f, 0.0803677f, -0.0408164f, -0.00992465f, -0.113793f, 0.0522166f, 0.028554f, -0.055296f, 0.218761f, -0.0840261f, 0.0224021f, 0.172588f, -0.0693738f, -0.00563296f, -0.047289f, -0.0457285f, 0.0399814f, 0.165878f, -0.042323f, 0.0183096f, 0.0621737f, -0.00562974f, 0.00317903f, -0.0165152f, 0.114113f, -0.118331f, 0.0621847f, -0.0222501f, -0.00813723f, 0.0680002f, 0.00687639f, -0.123512f, 0.225447f, 0.0424656f, 0.0487506f, 0.464622f, -0.115365f, -0.113445f, -0.094543f, -0.21672f, 0.012108f, -0.270025f, 0.0350133f, 0.14468f, 0.0341749f, -0.00389844f, -0.0607023f, -0.0367761f, -0.0263414f, -0.0252336f, -0.147292f, -0.0651093f, -0.159779f, -0.0926918f, 0.0221874f, 0.00977382f, 0.0729741f, -0.138061f, -0.0699733f, 0.0956496f, -0.037027f, 0.0613692f, 0.0284387f, -0.0635814f, 0.0401008f, 0.0321392f, -0.034458f, 0.113814f, 0.0929522f, -0.0311131f, 0.00276154f, 0.0445695f, 0.134833f, -0.359541f, -0.0436259f, 0.000977012f, -0.0739285f, -0.0118783f, 0.0307022f, -0.125848f, 0.0303075f, 0.0601957f, -0.0417571f, -0.0465788f, -0.219371f, -0.24612f, 0.0134434f, -0.164715f, 0.092703f, -0.0513711f, 0.00219173f, 0.00713064f, 0.0465291f, -0.119486f, 0.109108f, 0.0661085f, -0.0922515f, 0.00487655f, -0.181123f, -0.0733714f, -0.142336f, -0.0898562f, 0.292032f, 0.121612f, -0.0526963f, 0.139136f, -0.0325447f, -0.0281637f, -0.0448763f, -0.178754f, 0.105116f, -0.0195635f, 0.00158081f, 0.0308516f, -0.121313f, 0.18759f, 0.0146584f, 0.137494f, -0.118283f, 0.0659917f, -0.0857498f, 0.133838f, 0.0724093f, 0.150323f, 0.194992f, 0.12335f, 0.278845f, -0.0349601f, -0.0266816f, -0.102844f, -0.180056f, 0.28866f, 0.19464f, -0.390236f, 0.154088f, 0.651368f, 0.00526247f, 0.220687f, -0.0942985f, 0.102728f, 0.236898f, -0.231104f, 0.202707f, -0.302023f, 0.0412016f, -0.211974f, -0.336765f, 0.0472883f, -0.32279f, -0.322595f, 0.188368f, -0.112167f, -0.053111f, -0.0876737f, 0.0740169f, -0.0770083f, 0.114f, -0.0229253f, -0.0947063f, 0.0769533f, 0.017465f, 0.0696753f, -0.24536f, -0.306005f, 0.168898f, -0.2372f, 0.0779207f, 0.078688f, 0.199122f, 0.0382975f, 0.172688f, -0.0995284f, 0.120629f, -0.224391f, -0.0315188f, 0.0857939f, 0.341398f, -0.276191f, -0.197422f, 0.3066f, -0.415211f, -0.210669f, -0.121819f, 0.0350148f, -0.0840736f, 0.311948f, -0.0600505f, -0.00493094f, 0.214954f, -0.0162526f, -0.0532567f, 0.147648f, 0.0320157f, -0.215473f, 0.0403848f, -0.438345f, -0.17672f, 0.00443961f, -0.315706f, -0.222463f, 0.00229956f, 0.0787843f, -0.298146f, 0.15364f, 0.422376f, -0.00316052f, -0.065554f, -0.314639f, -0.0203384f, -0.12568f, 0.137597f, 0.0472681f, -0.0155034f, 0.0915729f, -0.0434492f, 0.0708109f, -0.259907f, -0.281606f, 0.0336668f, 0.00290279f, -0.0457582f, 0.0204587f, 0.0748535f, 0.10896f, -0.114941f, 0.341296f, -0.145983f, -0.00243768f, -0.163784f, 0.00780689f, 0.0416898f, 0.19927f, -0.0203619f, 0.126787f, 0.0175769f, 0.090465f, -0.0281454f, -0.0283352f, -0.062878f, -0.00824543f, 0.0577269f, -0.0356838f, -0.183849f, -0.105922f, -0.458285f, 0.386142f, -0.135691f, -0.0122484f, -0.0637964f, -0.0721108f, -0.183752f, 0.051937f, -0.0537136f, -0.151839f, 0.0525108f, -0.105778f, 0.0526579f, 0.0319467f, 0.00721022f, 0.015931f, -0.118245f, -0.161505f, -0.0765278f, 0.0816606f, -0.0519579f, 0.131405f, 0.0882517f, 0.0135289f, 0.00717571f, -0.0132329f, -0.0527269f, -0.0285029f, -0.175105f, -0.0976099f, -0.0954225f, -0.0630389f, 0.0653592f, 0.00185614f, -0.0366111f, 0.369186f, 0.0849416f, 0.162407f, 0.0346443f, -0.0640566f, 0.108101f, -0.0627993f, 0.0114187f, -0.0657853f, 0.212115f, -0.0410065f, 0.178538f, -0.00651966f, -0.0676007f, -0.0553108f, -0.15117f, 0.0178784f, -0.109253f, -0.0940641f, 0.196623f, -0.155283f, 0.174357f, -0.0511406f, -0.244828f, -0.126474f, -0.0312608f, 0.141779f, 0.0784074f, 0.111747f, -0.0933663f, -0.0154628f, -0.247222f, 0.0717376f, -0.0699914f, -0.117854f, 0.043086f, -0.159701f, 0.093187f, 0.135276f, -0.0432653f, 0.144248f, -0.0493882f, -0.130766f, 0.0289502f, 0.153047f, -0.0759677f, 0.100053f, 0.0426068f, 0.126817f, 0.139026f, 0.0079263f, 0.00638811f, -0.0557503f, -0.425487f, -0.0620374f, 0.189516f, 0.228989f, 0.0348418f, -0.163509f, -0.181552f, 0.0661127f, -0.0468177f, 0.187197f, 0.324754f, -0.0255124f, 0.257513f, 0.231082f, 0.00856873f, -0.161108f, 0.127674f, 0.515146f, -0.0331044f, -0.222653f, 0.0292809f, 0.0441542f, -0.162483f, -0.206854f, 0.187481f, -0.0886099f, 0.128303f, -0.146049f, -0.0555399f, -0.137777f, 0.10823f, -0.0384749f, 0.150714f, -0.00629233f, 0.00758223f, 0.182685f, -0.109107f, -0.0475901f, -0.0489149f, 0.125202f, 0.387936f, 0.147465f, 0.0267255f, 0.00834023f, -0.230937f, 0.0720756f, 0.0213754f, -0.145921f, 0.188288f, -0.00724145f, 0.0720593f, 0.12054f, -0.0937802f, 0.111518f, 0.113807f, -0.0224267f, 0.000918872f, 0.0510939f, -0.100729f, -0.0113748f, -0.195441f, 0.194377f, 0.063042f, 0.131466f, -0.143403f, -0.101207f, -0.0461864f, -0.0786386f, 0.0694702f, -0.174659f, 0.052939f, 0.0957225f, -0.0624645f, -0.00467642f, -0.0389824f, 0.169244f, -0.169198f, 0.154509f, -0.0408333f, -0.00392956f, 0.0818394f, -0.0360283f, -0.0645103f, -0.0439951f, -0.232618f, -0.0187836f, -0.305638f, -0.15367f, -0.263142f, -0.365009f, -0.0557846f, 0.0987777f, 0.112622f, 0.126643f, -0.0154287f, 0.410527f, 0.0839325f, 0.218945f, -0.197777f, -0.236661f, -0.0767362f, 0.0640633f, 0.0429183f, 0.247504f, 0.096151f, 0.217157f, 0.0230616f, -0.0894283f, -0.480475f, -0.0595669f, -0.207697f, 0.543511f, -0.236827f, 0.0848006f, 0.114375f, 0.0815438f, -0.0779114f, -0.246334f, -0.0856434f, 0.0859081f, -0.245188f, -0.167487f, -0.0286962f, 0.0420175f, -0.104708f, -0.360647f, -0.178622f, 0.0802739f, -0.403851f, -0.149046f, -0.0936857f, 0.20335f, -0.26667f, -0.172801f, -0.188194f, 0.0788952f, -0.097761f, 0.165397f, 0.0536814f, -0.0121249f, 0.0645642f, -0.197621f, 0.343223f, 0.206846f, -0.117368f, 0.372315f, 0.0977782f, -0.0108348f, 0.0480565f, -0.395783f, -0.0272992f, 0.4493f, -0.0253204f, 0.240298f, -0.0210446f, 0.0136658f, -0.209703f, 0.0394403f, 0.0536347f, 0.203603f, -0.0806718f, -0.146511f, -0.0184319f, 0.0612665f, -0.0416399f, -0.118749f, -0.114321f, 0.132476f, -0.201115f, 0.0320644f, -0.0342248f, 0.149371f, -0.183105f, -0.174019f, 0.0291558f, -0.0371416f, -0.20637f, -0.0221642f, -0.0243808f, 0.109895f, -0.0339355f, 0.110659f, -0.0183078f, -0.109368f, -0.156982f, -0.232569f, -0.254057f, 0.036829f, 0.0477044f, 0.0893415f, -0.0468547f, -0.0233467f, 0.111696f, 0.11416f, 0.00163643f, -0.0451474f, 0.0255382f, 0.146856f, 0.0237435f, -0.244903f, -0.0394237f, 0.04121f, 0.0788034f, -0.0847165f, -0.167035f, 0.0716039f, -0.0456932f, -0.0579876f, 0.0435745f, -0.0957146f, 0.144182f, 0.191949f, -0.030095f, -0.0127332f, 0.0240731f, -0.302954f, -0.0498963f, 0.0504293f, 0.00185828f, 0.0157308f, 0.0138583f, -0.0627178f, -0.0809818f, -0.163051f, -0.119121f, 0.162615f, 0.0938851f, -0.0358153f, 0.0605279f, 0.153399f, 0.172163f, -0.0135529f, 0.264674f, 0.0931116f, -0.0829556f, -0.0904257f, 0.0651804f, 0.0971979f, 0.135764f, 0.00560748f, 0.00113381f, 0.0166166f, -0.0337902f, 0.215092f, 0.143647f, -0.0719107f, 0.0728913f, 0.0915091f, 0.119786f, -0.0233742f, -0.0107943f, -0.0189088f, -0.213671f, 0.0715562f, -0.0585021f, -0.00651102f, -0.0199547f, -0.0590933f, -0.0226882f, 0.0698051f, -0.185421f, -0.0292774f, -0.0156158f, 0.0868498f, 0.0324394f, 0.0526942f, -0.0897984f, 0.0523906f, 0.216276f, 0.0217314f, 0.069933f, -0.0170138f, -0.108697f, 0.17184f, -0.12192f, -0.0856008f, -0.14454f, -0.0614749f, -0.20513f, -0.0987468f, 0.377246f, 0.322458f, -0.0113513f, -0.154062f, -0.0354406f, -0.0592655f, -0.194723f, 0.0759742f, -0.27241f, 0.205023f, -0.0866328f, 0.0887998f, -0.0861782f, -0.160422f, 0.26372f, -0.174523f, -0.0417086f, 0.11627f, -0.241481f, 0.106037f, 0.230406f, -0.00373178f, -0.289545f, 0.0478181f, 0.0546625f, -0.112831f, 0.11413f, -0.0338114f, -0.276644f, -0.202101f, 0.244131f, 0.22348f, -0.0596012f, -0.249001f, -0.233605f, 0.133861f, 0.481576f, 0.0828243f, -0.048961f, -0.298039f, 0.24174f, 0.165301f, 0.144264f, -0.0331039f, 0.117238f, -0.100494f, -0.00276593f, -0.0494297f, 0.164274f, 0.248025f, 0.346626f, 0.0293955f, -0.0158841f, -0.0342732f, -0.0916051f, -0.0682649f, -0.148159f, 0.0177302f, 0.174395f, 0.00887111f, 0.219556f, 0.0443972f, 0.031994f, -0.136685f, -0.0384419f, -0.223573f, 0.193168f, 0.00704058f, -0.0204944f, -0.162231f, -0.0174667f, -0.0257717f, -0.379686f, -0.197034f, 0.0588663f, -0.0108227f, 0.00462295f, 0.0607877f, -0.0826533f, 0.292322f, 0.179046f, 0.0259684f, 0.109051f, 0.0336287f, -0.14986f, -0.156986f, 0.0113123f, -0.146308f, 0.0312255f, 0.0900388f, 0.0485344f, 0.0225149f, -0.0628027f, 0.205808f, 0.264115f, 0.200706f, -0.171346f, 0.222929f, -0.116154f, -0.229606f, -0.0159365f, 0.0632624f, 0.170482f, 0.0998196f, 0.120988f, -0.0123911f, 0.00905493f, -0.0770717f, 0.0888349f, -0.0443088f, -0.091535f, -0.113361f, 0.179344f, -0.0819222f, -0.203293f, 0.268047f, -0.16549f, -0.115877f, -0.00540037f, -0.162313f, -0.024072f, -0.00776238f, 0.139374f, -0.141545f, 0.364542f, 0.0998409f, -0.132308f, -0.0611692f, -0.222201f, 0.217635f, -0.028969f, 0.133287f, -0.0701679f, -0.223239f, 0.1735f, -0.300935f, -0.331087f, -0.0774026f, 0.00700099f, -0.050889f, 0.0426544f, -0.0269263f, 0.182528f, -0.0211533f, 0.165361f, -0.00560344f, -0.0916684f, 0.0537287f, -0.0171859f, 0.150231f, -0.0463398f, -0.210416f, 0.116084f, 0.000618289f, 0.032642f, -0.041313f, -0.133617f, -0.0245651f, 0.222918f, 0.0554772f, 0.0569422f, 0.0461985f, -0.140887f, 0.0558413f, -0.280239f, -0.148086f, -0.0930043f, -0.125566f, -0.227357f, -0.000896459f, -0.063988f, -0.0483366f, 0.0269096f, -0.119667f, -0.00046751f, 0.180174f, -0.164642f, 0.124887f, -0.0770997f, -0.0411783f, 0.0635625f, -0.00146476f, -0.0914708f, -0.0656625f, -0.108561f, -0.193573f, -0.188931f, -0.0860618f, -0.0818993f, -0.0755135f, -0.057661f, 0.622867f, -0.164888f, -0.0146513f, 0.12114f, -0.0381493f, -0.0429432f, -0.00114632f, 0.152806f, 0.182858f, 0.0456614f, -0.196948f, -0.194923f, 0.0507841f, 0.100705f, 0.0405356f, -0.159066f, -0.0783517f, -0.0196522f, -0.0555537f, -0.239342f, 0.0705998f, -0.133082f, 0.0528372f, -0.00488614f, 0.0409631f, -0.113939f, -0.0612976f, -0.0762527f, 0.197697f, 0.0758227f, 0.00477326f, 0.00718536f, -0.00283663f, -0.00565972f, -0.143045f, -0.359153f, -0.0199442f, 0.183054f, -0.0272949f, -0.0369538f, 0.00936423f, 0.138781f, -0.0280073f, 0.074564f, 0.0738073f, -0.0228425f, 0.0267949f, -0.0440808f, 0.0330972f, 0.0421482f, -0.0759049f, 0.0367877f, 0.000611786f, -0.0664961f, 0.107665f, 0.080348f, 0.114561f, -0.0625277f, -0.336936f, 0.00241656f, 0.0996729f, -0.147024f, -0.00657156f, 0.0346642f, -0.11526f, -0.0244048f, 0.131415f, -0.0757561f, 0.0910059f, 0.192635f, 0.0214248f, -0.15076f, 0.0308631f, 0.0135955f, 0.109795f, 0.15448f, -0.136777f, 0.324068f, 0.255351f, -0.0435207f, -0.000256286f, -0.24144f, 0.153215f, 0.0371761f, -0.120572f, -0.000650279f, 0.0761261f, 0.150012f, 0.0234282f, -0.173273f, 0.00530774f, 0.0158947f, 0.118934f, 0.0609005f, -0.00305077f, -0.0491176f, 0.0294721f, 0.0408173f, -0.144288f, 0.108612f, -0.129035f, -0.229879f, -0.197721f, 0.00928253f, -0.192634f, 0.0180054f, 0.112896f, 0.308643f, 0.0638411f, 0.0114509f, -0.0296674f, 0.00681838f, 0.00953403f, 0.190453f, 0.0215571f, 0.162467f, 0.00280672f, -0.224467f, 0.0250739f, 0.344814f, -0.0241449f, -0.0715349f, -0.135671f, 0.138025f, 0.0831883f, -0.185534f, -0.0766081f, 0.23669f, -0.168212f, -0.0447883f, -0.0948989f, 0.119909f, 0.0172547f, 0.20523f, -0.0522618f, -0.139692f, -0.0221867f, -0.374366f, 0.305563f, -0.093965f, 0.26367f, 0.26826f, -0.120113f, 0.181069f, 0.0595636f, -0.035254f, 0.092797f, 0.0683566f, 0.26009f, -0.109903f, -0.0667569f, -0.00632765f, -0.0155718f, 0.0697034f, -0.110697f, -0.168407f, 0.173246f, 0.0433319f, 0.122265f, -0.0482872f, -0.0380993f, 0.0520754f, -0.0418153f, -0.0365577f, -0.0188948f, 0.0886975f, 0.18708f, -0.164249f, -0.0988774f, 0.11844f, 0.34449f, -0.0558547f, 0.0128858f, -0.200593f, -0.0294966f, -0.142792f, 0.113688f, 0.0538461f, 0.0832705f, -0.285214f, -0.0358155f, 0.131936f, 0.177233f, 0.039345f, 0.0101316f, -0.0525585f, -0.213105f, 0.0731455f, 0.106898f, -0.0790779f, -0.0522504f, -0.112471f, 0.0358894f, 0.355972f, 0.0846082f, -0.191644f, -0.129434f, -0.121575f, -0.210424f, 0.138086f, -0.0729439f, 0.0399981f, -0.156329f, -0.0841877f, -0.0158926f, -0.0654453f, 0.0424141f, -0.0552049f, 0.0783099f, -0.086003f, -0.0705833f, -0.0930713f, -0.237447f, -0.0428753f, -0.0384833f, -0.158388f, -0.28262f, 0.0603897f, 0.0840117f, -0.204712f, 0.131827f, -0.287084f, -0.0263545f, -0.0383689f, 0.163483f, 0.0187021f, 0.137555f, -0.149314f, 0.00355517f, -0.0213989f, -0.155657f, 0.251854f, 0.071921f, 0.166955f, -0.144698f, 0.0299166f, -0.0326676f, -0.0339456f, 0.178267f, -0.198838f, -0.167434f, -0.144059f, -0.0535104f, -0.121761f, 0.00736743f, -0.273829f, 0.0384594f, -0.100002f, -0.0293561f, -0.144336f, -0.081279f, -0.092103f, -0.0218709f, 0.0480743f, 0.0366159f, -0.226341f, 0.376277f, 0.239523f, 0.0665471f, 0.0967071f, -0.284572f, -0.0612672f, 0.173083f, 0.251548f, 0.366237f, -0.097294f, -0.115455f, -0.106533f, 0.12061f, -0.0251252f, 0.218474f, 0.0258747f, -0.349312f, -0.03086f, -0.0112834f, 0.377036f, 0.10481f, 0.192632f, -0.209615f, -0.0520718f, 0.252099f, -0.0376955f, -0.128197f, -0.0604779f, 0.062335f, 0.0979079f, -0.0173208f, -0.116228f, -0.0833819f, -0.354544f, 0.00208395f, 0.223463f, 0.111678f, 0.217495f, 0.227616f, -0.191947f, 0.136876f, 0.0841131f, -0.0918548f, -0.0551117f, 0.031583f, 0.0662947f, -0.0918927f, -0.0700069f, -0.101924f, 0.0771869f, -0.222044f, 0.341733f, 0.216839f, 0.158049f, -0.0207811f, 0.265334f, -0.0676546f, 0.0104989f, 0.0280063f, -0.0819693f, 0.0560039f, 0.178449f, -0.231633f, 0.268133f, -0.153133f, 0.277766f, -0.161996f, 0.105737f, 0.141149f, 0.171827f, -0.246281f, 0.036081f, 0.178656f, 0.0928143f, 0.133849f, 0.124118f, -0.159469f, -0.115292f, -0.084186f, 0.0696184f, -0.300393f, -0.197953f, 0.0823946f, -0.0813911f, 0.0659584f, 0.0882846f, 0.0861174f, 0.419627f, -0.00947245f, -0.0256945f, 0.066032f, 0.0105351f, -0.201654f, -0.214758f, -0.073861f, 0.0147881f, -0.0919124f, -0.0557611f, 0.257319f, 0.205158f, -0.241559f, 0.0810717f, 0.0647572f, -0.0793482f, 0.0482156f, -0.0315068f, -0.0233638f, 0.0095582f, 0.0350081f, 0.104526f, 0.149122f, -0.0406478f, -0.0364347f, -0.103259f, 0.0677659f, 0.0209091f, -0.19104f, -0.0699992f, -0.0656674f, 0.059468f, 0.157091f, -0.0634586f, -0.31543f, 0.0783401f, 0.175514f, 0.0551213f, 0.431478f, 0.152428f, 0.268605f, 0.162778f, -0.0618447f, 0.0239549f, 0.17639f, 0.0627346f, -0.122518f, 0.014042f, 0.0225123f, 0.283042f, 0.169182f, -0.149132f, -0.0852403f, 0.129375f, -0.171557f, -0.108236f, -0.0832763f, 0.0702404f, -0.151065f, 0.172084f, -0.0865583f, -0.281233f, 0.0737349f, 0.107673f, -0.132628f, -0.113923f, -0.0220805f, -0.0484116f, 0.190196f, -0.0119413f, -0.103643f, -0.0795588f, -0.0628701f, -0.092003f, 0.109332f, -0.0680707f, -0.0703878f, 0.220377f, 0.25792f, -0.0400617f, 0.00383534f, -0.0512265f, 0.113163f, -0.0967303f, -0.0119718f, 0.146078f, -0.032207f, 0.283378f, -0.0535581f, -0.0511378f, -0.112078f, -0.166225f, -0.302206f, 0.0415015f, 0.149807f, 0.0654753f, 0.129742f, -0.133918f, -0.0108582f, 0.0718929f, -0.160119f, -0.0799025f, 0.0370879f, 0.0302997f, 0.710734f, 0.302846f, -0.127064f, 0.00717643f, -0.0597607f, 0.315566f, -0.0664157f, 0.0548926f, 0.0125598f, 0.0912549f, -0.0221578f, 0.064797f, 0.175228f, -0.0231092f, 0.0450248f, 0.0659618f, 0.170886f, 0.0455298f, 0.12353f, 0.168319f, 0.00175265f, -0.017842f, 0.0176953f, 0.11388f, -0.0759816f, 0.135687f, -0.0667012f, 0.0195327f, -0.0677163f, -0.238615f, -0.0506228f, -0.0042463f, -0.088879f, 0.11047f, 0.0152311f, 0.392598f, -0.0663986f, 0.0238173f, 0.104183f, 0.173229f, -0.078687f, 0.0549224f, 0.0702946f, -0.155257f, -0.00666196f, 0.107687f, -0.0822013f, 0.00176032f, 0.00526427f, 0.0257768f, -0.0179824f, -0.0970803f, 0.125429f, 0.0785212f, 0.01607f, 0.0724246f, -0.063267f, -0.0186519f, -0.186105f, 0.0392277f, 0.0519158f, 0.0658975f, 0.192657f, 0.0074847f, -0.0522134f, 0.0478995f, 0.209721f, 0.0206568f, 0.206557f, -0.0219272f, 0.0303466f, 0.0512993f, -0.109187f, -0.242464f, 0.0635056f, -0.208179f, 0.0851479f, -0.194723f, 0.101712f, -0.125734f, 0.195146f, 0.166048f, -0.123494f, -0.363973f, 0.0845442f, 0.0993194f, -0.205672f, -0.0712535f, -0.00138997f, -0.0801062f, -0.0713147f, 0.229571f, -0.183904f, -0.0575873f, -0.0858063f, 0.177734f, -0.00221107f, 0.352761f, -0.105495f, -0.132055f, 0.318513f, 0.0773434f, -0.110388f, -0.0183142f, -0.238359f, -0.472904f, -0.18216f, 0.283372f, 0.111151f, 0.0112166f, -0.0195982f, -0.373282f, -0.116988f, -0.0437578f, -0.210352f, -0.0384287f, 0.10774f, 0.299722f, 0.0833168f, 0.117521f, 0.229754f, 0.265097f, -0.427707f, -0.177032f, -0.105087f, -0.0368379f, -0.252744f, -0.0611404f, 0.0396236f, 0.0668686f, -0.196696f, -0.095638f, 0.232873f, -0.0947711f, -0.0621819f, -0.0272081f, -0.0919534f, 0.237016f, -0.221911f, 0.156095f, -0.0867896f, 0.119627f, 0.0104915f, -0.0174289f, -0.0293558f, 0.212784f, -0.150903f, -0.0873453f, -0.0224672f, -0.20563f, 0.203815f, -0.217191f, -0.337876f, -0.106484f, -0.138711f, -0.0433202f, 0.00251476f, -0.33376f, 0.0980823f, 0.00419825f, -0.0359969f, -0.136309f, 0.204486f, 0.14394f, -0.0858896f, 0.127459f, 0.052363f, 0.06372f, -0.0680789f, -0.24227f, 0.0942464f, -0.433569f, 0.104546f, -0.0788745f, -0.205065f, -0.0241214f, 0.0387047f, -0.164896f, 0.172538f, 0.106816f, 0.0699877f, 0.080455f, -0.113745f, -0.0191571f, -0.0466055f, -0.119156f, 0.0700633f, -0.131178f, -0.236757f, -0.0327689f, -0.374597f, -0.0753969f, -0.603952f, -0.142328f, 0.0476839f, -0.123212f, -0.13511f, 0.184418f, 0.0032258f, -0.0610786f, 0.0579285f, -0.140431f, -0.0389422f, -0.1025f, 0.186579f, -0.0904394f, 0.0566501f, -0.0361353f, 0.0841929f, -0.206553f, 0.074313f, -0.151402f, 0.0591014f, 0.168367f, -0.0222678f, 0.00126923f, 0.0370901f, 0.199635f, -0.0409459f, -0.0752846f, 0.0106103f, 0.103508f, -0.0933429f, 0.0555399f, -0.0753587f, 0.157995f, -0.0121208f, 0.0445934f, 0.14731f, -0.0564563f, -0.077038f, -0.113742f, -0.0165365f, 0.0584198f, 0.0482481f, 0.0102742f, 0.0274366f, 0.0435249f, 0.00185516f, -0.0612592f, -0.00849109f, 0.0379094f, 0.259572f, 0.059595f, 0.0225639f, -0.134823f, -0.121442f, -0.0148404f, 0.0644151f, -0.117331f, 0.0212701f, -0.1015f, 0.0829835f, 0.0504355f, -0.163341f, -0.017739f, 0.221456f, -0.126695f, 0.000929893f, -0.164842f, 0.095438f, 0.0440061f, -0.0398796f, -0.111603f, -0.139055f, -0.209444f, -0.00121809f, 0.059801f, 0.0863043f, 0.356606f, -0.0577197f, 0.0589731f, 0.228801f, -0.306339f, -0.0654367f, 0.0520305f, 0.2477f, -0.0710013f, -0.0109459f, 0.00335819f, -0.0851629f, -0.105662f, -0.0294552f, 0.0278977f, 0.103411f, -0.0980286f, 0.0831626f, -0.101802f, 0.0439892f, -0.0784978f, -0.0757124f, 0.0276213f, -0.0436687f, 0.230099f, -0.0890047f, -0.0234635f, -0.0852236f, -0.0403992f, 0.0107869f, -0.00587808f, -0.0340657f, -0.00949686f, -0.0683479f, -0.00254342f, 0.000804f, -0.0300783f, 0.0795295f, -0.022364f, -0.216573f, 0.118107f, -0.00752504f, -0.0221176f, 0.215335f, -0.202046f, -0.100861f, 0.0389372f, -0.0589593f, -0.0256872f, -0.0289455f, 0.0776684f, -0.411717f, 0.293031f, 0.211307f, -0.0540076f, -0.204111f, 0.162447f, 0.113591f, -0.0514214f, 0.0229745f, 0.0352312f, 0.0707327f, 0.132736f, 0.0624009f, 0.134697f, 0.113606f, -0.00169021f, 0.0192285f, 0.33414f, 0.0420162f, 0.109934f, -0.0869429f, 0.00465343f, 0.0530752f, 0.0313925f, 0.0480774f, -0.146687f, -0.053109f, -0.0379744f, 0.0122019f, -0.021428f, -0.154874f, -0.0168516f, -0.0568673f, -0.0607692f, -0.434403f, 0.0477958f, -0.138136f, 0.178586f, 0.168908f, -0.284395f, 0.127771f, -0.0980468f, -0.220168f, 0.00086209f, -0.118443f, 0.105581f, -0.0114252f, -0.012451f, 0.00975263f, -0.176588f, -0.180941f, 0.00749744f, 0.0498208f, 0.0799954f, 0.0886973f, -0.061933f, 0.10768f, 0.0114262f, 0.193558f, 0.243516f, -0.0563447f, 0.100739f, -0.00190589f, 0.0809831f, 0.41288f, 0.0515075f, -0.121871f, 0.126543f, 0.261022f, 0.0467623f, -0.0360299f, -0.136868f, 0.136259f, -0.0500692f, -0.256675f, 0.100206f, -0.06036f, -0.322195f, 0.125372f, 0.193082f, 0.0473874f, 0.132216f, 0.240623f, 0.192635f, -0.00934925f, -0.045914f, -0.166696f, 0.086872f, -0.0276678f, -0.0665108f, 0.266339f, -0.0353262f, 0.158417f, -0.285848f, 0.120186f, 0.0548689f, -0.0326603f, -0.383041f, -0.182191f, -0.0167416f, -0.0360491f, -0.0325039f, 0.0518329f, 0.115549f, 0.130139f, 0.152888f, -0.170668f, -0.143866f, 0.0448703f, -0.0423743f, -0.118023f, 0.226404f, 0.00380555f, -0.0556225f, 0.111643f, -0.000808296f, 0.221888f, -0.0465153f, -0.0175943f, -0.222517f, -0.156542f, 0.162187f, -0.000673403f, 0.183668f, 0.0201649f, -0.0564224f, 0.0668854f};
+ model->setOperandValue(op56, op56_init, sizeof(float) * 4096);
+ static float op58_init[] = {-0.123297f, 1.03112f, -0.605606f, -0.00193548f, 0.930903f, 0.00530672f, 0.0289674f, 0.0371349f, 0.0378613f, 0.0165883f, 1.03057f, 1.32473f, 0.00546759f, 1.61818f, 1.17308f, 1.15808f, 0.121822f, -0.000576973f, -0.754154f, -0.0371096f, -0.64391f, 0.00522935f, 1.5031f, -0.151665f, 0.0318197f, 1.04132f, -0.000814885f, 0.00560421f, 0.00324315f, -0.665056f, 1.39725f, 0.895453f, 0.43012f, -0.19119f, 0.00455064f, -0.0945014f, -0.00135079f, 1.15827f, 1.27354f, 0.064009f, -0.00115699f, 1.73396f, 1.1265f, -0.000266075f, -0.0288338f, 0.00843227f, 1.43842f, -0.0304834f, 1.27166f, -0.0468991f, 0.00850764f, 0.00357342f, 0.0125746f, 1.28928f, 0.0119823f, -0.734399f, -0.59924f, -0.61645f, 0.0474129f, 0.996462f, 1.90151f, 0.0524316f, 1.28534f, 0.120804f};
+ model->setOperandValue(op58, op58_init, sizeof(float) * 64);
+ static float op59_init[] = {0.156719f, -0.365274f, 0.46557f, 0.194803f, -0.196279f, 0.140896f, 0.048415f, 0.0850183f, 0.121988f, 0.113677f, -0.0442027f, -0.301051f, 0.127761f, -0.242727f, -0.0352292f, -0.174421f, 0.129519f, 0.0561737f, 0.512661f, 0.169123f, 0.0472558f, -0.0649848f, -0.114959f, 0.0635479f, 0.172206f, -0.0733962f, 0.27192f, 0.0156798f, -0.188786f, 0.418895f, -0.197189f, -0.132645f, -0.239554f, 0.0477091f, 0.0892152f, 0.217369f, 0.196861f, -0.223356f, -0.0580539f, 0.0847171f, 0.12474f, -0.239668f, -0.132419f, 0.188901f, 0.134479f, 0.153927f, -0.267787f, 0.0921442f, -0.253014f, 0.166386f, 0.161665f, 0.130119f, 0.0325234f, -0.0883673f, 0.141165f, -0.114373f, 0.337908f, 0.422624f, 0.120521f, -0.272987f, -0.0879027f, 0.39587f, -0.0924423f, 0.383058f, 0.236604f, -0.296603f, 0.606555f, 0.15836f, -0.218761f, 0.217377f, 0.250057f, 0.190977f, 0.265866f, 0.184472f, -0.0895751f, -0.31142f, 0.302541f, -0.426601f, -0.205388f, -0.319032f, 0.176047f, 0.108955f, 0.47963f, 0.217736f, 0.169026f, -0.0729668f, -0.310251f, 0.134645f, 0.279504f, -0.255052f, 0.408038f, 0.122761f, 0.0185433f, 0.409245f, -0.410897f, -0.195616f, -0.0545787f, 0.212299f, 0.16841f, 0.449203f, 0.313798f, -0.43426f, -0.244359f, 0.162991f, 0.162584f, -0.218486f, -0.331835f, 0.31621f, 0.246989f, 0.283238f, -0.546161f, 0.247583f, -0.212179f, 0.275593f, 0.468498f, 0.318836f, 0.206248f, -0.341647f, 0.209406f, 0.529377f, 0.514118f, 0.679407f, 0.232351f, -0.173954f, -0.291855f, 0.601301f, -0.230597f, 0.295756f, 0.148746f, -0.0206303f, 0.30146f, -0.00565797f, -0.134681f, 0.139712f, 0.203158f, 0.166793f, 0.167439f, 0.0876717f, 0.0390046f, -0.0658044f, 0.202852f, -0.434664f, -0.216976f, -0.159045f, 0.0890226f, 0.0870474f, 0.101252f, 0.0657062f, 0.0714723f, -0.0286613f, -0.233553f, 0.0811676f, 0.156996f, -0.149108f, 0.155671f, 0.130916f, 0.0883327f, 0.372619f, -0.300563f, -0.165772f, 0.131113f, 0.160236f, 0.115812f, 0.382637f, 0.176239f, -0.295282f, -0.241622f, 0.122368f, 0.0595133f, -0.053039f, -0.159197f, 0.166583f, 0.136762f, 0.136108f, -0.346738f, 0.198406f, -0.0226704f, 0.140314f, 0.332062f, 0.209204f, 0.200125f, -0.319958f, 0.127433f, -0.307969f, 0.373432f, 0.42893f, 0.159448f, 0.043322f, -0.237465f, 0.418199f, -0.135938f, -0.120479f, 0.250778f, -0.337925f, 0.097704f, 0.35875f, -0.213009f, 0.228708f, 0.0488628f, 0.125034f, 0.199651f, 0.210063f, -0.343646f, -0.400311f, 0.191584f, -0.203307f, -0.157494f, -0.308041f, 0.15821f, 0.174559f, 0.468329f, 0.309438f, 0.247248f, 0.130968f, -0.0867318f, 0.206511f, 0.30064f, -0.171905f, 0.435259f, 0.123804f, -0.253817f, 0.342408f, -0.184797f, -0.255919f, -0.396232f, 0.194991f, 0.218345f, 0.111341f, 0.2816f, -0.204434f, -0.221971f, 0.143186f, 0.24028f, -0.221973f, -0.291024f, 0.283368f, 0.214397f, 0.266395f, -0.118249f, 0.188255f, -0.265134f, 0.262492f, 0.209908f, 0.3002f, 0.169594f, -0.235555f, 0.225255f, -0.228316f, 0.251338f, -0.0592531f, 0.194377f, -0.297403f, -0.282513f, 0.811137f, -0.231202f, 0.369398f, 0.390241f, -0.370919f, 0.279303f, 0.319676f, -0.331098f, 0.314811f, 0.338441f, 0.285473f, 0.431892f, 0.411534f, -0.429208f, -0.423523f, 0.339615f, -0.425702f, -0.406956f, -0.403893f, 0.274328f, 0.292235f, 0.440492f, 0.350801f, 0.333076f, 0.291294f, -0.395539f, 0.376256f, 0.41386f, -0.328553f, 0.295611f, 0.317178f, 0.251311f, 0.28074f, -0.367861f, -0.367438f, -0.0140023f, 0.386603f, 0.351703f, 0.113581f, 0.504158f, -0.390251f, -0.395837f, 0.315225f, 0.314305f, -0.349378f, -0.403343f, 0.481539f, 0.430096f, 0.510183f, -0.338992f, 0.327904f, -0.358538f, 0.626967f, 0.420674f, 0.422722f, 0.341068f, -0.412864f, 0.351495f, 0.53941f, 0.579613f, -0.191784f, 0.378605f, -0.358006f, -0.479399f, 0.996936f, -0.387605f, 0.108954f, 0.221572f, -0.122325f, 0.284289f, 0.0357301f, -0.134014f, 0.1424f, 0.337351f, 0.214974f, 0.27791f, 0.231705f, -0.121512f, -0.0962304f, 0.177933f, -0.38048f, -0.305226f, -0.240732f, 0.196756f, 0.162702f, 0.269918f, 0.104865f, 0.185338f, 0.229805f, -0.404439f, 0.23318f, 0.186489f, -0.264237f, -0.0833724f, 0.282605f, 0.358322f, 0.363139f, -0.252312f, -0.272217f, 0.391736f, 0.206354f, 0.185641f, -0.0126735f, 0.327625f, -0.270849f, -0.221633f, 0.238607f, 0.125709f, -0.266263f, -0.142663f, 0.28435f, 0.256496f, 0.342364f, -0.29405f, 0.211074f, -0.168167f, 0.403277f, 0.227939f, 0.181339f, 0.222679f, -0.209901f, 0.221502f, -0.237734f, 0.481628f, -0.220895f, 0.22485f, -0.0592914f, -0.274332f, 0.666573f, -0.192692f, -0.410142f, 0.115178f, -0.0784163f, -0.0486908f, 0.214595f, -0.168477f, 0.101383f, 0.0139011f, 0.103151f, 0.137509f, 0.147913f, -0.231564f, -0.145663f, 0.0984321f, -0.00238841f, -0.147452f, -0.250834f, 0.0683556f, 0.170684f, 0.445099f, 0.168504f, 0.282291f, 0.18098f, 0.0124517f, 0.162016f, 0.179294f, -0.135994f, 0.180023f, 0.13271f, -0.108859f, -0.0147587f, -0.0215866f, -0.200777f, -0.673948f, 0.127962f, 0.163465f, -0.258157f, 0.0837923f, -0.0756665f, -0.305415f, 0.0867349f, 0.158782f, -0.0837804f, -0.180023f, 0.109462f, 0.127051f, 0.142069f, 0.143861f, 0.128167f, -0.118189f, 0.153459f, -0.0121548f, 0.231083f, 0.168402f, -0.222204f, 0.128066f, -0.190775f, -0.0652145f, -0.0485893f, 0.156782f, -0.122296f, -0.30449f, 0.64902f, -0.210956f, 0.0574174f, 0.234389f, -0.208773f, -0.145177f, 0.227716f, -0.266999f, 0.125867f, 0.184588f, 0.133689f, 0.285285f, 0.319349f, -0.396718f, -0.179921f, 0.0997811f, -0.142402f, -0.247277f, -0.319458f, 0.18121f, 0.223002f, -0.0734019f, 0.180704f, 0.497347f, 0.385627f, -0.208561f, 0.275091f, 0.19304f, -0.253147f, -0.110287f, 0.290269f, 0.241253f, -0.0563772f, -0.0296443f, -0.276056f, -0.248907f, 0.207276f, 0.2393f, -0.350156f, 0.214404f, -0.0767594f, -0.250012f, 0.20857f, 0.221042f, -0.225087f, -0.190393f, 0.251928f, 0.237866f, 0.330792f, 0.117291f, 0.149372f, -0.262906f, 0.405511f, 0.0345566f, 0.20271f, 0.197317f, -0.273887f, 0.22686f, 0.531326f, 0.153736f, 0.00288367f, 0.218847f, -0.308928f, -0.292032f, 0.659711f, -0.275348f, -0.222431f, 0.165082f, -0.149484f, 0.0457284f, 0.0355357f, -0.0642681f, 0.0418851f, 0.223436f, 0.0792975f, 0.212354f, 0.186616f, -0.222066f, -0.0531161f, -0.00979124f, -0.113867f, -0.123542f, -0.193267f, 0.16783f, 0.0824869f, -0.0106096f, 0.0758056f, 0.329999f, 0.257932f, -0.214898f, 0.168143f, 0.0229075f, -0.209178f, -0.342465f, 0.202302f, 0.299346f, 0.25869f, -0.03226f, -0.167826f, 0.204429f, 0.125327f, 0.0956765f, -0.306913f, 0.165133f, -0.0404995f, 0.00542095f, 0.160975f, 0.097063f, -0.27302f, -0.0479996f, 0.172678f, 0.133329f, 0.240162f, -0.0707717f, 0.0715785f, -0.149838f, 0.302035f, -0.0312277f, 0.0150638f, 0.0953851f, -0.0633347f, 0.141286f, -0.323627f, 0.0918484f, 0.132915f, 0.0733498f, -0.124731f, -0.16095f, 0.403907f, -0.0907782f, -0.305642f};
+ model->setOperandValue(op59, op59_init, sizeof(float) * 576);
+ static float op61_init[] = {-0.177357f, -0.172575f, 0.420523f, 0.408536f, 0.0945462f, 0.823321f, 0.190204f, -0.372994f, 1.65173f, -0.167175f, 0.917709f, 0.954723f, 1.42432f, 0.403654f, 0.262092f, 1.04362f, 0.410467f, 0.524981f, 0.298542f, 0.199161f, 0.46461f, -0.0522062f, -0.0135337f, 1.47301f, -0.217844f, 0.813746f, 1.6661f, 0.120697f, 0.533689f, 0.0370758f, 0.292968f, 0.582308f, -0.170719f, 0.2191f, 0.20729f, -0.00339969f, -0.0205846f, 1.16228f, 1.13561f, 0.0840446f, 0.641917f, -0.698399f, 0.926493f, 0.994014f, 0.307775f, -1.16438f, 0.0498876f, 0.0659915f, 0.851326f, -0.27261f, 0.0224912f, 0.188224f, 0.514921f, 1.66756f, 0.222884f, 0.49327f, 0.657591f, 0.859542f, 1.33821f, -0.109509f, 0.630131f, 0.407995f, 0.0164108f, 1.03597f, 0.405228f, 0.285473f, 1.25656f, 0.442834f, 1.16541f, -0.147579f, 0.234518f, 0.564133f, -0.672565f, -0.272256f, -0.843866f, 0.548911f, -0.145986f, -0.401038f, 0.016665f, 0.260142f, 0.58887f, 1.14477f, 0.883501f, 0.161531f, 0.997724f, 0.0126923f, 0.0445706f, -0.680047f, 1.00268f, 0.48881f, 0.556223f, 0.504591f, 0.917035f, 0.0473247f, 0.191936f, 0.804381f, 0.49664f, -0.0397248f, 0.92709f, -0.139789f, 0.415914f, -0.0327383f, -1.44135f, 0.67827f, 0.814107f, 0.656546f, -1.07413f, -0.0251088f, 0.414193f, 0.0932675f, 0.0132784f, 0.292683f, 0.329189f, 1.05858f, -0.998873f, 0.42996f, -0.197071f, 0.698117f, 0.622712f, 0.231817f, 0.0806911f, 0.0574902f, 0.227412f, 0.182395f, 0.478429f, 1.13242f, 0.602f, 0.848106f};
+ model->setOperandValue(op61, op61_init, sizeof(float) * 128);
+ static float op62_init[] = {-0.0953387f, -0.0241844f, -0.245502f, 0.223093f, -0.00234177f, 0.0567266f, 0.141229f, 0.0298321f, 0.0805704f, -0.332235f, -0.0699764f, 0.140453f, 0.191067f, 0.0697032f, -0.0457525f, -0.173236f, -0.143561f, -0.0576257f, 0.145713f, -0.159888f, 0.110944f, -0.0165625f, 0.149536f, 0.0979629f, 0.193839f, -0.101296f, 0.220719f, 0.152941f, 0.12349f, -0.178112f, -0.137191f, 0.110603f, 0.104661f, -0.11074f, 0.0687107f, -0.00464365f, 0.191844f, -0.305179f, 0.106459f, -0.283352f, -0.160429f, 0.143435f, 0.264719f, 0.401874f, 0.0653386f, -0.144139f, -0.0904675f, 0.215576f, -0.026088f, -0.0908799f, 0.00507214f, -0.0940384f, -0.240861f, 0.171879f, 0.0145143f, 0.0972819f, 0.170262f, 0.0256994f, -0.199153f, 0.120436f, -0.124941f, -0.0445037f, 0.150898f, -0.0594313f, 0.0442631f, -0.0491294f, -0.0957917f, -0.110671f, 0.0988712f, -0.048392f, -0.0406623f, -0.0533968f, 0.156252f, -0.0346959f, 0.207246f, -0.100856f, 0.0313422f, 0.00839215f, 0.193575f, 0.119389f, 0.130725f, -0.0987341f, -0.0147687f, -0.0253771f, 0.0580884f, -0.0174773f, 0.0859878f, 0.00799177f, 0.0880935f, 0.0876891f, -0.011503f, 0.00780917f, -0.174531f, -0.135223f, 0.148092f, -0.127871f, -0.041436f, 0.30698f, -0.127153f, -0.0786735f, -0.113721f, -0.109395f, 0.218485f, 0.0407013f, 0.00677337f, 0.0606415f, -0.0847764f, -0.0283162f, 0.0375975f, 0.235108f, 0.0247004f, -0.0103627f, 0.0494522f, -0.15386f, 0.0450112f, -0.00381239f, 0.057318f, -0.0486842f, 0.0650243f, -0.298533f, -0.216992f, -0.0383228f, -0.0980228f, 0.0827745f, -0.0488783f, -0.146196f, 0.111419f, -0.00390476f, 0.0590826f, 0.129497f, -0.0461442f, 0.199943f, -0.157626f, 0.0503393f, -0.0235719f, 0.0704844f, -0.0351197f, 0.116875f, -0.0868494f, 0.238092f, -0.0606355f, -0.0532538f, -0.190276f, -0.0214113f, 0.00628937f, 0.0136869f, -0.438307f, -0.00920097f, 0.0381332f, 0.298624f, 0.201758f, 0.180181f, -0.223815f, -0.0588913f, 0.0905753f, -0.0121884f, 0.0994635f, -0.194738f, -0.125678f, 0.017789f, -0.256984f, -0.194566f, 0.127923f, -0.131654f, -0.0536943f, 0.131102f, -0.234834f, -0.264573f, 0.168637f, 0.0925921f, -0.06179f, -0.0334508f, 0.0475726f, 0.243269f, -0.182258f, 0.0311164f, -0.279817f, -0.0426198f, 0.0879277f, 0.0968555f, -0.090005f, -0.135364f, 0.0673796f, -0.130019f, 0.0229569f, -0.0501192f, -0.0158651f, 0.272929f, -0.0579989f, -0.0781909f, -0.0830032f, 0.192416f, 0.326595f, -0.114591f, -0.139978f, 0.059354f, -0.0123628f, -0.216431f, 0.136836f, 0.122407f, 0.201422f, -0.205127f, 0.0882234f, -0.157238f, -0.0841705f, 0.0801818f, -0.0716602f, -0.0476026f, -0.064695f, -0.0399169f, 0.101453f, 0.23758f, -0.0521789f, -0.111447f, -0.0723899f, -0.106285f, 0.17047f, -0.0868149f, -0.113541f, 0.19687f, -0.0695934f, 0.0944359f, 0.203195f, -0.0774108f, -0.127489f, -0.161493f, -0.176167f, 0.124097f, 0.0754277f, 0.0131164f, -0.169331f, -0.0665129f, 0.00304899f, 0.0642673f, -0.077984f, -0.192228f, 0.146966f, 0.0873634f, 0.129664f, 0.0276052f, -0.14604f, 0.0526255f, -0.205719f, 0.17587f, 0.224292f, -0.0617924f, 0.0494627f, -0.264909f, -0.11943f, -0.0809093f, -0.157066f, 0.240364f, -0.00308164f, 0.0513865f, 0.0608911f, -0.129499f, -0.0850342f, 0.0616741f, 0.170554f, 0.369029f, 0.00230556f, -0.037274f, 0.00618093f, -0.100897f, 0.208801f, 0.0209869f, -0.108009f, 0.199826f, -0.013086f, 0.0684512f, 0.0424486f, -0.0635461f, -0.0835127f, 0.00274104f, -0.152878f, -0.102652f, 0.0222148f, -0.0273969f, -0.0789755f, 0.174444f, 0.0992732f, -0.03896f, -0.0277141f, -0.105894f, -0.0427515f, -0.0665887f, 0.0805791f, -0.0284427f, -0.129105f, -0.0297402f, -0.042449f, -0.0950194f, -0.165564f, -0.0343413f, 0.0955673f, 0.032212f, -0.188333f, -0.136999f, 0.0215087f, 0.0187289f, -0.0890322f, 0.032522f, -0.0638465f, -0.146451f, 0.0328377f, -0.0422163f, -0.0181058f, 0.106993f, 0.177203f, -0.034703f, -0.00458581f, -0.150792f, -0.138898f, 0.058119f, 0.13875f, 0.118576f, 0.0229766f, 0.126455f, -0.027208f, -0.0145826f, 0.0837303f, 0.00306676f, -0.107717f, 0.0750256f, 0.0986885f, -0.0671511f, 0.12851f, -0.027611f, -0.162145f, -0.1239f, -0.0163356f, -0.142353f, 0.158199f, -0.0381832f, 0.233147f, -0.0192525f, 0.0465296f, -0.0200957f, -0.266421f, -0.0643567f, -0.150419f, 0.200596f, -0.0461924f, 0.184437f, -0.0361649f, -0.0114102f, -0.0716236f, -0.00776205f, 0.0170785f, -0.0349039f, 0.00978461f, -0.0531906f, -0.0531416f, 0.021919f, -0.0332001f, -0.00136944f, -0.0856474f, 0.0210274f, -0.0984917f, -0.087105f, -0.0433172f, 0.000901373f, 0.104299f, -0.075512f, 0.117203f, -0.151919f, 0.018446f, 0.0362332f, -0.0542094f, 0.0029671f, 0.0763312f, -0.0382438f, -0.0148295f, -0.0573005f, -0.0565321f, -0.182477f, -0.102897f, -0.183568f, -0.0471296f, -0.0136786f, -0.0507725f, 0.16092f, 0.0179174f, -0.059787f, -0.0997094f, 0.224086f, -0.204281f, -0.0522675f, 0.0374141f, -0.155536f, -0.102499f, 0.0739373f, -0.00920441f, 0.0245545f, 0.0248828f, -0.0414446f, 0.038028f, 0.0999388f, 0.15474f, -0.0139206f, 0.02111f, 0.0619378f, 0.0691533f, 0.0138188f, -0.0558455f, -0.0198737f, 0.039582f, -0.01887f, 0.00737902f, 0.143391f, -0.117902f, -0.0353908f, -0.00477006f, 0.039778f, 0.211528f, 0.22491f, 0.0103716f, -0.22544f, -0.148001f, 0.0987792f, 0.061551f, -0.0651915f, 0.00370042f, -0.118121f, 0.0259977f, 0.0278229f, 0.191413f, 0.119108f, 0.0234228f, 0.0539449f, -0.156933f, 0.148975f, -0.106056f, 0.0918359f, -0.297205f, 0.110361f, -0.0153733f, -0.0414646f, -0.0611353f, -0.171476f, -0.212792f, -0.250916f, 0.0778846f, 0.00800212f, 0.255183f, -0.0662844f, 0.0343068f, 0.0730561f, 0.216196f, -0.145865f, -0.0311332f, 0.052584f, -0.0401841f, -0.0396542f, 0.0550662f, -0.125537f, 0.186276f, -0.0594971f, 0.00549944f, 0.285493f, 0.208613f, -0.0887282f, -0.0210302f, -0.0401873f, -0.0953811f, -0.237603f, -0.028703f, 0.0215663f, -0.0539647f, 0.0557096f, -0.117203f, 0.153713f, 0.362257f, -0.0609375f, 0.0384895f, 0.130828f, -0.0307443f, -0.00542914f, 0.0992374f, 0.0918971f, -0.114752f, 0.0337644f, 0.0291077f, -0.0798126f, -0.131222f, -0.0782515f, -0.0864417f, 0.120139f, 0.0122657f, -0.0854485f, 0.0804626f, 0.0469466f, 0.213609f, 0.0306777f, 0.129203f, -0.0825762f, 0.0602348f, -0.0536721f, -0.0433699f, 0.172343f, -0.241907f, 0.0598576f, 0.0373925f, -0.34761f, -0.106615f, 0.0711502f, 0.0494729f, 0.0711197f, 0.203652f, 0.0816404f, -0.145958f, 0.0436592f, 0.0577633f, 0.172802f, -0.13152f, 0.259134f, -0.0593447f, 0.0428669f, -0.122551f, -0.0333484f, -0.032995f, 0.14349f, -0.0732261f, -0.00402103f, 0.0950239f, -0.207509f, -0.156229f, -0.0491978f, -0.010225f, -0.111581f, -0.231642f, -0.140697f, -0.0517385f, 0.0896968f, 0.0147983f, -0.135717f, 0.00696393f, -0.219072f, 0.0486572f, 0.185395f, 0.036238f, -0.278855f, -0.21836f, -0.209137f, 0.0443364f, 0.251357f, 0.0377052f, 0.0568121f, 0.142558f, -0.187144f, -0.0526536f, 0.0861777f, 0.148993f, -0.109515f, -0.0174709f, -0.0720668f, -0.0319027f, -0.051688f, -0.0690035f, -0.0360124f, -0.186636f, -0.228217f, 0.230424f, -0.14562f, -0.0307255f, -0.05532f, 0.139434f, -0.0524785f, -0.22543f, -0.248502f, -0.146947f, -0.185527f, -0.125126f, -0.108528f, -0.229934f, 0.00405115f, -0.0614616f, -0.240347f, -0.119641f, 0.0144112f, 0.116905f, -0.254239f, 0.139141f, 0.278231f, -0.305559f, -0.297024f, 0.249937f, 0.123252f, 0.130107f, -0.115757f, -0.162641f, 0.203566f, -0.00904306f, 0.0392764f, -0.0102981f, 0.0137775f, -0.356907f, -0.0427089f, 0.0814957f, 0.176135f, -0.101545f, 0.126612f, -0.202297f, -0.162092f, -0.0485046f, -0.328634f, -0.110551f, 0.211006f, -0.0684618f, -0.220725f, 0.325154f, -0.0431201f, 0.176071f, 0.0354674f, 0.214825f, -0.0966968f, 0.541647f, 0.410384f, -0.232051f, -0.0424405f, -0.090372f, 0.0599928f, 0.0404174f, 0.0593689f, 0.254241f, -0.0516585f, -0.295644f, 0.0639189f, 0.382999f, -0.0180815f, 0.108807f, -0.326388f, 0.121613f, -0.179631f, -0.0412397f, 0.277325f, -0.131044f, 0.142405f, -0.1689f, -0.167921f, 0.0134091f, -0.0816111f, -0.122305f, 0.0465929f, 0.0582103f, 0.0213537f, -0.191196f, 0.146126f, -0.286636f, -0.151251f, 0.157123f, 0.0259902f, -0.0718361f, -0.0285629f, -0.0252886f, -0.237384f, -0.206108f, -0.059966f, -0.295427f, -0.0269647f, 0.120832f, 0.169045f, -0.214632f, -0.245781f, -0.0835915f, -0.10917f, 0.0876514f, -0.15755f, -0.139451f, -0.243682f, -0.0477444f, -0.0047706f, 0.170594f, 0.252875f, 0.382242f, 0.034015f, 0.0378908f, 7.44117e-05f, 0.0489474f, -0.0471149f, -0.00952115f, 0.112105f, 0.129571f, -0.0225278f, 0.00635074f, 0.0391828f, 0.115146f, 0.321583f, -0.127577f, 0.0656363f, -0.152316f, -0.102398f, 0.129086f, -0.0323424f, 0.109245f, -0.299912f, -0.157622f, -0.163115f, 0.00175282f, -0.104132f, 0.134644f, 0.0513596f, -0.265645f, 0.175529f, 0.0789774f, 0.0928803f, -0.225334f, -0.0812216f, -0.0107617f, -0.132324f, 0.0222156f, -0.17776f, 0.183347f, -0.14507f, -0.140203f, -0.0573028f, -0.020854f, 0.17842f, 0.24758f, -0.0946229f, -0.0486922f, -0.0720241f, -0.0878456f, -0.00960612f, -0.151868f, 0.134729f, 0.0370757f, 0.133425f, -0.195761f, -0.214258f, -0.0244296f, 0.129227f, 0.163689f, 0.0083368f, -0.295315f, 0.110208f, -0.0501622f, 0.0302764f, 0.120889f, -0.0426585f, -0.0380599f, -0.109828f, 0.0860721f, -0.0969719f, -0.0873883f, -0.00912497f, -0.178844f, -0.0372225f, 0.079708f, 0.4573f, 0.0596798f, -0.111494f, -0.290755f, -0.217282f, -0.290313f, 0.359658f, 0.166825f, -0.115359f, -0.141505f, -0.0781963f, -0.136558f, -0.30383f, 0.236264f, 0.0501613f, 0.02327f, -0.312279f, 0.0989664f, 0.0278311f, -0.0846364f, -0.124571f, -0.0106312f, -0.122122f, 0.109057f, -0.130125f, 0.328936f, -0.201174f, -0.0957539f, 0.100776f, -0.0877186f, -0.0494666f, -0.0799321f, 0.0866307f, 0.239021f, -0.0393407f, 0.00211688f, 0.191276f, -0.107723f, 0.0579125f, -0.254141f, -0.205435f, -0.21888f, -0.0760634f, -0.0800579f, 0.0802752f, 0.0577335f, -0.0333967f, -0.0600032f, -0.0492195f, -0.0109384f, -0.0357511f, 0.0251979f, 0.0619297f, -0.1517f, -0.0838477f, 0.0907932f, -0.0508225f, -0.0216297f, -0.0565362f, 0.00216236f, -0.0664059f, 0.0194643f, -0.0533438f, -0.00711859f, -0.0190242f, -0.0585802f, 0.013843f, -0.0643667f, 0.0595349f, -0.140934f, -0.113373f, -0.00278012f, -0.0212399f, -0.0501552f, -0.271885f, -0.111219f, -0.121866f, 0.0761169f, -0.0836588f, -0.118874f, 0.0312987f, -0.135999f, 0.043368f, 0.0217494f, 0.00955194f, -0.0976437f, 0.135552f, 0.0180879f, -0.163217f, -0.170562f, 0.112802f, -0.0762212f, 0.0118896f, -0.068809f, 0.0955152f, 0.0252353f, -0.0130213f, 0.0837039f, 0.0576207f, -0.0559473f, -0.0487872f, -0.138193f, -0.147018f, -0.0201979f, 0.0398289f, 0.199573f, 0.0848158f, 0.233225f, 0.157226f, -0.191054f, -0.187539f, -0.132181f, -0.204294f, -0.0106664f, 0.123747f, 0.0661749f, 0.0931f, -0.0433949f, -0.106108f, 0.127175f, -0.0890325f, -0.0504124f, -0.0576303f, 0.271967f, -0.0816771f, -0.0205719f, 0.141998f, -0.335991f, -0.0954968f, 0.0135808f, -0.0142618f, -0.182253f, -0.073663f, -0.15457f, 0.060818f, 0.00661891f, -0.182138f, -0.0340364f, 0.118719f, 0.0684079f, 0.00767978f, 0.0439653f, -0.307835f, 0.1609f, 0.149416f, 0.0547937f, 0.0240157f, -0.112974f, 0.0501858f, 0.0979441f, -0.126673f, 0.0909177f, -0.0666038f, -0.0440089f, 0.00222308f, -0.162866f, -0.166988f, 0.146407f, 0.0812178f, 0.0977381f, 0.0972285f, -0.126829f, 0.147681f, 0.0228222f, -0.161325f, -0.018352f, 0.165148f, 0.256361f, 0.00921302f, -0.189051f, -0.0133188f, 0.0369443f, 0.00622538f, -0.110665f, -0.0486009f, -0.11607f, 0.191731f, 0.140942f, -0.0217093f, -0.056802f, -0.118153f, 0.204647f, 0.101852f, 0.00276524f, 0.364979f, -0.0848806f, -0.101482f, 0.402581f, -0.0771327f, -0.142308f, 0.0684958f, 0.101749f, -0.131805f, -0.286165f, -0.12574f, 0.0843832f, 0.00679161f, -0.00716133f, -0.16886f, -0.0863455f, -0.0444408f, 0.0625304f, 0.185631f, 0.0624095f, -0.223883f, 0.0732181f, -0.0916618f, 0.0187177f, -0.160169f, 0.146155f, -0.195384f, -0.213378f, 0.266771f, 0.0264341f, -0.000500791f, -0.0624284f, -0.0476402f, -0.143968f, 0.0135897f, -0.0662631f, 0.125747f, -0.0049867f, -0.0538751f, -0.137193f, -0.0323192f, 0.118405f, -0.0627561f, 0.100024f, 0.231904f, 0.118323f, -0.186013f, 0.00014408f, 0.107338f, 0.0702893f, -0.25498f, 0.0827139f, -0.0395732f, 0.040844f, -0.137448f, 0.0511992f, 0.0956443f, -0.150833f, -0.037932f, -0.00460138f, 0.162432f, -0.217464f, 0.127929f, 0.1233f, 0.0504134f, 0.124142f, 0.0186382f, -0.0195109f, 0.103713f, -0.0431296f, -0.0347544f, -0.078664f, 0.121644f, -0.0764277f, -0.0973452f, -0.213038f, -0.0844715f, 0.0380887f, -0.0675397f, 0.177f, 0.153805f, -0.237921f, -0.339691f, -0.335651f, -0.0904078f, -0.0782914f, 0.137338f, -0.217655f, -0.148223f, -0.132408f, -0.0813548f, -0.0119116f, -0.0594744f, -0.238621f, -0.00947597f, 0.0190933f, -0.0564438f, -0.0612021f, 0.0587839f, 0.157563f, -0.0327222f, -0.0421482f, -0.0115803f, 0.196548f, -0.0698337f, -0.0881397f, 0.0244918f, 0.232741f, -0.0313909f, 0.0234338f, 0.0702474f, -0.117723f, 0.186715f, -0.086815f, 0.0654945f, 0.193836f, -0.0575842f, -0.0261296f, -0.280795f, 0.0518785f, -0.0462793f, 0.0462831f, -0.1281f, -0.075886f, 0.211067f, -0.177761f, -0.0800846f, -0.0936107f, -0.0655002f, 0.180616f, -0.0390522f, 0.0136737f, 0.0110685f, -0.0379309f, -0.00334142f, -0.0705256f, -0.145759f, -2.86509e-05f, -0.0448763f, 0.0666403f, -0.0213021f, 0.170328f, -0.0805108f, 0.0538816f, -0.0158044f, -0.182883f, -0.200654f, -0.198876f, -0.0472478f, 0.257793f, -0.0414834f, -0.0742899f, -0.0874066f, 0.056413f, 0.0750373f, -0.16866f, 0.104682f, 0.372975f, -0.171612f, -0.133786f, -0.0591514f, -0.155002f, 0.276656f, 0.342876f, 0.327192f, 0.116272f, 0.102425f, -0.0192852f, -0.116303f, -0.00780662f, -0.0852654f, -0.212472f, -0.0810711f, 0.0405312f, -0.190399f, -0.274058f, 0.104509f, 0.214611f, -0.261987f, -0.0125494f, 0.0706882f, 0.159657f, -0.158984f, -0.0605395f, -0.0575463f, -0.230334f, 0.122329f, 0.152963f, 0.181306f, -0.0204417f, 0.18016f, -0.194845f, -0.144491f, 0.242372f, -0.136435f, -0.0825889f, -0.0742571f, 0.0306856f, -0.140411f, -0.203031f, 0.0138454f, -0.123211f, 0.102295f, -0.102978f, 0.112957f, 0.292172f, 0.0404342f, -0.123151f, 0.0270387f, 0.0417704f, -0.324704f, -0.168516f, 0.0765044f, -0.108488f, 0.0119002f, 0.0811283f, 0.0356361f, -0.0805372f, 0.0135965f, -0.0130094f, 0.149017f, 0.0100985f, 0.0396509f, 0.0648803f, -0.10381f, 0.153359f, -0.0361508f, 0.126692f, 0.0481072f, -0.0775586f, -0.0302901f, -0.0755361f, -0.0978437f, 0.011782f, -0.118517f, 0.101918f, 0.025474f, -0.133495f, -0.0936857f, 0.370778f, -0.0848614f, -0.0199568f, -0.107803f, 0.0517202f, -0.0852803f, 0.0255651f, 0.0797718f, 0.0221932f, 0.0502225f, 0.0735662f, -0.0156297f, 0.00640193f, 0.219777f, -0.0217329f, 0.0607013f, 0.0400817f, -0.0122696f, 0.272757f, 0.136467f, -0.102472f, -0.0403782f, -0.0204383f, -0.211987f, -0.142011f, 0.134765f, 0.00867244f, -0.0963529f, -0.0633943f, -0.0546256f, -0.050677f, -0.141933f, -0.0262501f, 0.00925512f, -0.0757413f, -0.245692f, -0.134313f, -0.175609f, 0.0176211f, -0.0568871f, -0.0894452f, 0.262208f, 0.06165f, -0.0951737f, 0.172921f, 0.0656396f, 0.0770411f, -0.397089f, 0.136754f, -0.0792854f, 0.0637384f, -0.00798454f, 0.0165815f, 0.352921f, -0.0197472f, -0.0778351f, 0.0393341f, -0.161094f, -0.0380967f, 0.0572365f, 0.0246538f, -0.00540187f, 0.199569f, 0.0777185f, 0.0399641f, 0.0892018f, 0.298826f, -0.19039f, 0.327987f, -0.00552447f, 5.87011e-05f, -0.155385f, -0.147228f, -0.201192f, 0.18993f, -0.24946f, -0.0895834f, 0.288684f, 0.0532176f, 0.0724854f, -0.130441f, 0.0902189f, -0.0665757f, -0.134427f, 0.0669607f, -0.114866f, -0.0309656f, -0.0910919f, 0.0125529f, -0.250558f, 0.0461486f, 0.0970309f, -0.0438141f, 0.0609503f, -0.135114f, -0.12215f, 0.0169365f, 0.0582822f, -0.190444f, -0.0273658f, -0.150896f, -0.178321f, 0.0358309f, -0.141428f, 0.162308f, 0.0542391f, 0.0350332f, -0.272155f, 0.124619f, 0.0482477f, 0.0158518f, -0.189143f, -0.0303135f, -0.00982152f, 0.0295714f, -0.0530019f, 0.306354f, -0.0258634f, 0.00684471f, -0.0524963f, -0.0967935f, -0.14956f, -0.0643514f, -0.0510731f, -0.0913695f, 0.0654904f, -0.297578f, 0.0331774f, -0.0859829f, 0.0524614f, 0.033789f, -0.0800988f, -0.0167829f, 0.0893989f, -0.104033f, 0.0397348f, 0.139833f, 0.192456f, 0.0379937f, -0.0600793f, 0.0479188f, 0.0218225f, 0.025506f, -0.101901f, -0.0122332f, 0.0463879f, 0.0584577f, 0.0536643f, 0.0368564f, 0.0533689f, -0.0415754f, -0.165453f, 0.00225189f, -0.0499323f, 0.0759836f, -0.0272016f, -0.0178042f, 0.14714f, -0.0694615f, 0.0684618f, -0.0777636f, -0.0620127f, -0.0777777f, -0.161796f, -0.188773f, -0.135779f, -0.00347392f, 0.0499531f, 0.12936f, -0.00526764f, -0.0875986f, -0.0735403f, 0.133944f, -0.0379643f, 0.03445f, 0.109203f, -0.132194f, 0.178188f, 0.0893938f, 0.0822875f, 0.136925f, -0.00623732f, 0.0155396f, 0.0134055f, 0.0663638f, -0.16086f, -0.0618784f, -0.0717305f, 0.149857f, -0.0941828f, 0.0381411f, 0.0310324f, -0.081553f, -0.0316166f, 0.0706342f, 0.114457f, 0.0450179f, 0.0253986f, -0.13588f, 0.248263f, 0.141764f, -0.190343f, 0.165644f, 0.0519575f, -0.0435942f, 0.0993782f, -0.0312794f, 0.157461f, 0.0951277f, 0.0267107f, -0.216206f, 0.0592725f, -0.000102787f, 0.0415118f, -0.0970331f, -0.156067f, 0.0532405f, -0.219696f, 0.0298244f, 0.0541836f, 0.118367f, -0.089663f, -0.187305f, -0.00486954f, 0.0853137f, -0.0711511f, 0.0479088f, -0.191152f, -0.167502f, 0.138354f, -0.153845f, 0.0791158f, 0.0127553f, -0.0254729f, -0.110154f, -0.0304086f, 0.165016f, -0.0244866f, -0.266347f, -0.0658435f, 0.0112227f, 0.0657983f, -0.0200645f, 0.0108732f, 0.0891706f, 0.0821818f, 0.0426862f, -0.168468f, -0.313384f, 0.251344f, 0.0873273f, 0.0478487f, -0.175542f, 0.175272f, -0.245562f, 0.119138f, 0.431731f, -0.0246971f, -0.0368113f, -0.0821052f, 0.241221f, 0.0189943f, 0.0447009f, 0.0476752f, 0.0291046f, -0.0301648f, -0.0138748f, -0.183948f, -0.0840261f, -0.0967476f, -0.0599224f, 0.116332f, -0.00450634f, -0.015915f, -0.122244f, -0.00587765f, -0.0122724f, 0.0868566f, 0.116984f, 0.101014f, 0.0221593f, -0.0735134f, 0.021501f, -0.0986819f, -0.0591103f, -0.155784f, 0.213086f, -0.204278f, 0.111653f, 0.133742f, -0.0900064f, -0.0844082f, 0.0240686f, 0.00314966f, -0.0146589f, 0.0020817f, 0.0808409f, 0.544983f, 0.0933327f, 0.0563357f, -0.215403f, 0.223793f, -0.0105504f, 0.0156992f, 0.00201504f, 0.120943f, -0.0862741f, -0.0676437f, 0.185953f, -0.121607f, -0.154895f, -0.0573076f, -0.1455f, -0.174451f, 0.224914f, -0.0356587f, 0.0294217f, -0.0355652f, -0.236961f, 0.0172952f, -0.16531f, -0.0517928f, -0.0123923f, -0.0289174f, -0.175207f, -0.278179f, 0.0749584f, 0.155864f, 0.161341f, 0.246438f, -0.162505f, -0.0645005f, -0.015723f, 0.0554517f, 0.191967f, -0.093472f, 0.0768592f, 0.0360524f, -0.0622241f, 0.0301184f, -0.143576f, -0.158763f, 0.0592772f, -0.208938f, -0.0784985f, -0.147071f, 0.0883174f, -0.135369f, 0.0129913f, -0.187665f, 0.425474f, 0.00847399f, -0.276349f, -0.127028f, -0.399234f, -0.0282849f, -0.332041f, -0.191104f, 0.184842f, -0.0572671f, 0.042397f, 0.129096f, -0.252079f, 0.0803694f, -0.00524669f, 0.0123517f, 0.0846141f, -0.0526387f, 0.0511457f, 0.154838f, 0.015113f, -0.0786044f, 0.0192338f, 0.098389f, 0.0395934f, 0.0914032f, 0.160602f, 0.0704933f, -0.0641332f, -0.0991803f, -0.108688f, -0.0423271f, -0.147525f, 0.0498141f, -0.0178086f, -0.0659729f, -0.0822934f, 0.0522696f, -0.039814f, -0.0122549f, -0.00612221f, -0.109269f, 0.0582784f, -0.15063f, 0.0158022f, -0.0906599f, 0.0494044f, 0.129339f, 0.011214f, 0.113069f, 0.0669983f, -0.0187317f, 0.0474967f, -0.0306079f, 0.115133f, 0.144067f, -0.0961879f, -0.0276411f, -0.0776196f, -0.127104f, 0.052098f, 0.200234f, 0.158589f, -0.0381584f, 0.197405f, 0.022077f, 0.0578084f, -0.135039f, -0.0291684f, -0.215037f, -0.140685f, 0.216158f, 0.0256861f, 0.165688f, -0.12076f, -0.0728186f, 0.0109517f, 0.0918116f, -0.00404886f, -0.0548525f, -0.0533054f, 0.315033f, 0.0557228f, 0.0910281f, 0.0101325f, -0.147085f, -0.166894f, 0.0711889f, 0.0392706f, 0.0665345f, 0.0404656f, -0.068756f, -0.0530982f, 0.0738225f, 0.0340445f, -0.00656185f, -0.0819987f, -0.121899f, -0.109927f, -0.0132476f, -0.0829154f, -0.184733f, 0.0559089f, -0.181307f, 0.0277096f, 0.0136487f, 0.0410896f, -0.23403f, -0.0983714f, 0.0709205f, 0.00295714f, -0.0408744f, -0.141761f, 0.0950723f, 0.225949f, 0.139482f, -0.155263f, -0.0966282f, 0.109338f, 0.0457339f, -0.118205f, -0.0571152f, 0.154227f, -0.099506f, -0.0749282f, 0.101689f, -0.00723234f, -0.118194f, -0.00938205f, -0.125498f, 0.180787f, -0.0745463f, 0.0559198f, -0.231085f, -0.188945f, 0.198649f, -0.0500797f, 0.0211751f, -0.13155f, 0.0275575f, 0.0693841f, 0.0536742f, -0.199993f, -0.128396f, -0.0190446f, 0.0739395f, 0.00852397f, 0.0164567f, 0.619414f, 0.21762f, -0.0188684f, -0.150215f, 0.0203871f, 0.0174758f, -0.0381374f, -0.157806f, 0.0797053f, -0.106729f, 0.173276f, -0.0255568f, -0.0402178f, -0.262025f, -0.0121938f, -0.0631613f, -0.179183f, -0.109012f, -0.121262f, -0.252875f, -0.0503212f, -0.0160104f, -0.0958684f, -0.204667f, 0.182244f, 0.0232232f, 0.00574684f, -0.172079f, 0.002375f, 0.141818f, 0.267089f, -0.379835f, -0.0415312f, -0.0306761f, -0.179261f, -0.0544529f, -0.0630334f, -0.0489988f, -0.151131f, -0.0860699f, 0.0195451f, 0.164278f, -0.102847f, -0.0530215f, 0.0664987f, -0.215801f, -0.0666514f, -0.215996f, -0.157694f, -0.179252f, -0.157411f, -0.108593f, -0.110358f, 0.197984f, -0.122743f, -0.175604f, 0.0496721f, -0.0583002f, -0.0646821f, -0.0383417f, 0.0577357f, 0.191293f, -0.164269f, 0.108121f, 0.0885909f, 0.0896776f, 0.243683f, 0.0636355f, 0.00771835f, 0.118016f, -0.223055f, 0.0222764f, 0.043296f, -0.0315318f, 0.13631f, -0.0359088f, 0.0302714f, -0.0644654f, -0.110442f, -0.0932365f, -0.0415321f, 0.0735468f, 0.239056f, -0.103471f, -0.00539411f, 0.139675f, -0.118951f, -0.0692004f, 0.0433831f, 0.0751105f, -0.0609317f, 0.0909228f, -0.0531518f, -0.0153984f, 0.0472695f, 0.169633f, -0.105878f, -0.0201097f, -0.113779f, 0.133763f, -0.172098f, -0.310981f, 0.150961f, -0.101539f, 0.0498176f, -0.00333319f, 0.111262f, 0.0643825f, -0.00878169f, -0.054547f, -0.0241857f, -0.0555884f, 0.0228448f, -0.123021f, -0.202105f, 0.0262868f, -0.0655126f, 0.0170149f, -0.123904f, -0.0186236f, -0.0819357f, -0.144439f, -0.0321875f, -0.22658f, -0.146182f, -0.367108f, 0.0457173f, -0.0876666f, -0.107603f, -0.0862827f, -0.19662f, 0.0229519f, -0.0219738f, 0.0852926f, -0.16197f, 0.0161065f, 0.050986f, -0.0976299f, -0.0863081f, 0.201533f, -0.329908f, 0.189695f, 0.239951f, 0.0831351f, -0.0171539f, 0.10354f, -0.015625f, 0.0482711f, -0.0201594f, -0.221992f, 0.0251094f, -0.0877428f, -0.044236f, -0.0131739f, -0.018216f, -0.0883922f, -0.0428084f, 0.0106962f, 0.105655f, 0.0295884f, -0.0124028f, 0.0300163f, 0.219601f, -0.0630293f, 0.265468f, -0.0377262f, -0.029297f, 0.295103f, 0.00634657f, 0.233366f, 0.136676f, 0.0811286f, -0.158833f, 0.0682055f, 0.0834759f, -0.161793f, -0.0366199f, 0.221035f, -0.071651f, -0.201746f, -0.15853f, -0.15653f, 0.0222372f, 0.149538f, -0.119932f, 0.0669928f, -0.032917f, 0.0781346f, 0.245004f, 0.0820381f, -0.0758422f, 0.0435784f, -0.0268814f, 0.0328399f, 0.16767f, -0.108603f, 0.0992995f, -0.0233545f, 0.0932688f, 0.083572f, 0.0193278f, -0.0170568f, -0.0466871f, -0.162473f, -0.262464f, -0.0123784f, 0.0917083f, -0.0860878f, 0.01222f, 0.212605f, 0.0197443f, -0.0365033f, -0.0568101f, 0.165615f, 0.0424292f, 0.0465012f, 0.0387068f, -0.121906f, -0.0184306f, -0.120623f, 0.0588033f, -0.000556241f, 0.059096f, 0.0734477f, -0.0557201f, -0.0136954f, 0.145418f, -0.0295603f, -0.147353f, -0.125986f, 0.0443957f, -0.0434638f, 0.0776227f, 0.0404663f, 0.015121f, 0.175478f, -0.26483f, -0.0564158f, -0.0301567f, 0.0188226f, 0.106091f, -0.149313f, -0.216252f, -0.0511576f, -0.0451611f, 0.0966538f, -0.071448f, -0.0345173f, 0.000225867f, 0.11083f, -0.0639355f, -0.074958f, 0.574446f, 0.0156201f, -0.0421997f, 0.0853928f, 0.0178833f, 0.0149491f, -0.0901287f, -0.108615f, 0.191327f, 0.0612855f, -0.0295163f, -0.135855f, 0.104423f, 0.0589947f, 0.299284f, -0.00545473f, -0.239687f, -0.0989818f, -0.257833f, -0.136008f, 0.0788421f, 0.0105749f, 0.216699f, 0.000656197f, 0.01426f, 0.270816f, -0.0888458f, 0.040979f, -0.149125f, 0.0402925f, -0.0736755f, 0.173543f, -0.0828881f, 0.0900945f, 0.0411253f, -0.0304334f, 0.212466f, -0.226877f, 0.145558f, -0.14264f, -0.241374f, -0.278869f, 0.0134226f, -0.100157f, -0.0096982f, 0.0331506f, -0.115156f, 0.0187922f, -0.120464f, -0.17861f, -0.148054f, 0.0247314f, -0.0551566f, -0.120907f, 0.14149f, -0.0160938f, -0.0509598f, 0.0492028f, -0.0943597f, 0.105998f, 0.0454081f, -0.00533845f, 0.0915969f, -0.0179717f, -0.0643204f, -0.0662824f, 0.10216f, -0.0493556f, -0.0340745f, 0.10437f, 0.160195f, 0.00555277f, -0.116648f, 0.096775f, -0.00132682f, 0.0389455f, -0.127556f, 0.0818947f, 0.0414111f, 0.0129832f, -0.195126f, 0.0680152f, -0.0355287f, -0.0177016f, 0.0376007f, 0.0616008f, -0.0301244f, 0.0403327f, 0.0403636f, -0.120612f, -0.00928358f, -0.183292f, 0.171904f, -0.0746807f, 0.0939403f, -0.0467069f, -0.150319f, -0.039073f, -0.0517042f, -0.00575754f, 0.0302669f, 0.128361f, -0.0642196f, -0.0426451f, -0.0145392f, -0.116539f, -0.0425007f, 0.0981656f, 0.16446f, -0.0245027f, 0.0387935f, -0.0156807f, -0.0547231f, -0.0871116f, -0.0178574f, -0.0675284f, -0.092387f, -0.157678f, -0.229853f, 0.130259f, -0.00891407f, 0.0080106f, -0.133365f, -0.0233182f, 0.0328509f, 0.015393f, 0.253708f, -0.211064f, -0.000146153f, 0.196808f, -0.11134f, 0.156746f, 0.0112638f, -0.0288077f, 0.203149f, -0.025709f, 0.0293549f, 0.0589148f, -0.122006f, -0.0932689f, 0.0166386f, -0.0168741f, -0.135931f, -0.0603898f, -0.252174f, 0.115633f, 0.118864f, -0.126746f, -0.117453f, 0.065121f, 0.0364661f, 0.0392954f, 0.11256f, -0.0944751f, 0.0273548f, -0.0403633f, -0.0364478f, -0.07129f, 0.0382534f, 0.131233f, -0.0755023f, 0.147036f, 0.116494f, -0.103615f, 0.0152816f, 0.1518f, -0.0341251f, 0.0216296f, 0.0380652f, 0.108607f, -0.00282719f, -0.184108f, 0.0280721f, 0.205703f, 0.147391f, 0.131088f, -0.122644f, 0.0213235f, -0.147835f, 0.0505533f, -0.0696359f, -0.024551f, -0.0498002f, -0.269696f, -0.091646f, 0.0635648f, -0.0203306f, 0.0219406f, 0.238139f, -0.0544098f, -0.197422f, 0.152448f, -0.104347f, -0.0209066f, -0.00448963f, -0.0424253f, -0.0481542f, -0.00993802f, 0.25291f, 0.119318f, 0.000462211f, 0.0339345f, -0.150187f, -0.103367f, -0.245291f, 0.0132084f, -0.0518151f, -0.0894992f, -0.206317f, 0.0472969f, 0.0469742f, -0.0773326f, -0.0370901f, 0.228526f, 0.02023f, -0.0199903f, -0.165279f, 0.143433f, -0.0608106f, -0.0678559f, 0.108346f, -0.0261297f, 0.0809493f, 0.258292f, -0.0428691f, -0.000793354f, -0.120089f, 0.185881f, -0.029162f, -0.130049f, -0.0718355f, 0.0548395f, -0.0576328f, -0.0444055f, -0.0678114f, -0.0365515f, 0.115593f, -0.133306f, 0.03429f, 0.0659561f, 0.186942f, -0.185016f, 0.0609078f, 0.0335408f, -0.00351517f, -0.19408f, -0.123011f, -0.0858018f, 0.0422995f, 0.049703f, -0.0109182f, 0.306661f, 0.0593824f, -0.0137756f, -0.198178f, -0.0179252f, 0.00411174f, -0.0520924f, 0.128687f, 0.0763346f, -0.062437f, -0.103456f, 0.0985516f, 0.187326f, -0.0776162f, 0.150059f, -0.145288f, -0.148476f, -0.0928092f, 0.0841262f, -0.0931255f, -0.0812164f, 0.145686f, 0.0696354f, -0.260819f, 0.0222186f, 0.0270515f, -0.0683878f, -0.0331597f, 0.126626f, -0.184419f, -0.0797203f, 0.026395f, 0.282177f, 0.0758506f, 0.0240603f, -0.204769f, -0.203256f, -0.0854547f, -0.0667518f, 0.0604099f, 0.0350571f, 0.186617f, -0.0628644f, -0.109353f, 0.134081f, 0.0655846f, 0.176074f, 0.0106058f, -0.0876147f, 0.0882119f, 0.14076f, -0.092349f, 0.319782f, -0.179985f, 0.0588858f, 0.168184f, 0.0235537f, -0.235307f, -0.220348f, -0.101619f, -0.128324f, -0.0723717f, -0.0792832f, 0.239066f, -0.147567f, 0.0989553f, -0.0802388f, 0.105711f, -0.0416793f, -0.470979f, -0.135744f, 0.108f, -0.0177702f, 0.161539f, 0.0408771f, -0.0348524f, 0.107637f, 0.0636231f, 0.0824146f, -0.119944f, 0.0387901f, 0.212764f, 0.0211156f, -0.190303f, -0.0707213f, -0.0997109f, -0.0307917f, -0.193245f, 0.0140712f, -0.140304f, 0.171702f, -0.207591f, -0.0555565f, -0.0855114f, 0.045214f, 0.0593502f, -0.200123f, -0.109252f, -0.00966684f, -0.0916766f, -0.143124f, 0.277244f, -0.0323037f, -0.0661161f, 0.0173154f, 0.0116314f, 0.377126f, 0.0550974f, 0.0220445f, -0.0633874f, 0.125304f, 0.0963661f, 0.118739f, -0.0347164f, -0.0805305f, -0.00458387f, -0.303281f, 0.0326906f, 0.154621f, -0.139211f, -0.0394053f, 0.37647f, -0.204423f, 0.0626111f, 0.414918f, 0.140162f, -0.0726152f, 0.129973f, -0.110694f, -0.00304246f, 0.0332173f, -0.0868029f, 0.119122f, 0.365382f, 0.0620956f, 0.116981f, -0.164383f, -0.142789f, 0.0197117f, 0.194146f, -0.0570149f, 0.113803f, -0.109556f, -0.172248f, 0.128811f, -0.0804075f, -0.115523f, -0.1449f, -0.0538079f, -0.114897f, 0.204437f, 0.121018f, -0.00149197f, -0.00230971f, 0.24595f, -0.167546f, -0.129416f, -0.112358f, -0.153811f, 0.0770456f, 0.0897598f, 0.0779881f, 0.136776f, -0.0326655f, -0.098363f, -0.0399074f, 0.0862741f, 0.0480145f, 0.290589f, -0.100909f, 0.110083f, -0.0145062f, 0.117547f, 0.0714453f, -0.302507f, 0.0320721f, -0.0554647f, -0.038996f, 0.0292285f, -0.042126f, 0.22046f, 0.129561f, 0.156162f, -0.0524557f, -0.147906f, -0.0291256f, -0.0103343f, -0.100554f, 0.147745f, 0.167541f, -0.141379f, -0.0654538f, -0.0773684f, -0.0343674f, 0.0152229f, -0.143468f, -0.0304799f, 0.00581947f, -0.102425f, 0.0768041f, -0.0354327f, 0.0192593f, -0.271257f, -0.0507575f, -0.205426f, 0.0626613f, 0.212651f, -0.199581f, 0.0273495f, 0.0239861f, 0.0420607f, 0.47869f, 0.0721597f, -0.0717712f, -0.428167f, -0.0302235f, -0.101337f, -0.111911f, -0.000588798f, -0.000941866f, -0.201267f, 0.0217619f, -0.0220242f, -0.0186329f, -0.347599f, -0.19108f, -0.218062f, 0.077498f, -0.0504586f, -0.222099f, 0.175876f, 0.354433f, -0.0915108f, 0.0375247f, 0.140388f, -0.0329156f, 0.189313f, -0.0677914f, 0.432926f, 0.117737f, -0.5117f, -0.103195f, -0.0465619f, 0.0457986f, -0.124983f, 0.466801f, -0.187753f, 0.0251743f, -0.138275f, 0.0646422f, 0.120361f, -0.208549f, 0.315278f, -0.15253f, -0.0169734f, -0.416938f, -0.0243563f, -0.0335779f, -0.0209932f, -0.131548f, 0.0432857f, -0.115247f, 0.0313184f, -0.0100463f, -0.214076f, 0.0562211f, 0.259026f, -0.194674f, -0.244646f, -0.191814f, -0.120314f, 0.0261454f, -0.0569685f, 0.120022f, -0.042782f, -0.19746f, -0.0739821f, 0.154089f, 0.170094f, 0.0186347f, 0.107016f, -0.0427823f, -0.0126034f, -0.099829f, -0.0627123f, 0.0810106f, -0.0137977f, -0.00933321f, -0.301748f, 0.0699605f, 0.0832568f, 0.156952f, -0.175305f, 0.346707f, -0.0520075f, -0.121962f, 0.11303f, -0.209467f, 0.276021f, 0.126632f, -0.256173f, 0.0988295f, -0.0273046f, 0.0160485f, 0.0366306f, 0.0343995f, 0.0682253f, -0.155186f, -0.33992f, -0.00747398f, -0.289593f, -0.156605f, 0.0675391f, -0.0823962f, -0.243723f, 0.120702f, 0.340205f, 0.0584027f, -0.157362f, -0.0552425f, -0.134033f, 0.0203994f, -0.0370722f, 0.0214739f, -0.0392361f, -0.0492107f, 0.288946f, -0.166988f, 0.116598f, 0.128774f, 0.0617437f, -0.100937f, 0.0138712f, -0.0781312f, 0.010606f, -0.0149781f, 0.10447f, 0.19724f, -0.0487802f, 0.0670238f, -0.101037f, -0.228731f, -0.0564229f, -0.0147366f, -0.023313f, 0.150459f, 0.195896f, 0.058834f, 0.117762f, -0.0642793f, -0.119324f, -0.00697572f, -0.175879f, 0.0916526f, 0.0678344f, 0.0545718f, 0.109519f, -0.00183273f, 0.241286f, 0.0125815f, -0.124267f, -0.00388746f, -0.188045f, -0.0019798f, -0.0405862f, -0.0857051f, 0.141111f, 0.0365708f, -0.024561f, 0.107614f, -0.027024f, -0.0609417f, -0.127442f, 0.0245719f, -0.0727662f, -0.225311f, -0.0180373f, 0.133391f, -0.279285f, -0.201329f, -0.135586f, 0.137613f, 0.0156615f, -0.0257539f, 0.0948509f, -0.0751259f, 0.221389f, -0.042353f, -0.00730507f, -0.184414f, 0.0611136f, 0.115451f, -0.133977f, -0.0718985f, -0.0445517f, -0.0290297f, 0.0975072f, -0.0291692f, -0.0748082f, -0.268777f, -0.0317662f, 0.0753855f, 0.0426384f, 0.0209353f, 0.00713683f, -0.163364f, -0.0192774f, -0.117544f, -0.0867942f, -0.0918372f, 0.027353f, 0.124851f, 0.0167507f, -0.134953f, -0.105385f, 0.0122905f, 0.0608206f, -0.0756733f, -0.167196f, 0.047778f, 0.141791f, 0.0701121f, -0.0327372f, -0.0030572f, 0.142421f, 0.106825f, -0.106546f, 0.106911f, -0.0401698f, -0.0543023f, -0.0878613f, -0.0374038f, -0.163067f, 0.0796014f, 0.0896685f, 0.0507792f, 0.112026f, 0.136969f, -0.0269343f, -0.0341698f, -0.0384525f, -0.0505973f, 0.310423f, 0.0085616f, -0.224385f, 0.130522f, -0.0772078f, -0.0393774f, 0.048895f, -0.22822f, -0.0384215f, -0.0513198f, 0.261838f, 0.122101f, 0.240818f, 0.0183246f, 0.280447f, -0.166276f, -0.120434f, -0.0423064f, -0.0556057f, 0.0234645f, 0.0687021f, -0.145472f, 0.123892f, 0.00890961f, -0.227682f, 0.0571479f, 0.0886532f, 0.013857f, -0.0169326f, 0.317564f, 0.0384787f, -0.0961272f, 0.0899918f, -0.000256007f, 0.0504649f, -0.243961f, -0.193858f, -0.0168405f, -0.0995952f, -0.0541548f, -0.0139943f, 0.0111682f, -0.0364117f, -0.0902277f, 0.102848f, -0.0873381f, 0.201204f, 0.19271f, 0.222906f, 0.108508f, -0.0596392f, -0.142267f, -0.0698708f, -0.0100106f, -0.207337f, -0.0618827f, 0.0839672f, 0.0268156f, 0.0943406f, -0.0514369f, -0.120297f, 0.0642232f, 0.0583146f, 0.0216771f, 0.33508f, 0.356113f, 0.0273197f, -0.254459f, -0.204977f, 0.0980862f, 0.69012f, 0.138735f, -0.199877f, 0.033817f, -0.235076f, -0.0385774f, -0.0832332f, -0.0302684f, 0.0675211f, 0.418659f, -0.0625621f, -0.152018f, 0.0645614f, 0.224287f, -0.271162f, 0.116855f, 0.0438449f, 0.24448f, -0.124218f, -0.013404f, 0.155832f, 0.0642123f, 0.146781f, 0.00480224f, -0.570577f, -0.281471f, 0.086997f, -0.0335329f, -0.0383142f, 0.109463f, -0.00131188f, -0.0280751f, 0.0257398f, -0.0499304f, -0.179082f, 0.35147f, -0.189194f, -0.0244258f, 0.00216297f, -0.122977f, -0.132048f, 0.0136801f, -0.0896297f, -0.124987f, -0.210713f, -0.313484f, 0.0373747f, -0.0946526f, 0.0419682f, 0.199655f, 0.0236282f, 0.0892541f, 0.0442857f, 0.345346f, 0.100759f, -0.195999f, -0.123779f, -0.0695728f, 0.118838f, 0.2239f, -0.163112f, 0.0274916f, -0.171263f, -0.0608578f, -0.409564f, 0.0522149f, 0.1017f, -0.0119364f, 0.202467f, -0.224871f, -0.0348078f, 0.0990181f, -0.0387612f, -0.208917f, -0.0985881f, 0.420202f, 0.0432265f, -0.0467217f, -0.166692f, 0.0233324f, -0.020207f, -0.0113243f, 0.0197683f, -0.256521f, 0.0614507f, -0.207935f, -0.0839841f, 0.00628411f, -0.116716f, 0.00371017f, -0.0108578f, 0.0663477f, -0.00239819f, 0.0261158f, -0.0878751f, -0.0598482f, -0.0988212f, 0.146905f, -0.0699f, 0.0230164f, -0.0618379f, 0.0287567f, 0.134597f, 0.0658768f, -0.173025f, 0.0627565f, -0.165808f, -0.0340715f, -0.193633f, 0.0982716f, -0.154147f, -0.105946f, -0.0408759f, -0.0167783f, 0.0491916f, 0.0953323f, -0.146108f, 0.046895f, -0.0351206f, 0.0787717f, -0.0335219f, -0.0282904f, -0.207552f, -0.161745f, -0.0527398f, 0.152352f, 0.0719314f, -0.00486502f, 0.0207044f, -0.039701f, 0.0503488f, -0.0194258f, 0.0806119f, 0.0113263f, 0.099986f, -0.0955268f, 0.0851872f, -0.150063f, -0.0269752f, -0.0308324f, -0.0533123f, -0.0304008f, -0.125048f, -0.057332f, -0.0761675f, 0.205507f, -0.0520182f, 0.0539562f, 0.0352195f, -0.239635f, -0.0392338f, 0.1023f, -0.120042f, -0.13194f, 0.0326568f, 0.146694f, 0.00863298f, 0.00104887f, -0.0806217f, 0.0809362f, 0.0620154f, 0.0276821f, -0.0509787f, -0.0830615f, 0.0178197f, -0.00725294f, 0.0728095f, 0.0168845f, 0.226394f, -0.0589916f, -0.0352691f, -0.0616671f, -0.0660878f, 0.0537828f, -0.0469167f, 0.171742f, 0.0524748f, 0.0411369f, 0.122351f, -0.151548f, 0.0964354f, 0.137777f, -0.219389f, 0.116454f, -0.0511511f, -0.0294652f, -0.226561f, -0.156589f, 0.020915f, 0.138192f, 0.0522399f, -0.0442649f, -0.0859071f, -0.0704743f, 0.046762f, 0.180758f, 0.060978f, -0.12359f, -0.361057f, 0.0380109f, 0.1153f, 0.330337f, -0.228454f, 0.00351755f, -0.0764439f, -0.149052f, -0.161295f, 0.223329f, -0.0941755f, -0.0281165f, 0.326768f, -0.0434374f, -0.138812f, 0.508204f, 0.176142f, 0.242727f, -0.19829f, -0.0947561f, 0.361491f, 0.218723f, -0.503778f, -0.251496f, -0.0234465f, 0.102712f, 0.188761f, 0.198163f, 0.0520115f, -0.0293106f, -0.241971f, 0.0634369f, -0.0325234f, -0.0421194f, -0.0236456f, -0.133199f, 0.10183f, 0.369244f, 0.249591f, 0.0641163f, 0.00777963f, 0.00477938f, 0.112849f, 0.0720856f, 0.0751494f, -0.115947f, 0.289782f, -0.113046f, 0.19114f, -0.0255224f, 0.0336962f, -0.388686f, -0.0623285f, 0.15862f, 0.136027f, -0.0764274f, -0.0115282f, 0.276982f, 0.12299f, -0.118908f, -0.0977243f, 0.0984496f, 0.0581846f, 0.155894f, 0.0532965f, -0.141575f, 0.376134f, -0.109859f, -0.0743818f, 0.373292f, 0.0550668f, 0.0178159f, -0.105161f, -0.0171935f, 0.0210137f, -0.0300109f, 0.0458457f, -0.0525026f, 0.101589f, -0.1628f, -0.056148f, 0.196338f, -0.186591f, -0.0226106f, -0.0108974f, -0.0427535f, -0.0435904f, 0.21128f, -0.0462819f, 0.168841f, 0.160218f, -0.0237053f, -0.024072f, 0.0257369f, 0.0702835f, 0.0336412f, 0.0163431f, 0.221365f, 0.0351277f, 0.00763378f, -0.141017f, -0.171319f, -0.0237692f, 0.0180119f, 0.0285624f, -0.0339066f, -0.0771445f, -0.0444762f, -0.0181199f, -0.00876637f, -0.0394715f, 0.0846896f, 0.00530633f, -0.164432f, -0.00172045f, -0.137045f, -0.260803f, -0.093384f, 0.0107743f, -0.0731326f, 0.181659f, -0.0931247f, -0.167554f, 0.245851f, -0.053721f, -0.0175277f, -0.0530521f, -0.0878725f, 0.124573f, -0.0818821f, 0.00509112f, -0.0640113f, -0.0339474f, -0.0836228f, -0.0913483f, -0.0578378f, 0.0679754f, 0.0231074f, -0.00105483f, 0.0241209f, -0.0608716f, -0.0788297f, -0.124547f, 0.0113265f, 0.00546262f, -0.211121f, -0.140178f, -0.0364758f, -0.0112568f, 0.189108f, 0.124832f, 0.104614f, 0.0483891f, 0.0640903f, 0.193552f, -0.0318586f, 0.135379f, -0.0188406f, 0.0972105f, -0.141308f, 0.0316411f, -0.116579f, -0.275673f, 0.154076f, 0.0665114f, 0.0246515f, -0.212491f, 0.0651821f, 0.249411f, -0.00256757f, -0.25681f, -0.0803276f, -0.123014f, -0.0719113f, 0.0823692f, 0.277453f, 0.255207f, 0.0614313f, 0.0380694f, -0.165231f, 0.0351296f, 0.147965f, 0.245325f, -0.0268151f, -0.0205642f, 0.1021f, 0.109239f, 0.100596f, -0.0659674f, 0.150028f, -0.114223f, -0.104764f, -0.0909951f, -0.0907308f, -0.0146782f, 0.106957f, 0.0345291f, -0.170684f, 0.0721263f, -0.188291f, -0.0960148f, -0.0547256f, 0.0398756f, -0.0110119f, 0.0148864f, -0.0830081f, -0.0340782f, 0.137087f, -0.116425f, -0.115789f, -0.0583568f, 0.0740735f, 0.121546f, -0.164741f, -0.153363f, -0.0607384f, 0.0755039f, 0.00618883f, 0.12424f, -0.076536f, -0.0068744f, -0.0530754f, 0.166541f, -0.0321463f, -0.0203415f, 0.155306f, 0.187167f, -0.0162379f, 0.110394f, 0.246536f, 0.147424f, -0.238211f, 0.0538723f, -0.11358f, -0.0023106f, 0.13617f, -0.151912f, 0.00689462f, 0.00886117f, -0.171002f, 0.00535728f, -0.00728942f, -0.0529248f, -0.178932f, -0.200535f, 0.0520131f, -0.261375f, -0.13884f, 0.33651f, -0.134084f, -0.18732f, -0.192076f, -0.0476613f, 0.0174426f, 0.12254f, 0.0151347f, 0.0490978f, 0.162066f, 0.0867149f, 0.124116f, -0.0752885f, 0.092335f, -0.0236801f, 0.00614899f, -0.193492f, -0.126471f, 0.0695949f, -0.0218419f, 0.0689674f, -0.0348408f, 0.0386846f, 0.100404f, 0.205682f, 0.0741616f, 0.0701916f, -0.102501f, 0.044295f, 0.0680361f, 0.0839527f, -0.313429f, -0.076329f, -0.0201976f, 0.0433663f, 0.135957f, -0.0415556f, -0.0225518f, 0.0725022f, -0.0217586f, 0.034949f, -0.0157364f, 0.0918183f, -0.0208519f, 0.0123329f, 0.0929351f, 0.117467f, 0.0927813f, -0.160546f, 0.100754f, 0.00750045f, -0.0168751f, 0.0795157f, 0.126072f, -0.024458f, 0.0451902f, -0.27287f, 0.218597f, 0.114034f, -0.0943224f, -0.248322f, -0.144904f, -0.252053f, -0.00160636f, -0.0897279f, -0.106474f, 0.241779f, 0.234778f, 0.062426f, -0.0614233f, 0.10741f, -0.206703f, -0.124983f, -0.0332829f, -0.0497641f, -0.0525391f, 0.148465f, 0.0923057f, 0.0572046f, -0.0696736f, 0.0805223f, 0.0127227f, -0.123411f, 0.102103f, 0.0549487f, 0.0370646f, 0.055674f, -0.470878f, -0.125212f, -0.107246f, -0.0148649f, 0.0600628f, 0.343111f, 0.0589143f, 0.0860364f, 0.0531537f, -0.0890491f, -0.076989f, -0.0215755f, -0.119517f, 0.00981072f, -0.0357011f, 0.1195f, -0.139399f, 0.0471848f, 0.0335548f, 0.0431945f, -0.108973f, 0.0187678f, 0.0373552f, 0.0403006f, 0.0650444f, 0.171058f, 0.0553469f, 0.133008f, -0.0499485f, 0.0345569f, -0.177785f, -0.0295819f, -0.0625778f, -0.0168819f, 0.068085f, -0.0233376f, -0.140229f, 0.314445f, -0.0441735f, -0.0776804f, 0.0237452f, -0.120031f, 0.0143392f, 0.274576f, 0.0149547f, -0.0870437f, -0.0603015f, 0.169668f, 0.317966f, 0.0415787f, -0.0740253f, -0.118292f, -0.125123f, 0.0948435f, 0.0455207f, 0.0165323f, -0.161555f, 0.106599f, -0.0628038f, -0.123334f, -0.168875f, -0.0951626f, 0.314147f, 0.111839f, -0.195721f, -0.0478309f, 0.26447f, 0.185254f, -0.119806f, 0.0712592f, 0.0232294f, -0.00967556f, -0.40469f, -0.114138f, -0.0753025f, 0.364241f, -0.0457677f, 0.038906f, -0.0139924f, 0.174209f, 0.103911f, 0.233675f, 0.0416089f, -0.104257f, 0.0179545f, 0.15337f, -0.34638f, -0.0194847f, 0.068344f, -0.122462f, -0.0245239f, -0.0285078f, -0.197257f, -0.213592f, 0.00143341f, -0.109647f, 0.130501f, -0.0695835f, 0.100089f, 0.00317602f, 0.168256f, -0.115027f, 0.0971764f, 0.0578275f, -0.00919284f, -0.159486f, -0.0732071f, -0.0304731f, 0.0175216f, 0.0201751f, -0.0220706f, -0.262027f, -0.317717f, -0.105075f, -0.0133959f, 0.0651685f, 0.222982f, 0.210936f, -0.019804f, -0.110145f, -0.0795353f, 0.0442291f, 0.281395f, -0.140463f, 0.0374366f, -0.0868268f, -0.061389f, -0.0895289f, -0.0106851f, -0.0334115f, -0.0897351f, 0.305798f, 0.00727908f, -0.399389f, -0.0127416f, 0.0388931f, -0.0905257f, -0.00408857f, 0.021926f, -0.286749f, 0.129241f, 0.0988975f, 0.276849f, -0.130706f, 0.271173f, 0.116347f, -0.0125314f, -0.0364615f, 0.0736736f, -0.189267f, 0.0435563f, -0.218109f, 0.110791f, -0.028058f, -0.0230806f, 0.113847f, -0.182106f, 0.177109f, -0.0324355f, -0.113305f, -0.17778f, -0.255605f, 0.105694f, -0.146282f, -0.0485151f, 0.252765f, 0.0600523f, 0.161287f, 0.208913f, -0.0513928f, 0.115842f, -0.0804926f, 0.0235396f, 0.00990825f, -0.231509f, -0.231942f, -0.235095f, -0.0313685f, 0.0502452f, -0.108204f, -0.194983f, 0.0808939f, -0.193318f, 0.0835725f, -0.0805278f, -0.185605f, -0.0293647f, 0.179133f, 0.0251827f, -0.0474309f, -0.0846702f, 0.0766001f, -0.0520096f, 0.194773f, -0.0997282f, 0.280131f, 0.191243f, -0.159353f, 0.00379441f, -0.240206f, -0.187954f, -0.106549f, 0.21016f, -0.260501f, 0.0713654f, -0.251889f, -0.00117539f, -0.0363072f, -0.0989675f, -0.0109078f, 0.0607232f, 0.207091f, -0.10138f, -0.0492371f, -0.0116745f, 0.0897684f, -0.265468f, -0.0197408f, -0.292873f, 0.389452f, 0.00666047f, 0.0117449f, -0.126344f, -0.197882f, 0.068758f, 0.0800782f, -0.128629f, -0.231549f, -0.250417f, -0.174898f, 0.0164303f, 0.266493f, 0.142735f, 0.0447951f, -0.165765f, -0.346038f, -0.00104623f, 0.0602282f, -0.159744f, 0.147592f, -0.207663f, 0.0212681f, 0.0133337f, -0.0487992f, -0.0168276f, 0.139685f, -0.151139f, 0.0477348f, -0.126613f, -0.0351565f, -0.142295f, -0.0811202f, 0.127384f, 0.0263713f, 0.364185f, 0.0536998f, -0.141478f, -0.150659f, -0.0775663f, 0.0166737f, -0.00958435f, 0.0205708f, 0.0736546f, 0.0717687f, 0.0379615f, -0.044505f, -0.0800901f, 0.00837839f, -0.132112f, -0.128299f, -0.106064f, 0.266867f, -0.0172819f, -0.0284691f, -0.00218901f, 0.163169f, 0.0678103f, 0.00681276f, 0.0978422f, -0.106881f, 0.219658f, 0.089834f, -0.077284f, -0.206841f, -0.104795f, 0.0163498f, -0.14868f, -0.0746137f, 0.209937f, -0.053104f, 0.148976f, -0.134429f, -0.265521f, 0.0581485f, -0.127857f, 0.0464985f, 0.0392944f, 0.0745396f, -0.16359f, 0.0983635f, 0.128288f, -0.0979731f, 0.0848639f, 0.00905717f, -0.0480785f, 0.280512f, 0.00141913f, -0.121984f, -0.030199f, -0.0495627f, 0.123029f, -0.0740715f, 0.122965f, 0.220538f, -0.163281f, 0.0465655f, -0.146502f, -0.0522851f, 0.0336482f, 0.0808231f, -0.18432f, -0.0207666f, -0.152636f, 0.0613986f, 0.222035f, -0.165827f, -0.34212f, 0.0763403f, -0.25481f, -0.0275055f, -0.139405f, -0.118316f, 0.0170816f, 0.0531945f, -0.0328561f, 0.0150346f, 0.16871f, -0.0320014f, -0.192303f, -0.0651152f, 0.0600161f, -0.111726f, 0.103776f, 0.0586049f, -0.0426075f, -0.0530793f, 0.0548779f, 0.0204883f, 0.175714f, 0.0889038f, -0.0390061f, 0.0469947f, -0.112392f, 0.0279454f, -0.0308567f, -0.119807f, -0.0181711f, -0.149913f, 0.196685f, -0.0702913f, 0.022942f, 0.0301804f, -0.0568228f, -0.107918f, 0.0450218f, -0.12063f, -0.0152671f, -0.0493172f, 0.0757605f, 0.112925f, -0.0431379f, 0.115511f, 0.185527f, -0.117872f, 0.0374082f, 0.0391021f, -0.104231f, 0.222614f, 0.238192f, -0.245012f, -0.153843f, -0.067967f, 0.0469528f, 0.074055f, -0.0127357f, 0.0309937f, -0.024664f, -0.104725f, -0.0565858f, -0.0750139f, 0.0587039f, 0.0233215f, 0.0559541f, 0.128716f, -0.0926706f, -0.108483f, -0.103775f, 0.0421852f, -0.0768965f, -0.115147f, 0.00757938f, 0.114241f, -0.0388991f, -0.0258227f, 0.0489478f, 0.261642f, -0.154563f, -0.159236f, -0.0250025f, -0.186356f, -0.138554f, 0.159555f, 0.0176114f, -0.109004f, -0.134468f, -0.0213755f, -0.0454651f, -0.209413f, -0.00283468f, 0.0102541f, 0.0407942f, -0.08248f, -0.386261f, 0.0275149f, 0.288595f, 0.0956394f, -0.136608f, -0.173049f, -0.121896f, -0.0665448f, -0.275981f, 0.124444f, -0.0815051f, -0.0653876f, 0.00396807f, -0.175821f, -0.104644f, 0.0863159f, -0.615986f, -0.0572661f, -0.216149f, -0.0547806f, 0.109197f, 0.0787396f, -0.0485127f, 0.15511f, 0.120498f, 0.0462979f, -0.144869f, -0.106978f, 0.307295f, -0.0403246f, -0.101405f, -0.0394376f, -0.141789f, -0.00801439f, -0.0555671f, 0.233534f, 0.081286f, 0.0147605f, 0.142435f, 0.0186857f, -0.025905f, -0.145323f, 0.0519146f, -0.0198511f, -0.160767f, -0.117798f, 0.000749668f, 0.139092f, -0.257221f, -0.250256f, 0.301641f, -0.330781f, 0.116096f, -0.0282766f, -0.18955f, -0.14057f, 0.217073f, -0.108983f, 0.208326f, -0.211461f, 0.188661f, 0.109951f, 0.034512f, 0.332364f, 0.0542851f, 0.239021f, 0.228924f, 0.180214f, -0.0817396f, -0.115687f, -0.00827602f, 0.222074f, -0.229195f, 0.0470986f, 0.0346976f, 0.0370586f, -0.0659532f, 0.0856194f, -0.043531f, -0.236319f, 0.109182f, -0.00224037f, -0.134188f, -0.00629236f, 0.207573f, -0.0810468f, 0.0931846f, 0.218788f, -0.11523f, -0.0624672f, -0.00755197f, 0.186329f, 0.0617991f, -0.12197f, 0.0656982f, 0.0957405f, -0.189581f, -0.131269f, -0.00570113f, -0.118618f, 0.33455f, -0.165802f, 0.0296114f, -0.203565f, 0.201534f, 0.0398017f, -0.100864f, 0.193778f, -0.190178f, 0.0315717f, 0.376823f, 0.133211f, -0.0166534f, -0.42791f, 0.205231f, -0.0156022f, -0.199465f, 0.152666f, -0.253489f, -0.126391f, -0.163857f, -0.230581f, -0.0066652f, -0.354721f, -0.090887f, 0.0868748f, -0.0694335f, -0.213118f, -0.150453f, 0.214118f, -0.0425348f, -0.261076f, -0.316196f, -0.21864f, -0.0241316f, -0.0100903f, -0.267577f, 0.120995f, 0.00483623f, 0.128372f, -0.0790561f, -0.149776f, -0.104652f, 0.0240601f, -0.0589122f, 0.102877f, -0.0212154f, 0.0616494f, 0.0598273f, -0.107719f, 0.0636802f, 0.15826f, 0.0679276f, 0.234846f, -0.316246f, 0.0892604f, -0.23749f, 0.0831881f, 0.0595867f, -0.0694765f, 0.155192f, -0.00248955f, 0.0543326f, 0.20495f, 0.00274942f, 0.0493927f, -0.0270561f, 0.0876529f, -0.0267969f, 0.0883839f, -0.077101f, -0.199788f, 0.00736471f, 0.161655f, -0.00373266f, -0.228643f, -0.00119508f, -0.0808575f, -0.0747892f, -0.288807f, -0.162201f, 0.345666f, 0.112746f, 0.150922f, 0.0684921f, 0.253634f, -0.138023f, -0.124479f, 0.141764f, 0.0626992f, -0.169178f, -0.0911922f, -0.105532f, -0.155385f, 0.200477f, -0.0184117f, 0.0694894f, 0.176651f, 0.130999f, 0.045468f, -0.167499f, -0.0353376f, 0.139134f, -0.0802678f, -0.173139f, -0.0163223f, 0.0693099f, -0.015441f, -0.267852f, -0.0193617f, -0.126537f, 0.106639f, 0.134763f, -0.0818167f, -0.135762f, 0.122171f, 0.0922447f, -0.00673334f, -0.013605f, -0.110769f, 0.00523973f, 0.119153f, 0.0177585f, 0.132674f, 0.015166f, -0.0668446f, -0.00429527f, 0.0720983f, -0.148811f, 0.217231f, 0.0468328f, -0.0438339f, 0.0331218f, 0.163284f, -0.11202f, -0.00901902f, 0.0531647f, -0.038459f, -0.0676675f, -0.174105f, -0.00549811f, -0.071756f, -0.0411053f, -0.0399897f, 0.114079f, -0.272139f, 0.011917f, 0.206196f, -0.016357f, -0.0341654f, -0.137993f, -0.0490685f, 0.11097f, -0.0438336f, -0.0725451f, 0.0447244f, 0.0812453f, -0.253014f, 0.102836f, -0.0650699f, -0.00125401f, -0.20739f, 0.0116898f, 0.00251838f, 0.120066f, -0.0926905f, -0.230666f, 0.0462059f, 0.0757318f, 0.012019f, 0.0776f, 0.174092f, -0.0759415f, -0.00717692f, 0.0105838f, -0.16699f, -0.0140191f, 0.18475f, -0.0128559f, 0.0431865f, -0.203841f, -0.0350552f, -0.0828466f, -0.0987233f, -0.0130604f, -0.0998753f, 0.128547f, 0.0132674f, 0.240692f, 0.0491819f, -0.0396196f, -0.0406323f, 0.013671f, -0.32409f, -0.154476f, 0.00878941f, 0.0165572f, 0.0290373f, 0.0566106f, -0.0107034f, 0.0132655f, 0.189094f, -0.106495f, -0.214435f, -0.0917924f, 0.102937f, 0.0836593f, 0.136878f, -0.0110003f, -0.0191777f, 0.129467f, 0.0406456f, 0.0124464f, -0.0122863f, -0.0716756f, -0.0856629f, -0.0485028f, -0.0715402f, 0.0957888f, -0.23842f, -0.0889181f, -0.156936f, 0.0486923f, 0.144826f, -0.0164455f, -0.0322643f, 0.113049f, -0.0845271f, 0.144487f, -0.000321593f, 0.0710814f, -0.127262f, 0.00581351f, -0.105488f, -0.00342391f, 0.106165f, 0.140551f, -0.0476947f, 0.0445703f, 0.062082f, 0.121964f, -0.044176f, 0.0999669f, -0.0073625f, -0.0965535f, -0.171851f, -0.305771f, -0.0130189f, -0.0042518f, 0.0164486f, 0.0507832f, 0.147131f, -0.161339f, 0.0295572f, -0.0223309f, 0.02778f, -0.0272566f, -0.0307399f, 0.054517f, 0.0874602f, 0.077016f, 0.0248167f, 0.0954786f, 0.00247161f, -0.0674556f, 0.106094f, 0.0786453f, 0.0996219f, 0.0933953f, 0.189054f, 0.0705101f, -0.0109718f, -0.0221216f, 0.0182519f, 0.0487298f, -0.0771051f, -0.0238929f, 0.0832127f, -0.0427017f, -0.0643218f, 0.148602f, -0.0800435f, 0.0243547f, -0.046451f, -0.114062f, -0.231886f, -0.0212399f, 0.0795081f, -0.0339158f, -0.0824329f, -0.100853f, -0.0336743f, 0.0783544f, -0.121566f, 0.0444951f, 0.090433f, -0.0568643f, -0.151584f, -0.25056f, 0.156784f, -0.13931f, -0.017322f, 0.0498955f, -0.217329f, -0.00109008f, 0.142544f, -0.164507f, -0.011993f, -0.049551f, 0.223965f, -0.675036f, 0.0795516f, -0.218461f, 0.354112f, -0.10659f, 0.0625552f, -0.0591272f, -0.00870316f, 0.0902766f, -0.323798f, -0.131816f, -0.190994f, 0.0739906f, -0.167152f, 0.0755497f, 0.0102997f, 0.142274f, -0.0555104f, 0.018056f, -0.0846137f, -0.228867f, -0.182238f, -0.0117629f, -0.0996297f, -0.11562f, 0.165232f, 0.224629f, -0.221606f, 0.0756078f, 0.0469302f, -0.0250563f, 0.0288429f, 0.154383f, -0.00423635f, 0.0844587f, -0.0281177f, -0.236355f, 0.147127f, 0.356553f, 0.0216632f, 0.0121455f, 0.193289f, -0.060154f, 0.168634f, -0.0304046f, -0.0119752f, 0.0225123f, 0.137092f, -0.0828686f, -0.145786f, -0.00493385f, -0.0516546f, 0.0648202f, 0.0346568f, 0.228751f, -0.135717f, 0.148709f, 0.142345f, 0.276473f, -0.170605f, -0.000346861f, -0.00649896f, -0.0912158f, -0.0910292f, 0.360359f, -0.108553f, -0.130138f, -0.215907f, -0.00195032f, -0.092115f, 0.190169f, -0.0506209f, 0.173615f, 0.231727f, 0.105775f, 0.199491f, -0.0639197f, 0.0539353f, -0.0467901f, 0.07811f, -0.0410471f, -0.0456071f, -0.150531f, -0.110253f, -0.00573577f, 0.0790348f, -0.0165723f, -0.27118f, 0.0129319f, 0.023987f, 0.150955f, -0.086123f, -0.0526602f, 0.014759f, -0.108053f, -0.273565f, 0.137918f, 0.0574312f, -0.309176f, 0.0768269f, -0.105821f, 0.461348f, -0.0565283f, -0.387346f, -0.259838f, -0.209103f, -0.150254f, -0.0141709f, -0.223232f, 0.0998164f, -0.0737796f, -0.117624f, -0.192029f, 0.0388261f, 0.0342545f, -0.0129092f, -0.00748833f, -0.0212796f, -0.10045f, 0.00836917f, -0.0539031f, -0.0242672f, -0.175891f, 0.0316345f, -0.108721f, -0.0336646f, 0.0832403f, -0.145473f, 0.362701f, 0.00991924f, 0.188578f, -0.0882803f, 0.0102546f, -0.0238441f, 0.155297f, 0.0240704f, 0.0312281f, -0.0134818f, -0.00570017f, -0.198021f, -0.0241514f, -0.117604f, -0.00408694f, -0.0381234f, -0.100678f, -0.0509756f, 0.15367f, 0.0254802f, -0.181843f, 0.19711f, 0.086234f, -0.191275f, 0.10308f, 0.054f, 0.0569719f, 0.0841499f, -0.103437f, -0.0264707f, 0.0402602f, -0.0829969f, 0.357012f, -0.0305533f, 0.112463f, 0.0376172f, 0.0612694f, 0.127505f, 0.000297053f, -0.0406741f, -0.305039f, 0.0989186f, -0.181461f, -0.00325564f, 0.0601423f, 0.147002f, -0.266943f, 0.0589428f, -0.158682f, 0.0433436f, -0.0891149f, -0.0345639f, 0.173208f, -0.119353f, -0.0437201f, 0.239094f, -0.0840024f, -0.0703951f, -0.20634f, 0.0910826f, -0.126955f, 0.183956f, 0.0484055f, -0.00921427f, -0.0189732f, 0.0347304f, -0.122846f, 0.149226f, -0.0895513f, -0.0511199f, -0.206642f, -0.1008f, -0.0172138f, 0.178943f, -0.0453162f, 0.0265531f, -0.110147f, 0.114927f, -0.0159364f, -0.164889f, -0.029446f, -0.121467f, 0.0783814f, 0.263748f, 0.0592778f, -0.101361f, -0.135592f, 0.0360668f, -0.0781351f, 0.138782f, -0.114741f, 0.162787f, -0.18765f, -0.100265f, 0.103822f, 0.00975056f, -0.157853f, -0.108279f, 0.0104607f, -0.0133831f, -0.0792373f, -0.231993f, -0.231694f, -0.0524422f, -0.0910404f, -0.0542396f, -0.0697053f, -0.218394f, 0.0608541f, 0.0303724f, 0.0209724f, -0.128724f, -0.140501f, 0.0767816f, -0.0467914f, 0.159289f, -0.0156614f, -0.0938257f, -0.0441915f, -0.0579552f, -0.0439693f, -0.0442934f, -0.0962094f, -0.0439102f, 0.11661f, -0.111027f, 0.128188f, -0.0350229f, -0.0557169f, 0.0273043f, -0.112989f, -0.0237125f, -0.0394956f, -0.189449f, 0.00135041f, -0.0710174f, 0.0938717f, -0.0234011f, -0.0229175f, -0.220109f, 0.0331001f, -0.0295844f, 0.0195609f, 0.150199f, -0.0730391f, 0.0757437f, -0.0148363f, -0.00373527f, -0.0309213f, 0.0697173f, 0.022467f, -0.0119351f, -0.0511928f, -0.00292678f, 0.0228344f, -0.0141998f, 0.0453181f, 0.170731f, 0.0779615f, -0.138073f, 0.14712f, 0.0760711f, 0.104397f, 0.00504338f, -0.25121f, -0.116476f, -0.00735026f, -0.106123f, -0.00879038f, -0.00533386f, -0.102171f, 0.555954f, 0.0350549f, 0.0286944f, -0.0733999f, 0.0282833f, 0.0175427f, 0.211497f, 0.118106f, -0.0155755f, 0.0644409f, 0.0929899f, 0.0479609f, 0.0269121f, 0.0691454f, -0.329776f, 0.12504f, -0.128041f, 0.0676997f, -0.011925f, 0.26775f, -0.013819f, -0.401704f, 0.0731304f, -0.0427151f, -0.0582352f, -0.093871f, -0.258076f, -0.168f, -0.191958f, 0.253317f, 0.00929392f, 0.112412f, 0.0345268f, 0.171078f, -0.0249674f, -0.0577636f, -0.0207581f, -0.108863f, 0.0358076f, 0.0216701f, 0.0333628f, 0.100287f, -0.141637f, -0.201709f, -0.233814f, -0.0579768f, -0.0883036f, -0.116225f, 0.00110481f, -0.0814309f, 0.106213f, -0.0094718f, -0.0706927f, -0.2943f, -0.0678972f, 0.0145491f, 0.017534f, -0.0304976f, -0.0765642f, -0.0592641f, -0.311218f, 0.131164f, -0.220569f, 0.0358002f, 0.0938252f, -0.00578349f, 0.126272f, -0.0549851f, 0.0157093f, 0.079649f, -0.0277246f, 0.152772f, -0.137075f, -0.10045f, 0.023295f, 0.0167624f, -0.316732f, 0.0469931f, 0.0590679f, -0.00701312f, -0.0212543f, -0.109921f, 0.124499f, -0.0414248f, -0.0817689f, 0.146426f, 0.0533126f, -0.039247f, -0.0258194f, 0.0540975f, -0.162972f, -0.0923501f, 0.0574883f, 0.0736977f, -0.0644887f, -2.95972e-05f, -0.0135249f, 0.24441f, -0.127048f, 0.101545f, -0.168133f, -0.0245435f, -0.0714875f, 0.0477479f, -0.0105201f, 0.0556404f, -0.147151f, -0.0599847f, 0.0825428f, 0.128755f, 0.0559463f, 0.184536f, -0.158705f, 0.0915191f, 0.0755568f, -0.0814259f, -0.00282918f, 0.162183f, 0.155815f, -0.12732f, -0.159029f, -0.0323435f, -0.111184f, -0.0452571f, 0.409188f, 0.173091f, -0.109097f, 0.157002f, 0.0819369f, -0.0200621f, 0.0947903f, -0.0505533f, -0.244962f, -0.170666f, -0.0642962f, -0.00121203f, -0.0877337f, 0.0308992f, -0.0281817f, -0.186517f, -0.126851f, -0.0241557f, 0.153958f, 0.0168292f, 0.0795183f, -0.237351f, 0.151328f, 0.00803415f, 0.024529f, -0.026733f, 0.0807339f, 0.0990386f, -0.0911602f, 0.242332f, -0.170092f, 0.0621775f, -0.0834505f, 0.0631338f, -0.120743f, 0.122101f, -0.189633f, -0.233679f, 0.0220712f, -0.0311767f, -0.00680652f, 0.132822f, 0.124485f, 0.127348f, -0.0750319f, -0.00510406f, 0.0302581f, -0.00583074f, 0.0854767f, 0.212049f, 0.0455091f, -0.0697102f, -0.0632658f, -0.0592796f, -0.117064f, 0.0673248f, 0.036269f, -0.128297f, 0.079614f, 0.172914f, 0.000516444f, 0.138546f, 0.0782894f, 0.268264f, -0.210198f, -0.0538809f, 0.0079302f, 0.163217f, -0.286768f, 0.141963f, 0.0893882f, 0.14194f, 0.104968f, 0.109176f, -0.210895f, -0.120793f, -0.0610772f, -0.00480858f, 0.18727f, -0.221976f, -0.0387281f, 0.0351007f, 0.116138f, 0.0845374f, -0.0538966f, 0.0643566f, -0.222484f, -0.00149353f, 0.00269921f, 0.282218f, -0.0395294f, -0.168662f, -0.239969f, 0.0753549f, 0.253276f, -0.0313533f, -0.0236465f, -0.264953f, -0.0919765f, -0.0182978f, -0.0812387f, -0.31375f, -0.0377095f, -0.0207113f, 0.144516f, -0.06604f, 0.149887f, 0.142826f, 0.0565134f, -0.0252699f, 0.00972422f, -0.0694521f, 0.210878f, -0.144414f, 0.320111f, -0.0441501f, 0.0159881f, -0.0612097f, -0.205603f, 0.0140719f, -0.00424821f, -0.117571f, -0.234786f, 0.261628f, 0.196823f, -0.198329f, -0.164356f, -0.340705f, -0.126163f, 0.0282352f, -0.0182826f, 0.00560548f, 0.0188022f, -0.203053f, 0.0108929f, -0.182268f, -0.46069f, 0.118919f, 0.120354f, -0.238897f, -0.136355f, 0.00409598f, -0.337458f, -0.0656115f, 0.0289843f, 0.122731f, 0.0763256f, -0.0395859f, 0.10238f, -0.207634f, 0.221425f, 0.212413f, 0.225298f, 0.123092f, 0.0315227f, -0.043557f, 0.170194f, 0.22681f, 0.0433707f, -0.375873f, -0.0731283f, -0.166616f, 0.12399f, 0.0311856f, -0.0832893f, -0.0158932f, 0.178994f, 0.0224398f, 0.0872198f, -0.0251813f, -0.11294f, -0.326646f, 0.305971f, 0.261107f, 0.265433f, 0.183894f, 0.499277f, -0.099957f, 0.238852f, 0.0865672f, -0.0211755f, 0.000420792f, -0.123348f, 0.259557f, 0.0787918f, 0.0604821f, 0.0196133f, 0.174182f, 0.207718f, -0.102294f, -0.288271f, 0.0525497f, -0.0373435f, -0.0718959f, -0.0264325f, -0.122162f, -0.0892063f, 0.0407451f, -0.0744222f, -0.108864f, 0.0117491f, -0.0378424f, 0.0693082f, -0.0724496f, 0.0400291f, -0.169354f, -0.213633f, 0.183358f, 0.115388f, -0.0330849f, -0.0651633f, 0.021778f, 0.113188f, 0.0674459f, 0.00159157f, 0.157269f, 0.355856f, 0.020943f, -0.176622f, -0.196052f, -0.169183f, 0.0759198f, -0.179132f, -0.0494362f, 0.165482f, 0.256864f, 0.0960626f, 0.186588f, -0.113151f, -0.146398f, -0.1344f, -0.0122007f, -0.112434f, -0.0344197f, 0.0529206f, -0.148766f, 0.019399f, -0.107512f, -0.193893f, -0.101034f, -0.0558683f, 0.119673f, 0.199496f, 0.102046f, 0.397837f, -0.187258f, -0.0357584f, -0.124918f, -0.0587591f, 0.248379f, 0.28191f, -0.0952353f, 0.0833489f, -0.324282f, 0.125962f, -0.0633718f, 0.130763f, 0.038874f, 0.117652f, 0.0714197f, 0.203417f, 0.321252f, 0.13941f, 0.26271f, -0.28652f, 0.242239f, -0.0871334f, -0.302619f, 0.0834716f, 0.0712438f, 0.161092f, 0.159633f, -0.0160601f, -0.234672f, 0.0646593f, 0.0589905f, -0.122286f, -0.000329586f, 0.201371f, -0.15912f, -0.0277016f, -0.35188f, 0.0494326f, -0.139762f, 0.0545644f, 0.20986f, -0.0706323f, 0.244787f, -0.0132704f, 0.116813f, -0.125311f, 0.0893691f, 0.158767f, -0.0928008f, 0.116025f, -0.0113078f, -0.016772f, -0.0410135f, 0.137993f, 0.00343945f, 0.199641f, 0.0424888f, -0.0779876f, -0.175134f, 0.0122351f, 0.387779f, 0.366745f, -0.0464132f, 0.0397071f, 0.140661f, -0.124141f, 0.0947619f, -0.300469f, -0.0554236f, 0.221993f, -0.207411f, 0.0799619f, -0.0087884f, 0.0521656f, 0.241565f, 0.173622f, 0.191673f, -0.287688f, 0.129115f, 0.116099f, -0.0188704f, -0.0157435f, -0.0160277f, -0.179623f, -0.299556f, 0.327872f, -0.0928759f, -0.195279f, -0.0385729f, 0.0699204f, -0.0214675f, -0.0786873f, -0.094574f, -0.193904f, 0.0371538f, -0.165844f, -0.0716859f, -0.00937342f, 0.104379f, 0.0354173f, 0.0279561f, -0.0115831f, -0.0697398f, 0.171284f, 0.102572f, -0.0607869f, 0.0914678f, -0.138429f, -0.120323f, -0.149216f, -0.0271419f, -0.130672f, 0.0921416f, 0.090181f, -0.0909962f, -0.0729027f, 0.059497f, 0.109856f, 0.137585f, 0.127717f, 0.237545f, 0.189977f, -0.0279378f, 0.188369f, 0.175864f, -0.0297615f, 0.0188576f, 0.0503927f, -0.111611f, -0.0288344f, -0.163641f, 0.0335454f, -0.114435f, -0.141919f, -0.0194669f, -0.0946004f, -0.165387f, -0.202454f, -0.251283f, -0.147451f, 0.0170139f, 0.038061f, 0.16042f, 0.0394545f, 0.0244369f, -0.0280742f, 0.191085f, -0.137304f, -0.0664144f, 0.0139638f, -0.00450943f, -0.154645f, -0.00384964f, 0.361569f, -0.0603615f, -0.0456706f, 0.0613169f, 0.121766f, 0.129854f, -0.0974961f, -0.0332091f, 0.000844022f, -0.00934527f, 0.0117711f, -0.388222f, -0.0520481f, -0.130863f, 0.264833f, 0.058053f, -0.237663f, 0.113931f, -0.0623369f, 0.170833f, -0.0769375f, -0.105095f, 0.0165501f, 0.145436f, -0.0452407f, 0.0868734f, -0.0503152f, -0.0319133f, 0.00953783f, 0.151919f, 0.0906335f, 0.0495653f, -0.025938f, 0.386218f, 0.0577179f, -0.0811449f, 0.0587128f, 0.117162f, 0.00897267f, -0.0136502f, 0.187089f, 0.1894f, 0.11473f, -0.405389f, 0.0530756f, -0.0341115f, -0.0783089f, -0.127179f, 0.0767421f, 0.0458596f, -0.135984f, 0.0162017f, 0.165873f, -0.0271246f, 0.0298235f, -0.163039f, -0.0827675f, 0.0772054f, 0.257604f, 0.11988f, 0.146491f, 0.0447187f, 0.188418f, 0.0366515f, 0.00651919f, -0.0990278f, -0.0588034f, 0.0548963f, -0.0460424f, -0.0688271f, 0.0319651f, 0.0608441f, -0.00783613f, 0.0897104f, -0.0872292f, -0.300056f, 0.26294f, 0.0361918f, -0.0564353f, -0.0501276f, -0.0902244f, -0.188879f, 0.0448091f, -0.0365101f, 0.030959f, 0.0445864f, 0.276618f, 0.106445f, -0.0545939f, -0.0294047f, -0.100924f, 0.282382f, 0.0115651f, -0.0159939f, 0.227992f, -0.0412446f, 0.0881745f, 0.0260359f, 0.0371998f, -0.045166f, 0.0495604f, -0.164503f, 0.0967581f, -0.0943388f, -0.0340473f, 0.0323469f, -0.056309f, 0.0916351f, 0.114564f, 0.120794f, -0.0937397f, 0.0229282f, -0.167986f, -0.0337039f, -0.152534f, 0.261623f, -0.0793077f, -0.127573f, 0.22517f, -0.0898207f, -0.158051f, 0.0618064f, 0.176633f, 0.483437f, 0.0810614f, -0.0204719f, 0.110032f, -0.158757f, -0.0503603f, -0.352614f, 0.435575f, -0.205705f, -0.32288f, -0.168759f, 0.116211f, 0.286998f, -0.0181241f, 0.149712f, 0.000906047f, -0.315059f, 0.156709f, 0.0849519f, -0.0978079f, -0.127913f, 0.081246f, 0.0576293f, -0.210637f, -0.234705f, 0.242067f, 0.0263672f, 0.0564204f, 0.0357223f, -0.0787375f, 0.0207912f, 0.204522f, 0.00490528f, -0.0466695f, 0.105089f, 0.0454902f, 0.0254675f, -0.19316f, -0.110355f, -0.0363607f, -0.0976069f, 0.120761f, -0.141523f, -0.00407963f, -0.0431317f, -0.0618925f, 0.11112f, 0.103243f, 0.0400766f, 0.0262271f, -0.0288381f, 0.0813797f, 0.00450585f, 0.106059f, -0.126332f, 0.185091f, 0.127594f, 0.0261572f, 0.014971f, 0.1159f, -0.264716f, 0.0578594f, 0.0720697f, 0.107909f, -0.0928939f, -0.217562f, -0.0186412f, 0.0331015f, 0.0772303f, 0.102622f, 0.14007f, 0.0772472f, -0.061979f, -0.0663386f, 0.22089f, -0.024942f, 0.0260072f, 0.149457f, -0.106119f, -0.0339554f, 0.167732f, 0.1436f, -0.0656165f, -0.00972493f, -0.135961f, 0.120425f, 0.166489f, 0.067983f, 0.0438394f, 0.0185893f, 0.0542146f, -0.124357f, -0.207561f, -0.160733f, 0.034931f, 0.0788577f, -0.150428f, -0.0548452f, -0.307793f, -0.0766496f, -0.136083f, 0.00872598f, -0.035356f, -0.0777526f, 0.16478f, -0.00941367f, 0.200408f, -0.0885014f, 0.0319308f, -0.0745221f, 0.0807326f, -0.0604876f, 0.193094f, -0.0793531f, 0.102406f, 0.129962f, -0.0495684f, -0.300203f, -0.083698f, -0.075988f, -0.00398853f, -0.0840829f, -0.172385f, 0.197082f, -0.0571999f, 0.0878567f, -0.0755244f, 0.0532657f, 0.269155f, 0.277302f, -0.0294058f, 0.271921f, -0.002929f, -0.021094f, -0.343358f, -0.00832437f, 0.0113207f, -0.0420874f, 0.0645756f, 0.0554777f, 0.0628705f, -0.0143739f, 0.0264201f, 0.0477647f, -0.115949f, -0.212417f, -0.0802815f, 0.0431099f, 0.0731431f, -0.0368446f, -0.142285f, -0.170961f, 0.00765674f, 0.0995143f, 0.0556546f, -0.0911686f, -0.0271566f, 0.0133541f, -0.0917083f, 0.156348f, -0.158808f, 0.0679601f, -0.00665035f, -0.0170869f, 0.0218347f, 0.0263043f, 0.0501321f, -0.219208f, -0.121174f, -0.108169f, -0.077961f, 0.396913f, -0.0176664f, -0.136355f, 0.015511f, 0.0932042f, -0.0920663f, -0.126005f, 0.00674869f, -0.00934503f, 0.0963072f, -0.209817f, -0.184443f, 0.0272553f, 0.0643442f, -0.0807527f, -0.191769f, 0.00487088f, 0.00663628f, -0.149307f, -0.0689126f, -0.00571871f, -0.188296f, 0.0906229f, 0.0170521f, 0.168663f, -0.203161f, 0.0271366f, -0.0879013f, -0.00288886f, -0.00824585f, -0.211732f, 0.0134084f, -0.0305043f, 0.156751f, -0.0170231f, -0.128369f, -0.010417f, -0.0963278f, -0.00753472f, -0.0848393f, -0.0411848f, -0.0774454f, 0.137975f, 0.116721f, -0.0995877f, 0.0347347f, 0.0843693f, 0.0732096f, -0.158572f, -0.0424598f, -0.161458f, -0.104236f, -0.103017f, -0.164613f, -0.00377202f, 0.139636f, -0.167326f, 0.191328f, 0.0205097f, -0.0252085f, -0.131036f, -0.143023f, -0.0576272f, -0.0368379f, 0.00625452f, -0.0956668f, -0.100505f, -0.0341017f, 0.123698f, 0.222059f, -0.0126959f, 0.028717f, 0.0791114f, 0.0372353f, -0.248537f, -0.200449f, -0.053401f, -0.172304f, -0.0139698f, -0.0564436f, 0.0968293f, 0.0566218f, 0.0696025f, 0.132011f, 0.130699f, -0.245625f, -0.0133224f, 0.000460143f, -0.0530724f, -0.0554972f, 0.171474f, -0.112081f, -0.198305f, -0.0613917f, -0.0182596f, -0.135792f, -0.184059f, -0.140325f, 0.0188833f, -0.00820364f, -0.120396f, -0.249754f, -0.0313191f, 0.103633f, 0.175333f, -0.0494208f, -0.0405821f, -0.0313586f, 0.0760665f, 0.0140075f, 0.0295262f, 0.0574659f, -0.164331f, -0.182798f, 0.0906615f, -0.0598254f, 0.051697f, 0.0720013f, -0.00277005f, 0.0143451f, 0.114064f, 0.0281403f, -0.0988676f, 0.0998475f, 0.0982005f, 0.097668f, -0.0336412f, 0.0120659f, -0.133081f, 0.117323f, -0.179099f, 0.0920298f, -0.13933f, 0.0533819f, -0.260719f, 0.140857f, 0.0561933f, 0.0597374f, 0.0814418f, -0.109443f, -0.0949156f, 0.0378657f, 0.0418335f, 0.114339f, -0.153962f, -0.103003f, 0.0730049f, 0.123245f, 0.102277f, 0.132093f, 0.0151937f, 0.154382f, 0.0987622f, -0.0610494f, 0.0908709f, -0.244382f, -0.211781f, -0.0302503f, -0.0377833f, -0.0111629f, -0.0789348f, 0.18641f, -0.148452f, -0.116363f, -0.0264535f, -0.00984184f, -0.0108336f, -0.2867f, 0.00641015f, 0.200657f, -0.200574f, -0.0378761f, 0.0666651f, 0.0178377f, -0.0214606f, -0.0420845f, -0.237275f, -0.0617928f, -0.0811458f, -0.101872f, -0.0133891f, -0.0677674f, 0.135727f, 0.13826f, -0.119277f, 0.00121887f, 0.00490164f, 0.271664f, 0.00895114f, -0.193027f, -0.182903f, 0.092222f, 0.0890404f, 0.059772f, 0.319074f, 0.106105f, -0.0287712f, 0.130013f, -0.15303f, 0.0969843f, 0.0492764f, 0.0602619f, 0.0320813f, 0.280469f, 0.311129f, -0.138442f, -0.154825f, -0.207381f, -0.219238f, 0.153613f, 0.0525706f, 0.171688f, -0.025111f, -0.211718f, 0.00068826f, 0.246831f, -0.148277f, -0.115015f, 0.226821f, 0.107998f, -0.0380441f, 0.0476403f, 0.0151555f, -0.17916f, -0.141896f, -0.0486275f, -0.119824f, -0.0277679f, 0.107263f, -0.0668283f, -0.0865377f, -0.0320209f, -0.0503106f, -0.172671f, -0.0840946f, 0.122768f, 0.111575f, -0.0264371f, -0.109841f, -0.0620857f, -0.0792843f, -0.08828f, -0.0684746f, -0.000347778f, -0.122417f, 0.240167f, 0.103624f, 0.0305209f, -0.0729137f, -0.163666f, 0.050761f, 0.0772306f, -0.0730457f, 0.0570704f, -0.223159f, -0.144411f, -0.202319f, -0.0672f, 0.126452f, 0.155896f, -0.0377125f, -0.134512f, 0.146398f, 0.173678f, 0.0219569f, 0.170298f, -0.27448f, -0.273203f, -0.160553f, 0.0630529f, -0.166359f, 0.103687f, 0.0395649f, -0.19186f, 0.107964f, 0.0743879f, -0.0598427f, 0.29039f, 0.0232862f, 0.0143402f, 0.221102f, 0.206276f, -0.0576824f, 0.00963852f, 0.0430802f, 0.0694903f, 0.25828f, -0.100739f, -0.185843f, -0.241794f, -0.0489348f, 0.082308f, 0.0324332f, -0.165135f, -0.0787906f, -0.24581f, -0.168437f, -0.306945f, -0.0498023f, -0.0429755f, -0.0840849f, -0.0362163f, -0.146692f, -0.083201f, 0.00535844f, 0.136324f, 0.0571618f, -0.152285f, -0.0911984f, 0.12038f, 0.0530435f, 0.0270947f, -0.010479f, -0.0184457f, 0.307557f, 0.11863f, 0.100521f, 0.0460347f, 0.207892f, 0.0217672f, -0.0936354f, 0.0440626f, 0.0237647f, -0.000215261f, -0.0589917f, 0.0447933f, -0.0193061f, 0.0629955f, -0.0252265f, 1.8698e-06f, -0.228515f, -0.00901308f, 0.0368365f, -0.101988f, 0.194608f, -0.0537212f, -0.169009f, -0.034391f, 0.0631618f, 0.0515581f, 0.0543421f, 0.331212f, -0.0785261f, -0.276152f, 0.00979667f, -0.107121f, -0.196011f, 0.189174f, -0.0588006f, 0.0129865f, -0.314912f, 0.339049f, -0.182941f, -0.119655f, -0.0727392f, 0.0441555f, 0.141088f, -0.106011f, -0.0190971f, -0.477053f, 0.181359f, 0.00793879f, 0.152392f, 0.103377f, 0.11229f, 0.0365259f, -0.0902041f, -0.0313437f, 0.253626f, -0.00146069f, -0.173046f, -0.0541151f, 0.0438426f, -0.0129061f, -0.0893281f, -0.0859336f, 0.0719419f, -0.0890567f, 0.247781f, -0.0414958f, -0.132999f, 0.200709f, -0.12833f, -0.0121249f, 0.172429f, 0.0348146f, 0.0629256f, -0.0675679f, 0.0383644f, 0.262278f, 0.120897f, -0.090971f, 0.0146957f, 0.135751f, 0.00157405f, -0.166813f, -0.182481f, 0.0304839f, -0.0103005f, 0.015764f, -0.0898519f, -0.0818909f, -0.0752128f, 0.0508372f, 0.135399f, -0.103384f, -0.241885f, -0.06232f, 0.151979f, 0.0855711f, 0.0542829f, -0.165058f, -0.09365f, -0.000614536f, 0.0243907f, -0.087419f, -0.0410585f, 0.0579594f, -0.044028f, 0.306866f, -0.0810725f, 0.502216f, 0.238259f, 0.130449f, 0.0537545f, 0.100842f, 0.0123144f, 0.137943f, 0.236089f, 0.175207f, 0.162003f, 0.197342f, 0.0799369f, 0.283358f, 0.127518f, 0.0304932f, 0.023946f, 0.262087f, 0.0633573f, 0.0377112f, 0.131628f, -0.176323f, -0.07702f, -0.112863f, -0.193577f, -0.0140973f, -0.0529279f, -0.193409f, -0.0807665f, -0.0975935f, 0.0118695f, 0.0980804f, -0.136406f, 0.171219f, 0.185636f, -0.0375191f, 0.108863f, 0.208427f, -0.25335f, 0.0206332f, -0.246113f, 0.167955f, -0.118822f, -0.29997f, -0.0560462f, 0.0482458f, -0.204922f, 0.0922495f, -0.24594f, -0.241124f, -0.0805653f, -0.0908326f, 0.0747681f, 0.182174f, -0.146519f, -0.119894f, -0.0283305f, -0.122626f, 0.130996f, 0.0197752f, 0.135948f, 0.0708405f, -0.0139193f, 0.0622611f, 0.23916f, -0.137721f, -0.00693722f, -0.0862162f, -0.0240354f, -0.0268353f, -0.157499f, -0.11279f, -0.126333f, -0.0762265f, -0.117988f, -0.024955f, -0.0844373f, -0.183197f, 0.0558629f, -0.0203132f, -0.346083f, 0.276014f, -0.0376927f, 0.0428287f, 0.056378f, -0.139192f, 0.214515f, -0.0404754f, -0.136496f, -0.00958074f, 0.118931f, 0.129981f, -0.00510275f, 0.0553086f, 0.0568904f, 0.0609638f, 0.216321f, -0.287297f, -0.0189518f, 0.0256329f, 0.0209711f, 0.00359652f, -0.194578f, -0.185062f, -0.175866f, 0.0504188f, 0.0549319f, -0.00592086f, 0.0216596f, -0.100204f, -0.0954269f, 0.0890191f, 0.0314041f, -0.205121f, 0.113073f, 0.137847f, 0.414074f, 0.272963f, -0.00359807f, -0.124357f, 0.0182574f, 0.0733794f, -0.195061f, -0.219674f, -0.0220431f, 0.0431044f, -0.0183956f, -0.0223023f, -0.0532284f, -0.270682f, -0.089932f, 0.0287935f, -0.116645f, -0.117663f, -0.0803971f, -0.0336231f, -0.00655112f, -0.0534579f, -0.178206f, 0.00386556f, 0.0806946f, 0.0342789f, -0.0417579f, 0.151528f, 0.0631807f, 0.0561987f, 0.14538f, 0.0185355f, 0.0119875f, 0.217525f, -0.106025f, -0.101613f, -0.0214914f, -0.172591f, 0.0542309f, 0.077959f, 0.129567f, -0.161987f, 0.0124522f, -0.17269f, 0.0151725f, -0.0540153f, -0.0743864f, -0.0413578f, 0.0713649f, 0.0174837f, -0.00758909f, -0.17994f, -0.208928f, 0.115421f, -0.129817f, 0.0934543f, 0.0533347f, 0.00365654f, -0.097583f, -0.00775235f, 0.0968828f, -0.290973f, 0.254265f, 0.0534184f, 0.0503905f, -0.00664052f, 0.167194f, 0.0883325f, -0.0185607f, 0.210757f, -0.225919f, -0.122093f, -0.0314377f, 0.0744216f, -0.086052f, 0.0248843f, 0.150012f, -0.102211f, -0.273902f, -0.1889f, -0.160364f, 0.144513f, -0.106173f, -0.288215f, -0.0165801f, -0.16966f, 0.00709875f, -0.113178f, -0.0743742f, -0.111011f, 0.216304f, 0.0356654f, 0.0572226f, 0.091497f, 0.0917391f, -0.041665f, -0.0873485f, -0.0543275f, -0.00140643f, 0.174558f, 0.061369f, -0.0954888f, -0.0961502f, -0.0661081f, 0.142405f, 0.0277434f, 0.115014f, 0.0810642f, 0.0782646f, -0.115046f, -0.0153076f, 0.0904126f, -0.094662f, -0.153581f, -0.112164f, -0.0563876f, -0.173142f, -0.0142865f, 0.206011f, -0.0950681f, 0.0124663f, 0.0698915f, -0.0347711f, 0.0700339f, -0.00234971f, -0.0320999f, 0.255738f, 0.090965f, -0.0481974f, 0.0355236f, 0.0537883f, 0.0530778f, 0.0891207f, 0.165221f, -0.0902066f, -0.0563816f, -0.0370862f, -0.0265205f, -0.0577156f, -0.194764f, -0.0778757f, 0.0377123f, -0.0114254f, -0.095822f, 0.0250627f, -0.130756f, 0.0567232f, 0.0783361f, -0.0105677f, -0.0135104f, 0.00136359f, 0.0293424f, -0.0742116f, 0.0950448f, -0.0362834f, 0.0472646f, -0.00793986f, -0.0871509f, -0.0315581f, -0.105845f, -0.000144292f, 0.016752f, 0.0271201f, -0.0811989f, 0.0797448f, -0.022653f, -0.0835573f, 0.0410909f, -0.0243023f, 0.00804342f, 0.0784954f, -0.104966f, 0.0510261f, -0.0527123f, 0.00158377f, 0.0793366f, 0.0291503f, -0.263079f, -0.141913f, -0.178345f, -0.199493f, 0.169307f, -0.148929f, 0.094103f, 0.0193755f, 0.0480069f, 0.00492426f, 0.00338488f, 0.097845f, 0.0535526f, 0.142023f, -0.0370003f, -0.14267f, -0.096399f, 0.0487046f, 0.0964162f, 0.00650451f, 0.0344189f, -0.0095115f, -0.106899f, 0.0139708f, 0.0218341f, -0.0322561f, -0.0787562f, -0.107553f, 0.0163719f, -0.230248f, -0.0844808f, 0.046659f, 0.00627568f, -0.0366396f, -0.00896172f, 0.0284205f, 0.0234528f, -0.0802394f, -0.0780581f, 0.0262341f, 0.0643986f, -0.0836191f, 0.050464f, -0.167062f, 0.13527f, -0.0255637f, -0.0243925f, -0.0414608f, -0.0846453f, 0.0206267f, 0.0566803f, -0.124232f, -0.0420362f, -0.166903f, -0.122558f, -0.031578f, -0.0516285f, -0.124164f, 0.0149314f, 0.0728567f, 0.110846f, 0.0459507f, 0.271953f, 0.00155175f, -0.0146462f, -0.260699f, -0.320235f, -0.19483f, 0.216037f, -0.0240905f, 0.0449949f, -0.0241354f, -0.0723858f, 0.0547407f, 0.104977f, 0.0758188f, -0.0970808f, 0.0362455f, -0.0386587f, -0.0726125f, -0.0660722f, 0.0609634f, -0.0557431f, -0.0365485f, 0.0396473f, 0.0697872f, -0.000168228f, -0.0371529f, 0.0872633f, 0.0451939f, 0.136344f, -0.0298024f, -0.204311f, 0.042195f, 0.0867612f, -0.0645435f, 0.147836f, 0.0188166f, -0.0107666f, -0.00697365f, -0.0093809f, 0.0446533f, -0.0262263f, 0.0264828f, 0.0136216f, 0.0547579f, 0.0837237f, -0.0123079f, 0.0901772f, -0.0278621f, 0.00479877f, -0.0157947f, 0.0385333f, 0.173098f, -0.068549f, 0.167362f, 0.0731123f, 0.00349053f, -0.0364843f, -0.0303606f, 0.0556321f, -0.0782121f, -0.02067f, 0.134032f, -0.244677f, 0.0440474f, 0.116437f, 0.010172f, -0.0902225f, -0.165087f, -0.0771571f, -0.188556f, -0.0933023f, 0.135869f, 0.0418011f, -0.0671141f, -0.0147728f, -0.0811446f, -0.128407f, 0.0593375f, 0.20776f, -0.0273906f, -0.154442f, -0.0967958f, 0.0218236f, 0.226721f, 0.131669f, 0.0520096f, 0.0433629f, -0.0336909f, 0.0130885f, -0.107212f, -0.149808f, -0.196124f, 0.118672f, -0.0979221f, -0.147638f, 0.188766f, -0.0654331f, -0.0269149f, -0.0720738f, -0.0967839f, -0.060857f, -0.0895484f, 0.023161f, 0.201737f, 0.134228f, 0.0773519f, -0.0159083f, -0.0427564f, -0.0562269f, 0.103496f, 0.0827951f, 0.0867334f, 0.0602894f, 0.133137f, -0.00816214f, 0.325246f, -0.14088f, 0.0222181f, 0.050193f, -0.102024f, -0.0906342f, 0.11784f, 0.107014f, -0.00419737f, 0.055199f, -0.0773991f, 0.097072f, -0.152864f, -0.152189f, 0.0672331f, 0.0108841f, -0.189234f, -0.10742f, 0.012909f, 0.16713f, -0.0152477f, -0.00685146f, -0.0144599f, -0.0803266f, 0.0307085f, 0.105714f, -0.0946192f, 0.225011f, -0.203139f, 0.0794016f, 0.0725623f, 0.120761f, 0.126636f, -0.178435f, -0.130872f, -0.00414169f, -0.0393673f, -0.078696f, 0.164295f, 0.0622472f, -0.0863702f, -0.14252f, 0.0906457f, -0.161069f, -0.164409f, -0.0915577f, -0.18732f, -0.0854101f, -0.118115f, -0.0124816f, -0.00854804f, 0.0895306f, -0.0815773f, -0.00128716f, 0.264944f, 0.0637346f, -0.225254f, -0.0268388f, -0.119226f, 0.214927f, -0.0198039f, 0.344633f, -0.114353f, -0.302906f, 0.0673806f, 0.0207657f, -0.100771f, 0.226307f, -0.0397031f, -0.0787485f, 0.00355764f, -0.0305372f, 0.0251799f, 0.000443322f, 0.087118f, -0.19812f, 0.0554051f, 0.166904f, -0.121133f, -0.109045f, -0.210226f, 0.00535609f, -0.321521f, -0.0156557f, 0.0949473f, -0.050804f, -0.158606f, -0.0173486f, 0.258755f, 0.110376f, 0.0776221f, 0.424768f, 0.0401504f, -0.15131f, 0.0202467f, -0.0425431f, -0.0290955f, 0.121276f, 0.259643f, 0.0171103f, 0.0598633f, 0.0443942f, -0.0321462f, -0.118013f, 0.00181181f, 0.0456152f, -0.185729f, -0.0243874f, -0.0663405f, -0.0938714f, -0.377889f, -0.155119f, -0.0109999f, -0.0321467f, -0.108286f, 0.109625f, -0.118992f, 0.000207169f, 0.107968f, 0.0822679f, -0.0161332f, -0.124066f, -0.217959f, 0.0395488f, 0.0803833f, -0.0362273f, -0.0388895f, 0.00752749f, 0.0231205f, 0.0640857f, 0.0212076f, -0.0617597f, -0.080615f, 0.0207203f, -0.107585f, 0.0850344f, -0.0352461f, 0.0445104f, 0.238502f, -0.265067f, -0.0656952f, -0.104157f, 0.0186269f, -0.0335773f, -0.0569423f, 0.0277803f, -0.157314f, 0.046371f, 0.06697f, 0.125684f, 0.0315439f, -0.0463709f, -0.163116f, -0.0337034f, 0.0731195f, -0.00122068f, 0.0547281f, 0.0386449f, 0.241871f, -0.0578474f, -0.267256f, 0.169773f, 0.0671295f, 0.098592f, -0.176351f, 0.0753376f, -0.146568f, 0.135668f, -0.0904828f, 0.0625086f, 0.0573141f, -0.238825f, 0.0130458f, -0.00264533f, 0.0996801f, 0.0213204f, -0.000590623f, -0.0810438f, -0.0520599f, 0.141844f, -0.108208f, 0.00373249f, -0.165901f, 0.128472f, -0.0105869f, 0.0123831f, 0.120551f, -0.0730645f, 0.150683f, -0.0764127f, 0.057942f, -0.0746531f, 0.103645f, 0.0481245f, 0.0337988f, 0.0255985f, -0.0687575f, 0.199727f, 0.0740634f, 0.14751f, 0.0969152f, -0.00701288f, -0.0839941f, -0.0215927f, 0.0821955f, 0.0223469f, -0.0602451f, -0.0337978f, -0.0250513f, -0.140398f, -0.101281f, 0.0458748f, -0.0109771f, -0.078027f, 0.127481f, -0.140235f, -0.0635128f, -0.116665f, 0.0879156f, -0.231545f, 0.0499756f, 0.112924f, -0.131182f, -0.0948329f, -0.0964908f, -0.0887308f, -0.0129289f, 0.0118104f, 0.0325332f, -0.0448447f, 0.0464325f, 0.0324425f, -0.0297708f, 0.0178279f, -0.0299756f, 0.324602f, 0.0689927f, -0.133487f, -0.182481f, -0.0560501f, -0.112347f, 0.0891833f, -0.0537972f, -0.0401831f, -0.0400496f, -0.0447663f, 0.00915347f, 0.0258446f, -0.109079f, -0.00855847f, 0.0323621f, 0.0330841f, -0.0198889f, 0.156476f, 0.108525f, 0.0422751f, 0.0185314f, 0.0471608f, -0.0676782f, -0.0769998f, 0.154824f, -0.0234617f, -0.0508311f, -0.0169962f, -0.056442f, -0.0746228f, 0.0666544f, -0.0739146f, -0.213096f, 0.00425603f, -0.163251f, -0.102934f, -0.175557f, -0.166057f, -0.229427f, -0.0662235f, -0.0568679f, -0.0221884f, -0.000988885f, -0.0427041f, -0.0269268f, 0.0625588f, 0.114116f, 0.18896f, -0.0606886f, -0.0438582f, 0.0339384f, 0.198942f, 0.0162286f, 0.120668f, 0.0838335f, -0.0159899f, -0.0213248f, -0.013561f, -0.060575f, 0.175536f, -0.0639138f, 0.0182675f, -0.033815f, -0.0171437f, -0.0992321f, -0.257317f, -0.135996f, 0.0695617f, 0.0434306f, 0.0162896f, 0.064582f, -0.0886022f, 0.254333f, 0.0416658f, 0.129221f, 0.0136698f, -0.0625563f, -0.0643978f, -0.110751f, -0.0575543f, 0.0827068f, -0.00640094f, -0.0958689f, 0.00314289f, 0.0396149f, 0.0281694f, 0.0233827f, -0.108119f, -0.0361183f, -0.0276862f, 0.0617984f, -0.0207387f, 0.00036304f, 0.112286f, -0.117152f, -0.0206485f, -0.039968f, 0.0955207f, 0.0560215f, -0.0451323f, -0.27346f, -0.119286f, 0.143875f, 0.0312385f, -0.0555074f, -0.0590312f, 0.276395f, 0.098926f, 0.0630511f, 0.219989f, -0.172062f, 0.0814281f, 0.183119f, 0.0421241f, -0.1197f, -0.0154313f, -0.0406502f, 0.100112f, 0.00642859f, -0.125965f, 0.0544854f, -0.00595968f, -0.014371f, -0.213382f, -0.14852f, -0.0324473f, -0.00934521f, -0.227212f, 0.1181f, -0.0531525f, 0.0738477f, -0.0436209f, 0.124079f, 0.115814f, 0.0500643f, -0.163347f, -0.00965065f, 0.057278f, -0.0631333f, -0.0937134f, 0.00874864f, 0.0277666f, 0.0250253f, 0.014143f, 0.00208671f, -0.0186698f, 0.0551758f, 0.162443f, 0.111905f, -0.0278288f, 0.0912425f, -0.0214095f, -0.0765226f, -0.10533f, 0.0750609f, -0.0940074f, -0.130625f, 0.0447197f, 0.0197969f, -0.133167f, -0.0717609f, -0.205743f, -0.0641562f, -0.0657688f, 0.484146f, -0.0136205f, -0.138755f, -0.0236948f, 0.00710269f, 0.0943522f, -0.0356048f, -0.13894f, 0.0620374f, 0.123444f, -0.0280343f, 0.107007f, -0.060275f, 0.0747935f, 0.315088f, 0.0877991f, 0.0204037f, -0.129017f, -0.0874298f, 0.0694043f, 0.0299449f, 0.0766661f, 0.00587568f, -0.071372f, -0.00204093f, 0.0411525f, 0.0476088f, -0.0963548f, 0.0450467f, -0.103938f, -0.0310999f, 0.0144046f, -0.0853674f, -0.1559f, 0.0389211f, 0.0355366f, -0.0703064f, -0.0542126f, 0.165835f, 0.15129f, -0.0574445f, 0.0189467f, 0.210875f, 0.0329055f, 0.0252829f, 0.0711983f, 0.0875105f, -0.0382475f, 0.0669747f, -0.0122752f, -0.103183f, -0.029722f, -0.0910205f, 0.0230943f, 0.15511f, 0.0382385f, -0.038463f, 0.00896925f, -0.138667f, -0.0270501f, -0.0381706f, 0.230685f, 0.0356127f, 0.16961f, -0.0983578f, -0.316276f, -0.107386f, 0.158382f, -0.0280213f, -0.151431f, -0.00270338f, -0.155397f, -0.0231535f, 0.321545f, -0.054015f, 0.045677f, 0.0683137f, 0.0213057f, 0.224957f, 0.023455f, 0.0769963f, -0.0202694f, 0.0314854f, 0.0490851f, 0.0752755f, 0.106933f, -0.125416f, 0.0209745f, 0.149397f, 0.0672106f, 0.0653935f, 0.479699f, 0.427046f, -0.00831941f, -0.171274f, 0.128773f, 0.40603f, 0.0272669f, -0.118606f, -0.0887372f, -0.288003f, 0.164531f, -0.181828f, -0.0285808f, 0.248707f, 0.121517f, -0.169699f, 0.215968f, 0.0986175f, -0.0425038f, -0.0595046f, -0.300751f, 0.191639f, -0.115033f, 0.19687f, -0.167411f, -0.0651197f, 0.186083f, -0.150533f, 0.0751006f, -0.0592919f, 0.123179f, 0.0393748f, -0.351717f, 0.0189932f, -0.0604753f, 0.0428783f, 0.0491546f, -0.201733f, 0.144511f, 0.0698096f, -0.0103293f, -0.06536f, 0.200892f, 0.135893f, 0.186445f, -0.0361531f, 0.0280098f, -0.0716085f, -0.117009f, -0.10353f, 0.089346f, 0.0299081f, -0.0724617f, 0.253236f, -0.024498f, -0.0414859f, 0.0737925f, 0.0836346f, 0.191153f, -0.105508f, -0.0912934f, -0.0381801f, -0.0115782f, 0.00377499f, -0.415984f, 0.0506891f, 0.0668481f, -0.0515163f, -0.00406533f, 0.0649673f, 0.0706949f, 0.0111062f, 0.109489f, 0.0445845f, 0.039012f, -0.185499f, -0.133698f, -0.0296616f, -0.0360693f, -0.0158342f, -0.00188914f, 0.0207594f, 0.123963f, -0.117639f, 0.0585712f, 0.218488f, -0.0386755f, -0.124904f, 0.0932664f, -0.0918833f, 0.00648836f, -0.198709f, 0.0220763f, 0.202259f, -0.0550686f, -0.0274079f, 0.0711797f, -0.182574f, -0.167778f, -0.127668f, -0.00777858f, -0.0970203f, -0.15926f, 0.0457918f, -0.0332349f, -0.0381035f, 0.0492595f, -0.0766826f, -0.0786057f, 0.0575048f, -0.230132f, 0.0629373f, -0.334278f, -0.048519f, -0.0777168f, -0.0450667f, -0.0961384f, -0.0275471f, -0.157564f, 0.297283f, 0.109335f, -0.055802f, -0.00370478f, -0.124153f, 0.141368f, -0.243882f, 0.0254521f, -0.0368524f, 0.0749728f, -0.0525375f, -0.0609283f, 0.0560829f, 0.176153f, 0.180716f, -0.14198f, 0.01507f, 0.0640714f, -0.0618532f, -0.0387451f, 0.00910927f, -0.180077f, -0.173722f, 0.109908f, 0.0723613f, -0.21072f, -0.0110628f, 0.129438f, -0.0780423f, 0.194216f, -0.0626002f, -0.134444f, 0.0212403f, -0.153123f, 0.184459f, -0.183653f, 0.0256676f, -0.168001f, 0.0888371f, -0.0342142f, -0.110865f, -0.206415f, 0.173755f, 0.15656f, -0.0201303f, -0.131313f, 0.565014f, -0.241658f, -0.202185f, 0.0740845f, 0.113514f, 0.0236703f, -0.150598f, -0.123762f, -0.14223f, -0.102096f, -0.0985469f, -0.318523f, 0.16322f, -0.122816f, -0.134259f, 0.060872f, 0.350245f, -0.0188149f, 0.172614f, 0.0303832f, -0.148723f, -0.107014f, 0.0403293f, -0.221162f, -0.0941798f, 0.127044f, -0.0624235f, -0.126706f, -0.0109238f, 0.304367f, -0.166842f, 0.0274176f, -0.167504f, -0.116709f, -0.102844f, 0.0895924f, 0.124408f, 0.0690808f, -0.197951f, 0.19094f, -0.0241321f, -0.234241f, 0.00260499f, 0.0309727f, -0.0736534f, 0.0767865f, 0.202453f, 0.080764f, 0.00944315f, -0.149017f, -0.0784335f, 0.298226f, -0.209348f, -0.264486f, 0.138335f, -0.057207f, -0.300435f, -0.0209094f, -0.241155f, -0.121682f, -0.239998f, 0.0775345f, 0.215621f, 0.143186f, -0.0595137f, 0.124912f, 0.215026f, 0.0414341f, 0.271494f, 0.16119f, 0.0371653f, -0.0985368f, 0.0123024f, -0.0487181f, 0.000584366f, 0.000770361f, -0.00473074f, 0.0632047f, 0.00226385f, -0.181296f, -0.107048f, 0.187426f, -0.0214603f, 0.101782f, 0.209973f, -0.163796f, -0.0715956f, 0.0990467f, 0.0498928f, -0.0965764f, -0.0464591f, -0.204766f, -0.0051899f, 0.363046f, 0.0990063f, 0.0365206f, 0.0335909f, -0.00913216f, 0.0447538f, -0.0689046f, 0.100729f, -0.0412052f, 0.0214474f, -0.00492967f, -0.0829883f, 0.0680291f, -0.0654945f, 0.101291f, -0.00726194f, 0.127644f, 0.0970026f, -0.143627f, 0.156903f, -0.0465835f, 0.307327f, -0.00333258f, 0.325194f, 0.115199f, -0.186934f, 0.367651f, 0.170371f, -0.0933615f, 0.12151f, 0.14612f, -0.049757f, -0.24232f, -0.0860892f, 0.234991f, 0.10257f, -0.201874f, 0.363198f, -0.130338f, 0.0233577f, 0.14071f, 0.0714144f, 0.141648f, 0.0220191f, 0.0452362f, 0.074457f, 0.0226991f, -0.0764755f, -0.057706f, 0.054496f, -0.128791f, 0.0125385f, -0.032925f, -0.041584f, 0.03758f, -0.106963f, 0.103796f, 0.00932983f, -0.0939585f, 0.0469574f, -0.0228338f, 0.228916f, -0.00613129f, -0.0263434f, -0.0888078f, 0.0188044f, -0.00452165f, 0.129038f, 0.0534301f, 0.0599807f, 0.115688f, 0.0523384f, 0.0294801f, 0.0611479f, 0.0283132f, 0.177043f, 0.0400907f, -0.0160878f, -0.0716077f, 0.0205485f, 0.058853f, 0.0335524f, 0.0339186f, 0.00756106f, 0.126148f, 0.00196438f, 0.000882625f, 0.146896f, 0.0191119f, 0.149765f, -0.152983f, -0.132387f, 0.0470565f, 0.0177249f, 0.213002f, 0.0794943f, -0.01676f, 0.0665816f, 0.0291314f, -0.414765f, -0.249597f, 0.290347f, -0.231451f, -0.0123272f, -0.0837652f, -0.181082f, 0.0669975f, 0.0431443f, 0.00821556f, 0.267054f, -0.169979f, -0.18062f, 0.198963f, 0.0778431f, -0.0686553f, 0.0445552f, -0.215534f, -0.0925259f, -0.162025f, -0.142584f, -0.0372893f, -0.00172895f, 0.019541f, -0.067464f, -0.00502992f, 0.0193649f, -0.378623f, 0.183553f, -0.129834f, 0.221581f, -0.0020133f, 0.146872f, -0.052555f, -0.0573023f, 0.0428428f, -0.141858f, 0.076986f, 0.0076361f, 0.140476f, -0.0250295f, 0.0411917f, 0.0576487f, 0.0150465f, 0.120368f, 0.173161f, 0.127108f, 0.0497153f, 0.067363f, -0.143076f, -0.0509277f, -0.104665f, -0.0293603f, -0.066129f, 0.0859679f, -0.0449253f, 0.319658f, 0.0794796f, -0.0115689f, 0.00235343f, -0.0132027f, 0.231427f, -0.0769276f, -0.066487f, 0.0590707f, -0.229326f, -0.0947943f, -0.0590279f, -0.173282f, -0.0347137f, 0.157256f, -0.124322f, 0.128008f, 0.156842f, 0.0651773f, -0.11466f, 0.119686f, -0.129396f, 0.05762f, -0.00820023f, -0.0494603f, 0.152743f, -0.0760021f, 0.0641972f, -0.0715063f, -0.0960102f, -0.016503f, 0.123939f, -0.0933185f, 0.0468923f, -0.0926507f, -0.182682f, -0.0812167f, 0.222329f, -0.0157251f, 0.0326676f, -0.040271f, 0.0414981f, -0.0208903f, 0.0142791f, 0.0698428f, -0.0458151f, -0.211808f, 0.0719936f, -0.0237871f, -0.040858f, 0.0615567f, 0.00808538f, -0.0405291f, 0.0718138f, 0.0363752f, 0.0477617f, 0.0703721f, -0.14823f, -0.056553f, -0.048613f, -0.0493804f, -0.121894f, 0.0071397f, -0.0385452f, -0.00785837f, 0.0257792f, 0.0120072f, 0.102691f, -0.1122f, 0.129583f, -0.00574853f, -0.0344341f, -0.168682f, -0.0788398f, 0.129627f, 0.04468f, -0.0185974f, 0.0173851f, 0.401678f, -0.0354709f, 0.0728116f, 0.0788354f, -0.0677112f, -0.150205f, 0.00658353f, -0.0858407f, 0.127159f, -0.0824747f, -0.090463f, -0.038448f, -0.00699327f, 0.046169f, 0.0555019f, 0.0345862f, 0.0751703f, 0.0423583f, -0.0724283f, -0.180054f, -0.095171f, 0.0488544f, -0.040714f, 0.265559f, -0.052094f, 0.0737331f, 0.340126f, 0.25955f, -0.0231872f, 0.0159618f, 0.114997f, -0.0297868f, -0.101297f, 0.250552f, -0.0390985f, -0.0143769f, -0.072299f, -0.121599f, 0.141968f, 0.00704594f, -0.027575f, -0.0139423f, 0.0213751f, 0.00148143f, -0.252113f, -0.122776f, 0.0212204f, 0.0419801f, -0.12711f, -0.0974785f, 0.0945873f, 0.0954779f, -0.0830876f, 0.0278226f, 0.0630375f, 0.167861f, 0.0693508f, 0.000403125f, -0.266405f, -0.227713f, 0.253156f, -0.274964f, 0.0589524f, 0.172747f, -0.0360975f, 0.0866837f, -0.03833f, -0.0690833f, -0.296182f, 0.0153106f, 0.284941f, 0.00098097f, 0.0335643f, 0.0986403f, -0.115905f, -0.191445f, 0.0639253f, -0.0445849f, 0.0954311f, -0.155441f, -0.0529866f, 0.0328995f, 0.120198f, -0.0365531f, 0.145119f, -0.167786f, 0.0104584f, 0.0932138f, -0.123893f, -0.0703434f, -0.136865f, 0.0122258f, -0.0649456f, -0.0543814f, -0.0207162f, 0.0430152f, 0.0753733f, 0.00162317f, 0.145585f, 0.0708493f, 0.242926f, 0.0858532f, -0.0956829f, -0.137837f, 0.118171f, -0.0946716f, 0.106006f, 0.120754f, -0.0705755f, -0.143185f, -0.115144f, -0.0711702f, 0.143151f, 0.145107f, 0.0731254f, 0.151597f, 0.00993094f, 0.0107922f, 0.142337f, -0.0207931f, 0.0988743f, 0.00814159f, -0.186454f, -0.336482f, 0.0123669f, 0.0074504f, 0.0944867f, -0.182323f, 0.147802f, -0.127439f, -0.021373f, -0.115917f, -0.166859f, -0.0116011f, 0.0482618f, 0.0642384f, 0.0554016f, -0.15408f, 0.0719228f, 0.0493204f, 0.0439652f, -0.0406669f, 0.0611321f, -0.0714475f, -0.0861597f, 0.0886635f, 0.0693289f, 0.173227f, -0.134718f, 0.00117986f, 0.0849963f, -0.158443f, -0.0703277f, -0.162958f, -0.190082f, -0.109334f, 0.0443088f, 0.0885224f, 0.0854832f, -0.147791f, 0.0775967f, -0.0230063f, -0.145057f, -0.053947f, -0.0201231f, 0.144036f, -0.0487383f, -0.155922f, 0.126472f, 0.0535597f, 0.295153f, -0.044133f, 0.0708888f, 0.0708837f, 0.240122f, -0.101288f, -0.239816f, 0.196593f, 0.089824f, 0.0115361f, 0.0450855f, -0.0476516f, 0.0752052f, -0.0152999f, 0.0973152f, -0.0269811f, -0.308607f, -0.339073f, -0.111331f, 0.0683651f, -0.0690695f, -0.0485223f, 0.208654f, -0.0662799f, -0.0422097f, 0.066274f, -0.0662559f, -0.186517f, 0.303001f, 0.0525014f, 0.189996f, -0.0122362f, -0.0319974f, -0.115631f, 0.0383181f, 0.0597101f, -0.5288f, 0.139426f, -0.140761f, -0.0677519f, 0.0534728f, -0.123407f, 0.0523652f, 0.247984f, -0.155956f, -0.313376f, -0.0569265f, -0.0484985f, -0.0468832f, -0.11099f, -0.18814f, -0.103761f, -0.011438f, 7.60447e-05f, -0.110166f, -0.0317299f, 0.0494964f, 0.0831874f, 0.174352f, 0.0831123f, -0.0467208f, -0.0887823f, 0.0111432f, -0.0810559f, 0.13222f, -0.00275901f, -0.0707292f, -0.0449257f, -0.0147514f, -0.0699096f, -0.270627f, -0.00928309f, -0.132219f, 0.0580767f, 0.0292325f, 0.304371f, -0.274658f, 0.145915f, -0.0250677f, -0.0426569f, -0.302431f, -0.17304f, 0.119425f, 0.254742f, -0.100222f, -0.0813342f, -0.0634137f, -0.0599128f, 0.104181f, 0.0482278f, 0.156922f, 0.285678f, 0.217426f, -0.0653378f, 0.106152f, 0.189855f, -0.070338f, 0.0742366f, 0.210393f, -0.0199064f, 0.100773f, 0.0902067f, -0.0207284f, 0.0217354f, 0.0421781f, 0.0385198f, 0.0122292f, -0.24457f, 0.0709614f, 0.00353087f, -0.107516f, 0.124927f, 0.234352f, -0.0421405f, -0.158455f, 0.0366662f, -0.0744207f, 0.0795702f, -0.0821037f, 0.266234f, 0.0535296f, -0.0977644f, -0.141753f, -0.0721707f, 0.059189f, -0.174502f, 0.13363f, 0.0535574f, 0.107818f, -0.186899f, 0.161406f, -0.0906892f, 0.124786f, -0.086216f, -0.0215194f, -0.0135578f, -0.251641f, 0.178547f, 0.182705f, 0.174913f, -0.202762f, 0.151096f, 0.0594815f, 0.12593f, 0.0228888f, -0.136472f, 0.101847f, -0.0293021f, 0.0699139f, -0.0171824f, 0.172403f, -0.0118061f, -0.0380247f, 0.107956f, -0.121006f, 0.0360977f, 0.0319296f, -0.00174745f, -0.0586733f, -0.0310789f, -0.0018171f, -0.0583139f, 0.070245f, -0.0144275f, 0.0528374f, -0.0651776f, 0.0222906f, -0.0686536f, 0.0757212f, -0.0901592f, -0.0029137f, -0.29092f, -0.128826f, -0.0699104f, -0.155595f, 0.0982134f, -0.00929246f, 0.113011f, -0.00644769f, -0.00460739f, -0.0784739f, 0.0125556f, 0.0330879f, -0.125118f, -0.00254917f, 0.043624f, 0.14961f, -0.0758828f, 0.0878271f, 0.0698407f, -0.0609994f, 0.147425f, 0.0714914f, -0.116079f, -0.00292652f, -0.0194871f, -0.00591691f, -0.0930254f, 0.0290587f, -0.0235376f, -0.0336945f, -0.00994175f, -0.0120547f, -0.102788f, -0.122755f, 0.169265f, 0.0382949f, -0.0320122f, 0.3957f, -0.0133355f, -0.0834757f, 0.15965f, 0.0197398f, 0.00860872f, -0.346139f, -0.0069874f, 0.0227456f, 0.0942021f, 0.0904429f, -0.337325f, 0.0923263f, -0.0589787f, -0.0305911f, 0.223754f, -0.175074f, 0.0181879f, -0.137516f, 0.0390116f, 0.0338738f, 0.0610673f, 0.225998f, 0.0452024f, -0.095403f, 0.0308196f, -0.1474f, -0.353327f, -0.153306f, 0.164223f, -0.0638818f, 0.0740821f, 0.238735f, -0.0477199f, -0.00429302f, -0.00349546f, -0.0880324f, 0.0896534f, -0.122843f, 0.00806021f, -0.0658358f, 0.0044589f, -0.0902934f, 0.00454279f, 0.0272775f, -0.0320645f, 0.037325f, 0.186289f, 0.00256306f, 0.0132156f, 0.0592955f, 0.127601f, 0.396609f, -0.0870833f, -0.0817663f, -0.0781046f, 0.215928f, -0.0431067f, -0.0453938f, 0.281265f, 0.133161f, 0.0366426f, -0.0784498f, -0.0750187f, -0.229733f, -0.0748994f, -0.162201f, -0.0402834f, -0.126876f, 0.0599644f, 0.16858f, 0.0608681f, -0.00972038f, 0.0410402f, -0.011298f, 0.0644173f, 0.11496f, 0.0645423f, 0.0290642f, -0.0983581f, 0.0902184f, -0.127273f, -0.0470833f, 0.142628f, 0.0155281f, -0.0486278f, 0.0878269f, -0.0531858f, -0.0567142f, 0.0982467f, -0.140399f, 0.128195f, 0.0263416f, 0.0164917f, 0.192992f, -0.16763f, 0.0273355f, 0.329922f, -0.00852609f, 0.184338f, 0.00755208f, -0.179243f, -0.0405667f, 0.0125526f, 0.027037f, -0.0539432f, -0.0176468f, -0.125425f, -0.0811851f, -0.0272892f, 0.0502435f, 0.102007f, -0.177289f, -0.117849f, -0.194326f, 0.0886344f, -0.0412707f, 0.124392f, -0.223283f, -0.0741205f, 0.199656f, 0.018886f, -0.0562433f, -0.0492505f, 0.00535841f, -0.19846f, -0.0895665f, -0.15049f, -0.115103f, -0.156435f, -0.409004f, -0.050409f, 0.0739685f, 0.130748f, 0.061022f, -0.0305109f, -0.0179887f, 0.0123151f, -0.0653061f, 0.0438781f, -0.147334f, -0.0631578f, -0.0257055f, 0.0965325f, 0.266752f, -0.240727f, -0.028509f, -0.00463298f, -0.196662f, 0.0265f, -0.0932252f, -0.197161f, -0.0507005f, 0.0664871f, -0.0184599f, -0.185182f, 0.117795f, 0.176179f, 0.0440354f, 0.110152f, 0.268394f, -0.0342671f, -0.154824f, -0.00717814f, 0.107877f, -0.0417335f, -0.0502413f, 0.191798f, -0.22683f, -0.00121884f, -0.0749198f, -0.0430856f, 0.155246f, 0.137444f, 0.122137f, -0.0406204f, 0.148283f, 0.136327f, 0.033365f, 0.0279272f, -0.11051f, 0.0186554f, -0.249362f, -0.103934f, 0.192922f, 0.0253347f, -0.0292896f, 0.0870525f, -0.0304057f, -0.136711f, 0.0218863f, -0.00444753f, -0.353984f, -0.0593226f, 0.0368056f, -0.104837f, -0.0529318f, -0.124099f, -0.0225503f, -0.103021f, -0.130791f, -0.122102f, -0.164449f, 0.0349609f, -0.0684784f, 0.0375822f, 0.306413f, -0.0292038f, 0.082807f, 0.0676394f, -0.091824f, -0.0428387f, -0.0891375f, 0.168716f, -0.158601f, 0.00174031f, -0.0727275f, -0.0299859f, -0.111494f, -0.120093f, -0.0925016f, -0.103879f, 0.167881f, -0.0979509f, 0.156608f, 0.0872122f, 0.0946656f, -0.0739768f, 0.250099f, -0.0709969f, -0.0787451f, 0.0138349f, -0.063085f, 0.0170989f, 0.251921f, -0.109492f, -0.00642118f, -0.128264f, 0.076069f, 0.0795326f, -0.0723545f, -0.0359025f, -0.108559f, 0.0998508f, -0.0564411f, -0.205638f, -0.0825171f, 0.0580074f, 0.13944f, -0.109398f, 0.200116f, 0.22293f, -0.180975f, 0.00755476f, 0.0867285f, 0.136956f, -0.196162f, -0.214616f, 0.160761f, -0.0839508f, -0.123784f, 0.0415105f, -0.095227f, 0.0251172f, 0.0222236f, 0.000789609f, 0.14309f, 0.0670705f, 0.0271009f, 0.0296139f, -0.0638872f, 0.0795232f, -0.181597f, 0.176422f, 0.0531106f, -0.114345f, 0.127946f, -0.278075f, 0.0308985f, -0.113653f, 0.0648231f, -0.056242f, 0.0109429f, -0.191859f, 0.0146423f, -0.0460231f, 0.0143912f, 0.070903f, 0.345987f, 0.248072f, 0.0551723f, -0.168822f, 0.069966f, 0.0713695f, -0.041641f, 0.126542f, -0.117913f, 0.100018f, -0.190751f, 0.0112901f, 0.00426979f, -0.0935215f, 0.0278311f, -0.263967f, 0.00920379f, 0.168167f, -0.0387077f, -0.0618643f, 0.0215187f, -0.0647381f, -0.224569f, -0.0431991f, 0.111094f, 0.0595646f, -0.198112f, 0.00189247f, 0.0177701f, 0.0960071f, 0.027621f, -0.0888497f, 0.0711986f, -0.193876f, -0.140313f, 0.0328693f, 0.0897458f, -0.0607225f, 0.116222f, 0.184375f, 0.0437464f, -0.0850047f, 0.0967144f, -0.0552927f, 0.303827f, 0.00298885f, -0.0288222f, -0.327243f, 0.0416066f, 0.0929254f, 0.0824386f, 0.0887793f, 0.131717f, -0.112818f, -0.0831022f, 0.0279246f, -0.0888921f, 0.594349f, 0.145838f, -0.274566f, 0.0061455f, -0.142662f, 0.139786f, -0.0117981f, -0.304432f, -0.0508933f, -0.00713381f, 0.114088f, -0.0224593f, -0.13497f, 0.139286f, 0.226299f, 0.0280619f, -0.189189f, 0.230914f, 0.0649094f, 0.161876f, -0.16638f, 0.00781005f, -0.0586318f, -0.0860317f, 0.312927f, -0.0240292f, -0.213285f, -0.00397267f, 0.0305681f, 0.134347f, 0.17009f, 0.258306f, 0.001493f, -0.278121f, 0.0217202f, 0.201947f, -0.192522f, -0.197734f, -0.155724f, 0.471395f, -0.197251f, -0.180739f, -0.229856f, 0.00674667f, -0.158687f, 0.0421946f, -0.144679f, -0.0483309f, -0.159024f, 0.00521026f, -0.270254f, 0.125091f, -0.114965f, -0.0364783f, 0.104376f, 0.199512f, -0.071344f, -0.143244f, -0.0862187f, 0.0365439f, 0.0540296f, -0.170022f, -0.0647209f, 0.00138709f, -0.124052f, 0.0865322f, -0.0750979f, 0.0355845f, 0.14087f, 0.129696f, -0.0329872f, 0.40568f, -0.0344558f, -0.0918244f, 0.0214424f, 0.000217813f, -0.0362482f, -0.214074f, 0.172384f, -0.037304f, 0.102059f, -0.0120453f, 0.0110227f, -0.0253026f, -0.0598016f, -0.0355862f, 0.100065f, 0.133673f, -0.0356076f, 0.0625139f, -0.126114f, -0.0232735f, -0.0990708f, 0.209218f, -0.0114199f, 0.0881042f, -0.116661f, -0.0128022f, -0.136033f, -0.0241508f, 0.199757f, -0.129153f, 0.0818712f, -0.0361926f, -0.176898f, -0.104805f, -0.0366756f, -0.0109014f, -0.022889f, -0.00752737f, 0.0412282f, 0.0627342f, 0.0683168f, -0.157648f, -0.0999125f, 0.0628938f, 0.0914664f, 0.0463964f, -0.10128f, -0.0722803f, 0.242893f, -0.0153749f, 0.0220823f, -0.00879969f, 0.124299f, -0.0780352f, -0.0722001f, -0.0346619f, -0.167741f, 0.0793859f, -0.0380534f, 0.223189f, 0.00475658f, 0.0667786f, -0.0479623f, 0.0968694f, 0.0297832f, -0.0812429f, -0.180978f, 0.0724055f, 0.019176f, -0.179558f, 0.116677f, 0.108554f, 0.0590736f, -0.0280847f, 0.0680801f, 0.0288114f, -0.0482914f, 0.0378647f, -0.0467959f, 0.0357709f, 0.0311819f, -0.0311085f, -0.0034198f, -0.0888575f, 0.181367f, -0.108846f, 0.0686013f, 0.0850214f, 0.1259f, 0.0367409f, 0.0489611f, 0.097353f, -0.0748888f, 0.00652804f, -0.0922444f, -0.224247f, -0.139533f, -0.181804f, 0.158788f, 0.0688036f, 0.0281373f, -0.241919f, -0.120243f, -0.0755403f, 0.0101523f, 0.0891032f, -0.0709929f, 0.0783334f, 0.0598745f, -0.131034f, 0.0540704f, 0.0244353f, -0.00768915f, 0.127424f, -0.0350807f, 0.0916208f, -0.0437018f, -0.0783366f, -0.0194805f, -0.00660209f, 0.120222f, -0.0716312f, -0.133559f, -0.0660132f, -0.0523321f, 0.0777872f, 0.078556f, -0.0943289f, 0.0650363f, 0.0252414f, -0.0615306f, 0.0416974f, 0.0348374f, -0.0438491f, -0.0169788f, 0.000152442f, -0.0191791f, 0.0607947f, 0.00354985f, -0.0225873f, -0.0219833f, 0.0827315f, 0.013295f, 0.0914269f, 0.031885f, -0.0117931f, 0.0092629f, -0.0934048f, -0.00386388f, 0.0578351f, 0.0620751f, -0.0956425f, -0.0642356f, 0.0293362f, 0.00293314f, -0.0946314f, 0.0612171f, -0.0560762f, -0.173374f, -0.174298f, -0.240948f, -0.0462546f, 0.051344f, 0.101441f, -0.0463354f, -0.0692051f, -0.0353188f, 0.0079918f, -0.123598f, 0.126848f, -0.0576181f, 0.113737f, 0.090959f, 0.114875f, 0.0626428f, -0.024224f, -0.0168703f, -0.18337f, 0.00664052f, -0.1582f, -0.134172f, -0.00927527f, 0.208195f, 0.0573715f, -0.029493f, 0.00595995f, -0.177518f, -0.0251843f, -0.191298f, 0.0224643f, -0.0117011f, -0.0116604f, 0.0171215f, 0.0308808f, 0.0927838f, -0.0920461f, -0.0677266f, 0.0173152f, -0.15957f, -0.0603283f, -0.014207f, 0.178358f, -0.164462f, 0.0250456f, 0.170475f, -0.18779f, 0.133631f, 0.155633f, -0.109469f, 0.0143599f, -0.189536f, 0.0223753f, -0.00895611f, -0.110337f, -0.0689706f, 0.142157f, -0.143697f, -0.141122f, -0.1111f, 0.038711f, -0.0376521f, 0.123297f, -0.149835f, -0.144181f, -0.263992f, -0.123737f, -0.0371692f, -0.148178f, -0.103932f, 0.0424576f, 0.164843f, -0.0927986f, -0.0254294f, -0.0504124f, 0.0800334f, 0.0759776f, 0.0911205f, -0.127232f, -0.0123953f, -0.123989f, 0.072275f, -0.0473754f, -0.00992859f, -0.00908165f, 0.016614f, -0.0338616f, 0.0451948f, -0.00216397f, 0.0791774f, -0.00997479f, -0.204469f, 0.0979367f, -0.0252921f, 0.0806364f, -0.0604877f, 0.35678f, 0.00328074f, 0.000862833f, -0.0423269f, 0.00370664f, 0.0036703f, -0.0456574f, -0.00532339f, -0.0300424f, -0.0847339f, 0.111297f, -0.0276301f, 0.0312098f, -0.00572812f, -0.152074f, -0.143677f, 0.0184641f, 0.0233959f, 0.0783838f, -0.0261117f, 0.058812f, -0.0694083f, -0.0814572f, -0.0732864f, 0.0134815f, 0.0401563f, -0.0683509f, -0.00795014f, -0.0579334f, 0.0152749f, 0.0201549f, -0.166492f, -0.105059f, -0.20479f, -0.134313f, 0.0255906f, 0.0594173f, -0.0898327f, -0.0590535f, -0.0108681f, 0.0314731f, -0.168973f, -0.118293f, 0.255022f, -0.0750191f, 0.0726015f, -0.147087f, -0.00603523f, 0.267165f, -0.255247f, -0.0412965f, 0.0288737f, 0.132844f, -0.0326177f, -0.0856135f, -0.2972f, 0.155763f, 0.28698f, 0.0412092f, -0.224144f, -0.210393f, -0.342643f, 0.0719187f, 0.158874f, 0.226267f, -0.133495f, -0.0857504f, 0.0611778f, -0.0589801f, 0.110317f, -0.0190942f, 0.1773f, 0.00961829f, 0.0677457f, -0.0899815f, -0.138899f, -0.05035f, 0.193441f, -0.139859f, -0.270932f, -0.115539f, -0.316846f, 0.075208f, 0.0431652f, 0.146713f, 0.0285186f, 0.10137f, -0.187721f, -0.0891028f, -0.25393f, 0.106163f, -0.165763f, 0.0463147f, 0.194327f, -0.0429842f, -0.112328f, -0.281324f, -0.00156711f, -0.159594f, 0.00456123f, 0.0655478f, 0.136689f, -0.0740155f, -0.0616994f, 0.254053f};
+ model->setOperandValue(op62, op62_init, sizeof(float) * 8192);
+ static float op64_init[] = {1.27791f, -0.896893f, -0.0904288f, -0.367291f, -0.255839f, -0.584457f, 0.359154f, -0.651333f, -0.599677f, 0.35768f, 1.10981f, -0.620459f, 0.21688f, 0.173693f, -0.860731f, 1.62973f, -0.0480904f, 0.931926f, -0.0432689f, -0.649775f, -0.886409f, -0.419683f, 0.974362f, -0.860229f, -0.222268f, -0.290182f, 0.1913f, -0.356828f, 0.557647f, 1.52403f, -0.593978f, -0.517028f, -0.445634f, 0.28466f, -1.16102f, 1.12105f, -0.285626f, -0.286889f, 0.171823f, -0.836316f, -0.472779f, 0.00341682f, -0.00346886f, -0.262715f, -0.808707f, -0.710406f, 0.10792f, 1.15153f, 0.324643f, -0.0285354f, 0.0859959f, -0.209573f, -0.0140537f, -0.0960617f, -0.0413799f, -0.887105f, 1.3194f, -0.265272f, 1.38463f, -0.279711f, 0.0327209f, -0.0295412f, -0.415826f, 0.972281f, -0.574921f, 1.09703f, -0.302285f, -0.317815f, -0.114017f, -0.437542f, 0.0160477f, 1.4915f, -0.568098f, 0.820527f, -0.687973f, -0.1323f, -0.0332663f, 0.576985f, 0.06609f, 0.745705f, 0.191202f, -0.345881f, -0.472346f, -0.329724f, -0.892812f, -0.616852f, -0.00505598f, -0.270389f, -0.216163f, -0.172727f, -0.44142f, 1.19072f, -0.209099f, -0.0503139f, 0.288438f, 1.03214f, -0.344693f, -0.338285f, 1.43376f, 0.0838178f, -0.137882f, 0.0360903f, -0.588352f, 0.0101241f, 1.33968f, -0.325155f, -0.411048f, 1.6552f, -0.629519f, 0.647605f, -0.208642f, -0.518543f, 1.01164f, -0.36279f, 0.24322f, -0.616136f, 0.0506595f, -0.76616f, -0.405525f, -0.381892f, -0.582617f, -0.506614f, -0.0410523f, 0.0965909f, -0.659473f, -1.02532f, -0.325496f, -0.486067f};
+ model->setOperandValue(op64, op64_init, sizeof(float) * 128);
+ static float op65_init[] = {-0.0709381f, -0.128049f, 0.34379f, 0.147408f, -0.1438f, 0.0135833f, -0.759943f, -0.384337f, -0.239562f, -0.0991685f, 0.642744f, 0.277097f, -1.09486f, -0.560633f, 0.216758f, -0.888341f, -0.518082f, -0.279118f, 0.680989f, -0.492512f, 1.2603f, 0.0466598f, -0.213212f, 0.384692f, -0.651653f, -0.169377f, -0.398121f, -0.0391595f, 0.490388f, -0.672391f, 0.0497536f, -0.245464f, -0.625069f, -0.230214f, 0.288063f, 0.0303378f, -0.0401801f, 0.541154f, 0.329236f, 0.0499154f, 0.159806f, 0.941858f, -0.187031f, 0.214894f, -0.468224f, 0.999631f, -0.354627f, -0.161143f, -0.518824f, 0.271098f, -0.106679f, -0.469782f, 0.336682f, 0.260217f, -0.382269f, -0.238424f, -0.15755f, 0.0634591f, 0.0461773f, -0.0368848f, -0.160486f, -0.261701f, -0.0579005f, -0.561818f, 0.943888f, -0.53118f, -0.0525675f, 0.460865f, -0.572441f, -0.170843f, -0.0466553f, -0.474068f, 0.0738518f, 0.185746f, -0.454275f, -0.495732f, 0.141482f, 0.765303f, 0.318613f, -0.232587f, -0.260385f, -0.654987f, 0.504436f, -0.14194f, 0.567181f, 1.0334f, 0.426854f, -0.117148f, -0.415611f, -0.306669f, 0.330773f, -0.446631f, 1.64556f, 0.683654f, 0.378299f, -0.0379948f, 0.180195f, 0.348585f, 0.542005f, -0.91213f, -0.382145f, -0.430299f, 0.180373f, -0.605352f, -0.130889f, 0.00551913f, 0.648318f, -0.570121f, 0.227888f, 0.843207f, -0.187785f, 0.925533f, -0.576444f, 0.103704f, 1.05763f, 0.561724f, -0.31587f, -0.580066f, -0.130743f, 0.293338f, 0.447277f, -0.127014f, -0.395864f, -0.806486f, -0.0919789f, 0.088212f, -0.109243f, 0.410984f, -0.0109117f, 0.960286f, 1.04658f, -0.204002f, 1.37218f, -1.15064f, -0.895014f, -0.170768f, -0.649843f, -0.396972f, 0.0512205f, -0.0992547f, -0.158354f, -0.484801f, 0.289718f, -1.02207f, 1.7189f, -0.359976f, 1.56887f, 0.417944f, 0.597117f, 1.43457f, -0.299231f, 0.623607f, -0.205163f, -0.249012f, -0.339769f, -0.108222f, -0.30356f, -0.575407f, 0.909879f, -0.060081f, 0.586879f, 1.55296f, 0.636148f, -0.746165f, 0.43247f, -0.448612f, 0.747422f, 0.259496f, -1.09887f, -0.0358834f, -0.382366f, -0.792576f, 1.43005f, 0.196588f, 0.652059f, -0.311974f, 0.746497f, -0.582559f, -0.621747f, 0.0114799f, 1.41466f, 0.967424f, -0.608617f, -0.334149f, -0.366489f, 0.381975f, -0.266688f, 0.365394f, -0.747447f, -0.455778f, -1.06527f, -0.739692f, -0.453246f, -0.618083f, -0.452114f, -0.909178f, -0.0974019f, 0.302433f, -0.719995f, -0.414704f, 1.09482f, 0.0623939f, 0.629705f, -0.0790356f, 0.00773394f, -0.081795f, 0.549912f, -0.808324f, -0.682389f, 1.38853f, 0.198479f, 0.276656f, -0.681216f, 1.06903f, 0.893365f, -0.441687f, 1.24876f, 1.8621f, 1.17992f, -0.975346f, 0.920257f, -0.203736f, -0.67214f, -0.254283f, 0.412605f, 0.404941f, -0.255573f, 0.500838f, -0.19859f, -0.767112f, 0.0717921f, 0.433305f, -0.56418f, -0.107743f, 0.159745f, -0.852961f, 0.144353f, -0.362589f, 0.49508f, -0.560953f, -1.14736f, 0.137257f, 0.601483f, -0.614651f, -0.87189f, 1.44979f, -0.833047f, 0.688882f, 0.321005f, 1.0737f, -0.236968f, 0.823725f, 2.28361f, 0.0812771f, -0.0605274f, 0.10736f, -0.194868f, 0.718866f, 0.236371f, -0.347496f, -0.571536f, 0.103581f, -0.129792f, 0.419577f, -0.0259013f, -0.505849f, 0.166899f, 0.347665f, -0.66851f, -0.436971f, 0.345747f, -0.675295f, 0.87038f, -0.331299f, -0.403529f, 0.519759f, 0.262051f, -0.25085f, -0.0725889f, 0.359883f, 0.492467f, -0.0943171f, 0.214194f, -0.0776945f, -0.225263f, 0.610915f, 0.621991f, 0.127142f, -0.120977f, -1.18563f, 0.0533153f, 0.00669916f, -0.278448f, -0.370341f, 0.203951f, -0.0748655f, 0.149499f, 0.608627f, -0.170591f, 0.57339f, -0.300863f, -0.133246f, -0.190121f, -0.07103f, -0.921217f, -0.477982f, 0.291881f, -0.0674137f, -0.152687f, 0.424704f, -0.067885f, 0.579372f, -0.194176f, -0.175602f, -0.0288839f, -0.136824f, -0.858922f, 0.726294f, -0.421512f, -0.0974054f, 0.550395f, -0.162152f, -0.467728f, 0.366064f, -0.167801f, -0.0753653f, -0.198316f, -0.137023f, -0.0627235f, 0.0106006f, 0.592916f, -0.158033f, -0.548551f, -0.235923f, 0.369672f, 1.30827f, -0.750535f, 0.570025f, 0.321352f, 0.202508f, -0.203108f, -0.26941f, -0.212697f, 0.0714036f, 0.551129f, 0.351327f, -0.392821f, 1.19204f, -0.213496f, -0.579066f, -0.0250779f, 0.142676f, 0.49299f, -0.515014f, -0.284034f, -0.0178803f, 0.0809394f, -0.37963f, 0.331529f, 0.046923f, -0.269256f, 0.269847f, 0.00773318f, -0.151664f, -0.076353f, -1.02137f, -0.534778f, -0.22219f, -0.275138f, -0.625355f, -0.633931f, 0.721776f, 0.261691f, -0.362185f, -0.0779834f, -0.0601082f, -0.440214f, 0.445368f, 0.693759f, 0.0917294f, 1.36943f, 0.323218f, -0.107106f, -0.183899f, -0.365459f, -0.275454f, -0.483642f, 0.797942f, -0.909086f, -0.185676f, -0.0226698f, 0.466425f, -0.004201f, -0.4242f, -0.396341f, -0.0352481f, 1.06241f, 1.01883f, 0.561441f, -0.265551f, -0.288297f, -0.46146f, 0.423533f, 0.472996f, 0.77336f, 0.6662f, -0.213503f, 1.01491f, 1.62445f, -0.898291f, 1.11469f, 0.377022f, 0.274644f, -0.714398f, 0.163676f, 0.868197f, 0.342184f, 0.289812f, 0.381599f, 0.059939f, 0.304634f, 0.938513f, 0.436808f, -0.389308f, -0.193604f, 0.394266f, 1.05865f, 1.48062f, 0.719217f, 0.295424f, 0.0187049f, -0.440856f, -0.942464f, -0.923774f, 2.5526f, 0.0839399f, 0.454711f, 0.286152f, -0.0304864f, 0.354859f, -0.253294f, 0.191791f, -0.729741f, -0.44744f, -0.0782481f, -0.39976f, 0.519996f, -0.199241f, 0.0073006f, -0.445146f, -0.531936f, 0.284462f, -0.452162f, 0.0482401f, -0.0619033f, -1.31827f, -0.210492f, -0.121312f, 0.37903f, -0.153958f, 1.04133f, -0.763192f, -0.113485f, -0.558982f, 0.54512f, -0.526908f, 0.867164f, -0.206167f, 0.927759f, -0.558727f, 0.411553f, 0.0124118f, 0.100906f, -0.521091f, 0.698503f, 0.931193f, 0.990837f, 1.33259f, 0.663775f, -0.32597f, 1.0028f, 0.544204f, -0.379747f, -1.08854f, -0.965737f, 0.389885f, 0.92887f, 0.0718976f, -0.184999f, -0.461237f, -0.706826f, 0.243244f, -0.397723f, 0.747435f, 0.161502f, 0.453201f, -0.376094f, -0.0359757f, 0.0353741f, -0.287866f, -0.744642f, 1.22875f, 0.182842f, 0.3801f, 0.773255f, -0.358024f, -0.770755f, -1.34188f, -0.0852203f, 0.139821f, 0.14041f, 1.08967f, -0.905575f, 0.116723f, -0.29376f, 0.163174f, 0.610681f, 2.0524f, 0.195715f, 1.48414f, 1.21102f, -0.442612f, -0.808774f, 0.0675436f, -0.331371f, 0.00445637f, 0.980394f, -0.172441f, -0.905661f, -0.725557f, -1.54261f, 0.711161f, -0.215032f, -0.0153047f, -0.536626f, 0.314412f, -0.106242f, 2.33498f, 0.188198f, -0.344982f, 0.433289f, -1.04402f, 0.299941f, 1.99992f, 0.275313f, 1.44375f, 1.37658f, -0.646558f, 0.732569f, 0.054636f, -0.319402f, 0.584826f, -0.604223f, -0.399064f, 0.0517761f, -1.09654f, 1.61721f, 0.348668f, 1.73956f, -0.327831f, 0.860558f, 0.70006f, -0.346379f, 1.02589f, -0.40399f, 0.0614666f, -0.539451f, 1.44714f, -0.465946f, 1.3293f, -0.556735f, 1.71808f, 0.165918f, -0.579726f, 0.152724f, -0.980241f, 0.621521f, -0.424599f, 0.731271f, -1.13193f, -0.314276f, 0.290947f, 0.129665f, -0.513516f, 0.387313f, -0.135605f, 1.04872f, -0.150452f, 0.45206f, -0.528278f, -0.310732f, -0.135223f, 0.49935f, -0.396638f, 0.683956f, 0.902601f, -0.0316321f, 0.843894f, -0.502775f, 0.91836f, 0.0786264f, 0.341963f, 0.406261f, -1.25424f, -1.48405f, -0.390925f, -1.14482f, -0.674129f, -0.354457f, -0.30644f, -0.56675f, 2.38773f, 0.187012f, 0.906624f, 0.368549f, -0.672948f, -0.628065f, -0.0138419f, 0.532509f, -1.29148f, 0.513439f, 0.807188f, -0.561104f, 1.42839f, -0.0811011f, -0.367103f, -0.70638f, 0.047558f, 0.0499724f, 1.03425f, 1.2915f, 1.10444f, -0.155478f, 0.697564f, 0.00560132f, 1.15162f, -0.771271f, 1.88617f, -1.6177f, 0.603189f, -0.192907f, 0.343646f, 0.259441f, -0.529378f, 0.568401f, -0.0860962f, 1.14584f, 0.171098f, 0.211062f, 0.845236f, -0.529076f, -0.286581f, -0.25437f, -0.488604f, -0.23338f, -0.881686f, 0.105636f, -0.213067f, 0.0316845f, -0.398582f, -0.817313f, 0.651069f, -0.239222f, -0.222939f, -1.07785f, -0.101374f, -0.697413f, -0.285379f, 0.147702f, -0.123503f, 0.0457533f, 0.172801f, -0.128217f, -1.3936f, 0.0855249f, -0.292099f, 0.598845f, 0.307307f, 0.38958f, 0.384398f, -0.161994f, 0.532268f, 0.41916f, -0.56747f, -0.167162f, 0.349244f, -0.981373f, -0.708336f, 0.448461f, 0.522998f, -1.40969f, 0.109804f, -0.691028f, 0.034276f, -0.121459f, -0.496668f, -0.83885f, -0.215969f, -0.22205f, 0.512278f, 0.980268f, 1.68036f, 0.178986f, -0.0759921f, 0.309564f, -0.0560312f, -0.305507f, 2.03853f, 0.0727157f, -0.321075f, 0.00665551f, -0.44f, 0.464893f, -0.223738f, 0.190272f, 0.745003f, -0.949056f, -0.452401f, -0.231702f, 0.276491f, -0.324411f, 1.02269f, -0.27196f, 0.753715f, 0.62288f, 0.134545f, -0.506868f, -0.0947893f, 0.52351f, -0.175397f, 0.0883895f, -0.0924953f, -0.412128f, -0.665632f, -0.234282f, -0.571244f, -0.644993f, -0.32828f, -0.271805f, -0.600318f, -0.480062f, 0.733345f, -0.194178f, 0.441914f, 0.116903f, -0.019784f, -0.27399f, -0.220216f, -0.319195f, -1.22222f, -0.129304f, -1.03494f, 0.300969f, 0.36961f, -0.12696f, 1.38408f, -0.419079f, -0.542854f, 0.139234f, 0.120371f, -0.484455f, -0.150078f, 1.21233f, 0.253973f, -0.337692f, -0.637253f, 0.705512f, -0.246123f, 0.22869f, -0.391775f, -0.179557f, 0.752178f, 0.17672f, -0.554677f, -0.643336f, 0.477481f, -0.118154f, -0.367002f, -0.253235f, 0.115241f, 1.13003f, 0.857456f, 0.480246f, -0.521936f, 0.0123835f, 0.826139f, -0.319941f, 0.59835f, 0.410129f, -0.479435f, 0.0824121f, 0.0118939f, 0.760687f, -0.203386f, -1.00067f, -0.930892f, -0.378768f, 0.137887f, -0.0887976f, -0.599447f, -0.0964981f, -0.417407f, 0.150545f, -0.0344419f, -0.490643f, 0.253677f, -0.698937f, 0.186641f, -0.0406315f, -0.135082f, 0.245422f, 0.110258f, -0.640134f, 0.699857f, 0.157143f, -0.0858207f, -0.351216f, -0.535452f, 0.40431f, -0.158441f, -0.255025f, -0.363524f, 0.138074f, 0.527157f, -0.252601f, -0.0947872f, -0.354258f, -0.304812f, -0.607875f, -0.741179f, 0.264845f, 0.525931f, 1.2676f, -0.340834f, 0.464725f, -0.414075f, 0.194388f, 0.846395f, 0.15324f, 0.570338f, -0.0703057f, -0.262251f, 0.579055f, -0.632222f, 0.407777f, 0.518772f, -0.136341f, -0.111115f, -0.00112279f, 0.185169f, 0.0757087f, -0.465343f, 0.325021f, -0.210858f, 0.189548f, -0.129736f, -0.0574784f, -0.0230486f, -0.511283f, -0.180843f, -0.565525f, 0.86725f, 0.471411f, -0.301766f, 0.734832f, 1.12747f, -0.794053f, -0.329058f, 0.520364f, -0.256542f, 0.578493f, -1.42967f, -0.665631f, 0.405057f, -0.62587f, 0.32621f, 0.398603f, -0.971071f, -1.07829f, -0.296442f, 0.332023f, -0.479357f, -0.843884f, 0.459976f, 0.229188f, 0.212971f, -0.52134f, -0.432572f, 0.888668f, -0.0357316f, -0.583016f, -0.483061f, -0.0255302f, 0.363757f, -0.668834f, 0.0593412f, -0.456025f, 0.396276f, -0.327464f, 0.535974f, -0.99594f, 2.02366f, 0.95778f, -0.165669f, 1.5066f, 0.302125f, -0.273887f, 1.69497f, 0.338063f, 0.180147f, 0.159032f, 0.100377f, -0.0110788f, -0.126068f, -0.0102687f, 0.4543f, -0.00557386f, -0.916492f, -0.550707f, 0.288461f, 0.103516f, 0.0799136f, 1.15876f, 2.40522f, -0.836259f, 0.160002f, 0.0725624f, -0.527644f, 1.76999f, -0.540915f, 0.374064f, -0.427791f, -0.357631f, -0.197245f, -0.566252f, 0.976098f, 2.39025f, -0.266651f, -0.445977f, 0.993438f, 0.0851502f, 0.252378f, -0.44096f, -0.672909f, 0.337162f, 1.64552f, -0.474397f, 0.00330378f, -0.0926167f, -0.563775f, 2.11952f, 0.548761f, -0.407726f, -0.383753f, -0.448106f, -0.322102f, 1.00177f, 0.579059f, 1.57776f, 0.340912f, 0.108392f, -0.420985f, 0.940979f, 0.536696f, 1.49649f, 0.63357f, 1.61203f, 0.0379834f, 0.0595333f, -0.568936f, 0.341707f, -0.198204f, 0.332623f, -0.530509f, -0.0811962f, -0.67568f, 0.813611f, -0.868695f, -0.455278f, -0.22f, 1.01564f, -0.890534f, -0.0985721f, 0.914227f, -0.819383f, -0.600254f, -0.886954f, 0.072988f, -0.260885f, -0.0702166f, 0.625261f, -0.0558828f, -0.0617894f, 0.292336f, -0.523875f, 0.0229542f, 1.58632f, -0.231722f, -0.139989f, 0.823556f, -0.43111f, 1.19132f, 1.29603f, -0.630984f, 1.36702f, -0.130364f, 1.80865f, 0.669308f, -0.461492f, 0.927909f, -0.114352f, 0.079242f, 1.59835f, -0.632411f, 1.06819f, -0.45636f, 0.716334f, 0.00625565f, 0.214278f, 0.207884f, -1.21746f, -0.149759f, 3.24622f, -0.399609f, 0.0437373f, 0.689106f, -0.0589484f, -0.334215f, 0.836515f, -0.508468f, 0.157755f, -0.194959f, -0.397927f, 0.583678f, -0.512436f, -0.125795f, 0.0111994f, 0.0851677f, 0.328478f, 0.573699f, -0.31069f, -0.236373f, -0.2399f, 0.0487571f, 0.0334681f, -0.107831f, -0.0429967f, -0.158088f, 0.455646f, 0.463307f, -0.35324f, 0.245849f, -0.193381f, -0.0638097f, 0.28329f, -0.0610263f, -0.209242f, -0.0422409f, -0.175848f, -0.540178f, 0.0882148f, -0.444746f, -0.121683f, 0.331229f, 0.937666f, -0.338491f, -0.121416f, -0.435662f, -0.00479998f, -0.0466618f, -0.557701f, 0.13406f, 0.030059f, -0.253511f, -0.111068f, 0.187428f, 0.0376202f, 0.407873f, -0.0685584f, -0.194871f, -0.235567f, 0.0541845f, -0.5765f, -0.490645f, 0.538366f, -0.106681f, -0.0181633f, 0.239972f, -0.1993f, 0.619089f, 0.492641f, 0.0914387f, 0.767015f, 0.470372f, 0.334601f, -0.380493f, 0.0277119f, -0.371967f, -0.486814f, 1.78414f, -0.712404f, 0.549763f, -0.0734719f, -0.502121f, 0.501455f, 0.624837f, -0.400229f, 0.471742f, -0.420348f, 0.234315f, -0.249998f, 0.10115f, -0.504935f, -0.0442974f, 0.221133f, -0.773235f, 0.127533f, -0.677374f, -0.0106931f, 0.163513f, -0.0414988f, -0.70847f, -0.106571f, -0.402491f, 0.256679f, 0.185025f, 0.0496665f, 1.18988f, -0.527038f, -0.0258471f, 0.777272f, 0.191414f, -0.0571052f, -0.107474f, 0.799273f, 0.351308f, 0.583249f, 1.368f, 0.452056f, 0.142411f, 0.450808f, -0.0474152f, 0.232903f, -0.00997257f, -0.278714f, -0.0901303f, 0.300765f, 0.282296f, 0.503486f, 0.566803f, -0.187164f, 0.22737f};
+ model->setOperandValue(op65, op65_init, sizeof(float) * 1152);
+ static float op67_init[] = {-0.305398f, -0.685788f, -0.525249f, 0.301772f, 0.289891f, 0.630685f, -0.209829f, -0.79012f, 0.24649f, -0.608516f, -0.563271f, 0.0645603f, 1.55794f, 1.00103f, 0.880371f, -0.118016f, -0.0790257f, 0.956679f, 0.278375f, -0.625173f, -0.0493856f, 0.87827f, 0.253075f, 0.0546886f, 0.355621f, 0.178734f, 0.478416f, 0.0492583f, 0.293355f, 0.543042f, -0.724245f, 0.990581f, 1.46284f, 0.446866f, -0.79063f, 0.652788f, 0.597898f, 0.917416f, 0.0871194f, -0.284282f, 0.324214f, -0.1572f, 0.0399736f, 0.769288f, -0.960233f, -0.00885646f, -0.643283f, 0.721671f, 1.19157f, -0.721341f, -0.236599f, -0.149836f, 0.213326f, -0.0532691f, 1.27426f, 0.226731f, 0.77594f, 1.29236f, 0.792703f, 0.532026f, 0.153868f, -1.30736f, -0.16838f, 0.0649575f, -0.211678f, -0.0951798f, 0.215633f, -0.501761f, 0.512893f, 0.134215f, -0.124359f, 1.09245f, 0.668202f, -0.251388f, 0.558093f, -0.0925646f, 0.167238f, 0.572327f, -0.754583f, 0.831167f, -0.152979f, 0.445553f, -0.23448f, -0.120027f, 1.47701f, 0.761829f, 0.721299f, -0.123061f, 1.02031f, 0.206746f, 0.605342f, 0.272333f, -0.313723f, -0.415643f, 0.867801f, 0.0943753f, 0.267981f, 0.182397f, -0.311686f, -0.0201961f, 0.135552f, -0.89852f, -0.38088f, 0.504533f, 0.409304f, 0.0599384f, 0.271603f, -0.153014f, 0.395172f, 0.659796f, 0.518529f, 0.550892f, -0.396646f, -1.35361f, 0.502179f, 0.0585412f, 0.658f, -0.330476f, 0.361273f, 0.474181f, 0.626912f, 0.657814f, 0.380077f, 0.90833f, -0.168524f, -0.049237f, 0.177989f, -0.447172f};
+ model->setOperandValue(op67, op67_init, sizeof(float) * 128);
+ static float op68_init[] = {-0.0241622f, 0.0617369f, 0.00313696f, -0.0361745f, 0.0089011f, -0.0771454f, -0.0184935f, 0.0252865f, -0.0486987f, -0.0406999f, -0.0799738f, -0.0141762f, 0.00437186f, -0.0573011f, -0.00957927f, 0.046172f, 0.0570609f, 0.00471992f, 0.0971188f, 0.0576618f, 0.103793f, 0.0197602f, 0.122559f, -0.00102334f, -0.0784559f, 0.155006f, -0.111748f, 0.101551f, 0.0827965f, -0.1318f, 0.0495612f, -0.115198f, 0.15614f, 0.101033f, 0.0604104f, -0.209218f, 0.0122279f, 0.105561f, -0.0860308f, -0.0634802f, -0.0399273f, -0.015346f, -0.0853545f, -0.0609623f, 0.0339712f, 0.0696919f, 0.0744721f, -0.00465823f, -0.146284f, 0.104007f, 0.0193562f, 0.00289296f, 0.0756617f, -0.0586377f, 0.00066429f, -0.0160939f, -0.157602f, 0.105187f, 0.0278241f, 0.156465f, 0.0953226f, -0.0423266f, 0.00946264f, 0.0967963f, -0.0094248f, 0.1983f, -0.0606185f, 0.0422851f, -0.0475956f, -0.209028f, -0.11849f, 0.0630176f, -0.0602975f, 0.0253162f, -0.152982f, -0.186771f, 0.122462f, -0.0890817f, 0.0114347f, 0.0382302f, -0.0130611f, 0.0985855f, 0.106371f, -0.0704771f, 0.13717f, -0.125649f, 0.0763975f, -0.0448528f, -0.116665f, -0.0059271f, 0.0596776f, -0.175521f, 0.320232f, 0.262752f, -0.0392024f, -0.145799f, 0.024413f, -0.104194f, 0.0707348f, 0.108472f, 0.139796f, 0.0529258f, 0.0417071f, -0.0210183f, 0.0914108f, -0.0426374f, 0.00167011f, 0.00624434f, 0.0219409f, -0.029013f, 0.0858393f, -0.0919931f, 0.0904368f, 0.0253718f, 0.00171692f, -0.111899f, 0.0305154f, 0.00299299f, -0.039191f, -0.0160044f, 0.0847733f, -0.125573f, 0.105723f, 0.16296f, 0.163106f, 0.0522193f, 0.148685f, -0.297328f, 0.112013f, 0.0608458f, -0.0468526f, 0.0128562f, 0.130168f, -0.00475011f, -0.04122f, 0.00571167f, 0.039733f, 0.0287809f, 0.0246061f, -0.0382114f, 0.0746748f, 0.0333747f, -0.0387475f, -0.0495416f, 0.0740873f, 0.0629346f, -0.135296f, 0.0120287f, -0.0443212f, 0.100788f, -0.198717f, -0.106631f, -0.0282614f, -0.0405018f, -0.0121696f, -0.0400817f, 0.108328f, -0.0531403f, 0.0146126f, 0.113285f, -0.140269f, -0.025454f, 0.106796f, -0.0523235f, -0.00134366f, -0.0762924f, 0.0330537f, 0.208796f, 0.0645954f, 0.146804f, 0.00670789f, -0.116105f, 0.0129826f, 0.00626617f, 0.0775456f, 0.132196f, -0.211417f, 0.174125f, -0.00193921f, -0.00074563f, 0.0148643f, -0.0382125f, 0.014062f, 0.123974f, -0.0175281f, -0.00173734f, -0.100365f, 0.118803f, -0.0103051f, 0.0634151f, 0.0589173f, -0.0532562f, -0.0535755f, -0.119118f, 0.0828084f, 0.0105178f, 0.115143f, 0.244314f, -0.170723f, 0.0296524f, 0.0293143f, 0.125449f, 0.0107204f, -0.111415f, 0.0278163f, 0.0592982f, -0.16811f, -0.053119f, -0.0166629f, -0.0197548f, 0.154953f, -0.0907444f, 0.0294567f, -0.0015621f, -0.020529f, -0.0488773f, 0.0557197f, 0.125881f, 0.136817f, 0.015903f, 0.0978228f, -0.0191953f, 0.181831f, 0.0780606f, 0.115291f, -0.097081f, -0.0589546f, 0.155443f, 0.0256266f, -0.0236215f, -0.0499351f, 0.0673459f, -0.0209549f, -0.0413244f, -0.139306f, 0.065973f, 0.00875449f, -0.00694085f, 0.262141f, -0.0371868f, 0.0506934f, 0.00407148f, 0.016003f, -0.21548f, -0.0220136f, -0.0308501f, 0.192676f, 0.038784f, 0.00524823f, 0.0726432f, -0.0293841f, 0.0074767f, -0.0860429f, 0.0268057f, 0.147268f, -0.00723329f, 0.186053f, 0.0120424f, 0.0889312f, -0.194477f, 0.0332456f, 0.169773f, -0.0417986f, 0.280563f, -0.0470805f, -0.097453f, -0.0111082f, 0.0200131f, -0.0784906f, -0.0175003f, -0.12987f, 0.124946f, -0.0527988f, 0.0897092f, -0.0275612f, 0.0197932f, 0.120922f, 0.0095414f, 0.0159992f, -0.0345934f, 0.0748956f, 0.0959894f, -0.0314907f, -0.0945221f, 0.0195854f, -0.0875462f, 0.00269941f, 0.105413f, -0.172874f, 0.0906422f, -0.0816036f, -0.0734298f, 0.0910721f, -0.0578673f, -0.0632666f, 0.00634285f, 0.0708978f, -0.00535352f, 0.017391f, -0.122146f, 0.0762177f, 0.0515593f, 0.0500524f, -0.0690391f, 0.0292895f, -0.108163f, 0.0212628f, -0.000307792f, 0.0556516f, 0.139068f, -0.0450893f, 0.0156634f, -0.094816f, 0.0638269f, -0.168282f, -0.0353765f, 0.0032104f, -0.053577f, 0.00704241f, 0.0215284f, -0.0452862f, -0.157571f, 0.00719821f, -0.0532893f, 0.224671f, -0.0917851f, -0.131049f, 0.044026f, 0.171195f, 0.0363904f, 0.0833436f, 0.126773f, -0.158684f, -0.0673444f, 0.0326429f, 0.0662505f, 0.134487f, 0.0137111f, 0.120546f, 0.0927441f, -0.0156546f, -0.06504f, 0.0521482f, 0.242084f, -0.023119f, -0.00795908f, 0.0739158f, -0.0375431f, -0.0364635f, 0.0218798f, 0.0350704f, 0.029558f, -0.0191942f, 0.0942453f, 0.234703f, 0.0273183f, -0.150366f, -0.0350692f, -0.0411447f, -0.108845f, 0.186138f, -0.0102792f, -0.15735f, -0.114664f, 0.00464204f, 0.02257f, 0.0298777f, -0.0512764f, 0.0687334f, -0.0225287f, -0.0524606f, 0.0576026f, 0.126598f, -0.18386f, -0.0419099f, 0.142827f, 0.225695f, 0.108422f, -0.115046f, 0.0714488f, 0.106689f, -0.103028f, -0.00657177f, 0.00790855f, 0.0692397f, -0.0514635f, -0.147462f, -0.0945142f, 0.0132312f, -0.0212562f, -0.107623f, -0.0425324f, -0.07213f, -0.0417469f, -0.114253f, -0.026004f, -0.10685f, -0.0360263f, 0.0441331f, -0.071377f, 0.0132413f, 0.0485154f, 0.0647993f, -0.0934397f, -0.1336f, -0.0217135f, -0.0374064f, -0.0393337f, 0.0357392f, -0.0603659f, -0.109026f, 0.0277189f, -0.104725f, -0.0507841f, -0.103743f, -0.069981f, -0.0733076f, -0.0140496f, 0.0699492f, 0.0397589f, -0.137657f, 0.231614f, -0.0626253f, -0.0160399f, 0.0402766f, 0.03752f, -0.0788523f, -0.0380651f, 0.0563251f, -0.140615f, -0.0657581f, -0.195917f, -0.00289174f, -0.0533709f, -0.0339004f, 0.0568877f, -0.00582287f, 0.227167f, 0.118406f, -0.0109094f, 0.149848f, 0.0606803f, -0.0916487f, 0.0565854f, 0.0294316f, -0.118317f, 0.0482639f, -0.0116322f, -0.0366036f, 0.0122702f, 0.00570303f, 0.0172292f, -0.0623178f, 0.0805831f, 0.0351955f, 0.0129636f, -0.0799601f, 0.0628015f, -0.033737f, -0.0735125f, 0.221208f, -0.0714087f, 0.0654601f, 0.087321f, 0.161935f, 0.190592f, 0.168364f, 0.0917242f, 0.137331f, -0.161319f, -0.0863821f, 0.00905968f, -0.0518427f, -0.0885499f, 0.0172452f, -0.0762606f, 0.0205597f, 0.29161f, 0.017086f, -0.0223703f, -0.0553875f, 0.14622f, -0.0601093f, 0.0510598f, 0.246039f, -0.0238308f, -0.107317f, -0.0156964f, 0.0154898f, -0.0291143f, -0.0213559f, 0.034237f, 0.0775889f, -0.0315529f, 0.0090469f, -0.0218143f, 0.091929f, 0.0955984f, -0.0335753f, -0.0134309f, -0.035354f, -0.12387f, -0.168649f, -0.0428854f, 0.0682964f, 0.00370161f, 0.0164716f, 0.238184f, 0.00838457f, -0.041749f, -0.064483f, -0.151885f, -0.105491f, -0.0255207f, 0.0728476f, -0.0113408f, 0.155467f, -0.0421946f, 0.240647f, -0.0178186f, -0.159057f, 0.184777f, -0.00746386f, 0.140467f, 0.0494309f, 0.124616f, -0.00119338f, 0.0243687f, 0.0292247f, -0.0404411f, 0.0124476f, -0.0458503f, 0.0415191f, 0.0132116f, -0.0128248f, 0.0231642f, 0.0408748f, -0.00950096f, -0.0431294f, -0.0459728f, -0.0660131f, -0.0828347f, 0.249564f, -0.143974f, 0.100121f, -0.0658169f, 0.0497994f, 0.057129f, -0.00810337f, -0.101895f, -0.022179f, -0.0358248f, -0.134456f, 0.0851045f, -0.0308589f, 0.0663838f, 0.129946f, -0.00645503f, 0.0337177f, -0.0427317f, -0.00612367f, 0.0274834f, -0.152917f, 0.0842441f, 0.0762965f, -0.0272537f, 0.115387f, 0.0921858f, -0.124595f, -0.130017f, 0.0828311f, 0.0060533f, -0.0567394f, -0.014363f, 0.0118243f, 0.101201f, 0.0347265f, 0.00934849f, -0.139386f, -0.00638603f, -0.00347919f, -0.226879f, 0.128636f, 0.0267064f, -0.0191258f, -0.070365f, 0.0163943f, 0.119003f, 0.0259922f, 0.0294099f, 0.207133f, 0.0195813f, -0.165441f, -0.105359f, -0.134142f, -0.13985f, -0.0632615f, -0.10639f, 0.0537609f, 0.00741806f, -0.0451146f, 0.0428935f, 0.04118f, -0.0141544f, 0.0569281f, -0.0775027f, 0.0137737f, -0.105674f, 0.136668f, 0.0817851f, 0.0573903f, 0.00693973f, 0.0586479f, -0.0735797f, 0.0897821f, 0.0429473f, -0.097546f, 0.0154598f, 0.00534332f, -0.0492198f, 0.0194855f, -0.0376702f, 0.0415171f, 0.0464142f, 0.0956598f, -0.0370283f, 0.0142251f, 0.0851657f, 0.0159816f, 0.0173337f, -0.027902f, -0.0298136f, -0.129329f, -0.0736382f, -0.0560498f, -0.0628944f, -0.147928f, -0.172307f, 0.0962133f, 0.0642533f, 0.00181752f, -0.102559f, -0.0227086f, 0.0274808f, 0.000429354f, -0.105027f, 0.100375f, 0.00733468f, 0.189933f, 0.102867f, -0.133894f, -0.094174f, 0.0377734f, -0.095975f, 0.118435f, 0.106031f, 0.0221033f, 0.0423188f, -0.210128f, -0.138973f, -0.0496169f, 0.0976945f, 0.278953f, 0.00192714f, -0.0669297f, 0.0117395f, 0.0226459f, 0.0813352f, -0.125584f, -0.0018643f, 0.0121518f, -0.20343f, -0.157904f, 0.20294f, -0.143296f, 0.0493966f, -0.129782f, -0.0278219f, -0.144498f, -0.175503f, 0.0154176f, -0.017553f, 0.0799239f, 0.304761f, 0.0796278f, -0.158778f, -0.109562f, 0.0179813f, 0.0306029f, 0.025312f, 0.12163f, -0.0368826f, 0.021581f, -0.0832567f, 0.106287f, -0.118207f, 0.00704333f, -0.108144f, -0.0857423f, -0.0738896f, -0.130618f, -0.210436f, -0.235812f, 0.103681f, 0.0172735f, -0.036979f, -0.114291f, 0.121275f, -0.264871f, -0.263947f, -0.03715f, -0.055126f, 0.00484308f, -0.0128908f, -0.00683578f, 0.0926297f, 0.0547585f, -0.123199f, 0.107809f, -0.167688f, -0.031413f, -0.0430398f, 0.0437073f, 0.0531358f, 0.0379658f, -0.0114819f, -0.0796597f, -0.056035f, 0.0647404f, 0.270892f, -0.139302f, 0.0550834f, -0.104249f, -0.0441013f, -0.00245498f, 0.102778f, 0.270234f, -0.221616f, 0.0348733f, -0.242949f, -0.153848f, -0.00658035f, 0.0209248f, 0.119915f, 0.0771242f, -0.141782f, -0.15137f, 0.101381f, 0.0381568f, 0.0778727f, -0.157541f, 0.209798f, 0.119851f, -0.00479371f, 0.0616493f, 0.0800742f, -0.0117096f, 0.10523f, -0.0682053f, -0.0206379f, -0.10175f, -0.195371f, -0.0640675f, -0.157705f, 0.0885026f, 0.126152f, 0.397625f, -0.0662943f, 0.150821f, 0.187594f, 0.0337992f, -0.146078f, -0.123906f, -0.049407f, 0.0269049f, 0.0211292f, 0.0661394f, -0.187622f, -0.0415711f, 0.0542825f, 0.0692558f, -0.0101645f, 0.0134984f, -0.137934f, 0.0261688f, 0.0257546f, -0.171656f, -0.0676549f, 0.202624f, 0.127079f, -0.101181f, -0.0350688f, -0.0400053f, 0.0805492f, 0.00232896f, -0.0644079f, -0.164566f, 0.0237461f, 0.150613f, -0.0122901f, -0.0316167f, 0.086192f, -0.113693f, 0.039236f, 0.216057f, 0.0233284f, 0.159275f, 0.170633f, 0.00507084f, 0.0383211f, 0.373714f, 0.170978f, 0.0529058f, -0.137368f, -0.0518035f, 0.00525272f, -0.104635f, -0.052771f, 0.131975f, -0.0503324f, -0.0700215f, -0.13989f, -0.102589f, -0.126724f, -0.00185631f, 0.0776923f, -0.0504366f, 0.159755f, 0.0560734f, 0.094571f, -0.0429612f, 0.0510893f, 0.1141f, 0.181198f, 0.0520837f, 0.113153f, -0.15583f, 0.0354975f, -0.0786435f, 0.0608187f, -0.00399805f, -0.0670573f, -0.279232f, 0.0681131f, 0.0581492f, -0.293954f, 0.0646118f, -0.0592516f, 0.00410192f, 0.0994705f, 0.0369921f, -0.159913f, -0.106951f, -0.192042f, 0.109084f, -0.00990686f, -0.211553f, -0.129881f, 0.080495f, -0.129953f, 0.0702138f, 0.0947937f, 0.163574f, 0.00193502f, 0.00694123f, 0.144311f, -0.0594103f, 0.201272f, 0.0278324f, 0.177806f, -0.0365736f, -0.098587f, -0.0127494f, -0.0169237f, -0.203911f, -0.0364127f, -0.0641134f, 0.0680265f, 0.0156594f, 0.0165482f, 0.121669f, 0.00227266f, -0.29319f, -0.194031f, 0.0521083f, 0.069174f, -0.129193f, -0.330324f, 0.0489725f, 0.150785f, 0.0968991f, 0.00538054f, 0.274095f, 0.163939f, 0.0158683f, 0.0118591f, -0.0843252f, -0.0672072f, 0.14847f, 0.0851473f, 0.0194847f, 0.132452f, -0.117059f, 0.0395006f, 0.0283899f, 0.0186099f, -0.101017f, 0.165204f, -0.0912976f, -0.142034f, 0.0560874f, 0.00823429f, 0.195315f, 0.194689f, 0.0163662f, 0.113311f, -0.0278852f, 0.114638f, 0.0873f, -0.103364f, -0.053271f, -0.0283211f, 0.147662f, -0.0298975f, 0.186148f, 0.135164f, 0.128673f, 0.119338f, -0.107455f, 0.134377f, -0.0484709f, 0.0292726f, -0.174297f, -0.0956923f, -0.0718892f, 0.141146f, 0.0340532f, 0.262224f, 0.0900084f, 0.0397568f, -0.18616f, -0.261144f, -0.0161235f, 0.106564f, -0.0275183f, 0.118136f, -0.145103f, 0.00280916f, -0.0965901f, 0.0283268f, -0.0822405f, 0.0183688f, 0.106748f, 0.0475392f, -0.00629148f, -0.0477096f, 0.11036f, -0.0135491f, 0.000900393f, 0.000352367f, 0.0338508f, -0.00838322f, -0.0856332f, 0.159251f, 0.114385f, 0.387019f, -0.00288646f, 0.17564f, -0.0688081f, -0.206119f, 0.0228083f, -0.0938336f, 0.00306014f, -0.173055f, 0.061582f, 0.0349526f, 0.0775071f, 0.0157049f, 0.139166f, 0.074158f, 0.0345958f, -0.0340919f, 0.0563272f, -0.0291834f, -0.108293f, 0.0674118f, -0.105981f, 0.0311018f, -0.111997f, -0.0968671f, 0.00444689f, -0.06485f, -0.0483306f, -0.195164f, -0.204565f, -0.0492144f, -0.11404f, -0.0148731f, -0.0444922f, -0.0389945f, 0.0959706f, -0.0303891f, 0.0877454f, 0.0360661f, 0.139622f, 0.00147091f, -0.0186766f, 0.000625848f, 0.120425f, 0.0798684f, 0.0567559f, -0.181774f, 0.149483f, 0.129597f, 0.140553f, 0.0374545f, -0.0105019f, -0.0162011f, 0.255906f, -0.0514836f, 0.144586f, 0.133542f, 0.0774798f, -0.0165906f, -0.0820725f, -0.00985391f, 0.0979168f, -0.0556173f, -0.115532f, -0.037488f, 0.0112783f, 0.0975002f, 0.0789088f, -0.129171f, 0.0429972f, -0.0369598f, 0.100644f, -0.0798995f, 0.0478513f, 0.0400404f, 0.00164244f, 0.0590742f, -0.0639478f, -0.0940528f, 0.0246025f, 0.0215783f, -0.152265f, -0.00353583f, -0.22239f, -0.0586225f, -0.171938f, -0.12614f, 0.0290566f, 0.0994501f, -0.228697f, 0.0866574f, 0.0161876f, 0.0111544f, 0.215328f, 0.0825481f, 0.0165507f, 0.0129188f, -0.026294f, 0.106485f, 0.122875f, -0.0433987f, -0.0925016f, 0.0228567f, 0.0813898f, -0.0655979f, -0.0165026f, 0.0708349f, -0.0104927f, 0.304368f, 0.184891f, 0.110331f, -0.0214644f, 0.046761f, 0.0412749f, -0.00471421f, 0.0850435f, 0.0369222f, -0.0218985f, -0.13523f, -0.109644f, -0.0758866f, -0.0195408f, 0.102769f, -0.0482042f, 0.098864f, 0.207761f, 0.070766f, -0.0470003f, -0.0180447f, 0.0531969f, -0.113796f, 0.328256f, -0.0227048f, 0.0865071f, -0.0402083f, 0.150049f, -0.0994598f, -0.0682246f, 0.127181f, -0.0330213f, -0.0861792f, 0.105576f, -0.175873f, 0.0663457f, 0.198775f, 0.126859f, -0.190898f, 0.00461677f, -0.0838816f, -0.0624849f, -0.104821f, -0.0448903f, -0.0478272f, 0.0780931f, 0.0597611f, 0.17158f, 0.00146765f, 0.0893002f, -0.164962f, 0.0527227f, 0.00233056f, -0.324641f, 0.136148f, -0.094839f, -0.0190136f, -0.068265f, -0.0288993f, -0.141138f, -0.112071f, 0.120708f, -0.232216f, -0.13496f, -0.0721398f, 0.058305f, -0.282657f, -0.04168f, 0.168848f, -0.0565759f, 0.105159f, -0.0736577f, -0.0320809f, -0.19026f, -0.155439f, -0.0786237f, 0.161825f, 0.0835506f, 0.0211554f, -0.0202209f, 0.0639872f, 0.238086f, 0.0995554f, -0.239103f, -0.00103854f, 0.0415197f, 0.15668f, -0.0244647f, 0.0738632f, -0.0821535f, 0.020497f, 0.0810824f, 0.106385f, 0.0356798f, 0.00537577f, -0.106681f, -0.078778f, 0.133689f, 0.0264963f, 0.101849f, -0.00893431f, 0.117323f, -0.0902541f, -0.0651496f, -0.249467f, -0.0713385f, -0.00132401f, 0.0455585f, -0.229673f, 0.14928f, -0.0166367f, 0.0894455f, -0.145996f, 0.118435f, -0.0676249f, 0.114316f, 0.0330198f, 0.0717195f, 0.00502105f, 0.0529114f, 0.113312f, 0.113713f, 0.116964f, -0.0314873f, 0.248395f, -0.0205288f, -0.0171329f, 0.0827013f, -0.125851f, -0.0302639f, -0.131412f, 0.19233f, -0.041174f, -0.173565f, 0.112849f, -0.160923f, 0.0740173f, 0.0679278f, -0.0823971f, -0.0277408f, -0.143903f, -0.107214f, 0.0631033f, -0.0848467f, 0.0843306f, 0.0857844f, -0.0844559f, 0.102339f, 0.196142f, -0.0539142f, 0.145755f, 0.173712f, 0.158517f, -0.0867544f, -0.192054f, 0.0697768f, -0.182862f, -0.0082314f, -0.0168608f, -0.0286802f, 0.0282652f, 0.0523294f, 0.0708893f, 0.100472f, -0.106257f, 0.164599f, 0.0123151f, 0.15886f, -0.00223926f, 0.122341f, 0.0279705f, 0.0186136f, -0.117336f, -0.113399f, -0.0712167f, 0.107323f, -0.0270348f, -0.054044f, 0.0177769f, -0.0153015f, 0.112596f, -0.18541f, 0.132289f, 0.210598f, -0.138365f, 0.222334f, 0.0615619f, -0.101173f, 0.0317999f, 0.156146f, 0.181427f, -0.0500697f, 0.0651587f, -0.129466f, -0.0778302f, 0.241628f, 0.165179f, -0.0931872f, 0.135415f, -0.0934385f, 0.00177497f, 0.00833487f, 0.0371836f, -0.0330488f, -0.205596f, -0.0607273f, 0.0707027f, 0.0835665f, 0.0961707f, 0.0389876f, -0.0858326f, 0.225197f, 0.193342f, 0.0278558f, -0.126097f, 0.0534478f, 0.11807f, 0.101153f, 0.0925435f, -0.0999914f, 0.103629f, 0.138007f, -0.0810559f, -0.109017f, -0.0651264f, -0.166713f, -0.0424867f, -0.0820882f, -0.00889314f, -0.0537699f, -0.0538336f, 0.0109479f, 0.062763f, 0.00097036f, 0.0378537f, 0.0404911f, 0.124734f, 0.113545f, -0.323213f, -0.00749441f, -0.0339714f, -0.0815951f, -0.0121056f, 0.0321711f, 0.0150171f, -0.100616f, -0.145895f, -0.00480739f, -0.209474f, -0.0192577f, -0.097229f, -0.0490573f, -0.020402f, -0.0712104f, -0.0503472f, 0.056084f, -0.146992f, 0.0520469f, 0.152662f, 0.0318964f, -0.0135317f, 0.102281f, 0.208093f, 0.163357f, -0.242397f, 0.122252f, -0.0909277f, 0.141723f, 0.125327f, 0.067294f, 0.163503f, -0.0221591f, 0.186123f, 0.0685704f, -0.121737f, -0.0697187f, 0.0947693f, -0.011097f, 0.0637832f, 0.113352f, 0.182265f, -0.0113762f, 0.0157122f, -0.0221443f, -0.122488f, 0.0123702f, 0.00100132f, -0.0814426f, 0.11058f, -0.23821f, 0.120799f, 0.241325f, -0.140311f, -0.157401f, 0.00963796f, 0.0549895f, 0.113416f, -0.0017678f, -0.0956055f, 0.19943f, -0.0631841f, -0.0671503f, 0.0895315f, -0.184329f, 0.179142f, -0.111752f, 0.221382f, 0.0717026f, 0.149994f, -0.213634f, 0.187911f, 0.118447f, 0.125017f, -0.0516746f, 0.0279434f, -0.128939f, 0.014344f, 0.0284643f, -0.023252f, -0.10624f, 0.00595806f, -0.05143f, 0.198361f, 0.0293706f, -0.0598718f, -0.0151888f, 0.0155476f, 0.0190326f, 0.108068f, -0.0237049f, 0.0555539f, -0.0286309f, 0.0384471f, -0.123705f, 0.228595f, 0.285324f, -0.017413f, 0.111602f, -0.0748743f, 0.0985031f, -0.138016f, -0.0424355f, -0.138546f, -0.0413874f, 0.035891f, -0.182137f, 0.098275f, 0.0246303f, 0.102117f, 0.102209f, -0.0858796f, -0.00518245f, -0.00606179f, 0.027687f, 0.0700193f, 0.077702f, -0.0896282f, 0.0253244f, 0.0759675f, -0.103606f, -0.0174556f, -0.0222219f, 0.186757f, -0.013506f, -0.0364188f, 0.102994f, -0.0577032f, 0.122457f, 0.0360374f, -0.138036f, 0.0556324f, -0.0374693f, -0.0891613f, 0.0772545f, 0.0948369f, 0.199114f, -0.000658952f, 0.180274f, -0.0295987f, 0.161754f, -0.010234f, -0.0248104f, 0.0122855f, 0.0637603f, 0.0112751f, 0.0767011f, -0.137367f, -0.0290359f, 0.0224652f, -0.0274256f, 0.0372648f, -0.0115027f, -0.106677f, 0.10672f, -0.0684099f, -0.0602308f, -0.140964f, -0.0468884f, -0.0717549f, 0.0872263f, 0.0123293f, -0.0175402f, 0.00552365f, 0.00195179f, -0.277305f, 0.000128615f, 0.00466979f, 0.0687393f, -0.134842f, -0.0468302f, 0.0399258f, 0.0271919f, -0.00141251f, 0.00558989f, 0.137168f, -0.0644592f, 0.0740099f, 0.0431454f, 0.13106f, 0.031994f, 0.0487117f, 0.226103f, -0.0274367f, -0.153263f, -0.0457244f, -0.0190741f, 0.067951f, -0.0523367f, 0.0620047f, -0.0865031f, 0.0373303f, 0.100429f, 0.0422028f, -0.139844f, -0.0520657f, -0.136797f, 0.0383055f, -0.0443056f, -0.0893061f, -0.0516997f, -0.0887944f, 0.0361195f, 0.00408928f, 0.101021f, 0.0151879f, 0.225488f, 0.00970037f, -0.00889795f, -0.114127f, -0.0420592f, -0.0361091f, 0.0205631f, -0.132122f, -0.113428f, 0.0977934f, 0.0549911f, 0.0436124f, 0.0900654f, 0.0885585f, -0.0105287f, -0.123756f, -0.0407966f, -0.164134f, -0.116206f, 0.00147299f, 0.0144538f, 0.0904634f, 0.02361f, -0.0576612f, -0.305811f, -0.174465f, 0.17887f, -0.0230113f, -0.0575071f, -0.101197f, -0.121448f, 0.127052f, -0.0795846f, -0.217875f, -0.188122f, -0.0389203f, 0.0545388f, -0.00813237f, -0.178812f, -0.14236f, 0.0238947f, 0.118644f, -0.0744615f, -0.0985926f, -0.069311f, 0.055274f, -0.0225178f, -0.122096f, -0.00137285f, -0.169841f, -0.0528494f, 0.077647f, 0.00526488f, -0.0432493f, -0.0990806f, 0.221188f, -0.0510836f, -0.029484f, 0.0651561f, -0.097311f, 0.0723878f, -0.154807f, 0.123094f, -0.0791236f, 0.16324f, -0.0632597f, -0.0913623f, -0.00665204f, 0.166459f, 0.114519f, -0.0118603f, -0.124259f, -0.0318286f, 0.033477f, 0.0610438f, 0.0531483f, -0.0732715f, 0.0294313f, -0.301352f, 0.0788466f, -0.0854867f, -0.139168f, 0.11375f, -0.0291329f, 0.058876f, 0.0255313f, 0.0392447f, 0.179837f, -0.298867f, -0.132857f, -0.0851783f, 0.00531529f, -0.148712f, 0.0414345f, 0.110941f, 0.0551158f, -0.0283884f, -0.0798963f, -0.10743f, 0.13543f, -0.0924074f, 0.0255302f, 0.0981808f, 0.156769f, 0.0980721f, 0.112385f, 0.0403987f, -0.0678442f, 0.306826f, -0.0971719f, -0.194376f, 0.303311f, 0.145731f, 0.153384f, 0.0133914f, 0.0836638f, -0.202908f, 0.0140081f, -0.0751201f, -0.268653f, -0.0823312f, 0.104518f, -0.0891909f, -0.129198f, -0.214492f, 0.20287f, -0.055174f, 0.116211f, 0.10511f, 0.0474449f, -0.176984f, -0.132202f, -0.00721308f, 0.0469884f, 0.00397592f, -0.0244267f, 0.133654f, -0.167865f, 0.0299469f, -0.117861f, -0.00867776f, -0.19164f, -0.110793f, -0.217058f, -0.115638f, -0.0255382f, -0.117096f, 0.0102479f, -0.162508f, -0.024253f, 0.173927f, 0.167332f, -0.149158f, -0.230413f, -0.14787f, 0.0216559f, -0.114376f, 0.0755972f, -0.125315f, -0.120097f, -0.0693139f, -0.0873441f, -0.0147313f, -0.115747f, 0.130164f, -0.273591f, -0.103136f, -0.136926f, 0.189749f, 0.0916805f, -0.0229199f, 0.292294f, 0.0943709f, -0.0873981f, 0.0788069f, -0.0992622f, -0.119183f, 0.047142f, 0.0333073f, -0.152449f, 0.0388717f, -0.088505f, 0.129069f, -0.0156841f, 0.16189f, 0.0446457f, -0.0572449f, -0.109035f, -0.0557784f, -0.0915039f, 0.0594979f, 0.0348345f, -0.144658f, 0.056485f, -0.0175153f, 0.240191f, 0.0159923f, -0.0457878f, -0.0874061f, 0.0578639f, -0.0546891f, 0.0883793f, 0.0312931f, -0.262502f, 0.0616591f, 0.165711f, 0.047958f, -0.089657f, -0.132692f, -0.0111282f, -0.0852506f, -0.224847f, 0.0516903f, 0.0127162f, 0.0219313f, 0.117721f, 0.078011f, 0.00698662f, -0.155901f, -0.0539676f, -0.145606f, -0.0251751f, 0.119855f, -0.0401987f, -0.124195f, 0.0551003f, 0.0240137f, 0.214926f, -0.0477672f, 0.0864694f, 0.1994f, -6.84954e-05f, -0.0977755f, -0.140013f, -0.166558f, -0.0737241f, 0.17471f, -0.0870924f, -0.138657f, 0.168087f, 0.181676f, -0.022851f, 0.0825397f, -0.00258499f, -0.0298533f, -0.0659474f, -0.000199108f, -0.094212f, -0.280639f, 0.0568344f, -0.087079f, -0.0816087f, -0.0283956f, -0.0899884f, -0.0398524f, -0.0914925f, -0.0690544f, -0.0143895f, 0.0963903f, 0.184351f, 0.174392f, -0.0738693f, 0.00053745f, 0.0564531f, -0.140999f, 0.0380926f, -0.0310575f, 0.0401655f, -0.147952f, 0.118959f, 0.0400684f, -0.191889f, -0.0858554f, 0.062107f, 0.0759785f, 0.0458007f, -0.103659f, -0.0749557f, -0.00760214f, 0.0629681f, 0.0831409f, -0.0537208f, -0.0412546f, 0.193836f, 0.134611f, -0.0326023f, -0.0200647f, -0.00257355f, 0.0600872f, 0.106553f, -0.0360324f, -0.00775284f, 0.0486785f, 0.0172398f, -0.252497f, -0.00650163f, -0.018334f, 0.0829754f, -0.141802f, 0.0692017f, -0.157987f, 0.0635581f, 0.0667205f, 0.00816767f, -0.0439535f, -0.103281f, -0.0507047f, -0.115754f, 0.167746f, 0.119673f, 0.174566f, -0.00713363f, -0.177367f, 0.181854f, -0.156095f, -0.0599175f, -0.0240614f, -0.0973032f, 0.0327332f, -0.100765f, -0.0768059f, -0.0624669f, -0.195979f, -0.00725938f, -0.0384566f, 0.16519f, -0.0343551f, 0.0467768f, -0.0301099f, 0.0140466f, -0.193242f, -0.244098f, 0.0644077f, -0.215655f, 0.084494f, -0.0751627f, 0.159281f, -0.0581426f, -0.101813f, 0.0547659f, -0.0758538f, 0.0228327f, -0.00639498f, 0.111496f, -0.0813488f, -0.0487095f, -0.0264101f, 0.031408f, 0.110113f, -0.13379f, 0.0255711f, 0.055167f, 0.0285355f, 0.050649f, 0.126014f, -0.0803571f, -0.196362f, 0.203322f, -0.182212f, -0.0899178f, 0.0652691f, -0.243f, 0.00339555f, 0.136926f, -0.130628f, -0.0365396f, 0.0512086f, 0.0291824f, -0.119104f, 0.103286f, 0.0279251f, -0.0741059f, -0.138881f, -0.0605124f, -0.248675f, -0.0380402f, 0.0233986f, -0.014093f, -0.0397784f, -0.0864102f, 0.0666651f, 0.0537753f, -0.200767f, 0.009567f, 0.0474034f, 0.0722556f, 0.00530202f, -0.0548778f, -0.0083105f, -0.0854023f, 0.00757157f, 0.108116f, 0.0432617f, -0.0590283f, 0.100896f, 0.0814167f, -0.127289f, -0.0830404f, -0.215384f, 0.129179f, 0.206685f, 0.0129144f, -0.0957043f, -0.0982154f, 0.0674537f, -0.030171f, 0.0240873f, -0.174911f, -0.149949f, 0.0119677f, 0.0421531f, 0.0905978f, 0.220645f, -0.0432741f, 0.0528403f, 0.0884372f, -0.0522783f, -0.101094f, 0.0582061f, -0.161221f, -0.31748f, -0.0743469f, 0.054298f, 0.130395f, 0.091829f, 0.0261497f, 0.112576f, -0.07287f, -0.0297856f, 0.0377343f, -0.0878144f, -0.10831f, 0.00518875f, 0.285173f, -0.107558f, -0.0170748f, -0.250884f, -0.0462726f, 0.0671407f, -0.0340842f, 0.111609f, 0.115222f, 0.0847685f, -0.058857f, 0.0648396f, -0.020425f, -0.190238f, 0.0651511f, -0.0628057f, -0.0338392f, 0.00272959f, -0.0800885f, 0.100371f, 0.0474405f, -0.0505465f, -0.127798f, 0.0602254f, 0.00966369f, -0.199368f, -0.0274408f, 0.0678669f, 0.211925f, 0.298665f, 0.125075f, 0.231668f, -0.298119f, 0.0288253f, 0.0762733f, 0.00220382f, 0.297812f, 0.103608f, -0.132531f, 0.00646672f, -0.0257726f, 0.0597905f, 0.143252f, -0.107237f, -0.0872838f, -0.00568927f, 0.028484f, 0.230348f, 0.0254094f, 0.117975f, -0.213717f, 0.0716583f, -0.218705f, 0.190918f, 0.132092f, -0.080185f, -0.0436109f, 0.0855981f, 0.0425286f, 0.0879564f, 0.0997421f, 0.0182888f, 0.11874f, 0.0740358f, -0.203666f, -0.0998295f, 0.0861193f, 0.0270776f, 0.101938f, -0.19167f, 0.0164208f, -0.0612556f, 0.220138f, 0.0944814f, 0.00875329f, -0.0272309f, 0.167869f, 0.113295f, -0.104788f, -0.00755215f, -0.0402818f, -0.0309234f, -0.0615676f, 0.0597289f, -0.243227f, 0.000317487f, 0.0359015f, -0.0346668f, -0.105498f, 0.00305394f, -0.0941728f, -0.0904831f, 0.0735009f, 0.106124f, -0.239081f, 0.0943302f, 0.117757f, -0.0575977f, -0.0917194f, -0.137867f, -0.0937492f, -0.0380279f, 0.119434f, 0.0441964f, -0.159417f, -0.0572195f, 0.00232664f, 0.0664328f, 0.0439708f, 0.0594975f, 0.0432366f, 0.0547754f, 0.0902779f, 0.00933378f, 0.19482f, 0.0896132f, 0.0608326f, 0.0245944f, -0.169333f, 0.0418155f, 0.0413725f, 0.0689705f, -0.0582603f, 0.0838733f, 0.301803f, 0.0511426f, 0.0657985f, 0.331132f, -0.113563f, 0.0584631f, -0.0422645f, 0.0651425f, -0.0396975f, 0.278991f, 0.1692f, -0.0099336f, -0.0483453f, -0.041409f, 0.110413f, -0.116888f, 0.00339888f, 0.117611f, -0.0734134f, -0.11255f, -0.0227483f, -0.244848f, 0.0325165f, -0.0809878f, -0.0985137f, -0.0339502f, 0.104461f, -0.0507514f, 0.225031f, -0.0810729f, -0.0302258f, -0.00948557f, -0.12324f, 0.0144738f, -0.0434288f, 0.124289f, -0.102807f, -0.0254276f, 0.0141925f, -0.0297479f, -0.109878f, 0.0957912f, -0.125612f, 0.158186f, 0.0178959f, -0.31446f, -0.140351f, 0.0605831f, -0.24357f, -0.0822673f, -0.00428958f, -0.000508508f, -0.127783f, 0.0414337f, -0.0206306f, 0.0186145f, 0.013827f, 0.0143352f, 0.165336f, -0.127348f, 0.014469f, -0.114577f, -0.0859707f, 0.0438189f, 0.146576f, -0.0552456f, -0.0357547f, -0.0390381f, -0.0248884f, 0.0160046f, -0.00537903f, 0.0522672f, -0.0675004f, 0.0929649f, -0.0566025f, 0.128876f, -0.0281423f, 0.148394f, 0.105188f, -0.193824f, 0.132616f, 0.0297506f, -0.0104507f, 0.0667522f, -0.0409894f, 0.0153399f, -0.000379669f, 0.0800838f, 0.0715552f, 0.0518427f, -0.145739f, -0.00694353f, 0.00898776f, 0.00238382f, 0.0209585f, -0.0744723f, 0.0338237f, -0.0914356f, -0.189241f, 0.143936f, 0.059812f, -0.127094f, -0.011348f, 0.0953564f, -0.138148f, -0.0952615f, 0.145318f, -0.133392f, -0.0221012f, -0.0178498f, 0.0810525f, 0.0740195f, -0.0703802f, -0.0258544f, 0.0166878f, -0.078333f, 0.056245f, -0.00502545f, -0.147842f, 0.0244939f, 0.161838f, 0.134676f, 0.0622289f, 0.0230822f, -0.0114788f, 0.0769218f, 0.0184319f, -0.0178533f, -0.0351427f, -0.0394676f, -0.0175932f, -0.0450162f, -0.0281077f, 0.024062f, 0.00110242f, 0.174106f, 0.174236f, -0.00518651f, -0.0177275f, 0.137613f, -0.147517f, -0.0535731f, 0.0998725f, -0.152721f, 0.260347f, -0.196896f, -0.173578f, 0.0227169f, 0.0649901f, -0.164433f, -0.132063f, -0.0320602f, -0.0548114f, 0.103473f, -0.0633154f, -0.144773f, -0.0584004f, -0.0210552f, 0.0766784f, -0.176044f, -0.0957415f, 0.0608517f, 0.000425431f, -0.219188f, 0.0171697f, -0.342542f, 0.090259f, -0.0180223f, -0.0693694f, -0.0577684f, -0.28503f, -0.134811f, 0.0218704f, -0.0207483f, -0.0596385f, -0.0812838f, -0.0420673f, 0.139553f, -0.0202837f, -0.00552989f, 0.0234869f, -0.0839227f, 0.0265867f, -0.0918785f, 0.267296f, -0.0558377f, -0.0519642f, -0.00220747f, -0.175741f, 0.0868893f, 0.189366f, -0.0982896f, 0.265124f, -0.0288566f, -0.166168f, -0.00313758f, -0.0163442f, -0.115868f, 0.168483f, 0.121162f, -0.0276876f, 0.103416f, 0.202111f, 0.0180658f, -0.0425032f, -0.174721f, 0.0521659f, -0.0404091f, 0.0249161f, -0.101356f, -0.140085f, -0.175947f, 0.318872f, 0.0776043f, 0.0594743f, -0.0230449f, -0.0262837f, -0.0603441f, -0.0066561f, 0.0576638f, -0.147682f, -0.160955f, 0.198226f, 0.0500462f, 0.111603f, 0.164572f, -0.189877f, -0.0206196f, -0.0994575f, -0.085759f, 0.206533f, -0.0171245f, 0.0214913f, -0.029982f, -0.0558108f, 0.0914774f, -0.0162809f, -0.0633543f, 0.0377453f, -0.0373576f, -0.213035f, 0.0719343f, -0.143766f, 0.0528523f, 0.018966f, 0.0608355f, -0.0848319f, 0.0895467f, 0.0515828f, 0.148218f, -0.105669f, -0.0235846f, -0.00100845f, 0.0347026f, -0.0517417f, 0.05102f, 0.010586f, 0.203485f, 0.0578434f, 0.197722f, 0.169309f, -0.0967552f, 0.129526f, -0.15599f, -0.0620632f, 0.00010314f, 0.0338839f, -0.0547821f, 0.0937636f, -0.0510786f, 0.0395403f, -0.0668436f, 0.0516968f, 0.0290531f, 0.0208796f, -0.0738531f, -0.0434938f, -0.0213067f, 0.0641705f, 0.00765513f, -0.124419f, -0.033057f, -0.147702f, 0.0514247f, -0.0128602f, 0.0428568f, 0.0544014f, 0.0772816f, 0.0442393f, -0.156882f, -0.118242f, -0.0763905f, -0.189704f, -0.107428f, -0.0238231f, -0.0391941f, 0.0124827f, 0.0471754f, 0.345319f, 0.0394618f, 0.01189f, 0.104639f, -0.229772f, -0.0356316f, -0.0836046f, 0.0685735f, 0.11408f, 0.000812955f, -0.0838646f, -0.0336032f, -0.00710235f, 0.0556201f, -0.153169f, -0.0530381f, -0.0116538f, -0.0614322f, -0.0033112f, -0.0524096f, -0.0206269f, -0.0161767f, 0.214314f, -0.0635306f, 0.051638f, -0.0518886f, -0.119869f, -0.100947f, 0.0669914f, -0.138758f, -0.151516f, -0.0889563f, 0.124914f, -0.00981803f, -0.100418f, -0.0829085f, -0.101911f, 0.0885091f, 0.0609645f, 0.168609f, -0.00233731f, -0.013039f, 0.154352f, 0.0135329f, 0.0238235f, 0.112889f, 0.2835f, -0.212389f, 0.0528821f, -0.0613644f, -0.0334713f, 0.0828068f, -0.0388767f, 0.0350945f, -0.0674146f, -0.0667246f, 0.0571891f, -0.176267f, 0.118708f, 0.139749f, 0.0826146f, 0.079631f, 0.0288402f, -0.265782f, 0.213757f, 0.00420397f, -0.0764565f, 0.0438447f, 0.0309317f, 0.000191251f, -0.0015298f, -0.0907625f, 0.0727659f, -0.100553f, -0.0878318f, -0.05957f, 0.0274362f, 0.30092f, -0.0523975f, 0.149706f, -0.00801804f, -0.274443f, 0.0764264f, 0.0184695f, -0.127173f, -0.0513178f, -0.0808798f, -0.0473523f, 0.0629499f, 0.168447f, -0.0545328f, -0.0108541f, 0.0340318f, 0.0224372f, -0.024894f, -0.149547f, -0.00281936f, 0.187354f, -0.10369f, -0.0709217f, 0.0607625f, 0.185738f, 0.021622f, 0.0464353f, 0.0995565f, -0.00595658f, 0.273551f, 0.130282f, 0.211353f, 0.101131f, 0.0530782f, -0.0444284f, 0.0538687f, -0.0911894f, 0.0164549f, 0.0426583f, 0.033131f, -0.0919572f, 0.0267867f, -0.202461f, 0.125164f, -0.0414719f, -0.0947622f, 0.059729f, 0.211537f, 0.0679224f, -0.0187931f, 0.0131794f, -0.170419f, -0.198445f, -0.155818f, 0.0458162f, -0.0456623f, 0.0280622f, 0.0693862f, 0.0570255f, -0.068698f, -0.0617151f, -0.0657538f, -0.00615922f, 0.0378733f, 0.0406886f, -0.0869145f, 0.166953f, 0.130626f, -0.0355687f, 0.00856186f, 0.106595f, -0.19553f, 0.020214f, 0.155963f, -0.00244386f, -0.0352858f, 0.157111f, 0.212957f, -0.0475094f, -0.022831f, -0.0484267f, -0.0274939f, 0.172412f, -0.209207f, -0.143921f, -0.0758373f, 0.0208319f, 0.00440185f, -0.178954f, 0.0630531f, 0.330693f, 0.265553f, 0.147037f, -0.0787385f, 0.120561f, 0.0807057f, 0.0399533f, -0.0157093f, -0.0510586f, 0.0210257f, -0.030288f, -0.340636f, 0.132781f, -0.093856f, -0.10126f, 0.0164356f, 0.134216f, 0.17011f, 0.000248662f, -0.0926465f, 0.0720908f, -0.101917f, -0.149961f, 0.0696979f, -0.0884854f, -0.33089f, 0.0723527f, 0.120265f, -0.126239f, 0.167061f, 0.0213018f, 0.045989f, -0.0971756f, -0.019771f, -0.123787f, -0.119733f, 0.0319732f, 0.0417233f, 0.0633638f, -0.00466167f, 0.236341f, -0.0647391f, 0.105535f, -0.0863906f, -0.105984f, -0.164192f, 0.0317558f, -0.133595f, -0.0430441f, -0.0601949f, 0.000298777f, 0.0396722f, 0.0944024f, -0.00610763f, -0.106022f, 0.173497f, 0.00887457f, 0.0586682f, -0.061908f, -0.0196202f, 0.185869f, 0.0464547f, -0.00530639f, -0.0124172f, -0.188409f, -0.00718025f, 0.039711f, 0.14635f, 0.126706f, -0.086442f, -0.110295f, 0.052805f, 0.00295697f, -0.204674f, -0.11546f, 0.223917f, 0.0959105f, 0.0546703f, 0.124641f, -0.161448f, 0.0101522f, 0.226763f, -0.0427498f, 0.191674f, -0.0632704f, -0.182972f, -0.0441432f, -0.0512308f, -0.061967f, -0.0292924f, -0.162762f, -0.103227f, 0.0584062f, 0.0404154f, -0.211971f, 0.00686943f, 0.117756f, 0.116522f, -0.024622f, -0.0036848f, 0.0226339f, 0.0144224f, 0.0304933f, -0.102874f, 0.0738688f, 0.194846f, 0.135396f, 0.0105844f, 0.193651f, 0.152123f, -0.00395778f, 0.143434f, -0.034689f, 0.0640186f, 0.0554135f, -0.0558505f, -0.0909107f, 0.0927685f, -0.0303949f, -0.0205354f, 0.114344f, 0.0545853f, -0.134208f, 0.00358237f, 0.114588f, 0.157155f, -0.0318854f, 0.00547126f, 0.0216201f, 0.0330757f, 0.0386415f, -0.0607514f, -0.0891866f, -0.0187752f, -0.0370645f, -0.154668f, -0.194967f, 0.0347943f, 0.280483f, 0.0651849f, -0.128428f, -0.0676739f, -0.00454003f, 0.084975f, -0.248522f, 0.185015f, 0.00614225f, 0.098238f, 0.0433028f, 0.00815939f, 0.0311704f, -0.00204564f, 0.0629398f, -0.0221778f, 0.0515442f, 0.0257312f, -0.0454145f, -0.0501968f, -0.0120006f, -0.0190343f, -0.106432f, 0.00607422f, -0.0412403f, -0.0446174f, -0.0478726f, -0.0427575f, 0.246489f, -0.102968f, 0.0582208f, -0.104165f, 0.0400668f, 0.014437f, -0.0138579f, 0.0581698f, -0.0929395f, 0.116538f, 0.0412895f, -0.123348f, 0.0814059f, 0.0532249f, -0.106151f, -0.0419108f, -0.0113935f, 0.0177511f, 0.0357352f, -0.0817506f, 0.0434948f, 0.0532141f, -0.0306927f, 0.265686f, 0.0453649f, 0.0581179f, 0.0366967f, -0.141208f, -0.00815977f, -0.0830789f, 0.204859f, -0.00621367f, 0.00307322f, -0.0723241f, 0.0672283f, 0.0203391f, -0.0781343f, -0.227879f, -0.0442457f, -0.010527f, 0.00704726f, 0.0348143f, -0.0339351f, -0.0372408f, -0.087112f, 0.0479271f, -0.113571f, -0.0557218f, 0.128775f, 0.201475f, -0.080516f, -0.331859f, 0.111375f, -0.0394738f, -0.225174f, -0.124518f, -0.157933f, -0.041437f, -0.0283873f, -0.0288468f, 0.0592218f, 0.109361f, -0.0150971f, -0.0315717f, -0.108898f, 0.0165428f, -0.0959691f, 0.0384452f, 0.107478f, -0.00492298f, -0.0581744f, -0.184665f, 0.142382f, 0.0731144f, -0.00830998f, 0.114925f, -0.124779f, 0.0684923f, -0.0811592f, -0.0780504f, -0.0579622f, -0.019055f, -0.0990452f, 0.0276035f, 0.0489497f, -0.00250147f, -0.0486337f, -0.0383187f, -0.0443593f, 0.0837459f, 0.140006f, 0.0245313f, 0.000304445f, -0.0700622f, 0.0440712f, 0.00946433f, 0.0339257f, -0.276615f, -0.0474636f, -0.0229639f, -0.0439121f, -0.0186772f, -0.0989631f, 0.0120294f, 0.00533136f, 0.0812953f, -0.0314462f, -0.0850091f, 0.112977f, -0.0410443f, -0.027448f, 0.0210566f, -0.0078994f, 0.0412813f, -0.0489886f, 0.21545f, -0.00930001f, -0.151099f, -0.0831325f, 0.066353f, -0.0643296f, 0.0321387f, -0.0346951f, -0.0292701f, -0.0783345f, -0.124856f, -0.0102703f, -0.132177f, 0.0294567f, -0.0427863f, 0.0558241f, -0.0188021f, -0.110093f, 0.0646868f, 0.0433884f, -0.00884644f, 0.0311789f, -0.0777344f, -0.120671f, -0.0162488f, -0.0954474f, 0.0156843f, -0.0331579f, -0.0232369f, 0.124752f, -0.000279856f, 0.128386f, -0.121769f, 0.0566092f, 0.0742078f, -0.0398192f, 0.0164244f, 0.164306f, -0.0194335f, 0.0581752f, 0.061522f, 0.0471526f, 0.0885911f, 0.0682328f, 0.0758351f, -0.0176915f, -0.0340323f, 0.043451f, 0.03866f, 0.0132193f, 0.0400466f, 0.045658f, -0.0483447f, -0.0608249f, 0.00343797f, -0.171047f, -0.0411219f, 0.187405f, 0.04231f, -0.0366455f, 0.115488f, -0.00898811f, -0.0300986f, -0.0345718f, -0.171668f, -0.0541721f, 0.0169361f, 0.0533288f, 0.182428f, -0.0151695f, 0.013921f, 0.0654477f, 0.0488696f, -0.0348895f, -0.0366264f, -0.0867289f, -0.0169761f, -0.142976f, -0.00796888f, -0.0685043f, -0.0295881f, 0.0311574f, -0.139632f, 0.0482721f, 0.125134f, 0.015551f, -0.0733383f, -0.109414f, -0.0454505f, -0.111482f, -0.155397f, 0.126677f, 0.0307027f, -0.0687321f, 0.0879418f, 0.152023f, 0.0484183f, -0.20459f, -0.0664944f, -0.0721583f, 0.270675f, -0.106025f, -0.104715f, 0.204926f, 0.0429056f, 0.00388343f, -0.00490151f, -0.0324005f, -0.216527f, 0.0981729f, -0.0199886f, -0.00145679f, -0.0126298f, 0.00216933f, -0.0556443f, 0.0204358f, 0.110025f, 0.0877439f, -0.00183494f, -0.0878972f, 0.208578f, 0.00220403f, -0.142272f, 0.127144f, -0.117645f, -0.124955f, -0.0860029f, -0.0457115f, -0.0647155f, 0.0928751f, -0.0799796f, -0.0532443f, -0.0125451f, -0.0633732f, -0.0594436f, 0.0709925f, -0.0794666f, 0.144777f, -0.0208736f, -0.061925f, -0.174247f, -0.0392299f, -0.0485667f, -0.11344f, -0.046512f, -0.0402215f, -0.133076f, 0.016589f, 0.0674889f, -0.102661f, -0.102772f, 0.169138f, 0.0978251f, 0.123358f, 0.0366107f, 0.0957347f, -0.0697518f, -0.00849113f, 0.0305728f, 0.0960181f, -0.0697316f, 0.151728f, 0.0268134f, 0.114704f, 0.164727f, 0.036927f, 0.328488f, 0.0600235f, -0.118277f, 0.0253663f, -0.0468237f, 0.0822209f, 0.222825f, -0.112008f, 0.11079f, -0.115401f, -0.0867357f, 0.0081728f, -0.128598f, -0.120615f, -0.09006f, 0.0694751f, 0.0665919f, -0.179063f, 0.078613f, 0.268573f, -0.0322739f, -0.144893f, 0.0639809f, 0.130369f, -0.0606213f, 0.177919f, -0.0607391f, -0.0367321f, 0.0975188f, -0.114005f, -0.0112212f, 0.218498f, -0.100721f, -0.101711f, -0.0647242f, 0.194564f, 0.0387019f, 0.160766f, -0.156149f, -0.0256435f, -0.0579297f, 0.0887748f, 0.0556176f, -0.0764833f, -0.12842f, -0.0562378f, -0.139358f, -0.100378f, 0.144109f, -0.0705048f, -0.100538f, -0.00212276f, 0.0431923f, 0.130472f, -0.0618639f, 0.189483f, -0.0360791f, -0.0376825f, 0.0717665f, -0.164783f, 0.10659f, 0.073268f, 0.014831f, -0.0524718f, 0.18484f, -0.0431121f, 0.0370609f, 0.00173785f, 0.0990048f, 0.104179f, 0.000330428f, 0.0418977f, -0.119056f, -0.155541f, -0.172583f, -0.109356f, 0.00786865f, -0.0235639f, -0.132366f, -0.162459f, -0.0464898f, -0.064449f, 0.0371501f, 0.102439f, 0.0575241f, 0.0430013f, -0.0991595f, 0.0333473f, -0.0262157f, 0.0618064f, 0.0103651f, -0.0600279f, -0.287559f, -0.0200242f, -0.141506f, 0.0595836f, 0.0704073f, 0.0594183f, 0.0864791f, -0.0682039f, -0.0102075f, -0.119023f, -0.0263022f, 0.0146417f, -0.0422838f, -0.192355f, 0.0260355f, 0.308672f, -0.101495f, -0.116897f, 0.381016f, 0.0203502f, 0.0315785f, -0.201711f, -0.117047f, 0.163932f, -0.0120205f, 0.0396827f, -0.0354715f, -0.0433291f, -0.127322f, 0.171248f, 0.0712984f, 0.0689124f, 0.0551983f, 0.00922003f, 0.0649446f, -0.104503f, -0.115787f, -0.149317f, 0.118715f, 0.0601528f, 0.104656f, 0.137197f, 0.0752649f, 0.191448f, -0.160335f, -0.0363848f, -0.057621f, 0.0239624f, 0.000120233f, 0.0524801f, 0.0242643f, 0.0739003f, 0.02106f, -0.0552103f, -0.253228f, -0.0661767f, 0.0634584f, -0.163912f, 0.0317073f, -0.00423155f, 0.0874759f, -0.122982f, -0.173241f, 0.0966841f, -0.0468347f, 0.292551f, -0.137085f, -0.0259152f, -0.181874f, 0.107458f, -0.126261f, -0.105702f, 0.0130087f, 0.17824f, 0.172442f, 0.117171f, -0.00839591f, 0.127639f, -0.261476f, 0.0925882f, -0.0175351f, -0.0306519f, -0.121123f, 0.00314739f, 0.0800036f, 0.120087f, 0.132183f, -0.046416f, -0.0471493f, -0.0458095f, -0.019914f, 0.0595216f, 0.0107767f, -0.0543546f, 0.217739f, 0.0953798f, 0.0768289f, -0.0577285f, -0.212253f, -0.105556f, 0.179239f, 0.00387103f, -0.0688435f, 0.132602f, 0.0518036f, -0.00524985f, -0.0634067f, 0.0166808f, 0.0536065f, -0.184575f, 0.0548477f, -0.252298f, 0.100221f, -0.0783621f, 0.0900346f, 0.108276f, -0.117417f, -0.197487f, -0.215406f, -0.0295495f, -0.117262f, 0.128647f, 0.252842f, 0.152166f, -0.186105f, -0.295412f, 0.33049f, -0.0883022f, -0.129439f, 0.0478232f, 0.0749728f, -0.00945222f, 0.0501419f, 0.152675f, 0.104804f, 0.186634f, 0.065571f, -0.0409814f, -0.0924991f, 0.0906139f, -0.0410936f, -0.0854667f, -0.191613f, 0.0225714f, 0.0868202f, -0.06956f, 0.167478f, -0.103866f, -0.208128f, -0.0693691f, -0.082121f, 0.0431864f, 0.261091f, -0.131477f, -0.0647471f, -0.00599992f, 0.237834f, 0.101765f, -0.114578f, -0.076747f, -0.0259667f, 0.0719372f, -0.018509f, -0.0166732f, 0.129325f, 0.107869f, -0.102541f, 0.0851783f, 0.162111f, 0.0193563f, 0.349381f, -0.0192415f, 0.134352f, 0.0997486f, 0.208271f, 0.0933144f, -0.156567f, 0.0315177f, -0.0926332f, -0.173564f, -0.0395857f, 0.0381611f, 0.0753641f, -0.197869f, 0.0380806f, 0.0802005f, 0.0460774f, -0.0343018f, -0.0431852f, 0.0523928f, -0.0317373f, -0.244818f, 0.124173f, 0.0122251f, -0.0595913f, -0.178031f, 0.176344f, 0.0463327f, -0.0330133f, -0.190692f, -0.0843171f, -0.165424f, -0.123419f, -0.0849377f, 0.277392f, -0.0945922f, 0.109193f, -0.0687619f, -0.0517234f, 0.0262756f, -0.00385936f, -0.171712f, 0.133429f, 0.0223675f, -0.0173564f, -0.0375819f, 0.0726618f, 0.0851094f, 0.0353923f, 0.0147226f, -0.0905214f, -0.163224f, -0.123431f, -0.187494f, 0.106314f, 0.022306f, 0.00839383f, -0.131776f, 0.278541f, -0.0628944f, -0.0410549f, 0.0239085f, -0.1483f, -0.0173255f, -0.138773f, -0.0918344f, 0.0168099f, 0.271688f, -0.192951f, -0.0258675f, -0.148865f, 0.150481f, -0.0643633f, 0.102521f, -0.0172729f, 0.034159f, -0.140594f, -0.294057f, -0.128459f, 0.10172f, 0.0093227f, 0.0260863f, -0.0597261f, 0.0423376f, 0.0425805f, 0.0620244f, 0.055746f, 0.141402f, 0.0597097f, -0.0521807f, 0.161191f, 0.0655859f, -0.154435f, -0.108555f, 0.0386486f, 0.12883f, 0.025329f, -0.036073f, -0.0621356f, 0.17626f, 0.00918378f, -0.196308f, -0.15417f, 0.0260493f, -0.0738587f, -0.0295899f, 0.084057f, -0.0541923f, -0.0977631f, -0.0974485f, -0.0420708f, 0.152378f, 0.104385f, 0.109277f, -0.142928f, 0.00594023f, -0.0685139f, 0.0196666f, -0.060613f, -0.0857935f, -0.0511065f, -0.0399682f, -0.130716f, -0.0117654f, -0.204536f, 0.00278721f, -0.0720535f, 0.0440547f, -0.0993393f, -0.0247948f, 0.12783f, 0.0475228f, 0.0781283f, -8.31687e-05f, 0.172831f, -0.0436254f, 0.130422f, -0.0793351f, -0.0129091f, 0.105262f, 0.223063f, -0.119011f, -0.00462908f, -0.144839f, 0.0689316f, 0.0143267f, -0.0203696f, -0.00501418f, 0.37652f, 0.0510877f, -0.0901105f, -0.041187f, 0.11989f, 0.270334f, -0.0226299f, -0.0579631f, 0.0482354f, -0.14336f, 0.0189147f, -0.0274079f, -0.141997f, 0.0151119f, -0.142372f, 0.173321f, 0.0286623f, 0.0720909f, 0.00802592f, -0.0834247f, -0.0339945f, 0.0606656f, -0.0434917f, -0.106008f, 0.019187f, 0.0218176f, -0.106815f, 0.0565999f, 0.149686f, -0.0801611f, -0.235476f, 0.0370851f, -0.0267636f, -0.0996886f, 0.00868006f, 0.025809f, -0.0293166f, 0.11643f, -0.0291168f, -0.0195222f, 0.0327019f, 0.0867968f, -0.00839197f, -0.0823307f, -0.0420045f, 0.012286f, -0.195917f, 0.00514792f, 0.122362f, 0.101787f, -0.0261282f, 0.0653453f, -0.0425955f, 0.123444f, -0.0277134f, -0.0864239f, -0.315952f, -0.179588f, -0.0643003f, -0.0609414f, 0.13784f, -0.0612796f, 0.158435f, 0.118376f, -0.0162611f, 0.0886023f, 0.0832981f, 0.197538f, 0.0925116f, -0.00387579f, 0.016675f, 0.104589f, 0.0620936f, 0.083999f, 0.0695053f, 0.0176916f, 0.00802559f, 0.0645626f, -0.0620105f, 0.0483125f, -0.0739019f, 0.0616517f, -0.0966047f, -0.0676451f, -0.138002f, 0.111287f, -0.0204572f, -0.0705261f, 0.0258117f, -0.0204726f, -0.0542677f, 0.0689381f, 0.00427059f, -0.0505565f, 0.138734f, -0.202614f, -0.0671364f, -0.104243f, 0.0871791f, -0.00507262f, 0.00574934f, -0.0153149f, -0.103771f, 0.0582308f, -0.0977012f, -0.0148483f, -0.134246f, -0.051669f, -0.100804f, -0.107344f, -0.0636856f, -0.0315244f, -0.0166458f, -0.16368f, 0.0789394f, -0.0384609f, 0.0877197f, 0.171071f, -0.0130885f, -0.0352204f, -0.119265f, -0.082152f, 0.0596396f, -0.165343f, 0.120009f, 0.0167926f, -0.0337529f, 0.012529f, -0.21329f, -0.00655273f, 0.181085f, -0.116052f, -0.0180557f, -0.0663041f, 0.0117415f, 0.0545666f, -0.022123f, 0.156972f, -0.0372188f, -0.0167517f, -0.0420378f, 0.00165513f, -0.0891355f, 0.0920675f, -0.0561907f, 0.0673989f, -0.0838843f, -0.107287f, 0.0678449f, -0.176481f, -0.0478648f, 0.00874966f, 0.080712f, -0.154347f, -0.167843f, 0.226377f, 0.108785f, 0.242651f, 0.0434674f, 0.0953676f, 0.0516362f, -0.00132876f, -0.142552f, -0.0251196f, -0.0427252f, -0.0976042f, 0.0144663f, 0.0468852f, -0.101864f, 0.0814246f, 0.0236269f, 0.0432114f, 0.113155f, 0.0617292f, 0.0429595f, 0.080019f, 0.124269f, 0.00908094f, 0.0321062f, -0.00736935f, 0.0968813f, 0.0120392f, -0.0964606f, 0.0219762f, -0.0136738f, -0.0331951f, -0.000782731f, -0.0851854f, -0.00873251f, 0.0491611f, -0.00944683f, 0.120643f, -0.087751f, 0.0598008f, 0.149874f, -0.0662763f, 0.0535704f, 0.025784f, -0.0536845f, 0.0397909f, -0.0316334f, -0.134009f, -0.0718142f, -0.0388691f, -0.0854369f, 0.0230027f, -0.173026f, 0.00358314f, 0.0435222f, -0.119918f, -0.0477576f, -0.00252393f, 0.286541f, 0.00344499f, -0.0415572f, -0.0797426f, -0.0879029f, -0.11315f, -0.0112806f, 0.000182531f, 0.0513105f, -0.0181206f, 0.118072f, -0.0308797f, -0.0781182f, 0.0820207f, 0.180319f, 0.129176f, -0.034286f, -0.15031f, 0.0144748f, -0.000113641f, -0.239329f, -0.0744436f, -0.0469006f, -0.0999581f, -0.0352309f, -0.0118414f, -0.0999619f, 0.0501133f, -0.0445116f, 0.0955987f, -0.0419991f, -0.00749602f, 0.136087f, 0.162516f, 0.0299655f, -0.120231f, 0.178821f, -0.0441187f, 0.031595f, -0.185862f, 0.116043f, 0.0549466f, -0.0424318f, -0.0757959f, 0.0432628f, -0.157491f, 0.056485f, -0.0773396f, -0.0360608f, 0.0471877f, -0.0775222f, 0.0427453f, 0.0875697f, -0.0655478f, 0.149645f, 0.0150044f, 0.187963f, 0.0678657f, -0.00848027f, 0.0662333f, -0.0566611f, -0.137748f, -0.0429752f, -0.0677375f, 0.0514664f, 0.00971649f, -0.102857f, 0.121469f, 0.146081f, -0.100266f, -0.0354904f, 0.174599f, -0.0238105f, -0.174682f, 0.128012f, 0.0635354f, -0.00961806f, -0.253489f, 0.0234388f, 0.138262f, 0.0389039f, -0.125071f, -0.0996644f, -0.111398f, -0.065982f, -0.0116091f, -0.0161359f, -0.0393292f, -0.14276f, 0.17646f, 0.0198257f, 0.00410489f, 0.0714165f, -0.0877852f, -0.0631383f, 0.112182f, 0.0292294f, -0.02512f, 0.098132f, 0.029472f, 0.171029f, -0.0111069f, 0.0605424f, 0.00601871f, 0.0500646f, -0.157387f, 0.0875169f, 0.0778488f, 0.0487716f, -0.0548434f, -0.0606569f, 0.0716183f, 0.0301814f, -0.0370316f, 0.0417886f, -0.0559834f, -0.0386314f, -0.0581755f, -0.0676835f, 0.204157f, -0.0150896f, 0.0702397f, -0.121545f, -0.11112f, 0.0224933f, 0.0634406f, 0.0874641f, -0.0707706f, 0.187806f, -0.00907555f, -0.318629f, -0.0397532f, 0.03423f, -0.106622f, -0.200006f, 0.18732f, 0.200249f, -0.0293053f, -0.107922f, -0.0140309f, 0.0373473f, -0.0402285f, 0.0751569f, 0.0531281f, -0.0479385f, -0.0522202f, -0.130237f, -0.223958f, -0.121788f, -0.0336819f, -0.0918956f, -0.116932f, -0.0146131f, 0.0579457f, -0.15955f, 0.142427f, -0.0228994f, -0.221246f, 0.141601f, -0.0883738f, -0.0126015f, -0.0173371f, 0.0893237f, 0.11405f, -0.216945f, -0.0103281f, 0.0854599f, 0.0316539f, 0.0558794f, -0.0585748f, -0.0627219f, -0.143106f, -0.14175f, -0.132162f, -0.112281f, -0.0388875f, -0.00507678f, -0.147576f, -0.0498039f, 0.129033f, 0.10479f, 0.0618774f, 0.117347f, -0.0275733f, 0.10584f, -0.0120459f, -0.204092f, 0.0430518f, -0.0885486f, 0.0740476f, 0.200851f, -0.200256f, 0.125261f, 0.16238f, -0.116185f, -0.18738f, 0.167865f, 0.138906f, 0.0956893f, 0.187673f, -0.141259f, 0.188201f, -0.101012f, -0.0612958f, 0.0473277f, 0.149006f, -0.035172f, -0.031109f, 0.0445493f, -0.0365925f, -0.176203f, 0.044909f, -0.10288f, -0.0739587f, -0.181813f, -0.12411f, -0.0137753f, 0.108393f, 0.0101421f, 0.264752f, -0.0409984f, -0.0221865f, -0.0130339f, -0.103065f, -0.0289347f, 0.0576019f, 0.197768f, 0.0560997f, 0.0534435f, 0.101008f, -0.0435223f, 0.105236f, -0.10342f, 0.0475038f, 0.0393912f, -0.028298f, -0.0560323f, -0.127092f, 0.17987f, 0.0632378f, 0.014748f, 0.105275f, 0.00231975f, -0.139714f, -0.00646602f, 0.144668f, 0.0572366f, 0.120031f, -0.011996f, -0.00743208f, 0.260005f, 0.178199f, 0.374261f, 0.0627045f, -0.0189223f, -0.0379511f, 0.241664f, 0.242604f, -0.0239868f, -0.043532f, 0.0838631f, -0.00409633f, -0.0170357f, 0.259336f, 0.0634924f, -0.0409264f, -0.0795935f, 0.00261311f, 0.00136428f, 0.0255644f, 0.164572f, -0.0124555f, 0.145568f, -0.0988656f, -0.165437f, -0.0669144f, -0.0452021f, 0.00483137f, 0.151469f, -0.0459124f, 0.137901f, 0.0205365f, -0.0485899f, -0.141747f, 0.0356255f, 0.0878581f, 0.0853612f, 0.00223904f, -0.115627f, -0.0785892f, 0.0836176f, -0.0844706f, 0.0648622f, 0.118589f, -0.0677814f, 0.0993403f, 0.035074f, 0.133429f, -0.0615857f, 0.0304497f, -0.0956358f, -0.0636617f, -0.0429284f, -0.00711676f, 0.137061f, 0.0915563f, 0.163556f, -0.0658534f, -0.117401f, 0.0544634f, 0.0227913f, 0.0293561f, 0.0447241f, -0.0886385f, -0.11756f, 0.0180632f, -0.0142825f, 0.140454f, -0.0188141f, 0.0934555f, 0.123853f, -0.173541f, 0.00995647f, 0.209509f, 0.0626049f, 0.0332496f, 0.047578f, 0.0350307f, -0.0981176f, -0.0383663f, -0.11517f, 0.156504f, 0.0918536f, -0.245638f, -0.0744545f, -0.151795f, 0.0642212f, -0.157373f, 0.138784f, -0.0454329f, -0.175071f, -0.166928f, -0.088883f, 0.0541098f, -0.0309443f, -0.232577f, -0.0346011f, -0.0779948f, 0.0659073f, -0.106183f, -0.0678869f, -0.0783703f, -0.0582142f, 0.186362f, 0.0832643f, 0.137457f, -0.13776f, -0.149319f, 0.046275f, -0.122595f, 0.00112395f, 0.0728064f, -0.0101457f, 0.157583f, -0.160045f, -0.13546f, -0.121908f, 0.0419978f, 0.00970112f, -0.117843f, -0.185591f, 0.00297459f, -0.134561f, -0.258294f, -0.00721255f, 0.0628939f, -0.0366475f, -0.120161f, -0.211384f, -0.0712882f, -0.153801f, 0.0907521f, 0.0511065f, 0.0141603f, -0.00165614f, 0.0390162f, 0.0413212f, 0.115f, -0.0430892f, -0.0287851f, 0.272899f, 0.0765785f, 0.0415446f, -0.158133f, -0.0810378f, -0.166498f, 0.14792f, -0.113628f, 0.0139782f, -0.170232f, -0.0731202f, 0.0666899f, -0.00338551f, 0.167261f, -0.0461864f, 0.0955478f, 0.0771672f, 0.0440571f, -0.0378803f, -0.0429125f, 0.137033f, -0.0301892f, 0.00942967f, 0.197492f, -0.0622293f, -0.221761f, 0.0979519f, -0.167242f, -0.0103837f, -0.132669f, 0.0772022f, 0.0434939f, -0.0451213f, 0.02954f, 0.055186f, -0.138202f, 0.0312671f, -0.0621854f, -0.0371524f, -0.0539901f, -0.0238551f, 0.0148711f, 0.00241901f, -0.115864f, -0.104337f, 0.130148f, -0.134922f, 0.00455214f, 0.0845427f, -0.00950383f, -0.0413739f, -0.0917079f, 0.115204f, -0.00555744f, -0.24239f, -0.166194f, 0.0380564f, -0.185455f, 0.164938f, -0.0216632f, -0.116203f, 0.140987f, 0.0525661f, -0.114345f, -0.177306f, -0.0141075f, 0.171855f, 0.0898615f, -0.0611568f, 0.0879716f, -0.194189f, -0.104848f, 0.0941547f, -0.038701f, 0.0659111f, -0.0518554f, -0.0330168f, 0.0287585f, -0.00651082f, 0.0662761f, 0.00806352f, 0.0082377f, -0.0464109f, -0.0687573f, -0.0975545f, -0.0765244f, -0.0783949f, 0.179829f, -0.0137722f, 0.114944f, 0.0326751f, -0.022637f, 0.14423f, 0.0956211f, -0.072909f, -0.0921583f, 0.217016f, 0.115169f, 0.0466741f, -0.189471f, -0.154718f, 0.0776564f, 0.0537051f, -0.123595f, -0.254659f, -0.123889f, -0.0468047f, -0.12352f, 0.0500901f, -0.06152f, -0.198f, -0.233022f, -0.15735f, 0.0463037f, 0.124601f, -0.138224f, 0.151683f, 0.102943f, -0.0964914f, 0.0585922f, 0.10017f, 0.0035686f, -0.0854911f, 0.0139438f, 0.00261436f, 0.0893554f, 0.127731f, -0.124145f, 0.0648113f, 0.153496f, 0.0415574f, 0.117773f, 0.0238079f, -0.193332f, -0.00224771f, 0.120271f, -0.107684f, -0.117955f, -4.90023e-05f, 0.112132f, 0.0171313f, 0.199417f, -0.111003f, 0.00215357f, -0.0880541f, 0.00308525f, -0.115084f, -0.0171003f, -0.142729f, 0.06231f, -0.0954782f, -0.15982f, 0.138596f, 0.214486f, -0.204906f, 0.0663797f, 0.0650339f, 0.0365561f, -0.184209f, -0.221659f, 0.108344f, 0.0317744f, 0.200659f, -0.0470736f, -0.00923459f, -0.0646093f, 0.0285176f, -0.0332776f, -0.194402f, -0.112021f, -0.0892462f, -0.0671553f, -0.0874223f, 0.0718424f, 0.0198133f, 0.0481164f, 0.076927f, -0.0714335f, 0.0689308f, -0.122804f, 0.031263f, -0.045344f, 0.0153662f, 0.0044701f, -0.165244f, -0.143013f, 0.0454539f, 0.0482735f, -0.0273336f, -0.0455579f, -0.110015f, -0.0353349f, -0.203925f, -0.0492972f, 0.0916639f, -0.0938537f, -0.012797f, -0.0434991f, 0.0187638f, -0.0431778f, 0.0835229f, -0.0415282f, -0.228501f, 0.102476f, 0.0953996f, 0.0457449f, 0.037619f, -0.00922524f, -0.0580915f, -0.160781f, -0.0534165f, 0.082845f, -0.155263f, -0.120175f, 0.033087f, -0.0794291f, -0.131381f, -0.0868138f, 0.0526332f, 0.114442f, -0.0292732f, -0.0384042f, 0.0109335f, -0.0488127f, -0.0195055f, -0.0692902f, -0.0358944f, -0.0826581f, 0.0608477f, -0.0172399f, -0.114063f, 0.0354144f, -0.0440181f, -0.0922828f, -0.0056456f, -0.0650293f, 0.0825056f, 0.0773559f, 0.038112f, -0.0113818f, 0.100476f, -0.00276133f, -0.0904367f, -0.0854f, -0.0859598f, -0.00552218f, -0.192131f, 0.159736f, 0.0430786f, -0.0190715f, 0.0336662f, 0.0609501f, 0.019011f, 0.0671683f, 0.0571297f, -0.0547412f, 0.0148826f, -0.132972f, 0.129115f, 0.189161f, 0.0211867f, 0.114709f, 0.0285041f, 0.0672727f, 0.104762f, 0.0147124f, -0.0417275f, 0.118442f, 0.0326726f, 0.105945f, -0.0770632f, -0.0567968f, 0.0329003f, -0.0401055f, 0.112407f, 0.11613f, 0.0630388f, 0.0129233f, -0.161073f, 0.0416235f, -0.131081f, 0.141677f, -0.0746829f, -0.0596188f, 0.0970212f, -0.0622778f, 0.00986965f, 0.185767f, 0.0911695f, 0.0121462f, 0.107078f, 0.001755f, -0.0217311f, -0.130562f, 0.260906f, -0.0173256f, -0.162537f, 0.0834915f, -0.0292517f, -0.055128f, 0.0875698f, 0.11623f, 0.0345903f, -0.0177322f, -0.00112833f, 0.0761374f, -0.0640955f, -0.172027f, -0.184148f, -0.00545179f, 0.0459925f, 0.0867524f, 0.170711f, -0.147139f, -0.0331195f, 0.0944305f, -0.185204f, -0.205361f, -0.030355f, -0.0283341f, 0.0960795f, -0.0653357f, -0.0582933f, -0.0107968f, -0.022589f, -0.0448975f, 0.196246f, -0.178106f, 0.0249221f, -0.083551f, 0.12581f, -0.0394754f, 0.0325226f, -0.0078452f, 0.0698803f, -0.0226147f, -0.0822228f, -0.181854f, 0.00439173f, 0.0345949f, -0.0999584f, 0.0346396f, -0.0271063f, -0.130374f, -0.167964f, -0.258712f, -0.0618645f, -0.00701502f, 0.0921895f, 0.0341043f, 0.0538475f, -0.125108f, 0.0193733f, -0.0434715f, 0.0353101f, 0.277121f, 0.0592623f, 0.0189816f, -0.154821f, 0.172761f, 0.235001f, -0.186747f, 0.0238547f, -0.0319323f, -0.0365708f, 0.0805027f, -0.0203655f, -0.0475302f, 0.150473f, -0.175104f, 0.00479057f, -0.0821026f, 0.00633785f, 0.127237f, 0.0609006f, -0.0691683f, -0.112491f, -0.0664768f, -0.0607837f, 0.0800504f, -0.00941201f, -0.00241529f, -0.10801f, 0.044772f, 0.296076f, 0.118255f, -0.104813f, -0.144579f, 0.0923297f, 0.114677f, 0.0314254f, 0.0467418f, 0.288497f, -0.0121802f, 0.158934f, -0.0838067f, 0.107254f, -0.0426848f, -0.0617037f, -0.0616372f, -0.0461214f, 0.198729f, 0.0514624f, 0.0996296f, 0.162705f, -0.0100556f, -0.11649f, 0.0303966f, 0.0323071f, -0.13004f, 0.126656f, -0.104546f, 0.126266f, 0.12621f, 0.0337294f, -0.0947519f, -0.046425f, -0.0222046f, 0.0308433f, 0.0877868f, -0.0221704f, 0.0711842f, 0.0285111f, 0.0482985f, -0.0736871f, -0.133096f, -0.07317f, 0.160248f, -0.163318f, -0.151098f, -0.0780916f, 0.178619f, 0.00715931f, 0.174288f, 0.00787996f, -0.0271261f, 0.0304975f, -0.0108625f, 0.124129f, 0.00931263f, -0.0429681f, -9.54247e-06f, 0.0214335f, 0.0553056f, 0.0702616f, -0.0244689f, 0.263576f, 0.0482698f, -0.111443f, 0.166395f, 0.0391433f, 0.0688521f, 0.0770547f, -0.238573f, 0.116825f, -0.0958895f, -0.0761583f, 0.103422f, 0.10035f, 0.0623167f, -0.0637893f, -0.0652418f, -0.0718513f, -0.196415f, -0.0230704f, -0.0059926f, -0.010893f, 0.0339502f, 0.196583f, -0.00717479f, 0.171626f, -0.0102248f, 0.0582461f, -0.0601872f, -0.0557112f, -0.147593f, 0.0512078f, 0.0936588f, -0.13754f, 0.0152899f, 0.0453976f, -0.0247326f, -0.0403408f, -0.0608613f, 0.00742979f, 0.0242717f, 0.112835f, -0.181632f, -0.0788424f, 0.0363585f, 0.112224f, -0.0914427f, -0.0401584f, -0.0379234f, -0.0246882f, -0.181384f, 0.0526487f, -0.107854f, -0.022324f, 0.0123635f, -0.0548166f, -0.0688072f, -0.0351355f, 0.115107f, -0.111362f, -0.0924614f, 0.140629f, -0.0355766f, 0.147716f, 0.0152263f, 0.115965f, 0.0465183f, 0.200756f, 0.0738791f, -0.0940163f, 0.175085f, 0.00722446f, -0.0857301f, 0.113895f, 0.0364208f, 0.0215404f, -0.1375f, 0.0575548f, -0.0390911f, 0.0558103f, -0.0663824f, 0.108871f, -0.0931703f, -0.134331f, -0.0420715f, 0.131287f, -0.146803f, 0.0280493f, 0.0489207f, 0.111103f, 0.0579768f, -0.0871179f, 0.0439268f, -0.00658777f, 0.00630101f, 0.0910469f, 0.0233053f, -0.0227684f, -0.0163505f, -0.0443193f, -0.0186727f, -0.0643373f, 0.000276276f, 0.066092f, 0.148029f, 0.0787168f, -0.058589f, -0.00239631f, -0.0251022f, -0.153881f, -0.221764f, -0.0183635f, -0.0364111f, 0.00387802f, -0.0915038f, -0.0795078f, 0.0146138f, -0.0224496f, -0.0324801f, 0.27687f, 0.0338234f, -0.0216007f, 0.0973124f, -0.154696f, -0.0229234f, 0.124887f, -0.0476968f, 0.0799564f, -0.000519609f, -0.239434f, 0.0553472f, -0.06309f, -0.00573052f, 0.173531f, -0.098022f, 0.0352867f, -0.0414252f, 0.0471543f, 0.0508818f, 0.0499275f, 0.0445941f, -0.0296674f, 0.000561179f, -0.0610742f, -0.0274616f, -0.0784407f, -0.0881666f, -0.162391f, -0.0533118f, -0.102424f, -0.0131002f, -0.108541f, 0.104254f, 0.203143f, 0.00990449f, 0.0196846f, 0.105898f, -0.107348f, -0.0732295f, 0.114399f, -0.0825727f, -0.104537f, 0.0286985f, -0.0625144f, -0.152927f, -0.0863598f, 0.18529f, -0.113797f, -0.134266f, -0.0274044f, 0.0314797f, -0.137577f, -0.0374959f, -0.0297608f, 0.0546209f, 0.046978f, 0.0229953f, -0.0489208f, 0.174805f, -0.0189646f, -0.0413928f, 0.00246241f, 0.137425f, -0.0571796f, -0.0149787f, -0.127946f, -0.0541624f, -0.0830718f, -0.137364f, -0.00634447f, -0.0211722f, 0.0386132f, 0.186665f, 0.0744707f, -0.319007f, -0.0628108f, 0.13425f, -0.129092f, -0.0721268f, 0.0532858f, -0.0861576f, 0.00796289f, -0.054429f, 0.0644834f, -0.017161f, 0.037668f, 0.278681f, 0.0486733f, 0.390705f, 0.134195f, 0.0256853f, -0.0339341f, 0.308461f, 0.0587643f, -0.0665659f, 0.0990941f, -0.0515692f, -0.12138f, -0.133215f, -0.192798f, -0.0692878f, 0.297387f, -0.103321f, -0.052306f, -0.0412913f, 0.163711f, 0.0670728f, -0.187917f, -0.0147594f, -0.0986176f, 0.0776759f, 0.06032f, 0.0156706f, 0.0494195f, -0.107117f, -0.019754f, 0.0658313f, 0.205841f, -0.177322f, 0.134268f, 0.042828f, -0.115927f, 0.121783f, -0.0817582f, -0.0492569f, -0.223771f, 0.0475578f, 0.0786356f, -0.126663f, -0.0417641f, -0.158231f, -0.113341f, -0.0846545f, -0.0431141f, -0.0328966f, 0.150267f, 0.0572402f, -0.201675f, -0.048209f, -0.046892f, -0.00570172f, 0.00703831f, -0.0894843f, -0.0210144f, 0.230776f, -0.0802981f, -0.185256f, 0.029612f, 0.179204f, -0.0917192f, -0.247308f, 0.0107614f, 0.19124f, -0.0280299f, 0.107271f, -0.00859974f, -0.0319471f, 0.0160151f, -0.222615f, 0.0970834f, 0.0959185f, -0.179717f, -0.0550616f, -0.0607835f, -0.0235591f, 0.0817354f, -0.106667f, -0.244689f, 0.110452f, 0.0102961f, -0.0572926f, 0.0648863f, -0.0359975f, 0.0228157f, -0.0686272f, 0.0514154f, 0.146465f, 0.0524802f, -0.0688971f, -0.138017f, -0.0148982f, -0.0913166f, 0.0674666f, 0.00211603f, -0.0526375f, -0.125284f, 0.104466f, -0.0206661f, 0.291519f, 0.0107448f, -0.0680678f, -0.113719f, 0.0197029f, -0.101275f, -0.129529f, -0.0604754f, -0.16335f, -0.231158f, -0.0130578f, -0.0317232f, 0.0322329f, -0.00453586f, 0.0624416f, -0.105102f, -0.0235796f, 0.374459f, -0.087661f, 0.0079918f, -0.0138362f, -0.0339235f, 0.0708087f, -0.15909f, -0.133435f, 0.107819f, 0.0691092f, -0.0291095f, 0.0399937f, -0.0500814f, -0.000921411f, 0.188346f, -0.0889315f, 0.110437f, 0.000325387f, -0.209998f, 0.16691f, -0.0231203f, 0.101617f, -0.129216f, -0.0314696f, -0.00416489f, -0.226836f, -0.0908195f, -0.0493907f, -0.0480639f, -0.00456736f, -0.0668294f, -0.0358261f, 0.034808f, -0.156679f, 0.0312751f, -0.168956f, -0.0296167f, -0.060037f, -0.00694425f, -0.0155569f, 0.0514394f, -0.0616464f, 0.0691136f, 0.0655315f, -0.034689f, -0.176487f, -0.0280282f, 0.0216936f, -0.0331878f, -0.023038f, -0.0890289f, -0.0628177f, 0.0313951f, 0.0125158f, -0.224347f, -0.0254964f, -0.0696957f, -0.0190002f, -0.112839f, 0.032372f, 0.187869f, 0.113277f, 0.124366f, -0.15796f, -0.000615727f, -0.00300182f, 0.145781f, 0.168511f, -0.0826518f, -0.0491218f, 0.109613f, -0.111457f, 0.145395f, -0.221819f, 0.145807f, 0.154408f, 0.178319f, 0.0743223f, -0.0952583f, -0.083903f, 0.136151f, -0.137927f, -0.0831504f, 0.0892905f, 0.0113414f, -0.116877f, -0.169442f, -0.0485794f, 0.18054f, -0.0197228f, -0.165319f, 0.0812313f, 0.0521375f, 0.000814756f, -0.0296799f, -0.0643447f, -0.084743f, -0.156407f, -0.161219f, 0.158114f, -0.0408745f, 0.053291f, 0.0643024f, -0.0575223f, -0.0746437f, -0.0712202f, -0.0380332f, 0.152649f, 0.0184625f, -0.000916986f, 0.000926717f, -0.0414372f, 0.0521639f, 0.182823f, -0.266605f, -0.215958f, -0.131079f, 0.0249024f, -0.0790591f, -0.0497142f, -0.247361f, 0.178661f, 0.135187f, 0.0166404f, -0.0891908f, 0.0276439f, 0.157367f, 0.0591344f, 0.0811553f, 0.05251f, -0.104728f, -0.0694201f, 0.157295f, 0.0452141f, 0.241284f, 0.079854f, -0.0840028f, 0.128915f, -0.162066f, -0.0187949f, -0.0859222f, 0.106429f, -0.11273f, 0.0508307f, -0.220927f, 0.196206f, -0.00784898f, -0.045371f, -0.109372f, 3.80913e-05f, 0.202266f, 0.0418211f, -0.00114256f, 0.0383955f, -0.0465966f, -0.00422442f, 0.13767f, 0.233654f, -0.0875015f, -0.315309f, 0.100504f, -0.182546f, -0.047699f, 0.148942f, 0.0396504f, -0.0927675f, -0.00297249f, -0.0634519f, 0.219772f, -0.0475911f, -0.0630927f, 0.0772162f, -0.170135f, -0.1325f, -0.0743041f, -0.128305f, 0.19081f, -0.140869f, 0.0567847f, -0.260005f, 0.162045f, 0.10495f, -0.0124591f, -0.0717623f, -0.118114f, 0.242806f, -0.227622f, -0.0697464f, 0.286472f, 0.216655f, 0.0435297f, -0.0371498f, 0.239827f, 0.0236885f, 0.190294f, 0.00631101f, 0.0899374f, -0.0639208f, 0.200946f, 0.13838f, 0.11401f, -0.131863f, -0.0166426f, 0.0349338f, 0.010123f, 0.25147f, -0.000102205f, -0.105852f, 0.0209044f, -0.0241273f, -0.174302f, -0.0478763f, -0.00283197f, -0.262048f, 0.0428965f, -0.0777152f, -0.161448f, 0.200332f, 0.137476f, 0.0970319f, -0.196996f, 0.0017222f, 0.0403841f, -0.0224233f, -0.133317f, 0.0464715f, 0.101805f, 0.149345f, -0.147815f, -0.183293f, 0.00191849f, -0.10739f, 0.036445f, -0.140127f, -0.139964f, -0.0700102f, 0.0634619f, -0.135839f, -0.00296314f, 0.0991851f, -0.19058f, -0.00394392f, -0.0287638f, 0.135943f, 0.118319f, -0.0794847f, -0.128799f, 0.131249f, -0.0783874f, -0.010602f, -0.040197f, -0.00477971f, 0.0283748f, 0.157982f, 0.0365546f, 0.169652f, 0.0324616f, 0.192056f, 0.0643595f, 0.105254f, 0.000778912f, 0.0128367f, 0.129536f, 0.025105f, 0.0405619f, -0.15138f, -0.141799f, 0.0254469f, 0.0718215f, 0.129399f, -0.200035f, 0.0109236f, 0.0477595f, 0.0926028f, 0.123669f, 0.0508812f, -0.0869351f, 0.0563776f, 0.108376f, -0.0207821f, -0.195498f, 0.114128f, 0.0921299f, 0.0143819f, -0.120933f, 0.200227f, -0.0827428f, 0.079462f, 0.159935f, -0.0143619f, -0.156457f, 0.0638362f, 0.121692f, 0.0167657f, -0.0490192f, -0.167819f, 0.0353589f, 0.137061f, -0.0411044f, -0.0431481f, -0.0203787f, -0.00908247f, 0.0805211f, -0.104579f, 0.0981448f, 0.101961f, -0.134219f, -0.126866f, 0.228467f, 0.198996f, 0.0487628f, -0.0905758f, 0.048134f, 0.0509081f, -0.0867641f, -0.0472833f, -0.0334956f, -0.136558f, -0.0867945f, 0.131675f, -0.022487f, -0.0203695f, -0.0466888f, -0.0549011f, 0.00678534f, 0.112454f, -0.0130984f, 0.190368f, -0.0165769f, -0.00901343f, -0.0238784f, 0.193961f, 0.0735651f, -0.170978f, -0.0521773f, -0.0115027f, 0.04945f, -0.0323108f, 0.00981927f, -0.0025009f, 0.0473797f, -0.141166f, 0.188752f, -0.0267634f, 0.088489f, 0.0443806f, 0.0802809f, 0.0522196f, -0.140011f, -0.0593417f, -0.0302688f, 0.0514173f, -0.0464155f, -0.0399624f, -0.0634952f, 0.0908413f, 0.0370845f, -0.0907716f, -0.136728f, 0.181972f, 0.0909409f, 0.0301814f, 0.15967f, -0.140483f, 0.0156316f, -0.0197341f, -0.0661445f, 0.0162989f, -0.0894507f, -0.0337195f, 0.0359911f, 0.00958919f, 0.00560964f, -0.0382066f, 0.105529f, 0.0162967f, -0.0225253f, -0.0613137f, 0.0894354f, 0.0531092f, 0.0205388f, -0.0111534f, -0.0440474f, 0.0426766f, 0.0364983f, -0.0317648f, -0.00695659f, -0.0786776f, -0.0439175f, -0.088912f, -0.0476467f, 0.0311651f, -0.103673f, 0.0642939f, -0.068917f, -0.0501545f, 0.0992388f, -0.0131264f, -0.134227f, -0.0753227f, 0.146934f, 0.0176474f, -0.009104f, 0.00597439f, -0.00367152f, -0.0457336f, 0.0273985f, 0.105862f, -0.00115479f, -0.0649544f, 0.127396f, -0.201197f, 0.00485223f, -0.100815f, -0.0371139f, -0.0665923f, -0.017712f, -0.00691104f, 0.000924165f, 0.0126743f, 0.414515f, -0.0270003f, -0.163161f, 0.166457f, -0.0453855f, -0.078197f, 0.0729008f, 0.125318f, -0.0379799f, -0.0538072f, 0.0574361f, 0.182114f, 0.0272847f, 0.0585857f, -0.093347f, -0.0830179f, 0.0266952f, 0.0388422f, -0.169954f, -0.124198f, 0.0907462f, -0.00809921f, -0.0269281f, -0.0311259f, 0.0741164f, -0.082992f, 0.00509044f, 0.00770861f, 0.113448f, -0.159113f, -0.11456f, -0.0341568f, 0.0891803f, -0.105837f, -0.0683232f, -0.0441146f, 0.118626f, 0.0188163f, -0.201587f, -0.14773f, -0.0263705f, 0.146104f, -0.0232278f, 0.0485246f, 0.10745f, -0.025806f, -0.172456f, -0.00514648f, 0.123742f, 0.00783115f, -0.038849f, 0.206577f, -0.014658f, -0.0462082f, 0.111029f, 0.00701209f, -0.0128366f, 0.00871602f, 0.0134656f, 0.233564f, 0.0556181f, -0.0125417f, -0.0405824f, 0.0252436f, -0.13208f, 0.00988851f, -0.0480601f, 0.0462526f, -0.031838f, 0.029859f, -0.153134f, 0.190778f, -6.7662e-05f, 0.0720197f, 0.0489421f, -0.0875141f, -0.0731761f, -0.231295f, -0.098526f, -0.101982f, -0.134442f, 0.0190413f, 0.136532f, -0.059826f, -0.0536841f, -0.114074f, 0.0636206f, -0.0629018f, -0.0938846f, -0.0210821f, -0.0236541f, -0.00755008f, -0.00417745f, 0.082109f, 0.142575f, 0.0901318f, 0.0429022f, 0.108417f, -0.163578f, 0.0458137f, 0.00613237f, 0.121003f, -0.0221378f, 0.0776777f, -0.112675f, -0.032071f, 0.134272f, -0.106633f, 0.0998129f, 0.00459238f, 0.168956f, -0.00877299f, 0.07169f, -0.102698f, 0.0668148f, 0.0047281f, -0.00940637f, -0.0217401f, 0.159788f, 0.0475475f, -0.127924f, 0.202504f, -0.00190711f, -0.0692596f, -0.043611f, 0.047539f, 0.0608633f, -0.123902f, 0.0988885f, -0.0184537f, 0.114845f, 0.146237f, 0.177684f, -0.0507721f, -0.0567957f, -0.0111369f, -0.0132221f, -0.0858143f, -0.100504f, 0.0187795f, 0.0130319f, 0.00356253f, -0.109286f, -0.048333f, -0.0836843f, 0.0286279f, 0.0349163f, -0.232675f, 0.000454785f, 0.013165f, -0.124887f, -0.0675295f, 0.0158692f, -0.224962f, -0.093014f, -0.0423178f, 0.103871f, -0.0330725f, 0.159304f, -0.117749f, -0.0554275f, -0.0224018f, -0.0238552f, 0.0794159f, 0.0238495f, -0.0400874f, -0.0490796f, 0.191796f, -0.00990751f, 0.146299f, -0.0922891f, -0.0393043f, -0.030783f, 0.00630136f, -0.151127f, -0.0102388f, -0.000274294f, 0.104362f, 0.0137818f, 0.166739f, -0.0585365f, 0.158395f, 0.116413f, 0.228876f, 0.111029f, 0.0767478f, 0.0623983f, 0.197654f, -0.0728333f, 0.0998967f, 0.129039f, 0.0108684f, -0.0268709f, 0.107627f, -0.126806f, -0.0827939f, -0.0416438f, -0.21188f, -0.00925546f, 0.0747714f, -0.0316425f, -0.0734291f, 0.0474686f, -0.028014f, -0.0916583f, -0.0342326f, -0.0679977f, -0.181631f, 0.114198f, 0.0982111f, -0.0824245f, -0.0131381f, 0.0999745f, -0.0163024f, 0.0497297f, -0.184258f, 0.0273802f, -0.108841f, 0.0566449f, -0.025494f, -0.17219f, -0.0379827f, 0.074452f, 0.124767f, 0.0400244f, 0.00943257f, -0.122235f, -0.0068404f, -0.0130741f, 0.0788882f, 0.0039803f, 0.172376f, 0.0107881f, -0.0646843f, -0.0966103f, 0.313383f, 0.10839f, -0.00809586f, -0.0857206f, -0.208563f, -0.0270872f, -0.0262172f, -0.0159078f, 0.168985f, -0.0614882f, -0.0248964f, -0.0963716f, 0.0599537f, -0.0779404f, 0.23077f, 0.0310303f, 0.0229079f, 0.0002068f, 0.0168766f, -0.206211f, 0.0144768f, -0.0043311f, 0.0315881f, 0.0491755f, -0.0547571f, 0.0827147f, -0.12789f, -0.0205059f, 0.199039f, 0.194955f, -0.00150166f, 0.0568369f, 0.0718884f, 0.172437f, -0.217283f, -0.0627409f, 0.0370275f, -0.249745f, 0.0158529f, 0.0369033f, -0.0846672f, 0.0425214f, 0.0821221f, 0.0128707f, -0.065117f, 0.375822f, 0.023031f, 0.0715051f, 0.0616338f, -0.0549836f, -0.0552355f, 0.0720851f, -0.139631f, 0.0681049f, 0.042938f, 0.0547438f, -0.0678286f, -0.137888f, -0.115491f, 0.00198296f, -0.0774821f, 0.0338555f, 0.0368706f, 0.0597409f, -0.00354204f, 0.127479f, 0.0628862f, -0.189319f, 0.00755807f, 0.0489456f, 0.00292275f, -0.0843476f, -0.136509f, -0.0661167f, 0.0940318f, -0.019981f, 0.0663721f, -0.0240286f, -0.154961f, -0.0599533f, 0.104129f, -0.0242203f, -0.0258635f, -0.00275202f, 0.0918134f, 0.109486f, 0.018341f, -0.0309293f, 0.0168534f, -0.00821353f, 0.107883f, -0.24592f, -0.000837717f, -0.036545f, -0.0265991f, 0.02503f, 0.0486938f, 0.13992f, 0.1899f, -0.153872f, -0.0479739f, 0.0199069f, -0.0773987f, 0.0283006f, -0.178434f, 0.0107781f, -0.0638943f, -0.139499f, 0.0558973f, -0.281802f, -0.0782902f, 0.0771691f, 0.164944f, 0.0782896f, 0.084167f, 0.0418708f, 0.0132609f, -0.0103705f, -0.0367115f, 0.0881922f, -0.0414406f, -0.206141f, -0.0324491f, 0.121298f, -0.00809465f, -0.146441f, 0.0190113f, -0.087949f, -0.143865f, -0.0470227f, 0.0128976f, -0.0344639f, -0.112051f, 0.0259474f, 0.168956f, -0.0144162f, 0.0152008f, -0.110153f, 0.182615f, -0.0315186f, 0.0189584f, 0.161934f, 0.243851f, -0.013517f, -0.25134f, -0.060755f, -0.05579f, -0.148269f, 0.113505f, 0.157296f, 0.0079134f, 0.0280292f, -0.147365f, 0.167542f, -0.0276796f, -0.0106603f, 0.0446179f, 0.0705395f, -0.0100221f, 0.10475f, -0.0418887f, 0.11674f, 0.0535356f, -0.0330481f, 0.105023f, -0.172664f, 0.0494654f, 0.132339f, -0.0733995f, 0.0462003f, 0.0374029f, -0.079961f, 0.139406f, -0.121428f, 0.0507936f, 0.0442138f, -0.0156503f, -0.087947f, 0.0648804f, 0.0940891f, 0.0555613f, -0.127426f, 0.0236456f, -0.158679f, -0.0568592f, -0.127459f, -0.212561f, 0.0956605f, 0.0146248f, -0.195973f, -0.183758f, 0.0558549f, -0.0904082f, -0.219553f, 0.157146f, -0.0254857f, -0.110951f, -0.116742f, 0.00260504f, -0.150805f, 0.143118f, -0.0333035f, -0.220659f, -0.115248f, 0.00162664f, -0.0311337f, -0.0476246f, -0.0863243f, 0.0433054f, -0.102881f, -0.199569f, 0.244677f, 0.174978f, 0.124442f, -0.0644045f, 0.0171887f, -0.293035f, 0.0405528f, 0.183082f, 0.0865816f, 0.0386824f, 0.245f, 0.0905418f, 0.0272103f, 0.214562f, -0.157503f, 0.0535345f, -0.0449163f, -0.158246f, -0.168581f, 0.0295379f, -0.100295f, 0.164752f, 0.0388555f, -0.13634f, -0.0733592f, -0.109305f, 0.0141168f, -0.181135f, -0.234122f, 0.013241f, 0.0237207f, -0.0581608f, -0.000250427f, 0.19564f, 0.0784966f, -0.173584f, 0.123556f, -0.0280039f, 0.113345f, -0.0560521f, -0.0987859f, 0.0275103f, 0.139516f, 0.00208394f, -0.17965f, 0.0495006f, -0.111395f, 0.0745592f, 0.0751463f, 0.106432f, 0.0171899f, 0.207057f, 0.10703f, 0.205846f, 0.0775031f, 0.0473214f, -0.069975f, -0.01714f, -0.129414f, -0.133091f, 0.113558f, -0.134896f, 0.0593804f, 0.146059f, -0.128479f, -0.0197126f, 0.133347f, 0.0388446f, -0.111698f, 0.330463f, 0.243874f, -0.159386f, 0.177058f, 0.117558f, 0.0245334f, 0.0816636f, 0.0152559f, 0.0987801f, 0.140406f, 0.0110302f, -0.224459f, 0.170451f, 0.0161326f, 0.0498346f, -0.0136266f, -0.181408f, 0.269718f, -0.0384746f, 0.109464f, 0.0266229f, 0.157207f, 0.101096f, -0.0736883f, 0.0751484f, -0.220197f, -0.024018f, -0.0617235f, -0.169688f, 0.311284f, -0.179677f, -0.0596618f, -0.00491423f, 0.0998591f, -0.227107f, 0.131297f, -0.117318f, 0.162558f, -0.070491f, 0.00872263f, 0.175429f, -0.117928f, -0.0837086f, -0.136656f, -0.200848f, -0.0746028f, 0.178959f, 0.199425f, -0.0990034f, 0.102167f, 0.0441824f, -0.00116067f, 0.134746f, 0.167487f, 0.0509024f, 0.0369694f, 0.100858f, -0.0289228f, -0.0578143f, -0.0487702f, -0.0860809f, 0.22475f, 0.121143f, 0.122571f, -0.0104416f, 0.060792f, -0.129059f, 0.0520915f, 0.0126101f, -0.0130951f, -0.0185374f, -0.0113388f, -0.0267001f, 0.0559024f, -0.121666f, -0.0488016f, -0.0295046f, 0.107441f, 0.00174451f, 0.0632263f, -0.14926f, -0.0540381f, -0.0657222f, 0.0184273f, -0.0456667f, 0.076194f, 0.0711561f, -0.0117348f, -0.0304795f, -0.0686728f, -0.130423f, -0.0990883f, -0.103938f, 0.0533226f, -0.0137137f, 0.0435497f, 0.0516785f, -0.040652f, 0.0438491f, 0.0771463f, -0.0208579f, -0.239303f, -0.107525f, -0.0682074f, 0.0156543f, -0.0971322f, -0.0428366f, 0.0484028f, 0.08865f, 0.0533724f, -0.10921f, 0.109319f, 0.0270892f, -0.0670601f, -0.0646053f, 0.03913f, -0.137034f, 0.291208f, 0.0474949f, -0.0367559f, -0.0738358f, -0.0813298f, 0.0826276f, 0.0798461f, 0.0714479f, -0.221255f, -0.00371451f, 0.0256516f, -0.0415041f, 0.189744f, -0.00334909f, 0.131925f, -0.0332625f, -0.077546f, 0.09341f, -0.0356376f, -0.00798891f, 0.0604073f, -0.0598125f, 0.216168f, -0.0144444f, -0.0529259f, 0.00121804f, -0.112588f, -0.0941451f, 0.0790059f, 0.105308f, -0.047995f, -0.123481f, 0.0443603f, -0.039302f, -0.042159f, 0.0504107f, 0.108329f, 0.0338243f, -0.112169f, 0.181158f, 0.201836f, -0.0884297f, 0.0653175f, -0.0146952f, 0.0295464f, -0.0720329f, -0.0631056f, -0.0636293f, -0.135536f, -0.145701f, 0.224711f, -0.0315175f, 0.169971f, 0.0766209f, -0.0844676f, -0.0431654f, -0.0119861f, 0.075611f, -0.0631013f, -0.000765602f, 0.044728f, 0.132677f, -0.00284342f, 0.0317718f, 0.0678707f, 0.17908f, -0.0590316f, -0.0215287f, 0.00472909f, 0.014528f, -0.0685699f, -0.195895f, 0.0810449f, 0.0221904f, 0.154386f, -0.00900686f, 0.115897f, -0.0271013f, -0.0232802f, 0.116544f, 0.0418621f, -0.0921784f, -0.0563464f, -0.0484162f, 0.0519329f, -0.143121f, 0.09363f, -0.0297778f, -0.0580193f, -0.0484435f, 0.0858763f, 0.0894871f, -0.100559f, -0.0878753f, -0.0818229f, 0.174358f, 0.223555f, 0.0368019f, 0.044915f, 0.0813423f, -0.0269856f, 0.0839373f, 0.0904349f, -0.0659847f, -0.115166f, 0.152136f, 0.113666f, 0.0340185f, -0.231488f, -0.0116354f, -0.118813f, -0.0373864f, -0.0664359f, -0.0218861f, -0.07919f, 0.1795f, 0.0414042f, -0.0844023f, 0.119722f, -0.142461f, -0.130016f, 0.10881f, -0.0840554f, -0.046063f, -0.0451796f, -0.0129428f, 0.0511704f, 0.00130465f, 0.108195f, -0.223161f, 0.254917f, 0.112425f, 0.141885f, 0.0262222f, 0.0558979f, -0.0441661f, -0.0170955f, 0.0658064f, 0.0153096f, 0.0652113f, -0.130621f, 0.0901563f, -0.0146784f, 0.073875f, -0.000945237f, -0.0229001f, -0.045093f, 0.230931f, 0.10135f, -0.00389928f, -0.0552535f, -0.0787081f, -0.191178f, -0.0293788f, 0.259065f, 0.00728611f, 0.0505248f, 0.0154213f, 0.0506926f, -0.00975498f, 0.120341f, -0.0768563f, -0.00246625f, -0.0976841f, 0.0328982f, 0.00594512f, -0.0665664f, 0.214176f, 0.00214321f, 0.0259308f, -0.0170783f, 0.0607128f, 0.12021f, 0.147824f, 0.0736003f, 0.025867f, 0.0293581f, 0.115713f, 0.140898f, 0.025693f, 0.117893f, -0.000913607f, 0.0909594f, -0.0497442f, -0.0312011f, -0.049032f, -0.0582727f, -0.205231f, -0.0691775f, 0.0432896f, -0.026411f, 0.0718819f, 0.0936064f, -0.215402f, -0.133524f, -0.0479712f, 0.0892822f, 0.046909f, -0.103174f, 0.0344893f, -0.30482f, -0.116502f, -0.0589061f, -0.12126f, 0.207228f, 0.00527038f, 0.223259f, -0.125605f, 0.183545f, 0.182012f, -0.081797f, -0.0166547f, 0.0866011f, 0.186519f, 0.0773635f, 0.112269f, -0.0172317f, 0.1726f, 0.10857f, -0.105682f, -0.0350301f, 0.0396095f, 0.028892f, -0.20947f, 0.129281f, 0.0426331f, -0.0281781f, -0.122921f, 0.106411f, 0.00368029f, -0.107766f, -0.161204f, -0.0452934f, 0.0459254f, -0.0558729f, -0.0367081f, -0.0377182f, -0.0550161f, -0.0340824f, 0.108651f, 0.338521f, 0.0239761f, 0.0138043f, 0.0345201f, -0.0185355f, -0.050484f, -0.135852f, -0.168779f, -0.132761f, -0.0542543f, -0.124086f, 0.10546f, -0.155359f, 0.0257516f, 0.0406635f, 0.0348881f, -0.080434f, 0.0335504f, 0.158254f, -0.0512434f, -0.107318f, 0.0250145f, 0.0941005f, -0.00662469f, -0.0338793f, 0.0835387f, -0.188955f, -0.108401f, 0.00308756f, -0.0756544f, -0.0386361f, 0.159466f, -0.0565376f, -0.0494632f, -0.13963f, -0.0902879f, 0.0350545f, -0.0816707f, 0.0800867f, -0.0618379f, -0.010111f, -0.0826336f, 0.168681f, -0.0340583f, -0.0172189f, -0.0210022f, 0.0153221f, 0.130629f, -0.00188607f, 0.0250934f, 0.00436817f, -0.0427392f, -0.0306249f, -0.296703f, -0.0498819f, -0.0194393f, -0.122839f, 0.0668301f, 0.0547739f, -0.0308591f, 0.117774f, 0.129295f, -0.0341574f, -0.0123964f, 0.000349284f, -0.126208f, 0.0672056f, 0.0737735f, -0.161817f, 0.0454244f, -0.107777f, 0.0155524f, 0.000935267f, -0.00317417f, 0.152315f, -0.0828056f, -0.120002f, 0.107502f, -0.0381663f, -0.0572307f, -0.0470857f, -0.178429f, 0.0661977f, -0.0331959f, 0.0290119f, 0.0803446f, 0.011597f, -0.010045f, -0.149103f, 0.0291236f, -0.0652232f, 0.0442837f, 0.20195f, -0.120066f, -0.00400423f, -0.162132f, -0.123005f, -0.0980263f, -0.143397f, 0.113912f, -0.127244f, 0.0288498f, -0.151618f, 0.0172995f, 0.0404756f, -0.0593871f, 0.00803744f, 0.0970386f, -0.214614f, 0.0553346f, -0.0918392f, -0.140407f, 0.0270575f, -0.182503f, -0.00473286f, 0.22567f, 0.121891f, -0.0982218f, 0.0426895f, -0.0073722f, 0.244337f, -0.0519754f, -0.0797872f, -0.191296f, -0.197262f, 0.00289026f, 0.112256f, 0.0770352f, -0.0487975f, 0.182635f, -0.161003f, -0.181076f, -0.120995f, 0.18535f, -0.10649f, -0.198972f, -0.0661964f, 0.175914f, -0.011775f, 0.0927697f, -0.0958351f, -0.0365484f, 0.0203564f, -0.0268805f, 0.122081f, -0.168642f, 0.049029f, 0.128697f, -0.149909f, -0.229398f, 0.0078683f, -0.0574854f, 0.0243665f, -0.223349f, -0.0845281f, -0.0595956f, -0.141617f, -0.177887f, 0.235888f, -0.0517501f, 0.341526f, -0.115867f, 0.0180897f, 0.0973746f, 0.0439295f, 0.00298437f, -0.00134582f, 0.13996f, -0.0636645f, 0.154759f, -0.131072f, 0.153498f, 0.25978f, -0.124061f, -0.110642f, -0.10715f, -0.0096444f, 0.0276948f, -0.0433651f, 0.199738f, -0.101165f, -0.0484182f, 0.0576855f, -0.0616059f, 0.0783759f, 0.0101909f, 0.0182156f, -0.191355f, 0.0571904f, -0.100197f, -0.0226403f, -0.143614f, 0.182146f, 0.195988f, -0.0751257f, -0.0916744f, 0.058276f, -0.0234072f, -0.308278f, -0.185769f, -0.0530309f, -0.0738244f, -0.0106335f, -0.0147973f, 0.0766095f, -0.129372f, 0.000931384f, -0.0103113f, 0.121907f, 0.0589342f, 0.190108f, 0.0131306f, 0.0334487f, 0.0992618f, 0.0293415f, 0.107527f, -0.018772f, -0.0239302f, -0.0131804f, -0.00874355f, -0.0129136f, 0.0372085f, -0.0462525f, 0.105027f, -0.0264945f, -0.201694f, -0.13256f, 0.181621f, 0.124623f, -0.0615572f, -0.279795f, 0.0529854f, 0.0609231f, 0.0301686f, 0.0487897f, 0.0693119f, -0.0232511f, -0.0792529f, -0.0613394f, 0.0271618f, -0.0354183f, -0.0112234f, 0.197042f, -0.105056f, -0.0842253f, 0.0337171f, -0.0192295f, -0.122904f, -0.166398f, 0.0239052f, 0.140806f, -0.00884692f, -0.155753f, 0.212648f, 0.237205f, -0.175495f, 0.0227418f, -0.104789f, -0.0185663f, -0.0571764f, 0.116398f, -0.00405932f, 0.0618221f, 0.223195f, 0.128339f, 0.0599868f, -0.126921f, -0.153298f, 0.126844f, 0.0411213f, 0.14166f, 0.118894f, 0.033586f, 0.0626077f, -0.00259604f, -0.085476f, -0.046093f, -0.0200282f, -0.0338036f, 0.0793604f, -0.121758f, 0.151154f, 0.0634596f, 0.0198767f, -0.0775796f, -0.00131903f, -0.100848f, -0.136888f, -0.10582f, 0.0223806f, 0.199092f, -0.195725f, 0.136696f, -0.169645f, -0.123402f, 0.0629434f, 0.0558967f, 0.122203f, 0.156568f, -0.0291404f, 0.0343291f, 0.0247172f, 0.152644f, 0.146362f, 0.0727058f, -0.0384499f, 0.0446447f, 0.0312733f, 0.100494f, -0.022302f, 0.183196f, 0.0332133f, -0.0278198f, -0.185957f, 0.0806533f, -0.0185783f, -0.0989652f, -0.181222f, 0.0568272f, -0.0439467f, -0.0798321f, 0.198406f, -0.0782178f, 0.0591958f, -0.0453759f, -0.10737f, 0.107183f, 0.27601f, -0.0517921f, 0.130393f, 0.0190046f, 0.119192f, -0.0624858f, -0.0926955f, 0.223931f, 0.311951f, 0.340652f, -0.259436f, -0.183036f, 0.0195713f, 0.017371f, -0.0438444f, 0.132029f, 0.0588709f, -0.039599f, 0.109785f, 0.0600833f, 0.0789357f, 0.0494818f, -0.0100495f, -0.0511166f, -0.00673472f, 0.0292163f, -0.0484547f, -0.197386f, 0.128155f, -0.0865135f, -0.0867403f, 0.111741f, -0.0055164f, -0.102479f, -0.0221964f, -0.0660981f, 0.117122f, -0.0715778f, 0.140554f, 0.00129841f, -0.152167f, 0.0452104f, -0.0365625f, 0.0207115f, -0.16217f, -0.065822f, -0.032342f, -0.140545f, 0.0462612f, 0.0676736f, 0.0448344f, 0.0898598f, 0.0602073f, -0.0619269f, -0.0576071f, -0.118184f, -0.245553f, 0.211676f, -0.119182f, 0.0592256f, -0.0711418f, 0.112447f, -0.103422f, 0.0242035f, 0.0474947f, 0.198621f, 0.187762f, 0.0853399f, -0.0150374f, -0.102548f, -0.198253f, 0.0811173f, 0.0608583f, 0.0158218f, -0.0206419f, 0.0235011f, 0.217314f, 0.111006f, 0.0353554f, -0.0460037f, 0.0862162f, 0.20661f, 0.0535279f, -0.0331835f, 0.14823f, -0.0822406f, 0.0856996f, 0.0285143f, 0.0764397f, 0.026557f, 0.0762434f, -0.159101f, -0.098988f, -0.0290536f, 0.0800873f, -0.0964568f, -0.0465792f, 0.129521f, 0.0269407f, -0.0768848f, 0.022056f, 0.224009f, 0.036626f, -0.0436868f, -0.096401f, -0.0120864f, -0.0362676f, -0.0370509f, 0.111347f, -0.0237123f, 0.00792719f, 0.0147714f, -0.252538f, -0.0292983f, 0.099714f, 0.0680119f, 0.0132315f, 0.0239575f, 0.0406732f, -0.0500852f, -0.139969f, -0.0439363f, -0.0117416f, 0.025221f, 0.0429768f, -0.0373988f, 0.160001f, 0.045422f, 0.0846968f, 0.0538955f, -0.044817f, -0.16392f, 0.0222761f, -0.0354447f, 0.0585056f, 0.0300446f, 0.0398635f, 0.0292531f, 0.0306457f, -0.00606308f, 0.0118028f, 0.229997f, -0.0238832f, 0.0232766f, 0.0677258f, 0.180395f, -0.0908343f, -0.0548597f, -0.20693f, 0.0168721f, -0.076329f, 0.00130203f, 0.0201762f, 0.00765787f, 0.0201748f, -0.00762659f, -0.00491796f, -0.0275893f, -0.0420979f, 0.0871549f, 0.0376776f, 0.102704f, -0.029811f, 0.0511176f, 0.0982503f, 0.121849f, 0.0977183f, -0.0313644f, -0.0459486f, -0.0765624f, -0.0347204f, 0.0219708f, 0.137051f, 0.0506315f, 0.0319465f, -0.0160813f, 0.0404318f, -0.0185846f, 0.0648541f, -0.0287763f, 0.154185f, -0.0758179f, 0.093677f, -0.0216731f, -0.0571603f, 0.135543f, 0.0998727f, 0.0164403f, 0.0840794f, 0.243086f, 0.0187732f, 0.0254992f, -0.0962066f, -0.0410027f, 0.0883622f, 0.0778653f, -0.0284169f, -0.206283f, -0.139536f, -0.0131081f, -0.126733f, -0.0319294f, 0.122529f, -0.061473f, -0.195014f, 0.0308632f, -0.0740705f, -0.146732f, 0.119957f, 0.0155471f, -0.111329f, 0.0983585f, -0.0780857f, -0.080677f, 0.0111453f, -0.00173098f, 0.236139f, -0.0463781f, -0.068908f, 0.0554955f, -0.0630389f, 0.17174f, -0.0157356f, -0.171932f, -0.138273f, -0.0720761f, -0.00851068f, -0.10603f, 0.0296569f, -0.0330017f, 0.00629204f, 0.127413f, 0.190436f, 0.0880775f, 0.000553968f, 0.0168527f, -0.0785605f, 0.208059f, -0.0275865f, -0.0206185f, -0.102014f, -0.190187f, 0.0513159f, -0.180744f, -0.0685946f, -0.0452824f, -0.0822562f, 0.042981f, 0.0476865f, -0.0819763f, 0.143979f, -0.163323f, -0.0253647f, 0.0575582f, -0.0645568f, 0.0483417f, 0.0675447f, -0.00839852f, 0.0283811f, -0.0430721f, 0.156608f, -0.0394592f, -0.0850802f, 0.0949926f, -0.0316568f, 0.102085f, 0.0762471f, -0.0376593f, -0.0294815f, -0.0561311f, -0.0271355f, -0.0196424f, 0.111839f, -0.0714044f, 0.0656503f, 0.0108929f, -0.0633561f, 0.150671f, -0.108259f, 0.181258f, 0.0757105f, 0.0576942f, 0.000707021f, 0.094338f, 0.00515522f, -0.0576437f, 0.123304f, 0.0965583f, -0.0752794f, 0.033381f, -0.0840223f, -0.137126f, 0.141156f, 0.083089f, 0.00754125f, -0.0656824f, -0.194302f, -0.0249457f, -0.0142099f, 0.109732f, -0.137274f, 0.00989049f, -0.12111f, -0.158671f, 0.0634995f, 0.0255671f, 0.0918527f, -0.209962f, -0.00197824f, -0.179031f, 0.0676549f, 0.149909f, 0.200201f, -0.157617f, -0.0289663f, -0.0673766f, -0.102678f, 0.0480259f, 0.136486f, -0.158628f, -0.0268523f, -0.140757f, 0.0536268f, -0.075775f, -0.0839551f, -0.0206189f, -0.190879f, -0.202537f, -0.0115034f, 0.165153f, -0.221787f, 0.0286256f, 0.0123277f, 0.0476282f, -0.0877898f, 0.0385005f, -0.0759557f, 0.184608f, -0.0203073f, -0.0457909f, 0.113604f, -0.138914f, -0.0164082f, 0.162815f, 0.149926f, -0.14878f, -0.237907f, -0.0166666f, 0.0153767f, -0.0400811f, 0.164623f, 0.0776581f, 0.0169995f, -0.0311444f, 0.00367238f, 0.0288446f, 0.077372f, 0.0862508f, -0.0442382f, -0.228454f, 0.166056f, 0.210111f, -0.131954f, 0.0439284f, -0.103304f, -0.0988605f, -0.00767066f, -0.176388f, -0.139602f, -0.0629591f, -0.0924081f, 0.00953825f, 0.200071f, -0.138427f, 0.199769f, -0.142799f, 0.186382f, 0.0392122f, 0.00779626f, -0.0282016f, -0.0190245f, 0.100765f, -0.059318f, 0.0491137f, 0.0315677f, -0.112111f, 0.00749788f, 0.157242f, -0.00841743f, 0.0588866f, -0.119508f, 0.0794771f, 0.36885f, 0.0843232f, 0.0384396f, 0.0664627f, 0.0702518f, 0.0825097f, 0.0433584f, -0.0090733f, -0.186277f, 0.0753382f, -0.0456974f, 0.0395686f, 0.13762f, -0.0479661f, 0.178758f, 0.0873902f, 0.111238f, 0.0324985f, -0.0591057f, -0.0559873f, 0.0342119f, 0.0470527f, 0.158394f, 0.0431284f, -0.0999001f, 0.0750414f, -0.0505962f, 0.0976391f, 0.0743706f, -0.0583384f, -0.0752209f, -0.0190878f, -0.0484888f, -0.0418645f, 0.0527418f, -0.0249879f, -0.070567f, -0.0284603f, -0.00651478f, -0.0117574f, 0.13891f, 0.106152f, -0.0527322f, -0.0342987f, 0.0527522f, 0.0335557f, 0.038141f, 0.00406347f, 0.0628785f, -0.0575257f, 0.0766923f, 0.141667f, 0.1396f, 0.047755f, -0.0237702f, -0.0904533f, 0.0328482f, 0.0636368f, -0.0395178f, 0.113098f, 0.022469f, -0.0727469f, -0.153243f, 0.0387205f, -0.143586f, -0.111324f, -0.0905979f, -0.0224487f, 0.0119966f, -0.0406988f, -0.131298f, -0.0261583f, -0.00325051f, -0.314187f, -0.0522406f, -0.0118809f, 0.0899378f, 0.114064f, 0.0190758f, -0.0856736f, 0.0318451f, -0.031941f, -0.0172839f, 0.0140361f, -0.0913986f, -0.043141f, -0.113025f, 0.11828f, -0.00559823f, 0.0304073f, 0.0322956f, 0.150164f, 0.0265469f, -0.057112f, -0.0415541f, -0.0772209f, -0.0833868f, -0.0544566f, -0.0549371f, 0.00665057f, 0.0399956f, 0.0650542f, 0.103276f, -0.0665049f, -0.135482f, 0.0778846f, 0.110765f, 0.0292423f, 0.116676f, -0.0894266f, 0.00573156f, -0.0157364f, 0.0342061f, -0.0560525f, 0.0180574f, 0.116525f, -0.0260737f, -0.0169348f, -0.0697943f, 0.0564246f, -0.0586953f, -0.0703137f, -0.0279723f, 0.213893f, -0.0429402f, -0.0424432f, 0.0895904f, 0.0552833f, 0.0214927f, -0.0631226f, 0.116176f, -0.108939f, 0.0445948f, 0.0390406f, -0.0542699f, 0.00122358f, 0.0864111f, -0.126678f, 0.0653219f, -0.0103057f, 0.07421f, 0.092933f, 0.0794604f, -0.0924817f, -0.0846859f, -0.0357324f, -0.0988081f, 0.049262f, 0.0257177f, -0.0679635f, -0.0268937f, -0.0709763f, -0.0206696f, -0.174446f, -0.084452f, -0.0229033f, -0.170671f, 0.000889113f, -0.155493f, -0.0131585f, 0.0922471f, 0.041241f, 0.0212721f, -0.0727152f, 0.111656f, 0.00544274f, 0.24501f, -0.0799469f, -0.0562727f, -0.080453f, 0.017546f, 0.0122895f, 0.0457269f, 0.128885f, -0.0307477f, -0.103601f, -0.00339232f, -0.127416f, 0.134614f, 0.037045f, 0.0410101f, -0.0763202f, -0.103164f, -0.0416779f, 0.0447771f, -0.0584393f, 0.0676983f, -0.014164f, 0.0232411f, -0.0739589f, -0.0200838f, -0.0180048f, 0.225943f, -0.0232131f, -0.179f, 0.0140535f, -0.286809f, 0.233097f, -0.0879864f, 0.037645f, -0.0183789f, 0.0720031f, -0.170822f, -0.0833144f, -0.0553755f, -0.0742986f, -0.0617082f, 0.0459897f, -0.0399081f, -0.0470299f, -0.0551672f, 0.188829f, 0.019478f, -0.10236f, -0.0327415f, -0.0381111f, 0.119797f, -0.0488676f, 0.101414f, -0.159815f, 0.0705924f, 0.0349121f, 0.0373799f, -0.178667f, 0.138209f, 0.110542f, -0.174404f, -0.17464f, 0.166571f, -0.0121662f, -0.0870231f, -0.061718f, -0.142414f, -0.000758585f, -0.200169f, -0.114677f, -0.0582504f, -0.213833f, 0.160396f, -0.00286013f, 0.102106f, -0.0777483f, -0.109559f, -0.0388061f, 0.0532903f, -0.0496615f, -0.0445516f, 0.0702605f, 0.116947f, 0.129414f, -0.00982448f, -0.0425645f, -0.15483f, -0.0579357f, -0.107975f, -0.0465883f, -0.0938225f, -0.0531015f, -0.0885493f, -0.0676927f, -0.0107138f, 0.0605663f, -0.0880609f, 0.10344f, 0.112432f, -0.0815141f, -0.0311507f, 0.0401676f, 0.0711547f, 0.111688f, 0.0810287f, 0.112536f, 0.0310261f, -0.0169011f, -0.0963738f, 0.0164862f, 0.0118147f, -0.0841018f, 0.137702f, -0.0338583f, 0.0148153f, 0.0948767f, -0.058754f, 0.0785024f, 0.0290725f, -0.0866536f, 0.00165672f, 0.0682733f, -0.136052f, 0.116129f, -0.129619f, 0.0527428f, 0.0362558f, 0.0102032f, -0.0808005f, -0.0532755f, -0.164428f, 0.082863f, -0.0318094f, 0.11817f, -0.0201778f, -0.303328f, 0.0504665f, -0.0654313f, 0.177544f, 0.208142f, -0.0337867f, 0.0820177f, -0.158895f, -0.0955528f, 0.0794384f, 0.0478359f, -0.00931648f, 0.0697159f, 0.0140308f, 0.231375f, -0.182328f, 0.0536687f, -0.128564f, -0.136519f, 0.0347536f, 0.0531178f, 0.00134852f, -0.0460661f, 0.0796649f, 0.138327f, 0.0136171f, 0.0715068f, -0.0715547f, -0.0769842f, 0.0749728f, -0.10121f, 0.0818399f, 0.199031f, 0.0129772f, -0.166781f, 0.0695036f, -0.0102762f, 0.0564097f, -0.139946f, 0.000255183f, -0.0687051f, 0.0634171f, -0.188923f, -0.0882222f, -0.0664683f, -0.0598156f, -0.154719f, 0.161646f, 0.0757348f, 0.103944f, -0.0338646f, -0.129392f, -0.0696784f, 0.0119521f, -0.098639f, -0.0227263f, -0.100015f, -0.190515f, -0.21073f, 0.184658f, 0.133339f, 0.175968f, 0.172456f, -0.126761f, -0.0310004f, 0.0634915f, -0.119033f, -0.12343f, 0.159543f, 0.130565f, 0.0990998f, -0.152095f, -0.0386603f, 0.0491107f, 0.0354276f, -0.227934f, -0.0539479f, -0.0532082f, -0.0603506f, 0.0252239f, 0.00358131f, -0.116197f, 0.0107348f, 0.0806616f, 0.167111f, -0.0680506f, -0.0250214f, 0.137187f, -0.113317f, -0.0615101f, 0.00837745f, -0.100031f, 0.0152554f, 0.0955054f, 0.0810245f, -0.012307f, 0.11196f, -0.0226493f, -0.117786f, -0.0348664f, 0.0390756f, -0.112188f, -0.0409792f, -0.0971114f, -0.0715133f, 0.0499454f, -0.025789f, 0.00958808f, 0.0163871f, -0.143392f, -0.00925492f, -0.085629f, -0.0751856f, -0.172675f, 0.0474134f, -0.0709521f, -0.242576f, 0.0519262f, 0.0946062f, 0.0182464f, -0.0354091f, 0.0455575f, -0.10802f, 0.134922f, 0.0208851f, 0.00612104f, 0.130855f, -0.00661185f, -0.255668f, 0.166853f, -0.0813256f, 0.0426925f, -0.0782175f, 0.208402f, -0.0657823f, -0.0623562f, -0.118639f, 0.0671225f, 0.0078729f, 0.0836361f, -0.0569561f, 0.0654799f, -0.0796234f, -0.122299f, -0.0114911f, -0.0626371f, 0.0324767f, -0.134542f, 0.0923991f, -0.0643729f, -0.0522379f, 0.214352f, 0.00147424f, -0.0890104f, -0.128234f, 0.0386131f, -0.238229f, -0.0991457f, 0.0594389f, 0.0018166f, -0.119478f, -0.140441f, 0.0796059f, 0.0438927f, 0.00959761f, -0.156823f, -0.0583221f, -0.0702066f, -0.0939501f, 0.0345534f, -0.0395236f, -0.112975f, 0.0729638f, 0.222773f, 0.0117284f, 0.0429016f, 0.0745639f, 0.0890457f, -0.171488f, 0.0297169f, 0.0540924f, 0.0855248f, -0.0163212f, 0.106623f, -0.0997012f, 0.0379339f, 0.00518556f, -0.187596f, 0.0855584f, -0.0177233f, -0.0279804f, 0.055055f, 0.110896f, -0.156056f, -0.061372f, -0.0231307f, 0.142613f, 0.0872188f, -0.0605097f, 0.185599f, -0.0636657f, 0.0226767f, -0.194751f, 0.177403f, 0.12863f, -0.0889569f, -0.0685758f, -0.0498087f, -0.0653106f, 0.125297f, -0.097385f, 0.102277f, 0.174343f, 0.0394044f, -0.130061f, 0.064107f, -0.0690737f, -0.0640012f, 0.021487f, -0.00434838f, -0.000169253f, 0.266613f, -0.0914573f, -0.227166f, 0.00352678f, 0.0236524f, -0.0316966f, -0.193241f, -0.132899f, -0.139894f, 0.0785483f, -0.00248197f, -0.117776f, -0.123352f, 0.224552f, 0.0253722f, -0.0453879f, -0.0799346f, -0.0225114f, 0.0406871f, -0.117791f, 0.00280593f, 0.101872f, 0.0848043f, 0.0551986f, -0.0225315f, -0.124147f, 0.062001f, 0.00810538f, 0.225736f, 0.018836f, 0.0355061f, -0.0514419f, 0.201055f, 0.00615471f, 0.0477251f, -0.0627184f, -0.0321539f, 0.0403812f, 0.176172f, -0.0404007f, -0.125214f, -0.0275775f, -0.0408288f, -0.0387744f, -0.0916962f, 0.125876f, -0.228804f, -0.0705193f, -0.0729973f, 0.000444741f, -0.0668246f, -0.157045f, 0.0712043f, 0.0830536f, 0.0371048f, 0.000328324f, -0.0697606f, 0.201089f, -0.0806797f, -0.0612805f, 0.0547568f, -0.09514f, -0.00624364f, 0.0334821f, -0.044734f, -0.0819654f, -0.0141525f, -0.101042f, 0.13922f, -0.0929884f, 0.0275101f, -0.232585f, -0.163195f, -0.0174196f, -0.0153303f, 0.0350941f, 0.0502942f, -0.0497759f, -0.000352678f, 0.0121088f, -0.0604609f, -0.100721f, -0.0156193f, -0.139873f, -0.169039f, -0.132867f, 0.0552152f, -0.275332f, 0.0221492f, 0.0866581f, -0.0852211f, -0.0695569f, -0.0943159f, -0.0921359f, 0.0524857f, 0.0967232f, 0.0857577f, 0.0679865f, -0.281559f, -0.109079f, 0.22921f, -0.0420555f, -0.0572861f, -0.0186063f, -0.0910432f, -0.0854001f, 0.0527401f, 0.138555f, 0.0030734f, 0.0314459f, -0.211942f, 0.0682693f, -0.00135742f, 0.128553f, -0.0454142f, -0.0915908f, -0.0620917f, -0.0072805f, -0.160305f, 0.0289336f, 0.0361922f, 0.0240897f, -0.115386f, 0.0704546f, 0.205634f, -0.0691862f, 0.0357803f, 0.330031f, -0.0969182f, 0.170105f, -0.0875835f, -0.0406258f, -0.00684913f, 0.0110686f, 0.0343778f, -0.0152793f, -0.0909609f, -0.170371f, -0.0573121f, 0.0792146f, -0.0153525f, 0.0559821f, -0.00709215f, -0.198025f, 0.00689018f, 0.0960659f, -0.0808221f, -0.101394f, -0.0705208f, -0.228258f, -0.0125169f, -0.151082f, 0.0828199f, 0.0647689f, -0.0986185f, 0.0181983f, 0.147829f, 0.0641151f, 0.0417444f, -0.0650717f, 0.125126f, -0.213462f, -0.0747042f, -0.0485789f, 0.163408f, -0.0628557f, 0.429808f, -0.0512089f, 0.0237001f, 0.238621f, -0.151233f, -0.0135743f, 0.152663f, -0.0790682f, -0.0756359f, -0.0442406f, -0.112992f, -0.0130686f, 0.0237262f, -0.257323f, -0.160815f, -0.119074f, 0.0675768f, -0.147935f, 0.141203f, -0.091894f, 0.162825f, -0.0895035f, -0.00553794f, -0.0247469f, 0.221152f, 0.0645118f, 0.0702426f, -0.0240891f, -0.0379216f, 0.102845f, -0.0766981f, -0.110399f, 0.0445826f, -0.083043f, -0.0455321f, 0.0619897f, -0.221404f, -0.0232724f, -0.0848706f, -0.0378803f, 0.0272657f, -0.0631143f, 0.363289f, 0.102584f, -0.0353445f, -0.130634f, -0.0403633f, 0.0217013f, 0.0401069f, -0.0611199f, -0.0826089f, -0.0361589f, -0.0931585f, -0.10237f, -0.0354554f, -0.141341f, -0.260838f, -0.178692f, -0.0713417f, -0.0849551f, 0.0123619f, 0.126027f, 0.00660663f, -0.105145f, 0.11006f, 0.037166f, -0.0566435f, -0.0644895f, 0.0972711f, 0.0956306f, -0.0335744f, 0.0282288f, 0.130276f, -0.160835f, -0.0755937f, 0.174234f, 0.111995f, -0.0971378f, -0.00215627f, -0.128775f, -0.0202466f, 0.0568689f, 0.13608f, -0.252787f, -0.0193099f, 0.0737814f, 0.00393894f, 0.188269f, -0.16167f, 0.0393293f, 0.095986f, 0.0433346f, 0.178948f, 0.0106335f, 0.0240476f, -0.0676203f, 0.0327345f, -0.131386f, 0.171985f, -0.0868872f, 0.0173864f, -0.0482051f, -0.202543f, -0.0412316f, -0.115616f, 0.00243262f, -0.11614f, 0.0395698f, -0.0773086f, 0.0263157f, 0.0598922f, -0.261304f, -0.0261998f, 0.030043f, -0.033673f, 0.00197624f, -0.0938534f, 0.115334f, -0.298898f, -0.20221f, -0.173171f, 0.0898405f, 0.0275652f, -0.0353344f, -0.116251f, -0.0709226f, 0.0633522f, 0.120721f, -0.0182031f, 0.00476753f, 0.108439f, 0.0874914f, 0.154198f, 0.112176f, 0.0103608f, -0.139292f, -0.148375f, 0.118512f, -0.180723f, 0.189848f, -0.117017f, -0.0514163f, -0.0669278f, 0.0997118f, -0.0823594f, 0.208573f, 0.0210703f, -0.188416f, 0.00949946f, -0.105656f, -0.059449f, -0.0765154f, 0.087212f, -0.00624031f, 0.00586885f, -0.0394254f, -0.132045f, -0.0677823f, 0.0444551f, -0.0333993f, -0.12278f, -0.21734f, 0.203189f, -0.078086f, 0.00304579f, -0.0121421f, 0.0683984f, 0.0813542f, -0.029381f, 0.0984738f, 0.00910106f, -0.10764f, 0.158223f, -0.063188f, -0.0669215f, 0.0511873f, -0.0482472f, -0.00469144f, -0.13053f, -0.0745567f, -0.0581981f, 0.0675884f, -0.053229f, -0.0648344f, -0.0965036f, -0.214993f, 0.0113783f, 0.0600866f, 0.0389662f, 0.252527f, 0.0514398f, 0.131794f, -0.173517f, 0.221179f, 0.140768f, 0.0982047f, -0.0398004f, 0.125532f, -0.0756626f, 0.218193f, 0.0425157f, -0.15683f, 0.0884478f, 0.0279074f, 0.0502286f, 0.0887501f, -0.139576f, 0.0501675f, -0.0710789f, -0.0301994f, 0.122452f, 0.0708251f, -0.0860295f, 0.00367192f, -0.101802f, 0.0305107f, -0.0720888f, -0.178428f, -0.0133916f, 0.170775f, -0.153901f, 0.00386479f, 0.0540182f, -0.082807f, 0.275638f, -0.0265907f, -0.0935591f, -0.254062f, -0.170125f, 0.153272f, -0.0595525f, 0.189199f, -0.0412679f, -0.0435707f, -0.0240571f, -0.0348424f, 0.24594f, -0.0695811f, 0.0258416f, -0.0223769f, -0.0769073f, 0.219958f, -0.136864f, -0.248979f, -0.160755f, -0.0231402f, -0.00912104f, 0.0816889f, -0.179416f, 0.0548012f, 0.196576f, -0.0355539f, -0.068354f, -0.153855f, -0.0428235f, -0.0377206f, -0.151677f, -0.180492f, 0.0350362f, -0.239765f, -0.00616697f, 0.116762f, 0.0484303f, -0.0380958f, -0.067451f, -0.0256124f, -0.0474475f, -0.0100344f, 0.117691f, -0.118099f, 0.243411f, -0.0736347f, 0.0719514f, -0.0452448f, 0.0416888f, 0.0460943f, 0.0371869f, 0.179733f, -0.104193f, 0.017411f, 0.219861f, 0.170386f, -0.0782723f, -0.083783f, 0.0244886f, -0.239765f, -0.0284669f, -0.0382527f, 0.0323414f, 0.210958f, -0.0900804f, -0.0884698f, -0.10514f, -0.0118076f, -0.0124672f, 0.230389f, -0.123019f, 0.0663554f, 0.282826f, -0.071283f, 0.012866f, -0.125284f, -0.0300197f, -0.00843347f, -0.0429821f, -0.0500627f, -0.0472293f, 0.288629f, -0.0823752f, 0.0382232f, 0.0531546f, 0.00594331f, 0.174297f, 0.108872f, -0.0479389f, 0.101296f, -0.0238227f, 0.204071f, 0.0215766f, 0.0960229f, 0.0626856f, 0.105706f, 0.0890824f, -0.0466957f, -0.118343f, -0.0950366f, 0.0882661f, 0.140353f, -0.0994391f, 0.101717f, 0.00136454f, 0.114412f, 0.00388069f, -0.0345548f, 0.21324f, 0.155772f, -0.0825762f, -0.117626f, 0.121485f, 0.0241844f, 0.33102f, 0.229537f, -0.0533618f, 0.158672f, 0.0832003f, 0.0977604f, -0.0785969f, -0.0248428f, -0.0999092f, 0.0292406f, 0.0945156f, 0.0111528f, 0.0784307f, -0.0545639f, -0.156994f, -0.00525844f, -0.08012f, 0.00258813f, -0.142944f, -0.0916161f, -0.0124763f, 0.0750093f, 0.136818f, 0.160391f, 0.112209f, 0.0654434f, -0.10661f, 0.0959505f, 0.0265162f, -0.0714699f, 0.0529008f, -0.0212695f, -0.0997586f, -0.0446994f, -0.239139f, 0.225894f, 0.0848126f, -0.154172f, 0.00951303f, -0.0313808f, -0.224285f, 0.0513135f, 0.113867f, 0.179863f, 0.163637f, 0.301433f, -0.137814f, -0.0640579f, 0.0345629f, 0.212558f, -0.000670405f, -0.0261212f, 0.0204773f, -0.00371466f, -0.155961f, 0.120227f, -0.0489021f, 0.19582f, 0.0474889f, 0.0531352f, 0.0221304f, 0.125078f, 0.17077f, -0.204195f, -0.17095f, 0.166797f, 0.100911f, -0.000818816f, 0.131896f, 0.127825f, -0.253114f, 0.113831f, -0.0878768f, -0.109087f, 0.0855342f, 0.0338078f, 0.152025f, -0.00299431f, 0.132269f, 0.122959f, 0.134266f, -0.118799f, 0.169676f, 0.0333233f, 0.0039081f, -0.0534117f, 0.0612528f, 0.0716698f, 0.0614248f, 0.0355402f, 0.113539f, 0.105603f, -0.0643955f, -0.00209052f, 0.133628f, 0.0357671f, 0.0409938f, -0.168812f, 0.160287f, 0.0020532f, 0.173468f, 0.140259f, -0.0610538f, 0.0539117f, 0.012027f, 0.0529635f, -0.159245f, 0.142101f, -0.371506f, -0.0182945f, -0.00221797f, 0.11213f, -0.0232535f, 0.0116496f, -0.0115313f, -0.0320985f, 0.0793212f, 0.0330355f, -0.12104f, -0.145351f, 0.0432544f, 0.0604131f, 0.108092f, 0.145133f, -0.00609193f, 0.127751f, -0.07581f, -0.0599515f, -0.123458f, -0.12779f, -0.0380214f, 0.0233056f, 0.27284f, 0.154509f, 0.0500951f, -0.0813052f, 0.0148169f, -0.181731f, 0.00355396f, -0.0454687f, -0.130174f, -0.137809f, -0.231089f, -0.0419018f, 0.101864f, 0.158209f, -0.0583459f, 0.0865134f, 0.144667f, -0.111813f, -0.0137877f, 0.155668f, -0.0781032f, -0.236225f, 0.237482f, 0.166867f, -0.132796f, -0.0186456f, -0.108217f, 0.00854719f, 0.010291f, 0.187918f, -0.0981769f, -0.220473f, -0.228089f, -0.0451766f, -0.143609f, 0.198165f, -0.171026f, 0.00901806f, 0.040419f, -0.055644f, -0.00693415f, 0.083718f, 0.0336387f, 0.0109033f, -0.0342641f, 0.0667828f, -0.202171f, 0.141909f, 0.209327f, 0.20817f, 0.017122f, -0.0263047f, 0.114455f, 0.135843f, -0.0749143f, -0.0408383f, -0.0194805f, -0.0461264f, 0.00829208f, -0.0095157f, -0.0885479f, -0.200166f, -0.0369127f, -0.0332497f, 0.0323285f, -0.0171618f, 0.119675f, -0.00029999f, 0.137363f, 0.0820268f, 0.010711f, 0.0132903f, 0.0903394f, -0.0779783f, 0.0390443f, -0.057719f, -0.0807863f, -0.20436f, 0.00123914f, -0.114104f, 0.262281f, -0.0936981f, -0.0189392f, -0.18156f, -0.08961f, 0.0109049f, 0.0248038f, 0.0216518f, -0.00361904f, 0.0980689f, 0.107068f, 0.0615469f, -0.105846f, -0.0500832f, 0.0432399f, 0.10598f, 0.127932f, 0.322835f, 0.0642242f, 0.0852896f, 0.0620745f, 0.0464968f, -0.0522037f, -0.137464f, 0.0194948f, 0.120896f, 0.0487548f, 0.0703627f, -0.0931085f, 0.0774039f, -0.192497f, -0.180975f, 0.124261f, 0.160956f, -0.214382f, -0.11093f, 0.0230257f, -0.167645f, 0.160615f, 0.0969666f, 0.474604f, 0.0734711f, 0.0918349f, 0.097029f, 0.0562665f, 0.0613114f, -0.0319179f, 0.0391389f, 0.118872f, 0.153121f, -0.1718f, -0.123779f, -0.22052f, -0.00791531f, -0.130195f, -0.0722854f, -0.164665f, 0.0818265f, -0.0754405f, -0.238688f, 0.126473f, -0.141479f, -0.135096f, -0.0934329f, 0.0409178f, -0.105058f, 0.0921904f, -0.0649933f, 0.0437428f, 0.239095f, 0.0855386f, 0.156129f, 0.144582f, 0.131859f, 0.0494269f, 0.00399257f, -0.102725f, 0.109418f, -0.0976038f, 0.029592f, -0.0803357f, 0.0332888f, 0.0135279f, -0.0376035f, -0.104489f, -0.0588346f, -0.0621302f, 0.0170257f, 0.14123f, 0.0720969f, -0.225001f, -0.0372406f, 0.0541565f, 0.0693892f, 0.0220363f, -0.200723f, -0.0539563f, 0.0936743f, 0.0406363f, 0.105434f, -0.0203601f, -0.0541563f, -0.0426418f, 0.124177f, -0.0131488f, 0.150464f, 0.0833359f, 0.0450222f, 0.0314079f, -0.01143f, 0.0170143f, -0.0096197f, -0.0926423f, -0.0400114f, 0.0182326f, -0.0767876f, -0.0575258f, 0.0230028f, -0.0722312f, 0.0867484f, 0.142546f, 0.0358314f, -0.00564012f, 0.158125f, 0.0316488f, 0.0792211f, -0.00918299f, -0.027229f, 0.0476883f, -0.0782907f, 0.118905f, 0.158375f, 0.0377404f, 0.0867184f, 0.0211231f, 0.0439797f, -0.0223485f, 0.0230338f, -0.194693f, 0.047211f, -0.0376436f, 0.0513319f, 0.0937537f, -0.0898772f, -0.0924848f, -0.069662f, -0.0154857f, 0.0125878f, 0.00919046f, 0.0762791f, 0.113009f, -0.185572f, 0.0130984f, 0.0168258f, -0.131153f, -0.064843f, -0.0918491f, 0.0109851f, 0.00291466f, 0.139062f, -0.211438f, -0.0329583f, -0.210929f, -0.0543158f, 0.0119124f, 0.11222f, 0.00195763f, 0.149138f, 0.0224898f, 0.0840232f, -0.0238051f, 0.0662585f, -0.00413437f, 0.0399084f, 0.0478361f, 0.0598074f, 0.135149f, 0.116145f, 0.0851012f, -0.102463f, -0.122151f, 0.0269297f, 0.0938684f, 0.0576472f, -0.0557223f, 0.0642813f, -0.0563416f, -0.119281f, 0.0668697f, -0.129793f, 0.23851f, -0.0808462f, 0.182233f, -0.0576672f, 0.0998098f, 0.0573979f, 0.0235097f, -0.0174418f, -0.0192348f, 0.0300065f, 0.0618481f, -0.0302787f, 0.0752997f, 0.0620585f, -0.0474116f, 0.0758717f, -0.04708f, -0.00939585f, -0.0318276f, 0.089753f, -0.0433422f, 0.0341702f, -0.150238f, 0.0679419f, 0.0368567f, 0.0332021f, -0.0299773f, 0.283823f, 0.160212f, 0.114144f, -0.0849986f, -0.00895743f, 0.115991f, -0.028985f, -0.036293f, -0.0961026f, 0.019982f, -0.0495362f, -0.0543431f, 0.0164818f, 0.0271541f, 0.0494615f, 0.0257354f, 0.0250185f, -0.0340383f, 0.000941493f, 0.0354258f, 0.00683021f, -0.0195878f, 0.162006f, -0.0508611f, 0.0784793f, -0.127664f, -0.154193f, -0.0299883f, 0.0311503f, -0.163857f, 0.0627798f, 0.0220956f, -0.0139839f, -0.112347f, -0.0238251f, 0.0698051f, 0.209648f, 0.0347161f, -0.01593f, 0.0121377f, -0.0511161f, -0.134945f, 0.115281f, -0.0748275f, 0.0853011f, 0.138677f, 0.0115974f, -0.101888f, 0.0918796f, -0.121569f, 0.00357876f, -0.0181511f, 0.0228308f, 0.0712449f, 0.318831f, -0.0631689f, 0.0998057f, 0.186133f, -0.0626635f, 0.00449678f, -0.0601317f, -0.0536285f, -0.0748774f, -0.111455f, 0.0173737f, -0.0149598f, -0.0466114f, -0.0494014f, -0.0609878f, 0.138118f, -0.113849f, -0.0550474f, 0.0852014f, -0.0137876f, 0.108031f, -0.160554f, 0.00682814f, -0.0331312f, 0.00768196f, 0.0536277f, -0.0397718f, -0.0590076f, -0.0370009f, 0.277384f, -0.00217604f, -0.0616407f, 0.135746f, 0.133743f, 0.0546956f, -0.0534129f, 0.0483793f, 0.0289502f, 0.0222457f, -0.0650033f, 0.127382f, 0.00540068f, 0.0799941f, -0.0386408f, 0.167533f, 0.0889542f, 0.136558f, 0.201949f, 0.0159676f, -0.0204757f, 0.187096f, -0.142952f, 0.0740655f, -0.134319f, 0.12785f, -0.0156241f, -0.0550371f, 0.0288298f, -0.0309188f, -0.255009f, 0.0889765f, 0.0264269f, 0.0929657f, -0.110457f, 0.00488798f, 0.0631534f, -0.196921f, -0.0952791f, 0.0848214f, 0.0672967f, 0.156061f, -0.0402527f, 0.113496f, 0.0509198f, 0.164868f, -0.153292f, -0.032939f, 0.0371504f, 0.156513f, 0.0504242f, 0.0594014f, -0.0970143f, 0.203629f, 0.236418f, 0.114002f, 0.0541131f, 0.0521557f, -0.0868992f, 0.0306539f, -0.143084f, -0.00475556f, -0.105189f, 0.000900645f, 0.0489014f, -0.128346f, -0.0562071f, -0.0944825f, 0.146953f, -0.203039f, -0.0435641f, 0.0579432f, 0.045975f, 0.186418f, 0.129713f, 0.0540284f, 0.0246106f, -0.0130482f, 0.156967f, -0.0537279f, -0.0403944f, 0.0935487f, -0.153253f, 0.0611503f, -0.104819f, -0.281372f, -0.0157026f, 0.0121817f, 0.0378699f, 0.0371035f, -0.147996f, -0.0615363f, 0.0762332f, -0.152813f, -0.106807f, 0.0782546f, -0.145998f, -0.184017f, -0.0743038f, -0.041252f, -0.0477003f, 0.160387f, -0.00470106f, 0.0147263f, -0.103869f, -0.0714716f, 0.0251573f, -0.0488224f, -0.0129834f, 0.212038f, -0.266193f, -0.196401f, -0.0670022f, 0.0346285f, 0.0245443f, -0.021916f, 0.035994f, 0.033958f, 0.0804174f, 0.0823248f, -0.0448435f, -0.0458455f, -0.0855411f, -0.232679f, -0.0473114f, 0.153309f, -0.124818f, -0.0320975f, -0.168526f, 0.0758716f, -0.11878f, -0.00144378f, 0.0497317f, 0.0151051f, -0.0620912f, -0.182818f, -0.105584f, -0.0355666f, 0.0094103f, 0.0826074f, -0.136421f, 0.10454f, -0.10596f, -0.147335f, 0.0939885f, 0.0899553f, -0.0139473f, 0.123869f, 0.0173369f, -0.045891f, -0.0793526f, 0.170449f, 0.0010488f, 0.0859959f, 0.158775f, -0.0730518f, 0.0168406f, 0.0777717f, -0.068144f, -0.110206f, 0.0191917f, 0.044075f, -0.000363507f, 0.0259424f, -0.306639f, 0.0142011f, -0.0782611f, 0.110113f, 0.0852941f, 0.00541355f, -0.095454f, 0.0277489f, 0.161194f, 0.0235475f, 0.0667222f, -0.0287617f, -0.169777f, -0.081005f, -0.0883244f, -0.0428691f, 0.00997712f, -0.0371554f, 0.0527186f, -0.17313f, -0.143743f, 0.0600287f, -0.0716127f, -0.00632741f, -0.111347f, 0.0254174f, 0.357009f, -0.130007f, -0.0206567f, 0.118647f, -0.161862f, 0.174388f, 0.0303427f, 0.103032f, -0.0752663f, 0.100007f, 0.0301096f, 0.0127583f, -0.0580941f, 0.0706815f, -0.11726f, -0.130549f, 0.0766243f, 0.14966f, -0.0339299f, 0.0329794f, -0.0197958f, 0.271297f, -0.0810982f, -0.076419f, -0.0333006f, -0.00725713f, 0.0414404f, -0.0602868f, -0.0285123f, 0.128802f, 0.194751f, 0.0731734f, 0.13819f, -0.00360139f, -0.0630322f, -0.161551f, 0.132755f, 0.23264f, 0.0348759f, -0.0992037f, 0.112381f, 0.0738529f, 0.081625f, 0.11017f, 0.0276525f, -0.141925f, -0.0206073f, -0.0672564f, 0.0416778f, -0.0418214f, -0.0284959f, -0.0312516f, -0.0754079f, -0.262152f, -0.0514958f, -0.0848319f, -0.0589032f, 0.0208205f, -0.0303626f, 0.0582793f, 0.0108615f, 0.00528501f, 0.00854754f, -0.0705218f, -0.0734242f, -0.00105201f, 0.155442f, 0.0281534f, 0.12067f, 0.157457f, -0.0126907f, 0.122994f, 0.0793828f, 0.0250786f, -0.0201814f, -0.0329142f, -0.044268f, 0.134261f, 0.0915345f, -0.0765848f, -0.070325f, -0.00302486f, -0.0720677f, 0.00887503f, 0.0764824f, 0.00184473f, -0.0208477f, 0.101352f, 0.0237716f, 0.0936424f, -0.121154f, 0.0187337f, -0.0777601f, 0.0228741f, -0.110887f, 0.106809f, 0.042741f, 0.0416431f, 0.00789649f, -0.0110513f, 0.0246725f, 0.124275f, 0.226879f, -0.107465f, -0.081006f, -0.0780408f, 0.0076955f, 0.0483822f, 0.180794f, 0.0637602f, 0.00722887f, 0.0916745f, -0.03398f, 0.157662f, -0.0489745f, 0.0462007f, -0.123547f, 0.034435f, -0.0447995f, 0.0144009f, 0.0188318f, 0.0579632f, 0.0212609f, 0.0456874f, -0.0765511f, 0.0158749f, 0.11208f, -0.00470885f, -0.0835171f, 0.0814695f, -0.0370664f, 0.0669249f, -0.0261623f, 0.0123399f, 0.0617418f, -0.181632f, 0.214153f, -0.00603537f, 0.0752669f, -0.0517854f, -0.171503f, 0.0216676f, -0.0240996f, -0.00593185f, 0.0314255f, -0.0577147f, -0.0565906f, -0.0378193f, 0.0692773f, 0.0853022f, 0.0385918f, 0.0111995f, 0.0121384f, -0.103894f, -0.110902f, -0.0192252f, -0.0350877f, -0.100654f, -0.0411118f, -0.168293f, -0.179952f, -0.0863222f, 0.022065f, 0.124798f, -0.0555287f, 0.121709f, 0.0109185f, 0.00635152f, 0.0421315f, 0.0143528f, 0.060672f, 0.0650785f, 0.0532585f, 0.0417847f, 0.0705678f, 0.0249113f, 0.100565f, -0.0290713f, -0.0237183f, -0.0170123f, -0.141605f, -0.00987086f, -0.0435864f, 0.0715029f, 0.175583f, -0.189958f, 0.140268f, -0.0322257f, -0.0295783f, -0.0284834f, -0.00433032f, 0.167496f, -0.0497759f, 0.0383922f, 0.0856804f, -0.00437472f, -0.0791843f, -0.0253118f, -0.0576198f, 0.0154497f, 0.0152889f, -0.0387155f, 0.00558411f, 0.0593543f, -0.114478f, 0.0531428f, 0.0110407f, 0.0488063f, 0.000166708f, 0.0122396f, 0.104551f, 0.00534861f, 0.0593844f, 0.0541216f, 0.0868784f, -0.0425371f, -0.0154643f, 0.00181218f, 0.00168243f, -0.0260891f, -0.055266f, -0.0658003f, -0.00342533f, -0.0293555f, 0.0660129f, 0.0282075f, -0.0273899f, 0.200798f, -0.177328f, -0.0339887f, 0.103454f, -0.0151924f, 0.0597094f, -0.131408f, 0.0368173f, 0.0754447f, 0.0555561f, 0.0719975f, -0.0299398f, 0.0996554f, -0.0386273f, 0.00112788f, 0.0282655f, 0.0127303f, -0.146857f, -0.0467028f, 0.0377901f, -0.02591f, -0.0715374f, -0.0151314f, 0.100827f, 0.0119478f, -0.118254f, -0.0394768f, -0.0452223f, 0.152195f, -0.0938563f, -0.123625f, 0.00560227f, 0.0944714f, -0.142866f, 0.0469654f, 0.0608954f, -0.248547f, 0.0770364f, -0.0134043f, -0.139886f, -0.0172967f, 0.105657f, -0.03556f, -0.235746f, -0.0458721f, 0.0526346f, 0.0339667f, -0.15925f, 0.0224957f, 0.0643544f, 0.124452f, -0.136219f, 0.0161604f, -0.0664027f, -0.0405065f, 0.00294116f, 0.0277036f, 0.00159194f, 0.0347886f, -0.155944f, -0.000624399f, -0.0434436f, -0.147544f, 0.0374384f, 0.118718f, 0.061587f, -0.0879719f, 0.241528f, 0.0158892f, 0.0536455f, 0.0848376f, -0.0892369f, -0.0354067f, -0.208824f, 0.0631268f, 0.0264343f, 0.0980053f, -0.04288f, -0.166755f, 0.00269665f, -0.0211188f, 0.0673857f, -0.095275f, -0.0587032f, -0.142573f, -0.0862261f, -0.0942214f, -0.0117202f, 0.151527f, 0.0774446f, -0.137428f, -0.0449836f, 0.134908f, 0.00729698f, 0.103211f, -0.0720916f, 0.11419f, 0.140405f, -0.0426416f, 0.0140879f, -0.0608474f, -0.00193875f, -0.0319548f, 0.138767f, -0.0522895f, 0.0482712f, -0.141563f, 0.00691326f, 0.16209f, -0.14074f, -0.0698808f, -0.117761f, -0.0144086f, 0.0322524f, -0.0308181f, -0.0182225f, -0.0318128f, -0.0155691f, 2.92487e-05f, -0.0838255f, 0.113091f, 0.0405193f, 0.0237547f, -0.0166485f, -0.0206061f, -0.0673258f, 0.0679113f, 0.0333438f, 0.0380947f, -0.0493263f, -0.0811639f, -0.134638f, 0.00688658f, -0.0200036f, 0.142668f, -0.029197f, -0.0433479f, -0.0300484f, 0.139286f, 0.0506244f, -0.0302219f, 0.0689557f, 0.0678069f, 0.122354f, 0.159924f, -0.00415144f, -0.0751886f, -0.186984f, -0.0752816f, 0.0286799f, 0.0495183f, 0.0114882f, 0.144711f, 0.0262797f, -0.0184173f, -0.0210373f, -0.0100854f, 0.0657304f, -0.00672225f, -0.128485f, -0.00394619f, 0.107979f, -0.00663687f, 0.146468f, -0.0333625f, 0.0472987f, -0.0407057f, -0.0997853f, 0.0188147f, -0.0484174f, 0.127733f, 0.00912343f, -0.0248974f, -0.0374146f, 0.00831148f, -0.126267f, 0.0145429f, 0.106491f, -0.188885f, -0.0469516f, 0.127583f, 0.0359779f, -0.0151951f, -0.045657f, 0.130505f, -0.012834f, -0.170388f, 0.153794f, 0.189382f, 0.170427f, -0.142969f, 0.106558f, 0.115286f, -0.169606f, 0.0257003f, -0.0467494f, -0.0626546f, -0.107518f, 0.0659849f, 0.0106473f, 0.0794004f, -0.1666f, 0.135218f, -0.0626881f, 0.0567761f, 0.098905f, 0.0822777f, -0.077473f, -0.0520634f, -0.13262f, -0.0941634f, 0.0942321f, 0.0595481f, -0.0540541f, -0.0305258f, 0.00515778f, -0.218202f, -0.0921475f, 0.136265f, -0.0984575f, 0.0880581f, 0.0182443f, 0.054553f, 0.0356657f, 0.0135543f, 0.0574106f, -0.0749083f, -0.048129f, 0.128006f, 0.0246074f, -0.0628543f, -0.0592522f, -0.0172984f, -0.0407703f, 0.0741417f, 0.109839f, -0.0189519f, -0.026808f, -0.121621f, -0.0100465f, -0.135402f, 0.151329f, -0.041964f, -0.0221009f, 0.0686858f, -0.0557597f, -0.031093f, -0.0306476f, -0.0350818f, -0.0918642f, -0.0173186f, -0.0198747f, 0.0760697f, -0.126594f, 0.161565f, 0.0208143f, 0.0262609f, -0.0258159f, 0.00360702f, -0.0827536f, 0.106867f, 0.0163759f, -0.124622f, -0.00845674f, 0.0821133f, 0.158244f, -0.0551665f, -0.0233956f, -0.1888f, -0.00205238f, -0.0877357f, 0.0885046f, -0.00684133f, -0.0498127f, 0.114904f, 0.112973f, 0.172054f, 0.022746f, 0.0143067f, 0.0321108f, -0.0846412f, 0.0116426f, 0.238445f, -0.144856f, 0.0472681f, -0.0312686f, 0.0260683f, -0.0254115f, -0.117207f, -0.0558918f, -0.0534004f, -0.0308705f, 0.0806762f, -0.170951f, 0.0393979f, -0.0976238f, 0.0999495f, -0.163836f, -0.0596979f, -0.0478947f, 0.113128f, 0.024142f, -0.0490755f, 0.0323786f, 0.104505f, 0.138238f, 0.1953f, -0.0543128f, 0.065581f, -0.00916523f, -0.176481f, 0.130634f, -0.0700727f, 0.0852559f, 0.308552f, -0.00585202f, 0.0401288f, -0.0684962f, 0.0588115f, 0.026564f, -0.179262f, 0.109196f, 0.0115152f, -0.00013936f, 0.117521f, 0.056217f, -0.117317f, 0.0712993f, -0.0682035f, -0.0693096f, -0.148135f, 0.199528f, 0.0540281f, 0.0249527f, 0.00453634f, -0.00759605f, 0.0244855f, -0.0577927f, -0.0242599f, -0.0726497f, -0.0735922f, 0.00795818f, 0.0190793f, 0.00171027f, 0.0575271f, 0.0757943f, -0.0070235f, 0.0945781f, -0.0932049f, 0.0151962f, 0.018654f, -0.137425f, 0.0987481f, 0.0174731f, -0.122669f, 0.00072938f, -0.0281899f, 0.165291f, 0.0223475f, -0.048465f, -0.0431437f, 0.0116365f, -0.0440497f, -0.0770374f, -0.077235f, 0.0993901f, -0.120853f, 0.0926989f, -0.079529f, 0.132848f, -0.088772f, -0.0490389f, 0.0687272f, 0.123266f, -0.0196873f, 0.146121f, 0.0567785f, 0.0626442f, -0.00887215f, -0.161013f, -0.0452297f, -0.148649f, 0.00637801f, -0.0317815f, 0.00700857f, -0.0299796f, 0.00138241f, -0.126365f, 0.0373854f, 0.0531237f, 0.111903f, 0.149568f, -0.159257f, -0.0164646f, -0.0499823f, 0.0982921f, -0.0782189f, -0.0814662f, -0.10437f, 0.00987098f, 0.0188384f, -0.00280825f, -0.152203f, 0.0319036f, -0.0737002f, 0.042605f, 0.191026f, 0.0131638f, -0.243211f, 0.0369348f, -0.0260177f, 0.0608801f, -0.129505f, -0.0932493f, -0.0682283f, 0.00533722f, 0.124043f, 0.0075412f, -0.154258f, 0.0854349f, -0.219066f, -0.0996845f, -0.00559505f, 0.139593f, 0.0445775f, -0.0879562f, -0.140017f, -0.033907f, -0.166714f, -0.0796826f, -0.0695969f, 0.11752f, 0.134243f, 0.134195f, -0.0155568f, 0.184636f, -0.0204368f, 0.0299471f, -0.201932f, -0.128105f, 0.134199f, 0.0606107f, -0.133172f, -0.0520007f, 0.0139914f, 0.00483332f, -0.0928681f, 0.0666994f, -0.0266741f, -0.177909f, -0.11444f, -0.16947f, -0.0550766f, 0.109776f, 0.0492203f, -0.113002f, -0.100174f, 0.020411f, 0.133382f, -0.164866f, 0.0873259f, -0.0401653f, 0.00714279f, -0.150676f, 0.0725401f, -0.0559702f, -0.0403075f, 0.0288692f, -0.0311513f, 0.0205598f, -0.0158558f, 0.00856222f, 0.0353437f, -0.040499f, 0.0537902f, -0.0551415f, 0.0233766f, -0.0843934f, -0.0557145f, -0.131615f, 0.209282f, -0.115381f, 0.0418268f, -0.0368576f, 0.298333f, 0.103127f, -0.127717f, -0.324358f, -0.061781f, 0.119373f, -0.0689275f, 0.0507514f, 0.312592f, -0.19202f, -0.055158f, 0.23564f, -0.0293311f, 0.0361164f, -0.243826f, -0.248021f, -0.0106505f, 0.0221297f, 0.0254563f, -0.0843409f, 0.140449f, 0.128327f, -0.048986f, 0.00834551f, 0.00564553f, 0.0801499f, 0.0806545f, 0.00288767f, 0.00118472f, 0.0993915f, 0.0830217f, -0.176208f, 0.133555f, -0.0262599f, 0.322338f, -0.00086646f, -0.0307211f, -0.0514934f, 0.177216f, 0.0970672f, -0.0941004f, 0.370014f, 0.0499525f, -0.130704f, 0.0667257f, 0.284874f, -0.109228f, -0.130655f, 0.0948464f, 0.0887613f, -0.279459f, -0.0263572f, 0.178053f, 0.0235175f, -0.0865761f, -0.0485605f, 0.0910017f, -0.239681f, 0.0657316f, 0.0336797f, -0.137022f, 0.100512f, -0.18829f, 0.0243949f, 0.0231746f, -0.292638f, -0.243552f, 0.153157f, -0.39368f, 0.126677f, 0.0172992f, -0.056759f, -0.197883f, -0.00282723f, -0.0523054f, -0.2826f, 0.36114f, 0.02665f, -0.191157f, 0.161228f, 0.0519916f, -0.0430142f, -0.0812837f, -0.0653964f, 0.0586449f, 0.15501f, 0.144104f, -0.128439f, -0.0517072f, 0.189761f, 0.239415f, -0.0675354f, -0.0142358f, 0.0143402f, -0.0380147f, -0.0409755f, 0.238196f, -0.149227f, 0.16764f, -0.199522f, 0.0810293f, -0.0286004f, -0.108463f, -0.0915213f, -0.116463f, -0.0782438f, 0.00972655f, -0.0275991f, -0.116951f, 0.236777f, -0.108986f, 0.0559352f, -0.108093f, -0.268481f, -0.300239f, -0.038456f, 0.0117205f, -0.140135f, -0.0158822f, 0.0031049f, 0.0515162f, -0.095394f, 0.0246333f, -0.0511994f, 0.0525328f, -0.00132965f, -0.0469577f, 0.268922f, 0.126832f, 0.00784781f, -0.0611499f, 0.00111744f, 0.00839577f, -0.0629906f, -0.000371255f, -0.0745819f, 0.149648f, -0.00679732f, -0.245791f, 0.116636f, 0.0965119f, -0.0858196f, -0.0698515f, 0.086482f, 0.0627195f, 0.0200951f, -0.0660108f, -0.0366472f, 0.0104187f, 0.102231f, -0.079436f, 0.0246217f, -0.07267f, -0.262073f, -0.00556196f, -0.0564102f, -0.149424f, 0.0219883f, 0.0579754f, -0.0693324f, 0.0459044f, 0.013922f, 0.144968f, 0.012447f, 0.212191f, -0.0328051f, 0.150605f, 0.0636976f, -0.227214f, 0.0230946f, 0.0245315f, -0.0343859f, 0.186069f, 0.155105f, -0.0985941f, -0.0691426f, -0.0427915f, 0.0897489f, -0.00284007f, -0.0486961f, -0.0285674f, -0.0559475f, -0.0866254f, 0.139727f, -0.029004f, 0.0460412f, -0.0221461f, 0.0213597f, -0.0670658f, 0.121724f, 0.253049f, -0.0621665f, -0.1212f, -0.0209039f, 0.1298f, 0.050742f, -0.131241f, 0.0800251f, -0.0615735f, 0.159352f, -0.0600804f, -0.152918f, -0.00199657f, -0.111143f, 0.0388708f, 0.166416f, 0.00300619f, -0.0367363f, 0.20427f, 0.0982836f, 0.0105312f, 0.0584059f, 0.107552f, -0.0286053f, -0.0193556f, 0.0877157f, 0.132088f, 0.133561f, 0.0137298f, -0.0897206f, 0.0785771f, -0.0814393f, 0.0175899f, -0.00575764f, 0.00276972f, -0.0507377f, -0.165771f, -0.022017f, 0.148892f, -0.0514543f, -0.0258534f, 0.0155704f, -0.0890416f, 0.132082f, 0.0872315f, -0.00656966f, -0.0138821f, 0.00666634f, 0.084801f, 0.0271733f, -0.103555f, -0.128535f, 0.108811f, 0.0145776f, -0.0336964f, -0.120253f, -0.0694887f, 0.0167486f, 0.0380251f, -0.0589953f, -0.0275146f, -0.118425f, 0.00477547f, -0.0484451f, 0.0643327f, 0.185595f, -0.0725563f, 0.0541416f, -0.10743f, -0.108024f, 0.0295038f, -0.0142826f, -0.0114956f, 0.141817f, -0.200466f, -0.0721752f, 0.0299417f, 0.0226541f, -0.0454384f, -0.0290555f, 0.0205869f, -0.141f, 0.0596204f, -0.0227486f, -0.0127835f, 0.123479f, 0.0831318f, 0.167955f, -0.163728f, 0.0304356f, 0.11554f, 0.0676368f, -0.0506134f, -0.0847168f, -0.0871043f, -0.15497f, 0.00877469f, 0.0187709f, 0.106121f, -0.0406371f, -0.0273921f, -0.148927f, 0.0155446f, -0.00763488f, -0.0751218f, 0.0277072f, 0.117372f, -0.0125741f, -0.038658f, 0.00414973f, 0.0013484f, -0.119568f, -0.00512363f, 0.121196f, -0.0670976f, 0.0258126f, 0.0570271f, 0.0417259f, -0.0686098f, 0.0747736f, -0.0403427f, -0.146943f, 0.146328f, -0.105406f, -0.0100659f, 0.203686f, -0.0667656f, -0.101625f, -0.101333f, -0.256746f, 0.0128575f, 0.0291715f, -0.0243729f, -0.00519788f, -0.0198794f, 0.0621255f, 0.130114f, 0.0523109f, -0.0355132f, 0.0207908f, 0.019766f, -0.00291625f, 0.098527f, -0.0897621f, 0.0303034f, -0.146931f, -0.000380554f, -0.00633039f, -0.00608165f, -0.0644048f, -0.0439231f, -0.12179f, 0.0660316f, -0.0425635f, -0.0758912f, 0.0018226f, 0.0827322f, 0.0736231f, 0.0115677f, -0.0353799f, 0.00403278f, -0.042169f, 0.056142f, 0.069104f, 0.0715802f, 0.100707f, -0.0230162f, 0.0287438f, -0.0526152f, 0.014044f, -0.0312973f, -0.0279312f, 0.0783501f, 0.0712662f, -0.159787f, -0.0732055f, 0.13547f, -0.0232999f, -0.019214f, 0.00906752f, -0.137268f, -0.0585624f, 0.00261421f, 0.0806126f, -0.0515111f, 0.0230335f, 0.128871f, -0.140649f, 0.00525972f, -0.0888112f, -0.0324335f, -0.0892222f, 0.210631f, 0.0105529f, -0.0732421f, 0.0199517f, 0.0122368f, -0.129221f, -0.0431733f, -0.189438f, 0.21953f, -0.0600521f, -0.100585f, 0.0266357f, 0.0368496f, 0.00862204f, 0.11502f, -0.0791788f, -0.0365561f, -0.120733f, 0.0657541f, 0.121426f, -0.10035f, -0.11506f, 0.0232424f, 0.0754693f, 0.100434f, 0.0926385f, -0.0457153f, 0.182044f, -0.0956427f, 0.182428f, 0.0957192f, 0.0701938f, -0.129745f, 0.0350993f, 0.0266972f, -0.0484454f, -0.00981678f, 0.0429381f, -0.0711436f, -0.0173547f, -0.0287272f, 0.0898308f, 0.167913f, 0.0312336f, 0.0473407f, 0.128221f, -0.0825575f, 0.0803378f, -0.120785f, -0.167783f, 0.158013f, -0.00591001f, -0.0233527f, 0.0674732f, 0.0262518f, 0.133299f, 0.00810624f, 0.0849422f, 0.173285f, -0.0575621f, -0.0464245f, -0.15735f, -0.0991693f, 0.129979f, -0.0459123f, 0.147555f, -0.0213911f, 0.0597494f, 0.0145266f, 0.0717425f, 0.0492915f, -0.189532f, -0.102358f, 0.0693957f, 0.100583f, -0.21546f, -0.0505541f, -0.0775765f, -0.101205f, -0.0944353f, -0.144078f, -0.00906998f, 0.0465553f, 0.0914658f, 0.0609999f, 0.0688573f, 0.0567425f, 0.0853689f, 0.11924f, -0.111181f, -0.115744f, 0.114156f, -0.0263104f, -0.0343988f, -0.132853f, -0.0305711f, 0.0928966f, -0.210159f, 0.00326742f, 0.0560037f, 0.00392166f, 0.10131f, 0.0553698f, -0.146996f, 0.0520766f, 0.103113f, -0.00491922f, 0.250074f, 0.139258f, 0.0819721f, 0.0224667f, -0.154613f, -0.170536f, -0.113009f, -0.125402f, 0.0904692f, 0.110222f, 0.33325f, -0.00681747f, -0.00422838f, -0.224109f, 0.0305813f, -0.124872f, 0.0381175f, -0.00716663f, 0.0297876f, 0.129311f, 0.0188146f, 0.00168521f, 0.0536448f, 0.0643632f, 0.0449281f, 0.107138f, -0.0791986f, 0.0549213f, -0.0585504f, -0.0535992f, -0.14388f, -0.0875416f, 0.0834759f, -0.0877948f, -0.114446f, 0.13557f, -0.0226213f, -0.0227507f, 0.0662675f, 0.00819808f, -0.0380332f, 0.0778093f, -0.19584f, -0.1516f, -0.0575255f, 0.0507288f, 0.114569f, 0.261944f, 0.373886f, 0.0791609f, 0.142312f, 0.179088f, 0.0231139f, -0.134293f, 0.00282291f, -0.0677121f, 0.0827537f, 0.0989376f, 0.0656749f, -0.0131185f, 0.126835f, -0.0519473f, 0.172675f, -0.113886f, -0.0153763f, 0.307255f, 0.0992825f, -0.0181054f, 0.26768f, -0.00295386f, -0.268789f, -0.0256856f, 0.0103846f, -0.14321f, 0.349131f, 0.0554768f, 0.0722785f, 0.0704129f, -0.229385f, 0.117047f, 0.157391f, -0.0125249f, 0.0275714f, -0.188541f, -0.0611167f, 0.0065322f, -0.102942f, 0.0348189f, -0.088143f, -0.0461421f, 0.0196076f, -0.0533063f, -0.144461f, 0.0759086f, -0.0605246f, 0.00724741f, 0.103886f, -0.128398f, -0.0721151f, -0.173796f, 0.0309738f, 0.102296f, -0.0470714f, -0.0749339f, 0.0143667f, -0.176586f, -0.0899963f, -0.10765f, -0.273862f, 0.125459f, 0.0618324f, -0.267994f, 0.0576202f, 0.201192f, -0.0147146f, 0.177492f, -0.146116f, 0.0438935f, 0.194149f, -0.316521f, -0.0427149f, 0.0890182f, -0.140428f, -0.056404f, -0.101884f, 0.0633609f, 0.161698f, -0.166498f, -0.0126211f, -0.0609049f, -0.0236228f, -0.0170127f, -0.135513f, 0.0198269f, -0.00404023f, -0.106412f, -0.101497f, 0.0486986f, -0.0570358f, 0.104949f, -0.13169f, 0.0459522f, -0.140054f, 0.0851516f, -0.140699f, -0.142172f, 0.0714821f, -0.112596f, 0.115639f, -0.000625734f, -0.115403f, 0.132704f, -0.000796333f, -0.0500403f, 0.01763f, -0.00315439f, 0.0375374f, -0.127681f, -0.142835f, -0.0912432f, 0.172802f, -0.05863f, 0.0758168f, 0.0181284f, -0.0466552f, -0.014839f, -0.0113291f, -0.0127734f, -0.0437082f, -0.000965445f, -0.0917224f, -0.0349435f, -0.0280182f, -0.0250239f, -0.0322674f, 0.12462f, -0.0952555f, 0.0364139f, -0.0751317f, -0.0717587f, 0.357721f, 0.19624f, 0.0693953f, -0.00201087f, -0.017338f, 0.152233f, 0.127219f, 0.00264062f, 0.148093f, -0.018394f, 0.194199f, 0.0298562f, -0.026212f, -0.0205546f, -0.0791475f, 0.0202076f, 0.0209637f, -0.0454977f, -0.131687f, -0.00671229f, -0.0415385f, 0.0121371f, 0.0503563f, -0.261893f, -0.0458933f, -0.139738f, -0.0582619f, 0.108905f, -0.177818f, -0.10757f, -0.098871f, 0.0746731f, -0.0162733f, -0.235118f, 0.0700546f, -0.245815f, -0.122281f, -0.11146f, 0.203846f, 0.0618654f, 0.084979f, -0.0121767f, -0.0621388f, 0.0253533f, 0.0229451f, -0.0175822f, -0.00118565f, -0.0511533f, -0.171957f, 0.00502026f, 0.0339676f, -0.0272002f, -0.0621613f, -0.0419535f, 0.0478012f, -0.0749385f, 0.0382813f, -0.023592f, -0.160225f, -0.0566971f, -0.0909431f, -0.0787389f, 0.0906155f, 0.14579f, -0.049997f, -0.0329831f, -0.09427f, -0.0979891f, -0.0661157f, -0.0019309f, -0.00599269f, 0.0433253f, 0.0953787f, 0.0619075f, 0.143357f, 0.143318f, 0.0882628f, 0.107169f, -0.0840008f, -0.0635779f, 0.0331358f, 0.014175f, -0.0936621f, -0.143323f, 0.0439723f, -0.0150024f, 0.0713023f, 0.157524f, 0.0202616f, -0.136619f, -0.0969837f, -0.0425392f, -0.0574742f, -0.105211f, -0.0793687f, 0.127701f, 0.0591841f, 0.0298561f, 0.0937563f, 0.0321703f, 0.0371461f, 0.0930009f, -0.165892f, 0.0642828f, -0.00943905f, 0.0532789f, 0.0621797f, -0.0606611f, 0.176166f, -0.00797306f, 0.0224758f, 0.0283819f, 0.0272977f, -0.145537f, -0.138091f, 0.101939f, -0.0571054f, 0.0273604f, 0.0773959f, -0.016733f, -0.00676742f, -0.161108f, -0.0954075f, -0.0761149f, -0.02914f, 0.154743f, 0.093896f, 0.081257f, 0.0123755f, -0.111599f, 0.120522f, 0.0694009f, 0.137465f, -0.0177177f, -0.151003f, 0.101608f, -0.014924f, 0.0987448f, 0.121036f, -0.131566f, 0.0955181f, -0.0540896f, 0.00936835f, 0.138864f, 0.0275664f, -0.0276021f, -0.236179f, -0.00799173f, 0.0329624f, 0.112889f, 0.0950338f, -0.0194974f, -0.0607299f, 0.0781356f, 0.0306074f, 0.0225822f, 0.0866076f, 0.0262285f, -0.122529f, 0.0676885f, -0.131323f, -0.0888277f, 0.0906762f, -0.0355455f, 0.01887f, -0.125876f, -0.175464f, 0.111753f, -0.102792f, -0.126451f, 0.0254754f, 0.0806624f, 0.0139448f, -0.0256506f, 0.00798802f, -0.107317f, 0.181425f, 0.176208f, 0.0822141f, 0.000906119f, -0.0594548f, -0.0438855f, 0.0881429f, 0.176981f, 0.23089f, 0.018351f, 0.231863f, 0.104267f, 0.229811f, -0.0218526f, -0.0992625f, 0.0456368f, -0.034926f, 0.0516136f, -0.00823467f, 0.00815338f, -0.136572f, 0.0123275f, -0.013145f, -0.0546388f, 0.114022f, -0.0618853f, 0.0385275f, -0.00542699f, 0.0501779f, -0.0358024f, -0.108192f, 0.133039f, 0.141413f, 0.0265595f, 0.0540496f, 0.0258767f, 0.0686621f, -0.0384689f, 0.0518598f, -0.0622442f, -0.163322f, 0.0744031f, -0.0476727f, 0.0487147f, -0.06239f, 0.0996168f, -0.00418871f, 0.224212f, -0.174959f, 0.0363173f, 0.0701735f, 0.229207f, 0.0752685f, -0.17213f, -0.036663f, -0.0248027f, -0.00526021f, -0.103387f, -0.0576266f, -0.0476361f, 0.122617f, 0.0333611f, -0.0638544f, -0.0584434f, -0.0549349f, -0.0312673f, -0.187554f, -0.0436826f, -0.275094f, 0.119223f, 0.154998f, -0.146621f, 0.079483f, -0.0667137f, -0.17392f, 0.11566f, 0.085976f, -0.0961288f, 0.0847861f, -0.0778146f, 0.151083f, 0.0743166f, -0.00604607f, 0.0133332f, -0.103026f, 0.138605f, -0.0405425f, 0.479673f, -0.0196967f, 0.00846034f, 0.0600191f, 0.0201405f, -0.0480278f, 0.0407422f, -0.131921f, 0.184076f, 0.115294f, -0.159185f, -0.0592287f, -0.045617f, -0.0851579f, 0.0757142f, 0.243949f, 0.0110396f, 0.170861f, -0.0981065f, -0.0354849f, -0.0770395f, -0.0781533f, 0.0406359f, -0.145818f, -0.0996762f, -0.0380928f, 0.0882455f, 0.104306f, -0.147455f, -0.0575974f, 0.0622406f, 0.0321286f, -0.0558389f, -0.12516f, -0.0695318f, -0.0115925f, -0.0630182f, 0.100598f, -0.110975f, 0.0411702f, -0.152205f, 0.0325721f, -0.127177f, 0.164172f, 0.0692405f, 0.0162761f, 0.0207357f, -0.0483973f, -0.137544f, -0.040489f, -0.124407f, -0.0123777f, -0.00963817f, -0.0665798f, -0.0939609f, -0.179204f, -0.101716f, -0.226465f, 0.388089f, -0.037138f, 0.106709f, 0.0909445f, 0.00100683f, -0.238079f, 0.0202971f, -0.0373862f, 0.0417229f, -0.118892f, 0.360553f, 0.0626534f, -0.0676398f, 0.00067791f, 0.111317f, -0.120842f, 0.0299073f, 0.13424f, -0.00493163f, -0.173494f, -0.0106074f, -0.0168215f, -0.0728104f, -0.0601929f, -0.144832f, -0.0350324f, -0.0167096f, -0.0939313f, -0.00844628f, -0.0600141f, 0.0143498f, 0.132602f, 0.0296885f, -0.0226722f, 0.00481824f, -0.0281698f, 0.0172558f, -0.0913044f, 0.0111014f, 0.0290101f, -0.0106991f, 0.144564f, 0.0137603f, 0.0883501f, 0.103533f, 0.129872f, -0.00821677f, 0.0646302f, 0.0833988f, 0.0240672f, -0.0458854f, 0.0373382f, -0.0939353f, 0.0932316f, -0.106569f, 0.0964946f, -0.0935559f, 0.0481331f, 0.0114259f, 0.0877415f, 0.0337893f, -0.0296538f, 0.0859157f, -0.210475f, -0.0146682f, -0.141621f, -0.00031997f, -0.0477382f, -0.0802057f, -0.0320932f, 0.103494f, -0.0432809f, -0.0144275f, -0.000911933f, -0.0851732f, 0.0747555f, -0.123997f, 0.0928446f, -0.10857f, -0.0529877f, 0.124407f, 0.0848159f, -0.183149f, 0.000326648f, -0.0186839f, 0.0654512f, 0.0458461f, 0.062756f, -0.0794457f, -0.214055f, -0.0105798f, 0.0178398f, 0.0419191f, 0.0934246f, -0.0659378f, 0.00213481f, -0.0116637f, -0.0675447f, 0.115083f, 0.000482418f, 0.0520618f, 0.0931851f, -0.164905f, -0.0164176f, 0.157405f, -0.0301747f, 0.0597366f, 0.0904064f, 0.0148657f, 0.0288158f, -0.069769f, -0.16927f, -0.0834729f, -0.0551338f, 0.0780526f, 0.00086154f, -0.0594897f, -0.0274007f, -0.0901757f, -0.0552662f, 0.0534308f, -0.138568f, 0.202313f, -0.126512f, -0.061022f, 0.173519f, -0.0318563f, 0.107667f, 0.0058978f, 0.218018f, -0.0344503f, -0.203459f, 0.00562715f, -0.0959225f, -0.15024f, -0.00918511f, 0.0698592f, -0.0385352f, 0.105227f, 0.0176118f, 0.21422f, -0.0563069f, -0.0359459f, 0.0510765f, 0.0478278f, 0.045397f, 0.0691166f, 0.120123f, 0.110774f, -0.116142f, 0.0292327f, 0.135095f, -0.119905f, 0.238496f, -0.00435448f, -0.0463788f, 0.0346968f, 0.0901209f, -0.0653296f, -0.11389f, -0.127501f, -0.153024f, -0.271465f, 0.138169f, -0.152161f, -0.111965f, 0.0729034f, 0.00382261f, -0.0147604f, 0.131596f, -0.0267628f, -0.220638f, -0.125591f, 0.0180663f, -0.0457415f, 0.177747f, -0.030339f, -0.0148261f, -0.074643f, -0.0630864f, -0.0441321f, -0.189205f, -0.0875786f, 0.0814915f, 0.280612f, -0.0120505f, 0.106993f, -0.0581735f, -0.129898f, -0.0433071f, -0.0972275f, 0.203773f, 0.0502447f, 0.177281f, 0.104945f, 0.0542393f, -0.167556f, 0.218378f, -0.198394f, 0.0512948f, -0.131017f, 0.0483293f, -0.000880803f, 0.0271083f, -0.016579f, -0.0872764f, 0.112576f, 0.0139064f, -0.173064f, 0.0267396f, -0.0816914f, 0.127785f, -0.0370021f, -0.0567474f, 0.13515f, 0.155908f, -0.0716788f, 0.0337656f, -0.180516f, -0.0658289f, -0.0617992f, 0.113416f, -0.112907f, 0.146603f, 0.0205621f, -0.113144f, -0.222092f, 0.036303f, 0.0903222f, -0.0735535f, 0.0364131f, -0.109859f, -0.00314933f, 0.314248f, -0.226608f, -0.134534f, -0.106284f, 0.0638666f, 0.0223976f, 0.0914731f, 0.170092f, 0.0655633f, 0.0840544f, -0.0560169f, 0.0411026f, -0.00284951f, -0.0484338f, -0.104742f, 0.0503961f, -0.00630394f, -0.0587661f, -0.0927775f, 0.289314f, -0.0637846f, -0.126432f, -0.152022f, -0.0934525f, -0.0345952f, 0.0246871f, 0.00518974f, -0.0287998f, -0.0835094f, -0.102875f, 0.0921139f, 0.14934f, -0.177882f, -0.0209589f, 0.205859f, 0.0833287f, 0.140365f, -0.0881358f, 0.201149f, -0.0871733f, -0.0139661f, 0.0809059f, 0.0850563f, 0.110274f, 0.151407f, -0.0836095f, 0.0484637f, 0.0189234f, 0.0582746f, -0.0559542f, -0.184388f, -0.0283474f, 0.167594f, -0.0454891f, -0.0619007f, -0.0981236f, 0.0645074f, -0.0879724f, 0.0664307f, 0.0300855f, -0.0346024f, 0.0901146f, -0.0796918f, -0.0856742f, 0.012941f, 0.0823924f, -0.214882f, 0.0267329f, 0.114011f, -0.114818f, 0.0621914f, 0.0355033f, -0.0427323f, 0.0337437f, -0.118932f, -0.0154033f, 0.0770881f, 0.0453275f, 0.160203f, -0.0381726f, -0.00133863f, 0.117348f, -0.37355f, -0.152859f, 0.0688399f, 0.0129089f, -0.148566f, -0.0724134f, 0.026745f, 0.028366f, -0.0218633f, -0.0524344f, -0.0602526f, -0.0326621f, -0.0832523f, -0.211894f, -0.080402f, 0.0523089f, -0.0224505f, 0.00153855f, 0.147585f, -0.147532f, 0.164212f, 0.102392f, 0.102846f, 0.0312383f, -0.0973494f, -0.00789966f, 0.172357f, 0.0388688f, 0.0349876f, -0.0119909f, 0.0869778f, 0.0383268f, 0.101194f, -0.0831109f, -0.0111632f, -0.1649f, 0.128218f, -0.00452996f, -0.0453378f, -0.101309f, 0.117073f, 0.221112f, -0.119677f, 0.116718f, -0.0498863f, 0.0402962f, -0.0919673f, -0.0507776f, -0.14089f, 0.0358499f, -0.0714214f, 0.173672f, 0.0819758f, 0.0296497f, -0.0776403f, 0.035601f, -0.123079f, 0.0849166f, 0.0897807f, -0.000264209f, 0.0274368f, -0.0407979f, 0.111838f, -0.0636606f, 0.0861518f, -0.035689f, -0.0775184f, -0.0114784f, 0.0271967f, 0.0623927f, -0.0249909f, -0.134593f, -0.0658548f, 0.0460461f, 0.00250021f, 0.0368173f, 0.133461f, 0.0273888f, -0.0304761f, -0.0134232f, 0.00712011f, -0.044315f, -0.102654f, 0.0805028f, 0.131951f, 0.150326f, 0.00530655f, -0.032719f, 0.0478508f, 0.0206365f, -0.0449173f, 0.122907f, 0.226224f, 0.151349f, 0.0434352f, 0.111691f, -0.0488579f, 0.0762109f, 0.0336098f, -0.0719946f, 0.0179379f, -0.192045f, 0.115046f, 0.149021f, -0.0861453f, -0.00803435f, -0.119871f, 0.0349404f, -0.0813234f, 0.137293f, 0.0981053f, 0.0159602f, -0.0553756f, 0.0555738f, 0.0496385f, -0.164395f, -0.030519f, 0.0280593f, 0.00333104f, 0.0723733f, 0.0301625f, -0.0346175f, 0.20412f, -0.0485859f, -0.0940408f, 0.0226172f, 0.102729f, -0.128326f, -0.166084f, -0.0189763f, -0.0446042f, 0.0169855f, -0.0602487f, -0.0829676f, -0.0661823f, -0.0917817f, 0.0103126f, 0.0347639f, 0.127726f, -0.0487437f, -0.0662455f, 0.124688f, 0.00677772f, -0.00193076f, -0.0588385f, 0.0294599f, -0.0115929f, -0.0872095f, 0.0614263f, 0.065045f, -0.190308f, 0.0242152f, -0.00874448f, 0.0516115f, -0.0522777f, -0.008514f, -0.00551138f, 0.183749f, 0.0561948f, 0.00328522f, 0.0935209f, 0.0124489f, 0.0947344f, 0.050643f, 0.000105854f, 0.205701f, -0.0212218f, 0.355954f, -0.131671f, 0.0216627f, -0.0498986f, 0.175325f, -0.213628f, -0.0687156f, 0.193397f, -0.0437767f, -0.0563047f, 0.0957317f, -0.00462712f, -0.0148726f, 0.0618806f, 0.029963f, -0.0589022f, 0.0560949f, -0.101937f, 0.0587047f, -0.0504396f, 0.0446829f, 0.13955f, 0.0297847f, 0.10933f, -0.104371f, 0.013149f, 0.142862f, 0.0566673f, -0.010116f, -0.100416f, -0.0351028f, 0.0141743f, -0.0563635f, -0.1179f, 0.166284f, -0.0140776f, -0.0971688f, -0.0880088f, 0.166756f, -0.0887577f, -0.163686f, 0.0927503f, 0.0560829f, 0.185527f, -0.0566705f, -0.0190031f, 0.0151438f, -0.0354831f, -0.111511f, -0.133625f, -0.107444f, 0.133221f, -0.0745142f, 0.0297949f, 0.125057f, 0.00709227f, -0.0958562f, 0.0134444f, 0.0548449f, 0.00833014f, -0.0593505f, -0.0583668f, -0.0665772f, -0.04581f, 0.0428345f, 0.0293133f, 0.00254166f, 0.0274307f, -0.0627358f, -0.0348111f, -0.0691566f, -0.0172985f, 0.0379479f, 0.0170864f, -0.158323f, 0.128674f, -0.0659931f, -0.00424587f, -0.138849f, 0.0365646f, -0.126071f, -0.0666833f, -0.111271f, -0.0628979f, 0.0124187f, 0.0169489f, -0.0255177f, -0.099714f, -0.150848f, 0.0183885f, -0.115687f, -0.037426f, 0.144625f, 0.00507591f, 0.0373683f, -0.103204f, 0.0163984f, 0.00832528f, -0.102752f, -0.101785f, -0.0297727f, -0.0644735f, -0.0703607f, 0.139204f, -0.0100128f, -0.0786394f, 0.0403096f, -0.0463273f, -0.0421528f, 0.147219f, -0.164883f, -0.0327174f, 0.0414093f, -0.053973f, -0.0383335f, -0.123213f, -0.218968f, 0.028095f, -0.0541176f, 0.00376664f, 0.212602f, -0.20184f, 0.0220417f, 0.0718887f, -0.122828f, -0.0452214f, -0.0502675f, -0.0911383f, -0.0409746f, 0.00652399f, -0.12769f, 0.0580366f, -0.176224f, -0.0278992f, 0.0290776f, -0.0025993f, 0.0409433f, -0.0520031f, 0.187258f, -0.0408157f, -0.0133031f, -0.0562271f, -0.183801f, -0.0472947f, 0.0297042f, 0.0462213f, -0.0787196f, -0.0384416f, 0.0583351f, 0.0346568f, -0.0175371f, 0.0712479f, 0.0310738f, -0.00541754f, -0.0635501f, 0.0413698f, -0.0450999f, -0.0562716f, -0.0138713f, 0.0405217f, -0.173167f, -0.0141411f, 0.230525f, -0.0926872f, 0.0997515f, -0.234238f, -0.0947436f, 0.191396f, 0.0655322f, -0.0850866f, -0.0299461f, -0.117809f, -0.00133158f, 0.207812f, 0.0891877f, -0.0794132f, -0.0939305f, -0.158156f, -0.00973879f, 0.122258f, 0.104467f, 0.0584627f, -0.0444622f, 0.0770782f, -0.0903816f, -0.0752412f, 0.0233952f, 0.0720689f, 0.118682f, -0.0642518f, 0.0187509f, 0.133504f, 0.0636623f, -0.0417198f, -0.268663f, -0.284819f, -0.0285381f, -0.160715f, 0.0522759f, 0.0435904f, -0.064683f, 0.00341899f, -0.00572737f, -0.0287522f, -0.00022781f, -0.105602f, -0.0874882f, -0.027165f, -0.212129f, 0.125615f, -0.0477488f, 0.1538f, 0.0937052f, 0.160914f, -0.0767945f, -0.167324f, 0.0770249f, 0.04352f, 0.153576f, 0.0823939f, -0.017969f, 0.0245888f, 0.0810081f, -0.0608518f, 0.031458f, 0.069587f, 0.150402f, -0.00317851f, -0.150369f, 0.0685615f, -0.259515f, 0.210056f, -0.147851f, -0.0806381f, -0.0733523f, -0.146371f, 0.0424435f, -0.139418f, -0.0631291f, 0.103344f, 0.150302f, -0.0512088f, -0.0508781f, 0.0147226f, -0.167234f, 0.0189476f, -0.166438f, 0.18213f, -0.00489137f, -0.131004f, -0.0207501f, -0.105666f, 0.106011f, -0.0478784f, -0.303463f, -0.00506434f, 0.105401f, -0.0981563f, 0.0427325f, -0.159736f, -0.159318f, -0.0586982f, -0.105259f, 0.113349f, -0.137051f, 0.156944f, 0.170899f, 0.00602111f, -0.0784351f, 0.0397161f, 0.00189928f, 0.00931766f, -0.0640245f, 0.044033f, -0.158634f, 0.174844f, -0.0946522f, 0.0397763f, -0.344988f, -0.047851f, -0.124838f, 0.0692713f, -0.186883f, -0.120758f, -0.0277824f, 0.120796f, -0.188653f, -0.12952f, 0.015578f, -0.0911241f, -0.00706409f, 0.0861662f, -0.0385464f, 0.102773f, 0.0605027f, 0.0240436f, -0.0934766f, -0.0754554f, 0.0310803f, 0.0356051f, -0.0357621f, -0.0945434f, -0.0197608f, 0.0807253f, 0.153702f, -0.186536f, 0.197522f, 0.282458f, -0.0889344f, 0.0493055f, 0.208402f, 0.00120761f, 0.262954f, -0.153197f, 0.0395789f, -0.061481f, 0.119358f, -0.0489872f, -0.0373148f, -0.0778504f, 0.0434703f, -0.151753f, -0.0217304f, 0.11695f, 0.0393043f, 0.13027f, -0.110937f, -0.0802984f, -0.093194f, 0.0741504f, -0.0612589f, -0.0811807f, 0.0155557f, -0.190859f, -0.0995003f, 0.00413712f, -0.185906f, 0.0730519f, -0.0911018f, 0.0677343f, 0.0457862f, -0.0798005f, -0.0755684f, 0.0383503f, -0.0712709f, -0.0038371f, -0.102156f, 0.00166204f, 0.0769767f, 0.0518234f, -0.00146666f, -0.117796f, -0.00779723f, 0.146096f, -0.08094f, -0.195233f, -0.161372f, 0.0370966f, 0.0202187f, 0.146068f, -0.0304679f, -0.0620067f, -0.125106f, -0.117139f, 0.0490055f, -0.00720467f, 0.0972153f, 0.0249832f, 0.127245f, -0.0182011f, -0.0646304f, -0.0890605f, 0.0327586f, 0.120267f, 0.0171973f, -0.0841843f, -0.00322276f, -0.00206303f, 0.0698457f, 0.0175398f, 0.0619633f, 0.0556096f, -0.0295923f, -0.11876f, 0.169481f, 0.0862402f, -0.100153f, 0.00789151f, -0.0736113f, -0.152671f, 0.0165802f, -0.122939f, 0.0464932f, -0.180237f, -0.0726807f, -0.109261f, 0.123075f, 0.0414036f, 0.146661f, -0.0530791f, 0.0165344f, -0.0532645f, 0.0271544f, 0.127396f, -0.0394069f, -0.063934f, -0.0265697f, 0.0673737f, 0.123398f, -0.0249227f, -0.031298f, -0.103691f, -0.0136284f, 0.115485f, -0.00368789f, 0.00704022f, 0.0215104f, -0.100191f, 0.0325466f, 0.014074f, 0.13543f, 0.126842f, -0.0801536f, 0.228139f, -0.0139249f, -0.0923469f, 0.0541695f, -0.186586f, 0.0218784f, -0.11227f, 0.0126347f, -0.207796f, 0.05238f, -0.0168159f, -0.0078689f, -0.149248f, 0.00427492f, 0.00916755f, 0.0971763f, -0.0377121f, -0.00283661f, 0.0861091f, -0.0873591f, -0.168454f, 0.194868f, 0.194439f, -0.0735116f, -0.0996251f, 0.271072f, -0.222649f, 0.00385086f, -0.0286558f, -0.0499126f, -0.0637209f, -0.115634f, 0.056315f, -0.0773933f, -0.00498014f, 0.0253828f, 0.128717f, 0.0138551f, 0.136356f, -0.0701888f, -0.167015f, 0.0146888f, -0.242275f, 0.0519262f, 0.0444334f, 0.088265f, 0.261716f, 0.255788f, 0.107662f, 0.177513f, -0.0135751f, 0.0278642f, -0.0580948f, 0.00263493f, -0.200267f, -0.115748f, -0.0607198f, -0.101835f, -0.296073f, 0.119815f, 0.155615f, 0.211968f, 0.0730543f, 0.0369344f, 0.0801751f, -0.112172f, -0.0520408f, -0.103425f, -0.0217114f, 0.191305f, 0.0338583f, -0.0618486f, -0.160153f, -0.0227987f, 0.0466519f, -0.0747965f, -0.0162571f, 0.022456f, 0.0156316f, 0.19647f, -0.0922187f, 0.047738f, 0.159371f, 0.168374f, 0.130939f, -0.0965372f, -0.0928866f, 0.101558f, 0.0576433f, 0.0941984f, 0.159703f, 0.0848642f, -0.05855f, -0.00450735f, -0.156369f, -0.134432f, -0.165635f, 0.146264f, -0.116158f, 0.0802179f, 0.000980562f, -0.192042f, 0.0520767f, -0.027387f, -0.0211515f, -0.165508f, -0.0323384f, -0.0278802f, -0.127744f, 0.0302364f, 0.0317927f, 0.114618f, -0.0336388f, -0.0327158f, -0.0389523f, -0.161952f, -0.00638617f, 0.0260978f, -0.0243079f, 0.112177f, 0.0255404f, 0.0328593f, -0.138875f, 0.000667772f, 0.123002f, -0.0115215f, -0.187004f, 0.0129949f, 0.148525f, -0.072059f, 0.109706f, -0.081698f, 0.0429764f, -0.000429122f, -0.0288096f, -0.0264125f, -0.0994177f, 0.0133829f, 0.0433564f, -0.0846331f, 0.219408f, -0.0263602f, 0.0938435f, -0.221268f, 0.222918f, 0.0373755f, 0.0589161f, -0.121261f, -0.0804628f, 0.113664f, -0.139597f, -0.125642f, -0.00887114f, 0.00552937f, -0.0164315f, -0.0694847f, 0.0851128f, 0.0694732f, -0.187857f, 0.0351342f, 0.0694111f, -0.118878f, 0.00543096f, -0.0612955f, 0.108692f, 0.0554383f, -0.110606f, -0.0485099f, 0.125225f, -0.0711143f, -0.139628f, -0.176f, 0.187481f, -0.103777f, -0.0836664f, -0.0127071f, -0.0810143f, 0.0143012f, -0.0145565f, -0.0457489f, -0.138421f, 0.000357895f, -0.0963568f, -0.0389868f, -0.104343f, -0.031293f, -0.0685719f, 0.0248951f, 0.0400679f, -0.0714347f, 0.00812944f, -0.0170235f, 0.130412f, -0.0542953f, 0.155034f, 0.0277394f, -0.0701158f, -0.00031903f, -0.0313109f, 0.0381292f, 0.0257225f, -0.0406421f, 0.0467744f, 0.0506686f, -0.00614763f, -0.0939602f, -0.0901973f, -0.107073f, 0.0789507f, -0.0688721f, -0.124005f, -0.220336f, -0.0657217f, 0.150955f, -0.0656306f, -0.138995f, 0.0448521f, 0.0639953f, 0.00492277f, -0.0380015f, -0.115688f, -0.0129765f, -0.0925637f, 0.233688f, -0.0962142f, -0.0790228f, 0.042625f, 0.170555f, -0.106942f, -0.000725626f, 0.0147787f, -0.0836188f, -0.0193328f, 0.00399415f, 0.0677136f, 0.0350426f, -0.0569567f, 0.163307f, -0.0745063f, 0.222985f, 0.0320919f, -0.0279732f, 0.0144509f, -0.22631f, 0.0129129f, 0.0143648f, 0.00805802f, 0.0215325f, -0.101831f, -0.0186474f, 0.0368407f, 0.0469841f, -0.0321794f, -0.00828188f, 0.065899f, 0.102496f, -0.0298018f, -0.116342f, -0.149558f, 0.177264f, 0.0152315f, -0.07265f, 0.0520465f, -0.016802f, -0.0117302f, 0.0172507f, -0.0136924f, -0.120128f, 0.0622973f, -0.0499137f, 0.293953f, 0.0490518f, -0.101818f, -0.0470209f, 0.0287299f, -0.0691678f, 0.0140771f, 0.045677f, -0.279626f, 0.142601f, 0.00696243f, -0.0216621f, 0.164962f, 0.084331f, -0.0659279f, 0.153129f, -0.0934788f, 0.075748f, 0.0830694f, 0.0767609f, -0.0674256f, -0.0836741f, 0.03046f, -0.165058f, 0.0518121f, 0.245999f, 0.146981f, -0.0158993f, -0.13943f, -0.0703364f, 0.0765873f, -0.208494f, 0.0271566f, -0.030777f, 0.0106501f, -0.0588563f, 0.126554f, -0.131249f, 0.124257f, -0.09077f, 0.0456901f, 0.0144108f, -0.0731724f, 0.0928323f, 0.0233976f, 0.0492859f, -0.0452f, -0.152789f, 0.0530636f, -0.0782512f, -0.0389111f, -0.152086f, 0.224474f, -0.0513695f, -0.0076073f, -0.125766f, 0.0781261f, 0.0400216f, 0.00845254f, -0.0170695f, -0.0903109f, -0.0595327f, 0.0287339f, -0.0240972f, -0.0540308f, -0.0651942f, 0.0942344f, 0.0441037f, -0.0516377f, -0.0108279f, -0.222858f, 0.0651515f, 0.0528844f, -0.103082f, 0.0423686f, 0.0234513f, 0.21441f, -0.00725151f, -0.0470352f, -0.02764f, -0.0826406f, 0.128232f, -0.00160771f, -0.0152941f, -0.034414f, -0.0517355f, 0.0762722f, -0.0792319f, 0.0674588f, -0.039939f, 0.0460504f, 0.0366026f, -0.0451284f, -0.106007f, -0.0497838f, 0.0504037f, 0.00120919f, -0.00646682f, 0.0485608f, -0.0318166f, -0.0732227f, 0.148258f, -0.0310479f, 0.00590283f, -0.163842f, -0.0918244f, -0.169126f, 0.0716082f, -0.0543964f, 0.0242136f, -0.110495f, -0.114416f, 0.0112638f, -0.0105034f, -0.069118f, 0.0803641f, 0.0285653f, -0.0374409f, 0.0669134f, 0.126303f, -0.0376842f, -0.0228354f, 0.121406f, 0.166642f, -0.0520295f, -0.109169f, 0.0631167f, -0.203048f, 0.332771f, -0.0283019f, -0.00485909f, 0.0555044f, -0.0790467f, 0.0515368f, -0.0653829f, -0.0398535f, -0.146188f, 0.0556475f, -0.0321071f, 0.018498f, -0.0291517f, -0.177023f, -0.00504973f, 0.0250501f, -0.100902f, 0.00313753f, -0.0247092f, 0.119399f, 0.0157814f, 0.112367f, 0.000580315f, 0.107636f, -0.0923916f, -0.00630551f, -0.16747f, 0.0746898f, -0.0671759f, 0.0502275f, -0.213807f, 0.0862763f, -0.136182f, 0.0732957f, -0.219695f, -0.0609815f, 0.0701927f, 0.0796133f, 0.238277f, -0.0660894f, 0.0951584f, -0.0338125f, 0.0346487f, -0.0783338f, -0.0400345f, 0.244347f, 0.0425091f, -0.0512516f, 0.0467009f, 0.144291f, 0.00308308f, 0.140813f, 0.0741467f, 0.0309043f, -0.170851f, -0.108007f, 0.0663936f, -0.104541f, -0.148045f, 0.00967727f, -0.0608665f, -0.016666f, -0.0605086f, 0.0731012f, 0.113616f, 0.00203123f, -0.0179524f, 0.0462609f, -0.00460647f, -0.0323094f, -0.151189f, -0.145861f, -0.180389f, 0.0873872f, 0.0283462f, -0.217723f, 0.0693256f, -0.114861f, 0.234111f, -0.00266062f, 0.0471846f, 0.0418277f, -0.0376863f, -0.181891f, 0.191182f, -0.0540763f, -0.139821f, -0.0075263f, -0.0136702f, -0.00902669f, 0.0634324f, -0.0678152f, -0.240799f, -0.0487811f, -0.0346143f, -0.184017f, 0.06486f, 0.0705154f, 0.029347f, -0.178881f, 0.018623f, 0.0737087f, 0.269751f, -0.0293842f, -0.131889f, 0.0973597f, 0.0447008f, 0.10251f, 0.0320889f, 0.131479f, 0.103002f, -0.069068f, -0.0792025f, 0.0188989f, -0.0634055f, -0.0645367f, -0.0147133f, 0.182519f, -0.141599f, 0.0596878f, 0.0510767f, -0.0751532f, 0.00104182f, -0.0339096f, -0.165755f, 0.0368838f, 0.0749683f, 0.111604f, -0.0306413f, -0.0184164f, 0.0124413f, -0.0339678f, -0.225028f, 0.0712941f, -0.0517323f, -0.120952f, -0.0479652f, 0.0508793f, 0.0196003f, -0.0462948f, -0.0491124f, -0.0556003f, 0.0680783f, 0.122598f, -0.10908f, 0.093011f, -0.0457612f, 0.0629194f, -0.0580799f, 0.0607098f, 0.0611308f, 0.0130399f, -0.0498849f, 0.00680586f, -0.0443399f, 0.150011f, -0.0113003f, -0.0524151f, -0.0159129f, -0.00864216f, -0.154043f, 0.0432217f, 0.032956f, -0.242955f, -0.051209f, -0.103157f, -0.171449f, 0.0436137f, 0.147025f, -0.0803989f, 0.184003f, 0.108334f, -0.0553209f, 0.218396f, 0.071565f, -0.00288254f, 0.00477781f, -0.153846f, -0.0093425f, -0.185963f, -0.0348301f, 0.0159204f, 0.0581262f, -0.14192f, -0.057242f, -0.0170497f, -0.0473719f, -0.0621933f, 0.129541f, 0.307178f, -0.0733543f, -0.106985f, 0.0349523f, 0.0914096f, -0.0538105f, -0.00351006f, 0.0537194f, -0.0262069f, 0.0031803f, 0.0185135f, -0.146047f, -0.0337667f, 0.145615f, -0.0127897f, -0.0120987f, 0.0385192f, 0.00030573f, -0.0307514f, -0.0131925f, -0.0485358f, 0.0575241f, -0.134704f, 0.00571972f, -0.0999359f, -0.103694f, 0.0787931f, 0.207602f, 0.0588064f, 0.135161f, 0.0533832f, 0.0817504f, -0.162078f, -0.047386f, 0.0601783f, 0.0346274f, -0.0775385f, -0.0463815f, 0.0662313f, -0.0157673f, 0.0801497f, -0.0603838f, 0.08134f, 0.0492238f, -0.0721582f, 0.263675f, 0.0970693f, -0.0708658f, 0.107527f, -0.0231575f, 0.072511f, -0.2309f, -0.0165039f, 0.0895077f, -0.0680017f, -0.0281927f, -0.112555f, 0.0444799f, 0.231907f, 0.0326653f, -0.0748532f, -0.0498372f, -0.0635352f, 0.0406218f, -0.059493f, 0.126371f, 0.0332159f, 0.0516171f, -0.0213034f, -0.169279f, -0.0440604f, -0.056789f, 0.0682142f, 0.281055f, 0.00059082f, 5.93445e-05f, -0.0349727f, 0.122696f, 0.210495f, -0.127795f, 0.114892f, -0.0340452f, -0.135827f, -0.100656f, 0.0142365f, -0.0417882f, -0.0706398f, 0.0760093f, -0.049482f, 0.149799f, -0.00339257f, -0.195572f, -0.0797565f, -0.0092676f, -0.0432584f, -0.0777052f, -0.0743008f, -0.134798f, 0.0923631f, -0.048209f, -0.105517f, 0.0435366f, 0.0168785f, -0.0267198f, 0.0212696f, 0.17626f, -0.00446912f, 0.343013f, 0.137169f, -0.039775f, 0.100574f, 0.0461157f, 0.131611f, 0.0988755f, 0.00837089f, 0.0533181f, -0.150099f, 0.00505005f, 0.0852755f, -0.121232f, 0.0194702f, 0.19387f, -0.126356f, -0.0824739f, -0.0107927f, 0.122304f, 0.0481622f, 0.0315266f, 0.0804498f, 0.0163158f, -0.00808498f, -0.153099f, -0.0126234f, 0.0336042f, 0.0195148f, -0.0133091f, 0.0443812f, -0.178094f, 0.00877129f, -0.0243367f, 0.116195f, 0.0911727f, -0.156826f, 0.0531331f, -0.101068f, -0.109992f, -0.0483089f, -0.00679061f, 0.145237f, -0.151575f, 0.114041f, -0.0368617f, -0.0554208f, 0.131665f, 0.217824f, 0.0530849f, -0.0608839f, 0.165569f, 0.0211973f, 0.0612685f, 0.0147504f, -0.0800381f, 0.00882589f, -0.0109358f, -0.133419f, 0.0957986f, -0.0989935f, 0.0809569f, -0.126186f, -0.0452565f, -0.08301f, 0.00615438f, 0.0672115f, -0.0208436f, 0.0532778f, -0.107986f, -0.0538675f, 0.0688534f, 0.0903238f, -0.0267184f, -0.139371f, 0.0145134f, -0.0872045f, -0.0084722f, 0.004602f, 0.0828331f, 0.1786f, -0.140726f, -0.179817f, 0.0012758f, -0.0916184f, -0.00335776f, 0.0963306f, -0.046498f, -0.0667799f, 0.0485667f, 0.0135206f, -0.0204337f, 0.0340639f, 0.0250551f, 0.0551054f, 0.00304437f, 0.216458f, 0.104669f, -0.0620524f, 0.15339f, 0.233812f, 0.00866148f, -0.0703701f, 0.0570133f, -0.123096f, -0.0768359f, 0.0211043f, -0.0309133f, 0.0215098f, -0.0682187f, -0.149251f, -0.0370169f, 0.109471f, -0.0585101f, -0.230441f, 0.0140294f, -0.0418492f, -0.0441468f, 0.228395f, -0.2213f, 0.00312f, 0.0191631f, 0.0421662f, 0.210234f, 0.152441f, -0.124739f, 0.115949f, -0.0534794f, 0.0136794f, 0.00426113f, 0.024024f, -0.124517f, -0.04459f, 0.0922281f, 0.0473717f, -0.264841f, 0.0382393f, 0.0411373f, -0.0328845f, 0.151761f, -0.0664059f, -0.274222f, 0.0374136f, -0.0066144f, 0.286724f, -0.0631593f, 0.00987647f, 0.0344312f, -0.0361854f, -0.0388566f, 0.0357764f, -0.149885f, 0.0135312f, -0.0520114f, -0.0540697f, 0.164911f, 0.0100077f, 0.125017f, -0.016637f, 0.0385248f, -0.0282486f, -0.0434541f, 0.062999f, 0.142927f, -0.0877223f, 0.243355f, 0.0602568f, 0.175443f, -0.124462f, 0.0722035f, 0.0410578f, 0.214247f, -0.250142f, 0.102962f, 0.0499936f, -0.124563f, -0.154761f, 0.0823245f, 0.0804839f, 0.14233f, 0.00915338f, 0.00908827f, -0.082319f, -0.206649f, -0.0824811f, 0.0990466f, 0.167842f, -0.0188664f, 0.202128f, 0.0761685f, -0.0364967f, 0.0918883f, 0.0961641f, -0.0880401f, 0.104691f, 0.0443718f, -0.164256f, -0.0765463f, -0.0376878f, -0.0865421f, 0.0443866f, -0.19494f, -0.168363f, -0.0849302f, 0.104385f, -0.00910063f, -0.0646435f, 0.137062f, 0.0501512f, -0.0406153f, -0.103815f, 0.171064f, 0.205055f, -0.112543f, -0.0401965f, 0.0597855f, -0.0123676f, 0.00653471f, 0.0355389f, -0.0659408f, 0.3599f, -0.160758f, -0.0901989f, -0.0128776f, 0.0512941f, 0.0732573f, 0.0817263f, 0.0496791f, -0.031851f, -0.149793f, -0.065325f, -0.12445f, -0.0495925f, -0.0923692f, 0.0399063f, -0.20097f, 0.247569f, 0.0340056f, 0.240194f, -0.0568512f, -0.0584621f, 0.155817f, -0.0339161f, -0.0878829f, 0.0342855f, 0.0685788f, -0.108407f, -0.108032f, 0.167455f, 0.105f, -0.0510845f, 0.124596f, 0.131675f, -0.0891357f, -0.22237f, -0.0826289f, -0.177886f, -0.210695f, -0.00454929f, 0.0564656f, 0.0041082f, -0.121284f, 0.174047f, -0.0705451f, -0.0450263f, -0.0828047f, 0.0577521f, -0.0964724f, 0.204021f, 0.0983872f, 0.115844f, 0.240924f, -0.107399f, -0.117081f, 0.011034f, 0.0353568f, -0.124567f, -0.201595f, -0.0726433f, 0.0645475f, -0.0526589f, -0.0103833f, -0.0446479f, 0.0633366f, -0.275019f, 0.06748f, 0.00856777f, -0.0239164f, -0.215827f, -0.0865085f, 0.00245297f, 0.179796f, -0.0207552f, -0.00779361f, -0.0806026f, -0.0540837f, 0.0432044f, -0.0938005f, -0.0243788f, -0.0832723f, -0.00637855f, 0.0313753f, -0.0920368f, 0.124958f, -0.00908096f, -0.0166808f, -0.158691f, 0.234685f, 0.269601f, 0.0227875f, 0.0290086f, 0.134895f, 0.119189f, 0.207752f, 0.105583f, 0.0470785f, 0.424345f, 0.120449f, 0.152923f, 0.0267982f, 0.00776407f, -0.000499434f, -0.0969188f, -0.133818f, -0.056606f, -0.0540999f, 0.0563581f, -0.055489f, -0.179071f, 0.164235f, -0.0804784f, -0.115344f, 0.0418188f, -0.132675f, -0.150347f, -0.04118f, -0.154731f, -0.221543f, -0.179993f, 0.0532793f, -0.0240512f, -0.0251138f, -0.120431f, -0.271935f, -0.095566f, -0.0963907f, 0.00630557f, -0.0928462f, 0.0915107f, -0.298363f, 0.167111f, -0.0184519f, 0.0206154f, 0.116886f, -0.0510443f, 0.0474213f, -0.0727563f, -0.0326441f, 0.0359573f, -0.0714546f, -0.153197f, -0.102714f, 0.127851f, -0.13096f, 0.0127164f, -0.192911f, 0.102156f, 0.212334f, 0.10887f, -0.0362894f, 0.036457f, 0.15549f, -0.137254f, -0.0642583f, -0.00777874f, -0.127898f, -0.0200382f, 0.00891471f, -0.0750236f, -0.0649825f, 0.0350731f, 0.0456877f, 0.144781f, 0.182172f, -0.0454856f, -0.120769f, -0.029398f, 0.00177758f, 0.00736085f, -0.0763301f, -0.0848401f, -0.0170329f, 0.0436006f, -0.0429511f, 0.144184f, -0.198198f, 0.272794f, -0.00109039f, -0.0836754f, 0.141008f, 0.0176647f, 0.0101958f, 0.0917936f, 0.0869659f, 0.0755067f, -0.0998683f, -0.125264f, 0.105026f, -0.13927f, 0.00697027f, 0.167274f, 0.133526f, 0.153582f, -0.194363f, 0.00478077f, -0.00126412f, -0.0230298f, -0.0479135f, -0.0973624f, -0.146556f, -0.092896f, -0.0107063f, -0.0810902f, -0.0387354f, 0.0266364f, -0.0841319f, 0.0827867f, -0.0438216f, 0.00403705f, -0.0450552f, 0.115525f, -0.104068f, -0.0218425f, 0.0310337f, 0.0508732f, 0.0815864f, 0.0968205f, -0.0665454f, 0.251412f, 0.0704053f, -0.0335324f, -0.137831f, 0.162232f, 0.0929866f, -0.0729217f, -0.0357832f, 0.163734f, 0.0972969f, -0.0706791f, 0.246149f, 0.19256f, -0.050078f, -0.00313349f, 0.0061017f, 0.0930541f, 0.100068f, -0.0924651f, 0.011443f, 0.0397145f, -0.0332074f, -0.173124f, -0.147879f, 0.155095f, -0.026286f, 0.0673294f, -0.260696f, -0.32841f, 0.107644f, -0.0975873f, -0.0482386f, 0.124449f, 0.102527f, -0.0487426f, -0.225602f, -0.135427f, 0.0773494f, 0.130061f, -0.0736243f, 0.0887284f, 0.166683f, 0.116505f, 0.00464662f, -0.136334f, 0.128662f, -0.00656861f, -0.0686441f, 0.114292f, -0.0755676f, -0.00845295f, -0.0392668f, -0.203636f, -0.13557f, -0.0429992f, -0.0034228f, 0.0277409f, 0.184625f, -0.0272732f, -0.0384527f, 0.0673711f, -0.00804211f, 0.0542528f, -0.115094f, -0.0305326f, -0.0614846f, -0.0335265f, 0.0293183f, -0.105471f, 0.165538f, 0.0259064f, -0.0295227f, 0.10647f, 0.0648351f, 0.0215266f, 0.0767222f, 0.0286708f, -0.100746f, 0.0353861f, 0.0395104f, -0.0147002f, -0.0880931f, -0.0771722f, -0.043686f, -0.0367157f, 0.064731f, -0.165256f, -0.0754759f, 0.0573624f, 0.000422623f, -0.0978469f, -0.0518597f, -0.051176f, 0.0918839f, -0.0353395f, 0.329382f, 0.187887f, -0.0844402f, -0.197752f, 0.0631239f, 0.00681919f, -0.0428092f, -0.0454641f, -0.112112f, 0.0801629f, -0.0274203f, -0.0525347f, 0.00307354f, -0.159572f, 0.137499f, 0.00721207f, -0.166626f, 0.0397302f, -0.0833201f, 0.022155f, -0.00734261f, -0.0410775f, -0.10548f, -0.0177027f, -0.0332642f, 0.00817906f, 0.0086763f, 0.0306773f, -0.16687f, -0.0359509f, 0.0638716f, -0.215622f, 0.023107f, -0.0753536f, 0.0612546f, 0.12017f, 0.113469f, 0.129731f, 0.135147f, 0.0126414f, -0.108709f, -0.193427f, 0.155878f, 0.119046f, 0.0286354f, 0.145217f, -0.23901f, 0.0599815f, -0.0291464f, -0.0975447f, 0.146207f, -0.041408f, 0.00883556f, -0.0923515f, 0.243518f, -0.158279f, 0.0256296f, 0.0234435f, -0.0599292f, 0.00295716f, 0.149708f, -0.0411365f, -0.113288f, -0.0625988f, 0.0247806f, -0.0217206f, 0.0866732f, -0.0284054f, 0.113424f, 0.0446983f, -0.0767101f, -0.151939f, 0.0239934f, -0.100498f, 0.0395381f, 0.140608f, 0.0266133f, 0.173932f, -0.0155246f, -0.0478337f, -0.0564567f, 0.0348662f, -0.0355493f, 0.0333962f, -0.11239f, -0.00571101f, -0.0333216f, -0.0440574f, -0.251991f, -0.00817705f, 0.0619783f, -0.00436646f, 0.0978985f, 0.123704f, 0.00613327f, 0.0392085f, 0.070088f, -0.133522f, -0.142992f, -0.0375485f, -0.0640332f, -0.0403595f, -5.75052e-06f, 0.0717403f, -0.161083f, 0.0593711f, 0.118731f, 0.0203996f, 0.00711259f, -0.0501021f, -0.109361f, 0.136525f, 0.122847f, 0.171141f, -0.0356413f, 0.0558423f, -0.04774f, 0.0447883f, -0.0244215f, 0.0181153f, 0.0688022f, 0.0230226f, 0.143811f, 0.0406581f, -0.111349f, -0.24135f, 0.0165201f, 0.0781284f, 0.205802f, -0.0465264f, 0.136012f, -0.0635957f, -0.0247549f, -0.0713437f, -0.208568f, 0.108967f, 0.0739734f, -0.0597746f, -0.107993f, -0.0164807f, -0.151928f, 0.00959011f, 0.104907f, 0.00334064f, -0.0765531f, -0.168141f, 0.0107104f, 0.0112178f, 0.0364351f, 0.0232702f, -0.0413301f, 0.022561f, 0.0535088f, -0.10831f, 0.0134401f, -0.0266956f, 0.030247f, 0.0311629f, -0.0949483f, -0.0930703f, 0.104269f, 0.156875f, 0.00571971f, -0.0661346f, 0.0284851f, 0.0277198f, -0.0389448f, -0.0936061f, -0.121411f, -0.0645096f, -0.0307835f, 0.14435f, -0.215672f, -0.120969f, 0.121171f, 0.0868773f, -0.0160812f, 0.0260777f, 0.0899647f, -0.129441f, -0.166406f, 0.144614f, 0.00194663f, 0.079956f, 0.11378f, -0.168089f, -0.160424f, -0.0239205f, 0.0821433f, 0.0117533f, 0.143733f, -0.0324496f, -0.0311362f, 0.0885356f, 0.170229f, 0.106952f, 0.126019f, -0.102247f, -0.072848f, 0.0541121f, -0.0674208f, -0.00295975f, 0.182746f, 0.19574f, -0.119221f, -0.0108513f, -0.104934f, -0.169452f, 0.103864f, 0.0963261f, 0.0175643f, -0.118689f, -0.0827297f, -0.0893514f, 0.0199966f, 0.248245f, -0.028303f, -0.0457104f, 0.109089f, 0.00570751f, -0.0168216f, -0.0547495f, 0.0228474f, 0.0301832f, -0.0153307f, -0.11476f, 0.0917778f, 0.0630405f, -0.0330611f, -0.0132663f, -0.0409467f, -0.0806732f, 0.0418542f, 0.100664f, 0.0993142f, -0.148827f, -0.0788309f, -0.060144f, -0.0357413f, -0.0747159f, -0.0546155f, 0.00151926f, 0.118648f, 0.0390965f, 0.145085f, -0.0375541f, -0.00593353f, 0.032073f, -0.0188365f, -0.115887f, -0.0197806f, 0.0248466f, 0.0610959f, 0.0630452f, 0.0471944f, -0.0545818f, -0.0333437f, 0.132197f, -0.150761f, -0.0446915f, -0.0127964f, 0.113015f, -0.118314f, -0.146685f, 0.0745224f, 0.0917776f, -0.0562881f, -0.0144032f, -0.0403286f, -0.0460321f, -0.0878884f, 0.122962f, -0.0565932f, 0.0387289f, 0.0630485f, 0.0635239f, -0.176891f, 0.145794f, 0.0061583f, 0.0766855f, 0.0137212f, 0.141727f, 0.0564358f, -0.0845998f, 0.151356f, -0.0947183f, 0.0830108f, 0.0980215f, -0.104812f, -0.00259322f, 0.101339f, 0.0870183f, -0.087825f, 0.046159f, 0.0274979f, 0.0336621f, -0.180775f, -0.052684f, 0.091826f, 0.160067f, 0.0167493f, -0.0592635f, -0.0494125f, -0.0286861f, 0.0179822f, -0.0719513f, -0.0821587f, 0.0986287f, 0.10852f, -0.056883f, 0.0609548f, -0.141402f, 0.115031f, 0.0706905f, -0.0524145f, -0.122584f, 0.037508f, 0.0467165f, 0.175288f, -0.0399252f, 0.125785f, 0.00685116f, 0.15209f, -0.0623805f, 0.0912632f, 0.0284427f, -0.000842367f, 0.0302414f, 0.00116968f, -0.0326028f, 0.164181f, 0.0817028f, 0.169786f, -0.137902f, -0.00619399f, -0.0581272f, -0.0509278f, 0.0763675f, 0.00176022f, -0.00650601f, 0.00182633f, -0.0683513f, 0.0165329f, 0.0557529f, 0.0824455f, 0.157302f, 0.010125f, -0.0712978f, 0.07461f, -0.0606275f, 0.178904f, 0.120952f, -0.0405711f, -0.0746697f, -0.12984f, -0.0467734f, 0.0168139f, -0.0330339f, -0.0481671f, -0.1054f, 0.0759054f, 0.0546691f, 0.123024f, -0.0343696f, -0.195121f, -0.10502f, 0.0889111f, 0.063077f, 0.0405511f, 0.0660603f, -0.0350334f, -0.048831f, 0.0457333f, -0.0929283f, 0.0886421f, 0.0974024f, -0.0796637f, 0.0822283f, -0.0157956f, 0.0353276f, -0.150025f, 0.0732553f, 0.0916312f, 0.0222466f, 0.0941395f, -0.0271506f, 0.0106377f, 0.15245f, 0.111533f, 0.0016066f, -0.136523f, 0.0649155f, -0.0749654f, -0.123924f, -0.0823662f, -0.154212f, 0.0855f, -0.0834075f, 0.154679f, -0.0286901f, 0.0444252f, 0.0991437f, -0.0173469f, -0.14482f, 0.0726251f, -0.0165078f, -0.0780151f, -0.0981764f, -0.104759f, -0.144479f, -0.00688808f, 0.022072f, 0.0869934f, 0.251523f, 0.10461f, -0.132459f, -0.164196f, 0.0662449f, 0.125823f, -0.0656222f, -0.0250515f, -0.014436f, 0.202594f, -0.260907f, 0.00940611f, 0.0864552f, 0.079358f, 0.0176576f, 0.042847f, -0.0711851f, -0.00945587f, 0.118203f, -0.0489616f, -0.100167f, -0.033379f, -0.00250367f, 0.0243812f, 0.0669784f, 0.235814f, -0.0455556f, -0.143911f, -0.00655679f, 0.00738248f, -0.000695194f, -0.012057f, -0.118078f, -0.0561325f, -0.0228474f, -0.144124f, 0.0779672f, 0.036629f, 0.046943f, -0.147466f, 0.0630156f, -0.0246146f, 0.0657494f, -0.161722f, -0.0300914f, 0.067059f, -0.0812349f, 0.277124f, 0.00629778f, 0.0550534f, 0.144828f, -0.128774f, 0.0105763f, -0.0757097f, -0.0206072f, -0.059938f, 0.142922f, -0.0461934f, -0.0872241f, 0.0393096f, -0.0758022f, -0.100534f, -0.0725055f, 0.174995f, -0.0759525f, 0.180558f, 0.0120879f, -0.0156899f, -0.0572998f, -0.0633344f, -0.109556f, -0.0374224f, 0.0240567f, 0.222335f, 0.0665826f, -0.173576f, 0.041167f, -0.226526f, -0.0521423f, -0.250799f, -0.0393393f, -0.0149998f, 0.081701f, 0.156323f, -0.174609f, 0.119774f, 0.0455094f, -0.085371f, -0.0191345f, 0.130084f, -0.0360743f, -0.0746149f, -0.0460038f, 0.118726f, -0.0149415f, 0.00595211f, 0.0531642f, 0.0941216f, 0.0383128f, 0.0591275f, -0.00657825f, 0.00292331f, -0.0301814f, -0.00164704f, 0.0631712f, 0.000465091f, 0.0428726f, -0.0952613f, -0.00396482f, 0.170376f, 0.11387f, 0.0322705f, 0.00702027f, -0.0417675f, -0.254047f, -0.0462444f, -0.111315f, -0.139615f, -0.0381543f, -0.123529f, -0.0945109f, 0.152162f, 0.132404f, 0.0964449f, 0.0344965f, -0.0745565f, -0.0749319f, -0.0264968f, 0.187661f, -0.113909f, 0.058469f, 0.0606402f, 0.183397f, 0.138706f, 0.105562f, 0.121213f, 0.171153f, -0.0591641f, -0.105729f, -0.241572f, -0.0464361f, -0.159191f, -0.117167f, 0.171575f, -6.48108e-05f, 0.0242765f, -0.052665f, -0.157588f, -0.00307439f, -0.0593315f, 0.0739532f, -0.0701401f, 0.0253548f, -0.062873f, -0.0575358f, 0.111952f, -0.0276013f, 0.00505805f, 0.0633434f, -0.110008f, 0.0765134f, -0.0131664f, -0.0579531f, -0.000744202f, 0.115391f, -0.0748572f, 0.00426614f, -0.0279145f, -0.193256f, -0.0813686f, 0.0475613f, 0.185002f, -0.0787502f, 0.0548276f, 0.0962191f, -0.152429f, 0.11009f, 0.121434f, -0.0381729f, 0.105725f, 0.0326961f, -0.0973784f, 0.0655513f, 0.12964f, -0.0902593f, -0.212197f, -0.228385f, -0.0345296f, -0.0526297f, 0.0708762f, 0.0214958f, 0.0654957f, 0.0538804f, -0.0596711f, -0.0368987f, 0.0574266f, 0.0714983f, 0.17618f, -0.021062f, 0.130284f, 0.101838f, -0.156124f, -0.00692708f, 0.313727f, -0.03484f, 0.0775544f, 0.149665f, -0.15087f, -0.0390745f, 0.112165f, 0.121823f, -0.0632878f, -0.177974f, -0.0929845f, 0.0198424f, 0.0770644f, 0.125095f, -0.0655f, -0.205857f, 0.081617f, -0.0915516f, -0.219353f, 0.178586f, 0.0019504f, 0.114903f, 0.146907f, -0.027313f, 0.085503f, 0.213251f, -0.0169327f, 0.0811684f, -0.162208f, -0.0538487f, 0.203486f, 0.0845787f, -0.0194842f, 0.0183919f, 0.0241764f, 0.0612762f, 0.04272f, 0.038995f, -0.0179076f, -0.0603964f, 0.165673f, -0.101483f, -0.123795f, 0.0413644f, -0.139086f, 0.0705305f, 0.208676f, 0.267909f, 0.422803f, -0.068924f, 0.185682f, -0.175547f, -0.0639893f, -0.0774626f, 0.0941451f, -0.084599f, 0.0234156f, 0.110477f, 0.0567123f, 0.0570943f, 0.0321494f, 0.147229f, -0.0807904f, -0.203863f, 0.140391f, -0.157773f, -0.0100581f, -0.0376578f, 0.00539764f, 0.00205872f, 0.00383714f, 0.116719f, -0.0243994f, 0.0343119f, 0.19789f, -0.0684838f, -0.0842114f, -0.0676337f, -0.0868734f, 0.0429674f, 0.0793193f, -0.0113228f, 0.112274f, -0.00897096f, -0.0766935f, 0.149237f, 0.102072f, -0.110154f, -0.00823787f, 0.0365791f, 0.107294f, 0.152928f, 0.103251f, -0.082868f, -0.14756f, 0.0464661f, -0.0530773f, 0.0920516f, -0.14852f, 0.123749f, 0.120283f, -0.00146395f, -0.0401357f, -0.0613337f, -0.174383f, 0.343782f, 0.0673295f, 0.201392f, 0.105375f, 0.0106851f, -0.0513625f, -0.0866565f, 0.0424341f, 0.0103003f, -0.234111f, -0.117869f, 0.00124706f, 0.208064f, 0.0943732f, -0.0674833f, -0.221057f, -0.129039f, -0.00377228f, 0.189138f, 0.00900372f, 0.10874f, -0.0141078f, -0.178865f, 0.0717905f, 0.0749142f, 0.0263621f, -0.138653f, -0.0319109f, 0.086134f, 0.00482186f, 0.13083f, -0.0570167f, 0.129119f, -0.00909826f, 0.0510382f, -0.12926f, -0.00390556f, -0.0665996f, -0.0698034f, 0.110308f, -0.244842f, 0.0766044f, -0.044149f, 0.172439f, 0.186083f, -0.0747485f, -0.0574412f, -0.142255f, -0.178535f, -0.0353405f, 0.0809737f, -0.00681451f, -0.0684785f, 0.0060194f, -0.00711276f, 0.0543555f, -0.0234023f, -0.0256192f, 0.375329f, 0.0654883f, 0.0155233f, -0.0349666f, 0.0416089f, 0.14993f, -0.113152f, 0.137767f, -0.0706908f, -0.0420738f, 0.0413657f, -0.202745f, -0.00235939f, -0.1342f, 0.111028f, 0.00853701f, 0.094898f, 0.0367369f, 0.0045177f, 0.024955f, -0.00347482f, -0.105553f, 0.141968f, 0.271806f, 0.0713529f, 0.381353f, 0.0155007f, -0.0212983f, -0.113499f, -0.097468f, -0.0508748f, -0.167344f, 0.0251969f, 0.167263f, 0.0389772f, 0.0256596f, -0.235149f, -0.0277421f, -0.120079f, 0.247294f, 0.30922f, -0.135436f, -0.0588709f, -0.156128f, -0.173717f, -0.0946978f, 0.129069f, -0.0394193f, 0.0823415f, -0.0582609f, -0.0360456f, -0.0293371f, 0.139763f, 0.137028f, 0.0968936f, -0.116222f, -0.290107f, 0.124167f, -0.0343934f, 0.134632f, -0.0909883f, 0.106911f, -0.104449f, 0.180761f, -0.079927f, 0.193826f, 0.124578f, 0.0813467f, 0.0445208f, -0.00870615f, 0.113696f, -0.199953f, 0.15507f, 0.158593f, 0.109971f, -0.031239f, 0.133256f, -0.0191581f, -0.0535137f, 0.0107261f, -0.0842188f, 0.0574694f, -0.0793531f, 0.0501992f, 0.131208f, 0.00271905f, 0.1944f, -0.0718374f, -0.0395821f, 0.0772265f, 0.0634438f, 0.0159317f, -0.0656135f, 0.0629651f, 0.0159135f, -0.222995f, 0.0444357f, 0.0768791f, -0.198341f, 0.12584f, -0.0907421f, 0.104172f, -0.105539f, -0.0309387f, -0.081459f, -0.0192529f, 0.0415054f, 0.253723f, -0.00853376f, -0.0625301f, 0.189231f, 0.110439f, 0.0121814f, 0.0723478f, 0.00195033f, -0.0946214f, -0.0814622f, -0.0177131f, 0.0579103f, -0.0569634f, -0.112006f, 0.0334237f, 0.214256f, -0.15217f, -0.0136061f, 0.0740774f, 0.212709f, -0.0330252f, -0.140537f, 0.0285208f, -0.0707463f, -0.0030744f, -0.0157705f, -0.0552087f, -0.0484383f, -0.0469575f, -0.061817f, -0.145407f, 0.00693381f, 0.0582268f, -0.114773f, -0.0294061f, -0.0878118f, -0.200806f, -0.0887957f, -0.0070174f, 0.110437f, -0.0568917f, 0.0943802f, 0.239603f, -0.224112f, -0.160674f, 0.0903016f, -0.0472655f, 0.116024f, -0.0628348f, -0.0560067f, -0.145457f, 0.0186076f, 0.0157824f, -0.0841745f, -0.0555805f, -0.0468202f, -0.176821f, -0.148463f, -0.172803f, 0.123791f, 0.0827239f, 0.0360242f, -0.0906845f, -0.234437f, 0.0468248f, -0.185168f, 0.104958f, 0.0353892f, 0.0456586f, -0.13525f, 0.0665482f, -0.130421f, 0.137571f, -0.171016f, -0.0399516f, 0.0495947f, -0.00601868f, 0.232251f, -0.0646971f, -0.149988f, -0.130013f, 0.0914055f, -0.0445081f, -0.13072f, 0.102629f, -0.0748479f, -0.11074f, -0.0472299f, 0.084013f, -0.0346012f, -0.00814538f, 0.0268775f, 0.195772f, -0.0339079f, 0.0286291f, 0.074377f, 0.112821f, -0.00993017f, 0.025772f, -0.17461f, 0.0711026f, 0.0935111f, 0.0929889f, 0.119021f, -0.117831f, 0.0319264f, 0.0784975f, 0.041937f, 0.0158949f, 0.048203f, -0.020288f, -0.0329151f, -0.145662f, 0.115271f, -0.233316f, -0.0276002f, -0.148113f, -0.0588461f, -0.177345f, -0.173017f, -0.0896345f, -0.00762118f, -0.0506012f, 0.0379979f, -0.0728448f, -0.061189f, 0.0898086f, -0.0736001f, 0.0279908f, 0.258501f, -0.068648f, -0.12379f, -0.0749027f, -0.139522f, -0.0945431f, -0.0759768f, 0.0455767f, 0.118946f, 0.0138101f, 0.0925652f, -0.0166016f, 0.10915f, -0.0108616f, 0.0467137f, 0.0274152f, 0.0400248f, -0.159693f, -0.18533f, 0.105626f, -0.117102f, 0.00966959f, -0.0606457f, 0.0764673f, -0.131857f, 0.0589314f, 0.143063f, 0.0509461f, 0.0555712f, -0.0907864f, -8.28708e-05f, -0.202254f, 0.0812921f, 0.036093f, -0.0877895f, -0.0127563f, 0.00677705f, -0.110143f, 0.0177411f, 0.0209921f, 0.110126f, 0.0175961f, 0.0775659f, -0.0293362f, -0.0238543f, -0.00151853f, 0.0654372f, 0.090312f, -0.143851f, 0.0765155f, 0.0479877f, -0.0490412f, -0.0556415f, -0.0647367f, -0.000220386f, 0.0873616f, -0.0578964f, -0.0632774f, -0.0539855f, -0.202298f, 0.0117594f, 0.262836f, -0.00927924f, 0.0358851f, 0.119154f, -0.0886738f, 0.0222808f, -0.0632211f, 0.143046f, -0.0686002f, 0.170611f, 0.0923557f, 0.049584f, 0.00298467f, -0.00363858f, -0.0536282f, -0.0161088f, 0.0333762f, 0.134774f, -0.128666f, -0.193077f, -0.0419626f, -0.0603068f, 0.0468975f, -0.0312701f, 0.0776164f, -0.161919f, -0.00743421f, -0.102227f, 0.0348436f, 0.246181f, 0.0315715f, -0.206025f, -0.09097f, -0.0139297f, -0.0192741f, -0.0437721f, 0.0483894f, 0.136128f, -0.00200192f, 0.13343f, -0.132273f, -0.0564433f, -0.140164f, 0.0143204f, 0.0780438f, 0.0766715f, 0.0419482f, 0.159929f, 0.0445416f, 0.0438306f, -0.00837658f, -0.0879112f, -0.0253029f, 0.105447f, -0.00573629f, -0.0694096f, 0.172363f, 0.14823f, 0.21258f, -0.0339884f, 0.0738634f, 0.0746754f, 0.00013036f, -0.140603f, -0.24563f, -0.149505f, -0.135563f, 0.0826882f, -0.0024181f, -0.0160201f, 0.0639186f, 0.193033f, 0.104783f, -0.00194638f, -0.181046f, 0.0646356f, 0.0672361f, 0.155532f, -0.058083f, 0.0901498f, 0.0654999f, 0.0968596f, -0.163939f, -0.0449424f, -0.0572198f, -0.0192761f, 0.0693893f, -0.115466f, -0.0867823f, -0.0418913f, 0.0402657f, 0.215064f, -0.029141f, -0.000520071f, 0.176274f, -0.100527f, -0.127516f, 0.109146f, -0.0673449f, -0.129417f, -0.241178f, -0.121411f, -0.1035f, 0.137965f, 0.214859f, -0.370595f, -0.068251f, 0.108072f, -0.12302f, -0.049369f, 0.0173866f, 0.0828258f, 0.13584f, 0.126314f, 0.0715837f, 0.0769576f, 0.114151f, -0.100724f, 0.110774f, -0.00496747f, 0.169469f, -0.0796729f, -0.0811412f, -0.0465069f, 0.0829905f, -0.0824913f, 0.00497556f, -0.186156f, -0.0479535f, 0.0180157f, 0.16276f, -0.178999f, 0.0376207f, -0.084011f, 0.0521703f, 0.0603175f, 0.0777965f, 0.0202798f, -0.022367f, -0.276176f, -0.147395f, 0.00884211f, -0.180247f, -0.0329794f, 0.0442693f, -0.242852f, 0.0791255f, 0.18899f, -0.112524f, -0.00107374f, 0.0453195f, 0.073321f, -0.00494647f, -0.112317f, -0.116123f, 0.134486f, 0.0197196f, -0.158031f, -0.152463f, 0.110941f, 0.0992639f, 0.0253657f, 0.0793246f, -0.121731f, 0.0471894f, 0.0122348f, 0.143881f, 0.017847f, 0.0914736f, -0.0225682f, 0.0802962f, 0.139617f, 0.0964373f, 0.0582677f, 0.0486505f, 0.127146f, 0.0102505f, -0.213182f, -0.251332f, 0.0441797f, -0.117791f, 0.144831f, -0.0230767f, 0.109348f, 0.0916932f, 0.0706473f, -0.0510892f, 0.196541f, 0.0920643f, -0.042939f, -0.021314f, -0.125775f, 0.139383f, 0.107103f, 0.00285222f, -0.206863f, -0.101122f, -0.0407802f, 0.0156746f, 0.0252873f, 0.0426323f, 0.182587f, 0.000148735f, -0.105141f, 0.0301903f, -0.0523391f, 0.104658f, -0.159153f, 0.0835499f, -0.185059f, -0.0409373f, 0.174544f, -0.132019f, -0.0307622f, -0.28868f, 0.185647f, 0.0693175f, -0.0679746f, 0.112138f, -0.14947f, -0.018253f, -0.0624129f, 0.0272684f, -0.2512f, 0.0356152f, 0.102934f, 0.161048f, -0.029896f, 0.0528796f, -0.0520679f, -0.182963f, 0.19562f, 0.0300414f, -0.140588f, 0.00663385f, -0.0047373f, -0.123839f, -0.166138f, -0.122928f, -0.114487f, 0.00621131f, 0.0298283f, 0.128008f, 0.117573f, -0.0952523f, 0.0252791f, -0.142233f, 0.0487914f, -0.120087f, -0.1275f, -0.158427f, -0.0748531f, -0.103564f, -0.134265f, 0.0731029f, -0.0861162f, 0.166668f, -0.0710174f, 0.206654f, 0.14072f, 0.0567138f, 0.0152123f, -0.00486719f, 0.227152f, 0.0687286f, -0.0385005f, -0.10303f, 0.201282f, -0.0283722f, -0.063734f, -0.0557491f, 0.0370292f, -0.059009f, -0.121662f, 0.184602f, 0.0591597f, -0.0643434f, 0.0966904f, 0.0883174f, 0.0693135f, 0.1002f, 0.0348308f, 0.074238f, 0.238544f, 0.068013f, -0.00758861f, 0.259448f, 0.0296809f, -0.243026f, 0.0606292f, 0.0296145f, 0.0927638f, 0.046597f, 0.0167125f, 0.133841f, 0.00726043f, 0.0535787f, -0.103053f, 0.0246769f, 0.0660057f, -0.0276792f, -0.0085722f, -0.0444286f, 0.213134f, 0.0418536f, -0.0265873f, 0.111234f, 0.0520029f, 0.105867f, -0.204037f, -0.221275f, -0.0948211f, -0.172074f, 0.0482212f, -0.188277f, -0.0364751f, -0.0760365f, -0.150936f, -0.22533f, -0.127475f, 0.0121554f, 0.0131477f, 0.0467549f, -0.0734214f, 0.0633283f, -0.0453174f, 0.0787649f, 0.0947026f, 0.109352f, 0.0709058f, 0.0895501f, -0.0223399f, 0.10442f, -0.109265f, 0.0440083f, -0.0240086f, -0.0788057f, -0.226583f, 0.0551903f, -0.153923f, 0.221698f, 0.0825708f, 0.102259f, -0.0182912f, -0.00503172f, 0.135851f, 0.00363594f, 0.0920476f, -0.0922186f, -0.00730152f, 0.0755912f, 0.128515f, -0.248343f, 0.0522517f, 0.055924f, -0.132043f, -0.0737345f, -0.0615084f, -0.183248f, -0.295366f, 0.0148547f, 0.138036f, -0.0459838f, 0.011491f, -0.0384452f, 0.0165626f, 0.0151301f, 0.111579f, -0.209266f, -0.0630119f, 0.203031f, -0.0109389f, 0.00107184f, -0.0717288f, 0.109078f, 0.0575116f, -0.0389935f, -0.1586f, 0.09279f, 0.0222636f, -0.220817f, -0.0230287f, 0.100944f, 0.0381399f, -0.159697f, -0.0920624f, 0.175686f, -0.193466f, 0.106674f, -0.0976493f, 0.0710944f, 0.087903f, 0.118813f, -0.114695f, 0.175847f, 0.102218f, 0.0975217f, 0.235689f, -0.00392467f, -0.0316435f, -0.0809886f, 0.141244f, 0.031893f, -0.0679848f, 0.200264f, -0.11398f, -0.01863f, 0.0869518f, -0.0826434f, 0.0169118f, -0.0822337f, -0.108161f, 0.132928f, -0.0620693f, -0.0516205f, -0.095425f, 0.0272945f, 0.00620375f, 0.0802364f, -0.0417155f, 0.0576554f, 0.0155564f, -0.00617123f, 0.200044f, -0.145483f, -0.0192203f, 0.0624765f, 0.0005288f, 0.0645655f, -0.0230132f, 0.0386579f, -0.0533322f, 0.00562697f, -0.0724814f, 0.0255933f, 0.0212292f, 0.0778342f, -0.0315732f, -0.108402f, 0.107424f, 0.153681f, -0.0026756f, -0.0565319f, 0.0453512f, 0.044577f, -0.0883289f, 0.200892f, -0.0323417f, 0.113273f, -0.0249524f, -0.0106335f, -0.0151462f, 0.00988687f, 0.0676158f, 0.0945724f, -0.0775245f, -0.0903881f, 0.0941292f, -0.0649379f, -0.0162275f, 0.0120778f, -0.0783185f, 0.00473661f, -0.097077f, 0.0198062f, 0.0882595f, -0.0777941f, 0.0918226f, -0.0979557f, 0.0938f, 0.0203747f, 0.0690225f, 0.0663847f, -0.188846f, -0.0944624f, 0.198766f, 0.0567211f, 0.0286205f, 0.109373f, -0.0502053f, 0.088769f, 0.113097f, 0.00502265f, -0.0642141f, -0.154923f, -0.0668735f, 0.0875307f, 0.00939022f, -0.0526938f, -0.107396f, -0.0416009f, -0.106518f, -0.10783f, -0.0251427f, -0.083901f, -0.158151f, -0.0356789f, -0.107934f, 0.213994f, -0.0497538f, 0.0662352f, 0.0580847f, 0.128939f, -0.0653828f, -0.115485f, 0.040242f, -0.175817f, -0.00555744f, -0.0671452f, 0.117707f, -0.0799346f, -0.0825664f, -0.0119375f, -0.0066062f, -0.058254f, 0.051299f, 0.0166493f, -0.0342438f, -0.0874534f, 0.044396f, 0.015244f, 0.0889082f, 0.122299f, -0.0672037f, -0.0587961f, -0.0886516f, -0.0568842f, -0.00162414f, -0.0164613f, 0.047556f, -0.109131f, -0.0956202f, -0.0323482f, 0.0547167f, 0.0694362f, -0.0243431f, -0.00735978f, -0.148942f, -0.099803f, 0.0436908f, -0.100663f, 0.014577f, -0.196369f, 0.0276505f, -0.131683f, 0.100722f, 0.0305591f, -0.0889239f, 0.0344166f, -0.107169f, 0.0104092f, -0.0805381f, -0.056386f, -0.0123121f, -0.0630115f, -0.0832406f, 0.0739887f, -0.0551219f, -0.0915935f, 0.0962332f, -0.00181426f, -0.0507536f, -0.000982606f, -0.0196981f, -0.113397f, -0.134261f, 0.00234316f, -0.0768627f, -0.045872f, -0.00396872f, 0.0759223f, 0.0405988f, 0.0162257f, 0.0352959f, 0.00773395f, -0.0841706f, -0.00144908f, 0.0785197f, -0.0778579f, 0.150091f, -0.074545f, -0.060877f, 0.0525925f, -0.0924224f, 0.0478401f, 0.0284219f, 0.068916f, -0.0998987f, -0.10034f, 0.0143598f, -0.0396608f, -0.0346524f, 0.0382413f, -0.0825666f, -0.00400757f, 0.0764587f, 0.0710658f, -0.0245099f, -0.0650414f, -0.0570091f, -0.0202707f, -0.193448f, 0.00769575f, 0.329116f, -0.298834f, -0.0347826f, -0.0412785f, 0.036867f, -0.125692f, 0.256033f, -0.0760816f, -0.0447276f, -0.124247f, 0.0611243f, -0.0143374f, -0.0810888f, 0.0847842f, -0.250762f, -0.00107f, -0.119983f, -0.0699647f, 0.0529796f, 0.0284667f, 0.0112124f, 0.0442305f, 0.0892672f, 0.0907394f, 0.071344f, -0.122072f, 0.0261561f, 0.0591441f, 0.0449377f, -0.118654f, -0.036377f, 0.011648f, 0.0387358f, 0.0240423f, 0.0240376f, 0.0556868f, -0.0743109f, 0.130438f, -0.0285969f, 0.0422893f, 0.0460171f, 0.0387754f, 0.0973091f, -0.0390015f, 0.0299606f, -0.061384f, -0.0669515f, 0.159634f, 0.0398217f, 0.105438f, -0.0490387f, -0.0721785f, 0.0765947f, 0.0669371f, -0.00154602f, -0.092909f, 0.0323685f, 0.0348252f, 0.085277f, -0.114009f, 0.0152273f, -0.0745751f, -0.0516714f, 0.0684581f, 0.0679344f, 0.157742f, -0.149857f, 0.0472996f, 0.0148453f, -0.0752695f, 0.10335f, 0.0308407f, 0.118243f, -0.161043f, 0.0812001f, 0.034273f, -0.157128f, -0.135392f, -0.187976f, 0.0334772f, -0.11698f, 0.138509f, -0.0282159f, 0.0487796f, -0.164108f, 0.0840333f, -0.0184776f, 0.227099f, -0.0164443f, 0.0726695f, -0.0352449f, -0.0635741f, 0.0500963f, -0.0362392f, -0.173227f, -0.00599326f, 0.1427f, 0.0887668f, 0.174802f, 0.109787f, -0.0371115f, 0.00645797f, -0.126417f, -0.0218585f, -0.0299744f, -0.0202557f, 0.0391893f, -0.000511804f, 0.106644f, 0.0905932f, -0.196086f, 0.226288f, -0.0144827f, 0.0298385f, -0.0468412f, 0.0900583f, 0.0120196f, 0.0586311f, 0.143757f, 0.0181869f, 0.0829758f, -0.0220584f, -0.173552f, -0.155141f, -0.104866f, 0.0198365f, 0.191126f, -0.0294541f, -0.131758f, -0.189682f, -0.113547f, -0.00658119f, -0.109042f, -0.136845f, 0.0668931f, 0.124473f, -0.00604193f, -0.0141839f, 0.021643f, -0.122543f, 0.18238f, 0.0181802f, -0.0576293f, -0.152196f, 0.104122f, 0.126125f, 0.105226f, -0.0571706f, 0.062144f, -0.19678f, -0.0509377f, -0.0550488f, -0.104566f, 0.0869566f, -0.0283396f, 0.0451758f, -0.0793755f, -0.251235f, 0.282607f, -0.01522f, -0.122119f, 0.0438178f, 0.109073f, -0.0279333f, -0.100706f, -0.0145353f, -0.000496514f, -0.0498041f, -0.0645066f, 0.212217f, -0.0712562f, -0.0604774f, -0.128544f, 0.0522375f, -0.0979422f, 0.260701f, 0.212528f, 0.136975f, -0.211824f, -0.015492f, 0.00265845f, 0.0864471f, 0.0558914f, -0.0544143f, -0.0413599f, -0.100103f, -0.0453648f, 0.0158997f, 0.12635f, -0.184266f, 0.030765f, -0.00406706f, -0.118318f, 0.0127074f, 0.103865f, -0.0023941f, -0.18083f, -0.113226f, 0.0534211f, 0.0528627f, -0.140447f, -0.0236296f, 0.0243524f, -0.0366337f, 0.0750394f, -0.116519f, -0.106941f, -0.0325815f, -0.00234963f, -0.016514f, -0.0217223f, -0.0550601f, 0.0710528f, 0.0561761f, -0.0344405f, 0.0190747f, -0.216204f, 0.0389581f, 0.0580756f, -0.0861155f, 0.0724135f, -0.173595f, -0.102138f, -0.00671609f, -0.0247259f, 0.0233578f, -0.0535982f, -0.0483738f, -0.0721781f, 0.0456849f, 0.100155f, 0.163071f, -0.0077761f, -0.0189241f, -0.0211159f, -0.090792f, -0.035567f, 0.0698043f, -0.0488337f, 0.0144611f, -0.0329301f, -0.0468312f, 0.0186048f, 0.039416f, -0.109181f, 0.00373151f, 0.0668357f, 0.0730108f, -0.0322626f, 0.0568207f, -0.0276042f, -0.129831f, 0.170216f, -0.135352f, 0.185676f, 0.015018f, 0.347333f, -0.0552814f, -0.00920978f, -0.110544f, -0.132883f, 0.0646512f, 0.0632837f, -0.018425f, 0.117373f, -0.0989121f, 0.145165f, 0.000918425f, 0.0478037f, -0.0440522f, -0.173485f, 0.0393622f, -0.175044f, 0.11629f, -0.168101f, -0.0285384f, -0.143656f, 0.034675f, -0.0238539f, -0.0875663f, 0.0219045f, -0.0111693f, 0.0885099f, -0.114782f, 0.214928f, -0.117256f, -0.0209832f, -0.105922f, 0.123848f, -0.13195f, 0.0426172f, 0.0825061f, -0.0381802f, 0.0987737f, -0.0890799f, 0.0877706f, -0.0119553f, -0.0655525f, 0.0946702f, -0.0662057f, 0.00401964f, 0.178383f, -0.0476905f, -0.0570474f, 0.108311f, 0.0222021f, 0.0562397f, -0.192161f, 0.0673474f, 0.105767f, 0.0157755f, -0.0928177f, 0.189217f, -0.114865f, -0.0247615f, -0.135705f, 0.0337199f, 0.0703613f, 0.0367702f, 0.00983741f, 0.0304045f, 0.0976606f, -0.086826f, -0.00707784f, 0.0540313f, -0.0795327f, -0.102919f, 0.070419f, 0.0481042f, 0.0980905f, -0.0341657f, -0.0504818f, 0.034564f, -0.026984f, -0.0799036f, -0.0518529f, -0.0767125f, 0.0720864f, -0.0535284f, -0.0599999f, -0.0501539f, 0.032783f, 0.0691824f, -0.266429f, -0.0287014f, 0.000181877f, -0.00167835f, 0.0890927f, 0.0181243f, -0.0184064f, 0.00595215f, -0.10862f, -0.0356951f, 0.123422f, 0.140915f, -0.00431286f, -0.0343286f, 0.0438405f, -0.0106277f, 0.138996f, -0.103788f, 0.143927f, 0.0871752f, 0.0691615f, 0.141587f, -0.0879188f, -0.0962036f, 0.0271621f, 0.00822213f, -0.0362467f, 0.0566402f, -0.0343478f, -0.0662924f, -0.0695411f, 0.147902f, 0.0340665f, -0.0876312f, -0.114999f, 0.126239f, 0.0234456f, 0.242995f, -0.109838f, -0.0654341f, 0.123372f, -0.0472227f, -0.0858616f, 0.0412539f, 0.0249025f, 0.137674f, -0.0770968f, -0.033875f, -0.0153367f, 0.0891162f, -0.021885f, 0.0630137f, -9.87753e-05f, 0.0916825f, 0.0153371f, -0.238287f, -0.089807f, 0.0431585f, 0.0704764f, -0.107768f, -0.0211458f, -0.0479968f, -0.0081484f, 0.17813f, -0.017766f, 0.161388f, -0.118143f, -0.0087181f, -0.00711264f, 0.211579f, -0.0291651f, -0.117578f, 0.0226463f, -0.0140147f, 0.0276288f, -0.164945f, -0.058102f, 0.0102887f, -0.217702f, 0.138483f, -0.0941766f, 0.0445226f, -0.0419673f, -0.0445676f, 0.0844235f, -0.0719922f, -0.0407163f, 0.218059f, 0.0322165f, 0.053192f, -0.0310182f, -0.0269136f, 0.0352242f, 0.0535193f, -0.0241583f, 0.263327f, 0.0744766f, 0.189336f, 0.00208059f, 0.0595064f, -0.0824945f, -0.0739418f, 0.210792f, 0.0306769f, 0.030754f, -0.0110559f, 0.186321f, 0.0558013f, -0.0059689f, -0.0210663f, 0.256093f, -0.0997226f, 0.0164056f, 0.182608f, 0.00491666f, 0.105474f, 0.0516664f, -0.0209464f, 0.122161f, 0.0845978f, -0.127312f, -0.114626f, 0.0496425f, 0.241518f, -0.121889f, -0.109332f, 0.000308453f, -0.0219859f, 0.201209f, 0.0165092f, 0.0626671f, -0.0722993f, 0.103644f, 0.036695f, -0.0924052f, 0.0454153f, -0.0788877f, -0.0616984f, -0.00723514f, -0.00795083f, 0.0271886f, 0.0208503f, 0.0805322f, 0.0743665f, -0.00272582f, 0.443421f, -0.0192527f, 0.0365664f, -0.0411974f, 0.098312f, -0.0719502f, 0.0157547f, 0.0752653f, -0.175809f, 0.0131142f, 0.133426f, 0.0869316f, 0.179028f, -0.102946f, 0.00736612f, 0.0523273f, -0.0755086f, -0.0510183f, 0.103354f, -0.00671885f, 0.201142f, 0.110029f, -0.0418037f, 0.119788f, -0.132769f, 0.0764315f, 0.155238f, -0.0206273f, -0.0300482f, 0.306762f, -0.15331f, 0.196955f, 0.065693f, -0.0478052f, -0.0901558f, 0.0179716f, -0.209942f, 0.0732055f, -0.113378f, 0.0909033f, -0.00629509f, 0.134876f, -0.0886035f, 0.0496228f, 0.0857808f, -0.099653f, -0.0895732f, 0.0650384f, -0.0345856f, 0.116875f, 0.0946408f, -0.135938f, 0.167286f, 0.00115201f, 0.0693606f, 0.049475f, 0.0747095f, 0.207828f, 0.125093f, -0.0141459f, 0.00251493f, 0.0920833f, -0.140073f, 0.164493f, 0.190233f, -0.110415f, -0.0686024f, -0.0198925f, -0.10528f, -0.0120067f, 0.209774f, -0.0885614f, 0.113254f, 0.0814153f, -0.0378687f, 0.0793423f, 0.0647023f, 0.00277022f, 0.10984f, -0.110031f, -0.113984f, -0.0605638f, -0.0512236f, 0.058235f, -0.0260707f, 0.107869f, -0.00451804f, 0.062766f, 0.0670907f, 0.0966496f, -0.0753227f, 0.0365585f, 0.000692388f, 0.0532488f, 0.0695382f, -0.0110695f, -0.0719125f, -0.153233f, -0.103841f, -0.0956632f, -0.0191913f, 0.158518f, -0.0138027f, -0.0553548f, -0.0544181f, -0.121629f, 0.086215f, -0.00590839f, -0.0431607f, 0.0727476f, 0.0140906f, 0.199599f, -0.0793645f, 0.168469f, 0.0575111f, 0.166673f, 0.239851f, -0.0826758f, 0.0312977f, 0.0844184f, 0.181555f, -0.0172587f, -0.0419162f, 0.041592f, -0.0588745f, 0.0302639f, -0.110435f, -0.0717858f, -0.0632057f, -0.000147699f, 0.0183519f, -0.0612314f, -0.145215f, 0.0497531f, -0.163183f, 0.0446154f, 0.0475818f, -0.0240585f, 0.0227522f, -0.0295369f, -0.0886829f, -0.0115471f, 0.10096f, -0.0620001f, 0.196252f, 0.011513f, 0.00499642f, -0.0759093f, -0.090115f, -0.0868038f, -0.106898f, 0.0366562f, 0.0977483f, -0.0392086f, -0.0398812f, -0.00872921f, 0.00925696f, -0.169812f, 0.0281893f, -0.076625f, -0.055505f, 0.0913317f, -0.0327362f, 0.0375793f, -0.115416f, 0.0368263f, -0.109179f, -0.0363703f, -0.0446982f, -0.126797f, -0.199761f, -0.00670865f, 0.106094f, -0.043279f, -0.0576618f, -0.199252f, -0.0692396f, 0.050511f, 0.133013f, -0.174039f, 0.294842f, 0.0944248f, -0.0894454f, -0.0309957f, -0.0766165f, -0.0469291f, 0.00841396f, -0.0411987f, -0.0364092f, -0.0346004f, -0.0190982f, 0.0684526f, 0.143438f, -0.00626735f, -0.0121156f, 0.0448284f, -0.106482f, 0.0482371f, -0.200256f, -0.0716031f, -0.0964032f, 0.0290349f, 0.0599218f, 0.0105917f, 0.0746126f, -0.0564458f, 0.0311433f, 0.0319169f, 0.0411946f, -0.0392632f, -0.067972f, -0.0233598f, 0.0677155f, 0.0867251f, -0.0499301f, 0.0310668f, -0.0436501f, -0.151331f, -0.0398773f, 0.0219128f, 0.124797f, -0.119816f, -0.0964722f, -0.0610045f, -0.0596843f, -0.178209f, -0.0531169f, 0.0118851f, 0.174163f, 0.0491309f, 0.139119f, -0.00753046f, -0.153523f, -0.189231f, 0.0192852f, 0.176811f, -0.0995054f, 0.0152282f, -0.0213167f, 0.0700993f, -0.0945286f, -0.0172081f, 0.0453666f, 0.144082f, -0.0663721f, -0.0771789f, -0.110895f, -0.0605201f, -0.10473f, 0.12848f, 0.0966996f, -0.0795903f, 0.0363556f, 0.203868f, -0.135064f, 0.120035f, 0.077672f, 0.164875f, 0.0127233f, 0.0295036f, 0.09236f, -0.081687f, -0.0426524f, 0.174589f, -0.0823717f, 0.0386186f, 0.124161f, -0.0779051f, 0.0471801f, -0.0586515f, -0.13278f, 0.0216582f, 0.0399817f, 0.118167f, -0.00361368f, -0.269523f, -0.0420991f, 0.0314009f, -0.162172f, -0.0089399f, -0.0997062f, 0.00313612f, -0.0190341f, -0.0206772f, -0.0512721f, -0.0548824f, 0.26459f, -0.0615077f, -0.114611f, 0.142618f, 0.190257f, 0.0382038f, 0.093383f, -0.0923356f, 0.0638186f, -0.0192481f, -0.114592f, 0.0936721f, 0.214958f, -0.0284376f, -0.0312666f, -0.0657702f, 0.230995f, 0.0795574f, -0.228753f, 0.0423678f, 0.00554329f, -0.0305149f, -0.0615465f, -0.0211159f, 0.0228898f, -0.146498f, 0.107585f, -0.187942f, 0.0255128f, -0.0913252f, 0.0627794f, 0.0372327f, -0.0534619f, -0.135558f, 0.0649748f, -0.0654677f, 0.0998468f, -0.0221075f, 0.004399f, -0.166465f, -0.0348812f, 0.0953867f, 0.0323814f, 0.0395596f, 0.0551527f, 0.0345152f, 0.103426f, 0.208511f, 0.0424482f, 0.0976125f, -0.0909087f, 0.0286702f, -0.0369553f, 0.175714f, -0.00113755f, 0.133157f, 0.0497828f, -0.0139192f, -0.100153f, -0.0786767f, -0.0368748f, 0.0837452f, 0.0716064f, -0.0221978f, -0.0748121f, 0.105474f, 0.04911f, -0.108423f, -0.0672255f, 0.0170178f, 0.0187227f, 0.0683168f, -0.0818336f, 0.00552746f, -0.0768436f, -0.0814843f, -0.149329f, -0.0497501f, -0.0181134f, 0.0443052f, -0.0575681f, -0.0438008f, -0.257942f, 0.0609161f, -0.0478843f, -0.00513603f, 0.0822447f, 0.27093f, 0.0805294f, 0.0391578f, -0.0534356f, 0.101468f, 0.219779f, -0.162949f, -0.164303f, -0.0749275f, -0.0080564f, -0.0670136f, -0.151455f, 0.10729f, 0.0984328f, -0.0691409f, 0.0128669f, 0.0345055f, -0.00107397f, -0.0224321f, 0.044106f, -0.0208099f, 0.0535421f, -0.124433f, -0.0591067f, -0.164293f, 0.133284f, -0.0137919f, 0.0430686f, -0.0705153f, 0.118707f, -0.285092f, 0.228573f, 0.0670096f, -0.164909f, 0.105651f, 0.00699243f, 0.182732f, 0.0155156f, 0.000201916f, 0.0208911f, -0.0374665f, -0.0590163f, 0.00946391f, -0.121832f, -0.203962f, 0.0813183f, -0.0414896f, 0.099672f, 0.015993f, -0.132552f, 0.061158f, -0.0538507f, 0.19092f, -0.00317046f, -0.0367547f, -0.0897341f, 0.02307f, -0.0859231f, -0.032751f, -0.272221f, -0.0182145f, -0.0644419f, 0.0309065f, -0.0419454f, -0.073164f, 0.0365707f, 0.113491f, 0.0853731f, -0.0746512f, -0.0761346f, -0.144348f, 0.113836f, -0.0631506f, 0.0713026f, 0.103294f, 0.122842f, 0.0410157f, 0.128306f, -0.07704f, -0.0311071f, -0.0993618f, -0.0894587f, 0.0878613f, -0.0603745f, -0.0964803f, 0.0725304f, -0.0107604f, 0.123152f, -0.0721566f, 0.0206574f, -0.111377f, -0.0912439f, -0.0162398f, -0.1208f, 0.0713894f, -0.0423476f, -0.056639f, 0.156525f, 0.133383f, 0.00448479f, 0.0123096f, 0.118347f, 0.0858272f, 0.0476714f, -0.0388186f, 0.0850703f, -0.0594982f, 0.0437059f, 0.00629546f, 0.163928f, -0.0688888f, 0.0747097f, -0.0206572f, 0.0563553f, 0.19972f, -0.0490069f, -0.0434723f, -0.0731373f, -0.16024f, -0.0506899f, -0.044615f, -0.0708348f, 0.102174f, -0.0408528f, -0.00361553f, 0.162632f, -0.195836f, 0.0881636f, 0.115489f, -0.0436963f, -0.020062f, 0.0326622f, -0.0720211f, -0.0493609f, 0.0909684f, -0.0218633f, -0.0107371f, -0.0315116f, -0.0348071f, -0.235985f, 0.130096f, 0.0305104f, 0.0649448f, -0.0895547f, 0.159471f, 0.0680091f, -0.149863f, -0.243765f, 0.089933f, -0.0216432f, -0.024739f, 0.15031f, -0.0506532f, -0.0560716f, 0.0572189f, -0.00448595f, -0.216536f, 0.032072f, 0.0162317f, -0.0378526f, 0.109414f, -0.127954f, -0.0861922f, 0.240341f, -0.0256567f, 0.0212674f, -0.118091f, 0.0933854f, 0.172041f, 0.0507132f, -0.0103635f, 0.0407852f, -0.0424334f, -0.00844055f, -0.119308f, -0.0504358f, -0.0619984f, 0.140454f, -0.0594071f, 0.339386f, 0.0872189f, -0.0245269f, -0.0530784f, -0.0817166f, -0.183128f, -0.0734713f, 0.00414593f, -0.0632309f, 0.110286f, 0.0216352f, 0.168322f, 0.049005f, -0.0828585f, -0.130492f, -0.117615f, 0.118603f, -0.0378118f, -0.107118f, 0.0691682f, -0.034712f, -0.0466495f, 0.173727f, -0.107133f, -0.0424279f, 0.00118821f, -0.0239834f, 0.0122708f, 0.141572f, 0.0736949f, 0.00989182f, 0.00701949f, 0.0366004f, 0.094923f, 0.145911f, -0.0464519f, 0.084375f, 0.00422289f, -0.0769182f, 0.130945f, 0.0841538f, -0.0188528f, 0.103611f, -0.048722f, -0.207247f, 0.0447023f, 0.00230072f, 0.185596f, 0.279109f, 0.0147159f, -0.21599f, -0.0108612f, 0.0649726f, -0.183182f, 0.114022f, -0.0516423f, -0.0743682f, -0.0932149f, -0.0883057f, -0.142723f, -0.197185f, 0.0693133f, 0.0149298f, 0.0967041f, -0.0593236f, 0.0812658f, -0.0610051f, 0.0113138f, 0.0526955f, -0.0405803f, -0.0654741f, -0.0933326f, 0.0162102f, 0.0109763f, 0.0506619f, -0.0314835f, 0.0073003f, 0.00547729f, 0.113529f, -0.0647879f, -0.0881938f, 0.00215567f, 0.211101f, 0.136531f, -0.00711341f, 0.0514568f, -0.0371304f, -0.0131869f, -0.129903f, 0.000323857f, 0.0661008f, -0.0998535f, 0.0544597f, 0.0964442f, 0.0368736f, -0.138798f, -0.0556612f, -0.138256f, -0.0536401f, 0.00670392f, -0.0824073f, -0.142364f, 0.0568325f, -0.00818244f, -0.0912603f, -0.00224512f, 0.126125f, 0.0276815f, 0.0434898f, 0.0319595f, -0.0391202f, 0.0611841f, -0.0512949f, 0.000183623f, 0.0465696f, 0.0144291f, 0.0112215f, -0.133827f, 0.124299f, 0.305275f, -0.0217788f, 0.00839107f, -0.0361478f, 0.00474974f, 0.124687f, -0.0263268f, -0.0631697f, 0.144439f, -0.175649f, -0.0767571f, -0.0323324f, -0.0396696f, 0.0970828f, -0.0286081f, 0.079058f, -0.0542867f, -0.0622507f, -0.0767168f, 0.146694f, 0.143947f, -0.0632385f, 0.119329f, -0.0172636f, -0.0612233f, -0.0314346f, -0.146398f, -0.0581596f, -0.0133251f, 0.098266f, -0.153858f, 0.245192f, 0.0563657f, -0.0833922f, -0.0763244f, -0.0687245f, 0.0718805f, -0.0506483f, -0.134277f, -0.0576456f, -0.130248f, -0.107873f, 0.0247083f, -0.083906f, -0.0518288f, 0.0720515f, -0.119093f, -0.0391053f, -0.0339847f, 0.05495f, 0.14556f, 0.0238162f, -0.0722599f, -0.0545843f, -0.139137f, -0.0461771f, 0.242533f, 0.0824551f, 0.111178f, 0.196524f, 0.0973632f, -0.106814f, -0.0677957f, 0.0905259f, 0.0211748f, -0.177548f, -0.0604173f, 0.0897302f, -0.21723f, 0.116236f, 0.350973f, 0.0283773f, -0.0890524f, -0.072211f, -0.0374849f, 0.0691317f, 0.0105441f, 0.0539709f, 0.0414467f, 0.306395f, -0.0964275f, 0.150018f, -0.0387786f, 0.140097f, 0.302121f, -0.0520237f, -0.0685965f, 0.00692414f, 0.198948f, -0.151411f, 0.133745f, 0.21991f, 0.165296f, 0.0733701f, -0.111162f, -0.0351192f, -0.0196772f, 0.0311066f, 0.0562955f, 0.0363887f, 0.0100057f, 0.153762f, -0.12546f, -0.0147899f, -0.0402787f, -0.130699f, 0.000486539f, -0.0414357f, 0.069735f, -0.122463f, 0.259919f, -0.162813f, 0.0748406f, -0.081991f, -0.104605f, 0.0450012f, 0.142285f, -0.346358f, 0.0299097f, -0.0599189f, 0.00516728f, -0.130173f, -0.017867f, 0.0034301f, -0.0276254f, -0.129722f, -0.0258033f, 0.0691285f, 0.0693687f, -0.0630256f, 0.0953236f, -0.0685509f, -0.185797f, -0.00606351f, 0.166244f, -0.0391555f, -0.123057f, -0.0400345f, 0.0198701f, 0.0233681f, -0.0306132f, -0.124145f, -0.201694f, -0.303042f, 0.176829f, -0.149833f, 0.0833085f, -0.0903352f, -0.243358f, -0.0140597f, 0.0119846f, 0.0364844f, 0.0317256f, -0.00985276f, -0.294717f, -0.0426346f, 0.26791f, -0.101755f, -0.0632119f, 0.136045f, -0.0741398f, -0.022432f, 0.103234f, 0.108815f, 0.0235943f, -0.132883f, -0.0627469f, -0.147577f, 0.0542203f, 0.273699f, 0.019571f, -0.184679f, -0.0378538f, 0.0395151f, 0.060094f, -0.0208139f, -0.265269f, -0.0429556f, -0.00648268f, -0.143419f, 0.215232f, -0.0612034f, -0.0997592f, -0.0625478f, -0.0664767f, 0.0329299f, 0.161456f, -0.147479f, 0.00150107f, -0.0646004f, 0.0719215f, -0.207613f, -0.252516f, -0.159831f, 0.0755884f, -0.0071102f, -0.138335f, -0.136455f, -0.121588f, 0.11207f, 0.0281413f, 0.01623f, 0.0643369f, 0.0208493f, 0.110736f, -0.0207922f, 0.025764f, -0.0164917f, -0.138857f, -0.153669f, 0.245664f, 0.0300018f, 0.0521516f, -0.104429f, -0.0653021f, -0.0477409f, 0.0343899f, 0.0113928f, 0.13597f, 0.0999857f, 0.118021f, -0.0185155f, 0.16502f, -0.0642601f, 0.275158f, 0.146725f, 0.0893508f, 0.068509f, 0.0649917f, 0.0125142f, 0.121789f, -0.106717f, -0.171164f, -0.137996f, -0.0626272f, -0.1278f, -0.0677985f, -0.0782071f, 0.0567879f, -0.0945002f, -0.0797303f, 0.230924f, -0.163931f, -0.134652f, 0.0454579f, -0.0342629f, -0.133822f, -0.0625138f, -0.156161f, 0.10762f, -0.171241f, 0.105435f, -0.104252f, -0.162727f, 0.0850448f, -0.0155107f, 0.0408004f, -0.211926f, 0.041115f, -0.177946f, -0.0177358f, -0.0410032f, 0.0173378f, -0.00594289f, -0.102053f, 0.0879133f, -0.00850888f, -0.0455949f, -0.0202633f, -0.182948f, -0.00570311f, -0.00214788f, -0.115424f, 0.0888949f, -0.246458f, 0.0649784f, 0.219788f, -0.129278f, 0.0908089f, 0.0524038f, -0.00617974f, 0.0212127f, 0.0384024f, 0.19826f, -0.0903571f, 0.020026f, 0.0283182f, -0.104602f, -0.153207f, -0.175819f, -0.00669204f, 0.0511645f, 0.0597879f, -0.0195879f, 0.130589f, -0.180089f, -0.0168037f, -0.0741522f, -0.0778824f, -0.18809f, 0.244095f, 0.290547f, -0.188858f, -0.0556393f, 0.16694f, 0.157833f, -0.113272f, -0.00981864f, -0.0493821f, -0.0257509f, 0.0201513f, 0.0791256f, 0.0770206f, 0.0396385f, 0.00841356f, 0.143917f, -0.0697549f, -0.0607276f, 0.157155f, -0.149324f, -0.00681386f, 0.126851f, 0.212891f, -0.102154f, -0.0693321f, -0.0510082f, 0.040047f, -0.0788099f, -0.210385f, -0.110558f, 0.36823f, 0.0217709f, -0.0772454f, -0.0235967f, 0.0275992f, 0.00310632f, 0.233528f, -0.279185f, -0.109285f, -0.0516868f, -0.0594964f, 0.223419f, -0.151595f, -0.0149866f, 0.045302f, -0.105844f, -0.0135582f, 0.136843f, 0.0722692f, -0.145866f, -0.0776478f, -0.137755f, 0.0348725f, 0.14213f, 0.0069743f, -0.170187f, 0.161785f, 0.0541377f, 0.157969f, 0.139423f, 0.02654f, -0.0854996f, 0.146496f, -0.253158f, 0.0351892f, 0.0835112f, 0.0277518f, 0.0872784f, -0.184995f, -0.00906412f, 0.0367119f, -0.0348091f, 0.0936053f, -0.173605f, -0.132285f, 0.0239438f, 0.0989829f, 0.0230217f, -0.0793868f, -0.0366748f, -0.0853664f, -0.0732636f, -0.00344895f, -0.0116548f, 0.0725106f, -0.067657f, 0.0525596f, 0.024673f, -0.0358379f, 0.0728235f, 0.00935517f, 0.0174578f, -0.197104f, 0.0829588f, -0.197414f, -0.0227554f, 0.0156717f, 0.102303f, 0.0815727f, 0.0122419f, -0.0652318f, -0.120311f, -0.00751833f, 0.140614f, -0.197206f, -0.06365f, -0.143518f, -0.0426326f, 0.0551659f, -0.0872666f, -0.0668105f, 0.12759f, 0.0353995f, -0.0211851f, 0.170746f, 0.0263538f, -0.0518767f, -0.167086f, -0.0482986f, 0.126161f, -0.0847811f, -0.116869f, -0.0289633f, -0.0455912f, -0.167607f, -0.0988084f, -0.239704f, 0.0764136f, -0.00755635f, 0.14799f, 0.0544105f, 0.222217f, 0.0886609f, -0.0844013f, 0.17573f, -0.303639f, 0.0721788f, -0.0980821f, 0.0890904f, 0.0345218f, 0.0317351f, 0.026155f, 0.265618f, -0.0750218f, 0.251526f, 0.0765981f, -0.100751f, 0.204365f, 0.102083f, -0.0933543f, 0.0744635f, -0.169409f, 0.214072f, 0.00602191f, 0.0164347f, -0.012643f, 0.0468959f, -0.110171f, -0.0494294f, -0.0236365f, -0.00648393f, 0.144631f, 0.100874f, 0.0319853f, 0.0691664f, -0.129244f, -0.122125f, -0.0821705f, -0.0617304f, 0.338692f, -0.0930738f, -0.148777f, -0.0515442f, 0.1226f, -0.00797279f, -0.0375552f, -0.174364f, -0.011716f, -0.0121819f, -0.0380311f, -0.13519f, -0.138878f, 0.0479642f, 0.108567f, -0.112051f, -0.056354f, -0.0027201f, -0.144817f, 0.0755163f, -0.0131898f, 0.0109269f, -0.151815f, 0.0767559f, 0.116429f, -0.108608f, 0.0256478f, -0.0447627f, 0.123413f, 0.272398f, -0.187981f, -0.0482505f, 0.0178254f, -0.0301677f, 0.200373f, -0.00366677f, 0.204874f, 0.0146028f, -0.148002f, 0.0304257f, 0.111897f, -0.147463f, 0.0650184f, 0.0599415f, -0.0125367f, 0.106147f, 0.0759735f, -0.0124045f, 0.0581286f, 0.0714228f, -0.000441328f, 0.0275754f, 0.0710366f, -0.0443906f, 0.0714317f, -0.277389f, 0.0656085f, 0.0531683f, -0.014386f, -0.0963448f, -0.13291f, 0.138735f, -0.113911f, 0.0845911f, -0.0894068f, -0.111073f, -0.0332016f, 0.0575933f, -0.0856933f, -0.0167898f, 0.00211958f, -0.0378947f, -0.000316454f, -0.0187906f, 0.0598688f, 0.0435269f, -0.127701f, -0.099619f, -0.0422568f, -0.197992f, -0.0746932f, 0.00642003f, 0.0315264f, -0.189213f, 0.0179813f, -0.102516f, 0.0509151f, -0.0551889f, 0.101915f, 0.148567f, -0.179475f, 0.0665954f, 0.00376463f, -0.0825931f, -0.0198769f, 0.132708f, -0.0688863f, -0.0568033f, 0.0332413f, -0.118228f, -0.0155254f, 0.204051f, -0.243265f, 0.196851f, 0.0197804f, 0.0425959f, -0.0671715f, -0.0915556f, -0.0636662f, -0.177453f, 0.0644299f, 0.0209748f, -0.0780155f, 0.0754455f, -0.0175963f, 0.0199889f, -0.0531103f, 0.228407f, -0.00555716f, -0.0286157f, -0.147226f, -0.138917f, -0.109775f, -0.0145466f, 0.0481495f, 0.0717492f, 0.0246963f, -0.0560694f, 0.106974f, 0.0370792f, 0.00437919f, 0.165612f, 0.0138685f, -0.0650211f, -0.0323978f, -0.110289f, 0.0266475f, 0.0402298f, 0.160484f, -0.0904631f, -0.0708236f, 0.0333114f, 0.234884f, -0.0884363f, 0.15609f, -0.0558371f, -0.0207357f, -0.0561391f, 0.0260364f, 0.0754266f, -0.051306f, 0.075028f, 0.0186684f, -0.111251f, -0.0327762f, -0.0628155f, -0.0467023f, -0.0124812f, 0.0648956f, 0.0629167f, -0.215982f, -0.0181778f, 0.0143364f, -0.0111385f, -0.138629f, -0.057331f, -0.0489603f, -0.0341732f, -0.142658f, -0.290032f, 0.0414427f, -0.0331595f, 0.118494f, 0.0602064f, 0.0407577f, -0.0393873f, -0.137643f, -0.0183012f, -0.146399f, -0.169119f, -0.0085202f, 0.01551f, -0.144195f, 0.120586f, 0.0846695f, -0.0206982f, -0.0191006f, 0.0615408f, -0.266369f, 0.0607353f, 0.0955837f, 0.0569757f, 0.0471873f, -0.141796f, 0.0377393f, -0.0380096f, -0.0798881f, -0.0855705f, -0.0747781f, -0.101091f, 0.0334251f, -0.255345f, -0.122112f, 0.0603493f, -0.0124725f, -0.0702293f, -0.113147f, -0.113865f, -0.0263809f, 0.152591f, 0.0586971f, 0.00988707f, 0.134403f, 0.0242138f, 0.0729546f, 0.0816216f, 0.126825f, -0.0265086f, -0.083938f, -0.0136448f, 0.0087635f, 0.223611f, 0.101757f, 0.0777791f, 0.0772242f, 0.163938f, 0.00856559f, -0.0741685f, 0.067004f, 0.00650201f, -0.0677608f, 0.0623118f, 0.0156431f, 0.0291742f, 0.0236418f, 0.0727983f, 0.139663f, -0.11699f, 0.08982f, -0.0118048f, 0.346417f, -0.0224201f, -0.153333f, 0.0942367f, 0.0269415f, -0.0439913f, -0.0120768f, 0.120319f, -0.0160319f, -0.0301867f, -0.113828f, 0.0161178f, -0.00789881f, -0.0399676f, 0.139764f, -0.122099f, -0.117035f, -0.0573133f, 0.00526694f, -0.0741447f, 0.115074f, 0.0358814f, 0.0466695f, 0.144454f, 0.223154f, 0.255534f, 0.0856372f, 0.0567084f, -0.0791149f, -0.0570337f, -0.0857219f, 0.0714973f, 0.0522691f, 0.0230387f, -0.0490283f, -0.0352894f, 0.0673684f, 0.0014127f, -0.09596f, 0.0984083f, 0.0272821f, -0.0604969f, -0.0270902f, -0.0121601f, 0.000162555f, 0.0217797f, -0.0237163f, -0.0156893f, -0.0640024f, 0.0623698f, 0.00578569f, -0.0423499f, 0.060731f, -0.0382372f, 0.0455912f, -0.0752105f, -0.0143576f, 0.0140151f, 0.117904f, -0.0676626f, -0.147696f, 0.0910665f, 0.00245151f, 0.0459866f, -0.107319f, 0.0035229f, 0.0889317f, -0.0183879f, 0.0152891f, 0.0487654f, -0.0765666f, 0.134827f, 0.0417438f, -0.0288995f, -0.0299469f, 0.238458f, -0.100457f, 0.144096f, 0.0897423f, 0.0106287f, -0.0290341f, -0.0722412f, 0.204911f, 0.128002f, 0.0936375f, 0.0114184f, -0.0638432f, -0.0129049f, 0.134884f, -0.235474f, -0.0654432f, -0.2281f, 0.0320796f, -0.059736f, -0.0800341f, -0.0406904f, -0.258952f, -0.0497491f, 0.106873f, -0.0346889f, -0.0838109f, -0.0564509f, 0.0739084f, 0.145812f, 0.145559f, -0.0804272f, 0.0444677f, 0.0230564f, 0.0657149f, -0.105682f, -0.168215f, 0.107497f, 0.030537f, -0.0345696f, 0.195134f, -0.0271691f, -0.138258f, 0.160193f, -0.263857f, -0.248234f, 0.00812314f, 0.0251868f, -0.103881f, -0.00449668f, -0.0211489f, -0.086432f, 0.0493147f, -0.0444425f, 0.126292f, -0.0596622f, -0.045382f, -0.1463f, -0.0363952f, -0.0259068f, 0.0131313f, -0.178495f, -0.126192f, -0.132443f, -0.139272f, 0.0908443f, 0.016169f, 0.120194f, -0.0454726f, 0.0530004f, 0.23516f, -0.0975958f, 0.165169f, -0.232126f, -0.0423129f, 0.0331014f, 0.141844f, 0.0850867f, -0.181196f, 0.175334f, 0.191551f, 0.13854f, 0.0138009f, 0.0700433f, 0.147939f, -0.0901864f, 0.161847f, -0.0435553f, -0.301837f, -0.0605671f, -0.171097f, 0.04126f, -0.210275f, -0.0176529f, 0.125821f, 0.125113f, 0.0231217f, -0.0178848f, 0.0343397f, -0.0120336f, -0.0411524f, 0.0333141f, -0.00505456f, -0.148297f, 0.0653111f, -0.0175319f, 0.165097f, -0.0859652f, 0.306951f, -0.0926167f, 0.0432985f, 0.0280448f, -0.0526549f, 0.0302389f, -0.00684185f, 0.0817452f, 0.0717675f, 0.0976946f, 0.0304212f, 0.0414436f, 0.0402426f, -0.0332871f, -0.0639847f, -0.143919f, -0.124595f, -0.0915515f, -0.0407585f, 0.033197f, -0.0563458f, 0.195402f, -0.0853152f, -0.0199659f, -0.0938871f, -0.110192f, 0.029422f, -0.0284095f, 0.204072f, 0.230877f, -0.23993f, -0.248709f, -0.0352789f, -0.110933f, -0.105969f, 0.094618f, 0.045775f, 0.23069f, 0.189096f, 0.0784913f, 0.0211413f, 0.113631f, -0.0110315f, 0.0328897f, -0.0391503f, 0.0148883f, -0.0511283f, -0.0758685f, -0.185428f, 0.145501f, 0.26932f, -0.00706792f, 0.0545145f, 0.00209863f, 0.0326711f, 0.209853f, 0.0812702f, 0.398284f, 0.188043f, -0.0445513f, 0.124407f, -0.0281248f, 0.0156918f, -0.0661482f, -0.119143f, 0.0465679f, -0.0339065f, -0.0951787f, -0.0562389f, 0.0559667f, 0.0518762f, -0.0682929f, 0.0191444f, -0.128547f, -0.00657256f, -0.214175f, -0.0121716f, -0.0717781f, -0.0367771f, -0.106917f, 0.019522f, 0.0423303f, -0.0450538f, 0.0378311f, -0.0163635f, 0.224801f, -0.0400332f, 0.0944241f, -0.0316837f, -0.247674f, -0.00152802f, 0.128709f, -0.0530434f, 0.0353833f, -0.188078f, 0.0513568f, 0.165853f, 0.125401f, 0.134201f, 0.0529175f, -0.0595631f, 0.208253f, -0.103614f, -0.086495f, -0.055682f, 0.0678675f, 0.117055f, -0.0797268f, -0.218714f, 0.124429f, -0.0958211f, -0.00746179f, 0.0867841f, 0.0976386f, 0.0974799f, -0.0476189f, 0.0403744f, -0.0532951f, 0.103452f, -0.0561135f, -0.0570386f, 0.0447333f, 0.0284468f, -0.0123736f, -0.152071f, 0.139504f, -0.150434f, -0.236809f, -0.00543498f, 0.179178f, 0.101994f, -0.103473f, 0.171231f, 0.112571f, 0.0470716f, 0.00134852f, 0.0113634f, 0.028328f, -0.0192983f, 0.0615877f, 0.140765f, 0.0691371f, -0.100562f, 0.0634575f, 0.172931f, -0.0278804f, -0.107884f, -0.12921f, 0.144709f, -0.0502041f, 0.26471f, -0.0733277f, 0.0727419f, -0.18533f, 0.0812649f, 0.0574974f, -0.0994873f, -0.108572f, -0.00125924f, -0.0570891f, -0.0564541f, -0.208029f, 0.050427f, -0.388047f, -0.0492397f, 0.0281477f, 0.07582f, 0.231701f, -0.0238934f, -0.0127706f, -0.0947514f, -0.0537848f, -0.378793f, -0.0294461f, -0.130599f, 0.0504004f, -0.00140555f, 0.154203f, 0.00100233f, -0.158577f, 0.0884011f, -0.119132f, -0.109142f, 0.218508f, -0.0235336f, -0.115687f, -0.0622109f, -0.0530095f, -0.00247333f, -0.0040968f, 0.467918f, 0.0968093f, -0.0822504f, -0.283234f, 0.0335439f, 0.190095f, 0.0845923f, 0.203457f, -0.179509f, -0.0774762f, -0.174176f, -0.0256955f, -0.0675088f, 0.0378122f, 0.01191f, -0.00550909f, -0.0197953f, 0.0619587f, -0.010253f, 0.126631f, 0.250306f, 0.0288037f, 0.0906605f, 0.0615545f, 0.079101f, -0.180439f, 0.192944f, 0.0781765f, -0.0304704f, -0.0804992f, -0.214004f, -0.100559f, -0.0197503f, -0.0635601f, 0.0344422f, 0.206626f, -0.113922f, 0.167333f, 0.042957f, 0.072754f, 0.0165848f, 0.161062f, 0.131324f, -0.0806729f, -0.241418f, 0.0882478f, 0.0560616f, 0.11652f, 0.0387292f, -0.210602f, -0.0811962f, 0.00595869f, 0.0906331f, -0.0257964f, 0.0262241f, -0.0583798f, -0.168545f, -0.0824084f, -0.0540559f, 0.055865f, -0.14463f, 0.0536092f, 0.00479177f, -0.0521163f, 0.114327f, -0.087216f, 0.12057f, 0.0343528f, -0.159405f, -0.0428211f, -0.00926862f, 0.204067f, -0.0982124f, -0.00597636f, 0.0857122f, -0.0434118f, 0.0350282f, 0.0122245f, 0.0143983f, -0.065527f, -0.00821878f, -0.0869701f, -0.142122f, 0.0224319f, -0.115208f, -0.00811133f, -0.0997508f, -0.0214029f, -0.0734632f, -0.0765375f, 0.124415f, -0.0181815f, 0.121771f, 0.0431451f, -0.114346f, 0.0580838f, -0.166955f, -0.108603f, -0.0180719f, 0.0187707f, 0.142396f, 0.125052f, 0.0445839f, -0.0869693f, 0.100758f, 0.0827412f, -0.0503467f, 0.0750536f, -0.107036f, -0.0859819f, 0.0949795f, -0.00923993f, 0.137961f, -0.0385899f, -0.0261251f, 0.0364985f, 0.147038f, 0.096688f, -0.036745f, 0.209835f, 0.217248f, -0.149919f, 0.00545082f};
+ model->setOperandValue(op68, op68_init, sizeof(float) * 16384);
+ static float op70_init[] = {-0.66364f, 0.0184158f, 0.52283f, -0.355377f, 1.1477f, -0.584167f, -0.148238f, -0.370158f, -0.863358f, -0.920222f, -0.232067f, -0.392408f, -0.370706f, -0.582042f, 1.07807f, -0.739755f, -0.868499f, 0.849338f, 1.00954f, -0.559628f, -1.00847f, -0.363234f, -0.777592f, -0.361464f, -0.524833f, -0.51576f, 1.09786f, -0.602967f, -0.460839f, -0.0461734f, -0.640552f, -0.550366f, 0.0366958f, 1.41672f, -0.0482828f, 1.01145f, -0.661914f, -0.476727f, -0.420703f, -0.333822f, -0.474296f, -0.325794f, -0.37077f, -0.183918f, 0.7784f, -0.905561f, 1.04277f, 1.13302f, -0.611757f, -0.454366f, 1.04722f, 0.213438f, -0.812226f, 0.415241f, 0.134023f, 0.0181792f, -0.725888f, -0.667944f, 0.14743f, 1.38813f, -0.758548f, -0.0950601f, -0.110067f, 1.08892f, 1.25227f, -0.65893f, -0.258646f, 1.1129f, 0.785756f, -0.573376f, -0.562164f, 0.648412f, -0.650372f, -0.198207f, 1.32062f, -0.446544f, -0.375616f, 0.832923f, 0.515747f, 1.4061f, 0.967074f, -0.545499f, -0.0706069f, 0.594321f, -0.645749f, -0.528063f, 1.13031f, -0.572182f, -0.127073f, -0.797284f, -0.702862f, -0.0707006f, -0.615686f, -0.52278f, 0.253001f, 1.1845f, -0.387047f, -0.0304347f, 0.380325f, -0.40854f, -0.549549f, -0.513802f, -0.813182f, -0.697618f, 0.235504f, -0.408502f, 1.44695f, -0.782359f, 0.764666f, -0.376841f, -0.307161f, -0.436902f, -0.439395f, -0.00343463f, -0.705699f, -0.557165f, -0.443319f, 1.1431f, -0.503291f, -0.611081f, -0.120243f, 1.15355f, -0.372295f, -0.474172f, 1.23777f, -0.441865f, -0.00485877f, -0.540569f};
+ model->setOperandValue(op70, op70_init, sizeof(float) * 128);
+ static float op71_init[] = {0.190358f, 0.76666f, 0.00328711f, 0.564753f, -0.350922f, -0.129309f, -0.3002f, 0.0597919f, 0.426195f, 0.396956f, -0.0503945f, -0.0959898f, 0.7998f, 0.20007f, -0.470447f, -0.0882118f, 0.387503f, -0.154394f, -0.527967f, -0.382423f, 0.439986f, -0.26216f, 0.675393f, 0.600835f, 0.710669f, -0.144166f, -0.623441f, -0.25641f, 0.146244f, 0.0956447f, 0.530404f, -0.0558362f, -0.228722f, -0.615698f, -0.232535f, -0.188218f, 0.463525f, 0.208408f, 0.202256f, -0.459553f, 0.290275f, -0.0482571f, 0.0479941f, -0.480289f, -0.359739f, 0.29264f, -0.189077f, -0.101516f, -0.327849f, 0.0132966f, -0.478556f, -0.667986f, -0.00429771f, -0.395361f, 0.591137f, 0.438846f, 0.270845f, 0.22185f, -0.114037f, -0.242702f, 0.163454f, 0.134378f, -0.125448f, 0.0916562f, -0.174708f, 0.0403809f, 0.561983f, -0.536697f, 0.837897f, -0.102087f, 0.195032f, 0.642412f, -0.00309444f, 0.152015f, -0.278766f, -0.0803865f, -0.149121f, -0.404437f, -0.277375f, -0.463219f, 0.455272f, 0.645321f, 0.712899f, 0.440117f, 0.00296985f, -0.370598f, -0.305418f, 0.350335f, 0.256088f, -0.505846f, 0.141766f, 0.683693f, 0.189428f, 0.384547f, 0.520508f, -0.0903593f, -0.466102f, 0.119247f, -0.31008f, 0.268459f, 0.541718f, 0.565971f, -0.0766391f, -0.242424f, -0.0208426f, 0.615597f, -0.0939945f, 0.355455f, -0.47433f, -0.0974868f, -0.111173f, 0.00675133f, -0.331637f, -0.288407f, 0.277921f, -0.00905987f, 0.449155f, -0.23387f, -0.0123091f, -0.106995f, 0.000705794f, -0.174747f, -0.290359f, -0.15716f, -0.342961f, -0.318778f, -0.244923f, 0.41067f, 0.600289f, 1.11803f, 0.0108391f, 0.562716f, -0.0486975f, -0.25541f, 0.0325754f, 0.556536f, -0.115194f, 0.119986f, -0.172908f, 0.19715f, 0.237946f, 0.657477f, -0.288834f, 0.693158f, 0.599522f, -0.176689f, -0.328313f, 0.642065f, 0.295767f, -0.268138f, 0.50916f, 0.541139f, 0.575437f, -0.308893f, -0.416536f, 0.114128f, -0.0474224f, -0.0862949f, 0.417725f, -0.231729f, 0.724209f, -0.194049f, -0.517304f, -0.652919f, 0.433762f, 0.912894f, -0.483609f, -0.296952f, 0.0126445f, 1.20907f, 0.337168f, -0.0322295f, -0.132569f, 0.116397f, 0.370504f, -0.448363f, 0.720829f, 0.879811f, -0.648568f, 0.515107f, -0.052637f, -0.388975f, 0.421326f, -0.989203f, -0.341183f, 0.286548f, 0.0134756f, -0.782349f, 0.11126f, 0.972077f, -0.0604684f, 0.160813f, -0.080907f, -0.508684f, 0.649636f, -0.472908f, -0.633012f, -0.109733f, -0.301114f, -0.712373f, 0.4899f, -0.165437f, -0.343757f, 0.859791f, -0.221293f, -0.755234f, -0.51916f, 0.00321254f, -0.14699f, 1.34957f, 0.906992f, -0.796848f, 0.960862f, -0.243892f, -0.149225f, 0.29761f, -0.0732879f, 0.590636f, 0.446738f, -0.498876f, 0.268498f, 0.841365f, -0.829389f, -0.339174f, 0.55688f, -0.820046f, -0.294324f, 0.218061f, 1.07041f, 0.647936f, -0.00319098f, 0.637792f, 0.2681f, 0.408708f, -0.281842f, 0.563577f, 0.248457f, -0.173597f, 0.857762f, 0.0828917f, -0.236691f, 0.367459f, 0.36482f, 0.335563f, 0.469174f, -0.492988f, 0.102047f, 0.0864881f, -0.154285f, -0.209307f, -0.384697f, -0.408656f, -0.324157f, -0.11449f, -0.302919f, 0.811304f, -0.071401f, -0.194882f, 0.877613f, 0.7679f, -0.425736f, -0.0927369f, -0.177047f, 0.652595f, 0.145123f, -0.0892876f, -0.165002f, 0.128822f, -0.234167f, 0.0364328f, -0.553999f, 0.506505f, 0.110685f, -0.281018f, 0.185106f, 0.240167f, 0.404976f, 0.161763f, 0.177268f, 0.426034f, -0.311109f, -0.132578f, -0.134164f, 0.832055f, -0.0668457f, -0.381313f, -0.0599468f, -0.0109465f, 0.396031f, -0.71884f, -0.095649f, -0.250095f, -0.172813f, 0.269057f, -0.109603f, 0.192561f, 0.277378f, -0.0390484f, -0.180217f, 1.28994f, 0.122155f, 0.232436f, -0.0340455f, -0.252908f, 0.389663f, 0.0565574f, -0.399774f, 0.887266f, 0.310494f, -0.362899f, -0.319276f, 0.10574f, 0.127307f, -0.494444f, -0.112868f, -0.2034f, 0.501617f, 0.124677f, -0.235599f, 0.344745f, -0.467707f, 0.0463722f, -0.607921f, -0.081456f, -0.760228f, -0.200317f, 0.259661f, -0.344715f, 0.00404537f, -0.195673f, 0.301249f, 0.384962f, -0.0361301f, -0.305219f, 0.198748f, 0.0795681f, 0.0443111f, -0.374283f, -0.46018f, -0.0992139f, 0.530139f, 0.235449f, -0.104399f, -0.11444f, -0.286731f, 0.373004f, 0.0398085f, -0.367939f, 0.237036f, 0.377654f, -0.233246f, -0.300566f, 0.879749f, 0.805473f, -0.216364f, 0.107135f, 0.477397f, -0.0927218f, 0.105378f, -0.304875f, 0.502067f, 0.521802f, -0.235997f, -0.203118f, -0.495254f, -0.0555604f, 0.38101f, 0.0896039f, -0.685413f, 0.456509f, 0.257106f, 0.203629f, 0.952966f, -0.0322579f, -0.267826f, -0.0202747f, -0.323887f, -0.0316849f, 0.144765f, -0.0484832f, -0.49333f, -0.0541837f, -0.329184f, 0.117376f, -0.341782f, -0.180333f, -0.666727f, 0.202727f, -0.129029f, -0.00659977f, 0.0129369f, -0.0513414f, 0.812447f, 0.185658f, 0.461466f, -0.405102f, 0.627122f, 0.949768f, -0.272209f, 0.105971f, 0.636995f, -0.107988f, -0.454079f, -0.0711379f, -0.230147f, -0.22146f, -0.312473f, -0.229204f, 0.312864f, 0.160454f, 0.0647254f, -0.20561f, 0.823169f, 0.373734f, 0.0769504f, 0.00528711f, -0.909828f, -0.114127f, -0.257492f, 0.392989f, 0.174446f, 0.349986f, -0.137255f, -0.288951f, -0.093152f, -0.042396f, -0.673323f, -0.52072f, 0.217457f, 0.135552f, -0.716376f, -0.144906f, -0.0489762f, 0.37614f, -0.404367f, -0.657087f, 0.246767f, 0.147634f, 0.418994f, -0.436722f, 0.837298f, 0.929406f, -0.56172f, -0.208212f, -0.267768f, -0.0331336f, 0.365327f, -0.13025f, -0.562601f, 0.16345f, 0.951143f, -0.136858f, 0.311213f, 0.0453114f, 0.440428f, 0.847037f, -0.267341f, 1.08897f, -0.00502726f, -0.371229f, -0.134335f, -0.6206f, -0.481556f, -0.101969f, -0.105048f, -0.196396f, 0.157198f, 0.642277f, -0.0404088f, 0.180808f, -0.223361f, 0.603341f, 0.502257f, 0.320769f, 0.492397f, 0.956399f, 0.194187f, -0.343148f, 0.885585f, -0.0687641f, 0.457338f, -0.311678f, 0.236659f, 0.407108f, 0.137685f, 0.652439f, 0.0435312f, 0.229618f, -0.527449f, -0.269889f, -0.325816f, 0.376615f, -0.377608f, 0.257641f, -0.339897f, -0.158836f, 0.323011f, -0.47812f, 0.459609f, -0.335766f, -0.279469f, -0.12041f, 0.376882f, 0.414679f, -0.205347f, -0.179744f, 0.258654f, 0.704178f, -0.692794f, -0.130536f, -0.365033f, 0.0499748f, 0.344233f, -0.737346f, 0.697677f, 0.845875f, -0.555949f, 0.429941f, 0.455379f, 0.0265202f, 0.736651f, 0.839903f, 0.94684f, 0.00909855f, 0.170332f, 0.185479f, -0.0579591f, 0.557609f, 0.391772f, -0.814147f, -0.586672f, 0.0527906f, 0.667854f, 0.972348f, 1.02569f, -0.219331f, 0.0518999f, 1.00357f, -0.504772f, 0.30193f, 0.00411299f, 0.811901f, 0.673291f, 0.66426f, 0.334053f, -0.524229f, -0.059208f, -0.695776f, 1.02539f, 0.431509f, 0.840339f, 0.292579f, 1.07328f, 0.603155f, 0.307269f, -0.0304048f, 0.00203814f, 0.67309f, -0.0671427f, -0.383333f, 0.675885f, 0.221911f, -0.110051f, -0.470358f, 0.817933f, 0.323138f, -0.165958f, 0.0630235f, 0.391858f, 0.602329f, -0.868418f, -0.282714f, 0.594771f, 0.813126f, -0.0680279f, -1.11056f, -0.198277f, 0.481591f, 0.142028f, -0.204667f, 0.0182912f, -0.00406507f, 0.0536259f, -0.36021f, 0.698857f, -0.190253f, -0.500451f, 0.289969f, -0.219903f, 0.15831f, -0.0653111f, -0.474196f, -0.650654f, -0.200494f, 0.469755f, 0.118924f, 0.0168727f, 0.402652f, -0.187117f, 0.62832f, -0.119214f, 0.567081f, 0.899887f, 0.248861f, 0.664019f, 0.540719f, 0.0263774f, -0.417432f, 0.0649356f, -0.18742f, -0.417969f, 0.609772f, 0.353398f, 0.0859128f, 0.538173f, 0.502869f, -0.341202f, 0.513432f, -0.788703f, 0.0142002f, 0.527955f, -0.157098f, 0.595244f, -0.0444192f, 1.37204f, 0.189821f, 0.682446f, 0.3433f, -0.184833f, -0.404174f, 1.5035f, 0.817183f, -0.605173f, -0.27438f, 0.461309f, 0.554656f, -0.475512f, 1.17015f, -0.0585701f, 0.724129f, 0.420323f, -0.157541f, -0.220695f, -0.122461f, 0.121204f, 0.182802f, 0.00371291f, 0.304274f, -0.221264f, -0.120818f, -0.043022f, -0.464563f, -0.406328f, 0.041582f, -0.139553f, 0.0828607f, 0.238862f, -0.456532f, -0.223329f, 0.792302f, 0.371895f, 0.657993f, -0.0123234f, 0.266212f, -0.49652f, 0.286809f, -0.384888f, 0.70794f, -0.384147f, -0.62421f, 0.0697381f, 0.0458656f, 0.562064f, -0.460391f, 0.556749f, -0.130069f, 0.340854f, 0.0416529f, -0.197049f, 0.398611f, 0.41592f, -0.291658f, 0.454341f, 0.30976f, -0.325396f, 0.273377f, -0.400636f, -0.246072f, 0.32766f, 0.00136251f, 0.151915f, -0.300932f, -0.102017f, 0.68274f, -0.324542f, 1.03172f, -0.0696355f, -0.183265f, 0.284886f, -0.227816f, 0.242192f, -0.599874f, -0.511549f, -0.10059f, -0.33509f, 0.858827f, -0.307917f, -0.879803f, -0.403689f, -0.0688537f, 0.00630893f, 0.0118436f, 0.26297f, 0.138363f, -0.203363f, 0.491789f, -0.0807201f, 0.272792f, 0.606668f, -0.493837f, -0.526792f, -0.142603f, -0.202611f, -0.219638f, -0.303843f, 0.2562f, -0.38714f, -0.126057f, -0.183657f, 0.58142f, -0.648539f, -0.0933269f, 0.592826f, -0.320483f, -0.214667f, -0.174747f, 0.713776f, 1.22594f, -0.611828f, 0.513708f, 0.479157f, 0.0850434f, 0.0757141f, -0.304211f, 0.450219f, -0.045551f, -0.375475f, -0.0269928f, -0.0173337f, -0.307949f, 0.268567f, -0.0706427f, 0.231106f, 0.896983f, 0.0632355f, 0.214271f, 0.220695f, -0.319058f, -0.24552f, -0.104354f, 0.453001f, -0.388575f, 0.179191f, -0.450781f, 0.348624f, 0.367575f, -0.25403f, 0.0559342f, -0.0758527f, 0.0911787f, -0.18374f, -0.0951634f, -0.360887f, 0.267016f, 0.534365f, -0.261756f, -0.00481348f, 0.243378f, 0.264065f, 0.509346f, 0.282226f, -0.208844f, -0.156357f, 0.166454f, -0.153438f, 0.225221f, -0.257419f, 0.260343f, 0.821744f, -0.157699f, 0.0577694f, -0.139561f, 0.117557f, -0.251096f, 0.421105f, -0.269285f, 0.88675f, -0.0593715f, 0.175804f, -0.132772f, -0.599808f, 0.052992f, 0.183545f, 0.288254f, -0.159228f, -0.128067f, 0.424113f, 0.0564066f, -0.173179f, -0.352807f, -0.360777f, 0.231875f, -0.265016f, 0.265335f, -0.319944f, -0.163443f, 0.219579f, -0.0815891f, -0.294593f, 0.00551404f, 0.168666f, -0.499144f, 0.559323f, -0.20036f, 0.487909f, 0.428612f, -0.511444f, 0.0689469f, 0.0169302f, -0.365487f, 0.432491f, -0.371034f, -0.127466f, 0.050943f, -0.141353f, -0.282757f, 0.246747f, 0.558175f, 0.68686f, 0.353037f, 0.137427f, 0.81998f, -0.577706f, -0.328404f, 0.216465f, -0.469908f, -0.781503f, -0.447728f, 0.21443f, 0.209997f, -1.12822f, -0.00770385f, -0.0202652f, 0.834757f, -0.303982f, -0.185659f, 1.06962f, 0.450267f, -0.123605f, 0.231549f, -0.462584f, 0.200628f, -0.187104f, -0.0130346f, -0.304655f, -0.112364f, 0.984213f, -0.170076f, 0.208935f, -0.392131f, 0.60417f, -0.31265f, -0.507739f, -0.274321f, -0.242298f, 0.525935f, -0.769428f, 0.519466f, -0.162392f, -0.142011f, 0.00424891f, -0.453889f, 0.627653f, -0.160481f, -0.230508f, -0.247125f, 0.147577f, 0.289561f, 0.134345f, -0.524177f, 0.223175f, 0.43702f, -0.681507f, 0.206381f, 0.239931f, -0.162511f, 0.307026f, -0.121438f, -0.599819f, -0.683399f, -0.60208f, 0.830813f, 0.57794f, -0.126375f, 0.0698931f, 0.480752f, 0.465528f, 1.36915f, -0.592944f, -0.333533f, -0.14712f, 0.0709586f, 0.228646f, 0.0982435f, 0.0282154f, -0.240298f, -0.342669f, 0.489622f, 0.180469f, -0.137358f, 0.925064f, 0.424018f, 0.183085f, -0.0795609f, 0.107355f, 0.46348f, 0.223359f, 1.05017f, -0.413438f, -0.608049f, 0.624854f, -0.575395f, -0.0831357f, -0.0965945f, 0.67798f, 0.652396f, -0.157336f, -0.59672f, 0.94745f, -0.0778913f, -0.552698f, 0.121572f, -0.408894f, -0.496429f, -0.156092f, -0.0468812f, -0.177459f, -0.053816f, 0.437554f, -0.483237f, -0.776584f, -0.189377f, 0.260575f, 0.142786f, 1.23f, -0.275486f, 0.873639f, -0.260906f, 0.842487f, -0.373095f, -0.269019f, 0.456207f, -0.268619f, 1.08967f, -0.365505f, 0.57018f, 0.686954f, -0.839785f, 0.240768f, -0.619083f, -0.400416f, -0.0109492f, 1.27559f, 0.580952f, -0.086056f, -0.473628f, -0.453659f, 0.492752f, -0.170327f, -0.476692f, 0.863076f, 0.477792f, -0.473402f, -0.0113335f, -0.234295f, -0.133103f, 0.813991f, -0.544947f, -0.429511f, 0.11441f, -0.151599f, -0.59351f, -0.299024f, -0.184595f, 0.359687f, -0.374872f, -0.600008f, -0.195932f, 0.672139f, 0.717247f, -0.39621f, -0.032114f, 0.164446f, 0.156016f, -0.273603f, 1.09887f, -0.135491f, 1.08048f, 0.56789f, 0.0106714f, -0.591842f, 0.596678f, 0.11119f, -0.274552f, -0.201105f, 0.444937f, 0.952961f, -0.507004f, 1.01494f, 0.77933f, 0.279006f, 0.0737236f, 1.11775f, -0.398997f, 0.227235f, -0.399368f, -0.51299f, -0.615961f, 0.245222f, 0.489889f, 0.159064f, 0.326207f, 0.364678f, 0.381169f, -0.593003f, -0.0868912f, 0.131847f, 0.0749275f, -0.197579f, -0.111212f, 0.0223139f, 0.243874f, 0.156878f, 0.190403f, 0.450317f, -0.150603f, -0.246352f, -0.128152f, 0.115508f, 0.493985f, -0.222931f, 0.452042f, -0.242511f, -0.215531f, -0.15448f, 0.105351f, 0.219143f, -0.0308257f, 0.486673f, -0.283853f, -0.163485f, -0.274629f, 0.247168f, 0.465471f, -0.047011f, 0.130996f, 0.5783f, -0.236574f, -1.03715f, 0.12173f, -0.257977f, -0.102828f, -0.165848f, -0.0104392f, 0.378396f, 0.273506f, 0.113921f, 0.078316f, -0.405008f, -0.0091235f, -0.0771289f, -0.43577f, 0.373244f, -0.396689f, -0.118428f, -0.124698f, -0.163262f, -0.539655f, -0.487564f, 0.0727633f, -0.102938f, -0.415128f, -0.222664f, 0.920234f, -0.177296f, -0.515815f, 0.0770235f, -0.37286f, -0.401904f, 0.0224006f, 0.350639f, 0.262495f, 0.375316f, 0.00518776f, -0.373577f, 0.0238316f, -0.171652f, -0.54584f, 0.200506f, -0.166763f, -0.17752f, 0.22408f, -0.335509f, 0.249634f, 0.101166f, -0.149211f, 0.298221f, -0.316278f, -0.167293f, -0.34354f, -0.166304f, 0.156108f, -0.197453f, -0.0979077f, -0.00206543f, 0.0643555f, 0.253949f, 0.857866f, 0.426089f, -0.101682f, -0.214549f, 0.202225f, -0.379808f, 0.291689f, -0.0552537f, 0.638515f, 0.0758169f, -0.254243f, -0.176746f, 0.909293f, -0.06176f, -0.185409f, -0.000147814f, -0.122751f, 0.411986f, -0.229916f, -0.231603f, 0.0380824f, -0.0611861f, 0.171022f, 0.391192f, 0.192886f};
+ model->setOperandValue(op71, op71_init, sizeof(float) * 1152);
+ static float op73_init[] = {-0.459464f, -0.0353652f, 0.65298f, 0.492282f, -0.434366f, -0.0646238f, 0.168169f, 0.841487f, 0.821593f, 0.0824923f, 0.324534f, 0.244733f, 0.687792f, 0.679983f, 1.20542f, -0.0494685f, 0.580938f, -0.125653f, 0.979836f, 0.518563f, -0.230283f, 0.0469813f, 0.293084f, -0.718912f, -1.0622f, 0.113178f, -0.0678228f, 0.916626f, 0.0892698f, 0.474777f, 0.352559f, -0.518444f, 0.298361f, 0.152684f, 1.02351f, 0.858021f, -0.138064f, 0.432028f, 0.262955f, 0.410308f, -0.175447f, 0.437843f, 0.290894f, -0.251734f, -0.156011f, 0.395701f, 0.683667f, 0.13276f, 0.649738f, -0.0994671f, 0.862117f, 0.679516f, 0.626916f, 0.591512f, 0.349128f, 0.647349f, 0.321387f, -0.39079f, 0.130351f, 0.373571f, 0.0105721f, 0.139855f, 0.288337f, 0.00182344f, 0.492347f, 0.395679f, 0.063744f, 0.591242f, -0.105116f, 0.568728f, 0.893553f, 0.830799f, -0.786496f, 0.308447f, -0.304133f, 0.713135f, -0.664118f, 0.0611865f, 0.317401f, -0.209737f, -0.0484893f, 0.404629f, 0.56469f, -0.461555f, 0.163955f, 0.376575f, 0.965699f, -0.0480532f, 0.186419f, 1.13773f, 0.266542f, 0.402838f, -0.423273f, -0.647047f, 1.55817f, -0.330907f, 0.103328f, 0.505363f, 0.156278f, 0.3413f, 0.792374f, -0.115844f, -0.365503f, -0.418147f, -0.402983f, 0.228505f, 0.70761f, 0.260362f, 0.703803f, 0.584213f, -0.312215f, 0.22878f, 0.916701f, -0.740095f, 0.555479f, 0.60881f, 0.638773f, 0.308882f, 0.515022f, 0.0501348f, -0.0876003f, 0.527447f, -0.310391f, 0.354625f, 0.119797f, 0.541051f, -0.176547f, -0.32494f};
+ model->setOperandValue(op73, op73_init, sizeof(float) * 128);
+ static float op74_init[] = {0.181329f, -0.0840758f, -0.0933245f, 0.0235837f, 0.0135975f, 0.326603f, -0.0139708f, -0.112846f, 0.181431f, 0.300608f, 0.0366979f, -0.00359797f, 0.0227877f, 0.00927314f, -0.18318f, 0.0122945f, 0.124818f, 0.00987374f, 0.156316f, -0.289415f, 0.10349f, 0.0364732f, 0.0231318f, 0.0581194f, -0.100904f, 0.13513f, -0.0616679f, 0.08791f, -0.0899955f, -0.0814202f, 0.0770271f, -0.0352028f, 0.0505355f, 0.0157475f, -0.174024f, 0.0321904f, 0.0789286f, 0.0553437f, -0.0721803f, -0.124891f, -0.0141911f, -0.0998818f, 0.0907457f, -0.0333116f, -0.0323912f, 0.0260731f, 0.0414896f, -0.0498239f, 0.0463238f, -0.0758002f, -0.0464296f, 0.036594f, 0.218559f, -0.021053f, -0.10772f, 0.148092f, 0.00719467f, 0.166783f, 0.202187f, 0.00202994f, -0.0944071f, 0.091252f, -0.0095911f, 0.280841f, -0.134233f, 0.0669713f, 0.0791813f, 0.167962f, 0.0732689f, 0.0647677f, 0.021687f, -0.0849598f, -0.0170565f, -0.0668448f, 0.0414721f, 0.0164082f, 0.128536f, 0.0603419f, 0.111924f, 0.0195282f, -0.0824856f, -0.00289862f, -0.0404369f, 0.00626191f, -0.0131989f, -0.0766574f, 0.0125038f, -0.107742f, -0.171477f, -0.0210237f, 0.0715486f, -0.160486f, 0.0299287f, -0.00204968f, -0.0410816f, 0.130856f, 0.0253766f, 0.0401149f, 0.205151f, -0.319885f, -0.10841f, -0.0544789f, 0.161881f, 0.00546593f, 0.125587f, 0.0206626f, 0.0800018f, -0.135352f, -0.00646288f, -0.0362635f, -0.0392136f, -0.0451879f, -0.00607048f, -0.0221049f, -0.153833f, -0.180066f, 0.0460595f, 0.0781421f, 0.155008f, 0.175934f, -0.0677201f, 0.0495859f, -0.124263f, -0.0609894f, 0.0250959f, 0.0826162f, -0.0430149f, -0.0212291f, -0.0417825f, 0.0418202f, -0.0399981f, 0.0225818f, 0.038297f, -0.0687589f, 0.0434539f, 0.0139929f, -0.144466f, 0.0586925f, 0.0771903f, -0.036364f, 0.0217784f, 0.16437f, -0.10317f, 0.0484835f, -0.0647294f, 0.00126885f, -0.0836486f, 0.123484f, 0.0614566f, 0.0573037f, -0.11063f, -0.0246382f, 0.12637f, 0.0607543f, 0.0457295f, -0.224024f, 0.0629076f, 0.0598966f, -0.0227951f, 0.01651f, 0.138966f, -0.172242f, -0.0284866f, -0.14106f, 0.00934989f, -0.0146916f, -0.0508996f, 0.0756496f, -0.0174425f, -0.0385932f, -0.101234f, 0.0820877f, 0.0159594f, -0.18722f, -0.0358568f, 0.0402528f, -0.207185f, 0.0184111f, 0.0636179f, 0.155746f, -0.00662562f, 0.115754f, -0.0615853f, 0.156323f, -0.0654284f, -0.120222f, 0.135671f, -0.0551872f, 0.0211466f, -0.00525772f, 0.0284053f, 0.0141124f, -0.114413f, -0.0375919f, 0.0143653f, -0.0359693f, -0.0296953f, 0.0984013f, 0.00646347f, -0.0379643f, 0.0729998f, 0.0973435f, -0.0945492f, -0.0208597f, 0.0145148f, 0.0424023f, -0.00549157f, 0.139727f, 0.0951696f, -0.145536f, -0.0945392f, 0.0918585f, 0.0519941f, 0.142797f, -0.129008f, 0.269556f, 0.0440378f, -0.138571f, -0.0738218f, 0.092441f, -0.0121823f, 0.0370309f, -0.0560292f, 0.00374625f, 0.00255495f, -0.00248248f, -0.016888f, -0.0338417f, -0.075864f, -0.00910104f, 0.177678f, -0.0491872f, 0.0110255f, 0.252087f, 0.099877f, 0.088437f, 0.102681f, 0.0925891f, -0.139868f, -0.0218718f, 0.0454183f, -0.0400179f, -0.124909f, -0.00883498f, 0.0621415f, -0.0481163f, 0.116757f, 0.00100467f, -0.0896272f, 0.013841f, 0.153126f, -0.0331032f, -0.0964849f, -0.0073817f, 0.000717227f, -0.0244046f, -0.0200596f, -0.000973821f, 0.035525f, 0.00459101f, 0.172455f, -0.101823f, -0.0514038f, -0.00750335f, 0.00593933f, -0.288784f, -0.308236f, 0.0252423f, -0.118462f, 0.0667269f, 0.096891f, -0.10068f, -0.12768f, 0.0381903f, -0.0159962f, -0.11368f, 0.0102444f, -0.0939726f, -0.00329174f, 0.0436663f, -0.0399699f, -0.0914586f, 0.08472f, -0.221348f, 0.149444f, 0.0522546f, -0.0217956f, -0.0726351f, 0.0633187f, -0.132432f, -0.132456f, -0.0418705f, 0.0279506f, 0.116593f, -0.13049f, -0.0819757f, -0.00651728f, 0.0935056f, -0.0409805f, -0.0868894f, 0.0511643f, 0.0232619f, -0.073121f, -0.0818644f, 0.107562f, -0.0439888f, -0.0610171f, 0.0743031f, 0.0646536f, 0.178001f, 0.0689307f, -0.151632f, 0.0920501f, 0.314149f, -0.0344194f, 0.204129f, 0.243599f, -0.135554f, 0.0527637f, 0.0642246f, -0.061484f, -0.0558038f, 0.0157609f, -0.0849056f, -0.0103045f, -0.0332981f, 0.140921f, -0.038755f, 0.372061f, 0.0496223f, 0.0919743f, -0.0414373f, -0.0124343f, 0.137916f, 0.0289741f, -0.0852785f, -0.0733259f, -0.0865293f, 0.0214399f, -0.0192341f, -0.0395817f, 0.0422219f, 0.0342966f, -0.081274f, -0.287277f, -0.302905f, 0.0232258f, 0.134897f, -0.0670389f, -0.0657716f, -0.104052f, 0.136181f, 0.00361409f, 0.0916543f, 0.157188f, -0.207882f, -0.0565145f, 0.0858587f, 0.101328f, -0.0473609f, -0.209131f, -0.0405107f, -0.111445f, -0.0984386f, 0.0954387f, -0.0403166f, 0.146433f, -0.0556949f, 0.0127373f, -0.117855f, 0.0548638f, 0.239061f, -0.121069f, -0.0788454f, 0.105419f, -0.13659f, -0.0288701f, -0.0788441f, -0.0737843f, 0.0392601f, -0.0820026f, -0.08666f, 0.0076547f, 0.00679163f, 0.159558f, 0.077636f, -0.159227f, -0.00455794f, -0.0928504f, -0.208683f, -0.112285f, 0.051669f, -0.0282854f, -0.16688f, -0.0255439f, -0.133426f, -0.0129019f, 0.0696449f, -0.118174f, -0.0686885f, -0.00846138f, 0.0452642f, -0.0218787f, 0.141121f, 0.101772f, 0.0924239f, 0.176317f, 0.000844366f, 0.0372364f, 0.123261f, 0.0557185f, 0.0551999f, -0.110756f, 0.0948783f, 0.0202617f, 0.163499f, 0.0149416f, -0.111485f, 0.119768f, -0.0487813f, 0.170826f, 0.0437044f, 0.074913f, -0.0671972f, -0.118103f, -0.0240758f, -0.0773934f, 0.166299f, 0.11284f, 0.104052f, -0.109448f, -0.201066f, 0.105136f, -0.116186f, -0.0349548f, 0.0556966f, -0.00539386f, 0.0284641f, -0.0953348f, 0.115862f, -0.0385981f, -0.133928f, -0.21093f, 0.0444386f, -0.0634666f, 0.0269551f, 0.120014f, -0.0109922f, -0.287825f, -0.122861f, 0.00508478f, -0.045771f, -0.320789f, 0.0601701f, -0.269408f, 0.0261255f, 0.0805441f, -0.156325f, 0.0436553f, -0.0474383f, 0.273151f, -0.0445094f, -0.0301128f, 0.0155871f, -0.136004f, -0.141512f, 0.00215517f, 0.208288f, 0.0228012f, 0.133364f, 0.0378607f, 0.000119907f, 0.137437f, 0.17525f, -0.246277f, 0.0993416f, -0.0544069f, -0.162842f, -0.0440198f, 0.0649683f, 0.0115445f, -0.152034f, 0.0889639f, 0.177687f, 0.0428758f, 0.162985f, -0.0269377f, -0.10948f, 0.10564f, -0.0205399f, -0.0617973f, -0.0127211f, 0.0243423f, -0.00502362f, 0.110151f, -0.103733f, -0.00653845f, -0.282221f, 0.0470434f, -0.244981f, 0.0299628f, 0.165574f, 0.15047f, -0.168988f, -0.104756f, 0.000128727f, -0.0770098f, -0.0231728f, 0.218784f, 0.0295365f, 0.0845923f, -0.0133075f, -0.115384f, 0.0574943f, -0.136528f, -0.00656415f, 0.0490949f, -0.0495583f, -0.0561563f, 0.0202163f, -0.122168f, 0.03239f, -0.0891011f, 0.275425f, -0.0757046f, -0.0851511f, -0.115841f, 0.0611312f, -0.156481f, -0.0429291f, 0.105175f, -0.0387559f, -0.0365029f, 0.186366f, 0.151718f, 0.0641231f, -0.039461f, -0.140185f, 0.114839f, -0.14314f, 0.0533507f, -0.132321f, 0.023899f, 0.0131155f, -0.255824f, 0.127499f, -0.0188647f, 0.102952f, -0.0349112f, 0.00799013f, 0.0365307f, 0.059295f, 0.144461f, -0.067409f, 0.102617f, -0.0946712f, 0.155584f, -0.0579477f, -0.0232918f, 0.0120975f, 0.172201f, 0.0535712f, 0.0506461f, 0.0319751f, -0.137416f, 0.0571409f, 0.0181985f, 0.214275f, 0.0288313f, -0.122177f, 0.140011f, 0.0194915f, 0.00236985f, -0.0253192f, -0.214333f, 0.0497057f, -0.124458f, 0.106534f, -0.179568f, -0.0792351f, 0.102184f, -0.160709f, 0.0528771f, 0.146589f, -0.0798312f, 0.0097488f, 0.0287757f, 0.0330934f, -0.0250711f, 0.102453f, -0.0068051f, 0.0897722f, 0.111581f, -0.0539236f, 0.0832845f, -0.115937f, -0.00544972f, 0.0118607f, 0.0275972f, -0.00823727f, -0.0185248f, -0.144368f, 0.0433809f, 0.0220543f, 0.0176427f, 0.239001f, 0.158479f, -0.0543604f, -0.0408055f, -0.112525f, 0.0856353f, -0.157274f, 0.0483946f, -0.0111659f, 0.0654198f, 0.05921f, -0.0572386f, -0.118357f, 0.0937787f, -0.0693633f, 0.215936f, 0.358181f, 0.0291899f, 0.291008f, -0.141902f, 0.0364084f, 0.122849f, -0.0991513f, 0.0418796f, -0.0146073f, 0.0008552f, 0.0989294f, 0.2362f, 0.113787f, -0.120307f, 0.0719714f, 0.0464269f, -0.0410993f, -0.0525191f, -0.0590123f, -0.101518f, 0.0312572f, 0.139874f, -0.0736414f, -0.107199f, -0.0356644f, 0.145958f, -0.141917f, 0.0388721f, 0.17484f, 0.0345693f, 0.205924f, 0.0753943f, 0.104579f, -0.0505656f, -0.0469363f, -0.229542f, 0.0034831f, 0.170297f, 0.12265f, -0.0596113f, 0.084f, -0.047628f, 0.0887185f, 0.0789461f, -0.00710551f, 0.0716734f, -0.0662902f, 0.115316f, -0.0374838f, -0.0298813f, -0.0139138f, -0.206793f, -0.0787607f, 0.048402f, 0.0692865f, -0.0971142f, -0.0821043f, 0.156114f, 0.217558f, -0.0622622f, -0.00826273f, -0.123063f, 0.0608391f, -0.014321f, -0.187389f, -0.0712034f, -0.0210043f, -0.125864f, 0.103683f, 0.0458633f, -0.0161464f, -0.0580857f, 0.0848569f, 0.0164039f, 0.0362098f, -0.0587167f, 0.108128f, 0.0521473f, 0.0613473f, -0.073095f, 0.0185255f, -0.0177596f, 0.0480621f, 0.00456464f, 0.0019675f, -0.113789f, 0.027202f, 0.0382391f, 0.0228026f, -0.131458f, 0.306182f, -0.119093f, -0.0578609f, -0.0455814f, 0.0525025f, 0.120467f, 0.0498516f, -0.0789595f, -0.0390619f, 0.11429f, -0.182899f, 0.0159731f, -0.0217701f, 0.045744f, 0.233569f, 0.232347f, 0.222099f, 0.0357499f, -0.116502f, 0.089826f, -0.0208244f, 0.0408735f, 0.0325383f, -0.0484571f, -0.0155457f, 0.0902094f, 0.00577848f, -0.0472444f, -0.115258f, 0.160645f, -0.161835f, -0.161665f, -0.18764f, -0.0211843f, -0.0246118f, -0.209505f, -0.093839f, -0.0588665f, 0.0289911f, -0.100293f, 0.0296227f, -0.0264932f, 0.00332643f, -0.111159f, 0.0715882f, -0.0433116f, 0.0439842f, -0.00440437f, 0.0226576f, -0.0981392f, 0.0549775f, -0.0634459f, -0.0323834f, 0.103483f, 0.0944727f, -0.0496596f, 0.0569245f, 0.00340392f, -0.0163215f, -0.145453f, 0.110626f, -0.160982f, -0.114314f, -0.0135436f, -0.0897897f, -0.0446843f, 0.0930114f, -0.0611316f, 0.0408586f, -0.115514f, 0.213092f, 0.141508f, -0.117266f, -0.00855032f, 0.0189952f, -0.0784494f, 0.128909f, 0.0145261f, 0.051273f, 0.0776919f, 0.0406556f, 0.105761f, -0.0800545f, 0.0771669f, -0.142329f, -0.0306794f, -0.0372504f, 0.017604f, 0.00163186f, -0.0273358f, -0.182261f, 0.0480898f, 0.0647743f, -0.106722f, -0.061164f, 0.093127f, -0.0112144f, 0.0336014f, 0.0197844f, -0.119914f, 0.053549f, 0.000104774f, -0.174979f, -0.0973817f, -0.0753645f, -0.104889f, 0.0184955f, 0.0369231f, 0.135577f, 0.106943f, -0.124586f, -0.00918955f, 0.05233f, 0.0323347f, 0.049891f, 0.0846853f, -0.0276934f, -0.0864644f, -0.0369862f, 0.00912658f, -0.0805045f, 0.0188865f, 0.0318936f, 0.0049139f, -0.0847306f, -0.0822785f, -0.0700832f, 0.132075f, -0.109147f, 0.064373f, -0.109501f, 0.103236f, -0.0617441f, -0.0369931f, 0.117705f, 0.167566f, 0.138647f, 0.0753686f, -0.0335984f, -0.0480342f, 0.167053f, 0.111084f, -0.0331647f, -0.0677254f, 0.0646152f, 0.222894f, 0.220782f, 0.0577175f, -0.188253f, -0.171441f, 0.168591f, -0.0548889f, -0.163521f, -0.00378139f, -0.105372f, 0.0228994f, -0.0716336f, 0.016878f, -0.0667498f, 0.274442f, 0.0747821f, -0.0821023f, -0.213054f, -0.00575367f, 0.110444f, -0.00565615f, -0.0112644f, -0.1735f, 0.0213856f, -0.00532364f, -0.0484755f, 0.076906f, -0.212372f, 0.110665f, -0.00846238f, 0.18119f, -0.0106014f, -0.103381f, 0.166564f, -0.0621495f, -0.0257567f, -0.0253242f, -0.103339f, 0.232794f, -0.112876f, -0.104861f, -0.00543545f, -0.124372f, 0.141687f, -0.158963f, -0.0207963f, 0.123704f, -0.0959315f, -0.0920621f, 0.22188f, -0.283692f, -0.0250193f, -0.202778f, 0.03239f, 0.046671f, -0.0293851f, -0.0779095f, 0.00378437f, -0.0271783f, -0.0426656f, -0.0764985f, 0.140618f, 0.0236842f, -0.183218f, 0.120712f, 0.0114139f, 0.215188f, -0.0296678f, 0.118062f, -0.00776725f, -0.00753903f, -0.101778f, -0.228276f, -0.0900721f, -0.154581f, -0.126928f, 0.0852451f, 0.186845f, -0.137221f, -0.109034f, -0.199778f, -0.0370176f, -0.0384152f, 0.0065772f, -0.0423043f, 0.250641f, 0.0365436f, 0.0125937f, 0.019508f, -0.0615406f, 0.0362965f, -0.0311558f, 0.0212516f, -0.0481939f, 0.117923f, -0.17446f, 0.00401945f, -0.163372f, 0.0439086f, -0.0830307f, -0.187177f, 0.0401116f, 0.0661556f, -0.0964831f, 0.0229002f, -0.0350261f, -0.0145476f, -0.19781f, -0.0176149f, -0.0329751f, 0.044591f, -0.0256604f, -0.137456f, -0.0219652f, -0.0191434f, -0.143073f, -0.0829198f, 0.0603474f, 0.0524168f, 0.0901163f, -0.0555037f, -0.0406743f, -0.082585f, 0.163686f, 0.040306f, 0.245275f, -0.0580714f, 0.115726f, 0.0184644f, -0.0345279f, -0.207341f, -0.113809f, -0.0833193f, -0.204487f, 0.0653654f, -0.0373645f, 0.168104f, -0.00169318f, 0.0238206f, -0.255042f, 0.0377057f, -0.120907f, 0.121589f, 0.0283144f, 0.0196475f, 0.0576875f, 0.0514876f, 0.117559f, 0.200795f, 0.147623f, 0.108843f, 0.0215549f, 0.00868095f, -0.0877676f, -0.121408f, -0.0132873f, 0.087423f, -0.0324859f, 0.00953814f, -0.184857f, -0.00637239f, 0.0599664f, 0.228509f, -0.015208f, -0.237559f, 0.0599949f, 0.0106292f, 0.21694f, 0.0447579f, 0.0319901f, -0.0682831f, -0.148811f, -0.0389683f, 0.12447f, -0.0975377f, -0.0245779f, 0.105937f, -0.0868772f, 0.0365106f, -0.0518278f, 0.0196491f, -0.103132f, -0.0102462f, -0.00973575f, 0.13964f, -0.0769664f, -0.180701f, 0.0158449f, 0.0268717f, -0.177578f, -0.173909f, -0.0886737f, 0.310141f, 0.0986323f, 0.0471918f, -0.0153981f, 0.00742158f, -0.0444734f, -0.0499117f, 0.0014988f, 0.171489f, -0.0196056f, 0.0666416f, 0.0939522f, -0.157873f, 0.0302262f, -0.0155974f, -0.051531f, -0.00851873f, -0.0279823f, -0.204427f, -0.279761f, 0.102654f, 0.135525f, 0.0285799f, 0.117336f, -0.0310939f, -0.0811155f, 0.0401295f, 0.063781f, 0.134331f, -0.182935f, -0.0614224f, -0.153874f, -0.0767025f, 0.0220576f, 0.00857299f, -0.194695f, -0.0394916f, -0.126519f, 0.000338776f, 0.0898122f, -0.0517047f, 0.0270515f, -0.0904786f, 0.0727907f, 0.0103118f, 0.0282361f, 0.0458895f, -0.0658835f, 0.100916f, -0.00681487f, -0.262345f, 0.0518122f, -0.156089f, 0.0280608f, 0.0148329f, 0.0233706f, 0.00621211f, 0.132306f, 0.0224061f, 0.0977839f, -0.139096f, -0.154865f, 0.104794f, -0.0318263f, -0.059378f, 0.0762176f, -0.00700132f, -0.0273371f, -0.169181f, 0.0343484f, 0.0756934f, -0.0802823f, 0.0464057f, -0.0132356f, -0.0489437f, -0.150427f, -0.00583371f, 0.106342f, -0.0349316f, 0.0264876f, -0.00345776f, -0.0244629f, 0.0803742f, 0.00227614f, 0.00982431f, -0.0301043f, -0.122886f, 0.0770747f, 0.0509632f, 0.0697664f, -0.231282f, 0.301035f, -0.234289f, 0.067095f, 0.116476f, 0.185526f, -0.00684764f, -0.00923876f, -0.0884593f, -0.121095f, -0.0198458f, -0.237812f, 0.102048f, -0.00467782f, 0.0752156f, 0.00043337f, -0.0255029f, 0.0769409f, -0.0916477f, 0.119186f, 0.264537f, 0.168552f, -0.0271646f, -0.0738106f, 0.0695185f, -0.020108f, 0.0105545f, 0.0592683f, -0.0357231f, -0.0659838f, -0.132112f, -0.125838f, 0.0610998f, 0.0915407f, -0.0532799f, 0.132013f, -0.0417504f, 0.0171307f, 0.0727414f, -0.0396734f, -0.195374f, -0.150759f, -0.146019f, -0.000129357f, -0.157819f, -0.037305f, -0.0636451f, -0.010277f, -0.0323875f, -0.163209f, 0.142625f, -0.109614f, 0.10237f, 0.0410216f, 0.128704f, 0.119176f, -0.0242246f, -0.00502705f, 0.00460461f, -0.177966f, 0.0212636f, 0.113281f, -0.0292875f, 0.151363f, -0.0830114f, -0.0898004f, 0.0983629f, 0.104312f, 0.0205604f, 0.128902f, 0.146297f, -0.0221382f, -0.0919311f, -0.125302f, 0.162886f, -0.0962725f, -0.0435236f, -0.00469537f, -0.0752695f, 0.00106227f, -0.00714068f, 0.0606199f, 0.0930324f, -0.119268f, 0.0445391f, -0.111025f, 0.0694672f, 0.154231f, 0.0142424f, -0.0770751f, -0.00583718f, -0.00173463f, 0.0659798f, -0.0880381f, 0.103198f, 0.0448652f, -0.0381378f, 0.16103f, 0.103832f, -0.128215f, 0.0498012f, -0.0694977f, -0.0636685f, 0.0826374f, -0.0795229f, -0.0638656f, -0.0667482f, -0.0343075f, -0.0103444f, -0.105407f, 0.0828209f, -0.050334f, -0.141682f, 0.0281532f, 0.0643671f, -0.183231f, 0.0227942f, -0.0549356f, -0.0342141f, 0.186646f, -0.0917522f, -0.127942f, 0.125101f, -0.181915f, 0.0522338f, 0.0812825f, 0.0546865f, 0.0728841f, -0.0949873f, -0.0627475f, -0.0587697f, 0.158875f, -0.0535016f, -0.00504321f, -0.0111207f, 0.0448919f, 0.157511f, -0.0232261f, 0.11488f, 0.139703f, -0.0681121f, 0.0955657f, -0.0335836f, -0.223557f, -0.100363f, -0.0106308f, -0.029551f, -0.0431837f, 0.207824f, -0.136919f, -0.02629f, -0.130301f, -0.0587604f, 0.104923f, 0.0170929f, -0.0324838f, 0.0330339f, -0.188193f, 0.116562f, 0.0427236f, -0.0687897f, -0.0244109f, 0.151626f, 0.263187f, 0.0300919f, 0.0362307f, 0.164392f, -0.13796f, -0.0844602f, 0.238028f, -0.216359f, -0.00032918f, -0.00390236f, 0.0346738f, 0.12149f, -0.0197238f, 0.017228f, -0.0261212f, 0.0300019f, 0.15791f, 0.0849728f, 0.0399212f, -0.180751f, 0.0160846f, 0.0291029f, 0.0910596f, -0.0359116f, 0.0311784f, 0.0581261f, -0.014546f, -0.0784322f, 0.203688f, 0.0183573f, -0.0038004f, -0.0813738f, -0.202422f, 0.0447f, -0.150594f, -0.00394836f, -0.0519018f, 0.0883874f, 0.11577f, -0.1805f, 0.0150799f, -0.061807f, 0.0553766f, 0.0977515f, -0.129653f, -0.00438235f, 0.118184f, 0.0750802f, 0.00548089f, 0.132369f, 0.0951361f, 0.0856424f, 0.119011f, -0.141984f, -0.160855f, 0.10191f, -0.0565621f, 0.0780518f, 0.0174726f, -0.16441f, -0.070801f, 0.0941397f, 0.0685791f, -0.0630681f, -0.0723495f, 0.0368218f, 0.184924f, 0.116799f, -0.182758f, 0.193915f, -0.119261f, 0.0390642f, -0.12996f, -0.0666614f, 0.0227812f, 0.00839559f, -0.169715f, 0.115815f, -0.0491068f, -0.0966268f, 0.00648405f, -0.0135297f, 0.0953178f, -0.0476577f, 0.0382834f, -0.0758474f, -0.0484444f, 0.0125376f, -0.00870861f, -0.00222187f, -0.0135501f, 0.0177982f, 0.0192491f, -0.0824786f, 0.121511f, 0.104046f, -0.0895747f, -0.157672f, -0.22512f, -0.131482f, -0.0967554f, 0.0815421f, 0.0757747f, 0.0589653f, -0.163923f, 0.0137321f, -0.246901f, 0.0317018f, -0.0250108f, 0.0664319f, 0.110109f, 0.0386563f, -0.00944058f, -0.138743f, -0.118783f, 0.208967f, -0.164419f, -0.124472f, -0.0212722f, -0.118226f, 0.209058f, 0.132617f, -0.14591f, 0.0914222f, -0.00498604f, 0.0057948f, -0.124447f, -0.0286229f, -0.0205255f, 0.183246f, 0.20576f, -0.240235f, 0.145636f, 0.0735931f, -0.0829176f, -0.171769f, 0.034642f, 0.12321f, -0.0123662f, -0.0192943f, 0.125393f, 0.063673f, -0.169814f, 0.0141298f, -0.0149597f, 0.279617f, -0.0990001f, 0.0118792f, -0.0156191f, -0.187508f, 0.0217364f, 0.169355f, -0.137384f, 0.0900887f, 0.177562f, -0.138826f, 0.00281942f, 0.154991f, 0.0726879f, -0.0262619f, -0.00162073f, -0.0981954f, 0.170884f, 0.0300427f, -0.0863241f, 0.149532f, -0.0458405f, -0.252101f, 0.0771694f, -0.0717361f, 0.071472f, -0.0777496f, 0.106408f, 0.138639f, 0.00259059f, -0.0286827f, 0.0848294f, 0.0259961f, 0.111403f, -0.116841f, -0.130521f, 0.134984f, 0.0849394f, 0.061535f, -0.13181f, 0.0801357f, 0.026597f, 0.13074f, -0.175008f, -0.118696f, -0.0493012f, 0.0242163f, 0.200502f, -0.125426f, 0.098815f, -0.0148932f, -0.03976f, -0.0190254f, 0.029646f, -0.0685296f, -0.0180597f, 0.0480716f, -0.159538f, 0.145747f, 0.00348657f, -0.0201373f, -0.0684361f, -0.104563f, -0.041976f, 0.245565f, 0.0250568f, 0.059876f, 0.040997f, -0.162065f, -0.0985387f, 0.0213833f, 0.0475885f, -0.00422992f, 0.070804f, -0.118943f, -0.287708f, 0.0721926f, -0.146738f, 0.0822683f, -0.218773f, 0.0419571f, 0.259236f, 0.0146656f, 0.118328f, -0.044388f, -0.0272503f, -0.110389f, 0.0513478f, 0.0408918f, -0.138043f, 0.0238336f, -0.140136f, -0.037698f, 0.0330096f, -0.0841876f, 0.0200485f, 0.0113442f, -0.0139234f, -0.0525756f, -0.0490288f, -0.119329f, 0.112103f, 0.043149f, 0.051167f, 0.017451f, 0.015026f, 0.0242188f, -0.267665f, -0.0390038f, -0.13685f, 0.0415737f, -0.0197286f, -0.256733f, -0.057317f, -0.228583f, -0.145318f, 0.16181f, -0.162375f, -0.00765413f, -0.0757132f, -0.094891f, -0.00850878f, 0.190842f, -0.195192f, -0.071808f, -0.114387f, 0.000452013f, 0.0472382f, 0.0671041f, 0.112684f, 0.068659f, 0.0326951f, -0.158546f, 0.0325826f, 0.0999721f, -0.0868775f, 0.0523428f, -0.11941f, -0.0806756f, 0.0738f, 0.0473319f, 0.0679956f, -0.129093f, 0.0675973f, -0.00574688f, 0.032098f, 0.15726f, 0.190707f, 0.323377f, -0.241921f, -0.0286727f, -0.0414776f, -0.0157677f, -0.0861303f, 0.0224796f, -0.000466124f, -0.0129288f, 0.162261f, 0.0370714f, -0.0461425f, -0.00258283f, 0.0772417f, -0.0304827f, -0.134532f, 0.0190635f, -0.0165902f, 0.0269292f, 0.0611972f, -0.108401f, -0.0904463f, -0.0680424f, -0.0235453f, -0.150952f, 0.0796328f, 0.205615f, 0.0952299f, 0.0784831f, 0.177595f, 0.0128197f, -0.0494567f, -0.0572345f, 0.0889227f, -0.0303397f, 0.0433962f, -0.0279198f, -0.168252f, -0.0587622f, -0.109644f, 0.0342281f, -0.105207f, -0.149542f, -0.0178028f, 0.0605307f, 0.433964f, -0.157911f, 0.0130867f, 0.175196f, -0.145149f, -0.0474695f, -0.0501048f, -0.0594536f, 0.183628f, 0.127781f, -0.0697608f, -0.0743111f, 0.0159739f, -0.0319181f, 0.0452513f, -0.123626f, 0.0803679f, 0.0136663f, 0.0972348f, -0.111558f, -0.0755847f, -0.0811627f, -0.113374f, 0.138508f, 0.09752f, -0.0507378f, -0.122023f, -0.102396f, 0.125723f, -0.148707f, 0.0108991f, -0.118561f, 0.00177947f, -0.0913197f, 0.0319556f, 0.189195f, 0.0588704f, 0.0172093f, -0.0556266f, 0.165501f, 0.0515911f, 0.104442f, -0.0513536f, -0.12412f, 0.127277f, -0.156688f, 0.2981f, 0.135129f, 0.110121f, 0.134767f, -0.138083f, -0.094293f, 0.109161f, -0.0207537f, 0.105471f, 0.155951f, -0.0661364f, -0.0333641f, -0.000317329f, 0.00736004f, -0.0364465f, 0.0770055f, -0.152163f, -0.0729682f, 0.113657f, -0.0185985f, -0.0212449f, -0.0463455f, -0.0435138f, 0.123113f, -0.03366f, 0.0251839f, 0.058941f, -0.00837915f, -0.11388f, -0.100928f, 0.0549517f, 0.185398f, 0.074143f, 0.160751f, 0.0361101f, -0.0533832f, 0.0901582f, 0.0230447f, -0.00733617f, 0.128873f, -0.00156648f, -0.0535405f, 0.0931883f, -0.00192355f, -0.101587f, 0.162157f, -0.157054f, 0.109297f, -0.0755508f, -0.0614933f, 0.139297f, 0.0959243f, -0.0328405f, -0.0274225f, -0.145443f, 0.0769373f, -0.00177951f, 0.0620423f, 0.125425f, -0.216934f, 0.26408f, -0.0364212f, 0.0465019f, -0.0918996f, -0.0592184f, -0.046848f, -0.042585f, 0.075348f, -0.0661938f, -0.144206f, -0.0988561f, -0.319678f, 0.289596f, 0.0765192f, -0.0791929f, -0.184931f, -0.0642023f, 0.0259866f, -0.165419f, 0.023221f, -0.0286147f, -0.0790055f, -0.107353f, -0.0997945f, -0.00718917f, -0.0807457f, -0.0469704f, 0.127397f, 0.250434f, -0.0371378f, -0.183922f, -0.0167669f, -0.00135538f, -0.142212f, 0.00524088f, 0.129769f, -0.11036f, -0.244273f, -0.149238f, -0.0477249f, 0.0727199f, -0.116137f, 0.0968332f, -0.24326f, 0.0486493f, -0.00684341f, -0.14268f, 0.112257f, 0.0112531f, -0.09399f, -0.0200694f, 0.0218691f, -0.150187f, -0.0914482f, -0.186834f, -0.230045f, -0.0568653f, -0.170303f, 0.207933f, 0.174029f, -0.11013f, -0.0633762f, -0.19346f, 0.0703697f, 0.0815477f, 0.0428373f, -0.00303358f, -0.0227779f, 0.0690087f, -0.20921f, -0.0942764f, -0.0530743f, -0.0654137f, 0.0893155f, -0.197467f, 0.0238677f, 0.0295315f, 0.000381555f, -0.00853992f, -0.154965f, -0.0252516f, -0.0836966f, 0.164947f, -0.0301782f, 0.333789f, -0.0212481f, 0.130028f, 0.0575233f, 0.0345667f, 0.163647f, -0.00688823f, 0.0878119f, -0.000556241f, -0.0434325f, 0.0534544f, 0.0820418f, 0.0695176f, -0.00758114f, -0.0455775f, 0.0400143f, -0.111715f, 0.026858f, -0.0983138f, -0.050654f, -0.164829f, -0.0223176f, 0.0146935f, -0.0356526f, 0.0930844f, 0.201751f, 0.00041887f, -0.00891975f, -0.0980879f, -0.128317f, 0.0173679f, -0.0221195f, -0.0762301f, -0.0773396f, 0.132246f, -0.0231937f, 0.00213525f, -0.072994f, -0.144603f, 0.0495062f, -0.108106f, -0.056041f, -0.0180526f, -0.0486781f, 0.0607214f, 0.0677927f, -0.142324f, 0.121645f, -0.188725f, -0.0285899f, -0.0505665f, -0.0795477f, -0.131438f, 0.0172997f, 0.0350182f, -0.00115356f, -0.127438f, -0.0317771f, 0.12731f, 0.0242159f, 0.0390987f, -0.109258f, -0.116174f, -0.198747f, -0.231578f, -0.0324721f, 0.00407935f, -0.00211231f, -0.0706179f, -0.0136609f, 0.0926445f, -0.145862f, -0.151436f, 0.109068f, -0.0369936f, -0.11209f, -0.0864792f, 0.115085f, 0.0870337f, -0.0711624f, -0.139396f, 0.195173f, 0.0433321f, 0.0737194f, -0.0581706f, 0.0984705f, -0.0211357f, -0.0599719f, -0.115591f, -0.00416636f, -0.200666f, 0.121843f, 0.0923146f, -0.108573f, -0.0134115f, 0.0777612f, 0.0798993f, -0.0315123f, 0.0713013f, 0.15217f, -0.0204676f, -0.0801396f, -0.120112f, 0.0746271f, -0.165833f, 0.109764f, 0.0586215f, 0.315196f, 0.177802f, -0.111254f, 0.026676f, 0.117492f, -0.14724f, -0.109606f, 0.265319f, 0.0600589f, -0.165652f, -0.0688138f, -0.0922484f, -0.175248f, 0.024189f, 0.0709505f, 0.0608452f, 0.134331f, -0.119098f, 0.0244715f, -0.0462494f, 0.00390764f, -0.0594055f, -0.103408f, 0.060801f, 0.0303193f, 0.271302f, -0.122378f, -0.0771676f, -0.084314f, 0.260763f, -0.0779146f, -0.0838493f, 0.0260412f, 0.107949f, -0.0395211f, 0.0408678f, 0.0505543f, -0.132065f, -0.0729501f, -0.0316211f, 0.137847f, -0.233071f, 0.118024f, -0.0111382f, -0.0662137f, -0.0822078f, -0.0359563f, -0.0489065f, 0.0311875f, -0.0300279f, 0.139501f, 0.0997752f, 0.0779597f, 0.149385f, 0.146518f, -0.138207f, 0.00932973f, -0.112234f, 0.0681598f, -0.13097f, 0.0196343f, -0.020442f, 0.0361161f, 0.1283f, -0.175346f, 0.110148f, -0.0949294f, -0.0415389f, 0.330691f, 0.21151f, -0.0371684f, 0.177041f, -0.174835f, 0.0199827f, -0.00664497f, -0.022939f, 0.0443776f, -0.114453f, -0.0653001f, -0.0440691f, 0.0955067f, -0.0103834f, 0.0808997f, 0.105505f, 0.0366445f, -0.0156459f, 0.0586429f, 0.0920336f, 0.120951f, 0.00444019f, 0.00716882f, -0.0213016f, -0.0891724f, -0.0459262f, -0.0906061f, 0.115472f, -0.129562f, -0.193793f, 0.000986479f, 0.0984758f, -0.00899917f, 0.189529f, -0.0559908f, 0.180319f, -0.152013f, 0.000315553f, -0.212779f, -0.208461f, -0.00695916f, -0.0287925f, 0.123938f, -0.126537f, -0.134866f, -0.11523f, -0.0104229f, -0.159823f, -0.0198317f, 0.178556f, -0.101695f, -0.0192859f, 0.0491941f, -0.216542f, -0.0441142f, 0.0495302f, -0.0115171f, -0.160944f, 0.061314f, -0.130406f, 0.0447031f, -0.0999449f, 0.0100669f, 0.116465f, -0.0283349f, 0.0576171f, -0.0967466f, 0.197225f, 0.0227257f, 0.0772337f, 0.0882458f, 0.146106f, 0.107989f, -0.0994646f, -0.204839f, -0.21114f, -0.0237172f, -0.156508f, 0.033809f, 0.119282f, -0.122803f, 0.150667f, 0.161799f, -0.0522712f, -0.119849f, -0.012052f, -0.180226f, -0.209964f, -0.191457f, -0.0580356f, -0.0297587f, 0.118379f, -0.00474629f, 0.087004f, -0.0462261f, 0.14188f, 0.0169222f, 0.0591878f, 0.11164f, -0.0432439f, -0.12378f, -0.158833f, -0.0260662f, 0.0626987f, -0.0193457f, 0.0214984f, 0.0768999f, 0.148356f, -0.00183484f, 0.0489961f, -0.0817268f, -0.189182f, 0.0298041f, -0.0516727f, -0.188549f, -0.00139943f, 0.137594f, -0.0383308f, -0.173886f, -0.080511f, -0.0169833f, -0.00537136f, -0.0128439f, 0.0971403f, 0.0154074f, 0.0135551f, -0.006325f, -0.0111519f, 0.00141433f, -0.0975279f, 0.0431854f, -0.0172852f, -0.0399256f, 0.0603753f, 0.0112852f, 0.113332f, -0.0613896f, 0.0858716f, -0.00791405f, 0.056358f, 0.0307671f, 0.00383111f, -0.0823662f, -0.146132f, 0.0212469f, 0.108696f, -0.150931f, -0.0319544f, 0.0390898f, -0.00686118f, -0.101447f, 0.0420605f, -0.0326291f, 0.0192058f, 0.0109758f, -0.122602f, -0.00603783f, 0.0388566f, -0.103114f, -0.0442833f, 0.135881f, 0.0491371f, 0.106074f, 0.0451305f, 0.0657474f, 0.10992f, -0.0123194f, 0.135237f, 0.0338096f, 0.0117319f, 0.087976f, 0.020141f, -0.0379343f, -0.00487098f, -0.0648737f, -0.0370638f, 0.0627721f, -0.100044f, -0.0396797f, 0.152605f, -0.0402248f, -0.138138f, 0.0111759f, -0.0684191f, -0.0370679f, -0.0375698f, -0.0763142f, -0.162018f, -0.138733f, 0.304157f, 0.121227f, -0.00500913f, 0.0537627f, 0.133221f, -0.0282058f, -0.0487365f, -0.115093f, -0.0267755f, 0.0486594f, -0.13296f, 0.0777529f, -0.000694962f, -0.165496f, -0.124797f, -0.0825031f, -0.0779588f, -0.0912132f, 0.0362242f, 0.00840585f, -0.0491807f, -0.00440839f, -0.0647418f, 0.126863f, -0.202324f, 0.190831f, 0.156256f, 0.0916723f, -0.0698775f, 0.247824f, 0.00224395f, 0.0310593f, -0.151706f, 0.0179711f, -0.121026f, 0.01643f, 0.237676f, 0.0641909f, -0.143363f, -0.0652544f, -0.0443614f, 0.371417f, -0.00893165f, -0.162306f, 0.0553359f, -0.171913f, -0.0096987f, -0.14121f, 0.0331017f, 0.00194561f, 0.0557772f, -0.106906f, 0.202917f, 0.0369529f, 0.0424986f, -0.00892266f, -0.0178061f, -0.12995f, -0.108349f, 0.074846f, 0.0570917f, 0.0406642f, -0.0470085f, 0.01141f, -0.174869f, 0.160633f, 0.1924f, 0.218261f, 0.0431976f, -0.0648925f, 0.0631339f, -0.0353262f, -0.074541f, -0.0518874f, -0.0581469f, -0.102702f, -0.132137f, -0.0508166f, 0.0735692f, -0.0166338f, 0.14164f, -0.0802969f, -0.0971184f, 0.064443f, -0.0537519f, -0.109267f, 0.239306f, 0.192163f, 0.154879f, 0.0577764f, 0.0267988f, -0.0500937f, 0.109621f, 0.058159f, 0.223418f, 0.139812f, -0.00638642f, 0.0172835f, -0.0663939f, 0.00403787f, -0.118781f, 0.12368f, -0.0185591f, 0.075266f, -0.0356658f, -0.118548f, 0.0289529f, 0.0919536f, 0.0426263f, -0.013504f, -0.0564347f, -0.121058f, -0.221651f, -0.00551002f, 0.0804875f, 0.102452f, -0.0125593f, -0.205917f, -0.029786f, 0.0109471f, -0.0545612f, 0.08654f, -0.0695254f, 0.0756492f, 0.0480743f, 0.0908641f, -0.0933189f, 0.158904f, -0.0140534f, -0.00746724f, -0.0663132f, -0.100125f, 0.0720423f, -0.157874f, -0.0817503f, -0.0293721f, -0.0877366f, -0.0389767f, 0.113f, 0.0484425f, -0.0915123f, -0.182408f, -0.0984299f, 0.000755139f, -0.0468246f, -0.0263893f, -0.149219f, 0.126985f, -0.0266861f, 0.0179192f, 0.06677f, -0.103601f, 0.0930517f, -0.183385f, 0.0310961f, -0.125466f, -0.0843848f, 0.0502322f, -0.0382927f, -0.0445106f, 0.187431f, 0.0125791f, -0.0323883f, -0.0209661f, -0.0389042f, 0.0429565f, -0.185761f, -0.181286f, 0.0187844f, 0.0211383f, -0.0102428f, -0.113519f, -0.026403f, 0.0672598f, 0.103476f, 0.137844f, 0.0297731f, -0.0366092f, 0.114466f, -0.0342639f, -0.0162637f, 0.0366472f, 0.00655522f, 0.0111911f, 0.00214161f, -0.00757995f, 0.0521702f, -0.00493278f, 0.0476339f, 0.018265f, -0.156771f, 0.114003f, 0.0755004f, -0.0580131f, -0.0197825f, -0.248673f, 0.0189373f, -0.147109f, -0.0924948f, 0.262317f, 0.0660743f, 0.00757811f, -0.0258767f, -0.208245f, 0.0637876f, -0.0522739f, 0.0261157f, -0.14655f, -0.00314429f, -0.104808f, -0.0776504f, -0.0462131f, 0.142878f, -0.0124034f, -0.0689803f, -0.0224483f, -0.228198f, -0.0629258f, -0.0637385f, 0.018147f, 0.114679f, 0.025873f, -0.0622928f, -0.152135f, 0.113077f, 0.0377773f, -0.128383f, -0.0145307f, 0.142079f, 0.0842732f, 0.201689f, -0.0858969f, -0.158346f, 0.0418137f, -0.0700031f, -0.100956f, 0.0249941f, 0.079612f, -0.0518968f, 0.0358457f, 0.0183833f, -0.21315f, -0.0186678f, 0.109553f, -0.140504f, -0.0782359f, 0.0231557f, 0.0938807f, -0.116853f, 0.0728029f, 0.0164456f, -0.215355f, -0.00868728f, 0.124789f, -0.128877f, -0.0919942f, 0.133347f, 0.134577f, -0.129176f, 0.0369104f, -0.200582f, 0.06082f, 0.28717f, -0.0868472f, -0.0198369f, 0.0770921f, 0.120151f, -0.0607091f, 0.0078167f, -0.125202f, 5.49952e-05f, 0.065475f, 0.0557348f, -0.0401417f, -0.108477f, 0.0133732f, -0.131136f, -0.0508999f, -0.00223936f, -0.126903f, 0.0312719f, -0.137197f, 0.0197078f, -0.132759f, -0.352413f, -0.0172385f, -0.233264f, 0.075856f, 0.00456432f, 0.0564323f, 0.0804731f, -0.188607f, -0.0974575f, 0.152314f, -0.11746f, -0.182304f, 0.130548f, 0.100167f, 0.0507137f, -0.0629208f, 0.0531559f, 0.151359f, -0.144696f, 0.0385088f, 0.0450968f, -0.0262048f, -0.127715f, 0.123848f, 0.111723f, 0.0334186f, 0.0258846f, 0.119754f, -0.0202312f, 0.205141f, -0.0187051f, 0.0132508f, 0.187817f, 0.0485139f, 0.0998891f, 0.028727f, 0.12831f, 0.0204079f, 0.030043f, 0.0238686f, 0.0818843f, -0.103444f, -0.188478f, -0.0987062f, 0.125334f, -0.00375301f, 0.108193f, 0.00480241f, -0.0497105f, -0.0732506f, 0.0189275f, -0.112025f, 0.00810107f, 0.0220397f, -0.161195f, -0.100693f, -0.0371918f, 0.0107149f, -0.00975513f, -0.176911f, -0.0389824f, -0.0395726f, 0.0587879f, -0.106505f, 0.157876f, -0.12746f, -0.246414f, 0.0497721f, -0.238977f, 0.0691724f, 0.056388f, 0.100719f, -0.0867342f, 0.166973f, 0.015547f, 0.0150221f, -0.0350028f, 0.0734807f, 0.056094f, -0.0934398f, -0.020043f, -0.0856575f, -0.0715937f, 0.0482533f, -0.0517124f, 0.0759479f, 0.0765177f, -0.026634f, -0.00760169f, 0.264911f, -0.114951f, -0.00111966f, 0.0473189f, -0.0916461f, 0.133662f, 0.0136635f, 0.209605f, -0.0796336f, 0.161999f, 0.161474f, -0.103812f, -0.0203293f, 0.0423211f, -0.14117f, -0.0299005f, -0.074536f, -0.0833591f, 0.101655f, -0.0536412f, 0.0445403f, -0.115856f, 0.0156406f, -0.0222762f, -0.00948453f, 0.218612f, 0.00184698f, -0.109532f, 0.163622f, 0.0464979f, -0.0681052f, 0.0156499f, -0.135344f, 0.062112f, -0.0936049f, 0.0376508f, 0.0351376f, -0.131344f, 0.000366878f, -0.00907762f, 0.153844f, 0.142441f, -0.202864f, -0.0417995f, -0.0810284f, 0.00882391f, -0.154703f, -0.0600133f, -0.12518f, 0.00756016f, 0.0462422f, -0.0951037f, 0.0333239f, -0.07541f, 0.0105937f, 0.108345f, 0.0147358f, -0.0177402f, 0.0436871f, -0.0499526f, 0.0141547f, -0.0434475f, 0.0459407f, 0.166539f, 0.120819f, 0.0226808f, 0.146278f, -0.0730589f, 0.11574f, 0.0526629f, 0.0280651f, -0.0195751f, 0.00343156f, -0.0419069f, 0.176441f, 0.0440848f, -0.0235732f, 0.0982006f, -0.11558f, 0.0330334f, -0.0263329f, 0.106353f, -0.101159f, -0.195396f, 0.126588f, -0.0773994f, -0.134626f, 0.112153f, -0.0183646f, -0.0219087f, 0.00807422f, -0.0504513f, 0.0337173f, -0.102684f, 0.0449187f, -0.0747549f, -0.131373f, 0.0890617f, 0.161858f, 0.0718729f, 0.0361666f, -0.0552876f, 0.0911061f, 0.0522399f, 0.0242975f, 0.00940125f, 0.207663f, 0.17342f, -0.138734f, 0.010788f, -0.0526315f, -0.162878f, 0.0156039f, 0.0977803f, -0.14555f, 0.00113647f, 0.0212126f, 0.0577163f, -0.0876032f, -0.073284f, 0.0144115f, -0.109542f, -0.0622171f, 0.23701f, 0.0586015f, -0.162666f, 0.133266f, 0.0634794f, -0.0929719f, 0.0730344f, -0.0476648f, 0.0506314f, 0.164455f, -0.136249f, -0.0295158f, 0.0644336f, -0.0744956f, 0.0337126f, -0.0248812f, 0.158288f, 0.0452751f, -0.0737273f, -0.0488111f, 0.0468395f, -0.027459f, 0.0765843f, 0.15095f, 0.0185789f, 0.149619f, -0.0989611f, -0.0687256f, 0.130176f, 0.00128648f, -0.00523641f, 0.0281812f, -0.142617f, 0.0403677f, 0.0519913f, 0.04809f, 0.0396371f, -0.0299808f, -0.0284684f, -0.0140274f, -0.101f, 0.054604f, -0.0151504f, 0.014014f, -0.128473f, -0.190519f, 0.038968f, -0.0126945f, -0.0806929f, -0.0345918f, -0.0667886f, 0.0739615f, 0.114834f, -0.0115583f, 0.029108f, 0.132641f, 0.264482f, -0.0850465f, -0.113706f, 0.197187f, -0.0453372f, 0.0723662f, -0.0535061f, -0.077838f, 0.0398346f, -0.117926f, -0.0269814f, 0.056459f, 0.0734755f, 0.0295613f, -0.0202756f, 0.116467f, 0.0195855f, 0.11871f, -0.0561854f, -0.102795f, 0.000464645f, 0.116731f, 0.0411435f, -0.0692616f, 0.0931987f, -0.0417803f, -0.0611444f, -0.148678f, -0.0996468f, -0.136396f, 0.257723f, 0.0200936f, 0.103908f, -0.0814903f, -0.0891926f, -0.0845848f, -0.0178414f, -0.056842f, 0.0818808f, -0.0374084f, -0.194734f, 0.0322784f, 0.037044f, -0.00791709f, -0.223533f, 0.186301f, -0.0317091f, 0.0278477f, -0.106633f, -0.11976f, -0.146218f, 0.150369f, 0.102993f, -0.19682f, 0.0288117f, 0.0236997f, 0.0206237f, 0.0990888f, -0.0562071f, -0.0712721f, -0.0520051f, 0.0299157f, -0.166401f, -0.0317945f, 0.129662f, -0.198022f, -0.0519746f, -0.0526509f, -0.130904f, -0.0819508f, 0.351061f, 0.118624f, -0.078269f, 0.00837207f, -0.00423879f, 0.025991f, 0.137437f, -0.058957f, -0.0658786f, -0.136939f, -0.0123634f, -0.0872978f, -0.0652228f, -0.0670253f, -0.0919848f, 0.0746871f, -0.061975f, -0.0667802f, -0.0101948f, 0.0557213f, 0.130712f, -0.0748117f, 0.180531f, -0.0798339f, 0.0279977f, -0.00301472f, 0.0154734f, 0.0607879f, -0.2627f, 0.0901328f, 0.01295f, 0.00807177f, -0.165311f, -0.107487f, -0.0473635f, -0.0667025f, -0.146224f, 0.0876123f, 0.239709f, -0.0269963f, -0.0579801f, 0.0221375f, -0.055669f, 0.298045f, 0.032988f, 0.0359916f, 0.0174036f, 0.133137f, 0.0139737f, 0.0877564f, 0.103058f, -0.196056f, 0.0338072f, 0.019686f, -0.07925f, -0.0202614f, 0.106781f, 0.0175249f, -0.0947154f, -0.0131557f, -0.00551364f, -0.0980893f, -0.1074f, -0.00910727f, -0.0795952f, 0.0595575f, -0.0070532f, 0.119748f, 0.0742946f, -0.0846364f, -0.25733f, 0.1286f, -0.104787f, -0.0655608f, 0.0335613f, -0.080148f, 0.00149728f, -0.0814989f, -0.0864276f, 0.0561097f, -0.0806872f, 0.0469379f, -0.0987809f, -0.151447f, -0.0608942f, 0.0851758f, 0.0210313f, 0.151998f, -0.134575f, -0.0500553f, -0.0367753f, -0.11697f, -0.129103f, -0.0539491f, 0.270011f, -0.0316977f, -0.027635f, 0.182345f, 0.208458f, -0.0293547f, -0.0732288f, -0.00511206f, -0.0709828f, 0.124638f, 0.0455886f, 0.106107f, -0.144144f, -0.0670556f, 0.14941f, 0.00885145f, -0.0132452f, 0.239021f, 0.125226f, 0.159401f, -0.0323475f, -0.0447762f, -0.285485f, 0.0533678f, -0.17939f, -0.0892733f, 0.0583172f, -0.0552103f, 0.117678f, 0.23639f, 0.0631596f, -0.00338635f, -0.0232856f, 0.182299f, -0.0230849f, -0.0237997f, 0.221939f, 0.0689814f, -0.0748877f, 0.160068f, 0.0217939f, -0.014894f, 0.0202097f, 0.000455546f, 0.101901f, 0.125463f, 0.238402f, -0.138437f, -0.0516667f, 0.0374677f, -0.087101f, -0.116812f, 0.00805426f, -0.0253099f, 0.0159838f, 0.0285728f, -0.0628473f, -0.141007f, 0.153307f, -0.0736671f, 0.151118f, 0.135347f, 0.104475f, -0.0144407f, 0.191449f, 0.091708f, 0.0320831f, 0.261018f, -0.0144105f, -0.0661519f, -0.243262f, -0.0735851f, 0.118683f, -0.0124979f, -0.0110629f, 0.221239f, 0.122597f, -0.0594752f, 0.0304448f, 0.135659f, -0.148657f, -0.0879701f, -0.0189645f, -0.0251772f, -0.0605244f, -0.067693f, 0.00513762f, -0.0828048f, 0.0308116f, -0.0484657f, -0.0173414f, -0.191159f, -0.138929f, -0.105644f, 0.118004f, 0.0114857f, 0.0238746f, 0.0899049f, 0.177431f, 0.0845479f, -0.0467669f, 0.282318f, 0.0616128f, -0.013862f, -0.0345739f, -0.0107562f, 0.0255937f, -0.0994993f, 0.112475f, 0.112288f, -0.102947f, -0.00221916f, 0.0392979f, 0.0718192f, -0.0208037f, 0.157622f, 0.292174f, 0.043817f, -0.0943159f, 0.0994815f, -0.0238317f, 0.0251925f, -0.145991f, -0.0233505f, -0.157998f, -0.212236f, -0.0753646f, 0.0630362f, 0.0721595f, 0.0779948f, 0.034658f, 0.0284095f, 0.0745825f, -0.0394593f, 0.0909219f, 0.0883947f, -0.133368f, -0.0332086f, 0.0156808f, 0.0787197f, -0.0907401f, 0.160492f, -0.0347791f, 0.0156051f, 0.0704204f, 0.142768f, -0.102196f, 0.0745035f, -0.0484585f, 0.150736f, -0.157772f, 0.268364f, 0.0211117f, 0.160798f, -0.268042f, -0.00937392f, -0.0297984f, 0.128163f, 0.148666f, -0.0293101f, -0.00792863f, -0.162577f, 0.047876f, 0.100093f, -0.0337935f, -0.0436986f, 0.0651717f, 0.138681f, 0.102141f, 0.112519f, -0.0276084f, 0.247616f, -0.0192775f, 0.0127356f, -0.0554251f, -0.113973f, 0.0722725f, -0.0202391f, 0.0665384f, -0.13861f, -0.0786415f, 0.0253131f, 0.112549f, 0.0616681f, -0.117593f, 0.150065f, 0.133648f, 0.0869141f, 0.157406f, -0.0593253f, 0.00751004f, -0.0445547f, -0.016963f, -0.0914018f, -0.0421872f, 0.00160929f, -0.159743f, 0.11837f, 0.0367186f, 0.0480147f, 0.0702128f, 0.0197862f, -0.067213f, -0.0870475f, 0.053503f, 0.0750881f, -0.193297f, 0.0559183f, 0.169465f, -0.0728308f, -0.0860772f, -0.00615427f, -0.0613926f, -0.0338083f, 0.0658931f, 0.0718619f, -0.125055f, 0.0375285f, 0.0127892f, 0.0344129f, -0.0312377f, -0.197651f, -0.123618f, -0.148696f, 0.0496702f, 0.0184066f, -0.0590396f, -0.0615918f, 0.0419674f, -0.0669918f, -0.0370587f, 0.0321723f, 0.156274f, 0.0886199f, 0.0930382f, -0.0146515f, -0.136389f, 0.158501f, 0.111493f, 0.0205895f, 0.012033f, -0.0653422f, 0.0855234f, 0.0340401f, 0.119563f, 0.0452342f, 0.0988647f, -0.131957f, 0.130266f, 0.0956164f, 0.0575742f, -0.0824534f, -0.0484529f, -0.0364454f, 0.1124f, -0.0265239f, -0.033424f, 0.0100372f, -0.16072f, 0.234931f, -0.0189168f, 0.153276f, 0.0915999f, 0.159832f, 0.121785f, 0.053054f, -0.0522008f, 0.202139f, 0.0264837f, 0.016988f, 0.026418f, -0.0398546f, 0.0617219f, 0.0107014f, 0.022615f, 0.193088f, 0.095175f, 0.238093f, 0.0537234f, 0.0423093f, -0.0424366f, 0.0644125f, -0.0518127f, 0.158825f, 0.131137f, -0.0458493f, 0.124687f, 0.0770887f, -0.083381f, 0.0445813f, -0.0431154f, 0.080351f, 0.0494925f, -0.129675f, 0.0908187f, -0.00764471f, -0.0489513f, -0.0644811f, 0.0541596f, -0.0366857f, -0.00789349f, -0.135849f, -0.0708528f, -0.10961f, 0.168127f, 0.136511f, -0.123576f, -0.096579f, -0.00960067f, -0.0358539f, -0.0717646f, -0.248454f, -0.229386f, 0.0172953f, -0.0516348f, 0.0721972f, 0.0529865f, -0.177573f, -0.0682934f, -0.110144f, 0.0142818f, 0.0796857f, -0.00604878f, 0.161439f, -0.104478f, -0.0728762f, -0.0327132f, -0.0363559f, 0.13612f, 0.125321f, -0.0224825f, 0.114334f, 0.101407f, -0.0615365f, 0.0495609f, 0.0333411f, 0.0296317f, -0.00237548f, -0.181011f, 0.044794f, -0.0227505f, -0.141552f, 0.148979f, -0.087523f, -0.0113795f, -0.0089813f, 0.046118f, -0.0692754f, 0.138722f, 0.0978858f, -0.131705f, 0.0264983f, -0.0184872f, 0.0129283f, 0.104089f, 0.0259186f, -0.135044f, 0.114308f, 0.0391859f, 0.153193f, 0.0790502f, 0.0404268f, 0.204994f, -0.100572f, -0.0346142f, 0.161087f, -0.173487f, -0.106021f, 0.0435564f, 0.0574432f, 0.133352f, -0.000597101f, -0.083681f, -0.132298f, 0.026762f, 0.0376358f, -0.0724621f, -0.0909591f, -0.147603f, 0.0185544f, 0.0688329f, -0.0607463f, 0.127183f, 0.0457405f, -0.0168881f, -0.0458127f, 0.0100659f, 0.0016674f, 0.175831f, -0.0730926f, 0.0506998f, -0.0477458f, -0.0379723f, 0.183855f, 0.0282985f, -0.0476187f, -0.0473827f, -0.0283228f, -0.0685551f, 0.0977124f, 0.0430866f, -0.000149904f, 0.0487944f, -0.0394531f, 0.0131427f, 0.18065f, -0.0732561f, -0.00305346f, 0.195146f, -0.0477413f, -0.0758727f, -0.0398604f, 0.0117771f, -0.177825f, -0.137666f, -0.0810544f, 0.201344f, -0.0155156f, -0.0687018f, -0.115545f, -0.0646203f, -0.213327f, -0.0651852f, -0.179245f, 0.00231509f, 0.193547f, 0.0742291f, -0.0614608f, -0.191082f, 0.0674305f, -0.046289f, -0.187931f, 0.0604789f, -0.141045f, -0.0704035f, 0.0364838f, -0.0565066f, -0.0196446f, 0.407273f, -0.0456548f, 0.0475105f, -0.0528885f, 0.215372f, 0.0614997f, 0.14763f, 0.0528386f, -0.102513f, -0.0209079f, 0.122046f, 0.167598f, 0.0742673f, -0.0169972f, -0.213103f, -0.106923f, 0.149118f, 0.00235392f, -0.0107972f, -0.0180884f, -0.0963137f, 0.0585904f, 0.148238f, -0.174436f, 0.0204644f, -0.15216f, 0.0237767f, -0.079483f, -0.03585f, 0.104775f, 0.0631706f, -0.033883f, -0.0588194f, -0.0495453f, -0.133674f, -0.154902f, -0.080561f, -0.0188154f, 0.0738083f, 0.0227125f, -0.0534533f, 0.322709f, 0.0504934f, 0.0206118f, -0.00949204f, -0.0330591f, 0.0114545f, -0.151258f, 0.164787f, -0.0489864f, 0.244638f, 0.017013f, -0.0139347f, 0.0245813f, 0.214575f, 0.0726256f, 0.0264862f, 0.122207f, 0.142751f, 0.0718323f, -0.0218197f, 0.201753f, 0.0447562f, 0.0554244f, -0.178547f, -0.164922f, 0.0687153f, -0.0368516f, -0.0302696f, 0.0384001f, 0.0266101f, -0.0307608f, 0.0447236f, -0.189695f, 0.165697f, -0.0559986f, -0.102072f, 0.0702354f, -0.04946f, -0.00806045f, 0.0113687f, 0.0248029f, 0.071866f, 0.133496f, -0.11962f, 0.0525384f, 0.160938f, -0.19284f, -0.182859f, -0.189134f, 0.0166773f, -0.0515002f, -0.167653f, 0.257322f, -0.0851817f, -0.169035f, -0.0412371f, -0.0944797f, 0.0742423f, 0.060149f, 0.126002f, -0.0311571f, -0.14389f, 0.135815f, 0.0721073f, 0.0454017f, -0.100816f, 0.0651085f, 0.151395f, 0.137469f, -0.0602666f, -0.00561533f, -0.0391113f, -0.104508f, -0.00351462f, 0.174219f, -0.146413f, 0.140061f, 0.0312364f, 0.0287886f, 0.0272509f, -0.00101321f, 0.0872971f, -0.032966f, 0.0573037f, 0.037435f, 0.096211f, 0.00344029f, 0.00829614f, 0.00352415f, -0.249772f, -0.0793788f, -0.0218955f, 0.0409802f, -0.0981336f, -0.148725f, -0.264469f, -0.205088f, -0.135216f, 0.155076f, 0.135721f, 0.15787f, 0.0917914f, 0.00824184f, 0.192711f, -0.0590436f, 0.0930081f, -0.173421f, 0.0257939f, -0.0682219f, 0.043859f, 0.0883881f, 0.0418144f, 0.155812f, -0.208273f, 0.00215251f, 0.0240725f, -0.1993f, -0.05635f, -0.0912805f, 0.00478167f, -0.0179434f, -0.0217672f, 0.156287f, -0.206127f, 0.229865f, -0.057959f, 0.048266f, 0.0807299f, 0.00256824f, -0.0609912f, -0.207553f, -0.00434727f, 0.110734f, 0.282094f, 0.043852f, 0.0354265f, -0.00419079f, -0.168759f, -0.112878f, -0.0230834f, -0.23014f, 0.127014f, -0.183513f, 0.0538923f, -0.0225664f, -0.0120678f, -0.168572f, 0.0364422f, -0.0277591f, -0.0400326f, -0.0849739f, -0.138359f, 0.123881f, 0.0828691f, 0.0753312f, 0.013407f, 0.167173f, -0.0318416f, 0.129428f, -0.0225675f, 0.0120963f, 0.00719724f, 0.0376847f, -0.0776559f, -0.0720361f, -0.20809f, -0.143793f, -0.0812301f, -0.0448761f, 0.0855133f, 0.0988324f, 0.0281835f, -0.0559045f, 0.0576683f, -0.141689f, -0.0387566f, -0.200209f, 0.0374624f, -0.14774f, -0.162956f, -0.250906f, -0.0630877f, 0.0884182f, 0.0793014f, -0.0912017f, -0.058325f, -0.00650869f, 0.167565f, 0.0292864f, -0.0342778f, -0.206017f, 0.0630515f, -0.0267039f, -0.019558f, 0.0427849f, -0.0741193f, 0.0491393f, 0.156007f, 0.0671799f, -0.0431952f, -0.0933973f, 0.171385f, -0.0240254f, -0.107334f, -0.140438f, -0.0207748f, 0.250045f, 0.0937269f, -0.170558f, -0.00240191f, 0.153921f, -0.0829899f, -0.173802f, 0.0143449f, 0.059459f, 0.0768919f, 0.0770167f, 0.33419f, -0.077167f, 0.0161141f, -0.0286083f, -0.069583f, -0.136506f, -0.0257297f, 0.136777f, -0.0377173f, -0.110683f, 0.0169389f, -0.0310538f, -0.104875f, -0.0834207f, -0.116825f, 0.196855f, -0.017186f, 0.0549452f, -0.0591403f, -0.133179f, -0.00946397f, -0.203391f, -0.114672f, -0.118381f, -0.132972f, 0.0739566f, -0.00954183f, 0.108585f, -0.133076f, 0.0976159f, 0.177701f, -0.109174f, 0.137116f, -0.101764f, 0.247621f, -0.092363f, -0.0332417f, 0.0537291f, -0.0194268f, -0.217997f, 0.00371031f, -0.0781709f, 0.0457442f, -0.10447f, -0.0674995f, 0.267649f, 0.0640518f, 0.0395787f, -0.00438308f, 0.0345775f, 0.20287f, -0.0147446f, -0.0273387f, 0.0802288f, -0.0275364f, 0.0528968f, 0.0661867f, 0.077879f, 0.0723926f, -0.00579636f, -0.0645432f, -0.17036f, 0.079433f, -0.0763407f, -0.0732023f, 0.0947946f, 0.259644f, 0.0118418f, -0.0506021f, -0.105368f, -0.0427832f, -0.0532092f, 0.299126f, -0.00762372f, -0.0506856f, -0.043864f, 0.0155813f, -0.0435499f, -0.0800298f, -0.0558697f, -0.0365412f, -0.0552095f, 0.0573295f, 0.17224f, 0.11292f, -0.120796f, -0.1007f, -0.0403668f, 0.0666851f, -0.0865902f, -0.0281438f, -6.35659e-05f, -0.0856241f, -0.191913f, -0.0384882f, -0.0340355f, 0.129865f, 0.112795f, 0.0402327f, -0.120213f, -0.0827011f, -0.115521f, 0.181659f, -0.203792f, -0.091048f, 0.216959f, 0.0688472f, -0.0933873f, 0.0723704f, 0.0584793f, -0.00640711f, 0.12513f, -0.142278f, -0.0115965f, 0.0375723f, 0.0245388f, 0.134259f, -0.180368f, -0.180241f, 0.0135894f, -0.0706794f, -0.0588881f, -0.0731026f, -0.0266604f, -0.147318f, 0.0245645f, 0.225088f, -0.0331317f, -0.106674f, 0.176455f, -0.0822147f, -0.146907f, 0.0022345f, -0.173967f, -0.0993476f, -0.00913819f, 0.119741f, -0.0412617f, 0.0386574f, 0.169314f, -0.0647549f, -0.0100135f, -0.0235396f, -0.0885883f, -0.0725027f, -0.125227f, 0.0983919f, -0.130642f, -0.163507f, -0.090034f, 0.105731f, -0.00899941f, -0.108931f, 0.04022f, 0.0988555f, -0.0106684f, 0.195225f, -0.157514f, -0.063468f, -0.0576689f, -0.145322f, 0.0789018f, -0.0459509f, -0.0816996f, 0.111872f, -0.0611937f, -0.0523813f, 0.0151404f, -0.0823454f, -0.0429321f, -0.0578846f, -0.0533047f, -0.221143f, 0.00294544f, 0.0888552f, 0.221291f, 0.00541169f, -0.139319f, 0.0624715f, 0.139698f, -0.0434729f, 0.0677658f, -0.0432146f, 0.0395225f, 0.0554155f, 0.04931f, -0.0863766f, 0.0275883f, -0.0367603f, 0.0683795f, -0.11758f, -0.0474191f, 0.0292593f, -0.0349254f, -0.0932203f, -0.0265269f, 0.211044f, 0.0134778f, -0.0202411f, -0.00484139f, 0.180541f, 0.0176549f, -0.0698572f, 0.0393485f, 0.0935043f, 0.0643098f, 0.0266873f, 0.0889986f, 0.225436f, -0.159759f, 0.000609573f, -0.121124f, 0.0824895f, -0.163147f, 0.137229f, -0.228072f, 0.00960114f, -0.137154f, -0.109526f, -0.0309804f, 0.00514871f, -0.0762829f, -0.0322946f, 0.0973949f, -0.0925917f, 0.275254f, -0.0537719f, 0.00296169f, 0.247318f, 0.108211f, 0.295362f, 0.0482725f, 0.0909748f, -0.0133581f, -0.0667344f, 0.0828285f, 0.118994f, -0.116678f, 0.0240205f, 0.0341533f, 0.0632648f, -0.0868022f, -0.0741085f, -0.0821944f, -0.184007f, 0.162296f, 0.168339f, 0.0845895f, 0.0333236f, 0.00873368f, 0.0617598f, -0.137484f, -0.203272f, -0.047547f, 0.0345341f, 0.0107055f, -0.153618f, -0.148122f, 0.0582028f, -0.191032f, 0.138971f, -0.0513182f, -0.0213416f, -0.14861f, -0.0731512f, 0.00693818f, 0.0844998f, 0.133074f, -0.0737997f, -0.122636f, -0.0172251f, 0.106782f, -0.0755873f, 0.0198105f, 0.151591f, -0.130033f, -0.00792267f, -0.00890279f, 0.0634328f, -0.0949981f, -0.0408898f, 0.0422863f, 0.00430273f, -0.05421f, -0.105743f, -0.0702181f, -0.0523193f, -0.0370353f, -0.00725635f, 0.00427642f, 0.16049f, -0.0870575f, -0.175445f, 0.129556f, 0.0470663f, 0.0210703f, 0.123281f, -0.0777958f, -0.0471493f, 0.0188339f, 0.076138f, -0.0618158f, -0.0139556f, -0.055678f, -0.141114f, 0.00861183f, 0.237978f, -0.0686333f, 0.0457025f, -0.191377f, 0.250086f, 0.15367f, 0.0489832f, 0.0420546f, -0.00796083f, 0.00719893f, 0.127305f, 0.00645783f, -0.0733418f, -0.0961493f, -0.00847849f, 0.129676f, -0.176734f, 0.0237686f, -0.103537f, -0.0196061f, -0.106607f, 0.00104228f, 0.0950169f, 0.0764086f, -0.112892f, 0.124535f, -0.112099f, 0.116063f, 0.00487055f, 0.0449938f, -0.154653f, -0.0662471f, -0.0717199f, 0.0514467f, -0.0820801f, 0.158147f, 0.0314108f, 0.053696f, 0.240176f, 0.0473741f, 0.202952f, -0.113146f, 0.257483f, -0.0238376f, -0.0421793f, -0.0134346f, -0.0535071f, 0.0918338f, 0.0636341f, -0.052761f, -0.0452787f, -0.0712236f, -0.0165258f, -0.0559556f, 0.0330874f, -0.0412132f, 0.0405957f, 0.0193085f, -0.0321212f, -0.0876303f, 0.238096f, -0.057723f, -0.136931f, -0.131049f, -0.0486567f, 0.0102083f, -0.131778f, 0.0491918f, 0.13192f, -0.134251f, 0.111609f, 0.0408256f, 0.0697455f, 0.127066f, 0.00332562f, 0.121475f, -0.000617089f, -0.00259536f, -0.105387f, -0.00776834f, -0.0585563f, 0.161053f, 0.172123f, -0.0660096f, -0.176054f, -0.0611176f, -0.0848058f, 0.16511f, 0.0180476f, -0.0307021f, -0.112489f, 0.228971f, -0.0295766f, 0.173523f, 0.0555974f, 0.000377159f, 0.143838f, 0.0459822f, -0.213289f, 0.0313722f, 0.0420184f, -0.048918f, 0.0738907f, -0.0283851f, 0.0125949f, 0.0441667f, -0.11674f, -0.0689621f, 0.0318203f, -0.0254198f, -0.0737136f, 0.0362405f, 0.077675f, 0.256773f, 0.0881895f, 0.0635127f, 0.179678f, -0.0513781f, 0.196138f, 0.0610456f, -0.0230771f, 0.0919322f, 0.0445982f, 0.0875867f, -0.131953f, 0.253272f, 0.16061f, -0.00413751f, -0.108155f, 0.0925173f, -0.0355377f, 0.0921496f, 0.163796f, 0.0762482f, 0.186148f, -0.00913871f, 0.108884f, 0.0447079f, -0.102746f, -0.0967843f, 0.0457398f, 0.0310864f, -0.106888f, -0.0406092f, -0.0140352f, 0.164259f, -0.024403f, -0.0152147f, 0.0234859f, 0.0492031f, 0.137852f, -0.0905758f, -0.113233f, -0.129425f, -0.108894f, 0.0878718f, -0.0919277f, 0.0493444f, 0.00430435f, 0.103605f, 0.186621f, 0.0218234f, -0.135572f, -0.125349f, 0.0617469f, -0.119635f, -0.0148863f, 0.0425291f, -0.0169811f, -0.117088f, -0.0848558f, 0.0770284f, -0.0790101f, -0.128244f, 0.00613f, 0.0194059f, -0.104635f, -0.039206f, 0.00214624f, 0.0798219f, -0.0990549f, -0.0992038f, -0.137564f, 0.00269838f, 0.0565927f, 0.0215438f, 0.394695f, 0.166268f, -0.196129f, 0.0227794f, -0.0593439f, -0.315159f, 0.0326193f, 0.0600098f, -0.0313877f, -0.172007f, 0.244445f, 0.0999317f, 0.0439052f, -0.10188f, 0.0492519f, -0.0915042f, 0.00494395f, 0.115154f, -0.226186f, 0.0837024f, -0.314001f, 0.140944f, -0.0842617f, 0.0125746f, -0.0593649f, -0.0225238f, -0.0848428f, 0.128536f, 0.171201f, -0.136192f, -0.0682914f, -0.0581798f, -0.0848265f, 0.0770946f, 0.035425f, -0.255219f, 0.302943f, -0.162569f, 0.286238f, 0.316644f, -0.0763101f, 0.211944f, -0.0306481f, 0.0703371f, 0.190914f, -0.128242f, 0.0671731f, 0.0552663f, 0.170736f, -0.148451f, 0.0189739f, 0.0190181f, -0.125632f, 0.124817f, -0.180127f, -0.0542183f, -0.0200322f, -0.00914785f, 0.0700369f, -0.130023f, -0.0386517f, 0.0750107f, -0.0815161f, 0.225931f, 0.213159f, -0.21961f, -0.0684356f, 0.0300183f, -0.0366133f, 0.00838513f, 0.0699314f, 0.137409f, -0.106006f, 0.022586f, 0.106084f, -0.153046f, 0.0147322f, 0.124606f, 0.0741416f, 0.140734f, -0.100772f, -0.101588f, 0.00984243f, -0.12772f, -0.0690845f, -0.102527f, -0.0625872f, -0.0792457f, -0.0432165f, -0.203678f, 0.0872422f, -0.0214497f, -0.0781414f, 0.222527f, 0.0662381f, 0.0281307f, -0.00408573f, 0.0430238f, -0.240447f, 0.0636697f, -0.21414f, -0.0797697f, 0.0460133f, 0.0637545f, -0.115282f, 0.04699f, -0.160631f, -0.0775997f, -0.155537f, 0.28144f, 0.0206518f, -0.0690539f, -0.080882f, -0.160306f, -0.093615f, -0.078006f, 0.053857f, -0.0511201f, -0.0270704f, -0.0138049f, 0.124651f, 0.193351f, -0.0455907f, 0.000990665f, 0.0174551f, -0.0511193f, 0.264622f, -0.0926891f, -0.0767238f, 0.0161795f, 0.133659f, 0.0863633f, -0.0504348f, 0.0852821f, 0.0218259f, 0.02413f, 0.0249819f, -0.00231502f, 0.112426f, -0.162426f, 0.0852278f, -0.0254121f, -0.0741648f, 0.111573f, 0.0327217f, -0.0869499f, 0.075854f, 0.0615125f, -0.0743043f, -0.0526851f, -0.106766f, 0.003547f, -0.0921304f, -0.0449197f, 0.0524853f, 0.0978106f, -0.144502f, -0.0783835f, 0.0367662f, 0.0658663f, -0.118974f, 0.0712218f, 0.0558463f, -0.0170394f, 0.110356f, 0.0152421f, 0.0790182f, 0.12115f, -0.0888974f, 0.0163952f, -0.0483675f, 0.033299f, -0.0260461f, -0.0839712f, -0.00327693f, 0.0896872f, -0.0270567f, 0.0573983f, 0.0226341f, 0.0234374f, -0.0914455f, 0.0922504f, 0.156948f, 0.0879622f, 0.00812972f, 0.0975672f, 0.0483248f, -0.139083f, -0.118482f, -0.0433622f, -0.0191411f, 0.0465041f, -0.0734916f, -0.0409718f, 0.000805773f, -0.151213f, 0.0977422f, -0.100199f, -0.0953845f, -0.0930471f, -0.146783f, -0.121872f, 0.0121259f, -0.0980652f, -0.139263f, -0.114188f, 0.0933754f, -0.0294548f, 0.143987f, 0.0359324f, -0.128001f, -0.0834069f, -0.0520901f, 0.149016f, -0.0494943f, 0.0150443f, 0.0866368f, 0.0414172f, 0.188317f, 0.130759f, -0.0173566f, 0.0361569f, 0.0713184f, 0.0929658f, -0.0654868f, 0.0958475f, -0.102355f, -0.0825544f, 0.0437138f, 0.108595f, -0.0119108f, 0.0455726f, -0.0446181f, 0.050546f, -0.145192f, 0.0098371f, 0.122064f, -0.00286963f, 0.0664502f, -0.0841751f, -0.0625444f, 0.0227132f, 0.122345f, -0.0222315f, -0.0789423f, 0.0087923f, 0.0629476f, 0.0602142f, 0.0141415f, 0.0182199f, -0.0862134f, 0.0736014f, -0.166919f, 0.209207f, -0.114972f, -0.00261804f, -0.182842f, -0.0554135f, 0.321992f, -0.120882f, 0.00687805f, -0.0192469f, 0.0147474f, 0.0153614f, 0.10154f, -0.181161f, 0.0576586f, 0.0647385f, 0.0641108f, -0.00274036f, 0.0289347f, 0.0243821f, 0.0479565f, 0.143824f, 0.070093f, 0.0307724f, -0.189539f, 0.0243795f, -0.249204f, 0.043921f, -0.0576362f, 0.0500678f, -0.125604f, -0.14011f, -0.0171522f, -0.262103f, 0.1838f, -0.0530323f, 0.0119116f, 0.170692f, -0.0107569f, 0.0686752f, -0.0112303f, 0.0400116f, -0.116625f, -0.0151635f, -0.00877859f, -0.0334906f, 0.0449757f, 0.125089f, -0.104f, 0.117025f, -0.102228f, -0.133256f, 0.050243f, 0.0632351f, 0.0710118f, 0.0167585f, -0.1684f, 0.0749224f, -0.00965185f, 0.0416148f, 0.0450496f, 0.0321869f, -0.0560969f, -0.0690925f, 0.0555818f, -0.035943f, -0.0501129f, 0.0149622f, -0.258089f, -0.0427339f, 0.0725261f, -0.0503192f, -0.181489f, -0.011959f, -0.0510911f, -0.155944f, -0.0193119f, 0.107641f, -0.0263856f, -0.190904f, 0.00829134f, 0.0308516f, -0.0378416f, 0.102059f, -0.129968f, 0.049167f, -0.0331354f, 0.102676f, -0.0060192f, -0.0576701f, -0.00199965f, 0.00950177f, -0.0883555f, 0.19622f, -0.0687717f, -0.0929665f, 0.278066f, -0.102186f, -0.170863f, -0.180497f, 0.0818863f, 0.00146588f, -0.17461f, -0.214168f, -0.0221437f, 0.0894606f, 0.0552584f, -0.133163f, 0.0950353f, 0.0694368f, 0.0190706f, -0.222558f, -0.0611058f, -0.160012f, 0.0537017f, -0.07615f, -0.00451478f, 0.0282775f, 0.00406169f, -0.134949f, -0.0683219f, 0.0401748f, -0.00665406f, 0.117007f, -0.199006f, 0.0262309f, -0.145288f, 0.0626374f, 0.0777244f, -0.158267f, -0.0231258f, -0.176024f, 0.122791f, 0.166744f, -0.0114087f, -0.0995186f, 0.265157f, -0.05605f, -0.0327178f, 0.180107f, 0.26529f, -0.017601f, 0.00277735f, -0.14389f, -0.0284315f, -0.042422f, -0.00428102f, -0.00530671f, -0.176093f, 0.0585287f, -0.0156535f, -0.0825002f, 0.0253226f, 0.0846551f, 0.0902023f, -0.105149f, -0.0612786f, 0.127084f, -0.025826f, -0.00857431f, 0.0105141f, 0.0465886f, 0.0763779f, -0.206317f, -0.124282f, 0.0534203f, -0.0030151f, -0.168384f, -0.155506f, -0.0744715f, 0.0150915f, -0.101591f, 0.0106136f, -0.106411f, 0.00986745f, -0.0295463f, 0.0978261f, 0.139042f, -0.0348265f, -0.0795592f, 0.255788f, -0.130714f, -0.15084f, 0.118452f, 0.0878522f, 0.0510424f, -0.0279248f, 0.153347f, -0.177217f, -0.189159f, 0.0861985f, -0.161391f, -0.00652091f, -0.0462733f, -0.222491f, 0.0551326f, -0.148111f, -0.257258f, 0.034414f, 0.0129722f, -0.0316372f, 0.0760829f, -0.0427297f, 0.117835f, -0.0672816f, 0.0436792f, 0.0563405f, -0.106125f, 0.040802f, -0.077223f, 0.149886f, -0.0566908f, 0.0203737f, -0.0802481f, 0.016573f, -0.203098f, -0.0500591f, 0.0164627f, 0.0852995f, -0.122266f, 0.0668974f, 0.0311108f, 0.0870377f, -0.119665f, 0.0821271f, 0.141594f, -0.0262193f, 0.169734f, -0.081925f, -0.0444527f, 0.247832f, -0.096174f, -0.16023f, 0.00851902f, -0.0472644f, -0.0546811f, 0.106287f, -0.0863624f, 0.0373661f, 0.0548183f, -0.0568232f, -0.189747f, -0.145507f, 0.246307f, -0.162305f, -0.135195f, -0.0183091f, -0.0871628f, -0.119673f, -0.0415046f, 0.00407247f, -0.0259007f, -0.114916f, -0.086557f, 0.069041f, -0.0980072f, 0.172739f, -0.0233374f, 0.0221185f, 0.0519547f, -0.0648773f, 0.0304844f, 0.0813029f, 0.0201469f, 0.0246805f, -0.0830146f, -0.00823238f, -0.111064f, -0.0146472f, 0.130284f, 0.0540573f, -0.0955459f, 0.120416f, 0.047036f, 0.0233006f, -0.198026f, 0.169604f, -0.0457494f, 0.151172f, 0.0545185f, 0.163275f, 0.031922f, -0.0689963f, 0.11047f, 0.155218f, 0.0440539f, -0.0884143f, 0.0638515f, -0.039692f, 0.0717969f, -0.0477629f, -0.0932279f, -0.16085f, -0.0697504f, 0.0405033f, -0.00953637f, 0.0492386f, 0.132444f, 0.0740345f, 0.139605f, 0.0123763f, -0.120754f, -0.0181123f, 0.0925246f, 0.0706857f, -0.12274f, 0.204829f, -0.0501784f, 0.0088991f, 0.112758f, -0.219394f, 0.143332f, -0.0391323f, -0.0512443f, 0.0814881f, -0.0619474f, 0.147351f, 0.130102f, -0.191773f, -0.0130812f, 0.0975423f, 0.0715966f, 0.217661f, -0.148628f, 0.0140271f, -0.212279f, -0.00622391f, 0.100961f, -0.158181f, 0.256327f, 0.186102f, -0.112345f, -0.0448754f, -0.0368803f, 0.0180905f, 0.0387602f, -0.197699f, 0.0109335f, -0.109648f, -0.0203573f, 0.142925f, -0.0757276f, 0.127084f, 0.17271f, -0.0903523f, 0.0302764f, -0.0260873f, -0.151712f, 0.00105142f, -0.0836612f, -0.0326242f, -0.12962f, -0.00251063f, 0.0257853f, 0.0814188f, 0.0307118f, -0.133859f, -0.0793153f, 0.0126005f, 0.0571713f, -0.00511386f, -0.0696581f, 0.132184f, 0.0750416f, -0.0708223f, 0.0764503f, -0.0242077f, 0.115115f, -0.1554f, 0.0121131f, -0.182686f, -0.121632f, 0.0954597f, -0.113933f, 0.0272232f, -0.0294289f, 0.0437996f, -0.0170239f, -0.16382f, 0.161005f, -0.0902595f, -0.158011f, 0.0229862f, 0.0197363f, -0.113072f, 0.087519f, 0.0351566f, 0.0171319f, 0.0573087f, -0.110185f, 0.0244507f, 0.129461f, -0.105469f, 0.030766f, 0.0420583f, -0.0281998f, 0.0777826f, -0.111429f, -0.158042f, -0.0861498f, 0.113256f, 0.171144f, 0.11998f, 0.0270374f, 0.215133f, 0.0764116f, 0.155034f, 0.117286f, 0.0177015f, -0.0620081f, -0.164721f, 0.0631188f, -0.134097f, 0.038519f, -0.052529f, 0.0430635f, 0.083108f, 0.0510856f, -0.0442077f, 0.0598072f, -0.0788859f, 0.0565026f, -0.221414f, 0.2902f, -0.0268966f, 0.0880638f, 0.0898519f, 0.151213f, 0.00923704f, -0.13192f, -0.0992222f, 0.0216125f, -0.0376752f, 0.0309799f, -0.117364f, 0.00987084f, -0.145126f, -0.0430645f, 0.00635202f, 0.00586536f, -0.0854539f, -0.0667422f, 0.140519f, -0.0445232f, -0.116057f, -0.0111349f, -0.0801111f, -0.0743062f, 0.0506418f, -0.057168f, 0.0230158f, -0.0858061f, -0.0297237f, -0.0283754f, 0.0480741f, -0.0964165f, -0.0434561f, 0.0912956f, 0.132289f, 0.0785822f, -0.12606f, 0.130541f, -0.126839f, -0.00423204f, 0.101414f, 0.0338565f, 0.0189081f, -0.165085f, -0.282217f, 0.0177081f, 0.0207208f, 0.0839039f, -0.0203782f, -0.148689f, -0.0273895f, -0.0392533f, 0.0772525f, -0.0866489f, -0.0089431f, -0.0640747f, 0.196248f, 0.108274f, 0.00104316f, -0.00944486f, -0.00800296f, 0.0780135f, -0.21058f, -0.0826228f, -0.155226f, 0.0804533f, -0.016747f, -0.0321976f, 0.155414f, -0.166807f, 0.0406711f, -0.0271627f, 0.0910698f, 0.141109f, 0.0653185f, -0.00769107f, -0.0869562f, -0.160547f, -0.111629f, -0.101833f, -0.0145617f, -0.0467753f, -0.0413558f, -0.0693187f, -0.0389433f, 0.0152073f, -0.0792324f, 0.194819f, -0.115202f, -0.158873f, 0.156594f, -0.198744f, -0.13912f, -0.213849f, -0.0459502f, -0.0167991f, -0.0633346f, 0.194832f, -0.234343f, 0.0764383f, -0.0754444f, 0.062929f, -0.102039f, 0.0248133f, 0.105636f, -0.0755765f, 0.116936f, -0.052909f, 0.123137f, -0.00394323f, 0.151273f, 0.323897f, -0.120562f, 0.00508643f, -0.0968677f, -0.132939f, -0.0427992f, -0.0451463f, 0.0823591f, 0.163429f, 0.000548873f, 0.081191f, 0.0342928f, -0.0705447f, 0.160879f, 0.0275461f, 0.0100678f, 0.146042f, 0.0431842f, -0.0667222f, -0.0716834f, -0.13206f, 0.0620345f, 0.0306886f, -0.0241497f, -0.146675f, -0.0151909f, 0.0496787f, 0.0746075f, 0.242743f, 0.0459332f, -0.0263622f, -0.151499f, 0.113488f, 0.0802592f, 0.0196625f, 0.133373f, 0.0486332f, 0.0366105f, -0.0354489f, 0.110902f, -0.112834f, -0.0637673f, 0.0448632f, -0.0650205f, -0.0823256f, -0.0117208f, 0.072061f, -0.101453f, -0.0616206f, -0.135394f, -0.286717f, -0.184697f, -0.0946109f, -0.0460002f, -0.0912638f, -0.0795726f, -0.0629242f, 0.106349f, -0.0754561f, 0.0113857f, 0.00969908f, -0.10554f, 0.0951766f, 0.0568517f, -0.084786f, -0.172498f, 0.128563f, 0.0885167f, 0.0748287f, 0.00244834f, 0.249907f, -0.176818f, -0.148533f, -0.0151307f, 0.163506f, 0.0256397f, -0.0226091f, 0.0160779f, 0.0922494f, 0.0150982f, 0.00935463f, -0.0490018f, -0.110972f, -0.109621f, 0.0446865f, 0.00455963f, 0.0455721f, -0.0658227f, 0.0246248f, -0.121748f, 0.180569f, -0.107943f, -0.0347231f, -0.0461315f, 0.0300174f, -6.94237e-05f, 0.0658382f, -0.0478728f, 0.0681424f, -0.142169f, 0.0554868f, 0.157914f, -0.00303942f, 0.00475745f, 0.229269f, -0.0336632f, 0.0766977f, 0.0070381f, -0.089201f, 0.178146f, 0.0731719f, -0.00575704f, -0.211398f, -0.00349393f, 0.0912366f, 0.0301567f, -0.0702337f, -0.168266f, -0.062872f, -0.0208838f, 0.0725194f, 0.0680546f, -0.173856f, 0.0329268f, -0.233296f, 0.148694f, -0.105049f, -0.0184101f, 0.0635695f, 0.0950312f, 0.118354f, 0.00253903f, -0.300488f, -0.130528f, 0.0239847f, -0.101954f, 0.0864173f, 0.10718f, 0.0938872f, -0.042662f, -0.0462704f, -0.148217f, 0.0496349f, -0.0909475f, 0.116284f, -0.065863f, 0.0470262f, -0.259663f, -0.0930683f, -0.0160496f, 0.0392177f, 0.106876f, -0.169942f, 0.0507426f, 0.0311934f, 0.119842f, -0.113776f, -0.0348599f, 0.0302447f, -0.160323f, 0.150994f, -0.100478f, 0.0246026f, -0.0438869f, 0.0549344f, -0.0960653f, 0.0908985f, -0.0452599f, 0.106014f, -0.143869f, 0.311199f, -0.180391f, -0.0984963f, 0.0708765f, 0.170902f, 0.184628f, -0.002152f, 0.0247964f, -0.0691348f, 0.0566791f, 0.151707f, -0.0841776f, -0.0402665f, -0.0146634f, -0.0556246f, -0.0218851f, 0.11729f, 0.021008f, -0.214237f, 0.106481f, -0.0348885f, 0.110243f, 0.0137251f, -0.140157f, 0.0386885f, 0.085338f, -0.0811613f, 0.0452161f, 0.0289625f, -0.193619f, 0.224729f, 0.0569066f, 0.0970948f, -0.146413f, 0.0761108f, 0.131185f, -0.1852f, 0.0501699f, 0.061641f, 0.0241162f, -0.0862951f, 0.089404f, -0.0679895f, -0.151426f, -0.186421f, 0.0497637f, -0.174225f, 0.0224806f, 0.217731f, -0.205341f, 0.217115f, -0.183967f, -0.145192f, 0.0691643f, 0.025032f, 0.251906f, -0.232076f, 0.0935528f, 0.269389f, 0.0680691f, 0.0136063f, -0.240639f, 0.196541f, 0.109509f, -0.138156f, 0.0152035f, 0.0380588f, -0.0596089f, 0.144051f, 0.0284317f, 0.040048f, -0.0362145f, 0.126508f, -0.0363005f, -0.237648f, -0.0556566f, 0.110246f, 0.035058f, -0.0440063f, 0.0114457f, 0.125044f, -0.0556659f, 0.0274048f, -0.0125511f, 0.0387348f, 0.0318969f, -0.000590628f, -0.0763671f, -0.163269f, -0.096713f, -0.122959f, 0.0129132f, -0.0549986f, -0.0619762f, 0.113631f, -0.0376821f, 0.0538868f, 0.0495459f, 0.112168f, -0.0194166f, -0.0618651f, -0.102918f, -0.159941f, 0.0533803f, 0.00665762f, -0.0819846f, 0.196696f, 0.09988f, 0.0462549f, 0.190964f, -0.0715184f, -0.18854f, -0.127288f, -0.183007f, 0.00742325f, 0.0973502f, -0.0283811f, 0.177135f, 0.13555f, 0.0907451f, -0.0332803f, 0.132087f, -0.135843f, -0.0553625f, -0.0172501f, -0.214889f, -0.084371f, -0.0127314f, 0.0579939f, -0.0412345f, 0.114426f, -0.0581572f, -0.100194f, 0.203671f, -0.0752914f, 0.0655161f, 0.130731f, 0.0168253f, 0.119929f, 0.0365699f, -0.0648648f, 0.191141f, 0.0126798f, -0.157825f, 0.0712019f, 0.0577956f, 0.238458f, -0.10755f, -0.000521217f, 0.0284064f, 0.204455f, 0.0024358f, 0.114678f, 0.186689f, 0.00633865f, -0.0875511f, 0.250528f, -0.0303527f, 0.0539522f, -0.14851f, 0.0113705f, -0.0591548f, -0.0438635f, -0.0254419f, -0.118882f, -0.0160452f, -0.0537087f, -0.153015f, 0.00845835f, -0.105571f, -0.0507549f, -0.0236953f, 0.150941f, -0.147043f, 0.0565563f, 0.126191f, -0.0381186f, 0.131096f, 0.124827f, 0.126032f, -0.0577341f, -0.0472345f, -0.0819169f, 0.182027f, -0.0865523f, 0.0615134f, 0.0141686f, -0.0462743f, 0.0634663f, 0.0109907f, 0.101881f, -0.242382f, -0.0500767f, -0.0193599f, -0.191288f, -0.0672313f, -0.0759089f, 0.136712f, 0.0654927f, -0.104477f, 0.114241f, 0.1293f, -0.0502399f, 0.051072f, -0.0268601f, 0.0665994f, 0.0594625f, 0.0774548f, -0.00490459f, -0.00277723f, -0.13272f, 0.088193f, 0.0244208f, 0.0355779f, -0.0288935f, 0.0936212f, 0.0628152f, -0.0628491f, -0.158746f, 0.000581537f, 0.19309f, 0.0584896f, -0.113098f, -0.124447f, 0.178201f, 0.204086f, -0.0887745f, 0.016016f, -0.114988f, -0.00112397f, -0.0834111f, -0.0510393f, 0.110768f, -0.0192007f, 0.187024f, -0.0481687f, -0.131254f, -0.129281f, -0.0484485f, -0.168301f, -0.118907f, 0.0428639f, -0.0733375f, -0.0527553f, -0.0946463f, -0.00143158f, 0.0190377f, -0.0517143f, -0.0227976f, 0.0606598f, -0.041211f, -0.00227201f, 0.0857734f, -0.0477375f, -0.0986353f, -0.109688f, 0.00522346f, -0.127326f, 0.0111549f, 0.0697047f, -0.0428525f, 0.0297446f, 0.101907f, -0.110805f, 0.14795f, -0.0770319f, 0.0878817f, -0.114659f, 0.0438674f, 0.0021021f, 0.0543961f, -0.147717f, -0.00161309f, 0.00990427f, -0.0735628f, -0.0957161f, -0.163333f, -0.0793859f, 0.234857f, 0.0355804f, 0.0713948f, -0.10576f, -0.0351897f, 0.070218f, -0.108599f, -0.103666f, -0.0483209f, -0.117494f, -0.109425f, 0.0675468f, 0.035148f, 0.118153f, -0.0097098f, -0.215368f, 0.00331471f, -0.220695f, 0.212172f, -0.0676927f, 0.0725709f, 0.155563f, -0.0482264f, 0.0217013f, -0.0495232f, 0.0472335f, 0.154047f, 0.0956519f, 0.0963711f, -0.101831f, 0.168197f, 0.0467532f, -0.270448f, -0.0157304f, -0.157333f, 0.0534336f, 0.0428595f, 0.129605f, -0.149835f, -0.041632f, 0.0740244f, -0.00320433f, 0.00211218f, -0.0562927f, -0.271711f, 0.112769f, 0.260387f, -0.00604361f, 0.0511723f, -0.111293f, -0.127253f, -0.0669949f, -0.031252f, 0.18489f, -0.261511f, -0.055941f, -0.0940905f, -0.1063f, 0.0474055f, -0.0494762f, -0.0204124f, 0.230836f, -0.0705148f, -0.169387f, -0.166842f, -0.151025f, -0.0187256f, -0.00683393f, -0.011306f, -0.0725093f, -0.0822938f, 0.0184397f, -0.000174456f, -0.0500506f, 0.0553319f, -0.0567556f, 0.00317079f, 0.0432071f, -0.0864896f, 0.0523582f, -0.0734266f, 0.027765f, -0.11109f, 0.118292f, 0.106869f, -0.0195706f, 0.11982f, -0.0176913f, 0.162393f, 0.139076f, 0.111983f, -0.0612391f, -0.15057f, 0.16263f, -0.0461325f, 0.228934f, 0.0419034f, -0.112948f, -0.118889f, -0.0147768f, 0.0393274f, 0.107564f, 0.116933f, 0.109251f, 0.10188f, -0.0200873f, 0.0174824f, 0.109924f, -0.0581396f, 0.010349f, -0.065001f, 0.0982801f, 0.103085f, -0.105344f, -0.0686699f, 0.151964f, 0.0107028f, -0.189649f, 0.0195564f, 0.0574651f, 0.159587f, 0.0150579f, -0.178932f, -0.00633143f, 0.0676892f, 0.204973f, -0.0933808f, 0.202761f, -0.0519382f, 0.205214f, -0.104505f, 0.0625406f, -0.0366522f, -0.0725007f, 0.0292904f, 0.130487f, -0.0486602f, 0.0213496f, -0.0797567f, 0.187484f, -0.0171252f, 0.162753f, -0.104454f, -0.125025f, -0.0647483f, -0.0938776f, 0.148969f, -0.00415333f, -0.137639f, 0.182425f, -0.139986f, 0.0839622f, -0.0304992f, -0.11523f, -0.0404037f, -0.13798f, 0.0117096f, 0.142687f, -0.0242343f, -0.00513221f, 0.00797136f, 0.17047f, -0.0852127f, -0.124541f, -0.272216f, 0.0285473f, -0.0271692f, -0.00844333f, -0.109389f, -0.144999f, -0.0489191f, -0.0159476f, 0.0510254f, -0.250691f, 0.0607115f, 0.12409f, -0.0786918f, -0.0690224f, -0.0865699f, 0.00636554f, -0.138216f, 0.00841061f, -0.00952689f, 0.226519f, 0.113523f, 0.110893f, 0.151275f, -0.160721f, -0.118896f, -0.0176459f, 0.183349f, 0.00184774f, -0.00522873f, -0.0488823f, -0.034417f, -0.0563635f, -0.186444f, 0.000997742f, 0.166789f, 0.0956764f, 0.0372069f, 0.0221726f, 0.0491343f, 0.0635085f, -0.0835043f, 0.0629364f, -0.0841768f, 0.0194426f, -0.129944f, 0.0431089f, 0.0984375f, 0.141397f, 0.0668447f, 0.213133f, 0.0447464f, 0.0959019f, -0.0804278f, -0.116702f, 0.109704f, 0.0295776f, -0.0962251f, 0.0652444f, 0.141926f, -0.0804916f, -0.0457614f, -0.0381813f, -0.26278f, 0.139226f, 0.050427f, -0.108379f, 0.0273329f, 0.228798f, -0.0961899f, 0.210607f, -0.10967f, -0.013678f, 0.0880039f, -0.11354f, -0.0473563f, -0.0730221f, 0.150373f, 0.00329691f, -0.0615187f, 0.00740594f, -0.123255f, 0.0698358f, 0.0562953f, -0.0998934f, -0.166915f, 0.0690513f, 0.221315f, 0.0609808f, 0.152755f, -0.0139946f, 0.0209517f, -0.118315f, -0.0193158f, 0.090352f, 0.0187018f, 0.0707807f, -0.0144933f, -0.111496f, -0.0931473f, -0.0650619f, 0.0770124f, -0.0674333f, -0.0113462f, -0.165782f, 0.0523007f, 0.00239857f, -0.0323416f, -0.158343f, 0.10306f, -0.132578f, 0.0816354f, 0.110869f, 0.0238787f, -0.169663f, 0.185869f, -0.0111674f, 0.235667f, 0.0741635f, 0.126065f, -0.134244f, 0.0102583f, 0.00201594f, -0.0499051f, -0.0325197f, 0.0178987f, 0.0803654f, 0.0298853f, 0.162462f, -0.0401384f, -0.151034f, -0.101073f, -0.0555231f, 0.0799371f, 0.177133f, 0.075183f, -0.0149387f, -0.0495458f, -0.0323713f, 0.0500431f, -0.0745148f, -0.127657f, -0.0422847f, 0.0780322f, -0.113189f, -0.00449938f, 0.114856f, -0.0290303f, -0.0138302f, -0.0909389f, 0.173536f, 0.00572351f, -0.0499102f, -0.109715f, 0.0635935f, -0.0260277f, 0.141996f, 0.0867821f, 0.188565f, 0.03812f, 0.123537f, 0.0500248f, 0.211888f, 0.00690705f, -0.0953537f, 0.0255014f, 0.0376322f, -0.0277446f, 0.261652f, -0.280189f, 0.103979f, 0.0895691f, -0.0192518f, -0.0680543f, -0.00921898f, 0.103064f, -0.123085f, -0.0561143f, -0.199167f, -0.154759f, 0.0517133f, 0.00869231f, -0.105658f, -0.0311918f, 0.0760706f, 0.0425323f, 0.104893f, -0.0951726f, 0.0936675f, -0.0569179f, -0.0564668f, 0.000879532f, 0.118117f, -0.117628f, -0.018929f, 0.161284f, -0.0568638f, 0.171476f, 0.0108094f, 0.0863414f, 0.0501678f, -0.23759f, -0.0198363f, 0.0754656f, 0.0275828f, 0.144007f, -0.123341f, 0.0533575f, 0.153548f, 0.0865498f, -0.0522122f, -0.00766077f, 0.0601867f, 0.0119481f, 0.0899988f, -0.0763146f, 0.181264f, -0.0137904f, -0.0898983f, -0.0311538f, -0.00188193f, 0.155596f, 0.126961f, -0.00493197f, -0.0576148f, 0.0920802f, -0.228836f, -0.0881114f, -0.02636f, 0.0716502f, -0.0100369f, -0.0898753f, -0.175658f, 0.0771611f, 0.104777f, 0.0462047f, 0.00125729f, 0.1348f, -0.232133f, -0.144142f, 0.00330592f, 0.0798677f, -0.109455f, 0.102485f, 0.0393327f, -0.0375379f, -0.0232836f, -0.0558983f, -0.0694071f, 0.174096f, 0.0168263f, -0.0928936f, -0.094054f, 0.130212f, 0.0648869f, -0.01661f, -0.112586f, 0.0217247f, 0.0592857f, 0.029771f, -0.0448972f, -0.0385174f, -0.0849593f, 0.11402f, -0.0334237f, -0.0412606f, -0.104948f, -0.137532f, -0.0206135f, -0.0537555f, -0.0240159f, -0.0276689f, -0.0326276f, 0.050053f, 0.0420312f, 0.0692401f, -0.218728f, -0.054252f, -0.00668843f, -0.136332f, -0.00041316f, -0.0894131f, 0.0329547f, -0.0561105f, -0.209766f, 0.0415294f, -0.000332601f, 0.01042f, 0.0821557f, -0.00462171f, 0.108794f, 0.0660301f, 0.0880098f, -0.0854155f, 0.0259112f, -0.166151f, -0.122953f, 0.149891f, 0.0421671f, -0.0266839f, -0.0643475f, -0.0586137f, -0.00705882f, 0.0212008f, 0.135465f, 0.0690397f, -0.117075f, 0.0488647f, 0.103022f, 0.0619524f, 0.0662632f, -0.0233116f, 0.0294928f, -0.0248499f, -0.0308076f, -0.158802f, -0.0864302f, 0.0876729f, -0.0332122f, 0.121978f, -0.0539122f, 0.0798405f, 0.0209054f, -0.178219f, 0.0895156f, 0.164436f, 0.300571f, 0.188026f, 0.0174958f, -0.0735314f, -0.0195968f, 0.130093f, 0.118621f, -0.0669947f, -0.0649189f, 0.00826276f, 0.195945f, -0.160298f, -0.143575f, -0.0253587f, 0.0817049f, -0.0397727f, -0.118342f, 0.135581f, 0.0546587f, -0.0290459f, -0.0612099f, 0.00350355f, 0.0172877f, -0.107266f, -0.056725f, -0.0169879f, -0.117403f, -0.0462064f, 0.116077f, -0.18862f, 0.0801469f, -0.0337317f, 0.0929029f, -0.00422427f, -0.0699326f, -0.0444519f, -0.0529219f, -0.0631724f, 0.107913f, 0.0630299f, 0.0473255f, -0.0144308f, -0.180277f, 0.0363705f, 0.0224858f, 0.0276297f, -0.214238f, -0.070214f, 0.0919427f, 0.0404521f, -0.0566343f, -0.119901f, -0.0113218f, -0.126526f, -0.0218997f, 0.195904f, 0.115315f, -0.122015f, -0.01612f, -0.130086f, -0.0410069f, 0.176616f, 0.218119f, -0.209404f, -0.169228f, -0.15198f, 0.209099f, 0.054258f, 0.0699121f, -0.0222389f, -0.156249f, -0.0730629f, 0.00134573f, -0.0207838f, -0.0577034f, 0.104505f, -0.028419f, 0.120686f, 0.128031f, -0.0943144f, -0.0955165f, -0.0756012f, -0.00120479f, 0.0348055f, -0.0402951f, 0.145717f, -0.102538f, 0.00982896f, -0.02957f, -0.0356541f, -0.0668835f, 0.00271528f, -0.130762f, 0.152248f, 0.0312084f, 0.014355f, -0.0508995f, 0.00825314f, 0.0161469f, -0.0527005f, -0.148967f, 0.0818922f, 0.110071f, -0.0708355f, 0.0153954f, 0.0696097f, 0.0459538f, -0.0879026f, -0.0728743f, -0.0139675f, 0.0322967f, -0.00832129f, 0.12557f, 0.0438554f, 0.108449f, 0.0288575f, -0.160275f, -0.145985f, 0.0996822f, -0.093049f, -0.0681576f, -0.0871053f, 0.150423f, -0.0033896f, 0.0699797f, -0.0467889f, -0.117938f, -0.0404155f, 0.0656267f, 0.0414049f, -0.111295f, 0.0979879f, 0.0701463f, -0.12154f, 0.073401f, -0.0377566f, 0.0256194f, -0.108927f, -0.107615f, -0.0981553f, -0.0653359f, -0.0737688f, 0.0834947f, 0.110507f, 0.0972262f, 0.0715791f, -0.0197333f, -0.0638566f, -0.0155081f, 0.0114371f, 0.136029f, 0.020406f, -0.0218405f, 0.038201f, -0.0130838f, 0.0511443f, -0.0749618f, 0.000640608f, -0.0116259f, -0.0106372f, -0.0963519f, 0.000411695f, 0.0611849f, 0.0515413f, -0.0680335f, -0.0202271f, 0.00449087f, 0.0334133f, -0.0888337f, -0.0688301f, -0.177558f, -0.0735549f, -0.0135277f, 0.00749876f, -0.0240593f, 0.035203f, -0.00826378f, -0.0699056f, -0.187968f, -0.017229f, 0.131348f, -0.0220495f, -0.0460583f, -0.127677f, -0.0699023f, -0.0230703f, 0.192776f, -0.00154783f, -0.0710413f, -0.040528f, -0.0842944f, 0.00422372f, -0.0284372f, -0.110729f, -0.27403f, -0.108372f, -0.0518927f, 0.0164432f, -0.0843766f, 0.109156f, 0.141779f, 0.0853909f, -0.113346f, -0.0124835f, -0.110269f, 0.0475282f, 0.101633f, 0.118173f, 0.307161f, -0.0438726f, 0.00232938f, -0.0973603f, 0.0211683f, 0.110071f, -0.197891f, 0.0658896f, -0.0512327f, -0.321165f, 0.0220934f, -0.176503f, -0.0512759f, 0.0362442f, -0.151214f, -0.0941576f, 0.0429493f, 0.0787896f, 0.0735207f, 0.088612f, -0.074488f, 0.227136f, -0.0109929f, -0.0941532f, 0.0512609f, -0.130199f, 0.00965525f, -0.058665f, 0.0998697f, -0.0519152f, 0.0760722f, 0.0617165f, -0.100341f, 0.0016524f, 0.0838965f, 0.182487f, 0.0868362f, -0.14632f, -0.0537517f, 0.179464f, -0.145992f, 0.0219328f, -0.0242016f, 0.118974f, -0.138168f, -0.00281974f, 0.139666f, 0.077841f, -0.199907f, -0.0332192f, -0.0237077f, 0.116585f, -0.0831424f, -0.23509f, 0.0784393f, 0.183196f, 0.00700081f, -0.243537f, -0.00544765f, -0.0299298f, -0.0315385f, 0.113716f, -0.158048f, 0.161442f, 0.0377556f, -0.0811664f, -0.246526f, 0.16152f, 0.033585f, -0.0828539f, 0.0297402f, -0.113035f, -0.196864f, -0.291519f, 0.2178f, -0.147111f, -0.0123053f, -0.110623f, 0.0410712f, 0.0699715f, 0.118174f, 0.243562f, 0.0317654f, 0.0422838f, 0.027528f, 0.170503f, -0.180853f, -0.0133921f, 0.00883131f, -0.134516f, 0.0205429f, -0.0774236f, 0.0593041f, -0.0252816f, 0.0530104f, 0.162013f, 0.138387f, 0.299466f, -0.0904956f, -0.0998461f, 0.059843f, 0.0472807f, 0.0371842f, -0.0833465f, 0.0589734f, 0.104603f, -0.0170534f, -0.093412f, -0.107179f, 0.0876215f, 0.0695776f, 0.0717018f, 0.0135543f, -0.166039f, 0.0351273f, 0.0486979f, 0.0992984f, -0.0466353f, -0.0148414f, -0.00445473f, 0.0458632f, 0.0161153f, -0.0738584f, 0.00841269f, -0.164325f, -0.0288043f, 0.00370617f, -0.0937082f, -0.0466144f, -0.0742565f, -0.0533294f, 0.0586517f, 0.00222111f, -0.102403f, -0.0537608f, 0.00397484f, 0.186507f, 0.201903f, 0.0744822f, -0.0727798f, -0.0106207f, -0.0377212f, 0.0230967f, 0.0243278f, -0.0173262f, -0.0277729f, -0.15751f, 0.182543f, 0.0466212f, -0.0317028f, -0.0450504f, -0.125744f, -0.0537027f, 0.0220421f, -0.0199888f, -0.0501724f, -0.049016f, -0.0901718f, -0.0728916f, 0.0758116f, 0.115248f, -0.0644097f, -0.11938f, 0.144018f, 0.0883867f, 0.00891085f, -0.04642f, -0.0800597f, 0.0152776f, -0.268964f, -0.0734598f, 0.0223782f, 0.0317568f, 0.0476706f, 0.0819888f, -0.00316293f, -0.252706f, -0.0343809f, -0.0708156f, -0.0801154f, -0.18111f, -0.00245488f, -0.214725f, -0.107153f, 0.0176315f, 0.0243936f, -0.0496036f, 0.225209f, 0.0565289f, 0.170775f, -0.0560565f, -0.0822207f, -0.208883f, -0.0110852f, 0.0587052f, 0.0325562f, 0.0735141f, 0.0594304f, 0.050566f, 0.170556f, -0.0874467f, 0.0887719f, -0.10052f, -0.20401f, -0.0168921f, 0.152983f, 0.029545f, 0.226121f, 0.0613504f, 0.100956f, 0.0714848f, -0.139057f, 0.0695092f, -0.138967f, 0.00635206f, -0.0322985f, -0.121542f, -0.171135f, -0.057294f, -0.0541538f, -0.116346f, -0.168002f, 0.0862844f, -0.0511682f, -0.0234853f, 0.178651f, -0.131433f, -0.168087f, 0.0870488f, 0.210698f, 0.255711f, 0.0267518f, -0.0478164f, 0.0270385f, 0.00452359f, 0.108632f, 0.0306516f, 0.10569f, -0.25346f, -0.222526f, -0.115388f, 0.192864f, 0.0367997f, -0.0779442f, 0.169069f, 0.177771f, -0.081228f, -0.207285f, -0.128552f, -0.0753018f, 0.101958f, 0.106542f, 0.27123f, 0.0751881f, 0.0296779f, -0.128393f, -0.0770883f, 0.161035f, 0.0283159f, -0.0277064f, 0.0934405f, 0.0662967f, -0.0577297f, -0.146169f, -0.0289458f, 0.121249f, 0.0821557f, -0.0814134f, 0.0247434f, 0.00895755f, -0.19258f, -0.0367856f, 0.0841634f, -0.108116f, -0.224536f, -0.0618653f, -0.163446f, 0.153614f, -0.0830883f, 0.137117f, -0.0226923f, 0.0934818f, 0.147465f, -0.176349f, -0.00611706f, -0.0287773f, -0.0127567f, -0.0561313f, -0.137738f, 0.25857f, -0.0109514f, 0.138256f, 0.0592892f, 0.234001f, -0.00339008f, 0.0215075f, 0.122237f, -0.0380583f, 0.0159959f, 0.0646556f, -0.00971054f, 0.0980782f, -0.111219f, 0.130128f, 0.104268f, 0.140024f, 0.0553589f, -0.0313552f, 0.105119f, -0.0794736f, -0.0481809f, -0.0523546f, -0.0710057f, -0.10442f, 0.110576f, -0.0802683f, -0.0755577f, -0.0527579f, 0.195581f, 0.0213533f, 0.0514115f, 0.0540743f, -0.039281f, 0.00207954f, 0.155278f, 0.0689042f, -0.274434f, 0.0798667f, 0.191566f, 0.188939f, 0.00772073f, -0.093983f, -0.0517626f, -0.0266855f, 0.0506455f, -0.0116526f, -0.00684367f, 0.107065f, -0.225622f, -0.0465384f, -0.00235117f, -0.260801f, 0.000346165f, -0.0144224f, 0.102226f, -0.00219311f, 0.0401749f, 0.0711034f, -0.208555f, -0.0123649f, 0.00120278f, -0.110651f, 0.0363843f, 0.0860271f, 0.00175791f, -0.047741f, -0.0769984f, -0.220554f, -0.0926727f, -0.065028f, -0.0643069f, -0.0246772f, 0.16082f, -0.0862887f, 0.000287942f, 0.259281f, 0.130929f, 0.0542191f, -0.0542879f, 0.102455f, -0.082048f, -0.120473f, -0.200037f, 0.0290946f, 0.0582774f, -0.111455f, 0.211821f, -0.179678f, 0.0120498f, -0.0853426f, -0.113936f, 0.125371f, 0.0534156f, -0.0678707f, 0.0600579f, -0.126163f, -0.0078791f, -0.0388271f, 0.185231f, 0.168248f, -0.044796f, 0.103058f, -0.0940512f, 0.0441524f, -0.0127957f, -0.140916f, -0.148451f, -0.084147f, 0.04351f, -0.113315f, -0.102115f, -0.0666791f, -0.00959475f, 0.023983f, 0.0724562f, -0.0524249f, 0.0466681f, -0.100593f, -0.160159f, -0.0201135f, -0.0446019f, -0.0740927f, 0.196329f, 0.0186115f, 0.00552855f, 0.0490077f, -0.165182f, -0.0607069f, -0.0555273f, -0.0299471f, -0.0212912f, -0.126341f, 0.0484841f, 0.155575f, -0.174366f, 0.0869065f, -0.0648078f, 0.00876827f, -0.0334084f, -0.0975997f, 0.0150696f, -0.0504764f, 0.00245961f, 0.0279795f, 0.205452f, 0.0197976f, 0.0796695f, -0.10623f, -0.139055f, 0.205915f, 0.0111996f, -0.0800884f, -0.131877f, -0.0796729f, 0.011326f, -0.0828136f, 0.090616f, -0.214546f, -0.0504309f, 0.0624724f, 0.0260304f, -0.067709f, 0.101118f, -0.169762f, -0.109143f, -0.102229f, -0.0311261f, 0.0226163f, 0.134418f, 0.0983404f, -0.0367464f, 0.0574652f, 0.0216488f, 0.0537782f, -0.0283381f, -0.0424459f, -0.0602889f, -0.0281228f, -0.204593f, -0.0792305f, -0.254104f, -0.0382832f, -0.00904173f, -0.0492111f, -0.0762503f, 0.0968518f, 0.0441347f, -0.0719492f, -0.0743855f, -0.123094f, 0.0381206f, 0.0193703f, 0.0241127f, 0.0286757f, 0.0721111f, 0.211425f, -0.0677505f, 0.124355f, 0.114196f, -0.0583249f, 0.102395f, 0.0353574f, -0.0293349f, -0.0714475f, 0.167844f, -0.000434738f, -0.193647f, 0.0532166f, 0.0500124f, 0.0374663f, 0.117879f, -0.0499353f, -0.0953016f, -0.0528494f, -0.047784f, -0.0791144f, 0.035716f, -0.0871735f, 0.0131896f, 0.0222305f, -0.0051645f, -0.164437f, -0.144197f, -0.0322881f, 0.151223f, -0.0109569f, -0.0496838f, -0.126342f, -0.0144029f, -0.176726f, -0.165367f, 0.0760158f, 0.260744f, -0.0297806f, -0.0756597f, 0.0620967f, -0.0874959f, -0.160439f, 0.150135f, 0.140547f, 0.09411f, -0.234554f, -0.180913f, 0.0810829f, -0.179525f, -0.192762f, -0.0453518f, 0.218372f, 0.128422f, 0.0213398f, -0.0619183f, -0.0591264f, 0.00109547f, -0.13765f, 0.231521f, 0.123879f, -0.0555157f, 0.25285f, 0.168091f, 0.0147698f, 0.116935f, 0.0465238f, 0.0707119f, 0.0430014f, -0.0724553f, 0.00430876f, -0.150423f, 0.105663f, 0.116718f, 0.102404f, -0.0958333f, 0.0482938f, -0.0620884f, -0.05248f, 0.0251104f, 0.0605231f, -0.112578f, -0.166174f, 0.15067f, -0.0275703f, 0.105861f, 0.063725f, 0.00488077f, 0.0947324f, 0.0860609f, -0.0314784f, -0.0135949f, -0.0124698f, 0.11621f, 0.13582f, -0.0433006f, -0.0116673f, -0.0791256f, -0.143688f, -0.173363f, -0.051141f, 0.0228857f, 0.0184896f, -0.016658f, -0.0860979f, -0.0566585f, -0.081065f, -0.0633435f, 0.0609507f, -0.147937f, -0.089521f, -0.0594665f, -0.0740911f, 0.00411451f, 0.0947286f, -0.0944299f, 0.0094666f, -0.175275f, -0.0436832f, -0.0287521f, -0.0742371f, -0.00672405f, -0.130393f, 0.188774f, -0.139739f, -0.0375998f, -0.0665013f, -0.0794159f, 0.0197936f, -0.156816f, -0.0237802f, 0.0551701f, -0.193541f, 0.00667885f, 0.011649f, 0.0382307f, 0.141716f, -0.0379739f, -0.19853f, 0.146051f, 0.0695167f, 0.211557f, 0.206335f, -0.0597504f, -0.00711061f, -0.0509826f, 0.0325433f, 0.0174521f, 0.0262474f, -0.0520515f, -0.114477f, 0.136325f, -0.0861635f, -0.0723967f, 0.0238315f, -0.00824162f, -0.175266f, -0.0794673f, 0.0915827f, 0.103896f, 0.0357813f, 0.0425501f, 0.0754441f, -0.0592196f, 0.0668519f, 0.0532871f, 0.184994f, -0.0839753f, -0.118037f, 0.0814608f, 0.0599331f, -0.0563106f, -0.083005f, 0.101999f, -0.0140818f, 0.0851088f, 0.134188f, 0.118279f, -0.0685969f, -0.116404f, 0.00305185f, -0.121005f, -0.0229197f, 0.115102f, -0.0828377f, 0.0994355f, -0.144f, 0.0538317f, -0.0370549f, -0.0983446f, 0.0765916f, -0.190745f, 0.00648961f, -0.0672546f, 0.0430133f, -0.0221116f, -0.169494f, 0.0756335f, 0.0430576f, 0.0462689f, -0.0909901f, 0.0689158f, -0.14715f, -0.128944f, 0.0086846f, -0.0882679f, -0.0442012f, -0.233642f, 0.100876f, -0.111811f, -0.00442862f, -0.0180805f, -0.0768637f, -0.065188f, 0.00809315f, 0.0259903f, -0.0680765f, 0.16383f, -0.194538f, -0.0698388f, -0.0594471f, 0.0093582f, -0.118362f, -0.00496715f, -0.0736253f, -0.0297154f, 0.0713425f, -0.0660595f, 0.0778777f, 0.05005f, -0.0198051f, -0.121259f, 0.0475459f, -0.0926794f, -0.029197f, 0.152311f, 0.0647011f, 0.035724f, 0.0615055f, 0.00958393f, -0.00817072f, -0.103117f, -0.0592873f, 0.0738665f, 0.148464f, 0.000355386f, 0.112829f, -0.127063f, 0.137582f, -0.117522f, -0.00299992f, 0.0873492f, 0.126781f, -0.0109075f, -0.00799243f, 0.0542078f, -0.189023f, -0.0428525f, -0.144028f, 0.0264097f, 0.0461229f, -0.0328851f, 0.0750314f, 0.0165203f, 0.261208f, -0.00802384f, -0.0402244f, -0.0821038f, -0.059892f, -0.120886f, 0.0421883f, 0.0180629f, 0.0952816f, -0.110466f, -0.146556f, 0.183052f, -0.0808602f, -0.0728523f, -0.0559354f, -0.151453f, 0.0332675f, -0.178574f, -0.050054f, -0.011188f, 0.0556142f, -0.0498775f, 0.0216337f, -0.0612487f, -0.0923124f, 0.191f, 0.0179216f, 0.0846688f, 0.129954f, 0.122753f, -0.107112f, -0.105292f, -0.0279433f, 0.0398202f, 0.0181234f, 0.0929346f, 0.0779928f, 0.31083f, -0.108517f, 0.0760628f, -0.0374f, -0.166814f, 0.126943f, -0.0832857f, -0.01238f, -0.258661f, -0.138797f, -0.138827f, 0.00572214f, 0.0474404f, -0.106751f, -0.0915912f, -0.0953447f, 0.0927944f, -0.00462763f, -0.156439f, -0.075533f, -0.152128f, -0.0983623f, 0.0284084f, -0.0723213f, 0.0820778f, 0.0397848f, 0.0200259f, -0.00811633f, -0.0457867f, -0.121439f, -0.0869203f, 0.135399f, -0.050088f, -0.0281189f, 0.0667644f, -0.121983f, 0.0592123f, -0.0773486f, -0.0611542f, -0.0534334f, 0.029617f, 0.00065412f, -0.0549059f, -0.123437f, 0.0815817f, 0.0413228f, 0.0887302f, -0.0278164f, 0.0823173f, 0.0609766f, -0.174055f, -0.13097f, -0.0103057f, 0.198241f, -0.0771641f, -0.0385632f, 0.0279626f, 0.0695195f, -0.0785885f, -0.103954f, -0.0562318f, 0.125774f, 0.159691f, 0.13894f, 0.0959752f, 0.0501482f, -0.0422729f, 0.0237898f, -0.0508174f, -0.138816f, -0.0301299f, -0.137621f, -0.0477272f, 0.157401f, 0.143246f, -0.120725f, -0.03467f, 0.15405f, 0.0306903f, -0.045308f, -0.166382f, 0.282085f, 0.0276837f, 0.0121544f, -0.101775f, -0.0223306f, 0.129847f, 0.0403962f, -0.0218855f, 0.109601f, 0.069699f, -0.0754254f, -0.0104892f, -0.0149345f, 0.0511882f, -0.0421197f, 0.0634248f, 0.0238109f, 0.0781279f, 0.0329931f, -0.13741f, 0.0160398f, 0.0225098f, -0.174747f, -0.109284f, 0.0795444f, -0.158877f, 0.00979257f, 0.0956272f, -0.00653005f, -0.124661f, -0.25064f, -0.0224652f, -0.0455079f, 0.00436256f, 0.117741f, 0.0319961f, 0.119356f, -0.0402621f, 0.156268f, 0.00270414f, -0.12924f, 0.0631185f, 0.0382123f, 0.0176097f, 0.00109537f, 0.0204168f, -0.0282719f, -0.0460731f, 0.0683602f, -0.0209872f, -0.061776f, 0.0584166f, 0.0225937f, -0.0969003f, 0.126348f, 0.00011887f, -0.116022f, -0.150226f, 0.137798f, 0.0877275f, 0.0138039f, 0.0990869f, 0.122544f, 0.143938f, 0.0881876f, -0.0688206f, -0.0757223f, 0.0836861f, -0.160407f, 0.114548f, -0.0445799f, 0.144841f, 0.0876221f, -0.129259f, 0.0978243f, -0.11944f, -0.0459717f, -0.139794f, -0.046468f, -0.106709f, -0.0318748f, 0.0263961f, -0.0404749f, 0.109625f, 0.120774f, -0.0465257f, 0.0237727f, 0.132537f, 0.105268f, -0.162791f, 0.0424251f, -0.101559f, 0.234843f, -0.0437144f, -0.124093f, -0.0298848f, 0.0820976f, -0.0213416f, 0.160183f, -0.0491341f, -0.0444113f, -0.0110359f, 0.134064f, 0.124539f, -0.142821f, 0.230562f, -0.249353f, 0.186183f, -0.000777425f, 0.0177442f, 0.0690639f, -0.0650325f, -0.0522851f, -0.0805598f, -0.0328785f, -0.182806f, -0.0839264f, -0.024545f, 0.0356124f, 0.0805186f, 0.170204f, 0.0430773f, 0.074788f, 0.159256f, -0.258416f, -0.0031432f, 0.0570248f, -0.0769852f, -0.0457264f, -0.0642224f, -0.0214831f, -0.0373591f, -0.088377f, 0.0371839f, 0.140189f, -0.178273f, -0.00259057f, -0.14918f, -0.0476644f, -0.123218f, 0.127437f, -0.018338f, -0.00663668f, -0.11044f, -0.041117f, 0.0506419f, 0.199759f, -0.13717f, 0.0193396f, 0.00366584f, 0.175714f, 0.074112f, 0.0362224f, -0.0255236f, -0.142427f, 0.0201451f, -0.100763f, 0.211809f, 0.0107811f, -0.0355366f, 0.00254587f, 0.200448f, 0.0121318f, -0.0602875f, -0.0651781f, -0.155672f, 0.0956978f, 0.135558f, -0.0140129f, -0.0818684f, -0.0462837f, 0.0514399f, 0.127487f, 0.0818829f, 0.00158681f, 0.103837f, -0.0865916f, 0.0938068f, -0.0980716f, -0.11145f, -0.221457f, -0.0262867f, 0.13826f, -0.0309994f, -0.0434588f, -0.14842f, -0.138779f, -0.0897092f, 0.160262f, -0.186753f, 0.0262279f, 0.029306f, 0.00339599f, -0.147895f, 0.0019935f, -0.0365433f, -0.25419f, -0.156889f, 0.0880717f, -0.172667f, -0.161288f, -0.0589396f, -0.0789874f, 0.0969013f, -0.043013f, -0.100133f, 0.07075f, 0.067033f, 0.159693f, 0.0156996f, -0.128348f, 0.0535264f, -0.0664105f, -0.052385f, -0.0858457f, 0.209879f, -0.00748288f, 0.0875216f, -0.265347f, -0.0194241f, -0.19085f, -0.0784911f, -0.0311f, 0.0384991f, 0.0161478f, -0.104043f, -0.0186429f, 0.131033f, 0.00653577f, 0.142348f, -0.0585064f, 0.013193f, -0.0109759f, 0.140433f, -0.135211f, -0.0603864f, -0.065114f, 0.103199f, -0.0806765f, -0.0736555f, -0.219682f, -0.0864805f, -0.0678916f, 0.0340135f, 0.040935f, 0.0697483f, 0.0702399f, 0.105231f, -0.0317083f, -0.203101f, -0.0529964f, 0.109403f, 0.106233f, 0.00559205f, 0.076541f, -0.0675118f, 0.0450746f, -0.0524599f, -0.0273539f, -0.000625506f, -0.0994356f, -0.155874f, -0.05181f, 0.0120435f, -0.0248669f, -0.0268869f, 0.090733f, -0.154645f, 0.0169233f, 0.0601071f, 0.0356899f, -0.028025f, -0.167791f, -0.103939f, 0.116549f, 0.0425277f, 0.0960751f, 0.106417f, -0.209763f, 0.00796348f, 0.0422086f, 0.0557179f, -0.110939f, 0.149588f, -0.0151361f, -0.00587595f, -0.105956f, -0.0442575f, 0.0549829f, -0.180963f, -0.104211f, -0.00602992f, -0.189806f, -0.177009f, 0.0826881f, -0.126519f, 0.0517767f, -0.0630275f, -0.0401518f, 0.00803856f, 0.00926298f, -0.11878f, 0.0158752f, -0.0450258f, -0.0800739f, 0.0452658f, 0.0920107f, 0.0109601f, -0.0570566f, -0.122282f, 0.108193f, 0.116065f, 0.134293f, 0.238508f, -0.0993463f, -0.10259f, -0.0766167f, 0.0569616f, 0.0221701f, -0.0271145f, 0.189829f, 0.165624f, 0.0519187f, 0.13266f, -0.202566f, -0.00666316f, -0.135219f, -0.183324f, 0.144437f, -0.0542849f, 0.220124f, -0.106688f, -0.0336211f, 0.0194078f, -0.229291f, 0.0959883f, 0.011556f, -0.118554f, -0.172637f, 0.0981727f, 0.0278732f, 0.248163f, -0.00775233f, -0.0256833f, 0.0123686f, -0.172606f, 0.120272f, -0.231519f, 0.0731119f, -0.0121671f, -0.0564591f, 0.0460605f, 0.140588f, 0.0839408f, 0.0755512f, -0.0401655f, -0.023537f, 0.10142f, 0.0245184f, 0.139859f, -0.0435129f, -0.178292f, 0.0732791f, -0.0351287f, -0.0864439f, -0.0223968f, 0.105049f, -0.180541f, -0.0748962f, -0.00456166f, -0.164532f, 0.0639756f, -0.0274414f, 0.306139f, -0.0323509f, 0.0200284f, 0.0473436f, -0.100586f, 0.0418842f, 0.0829225f, 0.0587243f, -0.0151645f, 0.0213939f, 0.132204f, -0.00501223f, -0.0724995f, -0.165628f, -0.14434f, -0.0738245f, -0.14543f, 0.0855133f, 0.164425f, 0.0358874f, -0.0624701f, 0.0835048f, 0.178274f, -0.0386649f, -0.143959f, -0.0326672f, -0.145618f, -0.0786832f, -0.00961806f, -0.0383028f, 0.0203715f, -0.0424522f, 0.0575145f, 0.12558f, -0.0499851f, -0.00758046f, -0.132909f, 0.0064314f, 0.205007f, 0.0108519f, -0.0548904f, 0.14831f, 0.102819f, 0.0221212f, 0.024879f, -0.0661981f, -0.0469388f, 0.10495f, -0.0157818f, 0.066921f, 0.0826181f, -0.0668741f, 0.138726f, -0.0475052f, 0.110745f, 0.0515738f, 0.0205053f, -0.0499648f, -0.0256094f, 0.06152f, -0.103017f, 0.00540408f, -0.0328652f, 0.0130992f, -0.0263383f, 0.129031f, -0.188066f, -0.301106f, -0.0867076f, 0.0408705f, 0.0182321f, -0.0985027f, -0.128411f, -0.136337f, -0.011962f, -0.241354f, 0.0443889f, 0.0957925f, -0.0769497f, -0.209267f, -0.0167431f, -0.00907137f, 0.0595217f, 0.0848748f, -0.112725f, -0.103045f, 0.0260325f, 0.1046f, 0.131041f, 0.0900607f, -0.0149107f, 0.124387f, 0.0959631f, -0.145141f, -0.0896722f, 0.0150697f, 0.143235f, -0.132637f, 0.0206993f, -0.0733688f, -0.151234f, 0.0398905f, 0.029332f, 0.126611f, 0.0841111f, 0.0575281f, 0.100757f, 0.0869442f, -0.146684f, -0.0773715f, 0.10429f, 0.0976231f, 0.0956449f, 0.0555404f, 0.00404061f, 0.00869502f, -0.105448f, 0.0733128f, -0.06546f, 0.140139f, -0.0569613f, 0.0107243f, 0.0368086f, 0.133946f, 0.0268221f, 0.0452085f, 0.0944713f, -0.0675896f, 0.0477905f, -0.0134458f, -0.0143519f, 0.107487f, 0.0154253f, 0.0689672f, -0.0369177f, 0.20723f, -0.0731225f, -0.0220298f, 0.00302193f, 0.0517616f, 0.0286769f, -0.0352675f, -0.116097f, 0.0308654f, -0.0401111f, -0.0500972f, 0.0860514f, 0.124593f, 0.113301f, -0.0348301f, -0.0446749f, 0.0192182f, -0.0369801f, 0.0826911f, 0.0465922f, -0.061957f, 0.00342209f, 0.113865f, -0.0810368f, -0.217597f, -0.109819f, 0.258118f, 0.149589f, -0.076439f, -0.143555f, -0.118737f, 0.148145f, -0.122179f, -0.00991108f, -0.0146377f, 0.0312861f, 0.0235676f, -0.0130471f, 0.0787743f, -0.143865f, 0.0888062f, -0.0237082f, 0.188665f, 0.108223f, -0.00453723f, -0.0596587f, -0.156395f, -0.0902956f, -0.070169f, -0.0545153f, 0.0960471f, 0.157414f, 0.0463364f, 0.121325f, -0.0318124f, 0.0218829f, -0.218448f, 0.0220403f, 0.0243477f, -0.0749647f, 0.0251024f, -0.0636696f, 0.0822502f, 0.031828f, -0.186784f, 0.0377885f, -0.0539199f, 0.160923f, -0.185209f, -0.148494f, -0.111955f, -0.00442626f, 0.0827167f, -0.159742f, 0.036135f, -0.0316861f, 0.130123f, 0.0513936f, -0.104478f, 0.115838f, -0.135432f, -0.0231899f, -0.145624f, -0.170662f, -0.0795003f, -0.0202472f, 0.0702097f, -0.0870954f, 0.1223f, -0.0421243f, 0.0399893f, -0.0932484f, 0.120358f, 0.0785578f, -0.171462f, -0.0562658f, -0.159206f, -0.0865084f, 0.125698f, 0.0477079f, 0.0481367f, -0.0204767f, -0.051777f, 0.0525698f, 0.0323729f, 0.233807f, 0.140262f, -0.0192741f, -0.0138819f, -0.00951669f, -0.104089f, -0.230619f, 0.10699f, -0.0825942f, -0.168904f, 0.136888f, -0.119359f, 0.106359f, 0.000355142f, -0.0219835f, 0.179464f, 0.065634f, -0.182041f, 0.0888749f, 0.149179f, -0.066433f, 0.0465207f, -0.11922f, 0.0564027f, 0.0686038f, -0.118272f, 0.0173214f, 0.209955f, -0.103844f, 0.124209f, -0.119175f, -0.0200064f, 0.100421f, 0.146292f, 0.00238955f, 0.0864938f, -0.0595316f, 0.176558f, 0.0524613f, 0.147425f, 0.0160232f, 0.0303543f, -0.0251339f, -0.109756f, -0.136409f, 0.041984f, -0.0572027f, -0.115667f, 0.165933f, 0.0062581f, 0.0769059f, -0.16013f, 0.0363003f, 0.0175797f, 0.0429098f, -0.104995f, -0.165459f, -0.116448f, -0.0228163f, 0.0383179f, -0.0740227f, 0.167922f, -0.084616f, -0.00923209f, -0.224847f, -0.015252f, 0.0182202f, 0.0403518f, 0.0271451f, -0.289245f, 0.175848f, 0.0173769f, -0.0440068f, -0.00949721f, -0.236169f, -0.129801f, 0.0351341f, 0.229518f, 0.180782f, -0.115362f, 0.0591804f, 0.23995f, 0.0303209f, 0.0847313f, 0.395398f, -0.0278023f, 0.0934158f, 0.0189159f, 0.0644335f, -0.12392f, 0.210702f, 0.180035f, 0.22885f, 0.0611749f, 0.194554f, 0.0270112f, -0.074521f, 0.126767f, -0.0489425f, -0.0834137f, -0.153535f, -0.0487447f, 0.0588267f, -0.0414285f, -0.0334532f, -0.120419f, 0.0150437f, -0.112243f, -0.0199767f, 0.0637298f, -0.25262f, 0.0397243f, 0.100509f, 0.06444f, -0.102031f, -0.058231f, -0.0463346f, -0.0139017f, -0.0090722f, 0.155519f, 0.138225f, -0.0420775f, -0.0366181f, 0.0574001f, 0.06511f, 0.0897775f, -0.0185358f, 0.0382026f, 0.0272184f, -0.11692f, -0.0740492f, -0.0369888f, -0.174832f, -0.256506f, -0.162144f, -0.121099f, -0.136417f, 0.0111165f, -0.157477f, -0.0728902f, 0.124268f, 0.0784771f, 0.0469141f, 0.0212484f, 0.0942942f, -0.126719f, -0.240355f, -0.0502969f, -0.0633165f, -0.0533035f, 0.146824f, -0.00724525f, 0.00353105f, 0.00912453f, -0.0268031f, -0.123528f, 0.158777f, 0.0839269f, -0.0140946f, 0.034951f, -0.0102159f, 0.198321f, 0.128391f, 0.201984f, -0.0108223f, -0.106932f, -0.04977f, -0.166552f, 0.0171827f, 0.061607f, 0.00768281f, -0.103562f, 0.0252379f, -0.113329f, -0.0945349f, -0.00545158f, -0.107295f, -0.00125532f, 0.138628f, -0.0845999f, 0.168682f, 0.0192612f, -0.0124607f, -0.183283f, 0.241441f, -0.156098f, -0.156162f, 0.0510428f, -0.0136313f, 0.0692038f, -0.325674f, -0.0198007f, -0.297919f, -0.218828f, 0.179047f, -0.0613392f, 0.161563f, 0.26245f, -0.0587233f, 0.0434346f, 0.168376f, 0.0342237f, -0.203888f, 0.232307f, -0.13213f, -0.0115652f, -0.22576f, 0.0944292f, -0.0743676f, -0.22207f, -0.0227235f, 0.300524f, 0.125043f, 0.119357f, -0.0933152f, -0.0733957f, 0.0444552f, 0.0459338f, 0.148085f, 0.126744f, 0.106083f, 0.0714663f, 0.0526449f, 0.0766164f, -0.019028f, 0.066142f, -0.126715f, -0.113373f, -0.1212f, -0.0292337f, -0.0123383f, -0.336068f, 0.03734f, 0.177105f, 0.0124453f, 0.257988f, -0.032372f, -0.0192589f, -0.259315f, 0.0223526f, 0.13184f, 0.0868708f, 0.0598906f, 0.0187582f, -0.177433f, 0.0354568f, 0.0807279f, 0.0467517f, 0.104188f, -0.0472377f, 0.0351883f, -0.0249156f, 0.216422f, 0.00809299f, 0.0832888f, 0.183868f, -0.249717f, -0.169833f, -0.108685f, -0.114075f, -0.133772f, 0.0464585f, -0.00347412f, -0.122318f, -0.078376f, 0.0589795f, 0.32381f, 0.170241f, 0.185253f, 0.105394f, -0.0939876f, 0.0415679f, -0.188633f, 0.125128f, 0.044153f, -0.0444957f, -0.0971009f, 0.101648f, -0.023589f, 0.165413f, -0.194231f, -0.0194145f, -0.090415f, -0.0538345f, -0.11721f, 0.187949f, -0.104266f, 0.047226f, -0.0277425f, 0.265554f, -0.227711f, 0.221977f, 0.0720924f, -0.0111471f, -0.0111448f, 0.00345299f, -0.036269f, -0.0130334f, -0.0122908f, 0.141699f, -0.107317f, -0.106628f, 0.0873795f, 0.0696635f, 0.332725f, 0.188183f, -0.237269f, -0.175501f, -0.0951876f, 0.102359f, -0.0866712f, 0.0323451f, 0.110236f, 0.143816f, 0.0534474f, -0.116483f, -0.127122f, 0.0491258f, 0.241968f, -0.0765063f, 0.27571f, -0.163853f, -0.182678f, -0.0122102f, -0.0547028f, 0.0217882f, -0.15754f, -0.0310006f, 0.000691241f, -0.0293562f, 0.0249394f, -0.0534931f, -0.0727706f, 0.0300322f, -3.65701e-05f, -0.010306f, -0.0702629f, 0.0464786f, 0.00840765f, -0.116675f, 0.0221384f, -0.117759f, 0.103876f, 0.189249f, 0.0348433f, -0.127255f, 0.0985398f, 0.0760604f, 0.0461309f, 0.0360184f, -0.0699401f, -0.0941007f, -0.142611f, -0.226803f, -0.0151374f, -0.0321709f, 0.124035f, 0.130442f, 0.0111718f, -0.03781f, -0.092406f, 0.0271564f, 0.0355652f, -0.20181f, -0.118676f, 0.0783011f, 0.00397926f, -0.128127f, -0.0336163f, 0.17107f, 0.0107188f, -0.149969f, -0.0625399f, 0.0964596f, -0.0159806f, -0.00621397f, 0.0624709f, -0.143666f, -0.0435209f, 0.0606617f, 0.047455f, -0.100483f, 0.181914f, -0.0417071f, 0.0320535f, -0.189947f, 0.0897072f, -0.144442f, -0.177991f, -0.128071f, 0.0156781f, 0.0417574f, 0.115276f, 0.0180541f, 0.164479f, 0.0412434f, 0.209957f, 0.101934f, 0.0757764f, 0.110234f, 0.016696f, 0.0974298f, -0.047728f, 0.223979f, 0.0394449f, -0.0149049f, -0.116687f, 0.0313541f, 0.0662586f, 0.0941223f, 0.00115172f, 0.169621f, 0.0353579f, 0.0444068f, -0.121316f, 0.000291021f, 0.236356f, -0.170954f, -0.172929f, -0.0190932f, 0.00487078f, -0.0525195f, 0.123135f, -0.0913723f, 0.115987f, -0.0139772f, -0.106166f, 0.0956105f, 0.0589542f, 0.0423035f, -0.0341911f, 0.0214717f, 0.0878155f, -0.0346419f, 0.187542f, -0.235889f, 0.0755338f, 0.0572227f, -0.209044f, -0.0892671f, 0.0129081f, 0.0387386f, 0.020599f, -0.116297f, -0.0185654f, -0.00639334f, 0.245992f, 0.231646f, -0.0386241f, -0.186467f, -0.165294f, 0.0739495f, -0.0636237f, -0.0506903f, 0.0729928f, 0.0843685f, 0.174814f, -0.128461f, 0.180993f, -0.0195044f, 0.0424238f, -0.0134632f, -0.00347232f, 0.132844f, -0.03914f, -0.107467f, -0.132292f, -0.0352574f, 0.0969641f, -0.0313421f, 0.0294364f, 0.0936558f, -0.0141225f, 0.0618967f, -0.0121171f, -0.0571861f, 0.0136304f, -0.0256912f, -0.0418964f, -0.0364905f, -0.034035f, 0.0105411f, -0.155933f, -0.12356f, -0.124901f, -0.00406818f, -0.0227769f, -0.050667f, 0.153327f, -0.0640104f, 0.0348523f, 0.0702531f, -0.0807865f, 0.180593f, -0.0308522f, -0.0446076f, 0.0101873f, 0.0314611f, -0.114822f, -0.0904974f, -0.117516f, -0.0577086f, -0.0350655f, -0.0672862f, -0.0201273f, -0.0122818f, 0.218179f, 0.0535576f, 0.107533f, 0.0660801f, -0.0903953f, -0.135295f, -0.0185239f, -0.253117f, -0.125658f, 0.123896f, -0.174779f, 0.0468242f, 0.0819245f, -0.172758f, 0.0627627f, -0.0107082f, 0.0519354f, -0.114099f, 0.054295f, 0.117671f, -0.17025f, 0.0423253f, 0.0796714f, 0.0432628f, -0.0385432f, -0.0160957f, -0.0816041f, -0.0623385f, 0.22008f, -0.0110646f, -0.0927289f, 0.206682f, 0.173677f, 0.0572694f, -0.106596f, -0.0375802f, -0.053548f, 0.167864f, -0.0755461f, 0.0198139f, 0.0929089f, -0.0971527f, -0.11438f, 0.0117472f, -0.0038209f, -0.0821766f, 0.16424f, 0.0203982f, 0.0047876f, -0.09334f, -0.0654078f, 0.110792f, 0.0718239f, -0.0286675f, -0.0385305f, -0.0443572f, 0.138655f, -0.0114407f, 0.118179f, -0.0239056f, 0.160206f, -0.0939119f, -0.0494475f, 0.0310363f, -0.052416f, -0.133039f, 0.0988781f, -0.128482f, -0.095553f, 0.144424f, 0.189841f, -0.122415f, -0.267402f, -0.0748893f, 0.0830233f, -0.00283488f, -0.00948846f, 0.035952f, 0.042847f, -0.0778558f, -0.00428635f, 0.120218f, -0.0814438f, 0.0306024f, -0.0974108f, -0.0527323f, 0.0466047f, 0.00275568f, -0.174417f, 0.0308412f, 0.00578434f, -0.0661062f, 0.0747005f, 0.0957341f, 0.00713074f, 0.109466f, -0.0552145f, -0.0939273f, 0.0119559f, -0.124939f, -0.0432107f, -0.100065f, 0.0565463f, -0.0061335f, 0.10664f, -0.0379818f, 0.124735f, -0.000672896f, -0.109945f, 0.263977f, 0.0176811f, 0.237018f, 0.0530857f, -0.102775f, -0.0685934f, 0.0674651f, -0.039401f, 0.189165f, 0.0272549f, 0.0727677f, 0.0394353f, 0.142469f, -0.0136781f, -0.118502f, -0.0583294f, -0.0534289f, 0.0153019f, 0.015884f, -0.0452915f, 0.0632987f, 0.0123218f, -0.0435388f, -0.0200499f, 0.0790496f, -0.0545268f, -0.00309534f, 0.172582f, -0.0376721f, -0.137446f, -0.00305726f, 0.0594878f, 0.0895127f, -0.0856108f, 0.0394472f, -0.0615265f, -0.0783721f, -0.150317f, -0.068033f, -0.0471988f, 0.148123f, -0.0746164f, -0.101853f, -0.0895224f, 0.0240542f, -0.0168813f, -0.115879f, -0.0674092f, 0.073868f, 0.0384887f, 0.167765f, -0.173045f, -0.151117f, -0.15631f, 0.0153454f, 0.109388f, 0.18088f, -0.0752697f, 0.0760034f, -0.0381605f, 0.0996535f, 0.0116832f, -0.00142449f, 0.0923516f, -0.00699669f, -0.00181038f, 0.159059f, 0.0909312f, 0.0893254f, 0.107246f, 0.0105484f, 0.0391601f, -0.0173624f, -0.181606f, 0.109811f, -0.0796562f, -9.67553e-05f, -0.194846f, -0.00966515f, 0.0564848f, -0.0600004f, -0.0184026f, 0.0107069f, -0.0260677f, -0.203499f, -0.0118565f, 0.0917475f, 0.120423f, -0.0463645f, 0.167316f, 0.124435f, -0.0433153f, -0.0908199f, -0.0369481f, 0.013561f, -0.169457f, -0.0188006f, 0.114878f, -0.0742012f, 0.109363f, -0.061665f, 0.085873f, 0.0758778f, -0.0803866f, 0.100028f, 0.0411927f, -0.0473157f, -0.0528214f, 0.0708511f, 0.0712392f, -0.0966469f, 0.0518225f, 0.0182755f, -0.0428723f, 0.127074f, -0.181292f, 0.0287064f, 0.00707845f, -0.0573391f, -0.0232823f, 0.023816f, -0.0720338f, -0.0405389f, 0.0219997f, -0.0492006f, -0.0509247f, -0.226445f, -0.0618632f, -0.0186867f, 0.0331804f, 0.163139f, 0.0701824f, -0.0547007f, 0.0242986f, -0.0560998f, -0.0253861f, 0.0278248f, -0.0750735f, -0.0828294f, 0.167032f, -0.000385891f, 0.00413931f, 0.017983f, 0.00782746f, 0.0186012f, -0.20858f, -0.0819021f, 0.0164964f, -0.0250672f, -0.185799f, -0.0341431f, -0.0332339f, -0.0579325f, -0.0854673f, -0.132027f, -0.00907389f, 0.0652986f, -0.17159f, -0.100704f, 0.0877446f, 0.0319607f, -0.00906004f, 0.0377921f, -0.184172f, 0.0761203f, 0.00574193f, -0.0131814f, -0.0776879f, 0.0813079f, -0.0116437f, 0.119389f, 0.0295284f, 0.117379f, 0.168851f, -0.0792892f, 0.171491f, -0.0140409f, 0.0215457f, 0.173332f, 0.012962f, -0.059334f, 0.0524094f, -0.017138f, -0.0851535f, -0.0403169f, 0.0705003f, 0.155185f, 0.0463443f, -0.00678482f, -0.0395783f, 0.0843127f, 0.0181105f, 0.094135f, -0.107936f, -0.0939757f, 0.0120655f, -0.166161f, -0.112594f, 0.060569f, 0.0474416f, -0.0538027f, 0.0756433f, 0.111728f, -0.233221f, -0.0439907f, -0.108701f, 0.0395744f, 0.0660476f, -0.0699732f, -0.1024f, 0.0468182f, -0.0935223f, -0.0695114f, 0.0188696f, 0.212716f, 0.0682264f, 0.069656f, -0.061899f, -0.0502586f, -0.00706591f, 0.0482247f, -0.163269f, -0.0323013f, -0.0543931f, 0.165743f, -0.0751318f, 0.0138004f, 0.0641731f, -0.0555211f, -0.0257095f, 0.0926968f, 0.0204875f, 0.229477f, -0.0346587f, -0.041818f, -0.103236f, -0.116633f, -0.0869217f, -0.0709192f, 0.133663f, -0.012512f, 0.028117f, -0.106396f, 0.0135449f, 0.0876878f, 0.000593124f, 0.0932622f, -0.117848f, -0.111913f, 0.0711066f, -0.0406199f, 0.0660731f, 0.13853f, 0.022642f, 0.0884206f, -0.102699f, -0.015373f, 0.137657f, -0.0558194f, -0.0918105f, -0.0235754f, -0.0856574f, 0.0239104f, -0.0456593f, -0.067574f, -0.159815f, -0.102755f, -0.0358811f, -0.000783822f, -0.0439092f, -0.0529466f, -0.053272f, 0.0358827f, 0.239736f, -0.152466f, -0.0887199f, 0.0403612f, -0.0638237f, 0.148014f, 0.0421432f, 0.00817317f, 0.180195f, 0.0535982f, -0.161512f, -0.0410893f, -0.0701574f, 0.0109925f, 0.0531502f, 0.00169572f, -0.0664607f, 0.0552935f, -0.0586017f, 0.106908f, 0.0240971f, 0.0238793f, 0.0489638f, 0.13266f, -0.226486f, -0.242241f, -0.0411511f, 0.122888f, 0.130801f, -0.0924745f, 0.155294f, 0.135797f, 0.0667323f, -0.135623f, 0.163124f, 0.0654897f, -0.0802832f, -0.115231f, -0.130811f, 0.196148f, 0.0797177f, 0.0605583f, -0.152704f, 0.289097f, 0.00802122f, 0.0428464f, -0.0656276f, -0.0100109f, -0.0134739f, 0.0543685f, 0.0232478f, 0.0289978f, -0.0927485f, 0.0891446f, -0.0335504f, -0.116885f, -0.107274f, 0.127024f, 0.0934599f, -0.0506869f, -0.0320051f, -0.139861f, 0.165681f, 0.0491182f, 0.160806f, -0.119259f, -0.086602f, -0.0348603f, 0.167918f, -7.5064e-05f, 0.155751f, 0.0890751f, 0.148233f, -0.0941295f, -0.241698f, -0.0840493f, -0.0869124f, 0.24511f, -0.134688f, 0.285212f, 0.218613f, -0.100688f, -0.0863508f, 0.0291657f, 0.00332442f, -0.0680524f, 0.0804397f, 0.019339f, -0.0564586f, 0.0105011f, -0.00468602f, -0.0588985f, 0.111209f, 0.0499045f, 0.0128675f, -0.0433722f, -0.0545092f, -0.125319f, -0.0583832f, 0.175622f, 0.0553993f, -0.0679953f, 0.0340551f, 0.0815061f, -0.106629f, 0.212812f, -0.0225756f, 0.0551771f, -0.061893f, -0.0158906f, -0.113724f, -0.0483346f, -0.128141f, 0.0593139f, -0.119161f, 0.0561586f, -0.0431728f, 0.0280077f, 0.0524936f, -0.139659f, -0.0187839f, -0.0715596f, 0.177611f, -0.0711278f, -0.106263f, 0.034057f, 0.209296f, 0.210819f, 0.00874847f, -0.151692f, 0.136677f, 0.103444f, -0.0962553f, -0.0640234f, 0.0337084f, 0.0477992f, -0.00315716f, -0.105781f, 0.0382195f, 0.0166129f, -0.0889111f, 0.0593687f, 0.0697253f, -0.157988f, -0.149237f, 0.0554797f, 0.0602008f, 0.076435f, -0.0660143f, -0.058581f, -0.0415817f, 0.0196571f, -0.180357f, 0.030597f, -0.145233f, -0.00942702f, -0.0398441f, -0.196115f, 0.143851f, -0.139357f, 0.0419578f, 0.0388447f, 0.00569833f, -0.0186275f, 0.0579426f, -0.186852f, 0.112022f, 0.0113866f, 0.0963451f, 0.0875236f, -0.116506f, 0.0761353f, -0.0977963f, 0.0174868f, -0.109835f, 0.19051f, -0.133233f, 0.176388f, 0.0475761f, -0.043932f, 0.105408f, -0.0249487f, 0.126486f, -0.0576112f, 0.00808192f, 0.0693084f, -0.114307f, -0.146929f, 0.096451f, 0.0903564f, 0.0441249f, -0.0694551f, -0.124807f, 0.027638f, 0.190789f, 0.172562f, -0.166656f, 0.116629f, 0.0325341f, 0.171068f, -0.139356f, -0.000327406f, -0.0503146f, -0.0267209f, -0.0514356f, -0.0539945f, -0.167454f, 0.153747f, -0.0144675f, -0.0071808f, 0.0257691f, -0.187353f, -0.0344382f, -0.0221268f, 0.012371f, 0.0840889f, 0.067902f, -0.0436106f, 0.0083919f, 0.0839382f, -0.0398057f, -0.0991261f, 0.224749f, -0.104157f, 0.0465271f, -0.00769649f, -0.0220526f, -0.127585f, -0.179647f, -0.110866f, 0.057324f, -0.0238534f, -0.00856321f, 0.0997272f, 0.0794716f, 0.0449935f, -0.16735f, 0.0657164f, -0.11665f, -0.148429f, 0.0153283f, -0.053997f, -0.0827281f, -0.00884886f, 0.215509f, -0.0494019f, 0.0389176f, -0.0143848f, -0.0945698f, -0.0204282f, 0.109578f, 0.00109953f, -0.136011f, 0.0495445f, 0.122232f, -0.0232962f, 0.0463374f, -0.0618472f, -0.0978611f, -0.195673f, -0.00189719f, 0.119204f, -0.173705f, -0.0819087f, -0.012184f, 0.0757655f, 0.175372f, 0.107369f, -0.0614266f, -0.0436992f, -0.144034f, -0.00943342f, -0.117289f, -0.151365f, 0.200003f, 0.00156087f, 0.12672f, 0.0798213f, -0.0195554f, 0.105072f, -0.0988707f, 0.177233f, -0.0980892f, -4.25421e-06f, -0.0379061f, -0.143593f, 0.199759f, -0.154563f, -0.0943426f, 0.0521074f, 0.0448434f, 0.262053f, -0.166756f, 0.0381467f, -0.192259f, 0.118731f, -0.170836f, 0.00203142f, -0.0190328f, -0.313109f, 0.0509251f, 0.0569561f, -0.045509f, -0.0892264f, 0.292615f, 0.202061f, -0.19554f, -0.233485f, 0.174506f, 0.116314f, -0.0128875f, 0.00957246f, -0.00157977f, -0.019642f, -0.0627288f, -0.0309838f, -0.0951225f, -0.0265504f, -0.106139f, 0.156602f, -0.107933f, 0.0100855f, 0.142055f, 0.242938f, 0.0350517f, 0.01494f, -0.0681976f, -0.0870138f, -0.209153f, 0.233175f, 0.0716035f, 0.0326813f, -0.095452f, 0.0310482f, 0.124085f, -0.0743142f, -0.0453474f, -0.106154f, -0.0989639f, 0.141847f, -0.0474429f, -0.190873f, 0.0807835f, -0.0183653f, 0.0177432f, 0.0691855f, -0.213293f, -0.00471114f, 0.0399771f, -0.036097f, -0.0330082f, 0.0960719f, 0.0410805f, -0.101534f, 0.00769582f, -0.0969715f, -0.00704616f, -0.0309109f, 0.0769629f, 0.0625568f, -0.0267312f, -0.00138961f, -0.091017f, -0.0806675f, 0.0385526f, -0.0559385f, -0.0258421f, 0.182184f, 0.0522253f, -0.00319957f, -0.0133381f, 0.100773f, 0.00621379f, 0.0209151f, 0.0831411f, -0.0748675f, 0.0535305f, 0.0285669f, 0.131889f, 0.0583558f, 0.0716737f, -0.0783557f, 0.142476f, -0.0685018f, -0.160002f, -0.00493865f, -0.0339099f, -0.08817f, -0.0591431f, -0.00218241f, 0.0852139f, -0.00586632f, 0.101394f, 0.042149f, -0.0376916f, 0.0662135f, 0.0866908f, 0.099679f, 0.130625f, -0.122496f, -0.0596719f, 0.00158029f, 0.0577252f, 0.0377211f, -0.0304367f, 0.114137f, -0.144378f, 0.0453495f, 0.0830484f, -0.0784177f, 0.0280016f, -0.0482198f, -0.17544f, -0.0275969f, 0.0476832f, -0.0726764f, 0.0730105f, 0.000316004f, -0.00968869f, 0.0842082f, -0.00510481f, 0.146554f, 0.0531552f, 0.0108156f, 0.0850008f, 0.0225992f, -0.0180671f, -0.152752f, 0.0373573f, -0.014636f, -0.0321922f, -0.167625f, 0.0343266f, 0.00374097f, -0.0174133f, -0.0912718f, 0.134915f, -0.099399f, 0.0643532f, 0.071056f, -0.0140772f, 0.0394078f, -0.0297085f, -0.100123f, -0.0851808f, 0.0410124f, 0.0170611f, 0.00178704f, 0.0705258f, -0.0402535f, -0.0953563f, -0.184602f, -0.0770241f, -0.126558f, -0.116782f, 0.106471f, -0.109584f, -0.016572f, -0.117613f, -0.189696f, 0.0656061f, 0.0278276f, 0.0194311f, 0.0294609f, -0.036622f, -0.104927f, -0.0969216f, -0.0867435f, 0.0780671f, -0.266816f, 0.16873f, -0.0667651f, 0.0852039f, -0.000198794f, -0.249648f, 0.146422f, -0.126868f, 0.0781533f, 0.154996f, -0.0278402f, -0.0521558f, -0.0786797f, 0.0878835f, -0.0172943f, -0.0953016f, 0.110394f, 0.109451f, 0.0191401f, 0.0281447f, 0.25906f, -0.0660502f, -0.0562656f, -0.0183922f, 0.0578943f, -0.101211f, 0.0631543f, 0.00357362f, 0.0906953f, 0.0996107f, 0.177295f, 0.129801f, 0.0120901f, 0.180917f, 0.0219149f, 0.0664079f, -0.00367788f, -0.089083f, -0.0804611f, 0.137846f, 0.00751199f, -0.0906712f, 0.148542f, -0.0427567f, -0.106939f, -0.0683296f, 0.043936f, 0.015958f, -0.0220568f, 0.0588796f, -0.054805f, -0.105314f, -0.0548128f, -0.0339652f, 0.0555963f, -0.0818561f, -0.000129729f, -0.00485079f, 0.0731885f, -0.08472f, -0.0323069f, 0.00640431f, 0.0775174f, -0.0106243f, -0.0653086f, -0.0758165f, 0.0231926f, -0.146996f, 0.0116855f, -0.158187f, -0.0769651f, -0.0614369f, -0.0179515f, -0.00249819f, 0.0656238f, 0.0562278f, -0.0439929f, 0.0182874f, 0.0657209f, -0.0233777f, -0.105347f, 0.0515615f, 0.0360009f, -0.0576436f, 0.0861391f, 0.0686396f, 0.0454746f, 0.0141767f, -0.0562612f, -0.039916f, -0.0108237f, 0.071889f, -0.0765289f, -0.0164178f, -0.158838f, -0.142811f, 0.061696f, -0.0856496f, 0.0755494f, 0.0323597f, -0.0614951f, -0.189297f, -0.100324f, -0.0684473f, 0.0707677f, -0.000445502f, 0.0952938f, -0.0277059f, 0.0582082f, 0.0275857f, 0.0907634f, 0.0102414f, -0.0215388f, -0.11268f, -0.0733486f, 0.151233f, 0.0115682f, 0.184205f, -0.063702f, -0.0893537f, -0.112314f, -0.0951622f, 0.002938f, -0.077224f, -0.0340674f, -0.0162051f, 0.0948487f, -0.0781796f, -9.71586e-05f, 0.0277662f, -0.110054f, 0.043081f, -0.00738217f, -0.0202761f, -0.113119f, 0.0126777f, 0.196125f, -0.172832f, -0.12039f, -0.0627661f, 0.0699008f, -0.0352667f, 0.0371227f, -0.153852f, 0.201175f, -0.15151f, -0.052215f, 0.0574661f, 0.135453f, -0.0402024f, -0.0802464f, -0.0566547f, 0.12342f, 0.148686f, -0.0984094f, -0.106876f, 0.0310988f, 0.000466797f, -0.0727969f, -0.059935f, -0.0510226f, 0.0798578f, -0.0276848f, -0.0371241f, -0.05623f, -0.0757015f, 0.0864996f, 0.0261608f, 0.0358911f, -0.0566921f, -0.00528424f, 0.0138253f, -0.0977579f, -0.196913f, -0.0895766f, 0.154043f, 0.196133f, -0.00462703f, -0.0470495f, 0.0703799f, -0.151206f, 0.0248073f, 0.0809075f, 0.105838f, -0.182124f, 0.118909f, 0.0595895f, 0.0335748f, -0.0890272f, 0.14651f, -0.0774464f, 0.0329434f, -0.00622203f, -0.241174f, 0.0203989f, 0.0274301f, -0.0549674f, 0.0802975f, 0.0401748f, -0.0224843f, -0.103806f, 0.0831575f, 0.0788285f, -0.0391698f, 0.138458f, 0.180724f, -0.144492f, -0.143764f, -0.151579f, 0.041358f, 0.0170629f, 0.144988f, 0.0229925f, -0.0971158f, 0.0907736f, -0.170827f, -0.0222572f, -0.313574f, 0.059112f, -0.108119f, -0.0143085f, -0.0811185f, 0.158849f, 0.192972f, -0.0428168f, 0.0711283f, -0.173123f, 0.0314825f, 0.0359706f, 0.0613588f, -0.191248f, -0.162025f, -0.0747225f, 0.00595118f, 0.0285313f, -0.0257601f, 0.145898f, -0.105316f, 0.116079f, 0.0571014f, 0.0180787f, 0.26976f, -0.0284348f, -0.141478f, -0.204005f, -0.147272f, 0.0882401f, -0.0711928f, -0.0885729f, -0.0548319f, 0.236865f, 0.0662033f, -0.146855f, 0.120549f, -0.0142714f, 0.055766f, 0.0135793f, -0.0174793f, 0.0579754f, 0.121629f, 0.0390933f, 0.0158596f, -0.100417f, -0.118323f, -0.0780263f, 0.06643f, 0.0079753f, 0.0671283f, -0.103096f, -0.172073f, 0.0680289f, -0.0816274f, -0.160959f, 0.0130909f, 0.046333f, -0.0846925f, -0.0363693f, -0.0850367f, -0.0310269f, -0.329941f, -0.0836152f, 0.0380183f, -0.0647478f, -0.00441913f, -0.106049f, 0.245848f, 0.0432968f, 0.181972f, 0.0702496f, -0.0972037f, -0.101369f, -0.0367772f, 0.312915f, -0.0651043f, 0.0666901f, -0.116733f, -0.0456483f, -0.0973539f, -0.078535f, 0.0445684f, -0.133878f, 0.00441291f, -0.0354155f, 0.0375872f, -0.0102743f, -0.0740743f, -0.101182f, -0.203069f, 0.092887f, -0.0438574f, 0.0791931f, -0.264117f, 0.37077f, -0.135898f, 0.15072f, -0.183902f, 0.0553808f, -0.163706f, -0.187977f, -0.112807f, 0.0402937f, 0.0445466f, 0.231216f, -0.112072f, 0.195184f, -0.036917f, 0.0174901f, -0.195866f, -0.0319861f, 0.0865742f, -0.0554257f, -0.209833f, 0.0233701f, 0.045714f, -0.128369f, -0.0122977f, 0.308901f, 0.0489305f, -0.204101f, -0.0382388f, 0.245769f, 0.143027f, 0.0775001f, 0.016602f, -0.034741f, -0.116098f, 0.165691f, -0.183263f, 0.0110659f, -0.00778406f, -0.0679226f, -0.0214287f, 0.130044f, 0.101545f, -0.0361215f, -0.0448405f, 0.118138f, -0.0332058f, -0.00165405f, -0.153635f, -0.0861343f, 0.00604079f, 0.179175f, 0.040459f, -0.0573522f, 0.10716f, 0.16116f, 0.13766f, 0.09308f, 0.0224295f, 0.137834f, -0.0385926f, -0.00136114f, 0.161531f, 0.244311f, 0.242826f, 0.0941042f, 0.10896f, 0.188366f, 0.00836742f, 0.214052f, -0.118145f, -0.017894f, -0.0590389f, -0.131387f, -0.183739f, 0.0334761f, 0.0183441f, -0.242117f, 0.183023f, 0.0518246f, -0.0238975f, 0.0197252f, -0.031776f, 0.0375354f, 0.0291556f, -0.108412f, 0.0620035f, 0.0288637f, -0.13471f, 0.0567678f, -0.0248865f, 0.118151f, -0.0979433f, -0.213718f, 0.0424736f, 0.17987f, -0.0575125f, -0.0372677f, -0.0185599f, -0.0963647f, 0.0104746f, -0.0108214f, -0.0917327f, 0.219836f, -0.0549404f, 0.160004f, 0.0804352f, 0.0564146f, -0.027121f, 0.135864f, 0.0557832f, 0.0735893f, -0.0862638f, -0.0532464f, -0.140645f, -0.0566768f, 0.0519962f, -0.28211f, -0.06461f, 0.0319141f, 0.214073f, -0.0405319f, 0.111581f, -0.0472745f, 0.132967f, 0.0665186f, 0.139421f, 0.057486f, -0.0673351f, -0.255025f, 0.175758f, 0.108999f, 0.0824981f, -0.0291976f, 0.0748619f, -0.013574f, 0.0520092f, -0.136531f, -0.212864f, 0.00337337f, 0.0479797f, -0.0635549f, 0.179552f, -0.0428776f, -0.0731818f, 0.261929f, -0.0318569f, 0.0624703f, -0.129456f, -0.114383f, 0.274428f, -0.0783689f, -0.188531f, -0.0770485f, -0.159862f, -0.0351372f, 0.0658833f, 0.0954078f, -0.0143282f, 0.127405f, 0.132123f, 0.088592f, 0.0382963f, 0.137721f, -0.0123146f, 0.15546f, 0.0847849f, 0.169274f, -0.0523655f, -0.1281f, -0.0272621f, 0.0893407f, 0.0190434f, 0.0191613f, -0.124884f, -0.126233f, 0.023441f, 0.0174916f, 0.0272949f, -0.106367f, -0.0258894f, 0.0340682f, 0.143098f, 0.0323284f, 0.148233f, 0.0910991f, 0.123778f, 0.0912907f, -0.0091235f, 0.0729289f, -0.0456454f, -0.0358473f, -0.0442962f, -0.0536789f, -0.0149578f, -0.14118f, 0.0675594f, -0.000489693f, -0.00995724f, 0.0105713f, 0.112031f, 0.0985352f, 0.0424324f, -0.0994772f, -0.116415f, 0.0120187f, 0.0162934f, 0.0356712f, 0.0693511f, 0.0391087f, 0.0238982f, -0.171517f, 0.111546f, 0.0176992f, 0.000512211f, 0.0297335f, -0.0558735f, 0.080497f, -0.03276f, -0.0854325f, -0.174515f, 0.0263784f, 0.11354f, -0.079027f, 0.0164541f, -0.0879585f, 0.00858978f, 0.0127334f, -0.122696f, -0.034166f, 0.0186257f, -0.0755907f, -0.0468342f, -0.099835f, 0.0141612f, 0.078146f, 0.057263f, 0.0717409f, -0.174866f, -0.11931f, 0.0965648f, 0.0167146f, 0.0240476f, -0.106669f, 0.0517173f, 0.0587585f, -0.14133f, -0.00512535f, -0.00958272f, 0.050006f, 0.0837378f, 0.0851584f, -0.0445677f, -0.00151903f, -0.0755309f, 0.00120099f, -0.034032f, 0.114046f, -0.15304f, 0.0789133f, 0.011632f, 0.0961102f, -0.122798f, -0.067427f, -0.0133542f, -0.0104217f, -0.135515f, -0.18426f, 0.141525f, 0.0144135f, 0.042569f, 0.0185176f, -0.0285709f, 0.00861866f, -0.0411503f, -0.0768719f, 0.00013709f, 0.15738f, 0.162018f, -0.0781733f, 0.0168741f, -0.060806f, 0.0502313f, -0.0146647f, 0.0460615f, 0.130823f, 0.00353448f, -0.0549095f, 0.0299043f, -0.0383992f, -0.0896058f, -0.0555501f, 0.0767369f, -0.100452f, -0.149978f, 0.0698257f, -0.0319219f, -0.0849064f, 0.177653f, 0.0220638f, -0.158894f, 0.0811117f, 0.206116f, 0.00520099f, -0.0340225f, 0.0672715f, -0.0825145f, 0.0270502f, -0.0414487f, -0.0245881f, -0.0276617f, -0.159695f, -0.0429746f, 0.195411f, 0.119748f, -0.0229093f, 0.0761959f, 0.0474112f, 0.00180575f, -0.0542084f, 0.0426092f, -0.210308f, -0.0404509f, -0.22107f, 0.0604341f, -0.115142f, 0.33071f, -0.0475749f, -0.0251125f, 0.157761f, -0.173241f, -0.0155381f, -0.133503f, 0.082854f, -0.1396f, 0.0130225f, 0.0663363f, 0.103489f, -0.0860304f, 0.122413f, -0.00940419f, 0.0724352f, 0.0619658f, 0.324526f, -0.028397f, -0.0689671f, -0.0530376f, -0.0362208f, 0.0823871f, 0.0356917f, 0.10865f, -0.112668f, 0.0251182f, 0.0301667f, -0.0683299f, 0.043093f, 0.154002f, 0.170539f, -0.190209f, 0.020228f, 0.0374595f, 0.0589974f, 0.13756f, -0.182843f, -0.0283859f, 0.0762074f, 0.00240745f, -0.0138886f, -0.0602938f, -0.0739004f, -0.0598763f, 0.0139286f, -0.0154381f, 0.0651478f, 0.16755f, -0.0224217f, -0.0885313f, 0.0146491f, 0.125235f, -0.0882837f, 0.0390603f, 0.00527528f, -0.109629f, 0.0781199f, -0.174683f, 0.168951f, 0.144544f, -0.0231445f, 0.0717079f, 0.105494f, 0.000787646f, -0.154122f, 0.133337f, 0.0956129f, 0.0596634f, 0.0198617f, -0.00571514f, 0.00150346f, -0.0450819f, -0.00193571f, 0.0735381f, 0.0672929f, -0.0596346f, 0.00371593f, 0.10656f, -0.0555628f, -0.0100602f, -0.106838f, 0.0886954f, -0.165885f, -0.0423638f, -0.213137f, 0.0032481f, 0.135419f, -0.0145398f, -0.004189f, -0.0211167f, 0.166624f, 0.0564841f, -0.146186f, -0.0550928f, 0.124552f, -0.0768969f, -0.155496f, -0.0232308f, -0.0748385f, -0.0628701f, 0.191112f, -0.133643f, -0.00871062f, -0.0649587f, -0.0820159f, 0.016024f, -0.126207f, -0.0682622f, -0.0997952f, 0.0686477f, -0.0735724f, 0.0094173f, 0.0886987f, -0.00382737f, 0.0534404f, 0.109498f, 0.0936466f, -0.244814f, 0.153101f, 0.0767576f, -0.0962776f, -0.0532896f, -0.0341365f, -0.15095f, -0.0504039f, -0.0758127f, -0.00664748f, 0.115283f, 0.150101f, -0.108953f, -0.115322f, 0.148694f, 0.0198517f, 0.0119313f, 0.0835514f, 0.00797983f, -0.0729614f, 0.156289f, -0.01524f, 0.158546f, 0.0795164f, 0.125035f, -0.152034f, 0.0464241f, -0.000893839f, -0.0643252f, -0.0593813f, 0.0452328f, -0.0101045f, 0.0638003f, 0.0298971f, -0.0119337f, -0.121005f, -0.0656013f, 0.134072f, 0.101569f, -0.20333f, 0.132086f, -0.0713722f, -0.032552f, 0.039008f, -0.021198f, -0.187321f, 0.061251f, -0.0239219f, -0.0102234f, 0.0540524f, -0.0623068f, -0.162216f, 0.0333086f, 0.180934f, -0.0650466f, -0.143015f, -0.0797781f, -0.303971f, 0.0257887f, 0.133182f, 0.168211f, -0.0706506f, -0.228373f, -0.126781f, 0.00614878f, -0.0246903f, -0.0681792f, 0.000769195f, -0.0641732f, -0.0780924f, -0.0398192f, 0.0418371f, 0.0726752f, -0.014817f, -0.0777132f, 0.00133047f, 0.0477669f, 0.0766758f, -0.152482f, 0.0931346f, 0.00334622f, 0.0302319f, 0.159456f, 0.0902013f, -0.0732248f, -0.0224169f, -0.0556833f, 0.187413f, 0.147365f, -0.150173f, 0.257825f, 0.0186522f, -0.126137f, -0.131026f, -0.0442966f, -0.0361137f, -0.0153203f, 0.0212884f, -0.00245987f, -0.0318192f, 0.0637639f, -0.0274243f, -0.125051f, 0.175846f, -0.128472f, -0.0344311f, -0.0911814f, 0.00732365f, -0.149113f, 0.0822787f, -0.138737f, 0.079665f, 0.147024f, 0.00159884f, -0.066105f, 0.0705086f, 0.052832f, -0.041236f, 0.0419952f, 0.00350301f, -0.132002f, 0.0499697f, -0.0288238f, 0.200398f, 0.194261f, 0.00384277f, -0.118176f, 0.0625676f, 0.106571f, 0.0101894f, 0.159982f, -0.170558f, 0.000449517f, 0.11948f, 0.104005f, -0.0735428f, 0.0989466f, -0.0682873f, 0.124059f, -0.145366f, 0.0264341f, 0.181389f, 0.0627772f, -0.00510754f, 0.222907f, 0.165294f, -0.146119f, -0.0717745f, -0.170042f, -0.0829f, 0.117313f, -0.058888f, -0.0945748f, -0.0361306f, 0.140026f, -0.0939954f, 0.0601564f, 0.0594791f, -0.0214653f, 0.146868f, 0.127192f, 0.038726f, 0.0315873f, 0.175727f, -0.10023f, 0.0759795f, 0.272111f, 0.126644f, 0.134107f, 0.0546983f, 0.133607f, 0.0713798f, 0.245524f, 0.00726457f, -0.114067f, 0.140733f, -0.154766f, 0.16596f, 0.113611f, 0.0118229f, -0.0104705f, -0.10871f, -0.0728025f, -0.0641782f, 0.0458651f, 0.137432f, 0.0714374f, 0.00589116f, -0.086014f, -0.0248111f, 0.114912f, -0.122149f, -0.0636598f, -0.180369f, -0.101792f, -0.000456504f, 0.0683311f, 0.00703465f, 0.0183264f, 0.0175324f, 0.00316211f, -0.0887526f, -0.105988f, 0.011183f, -0.0856862f, -0.0276284f, 0.0298466f, -0.250474f, 0.113728f, -0.0145446f, -0.16196f, 0.0592721f, -0.0746751f, -0.0562843f, -0.119788f, -0.181333f, 0.113492f, -0.0888605f, 0.240728f, -0.00439052f, -0.0667635f, 0.0680961f, 0.0976232f, 0.109434f, -0.168301f, -0.199052f, 0.0920585f, 0.0138935f, -0.00854568f, -0.131121f, 0.0318167f, 0.0573595f, -0.0931417f, -0.130871f, 0.246795f, -0.0812748f, 0.0102648f, -0.0729431f, 0.053226f, 0.0611809f, 0.0787938f, 0.0602696f, -0.192288f, 0.0714169f, -0.0176744f, 0.212904f, -0.027569f, -0.00253638f, -0.0353051f, 0.0963826f, -0.0617035f, 0.0136852f, 0.118645f, -0.0338173f, 0.0363191f, -0.0772559f, 0.078874f, -0.0815995f, 0.0444112f, -0.0673133f, -0.0363281f, 0.0660868f, -0.301774f, 0.0455996f, -0.0245048f, 0.00665291f, -0.0675327f, 0.0559638f, -0.0219202f, -0.0199811f, 0.177967f, -0.0174765f, -0.167269f, 0.103581f, 0.0487928f, -0.186768f, 0.0961542f, -0.0184653f, -0.00426202f, 0.148215f, -0.130269f, -0.0791713f, -0.0307016f, -0.00491779f, 0.180592f, 0.0419134f, 0.0773707f, 0.134231f, -0.0922611f, 0.0328643f, 0.0519418f, 0.20657f, 0.156579f, 0.0174258f, -0.144199f, -0.0351495f, -0.160173f, -0.0376038f, -0.0783922f, 0.131884f, 0.0133202f, 0.124067f, 0.0512572f, 0.0322432f, -0.0903956f, -0.226668f, -0.05912f, -0.144519f, 0.129358f, 0.0337134f, -0.104098f, 0.0387582f, 0.0550194f, -0.0582054f, 0.0412481f, 0.0165445f, -0.0450674f, -0.0200917f, 0.00879595f, 0.11421f, 0.0219355f, 0.0472278f, -0.00414823f, 0.0499322f, 0.103524f, 0.113028f, 0.0608524f, -0.0297707f, 0.0338336f, -0.00797526f, 0.0763247f, -0.146757f, -0.0857163f, -0.0178188f, -0.059257f, 0.0447243f, 0.176317f, -0.0471855f, -0.0937691f, -0.0818274f, -0.0702156f, 0.0438672f, 0.0173715f, 0.105947f, 0.175795f, -0.0674062f, 0.010413f, 0.00906712f, 0.0679371f, 0.103868f, 0.0881808f, -0.0680523f, -0.117421f, -0.0346686f, -0.0871554f, 0.200325f, -0.128894f, -0.0352663f, -0.0218812f, -0.0374255f, -0.0436119f, -0.151644f, -0.120293f, -0.0401746f, 0.0453913f, 0.0591078f, -0.0927413f, 0.0775665f, 0.0475235f, 0.000431479f, -0.0104384f, -0.103297f, -0.0131638f, -0.114138f, 0.0286639f, 0.138515f, 0.0288092f, 0.0634356f, -0.147294f, -0.113481f, 0.0667543f, 0.0585257f, -0.0769208f, -0.119998f, 0.184922f, -0.000601724f, -0.0848148f, -0.0202908f, 0.0282716f, -0.119218f, -0.0645613f, 0.00683182f, -0.0470987f, -0.0212948f, -0.0459787f, 0.00200936f, -0.0123219f, 0.0786765f, 0.0561403f, -0.0516533f, -0.0320141f, -0.100293f, 0.0560815f, -0.0263743f, -0.0128946f, 0.02107f, -0.0378422f, 0.0906158f, -0.156136f, 0.0356451f, -0.0663758f, -0.071312f, 0.0485139f, 0.210042f, -0.0390873f, 0.00054412f, -0.0128437f, 0.108755f, 0.0593327f, 0.0439647f, 0.0438056f, 0.16987f, -0.188036f, 0.0554333f, 0.0140553f, -0.0825204f, 0.00223624f, -0.00633146f, -0.060483f, -0.0554372f, -0.00139152f, -0.0473064f, -0.023972f, -0.0392532f, 0.0730682f, -0.0625828f, -0.0853693f, -0.12553f, 0.1655f, -0.0493794f, 0.0775165f, -0.00177129f, 0.0391683f, -0.0777973f, 0.0934789f, 0.0301768f, 0.0168284f, -0.00317715f, -0.143591f, 0.00713309f, 0.0792499f, -0.146532f, 0.0345369f, 0.0215672f, 0.149112f, -0.0538861f, -0.0537797f, -0.0701864f, -0.1156f, -0.0349431f, -0.156699f, 0.0323354f, -0.160641f, 0.0676906f, -0.146088f, -0.0791452f, 0.00492006f, 0.00976949f, -0.0209982f, 0.204393f, -0.117754f, -0.0437829f, -0.109964f, 0.162737f, -0.0587156f, 0.0362226f, 0.0604937f, -0.0665424f, -0.0475637f, 0.0188519f, 0.11492f, -0.138024f, -0.0151886f, 0.113093f, -0.0319082f, -0.0145117f, 0.0410192f, 0.156266f, 0.0430624f, 0.0562547f, 0.0824782f, 0.0759154f, -0.109014f, -0.0864931f, -0.034506f, 0.0511928f, -0.0906866f, -0.112091f, -0.183979f, -0.0280835f, 0.0397621f, 0.0929963f, -0.0861432f, 0.00740536f, 0.176301f, -0.108678f, 0.0293951f, -0.0690903f, 0.0253735f, 0.0966484f, -0.0804645f, 0.0431119f, -0.0311746f, -0.0238914f, 0.132656f, 0.173805f, -0.0293059f, 0.111172f, -0.0271002f, 0.061096f, -0.0103608f, -0.0494223f, 0.0721421f, -0.0585304f, 0.00589124f, -0.192989f, 0.115855f, 0.141071f, 0.0495154f, 0.0600278f, 0.0214885f, -0.0330807f, 1.50237e-05f, 0.0770755f, -0.0563978f, -0.0808602f, -0.0940778f, -0.0251411f, 0.0504397f, -0.0180147f, 0.119244f, -0.16359f, 0.126288f, -0.111273f, -0.0233496f, -0.0257414f, 0.105523f, 0.0339106f, -0.0183348f, -0.0246025f, 0.127445f, 0.0547017f, 0.0498625f, -0.0433789f, -0.00876481f, 0.0092009f, -0.00873268f, 0.0255431f, 0.0972565f, 0.0608971f, 0.172255f, -0.0238814f, 0.0542997f, 0.213315f, -0.0189641f, 0.198973f, -0.136664f, 0.100749f, 0.0908208f, -0.0255312f, -0.128572f, 0.0311361f, 0.0431822f, 0.074209f, 0.0769117f, 0.0677837f, -0.0434643f, 0.0455209f, -0.083045f, -0.0860762f, -0.275149f, -0.0599315f, 0.0813708f, -0.116425f, 0.062466f, -0.00409776f, 0.0866828f, -0.10443f, -0.0639392f, 0.0572675f, -0.0572114f, -0.159427f, 0.0349962f, 0.0168066f, -0.00303556f, 0.0515729f, -0.0540816f, -0.163973f, -0.0887049f, 0.0311073f, 0.00269277f, -0.0872193f, -0.16176f, 0.0386894f, 0.0590778f, -0.135053f, -0.119499f, 0.126259f, 0.142749f, -0.0015091f, -0.0789164f, 0.0155423f, 0.143188f, 0.0738219f, 0.218508f, 0.0848508f, -0.118936f, 0.0981843f, -0.209267f, -0.0747444f, -0.11857f, -0.131179f, 0.056565f, -0.241653f, 0.143408f, -0.035386f, -0.100405f, -0.0923654f, 0.0597885f, 0.145228f, 0.118949f, -0.0156317f, 0.000638012f, -0.101523f, 0.172422f, -0.168833f, -0.00829221f, -0.0977317f, -0.00260564f, 0.133097f, 0.286324f, -0.0229475f, 0.0423971f, 0.0148602f, -0.0917045f, -0.0759701f, 0.0593036f, 0.104258f, 0.142328f, 0.0870279f, 0.0365683f, 0.13267f, 0.00520032f, -0.0199154f, -0.0294291f, -0.0169342f, 0.116896f, -0.0746033f, -0.0641102f, -0.0619959f, 0.0500101f, -0.0509813f, -0.0202186f, -0.0973136f, -0.156793f, -0.125272f, 0.167687f, -0.0219617f, 0.189107f, -0.12233f, 0.0459963f, -0.070178f, 0.109704f, -0.067621f, -0.0443072f, 0.0153191f, -0.0214825f, -0.00836298f, -0.0191799f, -0.10986f, 0.0559912f, 0.0363195f, -0.127295f, -0.150884f, -0.0394824f, 0.130258f, 0.0758326f, 0.0012235f, 0.0573937f, -0.0522439f, -0.114643f, 0.130666f, 0.105908f, 0.142488f, -0.0615895f, 0.13001f, 0.00530862f, 0.12317f, 0.0433934f, -0.0108655f, -0.000101938f, -0.245293f, 0.181653f, -0.0445486f, -0.0745077f, 0.095878f, -0.0223785f, 0.239308f, 0.033472f, -0.0646975f, 0.211843f, -0.0276989f, -0.155922f, -0.0383795f, 0.105284f, -0.0761776f, 0.083014f, 0.0561897f, -0.0869744f, 0.096788f, 0.204892f, -0.0252395f, 0.027072f, 0.0163528f, -0.0294777f, -0.105664f, 0.0699103f, 0.0564885f, 0.0215305f, -0.0802609f, 0.0487279f, 0.127337f, -0.0515692f, 0.0288036f, -0.0636131f, -0.150274f, 0.0953903f, 0.119271f, 0.113281f, -0.222845f, -0.0608081f, 0.0385911f, 0.162625f, -0.223092f, -0.0565829f, 0.0051708f, -0.0619831f, 0.0666843f, -0.11155f, -0.082221f, -0.056745f, -0.056519f, 0.0143504f, 0.24015f, -0.119216f, 0.224252f, -0.141463f, -0.0504309f, -0.0206189f, 0.162988f, 0.0367902f, -0.0855359f, -0.0803357f, -0.267143f, 0.063786f, -0.0803837f, -0.145319f, 0.0563048f, -0.133955f, 0.00333414f, -0.044649f, -0.0656943f, -0.114759f, 0.0950314f, -0.154975f, 0.12481f, 0.17471f, 0.0199422f, 0.0628616f, -0.108161f, 0.0103836f, -0.0541269f, 0.072595f, 0.000157496f, -0.0534894f, -0.0525426f, -0.154386f, -0.0623106f, -0.176898f, -0.0489615f, 0.120303f, -0.0265541f, 0.174955f, -0.18019f, 0.0738803f, -0.0617465f, 0.0569719f, 0.00851676f, 0.0250668f, -0.0848836f, -0.136375f, 0.0787022f, -0.0836296f, 0.131305f, 0.0331841f, 0.00860322f, -0.176657f, -0.0429866f, -0.0717277f, 0.0586707f, 0.00711576f, -0.051712f, 0.00427145f, -0.160144f, -0.0150758f, -0.208232f, 0.122816f, 0.0919196f, 0.182871f, -0.00220692f, 0.0555367f, -0.0835448f, 0.0331299f, -0.186715f, -0.0610228f, -0.107201f, 0.0872682f, -0.171646f, -0.0712926f, 0.0441077f, -0.108291f, 0.143185f, 0.102331f, 0.136522f, 0.0502069f, -0.00796193f, -0.108611f, 0.0377682f, 0.133646f, 0.0507259f, 0.0248615f, 0.149373f, -0.0929312f, 0.0375912f, -0.0270823f, -0.0762117f, 0.0473805f, 0.0647008f, 0.0521021f, -0.220292f, 0.168629f, 0.0578969f, 0.0293139f, 0.038473f, 0.0374905f, 0.0817099f, 0.0828031f, -0.0868172f, -0.0880613f, 0.0775569f, 0.0422484f, -0.0763657f, -0.0506701f, 0.0380608f, 0.0436543f, -0.000412928f, -0.0806134f, 0.136011f, -0.0084663f, -0.0509039f, 0.153708f, 0.0641107f, 0.100532f, -0.0463426f, 0.0801548f, -0.268527f, -0.068742f, -0.0865743f, 0.172224f, 0.0775917f, 0.0632811f, 0.0590907f, -0.0476008f, -0.119345f, -0.0500401f, 0.00532079f, 0.079212f, -0.0593358f, -0.00523728f, 0.0172933f, 0.0792272f, -0.148165f, -0.0819488f, -0.117352f, 0.00250781f, -0.0320004f, 0.0975897f, -0.1233f, -0.147616f, 0.190128f, 0.0291227f, -0.0439999f, -0.0908821f, -0.0567545f, 0.0558716f, 0.0495873f, 0.12897f, 0.0136502f, 0.0666313f, 0.0403089f, -0.128496f, 0.132433f, -0.00504714f, -0.0931737f, -0.13251f, -0.170591f, -0.0172342f, 0.0138512f, -0.0463762f, 0.0740759f, -0.176086f, -0.0171536f, 0.064749f, -0.101158f, -0.0877364f, 0.0139232f, -0.0594805f, 0.0208639f, -0.100886f, -0.0504895f, -0.0308329f, 0.0227767f, -0.0857722f, 0.0939639f, -0.15801f, 0.0566229f, -0.0735568f, 0.0536824f, 0.0273905f, 0.176236f, 0.0483905f, 0.111579f, 0.110748f, -0.056335f, -0.0918413f, -0.0620873f, 0.0900473f, -0.101378f, -0.0188962f, -0.067238f, -0.0783975f, -0.146641f, -0.145251f, 0.0246682f, 0.0352592f, 0.126718f, -0.0161265f, 0.0709526f, -0.0663751f, -0.0972067f, -0.145731f, -0.0464174f, 0.0250107f, -3.80788e-05f, 0.0770315f, -0.206f, 0.0873464f, -0.204146f, -0.0189396f, 0.0329362f, -0.00706114f, -0.0193036f, -0.0543499f, 0.0749423f, 0.0989494f, -0.0414205f, 0.0406981f, -0.0392959f, 0.0816174f, -0.0386121f, 0.232164f, 0.18951f, 0.071314f, -0.055723f, -0.0880889f, -0.02997f, 0.0839519f, 0.218773f, -0.108057f, -0.0223637f, 0.0576906f, 0.16661f, 0.0240764f, 0.003869f, -0.0168116f, 0.0909248f, -0.100515f, -0.0776208f, -0.00745235f, 0.0694131f, 0.15509f, 0.00508184f, 0.173528f, 0.137536f, 0.0193669f, 0.0237745f, 0.0659474f, 0.0418907f, 0.191511f, 0.113206f, -0.133633f, -0.0737659f, 0.0576828f, 0.0194304f, 0.0372929f, 0.0500498f, -0.150158f, -0.0709334f, -0.129039f, -0.0190543f, -0.0776307f, 0.0842438f, 0.0261549f, 0.0343963f, -0.0950792f, -0.126572f, -0.094375f, -0.0259102f, -0.068841f, -0.0773075f, -0.0305299f, 0.0702087f, -0.0458797f, -0.217906f, 0.0637219f, -0.00846132f, 0.0635301f, -0.0913331f, -0.131435f, 0.142596f, 0.146789f, 0.204958f, -0.0119842f, -0.0668633f, -0.0447841f, 0.0307298f, 0.0479541f, 0.0129896f, -0.00874287f, -0.00655773f, -0.0239992f, -0.0156347f, -0.021397f, 0.00526728f, -0.0629404f, 0.287847f, 0.0659123f, -0.0356878f, -0.129918f, 0.0575052f, -0.132864f, 0.0489462f, 0.0644348f, -0.0580664f, 0.194473f, 0.00042247f, -0.0919998f, -0.0469637f, 0.0577406f, -0.0833995f, -0.0546602f, 0.0133277f, 0.103604f, -0.199517f, 0.142761f, 0.0308369f, 0.0325089f, -0.115881f, 0.192142f, 0.156794f, 0.0389322f, 0.0399538f, 0.0211829f, -0.096556f, 0.028463f, -0.0896727f, 0.0790874f, -0.063664f, 0.0551103f, -0.0711681f, 0.0929436f, 0.154702f, -0.0791776f, -0.0938517f, -0.0899799f, 0.105168f, 0.0519552f, 0.0396365f, 0.0710002f, -0.0324109f, 0.0974301f, 0.0640102f, -0.0158895f, 0.191165f, -0.0346092f, -0.00193101f, 0.0511989f, 0.0611358f, -0.118033f, -0.0237154f, -0.0371378f, -0.0192135f, -0.0365279f, 0.117693f, 0.127571f, 0.0875595f, -0.137233f, -0.0970595f, -0.100183f, -0.0657326f, 0.143338f, 0.0678876f, -0.080384f, -0.153633f, 0.196004f, 0.0505631f, 0.0851189f, -0.00549756f, 0.219598f, 0.0838066f, 0.283998f, -0.233631f, 0.0967629f, -0.0599694f, 0.0113165f, -0.0134927f, 0.00696098f, 0.103637f, 0.00439979f, -0.0519372f, -0.101295f, 0.216044f, -0.0913414f, -0.0494522f, 0.170496f, 0.0931666f, -0.112469f, 0.0924654f, -0.0561643f, -0.0337947f, -0.135637f, 0.131397f, -0.0863231f, -0.10161f, 0.169516f, 0.0793312f, -0.163081f, 0.133558f, -0.147378f, 0.231511f, -0.121612f, -0.0146495f, 0.00306274f, 0.00433574f, 0.00826655f, -0.152025f, 0.0747097f, -0.0784834f, 0.0582905f, -0.0593813f, -0.112964f, -0.0725048f, 0.0828892f, 0.119516f, -0.0468056f, -0.138918f, -0.0253167f, -0.23184f, 0.00473908f, -0.0376176f, -0.104294f, 0.0586285f, 0.0683827f, 0.184661f, -0.121812f, -0.163868f, -0.018105f, 0.218431f, -0.236986f, 0.240999f, 0.000412007f, 0.0509658f, -0.0197287f, -0.0974957f, -0.120923f, -0.0421207f, 0.0410496f, -0.0960803f, -0.174607f, 0.0742041f, 0.0993325f, -0.0673258f, 0.0279583f, 0.14686f, -0.0222012f, 0.0937444f, -0.0808634f, 0.0157671f, 0.121613f, -0.219769f, -0.21473f, 0.0652005f, 0.161219f, -0.0252863f, 0.0960297f, -0.0873078f, 0.11477f, 0.0613474f, -0.0466265f, -0.188904f, -0.171369f, 0.0905139f, -0.0340768f, 0.0545949f, -0.0241936f, -0.0962985f, 0.197891f, 0.0519352f, 0.0263993f, 0.0536975f, 0.342513f, 0.0780295f, -0.102839f, 0.0222674f, 0.0440038f, -0.225349f, -0.0364638f, 0.064636f, 0.148769f, 0.137778f, -0.14784f, -0.0315099f, -0.0270854f, -0.0161889f, 0.0258839f, 0.282778f, -0.11084f, 0.0844868f, -0.00563592f, 0.0256641f, -0.143139f, 0.206191f, 0.152094f, 0.139432f, 0.013189f, -0.353334f, 0.121574f, -0.0702193f, -0.126881f, -0.0899273f, -0.0801872f, -0.0690422f, 0.00718298f, 0.326921f, 0.0628501f, 0.258191f, -0.129786f, -0.0981401f, -0.212311f, -0.170885f, -0.120666f, 0.0923186f, -0.116403f, 0.0125242f, -0.0377368f, -0.130323f, 0.00149678f, -0.0489693f, 0.0534854f, 0.0478224f, -0.0203194f, -0.0417616f, -0.0645214f, -0.0965986f, -0.176094f, -0.199618f, -0.00885433f, 0.0528209f, 0.0209804f, 0.0350773f, 0.185291f, -0.0256214f, 0.0181001f, -0.00645355f, -0.147307f, 0.0999294f, 0.0793628f, -0.0442557f, -0.0931182f, 0.330944f, 0.0555275f, -0.053151f, 0.0589918f, 0.00806092f, -0.180659f, -0.0860306f, 0.0851691f, -0.0593352f, 0.11991f, -0.156631f, 0.0640181f, -0.120658f, 0.0331092f, 0.0416592f, 0.0207924f, -0.103127f, 0.0588028f, 0.0673372f, -0.117078f, -2.73783e-06f, -0.0915406f, -0.0181686f, 0.112894f, -0.0606838f, -0.104553f, 0.0558697f, -0.175135f, 0.0897572f, 0.0631736f, -0.07016f, -0.0422641f, -0.0632704f, -0.136352f, 0.104538f, -0.0755833f, -0.134673f, 0.0440879f, 0.0494072f, 0.0506476f, -0.150173f, 0.15939f, 0.0595901f, 0.24099f, -0.180895f, -0.0979545f, -0.115831f, 0.0656037f, -0.122663f, -0.0495035f, -0.0269261f, 0.113589f, -0.183661f, 0.0574324f, -0.0907245f, 0.0583356f, 0.106386f, 0.0856706f, 0.0833201f, 0.110204f, 0.118942f, -0.0640309f, -0.0271936f, 0.097814f, 0.0757065f, 0.0744914f, 0.0114098f, 0.120322f, -0.013091f, -0.24421f, 0.0316538f, -0.0312861f, 0.169105f, 0.105834f, -0.139581f, 0.204695f, 0.0693222f, -0.023057f, -0.169698f, -0.0320139f, -0.0157496f, -0.0679924f, -0.00370468f, 0.170616f, -0.000558838f, 0.0506193f, 0.117993f, 0.0569418f, -0.0212506f, -0.160739f, 0.059352f, 0.139741f, 0.148593f, 0.0313692f, -0.0478281f, 0.0877353f, -0.0895176f, -0.0931786f, -0.00627672f, 0.121929f, 0.0567597f, -0.116728f, -0.153973f, 0.168671f, 0.012132f, -0.102875f, -0.0207535f, 0.1096f, 0.141454f, 0.168463f, -0.00991664f, -0.140812f, 0.142667f, -0.163534f, -0.0241681f, -0.0363509f, -0.0414993f, -0.0474542f, -0.083034f, 0.272727f, -0.0942938f, 0.108511f, 0.0801499f, 0.0806877f, -0.0184158f, -0.204715f, 0.0241207f, 0.0344737f, 0.00947122f, 0.00305062f, 0.128818f, -0.134307f, 0.0819853f, -0.0476159f, 0.0133897f, -0.202243f, 0.0127171f, 0.240199f, -0.233596f, -0.155963f, 0.137332f, -0.0556008f, 0.00397725f, -0.134175f, 0.148555f, -0.158841f, 0.066036f, -0.131459f, -0.00229082f, -0.115532f, -0.00603867f, 0.00304451f, -0.14632f, 0.0401286f, -0.20836f, -0.000158577f, -0.214765f, 0.230341f, -0.149102f, 0.246656f, -0.118341f, -0.0580626f, 0.0241684f, -0.169873f, -0.085138f, -0.150616f, 0.168112f, -0.170736f, -0.176598f, 0.0481099f, -0.0598883f, -0.0900117f, -0.0326007f, 0.0021824f, 0.0797464f, 0.190246f, 0.107856f, 0.048959f, -0.0250445f, 0.15474f, 0.0973701f, -0.0634326f, -0.018711f, -0.116704f, -0.0939782f, 0.0565335f, -0.0692969f, 0.101306f, -0.0550737f, -0.0926367f, -0.128925f, 0.0688104f, 0.0887423f, -0.061749f, 0.224574f, -0.0829564f, 0.173175f, -0.0177557f, -0.255542f, -0.186988f, 0.159127f, -0.237438f, -0.0833017f, -0.266758f, -0.158993f, -0.161827f, -0.153698f, 0.142617f, -0.0291436f, 0.171634f, 0.00482081f, 0.282849f, -0.16002f, -0.000389525f, 0.097071f, -0.019311f, 0.203957f, -0.0371627f, -0.0380892f, 0.0554604f, 0.14775f, 0.037602f, 0.044362f, -0.12086f, -0.0500663f, -0.15318f, 0.0447053f, -0.0595283f, 0.14943f, 0.211136f, -0.174395f, -0.0462047f, -0.0873513f, 0.078525f, 0.00152051f, 0.0283307f, 0.00742602f, 0.000105432f, 0.0446044f, 0.0680826f, 0.137216f, 0.0174082f, -0.0306015f, 0.0416088f, 0.280707f, -0.0228458f, -0.118425f, 0.188051f, 0.064893f, 0.0240839f, -0.155063f, 0.0122635f, -0.0402206f, -0.0840985f, 0.168562f, -0.0385414f, 0.0201139f, 0.163548f, -0.0894806f, 0.116263f, -0.0819605f, 0.0331898f, -0.0276947f, -0.0193515f, -0.0245814f, -0.0210363f, 0.0734637f, -0.0736964f, -0.110999f, 0.132281f, -0.175408f, -0.0139733f, 0.00116935f, -0.0990147f, -0.153351f, -0.027801f, 0.0536297f, 0.199673f, -0.0184051f, -0.0622853f, 0.0185278f, -0.106946f, -0.0267594f, 0.158078f, 0.0167425f, -0.126245f, -0.0197781f, 0.185526f, 0.0304948f, -0.0868914f, 0.0718195f, -0.0769555f, 0.140874f, 0.0367697f, 0.0401547f, 0.106819f, -0.0574486f, 0.0641038f, -0.0853316f, 0.0524542f, -0.0359786f, 0.0438395f, 0.0524392f, 0.172157f, 0.0342f, -0.145477f, -0.181342f, -0.0625775f, -0.0892063f, 0.119897f, 0.0593957f, -0.106791f, -0.175871f, -0.0237668f, -0.0404401f, 0.114806f, -0.0892579f, -0.0856085f, -0.00711379f, -0.100411f, 0.134122f, 0.00975216f, -0.144333f, 0.127002f, -0.0616611f, 0.0658807f, 0.0135574f, -0.0508542f, -0.113066f, 0.092198f, -0.067799f, -0.0228311f, -0.153046f, 0.138692f, -0.0878966f, 0.071685f, -0.0501236f, -0.0551073f, 0.039359f, -0.0197156f, -0.132783f, 0.124235f, -0.0290036f, 0.0728407f, 0.00308417f, 0.0947693f, -0.0307477f, -0.0147701f, -0.0876078f, -0.108885f, 0.318422f, -0.00486112f, -0.133257f, -0.0194643f, 0.0176729f, -0.0627472f, 0.0670669f, -0.14397f, -0.0479579f, 0.155417f, 0.0481749f, 0.0969019f, 0.0968678f, 0.298631f, -0.0122592f, 0.0088255f, -0.117547f, -0.125186f, -0.0344372f, -0.146289f, -0.205985f, -0.00199592f, -0.000714065f, -0.00187611f, 0.0607413f, 0.00273481f, -0.00379453f, -0.100495f, 0.0826809f, -0.0957994f, -0.0274433f, -0.068349f, 0.202227f, -0.119778f, -0.0580233f, 0.00749748f, 0.0307038f, -0.033686f, 0.000822559f, 0.134103f, 0.1185f, 0.0421782f, 0.0553951f, -0.0388362f, -0.165274f, 0.0509549f, -0.0941619f, 0.0298106f, 0.0531832f, 0.0647982f, -0.123716f, -0.0698767f, 0.0535603f, -0.128195f, -0.106844f, -0.0560393f, 0.0700682f, 0.0752273f, -0.191395f, 0.195913f, 0.00320127f, 0.0177611f, -0.13674f, 0.170608f, 0.20054f, 0.0205667f, 0.0340534f, -0.14437f, 0.0117868f, -0.0554756f, -0.0125971f, 0.0423997f, 0.161717f, -0.0903403f, 0.0426205f, 0.0628597f, -0.0815882f, 0.0119379f, 0.0782414f, -0.0475778f, -0.0723977f, 0.168342f, -0.148326f, -0.0979921f, -0.0808315f, 0.0594566f, -0.0200211f, -0.133901f, 0.0349428f, -0.0492855f, -0.14667f, 0.0595798f, -0.0179134f, -0.153081f, 0.0012427f, 0.0421005f, -0.0652145f, -0.00953449f, -0.0815295f, 0.0441926f, -0.163974f, 0.148041f, -0.0318233f, -0.0466639f, 0.216672f, -0.134082f, -0.0250168f, -0.10862f, -0.0760047f, -0.0561287f, 0.0585746f, 0.14509f, 0.154611f, -0.0974462f, 0.115619f, 0.196529f, -0.0107053f, 0.227579f, 0.0587268f, 0.105576f, 0.0279585f, 0.0865237f, 0.0157029f, 0.0903747f, -0.17209f, -0.105045f, -0.0409423f, 0.0513894f, -0.0039873f, -0.238125f, 0.0883226f, 0.0636619f, 0.00962564f, 0.0450644f, 0.0521392f, -0.0188523f, -0.0733114f, -0.0685069f, -0.00833657f, 0.0629887f, -0.0736464f, 0.123683f, -0.0146919f, -0.0644153f, -0.0715579f, 0.0222682f, -0.05061f, -0.0236079f, -0.0548285f, -0.00393902f, -0.0538801f, -0.22227f, -0.131371f, 0.178355f, -0.121547f, 0.0510108f, -0.211138f, 0.106558f, -0.124376f, 0.076013f, 0.12088f, 0.0284341f, -0.227869f, 0.158846f, 0.19214f, -0.0109324f, -0.11142f, -0.0177806f, -0.0740898f, 0.161417f, 0.114764f, 0.0446405f, -0.102783f, 0.00987663f, -0.187973f, -0.0527608f, -0.150881f, 0.0524475f, -0.0252429f, 0.0555947f, 0.0412838f, -0.109717f, -0.0940596f, 0.0775526f, 0.00771248f, -0.0508709f, -0.179747f, 0.0100287f, -0.0761815f, 0.0280852f, 0.0269325f, 0.0113145f, -0.134104f, -0.013383f, 0.00058377f, -0.031541f, -0.0555039f, -0.289882f, -0.0821728f, -0.0112896f, -0.0429905f, -0.105079f, 0.0702269f, 0.0256705f, 0.000800573f, 0.130255f, -0.00827064f, -0.0122253f, 0.193887f, -0.0923589f, 0.0207566f, 0.0300986f, 0.0905668f, -0.223677f, -0.149895f, 0.0555001f, 0.0518961f, -0.0768805f, -0.00767011f, -0.0451356f, -0.128196f, 0.0063824f, 0.00263389f, 0.130707f, -0.207943f, -0.0468802f, 0.0142501f, -0.107607f, -0.0228866f, 0.14643f, -0.0356652f, 0.0564044f, -0.0163831f, -0.0507091f, 0.0119905f, 0.13544f, -0.0482565f, -0.0912668f, 0.042264f, 0.0673433f, -0.0514909f, -0.112854f, 0.170635f, -0.0232848f, -0.132877f, 0.0985362f, -0.0408998f, -0.0644797f, 0.0189794f, -0.0139826f, -0.0218351f, -0.00644605f, -0.0422478f, -0.127483f, -0.147685f, -0.172797f, -0.0968518f, 0.102459f, -0.1448f, 0.0972241f, 0.156348f, -0.0390154f, -0.0869973f, -0.128615f, -0.0623792f, -0.0220062f, 0.17165f, -0.0420457f, 0.0346746f, -0.0237016f, -0.0297241f, -0.131507f, 0.204132f, -0.0682617f, 0.114419f, -0.0168592f, 0.155897f, 0.155512f, -0.110385f, 0.0249871f, 0.0419896f, 0.0877675f, -0.119978f, 0.173832f, -0.0580263f, 0.0798429f, -0.101593f, 0.0803923f, -0.0390859f, -0.0135289f, 0.0739236f, -0.0082712f, -0.0507593f, -0.09817f, 0.115555f, -0.26319f, -0.0422833f, 0.0918714f, -0.0287472f, 0.159888f, -0.177445f, -0.0142653f, 0.148746f, -0.0666919f, -0.143973f, 0.0178136f, -0.0942749f, -0.0109884f, 0.0204689f, -0.078137f, -0.00545804f, 0.057541f, 0.129489f, 0.144217f, 0.0691913f, -0.0501373f, -0.0608932f, 0.0963038f, -0.0387921f, -0.239682f, 0.00700226f, 0.0889072f, -0.0482629f, -0.0375906f, -0.0428905f, -0.043042f, -0.0499897f, 0.17331f, 0.0418082f, 0.204331f, -0.0293846f, 0.0749428f, 0.0869465f, -0.119549f, -0.0973724f, -0.0163201f, -0.160903f, 0.0487903f, 0.0722507f, -0.0528047f, 0.175427f, -0.206976f, -0.178237f, 0.0681885f, 0.0445771f, 0.0201059f, -0.133291f, -0.0399525f, -0.0845608f, 0.105667f, -0.0899088f, -0.0915517f, 0.0277973f, -0.00097549f, -0.125427f, 0.0424838f, 0.0409067f, -0.0494729f, 0.131671f, 0.177682f, -0.224521f, -0.0175696f, 0.00146095f, 0.357209f, 0.0917846f, -0.205071f, 0.0870294f, -0.0337584f, 0.0287315f, 0.117156f, 0.00794198f, 0.0939632f, -0.0120976f, -0.0712052f, -0.0127147f, 0.041906f, -0.0887179f, 0.0161892f, 0.175041f, -0.156219f, -0.136175f, 0.0445154f, -0.0534381f, -0.160449f, 0.405605f, 0.05152f, -0.31457f, -0.0563177f, 0.0666622f, 0.0160943f, -0.0414803f, 0.0197037f, -0.109994f, -0.0868953f, -0.167054f, 0.0844248f, -0.0905383f, 0.101818f, 0.123456f, -0.0383251f, 0.238487f, 0.236496f, -0.0735164f, -0.0767743f, -0.104945f, -0.0198792f, -0.0108017f, -0.151347f, 0.153702f, -0.157542f, 0.0122239f, -0.114992f, 0.146488f, -0.0623173f, 0.0409465f, -0.1345f, -0.0119238f, -0.0865045f, 0.0747588f, -0.0527696f, -0.0730928f, 0.273919f, 0.122946f, 0.0400861f, -0.0639379f, -0.0723632f, -0.0138082f, -0.0388548f, -0.0143725f, 0.0644669f, -0.0261911f, 0.0766422f, 0.157501f, -0.0725805f, 0.0464801f, 0.00806647f, -0.15606f, 0.24979f, -0.217454f, 0.0778076f, -0.0649711f, -0.256529f, -0.0626824f, -0.161079f, -0.0145818f, -0.235829f, 0.458461f, 0.125503f, -0.00959794f, 0.159846f, -0.136046f, -0.139577f, 0.0600957f, 0.144013f, -0.0650557f, 0.000900901f, 0.0205026f, 0.0691701f, -0.0314876f, 0.105912f, 0.17721f, -0.243896f, 0.0156671f, -0.0108493f, -0.0254291f, -0.11545f, -0.00105661f, -0.359709f, -0.0567618f, 0.208503f, 0.00184207f, 0.0580653f, -0.115835f, 0.324289f, -0.130781f, -0.311519f, -0.208448f, 0.0662312f, 0.221811f, -0.150922f, -0.148931f, -0.176428f, -0.0554201f, -0.0999012f, -0.10554f, 0.0811755f, -0.080454f, 0.112872f, 0.0371593f, -0.0600914f, -0.0813469f, 0.211249f, 0.0134313f, 0.0957573f, 0.0698043f, 0.040471f, 0.0290197f, -0.178353f, 0.0204874f, -0.074114f, -0.00552784f, -0.0321799f, 0.209832f, -0.0879905f, 0.122095f, 0.0592236f, -0.0257337f, 0.208571f, 0.0973462f, -0.0638894f, 0.0787943f, 0.0910796f, -0.0812608f, 0.0453454f, 0.0135237f, 0.0480227f, -0.106027f, 0.184867f, -0.0800246f, -0.150862f, -0.12984f, 0.032506f, 0.186653f, 0.104427f, -0.10076f, -0.0288586f, 0.0122813f, -0.0355089f, -0.122595f, 0.185874f, 0.12931f, -0.188433f, -0.0782702f, -0.142728f, 0.11754f, 0.0555057f, 0.19492f, 0.174191f, -0.236969f, 0.0681622f, 0.0588558f, 0.143075f, -0.163506f, -0.0130185f, -0.133933f, -0.104715f, -0.0589563f, -0.0181123f, 0.108893f, 0.153337f, 0.0124573f, 0.0666685f, -0.220255f, 0.144238f, -0.174256f, 0.0372505f, -0.129256f, -0.0906914f, 0.283038f, -0.121158f, -0.269899f, 0.143989f, -0.143359f, 0.18222f, 0.047279f, 0.0114759f, 0.221316f, 0.128741f, -0.0532649f, -0.123263f, 0.161838f, -0.322025f, -0.0681294f, -0.0429934f, 0.117271f, -0.0101739f, 0.416406f, -0.114141f, 0.107041f, -0.0481185f, 0.151786f, 0.0137178f, -0.0433332f, 0.0490039f, 0.141736f, 0.120339f, -0.0700756f, 0.234786f, 0.0117061f, 0.0750102f, -0.107027f, 0.00548145f, -0.032869f, 0.0607412f, 0.00189953f, 0.0364946f, -0.10127f, 0.0347253f, -0.111197f, 0.137859f, 0.00255053f, 0.0585662f, -0.0408941f, 0.153659f, -0.00138605f, 0.26639f, -0.0524038f, 0.0824472f, 0.00805261f, -0.0295308f, -0.110829f, 0.21016f, -0.116352f, -0.196126f, -0.0200174f, 0.015666f, -0.0427855f, 0.00406471f, 0.239552f, 0.035584f, -0.0782894f, -0.153124f, -0.0292628f, -0.164806f, 0.199642f, 0.0353346f, 0.156128f, 0.101292f, 0.0992988f, -0.00765663f, -0.0735132f, -0.172929f, -0.0901967f, -0.0313614f, 0.115983f, -0.113361f, -0.0939422f, 0.158834f, 0.14378f, 0.0338866f, -0.126657f, -0.090584f, 0.060508f, 0.0481025f, -0.138355f, -0.128938f, 0.0808237f, 0.105738f, 0.101854f, 0.213328f, 0.0529167f, -0.0450671f, 0.231248f, -0.0555652f, -0.0252451f, -0.0938335f, -0.106556f, -0.0673156f, -0.159122f, 0.0668651f, 0.231066f, 0.022556f, -0.0345181f, 0.0223513f, 0.0143652f, -0.228175f, -0.0993092f, -0.133077f, -0.0354212f, 0.0500261f, 0.000435284f, 0.114776f, 0.191618f, 0.125592f, -0.147252f, 0.107027f, -0.150121f, -0.0662017f, -0.0972441f, 0.101377f, -0.144585f, 0.00439108f, -0.00169896f, -0.0204515f, -0.163559f, -0.0511778f, 0.0228757f, -0.132336f, -0.125071f, 0.127728f, 0.15455f, 0.158364f, 0.0463436f, -0.0823704f, 0.23777f, 0.234598f, -0.142476f, 0.0705076f, 0.0526125f, 0.0114701f, -0.123984f, 0.0995382f, 0.0478126f, -0.177992f, -0.0251941f, 0.243228f, -0.135244f, 0.213393f, 0.0987844f, 0.282513f, -0.149948f, -0.0797349f, -0.153416f, -0.0799953f, 0.121741f, -0.00319967f, -0.0261554f, -0.135651f, -0.0906362f, -0.0852718f, 0.0150184f, 3.68072e-05f, -0.0311242f, -0.0342841f, -0.00726539f, -0.126431f, 0.150583f, -0.00929189f, -0.0623937f, 0.0149338f, 0.0298923f, 0.0836483f, 0.054943f, -0.11361f, -0.0899753f, 0.0712996f, 0.161842f, 0.183886f, 0.0308758f, 0.0597281f, 0.0136864f, 0.000877841f, -0.0425316f, 0.0612845f, 0.219139f, 0.28989f, -0.012387f, -0.0483026f, 0.0258183f, -0.121125f, 0.0721225f, -0.197458f, 0.0726739f, 0.0914858f, 0.136145f, -0.172077f, 0.0236081f, 0.121268f, 0.0320488f, 0.138009f, 0.0205142f, 0.148218f, 0.146621f, -0.0182045f, -0.254397f, 0.00795611f, 0.0980241f, 0.0214081f, -0.0252385f, 0.139745f, 0.0121444f, 0.027219f, -0.118547f, -0.0273713f, 0.0119313f, -0.0515487f, 0.0240318f, -0.0805956f, -0.0405072f, -0.106531f, 0.0497751f, 0.0234121f, -0.213163f, -0.11793f, -0.107483f, -0.153266f, 0.0926966f, 0.00166002f, -0.0856243f, -0.181498f, -0.0660247f, 0.0833079f, -0.0982948f, 0.0963661f, -0.215837f, -0.0362372f, -0.0292767f, -0.00906306f, -0.0489731f, 0.0341237f, 0.0971791f, -0.0202075f, 0.00904389f, -0.210501f, 0.0122894f, 0.0389374f, -0.170206f, -0.1076f, -0.154773f, -0.146302f, -0.0685345f, 0.0220049f, -0.231177f, -0.0243052f, 0.0075945f, -0.257669f, -0.0520128f, 0.000474555f, 0.200492f, 0.151762f, 0.0383376f, -0.207333f, 0.0811653f, 0.0392651f, 0.0114257f, 0.209357f, 0.056636f, 0.0491447f, -0.0574764f, -0.0359157f, -0.00491267f, -0.116846f, 0.026463f, -0.0248237f, 0.0401941f, -0.0112921f, -0.207017f, -0.0833336f, -0.0955861f, -0.172327f, -0.11021f, 0.199199f, -0.221201f, -0.0807728f, 0.0605713f, -0.0425484f, 0.0126855f, -0.0200159f, -0.216793f, -0.122868f, -0.10928f, -0.0727643f, 0.103443f, -0.111455f, -0.0123521f, 0.0363f, -0.0275946f, -0.0768071f, -0.0472249f, -0.0896215f, -0.108708f, -0.0219951f, 0.0750374f, 0.056047f, 0.176318f, 0.180124f, 0.0987049f, -0.200576f, 0.0651989f, -0.0445159f, 0.154987f, -0.0713356f, 0.0638341f, 0.0452184f, -0.0353226f, 0.0733741f, -0.0112321f, 0.0367117f, -0.132554f, 0.0246231f, 0.00709142f, 0.0711163f, 0.0149171f, -0.0233845f, 0.0817173f, -0.202082f, -0.0407902f, -0.186927f, 0.113033f, -0.0836276f, 0.136754f, 0.125772f, -0.121939f, -0.0622305f, -0.00496626f, 0.0216741f, -0.12356f, 0.0255447f, 0.0563804f, 0.147656f, -0.0937318f, 0.0426187f, -0.120184f, -0.074532f, 0.0840411f, -0.044298f, 0.0424875f, 0.157557f, -0.0771899f, -0.0618333f, 0.160925f, -0.021509f, -0.192828f, 0.219865f, 0.122317f, 0.00538064f, 0.0757865f, 0.0696988f, -0.0711286f, -0.0232715f, -0.022203f, 0.0158991f, 0.0286597f, -0.152768f, -0.137952f, -0.0523962f, 0.209521f, 0.0683392f, -0.113373f, -0.0767182f, 0.189373f, -0.0198453f, 0.0158168f, 0.0122734f, -0.130464f, 0.0356898f, -0.106268f, 0.0935989f, -0.00480819f, 0.0809642f, 0.0150266f, 0.0675878f, -0.0682795f, 0.128513f, 0.0344129f, -0.0162287f, 0.185773f, -0.086718f, -0.145212f, 0.0995659f, 0.032668f, -0.0417381f, -0.0597247f, 0.20001f, -0.255222f, 0.0402163f, 0.0330269f, 0.0411273f, 0.0443436f, -0.0242788f, 0.267018f, -0.105565f, -0.00748973f, -0.140651f, 0.134422f, -0.161541f, 0.0239118f, -0.0227271f, -0.0824803f, 0.0888378f, 0.232287f, -0.0838032f, 0.00356775f, 0.103718f, 0.082431f, -0.014111f, -0.109378f, -0.0131756f, -0.0889906f, 0.0672103f, 0.157277f, 0.00334455f, -0.133683f, 0.0516266f, 0.0555824f, -0.243177f, 0.0338101f, -0.0684031f, -0.0827386f, -0.0830233f, -0.0713019f, 0.00848532f, 0.00639945f, -0.0363687f, 0.14282f, 0.225687f, -0.131437f, -0.0182314f, 0.0786235f, -0.144743f, -0.138006f, 0.153637f, 0.11445f, -0.044378f, -0.0537786f, 0.115877f, 0.198219f, -0.0555005f, 0.118595f, 0.00588381f, 0.0468164f, 0.0435658f, -0.012247f, -0.147867f, 0.0022836f, -0.0205276f, 0.120153f, -0.00525706f, 0.0175812f, 0.00363506f, 0.00977753f, -0.0879092f, -0.115218f, 0.0852552f, 0.357854f, -0.0842007f, 0.123229f, -0.122962f, -0.154037f, 0.0133478f, 0.0251942f, 0.00651633f, 0.200679f, -0.108869f, -0.102404f, -0.0345839f, -0.00655164f, -0.0271204f, -0.209987f, -0.226196f, -0.0848124f, 0.0269947f, 0.00306938f, 0.318811f, 0.000952163f, -0.00616057f, 0.0647389f, 0.108848f, 0.221428f, 0.053013f, 0.0504239f, 0.0373651f, -0.0383586f, 0.0622633f, -0.0397f, -0.0680115f, -0.0431908f, 0.00660335f, 0.112697f, 0.112304f, -0.109426f, 0.115178f, -0.103223f, -0.160673f, -0.127099f, 0.0484339f, -0.0265824f, -0.176909f, 0.0160245f, 0.0826961f, -0.0284348f, 0.00613369f, 0.034423f, -0.118719f, -0.00157621f, 0.0223717f, 0.0945379f, -0.0985149f, -0.0948143f, 0.0138575f, -0.0216409f, 0.016571f, 0.0586026f, 0.111625f, -0.0102654f, 0.0475265f, 0.0957405f, -0.0656165f, -0.129784f, -0.145836f, 0.216241f, 0.0285593f, -0.0574556f, -0.0979729f, -0.216172f, -0.0952257f, -0.0577887f, -0.197153f, 0.136749f, 0.0754692f, -0.0347098f, -0.0263047f, -0.0589381f, 0.188814f, 0.0370195f, 0.0444167f, 0.0774095f, 0.0888526f, -0.0311954f, 0.0709315f, 0.186007f, -0.0828108f, -0.0333048f, 0.135176f, -0.137163f, -9.72907e-06f, 0.102028f, -0.0246321f, 0.0766301f, 0.0328157f, 0.0749551f, -0.0755728f, -0.042562f, -0.166893f, 0.0284358f, -0.0753299f, 0.0669169f, -0.0621802f, -0.11943f, -0.0196639f, 0.284988f, -0.044379f, 0.123542f, -0.0933837f, 0.0491717f, 0.154487f, -0.105766f, -0.0558069f, -0.0789101f, 0.0609245f, 0.189722f, -0.0879013f, 0.0978426f, -0.0850266f, -0.0422449f, -0.0868057f, -0.151081f, -0.226733f, 0.0803912f, 0.00963196f, -0.0680168f, 0.217392f, -0.191059f, -0.0548785f, 0.0200865f, 0.0594346f, 0.145336f, 0.0527411f, -0.153351f, 0.0429112f, 0.0818892f, -0.0604589f, -0.10526f, -0.0434667f, -0.195525f, -0.0546297f, 0.0320194f, 0.204689f, 0.0283199f, -0.058883f, 0.0501378f, -0.0778798f, -0.00697093f, -0.0435824f, 0.0966037f, -0.104078f, 0.0156023f, -0.0622345f, -0.104194f, -0.0587034f, 0.0244428f, 0.114493f, -0.0152548f, 0.175433f, -0.0889857f, 0.0146419f, -0.262385f, -0.0866481f, 0.159949f, -0.0916349f, 0.0247122f, -0.182483f, -0.0462954f, 0.106467f, 0.0889339f, -0.154921f, -0.297484f, -0.0128512f, -0.240922f, -0.0416697f, -0.0161583f, -0.0560634f, -0.116215f, -0.184253f, -0.0259536f, 0.019141f, -0.202743f, 0.183928f, 0.0997749f, -0.0629391f, -0.215606f, -0.0552396f, -0.135548f, 0.01526f, -0.0809986f, -0.228519f, -0.0482703f, -0.0448411f, 0.103939f, 0.0189637f, -0.0516391f, -0.294656f, 0.0841798f, 0.0655252f, -0.157981f, 0.0207654f, 0.163637f, 0.116023f, 0.0254474f, -0.120273f, -0.0426071f, 0.0588636f, 0.243171f, 0.273274f, 0.08359f, 0.161967f, -0.142439f, 0.122168f, -0.0012538f, 0.0645633f, -0.0257654f, 0.0783585f, 0.108383f, -0.0190545f, 0.0570725f, -0.0453281f, 0.0856004f, -0.122276f, -0.113477f, 0.0564108f, 0.201613f, 0.0282547f, -0.174413f, 0.150408f, 0.166037f, -0.0317328f, -0.0836129f, 0.11263f, 0.379297f, -0.238953f, 0.339715f, -0.0963607f, 0.230073f, 0.0498075f, -0.169292f, 0.0333342f, 0.0592937f, 0.078548f, 0.0132273f, 0.0303038f, -0.133253f, 0.073313f, 0.0888489f, 0.0753596f, 0.0714417f, 0.0641927f, 0.0387795f, 0.0560026f, 0.208401f, 0.0419936f, 0.224764f, -0.160069f, 0.087539f, 0.305188f, -0.0168002f, -0.0343021f, 0.0332071f, 0.0598841f, -0.154553f, -0.176583f, -0.0317519f, -0.171759f, 0.20921f, 0.0059062f, 0.14578f, -0.0666086f, 0.0325929f, 0.0852801f, -0.0399023f, 0.0133877f, -0.188404f, -0.0295242f, -0.0191069f, 0.037986f, 0.058008f, 0.079138f, 0.0170797f, 0.0695405f, -0.100281f, -0.06167f, -0.0697187f, -0.109632f, 0.117558f, 0.0817223f, 0.0894463f, -0.132827f, 0.00908475f, -0.0608265f, -0.113814f, 0.08569f, -0.177825f, -0.0989654f, -0.133083f, 0.191982f, -0.00755969f, -0.230259f, -0.245666f, -0.22262f, -0.110067f, 0.0261768f, -0.128775f, 0.00254506f, -0.0506776f, 0.0804035f, 0.0537815f, 0.096147f, 0.114902f, 0.150439f, -0.124831f, 0.0983987f, 0.136685f, -0.0937499f, -0.049423f, -0.01557f, -0.103184f, -0.0122431f, 0.109369f, 0.0203921f, -0.0560634f, -0.0618654f, -0.106403f, -0.0200481f, 0.0486344f, -0.161958f, -0.0668643f, 0.0120449f, -0.118691f, 0.0509635f, -0.0108247f, 0.0288176f, 0.212306f, -0.141356f, -0.0306309f, 0.100657f, 0.132191f, 0.0721481f, 0.0677502f, -0.0132273f, 0.0822807f, 0.0327546f, -0.0272315f, 0.0792985f, 0.0364179f, -0.0632634f, 0.0100233f, 0.036175f, -0.0240008f, 0.100611f, -0.11911f, 0.0429969f, -0.117442f, 0.446626f, 0.071303f, 0.0914292f, -0.35149f, 0.109069f, -0.0883922f, -0.0880841f, 0.102478f, -0.121611f, -0.147848f, 0.200072f, -0.0783711f, 0.268418f, -0.101603f, 0.0694437f, 0.186723f, -0.21823f, -0.127505f, 0.104119f, -0.143438f, -0.0470628f, -0.12815f, 0.133657f, -0.022076f, -0.0608596f, 0.00201063f, -0.0491142f, 0.149097f, -0.0866802f, -0.0293917f, 0.114031f, -0.0066316f, 0.0369544f, -0.204057f, 0.137821f, 0.103844f, 0.101438f, -0.117631f, 0.0739616f, -0.0775173f, 0.0695207f, -0.103129f, -0.00704043f, -0.0429268f, -0.0046768f, -0.0056799f, 0.0329506f, 0.108385f, -0.171617f, -0.131915f, -0.0101222f, -0.0646454f, -0.0577304f, 0.0125864f, -0.0394981f, 0.182653f, 0.0831575f, 0.0179748f, -0.121934f, -0.0269135f, -0.0572734f, 0.0942062f, -0.0838615f, -0.149066f, -0.071867f, 0.117971f, -0.107909f, -0.0653971f, -0.0571575f, -0.124902f, -0.102664f, 0.13688f, 0.0633133f, -0.081855f, -0.150857f, -0.145064f, -0.0632952f, 0.00775685f, 0.058907f, 0.019796f, 0.396021f, -0.18016f, -0.0388267f, 0.153961f, -0.0128432f, 0.109044f, 0.00572861f, -0.0733565f, -0.0326919f, -0.0245072f, 0.20942f, 0.148536f, 0.0050863f, 0.0964829f, -0.125741f, 0.0381211f, 0.151392f, 0.151529f, 0.113301f, 0.00306777f, -0.0295622f, -0.0382201f, 0.0247666f, -0.0939084f, -0.0221941f, -0.0240633f, 0.0639327f, 0.0268376f, 0.229596f, 0.0615842f, -0.00168066f, -0.0686892f, 0.0184833f, 0.173669f, 0.00828543f, -0.0107814f, -0.0904962f, -0.0321763f, 0.01328f, -0.212664f, 0.18386f, -0.125313f, -0.152829f, -0.186354f, -0.0477214f, 0.0869481f, 0.116316f, -0.0310279f, 0.0537256f, -0.218381f, -0.0878297f, -0.104659f, 0.229206f, 0.00631544f, -0.0572249f, 0.00601136f, -0.188456f, 0.016944f, 0.0229693f, -0.171325f, 0.0408011f, -0.0195363f, -0.0715655f, -0.0217787f, 0.145226f, -0.107176f, -0.263147f, 0.165961f, 0.0102362f, -0.0229898f, -0.0251168f, 0.185714f, -0.0869575f, -0.0761281f, -0.11271f, 0.133479f, -0.0845218f, -0.122405f, 0.0417904f, 0.126873f, -0.0749783f, 0.126611f, 0.0576366f, -0.0780508f, -0.225898f, -0.0975469f, -0.0461351f, -0.192043f, 0.0984307f, 0.0522386f, -0.18418f, -0.071731f, -0.0960104f, 0.175943f, -0.161906f, 0.0966099f, -0.0305969f, 0.248326f, 0.0378677f, -0.0449952f, -0.0403057f, 0.00501041f, 0.0513849f, 0.0047577f, -0.111295f, 0.0132747f, 0.0703191f, -0.0195444f, 0.0812558f, 0.0561511f, -0.105431f, 0.0412991f, -0.0656077f, -0.0567724f, -0.0878257f, 0.101977f, -0.0801457f, -0.0307709f, -0.132961f, 0.163846f, -0.0703757f, 0.0143396f, -0.00755406f, 0.0446215f, 0.00735532f, 0.117662f, -0.0239123f, 0.0413377f, -0.0709962f, 0.207392f, 0.141123f, -0.0125069f, 0.0714098f, 0.0580421f, 0.00401899f, 0.0677094f, -0.104459f, -0.270741f, -0.159289f, 0.0368798f, -0.00109321f, 0.0514158f, 0.0482748f, -0.0497413f, 0.087428f, -0.044455f, -0.0387729f, 0.0230658f, -0.0793385f, -0.0333717f, -0.083848f, 0.0999091f, 0.0324784f, 0.0507846f, 0.112553f, 0.0474259f, -0.107154f, 0.0836596f, -0.161561f, -0.0119505f, 0.0361307f, -0.182404f, -0.0932225f, 0.144103f, -0.0106019f, -0.0648665f, -0.0475832f, 0.112428f, -0.0918963f, 0.108373f, 0.00124151f, -0.0209223f, -0.100533f, 0.0895464f, -0.032249f, 0.0156716f, -0.236358f, 0.0841756f, -0.253543f, -0.0550806f, -0.0588141f, -0.0122164f, -0.262067f, -0.147667f, -0.0511385f, -0.103974f, -0.0136045f, 0.131096f, 0.0420732f, 0.148806f, -0.12426f, -0.0476342f, 0.0127487f, 0.0979078f, 0.0601732f, -0.0966016f, -0.0803332f, 0.0290166f, -0.0899533f, -0.071005f, -0.0296443f, 0.0592852f, 0.104549f, 0.125489f, -0.0220136f, -0.182688f, -0.277448f, -0.0681473f, -0.0424906f, -0.0114293f, -0.19017f, -0.0340557f, 0.20755f, -0.112545f, 0.113908f, 0.0446206f, -0.0734534f, 0.0441463f, -0.173343f, -0.216557f, 0.131627f, 0.109263f, -0.0332265f, -0.0729538f, -0.0436619f, 0.00349081f, -0.00582956f, 0.0297014f, -0.114783f, -0.0546823f, -0.143495f, -0.0872718f, -0.189484f, 0.0402368f, -0.0224618f, 0.118496f, 0.171018f, 0.0151687f, 0.000993603f, -0.106997f, 0.106246f, 0.138358f, 0.0730318f, 0.0199712f, -0.126654f, 0.263643f, 0.0527359f, -0.0431785f, -0.0306719f, 0.203893f, -0.0608219f, -0.11259f, 0.108001f, -0.0781032f, -0.0801786f, 0.0992843f, 0.0311004f, 0.0971961f, -0.0822462f, -0.0481074f, 0.00535221f, 0.0194108f, -0.0654009f, -0.0876883f, -0.132412f, -0.0569926f, 0.0371606f, 0.0538073f, -0.183002f, 0.109114f, -0.127318f, 0.0657723f, -0.0653582f, -0.0349506f, 0.0130526f, -0.0706685f, 0.0445258f, 0.210053f, -0.144348f, 0.0242307f, 0.0697429f, 0.0395748f, -0.216627f, 0.0519109f, -0.0944043f, 0.158914f, 0.0192884f, 0.0917788f, -0.132352f, 0.0168666f, 0.284775f, -0.0451265f, 0.0881386f, 0.202309f, 0.211836f, 0.156951f, -0.195532f, 0.258756f, -0.0565134f, 0.0764333f, -0.000609143f, 0.0363946f, -0.0317322f, -0.190638f, 0.0189388f, 0.101127f, 0.0785907f, -0.0187253f, -0.273112f, -0.0336194f, 0.0374148f, 0.13758f, 0.0966143f, -0.00627604f, 0.0890253f, -0.0320152f, -0.0249125f, 0.131104f, 0.105946f, 0.0790575f, 0.0113031f, 0.031921f, -0.00264151f, -0.0280439f, 0.304056f, -0.240747f, -0.00670798f, 0.0554707f, 0.0993161f, -0.0674975f, -0.124822f, -0.169349f, -0.043462f, 0.120356f, 0.123421f, -0.126956f, -0.0573173f, -0.0774267f, 0.127057f, 0.00293596f, -0.0241221f, -0.087143f, -0.19289f, 0.00356176f, 0.100542f, 0.0062679f, -0.0841197f, -0.216154f, 0.152112f, 0.0729014f, -0.121993f, -0.230426f, 0.20797f, 0.0519591f, 0.224496f, 0.111801f, -0.0997421f, -0.0137804f, 0.0446048f, 0.0638643f, -0.0950324f, 0.147183f, 0.253647f, 0.0651162f, 0.133134f, -0.00553575f, 0.0545617f, -0.108347f, -0.130801f, 0.100144f, 0.145607f, -0.00246191f, 0.0169469f, -0.0152367f, 0.0589658f, 0.112648f, -0.0315224f, -0.0297944f, -0.00225017f, 0.0022918f, 0.151435f, 0.127193f, -0.0197661f, 0.0259622f, -0.07459f, -0.165042f, 0.268741f, 0.0164221f, 0.0459571f, 0.123465f, -0.0738573f, 0.137981f, 0.00492393f, 0.225205f, -0.0510024f, -0.00245063f, 0.0503404f, 0.0793742f, -0.0447948f, -0.152614f, -0.155518f, -0.16896f, -0.00886526f, 0.0527778f, 0.0110067f, -0.199879f, -0.0629973f, -0.180933f, 0.0873835f, -0.0423058f, 0.0110597f, -0.000905161f, -0.184f, -0.100779f, -0.00643676f, 0.189737f, 0.0173623f, -0.0922063f, 0.000428624f, 0.146104f, -0.122513f, 0.138097f, 0.175645f, 0.30501f, 0.00269911f, 0.106613f, 0.0232939f, 0.25627f, 0.14297f, -0.113535f, -0.0717785f, -0.0456997f, 0.10658f, -0.114861f, -0.068413f, 0.137328f, 0.102416f, 0.0225132f, -0.0522963f, 0.13743f, 0.057168f, -0.214224f, 0.067503f, -0.0462f, 0.102618f, -0.101329f, 0.218076f, 0.0872444f, 0.0544737f, 0.125956f, -0.0649005f, -0.0843118f, -0.0649808f, 0.067057f, -0.128607f, -0.0791736f, -0.0349004f, 0.0691937f, 0.169448f, -0.163073f, -0.0141121f, -0.0197376f, 0.153377f, 0.0773375f, 0.12747f, 0.0775072f, -0.162882f, -0.0230796f, -0.176576f, 0.048125f, -0.0848518f, 0.0261002f, 0.0111706f, -0.0629699f, -0.170588f, 0.0145667f, 0.136725f, -0.0261052f, 0.108405f, 0.137315f, 0.0220671f, 0.135738f, -0.0720496f, 0.0737921f, -0.0443706f, 0.188056f, 0.0504857f, -0.0476232f, 0.10816f, -0.134815f, 0.264522f, -0.121069f, 0.0104572f, 0.0235702f, 0.137875f, -0.145245f, -0.00708293f, 0.0451368f, 0.0782465f, -0.0427848f, -0.10661f, -0.0413354f, 0.0364122f, 0.117776f, 0.0990263f, -0.0397885f, 0.106596f, -0.0174603f, -0.179452f, 0.0865405f, 0.0394526f, 0.0306669f, 0.0467135f, 0.0148987f, 0.165343f, 0.108624f, -0.0730109f, 0.145643f, -0.0456582f, -0.250409f, -0.12379f, -0.0213089f, -0.0803067f, 0.146683f, 0.104774f, -0.0438495f, -0.0426579f, 0.116624f, -0.141552f, 0.134403f, -0.00362328f, -0.0907629f, 0.0283074f, 3.41923e-05f, 0.0154695f, -0.0120342f, 0.077358f, -0.102492f, -0.0465372f, -0.0945223f, -0.142575f, 0.000122396f, 0.046706f, -0.153884f, 0.0377637f, 0.0436464f, 0.0386497f, 0.100053f, 0.0434666f, 0.0403755f, -0.022458f, 0.0134163f, -0.117518f, -0.00589774f, 0.0628028f, -0.0558113f, 0.0789134f, -0.0460346f, -0.0697929f, -0.00408166f, 0.107804f, 0.19008f, 0.0419746f, 0.0247535f, 0.0615023f, -0.0273986f, 0.0584707f, -0.0842374f, 0.00707469f, 0.16493f, -0.103012f, -0.0392436f, 0.086145f, -0.09123f, -0.0940512f, -0.0438639f, 0.0652563f, 0.0169545f, -0.113903f, 0.0467098f, -0.0273303f, 0.0483013f, -0.167889f, 0.0200969f, 0.119547f, -0.116591f, -0.142864f, -0.176393f, -0.249275f, -0.127855f, 0.00933846f, -0.0444293f, -0.0483954f, 0.11528f, 0.000688011f, 0.00869329f, -0.0110987f, 0.0467214f, 0.118109f, 0.0123708f, -0.130755f, -0.0675954f, 0.00111401f, 0.106324f, 0.234592f, 0.0273304f, -0.125129f, 0.0151834f, 0.0651777f, -0.0134312f, 0.0902519f, -0.060481f, -0.0499286f, -0.117755f, 0.0518319f, 0.00245419f, -0.161492f, -0.00739135f, 0.0575747f, -0.00689044f, 0.0078162f, 0.0501585f, -0.113414f, 0.0514425f, -0.0273268f, 0.0646964f, 0.185915f, 0.0246585f, -0.0335896f, 0.0559654f, -0.122355f, 0.109542f, -0.0614042f, 0.0415823f, -0.214942f, 0.0902958f, 0.175897f, 0.191833f, 0.024399f, -0.179295f, -0.123777f, -0.0474695f, 0.0743102f, 0.0801668f, 0.0682527f, -0.101834f, -0.02525f, -0.0303721f, -0.0385684f, 0.295349f, 0.119802f, -0.0613019f, 0.0359793f, -0.130186f, -0.143131f, 0.250622f, 0.0176827f, -0.15506f, 0.0683107f, 0.0573783f, 0.135917f, -0.00513822f, 0.0347439f, 0.0514787f, 0.160344f, 0.0892821f, 0.0554474f, -0.0218432f, -0.101819f, 0.137573f, -0.0520678f, 0.0594772f, -0.120575f, 0.0836673f, 0.16623f, 0.0916638f, -0.0841444f, -0.0859527f, 0.047058f, 0.0418785f, -0.0616457f, 0.147489f, 0.209757f, 0.231043f, -0.000351209f, 0.129087f, -0.0569336f, 0.0631452f, 0.00946518f, -0.100821f, -0.0628543f, -0.0437859f, -0.0877023f, 0.0332721f, -0.115412f, 0.0182845f, -0.035741f, 0.0588466f, -0.0292071f, -0.0385846f, -0.0177257f, 0.0561739f, -0.0117626f, 0.130005f, -0.140585f, -0.0472495f, 0.0625874f, -0.161828f, 0.157472f, 0.0123214f, -0.0617347f, 0.029356f, 0.0536859f, -0.152668f, -0.0502313f, -0.109636f, -0.168309f, 0.0219065f, 0.124164f, 0.0794946f, 0.190227f, 0.0325232f, 0.0302828f, 0.222977f, -0.115982f, 0.159478f, 0.0646471f, -0.0708008f, -0.0112604f, -0.0582086f, -0.139226f, -0.0694327f, 0.128616f, -0.00482047f, 0.00415192f, 0.0901052f, 0.0654133f, 0.0501274f, 0.0207828f, -0.132873f, -0.0697193f, 0.00650441f, 0.007078f, -0.132736f, -0.0270954f, 0.0843211f, -0.128979f, -0.0666806f, -0.10599f, -0.0755856f, -0.00498395f, 0.0334763f, -0.106017f, 0.115347f, 0.0466022f, -0.126492f, 0.00241275f, 0.16742f, 0.0115838f, 0.104736f, 0.04651f, -0.0186372f, -0.192726f, 0.151917f, 0.0935381f, 0.0643287f, -0.055283f, -0.0148923f, -0.0844154f, 0.178625f, -0.0534551f, -0.0680197f, -0.0750952f, -0.12267f, 0.0292478f, -0.0278042f, -0.0331503f, 0.178601f, 0.0556909f, 0.100078f, -0.0988736f, 0.0247491f, -0.0555102f, 0.0141755f, -0.0339382f, -0.0962018f, -0.167204f, -0.0846848f, -0.0550176f, -0.159052f, -0.0310631f, -0.0143456f, 0.0321175f, 0.190724f, -0.00527334f, -0.15725f, -0.225993f, 0.066827f, 0.0491224f, 0.129072f, 0.0616991f, -0.00812319f, 0.0306149f, -0.0691675f, -0.0382542f, 0.0562734f, 0.0160076f, 0.0295093f, -0.106805f, -0.100724f, 0.162797f, 0.0788438f, -0.0799918f, -0.00365365f, -0.0764764f, 0.00618907f, 0.150233f, 0.102489f, 0.0645499f, 0.069235f, -0.0209545f, -0.12961f, -0.0171434f, -0.00523893f, 0.166868f, -0.0244249f, 0.071289f, -0.0277415f, -0.207798f, -0.00702852f, -0.125377f, -0.137476f, -0.000245327f, -0.0468424f, 0.103214f, 0.0683412f, 0.0722012f, -0.152846f, -0.0685356f, 0.082078f, 0.000568799f, 0.0225967f, 0.214048f, 0.272254f, -0.104604f, 0.0436291f, 0.0615776f, 0.0921292f, -0.012882f, -0.108896f, -0.290339f, 0.075253f, -0.0118058f, -0.0681206f, 0.0463903f, -0.0364744f, -0.106704f, -0.0824542f, 0.303537f, 0.0299287f, 0.0344853f, 0.0208872f, 0.0317964f, -0.0186984f, -0.0982352f, 0.204745f, 0.00294556f, 0.0594325f, -0.0147718f, -0.166307f, 0.0768087f, -0.0392147f, -0.147953f, 0.0197053f, -0.0961393f, -0.0062709f, -0.0536224f, 0.289373f, -0.116552f, -0.258465f, 0.0122205f, 0.019934f, 0.12501f, 0.142789f, -0.0143528f, -0.272467f, -0.0831534f, -0.0274185f, -0.0946724f, -0.0618445f, -0.0195528f, -0.0100173f, -0.119899f, -0.0860243f, -0.0487604f, -0.00289869f, 0.00481757f, 0.00630645f, 0.151225f, 1.64744e-05f, -0.116602f, -0.22311f, -0.00377472f, 0.109801f, -0.00886576f, -0.0327277f, -0.063647f, 0.0922388f, -0.0724561f, 0.0340627f, -0.0530312f, -0.0478419f, -0.0982781f, -0.0583128f, 0.0628826f, 0.10325f, -0.245955f, 0.0220432f, -0.00037959f, -0.0799962f, -0.0597749f, 0.0199858f, -0.120038f, 0.155703f, 0.0883647f, -0.0550122f, -0.0206064f, -0.210979f, -0.114299f, 0.0599288f, 0.0486649f, 0.000201927f, -0.133256f, 0.00451546f, -0.0567704f, 0.0244564f, 0.112743f, 0.064684f, 0.0244079f, 0.00393522f, -0.102159f, 0.0857503f, 0.0994409f, -0.13106f, -0.0908993f, 0.0794146f, -0.146586f, 0.106077f, -0.239273f, 0.124503f, 0.130166f, -0.0432273f, -0.0210892f, 0.184546f, -0.0459036f, 0.112648f, -0.0486079f, -0.0970543f, 0.072029f, -0.0436183f, 0.0290735f, -0.0482135f, 0.00960883f, 0.0197961f, 0.00240613f, -0.148912f, -0.0543944f, -0.099482f, 0.0734093f, 0.179923f, -0.0709921f, -0.095175f, 0.00737551f, 0.197727f, -0.132657f, 0.039956f, -0.028477f, 0.0376319f, 0.0883353f, 0.0580675f, -0.0186558f, -0.0534794f, -0.293141f, 0.00655307f, 0.14871f, -0.0573548f, -0.0226241f, 0.208055f, 0.3196f, -0.145148f, -0.0384308f, -0.24207f, 0.0514963f, 0.00024283f, -0.00931573f, -0.0233203f, 0.0163268f, -0.14974f, 0.201879f, 0.0107482f, 0.114452f, 0.00177795f, -0.126183f, -0.0584314f, -0.1227f, -0.0562526f, -0.0253869f, 0.149716f, 0.11256f, -0.0249481f, -0.0909229f, -0.171297f, 0.11975f, 0.106823f, -0.206572f, 0.0329395f, -0.170984f, -0.0257849f, 0.0329739f, -0.0392507f, 0.00134675f, 0.034631f, 0.211938f, 0.0653003f, 0.0641049f, -0.133788f, 0.247887f, -0.0128683f, -0.0952415f, -0.0316272f, -0.105491f, 0.0315191f, 0.0371085f, -0.147528f, 0.20529f, 0.0912918f, -0.028909f, -0.0649544f, 0.0614904f, -0.0388953f, -0.0754358f, -0.0394166f, -0.120281f, 0.132949f, 0.096303f, -0.291715f, 0.0478768f, 0.109454f, -0.334873f, 0.133026f, 0.197104f, -0.0752739f, -0.0278888f, 0.0475934f, 0.00163533f, 0.0208577f, 0.197507f, -0.0784774f, -0.0721683f, 0.0514576f, -0.212529f, -0.0304157f, -0.0482178f, 0.081251f, 0.0397294f, 0.0715356f, 0.0280644f, 0.164222f, 0.0646605f, -0.0611447f, -0.122658f, -0.0207991f, -0.0966703f, -0.0240907f, -0.0173518f, 0.11798f, 0.0603393f, -0.130766f, -0.11445f, -0.282018f, 0.101509f, -0.0338522f, -0.275215f, 0.121826f, -0.0619889f, -0.170553f, 0.112848f, 0.5213f, 0.307528f, -0.0271768f, 0.0741044f, -0.00451931f, -0.100822f, 0.042261f, -0.0514642f, 0.0184423f, -0.043726f, -0.0054672f, -0.0242754f, -0.233233f, 0.0541542f, 0.024644f, 0.034341f, -0.151898f, 0.134349f, -0.0599774f, 0.163742f, -0.198262f, 0.0165878f, -0.0230262f, 0.0259386f, 0.0540813f, -0.131475f, 0.0388512f, -0.0642984f, 0.0346634f, -0.0330884f, -0.157414f, 0.108693f, 0.052374f, 0.0218403f, -0.0220685f, 0.06378f, -0.0927002f, 0.00021901f, 0.183175f, -0.0756275f, -0.249752f, -0.00730859f, -0.0184611f, -0.00457829f, -0.201816f, -0.13167f, 0.00158393f, 0.120216f, 0.110801f, 0.112352f, 0.108416f, 0.10243f, 0.095391f, 0.0211846f, 0.00875793f, -0.187667f, -0.170354f, -0.0114189f, 0.0362381f, -0.0533984f, -0.119728f, 0.0431744f, -0.186156f, 0.0521409f, 0.0648205f, -0.00693653f, -0.0310672f, 0.059529f, -0.0253708f, -0.0894926f, 0.0334343f, -0.105379f, 0.0701816f, 0.123241f, 0.00741292f, -0.0220985f, 0.146978f, -0.12958f, 0.0469992f, -0.0277623f, 0.020694f, 0.0374473f, 0.100387f, -0.166766f, 0.0182504f, 0.023091f, 0.0935743f, 0.106719f, -0.155953f, -0.063339f, 0.0523213f, -0.0470045f, -0.138443f, -0.142619f, -0.145811f, 0.0286442f, 0.147089f, -0.0651764f, 0.0580589f, 0.0127655f, -0.135299f, 0.0236984f, -0.0486021f, 0.0759711f, 0.109808f, -0.00387532f, 0.00724031f, -0.062934f, -0.0740061f, -0.0893779f, -0.155137f, -0.0722678f, -0.142703f, -0.085382f, 0.0168803f, -0.165482f, 0.164455f, 0.127234f, 0.0167155f, 0.0796843f, -0.170334f, 0.335417f, 0.00328897f, 0.0111024f, 0.0491668f, -0.0492071f, -0.273033f, 0.180508f, 0.00981783f, -0.136163f, 0.0882364f, -0.0942179f, 0.10767f, -0.0164416f, 0.190476f, 0.0761335f, 0.138789f, -0.0609978f, 0.0640586f, 0.21794f, -0.343551f, -0.121467f, -0.049891f, -0.065468f, 0.0764438f, 0.382862f, -0.17532f, -0.0442881f, -0.00678199f, -0.143361f, 0.0876968f, 0.0923999f, -0.21699f, -0.041722f, -0.0904923f, -0.00585024f, -0.0520503f, 0.0496693f, 0.0700976f, -0.135328f, 0.0287878f, -0.0952309f, 0.122856f, 0.0891793f, -0.0828682f, -0.188436f, -0.0367688f, -0.00930254f, -0.179125f, 0.266166f, -0.016398f, 0.126916f, 0.246568f, 0.136203f, 0.0247388f, 0.14888f, -0.0357747f, 0.0283362f, -0.062384f, -0.027685f, -0.133776f, -0.146045f, 0.201046f, -0.00332302f, 0.0274646f, 0.029723f, -0.138227f, 0.0899427f, 0.0272461f, 0.00234254f, -0.0381072f, -0.0697565f, -0.0466445f, -0.143353f, -0.0555654f, -0.110783f, 0.0576451f, -0.118795f, 0.226614f, 0.101094f, -0.102126f, -0.178019f, -0.0985411f, -0.148014f, 0.0716476f, -0.0123071f, 0.076328f, 0.0214774f, -0.0906951f, 0.0437701f, 0.183523f, -0.0402682f, 0.0632943f, 0.138468f, 0.144445f, 0.061172f, -0.0367301f, -0.0582202f, 0.0302621f, -0.00349245f, -0.14583f, -0.140794f, 0.0235616f, 0.162087f, 0.176064f, -0.195292f, -0.051423f, -0.0406891f, 0.259361f, -0.131047f, -0.0752642f, -0.0350229f, -0.0663392f, -0.155732f, -0.194049f, -0.0469043f, 0.247912f, -0.0324718f, 0.0609657f, -0.149014f, -0.150351f, 0.169569f, -0.117395f, -0.131631f, -0.11711f, -0.0504059f, -0.0463081f, 0.0582287f, -0.0661974f, -0.146294f, -0.0455374f, -0.0115448f, 0.124275f, 0.0139883f, -0.0677295f, -0.0386821f, 0.0113283f, -0.086822f, -0.0444429f, -0.223395f, 0.0148558f, 0.0708599f, 0.0689707f, -0.114668f, 0.173462f, -0.0810626f, -0.0247281f, -0.0747507f, -0.0549917f, 0.143011f, -0.160834f, 0.0423297f, 0.0648194f, -0.0806128f, 0.00464152f, 0.0306544f, 0.14965f, -0.0144106f, -0.0326702f, -0.0896503f, 0.0962629f, 0.0873841f, 0.149184f, 0.161412f, -0.106256f, -0.143994f, 0.111541f, 0.119167f, 0.234137f, 0.0860369f, 0.104315f, -0.15454f, -0.0359663f, -0.00467296f, -0.192573f, 0.0538585f, -0.0781713f, -0.0112108f, -0.294014f, -0.143985f, -0.223183f, 0.168513f, 0.216513f, 0.0731109f, 0.0356698f, 0.142383f, 0.110096f, -0.144083f, 0.0505232f, -0.065269f, -0.0187097f, -0.0901443f, -0.182247f, 0.00254422f, -0.0316482f, 0.286382f, 0.109738f, -0.131019f, 0.0435578f, 0.31306f, 0.0229851f, -0.119459f, 0.0251573f, -0.0210268f, 0.211874f, -0.182118f, -0.166869f, -0.0873636f, -0.0537651f, 0.140493f, 0.0622338f, 0.113058f, 0.0469625f, -0.0706286f, 0.128068f, 0.108143f, 0.193301f, -0.0155928f, -0.123611f, -0.0113758f, 0.163106f, -0.125447f, 0.0567469f, 0.0544719f, -0.0288127f, -0.10269f, 0.125539f, 0.335873f, -0.0975817f, -0.0793566f, 0.0567866f, 0.0507777f, -0.152731f, -0.025371f, 0.00175891f, 0.0271473f, 0.0948637f, 0.202565f, 0.0419927f, -0.121604f, 0.0817646f, -0.230937f, -0.0669176f, -0.173788f, -0.0321193f, 0.0332917f, -0.168107f, 0.142078f, 0.0768682f, 0.232438f, -0.16389f, -0.0762818f, -0.0777892f, 0.171125f, 0.165526f, -0.337098f, 0.0578755f, 0.0665186f, -0.124743f, -0.0943488f, -0.102753f, 0.0669579f, -0.127041f, 0.0494604f, 0.076496f, -0.140201f, 0.163574f, -0.00669856f, -0.18255f, 0.0700098f, -0.123468f, -0.127035f, -0.140745f, -0.0779632f, 0.219435f, 0.0608973f, 0.0890573f, 0.0745282f, 0.0796169f, -0.267448f, -0.0381343f, 0.0977212f, 0.00302254f, -0.131511f, -0.157289f, 0.292489f, 0.184581f, 0.0489836f, 0.00103828f, -0.0161463f, -0.14928f, 0.315202f, 0.0855271f, -0.214716f, 0.0698561f, 0.0984814f, 0.0222887f, 0.225033f, 0.0168231f, -0.053361f, 0.228397f, 0.134333f, 0.0867921f, -0.23949f, -0.0586677f, -0.0382263f, -0.152637f, -0.0716305f, -0.143641f, -0.191944f, -0.170272f, -0.132973f, -0.0916969f, 0.0525848f, -0.0726934f, 0.013203f, 0.252452f, 0.230286f, 0.132252f, 0.132125f, 0.0417185f, -0.213109f, -0.0419106f, 0.0856282f, -0.151883f, -0.0550623f, -0.0605612f, 0.308312f, 0.00640581f, -0.14448f, 0.218898f, 0.106086f, 0.193318f, -0.0307857f, -0.0259014f, 0.130867f, 0.111364f, -0.0849294f, -0.0539953f, 0.0896322f, -0.152745f, -0.114092f, -0.0550183f, -0.204683f, -0.17653f, 0.0316486f, 0.0684351f, -0.217768f, -0.06334f, -0.125636f, 0.0866455f, -0.153755f, -0.176798f, 0.127616f, -0.00738306f, -0.0216662f, -0.124083f, 0.00349243f, -0.0342196f, -0.0339295f, -0.0238371f, -0.0825564f, 0.179586f, -0.233454f, 0.0433432f, 0.195935f, 0.0226277f, 0.107936f, -0.0155067f, 0.00796887f, -0.106645f, -0.0612947f, -0.111375f, 0.141521f, -0.149513f, 0.183692f, 0.157705f, -0.140117f, 0.190917f, -0.113383f, -0.0227068f, -0.0080966f, 0.0542549f, -0.0844018f, -0.0508515f, 0.0901493f, -0.12399f, -0.161257f, 0.248231f, -0.14408f, 0.152353f, -0.109249f, -0.0704686f, -0.195617f, 0.210382f, -0.0403213f, 0.0122077f, -0.019193f, 0.114522f, -0.139103f, -0.194081f, -0.0261186f, 0.0238217f, -0.0485448f, -0.0139471f, -0.179165f, -0.0126066f, -0.0659671f, -0.0716451f, 0.0439601f, -0.0228685f, 0.145318f, -0.0837741f, -0.157932f, 0.258155f, 0.114296f, -0.078641f, -0.196468f, 0.0114899f, -0.239426f, -0.136512f, 0.187746f, 0.0964635f, 0.109869f, 0.0246138f, -0.134091f, 0.105765f, -0.0750977f, -0.0759068f, -0.0877257f, -0.0298267f, 0.00324708f, 0.058231f, -0.0620282f, -0.169592f, 0.0329076f, 0.316794f, 0.0431238f, 0.149028f, 0.125926f, 0.0668677f, -0.138832f, -0.0820386f, -0.196709f, -0.0274991f, 0.0398052f, 0.177392f, 0.0395208f, -0.090941f, 0.160441f, -0.119917f, -0.052808f, -0.0728374f, -0.0917875f, -0.00823043f, 0.116611f, -0.109297f, 0.00475485f, 0.0528104f, 0.180131f, -0.0965444f, 0.114447f, -0.153755f, -0.0713628f, -0.0764082f, -0.00811445f, -0.1445f, -0.174832f, -0.156577f, -0.00970191f, 0.453622f, -0.093697f, -0.140258f, -0.0130973f, 0.0236509f, 0.0815453f, 0.027021f, -0.00252895f, 0.0241856f, -0.0655817f, -0.0330254f, 0.166624f, -0.00133421f, -0.226825f, 0.0688377f, -0.0550644f, -0.0451378f, 0.132812f, 0.0251703f, 0.0731582f, -0.00892187f, 0.069611f, -0.243487f, -0.0164866f, 0.0109241f, -0.0216798f, -0.00224457f, -0.11768f, -0.020185f, -0.167506f, 0.102059f, 0.00297304f, -0.00476356f, 0.183768f, 0.0932775f, 0.122426f, -0.0200334f, -0.0522199f, 0.0135244f, -0.0801617f, -0.115717f, -0.0781117f, -0.145411f, 0.00698222f, -0.103438f, 0.0554768f, 0.162574f, -0.118226f, 0.0373715f, -0.0108687f, -0.0600978f, -0.140863f, -0.0735996f, -0.118774f, 0.0834775f, -0.176847f, -0.0918024f, 0.0136206f, -0.146626f, 0.0156463f, -0.0795507f, -0.0465086f, 0.0184507f, 0.13608f, 0.156925f, -0.14383f, -0.0623937f, 0.0116525f, 0.18529f, -0.164191f, 0.0733637f, -0.0845039f, 0.0701955f, 0.0411848f, -0.153092f, -0.0623434f, -0.0300204f, -0.0482098f, -0.0352755f, -0.0390255f, -0.109146f, 0.192648f, 0.144352f, 0.0926587f, 0.141062f, 0.0330513f, 0.294409f, 0.000769959f, 0.13351f, 0.115733f, 0.0834483f, -0.117987f, 0.123245f, -0.210433f, 0.0726101f, -0.196835f, 0.0397775f, -0.127423f, 0.19907f, 0.153428f, 0.0583535f, 0.219829f, 0.113373f, 0.0934066f, 0.00146374f, -0.0352907f, -0.101087f, -0.065669f, 0.0738321f, 0.0944713f, -0.223362f, 0.126463f, 0.119986f, -0.0823123f, 0.0285181f, -0.086381f, -0.0618902f, 0.115002f, 0.0940685f, 0.113345f, 0.0495177f, 0.0520737f, 0.0118495f, 0.048473f, 0.0131759f, 0.0302766f, -0.00448982f, -0.119917f, -0.0456252f, 0.0801604f, -0.0392998f, -0.0152674f, 0.0776914f, 0.08993f, 0.0588458f, 0.259646f, -0.187422f, -0.0401344f, -0.0849894f, 0.132839f, -0.0913907f, -0.0148369f, -0.0581496f, -0.10322f, 0.20215f, -0.0476872f, 0.148303f, 0.11985f, 0.0361425f, -0.037306f, -0.0579739f, 0.0983943f, 0.131144f, -0.0980442f, 0.0317661f, 0.100679f, 0.0453833f, 0.0122847f, -0.235749f, 0.107727f, -0.195427f, 0.00413021f, -0.113029f, 0.125094f, -0.0233732f, -0.0752783f, -0.00339423f, -0.166837f, -0.0377681f, -0.0526529f, 0.0741782f, 0.0149856f, -0.0614647f, 0.134509f, -0.178978f, 0.216114f, 0.0959692f, 0.0524874f, -0.0806577f, 0.189739f, -0.0583376f, 0.0484437f, 0.171989f, 0.0643364f, 0.163602f, 0.057873f, -0.166461f, 0.0307218f, -0.0264409f, 0.0941806f, -0.126183f, -0.032992f, -0.198985f, -0.125508f, 0.0922671f, 0.0960723f, -0.143231f, -0.144565f, -0.057316f, -0.0178611f, -0.170043f, 0.200921f, 0.0281999f, -0.011728f, -0.0728309f, -0.149657f, 0.0158695f, 0.0843838f, 0.144464f, -0.00259872f, 0.0648446f, -0.0214501f, 0.0383896f, 0.0095693f, -0.233905f, -0.0684047f, 0.0133399f, 0.19171f, 0.1105f, -0.107607f, -0.0074883f, -0.0166926f, -0.026158f, 0.0981715f, -0.0636525f, -0.121849f, 0.11436f, 0.132302f, -0.00530229f, -0.0065144f, -0.0313367f, -0.130304f, 0.101973f, -0.228702f, 0.0832751f, -0.0495788f, -0.101342f, -0.104328f, 0.0372451f, 0.0924111f, 0.269739f, 0.0713721f, 0.131048f, -0.0771437f, -0.0972559f, 0.127473f, -0.150199f, 0.0353127f, -0.0823908f, -0.127798f, -0.0294365f, 0.0159154f, -0.0185902f, -0.00542784f, -0.0557262f, 0.151724f, 0.00364397f, 0.0052388f, -0.0778932f, 0.0620276f, 0.00320067f, 0.145397f, -0.151706f, -0.0523812f, -0.0365918f, 0.0130254f, 0.0468097f, -0.135765f, 0.00641646f, 0.0794218f, -0.0807106f, -0.0781931f, 0.00656331f, -0.0199625f, 0.0451036f, 0.0451589f, -0.170206f, 0.0894745f, 0.049869f, -0.214501f, 0.0271748f, -0.0167896f, -0.208355f, -0.275203f, -0.00371095f, 0.0793306f, 0.0386124f, -0.0951826f, 0.150123f, -0.152704f, 0.0450635f, -0.163182f, 0.126554f, -0.0679169f, 0.135848f, 0.172125f, -0.0511993f, 0.11693f, -0.121476f, 0.00468983f, 0.0984224f, 0.145786f, 0.132156f, -0.0874135f, -0.0891212f, -0.0666319f, -0.00413735f, -0.0123172f, -0.0718362f, -0.0481982f, 0.0983282f, 0.0211632f, 0.0494487f, -0.12158f, -0.0342507f, -0.195838f, 0.300909f, -0.0279651f, 0.0118931f, 0.0790954f, -0.107016f, -0.236872f, -0.0140637f, 0.104559f, 0.0845499f, 0.0111247f, -0.186379f, -0.103474f, -0.124602f, -0.0859066f, 0.125092f, -0.299252f, -0.042775f, -0.0665043f, 0.0281299f, -0.00270587f, 0.0831259f, -0.0295763f, 0.0519377f, -0.0805029f, -0.0314268f, 0.196809f, 0.132347f, 0.0277092f, 0.0309878f, -0.0385353f, 0.067839f, -0.0947154f, 0.00183272f, -0.256516f, -0.132981f, -0.0541431f, -0.00359591f, 0.0701785f, -0.0247384f, -0.0624002f, 0.208298f, -0.0700808f, -0.0776358f, 0.128576f, 0.245417f, -0.0927747f, 0.0187412f, -0.064684f, 0.0849991f, -0.0172148f, 0.155643f, -0.088696f, -0.21331f, 0.0344305f, 0.0651993f, 0.00266038f, -0.286188f, 0.0360448f, 0.0215581f, -0.137407f, -0.0408623f, 0.0876906f, -0.00990708f, 0.163924f, 0.19086f, -0.0209025f, -0.138975f, -0.150056f, 0.134749f, -0.101134f, 0.0359896f, -0.06179f, 0.0861972f, 0.16936f, 0.113752f, 0.151249f, -0.0216567f, 0.08955f, 0.058751f, -0.120191f, -0.22276f, -0.123296f, 0.0979942f, 0.0833804f, 0.0464816f, 0.131666f, -0.0741212f, -0.0615255f, -0.145446f, 0.122367f, 0.0373357f, -0.116791f, -0.0317858f, 0.116092f, 0.0911611f, 0.0706478f, -0.0329138f, -0.0319448f, -0.155264f, 0.0770823f, 0.0207039f, -0.103333f, 0.0587799f, -0.0683893f, -0.0632267f, -0.0769149f, 0.0204595f, -0.079955f, 0.0789895f, 0.0161399f, -0.181996f, 0.0600167f, 0.00895457f, 0.0398659f, 0.00532449f, -0.192203f, 0.0865557f, -0.119999f, 0.2044f, 0.0650991f, 0.115076f, -0.0211287f, -0.129961f, -0.173646f, -0.0950088f, 0.183372f, 0.0146067f, 0.217749f, -0.122838f, 0.103239f, -0.105167f, -0.068649f, 0.0841715f, -0.0772413f, 0.151783f, -0.148453f, 0.0464684f, -0.0501292f, 0.0367875f, -0.168284f, -0.0215063f, 0.108628f, 0.0175511f, 0.0409987f, 0.0139965f, -0.0588878f, 0.054853f, -0.0732995f, 0.0338783f, -0.188835f, -0.134819f, -0.184505f, -0.101446f, 0.194048f, -0.29763f, 0.0192292f, -0.216399f, 0.15678f, 0.0618432f, -0.0186682f, 0.0619092f, 0.105021f, 0.118882f, -0.0538094f, 0.0109443f, -0.0556399f, -0.164327f, 0.0112467f, 0.0942995f, 0.0188192f, -0.0599703f, 0.0656435f, 0.254452f, -0.0315295f, 0.0429392f, -0.083013f, 0.0197524f, 0.163957f, 0.0104071f, 0.0357769f, 0.147366f, -0.161089f, 0.150043f, -0.0689698f, 0.0532612f, 0.0161745f, -0.00135909f, -0.00695757f, -0.0810909f, 0.120618f, 0.0880494f, 0.00719169f, 0.0870404f, 0.0257059f, -0.108369f, -0.0620611f, -0.0353582f, -0.0321446f, 0.148824f, -0.0652812f, -0.0329925f, -0.138135f, 0.0300623f, 0.0300235f, 0.111884f, -0.00591749f, 0.0413386f, 0.12477f, -0.207195f, -0.190168f, -0.189572f, -0.0354375f, -0.0247169f, 0.113755f, -0.202673f, 0.00676726f, -0.0594378f, 0.0681668f, 0.0808658f, 0.0383641f, -0.136186f, -0.0393418f, 0.0126143f, -0.0237234f, -0.0673726f, -0.113936f, 0.0700999f, -0.102736f, 0.0706903f, -0.00631862f, -0.0697559f, 0.0904473f, 0.0366807f, 0.0995128f, 0.047409f, 0.0133395f, -0.0216724f, -0.0637215f, 0.146297f, 0.0275362f, -0.0920201f, -0.0428074f, -0.0534847f, -0.130184f, -0.123635f, -0.148344f, -0.0325605f, 0.0989578f, -0.104161f, -0.140094f, -0.0180565f, -0.0273841f, 0.0840525f, -0.155187f, 0.0712597f, -0.199597f, 0.0409771f, 0.0165998f, 0.167234f, 0.156626f, 0.0013236f, -0.0733378f, -0.0490712f, -0.155553f, 0.0497156f, 0.116677f, 0.124238f, 0.0205539f, -0.155232f, 0.0633778f, 0.012062f, 0.226902f, -0.038652f, 0.114447f, 0.195426f, 0.11925f, 0.00847402f, 0.0755458f, 0.189847f, -0.150685f, 0.177933f, -0.16245f, 0.0771356f, -0.00804969f, 0.0205119f, -0.0891269f, -0.0548428f, -0.0590607f, -0.108808f, 0.0379827f, -0.0222658f, -0.00623765f, -0.0319967f, 0.0838726f, 0.163709f, 0.226569f, -0.0250844f, 0.119217f, -0.0985594f, 0.054887f, 0.0560493f, -0.139196f, 0.171075f, -0.00642267f, -0.113181f, -0.107966f, -0.134204f, 0.0579479f, -0.0378678f, -0.0810311f, 0.110851f, -0.0178231f, -0.109911f, -0.128285f, 0.0140878f, -0.113023f, -0.180754f, 0.109169f, 0.057336f, 0.102863f, -0.0129219f, -0.0526813f, -0.163341f, 0.0929904f, -0.030425f, -0.130853f, -0.291787f, -0.152597f, 0.165691f, -0.0221958f, 0.0508069f, 0.0434808f, 0.000321759f, -0.0603531f, -0.127305f, 0.0701291f, -0.0452369f, 0.0468858f, 0.0726355f, 0.0609178f, 0.146408f, -0.114491f, -0.0254953f, 0.188112f, -0.0970131f, 0.0507505f, 0.147281f, -0.212692f, -0.0154821f, 0.073729f, 0.0402179f, -0.141602f, -0.0778719f, -0.181174f, -0.100383f, 0.0291263f, 0.0023835f, -0.159763f, 0.133523f, 0.110879f, 0.0869046f, -0.138289f, -0.00227879f, 0.101435f, 0.101143f, -0.109112f, -0.30352f, -0.0932107f, 0.0903785f, -0.0366563f, -0.0720855f, -0.110679f, 0.0420203f, 0.102873f, -0.134785f, 0.0116396f, 0.148251f, 0.0326597f, 0.07568f, 0.128949f, -0.0559061f, 0.0618161f, 0.0046082f, -0.220204f, -0.0458082f, -0.13052f, -0.112644f, -0.00950084f, 0.105022f, 0.0577825f, 0.165225f, -0.00421847f, -0.00525584f, -0.107623f, -0.053204f, -0.0803501f, -0.0669896f, -0.0502963f, -0.0336215f, -0.064762f, -0.000334246f, -0.225599f, 0.130606f, -0.0829459f, -0.266773f, -0.082636f, 0.125921f, -0.122832f, -0.141055f, -0.045024f, 0.0500541f, -0.0450645f, 0.0668705f, 0.0241901f, 0.102753f, 0.0313367f, -0.0489322f, 0.049239f, 0.013155f, 0.160507f, 0.101543f, -0.274281f, -0.0347409f, 0.00279614f, -0.171837f, 0.00420349f, 0.0207298f, -0.0586393f, 0.0292773f, -0.172697f, 0.0341303f, 0.0310253f, 0.0125282f, 0.141455f, 0.0299956f, -0.0601356f, 0.0176484f, -0.094636f, -0.0906788f, -0.0149195f, -0.0793197f, -0.0607134f, 0.0715446f, 0.0334809f, 0.00384732f, 0.214397f, 0.0815793f, -0.00613119f, 0.0970099f, 0.0851074f, -0.0939966f, -0.0295045f, 0.114656f, -0.0180392f, -0.19651f, 0.125422f, 0.13402f, -0.107871f, 0.145265f, 0.0495495f, 0.184542f, 0.160475f, -0.0890889f, 0.0293572f, 0.180226f, -0.0191081f, -0.0993822f, -0.146453f, 0.0310833f, 0.0698092f, -0.101318f, 0.236332f, 0.0468383f, -0.0835625f, 0.0897846f, 0.0167972f, -0.0386034f, -0.0693116f, -0.0773131f, -0.0501268f, -0.101376f, -0.0284961f, 0.065984f, 0.0755772f, 0.0054433f, -0.0572811f, -0.0916178f, 0.145079f, 0.0913281f, -0.0283215f, -0.0633693f, -0.0992709f, -0.0248491f, -0.128544f, 0.123747f, -0.0760875f, -0.194746f, -0.038211f, -0.113426f, -0.0488907f, -0.00762193f, -0.0167462f, 0.281225f, 0.181793f, -0.00348762f, -0.193155f, -0.156133f, 0.0735298f, -0.153264f, -0.0368867f, -0.0739094f, 0.000674415f, -0.0996197f, 0.0342857f, 0.00816352f, -0.0714374f, 0.0707887f, 0.1608f, 0.0928926f, 0.0739338f, -0.0567497f, 0.0155929f, 0.0713363f, -0.0524804f, -0.0434994f, 0.114036f, 0.0125802f, 0.115698f, -0.0564315f, -0.00680907f, 0.109049f, -0.00322551f, 0.0739688f, 0.0966307f, 0.0108503f, 0.0149686f, -0.244085f, -0.165575f, 0.0647192f, -0.252711f, -0.0314216f, 0.0683874f, 0.00224868f, 0.219295f, -0.0424035f, 0.134665f, 0.0926325f, -0.0794358f, 0.0795916f, -0.0332539f, 0.0255889f, -0.0875138f, -0.133687f, -0.0351927f, -0.0227309f, -0.0233106f, 0.125061f, 0.0813468f, 0.063367f, 0.112731f, 0.124365f, -0.0319105f, 0.116657f, 0.0617333f, -0.0595166f, -0.120676f, -0.0659366f, 0.0174344f, 0.095594f, 0.175161f, -0.09379f, 0.0425559f, 0.0477621f, -0.151723f, 0.0164729f, -0.199748f, -0.175295f, -0.116039f, 0.307279f, -0.30811f, 0.0253701f, -0.0103349f, -0.178174f, -0.131483f, 0.412876f, 0.00479631f, -0.0814566f, 0.102677f, -0.128729f, 0.0326698f, -0.0675086f, 0.101894f, 0.109923f, 0.0386818f, -0.156182f, -0.162437f, -0.0969673f, -0.0501704f, -0.1123f, 0.0657667f, 0.058971f, 0.0782939f, 0.0996028f, 0.173857f, 0.076453f, 0.229979f, 0.018651f, -0.00922876f, 0.122795f, -0.0294714f, 0.115931f, -0.0199699f, -0.00659917f, -0.0366707f, -0.136923f, -0.0345789f, -0.00701143f, -0.0515557f, 0.0137958f, -0.13747f, -0.13164f, -0.0205718f, -0.298457f, 0.0711882f, -0.0649184f, -0.162774f, 0.181447f, 0.0699599f, -0.191816f, 0.124473f, 0.00881759f, 0.0871103f, -0.0536485f, -0.0993556f, 0.031619f, 0.145389f, -0.0216101f, 0.0186199f, 0.102254f, -0.0849171f, 0.0219518f, 0.0902353f, 0.117193f, -0.108281f, 0.120129f, -0.00010351f, -0.0498025f, 0.022197f, -0.0186852f, 0.2564f, -0.147388f, -0.130441f, 0.108498f, 0.0369963f, 0.00477879f, -0.0936058f, 0.114885f, 0.0674655f, 0.066591f, 0.288435f, -0.0681554f, -0.029235f, -0.108489f, -0.0960602f, 0.173283f, 0.174913f, -0.0534595f, -0.123259f, -0.0301065f, -0.0533551f, -0.124502f, -0.0753675f, -0.000245567f, 0.0333523f, -0.04309f, -0.0497226f, -0.0968317f, 0.0574033f, -0.158499f, -0.0187344f, 0.0282077f, -0.179111f, -0.113262f, 0.109946f, 0.0022118f, -0.0405742f, -0.215692f, 0.182392f, 0.0706009f, -0.0379074f, -0.0133014f, -0.00623529f, 0.116403f, -0.0455771f, -0.063604f, -0.01501f, 0.0295548f, -0.101497f, 0.0354689f, 0.0319698f, -0.228328f, -0.21315f, 0.0788194f, -0.0660738f, 0.087432f, 0.0291666f, 0.142471f, 0.208291f, -0.176125f, -0.153581f, 0.104551f, 0.126072f, -0.0950219f, 0.293962f, 0.0352572f, -0.0407856f, -0.0182122f, 0.16556f, -0.113777f, -0.168784f, 0.00508129f, -0.0157391f, 0.0154253f, 0.255036f, -0.0487954f, -0.0902693f, 0.0892909f, -0.0182021f, -0.0337866f, 0.207994f, 0.160699f, 0.0572957f, -0.0258741f, -0.21669f, 0.0128852f, -0.167063f, 0.0839548f, 0.164218f, 0.0261631f, 0.147526f, 0.101386f, 0.0189933f, -0.252703f, 0.040904f, -0.0708322f, -0.00315478f, 0.154751f, 0.00750129f, 0.117212f, 0.115829f, -0.0739222f, -0.0527094f, 0.107524f, 0.0825192f, -0.0382014f, -0.102893f, 0.0215143f, -0.0532273f, 0.0685781f, 0.148983f, -0.15172f, -0.13635f, -0.0557336f, 0.205094f, -0.223814f, -0.111054f, -0.0674651f, -0.0467773f, -0.060943f, -0.0688433f, 0.119793f, 0.0128196f, -0.0932225f, 0.000741476f, 0.215238f, 0.0454079f, -0.105672f, -0.148285f, 0.0776965f, -0.188055f, 0.264721f, -0.102823f, 0.0674948f, -0.0608889f, 0.0395086f, 0.288099f, 0.152789f, 0.0354748f, -0.269527f, 0.118874f, 0.0760835f, 0.0333169f, 0.00233222f, 0.078006f, -0.246734f, 0.117959f, -0.0959302f, -0.0388239f, -0.154108f, -0.0652873f, 0.0695432f, -0.152949f, 0.0127053f, 0.0344639f, 0.0880132f, -0.105892f, 0.0302983f, -0.0881327f, 0.0830549f, 0.108808f, -0.0174187f, -0.0509058f, 0.0414443f, 0.0718198f, 0.0749548f, -0.102172f, -0.110773f, 0.109502f, -0.116747f, 0.0655409f, -0.122959f, -0.00224643f, 0.0438057f, 0.0413849f, 0.12066f, 0.105277f, -0.0333495f, -0.0733007f, 0.138533f, 0.0689146f, -0.125464f, -0.0650143f, -0.0212829f, -0.131601f, -0.166341f, 0.215149f, -0.0917106f, 0.0521146f, -0.0912148f, 0.0722022f, 0.0542588f, -0.00650042f, 0.0123906f, -0.0153291f, -0.198623f, -0.197403f, 0.0239803f, -0.254888f, 0.105981f, 0.0595456f, -0.228224f, 0.105651f, 0.100713f, -0.0422092f, 0.0379228f, 0.101543f, -0.0406321f, -0.0397446f, -0.0156989f, -0.0464889f, 0.149569f, -0.138137f, 0.0896714f, -0.13473f, 0.107263f, -0.0939872f, -0.0467093f, -0.072912f, -0.0211199f, -0.143357f, -0.0822806f, 0.0398884f, 0.270315f, -0.041411f, 0.1398f, -0.0154213f, -0.037147f, 0.118851f, -0.120123f, 0.0977719f, -0.268211f, 0.0537307f, 0.129966f, -0.0677304f, 0.119613f, 0.103801f, -0.091728f, -0.175821f, -0.247739f, -0.119998f, 0.144548f, 0.140905f, 0.255804f, -0.0410192f, 0.0689325f, -0.102865f, 0.174474f, 0.168163f, -0.0487392f, -0.00100883f, 0.00252394f, -0.00949336f, -0.228996f, 0.0438172f, -0.0829074f, -0.0444193f, 0.0329294f, 0.0210579f, 0.0278683f, -0.125958f, -0.00298373f, -0.0387864f, -0.00401953f, 0.168367f, 0.0272963f, 0.238024f, 0.0373248f, 0.0762657f, 0.0138793f, -0.134359f, -0.0399684f, 0.0383332f, -0.0442732f, -0.0117621f, -0.112698f, 0.0331303f, -0.134541f, -0.0390084f, -0.0226745f, -0.0241563f, 0.18113f, -0.0214903f, 0.00130474f, -0.00321991f, 0.0486537f, -0.057378f, -0.000566103f, 0.0620014f, 0.0750079f, 0.0174652f, -0.00237262f, 0.0615758f, -0.0248543f, 0.127756f, -0.025655f, 0.221725f, 0.0713069f, -0.0235798f, 0.0930002f, -0.0680384f, 0.0216896f, -0.0309661f, -0.189628f, 0.0408838f, 0.0970812f, 0.0140838f, -0.115541f, -0.0949411f, -0.111095f, -0.170216f, 0.065302f, 0.0939227f, 0.00185634f, 0.0170332f, 0.00312954f, 0.0167519f, -0.15758f, -0.0931367f, 0.0238518f, 0.0574809f, 0.0134066f, 0.0530076f, 0.0510461f, 0.100688f, -0.064231f, 0.00506166f, -0.0840615f, -0.0220901f, -0.0674655f, -0.0379829f, -0.101545f, 0.0666862f, 0.0735705f, 0.0603837f, 0.00994121f, -0.154403f, 0.0508685f, -0.0477437f, -0.174874f, 0.0798522f, -0.00228315f, 0.0687372f, 0.0581731f, 0.205435f, -0.103771f, 0.139029f, -0.0496398f, -0.111203f, 0.0574954f, 0.110716f, 0.13234f, 0.092274f, 0.0150679f, 0.0123375f, -0.109213f, -0.0880065f, -0.0821377f, -0.0656213f, 0.00632722f, -0.162779f, 0.204278f, 0.185065f, 0.0580627f, 0.066638f, 0.0225742f, -0.0846726f, 0.0968529f, -0.0598419f, 0.0486951f, 0.127312f, 0.0959937f, -0.0013194f, 0.177805f, -0.150884f, 0.0720353f, 0.110915f, 0.254205f, 0.0279907f, 0.0756929f, 0.184377f, -0.135905f, -0.190264f, -0.039764f, -0.124045f, -0.0959308f, -0.112202f, -0.0224303f, 0.179697f, -0.0418825f, 0.180064f, -0.092214f, 0.0556201f, -0.0668723f, 0.203689f, 0.00633114f, -0.00730932f, -0.0854142f, -0.00457298f, -0.122874f, 0.0680078f, 0.114772f, 0.256954f, -0.223436f, -0.215511f, -0.0717176f, -0.113755f, -0.0506485f, -0.0539624f, -0.0806914f, -0.108033f, -0.164158f, -0.0484341f, 0.0270164f, -0.0414661f, 0.0729098f, -0.139623f, -0.0849445f, 0.11325f, -0.123517f, 0.0817201f, -0.125022f, -0.0290726f, 0.157675f, -0.114242f, -0.0230584f, 0.00314308f, 0.0722059f, -0.0322536f, -0.124787f, -0.0567539f, -0.0169393f, -0.126417f, -0.0974668f, 0.159103f, 0.196182f, -0.156782f, -0.0740158f, -0.141686f, 0.0365855f, 0.220372f, 0.0190865f, 0.048102f, -0.101212f, -0.106373f, -0.0534648f, -0.0666211f, -0.0493557f, 0.151387f, 0.0895001f, 0.0439192f, 0.154093f, 0.0878914f, 0.0275618f, -0.00749017f, -0.139319f, 0.0676939f, -0.131053f, 0.0263689f, -0.227898f, 0.0519343f, 0.09057f, 0.120793f, -0.0223f, -0.118626f, -0.0165795f, 0.0642769f, -0.0238801f, -0.0718335f, 0.0091667f, 0.151363f, 0.200937f, -0.00105214f, 0.0237974f, -0.0676264f, -0.0215033f, 0.133543f, -0.199392f, -0.136757f, 0.0839614f, -0.292753f, 0.000922819f, 0.00404232f, 0.106197f, -0.156172f, -0.150634f, 0.155689f, 0.000547091f, -0.151478f, -0.0231656f, 0.0110085f, 0.146497f, 0.0552653f, -0.0171723f, 0.0795462f, 0.0653982f, 0.105603f, 0.269501f, 0.00237254f, -0.082251f, 0.0987062f, 0.0656851f, 0.0146428f, -0.0846204f, -0.100636f, 0.150803f, 0.0821702f, 0.0355049f, -0.176992f, -0.127051f, 0.227637f, 0.00985113f, -0.0446403f, 0.00877912f, 0.0926966f, -0.18936f, 0.0350695f, 0.0110301f, -0.0930763f, 0.113156f, -0.0384317f, -0.101115f, 0.0609191f, -0.112931f, -0.0884609f, -0.0994008f, -0.198797f, -0.105797f, 0.0878741f, 0.0276358f, 0.0929306f, 0.0287977f, -0.0421845f, 0.0846756f, -0.0384147f, 0.0538809f, 0.12366f, -0.00863828f, -0.150961f, -0.133894f, -0.214959f, -0.0587093f, -0.12908f, -0.0552845f, -0.0740685f, 0.152671f, -0.00669154f, 0.157593f, -0.089917f, -0.0450709f, -0.141145f, -0.0558757f, 0.149962f, 0.118032f, 0.0163413f, -0.0135529f, -0.0793808f, -0.0812226f, 0.103226f, 0.0578789f, 0.0761527f, 0.0809539f, -0.0659142f, 0.0425566f, -0.123699f, 0.000151804f, 0.141298f, -0.0635938f, -0.118701f, 0.0806776f, -0.0397325f, 0.0718375f, 0.0124447f, 0.0696946f, 0.0275612f, 0.0520792f, 0.149146f, 0.0535613f, 0.0138389f, -0.0595507f, -0.0319826f, -0.0116036f, -0.102208f, 0.0445783f, -0.10122f, 0.0219506f, -0.0049568f, 0.00690209f, -0.0798914f, 0.0374001f, -0.0281313f, 0.0323305f, -0.0285885f, 0.116019f, -0.102444f, 0.0872971f, 0.0514236f, -0.101879f, 0.0613284f, 0.0858862f, -0.0119714f, 0.0908318f, 0.0239842f, 0.10094f, 0.109569f, -0.0345651f, 0.000898757f, 0.0244836f, 0.197521f, -0.0195082f, 0.2557f, -0.0702954f, -0.0820404f, 0.12719f, -0.0564355f, -0.0247997f, -0.100351f, -0.0522199f, -0.0818547f, 0.160971f, -0.0248092f, 0.0998256f, -0.00259619f, -0.21984f, 0.137084f, -0.0808285f, 0.0521189f, 0.0985254f, 0.0286189f, 0.117876f, 0.0509748f, -0.106616f, -0.156643f, 0.0353967f, 0.176254f, -0.0383813f, -0.205862f, -0.0486669f, -0.116438f, -0.187104f, -0.0023387f, 0.0773799f, -0.162284f, -0.152426f, -0.0406804f, -0.0358059f, -0.0319316f, 0.00150321f, -0.0471949f, 0.00305279f, 0.229372f, -0.105762f, -0.0700213f, 0.0943677f, -0.18225f, -0.0637912f, -0.071525f, -0.114138f, 0.108068f, -0.251745f, -0.0504124f, -0.123769f, -0.138846f, -0.0508492f, 0.0173577f, 0.0197709f, 0.00894666f, -0.105157f, 0.0864725f, 0.0570797f, 0.114744f, 0.132175f, -0.0441595f, 0.159259f, -0.13153f, 0.220437f, -0.0449804f, -0.0122569f, -0.107682f, 0.231604f, 0.0189856f, 0.11987f, 0.0416661f, 0.248999f, 0.165256f, 0.0239193f, 0.0691503f, -0.0243718f, 0.0366438f, -0.0814077f, -0.208574f, -0.146939f, -0.0543465f, -0.142498f, -0.107281f, -0.0205001f, 0.280905f, 0.0566725f, -0.0928502f, -0.0484336f, -0.0376974f, -0.101147f, 0.053684f, -0.0422679f, 0.178545f, 0.00534782f, -0.0891431f, 0.0928941f, 0.110731f, -0.0868603f, -0.0737494f, -0.163136f, 0.0746832f, -0.146338f, -0.146524f, -0.08806f, 0.238847f, -0.151752f, -0.128222f, -0.0500897f, 0.0288116f, -0.0634985f, -0.162284f, -0.10167f, 0.25933f, -0.0441675f, 0.0378362f, -0.0147198f, 0.0910144f, 0.000271807f, 0.00572602f, 0.106105f, -0.137837f, -0.191929f, 0.0754037f, 0.0207336f, 0.10193f, 0.0614483f, -0.0115382f, -0.0127231f, -0.0078649f, 0.0277741f, 0.15825f, 0.0524536f, 0.0476166f, 0.049204f, -0.0367045f, -0.0395209f, 0.0613173f, 0.113255f, 0.0468698f, 0.0337905f, -0.0316948f, 0.107468f, -0.119101f, 0.0110011f, 0.113162f, 0.232585f, 0.0453456f, -0.0870827f, 0.0434299f, 0.1713f, 0.00836174f, -0.0415013f, -0.0941873f, 0.132272f, -0.00848447f, -0.00742329f, 0.0656821f, 0.0345126f, -0.215815f, 0.241442f, -0.167966f, 0.0599982f, 0.0587463f, 0.0731057f, -0.231131f, -0.0844353f, 0.0739898f, 0.152068f, -0.0553351f, -0.326619f, 0.15594f, -0.0312716f, 0.0870793f, -0.004881f, -0.113454f, 0.0752437f, 0.26129f, 0.0935469f, 0.181509f, -0.018961f, -0.163148f, -0.00437029f, -0.201173f, 0.00575022f, 0.166742f, 0.0220764f, 0.0260456f, 0.0196424f, 0.262672f, 0.13862f, 0.114099f, 0.0131752f, 0.102654f, -0.0229723f, -0.195181f, -0.00516831f, 0.0802549f, -0.106032f, -0.0181668f, 0.219907f, -0.0999514f, -0.145553f, -0.116783f, -0.112105f, -0.0826996f, -0.1098f, 0.117304f, -0.0425385f, 0.012019f, -0.140009f, 0.0930935f, 0.167115f, -0.0942459f, -0.176722f, 0.133993f, -0.0301696f, 0.0757163f, -0.190433f, 0.0750088f, 0.192481f, -0.0244337f, 0.0254316f, -0.0284373f, 0.0555638f, 0.0839127f, 0.0865609f, -0.0732433f, -0.0950883f, -0.100969f, -0.0496832f, -0.0480792f, 0.0815549f, -0.0836266f, -0.000291346f, -0.0178249f, -0.115723f, 0.0766474f, -0.0314214f, 0.143025f, 0.0117498f, -0.0476184f, -0.0397388f, -0.124231f, 0.0992538f, -0.262908f, -0.189019f, 0.0856087f, 0.0889564f, -0.035513f, 0.0491161f, 0.0522213f, -0.00886307f, 0.0252782f, 0.0732809f, -0.0738341f, 0.0452263f, -0.00784744f, -0.0616114f, -0.0945132f, 0.123744f, 0.0583385f, 0.0119995f, 0.106984f, 0.005326f, 0.0422786f, -0.00759796f, 0.0666378f, 0.0391409f, -0.0565035f, 0.0961659f, -0.136477f, -0.0432741f, 0.151737f, -0.00998722f, -0.0747038f, -0.138342f, -0.0364102f, -0.170901f, -0.0621025f, -0.0253327f, -0.0370147f, 0.0468679f, -0.0193059f, 0.180075f, 0.0947352f, -0.0790074f, 0.0908916f, 0.0495844f, -0.0512141f, -0.101972f, -0.187381f, -0.0234408f, -0.144917f, 0.0912873f, 0.137953f, -0.0881145f, 0.155221f, 0.0710232f, 0.148847f, -0.0598482f, 0.206454f, 0.0319354f, -0.113567f, 0.0103158f, 0.151559f, -0.189436f, 0.128234f, 0.0877855f, -0.0637323f, -0.0778795f, 0.0376895f, -0.0511335f, -0.108678f, -0.158048f, 0.108506f, 0.0246635f, 0.0169756f, 0.10831f, 0.026912f, -0.00203766f, 0.0312686f, 0.0894737f, 0.0162477f, -0.0618999f, -0.0265796f, 0.114227f, -0.15638f, -0.0510761f, -0.0377173f, 0.0226881f, 0.0418164f, -0.0366621f, -0.035809f, -0.0266003f, 0.0467199f, 0.171896f, -0.0271323f, -0.0163066f, 0.028144f, 0.0436655f, 0.128942f, -0.0194696f, -0.105502f, 0.0681745f, -0.0502478f, 0.0555929f, -0.05233f, -0.0198393f, 0.132248f, 0.126557f, 0.00828652f, -0.090131f, -0.0212319f, -0.0250166f, -0.0118503f, -0.0875313f, 0.0768847f, 0.0485072f, -0.019315f, 0.284054f, 0.100281f, 0.108431f, -0.0830946f, -0.023745f, 0.0625827f, -0.0561233f, 0.0932393f, 0.0275348f, -0.1307f, -0.0600125f, -0.0451818f, -0.102182f, 0.165792f, -0.130795f, -0.0328623f, -0.241256f, -0.1522f, 0.13973f, -0.0225733f, -0.0121984f, -0.0512724f, 0.0964481f, -0.112301f, -0.147525f, 0.258343f, 0.0169823f, 0.038229f, 0.0942557f, -0.0375277f, 0.0529383f, 0.0917328f, -0.106428f, -0.00183135f, -0.0535075f, 0.011453f, 0.0899797f, -0.00914698f, 0.0447383f, 0.0399944f};
+ model->setOperandValue(op74, op74_init, sizeof(float) * 16384);
+ static float op76_init[] = {1.2227f, 0.664689f, -0.697727f, -0.607951f, 1.29794f, -0.073003f, -0.811291f, 1.23139f, 1.26409f, -0.384498f, 1.08346f, -0.668803f, -0.435764f, 1.3942f, -0.371175f, 1.2419f, 1.24256f, -0.621671f, 0.0760495f, -0.765654f, 0.196979f, 0.214335f, -0.58529f, 1.2814f, -0.120833f, -0.844234f, -0.455902f, -0.965084f, -0.586658f, 1.11645f, 1.24002f, -0.565542f, -0.540129f, 1.22517f, -0.544301f, -0.591493f, 0.403981f, -0.113213f, -0.0999279f, -0.508504f, -0.361916f, -0.666335f, 1.19214f, 0.180251f, -0.793999f, -0.0519839f, 0.243307f, 0.488556f, -0.5879f, -0.68376f, 1.20553f, 0.855387f, 1.32818f, -0.668094f, -0.432518f, -0.730011f, -0.825747f, 1.08466f, -0.689586f, -0.46422f, -0.608787f, -0.436489f, -0.52064f, -0.699725f, 0.262406f, -0.617448f, -0.73687f, -0.799998f, -0.0571513f, 0.0468143f, 0.826328f, -0.361061f, -0.636886f, 1.059f, -0.588544f, 1.1137f, 0.737585f, -0.896787f, -0.209556f, 0.201041f, -0.0373591f, -0.49788f, 1.02235f, -0.42106f, -0.61662f, -0.0805732f, -0.500747f, 0.549504f, -0.0802444f, -0.517048f, -0.975228f, -0.374565f, -0.310484f, 1.02079f, -0.465238f, 0.877757f, -0.00396147f, -0.467624f, -0.467418f, -0.672751f, -0.255117f, -0.619892f, -0.743825f, 1.06921f, -0.667405f, 0.997503f, -0.877923f, -0.697879f, 0.385421f, -0.496918f, 0.223972f, 1.11902f, -1.05091f, 0.614654f, 0.849332f, -0.454338f, -0.412169f, -0.688757f, -0.551979f, -0.0854241f, -0.195676f, -0.542179f, -0.701308f, -0.446594f, -0.435718f, -0.867095f, 1.29558f, -0.85324f};
+ model->setOperandValue(op76, op76_init, sizeof(float) * 128);
+ static float op77_init[] = {-0.232485f, 0.750123f, 0.158505f, 0.452319f, -0.340535f, 0.304917f, 0.601414f, -0.213319f, -0.527085f, 0.51019f, -0.266959f, 0.367842f, -0.206907f, -0.323959f, -0.159575f, -0.177844f, -0.178491f, -0.143209f, -0.744888f, 0.171007f, -0.056294f, 0.0066854f, -0.0159956f, -0.338152f, 0.595454f, 0.0494067f, -0.242471f, 0.395647f, -0.0994157f, -0.1077f, -0.690943f, 0.298448f, -0.0125066f, 0.189733f, -0.257466f, -0.0827938f, -0.480399f, -0.300462f, -0.335141f, 0.0223836f, 0.550395f, 0.0419619f, 0.226111f, -0.176909f, 0.127377f, -0.0545993f, -0.387069f, -0.768176f, -0.0824907f, 0.0591839f, -0.0952336f, -0.355136f, -0.498724f, 0.0494056f, 0.0379881f, 0.225825f, 0.173812f, -0.544722f, -0.133118f, -0.0791841f, 0.0940735f, -0.135813f, 0.381779f, 0.150541f, -0.218683f, 0.0192335f, 0.0824092f, 0.0248153f, 0.767578f, 0.0404393f, -0.870468f, 0.278391f, 0.431434f, 0.153796f, -0.129333f, -0.532381f, -0.253057f, 0.631776f, -0.252957f, -1.17293f, 0.684977f, 0.0593484f, -0.090116f, -0.0440624f, 0.625979f, 0.408575f, -0.305075f, 0.37687f, -0.216258f, 0.425133f, 0.202026f, 0.114214f, 0.476932f, -0.630176f, 0.873207f, 0.075089f, -0.0424989f, 0.788774f, 0.667274f, -0.0367483f, -0.0493914f, 0.00828958f, 0.226763f, -0.303594f, 0.32115f, -0.65989f, -0.061986f, 0.0610993f, -0.73698f, -0.268586f, -0.0016077f, -0.456635f, 0.384838f, 0.233292f, -0.749946f, -0.0869134f, -0.177408f, 0.0808274f, -0.170988f, 0.00240784f, -0.321334f, 0.0905131f, 0.283412f, -0.155093f, 0.194987f, 0.188776f, 0.11849f, 0.241045f, -0.0767464f, -0.242642f, 0.0354707f, 0.659772f, -0.301489f, 0.532481f, 0.30338f, -0.424311f, -0.391273f, 0.318254f, -0.44303f, -0.0227837f, -0.406006f, -0.450345f, -0.912665f, -0.113013f, -0.579872f, -0.45086f, -0.38002f, 0.864139f, -0.134334f, -0.0710209f, -0.196526f, -0.265847f, 0.0612031f, 0.184461f, -0.20379f, 0.550755f, 0.510476f, 0.116785f, -0.337066f, 0.320602f, -0.326826f, -0.429212f, 0.0369958f, -0.222236f, -0.669071f, -0.152626f, -0.221212f, -0.130337f, 0.322288f, -0.104118f, -0.233728f, -0.389582f, 0.331384f, 0.411649f, 0.559768f, -0.312139f, 0.592027f, 0.373766f, -0.439038f, -0.055498f, 0.401048f, 0.0341515f, -0.63939f, -0.0435768f, -0.0422185f, -0.527417f, -0.0159448f, 0.153193f, 0.775076f, -0.0861612f, 0.690012f, 0.537114f, -0.573241f, 0.0426182f, 0.401363f, 0.0661303f, -0.49603f, 0.221102f, 0.167366f, 0.602831f, 0.492101f, -0.400352f, 0.0957843f, -0.25515f, -0.421591f, 0.776933f, 0.238433f, 0.0715633f, 0.706144f, -0.282396f, 0.403605f, -0.158208f, 0.438392f, 0.837666f, -0.282911f, 0.485998f, -0.209771f, 0.835166f, 0.363431f, 0.665546f, 0.0875897f, -0.304643f, 0.0140031f, 0.129179f, 0.721176f, 0.282259f, 0.383592f, -0.334413f, 0.477909f, -0.159901f, 0.145462f, -0.242546f, 0.680165f, -0.439394f, -0.0180941f, 0.467333f, -0.780492f, 0.56518f, 0.0261344f, -0.169822f, 0.633657f, -0.159826f, -0.483378f, -0.139054f, 0.278477f, 0.183704f, 0.241421f, 0.826042f, 0.0774313f, -0.0932239f, -0.208233f, -0.161689f, 0.607199f, 0.13484f, -0.626022f, 0.473494f, -0.152347f, -0.339346f, -0.273273f, 0.340693f, -0.230515f, 0.378594f, 0.539266f, -0.0552735f, -0.728521f, -0.194974f, 0.365753f, 0.155995f, -0.166952f, -0.294541f, 0.307381f, -0.390512f, -0.0692248f, -0.0471984f, 0.81751f, 0.272259f, -0.187867f, 0.789934f, -0.0393164f, -0.339268f, -0.246028f, -0.141507f, -0.127788f, 0.294418f, 0.297048f, 0.036455f, -0.20349f, 0.721955f, -0.103217f, -0.262881f, -0.268652f, -0.106831f, 0.0847566f, -0.0206014f, 0.822689f, 0.144444f, -0.379661f, -0.0666149f, 0.182826f, 0.436257f, 0.399498f, 0.128306f, -0.383058f, 0.216087f, 0.66947f, -0.455878f, -0.0957781f, -0.301963f, -0.23824f, -0.163607f, -0.149154f, -0.0273007f, 0.107359f, -0.404078f, -0.0585627f, -0.377279f, 0.511348f, -0.253713f, 0.255044f, -0.277323f, 0.145715f, 0.553577f, 0.130348f, -0.0026711f, -0.511447f, -0.375908f, -0.531934f, 0.428361f, 0.0423029f, 0.349651f, -0.143119f, -0.348042f, -0.902839f, 0.331891f, 0.588844f, 0.444337f, 0.222383f, -0.174742f, 0.51477f, -0.158526f, -0.0619575f, 0.115629f, 0.301666f, -0.74785f, -0.451812f, 0.42868f, 0.132029f, 0.571422f, 0.327466f, -0.204883f, -0.37405f, 0.292491f, 0.421548f, -0.26166f, 0.671215f, 0.403858f, 1.16413f, 0.255042f, 0.0269748f, -0.12299f, -0.0655738f, 0.797576f, -0.0442739f, 0.299143f, -0.127325f, 0.017174f, 0.0619591f, -0.35787f, 0.10334f, -0.214372f, 0.143984f, -0.240484f, -0.0591864f, -0.230573f, 0.0510216f, 0.531349f, 0.0279866f, -0.406371f, 0.0677228f, -0.225984f, 0.573772f, 0.232587f, -0.514154f, 0.875558f, -0.397019f, -0.296504f, -0.238642f, -0.0522216f, -0.332176f, -0.233281f, 0.187107f, -0.326437f, 0.093247f, 0.181202f, -0.0856285f, 0.291618f, 0.540497f, -0.167788f, -0.0404989f, -0.154621f, 0.0557586f, 0.225398f, -0.445207f, 0.34036f, -0.600142f, -0.248637f, 0.00952684f, -0.389687f, 0.665121f, -0.339147f, 0.3063f, 0.314633f, 0.368156f, -0.640276f, -0.285171f, -0.511665f, 0.349209f, -0.220417f, 0.104228f, 0.184269f, 0.550034f, -0.31873f, -0.357253f, -0.361098f, 0.62181f, -0.000602989f, -0.523894f, -0.534778f, 0.458821f, 0.352176f, -0.316208f, -0.0871228f, 0.0726062f, 0.384751f, -0.517424f, -0.0792405f, -0.245935f, -0.161403f, 0.1897f, 0.991672f, 0.472328f, -0.137069f, 0.132558f, 0.809253f, -0.232201f, -0.0555544f, 0.159881f, 0.440663f, 0.113279f, -0.404945f, 0.173644f, 0.0635276f, 0.460613f, 0.171117f, -0.30527f, 0.249202f, 0.500521f, -0.428715f, -0.127081f, -0.334496f, 0.0194425f, -0.082253f, -0.565728f, -0.329758f, 0.35015f, -0.18512f, -0.464374f, 0.607445f, 0.264573f, 0.186132f, 0.0460571f, -0.806737f, -0.218507f, 0.0785917f, -0.0664054f, -0.253514f, 0.544733f, -0.210958f, 0.753625f, -0.255734f, 0.176972f, 0.505044f, -0.173267f, 0.442816f, -0.755728f, -0.041444f, 0.0244949f, -0.449403f, 0.162661f, -0.607662f, 0.554165f, 0.0153189f, 0.560598f, 0.820937f, -0.965529f, -0.248512f, 0.543608f, -0.202644f, -0.282384f, 0.362282f, -0.152458f, 0.447263f, 0.597189f, -0.179168f, -0.265084f, -0.0022466f, 0.20987f, 0.536147f, -0.0153515f, 0.212321f, 0.210988f, -0.102748f, -0.233376f, -0.413802f, 0.509071f, 0.0641441f, -0.18593f, -0.342544f, 0.726475f, 0.0474643f, -0.421396f, 0.876735f, -0.166737f, 0.465823f, 0.340674f, -0.343774f, 0.210432f, -0.132773f, -0.541422f, 1.05094f, 0.0995329f, 0.335804f, -0.350257f, 0.618976f, 0.65004f, -0.337271f, -0.421269f, 0.710059f, 0.239769f, 0.741642f, 0.388763f, -0.548601f, -0.62101f, 0.521035f, 0.61045f, -0.708382f, 0.423398f, 0.506156f, 0.184394f, -0.165028f, 0.529102f, 0.338548f, 0.733693f, 0.442235f, -0.366406f, -0.251725f, 0.32551f, 0.093817f, -0.820246f, 0.0567565f, 0.182073f, 0.807769f, -0.376357f, 0.026098f, 0.0187223f, 0.614009f, 0.759842f, 0.281874f, 0.350885f, -0.217654f, 0.441348f, 0.357963f, 0.353439f, 0.246142f, 0.665973f, 0.707596f, 0.388124f, 0.210323f, 0.781611f, 0.387808f, -0.52244f, 0.247177f, 0.0959269f, 0.140084f, 0.191014f, -0.608717f, 0.0129402f, -0.0395734f, 0.163949f, -0.0889367f, 0.625074f, -0.112423f, -0.550113f, 0.118949f, -0.469358f, 0.465661f, 0.122174f, 0.198567f, 0.693909f, 0.231948f, 0.00308545f, -0.213582f, 0.393619f, 0.234385f, 0.365947f, -0.176421f, -0.192855f, -0.198232f, 0.223041f, 0.32747f, -0.116512f, -0.220675f, 0.06617f, 0.651267f, 0.533926f, -0.156348f, 0.814099f, -0.283753f, 0.234644f, 0.70476f, 0.307605f, 0.79859f, -0.148987f, -0.363954f, 0.771631f, -0.148168f, -0.250974f, 0.520011f, -0.334072f, 0.123183f, 0.459216f, -0.393939f, 0.0410093f, 0.803268f, -0.196284f, 0.411586f, 0.439885f, 0.405702f, -0.363653f, 0.374452f, -0.233572f, -0.0195158f, 0.100898f, 0.311713f, -0.207505f, -0.684666f, 0.176729f, -0.621638f, -0.193882f, 0.052364f, -0.108915f, 0.13115f, 0.450383f, -0.38034f, 0.247887f, -0.399786f, -0.115295f, 0.134643f, 0.492541f, 0.351355f, 0.423698f, 0.520002f, 0.16345f, -0.337667f, -0.739734f, 0.107986f, -0.223246f, -0.0453324f, 0.296581f, -0.512431f, -0.316543f, 0.519793f, 0.273834f, -0.44299f, 0.0341734f, -0.00631125f, 0.166764f, -0.00913199f, 0.480248f, 0.472275f, -0.0582757f, 0.115574f, -0.274127f, 0.284554f, 0.221421f, 1.06458f, -0.484215f, 0.539291f, 0.329342f, 0.140655f, -0.680046f, -0.408188f, -0.411907f, 0.150839f, 0.428696f, 0.535889f, 0.526586f, -0.224361f, 0.247938f, -0.165955f, 0.168248f, 0.248157f, -0.178022f, 0.294695f, 0.229457f, 0.565367f, 0.359653f, 0.159758f, -0.18744f, -0.661945f, -0.366049f, 0.175269f, -0.131843f, -0.747946f, 0.442257f, -0.214112f, -0.232158f, 0.440621f, -0.0686481f, 0.5595f, -0.399557f, -0.170888f, -0.676882f, 0.425123f, -0.269705f, -0.0403483f, 0.659933f, 0.116775f, -0.226253f, 0.690474f, -0.0221245f, 0.343166f, 0.139515f, -0.184423f, -0.6296f, -0.289549f, -0.311636f, -0.275556f, 0.240118f, 0.0355495f, 0.0843614f, 0.411738f, 0.460649f, -0.526297f, 0.0505008f, -0.147677f, 0.166148f, 0.268247f, -0.300699f, 0.337708f, 0.796832f, -0.123618f, -0.812752f, -0.192251f, 0.156988f, -0.22428f, 0.138177f, 0.0272046f, -0.548124f, -0.00307087f, -0.133216f, 0.719622f, 0.38193f, 0.207625f, -0.344599f, 0.599538f, -0.337857f, 0.025397f, -0.388003f, -0.121373f, 0.0658812f, 0.168395f, -0.434515f, -0.0150224f, -0.0138091f, -0.27665f, 0.289277f, 0.0749468f, -0.416075f, 0.101367f, -0.0408155f, 0.349719f, 0.21346f, -0.470483f, -0.27273f, 0.0576205f, -0.457879f, 0.124004f, -0.527587f, -0.407768f, 0.14242f, -0.251265f, 0.39856f, 0.736525f, 0.305323f, 0.183293f, 0.355352f, -0.175965f, -0.239469f, -0.0519137f, -0.185593f, 0.158958f, 0.300294f, 0.368419f, 0.158395f, -0.11379f, -0.267616f, 0.510044f, -0.0607662f, 0.184236f, -0.237227f, -0.572879f, 0.098806f, -0.302392f, -0.287138f, -0.219602f, -0.0337315f, 0.251157f, -0.19637f, -0.137044f, -0.646843f, 0.329541f, 0.027977f, -0.392612f, 0.49815f, -0.245125f, 0.15432f, 0.240944f, -0.165408f, 0.177068f, -0.262045f, -0.0604312f, -1.31425f, -0.00338502f, -0.0606778f, 0.0264143f, 0.769203f, 0.731826f, -0.754344f, 0.141733f, 0.545281f, 0.290808f, 1.03147f, -0.445351f, -0.345699f, -0.10246f, -0.425569f, -0.501446f, 0.0263278f, 0.394861f, -0.283436f, -0.107759f, 0.635183f, -0.285409f, -0.204557f, -0.486947f, -0.103412f, -0.312034f, 0.528728f, -0.260614f, -0.433613f, -0.456335f, 0.483252f, -0.422673f, -0.12339f, -0.113131f, 0.0739051f, 1.0348f, -0.158833f, -0.22195f, -0.11944f, -0.617752f, -0.11337f, -0.494536f, 0.5105f, -0.17467f, 0.417332f, -0.316693f, -0.469397f, -0.726099f, 0.241936f, -0.867315f, -0.596261f, 0.286757f, 1.01059f, 0.429444f, 0.643794f, -0.0124021f, 0.088954f, -0.519265f, 0.619415f, 0.0623057f, 0.504301f, 0.333252f, -0.568593f, 0.169613f, -0.441325f, -0.407252f, 0.708297f, -0.144369f, -0.365749f, -0.0922256f, -0.471438f, -0.196134f, -0.257125f, -0.0594892f, -0.912519f, 0.177977f, 0.960215f, -0.258763f, 1.09295f, -0.284151f, -0.316513f, 0.430208f, 0.00734388f, -0.217647f, 0.348093f, -0.299929f, 0.596815f, -0.016761f, 0.338653f, 0.93635f, 0.656381f, 0.350354f, 0.305793f, -0.258573f, 0.309923f, -0.0215216f, 0.433889f, -0.554989f, 1.14895f, 0.425782f, -0.534314f, 0.979071f, 0.115376f, 0.356385f, -0.458436f, 0.813591f, -0.460751f, 0.868282f, -0.12972f, -0.633642f, 1.48735f, -0.769719f, -0.497208f, 0.227674f, -0.512324f, -0.192572f, -0.51508f, 0.694937f, 0.432446f, 0.734156f, 0.0599805f, 0.0451104f, 0.387917f, 0.52736f, 0.0150681f, 0.653797f, 0.0555282f, 0.295022f, 0.116211f, 0.282033f, 0.127456f, 0.562138f, 0.864882f, 0.562918f, 0.226986f, -0.732976f, -0.125189f, -0.356436f, 0.773513f, 0.00784227f, 0.0959714f, 0.202602f, 0.635033f, 0.285615f, -0.588955f, 1.16024f, -0.526163f, 0.524461f, 0.296178f, -0.285337f, 0.250037f, -0.448641f, 1.12717f, -0.40796f, 0.913023f, -0.310407f, -0.198584f, -0.420773f, 0.110765f, -0.348902f, -0.391878f, 0.0488817f, -0.519489f, 0.385946f, -0.123989f, 0.419801f, 0.333858f, 0.0667859f, 0.237291f, -0.208133f, 0.376354f, 0.219975f, 0.401764f, 0.2236f, 0.172458f, 0.254095f, 0.0944153f, -0.577605f, 0.215535f, 0.982192f, 1.20196f, 0.252205f, 0.456823f, -0.17214f, 0.596597f, 0.374121f, 0.21441f, 0.22223f, 0.306031f, 0.250367f, -0.414704f, 0.512144f, -0.285307f, -0.493507f, 0.689128f, 0.134251f, -0.422183f, 0.302675f, 0.1381f, -0.305875f, 0.00499852f, -0.232788f, -0.266377f, 0.118899f, -0.0735813f, -0.400083f, 0.457611f, -0.124106f, -0.525283f, 0.195735f, 0.255211f, 0.163252f, 0.603786f, -0.945585f, 0.23017f, -0.143815f, -0.411882f, 0.0274922f, 0.594628f, -0.165145f, 0.0458463f, 0.0792487f, 0.151905f, -0.430532f, 0.361895f, -0.386514f, -0.055938f, 0.724818f, -0.314764f, 0.662356f, -0.321182f, 0.278372f, -0.508936f, 0.510272f, -0.358697f, 0.450372f, 0.326299f, -0.564039f, 0.649753f, 0.255396f, 0.226893f, 0.193944f, -0.0455373f, -0.637073f, -0.406078f, 0.247549f, 0.2822f, 0.461711f, 0.0955357f, -0.261276f, 0.548638f, -0.0557388f, 0.182164f, 0.551088f, -0.131262f, -0.192677f, 0.743369f, 0.496859f, -0.110602f, 0.665807f, -0.341119f, -0.574006f, 0.253317f, -0.0412391f, -0.187952f, -0.549984f, -0.380044f, -0.30571f, 0.0611864f, 0.245165f, 0.221235f, 0.508958f, -0.151121f, 0.397989f, 0.00208155f, -0.154384f, -0.084145f, -0.459448f, 0.254966f, -0.01605f, 0.613941f, -0.0170916f, 0.208544f, -0.182594f, -0.0684111f, 0.189469f, -0.00860068f, -0.331824f, -0.523698f, -0.0657233f, -0.252375f, 0.612957f, 0.0379591f, 0.209828f, 0.297172f, -0.402651f, -0.174693f, -0.138906f, 0.395919f, -0.200965f, -0.550715f, -0.529917f, 0.181403f, -0.457216f, 0.688771f, 0.73705f, 0.317982f, -0.128821f, -0.48089f, 0.612106f, -0.172449f, -0.450366f, 0.796766f, 0.665507f, 0.813123f, 0.555636f, -0.362653f, -0.316043f, -0.17264f, -0.229654f};
+ model->setOperandValue(op77, op77_init, sizeof(float) * 1152);
+ static float op79_init[] = {-0.108669f, -0.24239f, 0.892824f, 0.100496f, -0.175517f, -0.0614264f, 0.896133f, -0.142274f, -0.0590312f, 0.125f, 0.864931f, -0.283458f, -0.13665f, -0.0803576f, -0.146452f, -0.195702f, -0.582552f, -0.339264f, -1.01993f, 0.447734f, -0.917057f, 0.225414f, -0.306775f, 0.594087f, 0.556081f, -0.327338f, -0.0957925f, -0.309899f, 0.650205f, 0.348621f, 0.255781f, 0.371079f, 0.915888f, 0.978555f, 0.799558f, -0.32679f, -0.427624f, -0.0823039f, 0.369625f, -0.57637f, -0.0263745f, -0.282986f, 0.635218f, 0.378849f, -0.155068f, 0.707911f, 0.0484146f, -0.726708f, -0.212411f, 0.0321696f, 0.0862673f, -0.0752373f, -0.778846f, -0.0985055f, 0.452711f, 0.608385f, 0.616601f, -0.33512f, 0.409252f, 0.778583f, 0.181552f, -0.955649f, -0.456805f, 0.0249269f, 0.30359f, 0.823123f, 0.711778f, 0.600027f, -0.352327f, 0.512934f, 0.34219f, -0.29652f, 0.505236f, 0.175734f, 0.874702f, -0.275469f, 0.580716f, 0.635559f, -0.546206f, 0.457047f, 0.461714f, 0.346941f, 0.637959f, -0.0761546f, 0.555644f, 0.542373f, 0.292184f, 0.784725f, -0.502565f, 0.582605f, -0.178634f, -0.627065f, -0.08808f, -0.801258f, 0.225673f, 0.672628f, 0.596107f, -0.159289f, -0.652513f, 0.538379f, -0.145736f, 0.317523f, 0.695517f, 1.03021f, -0.495469f, -0.164966f, 0.740315f, -0.159693f, 0.504333f, 0.386047f, -0.121875f, -0.222074f, 0.59883f, -0.149101f, -0.71422f, 0.54467f, 0.694151f, -0.447638f, 0.090233f, -0.220637f, 0.724413f, 0.366921f, 0.136273f, 0.615985f, 0.185512f, 0.0515735f, -0.342775f, 0.584152f};
+ model->setOperandValue(op79, op79_init, sizeof(float) * 128);
+ static float op80_init[] = {0.143542f, -0.139317f, -0.0557127f, 0.00193462f, -0.0166539f, 0.216436f, 0.0694379f, 0.0774276f, -0.061387f, 0.193228f, -0.0234282f, 0.0303868f, -0.10475f, 0.225842f, -0.0953071f, 0.0518284f, -0.177148f, 0.0706816f, -0.116163f, 0.23116f, 0.0276252f, 0.361075f, 0.114999f, -0.179934f, 0.0362276f, 0.098386f, 0.160729f, -0.203046f, -0.0214891f, -0.0217361f, -0.0319598f, -0.0163527f, 0.0405451f, -0.0441358f, -0.0010904f, -0.219479f, -0.0129676f, 0.0840713f, -0.334326f, -0.275725f, 0.00787852f, 0.102421f, 0.0265449f, -0.0439835f, -0.160807f, 0.128618f, 0.00937286f, 0.0634051f, 0.17013f, -0.149011f, -0.148228f, -0.185353f, -0.230108f, 0.0953904f, -0.0328099f, 0.08806f, 0.164153f, -0.155663f, 0.00662038f, 0.106636f, -0.110083f, -0.123108f, -0.0422361f, 0.00699063f, 0.0286107f, 0.0872556f, 0.0372735f, 0.129417f, 0.0114595f, 0.127069f, 0.0845895f, -0.103232f, -0.084375f, 0.0507973f, 0.0924024f, -0.0443189f, -0.0373084f, -0.0547004f, -0.107631f, -0.0137342f, -0.0308677f, 0.0818465f, 0.0348359f, -0.108934f, -0.0827724f, 0.0323507f, 0.0412687f, 0.0808453f, -0.051265f, 0.0951301f, -0.144128f, 0.0754425f, -0.127725f, 0.0168919f, -0.0751399f, -0.0739095f, 0.00380989f, -0.118355f, 0.131179f, 0.123024f, 0.13949f, -0.0452833f, 0.0908636f, -0.044923f, 0.0656833f, 0.154517f, -0.0803701f, -0.0962871f, 0.0389703f, 0.208096f, -0.0663933f, -0.131471f, -0.0790224f, 0.101245f, 0.0744562f, 0.210848f, -0.0880954f, 0.28261f, -0.0400531f, -0.0429046f, 0.115284f, 0.0810933f, -0.0732279f, -0.0363539f, 0.0390622f, 0.194268f, -0.125276f, 0.0660326f, -0.0191896f, -0.107549f, -0.068292f, 0.0296083f, -0.148026f, 0.00504009f, 0.136341f, 0.0185907f, 0.0354229f, 0.0570693f, -0.0652823f, 0.053643f, -0.226353f, -0.0586207f, 0.102557f, -0.0804407f, -0.0549814f, -0.0189678f, 0.0337161f, -0.240366f, -0.0152426f, -0.032301f, 0.0503872f, -0.00353695f, 0.0145041f, -0.0507668f, 0.0484236f, 0.0752401f, 0.131723f, 0.137027f, 0.0677545f, 0.149137f, -0.136712f, -0.047893f, -0.196069f, 0.000413097f, 0.0625105f, 0.0322905f, 0.053051f, -0.0330334f, 0.00132125f, 0.113487f, -0.120027f, 0.101515f, -0.0197327f, -0.0517467f, -0.11808f, 0.0443416f, 0.0221126f, 0.114449f, -0.0283071f, -0.139215f, 0.0598481f, 0.100257f, 0.0225039f, 0.0457186f, 0.0902391f, -0.0631196f, 0.0257833f, 0.112569f, -0.19343f, -0.0384445f, 0.0758919f, -0.0712537f, 0.00513168f, 0.151857f, -0.142854f, -0.0268036f, 0.0715712f, -0.0574248f, -0.03567f, -0.166058f, 0.0211768f, -0.119797f, -0.11925f, -0.0453431f, 0.0293065f, 0.120933f, 0.00402085f, 0.109672f, 0.134472f, 0.195219f, 0.180352f, -0.0515071f, -0.0545261f, 0.0322048f, 0.012976f, 0.0343293f, -0.0513619f, -0.0167084f, -0.160956f, -0.0328522f, -0.0399779f, 0.114662f, -0.0672433f, 0.125241f, -0.102642f, 0.0559623f, 0.13515f, 0.066221f, 0.0132642f, 0.0813321f, -0.0672475f, -0.0972056f, 0.0324055f, 0.0954416f, 0.0394797f, -0.0865308f, 0.0588531f, 0.0190956f, 0.102544f, 0.0641314f, 0.05755f, 0.114106f, 0.0457606f, -0.0910149f, -0.143913f, 0.194996f, 0.0472138f, 0.0982623f, 0.0933318f, -0.0164617f, 0.167852f, 0.0858759f, 0.024742f, -0.0244132f, -0.0391241f, -0.154507f, 0.232425f, 0.0863314f, -0.0912234f, -0.0686242f, -0.0843728f, -0.0843567f, 0.0455852f, 0.0630358f, -0.092492f, -0.22545f, 0.0876258f, -0.0352342f, -0.359393f, -0.0194426f, 0.294886f, -0.0433901f, 0.0325373f, -0.324941f, -0.0427619f, 0.0448717f, -0.15146f, 0.0438511f, -0.220376f, -0.0819532f, -0.0174128f, 0.100561f, 0.0430337f, 0.0414014f, 0.121123f, -0.0788664f, -0.168092f, 0.033273f, -0.11762f, -0.0747128f, 0.0525967f, -0.150569f, -0.236359f, 0.278161f, 0.0885922f, 0.244919f, -0.168161f, 0.0686316f, 0.012994f, -0.0216511f, -0.230709f, -0.0114048f, 0.0636575f, -0.0553088f, -0.192013f, 0.0983257f, 0.0901875f, -0.0105777f, -0.0940917f, 0.221411f, 0.0282917f, -0.0284609f, 0.0485826f, -0.0397148f, -0.101875f, 0.0899159f, -0.114372f, -0.0717718f, -0.0650426f, 0.0715851f, 0.173865f, -0.0590554f, 0.240822f, -0.0405229f, 0.187867f, -0.160394f, -0.117823f, 0.0841448f, 0.0290731f, -0.129093f, -0.158988f, -0.0964775f, -0.106913f, -0.0510117f, -0.18104f, 0.0471442f, 0.280828f, 0.218015f, 0.0462861f, -0.0360041f, -0.0760816f, -0.101383f, 0.140904f, -0.00188858f, 0.0512563f, 0.0795458f, -0.0592014f, -0.0480013f, -0.198783f, -0.0743156f, 0.00823776f, 0.00302121f, -0.158797f, -0.337508f, -0.0621661f, -0.0796384f, 0.0180529f, 0.282215f, 0.118301f, 0.0741615f, -0.143692f, 0.091673f, -0.0364806f, -0.0114767f, 0.0780368f, -0.0897321f, -0.152821f, -0.0671889f, -0.0692471f, 0.0876068f, -0.0775014f, -0.0218678f, 0.0988145f, 0.0365032f, 0.0649689f, 0.207876f, -0.0245112f, -0.154562f, -0.10886f, 0.0325802f, -0.24719f, 0.0370411f, -0.0360635f, -0.00888619f, -0.242136f, -0.0329173f, 0.0785577f, 0.271041f, -0.0185736f, -0.108456f, -0.00761614f, -0.0269069f, -0.00430044f, 0.0505398f, -0.000320044f, 0.0520941f, -0.159526f, -0.124799f, -0.143481f, -0.183575f, -0.063532f, -0.0748322f, 0.101428f, -0.0520108f, 0.063462f, -0.00296892f, 0.101294f, 0.153199f, 0.0206717f, -0.103064f, -0.179984f, -0.177949f, 0.140065f, -0.127144f, -0.0333468f, 0.0467561f, -0.00343087f, 0.180397f, -0.0121281f, -0.0672522f, 0.0404061f, 0.167426f, -0.0522661f, -0.0227105f, 0.0889145f, -0.0707926f, 0.0423966f, -0.0184403f, 0.0206349f, -0.091981f, -0.10978f, -0.0315829f, 0.0320504f, -0.0145855f, -0.112708f, 0.0282959f, 0.0218289f, 0.136329f, 0.140791f, 0.149901f, 0.0948601f, 0.0295434f, 0.0146677f, 0.0952558f, 0.0422617f, 0.0350605f, -0.0243103f, -0.0111926f, 0.108864f, 0.179619f, 0.134015f, -0.00186874f, 0.0113527f, 0.171912f, 0.0973041f, -0.00204195f, -0.00121672f, 0.0485887f, 0.187415f, 0.122391f, 0.0741455f, -0.0586289f, -0.0784467f, 0.0178936f, 0.044156f, -0.0177429f, -0.1245f, -0.0766287f, -0.0274828f, -0.209541f, -0.107082f, -0.0448177f, 0.102689f, 0.066247f, -0.207502f, 0.201752f, -0.0682319f, 0.000157785f, -0.0624622f, 0.0829125f, 0.0572581f, 0.0324885f, -0.255542f, -0.0242865f, 0.133733f, 0.125331f, 0.0444277f, -0.0740691f, -0.305656f, -0.0979331f, 0.0137294f, -0.186448f, 0.0440386f, -0.0269379f, 0.100561f, -0.0473734f, 0.0189935f, -0.110422f, 0.0765553f, -0.0533288f, 0.0557821f, 0.15486f, -0.0696687f, 0.018034f, -0.048962f, 0.26856f, 0.0694982f, 0.0779114f, -0.0491336f, -0.0715103f, -0.073851f, -0.0788125f, 0.131468f, 0.0029189f, -0.0617308f, 0.0079196f, 0.0967586f, 0.0700419f, -0.0104907f, 0.0532375f, -0.139393f, -0.0927297f, 0.0201045f, 0.0178144f, -0.0568273f, 0.117868f, 0.178675f, 0.0967953f, -0.140062f, -0.0890961f, -0.107846f, 0.176296f, -0.041206f, 0.0692927f, 0.199868f, 0.0252243f, -0.0926268f, 0.0372654f, 0.067384f, -0.0294065f, 0.0167733f, -0.0277856f, -0.00286399f, 0.0238443f, -0.00258016f, -0.0551158f, 0.0812973f, -0.0515719f, -0.0200198f, 0.0350771f, -0.141078f, 9.13782e-05f, -0.0692944f, -0.207666f, 0.0467013f, 0.0698437f, 0.0171331f, 0.0714376f, -0.0993458f, 0.0440245f, 0.212063f, -0.144622f, 0.00450367f, 0.139606f, -0.0501133f, -0.0102619f, -0.211941f, -0.127275f, 0.253289f, -0.123098f, 0.170057f, 0.092615f, -0.163819f, 0.196475f, -0.18187f, 0.0981483f, 0.0925714f, 0.121395f, 0.0132756f, 0.143471f, -0.128311f, 0.140034f, -0.0555017f, 0.142239f, -0.0958642f, 0.112803f, 0.0213153f, -0.0851649f, 0.0340842f, 0.343708f, 0.178607f, -0.0793312f, -0.123594f, -0.0453247f, -0.0840823f, -0.164602f, 0.00628157f, 0.168223f, 0.0182086f, 0.220889f, 0.0619126f, -0.224789f, 0.016324f, 0.105973f, 0.133024f, -0.0163574f, 0.22635f, -0.162561f, -0.0975535f, -0.148272f, -0.0956684f, 0.0381995f, 0.0676893f, -0.335305f, -0.190542f, 0.136389f, 0.0535692f, -0.0605476f, 0.0554843f, 0.0997467f, 0.00862075f, -0.226586f, -0.16497f, 0.0201992f, -0.0772015f, 0.0788386f, -0.117927f, 0.144615f, 0.00799103f, -0.0351088f, -0.0113093f, 0.132909f, -0.0358592f, -0.0122538f, 0.155776f, 0.0282121f, -0.16227f, -0.0151059f, -0.0187413f, 0.0857813f, -0.0785807f, 0.0621579f, -0.0501869f, -0.0249879f, -0.186399f, -0.178681f, 0.221563f, -0.00791696f, -0.0576498f, 0.00587176f, 0.0268011f, -0.00445795f, -0.115657f, -0.0405289f, 0.0175926f, -0.0100064f, -0.140753f, -0.0258144f, -0.0725655f, 0.234874f, -0.0863728f, 0.139723f, -0.19378f, 0.198153f, -0.000494459f, -0.173008f, 0.0953991f, 0.169061f, -0.013775f, 0.00814875f, 0.105978f, 0.0218623f, -0.0150824f, -0.00845808f, -0.202008f, -0.152247f, 0.00751242f, 0.213069f, -0.0448261f, -0.250221f, -0.104704f, -0.0217631f, 0.168254f, 0.0315712f, -0.0451418f, 0.106817f, -0.135847f, -0.262978f, -0.113509f, 0.127917f, -0.208706f, -0.121287f, 0.0771521f, -0.0467399f, 0.127534f, -0.052607f, 0.0258406f, -0.132387f, 0.0608249f, -0.0326503f, 0.140262f, 0.0132674f, -0.176895f, 0.128123f, 0.192034f, -0.104261f, -0.12386f, -0.0531352f, -0.059036f, -0.123427f, 0.090708f, 0.115284f, -0.0551993f, 0.0106573f, 0.185406f, 0.0556199f, -0.0099576f, 0.0141045f, 0.0901436f, -0.0053439f, -0.0419934f, 0.0176783f, -0.039611f, 0.31635f, 0.0688501f, -0.00859634f, 0.0807408f, 0.0353497f, 0.0402697f, -0.0472012f, -0.226557f, 0.0506318f, -0.0369554f, 0.15113f, 0.0176626f, 0.0228614f, 0.166845f, 0.167796f, 0.084194f, -0.0459883f, 0.0610326f, -0.018784f, 0.000815405f, -0.085279f, -0.104616f, -0.00875845f, 0.0192147f, 0.0114769f, -0.047343f, -0.00482453f, 0.0356457f, -0.0655179f, 0.0709537f, -0.0603955f, 0.0863833f, 0.0999315f, 0.00705398f, 0.00362584f, -0.00647712f, 0.074964f, 0.101683f, 0.0921386f, 0.0793896f, 0.0830977f, 0.0156262f, 0.0243862f, 0.016024f, 0.0701486f, 0.284074f, 0.108565f, -0.168411f, -0.0581087f, 0.177248f, 0.118877f, -0.23371f, -0.133581f, 0.0893517f, 0.0897357f, -0.0561381f, -0.0354253f, 0.020553f, 0.078302f, -0.0117755f, -0.0433998f, -0.0104717f, -0.150325f, -0.16587f, 0.00122702f, 0.0979206f, 0.00300825f, -0.0496534f, 0.130813f, 0.0659582f, 0.182842f, 0.157746f, -0.0229205f, -0.184419f, 0.0222686f, -0.00994201f, -0.303319f, -0.0104238f, -0.0299203f, 0.0216778f, -0.146331f, 0.0913194f, 0.0219254f, -0.215296f, -0.116976f, 0.165147f, -0.0710141f, -0.0461321f, -0.139086f, 0.126077f, -0.0845732f, 0.048919f, -0.127741f, -0.0226093f, -0.029325f, 0.168392f, -0.0115994f, 0.0735731f, -0.167067f, -0.0868217f, 0.0779401f, 0.0208533f, -0.00414653f, -0.0786065f, 0.080362f, 0.114412f, -0.119166f, 0.0927742f, -0.0886966f, -0.0475087f, -0.0553333f, -0.163707f, -0.00182551f, 0.00339286f, -0.0243587f, -0.133708f, 0.0435995f, 0.122672f, 0.0222556f, 0.0719079f, 0.155192f, -0.0655534f, -0.000694311f, -0.175752f, 0.166626f, 0.109869f, -0.144333f, -0.189351f, 0.0930466f, 0.0421676f, 0.121991f, 0.0242376f, -0.24684f, 0.0192133f, -0.00721696f, 0.0515523f, 0.0182745f, -0.179138f, -0.153891f, -0.206407f, 0.109263f, -0.0665639f, -0.167768f, -0.0382564f, -0.0991432f, 0.00114097f, -0.270128f, -0.136406f, -0.0342589f, -0.085211f, -0.0985847f, 0.028126f, -0.0612121f, 0.0226484f, -0.145462f, 0.119119f, 0.100325f, 0.131587f, -0.0651782f, 0.121331f, 0.0844396f, 0.0296183f, -0.0205646f, -0.0743535f, -0.0127071f, 0.0860608f, 0.00928115f, -0.217887f, 0.051828f, -0.0399206f, -0.19158f, -0.231826f, 0.110878f, 0.0364731f, 0.0475292f, 0.124959f, 0.125509f, -0.113549f, -0.0945701f, 0.0452462f, -0.194241f, -0.0748856f, -0.0848238f, -0.0705846f, -0.00737421f, -0.00306336f, 0.0818608f, 0.1876f, -0.0164862f, -0.0988693f, -0.0722961f, 0.0717543f, -0.0731678f, -0.0334917f, 0.0126872f, 0.0109792f, -0.0218576f, -0.02024f, 0.126492f, -0.0456014f, -0.0647152f, -0.0223219f, 0.290865f, -0.00461306f, 0.0772482f, 0.028516f, -0.145756f, 0.222435f, -0.0844253f, -0.0490738f, 0.136191f, 0.0917838f, -0.148446f, -0.0245094f, 0.0841544f, 0.0565493f, -0.0285964f, 0.11791f, 0.123028f, -0.0622476f, 0.010014f, -0.204865f, -0.0660146f, -0.0292581f, -0.0239985f, -0.183919f, 0.0633088f, 0.0354361f, -0.0278989f, -0.15381f, 0.010669f, 0.0254481f, 0.088751f, 0.18636f, -0.0357405f, 0.0163929f, 0.140702f, 0.0699074f, -0.179903f, 0.079496f, -0.0188685f, 0.0594603f, -0.0384411f, 0.124561f, 0.101308f, -0.0540631f, 0.104384f, -0.020024f, -0.0242527f, -0.0167859f, -0.156694f, -0.185201f, -0.0148136f, 0.0904471f, 0.114801f, -0.0383085f, -0.0753128f, -0.025013f, -0.00577859f, 0.00730319f, 0.0920455f, 0.00390995f, 0.0667231f, 0.00237347f, 0.0823384f, -0.0812348f, -0.11555f, 0.122286f, 0.0853818f, -0.0323922f, 0.0673012f, 0.0556096f, 0.0134518f, 0.0754678f, 0.0553623f, -0.0689427f, 0.0264757f, 9.96166e-05f, -0.12167f, 0.119696f, -0.00397614f, 0.110184f, -0.16388f, -0.144619f, 0.00994338f, 0.0653049f, 0.118631f, -0.0271103f, -0.159197f, 0.0264458f, 0.0377331f, 0.00670557f, 0.132711f, -0.146988f, 0.0410815f, 0.033654f, -0.0689339f, -0.0323166f, -0.0235119f, 0.0461265f, 0.0404163f, 0.029665f, 0.0703973f, -0.159501f, -0.0205369f, -0.0640582f, 0.0522346f, 0.134372f, -0.0632503f, -0.144296f, -0.127083f, -0.0114842f, -0.0611535f, 0.0999514f, 0.0472518f, 0.185726f, 0.0274118f, -0.0405062f, -0.168224f, 0.161777f, 0.206253f, -0.169522f, -0.015894f, 0.370152f, 0.000467996f, 0.0926897f, -0.0337247f, 0.127827f, -0.08163f, -0.0630913f, -0.0420639f, 0.0687435f, -0.0464481f, -0.0504583f, 0.0731616f, 0.06786f, 0.132546f, 0.101275f, -0.122851f, 0.0935017f, 0.00623603f, 0.0768964f, -0.00366004f, -0.156684f, 0.0801176f, 0.14025f, 0.113511f, -0.0676626f, 0.05901f, -0.0824732f, -0.180079f, -0.0657939f, -0.0619872f, -0.134686f, 0.0913632f, 0.085415f, -0.178582f, -0.184222f, -0.214777f, 0.0349062f, 0.0340991f, 0.0322368f, 0.210072f, 0.0102769f, 0.202452f, -0.0182071f, 0.00892899f, -0.279069f, -0.290953f, -0.0228499f, 0.111496f, 0.132749f, -0.0576087f, -0.0564363f, 0.0847626f, -0.0462059f, 0.0654138f, 0.0678649f, 0.101326f, -0.00636211f, -0.00278047f, -0.0505565f, -0.219111f, -0.149995f, 0.146089f, -0.0528913f, -0.0375884f, 0.358996f, -0.08679f, 0.117836f, -0.0942597f, -0.254633f, -0.00506417f, 0.0682066f, 0.121637f, 0.208151f, 0.0672187f, 0.0504415f, -0.0252887f, 0.205132f, 0.127923f, -0.0793721f, -0.0561765f, -0.156301f, -0.121047f, 0.169479f, 0.143351f, -0.158008f, 0.111533f, -0.0609109f, -0.00240044f, 0.023942f, -0.0815071f, -0.0680816f, -0.0747979f, 0.0811401f, 0.12873f, -0.205013f, 0.0311016f, 0.110573f, -0.216827f, 0.107585f, 0.0539796f, 0.152026f, -0.0463614f, 0.0130653f, -0.0105645f, -0.036467f, -0.0317826f, -0.00611716f, -0.0303259f, 0.0700739f, -0.106284f, -0.00853787f, -0.00211293f, -0.115054f, 0.0910871f, -0.12691f, -0.0485328f, 0.160897f, 0.0732904f, -0.13478f, -0.0361281f, 0.105366f, 0.159763f, 0.212194f, -0.0815196f, -0.0221129f, 0.0200345f, -0.06203f, 0.10234f, 0.161206f, -0.137448f, 0.0868787f, -0.144418f, 0.243887f, -0.16322f, 0.0377241f, 0.0818148f, -0.0433454f, -0.197481f, 0.155739f, 0.194721f, -0.16472f, -0.0739804f, 0.142539f, 0.108739f, 0.0184933f, 0.221583f, -0.0459288f, 0.0686786f, 0.028198f, 0.149859f, 0.251046f, 0.01805f, 0.0313838f, -0.0607054f, -0.148719f, 0.00572261f, -0.0295078f, 0.202119f, -0.0688806f, -0.0872185f, -0.0738928f, -0.0842145f, 0.0159338f, 0.0397653f, 0.123095f, -0.0581185f, -0.0994909f, -0.13393f, -0.0370074f, 0.16904f, -0.0708192f, -0.0754798f, -0.0579512f, -0.173857f, 0.106638f, -0.0342493f, -0.00758789f, -0.0617094f, -0.26003f, -0.0850962f, -0.0474492f, 0.0724282f, -0.044732f, 0.0741011f, -0.0366434f, -0.0499079f, 0.0666642f, 0.0492916f, -0.0908142f, 0.0875124f, -0.193158f, 0.0408296f, 0.115251f, -0.0375242f, -0.101852f, -0.131482f, -0.1898f, -0.0180383f, -0.00476736f, 0.00334787f, 0.00182473f, -0.0459181f, 0.0870828f, -0.0580641f, -0.149119f, -0.0227925f, 0.0657165f, -0.0277835f, -0.141894f, 0.0448996f, 0.00838565f, 0.0153908f, 0.154899f, 0.171492f, 0.0929689f, -0.0726922f, -0.0222083f, 0.0649919f, -0.0237814f, -0.128347f, -0.0895591f, 0.100279f, -0.13608f, 0.29876f, 0.217687f, -0.0138976f, 0.126944f, 0.119621f, -0.144559f, 0.102179f, -0.0180163f, 0.085345f, -0.0475189f, -0.239579f, -0.026328f, 0.152163f, -0.0102625f, -0.0112962f, 0.265043f, 0.0199936f, -0.131415f, 0.0719167f, -0.106391f, -0.125173f, -0.0266488f, -0.00830649f, -0.0198297f, -0.149058f, 0.230543f, 0.0817075f, -0.0851508f, -0.137278f, 0.0801695f, -0.0539673f, 0.17062f, -0.0650049f, 0.13379f, -0.135659f, 0.097116f, 0.0656133f, -0.069825f, -0.0169667f, -0.306699f, -0.00195387f, -0.197762f, -0.244064f, 0.194315f, 0.0406425f, -0.0846421f, -0.109702f, 0.00962155f, 0.0638243f, 0.151184f, 0.0504319f, 0.00645732f, -0.270866f, 0.0984852f, 0.0455063f, -6.03981e-05f, 0.120458f, -0.0850411f, 0.100736f, 0.0478779f, 0.221077f, -0.112596f, 0.0820581f, 0.0271296f, -0.205727f, -0.141208f, 0.0294533f, -0.106681f, -0.243474f, 0.0357164f, 0.0581802f, -0.101303f, -0.0139202f, 0.196134f, 0.107937f, -0.0544005f, -0.0661761f, 0.31173f, -0.0612939f, -0.0829115f, 0.00350939f, -0.0646918f, 0.181386f, -0.101009f, -0.0243713f, -0.0296007f, 0.0730814f, 0.0542519f, -0.208174f, 0.0203016f, -0.0407686f, 0.0385432f, -0.0674441f, -0.066084f, -0.204911f, -0.0424466f, -0.0823417f, -0.104815f, 0.00773922f, 0.00735693f, 0.0405269f, 0.0106065f, 0.132024f, -0.0192005f, -0.126572f, 0.0429317f, -0.0394362f, -0.110754f, 0.112256f, -0.173194f, -0.0574455f, 0.161248f, -0.155649f, -0.0153652f, -0.176656f, -0.0855819f, -0.0560111f, -0.094803f, -6.9748e-06f, 0.0330912f, 0.0135079f, 0.0253883f, -0.0340213f, 0.0133895f, -0.0487959f, -0.0567942f, 0.0073305f, 0.0404094f, -0.0603053f, 0.0314057f, -0.0981589f, -0.00603633f, 0.0303509f, -0.094885f, -0.101597f, 0.112478f, 0.18607f, -0.00654307f, 0.0428245f, 0.161417f, -0.0788306f, 0.000461828f, 0.121395f, 0.0005212f, -0.157768f, 0.0352908f, -0.11757f, 0.0988206f, 0.102103f, -0.0447607f, 0.164419f, 0.0334563f, 0.172619f, -0.106307f, -0.109634f, 0.0702444f, 0.0242332f, 0.0851643f, -0.12248f, -0.0470167f, 0.18609f, 0.161624f, 0.0167193f, -0.0364087f, -0.225782f, -0.0370813f, 0.0930594f, -0.0777285f, 0.0698708f, -0.279222f, -0.270969f, -0.109092f, 0.0314784f, 0.114709f, -0.00971972f, 0.058653f, 0.0344798f, 0.0160749f, -0.0732088f, -0.120663f, -0.0919176f, 0.0405344f, 0.00374037f, -0.0592213f, -0.0754498f, -0.00784496f, 0.175991f, 0.155743f, 0.322885f, 0.12644f, 0.0688629f, -0.217905f, 0.0834167f, 0.0390054f, 0.226054f, -0.0589343f, 0.00422749f, -0.187125f, -0.0773547f, 0.161565f, -0.00691263f, 0.180562f, -0.238656f, -0.113077f, 0.0518564f, 0.112608f, -0.264156f, -0.0161887f, 0.142421f, 0.0337453f, 0.154352f, -0.0275722f, -0.10557f, 0.000596952f, -0.0285571f, -0.0929283f, 0.133982f, -0.0873064f, -0.061734f, -0.159023f, 0.077251f, 0.0277605f, -0.00845134f, -0.129084f, -0.0795942f, -0.0481981f, -0.110448f, -0.0184389f, 0.123008f, 0.107019f, -0.0860279f, 0.00372084f, 0.072156f, 0.0675655f, 0.070688f, -0.0726114f, 0.0367046f, -0.174351f, -0.0660226f, 0.182365f, 0.0898932f, 0.079161f, -0.0760877f, -0.319183f, 0.157357f, 0.0288205f, -0.0287369f, 0.0531748f, 0.0113543f, -0.00183423f, 0.0711047f, 0.159513f, 0.0342131f, -0.00487889f, -0.0817453f, 0.250463f, -0.0284279f, -0.0377289f, -0.0904096f, 0.317344f, 0.0449011f, -0.0521865f, 0.0382946f, 0.20204f, -0.0247765f, -0.149713f, -0.0358974f, -0.161146f, -0.17722f, -0.0379701f, 0.0566355f, -0.103364f, -0.0372382f, -0.0403359f, -0.044241f, -0.0155164f, 0.121921f, -0.0601127f, 0.0684083f, -0.00531953f, -0.000575791f, 0.13219f, -0.0524841f, -0.000373635f, 0.0187546f, 0.0956514f, -0.0432686f, 0.107781f, -0.0935017f, 0.0962704f, -0.166151f, 0.00697562f, 0.0362284f, -0.0268233f, -0.0616627f, 0.208481f, -0.0909199f, 0.0325374f, -0.0185765f, 0.0499102f, 0.231498f, 0.0146188f, 0.000875598f, -0.0719198f, 0.0754061f, -0.0663974f, -0.109134f, -0.118688f, 0.0247073f, -0.114238f, 0.091028f, 0.0361002f, -0.00499809f, -0.0550956f, -0.0406556f, 0.053865f, -0.00972763f, -0.0177384f, 0.0329161f, -0.0245598f, 0.00930862f, 0.215003f, 0.046014f, -0.103101f, -0.102586f, 0.172648f, 0.308194f, 0.00203503f, -0.077075f, -0.04961f, -0.160022f, -0.0682138f, 0.025242f, -0.0804685f, -0.223623f, -0.19025f, 0.0165835f, -0.0501993f, -0.0413633f, -0.145179f, -0.00213924f, 0.123645f, -0.0311368f, 0.113178f, -0.0101823f, -0.0361475f, 0.0964516f, 0.13692f, 0.118838f, -0.0359253f, 0.178834f, 0.142814f, 0.108264f, -0.0533048f, 0.0224323f, -0.0869867f, 0.1928f, 0.103927f, 0.0347344f, -0.0612816f, -0.0359572f, -0.0563679f, -0.0783742f, 0.00209833f, 0.0117178f, 0.120654f, -0.1035f, 0.115381f, -0.014589f, 0.0835337f, -0.109606f, 0.0554175f, -0.0117645f, 0.0735395f, 0.28248f, -0.00215742f, 0.0541724f, -0.0709023f, 0.05168f, 0.0336764f, 0.0829889f, -0.154695f, 0.142443f, 0.0621448f, 0.0816364f, 0.0971748f, -0.0347333f, 0.0912891f, 0.0329896f, -0.129578f, -0.0778539f, -0.111941f, -0.00476076f, 0.0490305f, -0.0046601f, 0.217866f, -0.0191019f, -0.0588361f, 0.172585f, -0.232674f, 0.10165f, -0.123439f, -0.0534576f, -0.0148523f, 0.000395795f, 0.211512f, -0.210344f, 0.469005f, -0.0246099f, 0.102876f, 0.100109f, -0.217879f, -0.0679756f, -0.0749751f, -0.0677645f, -0.0840007f, -0.027203f, -0.043259f, -0.117643f, -0.025526f, -0.0402664f, -0.05038f, -0.00527167f, 0.203404f, 0.0409284f, 0.00394163f, -0.0320391f, 0.0458514f, -0.183136f, 0.056115f, -0.123375f, 0.107744f, 0.0841868f, -0.0515625f, 0.0295452f, -0.0890182f, 0.0736166f, -0.0984962f, -0.143159f, 0.0378522f, 0.187563f, 0.0771938f, -0.117103f, -0.0674864f, -0.204715f, 0.12022f, -0.228907f, -0.000710857f, 0.0979078f, -0.0624472f, 0.187522f, 0.0821749f, 0.0949648f, 0.0565785f, 0.0628847f, 0.00677163f, -0.032064f, -0.0213019f, 0.128268f, 0.105937f, 0.269875f, 0.046035f, 0.0635842f, -0.105716f, -0.181148f, 0.0146467f, 0.0407832f, 0.0485354f, -0.0271778f, 0.142066f, 0.0953618f, -0.0412729f, -0.0725773f, 0.0248198f, -0.0495635f, 0.0979875f, 0.122572f, -0.0275678f, 0.0222445f, 0.0457587f, -0.163481f, 0.156041f, 0.00626979f, 0.0725135f, 0.0127444f, -0.131288f, -0.139553f, -0.0171093f, -0.0370769f, 0.0528362f, -0.251222f, -0.027922f, 0.017252f, 0.0457254f, 0.037921f, -0.0340891f, 0.133788f, 0.0858977f, -0.0118427f, -0.0657502f, -0.154473f, 0.0548952f, -0.0682875f, 0.229189f, 0.0540929f, -0.061801f, 0.00521075f, -0.0291024f, -0.0329822f, -0.0427182f, -0.0974417f, 0.0328311f, 0.145152f, -0.0293305f, 0.0746478f, -0.0179712f, 0.170347f, 0.110984f, -0.109048f, -0.0182257f, -0.0721303f, 0.0603937f, 0.0308048f, -0.0624456f, 0.0323034f, 0.0507288f, 0.0235858f, -0.0403662f, 0.0492176f, 0.124347f, -0.0753749f, 0.132866f, -0.214677f, 0.0255701f, -0.108109f, 0.0740564f, 0.178181f, 0.0812858f, -0.0166243f, 0.110087f, -0.0197837f, -0.116514f, 0.0347567f, -0.139605f, 0.151246f, 0.0593472f, 0.0560066f, -0.137867f, 0.0729474f, -0.0430025f, -0.149958f, -0.236727f, 0.162334f, -0.0541904f, -0.158737f, -0.146193f, -0.0794956f, 0.0818801f, 0.072588f, 0.103179f, -0.121259f, 0.0735243f, 0.0113247f, 0.20007f, -0.0523187f, -0.0473618f, -0.0911523f, -0.118989f, -0.0716201f, -0.121752f, 0.263995f, 0.173536f, -0.0889619f, -0.0420394f, -0.151839f, -0.0761855f, 0.0658923f, -0.0701936f, -0.177004f, -0.0547861f, -0.015202f, -0.00357922f, 0.100469f, 0.267598f, -0.151382f, 0.0224132f, -0.0588889f, 0.0870429f, -0.157965f, 0.0274763f, 0.17281f, 0.119041f, -0.223712f, 0.0291605f, -0.0565674f, 0.0498508f, -0.127293f, 0.110274f, -0.0598819f, -0.0851282f, 0.0934764f, -0.190259f, 0.145679f, 0.176189f, 0.0517863f, 0.0602086f, 0.0428395f, 0.116015f, 0.14247f, -0.173053f, 0.119458f, 0.168445f, 0.0513431f, 0.0476729f, -0.00270212f, 0.0371649f, -0.013634f, -0.00374531f, -0.187704f, 0.0154535f, 0.080569f, -0.0584067f, -0.0379629f, 0.058911f, 0.0227231f, -0.0767663f, -0.114519f, 0.0545278f, 0.0433426f, 0.115809f, -0.107319f, 0.0356108f, -0.188816f, -0.0956224f, 0.0149959f, -0.109566f, -0.101362f, 0.121146f, -0.202317f, 0.312493f, -0.192223f, 0.0533858f, 0.0389283f, -0.031656f, 0.161431f, 0.00800317f, 0.0156512f, 0.172804f, -0.0439582f, 0.160328f, 0.0681495f, -0.100676f, -0.0564418f, 0.0822967f, -0.361322f, -0.0882227f, 0.00480206f, -0.230367f, -0.238302f, 0.087099f, -0.155299f, -0.0957393f, 0.191707f, -0.129323f, -0.235908f, 0.153018f, 0.0256241f, -0.346757f, 0.0385961f, -0.00697349f, 0.117679f, 0.149925f, 0.0663061f, 0.122076f, -0.0953967f, -0.0657201f, 0.140212f, 0.138994f, -0.122792f, 0.0401238f, 0.0347921f, -0.0888757f, 0.0953544f, 0.078522f, 0.164624f, 0.213171f, 0.0679546f, -0.134505f, -0.0283343f, -0.0415735f, -0.242619f, -0.0795108f, -0.132163f, 0.153644f, 0.037888f, 0.130176f, -0.0256915f, -0.0120679f, 0.0233503f, -0.0753665f, -0.0333763f, 0.0267694f, -0.216806f, -0.178769f, 0.0322943f, 0.141386f, 0.0173458f, 0.0211252f, -0.00953213f, -0.0910179f, 0.0546482f, -0.136684f, 0.269219f, -0.0590755f, -0.13305f, 0.113944f, -0.148639f, -0.0434122f, -0.163555f, 0.191413f, 0.208434f, 0.214745f, -0.061314f, -0.0380879f, 0.0986161f, -0.0939888f, 0.00416629f, 0.185235f, -0.157235f, -0.00613423f, -0.0846416f, -0.10866f, -0.0224339f, -0.214955f, 0.0683846f, 0.175048f, 0.161348f, -0.112771f, 0.12254f, -0.00496664f, -0.0522687f, -0.168367f, 0.371266f, 0.0382643f, 0.119417f, 0.0627995f, 0.330142f, -0.0287853f, -0.14184f, 0.0899962f, 0.0371859f, 0.103928f, -0.108667f, 0.049074f, 0.058157f, 0.0391799f, 0.0870731f, 0.321793f, 0.000572261f, -0.0195541f, -0.118719f, 0.0907994f, -0.0700519f, 0.0382184f, 0.227104f, 0.212335f, 0.047627f, -0.073622f, 0.0849035f, 0.0670489f, -0.00739742f, 0.151991f, 0.0708107f, 0.176417f, 0.149568f, -0.000626854f, -0.146807f, -0.111098f, -0.0545701f, 0.0794571f, -0.133683f, 0.22212f, -0.00187226f, 0.16306f, 0.0498503f, 0.0916642f, 0.199446f, 0.0271136f, 0.198759f, 0.126674f, 0.132349f, 0.0359271f, -0.105986f, -0.0288404f, 0.0737737f, -0.069132f, -0.107967f, 0.0727774f, 0.298493f, 0.0704923f, -0.00433016f, -0.0543909f, -0.157999f, -0.141107f, -0.118533f, -0.143359f, 0.11661f, 0.141672f, -0.0365257f, 0.00772911f, -0.0320574f, 0.00562881f, -0.0110184f, -0.17925f, -0.164518f, 0.0910001f, -0.0500575f, -0.100417f, 0.00109036f, -0.0386041f, -0.0385887f, 0.147545f, -0.0282409f, 0.0575225f, 0.272205f, 0.144783f, 0.0266403f, -0.0449117f, 0.0282341f, -0.00183043f, -0.10506f, -0.056399f, -0.0684179f, 0.0714739f, 0.0447198f, 0.0236807f, 0.056605f, -0.0358227f, -0.0388024f, -0.109701f, 0.108465f, -0.0799841f, 0.226032f, 0.0296582f, 0.0752317f, -0.0417484f, -0.00251694f, -0.0607814f, -0.108056f, -0.0556356f, -0.130543f, -0.120291f, 0.213003f, 0.0214225f, 0.00584085f, -0.0675413f, -0.00557502f, 0.0527302f, -0.0786162f, -0.0632066f, -0.00499547f, -0.0589725f, 0.113325f, 0.0685201f, -0.0857787f, 0.0936921f, 0.081481f, 0.0513278f, -0.0569653f, -0.177657f, 0.112916f, 0.0300974f, 0.0551348f, -0.159349f, 0.133455f, -0.134287f, 0.131509f, 0.0127834f, 0.117415f, 0.0861868f, 0.188152f, -0.0596614f, 0.0445275f, -0.0284248f, 0.0855275f, 0.147834f, 0.0520453f, 0.0823926f, -0.0272626f, -0.128915f, -0.0722884f, 0.0862391f, 0.00376402f, 0.0287283f, 0.0376815f, -0.0958195f, 0.0492384f, -0.0559696f, -0.045558f, -0.115853f, 0.104045f, 0.148082f, -0.0814995f, -0.0476794f, 0.0791956f, 0.0199157f, -0.129018f, -0.0630556f, -0.0767718f, -0.0829134f, 0.238502f, -0.0916194f, -0.0726179f, -0.11654f, -0.0436059f, 0.10451f, -0.0964034f, -0.0638973f, 0.23404f, 0.0458717f, -0.0285301f, 0.287048f, -0.134132f, -0.134034f, 0.0410712f, -0.0633622f, 0.0724423f, -0.0661121f, -0.105312f, -0.36242f, -0.0823323f, -0.111609f, -0.039246f, 0.0437769f, 0.000565853f, 0.224856f, 0.0887242f, 0.2744f, -0.142815f, 0.0246727f, -0.180066f, 0.106875f, -0.138448f, 0.135613f, 0.0194182f, 0.16573f, 0.132528f, 0.0872561f, -0.0847732f, -0.0232272f, -0.00710525f, -0.0291167f, 0.116438f, 0.0569064f, -0.109541f, -0.0746416f, -0.0405521f, 0.0779969f, 0.0271285f, -0.227607f, 0.19564f, -0.0407123f, 0.0447206f, -0.0470057f, -0.173843f, -0.0619797f, -0.0539832f, -0.153993f, 0.01572f, -0.138176f, -0.137165f, -0.132166f, 0.129374f, 0.0289758f, 0.057014f, -0.0881285f, -0.00260486f, 0.00884046f, 0.0455607f, 0.139475f, 0.0248122f, -0.187112f, -0.0929973f, -0.187711f, -0.0277693f, 0.21244f, -0.0638955f, 0.00261231f, 0.257271f, -0.0393011f, 0.132236f, 0.0704923f, 0.0131538f, -0.00991646f, -0.13077f, 0.009843f, 0.0122753f, 0.264451f, -0.105269f, 0.0708374f, 0.0937325f, 0.0427365f, -0.064863f, 0.00839128f, 0.0734033f, -0.059311f, 0.0089841f, 0.0862932f, 0.274432f, 0.0630902f, 0.0546411f, 0.111582f, 0.143942f, -0.0742699f, -0.0341754f, 0.0306475f, -0.0342186f, -0.0489278f, 0.209378f, 0.0764388f, -0.177037f, -0.0277749f, 0.191848f, 0.00819012f, 0.103408f, -0.00176977f, 0.177486f, -0.00329732f, -0.0644328f, 0.18469f, 0.0564194f, 0.245244f, 0.040421f, -0.0926763f, -0.177587f, 0.10681f, 0.0639101f, -0.126571f, -0.0627459f, -0.102859f, 0.0861041f, 0.307871f, 0.102007f, 0.0383946f, 0.15336f, 0.132546f, 0.134394f, -0.110318f, -0.0674608f, -0.156828f, 0.0553648f, 0.0161165f, -0.0120321f, 0.0107209f, 0.250589f, 0.192434f, -0.0601187f, -0.0788559f, -0.0631325f, -0.0298663f, 0.145766f, 0.0991106f, -0.166258f, -0.170731f, -0.0631831f, 0.145709f, -0.0215251f, 0.0898712f, 0.0959285f, 0.0748607f, 0.0729323f, 0.000784042f, -0.090907f, 0.00316911f, -0.180841f, -0.0219752f, 0.0072499f, 0.190194f, 0.160161f, -0.0536875f, 0.0653102f, 0.0931338f, 0.110166f, -0.106135f, 0.0162917f, 0.0715435f, -0.0887602f, 0.149379f, -0.177369f, -0.0329502f, -0.112293f, -0.199455f, 0.0270215f, 0.222825f, -0.11387f, -0.0743753f, -0.131991f, -0.0880726f, 0.0970628f, -0.0525572f, 0.00705545f, 0.0356413f, 0.0160315f, 0.0834361f, -0.0318797f, -0.0124734f, 0.0943407f, 0.0748987f, -0.0382874f, 0.058931f, -0.0974267f, 0.0810331f, 0.118376f, -0.159692f, 0.0994759f, -0.0429683f, -0.00188228f, 0.00745748f, -0.0382275f, -0.225161f, 0.0655033f, 0.0894096f, 0.119675f, 0.0929055f, -0.200835f, 0.0859509f, 0.0150305f, 0.060959f, 0.0952061f, -0.152332f, 0.177215f, 0.0154271f, -0.0974927f, 0.0392572f, -0.0235105f, -0.0130155f, 0.0467075f, 0.0697631f, 0.15563f, 0.175952f, 0.167312f, -0.0353084f, -0.0431333f, 0.105883f, -0.0345105f, 0.0198052f, 0.0194614f, 0.0425772f, 0.0642758f, -0.135864f, 0.296038f, 0.191229f, -0.115556f, -0.166978f, -0.0112536f, 0.0555504f, -0.0476803f, 0.0492445f, 0.0459494f, 0.214071f, -0.00591361f, 0.0607222f, 0.0340495f, 0.233836f, 0.0597213f, -0.0879274f, 0.0505745f, -0.0604938f, -0.266654f, -0.153542f, -0.206078f, -0.178227f, -0.168672f, -0.138656f, 0.268077f, 0.0205752f, 0.163125f, 0.199547f, 0.125297f, -0.1968f, 0.0479744f, 0.130152f, -0.0770827f, -0.0604686f, -0.0625255f, -0.0504935f, -0.144949f, -0.0938229f, -0.0448925f, 0.222758f, -0.0681382f, -0.0660635f, -0.105244f, 0.0711717f, -0.120427f, 0.0377428f, 0.132914f, -0.137678f, 0.012007f, 0.0618f, 0.0125061f, -0.164142f, -0.012324f, -0.166922f, 0.07234f, 0.048073f, 0.255044f, -0.0207798f, -0.0835459f, 0.0463638f, 0.18979f, 0.0844308f, 0.100276f, -0.0496919f, -0.100608f, 0.0242858f, -0.0980914f, -0.0796412f, 0.178373f, 0.0410912f, 0.0175745f, 0.0288237f, -0.0394135f, -0.0424368f, -0.14236f, -0.153841f, 0.0222358f, 0.0504833f, 0.0945223f, -0.0621098f, -0.0305613f, 0.0202656f, 0.131734f, -0.118036f, 0.0196659f, 0.144094f, -0.0766275f, -0.283195f, 0.151605f, -0.0389253f, 0.0637892f, 0.193152f, -0.0209977f, 0.253582f, -0.0778264f, 0.186167f, 0.0825451f, -0.023295f, -0.0792824f, -0.0707089f, -0.178696f, 0.11186f, -0.0452025f, 0.0738612f, 0.0129579f, -0.0619412f, -0.155263f, 0.1305f, -0.147599f, -0.0799781f, -0.109112f, -0.033514f, 0.0394846f, -0.190111f, 0.111105f, -0.0255946f, 0.0589856f, -0.114607f, 0.0668425f, -0.285232f, 0.0354405f, -0.00333251f, -0.0218019f, -0.105714f, 0.126994f, -0.0438589f, -0.214264f, 0.00219057f, -0.0783345f, -0.0104942f, 0.132301f, -0.121082f, 0.0529824f, -0.0551067f, 0.00661386f, 0.00175032f, -0.0497012f, 0.220264f, -0.093263f, -0.00943525f, 0.259071f, 0.202804f, -0.0422607f, -0.161806f, -0.154168f, -0.0462766f, 0.0902625f, -0.0135326f, -0.047336f, 0.036648f, 0.11816f, -0.0805548f, 0.255133f, 0.0454735f, 0.0279021f, 0.0537928f, 0.0547063f, 0.151402f, 0.0176965f, -0.00440483f, -0.205686f, 0.0764088f, 0.021828f, -0.193544f, 0.292588f, 0.040979f, -0.0728292f, 0.148619f, 0.153826f, -0.220085f, 0.113869f, 0.246681f, -0.057884f, 0.179553f, 0.0750444f, -0.0738771f, 0.144798f, -0.118541f, 0.140011f, -0.213109f, 0.218563f, 0.294634f, 0.185895f, 0.157788f, -0.1362f, -0.157909f, 0.11174f, 0.337991f, 0.0857814f, 0.0536436f, -0.012582f, 0.0473327f, -0.0784865f, 0.115365f, 0.326177f, 0.0422627f, -0.00285842f, 0.0283941f, -0.111546f, 0.105723f, -0.0723006f, -0.0221328f, -0.0105951f, 0.0991718f, -0.0392868f, -0.0584225f, -0.0800304f, -0.037926f, 0.175987f, 0.00121246f, 0.0226899f, -0.258225f, -0.00822019f, 0.11858f, -0.0564814f, -0.0658633f, 0.00266708f, -0.128026f, -0.0693174f, -0.0457778f, 0.264187f, -0.162937f, -0.0414696f, 0.171257f, 0.007658f, 0.00395017f, -0.140338f, -0.00978526f, 0.0288758f, 0.03454f, -0.0764987f, -0.0155282f, 0.210575f, -0.157301f, 0.00114538f, -0.0963804f, 0.123452f, -0.0610447f, -0.125864f, 0.108137f, 0.0999536f, -0.143575f, -0.0208251f, 0.0952736f, -0.012989f, 0.0448433f, -0.0133603f, -0.135674f, 0.218456f, -0.188652f, 0.0451715f, 0.0961409f, 0.0310139f, -0.00797584f, 0.0583903f, 0.0246629f, -0.0111583f, 0.0110281f, -0.0217884f, -0.0198457f, 0.000682905f, 0.154728f, -0.155413f, -0.251753f, 0.123911f, -0.0833131f, 0.078501f, 0.0615957f, -0.047863f, 0.00988068f, 0.00311942f, -0.0749786f, -0.0849391f, 0.00837908f, 0.0824322f, -0.0391383f, -0.0394313f, -0.0633632f, 0.101734f, 0.0677399f, 0.149852f, -0.0477991f, -0.104714f, 0.0807371f, -0.0288154f, -0.19025f, 0.133226f, -0.0855922f, -0.205452f, 0.133694f, 0.2193f, -0.115268f, -0.152828f, 0.0644212f, -0.13474f, -0.00418466f, -0.0586749f, 0.214339f, 0.0201869f, -0.0569237f, 0.121868f, -0.0250844f, -0.00612182f, -0.0460443f, -0.0547093f, 0.0825133f, 0.0874537f, -0.0962602f, -0.099678f, -0.0400507f, 0.150084f, 0.055895f, -0.0866807f, 0.0167682f, 0.0895822f, -0.0683397f, 0.0406722f, 0.00901364f, -0.036952f, 0.0151821f, 0.129439f, 0.114176f, -0.130048f, 0.162025f, 0.0544178f, -0.0135192f, 0.127936f, 0.0444373f, 0.0696283f, -0.0359577f, 0.0284889f, -0.0846976f, -0.198234f, -0.016698f, 0.0645268f, 0.100102f, -0.132388f, 0.0397982f, -0.16405f, 0.0796291f, -0.172208f, -0.110677f, 0.195553f, -0.00135103f, 0.0324908f, 0.114338f, -0.146503f, -0.0364143f, -0.00698319f, 0.185327f, 0.112794f, 0.0146411f, 0.00516997f, -0.0741633f, 0.143078f, 0.105597f, 0.0494355f, -0.00616047f, 0.0566299f, -0.251283f, 0.0615356f, 0.115824f, 0.0461655f, 0.0669317f, -0.139589f, 0.0728001f, -0.0920899f, -0.0405793f, -0.13037f, -0.0463053f, 0.057631f, -0.0708467f, -0.115391f, -0.140383f, -0.0211144f, -0.0948482f, -0.0313153f, 0.109514f, -0.033576f, -0.0574729f, -0.0882786f, -0.0238447f, -0.0304008f, 0.0745921f, 0.151296f, -0.0885721f, 0.223509f, 0.107232f, 0.0862027f, 0.0918841f, -0.0124349f, 0.093146f, -0.10309f, 0.00180291f, 0.00283113f, 0.0630533f, -0.240819f, 0.053405f, 0.0748347f, 0.0527197f, -0.0253875f, -0.00482912f, 0.11326f, 0.334863f, 0.16577f, -0.14447f, 0.0127792f, -0.122786f, 0.00269574f, -0.0730285f, 0.103715f, 0.0908264f, -0.077013f, 0.0666975f, -0.105594f, -0.22978f, 0.0355962f, -0.123153f, -0.0466776f, 0.0807791f, 0.189353f, 0.149165f, 0.252758f, 0.0699468f, 0.140927f, -0.240233f, -0.0126965f, -0.153619f, 0.216384f, -0.137699f, 0.0430931f, 0.0489138f, -0.082443f, 0.0521397f, 0.0123896f, 0.0516258f, 0.0374367f, -0.0354089f, 0.135221f, -0.0564659f, -0.0512903f, -0.00888598f, -0.093107f, -0.0854671f, 0.0837814f, -0.0282706f, 0.0639345f, 0.0953691f, 0.0860188f, -0.189737f, 0.130907f, -0.0329583f, 0.0297436f, -0.0759287f, -0.0516023f, -0.0617952f, -0.0751f, 0.0209101f, -0.0432293f, 0.0330576f, -0.0728689f, 0.123781f, 0.187297f, 0.268743f, -0.0487147f, 0.144102f, -0.113081f, 0.0309442f, -0.186323f, -0.160266f, 0.0236466f, 0.0152241f, 0.0471288f, 0.126855f, 0.251027f, -0.198948f, 0.164132f, -0.087211f, -0.109323f, -0.172532f, 0.116749f, 0.0522465f, 0.00202273f, 0.102556f, 0.00617408f, -0.0625486f, 0.0351583f, 0.00167059f, 0.15782f, -0.022945f, 0.0883283f, 0.035065f, -0.0538942f, -0.197966f, -0.108187f, 0.174553f, 0.0259893f, 0.0447092f, -0.064657f, -0.0111728f, -0.223932f, 0.0200091f, 0.276156f, 0.208043f, -0.0732518f, -0.0226216f, 0.121243f, -0.00189368f, 0.226548f, -0.0268615f, -0.044084f, -0.0370458f, 0.215344f, -0.149062f, -0.234086f, 0.0605974f, -0.0587929f, 0.0278486f, -0.223908f, -0.0773695f, 8.37608e-06f, -0.00432288f, 0.0436819f, -0.194043f, 0.0224394f, 0.0768387f, -0.157518f, 0.138284f, -0.151267f, 0.00588833f, 0.115127f, -0.212466f, -0.0323781f, 0.154232f, -0.183373f, -0.10043f, 0.0464086f, 0.0815123f, 0.0517785f, 0.0362275f, -0.0132397f, 0.129774f, 0.0744425f, 0.000323879f, 0.265573f, 0.163705f, -0.0872868f, -0.0347583f, -0.117982f, 0.0563349f, -0.00263922f, 0.00300454f, 0.0347105f, -0.150338f, -0.0467793f, 0.0505631f, 0.156978f, 0.0291304f, 0.0448842f, -0.212697f, -0.0593771f, -0.00992316f, -0.0442035f, -0.237398f, 0.112421f, 0.0721868f, 0.0656435f, 0.11156f, -0.0818317f, -0.172975f, -0.0405748f, 0.0166645f, -0.115721f, 0.148824f, -0.0683489f, -0.13539f, -0.0192247f, 0.00897393f, 0.0141431f, -0.229807f, -0.0060753f, 0.113521f, -0.149776f, -0.113536f, -0.081281f, 0.0477445f, 0.0535184f, -0.0782879f, -0.0905782f, 0.030897f, 0.12872f, 0.0395866f, 0.410535f, -0.250751f, -0.0344598f, -0.185031f, -0.121285f, 0.00559817f, 0.0312565f, -0.0973458f, 0.00851001f, 0.0355187f, -0.00576454f, 0.20088f, 0.079856f, -0.102866f, -0.0577016f, -0.0840094f, 0.0362344f, -0.0463938f, -0.0451951f, -0.119899f, 0.0388494f, 0.0589476f, -0.12907f, -0.0070646f, 0.197235f, -0.130618f, -0.173188f, 0.023361f, -0.115665f, 0.0584612f, -0.0703209f, 0.0361746f, -0.0864356f, 0.0359699f, -0.00459243f, -0.187284f, -0.00318405f, 0.190258f, -0.0225454f, -0.0933743f, 0.0392661f, -0.0295677f, 0.0381723f, -0.0950352f, -0.0303431f, -0.18737f, 0.133563f, 0.0439595f, 0.172039f, 0.0634187f, 0.109315f, 0.00865376f, -0.0875904f, 0.00314922f, -0.0819572f, 0.0962105f, -0.147667f, 0.17414f, -0.0275186f, 0.0776494f, -0.0196294f, 0.142242f, 0.0169015f, 0.0147235f, 0.0174198f, -0.10516f, -0.124503f, -0.035037f, -0.11649f, -0.114682f, 0.00286897f, -0.040766f, 0.0537642f, 0.0804028f, -0.10209f, -0.0598771f, -0.109153f, -0.156319f, 0.0410412f, 0.097915f, 0.0841537f, -0.0196916f, 0.0615565f, 0.061058f, 0.00623674f, -0.0277692f, -0.0341571f, -0.198591f, 0.101239f, 0.186489f, -0.154104f, 0.166741f, 0.0414054f, -0.123269f, 0.0481001f, 0.0379167f, 0.0245851f, -0.0652871f, 0.0321105f, -0.131219f, 0.0149575f, -0.117208f, -0.0090091f, -0.169629f, -0.0624746f, -0.0478262f, 0.0715636f, -0.0631163f, 0.0656477f, 0.107171f, -0.0472398f, 0.0604766f, -0.111456f, -0.0633671f, 0.0449898f, -0.0150743f, -0.137471f, 0.0651104f, 0.0663957f, 0.0320031f, 0.0761733f, 0.0239094f, 0.132785f, -0.101429f, 0.131251f, 0.163274f, 0.26232f, 0.268939f, 0.0347813f, 0.0554182f, 0.0469428f, 0.0385462f, -0.0500494f, -0.2231f, 0.0324855f, -0.0344319f, -0.0744358f, -0.0631954f, -0.0106201f, 0.129262f, -0.053109f, 0.0589497f, -0.0811378f, 0.142629f, 0.379967f, 0.0286038f, 0.00757108f, -0.0874985f, -0.0832005f, 0.133687f, -0.106776f, -0.169855f, 0.00901175f, 0.117407f, 0.174377f, 0.149093f, 0.0842249f, 0.151845f, -0.0955833f, -0.167521f, 0.0153226f, 0.0516023f, -0.165503f, -0.255525f, -0.166356f, -0.0945882f, -0.0253131f, -0.354168f, -0.014988f, 0.0349702f, 0.0939307f, 0.0740683f, -0.116761f, 0.0338095f, 0.053978f, -0.0114166f, -0.00302694f, 0.0179369f, 0.110849f, 0.150416f, 0.140136f, -0.135288f, -0.0761019f, -0.145891f, -0.137998f, -0.0587339f, -0.0813218f, -0.0573154f, -0.251909f, -0.0715996f, 0.133971f, 0.157904f, -0.0631378f, -0.103957f, -0.166318f, -0.0675543f, -0.0417313f, 0.0495355f, -0.0555726f, 0.267859f, 0.0723202f, -0.0210532f, -0.172526f, 0.129043f, 0.0799852f, 0.0959523f, 0.0775354f, 0.0303392f, 0.0648846f, 0.0349828f, 0.0444663f, 0.0314597f, 0.0537239f, 0.0130542f, 0.136871f, 0.0202238f, -0.170925f, -0.00736751f, -0.189061f, -0.0272211f, -0.123369f, 0.175804f, 0.0982394f, 0.164605f, 0.235536f, 0.196296f, 0.0680173f, 0.00290658f, 0.145698f, 0.107097f, 0.106976f, -0.0672305f, -0.0751587f, -0.0716977f, -0.214078f, -0.0526906f, 0.100345f, 0.0833854f, -0.0170819f, -0.0990284f, -0.036929f, 0.0630621f, 0.0409574f, 0.0329493f, -0.261429f, -0.0169771f, -0.036854f, 0.0540496f, 0.0156242f, 0.160673f, -0.124393f, -0.00557814f, -0.149301f, 0.120459f, -0.0839688f, 0.130115f, -0.101772f, -0.113222f, -0.112352f, -0.0886592f, 0.0780054f, 0.068618f, 0.0396648f, -0.0461262f, -0.0194843f, -0.100428f, -0.0335306f, -0.00235125f, -0.19825f, 0.187106f, 0.00816451f, -0.0911466f, 0.0231616f, 0.264079f, -0.118771f, -0.1525f, -0.048867f, 0.0319623f, 0.0991494f, -0.0402932f, -0.139238f, -0.0714109f, 0.048445f, 0.087496f, 0.0504924f, 0.0850871f, 0.26548f, 0.0236706f, -0.0815344f, 0.0504495f, -0.169064f, 0.0435302f, 0.162694f, 0.0453634f, 0.0315223f, -0.0836665f, 0.0249505f, -0.0356326f, -0.0214875f, 0.139125f, 0.10907f, 0.112547f, -0.00562706f, -0.248669f, 0.0674515f, -0.0259893f, 0.123933f, -0.177089f, 0.0390987f, 0.152091f, -0.0275251f, 0.0348462f, -0.229286f, -0.151669f, 0.077205f, -0.0830269f, 0.285756f, -0.176332f, -0.172307f, -0.130113f, 0.0344439f, 0.0277699f, -0.188295f, -0.120415f, -0.0861775f, 0.225267f, -0.06124f, -0.0413824f, 0.185665f, 0.0344884f, -0.1554f, 0.078196f, -0.0334587f, -0.0523341f, -0.0110627f, 0.062857f, -0.0992103f, 0.165915f, 0.158463f, -0.220817f, -0.0762813f, -0.138302f, -0.246817f, 0.029335f, -0.0778863f, 0.111039f, 0.0500911f, -0.111798f, -0.0811882f, -0.0132875f, 0.110374f, 0.106173f, -0.0903874f, -0.122127f, 0.191466f, 0.204684f, -0.0919555f, 0.123884f, 0.0812594f, -0.029222f, -0.139194f, -0.21588f, 0.0403488f, -0.19448f, 0.114819f, -0.160441f, -0.0481321f, 0.0273495f, -0.0498029f, -0.0278347f, -0.0194198f, 0.297201f, 0.106746f, -0.107952f, 0.1445f, 0.0200566f, -0.0729731f, -0.109618f, 0.160259f, -0.0801642f, 0.0445926f, 0.0421409f, 0.0602185f, -0.0507784f, -0.171351f, 0.0214688f, -0.130304f, -0.0557924f, 0.0276426f, 0.0129281f, 0.181451f, 0.183303f, -0.0132663f, 0.105639f, -0.0299418f, 0.233848f, 0.0489694f, 0.0721906f, 0.0602845f, -0.0540681f, -0.0387776f, -0.0121076f, 0.140361f, -0.0588857f, -0.227388f, 0.0111968f, -0.00785115f, -0.256679f, 0.191712f, 0.113356f, 0.00772008f, 0.139106f, 0.0955315f, -0.0352201f, 0.04606f, 0.00864178f, -0.0851243f, 0.062746f, 0.177216f, 0.0549666f, 0.0897557f, -0.0782678f, 0.144552f, 0.169682f, -0.0520743f, 0.225317f, 0.261248f, 0.030091f, 0.014221f, -0.0924314f, 0.0764437f, 0.151169f, -0.0977351f, -0.201742f, 0.097808f, -0.148211f, 0.218951f, -0.106093f, 0.148675f, -0.00729254f, 0.0884228f, -0.16234f, -0.0379227f, 0.0138549f, -0.0985393f, 0.188188f, -0.0378999f, 0.151389f, -0.0349545f, -0.219343f, 0.238529f, -0.194958f, -0.210776f, -0.0128597f, 0.0618125f, -0.217026f, 0.0370368f, 0.0166973f, -0.114056f, -0.0180308f, 0.0264202f, 0.0760518f, 0.017002f, 0.133002f, 0.147616f, 0.0343307f, -0.130585f, 0.0607683f, -0.000604139f, 0.135301f, 0.145507f, -0.059804f, 0.163797f, 0.153676f, 0.039206f, -0.107107f, -0.00541485f, -0.0898827f, 0.07827f, 0.107804f, 0.0920882f, -0.0430097f, 0.0114125f, 0.0637225f, 0.11898f, 0.00909611f, -0.0410687f, -0.0425009f, -0.237374f, -0.0264733f, -0.113706f, -0.0336939f, 0.0246705f, 0.0240621f, 0.00972635f, 0.0858575f, -0.0260544f, -0.055621f, -0.00459199f, 0.0752843f, 0.149771f, 0.0678032f, -0.0284409f, -0.000727898f, -0.00677528f, -0.161488f, 0.131935f, 0.0754087f, 0.0169214f, -0.157669f, 0.156975f, 0.181095f, 0.113667f, -0.0126714f, 0.210095f, 0.00217018f, 0.079725f, 0.0986213f, 0.0330426f, -0.0303806f, -0.0232705f, 0.114698f, -0.0804841f, -0.0963906f, 0.0847222f, -0.0684975f, -0.0880388f, 0.0385345f, 0.00792878f, -0.102431f, -0.0187649f, 0.013661f, -0.0885022f, 0.115181f, 0.0942428f, 0.14799f, -0.271758f, -0.0622996f, -0.0525235f, 0.0413268f, 0.0626483f, 0.00108596f, 0.00784293f, -0.0342454f, 0.105265f, -0.0627863f, -0.028524f, 0.00379326f, 0.125653f, -0.0446292f, 0.136173f, 0.172221f, -0.129042f, 0.0837391f, 0.101685f, -0.00536954f, 0.0520788f, 0.156367f, 0.0277749f, -0.143444f, -0.0799233f, -0.00828491f, 0.223146f, -0.120549f, 0.0625486f, 0.0308417f, -0.0326997f, -0.10578f, -0.0435261f, -0.176185f, -0.0431812f, -0.095901f, -0.0862781f, 0.0481042f, -0.0482013f, 0.0298214f, -0.0250222f, -0.201045f, 0.102107f, -0.0682298f, -0.0505838f, 0.019306f, -0.146127f, 0.024426f, 0.0677878f, 0.255064f, -0.0333239f, -0.00952168f, -0.0271202f, 0.119389f, -0.0189859f, 0.0849824f, -0.146853f, 0.088561f, -0.141293f, 0.0282972f, -0.0451804f, -0.0111583f, 0.0776917f, 0.083979f, -0.0957924f, 0.00390353f, -0.230549f, -0.146468f, -0.0828452f, 0.0825708f, -0.186666f, -0.0751397f, -0.209216f, 0.0145068f, 0.0164816f, -0.00909483f, -0.00369552f, -0.0699559f, 0.252602f, -0.10942f, -0.0361187f, -0.0717638f, -0.0615458f, -0.104157f, -0.0355428f, -0.0910381f, -0.197453f, 0.0889255f, 0.0528506f, 0.00893365f, 0.0903858f, 0.0905593f, 0.0734537f, 0.00685707f, 0.0518498f, -0.025848f, 0.209048f, 0.193204f, 0.109816f, -0.00383333f, -0.039668f, 0.135598f, -0.0673444f, 0.101388f, -0.0577858f, 0.0117056f, -0.0277554f, -0.0828063f, 0.0524208f, -0.0232551f, -0.186132f, -0.0281371f, 0.218905f, -0.0154305f, -0.00411663f, 0.0620608f, 0.0637394f, -0.0995925f, -0.00337193f, 0.0896648f, 0.0200998f, 0.0598588f, -0.0151036f, -0.0114821f, 0.0140752f, 0.00838099f, 0.0754851f, 0.159125f, 0.132055f, 0.0155289f, 0.0494469f, -0.0444041f, -0.151508f, -0.128391f, 0.0358831f, -0.0288741f, -0.0573798f, -0.200453f, -0.113849f, -0.0602758f, 0.105432f, 0.0559223f, -0.149417f, -0.112894f, 0.00755768f, 0.105483f, 0.162936f, 0.090509f, 0.124528f, -0.0991133f, -0.0558572f, 0.0288998f, -0.0865133f, 0.0151584f, -0.0610425f, 0.127259f, -0.199909f, 0.0154326f, -0.0960287f, -0.212739f, -0.183287f, 0.0586773f, -0.0501916f, -0.0286151f, -0.081877f, 0.153102f, -0.242908f, -0.18602f, 0.185858f, -0.208695f, 0.106436f, -0.028256f, -0.0399761f, -0.0233843f, -0.101679f, -0.115362f, 0.0541982f, -0.211327f, -0.0051503f, -0.00603983f, 0.070405f, 0.158355f, 0.0259321f, -0.0841388f, -0.0845467f, -0.241143f, -0.188445f, -0.212685f, 0.0490743f, -0.0688726f, 0.0141847f, -0.015387f, 0.0890401f, 0.0417599f, 0.220021f, -0.158833f, -0.119809f, 0.147151f, 0.0023199f, -0.0808225f, 0.123213f, 0.152786f, -0.0674836f, -0.00128442f, 0.199138f, -0.031239f, 0.084605f, 0.0377388f, 0.0170138f, 0.0507333f, 0.022644f, 0.030301f, -0.0975418f, -0.0581584f, -0.0147322f, 0.00465851f, 0.123258f, -0.194869f, 0.164663f, 0.0282284f, 0.29669f, 0.117063f, 0.0482899f, 0.0517057f, 0.117657f, -0.10848f, -0.0148483f, 0.0881104f, -0.0446944f, 0.0511782f, 0.0281497f, -0.125451f, -0.066603f, 0.0409661f, -0.140002f, -0.0368363f, -0.127671f, 0.00340453f, 0.0838216f, -0.0551784f, 0.00061034f, -0.0549816f, -0.0302944f, 0.0294502f, -0.020267f, 0.0393088f, -0.0189309f, 0.00690822f, 0.0406713f, -0.0981707f, 0.00104771f, -0.0352848f, 0.0878607f, 0.0203256f, 0.0906847f, 0.171318f, -0.127757f, -0.200183f, -0.0628113f, -0.147333f, -0.109265f, -0.10294f, -0.0708279f, 0.214564f, 0.132434f, -0.0461598f, 0.181728f, -0.0245736f, 0.0210963f, -0.0340841f, -0.0312356f, -0.181008f, -0.107997f, 0.151486f, -0.0776947f, 0.119884f, -0.0031553f, 0.106772f, 0.0163706f, -0.0875151f, -0.0885882f, 0.105742f, -0.155735f, 0.0638482f, -0.0187743f, 0.0921039f, -0.0410423f, -0.2897f, -0.0545549f, 0.290727f, -0.0429221f, 0.0553089f, -0.0592756f, 0.0224578f, -0.138718f, -0.140993f, 0.114599f, 0.000368313f, 0.156807f, -0.0660085f, -0.00442095f, 0.0271386f, 0.0424953f, -0.171861f, -0.0764929f, 0.127167f, -0.0884361f, -0.152904f, -0.0112842f, 0.00314154f, 0.172519f, 0.00522066f, 0.0389319f, -0.0748639f, 0.135104f, -0.103064f, -0.0195557f, -0.10481f, 0.117884f, -0.147472f, -0.0484443f, 0.118257f, 0.0763777f, -0.0645275f, -0.292527f, 0.0539097f, -0.0829154f, -0.243534f, 0.00142628f, 0.0356479f, -0.141852f, 0.199985f, -0.00340609f, -0.0325591f, 0.063092f, 0.0356474f, -0.180259f, 0.0323061f, 0.0384537f, -0.0325805f, 0.153809f, -0.0907534f, 0.152707f, -0.050294f, -0.0214203f, -0.101077f, 0.200103f, 0.00174342f, 0.0466262f, -0.167723f, -0.0815158f, 0.0946393f, -0.0184179f, 0.012282f, 0.312541f, 0.192873f, -0.133942f, -0.0212957f, 0.122371f, 0.168319f, -0.00107848f, -0.0157632f, 0.0141721f, 0.0223552f, -0.161001f, 0.104472f, -0.12698f, -0.0386618f, -0.188808f, 0.143388f, -0.150102f, -0.0329557f, 0.0464469f, -0.0118673f, -0.0615962f, -0.156501f, -0.0589524f, -0.0584158f, 0.0498758f, 0.0286623f, 0.0546496f, -0.121115f, 0.0276572f, -0.143289f, 0.117744f, -0.0466496f, 0.0248568f, -0.0407596f, 0.012102f, -0.116335f, -0.0484275f, -0.168449f, -0.05505f, 0.139444f, 0.147966f, -0.111855f, -0.0297009f, -0.171484f, 0.11586f, 0.16844f, -0.012422f, 0.0597176f, 0.234258f, 0.14872f, -0.0502805f, -0.110595f, -0.0178411f, -0.0905406f, 0.05123f, 0.145708f, -0.0138954f, -0.201726f, 0.0802725f, 0.196908f, -0.150232f, -0.0729755f, 0.0531283f, 0.027899f, 0.0895996f, -0.0453042f, 0.11351f, 0.0546207f, -0.0389722f, -0.0530513f, -0.124414f, -0.0958673f, -0.0704529f, -0.267706f, -0.072015f, -0.0341869f, -0.169094f, -0.0430783f, -0.159039f, 0.105491f, -0.0511552f, -0.0782239f, 0.017113f, -0.0446794f, -0.0171927f, -0.0741336f, 0.029292f, -0.0473893f, 0.112204f, -0.151622f, 0.0118747f, 0.0444341f, -0.104539f, 0.0425062f, 0.136133f, 0.070309f, 0.191369f, 0.26388f, 0.0319978f, 0.00507096f, -0.0729764f, -0.133869f, -0.160741f, -0.0436979f, 0.10928f, 0.0926505f, 0.0803579f, -0.109713f, -0.103395f, 0.174481f, -0.0688781f, 0.0414972f, 0.109587f, 0.103748f, 0.0268222f, 0.116618f, -0.0655083f, -0.0272787f, -0.119966f, 0.0420301f, -0.095944f, 0.199033f, -0.0460042f, -0.119803f, -0.0332279f, 0.0232258f, 0.279626f, -0.237919f, 0.00160104f, 0.00159377f, 0.0177097f, -0.0410766f, 0.0399425f, -0.00401052f, -0.0111306f, 0.12246f, -0.0971883f, -0.158824f, -0.145213f, -0.0561174f, -0.119317f, 0.0856046f, 0.0952667f, 0.106159f, 0.076056f, 0.180741f, 0.0628437f, -0.114494f, 0.0801033f, -0.0969682f, -0.117619f, -0.295821f, -0.0874622f, 0.0663144f, 0.0460557f, 0.0461456f, -0.123683f, 0.0439772f, -0.0362618f, 0.105041f, 0.0432001f, -0.00592445f, 0.170126f, 0.0830223f, 0.171433f, -0.0623503f, -0.239983f, -0.0515402f, -0.0351445f, -0.0157021f, 0.0891836f, -0.0613749f, -0.0446423f, -0.23306f, -0.22256f, 0.0961184f, 0.119572f, 0.0985964f, -0.0642032f, 0.200684f, 0.0531507f, -0.0644261f, 0.0697928f, -0.0627565f, 0.0932382f, -0.203788f, 0.016967f, 0.0489951f, 0.0834868f, -0.126223f, -0.0455413f, 0.215395f, 0.15713f, -0.0677129f, 0.11849f, -0.224099f, -0.00564901f, -0.0515676f, -0.0223984f, -0.0951502f, -0.306609f, -0.131045f, -0.0908551f, -0.0637113f, -0.0664312f, -0.120158f, 0.0081412f, -0.0697521f, -0.179817f, -0.0363421f, -0.159363f, -0.276491f, -0.0474945f, 0.0443234f, -0.05925f, 0.0806377f, -0.0867666f, 0.175683f, -0.0577573f, -0.221521f, 0.0424225f, 0.0350486f, -0.0219766f, 0.359715f, -0.0791245f, 0.16094f, -0.053502f, -0.24656f, 0.230291f, -0.149395f, -0.0405685f, 0.0446512f, 0.0317444f, 0.278322f, -0.205548f, -0.258859f, -0.0187514f, -0.0126554f, 0.0676104f, 0.205884f, -0.142568f, -0.0172591f, 0.116454f, -0.10954f, -0.0562847f, 0.0191536f, 0.167997f, 0.0140592f, -0.00764243f, 0.0720588f, 0.06172f, -0.292667f, -0.0233591f, 0.0898345f, -0.0819293f, -0.0133489f, 0.134911f, 0.0216395f, 0.0231037f, 0.0386825f, 0.191793f, 0.204526f, -0.0529837f, 0.071734f, 0.0646656f, 0.13188f, 0.0746916f, 0.0567235f, -0.108015f, 0.122519f, 0.016008f, 0.187478f, 0.0821305f, -0.0832648f, -0.0939737f, 0.043362f, -0.0735132f, -0.132463f, -0.342839f, -0.179825f, 0.0195324f, 0.0939771f, -0.0820749f, 0.124221f, -0.141847f, -0.257998f, -0.144468f, 0.0969171f, 0.177705f, 0.0775434f, -0.272517f, 0.164924f, -0.055217f, -0.0249579f, -0.0590735f, -0.0716679f, -0.15047f, 0.0766674f, 0.00412021f, -0.109287f, -0.148353f, -0.0943131f, 0.00226437f, 0.171753f, -0.0906924f, 0.0897021f, 0.011858f, 0.0722941f, 0.00244883f, 0.189717f, 0.0656087f, 0.0198338f, -0.00154283f, 0.0524443f, 0.193007f, 0.136008f, 0.209426f, -0.233605f, -0.209436f, -0.0350347f, 0.0733655f, -0.00453009f, -0.134195f, -0.112743f, -0.078847f, 0.0146875f, -0.188191f, 0.0356071f, 0.0859781f, 0.182553f, -0.100099f, 0.00223675f, 0.0163556f, 0.13081f, 0.147073f, -0.101827f, -0.0759129f, 0.0219072f, 0.0310091f, -0.23603f, -0.00466859f, -0.163668f, 0.124721f, 0.0932285f, -0.0388255f, -0.142489f, 0.122313f, 0.032474f, 0.109185f, -0.0101782f, -0.128974f, -0.163159f, -0.0738602f, 0.106046f, -0.0179798f, -0.0798286f, -0.0600035f, -0.103388f, -0.0173794f, 0.150437f, 0.0993913f, 0.104881f, -0.0772221f, -0.170673f, 0.167237f, 0.0402524f, 0.109682f, -0.223013f, -0.0262903f, -0.105392f, 0.238909f, 0.0958375f, 0.0222019f, -0.067445f, -0.156866f, 0.0570429f, -0.0565689f, -0.147683f, 0.0872151f, -0.113916f, -0.105798f, -0.140791f, -0.126458f, 0.0566273f, -0.21033f, 0.0839152f, 0.169957f, 0.124456f, -0.1176f, -0.0333512f, 0.0960142f, -0.0704116f, -0.17301f, -0.00478061f, 0.191731f, 0.093183f, -0.043726f, -0.119546f, -0.251064f, -0.0217078f, 0.0118136f, 0.0803301f, -0.0603706f, -0.0284006f, 0.0944146f, -0.14712f, 0.0461381f, -0.218749f, -0.0842371f, -0.0848391f, 0.0643181f, 0.0300151f, -0.0444076f, 0.0507619f, -0.0835678f, 0.0331038f, -0.00275954f, -0.045894f, -0.174133f, -0.0149071f, -0.0245152f, 0.156365f, -0.0675673f, -0.0338153f, 0.0667169f, 0.0106668f, 0.0992645f, -0.0377082f, 0.0151032f, 0.101662f, -0.103056f, 0.0651068f, -0.0798478f, -0.030759f, -0.0170273f, 0.101995f, 0.0376442f, -0.0586843f, -0.0847361f, 0.0321792f, -0.226284f, -0.161394f, 0.146352f, 0.178523f, -0.107654f, -0.102787f, 0.0802861f, -0.0289662f, 0.0297838f, -0.0259187f, -0.123691f, -0.0112545f, 0.113731f, -0.00291314f, -0.253846f, 0.0343799f, 0.0733315f, -0.0749695f, 0.0124321f, -0.162748f, -0.175606f, -0.0579814f, 0.0513276f, -0.159151f, 0.0350945f, 0.0321563f, -0.0114402f, -0.0640753f, -0.0394047f, 0.0185511f, -0.14398f, 0.00879595f, -0.0296036f, -0.244379f, 0.0167521f, 0.016732f, -0.0101207f, 0.168328f, 0.138313f, -0.265654f, -0.132551f, -0.0111195f, -0.00240027f, 0.128003f, -0.00583597f, 0.0855749f, 0.0116712f, 0.0379805f, -0.0385913f, -0.0457178f, -0.0872776f, 0.0557534f, -0.000648953f, -0.0201334f, 0.0142394f, -0.0978714f, 0.0534771f, -0.152652f, 0.0463474f, -0.0244624f, 0.10234f, 0.0969861f, -0.0438915f, 0.042162f, 0.114185f, -0.023404f, -0.13764f, -0.018015f, 0.0415236f, 0.0242454f, -0.104537f, -0.0728245f, -0.242682f, 0.0353832f, -0.072485f, 0.102579f, -0.201913f, -0.188865f, 0.0395992f, 0.0245252f, -0.166361f, -0.0503329f, 0.23836f, 0.166731f, 0.0798325f, 0.0428123f, -0.0859694f, -0.140555f, -0.0783308f, 0.00272267f, -0.0654277f, -0.0478751f, 0.00640876f, 0.0360599f, -0.119341f, 0.133659f, 0.0334623f, -0.0239176f, -0.0457586f, 0.0920342f, 0.0460798f, -0.0519714f, -0.0897178f, 0.0885382f, -0.00393213f, -0.0314096f, 0.0618494f, -0.0723128f, 0.255447f, 0.00749907f, 0.0989676f, -0.138348f, -0.193205f, 0.0752203f, 0.00146259f, 0.00345568f, 0.148683f, -0.0433247f, 0.156943f, -0.0453991f, -0.137258f, -0.0790754f, -0.073398f, 0.03724f, -0.0407481f, 0.0748606f, -0.0275041f, -0.060414f, 0.0785068f, -0.0326368f, -0.153573f, 0.00704897f, -0.072898f, -0.0249653f, 0.0963092f, -0.0598411f, -0.0320101f, -0.148148f, -0.0083775f, -0.0293703f, 0.101685f, -0.0706839f, 0.151555f, 0.0904381f, 0.038486f, -0.293796f, -0.125123f, -0.0160274f, -0.156264f, 0.234075f, 0.0433258f, -0.0259251f, 0.059972f, 0.136438f, -0.163279f, 0.0494018f, -0.0349067f, -0.0410755f, 0.0515858f, 0.0076149f, 0.0415095f, 0.0486478f, 0.0501927f, -0.1477f, -0.211128f, -0.0850318f, -0.0920465f, -0.160542f, 0.0614634f, 0.142552f, 0.117021f, 0.0504493f, -0.0190265f, 0.294126f, 0.0805029f, 0.230605f, 0.050371f, 0.20018f, -0.144033f, -0.144304f, 0.0717571f, 0.0672925f, 0.0299704f, -0.0779885f, -0.0430933f, 0.179312f, -0.00180555f, -0.103548f, -0.0483372f, -0.209504f, 0.0494223f, 0.20363f, 0.137725f, 0.0511731f, -0.220107f, -0.0324874f, 0.151429f, -0.109922f, -0.061593f, -0.219332f, 0.0796796f, 0.0722311f, 0.0855472f, -0.113754f, 0.137077f, -0.309277f, 0.103939f, -0.126866f, -0.071245f, 0.0984532f, 0.215451f, -0.0371189f, -0.197791f, -0.0272569f, -0.00999765f, 0.0423821f, -0.12291f, 0.0826751f, -0.0627678f, 0.0708544f, 0.290949f, -0.161565f, 0.177596f, 0.125264f, -0.00369029f, 0.159427f, 0.0282618f, -0.0587159f, -0.0287543f, 0.162345f, 0.345679f, -0.105309f, -0.0654687f, -0.0405783f, -0.0296809f, -0.0552884f, 0.0975892f, -0.0191581f, -0.0497437f, -0.261679f, 0.209914f, -0.177016f, -0.197073f, 0.0076806f, -0.0629609f, 0.0123245f, 0.0937974f, 0.0479937f, 0.217542f, -0.071637f, 0.0169403f, -0.0760303f, -0.17119f, 0.288249f, -0.0517558f, 0.119818f, 0.0785349f, -0.109471f, 0.0743482f, -0.184169f, -0.127643f, 0.0474436f, 0.213437f, 0.0530124f, -0.0179431f, 0.084271f, -0.0473217f, -0.0232327f, -0.0134479f, 0.271559f, 0.0878773f, 0.20957f, 0.297467f, 0.00786742f, 0.0964503f, -0.0264547f, -0.0727342f, -0.181154f, 0.137983f, 0.338245f, 0.0940735f, 0.0304558f, -0.211413f, -0.0398992f, 0.0857381f, -0.24316f, 0.109596f, -0.009855f, 0.135898f, -0.00702097f, -0.0424251f, 0.0978528f, 0.109505f, -0.0252706f, -0.0559088f, 0.0971168f, -0.120149f, -0.0158332f, 0.102226f, 0.134883f, 0.263983f, -0.205572f, 0.158973f, 0.248976f, 0.190913f, -0.0707164f, -0.0473297f, -0.0134367f, -0.19617f, -0.0776648f, -0.0804706f, -0.0621507f, -0.128139f, 0.0861913f, -0.0667626f, -0.0933351f, 0.085164f, -0.0640133f, 0.0271569f, 0.00431443f, -0.16492f, -0.0277846f, -0.192857f, -0.069405f, -0.00971334f, 0.0136974f, -0.177793f, -0.0382278f, -0.0801822f, 0.0926707f, 0.0570204f, -0.0766761f, -0.0244724f, 0.226214f, 0.0034218f, 0.12342f, 0.0583063f, -0.00866649f, -0.168052f, 0.0294049f, -0.234313f, -0.166429f, -0.115369f, 0.0421235f, -0.120304f, -0.120782f, 0.0560781f, 0.0761294f, 0.192221f, 0.132559f, 0.130927f, 0.141902f, -0.0850186f, 0.0386294f, -0.0586129f, 0.130883f, 0.218548f, -0.0623188f, 0.0236953f, 0.12479f, 0.304044f, 0.191109f, -0.16265f, -0.179291f, -0.128139f, 0.0511675f, 0.218045f, 0.181536f, 0.0905323f, 0.0532676f, -0.17246f, -0.0709164f, 0.144862f, -0.213331f, -0.235726f, 0.245371f, 0.0184792f, -0.14075f, -0.167106f, 0.163998f, 0.0600328f, 0.20224f, -0.0888768f, 0.0576127f, 0.0766289f, 0.0146756f, -0.0830833f, 0.082287f, 0.176898f, -0.120031f, -0.0623949f, 0.0937113f, -0.28067f, 0.0581045f, -0.0365983f, 0.0937025f, -0.170001f, -0.0496406f, -0.01878f, 0.050687f, -0.0472238f, 0.0611565f, -0.0349166f, -0.196733f, 0.0839714f, 0.141242f, -0.0141962f, -0.0600266f, 0.163483f, 0.084526f, 0.0479008f, 0.102239f, 0.176715f, -0.160759f, -0.140169f, 0.122158f, 0.16211f, 0.111234f, 0.0672217f, 0.0634676f, -0.0817171f, 0.0992053f, 0.0253314f, 0.00165232f, 0.0960391f, -0.0316036f, -0.0967862f, -0.0125182f, 0.0939067f, -0.0978939f, -0.15249f, -0.0993986f, 0.0309397f, 0.0712689f, -0.0476272f, -0.0291233f, 0.0585029f, -0.0188334f, 0.0855798f, 0.0358009f, 0.0837921f, -0.133823f, 0.0673859f, -0.0244877f, -0.0603419f, 0.0514354f, 0.0385311f, 0.0944403f, 0.0727609f, 0.123709f, -0.0565418f, -0.129561f, -0.144019f, -0.079002f, 0.0609638f, 0.0767799f, -0.042883f, -0.0768833f, 0.00519367f, 0.147202f, -0.0245255f, -0.0475613f, -0.0739563f, -0.139207f, 0.0636918f, 0.0227896f, 0.0528194f, 0.0331631f, -0.147878f, -0.0844867f, 0.0664663f, 0.0861752f, -0.0169384f, 0.0791446f, 0.0119883f, -0.0297605f, -0.11075f, 0.0395281f, -0.10849f, 0.10311f, 0.038575f, 0.0123208f, 0.147154f, 0.221508f, -0.0947877f, -0.0734871f, 0.115789f, 0.0845052f, 0.0882626f, -0.073914f, 0.0662464f, 0.196438f, 0.0531637f, 0.100317f, -0.0838218f, -0.133268f, -0.132621f, 0.05095f, -0.0518469f, -0.0189343f, 0.154335f, 0.175336f, 0.0490932f, -0.116714f, -0.0720386f, -0.134515f, -0.0308114f, 0.0632764f, 0.00974837f, -0.0238573f, 0.00195356f, 0.161251f, -0.0802542f, -0.0369155f, 0.0175843f, 0.115263f, 0.0567821f, -0.046157f, -0.0973101f, -0.130586f, -0.169732f, -0.126506f, -0.120035f, -0.0356325f, 0.101123f, 0.121764f, -0.0524125f, 0.12542f, -0.0136652f, 0.0837537f, 0.109469f, 0.0244736f, -0.192945f, -0.0362202f, 0.00650635f, -0.0403809f, -0.0840146f, 0.127304f, 0.135327f, 0.00664333f, -0.146668f, -0.0467965f, 0.0794409f, 0.0819527f, -0.0480886f, 0.0486855f, 0.0809595f, 0.0476226f, 0.0965907f, -0.151954f, -0.211885f, -0.0919035f, 0.0165932f, 0.100495f, -0.0256261f, 0.0798814f, -0.035813f, 0.0928816f, -0.080874f, 0.0157428f, -0.158356f, 0.0406484f, 0.137512f, -0.0432774f, -0.0970761f, -0.0173381f, 0.0872708f, -0.188939f, -0.0492732f, -0.0548583f, 0.0255167f, -0.109551f, -0.159603f, 0.00478809f, -0.0360562f, 0.0239488f, 0.0251315f, -0.0424566f, -0.0290303f, -0.134485f, -0.0718073f, -0.105682f, -0.0649339f, -0.0254721f, 0.0756504f, 0.0105627f, -0.0360207f, 0.105144f, -0.0640832f, 0.0747f, 0.0143695f, 0.052161f, 0.117849f, -0.0580816f, -0.0637175f, -0.0869699f, 0.0587343f, 0.158956f, 0.0195474f, 0.032326f, 0.0793255f, 0.0719585f, -0.00223175f, -0.184524f, -0.128771f, -0.0882953f, 0.0732438f, -0.0032445f, -0.0304805f, -0.0178773f, -0.0339384f, 0.158236f, -0.0487496f, 0.016933f, 0.0112062f, -0.0782969f, -0.162667f, 0.0586429f, -0.00812828f, 0.0114383f, 0.167387f, 0.00546322f, 0.0163308f, -0.111334f, -0.0812219f, -0.11669f, 0.00861207f, 0.0685736f, 0.0209076f, 0.0399496f, -0.0672537f, -0.123078f, 0.123896f, -0.1616f, 0.123452f, 0.0532213f, -0.0343441f, -0.144929f, -0.105285f, 0.23618f, 0.102064f, 0.0584476f, -0.0691786f, -0.095552f, -0.0027904f, -0.0836166f, 0.00252111f, 0.0372544f, 0.0537237f, -0.0207287f, 0.118723f, 0.0849747f, 0.208035f, -0.0111249f, -0.0370659f, -0.127211f, 0.0770758f, 0.0564665f, -0.0264482f, 0.108892f, 0.0185015f, -0.0939939f, -0.096015f, 0.144052f, 0.0848727f, 0.115484f, 0.101108f, 0.106897f, -0.11726f, -0.101021f, -0.055208f, 0.0919943f, -0.0402092f, 0.0823158f, -0.173687f, 0.0262834f, -0.169203f, 0.0291962f, 0.161416f, -0.0222565f, 0.00806963f, 0.174466f, -0.0767426f, 0.0436967f, 0.133778f, 0.128272f, 0.0935785f, -0.0991929f, 0.0454707f, -0.0476718f, 0.182201f, 0.00817971f, -0.00889266f, -0.026149f, -0.0644335f, 0.21186f, 0.117338f, 0.000792542f, 0.0213164f, 0.0744333f, -0.0121939f, -0.0285224f, -0.0211257f, 0.0362032f, 0.225319f, 0.0353633f, 0.0677996f, 0.116871f, -0.159991f, 0.0992094f, 0.0189144f, 0.152633f, 0.107308f, 0.127172f, -0.0692259f, 0.0262822f, -0.00366592f, 0.179692f, -0.198168f, -0.0997837f, -0.144807f, 0.039853f, 0.047124f, 0.120955f, -0.0771065f, -0.103562f, -0.0651258f, -0.0531673f, -0.0619981f, -0.0731576f, 0.0199195f, -0.0169349f, 0.0821189f, 0.023271f, 0.0876386f, 0.0983463f, 0.000128572f, -0.141145f, -0.0651145f, -0.0147654f, -0.100562f, -0.0475197f, 0.0213094f, -0.00217677f, 0.0144144f, -0.102248f, -0.0687139f, 0.119284f, 0.108135f, 0.0327078f, 0.17814f, 0.0355532f, 0.0149883f, 0.0348057f, 0.0103493f, 0.136389f, -0.0778083f, 0.103086f, 0.0110015f, -0.137888f, -0.0700109f, -0.113218f, 0.0824224f, 0.110952f, 0.0284493f, 0.0644895f, 0.105552f, -0.0766362f, 0.0353689f, 0.00300272f, -0.00675409f, -0.0185473f, -0.144722f, -0.0390585f, 0.0607631f, -0.186547f, -0.133354f, 0.107808f, -0.0647819f, 0.00271049f, 0.111212f, -0.202471f, -0.0205888f, 0.0477485f, -0.162617f, -0.0783853f, 0.111147f, -0.105033f, 0.0113969f, 0.0656377f, -0.0641083f, 0.0559224f, 0.194715f, -0.0502232f, -0.0978247f, 0.00345545f, -0.140454f, 0.0652129f, 0.0894265f, -0.138477f, -0.00417201f, 0.119584f, 0.0441594f, 0.00971707f, 0.0754769f, 0.0666072f, -0.210797f, -0.15096f, 0.0882694f, 0.176745f, -0.0332011f, 0.0268707f, -0.110367f, 0.0637021f, -0.106035f, 0.0969342f, 0.00336191f, -0.0492548f, -0.145268f, -0.212099f, 0.0258385f, -0.049315f, 0.0361512f, -0.0330719f, 0.0593164f, -0.0348575f, 0.042603f, 0.0231313f, 0.174576f, -0.0634203f, 0.204092f, -0.0658941f, 0.0522331f, -0.0533762f, -0.0354594f, 0.0948335f, 0.0458306f, -0.0718856f, 0.281908f, -0.123062f, -0.0513454f, -0.0832522f, 0.155176f, 0.134888f, -0.135909f, -0.116734f, -0.0605271f, 0.113046f, -0.122005f, 0.0314084f, -0.13757f, -0.169438f, -0.0810206f, 0.0748278f, 0.0484664f, -0.13779f, 0.0355303f, -0.213031f, 0.00975126f, -0.109359f, -0.0417217f, -0.171188f, -0.208053f, -0.106154f, 0.0882189f, 0.042032f, 0.0563421f, -0.00468812f, -0.0153875f, 0.0174556f, 0.264397f, 0.132391f, 0.0376369f, -0.0722157f, -0.0329904f, -0.123504f, 0.120935f, -0.000930922f, 0.0247556f, 0.0121103f, 0.0402275f, 0.0176447f, 0.055605f, -0.197491f, -0.0408461f, 0.166147f, 0.0124153f, 0.0983871f, 0.131356f, 0.0382799f, 0.0761826f, 0.0686585f, -0.0539948f, 0.10968f, -0.161117f, 0.112203f, 0.0534579f, -0.0111837f, 0.111632f, 0.0814211f, -0.0806675f, 0.154568f, 0.00899491f, 0.098906f, -0.00204868f, 0.0949005f, -0.199919f, 0.144038f, -0.0246662f, -0.173516f, 0.275438f, -0.093574f, -0.0174857f, 0.109003f, 0.0272693f, 0.128264f, -0.0676252f, -0.0442261f, 0.107223f, 0.0430002f, -0.0470434f, 0.129835f, 0.109157f, -0.0920301f, 0.11826f, -0.220729f, 0.0375858f, -0.18664f, 0.14797f, 0.0374536f, 0.0346498f, -0.109529f, -0.0115872f, 0.0743362f, 0.180665f, 0.0984952f, -0.034864f, 0.178656f, -0.126427f, 0.0865202f, 0.128285f, 0.0206691f, 0.0465389f, -0.103255f, -0.110313f, 0.0431721f, 0.0901045f, -0.120569f, 0.0608268f, -0.221831f, -0.0180149f, 0.206021f, -0.221668f, 0.134156f, 0.0174607f, 0.0969935f, 0.167248f, -0.0597994f, -0.0170466f, 0.0243817f, -0.146495f, 0.0496713f, -0.00274506f, 0.139291f, 0.117634f, -0.0466885f, -0.0470088f, 0.0615922f, -0.00469908f, 0.107988f, -0.212616f, 0.176661f, 0.0568089f, 0.0121125f, 0.0319384f, 0.119767f, 0.00334511f, -0.0146433f, 0.0281925f, 0.0980598f, 0.0219119f, -0.0475717f, 0.0567364f, 0.189298f, -0.127564f, -0.0676554f, -0.153621f, 0.176936f, -0.14443f, -0.0704143f, 0.167968f, 0.282004f, 0.060831f, 0.0877933f, 0.050756f, -0.0511437f, -0.0769624f, -0.0514547f, -0.127916f, -0.0640993f, -0.0833388f, -0.0641917f, 0.0654744f, -0.0586587f, 0.0591393f, -0.138396f, -0.0931565f, -0.0489671f, -0.0494166f, -0.056881f, 0.0785713f, 0.178007f, -0.0514138f, -0.0989853f, -0.0120956f, 0.096578f, -0.109647f, -0.0743485f, -0.0825694f, 0.0119665f, 0.0650571f, 0.0389372f, -0.0208462f, -0.0392945f, -0.0555843f, -0.120977f, -0.0287519f, 0.0659682f, -0.265658f, 0.128913f, -0.0295166f, 0.0441855f, -0.105853f, -0.0495585f, -0.00852319f, -0.213449f, 0.0918541f, -0.123255f, -0.0455771f, -0.0304465f, 0.125686f, 0.0277281f, -0.246698f, 0.0269226f, -0.0118558f, 0.0595722f, 0.104024f, 0.0162148f, 0.125497f, 0.0912526f, 0.255578f, 0.161356f, -0.0586317f, 0.159912f, -0.256179f, 0.0320642f, 0.0454331f, -0.0936912f, 0.0190513f, 0.169121f, 0.0377877f, -0.144895f, 0.00715338f, -0.19054f, 0.0455218f, -0.106215f, 0.19001f, 0.219418f, -0.0254529f, 0.0818676f, 0.0784976f, 0.00283358f, 0.234166f, -0.0342924f, -0.0835303f, -0.136667f, -0.160508f, -0.305654f, 0.0525073f, 0.0403464f, 0.127312f, 0.0824422f, 0.121575f, -0.207532f, -0.135517f, -0.0960406f, 0.0815916f, 0.0327979f, -0.062943f, 0.0300865f, 0.0528177f, -0.0418652f, -0.0570994f, -0.103301f, 0.223695f, -0.0870602f, 0.00904972f, 0.0670306f, -0.167899f, 0.0085447f, -0.0942417f, 0.241428f, -0.112212f, -0.256615f, -0.257956f, -0.116644f, 0.0851484f, 0.00117436f, 0.0817315f, -0.181302f, -0.0553693f, -0.112013f, -0.0772925f, -0.0820859f, 0.0502862f, 0.111918f, -0.0609315f, 0.0951362f, 0.0689764f, -0.0636572f, -0.0886974f, -0.0352235f, 0.144306f, -0.079956f, 0.137689f, -0.307117f, -0.0534141f, 0.0126667f, -0.00654405f, -0.0174781f, -0.037189f, 0.0831323f, 0.198067f, 0.0327671f, -0.105462f, 0.160614f, -0.0104439f, -0.0818153f, 0.181018f, -0.042836f, 0.134418f, -0.129177f, -0.0917917f, -0.00584106f, -0.194135f, 0.0213184f, -0.179936f, -0.0555157f, -0.000540658f, 0.185082f, 0.0418863f, 0.205037f, -0.133818f, -0.0491808f, -0.118878f, -0.0379033f, -0.0550183f, -0.0309059f, 0.101655f, 0.0197472f, -0.0287046f, 0.0221947f, -0.0387419f, 0.0705591f, -0.168198f, 0.0106428f, 0.102485f, 0.0727887f, 0.03393f, -0.0267385f, -0.0261254f, 0.0416247f, -0.0529903f, 0.0243474f, 0.196779f, -0.138567f, 0.0666022f, -0.0688454f, 0.0680961f, -0.0266971f, -0.0561386f, -0.159046f, 0.122139f, -0.050073f, 0.0910026f, -0.0574785f, -0.328669f, 0.0378877f, 0.150768f, 0.129447f, -0.00744589f, 0.0304156f, -0.27702f, 0.178747f, -0.19005f, 0.146062f, -0.0616832f, 0.0409175f, -0.164076f, 0.128163f, 0.0826385f, -0.00203388f, -0.0240326f, -0.0648058f, 0.0646042f, 0.0831431f, 0.103365f, -0.00514731f, -0.0300297f, -0.0985743f, -0.00416123f, 0.0159298f, -0.102553f, 0.00938452f, -0.0117091f, -0.0377082f, -0.0876689f, -0.0823903f, 0.0726545f, -0.0598911f, 0.104333f, 0.0956845f, -0.195119f, 0.107949f, 0.0924422f, -0.0122513f, -0.0732881f, 0.0646259f, -0.0251552f, 0.196854f, -0.0346116f, 0.02246f, -0.147126f, 0.0499791f, -0.0276557f, -0.23886f, -0.0324634f, 0.2523f, -0.12954f, 0.0713887f, 0.237271f, 0.102429f, -0.00120775f, 0.0433416f, -0.0345823f, -0.208548f, -0.141292f, -0.0588002f, -0.113626f, 0.0132473f, -0.0325691f, -0.0786973f, 0.163899f, 0.00525945f, -0.0208978f, -0.188894f, 0.0955209f, 0.235535f, -0.0761551f, -0.035881f, 0.118797f, 0.0526795f, -0.142891f, -0.0622927f, 0.144473f, -0.113774f, 0.0491807f, 0.0414315f, -0.0126343f, -0.0875944f, 0.0264076f, -0.17136f, -0.0725468f, -0.0427449f, -0.0286398f, -0.0537285f, 0.00159443f, 0.106739f, 0.100818f, 0.0907005f, -0.0525567f, 0.0275104f, -0.137268f, 0.15402f, 0.0596651f, -0.297984f, 0.0778276f, -0.0372008f, -0.0777964f, -0.0168532f, 0.0258906f, -0.00465703f, -0.0830696f, -0.0207592f, 0.109446f, -0.110701f, 0.179498f, 0.0752319f, 0.0848247f, 0.17416f, -0.285889f, -0.251303f, 0.0100071f, 0.0101899f, 0.145078f, -0.111133f, -0.00575954f, 0.0515581f, -0.0443203f, -0.0913258f, -0.0161453f, -0.0449113f, 0.0989803f, -0.0177613f, 0.157888f, -0.0926173f, 0.0830479f, -0.109199f, 0.0886168f, -0.0450191f, 0.106226f, -0.259468f, -0.181131f, 0.0845421f, 0.0745095f, 0.0601264f, -0.0418663f, -0.0343481f, -0.0599877f, -0.180518f, 0.00622462f, 0.0582915f, 0.0943433f, 0.0449844f, -0.198057f, 0.206816f, -0.000445837f, -0.206176f, 0.119879f, 0.171306f, 0.178961f, -0.0376099f, 0.0759337f, -0.193037f, 0.159082f, -0.0454939f, 0.231529f, 0.19697f, -0.0527631f, -0.07752f, -0.0489649f, -0.0179346f, 0.0186004f, -0.113162f, 0.0458203f, -0.103527f, 0.0190073f, -0.0867345f, -0.0370142f, 0.119919f, 0.106526f, -0.0667163f, 0.0359036f, -0.0789678f, -0.138709f, -0.028857f, -0.050412f, -0.0270008f, 0.120481f, -0.140142f, -0.043569f, 0.117375f, 0.0846386f, 0.0676402f, -0.0390312f, 0.0487376f, 0.00381574f, 0.068868f, -0.142914f, 0.0537322f, -0.0135041f, 0.186685f, 0.201425f, 0.0070755f, 0.0532441f, -0.014985f, 0.00928228f, 0.152088f, -0.0812244f, 0.00655907f, 0.078549f, -0.00257587f, -0.095374f, 0.101777f, -0.0854879f, -0.133711f, -0.0296004f, -0.0875907f, 0.00963053f, 0.17282f, 0.0914867f, -0.00121463f, -0.139567f, -0.149376f, 0.129923f, -0.101361f, -0.0292206f, -0.00676972f, 0.006276f, -0.0734507f, 0.0347251f, 0.0206986f, -0.11267f, -0.125151f, 0.216722f, 0.00684697f, -0.052881f, 0.0865279f, 0.0576749f, -0.0295077f, 0.0491213f, -0.030428f, 0.0589632f, -0.0949345f, 0.0493515f, -0.0694301f, -0.163268f, -0.146357f, -0.0673626f, 0.052032f, 0.0169042f, -0.0774962f, 0.0612279f, -0.166672f, -0.0599577f, -0.0633639f, 0.0254275f, 0.0201976f, -0.0526878f, -0.0169007f, -0.035077f, -0.02462f, -0.0181858f, 0.0965988f, 0.20853f, -0.297697f, -0.00340586f, -0.17861f, 0.0250463f, -0.118272f, 0.0869688f, 0.0192564f, -0.0381018f, 0.108253f, 0.0535526f, -0.0620016f, 0.0532243f, -0.0975526f, -0.00402363f, 0.0429589f, 0.158719f, -0.0104289f, -0.0432213f, 0.0479665f, -0.0717833f, -0.0616633f, 0.0328634f, -0.0113763f, -0.0626997f, -0.0816766f, -0.0432693f, -0.00923528f, -0.0144775f, -0.0233158f, -0.0947143f, -0.115744f, -0.157524f, 0.0229645f, -0.0810907f, 0.00524696f, 0.00146699f, -0.0679898f, -0.154052f, -0.065664f, -0.0133225f, 0.144046f, 0.0653894f, -0.0684904f, -0.00210106f, 0.0202325f, -0.00935773f, -0.0554747f, 0.041597f, 0.0649542f, -0.0404586f, 0.0412038f, 0.0477054f, 0.0682841f, -0.0435034f, 0.0765214f, -0.137913f, 0.0259453f, 0.234249f, -0.0356187f, -0.0887007f, -0.0882061f, 0.0608521f, 0.143281f, -0.113073f, -0.0459355f, -0.0299839f, 0.202796f, -0.112708f, -0.164899f, -0.14343f, -0.0281979f, 0.167565f, -0.146052f, -0.187173f, -0.0750578f, 0.02184f, 0.177881f, 0.0728833f, 0.0800647f, -0.00750367f, 0.119847f, 0.254518f, -0.0861984f, -0.0498776f, 0.0141963f, 0.0636368f, 0.123143f, -0.0387844f, 0.125971f, -0.0417447f, 0.113657f, -0.0981219f, -0.0547367f, -0.037534f, 0.0539888f, -0.100744f, -0.0434071f, 0.0682394f, 0.0871798f, -0.0311033f, -0.0370197f, -0.0249085f, -0.00708454f, -0.0404447f, 0.110853f, 0.00923914f, 0.0787698f, 0.112387f, -0.101354f, -0.163688f, -0.0185496f, 0.0226097f, -0.152786f, -0.0726398f, 0.0676446f, 0.125094f, 0.0132284f, -0.0593779f, 0.128175f, -0.241873f, -0.0273401f, 0.0742429f, 0.19901f, 0.0919988f, -0.00836191f, 0.0348858f, 0.165104f, -0.0613898f, 0.112708f, 0.0917051f, 0.0260319f, -0.065118f, 0.0293152f, 0.0565822f, 0.0119785f, 0.19477f, -0.0146787f, -0.260057f, -0.104186f, -0.0966388f, 0.149077f, -0.173489f, 0.0939372f, 0.128021f, -0.0357684f, -0.0517028f, 0.0143647f, 0.130607f, -0.0711035f, -0.00189047f, -0.115368f, 0.263314f, 0.0167397f, -0.245477f, -0.0858798f, 0.302755f, 0.115846f, -0.0318118f, -0.0383703f, -0.198666f, -0.109806f, -0.0613273f, -0.124917f, -0.0124952f, -0.100409f, -0.0208415f, -0.101458f, 0.0152759f, -0.0859899f, 0.159824f, 0.128329f, -0.31282f, 0.0354912f, 0.000195532f, 0.135932f, -0.0713688f, -0.0506432f, -0.142672f, 0.199843f, 0.0800669f, 0.126208f, -0.180627f, -0.0130582f, -0.0219251f, 0.180833f, 0.00287334f, -0.0152245f, -0.041901f, -0.0855636f, -0.0100015f, 0.0588728f, 0.0562564f, 0.0378948f, 0.16806f, -0.0358485f, 0.0583644f, -0.104326f, 0.0378592f, -0.0258975f, -0.0892439f, -0.0513174f, 0.0957967f, 0.0177465f, -0.112847f, 0.107659f, -0.111288f, 0.210257f, 0.0097983f, -0.285422f, 0.0180447f, 0.157152f, 0.0180197f, 0.168234f, 0.105974f, 0.0618372f, 0.146627f, 0.188205f, -0.101942f, -0.247116f, 0.0768678f, 0.00380349f, -0.0161102f, -0.000461874f, -0.00881054f, -0.169328f, -0.274421f, -0.0559141f, 0.0477404f, 0.175432f, 0.0685379f, -0.00848164f, -0.119128f, 0.150294f, -0.0379938f, -0.194851f, 0.144737f, -0.153222f, 0.161334f, -0.101825f, -0.107602f, 0.11945f, 0.155657f, -0.110698f, -0.0454566f, -0.125012f, 0.190649f, -0.0551027f, -0.125038f, 0.079506f, -0.17378f, -0.0425822f, -0.0454212f, -0.0382528f, 0.0142943f, 0.0820632f, -0.193152f, 0.12707f, 0.291845f, 0.0250315f, 0.14491f, -0.0557204f, 0.131727f, -0.0752608f, 0.0194725f, -0.10702f, 0.0810582f, 0.137637f, -0.0501724f, -0.0493465f, -0.0352318f, -0.129282f, 0.0497972f, 0.0202646f, -0.0726985f, -0.104236f, 0.159151f, 0.0465456f, 0.0690551f, 0.0935469f, 0.0878223f, -0.150406f, 0.288982f, -0.0746188f, -0.0518087f, 0.229179f, -0.155393f, 0.12748f, -0.11096f, 0.147661f, 0.296666f, 0.0166346f, -0.0512565f, 0.200339f, -0.135889f, 0.243239f, 0.105383f, -0.169761f, -0.115881f, -0.0864284f, -0.10431f, 0.259267f, 0.215348f, -0.165873f, -0.0555462f, 0.346018f, 0.0761327f, -0.123868f, 0.167333f, -0.166088f, -0.100387f, 0.144344f, 0.275665f, 0.0471274f, -0.00097327f, -2.95061e-05f, 0.100579f, -0.0133436f, -0.00761577f, 0.0421832f, -0.0193875f, -0.25119f, 0.0511413f, -0.0602377f, -0.00919222f, 0.0465616f, 0.197247f, -0.0547346f, 0.0316546f, -0.0290977f, -0.02137f, 0.171355f, -0.0803177f, -0.0696796f, 0.014716f, -0.00322727f, 0.0808363f, 0.0707796f, -0.156772f, 0.0370113f, -0.0178656f, -0.151161f, 0.0736129f, 0.148416f, 0.0778711f, 0.144752f, 0.217577f, -0.0354451f, -0.0698486f, -0.000243647f, -0.276243f, 0.0881414f, 0.0291491f, -0.161759f, 0.102996f, -0.0212529f, 0.069136f, -0.030714f, 0.121583f, 0.00274517f, -0.0432696f, -0.0347584f, 0.0413975f, -0.0519171f, 0.0354985f, 0.0710298f, -0.131995f, 0.189207f, -0.110611f, 0.00185955f, -0.0136468f, -0.160632f, 0.170354f, 0.0200062f, 0.0842623f, -0.240196f, -0.00336677f, -0.0237264f, 0.0627549f, 0.0334963f, -0.150746f, -0.0992013f, -0.0330021f, 0.015375f, 0.09146f, -0.000341288f, -0.0496006f, 0.0264943f, -0.0349599f, -0.0870973f, -0.0158846f, 0.0649118f, -0.0264069f, 0.140874f, -0.134253f, -0.182363f, -0.0480671f, 0.0162931f, 0.173416f, -0.0676093f, 0.0855051f, -0.0274659f, 0.00257764f, 0.0560504f, -0.00783401f, 0.089456f, 0.00923903f, -0.0219951f, -0.0367787f, 0.128951f, -0.0805817f, -0.0152612f, 0.126516f, -0.0535054f, 0.127436f, -0.0867403f, -0.0405207f, 0.0684804f, -0.0714253f, 0.0466667f, 0.0801769f, -0.0913664f, -0.0567048f, 0.0305216f, 0.0837042f, 0.126671f, -0.103212f, 0.0240113f, -0.0412055f, -0.0176235f, 0.049632f, -0.123632f, -0.0965269f, -0.164327f, -0.0562135f, 0.00716115f, 0.0292528f, -0.00628087f, -0.0205584f, 0.061692f, 0.161399f, -0.0627791f, -0.0147308f, -0.0197903f, -0.0213397f, -0.0531252f, 0.0743197f, -0.0379642f, 0.0353109f, -0.0593498f, 0.104684f, -0.039303f, 0.0402391f, -0.105199f, -0.106732f, -0.0153482f, -0.0435758f, 0.0210806f, 0.0562325f, 0.111882f, 0.208832f, 0.0372033f, 0.181224f, 0.0372735f, 0.0591067f, 0.0228514f, 0.0581491f, 0.0938781f, -0.0359237f, 0.0777512f, 0.124402f, 0.0326624f, 0.0749604f, 0.0447018f, -0.0667774f, -0.0396599f, 0.278345f, -0.050733f, 0.0414298f, 0.0867645f, 0.0388629f, -0.169728f, -0.0444036f, 0.0819363f, 0.0533693f, 0.0657915f, -0.017999f, -0.0814245f, -0.0799469f, -0.0129275f, -0.0530307f, 0.0696467f, 0.234941f, -0.186764f, 0.0497403f, 0.0272907f, -0.319766f, 0.0231814f, 0.090319f, 0.212207f, -0.104769f, 0.108553f, 0.00730924f, 0.12782f, 0.0359584f, 0.300987f, -0.102498f, -0.0710951f, -0.0815281f, -0.167076f, -0.00679631f, -0.0164476f, 0.193152f, -0.145179f, -0.0611794f, 0.0978545f, 0.0429408f, -0.1264f, -0.128275f, -0.0151647f, -0.119932f, 0.20639f, 0.191013f, -0.209411f, -0.0437698f, 0.0790275f, -0.0718078f, 0.174889f, -0.15512f, 0.198089f, 0.0312478f, 0.322805f, -0.0412883f, 0.149645f, -0.0262381f, -0.0757899f, 0.24154f, 0.0394889f, -0.171412f, 0.217387f, 0.126547f, -0.05483f, 0.182408f, -0.0315842f, 0.0691452f, -0.312494f, -0.049709f, 0.0391686f, -0.090463f, -0.231341f, 0.13147f, 0.0697943f, -0.122581f, 0.177777f, 0.0664141f, -0.152756f, 0.0941587f, 0.0155857f, -0.0807591f, 0.110624f, 0.0525559f, -0.00812555f, -0.251217f, 0.10456f, 0.0342443f, 0.339913f, -0.0812434f, 0.0855094f, 0.227078f, -0.139941f, -0.0275827f, 0.00566671f, 0.0275855f, -0.138074f, -0.0610872f, 0.0968856f, 0.115626f, -0.10294f, 0.183147f, -0.208446f, -0.165846f, -0.339885f, -0.157991f, 0.0622351f, 0.193735f, -0.109777f, -0.0559708f, -0.0166934f, 0.252757f, 0.0809263f, 0.0132609f, 0.0627364f, -0.0352769f, -0.0109583f, 0.183909f, -0.056895f, -0.174981f, 0.0439825f, -0.0999545f, -0.220794f, -0.153614f, 0.010093f, 0.120385f, 0.0334917f, -0.0027368f, -0.20321f, 0.147244f, -0.152629f, -0.163189f, 0.0781647f, -0.232898f, -0.065927f, 0.0478716f, 0.0193067f, 0.0489897f, -0.0335261f, -0.0345639f, 0.122515f, -0.0226949f, -0.00417744f, 0.141205f, 0.151485f, 0.0569054f, 0.0816053f, -0.108104f, 0.180673f, 0.038813f, 0.0876608f, -0.0425215f, 0.142872f, -0.133096f, -0.057236f, 0.0076226f, -0.102328f, 0.163952f, 0.0427539f, -0.0977589f, -0.127269f, 0.0555577f, 0.0841087f, -0.0554758f, -0.118995f, 0.0263244f, 0.0141408f, 0.141878f, -0.00527854f, -0.0150048f, 0.0355274f, -0.0548872f, -0.189712f, -0.214184f, 0.00964007f, -0.0586524f, 0.00905838f, -0.0571771f, -0.146775f, -0.0635174f, 0.072846f, -0.172074f, -0.0494472f, -0.0627442f, -0.151566f, -0.145567f, 0.0659817f, 0.342936f, 0.0744705f, 0.100358f, 0.2071f, -0.184782f, -0.180136f, 0.00758893f, 0.226953f, -0.0703637f, 0.0939868f, 0.0576693f, -0.0953817f, -0.0710142f, -0.0250063f, 0.0815378f, 0.0196303f, 0.0219979f, -0.0401528f, 0.205523f, -0.289672f, 0.128141f, 0.119088f, -0.136449f, 0.120113f, -0.0131446f, -0.156771f, -0.0338674f, -0.0382205f, 0.0895644f, 0.145418f, 0.158809f, -0.0377644f, 0.100308f, -0.0670112f, -0.0316172f, -0.082633f, -0.0605007f, 0.00175235f, 0.162351f, 0.0705741f, 0.221847f, -0.0418172f, -0.140294f, -0.13928f, 0.0970257f, -0.186233f, 0.0925076f, -0.0464865f, -0.0486217f, -0.012789f, 0.0008506f, 0.0545131f, 0.0202357f, -0.13518f, 0.0724624f, -0.00265273f, 0.121795f, 0.139651f, -0.00623427f, 0.0516746f, -0.278809f, 0.0307117f, -0.0138461f, -0.0316161f, -0.0635615f, -0.0167036f, -0.0839848f, -0.123533f, -0.188764f, 0.0690727f, 0.0700189f, -0.0454808f, 0.0761997f, -0.0657147f, -0.0330789f, 0.131101f, 0.0320996f, -0.00885046f, 0.0237182f, 0.150155f, 0.0257812f, 0.0506739f, 0.165673f, 0.0528347f, 0.0749397f, -0.128485f, -0.149093f, 0.166925f, -0.0429316f, -0.0940599f, 0.110752f, -0.117957f, 0.130362f, -0.0427425f, -0.0632804f, 0.0714312f, -0.175904f, 0.0655312f, -0.152686f, 0.0701625f, -0.186286f, 0.0537244f, 0.14171f, 0.16313f, 0.0631038f, 0.10094f, 0.0215025f, 0.0347512f, -0.00589819f, -0.00261855f, 0.0450388f, -0.0676456f, -0.041731f, 0.104283f, -0.0327162f, -0.150531f, -0.028093f, -0.165598f, 0.0765471f, -0.0820261f, -0.151437f, -0.0308188f, 0.120251f, -0.0589898f, -0.0814475f, 0.0172613f, 0.118746f, 0.0874222f, 0.0835443f, 0.152497f, 0.124371f, -0.146124f, 0.0384179f, -0.189206f, 0.155086f, 0.312175f, -0.0796643f, -0.305907f, -0.0736521f, -0.0227438f, -0.241296f, 0.0622643f, 0.00960953f, 0.120467f, 0.0995098f, 0.0850037f, 0.0866194f, -0.0570051f, 0.0693803f, -0.069417f, -0.0779219f, -0.0714367f, -0.0511432f, 0.197727f, -0.0330674f, -0.0685791f, 0.0719018f, 0.00689966f, -0.104008f, -0.292775f, 0.103057f, -0.0613242f, -0.0322103f, 0.109159f, -0.038669f, -0.136429f, 0.122571f, 0.202224f, 0.171118f, -0.224797f, 0.0143497f, -0.194573f, 0.035574f, 0.0133479f, 0.0874611f, -0.137535f, 0.182776f, 0.169329f, -0.0851196f, 0.127398f, -0.0385788f, -0.119594f, -0.0981955f, 0.0539169f, 0.0179976f, -0.075667f, -0.0220002f, 0.126424f, -0.0621554f, 0.168451f, -0.146512f, 0.0333036f, 0.333577f, -0.199602f, -0.167206f, 0.32022f, 0.00362058f, 0.0762582f, -0.0596424f, -0.00595615f, 0.0102077f, -0.0733206f, -0.106703f, 0.229529f, -0.0993421f, -0.0215923f, 0.00751318f, -0.037281f, -0.0105213f, -0.0245158f, 0.116935f, -0.0750441f, 0.106165f, -0.0584906f, 0.113367f, 0.138997f, -0.118686f, 0.0747012f, 0.0806652f, -0.0637945f, 0.072159f, -0.0520217f, 0.0760341f, -0.0310179f, -0.0209772f, 0.0515148f, -0.0106329f, -0.084966f, -0.135738f, -0.0975498f, 0.0531544f, -0.0302376f, 0.0319431f, 0.0419289f, 0.0145727f, 0.073691f, -0.0458698f, -0.14811f, 0.0864719f, 0.0694009f, 0.0957774f, -0.113633f, -0.049991f, 0.0151852f, -0.0131232f, -0.105976f, -0.121235f, -0.105547f, 0.0462909f, 0.0685215f, 0.0153091f, 0.0501654f, 0.0219969f, -0.0181243f, 0.0636983f, 0.0158325f, 0.0460223f, -0.000670258f, 0.0261072f, 0.0337185f, -0.0455574f, 0.00626718f, 0.123593f, -0.042446f, -0.0899644f, 0.151826f, -0.0402423f, 0.0673586f, -0.0679838f, 0.0369653f, -0.160131f, 0.0211449f, 0.280465f, 0.101367f, 0.0441965f, 0.0645803f, 0.105521f, 0.0968707f, -0.00496291f, 0.139755f, 0.0112006f, 0.0234996f, 0.0565801f, 0.00271005f, 0.0953157f, 0.0607829f, -0.00735964f, 0.0344101f, 0.00578495f, 0.157768f, 0.12943f, -0.0244923f, -0.00774611f, 0.0378338f, 0.006374f, 0.0459797f, -0.0023943f, 0.0776756f, -0.130663f, -0.0616284f, -0.0373749f, 0.0461782f, 0.147859f, 0.0806398f, 0.0531128f, 0.0805751f, -0.0466261f, -0.0984892f, 0.107121f, 0.0569994f, -0.0424457f, 0.0309604f, -0.0301039f, -0.170548f, 0.186004f, -0.0316727f, 0.0646111f, 0.029736f, 0.139371f, 0.113806f, -0.0125401f, 0.00117808f, 0.00301598f, 0.0253076f, 0.0614612f, -0.000862088f, 0.124195f, -0.0675383f, 0.0432192f, -0.134983f, -0.173352f, 0.0574713f, 0.0502343f, -0.0422746f, -0.0853276f, -0.279391f, -0.103267f, -0.131245f, -0.13177f, -0.0573477f, 0.206888f, 0.0336043f, -0.00292155f, -0.0832419f, -0.0446665f, -0.0376712f, 0.100174f, -0.0735857f, 0.0122289f, -0.122218f, 0.132375f, 0.127904f, 0.233338f, -0.142078f, -0.0307978f, -0.130829f, -0.155276f, -0.000830845f, -0.0450574f, -0.211732f, 0.107058f, 0.0294231f, -0.0420133f, 0.301597f, -0.226347f, -0.0215871f, 0.231819f, 0.179751f, 0.131988f, 0.0225025f, -0.118644f, 0.12747f, 0.123244f, -0.0710275f, -0.116407f, -0.0831745f, -0.130239f, 0.0027758f, 0.0338664f, -0.133211f, 0.0977805f, -0.0311547f, 0.00225501f, -0.105702f, -0.139918f, -0.0700555f, -0.0268356f, 0.0265563f, 0.0322304f, 0.333508f, 0.27746f, -0.105972f, 0.204437f, 0.0174261f, -0.125124f, 0.097578f, -0.000971249f, -0.114268f, -0.145734f, 0.0809757f, 0.173898f, 0.0289713f, -0.0555501f, 0.205156f, -0.121679f, -0.139063f, -0.259678f, 0.1069f, 0.0286787f, 0.210054f, -0.115093f, 0.0162415f, -0.0435798f, 0.0453261f, -0.163677f, 0.2189f, -0.214846f, 0.146902f, 0.0964614f, 0.00641223f, 0.222883f, -0.0154906f, -0.00131629f, 0.00612184f, 0.102965f, 0.00762272f, -0.0764442f, -0.0740976f, 0.152941f, -0.0291966f, 0.0975746f, -0.0997908f, 0.00582824f, 0.119599f, -0.186128f, 0.0776957f, 0.189578f, 0.0211283f, 0.130569f, -0.0739394f, -0.198629f, -0.0392742f, 0.0834129f, -0.090232f, 0.0859862f, -0.0831193f, 0.0361708f, -0.123919f, -0.00786216f, -0.0678348f, 0.1805f, -0.024118f, 0.0159092f, 0.0846805f, 0.198399f, 0.123242f, 0.0253988f, 0.018767f, -0.211508f, 0.212309f, -0.0964088f, -0.113188f, -0.208419f, -0.244779f, -0.0770067f, 0.0496954f, -0.150546f, 0.00841154f, -0.0296205f, 0.0642756f, 0.00500122f, -0.0523034f, -0.0709524f, 0.165673f, 0.180753f, 0.0258572f, -0.00270847f, -0.060578f, 0.148877f, -0.132787f, 0.126505f, 0.0767535f, -0.207558f, -0.0145993f, -0.178216f, -0.141995f, 0.0953777f, 0.0263095f, -0.100894f, 0.076645f, 0.0577234f, 0.296604f, 0.151073f, 0.0678511f, 0.12685f, 0.0287726f, 0.0927748f, -0.142404f, 0.158894f, 0.235325f, 0.026567f, 0.0691311f, -0.0795059f, 0.259903f, 0.112407f, 0.0876057f, 0.0987532f, -0.156062f, -0.164544f, 0.122628f, -0.0161695f, -0.0872636f, -0.0200897f, -0.0676756f, 0.302504f, 0.130418f, 0.185497f, -0.0636215f, -0.152076f, -0.0182599f, -0.016521f, -0.00725324f, -0.0684344f, 0.00425221f, 0.108273f, -0.0436141f, -0.108968f, -0.162845f, -0.0920954f, -0.0778879f, -0.190341f, -0.0340267f, -0.15175f, -0.286598f, 0.00784783f, -0.101229f, -0.0627455f, -0.19413f, -0.144877f, 0.0786388f, 0.302923f, 0.0148747f, -0.178929f, -0.131618f, -0.058789f, 0.0817423f, 0.148466f, -0.00697995f, 0.439176f, -0.0110164f, -0.0625794f, -0.118082f, -0.194804f, -0.263674f, 0.298317f, 0.0573918f, -0.159657f, -0.156461f, 0.0401275f, 0.213389f, -0.151609f, 0.0536184f, 0.0560205f, -0.18624f, 0.300344f, -0.0380615f, -0.168366f, 0.0359582f, -0.188781f, 0.174949f, -0.0411812f, 0.0325197f, 0.053454f, -0.118273f, -0.114449f, -0.0198333f, 0.0454938f, -0.0289594f, -0.0745887f, 0.001945f, 0.218167f, -0.098585f, -0.206205f, -0.0263053f, -0.0889894f, 0.0397852f, -0.0224575f, -0.13282f, -0.117512f, -0.0907816f, 0.00598627f, -0.0161887f, 0.180835f, -0.0495169f, -0.0844113f, -0.068347f, -0.17579f, -0.02717f, 0.024448f, 0.00136483f, 0.103834f, 0.101668f, -0.0194171f, -0.0154055f, -0.100141f, 0.191981f, -0.0160862f, 0.142042f, 0.243844f, 0.181115f, 0.0127734f, -0.00247913f, 0.0155267f, -0.120857f, -0.189613f, -0.0465066f, 0.022456f, -0.149848f, 0.0553893f, -0.0550394f, -0.0780449f, -0.0559193f, -0.0847209f, 0.0636217f, -0.0240147f, -0.0765591f, 0.124972f, -0.0863761f, 0.122869f, 0.0944162f, -0.0544976f, 0.00207065f, 0.0507205f, 0.0783548f, 0.00630309f, 0.124784f, 0.0806319f, 0.143318f, -0.111277f, -0.0844753f, -0.0442736f, 0.181034f, 0.0896975f, 0.0792532f, 0.096939f, -0.0859035f, -0.157592f, -0.0214996f, -0.204737f, -0.0485357f, 0.00667932f, 0.247652f, -0.0358236f, -0.0450392f, 0.120724f, -0.0470001f, 0.157388f, -0.171752f, 0.0211501f, -0.0434529f, -0.240291f, 0.0259062f, 0.0650488f, -0.0789314f, 0.0407254f, 0.178145f, -0.232562f, 0.0164714f, -0.0962433f, 0.144049f, -0.0643646f, -0.23135f, 0.036033f, 0.160172f, -0.0639099f, 0.143247f, -0.00405809f, 0.0392108f, 0.105821f, -0.0117836f, 0.364862f, -0.0218085f, 0.0582941f, -0.0268128f, -0.17341f, 0.0822477f, -0.0965718f, -0.0813121f, -0.214483f, -0.0213665f, -0.0935961f, -0.0511138f, -0.0948025f, -0.0737758f, 0.0593076f, -0.00460759f, -0.020429f, -0.171676f, -0.0735104f, -0.0423072f, 0.022951f, 0.0580283f, -0.0729432f, -0.104986f, -0.118006f, -0.244905f, -0.133555f, -0.0186048f, -0.187553f, -0.0160515f, -0.0255951f, -0.170562f, 0.0676428f, 0.0219462f, -0.127552f, 0.199784f, 0.107133f, 0.0332873f, 0.0529776f, 0.00201128f, 0.0642946f, -0.0317144f, -0.0373147f, -0.180745f, 0.0254618f, -0.0889232f, 0.0566953f, 0.236658f, 0.0163783f, -0.0463298f, 0.210977f, 0.00385164f, 0.081637f, 0.171105f, -0.168025f, 0.0661184f, -0.0841871f, -0.0602157f, 0.0176702f, -0.0296257f, 0.0125458f, -0.0625908f, -0.0880055f, 0.143577f, -0.0285165f, 0.215558f, -0.00994533f, 0.411468f, -0.0962043f, -0.0192072f, 0.0887899f, -0.0697142f, -0.0986407f, -0.0868332f, 0.0438853f, -0.051023f, -0.256342f, -0.106239f, -0.11333f, -0.0903353f, 0.0967568f, -0.309541f, -0.0189138f, -0.218905f, -0.173599f, 0.120725f, 0.0449916f, 0.0317646f, -0.0340631f, -0.135762f, -0.0371541f, -0.206674f, -0.226991f, -0.059626f, -0.157564f, 0.0606819f, -0.122837f, 0.096013f, 0.0672354f, -0.0537031f, -0.0718931f, -0.199894f, -0.0548641f, 0.107513f, -0.0139111f, -0.171422f, -0.0826682f, -0.0569582f, -0.105932f, 0.0802937f, 0.151964f, 0.0131966f, 0.07648f, 0.0280713f, -0.0461546f, -0.115433f, -0.0376063f, -0.100288f, 0.073246f, -0.109359f, 0.0487129f, 0.0443031f, -0.0950756f, 0.164226f, 0.142305f, 0.000433425f, -0.0197098f, -0.152526f, 0.152461f, -0.200112f, 0.233174f, -0.0221765f, -0.025886f, -0.0804262f, 0.0785665f, 0.0923028f, 0.133491f, 0.142697f, 0.0353495f, -0.115291f, 0.0199922f, 0.0612502f, -0.0765483f, 0.0436982f, 0.0486859f, -0.0690549f, -0.109503f, 0.107462f, -0.0566332f, -0.0132047f, -0.0329169f, -0.204581f, 0.0822049f, 0.143198f, 0.06244f, 0.106203f, -0.026786f, -0.149848f, 0.0301633f, -0.117558f, 0.133783f, 0.167485f, -0.0275655f, -0.0327422f, 0.164527f, -0.000375591f, 0.0887277f, -0.157277f, 0.0355882f, 0.0368576f, 0.0672137f, -0.049742f, 0.122216f, -0.0127117f, -0.0044736f, 0.121116f, -0.176739f, 0.191013f, 0.0961458f, 0.0432433f, 0.091975f, 0.0605433f, -0.0266397f, -0.068778f, 0.0193055f, -0.0442058f, 0.263195f, -0.0548342f, -0.105645f, -0.0326775f, 0.122997f, 0.00341024f, -0.163314f, 0.0460038f, 0.0287458f, -0.127227f, 0.0990594f, 0.0658493f, 0.0467441f, 0.0147039f, -0.0139484f, 0.090247f, -0.0571602f, -0.0544286f, -0.010209f, -0.111872f, 0.0788802f, 0.171519f, 0.169329f, 0.0999534f, 0.00700933f, -0.0719375f, -0.0595488f, 0.0364368f, 0.0358204f, 0.098086f, 0.24935f, -0.178989f, -0.0402939f, 0.0115397f, 0.0787451f, 0.235796f, -0.156643f, 0.0121429f, -0.182488f, 0.000534596f, -0.092585f, 0.00365245f, 0.0763095f, -0.0595423f, -0.140221f, 0.171876f, -0.0526002f, 0.0765097f, 0.0359853f, -0.131491f, -0.122749f, 0.187665f, -0.0282685f, 0.0630142f, 0.242813f, 0.0343545f, -0.197126f, -0.0403493f, 0.158171f, -0.188647f, 0.0483702f, -0.0336927f, -0.249133f, 0.0196906f, -0.0444548f, 0.184136f, -0.0879479f, -0.263376f, 0.0351465f, 0.00967625f, 0.135519f, -0.0148328f, -0.048009f, -0.0790516f, -0.102249f, 0.158303f, 0.208098f, 0.127586f, 0.138344f, -0.0882175f, -0.0206738f, -0.0353707f, -0.0403802f, -0.029957f, 0.0438575f, -0.0938733f, -0.0113277f, -0.138526f, -0.0393376f, -0.0114237f, -0.0153331f, 0.158024f, -0.051859f, -0.0268225f, 0.114178f, -0.0909112f, -0.0584362f, 0.105077f, -0.00871527f, -0.0263271f, 0.134731f, 0.124487f, -0.0602837f, -0.317559f, 0.0595694f, -0.040935f, -0.0758511f, 0.153561f, -0.025558f, 0.0220983f, -0.238473f, 0.0676488f, 0.0466724f, -0.225018f, -0.134105f, -0.0579748f, -0.0439054f, 0.106927f, 0.104645f, 0.0802242f, 0.108084f, 0.179642f, -0.00713578f, -0.041249f, -0.0799491f, -0.124749f, -3.37074e-05f, -0.1252f, 0.122808f, -0.0297159f, 0.0912978f, 0.0985428f, -0.0113928f, -0.134364f, 0.135816f, -0.210747f, 0.0581764f, 0.263032f, -0.0530373f, 0.0916552f, -0.045496f, 0.0582804f, -0.00956537f, -0.0154948f, -0.0423851f, 0.136804f, -0.109962f, 0.00940771f, -0.0292943f, -0.0414003f, 0.00620048f, 0.00956379f, -0.16308f, 0.052962f, -0.177084f, -0.024391f, 0.000572143f, 0.019255f, 0.0644014f, -0.153145f, 0.0128466f, -0.0821009f, 0.0346998f, 0.0650427f, -0.0177383f, 0.0660731f, 0.123216f, -0.0833914f, 0.0679018f, -0.0681478f, 0.02281f, -0.0524921f, 0.116663f, -0.0979795f, -0.151933f, -0.0352637f, 0.0881004f, 0.0487541f, 0.00661808f, -0.0508892f, -0.0186194f, 0.0520507f, -0.0413656f, 0.146433f, -0.050049f, 0.0827483f, -0.0501086f, 0.0153644f, -0.0459721f, 0.0655622f, 0.0872876f, -0.0773443f, -0.00406444f, 0.138694f, -0.235277f, 0.148203f, -0.0704743f, -0.0322915f, -0.00143417f, -0.0982438f, -0.0880526f, -0.0759267f, 0.0810061f, -0.0172714f, -0.150085f, -0.0612483f, -0.0500993f, 0.00923557f, -0.0583429f, -0.00595263f, 0.0896776f, 0.0220401f, -0.0565514f, -0.310119f, 0.0819224f, 0.122018f, -0.0788263f, 0.0777749f, 0.0979377f, -0.0639043f, 0.00928077f, -0.0499973f, -0.0400224f, -0.000574911f, -0.110339f, -0.0948323f, 0.122082f, 0.0561886f, 0.1508f, 0.251017f, -0.0138699f, 0.024624f, 0.0169676f, 0.136544f, 0.0479448f, -0.109695f, -0.080051f, -0.0163915f, -0.167296f, 0.0575209f, -0.249151f, 0.0944675f, -0.0781063f, 0.375681f, 0.0394529f, 0.0618735f, -0.089519f, 0.118682f, -0.0253652f, 0.184129f, 0.297229f, -0.191492f, 0.0505591f, -0.0913989f, 0.259753f, -0.00750962f, 0.234687f, 0.157358f, -0.0707787f, 0.124578f, -0.0755218f, 0.0786754f, 0.0353833f, 0.103605f, 0.0830876f, 0.0424528f, -0.231562f, -0.17194f, 0.0643963f, -0.0140621f, -0.0211199f, -0.0049944f, -0.0737082f, -0.035092f, -0.0545289f, -0.0290527f, -0.0643643f, 0.11262f, -0.191746f, -0.0775751f, 0.00088546f, 0.0690892f, -0.25274f, -0.156711f, 0.102495f, 0.079138f, 0.155971f, 0.0640578f, 0.19935f, -0.0377256f, -0.246248f, -0.0104044f, 0.163365f, -0.00444166f, -0.0071001f, -0.124159f, 0.0493446f, -0.0850798f, 0.135526f, -0.00830749f, 0.148943f, -0.198971f, 0.13768f, 0.111081f, -0.049332f, 0.16852f, -0.215226f, -0.0367846f, 0.0321961f, -0.0437618f, 0.000728186f, -0.128975f, -0.15799f, -0.160072f, 0.0678405f, 0.281432f, -0.19657f, -0.0383664f, 0.248991f, -0.106262f, 0.292048f, 0.0339603f, -0.287998f, -0.0871172f, -0.180279f, 0.0977158f, -0.19148f, -0.28444f, 0.177285f, 0.039786f, 0.019712f, 0.0729741f, 0.0719424f, -0.0385185f, -0.0253956f, 0.0385404f, 0.221119f, 0.0895462f, -0.203467f, -0.147307f, -0.130687f, -0.0412938f, 0.232114f, -0.169174f, 0.0337914f, 0.0460482f, 0.0991183f, -0.0201279f, 0.0666047f, -0.196172f, -0.0853529f, -0.320088f, 0.0994365f, -0.151252f, -0.296701f, 0.00891138f, 0.0887634f, -0.207757f, -0.138991f, -0.157515f, -0.0990999f, -0.049215f, -0.00359244f, 0.0375753f, -0.13283f, 0.214505f, -0.14148f, 0.0117754f, -0.0264148f, 0.0690092f, 0.0975677f, -0.0878925f, -0.0515724f, 0.129437f, 0.143636f, 0.0310838f, -0.0442985f, -0.172708f, 0.181611f, 0.000661019f, 0.139161f, -0.134996f, -0.0690357f, -0.180024f, 0.0707661f, -0.119782f, -0.21067f, 0.291987f, 0.0581316f, -0.0336682f, -0.127663f, -0.168299f, 0.15631f, 0.078031f, -0.280874f, 0.285433f, -0.0866227f, 0.0441013f, -0.099833f, -0.0951391f, 0.061341f, -0.139349f, -0.0267476f, -0.207449f, 0.153061f, 0.227412f, -0.0938632f, 0.0815401f, -0.0653588f, 0.177069f, -0.052655f, 0.00816404f, -0.0242939f, 0.0352447f, 0.145852f, -0.0111049f, -0.0305896f, 0.0378056f, -0.114642f, 0.0500372f, 0.256098f, -0.0730372f, -0.0345089f, -0.214501f, 0.088835f, 0.270163f, 0.0364656f, 0.106849f, -0.147953f, 0.0747268f, 0.0936846f, -0.00268404f, -0.0594785f, -0.0375037f, -0.0887921f, 0.103873f, -0.108598f, 0.0407106f, -0.100062f, -0.170551f, 0.125359f, 0.0146713f, -0.0571015f, -0.194618f, 0.171913f, 0.0539628f, -0.0323952f, 0.231512f, -0.252168f, -0.118866f, -0.083549f, -0.177682f, 0.107113f, 0.0781758f, 0.0594684f, 0.00499479f, 0.0729393f, -0.0537143f, -0.0523934f, -0.082592f, -0.126924f, 0.165956f, -0.269973f, -0.0459364f, -0.121452f, -0.135581f, 0.223677f, -0.121832f, -0.0102091f, -0.117992f, -0.1182f, -0.042425f, -0.0122301f, -0.00365751f, 0.00509835f, -0.140769f, 0.022116f, -0.117889f, 0.150793f, 0.279977f, 0.0207496f, 0.116917f, 0.17914f, -0.0867594f, 0.0018449f, 0.101424f, 0.105308f, -0.154097f, -0.0837564f, 0.0710214f, -0.098975f, 0.141926f, -0.231457f, 0.0262595f, -0.152914f, -0.0976511f, 0.0494525f, 0.125201f, -0.357862f, 0.189771f, 0.184475f, 0.377177f, -0.0180502f, -0.181088f, 0.208415f, 0.0124353f, 0.175047f, 0.0634869f, 0.176655f, -0.160972f, -0.251638f, -0.0465624f, 0.1851f, 0.198393f, 0.0739704f, 0.0627861f, -0.157248f, 0.0945963f, 0.169016f, -0.198817f, 0.0335858f, 0.18541f, -0.171907f, -0.193336f, -0.0974043f, 0.0662577f, -0.0289654f, -0.0996697f, 0.039504f, 0.155125f, -0.00389195f, -0.0639551f, -0.0500292f, -0.0244204f, 0.0112994f, -0.00909482f, -0.124192f, 0.164573f, 0.126937f, 0.102731f, 0.163111f, -0.122477f, 0.05775f, 0.00755021f, -0.0673032f, 0.0299418f, -0.127382f, 0.204485f, -0.0424081f, -0.0660717f, -0.0015198f, 0.0728257f, 0.0590629f, 0.310328f, 0.0234367f, -0.01669f, -0.0272065f, 0.0184384f, 0.270189f, -0.024391f, -0.226581f, 0.0332318f, -0.0683126f, -0.0213689f, -0.149375f, -0.176875f, 0.233165f, 0.0860945f, -0.203347f, 0.174001f, -0.0505966f, -0.148272f, 0.0629295f, 0.0526873f, 0.0399599f, 0.160626f, 0.0281925f, -0.026179f, -0.0391977f, 0.0836354f, -0.0980322f, -0.0438703f, 0.102913f, 0.0394862f, 0.366043f, -0.0753206f, 0.122993f, -0.121856f, -0.0916316f, 0.0468668f, 0.102665f, -0.18753f, -0.125031f, 0.174206f, -0.166477f, 0.257371f, 0.108198f, -0.152632f, -0.0549908f, -0.00445209f, 0.177751f, 0.0774868f, -0.223178f, -0.0314952f, -0.0588019f, -0.0577483f, 0.190325f, 0.104597f, 0.0704718f, -0.121883f, 0.15023f, -0.0730659f, 0.0659461f, 0.221952f, 0.00475319f, -0.0253628f, -0.0093409f, 0.227499f, -0.0254921f, 0.0915292f, 0.139914f, 0.0585727f, 0.13218f, -0.0640147f, 0.0986692f, -0.0565669f, 0.304242f, -0.104631f, 0.213945f, -0.0427173f, -0.0984624f, 0.154443f, 0.209982f, 0.0079323f, -0.0335943f, 0.0523011f, 0.0577859f, 0.0389239f, 0.171507f, -0.0351128f, -0.143558f, 0.0353017f, 0.200947f, 0.056613f, 0.0323922f, 0.165315f, -0.0282567f, -0.146359f, 0.0627438f, 0.0319588f, 0.0339514f, -0.0545956f, -0.0719747f, -0.0157826f, 0.0115707f, -0.223508f, 0.170779f, -0.261247f, 0.161725f, -0.0474512f, -0.0817654f, 0.103288f, -0.0848836f, -0.00576106f, -0.0939211f, 0.0421044f, 0.0293124f, 0.0392874f, -0.0861634f, 0.0506589f, 0.133116f, 0.150643f, 0.213563f, 0.148135f, 0.240643f, -0.263292f, 0.215457f, 0.13152f, -0.132204f, 0.175195f, -0.14678f, 0.123917f, -0.355653f, 0.221528f, -0.335998f, 0.0591199f, 0.152389f, -0.0569674f, 0.0251812f, -0.106788f, 0.141392f, 0.000663555f, 0.00554093f, -0.0630895f, 0.207504f, -0.0542251f, 0.0736436f, 0.061985f, 0.252209f, -0.276209f, -0.0712424f, -0.127771f, 0.0517661f, -0.0573801f, -0.0300092f, -0.0284713f, -0.110957f, -0.0661945f, 0.122647f, -0.122942f, 0.0301846f, -0.155941f, -0.0807976f, 0.039458f, -0.0316346f, -0.0325458f, -0.0554089f, 0.110666f, 0.0830738f, 0.00363627f, 0.119053f, -0.0204632f, 0.262043f, 0.159036f, 0.0571317f, -0.181915f, -0.0979988f, -0.14703f, -0.154228f, -0.0139271f, -0.0708364f, 0.139381f, -0.2362f, 0.0193619f, 0.0453204f, 0.0567484f, 0.173824f, 0.117773f, -0.00332873f, -0.0112279f, -0.0722681f, -0.0289657f, -0.0507285f, 0.118787f, 0.0315706f, 0.0212674f, 0.0206731f, -0.0236192f, -0.0573769f, -0.0332449f, 0.0112735f, 0.0615494f, 0.113297f, 0.161885f, -0.115966f, 0.0421901f, -0.0385358f, -0.110057f, 0.0429052f, -0.0712834f, 0.0976452f, -0.064218f, 0.0751013f, 0.214687f, 0.0542966f, 0.0443563f, -0.0769756f, -0.0373999f, 0.164008f, -0.0505326f, 0.00125737f, -0.0126467f, -0.00355373f, -0.0411733f, 0.153456f, -0.237199f, 0.0290545f, -0.112688f, 0.14473f, -0.0529883f, 0.0724369f, -0.0404337f, 0.0212136f, -0.0422881f, -0.027609f, -0.10796f, 0.125772f, 0.0765661f, 0.0228904f, -0.0181031f, 0.00124019f, -0.140476f, 0.10999f, -0.173882f, -0.126255f, 0.0418209f, -0.179944f, -0.191607f, -0.020302f, 0.0614274f, -0.0863173f, 0.00445859f, 0.0516228f, -0.0579874f, -0.0654816f, 0.0133511f, -0.0236542f, -0.0837031f, 0.19486f, -0.13387f, -0.028467f, -0.0363815f, 0.0159868f, 0.202969f, -0.107041f, -0.24144f, -0.0138798f, 0.0505556f, -0.0553807f, 0.01119f, -0.00691395f, 0.00866526f, -0.00603107f, -0.108696f, -0.0475683f, -0.102675f, 0.0581881f, 0.00247019f, 0.221338f, 0.0282824f, -0.250254f, 0.0314065f, -0.150588f, 0.0244129f, -0.00735956f, 0.0392754f, 0.138102f, 0.0150318f, 0.0456039f, 0.0544637f, -0.00308071f, 0.0481664f, 0.0666403f, 0.0253438f, -0.10434f, 0.0338339f, 0.111899f, 0.0273458f, -0.122546f, -0.0668817f, -0.225542f, 0.05416f, 0.101241f, 0.000406677f, 0.102811f, -0.0601314f, 0.039399f, 0.0308256f, -0.0921805f, 0.0178523f, 0.198057f, 0.195732f, 0.203292f, 0.131383f, 0.0862096f, -0.0102639f, -0.0843691f, 0.0210823f, -0.00482735f, -0.000907958f, -0.113243f, 0.0467233f, 0.0309043f, 0.146057f, 0.212456f, -0.0932336f, -0.242933f, 0.100431f, -0.0720508f, -0.101171f, -0.0855f, -0.0188432f, 0.0459342f, 0.156714f, -0.0811427f, -0.0326259f, 0.186238f, 0.0923666f, -0.00817366f, 0.0282681f, 0.0881631f, -0.0834928f, -0.0164617f, -0.0496607f, 0.218332f, 0.00411857f, 0.131525f, 0.0991355f, 0.0270095f, 0.0246061f, -0.0719871f, 0.0878847f, -0.0392614f, -0.140324f, -0.131136f, 0.0499142f, -0.0339919f, -0.0375233f, -0.0890882f, 8.53245e-05f, 0.0551538f, -0.106908f, -0.0520464f, -0.00888123f, -0.11121f, 0.0620103f, 0.02852f, 0.00360382f, -0.100427f, 0.0432809f, 0.0889561f, -0.146118f, 0.13726f, -0.0639197f, 0.0401705f, 0.0265976f, -0.171236f, 0.0321678f, 0.0224811f, -0.0301821f, 0.171515f, -0.0470559f, -0.0426517f, -0.16323f, -0.0604493f, -0.034069f, -0.0972682f, 0.0228597f, 0.0883019f, -0.136297f, 0.160625f, 0.0749949f, 0.0894854f, -0.0319722f, 0.0663027f, 0.0817774f, 0.0163954f, 0.0903092f, -0.057734f, 0.0474958f, 0.102466f, 0.0303416f, -0.0479542f, -0.0631701f, -0.00230907f, -0.0777043f, 0.121863f, -0.0166429f, -0.0999836f, -0.13273f, 0.0800447f, -0.110862f, 0.0974836f, -0.0628038f, -0.0271585f, 0.0782667f, 0.0348656f, 0.0545337f, 0.143262f, 0.0748304f, 0.0712561f, -0.0664998f, -0.168497f, -0.101424f, 0.0974512f, 0.0252471f, -0.0867533f, -0.0656633f, -0.166401f, -0.109735f, -0.098683f, 0.0389852f, -0.0308158f, -0.138058f, 0.0885635f, -0.0492763f, -0.0404245f, -0.218716f, -0.0098714f, -0.182133f, 0.0218515f, 0.0435324f, 0.144572f, 0.141958f, -0.113712f, -0.0386648f, 0.180394f, 0.0515006f, -0.120037f, 0.0847489f, 0.0713453f, -0.0113679f, -0.0583359f, -0.0920653f, 0.0933766f, 0.0476242f, 0.0307557f, -0.163229f, -0.143127f, 0.00845675f, 0.0598008f, -0.0335867f, -0.0126779f, -0.281854f, -0.0437504f, 0.0176548f, 0.0524415f, 0.00556486f, 0.156353f, -0.117685f, 0.0605237f, 0.195363f, -0.0567216f, 0.00102997f, -0.0264323f, -0.00372358f, -0.0646244f, -0.0453075f, -0.166247f, 0.281282f, 0.17668f, -0.208788f, -0.142048f, -0.104778f, 0.109376f, -0.140984f, 0.12344f, 0.162422f, 0.0161071f, 0.117405f, -0.0344586f, -0.0492684f, 0.204228f, -0.0682354f, -0.169862f, -0.0145701f, 0.213315f, 0.0548976f, -0.0115088f, -0.169776f, 0.118558f, -0.0933496f, -0.0044707f, -0.141336f, -0.30965f, -0.0270276f, -0.222323f, 0.0159243f, 0.0588809f, 0.177776f, -0.126862f, 0.123038f, -0.203747f, 0.0544854f, 0.0938431f, 0.0423699f, -0.146566f, 0.153805f, -0.144095f, -0.0456819f, -0.200621f, -0.134878f, 0.28065f, -0.00443472f, 0.0279263f, 0.0820288f, -0.0894597f, 0.0721688f, 0.0774442f, -0.189078f, -0.0349292f, 0.13507f, 0.00840802f, -0.0826386f, 0.0738777f, 0.0206416f, 0.113751f, 0.0498769f, -0.117093f, 0.0130043f, 0.168696f, 0.0784696f, -0.15385f, -0.0693485f, -0.084018f, -0.365608f, -0.125739f, -0.176172f, 0.0950291f, -0.0214553f, 0.137151f, 0.0207239f, 0.12605f, 0.0842234f, 0.0268108f, 0.0131902f, -0.0362878f, -0.0859567f, 0.0159591f, 0.133899f, -0.0343238f, -0.172363f, 0.0752871f, -0.124453f, 0.080041f, 0.156957f, 0.0199755f, 0.0715357f, -0.0807205f, -0.185395f, 0.0886297f, 0.0506201f, -0.0778519f, -0.23308f, 0.0659566f, -0.104742f, 0.00464306f, -0.0196824f, -0.114372f, 0.0915493f, -0.0115746f, -0.17966f, -0.0192289f, -0.15546f, 0.100115f, -0.00505412f, -0.127364f, 0.0424053f, 0.0784288f, 0.104405f, 0.115772f, -0.0134272f, 0.198713f, -0.0219105f, 0.0683327f, -0.100121f, 0.0612386f, 0.118496f, 0.0640191f, -0.0749607f, -0.125005f, -0.135778f, 0.15251f, -0.0755532f, 0.106249f, -0.129481f, -0.0234071f, -0.121551f, -0.0824015f, 0.0580827f, 0.0676968f, -0.22937f, -0.160847f, -0.0465591f, -0.0645434f, -0.123939f, 0.135866f, -0.138445f, -0.063113f, -0.0114802f, -0.0524438f, 0.0661694f, -0.0053462f, -0.00282241f, -0.194824f, -0.0327054f, -0.04437f, -0.100807f, 0.0698429f, -0.0748573f, -0.0472383f, 0.0205898f, 0.0212699f, 0.124688f, 0.0770573f, 0.117578f, -0.00815512f, 0.0936562f, 0.124921f, -0.0601859f, -0.0955667f, -0.135149f, -0.0542988f, -0.0608268f, -0.197428f, -0.0650044f, 0.0704519f, -0.0164466f, -0.0986307f, 0.00715452f, 0.0767934f, 0.00412818f, 0.0905304f, 0.0396319f, 0.00837817f, -0.0267244f, 0.0930721f, 0.108028f, 0.00744507f, -0.0493471f, -0.0195623f, -0.177904f, -0.135552f, 0.0737591f, -0.178602f, -0.00670441f, 0.0754992f, -0.0378846f, -0.0629313f, -0.122933f, 0.0839281f, 0.0749091f, 0.0797577f, -0.175295f, -0.0168336f, -0.109948f, 0.0334345f, 0.083586f, 0.045774f, 0.0362349f, -0.202326f, 0.0418665f, 0.16225f, -0.00662578f, -0.116256f, -0.185444f, -0.0623462f, 0.0850885f, 0.108743f, 0.162511f, -0.154857f, -0.0573133f, -0.0633981f, 0.00990949f, -0.0896302f, 0.0157241f, -0.0902843f, -0.00159114f, 0.0701454f, 0.0728213f, -0.0906549f, -0.0224363f, -0.0464723f, -0.0144856f, -0.126268f, 0.107614f, -0.0468405f, -0.096787f, 0.0874614f, 0.0926338f, -0.152835f, 0.0176823f, -0.111429f, -0.0950984f, -0.0115219f, -0.0771794f, 0.0681982f, -0.111016f, 0.203482f, -0.00714296f, 0.0586067f, -0.0329465f, -0.0845449f, 0.0486549f, -0.0104111f, -0.199626f, -0.0892381f, -0.0629865f, 0.155612f, 0.0191639f, -0.0838307f, 0.209533f, 0.0316975f, -0.100128f, -0.00201803f, -0.194165f, -0.0726416f, -0.0313286f, 0.0242704f, -0.0801909f, 0.17155f, 0.145251f, -0.108382f, 0.314601f, -0.00656433f, -0.0320169f, -0.0816271f, 0.0489008f, 0.0992959f, -0.143571f, -0.00608044f, 0.172211f, -0.079396f, -0.177926f, -0.0300531f, 0.137206f, -0.149952f, -0.0553588f, 0.0345417f, -0.143267f, 0.0474634f, 0.0218015f, 0.0522585f, -0.141634f, -0.239816f, -0.0069167f, 0.26758f, 0.0171523f, -0.0734612f, -0.125769f, -0.0793968f, 0.291079f, -0.185657f, -0.0370256f, 0.121864f, 0.0162035f, 0.184935f, 0.259483f, -0.0395243f, -0.0944665f, -0.212575f, -0.172647f, -0.0665187f, -0.0145952f, 0.0767734f, -0.0227692f, 0.0859191f, 0.202254f, 0.0923423f, 0.0723978f, -0.10578f, 0.293047f, -0.0462116f, 0.0436361f, 0.0695043f, -0.152992f, -0.0416715f, -0.108272f, 0.0295012f, 0.0255692f, -0.161628f, -0.106685f, -0.0210847f, -0.154647f, 0.0204896f, -0.0587513f, 0.230551f, 0.0497908f, -0.0475957f, -0.0210439f, -0.155053f, -0.118814f, 0.0511831f, 0.054593f, 0.169512f, -0.0378522f, 0.143163f, 0.030325f, -0.0339543f, 0.0213306f, -0.164466f, -0.0934754f, -0.22833f, 0.0858077f, 0.0461933f, -0.118319f, 0.0767028f, 0.136021f, 0.0729791f, -0.0380858f, -0.0714416f, -0.117463f, 0.0150731f, 0.0284947f, -0.225468f, -0.237645f, -0.00766115f, -0.239746f, 0.248227f, -0.146335f, 0.137973f, 0.0281188f, 0.144324f, 0.0976707f, 0.0770879f, 0.0571518f, -0.104919f, 0.0866104f, -0.0190444f, 0.0697817f, 0.0870388f, -0.0719153f, 0.163755f, 0.331883f, 0.113305f, 0.120221f, -0.0100012f, -0.0332775f, 0.065859f, -0.0416822f, 0.197175f, 0.0936962f, 0.0247296f, -0.0276575f, -0.0286851f, -0.0589173f, 0.149987f, 0.185468f, 0.155365f, 0.188355f, 0.00237859f, 0.0676103f, 0.0251445f, 0.193678f, 0.0409631f, -0.0366925f, -0.154589f, -0.0389411f, -0.158109f, -0.169772f, -0.280884f, 0.0398991f, 0.139555f, -0.0110791f, 0.0485936f, 0.0385639f, 0.0519579f, -0.0920265f, 0.161738f, 0.065721f, -0.255336f, 0.101532f, 0.129778f, -0.0604631f, 0.070988f, 0.352874f, -0.0629856f, 0.291217f, -0.0543547f, 0.090589f, 0.00334543f, 0.00252746f, -0.141186f, -0.166335f, -0.121629f, 0.0590552f, -0.0850281f, -0.211745f, -0.172293f, -0.159549f, 0.123006f, 0.135679f, 0.0267605f, -0.152193f, -0.036335f, -0.214873f, -0.121877f, -0.170854f, -0.121973f, -0.113269f, 0.141356f, 0.0256631f, -0.0148008f, 0.151741f, -0.117047f, 0.0251949f, -0.0919051f, -0.112196f, -0.0214006f, -0.0821592f, -0.10234f, -0.0829865f, 0.180194f, 0.0215716f, 0.111666f, -0.0636419f, -0.215688f, 0.109072f, 0.199377f, 0.00757224f, 0.190048f, -0.253411f, 0.000319625f, -0.0757468f, -0.138268f, -0.276189f, 0.00548186f, -0.133266f, 0.182946f, 0.0393198f, 0.0600505f, 0.0116044f, 0.0239095f, 0.00707852f, 0.163426f, 0.0131742f, 0.145158f, 0.00283553f, 0.202782f, -0.031349f, 0.106123f, 0.0317581f, -0.294969f, 0.000338775f, 0.134041f, -0.0600072f, -0.0730347f, 0.119654f, -0.0980097f, -0.0241402f, -0.0668989f, -0.0310573f, -0.0581586f, 0.0820751f, -0.128971f, -0.0695226f, 0.0135357f, -0.123606f, 0.129523f, -0.0894331f, 0.0764786f, 0.195178f, -0.0130679f, -0.134301f, 0.145709f, -0.193029f, 0.161094f, 0.0701801f, -0.0707612f, -0.0958126f, -0.0118173f, 0.0684425f, -0.265877f, 0.0542163f, 0.0964676f, -0.0822466f, 0.0521333f, -0.117361f, 0.138503f, -0.131198f, -0.0831384f, -0.0514136f, -0.0502016f, -0.036244f, 0.0218823f, 0.0782719f, -0.0640802f, -0.0553641f, -0.221093f, -0.104808f, -0.0545768f, -0.0462723f, -0.017221f, 0.0993997f, 0.0120203f, 0.0898902f, -0.167782f, 0.149125f, 0.0787422f, -0.180152f, 0.160089f, 0.0780007f, 0.0823145f, 0.135117f, -0.0797384f, -0.0980863f, -0.177234f, 0.107759f, 0.0383026f, -0.0674362f, -0.00488177f, -0.057259f, -0.191928f, -0.202768f, 0.154951f, -0.0455602f, 0.0811795f, 0.053733f, 0.103396f, 0.12294f, 0.0911659f, 0.0843187f, -0.100549f, -0.109884f, 0.0839741f, 0.161174f, -0.11418f, 0.18197f, 0.287072f, -0.0938153f, -0.076604f, -0.185878f, 0.0672537f, -0.125767f, 0.0368364f, 0.0157694f, -0.0407388f, -0.0308107f, 0.112735f, -0.0396355f, -0.189153f, -0.0608741f, -0.129302f, 0.00478799f, -0.0368768f, 0.0510359f, 0.0907217f, -0.218272f, -0.101936f, -0.14216f, -0.00560582f, -0.0288911f, 0.0433238f, -0.119338f, -0.11291f, 0.0748263f, 0.147806f, 0.0880856f, -0.0552198f, -0.113234f, -0.0892637f, 0.0768048f, 0.307189f, 0.0245638f, 0.0316409f, 0.0402566f, 0.237725f, -0.0399341f, -0.0530584f, -0.0883524f, 0.0202731f, -0.0616137f, -0.166939f, 0.151039f, 0.140738f, -0.069355f, 0.0384919f, -0.00550695f, -0.0909114f, -0.0805798f, -0.0342301f, -0.115917f, -0.0618465f, -0.0146205f, 0.0675873f, 0.128991f, -0.11117f, -0.045966f, -0.0391435f, 0.129061f, 0.120178f, 0.0693377f, -0.0946104f, -0.142355f, 0.20063f, -0.0818652f, -0.00298243f, -0.0801682f, 0.0631885f, 0.01779f, -0.00135591f, 0.00272314f, 0.111527f, -0.131859f, -0.0075387f, -0.0554573f, 0.125767f, 0.112316f, -0.0343979f, 0.00222635f, -0.126533f, -0.0102839f, 0.00983106f, -0.074818f, 0.0852295f, 0.0767417f, 0.00988669f, 0.0636016f, -0.0303379f, -0.126553f, 0.0820762f, -0.189013f, -0.20051f, 0.0630236f, -0.242048f, -0.0865404f, 0.0687962f, 0.00123627f, -0.0103948f, -0.0663098f, -0.0931299f, 0.110547f, 0.0751829f, 0.0581922f, -0.113103f, 0.0361607f, -0.022175f, -0.301193f, 0.00355331f, 0.0283203f, -0.0707817f, 0.0468476f, -0.00397366f, 0.0291346f, 0.139848f, 0.0667173f, 0.0156195f, 0.113167f, -0.036104f, 0.00608596f, -0.0224088f, -0.0376919f, -0.0394271f, -0.0852909f, 0.0475666f, 0.00465422f, 0.00660843f, 0.169551f, 0.101554f, 0.00150177f, -0.179223f, -0.0468258f, -0.0876736f, 0.0390746f, 0.0242532f, -0.00118479f, -0.0421474f, 0.000581151f, 0.123448f, 0.0719542f, -0.087029f, 0.0380085f, 0.103385f, 0.00126884f, 0.126489f, 0.0424233f, -0.107618f, 0.185452f, -0.0627246f, -0.0584536f, -0.0934283f, 0.0652069f, 0.0906484f, 0.0510872f, -0.0573928f, 0.130892f, -0.0487467f, 0.0758483f, -0.108435f, -0.0120764f, -0.0467645f, 0.12436f, -0.0997391f, 0.0868841f, 0.00323449f, -0.195749f, -0.138854f, -0.0121493f, 0.0263368f, -0.122166f, 0.0323598f, -0.0193836f, 0.144236f, -0.0628916f, 0.00428236f, -0.12099f, 0.266247f, -0.183494f, 0.132809f, -0.167129f, -0.0508275f, 0.135888f, -0.0418371f, -0.0962804f, -0.0951941f, -0.114821f, 0.132069f, -0.128282f, -0.175875f, -0.198912f, 0.116171f, 0.107752f, -0.143536f, 0.087323f, 0.0323613f, 0.033975f, 0.0165699f, -0.0331944f, -0.0551878f, -0.0777927f, 0.179104f, -0.0700769f, 0.113302f, 0.110442f, -0.00930085f, -0.0759301f, 0.0293114f, -0.039091f, 0.0321688f, -0.0759916f, -0.0762207f, 0.215916f, 0.139452f, 0.0126151f, -0.0031113f, -0.127195f, -0.191948f, 0.230031f, -0.0381873f, -0.085138f, -0.100308f, -0.0454466f, 0.118482f, 0.072371f, 0.109701f, 0.0742852f, -0.243044f, -0.0148899f, 0.224943f, -0.0997938f, -0.073007f, -0.18312f, -0.0306144f, -0.0105626f, 0.00213062f, -0.0233494f, 0.130955f, 0.135267f, -0.0703666f, 0.175057f, 0.0790237f, 0.032288f, 0.0524363f, 0.247834f, -0.0374616f, 0.106501f, -0.131993f, 0.170161f, 0.0398851f, 0.203499f, -0.150741f, 0.311905f, 0.0788658f, -0.0282965f, -0.0872977f, 0.0739423f, -0.0334502f, 0.0262f, -0.130304f, 0.180065f, -0.115533f, -0.103926f, -0.0512683f, -0.199867f, -0.163173f, 0.0671355f, 0.0176537f, -0.0971016f, -0.125815f, 0.108367f, 0.0138161f, 0.168023f, 0.101629f, -0.054382f, 0.0140505f, 0.0327086f, 0.263393f, 0.0663371f, 0.336929f, 0.405278f, 0.0314086f, 0.0184855f, -0.084812f, -0.0709576f, -0.0326737f, -0.0280696f, -0.142288f, -0.098986f, -0.136917f, -0.0553295f, 0.0676655f, 0.013853f, 0.112344f, 0.125811f, -0.0767639f, 0.0439987f, 0.0228987f, -0.02137f, -0.0244697f, -0.147876f, -0.0251752f, -0.0379284f, -0.0647226f, 0.0341937f, -0.121735f, -0.100174f, -0.0598986f, -0.0196131f, -0.3472f, -0.0743812f, 0.0627455f, -0.114211f, 0.217759f, 0.158175f, -0.151913f, 0.0859349f, -0.0558778f, -0.245536f, 0.0773829f, -0.231388f, -0.100464f, -0.060115f, 0.0676159f, 0.118111f, -0.106342f, -0.12934f, 0.0371733f, -0.0581194f, -0.176012f, 0.215812f, 0.190505f, -0.163736f, 0.000507007f, -0.135493f, -0.0830093f, 0.071609f, -0.0371225f, -0.076906f, -0.11375f, 0.0239612f, 0.299057f, -0.0412237f, -0.121527f, 0.0044028f, -0.044546f, 0.0753698f, 0.164639f, 0.00228523f, 0.093221f, 0.0214547f, 0.0600803f, -0.0622577f, -0.0752353f, -0.051275f, -0.0383169f, -0.00795754f, 0.0252119f, -0.0126401f, -0.00567422f, -0.042262f, 0.083442f, -0.0586978f, -0.147768f, -0.0794564f, -0.0244015f, 0.051853f, 0.109868f, -0.0793144f, -0.0393269f, 0.0608404f, 0.0890723f, -0.0710212f, -0.0982764f, 0.0727868f, 0.13005f, -0.0119973f, 0.171012f, 0.171988f, 0.0211775f, 0.146145f, 0.0269672f, 0.0412364f, 0.115178f, -0.0423957f, 0.00905616f, -0.0838831f, -0.12676f, 0.152691f, -0.0199984f, 0.013342f, 0.165197f, -0.0625832f, -0.0520675f, -0.15181f, 0.0443335f, 0.113525f, -0.142989f, 0.0336039f, -0.00989765f, -0.131299f, -0.131239f, -0.00198667f, 0.106465f, 0.0741258f, -0.0136108f, -0.137813f, 0.0631925f, -0.179853f, -0.033683f, -0.0348575f, -0.0298155f, 0.0852177f, 0.0936267f, -0.0144655f, 0.0203772f, 0.145535f, 0.203976f, -0.0141789f, 0.0858781f, -0.0255209f, 0.109895f, 0.118723f, 0.0282528f, 0.016933f, -0.0639188f, 0.239534f, 0.00771305f, 0.0788866f, -0.359206f, 0.158087f, -0.065598f, 0.0692041f, -0.0462564f, -0.0307944f, 0.171246f, 0.112872f, 0.0671335f, 0.0626649f, -0.0382015f, -0.133939f, 0.0248772f, 0.0688373f, 0.122861f, 0.0577861f, -0.0359108f, -0.041648f, 0.0717909f, -0.174273f, 0.111512f, 0.0159893f, -0.0322574f, 0.178031f, -0.299461f, 0.0360735f, 0.0737417f, 0.0469753f, -0.0236047f, -0.0806754f, -0.0576051f, -0.0715724f, 0.364909f, -0.0898077f, -0.140996f, 0.0390871f, -0.0536726f, -0.0362228f, 0.180279f, -0.0575788f, -0.21351f, -0.112418f, 0.0206654f, 0.0852196f, -0.264722f, 0.137786f, -0.215293f, 0.0462995f, 0.0248057f, -0.171608f, -0.136671f, -0.0646528f, 0.120517f, -0.00781697f, -0.0950003f, -0.178635f, 0.233572f, 0.0616323f, -0.137745f, 0.000359951f, -0.182259f, -0.0305628f, 0.0951776f, 0.0861118f, 0.311919f, -0.0272912f, 0.169004f, -0.221897f, -0.139324f, 0.109422f, -0.0389392f, -0.050584f, -0.0306887f, -0.141575f, 0.107044f, -0.0541275f, -0.0915775f, 1.90883e-05f, -0.0540671f, -0.1248f, -0.0594223f, -0.1174f, -0.200067f, -0.0601236f, -0.0282521f, -0.0727905f, -0.0693876f, -0.153171f, 0.108937f, -0.0105873f, 0.0131787f, -0.148446f, 0.15995f, 0.0739947f, 0.0635453f, 0.0554233f, 0.22983f, -0.153248f, -0.0487372f, -0.0417181f, -0.0533395f, -0.0373368f, 0.104692f, 0.123382f, 0.0786966f, 0.0821922f, -0.00352446f, 0.0130089f, 0.0106247f, 0.00358571f, 0.0766206f, -0.0054139f, 0.12976f, 0.0834133f, 0.157372f, 0.0152423f, -0.0426947f, 0.0300059f, -0.20194f, -0.0200452f, -0.122784f, 0.227948f, -0.142901f, 0.0209322f, 0.056382f, 0.1699f, 0.0549787f, 0.0493221f, -0.0563672f, -0.115473f, 0.0850725f, 0.0169803f, 0.0493528f, 0.142897f, -0.0446541f, -0.0767163f, 0.024522f, 0.0243657f, 0.00812796f, 0.0901421f, -0.224886f, 0.0856588f, -0.0561756f, -0.00401722f, -0.104798f, -0.0289472f, 0.0493577f, 0.172639f, -0.0644f, -0.000980458f, 0.0368067f, 0.0589687f, -0.106533f, 0.133992f, -0.0776493f, -0.125717f, -0.0728068f, -0.0182634f, 0.0735045f, 0.0525062f, 0.00368344f, 0.0373791f, -0.143519f, -0.172335f, -0.108627f, -0.042079f, 0.0781261f, 0.0915418f, 0.00644886f, 0.113893f, 0.141698f, -0.0124521f, 0.142577f, -0.0129428f, -0.0301781f, 0.109445f, 0.158906f, 0.0158273f, -0.0906456f, 0.0412154f, -0.131566f, -0.0845796f, 0.0329961f, -0.00858371f, -0.0827552f, -0.128911f, -0.143573f, 0.0215006f, -0.247756f, -0.175999f, -0.0166564f, -0.0774325f, 0.00988666f, -0.0456803f, -0.0119353f, -0.164879f, 0.0481019f, -0.186182f, -0.246335f, 0.0300121f, -0.0655653f, -0.103862f, 0.0176684f, -0.0171149f, 0.102215f, -0.183757f, 0.0595879f, 0.265491f, 0.0481233f, -0.0763418f, 0.0866587f, -0.117466f, 0.0687183f, 0.00452964f, 0.130429f, -0.00565681f, -0.112608f, 0.0394847f, 0.0539918f, -0.0666722f, 0.0471328f, 0.194936f, -0.0127938f, -0.0114168f, -0.262257f, 0.0753083f, 0.215486f, 0.0772158f, -0.0450628f, 0.00289644f, -0.180984f, 0.209547f, -0.0633849f, 0.0265503f, 0.0121725f, -0.046239f, -0.0913831f, 0.0356748f, -0.0423551f, -0.0302324f, 0.0999703f, -0.0632859f, -0.167072f, 0.0703653f, 0.160756f, -0.075644f, -0.00553132f, 0.00583935f, 0.122859f, -0.168266f, -0.0846613f, -0.0584543f, -0.0940396f, -0.103338f, 0.152793f, -0.143324f, -0.0275598f, 0.0956532f, 0.0562156f, -0.0362134f, 0.213211f, -0.00973861f, 0.135226f, -0.174589f, -0.00329751f, -0.108182f, -0.113654f, -0.0662413f, 0.131774f, -0.0133282f, 0.0584787f, 0.00645135f, 0.0372075f, 0.0306904f, -0.0302557f, 0.0498232f, 0.042666f, 0.205024f, -0.0758641f, -0.0294425f, -0.0889366f, 0.0269959f, 0.0380038f, 0.0398266f, 0.0528198f, -0.0904563f, -0.0978281f, -0.068313f, 0.0457333f, 0.0795943f, 0.0948405f, 0.0200469f, 0.0548833f, 0.0636191f, -0.0799197f, 0.0612335f, -0.150282f, 0.0247016f, -0.050293f, -0.0426422f, -0.137472f, 0.155789f, 0.0456863f, 0.0591184f, 0.00261422f, 0.0555748f, 0.0937126f, -0.0109287f, -0.0912026f, 0.079417f, 0.0389771f, 0.0954299f, 0.120018f, 0.0929776f, -0.0487948f, 0.107617f, 0.0918833f, -0.046635f, 0.0347915f, 0.0977946f, 0.0753953f, -0.0611924f, 0.21114f, 0.116284f, 0.0365512f, -0.0132882f, -0.0210345f, -0.0169423f, -0.17591f, 0.0592985f, -0.139507f, 0.0330528f, -0.0665453f, 0.0111887f, 0.105084f, 0.0137584f, 0.0190691f, 0.0323157f, 0.0113699f, 0.00319627f, 0.11794f, -0.0311242f, -0.0749491f, -0.0944589f, -0.0847734f, 0.0646025f, 0.0401871f, 0.0454185f, -0.10769f, -0.0152885f, -0.0738717f, 0.024917f, 0.0632017f, -0.0650402f, -0.107415f, -0.0461601f, -0.0739395f, -0.0616036f, 0.099588f, 0.10589f, 0.175195f, -0.00573559f, 0.0891543f, -0.17376f, 0.197099f, -0.116157f, -0.0230408f, -0.14788f, -0.12097f, -0.032844f, -0.0941979f, 0.0742182f, 0.0945046f, 0.11055f, -0.215483f, 0.0605058f, -0.0866538f, -0.110748f, 0.0185428f, 0.23512f, -0.0259306f, 0.065226f, -0.218019f, 0.0561802f, 0.0709543f, -0.0303998f, 0.0386827f, 0.126517f, 0.0140852f, -0.203561f, 0.122919f, -0.0988643f, 0.13082f, 0.0114748f, -0.044433f, 0.106286f, 0.0455707f, -0.0492215f, -0.0681314f, -0.0411076f, -0.0592518f, 0.022264f, 0.0483298f, -0.160539f, 0.00204136f, -0.0791445f, 0.00221954f, -0.0864776f, 0.0226643f, 0.0719411f, 0.210257f, -0.0210368f, -0.0484101f, -0.0671174f, -0.0913305f, 0.0770722f, 0.0877918f, -0.109657f, 0.0328532f, -0.28558f, 0.21467f, -0.0802692f, -0.0333188f, 0.0428537f, -0.0723209f, 0.0649066f, 0.107654f, 0.0982478f, 0.115625f, -0.171343f, -0.120226f, -0.00309913f, 0.050965f, -0.00228574f, 0.0623146f, 0.0810032f, -0.150137f, 0.00222692f, -0.0166594f, 0.170252f, -0.312464f, 0.203978f, 0.017799f, 0.0790203f, 0.0015032f, 0.00860595f, 0.0149137f, -0.200581f, 0.0429273f, 0.048673f, 0.00148765f, -0.218366f, -0.0852597f, -0.147702f, 0.211552f, 0.0214932f, 0.074382f, -0.0120731f, -0.248212f, -0.086573f, 0.0452987f, -0.0577113f, 0.0607527f, -0.14452f, -0.0397579f, -0.169824f, -0.011252f, -0.0133552f, 0.0330437f, -0.118153f, 0.0489353f, -0.133889f, 0.0366741f, 0.0280261f, -0.0574276f, -0.144657f, 0.238303f, 0.206255f, -0.103662f, -0.0910226f, 0.00352447f, -0.0164529f, 0.0166113f, -0.043883f, -0.0273704f, 0.131583f, -0.0873214f, 0.161439f, 0.0380599f, 0.094898f, -0.144901f, -0.0316275f, -0.000449612f, 0.12693f, -0.0989803f, -0.0509203f, -0.0297262f, -0.0124091f, 0.00662072f, 0.07389f, 0.0869624f, 0.0284625f, 0.0159207f, -0.121852f, -0.0735496f, -0.162634f, -0.122031f, -0.14721f, -0.0395819f, 0.0332046f, -0.0376581f, 0.0930084f, 0.0293073f, 0.0449609f, 0.0712641f, 0.023479f, 0.0733267f, -0.0771408f, 0.203868f, -0.0100238f, -0.0713184f, -0.053772f, -0.228332f, 0.096183f, -0.000586273f, 0.0798726f, 0.0271422f, -0.11139f, -0.080159f, -0.100096f, 0.158267f, -0.0304058f, 0.109574f, 0.0273384f, -0.180382f, -0.0129705f, -0.00449165f, 0.0162746f, -0.0109055f, 0.218799f, -0.0560683f, -0.0714457f, 0.0588829f, 0.0284399f, 0.0610956f, -0.0780087f, -0.158301f, -0.153325f, -0.294042f, 0.0963786f, 0.0587289f, -0.157122f, -0.0960356f, -0.0716606f, -0.00437045f, -0.00715929f, -0.0188494f, 0.139635f, -0.0345328f, -0.181105f, -0.0159563f, 0.0276014f, 0.0201848f, -0.0393259f, 0.0417377f, -0.145298f, -0.0695349f, -0.0820722f, -0.0493121f, 0.0371987f, -0.00562376f, -0.0578931f, -0.0909422f, -0.162283f, -0.000605049f, 0.222216f, 0.00240155f, -0.178902f, -0.0455435f, 0.116903f, 0.0450361f, -0.01398f, -0.162968f, 0.025879f, -0.014392f, 0.0766986f, -0.0489045f, -0.0474465f, 0.0489962f, -0.152654f, 0.218469f, 0.156301f, 0.0500277f, 0.0797548f, -0.118716f, -0.0474145f, -0.000864115f, -0.0247415f, -0.0827129f, 0.0873829f, -0.0219059f, -0.0871082f, 0.100327f, -0.13832f, -0.0165597f, 0.145661f, -0.0821696f, -0.147556f, 0.0192553f, 0.204414f, 0.00112382f, -0.0398974f, 0.0613577f, 0.223857f, -0.218919f, 0.144116f, 0.0986556f, -0.0441144f, -0.114117f, 0.0672281f, 0.120759f, 0.202168f, -0.0537319f, -0.0243972f, -0.0340832f, -0.0419258f, 0.0473834f, -0.101516f, 0.0392689f, -0.0823353f, -0.204043f, -0.0848256f, -0.161437f, 0.128847f, 0.0674325f, 0.0322743f, -0.109569f, 0.0489494f, -0.114716f, -0.099169f, 0.0664302f, -0.00184453f, -0.00578211f, -0.146132f, 0.00227202f, -0.0742572f, 0.0806709f, 0.0877887f, -0.0154718f, -0.0610823f, 0.0172351f, 0.0739758f, 0.147027f, -0.00639858f, 0.051417f, -0.127549f, 0.179905f, -0.0221607f, -0.0561042f, 0.0480268f, -0.0219837f, -0.169972f, -0.125453f, -0.211313f, 0.179642f, 0.0896357f, -0.037611f, -0.138123f, -0.126171f, 0.140264f, -0.0425931f, -0.000123576f, 0.0297793f, -0.127861f, 0.0172955f, -0.0919533f, -0.0737757f, -0.158576f, -0.129847f, -0.0216638f, 0.162461f, 0.0578183f, 0.0672344f, 0.0323345f, 0.0714533f, -0.240807f, 0.0866002f, -0.124947f, 0.0883711f, 0.1538f, -0.0360892f, -0.0237766f, 0.267349f, -0.097481f, -0.0988234f, 0.0459941f, -0.0153057f, 0.194028f, -0.126622f, -0.00536853f, 0.0640994f, 0.144056f, 0.13606f, 0.177487f, 0.148337f, 0.0962032f, 0.257488f, -0.027079f, -0.00302076f, -0.0289131f, 0.0349572f, 0.0408395f, -0.111576f, -0.0273783f, -0.0839572f, 0.155334f, 0.133845f, 0.0963186f, 0.0788487f, 0.100227f, 0.112126f, -0.114955f, 0.119812f, -0.149146f, -0.010438f, -0.236915f, 0.263617f, 0.0547058f, 0.0794508f, 0.13985f, -0.0521213f, -0.165117f, -0.0517254f, 0.103716f, 0.141786f, 0.107149f, 0.151315f, 0.0242284f, 0.105166f, 0.0694475f, -0.194349f, 0.142696f, -0.0446672f, -0.025278f, 0.0688978f, -0.0644529f, -0.114916f, -0.050345f, 0.0632172f, 0.0468515f, -0.139235f, -0.175502f, 0.0372038f, -0.00606444f, 0.0438848f, 0.0931778f, 0.13727f, -0.0790641f, -0.0288281f, -0.00854381f, -0.106295f, 0.238316f, -0.0457221f, 0.189015f, 0.22545f, -0.135396f, 0.0454621f, -0.0248203f, -0.0933177f, -0.158999f, -0.0780454f, -0.16016f, 0.120078f, -0.0169928f, -0.0144272f, -0.0307134f, 0.256497f, -0.0247971f, 0.13928f, -0.0837646f, 0.109796f, -0.110754f, 0.185297f, 0.0123165f, 0.136713f, 0.255131f, 0.133605f, -0.0586806f, -0.0496904f, 0.0134735f, 0.015594f, -0.0607103f, -0.0634061f, 0.0350112f, -0.0356687f, -0.0549249f, 0.0907385f, -0.150614f, -0.153818f, 0.0478335f, 0.0483349f, -0.087461f, -0.0720636f, 0.179102f, 0.0730291f, -0.251164f, 0.182906f, -0.0471581f, -0.189788f, -0.0849958f, 0.188372f, -0.00271709f, 0.0513947f, -0.125499f, 0.0779445f, 0.000222669f, 0.0725459f, -0.0113365f, -0.0951412f, 0.110982f, -0.0657272f, 0.0468602f, -0.0521199f, 0.193719f, -0.199871f, -0.00269381f, 0.0978099f, 0.105297f, -0.108208f, 0.111672f, -0.0402458f, -0.0495727f, 0.0101632f, 0.0296603f, 0.0231331f, 0.0639629f, -0.00589024f, -0.0112265f, -0.142519f, 0.184097f, 0.170799f, -0.129636f, -0.00502621f, -0.0207182f, 0.132493f, 0.0690643f, -0.100455f, 0.0380391f, -0.0875112f, 0.0277012f, 0.0342734f, 0.112756f, -0.0250227f, -0.0221532f, 0.086932f, -0.0869034f, -0.111286f, 0.029825f, 0.0859659f, -0.00465861f, 0.00562891f, -0.124829f, -0.0904298f, -0.105986f, -0.0587141f, 0.0337069f, -0.178597f, -0.0839138f, -0.0325981f, -0.119738f, -0.0377287f, 0.0614227f, 0.171248f, -0.129788f, -0.058292f, 0.00583078f, 0.0181502f, -0.0968664f, -0.0750171f, 0.00214694f, -0.181049f, 0.289168f, -0.00308913f, 0.0318213f, 0.058329f, -0.195396f, -0.0940282f, -0.162397f, -0.0634562f, -0.0531168f, -0.161095f, 0.0427339f, -0.043042f, -0.154553f, -0.102211f, 0.0491242f, 0.0111924f, -0.047476f, -0.142178f, 0.102246f, -0.0621268f, -0.143292f, -0.207453f, 0.0636621f, -0.0350397f, -0.0804742f, 0.014769f, 0.0729948f, 0.0127519f, -0.195178f, 0.200197f, 0.00375432f, -0.00624014f, 0.123584f, -0.0383331f, 0.012285f, -0.110208f, 0.0731114f, 0.00880996f, -0.0822221f, -0.0284906f, 0.106397f, 0.174703f, 0.00411917f, -0.047814f, -0.259528f, 0.035195f, -0.0471244f, -0.102322f, 0.0981426f, 0.0681561f, 0.0739306f, 0.137213f, 0.0634007f, 0.088386f, 0.0625578f, -0.0693105f, 0.0345739f, 0.0895836f, 0.132281f, 0.181831f, -0.0305308f, 0.0882188f, -0.11804f, -0.0644841f, -0.0373792f, -0.114423f, 0.0536577f, -0.0338129f, -0.0691534f, -0.07293f, -0.0231796f, -0.102025f, -0.193936f, 0.0381616f, -0.0769748f, -0.0199439f, 0.115287f, -0.0221551f, -0.062492f, 0.155696f, -0.0760195f, -0.138965f, -0.122147f, 0.0170207f, -0.132155f, -0.197658f, 0.056561f, -0.147395f, -0.0331016f, -0.0158362f, -0.0839234f, -0.146546f, 0.0568423f, 0.123853f, 0.125969f, -0.0188812f, -0.0580131f, 0.0843678f, 0.0372052f, -0.0498497f, -0.0532892f, -0.094139f, -0.0663339f, -0.112045f, 0.133358f, 0.0885907f, 0.0970352f, 0.102026f, 0.015308f, -0.0270658f, 0.16547f, -0.0560272f, -0.0964968f, -0.0988407f, 0.0679886f, 0.103749f, 0.170564f, 0.195813f, -0.0312866f, 0.0211601f, -0.017865f, -0.0489293f, -0.0585939f, -0.0276946f, -0.0234492f, 0.0636504f, -0.0129645f, -0.058264f, 0.018051f, 0.089033f, 0.00866929f, 0.031056f, -0.121356f, -0.0140389f, -0.0201874f, 0.0133468f, -0.0441331f, -0.010492f, 0.00685425f, -0.127882f, 0.0329712f, -0.0563903f, -0.126271f, 0.0915666f, 0.0569118f, -0.0162105f, 0.301888f, -0.00577669f, -0.0644699f, 0.286688f, -0.135074f, 0.198701f, 0.13374f, 0.0768465f, 0.221807f, 0.0002473f, 0.252372f, -0.0250196f, 0.119749f, -0.22422f, -0.0938131f, 0.130647f, 0.168878f, -0.145989f, 0.286856f, 0.019002f, 0.0817282f, -0.0497936f, 0.207759f, -0.15028f, 0.162403f, -0.124052f, 0.00808952f, -0.0171731f, 0.0820959f, -0.16853f, -0.0479926f, -0.200043f, -0.00261546f, 0.0301762f, -0.233062f, -0.0234549f, -0.0929557f, 0.0629822f, 0.0794051f, 0.0342013f, 0.144896f, -0.00813711f, -0.227273f, -0.141694f, -0.27169f, 0.224392f, 0.0984629f, -0.133572f, 0.0468921f, -0.0351526f, -0.0331094f, 0.0661988f, -0.0724967f, 0.0524242f, -0.00412046f, -0.0376472f, -0.0658608f, -0.0456447f, -0.0845839f, -0.0361741f, -0.0601928f, 0.163131f, -0.106233f, -0.366038f, 0.00797637f, -0.0231015f, -0.0131786f, -0.0775315f, -0.0988734f, -0.217208f, -0.10994f, 0.132245f, -0.132815f, 0.0103053f, -0.102288f, -0.00909063f, -0.119759f, -0.210456f, 0.138341f, -0.0341217f, 0.20882f, -0.0502009f, -0.0483512f, -0.0456487f, 0.100956f, 0.158118f, -0.0915728f, -0.224534f, 0.0363542f, -0.0866533f, -0.0352749f, -0.109428f, 0.127289f, -0.142936f, -0.11762f, 0.0228804f, -0.188088f, -0.114416f, 0.0256583f, 0.0693748f, 0.119776f, 0.0546991f, 0.00115148f, 0.125768f, -0.169633f, 0.110888f, -0.118791f, -0.0384767f, -0.158849f, -0.0264956f, -0.00601355f, 0.154039f, 0.000259476f, -0.0967734f, 0.0324582f, 0.103897f, 0.0409492f, 0.0590243f, -0.0596796f, -0.0718197f, 0.252925f, 0.0787568f, -0.0240129f, -0.0594853f, 0.175524f, 0.110802f, 0.0590543f, 0.101557f, -0.0840849f, -0.106357f, -0.166777f, 0.0203275f, 0.175153f, 0.115441f, -0.0446554f, 0.0730614f, -0.139594f, -0.0827482f, -0.132672f, -0.234653f, 0.0611508f, 0.0523823f, 0.045676f, 0.204303f, 0.0905313f, -0.0223278f, -0.0565026f, -0.030769f, 0.221435f, -0.0478355f, -0.121569f, -0.0662583f, -0.181544f, 0.0645318f, -0.0454806f, 0.0108579f, -0.118606f, 0.0770029f, -0.131012f, -0.0203915f, -0.0716018f, -0.186557f, -0.0117691f, -0.0685991f, -0.141035f, 0.0432303f, -0.0923682f, 0.126433f, -0.130911f, 0.0259088f, -0.0535197f, -0.0940918f, 0.0221463f, -0.00560294f, -0.0478526f, 0.00605898f, -0.131151f, 0.0931443f, -0.299442f, -0.0721862f, 0.140847f, 0.344307f, -0.116993f, -0.150308f, 0.191258f, 0.00269117f, 0.0180435f, 0.0888292f, -0.0469906f, 0.0528578f, 0.00993826f, -0.0956561f, 0.0138077f, -0.163916f, 0.0316806f, -0.0202339f, -0.0940167f, -0.162324f, -0.083094f, 0.133542f, -0.109024f, 0.0927877f, -0.0270035f, 0.121229f, 0.156598f, -0.01322f, -0.0257915f, 0.100085f, 0.130846f, -0.021948f, 0.169491f, -0.0448827f, 0.115516f, -0.0715343f, 0.100839f, 0.0229607f, 0.00926584f, 0.0123816f, 0.159302f, -0.00795994f, -0.0258342f, 0.0807523f, -0.0837323f, 0.0875775f, -0.00891723f, -0.215346f, 0.0401299f, -0.175561f, 0.132453f, 0.0845686f, -0.127178f, -0.0274246f, -0.123372f, 0.0384384f, 0.0455284f, 0.0468858f, 0.096834f, -0.0328079f, -0.0805607f, 0.0838779f, -0.164932f, -0.00130207f, 0.0649114f, 0.140843f, -0.25098f, 0.0439315f, -0.0507408f, -0.076574f, -0.216583f, 0.0963339f, -0.0978792f, -0.112221f, 0.0554837f, 0.0286793f, -0.0572025f, 0.100998f, 0.0914439f, 0.221541f, 0.080418f, 0.236234f, 0.163571f, -0.0113608f, -0.0287685f, -0.0459155f, 0.0950004f, -0.09279f, -0.0689555f, -0.00219202f, 0.00570634f, 0.000771681f, 0.031695f, -0.171196f, 0.0020497f, 0.147911f, 0.0257572f, -0.0266174f, 0.038167f, -0.0241347f, 0.0990397f, 0.132176f, -0.140331f, 0.0897711f, -0.0379647f, 0.00312934f, -0.205916f, -0.0822618f, -0.111707f, 0.0265303f, -0.0561398f, -0.119398f, 0.0748019f, 0.146458f, 0.172327f, 0.0978847f, 0.0358156f, -0.0365916f, 0.0284308f, -0.262982f, 0.023788f, -0.0409537f, -0.0266172f, 0.116654f, -0.0801663f, 0.150359f, 0.2243f, 0.023124f, 0.00684813f, -0.122193f, -0.216644f, 0.147103f, -0.0392872f, 0.10548f, 0.0265301f, -0.069324f, -0.0537202f, -0.0927089f, 0.022324f, -0.0628312f, -0.0479794f, 0.0939621f, -0.0267998f, 0.286743f, 0.0355109f, -0.145163f, -0.161679f, 0.0523757f, -0.0555209f, 0.0807361f, 0.19329f, 0.101239f, 0.123913f, 0.0285046f, -0.172291f, -0.0323532f, -0.109452f, -0.107016f, -0.1759f, 0.187811f, -0.300859f, -0.0147082f, -0.127482f, 0.0470463f, 0.0033916f, -0.107317f, -0.0784184f, 0.151408f, 0.056294f, -0.0475757f, 0.0314982f, 0.190411f, 0.0680653f, -0.130252f, 0.171775f, -0.064087f, 0.127858f, -0.0922019f, 0.117674f, -0.021808f, -0.0716439f, 0.0160781f, -0.025839f, -0.0234358f, 0.185187f, -0.0768174f, -0.0831532f, 0.0809498f, 0.0520408f, -0.0804712f, -0.0394929f, 0.188541f, 0.0182502f, 0.0110734f, -0.0681633f, 0.130992f, 0.109402f, -0.115693f, 0.0803883f, 0.00290294f, -0.160807f, 0.0610858f, -0.06444f, -0.0566136f, -0.101081f, -0.00724675f, 0.0530997f, -0.110278f, -0.0506532f, -0.0429683f, 0.0685958f, -0.0152539f, 0.0346204f, -0.218453f, -0.0535177f, -0.100268f, -0.0453986f, -0.0231579f, 0.165242f, -0.100784f, -0.0242327f, -0.202543f, -0.0469504f, 0.272136f, 0.156335f, 0.0696931f, -0.172909f, -0.0211901f, 0.141482f, -0.068282f, 0.0422313f, -0.00154235f, -0.0785404f, -0.184431f, 0.181534f, 0.0576326f, 0.107513f, -0.0800749f, 0.0341329f, -0.276723f, -0.149026f, 0.0804883f, -0.00251943f, 0.112362f, -0.0201509f, 0.000184098f, -0.1176f, -0.110368f, 0.0206901f, 0.0600989f, 0.0521686f, -0.127748f, 0.033219f, -0.0672267f, 0.0559829f, -0.0376113f, -0.193247f, -0.113583f, 0.287461f, 0.0416636f, -0.135019f, -0.0500053f, 0.087671f, 0.0582614f, -0.0934358f, 0.0747007f, -0.151836f, -0.0291564f, 0.0556662f, -0.0663011f, -0.0584755f, 0.0121648f, -0.017574f, -0.117097f, 0.119486f, 0.134686f, 0.113338f, -0.0840501f, 0.207543f, -0.0661853f, -0.21308f, 0.000827598f, 0.0284056f, -0.100293f, -0.0607275f, -0.0364274f, 0.144572f, -0.0262426f, 0.132025f, -0.183442f, -0.0807243f, -0.0268476f, 0.202466f, -0.00591555f, -0.164143f, 0.0838183f, -0.0120463f, 0.0583207f, 0.0123631f, 0.0402421f, 0.0372003f, -0.109976f, 0.106957f, 0.0870421f, 0.0556528f, -0.0788584f, -0.130307f, 0.0762227f, -0.0663722f, 0.080449f, 0.154444f, 0.0114595f, -0.110727f, -0.285198f, 0.413742f, 0.0378572f, 0.0549009f, -0.275438f, 0.094386f, 0.0927528f, 0.124614f, -0.151312f, -0.0866337f, 0.0384032f, 0.0256686f, -0.119182f, -0.0972024f, 0.110824f, 0.0831841f, -0.0952631f, -0.0661435f, 0.0120204f, 0.127869f, -0.0468275f, -0.119752f, 0.0454494f, -0.115688f, -0.110008f, -0.0749505f, -0.00583533f, -0.0244968f, -0.0629447f, -0.0849419f, 0.0149222f, -0.0921093f, 0.0569924f, 0.053806f, -0.129071f, 0.0658975f, 0.136648f, 0.0418901f, -0.0312137f, 0.0830578f, -0.0789125f, -0.104186f, 0.0452759f, -0.0533351f, 0.0717283f, -0.0408574f, 0.0510284f, -0.13924f, -0.0407522f, -0.0318421f, 0.0494084f, 0.199022f, 0.0930713f, 0.208101f, -0.0740214f, 0.0500993f, -0.0609634f, 0.0677094f, -0.0229159f, -0.0725639f, 0.0514411f, 0.181402f, 0.0551718f, -0.0923629f, -0.117449f, -0.0963486f, -0.0791569f, -0.127033f, 0.0986236f, -0.155317f, -0.181355f, -0.00998766f, -0.0764074f, 0.0296038f, -0.0189728f, -0.0413061f, 0.047893f, 0.258885f, 0.0634384f, 0.224255f, 0.179427f, -0.153857f, -0.1248f, -0.035627f, -0.0961631f, -0.208684f, 0.216583f, 0.127871f, 0.0557714f, 0.0138025f, -0.0466323f, 0.0865939f, -0.0340532f, 0.0830937f, 0.0841876f, 0.00950125f, -0.0193555f, -0.0166588f, 0.216322f, -0.0740391f, -0.167198f, 0.102434f, -0.0476818f, -0.117612f, -0.0268429f, -0.0345731f, -0.0621415f, -0.12924f, 0.0350662f, 0.121563f, -0.122633f, -0.101134f, -0.0588185f, -0.103627f, 0.0489434f, -0.00632062f, -0.0155719f, 0.162799f, -0.00837424f, -0.110807f, -0.0532327f, 0.0945447f, -0.0414527f, -0.045626f, 0.0370292f, -0.183139f, -0.219701f, -0.0674682f, 0.0179123f, -0.00137924f, -0.0317929f, 0.146843f, -0.135342f, -0.0226036f, -0.0155227f, 0.088055f, -0.26204f, 0.0460458f, -0.0441857f, -0.0733038f, -0.0665089f, -0.178976f, -0.178454f, 0.166583f, 0.0297695f, -0.0120972f, 0.177051f, -0.048093f, -0.00250263f, -0.0736178f, -0.264038f, 0.201294f, 0.101955f, -0.0187858f, -0.0972331f, -0.265311f, 0.0431423f, -0.0628686f, 0.114896f, -0.0258723f, -0.20376f, -0.00122948f, -0.122846f, -0.0310558f, -0.0117862f, -0.0272454f, 0.0818012f, -0.0309882f, 0.0214322f, 0.226392f, 0.124972f, -0.112849f, -0.0544989f, -0.0356543f, 0.0502794f, 0.0476455f, 0.0344233f, -0.139078f, -0.0219407f, -0.0870147f, -0.102295f, -0.128166f, 0.00265093f, 0.15427f, -0.1488f, 0.0885249f, -0.190977f, 0.00653755f, -0.108244f, -0.0461647f, -0.0567829f, 0.225126f, -0.0622709f, 0.0746069f, 0.0284896f, -0.209861f, -0.0241492f, -0.0354917f, -0.150776f, -0.0119533f, -0.0253076f, -0.078324f, 0.103285f, 0.0380043f, -0.166961f, -0.108259f, 0.126914f, 0.209137f, -0.00575113f, 0.174594f, -0.044097f, 0.0687706f, 0.00120079f, 0.331485f, -0.135418f, -0.0705993f, -0.00476595f, 0.0212155f, -0.144963f, -0.0971553f, -0.0166222f, 0.0765248f, -0.117799f, 0.141515f, 0.233095f, -0.0456617f, -0.184627f, 0.000341058f, 0.193156f, -0.0582067f, -0.0631333f, 0.115042f, -0.0340653f, -0.070347f, -0.17293f, -0.0752822f, -0.0926911f, 0.171605f, -0.00210489f, -0.180202f, -0.0539088f, 0.192287f, -0.0619876f, 0.151636f, -0.151695f, -0.007274f, 0.092059f, 0.153835f, 0.199597f, -0.17388f, 0.0659664f, -0.0175764f, -0.0460245f, 0.264525f, -0.100137f, 0.00330768f, 0.0823767f, 0.0990917f, 0.156619f, 0.069622f, -0.078627f, 3.33741e-05f, 0.11696f, 0.0625006f, 0.00106364f, -0.0822393f, 0.118716f, 0.0644794f, 0.0284429f, 0.261367f, -0.0200286f, -0.0441847f, -0.0391195f, -0.118246f, -0.0448402f, -0.172288f, 0.0627179f, 0.0532854f, -0.0268378f, 0.0500942f, -0.202119f, -0.102956f, -0.030983f, 0.204023f, -0.0167333f, -0.142507f, 0.0696142f, -0.0907102f, -0.113511f, 0.181735f, -0.0414162f, -0.151163f, -0.197607f, -0.294715f, 0.194818f, 0.0447227f, -0.0845549f, 0.000446896f, 0.0324615f, -0.0146769f, -0.16138f, 0.0424589f, -0.00853703f, -0.148327f, -0.00376977f, 0.159337f, -0.177481f, 0.0404892f, 0.11599f, -0.0291687f, -0.00729663f, -0.072457f, -0.0861569f, -0.147166f, -0.00359691f, 0.0100766f, 0.0814809f, -0.0016804f, -0.292146f, 0.0337088f, 0.0670551f, -0.101796f, -0.0490747f, -0.182828f, -0.0516549f, -0.00496494f, -0.0345553f, 0.136531f, 0.170005f, -0.0778066f, 0.00860977f, 0.162308f, 0.0314563f, -0.0906035f, 0.142333f, -0.0477308f, 0.0498817f, 0.0203438f, -0.135002f, -0.060149f, -0.164977f, -0.159914f, -0.154439f, -0.182108f, -0.124411f, 0.00878263f, -0.10109f, -0.124342f, 0.235977f, 0.0252979f, -0.118639f, -0.032281f, -0.00948904f, 0.0751957f, -0.0254581f, -0.0876938f, 0.258546f, -0.0447662f, 0.189695f, -0.141869f, -0.0198459f, -0.081758f, -0.0877936f, 0.105717f, 0.171741f, 0.249455f, 0.0105537f, 0.0711035f, 0.0496381f, 0.00856438f, -0.0559322f, 0.0673262f, 8.24554e-05f, -0.08786f, 0.035945f, 0.196217f, 0.126371f, -0.0813913f, -0.201842f, 0.164194f, -0.137666f, -0.0147913f, -0.0139483f, -0.0839548f, 0.0448914f, 0.0975126f, 0.0501371f, 0.0499948f, 0.0322864f, 0.0952114f, 0.101062f, -0.05593f, -0.0119803f, -0.0304045f, -0.160986f, -0.18139f, 0.0343838f, -0.147475f, 0.0161662f, -0.121343f, 0.0794716f, -0.0211018f, -0.0252479f, -0.125145f, 0.0654196f, -0.00989245f, -0.0350131f, -0.0595337f, -0.0157397f, -0.130756f, 0.0295524f, 0.0724131f, -0.0428336f, 0.0137997f, 0.0572493f, 0.00937429f, 0.163981f, 0.0255233f, -0.110694f, 0.0502783f, 0.310631f, -0.189034f, -0.124126f, 0.0459643f, -0.0252854f, 0.146522f, -0.149928f, -0.121116f, 0.041718f, -0.097977f, 0.170547f, 0.124892f, 0.22247f, 0.106992f, -0.00643407f, 0.0286726f, -0.0618412f, -0.0165896f, 0.198988f, -0.0515238f, 0.219947f, -0.12288f, 0.301123f, -0.059546f, 0.0497198f, 0.0603091f, -0.115947f, 0.0120238f, 0.00475328f, 0.152704f, -0.0748359f, -0.0547798f, -0.0109254f, 0.0587732f, -0.0470967f, 0.107676f, -0.147906f, 0.0389335f, 0.00923218f, 0.153507f, 0.123108f, 0.134881f, -0.0269816f, 0.0172862f, 0.0456983f, 0.106014f, -0.0798172f, -0.10801f, -0.00512682f, 0.112286f, 0.0667568f, 0.0530622f, -0.0174935f, -0.296172f, -0.0229701f, -0.145664f, 0.0148432f, -0.167926f, -0.114491f, 0.050146f, 0.0738624f, 0.000883195f, 0.018622f, 0.128987f, 0.206308f, 0.219465f, 0.180042f, 0.0389317f, -0.142232f, 0.129695f, 0.131922f, -0.116924f, -0.0381372f, -0.075169f, -0.162921f, -0.295322f, 0.00272688f, -0.1241f, 0.118035f, -0.0555825f, 0.0738209f, -0.000890261f, 0.170495f, -0.0104928f, -0.118044f, 0.0952553f, 0.0152802f, 0.098469f, 0.0269081f, 0.0304095f, -0.175478f, -0.0933294f, -0.00951543f, 0.120319f, -0.0256024f, -0.0571786f, -0.0580948f, 0.0112159f, 0.00898838f, -0.0429338f, 0.00138374f, 0.141736f, 0.179593f, 0.0689599f, 0.138638f, -0.0213535f, 0.0925715f, 0.112653f, 0.0100879f, -0.135327f, -0.0761553f, -0.205939f, -0.118116f, 0.0145743f, 0.0963195f, 0.10418f, 0.192853f, -0.108119f, -0.0551882f, -0.118123f, 0.0444288f, -0.0940051f, 0.0008902f, -0.123441f, 0.131081f, -0.0841662f, -0.212635f, -0.132143f, 0.246695f, 0.14875f, -0.0621554f, 0.0644998f, -0.0812276f, -0.15437f, 0.14992f, 0.183818f, -0.21665f, 0.0243834f, -0.0436365f, 0.267649f, 0.0762967f, -0.0913864f, 0.243118f, -0.115798f, -0.161716f, 0.180914f, -0.0414196f, 0.0197701f, -0.032065f, -0.0140121f, 0.0142414f, 0.149433f, -0.0434218f, 0.162488f, 0.0388419f, -0.0829379f, -0.174202f, 0.190183f, -0.127198f, 0.176703f, -0.12439f, -0.133778f, 0.0376584f, -0.0833935f, 0.0331047f, 0.157363f, -0.0884928f, -0.331471f, -0.0103832f, 0.0185702f, 0.00180358f, -0.047143f, 0.0940995f, 0.0552036f, -0.0308903f, -0.0979566f, 0.092021f, 0.0475873f, -0.0787908f, 0.0619735f, -0.162661f, -0.0712164f, -0.0313521f, -0.0853252f, 0.1336f, 0.103107f, -0.0113819f, -0.023578f, 0.0317859f, -0.133723f, 0.00183594f, 0.011278f, -0.118521f, -0.226179f, 0.267113f, -0.106938f, 0.059034f, -0.152981f, 0.144182f, -0.0622802f, 0.0452729f, 0.0647528f, -0.0305703f, 0.18942f, 0.125856f, 0.060026f, -0.101473f, 0.22643f, -0.145714f, -0.052292f, -0.210142f, 0.0614877f, -0.0517462f, 0.0524913f, -0.0728767f, -0.190416f, -0.0966048f, -0.183528f, -0.0509043f, 0.0488684f, -0.0738124f, -0.0423975f, -0.206571f, -0.0898551f, 0.197522f, 0.0272785f, -0.00859614f, 0.304257f, -0.178542f, -0.030836f, -0.202739f, 0.25374f, 0.123483f, -0.0835555f, -0.223911f, 0.256327f, 0.0261439f, 0.0272462f, -0.079918f, 0.0463708f, -0.0382426f, 0.0250968f, 0.0750829f, 0.146631f, -0.0028671f, 0.367397f, -0.153537f, 0.0142552f, -0.130524f, -0.149762f, 0.00917445f, 0.284289f, 0.0414515f, 0.150337f, 0.0574794f, -0.174154f, -0.0651482f, 0.0157276f, 0.220227f, 0.0855927f, 0.167794f, -0.045045f, -0.0247924f, 0.140008f, 0.180162f, 0.0534937f, -0.342088f, 0.0726904f, -0.0969014f, -0.0416665f, -0.0179782f, -0.154066f, -0.0638126f, -0.0984411f, -0.169677f, 0.134382f, -0.140244f, 0.167786f, 0.119754f, -0.0478107f, -0.152725f, -0.232042f, -0.0343375f, 0.0617236f, -0.0129119f, 0.044775f, -0.0465971f, -0.136438f, -0.0199089f, 0.0796089f, -0.0132068f, -0.188589f, 0.0697174f, -0.0120818f, 0.00524542f, -0.149591f, -0.00902931f, 0.123728f, 0.0313669f, 0.276525f, -0.0269883f, -0.293889f, -0.033967f, 0.128998f, 0.0426487f, -0.072631f, 0.0420613f, -0.0228561f, -0.0616836f, -0.00963289f, -0.142734f, -0.0130697f, -0.150318f, -0.131931f, -0.0517048f, -0.0869106f, -0.115812f, 0.00647047f, 0.215707f, -0.0713472f, -0.12028f, -0.118481f, 0.0407334f, -0.0986782f, 0.0710171f, 0.161216f, -0.125361f, 0.0020411f, 0.0986792f, 0.175617f, -0.235746f, -0.0945418f, -0.0887824f, 0.0122411f, -0.0118314f, -0.175363f, 0.0535823f, 0.0292668f, -0.126305f, 0.0427503f, 0.124513f, 0.261667f, 0.0142618f, -0.114591f, 0.0539734f, -0.110589f, 0.0274366f, -0.294013f, -0.0759431f, 0.0834387f, -0.0629129f, -0.0964626f, 0.13772f, 0.0793417f, 0.207738f, -0.0148147f, 0.0945678f, 0.236599f, 0.325046f, -0.0115739f, 0.115173f, 0.293077f, 0.207232f, 0.198167f, 0.190213f, -0.012586f, -0.0843916f, 0.112677f, -0.00340349f, 0.0915956f, -0.0312061f, -0.178245f, -0.0711494f, 0.235604f, 0.0711315f, 0.0613761f, -0.0882837f, 0.0357169f, -0.121777f, 0.179189f, 0.139817f, -0.133691f, 0.036203f, 0.105639f, 0.172916f, 0.0205647f, -0.162003f, -0.0976792f, -0.0890894f, 0.0415793f, 0.122302f, -0.034495f, 0.191882f, -0.220922f, 0.0836556f, 0.0956715f, 0.0775133f, 0.0926215f, 0.192959f, 0.0640509f, 0.0759727f, -0.127438f, 0.0338757f, -0.0867821f, 0.132475f, -0.0735088f, -0.0309119f, 0.0284463f, 0.0310688f, 0.0747977f, 0.150878f, 0.0586536f, 0.0568884f, -0.000374948f, 0.158279f, 0.123853f, -0.106534f, -0.0115304f, 0.202805f, 0.198232f, 0.228068f, -0.186664f, -0.0666965f, -0.216452f, 0.0970679f, -0.0302432f, 0.00934743f, 0.130089f, 0.173028f, 0.0993083f, -0.243625f, -0.0620919f, -0.0782342f, 0.066171f, -0.101588f, -0.113473f, -0.0587797f, 0.0521048f, 0.0915347f, 0.00285832f, -0.0711215f, -0.0991172f, 0.0754687f, -0.00881336f, -0.182498f, 0.160201f, 0.10812f, -0.0958625f, -0.102869f, -0.154278f, 0.169123f, 0.280065f, 0.0778973f, -0.0259474f, -0.0306253f, -0.00458834f, -0.038694f, -0.205975f, 0.0304589f, 0.089418f, -0.00359111f, 0.0834823f, 0.0469852f, 0.211635f, 0.153898f, -0.0340516f, -0.0778895f, -0.045573f, -0.181518f, 0.141783f, -0.070765f, -0.113321f, -0.0926663f, -0.0611437f, -0.10559f, -0.06136f, 0.00576792f, 0.179099f, 0.0490123f, 0.0382916f, 0.0102474f, 0.104101f, 0.130055f, 0.0326271f, 0.00117686f, -0.127408f, 0.132335f, -0.173075f, 0.0413512f, 0.0595237f, -0.0319169f, -0.125928f, 0.0790645f, -0.190213f, 0.0786231f, -0.0254424f, 0.078559f, 0.105516f, 0.0302581f, 0.0607161f, -0.0618543f, 0.135543f, -0.154344f, 0.0282685f, -0.0556947f, 0.00219797f, -0.100956f, 0.0438901f, -0.0345228f, -0.0190139f, 0.0124859f, -0.155125f, 0.0221977f, 0.103791f, 0.119654f, -0.12209f, -0.0661289f, -0.210783f, 0.0946152f, -0.00771204f, 0.0251201f, -0.0101425f, -0.100511f, 0.00982923f, -0.172337f, 0.0187309f, -0.0121853f, -0.05736f, -0.105573f, 0.0623509f, -0.0307114f, 0.0633378f, -0.0112864f, 0.0170103f, -0.153245f, 0.0464127f, 0.0565105f, 0.0310833f, -0.0778412f, 0.0932749f, 0.0792456f, -0.177013f, 0.0190007f, 0.0785465f, 0.0265335f, 0.115821f, 0.0470261f, 0.062036f, 0.0295261f, 0.0893393f, -0.0253812f, 0.0789343f, -0.0503431f, 0.013657f, 0.181182f, -0.0854078f, 0.0949825f, 0.01508f, -0.0531158f, 0.0998334f, 0.0301811f, -0.0167208f, 0.100272f, 0.103981f, -0.154253f, -0.103543f, -0.165599f, 0.0973987f, -0.124227f, 0.027499f, 0.0251118f, 0.00518567f, -0.236505f, -0.133146f, -0.2521f, -0.113527f, 0.00596217f, -0.0276467f, -0.0991293f, 0.00624565f, 0.0108509f, 0.105118f, 0.00939116f, 0.0679117f, 0.130588f, -0.214799f, 0.0231474f, 0.144498f, 0.122746f, 0.0330317f, 0.0394939f, 0.10216f, 0.0178169f, -0.0431689f, 0.0152703f, -0.0923901f, 0.074839f, 0.0997356f, -0.177636f, -0.104968f, 0.01351f, -0.0942675f, 0.0839423f, 0.137864f, -0.0448634f, 0.0117194f, 0.0848778f, 0.197623f, 0.0696365f, 0.174923f, 0.0336992f, -0.0665797f, -0.0162588f, -0.0695512f, 0.0023802f, 0.203861f, -0.0487839f, 0.160064f, 0.141641f, -0.0806738f, -0.00651877f, -0.117639f, 0.068388f, -0.0463156f, -0.0983185f, -0.159903f, -0.184173f, -0.0439536f, 0.0937831f, -0.0243605f, -0.187385f, -0.0881159f, 0.135717f, 0.00610548f, -0.108267f, -0.0112765f, 0.011077f, 0.0281299f, 0.0258125f, 0.0702131f, 0.00995715f, 0.168076f, -0.123016f, -0.017689f, 0.214862f, -0.168199f, -0.0410651f, -0.0640263f, -0.03534f, 0.0206561f, -0.0391884f, -0.21132f, 0.136741f, -0.00866583f, 0.216935f, 0.0675429f, -0.0344618f, -0.000327164f, -0.0888234f, -0.0631006f, 0.119289f, -0.106489f, -0.0653558f, -0.0648284f, 0.0357283f, -0.156316f, 0.12275f, -0.0118378f, 0.0326235f, 0.0911354f, 0.186131f, 0.125147f, 0.136384f, -0.122628f, 0.0253395f, -0.0896912f, 0.00475646f, -0.0413952f, 0.200544f, -0.118489f, -0.115816f, -0.00088158f, 0.193806f, 0.204797f, -0.0989526f, -0.163561f, -0.0446976f, 0.0319141f, 0.309673f, -0.0433591f, -0.282107f, -0.132429f, -0.0928028f, 0.102329f, 0.114603f, -0.179977f, 0.0812027f, 0.0104497f, 0.110859f, 0.161328f, -0.0330919f, 0.237393f, 0.0374836f, -0.0709295f, 0.05637f, 0.063726f, 0.204909f, -0.124904f, -0.0678783f, 0.104272f, 0.0850258f, -0.12423f, 0.0497491f, 0.012049f, -0.0664524f, -0.0387143f, 0.17346f, 0.054451f, 0.133654f, 0.0841246f, 0.0805135f, 0.0574905f, 0.0479757f, -0.12195f, 0.06703f, 0.113929f, 0.0371968f, 0.0882491f, 0.0962221f, -0.0980939f, -0.0301576f, 0.0211478f, 0.0481364f, 0.00149206f, 0.109121f, 0.0600876f, 0.00424928f, 0.181823f, -0.0176237f, 0.159743f, 0.228803f, 0.0297563f, 0.0173895f, 0.0262509f, 0.0271609f, 0.0381225f, -0.102688f, 0.0979121f, 0.0129589f, 0.29025f, -0.0870115f, 0.122996f, -0.212877f, -0.143569f, 0.10431f, 0.0596165f, 0.00652985f, 0.163829f, -0.0315745f, -0.0507846f, -0.106299f, -0.0542598f, 0.0446323f, 0.0869534f, 0.00285702f, -0.131972f, 0.106759f, -0.00757924f, -0.0443523f, 0.151231f, 0.143231f, 0.123846f, -0.106466f, 0.0865932f, -0.0418223f, 0.0697526f, 0.236489f, 0.135609f, -0.0129149f, -0.211804f, 0.00220671f, 0.0649882f, -0.0234657f, 0.104777f, -0.194886f, 0.132696f, -0.0107263f, 0.184057f, 0.113698f, -0.203956f, 0.0239961f, -0.0426956f, -0.10859f, -0.0944976f, -0.0275666f, 0.102759f, -0.0548122f, -0.0484598f, 0.0776276f, 0.0715995f, -0.133896f, -0.115386f, -0.0112427f, 0.110959f, 0.229496f, -0.231564f, -0.0603242f, 0.0370974f, -0.119638f, -0.0502784f, -0.186808f, 0.0254269f, 0.138665f, -0.190163f, 0.158242f, 0.0408017f, 0.0681737f, 0.0340627f, -0.0165987f, -0.0471619f, 0.0176238f, -0.0167147f, -0.0720574f, -0.175855f, 0.019165f, 0.096485f, -0.0636065f, 0.0559269f, 0.105007f, 0.0460049f, 0.0327097f, -0.171095f, 0.100533f, -0.0661421f, -0.0727171f, -0.0391203f, 0.0313387f, -0.117881f, 0.107694f, 0.117669f, -0.154694f, 0.0612347f, 0.0203976f, -0.138683f, 0.0405877f, -0.115486f, 0.103155f, 0.00251827f, -0.0565817f, -0.0449883f, 0.147169f, 0.00124512f, -0.175298f, 0.0400523f, 0.0241771f, 0.183906f, 0.138561f, 0.0246843f, 0.101158f, 0.0108304f, -0.0364029f, -0.0346576f, -0.00711996f, -0.0740881f, -0.142724f, -0.0260355f, 0.117348f, -0.126261f, -0.169023f, 0.109965f, -0.0548418f, -0.0282443f, -0.0065788f, -0.168918f, 0.000494506f, 0.0406972f, 0.0979397f, -0.184287f, -0.100467f, -0.182486f, -0.122636f, 0.071415f, 0.00972081f, 0.11731f, 0.0129146f, -0.0776944f, -0.255279f, 0.0232243f, -0.163658f, -0.160424f, -0.0858704f, 0.123559f, 0.0140929f, 0.0145527f, -0.0952696f, 0.0338395f, 0.0702864f, -0.2119f, 0.0612608f, -0.0136494f, 0.0154534f, 0.0397866f, -0.19134f, -0.0378334f, -0.144064f, -0.0123331f, -0.014455f, 0.0860542f, -0.0446385f, 0.0359628f, 0.0240252f, 0.112996f, 0.094632f, -0.135482f, -0.00365424f, 0.0494169f, 0.185901f, -0.0513099f, -0.000944781f, -0.0541423f, -0.130556f, -0.233869f, -0.185643f, -0.00570781f, 0.0545927f, -0.054457f, 0.00955505f, 0.0386987f, 0.0384507f, -0.00104959f, 0.0531672f, -0.0766589f, -0.230745f, 0.14505f, 0.101353f, -0.0844657f, -0.0233638f, -0.0379312f, -0.00945792f, -0.202558f, -0.119602f, 0.0226143f, -0.0453615f, -0.071951f, 0.223703f, 0.344455f, -0.0623883f, -0.052098f, 0.0520586f, -0.140091f, -0.0596239f, -0.141676f, -0.013343f, -0.0524427f, -0.225276f, -0.112335f, -0.0850935f, -0.0892301f, 0.065496f, 0.137938f, 0.0560576f, 0.154093f, 0.173391f, 0.313445f, -0.0242388f, -0.068445f, 0.146597f, 0.0180209f, 0.178989f, -0.118049f, 0.106193f, -0.0328056f, -0.0267389f, 0.0901965f, -0.129721f, 0.0159628f, -0.0995975f, 0.0968064f, 0.0998746f, -0.0919719f, -0.053416f, -0.0821707f, -0.0483384f, 0.180465f, 0.0187676f, 0.0146237f, -0.112684f, 0.046035f, 0.153405f, -1.19614e-05f, -0.0421427f, 0.0821237f, -0.0308363f, -0.0324135f, 0.0147209f, -0.146685f, 0.121743f, -0.11718f, -0.00445091f, -0.0395488f, -0.121531f, -0.0694454f, 0.172886f, 0.0835573f, 0.265926f, 0.124949f, 0.0290115f, 0.125356f, 0.0961226f, 0.457451f, -0.0958567f, -0.00350148f, 0.147809f, -0.101534f, 0.104398f, -0.0537287f, 0.140411f, 0.0823862f, -0.0815362f, 0.0902028f, -0.174247f, -0.00646692f, 0.221576f, -0.0295718f, -0.102456f, 0.0384796f, 0.0802743f, 0.0163816f, -0.0162759f, -0.124626f, 0.0881398f, 0.0876266f, 0.22802f, 0.140473f, 0.0333231f, -0.118547f, -0.144139f, 0.0570663f, 0.0619606f, 0.0187579f, -0.0412077f, -0.0888968f, -0.0349804f, 0.318855f, -0.173824f, 0.0944477f, 0.0180668f, -0.148883f, -0.0851942f, -0.104603f, -0.0790042f, -0.0950323f, -0.0133843f, 0.0108449f, -0.351859f, -0.157695f, -0.108701f, -0.0294391f, -0.0939628f, -0.164028f, -0.0467405f, -0.0874406f, -0.094034f, 0.033249f, -0.272803f, 0.0498752f, -0.00824117f, -0.11591f, 0.0286613f, -0.197608f, 0.231257f, -0.00626354f, -0.0702874f, -0.0237348f, 0.0400383f, -0.171625f, 0.0357015f, 0.157899f, 0.165711f, -0.0219558f, 0.0856638f, -0.0723221f, 0.0535722f, 0.0578089f, 0.023314f, 0.0251418f, -0.0508246f, -0.00593728f, -0.0174724f, 0.0567787f, -0.230358f, 0.035812f, -0.185908f, 0.0863396f, -0.0601688f, -0.0980393f, 0.0140485f, -0.255149f, -0.000731179f, 0.217879f, 0.0743183f, -0.104901f, 0.216769f, -0.0482919f, -0.113859f, -0.03032f, -0.219758f, -0.0229453f, -0.133051f, 0.0627194f, -0.0223488f, -0.124755f, -0.017402f, -0.0484685f, 0.018337f, 0.0849907f, -0.0609281f, 0.0659621f, -0.0488192f, -0.139866f, -0.144223f, -0.0241202f, 0.0504802f, 0.0430913f, 0.0357202f, -0.149649f, 0.0820261f, 0.0318202f, 0.15027f, 0.0661016f, 0.0747123f, 0.00231465f, 0.201447f, -0.0660263f, -0.252116f, 0.0573818f, -0.0447926f, 0.0668174f, 0.00301092f, -0.178422f, 0.137892f, 0.0228328f, -0.0884502f, -0.114293f, 0.0213452f, 0.080643f, 0.0656067f, 0.035317f, 0.103264f, -0.00559141f, -0.160602f, -0.127731f, -0.0977164f, -0.0263403f, 0.155015f, 0.0644729f, 0.027809f, 0.13749f, 0.103534f, 0.0733221f, -0.0648505f, -0.00191882f, -0.0582054f, 0.0326567f, -0.164168f, -0.0242265f, -0.072144f, 0.0491359f, -0.0679505f, -0.195372f, 0.136091f, 0.0756408f, -0.174394f, 0.0211665f, 0.222092f, -0.0373786f, 0.0672465f, -0.00890659f, 0.0876757f, 0.197998f, -0.16732f, 0.0723107f, 0.0915797f, 0.0259003f, 0.0703658f, -0.0204355f, -0.117171f, 0.108487f, 0.00341093f, 0.0792466f, 0.128769f, -0.0751425f, 0.0470003f, -0.0449792f, -0.106271f, 0.0310195f, 0.0542083f, -0.200501f, 0.0464742f, 0.0116021f, 0.224922f, -0.028577f, -0.156118f, 0.0448646f, -0.149147f, -0.10016f, -0.0607476f, -0.144491f, 0.0459414f, -0.0582541f, -0.0265905f, -0.0502976f, 0.103042f, -0.25723f, 0.0336249f, 0.163841f, 0.130921f, 0.0749012f, -0.0680818f, -0.0507867f, -0.0100499f, -0.0568986f, 0.058327f, -0.0650027f, 0.0144343f, -0.0649182f, -0.108125f, 0.108384f, 0.127116f, 0.0579867f, -0.0479345f, -0.00511946f, 0.0384187f, 0.141223f, 0.0817245f, 0.0239134f, 0.0247064f, -0.221317f, -0.0161081f, 0.0159264f, 0.0183802f, 0.116362f, -0.0336379f, 0.0608195f, -0.0270331f, -0.0352726f, 0.148712f, -0.0709746f, 0.0291384f, -0.053869f, 0.0276907f, -0.0791907f, 0.137876f, 0.116221f, -0.103664f, 0.22063f, 0.17176f, 0.0678584f, -0.14821f, 0.0915509f, 0.0660162f, -0.074385f, -0.0151079f, -0.0220113f, 0.0820531f, 0.0523038f, 0.0281034f, -0.117479f, -0.109957f, -0.0337358f, 0.134553f, 0.079631f, -0.0421651f, 0.0662477f, -0.152794f, -0.016276f, 0.0677339f, 0.0504747f, -0.00110145f, 0.18123f, -0.101361f, 0.134697f, -0.109118f, 0.0068025f, 0.103569f, -0.0517373f, -0.164347f, 0.012871f, -0.00192389f, 0.0111564f, -0.132545f, 0.0229439f, -0.0275043f, 0.0274763f, 0.0198057f, 0.112087f, 0.0878935f, 0.0770695f, -0.171981f, -0.0492992f, 0.137301f, 0.0433335f, 0.042413f, 0.0155003f, -0.198834f, 0.0533409f, 0.0191029f, -0.0806243f, 0.0561305f, -0.0183593f, 0.0164316f, -0.00199239f, 0.169095f, -0.00859554f, 0.0397453f, 0.0419361f, 0.0285273f, -0.0120394f, 0.105144f, -0.0894821f, 0.08916f, -0.0430217f, -0.13751f, 0.0639039f, 0.0352381f, 0.0647933f, 0.194021f, 0.0896462f, -0.0358372f, 0.143915f, 0.0738918f, -0.0461328f, 0.0807701f, 0.148194f, -0.016117f, -0.0459193f, -0.0820022f, -0.00202246f, 0.191711f, 0.0661316f, -0.0855849f, 0.128798f, 0.0364059f, 0.0726977f, -0.0876825f, -0.105728f, -0.254595f, 0.168192f, 0.117645f, -0.0568892f, 0.16199f, -0.0357818f, -0.122085f, 0.124143f, 0.0774778f, -0.0390939f, -0.031585f, 0.112117f, 0.0120238f, -0.0610142f, 0.0313709f, 0.042984f, -0.138822f, 0.0607247f, 0.0229658f, 0.0641858f, 0.0151037f, 0.00767282f, 0.060004f, 0.144489f, -0.0374878f, 0.0827156f, -0.0932814f, 0.0875921f, -0.0531331f, 0.0803721f, -0.0132492f, -0.0938988f, -0.103993f, -0.0493939f, -0.0377761f, 0.251373f, 0.142677f, -0.032715f, 0.152048f, -0.00124129f, 0.0716068f, 0.00956766f, -0.0369916f, 0.00519432f, -0.126172f, 0.00172916f, -0.176537f, 0.0774523f, -0.170386f, -0.154203f, 0.190352f, 0.0255686f, -0.145291f, 0.108137f, -0.189781f, 0.0629136f, -0.0926047f, 0.0312405f, -0.255381f, -0.0679597f, 0.00922947f, -0.168558f, 0.187777f, 0.0255726f, 0.20613f, -0.136775f, -0.177f, 0.0244819f, 0.0781556f, 0.0197977f, -0.0290061f, -0.103558f, 0.0399512f, -0.0236349f, -0.0131369f, -0.0336583f, -0.0577976f, -0.130875f, 0.0702828f, 0.058145f, 0.0671021f, -0.0577003f, -0.0503693f, 0.0168152f, -0.282809f, 0.0912611f, 0.0531633f, -0.131444f, -0.0662757f, 0.133138f, 0.0223595f, -0.0327804f, 0.0268208f, 0.0587338f, 0.0174441f, -0.0180882f, -0.0163224f, 0.0599692f, -0.114655f, 0.361815f, 0.00322661f, 0.111076f, 0.101775f, -0.13068f, 0.302714f, 0.00500131f, -0.086191f, -0.0396698f, 0.0817408f, -0.0436462f, 0.0970575f, 0.20586f, 0.167716f, 0.0681541f, -0.103938f, -0.0637077f, -0.142524f, 0.0611986f, 0.0635891f, 0.0273219f, -0.179359f, -0.101431f, -0.0933721f, 0.159005f, -0.0459315f, -0.0390213f, -0.0233101f, -0.0870889f, 0.00149782f, -0.201415f, 0.00712625f, 0.231972f, -0.0350238f, 0.0293994f, 0.0412555f, -0.198868f, 0.0278495f, -0.0182273f, 0.107299f, -0.0131631f, -0.106871f, -0.159949f, -0.0861416f, 0.0412769f, 0.0853726f, 0.015589f, 0.0418062f, -0.188743f, -0.277988f, 0.0897232f, -0.0318778f, -0.142695f, 0.0586345f, 0.0323883f, 0.158931f, -0.109818f, 0.0508577f, -0.0842704f, -0.0225752f, 0.0602861f, 0.0987234f, -0.1846f, 0.12959f, -0.0365815f, 0.0901566f, 0.0870746f, 0.0853966f, -0.00431902f, 0.114822f, 0.0954549f, -0.0545084f, -0.104401f, -0.120637f, 0.090998f, -0.130909f, -0.0126249f, -0.148913f, 0.163382f, -0.0123444f, -0.129673f, 0.0515782f, 0.130497f, 0.180933f, -0.0632129f, -0.0403979f, -0.063006f, -0.0681135f, -0.20217f, 0.128892f, 0.0408059f, -0.0721418f, 0.152005f, -0.118831f, -0.172918f, -0.131598f, 0.232324f, 0.060085f, 0.0141131f, 0.0219422f, 0.107767f, 0.0640985f, -0.0623485f, -0.0412897f, -0.133879f, 0.104109f, -0.100383f, -0.117235f, -0.137473f, 0.1149f, -0.140438f, -0.0515366f, 0.0124563f, -0.133195f, 0.0898727f, 0.130228f, 0.0727901f, 0.0701116f, 0.236203f, 0.0227065f, -0.137993f, -0.0494905f, 0.0439939f, 0.142278f, -0.113859f, -0.160368f, -0.143282f, 0.123583f, -0.0535099f, -0.111852f, 0.0730124f, -0.23005f, 0.13827f, -0.0226136f, 0.084057f, 0.180386f, 0.00839323f, 0.234718f, 0.11713f, -0.147188f, -0.158055f, -0.0200178f, -0.123074f, 0.0683321f, 0.0449613f, 0.117177f, 0.170573f, 0.0446663f, -0.108605f, 0.0840917f, 0.0497646f, 0.0336182f, 0.139355f, 0.0360185f, 0.138814f, -0.0231408f, -0.0278952f, -0.0270706f, -0.0168267f, -0.145094f, -0.124716f, 0.0586625f, -0.0251274f, 0.0606853f, -0.147423f, 0.0854995f, 0.210241f, 0.0497896f, 0.0537564f, 0.00912126f, 0.0882285f, -0.017194f, -0.0138386f, 0.0700378f, 0.0319312f, 0.0221053f, -0.0144568f, -0.0852547f, -0.0283141f, -0.0256961f, 0.176971f, 0.0986009f, -0.0707535f, -0.127756f, 0.116596f, -0.124882f, -0.0255554f, 0.028969f, 0.137651f, 0.0728256f, -0.0796759f, 0.19251f, -0.0862567f, 0.018589f, 0.0863452f, -0.0692152f, 0.0392511f, 0.0446263f, -0.279956f, -0.0665377f, -0.06419f, -0.0676936f, 0.242758f, -0.0693788f, 0.047965f, -0.0116581f, -0.0110953f, -0.0835732f, 0.056325f, -0.089675f, -0.0040357f, -0.157509f, -0.140831f, -0.0331557f, 0.186644f, -0.0909078f, 0.0842588f, -0.163509f, 0.0398502f, -0.0188574f, 0.0889098f, 0.0138491f, 0.144131f, -0.162036f, 0.0445894f, 0.100251f, 0.0916798f, 0.166395f, -0.137134f, 0.214517f, -0.109735f, -0.111622f, 0.163103f, -0.0927315f, 0.0967638f, -0.115608f, -0.108905f, -0.222569f, -0.0768542f, 0.0249024f, 0.0330236f, -0.0829412f, 0.00766906f, 0.143308f, 0.0712682f, 0.0154826f, -0.136792f, -0.0169766f, 0.121836f, -0.0416192f, 0.0099032f, -0.128129f, -0.100827f, -0.0634154f, -0.0228757f, -0.160834f, -0.0820097f, -0.178114f, 0.0662788f, -0.000941255f, 0.0309269f, 0.0509444f, 0.13034f, 0.0258725f, -0.131666f, 0.108277f, 0.0395937f, -0.00811404f, 0.0786393f, -0.135662f, 0.0133231f, 0.173499f, -0.163284f, -0.0224906f, -0.00665345f, -0.0533379f, -0.131522f, -0.103984f, -0.0206072f, 0.00912571f, -0.0724774f, -0.0291832f, 0.0557172f, 0.149422f, -0.0457896f, -0.144702f, -0.0773116f, -0.0765428f, 0.0896067f, 0.0358179f, -0.0897252f, 0.117653f, -0.0364655f, 0.166535f, 0.01834f, 0.105553f, 0.057172f, 0.0401444f, -0.0837494f, 0.219608f, -0.174112f, 0.231012f, -0.148596f, -0.0183971f, 0.0213983f, -0.0622388f, 0.0100916f, 0.12334f, 0.234837f, 0.0664872f, 0.137154f, 0.00734591f, -0.062415f, 0.205686f, 0.113047f, 0.000575385f, -0.116718f, -0.0165835f, -0.081594f, -0.095452f, -0.0749323f, -0.122417f, 0.0677335f, 0.105289f, -0.022653f, -0.103429f, -0.0606251f, 0.00102075f, -0.126195f, 0.0608821f, 0.195855f, 0.0921915f, -0.159083f, -0.113269f, 0.10901f, 0.219588f, -0.0220762f, 0.0551116f, 0.18059f, -0.199499f, -0.0130613f, -0.00138426f, -0.074641f, 0.0814856f, 0.150209f, -0.190257f, -0.0152563f, -0.0511047f, -0.158146f, 0.189442f, 0.0833627f, -0.0404029f, -0.117733f, -0.26819f, 0.061939f, 0.109989f, -0.0540537f, -0.0652968f, -0.198018f, -0.0550514f, -0.26938f, 0.0748025f, 0.0871921f, -0.0992483f, -0.1471f, 0.0151256f, 0.131382f, -0.124709f, 0.0790433f, 0.0336372f, 0.0016725f, -0.124021f, 0.14385f, -0.177045f, -0.128637f, -0.016355f, 0.059851f, -0.00881128f, 0.158796f, 0.0328201f, 0.11785f, 0.082339f, -0.154766f, -0.0932948f, 0.0213303f, 0.0908482f, -0.103333f, -0.235841f, -0.0418065f, 0.0522141f, -0.00671328f, 0.0405856f, -0.118595f, 0.24031f, 0.0636851f, -0.119322f, -0.0349749f, 0.0146042f, -0.0756338f, -0.0797207f, -0.114637f, -0.192398f, -0.0449169f, 0.0144687f, 0.103353f, -0.198404f, -0.165665f, 0.305795f, 0.182551f, -9.44947e-05f, -0.188019f, 0.145859f, -0.0540762f, -0.0422273f, 0.079418f, -0.113134f, -0.0331273f, 0.0413852f, 0.0186806f, -0.134649f, -0.156647f, 0.0379808f, -0.0336731f, 0.123864f, 0.0149338f, 0.00657353f, -0.0419852f, -0.0957983f, 0.113604f, -0.00177105f, -0.0377948f, -0.0729322f, -0.0795412f, 0.018301f, 0.0501318f, -0.150514f, 0.0114589f, 0.194727f, -0.067147f, -0.114292f, 0.0578186f, 0.0348688f, -0.120958f, 0.0488574f, 0.0615167f, 0.0919836f, -0.0458583f, -0.0620742f, -0.235883f, 0.0716301f, -0.0573557f, -0.0335477f, 0.0332895f, 0.225656f, 0.111733f, -0.183892f, 0.096668f, -0.0172189f, 0.00316638f, -0.0248811f, 0.0408698f, 0.106239f, 0.120735f, -0.198324f, 0.179693f, -0.0869977f, 0.0919217f, 0.0513973f, 0.0840604f, 0.0290311f, -0.0281886f, 0.134455f, 0.117689f, -0.00212076f, 0.0472969f, -0.186076f, -0.203949f, 0.117962f, -0.00672446f, 0.0338923f, -0.19415f, -0.0798959f, 0.000549323f, -0.0499712f, 0.0791756f, -0.1247f, -0.203568f, -0.112774f, 0.105253f, -0.175439f, 0.0782389f, -0.0801494f, -0.0391737f, -0.0959358f, 0.0278142f, 0.081632f, -0.0858438f, 0.0603921f, -0.0914197f, -0.0116903f, -0.0168063f, -0.0998898f, -0.242943f, 0.000282315f, -0.0978673f, -0.181201f, -0.0418647f, -0.09246f, 0.130123f, -0.123f, 0.0854438f, 0.0409114f, -0.143904f, -0.0636778f, -0.105364f, 0.0406558f, 0.0023983f, -0.0976656f, 0.297788f, -0.200958f, -0.146904f, -0.227999f, 0.105231f, -0.0863152f, 0.186681f, 0.108009f, -0.0941487f, 0.0270565f, -0.0587463f, -0.0234597f, 0.0341337f, 0.0129784f, -0.0342323f, -0.0341861f, -0.164396f, 0.0601617f, 0.0199468f, -0.133455f, -0.109145f, -0.0117225f, 0.0220773f, -0.197391f, 0.139427f, -0.0728889f, 0.214279f, -0.164944f, 0.0369613f, -0.102114f, -0.185125f, -0.151873f, -0.00815908f, -0.0264697f, 0.00552361f, -0.156568f, 0.0592205f, 0.0311511f, 0.156493f, -0.00147048f, -0.171883f, -0.0962116f, 0.0902965f, 0.0563549f, 0.151594f, -0.0710129f, -0.0608283f, -0.152365f, 0.0426497f, 0.030058f, -0.115398f, 0.0787851f, -0.0380599f, -0.0300186f, -0.0918778f, 0.0722943f, 0.120473f, -0.0820042f, 0.169956f, 0.210586f, -0.0996093f, -0.0907196f, 0.000182023f, 0.0958698f, -0.162933f, 0.261805f, 0.0974647f, -0.136107f, 0.18988f, 0.125426f, -0.0366771f, -0.0348714f, -0.207521f, 0.00821073f, -0.0364474f, -0.0236695f, 0.151169f, 0.109363f, -0.117262f, 0.152242f, -0.0532562f, -0.00794913f, -0.0394138f, -0.0833678f, -0.0973465f, -0.00489541f, -0.0657901f, 0.201121f, 0.0696424f, -0.158346f, 0.215502f, 0.0627025f, 0.100304f, -0.00965824f, -0.0108773f, -0.0634982f, 0.162704f, -0.00708153f, 0.00731834f, -0.205403f, 0.0358317f, -0.129931f, 0.0845198f, 0.0927553f, -0.109328f, 0.0820288f, 0.0942257f, -0.0505503f, 0.0501674f, -0.00154132f, -0.0752623f, -0.0683064f, 0.0471702f, -0.0292958f, 0.0902095f, -0.138911f, 0.00477327f, -0.0754712f, 0.0463532f, 0.0414021f, -0.0300801f, 0.0141348f, 0.116683f, 0.124225f, 0.156021f, 0.155924f, 0.0038362f, -0.0565635f, 0.0605547f, 0.157843f, -7.7438e-05f, -4.01037e-05f, 0.105596f, 0.066878f, -0.104036f, 0.0175286f, -0.0669236f, 0.00825679f, -0.00457559f, 0.000918178f, -0.0109067f, 0.22797f, 0.0139599f, -0.092134f, -0.0777743f, -0.0937891f, -0.149157f, 0.0560046f, -0.0824797f, 0.0152864f, 0.181075f, 0.235977f, 0.187241f, 0.0522941f, 0.28482f, 0.169329f, -0.153408f, -0.142364f, 0.0739156f, -0.155945f, -0.029791f, -0.0390462f, -0.0330425f, 0.112735f, -0.0281493f, 0.0438765f, 0.145099f, 0.0904452f, -0.00968479f, -0.242941f, 0.17713f, 0.0550459f, 0.0826542f, 0.0873909f, -0.112603f, 0.0155304f, 0.0478797f, -0.0978957f, -0.236865f, -0.0587736f, -0.176084f, 0.118368f, -0.18309f, -0.0888975f, -0.0828919f, 0.278778f, -0.133874f, -0.0447204f, -0.0540337f, -0.067233f, -0.0708834f, 0.13262f, -0.0391171f, 0.0531088f, 0.148939f, -0.114385f, 0.181326f, -0.0141271f, -0.220534f, -0.0709256f, -0.242878f, 0.1084f, 0.246424f, -0.0597596f, -0.0450697f, -0.0967601f, -0.0582045f, -0.00437411f, -0.00567494f, 0.0800313f, -0.0221475f, 0.0221533f, 0.0923932f, -0.168607f, 0.0729527f, -0.110152f, -0.0455547f, -0.0380862f, -0.184675f, 0.146205f, 0.0347786f, 0.204044f, 0.0228161f, 0.0861639f, -0.294512f, -0.0446524f, 0.0105801f, 0.123291f, 0.026764f, 0.13687f, 0.110976f, 0.0115626f, -0.0192648f, 0.0325269f, -0.0424162f, -0.069614f, 0.0262381f, 0.0309285f, -0.0829241f, -0.0567973f, 0.0532956f, -0.170089f, 0.00834287f, 0.0721328f, -0.154345f, -0.13655f, 0.175838f, -0.033523f, 0.0249502f, 0.104262f, -0.123745f, 0.00598759f, -0.0874215f, -0.0350418f, -0.0135892f, 0.0332784f, -0.0792378f, -0.129224f, 0.0941027f, 0.0856813f, -0.154563f, 0.0701456f, -0.0798687f, 0.0172937f, 0.159772f, 0.0225921f, -0.0950126f, -0.059751f, -0.0427217f, 0.08318f, -0.0924692f, -0.114117f, -0.162264f, 0.0396529f, -0.133909f, -0.0371591f, -0.0465814f, 0.0630274f, 0.0513138f, 0.00463356f, -0.128431f, -0.0327311f, 0.0126202f, 0.217387f, -0.0492987f, 0.115991f, 0.0920301f, 0.308363f, -0.0760752f, 0.0959534f, 0.100822f, 0.117107f, -0.0781828f, 0.0521731f, -0.0421392f, 0.0978752f, 0.141379f, 0.109865f, 0.085368f, 0.115113f, 0.0261236f, -0.0683196f, 0.148308f, -0.0708932f, 0.0368186f, 0.152533f, 0.158547f, 0.0459096f, 0.0306562f, -0.0423953f, -0.072179f, -0.0729912f, -0.00781077f, 0.0063416f, -0.0051019f, -0.0715874f, 0.25341f, -0.0529974f, -0.0128047f, -0.0833249f, 0.0805988f, -0.129613f, -0.226091f, 0.133378f, 0.00953771f, -0.114086f, 0.0497221f, 0.0144519f, -0.173494f, 0.0521217f, -0.0482086f, -0.0422902f, -0.0557038f, -0.0682033f, 0.0102125f, -0.14366f, -0.0697444f, 0.154547f, -0.0110372f, -0.0211736f, -0.150309f, -0.123191f, -0.0425382f, -0.171605f, 0.155415f, -0.166307f, 0.122377f, 0.0116144f, -0.0539998f, -0.0222417f, 0.115696f, -0.049952f, -0.098371f, -0.0495835f, -0.0182399f, -0.0209928f, -0.0737246f, -0.0128612f, -0.0902179f, 0.0468175f, -0.065977f, -0.0934368f, 0.132834f, 0.0453857f, -0.0353219f, -0.226671f, 0.0750195f, 0.114393f, 0.139013f, -0.160871f, 0.108138f, 0.0270014f, 0.0463732f, -0.0537463f, -0.049449f, 0.128639f, -0.0350334f, 0.00048251f, -0.0125652f, 0.0523853f, -0.016491f, 0.0324093f, 0.0703661f, -0.199708f, 0.147244f, -0.265639f, -0.15994f, -0.0965098f, -0.161525f, 0.105471f, 0.334023f, 0.0532776f, -0.0912264f, -0.0993632f, -0.0280201f, -0.0997241f, 0.0207262f, -0.279589f, 0.0620953f, -0.139224f, 0.201923f, 0.223502f, 0.0117948f, 0.0800099f, -0.0281361f, 0.119896f, -0.154101f, 0.0686489f, 0.23895f, 0.0565735f, -0.00390363f, -0.108806f, -0.0184156f, -0.0952719f, 0.0555698f, -0.0834902f, -0.0271915f, 0.134121f, -0.0685145f, -0.088725f, -0.0443093f, -0.0480688f, 0.0027292f, -0.0516291f, 0.0195303f, -0.0489191f, -0.107815f, -0.176361f, -0.00391101f, -0.147003f, 0.060434f, 0.170413f, 0.0561194f, -0.131237f, 0.0726091f, -0.0843326f, 0.117474f, -0.0263671f, -0.252128f, 0.134363f, 0.156991f, 0.194593f, 0.0275572f, 0.0985565f, -0.0493994f, -0.0366721f, -0.0850576f, 0.209169f, -0.212784f, -0.228355f, 0.232156f, -0.013431f, -0.0345989f, 0.0129247f, -0.132096f, 0.150248f, -0.0600087f, -0.0593894f, 0.0500004f, -0.0771591f, -0.101367f, -0.0637289f, -0.00658742f, 0.0595553f, -0.024883f, 0.14593f, 0.0796428f, -0.140004f, 0.0487683f, -0.0853453f, -0.00578926f, -0.152167f, -0.0790761f, -0.0115236f, 0.101415f, 0.0400251f, 0.0865559f, 0.041953f, 0.0578223f, -0.0704437f, 0.0992961f, -0.0750895f, 0.0499278f, -0.0472411f, 0.0641343f, 0.0212827f, -0.147518f, 0.179523f, -0.0217679f, -0.0477648f, 0.0591903f, 0.0359961f, 0.088601f, 0.00351872f, 0.0138916f, 0.0402664f, 0.177149f, 0.00824283f, -0.0556286f, 0.0552217f, 0.0923312f, 0.0869264f, 0.0234759f, 0.032284f, -0.121977f, 0.125437f, 0.0256046f, 0.0472181f, 0.137565f, -0.0639655f, 0.0270246f, 0.067476f, -0.0202386f, 0.104383f, -0.0717281f, 0.0806002f, -0.166602f, 0.0998034f, 0.000647092f, -0.160719f, 0.0497379f, 0.0384154f, -0.0633026f, -0.0520781f, 0.139229f, -0.00294187f, -0.0901295f, -0.0135821f, -0.0053321f, 0.0298723f, -0.126232f, 0.0875468f, -0.0429418f, -0.105753f, -0.0178799f, 0.0229084f, 0.0993183f, 0.0577022f, 0.122253f, 0.04647f, -0.0176805f, -0.146407f, -0.0709359f, 0.00450018f, 0.0375465f, -0.00241717f, 0.0293403f, -0.068674f, -0.049723f, 0.0559693f, 0.057845f, 0.063096f, 0.00327565f, -0.00592193f, -0.0914547f, -0.052915f, 0.011102f, -0.00567772f, 0.133686f, 0.0674825f, -0.00363402f, -0.0414556f, 0.0609897f, -0.149365f, 0.0478243f, -0.177468f, 0.118778f, -0.014799f, -0.0871947f, 0.0689947f, 0.155482f, -0.0369854f, 0.0987065f, -0.071845f, -0.116411f, 0.0738949f, 0.141181f, -0.0790999f, -0.0754749f, 0.02829f, -0.0185175f, 0.00333218f, -0.0469422f, 0.109825f, -0.0707927f, -0.0336781f, 0.143263f, -0.0310005f, 0.0320288f, 0.0763625f, 0.0599478f, 0.157965f, 0.041396f, -0.14055f, 0.0972761f, -0.044779f, -0.0373882f, -0.0289342f, 0.0622346f, -0.0699207f, 0.00331574f, -0.0269189f, 0.0158214f, -0.0408447f, -0.093728f, 0.0917196f, -0.029065f, -0.149718f, 0.190454f, -0.064957f, -0.0974734f, -0.0702975f, -0.220812f, -0.0354488f, -0.146935f, -0.0893557f, -0.0410884f, -0.00240213f, 0.0855496f, -0.0700753f, 0.0310124f, -0.0899561f, -0.00018987f, 0.0193527f, 0.128614f, -0.0112893f, -0.0371573f, -0.0869235f, 0.102819f, -0.0986784f, 0.0763631f, -0.149149f, 0.0356725f, -0.0216257f, -0.0770793f, -0.0353079f, -0.287739f, 0.00743026f, -0.0143154f, -0.0153983f, 0.00505462f, -0.0240134f, 0.143812f, 0.0749231f, -0.0155015f, -0.0709973f, 0.017508f, -0.0312257f, 0.00915957f, 0.0896561f, 0.0267885f, -0.0266156f, -0.121392f, 0.0479986f, 0.0118704f, -0.0859582f, -0.057174f, 0.0377036f, 0.0228706f, 0.0202221f, -0.0391891f, 0.0629417f, 0.0304549f, -0.0941607f, 0.0373528f, -0.0860005f, -0.0236795f, -0.0897805f, 0.057088f, -0.127161f, -0.0595527f, 0.0423498f, 0.0212371f, 0.121061f, -0.105472f, 0.0604746f, 0.0791208f, 0.0138513f, 0.0690477f, 0.0775052f, 0.176592f, 0.00122752f, 0.0764635f, -0.0231328f, 0.115145f, 0.0496446f, 0.119988f, -0.00777896f, 0.115816f, -0.0169815f, -0.00778283f, -0.0195645f, 0.00298207f, -0.0127201f, -0.0872951f, -0.0373492f, -0.0138868f, 0.0418982f, -0.0148116f, -0.0763153f, -0.175304f, 0.0548373f, -0.0797324f, -0.079444f, 0.0145185f, -0.0092995f, 0.055826f, 0.00844336f, 0.178536f, -0.107245f, -0.0581695f, -0.0678855f, 0.0633352f, -0.262325f, 0.085923f, -0.153607f, -0.00526622f, 0.00714791f, 0.0085191f, -0.248135f, 0.14321f, 0.167815f, 0.0552139f, -0.155006f, 0.129658f, -0.10089f, -0.0653027f, -0.086797f, -0.0440034f, 0.155333f, -0.11702f, -0.075842f, 0.129593f, 0.0716502f, 0.0162046f, 0.102726f, 0.0563099f, 0.149793f, 0.0607657f, -0.039657f, 0.106518f, -0.00802f, 0.101859f, 0.0467591f, -0.188312f, -0.101944f, 0.249702f, -0.138609f, -0.0485763f, -0.101048f, 0.170413f, -0.10571f, 0.102673f, -0.0252557f, -0.146038f, -0.0110023f, -0.00639719f, -0.196252f, -0.0473422f, 0.222497f, 0.208774f, -0.122519f, -0.0492664f, 0.138949f, -0.00175908f, -0.0346246f, -0.278625f, 0.0744329f, 0.119306f, 0.1148f, 0.125998f, -0.0779714f, -0.0531994f, 0.102464f, 0.131047f, 0.235741f, 0.0160704f, -0.253698f, -0.117303f, 0.104103f, 0.173462f, 0.0788535f, -0.126948f, 0.226542f, 0.00785182f, -0.138863f, -0.204345f, -0.148693f, 0.0393945f, -0.0589496f, 0.0476139f, -0.00891774f, 0.054528f, -0.0274388f, 0.259764f, -0.0184982f, 0.0464081f, -0.0727399f, 0.0228946f, -0.140925f, -0.250482f, -0.117357f, 0.00328573f, -0.067149f, -0.19396f, -0.271407f, 0.082063f, 0.289259f, -0.203952f, -0.0917052f, -0.154962f, -0.0851835f, 0.0841598f, 0.106935f, -0.0570404f, 0.0096849f, -0.072624f, 0.170382f, 0.0172678f, 0.08511f, -0.0488175f, 0.0709689f, 0.00488072f, 0.186835f, -0.200469f, -0.0672107f, -0.211064f, 0.0241919f, -0.140238f, -0.124912f, 0.0127984f, 0.00100562f, 0.220982f, 0.0204989f, -0.0408498f, -0.0283247f, 0.0060206f, 0.134312f, -0.105003f, 0.0845336f, 0.0525455f, -0.130418f, -0.0201187f, -0.0716866f, -0.0582721f, 0.132725f, 0.0722155f, 0.141747f, 0.0205966f, 0.0967698f, -0.0254348f, -0.0275047f, -0.0538092f, -0.145773f, -0.112313f, -0.0790292f, 0.164409f, -0.171226f, -0.0330763f, -0.0433401f, 0.0137043f, -0.0226061f, -0.0752884f, -0.0118946f, -0.0606388f, 7.34772e-05f, 0.119924f, 0.13994f, 0.294623f, 0.0614132f, 0.267669f, 0.144075f, -0.026085f, -0.0386709f, -0.032511f, -0.0330909f, -0.110424f, -0.0559874f, -0.196786f, -0.0731073f, 0.103483f, 0.115845f, 0.20273f, -0.0435478f, 0.137333f, 0.0125484f, -0.035009f, -0.131347f, 0.185652f, 0.0915615f, 0.00988606f, -0.0423943f, -0.401112f, -0.168895f, 0.00194771f, -0.0320317f, 0.138003f, -0.00130969f, -0.0100481f, -0.0807856f, 0.0185314f, 0.0741704f, -0.0306238f, -0.0679718f, 0.0228838f, 0.229097f, 0.0531397f, -0.00957188f, -0.00225994f, 0.00525389f, 0.0218199f, 0.00731805f, -0.032041f, 0.121642f, 0.110984f, 0.057602f, 0.0138104f, -0.00488061f, -0.0492192f, 0.33436f, -0.0717361f, 0.0863138f, -0.0299386f, 0.000459265f, 0.0720175f, 0.0525023f, -0.142907f, -0.138931f, -0.128703f, 0.0366998f, 0.0837451f, -0.109776f, -0.0232616f, 0.170063f, 0.106598f, -0.126342f, -0.043239f, -0.0804324f, -0.110025f, -0.0771995f, 0.0981935f, 0.047013f, -0.0553584f, 0.0606691f, -0.074927f, -0.103423f, 0.028745f, -0.00984605f, -0.00385532f, 0.130327f, -0.0510355f, -0.0222256f, 0.122566f, 0.148499f, 0.100782f, 0.0574509f, -0.0515715f, 0.0438364f, -0.0380833f, -0.084709f, -0.131321f, -0.149418f, -0.0797491f, 0.316875f, -0.0321077f, 0.0150161f, 0.0376917f, 0.00989962f, -0.00131329f, 0.0673171f, 0.131532f, -0.045139f, 0.0319606f, 0.186066f, 0.136718f, 0.0906833f, 0.117223f, -0.06861f, -0.0319113f, 0.0400192f, 0.0378854f, 0.137974f, -0.0287174f, -0.009404f, -0.12745f, -0.0869295f, 0.114729f, -0.092402f, 0.00709146f, -0.0187893f, 0.0200674f, 0.0234794f, -0.0151676f, -0.184399f, 0.00469702f, -0.119847f, -0.0205459f, 0.0516747f, -0.0641841f, 0.118213f, -0.0523815f, 0.0979883f, 0.0207389f, -0.115183f, -0.228034f, -0.0137611f, 0.0681063f, 0.0702805f, 0.0274666f, 0.0534819f, -0.0292959f, -0.0329717f, -0.150681f, 0.205796f, -0.0144994f, 0.0324701f, 0.0102282f, -0.0277505f, -0.0934108f, -0.0984583f, 0.128595f, -0.0321262f, -0.0255906f, 0.0659542f, 0.0817577f, 0.117923f, 0.14978f, 0.12422f, -0.00923952f, -0.0540291f, -0.0321929f, 0.12542f, -0.195662f, 0.172576f, -0.00639092f, -0.136681f, -0.0330373f, -0.0103617f, -0.0148055f, 0.111327f, 0.096027f, -0.125357f, -0.118886f, -0.0144077f, -0.0523968f, 0.0992575f, 0.0141645f, 0.0687468f, -0.11347f, -0.0388204f, 0.0601631f, -0.0303265f, -0.012095f, 0.0319426f, -0.0165613f, 0.0750046f, 0.0288958f, 0.035477f, 0.00832511f, -0.118146f, -0.0589281f, -0.0528171f, 0.104375f, -0.0268535f, -0.0506696f, -0.134348f, 0.0186287f, -0.00206817f, -0.0630259f, 0.125283f, 0.203537f, -0.0299646f, -0.131177f, -0.0329357f, -0.0578531f, 0.131692f, -0.0460174f, -0.016195f, 0.122469f, -0.0405868f, 0.105545f, 0.0852513f, 0.0189091f, 0.175174f, -0.116372f, -0.0693871f, 0.125618f, 0.246107f, 0.0375574f, -0.0965322f, 0.0790914f, -0.162107f, 0.0220359f, -0.0780321f, -0.076183f, -0.120754f, 0.237783f, -0.170032f, 0.0326567f, 0.103191f, -0.0519771f, -0.0265962f, 0.011515f, -0.00909036f, -0.0143241f, -0.0307952f, 0.0112673f, -0.0250672f, -0.288445f, -0.0113077f, -0.166532f, 0.0247074f, 0.119729f, -0.245325f, 0.231557f, -0.274329f, 0.118456f, 0.0677861f, 0.135092f, 0.139018f, -0.0750762f, -0.00201163f, 0.0895766f, -0.00837478f, 0.0604441f, 0.113694f, -0.118207f, 0.313374f, 0.0333207f, -0.126162f, -0.100909f, -0.0388675f, -0.123029f, -0.0443524f, -0.223742f, -0.00604542f, 0.205039f, -0.144927f, -0.110742f, 0.0335538f, 0.0948325f, -0.212891f, -0.187954f, -0.100213f, 0.0272423f, -0.0710597f, 0.0732789f, 0.0610045f, 0.108682f, 0.122772f, 0.00643831f, 0.247717f, -0.0546628f, 0.0696219f, -0.023871f, 0.0836353f, 0.208345f, 0.0168878f, 0.18471f, 0.175703f, -0.0418388f, 0.0904419f, 0.0375463f, -0.00183775f, 0.0188257f, 0.0381886f, 0.00642325f, 0.0504449f, -0.0873899f, 0.0108448f, -0.112058f, -0.09519f, -0.0175302f, -0.221398f, -0.101487f, 0.100871f, 0.0957263f, -0.321578f, -0.119312f, -0.0510102f, -0.142558f, 0.110062f, -0.151288f, 0.0119669f, 0.166802f, 0.0767755f, 0.0762053f, 0.0301646f, -0.18271f, -0.100106f, -0.255979f, 0.135908f, -0.0653769f, -0.0125916f, 0.0761682f, 0.0373979f, 0.0284757f, 0.0401612f, -0.0855745f, -0.101468f, 0.0163791f, -0.043152f, -0.0121247f, 0.0513979f, -0.0187096f, 0.0229504f, -0.0662335f, 0.147263f, 0.0651022f, -0.0916602f, 0.112749f, -0.0772877f, -0.0888211f, -0.00696278f, -0.189441f, 0.00206075f, -0.114579f, -0.0472339f, -0.178951f, 0.235627f, 0.10784f, 0.0884853f, -0.0329543f, -0.0216831f, 0.0170108f, -0.0582196f, -0.0871027f, 0.0534678f, 0.0201976f, -0.0487449f, 0.105007f, 0.121275f, 0.0922554f, -0.154662f, -0.0702815f, -0.0623452f, -0.147625f, 0.144134f, -0.0461159f, 0.0983194f, 0.0545413f, -0.10015f, 0.175962f, 0.111006f, -0.109084f, 0.10717f, 0.0350171f, 0.0058561f, 0.086362f, 0.0294488f, -0.0417202f, -0.100819f, 0.0810403f, 0.0223905f, -0.0956501f, -0.018441f, -0.0939113f, 0.00128937f, 0.00569654f, 0.0883394f, 0.0149627f, 0.102346f, -0.0852892f, -0.0482466f, -0.00277497f, -0.0492442f, -0.109828f, -0.0437587f, -0.0260116f, 0.0801255f, -0.111308f, -0.0749189f, -0.0947581f, -0.0735604f, -0.191144f, 0.290969f, 0.0845039f, 0.0529046f, 0.0430621f, -0.054001f, 0.118409f, 0.056695f, 0.0548862f, -0.0524673f, 0.0912314f, 0.347554f, 0.132448f, -0.134279f, 0.00853797f, -0.128478f, -0.0180606f, -0.0967837f, -0.0394576f, 0.157508f, 0.0478013f, -0.0828822f, 0.0803439f, 0.0835446f, -0.00532606f, -0.0175792f, 0.0103274f, -0.123493f, 0.0581489f, -0.12862f, -0.207775f, 0.062414f, 0.0818249f, 0.0959275f, -0.0316041f, 0.0858107f, -0.0551252f, -0.0490641f, 0.139381f, 0.0146474f, 0.1039f, -0.218854f, 0.0272468f, 0.0506245f, 0.00464062f, -0.0846287f, 0.0728544f, 0.318067f, -0.311513f, -0.204957f, -0.0389929f, 0.0102801f, -0.219184f, -0.111264f, 0.154059f, -0.0476869f, -0.0750924f, 0.071651f, -0.130862f, 0.144135f, 0.019162f, 0.00512851f, -0.00827058f, 0.126799f, -0.0106238f, 0.0203421f, 0.267873f, 0.0374636f, -0.103828f, 0.00471261f, -0.0285048f, 0.0355229f, -0.0706798f, -0.0831381f, 0.150404f, -0.0214477f, -0.170757f, -0.224895f, -0.182033f, -0.112039f, 0.0450631f, -0.182452f, 0.152831f, 0.199954f, 0.00159238f, 0.0302488f, 0.10697f, 0.0774123f, -0.17725f, 0.0647174f, 0.134133f, 0.102763f, 0.0891834f, -0.121965f, 0.00378413f, 0.0208035f, -0.183268f, -0.0820034f, -0.00936298f, 0.621632f, -0.0832426f, 0.184116f, -0.250643f, 0.159862f, -0.0418621f, 0.0409018f, -0.0271931f, 0.162438f, 0.0627052f, -0.0314378f, 0.0184759f, -0.147638f, 0.159765f, 0.0493645f, 0.0385918f, 0.127691f, 0.115073f, -0.1988f, -0.212631f, -0.121627f, 0.0436398f, 0.0574111f, 0.0342922f, 0.0594333f, -0.0848946f, -0.118027f, -0.0679305f, -0.110688f, -0.118819f, -0.00404798f, 0.365826f, 0.126281f, 0.163799f, -0.155878f, -0.0198013f, 0.0732958f, 0.025033f, 0.00878617f, -0.0288794f, -0.0340888f, -0.0700362f, 0.135505f, 0.200345f, -0.27182f, 0.0421049f, 0.154914f, 0.322302f, -0.0355231f, 0.0250193f, -0.00381215f, 0.0130464f, 0.0894829f, -0.111475f, 0.000428428f, -0.131001f, 0.0586491f, 0.122083f, -0.0493182f, 0.188195f, 0.196667f, -0.303141f, -0.157354f, 0.118368f, -0.117998f, -0.114425f, 0.155291f, 0.0385336f, 0.197487f, -0.169868f, 0.246375f, -0.119066f, -0.0294555f, 0.00219155f, -0.126549f, 0.0880655f, 0.0644223f, 0.139199f, 0.0960026f, -0.0913918f, 0.0321977f, -0.0326568f, 0.132348f, -0.004017f, 0.143387f, -0.141734f, -0.0449425f, -0.0333623f, 0.125576f, -0.0995561f, -0.0103207f, -0.00238451f, 0.080405f, -0.269285f, 0.169342f, -0.0635095f, 0.263021f, -0.058456f, 0.0429495f, 0.120703f, 0.128975f, -0.233373f, 0.0719359f, 0.0992526f, 0.0598764f, 0.213152f, -0.139591f, 0.0111714f, 0.0244643f, -0.0729422f, -0.011408f, 0.130125f, -0.190623f, -0.03431f, 0.0630346f, -0.10769f, 0.0557043f, -0.0566449f, -0.0250544f, -0.022595f, -0.0427255f, 0.115632f, 0.11945f, 0.0430716f, -0.00753059f, -0.0264045f, 0.0189508f, -0.0368513f, 0.0594046f, 0.0847702f, 0.0520682f, -0.292042f, -0.0817949f, 0.114707f, 0.0144646f, 0.0496192f, 0.162581f, -0.000967547f, -0.160933f, -0.0640755f, -0.0227151f, -0.163904f, 0.03495f, -0.0516485f, 0.131296f, -0.0555282f, 0.04541f, -0.203044f, -0.0677995f, -0.0282836f, -0.0157647f, 0.0274509f, -0.00323077f, 0.0166242f, 0.0142531f, -0.0608151f, -0.0155284f, 0.00388386f, 0.0799918f, 0.00890975f, -0.0173836f, -0.0455636f, -0.136733f, 0.0276027f, 0.0437832f, 0.0316663f, 0.0881703f, 0.0465492f, 0.0519603f, -0.193578f, -0.0496555f, 0.0931399f, -0.0317259f, 0.0215178f, 0.024087f, 0.0543716f, 0.148835f, -0.0451403f, -0.130573f, -0.141463f, 0.251243f, -0.26975f, -0.045159f, -0.103599f, -0.108257f, 0.0120926f, 0.0162302f, 0.208273f, -0.117997f, -0.10228f, 0.110643f, 0.0297101f, -0.122294f, -0.139888f, -0.056092f, 0.0302582f, -0.00741781f, 0.203093f, 0.143503f, -0.0837938f, -0.0116276f, -0.00653999f, -0.133326f, 0.0569109f, -0.0812485f, 0.0351529f, -0.0447137f, -0.0853242f, -0.0430114f, -0.120941f, -0.0207683f, -0.130794f, -0.0681127f, -0.062079f, -0.0473481f, -0.0590327f, -0.0690426f, 0.116073f, -0.156337f, -0.0698394f, 0.0278422f, -0.186195f, 0.0850451f, 0.11294f, 0.145819f, -0.0959118f, -0.12598f, -0.0695861f, 0.216485f, 0.1839f, -0.243558f, -0.118465f, -0.106648f, 0.127068f, -0.127256f, 0.0653781f, -0.0455378f, -0.0581912f, 0.145361f, -0.0866306f, -0.142291f, 0.0526277f, 0.00160335f, -0.0599653f, 0.0961954f, 0.118676f, 0.0253811f, 0.0132581f, -0.112909f, 0.0391463f, 0.0684525f, 0.0949133f, -0.112881f, 0.079263f, -0.0703176f, -0.0694554f, -0.167346f, 0.0924824f, -0.0405912f, 0.0235699f, -0.0701803f, -0.0826208f, -0.0202728f, 0.0895154f, 0.0166184f, -0.254056f, 0.123371f, -0.117096f, -0.0597966f, 0.0675939f, 0.127635f, -0.0702422f, -0.0660869f, 0.0327793f, 0.117506f, 0.153872f, -0.021569f, 0.0607402f, -0.0355423f, 0.000446082f, -0.124814f, -0.0243035f, -0.13999f, -0.185608f, -0.0244495f, 0.165696f, -0.0417009f, -0.0462815f, -0.171717f, 0.0540185f, 0.105983f, 0.00400495f, 0.0617924f, 0.0953484f, -0.119981f, -0.0478153f, 0.124151f, -0.0580362f, -0.251137f, -0.0670799f, -0.0207918f, -0.0895491f, 0.0549684f, -0.101297f, 0.103393f, 0.16728f, 0.11157f, 0.0276304f, 0.0539408f, 0.0171824f, 0.135427f, -0.089379f, 0.00543987f, 0.00557666f, 0.189756f, 0.0213836f, -0.0246621f, 0.0809472f, -0.0340424f, 0.0491174f, -0.17131f, -0.197256f, -0.0410798f, 0.0300607f, -0.0763111f, -0.0790089f, 0.0441864f, 0.00250824f, 0.0679835f, -0.0521625f, -0.0488477f, 0.0338113f, 0.121874f, -0.284957f, -0.00764361f, 0.0874511f, 0.0209528f, -0.0541673f, -0.0646459f, 0.0933228f, -0.0609366f, 0.0359632f, -0.133078f, 0.115852f, -0.152472f, 0.0245674f, 0.0947455f, 0.168584f, -0.12835f, 0.196528f, 0.00736223f, 0.0236253f, -0.107442f, 0.0193074f, 0.00405551f, -0.188684f, -0.0705586f, -0.171386f, -0.0724126f, -0.127796f, -0.039175f, -0.139119f, -0.0190728f, 0.015776f, 0.0342653f, -0.122628f, -0.259812f, 0.0672887f, 0.134135f, 0.0262439f, 0.11908f, 0.0386907f, -0.027765f, 0.0688058f, 0.118998f, -0.0255169f, 0.0742543f, 0.0118295f, -0.0481748f, 0.0443727f, -0.0556238f, 0.0925499f, 0.156088f, 0.10911f, -0.0700683f, 0.0239504f, -0.0554307f, 0.380625f, 0.114306f, 0.171927f, -0.00470277f, 0.172147f, -0.163248f, 0.171447f, -0.0392949f, 0.20687f, -0.0467468f, -0.0364172f, -0.0607831f, -0.117176f, 0.0241643f, -0.122143f, 0.0331288f, 0.0445563f, 0.0415315f, 0.136307f, -0.145522f, 0.199695f, -0.0969085f, -0.12511f, -0.0965969f, -0.216429f, -0.0556251f, 0.0581658f, 0.239878f, 0.0503737f, -0.0581753f, 0.0964971f, 0.211981f, -0.091845f, -0.0141091f, 0.123538f, -0.0224233f, 0.09202f, -0.0208294f, 0.023048f, -0.168299f, 0.145559f, 0.085805f, -0.107464f, -0.0151204f, -0.0682115f, -0.110997f, 0.139676f, -0.198148f, -0.0244348f, 0.125171f, -0.178802f, -0.00394587f, 0.0693092f, 0.0744418f, 0.00431382f, -0.0236217f, -0.084621f, 0.0533957f, 0.197542f, -0.0397467f, 0.0119584f, -0.133915f, -0.00463094f, 0.0726216f, 0.116142f, 0.0927343f, -0.166937f, 0.0648558f, 0.117658f, 0.149842f, -0.0162273f, -0.0192975f, 0.115933f, 0.0554775f, 0.0364003f, -0.201476f, -0.222112f, -0.135981f, 0.0539566f, 0.146376f, -0.0651559f, 0.0200376f, 0.0703236f, -0.0165641f, -0.165693f, 0.0934821f, -0.0559198f, 0.0114938f, -0.0087794f, 0.0343226f, -0.0059043f, 0.0592818f, -0.121724f, 0.0488199f, 0.0149378f, 0.206129f, 0.187237f, -0.125548f, -0.031094f, 0.0835973f, 0.173406f, 0.3418f, -0.124081f, 0.0816775f, -0.109981f, -0.358008f, 0.133712f, -0.067144f, 0.203191f, -0.0457458f, -0.115089f, -0.170217f, -0.157483f, -0.0262286f, 0.0910993f, 0.0756705f, -0.131403f, -0.0598638f, -0.109005f, 0.216911f, 0.0832318f, -0.0175269f, 0.12017f, 0.305358f, 0.103844f, -0.026503f, -0.181148f, -0.0127285f, -0.0132412f, -0.00162869f, 0.0207631f, 0.202382f, -0.11838f, 0.0787106f, 0.0310042f, 0.0802855f, -0.135553f, -0.00581206f, -0.130546f, 0.14268f, -0.175324f, -0.00351506f, 0.0260055f, 0.0905363f, -0.0829958f, 0.10293f, 0.140962f, -0.138289f, -0.0337323f, -0.0941957f, -0.0287273f, -0.0890916f, 0.104141f, 0.163246f, -0.0345933f, -0.017931f, -0.0575784f, -0.11534f, -0.0218979f, 0.267272f, -0.0320888f, 0.115516f, -0.118214f, 0.0576934f, -0.00534889f, -0.11597f, -0.053527f, 0.112966f, 0.151295f, 0.0399955f, -0.254703f, -0.0661813f, 0.0729021f, -0.0553189f, 0.00701938f, -0.189838f, 0.0651111f, 0.134032f, -0.12525f, 0.24228f, 0.141132f, -0.0260896f, -0.070044f, -0.0526634f, -0.207561f, -0.0676873f, -0.143111f, -0.204514f, 0.0983934f, -0.0906274f, 0.0547451f, 0.0981515f, -0.103553f, -0.0185959f, 0.0756669f, 0.0207471f, -0.129061f, 0.156464f, -0.141991f, 0.109558f, -0.0627573f, -0.0641959f, -0.00789138f, -0.0107114f, -0.0115048f, -0.046329f, -0.224054f, -0.137206f, 0.0859283f, 0.131616f, 0.2777f, 0.055557f, -0.0708088f, -0.0538557f, 0.0987677f, -0.142932f, -0.0848473f, 0.0576767f, 0.112043f, -0.0689157f, 0.0540192f, -0.0624084f, -0.0948496f, 0.0586048f, 0.334999f, 0.0472563f, 0.0337087f, 0.0295298f, 0.156338f, -0.0337418f, 0.0578684f, -0.132013f, -0.0491207f, -0.000238756f, 0.193152f, 0.181843f, 0.10289f, 0.0659528f, 0.00414669f, -0.0721822f, 0.0942316f, -0.118434f, -0.0940982f, -0.0463031f, 0.0416631f, -0.148412f, -0.0393706f, 0.0349973f, 0.0294582f, -0.040009f, -0.00473275f, 0.136518f, 0.0550601f, 0.0140333f, -0.128485f, -0.0415799f, -0.0654132f, -0.064578f, 0.171196f, 0.111095f, -0.105509f, -0.136925f, -0.184257f, -0.156951f, 0.228061f, 0.114534f, -0.0119688f, 0.0530868f, -0.0197708f, -0.134919f, -0.220247f, -0.025252f, -0.22761f, 0.0414286f, 0.124117f, 0.0630268f, -0.0562616f, 0.225075f, -0.0493476f, 0.142481f, 0.0903304f, -0.10004f, -0.0811495f, -0.0299285f, -0.110955f, -0.0512479f, -0.143554f, 0.00671361f, -0.0443956f, 0.221817f, -0.00278022f, 0.0954209f, -0.00390204f, 0.0179967f, -0.162746f, 0.0567472f, -0.0244207f, -0.148689f, 0.095182f, 0.0172504f, 0.0152493f, 0.0553119f, 0.00691494f, 0.178258f, 0.0219367f, 0.153237f, 0.0664088f, -0.0316592f, -0.0157545f, -0.113491f, -0.234241f, -0.138673f, 0.026283f, -0.0553677f, 0.100685f, 0.0179657f, -0.00613625f, 0.12503f, -0.113112f, 0.00141486f, 0.0237294f, 0.151618f, -0.0547273f, -0.00264617f, 0.144756f, 0.0561577f, 0.0441063f, 0.104541f, -0.00823987f, 0.0346045f, -0.065161f, 0.245564f, -0.0426414f, -0.030484f, 0.249241f, 0.0692827f, 0.0610749f, -0.121067f, -0.153006f, -0.108968f, -0.131698f, 0.132474f, 0.0769292f, -0.0621536f, 0.0379712f, 0.142774f, -0.128423f, 0.107447f, 0.14869f, 0.212285f, 0.116663f, 0.0406976f, -0.114244f, -0.139742f, 0.0992123f, 0.106052f, 0.0236159f, 0.0532751f, 0.0722184f, 0.101856f, -0.0568198f, -0.0203083f, -0.249563f, 0.0314278f, 0.24554f, 0.192253f, 0.105292f, -0.176553f, 0.0182953f, -0.162484f, -0.0159771f, 0.248126f, -0.201752f, -0.0597972f, 0.163662f, 0.0359592f, -0.0370592f, 0.0493369f, 0.062471f, 0.0293029f, -0.192226f, -0.155816f, -0.0173566f, -0.0501594f, 0.333196f, -0.0302933f, -0.0662921f, 0.0321787f, -0.175027f, 0.0637224f, 0.0609763f, -0.137408f, -0.0497158f, 0.0256529f, 0.115951f, -0.0715037f, 0.0456869f, 0.170257f, -0.102079f, -0.0797223f, -0.0115923f, -0.028239f, -0.0489953f, 0.0308667f, -0.0392215f, 0.0091498f, 0.119341f, -0.0271525f, 0.0952384f, 0.0975866f, -0.122738f, -0.0201918f, -0.136831f, -0.168559f, -0.0655316f, 0.050682f, -0.116124f, -0.127519f, -0.0353531f, 0.0662269f, -0.0671971f, 0.0249307f, -0.0822884f, 0.0464896f, -0.112299f, 0.129869f, 0.00180486f, -0.216736f, -0.151765f, -0.0296738f, 0.0305862f, 0.100682f, 0.0411443f, -0.0171006f, 0.00587758f, -0.146638f, 0.00855318f, 0.033708f, -0.116999f, -0.0514464f, -0.140214f, -0.0964713f, -0.0269176f, -0.101548f, -0.283636f, 0.140532f, 0.0858806f, -0.230783f, -0.0286378f, -0.106056f, -0.126099f, -0.256643f, 0.119343f, -0.0545925f, -0.0159382f, -0.029783f, 0.0701516f, -0.0498638f, 0.105904f, -0.0602673f, 0.0725477f, 0.0725609f, -0.152357f, -0.085373f, 0.218802f, 0.173298f, 0.0803967f, -0.167979f, -0.162678f, 0.0305768f, -0.164647f, 0.0215681f, 0.000463574f, 0.270715f, -0.00295866f, -0.114551f, 0.0584949f, 0.111544f, 0.123542f, 0.0484252f, -0.23995f, 0.0917101f, 0.152924f, -0.114919f, -0.0429841f, 0.026999f, 0.0856462f, 0.0115069f, -0.0426149f, -0.0464711f, 0.01034f, 0.238899f, 0.0577966f, 0.21144f, 0.0991494f, -0.00483824f, 0.0567827f, -0.154261f, 0.130994f, 0.102288f, -0.0678653f, -0.0706912f, -0.210289f, -0.118426f, -0.0343207f, -0.154916f, 0.161049f, -0.0478522f, 0.102661f, 0.0108906f, -0.103758f, 0.0390385f, 0.174271f, 0.109843f, 0.00671668f, -0.0135555f, -0.206802f, 0.107195f, 0.0661205f, -0.127171f, 0.103611f, -0.0224681f, -0.134187f, 0.0901285f, -0.197876f, -0.0520321f, 0.14459f, -0.118563f, 0.0252278f, -0.139859f, 0.07151f, 0.0289102f, -0.163204f, -0.0518494f, -0.181234f, -0.00925548f, 0.2346f, -0.152022f, 0.139208f, 0.00444786f, -0.0317226f, -0.157432f, -0.0528321f, -0.0208838f, -0.0255997f, 0.0842752f, 0.0203938f, -0.0684608f, -0.16607f, -0.224833f, 0.0663524f, 0.353126f, 0.179083f, 0.0404662f, -0.130839f, -0.128233f, -0.147074f, -0.00700458f, -0.0141646f, 0.20008f, 0.0419057f, 0.103872f, -0.151002f, 0.040467f, 0.114995f, 0.0836601f, -0.00566969f, -0.115449f, -0.0117605f, 0.144741f, 0.0804304f, 0.0600017f, 0.0769862f, -0.0668935f, -0.117889f, 0.0407159f, -0.0519966f, 0.0453245f, 0.0232327f, -0.0353576f, 0.0974864f, -0.114842f, 0.107827f, -0.0124007f, -0.116903f, 0.0017538f, -0.192595f, -0.0845089f, -0.145635f, 0.0625003f, 0.130272f, -0.0813601f, -0.000628703f, 0.064344f, 0.117979f, 0.0748343f, -0.0425438f, -0.0745272f, -0.0356093f, 0.0961124f, 0.247422f, -0.0111715f, 0.0639781f, -0.00396973f, -0.0835036f, -0.0467534f, -0.173479f, -0.191194f, -0.0682115f, -0.181376f, 0.0291904f, -0.106075f, 0.0924545f, 0.13188f, -0.204534f, -0.0582763f, -0.063006f, -0.0191295f, 0.118408f, -0.155103f, -0.208561f, -0.00257655f, -0.0278397f, -0.0349798f, 0.193708f, 0.206104f, 0.238367f, -0.0511592f, -0.0259264f, -0.0512514f, -0.140731f, -0.140718f, 0.0625166f, 0.0154084f, 0.0463342f, 0.0331415f, -0.0151346f, 0.0538995f, -0.0521382f, -0.0901504f, 0.323236f, -0.127595f, 0.158692f, 0.165618f, 0.0321485f, -0.235276f, -0.0467389f, -0.0478533f, 0.0267783f, -0.0112504f, 0.12955f, -0.131759f, 0.0250798f, 0.0297737f, -0.123351f, -0.0462916f, -0.0601691f, -0.169514f, 0.0768223f, -0.172547f, 0.00863833f, -0.132059f, 0.109882f, -0.0541994f, 0.108905f, -0.0221439f, 0.136297f, -0.0268997f, 0.150023f, -0.0864496f, 0.025512f, 0.148027f, 0.139395f, 0.122416f, 0.249048f, 0.0819006f, -0.017772f, -0.125767f, -0.016484f, 0.0395336f, -0.0548037f, -0.223122f, -0.166761f, -0.0757889f, -0.0226887f, -0.105259f, -0.0352583f, -0.0432748f, -0.0944241f, 0.0690278f, -0.0961888f, 0.129761f, -0.165683f, -0.0763722f, -0.0451281f, 0.217425f, 0.0696649f, 0.0708892f, 0.0798329f, 0.0748843f, 0.0769466f, -0.0871541f, 0.139047f, -0.0325753f, -0.0597439f, -0.0811437f, -0.0832682f, -0.239208f, -0.0524307f, -0.0291281f, -0.0396967f, -0.167074f, 0.0869051f, -0.160389f, 0.0236742f, -0.0792648f, 0.172199f, 0.258201f, -0.109859f, -0.00524742f, -0.0147915f, -0.0684649f, 0.085636f, 0.0422699f, -0.0719259f, -0.0400511f, 0.110565f, -0.0275946f, 0.173568f, -0.0434963f, 0.231463f, 0.029332f, 0.0503372f, 0.17586f, 0.0107855f, 0.0701134f, 0.0489747f, -0.0516045f, -0.169565f, 0.187467f, -0.0587943f, -0.258745f, -0.0295657f, -0.171497f, 0.089733f, 0.123308f, -0.0844785f, 0.106371f, -0.00838618f, 0.0526407f, -0.240864f, 0.0891924f, -0.116663f, -0.103753f, 0.153124f, 0.081109f, -0.0454884f, -0.0369505f, -0.0974666f, 0.161862f, -0.15868f, -0.0577927f, -0.148928f, 0.0614618f, -0.129369f, -0.0587742f, -0.0393234f, -0.00244397f, 0.307357f, -0.101969f, 0.126875f, 0.0187606f, -0.0560896f, 0.0477976f, -0.272754f, 0.0133458f, 0.00948088f, 0.0818334f, -0.0158353f, 0.0495313f, 0.167124f, -0.229534f, -0.0461687f, -0.117349f, -0.00241059f, -0.0124886f, 0.067986f, 0.0263838f, 0.0843775f, -0.0437962f, -0.0732725f, 0.081337f, -0.0575028f, -0.176248f, 0.0246008f, -0.00573236f, 0.0340705f, -0.114427f, 0.136732f, 0.160702f, 0.0235913f, 0.0148508f, 0.147296f, -0.220212f, -0.0690821f, -0.018742f, -0.0814082f, 0.000462293f, -0.260802f, -0.106888f, -0.0567304f, 0.0586716f, -0.0342567f, 0.0584384f, 0.0444304f, 0.0114965f, -0.0701725f, 0.0600115f, 0.0741278f, 0.0735552f, 0.143475f, 0.115074f, 0.0681775f, 0.0776265f, -0.0174075f, 0.0840016f, 0.0752029f, 0.0179655f, 0.026884f, 0.182286f, -0.114825f, -0.066792f, 0.0889464f, 0.0858338f, -0.0113572f, -0.0881827f, 0.0822213f, 0.149808f, -0.0455913f, -0.0176346f, 0.0940022f, -0.0147701f, -0.144023f, 0.0855528f, -0.159248f, -0.124493f, 0.104408f, 0.0140008f, 0.0675851f, -0.0766063f, -0.116592f, 0.00655453f, -0.0886846f, 0.0209535f, -0.0210895f, 0.186624f, -0.0244961f, 0.0234838f, -0.224046f, -0.0801416f, 0.027588f, -0.0312838f, -0.10964f, -0.210306f, -0.0155024f, -0.168403f, -0.0946913f, 0.218398f, -0.0739848f, -0.00671045f, -0.0673331f, -0.106194f, -0.101885f, 0.206145f, -0.0444965f, 0.0931645f, -0.0368602f, -0.196886f, -0.130361f, 0.243789f, -0.00487948f, 0.198048f, -0.134132f, -0.125914f, -0.119715f, -0.0176049f, -0.388635f, -0.0317848f, 0.136989f, 0.0218202f, 0.121081f, 0.159851f, -0.0394718f, 0.0907094f, -0.150073f, 0.0709025f, 0.0719346f, -0.0621058f, -0.1778f, 0.189268f, 0.066535f, 0.0966753f, 0.125545f, 0.0455094f, -0.0985138f, 0.00208439f, -0.00763695f, 0.00639482f, 0.00322567f, 0.0865544f, 0.140985f, -0.0244202f, -0.0112032f, 0.0269489f, 0.0425887f, -0.0346553f, -0.117193f, 0.214534f, 0.0251244f, -0.0472421f, -0.0116764f, 0.213914f, -0.227229f, 0.1367f, -0.191525f, -0.077311f, -0.025126f, -0.146094f, -0.213257f, 0.016354f, 0.116038f, -0.0756774f, -0.112287f, -0.0956394f, 0.181322f, -0.084329f, 0.0831649f, -0.124323f, -0.0744675f, 0.0734857f, 0.0309128f, -0.151217f, 0.0040248f, -0.0974644f, 0.0475116f, -0.00806207f, 0.0677711f, 0.000488559f, 0.31419f, 0.0527593f, 0.112494f, 0.162696f, -0.0929699f, -0.0472898f, -0.0577593f, 0.0723963f, 0.117685f, 0.22069f, -0.0677903f, 0.0246052f, 0.0048672f, 0.0832389f, 0.00378989f, 0.179081f, -0.00879816f, 0.0225637f, 0.0158046f, 0.143528f, 0.0584804f, 0.0262781f, -0.00846017f, -0.104611f, -0.0221982f, 0.0252035f, 0.112715f, -0.199726f, 0.0350441f, -0.0686712f, 0.0434019f, -0.151195f, 0.0837621f, -0.130202f, -0.000811349f, -0.103073f, -0.0403161f, -0.0594069f, -0.0877509f, -0.00590993f, 0.0231722f, -0.121088f, -0.391103f, -0.019431f, 0.0817602f, 0.0527755f, 0.0992755f, 0.161425f, 0.0168443f, -0.0854238f, 0.10592f, -0.0542574f, -0.0479623f, -0.0679175f, -0.0501829f, -0.180061f, 0.0489264f, 0.126825f, 0.0269393f, 0.0674842f, 0.261283f, -0.113903f, 0.0516758f, -0.0185179f, 0.0888017f, -0.000139483f, 0.0807915f, -0.0108554f, -0.109691f, -0.0669186f, 0.121351f, 0.0566793f, -0.0167819f, 0.0822138f, 0.0704941f, -0.123956f, 0.0560745f, 0.19168f, -0.0295509f, 0.0395484f, 0.0906514f, 0.0670029f, -0.0354302f, 0.0351355f, 0.0676405f, -0.138673f, 0.0776129f, -0.0398722f, 0.0820865f, 0.0506494f, -0.0799403f, -0.0933255f, -0.0256913f, 0.0692704f, -0.132138f, 0.202244f, 0.151858f, 0.100586f, 0.115581f, -0.0117862f, 7.80844e-05f, 0.150684f, -0.0777769f, -0.0555746f, -0.209447f, -0.10494f, -0.0131148f, 0.0288863f, -0.0699032f, -0.0931896f, 0.0344133f, 0.00340128f, -0.0865655f, 0.130542f, 0.0761449f, 0.144283f, -0.0683641f, 0.0789137f, 0.0561416f, -0.097311f, 0.0548578f, 0.0422248f, 0.152139f, -0.0514651f, -0.0409513f, -0.0272965f, -0.0898351f, 0.0581419f, -0.0617364f, -0.0887362f, 0.119367f, -0.100116f, -0.176512f, 0.118884f, 0.0727275f, 0.0999158f, -0.00386374f, 0.0909081f, -0.0694219f, 0.0626571f, 0.0481447f, -0.0528535f, 0.0258354f, -0.0049836f, 0.0158656f, -0.0640526f, 0.00115454f, -0.00160752f, 0.045457f, -0.148332f, -0.168811f, -0.0513546f, -0.291317f, -0.00405431f, 0.0911846f, 0.0679518f, 0.0631274f, 0.160422f, 0.0543078f, -0.0356404f, -0.0199723f, -0.0491793f, 0.0300288f, -0.0123906f, 0.151868f, -0.0722189f, -0.0430919f, -0.0814115f, 0.0169131f, -0.0294944f, 0.111215f, -0.318497f, 0.13022f, -0.0527701f, 0.0636834f, -0.26041f, -0.0127658f, -0.0701126f, 0.00306886f, 0.21473f, -0.145459f, -0.079127f, 0.0994758f, -0.198761f, -0.00324043f, 0.106227f, -0.129003f, -0.206704f, 0.231621f, -0.160573f, 0.0855566f, 0.122829f, 0.0580241f, -0.0406969f, -0.0103319f, -0.220221f, 0.0424369f, 0.0871511f, 0.138163f, 0.194249f, 0.133906f, -0.0312908f, -0.086838f, -0.00202064f, -0.0939109f, 0.127476f, 0.00445663f, -0.0581692f, -0.155761f, 0.0404655f, 0.250563f, -0.00296771f, -0.00765122f, -0.0184977f, 0.0603397f, -0.0109015f, 0.141809f, -0.0170466f, 0.0246634f, -0.129598f, 0.0129825f, 0.0411581f, -0.122828f, -0.060903f, 0.0259857f, 0.13336f, 0.0596888f, -0.135078f, -0.0349223f, 0.0726095f, 0.0224667f, -0.247647f, -0.0856904f, 0.0555935f, 0.18741f, 0.133913f, -0.0126827f, 0.168418f, 0.13299f, 0.0292542f, 0.158248f, -0.0686903f, 0.00461184f, -0.148378f, 0.0430469f, 0.0463822f, 0.168026f, 0.00714021f, 0.0543366f, 0.0100729f, -0.0413269f, 0.0563973f, -0.0940585f, -0.0440974f, -0.216315f, -0.0652418f, 0.073364f, 0.285117f, -0.158906f, -0.232667f, 0.0734506f, 0.100076f, -0.021626f, -0.0475986f, 0.0766044f, -0.1133f, 0.031718f, 0.0114878f, 0.0387261f, -0.111513f, 0.251868f, -0.0321698f, -0.0163415f, -0.17881f, 0.0841402f, -0.120465f, 0.0686581f, -0.0289429f, -0.184975f, -0.136793f, 0.029196f, 0.224135f, 0.079326f, -0.0904605f, 0.115588f, 0.22912f, -0.0954724f, 0.155689f, 0.0461432f, -0.0328915f, 0.0100643f, 0.0483369f, -0.159618f, 0.131261f, 0.181069f, -0.111786f, 0.00678087f, 0.100649f, 0.16814f, 0.165055f, -0.0708342f, 0.114481f, -0.0747f, -0.114252f, -0.0769982f, -0.0460174f, 0.0728612f, -0.13306f, -0.0932621f, -0.019805f, 0.0200708f, -0.212277f, -0.138804f, 0.007889f, 0.328629f, -0.0594214f, 0.0403117f, -0.116803f, 0.109223f, 0.0604751f, -0.0515518f, 0.00232291f, 0.114706f, 0.227697f, 0.0966261f, -0.177347f, -0.134866f, -0.0814991f, 0.192626f, 0.0869204f, 0.0329994f, -0.162612f, -0.150023f, -0.0716221f, 0.259024f, 0.0160795f, 0.0360771f, 0.0459445f, 0.0688876f, 0.0756439f, -0.0865408f, 0.127239f, -0.0440397f, -0.011109f, 0.00759728f, 0.355613f, -0.0127272f, 0.151964f, 0.116613f, 0.0114587f, -0.128119f, -0.0993558f, -0.0549541f, -0.00706599f, 0.0289976f, 0.125323f, -0.053071f, 0.0550674f, -0.0443678f, -0.0726763f, -0.0886086f, -0.116334f, -0.0209192f, 0.063885f, 0.077968f, -0.104398f, -0.179266f, -0.194832f, -0.0639122f, -0.0518158f, 0.256032f, -0.108148f, -0.137127f, -0.104448f, 0.033398f, -0.0646876f, 0.0763196f, -0.0495609f, -0.100906f, -0.134571f, -0.161793f, 0.153519f, 0.149706f, -0.222311f, 0.0359835f, -0.00287598f, -0.160517f, 0.00736621f, 0.039841f, -0.000592701f, -0.056578f, 0.131453f, 0.0138361f, -0.134636f, -0.06908f, -0.0854272f, 0.0779619f, -0.0139243f, -0.0182492f, -0.0930189f, -0.00353997f, 0.0685898f, -0.0102112f, 0.0606511f, 0.063219f, -0.0267228f, 0.00053972f, -0.181391f, 0.0220468f, 0.202779f, 0.228042f, -0.191374f, -0.0386773f, -0.0833115f, 0.132745f, -0.0764369f, -0.0667909f, 0.0471235f, -0.0951605f, 0.0251998f, 0.109606f, -0.0551212f, 0.0423476f, -0.0914923f, 0.104139f, -0.166891f, -0.144794f, 0.00263478f, 0.0549706f, -0.0192015f, -0.094959f, -0.0470626f};
+ model->setOperandValue(op80, op80_init, sizeof(float) * 16384);
+ static float op83_init[] = {-0.0293549f, -0.0835053f, -0.228576f, -0.0980885f, -0.0370638f, -0.195879f, -0.0452258f, 0.0371641f, -0.0585841f, -0.0984154f, -0.141293f};
+ model->setOperandValue(op83, op83_init, sizeof(float) * 11);
+ static float op84_init[] = {0.0984852f, 0.672424f, 0.392549f, -0.262182f, 0.303914f, -0.0118188f, 0.027943f, 0.0164078f, 0.200583f, -0.808626f, 0.234772f, -0.0253635f, -0.198519f, -0.176824f, -0.580674f, 0.0681573f, -0.0134279f, 0.172173f, -0.284882f, -0.0895141f, 0.0142356f, -0.0479431f, 0.0736678f, 0.00298977f, 0.152355f, -0.0370715f, 0.463201f, 0.0146613f, 0.0971624f, -0.0791196f, 0.556621f, -0.00950762f, 0.0160531f, 0.091037f, 0.376353f, -0.0996081f, -0.0418334f, -0.427482f, -0.202679f, -0.197079f, 0.021873f, -0.105617f, 0.36447f, 0.389277f, 0.0429815f, 0.0480496f, -0.170086f, -0.191548f, -0.237921f, 0.155838f, -0.100796f, 0.0539355f, 0.103154f, 0.0441985f, -0.20672f, 0.358565f, -0.105794f, -0.635905f, 0.193301f, 0.112419f, -0.184668f, 0.157954f, -0.301095f, -0.153072f, -0.0535615f, -0.0661999f, -0.197056f, -0.0835003f, -0.074932f, -0.111766f, -0.356266f, 0.649165f, -0.0527003f, -0.0597135f, 0.109839f, -0.270809f, 0.0333183f, -0.211454f, 0.0594729f, -0.166949f, 0.21057f, 0.224925f, -0.222835f, -0.0178217f, 0.127268f, 0.229248f, 0.262987f, 0.0318244f, 0.293201f, -0.361254f, -0.0624992f, -0.0696259f, 0.0456531f, -0.0287401f, 0.0863351f, -0.106142f, 0.81137f, 0.305728f, 0.398482f, -0.0190696f, -0.133965f, -0.223757f, -0.153242f, -0.261303f, 0.111363f, -0.113733f, 0.0028724f, -0.0878969f, 0.0498853f, -0.000613516f, -0.0819123f, -0.0154599f, -0.0938842f, -0.108295f, 0.340323f, -0.139579f, -0.117066f, 0.145283f, -0.106254f, 0.201248f, -0.152479f, 0.162457f, -0.0751263f, 0.00127508f, -0.0218281f, 0.126278f, -0.100075f, 0.426783f, -0.108719f, 0.207569f, -0.327427f, 0.277309f, 0.0404061f, -0.334901f, 0.154047f, -0.287619f, 0.0161922f, -0.00054208f, -0.233675f, 0.564603f, 0.201628f, 0.0510375f, -0.16502f, -0.0155493f, -0.125359f, -0.0996153f, 0.0133961f, -0.492208f, 0.109118f, -0.136327f, 0.0252329f, 0.0556799f, -0.196804f, -0.0612012f, -0.0392273f, 0.133385f, 0.253763f, -0.208136f, -0.00507434f, -0.0584744f, 0.0855089f, -0.00321895f, -0.209376f, 0.0618401f, 0.0129248f, -0.130721f, -0.168413f, 0.122652f, 0.0927544f, -0.180775f, -0.0463842f, -0.626248f, -0.00596579f, 0.0822374f, -0.254325f, -0.361624f, 0.778701f, -0.0705549f, 0.40832f, 0.0932269f, 0.10348f, 0.258843f, -0.117135f, 0.131713f, -0.457018f, -0.364692f, 0.0741725f, 0.168267f, 0.0904773f, -0.333243f, 0.18358f, -0.0407786f, -0.0115824f, 0.304328f, 0.177285f, 0.206312f, -0.503914f, 0.310439f, 0.533919f, 0.0925376f, 0.449889f, -0.45417f, 0.89017f, -0.00580558f, 0.317744f, 0.0176692f, -0.0267303f, -0.0657997f, -0.333455f, -0.0895455f, -0.0203959f, -0.329956f, 0.0542947f, -0.03533f, 0.0496151f, 0.145015f, 0.135449f, -0.239986f, -0.442413f, -0.0922021f, 0.396803f, 0.0695849f, -0.00921835f, 0.405834f, 0.477558f, 0.08952f, 0.101425f, -0.0264703f, -0.124621f, 0.070554f, -0.101953f, 0.224768f, 0.021384f, 0.293433f, -0.297231f, 0.0841252f, 0.0290684f, -0.211267f, -0.116215f, 0.433678f, -0.626231f, -0.139838f, 0.0290375f, -0.24486f, 0.282119f, -0.486426f, -0.402424f, -0.561959f, -0.450933f, 0.0501238f, -0.194682f, -0.231145f, -0.210372f, -0.0802564f, -0.170723f, -0.248902f, -0.0122576f, 0.0776341f, 0.197615f, 0.094212f, 0.0318287f, -0.237544f, 0.135516f, -0.537321f, -0.0906906f, 0.172587f, 0.179816f, 0.0792088f, 0.354531f, 0.0801259f, 0.0145845f, -0.14874f, 0.0367363f, -0.0733148f, -0.125755f, -0.252037f, -0.101672f, -0.14809f, -0.188341f, -0.264003f, -0.201581f, -0.0605842f, 0.0142779f, -0.322517f, -0.130978f, 0.301363f, -0.276394f, 0.0248554f, -0.168732f, 0.158651f, 0.150037f, -0.0472578f, 0.241238f, -0.109832f, -0.500172f, -0.0574687f, 0.143137f, 0.177313f, 0.0489008f, 0.24142f, -0.0742049f, -0.103464f, -0.0383113f, -0.0148622f, -0.101849f, 0.0425005f, 0.0543708f, 0.0710147f, 0.169901f, 0.304119f, 0.180413f, -0.330647f, -0.250029f, 0.0651902f, 0.173465f, -0.475872f, 0.393697f, 0.147345f, -0.00802343f, -0.0545821f, -0.119f, -0.0282713f, 0.0414947f, 0.0618215f, -0.132909f, 0.480818f, -0.124287f, -0.0484199f, -0.344362f, 0.071471f, 0.267047f, -0.279627f, -0.289336f, 0.0609794f, 0.339502f, -0.0956702f, -0.361749f, -0.0153208f, -0.102628f, 0.0936787f, -0.130392f, 0.348396f, 0.200636f, -0.249164f, -0.177583f, -0.0716032f, 0.118703f, 0.123365f, -0.0366422f, 0.231096f, 0.0022177f, 0.128202f, 0.222367f, -0.176409f, -0.153065f, -0.0287899f, -0.355792f, -0.543125f, 0.177245f, 0.116598f, 0.0451388f, -0.0286715f, -0.174033f, 0.476808f, 0.298325f, -0.0593149f, -0.0491401f, 0.0263619f, 0.0565123f, 0.0500395f, -0.40961f, -0.0481743f, -0.0744737f, -0.050528f, -0.428685f, -0.0457881f, -0.105794f, 0.0951161f, -0.299268f, -0.229566f, -0.206985f, -0.0780657f, -0.0322681f, 0.266195f, -0.0781984f, -0.598814f, -0.280207f, 0.0516518f, -0.0447187f, 0.0980521f, 0.0216666f, 0.038809f, 0.147272f, -0.357397f, 0.0504251f, 0.126596f, -0.0935991f, -0.142778f, 0.0864683f, -0.116768f, -0.164657f, -0.380078f, 0.00184015f, -0.0684899f, -0.134349f, 0.184285f, -0.281853f, -0.185581f, 0.347765f, 0.301739f, -0.17311f, -0.0586592f, -0.253355f, 0.135704f, -0.025141f, -0.398732f, 0.176819f, 0.164295f, -0.0964961f, 0.235867f, -0.162969f, -0.365092f, 0.0342f, 0.305977f, 0.192868f, -0.150942f, 0.132645f, 0.220341f, -0.158242f, -0.168888f, 0.103491f, -0.1672f, 0.0127892f, -0.0176947f, 0.230234f, -0.129157f, -0.319789f, -0.188887f, 0.469657f, 0.0599872f, 0.173128f, 0.207658f, -0.257826f, 0.422512f, 0.0304435f, -0.0700446f, 0.00292699f, -0.254277f, -0.0987592f, 0.0906241f, -0.234816f, 0.030083f, -0.00973596f, 0.120037f, -0.317601f, -0.12708f, 0.102184f, 0.0740557f, 0.191923f, 0.215419f, 0.090792f, -0.416807f, -0.211088f, -0.0667573f, -0.042666f, 0.00698668f, -0.187608f, 0.11397f, 0.0282127f, -0.0646227f, -0.0786383f, 0.338181f, -0.158486f, -0.0404435f, -0.148313f, 0.129857f, 0.036822f, 0.214085f, 0.0271965f, 0.0712011f, -0.0142654f, 0.21793f, -0.101845f, -0.0134659f, -0.386899f, -0.253225f, -0.201138f, -0.168f, -0.111886f, 0.149919f, -0.252716f, -0.312013f, -0.494531f, 0.20132f, 0.1455f, -0.0390248f, -0.2497f, 0.0187322f, 0.212352f, 0.176346f, -0.0186768f, -0.0587664f, 0.140535f, 0.130711f, -0.048937f, -0.0333832f, 0.146999f, -0.0536035f, -0.210655f, 0.277771f, 0.136683f, -0.458041f, 0.106529f, -0.152398f, -0.0336699f, 0.151721f, -0.0533765f, -0.168961f, 0.175815f, -0.24888f, 0.0907924f, -0.0133408f, 0.175644f, -0.0246879f, -0.00687254f, 0.185182f, -0.256385f, -0.163355f, -0.256984f, -0.315761f, -0.181824f, -0.0306672f, 0.152588f, -0.0713595f, -0.0721906f, -0.332328f, -0.322698f, -0.00929737f, 0.0818944f, 0.0742352f, -0.166805f, 0.0944738f, -0.167636f, 0.0871255f, 0.0792785f, 0.0354259f, 0.293364f, 0.215322f, 0.272799f, -0.0492312f, -0.269483f, -0.220346f, -0.0881883f, -0.105395f, 0.170322f, 0.0396378f, 0.0702321f, 0.0164758f, -0.0229642f, -0.120222f, -0.00534489f, 0.138123f, -0.141178f, 0.00600586f, 0.0114309f, 0.160046f, -0.0782422f, -0.221657f, -0.222359f, -0.0160572f, -0.0427344f, -0.0939852f, 0.19013f, 0.128755f, 0.0826387f, 0.0959137f, -0.121338f, 0.116419f, -0.0815084f, -0.148231f, -0.102396f, -0.302046f, -0.0136386f, 0.146457f, -0.273797f, -0.0766018f, 0.103427f, -0.0941844f, -0.236219f, -0.106905f, 0.188707f, -0.119065f, -0.109619f, -0.376718f, -0.250552f, -0.119213f, -0.0698239f, 0.0548951f, -0.0984231f, -0.274015f, 0.0116218f, -0.0560431f, -0.0176495f, 0.106143f, 0.191658f, -0.291245f, 0.198666f, -0.1415f, 0.121305f, 0.00787936f, -0.161106f, -0.0559996f, -0.025235f, -0.227444f, 0.124586f, 0.153714f, 0.0339968f, -0.0791643f, -0.204395f, -0.139891f, -0.136988f, -0.182275f, 0.059441f, -0.135392f, -0.0206536f, -0.177236f, -0.0461415f, 0.0707632f, 0.279827f, -0.00538458f, -0.0227107f, -0.0780397f, 0.0654234f, -0.00893195f, -0.111956f, -0.298613f, -0.35016f, 0.0515563f, -0.257037f, 0.139683f, -0.0568245f, -0.18912f, 0.054686f, 0.230304f, 0.0682762f, -0.104554f, -0.267018f, -0.00695182f, -0.42745f, -0.118246f, 0.240312f, -0.0283745f, -0.0410208f, -0.204045f, 0.0536799f, 0.158019f, -0.217282f, -0.255996f, -0.130733f, -0.0754242f, -0.205957f, -0.042236f, -0.237091f, -0.0547223f, 0.318243f, 0.114416f, -0.135642f, -0.0316242f, -0.347453f, 0.101281f, 0.012845f, -0.212307f, 0.135502f, -0.217902f, -0.0520036f, -0.169676f, 0.0155753f, -0.378887f, -0.120698f, 0.278682f, -0.208085f, 0.0188473f, -0.167479f, 0.3823f, -0.262327f, 0.0653896f, 0.0837105f, -0.175588f, -0.172008f, 0.279217f, 0.109674f, -0.0610411f, -0.261709f, -0.12329f, -0.214598f, 0.0449085f, 0.0995378f, 0.123743f, -0.20637f, 0.0336271f, 0.179009f, -0.103686f, -0.0319235f, 0.0991055f, -0.15149f, 0.11167f, -0.0458526f, -0.216373f, 0.0944096f, 0.257391f, -0.138348f, -0.0792016f, 0.236858f, -0.177544f, 0.00179313f, -0.0475954f, -0.325425f, -0.443611f, 0.269018f, 0.0823181f, -0.189893f, -0.00310759f, 0.38809f, -0.0297613f, -0.0772569f, 0.117555f, -0.0146545f, 0.24652f, -0.124915f, -0.0226053f, -0.00351846f, 0.123489f, 0.374272f, 0.00411916f, -0.0530559f, -0.459548f, -0.068397f, 0.351112f, 0.20717f, -0.169705f, -0.191568f, -0.0149611f, -0.200327f, -0.0366789f, -0.000831896f, 0.0329813f, 0.0928899f, -0.217083f, -0.1015f, -0.108356f, -0.155276f, -0.224902f, -0.161009f, -0.195741f, -0.196345f, 0.0696936f, -0.0903938f, 0.0346839f, 0.0342342f, 0.108802f, 0.0224264f, -0.116966f, -0.0868056f, 0.41173f, -0.139741f, 0.0816925f, 0.0206459f, -0.0857387f, -0.0889723f, 0.0252684f, 0.122225f, 0.281325f, -0.0975601f, -0.0890313f, -0.202703f, -0.232747f, -0.16356f, -0.109103f, -0.000627448f, -0.281988f, 0.133017f, 0.199669f, -0.305566f, -0.298914f, -0.120265f, -0.0757179f, -0.298619f, 0.183222f, -0.142981f, 0.0896671f, 0.175904f, 0.0175519f, -0.16538f, -0.0520677f, -0.0670482f, -0.00336189f, -0.223379f, -0.0609024f, -0.27571f, -0.0763393f, 0.295597f, 0.00951529f, 0.127656f, 0.323394f, 0.321615f, 0.184786f, 0.120165f, 0.0270615f, 0.232585f, -0.378135f, 0.00705762f, -0.152686f, -0.25289f, 0.0996134f, 0.0515323f, 0.0147273f, -0.746546f, -0.161453f, 0.0907721f, 0.015299f, -0.0842891f, -0.0432424f, -0.523789f, -0.271467f, 0.0367782f, -0.24899f, 0.207861f, 0.0755162f, 0.173391f, 0.222453f, -0.113516f, -0.24137f, 0.100824f, -0.0606065f, 0.00548546f, 0.0558509f, -0.0575758f, 0.245029f, 0.178345f, 0.143839f, -0.244105f, -0.172561f, -0.338056f, -0.127348f, 0.31021f, -0.115489f, -0.0672434f, -0.0625748f, -0.180578f, -0.227379f, 0.11236f, 0.10313f, 0.166569f, 0.158167f, -0.0638876f, 0.161796f, 0.0371649f, -0.328319f, -0.336786f, -0.211983f, 0.0293737f, -0.115773f, 0.00937545f, -0.246018f, 0.35231f, 0.195708f, 0.0478146f, -0.103948f, -0.106301f, 0.211148f, 0.379093f, 0.416716f, -0.174341f, -0.0187881f, -0.510292f, 0.0914475f, 0.0227487f, -0.100022f, -0.141782f, -0.0911218f, 0.0475971f, -0.244332f, -0.0995312f, -0.209683f, 0.0118146f, -0.333827f, 0.0784702f, 0.152256f, -0.0219116f, 0.138452f, -0.0222356f, -0.0565779f, 0.158486f, -0.24482f, -0.00680468f, 0.197839f, 0.0154492f, -0.00997484f, -0.221046f, -0.0717462f, -0.174674f, -0.121365f, -0.225961f, 0.0249583f, -0.012674f, -0.0461503f, 0.326105f, 0.159991f, 0.0172039f, -0.33672f, -0.0282964f, 0.340149f, -0.102354f, -0.32463f, 0.0968813f, 0.142316f, -0.0457009f, -0.449412f, 0.010723f, 0.234789f, -0.0556804f, 0.13699f, 0.346469f, 0.0485624f, 0.158279f, -0.064993f, -0.103656f, -0.058024f, -0.160934f, -0.154483f, -0.208516f, 0.171658f, -0.105681f, -0.0694062f, -0.430509f, 0.0281458f, -0.145734f, 0.00672611f, -0.263346f, 0.398998f, -0.107815f, 0.0612669f, 0.229766f, -0.0120696f, 0.221093f, -0.172262f, 0.0251312f, -0.0730561f, -0.316371f, 0.188185f, -0.046221f, -0.199885f, 0.119867f, 0.218638f, -0.329465f, -0.324384f, -0.141421f, 0.0441414f, 0.0694141f, 0.255176f, 0.0668514f, -0.0346173f, -0.00232405f, 0.194615f, 0.281005f, -0.0199741f, 0.035436f, 0.130112f, -0.0913306f, 0.329646f, -0.0752686f, 0.109595f, 0.0791733f, -0.0692778f, 0.305223f, -0.203791f, 0.124741f, 0.235692f, 0.0366247f, 0.0102351f, 0.0518547f, -0.0949171f, 0.149521f, -0.0588182f, -0.0129089f, -0.232551f, -0.0145967f, -0.0175136f, -0.0871548f, 0.0947253f, 0.0243044f, -0.0628619f, -0.0492656f, -0.299999f, -0.217482f, -0.140209f, -0.0874081f, 0.0812857f, 0.0233994f, -0.389155f, 0.200308f, -0.131029f, 0.299059f, -0.110117f, -0.289113f, -0.0365339f, -0.233167f, -0.108743f, -0.261932f, -0.159673f, -0.106053f, 0.199852f, -0.106121f, 0.0759607f, 0.472064f, -0.163932f, -0.31763f, 0.0104898f, -0.0210451f, -0.0787518f, 0.155917f, 0.102614f, -0.0425018f, 0.104758f, 0.0857415f, -0.155914f, 0.239264f, -0.144245f, 0.0138479f, -0.196582f, -0.225119f, 0.119061f, 0.0667646f, 0.0661826f, -0.190163f, 0.146226f, 0.0857013f, -0.39394f, 0.00735058f, 0.17735f, 0.244409f, 0.06301f, 0.169556f, -0.178062f, 0.12862f, 0.416925f, 0.0967157f, -0.00742805f, -0.000430865f, 0.151077f, -0.135911f, -0.259045f, -0.367174f, -0.13922f, 0.23333f, -0.219153f, -0.101108f, -0.108457f, -0.0457349f, -0.0666834f, 0.222968f, 0.0223704f, 0.0866147f, 0.0902093f, 0.141006f, 0.230202f, 0.0586954f, 0.26749f, 0.0443342f, 0.424975f, -0.159726f, -0.16713f, -0.10332f, 0.126135f, 0.125221f, 0.220837f, -0.121812f, -0.20649f, 0.161173f, -0.0608088f, 0.751833f, 0.177478f, -0.107548f, 0.0103489f, -0.212986f, 0.177713f, -0.353158f, -0.0872167f, 0.126602f, 0.0343864f, 0.0116791f, 0.0520713f, 0.00361525f, 0.194245f, -0.114742f, 0.020037f, -0.114726f, 0.126897f, 0.039019f, 0.445555f, -0.0193091f, 0.0637067f, -0.128501f, -0.0345904f, 0.0988956f, 0.178154f, -0.0259671f, -0.0257689f, -0.091025f, 0.0684302f, 0.131971f, 0.0459931f, 0.278118f, -0.0376653f, -0.156248f, -0.0789752f, -0.160455f, 0.353474f, 0.0503084f, -0.194132f, 0.124681f, -0.0915903f, 0.117273f, 0.0232574f, -0.0337332f, 0.0175596f, -0.203004f, 0.132872f, -0.200533f, 0.111507f, 0.452312f, 0.0770053f, 0.201455f, -0.267448f, 0.0539831f, -0.187271f, -0.0896206f, -0.0906231f, 0.174122f, 0.00151794f, -0.44301f, -0.038296f, -0.179995f, -0.0717158f, -0.136493f, -0.163935f, -0.0208884f, 0.361374f, 0.219308f, -0.0691815f, 0.20319f, -0.0567725f, 0.272091f, 0.228685f, 0.0701021f, -0.122392f, -0.280011f, 0.0584825f, -0.054271f, 0.00700558f, 0.0727541f, 0.0566045f, -0.197892f, 0.024467f, -0.192888f, -0.0819263f, -0.0201281f, 0.248612f, 0.0373216f, 0.0864792f, 0.283391f, 0.189835f, 0.0781828f, -0.0364776f, -0.00516293f, -0.136433f, -0.0563264f, 0.184467f, -0.103843f, 0.143026f, 0.153189f, -0.0523581f, 0.213201f, 0.144222f, -0.368817f, 0.150695f, 0.0357488f, 0.44351f, -0.167891f, 0.289154f, -0.227813f, -0.321075f, 0.0209248f, 0.00428332f, 0.0969976f, -0.108528f, 0.0284129f, 0.0762366f, 0.107821f, 0.119178f, 0.213134f, -0.061735f, -0.172152f, 0.161251f, -0.0093495f, 0.32946f, 0.219039f, -0.287137f, -0.0450728f, -0.0452836f, -0.212494f, -0.107495f, -0.188338f, 0.0459348f, -0.0377559f, -0.0839975f, -0.00428969f, -0.0232576f, 0.0289588f, 0.164926f, -0.0425852f, -0.0543849f, 0.11673f, 0.158114f, 0.159165f, 0.0941762f, -0.0546047f, 0.237165f, -0.0486095f, -0.146102f, -0.196763f, -0.300198f, 0.0103576f, -0.309314f, -0.122579f, -0.147076f, -0.252579f, -0.00101733f, -0.288208f, -0.22112f, 0.311517f, -0.112453f, 0.129476f, -0.324617f, -0.122931f, -0.123137f, 0.000923043f, -0.117103f, 0.0235433f, -0.271816f, 0.141558f, -0.057682f, -0.120304f, -0.106198f, 0.0265892f, 0.254805f, 0.173984f, -0.266907f, 0.0103511f, -0.0901396f, -0.164973f, -0.226945f, 0.0137655f, 0.0133529f, -0.151525f, 0.256784f, 0.132003f, 0.24828f, -0.0647662f, 0.143638f, 0.0600663f, -0.18841f, -0.0538587f, 0.293896f, -0.103811f, -0.389949f, 0.073149f, 0.102529f, 0.00501293f, 0.315232f, 0.231291f, -0.176493f, -0.140862f, -0.133106f, 0.0161411f, -0.210105f, -0.125995f, -0.0174128f, 0.00283163f, -0.16739f, -0.00931349f, -0.26984f, -0.315777f, -0.248987f, -0.144968f, 0.166966f, 0.169746f, -0.220713f, -0.0312972f, 0.156324f, -0.0407818f, -0.139328f, -0.440265f, -0.0850991f, 0.188168f, 0.106694f, 0.154731f, 0.159212f, -0.200953f, -0.037807f, 0.36218f, -0.123355f, 0.396598f, -0.036044f, -0.071492f, 0.189546f, -0.115796f, -0.0827317f, -0.0544022f, -0.222727f, 0.0347514f, -0.0295377f, 0.101372f, -0.0471416f, 0.218466f, -0.0403298f, -0.0743297f, -0.0607741f, -0.0177818f, -0.0976377f, 0.182365f, -0.26278f, 0.0619466f, 0.335466f, -0.039433f, -0.214658f, -0.00413142f, 0.118605f, -0.0871774f, -0.013047f, -0.0139049f, -0.0566686f, -0.0765434f, -0.0230406f, -0.10839f, -0.164259f, -0.110342f, -0.0567072f, 0.0359454f, 0.161352f, -0.271192f, 0.0673184f, -0.0400687f, -0.0291176f, -0.0505437f, -0.167017f, -0.244246f, 0.0127467f, -0.188325f, -0.171548f, 0.0819252f, -0.184143f, -0.0280647f, -0.175439f, -0.0298673f, 0.0928547f, -0.114129f, 0.160686f, 0.124866f, -0.0799349f, -0.0461555f, -0.0569828f, -0.07544f, -0.254674f, 0.200119f, 0.395232f, -0.104755f, -0.0705698f, -0.168159f, -0.363371f, -0.28949f, -0.157786f, 0.0803677f, 0.253256f, 0.183266f, -0.098531f, -0.217913f, -0.277753f, -0.0412087f, 0.0929791f, 0.0416587f, -0.393095f, -0.194569f, 0.115027f, 0.00374004f, -0.230992f, 0.178052f, 0.11554f, -0.112156f, -0.136296f, 0.147941f, 0.160641f, -0.0988691f, -0.156255f, -0.183889f, -0.198891f, 0.0487718f, -0.10064f, 0.0618672f, 0.129453f, 0.245253f, -0.0609817f, -0.0423283f, 0.209125f, -0.00764558f, -0.207093f, 0.090427f, 0.344761f, -0.210035f, 0.0190305f, 0.177226f, -0.478754f, 0.102217f, -0.0815951f, 0.184152f, -0.0708748f, -0.288034f, 0.212553f, -0.00799922f, 0.0402337f, -0.0634731f, -0.0157662f, 0.0380505f, 0.297157f, -0.102219f, 0.270945f, -0.0364033f, -0.223053f, -0.313967f, -0.256362f, 0.00947424f, 0.1584f, 0.0508195f, 0.127063f, 0.161099f, -0.176547f, -0.06178f, 0.28597f, 0.0661753f, 0.115497f, -0.266217f, 0.207641f, 0.288968f, -0.147556f, 0.00127605f, 0.25902f, 0.0888035f, -0.172818f, 0.0106958f, -0.259761f, -0.0210704f, 0.11259f, 0.118585f, -0.131654f, 0.0889418f, -0.141959f, 0.0686276f, 0.119914f, -0.315549f, -0.106624f, 0.356014f, 0.0856996f, -0.121974f, -0.0188067f, -0.150179f, -0.0971979f, -0.15594f, 0.15098f, -0.111329f, -0.258716f, -0.390928f, 0.105128f, -0.170122f, -0.114675f, -0.119159f, 0.0893049f, 0.0829629f, -0.174787f, -0.020651f, 0.059119f, -0.120192f, -0.192243f, 0.22854f, 0.0524963f, -0.17855f, 0.129937f, 0.0181097f, 0.151171f, -0.104886f, -0.195503f, 0.166139f, -0.132779f, -0.0952646f, -0.238117f, -0.120478f, 0.250843f, 0.0198936f, -0.16349f, 0.00793157f, -0.139775f, 0.0621653f, 0.102649f, 0.0159358f, -0.173693f, 0.000424589f, 0.0499097f, -0.213681f, 0.000829991f, 0.0470139f, -0.104087f, -0.104971f, 0.154429f, -0.0514045f, 0.021679f, 0.0637851f, 0.0263575f, -0.0773971f, 0.0792207f, 0.0289109f, -0.190421f, -0.114429f, -0.0980095f, 0.0697401f, -0.128251f, 0.0884518f, 0.215688f, -0.503879f, -0.0634976f, -0.0256412f, 0.26015f, -0.082886f, 0.0134682f, -0.1982f, 0.203755f, 0.237095f, -0.178199f, -0.110421f, -0.123333f, 0.0505219f, 0.0872408f, 0.134674f, -0.151414f, -0.20904f, 0.0162698f, -0.0281258f, -0.0696107f, 0.0384256f, -0.316446f, -0.0999238f, -0.0215575f, -0.16317f, -0.422117f, -0.401993f, 0.0318225f, 0.179985f, 0.0327708f, 0.237595f, 0.00156168f, 0.190076f, 0.0242173f, -0.149916f, -0.0292071f, -0.0634601f, -0.353369f, 0.191598f, 0.268846f, 0.0919142f, -0.0838139f, 0.041469f, 0.195228f, -0.304184f, -0.0524774f, 0.0257366f, -0.0669865f, 0.0712212f, -0.165418f, -0.0485386f, 0.135066f, 0.178966f, -0.315931f, -0.160149f, 0.198644f, 0.117106f, -0.130927f, -0.254406f, -0.151422f, 0.0451171f, 0.0421164f, -0.120035f, 0.0517401f, 0.0150269f, 0.0749926f, 0.268662f, -0.213943f, -0.0568393f, 0.122747f, 0.154528f, -0.0203424f, -0.0819281f, -0.201227f, 0.155029f, -0.285458f, -0.081893f, 0.141846f, 0.12811f, 0.17107f, -0.262672f, -0.112772f, -0.186101f, -0.257387f, -0.169401f, -0.263488f, 0.370405f, -0.462936f, -0.188147f, -0.332351f, 0.0125391f, 0.215156f, -0.513405f, -0.289543f, -0.443262f, -0.0851796f, -0.157583f, -0.22628f, 0.0640168f, 0.0691075f, 0.169624f, -0.0885214f, 0.0678881f, -0.178388f, 0.11724f, -0.0459048f, 0.0283356f, 0.135743f, 0.21108f, 0.197132f, -0.298021f, -0.127577f, -0.0454851f, -0.295987f, -0.113867f, 0.0862119f, -0.0201072f, -0.290276f, 0.0147507f, -0.247042f, 0.420167f, -0.376847f, 0.203432f, -0.158043f, 0.0810597f, -0.566199f, 0.218187f, -0.318247f, -0.400209f, -0.219316f, -0.0448023f, -0.357235f, -0.26102f, -0.303588f, 0.00072887f, -0.205802f, -0.175228f, -0.0968084f, -0.0754828f, 0.047413f, 0.131296f, -0.112247f, 0.183774f, 0.0840453f, -0.0239575f, 0.0597386f, 0.0678879f, 0.208753f, -0.381256f, 0.0543436f, 0.0230677f, -0.275275f, 0.197361f, 0.318349f, 0.230976f, -0.0475114f, 0.0923948f, 0.270554f, 0.0193927f, -0.0845898f, -0.074267f, -0.185875f, 0.329959f, -0.00671641f, -0.19907f, -0.208328f, 0.089362f, 0.0418336f, -0.054819f, 0.138547f, 0.318673f, 0.300046f, -0.149823f, -0.146389f, -0.178329f, 0.260826f, -0.0446269f, 0.22329f, 0.0233915f, -0.408598f, -0.210239f, -0.0839846f, -0.210073f, -0.203917f, 0.333065f, 0.0654963f, -0.110438f, 0.0976637f, -0.171706f, -0.0396424f, 0.196927f, 0.107167f, -0.526091f, -0.272819f, -0.0621517f, -0.360691f, -0.0803204f, -0.0894648f, -0.215345f, 0.0738301f, -0.165395f, -0.505362f, -0.510371f, 0.495546f, 0.281085f, -0.349988f, -0.102217f, 0.29955f, 0.101695f, 0.216987f, 0.220804f, -0.264158f, 0.208857f, 0.490646f, -0.235616f, 0.0697848f, -0.0828848f, -0.0676367f, -0.137579f, 0.0101326f, -0.0646971f, -0.245946f, -0.0958766f, -0.274682f, -0.467907f, 0.0970127f, -0.254426f, 0.03253f, 0.0122821f, -0.0339391f, -0.364834f, 0.164962f, -0.180429f, -0.378582f, -0.00960021f, -0.228418f, -0.0264938f, 0.0259812f, -0.295185f, -0.357585f, -0.380096f, 0.0525056f, -0.233331f, 0.13387f, 0.105961f, 0.243387f, 0.258494f, 0.0371437f, 0.0632561f, 0.110992f, -0.208983f, -0.185678f, 0.292418f, 0.0286353f, -0.00408131f, 0.102217f, -0.136994f, 0.0622825f, 0.395963f, -0.348133f, -0.223302f, 0.273627f, -0.193556f, 0.338264f, -0.159462f, -0.491361f, 0.161778f, 0.156135f, 0.0641617f, 0.0999903f, -0.529532f, -0.285966f, -0.135576f, 0.236579f, -0.130519f, -0.0764042f, 0.493032f, -0.0883978f, 0.150384f, 0.106229f, 0.02975f, 0.318695f, 0.265394f, 0.130223f, -0.0455514f, -0.115114f, 0.107133f, -0.250837f, -0.0966183f, -0.123644f, 0.342727f, -0.0986773f, -0.0127951f, -0.434297f, -0.0685123f, 0.0869741f, -0.269507f, 0.396272f, 0.305987f, 0.145169f, -0.250147f, 0.0425825f, -0.27173f, -0.0943471f, -0.401917f, -0.0518213f, 0.220465f, -0.00776957f, -0.308669f, 0.151246f, 0.040435f, -0.246938f, 0.161326f, -0.657021f, -0.029663f, -0.156154f, -0.0231731f, -0.0567502f, -0.149723f, -0.157589f, -0.0150168f, 0.143093f, 0.0119803f, -0.282194f, 0.00609295f, 0.133509f, -0.238658f, 0.469585f, -0.15437f, 0.123749f, -0.438739f, -0.235357f, 0.196981f, -0.178078f, 0.179464f, -0.360465f, 0.146581f, -0.0722637f, -0.359168f, -0.0213761f, -0.0719016f, 0.228349f, 0.00872679f, -0.0720084f, 0.0129347f, -0.0606057f, 0.209901f, 0.261428f, 0.318637f, 0.0668506f, 0.262152f, -0.188527f, 0.017398f, 0.238802f, -0.119243f, -0.335925f, -0.0708997f, 0.0131007f, -0.183616f, 0.139393f, 0.229401f, -0.0356139f, 0.117969f, -0.0359544f, -0.0976415f, -0.261919f, -0.132652f, 0.0511542f, 0.0250922f, -0.202336f, 0.156581f, -0.21006f, -0.164616f, 0.49608f, -0.143283f, 0.0167009f, 0.0382558f, -0.192059f, -0.0298086f, 0.16408f, 0.0327906f, -0.0112998f, 0.107964f, -0.805638f, 0.341425f, 0.104876f, -0.379418f, -0.16812f, 0.0873235f, -0.591176f, 0.347932f, -0.092094f, -0.0951583f, -0.079231f, -0.102f, 0.430467f, -0.0629909f, 0.103386f, -0.394243f, 0.0921294f, -0.303268f, -0.0878409f, 0.0222568f, 0.177541f, 0.05269f, -0.245371f, -0.394972f, 0.169095f, -0.0322228f, 0.0854907f, -0.277685f, 0.169834f, -0.157112f, -0.125601f, -0.123642f, 0.287326f, -0.11461f, -0.0400871f, 0.0935002f, -0.239499f, -0.00406349f, 0.116467f, 0.195647f, 0.0169376f, 0.108949f, -0.256211f, 0.199251f, -0.22503f, 0.183724f, -0.0459538f, -0.0573185f, -0.135267f, -0.17563f, -0.105615f, -0.216777f, 0.136895f, -0.131041f, 0.143448f, 0.116321f, 0.341659f, 0.04663f, -0.138582f, 0.113484f, 0.000281706f, 0.183075f, -0.205364f, 0.217528f, -0.0325774f, -0.0481017f, -0.00686094f, -0.13989f, 0.0995296f, -0.476637f, 0.120914f, 0.178213f, 0.11095f, -0.154424f, 0.169363f, 0.288232f, 0.105104f, 0.440652f, 0.0404736f, -0.163574f, -0.0724218f, -0.174028f, 0.137715f, 0.255176f, -0.133188f, -0.10359f, -0.150963f, -0.0850369f, 0.162774f, -0.00694466f, -0.523244f, -0.400547f, -0.11478f, 0.0923003f, 0.00922158f, 0.165169f, 0.114364f, 0.396211f, 0.0621255f, 0.413189f, 0.0759307f, -0.148507f, 0.243803f, 0.066523f, -0.0649491f, 0.0867938f, 0.134912f, -0.44741f, 0.133082f, 0.0237098f, -0.327549f, -0.0172026f, -0.104394f, -0.204443f, 0.0804548f, -0.25669f, -0.280141f, 0.184742f, -0.182915f, -0.301567f, -0.132653f, -0.362342f, -0.0867399f, -0.248574f, 0.018783f, -0.0144377f, -0.193732f, -0.0568637f, 0.0212203f, 0.145462f, -0.04467f, 0.188485f, -0.0192423f, -0.162427f, -0.431459f, -0.316196f, -0.0197834f, 0.142554f, 0.161446f, -0.204556f, 0.10123f, 0.136505f, -0.0421437f, 0.0382004f, -0.0105015f, 0.26352f, 0.128504f, 0.220373f, -0.0459283f, -0.0794771f, 0.126873f, 0.102329f, 0.160555f, -0.344226f, 0.11844f, -0.152884f, -0.369259f, -0.732194f, -0.285659f, 0.27297f, 0.0434638f, -0.115029f, -0.178296f, -0.010171f, -0.108856f, 0.243398f, -0.120003f, 0.0617609f, -0.0377697f, 0.0882623f, 0.317397f, -0.142634f, 0.0613519f, 0.0625693f, 0.29804f, -0.276065f, -0.283755f, -0.0586926f, 0.0609932f, 0.172328f, 0.380084f, 0.0817355f, -0.0889897f, 0.16975f, -0.0727911f, 0.558122f, 0.129139f, 0.0967012f, -0.00808779f, -0.281368f, 0.229454f, -0.0657459f, 0.110639f, 0.0990761f, -0.0734602f, -0.124961f, 0.120193f, 0.0117927f, -0.00164934f, -0.068704f, 0.0934271f, -0.150389f, 0.267866f, 0.111924f, 0.22073f, -0.0826743f, 0.0181881f, 0.164808f, 0.08553f, 0.0064627f, -0.100066f, -0.196847f, -0.260685f, -0.161078f, -0.0889612f, 0.267343f, -0.183189f, 0.099878f, 0.206179f, -0.134037f, -0.0753274f, 0.073361f, 0.123856f, -0.11014f, -0.23651f, -0.079332f, -0.179564f, -0.0953625f, 0.0816014f, -0.0153009f, 0.0216921f, -0.214616f, 0.0721763f, -0.337629f, 0.113998f, 0.30383f, 0.213949f, 0.0748996f, -0.154083f, 0.082343f, 0.0915755f, -0.165324f, -0.161256f, -0.0732527f, -0.0771391f, -0.179746f, 0.148814f, -0.229269f, -0.00684043f, -0.0877735f, -0.232043f, 0.0358457f, 0.0860737f, -0.016937f, 0.0052483f, 0.203986f, -0.0327027f, 0.0828824f, 0.0515511f, -0.0446207f, 0.0495584f, 0.06504f, -0.0502581f, -0.0989093f, -0.242931f, -0.161322f, 0.0412978f, 0.0882053f, -0.0868244f, 0.0333411f, 0.0033292f, 0.0956053f, 0.224343f, -0.0605414f, 0.200487f, 0.139677f, 0.0741737f, 0.131144f, -0.0156217f, 0.119855f, -0.0672591f, 0.0646749f, 0.0212678f, -0.0612522f, 0.127438f, 0.165742f, 0.149455f, 0.120228f, 0.245928f, -0.536011f, -0.0221017f, 0.0210271f, 0.196356f, 0.0401149f, -0.00733165f, -0.270396f, -0.00968083f, -0.0709557f, -0.120717f, 0.140489f, 0.0935343f, -0.172696f, 0.301435f, -0.0935873f, -0.0353977f, 0.0539549f, -0.0338224f, -0.239903f, -0.0209894f, -0.17114f, 0.267786f, 0.20251f, -0.0980189f, -0.04852f, -0.207071f, -0.253257f, -0.0564701f, -0.0518127f, -0.0537929f, -0.390881f, 0.0470064f, 0.0306878f, 0.104422f, 0.150282f, 0.0117885f, -0.093087f, -0.0377776f, -0.0618607f, -0.0869537f, 0.137726f, 0.0903727f, 0.0346921f, 0.0111f, -0.241767f, -0.201946f, 0.09471f, -0.156048f, -0.0978701f, -0.239229f, -0.0308635f, -0.122071f, -0.433478f, -0.0514787f, -0.182472f, -0.181954f, 0.0416541f, -0.0883368f, 0.157402f, -0.462445f, -0.103609f, -0.160994f, -0.0133393f, -0.096508f, 0.100438f, 0.00418135f, -0.0122206f, 0.172408f, 0.0437795f, -0.172367f, -0.0189107f, -0.0304423f, 0.0780768f, -0.116228f, -0.0305065f, -0.0440305f, 0.00286725f, -0.157059f, 0.132452f, -0.101883f, -0.138483f, 0.00723927f, 0.0342281f, 0.206677f, -0.0770022f, 0.0227105f, -0.111016f, -0.170921f, 0.055846f, 0.246527f, -0.142554f, -0.380108f, -0.0346903f, 0.138706f, -0.176424f, 0.112018f, 0.0435032f, -0.127998f, -0.169885f, -0.0509104f, -0.0870096f, -0.535699f, -0.0638343f, -0.0311837f, 0.078099f, -0.0342351f, 0.0749799f, 0.3883f, -0.154977f, 0.224178f, 0.0550229f, 0.107375f, 0.33049f, 0.0969202f, 0.0756623f, -0.233299f, -0.104361f, 0.442374f, 0.0844492f, 0.0705411f, -0.140545f, -0.0663961f, -0.0728755f, -0.0621244f, -0.0819853f, -0.112193f, -0.176114f, -0.0938139f, -0.214228f, 0.0190762f, -0.213562f, -0.190233f, 0.133314f, -0.148665f, 0.0915799f, 0.187216f, -0.284974f, 0.00733069f, 0.0156916f, 0.015107f, 0.0318654f, 0.346104f, -0.124227f, 0.137341f, 0.0592528f, -0.387351f, -0.221991f, 0.360592f, -0.0931174f, -0.0492834f, 0.199867f, -0.0852204f, 0.150399f, 0.0413833f, 0.235906f, -0.0706518f, -0.166653f, -0.0586646f, -0.109711f, -0.0823073f, 0.257342f, -0.224644f, -0.430506f, -0.105588f, 0.0250296f, -0.042311f, -0.0996558f, -0.115579f, -0.286667f, -0.154598f, -0.137322f, 0.176363f, 0.088216f, 0.161978f, 0.255623f, -0.0123169f, -0.00387241f, -0.318043f, -0.21894f, -0.412465f, -0.415855f, 0.255024f, 0.361044f, 0.0300423f, -0.119439f, 0.0657428f, -0.238206f, 0.340391f, 0.201176f, 0.102395f, 0.216324f, -0.121531f, 0.265799f, 0.0327802f, 0.194072f, -0.0792337f, 0.456093f, 0.0971469f, -0.0170099f, -0.0294468f, -0.318039f, -0.242527f, -0.1083f, 0.295943f, -0.0284033f, -0.156199f, -0.20311f, -0.075091f, 0.528829f, -0.165604f, 0.0532403f, 0.0505752f, -0.413034f, 0.175453f, -0.0970195f, -0.029351f, 0.103333f, 0.271092f, 0.0511197f, -0.182135f, 0.112932f, -0.32439f, 0.294457f, -0.0818895f, 0.0914322f, 0.185025f, 0.0543957f, -0.0167575f, 0.504046f, -0.0647153f, -0.166975f, 0.0248059f, 0.0379442f, 0.0980366f, -0.178135f, 0.143822f, 0.45732f, -0.0912428f, -0.179338f, 0.349726f, -0.0596313f, -0.299861f, 0.112567f, 0.0666395f, 0.345303f, 0.164124f, -0.00265316f, -0.0732412f, 0.348079f, -0.249414f, 0.0465329f, 0.0693596f, 0.0799214f, 0.000123214f, 0.180679f, 0.0912923f, -0.300121f, -0.288428f, 0.150135f, 0.112936f, 0.104813f, -0.0555879f, -0.00205972f, -0.0251151f, -0.0788264f, -0.016778f, -0.110796f, -0.083048f, -0.212734f, 0.288568f, -0.114228f, -0.113358f, 0.110789f, 0.118645f, 0.133466f, -0.0298552f, -0.241374f, 0.157257f, 0.0861554f, -0.0909277f, 0.00156177f, 0.106539f, -0.209104f, -0.106974f, 0.0203283f, -0.18111f, -0.311602f, -0.00371812f, 0.0711113f, -0.206721f, 0.286076f, 0.139713f, 0.116621f, 0.182792f, 0.0246107f, -0.17972f, 0.041917f, 0.0724635f, 0.266344f, 0.0989191f, 0.0723898f, 0.0257298f, 0.104898f, 0.0681826f, -0.0704781f, 0.00212139f, -0.363547f, 0.0274255f, -0.106295f, -0.363965f, 0.127051f, -0.0575343f, -0.200952f, -0.0666189f, -0.139465f, -0.0171747f, 0.253794f, -0.258602f, -0.166356f, -0.107649f, 0.267331f, 0.104521f, -0.020921f, -0.0780469f, 0.125002f, 0.0202556f, -0.0899181f, -0.126559f, -0.297855f, 0.121539f, -0.0671643f, -0.0444782f, 0.334408f, 0.0882725f, -0.0879492f, -0.00277655f, -0.0616985f, 0.0564236f, -0.11618f, -0.22836f, 0.112953f, 0.176082f, 0.09988f, -0.00635589f, -0.114234f, 0.241135f, 0.0966775f, -0.0961065f, 0.137214f, -0.0832349f, -0.54299f, -0.2335f, -0.033801f, -0.11505f, -0.366386f, -0.238099f, -0.0951656f, 0.263106f, 0.129292f, -0.14762f, 0.0700404f, 0.0195349f, -0.286227f, -0.273371f, 0.0587288f, -0.257152f, -0.136248f, -0.13336f, -0.248086f, 0.273973f, -0.302625f, -0.085841f, -0.0839808f, -0.130464f, 0.252972f, -0.0415149f, -0.0695038f, -0.091557f, -0.262375f, -0.0645785f, 0.188566f, -0.202261f, -0.112712f, 0.00631479f, 0.0132917f, -0.0130675f, -0.302285f, 0.0556928f, -0.0211812f, -0.0555546f, 0.0291112f, 0.168815f, 0.143654f, -0.00564186f, -0.0614248f, -0.0939664f, 0.0959667f, -0.209823f, -0.103889f, -0.206011f, -0.0394793f, 0.0545815f, -0.0348762f, -0.132075f, -0.0489917f, -0.177563f, -0.164591f, -0.0174372f, -0.276844f, -0.132214f, -0.236278f, -0.0614254f, -0.230962f, -0.409367f, -0.08959f, 0.182197f, -0.341314f, -0.0645579f, -0.0161434f, -0.166644f, -0.0784324f, -0.387537f, 0.236617f, -0.115318f, -0.11315f, -0.109817f, -0.0949309f, -0.253715f, -0.254404f, -0.0876592f, -0.243118f, -0.219172f, 0.0341202f, 0.0203343f, 0.0435131f, -0.0266338f, 0.140304f, -0.20669f, -0.130739f, 0.0213059f, 0.182793f, -0.0711616f, -0.165651f, -0.212373f, -0.0972764f, -0.284464f, -0.0834676f, -0.129573f, -0.133945f, 0.0684521f, -0.133913f, 0.165726f, -0.176839f, -0.0940447f, -0.145421f, -0.0471074f, 0.00950449f, 0.0308656f, -0.00761046f, -0.19397f, -0.161623f, 0.10975f, -0.0398157f, 0.00168868f, 0.0626417f, -0.118388f, -0.134741f, -0.243707f, 0.146451f, -0.165854f, 0.0585878f, 0.0269307f, 0.163195f, -0.197056f, 0.0438799f, -0.152668f, -0.178631f, -0.167278f, 0.0258257f, -0.22958f, -0.101918f, 0.0360034f, -0.165612f, -0.112482f, -0.419959f, -0.369384f, 0.0468117f, 0.202511f, 0.161559f, 0.0360435f, -0.211843f, 0.0480519f, -0.252478f, -0.0951382f, 0.100791f, -0.379245f, -0.129869f, -0.036501f, 0.0685223f, 0.0247177f, -0.0751386f, -0.12451f, 0.244585f, -0.0103249f, -0.346383f, -0.300614f, 0.230366f, -0.187795f, -0.0326416f, 0.0735751f, -0.0136039f, -0.0219528f, 0.0629145f, -0.0308739f, -0.101514f, -0.169444f, 0.058706f, -0.133274f, -0.200294f, -0.372511f, -0.214898f, -0.184366f, 0.253648f, -0.0362453f, 0.0618937f, 0.0838244f, -0.0386255f, 0.129191f, -0.147435f, -0.180809f, -0.0797491f, -0.286544f, -0.273005f, 0.116222f, -0.255255f, -0.0504643f, -0.0567216f, -0.0204081f, 0.206331f, -0.225266f, -0.211665f, -0.259216f, -0.0676753f, -0.176153f, 0.285802f, -0.00560349f, -0.0253936f, -0.182537f, -0.344487f, -0.341246f, -0.171879f, 0.24462f, 0.015354f, -0.0255803f, -0.0855239f, -0.151488f, -0.0329621f, 0.311794f, 0.0889872f, -0.142655f, -0.00124048f, 0.0175189f, 0.0459686f, 0.279491f, -0.237445f, 0.0570048f, -0.00665275f, -0.0558817f, 0.0731352f, 0.0291331f, 0.0918153f, 0.0276626f, -0.135103f, -0.303909f, 0.0283329f, -0.203482f, -0.0849922f, -0.284485f, -0.214908f, 0.0836636f, -0.219738f, 0.136157f, 0.0332432f, -0.143305f, 0.0283252f, -0.178703f, -0.0742534f, -0.153174f, 0.02235f, -0.0753622f, -0.210102f, -0.0915751f, -0.0189732f, -0.239039f, -0.135349f, -0.104589f, -0.0658414f, -0.183206f, -0.123006f, 0.0835748f, -0.0703047f, -0.207461f, -0.274129f, -0.225327f, -0.113485f, 0.13316f, 0.0295303f, -0.0958281f};
+ model->setOperandValue(op84, op84_init, sizeof(float) * 2816);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op86, op2, op1, b87, b88, b89, b90}, {op0});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op0, op29, op28, b91, b92, b93, b94, b95}, {op27});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op27, op32, op31, b96, b97, b98, b99}, {op30});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op30, op35, op34, b100, b101, b102, b103, b104}, {op33});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op33, op38, op37, b105, b106, b107, b108}, {op36});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op36, op41, op40, b109, b110, b111, b112, b113}, {op39});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op39, op44, op43, b114, b115, b116, b117}, {op42});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op42, op47, op46, b118, b119, b120, b121, b122}, {op45});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op45, op50, op49, b123, b124, b125, b126}, {op48});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op48, op53, op52, b127, b128, b129, b130, b131}, {op51});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op51, op56, op55, b132, b133, b134, b135}, {op54});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op54, op59, op58, b136, b137, b138, b139, b140}, {op57});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op57, op62, op61, b141, b142, b143, b144}, {op60});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op60, op65, op64, b145, b146, b147, b148, b149}, {op63});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op63, op68, op67, b150, b151, b152, b153}, {op66});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op66, op71, op70, b154, b155, b156, b157, b158}, {op69});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op69, op74, op73, b159, b160, b161, b162}, {op72});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op72, op77, op76, b163, b164, b165, b166, b167}, {op75});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op75, op80, op79, b168, b169, b170, b171}, {op78});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op78, op5, op4, b172, b173, b174, b175, b176}, {op3});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op3, op8, op7, b177, b178, b179, b180}, {op6});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op6, op11, op10, b181, b182, b183, b184, b185}, {op9});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op9, op14, op13, b186, b187, b188, b189}, {op12});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op12, op17, op16, b190, b191, b192, b193, b194}, {op15});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op15, op20, op19, b195, b196, b197, b198}, {op18});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op18, op23, op22, b199, b200, b201, b202, b203}, {op21});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op21, op26, op25, b204, b205, b206, b207}, {op24});
+ model->addOperation(ANEURALNETWORKS_AVERAGE_POOL_2D, {op24, b208, b209, b210, b211, b212, b213}, {op81});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op81, op84, op83, b214, b215, b216, b217}, {op82});
+ model->addOperation(ANEURALNETWORKS_LOGISTIC, {op82}, {op85});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op86},
+ {op85});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/mobilenet_quantized.model.cpp b/runtimes/tests/neural_networks_test/generated/models/mobilenet_quantized.model.cpp
new file mode 100644
index 000000000..0f7692336
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/mobilenet_quantized.model.cpp
@@ -0,0 +1,719 @@
+// Generated file (from: mobilenet_quantized.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::FLOAT32, {});
+ OperandType type0(Type::INT32, {});
+ OperandType type70(Type::TENSOR_INT32, {1001}, 0.000139550233143, 0);
+ OperandType type20(Type::TENSOR_INT32, {1024}, 0.000338657468092, 0);
+ OperandType type24(Type::TENSOR_INT32, {1024}, 0.000470138824312, 0);
+ OperandType type22(Type::TENSOR_INT32, {1024}, 0.00115174765233, 0);
+ OperandType type39(Type::TENSOR_INT32, {128}, 0.000212795624975, 0);
+ OperandType type42(Type::TENSOR_INT32, {128}, 0.000274334714049, 0);
+ OperandType type35(Type::TENSOR_INT32, {128}, 0.00031740454142, 0);
+ OperandType type37(Type::TENSOR_INT32, {128}, 0.00105069368146, 0);
+ OperandType type49(Type::TENSOR_INT32, {256}, 0.000161647229106, 0);
+ OperandType type52(Type::TENSOR_INT32, {256}, 0.000237506290432, 0);
+ OperandType type45(Type::TENSOR_INT32, {256}, 0.000254691782175, 0);
+ OperandType type47(Type::TENSOR_INT32, {256}, 0.000832252670079, 0);
+ OperandType type73(Type::TENSOR_INT32, {2}, 0, 0);
+ OperandType type5(Type::TENSOR_INT32, {32}, 0.000220113914111, 0);
+ OperandType type26(Type::TENSOR_INT32, {32}, 0.0132417660207, 0);
+ OperandType type66(Type::TENSOR_INT32, {512}, 0.000138872928801, 0);
+ OperandType type58(Type::TENSOR_INT32, {512}, 0.000161869538715, 0);
+ OperandType type10(Type::TENSOR_INT32, {512}, 0.000162604788784, 0);
+ OperandType type17(Type::TENSOR_INT32, {512}, 0.0001660654234, 0);
+ OperandType type54(Type::TENSOR_INT32, {512}, 0.000187459911103, 0);
+ OperandType type14(Type::TENSOR_INT32, {512}, 0.000200755792321, 0);
+ OperandType type62(Type::TENSOR_INT32, {512}, 0.000229732482694, 0);
+ OperandType type12(Type::TENSOR_INT32, {512}, 0.000354939606041, 0);
+ OperandType type64(Type::TENSOR_INT32, {512}, 0.000396122573875, 0);
+ OperandType type8(Type::TENSOR_INT32, {512}, 0.000443405413534, 0);
+ OperandType type56(Type::TENSOR_INT32, {512}, 0.000600085710175, 0);
+ OperandType type60(Type::TENSOR_INT32, {512}, 0.000628261826932, 0);
+ OperandType type29(Type::TENSOR_INT32, {64}, 0.000249237316893, 0);
+ OperandType type32(Type::TENSOR_INT32, {64}, 0.00194196344819, 0);
+ OperandType type69(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 1001}, 0.14927123487, 69);
+ OperandType type68(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 1024}, 0.023528477177, 0);
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {1, 1001}, 0.00390625, 0);
+ OperandType type72(Type::TENSOR_QUANT8_ASYMM, {1, 1001}, 0.14927123487, 69);
+ OperandType type4(Type::TENSOR_QUANT8_ASYMM, {1, 112, 112, 32}, 0.023528477177, 0);
+ OperandType type28(Type::TENSOR_QUANT8_ASYMM, {1, 112, 112, 64}, 0.023528477177, 0);
+ OperandType type51(Type::TENSOR_QUANT8_ASYMM, {1, 14, 14, 256}, 0.023528477177, 0);
+ OperandType type7(Type::TENSOR_QUANT8_ASYMM, {1, 14, 14, 512}, 0.023528477177, 0);
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {1, 224, 224, 3}, 0.0078125, 128);
+ OperandType type41(Type::TENSOR_QUANT8_ASYMM, {1, 28, 28, 128}, 0.023528477177, 0);
+ OperandType type44(Type::TENSOR_QUANT8_ASYMM, {1, 28, 28, 256}, 0.023528477177, 0);
+ OperandType type23(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 1024}, 0.0489512197673, 174);
+ OperandType type43(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 128}, 0.0116596883163, 139);
+ OperandType type38(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 128}, 0.0446562543511, 115);
+ OperandType type53(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 256}, 0.0100944191217, 116);
+ OperandType type48(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 256}, 0.0353721417487, 71);
+ OperandType type27(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 32}, 0.562797427177, 49);
+ OperandType type18(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 512}, 0.00705806072801, 111);
+ OperandType type13(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 512}, 0.0150855332613, 132);
+ OperandType type65(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 512}, 0.0168358776718, 132);
+ OperandType type9(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 512}, 0.0188454780728, 140);
+ OperandType type57(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 512}, 0.025504656136, 118);
+ OperandType type61(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 512}, 0.026702189818, 106);
+ OperandType type33(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 64}, 0.08253672719, 46);
+ OperandType type34(Type::TENSOR_QUANT8_ASYMM, {1, 56, 56, 128}, 0.023528477177, 0);
+ OperandType type31(Type::TENSOR_QUANT8_ASYMM, {1, 56, 56, 64}, 0.023528477177, 0);
+ OperandType type19(Type::TENSOR_QUANT8_ASYMM, {1, 7, 7, 1024}, 0.023528477177, 0);
+ OperandType type16(Type::TENSOR_QUANT8_ASYMM, {1, 7, 7, 512}, 0.023528477177, 0);
+ OperandType type71(Type::TENSOR_QUANT8_ASYMM, {1001, 1, 1, 1024}, 0.00593112036586, 66);
+ OperandType type25(Type::TENSOR_QUANT8_ASYMM, {1024, 1, 1, 1024}, 0.0199816934764, 126);
+ OperandType type21(Type::TENSOR_QUANT8_ASYMM, {1024, 1, 1, 512}, 0.0143935140222, 139);
+ OperandType type40(Type::TENSOR_QUANT8_ASYMM, {128, 1, 1, 128}, 0.00904417410493, 122);
+ OperandType type36(Type::TENSOR_QUANT8_ASYMM, {128, 1, 1, 64}, 0.0134902289137, 81);
+ OperandType type46(Type::TENSOR_QUANT8_ASYMM, {256, 1, 1, 128}, 0.0108248302713, 123);
+ OperandType type50(Type::TENSOR_QUANT8_ASYMM, {256, 1, 1, 256}, 0.0068702804856, 124);
+ OperandType type6(Type::TENSOR_QUANT8_ASYMM, {32, 3, 3, 3}, 0.0281745810062, 112);
+ OperandType type55(Type::TENSOR_QUANT8_ASYMM, {512, 1, 1, 256}, 0.00796736311167, 146);
+ OperandType type67(Type::TENSOR_QUANT8_ASYMM, {512, 1, 1, 512}, 0.0059023341164, 116);
+ OperandType type59(Type::TENSOR_QUANT8_ASYMM, {512, 1, 1, 512}, 0.00687972875312, 110);
+ OperandType type11(Type::TENSOR_QUANT8_ASYMM, {512, 1, 1, 512}, 0.00691097788513, 136);
+ OperandType type15(Type::TENSOR_QUANT8_ASYMM, {512, 1, 1, 512}, 0.00853246077895, 115);
+ OperandType type63(Type::TENSOR_QUANT8_ASYMM, {512, 1, 1, 512}, 0.00976401846856, 160);
+ OperandType type30(Type::TENSOR_QUANT8_ASYMM, {64, 1, 1, 32}, 0.0105930073187, 138);
+ // Phase 1, operands
+ auto b104 = model->addOperand(&type0);
+ auto b105 = model->addOperand(&type0);
+ auto b106 = model->addOperand(&type0);
+ auto b107 = model->addOperand(&type0);
+ auto b108 = model->addOperand(&type0);
+ auto b109 = model->addOperand(&type0);
+ auto b110 = model->addOperand(&type0);
+ auto b111 = model->addOperand(&type0);
+ auto b112 = model->addOperand(&type0);
+ auto b113 = model->addOperand(&type0);
+ auto b114 = model->addOperand(&type0);
+ auto b115 = model->addOperand(&type0);
+ auto b116 = model->addOperand(&type0);
+ auto b117 = model->addOperand(&type0);
+ auto b118 = model->addOperand(&type0);
+ auto b119 = model->addOperand(&type0);
+ auto b120 = model->addOperand(&type0);
+ auto b121 = model->addOperand(&type0);
+ auto b122 = model->addOperand(&type0);
+ auto b123 = model->addOperand(&type0);
+ auto b124 = model->addOperand(&type0);
+ auto b125 = model->addOperand(&type0);
+ auto b126 = model->addOperand(&type0);
+ auto b127 = model->addOperand(&type0);
+ auto b128 = model->addOperand(&type0);
+ auto b129 = model->addOperand(&type0);
+ auto b130 = model->addOperand(&type0);
+ auto b131 = model->addOperand(&type0);
+ auto b132 = model->addOperand(&type0);
+ auto b133 = model->addOperand(&type0);
+ auto b134 = model->addOperand(&type0);
+ auto b135 = model->addOperand(&type0);
+ auto b136 = model->addOperand(&type0);
+ auto b137 = model->addOperand(&type0);
+ auto b138 = model->addOperand(&type0);
+ auto b139 = model->addOperand(&type0);
+ auto b140 = model->addOperand(&type0);
+ auto b141 = model->addOperand(&type0);
+ auto b142 = model->addOperand(&type0);
+ auto b143 = model->addOperand(&type0);
+ auto b144 = model->addOperand(&type0);
+ auto b145 = model->addOperand(&type0);
+ auto b146 = model->addOperand(&type0);
+ auto b147 = model->addOperand(&type0);
+ auto b148 = model->addOperand(&type0);
+ auto b149 = model->addOperand(&type0);
+ auto b150 = model->addOperand(&type0);
+ auto b151 = model->addOperand(&type0);
+ auto b152 = model->addOperand(&type0);
+ auto b153 = model->addOperand(&type0);
+ auto b154 = model->addOperand(&type0);
+ auto b155 = model->addOperand(&type0);
+ auto b156 = model->addOperand(&type0);
+ auto b157 = model->addOperand(&type0);
+ auto b158 = model->addOperand(&type0);
+ auto b159 = model->addOperand(&type0);
+ auto b160 = model->addOperand(&type0);
+ auto b161 = model->addOperand(&type0);
+ auto b162 = model->addOperand(&type0);
+ auto b163 = model->addOperand(&type0);
+ auto b164 = model->addOperand(&type0);
+ auto b165 = model->addOperand(&type0);
+ auto b166 = model->addOperand(&type0);
+ auto b167 = model->addOperand(&type0);
+ auto b168 = model->addOperand(&type0);
+ auto b169 = model->addOperand(&type0);
+ auto b170 = model->addOperand(&type0);
+ auto b171 = model->addOperand(&type0);
+ auto b172 = model->addOperand(&type0);
+ auto b173 = model->addOperand(&type0);
+ auto b174 = model->addOperand(&type0);
+ auto b175 = model->addOperand(&type0);
+ auto b176 = model->addOperand(&type0);
+ auto b177 = model->addOperand(&type0);
+ auto b178 = model->addOperand(&type0);
+ auto b179 = model->addOperand(&type0);
+ auto b180 = model->addOperand(&type0);
+ auto b181 = model->addOperand(&type0);
+ auto b182 = model->addOperand(&type0);
+ auto b183 = model->addOperand(&type0);
+ auto b184 = model->addOperand(&type0);
+ auto b185 = model->addOperand(&type0);
+ auto b186 = model->addOperand(&type0);
+ auto b187 = model->addOperand(&type0);
+ auto b188 = model->addOperand(&type0);
+ auto b189 = model->addOperand(&type0);
+ auto b190 = model->addOperand(&type0);
+ auto b191 = model->addOperand(&type0);
+ auto b192 = model->addOperand(&type0);
+ auto b193 = model->addOperand(&type0);
+ auto b194 = model->addOperand(&type0);
+ auto b195 = model->addOperand(&type0);
+ auto b196 = model->addOperand(&type0);
+ auto b197 = model->addOperand(&type0);
+ auto b198 = model->addOperand(&type0);
+ auto b199 = model->addOperand(&type0);
+ auto b200 = model->addOperand(&type0);
+ auto b201 = model->addOperand(&type0);
+ auto b202 = model->addOperand(&type0);
+ auto b203 = model->addOperand(&type0);
+ auto b204 = model->addOperand(&type0);
+ auto b205 = model->addOperand(&type0);
+ auto b206 = model->addOperand(&type0);
+ auto b207 = model->addOperand(&type0);
+ auto b208 = model->addOperand(&type0);
+ auto b209 = model->addOperand(&type0);
+ auto b210 = model->addOperand(&type0);
+ auto b211 = model->addOperand(&type0);
+ auto b212 = model->addOperand(&type0);
+ auto b213 = model->addOperand(&type0);
+ auto b214 = model->addOperand(&type0);
+ auto b215 = model->addOperand(&type0);
+ auto b216 = model->addOperand(&type0);
+ auto b217 = model->addOperand(&type0);
+ auto b218 = model->addOperand(&type0);
+ auto b219 = model->addOperand(&type0);
+ auto b220 = model->addOperand(&type0);
+ auto b221 = model->addOperand(&type0);
+ auto b222 = model->addOperand(&type0);
+ auto b223 = model->addOperand(&type0);
+ auto b224 = model->addOperand(&type0);
+ auto b225 = model->addOperand(&type0);
+ auto b226 = model->addOperand(&type0);
+ auto b227 = model->addOperand(&type0);
+ auto b228 = model->addOperand(&type0);
+ auto b229 = model->addOperand(&type0);
+ auto b230 = model->addOperand(&type0);
+ auto b231 = model->addOperand(&type0);
+ auto b232 = model->addOperand(&type0);
+ auto b233 = model->addOperand(&type0);
+ auto b234 = model->addOperand(&type0);
+ auto b235 = model->addOperand(&type1);
+ auto op88 = model->addOperand(&type2);
+ auto op85 = model->addOperand(&type3);
+ auto op0 = model->addOperand(&type4);
+ auto op1 = model->addOperand(&type5);
+ auto op2 = model->addOperand(&type6);
+ auto op3 = model->addOperand(&type7);
+ auto op4 = model->addOperand(&type8);
+ auto op5 = model->addOperand(&type9);
+ auto op6 = model->addOperand(&type7);
+ auto op7 = model->addOperand(&type10);
+ auto op8 = model->addOperand(&type11);
+ auto op9 = model->addOperand(&type7);
+ auto op10 = model->addOperand(&type12);
+ auto op11 = model->addOperand(&type13);
+ auto op12 = model->addOperand(&type7);
+ auto op13 = model->addOperand(&type14);
+ auto op14 = model->addOperand(&type15);
+ auto op15 = model->addOperand(&type16);
+ auto op16 = model->addOperand(&type17);
+ auto op17 = model->addOperand(&type18);
+ auto op18 = model->addOperand(&type19);
+ auto op19 = model->addOperand(&type20);
+ auto op20 = model->addOperand(&type21);
+ auto op21 = model->addOperand(&type19);
+ auto op22 = model->addOperand(&type22);
+ auto op23 = model->addOperand(&type23);
+ auto op24 = model->addOperand(&type19);
+ auto op25 = model->addOperand(&type24);
+ auto op26 = model->addOperand(&type25);
+ auto op27 = model->addOperand(&type4);
+ auto op28 = model->addOperand(&type26);
+ auto op29 = model->addOperand(&type27);
+ auto op30 = model->addOperand(&type28);
+ auto op31 = model->addOperand(&type29);
+ auto op32 = model->addOperand(&type30);
+ auto op33 = model->addOperand(&type31);
+ auto op34 = model->addOperand(&type32);
+ auto op35 = model->addOperand(&type33);
+ auto op36 = model->addOperand(&type34);
+ auto op37 = model->addOperand(&type35);
+ auto op38 = model->addOperand(&type36);
+ auto op39 = model->addOperand(&type34);
+ auto op40 = model->addOperand(&type37);
+ auto op41 = model->addOperand(&type38);
+ auto op42 = model->addOperand(&type34);
+ auto op43 = model->addOperand(&type39);
+ auto op44 = model->addOperand(&type40);
+ auto op45 = model->addOperand(&type41);
+ auto op46 = model->addOperand(&type42);
+ auto op47 = model->addOperand(&type43);
+ auto op48 = model->addOperand(&type44);
+ auto op49 = model->addOperand(&type45);
+ auto op50 = model->addOperand(&type46);
+ auto op51 = model->addOperand(&type44);
+ auto op52 = model->addOperand(&type47);
+ auto op53 = model->addOperand(&type48);
+ auto op54 = model->addOperand(&type44);
+ auto op55 = model->addOperand(&type49);
+ auto op56 = model->addOperand(&type50);
+ auto op57 = model->addOperand(&type51);
+ auto op58 = model->addOperand(&type52);
+ auto op59 = model->addOperand(&type53);
+ auto op60 = model->addOperand(&type7);
+ auto op61 = model->addOperand(&type54);
+ auto op62 = model->addOperand(&type55);
+ auto op63 = model->addOperand(&type7);
+ auto op64 = model->addOperand(&type56);
+ auto op65 = model->addOperand(&type57);
+ auto op66 = model->addOperand(&type7);
+ auto op67 = model->addOperand(&type58);
+ auto op68 = model->addOperand(&type59);
+ auto op69 = model->addOperand(&type7);
+ auto op70 = model->addOperand(&type60);
+ auto op71 = model->addOperand(&type61);
+ auto op72 = model->addOperand(&type7);
+ auto op73 = model->addOperand(&type62);
+ auto op74 = model->addOperand(&type63);
+ auto op75 = model->addOperand(&type7);
+ auto op76 = model->addOperand(&type64);
+ auto op77 = model->addOperand(&type65);
+ auto op78 = model->addOperand(&type7);
+ auto op79 = model->addOperand(&type66);
+ auto op80 = model->addOperand(&type67);
+ auto op81 = model->addOperand(&type68);
+ auto op82 = model->addOperand(&type69);
+ auto op83 = model->addOperand(&type70);
+ auto op84 = model->addOperand(&type71);
+ auto op86 = model->addOperand(&type72);
+ auto op87 = model->addOperand(&type73);
+ // Phase 2, operations
+ static int32_t b104_init[] = {1};
+ model->setOperandValue(b104, b104_init, sizeof(int32_t) * 1);
+ static int32_t b105_init[] = {2};
+ model->setOperandValue(b105, b105_init, sizeof(int32_t) * 1);
+ static int32_t b106_init[] = {2};
+ model->setOperandValue(b106, b106_init, sizeof(int32_t) * 1);
+ static int32_t b107_init[] = {0};
+ model->setOperandValue(b107, b107_init, sizeof(int32_t) * 1);
+ static int32_t b108_init[] = {1};
+ model->setOperandValue(b108, b108_init, sizeof(int32_t) * 1);
+ static int32_t b109_init[] = {1};
+ model->setOperandValue(b109, b109_init, sizeof(int32_t) * 1);
+ static int32_t b110_init[] = {1};
+ model->setOperandValue(b110, b110_init, sizeof(int32_t) * 1);
+ static int32_t b111_init[] = {1};
+ model->setOperandValue(b111, b111_init, sizeof(int32_t) * 1);
+ static int32_t b112_init[] = {0};
+ model->setOperandValue(b112, b112_init, sizeof(int32_t) * 1);
+ static int32_t b113_init[] = {1};
+ model->setOperandValue(b113, b113_init, sizeof(int32_t) * 1);
+ static int32_t b114_init[] = {1};
+ model->setOperandValue(b114, b114_init, sizeof(int32_t) * 1);
+ static int32_t b115_init[] = {1};
+ model->setOperandValue(b115, b115_init, sizeof(int32_t) * 1);
+ static int32_t b116_init[] = {0};
+ model->setOperandValue(b116, b116_init, sizeof(int32_t) * 1);
+ static int32_t b117_init[] = {1};
+ model->setOperandValue(b117, b117_init, sizeof(int32_t) * 1);
+ static int32_t b118_init[] = {2};
+ model->setOperandValue(b118, b118_init, sizeof(int32_t) * 1);
+ static int32_t b119_init[] = {2};
+ model->setOperandValue(b119, b119_init, sizeof(int32_t) * 1);
+ static int32_t b120_init[] = {1};
+ model->setOperandValue(b120, b120_init, sizeof(int32_t) * 1);
+ static int32_t b121_init[] = {0};
+ model->setOperandValue(b121, b121_init, sizeof(int32_t) * 1);
+ static int32_t b122_init[] = {1};
+ model->setOperandValue(b122, b122_init, sizeof(int32_t) * 1);
+ static int32_t b123_init[] = {1};
+ model->setOperandValue(b123, b123_init, sizeof(int32_t) * 1);
+ static int32_t b124_init[] = {1};
+ model->setOperandValue(b124, b124_init, sizeof(int32_t) * 1);
+ static int32_t b125_init[] = {0};
+ model->setOperandValue(b125, b125_init, sizeof(int32_t) * 1);
+ static int32_t b126_init[] = {1};
+ model->setOperandValue(b126, b126_init, sizeof(int32_t) * 1);
+ static int32_t b127_init[] = {1};
+ model->setOperandValue(b127, b127_init, sizeof(int32_t) * 1);
+ static int32_t b128_init[] = {1};
+ model->setOperandValue(b128, b128_init, sizeof(int32_t) * 1);
+ static int32_t b129_init[] = {1};
+ model->setOperandValue(b129, b129_init, sizeof(int32_t) * 1);
+ static int32_t b130_init[] = {0};
+ model->setOperandValue(b130, b130_init, sizeof(int32_t) * 1);
+ static int32_t b131_init[] = {1};
+ model->setOperandValue(b131, b131_init, sizeof(int32_t) * 1);
+ static int32_t b132_init[] = {1};
+ model->setOperandValue(b132, b132_init, sizeof(int32_t) * 1);
+ static int32_t b133_init[] = {1};
+ model->setOperandValue(b133, b133_init, sizeof(int32_t) * 1);
+ static int32_t b134_init[] = {0};
+ model->setOperandValue(b134, b134_init, sizeof(int32_t) * 1);
+ static int32_t b135_init[] = {1};
+ model->setOperandValue(b135, b135_init, sizeof(int32_t) * 1);
+ static int32_t b136_init[] = {2};
+ model->setOperandValue(b136, b136_init, sizeof(int32_t) * 1);
+ static int32_t b137_init[] = {2};
+ model->setOperandValue(b137, b137_init, sizeof(int32_t) * 1);
+ static int32_t b138_init[] = {1};
+ model->setOperandValue(b138, b138_init, sizeof(int32_t) * 1);
+ static int32_t b139_init[] = {0};
+ model->setOperandValue(b139, b139_init, sizeof(int32_t) * 1);
+ static int32_t b140_init[] = {1};
+ model->setOperandValue(b140, b140_init, sizeof(int32_t) * 1);
+ static int32_t b141_init[] = {1};
+ model->setOperandValue(b141, b141_init, sizeof(int32_t) * 1);
+ static int32_t b142_init[] = {1};
+ model->setOperandValue(b142, b142_init, sizeof(int32_t) * 1);
+ static int32_t b143_init[] = {0};
+ model->setOperandValue(b143, b143_init, sizeof(int32_t) * 1);
+ static int32_t b144_init[] = {1};
+ model->setOperandValue(b144, b144_init, sizeof(int32_t) * 1);
+ static int32_t b145_init[] = {1};
+ model->setOperandValue(b145, b145_init, sizeof(int32_t) * 1);
+ static int32_t b146_init[] = {1};
+ model->setOperandValue(b146, b146_init, sizeof(int32_t) * 1);
+ static int32_t b147_init[] = {1};
+ model->setOperandValue(b147, b147_init, sizeof(int32_t) * 1);
+ static int32_t b148_init[] = {0};
+ model->setOperandValue(b148, b148_init, sizeof(int32_t) * 1);
+ static int32_t b149_init[] = {1};
+ model->setOperandValue(b149, b149_init, sizeof(int32_t) * 1);
+ static int32_t b150_init[] = {1};
+ model->setOperandValue(b150, b150_init, sizeof(int32_t) * 1);
+ static int32_t b151_init[] = {1};
+ model->setOperandValue(b151, b151_init, sizeof(int32_t) * 1);
+ static int32_t b152_init[] = {0};
+ model->setOperandValue(b152, b152_init, sizeof(int32_t) * 1);
+ static int32_t b153_init[] = {1};
+ model->setOperandValue(b153, b153_init, sizeof(int32_t) * 1);
+ static int32_t b154_init[] = {2};
+ model->setOperandValue(b154, b154_init, sizeof(int32_t) * 1);
+ static int32_t b155_init[] = {2};
+ model->setOperandValue(b155, b155_init, sizeof(int32_t) * 1);
+ static int32_t b156_init[] = {1};
+ model->setOperandValue(b156, b156_init, sizeof(int32_t) * 1);
+ static int32_t b157_init[] = {0};
+ model->setOperandValue(b157, b157_init, sizeof(int32_t) * 1);
+ static int32_t b158_init[] = {1};
+ model->setOperandValue(b158, b158_init, sizeof(int32_t) * 1);
+ static int32_t b159_init[] = {1};
+ model->setOperandValue(b159, b159_init, sizeof(int32_t) * 1);
+ static int32_t b160_init[] = {1};
+ model->setOperandValue(b160, b160_init, sizeof(int32_t) * 1);
+ static int32_t b161_init[] = {0};
+ model->setOperandValue(b161, b161_init, sizeof(int32_t) * 1);
+ static int32_t b162_init[] = {1};
+ model->setOperandValue(b162, b162_init, sizeof(int32_t) * 1);
+ static int32_t b163_init[] = {1};
+ model->setOperandValue(b163, b163_init, sizeof(int32_t) * 1);
+ static int32_t b164_init[] = {1};
+ model->setOperandValue(b164, b164_init, sizeof(int32_t) * 1);
+ static int32_t b165_init[] = {1};
+ model->setOperandValue(b165, b165_init, sizeof(int32_t) * 1);
+ static int32_t b166_init[] = {0};
+ model->setOperandValue(b166, b166_init, sizeof(int32_t) * 1);
+ static int32_t b167_init[] = {1};
+ model->setOperandValue(b167, b167_init, sizeof(int32_t) * 1);
+ static int32_t b168_init[] = {1};
+ model->setOperandValue(b168, b168_init, sizeof(int32_t) * 1);
+ static int32_t b169_init[] = {1};
+ model->setOperandValue(b169, b169_init, sizeof(int32_t) * 1);
+ static int32_t b170_init[] = {0};
+ model->setOperandValue(b170, b170_init, sizeof(int32_t) * 1);
+ static int32_t b171_init[] = {1};
+ model->setOperandValue(b171, b171_init, sizeof(int32_t) * 1);
+ static int32_t b172_init[] = {1};
+ model->setOperandValue(b172, b172_init, sizeof(int32_t) * 1);
+ static int32_t b173_init[] = {1};
+ model->setOperandValue(b173, b173_init, sizeof(int32_t) * 1);
+ static int32_t b174_init[] = {1};
+ model->setOperandValue(b174, b174_init, sizeof(int32_t) * 1);
+ static int32_t b175_init[] = {0};
+ model->setOperandValue(b175, b175_init, sizeof(int32_t) * 1);
+ static int32_t b176_init[] = {1};
+ model->setOperandValue(b176, b176_init, sizeof(int32_t) * 1);
+ static int32_t b177_init[] = {1};
+ model->setOperandValue(b177, b177_init, sizeof(int32_t) * 1);
+ static int32_t b178_init[] = {1};
+ model->setOperandValue(b178, b178_init, sizeof(int32_t) * 1);
+ static int32_t b179_init[] = {0};
+ model->setOperandValue(b179, b179_init, sizeof(int32_t) * 1);
+ static int32_t b180_init[] = {1};
+ model->setOperandValue(b180, b180_init, sizeof(int32_t) * 1);
+ static int32_t b181_init[] = {1};
+ model->setOperandValue(b181, b181_init, sizeof(int32_t) * 1);
+ static int32_t b182_init[] = {1};
+ model->setOperandValue(b182, b182_init, sizeof(int32_t) * 1);
+ static int32_t b183_init[] = {1};
+ model->setOperandValue(b183, b183_init, sizeof(int32_t) * 1);
+ static int32_t b184_init[] = {0};
+ model->setOperandValue(b184, b184_init, sizeof(int32_t) * 1);
+ static int32_t b185_init[] = {1};
+ model->setOperandValue(b185, b185_init, sizeof(int32_t) * 1);
+ static int32_t b186_init[] = {1};
+ model->setOperandValue(b186, b186_init, sizeof(int32_t) * 1);
+ static int32_t b187_init[] = {1};
+ model->setOperandValue(b187, b187_init, sizeof(int32_t) * 1);
+ static int32_t b188_init[] = {0};
+ model->setOperandValue(b188, b188_init, sizeof(int32_t) * 1);
+ static int32_t b189_init[] = {1};
+ model->setOperandValue(b189, b189_init, sizeof(int32_t) * 1);
+ static int32_t b190_init[] = {1};
+ model->setOperandValue(b190, b190_init, sizeof(int32_t) * 1);
+ static int32_t b191_init[] = {1};
+ model->setOperandValue(b191, b191_init, sizeof(int32_t) * 1);
+ static int32_t b192_init[] = {1};
+ model->setOperandValue(b192, b192_init, sizeof(int32_t) * 1);
+ static int32_t b193_init[] = {0};
+ model->setOperandValue(b193, b193_init, sizeof(int32_t) * 1);
+ static int32_t b194_init[] = {1};
+ model->setOperandValue(b194, b194_init, sizeof(int32_t) * 1);
+ static int32_t b195_init[] = {1};
+ model->setOperandValue(b195, b195_init, sizeof(int32_t) * 1);
+ static int32_t b196_init[] = {1};
+ model->setOperandValue(b196, b196_init, sizeof(int32_t) * 1);
+ static int32_t b197_init[] = {0};
+ model->setOperandValue(b197, b197_init, sizeof(int32_t) * 1);
+ static int32_t b198_init[] = {1};
+ model->setOperandValue(b198, b198_init, sizeof(int32_t) * 1);
+ static int32_t b199_init[] = {1};
+ model->setOperandValue(b199, b199_init, sizeof(int32_t) * 1);
+ static int32_t b200_init[] = {1};
+ model->setOperandValue(b200, b200_init, sizeof(int32_t) * 1);
+ static int32_t b201_init[] = {1};
+ model->setOperandValue(b201, b201_init, sizeof(int32_t) * 1);
+ static int32_t b202_init[] = {0};
+ model->setOperandValue(b202, b202_init, sizeof(int32_t) * 1);
+ static int32_t b203_init[] = {1};
+ model->setOperandValue(b203, b203_init, sizeof(int32_t) * 1);
+ static int32_t b204_init[] = {1};
+ model->setOperandValue(b204, b204_init, sizeof(int32_t) * 1);
+ static int32_t b205_init[] = {1};
+ model->setOperandValue(b205, b205_init, sizeof(int32_t) * 1);
+ static int32_t b206_init[] = {0};
+ model->setOperandValue(b206, b206_init, sizeof(int32_t) * 1);
+ static int32_t b207_init[] = {1};
+ model->setOperandValue(b207, b207_init, sizeof(int32_t) * 1);
+ static int32_t b208_init[] = {2};
+ model->setOperandValue(b208, b208_init, sizeof(int32_t) * 1);
+ static int32_t b209_init[] = {2};
+ model->setOperandValue(b209, b209_init, sizeof(int32_t) * 1);
+ static int32_t b210_init[] = {1};
+ model->setOperandValue(b210, b210_init, sizeof(int32_t) * 1);
+ static int32_t b211_init[] = {0};
+ model->setOperandValue(b211, b211_init, sizeof(int32_t) * 1);
+ static int32_t b212_init[] = {1};
+ model->setOperandValue(b212, b212_init, sizeof(int32_t) * 1);
+ static int32_t b213_init[] = {1};
+ model->setOperandValue(b213, b213_init, sizeof(int32_t) * 1);
+ static int32_t b214_init[] = {1};
+ model->setOperandValue(b214, b214_init, sizeof(int32_t) * 1);
+ static int32_t b215_init[] = {0};
+ model->setOperandValue(b215, b215_init, sizeof(int32_t) * 1);
+ static int32_t b216_init[] = {1};
+ model->setOperandValue(b216, b216_init, sizeof(int32_t) * 1);
+ static int32_t b217_init[] = {1};
+ model->setOperandValue(b217, b217_init, sizeof(int32_t) * 1);
+ static int32_t b218_init[] = {1};
+ model->setOperandValue(b218, b218_init, sizeof(int32_t) * 1);
+ static int32_t b219_init[] = {1};
+ model->setOperandValue(b219, b219_init, sizeof(int32_t) * 1);
+ static int32_t b220_init[] = {0};
+ model->setOperandValue(b220, b220_init, sizeof(int32_t) * 1);
+ static int32_t b221_init[] = {1};
+ model->setOperandValue(b221, b221_init, sizeof(int32_t) * 1);
+ static int32_t b222_init[] = {1};
+ model->setOperandValue(b222, b222_init, sizeof(int32_t) * 1);
+ static int32_t b223_init[] = {1};
+ model->setOperandValue(b223, b223_init, sizeof(int32_t) * 1);
+ static int32_t b224_init[] = {0};
+ model->setOperandValue(b224, b224_init, sizeof(int32_t) * 1);
+ static int32_t b225_init[] = {2};
+ model->setOperandValue(b225, b225_init, sizeof(int32_t) * 1);
+ static int32_t b226_init[] = {2};
+ model->setOperandValue(b226, b226_init, sizeof(int32_t) * 1);
+ static int32_t b227_init[] = {2};
+ model->setOperandValue(b227, b227_init, sizeof(int32_t) * 1);
+ static int32_t b228_init[] = {7};
+ model->setOperandValue(b228, b228_init, sizeof(int32_t) * 1);
+ static int32_t b229_init[] = {7};
+ model->setOperandValue(b229, b229_init, sizeof(int32_t) * 1);
+ static int32_t b230_init[] = {0};
+ model->setOperandValue(b230, b230_init, sizeof(int32_t) * 1);
+ static int32_t b231_init[] = {1};
+ model->setOperandValue(b231, b231_init, sizeof(int32_t) * 1);
+ static int32_t b232_init[] = {1};
+ model->setOperandValue(b232, b232_init, sizeof(int32_t) * 1);
+ static int32_t b233_init[] = {1};
+ model->setOperandValue(b233, b233_init, sizeof(int32_t) * 1);
+ static int32_t b234_init[] = {0};
+ model->setOperandValue(b234, b234_init, sizeof(int32_t) * 1);
+ static float b235_init[] = {1.0f};
+ model->setOperandValue(b235, b235_init, sizeof(float) * 1);
+ static int32_t op1_init[] = {18729, 13775, 11414, -1774, 12820, 13621, -5657, 12176, 7969, 11393, -2189, 8677, 13409, 13221, 15620, -12188, 1593, 10103, 84, 12516, 13811, 14050, 4619, -494, 12001, 12980, 1348, 1523, 13151, 12435, 12940, 10961};
+ model->setOperandValue(op1, op1_init, sizeof(int32_t) * 32);
+ static uint8_t op2_init[] = {95, 32, 209, 125, 53, 193, 154, 58, 160, 16, 0, 255, 58, 35, 247, 100, 45, 198, 86, 37, 216, 79, 47, 238, 85, 37, 212, 120, 117, 112, 106, 105, 110, 56, 57, 88, 118, 110, 111, 135, 138, 124, 112, 116, 118, 102, 101, 106, 112, 110, 113, 123, 127, 118, 109, 102, 106, 164, 173, 138, 111, 110, 110, 104, 102, 106, 111, 111, 105, 93, 96, 106, 113, 113, 113, 110, 108, 109, 120, 121, 122, 129, 130, 126, 117, 116, 112, 114, 115, 107, 98, 83, 110, 109, 97, 115, 118, 119, 111, 54, 37, 77, 114, 109, 118, 132, 140, 119, 114, 108, 114, 109, 106, 109, 111, 114, 112, 115, 114, 117, 125, 126, 119, 147, 154, 134, 108, 108, 108, 100, 101, 106, 112, 108, 112, 107, 108, 110, 103, 102, 106, 108, 106, 110, 106, 108, 110, 103, 103, 108, 107, 106, 110, 113, 114, 110, 113, 112, 112, 108, 111, 114, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 118, 124, 121, 100, 103, 106, 111, 112, 114, 165, 177, 140, 98, 92, 100, 121, 116, 118, 99, 92, 100, 101, 100, 110, 106, 109, 108, 130, 125, 84, 153, 139, 76, 123, 118, 91, 126, 123, 83, 140, 127, 78, 123, 117, 96, 111, 119, 99, 117, 117, 98, 111, 121, 103, 105, 119, 106, 104, 122, 109, 117, 109, 113, 110, 132, 103, 77, 134, 91, 94, 121, 103, 109, 123, 95, 94, 129, 94, 118, 120, 108, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 128, 91, 130, 126, 92, 121, 123, 99, 114, 136, 88, 136, 125, 92, 124, 121, 98, 117, 119, 95, 117, 122, 98, 119, 121, 100, 117, 113, 113, 111, 97, 94, 102, 111, 112, 109, 110, 113, 113, 94, 91, 99, 113, 113, 115, 112, 115, 111, 108, 109, 111, 114, 111, 113, 138, 138, 125, 103, 121, 111, 97, 121, 102, 87, 106, 97, 58, 87, 92, 113, 128, 112, 133, 115, 109, 85, 97, 99, 117, 122, 106, 107, 103, 125, 109, 107, 123, 107, 103, 122, 103, 99, 125, 105, 105, 125, 110, 108, 122, 112, 106, 122, 106, 101, 125, 110, 101, 125, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 95, 95, 106, 112, 107, 118, 119, 96, 120, 112, 150, 113, 113, 131, 115, 113, 96, 112, 138, 192, 122, 108, 126, 106, 103, 84, 102, 101, 100, 109, 104, 103, 112, 107, 108, 111, 115, 114, 107, 156, 168, 119, 116, 115, 108, 111, 107, 102, 124, 115, 101, 119, 111, 111, 110, 111, 111, 110, 111, 111, 110, 111, 111, 110, 111, 111, 110, 111, 111, 110, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 112, 106, 107, 106, 130, 128, 120, 110, 111, 108, 65, 57, 84, 107, 108, 111, 114, 118, 115, 105, 103, 111, 129, 126, 116, 113, 112, 111, 98, 113, 139, 119, 126, 166, 109, 110, 115, 101, 111, 122, 105, 116, 141, 108, 109, 118, 114, 117, 105, 110, 111, 113, 116, 113, 102, 103, 119, 116, 93, 118, 121, 98, 116, 122, 102, 122, 116, 94, 121, 121, 96, 117, 124, 100, 117, 117, 100, 120, 120, 101, 116, 120, 176, 76, 64, 176, 91, 68, 159, 105, 84, 187, 72, 61, 183, 91, 65, 160, 104, 77, 160, 102, 82, 164, 97, 76, 155, 98, 78, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 115, 114, 111, 107, 103, 112, 123, 117, 115, 116, 117, 117, 62, 49, 77, 119, 120, 112, 120, 120, 113, 131, 135, 120, 123, 122, 114, 117, 117, 117, 155, 162, 137, 115, 112, 113, 100, 98, 105, 108, 103, 107, 112, 111, 112, 112, 114, 114, 114, 114, 110, 106, 108, 112, 114, 114, 112, 114, 114, 112, 114, 114, 112, 114, 114, 111, 114, 115, 112, 114, 114, 111, 114, 114, 111, 114, 114, 111, 114, 114, 111, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 118, 116, 115, 109, 107, 108, 144, 143, 130, 111, 108, 113, 98, 94, 103, 110, 113, 110, 112, 113, 112, 111, 112, 115, 116, 117, 114, 124, 108, 105, 148, 81, 77, 130, 100, 100, 140, 96, 92, 148, 95, 83, 135, 107, 98, 126, 106, 104, 128, 113, 100, 121, 112, 104, 57, 51, 83, 120, 124, 121, 111, 116, 108, 122, 126, 120, 121, 120, 114, 111, 111, 111, 111, 112, 112, 114, 113, 110, 112, 112, 112, 91, 139, 104, 93, 121, 96, 92, 132, 108, 73, 142, 121, 46, 179, 159, 61, 150, 132, 79, 134, 116, 51, 161, 149, 78, 133, 119};
+ model->setOperandValue(op2, op2_init, sizeof(uint8_t) * 864);
+ static int32_t op4_init[] = {1496, 2937, -3899, 3591, 7857, -1279, -700, -934, 1078, 4298, -52, -891, 4098, 2694, 538, -1972, 4381, -1253, -1999, 3212, -2316, 4227, -902, 3205, 2506, 3398, 3644, 4153, -1574, 5634, 3844, -5110, -811, 3091, 362, -2900, -4870, 2950, -7100, 4009, -3667, 2969, -4569, 3370, -538, 6224, -2623, 3948, 2510, -1861, -2007, -3055, -1918, 6472, 5133, 6484, -1663, 4903, 4314, -1330, -1257, -388, 5184, 4744, -2389, 6815, -1705, -4801, 2574, -3169, -215, -1089, 4730, -55, -2494, 10058, 5010, -2874, 3156, 6491, -1006, 8008, 2848, -2658, 2871, -3074, -208, 3603, 3941, -2306, 3910, 4945, -354, -5856, -2661, -2819, 3103, -2970, 2758, -134, -1682, -1125, -1278, -3058, 3144, -1147, -3510, 5614, -1629, 5932, -2648, 3015, 4606, 3711, 2322, 4496, -579, 3013, 5137, 3674, -746, 4248, -802, -968, -2708, 2681, 1587, 6617, -817, -591, 3980, -3066, -6111, -1418, 5161, -1213, 18, -3805, -3492, -1638, -1775, 3156, 4578, 3714, 2653, -81, 7227, 4737, 1017, -2077, 4207, 1428, -846, 3170, -3291, 3483, 2726, 3918, -1339, 2852, -2447, -1499, 3178, 4064, 2707, -3851, 6569, 4382, -483, 3364, 2386, 4094, -2544, -1254, 4263, -451, 3634, 3596, -3908, -1412, -1682, 3310, -1968, 3009, 5027, 3614, 11153, 2156, -1096, -1851, 6211, -1438, 3135, 2960, 2133, 2490, 3468, -1853, -1613, -1137, -3226, 799, -1296, -1774, 396, 3723, 6826, -5274, -2812, 1566, 6352, 4376, 1503, 2568, -154, -1541, -1276, -133, 2857, 4363, -525, -1843, -6894, -1824, 4036, -3132, -677, -3463, 2755, -623, -1297, 2648, -215, -4589, -8386, -1467, -4637, -544, -2313, -1869, 13, 2808, -5675, -2618, -7763, 2831, 2452, 2808, 407, -3335, 2460, 6615, 2235, 2711, 3820, 3864, 5032, -3061, -2200, -1101, -647, -4344, -2739, 5440, 4575, -2263, 2592, -760, 2679, -1118, 4294, 4196, 5774, -304, -895, 4782, -825, -3518, 4118, 2627, -7164, 1041, 3909, -867, -272, 3551, -2142, -2468, 1929, 7167, -1999, -2558, -1497, 3186, 6304, 8550, -12, 4233, 5275, -817, 9390, -3530, -105, -3086, -2303, -621, 4707, -3283, -2267, 5022, 7045, 8487, 3891, -2019, 3492, 5739, -330, -1120, -2640, 100, 157, 6455, -5099, 6983, -1682, -1793, -1397, -972, 3450, 4024, -616, 4889, 6351, -439, 8374, -327, 4120, -2423, -1260, -2093, 1925, 2788, 4301, 197, 5843, -1382, 96, 9314, -1413, -1137, -3328, 1309, -4557, 4729, 2069, -2440, 4349, -4837, 513, -1572, 3314, 5302, 6908, 3285, -2325, 2941, 5633, 967, -3903, 3712, 3563, -6405, 940, -942, 3857, -1143, -5092, 4075, 4387, 5023, -4256, 3609, -304, 2447, 5628, -2799, 2801, 4036, 5155, -2228, 1505, 4082, 8400, -5199, -1032, -1332, -1288, -350, -3430, 2799, -1634, -3927, -4000, 5382, 2361, -4985, 3663, 345, -1331, -5878, -5651, 968, 7389, -3011, -3674, -731, 3296, 2652, 6334, -1160, 6521, -4080, 5341, 4734, -2369, -3391, 7538, -3635, -2702, 6352, 6995, 1329, -1004, -4818, -2044, -1270, 5398, -2579, 2344, 4546, -7556, 2884, 2812, 9821, 195, -1856, -3410, 5536, 3489, 2949, -2517, 3036, 6062, 3344, -1726, 3318, -1682, -368, -2381, -284, 5928, 967, 4869, 4184, 3524, 3788, 3102, -595, 3848, -525, -2317, -1333, -1649, 5768, -254, 3423, -1208, -2506, -2448, -2281, 3006, 4499, 2742, 582, -322, -471, 5666, 4052, 1969, -1556, 3014, -433, 5421, -1211, 3119, -2772, 3774, 3963, -6388, 4297, -582, 3062, -1959, 3366, 5033, -1908, 6499, -4880, -1495, 1925, -1112, 2566};
+ model->setOperandValue(op4, op4_init, sizeof(int32_t) * 512);
+ static uint8_t op5_init[] = {118, 132, 157, 140, 147, 143, 141, 154, 121, 137, 163, 136, 163, 132, 191, 161, 153, 142, 139, 132, 152, 116, 141, 135, 129, 130, 145, 182, 125, 121, 125, 151, 143, 135, 147, 181, 153, 157, 155, 139, 157, 130, 163, 119, 125, 131, 114, 142, 127, 153, 152, 176, 160, 148, 141, 154, 129, 124, 135, 138, 135, 171, 141, 133, 156, 126, 161, 141, 118, 165, 117, 139, 140, 119, 155, 147, 144, 141, 135, 142, 144, 124, 123, 152, 122, 143, 146, 118, 134, 149, 131, 129, 164, 166, 150, 101, 127, 148, 129, 157, 170, 182, 154, 159, 151, 139, 165, 138, 155, 146, 138, 128, 121, 111, 121, 135, 149, 136, 139, 162, 139, 127, 135, 141, 148, 120, 157, 133, 136, 146, 136, 149, 165, 162, 135, 115, 166, 173, 145, 113, 140, 146, 156, 112, 130, 138, 146, 131, 136, 128, 137, 137, 148, 135, 142, 121, 149, 137, 137, 109, 146, 147, 132, 133, 140, 137, 125, 128, 134, 111, 135, 134, 141, 145, 138, 129, 125, 134, 132, 150, 154, 133, 163, 131, 124, 139, 142, 134, 148, 132, 130, 144, 119, 140, 150, 175, 136, 136, 155, 160, 138, 132, 131, 179, 158, 142, 134, 154, 153, 153, 148, 148, 135, 127, 169, 131, 127, 155, 128, 134, 133, 141, 160, 141, 133, 153, 140, 144, 131, 149, 156, 135, 137, 141, 151, 173, 159, 157, 147, 147, 126, 129, 174, 145, 152, 135, 131, 135, 132, 143, 132, 147, 139, 130, 134, 139, 139, 149, 172, 147, 160, 166, 136, 150, 130, 146, 170, 149, 135, 136, 116, 127, 117, 138, 143, 144, 136, 156, 126, 125, 148, 90, 125, 154, 123, 149, 178, 157, 195, 135, 145, 139, 150, 135, 131, 145, 171, 136, 136, 167, 128, 166, 154, 137, 146, 142, 137, 153, 136, 123, 150, 139, 138, 143, 121, 108, 143, 137, 137, 140, 146, 155, 169, 134, 140, 156, 175, 153, 123, 131, 132, 152, 128, 136, 145, 156, 135, 163, 140, 168, 142, 126, 133, 185, 134, 140, 156, 136, 153, 186, 132, 145, 154, 142, 158, 176, 123, 155, 142, 147, 141, 129, 130, 135, 135, 155, 160, 137, 152, 132, 139, 139, 151, 143, 135, 138, 171, 129, 121, 143, 141, 135, 127, 122, 147, 121, 129, 140, 124, 150, 135, 128, 140, 156, 169, 142, 111, 207, 144, 133, 128, 155, 162, 141, 113, 179, 120, 144, 154, 166, 146, 131, 152, 146, 143, 143, 133, 131, 169, 137, 154, 135, 120, 156, 143, 139, 144, 143, 145, 147, 132, 141, 147, 142, 147, 158, 139, 125, 133, 136, 154, 125, 132, 148, 133, 170, 159, 124, 131, 138, 142, 125, 127, 131, 146, 118, 188, 137, 136, 147, 137, 123, 151, 138, 143, 143, 134, 148, 137, 164, 149, 164, 142, 132, 163, 121, 140, 163, 134, 151, 126, 170, 133, 139, 160, 108, 146, 131, 166, 137, 133, 178, 131, 147, 146, 169, 133, 131, 156, 119, 165, 141, 154, 135, 132, 138, 153, 150, 143, 153, 152, 124, 119, 124, 103, 126, 107, 133, 130, 184, 114, 120, 169, 126, 142, 130, 142, 152, 177, 142, 148, 140, 164, 130, 124, 136, 125, 136, 139, 139, 140, 116, 114, 155, 137, 126, 177, 155, 155, 178, 155, 132, 219, 126, 161, 125, 135, 112, 110, 127, 114, 147, 163, 122, 165, 132, 122, 154, 162, 134, 132, 156, 145, 182, 145, 127, 182, 138, 177, 149, 120, 185, 123, 134, 123, 89, 190, 150, 157, 148, 129, 139, 145, 142, 135, 148, 122, 148, 161, 141, 116, 161, 137, 111, 126, 170, 129, 99, 135, 150, 129, 163, 175, 201, 136, 145, 133, 145, 149, 148, 166, 167, 166, 126, 140, 126, 131, 134, 169, 140, 140, 138, 147, 120, 143, 133, 149, 135, 142, 145, 138, 159, 150, 131, 134, 156, 142, 115, 189, 145, 138, 139, 145, 138, 142, 109, 135, 136, 133, 141, 142, 157, 132, 183, 173, 128, 139, 138, 154, 137, 94, 129, 142, 157, 131, 119, 193, 137, 106, 136, 168, 146, 133, 135, 143, 197, 110, 185, 124, 127, 147, 141, 194, 126, 150, 121, 122, 134, 138, 130, 163, 128, 121, 148, 124, 109, 137, 196, 135, 144, 159, 147, 140, 127, 150, 190, 192, 134, 131, 136, 156, 175, 150, 145, 147, 128, 182, 133, 128, 178, 140, 126, 155, 148, 136, 138, 112, 148, 150, 137, 141, 148, 124, 124, 151, 140, 131, 189, 151, 151, 131, 184, 109, 110, 148, 128, 130, 129, 134, 153, 96, 132, 123, 149, 113, 128, 148, 206, 112, 146, 179, 118, 166, 158, 163, 120, 133, 131, 190, 163, 124, 134, 142, 120, 143, 152, 139, 136, 137, 201, 142, 133, 129, 107, 123, 165, 124, 129, 73, 135, 156, 128, 118, 132, 145, 132, 119, 138, 151, 140, 138, 181, 123, 112, 157, 142, 147, 146, 146, 91, 99, 125, 151, 131, 158, 153, 128, 128, 152, 162, 131, 135, 130, 156, 153, 130, 139, 116, 191, 113, 126, 127, 107, 151, 152, 138, 131, 130, 137, 162, 152, 147, 143, 120, 121, 150, 122, 140, 201, 125, 100, 153, 103, 165, 121, 135, 147, 220, 132, 129, 128, 173, 200, 128, 131, 132, 150, 145, 175, 134, 172, 128, 134, 126, 145, 143, 130, 131, 152, 137, 122, 130, 112, 115, 112, 129, 156, 92, 125, 117, 128, 160, 122, 142, 142, 172, 78, 144, 114, 174, 187, 134, 153, 164, 172, 149, 135, 144, 108, 174, 160, 167, 134, 129, 162, 133, 180, 140, 132, 101, 168, 135, 123, 154, 129, 175, 144, 143, 164, 152, 138, 145, 125, 144, 157, 143, 158, 144, 122, 97, 128, 127, 161, 138, 126, 144, 124, 144, 201, 107, 132, 131, 145, 123, 124, 111, 130, 143, 95, 147, 136, 159, 124, 125, 163, 136, 131, 153, 125, 150, 122, 177, 177, 195, 140, 123, 196, 117, 133, 177, 147, 164, 132, 147, 135, 129, 168, 107, 130, 122, 151, 157, 128, 192, 127, 141, 201, 170, 135, 133, 178, 124, 131, 148, 170, 132, 144, 148, 139, 141, 155, 164, 195, 134, 139, 131, 160, 138, 151, 141, 141, 146, 125, 141, 159, 142, 111, 112, 141, 158, 150, 141, 139, 138, 151, 118, 143, 136, 132, 129, 127, 114, 129, 125, 147, 143, 189, 136, 144, 172, 153, 152, 155, 140, 149, 132, 162, 122, 128, 134, 113, 144, 132, 153, 155, 175, 154, 147, 139, 152, 132, 124, 136, 135, 137, 159, 144, 134, 157, 127, 163, 166, 118, 163, 156, 139, 142, 116, 146, 145, 143, 141, 136, 142, 140, 127, 124, 149, 126, 144, 143, 138, 137, 150, 156, 130, 128, 158, 149, 101, 129, 148, 128, 156, 165, 179, 153, 142, 153, 137, 152, 140, 151, 144, 127, 130, 140, 117, 123, 136, 145, 137, 121, 130, 138, 122, 136, 141, 145, 120, 154, 130, 135, 145, 137, 147, 153, 157, 142, 114, 162, 146, 145, 132, 139, 146, 128, 111, 131, 139, 146, 153, 136, 125, 138, 136, 142, 135, 149, 124, 148, 116, 141, 113, 144, 148, 131, 138, 135, 141, 126, 160, 182, 177, 136, 152, 140, 180, 138, 115, 162, 136, 128, 153, 141, 135, 169, 134, 112, 137, 140, 137, 146, 130, 131, 141, 122, 145, 125, 172, 138, 136, 157, 161, 140, 133, 139, 176, 157, 140, 136, 145, 153, 153, 148, 148, 185, 130, 169, 136, 157, 150, 129, 135, 133, 138, 155, 141, 137, 160, 139, 144, 184, 149, 154, 136, 132, 138, 145, 165, 161, 154, 145, 141, 128, 133, 173, 143, 151, 135, 132, 134, 135, 145, 134, 145, 140, 134, 131, 129, 141, 147, 169, 147, 155, 161, 184, 149, 130, 146, 167, 148, 135, 134, 144, 129, 159, 137, 145, 144, 138, 152, 125, 125, 147, 180, 126, 154, 126, 138, 125, 154, 118, 137, 145, 137, 150, 134, 134, 145, 168, 135, 138, 160, 132, 167, 151, 137, 144, 144, 170, 159, 138, 128, 147, 134, 120, 143, 124, 114, 143, 134, 139, 152, 141, 151, 158, 133, 140, 157, 167, 151, 124, 134, 136, 151, 149, 136, 144, 120, 136, 149, 137, 159, 141, 130, 134, 147, 136, 138, 146, 138, 151, 135, 133, 143, 155, 146, 150, 131, 128, 156, 140, 124, 137, 122, 131, 135, 135, 120, 156, 136, 150, 132, 139, 174, 99, 142, 132, 141, 152, 131, 123, 143, 141, 135, 127, 125, 146, 120, 129, 140, 125, 148, 136, 133, 139, 158, 167, 141, 121, 205, 138, 132, 130, 150, 158, 140, 116, 123, 122, 142, 151, 174, 148, 133, 148, 149, 144, 144, 132, 134, 166, 138, 152, 135, 121, 152, 141, 156, 144, 148, 147, 146, 136, 141, 142, 141, 97, 152, 141, 170, 132, 136, 169, 128, 134, 148, 135, 161, 159, 127, 133, 138, 144, 129, 126, 133, 104, 144, 128, 139, 139, 142, 140, 169, 150, 138, 142, 143, 135, 149, 161, 158, 142, 154, 142, 137, 159, 127, 142, 159, 132, 150, 129, 139, 144, 138, 154, 103, 146, 133, 161, 135, 134, 171, 135, 146, 140, 156, 152, 131, 155, 123, 164, 139, 150, 138, 146, 139, 152, 146, 143, 154, 131, 124, 148, 122, 174, 171, 123, 146, 175, 143, 132, 136, 138, 144, 158, 138, 144, 164, 144, 149, 152, 119, 151, 127, 158, 130, 130, 133, 164, 195, 154, 133, 111, 161, 162, 122, 135, 151, 149, 133, 148, 136, 208, 126, 152, 123, 151, 145, 156, 128, 121, 153, 115, 156, 136, 137, 143, 150, 167, 122, 126, 148, 145, 176, 140, 134, 201, 134, 154, 141, 126, 136, 88, 144, 122, 146, 131, 147, 136, 157, 129, 135, 156, 129, 134, 147, 121, 153, 144, 112, 146, 136, 126, 133, 163, 146, 160, 183, 132, 145, 127, 147, 153, 156, 162, 172, 160, 147, 177, 136, 155, 161, 196, 131, 132, 128, 128, 134, 160, 131, 143, 191, 145, 114, 160, 134, 154, 124, 137, 140, 140, 143, 133, 177, 158, 151, 119, 123, 146, 169, 131, 185, 148, 133, 166, 120, 133, 147, 161, 133, 140, 146, 117, 127, 150, 134, 157, 133, 140, 144, 149, 127, 149, 152, 133, 140, 128, 148, 104, 109, 131, 112, 136, 116, 155, 48, 131, 172, 126, 132, 129, 151, 200, 135, 126, 133, 126, 128, 132, 136, 154, 149, 126, 150, 123, 135, 163, 134, 124, 150, 146, 143, 123, 165, 160, 167, 189, 171, 125, 155, 160, 147, 140, 140, 134, 125, 154, 143, 92, 134, 124, 125, 139, 146, 165, 142, 145, 156, 145, 155, 136, 149, 178, 148, 159, 143, 181, 164, 145, 149, 138, 161, 138, 110, 162, 163, 162, 130, 136, 129, 116, 145, 126, 143, 138, 127, 130, 119, 140, 149, 174, 150, 147, 122, 136, 149, 134, 154, 156, 150, 132, 160, 125, 129, 106, 152, 150, 139, 144, 144, 107, 134, 165, 130, 132, 148, 135, 169, 191, 171, 229, 140, 147, 139, 152, 130, 127, 143, 160, 135, 137, 143, 138, 182, 147, 151, 149, 148, 119, 175, 149, 137, 134, 128, 133, 144, 125, 129, 148, 153, 148, 109, 135, 143, 159, 126, 147, 161, 150, 159, 122, 132, 132, 144, 132, 149, 144, 201, 132, 138, 147, 139, 131, 120, 133, 148, 135, 146, 124, 125, 168, 153, 141, 141, 153, 136, 153, 172, 126, 186, 138, 164, 132, 122, 125, 131, 138, 137, 134, 140, 150, 127, 124, 163, 157, 144, 126, 139, 146, 130, 126, 127, 151, 121, 122, 130, 147, 166, 130, 185, 129, 153, 134, 120, 148, 130, 210, 146, 140, 148, 143, 123, 159, 145, 138, 141, 140, 162, 128, 135, 151, 104, 144, 137, 141, 146, 170, 139, 135, 118, 165, 145, 98, 165, 136, 148, 154, 140, 149, 150, 148, 145, 120, 142, 149, 146, 137, 143, 132, 97, 136, 129, 148, 122, 136, 149, 138, 163, 171, 143, 113, 139, 140, 125, 121, 153, 110, 124, 140, 139, 136, 144, 133, 130, 141, 134, 133, 136, 129, 160, 108, 155, 165, 131, 155, 129, 169, 127, 136, 151, 132, 129, 133, 173, 124, 147, 171, 136, 140, 126, 139, 158, 129, 176, 141, 145, 134, 58, 124, 131, 157, 142, 162, 135, 150, 131, 114, 151, 145, 166, 160, 157, 167, 125, 29, 125, 147, 143, 94, 191, 150, 186, 140, 124, 132, 181, 137, 140, 126, 171, 104, 191, 197, 148, 198, 130, 137, 215, 146, 132, 132, 142, 193, 186, 167, 195, 179, 124, 150, 182, 202, 133, 174, 124, 160, 129, 191, 133, 199, 120, 199, 123, 126, 185, 176, 178, 132, 92, 100, 76, 190, 132, 120, 193, 140, 194, 123, 196, 137, 161, 195, 153, 144, 158, 151, 180, 119, 133, 132, 67, 122, 182, 125, 107, 188, 116, 138, 171, 138, 186, 186, 151, 112, 183, 129, 117, 89, 193, 171, 223, 137, 176, 138, 179, 170, 179, 149, 160, 56, 193, 124, 149, 170, 69, 170, 127, 147, 138, 140, 116, 153, 216, 146, 125, 182, 154, 180, 121, 211, 121, 171, 76, 201, 208, 170, 162, 148, 194, 129, 134, 128, 176, 171, 181, 195, 124, 133, 143, 126, 182, 68, 125, 194, 201, 132, 150, 185, 197, 153, 130, 141, 148, 208, 140, 199, 164, 132, 116, 150, 246, 214, 141, 113, 149, 194, 139, 188, 216, 157, 184, 108, 125, 255, 200, 255, 199, 153, 138, 130, 120, 0, 194, 168, 200, 126, 192, 139, 118, 110, 87, 124, 195, 192, 172, 245, 112, 198, 219, 96, 136, 94, 146, 155, 118, 67, 111, 129, 123, 184, 194, 121, 174, 126, 119, 208, 194, 185, 218, 128, 198, 182, 180, 135, 194, 149, 97, 174, 174, 166, 218, 190, 179, 133, 194, 188, 153, 138, 113, 171, 125, 131, 205, 137, 208, 134, 103, 154, 123, 154, 117, 76, 214, 135, 204, 168, 187, 120, 89, 129, 183, 70, 170, 185, 186, 146, 114, 138, 183, 179, 99, 162, 149, 125, 138, 169, 110, 208, 189, 136, 130, 85, 157, 127, 104, 199, 211, 168, 121, 123, 58, 194, 122, 114, 172, 71, 138, 167, 201, 183, 187, 104, 178, 190, 118, 116, 70, 160, 185, 121, 104, 203, 181, 202, 114, 128, 82, 159, 125, 192, 180, 201, 190, 130, 217, 215, 109, 101, 190, 76, 118, 112, 182, 203, 129, 196, 124, 120, 128, 125, 185, 145, 72, 189, 116, 135, 179, 203, 109, 158, 201, 133, 151, 130, 222, 104, 125, 117, 129, 227, 156, 141, 135, 195, 128, 117, 164, 182, 190, 124, 193, 154, 122, 122, 124, 138, 135, 245, 130, 61, 199, 148, 154, 133, 176, 194, 140, 67, 155, 108, 177, 131, 65, 188, 129, 188, 193, 166, 95, 141, 154, 168, 183, 172, 140, 202, 130, 70, 200, 210, 187, 132, 142, 58, 199, 128, 214, 145, 96, 204, 165, 91, 198, 194, 91, 110, 198, 185, 198, 155, 184, 131, 137, 137, 214, 177, 123, 198, 61, 200, 204, 109, 156, 125, 121, 173, 124, 140, 105, 133, 130, 131, 200, 227, 186, 115, 136, 101, 121, 117, 127, 126, 185, 159, 186, 185, 132, 168, 115, 145, 126, 141, 220, 227, 179, 133, 100, 143, 209, 183, 222, 84, 196, 119, 185, 128, 202, 132, 184, 130, 146, 134, 129, 193, 152, 165, 191, 169, 122, 142, 197, 100, 138, 178, 84, 191, 135, 188, 126, 169, 126, 126, 142, 175, 137, 134, 135, 137, 138, 129, 137, 137, 163, 147, 144, 146, 169, 146, 126, 159, 127, 131, 135, 128, 110, 146, 131, 194, 151, 158, 125, 136, 148, 142, 134, 142, 138, 201, 126, 140, 124, 148, 145, 144, 130, 124, 145, 140, 149, 137, 142, 148, 152, 153, 127, 128, 146, 143, 168, 140, 131, 190, 133, 128, 153, 133, 138, 173, 140, 126, 140, 134, 150, 140, 149, 131, 141, 151, 131, 134, 144, 122, 147, 140, 148, 145, 132, 158, 136, 121, 140, 154, 170, 132, 140, 128, 145, 143, 118, 158, 138, 162, 142, 151, 137, 146, 165, 189, 132, 148, 126, 129, 139, 157, 125, 121, 115, 141, 113, 155, 137, 150, 130, 132, 142, 136, 135, 131, 174, 169, 141, 171, 139, 137, 147, 125, 119, 139, 139, 119, 120, 134, 145, 164, 161, 136, 141, 120, 126, 149, 131, 139, 136, 142, 127, 146, 127, 143, 146, 133, 143, 128, 140, 95, 184, 170, 198, 133, 176, 150, 182, 128, 165, 164, 134, 125, 141, 180, 130, 223, 133, 134, 134, 150, 132, 151, 140, 130, 145, 120, 136, 126, 135, 126, 144, 118, 136, 119, 162, 136, 157, 190, 122, 130, 147, 145, 145, 145, 140, 148, 127, 143, 135, 198, 128, 126, 128, 133, 146, 163, 130, 143, 147, 141, 152, 154, 141, 179, 149, 157, 139, 171, 157, 139, 145, 138, 151, 136, 110, 160, 164, 159, 131, 137, 128, 117, 137, 126, 146, 136, 130, 131, 125, 144, 146, 172, 141, 147, 117, 190, 149, 137, 146, 165, 147, 133, 154, 149, 130, 178, 144, 146, 142, 141, 143, 113, 134, 179, 229, 128, 142, 135, 132, 72, 166, 122, 140, 144, 132, 149, 131, 131, 148, 154, 135, 140, 145, 136, 176, 144, 140, 146, 141, 168, 165, 142, 138, 138, 131, 110, 140, 126, 132, 137, 148, 139, 156, 137, 149, 148, 127, 140, 154, 147, 153, 119, 128, 126, 147, 169, 140, 149, 94, 136, 122, 135, 142, 131, 120, 138, 129, 137, 140, 126, 126, 160, 135, 140, 139, 147, 138, 117, 178, 127, 185, 136, 128, 137, 118, 127, 131, 129, 114, 134, 141, 144, 129, 127, 142, 92, 142, 128, 137, 155, 130, 130, 128, 152, 123, 116, 127, 151, 163, 129, 122, 132, 151, 130, 136, 150, 126, 208, 143, 126, 159, 146, 128, 149, 138, 137, 146, 139, 135, 128, 132, 145, 170, 139, 136, 149, 140, 169, 131, 136, 120, 172, 139, 105, 157, 136, 151, 145, 166, 152, 146, 139, 147, 121, 136, 147, 145, 163, 137, 131, 170, 137, 127, 166, 125, 133, 153, 131, 161, 162, 141, 114, 141, 134, 128, 118, 158, 184, 149, 156, 133, 127, 142, 133, 169, 141, 135, 133, 136, 133, 153, 189, 146, 155, 134, 150, 128, 171, 128, 136, 140, 126, 122, 130, 122, 161, 137, 161, 125, 142, 122, 138, 150, 133, 159, 139, 139, 137, 157, 162, 135, 154, 140, 159, 132, 148, 133, 166, 144, 147, 164, 156, 144, 162, 123, 169, 129, 173, 159, 136, 138, 163, 133, 150, 138, 142, 152, 138, 135, 148, 143, 138, 138, 140, 121, 146, 124, 172, 134, 121, 130, 161, 174, 147, 132, 108, 162, 201, 119, 139, 157, 159, 142, 152, 134, 170, 133, 161, 117, 138, 151, 202, 129, 127, 144, 177, 143, 143, 148, 159, 144, 186, 135, 137, 155, 168, 160, 132, 133, 161, 128, 158, 144, 123, 125, 109, 146, 132, 168, 143, 142, 133, 141, 134, 135, 139, 141, 131, 149, 126, 135, 144, 121, 157, 145, 130, 121, 171, 165, 141, 146, 132, 144, 112, 142, 154, 92, 152, 138, 153, 142, 149, 116, 118, 145, 172, 136, 118, 128, 125, 138, 149, 135, 144, 157, 143, 124, 140, 153, 150, 123, 123, 144, 138, 128, 123, 156, 165, 145, 131, 178, 129, 143, 153, 179, 144, 115, 150, 130, 127, 149, 146, 128, 137, 149, 128, 139, 140, 138, 156, 127, 122, 145, 134, 130, 143, 149, 131, 152, 140, 125, 122, 124, 133, 122, 140, 127, 142, 149, 136, 156, 145, 139, 134, 149, 148, 136, 142, 126, 121, 129, 142, 138, 144, 145, 134, 140, 128, 133, 160, 127, 134, 135, 156, 155, 134, 176, 139, 58, 158, 154, 141, 146, 149, 143, 147, 131, 138, 128, 128, 148, 137, 135, 129, 133, 132, 144, 176, 128, 147, 144, 151, 147, 136, 136, 141, 154, 152, 154, 151, 115, 140, 140, 168, 139, 141, 127, 168, 158, 149, 135, 129, 134, 157, 144, 126, 135, 140, 132, 122, 143, 167, 133, 159, 144, 133, 155, 142, 163, 126, 152, 130, 141, 135, 153, 124, 137, 131, 144, 151, 143, 146, 133, 119, 125, 155, 140, 134, 124, 166, 161, 164, 148, 155, 148, 149, 140, 138, 132, 131, 142, 162, 138, 137, 158, 131, 145, 131, 141, 143, 143, 139, 169, 147, 138, 129, 126, 142, 147, 145, 160, 135, 135, 142, 131, 146, 145, 153, 128, 142, 137, 119, 150, 130, 135, 140, 134, 132, 138, 153, 159, 137, 151, 139, 142, 137, 114, 162, 137, 144, 146, 126, 142, 163, 156, 159, 133, 143, 125, 161, 116, 139, 146, 175, 146, 143, 117, 126, 135, 127, 153, 126, 157, 140, 136, 137, 165, 141, 141, 136, 144, 138, 123, 120, 136, 174, 136, 130, 125, 148, 168, 154, 149, 129, 149, 139, 120, 146, 162, 177, 143, 178, 143, 135, 126, 142, 149, 164, 140, 159, 172, 145, 127, 141, 95, 145, 165, 146, 141, 188, 143, 132, 162, 165, 140, 109, 152, 139, 138, 144, 159, 134, 145, 145, 137, 137, 135, 141, 144, 133, 158, 133, 177, 150, 137, 165, 131, 138, 145, 139, 136, 158, 141, 136, 158, 147, 134, 122, 154, 117, 122, 175, 140, 130, 137, 139, 140, 140, 138, 138, 126, 133, 148, 130, 152, 139, 133, 144, 130, 154, 140, 148, 109, 147, 146, 123, 173, 122, 141, 132, 137, 150, 138, 140, 140, 127, 93, 122, 146, 135, 134, 134, 130, 147, 144, 150, 131, 146, 137, 132, 143, 135, 162, 146, 144, 151, 121, 194, 124, 176, 140, 118, 140, 170, 135, 182, 141, 137, 181, 137, 126, 138, 172, 116, 144, 142, 139, 143, 143, 172, 132, 125, 130, 140, 142, 150, 152, 137, 160, 141, 131, 129, 178, 139, 127, 153, 131, 135, 124, 151, 116, 150, 153, 169, 130, 128, 134, 153, 138, 152, 149, 174, 129, 148, 125, 117, 139, 197, 176, 120, 136, 169, 131, 119, 150, 147, 116, 123, 156, 122, 217, 155, 142, 121, 162, 130, 135, 151, 112, 135, 144, 146, 149, 116, 144, 173, 143, 141, 127, 150, 159, 141, 219, 132, 155, 125, 124, 161, 113, 172, 157, 137, 143, 144, 130, 120, 147, 197, 133, 141, 139, 129, 133, 148, 128, 138, 133, 144, 129, 153, 193, 170, 125, 97, 152, 142, 123, 123, 129, 135, 99, 146, 166, 121, 119, 177, 148, 147, 133, 145, 135, 134, 158, 152, 143, 135, 159, 178, 128, 116, 141, 148, 140, 122, 146, 151, 128, 142, 148, 131, 166, 128, 100, 82, 128, 139, 144, 137, 133, 143, 193, 183, 161, 161, 126, 129, 171, 205, 137, 176, 136, 122, 124, 145, 140, 145, 159, 140, 132, 128, 140, 151, 129, 123, 150, 157, 165, 133, 193, 158, 75, 77, 133, 113, 147, 138, 130, 137, 120, 139, 128, 125, 154, 135, 125, 129, 125, 110, 143, 147, 103, 170, 149, 140, 131, 134, 137, 177, 158, 166, 200, 134, 95, 172, 126, 172, 129, 132, 124, 131, 174, 136, 132, 135, 126, 200, 148, 134, 129, 182, 132, 120, 133, 165, 139, 165, 153, 121, 156, 147, 168, 120, 147, 113, 123, 136, 161, 145, 136, 144, 151, 160, 136, 173, 137, 142, 131, 134, 136, 151, 127, 161, 133, 190, 111, 152, 151, 169, 138, 115, 132, 124, 150, 168, 136, 137, 161, 130, 130, 123, 140, 142, 146, 151, 155, 153, 138, 123, 141, 160, 136, 119, 147, 125, 143, 153, 149, 145, 125, 134, 114, 151, 193, 122, 155, 131, 132, 149, 125, 145, 148, 152, 127, 145, 153, 131, 135, 125, 122, 176, 122, 148, 146, 74, 135, 158, 139, 203, 122, 126, 126, 152, 176, 136, 123, 149, 125, 142, 128, 122, 128, 122, 145, 121, 155, 130, 131, 137, 145, 129, 141, 125, 146, 140, 119, 134, 133, 160, 125, 132, 132, 147, 214, 166, 122, 137, 136, 153, 136, 162, 176, 206, 141, 168, 95, 134, 131, 150, 145, 138, 139, 153, 144, 161, 110, 131, 134, 150, 164, 131, 155, 78, 145, 134, 197, 141, 145, 152, 157, 155, 116, 153, 160, 131, 156, 147, 127, 115, 137, 132, 147, 142, 148, 140, 173, 169, 129, 144, 129, 147, 148, 148, 167, 82, 155, 145, 160, 170, 123, 124, 148, 152, 134, 106, 129, 125, 127, 129, 122, 131, 135, 131, 127, 132, 159, 138, 83, 129, 130, 157, 124, 73, 124, 177, 155, 159, 149, 125, 154, 134, 147, 125, 145, 146, 158, 128, 146, 134, 115, 140, 139, 126, 155, 137, 131, 149, 152, 144, 134, 137, 135, 136, 147, 128, 126, 155, 117, 115, 127, 164, 129, 165, 121, 137, 138, 159, 131, 147, 138, 143, 149, 143, 117, 138, 136, 138, 138, 139, 153, 146, 123, 167, 137, 126, 129, 121, 128, 147, 134, 173, 159, 133, 125, 139, 154, 159, 142, 151, 134, 164, 136, 162, 118, 138, 148, 198, 133, 127, 143, 142, 144, 140, 146, 154, 144, 184, 132, 139, 154, 160, 155, 134, 134, 159, 132, 98, 168, 123, 127, 159, 144, 134, 168, 140, 141, 136, 143, 135, 134, 138, 143, 133, 149, 130, 136, 144, 139, 154, 145, 162, 123, 143, 166, 143, 130, 132, 141, 118, 143, 155, 110, 150, 152, 153, 141, 145, 118, 121, 144, 171, 139, 141, 134, 129, 140, 149, 137, 127, 127, 144, 125, 139, 151, 148, 121, 129, 141, 138, 133, 123, 156, 150, 152, 142, 174, 130, 148, 150, 125, 143, 116, 123, 133, 128, 144, 147, 150, 136, 147, 130, 140, 141, 139, 155, 130, 125, 123, 134, 134, 142, 149, 130, 150, 142, 130, 120, 161, 150, 178, 139, 163, 143, 164, 134, 154, 154, 140, 135, 145, 136, 138, 177, 127, 121, 128, 134, 139, 143, 142, 133, 143, 124, 135, 141, 126, 136, 136, 154, 151, 136, 174, 143, 63, 156, 127, 140, 153, 135, 144, 147, 133, 148, 133, 136, 149, 156, 136, 132, 134, 133, 143, 170, 132, 146, 149, 151, 149, 137, 140, 137, 154, 145, 145, 152, 119, 137, 143, 161, 141, 142, 129, 170, 156, 149, 136, 129, 138, 150, 145, 127, 135, 138, 133, 122, 142, 160, 139, 156, 145, 134, 154, 145, 159, 128, 151, 136, 140, 136, 152, 146, 137, 139, 145, 151, 143, 142, 137, 114, 128, 147, 151, 136, 124, 165, 137, 182, 150, 130, 146, 147, 139, 140, 132, 133, 140, 156, 138, 136, 155, 130, 149, 134, 143, 142, 144, 177, 165, 146, 139, 131, 129, 130, 148, 146, 156, 140, 136, 141, 174, 187, 145, 160, 126, 142, 129, 117, 150, 133, 138, 141, 133, 153, 136, 153, 127, 138, 173, 139, 141, 137, 118, 156, 131, 143, 146, 130, 140, 156, 134, 153, 135, 144, 128, 154, 96, 138, 149, 147, 135, 143, 125, 127, 136, 129, 125, 128, 155, 141, 136, 137, 143, 119, 142, 133, 146, 146, 125, 116, 137, 170, 136, 130, 125, 146, 163, 152, 139, 131, 151, 139, 133, 144, 154, 184, 144, 170, 147, 137, 129, 144, 152, 163, 139, 160, 124, 144, 131, 143, 184, 145, 161, 145, 142, 180, 141, 133, 157, 165, 138, 101, 151, 138, 141, 143, 144, 137, 145, 146, 139, 140, 135, 142, 146, 152, 157, 134, 147, 148, 138, 140, 132, 139, 143, 140, 129, 137, 141, 136, 156, 147, 136, 122, 150, 196, 142, 134, 141, 130, 137, 137, 158, 141, 138, 139, 128, 133, 146, 123, 157, 136, 138, 143, 133, 154, 140, 146, 108, 139, 145, 126, 138, 162, 143, 132, 132, 149, 135, 140, 139, 129, 110, 125, 146, 137, 156, 158, 132, 146, 143, 150, 132, 145, 137, 150, 143, 138, 158, 145, 139, 149, 121};
+ model->setOperandValue(op5, op5_init, sizeof(uint8_t) * 4608);
+ static int32_t op7_init[] = {-16901, 4449, 3965, -23286, -10059, -1785, -2234, -21891, 9417, -2026, 9101, 12667, 10299, 11108, 3619, 4683, 5799, -16001, 5942, -11312, -1171, 4334, 8675, 16691, 21512, -6780, 3812, -10836, -20051, 12559, 31177, 4525, -10155, 15375, -1332, 3547, 2048, 9557, 7992, 1621, -3693, 1824, 9352, 1859, 2062, -4582, -25, -20228, -5152, -13316, 15779, 10439, -4107, -4946, -12821, 6077, -16842, 4528, -12243, 1023, -4170, -17171, 2325, 16396, 12713, 7235, 16232, 14657, 8080, -6237, -8406, -5553, -12955, 2926, 7067, 4498, -4133, 15279, -5016, 6875, -21536, -7709, 14359, 12586, 123, -4673, -6055, -16397, 15179, 1279, -7635, -12538, -3795, -1332, 4332, 6731, -3023, 4746, -20239, 3065, 12195, 10044, 4433, -8726, -970, -1935, -11520, 6733, -6513, 24782, -6492, 11639, -3920, 13047, 8108, 16503, 48, -11619, -3842, -15885, -1757, 11147, 15750, -14682, -2592, -6612, -11423, -7749, 13756, -6593, -6915, -1805, -11682, 9916, -12425, -5655, 14255, -17784, 1185, 20663, 9882, -27549, 21974, -84, 1919, 1548, -494, 15093, 6235, 13820, -18676, -16112, 5643, 146, 7939, 1603, 1037, -5267, -3660, -15951, 20711, -1049, 20945, -18690, -6009, -9156, 9504, -15344, -4052, -11799, -2073, -12886, -16852, -11185, 1192, -25083, -12645, -640, -3940, 5531, -7229, -12719, -3698, -2881, 9241, -21153, 2735, 12272, -21537, 15757, 10138, 12391, 3447, -13813, 19177, 23879, 70, 10091, -20352, 11425, -3253, 3787, 18077, -3557, 13823, 693, -1297, 11054, -8435, 12973, -923, -9163, -8248, 9414, 16947, -2134, -20935, -28123, 10053, 4490, -2214, -23097, -9177, -30591, 9190, 7921, -761, 18767, -1328, 22459, 17329, 15465, 7843, 8051, -6954, -22734, 3038, -8171, -10148, 5029, 21180, -1052, 14303, 7171, -11095, 18595, 2503, -6009, 5944, -3300, 5731, -13998, 7337, 11717, -11183, 13014, 11609, 177, -488, 526, -8657, -4750, 8371, -10453, -8307, 5185, 14345, -11431, 11040, 1160, 15900, -1401, -12290, -1433, 15265, 4175, 12776, -20427, 16135, -15025, -10462, -37082, 4406, 8702, -17378, 11579, -8827, -10279, -4222, 16632, -1762, -31314, 323, 5283, 10865, -11773, 3823, -19999, 6989, -18313, -3277, -7689, -14748, -8464, -30811, -2777, 666, -4384, -19020, -30122, -7262, 6990, -2015, 6365, -13495, -12688, 26821, -8526, 19070, 21416, 9448, 288, 11415, 1273, -9658, -3833, -14345, 10084, -5824, -3904, 9669, 4332, -675, -2236, -3854, 5123, -7581, 1066, -2452, -9572, 8330, 15054, 15034, 11075, 176, 2706, 3172, -294, 1245, -13372, -14225, -11066, -8162, -11312, 8846, -3256, -1683, -6746, -23836, -13750, -8273, -9716, 11006, 26046, -14739, 14409, -13172, 6745, 19747, 8155, 10942, -22692, 10969, -18064, 10597, -1499, 5057, -6984, 15501, -749, -17462, 20375, -10586, -6092, 26871, 878, 7549, -33189, -10011, 19277, -12227, -18829, 8400, -1775, 10221, -9755, -7572, 12170, -4053, 6579, 24473, -17152, 112, -13584, -3371, 20573, -6723, 21620, -2802, -16869, -9138, 15488, 4183, -10783, -14081, 12424, 1468, -12846, 4267, 7994, 18709, -9331, 2630, 14006, -16854, -3820, 2525, 16678, -3602, 9535, 5280, 4403, 8962, 8832, -3734, 11573, 1223, -596, 3990, -20316, 1488, 15797, 19137, 13164, 16770, 10930, 16829, -1483, -23118, -24575, 7059, 588, -13253, -21165, -8986, -4418, 8744, 2545, -6338, -25916, -2508, -3207, -17457, 9626, 2462, -6383, 11525, -2759, 994, -2043, 15717, 19734, -582, 7986, 9676, 20477, 10243, 9840, -4244, -17841, 9844, -9827, -6838, 7419, 2182, -2991, 5775, -22777, 1785, 5472, -10683, -11764, 5235, -6382, -15058, 22259, -12756, 7974, 10406, -20242, -11524, -21360, 19737, 3245, -12707, -8404, 16428, -4580, 11957, -16344, -8386, 9355};
+ model->setOperandValue(op7, op7_init, sizeof(int32_t) * 512);
+ static uint8_t op8_init[] = {126, 134, 134, 139, 135, 128, 139, 137, 140, 137, 135, 135, 140, 133, 129, 137, 143, 137, 136, 143, 137, 135, 128, 150, 145, 124, 137, 133, 133, 161, 132, 135, 147, 130, 145, 139, 141, 132, 145, 136, 141, 137, 136, 139, 138, 129, 160, 135, 136, 139, 140, 133, 143, 133, 138, 148, 141, 134, 153, 137, 137, 150, 128, 134, 133, 156, 127, 134, 138, 127, 139, 142, 141, 140, 134, 131, 144, 146, 133, 132, 119, 146, 136, 136, 133, 143, 128, 135, 142, 139, 133, 134, 132, 155, 150, 143, 139, 136, 130, 142, 135, 133, 138, 133, 136, 142, 140, 147, 131, 141, 133, 134, 137, 139, 140, 131, 141, 158, 147, 136, 139, 134, 134, 143, 142, 143, 131, 106, 143, 134, 134, 136, 134, 143, 140, 138, 145, 136, 143, 132, 160, 132, 142, 137, 142, 118, 145, 153, 151, 143, 135, 130, 140, 143, 135, 136, 137, 140, 140, 141, 134, 141, 130, 141, 133, 132, 141, 133, 140, 135, 104, 136, 130, 140, 143, 141, 140, 134, 133, 132, 128, 139, 138, 138, 137, 146, 132, 107, 137, 129, 143, 144, 139, 128, 137, 130, 126, 133, 139, 133, 133, 144, 152, 139, 135, 145, 143, 139, 139, 155, 146, 129, 136, 141, 127, 135, 128, 133, 131, 127, 126, 135, 131, 131, 136, 139, 142, 128, 135, 131, 135, 134, 132, 140, 129, 131, 138, 135, 146, 137, 145, 134, 134, 141, 143, 140, 150, 137, 141, 140, 138, 136, 132, 129, 138, 133, 145, 136, 134, 147, 139, 139, 129, 122, 135, 148, 137, 138, 142, 152, 143, 146, 131, 167, 139, 129, 141, 129, 143, 128, 126, 138, 129, 125, 132, 128, 130, 137, 136, 144, 126, 145, 135, 135, 143, 148, 140, 144, 124, 144, 146, 135, 137, 142, 129, 137, 139, 145, 149, 139, 136, 124, 142, 149, 139, 146, 140, 143, 126, 136, 130, 130, 139, 136, 132, 141, 120, 136, 144, 121, 135, 123, 109, 135, 137, 129, 137, 144, 138, 137, 137, 139, 140, 135, 140, 125, 142, 113, 140, 137, 133, 149, 123, 141, 142, 135, 139, 145, 132, 132, 150, 140, 136, 126, 140, 136, 138, 143, 136, 139, 138, 133, 139, 123, 153, 177, 137, 152, 146, 138, 135, 143, 145, 137, 135, 147, 134, 133, 126, 133, 144, 136, 134, 133, 138, 126, 135, 136, 144, 141, 132, 144, 139, 187, 135, 131, 137, 104, 132, 131, 134, 144, 135, 129, 137, 147, 142, 130, 141, 130, 143, 138, 132, 158, 129, 135, 156, 139, 134, 128, 131, 130, 135, 125, 144, 129, 142, 138, 137, 141, 133, 133, 142, 127, 142, 140, 137, 119, 137, 142, 137, 135, 139, 131, 134, 132, 134, 124, 142, 147, 140, 135, 137, 111, 142, 140, 158, 142, 139, 141, 125, 132, 140, 137, 126, 128, 130, 145, 120, 139, 139, 139, 133, 131, 131, 138, 131, 137, 139, 141, 136, 133, 139, 135, 141, 131, 140, 136, 132, 142, 133, 139, 128, 146, 126, 125, 123, 142, 134, 136, 138, 141, 135, 123, 137, 127, 145, 145, 130, 133, 125, 152, 143, 136, 154, 127, 144, 139, 144, 136, 137, 139, 135, 129, 134, 130, 134, 140, 129, 160, 126, 136, 119, 137, 129, 129, 138, 130, 146, 115, 114, 133, 156, 145, 142, 126, 140, 128, 132, 140, 131, 131, 132, 136, 132, 139, 141, 145, 148, 136, 141, 130, 138, 132, 139, 127, 135, 142, 144, 131, 133, 129, 142, 135, 136, 133, 131, 127, 119, 147, 125, 145, 140, 142, 129, 129, 138, 128, 135, 136, 141, 140, 118, 124, 138, 144, 141, 131, 137, 139, 128, 146, 137, 157, 138, 145, 125, 127, 128, 144, 154, 147, 132, 132, 140, 122, 136, 139, 125, 142, 143, 134, 135, 138, 140, 122, 147, 141, 143, 126, 137, 128, 150, 160, 139, 135, 135, 135, 143, 155, 142, 127, 131, 137, 147, 126, 148, 137, 133, 141, 130, 131, 133, 128, 121, 129, 137, 136, 149, 143, 137, 153, 132, 131, 145, 121, 144, 148, 138, 133, 140, 158, 131, 120, 137, 136, 135, 130, 128, 127, 146, 131, 141, 133, 144, 154, 143, 131, 145, 131, 134, 146, 133, 146, 134, 127, 132, 152, 139, 131, 127, 130, 127, 129, 129, 134, 149, 137, 134, 133, 133, 143, 143, 135, 146, 124, 132, 130, 141, 143, 137, 134, 130, 129, 133, 157, 130, 144, 131, 154, 129, 136, 129, 124, 136, 149, 143, 145, 140, 148, 131, 135, 121, 146, 126, 158, 129, 129, 134, 137, 135, 135, 129, 139, 140, 134, 124, 156, 140, 134, 129, 132, 124, 140, 155, 121, 140, 146, 121, 130, 126, 113, 149, 136, 136, 124, 123, 125, 136, 124, 131, 138, 136, 125, 127, 136, 134, 118, 132, 146, 127, 130, 130, 139, 141, 128, 139, 135, 144, 139, 141, 126, 143, 130, 147, 131, 142, 136, 132, 136, 146, 128, 137, 133, 146, 132, 133, 130, 147, 136, 129, 139, 129, 118, 136, 151, 125, 151, 154, 125, 135, 128, 129, 136, 131, 133, 137, 139, 139, 138, 136, 129, 134, 141, 137, 135, 137, 138, 145, 138, 142, 143, 130, 131, 147, 126, 134, 131, 135, 138, 127, 142, 137, 141, 145, 129, 144, 126, 141, 142, 142, 137, 152, 131, 131, 137, 124, 140, 130, 126, 146, 130, 153, 135, 142, 130, 118, 140, 141, 123, 128, 133, 127, 128, 135, 136, 135, 128, 134, 138, 148, 140, 133, 134, 125, 144, 148, 132, 146, 136, 129, 136, 135, 159, 130, 127, 129, 138, 139, 141, 137, 130, 132, 156, 128, 174, 147, 142, 132, 140, 133, 134, 131, 138, 145, 132, 115, 139, 129, 122, 146, 119, 138, 144, 137, 135, 136, 155, 118, 126, 144, 141, 131, 142, 131, 151, 130, 141, 132, 149, 135, 138, 124, 136, 147, 130, 138, 126, 129, 139, 151, 128, 149, 123, 132, 133, 134, 137, 171, 145, 124, 133, 128, 130, 131, 150, 140, 127, 126, 139, 134, 132, 137, 133, 148, 137, 138, 141, 125, 133, 131, 129, 130, 133, 147, 140, 140, 133, 121, 133, 126, 142, 136, 140, 131, 135, 147, 141, 131, 139, 124, 121, 148, 134, 122, 126, 128, 135, 142, 139, 140, 157, 133, 129, 140, 125, 144, 150, 98, 134, 132, 128, 114, 150, 129, 130, 148, 124, 150, 133, 141, 140, 126, 152, 132, 151, 135, 117, 138, 146, 132, 147, 129, 137, 109, 123, 139, 145, 142, 116, 157, 139, 149, 131, 125, 139, 141, 149, 146, 142, 131, 129, 135, 124, 142, 141, 128, 131, 106, 116, 141, 124, 118, 130, 134, 157, 146, 135, 130, 168, 138, 141, 132, 130, 136, 132, 143, 145, 122, 137, 139, 132, 168, 125, 121, 135, 145, 143, 126, 130, 137, 138, 120, 138, 118, 120, 129, 142, 144, 132, 151, 148, 135, 131, 139, 123, 110, 135, 143, 155, 140, 134, 144, 146, 131, 125, 138, 151, 138, 149, 137, 134, 135, 129, 137, 116, 134, 127, 129, 123, 128, 132, 129, 137, 141, 139, 149, 133, 143, 122, 134, 141, 123, 132, 125, 143, 134, 124, 141, 147, 139, 132, 143, 130, 124, 144, 118, 131, 131, 131, 120, 125, 147, 141, 124, 140, 130, 148, 134, 144, 138, 142, 157, 136, 113, 125, 140, 140, 137, 133, 132, 139, 116, 146, 128, 133, 140, 136, 144, 128, 121, 125, 138, 150, 131, 139, 144, 125, 156, 131, 128, 125, 132, 129, 127, 122, 129, 131, 134, 141, 123, 124, 141, 127, 128, 145, 149, 143, 135, 135, 131, 143, 149, 129, 136, 134, 136, 143, 140, 144, 127, 120, 142, 145, 129, 131, 145, 135, 133, 140, 139, 122, 123, 137, 100, 122, 137, 130, 142, 129, 136, 128, 136, 145, 137, 148, 128, 150, 144, 117, 134, 121, 132, 184, 139, 132, 139, 143, 139, 135, 128, 135, 132, 128, 128, 130, 122, 123, 142, 126, 147, 129, 136, 133, 144, 140, 142, 108, 148, 150, 140, 119, 138, 124, 156, 133, 134, 134, 135, 138, 160, 153, 136, 140, 145, 150, 125, 125, 137, 124, 125, 98, 134, 142, 137, 132, 136, 129, 141, 134, 155, 114, 133, 137, 130, 128, 114, 148, 134, 120, 148, 140, 139, 145, 134, 137, 131, 135, 136, 131, 142, 121, 141, 133, 143, 138, 136, 143, 145, 142, 130, 147, 124, 116, 117, 121, 136, 129, 131, 135, 143, 144, 141, 113, 143, 133, 138, 110, 129, 141, 142, 135, 147, 153, 131, 130, 143, 124, 138, 125, 152, 148, 133, 142, 159, 126, 144, 134, 140, 134, 134, 134, 124, 128, 180, 145, 130, 130, 142, 134, 120, 131, 124, 137, 152, 123, 134, 119, 120, 142, 131, 126, 124, 139, 142, 142, 150, 145, 137, 138, 147, 128, 130, 144, 130, 103, 126, 147, 133, 142, 132, 125, 151, 131, 130, 160, 128, 137, 128, 141, 132, 150, 130, 114, 142, 134, 142, 150, 134, 140, 139, 139, 131, 131, 136, 132, 135, 134, 134, 132, 143, 125, 130, 137, 147, 139, 140, 113, 131, 139, 142, 140, 148, 123, 139, 154, 134, 130, 135, 133, 132, 139, 127, 137, 156, 143, 147, 130, 146, 143, 157, 151, 146, 142, 137, 142, 136, 136, 138, 164, 165, 136, 150, 137, 130, 137, 141, 124, 124, 128, 133, 140, 135, 126, 136, 123, 137, 143, 140, 139, 141, 140, 134, 141, 137, 128, 142, 138, 136, 141, 130, 128, 144, 148, 128, 141, 142, 138, 146, 131, 165, 137, 124, 142, 134, 147, 125, 134, 141, 133, 136, 137, 135, 145, 140, 111, 126, 125, 129, 138, 137, 153, 124, 126, 141, 131, 132, 131, 145, 143, 138, 135, 132, 143, 138, 128, 137, 107, 132, 138, 129, 130, 139, 138, 144, 141, 121, 140, 138, 135, 145, 122, 133, 125, 146, 136, 133, 119, 135, 130, 133, 140, 134, 135, 128, 138, 135, 140, 130, 136, 150, 140, 134, 142, 138, 127, 130, 124, 136, 126, 139, 137, 143, 140, 155, 130, 137, 157, 122, 134, 139, 120, 137, 127, 125, 138, 137, 144, 147, 136, 137, 142, 148, 144, 138, 143, 139, 154, 121, 134, 138, 136, 139, 142, 134, 140, 126, 143, 144, 119, 140, 130, 146, 131, 124, 137, 139, 158, 140, 128, 149, 127, 129, 148, 148, 140, 131, 137, 134, 143, 115, 142, 147, 132, 139, 132, 146, 132, 142, 153, 133, 149, 139, 134, 147, 138, 127, 127, 136, 147, 133, 129, 134, 125, 131, 148, 140, 140, 136, 129, 144, 140, 124, 154, 133, 144, 137, 142, 142, 136, 136, 136, 149, 139, 134, 135, 134, 132, 132, 136, 119, 127, 134, 136, 148, 124, 149, 147, 130, 139, 126, 138, 141, 143, 128, 133, 137, 140, 134, 134, 134, 119, 138, 144, 128, 132, 130, 132, 129, 137, 143, 135, 132, 126, 136, 146, 148, 135, 140, 133, 137, 137, 123, 124, 145, 146, 122, 129, 135, 141, 146, 133, 130, 125, 127, 140, 135, 137, 134, 136, 134, 141, 139, 129, 145, 147, 122, 137, 134, 142, 142, 138, 142, 133, 132, 128, 136, 142, 164, 137, 124, 124, 140, 149, 136, 134, 136, 131, 116, 147, 137, 123, 141, 128, 146, 129, 131, 132, 134, 131, 133, 126, 138, 123, 134, 141, 139, 134, 150, 134, 132, 132, 146, 132, 132, 121, 129, 133, 121, 134, 132, 121, 131, 130, 141, 136, 129, 130, 142, 137, 143, 134, 146, 132, 131, 133, 145, 125, 132, 137, 142, 129, 124, 143, 136, 144, 137, 127, 132, 146, 149, 138, 149, 147, 137, 132, 143, 126, 129, 142, 132, 135, 121, 128, 132, 133, 148, 133, 140, 136, 132, 126, 133, 134, 150, 139, 109, 138, 136, 134, 131, 135, 128, 134, 138, 130, 154, 131, 161, 144, 138, 132, 147, 125, 134, 143, 133, 131, 122, 148, 139, 133, 156, 136, 133, 141, 121, 142, 130, 134, 135, 139, 136, 131, 140, 124, 133, 147, 139, 132, 130, 127, 149, 148, 128, 128, 140, 130, 138, 137, 133, 137, 131, 132, 130, 127, 138, 144, 139, 141, 133, 135, 144, 129, 137, 127, 132, 143, 177, 134, 132, 147, 136, 144, 119, 151, 141, 140, 140, 131, 132, 125, 142, 133, 138, 134, 139, 137, 144, 140, 122, 132, 145, 144, 131, 144, 130, 144, 130, 135, 134, 142, 136, 137, 126, 130, 134, 163, 129, 125, 140, 135, 140, 147, 134, 138, 142, 137, 147, 140, 150, 120, 134, 143, 141, 128, 142, 134, 140, 140, 120, 140, 132, 135, 154, 133, 129, 147, 138, 147, 140, 130, 129, 145, 127, 145, 136, 124, 136, 141, 135, 133, 129, 150, 130, 138, 138, 153, 136, 132, 145, 140, 125, 138, 130, 136, 138, 150, 139, 141, 137, 131, 135, 126, 143, 128, 129, 148, 122, 132, 120, 135, 141, 134, 141, 142, 133, 144, 141, 95, 129, 137, 119, 132, 137, 135, 146, 133, 134, 136, 141, 129, 126, 120, 135, 141, 129, 138, 146, 138, 143, 143, 136, 190, 134, 128, 134, 119, 135, 126, 135, 131, 146, 123, 144, 129, 128, 149, 138, 129, 131, 144, 142, 122, 123, 121, 142, 141, 145, 151, 142, 142, 132, 131, 145, 132, 140, 142, 153, 141, 138, 145, 131, 141, 130, 138, 122, 125, 118, 141, 126, 124, 134, 132, 136, 114, 142, 128, 149, 131, 140, 137, 137, 125, 129, 139, 158, 140, 139, 148, 134, 136, 141, 134, 156, 143, 148, 136, 142, 135, 138, 150, 132, 131, 136, 131, 129, 135, 177, 133, 147, 138, 138, 136, 118, 148, 138, 133, 138, 139, 131, 140, 146, 160, 137, 147, 143, 135, 147, 140, 127, 128, 124, 141, 146, 122, 137, 129, 144, 138, 137, 136, 136, 139, 129, 125, 145, 141, 133, 138, 135, 130, 145, 109, 148, 128, 147, 133, 145, 135, 137, 140, 136, 117, 150, 141, 139, 137, 136, 142, 133, 137, 144, 142, 129, 143, 132, 137, 129, 129, 136, 131, 141, 150, 123, 136, 135, 133, 132, 139, 138, 119, 134, 140, 128, 127, 139, 139, 145, 126, 165, 135, 135, 150, 136, 135, 138, 120, 139, 140, 123, 168, 137, 125, 132, 134, 127, 138, 134, 141, 140, 155, 127, 148, 138, 128, 169, 138, 129, 152, 147, 142, 205, 142, 132, 151, 152, 131, 127, 132, 137, 133, 139, 137, 123, 140, 153, 136, 141, 136, 130, 141, 149, 133, 144, 140, 141, 138, 129, 148, 117, 146, 132, 139, 155, 139, 130, 142, 122, 136, 130, 134, 135, 142, 145, 133, 130, 153, 124, 148, 148, 137, 138, 134, 134, 130, 129, 134, 138, 147, 128, 147, 134, 135, 136, 136, 134, 143, 137, 134, 132, 172, 129, 150, 116, 126, 144, 126, 142, 128, 137, 127, 132, 139, 143, 135, 131, 144, 136, 129, 156, 127, 146, 127, 127, 144, 148, 140, 140, 137, 126, 136, 134, 131, 124, 120, 131, 96, 141, 152, 129, 145, 126, 149, 134, 123, 142, 154, 144, 142, 137, 135, 134, 120, 135, 123, 140, 136, 140, 137, 133, 123, 133, 140, 142, 131, 127, 142, 141, 133, 136, 140, 128, 150, 137, 129, 139, 131, 127, 135, 136, 147, 126, 142, 133, 135, 131, 134, 131, 127, 143, 125, 134, 135, 151, 136, 136, 130, 127, 125, 140, 124, 127, 138, 140, 147, 135, 133, 133, 120, 142, 135, 144, 117, 138, 150, 131, 144, 149, 126, 116, 129, 138, 131, 147, 125, 143, 133, 139, 129, 132, 145, 138, 136, 135, 141, 129, 137, 134, 138, 134, 139, 132, 140, 133, 135, 134, 138, 128, 138, 133, 135, 118, 133, 163, 125, 123, 141, 136, 147, 145, 137, 132, 137, 139, 146, 131, 145, 133, 133, 165, 123, 130, 133, 136, 136, 140, 136, 153, 116, 122, 140, 125, 140, 123, 142, 134, 143, 118, 115, 151, 136, 124, 134, 148, 140, 141, 140, 125, 134, 145, 117, 134, 124, 139, 126, 149, 127, 133, 134, 145, 150, 126, 144, 125, 132, 127, 112, 150, 162, 139, 121, 145, 127, 123, 140, 137, 142, 139, 135, 145, 139, 145, 137, 134, 119, 137, 135, 140, 126, 136, 147, 126, 155, 132, 130, 139, 142, 148, 140, 128, 124, 127, 110, 139, 132, 137, 133, 130, 140, 140, 147, 127, 114, 134, 134, 182, 148, 136, 132, 140, 128, 136, 134, 134, 142, 147, 137, 135, 145, 135, 141, 144, 133, 165, 133, 141, 135, 143, 143, 143, 129, 134, 135, 153, 120, 130, 133, 143, 137, 120, 129, 140, 146, 140, 135, 135, 132, 125, 149, 130, 127, 137, 131, 129, 124, 131, 147, 125, 132, 136, 132, 135, 132, 125, 138, 150, 128, 139, 137, 140, 141, 135, 142, 132, 127, 122, 130, 161, 139, 135, 133, 132, 118, 137, 136, 131, 124, 132, 125, 128, 139, 148, 134, 131, 133, 144, 147, 120, 131, 148, 141, 128, 139, 151, 138, 149, 132, 156, 145, 148, 125, 130, 146, 141, 114, 133, 144, 130, 131, 113, 131, 137, 139, 142, 143, 138, 134, 122, 147, 134, 135, 132, 142, 121, 147, 125, 125, 135, 147, 124, 147, 121, 128, 161, 141, 149, 129, 143, 125, 136, 147, 135, 143, 140, 140, 137, 137, 136, 108, 130, 117, 122, 124, 130, 136, 144, 152, 119, 159, 131, 149, 130, 134, 119, 129, 126, 139, 133, 128, 128, 131, 120, 124, 125, 136, 138, 152, 123, 129, 134, 121, 133, 140, 130, 123, 129, 167, 143, 128, 141, 121, 144, 135, 152, 123, 114, 137, 137, 144, 142, 135, 135, 131, 130, 133, 126, 134, 125, 137, 137, 123, 125, 147, 144, 140, 128, 118, 128, 143, 116, 133, 137, 141, 131, 138, 138, 138, 144, 130, 144, 129, 129, 131, 140, 138, 122, 129, 146, 139, 150, 135, 148, 141, 140, 148, 132, 130, 135, 133, 123, 130, 129, 118, 136, 133, 114, 152, 121, 133, 131, 135, 146, 143, 131, 153, 117, 135, 148, 132, 131, 138, 141, 123, 122, 127, 136, 142, 132, 150, 137, 137, 145, 129, 165, 129, 153, 152, 133, 142, 119, 118, 136, 118, 142, 131, 144, 122, 132, 149, 134, 107, 135, 115, 139, 138, 137, 140, 129, 134, 137, 132, 155, 135, 142, 145, 145, 135, 132, 146, 131, 137, 133, 136, 136, 132, 136, 148, 127, 131, 132, 137, 124, 154, 132, 140, 132, 157, 136, 170, 147, 139, 129, 130, 128, 132, 132, 139, 124, 129, 128, 127, 126, 127, 141, 146, 142, 140, 132, 136, 147, 142, 131, 147, 131, 136, 133, 139, 125, 129, 137, 136, 134, 136, 133, 137, 141, 135, 141, 128, 140, 140, 139, 137, 130, 143, 144, 143, 135, 134, 137, 138, 138, 135, 133, 145, 140, 136, 135, 142, 133, 141, 127, 137, 137, 134, 134, 137, 126, 135, 142, 128, 143, 139, 138, 135, 127, 135, 137, 138, 139, 134, 133, 142, 137, 141, 120, 139, 129, 137, 134, 140, 130, 144, 137, 131, 139, 139, 137, 138, 138, 132, 137, 145, 140, 131, 135, 130, 136, 136, 135, 142, 137, 147, 138, 137, 139, 132, 142, 143, 133, 141, 130, 140, 134, 136, 135, 138, 135, 134, 136, 135, 144, 135, 136, 135, 133, 133, 138, 133, 141, 131, 124, 131, 137, 137, 133, 140, 132, 138, 130, 144, 137, 137, 138, 131, 138, 139, 130, 129, 138, 140, 134, 131, 129, 141, 132, 140, 139, 137, 144, 142, 138, 136, 138, 134, 135, 142, 142, 140, 143, 142, 133, 139, 138, 127, 142, 130, 136, 124, 133, 135, 140, 142, 141, 134, 138, 133, 138, 147, 137, 137, 134, 137, 140, 141, 140, 150, 136, 140, 144, 134, 127, 132, 139, 139, 136, 140, 135, 134, 130, 136, 137, 141, 137, 141, 146, 132, 140, 132, 137, 135, 135, 130, 137, 140, 136, 130, 136, 145, 137, 130, 134, 143, 137, 137, 140, 141, 138, 129, 138, 144, 141, 140, 137, 132, 143, 143, 135, 139, 145, 132, 138, 132, 130, 141, 136, 135, 130, 143, 139, 135, 139, 133, 141, 140, 145, 139, 132, 133, 136, 138, 139, 137, 131, 138, 135, 136, 138, 141, 138, 133, 142, 139, 136, 132, 137, 135, 131, 132, 141, 130, 140, 138, 136, 135, 139, 139, 133, 136, 140, 135, 137, 135, 130, 136, 130, 134, 139, 135, 137, 135, 132, 135, 142, 139, 143, 141, 140, 141, 133, 143, 129, 144, 140, 143, 135, 151, 130, 132, 140, 139, 139, 136, 140, 139, 136, 145, 140, 129, 134, 140, 134, 142, 137, 141, 137, 132, 139, 144, 132, 133, 136, 144, 139, 136, 143, 136, 136, 139, 140, 134, 141, 135, 130, 139, 136, 138, 129, 139, 134, 132, 134, 135, 127, 139, 135, 139, 146, 143, 135, 137, 133, 139, 137, 140, 137, 131, 140, 135, 138, 130, 141, 141, 140, 135, 140, 137, 143, 142, 136, 137, 146, 136, 140, 129, 140, 137, 141, 142, 144, 145, 130, 140, 130, 129, 137, 138, 142, 141, 137, 136, 142, 140, 139, 135, 137, 137, 145, 127, 141, 142, 139, 139, 143, 135, 130, 136, 130, 136, 141, 145, 144, 134, 138, 129, 133, 142, 139, 132, 139, 141, 139, 144, 142, 131, 135, 126, 133, 132, 124, 136, 143, 138, 136, 134, 134, 136, 141, 137, 138, 131, 134, 137, 138, 142, 135, 134, 136, 131, 133, 142, 134, 135, 137, 140, 133, 132, 143, 140, 133, 136, 132, 137, 139, 140, 143, 134, 130, 139, 144, 140, 130, 136, 135, 131, 139, 128, 140, 135, 138, 138, 139, 142, 141, 137, 128, 135, 127, 137, 137, 138, 140, 141, 150, 144, 128, 129, 128, 129, 136, 157, 118, 129, 157, 130, 139, 144, 138, 133, 136, 118, 127, 128, 160, 155, 124, 145, 132, 131, 148, 137, 123, 122, 129, 105, 142, 137, 136, 134, 121, 131, 133, 144, 137, 118, 125, 151, 124, 140, 129, 115, 132, 127, 142, 129, 141, 135, 137, 138, 134, 134, 130, 124, 129, 136, 135, 136, 136, 179, 146, 139, 136, 151, 131, 115, 139, 144, 126, 133, 144, 129, 121, 143, 134, 139, 142, 129, 153, 129, 167, 132, 140, 133, 134, 131, 139, 126, 132, 128, 147, 141, 138, 144, 125, 129, 118, 128, 130, 124, 144, 121, 123, 150, 130, 137, 148, 120, 150, 137, 148, 150, 133, 167, 158, 143, 137, 138, 163, 142, 137, 126, 120, 123, 143, 130, 130, 134, 120, 142, 129, 145, 136, 136, 137, 140, 128, 119, 145, 147, 124, 126, 120, 130, 132, 132, 129, 141, 152, 128, 133, 144, 129, 132, 164, 114, 117, 129, 141, 143, 133, 170, 140, 138, 155, 135, 124, 146, 141, 135, 141, 139, 127, 126, 140, 137, 139, 133, 129, 143, 125, 149, 141, 132, 130, 171, 132, 137, 137, 133, 133, 138, 132, 109, 137, 135, 124, 138, 151, 146, 130, 132, 118, 124, 130, 111, 127, 166, 116, 128, 131, 137, 138, 144, 137, 117, 139, 138, 117, 125, 126, 141, 136, 153, 119, 138, 137, 131, 129, 125, 137, 131, 129, 128, 126, 143, 126, 128, 129, 135, 117, 160, 130, 140, 125, 142, 153, 150, 147, 132, 129, 123, 146, 144, 121, 134, 150, 144, 134, 126, 173, 128, 118, 134, 132, 146, 148, 133, 125, 133, 134, 132, 131, 123, 135, 133, 133, 126, 134, 127, 135, 125, 135, 139, 144, 141, 148, 145, 122, 152, 132, 147, 120, 133, 141, 134, 131, 146, 126, 133, 132, 129, 136, 131, 140, 139, 131, 137, 141, 143, 123, 133, 129, 136, 132, 128, 123, 158, 127, 124, 128, 146, 133, 128, 160, 127, 141, 130, 136, 138, 140, 141, 134, 115, 154, 135, 152, 142, 134, 134, 139, 131, 140, 141, 136, 124, 141, 152, 146, 131, 138, 134, 143, 144, 132, 130, 150, 112, 146, 127, 150, 134, 132, 144, 148, 134, 120, 118, 112, 126, 126, 133, 136, 137, 144, 136, 142, 125, 139, 130, 122, 120, 144, 134, 144, 132, 136, 134, 132, 141, 141, 131, 134, 134, 127, 129, 121, 144, 127, 141, 157, 125, 125, 143, 131, 134, 140, 141, 119, 132, 136, 135, 151, 138, 150, 135, 124, 132, 147, 124, 123, 161, 120, 150, 141, 125, 144, 120, 126, 138, 133, 129, 130, 150, 124, 125, 153, 131, 138, 132, 130, 152, 130, 145, 127, 137, 148, 131, 131, 124, 132, 138, 145, 125, 163, 117, 135, 135, 147, 146, 137, 140, 138, 87, 144, 139, 127, 141, 132, 123, 144, 132, 144, 128, 142, 137, 135, 140, 117, 126, 148, 146, 129, 130, 148, 134, 143, 138, 153, 142, 130, 122, 127, 150, 141, 133, 128, 133, 135, 152, 124, 135, 123, 149, 139, 147, 129, 141, 119, 135, 132, 138, 141, 134, 137, 142, 136, 141, 135, 130, 132, 128, 139, 135, 132, 138, 118, 134, 137, 137, 152, 124, 131, 138, 147, 149, 136, 121, 128, 122, 135, 125, 145, 141, 135, 134, 130, 133, 141, 140, 138, 132, 127, 129, 133, 139, 141, 125, 132, 134, 129, 137, 136, 122, 135, 140, 134, 150, 145, 146, 150, 121, 135, 137, 135, 137, 138, 143, 136, 136, 130, 152, 132, 146, 123, 136, 145, 137, 144, 127, 135, 157, 130, 142, 136, 133, 127, 136, 132, 129, 137, 131, 141, 137, 139, 147, 151, 141, 135, 126, 141, 127, 133, 123, 124, 152, 137, 128, 129, 138, 107, 144, 134, 134, 129, 133, 132, 131, 146, 143, 130, 154, 128, 144, 136, 149, 141, 145, 140, 141, 141, 136, 136, 139, 140, 132, 136, 133, 137, 147, 136, 125, 135, 135, 123, 147, 144, 137, 146, 132, 133, 130, 137, 131, 134, 142, 135, 129, 140, 131, 137, 129, 141, 132, 144, 135, 146, 145, 124, 139, 136, 134, 138, 139, 134, 137, 132, 140, 133, 136, 142, 136, 158, 134, 132, 143, 144, 136, 136, 144, 137, 134, 122, 143, 131, 157, 135, 142, 142, 137, 140, 138, 137, 134, 141, 130, 135, 137, 129, 141, 146, 143, 139, 124, 140, 124, 129, 134, 116, 142, 144, 147, 132, 131, 138, 132, 149, 135, 132, 149, 141, 143, 136, 133, 146, 148, 138, 130, 126, 148, 142, 143, 157, 132, 139, 143, 113, 123, 136, 133, 114, 138, 140, 154, 117, 118, 142, 136, 142, 123, 136, 148, 128, 147, 139, 134, 140, 150, 121, 144, 145, 141, 131, 135, 130, 153, 139, 130, 130, 140, 141, 131, 133, 142, 138, 154, 137, 127, 138, 134, 145, 136, 134, 121, 140, 122, 150, 145, 129, 131, 146, 134, 134, 136, 139, 137, 142, 129, 144, 126, 128, 134, 151, 138, 139, 140, 133, 134, 136, 143, 136, 147, 134, 133, 134, 132, 142, 134, 138, 151, 145, 134, 147, 141, 135, 141, 137, 129, 124, 141, 135, 134, 144, 126, 139, 143, 141, 134, 130, 127, 136, 131, 132, 138, 122, 133, 134, 137, 131, 143, 142, 129, 133, 146, 127, 122, 134, 139, 135, 135, 140, 145, 134, 135, 129, 134, 134, 127, 141, 120, 138, 141, 142, 146, 120, 139, 135, 138, 140, 143, 137, 132, 140, 131, 149, 134, 156, 131, 132, 132, 141, 143, 135, 130, 151, 140, 137, 138, 150, 146, 138, 130, 135, 132, 120, 146, 135, 138, 130, 143, 129, 131, 133, 144, 150, 134, 139, 131, 136, 149, 141, 146, 132, 135, 136, 136, 141, 131, 138, 134, 141, 126, 137, 150, 129, 133, 144, 140, 138, 132, 136, 133, 138, 126, 130, 136, 122, 155, 132, 138, 128, 147, 139, 139, 140, 150, 129, 140, 140, 133, 132, 131, 143, 138, 140, 129, 140, 136, 134, 137, 137, 136, 126, 135, 142, 142, 136, 145, 133, 138, 127, 130, 132, 145, 141, 141, 137, 134, 147, 132, 137, 143, 137, 144, 148, 133, 125, 120, 133, 135, 142, 133, 120, 155, 140, 139, 131, 129, 141, 134, 142, 136, 141, 138, 130, 145, 146, 141, 141, 144, 129, 134, 145, 139, 140, 123, 140, 135, 141, 149, 142, 152, 124, 137, 148, 132, 133, 145, 140, 131, 128, 136, 141, 144, 155, 143, 137, 138, 134, 134, 128, 117, 141, 124, 132, 140, 136, 126, 154, 129, 145, 130, 146, 158, 124, 140, 152, 132, 133, 144, 134, 128, 133, 149, 134, 144, 143, 134, 135, 130, 147, 135, 135, 133, 147, 141, 150, 131, 143, 146, 132, 134, 130, 150, 125, 141, 145, 108, 142, 138, 112, 128, 139, 108, 136, 145, 143, 126, 137, 138, 134, 146, 129, 142, 119, 126, 126, 134, 131, 137, 124, 152, 133, 133, 145, 142, 131, 125, 146, 142, 139, 149, 144, 139, 137, 127, 142, 129, 139, 141, 150, 120, 143, 124, 134, 139, 137, 127, 144, 133, 129, 137, 134, 132, 130, 136, 129, 119, 123, 132, 137, 132, 135, 130, 143, 128, 133, 125, 128, 136, 131, 128, 143, 139, 141, 128, 125, 129, 124, 139, 130, 122, 135, 137, 126, 134, 144, 137, 138, 140, 136, 131, 138, 140, 120, 137, 138, 133, 149, 137, 130, 117, 122, 146, 125, 143, 131, 128, 141, 149, 148, 138, 139, 150, 133, 143, 136, 146, 136, 136, 130, 129, 146, 126, 134, 127, 139, 139, 141, 141, 130, 126, 139, 133, 160, 151, 128, 144, 145, 135, 150, 139, 134, 137, 132, 121, 141, 125, 145, 135, 129, 143, 142, 134, 142, 146, 127, 148, 136, 126, 130, 132, 129, 134, 130, 131, 133, 146, 126, 146, 139, 137, 123, 134, 149, 145, 150, 124, 146, 139, 130, 146, 121, 133, 131, 137, 137, 128, 141, 144, 135, 128, 141, 131, 148, 138, 139, 142, 136, 140, 125, 127, 143, 139, 128, 146, 130, 121, 131, 126, 138, 145, 146, 139, 123, 129, 138, 131, 138, 123, 130, 130, 148, 141, 119, 140, 126, 149, 141, 142, 131, 127, 127, 133, 119, 139, 135, 135, 137, 137, 146, 137, 142, 128, 135, 131, 121, 133, 141, 133, 136, 136, 128, 142, 147, 141, 138, 135, 144, 139, 148, 135, 134, 141, 131, 136, 131, 123, 137, 143, 133, 127, 131, 143, 129, 130, 138, 158, 140, 128, 131, 138, 142, 133, 151, 133, 139, 127, 120, 136, 121, 130, 127, 144, 134, 137, 147, 131, 143, 134, 126, 144, 141, 132, 122, 159, 127, 129, 127, 132, 144, 143, 136, 128, 149, 127, 139, 144, 148, 133, 131, 137, 141, 123, 123, 126, 153, 149, 146, 139, 138, 159, 135, 132, 126, 135, 126, 151, 130, 148, 142, 126, 143, 127, 138, 131, 133, 141, 145, 126, 122, 128, 139, 132, 135, 138, 130, 110, 130, 132, 141, 150, 140, 152, 136, 124, 129, 127, 122, 134, 131, 129, 133, 126, 134, 123, 122, 135, 133, 138, 138, 129, 138, 156, 157, 140, 154, 159, 138, 142, 143, 153, 124, 123, 137, 135, 132, 138, 116, 138, 137, 133, 134, 124, 136, 131, 137, 146, 133, 126, 138, 141, 127, 140, 158, 143, 132, 134, 135, 136, 138, 142, 137, 118, 119, 138, 137, 132, 132, 137, 132, 138, 141, 135, 143, 137, 134, 134, 149, 137, 137, 133, 139, 142, 135, 138, 128, 140, 130, 136, 133, 128, 142, 136, 136, 124, 132, 135, 135, 139, 144, 141, 144, 135, 142, 135, 140, 159, 129, 141, 142, 137, 140, 138, 146, 143, 119, 139, 135, 154, 145, 140, 132, 146, 131, 136, 142, 137, 124, 126, 127, 137, 130, 141, 148, 137, 132, 132, 132, 121, 131, 113, 131, 136, 143, 138, 134, 132, 140, 130, 137, 134, 131, 125, 134, 131, 145, 142, 140, 138, 134, 147, 131, 145, 124, 141, 134, 134, 127, 134, 135, 148, 134, 132, 124, 139, 136, 128, 138, 142, 131, 142, 128, 144, 137, 114, 142, 128, 125, 134, 133, 134, 141, 160, 133, 137, 134, 140, 137, 140, 130, 143, 139, 140, 110, 144, 153, 129, 148, 149, 140, 140, 131, 132, 140, 135, 148, 133, 148, 134, 130, 141, 147, 136, 147, 136, 135, 143, 122, 140, 124, 136, 135, 130, 131, 127, 134, 134, 134, 127, 129, 134, 138, 132, 135, 137, 155, 142, 143, 127, 134, 137, 147, 143, 139, 144, 143, 123, 132, 143, 128, 140, 141, 138, 142, 137, 138, 140, 134, 141, 134, 138, 131, 133, 140, 129, 138, 144, 123, 139, 137, 133, 133, 138, 110, 140, 137, 133, 152, 133, 129, 128, 134, 150, 149, 134, 133, 140, 137, 147, 137, 128, 134, 139, 131, 142, 132, 138, 146, 138, 158, 134, 129, 135, 138, 142, 121, 138, 136, 145, 134, 131, 120, 137, 143, 143, 134, 136, 150, 144, 120, 140, 147, 150, 142, 138, 125, 151, 139, 144, 132, 138, 140, 124, 146, 136, 134, 137, 139, 133, 130, 154, 145, 150, 135, 138, 135, 145, 137, 140, 130, 140, 137, 124, 127, 132, 146, 131, 136, 136, 140, 141, 153, 139, 120, 136, 148, 152, 148, 128, 129, 126, 132, 128, 137, 132, 136, 131, 133, 161, 142, 142, 132, 133, 133, 139, 136, 133, 135, 158, 131, 135, 149, 133, 126, 143, 134, 154, 125, 141, 129, 132, 149, 125, 127, 131, 123, 129, 137, 136, 162, 142, 139, 139, 143, 141, 129, 140, 132, 137, 140, 128, 131, 143, 143, 136, 144, 130, 135, 131, 122, 131, 134, 129, 135, 134, 121, 137, 142, 145, 140, 135, 133, 137, 141, 131, 153, 145, 132, 128, 143, 155, 138, 135, 135, 128, 118, 141, 141, 137, 144, 138, 143, 135, 123, 142, 137, 143, 142, 131, 129, 145, 150, 142, 131, 155, 129, 127, 139, 143, 130, 148, 132, 141, 139, 139, 128, 144, 150, 143, 130, 147, 137, 129, 134, 138, 150, 136, 132, 139, 132, 144, 138, 128, 142, 135, 138, 133, 134, 143, 137, 145, 152, 155, 136, 143, 159, 138, 120, 130, 138, 135, 137, 139, 136, 161, 132, 130, 130, 142, 128, 127, 136, 130, 116, 120, 136, 126, 146, 128, 150, 134, 138, 139, 139, 135, 136, 165, 142, 131, 144, 148, 121, 139, 134, 142, 138, 158, 126, 133, 133, 142, 144, 128, 140, 132, 138, 138, 158, 136, 116, 134, 134, 135, 128, 123, 148, 134, 137, 142, 131, 138, 140, 139, 129, 135, 133, 128, 148, 135, 149, 134, 142, 123, 144, 134, 138, 129, 142, 144, 130, 138, 136, 136, 139, 136, 129, 123, 135, 139, 138, 132, 137, 139, 133, 126, 143, 120, 125, 135, 134, 133, 136, 137, 126, 131, 135, 128, 153, 146, 133, 133, 136, 134, 131, 131, 131, 133, 144, 134, 143, 139, 125, 130, 137, 126, 134, 137, 135, 127, 134, 132, 137, 150, 142, 131, 140, 122, 136, 138, 135, 121, 129, 129, 135, 136, 144, 149, 132, 133, 139, 131, 141, 135, 136, 134, 117, 135, 130, 164, 146, 138, 135, 128, 130, 133, 136, 132, 136, 134, 139, 136, 127, 137, 134, 133, 138, 133, 130, 136, 119, 136, 129, 133, 133, 93, 128, 131, 120, 133, 141, 134, 127, 146, 141, 141, 130, 126, 140, 131, 142, 144, 148, 140, 130, 133, 136, 130, 126, 137, 138, 139, 130, 154, 144, 122, 125, 133, 131, 143, 137, 137, 146, 145, 128, 131, 128, 135, 130, 138, 120, 148, 132, 139, 137, 140, 131, 132, 144, 147, 138, 129, 151, 165, 140, 133, 143, 140, 134, 141, 140, 139, 129, 136, 135, 138, 131, 126, 148, 146, 130, 150, 142, 134, 120, 138, 137, 137, 126, 131, 133, 135, 132, 145, 127, 143, 129, 133, 125, 134, 138, 129, 132, 124, 134, 140, 137, 130, 127, 149, 130, 128, 139, 133, 130, 135, 133, 132, 139, 138, 140, 151, 142, 145, 137, 127, 135, 146, 127, 133, 129, 121, 134, 144, 112, 136, 138, 134, 128, 124, 134, 137, 129, 132, 138, 134, 146, 125, 135, 151, 137, 136, 140, 131, 126, 123, 138, 138, 136, 136, 148, 126, 131, 134, 143, 131, 145, 136, 144, 133, 126, 133, 134, 123, 147, 144, 133, 136, 141, 135, 142, 143, 154, 141, 143, 149, 130, 130, 133, 131, 135, 123, 169, 143, 131, 136, 136, 141, 130, 142, 146, 138, 138, 136, 128, 129, 134, 147, 139, 139, 135, 131, 137, 133, 140, 142, 134, 137, 126, 132, 130, 131, 127, 140, 137, 138, 126, 135, 137, 140, 132, 156, 136, 138, 139, 136, 132, 143, 137, 140, 136, 133, 144, 127, 125, 136, 142, 134, 139, 141, 129, 135, 121, 149, 140, 140, 127, 136, 125, 148, 135, 136, 134, 141, 134, 134, 131, 122, 145, 136, 122, 135, 124, 136, 144, 144, 122, 125, 113, 130, 141, 140, 136, 144, 126, 136, 136, 148, 145, 133, 141, 129, 146, 131, 145, 149, 140, 145, 145, 154, 135, 140, 128, 137, 132, 145, 127, 135, 136, 123, 131, 144, 137, 135, 123, 149, 146, 133, 119, 150, 136, 146, 138, 139, 133, 130, 161, 137, 128, 141, 118, 122, 137, 128, 142, 129, 142, 141, 137, 136, 138, 139, 138, 135, 147, 134, 121, 132, 139, 127, 141, 144, 139, 133, 138, 124, 140, 137, 141, 127, 134, 145, 146, 128, 138, 137, 123, 128, 152, 152, 132, 123, 129, 140, 120, 139, 143, 135, 130, 137, 140, 134, 136, 134, 131, 135, 123, 121, 130, 135, 130, 138, 144, 141, 123, 133, 134, 139, 167, 122, 138, 145, 126, 126, 144, 136, 143, 126, 134, 145, 132, 139, 132, 142, 141, 134, 129, 126, 140, 130, 143, 133, 131, 144, 151, 128, 138, 137, 134, 123, 144, 138, 128, 143, 138, 137, 139, 129, 125, 118, 150, 133, 141, 145, 120, 142, 129, 122, 134, 138, 138, 136, 143, 142, 138, 128, 140, 135, 130, 140, 129, 125, 129, 145, 131, 155, 139, 134, 129, 134, 140, 136, 139, 134, 138, 133, 146, 142, 132, 136, 133, 137, 134, 140, 141, 132, 124, 139, 125, 129, 148, 135, 134, 140, 142, 137, 140, 128, 145, 129, 133, 155, 132, 130, 142, 135, 127, 124, 137, 137, 142, 136, 122, 128, 144, 124, 152, 144, 143, 143, 143, 142, 130, 132, 137, 127, 131, 134, 136, 156, 134, 137, 144, 144, 144, 127, 142, 147, 150, 131, 139, 137, 127, 134, 128, 141, 134, 136, 138, 134, 141, 135, 132, 141, 134, 129, 139, 139, 139, 136, 134, 143, 149, 130, 133, 144, 129, 133, 136, 149, 134, 122, 126, 129, 134, 139, 138, 131, 129, 142, 136, 130, 148, 125, 145, 130, 137, 153, 141, 129, 143, 132, 129, 129, 135, 99, 131, 124, 136, 124, 135, 133, 150, 128, 135, 142, 142, 123, 131, 134, 142, 128, 129, 139, 136, 138, 132, 147, 127, 128, 121, 134, 144, 140, 141, 141, 153, 160, 142, 128, 122, 160, 132, 133, 130, 138, 136, 153, 132, 135, 142, 144, 138, 129, 136, 139, 143, 137, 149, 127, 133, 129, 137, 143, 150, 143, 133, 139, 142, 138, 138, 134, 130, 142, 123, 142, 144, 127, 139, 144, 131, 131, 148, 150, 129, 137, 126, 144, 149, 139, 130, 125, 123, 138, 146, 131, 137, 128, 127, 121, 137, 148, 137, 133, 136, 125, 135, 147, 131, 133, 151, 138, 132, 135, 130, 135, 125, 138, 138, 134, 126, 137, 140, 139, 136, 135, 139, 149, 138, 153, 133, 134, 158, 140, 139, 131, 131, 132, 149, 132, 140, 109, 150, 120, 134, 124, 139, 136, 146, 124, 133, 133, 132, 150, 123, 139, 138, 135, 128, 139, 137, 127, 127, 142, 128, 143, 133, 149, 127, 131, 134, 144, 136, 132, 136, 130, 125, 136, 133, 140, 139, 132, 130, 139, 137, 139, 137, 125, 134, 132, 139, 139, 120, 134, 129, 150, 119, 138, 161, 138, 148, 136, 132, 139, 141, 135, 146, 140, 131, 142, 146, 132, 132, 131, 139, 140, 130, 143, 144, 116, 140, 135, 139, 154, 133, 120, 124, 133, 127, 134, 133, 148, 152, 133, 124, 136, 140, 146, 131, 136, 135, 142, 140, 130, 111, 134, 125, 139, 137, 128, 143, 136, 144, 123, 132, 129, 128, 139, 137, 138, 138, 127, 136, 143, 138, 141, 158, 130, 143, 146, 133, 134, 149, 132, 142, 126, 145, 121, 139, 125, 127, 136, 140, 137, 134, 140, 142, 127, 131, 133, 126, 126, 141, 130, 138, 140, 130, 121, 135, 139, 135, 141, 131, 139, 128, 127, 139, 129, 132, 164, 138, 133, 134, 133, 143, 132, 137, 135, 126, 144, 136, 138, 144, 148, 126, 139, 137, 142, 147, 138, 137, 137, 135, 134, 144, 137, 141, 131, 140, 134, 143, 129, 135, 153, 138, 142, 135, 148, 130, 159, 135, 141, 126, 139, 141, 140, 128, 127, 135, 136, 135, 143, 129, 129, 141, 139, 150, 129, 140, 143, 132, 129, 126, 142, 138, 133, 128, 134, 138, 122, 146, 129, 131, 131, 141, 135, 127, 134, 131, 133, 134, 149, 145, 145, 138, 118, 148, 142, 134, 144, 130, 132, 150, 146, 133, 136, 163, 140, 139, 130, 119, 140, 149, 121, 132, 140, 136, 139, 136, 137, 130, 142, 131, 131, 134, 136, 109, 142, 136, 134, 126, 141, 126, 138, 115, 124, 138, 135, 135, 115, 134, 139, 126, 142, 134, 140, 134, 126, 139, 136, 129, 130, 143, 131, 136, 128, 153, 133, 128, 134, 140, 136, 128, 131, 140, 137, 116, 138, 132, 130, 141, 145, 131, 118, 144, 130, 130, 131, 128, 132, 134, 132, 126, 130, 135, 145, 141, 137, 131, 132, 144, 130, 140, 138, 132, 137, 126, 148, 147, 150, 136, 139, 137, 135, 132, 126, 133, 140, 129, 133, 137, 143, 134, 137, 137, 140, 140, 134, 136, 139, 136, 138, 135, 130, 136, 125, 130, 122, 139, 135, 126, 153, 130, 139, 134, 134, 135, 114, 133, 151, 146, 132, 128, 141, 131, 130, 132, 135, 136, 137, 124, 128, 145, 120, 142, 144, 134, 139, 136, 125, 135, 156, 136, 138, 145, 157, 137, 134, 127, 136, 135, 134, 134, 138, 137, 138, 133, 118, 134, 132, 151, 155, 141, 156, 134, 131, 128, 136, 132, 142, 155, 131, 133, 134, 152, 139, 134, 135, 136, 132, 133, 119, 139, 135, 124, 132, 132, 139, 139, 129, 134, 132, 125, 148, 132, 128, 125, 140, 136, 145, 146, 135, 131, 140, 133, 136, 163, 129, 146, 135, 144, 142, 132, 136, 143, 135, 141, 143, 131, 143, 132, 128, 146, 139, 140, 137, 132, 130, 138, 132, 133, 134, 133, 143, 137, 152, 136, 134, 139, 130, 132, 152, 132, 145, 127, 146, 134, 138, 135, 130, 128, 131, 131, 140, 134, 122, 131, 142, 111, 142, 137, 147, 137, 144, 130, 127, 143, 150, 137, 150, 140, 144, 146, 132, 128, 132, 140, 135, 138, 143, 126, 125, 134, 135, 127, 132, 139, 128, 142, 118, 126, 133, 140, 136, 142, 134, 122, 143, 126, 145, 129, 154, 125, 126, 134, 123, 140, 131, 145, 115, 150, 126, 137, 139, 136, 131, 133, 136, 135, 129, 130, 130, 136, 131, 129, 126, 154, 138, 135, 126, 151, 136, 136, 137, 137, 133, 138, 137, 156, 131, 139, 137, 128, 128, 124, 140, 153, 137, 128, 130, 148, 138, 124, 131, 139, 130, 137, 137, 129, 129, 136, 132, 137, 133, 140, 140, 132, 126, 140, 142, 138, 150, 116, 140, 145, 139, 130, 141, 135, 137, 133, 133, 134, 134, 151, 133, 131, 143, 132, 143, 135, 136, 138, 147, 139, 141, 138, 143, 134, 135, 130, 133, 126, 136, 138, 137, 137, 128, 136, 133, 133, 137, 142, 133, 132, 122, 131, 140, 135, 133, 130, 140, 132, 129, 127, 140, 136, 135, 141, 147, 131, 137, 135, 135, 144, 138, 135, 134, 135, 129, 144, 133, 127, 132, 135, 130, 157, 139, 136, 141, 138, 130, 144, 143, 145, 142, 117, 142, 137, 138, 125, 132, 128, 142, 134, 131, 121, 133, 140, 124, 133, 142, 146, 136, 136, 140, 127, 136, 131, 144, 133, 135, 137, 145, 147, 135, 143, 129, 142, 147, 139, 140, 141, 134, 142, 128, 148, 134, 148, 135, 142, 141, 145, 145, 147, 132, 142, 134, 140, 145, 131, 125, 137, 149, 127, 143, 136, 143, 138, 119, 122, 126, 129, 134, 142, 143, 135, 124, 134, 140, 137, 132, 136, 125, 150, 134, 137, 134, 143, 147, 134, 127, 135, 142, 145, 126, 131, 135, 142, 138, 137, 129, 144, 142, 137, 144, 145, 136, 137, 134, 140, 132, 132, 157, 135, 141, 129, 139, 140, 136, 141, 126, 132, 144, 135, 133, 127, 140, 136, 143, 131, 148, 148, 141, 134, 130, 133, 124, 141, 133, 133, 141, 131, 128, 140, 136, 141, 133, 136, 139, 135, 135, 131, 146, 127, 139, 131, 131, 132, 142, 131, 135, 141, 138, 140, 136, 157, 131, 131, 139, 141, 145, 139, 135, 143, 134, 144, 136, 132, 124, 143, 141, 140, 137, 135, 142, 128, 136, 134, 128, 148, 131, 142, 143, 146, 134, 136, 139, 132, 140, 141, 135, 131, 134, 133, 142, 143, 130, 138, 134, 146, 135, 118, 137, 136, 138, 139, 138, 128, 137, 147, 119, 155, 127, 140, 139, 144, 124, 142, 137, 137, 143, 133, 132, 133, 137, 128, 131, 140, 132, 130, 138, 123, 128, 130, 129, 145, 137, 124, 131, 137, 145, 145, 145, 132, 130, 143, 141, 138, 128, 133, 139, 141, 141, 131, 143, 146, 130, 129, 131, 137, 130, 135, 127, 160, 144, 136, 134, 136, 135, 144, 123, 137, 133, 144, 136, 135, 132, 139, 131, 134, 130, 137, 135, 136, 158, 132, 137, 152, 128, 140, 151, 146, 135, 133, 127, 141, 137, 143, 136, 137, 138, 144, 130, 137, 141, 139, 138, 131, 129, 132, 127, 126, 135, 156, 124, 148, 136, 143, 127, 137, 130, 144, 131, 131, 132, 138, 139, 128, 128, 137, 139, 131, 140, 142, 158, 150, 136, 128, 141, 144, 142, 133, 135, 137, 145, 147, 132, 141, 145, 142, 131, 134, 135, 129, 134, 130, 143, 139, 134, 142, 136, 139, 128, 139, 124, 146, 126, 139, 132, 140, 143, 146, 141, 134, 140, 137, 137, 136, 125, 137, 129, 137, 147, 134, 134, 137, 139, 147, 141, 138, 141, 135, 136, 151, 143, 134, 126, 116, 132, 125, 138, 135, 140, 124, 137, 129, 125, 139, 135, 155, 134, 138, 136, 140, 142, 128, 130, 120, 137, 138, 139, 137, 142, 145, 144, 141, 143, 131, 127, 122, 131, 128, 151, 139, 116, 136, 146, 153, 150, 132, 139, 137, 132, 127, 136, 111, 134, 131, 131, 148, 141, 140, 148, 139, 143, 129, 134, 128, 146, 152, 153, 125, 140, 135, 130, 147, 149, 143, 134, 140, 147, 130, 157, 152, 149, 138, 120, 130, 122, 134, 130, 142, 119, 131, 150, 151, 133, 139, 144, 143, 149, 139, 129, 135, 162, 123, 150, 141, 146, 135, 166, 131, 143, 141, 119, 171, 152, 136, 145, 136, 134, 162, 136, 130, 146, 142, 144, 143, 134, 134, 109, 131, 123, 126, 138, 127, 125, 135, 142, 143, 124, 123, 140, 136, 138, 137, 135, 117, 134, 128, 146, 133, 147, 122, 146, 143, 156, 138, 109, 133, 135, 124, 134, 140, 139, 130, 136, 133, 135, 123, 139, 138, 145, 108, 142, 137, 129, 125, 155, 144, 147, 128, 145, 133, 124, 129, 138, 142, 132, 140, 155, 127, 150, 133, 136, 132, 128, 135, 140, 136, 118, 123, 129, 145, 162, 141, 107, 140, 141, 133, 132, 118, 146, 152, 132, 116, 117, 153, 130, 124, 132, 145, 130, 139, 138, 126, 139, 151, 143, 134, 145, 130, 144, 122, 146, 127, 118, 126, 135, 129, 137, 112, 146, 129, 127, 154, 128, 138, 129, 127, 130, 123, 143, 142, 142, 145, 123, 146, 153, 140, 121, 133, 125, 123, 129, 143, 130, 130, 128, 164, 106, 126, 138, 124, 137, 112, 153, 139, 139, 141, 127, 141, 145, 127, 137, 142, 148, 128, 141, 148, 130, 143, 140, 126, 126, 125, 119, 123, 128, 126, 144, 133, 136, 119, 132, 133, 119, 150, 145, 144, 122, 123, 136, 129, 121, 137, 146, 136, 132, 126, 138, 133, 129, 128, 129, 126, 145, 135, 136, 142, 148, 113, 125, 132, 141, 125, 133, 140, 125, 127, 130, 127, 123, 151, 139, 130, 125, 138, 137, 136, 112, 149, 133, 144, 127, 142, 141, 118, 138, 145, 161, 133, 129, 133, 121, 124, 124, 111, 154, 120, 145, 138, 137, 121, 145, 142, 128, 142, 144, 138, 142, 124, 131, 133, 137, 142, 142, 130, 141, 137, 159, 123, 133, 134, 127, 105, 131, 140, 139, 130, 128, 118, 135, 134, 141, 138, 138, 145, 132, 117, 132, 138, 120, 133, 127, 137, 123, 138, 149, 141, 150, 131, 123, 158, 120, 132, 150, 123, 140, 129, 137, 166, 118, 129, 135, 137, 140, 144, 128, 163, 146, 134, 127, 141, 150, 132, 153, 136, 130, 154, 115, 123, 128, 145, 137, 155, 124, 126, 129, 128, 147, 130, 141, 125, 145, 114, 146, 137, 130, 142, 137, 146, 136, 129, 128, 136, 127, 149, 148, 139, 129, 138, 154, 139, 146, 138, 143, 121, 149, 118, 143, 139, 131, 129, 128, 135, 152, 145, 127, 123, 136, 137, 139, 130, 145, 129, 151, 133, 120, 150, 132, 125, 144, 142, 136, 147, 139, 119, 119, 125, 127, 144, 135, 143, 135, 142, 125, 122, 123, 134, 137, 139, 139, 135, 118, 132, 139, 135, 122, 142, 123, 124, 143, 164, 119, 135, 129, 131, 137, 132, 136, 145, 136, 130, 141, 125, 121, 146, 139, 146, 131, 132, 143, 140, 123, 134, 128, 141, 156, 147, 150, 127, 116, 121, 137, 164, 124, 135, 126, 134, 136, 137, 134, 122, 141, 170, 130, 119, 129, 135, 142, 125, 142, 137, 139, 141, 133, 145, 124, 139, 130, 125, 128, 141, 143, 155, 132, 135, 148, 146, 123, 121, 136, 127, 142, 138, 148, 129, 145, 145, 139, 150, 139, 134, 136, 132, 137, 126, 139, 143, 133, 154, 132, 148, 134, 135, 151, 159, 133, 141, 112, 144, 140, 135, 119, 130, 127, 132, 140, 140, 128, 142, 131, 129, 145, 141, 119, 142, 115, 120, 107, 152, 149, 143, 142, 123, 131, 149, 171, 137, 110, 126, 136, 120, 130, 118, 132, 133, 140, 113, 143, 147, 129, 125, 104, 135, 134, 153, 131, 127, 146, 130, 150, 140, 133, 127, 140, 123, 130, 123, 133, 122, 141, 126, 142, 127, 122, 131, 131, 152, 153, 128, 131, 135, 132, 131, 154, 136, 105, 141, 129, 131, 121, 136, 129, 143, 140, 129, 134, 130, 133, 129, 129, 136, 130, 137, 138, 133, 133, 129, 146, 148, 145, 142, 138, 139, 135, 154, 126, 129, 142, 142, 129, 148, 132, 115, 141, 133, 145, 129, 135, 140, 139, 144, 136, 134, 145, 151, 129, 133, 140, 137, 136, 147, 123, 147, 133, 139, 118, 138, 127, 136, 131, 128, 164, 138, 131, 143, 130, 137, 151, 119, 144, 140, 138, 153, 139, 136, 122, 158, 137, 153, 151, 104, 136, 147, 143, 135, 146, 131, 132, 117, 112, 134, 129, 121, 139, 143, 140, 129, 127, 118, 140, 129, 124, 148, 141, 140, 145, 137, 144, 140, 129, 133, 144, 113, 147, 130, 126, 132, 134, 134, 132, 127, 125, 141, 143, 126, 149, 133, 134, 144, 154, 142, 156, 138, 138, 127, 120, 137, 137, 130, 132, 146, 138, 142, 145, 159, 133, 130, 141, 138, 129, 124, 160, 135, 132, 136, 151, 132, 149, 150, 140, 130, 125, 146, 144, 107, 121, 131, 120, 144, 144, 128, 132, 128, 129, 121, 126, 126, 146, 132, 137, 118, 146, 128, 135, 145, 121, 127, 130, 122, 134, 133, 138, 133, 142, 149, 131, 136, 148, 115, 142, 154, 128, 139, 142, 115, 145, 131, 151, 132, 144, 137, 138, 118, 139, 113, 139, 127, 137, 120, 141, 122, 121, 145, 142, 131, 138, 145, 127, 104, 129, 120, 142, 145, 143, 147, 139, 137, 131, 160, 139, 136, 134, 147, 130, 119, 110, 138, 138, 142, 126, 133, 131, 124, 143, 147, 128, 139, 129, 139, 154, 132, 152, 121, 142, 139, 116, 145, 146, 126, 125, 132, 136, 162, 141, 115, 135, 136, 127, 154, 133, 142, 127, 138, 139, 140, 130, 142, 158, 137, 156, 147, 128, 139, 136, 140, 139, 128, 130, 136, 130, 133, 149, 142, 150, 129, 142, 119, 152, 151, 127, 139, 124, 105, 123, 152, 123, 144, 133, 130, 123, 141, 144, 127, 128, 146, 121, 134, 148, 135, 112, 135, 134, 138, 119, 135, 138, 135, 142, 137, 119, 126, 155, 134, 132, 140, 129, 140, 118, 149, 136, 193, 139, 124, 137, 155, 135, 152, 142, 141, 146, 117, 117, 133, 128, 128, 133, 140, 117, 138, 122, 144, 130, 129, 137, 133, 150, 116, 147, 115, 128, 140, 130, 133, 136, 151, 132, 131, 138, 140, 133, 132, 138, 128, 145, 146, 133, 137, 127, 150, 119, 136, 140, 144, 127, 138, 144, 128, 134, 162, 128, 131, 131, 136, 135, 136, 138, 151, 137, 139, 131, 143, 131, 146, 158, 132, 123, 131, 150, 150, 131, 141, 113, 144, 139, 139, 138, 130, 138, 138, 137, 156, 175, 126, 137, 147, 114, 133, 150, 112, 128, 134, 125, 135, 145, 135, 157, 122, 149, 127, 138, 138, 139, 138, 130, 134, 136, 135, 140, 130, 122, 142, 138, 144, 122, 145, 139, 135, 128, 139, 136, 134, 126, 147, 136, 118, 145, 146, 131, 128, 148, 129, 121, 137, 140, 134, 144, 150, 142, 136, 134, 140, 138, 138, 126, 134, 145, 151, 146, 148, 126, 142, 144, 147, 138, 136, 129, 129, 145, 148, 130, 146, 147, 124, 126, 145, 141, 148, 122, 130, 146, 132, 135, 129, 144, 124, 125, 117, 127, 129, 138, 131, 133, 122, 142, 144, 134, 147, 139, 132, 136, 142, 134, 155, 135, 143, 135, 139, 173, 150, 142, 138, 150, 137, 126, 136, 126, 147, 146, 125, 136, 136, 127, 135, 145, 156, 136, 145, 133, 131, 144, 131, 151, 128, 132, 146, 147, 119, 142, 142, 150, 134, 126, 131, 138, 143, 138, 139, 142, 132, 138, 122, 136, 130, 133, 148, 142, 136, 132, 126, 148, 144, 150, 125, 126, 133, 137, 125, 152, 154, 154, 145, 140, 136, 133, 134, 139, 124, 131, 148, 141, 137, 135, 116, 117, 136, 129, 143, 134, 136, 121, 139, 148, 153, 140, 146, 115, 135, 136, 150, 153, 133, 133, 152, 145, 112, 128, 138, 137, 133, 137, 132, 138, 159, 137, 141, 134, 121, 144, 125, 149, 149, 134, 145, 122, 152, 144, 130, 133, 123, 126, 140, 152, 155, 126, 145, 139, 156, 146, 120, 140, 138, 122, 123, 134, 131, 158, 129, 158, 140, 148, 146, 137, 158, 125, 124, 138, 130, 140, 128, 121, 139, 136, 149, 135, 133, 147, 132, 123, 140, 135, 132, 135, 126, 133, 125, 128, 144, 147, 135, 119, 134, 142, 132, 122, 133, 133, 140, 161, 143, 143, 136, 144, 135, 134, 170, 138, 142, 149, 136, 125, 140, 143, 124, 125, 136, 146, 144, 130, 138, 146, 131, 146, 114, 147, 154, 131, 138, 135, 129, 148, 137, 139, 127, 129, 129, 130, 140, 126, 138, 135, 160, 117, 142, 138, 155, 132, 116, 144, 138, 143, 138, 124, 148, 130, 136, 138, 137, 131, 126, 138, 154, 144, 143, 138, 138, 137, 133, 147, 128, 133, 145, 114, 136, 137, 135, 139, 129, 133, 122, 137, 137, 127, 137, 136, 148, 141, 149, 141, 137, 151, 170, 127, 131, 129, 126, 124, 139, 120, 120, 123, 126, 121, 148, 133, 131, 141, 142, 119, 133, 155, 138, 120, 129, 125, 134, 138, 128, 144, 130, 139, 137, 139, 142, 129, 136, 141, 130, 121, 136, 109, 118, 132, 137, 136, 141, 123, 136, 131, 129, 141, 132, 141, 129, 136, 131, 138, 139, 136, 143, 139, 139, 135, 135, 138, 127, 137, 135, 117, 149, 139, 121, 139, 136, 132, 140, 133, 140, 143, 142, 142, 138, 129, 140, 123, 133, 142, 144, 134, 136, 128, 132, 122, 145, 128, 150, 137, 139, 136, 142, 127, 125, 148, 125, 139, 144, 129, 143, 129, 124, 138, 128, 135, 131, 143, 135, 145, 148, 142, 134, 140, 136, 133, 123, 123, 132, 135, 135, 130, 137, 147, 136, 132, 140, 144, 138, 124, 144, 138, 138, 117, 128, 135, 145, 129, 126, 138, 133, 133, 142, 144, 132, 138, 143, 127, 133, 145, 132, 132, 131, 133, 140, 127, 139, 138, 138, 133, 127, 131, 134, 146, 83, 133, 133, 138, 138, 141, 132, 135, 131, 142, 149, 143, 128, 131, 139, 136, 139, 138, 145, 132, 136, 139, 141, 134, 130, 132, 134, 134, 134, 144, 133, 145, 129, 174, 139, 126, 135, 130, 127, 162, 142, 163, 134, 134, 125, 138, 136, 137, 145, 149, 126, 129, 125, 128, 131, 135, 132, 135, 134, 136, 142, 127, 151, 130, 132, 146, 132, 132, 141, 124, 134, 144, 129, 130, 136, 145, 130, 136, 130, 135, 134, 143, 141, 130, 139, 124, 138, 133, 132, 136, 132, 153, 139, 141, 140, 133, 128, 132, 136, 127, 129, 151, 124, 127, 138, 154, 142, 137, 132, 124, 126, 144, 134, 139, 136, 136, 145, 128, 139, 125, 152, 145, 136, 140, 137, 138, 131, 138, 127, 138, 131, 116, 133, 136, 142, 136, 127, 132, 141, 133, 134, 134, 127, 142, 128, 138, 138, 178, 134, 119, 147, 128, 143, 139, 150, 134, 136, 125, 135, 128, 128, 134, 132, 148, 136, 136, 136, 129, 131, 131, 128, 137, 133, 117, 130, 132, 131, 143, 142, 135, 134, 114, 154, 135, 131, 131, 129, 144, 132, 133, 140, 137, 135, 147, 135, 137, 130, 147, 132, 138, 141, 130, 136, 129, 132, 133, 138, 131, 124, 140, 141, 149, 145, 136, 135, 138, 127, 139, 136, 130, 145, 134, 135, 144, 137, 138, 138, 138, 139, 135, 139, 146, 142, 136, 143, 131, 135, 141, 136, 134, 133, 120, 140, 143, 128, 135, 134, 130, 132, 135, 128, 134, 151, 137, 144, 139, 134, 133, 134, 129, 145, 129, 135, 132, 131, 145, 126, 138, 132, 130, 128, 146, 136, 143, 133, 118, 138, 134, 133, 142, 145, 132, 134, 138, 131, 136, 144, 128, 139, 139, 137, 136, 133, 134, 140, 152, 165, 130, 143, 127, 126, 134, 139, 125, 144, 134, 130, 139, 131, 154, 127, 111, 127, 133, 130, 130, 149, 142, 137, 124, 136, 140, 148, 132, 140, 144, 144, 147, 141, 152, 130, 144, 132, 137, 137, 136, 134, 144, 130, 139, 135, 133, 135, 137, 132, 142, 142, 132, 131, 132, 152, 131, 143, 131, 137, 93, 139, 135, 146, 132, 132, 132, 124, 134, 138, 160, 128, 138, 144, 121, 139, 151, 148, 147, 141, 138, 132, 140, 140, 132, 157, 126, 122, 137, 122, 125, 134, 119, 138, 142, 139, 129, 152, 132, 136, 124, 144, 131, 131, 131, 140, 138, 138, 131, 125, 134, 132, 130, 144, 130, 131, 136, 133, 132, 132, 135, 141, 121, 133, 152, 139, 136, 146, 129, 143, 157, 155, 142, 146, 129, 135, 141, 139, 133, 143, 172, 136, 152, 137, 130, 122, 107, 140, 143, 117, 148, 148, 157, 137, 141, 131, 135, 137, 132, 141, 150, 135, 138, 122, 129, 125, 142, 142, 153, 142, 129, 136, 134, 133, 149, 132, 133, 129, 127, 140, 133, 139, 134, 138, 128, 131, 137, 136, 137, 141, 126, 126, 149, 134, 134, 139, 144, 130, 122, 135, 135, 135, 129, 134, 137, 135, 129, 148, 134, 144, 150, 135, 141, 150, 142, 124, 132, 125, 131, 137, 148, 140, 150, 136, 135, 129, 136, 143, 144, 123, 153, 128, 126, 134, 139, 152, 133, 135, 130, 132, 138, 140, 134, 146, 150, 134, 120, 143, 134, 131, 150, 142, 144, 139, 139, 151, 135, 139, 121, 137, 154, 121, 135, 138, 137, 136, 169, 139, 133, 127, 124, 150, 133, 122, 137, 147, 137, 140, 138, 148, 135, 135, 129, 130, 140, 140, 124, 137, 150, 146, 124, 136, 129, 130, 137, 138, 137, 133, 136, 142, 142, 135, 131, 138, 132, 149, 138, 127, 131, 136, 132, 124, 141, 145, 153, 148, 135, 132, 146, 139, 128, 143, 136, 143, 139, 168, 134, 140, 120, 151, 135, 128, 147, 128, 138, 146, 141, 138, 136, 133, 124, 132, 132, 137, 130, 123, 136, 137, 146, 134, 148, 148, 145, 134, 137, 134, 132, 149, 128, 139, 147, 145, 139, 137, 145, 138, 145, 142, 135, 129, 136, 139, 134, 126, 119, 138, 126, 134, 141, 128, 111, 138, 134, 148, 132, 143, 132, 118, 135, 124, 151, 138, 129, 156, 140, 140, 124, 118, 146, 151, 129, 133, 125, 160, 137, 129, 133, 136, 131, 128, 143, 133, 135, 127, 160, 133, 153, 150, 135, 135, 122, 140, 155, 133, 126, 136, 146, 130, 125, 135, 139, 150, 130, 139, 139, 132, 133, 128, 146, 134, 129, 135, 165, 127, 146, 139, 145, 138, 135, 148, 127, 132, 152, 137, 135, 130, 137, 147, 137, 124, 128, 136, 134, 146, 138, 126, 142, 141, 136, 132, 139, 125, 134, 131, 139, 132, 129, 130, 136, 136, 134, 123, 114, 141, 137, 144, 130, 150, 156, 135, 132, 150, 145, 139, 132, 132, 131, 158, 136, 119, 122, 139, 135, 128, 143, 139, 129, 130, 176, 134, 126, 122, 85, 135, 143, 141, 130, 152, 147, 132, 127, 126, 140, 132, 123, 140, 144, 129, 131, 151, 142, 119, 141, 186, 142, 124, 157, 130, 141, 130, 132, 142, 156, 124, 133, 146, 124, 134, 127, 138, 136, 137, 134, 143, 145, 154, 134, 140, 131, 143, 129, 133, 121, 140, 135, 141, 130, 137, 122, 129, 139, 134, 135, 125, 119, 131, 141, 131, 137, 123, 142, 146, 122, 129, 149, 156, 134, 129, 130, 140, 120, 144, 135, 135, 124, 130, 140, 137, 134, 147, 138, 135, 143, 125, 142, 143, 128, 138, 146, 143, 138, 132, 131, 141, 146, 141, 148, 126, 142, 126, 130, 142, 149, 153, 134, 136, 141, 135, 144, 135, 129, 135, 133, 132, 137, 140, 136, 125, 141, 146, 127, 124, 157, 125, 143, 133, 144, 125, 129, 129, 130, 145, 132, 138, 154, 133, 126, 133, 133, 134, 143, 169, 129, 137, 138, 129, 147, 150, 140, 139, 151, 141, 148, 127, 132, 128, 127, 120, 132, 148, 128, 124, 164, 124, 142, 136, 134, 134, 125, 122, 129, 156, 130, 147, 130, 129, 149, 126, 157, 142, 124, 134, 129, 137, 114, 128, 126, 132, 135, 126, 135, 129, 125, 136, 125, 142, 127, 123, 131, 156, 129, 142, 139, 149, 143, 133, 129, 129, 142, 133, 135, 134, 131, 134, 137, 133, 135, 147, 138, 152, 130, 141, 134, 146, 131, 136, 128, 132, 121, 140, 155, 137, 138, 139, 142, 134, 107, 144, 131, 129, 128, 137, 143, 147, 138, 141, 135, 132, 139, 135, 145, 134, 130, 129, 145, 144, 109, 137, 126, 148, 131, 140, 145, 127, 155, 128, 131, 124, 140, 140, 152, 118, 123, 127, 133, 137, 147, 143, 133, 129, 126, 141, 123, 130, 135, 133, 128, 125, 127, 139, 128, 142, 139, 133, 143, 141, 141, 145, 126, 142, 143, 141, 124, 134, 134, 123, 148, 125, 148, 122, 127, 133, 136, 138, 135, 113, 136, 153, 139, 131, 136, 122, 116, 135, 141, 106, 131, 123, 131, 144, 140, 132, 140, 132, 138, 142, 135, 137, 118, 143, 140, 140, 135, 142, 136, 130, 133, 127, 121, 140, 144, 135, 150, 139, 146, 136, 136, 141, 138, 136, 127, 134, 129, 116, 126, 128, 142, 127, 137, 140, 138, 134, 132, 139, 134, 147, 142, 131, 145, 130, 135, 132, 151, 164, 141, 139, 133, 118, 125, 125, 142, 131, 137, 139, 133, 122, 149, 140, 133, 142, 127, 138, 128, 133, 136, 141, 137, 149, 132, 137, 143, 134, 137, 129, 138, 144, 157, 126, 120, 127, 136, 133, 138, 115, 130, 131, 135, 140, 123, 132, 123, 136, 140, 138, 139, 130, 144, 138, 160, 139, 126, 125, 123, 142, 132, 144, 159, 149, 138, 134, 141, 144, 134, 141, 134, 156, 122, 128, 124, 152, 139, 153, 146, 126, 136, 136, 136, 124, 143, 124, 135, 127, 111, 142, 137, 131, 142, 120, 135, 136, 135, 141, 142, 140, 114, 141, 150, 144, 139, 146, 141, 132, 152, 151, 128, 129, 149, 129, 120, 134, 133, 165, 134, 137, 132, 148, 130, 123, 125, 129, 127, 138, 136, 138, 126, 136, 140, 136, 137, 132, 150, 126, 133, 134, 134, 137, 145, 131, 142, 135, 135, 149, 126, 136, 131, 147, 135, 166, 134, 137, 134, 139, 132, 148, 138, 132, 129, 143, 132, 128, 137, 115, 135, 141, 140, 134, 124, 133, 142, 143, 136, 136, 137, 140, 149, 133, 135, 143, 151, 137, 139, 121, 127, 135, 121, 138, 134, 136, 135, 140, 124, 134, 137, 129, 151, 135, 130, 135, 138, 148, 129, 119, 129, 125, 140, 135, 124, 144, 131, 134, 124, 129, 118, 131, 137, 134, 143, 127, 129, 132, 124, 145, 132, 127, 124, 148, 144, 138, 142, 120, 159, 137, 141, 131, 128, 134, 135, 139, 135, 139, 134, 128, 128, 141, 128, 134, 133, 127, 142, 136, 144, 136, 136, 137, 155, 135, 126, 143, 111, 125, 129, 145, 113, 138, 140, 142, 126, 122, 131, 151, 147, 124, 135, 138, 145, 128, 143, 125, 125, 138, 133, 156, 149, 131, 141, 135, 130, 142, 125, 139, 149, 138, 132, 146, 137, 127, 138, 137, 139, 149, 115, 127, 145, 140, 129, 147, 128, 120, 131, 143, 151, 123, 133, 134, 126, 136, 143, 139, 134, 120, 134, 122, 131, 140, 126, 141, 140, 140, 132, 135, 117, 128, 139, 132, 135, 138, 121, 142, 129, 129, 138, 130, 134, 126, 130, 133, 151, 131, 136, 141, 142, 143, 129, 139, 137, 130, 130, 128, 131, 135, 143, 133, 128, 142, 136, 141, 132, 136, 130, 133, 155, 139, 139, 148, 138, 125, 137, 134, 135, 135, 149, 141, 152, 137, 142, 131, 135, 141, 130, 138, 131, 133, 121, 147, 129, 129, 143, 124, 141, 142, 141, 136, 138, 147, 126, 138, 137, 149, 145, 135, 136, 136, 128, 128, 129, 122, 128, 138, 132, 144, 136, 124, 136, 122, 133, 132, 148, 135, 123, 111, 129, 129, 122, 143, 129, 134, 140, 144, 136, 147, 151, 132, 133, 138, 150, 132, 152, 140, 134, 115, 148, 129, 132, 138, 136, 138, 153, 141, 130, 146, 129, 135, 135, 137, 140, 130, 144, 130, 136, 128, 127, 145, 128, 132, 140, 136, 137, 138, 128, 128, 151, 146, 126, 116, 131, 129, 144, 124, 149, 138, 138, 139, 147, 136, 136, 140, 125, 151, 137, 133, 140, 139, 124, 136, 145, 144, 140, 136, 150, 133, 138, 127, 136, 165, 153, 154, 144, 133, 136, 136, 132, 136, 139, 135, 141, 141, 137, 139, 123, 130, 138, 128, 141, 142, 153, 135, 132, 137, 146, 133, 134, 136, 132, 130, 138, 133, 126, 136, 147, 134, 137, 147, 140, 126, 134, 145, 132, 129, 135, 131, 137, 134, 173, 126, 128, 132, 131, 156, 150, 139, 141, 133, 133, 130, 139, 136, 141, 127, 148, 130, 146, 150, 144, 124, 125, 130, 127, 132, 143, 128, 134, 131, 137, 144, 129, 126, 135, 134, 129, 118, 131, 144, 140, 142, 130, 158, 146, 140, 124, 119, 132, 125, 141, 134, 120, 132, 122, 128, 128, 128, 130, 131, 142, 137, 132, 142, 97, 133, 131, 135, 130, 140, 143, 144, 145, 138, 127, 138, 140, 135, 131, 140, 143, 142, 135, 134, 138, 148, 150, 134, 136, 138, 129, 144, 138, 124, 138, 154, 129, 133, 136, 119, 143, 137, 135, 127, 145, 142, 145, 157, 141, 135, 134, 134, 140, 141, 126, 131, 128, 140, 141, 137, 140, 138, 133, 145, 125, 143, 125, 127, 140, 107, 136, 133, 130, 128, 137, 127, 133, 151, 141, 141, 137, 138, 143, 141, 137, 120, 137, 147, 146, 131, 155, 117, 139, 149, 127, 114, 130, 127, 123, 127, 132, 133, 116, 130, 130, 125, 142, 133, 146, 122, 126, 119, 119, 140, 142, 131, 126, 137, 136, 147, 134, 127, 138, 138, 138, 142, 159, 149, 125, 144, 139, 135, 131, 126, 144, 129, 113, 119, 132, 137, 137, 131, 128, 132, 125, 134, 125, 125, 149, 138, 125, 130, 144, 134, 138, 149, 137, 125, 130, 140, 137, 135, 138, 128, 130, 139, 129, 115, 131, 128, 144, 125, 144, 127, 133, 132, 126, 148, 116, 145, 145, 146, 134, 138, 125, 129, 128, 146, 146, 132, 164, 134, 136, 133, 137, 123, 136, 129, 120, 132, 139, 139, 125, 138, 131, 126, 123, 146, 128, 127, 128, 139, 135, 130, 129, 138, 127, 146, 144, 149, 131, 131, 129, 139, 133, 129, 123, 132, 148, 149, 141, 145, 139, 120, 133, 139, 140, 143, 139, 143, 138, 136, 136, 136, 133, 124, 121, 147, 131, 129, 97, 148, 113, 124, 147, 139, 124, 132, 121, 134, 137, 127, 147, 148, 136, 132, 134, 138, 145, 140, 123, 163, 132, 143, 133, 136, 138, 144, 134, 124, 132, 124, 132, 138, 141, 144, 132, 145, 132, 136, 135, 137, 133, 140, 142, 142, 126, 152, 123, 142, 125, 130, 142, 134, 149, 139, 140, 136, 136, 134, 138, 137, 136, 142, 134, 142, 145, 122, 139, 136, 123, 130, 131, 132, 145, 134, 137, 126, 150, 145, 137, 155, 123, 138, 131, 137, 137, 136, 150, 134, 144, 139, 135, 146, 131, 128, 135, 129, 136, 125, 133, 141, 144, 138, 128, 128, 145, 123, 141, 141, 127, 129, 131, 135, 133, 154, 108, 149, 119, 125, 137, 141, 133, 129, 136, 134, 140, 120, 135, 133, 154, 155, 140, 127, 140, 133, 120, 117, 141, 135, 148, 125, 137, 134, 134, 128, 127, 142, 121, 135, 138, 136, 118, 133, 127, 148, 148, 128, 142, 141, 135, 143, 151, 138, 131, 147, 133, 135, 139, 124, 126, 137, 131, 124, 133, 121, 138, 139, 135, 150, 133, 136, 128, 135, 123, 136, 122, 155, 136, 145, 133, 151, 131, 135, 131, 135, 124, 149, 136, 121, 146, 143, 161, 127, 132, 158, 121, 92, 132, 136, 137, 131, 124, 140, 126, 137, 129, 139, 154, 132, 123, 131, 125, 130, 125, 141, 138, 134, 136, 144, 141, 118, 129, 141, 134, 125, 122, 125, 132, 123, 142, 128, 128, 146, 139, 139, 146, 128, 128, 143, 129, 118, 127, 146, 140, 161, 133, 141, 135, 117, 141, 130, 140, 122, 129, 133, 139, 155, 134, 123, 134, 147, 130, 128, 139, 138, 132, 141, 132, 135, 127, 118, 131, 133, 138, 149, 149, 132, 125, 126, 157, 128, 121, 135, 143, 135, 133, 142, 131, 142, 131, 142, 127, 143, 136, 137, 125, 135, 142, 127, 131, 150, 126, 146, 143, 150, 121, 122, 147, 147, 156, 157, 149, 120, 127, 149, 144, 130, 123, 140, 141, 136, 146, 130, 132, 128, 134, 131, 141, 141, 135, 131, 137, 140, 138, 145, 126, 151, 147, 128, 130, 138, 132, 121, 143, 133, 131, 135, 139, 157, 137, 146, 139, 140, 137, 154, 143, 130, 135, 136, 140, 130, 135, 125, 141, 138, 136, 118, 139, 138, 134, 146, 138, 133, 133, 128, 131, 145, 133, 146, 144, 135, 141, 138, 143, 128, 137, 132, 133, 139, 133, 112, 144, 137, 140, 136, 133, 129, 133, 148, 132, 142, 138, 138, 149, 136, 139, 144, 137, 123, 144, 131, 159, 146, 126, 148, 138, 127, 139, 128, 147, 135, 136, 138, 136, 126, 124, 130, 139, 137, 143, 123, 139, 128, 132, 141, 139, 123, 135, 130, 138, 138, 141, 124, 129, 128, 130, 131, 132, 139, 136, 141, 130, 139, 139, 130, 138, 100, 129, 125, 120, 142, 122, 125, 122, 133, 138, 121, 128, 126, 145, 134, 119, 134, 140, 130, 143, 130, 136, 137, 125, 131, 136, 138, 153, 134, 132, 128, 124, 139, 135, 146, 129, 182, 110, 135, 117, 128, 148, 131, 135, 133, 143, 135, 125, 142, 135, 158, 130, 124, 136, 135, 139, 130, 133, 136, 136, 131, 141, 153, 146, 119, 132, 130, 146, 146, 136, 140, 142, 131, 121, 134, 134, 135, 134, 139, 134, 133, 140, 134, 141, 143, 138, 143, 135, 140, 130, 138, 146, 139, 131, 124, 138, 131, 136, 134, 137, 135, 133, 161, 143, 134, 133, 124, 137, 132, 126, 131, 143, 125, 141, 136, 138, 134, 137, 128, 134, 134, 136, 134, 138, 127, 140, 131, 144, 136, 138, 133, 137, 135, 130, 137, 127, 136, 132, 149, 145, 135, 137, 126, 134, 138, 148, 121, 142, 121, 125, 127, 137, 144, 119, 130, 130, 120, 141, 144, 127, 134, 134, 135, 133, 131, 138, 133, 148, 141, 133, 134, 130, 134, 129, 106, 141, 138, 132, 134, 138, 115, 142, 139, 139, 141, 135, 132, 133, 147, 132, 119, 140, 137, 139, 132, 123, 128, 129, 135, 141, 122, 126, 142, 124, 140, 151, 136, 129, 134, 135, 131, 124, 122, 131, 142, 148, 133, 104, 141, 133, 125, 129, 136, 127, 135, 128, 133, 137, 130, 137, 136, 136, 140, 145, 146, 134, 158, 129, 110, 119, 106, 137, 125, 139, 133, 149, 143, 137, 132, 127, 140, 135, 125, 139, 121, 132, 134, 132, 131, 107, 139, 127, 125, 137, 160, 141, 146, 129, 129, 131, 138, 132, 123, 127, 154, 128, 138, 141, 130, 130, 131, 140, 131, 135, 127, 155, 133, 145, 129, 143, 134, 144, 132, 113, 141, 142, 135, 125, 142, 140, 120, 134, 123, 127, 136, 119, 126, 154, 157, 128, 132, 140, 137, 127, 125, 138, 133, 143, 130, 133, 140, 139, 132, 126, 124, 134, 131, 134, 139, 153, 120, 135, 146, 147, 140, 140, 129, 130, 139, 136, 135, 125, 128, 140, 127, 133, 122, 144, 136, 132, 141, 127, 135, 142, 121, 133, 139, 139, 130, 133, 138, 135, 121, 139, 140, 132, 134, 142, 135, 138, 134, 122, 115, 139, 144, 149, 137, 147, 133, 131, 118, 136, 148, 156, 142, 131, 137, 136, 150, 139, 143, 139, 120, 127, 138, 135, 121, 144, 141, 144, 127, 141, 147, 134, 135, 146, 139, 129, 128, 134, 138, 140, 141, 150, 96, 145, 148, 144, 148, 136, 139, 136, 137, 130, 134, 134, 151, 141, 145, 133, 135, 123, 118, 128, 133, 135, 146, 124, 115, 129, 133, 129, 119, 134, 124, 131, 132, 127, 126, 125, 130, 134, 126, 140, 122, 133, 123, 139, 127, 126, 138, 150, 138, 130, 133, 167, 135, 144, 142, 151, 135, 137, 132, 137, 121, 128, 136, 138, 138, 133, 153, 118, 162, 136, 146, 114, 120, 145, 120, 143, 140, 106, 129, 135, 127, 134, 140, 128, 123, 135, 129, 123, 135, 132, 142, 140, 136, 130, 132, 127, 146, 128, 142, 141, 158, 133, 130, 129, 153, 139, 140, 136, 156, 141, 140, 148, 126, 133, 141, 151, 130, 136, 146, 137, 131, 137, 120, 138, 129, 129, 142, 124, 137, 124, 144, 135, 130, 134, 134, 124, 129, 171, 118, 130, 130, 130, 135, 135, 131, 131, 145, 134, 133, 150, 137, 123, 131, 136, 133, 126, 127, 144, 116, 121, 141, 133, 131, 142, 140, 136, 134, 136, 140, 138, 139, 139, 123, 137, 149, 166, 126, 156, 135, 142, 131, 140, 140, 150, 143, 134, 139, 137, 133, 134, 148, 138, 121, 117, 129, 136, 137, 139, 139, 125, 144, 119, 152, 146, 129, 143, 126, 126, 120, 149, 141, 141, 145, 132, 134, 144, 152, 134, 132, 130, 125, 143, 135, 143, 146, 143, 139, 137, 127, 129, 139, 134, 127, 137, 137, 147, 153, 115, 116, 126, 115, 130, 132, 140, 151, 146, 143, 139, 134, 143, 135, 127, 118, 131, 143, 136, 132, 136, 145, 137, 134, 133, 130, 136, 141, 145, 143, 154, 145, 148, 132, 139, 118, 136, 123, 143, 147, 136, 141, 135, 135, 135, 140, 145, 142, 141, 125, 134, 127, 159, 138, 122, 135, 142, 133, 127, 138, 133, 139, 122, 136, 132, 117, 133, 142, 180, 141, 147, 127, 131, 134, 130, 147, 140, 143, 147, 143, 132, 124, 140, 136, 122, 143, 138, 132, 145, 137, 122, 155, 141, 137, 127, 108, 147, 132, 144, 133, 133, 145, 127, 138, 138, 145, 137, 139, 139, 144, 108, 145, 155, 140, 122, 142, 157, 153, 145, 132, 127, 147, 125, 137, 141, 137, 123, 142, 143, 130, 150, 152, 135, 142, 121, 133, 142, 161, 126, 136, 139, 146, 144, 144, 147, 124, 131, 122, 144, 162, 144, 138, 120, 124, 133, 127, 129, 137, 134, 143, 136, 118, 134, 125, 132, 121, 112, 123, 136, 127, 132, 127, 125, 139, 150, 115, 140, 135, 119, 137, 136, 135, 123, 136, 146, 134, 135, 135, 123, 144, 152, 123, 155, 130, 137, 124, 146, 124, 119, 147, 130, 134, 146, 138, 121, 153, 145, 123, 152, 143, 126, 165, 124, 122, 135, 132, 125, 129, 137, 147, 148, 129, 161, 99, 135, 127, 130, 147, 163, 133, 146, 135, 140, 113, 133, 153, 144, 151, 127, 140, 141, 141, 141, 134, 134, 144, 136, 139, 138, 140, 125, 130, 139, 141, 139, 135, 139, 133, 133, 152, 130, 128, 135, 141, 127, 127, 132, 136, 142, 137, 140, 143, 139, 135, 134, 146, 131, 134, 134, 137, 133, 133, 143, 138, 138, 133, 144, 139, 152, 138, 150, 135, 141, 137, 134, 143, 135, 127, 143, 134, 127, 139, 136, 131, 153, 131, 136, 133, 124, 136, 138, 143, 129, 135, 131, 130, 122, 138, 129, 136, 146, 152, 131, 144, 136, 143, 147, 136, 131, 131, 133, 130, 132, 128, 132, 137, 148, 150, 137, 138, 139, 135, 132, 139, 144, 131, 146, 136, 132, 139, 118, 134, 138, 142, 128, 130, 120, 152, 129, 133, 133, 137, 147, 133, 129, 137, 132, 140, 131, 129, 143, 138, 137, 124, 129, 138, 130, 140, 133, 136, 140, 131, 125, 138, 138, 142, 136, 126, 142, 141, 132, 133, 136, 136, 130, 136, 139, 133, 144, 127, 133, 132, 132, 138, 143, 143, 137, 143, 137, 138, 138, 140, 141, 129, 132, 137, 133, 137, 138, 128, 135, 130, 146, 136, 144, 146, 123, 135, 133, 139, 147, 142, 136, 136, 135, 129, 137, 146, 150, 129, 132, 127, 144, 150, 137, 144, 131, 128, 142, 133, 131, 137, 131, 134, 144, 132, 150, 138, 146, 138, 121, 139, 150, 132, 129, 126, 142, 129, 137, 136, 131, 140, 131, 126, 140, 134, 127, 129, 137, 131, 141, 131, 141, 131, 135, 171, 132, 138, 140, 140, 150, 142, 130, 137, 137, 134, 137, 131, 144, 135, 128, 144, 139, 134, 127, 142, 125, 131, 151, 144, 146, 142, 131, 138, 136, 136, 136, 121, 135, 140, 135, 127, 143, 149, 141, 128, 134, 130, 146, 134, 133, 129, 140, 142, 136, 130, 133, 137, 145, 142, 130, 136, 137, 145, 134, 130, 133, 138, 136, 133, 140, 148, 139, 134, 137, 137, 139, 142, 137, 137, 134, 135, 137, 131, 133, 126, 132, 144, 140, 140, 142, 130, 144, 139, 132, 144, 140, 143, 130, 136, 140, 138, 134, 142, 129, 140, 128, 140, 130, 135, 134, 132, 135, 132, 133, 129, 138, 140, 141, 134, 134, 137, 136, 137, 139, 136, 139, 136, 143, 129, 143, 145, 139, 134, 138, 133, 132, 138, 142, 130, 153, 131, 142, 140, 136, 140, 140, 142, 143, 141, 142, 143, 126, 142, 140, 132, 132, 137, 142, 129, 151, 125, 141, 135, 135, 132, 131, 138, 132, 130, 135, 150, 145, 133, 138, 156, 137, 125, 140, 126, 139, 140, 138, 141, 132, 145, 139, 134, 136, 132, 151, 140, 129, 127, 129, 137, 128, 141, 130, 138, 122, 131, 136, 128, 141, 130, 140, 144, 146, 145, 131, 129, 137, 135, 139, 138, 141, 135, 131, 139, 143, 138, 135, 140, 134, 131, 137, 136, 137, 135, 132, 141, 148, 127, 138, 131, 135, 141, 137, 141, 134, 144, 136, 131, 130, 146, 149, 140, 139, 133, 142, 142, 131, 125, 125, 126, 133, 132, 131, 133, 142, 135, 136, 123, 140, 130, 133, 133, 137, 130, 135, 145, 137, 133, 140, 119, 127, 133, 128, 122, 147, 127, 125, 135, 144, 144, 151, 130, 139, 122, 138, 144, 121, 127, 136, 149, 128, 117, 132, 150, 129, 135, 138, 128, 131, 128, 113, 136, 136, 127, 140, 137, 123, 141, 141, 136, 117, 125, 132, 132, 147, 122, 129, 132, 145, 132, 122, 132, 132, 146, 152, 155, 112, 129, 128, 141, 139, 139, 138, 130, 127, 141, 149, 132, 138, 130, 131, 123, 148, 127, 133, 124, 121, 133, 138, 135, 128, 141, 138, 141, 149, 142, 135, 136, 145, 129, 130, 144, 129, 130, 142, 98, 131, 128, 146, 124, 142, 125, 117, 138, 157, 123, 123, 151, 143, 139, 122, 145, 168, 142, 132, 122, 139, 126, 144, 132, 127, 146, 145, 141, 139, 141, 143, 126, 133, 134, 129, 130, 139, 129, 154, 132, 123, 128, 137, 120, 135, 128, 136, 106, 139, 142, 135, 139, 163, 126, 136, 147, 150, 156, 140, 155, 143, 122, 131, 157, 153, 133, 133, 136, 137, 138, 136, 135, 127, 136, 138, 141, 132, 132, 138, 124, 123, 135, 141, 136, 142, 144, 141, 145, 142, 133, 145, 144, 132, 134, 123, 126, 131, 144, 126, 132, 157, 122, 134, 131, 129, 139, 138, 130, 142, 121, 136, 117, 118, 140, 139, 123, 138, 126, 148, 123, 131, 137, 139, 131, 126, 129, 137, 130, 146, 126, 142, 134, 137, 131, 134, 150, 139, 138, 124, 120, 140, 131, 140, 125, 146, 129, 141, 137, 122, 125, 151, 124, 129, 139, 125, 158, 156, 129, 143, 132, 132, 139, 145, 154, 143, 132, 144, 128, 141, 125, 130, 125, 141, 128, 150, 105, 140, 121, 143, 134, 141, 141, 135, 145, 133, 131, 133, 143, 132, 136, 123, 133, 127, 126, 114, 121, 138, 136, 139, 140, 131, 133, 131, 131, 116, 145, 140, 152, 127, 131, 144, 136, 136, 149, 137, 145, 133, 149, 139, 131, 130, 155, 149, 134, 141, 129, 122, 134, 106, 140, 143, 140, 144, 127, 133, 144, 128, 153, 133, 127, 131, 136, 136, 129, 137, 135, 124, 150, 137, 126, 137, 140, 130, 121, 132, 132, 141, 130, 127, 153, 139, 126, 149, 151, 138, 131, 136, 140, 134, 128, 136, 149, 134, 135, 131, 138, 128, 124, 133, 137, 157, 143, 139, 150, 127, 115, 157, 113, 128, 133, 133, 162, 142, 138, 136, 130, 139, 130, 133, 133, 125, 131, 135, 133, 135, 131, 132, 135, 143, 112, 146, 124, 132, 129, 134, 128, 134, 137, 129, 134, 131, 146, 134, 145, 141, 132, 139, 130, 128, 141, 139, 136, 133, 124, 142, 124, 132, 140, 128, 149, 134, 132, 142, 134, 148, 135, 142, 139, 155, 139, 141, 120, 138, 137, 139, 136, 139, 138, 146, 133, 138, 138, 136, 145, 126, 142, 131, 143, 137, 155, 163, 125, 145, 129, 138, 131, 131, 137, 124, 131, 146, 142, 145, 144, 123, 138, 141, 144, 140, 128, 136, 141, 135, 139, 140, 145, 127, 130, 128, 135, 139, 127, 151, 137, 126, 127, 132, 151, 126, 140, 131, 137, 128, 126, 141, 117, 140, 143, 127, 133, 135, 137, 119, 138, 130, 137, 130, 136, 154, 126, 151, 145, 136, 150, 132, 131, 139, 125, 134, 129, 129, 140, 133, 155, 140, 140, 128, 144, 136, 122, 133, 147, 139, 133, 143, 142, 145, 135, 136, 132, 159, 143, 131, 143, 133, 132, 146, 138, 132, 134, 136, 136, 129, 137, 143, 131, 157, 133, 156, 139, 129, 131, 127, 129, 119, 139, 135, 164, 120, 147, 142, 142, 142, 125, 139, 118, 114, 132, 132, 138, 144, 131, 157, 133, 126, 128, 139, 154, 144, 144, 128, 136, 126, 133, 135, 138, 140, 134, 139, 137, 138, 129, 121, 149, 134, 130, 145, 136, 123, 136, 145, 124, 122, 124, 126, 139, 152, 138, 143, 134, 132, 147, 138, 142, 135, 128, 124, 133, 130, 151, 137, 139, 148, 129, 126, 135, 124, 124, 138, 145, 134, 137, 127, 130, 138, 142, 137, 140, 136, 135, 132, 125, 134, 136, 134, 134, 142, 137, 117, 146, 123, 133, 135, 119, 139, 137, 140, 140, 137, 128, 145, 126, 130, 132, 123, 142, 131, 125, 144, 133, 129, 132, 139, 139, 135, 136, 128, 131, 130, 139, 150, 146, 146, 126, 139, 151, 138, 123, 140, 134, 135, 125, 144, 152, 137, 133, 135, 130, 136, 134, 129, 136, 126, 129, 125, 136, 131, 141, 135, 126, 121, 134, 153, 140, 131, 136, 134, 130, 144, 128, 129, 130, 133, 137, 148, 140, 131, 127, 123, 137, 135, 134, 126, 140, 130, 124, 140, 143, 134, 144, 165, 134, 131, 140, 128, 137, 129, 127, 137, 125, 149, 124, 135, 126, 130, 134, 147, 135, 142, 124, 136, 134, 125, 131, 149, 142, 131, 135, 136, 131, 133, 154, 145, 129, 132, 124, 132, 130, 133, 133, 133, 137, 139, 126, 149, 149, 138, 138, 152, 131, 138, 131, 134, 157, 135, 143, 121, 144, 143, 136, 131, 126, 129, 135, 132, 138, 128, 125, 143, 138, 145, 143, 152, 127, 137, 140, 135, 120, 136, 129, 146, 133, 132, 134, 137, 139, 138, 139, 137, 132, 141, 144, 137, 143, 135, 145, 138, 149, 137, 137, 142, 140, 136, 149, 140, 124, 123, 135, 142, 132, 128, 129, 124, 131, 135, 136, 150, 138, 139, 126, 134, 135, 137, 137, 136, 125, 132, 142, 137, 143, 147, 114, 149, 126, 131, 154, 124, 134, 128, 127, 135, 138, 125, 150, 144, 131, 137, 139, 129, 134, 136, 129, 132, 129, 144, 132, 140, 128, 141, 131, 134, 155, 123, 134, 143, 142, 142, 135, 134, 129, 135, 128, 150, 148, 148, 136, 130, 139, 131, 145, 139, 135, 155, 140, 128, 160, 152, 123, 137, 137, 136, 133, 130, 137, 139, 135, 147, 143, 136, 132, 113, 125, 132, 122, 129, 157, 139, 124, 132, 135, 150, 138, 143, 132, 142, 130, 138, 131, 122, 135, 142, 128, 131, 136, 132, 135, 141, 142, 134, 127, 144, 137, 140, 138, 133, 144, 127, 123, 133, 148, 136, 126, 126, 124, 137, 135, 140, 132, 118, 135, 134, 144, 140, 134, 128, 129, 140, 125, 137, 136, 122, 132, 133, 142, 135, 138, 152, 145, 149, 132, 129, 142, 133, 125, 137, 127, 133, 133, 132, 131, 136, 136, 135, 129, 130, 130, 131, 133, 139, 131, 144, 133, 145, 146, 134, 143, 143, 129, 130, 124, 131, 119, 149, 134, 130, 141, 135, 146, 125, 122, 163, 136, 122, 139, 135, 146, 141, 146, 142, 137, 150, 150, 131, 133, 124, 139, 133, 140, 146, 132, 71, 143, 137, 145, 140, 138, 136, 134, 116, 136, 131, 135, 142, 149, 121, 148, 130, 134, 134, 148, 133, 130, 139, 139, 134, 138, 145, 141, 135, 128, 135, 138, 137, 127, 155, 144, 132, 140, 123, 139, 130, 137, 142, 126, 144, 132, 141, 124, 145, 138, 142, 134, 143, 128, 132, 142, 137, 139, 132, 140, 142, 142, 142, 131, 134, 128, 145, 141, 119, 132, 129, 157, 135, 133, 134, 137, 136, 114, 141, 139, 125, 131, 125, 130, 138, 142, 125, 123, 139, 124, 140, 142, 148, 138, 143, 123, 137, 132, 139, 144, 135, 138, 166, 147, 139, 135, 129, 137, 128, 135, 131, 122, 139, 131, 143, 138, 132, 138, 137, 135, 131, 142, 128, 129, 137, 140, 134, 118, 139, 129, 135, 134, 131, 141, 135, 143, 143, 129, 132, 136, 131, 134, 136, 142, 136, 146, 132, 141, 142, 132, 132, 121, 138, 139, 137, 150, 146, 132, 130, 147, 137, 121, 139, 127, 132, 134, 158, 137, 131, 137, 115, 139, 140, 136, 127, 134, 129, 149, 136, 121, 131, 132, 142, 123, 125, 145, 134, 139, 127, 147, 142, 136, 112, 132, 136, 125, 131, 151, 130, 134, 127, 137, 119, 134, 123, 150, 138, 138, 128, 137, 142, 139, 142, 136, 154, 144, 130, 138, 127, 126, 133, 144, 134, 146, 137, 129, 136, 131, 139, 131, 155, 134, 134, 136, 152, 143, 123, 129, 162, 142, 130, 125, 132, 121, 129, 138, 162, 121, 140, 133, 144, 135, 134, 130, 164, 148, 142, 141, 154, 138, 137, 139, 146, 160, 130, 124, 140, 139, 145, 145, 123, 145, 146, 139, 140, 138, 127, 141, 149, 135, 132, 137, 139, 137, 140, 149, 136, 120, 121, 128, 139, 139, 133, 126, 129, 138, 141, 149, 134, 134, 139, 138, 127, 133, 152, 137, 146, 140, 136, 156, 121, 123, 127, 138, 137, 150, 134, 134, 131, 128, 145, 146, 155, 130, 144, 130, 118, 140, 135, 136, 134, 133, 136, 145, 130, 133, 129, 126, 139, 134, 136, 129, 139, 156, 139, 140, 132, 132, 140, 130, 128, 134, 137, 113, 135, 137, 126, 122, 125, 150, 128, 126, 147, 121, 137, 121, 152, 144, 116, 128, 122, 140, 134, 133, 140, 144, 144, 134, 144, 138, 143, 136, 127, 169, 131, 126, 127, 152, 137, 138, 128, 126, 148, 137, 147, 146, 120, 122, 129, 125, 125, 128, 148, 119, 132, 135, 139, 141, 146, 134, 133, 142, 141, 132, 126, 142, 136, 140, 128, 133, 137, 143, 141, 135, 114, 137, 142, 134, 139, 133, 127, 123, 131, 139, 147, 130, 135, 130, 133, 141, 138, 141, 141, 132, 143, 128, 137, 134, 138, 137, 136, 138, 139, 131, 127, 119, 137, 129, 137, 148, 109, 144, 128, 138, 140, 136, 137, 128, 142, 128, 143, 126, 127, 130, 129, 139, 133, 140, 132, 144, 144, 134, 138, 145, 141, 131, 132, 139, 134, 144, 147, 132, 143, 124, 144, 131, 137, 130, 140, 148, 130, 136, 137, 133, 136, 138, 129, 137, 129, 136, 137, 141, 147, 141, 135, 143, 138, 148, 138, 135, 135, 139, 131, 127, 133, 136, 143, 134, 138, 135, 135, 126, 130, 138, 124, 138, 131, 136, 141, 141, 135, 136, 130, 137, 141, 139, 138, 131, 140, 138, 143, 142, 142, 130, 122, 140, 134, 142, 137, 124, 128, 124, 127, 130, 162, 137, 130, 134, 140, 132, 138, 141, 132, 126, 138, 128, 134, 127, 133, 128, 138, 139, 134, 132, 131, 128, 129, 143, 140, 122, 98, 129, 154, 130, 133, 143, 141, 124, 140, 135, 132, 140, 138, 141, 134, 133, 139, 118, 133, 141, 136, 148, 125, 139, 139, 140, 124, 125, 118, 132, 121, 138, 131, 128, 138, 136, 146, 129, 123, 134, 130, 131, 124, 143, 136, 135, 140, 145, 134, 139, 139, 128, 145, 134, 137, 133, 123, 117, 139, 137, 139, 138, 128, 136, 135, 134, 146, 132, 135, 131, 143, 143, 144, 136, 136, 139, 150, 142, 135, 148, 134, 131, 137, 132, 131, 129, 144, 135, 125, 138, 127, 139, 134, 141, 132, 131, 135, 136, 125, 153, 143, 122, 136, 131, 137, 130, 124, 142, 138, 141, 124, 130, 131, 126, 128, 155, 133, 135, 134, 130, 132, 138, 136, 126, 146, 142, 125, 136, 130, 134, 137, 133, 128, 134, 129, 124, 134, 125, 144, 141, 128, 132, 148, 136, 146, 143, 142, 138, 131, 138, 135, 141, 139, 133, 142, 133, 132, 126, 130, 133, 135, 132, 129, 136, 132, 133, 139, 132, 133, 134, 135, 130, 127, 135, 134, 134, 155, 141, 142, 137, 148, 137, 135, 138, 133, 131, 134, 154, 141, 140, 130, 133, 133, 119, 131, 127, 132, 138, 133, 131, 144, 132, 134, 136, 134, 144, 124, 134, 136, 137, 146, 139, 143, 121, 136, 138, 134, 132, 137, 133, 129, 130, 129, 137, 128, 131, 124, 135, 132, 135, 140, 139, 136, 137, 141, 127, 141, 129, 130, 120, 143, 143, 125, 134, 131, 136, 138, 134, 142, 141, 116, 135, 133, 140, 142, 142, 139, 141, 135, 137, 131, 134, 127, 137, 133, 123, 136, 132, 149, 132, 133, 134, 138, 120, 139, 147, 131, 139, 143, 135, 131, 134, 148, 137, 133, 136, 129, 138, 129, 132, 140, 149, 132, 134, 135, 136, 131, 131, 140, 146, 131, 128, 126, 130, 152, 136, 150, 137, 140, 126, 136, 135, 144, 150, 132, 139, 131, 143, 141, 123, 138, 138, 143, 144, 131, 126, 130, 137, 136, 133, 126, 135, 139, 142, 127, 141, 132, 139, 150, 132, 134, 135, 134, 126, 133, 142, 135, 132, 144, 129, 147, 136, 138, 138, 137, 131, 129, 127, 133, 124, 124, 147, 141, 138, 130, 132, 122, 128, 125, 132, 142, 133, 134, 138, 127, 117, 129, 141, 136, 140, 131, 132, 147, 127, 139, 134, 132, 142, 156, 135, 151, 143, 137, 133, 139, 133, 126, 127, 141, 139, 143, 138, 142, 139, 132, 140, 127, 136, 149, 137, 132, 138, 160, 151, 130, 133, 131, 147, 139, 139, 145, 121, 128, 135, 162, 136, 136, 136, 147, 132, 142, 135, 141, 139, 130, 128, 128, 140, 140, 118, 143, 133, 143, 142, 142, 119, 138, 134, 141, 138, 141, 131, 142, 140, 137, 148, 139, 133, 129, 136, 142, 131, 137, 143, 140, 134, 128, 129, 120, 127, 141, 144, 137, 133, 130, 142, 122, 138, 133, 139, 140, 129, 133, 142, 136, 136, 152, 135, 132, 116, 131, 129, 144, 140, 143, 138, 137, 133, 136, 108, 135, 144, 136, 129, 140, 130, 162, 146, 130, 130, 136, 138, 111, 131, 137, 140, 143, 141, 137, 135, 145, 138, 135, 133, 137, 136, 132, 132, 131, 82, 130, 130, 138, 122, 135, 131, 140, 137, 132, 134, 136, 134, 154, 134, 131, 125, 98, 136, 158, 131, 139, 146, 140, 139, 137, 134, 139, 143, 125, 138, 134, 135, 120, 139, 131, 131, 136, 134, 131, 134, 131, 134, 136, 123, 138, 138, 143, 138, 141, 125, 148, 126, 134, 144, 149, 136, 141, 139, 140, 130, 121, 141, 135, 134, 132, 139, 136, 136, 150, 140, 126, 141, 127, 138, 126, 148, 123, 144, 136, 145, 142, 142, 131, 147, 141, 126, 136, 143, 127, 138, 137, 131, 121, 131, 143, 131, 132, 151, 129, 139, 120, 129, 154, 133, 122, 142, 135, 143, 133, 140, 142, 138, 119, 142, 137, 126, 136, 136, 122, 116, 140, 137, 133, 133, 166, 142, 122, 137, 141, 138, 150, 157, 131, 149, 139, 125, 143, 128, 130, 125, 137, 139, 118, 130, 137, 135, 129, 135, 137, 136, 128, 139, 135, 130, 142, 140, 134, 122, 154, 115, 141, 114, 102, 131, 141, 124, 143, 137, 138, 151, 144, 139, 132, 139, 136, 134, 90, 140, 133, 135, 106, 124, 123, 134, 136, 136, 138, 139, 130, 151, 135, 130, 138, 131, 132, 133, 126, 133, 147, 138, 140, 147, 131, 96, 112, 131, 123, 178, 126, 134, 140, 141, 153, 131, 133, 133, 138, 128, 145, 139, 131, 145, 139, 136, 141, 140, 137, 142, 147, 133, 129, 137, 143, 133, 139, 130, 137, 129, 139, 144, 134, 143, 130, 139, 146, 141, 131, 127, 137, 140, 147, 132, 143, 140, 139, 112, 138, 127, 138, 128, 146, 139, 133, 137, 140, 134, 133, 137, 147, 138, 141, 136, 133, 155, 148, 133, 134, 132, 107, 128, 135, 153, 132, 143, 137, 138, 134, 136, 126, 127, 135, 138, 82, 122, 145, 121, 133, 133, 127, 122, 139, 133, 146, 120, 138, 139, 136, 111, 129, 139, 124, 137, 139, 141, 140, 129, 142, 132, 132, 134, 145, 119, 135, 126, 129, 130, 132, 132, 134, 129, 139, 124, 141, 134, 124, 140, 137, 149, 136, 142, 148, 126, 134, 117, 127, 174, 128, 148, 145, 140, 136, 149, 138, 139, 135, 136, 117, 135, 155, 143, 148, 148, 126, 132, 140, 167, 151, 141, 147, 149, 154, 134, 155, 129, 145, 142, 149, 130, 149, 155, 150, 166, 127, 144, 121, 138, 146, 145, 129, 138, 147, 195, 126, 125, 130, 125, 143, 113, 146, 137, 150, 135, 149, 132, 139, 144, 143, 127, 132, 125, 127, 131, 143, 148, 142, 151, 133, 144, 167, 145, 133, 125, 135, 137, 154, 135, 132, 132, 127, 142, 134, 143, 136, 142, 134, 140, 144, 134, 128, 113, 139, 167, 141, 124, 136, 138, 145, 135, 140, 136, 121, 157, 142, 149, 141, 125, 132, 120, 147, 145, 133, 137, 137, 141, 138, 134, 142, 138, 144, 151, 145, 143, 146, 143, 113, 138, 135, 141, 132, 135, 144, 141, 132, 138, 154, 130, 131, 137, 130, 145, 134, 115, 133, 131, 135, 131, 131, 129, 131, 139, 140, 133, 110, 135, 126, 131, 142, 143, 130, 132, 144, 146, 134, 126, 130, 135, 145, 138, 139, 135, 126, 130, 142, 134, 133, 146, 137, 130, 143, 135, 133, 144, 149, 127, 126, 138, 150, 144, 130, 138, 133, 130, 143, 139, 143, 114, 136, 126, 142, 146, 136, 138, 137, 136, 136, 117, 121, 135, 131, 138, 145, 155, 123, 151, 141, 137, 127, 153, 147, 154, 125, 134, 140, 124, 153, 115, 131, 146, 135, 128, 143, 130, 120, 110, 133, 136, 119, 130, 148, 140, 131, 140, 138, 129, 134, 111, 141, 138, 148, 118, 143, 164, 137, 123, 126, 141, 135, 111, 154, 150, 129, 130, 130, 126, 127, 139, 124, 123, 152, 138, 131, 111, 136, 140, 158, 149, 142, 129, 135, 140, 140, 134, 144, 142, 132, 126, 148, 107, 146, 139, 161, 131, 152, 125, 250, 127, 151, 122, 135, 133, 134, 117, 135, 139, 150, 136, 141, 133, 113, 124, 142, 136, 129, 150, 132, 144, 162, 154, 231, 131, 137, 132, 122, 135, 144, 130, 118, 83, 189, 145, 133, 140, 151, 128, 133, 141, 138, 122, 127, 134, 133, 144, 131, 131, 132, 139, 154, 142, 132, 136, 128, 128, 140, 143, 141, 131, 127, 135, 122, 150, 153, 146, 136, 137, 141, 138, 128, 143, 134, 133, 140, 134, 147, 126, 171, 135, 155, 126, 141, 133, 144, 150, 131, 142, 128, 143, 130, 138, 147, 146, 130, 132, 146, 125, 128, 134, 127, 126, 136, 112, 138, 150, 132, 136, 143, 127, 130, 126, 142, 139, 136, 132, 150, 128, 150, 146, 132, 131, 134, 136, 119, 143, 124, 128, 127, 134, 125, 149, 123, 141, 126, 148, 145, 135, 131, 147, 142, 145, 129, 135, 135, 157, 110, 119, 123, 160, 132, 147, 132, 150, 148, 139, 146, 140, 152, 136, 142, 136, 133, 139, 125, 153, 145, 147, 151, 140, 133, 158, 149, 133, 151, 131, 121, 130, 140, 108, 142, 134, 135, 140, 141, 136, 128, 129, 126, 131, 132, 140, 135, 148, 144, 129, 128, 142, 139, 146, 117, 116, 152, 141, 133, 126, 138, 148, 142, 128, 132, 141, 132, 142, 144, 158, 116, 130, 131, 108, 138, 139, 139, 138, 143, 124, 149, 125, 117, 126, 142, 155, 135, 150, 131, 137, 138, 140, 139, 134, 144, 149, 129, 130, 127, 141, 141, 125, 128, 148, 134, 133, 145, 156, 120, 140, 135, 146, 180, 150, 130, 166, 146, 134, 140, 150, 136, 138, 134, 133, 130, 130, 145, 131, 130, 112, 138, 137, 140, 133, 150, 139, 147, 141, 113, 133, 138, 140, 120, 131, 132, 145, 141, 135, 135, 117, 118, 140, 140, 135, 147, 120, 150, 131, 120, 151, 152, 130, 133, 129, 137, 125, 141, 140, 126, 127, 141, 154, 140, 147, 130, 143, 136, 117, 135, 143, 146, 134, 133, 128, 126, 133, 129, 138, 134, 130, 148, 129, 105, 141, 125, 140, 146, 123, 134, 124, 132, 132, 144, 140, 144, 143, 126, 133, 137, 133, 134, 150, 159, 129, 147, 126, 143, 132, 145, 141, 122, 122, 146, 151, 139, 138, 126, 145, 142, 115, 129, 129, 132, 147, 137, 157, 136, 135, 137, 127, 143, 132, 139, 127, 131, 140, 145, 140, 134, 130, 145, 141, 130, 156, 137, 128, 121, 137, 126, 137, 148, 138, 143, 126, 131, 124, 147, 149, 120, 123, 133, 129, 123, 142, 142, 120, 135, 136, 138, 135, 147, 154, 127, 136, 116, 109, 129, 138, 142, 116, 129, 127, 139, 142, 134, 146, 142, 122, 109, 140, 125, 150, 138, 138, 127, 133, 132, 139, 127, 155, 145, 133, 144, 119, 137, 134, 153, 132, 140, 135, 144, 159, 136, 135, 129, 121, 127, 138, 176, 151, 130, 134, 128, 132, 137, 133, 150, 141, 135, 132, 114, 147, 135, 147, 128, 145, 152, 137, 113, 127, 131, 134, 129, 144, 150, 115, 128, 145, 136, 142, 126, 148, 131, 138, 133, 136, 145, 123, 145, 126, 124, 130, 135, 144, 133, 137, 111, 138, 150, 139, 133, 121, 148, 136, 138, 136, 117, 126, 135, 136, 141, 156, 136, 141, 130, 137, 146, 130, 155, 127, 147, 134, 132, 142, 128, 98, 146, 143, 124, 132, 128, 135, 138, 124, 135, 132, 128, 131, 133, 129, 141, 130, 135, 140, 135, 128, 134, 132, 133, 126, 145, 133, 123, 132, 135, 143, 139, 124, 135, 132, 134, 129, 153, 146, 137, 138, 156, 117, 143, 139, 125, 158, 124, 149, 127, 146, 124, 141, 133, 130, 153, 119, 119, 141, 132, 136, 124, 154, 119, 130, 133, 142, 136, 157, 135, 145, 127, 139, 150, 140, 147, 131, 136, 131, 138, 139, 135, 135, 143, 140, 127, 120, 140, 127, 142, 130, 146, 149, 130, 135, 129, 133, 139, 156, 133, 135, 138, 130, 147, 135, 141, 133, 144, 130, 144, 142, 137, 140, 135, 132, 156, 128, 139, 151, 128, 142, 148, 134, 136, 128, 128, 131, 132, 122, 145, 155, 136, 138, 131, 119, 125, 140, 123, 141, 132, 129, 141, 131, 145, 139, 134, 138, 132, 151, 124, 125, 127, 142, 133, 135, 120, 152, 130, 131, 136, 120, 132, 134, 150, 132, 129, 126, 131, 140, 115, 141, 120, 145, 124, 150, 133, 127, 137, 137, 148, 155, 151, 112, 137, 140, 133, 142, 122, 139, 125, 122, 147, 127, 133, 142, 139, 133, 146, 129, 159, 129, 140, 151, 136, 154, 125, 129, 135, 127, 144, 125, 125, 140, 133, 137, 139, 123, 119, 120, 121, 123, 134, 148, 136, 125, 152, 139, 128, 140, 140, 145, 134, 153, 141, 116, 137, 145, 116, 126, 144, 127, 147, 125, 144, 135, 135, 165, 152, 159, 132, 140, 115, 161, 127, 129, 118, 124, 133, 145, 159, 129, 125, 152, 132, 140, 118, 125, 128, 119, 118, 124, 124, 128, 148, 150, 164, 155, 144, 129, 143, 139, 152, 145, 111, 112, 124, 127, 150, 140, 190, 129, 139, 105, 117, 143, 123, 132, 128, 137, 123, 133, 146, 131, 132, 130, 121, 145, 136, 132, 124, 122, 122, 125, 150, 120, 123, 127, 140, 139, 139, 136, 123, 130, 141, 116, 117, 142, 126, 133, 149, 138, 140, 124, 131, 130, 145, 142, 140, 139, 124, 137, 134, 130, 144, 135, 115, 129, 134, 122, 151, 130, 138, 129, 94, 144, 137, 119, 145, 132, 118, 135, 151, 136, 134, 139, 129, 124, 145, 142, 132, 122, 127, 135, 128, 145, 143, 117, 144, 144, 142, 119, 131, 139, 141, 115, 142, 137, 135, 145, 136, 133, 139, 134, 137, 129, 133, 133, 135, 128, 149, 140, 145, 112, 121, 133, 132, 119, 118, 128, 148, 138, 139, 158, 132, 140, 143, 138, 140, 133, 120, 155, 119, 137, 145, 127, 136, 120, 131, 118, 143, 123, 133, 130, 137, 137, 142, 129, 140, 118, 127, 141, 125, 130, 137, 124, 131, 123, 147, 107, 138, 142, 127, 140, 150, 134, 126, 130, 160, 127, 134, 119, 132, 136, 132, 127, 132, 129, 157, 133, 112, 129, 120, 153, 139, 145, 130, 129, 141, 137, 136, 113, 127, 118, 120, 145, 135, 125, 120, 121, 114, 126, 140, 134, 138, 148, 130, 146, 137, 138, 142, 140, 133, 128, 117, 150, 120, 141, 119, 145, 133, 125, 126, 131, 144, 144, 129, 118, 133, 137, 129, 124, 130, 131, 152, 151, 114, 120, 135, 117, 139, 128, 149, 140, 129, 148, 142, 126, 130, 134, 132, 113, 115, 129, 138, 127, 129, 123, 144, 123, 140, 134, 134, 146, 121, 125, 123, 143, 148, 139, 160, 145, 124, 137, 146, 127, 130, 136, 147, 135, 130, 151, 142, 121, 130, 132, 125, 131, 141, 141, 121, 132, 117, 126, 142, 128, 136, 153, 137, 110, 131, 186, 125, 143, 127, 136, 150, 138, 137, 130, 132, 129, 144, 113, 133, 129, 127, 118, 151, 125, 131, 137, 139, 143, 129, 118, 147, 139, 125, 100, 149, 133, 146, 135, 111, 135, 129, 146, 132, 132, 114, 120, 131, 135, 144, 142, 132, 134, 159, 149, 123, 134, 127, 132, 130, 119, 134, 133, 122, 148, 136, 117, 129, 119, 133, 133, 132, 122, 173, 136, 122, 135, 153, 135, 121, 137, 139, 127, 147, 121, 121, 138, 142, 150, 136, 125, 117, 132, 137, 140, 131, 124, 152, 103, 143, 149, 132, 129, 115, 128, 120, 138, 140, 143, 126, 109, 116, 120, 126, 143, 137, 120, 167, 129, 144, 166, 129, 141, 143, 111, 152, 118, 154, 125, 152, 118, 188, 138, 155, 91, 153, 255, 139, 156, 133, 152, 127, 161, 111, 124, 125, 134, 113, 146, 154, 137, 138, 127, 131, 114, 143, 141, 133, 141, 123, 144, 172, 149, 125, 128, 137, 130, 117, 144, 135, 118, 127, 145, 139, 155, 164, 136, 138, 123, 117, 140, 134, 134, 146, 115, 125, 132, 120, 134, 115, 126, 155, 155, 107, 123, 156, 129, 146, 103, 130, 133, 163, 135, 159, 145, 150, 149, 115, 122, 111, 100, 146, 136, 144, 114, 138, 164, 136, 113, 141, 130, 114, 136, 137, 126, 134, 139, 147, 128, 119, 137, 145, 117, 138, 136, 124, 109, 142, 126, 143, 124, 147, 152, 145, 170, 118, 136, 127, 106, 145, 133, 109, 86, 133, 160, 155, 121, 121, 151, 107, 132, 142, 118, 138, 139, 137, 118, 148, 136, 117, 162, 116, 158, 124, 149, 128, 104, 137, 111, 126, 159, 163, 121, 119, 138, 142, 169, 144, 123, 118, 142, 142, 153, 123, 102, 146, 137, 120, 128, 109, 128, 134, 96, 124, 152, 150, 157, 133, 114, 128, 137, 133, 136, 126, 145, 107, 161, 142, 141, 143, 158, 124, 149, 126, 151, 148, 127, 135, 108, 116, 134, 113, 177, 114, 124, 175, 166, 113, 131, 125, 144, 133, 98, 149, 134, 147, 118, 167, 124, 121, 212, 113, 130, 110, 129, 157, 167, 139, 141, 129, 144, 119, 155, 155, 132, 124, 137, 138, 127, 144, 129, 114, 137, 112, 138, 87, 124, 143, 129, 123, 103, 142, 135, 129, 116, 95, 133, 148, 112, 136, 148, 153, 141, 136, 153, 146, 136, 128, 113, 150, 146, 165, 125, 150, 165, 122, 130, 103, 149, 180, 119, 145, 131, 133, 143, 126, 173, 127, 125, 139, 113, 147, 136, 140, 144, 142, 155, 139, 129, 136, 124, 115, 141, 145, 161, 118, 128, 123, 143, 148, 131, 120, 115, 118, 146, 135, 130, 114, 144, 126, 145, 180, 121, 107, 155, 134, 143, 136, 142, 141, 108, 138, 151, 141, 67, 155, 127, 112, 133, 139, 137, 133, 147, 123, 106, 127, 116, 133, 140, 113, 117, 131, 132, 125, 124, 118, 125, 140, 144, 136, 129, 116, 141, 195, 137, 154, 130, 116, 128, 136, 128, 128, 139, 125, 113, 140, 151, 95, 122, 113, 127, 162, 128, 120, 134, 139, 166, 114, 141, 137, 151, 136, 145, 104, 142, 135, 142, 124, 130, 121, 157, 137, 144, 157, 135, 150, 118, 125, 143, 134, 129, 125, 132, 122, 117, 152, 140, 127, 124, 155, 135, 137, 129, 139, 144, 129, 128, 136, 149, 121, 150, 158, 157, 112, 133, 167, 83, 191, 148, 145, 112, 156, 145, 128, 163, 168, 125, 116, 137, 129, 144, 167, 133, 139, 140, 145, 134, 98, 139, 118, 147, 142, 140, 127, 108, 118, 131, 157, 148, 135, 132, 132, 152, 137, 118, 126, 116, 165, 124, 137, 132, 138, 141, 124, 145, 126, 140, 131, 141, 140, 136, 131, 140, 146, 125, 143, 138, 155, 146, 135, 131, 136, 137, 134, 136, 142, 139, 131, 145, 119, 126, 138, 145, 123, 135, 126, 124, 143, 142, 143, 132, 139, 133, 142, 124, 137, 140, 128, 155, 137, 146, 132, 136, 139, 131, 135, 140, 119, 141, 132, 136, 126, 140, 132, 133, 140, 131, 136, 130, 134, 130, 145, 142, 139, 138, 133, 131, 138, 124, 134, 131, 125, 130, 126, 132, 137, 142, 141, 138, 142, 132, 134, 128, 149, 138, 140, 143, 139, 128, 127, 140, 121, 134, 138, 139, 136, 134, 135, 144, 148, 131, 142, 139, 139, 134, 138, 140, 123, 137, 127, 148, 131, 135, 132, 145, 136, 142, 145, 136, 139, 141, 115, 155, 140, 130, 128, 146, 136, 129, 139, 127, 130, 150, 136, 133, 135, 133, 130, 167, 130, 153, 143, 131, 135, 135, 129, 134, 123, 136, 141, 144, 148, 174, 129, 141, 119, 127, 133, 125, 146, 127, 127, 137, 143, 129, 138, 133, 130, 138, 142, 136, 130, 154, 140, 131, 134, 129, 141, 135, 133, 141, 140, 132, 133, 143, 134, 142, 139, 142, 129, 140, 143, 122, 154, 132, 148, 131, 117, 133, 130, 145, 138, 139, 149, 135, 136, 174, 129, 126, 147, 135, 131, 145, 140, 125, 136, 135, 134, 143, 133, 130, 138, 133, 141, 130, 145, 145, 130, 159, 144, 142, 127, 141, 148, 123, 111, 151, 132, 143, 132, 141, 134, 147, 128, 129, 138, 133, 135, 171, 151, 130, 134, 140, 142, 133, 143, 136, 142, 130, 144, 132, 142, 130, 130, 139, 135, 140, 142, 135, 141, 135, 157, 145, 131, 126, 116, 131, 139, 135, 142, 130, 140, 145, 136, 143, 121, 138, 99, 141, 169, 131, 121, 137, 138, 133, 148, 129, 101, 146, 129, 141, 135, 131, 142, 129, 128, 138, 135, 131, 136, 129, 130, 132, 138, 140, 171, 137, 135, 148, 116, 132, 131, 143, 136, 105, 155, 135, 159, 129, 134, 142, 139, 130, 134, 141, 144, 131, 131, 137, 128, 129, 133, 127, 143, 151, 141, 136, 131, 153, 137, 138, 138, 140, 142, 119, 141, 135, 134, 138, 136, 138, 143, 135, 138, 135, 142, 136, 136, 147, 138, 122, 138, 140, 128, 129, 151, 133, 131, 138, 127, 143, 140, 138, 130, 138, 138, 124, 130, 117, 138, 141, 129, 135, 137, 130, 139, 130, 132, 134, 142, 136, 135, 131, 138, 137, 140, 139, 133, 144, 121, 132, 139, 145, 121, 141, 120, 125, 136, 144, 138, 145, 129, 152, 136, 135, 129, 128, 143, 119, 142, 148, 128, 136, 133, 150, 141, 139, 126, 127, 104, 142, 130, 120, 128, 139, 129, 134, 132, 129, 130, 142, 131, 138, 136, 128, 128, 136, 133, 126, 175, 140, 145, 132, 134, 131, 134, 119, 125, 132, 128, 137, 159, 125, 154, 133, 127, 143, 163, 120, 129, 125, 132, 130, 127, 144, 132, 120, 132, 127, 135, 133, 136, 114, 136, 147, 134, 142, 142, 133, 145, 137, 136, 124, 149, 130, 137, 138, 132, 146, 136, 155, 126, 142, 128, 143, 129, 131, 131, 136, 138, 136, 132, 123, 134, 150, 140, 152, 123, 129, 128, 143, 127, 149, 143, 152, 162, 115, 137, 129, 134, 134, 135, 123, 116, 141, 136, 123, 143, 137, 134, 138, 133, 139, 141, 142, 144, 135, 142, 138, 132, 126, 128, 124, 139, 135, 151, 118, 129, 119, 143, 131, 139, 131, 131, 137, 136, 134, 135, 154, 142, 143, 130, 147, 128, 127, 129, 137, 139, 176, 132, 130, 124, 132, 136, 148, 141, 120, 142, 136, 126, 127, 133, 123, 121, 134, 140, 131, 132, 114, 136, 134, 127, 136, 136, 123, 145, 129, 143, 125, 118, 135, 130, 140, 152, 127, 135, 119, 148, 144, 138, 138, 132, 137, 137, 131, 138, 128, 119, 152, 134, 137, 136, 132, 97, 121, 129, 121, 144, 136, 147, 136, 122, 133, 133, 127, 134, 132, 136, 129, 99, 131, 122, 130, 129, 148, 144, 129, 122, 136, 128, 135, 157, 135, 138, 139, 140, 141, 136, 149, 122, 117, 135, 139, 146, 141, 140, 133, 148, 125, 129, 140, 143, 126, 125, 144, 134, 136, 142, 141, 137, 119, 133, 153, 124, 133, 135, 134, 136, 155, 147, 132, 143, 134, 129, 142, 146, 129, 145, 130, 140, 121, 111, 130, 134, 138, 129, 132, 148, 138, 138, 129, 137, 136, 139, 134, 132, 123, 139, 118, 126, 141, 123, 131, 136, 146, 140, 137, 120, 140, 138, 135, 138, 129, 138, 110, 132, 140, 137, 125, 127, 155, 140, 129, 142, 117, 137, 116, 135, 123, 140, 127, 151, 136, 132, 144, 128, 131, 142, 137, 128, 141, 146, 138, 137, 134, 119, 135, 126, 147, 135, 133, 128, 131, 121, 140, 138, 138, 140, 135, 134, 142, 146, 149, 134, 132, 132, 120, 129, 151, 135, 145, 135, 133, 128, 139, 119, 139, 146, 128, 129, 136, 129, 142, 130, 128, 137, 131, 134, 129, 147, 144, 139, 139, 142, 137, 140, 126, 136, 132, 121, 140, 129, 138, 127, 137, 136, 141, 125, 112, 134, 124, 140, 140, 139, 120, 136, 131, 133, 128, 135, 161, 139, 140, 133, 129, 131, 124, 131, 130, 144, 128, 132, 140, 129, 134, 135, 144, 148, 137, 140, 120, 134, 139, 129, 131, 162, 174, 147, 121, 128, 138, 143, 133, 129, 124, 139, 148, 158, 167, 144, 143, 141, 144, 135, 126, 125, 108, 138, 140, 135, 141, 132, 134, 134, 130, 129, 136, 124, 132, 138, 147, 145, 154, 137, 121, 121, 132, 146, 130, 141, 140, 153, 141, 132, 160, 130, 138, 147, 132, 145, 145, 126, 132, 142, 129, 137, 143, 142, 155, 132, 117, 132, 139, 144, 132, 139, 136, 132, 132, 134, 144, 126, 148, 137, 133, 136, 136, 136, 127, 127, 139, 116, 143, 118, 130, 104, 126, 128, 116, 142, 139, 125, 143, 134, 143, 154, 146, 144, 121, 146, 148, 136, 131, 136, 130, 118, 138, 136, 130, 156, 146, 133, 125, 138, 119, 128, 132, 134, 145, 153, 134, 104, 127, 147, 134, 139, 141, 136, 133, 125, 137, 155, 136, 121, 138, 144, 138, 152, 138, 125, 123, 131, 143, 133, 132, 121, 154, 149, 143, 130, 122, 143, 144, 137, 132, 138, 144, 127, 129, 137, 131, 139, 126, 132, 135, 127, 130, 137, 144, 126, 141, 132, 135, 135, 132, 130, 144, 142, 135, 129, 136, 138, 143, 142, 142, 149, 123, 154, 128, 125, 129, 128, 131, 119, 141, 125, 145, 127, 148, 129, 158, 133, 127, 132, 155, 139, 134, 124, 117, 141, 136, 130, 143, 127, 132, 125, 125, 133, 124, 131, 138, 127, 128, 141, 126, 144, 146, 135, 137, 123, 129, 118, 134, 134, 145, 132, 117, 125, 141, 146, 134, 130, 139, 138, 129, 129, 126, 134, 125, 150, 122, 132, 139, 132, 131, 143, 135, 131, 134, 130, 137, 140, 125, 137, 144, 124, 139, 131, 128, 149, 142, 126, 145, 120, 132, 146, 143, 130, 133, 142, 120, 132, 132, 125, 123, 137, 133, 131, 146, 132, 144, 133, 126, 138, 125, 131, 143, 129, 138, 135, 143, 132, 125, 148, 139, 130, 136, 148, 124, 170, 146, 159, 127, 141, 126, 131, 135, 138, 132, 128, 132, 143, 126, 140, 121, 130, 139, 137, 141, 133, 134, 120, 119, 142, 136, 140, 124, 146, 130, 141, 135, 149, 121, 136, 121, 133, 131, 131, 136, 152, 135, 127, 132, 137, 120, 138, 139, 136, 128, 139, 134, 142, 139, 123, 124, 141, 128, 130, 137, 140, 143, 156, 141, 141, 138, 134, 135, 140, 138, 144, 130, 143, 157, 131, 131, 146, 132, 132, 132, 128, 144, 135, 131, 129, 135, 122, 125, 130, 126, 143, 139, 85, 132, 139, 145, 135, 132, 138, 126, 135, 141, 122, 140, 139, 130, 133, 141, 138, 131, 138, 131, 125, 128, 140, 143, 131, 153, 139, 130, 131, 132, 125, 141, 127, 135, 142, 139, 147, 125, 132, 132, 137, 126, 135, 146, 150, 132, 136, 138, 133, 135, 146, 162, 153, 124, 108, 126, 128, 130, 136, 127, 135, 140, 141, 149, 137, 142, 120, 136, 121, 125, 140, 126, 142, 125, 137, 147, 129, 130, 136, 136, 129, 127, 142, 135, 118, 148, 134, 138, 132, 126, 135, 140, 135, 146, 115, 143, 125, 132, 120, 121, 134, 135, 151, 138, 122, 156, 137, 126, 141, 123, 128, 120, 131, 123, 132, 137, 124, 127, 130, 131, 151, 122, 152, 134, 111, 134, 125, 134, 130, 132, 135, 126, 135, 105, 127, 132, 137, 130, 142, 141, 133, 129, 145, 143, 143, 133, 146, 143, 146, 133, 129, 140, 121, 129, 143, 139, 120, 144, 129, 146, 137, 147, 134, 144, 102, 153, 129, 127, 140, 132, 131, 130, 132, 146, 138, 133, 143, 137, 141, 130, 147, 121, 141, 135, 106, 130, 142, 133, 158, 138, 147, 146, 142, 137, 125, 140, 132, 139, 116, 127, 143, 145, 131, 133, 135, 140, 140, 146, 123, 128, 125, 136, 139, 134, 137, 135, 122, 139, 147, 140, 124, 125, 128, 141, 139, 140, 130, 112, 131, 120, 145, 127, 145, 126, 138, 132, 140, 147, 140, 121, 147, 140, 137, 133, 131, 139, 128, 140, 136, 119, 130, 151, 140, 137, 133, 123, 143, 135, 137, 137, 137, 133, 125, 148, 137, 142, 139, 144, 134, 121, 125, 133, 130, 134, 135, 145, 130, 134, 131, 139, 123, 137, 140, 136, 151, 145, 126, 138, 137, 139, 135, 133, 127, 144, 129, 130, 129, 134, 133, 129, 142, 140, 126, 137, 136, 131, 145, 132, 130, 144, 134, 136, 133, 149, 139, 136, 136, 140, 119, 151, 142, 136, 118, 131, 132, 129, 127, 128, 144, 132, 128, 148, 146, 129, 134, 133, 124, 135, 134, 140, 130, 129, 133, 124, 146, 141, 138, 138, 129, 134, 159, 133, 128, 154, 148, 130, 149, 138, 128, 122, 123, 130, 127, 137, 133, 134, 148, 134, 130, 124, 124, 136, 145, 136, 141, 128, 128, 139, 150, 140, 133, 128, 138, 143, 142, 139, 152, 129, 148, 140, 129, 138, 115, 128, 125, 133, 137, 140, 132, 140, 127, 127, 140, 143, 153, 144, 140, 158, 134, 129, 130, 128, 123, 124, 124, 134, 129, 132, 144, 131, 141, 129, 123, 128, 128, 139, 133, 133, 135, 140, 132, 129, 134, 130, 139, 133, 143, 128, 140, 138, 124, 138, 139, 123, 132, 136, 129, 143, 135, 132, 129, 145, 125, 135, 137, 140, 145, 125, 136, 125, 140, 127, 150, 127, 128, 129, 128, 135, 143, 130, 136, 151, 122, 149, 130, 135, 128, 131, 144, 127, 127, 137, 148, 138, 136, 129, 141, 145, 125, 126, 137, 131, 133, 148, 125, 125, 135, 118, 126, 126, 144, 141, 144, 132, 127, 135, 132, 149, 147, 142, 133, 134, 136, 141, 139, 135, 128, 128, 117, 138, 137, 134, 138, 137, 132, 134, 135, 140, 148, 137, 138, 154, 140, 144, 137, 130, 131, 128, 135, 130, 135, 138, 114, 125, 136, 132, 135, 134, 137, 132, 128, 134, 128, 135, 139, 134, 123, 141, 135, 132, 141, 141, 151, 151, 135, 130, 144, 138, 139, 139, 132, 140, 132, 138, 132, 116, 127, 137, 141, 126, 138, 123, 129, 135, 153, 142, 143, 126, 127, 132, 133, 128, 140, 146, 129, 141, 152, 130, 135, 139, 113, 133, 128, 143, 134, 139, 138, 127, 137, 137, 138, 123, 123, 136, 145, 128, 131, 138, 140, 141, 153, 131, 124, 135, 136, 127, 138, 152, 149, 128, 129, 134, 139, 148, 131, 140, 131, 135, 139, 136, 135, 134, 133, 151, 135, 128, 139, 123, 128, 143, 144, 129, 135, 149, 127, 138, 118, 138, 129, 148, 142, 135, 142, 138, 148, 139, 131, 138, 146, 154, 132, 133, 135, 137, 131, 136, 128, 132, 135, 137, 143, 145, 127, 129, 143, 141, 125, 129, 130, 133, 144, 135, 125, 128, 128, 134, 152, 132, 140, 136, 143, 130, 129, 145, 134, 127, 142, 129, 140, 137, 134, 131, 133, 144, 131, 138, 146, 133, 145, 131, 138, 148, 142, 132, 141, 131, 134, 126, 129, 124, 126, 138, 139, 146, 131, 128, 133, 141, 140, 148, 132, 127, 150, 134, 136, 132, 121, 125, 134, 146, 142, 132, 126, 123, 128, 139, 113, 134, 165, 140, 133, 135, 139, 113, 115, 130, 118, 146, 137, 116, 132, 154, 152, 135, 130, 120, 150, 154, 127, 132, 127, 126, 122, 138, 158, 138, 136, 137, 130, 132, 123, 128, 134, 134, 137, 121, 132, 131, 141, 127, 129, 136, 128, 144, 121, 146, 129, 132, 140, 125, 145, 150, 141, 133, 124, 131, 129, 143, 128, 117, 120, 149, 125, 127, 142, 130, 133, 139, 121, 157, 143, 148, 133, 153, 132, 155, 134, 125, 119, 137, 145, 123, 144, 130, 153, 134, 130, 128, 138, 133, 126, 169, 165, 119, 139, 131, 135, 144, 125, 151, 135, 143, 156, 127, 176, 137, 127, 131, 125, 141, 136, 126, 147, 127, 126, 131, 133, 125, 130, 129, 137, 141, 133, 113, 119, 133, 133, 124, 142, 123, 149, 122, 125, 142, 130, 126, 134, 112, 135, 156, 131, 147, 135, 120, 122, 155, 136, 129, 131, 170, 129, 128, 174, 121, 145, 139, 123, 121, 133, 141, 124, 138, 127, 137, 131, 117, 141, 132, 135, 117, 129, 133, 139, 137, 130, 142, 156, 142, 123, 129, 135, 134, 122, 130, 126, 132, 151, 123, 135, 152, 130, 134, 116, 124, 133, 132, 146, 137, 144, 128, 147, 140, 124, 138, 144, 134, 126, 139, 116, 115, 137, 133, 130, 125, 117, 142, 141, 141, 128, 135, 135, 135, 127, 113, 128, 141, 162, 117, 134, 137, 133, 131, 119, 138, 130, 152, 157, 151, 139, 139, 124, 115, 130, 145, 137, 136, 125, 141, 146, 131, 155, 137, 144, 128, 136, 118, 147, 145, 131, 130, 141, 148, 141, 128, 150, 140, 132, 122, 136, 158, 150, 124, 118, 131, 121, 143, 135, 111, 134, 126, 138, 140, 135, 133, 136, 128, 119, 136, 140, 134, 146, 148, 128, 123, 124, 133, 154, 120, 138, 123, 146, 136, 134, 136, 132, 133, 129, 127, 133, 130, 131, 124, 133, 130, 135, 127, 154, 138, 141, 140, 119, 116, 124, 131, 126, 132, 134, 151, 128, 140, 127, 141, 144, 133, 119, 142, 127, 125, 140, 150, 141, 154, 136, 148, 134, 138, 130, 132, 123, 147, 138, 136, 128, 133, 135, 148, 125, 124, 134, 122, 139, 129, 134, 127, 148, 134, 138, 132, 126, 137, 130, 132, 113, 143, 126, 138, 148, 116, 131, 132, 125, 131, 140, 146, 148, 146, 131, 137, 136, 132, 134, 152, 132, 128, 132, 126, 133, 131, 128, 131, 130, 126, 165, 143, 139, 149, 139, 142, 139, 136, 135, 138, 131, 133, 122, 127, 127, 134, 132, 126, 134, 121, 122, 120, 153, 127, 130, 122, 135, 137, 123, 142, 122, 135, 127, 131, 115, 156, 115, 148, 135, 122, 141, 119, 127, 123, 126, 135, 142, 135, 152, 131, 132, 130, 133, 129, 137, 112, 128, 132, 129, 136, 117, 141, 119, 136, 151, 153, 121, 117, 126, 142, 148, 135, 133, 144, 131, 138, 132, 119, 146, 121, 128, 129, 140, 140, 148, 125, 128, 146, 147, 138, 119, 130, 143, 125, 140, 129, 134, 138, 133, 135, 123, 140, 139, 130, 142, 133, 130, 132, 135, 131, 125, 134, 121, 132, 131, 132, 141, 140, 118, 144, 142, 138, 130, 141, 139, 143, 142, 130, 137, 151, 128, 135, 116, 128, 133, 137, 128, 139, 137, 134, 130, 141, 139, 129, 146, 134, 135, 136, 152, 132, 119, 143, 132, 152, 136, 141, 138, 131, 126, 137, 143, 132, 130, 138, 135, 139, 135, 136, 135, 134, 143, 125, 133, 127, 138, 124, 133, 136, 129, 130, 131, 130, 136, 147, 135, 139, 132, 153, 132, 135, 139, 137, 137, 138, 130, 124, 124, 134, 133, 141, 127, 137, 138, 141, 125, 133, 121, 134, 137, 132, 137, 143, 156, 138, 132, 132, 132, 144, 146, 139, 134, 142, 146, 127, 130, 144, 127, 134, 156, 132, 142, 131, 137, 133, 140, 143, 142, 128, 126, 136, 135, 139, 135, 137, 136, 131, 136, 133, 136, 136, 143, 128, 137, 134, 136, 122, 136, 142, 142, 145, 152, 148, 136, 143, 134, 134, 125, 128, 130, 131, 133, 131, 119, 138, 148, 130, 133, 138, 138, 125, 134, 146, 150, 131, 134, 144, 140, 134, 129, 135, 137, 143, 134, 139, 132, 124, 121, 133, 130, 128, 133, 135, 127, 134, 135, 146, 147, 138, 139, 128, 129, 132, 128, 128, 136, 129, 129, 140, 163, 142, 136, 128, 140, 128, 137, 133, 132, 138, 133, 129, 135, 132, 143, 123, 128, 136, 138, 148, 143, 147, 135, 146, 158, 138, 145, 144, 144, 145, 125, 131, 170, 143, 141, 149, 143, 150, 139, 136, 146, 131, 151, 130, 142, 141, 131, 144, 132, 134, 135, 128, 135, 142, 139, 132, 136, 126, 130, 125, 125, 138, 138, 131, 142, 142, 144, 129, 132, 135, 140, 135, 139, 132, 138, 133, 137, 141, 127, 129, 147, 137, 137, 138, 130, 147, 140, 143, 137, 147, 130, 139, 138, 124, 148, 137, 150, 136, 121, 141, 133, 125, 146, 132, 129, 138, 133, 125, 133, 138, 132, 133, 133, 144, 136, 142, 144, 136, 135, 146, 131, 122, 144, 147, 134, 140, 141, 143, 130, 132, 137, 135, 135, 127, 128, 138, 135, 127, 124, 138, 143, 145, 143, 143, 136, 147, 127, 140, 129, 139, 139, 129, 140, 134, 134, 139, 138, 132, 143, 148, 125, 123, 129, 123, 143, 139, 124, 128, 137, 125, 140, 130, 138, 142, 141, 137, 123, 136, 128, 144, 135, 140, 128, 140, 113, 126, 132, 141, 126, 138, 129, 131, 140, 136, 132, 134, 125, 128, 139, 144, 144, 142, 133, 125, 149, 132, 121, 142, 139, 135, 123, 120, 126, 140, 130, 144, 130, 144, 129, 130, 137, 133, 138, 133, 135, 150, 142, 126, 130, 144, 136, 142, 137, 137, 133, 116, 151, 134, 137, 137, 131, 141, 135, 135, 139, 149, 139, 133, 137, 147, 132, 123, 132, 135, 136, 130, 144, 141, 140, 137, 153, 121, 152, 123, 133, 138, 150, 128, 122, 143, 139, 131, 137, 135, 147, 134, 139, 126, 131, 138, 138, 139, 138, 141, 132, 136, 130, 134, 138, 134, 142, 144, 130, 146, 134, 134, 133, 128, 130, 134, 133, 124, 135, 137, 129, 152, 136, 125, 140, 134, 137, 133, 123, 127, 139, 143, 137, 150, 139, 139, 148, 133, 132, 145, 124, 150, 115, 137, 136, 137, 140, 120, 132, 140, 131, 127, 139, 142, 145, 135, 137, 139, 134, 149, 140, 141, 130, 144, 136, 143, 123, 146, 144, 142, 136, 132, 138, 145, 132, 134, 142, 130, 135, 135, 140, 137, 135, 119, 131, 133, 127, 125, 139, 127, 150, 142, 136, 132, 139, 143, 122, 133, 144, 139, 135, 123, 135, 146, 139, 140, 137, 128, 134, 143, 137, 141, 151, 138, 130, 143, 131, 144, 145, 145, 132, 114, 136, 132, 141, 135, 128, 141, 145, 140, 131, 134, 131, 132, 125, 135, 136, 134, 139, 141, 136, 142, 132, 137, 136, 137, 133, 131, 130, 130, 137, 134, 131, 139, 138, 148, 134, 149, 140, 129, 140, 133, 132, 133, 124, 135, 133, 145, 128, 133, 142, 139, 147, 134, 131, 146, 132, 145, 137, 142, 141, 132, 120, 143, 126, 143, 150, 136, 139, 136, 135, 144, 137, 132, 137, 144, 134, 136, 140, 132, 130, 131, 141, 142, 133, 150, 128, 136, 139, 131, 139, 120, 142, 132, 143, 127, 139, 135, 136, 143, 140, 135, 124, 132, 157, 134, 125, 136, 131, 131, 132, 124, 134, 132, 137, 131, 147, 148, 139, 130, 131, 143, 139, 139, 140, 136, 138, 135, 140, 130, 149, 141, 128, 139, 144, 134, 132, 150, 135, 123, 136, 146, 134, 130, 142, 131, 131, 137, 136, 137, 137, 139, 140, 131, 139, 124, 137, 143, 140, 136, 133, 139, 132, 132, 138, 136, 135, 144, 138, 134, 140, 140, 135, 143, 150, 134, 124, 139, 131, 142, 131, 141, 133, 140, 121, 139, 141, 143, 119, 125, 131, 141, 142, 145, 134, 141, 129, 133, 156, 136, 135, 151, 142, 143, 132, 138, 131, 136, 139, 147, 144, 141, 133, 133, 142, 147, 140, 141, 134, 141, 134, 141, 138, 143, 136, 131, 132, 136, 135, 141, 135, 142, 133, 137, 133, 139, 137, 128, 140, 133, 135, 148, 145, 132, 141, 139, 133, 129, 132, 145, 137, 139, 129, 125, 125, 131, 144, 134, 146, 137, 134, 134, 138, 130, 127, 126, 138, 142, 123, 126, 138, 134, 140, 138, 131, 132, 140, 133, 139, 138, 117, 132, 129, 134, 139, 136, 134, 128, 139, 127, 137, 140, 128, 134, 136, 152, 141, 141, 137, 128, 125, 126, 129, 138, 136, 134, 131, 148, 132, 148, 125, 137, 137, 135, 136, 123, 142, 132, 137, 132, 145, 144, 136, 139, 139, 141, 135, 145, 129, 145, 141, 141, 133, 140, 145, 131, 149, 132, 139, 129, 142, 135, 123, 137, 135, 150, 129, 138, 144, 144, 136, 150, 142, 138, 131, 134, 130, 123, 128, 131, 136, 126, 136, 136, 115, 137, 145, 127, 121, 153, 136, 120, 140, 131, 132, 143, 131, 142, 132, 133, 137, 146, 152, 123, 122, 123, 134, 135, 135, 125, 144, 143, 131, 142, 130, 142, 125, 131, 135, 143, 141, 124, 133, 143, 126, 138, 133, 139, 143, 138, 139, 138, 136, 128, 135, 135, 133, 128, 131, 141, 142, 140, 130, 129, 138, 137, 134, 144, 140, 134, 141, 124, 133, 131, 137, 138, 133, 138, 141, 128, 138, 144, 132, 135, 127, 134, 138, 131, 136, 132, 144, 152, 129, 145, 130, 142, 141, 131, 136, 134, 142, 134, 136, 135, 136, 129, 139, 138, 130, 139, 136, 134, 139, 132, 129, 128, 131, 129, 126, 136, 133, 130, 136, 130, 142, 134, 128, 139, 133, 139, 130, 137, 143, 130, 141, 136, 134, 135, 139, 132, 122, 143, 134, 138, 135, 139, 143, 136, 131, 142, 128, 133, 132, 136, 139, 130, 138, 144, 123, 150, 131, 145, 127, 130, 131, 129, 128, 145, 139, 132, 131, 140, 137, 134, 137, 134, 146, 149, 134, 141, 133, 133, 133, 136, 137, 134, 129, 140, 141, 134, 144, 134, 137, 137, 143, 139, 136, 122, 131, 137, 136, 136, 139, 143, 142, 128, 141, 137, 129, 134, 135, 140, 136, 136, 133, 122, 140, 126, 138, 135, 132, 130, 130, 128, 136, 131, 133, 143, 137, 133, 132, 132, 131, 129, 132, 140, 131, 141, 137, 133, 142, 129, 128, 143, 131, 132, 130, 137, 132, 140, 138, 135, 135, 136, 139, 136, 133, 141, 131, 135, 127, 131, 133, 134, 141, 134, 136, 135, 140, 141, 134, 137, 136, 136, 140, 135, 140, 129, 132, 137, 138, 133, 119, 146, 130, 135, 134, 149, 141, 134, 132, 141, 133, 134, 145, 138, 145, 139, 131, 141, 138, 142, 139, 133, 148, 134, 132, 139, 127, 135, 126, 136, 153, 130, 129, 132, 134, 137, 139, 131, 137, 126, 136, 131, 128, 138, 137, 136, 120, 131, 136, 134, 144, 141, 146, 120, 141, 136, 143, 126, 133, 126, 139, 138, 140, 132, 134, 138, 139, 140, 133, 137, 127, 136, 156, 142, 135, 137, 139, 139, 142, 136, 146, 138, 141, 141, 139, 139, 142, 133, 139, 126, 139, 131, 136, 144, 136, 141, 137, 145, 134, 133, 127, 140, 129, 134, 132, 147, 144, 123, 128, 136, 128, 136, 139, 134, 143, 136, 127, 145, 129, 136, 135, 137, 143, 136, 132, 125, 135, 133, 128, 136, 147, 131, 139, 138, 139, 143, 137, 146, 132, 130, 136, 137, 139, 138, 135, 135, 128, 116, 136, 135, 138, 136, 136, 133, 134, 135, 133, 141, 141, 132, 138, 129, 135, 124, 130, 150, 133, 146, 147, 134, 134, 144, 142, 142, 134, 137, 132, 142, 136, 127, 127, 145, 136, 129, 138, 142, 146, 136, 122, 135, 134, 130, 134, 138, 147, 143, 131, 129, 143, 129, 141, 130, 139, 134, 141, 130, 135, 139, 120, 132, 134, 134, 142, 132, 138, 139, 135, 134, 138, 123, 135, 143, 145, 132, 136, 130, 138, 135, 127, 141, 138, 139, 137, 128, 127, 144, 132, 144, 135, 138, 135, 124, 136, 137, 133, 138, 129, 139, 124, 138, 128, 132, 138, 134, 134, 133, 127, 127, 134, 136, 134, 131, 137, 141, 133, 130, 131, 134, 132, 135, 136, 121, 128, 140, 133, 143, 133, 135, 125, 127, 147, 137, 144, 151, 111, 137, 148, 138, 140, 134, 131, 152, 113, 143, 133, 129, 128, 132, 125, 136, 141, 135, 131, 127, 131, 126, 135, 144, 105, 150, 117, 135, 136, 138, 136, 142, 143, 138, 128, 139, 132, 131, 145, 145, 131, 137, 131, 132, 128, 126, 147, 139, 108, 135, 132, 142, 129, 139, 131, 146, 129, 142, 97, 137, 120, 135, 111, 139, 138, 127, 143, 143, 141, 134, 144, 133, 133, 132, 126, 135, 132, 136, 129, 162, 130, 135, 134, 118, 131, 134, 136, 133, 146, 144, 128, 124, 134, 138, 149, 140, 126, 133, 136, 137, 138, 142, 144, 143, 144, 127, 135, 122, 152, 136, 137, 142, 134, 131, 125, 142, 146, 134, 138, 131, 139, 138, 141, 124, 143, 130, 137, 172, 139, 132, 126, 118, 141, 125, 143, 121, 136, 151, 72, 136, 138, 117, 132, 140, 108, 121, 125, 139, 133, 142, 139, 128, 137, 129, 132, 131, 135, 127, 147, 133, 140, 141, 125, 137, 147, 140, 135, 140, 136, 114, 131, 127, 149, 136, 154, 148, 128, 131, 130, 143, 129, 136, 129, 128, 138, 141, 129, 136, 142, 137, 139, 125, 132, 129, 129, 132, 129, 137, 133, 139, 135, 139, 135, 153, 134, 127, 122, 128, 164, 141, 144, 136, 144, 130, 145, 115, 140, 128, 133, 124, 131, 148, 125, 135, 149, 205, 130, 143, 149, 114, 130, 143, 148, 144, 140, 159, 141, 151, 130, 134, 143, 132, 129, 137, 136, 132, 142, 142, 147, 134, 133, 135, 135, 130, 118, 141, 124, 136, 127, 125, 137, 140, 130, 137, 135, 153, 155, 135, 128, 141, 142, 140, 132, 146, 133, 123, 124, 135, 143, 141, 126, 133, 129, 141, 137, 145, 131, 138, 127, 132, 143, 139, 137, 131, 115, 133, 140, 145, 153, 127, 144, 123, 134, 132, 158, 137, 152, 144, 142, 142, 139, 136, 132, 122, 147, 147, 136, 137, 135, 135, 133, 136, 147, 141, 150, 154, 141, 126, 150, 125, 161, 131, 134, 141, 115, 143, 200, 153, 147, 136, 124, 141, 127, 133, 137, 120, 86, 132, 144, 132, 135, 140, 143, 134, 138, 143, 140, 130, 142, 124, 115, 134, 119, 133, 146, 149, 153, 146, 148, 133, 139, 143, 148, 146, 126, 139, 139, 130, 132, 144, 126, 136, 132, 130, 135, 223, 141, 144, 138, 140, 150, 136, 141, 140, 132, 137, 117, 136, 129, 133, 129, 151, 131, 135, 124, 161, 152, 145, 133, 128, 162, 139, 157, 148, 108, 125, 114, 135, 128, 149, 134, 137, 151, 140, 147, 150, 105, 149, 140, 139, 144, 125, 127, 123, 129, 141, 125, 130, 134, 136, 163, 133, 119, 133, 137, 136, 162, 142, 143, 139, 159, 135, 123, 146, 128, 120, 117, 135, 134, 136, 134, 155, 128, 131, 135, 135, 126, 123, 137, 164, 141, 131, 130, 135, 137, 141, 121, 131, 129, 144, 154, 130, 117, 127, 136, 132, 143, 144, 119, 128, 142, 137, 141, 144, 142, 128, 122, 154, 145, 127, 140, 138, 139, 135, 141, 152, 138, 136, 112, 126, 130, 131, 135, 128, 134, 129, 129, 138, 140, 154, 141, 140, 139, 132, 134, 141, 127, 138, 130, 135, 166, 132, 145, 122, 139, 151, 124, 130, 120, 152, 134, 151, 135, 118, 122, 126, 144, 137, 136, 147, 134, 136, 141, 121, 140, 130, 144, 136, 135, 145, 127, 133, 119, 134, 122, 135, 140, 135, 134, 134, 142, 143, 133, 145, 145, 135, 138, 137, 112, 127, 134, 135, 147, 119, 122, 136, 125, 143, 125, 128, 143, 128, 138, 133, 146, 180, 149, 139, 137, 147, 149, 135, 141, 127, 135, 139, 141, 130, 149, 126, 145, 126, 129, 135, 126, 118, 130, 126, 128, 127, 130, 135, 125, 132, 144, 139, 130, 133, 133, 132, 135, 125, 129, 121, 144, 150, 118, 136, 130, 134, 127, 133, 142, 140, 131, 145, 134, 119, 142, 142, 137, 112, 135, 143, 124, 130, 133, 144, 122, 139, 130, 135, 131, 136, 138, 132, 138, 123, 133, 146, 139, 143, 126, 132, 134, 169, 150, 140, 112, 126, 130, 148, 144, 152, 125, 133, 151, 132, 128, 141, 143, 123, 131, 122, 142, 143, 148, 138, 146, 134, 129, 157, 133, 147, 119, 133, 137, 126, 136, 125, 135, 137, 131, 139, 130, 148, 141, 132, 132, 149, 139, 142, 136, 141, 135, 128, 146, 122, 148, 129, 137, 129, 129, 140, 137, 140, 148, 120, 161, 133, 153, 128, 139, 146, 134, 128, 139, 136, 135, 143, 131, 131, 129, 131, 138, 135, 119, 136, 134, 126, 134, 133, 135, 145, 143, 135, 154, 135, 124, 118, 148, 118, 135, 123, 134, 138, 138, 139, 130, 129, 135, 125, 129, 138, 134, 144, 131, 134, 155, 133, 127, 139, 142, 144, 139, 125, 131, 124, 148, 128, 130, 141, 127, 154, 103, 141, 133, 138, 113, 131, 126, 133, 129, 129, 136, 148, 144, 145, 136, 142, 133, 142, 138, 122, 138, 144, 114, 138, 143, 132, 135, 123, 129, 143, 121, 140, 118, 134, 138, 136, 134, 142, 132, 147, 130, 146, 132, 133, 107, 149, 141, 117, 136, 133, 141, 127, 137, 150, 149, 130, 135, 137, 159, 138, 142, 137, 138, 138, 125, 140, 149, 146, 160, 130, 132, 122, 131, 141, 127, 143, 123, 135, 139, 124, 129, 130, 129, 134, 145, 133, 119, 135, 137, 133, 139, 127, 133, 127, 135, 132, 123, 129, 142, 146, 139, 134, 117, 148, 132, 133, 129, 154, 142, 130, 149, 125, 125, 145, 133, 157, 143, 139, 140, 119, 137, 127, 135, 139, 149, 136, 128, 141, 132, 130, 135, 132, 125, 133, 146, 141, 150, 142, 138, 141, 149, 152, 119, 132, 144, 142, 127, 128, 138, 141, 140, 130, 147, 129, 141, 133, 155, 150, 132, 133, 141, 131, 138, 140, 137, 131, 129, 134, 151, 140, 138, 124, 133, 135, 127, 154, 129, 135, 133, 143, 147, 116, 130, 153, 160, 135, 134, 128, 146, 128, 133, 128, 128, 133, 127, 145, 131, 133, 133, 140, 128, 134, 126, 124, 130, 131, 129, 147, 130, 137, 120, 137, 136, 140, 133, 141, 155, 129, 130, 133, 132, 138, 125, 133, 138, 143, 141, 120, 140, 132, 134, 138, 140, 122, 141, 123, 140, 126, 140, 138, 142, 118, 129, 133, 132, 133, 132, 131, 140, 137, 146, 136, 129, 136, 126, 134, 148, 140, 147, 128, 136, 126, 139, 143, 142, 132, 140, 129, 145, 130, 132, 137, 130, 155, 133, 127, 130, 142, 139, 132, 127, 133, 130, 147, 143, 129, 131, 136, 158, 131, 153, 140, 131, 189, 144, 149, 144, 143, 132, 138, 127, 133, 126, 125, 132, 139, 148, 142, 134, 135, 134, 140, 135, 141, 125, 131, 133, 140, 133, 134, 144, 155, 141, 136, 126, 140, 133, 134, 123, 135, 131, 137, 141, 143, 128, 139, 137, 119, 161, 132, 147, 137, 134, 141, 132, 146, 130, 127, 131, 128, 141, 134, 130, 143, 130, 127, 137, 158, 134, 127, 130, 134, 142, 128, 136, 134, 148, 131, 130, 137, 134, 132, 124, 136, 139, 145, 138, 126, 136, 155, 120, 136, 136, 137, 130, 125, 143, 133, 144, 142, 136, 128, 142, 137, 136, 135, 133, 96, 138, 121, 139, 139, 140, 137, 134, 134, 133, 140, 157, 140, 137, 152, 135, 137, 133, 122, 126, 143, 127, 138, 121, 142, 135, 138, 130, 128, 125, 137, 122, 129, 122, 154, 137, 123, 144, 131, 135, 142, 134, 128, 142, 142, 124, 129, 133, 128, 144, 130, 138, 127, 133, 132, 137, 130, 138, 147, 134, 142, 143, 131, 135, 141, 130, 128, 134, 126, 137, 144, 152, 135, 133, 129, 138, 151, 148, 132, 138, 135, 129, 137, 136, 133, 162, 126, 123, 132, 138, 134, 113, 132, 128, 135, 147, 135, 135, 126, 127, 146, 126, 135, 138, 138, 135, 131, 131, 133, 126, 136, 129, 116, 129, 127, 134, 142, 140, 120, 129, 146, 138, 172, 150, 122, 118, 137, 135, 140, 136, 128, 131, 134, 129, 132, 132, 145, 134, 138, 127, 143, 123, 146, 141, 135, 131, 136, 132, 126, 122, 139, 130, 136, 132, 133, 125, 143, 131, 142, 134, 112, 134, 140, 133, 130, 138, 137, 130, 140, 131, 146, 135, 142, 131, 128, 130, 125, 135, 117, 130, 132, 147, 127, 130, 136, 140, 132, 130, 131, 121, 137, 143, 124, 133, 135, 138, 136, 151, 134, 145, 138, 126, 119, 132, 135, 137, 153, 131, 127, 137, 139, 145, 146, 136, 134, 142, 140, 139, 149, 133, 130, 133, 116, 134, 136, 139, 132, 133, 139, 137, 120, 114, 131, 131, 139, 131, 133, 139, 147, 140, 116, 138, 133, 133, 134, 146, 135, 134, 129, 130, 140, 133, 123, 133, 131, 136, 134, 134, 132, 145, 152, 117, 122, 137, 135, 132, 135, 134, 146, 129, 128, 132, 128, 134, 124, 148, 141, 129, 124, 126, 130, 135, 133, 122, 124, 146, 127, 157, 150, 125, 136, 135, 133, 136, 134, 145, 136, 135, 139, 144, 135, 130, 176, 130, 132, 125, 132, 136, 131, 133, 135, 138, 134, 127, 132, 137, 145, 138, 131, 139, 129, 140, 145, 133, 143, 140, 142, 139, 128, 129, 156, 119, 135, 137, 131, 115, 147, 122, 144, 134, 128, 130, 131, 140, 126, 151, 122, 133, 131, 133, 125, 140, 140, 128, 130, 130, 121, 130, 121, 121, 140, 125, 126, 136, 151, 139, 127, 136, 129, 144, 136, 137, 136, 143, 135, 136, 129, 172, 127, 133, 135, 127, 148, 147, 126, 141, 141, 138, 128, 137, 124, 148, 130, 131, 136, 152, 131, 128, 143, 155, 138, 137, 139, 130, 140, 150, 145, 122, 121, 125, 135, 127, 124, 170, 134, 134, 132, 123, 132, 117, 122, 126, 137, 128, 136, 128, 128, 119, 128, 132, 133, 140, 136, 136, 138, 155, 123, 127, 134, 145, 124, 119, 130, 132, 140, 137, 129, 136, 145, 138, 135, 133, 124, 133, 129, 136, 129, 125, 130, 145, 130, 136, 147, 137, 121, 127, 141, 123, 134, 146, 143, 137, 138, 138, 123, 134, 143, 137, 140, 139, 143, 156, 146, 123, 148, 118, 133, 149, 139, 130, 133, 159, 122, 124, 133, 145, 136, 133, 133, 133, 124, 126, 132, 138, 131, 141, 137, 140, 113, 135, 136, 139, 132, 120, 132, 120, 135, 139, 139, 140, 143, 130, 126, 136, 152, 143, 139, 143, 142, 119, 134, 134, 138, 137, 134, 135, 142, 145, 143, 141, 139, 149, 115, 129, 134, 137, 135, 130, 138, 144, 147, 121, 133, 133, 138, 147, 108, 133, 142, 144, 137, 146, 146, 138, 133, 120, 160, 125, 134, 133, 132, 132, 134, 157, 155, 144, 129, 131, 139, 126, 141, 128, 128, 137, 124, 145, 138, 147, 138, 146, 137, 132, 133, 148, 122, 139, 136, 146, 119, 133, 137, 126, 132, 125, 126, 131, 127, 134, 132, 136, 135, 134, 147, 142, 145, 138, 147, 150, 125, 135, 125, 126, 127, 143, 129, 126, 132, 133, 134, 137, 146, 132, 128, 142, 158, 143, 138, 133, 129, 150, 130, 137, 133, 130, 135, 135, 141, 147, 125, 127, 143, 122, 129, 134, 140, 123, 134, 134, 142, 138, 138, 126, 125, 147, 135, 139, 132, 134, 154, 148, 113, 132, 134, 127, 128, 125, 133, 125, 128, 137, 127, 135, 124, 137, 144, 141, 137, 119, 148, 135, 141, 132, 144, 147, 131, 137, 140, 137, 133, 147, 127, 128, 133, 134, 141, 135, 127, 131, 125, 130, 149, 126, 136, 138, 131, 133, 121, 139, 140, 150, 131, 140, 132, 133, 134, 143, 123, 140, 150, 125, 141, 138, 123, 148, 129, 144, 134, 120, 124, 124, 144, 131, 127, 128, 135, 130, 137, 146, 144, 145, 125, 129, 141, 135, 146, 127, 134, 125, 132, 141, 143, 149, 142, 135, 136, 137, 143, 141, 144, 135, 143, 151, 132, 127, 143, 134, 125, 143, 130, 139, 125, 131, 134, 140, 135, 141, 141, 125, 134, 172, 145, 133, 139, 140, 145, 137, 121, 141, 143, 134, 149, 147, 128, 141, 138, 136, 127, 157, 135, 123, 139, 145, 135, 133, 123, 137, 130, 125, 135, 130, 142, 142, 144, 137, 147, 139, 135, 142, 127, 137, 136, 131, 139, 142, 141, 133, 137, 143, 127, 141, 131, 130, 137, 143, 142, 137, 145, 127, 126, 134, 135, 140, 125, 152, 136, 132, 137, 143, 144, 125, 142, 143, 134, 134, 137, 130, 136, 135, 133, 141, 148, 130, 151, 134, 133, 145, 136, 151, 142, 152, 134, 128, 139, 137, 134, 112, 131, 144, 152, 123, 132, 122, 145, 159, 134, 131, 136, 141, 141, 132, 137, 131, 136, 142, 133, 137, 131, 132, 141, 144, 128, 147, 135, 135, 132, 146, 137, 135, 139, 150, 134, 137, 146, 131, 136, 123, 129, 138, 132, 141, 134, 139, 134, 136, 133, 142, 141, 137, 143, 124, 144, 128, 137, 131, 136, 131, 145, 144, 138, 134, 122, 133, 120, 134, 141, 150, 144, 121, 138, 134, 157, 140, 140, 136, 136, 132, 137, 134, 144, 140, 130, 130, 134, 137, 136, 146, 145, 131, 133, 142, 141, 143, 129, 142, 137, 133, 139, 144, 132, 138, 135, 140, 135, 143, 143, 127, 147, 133, 134, 144, 164, 135, 153, 141, 139, 137, 129, 127, 133, 129, 123, 142, 130, 137, 139, 133, 146, 162, 130, 127, 141, 126, 134, 137, 135, 129, 132, 156, 129, 131, 131, 139, 140, 137, 135, 135, 142, 138, 133, 144, 139, 142, 145, 141, 142, 137, 131, 137, 129, 124, 131, 133, 140, 132, 131, 136, 132, 121, 130, 134, 141, 137, 126, 139, 137, 127, 135, 133, 131, 139, 140, 142, 138, 146, 132, 143, 134, 124, 133, 127, 135, 120, 129, 143, 148, 137, 148, 145, 132, 133, 133, 131, 134, 145, 128, 141, 140, 140, 139, 141, 140, 136, 134, 129, 122, 129, 126, 144, 131, 133, 134, 140, 150, 129, 138, 130, 132, 127, 132, 133, 142, 121, 142, 142, 132, 131, 140, 133, 138, 126, 132, 133, 132, 123, 129, 136, 150, 141, 141, 127, 138, 131, 145, 134, 135, 139, 139, 138, 132, 141, 137, 160, 137, 136, 132, 131, 131, 140, 143, 127, 144, 136, 145, 146, 130, 134, 141, 134, 138, 137, 124, 128, 135, 130, 135, 151, 144, 144, 139, 138, 139, 147, 130, 148, 135, 134, 138, 144, 135, 133, 145, 133, 144, 131, 156, 134, 131, 128, 133, 130, 133, 144, 131, 131, 141, 163, 129, 135, 132, 149, 141, 137, 152, 138, 124, 138, 141, 147, 142, 136, 134, 138, 119, 130, 132, 125, 132, 157, 121, 142, 139, 140, 137, 128, 129, 135, 126, 143, 136, 138, 137, 150, 141, 139, 135, 130, 125, 134, 124, 128, 131, 134, 137, 138, 131, 131, 152, 130, 130, 131, 133, 138, 122, 147, 141, 128, 143, 136, 130, 123, 133, 130, 140, 132, 149, 131, 139, 142, 147, 148, 143, 136, 134, 136, 125, 132, 141, 121, 131, 140, 129, 133, 132, 138, 138, 131, 157, 139, 138, 131, 133, 140, 131, 134, 121, 129, 131, 138, 123, 133, 140, 144, 141, 133, 132, 130, 143, 136, 140, 134, 137, 144, 134, 137, 128, 137, 132, 138, 135, 142, 132, 145, 128, 135, 136, 125, 134, 132, 131, 129, 136, 145, 134, 131, 134, 139, 144, 137, 157, 124, 133, 126, 143, 129, 128, 132, 135, 130, 137, 123, 118, 142, 138, 129, 136, 147, 142, 148, 143, 126, 131, 144, 151, 150, 130, 139, 136, 130, 126, 131, 147, 140, 136, 151, 131, 124, 135, 135, 128, 159, 130, 149, 126, 147, 139, 130, 133, 127, 144, 133, 130, 125, 126, 115, 127, 120, 151, 129, 133, 137, 131, 121, 138, 134, 126, 127, 172, 123, 121, 143, 142, 129, 147, 138, 121, 122, 133, 146, 140, 131, 134, 125, 156, 139, 131, 126, 120, 132, 137, 140, 131, 133, 139, 134, 129, 153, 159, 128, 143, 131, 139, 137, 132, 130, 130, 136, 138, 131, 134, 122, 157, 128, 126, 109, 123, 140, 131, 134, 133, 143, 132, 135, 135, 135, 135, 136, 138, 147, 135, 135, 136, 146, 140, 121, 127, 130, 148, 130, 159, 129, 129, 134, 134, 131, 141, 128, 135, 119, 139, 133, 122, 142, 141, 132, 144, 129, 141, 131, 133, 130, 164, 126, 131, 135, 133, 134, 126, 140, 141, 148, 141, 120, 125, 130, 133, 130, 127, 137, 143, 142, 134, 135, 137, 125, 117, 154, 147, 128, 126, 132, 126, 141, 149, 122, 132, 128, 133, 121, 136, 131, 133, 128, 160, 135, 140, 126, 133, 143, 148, 124, 133, 131, 152, 127, 137, 126, 139, 136, 133, 109, 149, 126, 125, 134, 141, 132, 139, 130, 145, 156, 123, 139, 138, 125, 128, 126, 128, 140, 144, 150, 145, 139, 129, 153, 137, 143, 121, 126, 149, 140, 122, 126, 135, 125, 134, 136, 133, 127, 128, 134, 136, 151, 137, 133, 141, 128, 143, 138, 130, 150, 128, 130, 132, 134, 131, 141, 140, 159, 130, 128, 141, 149, 133, 139, 134, 149, 157, 134, 159, 128, 146, 124, 136, 138, 142, 132, 126, 131, 126, 146, 133, 139, 150, 142, 125, 141, 131, 141, 150, 125, 137, 132, 135, 122, 140, 121, 145, 138, 137, 130, 134, 159, 143, 138, 141, 134, 140, 146, 131, 127, 122, 129, 138, 134, 122, 165, 123, 139, 150, 150, 129, 163, 136, 140, 120, 145, 145, 131, 146, 124, 134, 125, 116, 133, 119, 125, 148, 145, 154, 128, 136, 141, 127, 132, 155, 140, 137, 127, 125, 151, 152, 125, 124, 129, 136, 149, 129, 155, 125, 129, 134, 146, 130, 136, 153, 125, 129, 127, 137, 130, 144, 129, 129, 143, 143, 143, 124, 135, 136, 133, 129, 126, 135, 136, 137, 137, 127, 156, 142, 140, 131, 133, 127, 144, 139, 136, 135, 151, 142, 131, 126, 137, 147, 134, 128, 135, 137, 114, 141, 124, 156, 154, 143, 128, 142, 112, 127, 126, 142, 131, 135, 141, 150, 128, 134, 128, 146, 146, 132, 138, 129, 125, 145, 138, 131, 127, 131, 143, 133, 143, 128, 141, 131, 144, 154, 128, 137, 140, 143, 134, 138, 161, 135, 129, 129, 134, 125, 134, 136, 152, 135, 157, 146, 131, 140, 135, 140, 123, 149, 142, 122, 155, 136, 125, 136, 127, 137, 150, 149, 150, 132, 130, 132, 124, 128, 134, 135, 140, 147, 140, 129, 136, 134, 141, 134, 144, 137, 138, 134, 134, 141, 119, 135, 134, 134, 133, 138, 161, 136, 134, 135, 147, 133, 132, 136, 135, 137, 135, 141, 129, 135, 131, 141, 138, 140, 139, 141, 142, 137, 131, 148, 140, 131, 130, 133, 134, 132, 128, 132, 133, 138, 138, 131, 142, 129, 130, 141, 144, 135, 129, 139, 137, 135, 134, 138, 132, 132, 139, 136, 150, 149, 138, 137, 139, 127, 141, 141, 136, 136, 139, 133, 138, 135, 139, 134, 137, 128, 128, 137, 141, 136, 129, 134, 137, 131, 134, 135, 137, 140, 148, 143, 129, 142, 136, 137, 139, 140, 137, 135, 142, 128, 148, 139, 130, 131, 137, 145, 125, 142, 130, 138, 126, 128, 136, 151, 134, 135, 136, 135, 129, 143, 141, 138, 138, 128, 132, 134, 140, 141, 136, 134, 133, 122, 121, 140, 143, 136, 158, 136, 136, 140, 140, 133, 134, 133, 140, 139, 137, 131, 131, 144, 129, 131, 148, 125, 135, 138, 133, 137, 138, 129, 139, 142, 131, 141, 131, 130, 138, 140, 134, 132, 136, 124, 148, 140, 123, 141, 133, 132, 138, 134, 134, 128, 133, 137, 132, 134, 147, 138, 139, 137, 136, 133, 146, 128, 134, 138, 133, 132, 146, 134, 138, 135, 116, 138, 150, 136, 142, 127, 131, 133, 131, 136, 145, 132, 137, 132, 128, 129, 142, 139, 134, 134, 139, 133, 128, 131, 136, 140, 138, 139, 132, 134, 143, 130, 116, 131, 135, 133, 136, 127, 134, 138, 147, 139, 134, 137, 141, 146, 133, 145, 139, 146, 135, 136, 137, 133, 141, 138, 133, 136, 136, 139, 121, 133, 135, 129, 139, 137, 135, 131, 140, 128, 149, 146, 127, 148, 127, 131, 162, 132, 138, 130, 135, 138, 136, 141, 135, 133, 135, 136, 137, 135, 137, 143, 132, 137, 134, 132, 153, 128, 135, 139, 135, 129, 146, 137, 141, 134, 133, 145, 141, 140, 112, 134, 136, 141, 150, 141, 137, 136, 138, 136, 143, 118, 129, 136, 137, 140, 146, 139, 146, 137, 132, 145, 145, 136, 130, 127, 129, 141, 134, 134, 129, 136, 141, 139, 123, 139, 133, 139, 137, 139, 134, 138, 138, 136, 125, 138, 148, 142, 138, 141, 132, 140, 145, 144, 132, 146, 127, 141, 139, 149, 133, 135, 129, 120, 131, 124, 129, 133, 130, 134, 137, 140, 149, 135, 143, 133, 136, 137, 137, 132, 138, 138, 145, 135, 139, 141, 136, 141, 145, 126, 125, 142, 132, 136, 125, 140, 138, 150, 143, 137, 136, 139, 136, 138, 129, 133, 131, 139, 138, 141, 113, 140, 130, 147, 120, 174, 135, 137, 133, 132, 153, 139, 144, 141, 133, 131, 136, 138, 135, 135, 140, 142, 132, 132, 134, 137, 141, 124, 134, 134, 132, 132, 130, 131, 129, 141, 136, 144, 140, 125, 136, 132, 135, 138, 129, 137, 137, 130, 132, 135, 125, 132, 138, 138, 138, 131, 141, 133, 134, 136, 148, 134, 136, 138, 134, 133, 127, 131, 139, 129, 132, 127, 139, 124, 127, 131, 134, 144, 137, 123, 143, 130, 154, 130, 151, 140, 134, 135, 123, 121, 121, 146, 140, 138, 129, 134, 126, 141, 136, 131, 139, 152, 132, 140, 128, 126, 142, 134, 133, 140, 128, 141, 132, 140, 142, 132, 126, 137, 118, 137, 128, 140, 139, 127, 139, 134, 145, 127, 144, 130, 121, 142, 156, 129, 140, 147, 135, 148, 135, 123, 143, 144, 136, 130, 143, 140, 142, 139, 115, 145, 156, 121, 127, 134, 123, 123, 139, 145, 136, 123, 141, 135, 147, 139, 140, 130, 131, 135, 136, 127, 125, 130, 113, 128, 142, 125, 139, 131, 105, 141, 143, 128, 138, 136, 141, 136, 142, 123, 130, 133, 134, 130, 130, 141, 129, 119, 134, 138, 132, 135, 149, 141, 127, 131, 149, 140, 141, 144, 127, 142, 128, 136, 139, 123, 131, 134, 147, 121, 142, 122, 133, 147, 131, 148, 136, 126, 140, 133, 137, 148, 135, 132, 143, 139, 126, 123, 114, 141, 143, 139, 126, 124, 136, 139, 137, 137, 134, 134, 150, 133, 132, 124, 136, 130, 129, 123, 142, 129, 141, 135, 130, 125, 125, 146, 147, 144, 131, 134, 126, 155, 162, 134, 127, 142, 123, 132, 133, 125, 153, 159, 143, 130, 139, 136, 139, 132, 133, 143, 137, 126, 129, 125, 125, 139, 129, 124, 140, 152, 136, 141, 133, 130, 138, 112, 134, 131, 144, 135, 138, 134, 133, 140, 154, 142, 139, 139, 133, 147, 150, 133, 127, 120, 147, 132, 133, 135, 134, 140, 133, 126, 139, 138, 140, 135, 136, 122, 146, 139, 134, 129, 119, 139, 139, 134, 123, 141, 129, 137, 160, 157, 151, 142, 132, 135, 139, 138, 147, 143, 120, 129, 121, 127, 144, 126, 142, 127, 135, 139, 166, 140, 145, 145, 121, 133, 129, 137, 120, 135, 121, 124, 139, 136, 139, 122, 127, 141, 127, 123, 140, 131, 148, 127, 127, 143, 128, 127, 135, 122, 149, 128, 132, 124, 144, 138, 124, 140, 140, 132, 124, 150, 125, 142, 142, 130, 134, 134, 128, 144, 129, 126, 135, 136, 135, 138, 136, 139, 154, 133, 142, 135, 126, 139, 137, 127, 139, 149, 135, 125, 145, 124, 129, 149, 125, 124, 138, 139, 128, 126, 132, 130, 147, 134, 122, 137, 129, 127, 131, 152, 137, 151, 142, 130, 141, 124, 136, 131, 148, 140, 167, 132, 141, 141, 138, 151, 135, 135, 128, 139, 141, 138, 152, 131, 130, 120, 135, 122, 142, 136, 131, 132, 127, 130, 138, 141, 129, 141, 130, 148, 135, 132, 145, 109, 165, 130, 137, 129, 135, 128, 126, 126, 129, 133, 141, 126, 137, 148, 100, 145, 124, 135, 134, 130, 132, 128, 132, 127, 125, 129, 138, 137, 139, 127, 125, 126, 135, 138, 150, 126, 132, 132, 145, 136, 149, 120, 135, 137, 135, 126, 135, 137, 134, 133, 132, 139, 124, 131, 143, 124, 151, 132, 131, 137, 151, 132, 134, 149, 143, 126, 128, 133, 142, 138, 131, 131, 145, 130, 139, 140, 122, 152, 135, 139, 145, 135, 133, 138, 133, 142, 139, 146, 140, 137, 137, 138, 128, 145, 132, 136, 134, 131, 142, 133, 140, 138, 144, 135, 136, 138, 142, 137, 143, 146, 138, 136, 131, 140, 142, 138, 136, 133, 141, 138, 128, 139, 130, 135, 137, 134, 132, 140, 135, 140, 132, 138, 134, 132, 140, 128, 136, 128, 133, 134, 140, 131, 138, 138, 131, 126, 135, 147, 135, 144, 131, 136, 136, 140, 151, 124, 147, 136, 141, 133, 137, 135, 138, 151, 140, 132, 134, 138, 142, 133, 139, 135, 123, 136, 134, 128, 134, 136, 137, 137, 131, 130, 134, 136, 141, 138, 135, 134, 142, 131, 142, 137, 136, 138, 142, 139, 139, 132, 132, 136, 137, 135, 134, 137, 144, 137, 140, 136, 136, 140, 135, 147, 148, 136, 143, 132, 128, 136, 131, 134, 138, 135, 138, 133, 139, 134, 127, 130, 142, 136, 135, 135, 137, 139, 138, 133, 143, 140, 145, 128, 128, 138, 133, 140, 140, 137, 133, 137, 133, 141, 137, 134, 137, 132, 132, 140, 139, 140, 138, 142, 122, 140, 133, 135, 136, 143, 139, 129, 127, 137, 131, 132, 142, 127, 133, 133, 147, 137, 138, 133, 128, 128, 137, 143, 138, 138, 138, 147, 139, 141, 143, 139, 131, 134, 138, 132, 142, 135, 136, 133, 126, 130, 140, 137, 134, 144, 146, 128, 140, 130, 141, 134, 141, 132, 140, 142, 138, 120, 142, 136, 123, 133, 145, 144, 144, 141, 130, 138, 134, 137, 135, 141, 136, 133, 131, 129, 140, 132, 141, 138, 143, 133, 140, 134, 132, 138, 139, 133, 138, 139, 129, 129, 137, 129, 139, 143, 137, 132, 136, 135, 143, 137, 150, 126, 139, 134, 124, 131, 138, 144, 136, 142, 141, 131, 131, 133, 140, 142, 136, 131, 138, 142, 145, 140, 136, 146, 133, 131, 126, 129, 132, 141, 128, 140, 142, 132, 134, 134, 125, 147, 132, 146, 133, 137, 132, 133, 139, 141, 136, 143, 134, 133, 140, 133, 139, 133, 135, 139, 137, 128, 131, 137, 123, 137, 137, 145, 133, 131, 129, 140, 138, 135, 135, 134, 133, 143, 130, 142, 141, 134, 126, 131, 136, 143, 143, 132, 150, 139, 133, 124, 138, 138, 148, 142, 137, 134, 140, 136, 140, 139, 125, 143, 132, 136, 132, 135, 133, 124, 139, 139, 139, 137, 138, 141, 143, 141, 140, 138, 132, 127, 131, 138, 134, 139, 137, 144, 137, 138, 134, 125, 131, 129, 140, 129, 136, 149, 137, 127, 134, 135, 139, 139, 126, 129, 141, 146, 138, 129, 133, 134, 139, 139, 128, 141, 148, 136, 145, 141, 137, 128, 142, 142, 131, 134, 130, 139, 135, 135, 131, 144, 147, 143, 146, 143, 136, 138, 142, 138, 135, 137, 132, 129, 140, 128, 131, 149, 135, 114, 132, 128, 135, 139, 134, 138, 138, 142, 134, 136, 137, 136, 140, 141, 134, 125, 125, 144, 136, 133, 142, 135, 141, 119, 141, 121, 136, 140, 136, 143, 148, 136, 152, 140, 124, 139, 139, 142, 143, 133, 142, 152, 131, 139, 137, 139, 137, 139, 123, 127, 134, 144, 133, 142, 121, 140, 140, 124, 134, 128, 139, 133, 136, 145, 139, 117, 149, 135, 134, 131, 194, 116, 145, 132, 135, 144, 137, 137, 132, 141, 119, 133, 137, 128, 120, 124, 134, 126, 152, 133, 147, 135, 132, 139, 133, 121, 136, 146, 132, 143, 125, 138, 153, 125, 126, 145, 144, 128, 126, 118, 140, 121, 141, 128, 132, 140, 137, 138, 138, 136, 127, 130, 148, 129, 134, 138, 135, 147, 133, 134, 129, 132, 133, 134, 140, 137, 137, 136, 130, 134, 135, 133, 128, 125, 144, 138, 139, 123, 131, 128, 135, 146, 143, 132, 124, 139, 128, 121, 141, 135, 138, 125, 131, 141, 152, 129, 123, 124, 133, 128, 131, 125, 146, 155, 142, 124, 140, 146, 140, 133, 125, 126, 141, 138, 132, 121, 136, 138, 143, 140, 131, 120, 127, 129, 128, 123, 155, 137, 141, 142, 139, 132, 132, 141, 140, 136, 135, 127, 136, 139, 133, 133, 145, 141, 128, 139, 131, 135, 132, 125, 141, 145, 126, 123, 121, 142, 131, 121, 147, 143, 158, 137, 134, 138, 179, 137, 127, 131, 124, 131, 144, 136, 140, 134, 128, 146, 137, 142, 128, 125, 138, 150, 139, 144, 135, 137, 139, 118, 126, 135, 119, 117, 134, 141, 125, 149, 147, 126, 122, 132, 137, 136, 144, 134, 134, 140, 138, 131, 154, 133, 154, 140, 134, 132, 131, 141, 129, 144, 129, 144, 147, 144, 145, 133, 137, 137, 155, 137, 132, 118, 133, 146, 145, 126, 131, 130, 144, 143, 129, 128, 130, 126, 127, 140, 133, 127, 144, 139, 140, 122, 128, 141, 130, 142, 134, 135, 167, 144, 131, 115, 142, 140, 136, 130, 133, 143, 138, 131, 127, 137, 139, 119, 115, 131, 141, 135, 144, 130, 137, 149, 144, 136, 133, 138, 133, 137, 129, 156, 129, 138, 131, 131, 139, 142, 146, 130, 138, 137, 111, 146, 128, 125, 157, 124, 157, 111, 137, 140, 136, 145, 122, 137, 139, 133, 145, 129, 130, 137, 126, 131, 143, 129, 143, 141, 116, 125, 135, 138, 136, 123, 130, 136, 121, 129, 143, 132, 124, 137, 137, 145, 135, 147, 138, 135, 145, 136, 138, 128, 136, 143, 114, 133, 150, 133, 130, 133, 120, 129, 134, 136, 122, 134, 131, 136, 137, 145, 151, 144, 146, 148, 121, 142, 130, 145, 147, 146, 126, 134, 135, 140, 148, 131, 134, 134, 134, 144, 136, 132, 139, 131, 139, 140, 123, 121, 124, 123, 137, 149, 123, 138, 134, 125, 136, 124, 133, 152, 132, 129, 149, 153, 144, 127, 140, 124, 123, 150, 151, 137, 138, 131, 155, 141, 142, 130, 127, 123, 127, 131, 146, 125, 141, 147, 143, 132, 140, 133, 129, 147, 146, 141, 140, 137, 135, 139, 121, 145, 133, 138, 133, 125, 147, 137, 133, 136, 131, 137, 126, 125, 143, 135, 155, 135, 137, 147, 136, 140, 135, 134, 147, 142, 152, 121, 126, 138, 141, 124, 127, 128, 133, 137, 124, 142, 130, 141, 131, 133, 143, 132, 129, 138, 126, 141, 119, 136, 148, 118, 143, 134, 147, 151, 181, 147, 143, 136, 144, 127, 128, 133, 158, 130, 135, 145, 148, 132, 143, 118, 131, 133, 141, 130, 133, 122, 132, 149, 133, 133, 132, 136, 138, 152, 144, 136, 133, 129, 138, 146, 113, 135, 136, 128, 124, 152, 144, 114, 147, 156, 165, 126, 128, 145, 135, 131, 134, 141, 151, 135, 127, 130, 140, 120, 142, 122, 145, 112, 129, 133, 152, 130, 140, 122, 147, 148, 145, 131, 152, 153, 132, 149, 130, 137, 118, 133, 135, 138, 141, 122, 115, 116, 142, 133, 114, 132, 132, 141, 129, 137, 138, 139, 127, 147, 144, 141, 124, 132, 136, 124, 149, 139, 130, 129, 146, 138, 144, 141, 153, 135, 140, 146, 135, 140, 142, 147, 177, 118, 120, 139, 144, 132, 134, 126, 123, 135, 142, 131, 132, 136, 139, 132, 129, 119, 119, 118, 127, 124, 135, 125, 132, 149, 155, 147, 140, 119, 147, 121, 140, 128, 144, 121, 134, 146, 110, 129, 128, 137, 134, 138, 151, 137, 142, 118, 140, 138, 137, 137, 126, 134, 132, 140, 139, 155, 138, 142, 112, 139, 136, 151, 130, 130, 134, 137, 133, 140, 130, 143, 159, 132, 136, 105, 146, 143, 140, 126, 146, 138, 134, 138, 138, 126, 138, 148, 135, 137, 128, 141, 139, 139, 150, 138, 141, 149, 129, 143, 118, 143, 139, 145, 154, 145, 149, 137, 130, 141, 142, 130, 130, 138, 124, 127, 142, 126, 141, 144, 134, 123, 148, 147, 130, 122, 141, 136, 135, 138, 135, 167, 148, 146, 134, 136, 130, 137, 131, 128, 133, 139, 133, 133, 121, 149, 119, 137, 124, 134, 136, 127, 131, 129, 164, 129, 142, 138, 138, 131, 114, 122, 122, 136, 134, 126, 125, 120, 117, 130, 128, 140, 132, 132, 134, 131, 135, 125, 136, 140, 117, 129, 135, 135, 139, 145, 123, 140, 136, 122, 121, 127, 150, 156, 130, 123, 128, 133, 121, 134, 137, 143, 138, 154, 127, 123, 126, 145, 138, 135, 139, 139, 129, 146, 147, 141, 124, 131, 135, 138, 134, 126, 131, 117, 128, 133, 143, 135, 140, 143, 141, 149, 135, 128, 143, 148, 132, 164, 136, 125, 127, 138, 133, 108, 128, 144, 147, 147, 125, 142, 143, 135, 142, 160, 129, 140, 120, 137, 134, 135, 128, 140, 150, 123, 141, 135, 150, 136, 132, 124, 143, 141, 139, 137, 133, 106, 130, 127, 137, 150, 128, 139, 132, 118, 139, 144, 134, 105, 125, 144, 131, 131, 129, 137, 130, 135, 137, 136, 136, 120, 132, 105, 145, 120, 111, 140, 133, 130, 141, 138, 137, 132, 148, 130, 140, 127, 134, 126, 141, 140, 139, 144, 137, 139, 134, 137, 152, 126, 145, 150, 147, 118, 131, 141, 133, 151, 136, 135, 134, 136, 138, 136, 139, 156, 138, 116, 124, 115, 136, 117, 135, 142, 135, 140, 145, 150, 142, 143, 138, 140, 127, 148, 135, 123, 133, 154, 143, 136, 139, 148, 130, 165, 133, 130, 169, 143, 140, 145, 150, 133, 134, 131, 132, 140, 130, 142, 148, 138, 126, 140, 133, 114, 140, 125, 132, 140, 141, 131, 161, 139, 144, 140, 141, 142, 142, 141, 140, 135, 144, 128, 133, 126, 148, 150, 131, 132, 129, 160, 133, 129, 150, 135, 130, 131, 139, 145, 147, 137, 135, 142, 138, 137, 122, 140, 134, 132, 127, 144, 139, 120, 143, 145, 134, 130, 139, 132, 136, 113, 136, 142, 119, 130, 128, 134, 129, 130, 128, 136, 129, 135, 127, 135, 138, 138, 137, 135, 131, 131, 129, 143, 148, 128, 150, 117, 153, 134, 125, 136, 127, 148, 127, 140, 140, 138, 138, 146, 130, 126, 144, 144, 150, 130, 116, 133, 148, 129, 124, 152, 126, 128, 119, 135, 129, 131, 142, 126, 147, 122, 147, 134, 123, 154, 117, 152, 130, 140, 135, 145, 136, 143, 136, 142, 147, 147, 136, 136, 142, 135, 147, 138, 143, 131, 144, 130, 147, 140, 129, 137, 155, 133, 146, 134, 131, 143, 124, 139, 128, 146, 141, 134, 134, 127, 131, 131, 140, 141, 142, 133, 148, 127, 140, 139, 143, 148, 121, 135, 135, 135, 132, 159, 124, 144, 159, 139, 140, 156, 138, 135, 125, 146, 145, 144, 136, 126, 150, 141, 127, 129, 154, 131, 143, 128, 127, 131, 144, 142, 124, 141, 137, 139, 128, 138, 120, 129, 134, 144, 124, 126, 147, 137, 147, 138, 134, 147, 134, 135, 132, 143, 143, 131, 115, 129, 123, 139, 138, 142, 133, 149, 145, 129, 154, 140, 146, 128, 144, 145, 153, 127, 131, 150, 135, 123, 129, 129, 159, 138, 132, 136, 143, 142, 130, 122, 152, 129, 140, 133, 129, 125, 149, 145, 127, 155, 129, 134, 142, 118, 131, 143, 145, 122, 146, 108, 146, 136, 134, 136, 138, 139, 133, 148, 151, 133, 124, 145, 120, 128, 143, 129, 152, 138, 148, 144, 134, 148, 137, 139, 135, 130, 136, 132, 155, 135, 122, 134, 133, 135, 158, 138, 146, 129, 131, 129, 134, 136, 153, 122, 137, 123, 144, 136, 127, 151, 140, 127, 133, 145, 143, 133, 151, 147, 125, 116, 139, 140, 133, 161, 139, 127, 142, 116, 124, 127, 143, 147, 148, 150, 137, 153, 143, 107, 125, 146, 141, 146, 147, 131, 142, 139, 112, 123, 141, 131, 140, 131, 147, 138, 134, 142, 109, 130, 133, 137, 143, 121, 124, 133, 136, 138, 132, 120, 137, 116, 130, 150, 134, 150, 157, 132, 124, 139, 135, 142, 140, 142, 152, 140, 129, 148, 149, 138, 139, 132, 117, 132, 139, 137, 142, 138, 139, 148, 138, 113, 135, 130, 142, 154, 116, 149, 137, 132, 152, 139, 133, 145, 138, 110, 135, 108, 149, 145, 132, 129, 127, 140, 152, 138, 135, 139, 141, 142, 151, 138, 154, 147, 122, 130, 134, 137, 144, 134, 150, 152, 131, 138, 155, 121, 142, 122, 154, 145, 130, 136, 130, 136, 141, 128, 125, 139, 139, 136, 127, 152, 132, 144, 127, 143, 131, 143, 116, 157, 130, 138, 132, 105, 128, 139, 144, 137, 129, 156, 138, 122, 129, 145, 136, 141, 139, 144, 138, 154, 146, 145, 148, 147, 134, 145, 128, 115, 144, 128, 138, 133, 113, 133, 124, 144, 135, 136, 138, 134, 143, 140, 128, 135, 140, 124, 148, 127, 151, 140, 125, 132, 125, 131, 141, 142, 137, 141, 142, 134, 130, 135, 138, 122, 143, 134, 140, 122, 141, 142, 157, 144, 142, 140, 139, 124, 129, 142, 134, 132, 106, 133, 129, 151, 143, 130, 131, 139, 127, 145, 140, 131, 154, 139, 135, 141, 140, 138, 141, 146, 145, 131, 150, 137, 140, 152, 145, 135, 140, 133, 137, 129, 141, 125, 135, 141, 147, 136, 135, 142, 126, 133, 124, 123, 136, 129, 123, 143, 139, 127, 134, 138, 137, 132, 139, 152, 133, 130, 128, 138, 142, 136, 135, 137, 145, 133, 134, 143, 136, 124, 142, 133, 146, 131, 144, 135, 131, 128, 145, 135, 146, 136, 124, 155, 132, 136, 141, 121, 125, 131, 146, 142, 134, 128, 140, 149, 135, 131, 138, 137, 140, 138, 132, 142, 137, 123, 135, 135, 136, 139, 142, 138, 137, 135, 135, 145, 121, 130, 135, 147, 146, 139, 150, 141, 133, 128, 129, 140, 129, 123, 129, 136, 138, 135, 120, 143, 134, 144, 136, 136, 132, 131, 136, 141, 138, 130, 122, 137, 130, 141, 129, 141, 137, 144, 137, 123, 133, 132, 137, 146, 133, 139, 126, 135, 137, 136, 134, 139, 145, 129, 135, 138, 134, 136, 137, 141, 129, 134, 134, 136, 137, 138, 143, 142, 134, 143, 124, 136, 133, 139, 142, 140, 137, 142, 131, 128, 141, 132, 136, 138, 137, 138, 131, 128, 128, 143, 131, 136, 138, 138, 153, 136, 143, 128, 131, 136, 129, 130, 128, 135, 153, 121, 140, 136, 129, 121, 137, 141, 124, 138, 142, 139, 147, 140, 140, 140, 136, 134, 138, 142, 148, 135, 140, 141, 131, 114, 137, 150, 132, 141, 135, 145, 126, 140, 140, 128, 141, 130, 138, 147, 142, 129, 129, 127, 137, 141, 137, 137, 138, 138, 140, 134, 129, 123, 145, 145, 140, 152, 136, 142, 140, 139, 143, 127, 136, 141, 135, 131, 148, 146, 134, 138, 137, 140, 137, 142, 146, 129, 117, 154, 139, 143, 135, 138, 147, 143, 143, 135, 146, 145, 139, 152, 135, 133, 132, 144, 146, 132, 143, 135, 137, 141, 148, 141, 138, 129, 133, 131, 133, 134, 120, 131, 143, 129, 139, 151, 120, 150, 138, 147, 126, 143, 136, 141, 133, 141, 149, 134, 137, 143, 133, 140, 140, 147, 125, 127, 135, 139, 130, 131, 144, 142, 130, 123, 137, 132, 140, 148, 124, 138, 140, 139, 145, 128, 137, 141, 144, 122, 143, 139, 134, 137, 146, 133, 142, 131, 135, 143, 132, 137, 137, 147, 144, 112, 134, 137, 125, 138, 142, 139, 134, 124, 125, 137, 150, 140, 153, 138, 136, 134, 133, 140, 132, 113, 134, 141, 131, 121, 140, 150, 132, 145, 142, 140, 142, 118, 133, 130, 151, 133, 111, 117, 142, 127, 135, 145, 127, 138, 130, 135, 142, 130, 143, 121, 137, 134, 142, 125, 128, 139, 141, 135, 132, 127, 123, 128, 129, 138, 128, 137, 121, 145, 146, 141, 149, 134, 133, 140, 134, 134, 139, 135, 140, 143, 136, 109, 142, 137, 135, 135, 136, 134, 140, 129, 130, 129, 127, 125, 120, 126, 120, 145, 119, 139, 128, 144, 137, 145, 136, 131, 135, 141, 142, 123, 129, 142, 146, 143, 153, 138, 133, 121, 143, 142, 125, 136, 133, 135, 160, 143, 132, 139, 134, 135, 136, 133, 141, 129, 129, 130, 144, 142, 164, 145, 143, 146, 134, 124, 122, 134, 140, 145, 161, 123, 130, 135, 168, 138, 147, 139, 137, 131, 141, 143, 141, 142, 139, 125, 143, 139, 126, 135, 132, 153, 132, 137, 133, 142, 125, 133, 127, 139, 146, 148, 137, 116, 121, 156, 139, 136, 134, 121, 134, 137, 140, 139, 121, 132, 141, 127, 137, 135, 119, 143, 147, 149, 135, 133, 139, 132, 139, 144, 124, 132, 139, 147, 138, 166, 132, 148, 128, 136, 131, 119, 142, 130, 140, 140, 143, 138, 138, 130, 143, 136, 133, 131, 129, 124, 138, 157, 144, 132, 130, 141, 133, 141, 140, 139, 129, 128, 134, 140, 127, 128, 141, 125, 129, 123, 148, 123, 129, 120, 135, 138, 125, 145, 135, 135, 135, 141, 125, 139, 133, 138, 135, 137, 138, 152, 137, 135, 125, 122, 129, 138, 132, 135, 132, 128, 136, 130, 151, 144, 148, 171, 139, 151, 135, 133, 129, 129, 121, 120, 144, 137, 123, 124, 135, 125, 126, 131, 144, 130, 132, 165, 130, 135, 139, 137, 137, 137, 130, 148, 130, 149, 133, 136, 136, 123, 133, 133, 125, 142, 139, 128, 127, 121, 134, 127, 139, 134, 131, 123, 137, 128, 145, 122, 149, 126, 159, 142, 137, 148, 123, 128, 128, 137, 139, 143, 139, 147, 138, 149, 131, 148, 144, 156, 145, 125, 140, 137, 129, 142, 140, 135, 138, 121, 147, 147, 151, 127, 159, 134, 143, 146, 126, 134, 138, 120, 152, 133, 131, 147, 146, 137, 135, 137, 129, 137, 140, 142, 152, 138, 131, 145, 128, 133, 132, 130, 125, 145, 126, 142, 147, 148, 123, 143, 129, 144, 136, 147, 124, 136, 138, 132, 130, 130, 138, 130, 136, 102, 131, 147, 129, 141, 138, 140, 128, 158, 136, 135, 143, 131, 131, 134, 132, 131, 129, 124, 130, 132, 151, 104, 131, 139, 137, 132, 138, 137, 124, 126, 131, 122, 137, 129, 137, 122, 123, 128, 135, 157, 136, 134, 151, 148, 117, 147, 144, 135, 165, 128, 129, 130, 141, 135, 139, 131, 136, 150, 137, 130, 132, 130, 135, 126, 131, 132, 120, 128, 131, 145, 140, 131, 134, 122, 122, 134, 122, 135, 126, 124, 135, 129, 141, 146, 137, 154, 132, 138, 132, 138, 141, 148, 132, 131, 140, 140, 113, 141, 127, 142, 132, 130, 126, 142, 149, 146, 140, 134, 165, 128, 129, 134, 159, 128, 138, 137, 126, 140, 136, 132, 136, 120, 140, 120, 149, 135, 143, 125, 119, 151, 141, 129, 140, 134, 135, 139, 157, 140, 136, 155, 133, 127, 132, 160, 134, 129, 135, 137, 141, 133, 133, 126, 130, 149, 148, 124, 130, 135, 134, 126, 138, 132, 153, 132, 141, 148, 135, 149, 136, 144, 136, 127, 129, 124, 137, 135, 134, 138, 131, 136, 127, 155, 151, 147, 131, 138, 137, 137, 130, 134, 139, 143, 160, 146, 127, 138, 141, 138, 137, 136, 138, 126, 136, 129, 146, 128, 137, 144, 128, 114, 139, 136, 126, 128, 135, 137, 133, 147, 141, 141, 131, 139, 136, 138, 116, 135, 128, 132, 142, 153, 165, 146, 125, 143, 128, 148, 140, 142, 131, 142, 122, 142, 143, 136, 142, 138, 140, 133, 121, 134, 128, 140, 126, 127, 125, 140, 151, 130, 150, 133, 141, 141, 128, 137, 123, 148, 133, 122, 134, 118, 115, 137, 120, 132, 130, 139, 128, 125, 137, 144, 134, 135, 136, 139, 145, 133, 116, 151, 138, 134, 138, 136, 119, 129, 131, 139, 137, 131, 145, 123, 135, 143, 134, 146, 141, 130, 141, 141, 136, 145, 143, 141, 136, 132, 130, 127, 142, 155, 134, 136, 129, 128, 130, 135, 135, 117, 136, 144, 124, 119, 115, 144, 137, 135, 127, 128, 138, 139, 146, 130, 124, 140, 141, 129, 140, 137, 133, 136, 142, 132, 137, 136, 131, 133, 131, 128, 135, 133, 136, 136, 128, 141, 150, 135, 150, 133, 140, 127, 143, 137, 128, 135, 136, 131, 130, 126, 137, 137, 135, 147, 132, 145, 134, 136, 140, 139, 127, 137, 140, 126, 136, 147, 137, 137, 130, 127, 151, 134, 147, 135, 135, 139, 145, 125, 133, 136, 119, 117, 131, 126, 138, 133, 141, 139, 148, 120, 147, 141, 129, 131, 132, 120, 147, 129, 134, 136, 138, 138, 126, 139, 143, 126, 139, 140, 132, 145, 133, 143, 117, 143, 144, 135, 151, 138, 140, 146, 128, 139, 134, 135, 143, 136, 128, 138, 134, 153, 126, 122, 137, 138, 134, 152, 126, 147, 128, 131, 137, 133, 142, 127, 131, 152, 115, 132, 140, 145, 145, 129, 127, 137, 141, 136, 145, 139, 135, 132, 134, 140, 141, 113, 154, 144, 126, 122, 134, 150, 148, 145, 145, 125, 133, 146, 140, 124, 135, 143, 132, 134, 145, 130, 134, 126, 137, 140, 150, 134, 147, 130, 135, 138, 148, 135, 143, 140, 138, 134, 123, 136, 136, 137, 144, 138, 139, 144, 136, 123, 132, 137, 141, 146, 130, 136, 141, 131, 117, 135, 147, 136, 133, 136, 134, 120, 132, 138, 138, 134, 143, 157, 134, 126, 124, 135, 143, 135, 133, 147, 136, 137, 137, 129, 139, 147, 124, 142, 145, 135, 148, 137, 130, 129, 139, 128, 134, 141, 137, 131, 143, 135, 135, 140, 131, 133, 122, 139, 138, 141, 143, 137, 138, 140, 121, 140, 127, 135, 142, 140, 121, 137, 138, 136, 129, 134, 143, 116, 129, 137, 120, 139, 124, 141, 131, 133, 139, 131, 131, 140, 130, 133, 137, 127, 126, 126, 132, 139, 140, 148, 146, 136, 147, 138, 131, 148, 124, 142, 143, 140, 144, 131, 143, 140, 136, 133, 132, 137, 137, 139, 135, 144, 132, 134, 137, 141, 137, 143, 136, 147, 132, 124, 135, 136, 116, 134, 134, 134, 130, 136, 143, 139, 132, 135, 144, 144, 123, 131, 142, 119, 143, 128, 128, 136, 131, 147, 141, 129, 165, 131, 128, 144, 142, 143, 125, 133, 145, 133, 140, 128, 125, 138, 142, 141, 129, 139, 142, 127, 140, 130, 130, 138, 138, 133, 139, 135, 126, 136, 132, 161, 128, 124, 136, 119, 114, 142, 130, 118, 138, 138, 135, 138, 144, 133, 122, 134, 126, 135, 141, 136, 140, 110, 126, 136, 138, 134, 155, 138, 131, 137, 121, 143, 130, 133, 137, 139, 128, 136, 127, 141, 127, 143, 135, 122, 145, 139, 145, 144, 151, 153, 130, 147, 130, 138, 127, 132, 138, 134, 139, 133, 138, 146, 130, 135, 134, 139, 145, 138, 141, 140, 143, 126, 139, 132, 136, 137, 128, 141, 143, 125, 140, 137, 146, 137, 131, 131, 138, 148, 130, 136, 132, 173, 137, 144, 136, 146, 149, 128, 144, 135, 133, 143, 132, 143, 136, 142, 144, 132, 128, 123, 132, 144, 132, 139, 131, 131, 135, 143, 128, 129, 139, 127, 142, 147, 131, 133, 135, 142, 131, 126, 136, 138, 133, 145, 112, 128, 126, 133, 136, 139, 146, 136, 135, 125, 147, 146, 125, 147, 113, 135, 122, 126, 135, 129, 135, 131, 126, 127, 145, 139, 122, 135, 134, 132, 152, 143, 146, 133, 143, 149, 127, 127, 138, 145, 136, 162, 127, 142, 129, 127, 131, 140, 134, 135, 137, 128, 135, 145, 135, 135, 138, 136, 133, 142, 138, 132, 122, 129, 129, 141, 147, 135, 135, 130, 135, 144, 137, 134, 136, 134, 147, 135, 163, 120, 137, 122, 132, 128, 157, 131, 135, 137, 139, 132, 152, 165, 132, 141, 129, 134, 127, 128, 139, 143, 122, 126, 135, 156, 134, 124, 132, 143, 153, 138, 142, 127, 150, 135, 150, 123, 131, 153, 139, 132, 152, 138, 139, 136, 139, 138, 134, 126, 143, 144, 137, 128, 140, 135, 146, 131, 140, 143, 134, 129, 128, 137, 145, 129, 154, 139, 128, 139, 128, 131, 138, 142, 141, 142, 135, 129, 123, 138, 138, 146, 130, 142, 140, 126, 137, 127, 117, 137, 135, 146, 144, 121, 124, 142, 141, 133, 123, 125, 132, 126, 138, 142, 104, 140, 136, 135, 140, 113, 130, 131, 120, 149, 136, 138, 144, 140, 133, 137, 125, 137, 137, 129, 136, 146, 133, 133, 135, 143, 127, 140, 145, 132, 136, 141, 123, 137, 142, 143, 124, 120, 129, 135, 140, 142, 130, 133, 173, 136, 140, 141, 123, 136, 128, 123, 133, 130, 136, 129, 142, 137, 134, 133, 134, 136, 121, 138, 131, 122, 130, 133, 139, 156, 148, 142, 132, 135, 136, 149, 133, 138, 155, 125, 140, 145, 134, 116, 135, 134, 141, 134, 144, 150, 149, 151, 129, 130, 155, 140, 145, 136, 130, 126, 123, 131, 148, 145, 136, 138, 151, 128, 148, 141, 138, 143, 131, 150, 140, 131, 144, 132, 137, 152, 142, 134, 127, 133, 143, 131, 140, 124, 148, 144, 143, 133, 141, 134, 132, 149, 132, 143, 140, 125, 145, 146, 135, 123, 150, 132, 139, 143, 127, 142, 151, 134, 124, 116, 134, 133, 139, 135, 139, 134, 142, 145, 142, 122, 136, 138, 141, 135, 131, 133, 136, 141, 127, 132, 130, 143, 119, 126, 133, 143, 141, 132, 127, 118, 142, 145, 147, 142, 151, 129, 119, 142, 132, 125, 128, 126, 130, 132, 133, 140, 136, 109, 133, 140, 137, 137, 144, 135, 145, 141, 130, 139, 135, 137, 155, 137, 132, 140, 136, 147, 123, 141, 134, 129, 141, 117, 125, 128, 143, 132, 154, 133, 122, 140, 143, 134, 124, 134, 137, 139, 128, 137, 135, 123, 132, 139, 137, 144, 149, 146, 160, 135, 146, 131, 127, 141, 145, 135, 129, 133, 118, 141, 124, 149, 139, 134, 131, 134, 135, 145, 138, 138, 133, 137, 137, 140, 143, 133, 143, 144, 146, 141, 134, 149, 126, 138, 141, 140, 136, 138, 140, 154, 129, 127, 125, 123, 130, 150, 137, 131, 140, 148, 130, 135, 138, 141, 131, 145, 137, 148, 128, 142, 133, 130, 133, 148, 126, 140, 136, 126, 139, 123, 145, 125, 149, 149, 125, 134, 121, 139, 143, 151, 131, 141, 139, 129, 133, 125, 127, 132, 120, 157, 129, 125, 136, 133, 137, 135, 134, 125, 138, 141, 142, 137, 140, 136, 136, 150, 124, 149, 136, 142, 141, 137, 135, 137, 138, 137, 129, 140, 131, 131, 131, 137, 142, 146, 133, 119, 141, 131, 134, 137, 133, 125, 135, 143, 124, 139, 135, 120, 133, 148, 135, 135, 129, 147, 135, 142, 147, 138, 152, 125, 136, 146, 150, 141, 137, 148, 126, 126, 135, 148, 140, 148, 140, 141, 131, 140, 134, 133, 143, 138, 133, 134, 151, 152, 115, 138, 120, 133, 141, 127, 141, 142, 144, 134, 138, 135, 145, 130, 144, 134, 131, 134, 123, 137, 135, 142, 138, 132, 138, 131, 140, 139, 135, 142, 139, 136, 139, 131, 134, 133, 140, 137, 131, 176, 137, 141, 149, 137, 126, 135, 131, 135, 143, 136, 129, 140, 130, 137, 130, 138, 121, 146, 148, 150, 150, 127, 149, 134, 143, 143, 133, 148, 138, 144, 152, 126, 130, 138, 122, 129, 142, 138, 146, 137, 136, 126, 135, 138, 142, 123, 143, 141, 130, 128, 130, 136, 140, 138, 148, 142, 142, 138, 137, 130, 132, 145, 141, 147, 138, 139, 134, 118, 131, 132, 129, 142, 128, 144, 144, 143, 119, 139, 135, 126, 133, 139, 145, 141, 133, 141, 138, 134, 140, 138, 136, 125, 138, 130, 140, 131, 144, 142, 119, 143, 138, 129, 159, 137, 141, 137, 128, 133, 131, 140, 138, 135, 137, 142, 139, 132, 127, 124, 141, 132, 127, 132, 150, 131, 138, 143, 102, 135, 137, 123, 133, 144, 139, 141, 127, 142, 130, 133, 132, 144, 124, 134, 135, 137, 134, 133, 128, 138, 136, 142, 141, 128, 144, 137, 132, 143, 140, 138, 143, 139, 133, 130, 126, 125, 137, 127, 140, 145, 133, 158, 131, 123, 135, 138, 140, 132, 135, 133, 135, 115, 136, 122, 149, 126, 132, 135, 143, 138, 138, 136, 125, 138, 127, 136, 138, 152, 142, 140, 141, 132, 141, 153, 133, 135, 138, 126, 143, 138, 140, 129, 131, 140, 130, 133, 130, 132, 130, 134, 140, 136, 132, 138, 126, 140, 136, 149, 128, 142, 140, 138, 138, 142, 139, 134, 138, 128, 147, 137, 131, 154, 139, 144, 141, 139, 126, 142, 134, 122, 129, 142, 142, 135, 138, 135, 123, 130, 160, 130, 134, 147, 121, 132, 134, 124, 132, 134, 132, 139, 137, 134, 145, 129, 142, 132, 140, 145, 135, 133, 139, 135, 118, 136, 121, 142, 136, 116, 135, 132, 132, 135, 135, 141, 125, 127, 134, 131, 122, 146, 169, 129, 142, 145, 130, 134, 121, 146, 131, 140, 132, 149, 135, 131, 144, 155, 133, 139, 134, 131, 134, 150, 135, 126, 134, 141, 133, 131, 134, 131, 137, 136, 133, 126, 128, 137, 158, 131, 139, 161, 146, 129, 140, 153, 136, 127, 142, 133, 142, 133, 123, 127, 134, 147, 135, 132, 123, 131, 137, 127, 136, 139, 135, 133, 125, 128, 129, 138, 136, 120, 143, 133, 132, 132, 132, 148, 131, 127, 140, 135, 132, 166, 138, 135, 135, 141, 137, 129, 117, 135, 132, 142, 132, 143, 124, 134, 129, 129, 132, 134, 140, 128, 147, 135, 146, 125, 143, 141, 127, 130, 132, 142, 155, 126, 137, 134, 143, 139, 140, 132, 140, 137, 145, 135, 139, 134, 139, 136, 144, 132, 143, 132, 136, 137, 134, 132, 137, 133, 133, 129, 134, 133, 133, 138, 123, 144, 140, 136, 140, 135, 134, 127, 132, 142, 135, 135, 132, 129, 127, 150, 128, 127, 139, 140, 143, 133, 131, 128, 120, 136, 136, 129, 126, 130, 133, 141, 132, 141, 138, 125, 134, 134, 141, 126, 131, 129, 128, 132, 125, 126, 141, 146, 128, 135, 133, 140, 131, 139, 147, 145, 163, 134, 133, 126, 132, 133, 137, 149, 133, 129, 125, 148, 144, 133, 132, 145, 127, 123, 128, 133, 131, 149, 130, 147, 134, 126, 134, 132, 142, 166, 136, 148, 137, 126, 145, 133, 129, 140, 133, 136, 130, 126, 139, 138, 132, 116, 132, 139, 144, 138, 142, 132, 142, 134, 138, 128, 130, 130, 136, 131, 127, 173, 133, 154, 133, 139, 146, 126, 135, 124, 132, 138, 127, 137, 133, 154, 147, 144, 148, 137, 152, 148, 141, 137, 131, 136, 155, 131, 126, 148, 139, 131, 136, 141, 121, 149, 129, 129, 138, 126, 134, 148, 123, 139, 134, 135, 131, 130, 129, 138, 130, 131, 127, 133, 131, 147, 136, 146, 143, 140, 138, 144, 135, 133, 135, 129, 140, 130, 131, 130, 157, 137, 136, 133, 140, 139, 135, 138, 130, 139, 134, 151, 111, 135, 135, 132, 130, 135, 128, 128, 132, 118, 117, 131, 134, 132, 143, 142, 141, 138, 137, 150, 139, 140, 140, 122, 146, 147, 130, 124, 133, 134, 125, 136, 141, 142, 139, 151, 125, 125, 124, 152, 146, 128, 136, 129, 131, 133, 132, 143, 136, 131, 119, 142, 130, 137, 140, 128, 142, 138, 128, 142, 142, 120, 148, 144, 128, 138, 144, 137, 137, 121, 141, 133, 139, 128, 134, 130, 154, 124, 130, 128, 135, 101, 134, 139, 123, 130, 126, 128, 145, 115, 140, 139, 132, 123, 124, 128, 122, 141, 128, 133, 151, 130, 123, 124, 130, 143, 131, 146, 134, 132, 148, 136, 138, 142, 144, 135, 139, 129, 127, 150, 145, 147, 131, 124, 126, 122, 126, 135, 138, 131, 133, 139, 122, 134, 166, 119, 136, 132, 129, 144, 138, 130, 137, 145, 134, 207, 132, 142, 135, 134, 143, 129, 135, 143, 131, 146, 132, 143, 138, 132, 139, 140, 129, 126, 159, 136, 134, 122, 147, 133, 147, 131, 137, 150, 138, 138, 135, 134, 137, 129, 121, 147, 133, 140, 125, 142, 138, 130, 139, 142, 137, 139, 138, 164, 130, 141, 142, 138, 136, 129, 120, 140, 131, 133, 154, 123, 147, 137, 136, 146, 119, 123, 134, 122, 114, 130, 129, 155, 134, 127, 139, 141, 152, 138, 131, 139, 123, 134, 140, 133, 152, 139, 149, 129, 142, 150, 131, 130, 154, 142, 136, 137, 129, 150, 134, 119, 141, 133, 137, 139, 142, 147, 132, 137, 136, 134, 133, 138, 155, 140, 133, 147, 129, 134, 123, 148, 155, 159, 141, 130, 133, 136, 130, 140, 132, 130, 119, 140, 140, 137, 141, 134, 134, 136, 122, 124, 136, 134, 132, 140, 126, 138, 125, 126, 136, 147, 128, 138, 144, 135, 152, 125, 145, 134, 132, 135, 150, 137, 140, 135, 133, 135, 140, 137, 141, 119, 135, 146, 124, 150, 131, 142, 131, 131, 132, 117, 140, 138, 131, 128, 126, 137, 137, 146, 144, 135, 138, 156, 126, 133, 139, 136, 132, 128, 145, 139, 141, 140, 140, 156, 135, 135, 131, 135, 134, 135, 123, 127, 128, 131, 145, 138, 136, 130, 136, 139, 142, 139, 134, 127, 139, 132, 148, 149, 116, 132, 131, 131, 127, 144, 142, 124, 131, 134, 135, 121, 139, 126, 136, 141, 128, 146, 125, 137, 138, 134, 130, 143, 130, 135, 138, 142, 124, 123, 129, 142, 138, 137, 121, 122, 122, 145, 125, 148, 125, 145, 139, 133, 133, 156, 139, 130, 143, 142, 129, 153, 120, 142, 139, 192, 158, 148, 138, 130, 140, 127, 141, 131, 143, 142, 126, 156, 150, 135, 135, 136, 137, 126, 132, 128, 143, 153, 135, 117, 123, 151, 138, 133, 149, 118, 134, 146, 141, 122, 137, 130, 147, 126, 120, 122, 135, 146, 128, 139, 145, 122, 142, 153, 128, 133, 145, 123, 145, 143, 139, 117, 134, 135, 130, 147, 130, 138, 129, 136, 128, 126, 134, 130, 119, 133, 135, 134, 155, 126, 136, 147, 131, 143, 131, 136, 126, 160, 145, 132, 128, 134, 128, 131, 139, 132, 130, 126, 147, 139, 137, 117, 142, 147, 137, 122, 127, 131, 140, 122, 145, 137, 131, 124, 135, 131, 126, 154, 127, 146, 142, 145, 139, 133, 127, 142, 136, 140, 144, 126, 126, 133, 152, 142, 131, 124, 143, 137, 130, 139, 146, 134, 138, 149, 138, 132, 128, 144, 149, 154, 133, 131, 125, 137, 145, 140, 145, 142, 127, 162, 129, 120, 116, 148, 125, 145, 135, 151, 124, 132, 113, 131, 144, 128, 150, 126, 132, 141, 155, 144, 135, 154, 146, 128, 129, 144, 124, 132, 119, 125, 140, 140, 126, 135, 132, 143, 131, 129, 148, 134, 146, 147, 136, 140, 111, 141, 138, 147, 149, 137, 139, 141, 130, 145, 138, 128, 141, 136, 140, 130, 128, 133, 141, 145, 148, 137, 139, 133, 148, 134, 123, 151, 155, 136, 147, 140, 147, 140, 124, 139, 146, 139, 136, 137, 151, 120, 135, 153, 134, 121, 134, 137, 125, 137, 145, 135, 137, 128, 148, 119, 131, 124, 134, 132, 137, 127, 136, 130, 159, 96, 138, 120, 130, 151, 156, 128, 146, 138, 139, 121, 140, 140, 135, 143, 127, 142, 124, 149, 123, 135, 144, 127, 136, 149, 137, 135, 140, 143, 122, 148, 134, 139, 146, 136, 153, 138, 146, 128, 123, 118, 153, 165, 182, 156, 147, 131, 135, 138, 140, 130, 134, 140, 134, 132, 134, 133, 132, 135, 136, 129, 118, 131, 136, 142, 142, 133, 127, 146, 127, 141, 136, 134, 142, 141, 137, 166, 121, 121, 131, 141, 140, 125, 145, 143, 145, 135, 128, 133, 145, 125, 129, 141, 130, 128, 140, 126, 138, 128, 146, 111, 139, 121, 147, 130, 133, 147, 147, 135, 114, 144, 131, 155, 125, 137, 128, 133, 143, 127, 135, 145, 141, 139, 136, 135, 125, 138, 132, 147, 136, 121, 153, 144, 128, 132, 141, 142, 140, 135, 126, 121, 127, 151, 136, 137, 159, 125, 124, 122, 145, 126, 135, 148, 145, 132, 138, 148, 127, 142, 135, 132, 144, 123, 137, 135, 128, 122, 144, 150, 133, 122, 160, 118, 143, 138, 150, 134, 142, 161, 123, 139, 133, 148, 140, 145, 125, 143, 140, 132, 141, 133, 127, 127, 134, 125, 142, 128, 130, 137, 137, 124, 134, 141, 128, 140, 118, 140, 128, 132, 143, 124, 137, 141, 130, 119, 125, 150, 138, 141, 133, 140, 141, 139, 140, 135, 114, 132, 130, 158, 136, 136, 145, 131, 131, 143, 146, 143, 144, 138, 145, 143, 131, 142, 110, 135, 131, 127, 143, 129, 118, 136, 134, 147, 146, 122, 130, 125, 132, 129, 140, 148, 137, 141, 130, 125, 128, 138, 130, 157, 128, 131, 141, 150, 144, 135, 134, 133, 134, 162, 135, 151, 136, 131, 149, 111, 120, 123, 151, 118, 129, 123, 117, 136, 127, 137, 136, 141, 125, 140, 126, 134, 141, 149, 128, 116, 134, 140, 134, 143, 140, 130, 156, 122, 130, 123, 141, 143, 128, 132, 123, 122, 128, 137, 133, 143, 144, 138, 145, 117, 150, 148, 129, 146, 132, 142, 119, 134, 124, 135, 135, 131, 129, 140, 139, 129, 119, 139, 122, 122, 118, 124, 128, 135, 121, 138, 132, 147, 134, 143, 141, 135, 149, 138, 133, 124, 147, 135, 133, 145, 126, 140, 134, 127, 133, 127, 140, 141, 139, 129, 137, 173, 136, 134, 137, 137, 138, 136, 130, 129, 127, 137, 135, 119, 125, 133, 138, 139, 137, 130, 142, 135, 144, 142, 139, 139, 135, 147, 133, 134, 132, 134, 140, 132, 130, 140, 136, 116, 144, 129, 133, 138, 132, 139, 126, 137, 137, 127, 140, 138, 138, 139, 139, 150, 156, 141, 134, 130, 141, 133, 124, 138, 139, 137, 144, 140, 138, 137, 134, 131, 131, 135, 142, 141, 144, 133, 138, 160, 138, 142, 140, 129, 130, 140, 142, 143, 146, 138, 133, 126, 113, 134, 127, 112, 133, 141, 139, 135, 135, 100, 133, 142, 132, 140, 129, 193, 149, 138, 127, 127, 135, 135, 134, 127, 131, 140, 134, 132, 134, 147, 134, 139, 132, 127, 122, 139, 121, 134, 125, 128, 137, 137, 138, 135, 128, 140, 140, 134, 127, 139, 131, 96, 131, 128, 167, 138, 134, 143, 140, 133, 137, 140, 134, 136, 135, 108, 129, 139, 144, 139, 130, 131, 145, 137, 142, 134, 134, 138, 135, 133, 136, 118, 141, 142, 140, 141, 141, 133, 138, 136, 142, 140, 130, 141, 135, 136, 139, 136, 137, 134, 139, 141, 134, 144, 133, 119, 126, 139, 132, 96, 133, 140, 140, 136, 136, 131, 141, 136, 133, 142, 133, 137, 143, 129, 136, 122, 135, 134, 141, 139, 135, 136, 141, 139, 135, 131, 137, 133, 142, 132, 143, 129, 136, 140, 132, 138, 135, 134, 139, 143, 137, 140, 134, 132, 142, 149, 136, 134, 132, 151, 131, 138, 140, 142, 135, 135, 137, 62, 141, 152, 129, 134, 136, 140, 138, 136, 129, 159, 132, 135, 133, 142, 149, 138, 130, 130, 136, 135, 136, 137, 138, 140, 140, 132, 139, 129, 134, 131, 138, 141, 139, 133, 138, 137, 133, 140, 128, 134, 132, 121, 137, 141, 136, 136, 139, 137, 140, 101, 144, 143, 130, 140, 141, 140, 134, 135, 130, 132, 133, 134, 136, 136, 143, 134, 151, 134, 125, 144, 141, 136, 141, 137, 134, 136, 139, 145, 149, 142, 133, 127, 131, 167, 138, 133, 138, 149, 142, 130, 143, 133, 131, 128, 104, 124, 139, 135, 135, 126, 134, 151, 131, 132, 133, 158, 138, 135, 137, 145, 136, 137, 129, 141, 138, 136, 129, 135, 138, 135, 164, 140, 134, 136, 132, 146, 146, 130, 138, 145, 133, 137, 137, 149, 127, 129, 130, 135, 158, 129, 145, 137, 138, 131, 137, 140, 129, 126, 135, 138, 140, 133, 139, 137, 150, 130, 134, 138, 141, 128, 135, 135, 136, 145, 133, 133, 121, 142, 131, 124, 132, 136, 139, 136, 129, 139, 139, 131, 130, 138, 133, 130, 138, 124, 128, 142, 135, 130, 133, 141, 132, 135, 139, 133, 139, 139, 138, 147, 140, 141, 135, 140, 127, 133, 136, 132, 145, 135, 140, 143, 136, 139, 144, 137, 134, 137, 136, 139, 138, 135, 134, 134, 141, 142, 118, 121, 132, 139, 140, 137, 139, 141, 132, 129, 136, 137, 135, 133, 139, 132, 135, 133, 132, 134, 139, 140, 137, 143, 138, 137, 133, 144, 135, 138, 133, 135, 131, 139, 130, 128, 131, 126, 131, 135, 154, 135, 133, 131, 135, 145, 139, 135, 141, 137, 134, 141, 132, 142, 140, 144, 143, 135, 139, 139, 130, 134, 133, 149, 122, 135, 127, 138, 131, 125, 128, 141, 138, 132, 139, 146, 142, 134, 122, 134, 154, 136, 134, 129, 135, 138, 136, 133, 113, 135, 136, 136, 139, 135, 145, 144, 125, 123, 132, 150, 137, 136, 141, 134, 136, 126, 121, 136, 147, 136, 132, 123, 144, 131, 137, 139, 139, 131, 131, 139, 135, 128, 123, 137, 131, 140, 112, 140, 134, 138, 133, 127, 133, 139, 127, 134, 130, 155, 144, 128, 133, 130, 146, 141, 134, 126, 128, 137, 130, 133, 138, 139, 135, 140, 135, 144, 137, 131, 129, 134, 133, 140, 135, 126, 139, 140, 138, 136, 131, 135, 139, 138, 141, 129, 140, 126, 141, 126, 138, 131, 132, 139, 139, 139, 127, 131, 135, 136, 138, 134, 128, 124, 142, 132, 138, 125, 153, 129, 146, 138, 137, 137, 137, 129, 129, 155, 136, 134, 139, 150, 131, 133, 137, 135, 126, 125, 136, 143, 134, 121, 133, 140, 133, 127, 135, 132, 131, 121, 141, 135, 120, 136, 148, 137, 137, 135, 124, 130, 126, 133, 139, 133, 136, 145, 138, 135, 145, 116, 141, 138, 131, 136, 138, 137, 140, 144, 130, 138, 137, 128, 138, 144, 133, 137, 130, 140, 181, 128, 142, 146, 151, 139, 130, 128, 137, 131, 134, 135, 146, 134, 138, 140, 126, 126, 128, 136, 142, 135, 128, 131, 140, 134, 154, 152, 135, 137, 131, 138, 137, 143, 137, 137, 136, 134, 138, 132, 129, 129, 141, 138, 126, 138, 135, 137, 129, 134, 133, 141, 144, 152, 140, 138, 128, 133, 137, 141, 135, 153, 137, 136, 139, 135, 131, 137, 132, 132, 132, 131, 125, 140, 130, 132, 144, 138, 135, 133, 130, 140, 143, 135, 141, 152, 139, 144, 142, 138, 139, 128, 121, 135, 138, 135, 146, 140, 137, 143, 131, 130, 121, 131, 142, 138, 133, 143, 132, 131, 135, 146, 132, 136, 130, 136, 137, 138, 140, 132, 138, 140, 142, 140, 138, 137, 137, 131, 137, 131, 145, 133, 139, 132, 134, 150, 139, 140, 137, 143, 147, 135, 135, 132, 142, 140, 146, 138, 131, 134, 129, 140, 144, 140, 133, 138, 140, 127, 132, 131, 142, 136, 128, 94, 128, 141, 134, 128, 131, 135, 160, 134, 127, 127, 135, 148, 132, 142, 136, 122, 126, 120, 141, 131, 131, 136, 126, 140, 135, 140, 126, 134, 136, 126, 116, 134, 145, 140, 137, 135, 133, 133, 140, 126, 137, 137, 131, 138, 150, 135, 123, 138, 140, 147, 151, 130, 136, 135, 149, 135, 130, 137, 137, 146, 136, 140, 137, 141, 136, 134, 143, 131, 135, 138, 141, 137, 142, 137, 136, 136, 124, 132, 135, 136, 125, 129, 133, 136, 142, 135, 132, 131, 131, 131, 142, 134, 141, 134, 141, 138, 151, 130, 144, 134, 137, 130, 139, 138, 115, 120, 145, 137, 149, 127, 139, 145, 131, 134, 131, 134, 121, 135, 143, 123, 150, 121, 169, 134, 138, 127, 152, 143, 102, 135, 131, 137, 139, 144, 124, 122, 117, 142, 141, 147, 134, 138, 131, 127, 137, 131, 129, 123, 130, 136, 143, 132, 118, 144, 135, 143, 131, 136, 137, 142, 127, 133, 130, 130, 150, 146, 139, 140, 133, 138, 131, 149, 133, 140, 132, 131, 137, 149, 123, 134, 132, 138, 163, 135, 147, 131, 136, 139, 139, 135, 114, 134, 133, 135, 135, 131, 143, 137, 136, 127, 137, 133, 129, 136, 126, 144, 136, 131, 139, 145, 148, 133, 140, 124, 136, 137, 164, 141, 139, 140, 132, 138, 122, 137, 129, 143, 136, 107, 152, 146, 121, 134, 140, 148, 134, 137, 141, 133, 133, 120, 139, 135, 130, 124, 161, 129, 116, 124, 147, 141, 127, 125, 157, 133, 148, 138, 136, 124, 135, 136, 115, 118, 127, 143, 145, 131, 139, 129, 146, 132, 133, 119, 141, 133, 130, 132, 128, 138, 127, 135, 135, 134, 133, 143, 157, 129, 131, 143, 126, 123, 132, 130, 136, 144, 136, 119, 142, 125, 130, 150, 134, 131, 152, 128, 148, 136, 138, 135, 134, 146, 125, 137, 142, 124, 150, 140, 131, 136, 134, 133, 122, 133, 129, 139, 136, 128, 135, 130, 141, 148, 129, 139, 142, 147, 139, 134, 145, 131, 137, 130, 135, 129, 136, 124, 156, 140, 140, 143, 138, 153, 138, 138, 128, 144, 134, 136, 133, 146, 145, 142, 133, 131, 150, 136, 138, 139, 141, 145, 143, 141, 125, 130, 135, 140, 122, 136, 143, 135, 141, 148, 128, 111, 128, 141, 127, 133, 133, 132, 130, 123, 141, 125, 146, 144, 124, 137, 135, 103, 136, 134, 126, 124, 125, 114, 128, 137, 140, 139, 128, 133, 135, 134, 133, 139, 127, 132, 133, 126, 143, 140, 148, 126, 124, 127, 146, 141, 122, 130, 159, 144, 128, 154, 146, 140, 138, 121, 134, 123, 122, 113, 140, 140, 134, 128, 167, 134, 137, 131, 133, 145, 144, 123, 136, 130, 145, 138, 139, 140, 138, 134, 136, 149, 144, 129, 133, 137, 142, 134, 130, 131, 148, 137, 118, 131, 120, 141, 140, 136, 132, 136, 129, 132, 139, 147, 146, 155, 134, 137, 139, 122, 145, 99, 125, 130, 146, 137, 139, 146, 125, 142, 133, 146, 137, 134, 138, 135, 126, 137, 136, 128, 152, 144, 135, 150, 123, 131, 135, 126, 132, 143, 140, 145, 125, 146, 132, 155, 149, 140, 157, 145, 147, 131, 136, 132, 128, 134, 132, 130, 148, 134, 138, 121, 110, 113, 127, 129, 125, 137, 145, 122, 132, 140, 122, 133, 138, 139, 157, 124, 123, 153, 134, 118, 157, 135, 145, 132, 147, 137, 137, 132, 137, 131, 137, 147, 135, 143, 139, 137, 125, 141, 138, 132, 151, 136, 141, 146, 125, 141, 126, 133, 136, 125, 145, 131, 140, 147, 151, 143, 127, 130, 113, 139, 140, 127, 143, 136, 128, 144, 147, 143, 128, 125, 126, 129, 141, 147, 144, 136, 131, 134, 125, 114, 138, 145, 142, 130, 145, 139, 134, 150, 123, 126, 139, 137, 126, 132, 144, 135, 135, 138, 144, 132, 153, 132, 144, 129, 138, 129, 130, 143, 153, 134, 142, 149, 145, 133, 140, 113, 148, 141, 150, 137, 137, 136, 124, 129, 128, 137, 141, 125, 145, 149, 156, 138, 141, 150, 124, 132, 148, 131, 143, 135, 130, 131, 143, 127, 124, 125, 128, 134, 112, 151, 139, 136, 145, 147, 133, 131, 123, 141, 148, 136, 135, 145, 151, 135, 129, 130, 133, 139, 123, 121, 124, 140, 138, 155, 133, 136, 150, 135, 116, 137, 134, 137, 150, 134, 144, 126, 129, 152, 128, 142, 137, 140, 130, 138, 134, 142, 132, 132, 139, 136, 132, 138, 141, 134, 128, 131, 132, 143, 126, 138, 129, 135, 146, 134, 145, 130, 131, 142, 158, 134, 154, 117, 142, 131, 143, 132, 137, 136, 129, 127, 121, 138, 132, 124, 124, 147, 123, 135, 137, 134, 138, 143, 136, 134, 124, 133, 138, 134, 131, 130, 142, 137, 145, 133, 134, 128, 131, 122, 135, 141, 120, 131, 136, 139, 127, 138, 126, 123, 132, 147, 138, 161, 135, 132, 131, 121, 132, 135, 126, 134, 147, 132, 134, 149, 136, 127, 151, 144, 111, 126, 155, 156, 134, 144, 128, 140, 127, 141, 134, 156, 137, 131, 146, 124, 137, 134, 134, 139, 123, 147, 141, 144, 140, 130, 116, 142, 141, 138, 139, 147, 139, 140, 131, 141, 145, 122, 141, 121, 142, 124, 131, 133, 124, 133, 129, 127, 152, 136, 146, 150, 121, 135, 137, 136, 128, 134, 139, 127, 135, 131, 137, 123, 132, 122, 142, 129, 130, 130, 132, 134, 147, 131, 138, 129, 141, 130, 141, 144, 132, 130, 126, 143, 142, 114, 136, 136, 130, 137, 130, 137, 134, 142, 151, 132, 129, 140, 130, 152, 140, 136, 134, 135, 138, 122, 144, 137, 132, 128, 143, 138, 139, 140, 141, 147, 127, 135, 141, 132, 130, 121, 125, 130, 140, 147, 128, 141, 148, 137, 130, 129, 142, 135, 140, 129, 143, 142, 150, 129, 130, 139, 131, 124, 144, 139, 134, 127, 138, 131, 153, 140, 135, 133, 119, 141, 128, 140, 128, 138, 151, 136, 136, 131, 153, 127, 139, 136, 136, 141, 129, 141, 138, 128, 135, 142, 164, 129, 133, 137, 119, 153, 136, 148, 140, 120, 152, 119, 126, 136, 146, 148, 134, 143, 125, 159, 145, 152, 132, 138, 146, 129, 139, 145, 113, 149, 148, 145, 116, 155, 147, 131, 155, 134, 134, 125, 149, 144, 125, 124, 125, 122, 134, 119, 141, 132, 118, 152, 141, 145, 134, 139, 134, 133, 141, 140, 129, 148, 148, 133, 135, 148, 132, 134, 145, 146, 150, 135, 134, 138, 148, 150, 141, 130, 140, 127, 127, 145, 138, 122, 122, 130, 133, 142, 138, 138, 141, 141, 135, 134, 138, 135, 134, 127, 150, 149, 131, 125, 113, 134, 146, 140, 118, 137, 127, 142, 123, 138, 130, 109, 129, 160, 138, 133, 136, 146, 136, 133, 146, 129, 139, 128, 137, 139, 135, 136, 145, 97, 137, 138, 141, 140, 134, 132, 132, 127, 132, 142, 135, 159, 127, 130, 137, 124, 139, 138, 137, 135, 139, 146, 138, 143, 139, 141, 138, 129, 129, 135, 135, 132, 143, 139, 138, 148, 139, 124, 134, 136, 137, 138, 132, 137, 140, 129, 140, 137, 135, 139, 138, 113, 129, 138, 134, 147, 137, 133, 137, 131, 141, 135, 140, 135, 140, 133, 134, 128, 134, 131, 141, 134, 118, 131, 138, 133, 142, 138, 137, 133, 131, 140, 136, 142, 141, 135, 137, 131, 152, 140, 122, 138, 127, 141, 135, 137, 135, 169, 139, 143, 129, 138, 128, 96, 126, 134, 128, 130, 137, 136, 138, 125, 134, 138, 138, 135, 135, 128, 135, 137, 140, 130, 148, 141, 151, 136, 131, 124, 134, 136, 136, 139, 145, 136, 140, 135, 125, 138, 137, 168, 134, 134, 105, 135, 133, 135, 140, 139, 135, 138, 133, 138, 146, 151, 131, 137, 134, 133, 136, 132, 142, 139, 141, 133, 135, 133, 135, 133, 133, 143, 139, 138, 136, 136, 139, 139, 142, 133, 140, 133, 135, 134, 140, 141, 137, 140, 132, 145, 138, 142, 134, 141, 134, 155, 133, 138, 134, 157, 134, 138, 138, 145, 135, 135, 137, 135, 136, 139, 132, 128, 145, 132, 135, 149, 139, 136, 139, 136, 133, 153, 139, 135, 135, 132, 139, 137, 139, 132, 142, 131, 138, 138, 132, 138, 132, 133, 133, 140, 134, 137, 128, 137, 139, 150, 136, 134, 134, 124, 133, 136, 137, 136, 134, 137, 139, 170, 148, 139, 133, 134, 137, 133, 133, 144, 131, 135, 126, 132, 129, 144, 135, 122, 138, 133, 134, 132, 139, 138, 140, 144, 136, 133, 140, 135, 135, 129, 133, 136, 134, 130, 140, 135, 139, 142, 134, 135, 138, 134, 136, 134, 140, 141, 135, 137, 141, 153, 137, 127, 132, 138, 138, 142, 131, 139, 133, 134, 137, 141, 136, 139, 131, 133, 117, 136, 127, 136, 135, 136, 125, 141, 134, 136, 135, 142, 109, 139, 132, 128, 136, 115, 135, 133, 136, 115, 145, 133, 133, 130, 132, 131, 176, 122, 140, 135, 139, 128, 139, 127, 136, 134, 136, 124, 134, 131, 134, 143, 133, 133, 129, 138, 139, 139, 138, 134, 138, 135, 105, 137, 126, 133, 132, 134, 144, 130, 133, 140, 133, 136, 136, 140, 153, 132, 129, 137, 120, 129, 136, 133, 135, 131, 140, 140, 132, 124, 137, 137, 141, 133, 139, 137, 122, 134, 135, 137, 134, 133, 144, 137, 132, 125, 135, 136, 145, 139, 137, 137, 136, 133, 136, 138, 132, 142, 135, 130, 134, 139, 134, 132, 137, 148, 142, 127, 135, 133, 134, 137, 134, 135, 134, 136, 132, 135, 140, 135, 139, 139, 135, 137, 132, 135, 141, 132, 143, 136, 138, 138, 134, 133, 142, 132, 134, 136, 133, 136, 132, 133, 133, 138, 141, 142, 148, 153, 133, 138, 143, 136, 136, 141, 139, 126, 134, 140, 136, 139, 139, 139, 137, 133, 132, 155, 144, 139, 125, 123, 127, 138, 144, 137, 117, 126, 138, 142, 141, 146, 123, 136, 110, 144, 124, 121, 136, 132, 125, 157, 133, 137, 137, 126, 135, 142, 134, 127, 134, 133, 131, 123, 133, 127, 140, 145, 138, 135, 148, 147, 139, 136, 143, 133, 148, 76, 130, 130, 131, 127, 142, 140, 135, 142, 149, 144, 134, 142, 147, 142, 135, 133, 125, 139, 136, 143, 139, 134, 134, 135, 133, 131, 146, 133, 137, 133, 139, 144, 137, 140, 132, 138, 147, 138, 136, 137, 132, 141, 135, 140, 141, 150, 136, 133, 144, 141, 142, 129, 143, 136, 147, 125, 126, 132, 137, 148, 132, 139, 131, 133, 141, 146, 146, 132, 138, 131, 115, 138, 142, 208, 145, 140, 145, 150, 132, 136, 135, 132, 134, 134, 126, 137, 129, 132, 161, 137, 140, 145, 132, 142, 132, 131, 140, 139, 153, 140, 131, 137, 128, 133, 141, 130, 138, 145, 154, 123, 144, 145, 141, 140, 148, 136, 139, 127, 137, 132, 145, 120, 135, 137, 136, 138, 136, 133, 139, 134, 127, 127, 140, 132, 133, 135, 135, 137, 133, 131, 142, 135, 127, 145, 133, 136, 133, 141, 121, 137, 130, 136, 117, 136, 135, 132, 143, 146, 144, 147, 138, 142, 144, 140, 140, 137, 130, 132, 144, 117, 137, 119, 143, 136, 134, 144, 147, 133, 120, 127, 136, 136, 135, 124, 138, 113, 145, 130, 135, 137, 144, 132, 141, 130, 134, 141, 135, 142, 139, 139, 141, 152, 147, 134, 140, 143, 137, 136, 136, 125, 136, 143, 127, 150, 135, 137, 143, 130, 126, 146, 129, 143, 136, 151, 143, 140, 128, 139, 132, 131, 150, 135, 150, 136, 131, 134, 140, 134, 139, 131, 150, 120, 127, 125, 150, 138, 132, 131, 133, 143, 126, 134, 141, 133, 133, 133, 132, 135, 137, 137, 136, 132, 131, 131, 134, 135, 143, 120, 137, 129, 140, 132, 133, 140, 141, 139, 134, 137, 135, 137, 132, 141, 139, 123, 127, 134, 155, 130, 142, 140, 149, 127, 128, 130, 125, 138, 131, 130, 135, 144, 117, 137, 139, 147, 137, 118, 145, 133, 139, 134, 127, 133, 129, 106, 139, 143, 139, 128, 137, 141, 131, 134, 129, 131, 138, 140, 116, 131, 137, 131, 137, 131, 128, 139, 125, 132, 127, 137, 130, 134, 134, 141, 131, 131, 130, 140, 133, 136, 136, 130, 133, 190, 139, 138, 140, 131, 125, 127, 123, 128, 127, 131, 135, 130, 157, 137, 137, 150, 139, 153, 131, 131, 135, 130, 141, 139, 146, 139, 148, 154, 135, 139, 139, 130, 140, 122, 141, 135, 130, 137, 135, 146, 136, 127, 130, 129, 116, 147, 135, 135, 142, 138, 134, 136, 138, 139, 127, 137, 121, 134, 140, 131, 131, 137, 130, 122, 137, 138, 146, 136, 141, 135, 137, 131, 127, 137, 137, 130, 137, 146, 132, 135, 137, 140, 138, 149, 131, 140, 127, 141, 140, 117, 135, 149, 134, 152, 137, 137, 132, 136, 134, 130, 139, 138, 122, 140, 136, 136, 131, 126, 129, 128, 134, 131, 127, 133, 141, 123, 130, 126, 129, 125, 137, 147, 142, 128, 120, 146, 134, 146, 130, 129, 143, 132, 141, 129, 130, 124, 140, 140, 129, 126, 136, 139, 135, 129, 129, 133, 141, 131, 139, 141, 152, 130, 135, 132, 132, 128, 132, 129, 146, 134, 128, 138, 126, 132, 126, 136, 121, 134, 124, 133, 146, 144, 144, 132, 140, 146, 132, 133, 130, 124, 135, 138, 145, 144, 132, 143, 132, 134, 132, 156, 133, 142, 138, 141, 131, 125, 133, 136, 156, 149, 129, 143, 133, 138, 119, 137, 138, 145, 139, 130, 138, 130, 157, 138, 135, 132, 136, 138, 136, 135, 149, 139, 136, 157, 145, 134, 123, 129, 134, 133, 143, 137, 133, 131, 141, 137, 126, 146, 144, 134, 134, 140, 129, 124, 130, 125, 134, 135, 133, 137, 144, 141, 135, 145, 137, 140, 151, 161, 160, 125, 131, 131, 142, 140, 132, 132, 133, 130, 137, 147, 136, 142, 160, 156, 128, 127, 132, 133, 136, 166, 138, 151, 122, 134, 141, 127, 134, 133, 124, 128, 137, 129, 135, 147, 147, 132, 140, 135, 133, 135, 146, 134, 141, 128, 137, 124, 132, 122, 128, 133, 148, 124, 140, 138, 134, 137, 131, 148, 126, 145, 150, 137, 126, 125, 144, 128, 149, 127, 144, 132, 144, 128, 128, 129, 137, 139, 128, 127, 131, 147, 144, 135, 160, 141, 136, 139, 138, 162, 144, 141, 143, 120, 134, 140, 124, 129, 139, 149, 120, 126, 132, 134, 136, 133, 140, 138, 129, 141, 139, 135, 137, 124, 136, 128, 139, 135, 136, 134, 139, 136, 134, 132, 128, 145, 139, 143, 128, 129, 144, 143, 133, 135, 133, 129, 132, 136, 123, 126, 130, 145, 140, 131, 153, 143, 135, 144, 136, 143, 133, 122, 120, 146, 128, 133, 129, 135, 123, 134, 137, 144, 135, 130, 127, 140, 136, 142, 146, 138, 155, 136, 127, 147, 135, 145, 130, 142, 159, 128, 133, 138, 137, 142, 132, 130, 127, 140, 141, 144, 141, 132, 142, 129, 143, 134, 128, 133, 133, 144, 148, 132, 124, 129, 146, 129, 139, 133, 140, 137, 135, 140, 142, 128, 141, 132, 143, 129, 126, 123, 127, 136, 133, 139, 135, 133, 136, 134, 137, 131, 132, 129, 129, 129, 131, 140, 151, 136, 149, 120, 134, 136, 134, 131, 131, 130, 142, 119, 135, 147, 136, 141, 134, 138, 132, 135, 133, 141, 139, 139, 137, 132, 142, 132, 130, 143, 133, 128, 126, 127, 132, 131, 129, 132, 140, 127, 140, 126, 151, 145, 147, 125, 144, 142, 130, 143, 129, 135, 144, 136, 137, 141, 139, 133, 144, 138, 140, 138, 127, 148, 126, 135, 123, 125, 125, 136, 142, 132, 134, 130, 140, 140, 134, 125, 138, 145, 132, 135, 125, 143, 130, 125, 135, 131, 130, 149, 135, 125, 126, 134, 134, 134, 151, 127, 154, 145, 139, 148, 148, 145, 122, 134, 137, 124, 136, 135, 134, 136, 146, 124, 157, 128, 137, 126, 146, 141, 129, 124, 126, 139, 130, 147, 133, 127, 164, 143, 130, 155, 134, 151, 132, 125, 140, 143, 133, 129, 139, 144, 141, 127, 137, 130, 118, 129, 137, 146, 143, 141, 133, 132, 142, 135, 122, 144, 153, 146, 126, 130, 140, 133, 135, 123, 130, 125, 132, 144, 143, 118, 128, 139, 135, 138, 159, 129, 142, 149, 140, 134, 129, 126, 123, 132, 128, 126, 146, 126, 133, 140, 128, 105, 147, 153, 137, 131, 147, 140, 128, 131, 128, 149, 132, 126, 135, 140, 137, 118, 138, 155, 137, 154, 137, 151, 137, 134, 145, 122, 141, 131, 121, 141, 133, 121, 134, 129, 159, 150, 136, 142, 119, 127, 140, 125, 133, 136, 117, 133, 136, 141, 142, 139, 121, 131, 134, 131, 141, 142, 137, 130, 119, 133, 137, 133, 143, 149, 137, 135, 136, 136, 128, 139, 142, 133, 145, 132, 130, 137, 142, 141, 142, 144, 168, 135, 117, 131, 134, 132, 130, 129, 143, 132, 113, 142, 136, 134, 155, 139, 154, 125, 119, 128, 129, 135, 143, 144, 138, 147, 143, 153, 141, 155, 124, 135, 129, 150, 155, 145, 141, 123, 130, 132, 131, 135, 123, 132, 141, 139, 140, 119, 133, 115, 131, 130, 143, 164, 115, 122, 125, 140, 141, 129, 138, 146, 139, 131, 132, 127, 129, 164, 139, 142, 136, 133, 134, 131, 135, 141, 130, 126, 127, 133, 120, 129, 143, 137, 127, 137, 137, 127, 148, 130, 134, 126, 137, 138, 130, 138, 142, 150, 120, 121, 139, 139, 149, 135, 140, 116, 146, 148, 135, 127, 136, 134, 127, 129, 123, 115, 127, 142, 128, 124, 138, 152, 132, 147, 129, 142, 133, 127, 159, 133, 150, 137, 121, 142, 118, 127, 128, 131, 127, 138, 121, 138, 137, 129, 142, 133, 134, 151, 134, 138, 136, 142, 131, 145, 132, 136, 132, 143, 131, 151, 142, 148, 144, 136, 136, 134, 145, 139, 130, 134, 137, 128, 135, 132, 129, 134, 124, 146, 144, 121, 139, 137, 120, 133, 135, 142, 170, 129, 139, 143, 128, 125, 138, 148, 134, 136, 131, 140, 146, 119, 118, 146, 126, 102, 136, 133, 127, 150, 129, 129, 134, 133, 133, 143, 133, 147, 140, 145, 134, 137, 142, 118, 148, 152, 132, 134, 127, 111, 138, 135, 135, 119, 142, 142, 148, 118, 147, 149, 134, 137, 133, 137, 157, 129, 132, 133, 149, 136, 147, 149, 140, 132, 127, 147, 143, 122, 131, 141, 133, 135, 142, 137, 129, 148, 128, 132, 145, 150, 162, 119, 140, 150, 153, 145, 132, 136, 160, 144, 143, 131, 150, 122, 132, 125, 135, 152, 144, 138, 134, 124, 137, 137, 145, 133, 141, 144, 142, 119, 133, 128, 125, 143, 125, 146, 141, 136, 144, 144, 138, 143, 134, 123, 119, 130, 135, 140, 137, 136, 137, 130, 139, 123, 147, 137, 145, 130, 126, 143, 107, 128, 157, 146, 141, 142, 130, 146, 137, 123, 141, 132, 157, 139, 151, 126, 128, 142, 145, 111, 139, 136, 130, 125, 131, 122, 129, 137, 148, 131, 133, 136, 139, 136, 134, 137, 128, 126, 131, 117, 137, 125, 126, 122, 137, 126, 136, 126, 138, 127, 132, 140, 130, 133, 129, 135, 143, 121, 142, 137, 133, 153, 139, 133, 137, 130, 132, 136, 149, 145, 141, 163, 149, 116, 145, 149, 138, 134, 127, 139, 136, 135, 139, 135, 143, 136, 132, 124, 138, 122, 136, 130, 131, 134, 139, 148, 140, 145, 127, 136, 127, 133, 129, 119, 135, 150, 158, 136, 135, 152, 139, 147, 128, 140, 143, 138, 132, 139, 125, 136, 138, 135, 141, 131, 123, 152, 142, 135, 137, 123, 147, 138, 147, 133, 135, 154, 130, 126, 133, 132, 137, 148, 157, 135, 131, 134, 149, 139, 132, 145, 140, 131, 137, 140, 145, 134, 124, 140, 122, 120, 139, 153, 125, 139, 142, 137, 137, 131, 147, 138, 135, 142, 138, 139, 130, 124, 140, 135, 131, 129, 145, 130, 128, 129, 137, 137, 149, 139, 131, 169, 141, 137, 138, 142, 126, 130, 140, 140, 145, 141, 130, 140, 142, 140, 141, 140, 135, 141, 133, 128, 131, 148, 139, 135, 143, 131, 136, 134, 127, 140, 158, 140, 139, 138, 134, 136, 120, 134, 151, 136, 145, 118, 139, 143, 148, 140, 127, 131, 129, 120, 130, 134, 134, 139, 144, 137, 138, 133, 126, 142, 144, 144, 147, 134, 127, 139, 137, 132, 130, 125, 127, 136, 135, 127, 127, 127, 133, 140, 134, 143, 137, 132, 139, 107, 136, 144, 136, 116, 126, 132, 136, 129, 141, 136, 135, 140, 149, 148, 134, 149, 155, 130, 132, 133, 140, 143, 138, 128, 132, 138, 130, 142, 134, 140, 134, 143, 130, 148, 137, 153, 141, 133, 148, 128, 146, 138, 142, 144, 132, 143, 156, 142, 138, 142, 135, 145, 135, 133, 141, 159, 136, 139, 139, 127, 129, 138, 133, 134, 142, 142, 143, 132, 144, 126, 131, 128, 134, 134, 131, 138, 129, 142, 125, 138, 139, 180, 142, 143, 131, 144, 130, 125, 128, 136, 130, 132, 148, 133, 133, 137, 146, 147, 133, 134, 146, 143, 127, 131, 132, 141, 136, 134, 124, 131, 144, 124, 141, 128, 156, 153, 128, 137, 127, 182, 142, 135, 131, 136, 147, 129, 135, 141, 130, 129, 145, 126, 138, 142, 125, 129, 131, 139, 133, 145, 138, 126, 121, 137, 130, 138, 128, 117, 128, 146, 126, 138, 149, 142, 134, 137, 141, 130, 140, 139, 145, 143, 139, 153, 133, 125, 129, 143, 138, 130, 143, 146, 94, 135, 142, 128, 132, 126, 159, 129, 139, 130, 132, 140, 124, 130, 124, 134, 138, 138, 146, 139, 138, 133, 141, 133, 134, 132, 137, 128, 141, 144, 115, 130, 134, 130, 141, 133, 130, 125, 140, 164, 144, 113, 125, 142, 150, 130, 130, 138, 137, 140, 117, 132, 141, 127, 143, 134, 140, 135, 131, 148, 144, 133, 140, 136, 133, 112, 134, 135, 141, 138, 136, 131, 127, 134, 142, 139, 129, 148, 137, 134, 138, 140, 147, 133, 138, 140, 141, 131, 154, 138, 134, 152, 138, 142, 140, 133, 124, 132, 133, 144, 131, 148, 145, 145, 128, 134, 139, 135, 125, 132, 141, 139, 149, 136, 140, 130, 137, 115, 133, 117, 130, 143, 144, 139, 156, 146, 138, 138, 130, 131, 113, 149, 136, 131, 138, 135, 123, 145, 138, 144, 112, 140, 145, 115, 126, 146, 139, 128, 142, 141, 126, 138, 136, 132, 140, 128, 134, 126, 123, 126, 147, 124, 138, 128, 130, 145, 129, 126, 129, 126, 126, 138, 136, 128, 139, 138, 134, 139, 133, 123, 143, 146, 143, 120, 147, 145, 127, 130, 148, 128, 128, 127, 120, 131, 134, 128, 125, 141, 128, 130, 131, 130, 147, 134, 124, 137, 118, 143, 139, 141, 145, 128, 127, 131, 138, 131, 160, 139, 125, 129, 155, 114, 138, 158, 128, 138, 135, 145, 132, 128, 142, 148, 150, 135, 125, 126, 148, 130, 135, 136, 147, 150, 144, 154, 154, 141, 152, 119, 119, 132, 114, 122, 129, 134, 168, 145, 138, 130, 141, 146, 143, 122, 133, 144, 133, 129, 147, 136, 149, 132, 134, 139, 133, 130, 135, 133, 128, 140, 152, 140, 136, 135, 145, 144, 149, 131, 138, 131, 144, 129, 137, 136, 135, 137, 155, 134, 128, 122, 156, 138, 136, 132, 132, 134, 131, 143, 117, 135, 130, 127, 170, 145, 124, 125, 141, 133, 129, 135, 143, 144, 143, 161, 133, 142, 125, 142, 134, 160, 121, 143, 150, 144, 137, 156, 128, 139, 130, 117, 154, 143, 165, 126, 135, 130, 126, 139, 136, 144, 160, 148, 128, 119, 140, 128, 122, 143, 146, 139, 138, 145, 146, 141, 127, 141, 153, 143, 148, 115, 122, 127, 125, 133, 128, 136, 134, 141, 138, 140, 135, 135, 143, 142, 124, 132, 129, 138, 144, 130, 135, 134, 123, 122, 121, 128, 143, 145, 127, 158, 119, 150, 122, 127, 152, 147, 129, 109, 149, 110, 151, 137, 146, 133, 128, 142, 150, 151, 138, 131, 146, 150, 127, 135, 143, 135, 143, 138, 126, 142, 128, 129, 153, 135, 149, 151, 149, 115, 140, 130, 135, 119, 150, 121, 153, 152, 145, 143, 147, 141, 128, 133, 131, 124, 131, 134, 144, 146, 134, 136, 122, 133, 142, 114, 123, 131, 146, 124, 139, 146, 134, 128, 131, 141, 132, 137, 112, 142, 128, 127, 137, 137, 141, 132, 134, 143, 142, 157, 145, 128, 134, 131, 138, 143, 129, 132, 128, 149, 146, 140, 137, 142, 130, 131, 121, 132, 129, 142, 130, 145, 142, 137, 133, 120, 132, 120, 146, 133, 109, 153, 138, 125, 118, 130, 134, 141, 153, 140, 124, 146, 122, 111, 143, 118, 143, 136, 146, 129, 150, 145, 137, 150, 156, 147, 132, 128, 145, 127, 139, 124, 150, 160, 132, 143, 128, 144, 149, 128, 135, 139, 127, 132, 132, 134, 139, 121, 149, 134, 136, 130, 127, 131, 135, 159, 141, 149, 139, 131, 130, 129, 144, 160, 126, 147, 117, 140, 136, 121, 139, 156, 141, 131, 127, 130, 149, 130, 149, 131, 130, 152, 139, 141, 117, 139, 120, 143, 139, 143, 122, 132, 139, 137, 149, 117, 141, 124, 122, 130, 126, 137, 132, 162, 137, 132, 144, 134, 129, 129, 157, 138, 134, 135, 139, 131, 127, 129, 139, 109, 137, 120, 145, 160, 136, 146, 147, 128, 162, 131, 143, 136, 130, 141, 132, 127, 121, 128, 143, 133, 118, 129, 124, 141, 146, 134, 142, 142, 129, 122, 135, 127, 132, 118, 143, 133, 146, 131, 140, 126, 138, 132, 141, 135, 135, 139, 126, 129, 126, 139, 125, 122, 149, 124, 130, 147, 134, 131, 152, 131, 133, 129, 142, 138, 101, 147, 122, 134, 140, 141, 153, 118, 139, 135, 126, 131, 128, 126, 133, 131, 144, 144, 134, 123, 157, 150, 131, 133, 122, 143, 128, 155, 132, 135, 139, 138, 115, 141, 133, 128, 133, 144, 129, 135, 142, 130, 126, 142, 154, 118, 118, 148, 157, 124, 141, 136, 133, 134, 127, 144, 113, 128, 150, 154, 119, 140, 138, 135, 122, 135, 132, 155, 148, 139, 143, 140, 133, 136, 132, 139, 137, 129, 135, 130, 135, 151, 155, 135, 136, 138, 136, 111, 121, 168, 132, 123, 137, 143, 119, 135, 142, 129, 149, 128, 129, 130, 141, 130, 140, 136, 150, 136, 132, 116, 135, 129, 145, 129, 128, 125, 138, 136, 120, 138, 127, 122, 142, 156, 139, 127, 128, 138, 135, 127, 139, 142, 147, 139, 130, 142, 142, 123, 137, 132, 125, 143, 137, 141, 142, 144, 128, 134, 138, 129, 135, 118, 126, 136, 156, 136, 140, 125, 138, 137, 141, 121, 131, 141, 133, 139, 137, 155, 113, 136, 134, 127, 128, 129, 127, 133, 141, 124, 154, 140, 138, 136, 128, 137, 140, 143, 129, 134, 137, 127, 118, 127, 139, 131, 122, 126, 139, 131, 137, 144, 121, 129, 149, 139, 138, 126, 140, 142, 143, 145, 128, 141, 144, 143, 132, 129, 125, 129, 144, 148, 132, 141, 139, 132, 147, 127, 130, 139, 127, 145, 136, 135, 143, 140, 130, 133, 132, 131, 137, 138, 126, 131, 136, 136, 142, 130, 118, 143, 150, 138, 132, 120, 113, 128, 126, 136, 136, 139, 126, 147, 136, 147, 120, 141, 138, 138, 138, 133, 126, 116, 118, 145, 133, 134, 122, 130, 133, 133, 131, 142, 132, 133, 134, 133, 130, 145, 137, 128, 134, 127, 127, 123, 145, 150, 142, 146, 136, 127, 139, 126, 124, 143, 127, 142, 127, 123, 130, 130, 131, 141, 129, 131, 128, 138, 128, 130, 139, 126, 143, 117, 126, 132, 139, 127, 146, 127, 133, 126, 135, 135, 131, 129, 152, 128, 144, 153, 127, 140, 137, 129, 127, 142, 147, 135, 135, 129, 129, 142, 133, 124, 133, 133, 130, 140, 113, 129, 139, 145, 129, 143, 143, 139, 125, 139, 132, 131, 146, 144, 143, 156, 146, 133, 139, 129, 131, 134, 137, 137, 140, 152, 137, 138, 146, 139, 142, 132, 134, 127, 121, 120, 133, 145, 150, 144, 159, 128, 135, 121, 139, 145, 147, 136, 144, 138, 130, 139, 137, 142, 139, 139, 136, 128, 141, 121, 128, 120, 142, 138, 124, 145, 126, 127, 137, 139, 133, 132, 142, 134, 145, 162, 146, 122, 139, 143, 131, 137, 139, 129, 129, 134, 138, 137, 137, 144, 149, 143, 141, 142, 140, 158, 132, 125, 137, 139, 137, 141, 119, 139, 127, 141, 145, 119, 136, 141, 138, 142, 119, 138, 140, 140, 123, 136, 125, 137, 140, 141, 143, 137, 145, 134, 133, 136, 150, 146, 139, 143, 136, 127, 138, 134, 134, 131, 130, 142, 133, 141, 136, 135, 138, 156, 135, 139, 142, 131, 136, 135, 112, 142, 124, 140, 148, 134, 128, 134, 138, 126, 132, 136, 138, 150, 140, 137, 130, 142, 145, 147, 141, 136, 136, 142, 134, 129, 126, 140, 140, 140, 150, 136, 138, 125, 147, 135, 147, 142, 132, 128, 137, 134, 131, 135, 152, 125, 138, 141, 128, 131, 135, 134, 125, 131, 139, 126, 149, 134, 133, 134, 132, 133, 134, 138, 133, 138, 139, 140, 143, 133, 138, 126, 137, 131, 111, 146, 131, 144, 145, 136, 138, 136, 138, 138, 137, 142, 128, 136, 137, 142, 139, 132, 140, 124, 132, 139, 136, 134, 122, 147, 134, 136, 131, 142, 130, 142, 145, 143, 126, 132, 143, 137, 140, 149, 137, 138, 127, 123, 125, 134, 145, 134, 139, 140, 133, 144, 135, 138, 132, 137, 120, 135, 142, 125, 133, 135, 144, 144, 139, 133, 155, 136, 140, 147, 143, 135, 141, 135, 143, 144, 124, 131, 148, 133, 145, 151, 129, 152, 138, 132, 144, 152, 146, 133, 145, 138, 131, 148, 146, 139, 144, 131, 132, 127, 138, 137, 139, 143, 136, 138, 134, 145, 133, 140, 138, 133, 140, 143, 125, 143, 122, 119, 150, 131, 137, 143, 134, 134, 133, 137, 142, 136, 123, 162, 133, 136, 141, 142, 141, 129, 140, 130, 128, 136, 136, 129, 125, 135, 147, 132, 120, 146, 146, 138, 134, 142, 136, 138, 141, 136, 138, 145, 135, 126, 147, 136, 139, 139, 135, 124, 144, 148, 138, 132, 151, 138, 146, 129, 134, 129, 134, 131, 145, 139, 141, 146, 139, 135, 147, 134, 140, 136, 136, 133, 139, 137, 149, 145, 138, 136, 135, 137, 151, 134, 147, 144, 145, 129, 141, 135, 139, 135, 129, 136, 135, 131, 139, 139, 135, 133, 133, 146, 130, 135, 143, 132, 155, 135, 132, 142, 136, 136, 139, 133, 143, 147, 147, 140, 134, 129, 138, 133, 141, 135, 129, 134, 146, 146, 142, 137, 138, 148, 130, 142, 136, 141, 139, 141, 138, 138, 160, 135, 130, 148, 127, 142, 141, 132, 144, 140, 133, 120, 131, 149, 138, 145, 142, 140, 132, 144, 136, 145, 129, 135, 144, 143, 133, 143, 136, 146, 153, 134, 140, 143, 135, 131, 133, 130, 149, 132, 128, 150, 129, 147, 133, 143, 138, 140, 132, 129, 156, 126, 138, 127, 143, 132, 136, 135, 145, 132, 147, 139, 141, 138, 145, 133, 143, 148, 129, 129, 140, 154, 131, 139, 139, 124, 132, 153, 146, 134, 146, 107, 132, 133, 133, 134, 130, 141, 165, 153, 134, 136, 134, 134, 134, 129, 142, 137, 139, 142, 130, 138, 140, 122, 145, 139, 133, 142, 140, 135, 129, 132, 136, 146, 139, 130, 133, 135, 135, 139, 130, 128, 145, 129, 144, 147, 133, 133, 139, 136, 139, 145, 128, 138, 137, 145, 134, 130, 129, 134, 134, 132, 142, 142, 140, 142, 136, 137, 145, 135, 145, 143, 133, 132, 134, 125, 141, 126, 129, 133, 143, 135, 143, 141, 137, 129, 135, 129, 129, 143, 143, 138, 133, 141, 137, 137, 127, 147, 140, 138, 131, 139, 130, 144, 131, 116, 130, 150, 127, 134, 133, 131, 134, 136, 134, 142, 142, 143, 134, 133, 128, 129, 139, 146, 125, 141, 132, 134, 125, 124, 135, 133, 138, 130, 135, 139, 134, 129, 140, 141, 140, 117, 142, 138, 140, 138, 151, 129, 137, 139, 121, 119, 134, 136, 154, 133, 127, 128, 131, 136, 142, 136, 125, 133, 135, 148, 127, 139, 139, 133, 145, 127, 139, 144, 129, 136, 133, 148, 131, 140, 128, 140, 151, 152, 143, 129, 131, 145, 136, 133, 137, 135, 132, 126, 148, 143, 136, 142, 132, 135, 139, 135, 129, 145, 136, 143, 139, 136, 141, 135, 137, 144, 136, 136, 133, 137, 151, 138, 143, 142, 137, 135, 141, 147, 144, 141, 129, 128, 133, 136, 132, 133, 124, 130, 139, 138, 135, 145, 145, 141, 140, 131, 149, 121, 140, 137, 138, 142, 137, 138, 127, 140, 134, 140, 125, 127, 127, 141, 129, 138, 137, 149, 132, 148, 134, 129, 133, 146, 136, 143, 142, 138, 130, 127, 129, 140, 129, 142, 138, 141, 136, 135, 130, 136, 131, 135, 142, 123, 133, 142, 137, 138, 126, 145, 137, 146, 131, 145, 144, 129, 130, 123, 143, 132, 130, 135, 139, 143, 131, 138, 139, 142, 138, 133, 136, 149, 129, 112, 137, 136, 118, 137, 144, 126, 149, 135, 149, 130, 138, 148, 123, 141, 124, 138, 133, 129, 139, 139, 139, 142, 136, 137, 134, 146, 132, 134, 134, 132, 142, 127, 145, 134, 135, 135, 140, 138, 144, 131, 137, 134, 136, 148, 135, 146, 134, 135, 134, 143, 139, 136, 126, 141, 134, 142, 141, 141, 133, 125, 144, 133, 140, 137, 131, 139, 137, 134, 131, 150, 116, 136, 136, 146, 137, 134, 123, 135, 137, 141, 133, 136, 144, 130, 139, 139, 143, 132, 148, 136, 140, 129, 130, 132, 138, 141, 132, 141, 142, 124, 137, 120, 135, 135, 131, 145, 136, 135, 128, 130, 137, 133, 138, 139, 146, 144, 143, 145, 139, 149, 128, 125, 131, 141, 138, 140, 130, 132, 132, 129, 146, 134, 140, 141, 139, 138, 141, 151, 122, 152, 146, 144, 139, 147, 134, 139, 138, 142, 144, 133, 142, 135, 135, 124, 144, 135, 136, 135, 137, 133, 133, 139, 133, 136, 129, 120, 131, 125, 134, 128, 138, 134, 136, 152, 126, 137, 132, 138, 138, 139, 132, 126, 140, 125, 133, 151, 133, 133, 136, 139, 132, 132, 131, 137, 143, 130, 138, 144, 132, 138, 137, 146, 145, 140, 142, 142, 134, 139, 139, 131, 138, 140, 126, 144, 132, 136, 137, 135, 147, 134, 125, 146, 145, 134, 123, 134, 134, 138, 130, 136, 131, 132, 136, 136, 128, 136, 142, 131, 150, 141, 138, 129, 163, 123, 127, 136, 126, 134, 148, 117, 129, 130, 143, 144, 134, 140, 137, 132, 141, 146, 138, 140, 136, 141, 142, 126, 130, 142, 138, 134, 131, 133, 137, 131, 140, 129, 133, 142, 155, 132, 142, 134, 140, 145, 144, 132, 144, 135, 145, 128, 151, 149, 150, 131, 140, 128, 134, 130, 121, 130, 148, 147, 144, 153, 113, 137, 165, 140, 149, 135, 142, 138, 145, 147, 136, 126, 159, 138, 147, 131, 136, 140, 128, 127, 124, 130, 139, 138, 140, 151, 96, 137, 128, 130, 114, 136, 118, 129, 127, 143, 134, 143, 132, 140, 133, 131, 124, 128, 144, 112, 145, 143, 122, 151, 134, 135, 137, 129, 123, 133, 134, 139, 134, 136, 129, 134, 164, 130, 136, 129, 129, 142, 140, 141, 135, 124, 140, 133, 145, 131, 136, 149, 107, 122, 159, 141, 143, 125, 127, 136, 136, 136, 133, 122, 134, 138, 120, 123, 141, 114, 148, 131, 146, 137, 128, 112, 119, 139, 138, 132, 122, 125, 135, 125, 130, 118, 138, 133, 133, 134, 118, 131, 145, 134, 129, 137, 124, 135, 135, 125, 136, 145, 125, 144, 145, 139, 121, 133, 131, 127, 119, 134, 128, 138, 130, 132, 145, 130, 140, 133, 124, 141, 132, 138, 124, 124, 149, 138, 133, 137, 133, 141, 144, 131, 137, 137, 132, 155, 140, 123, 124, 134, 135, 133, 149, 132, 138, 130, 147, 130, 128, 145, 123, 131, 134, 136, 138, 133, 143, 133, 139, 155, 136, 125, 137, 128, 138, 154, 148, 122, 129, 131, 119, 127, 140, 126, 138, 148, 158, 142, 129, 127, 145, 139, 136, 146, 134, 128, 147, 133, 147, 136, 145, 122, 112, 142, 145, 141, 131, 136, 141, 151, 151, 133, 124, 139, 145, 131, 133, 108, 130, 138, 134, 139, 140, 142, 138, 134, 142, 142, 134, 132, 127, 127, 142, 134, 133, 145, 137, 118, 126, 146, 131, 133, 126, 147, 144, 127, 130, 137, 126, 124, 118, 135, 139, 128, 141, 136, 140, 124, 129, 146, 121, 138, 147, 117, 141, 155, 120, 132, 138, 133, 131, 138, 134, 126, 147, 136, 134, 149, 130, 139, 139, 142, 140, 127, 127, 141, 140, 129, 120, 143, 131, 154, 128, 146, 148, 141, 149, 126, 138, 140, 126, 141, 133, 136, 149, 123, 148, 130, 144, 115, 134, 146, 136, 140, 140, 143, 138, 130, 149, 123, 134, 135, 166, 149, 137, 134, 123, 136, 138, 141, 132, 124, 166, 129, 117, 136, 126, 138, 134, 130, 132, 125, 134, 128, 139, 128, 138, 137, 126, 139, 129, 132, 134, 145, 146, 149, 146, 127, 128, 147, 135, 126, 138, 153, 144, 128, 122, 133, 132, 136, 140, 121, 140, 128, 143, 142, 133, 129, 142, 115, 139, 140, 128, 132, 140, 143, 128, 129, 132, 136, 132, 134, 139, 125, 144, 117, 144, 146, 132, 140, 133, 120, 127, 120, 137, 129, 119, 142, 141, 147, 140, 139, 133, 139, 135, 127, 154, 139, 136, 137, 138, 141, 126, 137, 136, 136, 133, 131, 119, 130, 134, 138, 143, 143, 141, 137, 128, 126, 137, 140, 129, 130, 128, 139, 135, 138, 135, 142, 136, 143, 138, 144, 136, 139, 116, 137, 133, 132, 149, 149, 126, 141, 134, 145, 137, 125, 131, 135, 111, 140, 145, 138, 122, 134, 132, 145, 139, 135, 122, 126, 135, 149, 132, 141, 130, 126, 120, 139, 130, 121, 143, 160, 141, 135, 135, 136, 136, 136, 136, 141, 157, 137, 128, 141, 146, 144, 132, 118, 135, 135, 130, 134, 143, 141, 125, 124, 127, 144, 143, 141, 137, 136, 157, 134, 136, 126, 130, 138, 123, 123, 132, 133, 138, 132, 128, 111, 150, 130, 135, 142, 135, 144, 136, 137, 131, 137, 113, 142, 136, 131, 133, 137, 139, 169, 126, 140, 137, 136, 116, 136, 143, 141, 133, 144, 145, 146, 134, 136, 145, 150, 146, 135, 134, 138, 148, 130, 133, 133, 134, 121, 132, 136, 139, 136, 124, 131, 142, 129, 111, 131, 133, 135, 126, 127, 124, 146, 127, 138, 121, 137, 138, 147, 125, 140, 150, 136, 136, 139, 167, 133, 131, 129, 139, 145, 127, 113, 146, 132, 122, 140, 144, 143, 131, 144, 143, 153, 161, 138, 153, 131, 132, 120, 130, 141, 125, 131, 120, 143, 125, 138, 123, 128, 134, 126, 135, 138, 127, 139, 141, 128, 136, 121, 139, 123, 141, 121, 127, 123, 131, 123, 132, 148, 137, 133, 121, 129, 133, 127, 134, 132, 126, 130, 137, 140, 131, 117, 145, 129, 118, 133, 130, 128, 135, 139, 150, 141, 125, 146, 183, 133, 128, 139, 120, 130, 144, 134, 152, 121, 126, 141, 143, 145, 148, 151, 133, 132, 138, 127, 131, 125, 131, 141, 135, 142, 126, 130, 145, 122, 133, 138, 138, 131, 141, 125, 130, 145, 105, 130, 129, 131, 139, 150, 135, 142, 139, 133, 146, 135, 111, 129, 146, 147, 137, 141, 154, 138, 139, 121, 140, 146, 132, 127, 124, 128, 140, 144, 127, 125, 131, 131, 140, 142, 134, 141, 126, 140, 139, 142, 130, 146, 129, 126, 118, 133, 119, 139, 131, 144, 125, 130, 132, 151, 139, 135, 132, 127, 135, 128, 130, 135, 141, 153, 142, 132, 138, 139, 141, 129, 133, 139, 127, 133, 124, 128, 125, 143, 141, 135, 153, 137, 128, 132, 136, 130, 139, 152, 130, 133, 129, 118, 129, 131, 138, 120, 127, 145, 134, 134, 121, 125, 145, 129, 132, 138, 136, 130, 122, 127, 150, 134, 137, 140, 139, 134, 147, 128, 140, 120, 130, 134, 137, 137, 137, 147, 116, 137, 132, 141, 124, 140, 141, 138, 149, 136, 143, 146, 139, 141, 122, 154, 130, 141, 132, 132, 135, 143, 139, 117, 136, 129, 141, 144, 130, 137, 143, 130, 130, 136, 125, 132, 154, 119, 113, 138, 132, 140, 137, 130, 140, 133, 139, 140, 136, 127, 132, 136, 136, 127, 130, 125, 133, 154, 135, 124, 130, 125, 136, 127, 134, 134, 132, 150, 144, 142, 152, 135, 142, 136, 140, 150, 134, 134, 138, 128, 137, 141, 131, 131, 122, 129, 142, 147, 129, 133, 162, 142, 135, 139, 142, 136, 138, 155, 125, 129, 142, 144, 138, 128, 146, 128, 140, 152, 146, 122, 128, 139, 136, 137, 133, 127, 134, 130, 139, 138, 136, 132, 145, 120, 145, 125, 128, 138, 139, 141, 138, 156, 139, 144, 142, 146, 145, 132, 138, 125, 124, 147, 140, 137, 125, 137, 138, 128, 133, 130, 130, 123, 134, 133, 145, 138, 137, 136, 146, 142, 128, 127, 131, 118, 144, 130, 114, 125, 132, 132, 132, 138, 130, 129, 149, 146, 130, 139, 130, 136, 143, 141, 121, 132, 136, 137, 155, 129, 127, 139, 135, 135, 146, 144, 134, 121, 128, 132, 148, 144, 119, 121, 148, 138, 122, 122, 116, 138, 127, 157, 141, 132, 123, 148, 136, 139, 140, 140, 136, 144, 138, 154, 148, 145, 138, 143, 142, 133, 141, 153, 125, 126, 162, 135, 132, 135, 126, 151, 127, 133, 129, 143, 141, 144, 117, 120, 137, 119, 125, 127, 123, 132, 129, 129, 132, 151, 132, 134, 145, 130, 136, 120, 137, 122, 154, 146, 156, 133, 127, 117, 131, 159, 134, 144, 129, 130, 135, 131, 139, 119, 132, 142, 134, 128, 129, 132, 162, 138, 139, 140, 127, 137, 133, 142, 139, 139, 130, 137, 137, 132, 126, 133, 137, 133, 147, 136, 142, 147, 137, 135, 137, 117, 142, 138, 122, 145, 141, 142, 127, 144, 123, 133, 131, 139, 139, 130, 145, 139, 141, 138, 129, 153, 114, 129, 139, 139, 141, 125, 134, 133, 129, 142, 129, 130, 140, 149, 135, 135, 132, 128, 132, 123, 135, 129, 142, 133, 146, 149, 126, 136, 135, 141, 135, 134, 131, 130, 132, 129, 119, 142, 133, 139, 153, 130, 146, 131, 137, 138, 138, 129, 153, 123, 134, 125, 120, 134, 141, 134, 133, 150, 141, 132, 129, 143, 133, 133, 146, 133, 118, 144, 132, 155, 126, 130, 130, 143, 130, 141, 146, 145, 143, 131, 123, 146, 120, 137, 127, 131, 134, 149, 124, 130, 127, 137, 120, 139, 134, 142, 135, 148, 128, 133, 129, 107, 135, 144, 132, 147, 133, 157, 138, 134, 132, 141, 151, 147, 130, 141, 125, 153, 135, 137, 129, 125, 132, 137, 132, 155, 137, 141, 133, 124, 134, 137, 132, 121, 135, 129, 136, 136, 122, 141, 144, 136, 142, 132, 135, 133, 124, 128, 137, 115, 139, 129, 137, 154, 126, 134, 112, 137, 144, 149, 145, 132, 135, 137, 134, 147, 130, 147, 137, 137, 134, 130, 140, 136, 133, 121, 125, 137, 126, 117, 134, 131, 143, 138, 138, 127, 127, 135, 121, 143, 135, 131, 131, 122, 135, 140, 157, 140, 143, 131, 143, 125, 130, 134, 135, 139, 130, 161, 135, 132, 123, 124, 138, 132, 112, 139, 118, 130, 116, 127, 129, 138, 129, 150, 153, 137, 140, 136, 134, 136, 148, 134, 175, 103, 146, 135, 134, 133, 120, 145, 141, 123, 146, 131, 133, 129, 139, 111, 143, 135, 139, 126, 150, 122, 126, 135, 151, 138, 136, 132, 132, 137, 122, 127, 128, 139, 133, 138, 139, 138, 172, 148, 132, 151, 133, 137, 121, 116, 137, 128, 134, 144, 133, 134, 132, 135, 135, 147, 134, 138, 140, 138, 147, 131, 138, 125, 138, 127, 136, 133, 118, 136, 113, 132, 139, 155, 159, 138, 150, 127, 139, 144, 119, 151, 115, 141, 117, 138, 135, 128, 148, 136, 139, 132, 110, 125, 138, 134, 128, 148, 133, 122, 121, 136, 126, 152, 134, 125, 138, 134, 140, 133, 125, 130, 130, 135, 153, 141, 111, 144, 146, 126, 126, 130, 118, 126, 156, 139, 135, 141, 143, 134, 155, 134, 111, 115, 118, 135, 135, 129, 131, 133, 131, 141, 123, 142, 140, 124, 134, 126, 133, 109, 149, 142, 129, 126, 128, 133, 134, 118, 135, 134, 133, 133, 122, 136, 129, 138, 139, 149, 142, 136, 114, 134, 139, 149, 129, 137, 130, 145, 155, 118, 174, 140, 129, 136, 127, 147, 128, 143, 122, 130, 134, 132, 135, 144, 136, 150, 158, 133, 136, 142, 135, 153, 131, 135, 111, 143, 126, 137, 139, 124, 146, 131, 121, 119, 131, 143, 129, 128, 120, 139, 137, 154, 131, 136, 126, 130, 124, 144, 143, 119, 124, 135, 135, 124, 146, 135, 135, 127, 131, 147, 144, 127, 131, 137, 130, 152, 141, 136, 127, 141, 129, 134, 129, 136, 133, 134, 138, 134, 132, 115, 136, 123, 125, 142, 132, 129, 123, 144, 131, 126, 140, 132, 132, 146, 132, 127, 145, 117, 147, 142, 136, 145, 133, 132, 131, 120, 136, 141, 133, 131, 123, 151, 140, 137, 126, 137, 135, 132, 129, 123, 135, 138, 135, 135, 130, 139, 137, 141, 132, 127, 124, 146, 116, 135, 127, 125, 136, 165, 143, 141, 124, 143, 135, 140, 136, 129, 150, 144, 130, 140, 145, 135, 133, 123, 136, 148, 133, 124, 144, 144, 132, 134, 135, 140, 131, 129, 142, 132, 131, 168, 145, 135, 136, 137, 144, 125, 133, 126, 144, 141, 122, 124, 129, 144, 132, 139, 131, 139, 172, 138, 129, 150, 113, 149, 129, 134, 137, 127, 155, 136, 145, 151, 145, 122, 127, 145, 134, 152, 137, 133, 139, 136, 145, 150, 147, 132, 126, 126, 147, 137, 136, 132, 148, 144, 156, 134, 145, 135, 141, 125, 131, 136, 132, 131, 126, 140, 132, 122, 144, 130, 139, 127, 133, 134, 133, 132, 126, 159, 150, 116, 126, 136, 126, 146, 134, 139, 154, 125, 139, 133, 132, 131, 131, 121, 146, 136, 130, 123, 132, 139, 137, 119, 143, 144, 130, 145, 148, 141, 132, 152, 131, 105, 118, 140, 119, 135, 132, 122, 142, 136, 127, 136, 146, 126, 139, 127, 126, 133, 147, 141, 135, 128, 126, 147, 137, 125, 118, 142, 128, 117, 131, 134, 164, 134, 130, 154, 135, 126, 140, 137, 129, 141, 137, 133, 140, 140, 122, 123, 138, 137, 132, 119, 159, 127, 132, 144, 123, 136, 146, 144, 133, 120, 135, 138, 147, 134, 139, 135, 138, 123, 133, 143, 133, 136, 136, 130, 144, 133, 132, 130, 129, 126, 143, 125, 126, 153, 160, 139, 136, 141, 128, 140, 131, 154, 139, 133, 140, 148, 136, 129, 137, 139, 132, 123, 138, 136, 140, 141, 148, 133, 139, 144, 132, 137, 136, 127, 150, 128, 140, 128, 140, 136, 132, 122, 134, 130, 127, 145, 139, 129, 134, 137, 138, 124, 146, 122, 122, 147, 131, 127, 145, 131, 137, 131, 149, 125, 125, 142, 143, 130, 131, 142, 128, 144, 126, 134, 148, 142, 129, 145, 143, 133, 122, 133, 149, 139, 136, 163, 141, 134, 142, 133, 134, 135, 123, 147, 139, 128, 131, 136, 130, 148, 129, 135, 123, 115, 141, 140, 137, 137, 133, 136, 132, 135, 151, 139, 128, 145, 125, 125, 132, 134, 145, 143, 138, 147, 130, 135, 141, 149, 127, 131, 142, 131, 132, 135, 137, 137, 139, 146, 141, 120, 124, 134, 124, 140, 130, 131, 143, 135, 133, 142, 134, 133, 135, 146, 142, 134, 144, 130, 143, 133, 131, 138, 141, 131, 137, 136, 137, 124, 138, 136, 134, 135, 130, 138, 146, 138, 149, 137, 129, 125, 135, 133, 119, 144, 132, 132, 133, 125, 151, 140, 128, 159, 137, 132, 143, 147, 123, 141, 147, 132, 140, 130, 147, 134, 136, 158, 123, 131, 133, 141, 143, 136, 134, 133, 126, 131, 154, 134, 132, 136, 129, 136, 137, 136, 139, 130, 134, 139, 142, 145, 140, 138, 142, 104, 143, 144, 134, 144, 141, 137, 135, 127, 123, 127, 128, 135, 152, 126, 132, 126, 130, 146, 134, 127, 136, 144, 136, 135, 144, 128, 135, 134, 138, 141, 127, 137, 147, 123, 138, 139, 140, 132, 142, 147, 141, 131, 129, 154, 130, 133, 136, 136, 136, 149, 128, 132, 144, 128, 131, 134, 133, 136, 134, 134, 135, 137, 139, 142, 138, 134, 139, 137, 133, 139, 136, 137, 137, 140, 122, 135, 135, 144, 156, 137, 143, 150, 137, 131, 131, 142, 140, 137, 136, 132, 140, 120, 138, 133, 132, 139, 137, 144, 139, 133, 141, 129, 131, 133, 141, 138, 127, 132, 144, 137, 128, 141, 132, 155, 156, 123, 142, 120, 142, 144, 129, 133, 137, 140, 135, 143, 131, 136, 133, 125, 151, 122, 139, 125, 146, 136, 146, 128, 132, 127, 136, 122, 142, 124, 123, 141, 133, 144, 127, 144, 131, 129, 138, 137, 123, 128, 132, 141, 135, 153, 137, 141, 140, 151, 131, 136, 125, 149, 137, 144, 132, 153, 139, 136, 131, 129, 153, 145, 135, 148, 148, 124, 144, 136, 127, 161, 152, 135, 132, 128, 141, 148, 127, 138, 141, 148, 127, 117, 140, 130, 161, 140, 154, 137, 138, 137, 125, 128, 138, 134, 138, 135, 142, 134, 142, 132, 133, 132, 141, 151, 147, 142, 126, 125, 142, 122, 132, 139, 130, 126, 136, 142, 137, 134, 166, 137, 132, 138, 147, 141, 132, 121, 123, 158, 126, 138, 134, 137, 120, 139, 131, 127, 140, 137, 131, 141, 142, 146, 131, 141, 142, 131, 142, 125, 133, 131, 137, 122, 137, 146, 150, 132, 133, 135, 134, 138, 138, 119, 150, 143, 126, 110, 126, 147, 130, 142, 135, 135, 141, 132, 143, 137, 133, 134, 141, 136, 136, 132, 141, 142, 126, 132, 126, 132, 134, 135, 124, 145, 141, 133, 136, 148, 142, 134, 131, 140, 138, 133, 142, 138, 145, 138, 137, 127, 145, 127, 126, 126, 125, 129, 133, 151, 149, 135, 152, 150, 129, 152, 145, 129, 127, 127, 118, 132, 147, 142, 129, 142, 132, 137, 132, 130, 132, 134, 131, 131, 151, 136, 149, 139, 135, 148, 132, 129, 134, 141, 141, 146, 168, 137, 136, 143, 153, 134, 133, 141, 150, 150, 158, 136, 137, 119, 129, 158, 137, 130, 136, 138, 132, 125, 139, 138, 135, 150, 144, 140, 128, 134, 133, 120, 140, 127, 127, 145, 148, 112, 135, 135, 137, 159, 131, 132, 129, 127, 125, 142, 138, 135, 146, 140, 144, 135, 125, 161, 135, 133, 160, 125, 139, 138, 134, 133, 130, 148, 130, 132, 122, 137, 121, 134, 136, 134, 132, 134, 131, 131, 137, 141, 134, 126, 155, 140, 123, 126, 131, 127, 135, 146, 140, 139, 149, 134, 125, 146, 155, 127, 132, 121, 134, 133, 127, 137, 143, 119, 139, 141, 134, 131, 143, 170, 131, 128, 129, 121, 140, 141, 137, 129, 123, 132, 134, 139, 126, 152, 124, 128, 132, 128, 130, 126, 129, 141, 124, 130, 131, 144, 126, 128, 135, 138, 114, 142, 137, 141, 129, 153, 125, 146, 137, 141, 132, 126, 138, 123, 136, 139, 135, 149, 125, 140, 131, 132, 133, 137, 148, 136, 133, 130, 150, 156, 138, 151, 156, 139, 122, 130, 140, 138, 137, 145, 126, 130, 141, 130, 132, 138, 124, 141, 133, 146, 128, 133, 133, 120, 136, 137, 125, 135, 135, 133, 132, 146, 131, 135, 140, 129, 136, 129, 129, 134, 124, 130, 129, 132, 137, 128, 136, 145, 139, 153, 127, 134, 140, 125, 136, 145, 135, 125, 145, 139, 133, 132, 132, 130, 130, 132, 139, 136, 124, 142, 137, 117, 139, 126, 136, 130, 132, 135, 126, 127, 133, 145, 140, 161, 134, 139, 137, 135, 130, 135, 128, 130, 135, 126, 127, 128, 138, 129, 139, 129, 128, 136, 146, 149, 135, 136, 142, 136, 122, 126, 128, 130, 130, 133, 136, 143, 126, 132, 140, 123, 121, 138, 140, 131, 129, 165, 128, 124, 130, 131, 145, 144, 152, 128, 135, 124, 139, 136, 133, 137, 131, 144, 119, 136, 136, 132, 137, 143, 143, 126, 125, 130, 118, 125, 132, 139, 125, 126, 131, 134, 138, 136, 129, 148, 126, 123, 146, 139, 131, 122, 135, 160, 130, 131, 123, 137, 119, 137, 137, 143, 129, 140, 151, 144, 134, 141, 136, 135, 131, 119, 138, 123, 125, 126, 131, 148, 130, 130, 125, 138, 137, 138, 117, 132, 140, 119, 135, 149, 130, 133, 134, 135, 139, 141, 128, 112, 124, 139, 136, 131, 132, 131, 137, 127, 136, 121, 132, 139, 123, 125, 141, 121, 139, 111, 141, 123, 139, 131, 141, 138, 142, 147, 123, 134, 136, 140, 167, 143, 129, 129, 144, 140, 128, 131, 131, 142, 129, 147, 146, 123, 126, 154, 151, 136, 127, 133, 130, 121, 136, 146, 142, 131, 141, 128, 135, 140, 115, 138, 129, 129, 141, 122, 154, 135, 131, 140, 127, 125, 130, 140, 168, 134, 121, 135, 137, 113, 128, 138, 142, 137, 149, 134, 137, 126, 136, 136, 158, 145, 152, 102, 145, 128, 79, 148, 145, 120, 105, 138, 136, 141, 158, 136, 142, 136, 134, 150, 130, 121, 122, 139, 145, 155, 139, 130, 146, 155, 140, 130, 138, 139, 141, 132, 136, 132, 136, 127, 129, 145, 121, 132, 125, 122, 130, 136, 116, 138, 139, 141, 145, 123, 111, 137, 155, 133, 142, 128, 142, 135, 128, 143, 147, 132, 131, 135, 122, 120, 128, 117, 132, 135, 133, 143, 146, 133, 126, 124, 137, 135, 133, 137, 133, 151, 114, 127, 127, 127, 138, 154, 133, 128, 144, 134, 129, 126, 128, 141, 137, 149, 129, 145, 132, 124, 141, 122, 127, 118, 134, 144, 147, 143, 142, 145, 129, 121, 114, 141, 137, 133, 134, 128, 142, 142, 135, 142, 137, 128, 135, 144, 131, 136, 138, 149, 138, 137, 132, 153, 132, 145, 141, 122, 137, 151, 124, 130, 118, 135, 136, 116, 147, 144, 130, 121, 135, 132, 142, 137, 156, 127, 157, 145, 142, 121, 149, 136, 140, 124, 128, 123, 130, 131, 136, 136, 133, 146, 128, 145, 141, 149, 147, 152, 157, 132, 127, 134, 143, 145, 129, 130, 130, 153, 129, 137, 133, 128, 132, 133, 133, 141, 147, 135, 126, 125, 132, 126, 137, 147, 127, 128, 135, 114, 135, 147, 136, 132, 140, 131, 128, 140, 150, 137, 122, 143, 147, 125, 126, 132, 126, 140, 145, 137, 142, 104, 145, 145, 139, 144, 135, 120, 187, 140, 139, 128, 143, 134, 128, 129, 131, 143, 148, 141, 151, 163, 157, 136, 144, 130, 135, 116, 111, 145, 149, 137, 147, 172, 142, 142, 140, 125, 145, 158, 126, 155, 133, 137, 139, 125, 143, 126, 140, 136, 135, 131, 128, 115, 137, 138, 136, 137, 155, 124, 145, 129, 137, 133, 127, 137, 123, 138, 125, 130, 145, 141, 151, 144, 117, 157, 120, 138, 142, 126, 126, 138, 126, 133, 122, 135, 108, 145, 134, 136, 127, 124, 160, 139, 146, 148, 150, 135, 138, 114, 130, 102, 143, 139, 131, 150, 125, 148, 143, 125, 139, 146, 140, 152, 124, 133, 137, 135, 133, 142, 146, 149, 148, 133, 142, 129, 154, 119, 133, 135, 134, 120, 131, 156, 120, 137, 128, 123, 132, 133, 131, 153, 138, 142, 106, 140, 130, 138, 149, 141, 153, 130, 139, 145, 128, 127, 121, 116, 138, 134, 150, 143, 130, 153, 125, 159, 144, 149, 134, 121, 132, 148, 141, 145, 117, 133, 129, 123, 125, 139, 131, 144, 130, 138, 128, 128, 134, 135, 156, 136, 148, 119, 144, 122, 133, 148, 113, 115, 133, 131, 126, 143, 125, 140, 134, 128, 145, 140, 138, 126, 129, 155, 136, 123, 139, 121, 135, 113, 131, 145, 131, 150, 131, 136, 164, 119, 130, 132, 132, 138, 147, 138, 138, 127, 132, 141, 152, 146, 132, 125, 119, 126, 133, 150, 141, 148, 134, 137, 136, 158, 136, 138, 151, 141, 151, 188, 137, 140, 134, 140, 147, 142, 132, 154, 131, 127, 131, 136, 132, 130, 146, 117, 147, 131, 138, 141, 140, 124, 142, 125, 140, 134, 138, 134, 135, 141, 137, 135, 137, 142, 116, 128, 141, 128, 136, 145, 136, 139, 141, 138, 137, 146, 140, 143, 136, 147, 130, 134, 140, 135, 137, 129, 133, 141, 133, 134, 130, 130, 131, 133, 137, 153, 125, 125, 143, 132, 149, 124, 136, 133, 142, 138, 135, 124, 144, 133, 149, 128, 134, 139, 121, 140, 123, 138, 155, 133, 149, 129, 146, 140, 131, 135, 140, 136, 135, 142, 135, 137, 141, 121, 137, 139, 127, 131, 139, 137, 148, 147, 130, 144, 133, 133, 150, 144, 168, 145, 140, 138, 139, 138, 138, 128, 123, 124, 140, 133, 133, 130, 132, 136, 145, 139, 139, 141, 143, 141, 125, 143, 135, 141, 145, 131, 133, 130, 129, 138, 121, 136, 141, 133, 133, 149, 127, 144, 117, 121, 137, 147, 140, 148, 139, 130, 137, 131, 131, 135, 132, 149, 140, 134, 139, 133, 134, 127, 139, 134, 130, 135, 136, 119, 134, 134, 152, 129, 134, 129, 138, 134, 141, 132, 132, 150, 132, 144, 130, 117, 131, 124, 133, 131, 139, 137, 138, 143, 135, 116, 137, 118, 136, 132, 128, 132, 129, 137, 141, 137, 144, 147, 141, 141, 151, 136, 133, 137, 140, 130, 156, 147, 124, 142, 141, 137, 128, 133, 138, 129, 131, 136, 134, 137, 141, 138, 137, 148, 133, 144, 146, 128, 130, 138, 139, 134, 144, 122, 141, 135, 134, 141, 130, 139, 140, 133, 146, 151, 133, 137, 145, 129, 136, 137, 129, 135, 130, 137, 118, 142, 140, 135, 138, 134, 145, 132, 167, 137, 135, 127, 137, 133, 129, 136, 139, 140, 127, 124, 140, 141, 142, 137, 139, 131, 133, 149, 137, 132, 133, 136, 140, 143, 129, 107, 139, 139, 130, 139, 130, 135, 133, 142, 130, 149, 125, 140, 135, 123, 137, 136, 134, 141, 127, 151, 141, 140, 134, 133, 134, 131, 130, 143, 133, 132, 132, 134, 144, 142, 140, 134, 140, 96, 144, 121, 133, 136, 140, 126, 114, 133, 139, 150, 141, 141, 138, 133, 146, 137, 153, 149, 132, 143, 129, 142, 140, 132, 133, 136, 132, 145, 140, 135, 139, 133, 148, 125, 134, 133, 131, 138, 144, 139, 138, 152, 148, 156, 154, 129, 142, 152, 133, 146, 137, 136, 129, 134, 135, 132, 127, 137, 134, 139, 136, 133, 138, 128, 131, 134, 145, 146, 152, 137, 133, 134, 131, 144, 133, 145, 137, 143, 146, 144, 134, 140, 126, 123, 131, 144, 142, 139, 137, 136, 135, 139, 135, 151, 151, 141, 137, 122, 145, 123, 141, 129, 141, 144, 131, 140, 140, 138, 133, 136, 134, 139, 142, 136, 146, 143, 141, 139, 141, 140, 133, 133, 138, 138, 141, 145, 139, 143, 139, 133, 129, 136, 135, 136, 133, 126, 133, 139, 124, 138, 138, 135, 135, 142, 132, 135, 130, 141, 129, 136, 140, 133, 139, 137, 138, 134, 129, 136, 135, 134, 140, 138, 136, 137, 134, 136, 137, 141, 141, 132, 138, 136, 151, 139, 134, 137, 140, 142, 147, 135, 136, 136, 131, 138, 136, 137, 133, 127, 139, 143, 126, 136, 140, 134, 136, 145, 141, 132, 141, 137, 139, 136, 139, 133, 140, 132, 134, 138, 133, 143, 140, 140, 141, 138, 129, 139, 141, 136, 140, 133, 138, 130, 134, 141, 140, 138, 133, 134, 143, 146, 139, 141, 137, 132, 138, 135, 144, 133, 137, 134, 131, 135, 140, 133, 135, 138, 137, 139, 138, 136, 138, 138, 136, 140, 134, 139, 138, 137, 129, 134, 134, 136, 131, 137, 134, 128, 130, 137, 135, 134, 140, 142, 138, 139, 135, 128, 138, 139, 138, 147, 141, 144, 139, 136, 138, 132, 135, 142, 127, 136, 134, 134, 136, 126, 133, 136, 137, 133, 133, 145, 135, 138, 124, 131, 136, 135, 131, 139, 134, 136, 133, 137, 133, 141, 134, 137, 138, 141, 140, 134, 137, 133, 130, 133, 139, 140, 133, 138, 138, 139, 138, 142, 133, 126, 128, 137, 144, 138, 135, 132, 136, 138, 133, 141, 134, 130, 140, 135, 135, 126, 140, 138, 139, 129, 140, 139, 133, 137, 149, 138, 134, 138, 134, 142, 138, 144, 145, 138, 138, 135, 133, 140, 144, 133, 136, 140, 137, 135, 140, 138, 134, 140, 140, 137, 141, 141, 130, 139, 139, 142, 135, 132, 136, 134, 138, 135, 133, 142, 138, 122, 133, 135, 134, 140, 132, 135, 142, 137, 129, 132, 139, 143, 139, 144, 139, 134, 142, 142, 131, 133, 138, 137, 146, 135, 141, 142, 137, 136, 136, 136, 145, 140, 139, 137, 134, 145, 131, 138, 138, 135, 136, 133, 130, 143, 133, 139, 139, 142, 135, 133, 136, 129, 135, 138, 133, 129, 128, 136, 145, 137, 145, 142, 138, 136, 136, 132, 138, 139, 136, 136, 133, 141, 137, 135, 137, 139, 134, 139, 134, 135, 141, 140, 137, 135, 143, 140, 137, 142, 130, 141, 130, 133, 133, 138, 140, 143, 137, 137, 137, 133, 123, 137, 143, 139, 129, 137, 142, 134, 131, 137, 138, 139, 135, 136, 130, 130, 138, 128, 138, 142, 146, 135, 135, 138, 139, 136, 139, 133, 133, 139, 146, 142, 137, 133, 134, 138, 124, 136, 125, 134, 130, 136, 124, 148, 138, 134, 134, 137, 132, 141, 134, 126, 138, 137, 130, 132, 131, 131, 134, 139, 135, 137, 141, 139, 133, 134, 126, 132, 140, 140, 146, 131, 137, 131, 138, 134, 141, 137, 141, 134, 133, 129, 132, 135, 137, 133, 132, 132, 145, 136, 140, 138, 136, 132, 145, 127, 138, 133, 135, 141, 129, 139, 144, 145, 135, 128, 134, 138, 139, 131, 137, 139, 135, 142, 133, 140, 141, 134, 149, 147, 143, 132, 132, 137, 132, 148, 131, 140, 143, 137, 127, 135, 140, 136, 144, 135, 125, 125, 137, 132, 132, 132, 126, 136, 128, 140, 132, 156, 129, 136, 129, 127, 131, 133, 126, 143, 135, 127, 109, 146, 119, 130, 126, 140, 126, 134, 127, 150, 153, 137, 133, 140, 135, 141, 135, 137, 135, 129, 140, 127, 129, 135, 146, 161, 157, 132, 133, 136, 138, 131, 131, 135, 126, 136, 133, 127, 137, 98, 159, 119, 138, 141, 126, 132, 135, 142, 143, 124, 134, 121, 137, 134, 136, 130, 135, 138, 123, 137, 129, 136, 134, 141, 141, 141, 113, 135, 128, 139, 128, 132, 133, 132, 140, 159, 158, 125, 151, 132, 142, 134, 136, 140, 142, 131, 140, 138, 134, 128, 127, 154, 129, 137, 133, 139, 132, 133, 134, 130, 136, 136, 141, 144, 135, 161, 132, 127, 144, 164, 118, 135, 131, 122, 138, 129, 127, 135, 140, 134, 134, 129, 132, 128, 126, 132, 140, 140, 136, 133, 133, 135, 129, 119, 136, 120, 132, 128, 154, 134, 134, 128, 170, 139, 132, 145, 136, 127, 141, 133, 148, 129, 133, 131, 140, 129, 145, 139, 166, 138, 137, 135, 138, 138, 133, 144, 148, 137, 137, 139, 133, 145, 147, 140, 136, 144, 124, 131, 142, 139, 149, 130, 145, 128, 125, 142, 130, 140, 138, 130, 133, 132, 134, 130, 130, 130, 140, 133, 143, 134, 128, 125, 133, 148, 139, 140, 138, 136, 120, 140, 133, 146, 139, 150, 120, 135, 138, 142, 130, 164, 149, 149, 127, 132, 137, 137, 129, 129, 127, 122, 121, 130, 114, 140, 140, 153, 144, 150, 140, 144, 126, 132, 134, 138, 132, 141, 132, 135, 137, 138, 139, 148, 119, 132, 118, 143, 134, 155, 133, 139, 132, 131, 137, 129, 123, 128, 132, 133, 161, 138, 143, 130, 140, 131, 136, 145, 137, 127, 138, 130, 133, 141, 138, 135, 128, 129, 133, 144, 115, 130, 135, 149, 130, 136, 139, 133, 138, 144, 135, 128, 139, 142, 140, 130, 133, 143, 140, 132, 147, 147, 137, 139, 137, 126, 145, 133, 130, 135, 134, 134, 135, 133, 128, 125, 136, 135, 137, 133, 135, 124, 131, 142, 132, 135, 143, 135, 130, 141, 138, 134, 142, 131, 137, 129, 132, 136, 137, 137, 125, 138, 135, 134, 129, 135, 138, 136, 118, 134, 126, 131, 145, 149, 136, 139, 128, 135, 130, 150, 149, 133, 131, 145, 131, 139, 165, 131, 134, 142, 141, 130, 118, 137, 130, 153, 125, 131, 137, 133, 130, 134, 151, 135, 145, 141, 127, 134, 132, 141, 131, 141, 163, 135, 132, 149, 141, 148, 130, 118, 142, 123, 133, 135, 135, 137, 129, 132, 141, 140, 140, 140, 131, 128, 138, 135, 132, 136, 142, 134, 128, 134, 148, 155, 150, 119, 141, 139, 139, 136, 124, 124, 141, 136, 128, 132, 138, 129, 138, 122, 123, 142, 134, 146, 140, 132, 140, 134, 127, 141, 140, 156, 136, 150, 134, 137, 129, 136, 143, 141, 133, 126, 143, 124, 143, 141, 130, 149, 146, 155, 123, 130, 123, 118, 134, 140, 133, 138, 138, 149, 120, 152, 128, 135, 130, 149, 129, 129, 134, 132, 133, 133, 145, 191, 131, 135, 139, 130, 151, 122, 133, 128, 126, 127, 137, 151, 143, 139, 140, 132, 125, 127, 139, 146, 150, 141, 132, 127, 139, 150, 137, 134, 135, 139, 135, 124, 148, 143, 147, 136, 135, 139, 130, 136, 147, 145, 115, 134, 126, 140, 120, 145, 112, 113, 117, 132, 143, 119, 128, 139, 153, 138, 137, 121, 139, 118, 135, 139, 156, 148, 134, 140, 123, 130, 135, 130, 125, 142, 124, 138, 115, 135, 120, 139, 128, 135, 134, 134, 136, 129, 142, 140, 126, 141, 144, 139, 127, 126, 136, 139, 130, 138, 145, 133, 139, 144, 136, 136, 130, 141, 135, 139, 133, 127, 133, 134, 143, 128, 137, 113, 144, 117, 129, 165, 142, 141, 136, 131, 113, 130, 142, 147, 144, 147, 138, 136, 137, 140, 127, 156, 134, 136, 142, 124, 145, 146, 143, 129, 129, 136, 153, 120, 149, 132, 143, 129, 146, 142, 142, 134, 130, 142, 151, 131, 131, 124, 120, 140, 151, 132, 136, 146, 138, 114, 124, 135, 130, 147, 140, 131, 137, 129, 139, 130, 125, 122, 132, 153, 116, 132, 138, 145, 135, 155, 135, 130, 131, 151, 137, 131, 150, 135, 113, 138, 121, 127, 140, 140, 126, 128, 139, 126, 126, 145, 149, 137, 137, 155, 139, 135, 142, 129, 117, 129, 131, 139, 133, 140, 127, 139, 131, 125, 128, 132, 157, 132, 128, 137, 144, 137, 121, 163, 134, 144, 136, 150, 115, 137, 123, 126, 142, 140, 130, 131, 124, 136, 140, 138, 146, 139, 131, 145, 139, 130, 141, 141, 152, 128, 140, 127, 148, 165, 147, 140, 145, 133, 146, 129, 123, 139, 134, 150, 137, 126, 130, 142, 142, 146, 138, 131, 137, 146, 113, 116, 144, 146, 142, 126, 126, 134, 141, 143, 132, 154, 144, 130, 124, 142, 137, 145, 139, 142, 141, 160, 139, 150, 120, 126, 132, 125, 145, 128, 140, 137, 128, 138, 143, 130, 121, 126, 127, 136, 140, 141, 144, 143, 134, 130, 146, 132, 133, 122, 158, 134, 143, 147, 148, 128, 152, 136, 147, 129, 134, 132, 135, 132, 138, 131, 154, 129, 122, 139, 137, 141, 122, 122, 133, 123, 141, 142, 116, 134, 148, 136, 137, 144, 144, 132, 131, 125, 136, 132, 132, 127, 137, 142, 139, 142, 141, 140, 130, 125, 146, 147, 129, 131, 128, 129, 119, 119, 134, 130, 130, 128, 150, 138, 130, 126, 140, 135, 133, 155, 136, 130, 170, 124, 126, 123, 148, 142, 137, 132, 138, 142, 120, 131, 127, 125, 130, 129, 124, 131, 142, 127, 138, 138, 136, 131, 132, 129, 145, 145, 136, 134, 146, 127, 136, 143, 130, 135, 140, 143, 143, 140, 130, 127, 145, 136, 129, 135, 147, 140, 125, 144, 125, 145, 131, 138, 136, 139, 145, 128, 138, 140, 156, 136, 135, 118, 126, 133, 139, 148, 138, 122, 138, 153, 133, 143, 139, 136, 139, 138, 130, 140, 148, 149, 145, 134, 129, 126, 147, 144, 128, 132, 137, 142, 139, 141, 168, 129, 142, 125, 130, 149, 143, 137, 147, 129, 140, 140, 142, 127, 144, 142, 130, 132, 147, 126, 125, 129, 131, 132, 139, 147, 123, 134, 135, 145, 124, 150, 141, 132, 140, 133, 138, 141, 133, 149, 128, 147, 137, 135, 140, 144, 132, 114, 132, 132, 136, 125, 127, 124, 142, 130, 117, 132, 139, 137, 128, 143, 142, 138, 129, 126, 114, 131, 137, 131, 120, 135, 139, 150, 137, 135, 129, 139, 132, 131, 135, 127, 120, 139, 144, 142, 158, 139, 141, 133, 127, 133, 132, 142, 148, 137, 147, 149, 164, 144, 137, 125, 134, 139, 138, 140, 155, 134, 153, 144, 139, 133, 146, 141, 160, 114, 124, 134, 133, 135, 143, 143, 121, 132, 131, 130, 135, 132, 149, 138, 121, 144, 129, 135, 150, 133, 125, 138, 135, 145, 140, 128, 135, 136, 140, 146, 164, 122, 132, 134, 145, 139, 135, 143, 137, 146, 138, 149, 140, 126, 132, 132, 127, 137, 135, 135, 140, 146, 138, 135, 150, 131, 145, 141, 134, 131, 127, 127, 149, 139, 145, 137, 137, 152, 140, 135, 136, 147, 144, 135, 134, 141, 138, 140, 142, 125, 132, 136, 147, 133, 123, 135, 130, 127, 136, 129, 138, 146, 144, 131, 131, 148, 131, 138, 128, 133, 134, 138, 125, 149, 143, 148, 132, 132, 129, 147, 142, 142, 137, 136, 132, 135, 145, 136, 128, 139, 137, 146, 151, 131, 138, 121, 136, 125, 145, 151, 128, 140, 142, 130, 125, 157, 142, 139, 137, 141, 134, 140, 142, 136, 138, 121, 129, 145, 129, 151, 132, 134, 136, 141, 128, 124, 132, 135, 125, 141, 137, 145, 135, 143, 121, 136, 132, 135, 128, 148, 124, 141, 151, 139, 142, 127, 134, 138, 131, 155, 147, 142, 144, 144, 121, 130, 154, 139, 141, 128, 127, 130, 134, 135, 137, 134, 139, 134, 133, 153, 149, 135, 148, 138, 140, 152, 144, 136, 134, 145, 133, 115, 117, 128, 132, 159, 135, 127, 136, 133, 140, 141, 147, 163, 133, 129, 149, 138, 139, 121, 146, 139, 134, 138, 134, 130, 133, 137, 127, 149, 134, 132, 136, 136, 137, 137, 137, 132, 131, 147, 133, 147, 124, 137, 140, 136, 130, 145, 135, 159, 122, 128, 141, 142, 129, 143, 132, 126, 139, 114, 121, 129, 136, 139, 126, 147, 131, 145, 129, 142, 140, 140, 134, 132, 137, 139, 129, 144, 121, 141, 143, 131, 150, 126, 130, 148, 147, 163, 146, 125, 161, 118, 130, 130, 144, 131, 136, 134, 143, 152, 150, 141, 135, 133, 137, 140, 147, 130, 143, 142, 136, 137, 134, 134, 124, 138, 141, 128, 157, 140, 130, 128, 127, 136, 142, 136, 141, 119, 137, 148, 135, 156, 131, 134, 150, 144, 141, 129, 125, 148, 136, 116, 131, 143, 139, 129, 142, 154, 149, 138, 150, 135, 135, 129, 130, 141, 140, 125, 134, 127, 129, 134, 135, 152, 143, 136, 127, 139, 136, 143, 143, 135, 149, 146, 138, 142, 135, 138, 135, 137, 123, 152, 129, 129, 133, 135, 134, 145, 140, 118, 124, 123, 131, 142, 137, 144, 130, 137, 132, 141, 140, 126, 134, 132, 128, 133, 127, 131, 133, 141, 132, 136, 134, 131, 128, 137, 130, 145, 147, 138, 136, 136, 126, 136, 124, 134, 126, 125, 140, 124, 142, 132, 136, 135, 132, 132, 117, 137, 137, 138, 133, 124, 134, 139, 137, 119, 144, 146, 139, 131, 148, 136, 141, 127, 156, 137, 143, 140, 135, 152, 150, 142, 145, 138, 140, 125, 139, 144, 136, 135, 137, 143, 123, 154, 117, 122, 131, 134, 127, 144, 126, 141, 121, 132, 124, 142, 142, 155, 141, 139, 127, 140, 126, 137, 126, 135, 131, 138, 130, 135, 138, 136, 142, 140, 139, 134, 136, 137, 136, 147, 132, 136, 140, 119, 135, 147, 135, 142, 131, 134, 130, 137, 141, 137, 144, 130, 132, 124, 131, 139, 138, 150, 127, 132, 137, 139, 134, 138, 139, 135, 132, 127, 152, 141, 135, 132, 133, 136, 139, 142, 138, 132, 145, 124, 141, 123, 125, 145, 111, 131, 137, 129, 134, 157, 124, 128, 140, 128, 135, 130, 130, 128, 144, 133, 119, 143, 118, 137, 144, 125, 127, 138, 125, 138, 139, 135, 129, 161, 138, 145, 140, 133, 130, 138, 140, 139, 149, 141, 133, 144, 133, 150, 128, 128, 132, 125, 123, 133, 149, 131, 137, 131, 135, 138, 134, 132, 141, 132, 135, 136, 142, 147, 145, 153, 119, 129, 127, 135, 131, 142, 141, 135, 128, 132, 130, 132, 125, 136, 129, 135, 123, 138, 139, 141, 131, 144, 137, 128, 160, 116, 134, 136, 147, 142, 132, 133, 137, 153, 122, 137, 143, 127, 151, 146, 146, 138, 131, 134, 140, 129, 129, 137, 142, 129, 140, 135, 134, 140, 137, 139, 144, 143, 124, 131, 131, 140, 134, 136, 138, 139, 129, 141, 130, 135, 132, 131, 148, 131, 139, 122, 130, 151, 134, 140, 136, 144, 144, 122, 135, 139, 139, 132, 125, 130, 136, 145, 129, 139, 129, 134, 142, 143, 135, 141, 126, 135, 146, 151, 141, 142, 146, 149, 138, 122, 137, 127, 139, 138, 153, 145, 139, 138, 134, 136, 140, 129, 121, 148, 133, 106, 133, 135, 141, 139, 132, 139, 140, 139, 123, 140, 124, 136, 136, 140, 149, 129, 133, 134, 125, 125, 139, 138, 136, 135, 137, 123, 118, 147, 139, 126, 142, 137, 128, 130, 135, 145, 133, 135, 145, 129, 138, 134, 135, 139, 96, 137, 130, 131, 134, 141, 129, 151, 134, 137, 140, 141, 142, 128, 129, 136, 141, 142, 127, 139, 136, 152, 133, 137, 135, 138, 144, 145, 143, 132, 133, 142, 130, 143, 133, 139, 129, 133, 136, 145, 137, 131, 141, 126, 149, 143, 147, 135, 127, 131, 131, 138, 137, 141, 134, 134, 134, 134, 145, 129, 138, 133, 133, 149, 121, 137, 135, 138, 127, 136, 140, 137, 170, 130, 125, 128, 141, 137, 137, 139, 128, 118, 151, 155, 120, 136, 132, 134, 132, 133, 129, 135, 126, 139, 128, 133, 147, 144, 132, 119, 123, 121, 135, 152, 124, 125, 156, 135, 131, 137, 138, 128, 138, 135, 136, 133, 153, 137, 124, 109, 145, 128, 141, 147, 135, 128, 152, 126, 144, 133, 123, 99, 120, 126, 132, 142, 128, 134, 151, 122, 137, 141, 119, 127, 130, 125, 142, 134, 153, 131, 143, 133, 131, 140, 132, 134, 138, 133, 150, 149, 127, 151, 124, 152, 133, 135, 139, 146, 141, 153, 137, 136, 126, 125, 129, 131, 125, 125, 142, 137, 139, 114, 125, 136, 132, 116, 131, 150, 150, 137, 126, 120, 130, 136, 138, 128, 128, 145, 127, 113, 114, 130, 135, 134, 130, 117, 123, 147, 151, 138, 129, 124, 144, 139, 137, 136, 117, 141, 139, 137, 130, 131, 135, 147, 139, 148, 140, 146, 127, 122, 136, 115, 151, 130, 134, 144, 131, 141, 145, 131, 142, 149, 147, 129, 155, 144, 128, 131, 126, 139, 137, 123, 135, 139, 137, 152, 131, 136, 127, 128, 154, 136, 159, 132, 162, 137, 120, 126, 128, 125, 147, 165, 120, 124, 122, 131, 153, 132, 145, 138, 133, 151, 121, 144, 143, 138, 139, 142, 135, 137, 141, 121, 142, 128, 142, 146, 143, 131, 136, 135, 132, 136, 143, 125, 138, 128, 126, 145, 154, 140, 133, 141, 133, 135, 142, 153, 139, 138, 134, 131, 130, 128, 132, 128, 119, 137, 122, 131, 129, 141, 154, 145, 139, 139, 163, 132, 141, 145, 133, 135, 143, 123, 156, 131, 127, 129, 144, 143, 143, 141, 128, 141, 159, 141, 135, 130, 135, 128, 137, 125, 144, 138, 144, 141, 136, 138, 130, 139, 143, 134, 143, 140, 132, 147, 129, 122, 137, 155, 123, 129, 135, 130, 131, 145, 123, 144, 117, 152, 136, 123, 134, 138, 151, 127, 137, 130, 138, 140, 133, 129, 129, 138, 137, 135, 148, 136, 133, 158, 127, 156, 130, 127, 135, 127, 133, 140, 141, 148, 140, 130, 120, 147, 138, 146, 135, 141, 139, 117, 138, 134, 133, 121, 127, 130, 141, 127, 133, 144, 129, 150, 137, 134, 147, 131, 134, 136, 116, 144, 136, 144, 142, 130, 144, 143, 143, 131, 139, 122, 129, 121, 136, 133, 123, 129, 128, 131, 127, 145, 131, 159, 131, 133, 147, 129, 138, 118, 138, 129, 137, 149, 129, 138, 138, 130, 135, 145, 127, 138, 137, 151, 133, 138, 134, 141, 134, 138, 139, 129, 128, 140, 143, 128, 144, 144, 159, 117, 135, 147, 129, 126, 148, 136, 123, 156, 131, 130, 135, 121, 147, 132, 126, 155, 145, 140, 128, 144, 136, 122, 135, 129, 133, 128, 130, 121, 124, 127, 126, 135, 137, 140, 152, 143, 144, 132, 142, 113, 124, 131, 151, 138, 145, 128, 133, 143, 118, 145, 143, 145, 151, 127, 142, 127, 119, 122, 128, 132, 114, 131, 132, 147, 135, 140, 125, 135, 137, 147, 115, 135, 129, 133, 139, 138, 135, 133, 126, 153, 125, 150, 143, 128, 127, 146, 146, 161, 132, 128, 140, 121, 138, 138, 149, 123, 127, 143, 140, 134, 139, 145, 146, 146, 143, 122, 134, 134, 130, 126, 136, 143, 136, 123, 131, 132, 145, 141, 142, 141, 142, 125, 145, 136, 137, 127, 140, 119, 123, 137, 141, 129, 142, 155, 145, 120, 127, 148, 135, 153, 133, 119, 138, 136, 144, 154, 152, 135, 119, 128, 130, 152, 134, 118, 152, 130, 140, 132, 154, 142, 151, 121, 140, 121, 130, 136, 135, 132, 141, 137, 130, 131, 147, 146, 126, 132, 157, 124, 128, 124, 130, 140, 137, 136, 141, 130, 114, 136, 136, 144, 127, 139, 121, 153, 129, 137, 125, 133, 129, 138, 139, 135, 131, 139, 135, 149, 146, 120, 146, 138, 129, 139, 148, 126, 134, 138, 133, 123, 132, 142, 122, 126, 133, 110, 129, 124, 130, 151, 133, 142, 101, 133, 150, 120, 133, 136, 125, 123, 133, 149, 127, 139, 140, 142, 140, 136, 138, 139, 128, 127, 138, 124, 145, 126, 128, 124, 141, 128, 137, 139, 120, 142, 132, 152, 131, 143, 149, 129, 147, 128, 142, 162, 133, 129, 151, 128, 132, 131, 138, 130, 134, 134, 136, 141, 146, 115, 144, 136, 118, 135, 130, 132, 123, 139, 134, 131, 134, 129, 132, 135, 132, 147, 139, 147, 135, 140, 137, 150, 134, 131, 139, 130, 126, 160, 116, 130, 131, 142, 140, 142, 137, 145, 137, 138, 138, 132, 140, 170, 133, 144, 113, 130, 115, 127, 143, 140, 148, 122, 138, 141, 132, 153, 141, 136, 125, 135, 137, 135, 131, 125, 131, 137, 143, 117, 126, 109, 131, 139, 135, 135, 145, 102, 130, 140, 137, 127, 134, 135, 145, 134, 140, 150, 136, 134, 137, 128, 118, 142, 137, 140, 137, 133, 131, 146, 133, 119, 133, 139, 145, 134, 141, 136, 135, 142, 144, 143, 144, 122, 142, 130, 139, 138, 134, 138, 138, 136, 142, 137, 129, 155, 145, 138, 120, 139, 132, 140, 158, 127, 133, 140, 152, 145, 123, 134, 153, 142, 157, 137, 145, 130, 145, 131, 147, 162, 134, 147, 127, 127, 130, 131, 126, 130, 137, 149, 137, 141, 151, 128, 138, 143, 128, 139, 141, 133, 115, 155, 151, 140, 128, 134, 144, 126, 140, 135, 138, 132, 142, 142, 142, 122, 135, 139, 134, 139, 140, 166, 133, 147, 145, 120, 139, 144, 141, 140, 134, 125, 140, 130, 146, 126, 144, 127, 131, 115, 136, 128, 142, 136, 139, 150, 160, 133, 132, 135, 119, 142, 122, 129, 137, 141, 139, 134, 123, 129, 125, 133, 127, 140, 139, 127, 137, 126, 130, 125, 144, 138, 128, 155, 156, 135, 153, 140, 140, 146, 155, 138, 121, 137, 140, 123, 122, 136, 126, 138, 130, 135, 137, 135, 134, 140, 159, 130, 130, 131, 136, 127, 126, 121, 132, 124, 116, 132, 142, 138, 128, 147, 134, 135, 123, 129, 147, 133, 118, 132, 137, 129, 143, 145, 145, 134, 133, 130, 129, 138, 128, 143, 133, 156, 146, 119, 128, 128, 134, 167, 139, 139, 135, 128, 127, 139, 138, 125, 144, 140, 131, 139, 127, 132, 137, 149, 133, 126, 140, 133, 134, 145, 131, 134, 140, 133, 141, 134, 142, 149, 173, 141, 130, 129, 137, 133, 128, 144, 146, 131, 134, 143, 129, 141, 124, 136, 140, 130, 150, 135, 133, 137, 133, 137, 143, 135, 111, 133, 138, 147, 130, 125, 144, 136, 127, 142, 136, 143, 137, 136, 114, 132, 120, 136, 141, 130, 146, 136, 160, 128, 141, 151, 139, 137, 147, 133, 129, 131, 139, 143, 126, 132, 140, 134, 139, 142, 147, 136, 142, 130, 131, 153, 154, 130, 129, 141, 130, 136, 136, 144, 141, 134, 139, 137, 142, 130, 133, 142, 135, 144, 142, 147, 136, 136, 114, 136, 126, 111, 136, 152, 134, 124, 144, 133, 132, 142, 137, 145, 139, 138, 128, 148, 133, 140, 130, 131, 140, 142, 141, 135, 141, 130, 132, 148, 132, 118, 145, 145, 130, 139, 150, 135, 128, 131, 141, 141, 141, 119, 141, 132, 140, 136, 121, 145, 123, 136, 134, 164, 139, 127, 136, 124, 134, 135, 127, 137, 131, 142, 120, 139, 147, 136, 160, 139, 159, 115, 141, 133, 142, 146, 127, 143, 128, 133, 135, 152, 138, 137, 137, 130, 139, 129, 142, 146, 131, 131, 130, 139, 139, 138, 145, 140, 136, 126, 131, 143, 142, 130, 121, 140, 133, 154, 140, 138, 140, 131, 131, 136, 134, 141, 137, 129, 147, 144, 146, 144, 143, 142, 139, 142, 139, 122, 121, 128, 120, 146, 131, 137, 136, 120, 134, 151, 144, 144, 154, 128, 142, 138, 145, 133, 149, 141, 153, 127, 139, 134, 125, 141, 129, 128, 131, 132, 133, 133, 135, 141, 131, 128, 133, 114, 135, 136, 141, 127, 141, 139, 145, 132, 132, 132, 134, 123, 136, 127, 138, 110, 139, 138, 140, 151, 127, 159, 140, 134, 140, 135, 123, 141, 128, 145, 126, 142, 139, 156, 128, 128, 132, 135, 153, 137, 143, 122, 146, 147, 139, 132, 149, 136, 143, 134, 157, 128, 121, 140, 139, 141, 140, 139, 130, 142, 135, 143, 137, 127, 136, 141, 127, 140, 136, 145, 124, 142, 142, 140, 136, 130, 138, 151, 134, 142, 146, 137, 141, 142, 132, 138, 134, 129, 127, 142, 124, 149, 131, 131, 125, 144, 138, 140, 130, 140, 133, 127, 135, 132, 139, 140, 148, 135, 133, 142, 134, 143, 157, 135, 133, 149, 142, 140, 139, 147, 134, 138, 136, 134, 139, 133, 126, 127, 133, 125, 122, 136, 131, 148, 131, 148, 154, 143, 140, 145, 165, 131, 140, 143, 142, 122, 122, 153, 138, 131, 127, 135, 136, 139, 123, 143, 166, 130, 133, 127, 130, 107, 142, 125, 133, 136, 137, 145, 143, 129, 140, 142, 141, 139, 117, 130, 131, 119, 138, 152, 166, 123, 122, 134, 141, 138, 136, 137, 142, 129, 146, 131, 123, 134, 143, 116, 131, 132, 135, 137, 139, 132, 142, 136, 150, 132, 133, 134, 134, 139, 132, 134, 137, 145, 141, 134, 143, 140, 146, 137, 141, 125, 126, 134, 141, 134, 146, 142, 132, 140, 142, 135, 164, 138, 118, 154, 141, 130, 136, 139, 152, 157, 126, 133, 158, 143, 150, 134, 121, 137, 141, 133, 126, 135, 140, 129, 124, 128, 136, 122, 125, 134, 145, 136, 132, 129, 156, 127, 139, 127, 139, 125, 131, 133, 141, 129, 142, 138, 127, 127, 145, 133, 132, 123, 126, 113, 140, 126, 145, 136, 128, 120, 147, 145, 143, 136, 144, 140, 154, 126, 136, 137, 133, 128, 124, 140, 127, 151, 129, 140, 158, 126, 146, 126, 140, 140, 131, 141, 139, 133, 130, 133, 133, 135, 133, 143, 131, 135, 121, 119, 155, 131, 154, 136, 138, 144, 137, 134, 115, 131, 116, 125, 147, 134, 138, 133, 130, 138, 113, 137, 136, 128, 137, 135, 135, 147, 136, 139, 146, 141, 131, 132, 168, 128, 121, 144, 124, 146, 125, 133, 142, 125, 133, 155, 145, 140, 140, 140, 141, 152, 156, 122, 124, 128, 133, 128, 127, 135, 146, 137, 144, 148, 155, 131, 138, 137, 118, 133, 129, 136, 149, 128, 131, 120, 132, 139, 143, 157, 133, 133, 124, 124, 131, 120, 144, 145, 134, 133, 134, 143, 125, 132, 137, 133, 131, 143, 143, 132, 143, 118, 128, 153, 127, 123, 134, 131, 135, 129, 131, 138, 146, 144, 134, 131, 122, 130, 129, 124, 125, 122, 135, 128, 144, 134, 132, 145, 129, 144, 131, 126, 145, 138, 133, 123, 138, 123, 131, 147, 125, 145, 138, 137, 137, 150, 145, 144, 151, 145, 141, 130, 127, 127, 143, 148, 138, 129, 138, 140, 139, 130, 132, 125, 131, 142, 132, 139, 139, 139, 152, 136, 129, 140, 131, 132, 141, 131, 137, 135, 147, 120, 123, 134, 121, 121, 133, 131, 134, 128, 133, 118, 129, 136, 131, 140, 139, 134, 131, 142, 125, 152, 129, 124, 145, 140, 133, 143, 136, 139, 145, 130, 146, 152, 132, 139, 147, 148, 134, 139, 138, 135, 140, 135, 132, 132, 117, 130, 136, 136, 142, 143, 109, 130, 130, 139, 129, 140, 125, 134, 132, 141, 137, 125, 145, 125, 134, 158, 136, 136, 141, 132, 136, 121, 138, 140, 138, 126, 125, 131, 126, 124, 133, 129, 135, 132, 143, 153, 133, 129, 137, 125, 130, 143, 136, 134, 136, 121, 128, 136, 151, 127, 138, 138, 128, 154, 143, 148, 144, 148, 136, 134, 129, 149, 130, 123, 138, 128, 134, 132, 133, 110, 132, 127, 131, 122, 143, 122, 145, 137, 137, 149, 138, 132, 134, 126, 132, 124, 131, 132, 138, 132, 141, 142, 141, 125, 163, 136, 145, 139, 126, 144, 134, 141, 139, 130, 131, 131, 131, 125, 157, 139, 121, 140, 127, 146, 126, 121, 135, 137, 132, 126, 152, 139, 154, 153, 140, 141, 132, 134, 138, 132, 137, 129, 130, 142, 147, 134, 138, 127, 132, 134, 138, 139, 135, 143, 131, 160, 134, 124, 134, 132, 149, 145, 121, 121, 148, 127, 144, 138, 133, 144, 145, 138, 143, 137, 138, 138, 143, 126, 131, 130, 128, 134, 137, 135, 130, 138, 134, 142, 137, 132, 132, 134, 135, 134, 141, 133, 121, 143, 141, 137, 149, 132, 135, 136, 136, 133, 127, 145, 146, 122, 138, 136, 129, 140, 134, 135, 130, 137, 136, 137, 135, 138, 140, 141, 139, 139, 139, 142, 143, 136, 142, 137, 145, 136, 135, 135, 142, 127, 141, 136, 127, 133, 138, 126, 144, 135, 141, 144, 144, 135, 147, 131, 127, 137, 141, 131, 129, 134, 123, 128, 138, 136, 129, 146, 139, 131, 142, 142, 136, 148, 135, 127, 139, 126, 136, 129, 138, 140, 133, 131, 145, 134, 139, 138, 133, 141, 133, 137, 145, 138, 138, 134, 136, 130, 136, 138, 141, 135, 141, 137, 141, 143, 133, 137, 137, 137, 136, 131, 140, 147, 131, 140, 129, 143, 136, 135, 137, 131, 133, 137, 137, 132, 145, 125, 145, 139, 128, 131, 141, 141, 130, 139, 147, 134, 127, 134, 142, 142, 143, 130, 131, 146, 137, 142, 135, 133, 133, 138, 136, 142, 130, 140, 136, 144, 127, 142, 143, 132, 137, 132, 139, 142, 149, 134, 137, 142, 133, 141, 128, 138, 136, 130, 136, 142, 138, 131, 143, 142, 137, 148, 135, 139, 134, 143, 125, 141, 144, 138, 142, 127, 142, 134, 140, 139, 140, 138, 136, 127, 143, 140, 135, 141, 126, 136, 132, 143, 143, 139, 136, 141, 137, 134, 134, 142, 135, 127, 134, 129, 137, 144, 130, 137, 144, 140, 138, 140, 129, 132, 145, 135, 136, 147, 136, 138, 135, 137, 141, 132, 134, 129, 136, 139, 126, 129, 136, 137, 134, 133, 134, 125, 132, 149, 146, 133, 143, 146, 134, 132, 127, 131, 137, 136, 136, 134, 150, 128, 135, 136, 126, 137, 139, 135, 136, 131, 143, 135, 131, 139, 131, 135, 135, 137, 143, 126, 128, 143, 134, 137, 128, 139, 138, 142, 148, 140, 131, 130, 135, 133, 130, 136, 137, 148, 138, 137, 144, 139, 139, 134, 131, 137, 137, 134, 120, 134, 141, 138, 130, 137, 148, 131, 144, 144, 132, 129, 140, 143, 137, 124, 135, 135, 143, 132, 140, 135, 142, 132, 131, 142, 130, 134, 133, 139, 131, 135, 139, 134, 132, 143, 131, 138, 129, 139, 142, 139, 132, 134, 135, 129, 129, 133, 130, 127, 141, 135, 131, 132, 136, 140, 142, 137, 144, 141, 145, 140, 138, 137, 127, 143, 142, 131, 144, 144, 134, 137, 142, 148, 130, 132, 145, 135, 143, 134, 136, 125, 133, 136, 128, 133, 125, 138, 141, 125, 137, 128, 134, 139, 143, 124, 142, 134, 135, 138, 139, 145, 127, 135, 137, 143, 127, 130, 119, 131, 134, 144, 131, 151, 134, 140, 140, 136, 136, 132, 142, 137, 132, 141, 137, 144, 142, 136, 137, 133, 146, 139, 136, 138, 142, 136, 130, 142, 133, 141, 130, 141, 134, 140, 128, 131, 150, 134, 136, 121, 133, 135, 142, 136, 126, 142, 136, 138, 135, 147, 131, 143, 133, 130, 146, 135, 140, 135, 132, 133, 131, 137, 135, 135, 133, 139, 139, 142, 133, 144, 142, 134, 134, 133, 126, 139, 144, 140, 140, 132, 131, 137, 140, 132, 139, 129, 135, 125, 128, 148, 146, 123, 135, 148, 149, 132, 143, 142, 137, 141, 140, 137, 142, 138, 126, 143, 128, 134, 142, 122, 132, 141, 139, 133, 140, 133, 135, 120, 137, 150, 139, 146, 136, 131, 131, 129, 137, 151, 131, 138, 134, 137, 134, 117, 134, 136, 140, 146, 126, 133, 126, 145, 139, 137, 141, 134, 147, 140, 135, 122, 133, 128, 152, 136, 125, 129, 142, 136, 138, 134, 124, 153, 133, 138, 141, 131, 125, 142, 132, 138, 130, 129, 135, 128, 133, 142, 145, 125, 140, 148, 134, 133, 131, 139, 139, 132, 146, 141, 158, 109, 142, 146, 117, 133, 119, 146, 132, 132, 134, 134, 137, 127, 136, 128, 146, 134, 135, 140, 136, 130, 128, 146, 151, 140, 135, 142, 131, 137, 143, 135, 141, 145, 153, 142, 136, 143, 140, 143, 131, 122, 138, 137, 117, 142, 141, 147, 150, 125, 137, 141, 129, 136, 130, 132, 138, 135, 129, 137, 134, 133, 148, 132, 147, 135, 142, 138, 137, 139, 145, 126, 127, 126, 126, 141, 141, 137, 136, 125, 137, 128, 141, 145, 128, 116, 136, 136, 133, 153, 129, 146, 124, 134, 132, 132, 144, 129, 143, 128, 147, 139, 139, 136, 173, 133, 136, 128, 144, 134, 145, 132, 132, 131, 133, 132, 133, 133, 120, 141, 140, 142, 153, 136, 134, 126, 130, 134, 137, 125, 150, 118, 133, 125, 139, 139, 127, 127, 132, 124, 132, 134, 141, 138, 134, 127, 143, 144, 125, 127, 132, 133, 139, 130, 138, 137, 140, 111, 128, 125, 136, 126, 146, 130, 146, 139, 128, 136, 129, 118, 142, 146, 130, 130, 148, 120, 150, 146, 131, 130, 134, 155, 149, 163, 138, 123, 137, 127, 120, 144, 140, 131, 143, 140, 132, 131, 122, 129, 136, 134, 144, 151, 144, 130, 139, 132, 137, 156, 138, 135, 134, 130, 123, 145, 133, 143, 123, 132, 135, 153, 136, 141, 134, 139, 128, 139, 136, 123, 129, 130, 138, 131, 136, 146, 143, 137, 141, 141, 133, 133, 135, 146, 135, 148, 127, 132, 141, 158, 123, 148, 137, 139, 140, 139, 152, 128, 141, 130, 130, 127, 127, 137, 128, 127, 140, 130, 134, 136, 138, 138, 142, 137, 142, 142, 139, 138, 136, 142, 150, 135, 136, 137, 128, 154, 140, 130, 134, 121, 143, 139, 127, 133, 141, 127, 138, 141, 142, 138, 144, 144, 144, 137, 136, 136, 130, 141, 133, 134, 144, 151, 129, 133, 140, 146, 130, 133, 139, 132, 134, 139, 128, 138, 156, 146, 138, 133, 129, 136, 133, 124, 135, 128, 141, 145, 130, 135, 134, 137, 132, 141, 137, 125, 127, 141, 122, 137, 132, 134, 136, 133, 138, 139, 124, 144, 135, 136, 140, 145, 128, 127, 126, 134, 126, 143, 130, 146, 131, 127, 132, 136, 132, 136, 136, 148, 135, 139, 126, 143, 128, 132, 147, 148, 143, 137, 130, 127, 152, 137, 135, 139, 129, 133, 145, 122, 131, 134, 140, 126, 139, 132, 130, 136, 139, 140, 134, 140, 137, 133, 144, 136, 135, 137, 135, 135, 138, 128, 133, 136, 144, 132, 137, 135, 138, 139, 130, 136, 137, 136, 139, 135, 134, 127, 136, 139, 135, 143, 133, 147, 134, 139, 135, 134, 135, 136, 135, 137, 139, 135, 134, 132, 133, 133, 134, 136, 137, 120, 138, 137, 134, 137, 135, 136, 138, 134, 135, 135, 134, 138, 137, 135, 140, 144, 133, 136, 134, 130, 138, 133, 134, 135, 133, 137, 134, 135, 137, 135, 135, 137, 138, 135, 134, 135, 144, 135, 137, 129, 136, 133, 135, 137, 136, 134, 132, 137, 136, 137, 139, 136, 138, 135, 136, 117, 139, 133, 137, 136, 137, 137, 135, 137, 138, 137, 138, 163, 130, 135, 140, 133, 141, 140, 137, 136, 136, 134, 135, 136, 135, 144, 133, 141, 127, 134, 132, 136, 126, 130, 135, 130, 137, 135, 132, 133, 134, 140, 134, 134, 138, 135, 139, 116, 139, 138, 139, 136, 138, 135, 138, 138, 135, 132, 135, 138, 138, 150, 137, 135, 128, 134, 136, 136, 136, 136, 138, 136, 136, 137, 137, 128, 138, 125, 138, 132, 131, 137, 135, 135, 133, 135, 132, 136, 136, 142, 138, 133, 135, 140, 132, 137, 136, 133, 136, 136, 101, 165, 137, 134, 135, 142, 135, 141, 136, 126, 135, 137, 140, 133, 140, 134, 137, 140, 137, 138, 137, 148, 137, 135, 136, 136, 135, 142, 135, 137, 137, 132, 136, 135, 137, 134, 139, 136, 138, 138, 138, 138, 135, 135, 139, 133, 134, 138, 136, 137, 133, 138, 135, 134, 135, 139, 137, 136, 137, 138, 135, 130, 135, 120, 139, 133, 138, 136, 135, 142, 138, 138, 137, 132, 135, 138, 137, 136, 128, 128, 137, 133, 135, 137, 135, 138, 135, 138, 135, 138, 134, 136, 134, 136, 136, 135, 137, 135, 136, 133, 133, 135, 138, 138, 136, 137, 135, 136, 137, 136, 140, 135, 147, 118, 135, 111, 138, 134, 138, 138, 141, 135, 136, 137, 134, 140, 138, 134, 148, 137, 153, 136, 138, 134, 134, 136, 127, 140, 134, 136, 134, 138, 120, 135, 133, 136, 138, 153, 138, 136, 140, 143, 134, 134, 157, 134, 135, 138, 139, 136, 129, 133, 137, 139, 153, 135, 136, 136, 134, 115, 138, 136, 135, 134, 136, 136, 140, 133, 136, 138, 139, 136, 135, 135, 158, 137, 134, 137, 133, 142, 138, 136, 138, 135, 136, 131, 135, 136, 130, 134, 137, 132, 135, 139, 133, 135, 136, 137, 135, 140, 136, 137, 138, 137, 137, 137, 138, 135, 135, 137, 136, 136, 134, 137, 136, 139, 135, 116, 130, 136, 147, 141, 140, 156, 137, 138, 135, 134, 137, 140, 137, 137, 132, 137, 136, 142, 135, 139, 128, 138, 134, 138, 136, 135, 139, 134, 138, 136, 140, 137, 140, 131, 134, 135, 139, 135, 138, 137, 135, 133, 136, 135, 136, 138, 136, 137, 136, 139, 137, 136, 135, 132, 138, 140, 135, 142, 134, 139, 129, 139, 136, 136, 134, 136, 142, 133, 133, 138, 134, 135, 132, 137, 137, 139, 136, 133, 127, 134, 139, 136, 145, 127, 107, 143, 148, 132, 130, 137, 131, 128, 142, 149, 132, 134, 141, 131, 137, 142, 131, 141, 125, 141, 136, 142, 135, 135, 129, 136, 120, 137, 134, 131, 137, 146, 119, 131, 124, 133, 142, 126, 143, 126, 136, 133, 134, 142, 132, 136, 142, 138, 130, 124, 139, 163, 138, 133, 125, 116, 137, 132, 138, 129, 133, 120, 125, 133, 140, 168, 141, 140, 115, 130, 137, 136, 145, 124, 136, 138, 128, 140, 165, 131, 138, 132, 133, 140, 126, 131, 122, 137, 141, 141, 129, 126, 127, 134, 133, 136, 139, 150, 129, 129, 138, 133, 136, 136, 125, 137, 131, 135, 138, 135, 165, 146, 131, 145, 138, 120, 128, 126, 144, 138, 142, 137, 133, 142, 139, 144, 140, 148, 137, 153, 135, 147, 136, 140, 130, 148, 139, 129, 140, 120, 129, 134, 134, 126, 129, 137, 130, 135, 143, 145, 141, 128, 142, 137, 127, 141, 130, 133, 149, 139, 132, 138, 139, 139, 145, 156, 136, 125, 127, 140, 125, 136, 126, 129, 136, 141, 131, 148, 129, 145, 137, 132, 117, 134, 133, 125, 142, 138, 142, 112, 136, 143, 128, 144, 138, 135, 134, 137, 134, 148, 146, 136, 141, 135, 130, 129, 146, 134, 138, 147, 128, 132, 149, 148, 130, 130, 127, 148, 122, 119, 136, 131, 121, 137, 138, 141, 138, 143, 138, 124, 141, 128, 144, 130, 128, 142, 144, 138, 142, 131, 124, 122, 137, 133, 121, 141, 135, 120, 152, 160, 143, 135, 138, 139, 130, 137, 142, 135, 138, 128, 130, 135, 134, 148, 140, 122, 129, 124, 147, 128, 144, 121, 138, 140, 132, 145, 124, 137, 137, 129, 142, 138, 136, 139, 127, 136, 129, 140, 142, 125, 129, 138, 130, 129, 136, 132, 137, 135, 149, 143, 127, 142, 135, 141, 126, 139, 120, 130, 145, 148, 150, 126, 145, 138, 142, 142, 130, 153, 138, 132, 148, 147, 136, 155, 132, 147, 130, 135, 145, 145, 145, 128, 138, 129, 133, 128, 136, 125, 130, 119, 123, 138, 139, 126, 135, 130, 145, 133, 127, 140, 143, 136, 131, 133, 146, 105, 138, 130, 133, 136, 136, 140, 134, 137, 151, 146, 134, 137, 146, 135, 143, 127, 129, 125, 124, 138, 134, 154, 139, 135, 137, 131, 138, 125, 136, 139, 130, 134, 136, 134, 129, 148, 135, 142, 137, 140, 121, 131, 133, 141, 126, 128, 139, 144, 127, 138, 136, 123, 129, 152, 148, 137, 128, 131, 157, 143, 142, 128, 139, 138, 135, 125, 152, 119, 141, 134, 132, 133, 134, 132, 131, 151, 130, 140, 131, 124, 126, 185, 133, 136, 123, 131, 137, 120, 137, 141, 135, 130, 147, 137, 127, 140, 142, 118, 141, 131, 146, 142, 149, 135, 147, 142, 147, 140, 144, 126, 132, 139, 142, 140, 132, 127, 135, 150, 149, 142, 143, 152, 136, 134, 116, 129, 124, 138, 133, 139, 130, 128, 128, 134, 150, 142, 140, 131, 118, 146, 128, 130, 139, 129, 133, 145, 126, 119, 122, 118, 141, 131, 138, 149, 151, 140, 145, 122, 134, 138, 116, 146, 135, 131, 127, 130, 135, 132, 118, 126, 148, 180, 135, 134, 124, 140, 144, 131, 138, 147, 135, 144, 100, 145, 143, 146, 130, 158, 136, 126, 135, 147, 125, 132, 126, 121, 142, 133, 130, 134, 126, 127, 144, 118, 120, 126, 137, 134, 145, 129, 152, 138, 146, 107, 134, 172, 130, 153, 132, 137, 121, 141, 152, 138, 133, 134, 138, 131, 155, 122, 134, 143, 130, 161, 114, 130, 124, 121, 150, 152, 127, 149, 150, 136, 129, 131, 146, 139, 139, 122, 131, 132, 168, 140, 126, 126, 149, 138, 133, 116, 134, 140, 135, 139, 139, 130, 143, 160, 128, 136, 144, 119, 145, 161, 135, 133, 117, 144, 130, 131, 139, 123, 120, 137, 151, 145, 159, 134, 143, 127, 122, 128, 124, 140, 146, 141, 137, 132, 144, 148, 148, 137, 142, 131, 134, 155, 133, 129, 158, 138, 138, 126, 144, 135, 140, 144, 136, 137, 149, 128, 131, 123, 147, 124, 116, 133, 108, 143, 149, 138, 131, 125, 128, 124, 125, 151, 131, 123, 135, 114, 137, 135, 137, 128, 134, 134, 122, 122, 138, 122, 152, 122, 154, 133, 121, 142, 133, 100, 121, 133, 125, 129, 137, 134, 137, 136, 139, 144, 144, 137, 127, 147, 147, 120, 140, 139, 144, 134, 124, 129, 142, 131, 138, 142, 138, 127, 115, 132, 135, 126, 152, 117, 148, 134, 133, 133, 136, 135, 143, 134, 143, 127, 125, 145, 148, 158, 146, 160, 128, 134, 128, 165, 135, 128, 143, 144, 147, 138, 131, 145, 128, 145, 138, 117, 130, 123, 148, 121, 118, 147, 132, 122, 139, 138, 135, 126, 122, 132, 135, 127, 133, 150, 140, 137, 143, 142, 135, 145, 143, 139, 138, 116, 137, 127, 117, 143, 115, 154, 135, 132, 157, 149, 144, 143, 150, 145, 138, 151, 143, 139, 132, 132, 139, 118, 152, 133, 135, 138, 140, 128, 140, 135, 125, 142, 131, 142, 129, 154, 133, 127, 139, 148, 138, 122, 137, 144, 134, 140, 123, 148, 134, 125, 149, 128, 128, 136, 153, 143, 138, 114, 135, 138, 138, 136, 141, 120, 128, 131, 144, 129, 127, 151, 132, 134, 127, 109, 143, 147, 143, 144, 129, 135, 135, 138, 144, 98, 124, 139, 133, 160, 119, 133, 132, 153, 138, 140, 122, 130, 135, 127, 125, 123, 137, 138, 132, 164, 127, 148, 136, 122, 123, 123, 137, 134, 126, 153, 156, 134, 140, 123, 138, 145, 145, 149, 162, 135, 142, 134, 121, 126, 135, 114, 151, 117, 141, 154, 121, 136, 147, 136, 124, 130, 132, 136, 131, 129, 140, 149, 136, 143, 126, 150, 139, 140, 139, 135, 129, 148, 158, 127, 135, 119, 149, 139, 138, 130, 143, 165, 150, 137, 148, 122, 121, 139, 141, 139, 158, 138, 139, 134, 139, 144, 143, 131, 137, 140, 147, 137, 139, 151, 137, 147, 127, 113, 156, 113, 128, 130, 110, 134, 131, 124, 135, 138, 137, 136, 130, 140, 141, 110, 137, 126, 145, 125, 132, 130, 123, 142, 122, 141, 146, 135, 141, 129, 135, 134, 150, 154, 134, 134, 140, 141, 140, 138, 114, 144, 139, 139, 143, 122, 142, 142, 131, 135, 146, 140, 138, 127, 141, 116, 132, 121, 133, 130, 135, 129, 139, 144, 135, 121, 119, 138, 156, 126, 143, 140, 141, 130, 133, 146, 135, 136, 144, 138, 129, 128, 142, 125, 128, 130, 125, 132, 124, 125, 129, 129, 187, 122, 112, 133, 148, 127, 133, 135, 129, 142, 131, 132, 138, 134, 129, 133, 151, 137, 130, 138, 147, 142, 147, 131, 130, 128, 136, 137, 138, 137, 172, 137, 129, 150, 133, 134, 123, 138, 138, 134, 115, 132, 135, 135, 133, 118, 137, 161, 145, 124, 139, 132, 137, 131, 152, 144, 146, 131, 132, 131, 132, 142, 139, 141, 142, 145, 125, 145, 143, 132, 141, 133, 147, 118, 138, 132, 144, 151, 143, 134, 142, 129, 133, 139, 150, 107, 134, 134, 133, 134, 137, 149, 135, 133, 138, 134, 129, 135, 136, 140, 136, 136, 139, 134, 129, 129, 127, 139, 143, 133, 148, 141, 135, 121, 130, 134, 128, 125, 129, 138, 129, 126, 124, 160, 133, 137, 134, 150, 129, 136, 135, 137, 137, 128, 127, 118, 129, 139, 131, 131, 136, 133, 131, 138, 141, 133, 121, 127, 133, 136, 128, 120, 134, 124, 139, 145, 144, 139, 134, 143, 138, 147, 134, 136, 138, 136, 128, 131, 136, 137, 136, 131, 151, 129, 144, 131, 139, 139, 113, 136, 144, 146, 156, 123, 136, 128, 140, 140, 137, 141, 143, 128, 130, 126, 142, 138, 139, 135, 140, 137, 159, 143, 148, 143, 135, 144, 134, 147, 149, 132, 133, 129, 136, 137, 156, 130, 127, 150, 128, 132, 164, 126, 154, 145, 133, 149, 134, 140, 147, 157, 128, 131, 143, 128, 140, 137, 137, 142, 139, 143, 135, 161, 145, 141, 141, 132, 146, 141, 130, 152, 144, 153, 149, 146, 112, 148, 151, 122, 122, 156, 134, 147, 139, 144, 135, 151, 140, 140, 128, 146, 136, 120, 134, 125, 131, 141, 129, 139, 137, 131, 133, 141, 145, 126, 120, 137, 131, 143, 135, 150, 142, 133, 136, 142, 144, 139, 136, 135, 167, 141, 146, 131, 138, 131, 128, 138, 134, 145, 130, 113, 136, 131, 134, 134, 136, 140, 133, 141, 134, 128, 128, 130, 136, 151, 137, 142, 140, 143, 133, 128, 134, 133, 145, 142, 133, 120, 146, 159, 128, 132, 129, 141, 131, 124, 130, 140, 144, 126, 146, 152, 140, 139, 130, 142, 114, 128, 126, 123, 130, 129, 136, 130, 127, 136, 150, 142, 142, 131, 110, 124, 145, 140, 134, 133, 136, 143, 149, 140, 150, 136, 136, 144, 128, 129, 128, 141, 144, 146, 146, 147, 125, 121, 142, 137, 134, 129, 138, 139, 141, 136, 137, 136, 130, 129, 138, 144, 134, 137, 131, 144, 137, 137, 145, 141, 140, 128, 125, 142, 140, 137, 127, 129, 147, 138, 145, 135, 146, 152, 124, 136, 125, 148, 135, 152, 137, 129, 141, 133, 115, 135, 134, 144, 124, 127, 137, 141, 133, 147, 130, 137, 136, 140, 132, 163, 124, 131, 136, 120, 118, 134, 170, 137, 129, 134, 135, 139, 128, 141, 134, 128, 127, 139, 131, 136, 137, 139, 137, 137, 147, 126, 129, 148, 146, 132, 137, 115, 142, 140, 144, 138, 128, 144, 142, 132, 142, 152, 138, 122, 134, 134, 138, 138, 140, 133, 130, 131, 120, 132, 122, 138, 124, 130, 148, 133, 139, 138, 113, 148, 129, 145, 135, 142, 133, 150, 136, 140, 127, 135, 147, 133, 137, 130, 131, 118, 138, 141, 136, 129, 140, 144, 127, 144, 136, 137, 135, 132, 111, 133, 126, 138, 140, 143, 134, 125, 137, 143, 141, 127, 129, 132, 134, 130, 141, 133, 130, 133, 129, 133, 131, 133, 144, 140, 127, 134, 126, 138, 144, 133, 140, 141, 132, 121, 131, 125, 138, 134, 137, 136, 136, 145, 137, 125, 141, 143, 144, 129, 141, 132, 138, 131, 136, 130, 128, 142, 140, 133, 137, 134, 127, 143, 130, 138, 152, 128, 123, 138, 141, 144, 148, 144, 134, 138, 141, 139, 151, 140, 135, 135, 140, 139, 126, 137, 136, 131, 124, 144, 140, 130, 133, 124, 136, 161, 143, 124, 140, 133, 123, 104, 153, 133, 111, 127, 140, 137, 144, 136, 140, 135, 121, 137, 128, 139, 135, 142, 132, 144, 127, 121, 128, 138, 132, 140, 140, 135, 137, 138, 139, 131, 135, 135, 138, 136, 143, 143, 130, 142, 146, 141, 133, 135, 131, 131, 126, 130, 134, 135, 133, 122, 122, 136, 139, 141, 120, 154, 125, 139, 147, 148, 134, 139, 148, 134, 144, 158, 139, 139, 131, 138, 137, 118, 129, 132, 136, 131, 136, 134, 134, 126, 153, 145, 129, 136, 114, 132, 144, 137, 138, 157, 134, 138, 139, 133, 136, 138, 137, 149, 146, 159, 127, 138, 136, 130, 130, 142, 121, 124, 146, 128, 138, 138, 133, 136, 140, 139, 140, 128, 141, 149, 145, 139, 115, 149, 131, 141, 142, 141, 131, 150, 131, 134, 144, 140, 144, 125, 138, 137, 136, 148, 134, 131, 123, 127, 133, 135, 144, 136, 140, 148, 134, 144, 150, 139, 135, 124, 128, 147, 129, 137, 143, 131, 102, 128, 139, 134, 135, 142, 139, 136, 143, 129, 149, 137, 133, 137, 127, 121, 135, 124, 132, 143, 141, 135, 128, 123, 131, 130, 125, 143, 151, 134, 148, 133, 126, 130, 140, 132, 129, 137, 143, 113, 136, 133, 138, 142, 130, 121, 170, 131, 141, 127, 119, 122, 132, 118, 135, 122, 123, 119, 147, 143, 142, 135, 136, 145, 138, 144, 124, 141, 129, 137, 140, 152, 149, 138, 147, 127, 143, 138, 134, 117, 129, 134, 134, 132, 137, 131, 137, 144, 134, 136, 137, 133, 136, 142, 133, 134, 121, 129, 135, 122, 140, 147, 139, 137, 143, 129, 137, 139, 143, 141, 143, 134, 139, 158, 143, 153, 127, 134, 142, 134, 149, 142, 139, 128, 140, 153, 138, 126, 132, 135, 145, 141, 118, 154, 138, 131, 131, 126, 123, 116, 138, 144, 139, 136, 143, 140, 127, 128, 146, 139, 161, 130, 122, 132, 132, 140, 131, 134, 144, 135, 131, 137, 127, 131, 132, 126, 148, 138, 147, 152, 135, 126, 133, 135, 131, 130, 119, 124, 137, 118, 122, 106, 137, 141, 128, 124, 140, 128, 128, 126, 134, 116, 132, 146, 137, 152, 131, 125, 125, 134, 135, 144, 128, 135, 124, 147, 145, 132, 125, 138, 125, 126, 138, 131, 134, 137, 139, 141, 130, 135, 143, 134, 127, 140, 138, 135, 131, 136, 150, 142, 127, 134, 128, 135, 153, 146, 133, 133, 115, 121, 139, 135, 135, 133, 139, 122, 147, 141, 137, 130, 137, 147, 148, 139, 122, 144, 137, 143, 122, 139, 125, 150, 134, 145, 126, 131, 143, 140, 125, 131, 134, 132, 136, 138, 130, 153, 145, 139, 148, 138, 128, 117, 123, 136, 132, 132, 131, 136, 138, 135, 148, 132, 140, 134, 143, 143, 136, 131, 124, 120, 125, 128, 146, 136, 145, 154, 125, 134, 152, 141, 137, 132, 138, 144, 140, 125, 140, 129, 149, 116, 128, 143, 142, 129, 124, 134, 134, 129, 131, 122, 129, 141, 132, 127, 145, 140, 141, 128, 145, 135, 147, 156, 164, 145, 133, 128, 137, 141, 131, 120, 130, 135, 138, 134, 142, 133, 138, 134, 124, 137, 144, 125, 148, 135, 119, 132, 131, 119, 134, 133, 131, 133, 137, 144, 140, 126, 136, 122, 136, 143, 138, 137, 152, 152, 132, 135, 130, 133, 155, 140, 136, 138, 144, 129, 134, 126, 143, 127, 134, 144, 130, 147, 135, 141, 144, 127, 145, 137, 136, 147, 138, 136, 137, 128, 150, 133, 133, 132, 146, 148, 134, 130, 132, 136, 138, 124, 138, 135, 126, 121, 135, 131, 135, 142, 144, 123, 139, 131, 124, 137, 142, 125, 129, 124, 128, 127, 133, 129, 130, 124, 143, 142, 120, 122, 123, 139, 148, 138, 143, 144, 132, 128, 131, 127, 125, 140, 140, 154, 128, 145, 123, 134, 126, 145, 140, 138, 126, 148, 135, 130, 135, 139, 126, 139, 125, 127, 121, 146, 146, 145, 142, 137, 130, 133, 116, 135, 143, 133, 126, 132, 126, 136, 139, 134, 132, 118, 148, 139, 123, 132, 141, 145, 141, 140, 141, 137, 139, 133, 153, 137, 131, 129, 135, 149, 142, 137, 152, 138, 143, 129, 135, 130, 143, 141, 135, 135, 137, 135, 125, 146, 138, 130, 138, 144, 139, 121, 142, 128, 140, 155, 133, 134, 145, 118, 116, 117, 123, 137, 131, 130, 151, 132, 141, 125, 132, 145, 136, 132, 134, 146, 140, 132, 145, 151, 132, 142, 139, 133, 148, 129, 125, 140, 146, 123, 145, 152, 148, 138, 136, 137, 140, 144, 133, 131, 138, 139, 133, 142, 145, 142, 140, 133, 136, 130, 144, 143, 129, 150, 138, 152, 139, 136, 136, 140, 119, 153, 137, 128, 116, 136, 136, 151, 134, 141, 152, 128, 115, 116, 141, 132, 140, 130, 147, 123, 138, 128, 131, 126, 123, 122, 151, 142, 142, 143, 133, 146, 121, 135, 128, 144, 141, 135, 134, 134, 133, 132, 135, 135, 134, 135, 135, 134, 135, 137, 146, 133, 136, 136, 135, 137, 150, 139, 141, 135, 137, 140, 139, 127, 144, 138, 133, 116, 138, 135, 135, 135, 137, 130, 132, 130, 138, 140, 133, 133, 137, 134, 136, 135, 135, 136, 133, 163, 133, 133, 133, 136, 135, 135, 139, 135, 138, 137, 139, 136, 136, 139, 135, 138, 170, 136, 135, 114, 140, 133, 138, 135, 131, 136, 137, 139, 132, 140, 130, 139, 136, 136, 138, 137, 142, 135, 133, 132, 141, 126, 137, 134, 134, 130, 134, 136, 133, 137, 140, 133, 140, 137, 135, 123, 138, 137, 134, 136, 137, 131, 134, 134, 134, 139, 136, 137, 149, 138, 125, 134, 134, 136, 137, 139, 137, 139, 132, 134, 136, 119, 142, 124, 121, 137, 127, 139, 141, 133, 139, 152, 139, 137, 135, 135, 118, 138, 135, 136, 134, 133, 141, 124, 139, 137, 123, 138, 144, 140, 137, 134, 136, 132, 137, 133, 123, 131, 132, 136, 137, 132, 140, 137, 139, 156, 139, 136, 134, 138, 131, 136, 133, 153, 135, 138, 139, 136, 137, 142, 137, 136, 133, 111, 134, 135, 134, 137, 136, 134, 138, 138, 132, 131, 128, 139, 136, 141, 131, 134, 136, 137, 138, 139, 135, 121, 135, 140, 137, 135, 134, 141, 136, 138, 136, 135, 137, 133, 134, 134, 134, 139, 130, 108, 136, 136, 130, 141, 135, 136, 126, 137, 135, 134, 137, 137, 134, 137, 137, 134, 138, 141, 137, 136, 141, 132, 134, 129, 136, 139, 137, 137, 141, 137, 137, 135, 135, 130, 135, 141, 136, 132, 134, 137, 136, 140, 136, 140, 134, 173, 134, 135, 133, 138, 152, 132, 138, 143, 139, 136, 138, 132, 135, 141, 140, 136, 137, 132, 135, 140, 134, 135, 137, 142, 134, 158, 132, 134, 129, 139, 138, 128, 136, 140, 135, 134, 137, 133, 154, 140, 131, 124, 135, 139, 138, 131, 137, 137, 141, 139, 136, 123, 135, 136, 159, 137, 105, 140, 137, 132, 137, 134, 143, 134, 135, 138, 133, 135, 129, 137, 138, 137, 136, 156, 136, 140, 134, 130, 133, 135, 136, 147, 135, 136, 130, 140, 138, 137, 134, 131, 125, 138, 132, 135, 139, 132, 139, 138, 137, 138, 142, 138, 132, 136, 137, 138, 149, 140, 138, 137, 141, 131, 139, 131, 135, 153, 136, 136, 138, 140, 136, 136, 137, 136, 112, 139, 135, 133, 135, 131, 139, 136, 134, 134, 136, 137, 138, 140, 133, 135, 135, 141, 137, 137, 124, 139, 135, 134, 132, 139, 138, 134, 133, 135, 135, 133, 129, 137, 138, 144, 133, 136, 135, 137, 139, 143, 139, 136, 136, 138, 136, 139, 137, 137, 144, 138, 139, 136, 139, 137, 127, 139, 136, 135, 133, 140, 135, 144, 138, 134, 137, 135, 138, 138, 139, 135, 135, 137, 130, 134, 110, 132, 133, 140, 139, 132, 139, 144, 134, 137, 133, 136, 137, 133, 134, 119, 140, 131, 138, 136, 137, 137, 134, 124, 141, 138, 135, 134, 141, 134, 138, 127, 135, 133, 143, 138, 134, 136, 124, 117, 122, 125, 119, 123, 140, 132, 147, 127, 134, 130, 142, 133, 135, 138, 130, 145, 136, 148, 156, 130, 145, 112, 139, 140, 148, 133, 131, 133, 136, 138, 132, 127, 126, 142, 126, 125, 143, 131, 133, 140, 130, 124, 133, 137, 129, 135, 122, 126, 135, 131, 121, 137, 130, 133, 149, 131, 156, 171, 121, 128, 128, 145, 143, 134, 131, 146, 146, 134, 145, 137, 134, 130, 159, 142, 135, 142, 124, 132, 124, 144, 160, 149, 144, 137, 143, 138, 128, 138, 141, 134, 137, 135, 132, 119, 172, 132, 127, 144, 131, 130, 124, 134, 122, 135, 127, 140, 123, 141, 131, 150, 135, 132, 125, 127, 121, 133, 132, 123, 142, 137, 132, 138, 132, 135, 133, 136, 128, 147, 164, 147, 108, 141, 124, 145, 136, 139, 130, 132, 127, 127, 154, 144, 166, 137, 141, 145, 139, 119, 133, 135, 122, 133, 116, 136, 134, 146, 130, 130, 136, 101, 167, 137, 143, 153, 123, 108, 126, 129, 122, 154, 130, 140, 139, 143, 135, 125, 149, 131, 139, 134, 131, 131, 142, 140, 132, 134, 134, 140, 142, 139, 132, 132, 122, 139, 101, 111, 142, 144, 161, 103, 146, 142, 144, 138, 134, 127, 144, 143, 146, 126, 134, 140, 135, 143, 134, 144, 130, 137, 135, 117, 133, 136, 135, 127, 127, 135, 133, 151, 132, 132, 144, 143, 144, 127, 128, 136, 133, 136, 144, 146, 133, 132, 147, 140, 129, 132, 137, 133, 142, 123, 136, 133, 122, 132, 133, 117, 131, 124, 154, 136, 120, 136, 132, 134, 128, 132, 144, 136, 150, 135, 105, 139, 125, 141, 148, 141, 127, 138, 133, 119, 149, 145, 128, 135, 145, 144, 148, 134, 128, 137, 126, 132, 121, 134, 124, 136, 146, 133, 133, 135, 131, 129, 133, 132, 136, 132, 130, 131, 131, 131, 142, 129, 138, 130, 158, 126, 147, 119, 145, 129, 125, 138, 140, 141, 136, 133, 142, 131, 137, 146, 151, 140, 157, 149, 130, 127, 148, 145, 126, 145, 112, 144, 135, 125, 136, 149, 132, 120, 144, 133, 142, 130, 196, 124, 133, 119, 139, 110, 139, 125, 141, 134, 124, 138, 127, 142, 131, 102, 130, 126, 147, 131, 124, 134, 129, 144, 145, 124, 126, 143, 148, 156, 116, 151, 129, 119, 136, 127, 111, 138, 146, 139, 152, 124, 133, 129, 125, 117, 133, 129, 149, 135, 135, 126, 135, 126, 133, 137, 162, 121, 127, 109, 148, 145, 151, 115, 161, 136, 136, 128, 141, 121, 123, 124, 130, 142, 134, 118, 134, 136, 137, 140, 146, 130, 129, 143, 149, 144, 153, 132, 150, 138, 133, 147, 136, 131, 141, 129, 133, 140, 142, 138, 135, 130, 127, 142, 124, 138, 130, 147, 122, 128, 115, 144, 135, 132, 120, 133, 116, 133, 121, 133, 132, 141, 124, 146, 152, 138, 135, 109, 136, 163, 130, 139, 129, 137, 174, 134, 128, 140, 113, 125, 146, 153, 143, 139, 129, 137, 123, 152, 134, 126, 126, 133, 147, 133, 142, 139, 142, 144, 138, 144, 131, 139, 131, 134, 132, 134, 149, 138, 148, 138, 137, 130, 139, 135, 146, 148, 128, 136, 119, 126, 174, 145, 137, 135, 133, 145, 135, 138, 145, 134, 135, 134, 124, 129, 128, 139, 136, 133, 136, 141, 130, 134, 145, 143, 129, 146, 132, 132, 130, 124, 132, 136, 124, 132, 130, 135, 136, 135, 135, 133, 132, 139, 142, 124, 131, 143, 116, 151, 142, 133, 126, 134, 133, 130, 136, 131, 131, 132, 138, 143, 134, 137, 111, 138, 134, 130, 142, 128, 140, 134, 128, 124, 152, 128, 134, 147, 117, 135, 129, 124, 146, 145, 130, 127, 142, 123, 150, 137, 118, 128, 146, 138, 132, 138, 143, 130, 135, 134, 137, 136, 130, 140, 128, 136, 127, 129, 141, 143, 140, 138, 139, 148, 134, 142, 126, 130, 129, 134, 157, 131, 146, 134, 138, 121, 122, 133, 126, 136, 142, 130, 128, 139, 131, 139, 135, 137, 138, 146, 148, 144, 119, 135, 134, 126, 131, 135, 137, 143, 147, 147, 122, 135, 141, 137, 140, 135, 136, 121, 118, 123, 126, 155, 142, 128, 146, 137, 150, 125, 139, 130, 126, 129, 133, 151, 122, 135, 124, 134, 132, 131, 140, 144, 130, 134, 120, 132, 125, 138, 133, 141, 124, 139, 147, 154, 136, 131, 140, 143, 130, 139, 144, 133, 121, 122, 135, 136, 154, 125, 139, 131, 134, 142, 140, 135, 130, 137, 153, 144, 142, 138, 139, 127, 123, 131, 126, 136, 137, 128, 132, 129, 137, 134, 140, 141, 117, 154, 134, 135, 119, 128, 130, 143, 136, 130, 127, 129, 130, 139, 158, 136, 128, 135, 136, 125, 142, 138, 144, 126, 136, 148, 135, 143, 140, 144, 142, 136, 154, 135, 144, 142, 135, 150, 131, 135, 129, 141, 160, 132, 143, 138, 129, 153, 123, 146, 140, 124, 125, 128, 129, 129, 135, 134, 133, 141, 140, 125, 131, 132, 143, 135, 154, 134, 136, 116, 135, 138, 137, 131, 130, 143, 148, 134, 145, 140, 137, 139, 134, 120, 136, 128, 142, 129, 132, 136, 123, 134, 146, 125, 130, 139, 135, 132, 133, 150, 141, 133, 132, 130, 144, 128, 131, 141, 130, 144, 143, 144, 155, 123, 130, 130, 140, 139, 129, 137, 132, 153, 142, 130, 145, 129, 133, 129, 147, 148, 131, 131, 155, 137, 143, 133, 133, 133, 133, 138, 151, 142, 132, 134, 132, 150, 128, 135, 134, 126, 143, 131, 143, 143, 154, 136, 127, 133, 132, 136, 138, 150, 135, 143, 133, 152, 155, 127, 134, 131, 141, 143, 147, 141, 131, 138, 136, 144, 145, 155, 145, 149, 135, 127, 132, 132, 144, 131, 128, 135, 142, 129, 134, 135, 129, 144, 115, 147, 146, 124, 133, 142, 146, 152, 140, 137, 133, 141, 133, 155, 131, 155, 124, 131, 128, 132, 139, 133, 130, 135, 133, 143, 140, 128, 151, 132, 151, 128, 165, 129, 153, 122, 132, 133, 136, 127, 139, 124, 115, 145, 137, 136, 125, 137, 142, 129, 145, 145, 151, 132, 140, 131, 140, 131, 140, 139, 149, 129, 129, 127, 131, 143, 121, 144, 156, 146, 139, 134, 141, 134, 129, 140, 148, 144, 127, 133, 145, 123, 147, 131, 125, 142, 140, 161, 139, 128, 127, 153, 144, 140, 141, 126, 126, 120, 121, 138, 149, 116, 141, 124, 137, 134, 153, 136, 124, 132, 137, 130, 153, 124, 122, 142, 135, 123, 127, 138, 136, 139, 135, 133, 132, 134, 150, 121, 155, 145, 125, 152, 119, 131, 139, 145, 129, 126, 113, 127, 145, 132, 128, 127, 135, 128, 166, 127, 130, 128, 141, 145, 126, 132, 122, 141, 150, 133, 151, 135, 125, 139, 129, 131, 134, 127, 139, 132, 129, 136, 137, 133, 128, 140, 130, 134, 130, 137, 136, 139, 134, 133, 133, 135, 136, 133, 143, 149, 128, 123, 132, 136, 137, 135, 127, 129, 125, 131, 145, 148, 142, 128, 124, 151, 139, 147, 125, 128, 151, 152, 132, 125, 137, 136, 139, 140, 137, 138, 138, 135, 133, 136, 146, 151, 156, 126, 148, 137, 135, 129, 142, 136, 130, 144, 131, 131, 130, 126, 132, 130, 139, 129, 137, 139, 129, 129, 139, 130, 141, 147, 132, 155, 145, 137, 140, 140, 138, 127, 139, 122, 125, 132, 144, 141, 117, 144, 132, 142, 122, 148, 144, 124, 143, 131, 130, 143, 132, 141, 130, 140, 144, 131, 122, 142, 142, 142, 129, 128, 134, 140, 144, 128, 131, 138, 140, 142, 137, 127, 129, 142, 122, 123, 134, 126, 137, 126, 138, 157, 135, 131, 130, 143, 133, 158, 125, 132, 129, 145, 142, 143, 130, 135, 139, 138, 135, 137, 135, 140, 126, 123, 131, 123, 134, 123, 130, 122, 133, 133, 118, 131, 137, 119, 134, 139, 136, 128, 148, 157, 123, 137, 147, 131, 137, 141, 140, 129, 121, 120, 135, 124, 144, 141, 136, 128, 140, 148, 127, 128, 131, 140, 133, 135, 130, 133, 143, 125, 126, 128, 126, 135, 121, 132, 140, 143, 124, 131, 150, 123, 150, 134, 122, 137, 123, 126, 134, 144, 127, 134, 134, 145, 127, 121, 133, 125, 141, 129, 147, 131, 137, 146, 127, 136, 149, 153, 124, 128, 128, 153, 142, 142, 118, 142, 135, 129, 132, 142, 138, 134, 132, 136, 129, 128, 125, 136, 131, 157, 127, 111, 131, 150, 145, 129, 135, 136, 137, 134, 130, 137, 140, 133, 148, 132, 127, 138, 129, 130, 128, 126, 129, 136, 134, 152, 132, 156, 127, 124, 150, 132, 146, 132, 133, 129, 138, 128, 132, 123, 132, 123, 155, 142, 137, 146, 154, 125, 138, 144, 142, 135, 139, 140, 138, 135, 154, 126, 130, 137, 133, 142, 143, 126, 145, 145, 130, 124, 126, 124, 130, 126, 143, 145, 137, 151, 138, 133, 130, 126, 135, 143, 125, 135, 135, 137, 143, 132, 126, 127, 133, 143, 118, 143, 132, 127, 133, 149, 134, 132, 137, 132, 138, 128, 135, 147, 126, 126, 149, 144, 135, 138, 140, 136, 143, 134, 150, 147, 143, 122, 138, 121, 131, 157, 134, 130, 143, 152, 140, 134, 130, 121, 115, 128, 123, 138, 134, 135, 127, 135, 144, 139, 139, 128, 135, 146, 136, 160, 138, 137, 129, 131, 129, 136, 129, 139, 140, 122, 140, 143, 128, 135, 133, 140, 135, 123, 131, 135, 126, 126, 135, 128, 127, 145, 126, 120, 149, 119, 141, 141, 154, 141, 109, 137, 132, 137, 138, 136, 125, 138, 151, 133, 130, 132, 149, 128, 136, 127, 142, 133, 136, 134, 130, 141, 140, 146, 139, 139, 132, 141, 145, 133, 154, 140, 133, 146, 144, 145, 140, 136, 140, 134, 141, 134, 137, 134, 139, 135, 132, 125, 128, 149, 128, 131, 137, 139, 140, 132, 138, 134, 135, 136, 135, 125, 139, 130, 162, 134, 133, 124, 133, 119, 142, 139, 145, 138, 128, 143, 144, 145, 148, 133, 144, 136, 143, 142, 137, 138, 140, 131, 138, 130, 129, 136, 150, 133, 139, 139, 144, 133, 130, 148, 134, 139, 128, 135, 139, 139, 132, 150, 115, 129, 135, 144, 135, 133, 136, 129, 139, 156, 132, 151, 133, 137, 148, 130, 125, 139, 138, 123, 142, 141, 145, 128, 142, 147, 128, 145, 144, 140, 127, 140, 135, 128, 130, 133, 132, 125, 120, 126, 141, 138, 135, 144, 144, 118, 138, 139, 134, 137, 145, 133, 134, 123, 127, 140, 136, 141, 141, 141, 142, 142, 136, 136, 124, 125, 139, 140, 135, 142, 142, 124, 138, 146, 135, 146, 137, 135, 132, 139, 147, 139, 130, 149, 151, 94, 148, 137, 135, 126, 141, 142, 126, 144, 133, 134, 137, 128, 140, 139, 146, 139, 133, 130, 151, 140, 140, 139, 146, 136, 152, 130, 142, 130, 122, 126, 133, 135, 152, 139, 142, 129, 130, 136, 133, 132, 122, 133, 139, 125, 158, 133, 134, 146, 120, 148, 144, 139, 152, 143, 146, 141, 134, 154, 145, 138, 133, 142, 123, 135, 141, 132, 146, 142, 148, 133, 129, 117, 140, 136, 128, 137, 121, 137, 128, 138, 141, 146, 145, 147, 149, 136, 113, 135, 136, 130, 134, 160, 127, 132, 128, 126, 137, 137, 152, 137, 146, 147, 137, 143, 124, 114, 138, 143, 138, 145, 139, 130, 138, 134, 133, 138, 134, 138, 129, 144, 134, 119, 120, 144, 134, 146, 142, 136, 148, 138, 157, 133, 141, 140, 134, 139, 127, 136, 129, 136, 141, 138, 145, 137, 137, 140, 141, 137, 102, 142, 132, 138, 136, 119, 145, 137, 165, 138, 138, 141, 139, 137, 131, 142, 125, 138, 132, 135, 136, 141, 135, 135, 149, 140, 128, 135, 126, 125, 129, 128, 130, 135, 133, 136, 134, 133, 135, 138, 141, 127, 140, 128, 152, 127, 147, 165, 130, 139, 148, 128, 142, 136, 122, 137, 133, 156, 133, 136, 132, 134, 121, 139, 133, 160, 127, 131, 138, 150, 127, 135, 124, 142, 127, 138, 134, 133, 126, 129, 140, 142, 137, 130, 146, 127, 136, 120, 144, 131, 137, 153, 135, 141, 143, 127, 156, 139, 162, 144, 133, 130, 132, 126, 146, 141, 134, 121, 147, 135, 123, 146, 139, 129, 134, 146, 143, 147, 142, 142, 136, 157, 132, 132, 130, 134, 142, 139, 138, 133, 141, 133, 133, 141, 129, 143, 118, 129, 134, 134, 125, 120, 133, 132, 139, 142, 123, 132, 139, 133, 139, 134, 133, 135, 139, 131, 138, 142, 134, 134, 133, 136, 135, 135, 134, 144, 146, 99, 126, 142, 150, 131, 127, 148, 134, 150, 131, 143, 134, 139, 145, 142, 139, 132, 147, 141, 141, 134, 133, 127, 145, 129, 136, 127, 125, 123, 139, 135, 143, 133, 129, 131, 130, 140, 136, 131, 141, 132, 146, 132, 140, 147, 134, 139, 131, 149, 128, 137, 140, 134, 140, 135, 117, 137, 129, 144, 126, 138, 135, 128, 141, 137, 151, 138, 149, 132, 134, 120, 132, 138, 128, 133, 147, 146, 133, 128, 127, 141, 136, 137, 130, 140, 131, 141, 141, 130, 136, 133, 144, 135, 138, 135, 146, 128, 140, 143, 128, 161, 135, 135, 138, 135, 134, 132, 143, 139, 134, 122, 142, 134, 131, 129, 137, 150, 139, 128, 134, 146, 138, 147, 138, 143, 152, 121, 139, 136, 134, 126, 143, 131, 138, 137, 141, 137, 139, 134, 141, 127, 126, 137, 125, 123, 137, 125, 150, 152, 131, 120, 146, 114, 139, 158, 126, 129, 132, 138, 128, 132, 137, 139, 131, 143, 136, 134, 133, 133, 143, 130, 140, 131, 122, 133, 137, 122, 142, 136, 128, 133, 156, 144, 152, 136, 133, 136, 129, 136, 133, 123, 139, 141, 148, 139, 140, 142, 125, 140, 154, 147, 141, 131, 132, 144, 147, 130, 139, 143, 147, 121, 152, 141, 140, 140, 138, 139, 144, 126, 125, 135, 136, 143, 138, 144, 139, 135, 133, 135, 157, 133, 145, 138, 141, 130, 130, 131, 136, 140, 132, 131, 120, 140, 113, 140, 129, 142, 138, 142, 113, 154, 101, 131, 48, 149, 127, 149, 150, 142, 142, 153, 135, 132, 120, 144, 145, 148, 143, 151, 130, 149, 161, 137, 142, 132, 106, 137, 70, 137, 133, 141, 150, 135, 128, 130, 138, 191, 107, 137, 133, 134, 134, 126, 143, 129, 130, 136, 129, 142, 136, 129, 134, 131, 130, 129, 134, 134, 136, 141, 143, 148, 131, 145, 140, 142, 135, 135, 140, 132, 120, 138, 142, 141, 140, 136, 141, 135, 136, 131, 137, 133, 134, 169, 120, 99, 145, 138, 135, 126, 140, 149, 137, 139, 136, 136, 124, 132, 132, 135, 136, 150, 130, 135, 135, 140, 146, 141, 132, 127, 134, 139, 129, 122, 137, 137, 141, 135, 125, 134, 130, 141, 136, 137, 144, 129, 140, 130, 133, 126, 123, 137, 142, 145, 140, 130, 140, 142, 127, 141, 155, 135, 134, 138, 138, 120, 136, 139, 143, 149, 139, 126, 150, 138, 140, 115, 136, 138, 131, 120, 142, 139, 138, 158, 146, 127, 128, 133, 141, 132, 133, 136, 133, 123, 149, 136, 132, 135, 127, 136, 144, 141, 150, 136, 127, 134, 134, 124, 141, 144, 119, 131, 138, 134, 133, 135, 127, 125, 136, 131, 129, 138, 157, 143, 141, 135, 134, 148, 100, 146, 151, 133, 138, 146, 138, 128, 130, 133, 129, 118, 119, 149, 133, 130, 126, 141, 146, 123, 131, 135, 130, 128, 136, 121, 131, 144, 135, 131, 128, 137, 129, 151, 136, 131, 130, 139, 124, 139, 131, 125, 132, 115, 139, 124, 150, 129, 136, 133, 144, 131, 125, 114, 131, 147, 144, 110, 135, 167, 146, 127, 135, 149, 133, 133, 130, 138, 134, 138, 145, 128, 131, 127, 160, 129, 129, 138, 116, 133, 132, 127, 140, 120, 147, 124, 148, 133, 130, 128, 156, 142, 127, 116, 135, 132, 145, 127, 135, 143, 148, 139, 137, 140, 145, 119, 147, 134, 128, 134, 156, 129, 135, 125, 138, 135, 147, 136, 127, 130, 137, 121, 114, 138, 139, 141, 138, 133, 135, 144, 134, 128, 131, 129, 158, 139, 132, 146, 126, 136, 142, 123, 135, 126, 130, 124, 128, 141, 140, 135, 152, 136, 127, 151, 145, 130, 126, 135, 141, 133, 126, 149, 130, 143, 149, 124, 127, 126, 134, 147, 144, 152, 143, 144, 130, 136, 131, 128, 147, 151, 145, 127, 148, 145, 137, 124, 138, 137, 147, 146, 139, 143, 139, 151, 146, 135, 126, 128, 136, 127, 150, 137, 141, 128, 129, 146, 135, 137, 145, 129, 147, 145, 127, 133, 151, 126, 130, 126, 134, 128, 147, 124, 130, 130, 137, 141, 134, 133, 142, 132, 131, 127, 135, 131, 135, 126, 145, 133, 122, 133, 137, 136, 110, 166, 141, 130, 125, 138, 163, 139, 147, 127, 128, 135, 134, 117, 131, 137, 130, 139, 154, 154, 136, 134, 145, 156, 143, 133, 133, 131, 145, 128, 151, 139, 127, 127, 146, 136, 137, 140, 156, 128, 131, 124, 151, 124, 137, 129, 126, 144, 129, 130, 142, 144, 146, 131, 135, 146, 151, 127, 137, 130, 138, 128, 130, 143, 140, 121, 153, 128, 140, 134, 138, 145, 128, 141, 137, 131, 138, 137, 134, 148, 143, 164, 139, 140, 141, 146, 143, 128, 135, 145, 130, 149, 136, 130, 115, 133, 132, 158, 116, 134, 150, 129, 122, 126, 133, 142, 131, 127, 140, 139, 135, 131, 142, 137, 143, 140, 137, 129, 129, 153, 130, 138, 134, 115, 131, 142, 135, 138, 122, 143, 121, 141, 143, 158, 131, 125, 155, 127, 131, 131, 154, 130, 123, 142, 129, 137, 139, 132, 133, 104, 139, 141, 124, 129, 137, 129, 135, 140, 127, 136, 136, 134, 135, 139, 126, 134, 131, 151, 138, 148, 136, 124, 130, 128, 110, 140, 143, 131, 138, 134, 145, 123, 133, 114, 137, 138, 131, 134, 130, 135, 142, 138, 140, 140, 141, 126, 141, 128, 127, 141, 137, 136, 134, 144, 140, 150, 133, 151, 132, 132, 132, 134, 123, 134, 144, 138, 142, 142, 135, 131, 137, 131, 117, 148, 136, 143, 127, 133, 133, 135, 129, 154, 129, 137, 137, 126, 133, 131, 156, 136, 113, 137, 124, 130, 129, 132, 155, 119, 133, 150, 131, 134, 154, 127, 120, 127, 132, 141, 133, 142, 145, 115, 119, 144, 127, 140, 129, 126, 152, 134, 151, 116, 123, 148, 135, 127, 124, 142, 135, 154, 144, 134, 134, 167, 130, 129, 134, 135, 118, 150, 134, 138, 131, 136, 131, 124, 141, 146, 139, 136, 134, 129, 149, 142, 137, 143, 134, 124, 147, 119, 135, 142, 131, 125, 132, 154, 140, 149, 133, 132, 142, 179, 144, 124, 128, 126, 141, 154, 144, 132, 140, 119, 152, 117, 136, 136, 140, 131, 136, 132, 139, 125, 127, 113, 143, 148, 129, 135, 165, 144, 150, 137, 130, 121, 147, 143, 135, 150, 123, 156, 129, 135, 134, 137, 129, 122, 134, 138, 129, 121, 160, 145, 118, 123, 164, 132, 131, 138, 143, 135, 136, 140, 156, 130, 144, 164, 147, 141, 151, 115, 141, 133, 134, 146, 130, 145, 134, 135, 126, 129, 121, 136, 147, 127, 145, 134, 149, 134, 129, 139, 130, 152, 137, 136, 136, 141, 137, 125, 153, 140, 140, 144, 133, 128, 140, 137, 136, 135, 143, 123, 131, 151, 141, 144, 133, 128, 129, 136, 130, 137, 136, 137, 143, 155, 138, 127, 135, 151, 140, 144, 159, 127, 130, 153, 152, 122, 127, 154, 154, 116, 148, 135, 147, 146, 156, 132, 133, 151, 144, 129, 143, 147, 115, 128, 129, 135, 158, 129, 142, 184, 131, 158, 132, 130, 134, 124, 137, 114, 110, 126, 144, 138, 130, 141, 104, 140, 142, 125, 147, 133, 131, 132, 124, 132, 142, 132, 148, 136, 143, 113, 131, 132, 130, 158, 135, 139, 131, 138, 140, 133, 137, 131, 139, 131, 141, 134, 139, 137, 130, 129, 136, 129, 131, 128, 128, 141, 125, 144, 133, 140, 135, 132, 135, 147, 130, 143, 142, 129, 141, 142, 141, 132, 139, 137, 147, 129, 133, 128, 132, 137, 141, 150, 132, 151, 138, 134, 140, 133, 142, 124, 136, 130, 131, 126, 126, 139, 133, 156, 140, 132, 126, 142, 134, 128, 139, 130, 142, 137, 129, 124, 134, 135, 139, 134, 137, 125, 144, 140, 135, 127, 153, 154, 145, 130, 135, 138, 139, 139, 143, 138, 133, 138, 126, 132, 134, 136, 112, 135, 124, 137, 141, 135, 140, 133, 155, 136, 138, 133, 139, 145, 122, 127, 137, 134, 136, 139, 129, 137, 144, 126, 136, 135, 144, 144, 146, 146, 127, 133, 120, 136, 129, 133, 149, 147, 135, 144, 128, 137, 137, 136, 133, 146, 132, 151, 144, 143, 144, 136, 126, 162, 137, 127, 124, 130, 119, 143, 139, 133, 140, 137, 118, 115, 144, 135, 156, 132, 128, 134, 137, 146, 140, 143, 138, 149, 130, 129, 149, 142, 126, 127, 139, 145, 128, 136, 137, 124, 155, 135, 123, 133, 141, 135, 143, 132, 139, 135, 143, 137, 135, 134, 148, 144, 156, 137, 133, 136, 125, 142, 134, 136, 136, 157, 142, 140, 149, 133, 123, 142, 131, 131, 125, 140, 124, 142, 136, 149, 148, 139, 141, 135, 131, 143, 135, 128, 132, 114, 132, 139, 153, 129, 153, 147, 128, 141, 143, 98, 163, 124, 146, 140, 142, 137, 139, 164, 144, 141, 142, 150, 137, 136, 118, 135, 131, 132, 141, 133, 141, 141, 126, 136, 137, 121, 145, 133, 130, 137, 152, 139, 128, 128, 140, 130, 128, 137, 155, 153, 134, 139, 115, 136, 134, 127, 129, 138, 148, 156, 128, 134, 146, 124, 133, 142, 135, 131, 144, 124, 127, 119, 134, 120, 125, 124, 141, 129, 148, 132, 132, 144, 142, 142, 111, 134, 130, 139, 139, 141, 140, 148, 137, 133, 127, 132, 114, 122, 128, 144, 125, 142, 154, 142, 136, 135, 127, 141, 138, 125, 98, 147, 133, 134, 143, 150, 128, 161, 142, 139, 143, 123, 124, 141, 129, 126, 141, 132, 134, 151, 119, 134, 132, 127, 126, 137, 125, 142, 138, 127, 126, 145, 133, 136, 129, 146, 153, 143, 142, 144, 136, 133, 127, 137, 133, 132, 139, 150, 140, 138, 126, 138, 148, 141, 136, 134, 134, 136, 129, 139, 128, 142, 139, 135, 147, 141, 139, 131, 129, 120, 121, 137, 141, 144, 130, 130, 149, 143, 144, 138, 130, 130, 137, 150, 137, 140, 142, 137, 144, 144, 140, 134, 144, 145, 125, 128, 145, 125, 108, 129, 123, 140, 144, 131, 144, 150, 128, 153, 136, 120, 139, 142, 143, 138, 135, 118, 123, 150, 155, 126, 130, 132, 136, 153, 131, 142, 138, 130, 143, 125, 137, 137, 135, 128, 104, 122, 148, 134, 127, 122, 126, 138, 131, 139, 135, 134, 145, 145, 139, 141, 129, 141, 133, 132, 129, 137, 143, 113, 129, 145, 128, 135, 133, 144, 145, 135, 143, 118, 128, 132, 133, 137, 130, 116, 122, 143, 144, 121, 143, 136, 141, 134, 131, 134, 146, 141, 137, 135, 142, 135, 150, 149, 129, 135, 144, 131, 129, 148, 124, 142, 140, 140, 134, 115, 122, 134, 132, 132, 150, 121, 126, 134, 157, 129, 127, 128, 128, 140, 140, 160, 108, 152, 148, 116, 138, 131, 135, 133, 122, 158, 134, 119, 135, 139, 117, 126, 124, 140, 144, 127, 139, 133, 140, 140, 125, 133, 142, 129, 143, 121, 147, 146, 129, 141, 139, 138, 134, 144, 147, 119, 144, 135, 138, 136, 145, 136, 164, 148, 151, 120, 139, 133, 113, 136, 132, 126, 128, 138, 144, 140, 129, 132, 141, 134, 147, 132, 131, 145, 130, 128, 143, 136, 145, 137, 135, 135, 129, 125, 130, 140, 147, 123, 152, 147, 134, 120, 131, 130, 144, 112, 123, 144, 133, 149, 134, 132, 153, 136, 135, 129, 137, 138, 137, 138, 141, 138, 129, 154, 145, 125, 135, 152, 127, 127, 126, 147, 136, 134, 140, 133, 137, 144, 135, 125, 125, 131, 132, 129, 118, 144, 155, 132, 150, 143, 139, 121, 141, 129, 124, 141, 144, 130, 126, 145, 132, 145, 149, 132, 135, 144, 129, 122, 128, 117, 123, 135, 137, 129, 130, 135, 136, 158, 132, 138, 154, 148, 133, 143, 153, 139, 113, 150, 130, 138, 146, 127, 128, 128, 132, 120, 140, 147, 135, 136, 136, 141, 140, 141, 132, 144, 130, 148, 153, 141, 138, 129, 119, 132, 104, 142, 132, 113, 138, 116, 129, 129, 105, 138, 145, 123, 146, 127, 122, 127, 138, 132, 126, 125, 147, 138, 130, 138, 144, 143, 130, 147, 129, 195, 128, 143, 139, 120, 144, 130, 120, 142, 131, 140, 137, 142, 174, 127, 145, 130, 136, 152, 132, 128, 148, 134, 142, 147, 144, 148, 128, 127, 133, 137, 132, 148, 130, 141, 144, 146, 134, 119, 134, 144, 143, 128, 124, 124, 136, 128, 128, 138, 138, 133, 124, 164, 147, 138, 143, 132, 128, 143, 126, 158, 126, 135, 132, 139, 139, 126, 141, 145, 126, 125, 137, 138, 123, 144, 130, 142, 130, 162, 133, 137, 147, 139, 139, 133, 132, 149, 152, 145, 115, 145, 134, 113, 134, 138, 143, 134, 135, 131, 132, 120, 140, 126, 137, 136, 142, 141, 119, 132, 129, 143, 138, 134, 120, 141, 136, 144, 135, 140, 132, 125, 129, 138, 116, 133, 112, 138, 125, 149, 124, 128, 134, 129, 135, 132, 132, 132, 137, 131, 128, 148, 139, 134, 135, 135, 152, 138, 128, 125, 119, 139, 134, 140, 150, 124, 116, 134, 133, 127, 147, 140, 149, 179, 143, 136, 136, 155, 139, 179, 139, 136, 168, 138, 140, 142, 129, 145, 151, 123, 136, 96, 155, 118, 138, 127, 145, 136, 142, 135, 134, 133, 140, 119, 130, 106, 142, 136, 147, 109, 137, 124, 137, 131, 128, 134, 132, 137, 130, 130, 134, 151, 138, 133, 136, 142, 135, 134, 155, 134, 136, 156, 137, 130, 143, 135, 145, 130, 144, 125, 132, 131, 137, 138, 134, 125, 143, 131, 136, 138, 141, 136, 147, 132, 134, 132, 145, 135, 129, 134, 129, 149, 129, 138, 136, 136, 133, 200, 127, 139, 133, 134, 138, 128, 154, 117, 92, 122, 136, 124, 143, 141, 129, 151, 128, 128, 136, 138, 129, 132, 127, 137, 138, 138, 136, 135, 145, 147, 135, 131, 137, 128, 149, 111, 145, 137, 133, 130, 130, 118, 143, 136, 130, 132, 134, 124, 118, 127, 133, 106, 146, 140, 133, 138, 123, 128, 133, 131, 139, 127, 133, 141, 129, 133, 136, 145, 122, 132, 137, 146, 131, 130, 134, 127, 138, 155, 126, 148, 146, 143, 133, 85, 146, 125, 136, 146, 126, 127, 172, 135, 139, 136, 132, 139, 133, 135, 143, 127, 127, 141, 132, 119, 132, 161, 136, 126, 142, 126, 150, 137, 126, 135, 124, 127, 120, 131, 128, 132, 133, 140, 140, 127, 144, 151, 151, 140, 146, 127, 134, 135, 134, 131, 109, 140, 138, 145, 138, 132, 115, 142, 145, 132, 142, 136, 148, 139, 139, 129, 154, 137, 123, 153, 134, 140, 138, 134, 124, 126, 140, 141, 142, 154, 133, 137, 121, 139, 142, 164, 135, 140, 131, 133, 139, 115, 143, 133, 148, 122, 124, 123, 142, 142, 76, 126, 141, 135, 132, 143, 123, 127, 140, 136, 139, 143, 140, 141, 135, 135, 134, 124, 131, 139, 131, 150, 133, 139, 134, 141, 158, 151, 132, 138, 133, 128, 128, 151, 129, 134, 134, 133, 135, 127, 101, 159, 144, 135, 155, 134, 143, 134, 129, 133, 151, 141, 122, 139, 124, 122, 124, 133, 140, 137, 139, 140, 119, 134, 142, 137, 124, 135, 131, 124, 133, 139, 142, 124, 116, 127, 136, 128, 125, 137, 137, 137, 146, 129, 127, 151, 132, 140, 133, 139, 136, 140, 133, 132, 128, 120, 130, 138, 132, 133, 130, 142, 125, 142, 133, 141, 132, 133, 140, 134, 144, 123, 149, 143, 128, 145, 137, 154, 131, 133, 138, 140, 133, 127, 132, 139, 137, 133, 148, 135, 126, 135, 125, 121, 130, 119, 149, 126, 140, 137, 145, 133, 130, 137, 140, 135, 129, 132, 130, 134, 134, 125, 148, 129, 130, 132, 152, 140, 138, 119, 140, 138, 129, 130, 128, 134, 130, 132, 140, 142, 134, 149, 133, 138, 167, 135, 132, 123, 141, 127, 142, 121, 143, 130, 135, 135, 135, 137, 139, 126, 135, 138, 138, 142, 142, 132, 136, 150, 140, 140, 132, 140, 137, 160, 140, 210, 132, 136, 145, 144, 137, 123, 134, 127, 145, 128, 142, 141, 128, 150, 120, 138, 144, 143, 126, 135, 137, 147, 136, 142, 130, 131, 126, 128, 126, 137, 123, 141, 162, 132, 140, 135, 139, 154, 139, 128, 121, 128, 124, 135, 141, 139, 131, 130, 129, 131, 124, 129, 135, 127, 138, 132, 134, 143, 128, 139, 139, 134, 132, 130, 138, 136, 137, 129, 132, 142, 147, 133, 134, 159, 124, 145, 128, 133, 135, 134, 136, 119, 148, 149, 145, 141, 140, 136, 143, 135, 147, 130, 137, 131, 141, 140, 139, 156, 151, 151, 148, 165, 151, 136, 94, 137, 146, 147, 133, 126, 150, 137, 137, 139, 138, 131, 144, 126, 137, 126, 138, 135, 130, 129, 128, 133, 138, 144, 146, 124, 122, 147, 131, 134, 134, 127, 151, 127, 139, 141, 132, 130, 111, 135, 132, 142, 92, 146, 138, 143, 141, 130, 137, 120, 138, 156, 137, 126, 114, 137, 141, 118, 139, 138, 147, 121, 129, 152, 126, 127, 139, 146, 127, 135, 129, 139, 132, 132, 136, 139, 137, 126, 140, 141, 161, 127, 124, 137, 140, 147, 133, 124, 132, 140, 134, 133, 131, 126, 123, 132, 136, 130, 144, 134, 141, 128, 138, 144, 135, 146, 134, 147, 131, 124, 146, 130, 136, 132, 145, 139, 145, 127, 132, 143, 150, 140, 144, 143, 142, 140, 131, 126, 142, 141, 125, 117, 138, 128, 141, 148, 131, 134, 128, 116, 152, 139, 144, 139, 146, 141, 137, 141, 136, 137, 114, 138, 132, 132, 131, 129, 133, 138, 138, 158, 138, 137, 126, 150, 130, 137, 128, 146, 147, 132, 136, 150, 139, 138, 157, 145, 143, 152, 133, 150, 131, 134, 146, 127, 131, 137, 150, 135, 130, 128, 100, 123, 148, 121, 136, 138, 127, 135, 151, 125, 137, 138, 133, 128, 142, 135, 131, 145, 139, 139, 148, 126, 142, 147, 146, 132, 146, 142, 132, 119, 127, 124, 122, 129, 139, 130, 125, 142, 126, 134, 134, 131, 136, 132, 120, 128, 135, 138, 118, 141, 135, 128, 123, 142, 142, 132, 131, 135, 123, 150, 183, 138, 143, 122, 136, 155, 143, 138, 125, 138, 137, 133, 144, 133, 143, 147, 156, 145, 117, 148, 139, 140, 139, 145, 130, 130, 133, 131, 130, 127, 139, 131, 129, 144, 139, 134, 154, 131, 129, 130, 135, 137, 148, 141, 133, 131, 129, 149, 138, 131, 126, 139, 146, 134, 134, 147, 139, 122, 140, 124, 149, 135, 138, 139, 157, 131, 134, 128, 151, 133, 122, 153, 141, 140, 141, 130, 132, 132, 129, 138, 131, 125, 139, 142, 124, 149, 148, 134, 139, 138, 157, 122, 140, 130, 134, 133, 135, 132, 144, 126, 134, 135, 139, 145, 136, 139, 148, 132, 130, 136, 131, 139, 131, 127, 150, 143, 120, 128, 128, 137, 140, 127, 123, 130, 149, 128, 138, 120, 122, 139, 126, 149, 124, 138, 135, 135, 154, 151, 135, 150, 137, 143, 129, 127, 145, 140, 129, 145, 138, 134, 143, 129, 150, 159, 114, 144, 116, 136, 137, 140, 130, 147, 130, 137, 128, 129, 125, 141, 139, 124, 142, 136, 133, 140, 128, 143, 127, 122, 146, 148, 139, 132, 127, 151, 129, 131, 135, 139, 133, 141, 129, 133, 126, 131, 146, 116, 138, 131, 142, 126, 134, 126, 148, 135, 132, 145, 154, 154, 141, 114, 131, 142, 132, 129, 139, 138, 137, 141, 134, 137, 142, 140, 135, 126, 139, 143, 120, 138, 141, 113, 136, 152, 122, 164, 126, 189, 127, 140, 135, 131, 150, 126, 141, 150, 131, 122, 151, 134, 124, 122, 125, 139, 127, 161, 128, 135, 135, 136, 145, 133, 144, 134, 138, 136, 143, 136, 135, 139, 135, 142, 146, 139, 150, 146, 129, 130, 136, 129, 112, 122, 121, 139, 139, 119, 133, 141, 137, 126, 153, 145, 157, 138, 134, 144, 126, 128, 138, 131, 144, 148, 132, 146, 151, 149, 133, 134, 141, 163, 128, 118, 160, 122, 126, 146, 155, 125, 136, 120, 142, 119, 135, 140, 134, 134, 146, 151, 138, 129, 131, 136, 147, 131, 146, 133, 129, 131, 134, 139, 137, 137, 134, 156, 152, 97, 141, 145, 130, 134, 135, 139, 119, 141, 137, 128, 146, 143, 135, 129, 138, 138, 124, 133, 134, 141, 131, 142, 149, 130, 152, 134, 122, 160, 123, 127, 137, 134, 122, 129, 132, 132, 139, 140, 135, 137, 136, 132, 152, 134, 144, 146, 142, 141, 136, 153, 137, 140, 141, 142, 132, 126, 131, 138, 138, 146, 154, 145, 130, 136, 164, 135, 136, 124, 122, 144, 132, 139, 133, 121, 138, 148, 141, 133, 141, 131, 140, 132, 133, 146, 136, 129, 131, 123, 134, 135, 134, 144, 138, 131, 123, 134, 150, 120, 147, 135, 143, 109, 127, 134, 142, 133, 130, 141, 113, 127, 141, 134, 147, 144, 146, 117, 145, 139, 138, 133, 133, 136, 123, 134, 145, 131, 136, 128, 136, 130, 141, 138, 129, 125, 134, 158, 136, 154, 116, 127, 135, 137, 133, 129, 123, 132, 116, 134, 128, 139, 145, 134, 114, 118, 133, 144, 135, 130, 148, 141, 133, 142, 141, 124, 130, 140, 169, 120, 130, 145, 147, 131, 161, 121, 156, 135, 154, 122, 137, 139, 147, 146, 137, 140, 137, 140, 134, 134, 141, 143, 133, 128, 116, 142, 149, 144, 134, 130, 126, 149, 142, 151, 138, 143, 135, 142, 128, 131, 151, 130, 123, 150, 150, 131, 127, 140, 139, 136, 128, 127, 108, 137, 136, 155, 140, 158, 128, 137, 142, 136, 139, 135, 130, 141, 132, 136, 130, 133, 123, 126, 141, 126, 123, 131, 134, 132, 144, 128, 140, 146, 130, 147, 135, 129, 133, 142, 127, 136, 134, 142, 118, 121, 142, 137, 139, 145, 134, 144, 136, 138, 136, 163, 129, 138, 150, 135, 138, 136, 137, 132, 154, 140, 137, 138, 136, 156, 127, 147, 134, 137, 127, 134, 129, 117, 136, 131, 128, 141, 132, 156, 141, 145, 114, 143, 145, 137, 138, 141, 140, 142, 142, 145, 143, 137, 135, 147, 135, 140, 128, 119, 125, 138, 135, 132, 134, 139, 131, 138, 133, 134, 137, 142, 126, 139, 142, 129, 150, 131, 139, 153, 143, 137, 148, 139, 127, 144, 144, 134, 152, 139, 138, 132, 135, 140, 109, 142, 115, 136, 131, 137, 138, 142, 168, 152, 138, 116, 129, 139, 140, 146, 120, 137, 140, 115, 151, 132, 151, 136, 141, 143, 133, 137, 127, 123, 132, 154, 152, 142, 139, 130, 125, 128, 137, 135, 121, 142, 146, 133, 132, 130, 140, 134, 119, 126, 139, 132, 135, 125, 139, 134, 125, 139, 128, 135, 145, 124, 142, 134, 127, 123, 139, 149, 134, 147, 127, 139, 134, 129, 140, 134, 138, 119, 149, 134, 126, 125, 117, 139, 138, 140, 132, 145, 131, 136, 140, 132, 129, 138, 134, 142, 134, 139, 134, 144, 136, 138, 122, 138, 135, 131, 132, 137, 134, 127, 141, 143, 133, 128, 138, 128, 128, 149, 138, 125, 128, 142, 129, 146, 134, 149, 128, 136, 134, 132, 129, 136, 137, 140, 145, 125, 137, 140, 124, 130, 141, 133, 140, 132, 129, 152, 127, 129, 130, 136, 127, 136, 139, 137, 133, 137, 131, 142, 136, 135, 139, 125, 128, 130, 128, 128, 133, 146, 141, 135, 144, 99, 139, 142, 130, 146, 136, 147, 127, 132, 124, 137, 133, 144, 139, 135, 140, 140, 130, 144, 143, 151, 132, 126, 141, 146, 137, 144, 133, 150, 132, 135, 122, 132, 128, 136, 135, 132, 144, 126, 136, 122, 143, 137, 147, 135, 136, 138, 118, 138, 144, 139, 138, 140, 133, 130, 140, 143, 130, 120, 140, 140, 137, 136, 122, 128, 137, 123, 136, 141, 141, 119, 140, 143, 143, 141, 142, 139, 154, 141, 134, 135, 136, 122, 147, 159, 134, 143, 118, 131, 136, 147, 137, 147, 137, 134, 143, 135, 149, 131, 132, 139, 137, 155, 135, 130, 147, 133, 147, 132, 139, 147, 135, 149, 129, 132, 121, 133, 127, 136, 143, 141, 128, 127, 140, 129, 131, 130, 127, 139, 118, 145, 159, 152, 131, 137, 126, 142, 145, 137, 130, 128, 147, 148, 138, 129, 138, 143, 124, 138, 128, 155, 132, 140, 141, 149, 139, 125, 140, 146, 134, 137, 137, 119, 113, 126, 122, 140, 133, 129, 130, 139, 144, 132, 133, 140, 140, 135, 144, 144, 138, 133, 138, 124, 133, 132, 130, 130, 135, 133, 142, 133, 139, 131, 142, 134, 137, 138, 132, 138, 139, 121, 132, 134, 132, 143, 138, 133, 131, 135, 147, 136, 134, 130, 120, 135, 136, 138, 132, 131, 131, 138, 137, 132, 142, 135, 129, 136, 135, 132, 136, 147, 125, 136, 124, 137, 136, 135, 122, 128, 140, 139, 136, 136, 140, 125, 140, 136, 131, 133, 129, 134, 134, 138, 129, 142, 132, 143, 131, 135, 135, 127, 126, 132, 127, 132, 134, 139, 137, 136, 140, 144, 131, 130, 139, 137, 135, 133, 132, 133, 132, 129, 136, 134, 146, 131, 125, 131, 132, 137, 133, 143, 141, 129, 147, 129, 140, 134, 143, 139, 135, 142, 144, 126, 138, 133, 134, 134, 136, 138, 136, 132, 139, 135, 135, 130, 140, 136, 139, 140, 142, 134, 139, 130, 139, 123, 127, 127, 136, 136, 131, 146, 144, 139, 143, 131, 131, 134, 141, 134, 129, 143, 133, 137, 137, 140, 139, 140, 135, 136, 128, 143, 127, 142, 140, 137, 135, 129, 124, 148, 141, 136, 137, 119, 133, 139, 142, 124, 135, 131, 136, 130, 138, 137, 132, 134, 136, 142, 133, 138, 136, 132, 133, 141, 139, 152, 130, 136, 135, 138, 138, 132, 135, 141, 127, 136, 144, 143, 131, 129, 143, 135, 134, 135, 131, 136, 134, 134, 140, 139, 134, 136, 130, 129, 128, 141, 134, 139, 134, 136, 138, 146, 137, 133, 129, 134, 133, 145, 143, 146, 129, 144, 147, 148, 133, 142, 126, 137, 134, 134, 126, 133, 137, 128, 125, 129, 140, 135, 144, 146, 142, 127, 140, 143, 138, 132, 139, 123, 138, 136, 133, 129, 138, 138, 141, 144, 131, 141, 130, 127, 136, 138, 134, 135, 126, 140, 128, 143, 137, 138, 153, 128, 137, 139, 139, 138, 139, 137, 133, 134, 127, 137, 144, 135, 135, 136, 136, 137, 131, 137, 125, 122, 140, 148, 140, 138, 129, 143, 142, 147, 132, 129, 135, 137, 138, 125, 142, 133, 138, 130, 135, 136, 125, 136, 135, 134, 135, 149, 134, 141, 135, 140, 145, 128, 143, 131, 134, 139, 123, 135, 128, 137, 137, 132, 134, 136, 146, 137, 137, 143, 138, 136, 134, 132, 133, 133, 135, 143, 133, 137, 130, 139, 135, 131, 135, 134, 135, 135, 138, 136, 123, 136, 135, 140, 131, 137, 139, 140, 131, 133, 135, 132, 147, 127, 137, 129, 131, 121, 133, 133, 141, 132, 139, 139, 136, 122, 132, 123, 142, 134, 135, 127, 123, 134, 131, 144, 132, 130, 129, 140, 137, 138, 137, 140, 141, 135, 128, 134, 122, 136, 135, 131, 149, 152, 147, 147, 139, 130, 140, 132, 136, 132, 130, 140, 135, 138, 132, 130, 124, 136, 140, 136, 152, 134, 128, 135, 134, 134, 132, 135, 138, 140, 139, 138, 137, 132, 128, 136, 125, 125, 143, 127, 144, 123, 131, 140, 132, 137, 134, 140, 128, 135, 135, 133, 131, 126, 137, 129, 124, 150, 144, 155, 154, 142, 139, 131, 119, 132, 124, 134, 126, 128, 151, 132, 151, 165, 146, 124, 158, 136, 144, 133, 150, 122, 147, 147, 138, 141, 143, 132, 129, 129, 136, 168, 140, 154, 118, 133, 134, 123, 147, 137, 150, 137, 135, 131, 127, 138, 133, 126, 125, 136, 149, 159, 134, 143, 145, 123, 128, 140, 137, 141, 143, 150, 137, 137, 127, 146, 138, 142, 144, 138, 142, 134, 143, 128, 137, 119, 124, 141, 129, 138, 128, 125, 141, 117, 134, 130, 139, 126, 156, 142, 151, 130, 137, 142, 131, 140, 145, 145, 134, 130, 128, 134, 143, 144, 118, 144, 143, 142, 144, 142, 144, 132, 130, 140, 128, 117, 136, 137, 146, 154, 121, 137, 138, 148, 137, 136, 136, 132, 122, 131, 141, 141, 150, 139, 147, 148, 131, 140, 134, 134, 125, 135, 133, 148, 147, 149, 131, 123, 135, 144, 143, 133, 133, 121, 138, 131, 141, 138, 132, 128, 120, 141, 122, 137, 146, 129, 128, 144, 147, 146, 125, 134, 134, 136, 123, 144, 127, 140, 129, 141, 122, 137, 139, 153, 147, 130, 142, 130, 140, 134, 138, 138, 131, 144, 131, 131, 138, 138, 140, 138, 139, 116, 126, 134, 144, 135, 137, 132, 126, 134, 155, 137, 142, 132, 154, 137, 127, 154, 132, 126, 144, 142, 122, 126, 146, 126, 137, 145, 146, 141, 139, 143, 140, 143, 129, 129, 152, 147, 142, 130, 140, 128, 135, 141, 135, 154, 125, 143, 128, 144, 136, 130, 128, 163, 145, 138, 124, 148, 128, 135, 133, 128, 128, 130, 140, 125, 134, 151, 151, 129, 137, 135, 140, 150, 110, 133, 138, 136, 150, 126, 128, 133, 140, 139, 123, 142, 145, 142, 148, 117, 134, 132, 145, 135, 139, 115, 127, 131, 142, 148, 148, 128, 143, 138, 126, 126, 141, 141, 128, 143, 138, 141, 153, 125, 127, 129, 131, 146, 145, 128, 142, 143, 130, 153, 129, 133, 135, 139, 132, 139, 136, 129, 144, 127, 139, 140, 141, 130, 138, 128, 133, 128, 127, 144, 129, 137, 129, 128, 147, 146, 143, 139, 143, 130, 136, 141, 129, 138, 136, 137, 141, 121, 133, 128, 131, 145, 134, 140, 129, 138, 140, 138, 145, 129, 139, 153, 135, 136, 126, 145, 142, 139, 141, 146, 141, 130, 130, 131, 131, 129, 145, 144, 142, 139, 136, 152, 155, 148, 139, 125, 134, 121, 136, 150, 146, 146, 143, 134, 141, 134, 147, 139, 126, 139, 156, 129, 134, 131, 147, 139, 136, 138, 141, 141, 122, 149, 143, 124, 146, 139, 145, 141, 139, 148, 133, 142, 135, 133, 134, 135, 135, 154, 133, 132, 136, 128, 132, 124, 140, 126, 140, 137, 128, 131, 142, 133, 124, 129, 132, 145, 126, 141, 151, 144, 141, 134, 147, 129, 140, 129, 141, 128, 150, 153, 125, 155, 129, 150, 137, 151, 133, 148, 127, 109, 142, 139, 128, 128, 132, 130, 138, 145, 139, 131, 145, 129, 132, 137, 146, 140, 111, 138, 137, 118, 130, 128, 131, 142, 137, 134, 149, 137, 125, 147, 134, 136, 136, 116, 161, 144, 145, 133, 137, 147, 126, 149, 130, 135, 131, 156, 126, 122, 134, 143, 136, 141, 137, 131, 129, 123, 133, 137, 136, 145, 122, 125, 135, 128, 150, 137, 147, 144, 148, 137, 136, 121, 122, 125, 132, 109, 135, 148, 143, 145, 133, 137, 143, 124, 135, 128, 134, 141, 140, 133, 136, 143, 123, 136, 143, 136, 136, 123, 132, 139, 130, 112, 123, 154, 138, 136, 141, 125, 155, 142, 143, 151, 136, 140, 134, 127, 130, 152, 131, 136, 121, 120, 141, 137, 131, 128, 128, 135, 144, 130, 143, 141, 140, 132, 130, 144, 144, 129, 150, 138, 137, 140, 128, 137, 132, 146, 128, 134, 131, 142, 135, 137, 128, 136, 119, 130, 109, 139, 122, 139, 158, 133, 128, 147, 129, 132, 142, 121, 129, 126, 136, 127, 138, 141, 147, 137, 133, 133, 139, 135, 123, 140, 149, 127, 145, 131, 153, 133, 142, 133, 133, 149, 130, 137, 106, 143, 136, 131, 158, 121, 124, 128, 146, 132, 125, 138, 142, 134, 154, 134, 144, 138, 136, 128, 132, 153, 127, 130, 128, 136, 125, 123, 129, 126, 142, 139, 130, 130, 135, 126, 128, 124, 138, 130, 124, 135, 133, 142, 129, 139, 119, 150, 128, 129, 138, 133, 138, 141, 141, 128, 130, 139, 137, 136, 144, 132, 163, 141, 130, 123, 132, 130, 123, 127, 127, 129, 141, 135, 125, 120, 137, 127, 129, 123, 133, 125, 139, 122, 143, 119, 135, 133, 133, 127, 137, 168, 132, 113, 141, 137, 122, 135, 135, 124, 147, 137, 121, 115, 129, 122, 120, 146, 180, 138, 134, 139, 131, 122, 141, 130, 125, 126, 137, 139, 143, 123, 112, 149, 153, 155, 126, 131, 126, 124, 130, 133, 123, 123, 133, 131, 134, 147, 148, 146, 138, 142, 129, 160, 142, 150, 139, 136, 138, 136, 125, 132, 135, 133, 128, 129, 134, 143, 142, 120, 136, 133, 135, 140, 145, 150, 123, 136, 120, 141, 117, 126, 141, 145, 128, 151, 132, 132, 160, 142, 128, 130, 138, 125, 129, 142, 134, 127, 137, 125, 129, 137, 138, 143, 138, 161, 135, 125, 124, 135, 129, 144, 131, 135, 143, 130, 144, 126, 132, 142, 143, 138, 120, 130, 156, 132, 127, 140, 148, 138, 136, 150, 130, 127, 127, 121, 121, 155, 127, 130, 135, 136, 138, 144, 142, 134, 128, 143, 127, 141, 136, 143, 132, 139, 131, 111, 145, 135, 137, 143, 133, 140, 128, 124, 140, 141, 135, 134, 130, 133, 133, 146, 122, 117, 135, 164, 118, 133, 138, 133, 141, 143, 142, 138, 133, 130, 147, 145, 134, 141, 151, 128, 149, 132, 135, 141, 137, 134, 131, 151, 137, 131, 143, 126, 131, 133, 135, 141, 161, 142, 127, 125, 140, 120, 136, 138, 119, 123, 137, 132, 130, 149, 125, 126, 122, 140, 118, 125, 125, 130, 131, 137, 126, 143, 128, 136, 136, 127, 115, 120, 141, 181, 125, 142, 134, 127, 139, 136, 128, 137, 133, 128, 155, 134, 138, 147, 137, 141, 136, 140, 122, 140, 140, 139, 140, 148, 133, 138, 133, 148, 126, 126, 142, 140, 130, 126, 135, 127, 136, 136, 131, 138, 139, 132, 136, 138, 130, 135, 128, 142, 134, 139, 133, 133, 131, 130, 146, 147, 156, 141, 161, 129, 140, 137, 134, 147, 128, 137, 158, 136, 134, 140, 133, 132, 143, 138, 128, 128, 121, 130, 146, 135, 131, 140, 133, 133, 126, 129, 131, 133, 149, 152, 134, 144, 142, 146, 143, 135, 130, 136, 131, 133, 132, 132, 136, 150, 144, 156, 127, 144, 140, 135, 134, 142, 135, 141, 144, 138, 135, 139, 131, 133, 136, 133, 127, 122, 115, 157, 125, 152, 141, 136, 160, 131, 133, 132, 134, 141, 129, 127, 137, 144, 138, 133, 131, 134, 127, 137, 140, 124, 140, 132, 125, 139, 140, 141, 140, 120, 147, 133, 142, 141, 129, 148, 134, 114, 133, 133, 135, 126, 134, 133, 135, 129, 146, 128, 136, 162, 132, 131, 142, 145, 138, 125, 136, 135, 140, 133, 136, 131, 139, 128, 145, 122, 137, 133, 120, 143, 134, 139, 150, 129, 141, 137, 133, 135, 134, 143, 152, 131, 124, 129, 151, 144, 144, 136, 144, 124, 145, 131, 130, 138, 130, 137, 155, 141, 142, 135, 135, 143, 121, 135, 144, 134, 135, 134, 130, 132, 141, 130, 137, 143, 130, 133, 145, 124, 125, 133, 128, 132, 141, 130, 153, 140, 150, 176, 127, 137, 133, 140, 147, 138, 135, 144, 144, 134, 143, 142, 150, 138, 129, 136, 148, 132, 143, 135, 128, 132, 174, 139, 145, 133, 121, 131, 133, 129, 140, 124, 134, 149, 146, 143, 131, 137, 133, 128, 137, 132, 147, 146, 140, 133, 129, 138, 125, 133, 136, 134, 142, 145, 127, 139, 135, 142, 122, 139, 142, 125, 145, 136, 146, 148, 130, 144, 137, 138, 134, 141, 135, 135, 137, 134, 131, 143, 137, 127, 137, 141, 123, 149, 150, 122, 151, 138, 128, 129, 139, 152, 138, 134, 133, 141, 144, 132, 135, 144, 137, 142, 132, 141, 134, 132, 136, 139, 138, 128, 141, 137, 132, 141, 134, 142, 130, 141, 141, 127, 136, 141, 141, 129, 139, 150, 144, 144, 141, 134, 131, 134, 138, 131, 163, 135, 147, 140, 137, 136, 151, 145, 138, 140, 146, 129, 146, 131, 138, 131, 137, 126, 138, 135, 147, 130, 134, 138, 137, 146, 130, 137, 125, 134, 127, 147, 149, 124, 141, 153, 131, 107, 142, 144, 137, 143, 144, 151, 137, 134, 140, 133, 136, 134, 141, 136, 136, 132, 129, 140, 122, 144, 123, 138, 139, 122, 143, 136, 145, 130, 135, 132, 149, 149, 134, 122, 148, 145, 141, 132, 123, 143, 126, 141, 148, 148, 140, 143, 137, 136, 136, 141, 132, 125, 129, 149, 132, 129, 133, 132, 128, 136, 139, 139, 135, 151, 135, 139, 128, 146, 147, 141, 134, 136, 146, 144, 132, 130, 122, 126, 130, 137, 134, 122, 139, 141, 135, 124, 143, 136, 127, 138, 130, 130, 142, 145, 136, 129, 133, 138, 133, 140, 145, 136, 144, 139, 132, 140, 122, 136, 134, 138, 144, 142, 136, 132, 144, 137, 142, 136, 142, 134, 139, 141, 147, 130, 162, 137, 131, 138, 140, 143, 133, 133, 125, 137, 128, 123, 128, 140, 133, 137, 134, 142, 144, 132, 133, 133, 136, 135, 134, 125, 135, 139, 137, 133, 139, 128, 144, 135, 121, 132, 140, 134, 131, 128, 134, 131, 137, 126, 143, 130, 129, 140, 132, 140, 142, 125, 124, 134, 127, 138, 131, 131, 137, 132, 132, 139, 136, 141, 139, 131, 149, 134, 130, 132, 132, 129, 132, 130, 137, 137, 138, 138, 128, 130, 139, 151, 139, 139, 142, 129, 135, 129, 139, 154, 129, 123, 130, 132, 131, 140, 135, 134, 155, 122, 140, 131, 138, 137, 139, 145, 139, 136, 132, 133, 133, 129, 133, 134, 135, 130, 132, 136, 148, 142, 136, 142, 126, 131, 111, 133, 136, 134, 135, 123, 136, 124, 131, 139, 136, 134, 129, 153, 135, 128, 148, 139, 132, 123, 142, 146, 139, 143, 141, 135, 136, 133, 124, 137, 123, 137, 140, 137, 121, 115, 149, 142, 118, 134, 133, 142, 139, 135, 131, 143, 136, 142, 132, 137, 146, 125, 141, 135, 131, 135, 122, 135, 133, 135, 135, 144, 136, 126, 140, 135, 147, 131, 146, 135, 143, 126, 134, 139, 130, 143, 134, 136, 140, 138, 129, 141, 138, 142, 128, 139, 138, 138, 139, 136, 146, 132, 140, 140, 142, 130, 137, 143, 134, 146, 127, 135, 139, 137, 137, 139, 131, 139, 133, 129, 123, 130, 140, 128, 127, 153, 128, 138, 131, 136, 118, 161, 137, 127, 137, 134, 123, 140, 132, 126, 138, 135, 136, 134, 135, 121, 138, 143, 156, 131, 135, 126, 146, 144, 139, 124, 141, 138, 140, 141, 129, 135, 139, 126, 145, 129, 139, 131, 135, 141, 133, 142, 133, 132, 130, 139, 137, 129, 129, 128, 137, 134, 133, 144, 130, 133, 153, 128, 139, 126, 117, 145, 130, 123, 139, 147, 133, 141, 140, 150, 138, 144, 138, 146, 120, 135, 131, 128, 136, 132, 149, 127, 125, 135, 132, 134, 143, 140, 131, 135, 132, 132, 142, 135, 131, 135, 137, 131, 140, 139, 129, 123, 131, 138, 136, 149, 131, 134, 139, 135, 140, 125, 134, 141, 140, 136, 141, 128, 124, 137, 135, 159, 136, 139, 143, 131, 139, 125, 137, 136, 157, 140, 129, 136, 149, 145, 140, 132, 136, 142, 134, 128, 146, 146, 137, 127, 132, 136, 125, 136, 139, 126, 130, 119, 140, 135, 148, 131, 146, 130, 143, 143, 136, 133, 135, 143, 136, 131, 131, 141, 123, 134, 143, 132, 142, 136, 127, 129, 133, 148, 126, 139, 141, 135, 146, 144, 129, 131, 131, 121, 111, 133, 125, 124, 135, 133, 127, 138, 140, 133, 130, 146, 138, 148, 148, 122, 133, 130, 135, 130, 142, 134, 142, 132, 150, 142, 135, 122, 131, 139, 141, 131, 136, 133, 141, 141, 139, 135, 136, 144, 138, 138, 134, 144, 139, 134, 136, 137, 142, 125, 126, 135, 136, 137, 137, 150, 131, 134, 141, 124, 136, 146, 142, 141, 148, 141, 130, 134, 148, 150, 130, 133, 144, 127, 147, 144, 140, 136, 157, 136, 152, 136, 148, 137, 139, 143, 131, 145, 133, 136, 142, 143, 142, 149, 136, 142, 126, 155, 139, 150, 129, 136, 117, 133, 115, 133, 141, 119, 134, 123, 124, 124, 140, 141, 138, 137, 134, 134, 123, 132, 136, 136, 122, 139, 160, 131, 144, 131, 147, 127, 141, 135, 137, 128, 154, 136, 123, 131, 126, 140, 121, 156, 139, 121, 140, 135, 135, 135, 156, 135, 130, 134, 143, 125, 135, 139, 144, 139, 135, 131, 137, 145, 125, 137, 132, 136, 156, 140, 142, 132, 136, 117, 124, 124, 139, 141, 132, 131, 161, 139, 139, 136, 133, 135, 134, 132, 131, 123, 133, 144, 131, 151, 128, 136, 147, 137, 139, 149, 131, 126, 125, 123, 138, 129, 140, 139, 135, 131, 128, 128, 138, 124, 133, 150, 141, 131, 146, 137, 143, 126, 137, 127, 143, 129, 125, 141, 142, 125, 136, 130, 155, 134, 143, 134, 147, 143, 141, 134, 132, 150, 142, 127, 128, 142, 139, 144, 128, 149, 156, 124, 134, 154, 128, 161, 148, 148, 131, 156, 136, 122, 144, 136, 137, 131, 149, 129, 133, 137, 139, 152, 134, 130, 163, 130, 127, 128, 135, 146, 126, 126, 113, 133, 123, 133, 129, 134, 144, 139, 124, 162, 127, 138, 136, 141, 150, 128, 129, 120, 132, 142, 134, 139, 133, 134, 142, 146, 132, 146, 138, 144, 131, 138, 119, 135, 138, 131, 147, 150, 154, 139, 138, 142, 136, 125, 156, 140, 119, 137, 131, 133, 125, 168, 122, 145, 135, 130, 128, 133, 145, 127, 130, 121, 142, 131, 149, 129, 135, 134, 144, 131, 129, 138, 163, 131, 118, 146, 130, 132, 130, 135, 136, 132, 136, 142, 131, 135, 136, 151, 149, 138, 101, 137, 142, 127, 140, 131, 146, 123, 137, 151, 125, 129, 139, 150, 126, 127, 152, 136, 123, 137, 133, 152, 134, 139, 133, 131, 139, 120, 141, 129, 127, 144, 135, 124, 126, 136, 140, 143, 128, 137, 129, 143, 148, 144, 131, 136, 139, 153, 128, 150, 133, 135, 127, 133, 138, 152, 155, 151, 127, 149, 131, 137, 145, 152, 121, 141, 125, 126, 131, 127, 142, 147, 140, 145, 133, 134, 143, 129, 138, 134, 132, 122, 157, 133, 136, 128, 129, 145, 140, 124, 140, 140, 131, 138, 131, 134, 137, 135, 107, 123, 134, 136, 140, 130, 139, 128, 135, 132, 142, 132, 127, 121, 139, 154, 120, 119, 135, 130, 114, 137, 151, 132, 142, 158, 130, 151, 139, 135, 136, 130, 115, 142, 129, 142, 145, 136, 131, 155, 124, 141, 138, 119, 148, 141, 133, 132, 140, 140, 115, 132, 146, 132, 171, 138, 142, 138, 130, 131, 132, 121, 140, 131, 161, 128, 141, 130, 142, 133, 158, 117, 130, 136, 141, 141, 137, 130, 136, 151, 132, 141, 126, 125, 118, 151, 126, 137, 127, 127, 117, 135, 128, 133, 140, 140, 137, 129, 146, 137, 134, 128, 141, 142, 134, 139, 149, 149, 138, 126, 135, 132, 131, 148, 131, 125, 152, 129, 96, 142, 132, 141, 138, 140, 132, 136, 139, 131, 141, 151, 139, 127, 127, 145, 137, 148, 137, 128, 139, 134, 143, 135, 144, 141, 143, 142, 140, 137, 139, 132, 139, 147, 132, 133, 121, 126, 137, 142, 129, 135, 131, 129, 122, 139, 126, 148, 128, 134, 120, 133, 135, 141, 139, 147, 130, 121, 122, 135, 135, 137, 137, 142, 145, 137, 144, 133, 119, 135, 134, 158, 130, 146, 137, 133, 134, 146, 136, 138, 134, 141, 146, 141, 136, 133, 139, 134, 130, 141, 141, 122, 139, 138, 154, 133, 137, 129, 126, 144, 142, 150, 149, 131, 138, 135, 143, 135, 139, 134, 140, 130, 128, 140, 131, 139, 139, 138, 132, 170, 143, 116, 135, 135, 123, 124, 134, 135, 141, 137, 113, 129, 145, 138, 124, 133, 146, 143, 120, 143, 126, 139, 149, 128, 128, 121, 135, 134, 140, 143, 140, 138, 142, 141, 145, 134, 135, 138, 140, 139, 147, 125, 153, 143, 150, 139, 140, 160, 133, 136, 130, 135, 134, 138, 125, 148, 136, 130, 125, 143, 129, 129, 140, 129, 137, 139, 142, 148, 144, 129, 128, 134, 135, 130, 130, 148, 134, 141, 143, 148, 131, 132, 133, 133, 135, 130, 141, 130, 135, 129, 131, 127, 142, 135, 143, 134, 135, 187, 134, 136, 141, 125, 128, 133, 132, 129, 138, 149, 154, 144, 139, 127, 125, 131, 128, 126, 144, 129, 140, 145, 145, 139, 141, 143, 152, 130, 156, 143, 126, 140, 126, 124, 122, 134, 146, 134, 132, 136, 131, 123, 140, 121, 131, 136, 139, 141, 137, 134, 120, 151, 137, 129, 134, 151, 133, 145, 137, 147, 141, 140, 124, 144, 141, 137, 127, 137, 123, 136, 132, 128, 133, 142, 140, 125, 137, 144, 130, 136, 135, 137, 129, 129, 133, 134, 135, 139, 138, 140, 122, 128, 135, 135, 144, 125, 139, 147, 126, 153, 144, 142, 136, 132, 135, 127, 122, 142, 137, 144, 188, 135, 137, 139, 130, 154, 125, 139, 133, 117, 97, 140, 136, 148, 140, 147, 133, 141, 152, 137, 141, 122, 145, 132, 145, 136, 126, 126, 133, 145, 144, 135, 128, 134, 135, 135, 152, 127, 135, 133, 136, 140, 143, 140, 131, 128, 134, 130, 141, 193, 136, 124, 125, 135, 133, 134, 128, 125, 133, 127, 123, 136, 133, 134, 139, 125, 136, 138, 129, 151, 132, 131, 139, 127, 146, 140, 151, 139, 113, 121, 133, 137, 131, 136, 132, 134, 144, 129, 143, 140, 127, 137, 127, 121, 149, 134, 139, 140, 134, 145, 134, 135, 141, 128, 150, 135, 129, 121, 133, 127, 136, 151, 146, 145, 152, 137, 146, 126, 134, 116, 128, 148, 138, 132, 134, 155, 127, 123, 140, 134, 134, 144, 136, 137, 138, 135, 124, 138, 141, 145, 144, 132, 127, 139, 142, 129, 139, 135, 136, 135, 142, 140, 125, 121, 131, 134, 139, 137, 126, 128, 139, 131, 114, 142, 129, 137, 125, 136, 129, 115, 143, 142, 128, 128, 133, 135, 143, 124, 138, 135, 119, 138, 133, 155, 137, 128, 133, 123, 140, 151, 116, 123, 120, 143, 123, 116, 126, 121, 141, 145, 138, 132, 128, 132, 113, 118, 125, 144, 129, 123, 122, 108, 126, 132, 136, 137, 132, 135, 150, 152, 136, 133, 134, 136, 139, 132, 139, 141, 168, 131, 142, 152, 137, 134, 132, 137, 133, 133, 136, 125, 146, 143, 132, 130, 128, 143, 148, 119, 130, 133, 132, 132, 141, 149, 125, 134, 127, 129, 140, 133, 133, 126, 174, 147, 130, 120, 123, 143, 139, 133, 131, 135, 129, 113, 140, 139, 130, 136, 122, 137, 132, 154, 136, 117, 141, 134, 141, 124, 150, 154, 132, 149, 151, 136, 136, 139, 134, 132, 134, 137, 110, 132, 152, 138, 132, 123, 147, 130, 134, 149, 141, 146, 136, 119, 135, 140, 134, 127, 150, 126, 126, 146, 146, 143, 147, 133, 121, 143, 140, 151, 114, 149, 140, 128, 138, 132, 143, 140, 133, 128, 124, 140, 140, 148, 138, 138, 138, 145, 136, 149, 124, 134, 133, 127, 142, 135, 136, 125, 126, 130, 134, 128, 155, 140, 150, 124, 156, 125, 138, 135, 135, 139, 134, 135, 128, 122, 136, 149, 136, 138, 127, 130, 148, 144, 124, 142, 139, 125, 131, 130, 141, 142, 142, 130, 136, 137, 133, 157, 147, 126, 85, 134, 141, 157, 139, 135, 131, 145, 138, 109, 143, 144, 143, 131, 156, 121, 149, 118, 125, 137, 139, 132, 123, 123, 132, 123, 153, 129, 139, 146, 139, 103, 119, 117, 139, 129, 144, 125, 140, 129, 131, 132, 134, 122, 148, 130, 136, 135, 121, 130, 135, 118, 132, 126, 138, 131, 135, 138, 133, 138, 140, 129, 127, 130, 133, 136, 130, 153, 146, 142, 139, 148, 125, 135, 136, 131, 141, 135, 133, 139, 127, 130, 121, 128, 153, 129, 134, 126, 149, 130, 122, 131, 135, 147, 123, 148, 127, 137, 138, 138, 142, 136, 124, 138, 136, 134, 141, 133, 145, 147, 135, 127, 134, 127, 125, 135, 152, 134, 142, 119, 159, 130, 127, 128, 128, 129, 129, 139, 147, 150, 150, 134, 155, 142, 141, 127, 145, 154, 149, 129, 148, 139, 133, 153, 158, 138, 143, 126, 151, 124, 145, 141, 127, 137, 140, 131, 141, 153, 134, 140, 163, 127, 129, 119, 131, 151, 136, 137, 117, 140, 132, 139, 135, 126, 121, 139, 141, 134, 125, 130, 146, 142, 138, 116, 162, 134, 131, 128, 134, 148, 132, 129, 140, 116, 130, 132, 123, 142, 149, 133, 153, 143, 131, 122, 148, 114, 126, 130, 138, 142, 131, 148, 141, 155, 149, 136, 135, 150, 142, 156, 150, 136, 150, 144, 137, 150, 133, 170, 120, 149, 132, 143, 126, 143, 139, 136, 127, 108, 137, 143, 136, 104, 153, 121, 142, 137, 131, 141, 144, 137, 138, 144, 120, 135, 120, 135, 132, 148, 127, 129, 147, 121, 130, 142, 142, 119, 164, 138, 139, 138, 131, 123, 141, 132, 140, 125, 147, 124, 134, 134, 110, 125, 130, 141, 141, 134, 136, 128, 135, 132, 139, 152, 128, 137, 136, 142, 128, 133, 139, 135, 139, 148, 127, 137, 133, 127, 135, 128, 139, 135, 139, 135, 137, 114, 140, 137, 132, 149, 135, 145, 127, 132, 149, 135, 144, 145, 129, 132, 151, 133, 119, 140, 124, 136, 125, 132, 146, 128, 159, 131, 137, 134, 123, 137, 145, 153, 137, 141, 127, 142, 123, 145, 135, 132, 140, 147, 115, 140, 142, 144, 128, 135, 142, 136, 130, 133, 141, 139, 135, 128, 144, 111, 152, 133, 130, 148, 131, 132, 138, 133, 142, 135, 134, 141, 133, 131, 146, 135, 128, 133, 137, 160, 124, 126, 128, 139, 111, 140, 148, 132, 136, 143, 130, 140, 128, 130, 127, 136, 126, 145, 140, 124, 137, 138, 132, 144, 141, 125, 140, 146, 136, 132, 142, 132, 148, 132, 129, 133, 137, 135, 138, 119, 140, 129, 139, 129, 134, 144, 129, 134, 135, 161, 141, 118, 130, 138, 126, 136, 152, 130, 129, 135, 144, 137, 148, 134, 144, 127, 134, 132, 139, 138, 137, 121, 142, 132, 143, 137, 127, 139, 130, 150, 137, 125, 134, 137, 133, 130, 134, 130, 129, 123, 127, 135, 121, 128, 139, 137, 143, 133, 116, 136, 135, 120, 144, 141, 120, 143, 143, 133, 129, 137, 132, 138, 134, 139, 126, 164, 140, 142, 139, 131, 142, 144, 145, 131, 109, 153, 142, 139, 132, 134, 137, 135, 146, 137, 126, 117, 136, 137, 133, 140, 145, 131, 144, 128, 136, 132, 129, 139, 165, 142, 112, 137, 148, 145, 135, 150, 132, 128, 107, 135, 136, 130, 131, 140, 126, 129, 132, 136, 122, 135, 138, 128, 127, 138, 148, 136, 142, 148, 139, 143, 134, 143, 134, 142, 145, 135, 137, 130, 146, 122, 124, 134, 154, 126, 123, 122, 114, 130, 134, 135, 134, 135, 137, 147, 148, 150, 121, 117, 160, 136, 127, 138, 133, 135, 132, 126, 133, 141, 137, 122, 141, 140, 134, 134, 133, 134, 131, 153, 134, 122, 151, 124, 120, 123, 136, 134, 138, 130, 146, 131, 131, 126, 152, 119, 141, 137, 125, 144, 126, 151, 130, 142, 134, 115, 128, 131, 133, 124, 147, 140, 140, 138, 149, 159, 136, 135, 133, 128, 129, 126, 140, 133, 137, 140, 167, 133, 135, 153, 138, 117, 149, 131, 128, 136, 156, 131, 142, 140, 134, 140, 139, 119, 148, 126, 148, 128, 135, 139, 125, 132, 133, 132, 137, 147, 128, 135, 128, 162, 132, 118, 142, 119, 116, 125, 149, 139, 127, 141, 133, 139, 141, 132, 116, 144, 132, 132, 135, 124, 141, 136, 122, 134, 133, 135, 136, 138, 128, 150, 137, 133, 134, 120, 126, 156, 147, 139, 146, 131, 140, 137, 144, 127, 148, 148, 136, 130, 135, 131, 122, 127, 139, 137, 147, 129, 136, 149, 148, 134, 144, 116, 131, 133, 125, 132, 133, 132, 109, 142, 141, 145, 130, 134, 142, 139, 117, 143, 137, 121, 135, 145, 142, 140, 143, 129, 155, 115, 136, 148, 121, 147, 111, 132, 139, 128, 138, 144, 130, 127, 127, 142, 126, 127, 152, 134, 149, 147, 130, 135, 133, 137, 136, 145, 150, 141, 146, 118, 138, 120, 137, 123, 143, 153, 148, 121, 131, 119, 125, 169, 158, 123, 136, 121, 132, 128, 142, 155, 140, 140, 122, 142, 128, 131, 133, 148, 136, 139, 137, 143, 131, 149, 120, 139, 135, 126, 134, 123, 138, 143, 125, 122, 133, 128, 86, 146, 144, 141, 54, 136, 140, 137, 154, 134, 149, 142, 128, 143, 132, 135, 134, 140, 122, 120, 139, 132, 132, 133, 151, 122, 128, 131, 136, 124, 137, 137, 140, 131, 100, 154, 141, 141, 122, 151, 139, 140, 146, 144, 140, 140, 124, 136, 142, 148, 151, 138, 133, 133, 153, 138, 140, 142, 144, 121, 132, 156, 130, 133, 134, 154, 129, 139, 137, 147, 143, 113, 138, 126, 148, 142, 144, 139, 133, 139, 136, 131, 129, 140, 137, 147, 115, 149, 138, 144, 125, 140, 141, 142, 125, 134, 131, 137, 137, 123, 144, 117, 162, 124, 137, 138, 153, 137, 135, 123, 122, 136, 157, 134, 132, 142, 144, 130, 124, 140, 134, 139, 156, 132, 120, 129, 131, 135, 161, 158, 136, 151, 136, 151, 144, 146, 149, 124, 145, 127, 108, 132, 138, 129, 137, 114, 150, 142, 133, 130, 138, 141, 145, 127, 130, 156, 137, 122, 140, 130, 135, 153, 134, 150, 129, 118, 140, 129, 131, 147, 129, 129, 129, 144, 132, 133, 134, 123, 140, 127, 125, 139, 136, 140, 127, 141, 134, 144, 136, 142, 133, 126, 138, 150, 125, 130, 139, 133, 151, 126, 133, 142, 164, 107, 140, 137, 130, 127, 135, 133, 115, 125, 166, 108, 126, 144, 153, 149, 124, 149, 136, 130, 125, 134, 133, 134, 136, 135, 130, 131, 155, 149, 116, 139, 141, 140, 132, 137, 133, 133, 112, 121, 128, 113, 117, 136, 121, 150, 116, 156, 129, 146, 125, 144, 140, 152, 118, 136, 145, 134, 135, 151, 149, 159, 124, 133, 133, 139, 148, 133, 150, 122, 129, 121, 132, 129, 134, 127, 157, 134, 137, 150, 141, 125, 135, 147, 138, 130, 131, 102, 132, 140, 128, 145, 134, 133, 158, 137, 129, 131, 159, 135, 123, 139, 128, 140, 132, 125, 138, 130, 133, 139, 128, 135, 128, 150, 141, 131, 125, 151, 128, 164, 144, 124, 139, 147, 143, 139, 127, 246, 145, 145, 123, 131, 152, 143, 137, 127, 133, 144, 144, 124, 148, 113, 129, 128, 138, 129, 172, 148, 138, 147, 155, 137, 154, 162, 142, 133, 159, 117, 101, 155, 146, 134, 151, 118, 133, 138, 119, 140, 149, 141, 102, 137, 127, 119, 135, 140, 140, 139, 137, 148, 133, 151, 131, 145, 144, 136, 144, 134, 122, 141, 116, 149, 136, 148, 138, 135, 148, 146, 131, 179, 111, 138, 139, 172, 145, 148, 119, 126, 136, 108, 148, 125, 134, 138, 152, 123, 152, 132, 166, 126, 129, 127, 95, 130, 128, 148, 120, 140, 123, 146, 127, 116, 123, 122, 126, 138, 136, 156, 132, 138, 134, 139, 118, 118, 140, 135, 143, 129, 131, 134, 134, 121, 137, 139, 137, 124, 133, 134, 141, 124, 125, 137, 135, 162, 125, 116, 136, 172, 132, 146, 144, 140, 151, 121, 143, 131, 139, 145, 135, 124, 135, 135, 138, 144, 140, 138, 169, 150, 140, 137, 145, 108, 138, 122, 148, 132, 161, 120, 125, 143, 142, 138, 136, 156, 130, 151, 134, 142, 142, 165, 142, 134, 138, 153, 143, 140, 141, 147, 132, 146, 142, 132, 125, 118, 127, 147, 152, 162, 123, 134, 133, 130, 147, 142, 150, 135, 129, 120, 129, 132, 117, 141, 123, 123, 133, 146, 138, 142, 104, 140, 139, 140, 133, 147, 122, 127, 136, 130, 147, 135, 137, 131, 136, 105, 132, 149, 132, 119, 132, 151, 179, 113, 135, 141, 143, 118, 141, 133, 126, 141, 149, 132, 145, 126, 109, 156, 129, 151, 136, 132, 137, 133, 123, 138, 133, 145, 110, 138, 128, 148, 136, 119, 148, 129, 113, 127, 135, 132, 139, 131, 137, 124, 139, 122, 136, 136, 136, 140, 149, 148, 118, 146, 145, 137, 124, 138, 139, 123, 121, 140, 105, 139, 126, 123, 131, 149, 139, 127, 143, 137, 153, 124, 137, 128, 130, 144, 137, 146, 140, 137, 118, 131, 127, 151, 134, 148, 140, 125, 136, 135, 139, 119, 115, 144, 144, 134, 133, 128, 120, 117, 121, 133, 135, 152, 143, 130, 146, 153, 132, 133, 137, 130, 139, 146, 141, 135, 129, 135, 133, 132, 119, 127, 144, 140, 114, 135, 138, 137, 125, 133, 140, 132, 131, 169, 141, 156, 131, 122, 163, 134, 145, 133, 115, 146, 128, 135, 132, 131, 131, 131, 127, 138, 139, 134, 138, 147, 146, 132, 152, 124, 129, 140, 148, 126, 137, 134, 142, 117, 158, 140, 137, 136, 129, 138, 143, 147, 127, 145, 128, 133, 141, 133, 138, 117, 118, 140, 131, 125, 144, 135, 128, 133, 127, 138, 146, 143, 112, 136, 135, 138, 133, 142, 132, 147, 128, 116, 128, 155, 141, 134, 134, 127, 140, 138, 120, 118, 121, 128, 138, 132, 136, 128, 140, 135, 147, 134, 132, 137, 142, 110, 129, 149, 138, 140, 133, 130, 142, 129, 147, 119, 139, 122, 133, 143, 125, 143, 137, 138, 145, 129, 126, 119, 111, 136, 145, 123, 129, 131, 151, 121, 135, 127, 142, 148, 165, 132, 146, 128, 135, 149, 108, 132, 139, 119, 130, 87, 141, 138, 135, 119, 135, 137, 138, 128, 152, 136, 119, 137, 128, 129, 146, 129, 132, 123, 140, 140, 121, 123, 145, 134, 97, 132, 142, 137, 139, 134, 145, 134, 143, 120, 128, 133, 131, 142, 135, 136, 136, 125, 139, 140, 140, 150, 133, 147, 114, 137, 128, 139, 126, 120, 154, 144, 146, 135, 133, 132, 131, 128, 147, 162, 140, 105, 124, 127, 132, 143, 147, 150, 151, 133, 135, 122, 123, 129, 130, 127, 127, 126, 153, 133, 121, 129, 148, 161, 137, 140, 147, 139, 143, 124, 137, 142, 117, 139, 143, 120, 138, 134, 152, 131, 129, 115, 147, 135, 141, 120, 158, 138, 135, 142, 132, 129, 132, 125, 135, 143, 139, 118, 129, 139, 143, 127, 124, 138, 140, 166, 154, 123, 162, 151, 129, 146, 130, 143, 138, 144, 137, 133, 156, 129, 150, 144, 154, 102, 128, 140, 139, 128, 143, 153, 146, 152, 129, 139, 141, 138, 131, 127, 136, 118, 127, 127, 145, 122, 141, 142, 140, 130, 139, 132, 148, 136, 140, 141, 135, 131, 138, 148, 119, 128, 127, 121, 149, 129, 145, 129, 127, 136, 138, 157, 127, 123, 137, 143, 121, 139, 134, 124, 157, 130, 136, 147, 146, 144, 142, 143, 142, 136, 145, 166, 127, 129, 143, 145, 144, 122, 152, 128, 128, 151, 123, 145, 131, 136, 133, 130, 127, 140, 116, 120, 127, 122, 140, 145, 140, 139, 137, 134, 146, 137, 137, 130, 133, 129, 135, 131, 130, 134, 147, 134, 138, 140, 133, 151, 135, 147, 125, 139, 132, 134, 124, 131, 141, 135, 147, 134, 136, 132, 134, 131, 128, 138, 126, 134, 133, 141, 133, 135, 142, 140, 140, 131, 126, 142, 132, 150, 145, 127, 130, 132, 128, 129, 149, 137, 131, 133, 128, 132, 142, 142, 110, 148, 149, 129, 143, 133, 136, 140, 109, 138, 147, 134, 130, 131, 127, 123, 143, 141, 138, 150, 138, 139, 145, 142, 129, 136, 128, 140, 131, 126, 144, 143, 132, 143, 126, 146, 127, 141, 143, 140, 147, 147, 142, 133, 134, 126, 121, 129, 128, 139, 143, 124, 144, 132, 135, 123, 128, 115, 123, 136, 150, 183, 121, 121, 134, 147, 136, 136, 129, 126, 114, 142, 126, 128, 122, 171, 140, 126, 136, 124, 142, 139, 130, 115, 144, 134, 129, 140, 113, 144, 143, 145, 146, 128, 151, 133, 135, 135, 138, 133, 154, 125, 141, 139, 126, 168, 139, 129, 143, 142, 137, 115, 137, 135, 110, 146, 140, 129, 148, 137, 143, 137, 126, 135, 131, 126, 132, 143, 144, 142, 132, 139, 127, 154, 139, 155, 145, 122, 137, 120, 128, 151, 131, 147, 144, 118, 135, 134, 140, 136, 151, 144, 139, 149, 124, 145, 108, 138, 119, 133, 153, 126, 142, 140, 125, 136, 150, 143, 143, 137, 142, 133, 140, 138, 147, 138, 148, 156, 135, 131, 133, 126, 134, 137, 136, 138, 128, 133, 157, 127, 145, 130, 140, 165, 135, 104, 138, 139, 136, 134, 125, 148, 143, 139, 129, 134, 141, 149, 144, 129, 130, 148, 135, 127, 122, 142, 126, 151, 140, 123, 137, 120, 137, 136, 126, 130, 133, 142, 133, 142, 140, 135, 133, 125, 131, 144, 125, 109, 134, 125, 147, 133, 129, 147, 126, 132, 131, 137, 148, 135, 123, 138, 140, 143, 141, 136, 140, 138, 136, 131, 120, 114, 134, 138, 147, 143, 144, 136, 131, 132, 134, 151, 132, 133, 138, 140, 127, 145, 146, 175, 121, 132, 134, 114, 132, 134, 133, 119, 149, 137, 190, 133, 141, 131, 135, 140, 139, 140, 149, 137, 126, 147, 143, 124, 127, 139, 141, 155, 136, 129, 125, 137, 135, 138, 134, 127, 118, 126, 141, 134, 132, 135, 141, 135, 131, 139, 123, 146, 130, 136, 124, 129, 129, 142, 131, 145, 153, 127, 139, 125, 139, 137, 125, 132, 138, 129, 126, 137, 137, 140, 133, 134, 126, 151, 121, 142, 123, 118, 150, 137, 136, 127, 118, 130, 117, 132, 146, 125, 139, 134, 136, 130, 120, 136, 141, 136, 132, 133, 131, 150, 146, 145, 129, 132, 141, 126, 129, 145, 132, 146, 146, 164, 134, 138, 131, 126, 132, 132, 130, 133, 140, 129, 142, 142, 150, 136, 143, 142, 137, 138, 149, 131, 129, 134, 128, 139, 143, 130, 140, 123, 138, 133, 131, 146, 127, 130, 143, 132, 130, 135, 138, 157, 135, 139, 143, 133, 139, 133, 140, 144, 137, 144, 142, 146, 148, 143, 135, 132, 148, 121, 129, 123, 122, 116, 143, 113, 137, 138, 160, 132, 136, 128, 141, 134, 135, 126, 118, 127, 132, 137, 134, 151, 121, 134, 142, 127, 127, 137, 121, 134, 142, 156, 129, 134, 127, 147, 140, 138, 157, 128, 142, 135, 135, 129, 132, 143, 143, 138, 148, 137, 128, 146, 136, 122, 140, 143, 139, 147, 143, 153, 128, 138, 140, 137, 150, 128, 138, 143, 131, 141, 135, 128, 145, 136, 126, 139, 135, 156, 134, 149, 141, 125, 125, 140, 133, 131, 129, 147, 137, 137, 151, 136, 136, 119, 130, 131, 136, 127, 129, 142, 154, 138, 130, 132, 143, 135, 136, 140, 127, 139, 146, 129, 134, 123, 127, 133, 134, 138, 143, 132, 132, 122, 136, 141, 122, 122, 127, 139, 141, 136, 142, 152, 135, 152, 142, 137, 131, 143, 135, 131, 133, 165, 145, 138, 150, 129, 137, 133, 137, 129, 137, 133, 143, 129, 124, 141, 151, 127, 129, 135, 131, 122, 146, 153, 136, 134, 133, 123, 134, 139, 138, 146, 133, 130, 139, 140, 145, 129, 145, 122, 139, 124, 142, 141, 141, 141, 157, 122, 138, 154, 149, 135, 152, 141, 135, 133, 127, 143, 132, 130, 142, 132, 153, 127, 150, 133, 145, 144, 132, 119, 124, 127, 138, 130, 142, 139, 132, 134, 134, 124, 133, 144, 156, 148, 126, 146, 134, 148, 129, 139, 136, 143, 135, 133, 133, 133, 144, 138, 153, 145, 144, 135, 149, 126, 126, 126, 130, 128, 143, 131, 133, 152, 140, 131, 128, 132, 135, 139, 137, 142, 142, 138, 133, 144, 132, 148, 131, 136, 132, 145, 134, 131, 127, 127, 137, 124, 144, 144, 135, 135, 129, 125, 132, 132, 126, 138, 126, 127, 138, 123, 135, 142, 150, 143, 134, 152, 136, 124, 130, 136, 133, 128, 137, 139, 140, 140, 139, 147, 141, 135, 129, 136, 130, 131, 144, 147, 144, 130, 129, 141, 137, 129, 136, 137, 125, 139, 131, 139, 129, 132, 128, 128, 142, 121, 134, 138, 132, 141, 150, 148, 132, 133, 130, 141, 135, 131, 135, 123, 131, 139, 153, 127, 136, 147, 135, 146, 134, 132, 125, 138, 128, 150, 146, 132, 131, 151, 160, 139, 137, 135, 130, 132, 122, 146, 139, 137, 126, 148, 147, 148, 142, 124, 132, 143, 123, 134, 144, 136, 135, 142, 137, 139, 145, 143, 129, 128, 141, 139, 145, 142, 137, 144, 151, 130, 132, 135, 139, 131, 141, 133, 138, 144, 150, 141, 149, 139, 152, 153, 133, 160, 132, 132, 138, 140, 141, 136, 129, 140, 135, 162, 125, 128, 150, 140, 137, 129, 125, 147, 129, 130, 132, 136, 135, 149, 161, 137, 141, 135, 151, 135, 134, 132, 121, 145, 142, 132, 133, 133, 146, 135, 129, 148, 135, 147, 132, 127, 131, 149, 137, 129, 139, 137, 129, 138, 138, 131, 145, 146, 134, 136, 138, 143, 118, 147, 138, 136, 145, 129, 130, 141, 132, 142, 127, 129, 139, 141, 146, 139, 130, 123, 130, 139, 128, 145, 133, 132, 144, 141, 151, 160, 131, 123, 143, 126, 146, 138, 118, 129, 145, 134, 137, 129, 135, 130, 134, 140, 131, 143, 150, 127, 126, 148, 138, 125, 142, 137, 130, 140, 133, 138, 131, 139, 131, 131, 123, 131, 142, 132, 152, 141, 133, 133, 137, 136, 134, 142, 132, 138, 151, 140, 144, 154, 170, 123, 133, 141, 125, 133, 129, 119, 126, 118, 144, 133, 134, 142, 131, 145, 150, 118, 135, 136, 146, 141, 130, 127, 148, 143, 123, 125, 143, 142, 132, 142, 131, 136, 121, 131, 142, 135, 137, 136, 138, 125, 131, 124, 132, 129, 137, 145, 142, 143, 139, 128, 141, 145, 132, 122, 145, 131, 140, 124, 135, 138, 126, 132, 155, 129, 138, 147, 134, 142, 161, 141, 127, 140, 134, 129, 139, 127, 144, 136, 135, 149, 130, 134, 141, 129, 147, 137, 136, 141, 140, 126, 121, 138, 140, 143, 138, 142, 129, 127, 141, 142, 141, 144, 138, 128, 120, 125, 131, 129, 139, 128, 135, 145, 130, 126, 132, 131, 132, 130, 123, 123, 143, 138, 123, 140, 136, 158, 138, 139, 136, 145, 150, 132, 134, 133, 130, 143, 140, 141, 141, 131, 134, 130, 156, 131, 141, 138, 158, 129, 144, 141, 127, 140, 133, 134, 131, 128, 151, 138, 143, 136, 126, 133, 137, 145, 143, 134, 135, 144, 143, 133, 140, 142, 146, 142, 123, 144, 149, 140, 144, 148, 165, 135, 140, 134, 159, 138, 136, 125, 129, 149, 134, 127, 139, 130, 154, 136, 143, 132, 125, 128, 143, 139, 139, 142, 129, 140, 149, 141, 127, 140, 136, 134, 130, 131, 140, 139, 133, 133, 134, 133, 147, 147, 130, 149, 123, 139, 145, 137, 139, 172, 140, 143, 128, 133, 151, 124, 130, 125, 131, 132, 139, 136, 141, 127, 133, 139, 134, 134, 129, 135, 129, 124, 141, 153, 141, 139, 134, 132, 135, 137, 134, 147, 134, 125, 137, 146, 149, 131, 161, 131, 148, 138, 130, 143, 128, 126, 143, 122, 128, 138, 127, 142, 134, 141, 127, 144, 137, 143, 139, 146, 136, 142, 129, 145, 164, 131, 131, 140, 143, 147, 128, 124, 133, 125, 148, 148, 135, 115, 131, 121, 134, 149, 134, 128, 134, 142, 142, 138, 132, 134, 147, 124, 119, 140, 160, 134, 137, 134, 134, 133, 119, 145, 148, 129, 133, 121, 154, 139, 131, 135, 139, 127, 127, 139, 130, 131, 129, 136, 139, 138, 127, 136, 150, 141, 142, 128, 132, 140, 124, 132, 128, 134, 135, 130, 145, 128, 143, 135, 139, 134, 136, 137, 135, 141, 133, 152, 132, 140, 161, 140, 131, 142, 130, 132, 126, 121, 135, 135, 138, 126, 129, 128, 133, 140, 134, 137, 127, 128, 128, 132, 140, 116, 141, 136, 135, 139, 134, 139, 144, 131, 115, 132, 139, 132, 139, 134, 144, 133, 130, 135, 142, 138, 126, 135, 132, 129, 140, 130, 155, 137, 140, 133, 140, 124, 141, 134, 124, 131, 138, 142, 152, 135, 126, 116, 131, 135, 141, 143, 133, 123, 128, 138, 134, 137, 126, 138, 136, 140, 130, 130, 138, 138, 135, 135, 137, 127, 136, 137, 119, 147, 128, 138, 134, 130, 134, 132, 122, 133, 155, 140, 140, 140, 138, 137, 138, 130, 125, 146, 137, 141, 145, 144, 124, 127, 139, 132, 119, 135, 145, 143, 143, 129, 131, 131, 140, 133, 127, 142, 146, 134, 135, 124, 131, 134, 137, 140, 137, 127, 152, 128, 134, 141, 134, 129, 114, 136, 136, 154, 133, 132, 133, 125, 138, 135, 125, 131, 147, 140, 128, 133, 141, 134, 133, 131, 128, 136, 138, 137, 135, 132, 144, 148, 139, 132, 127, 137, 134, 144, 131, 138, 142, 130, 137, 133, 129, 139, 124, 136, 151, 148, 129, 137, 137, 134, 139, 127, 139, 128, 138, 136, 135, 132, 128, 141, 131, 135, 139, 128, 132, 131, 138, 140, 131, 138, 132, 136, 133, 144, 126, 133, 142, 129, 127, 137, 124, 152, 136, 136, 136, 143, 138, 147, 131, 129, 144, 136, 146, 138, 135, 133, 135, 139, 146, 131, 131, 146, 142, 128, 129, 143, 137, 141, 138, 143, 130, 127, 126, 136, 134, 143, 128, 135, 141, 141, 128, 140, 148, 137, 124, 138, 130, 144, 138, 134, 131, 154, 132, 141, 133, 141, 134, 142, 137, 136, 129, 133, 151, 134, 137, 140, 140, 139, 129, 139, 128, 136, 144, 136, 136, 128, 130, 130, 142, 140, 141, 141, 128, 139, 135, 142, 139, 126, 125, 125, 132, 136, 140, 129, 137, 141, 142, 154, 127, 130, 142, 126, 145, 134, 139, 130, 142, 123, 140, 141, 132, 132, 141, 131, 132, 138, 127, 130, 141, 120, 135, 133, 142, 142, 132, 130, 127, 124, 145, 131, 134, 115, 132, 144, 146, 142, 136, 143, 113, 132, 133, 129, 136, 135, 137, 138, 136, 130, 137, 126, 131, 132, 129, 127, 135, 138, 143, 154, 146, 143, 132, 141, 141, 133, 137, 137, 125, 139, 143, 131, 144, 131, 135, 129, 141, 138, 117, 144, 144, 129, 143, 143, 150, 140, 127, 139, 127, 143, 138, 132, 135, 141, 137, 130, 136, 148, 125, 142, 144, 147, 129, 120, 137, 150, 137, 128, 136, 138, 134, 138, 145, 136, 140, 139, 137, 134, 147, 142, 125, 142, 137, 126, 140, 133, 145, 138, 132, 147, 142, 136, 139, 143, 131, 162, 132, 154, 130, 132, 131, 133, 123, 130, 134, 134, 148, 139, 133, 146, 143, 135, 145, 143, 127, 126, 147, 139, 132, 141, 136, 124, 137, 135, 140, 135, 121, 140, 134, 123, 142, 137, 129, 129, 127, 138, 137, 135, 131, 130, 147, 139, 135, 131, 134, 133, 141, 134, 149, 155, 148, 123, 140, 127, 142, 137, 121, 125, 134, 138, 128, 146, 128, 139, 129, 137, 132, 129, 129, 134, 128, 159, 128, 154, 122, 136, 139, 140, 142, 129, 142, 117, 138, 128, 138, 132, 93, 128, 133, 118, 138, 134, 137, 140, 124, 130, 131, 144, 134, 138, 130, 168, 150, 135, 133, 126, 133, 136, 137, 124, 142, 127, 133, 144, 134, 142, 132, 120, 143, 135, 127, 135, 127, 138, 136, 130, 100, 129, 137, 134, 131, 130, 138, 135, 133, 135, 137, 105, 131, 125, 148, 139, 137, 140, 128, 137, 136, 141, 149, 134, 141, 92, 133, 137, 148, 131, 136, 134, 134, 133, 144, 135, 135, 145, 135, 132, 138, 105, 152, 139, 144, 132, 146, 137, 136, 119, 138, 141, 125, 123, 134, 127, 150, 132, 141, 133, 135, 129, 143, 138, 129, 81, 130, 134, 143, 133, 135, 134, 127, 136, 136, 138, 144, 138, 128, 126, 140, 139, 137, 136, 122, 108, 136, 140, 140, 139, 141, 141, 133, 130, 128, 121, 124, 134, 137, 128, 139, 130, 136, 129, 132, 134, 130, 141, 135, 133, 134, 139, 126, 130, 129, 133, 133, 137, 125, 133, 136, 134, 153, 128, 139, 135, 140, 121, 138, 151, 131, 123, 130, 133, 134, 139, 136, 125, 150, 135, 126, 137, 140, 154, 122, 129, 146, 138, 138, 129, 133, 142, 130, 137, 137, 144, 146, 134, 130, 131, 132, 134, 136, 137, 142, 140, 143, 132, 144, 122, 138, 147, 131, 141, 144, 136, 134, 109, 134, 131, 150, 136, 134, 132, 138, 129, 145, 137, 133, 139, 131, 137, 156, 132, 147, 136, 108, 139, 136, 133, 170, 129, 139, 143, 133, 149, 146, 143, 133, 132, 144, 150, 135, 130, 138, 173, 137, 138, 128, 141, 122, 135, 134, 129, 127, 127, 128, 136, 125, 171, 140, 141, 130, 163, 134, 132, 138, 122, 142, 145, 140, 130, 139, 122, 112, 132, 129, 151, 129, 140, 124, 131, 137, 152, 127, 136, 146, 133, 130, 126, 134, 127, 117, 117, 135, 138, 166, 131, 126, 147, 124, 131, 131, 132, 136, 140, 137, 138, 130, 143, 131, 137, 166, 143, 137, 135, 140, 136, 131, 123, 135, 168, 122, 136, 100, 146, 143, 120, 139, 138, 133, 136, 134, 129, 151, 142, 137, 137, 124, 132, 142, 111, 140, 121, 144, 139, 132, 133, 138, 143, 146, 134, 138, 138, 136, 135, 131, 144, 136, 129, 130, 134, 132, 148, 135, 143, 155, 145, 147, 127, 124, 131, 133, 140, 142, 125, 136, 143, 137, 129, 138, 137, 109, 148, 139, 132, 145, 124, 121, 123, 138, 117, 133, 130, 122, 139, 124, 137, 123, 143, 146, 138, 138, 142, 141, 124, 143, 133, 141, 139, 132, 145, 133, 137, 119, 128, 150, 135, 141, 141, 150, 131, 136, 134, 144, 136, 137, 138, 136, 131, 137, 131, 135, 141, 124, 152, 130, 119, 147, 133, 139, 115, 138, 133, 134, 133, 134, 137, 140, 134, 126, 142, 117, 141, 146, 133, 141, 134, 128, 144, 140, 133, 142, 129, 147, 131, 131, 126, 138, 139, 123, 141, 127, 132, 135, 143, 125, 151, 135, 140, 129, 130, 141, 149, 134, 138, 137, 147, 121, 134, 114, 135, 141, 133, 145, 132, 129, 136, 141, 137, 136, 132, 135, 137, 128, 143, 137, 147, 150, 138, 143, 138, 139, 142, 138, 131, 120, 131, 136, 134, 132, 123, 145, 144, 126, 132, 134, 135, 125, 137, 143, 134, 143, 138, 132, 137, 125, 139, 138, 139, 126, 132, 131, 136, 135, 118, 135, 121, 131, 133, 136, 131, 131, 134, 136, 146, 135, 139, 134, 136, 139, 137, 141, 147, 143, 144, 130, 132, 139, 145, 131, 128, 132, 133, 142, 139, 153, 144, 146, 132, 115, 137, 130, 134, 136, 133, 136, 115, 134, 148, 136, 134, 144, 140, 142, 151, 136, 135, 128, 140, 145, 139, 135, 139, 137, 126, 142, 137, 137, 135, 147, 135, 133, 139, 124, 132, 117, 133, 137, 136, 132, 152, 125, 126, 143, 152, 135, 135, 149, 131, 128, 148, 146, 123, 140, 146, 137, 136, 133, 130, 140, 137, 130, 141, 124, 142, 132, 143, 131, 134, 134, 134, 140, 146, 123, 136, 140, 143, 125, 130, 145, 130, 145, 132, 132, 132, 134, 124, 136, 126, 141, 138, 147, 139, 122, 130, 129, 144, 143, 128, 133, 142, 138, 146, 127, 132, 135, 133, 130, 148, 148, 119, 133, 134, 149, 130, 138, 136, 130, 152, 131, 147, 125, 139, 141, 136, 136, 127, 135, 130, 148, 130, 136, 137, 139, 133, 136, 140, 133, 139, 139, 128, 137, 149, 135, 136, 129, 140, 152, 125, 130, 134, 133, 169, 133, 138, 138, 146, 134, 136, 141, 132, 135, 123, 141, 140, 154, 124, 136, 135, 131, 134, 130, 136, 144, 138, 137, 144, 137, 130, 140, 140, 134, 128, 135, 139, 140, 134, 123, 144, 141, 139, 152, 146, 136, 137, 130, 142, 146, 134, 136, 128, 139, 163, 141, 138, 138, 138, 127, 117, 132, 127, 125, 127, 149, 132, 129, 150, 128, 129, 145, 141, 133, 137, 133, 131, 134, 140, 139, 143, 137, 130, 146, 137, 130, 125, 141, 138, 134, 136, 141, 137, 132, 130, 138, 134, 124, 140, 145, 167, 131, 122, 109, 130, 129, 129, 131, 140, 162, 131, 139, 144, 148, 138, 126, 141, 139, 134, 132, 128, 139, 144, 140, 131, 142, 136, 131, 156, 125, 145, 133, 127, 150, 141, 140, 134, 138, 138, 130, 137, 138, 132, 129, 129, 142, 136, 131, 136, 132, 122, 129, 135, 140, 137, 150, 150, 140, 137, 129, 139, 138, 145, 134, 129, 131, 142, 136, 134, 143, 138, 122, 129, 146, 133, 127, 134, 138, 135, 154, 149, 142, 117, 140, 128, 141, 137, 145, 151, 134, 143, 141, 135, 133, 126, 130, 145, 134, 128, 125, 137, 134, 135, 132, 135, 127, 129, 137, 134, 137, 136, 134, 134, 135, 131, 133, 133, 139, 132, 137, 149, 124, 131, 140, 134, 131, 130, 134, 144, 142, 141, 135, 131, 150, 140, 137, 124, 130, 138, 133, 129, 139, 126, 133, 158, 125, 132, 136, 126, 131, 137, 136, 146, 127, 140, 130, 131, 138, 133, 134, 132, 147, 137, 136, 128, 130, 137, 150, 128, 137, 129, 123, 140, 123, 134, 122, 121, 139, 133, 118, 131, 120, 129, 130, 143, 135, 142, 135, 139, 134, 137, 129, 131, 135, 128, 126, 141, 126, 128, 137, 136, 137, 132, 126, 126, 147, 134, 130, 132, 151, 132, 134, 140, 138, 126, 151, 138, 134, 136, 135, 153, 136, 129, 126, 147, 136, 129, 138, 144, 129, 137, 149, 136, 142, 106, 137, 134, 140, 143, 133, 124, 129, 134, 135, 128, 135, 125, 120, 148, 135, 138, 140, 128, 136, 138, 135, 141, 137, 139, 139, 138, 132, 136, 128, 142, 141, 127, 137, 134, 141, 134, 124, 138, 149, 139, 140, 137, 130, 127, 151, 138, 150, 143, 124, 139, 149, 135, 130, 128, 131, 135, 141, 135, 153, 145, 137, 143, 137, 130, 133, 129, 128, 128, 136, 124, 144, 141, 138, 134, 121, 134, 163, 133, 143, 145, 136, 126, 144, 145, 125, 137, 126, 159, 151, 136, 137, 137, 128, 124, 124, 142, 136, 129, 139, 150, 138, 118, 141, 138, 149, 140, 132, 138, 123, 140, 141, 137, 146, 129, 137, 147, 151, 134, 147, 130, 118, 136, 148, 137, 123, 131, 132, 128, 127, 161, 129, 139, 147, 137, 134, 137, 139, 145, 138, 155, 139, 150, 118, 138, 132, 136, 146, 133, 125, 130, 130, 122, 135, 124, 145, 133, 137, 129, 134, 144, 150, 130, 127, 141, 132, 141, 132, 138, 147, 134, 139, 142, 130, 136, 122, 142, 150, 150, 140, 148, 140, 142, 133, 133, 134, 135, 130, 142, 124, 136, 141, 137, 144, 135, 127, 126, 139, 149, 134, 130, 151, 140, 129, 137, 136, 130, 127, 148, 131, 143, 136, 136, 138, 144, 146, 134, 130, 141, 132, 131, 145, 135, 110, 137, 133, 135, 119, 130, 141, 129, 133, 146, 124, 141, 134, 139, 148, 129, 130, 131, 127, 151, 133, 134, 139, 126, 132, 130, 131, 128, 128, 134, 131, 131, 141, 145, 135, 137, 130, 140, 128, 127, 136, 124, 144, 135, 141, 131, 129, 133, 146, 143, 130, 136, 129, 133, 143, 138, 141, 132, 122, 148, 118, 145, 148, 134, 128, 132, 141, 130, 129, 139, 137, 137, 147, 138, 134, 138, 122, 134, 136, 139, 135, 134, 144, 128, 126, 138, 144, 117, 139, 147, 135, 124, 148, 127, 142, 137, 132, 144, 135, 125, 128, 135, 153, 131, 121, 135, 125, 151, 123, 138, 144, 135, 135, 148, 125, 138, 144, 147, 128, 133, 128, 137, 141, 135, 126, 135, 132, 137, 133, 137, 134, 146, 142, 131, 138, 140, 133, 131, 126, 139, 145, 150, 132, 132, 137, 134, 141, 134, 142, 133, 125, 135, 132, 133, 124, 114, 144, 143, 125, 134, 147, 135, 135, 129, 136, 133, 135, 138, 127, 131, 143, 138, 139, 133, 133, 135, 134, 132, 137, 133, 134, 132, 143, 135, 132, 140, 130, 139, 145, 135, 140, 118, 149, 131, 141, 145, 146, 125, 123, 137, 131, 128, 130, 139, 132, 129, 129, 140, 130, 143, 132, 133, 139, 127, 129, 141, 135, 146, 140, 133, 130, 138, 141, 157, 136, 140, 139, 134, 131, 137, 138, 147, 137, 143, 130, 139, 139, 131, 131, 124, 143, 137, 130, 137, 137, 142, 133, 131, 127, 135, 141, 137, 139, 134, 127, 143, 124, 122, 137, 137, 142, 144, 138, 132, 136, 158, 134, 137, 124, 134, 131, 144, 134, 138, 135, 130, 139, 131, 131, 139, 138, 139, 136, 145, 144, 167, 139, 146, 138, 131, 125, 137, 140, 137, 136, 143, 140, 152, 134, 133, 143, 138, 131, 144, 124, 139, 135, 134, 137, 146, 128, 127, 141, 136, 128, 147, 137, 126, 132, 138, 126, 132, 136, 135, 136, 136, 123, 135, 135, 147, 130, 133, 128, 145, 136, 134, 139, 139, 132, 139, 145, 144, 141, 147, 135, 138, 140, 101, 141, 127, 128, 132, 135, 129, 143, 138, 145, 145, 145, 141, 141, 143, 134, 138, 138, 136, 132, 131, 131, 153, 133, 134, 133, 137, 144, 137, 143, 140, 133, 135, 146, 135, 138, 134, 139, 137, 147, 126, 135, 133, 122, 136, 131, 138, 136, 139, 133, 138, 131, 133, 123, 146, 143, 131, 135, 161, 140, 142, 134, 135, 120, 131, 154, 128, 137, 152, 133, 136, 134, 151, 133, 138, 134, 132, 148, 128, 141, 130, 113, 136, 133, 132, 129, 133, 128, 146, 131, 122, 136, 142, 134, 139, 133, 139, 130, 133, 145, 134, 131, 145, 135, 131, 124, 127, 127, 126, 136, 129, 127, 132, 144, 139, 137, 129, 138, 142, 122, 130, 134, 128, 135, 153, 134, 142, 135, 131, 142, 150, 130, 143, 138, 144, 136, 137, 134, 136, 138, 126, 127, 136, 135, 136, 138, 132, 137, 138, 129, 142, 132, 139, 139, 149, 137, 123, 135, 140, 136, 139, 140, 142, 131, 135, 145, 136, 151, 133, 137, 137, 135, 138, 133, 148, 130, 137, 139, 130, 125, 144, 128, 127, 143, 133, 136, 134, 134, 127, 137, 143, 134, 137, 141, 131, 131, 129, 139, 135, 136, 140, 143, 124, 135, 127, 126, 146, 125, 137, 160, 137, 143, 137, 136, 117, 141, 135, 140, 125, 139, 128, 132, 135, 141, 138, 146, 142, 142, 137, 137, 133, 134, 128, 140, 137, 127, 134, 133, 137, 132, 137, 137, 140, 133, 132, 132, 140, 123, 128, 145, 132, 136, 139, 144, 138, 139, 140, 124, 142, 140, 140, 137, 137, 134, 130, 134, 134, 138, 133, 134, 136, 139, 141, 139, 137, 140, 140, 135, 141, 126, 134, 136, 133, 137, 130, 135, 128, 146, 152, 139, 135, 144, 128, 135, 139, 139, 147, 140, 127, 141, 135, 134, 138, 132, 137, 128, 131, 131, 129, 132, 139, 127, 142, 126, 146, 133, 132, 142, 146, 141, 139, 144, 140, 135, 138, 140, 137, 142, 130, 139, 135, 133, 136, 139, 144, 144, 142, 139, 132, 134, 141, 147, 133, 137, 131, 134, 128, 145, 129, 144, 141, 139, 130, 142, 138, 143, 135, 132, 144, 140, 149, 149, 144, 148, 140, 132, 134, 139, 140, 135, 142, 141, 138, 138, 134, 138, 138, 136, 138, 142, 137, 130, 125, 138, 136, 123, 134, 133, 130, 137, 140, 136, 134, 139, 137, 130, 134, 134, 135, 130, 142, 132, 142, 138, 133, 136, 138, 131, 135, 117, 131, 136, 130, 137, 132, 137, 133, 134, 132, 145, 134, 136, 131, 139, 127, 133, 135, 135, 140, 138, 137, 134, 128, 137, 137, 143, 133, 136, 151, 135, 138, 132, 133, 136, 129, 136, 137, 130, 129, 139, 135, 140, 147, 136, 146, 136, 141, 129, 135, 136, 141, 138, 136, 129, 142, 134, 137, 137, 137, 140, 136, 139, 143, 138, 135, 138, 145, 143, 140, 129, 137, 134, 137, 138, 137, 123, 135, 130, 137, 139, 127, 133, 131, 136, 140, 126, 141, 140, 138, 139, 134, 143, 141, 147, 143, 133, 124, 150, 134, 153, 143, 143, 132, 119, 133, 133, 124, 135, 139, 131, 132, 138, 137, 135, 138, 134, 142, 142, 138, 138, 144, 133, 139, 132, 139, 139, 134, 138, 135, 132, 142, 138, 142, 128, 136, 135, 146, 138, 136, 137, 134, 138, 139, 133, 137, 135, 132, 138, 134, 133, 143, 141, 132, 131, 129, 131, 136, 133, 128, 140, 143, 134, 136, 136, 137, 140, 143, 133, 134, 129, 133, 126, 133, 138, 140, 131, 132, 118, 136, 145, 142, 128, 131, 144, 135, 133, 131, 140, 138, 136, 148, 149, 140, 127, 130, 123, 137, 132, 142, 142, 137, 129, 131, 136, 136, 140, 128, 146, 142, 132, 132, 137, 134, 140, 130, 147, 137, 147, 141, 134, 133, 142, 130, 127, 133, 128, 139, 138, 139, 131, 132, 131, 131, 137, 129, 146, 129, 131, 137, 139, 133, 137, 132, 128, 132, 134, 139, 142, 151, 138, 131, 135, 134, 148, 135, 140, 136, 139, 126, 146, 146, 131, 136, 141, 136, 136, 141, 135, 145, 139, 137, 143, 137, 144, 137, 128, 132, 134, 128, 141, 141, 138, 133, 145, 136, 129, 135, 151, 135, 140, 139, 143, 152, 130, 136, 137, 138, 135, 133, 126, 135, 137, 138, 126, 134, 137, 144, 131, 131, 133, 139, 136, 126, 138, 147, 139, 135, 134, 135, 140, 135, 132, 146, 133, 137, 135, 134, 138, 138, 132, 134, 141, 137, 143, 128, 130, 135, 135, 139, 137, 134, 138, 133, 130, 130, 140, 129, 136, 140, 142, 134, 138, 138, 140, 136, 130, 142, 137, 129, 148, 143, 138, 139, 120, 142, 142, 143, 139, 126, 131, 136, 141, 153, 143, 120, 131, 133, 133, 135, 127, 139, 135, 129, 131, 119, 134, 140, 139, 124, 142, 139, 130, 136, 146, 129, 133, 146, 135, 136, 150, 138, 123, 136, 132, 143, 131, 137, 132, 137, 127, 139, 132, 135, 135, 137, 138, 139, 148, 129, 125, 140, 122, 129, 137, 122, 127, 137, 128, 143, 121, 139, 140, 139, 135, 132, 140, 144, 141, 136, 134, 137, 137, 124, 137, 138, 130, 140, 133, 137, 131, 137, 136, 146, 139, 142, 130, 134, 134, 133, 130, 130, 140, 128, 127, 134, 138, 137, 173, 148, 147, 133, 129, 131, 129, 137, 123, 145, 129, 142, 131, 142, 140, 132, 150, 138, 152, 136, 130, 133, 132, 138, 129, 140, 135, 130, 147, 142, 138, 149, 140, 131, 133, 138, 147, 126, 126, 132, 139, 124, 124, 142, 137, 141, 98, 139, 138, 132, 132, 132, 154, 121, 135, 141, 138, 132, 131, 128, 122, 132, 141, 135, 140, 136, 136, 142, 135, 134, 140, 140, 129, 117, 138, 141, 127, 132, 140, 144, 143, 137, 135, 146, 133, 156, 135, 140, 136, 125, 140, 140, 133, 132, 144, 138, 138, 122, 139, 144, 141, 128, 141, 141, 131, 124, 137, 142, 141, 124, 140, 128, 144, 130, 136, 134, 128, 127, 193, 148, 128, 129, 137, 149, 133, 130, 153, 130, 133, 140, 133, 134, 136, 136, 150, 132, 138, 135, 142, 136, 142, 142, 141, 133, 135, 134, 133, 115, 137, 137, 130, 136, 146, 138, 148, 131, 141, 123, 133, 131, 131, 140, 139, 149, 159, 137, 119, 139, 126, 125, 130, 135, 129, 153, 147, 137, 130, 118, 133, 141, 147, 163, 135, 144, 144, 122, 148, 140, 135, 135, 129, 145, 148, 139, 140, 128, 120, 139, 164, 131, 123, 130, 140, 128, 122, 141, 134, 142, 138, 132, 130, 137, 151, 140, 125, 141, 128, 133, 138, 131, 132, 138, 136, 131, 127, 138, 135, 129, 121, 128, 121, 137, 126, 140, 132, 135, 154, 134, 135, 124, 135, 136, 131, 132, 121, 139, 141, 137, 164, 134, 130, 138, 152, 128, 139, 122, 146, 141, 126, 130, 130, 129, 138, 144, 130, 134, 138, 138, 136, 146, 137, 132, 131, 138, 141, 122, 144, 141, 143, 129, 137, 140, 134, 122, 135, 147, 129, 126, 130, 135, 133, 147, 126, 129, 133, 140, 146, 150, 141, 136, 139, 135, 135, 133, 140, 138, 137, 145, 131, 131, 121, 134, 143, 135, 139, 136, 148, 130, 131, 131, 129, 161, 127, 126, 138, 139, 130, 146, 128, 128, 150, 142, 126, 133, 135, 137, 137, 140, 140, 132, 143, 138, 127, 135, 132, 141, 132, 123, 138, 123, 125, 146, 142, 141, 128, 131, 146, 133, 139, 130, 129, 141, 137, 139, 126, 137, 140, 138, 141, 122, 122, 131, 140, 161, 128, 133, 116, 128, 134, 141, 125, 136, 138, 134, 148, 134, 140, 128, 148, 132, 139, 145, 138, 135, 131, 129, 146, 134, 139, 137, 133, 137, 139, 136, 128, 148, 140, 130, 138, 126, 137, 136, 142, 137, 133, 132, 143, 139, 132, 135, 137, 132, 134, 148, 128, 147, 133, 144, 135, 123, 155, 132, 134, 140, 147, 160, 140, 144, 137, 128, 125, 133, 120, 139, 137, 118, 146, 134, 139, 132, 140, 137, 128, 145, 119, 131, 120, 135, 140, 143, 138, 131, 139, 147, 134, 123, 145, 149, 140, 126, 135, 128, 165, 129, 126, 144, 130, 134, 151, 146, 141, 131, 135, 133, 123, 122, 124, 135, 144, 137, 148, 147, 132, 139, 122, 134, 115, 133, 135, 127, 137, 132, 108, 139, 133, 145, 136, 143, 149, 146, 135, 131, 135, 139, 141, 135, 139, 133, 130, 130, 141, 134, 121, 140, 151, 134, 134, 140, 132, 127, 133, 148, 138, 132, 139, 136, 148, 140, 130, 131, 132, 139, 130, 134, 136, 144, 136, 136, 133, 142, 141, 137, 139, 127, 125, 142, 135, 141, 148, 138, 142, 144, 139, 148, 145, 135, 150, 132, 135, 107, 132, 142, 143, 128, 137, 141, 119, 142, 141, 128, 144, 140, 136, 133, 137, 136, 132, 139, 141, 127, 142, 127, 137, 134, 151, 125, 150, 124, 133, 159, 133, 146, 145, 135, 142, 135, 135, 132, 140, 143, 137, 133, 133, 151, 139, 147, 137, 130, 134, 148, 135, 130, 148, 145, 128, 137, 155, 131, 126, 130, 136, 138, 134, 135, 136, 150, 134, 127, 134, 130, 131, 128, 136, 134, 152, 128, 142, 138, 133, 130, 142, 134, 139, 115, 144, 123, 135, 140, 144, 142, 136, 150, 141, 128, 144, 133, 142, 132, 146, 139, 133, 130, 133, 127, 142, 150, 135, 128, 134, 144, 125, 144, 141, 131, 135, 136, 126, 137, 139, 149, 126, 137, 130, 153, 147, 137, 136, 129, 136, 142, 131, 123, 130, 142, 117, 138, 146, 135, 151, 149, 140, 126, 131, 147, 130, 128, 134, 128, 131, 121, 140, 137, 134, 137, 133, 135, 135, 156, 138, 131, 148, 138, 123, 136, 127, 132, 127, 144, 128, 146, 107, 128, 138, 120, 156, 149, 134, 111, 130, 151, 147, 149, 129, 126, 132, 145, 128, 138, 131, 132, 143, 138, 132, 137, 135, 139, 150, 135, 135, 135, 131, 135, 138, 142, 143, 128, 121, 141, 143, 129, 119, 111, 120, 133, 135, 133, 131, 127, 138, 142, 130, 122, 126, 133, 131, 140, 112, 139, 132, 143, 132, 136, 132, 134, 138, 140, 136, 136, 128, 132, 139, 141, 141, 126, 128, 141, 127, 145, 137, 137, 133, 139, 137, 141, 121, 137, 113, 142, 144, 132, 128, 128, 139, 132, 132, 133, 144, 142, 134, 131, 135, 144, 133, 132, 146, 139, 134, 139, 135, 141, 140, 134, 154, 137, 141, 127, 126, 142, 131, 130, 142, 131, 119, 138, 132, 140, 128, 140, 158, 135, 150, 145, 150, 131, 140, 122, 136, 112, 136, 143, 138, 126, 130, 142, 125, 148, 133, 139, 177, 136, 133, 154, 148, 117, 147, 136, 134, 133, 144, 144, 139, 147, 145, 133, 129, 134, 124, 136, 139, 130, 132, 143, 152, 135, 131, 148, 138, 139, 126, 135, 131, 136, 140, 141, 146, 137, 134, 138, 142, 147, 147, 130, 144, 131, 145, 143, 121, 133, 143, 134, 134, 126, 129, 134, 130, 141, 121, 138, 141, 138, 135, 122, 138, 126, 154, 124, 136, 136, 144, 130, 133, 132, 146, 128, 144, 133, 132, 125, 135, 128, 132, 116, 145, 131, 156, 127, 133, 127, 133, 124, 131, 134, 115, 123, 132, 135, 146, 146, 129, 127, 128, 141, 139, 141, 138, 123, 139, 132, 126, 134, 144, 138, 130, 121, 141, 136, 134, 134, 127, 132, 137, 161, 129, 144, 132, 123, 131, 141, 139, 136, 132, 127, 135, 138, 128, 136, 142, 114, 146, 132, 142, 134, 133, 152, 130, 143, 136, 145, 144, 126, 143, 130, 135, 140, 138, 131, 129, 133, 131, 138, 123, 135, 140, 135, 138, 143, 134, 132, 136, 128, 142, 130, 133, 130, 140, 139, 133, 120, 119, 135, 140, 130, 135, 124, 140, 132, 137, 128, 131, 121, 120, 132, 123, 148, 130, 128, 132, 139, 129, 141, 134, 128, 125, 118, 145, 150, 162, 128, 148, 127, 132, 129, 151, 128, 154, 140, 131, 132, 141, 132, 127, 134, 135, 132, 134, 123, 134, 142, 143, 136, 142, 135, 140, 134, 128, 140, 137, 136, 134, 139, 130, 133, 128, 131, 153, 134, 132, 127, 141, 129, 133, 126, 138, 147, 137, 175, 138, 140, 134, 124, 134, 136, 137, 146, 129, 160, 139, 122, 136, 140, 120, 132, 136, 130, 139, 141, 140, 143, 144, 147, 129, 138, 127, 134, 136, 146, 132, 130, 127, 133, 142, 145, 133, 132, 133, 138, 134, 132, 132, 151, 131, 133, 133, 137, 131, 196, 135, 138, 138, 148, 138, 137, 112, 142, 140, 141, 134, 131, 139, 131, 128, 132, 136, 136, 136, 123, 132, 132, 144, 129, 138, 134, 155, 134, 136, 127, 131, 124, 127, 140, 133, 157, 122, 121, 131, 139, 138, 134, 132, 141, 143, 85, 137, 137, 134, 142, 116, 118, 142, 126, 133, 126, 136, 131, 139, 136, 138, 130, 134, 133, 132, 141, 126, 140, 135, 133, 140, 132, 134, 133, 138, 143, 131, 114, 133, 138, 142, 129, 134, 136, 128, 138, 144, 124, 129, 136, 134, 127, 132, 131, 131, 134, 143, 133, 141, 137, 115, 134, 117, 133, 154, 133, 132, 126, 109, 133, 146, 136, 136, 132, 122, 134, 128, 126, 132, 114, 136, 136, 139, 125, 137, 128, 136, 142, 130, 143, 138, 139, 137, 128, 136, 140, 118, 122, 137, 131, 134, 116, 133, 139, 132, 129, 136, 142, 136, 146, 134, 146, 143, 142, 135, 133, 106, 142, 130, 122, 133, 115, 143, 128, 135, 142, 144, 144, 137, 128, 132, 155, 135, 130, 125, 142, 144, 140, 136, 137, 141, 144, 129, 137, 135, 142, 136, 138, 133, 142, 134, 134, 135, 140, 130, 143, 126, 125, 138, 113, 141, 139, 118, 138, 149, 149, 144, 133, 130, 134, 132, 124, 133, 141, 133, 111, 138, 135, 129, 135, 128, 125, 134, 136, 134, 132, 142, 130, 134, 133, 137, 129, 136, 118, 140, 129, 116, 132, 144, 136, 138, 135, 127, 117, 121, 131, 130, 140, 139, 128, 137, 134, 138, 141, 128, 136, 131, 138, 138, 126, 123, 150, 140, 142, 141, 144, 134, 137, 133, 144, 139, 139, 144, 140, 125, 139, 140, 131, 133, 144, 135, 148, 140, 132, 128, 150, 153, 137, 146, 138, 131, 135, 138, 133, 137, 147, 136, 122, 132, 144, 147, 139, 133, 134, 127, 194, 142, 140, 128, 144, 123, 130, 139, 129, 137, 144, 127, 129, 135, 134, 132, 135, 138, 136, 127, 140, 138, 144, 132, 131, 149, 152, 159, 142, 138, 147, 133, 141, 124, 140, 151, 126, 135, 130, 143, 143, 142, 132, 154, 139, 132, 139, 116, 141, 130, 144, 157, 110, 147, 133, 146, 132, 153, 142, 145, 131, 130, 133, 126, 122, 147, 144, 134, 136, 139, 141, 135, 131, 138, 144, 139, 135, 128, 136, 129, 152, 135, 127, 139, 135, 126, 137, 137, 128, 114, 134, 131, 155, 143, 137, 155, 129, 143, 135, 135, 156, 131, 152, 139, 133, 141, 133, 131, 131, 138, 149, 133, 144, 128, 145, 134, 131, 139, 127, 131, 134, 132, 140, 128, 148, 139, 146, 151, 122, 138, 136, 139, 142, 136, 139, 127, 140, 136, 138, 134, 133, 127, 145, 145, 144, 130, 120, 135, 128, 132, 127, 127, 140, 128, 136, 136, 130, 125, 120, 135, 144, 136, 133, 141, 148, 134, 135, 127, 147, 126, 126, 134, 131, 144, 132, 142, 139, 131, 147, 141, 139, 126, 147, 144, 139, 150, 137, 134, 143, 143, 142, 149, 137, 129, 138, 128, 118, 154, 158, 137, 141, 129, 147, 122, 142, 135, 137, 130, 121, 140, 150, 122, 133, 130, 136, 132, 121, 122, 132, 112, 144, 137, 125, 134, 142, 158, 146, 128, 147, 134, 134, 136, 138, 135, 127, 149, 140, 128, 124, 113, 136, 133, 132, 115, 134, 139, 144, 141, 130, 140, 140, 126, 138, 148, 139, 136, 141, 131, 129, 136, 149, 131, 134, 143, 123, 133, 124, 161, 140, 145, 142, 141, 129, 149, 135, 134, 133, 118, 136, 121, 128, 140, 158, 149, 132, 155, 135, 128, 143, 133, 149, 124, 136, 135, 144, 145, 101, 146, 131, 139, 140, 153, 131, 139, 135, 141, 132, 133, 136, 138, 132, 133, 136, 139, 122, 139, 128, 122, 135, 139, 141, 136, 130, 131, 145, 126, 139, 123, 144, 131, 137, 136, 141, 144, 143, 139, 122, 141, 138, 146, 129, 139, 144, 143, 137, 128, 139, 135, 136, 134, 152, 124, 129, 128, 120, 141, 138, 132, 135, 143, 137, 132, 116, 134, 127, 133, 132, 139, 133, 130, 132, 140, 140, 134, 129, 119, 139, 144, 135, 150, 125, 137, 139, 141, 143, 153, 162, 132, 135, 128, 144, 109, 129, 133, 133, 133, 136, 136, 136, 141, 121, 138, 145, 137, 123, 148, 129, 127, 141, 131, 147, 161, 149, 140, 144, 134, 149, 132, 137, 136, 129, 124, 140, 150, 141, 134, 133, 143, 137, 143, 122, 123, 117, 136, 140, 120, 116, 160, 140, 129, 137, 146, 146, 136, 133, 137, 132, 154, 127, 129, 139, 149, 136, 135, 135, 144, 130, 140, 142, 140, 122, 137, 131, 136, 137, 123, 134, 135, 143, 144, 133, 134, 143, 144, 129, 142, 139, 136, 143, 146, 106, 147, 138, 136, 131, 138, 140, 142, 132, 132, 138, 135, 131, 130, 124, 136, 128, 132, 143, 134, 120, 131, 130, 120, 152, 144, 140, 135, 131, 129, 139, 141, 135, 126, 134, 150, 143, 140, 141, 143, 122, 140, 126, 130, 135, 136, 127, 131, 137, 147, 142, 126, 144, 142, 131, 164, 133, 138, 125, 150, 132, 133, 137, 137, 121, 124, 144, 138, 136, 140, 135, 140, 134, 147, 131, 119, 135, 137, 135, 145, 166, 120, 135, 128, 132, 121, 131, 142, 135, 134, 143, 139, 143, 130, 147, 146, 137, 138, 138, 135, 133, 127, 124, 140, 132, 130, 137, 139, 136, 140, 139, 143, 133, 142, 133, 146, 140, 122, 142, 129, 135, 131, 128, 132, 137, 127, 110, 131, 141, 128, 131, 138, 133, 139, 129, 125, 132, 139, 135, 150, 132, 133, 132, 131, 148, 145, 130, 122, 142, 133, 142, 133, 157, 133, 130, 145, 115, 133, 141, 132, 148, 139, 123, 125, 130, 139, 144, 139, 137, 130, 137, 137, 132, 133, 144, 142, 135, 132, 138, 142, 140, 143, 147, 116, 119, 151, 129, 151, 143, 138, 130, 154, 142, 128, 146, 160, 142, 145, 137, 133, 137, 120, 152, 130, 126, 132, 126, 131, 145, 118, 127, 128, 149, 147, 138, 145, 138, 130, 142, 147, 140, 155, 133, 149, 124, 143, 133, 134, 135, 125, 146, 150, 128, 128, 131, 140, 140, 122, 136, 130, 131, 129, 137, 140, 147, 133, 135, 142, 136, 132, 133, 135, 128, 128, 140, 136, 142, 125, 136, 151, 132, 135, 128, 158, 148, 135, 133, 137, 148, 134, 135, 140, 142, 132, 135, 147, 132, 139, 147, 144, 144, 128, 119, 130, 135, 132, 147, 130, 142, 138, 129, 129, 132, 139, 140, 132, 141, 127, 135, 139, 140, 135, 127, 132, 120, 137, 123, 134, 137, 148, 126, 145, 153, 142, 134, 144, 132, 147, 125, 125, 125, 135, 142, 134, 137, 144, 130, 143, 138, 133, 146, 137, 142, 144, 132, 114, 137, 146, 139, 140, 153, 134, 133, 141, 138, 124, 134, 134, 127, 131, 145, 151, 123, 140, 133, 147, 130, 149, 138, 137, 139, 143, 134, 139, 134, 132, 135, 121, 137, 135, 134, 142, 150, 127, 129, 128, 130, 127, 142, 144, 144, 141, 138, 149, 140, 169, 142, 132, 141, 140, 126, 141, 130, 139, 141, 135, 134, 134, 136, 153, 149, 139, 129, 129, 138, 143, 142, 147, 135, 144, 131, 136, 139, 135, 133, 133, 120, 138, 135, 125, 131, 138, 136, 123, 126, 136, 126, 142, 138, 147, 136, 135, 129, 156, 139, 131, 140, 131, 143, 126, 135, 135, 132, 132, 135, 144, 152, 132, 139, 128, 140, 155, 128, 133, 137, 128, 131, 152, 134, 139, 136, 130, 138, 133, 153, 137, 145, 125, 136, 125, 131, 130, 138, 122, 135, 145, 144, 126, 137, 132, 142, 121, 129, 139, 129, 131, 132, 143, 128, 136, 119, 140, 136, 138, 144, 131, 139, 127, 128, 129, 140, 122, 124, 146, 149, 133, 141, 147, 139, 128, 129, 134, 135, 154, 128, 125, 151, 137, 126, 135, 138, 140, 147, 145, 138, 134, 133, 126, 131, 115, 114, 119, 135, 139, 142, 145, 126, 137, 151, 138, 136, 144, 129, 134, 140, 135, 128, 142, 132, 138, 136, 134, 125, 132, 145, 140, 114, 131, 133, 142, 135, 136, 132, 127, 127, 141, 138, 134, 142, 132, 138, 134, 136, 137, 144, 138, 132, 144, 137, 134, 133, 142, 124, 95, 125, 134, 140, 131, 140, 152, 143, 137, 141, 140, 134, 132, 139, 129, 143, 136, 138, 131, 135, 111, 134, 140, 130, 137, 128, 141, 137, 138, 138, 142, 138, 139, 124, 136, 130, 123, 139, 133, 149, 139, 127, 135, 144, 142, 137, 141, 122, 134, 139, 139, 103, 128, 143, 137, 140, 140, 132, 141, 141, 135, 139, 121, 127, 137, 149, 140, 141, 129, 134, 117, 148, 139, 141, 131, 143, 141, 132, 137, 129, 131, 135, 142, 128, 141, 131, 140, 161, 134, 146, 123, 133, 138, 134, 130, 131, 128, 133, 143, 144, 130, 155, 138, 139, 147, 138, 136, 133, 135, 134, 135, 140, 133, 126, 141, 149, 140, 117, 114, 129, 132, 137, 136, 126, 130, 141, 127, 142, 134, 137, 136, 130, 132, 142, 139, 148, 147, 140, 122, 123, 143, 113, 141, 135, 139, 157, 133, 138, 139, 149, 138, 139, 139, 133, 139, 133, 139, 150, 120, 144, 131, 138, 134, 135, 131, 137, 132, 123, 131, 134, 138, 146, 145, 140, 132, 149, 140, 142, 133, 136, 134, 138, 138, 138, 131, 132, 135, 119, 140, 133, 142, 122, 136, 133, 138, 148, 136, 142, 136, 129, 141, 132, 141, 127, 136, 124, 139, 131, 142, 134, 139, 126, 144, 125, 144, 136, 141, 139, 135, 121, 148, 129, 143, 134, 146, 140, 132, 129, 136, 125, 142, 139, 141, 141, 143, 139, 140, 130, 134, 145, 132, 149, 136, 137, 134, 146, 131, 128, 133, 138, 147, 142, 137, 160, 123, 140, 142, 139, 134, 140, 145, 138, 142, 142, 131, 136, 130, 133, 131, 135, 124, 130, 140, 138, 132, 134, 130, 136, 143, 138, 136, 123, 113, 128, 133, 140, 137, 106, 128, 142, 142, 131, 136, 138, 136, 136, 128, 137, 134, 140, 133, 142, 141, 133, 137, 138, 130, 135, 141, 133, 131, 141, 131, 124, 136, 135, 139, 142, 144, 146, 143, 133, 138, 138, 125, 129, 118, 142, 132, 142, 127, 146, 141, 134, 145, 142, 145, 133, 138, 133, 132, 132, 118, 144, 136, 130, 128, 135, 141, 136, 132, 140, 129, 136, 144, 141, 130, 134, 136, 141, 139, 137, 139, 140, 135, 133, 135, 130, 147, 144, 143, 133, 138, 151, 125, 144, 131, 137, 145, 146, 134, 143, 140, 127, 137, 146, 137, 147, 123, 147, 138, 137, 139, 135, 151, 131, 135, 139, 137, 139, 139, 149, 136, 135, 147, 137, 142, 143, 136, 145, 146, 125, 119, 143, 115, 129, 144, 134, 144, 135, 130, 134, 140, 130, 147, 134, 142, 125, 140, 138, 127, 140, 133, 135, 134, 141, 129, 140, 134, 136, 134, 130, 128, 137, 134, 129, 129, 128, 134, 128, 144, 142, 133, 128, 142, 137, 134, 138, 132, 133, 137, 136, 135, 149, 130, 127, 133, 137, 116, 137, 129, 134, 136, 117, 147, 134, 138, 142, 133, 143, 127, 135, 137, 136, 141, 138, 124, 134, 139, 140, 123, 131, 142, 137, 142, 141, 138, 131, 146, 139, 132, 134, 132, 118, 132, 133, 138, 134, 144, 135, 141, 135, 131, 132, 125, 136, 129, 136, 133, 148, 131, 134, 135, 144, 138, 121, 147, 137, 124, 131, 128, 122, 140, 134, 138, 137, 145, 135, 137, 146, 141, 129, 134, 141, 129, 131, 132, 144, 130, 130, 148, 131, 136, 124, 131, 132, 135, 130, 134, 130, 138, 126, 113, 142, 131, 171, 135, 139, 141, 132, 134, 130, 153, 144, 124, 125, 140, 135, 131, 144, 136, 139, 142, 138, 143, 131, 133, 140, 124, 142, 130, 137, 148, 127, 133, 139, 134, 139, 131, 136, 139, 148, 136, 125, 145, 126, 128, 136, 143, 142, 129, 156, 125, 139, 137, 125, 137, 162, 147, 142, 135, 135, 141, 133, 142, 128, 121, 141, 129, 143, 138, 124, 114, 125, 138, 135, 120, 147, 136, 137, 138, 128, 119, 132, 139, 147, 141, 152, 139, 120, 138, 137, 133, 130, 123, 146, 135, 134, 145, 141, 138, 137, 140, 130, 131, 134, 131, 143, 140, 144, 135, 134, 139, 131, 132, 131, 142, 133, 134, 139, 132, 144, 131, 135, 132, 140, 142, 136, 147, 140, 131, 144, 129, 137, 130, 136, 136, 143, 135, 140, 127, 138, 131, 130, 133, 139, 134, 139, 141, 134, 153, 130, 143, 145, 144, 133, 129, 133, 138, 130, 131, 137, 139, 135, 131, 138, 139, 149, 133, 139, 136, 131, 125, 143, 143, 139, 153, 139, 144, 134, 155, 132, 134, 147, 137, 129, 140, 133, 127, 166, 141, 136, 136, 124, 145, 134, 131, 138, 148, 139, 135, 141, 142, 135, 136, 137, 140, 135, 138, 138, 139, 132, 134, 134, 135, 142, 136, 123, 132, 123, 137, 135, 137, 149, 130, 140, 138, 136, 137, 147, 132, 136, 108, 145, 138, 135, 125, 129, 142, 138, 132, 134, 135, 132, 136, 133, 130, 130, 140, 137, 143, 139, 130, 145, 144, 135, 132, 137, 137, 125, 130, 130, 145, 142, 129, 136, 130, 139, 136, 135, 141, 136, 139, 140, 129, 129, 135, 124, 146, 132, 149, 139, 144, 132, 131, 137, 130, 136, 132, 137, 127, 131, 138, 135, 132, 130, 126, 148, 124, 126, 129, 126, 135, 135, 133, 134, 135, 132, 134, 130, 135, 138, 144, 127, 126, 126, 146, 125, 137, 133, 152, 121, 132, 147, 137, 140, 123, 142, 93, 128, 147, 130, 134, 147, 124, 121, 139, 161, 131, 138, 137, 131, 126, 135, 146, 127, 136, 140, 120, 129, 141, 134, 136, 135, 128, 138, 132, 131, 130, 130, 132, 143, 131, 131, 133, 129, 130, 132, 146, 142, 138, 132, 127, 143, 142, 138, 146, 132, 147, 131, 135, 131, 145, 129, 128, 143, 140, 145, 128, 132, 125, 151, 140, 148, 134, 133, 153, 159, 152, 144, 140, 126, 157, 141, 133, 126, 131, 126, 122, 149, 144, 129, 162, 149, 135, 128, 126, 119, 148, 115, 124, 121, 123, 140, 139, 136, 141, 132, 124, 126, 127, 142, 141, 149, 149, 132, 131, 129, 144, 133, 141, 132, 127, 132, 153, 137, 143, 136, 129, 139, 151, 157, 139, 142, 124, 149, 118, 137, 123, 132, 150, 149, 145, 133, 119, 146, 131, 143, 146, 128, 145, 122, 146, 125, 126, 135, 142, 130, 145, 128, 125, 137, 125, 144, 131, 131, 131, 130, 133, 134, 143, 126, 136, 131, 133, 140, 132, 133, 129, 142, 123, 139, 138, 139, 140, 155, 134, 148, 136, 124, 150, 130, 128, 142, 126, 134, 165, 124, 142, 141, 121, 151, 147, 147, 132, 129, 123, 136, 132, 128, 124, 127, 125, 143, 141, 139, 139, 137, 150, 140, 128, 137, 132, 117, 137, 131, 133, 132, 128, 138, 131, 135, 160, 130, 139, 129, 128, 147, 150, 134, 135, 129, 131, 143, 163, 152, 132, 130, 127, 136, 132, 134, 135, 139, 132, 140, 150, 118, 150, 134, 138, 131, 140, 124, 137, 124, 123, 136, 126, 124, 134, 137, 140, 137, 142, 139, 141, 148, 133, 131, 139, 163, 129, 138, 130, 122, 134, 128, 129, 131, 132, 133, 128, 141, 129, 128, 130, 134, 125, 116, 146, 133, 164, 134, 127, 148, 125, 125, 131, 151, 145, 126, 133, 131, 141, 118, 135, 125, 140, 138, 128, 146, 131, 142, 160, 141, 133, 128, 141, 118, 134, 138, 126, 145, 138, 129, 138, 128, 133, 143, 154, 138, 152, 161, 127, 121, 119, 141, 144, 159, 135, 118, 156, 144, 146, 136, 138, 129, 130, 153, 146, 129, 145, 143, 131, 133, 144, 136, 118, 146, 142, 133, 137, 129, 131, 138, 109, 136, 121, 134, 124, 134, 139, 139, 131, 156, 132, 137, 127, 140, 134, 141, 138, 125, 136, 128, 133, 133, 129, 133, 126, 127, 133, 131, 136, 131, 132, 125, 154, 139, 132, 125, 150, 150, 134, 140, 110, 139, 142, 171, 144, 155, 135, 136, 133, 136, 154, 124, 137, 146, 137, 135, 126, 121, 134, 135, 134, 140, 130, 128, 138, 130, 135, 136, 140, 138, 127, 135, 128, 120, 131, 135, 144, 134, 145, 127, 133, 162, 136, 155, 123, 129, 136, 135, 123, 133, 130, 145, 139, 140, 145, 139, 135, 127, 117, 142, 128, 146, 130, 149, 140, 139, 126, 146, 137, 126, 139, 129, 131, 140, 130, 122, 139, 137, 152, 129, 154, 144, 136, 130, 153, 122, 117, 139, 134, 151, 134, 135, 143, 138, 141, 147, 135, 131, 147, 130, 146, 131, 131, 136, 154, 136, 144, 136, 141, 126, 132, 126, 140, 133, 156, 138, 144, 132, 120, 134, 150, 137, 123, 133, 131, 138, 130, 131, 141, 138, 163, 127, 138, 144, 131, 143, 129, 127, 118, 133, 139, 140, 146, 141, 140, 129, 130, 132, 138, 133, 157, 133, 139, 139, 135, 141, 138, 132, 139, 125, 126, 119, 135, 139, 144, 150, 114, 147, 124, 158, 147, 130, 133, 144, 141, 143, 96, 140, 139, 122, 108, 145, 129, 122, 136, 151, 118, 132, 147, 135, 133, 151, 152, 122, 137, 143, 145, 135, 130, 114, 137, 129, 136, 128, 149, 127, 147, 148, 149, 120, 140, 134, 132, 147, 143, 143, 148, 119, 124, 143, 157, 144, 122, 137, 140, 137, 126, 132, 134, 148, 129, 127, 164, 136, 134, 149, 135, 129, 146, 130, 156, 136, 135, 124, 146, 123, 141, 147, 128, 137, 125, 137, 145, 142, 183, 144, 143, 145, 154, 138, 147, 120, 137, 125, 138, 127, 138, 153, 142, 131, 150, 143, 115, 150, 136, 158, 161, 141, 134, 140, 122, 132, 122, 138, 149, 134, 143, 138, 142, 139, 126, 139, 99, 136, 141, 126, 143, 137, 138, 135, 127, 135, 140, 151, 123, 139, 146, 140, 116, 133, 135, 127, 126, 141, 135, 120, 136, 135, 131, 132, 140, 145, 147, 136, 159, 156, 137, 128, 147, 159, 137, 132, 133, 139, 147, 128, 141, 152, 131, 141, 103, 142, 137, 136, 130, 145, 152, 134, 137, 133, 137, 132, 136, 137, 127, 139, 134, 149, 147, 137, 147, 144, 134, 121, 115, 136, 128, 140, 134, 134, 127, 161, 127, 144, 128, 127, 130, 147, 165, 126, 152, 118, 136, 134, 144, 143, 162, 131, 132, 141, 137, 126, 129, 134, 129, 148, 145, 140, 141, 145, 128, 118, 129, 140, 125, 144, 126, 144, 133, 138, 148, 165, 146, 143, 134, 137, 153, 142, 139, 140, 123, 141, 137, 123, 128, 129, 136, 146, 149, 143, 129, 146, 130, 141, 142, 134, 146, 133, 138, 125, 152, 142, 142, 135, 128, 117, 145, 123, 131, 142, 147, 136, 141, 152, 146, 133, 127, 120, 120, 133, 135, 150, 133, 131, 135, 138, 141, 132, 128, 132, 135, 139, 126, 142, 131, 115, 113, 136, 135, 124, 137, 138, 143, 131, 140, 133, 144, 143, 139, 135, 132, 148, 134, 132, 136, 141, 125, 124, 142, 128, 123, 132, 136, 131, 122, 138, 137, 117, 132, 143, 138, 133, 144, 135, 129, 122, 117, 136, 142, 122, 138, 138, 151, 132, 137, 135, 147, 131, 143, 139, 135, 125, 133, 137, 155, 142, 141, 123, 135, 114, 136, 138, 145, 137, 142, 139, 134, 139, 124, 115, 128, 137, 144, 125, 130, 126, 140, 131, 121, 147, 141, 124, 134, 130, 138, 134, 133, 140, 138, 109, 150, 146, 132, 129, 138, 122, 146, 126, 152, 133, 144, 146, 137, 142, 130, 121, 119, 132, 139, 150, 135, 129, 136, 114, 133, 132, 130, 125, 163, 135, 135, 140, 144, 143, 132, 127, 142, 127, 142, 130, 127, 146, 138, 141, 145, 138, 130, 138, 142, 146, 140, 150, 134, 129, 144, 124, 148, 133, 131, 135, 135, 132, 143, 119, 156, 143, 136, 133, 123, 123, 138, 156, 127, 140, 134, 130, 142, 134, 132, 141, 134, 130, 129, 140, 126, 71, 146, 140, 132, 137, 125, 144, 122, 137, 136, 141, 145, 119, 128, 144, 128, 135, 149, 137, 129, 134, 132, 146, 139, 124, 144, 135, 138, 151, 136, 127, 142, 132, 138, 134, 141, 139, 147, 157, 106, 149, 138, 128, 139, 135, 127, 129, 126, 127, 144, 147, 151, 138, 98, 134, 155, 144, 134, 153, 134, 146, 134, 138, 155, 121, 130, 133, 134, 143, 143, 121, 151, 130, 124, 136, 126, 149, 133, 163, 129, 132, 136, 143, 109, 131, 133, 141, 147, 115, 119, 137, 137, 139, 122, 145, 141, 134, 134, 147, 128, 137, 151, 118, 137, 138, 132, 146, 137, 126, 149, 121, 132, 119, 135, 126, 129, 132, 145, 131, 124, 140, 134, 127, 148, 119, 144, 144, 132, 138, 131, 130, 135, 126, 131, 140, 141, 145, 139, 143, 140, 139, 132, 130, 131, 140, 133, 124, 177, 133, 135, 133, 132, 138, 134, 127, 129, 136, 123, 127, 131, 127, 127, 138, 153, 130, 151, 135, 135, 133, 139, 143, 126, 128, 124, 142, 128, 120, 137, 144, 146, 140, 136, 134, 148, 146, 129, 137, 120, 136, 133, 149, 136, 135, 128, 134, 133, 141, 141, 118, 135, 139, 136, 128, 138, 144, 135, 137, 139, 126, 136, 132, 142, 129, 133, 143, 136, 150, 118, 131, 129, 137, 149, 138, 138, 131, 122, 149, 144, 130, 142, 132, 146, 139, 123, 132, 145, 131, 133, 141, 133, 140, 141, 130, 159, 140, 140, 141, 153, 135, 157, 134, 136, 160, 129, 124, 146, 153, 172, 129, 129, 148, 119, 146, 140, 132, 128, 132, 134, 133, 133, 148, 135, 138, 129, 135, 119, 136, 125, 120, 144, 136, 139, 144, 125, 135, 119, 154, 133, 129, 124, 132, 144, 138, 144, 148, 147, 135, 150, 138, 147, 129, 155, 131, 168, 137, 136, 137, 132, 128, 153, 133, 124, 145, 125, 125, 129, 123, 136, 123, 148, 138, 132, 126, 133, 147, 121, 134, 125, 160, 136, 145, 131, 117, 141, 121, 131, 124, 144, 128, 117, 124, 152, 130, 152, 146, 123, 144, 134, 139, 128, 138, 137, 139, 146, 139, 124, 127, 124, 140, 136, 140, 133, 130, 148, 135, 143, 130, 138, 125, 139, 127, 145, 148, 132, 126, 117, 137, 142, 126, 134, 129, 144, 137, 141, 134, 129, 134, 126, 135, 143, 151, 138, 145, 126, 135, 129, 146, 145, 142, 131, 143, 131, 140, 139, 143, 124, 141, 135, 145, 153, 152, 142, 131, 139, 142, 134, 137, 150, 143, 126, 132, 139, 159, 157, 137, 122, 152, 126, 139, 135, 137, 120, 125, 152, 138, 129, 134, 140, 133, 133, 158, 137, 144, 133, 129, 137, 135, 130, 144, 129, 143, 126, 134, 130, 143, 131, 138, 154, 121, 145, 154, 133, 122, 123, 132, 133, 134, 125, 145, 144, 138, 142, 138, 139, 126, 137, 140, 136, 145, 153, 129, 136, 144, 119, 130, 130, 134, 132, 135, 125, 145, 138, 141, 146, 135, 124, 137, 125, 138, 137, 127, 129, 124, 145, 133, 129, 143, 129, 114, 138, 145, 122, 143, 136, 133, 144, 133, 125, 125, 148, 141, 141, 145, 129, 128, 129, 133, 111, 135, 126, 136, 121, 139, 134, 140, 142, 130, 145, 127, 141, 130, 138, 132, 135, 133, 149, 131, 133, 131, 132, 134, 142, 129, 133, 141, 138, 138, 137, 145, 127, 123, 131, 118, 136, 136, 137, 122, 130, 145, 140, 134, 133, 136, 130, 126, 114, 124, 131, 127, 151, 134, 131, 126, 133, 131, 127, 154, 146, 139, 123, 125, 128, 113, 132, 135, 146, 139, 146, 146, 130, 151, 141, 131, 137, 147, 144, 137, 138, 141, 131, 145, 134, 142, 132, 130, 139, 137, 133, 127, 134, 116, 130, 135, 129, 145, 129, 134, 125, 135, 137, 148, 143, 136, 132, 130, 130, 137, 142, 126, 138, 131, 137, 127, 148, 131, 137, 137, 133, 128, 135, 121, 124, 138, 119, 134, 129, 144, 137, 129, 148, 130, 136, 138, 126, 134, 129, 142, 135, 136, 147, 130, 128, 139, 143, 133, 129, 120, 139, 148, 128, 139, 144, 133, 146, 142, 116, 139, 140, 133, 133, 135, 152, 121, 134, 121, 133, 131, 132, 140, 132, 136, 144, 131, 136, 126, 138, 113, 131, 133, 137, 142, 142, 142, 136, 138, 142, 140, 139, 138, 137, 142, 132, 129, 125, 133, 143, 110, 130, 136, 131, 128, 130, 135, 131, 129, 123, 142, 139, 126, 142, 143, 129, 137, 135, 127, 142, 141, 119, 134, 144, 141, 140, 151, 123, 132, 138, 129, 125, 145, 157, 126, 138, 142, 141, 124, 128, 134, 137, 135, 136, 126, 126, 123, 145, 147, 124, 142, 135, 121, 146, 134, 130, 113, 149, 135, 147, 146, 148, 141, 154, 138, 147, 133, 138, 148, 130, 131, 121, 136, 124, 133, 145, 114, 141, 131, 146, 127, 129, 137, 138, 120, 126, 133, 143, 125, 135, 128, 144, 142, 144, 122, 148, 137, 139, 142, 128, 135, 134, 131, 143, 141, 127, 140, 139, 141, 133, 129, 133, 136, 134, 142, 120, 139, 134, 144, 124, 125, 125, 146, 145, 161, 156, 131, 135, 137, 132, 134, 131, 142, 141, 136, 128, 137, 140, 139, 130, 144, 120, 148, 125, 134, 136, 142, 140, 140, 134, 140, 141, 158, 113, 144, 128, 132, 127, 132, 134, 136, 138, 136, 144, 131, 132, 142, 137, 127, 140, 137, 140, 132, 153, 131, 131, 139, 134, 137, 128, 145, 130, 147, 130, 142, 136, 131, 147, 139, 133, 134, 142, 136, 144, 137, 130, 132, 148, 147, 130, 144, 149, 129, 131, 130, 124, 157, 134, 140, 133, 134, 147, 141, 125, 138, 130, 140, 133, 137, 131, 127, 138, 129, 137, 146, 134, 159, 121, 132, 139, 126, 139, 127, 134, 132, 128, 137, 143, 139, 130, 141, 140, 132, 151, 143, 142, 121, 137, 134, 138, 137, 127, 136, 131, 137, 147, 145, 123, 133, 145, 140, 146, 129, 141, 137, 144, 139, 151, 146, 165, 137, 138, 140, 128, 134, 128, 146, 138, 146, 126, 157, 121, 137, 132, 120, 135, 140, 134, 136, 131, 143, 128, 142, 122, 136, 143, 134, 140, 137, 124, 131, 125, 146, 134, 129, 128, 146, 137, 129, 148, 129, 133, 143, 130, 124, 136, 151, 142, 144, 134, 155, 134, 135, 134, 122, 143, 137, 134, 115, 129, 121, 149, 139, 130, 154, 146, 143, 137, 112, 155, 131, 133, 121, 131, 131, 144, 137, 137, 129, 157, 131, 140, 136, 143, 132, 130, 127, 130, 141, 136, 127, 134, 137, 125, 130, 136, 131, 127, 154, 137, 151, 143, 139, 149, 139, 133, 149, 136, 142, 142, 148, 126, 118, 124, 132, 158, 137, 137, 146, 138, 145, 141, 136, 153, 135, 126, 113, 133, 149, 139, 142, 127, 135, 134, 146, 142, 124, 131, 139, 132, 122, 135, 139, 136, 129, 129, 143, 126, 147, 130, 143, 149, 127, 136, 135, 151, 127, 147, 121, 126, 150, 142, 133, 114, 130, 156, 145, 134, 133, 132, 140, 143, 136, 146, 127, 140, 146, 111, 129, 123, 128, 141, 138, 150, 126, 133, 130, 145, 144, 151, 138, 140, 131, 135, 148, 138, 131, 150, 134, 144, 136, 128, 132, 133, 139, 124, 120, 131, 137, 145, 113, 134, 138, 122, 149, 147, 142, 123, 140, 128, 136, 133, 146, 137, 141, 119, 158, 121, 130, 121, 125, 145, 146, 117, 131, 130, 141, 127, 121, 134, 139, 146, 138, 139, 127, 140, 140, 146, 135, 122, 138, 135, 141, 124, 137, 133, 125, 135, 148, 141, 139, 125, 143, 133, 137, 132, 132, 122, 135, 116, 125, 143, 129, 148, 126, 124, 136, 121, 151, 135, 148, 154, 141, 130, 124, 117, 144, 137, 135, 128, 141, 141, 138, 136, 130, 153, 129, 141, 141, 137, 143, 135, 129, 147, 133, 142, 166, 134, 145, 130, 141, 138, 140, 158, 139, 153, 130, 135, 140, 139, 142, 130, 140, 146, 132, 134, 146, 132, 146, 139, 132, 138, 138, 144, 136, 145, 124, 133, 130, 122, 140, 127, 122, 150, 134, 164, 141, 145, 133, 129, 133, 147, 124, 135, 139, 139, 135, 132, 139, 126, 128, 154, 131, 149, 127, 148, 134, 137, 133, 137, 148, 126, 144, 135, 139, 139, 138, 145, 128, 139, 132, 133, 142, 135, 147, 119, 146, 144, 133, 150, 143, 138, 141, 130, 130, 133, 151, 130, 130, 138, 124, 146, 142, 141, 137, 148, 126, 146, 143, 124, 120, 135, 144, 128, 134, 133, 135, 126, 130, 127, 132, 137, 132, 139, 123, 132, 122, 149, 137, 139, 156, 127, 128, 133, 130, 135, 137, 139, 140, 151, 138, 152, 129, 130, 131, 131, 138, 130, 118, 136, 143, 142, 138, 142, 136, 145, 126, 125, 142, 147, 132, 142, 132, 129, 137, 153, 115, 131, 142, 140, 146, 142, 128, 131, 114, 127, 136, 122, 119, 141, 144, 127, 130, 135, 135, 138, 130, 132, 133, 141, 148, 139, 140, 136, 127, 128, 134, 132, 136, 140, 139, 135, 147, 127, 135, 133, 128, 129, 140, 137, 143, 138, 144, 148, 147, 129, 142, 146, 136, 141, 134, 144, 121, 139, 136, 143, 145, 137, 145, 166, 144, 146, 133, 140, 131, 142, 126, 143, 126, 123, 140, 144, 130, 147, 150, 147, 143, 139, 129, 156, 122, 139, 155, 133, 130, 147, 153, 136, 121, 130, 144, 135, 151, 130, 136, 129, 136, 138, 125, 139, 135, 125, 134, 138, 130, 130, 139, 136, 131, 138, 138, 140, 142, 136, 132, 122, 143, 138, 139, 141, 145, 133, 135, 129, 138, 145, 141, 146, 139, 134, 133, 138, 147, 142, 141, 135, 134, 127, 128, 135, 135, 133, 128, 128, 122, 141, 126, 138, 144, 131, 139, 125, 130, 131, 135, 137, 140, 137, 127, 134, 142, 139, 140, 139, 135, 139, 140, 134, 132, 129, 134, 135, 130, 130, 133, 138, 142, 135, 147, 135, 139, 134, 139, 124, 136, 137, 142, 140, 138, 127, 139, 129, 133, 126, 130, 135, 135, 148, 131, 123, 127, 131, 129, 136, 133, 135, 142, 137, 132, 141, 116, 130, 149, 136, 124, 146, 139, 140, 131, 144, 138, 132, 123, 126, 135, 140, 140, 136, 132, 155, 140, 132, 143, 127, 142, 149, 142, 138, 126, 132, 135, 136, 145, 145, 134, 148, 138, 134, 146, 144, 147, 133, 147, 143, 140, 127, 138, 138, 146, 124, 145, 134, 125, 144, 140, 134, 142, 147, 134, 139, 140, 132, 130, 133, 133, 140, 136, 143, 145, 140, 142, 146, 130, 136, 143, 140, 127, 140, 143, 148, 137, 123, 133, 137, 138, 141, 136, 125, 142, 136, 134, 138, 132, 142, 136, 145, 140, 129, 138, 139, 119, 137, 135, 131, 133, 140, 139, 138, 151, 133, 153, 151, 139, 149, 128, 138, 133, 126, 137, 130, 121, 138, 133, 137, 147, 134, 133, 138, 141, 132, 150, 130, 139, 132, 134, 141, 135, 142, 123, 141, 148, 150, 131, 130, 133, 131, 126, 138, 144, 132, 152, 134, 135, 140, 137, 138, 136, 125, 138, 139, 130, 135, 138, 136, 129, 142, 136, 134, 130, 143, 145, 128, 132, 132, 139, 131, 135, 129, 130, 144, 143, 132, 122, 134, 128, 125, 131, 132, 138, 147, 136, 132, 130, 130, 136, 143, 142, 139, 129, 122, 135, 134, 135, 128, 128, 143, 137, 138, 130, 134, 128, 124, 133, 137, 134, 132, 127, 146, 134, 137, 133, 134, 140, 137, 132, 138, 121, 142, 140, 128, 130, 130, 147, 136, 131, 139, 138, 135, 128, 133, 125, 144, 129, 130, 141, 128, 126, 132, 134, 150, 134, 130, 134, 137, 134, 131, 131, 126, 136, 133, 134, 131, 131, 135, 143, 143, 136, 147, 134, 141, 136, 141, 133, 144, 144, 130, 133, 131, 134, 113, 138, 136, 131, 133, 139, 140, 144, 143, 139, 131, 129, 143, 142, 135, 139, 134, 134, 154, 134, 138, 140, 140, 137, 144, 129, 134, 134, 143, 134, 129, 133, 136, 124, 132, 128, 139, 142, 136, 143, 122, 135, 146, 127, 140, 133, 120, 136, 133, 135, 134, 138, 131, 140, 128, 130, 144, 130, 147, 138, 142, 131, 122, 146, 136, 133, 136, 132, 136, 131, 136, 134, 129, 132, 136, 140, 144, 137, 141, 134, 130, 134, 146, 135, 143, 136, 132, 140, 143, 125, 132, 134, 148, 149, 159, 123, 137, 130, 140, 135, 139, 114, 145, 136, 161, 132, 137, 147, 123, 125, 128, 139, 137, 133, 134, 133, 132, 147, 130, 132, 139, 132, 137, 129, 137, 118, 133, 145, 126, 139, 125, 151, 114, 136, 134, 140, 142, 135, 143, 121, 129, 140, 149, 135, 132, 161, 139, 143, 152, 130, 138, 136, 139, 147, 143, 133, 138, 155, 119, 118, 121, 148, 133, 130, 141, 122, 138, 162, 146, 141, 139, 142, 147, 133, 135, 124, 123, 127, 143, 128, 141, 140, 122, 138, 138, 132, 140, 134, 143, 124, 141, 130, 127, 137, 154, 133, 138, 125, 137, 146, 131, 140, 130, 153, 128, 139, 128, 138, 129, 144, 137, 142, 136, 141, 144, 125, 140, 124, 152, 131, 127, 140, 157, 141, 123, 123, 119, 142, 144, 141, 142, 133, 125, 130, 153, 129, 127, 141, 137, 138, 138, 135, 118, 141, 137, 145, 160, 140, 138, 123, 132, 143, 123, 133, 128, 140, 125, 139, 131, 144, 133, 142, 154, 138, 137, 131, 143, 129, 139, 121, 138, 136, 144, 142, 128, 129, 146, 125, 138, 157, 126, 142, 118, 134, 125, 125, 145, 126, 144, 143, 118, 125, 137, 140, 138, 142, 146, 144, 138, 130, 140, 137, 135, 128, 147, 156, 135, 135, 129, 144, 147, 128, 143, 133, 134, 138, 142, 136, 133, 147, 127, 138, 138, 135, 142, 148, 137, 136, 141, 124, 132, 144, 134, 135, 154, 132, 134, 124, 131, 131, 154, 137, 142, 126, 122, 165, 120, 158, 131, 132, 137, 137, 116, 131, 131, 141, 133, 124, 137, 134, 150, 121, 130, 137, 129, 138, 141, 142, 147, 145, 133, 125, 148, 132, 130, 125, 134, 132, 128, 137, 141, 126, 140, 122, 135, 131, 133, 148, 134, 109, 133, 129, 135, 131, 140, 130, 121, 125, 120, 128, 151, 145, 145, 123, 129, 125, 147, 146, 135, 123, 122, 147, 129, 142, 124, 127, 127, 146, 126, 130, 140, 129, 151, 124, 139, 141, 135, 134, 138, 130, 145, 134, 149, 129, 138, 140, 131, 129, 139, 132, 144, 137, 124, 136, 126, 125, 115, 119, 132, 150, 139, 128, 128, 134, 136, 135, 149, 141, 131, 140, 137, 138, 128, 134, 139, 152, 134, 142, 136, 125, 147, 138, 133, 132, 148, 131, 145, 126, 132, 150, 144, 124, 132, 138, 129, 129, 136, 134, 146, 146, 120, 163, 128, 142, 150, 149, 137, 144, 137, 145, 131, 133, 128, 124, 129, 129, 140, 127, 126, 137, 146, 133, 127, 125, 137, 149, 125, 144, 137, 134, 139, 141, 132, 131, 133, 126, 143, 121, 139, 126, 139, 138, 132, 138, 146, 141, 146, 137, 141, 127, 116, 133, 135, 140, 152, 127, 122, 124, 117, 127, 147, 142, 126, 133, 140, 125, 131, 134, 139, 146, 134, 137, 141, 131, 138, 135, 140, 127, 145, 131, 129, 133, 143, 137, 130, 129, 129, 131, 137, 136, 129, 139, 141, 147, 135, 134, 140, 140, 141, 145, 127, 124, 124, 140, 116, 129, 128, 125, 136, 140, 133, 119, 130, 128, 124, 138, 128, 135, 137, 146, 135, 137, 138, 137, 143, 142, 145, 141, 122, 128, 146, 156, 120, 127, 141, 142, 147, 137, 133, 122, 115, 134, 141, 138, 134, 119, 142, 125, 125, 144, 137, 124, 138, 140, 139, 125, 136, 148, 177, 126, 136, 132, 142, 129, 138, 144, 133, 154, 129, 153, 137, 103, 147, 129, 142, 106, 138, 141, 121, 132, 126, 122, 147, 141, 131, 126, 138, 132, 128, 136, 140, 127, 136, 135, 135, 127, 137, 139, 135, 136, 138, 151, 129, 143, 120, 138, 139, 137, 136, 136, 142, 115, 137, 126, 132, 117, 136, 132, 130, 131, 128, 131, 146, 147, 139, 132, 136, 135, 135, 122, 127, 133, 170, 126, 143, 152, 142, 114, 138, 154, 128, 133, 133, 130, 139, 135, 133, 142, 145, 147, 135, 115, 136, 139, 123, 135, 139, 133, 124, 126, 135, 123, 130, 191, 141, 135, 130, 144, 140, 134, 138, 144, 132, 140, 142, 146, 138, 125, 139, 129, 170, 122, 152, 143, 157, 130, 127, 149, 137, 136, 135, 146, 136, 137, 136, 128, 136, 130, 140, 110, 136, 142, 153, 139, 137, 138, 135, 133, 144, 129, 144, 138, 128, 112, 130, 142, 146, 137, 141, 124, 139, 131, 135, 130, 124, 123, 146, 110, 146, 133, 139, 132, 134, 129, 137, 141, 122, 131, 130, 146, 134, 138, 132, 131, 132, 136, 129, 133, 123, 146, 139, 132, 150, 146, 129, 139, 137, 137, 137, 140, 135, 144, 129, 129, 141, 139, 130, 132, 134, 133, 129, 134, 138, 168, 135, 132, 126, 131, 134, 162, 117, 124, 156, 139, 132, 135, 116, 143, 147, 127, 134, 144, 140, 139, 134, 136, 135, 130, 138, 122, 128, 141, 124, 127, 128, 140, 143, 127, 135, 135, 148, 122, 141, 132, 133, 144, 142, 140, 136, 120, 135, 134, 142, 132, 130, 120, 116, 143, 140, 136, 129, 118, 138, 147, 135, 138, 127, 137, 125, 130, 143, 143, 137, 133, 128, 155, 137, 137, 138, 126, 133, 123, 144, 149, 134, 133, 134, 87, 135, 142, 133, 127, 130, 132, 163, 144, 135, 158, 139, 128, 134, 138, 135, 132, 141, 137, 144, 131, 132, 131, 133, 133, 161, 127, 161, 139, 134, 129, 129, 136, 129, 138, 137, 132, 158, 135, 135, 139, 135, 136, 141, 135, 161, 117, 123, 148, 129, 135, 129, 141, 116, 137, 130, 126, 140, 136, 168, 102, 125, 130, 136, 107, 144, 137, 127, 125, 145, 132, 143, 136, 146, 136, 178, 128, 141, 145, 150, 132, 128, 143, 140, 108, 127, 138, 135, 144, 138, 137, 127, 134, 120, 131, 126, 130, 115, 144, 138, 131, 127, 132, 135, 142, 146, 124, 129, 141, 132, 137, 137, 130, 125, 130, 125, 131, 140, 147, 138, 132, 141, 108, 130, 129, 124, 155, 149, 118, 137, 137, 135, 143, 152, 117, 132, 130, 132, 102, 126, 139, 146, 144, 105, 126, 131, 133, 136, 132, 147, 133, 139, 137, 144, 139, 133, 120, 134, 134, 126, 136, 132, 134, 128, 148, 126, 114, 120, 122, 146, 137, 137, 146, 133, 128, 123, 137, 138, 136, 142, 135, 141, 116, 119, 146, 139, 140, 133, 139, 134, 137, 135, 132, 120, 136, 144, 134, 138, 128, 138, 128, 103, 93, 140, 131, 132, 129, 146, 137, 132, 152, 143, 146, 113, 117, 138, 133, 146, 138, 135, 126, 147, 143, 135, 155, 125, 126, 132, 131, 143, 143, 125, 136, 133, 133, 127, 117, 138, 193, 148, 114, 121, 138, 126, 149, 143, 115, 149, 137, 138, 137, 141, 136, 126, 148, 128, 112, 141, 112, 158, 154, 143, 130, 136, 123, 133, 157, 130, 153, 121, 146, 135, 114, 155, 170, 138, 140, 146, 150, 145, 142, 130, 145, 139, 154, 137, 142, 130, 132, 140, 160, 160, 118, 133, 99, 140, 117, 163, 130, 123, 128, 143, 136, 160, 150, 131, 146, 128, 119, 124, 143, 122, 137, 132, 114, 124, 130, 144, 128, 111, 128, 127, 113, 125, 139, 127, 141, 124, 140, 126, 135, 133, 121, 141, 151, 126, 145, 155, 158, 135, 164, 121, 131, 91, 121, 137, 146, 137, 128, 142, 123, 141, 125, 125, 125, 148, 132, 140, 144, 128, 118, 128, 123, 138, 166, 119, 144, 102, 159, 123, 124, 145, 131, 132, 147, 136, 151, 119, 126, 118, 134, 113, 122, 119, 133, 114, 144, 132, 141, 126, 127, 126, 131, 165, 140, 135, 111, 126, 130, 130, 144, 134, 155, 142, 128, 135, 143, 138, 140, 139, 152, 133, 114, 138, 132, 139, 160, 167, 149, 127, 127, 137, 143, 142, 147, 133, 143, 134, 122, 135, 144, 137, 136, 174, 128, 127, 132, 127, 126, 132, 158, 149, 137, 139, 126, 145, 136, 142, 156, 139, 140, 150, 125, 137, 128, 133, 135, 150, 128, 125, 119, 128, 147, 140, 128, 107, 144, 137, 132, 143, 131, 137, 144, 148, 121, 139, 140, 127, 112, 147, 129, 141, 142, 151, 151, 142, 141, 131, 145, 131, 135, 138, 127, 146, 135, 141, 124, 140, 130, 147, 126, 129, 105, 129, 131, 128, 118, 139, 149, 108, 134, 162, 120, 117, 126, 122, 137, 157, 148, 127, 135, 141, 163, 136, 148, 123, 118, 111, 109, 142, 124, 136, 144, 151, 147, 156, 138, 130, 127, 140, 125, 125, 120, 122, 124, 141, 145, 133, 137, 155, 132, 124, 121, 133, 134, 151, 122, 117, 132, 140, 119, 144, 144, 137, 140, 140, 125, 146, 131, 133, 124, 132, 168, 117, 135, 147, 139, 136, 142, 142, 129, 118, 134, 129, 130, 189, 144, 133, 130, 135, 133, 146, 158, 134, 123, 125, 130, 107, 143, 134, 129, 125, 121, 144, 132, 127, 110, 135, 148, 136, 141, 135, 135, 132, 132, 128, 126, 148, 144, 126, 113, 136, 147, 128, 135, 157, 126, 130, 130, 152, 141, 151, 146, 148, 153, 124, 132, 134, 154, 145, 153, 101, 132, 136, 135, 132, 177, 158, 120, 142, 161, 115, 132, 117, 136, 143, 135, 130, 143, 136, 139, 132, 124, 143, 130, 139, 134, 157, 144, 147, 145, 163, 151, 122, 140, 113, 126, 132, 156, 166, 155, 139, 140, 99, 134, 150, 139, 145, 127, 137, 128, 143, 138, 145, 122, 145, 131, 128, 127, 142, 126, 148, 130, 141, 127, 127, 138, 132, 144, 129, 134, 119, 148, 141, 145, 128, 130, 124, 139, 150, 127, 137, 143, 137, 138, 149, 137, 159, 117, 132, 135, 143, 149, 136, 126, 141, 135, 128, 141, 133, 134, 141, 131, 144, 128, 139, 126, 136, 145, 136, 129, 110, 135, 143, 133, 139, 134, 140, 133, 149, 145, 138, 138, 138, 142, 134, 136, 122, 128, 147, 140, 135, 137, 134, 148, 128, 128, 143, 137, 131, 143, 127, 142, 127, 135, 129, 127, 132, 143, 120, 135, 145, 127, 132, 142, 126, 138, 145, 133, 133, 144, 137, 141, 142, 137, 126, 134, 131, 123, 130, 126, 134, 142, 127, 132, 127, 136, 127, 139, 149, 147, 137, 140, 136, 146, 141, 160, 129, 140, 129, 134, 155, 135, 143, 134, 136, 110, 123, 133, 114, 137, 146, 138, 132, 126, 125, 135, 139, 135, 131, 125, 135, 114, 128, 132, 131, 126, 141, 119, 131, 142, 124, 139, 130, 129, 155, 141, 126, 138, 140, 132, 124, 130, 106, 123, 136, 133, 129, 131, 157, 131, 132, 172, 128, 152, 134, 130, 127, 134, 129, 148, 126, 134, 136, 134, 127, 125, 140, 108, 129, 133, 140, 134, 151, 133, 143, 131, 129, 136, 120, 130, 125, 140, 130, 134, 127, 137, 139, 120, 136, 121, 155, 125, 142, 134, 132, 132, 148, 132, 145, 132, 143, 150, 133, 108, 134, 127, 119, 131, 135, 135, 130, 127, 141, 148, 115, 131, 128, 133, 131, 132, 130, 123, 153, 143, 129, 139, 127, 153, 145, 132, 135, 146, 149, 147, 130, 162, 143, 136, 131, 136, 142, 126, 139, 142, 126, 136, 133, 147, 140, 136, 142, 131, 135, 152, 127, 132, 143, 132, 131, 122, 130, 134, 136, 135, 139, 139, 134, 138, 137, 130, 142, 120, 130, 131, 146, 141, 129, 133, 151, 134, 137, 117, 133, 152, 135, 140, 162, 136, 132, 129, 132, 134, 125, 127, 142, 138, 152, 132, 131, 125, 133, 136, 131, 131, 135, 123, 143, 140, 133, 140, 152, 126, 146, 137, 143, 129, 132, 145, 132, 132, 130, 108, 137, 144, 138, 137, 115, 144, 102, 127, 127, 131, 128, 137, 158, 147, 127, 145, 131, 142, 151, 123, 138, 144, 142, 140, 140, 140, 134, 127, 144, 145, 136, 133, 141, 146, 114, 127, 134, 125, 154, 133, 139, 138, 130, 135, 131, 136, 128, 168, 136, 137, 133, 117, 131, 129, 165, 139, 130, 133, 133, 123, 140, 142, 139, 144, 133, 138, 135, 118, 134, 134, 142, 124, 146, 147, 146, 114, 130, 134, 131, 131, 129, 147, 149, 137, 130, 152, 134, 140, 143, 143, 123, 141, 124, 128, 123, 138, 140, 131, 151, 131, 141, 136, 133, 135, 129, 138, 146, 138, 140, 132, 128, 139, 152, 130, 131, 136, 130, 154, 135, 131, 127, 134, 140, 130, 132, 149, 140, 135, 122, 134, 133, 134, 135, 127, 141, 131, 136, 150, 142, 140, 132, 131, 139, 126, 129, 138, 143, 122, 127, 136, 135, 128, 137, 138, 138, 137, 147, 133, 138, 129, 129, 139, 144, 140, 121, 137, 127, 133, 149, 135, 133, 133, 139, 143, 145, 134, 141, 121, 133, 119, 129, 126, 119, 128, 143, 135, 141, 140, 139, 133, 115, 139, 135, 117, 140, 137, 130, 145, 131, 130, 139, 145, 144, 138, 149, 146, 128, 138, 138, 124, 136, 142, 144, 129, 140, 137, 141, 135, 146, 136, 146, 140, 140, 159, 135, 131, 136, 136, 119, 145, 137, 143, 141, 133, 140, 136, 152, 138, 138, 154, 128, 129, 136, 123, 132, 145, 132, 135, 128, 144, 156, 141, 129, 126, 135, 129, 139, 140, 149, 142, 133, 106, 142, 133, 121, 139, 135, 142, 140, 144, 133, 145, 126, 144, 146, 138, 136, 219, 134, 146, 137, 144, 136, 114, 124, 154, 137, 141, 139, 140, 147, 149, 133, 135, 130, 135, 138, 153, 132, 132, 140, 149, 131, 113, 133, 135, 128, 111, 134, 134, 132, 135, 156, 160, 132, 155, 136, 130, 136, 138, 133, 133, 135, 140, 138, 120, 147, 124, 163, 131, 142, 139, 138, 131, 129, 129, 138, 143, 147, 133, 131, 136, 140, 138, 141, 134, 128, 144, 133, 139, 138, 123, 132, 139, 130, 131, 143, 130, 135, 131, 135, 131, 133, 123, 146, 134, 131, 135, 142, 139, 149, 143, 126, 128, 130, 134, 154, 142, 134, 146, 133, 126, 143, 127, 136, 127, 136, 135, 132, 132, 141, 140, 143, 121, 139, 132, 142, 133, 141, 132, 132, 143, 134, 137, 135, 142, 139, 139, 127, 124, 144, 137, 132, 118, 131, 137, 136, 133, 138, 133, 135, 134, 143, 139, 133, 159, 131, 139, 137, 142, 131, 123, 143, 133, 138, 128, 142, 142, 140, 145, 138, 123, 153, 137, 135, 145, 140, 146, 135, 133, 148, 134, 137, 133, 136, 125, 138, 131, 130, 137, 132, 121, 143, 125, 134, 137, 130, 128, 153, 145, 141, 147, 126, 133, 136, 133, 126, 136, 136, 129, 131, 147, 140, 134, 127, 139, 132, 148, 137, 145, 145, 131, 124, 130, 137, 142, 132, 131, 134, 136, 141, 137, 146, 138, 135, 132, 141, 144, 133, 132, 109, 135, 142, 139, 123, 145, 131, 136, 140, 137, 128, 137, 131, 133, 130, 138, 141, 145, 133, 141, 133, 135, 130, 147, 142, 145, 215, 164, 140, 142, 128, 130, 136, 132, 132, 138, 130, 125, 128, 137, 140, 133, 135, 147, 132, 129, 143, 126, 148, 138, 128, 133, 144, 133, 134, 140, 143, 126, 129, 136, 130, 139, 129, 118, 146, 140, 126, 137, 135, 129, 132, 129, 124, 127, 128, 133, 139, 131, 134, 131, 138, 126, 135, 133, 143, 128, 144, 133, 134, 130, 148, 130, 133, 141, 143, 130, 130, 130, 135, 126, 143, 133, 143, 138, 131, 139, 131, 140, 151, 129, 145, 142, 138, 132, 137, 139, 126, 136, 146, 147, 126, 124, 134, 139, 145, 146, 139, 125, 135, 135, 131, 142, 132, 134, 140, 129, 143, 129, 136, 132, 143, 136, 130, 128, 135, 140, 147, 132, 123, 124, 133, 138, 120, 132, 139, 144, 138, 128, 131, 128, 133, 129, 133, 140, 134, 125, 142, 139, 120, 131, 136, 137, 140, 144, 136, 143, 142, 135, 131, 141, 131, 131, 138, 132, 154, 130, 141, 134, 139, 143, 135, 138, 136, 139, 151, 114, 133, 130, 140, 144, 140, 152, 141, 138, 133, 144, 145, 128, 141, 124, 154, 117, 137, 141, 127, 136, 128, 136, 138, 145, 134, 125, 139, 135, 140, 129, 138, 147, 134, 127, 142, 139, 135, 146, 132, 158, 137, 140, 144, 139, 140, 138, 145, 132, 134, 125, 140, 123, 130, 115, 127, 128, 136, 135, 134, 131, 129, 117, 131, 123, 135, 126, 137, 136, 131, 129, 142, 140, 145, 139, 148, 145, 135, 133, 135, 146, 128, 135, 142, 147, 123, 128, 137, 134, 132, 130, 147, 137, 128, 133, 133, 129, 143, 142, 142, 138, 119, 145, 125, 142, 132, 136, 143, 143, 134, 143, 134, 129, 144, 136, 132, 130, 130, 136, 142, 144, 137, 142, 143, 133, 132, 136, 146, 146, 145, 136, 126, 136, 130, 120, 136, 144, 121, 129, 135, 125, 149, 127, 131, 131, 146, 144, 135, 135, 151, 142, 135, 139, 138, 145, 137, 134, 130, 140, 141, 131, 136, 139, 129, 138, 138, 135, 141, 139, 132, 131, 126, 147, 138, 139, 143, 146, 132, 130, 139, 132, 127, 133, 135, 128, 137, 138, 122, 134, 106, 139, 132, 145, 127, 128, 129, 141, 132, 143, 128, 126, 127, 134, 137, 137, 134, 134, 138, 146, 121, 127, 140, 133, 137, 130, 126, 124, 132, 139, 131, 132, 121, 146, 132, 136, 142, 145, 134, 130, 137, 149, 128, 121, 131, 139, 135, 143, 137, 134, 122, 130, 145, 98, 120, 139, 143, 136, 133, 125, 149, 143, 137, 138, 134, 132, 139, 131, 157, 141, 133, 140, 145, 147, 141, 136, 132, 133, 135, 127, 137, 139, 134, 124, 131, 137, 143, 144, 150, 132, 145, 146, 135, 129, 126, 129, 128, 144, 134, 127, 140, 131, 140, 137, 135, 143, 141, 134, 133, 160, 133, 141, 100, 140, 135, 135, 140, 145, 137, 139, 149, 139, 129, 134, 138, 136, 133, 137, 144, 146, 127, 153, 134, 132, 122, 131, 124, 150, 140, 141, 131, 132, 139, 138, 132, 147, 142, 154, 134, 152, 134, 137, 134, 131, 138, 141, 111, 139, 134, 147, 134, 134, 127, 138, 137, 137, 135, 129, 137, 92, 120, 132, 134, 135, 138, 147, 139, 137, 145, 127, 156, 134, 138, 137, 130, 140, 142, 133, 140, 153, 133, 137, 131, 137, 142, 145, 139, 131, 132, 143, 141, 148, 139, 133, 137, 152, 128, 143, 133, 146, 134, 125, 143, 118, 133, 140, 126, 148, 125, 125, 134, 140, 141, 141, 141, 119, 139, 128, 140, 137, 136, 133, 133, 137, 143, 137, 139, 136, 158, 126, 135, 141, 141, 136, 141, 135, 134, 133, 136, 139, 126, 144, 128, 134, 122, 134, 142, 130, 129, 148, 131, 138, 148, 138, 127, 126, 122, 141, 135, 141, 127, 134, 138, 138, 137, 140, 145, 142, 137, 128, 135, 144, 150, 134, 129, 145, 126, 132, 136, 134, 127, 139, 128, 134, 136, 134, 124, 121, 136, 141, 147, 127, 129, 129, 136, 121, 130, 128, 122, 136, 120, 141, 123, 147, 138, 130, 120, 142, 124, 133, 133, 128, 142, 137, 130, 139, 128, 122, 128, 125, 146, 136, 131, 133, 137, 139, 128, 131, 145, 137, 123, 145, 132, 129, 133, 130, 160, 142, 139, 125, 130, 137, 132, 143, 153, 134, 119, 148, 145, 133, 127, 148, 138, 116, 145, 129, 137, 138, 132, 134, 130, 152, 119, 147, 154, 131, 148, 140, 143, 166, 137, 122, 136, 142, 128, 136, 139, 128, 125, 129, 131, 149, 142, 148, 135, 130, 126, 143, 134, 143, 136, 135, 140, 133, 133, 140, 159, 134, 135, 130, 123, 136, 142, 144, 127, 145, 114, 131, 124, 140, 134, 147, 125, 140, 145, 131, 135, 137, 138, 130, 136, 131, 152, 133, 146, 140, 142, 140, 133, 138, 136, 136, 130, 131, 122, 131, 132, 145, 141, 140, 144, 142, 132, 126, 131, 133, 137, 145, 150, 134, 140, 123, 130, 148, 134, 145, 140, 141, 135, 149, 124, 132, 134, 142, 137, 119, 152, 135, 143, 129, 138, 134, 138, 131, 142, 154, 105, 136, 132, 143, 139, 132, 136, 129, 140, 132, 127, 139, 131, 143, 126, 133, 138, 136, 128, 128, 124, 149, 126, 136, 137, 128, 144, 134, 134, 123, 128, 142, 144, 152, 131, 126, 141, 137, 130, 133, 124, 133, 130, 146, 134, 126, 140, 138, 126, 138, 132, 128, 130, 126, 130, 148, 143, 132, 139, 113, 132, 147, 135, 135, 134, 147, 144, 134, 108, 123, 124, 153, 141, 137, 135, 141, 124, 142, 134, 145, 134, 135, 150, 144, 133, 142, 148, 142, 137, 132, 135, 137, 120, 127, 136, 140, 134, 133, 139, 144, 149, 134, 137, 135, 142, 133, 143, 128, 142, 135, 140, 125, 137, 118, 137, 132, 129, 129, 129, 134, 116, 145, 116, 141, 126, 142, 139, 137, 128, 131, 129, 130, 144, 142, 142, 130, 142, 142, 132, 122, 140, 129, 135, 138, 123, 134, 135, 128, 141, 142, 149, 136, 139, 117, 123, 144, 128, 153, 150, 124, 126, 131, 138, 126, 146, 115, 147, 136, 137, 137, 134, 144, 121, 134, 153, 130, 130, 135, 135, 151, 143, 136, 131, 131, 146, 134, 131, 145, 137, 137, 134, 137, 136, 144, 137, 130, 138, 138, 131, 127, 133, 138, 134, 141, 134, 114, 145, 127, 128, 123, 131, 142, 140, 128, 129, 140, 136, 136, 133, 135, 132, 137, 140, 127, 136, 142, 131, 140, 132, 134, 152, 130, 128, 133, 143, 124, 133, 132, 128, 133, 132, 132, 129, 132, 149, 123, 131, 126, 145, 148, 133, 136, 135, 126, 141, 147, 116, 137, 126, 141, 136, 140, 127, 131, 125, 140, 138, 125, 133, 133, 143, 133, 148, 155, 133, 147, 127, 141, 142, 137, 135, 136, 119, 141, 131, 141, 132, 135, 127, 140, 134, 117, 142, 138, 145, 142, 152, 136, 139, 137, 138, 127, 153, 136, 141, 146, 134, 138, 136, 127, 139, 139, 135, 129, 156, 132, 132, 137, 136, 122, 124, 129, 124, 149, 135, 130, 138, 143, 133, 123, 137, 130, 123, 122, 131, 149, 126, 142, 140, 117, 138, 136, 139, 125, 129, 137, 173, 132, 142, 137, 133, 140, 134, 131, 136, 138, 144, 124, 130, 135, 160, 125, 131, 129, 155, 154, 136, 121, 132, 123, 125, 129, 155, 125, 139, 144, 138, 160, 129, 131, 134, 131, 129, 147, 150, 128, 133, 128, 147, 120, 136, 143, 156, 128, 154, 119, 128, 139, 145, 133, 153, 127, 140, 146, 155, 118, 145, 140, 140, 138, 158, 142, 124, 138, 140, 143, 127, 127, 150, 133, 134, 119, 137, 136, 149, 142, 138, 159, 116, 133, 127, 141, 127, 136, 145, 130, 154, 142, 115, 136, 136, 132, 142, 137, 152, 131, 133, 147, 141, 153, 136, 129, 127, 122, 143, 136, 127, 138, 141, 146, 143, 157, 114, 149, 128, 126, 138, 135, 164, 171, 164, 136, 137, 117, 131, 141, 131, 135, 139, 132, 132, 123, 144, 116, 129, 139, 129, 135, 145, 126, 126, 135, 131, 129, 126, 127, 126, 124, 148, 154, 115, 152, 136, 134, 147, 123, 141, 121, 127, 127, 146, 148, 133, 137, 132, 127, 142, 127, 137, 140, 143, 146, 147, 137, 138, 146, 128, 134, 123, 136, 120, 140, 177, 156, 112, 135, 146, 123, 142, 137, 145, 139, 114, 144, 143, 144, 129, 140, 128, 125, 125, 149, 122, 136, 133, 131, 130, 136, 134, 137, 130, 136, 137, 132, 141, 131, 127, 142, 107, 129, 145, 129, 140, 149, 138, 125, 145, 145, 123, 135, 143, 134, 130, 136, 128, 137, 123, 123, 134, 118, 139, 129, 119, 130, 124, 141, 126, 138, 139, 110, 151, 148, 130, 148, 133, 130, 152, 149, 132, 124, 151, 151, 115, 131, 117, 125, 140, 140, 143, 128, 145, 133, 140, 139, 132, 144, 124, 137, 121, 147, 129, 129, 132, 120, 133, 123, 130, 133, 137, 134, 134, 132, 142, 125, 138, 148, 137, 130, 141, 140, 132, 132, 132, 130, 145, 138, 132, 147, 149, 139, 145, 133, 146, 141, 154, 136, 160, 134, 147, 132, 135, 120, 126, 118, 125, 146, 133, 124, 140, 142, 133, 120, 126, 151, 130, 127, 124, 125, 122, 147, 141, 120, 139, 121, 128, 150, 134, 120, 124, 136, 132, 138, 127, 123, 153, 142, 124, 119, 132, 135, 142, 144, 142, 138, 141, 136, 132, 147, 135, 142, 139, 130, 119, 121, 125, 144, 140, 132, 142, 130, 132, 143, 145, 114, 134, 139, 134, 132, 129, 134, 131, 137, 128, 121, 130, 139, 141, 140, 138, 128, 142, 127, 122, 131, 147, 139, 144, 122, 148, 133, 140, 126, 170, 113, 127, 148, 142, 139, 112, 144, 144, 130, 128, 130, 140, 126, 152, 122, 116, 127, 109, 120, 136, 133, 141, 133, 138, 149, 160, 130, 142, 139, 128, 145, 134, 121, 135, 130, 121, 139, 138, 149, 138, 122, 131, 116, 115, 132, 127, 137, 125, 151, 149, 146, 121, 135, 141, 147, 143, 130, 126, 131, 119, 131, 134, 128, 148, 139, 128, 123, 139, 120, 125, 139, 133, 141, 133, 131, 127, 129, 140, 134, 138, 140, 139, 130, 133, 130, 138, 144, 132, 138, 131, 150, 135, 137, 134, 128, 130, 137, 128, 138, 133, 152, 131, 129, 133, 131, 132, 137, 133, 144, 124, 126, 153, 124, 143, 144, 137, 140, 132, 115, 132, 135, 141, 131, 140, 132, 141, 127, 134, 127, 144, 138, 143, 135, 142, 130, 131, 131, 145, 129, 138, 134, 133, 120, 127, 128, 137, 131, 138, 133, 130, 132, 137, 142, 137, 134, 136, 135, 134, 135, 140, 132, 141, 137, 157, 138, 126, 123, 135, 126, 134, 140, 132, 130, 133, 130, 132, 138, 145, 132, 130, 145, 135, 113, 132, 135, 134, 129, 126, 153, 123, 122, 135, 132, 134, 180, 136, 129, 130, 127, 136, 141, 127, 129, 133, 137, 144, 133, 139, 155, 135, 152, 129, 124, 135, 133, 146, 130, 124, 130, 127, 137, 134, 138, 123, 133, 134, 126, 126, 138, 137, 115, 129, 134, 137, 136, 129, 132, 127, 132, 134, 138, 136, 125, 141, 116, 133, 135, 141, 138, 128, 133, 129, 146, 136, 131, 122, 131, 133, 113, 129, 115, 139, 140, 141, 129, 140, 151, 135, 130, 124, 129, 134, 133, 130, 141, 121, 140, 134, 133, 132, 136, 135, 137, 129, 123, 135, 141, 142, 117, 137, 141, 133, 133, 138, 130, 134, 139, 133, 136, 135, 147, 131, 138, 130, 143, 133, 136, 149, 125, 130, 152, 135, 142, 140, 142, 137, 135, 135, 131, 148, 134, 134, 136, 141, 144, 138, 124, 131, 132, 143, 129, 132, 135, 134, 130, 141, 139, 129, 132, 135, 135, 133, 126, 138, 135, 133, 104, 140, 132, 137, 133, 138, 133, 131, 130, 126, 129, 122, 137, 130, 139, 145, 125, 139, 160, 138, 137, 132, 140, 131, 136, 131, 138, 123, 141, 137, 127, 135, 135, 128, 138, 133, 120, 146, 143, 134, 140, 143, 125, 144, 134, 138, 139, 137, 135, 149, 123, 143, 183, 134, 132, 124, 134, 130, 131, 138, 139, 141, 137, 130, 128, 137, 139, 131, 140, 136, 137, 137, 139, 132, 142, 135, 143, 131, 147, 143, 140, 136, 135, 131, 123, 138, 131, 146, 138, 137, 135, 124, 138, 127, 136, 132, 141, 134, 146, 137, 137, 159, 138, 126, 142, 132, 133, 138, 131, 132, 137, 130, 142, 137, 143, 143, 137, 138, 130, 133, 131, 178, 135, 135, 124, 130, 143, 142, 139, 133, 139, 137, 138, 138, 129, 127, 122, 130, 143, 117, 134, 136, 138, 137, 138, 134, 145, 137, 144, 144, 124, 141, 138, 140, 143, 138, 137, 142, 135, 133, 136, 131, 128, 134, 140, 133, 136, 115, 145, 139, 96, 131, 126, 141, 137, 127, 125, 139, 139, 146, 119, 135, 139, 133, 148, 107, 138, 136, 130, 135, 133, 151, 130, 132, 140, 148, 131, 129, 126, 138, 129, 131, 123, 128, 133, 130, 127, 133, 122, 130, 125, 153, 141, 135, 141, 133, 130, 130, 124, 127, 139, 126, 138, 138, 127, 119, 141, 128, 139, 147, 129, 135, 129, 140, 141, 131, 137, 137, 135, 133, 141, 128, 141, 140, 125, 143, 142, 126, 143, 137, 130, 139, 134, 141, 134, 134, 124, 141, 134, 134, 125, 143, 145, 135, 139, 135, 143, 134, 129, 144, 135, 146, 139, 131, 129, 143, 148, 150, 131, 148, 130, 125, 131, 128, 129, 133, 150, 120, 141, 137, 151, 131, 133, 140, 136, 145, 147, 155, 128, 133, 123, 120, 115, 130, 138, 129, 152, 152, 129, 129, 128, 132, 136, 132, 133, 144, 130, 123, 136, 134, 136, 148, 130, 132, 143, 131, 129, 142, 129, 141, 137, 124, 125, 135, 133, 135, 146, 145, 131, 129, 134, 135, 126, 146, 126, 133, 136, 124, 136, 134, 128, 114, 133, 134, 126, 150, 129, 139, 140, 137, 143, 136, 136, 135, 127, 125, 149, 138, 134, 140, 127, 135, 146, 127, 128, 125, 141, 135, 125, 140, 135, 138, 138, 133, 134, 141, 138, 144, 118, 128, 138, 125, 125, 142, 121, 128, 127, 136, 165, 130, 146, 133, 125, 137, 139, 142, 134, 124, 129, 133, 129, 147, 136, 145, 137, 118, 132, 143, 146, 132, 131, 148, 134, 162, 139, 128, 132, 131, 135, 133, 128, 127, 160, 152, 142, 141, 136, 129, 139, 127, 129, 140, 130, 129, 136, 129, 142, 148, 141, 135, 133, 137, 136, 129, 133, 132, 129, 129, 132, 141, 140, 136, 148, 144, 130, 124, 147, 137, 126, 145, 129, 124, 134, 132, 136, 124, 132, 170, 137, 134, 118, 128, 129, 141, 142, 152, 131, 147, 137, 147, 126, 140, 136, 111, 110, 148, 125, 138, 139, 138, 140, 131, 138, 130, 142, 120, 128, 129, 136, 129, 144, 134, 141, 144, 121, 146, 149, 136, 120, 130, 137, 136, 132, 140, 142, 138, 131, 126, 133, 133, 124, 122, 134, 133, 134, 142, 135, 127, 135, 131, 129, 146, 132, 140, 131, 131, 126, 137, 136, 128, 130, 132, 138, 147, 150, 138, 128, 153, 135, 151, 143, 133, 141, 131, 127, 134, 136, 137, 161, 122, 137, 144, 137, 154, 147, 137, 133, 128, 126, 139, 132, 130, 135, 134, 146, 127, 125, 137, 128, 130, 141, 127, 130, 148, 142, 132, 130, 146, 136, 144, 139, 143, 137, 136, 126, 148, 129, 134, 129, 129, 134, 129, 138, 142, 131, 130, 131, 138, 135, 138, 138, 135, 130, 135, 137, 134, 122, 134, 141, 147, 128, 145, 143, 127, 135, 135, 140, 135, 136, 133, 134, 129, 131, 134, 138, 134, 139, 128, 134, 147, 140, 137, 132, 133, 123, 127, 134, 151, 133, 128, 116, 128, 132, 135, 143, 137, 136, 136, 130, 128, 124, 153, 142, 143, 120, 132, 133, 136, 125, 136, 132, 123, 130, 132, 142, 130, 135, 149, 136, 148, 151, 129, 146, 136, 136, 131, 139, 125, 146, 139, 137, 144, 142, 153, 127, 130, 141, 129, 137, 142, 127, 139, 135, 148, 135, 137, 141, 139, 146, 126, 139, 132, 128, 142, 128, 143, 140, 137, 135, 163, 152, 127, 134, 128, 139, 131, 140, 135, 126, 146, 140, 146, 138, 117, 125, 137, 137, 136, 142, 133, 137, 136, 134, 135, 138, 129, 133, 118, 136, 116, 121, 132, 139, 137, 127, 139, 134, 152, 123, 145, 128, 116, 133, 155, 146, 149, 144, 130, 144, 148, 129, 137, 139, 140, 149, 126, 151, 134, 130, 150, 131, 135, 134, 143, 133, 117, 134, 143, 130, 112, 141, 121, 138, 147, 132, 133, 134, 148, 146, 148, 130, 152, 140, 154, 129, 150, 148, 148, 123, 148, 135, 140, 128, 139, 129, 153, 154, 122, 130, 138, 139, 151, 134, 139, 142, 130, 165, 160, 121, 140, 113, 130, 159, 151, 145, 144, 128, 117, 145, 144, 116, 134, 134, 143, 145, 127, 114, 144, 152, 109, 147, 138, 134, 124, 123, 113, 125, 136, 130, 157, 140, 129, 137, 126, 167, 129, 143, 135, 135, 130, 140, 151, 135, 122, 136, 124, 131, 146, 144, 132, 137, 129, 138, 140, 137, 148, 128, 143, 141, 136, 115, 140, 132, 130, 139, 124, 142, 130, 145, 143, 136, 136, 147, 129, 123, 134, 143, 143, 140, 139, 141, 121, 131, 134, 140, 155, 149, 136, 143, 122, 132, 125, 130, 157, 126, 150, 131, 127, 132, 141, 147, 128, 135, 132, 144, 127, 121, 143, 138, 121, 127, 107, 118, 122, 158, 140, 119, 139, 124, 148, 144, 152, 136, 130, 122, 130, 129, 130, 135, 121, 136, 128, 142, 159, 134, 145, 145, 131, 160, 135, 113, 141, 136, 111, 120, 125, 159, 127, 125, 136, 149, 151, 127, 129, 122, 135, 130, 145, 129, 145, 142, 150, 126, 159, 140, 153, 157, 128, 133, 140, 118, 129, 117, 122, 130, 133, 131, 132, 131, 138, 119, 133, 134, 152, 139, 138, 129, 146, 133, 134, 157, 148, 121, 158, 134, 143, 136, 132, 142, 134, 136, 125, 141, 124, 121, 149, 136, 139, 133, 122, 137, 135, 143, 144, 125, 137, 154, 114, 129, 119, 128, 146, 130, 138, 140, 154, 130, 138, 126, 158, 145, 125, 127, 129, 146, 142, 139, 135, 128, 135, 130, 131, 116, 153, 131, 128, 137, 144, 145, 137, 135, 133, 123, 149, 130, 123, 137, 145, 128, 126, 117, 138, 136, 129, 143, 135, 130, 142, 147, 134, 149, 143, 133, 134, 135, 143, 124, 136, 130, 144, 157, 123, 144, 138, 134, 148, 127, 113, 151, 139, 142, 153, 143, 127, 158, 136, 142, 132, 149, 135, 134, 147, 138, 132, 123, 135, 127, 138, 139, 138, 126, 139, 141, 126, 143, 132, 150, 109, 137, 145, 132, 132, 153, 145, 127, 144, 139, 136, 145, 151, 134, 132, 128, 136, 136, 156, 132, 134, 131, 144, 135, 142, 153, 153, 151, 123, 130, 120, 120, 135, 117, 117, 143, 123, 131, 143, 130, 144, 117, 122, 136, 149, 131, 126, 113, 130, 140, 135, 141, 147, 132, 147, 135, 146, 174, 143, 136, 130, 128, 133, 147, 154, 136, 153, 136, 147, 139, 135, 128, 149, 134, 130, 110, 118, 133, 127, 121, 148, 132, 139, 151, 139, 134, 127, 132, 130, 122, 156, 124, 130, 137, 139, 145, 159, 129, 150, 121, 135, 132, 144, 131, 133, 122, 128, 134, 139, 137, 134, 133, 136, 130, 140, 134, 121, 126, 128, 146, 138, 134, 133, 137, 135, 152, 134, 130, 136, 136, 139, 129, 134, 129, 141, 138, 137, 127, 112, 133, 125, 142, 144, 129, 135, 124, 126, 134, 136, 127, 134, 126, 131, 132, 120, 127, 143, 137, 134, 129, 132, 137, 120, 130, 141, 129, 139, 134, 128, 129, 112, 131, 121, 141, 141, 136, 141, 136, 141, 128, 122, 127, 134, 142, 128, 147, 131, 145, 119, 135, 143, 134, 142, 129, 129, 142, 136, 137, 140, 132, 135, 131, 133, 136, 142, 147, 140, 125, 140, 141, 141, 140, 137, 130, 124, 137, 136, 130, 149, 132, 139, 137, 141, 142, 144, 133, 145, 139, 139, 160, 137, 134, 121, 166, 138, 137, 154, 149, 145, 136, 130, 142, 136, 125, 138, 131, 131, 127, 131, 161, 133, 131, 134, 143, 135, 123, 126, 121, 122, 128, 144, 137, 87, 139, 145, 134, 141, 136, 132, 155, 121, 136, 136, 138, 135, 135, 139, 127, 137, 127, 141, 136, 133, 134, 143, 133, 139, 128, 140, 129, 140, 134, 144, 131, 133, 123, 153, 136, 140, 134, 130, 135, 133, 136, 137, 129, 140, 126, 125, 135, 135, 138, 144, 135, 138, 135, 147, 139, 123, 146, 125, 137, 139, 131, 131, 131, 134, 130, 133, 143, 129, 148, 138, 135, 136, 147, 150, 140, 145, 137, 138, 126, 138, 132, 129, 120, 132, 135, 131, 131, 139, 138, 133, 136, 136, 100, 136, 133, 132, 126, 131, 141, 138, 139, 131, 127, 148, 131, 140, 132, 135, 125, 156, 131, 120, 136, 129, 135, 138, 138, 140, 141, 138, 147, 135, 140, 138, 128, 138, 134, 139, 134, 148, 136, 130, 134, 133, 141, 130, 127, 114, 126, 130, 134, 134, 142, 152, 155, 145, 132, 145, 128, 121, 137, 145, 134, 142, 128, 138, 141, 136, 136, 129, 145, 141, 130, 139, 133, 133, 131, 127, 142, 148, 146, 142, 134, 126, 134, 144, 161, 131, 154, 147, 157, 137, 134, 130, 136, 132, 173, 148, 134, 137, 140, 138, 134, 175, 138, 130, 129, 126, 141, 119, 134, 133, 130, 127, 134, 146, 133, 144, 149, 139, 143, 133, 139, 129, 134, 134, 138, 131, 134, 130, 109, 112, 137, 150, 129, 147, 138, 138, 136, 142, 159, 146, 137, 139, 148, 125, 137, 130, 133, 139, 143, 143, 136, 129, 144, 137, 146, 150, 131, 140, 134, 139, 144, 148, 123, 138, 135, 136, 133, 127, 129, 114, 148, 140, 133, 134, 138, 143, 140, 127, 129, 134, 99, 138, 123, 130, 136, 142, 130, 143, 128, 151, 139, 124, 138, 142, 146, 140, 145, 144, 121, 140, 135, 136, 144, 129, 134, 143, 150, 134, 132, 138, 139, 136, 140, 136, 146, 134, 135, 145, 150, 126, 103, 147, 136, 145, 137, 128, 129, 127, 165, 127, 143, 138, 133, 150, 136, 134, 127, 140, 127, 149, 136, 132, 132, 141, 128, 149, 151, 130, 131, 136, 136, 148, 126, 138, 128, 131, 129, 131, 144, 154, 138, 141, 125, 140, 138, 147, 135, 140, 144, 135, 130, 140, 144, 131, 132, 140, 149, 123, 136, 142, 129, 132, 148, 148, 127, 145, 124, 137, 117, 156, 141, 123, 138, 116, 127, 131, 144, 129, 136, 129, 136, 146, 136, 128, 113, 137, 134, 132, 131, 128, 137, 146, 144, 143, 129, 139, 145, 131, 138, 115, 126, 132, 118, 139, 143, 115, 151, 133, 136, 133, 126, 152, 128, 134, 136, 121, 130, 131, 147, 135, 139, 138, 125, 139, 154, 121, 130, 153, 134, 140, 125, 137, 133, 132, 131, 132, 135, 141, 130, 133, 131, 121, 139, 140, 129, 130, 124, 139, 139, 138, 136, 119, 134, 147, 138, 140, 134, 130, 137, 134, 140, 130, 133, 143, 138, 128, 133, 134, 117, 142, 136, 131, 132, 136, 142, 127, 155, 139, 134, 120, 144, 120, 140, 123, 144, 136, 136, 138, 159, 129, 141, 137, 142, 134, 127, 127, 134, 134, 128, 122, 129, 138, 133, 133, 137, 136, 141, 141, 139, 143, 116, 125, 143, 128, 123, 119, 163, 140, 132, 136, 124, 136, 140, 122, 127, 146, 128, 137, 129, 135, 133, 152, 117, 147, 138, 145, 138, 131, 142, 142, 146, 136, 131, 152, 129, 124, 133, 134, 129, 133, 137, 142, 127, 132, 124, 142, 144, 122, 129, 138, 128, 150, 134, 130, 136, 135, 125, 135, 127, 143, 141, 130, 155, 131, 142, 139, 135, 124, 126, 129, 135, 138, 145, 149, 139, 164, 144, 129, 135, 140, 133, 128, 126, 152, 126, 130, 135, 144, 127, 152, 156, 136, 141, 174, 149, 124, 140, 136, 131, 154, 124, 137, 121, 135, 128, 131, 126, 135, 135, 125, 138, 124, 115, 152, 145, 124, 137, 132, 129, 125, 128, 137, 128, 135, 140, 145, 148, 133, 123, 132, 143, 132, 119, 134, 131, 146, 141, 140, 131, 139, 125, 145, 142, 158, 139, 137, 119, 130, 142, 132, 128, 140, 123, 136, 110, 133, 140, 136, 131, 134, 131, 167, 135, 152, 130, 137, 144, 148, 137, 120, 132, 142, 127, 147, 123, 143, 143, 137, 149, 146, 132, 135, 149, 129, 145, 127, 146, 147, 139, 136, 136, 135, 147, 133, 134, 131, 113, 140, 140, 135, 146, 127, 151, 152, 131, 149, 137, 130, 131, 128, 145, 142, 124, 123, 134, 142, 143, 126, 133, 137, 161, 135, 124, 147, 141, 127, 132, 131, 130, 130, 143, 157, 133, 133, 149, 141, 134, 142, 133, 151, 135, 132, 139, 131, 127, 134, 145, 155, 110, 119, 129, 128, 141, 122, 133, 144, 143, 140, 144, 145, 127, 133, 143, 121, 128, 143, 150, 127, 144, 127, 130, 123, 140, 130, 150, 145, 130, 129, 144, 132, 128, 129, 143, 122, 131, 142, 133, 159, 141, 136, 140, 146, 138, 131, 140, 140, 154, 132, 135, 143, 136, 137, 131, 152, 140, 125, 129, 127, 138, 129, 135, 129, 130, 119, 120, 144, 143, 144, 136, 144, 133, 150, 141, 128, 132, 138, 145, 144, 144, 143, 134, 131, 162, 143, 126, 145, 129, 118, 151, 146, 129, 167, 126, 144, 115, 139, 151, 143, 136, 147, 149, 139, 145, 142, 155, 125, 137, 110, 138, 136, 122, 144, 133, 143, 135, 123, 144, 141, 125, 119, 108, 122, 127, 141, 134, 138, 139, 145, 137, 132, 145, 135, 148, 140, 113, 143, 147, 129, 148, 136, 146, 135, 123, 148, 148, 150, 137, 134, 127, 130, 128, 139, 129, 141, 162, 171, 127, 123, 134, 138, 122, 136, 128, 139, 132, 139, 126, 135, 137, 139, 123, 129, 122, 123, 133, 132, 120, 126, 135, 130, 145, 135, 137, 139, 132, 130, 136, 123, 128, 125, 139, 140, 137, 137, 151, 134, 136, 118, 139, 135, 128, 137, 136, 126, 134, 156, 135, 120, 140, 112, 140, 117, 135, 130, 125, 142, 134, 137, 124, 161, 120, 142, 158, 151, 133, 149, 132, 136, 150, 123, 144, 153, 125, 133, 132, 138, 132, 138, 133, 124, 135, 132, 145, 136, 108, 147, 137, 131, 129, 122, 144, 139, 129, 136, 122, 140, 141, 131, 144, 141, 127, 146, 122, 116, 145, 141, 139, 135, 140, 147, 138, 127, 142, 148, 134, 146, 121, 140, 128, 126, 141, 135, 147, 151, 139, 158, 128, 139, 134, 132, 138, 115, 131, 129, 133, 145, 131, 121, 128, 136, 145, 140, 139, 144, 116, 152, 139, 145, 123, 135, 132, 130, 133, 142, 145, 122, 121, 129, 133, 118, 131, 147, 152, 127, 122, 146, 125, 143, 132, 137, 135, 150, 153, 132, 160, 133, 133, 138, 138, 134, 135, 138, 151, 125, 142, 136, 150, 135, 124, 135, 135, 128, 131, 160, 130, 146, 136, 139, 131, 163, 143, 129, 123, 132, 128, 164, 132, 136, 128, 140, 131, 128, 155, 133, 130, 135, 135, 134, 157, 143, 139, 142, 140, 117, 123, 173, 139, 147, 142, 136, 148, 117, 128, 132, 140, 131, 140, 148, 136, 120, 150, 136, 122, 147, 135, 137, 140, 131, 146, 134, 130, 131, 135, 149, 158, 140, 124, 132, 140, 141, 151, 127, 118, 125, 120, 116, 131, 124, 136, 134, 129, 136, 129, 141, 147, 130, 125, 130, 135, 132, 130, 129, 138, 126, 128, 131, 125, 141, 139, 135, 106, 133, 129, 140, 153, 130, 141, 127, 149, 144, 133, 142, 128, 136, 127, 133, 125, 135, 156, 154, 141, 126, 141, 138, 141, 124, 143, 136, 144, 125, 144, 133, 110, 139, 129, 144, 133, 122, 137, 139, 123, 133, 133, 132, 122, 141, 129, 129, 123, 141, 120, 137, 129, 145, 148, 138, 128, 124, 131, 129, 136, 144, 132, 122, 101, 123, 128, 125, 121, 153, 130, 141, 126, 134, 132, 118, 138, 168, 142, 131, 115, 123, 131, 133, 143, 121, 139, 139, 145, 126, 127, 140, 128, 124, 121, 138, 151, 127, 136, 127, 139, 130, 137, 140, 139, 137, 138, 167, 130, 128, 147, 132, 129, 159, 144, 141, 134, 138, 140, 122, 143, 141, 131, 115, 152, 136, 131, 147, 136, 130, 132, 132, 133, 140, 133, 129, 150, 127, 140, 122, 137, 135, 134, 135, 126, 138, 137, 137, 144, 128, 138, 130, 136, 146, 126, 147, 140, 147, 140, 129, 137, 144, 138, 135, 150, 130, 136, 126, 145, 137, 137, 132, 143, 128, 124, 125, 138, 131, 131, 143, 143, 144, 149, 142, 133, 142, 129, 143, 134, 132, 139, 133, 132, 138, 135, 139, 138, 137, 129, 131, 135, 153, 132, 135, 136, 132, 140, 148, 139, 128, 137, 145, 129, 133, 140, 133, 137, 145, 141, 134, 144, 140, 135, 142, 145, 131, 137, 139, 121, 142, 133, 151, 136, 143, 142, 137, 141, 143, 135, 145, 140, 141, 123, 145, 145, 139, 132, 140, 143, 134, 140, 144, 127, 137, 138, 140, 152, 142, 142, 133, 148, 135, 133, 138, 136, 142, 132, 147, 140, 144, 140, 139, 140, 127, 108, 126, 137, 139, 138, 128, 145, 136, 137, 141, 123, 130, 111, 129, 135, 153, 139, 134, 145, 136, 143, 133, 141, 140, 136, 139, 141, 138, 140, 146, 133, 136, 138, 139, 135, 141, 137, 129, 138, 137, 143, 136, 141, 133, 135, 138, 120, 126, 136, 140, 132, 139, 132, 126, 139, 144, 133, 133, 132, 145, 141, 135, 138, 126, 134, 141, 130, 141, 142, 145, 147, 142, 140, 133, 148, 146, 127, 137, 137, 132, 144, 141, 140, 140, 130, 140, 134, 137, 125, 136, 141, 135, 130, 137, 140, 147, 135, 136, 130, 141, 125, 142, 131, 135, 143, 125, 132, 128, 138, 140, 145, 146, 137, 131, 137, 131, 140, 137, 133, 144, 137, 139, 139, 132, 141, 139, 130, 133, 135, 144, 146, 131, 127, 129, 138, 148, 133, 140, 135, 135, 132, 136, 134, 135, 114, 139, 131, 143, 143, 134, 141, 143, 129, 142, 136, 129, 136, 144, 129, 149, 131, 139, 126, 140, 138, 164, 135, 136, 135, 135, 146, 134, 136, 154, 136, 143, 139, 133, 148, 130, 145, 138, 137, 146, 138, 132, 144, 129, 136, 133, 149, 149, 131, 129, 129, 146, 139, 138, 131, 146, 142, 147, 145, 141, 148, 131, 134, 139, 143, 140, 142, 145, 147, 129, 133, 141, 133, 143, 131, 131, 139, 133, 141, 139, 137, 135, 143, 142, 137, 131, 132, 141, 130, 145, 123, 142, 139, 135, 136, 142, 140, 136, 152, 138, 136, 140, 133, 130, 138, 141, 132, 129, 133, 143, 128, 132, 133, 139, 139, 130, 132, 136, 136, 140, 149, 143, 145, 132, 134, 133, 141, 138, 124, 137, 141, 132, 136, 152, 130, 148, 145, 131, 133, 144, 140, 144, 146, 139, 127, 134, 123, 141, 136, 142, 130, 144, 141, 132, 131, 152, 140, 131, 121, 139, 132, 139, 139, 139, 131, 147, 127, 140, 132, 134, 139, 127, 153, 129, 135, 140, 142, 143, 138, 140, 156, 135, 141, 138, 138, 130, 137, 142, 145, 138, 141, 140, 143, 147, 134, 136, 140, 147, 135, 130, 129, 133, 147, 141, 149, 142, 138, 136, 145, 145, 142, 137, 138, 141, 121, 132, 131, 131, 139, 131, 151, 143, 142, 132, 140, 143, 141, 134, 136, 129, 117, 138, 132, 144, 143, 154, 137, 132, 138, 138, 138, 125, 130, 133, 141, 128, 134, 134, 139, 135, 136, 142, 136, 127, 120, 131, 152, 140, 137, 141, 118, 130, 119, 132, 131, 157, 139, 125, 128, 120, 137, 128, 134, 143, 137, 144, 133, 147, 125, 149, 133, 139, 133, 145, 156, 125, 130, 134, 126, 143, 131, 122, 144, 160, 130, 119, 127, 143, 141, 154, 137, 132, 133, 128, 132, 129, 130, 145, 131, 138, 147, 136, 120, 137, 136, 134, 125, 131, 142, 136, 144, 140, 139, 120, 135, 139, 133, 138, 130, 135, 112, 133, 131, 136, 140, 126, 140, 115, 142, 127, 136, 151, 128, 130, 131, 130, 129, 145, 127, 147, 144, 132, 127, 136, 124, 138, 131, 128, 126, 130, 139, 153, 145, 117, 131, 135, 141, 134, 139, 132, 143, 126, 127, 141, 119, 133, 127, 133, 145, 143, 135, 142, 145, 149, 141, 135, 127, 139, 138, 124, 137, 131, 115, 141, 139, 109, 139, 134, 149, 139, 113, 124, 135, 147, 121, 142, 127, 126, 133, 136, 145, 136, 144, 125, 134, 132, 133, 148, 143, 128, 154, 143, 130, 132, 127, 139, 129, 140, 139, 132, 135, 132, 138, 146, 130, 130, 134, 127, 121, 131, 142, 148, 144, 127, 130, 136, 127, 130, 135, 142, 137, 134, 126, 143, 120, 158, 140, 140, 151, 148, 160, 125, 136, 138, 138, 147, 134, 129, 128, 121, 130, 123, 137, 131, 146, 126, 143, 156, 139, 130, 133, 139, 126, 142, 119, 133, 130, 132, 133, 139, 134, 136, 126, 133, 125, 148, 135, 140, 141, 140, 127, 146, 133, 128, 141, 148, 134, 140, 153, 135, 134, 133, 128, 131, 121, 140, 134, 138, 134, 141, 119, 114, 146, 151, 133, 146, 149, 119, 119, 129, 136, 147, 129, 144, 129, 143, 138, 117, 134, 119, 133, 131, 146, 143, 135, 134, 146, 134, 142, 149, 130, 129, 144, 138, 131, 126, 146, 144, 125, 140, 127, 129, 139, 125, 132, 131, 149, 129, 132, 121, 124, 121, 126, 122, 136, 111, 131, 142, 135, 131, 155, 125, 123, 145, 146, 136, 140, 140, 117, 128, 143, 128, 159, 138, 131, 126, 157, 123, 146, 141, 131, 126, 141, 136, 135, 133, 144, 145, 139, 129, 138, 128, 136, 144, 149, 128, 140, 133, 137, 137, 122, 131, 147, 134, 132, 120, 146, 126, 140, 136, 131, 153, 141, 114, 140, 137, 142, 131, 143, 144, 132, 145, 130, 126, 134, 135, 159, 136, 135, 146, 127, 136, 143, 127, 120, 119, 126, 131, 133, 142, 110, 132, 148, 140, 131, 125, 125, 128, 124, 138, 129, 132, 135, 137, 138, 135, 132, 134, 128, 135, 120, 135, 136, 111, 127, 140, 121, 146, 143, 130, 129, 128, 141, 118, 132, 120, 133, 119, 124, 149, 145, 153, 150, 148, 126, 129, 133, 153, 127, 140, 130, 128, 140, 151, 134, 139, 127, 133, 132, 140, 143, 130, 138, 139, 129, 132, 126, 143, 130, 125, 136, 136, 120, 127, 125, 128, 141, 148, 131, 138, 147, 117, 112, 135, 131, 118, 124, 152, 122, 143, 126, 134, 136, 119, 131, 146, 137, 129, 144, 134, 135, 120, 138, 136, 157, 144, 136, 139, 139, 136, 124, 138, 124, 132, 127, 149, 135, 137, 132, 130, 132, 147, 144, 141, 127, 156, 144, 129, 116, 119, 132, 161, 134, 132, 140, 144, 141, 135, 133, 133, 154, 143, 129, 134, 126, 149, 135, 150, 142, 119, 141, 145, 134, 149, 130, 143, 139, 140, 137, 145, 142, 130, 132, 141, 132, 123, 130, 142, 131, 130, 123, 141, 127, 138, 137, 136, 140, 138, 135, 137, 142, 109, 145, 132, 140, 139, 144, 132, 133, 124, 141, 118, 122, 150, 155, 141, 132, 135, 133, 118, 133, 126, 137, 138, 136, 141, 146, 137, 136, 125, 145, 138, 130, 139, 144, 156, 128, 141, 143, 147, 135, 143, 140, 153, 133, 139, 120, 135, 135, 126, 120, 139, 138, 121, 168, 138, 124, 129, 133, 126, 145, 130, 137, 135, 124, 138, 134, 138, 146, 130, 123, 131, 128, 141, 137, 137, 141, 141, 130, 130, 132, 127, 148, 129, 130, 134, 156, 142, 138, 140, 140, 132, 137, 143, 128, 129, 132, 120, 134, 148, 148, 139, 138, 149, 136, 157, 127, 137, 131, 134, 129, 133, 153, 128, 125, 123, 133, 124, 136, 138, 137, 129, 130, 134, 142, 137, 128, 131, 134, 145, 134, 149, 137, 130, 128, 141, 126, 120, 131, 133, 150, 125, 141, 146, 132, 137, 182, 135, 135, 132, 120, 148, 143, 124, 128, 128, 125, 130, 140, 142, 149, 150, 133, 135, 142, 152, 134, 132, 142, 148, 140, 127, 133, 154, 130, 132, 133, 122, 134, 118, 145, 131, 146, 138, 134, 137, 137, 135, 137, 128, 134, 142, 145, 125, 147, 134, 123, 145, 140, 140, 138, 140, 145, 134, 125, 151, 147, 134, 132, 135, 152, 132, 126, 139, 127, 146, 126, 128, 139, 120, 142, 163, 128, 151, 152, 144, 137, 138, 140, 135, 127, 136, 130, 137, 132, 141, 140, 133, 140, 130, 126, 124, 143, 137, 134, 137, 130, 144, 131, 123, 135, 131, 135, 130, 136, 129, 136, 133, 121, 130, 146, 137, 136, 139, 133, 145, 129, 128, 129, 141, 148, 132, 132, 138, 140, 137, 127, 144, 132, 126, 134, 141, 133, 135, 135, 125, 121, 128, 144, 137, 140, 135, 137, 123, 139, 144, 134, 128, 134, 125, 136, 145, 127, 121, 136, 148, 142, 129, 145, 143, 135, 134, 130, 147, 134, 128, 137, 124, 158, 114, 125, 125, 138, 139, 130, 128, 141, 133, 137, 120, 129, 136, 147, 142, 138, 136, 131, 139, 148, 128, 133, 150, 137, 127, 129, 139, 131, 130, 139, 142, 124, 122, 135, 129, 143, 142, 125, 143, 108, 147, 128, 119, 130, 124, 136, 129, 134, 138, 144, 131, 142, 138, 133, 140, 129, 141, 141, 150, 133, 135, 135, 132, 145, 128, 129, 157, 129, 134, 138, 130, 134, 138, 133, 148, 135, 170, 141, 135, 131, 133, 131, 148, 147, 121, 124, 152, 140, 135, 140, 132, 132, 135, 141, 146, 139, 130, 131, 131, 123, 138, 125, 134, 134, 138, 137, 142, 149, 141, 142, 145, 133, 135, 141, 137, 132, 123, 140, 130, 132, 145, 146, 135, 143, 127, 139, 134, 142, 140, 133, 126, 135, 130, 129, 139, 146, 136, 136, 140, 134, 143, 132, 131, 135, 144, 132, 139, 148, 141, 137, 136, 133, 139, 133, 134, 144, 126, 135, 128, 133, 140, 132, 143, 143, 132, 137, 136, 136, 126, 137, 131, 146, 132, 149, 156, 129, 138, 139, 136, 144, 127, 130, 137, 139, 124, 132, 130, 138, 131, 136, 141, 145, 138, 130, 124, 140, 140, 139, 135, 130, 131, 119, 125, 133, 138, 136, 136, 131, 140, 141, 139, 133, 135, 139, 140, 136, 146, 133, 139, 138, 135, 133, 142, 131, 132, 134, 139, 145, 143, 140, 130, 141, 137, 132, 137, 136, 124, 134, 132, 132, 137, 127, 142, 127, 139, 139, 186, 150, 138, 131, 130, 132, 142, 140, 141, 141, 141, 155, 143, 125, 133, 141, 141, 130, 145, 138, 138, 155, 145, 132, 128, 140, 105, 136, 142, 129, 133, 136, 134, 139, 135, 130, 130, 140, 130, 140, 129, 129, 138, 110, 136, 127, 136, 135, 140, 133, 137, 131, 143, 142, 143, 142, 129, 141, 134, 142, 136, 136, 137, 142, 129, 142, 142, 132, 142, 140, 130, 135, 127, 141, 136, 134, 148, 138, 129, 136, 137, 139, 115, 134, 109, 132, 129, 129, 137, 134, 138, 136, 150, 138, 136, 133, 134, 151, 138, 138, 131, 139, 149, 132, 123, 124, 139, 133, 138, 145, 144, 142, 147, 139, 139, 125, 139, 145, 140, 116, 128, 140, 150, 144, 152, 136, 122, 130, 126, 137, 140, 131, 154, 145, 137, 138, 135, 146, 134, 128, 136, 138, 149, 136, 141, 130, 154, 128, 131, 144, 130, 140, 135, 133, 142, 142, 139, 129, 140, 138, 142, 134, 136, 133, 137, 125, 134, 136, 131, 132, 109, 132, 140, 143, 133, 135, 132, 134, 140, 141, 128, 140, 144, 154, 137, 134, 151, 139, 149, 135, 136, 148, 132, 132, 132, 133, 142, 134, 139, 133, 139, 133, 157, 143, 130, 130, 120, 143, 129, 135, 139, 141, 138, 163, 138, 133, 139, 141, 132, 132, 138, 140, 129, 146, 118, 126, 128, 138, 139, 143, 130, 131, 150, 144, 133, 135, 138, 133, 135, 131, 141, 134, 143, 143, 134, 143, 142, 115, 113, 138, 134, 139, 124, 135, 137, 138, 135, 151, 138, 144, 132, 145, 143, 142, 138, 162, 147, 145, 123, 140, 130, 134, 128, 130, 148, 140, 126, 127, 137, 137, 133, 131, 138, 133, 144, 137, 138, 139, 139, 129, 139, 142, 150, 135, 135, 139, 157, 139, 145, 109, 131, 143, 150, 144, 140, 125, 136, 138, 137, 140, 141, 138, 151, 136, 143, 134, 132, 127, 148, 133, 144, 134, 132, 146, 140, 128, 125, 139, 138, 135, 134, 147, 130, 150, 138, 125, 131, 134, 138, 112, 144, 142, 136, 143, 138, 121, 140, 149, 142, 124, 137, 128, 144, 133, 140, 136, 142, 135, 138, 135, 145, 130, 139, 136, 142, 143, 136, 136, 131, 137, 132, 130, 128, 123, 130, 132, 150, 137, 136, 144, 137, 134, 135, 140, 139, 144, 122, 115, 134, 128, 131, 129, 143, 122, 148, 126, 135, 124, 116, 136, 135, 127, 138, 128, 142, 142, 125, 135, 134, 141, 137, 134, 135, 128, 149, 149, 141, 141, 157, 137, 129, 155, 137, 129, 150, 127, 134, 139, 132, 147, 143, 138, 133, 126, 142, 143, 136, 138, 137, 147, 146, 137, 115, 111, 136, 121, 141, 129, 142, 132, 154, 132, 140, 155, 119, 135, 135, 136, 161, 164, 134, 126, 152, 135, 139, 140, 135, 134, 136, 138, 144, 133, 160, 141, 150, 122, 150, 141, 145, 126, 130, 138, 145, 150, 131, 122, 141, 136, 131, 134, 131, 128, 103, 133, 131, 144, 140, 165, 166, 143, 135, 124, 143, 136, 126, 145, 105, 141, 126, 132, 132, 124, 137, 151, 124, 137, 127, 127, 118, 126, 120, 133, 134, 141, 133, 129, 171, 139, 128, 138, 130, 128, 136, 136, 138, 134, 143, 127, 141, 139, 115, 141, 150, 131, 134, 123, 138, 131, 125, 135, 119, 137, 126, 134, 127, 139, 128, 126, 145, 144, 122, 127, 129, 157, 161, 144, 146, 125, 147, 137, 171, 134, 136, 133, 147, 128, 126, 129, 150, 133, 124, 120, 136, 142, 138, 141, 144, 141, 126, 137, 139, 163, 169, 137, 132, 126, 127, 133, 119, 128, 159, 121, 157, 139, 151, 127, 124, 137, 127, 142, 135, 144, 135, 138, 118, 146, 128, 137, 122, 130, 141, 145, 130, 126, 115, 128, 137, 152, 126, 125, 145, 140, 136, 124, 132, 145, 133, 133, 136, 139, 129, 135, 143, 127, 130, 121, 136, 139, 125, 143, 121, 130, 120, 142, 139, 152, 139, 140, 147, 127, 133, 140, 130, 134, 120, 126, 132, 139, 146, 146, 131, 142, 117, 131, 147, 126, 128, 138, 171, 147, 127, 141, 129, 129, 143, 137, 143, 124, 129, 127, 138, 145, 134, 121, 140, 155, 134, 160, 129, 143, 136, 118, 145, 117, 138, 129, 148, 140, 134, 139, 157, 130, 137, 141, 134, 145, 138, 140, 147, 144, 110, 132, 149, 170, 124, 135, 108, 143, 129, 148, 137, 127, 133, 153, 139, 138, 143, 120, 128, 145, 121, 129, 124, 129, 124, 126, 175, 148, 137, 151, 132, 155, 157, 124, 129, 118, 145, 145, 135, 142, 139, 139, 145, 141, 134, 123, 134, 136, 136, 131, 137, 126, 147, 144, 153, 140, 122, 132, 159, 137, 148, 116, 112, 142, 128, 148, 139, 171, 130, 140, 130, 134, 128, 129, 132, 143, 110, 135, 140, 140, 143, 131, 143, 157, 136, 144, 123, 128, 144, 134, 120, 133, 137, 124, 130, 136, 138, 121, 141, 140, 158, 141, 130, 127, 145, 140, 120, 137, 135, 143, 134, 122, 102, 123, 129, 154, 138, 149, 130, 132, 145, 139, 141, 151, 131, 131, 130, 150, 130, 131, 133, 130, 137, 137, 144, 136, 143, 128, 135, 133, 149, 129, 131, 121, 160, 104, 141, 148, 124, 129, 141, 142, 154, 135, 135, 127, 144, 148, 132, 129, 142, 137, 136, 132, 135, 131, 135, 145, 138, 136, 116, 137, 128, 138, 129, 127, 136, 138, 125, 129, 142, 140, 139, 132, 158, 128, 126, 134, 137, 125, 139, 127, 132, 133, 127, 139, 144, 133, 132, 155, 151, 151, 139, 152, 132, 132, 137, 149, 133, 139, 129, 138, 134, 131, 129, 161, 149, 120, 139, 125, 137, 134, 129, 122, 135, 129, 137, 129, 132, 133, 124, 137, 144, 142, 139, 141, 139, 130, 124, 133, 129, 139, 144, 128, 128, 128, 150, 132, 144, 127, 128, 133, 132, 144, 160, 147, 121, 153, 140, 141, 134, 148, 141, 145, 145, 125, 124, 133, 139, 135, 134, 123, 134, 131, 148, 134, 121, 143, 143, 119, 128, 161, 141, 123, 128, 120, 142, 155, 146, 133, 137, 123, 129, 121, 133, 128, 126, 138, 111, 144, 132, 141, 119, 145, 143, 135, 148, 135, 125, 132, 133, 134, 131, 128, 134, 162, 139, 141, 118, 150, 143, 127, 126, 128, 127, 124, 126, 124, 141, 133, 133, 131, 133, 124, 142, 138, 149, 130, 127, 133, 133, 132, 123, 134, 128, 131, 135, 145, 124, 130, 140, 134, 130, 133, 140, 129, 122, 135, 141, 143, 139, 121, 145, 126, 142, 118, 145, 124, 133, 148, 130, 141, 123, 138, 134, 127, 127, 149, 134, 151, 121, 162, 132, 138, 145, 130, 140, 124, 145, 130, 128, 135, 149, 134, 136, 133, 139, 141, 119, 122, 128, 143, 126, 137, 126, 147, 142, 130, 149, 130, 138, 162, 124, 147, 141, 147, 130, 132, 106, 147, 132, 110, 128, 140, 155, 156, 122, 124, 141, 138, 130, 121, 139, 144, 130, 128, 149, 129, 129, 136, 139, 121, 150, 115, 128, 135, 144, 141, 136, 113, 129, 145, 126, 137, 134, 120, 129, 158, 134, 146, 128, 133, 140, 122, 127, 126, 145, 133, 151, 130, 142, 126, 120, 135, 125, 143, 137, 146, 118, 149, 132, 119, 135, 128, 136, 131, 124, 147, 146, 132, 137, 156, 143, 136, 120, 146, 134, 128, 146, 142, 130, 130, 127, 129, 126, 121, 136, 137, 139, 143, 132, 132, 140, 120, 125, 130, 136, 140, 121, 130, 156, 102, 146, 135, 139, 139, 138, 128, 142, 115, 141, 138, 140, 144, 143, 126, 142, 125, 135, 142, 128, 145, 133, 144, 132, 128, 131, 128, 150, 142, 122, 130, 148, 141, 155, 133, 123, 128, 126, 146, 139, 141, 154, 145, 139, 133, 134, 135, 130, 127, 130, 133, 143, 133, 135, 143, 134, 162, 145, 140, 133, 133, 131, 151, 136, 131, 127, 129, 130, 136, 136, 143, 134, 152, 143, 134, 128, 123, 127, 140, 142, 134, 126, 131, 150, 129, 113, 154, 133, 136, 130, 115, 139, 134, 117, 177, 146, 148, 143, 139, 127, 142, 136, 118, 134, 130, 129, 120, 110, 129, 131, 144, 140, 137, 124, 132, 150, 143, 155, 145, 124, 121, 128, 134, 147, 126, 122, 145, 135, 145, 140, 136, 141, 134, 127, 118, 112, 137, 128, 140, 134, 151, 123, 143, 136, 149, 127, 115, 123, 141, 139, 122, 123, 139, 127, 140, 123, 155, 136, 136, 141, 142, 127, 138, 134, 124, 129, 138, 126, 138, 137, 131, 138, 136, 146, 135, 148, 127, 136, 129, 124, 144, 152, 140, 125, 147, 137, 179, 128, 141, 130, 133, 118, 128, 138, 147, 139, 150, 141, 147, 145, 138, 132, 139, 150, 144, 135, 157, 144, 145, 150, 141, 133, 126, 131, 120, 134, 134, 161, 121, 124, 123, 134, 132, 125, 146, 111, 140, 146, 128, 132, 121, 181, 122, 135, 132, 127, 134, 134, 132, 128, 141, 130, 129, 114, 134, 136, 127, 149, 167, 140, 137, 117, 131, 159, 124, 131, 127, 145, 134, 141, 137, 126, 121, 130, 127, 140, 132, 125, 125, 147, 123, 139, 123, 138, 135, 128, 129, 132, 132, 143, 128, 140, 131, 128, 131, 133, 135, 135, 141, 125, 131, 132, 150, 128, 144, 148, 142, 128, 151, 131, 124, 137, 126, 135, 137, 145, 141, 144, 130, 133, 125, 135, 134, 113, 125, 133, 135, 142, 136, 143, 136, 127, 127, 154, 133, 133, 126, 143, 136, 123, 146, 132, 129, 127, 135, 138, 151, 135, 147, 142, 131, 134, 134, 122, 135, 130, 128, 123, 137, 124, 135, 132, 121, 142, 133, 125, 150, 142, 146, 108, 133, 142, 133, 145, 150, 139, 144, 138, 140, 148, 133, 134, 151, 143, 143, 143, 135, 128, 126, 130, 143, 137, 130, 154, 126, 130, 140, 133, 130, 129, 137, 124, 134, 127, 142, 127, 135, 127, 149, 135, 135, 133, 132, 122, 141, 133, 127, 156, 132, 137, 135, 134, 160, 113, 143, 133, 129, 140, 145, 130, 142, 139, 130, 151, 120, 148, 125, 134, 128, 160, 133, 136, 137, 123, 128, 149, 145, 135, 138, 122, 135, 144, 116, 139, 119, 139, 141, 129, 129, 144, 129, 139, 130, 131, 134, 151, 146, 147, 123, 150, 126, 145, 111, 139, 124, 137, 155, 149, 134, 138, 136, 121, 121, 136, 136, 130, 139, 148, 162, 149, 134, 141, 148, 137, 138, 147, 132, 138, 137, 146, 145, 123, 147, 114, 118, 121, 150, 147, 136, 130, 144, 131, 143, 124, 140, 122, 144, 128, 135, 124, 134, 131, 149, 128, 133, 142, 139, 154, 130, 150, 134, 134, 140, 142, 134, 149, 135, 130, 140, 145, 134, 140, 133, 131, 135, 136, 163, 144, 130, 134, 138, 125, 134, 135, 132, 150, 141, 141, 139, 141, 151, 130, 120, 137, 139, 147, 145, 149, 171, 137, 137, 137, 129, 127, 140, 150, 147, 133, 159, 130, 141, 127, 140, 132, 134, 145, 115, 137, 132, 136, 151, 148, 181, 145, 159, 138, 127, 132, 141, 140, 141, 131, 121, 137, 140, 133, 126, 142, 134, 138, 142, 135, 146, 135, 112, 137, 137, 119, 149, 140, 117, 161, 131, 140, 146, 135, 137, 132, 134, 128, 137, 136, 144, 134, 133, 154, 143, 140, 130, 142, 154, 144, 121, 125, 134, 141, 146, 127, 148, 125, 130, 122, 133, 123, 141, 137, 128, 135, 149, 138, 131, 117, 121, 127, 146, 128, 143, 133, 140, 121, 132, 142, 141, 131, 139, 132, 148, 144, 126, 151, 142, 134, 148, 116, 149, 129, 130, 129, 146, 145, 129, 131, 133, 138, 132, 131, 128, 145, 134, 133, 150, 121, 137, 146, 164, 128, 143, 119, 141, 139, 161, 132, 145, 142, 135, 149, 134, 144, 136, 121, 124, 142, 147, 137, 122, 146, 134, 142, 145, 136, 142, 141, 128, 141, 138, 141, 140, 128, 124, 131, 127, 134, 143, 126, 127, 122, 130, 118, 136, 112, 144, 120, 135, 146, 140, 143, 146, 135, 119, 125, 136, 143, 131, 143, 130, 113, 156, 142, 155, 119, 135, 132, 122, 138, 131, 176, 152, 135, 146, 142, 121, 142, 130, 143, 123, 136, 137, 134, 123, 117, 121, 124, 121, 132, 151, 144, 132, 161, 131, 138, 126, 133, 123, 140, 128, 122, 132, 157, 131, 144, 143, 135, 141, 154, 127, 133, 137, 121, 147, 129, 158, 132, 136, 153, 144, 129, 145, 145, 120, 128, 139, 145, 127, 146, 144, 141, 144, 132, 134, 122, 145, 130, 142, 134, 134, 123, 131, 121, 138, 138, 136, 144, 141, 133, 142, 134, 130, 142, 127, 139, 114, 150, 118, 148, 147, 134, 135, 110, 127, 133, 130, 136, 140, 137, 130, 134, 138, 147, 148, 143, 123, 136, 133, 141, 138, 133, 134, 130, 147, 122, 146, 133, 134, 135, 124, 154, 133, 137, 140, 111, 119, 145, 165, 143, 128, 147, 140, 124, 142, 147, 132, 153, 126, 119, 145, 129, 136, 142, 144, 141, 152, 140, 135, 111, 118, 142, 121, 148, 134, 137, 140, 135, 140, 139, 130, 129, 135, 138, 122, 149, 137, 135, 140, 131, 143, 127, 133, 146, 138, 121, 127, 140, 133, 153, 153, 136, 149, 137, 142, 137, 131, 136, 139, 126, 137, 123, 147, 139, 125, 127, 130, 130, 128, 121, 137, 122, 129, 148, 141, 151, 133, 109, 105, 143, 122, 132, 155, 133, 139, 149, 126, 138, 137, 118, 132, 133, 146, 121, 145, 159, 154, 119, 139, 128, 131, 131, 138, 129, 165, 138, 134, 146, 125, 129, 143, 140, 138, 135, 120, 138, 148, 120, 139, 136, 128, 134, 130, 129, 126, 150, 132, 136, 131, 144, 147, 135, 150, 130, 140, 124, 144, 161, 134, 125, 142, 140, 148, 133, 129, 135, 147, 144, 132, 122, 157, 130, 146, 136, 141, 128, 134, 126, 129, 142, 124, 145, 140, 143, 133, 128, 148, 137, 131, 140, 134, 148, 151, 140, 145, 125, 120, 133, 136, 136, 135, 142, 124, 140, 141, 150, 151, 129, 133, 147, 144, 130, 137, 140, 133, 133, 139, 150, 140, 134, 141, 128, 144, 122, 147, 134, 139, 135, 140, 118, 124, 126, 140, 131, 139, 143, 132, 138, 128, 145, 135, 146, 138, 127, 126, 139, 123, 135, 153, 114, 136, 131, 137, 131, 120, 142, 113, 128, 134, 143, 122, 121, 136, 131, 133, 130, 141, 139, 129, 130, 129, 139, 141, 149, 130, 146, 127, 130, 129, 124, 134, 122, 150, 140, 138, 131, 123, 139, 143, 133, 127, 144, 133, 118, 140, 136, 126, 129, 148, 138, 150, 148, 144, 129, 123, 151, 124, 151, 134, 138, 116, 156, 151, 136, 143, 141, 148, 139, 140, 140, 135, 133, 131, 137, 136, 128, 146, 132, 140, 135, 138, 139, 136, 130, 129, 136, 123, 155, 130, 122, 144, 143, 146, 155, 138, 132, 124, 140, 155, 136, 141, 125, 135, 137, 131, 132, 135, 141, 138, 140, 120, 141, 134, 136, 145, 143, 144, 134, 130, 147, 135, 148, 146, 140, 126, 140, 134, 137, 132, 139, 123, 130, 133, 137, 129, 133, 129, 134, 127, 126, 131, 136, 148, 127, 137, 137, 138, 155, 142, 142, 138, 131, 121, 129, 141, 129, 147, 147, 127, 133, 127, 125, 124, 138, 124, 127, 138, 126, 134, 145, 150, 139, 145, 136, 135, 138, 146, 140, 161, 142, 137, 140, 139, 141, 135, 136, 139, 152, 126, 129, 147, 140, 139, 138, 138, 129, 128, 127, 142, 146, 145, 144, 121, 139, 136, 128, 139, 136, 143, 127, 135, 117, 146, 133, 118, 130, 136, 135, 137, 118, 128, 129, 132, 132, 126, 142, 144, 114, 141, 132, 134, 131, 122, 134, 142, 157, 139, 132, 135, 148, 130, 136, 143, 141, 146, 135, 135, 116, 128, 154, 135, 150, 134, 125, 136, 123, 122, 133, 140, 130, 138, 141, 132, 127, 138, 129, 139, 130, 140, 140, 131, 130, 133, 143, 137, 134, 139, 145, 138, 133, 129, 137, 138, 123, 158, 126, 135, 140, 142, 125, 137, 133, 147, 128, 133, 130, 157, 133, 141, 135, 139, 139, 142, 138, 144, 175, 140, 129, 117, 139, 134, 135, 143, 124, 139, 146, 142, 126, 132, 128, 132, 135, 125, 136, 149, 142, 127, 136, 130, 126, 131, 138, 128, 145, 128, 124, 124, 134, 144, 139, 132, 134, 140, 130, 127, 131, 125, 143, 135, 135, 152, 122, 127, 134, 120, 141, 135, 136, 131, 131, 144, 132, 125, 118, 127, 138, 147, 134, 140, 126, 130, 123, 134, 127, 133, 127, 127, 111, 144, 141, 132, 137, 110, 118, 141, 137, 133, 121, 131, 145, 129, 138, 133, 140, 129, 128, 134, 163, 150, 118, 135, 135, 129, 160, 117, 133, 131, 126, 132, 132, 151, 148, 148, 135, 144, 136, 141, 144, 138, 142, 134, 131, 141, 149, 126, 126, 135, 125, 170, 137, 136, 150, 171, 136, 157, 138, 133, 138, 127, 136, 131, 135, 128, 130, 130, 133, 136, 140, 127, 130, 137, 137, 125, 146, 141, 152, 141, 133, 123, 131, 135, 138, 138, 135, 135, 129, 151, 122, 129, 128, 143, 145, 143, 122, 104, 135, 131, 122, 134, 141, 151, 136, 127, 138, 149, 119, 135, 134, 129, 140, 156, 136, 143, 146, 150, 141, 136, 143, 123, 138, 120, 136, 123, 134, 134, 118, 137, 109, 129, 138, 147, 135, 133, 134, 119, 142, 130, 128, 112, 135, 134, 165, 128, 119, 137, 127, 147, 129, 147, 144, 138, 130, 131, 133, 136, 142, 130, 137, 131, 143, 147, 130, 130, 126, 144, 134, 134, 126, 132, 135, 122, 138, 140, 126, 112, 132, 144, 154, 133, 135, 135, 133, 140, 120, 129, 137, 121, 140, 135, 127, 137, 149, 138, 125, 131, 134, 137, 126, 157, 143, 144, 127, 135, 126, 138, 130, 128, 122, 137, 132, 127, 141, 145, 129, 128, 134, 140, 134, 134, 143, 135, 128, 128, 146, 132, 145, 134, 140, 149, 134, 135, 142, 136, 112, 161, 133, 131, 130, 139, 141, 139, 128, 141, 133, 139, 130, 125, 143, 133, 130, 126, 131, 144, 141, 157, 144, 123, 133, 127, 121, 150, 132, 130, 140, 129, 142, 152, 127, 151, 130, 135, 134, 130, 137, 154, 136, 131, 138, 132, 145, 137, 134, 136, 140, 132, 155, 152, 146, 143, 135, 148, 128, 129, 141, 127, 130, 132, 124, 127, 139, 124, 140, 134, 140, 147, 127, 134, 140, 121, 144, 140, 130, 148, 144, 139, 134, 124, 140, 125, 139, 133, 139, 144, 144, 146, 120, 121, 133, 126, 129, 127, 135, 135, 125, 138, 132, 123, 145, 131, 132, 128, 120, 138, 135, 120, 126, 128, 140, 124, 124, 111, 142, 143, 130, 141, 133, 121, 139, 139, 154, 130, 135, 127, 145, 127, 142, 131, 137, 132, 138, 138, 120, 147, 146, 136, 143, 123, 138, 144, 143, 144, 143, 133, 145, 134, 131, 146, 135, 129, 132, 138, 142, 131, 145, 117, 122, 137, 120, 123, 141, 128, 135, 127, 126, 148, 130, 148, 132, 126, 144, 127, 137, 127, 140, 134, 127, 142, 131, 134, 139, 132, 130, 123, 146, 133, 131, 132, 132, 132, 134, 140, 133, 138, 159, 125, 132, 129, 128, 126, 138, 126, 146, 128, 135, 135, 140, 131, 135, 147, 130, 122, 139, 150, 139, 119, 141, 139, 129, 137, 142, 125, 117, 142, 143, 120, 118, 137, 130, 121, 137, 134, 150, 130, 129, 144, 131, 128, 151, 127, 141, 121, 139, 117, 123, 150, 138, 134, 136, 134, 143, 123, 137, 143, 138, 144, 127, 142, 138, 147, 122, 125, 132, 129, 122, 123, 137, 148, 132, 151, 146, 140, 134, 135, 130, 144, 143, 148, 138, 133, 125, 132, 128, 152, 145, 121, 117, 130, 132, 135, 158, 140, 125, 138, 124, 133, 150, 155, 128, 139, 118, 123, 129, 138, 126, 132, 133, 127, 140, 137, 141, 137, 145, 119, 116, 140, 123, 127, 132, 132, 151, 143, 132, 137, 146, 143, 143, 152, 114, 138, 133, 152, 138, 151, 126, 137, 129, 129, 132, 121, 128, 116, 135, 126, 141, 153, 159, 122, 127, 140, 144, 136, 146, 130, 126, 135, 146, 135, 130, 159, 121, 124, 128, 128, 129, 132, 128, 140, 139, 134, 139, 127, 129, 139, 137, 132, 137, 134, 161, 141, 133, 139, 137, 151, 133, 122, 141, 129, 136, 148, 144, 130, 136, 123, 129, 127, 131, 121, 129, 132, 128, 146, 131, 112, 148, 169, 129, 119, 134, 149, 128, 146, 136, 132, 141, 130, 138, 138, 123, 145, 128, 152, 130, 136, 134, 135, 141, 126, 130, 145, 113, 130, 141, 127, 146, 146, 145, 133, 129, 134, 129, 125, 148, 127, 135, 137, 128, 142, 146, 130, 131, 145, 146, 142, 158, 128, 148, 130, 121, 130, 133, 131, 134, 151, 126, 144, 149, 133, 129, 143, 142, 120, 131, 124, 127, 130, 145, 144, 126, 139, 131, 140, 124, 161, 127, 137, 137, 132, 126, 130, 118, 128, 131, 126, 128, 143, 145, 140, 133, 134, 158, 139, 130, 142, 127, 132, 135, 128, 166, 132, 145, 143, 130, 124, 138, 128, 130, 171, 142, 134, 124, 135, 136, 132, 132, 139, 135, 141, 140, 141, 134, 140, 128, 139, 135, 131, 144, 141, 133, 140, 128, 145, 130, 136, 139, 155, 136, 127, 139, 142, 140, 135, 130, 132, 123, 144, 134, 129, 140, 141, 135, 147, 134, 129, 149, 128, 141, 131, 167, 133, 138, 135, 143, 134, 148, 132, 126, 140, 130, 138, 137, 135, 128, 139, 137, 136, 132, 135, 137, 130, 123, 139, 134, 123, 124, 133, 130, 128, 135, 142, 132, 135, 125, 125, 127, 137, 117, 139, 128, 161, 143, 133, 145, 129, 141, 134, 135, 135, 134, 142, 135, 133, 148, 139, 130, 131, 146, 138, 138, 133, 141, 113, 154, 149, 130, 134, 116, 136, 132, 137, 133, 132, 154, 135, 155, 127, 142, 129, 147, 128, 144, 120, 132, 131, 142, 139, 146, 126, 133, 129, 134, 142, 147, 145, 131, 145, 143, 135, 161, 134, 131, 147, 132, 146, 132, 128, 134, 114, 131, 128, 134, 142, 137, 137, 143, 133, 133, 121, 128, 129, 160, 141, 146, 125, 142, 142, 133, 140, 141, 134, 122, 126, 132, 137, 136, 140, 147, 138, 132, 139, 124, 132, 149, 141, 136, 126, 135, 133, 138, 144, 151, 134, 143, 146, 143, 128, 142, 131, 130, 135, 141, 137, 135, 138, 136, 137, 140, 160, 149, 147, 127, 139, 130, 149, 142, 143, 148, 131, 128, 134, 134, 142, 148, 131, 135, 123, 144, 143, 132, 122, 122, 133, 138, 139, 130, 125, 138, 133, 140, 140, 137, 136, 142, 136, 138, 139, 124, 159, 137, 129, 134, 135, 144, 143, 134, 139, 133, 119, 137, 130, 140, 137, 132, 138, 129, 134, 130, 121, 126, 145, 126, 128, 134, 141, 139, 138, 138, 137, 131, 135, 126, 131, 137, 136, 145, 166, 134, 130, 127, 135, 129, 138, 126, 135, 128, 123, 144, 138, 155, 132, 130, 128, 154, 139, 132, 144, 144, 129, 132, 145, 123, 156, 128, 125, 137, 148, 132, 125, 139, 141, 143, 135, 137, 134, 136, 151, 136, 151, 127, 150, 140, 135, 139, 144, 133, 126, 140, 137, 126, 125, 139, 143, 150, 123, 128, 125, 139, 137, 129, 139, 140, 141, 136, 118, 128, 136, 143, 133, 141, 132, 136, 124, 154, 148, 146, 145, 136, 152, 120, 130, 151, 127, 140, 127, 129, 120, 138, 135, 144, 142, 138, 134, 140, 138, 133, 127, 133, 138, 150, 144, 140, 114, 143, 133, 135, 142, 134, 128, 137, 143, 146, 140, 125, 142, 125, 145, 131, 127, 123, 139, 133, 131, 143, 116, 129, 139, 136, 129, 140, 124, 143, 126, 133, 133, 133, 150, 133, 127, 138, 129, 144, 130, 147, 135, 126, 146, 132, 126, 140, 132, 140, 141, 138, 129, 137, 127, 146, 122, 141, 142, 131, 135, 141, 128, 137, 149, 134, 133, 133, 136, 124, 125, 131, 133, 146, 141, 134, 136, 142, 145, 126, 148, 117, 125, 124, 116, 133, 124, 137, 116, 122, 133, 134, 132, 133, 133, 124, 141, 128, 130, 138, 133, 146, 137, 123, 136, 144, 131, 135, 144, 140, 137, 126, 141, 142, 134, 134, 133, 143, 139, 127, 125, 134, 152, 130, 127, 129, 135, 161, 137, 148, 150, 127, 149, 126, 138, 131, 134, 142, 137, 121, 145, 130, 128, 156, 118, 121, 142, 126, 137, 135, 140, 137, 140, 125, 144, 133, 130, 138, 140, 136, 130, 143, 152, 121, 135, 138, 131, 134, 142, 138, 143, 142, 122, 145, 124, 134, 138, 132, 155, 119, 141, 150, 137, 154, 131, 128, 133, 130, 125, 146, 140, 131, 134, 130, 133, 140, 131, 123, 128, 124, 137, 129, 123, 140, 132, 134, 136, 131, 139, 147, 111, 138, 132, 137, 127, 138, 134, 133, 142, 147, 143, 147, 128, 136, 133, 138, 141, 127, 139, 122, 133, 158, 136, 134, 128, 134, 124, 137, 135, 126, 132, 148, 129, 128, 135, 153, 133, 140, 128, 111, 128, 138, 149, 154, 135, 156, 119, 138, 121, 126, 148, 142, 122, 148, 123, 145, 128, 139, 151, 132, 137, 140, 127, 132, 140, 134, 141, 153, 138, 119, 147, 114, 139, 145, 127, 113, 137, 126, 124, 140, 128, 132, 134, 134, 136, 146, 137, 128, 134, 151, 135, 130, 135, 134, 129, 158, 122, 137, 138, 136, 139, 132, 132, 133, 137, 144, 149, 143, 144, 127, 136, 135, 137, 141, 137, 143, 138, 145, 146, 146, 176, 139, 139, 128, 148, 142, 150, 131, 142, 127, 146, 142, 133, 138, 136, 137, 153, 136, 138, 135, 138, 137, 138, 141, 138, 134, 127, 140, 137, 137, 138, 122, 142, 134, 156, 137, 137, 116, 138, 131, 164, 126, 128, 131, 143, 138, 134, 129, 138, 136, 146, 148, 125, 136, 131, 149, 135, 136, 145, 120, 139, 118, 141, 132, 148, 134, 129, 124, 128, 142, 130, 131, 148, 134, 133, 125, 141, 134, 141, 145, 142, 135, 153, 132, 149, 145, 127, 133, 132, 132, 134, 130, 137, 148, 138, 139, 132, 143, 150, 131, 135, 142, 135, 139, 142, 131, 127, 128, 135, 138, 131, 131, 133, 152, 130, 139, 140, 136, 131, 141, 136, 134, 138, 130, 135, 137, 127, 142, 137, 135, 133, 137, 132, 134, 138, 134, 121, 142, 134, 126, 150, 123, 147, 131, 144, 142, 151, 129, 138, 133, 138, 137, 126, 124, 138, 130, 129, 132, 128, 133, 147, 129, 142, 131, 129, 126, 127, 156, 135, 132, 125, 136, 124, 151, 133, 120, 131, 130, 141, 143, 132, 142, 143, 127, 134, 146, 145, 129, 127, 139, 127, 166, 133, 123, 128, 127, 149, 132, 133, 127, 139, 136, 139, 124, 157, 135, 123, 140, 136, 146, 132, 150, 142, 134, 140, 165, 139, 122, 121, 130, 123, 136, 140, 128, 153, 139, 133, 131, 131, 147, 118, 140, 137, 135, 148, 127, 137, 133, 145, 143, 131, 131, 168, 134, 128, 138, 146, 125, 142, 143, 131, 135, 124, 136, 147, 139, 141, 145, 118, 123, 134, 130, 140, 145, 127, 141, 152, 142, 129, 141, 151, 137, 135, 138, 140, 132, 143, 135, 140, 141, 132, 128, 139, 122, 136, 155, 121, 142, 131, 157, 136, 134, 131, 146, 135, 145, 127, 140, 137, 127, 131, 125, 126, 126, 138, 137, 125, 125, 126, 137, 130, 141, 141, 136, 133, 143, 125, 152, 143, 152, 138, 156, 144, 140, 139, 142, 131, 132, 145, 144, 126, 143, 154, 143, 133, 145, 143, 163, 142, 118, 150, 134, 134, 157, 130, 155, 149, 130, 134, 159, 128, 125, 133, 142, 137, 128, 147, 148, 131, 126, 140, 133, 135, 125, 146, 124, 164, 132, 153, 151, 134, 134, 126, 134, 130, 134, 125, 153, 135, 139, 140, 136, 128, 131, 155, 136, 135, 124, 134, 127, 142, 125, 138, 145, 144, 127, 139, 150, 133, 143, 127, 145, 144, 124, 146, 117, 131, 145, 142, 146, 156, 143, 139, 128, 128, 133, 140, 152, 128, 141, 147, 146, 135, 138, 119, 141, 135, 142, 136, 131, 123, 146, 124, 141, 142, 144, 142, 134, 130, 134, 131, 119, 126, 129, 144, 146, 127, 135, 130, 146, 140, 133, 126, 139, 135, 158, 156, 165, 143, 149, 149, 120, 136, 114, 110, 134, 124, 140, 156, 133, 126, 138, 144, 126, 120, 152, 150, 132, 138, 140, 129, 136, 127, 133, 140, 132, 141, 139, 140, 142, 130, 141, 133, 129, 143, 141, 133, 122, 142, 145, 134, 137, 130, 141, 144, 162, 153, 126, 129, 121, 138, 151, 128, 130, 148, 137, 131, 130, 137, 134, 158, 135, 142, 130, 144, 129, 137, 140, 123, 142, 137, 136, 134, 125, 140, 129, 137, 139, 129, 121, 156, 142, 146, 149, 140, 134, 142, 134, 144, 141, 134, 124, 126, 155, 143, 120, 140, 136, 148, 136, 140, 148, 136, 135, 128, 136, 137, 125, 123, 141, 130, 138, 123, 96, 132, 133, 145, 132, 132, 130, 144, 132, 160, 132, 138, 149, 138, 128, 137, 125, 153, 120, 145, 147, 118, 130, 150, 137, 140, 135, 131, 136, 138, 134, 133, 133, 138, 146, 141, 136, 148, 151, 141, 131, 125, 127, 144, 134, 136, 136, 131, 151, 132, 147, 130, 164, 144, 138, 144, 134, 142, 124, 143, 145, 132, 128, 122, 130, 143, 117, 134, 150, 133, 129, 130, 140, 136, 136, 119, 144, 160, 133, 140, 139, 141, 128, 119, 137, 146, 138, 143, 140, 139, 129, 140, 132, 141, 136, 127, 129, 131, 157, 137, 115, 137, 125, 139, 129, 115, 136, 130, 137, 152, 124, 136, 128, 126, 137, 136, 138, 137, 131, 133, 152, 138, 130, 134, 137, 124, 144, 141, 148, 138, 154, 129, 112, 155, 137, 150, 142, 164, 142, 135, 140, 141, 139, 147, 147, 110, 151, 144, 142, 133, 156, 130, 145, 137, 125, 149, 150, 125, 137, 141, 154, 118, 126, 121, 140, 146, 129, 121, 140, 135, 140, 145, 121, 151, 150, 128, 136, 119, 135, 138, 144, 129, 127, 145, 131, 123, 140, 128, 146, 134, 135, 132, 144, 130, 147, 133, 122, 141, 138, 126, 142, 135, 135, 137, 141, 132, 131, 125, 129, 147, 128, 139, 137, 148, 133, 132, 132, 137, 137, 141, 131, 124, 139, 128, 135, 139, 139, 145, 135, 136, 133, 114, 153, 133, 131, 140, 156, 140, 133, 108, 121, 126, 142, 142, 127, 140, 129, 158, 147, 151, 137, 114, 174, 119, 126, 135, 120, 139, 148, 138, 129, 140, 135, 130, 141, 131, 138, 134, 135, 138, 133, 129, 132, 160, 129, 138, 129, 135, 130, 150, 121, 146, 144, 136, 131, 126, 149, 160, 141, 133, 140, 128, 141, 127, 131, 126, 142, 142, 130, 118, 137, 125, 136, 131, 118, 149, 143, 129, 130, 138, 126, 124, 129, 110, 138, 125, 143, 156, 138, 130, 132, 140, 130, 139, 137, 146, 159, 133, 134, 124, 136, 132, 143, 129, 140, 128, 137, 133, 137, 121, 155, 122, 125, 132, 109, 129, 124, 125, 137, 132, 129, 141, 125, 128, 134, 140, 144, 125, 138, 132, 123, 134, 166, 141, 123, 145, 157, 130, 148, 143, 131, 137, 146, 133, 123, 135, 150, 119, 127, 136, 139, 139, 158, 123, 136, 136, 134, 131, 133, 130, 135, 132, 146, 140, 138, 131, 146, 141, 140, 126, 132, 131, 143, 129, 133, 123, 144, 139, 127, 146, 140, 133, 144, 135, 141, 144, 148, 136, 123, 135, 143, 128, 142, 145, 123, 137, 128, 135, 149, 178, 116, 142, 144, 133, 151, 151, 132, 132, 160, 121, 121, 126, 148, 128, 150, 136, 157, 131, 150, 122, 115, 121, 133, 137, 131, 132, 133, 140, 126, 146, 155, 174, 141, 140, 131, 143, 135, 162, 138, 135, 124, 132, 142, 134, 133, 131, 122, 126, 116, 134, 136, 127, 140, 129, 127, 109, 129, 132, 135, 132, 130, 132, 131, 134, 144, 136, 146, 133, 134, 144, 127, 134, 139, 158, 140, 126, 131, 129, 127, 148, 141, 135, 142, 156, 142, 133, 135, 133, 136, 131, 132, 124, 135, 135, 141, 144, 120, 114, 136, 140, 149, 138, 131, 137, 126, 149, 149, 143, 161, 120, 135, 134, 130, 123, 134, 143, 142, 135, 128, 141, 130, 142, 130, 133, 131, 145, 140, 132, 133, 135, 130, 141, 125, 119, 155, 124, 153, 126, 146, 148, 140, 138, 138, 127, 146, 136, 155, 128, 132, 130, 150, 131, 144, 137, 132, 151, 134, 126, 144, 124, 160, 131, 134, 155, 126, 153, 161, 135, 165, 134, 126, 139, 125, 136, 137, 161, 134, 148, 132, 129, 143, 147, 134, 147, 134, 127, 131, 132, 148, 142, 161, 156, 137, 122, 137, 128, 128, 127, 135, 134, 121, 137, 151, 130, 146, 134, 150, 135, 143, 133, 134, 133, 146, 140, 133, 152, 139, 121, 143, 116, 138, 137, 138, 132, 137, 122, 136, 152, 139, 134, 113, 133, 123, 116, 139, 148, 130, 143, 132, 128, 135, 152, 137, 141, 145, 153, 123, 99, 131, 126, 121, 135, 136, 137, 143, 137, 140, 135, 122, 141, 138, 131, 136, 130, 130, 151, 123, 131, 144, 129, 126, 116, 135, 122, 126, 138, 145, 126, 141, 151, 152, 151, 141, 139, 125, 127, 143, 147, 138, 117, 135, 129, 129, 145, 148, 137, 137, 129, 123, 147, 132, 153, 133, 132, 149, 133, 134, 134, 120, 141, 121, 140, 146, 127, 118, 142, 136, 125, 127, 134, 132, 134, 130, 124, 136, 152, 150, 124, 126, 133, 135, 133, 157, 121, 129, 109, 134, 123, 132, 141, 115, 128, 150, 132, 142, 133, 147, 136, 146, 140, 126, 111, 138, 132, 129, 155, 135, 142, 142, 142, 143, 122, 147, 120, 131, 132, 132, 136, 124, 134, 107, 131, 120, 145, 150, 126, 154, 138, 126, 135, 129, 139, 148, 144, 151, 129, 152, 135, 132, 119, 139, 133, 139, 124, 139, 129, 134, 141, 123, 132, 148, 135, 127, 124, 123, 129, 133, 128, 125, 125, 76, 137, 143, 139, 134, 133, 124, 127, 113, 143, 127, 135, 147, 134, 132, 146, 120, 144, 137, 151, 138, 144, 141, 131, 162, 129, 152, 134, 147, 130, 137, 149, 138, 150, 123, 125, 127, 138, 141, 138, 136, 128, 131, 135, 136, 138, 146, 143, 133, 137, 110, 148, 130, 157, 131, 143, 144, 133, 139, 129, 141, 120, 144, 122, 153, 160, 138, 143, 146, 149, 131, 123, 119, 141, 144, 111, 141, 132, 129, 127, 135, 126, 129, 134, 129, 168, 135, 132, 136, 138, 126, 150, 134, 138, 144, 148, 131, 125, 135, 146, 130, 131, 138, 132, 155, 129, 131, 122, 133, 157, 139, 131, 121, 131, 136, 136, 127, 140, 128, 119, 136, 118, 137, 122, 134, 131, 138, 120, 146, 142, 139, 125, 147, 132, 123, 135, 142, 140, 171, 146, 131, 134, 124, 140, 155, 154, 135, 151, 128, 109, 124, 117, 144, 134, 141, 144, 140, 152, 142, 143, 135, 145, 134, 151, 139, 154, 156, 119, 134, 123, 143, 141, 143, 144, 149, 134, 130, 131, 134, 135, 158, 137, 144, 131, 132, 137, 164, 152, 114, 135, 135, 131, 137, 149, 128, 131, 125, 135, 148, 123, 160, 143, 146, 129, 143, 138, 130, 120, 145, 150, 130, 141, 129, 120, 142, 142, 126, 150, 154, 145, 132, 129, 131, 137, 127, 123, 139, 137, 147, 130, 126, 137, 131, 150, 140, 134, 141, 128, 120, 153, 132, 121, 139, 152, 127, 138, 129, 141, 138, 141, 128, 141, 145, 129, 121, 131, 152, 134, 135, 135, 144, 145, 128, 98, 153, 139, 127, 138, 124, 119, 128, 135, 128, 137, 115, 135, 133, 124, 135, 147, 124, 142, 114, 148, 141, 135, 132, 130, 132, 123, 125, 158, 132, 122, 140, 129, 145, 129, 154, 139, 137, 131, 151, 153, 148, 122, 136, 108, 144, 137, 140, 134, 128, 131, 149, 143, 131, 131, 123, 144, 149, 139, 133, 125, 138, 128, 143, 139, 123, 135, 127, 133, 99, 161, 136, 135, 136, 138, 150, 116, 138, 138, 118, 136, 132, 114, 122, 125, 146, 137, 123, 163, 121, 130, 142, 125, 148, 130, 159, 121, 131, 135, 140, 124, 151, 142, 137, 120, 123, 135, 142, 122, 137, 137, 130, 132, 160, 131, 143, 140, 140, 142, 124, 128, 130, 137, 152, 130, 140, 136, 139, 130, 128, 152, 129, 131, 136, 122, 128, 135, 137, 139, 144, 133, 133, 140, 139, 132, 131, 143, 130, 135, 136, 142, 123, 133, 142, 138, 132, 138, 139, 137, 124, 123, 124, 136, 138, 130, 140, 130, 139, 126, 119, 132, 144, 132, 133, 129, 134, 137, 140, 136, 134, 132, 126, 137, 146, 137, 138, 123, 134, 145, 113, 132, 129, 132, 138, 139, 138, 135, 129, 141, 129, 129, 142, 137, 133, 132, 137, 130, 137, 131, 143, 135, 138, 143, 137, 141, 129, 128, 131, 133, 133, 129, 135, 133, 120, 133, 125, 114, 133, 134, 139, 130, 137, 146, 115, 148, 130, 145, 128, 130, 135, 131, 132, 135, 134, 144, 137, 103, 133, 127, 130, 141, 136, 135, 128, 123, 135, 140, 137, 124, 164, 132, 127, 137, 139, 138, 142, 146, 143, 145, 131, 147, 133, 153, 136, 133, 138, 135, 140, 131, 133, 139, 150, 143, 122, 128, 130, 151, 138, 140, 132, 142, 130, 125, 142, 137, 135, 144, 137, 139, 131, 140, 139, 131, 129, 124, 123, 135, 144, 140, 131, 138, 134, 137, 138, 134, 143, 144, 137, 130, 136, 128, 125, 141, 140, 135, 126, 138, 139, 134, 137, 134, 156, 134, 138, 138, 152, 133, 132, 128, 149, 134, 128, 126, 140, 141, 139, 133, 138, 136, 132, 139, 147, 110, 133, 133, 131, 139, 157, 141, 142, 150, 128, 138, 129, 138, 129, 126, 124, 137, 148, 140, 130, 142, 139, 138, 143, 143, 140, 131, 127, 130, 125, 135, 132, 146, 117, 128, 132, 126, 137, 125, 135, 136, 137, 143, 146, 126, 131, 130, 134, 140, 132, 132, 147, 142, 149, 144, 133, 125, 137, 135, 135, 150, 134, 143, 138, 144, 131, 140, 139, 136, 140, 129, 144, 132, 139, 129, 130, 129, 149, 129, 138, 145, 132, 140, 131, 154, 131, 139, 132, 131, 141, 143, 136, 125, 131, 105, 127, 141, 135, 153, 117, 133, 138, 136, 132, 138, 118, 130, 141, 140, 151, 135, 144, 135, 132, 130, 135, 141, 130, 145, 136, 143, 145, 131, 148, 141, 135, 145, 136, 138, 136, 134, 132, 127, 153, 137, 135, 134, 128, 142, 127, 134, 134, 138, 124, 136, 140, 155, 145, 136, 133, 135, 126, 142, 140, 130, 140, 135, 127, 135, 128, 130, 133, 132, 133, 134, 130, 135, 125, 134, 118, 134, 142, 144, 142, 140, 128, 130, 156, 137, 141, 152, 128, 141, 130, 145, 125, 141, 157, 134, 126, 128, 134, 138, 154, 137, 131, 148, 141, 134, 144, 133, 141, 139, 140, 134, 129, 134, 139, 134, 137, 139, 127, 127, 133, 148, 138, 137, 146, 137, 148, 146, 132, 131, 148, 130, 132, 139, 144, 127, 147, 137, 146, 133, 132, 134, 148, 135, 130, 149, 144, 139, 122, 137, 141, 138, 130, 135, 137, 127, 128, 138, 153, 141, 138, 127, 137, 133, 133, 131, 120, 154, 131, 131, 135, 137, 134, 134, 129, 134, 130, 134, 137, 136, 135, 143, 144, 133, 132, 141, 136, 142, 131, 139, 122, 118, 143, 136, 137, 137, 132, 123, 114, 133, 139, 131, 142, 137, 139, 135, 142, 127, 125, 136, 127, 132, 122, 151, 130, 140, 121, 125, 144, 147, 137, 140, 130, 136, 135, 142, 127, 138, 143, 125, 144, 136, 130, 137, 136, 141, 149, 137, 118, 128, 129, 139, 134, 131, 132, 134, 134, 149, 141, 151, 127, 135, 124, 132, 131, 145, 140, 142, 127, 106, 132, 135, 139, 134, 114, 139, 132, 140, 142, 113, 134, 146, 131, 140, 136, 137, 131, 144, 135, 140, 138, 150, 118, 137, 130, 137, 144, 140, 141, 144, 154, 133, 139, 134, 135, 157, 139, 124, 156, 130, 148, 112, 144, 151, 152, 129, 130, 145, 127, 144, 134, 140, 132, 139, 133, 147, 133, 115, 142, 133, 142, 159, 132, 147, 129, 137, 150, 133, 142, 128, 144, 122, 142, 131, 123, 131, 132, 143, 145, 145, 136, 128, 145, 140, 138, 133, 140, 125, 139, 127, 170, 140, 124, 136, 153, 125, 139, 137, 136, 135, 108, 164, 165, 130, 128, 129, 135, 130, 127, 130, 140, 147, 152, 132, 130, 148, 133, 126, 140, 149, 150, 136, 142, 168, 138, 147, 128, 143, 140, 133, 138, 138, 151, 130, 137, 147, 134, 129, 131, 141, 153, 144, 112, 135, 136, 120, 134, 131, 132, 131, 133, 144, 132, 125, 143, 134, 142, 140, 123, 135, 128, 143, 138, 128, 119, 138, 118, 150, 134, 137, 137, 140, 138, 136, 135, 136, 131, 152, 121, 133, 135, 137, 122, 130, 129, 135, 118, 143, 138, 138, 129, 134, 132, 129, 133, 127, 145, 132, 142, 136, 146, 130, 120, 131, 245, 132, 134, 128, 97, 136, 150, 128, 125, 136, 137, 141, 131, 141, 142, 128, 134, 122, 128, 136, 138, 136, 133, 137, 149, 136, 139, 145, 138, 134, 146, 133, 145, 137, 148, 140, 126, 127, 165, 138, 130, 140, 145, 128, 132, 134, 129, 122, 125, 146, 162, 117, 137, 134, 136, 137, 134, 137, 133, 134, 131, 133, 110, 136, 140, 130, 130, 138, 118, 132, 144, 130, 136, 140, 137, 138, 129, 128, 109, 136, 150, 127, 123, 141, 136, 143, 117, 130, 144, 133, 130, 140, 129, 150, 141, 132, 130, 133, 124, 132, 136, 119, 150, 131, 115, 131, 138, 136, 137, 151, 133, 143, 142, 140, 130, 149, 144, 133, 134, 132, 127, 138, 137, 152, 124, 122, 129, 134, 131, 128, 134, 141, 144, 138, 136, 135, 137, 122, 127, 145, 127, 128, 140, 124, 153, 139, 117, 130, 152, 130, 126, 153, 136, 136, 132, 139, 140, 142, 132, 148, 140, 138, 141, 132, 141, 143, 146, 127, 140, 121, 137, 137, 127, 141, 142, 131, 124, 137, 144, 135, 134, 146, 143, 134, 123, 137, 121, 135, 141, 141, 133, 133, 131, 132, 141, 147, 134, 131, 136, 142, 128, 133, 144, 138, 127, 139, 131, 127, 132, 135, 142, 138, 143, 133, 145, 122, 142, 118, 142, 126, 135, 135, 139, 120, 136, 128, 133, 129, 145, 133, 133, 121, 126, 138, 140, 130, 166, 135, 129, 124, 147, 134, 130, 144, 134, 134, 127, 129, 139, 134, 145, 134, 129, 148, 134, 143, 144, 122, 132, 142, 105, 138, 121, 152, 132, 131, 125, 145, 123, 142, 149, 144, 147, 131, 149, 146, 125, 132, 140, 137, 153, 124, 141, 137, 151, 132, 132, 134, 130, 143, 137, 153, 122, 121, 136, 130, 134, 141, 133, 129, 142, 121, 126, 130, 131, 122, 141, 125, 129, 150, 130, 129, 129, 142, 142, 135, 137, 134, 137, 142, 124, 123, 136, 134, 131, 148, 128, 140, 120, 120, 125, 132, 136, 140, 135, 145, 136, 133, 134, 142, 137, 133, 149, 130, 131, 145, 134, 124, 146, 128, 148, 144, 142, 135, 129, 140, 132, 150, 144, 132, 127, 129, 138, 135, 128, 127, 133, 157, 142, 145, 137, 131, 138, 129, 143, 129, 143, 138, 140, 132, 130, 154, 134, 122, 133, 126, 138, 137, 133, 126, 143, 141, 147, 132, 136, 125, 137, 139, 162, 141, 137, 125, 143, 133, 133, 145, 115, 114, 126, 139, 133, 141, 113, 138, 152, 139, 134, 146, 129, 167, 134, 135, 131, 132, 142, 133, 148, 129, 133, 146, 138, 109, 137, 138, 130, 145, 132, 142, 135, 140, 146, 126, 126, 131, 152, 147, 119, 140, 132, 142, 125, 129, 145, 128, 131, 120, 150, 136, 143, 132, 134, 137, 133, 153, 145, 138, 129, 146, 151, 146, 124, 133, 155, 121, 125, 132, 134, 141, 129, 146, 152, 139, 137, 138, 134, 139, 134, 143, 122, 134, 137, 140, 137, 140, 144, 140, 136, 138, 137, 129, 138, 123, 133, 139, 130, 136, 127, 133, 150, 127, 136, 138, 119, 125, 141, 133, 136, 139, 144, 144, 128, 146, 139, 121, 151, 136, 143, 141, 141, 136, 145, 111, 136, 140, 147, 137, 135, 124, 140, 153, 143, 134, 130, 132, 132, 123, 144, 154, 141, 132, 143, 142, 125, 133, 138, 142, 149, 123, 137, 140, 135, 116, 133, 138, 140, 133, 130, 138, 131, 140, 129, 129, 128, 131, 126, 130, 133, 136, 129, 137, 173, 132, 136, 145, 148, 134, 140, 137, 138, 132, 139, 124, 132, 139, 126, 147, 137, 140, 141, 140, 127, 138, 143, 150, 112, 109, 140, 129, 138, 145, 146, 140, 132, 123, 131, 138, 142, 132, 129, 136, 134, 130, 126, 133, 136, 142, 130, 134, 133, 142, 136, 137, 156, 160, 148, 128, 135, 127, 131, 122, 140, 129, 134, 141, 132, 125, 128, 144, 144, 157, 159, 119, 140, 143, 131, 142, 143, 122, 136, 134, 153, 136, 122, 126, 159, 142, 127, 127, 128, 131, 119, 125, 140, 160, 137, 127, 134, 139, 141, 144, 140, 141, 131, 145, 147, 133, 130, 126, 128, 135, 145, 136, 145, 140, 117, 127, 127, 135, 126, 123, 137, 133, 138, 120, 135, 130, 134, 129, 153, 136, 122, 137, 134, 148, 157, 142, 128, 138, 137, 131, 150, 138, 127, 127, 110, 130, 135, 148, 144, 125, 147, 137, 148, 140, 137, 143, 142, 148, 134, 144, 143, 133, 133, 129, 125, 139, 169, 126, 133, 134, 133, 145, 114, 134, 128, 142, 133, 149, 148, 124, 124, 140, 139, 128, 139, 133, 144, 138, 143, 133, 145, 150, 138, 137, 132, 141, 143, 131, 131, 135, 140, 140, 138, 143, 137, 133, 137, 136, 134, 139, 144, 132, 136, 132, 137, 129, 135, 145, 133, 101, 111, 133, 129, 141, 137, 141, 147, 146, 139, 140, 143, 141, 132, 129, 137, 133, 145, 129, 143, 143, 165, 125, 149, 161, 127, 131, 140, 139, 124, 133, 140, 132, 139, 136, 139, 153, 140, 141, 131, 152, 140, 132, 124, 147, 149, 163, 156, 140, 128, 140, 127, 125, 142, 139, 157, 130, 131, 138, 148, 146, 138, 142, 135, 128, 134, 112, 140, 142, 150, 151, 131, 133, 155, 137, 136, 132, 140, 153, 141, 145, 134, 131, 151, 133, 137, 133, 142, 130, 133, 132, 18, 135, 133, 136, 138, 128, 128, 137, 131, 150, 145, 156, 141, 130, 138, 142, 139, 144, 143, 136, 132, 138, 142, 136, 136, 115, 138, 139, 105, 139, 135, 140, 135, 125, 133, 137, 133, 140, 136, 149, 129, 129, 125, 148, 139, 137, 140, 146, 148, 143, 140, 146, 139, 143, 143, 151, 140, 137, 136, 139, 132, 137, 126, 138, 133, 143, 137, 134, 139, 146, 142, 144, 133, 138, 129, 139, 141, 114, 143, 137, 152, 143, 132, 133, 149, 146, 156, 144, 131, 132, 152, 134, 142, 136, 135, 128, 130, 119, 130, 134, 141, 135, 131, 147, 143, 137, 139, 136, 140, 136, 144, 140, 141, 165, 126, 145, 134, 140, 132, 139, 129, 135, 142, 107, 140, 133, 140, 138, 143, 128, 136, 130, 137, 134, 132, 143, 143, 138, 128, 134, 132, 129, 143, 137, 137, 137, 147, 134, 130, 127, 136, 132, 140, 137, 146, 136, 139, 133, 131, 133, 137, 134, 133, 150, 143, 130, 133, 132, 132, 146, 140, 139, 132, 139, 134, 145, 139, 133, 126, 135, 119, 139, 146, 144, 140, 140, 131, 132, 131, 135, 145, 140, 123, 138, 133, 139, 130, 111, 141, 133, 134, 138, 134, 134, 134, 135, 138, 134, 100, 130, 141, 123, 135, 131, 141, 96, 134, 131, 148, 95, 137, 136, 139, 137, 131, 135, 149, 142, 143, 149, 133, 145, 146, 139, 95, 134, 124, 143, 139, 103, 135, 135, 136, 138, 139, 136, 140, 132, 136, 131, 138, 133, 101, 141, 139, 137, 143, 144, 136, 137, 145, 134, 136, 140, 135, 156, 135, 133, 110, 145, 140, 137, 133, 133, 146, 133, 142, 117, 145, 141, 145, 135, 134, 150, 135, 137, 133, 139, 143, 155, 131, 143, 145, 125, 139, 141, 142, 132, 154, 134, 136, 134, 139, 132, 165, 132, 133, 142, 131, 138, 140, 132, 133, 141, 135, 133, 138, 133, 131, 142, 147, 138, 116, 147, 142, 131, 137, 123, 131, 136, 136, 123, 153, 134, 138, 129, 140, 125, 152, 137, 135, 133, 140, 142, 134, 146, 138, 124, 136, 143, 139, 141, 133, 136, 144, 129, 137, 145, 131, 153, 136, 131, 134, 143, 139, 146, 135, 136, 137, 130, 134, 139, 136, 128, 126, 123, 130, 131, 139, 142, 136, 127, 135, 136, 137, 135, 133, 127, 138, 131, 145, 140, 147, 134, 137, 135, 139, 125, 130, 150, 133, 133, 138, 144, 140, 123, 144, 143, 138, 142, 136, 140, 157, 131, 156, 145, 147, 137, 138, 135, 145, 143, 126, 139, 140, 123, 129, 136, 157, 143, 134, 138, 139, 142, 134, 140, 132, 134, 130, 142, 128, 134, 133, 141, 131, 130, 129, 135, 128, 140, 129, 131, 140, 142, 136, 132, 138, 151, 124, 147, 138, 138, 141, 144, 137, 137, 141, 124, 149, 133, 131, 130, 129, 155, 130, 134, 133, 131, 136, 135, 134, 136, 131, 132, 126, 134, 149, 109, 131, 143, 111, 152, 126, 124, 132, 136, 137, 129, 140, 133, 136, 145, 141, 134, 131, 134, 135, 140, 128, 116, 141, 141, 143, 140, 136, 125, 145, 140, 135, 132, 134, 144, 129, 117, 131, 136, 147, 136, 137, 131, 153, 128, 147, 136, 144, 134, 140, 135, 134, 115, 119, 136, 135, 132, 140, 143, 140, 137, 140, 140, 145, 146, 131, 127, 133, 138, 153, 128, 132, 143, 119, 141, 133, 121, 136, 133, 142, 127, 142, 149, 137, 133, 140, 144, 134, 138, 138, 137, 144, 144, 136, 135, 146, 134, 140, 136, 125, 131, 132, 103, 154, 133, 146, 138, 132, 141, 151, 135, 138, 125, 130, 146, 140, 142, 137, 130, 140, 136, 140, 132, 126, 138, 143, 153, 131, 143, 131, 129, 139, 134, 139, 134, 134, 145, 149, 142, 135, 133, 143, 134, 138, 136, 136, 131, 137, 100, 128, 132, 134, 144, 145, 142, 149, 136, 139, 133, 135, 140, 140, 127, 135, 143, 132, 134, 140, 137, 152, 148, 127, 132, 122, 134, 136, 144, 140, 141, 135, 148, 134, 134, 130, 133, 147, 137, 141, 137, 135, 131, 134, 135, 138, 143, 140, 127, 129, 131, 129, 134, 137, 135, 129, 134, 135, 137, 151, 144, 131, 136, 136, 129, 137, 142, 130, 128, 131, 146, 145, 128, 138, 134, 139, 131, 133, 127, 148, 124, 123, 141, 133, 140, 137, 152, 144, 138, 145, 124, 128, 131, 127, 131, 141, 122, 131, 130, 136, 142, 133, 137, 143, 145, 126, 153, 149, 140, 131, 135, 131, 127, 123, 152, 119, 122, 143, 142, 142, 135, 137, 133, 138, 144, 137, 135, 135, 145, 140, 119, 140, 135, 130, 138, 144, 139, 138, 137, 138, 146, 134, 150, 132, 142, 141, 132, 143, 129, 139, 139, 136, 143, 127, 149, 134, 149, 125, 139, 134, 124, 133, 133, 142, 132, 138, 133, 148, 144, 142, 149, 147, 134, 143, 130, 120, 156, 139, 140, 142, 138, 125, 141, 134, 140, 135, 143, 145, 139, 129, 142, 133, 139, 134, 132, 132, 140, 132, 131, 124, 140, 143, 135, 131, 138, 146, 123, 146, 140, 137, 145, 142, 141, 143, 124, 132, 140, 134, 134, 139, 138, 136, 143, 127, 139, 135, 133, 148, 134, 145, 130, 137, 116, 147, 141, 137, 121, 155, 131, 149, 135, 137, 143, 136, 135, 142, 132, 141, 112, 127, 146, 131, 136, 140, 117, 129, 130, 133, 137, 136, 135, 132, 138, 138, 135, 127, 129, 131, 134, 131, 139, 145, 144, 129, 128, 134, 135, 134, 134, 147, 125, 134, 143, 141, 130, 139, 135, 146, 133, 147, 137, 141, 142, 142, 133, 128, 144, 139, 129, 141, 141, 133, 143, 132, 132, 130, 128, 144, 129, 144, 127, 134, 143, 137, 127, 114, 144, 146, 146, 130, 140, 139, 140, 145, 135, 130, 130, 137, 142, 138, 134, 137, 120, 139, 128, 136, 134, 141, 126, 143, 134, 140, 129, 134, 135, 142, 152, 136, 140, 115, 138, 142, 132, 128, 147, 134, 137, 146, 137, 126, 135, 136, 151, 128, 130, 134, 135, 135, 129, 128, 146, 137, 84, 133, 129, 130, 141, 147, 133, 125, 127, 147, 139, 135, 140, 199, 137, 134, 145, 126, 126, 138, 131, 147, 140, 123, 135, 129, 147, 132, 135, 134, 131, 139, 135, 132, 130, 139, 136, 130, 134, 147, 125, 133, 140, 131, 127, 132, 145, 125, 127, 123, 129, 130, 140, 128, 133, 132, 128, 141, 130, 129, 136, 135, 137, 133, 131, 131, 142, 133, 132, 132, 138, 141, 132, 136, 149, 154, 137, 132, 132, 142, 138, 142, 115, 129, 144, 140, 143, 148, 134, 126, 144, 139, 142, 141, 141, 142, 138, 149, 129, 135, 136, 138, 139, 131, 132, 123, 171, 132, 136, 139, 132, 150, 137, 149, 133, 133, 153, 148, 126, 128, 141, 138, 131, 148, 140, 149, 133, 131, 131, 143, 138, 128, 133, 145, 139, 135, 132, 142, 128, 118, 146, 135, 136, 130, 132, 141, 117, 126, 138, 138, 137, 125, 128, 142, 131, 153, 133, 125, 135, 138, 152, 130, 125, 135, 133, 135, 129, 132, 136, 133, 127, 126, 139, 135, 135, 129, 150, 137, 138, 138, 142, 147, 139, 143, 129, 148, 144, 141, 136, 169, 151, 143, 145, 117, 127, 141, 133, 143, 123, 131, 81, 133, 145, 135, 144, 124, 138, 123, 130, 134, 135, 147, 120, 138, 130, 140, 151, 141, 135, 137, 142, 129, 135, 140, 125, 134, 144, 143, 136, 138, 128, 140, 150, 105, 157, 93, 133, 125, 80, 146, 132, 142, 135, 133, 136, 137, 128, 142, 138, 122, 127, 135, 156, 135, 128, 138, 138, 137, 144, 133, 135, 116, 125, 113, 138, 141, 132, 145, 137, 132, 137, 133, 147, 122, 118, 133, 145, 131, 134, 143, 126, 145, 139, 148, 143, 135, 166, 129, 131, 141, 135, 152, 137, 134, 127, 121, 149, 131, 134, 171, 135, 136, 121, 117, 147, 131, 133, 142, 126, 147, 125, 135, 136, 146, 139, 150, 136, 135, 125, 136, 134, 137, 135, 172, 133, 146, 170, 135, 141, 136, 130, 144, 129, 145, 138, 138, 138, 132, 129, 133, 147, 130, 141, 141, 137, 137, 132, 137, 129, 154, 145, 124, 143, 128, 133, 128, 147, 131, 141, 135, 132, 130, 138, 123, 136, 135, 143, 116, 145, 139, 139, 132, 137, 151, 129, 137, 126, 142, 143, 132, 158, 133, 151, 135, 158, 130, 139, 133, 136, 134, 124, 130, 125, 124, 125, 137, 149, 151, 141, 133, 134, 137, 154, 130, 127, 119, 168, 134, 125, 110, 144, 138, 132, 145, 128, 125, 145, 129, 162, 133, 135, 143, 142, 148, 134, 152, 125, 144, 132, 130, 158, 139, 121, 127, 114, 132, 133, 138, 137, 132, 148, 130, 134, 135, 138, 121, 158, 127, 139, 141, 121, 143, 147, 137, 137, 131, 119, 128, 128, 138, 153, 133, 138, 146, 131, 131, 159, 124, 154, 127, 124, 138, 147, 140, 132, 135, 121, 132, 138, 136, 138, 126, 126, 120, 144, 137, 140, 131, 128, 131, 144, 128, 137, 137, 134, 142, 137, 130, 129, 146, 173, 134, 147, 162, 145, 138, 130, 133, 147, 134, 135, 145, 131, 138, 121, 123, 141, 134, 139, 125, 130, 135, 133, 124, 129, 125, 123, 132, 158, 141, 141, 127, 146, 132, 139, 130, 138, 129, 135, 124, 131, 127, 144, 129, 140, 143, 129, 167, 143, 128, 126, 148, 136, 135, 135, 138, 138, 142, 152, 127, 129, 131, 143, 128, 153, 128, 129, 121, 122, 139, 139, 133, 128, 125, 125, 130, 123, 127, 146, 138, 139, 143, 145, 134, 134, 116, 140, 124, 133, 164, 153, 139, 159, 130, 143, 145, 148, 131, 129, 131, 129, 127, 144, 152, 142, 154, 128, 155, 140, 141, 130, 130, 133, 128, 134, 151, 138, 129, 150, 130, 119, 140, 130, 123, 109, 143, 126, 138, 134, 126, 145, 129, 132, 144, 132, 138, 146, 148, 144, 135, 135, 121, 138, 147, 147, 150, 139, 130, 129, 157, 132, 136, 133, 134, 141, 138, 136, 139, 127, 135, 131, 123, 130, 128, 165, 140, 133, 145, 142, 144, 144, 140, 140, 149, 151, 137, 140, 129, 135, 130, 134, 136, 146, 130, 138, 128, 128, 127, 133, 149, 130, 136, 134, 111, 129, 137, 125, 119, 144, 139, 136, 98, 148, 140, 141, 140, 147, 134, 136, 138, 132, 129, 139, 127, 129, 131, 124, 131, 126, 132, 145, 137, 142, 149, 128, 139, 133, 131, 135, 129, 132, 139, 151, 131, 143, 134, 125, 142, 133, 129, 138, 132, 137, 140, 145, 135, 137, 138, 135, 140, 139, 143, 125, 140, 149, 148, 138, 135, 142, 139, 146, 131, 149, 133, 144, 123, 141, 138, 137, 128, 147, 134, 124, 133, 144, 128, 128, 124, 133, 126, 129, 132, 131, 142, 124, 132, 133, 142, 136, 155, 130, 147, 153, 133, 145, 164, 145, 135, 136, 146, 135, 148, 130, 150, 114, 129, 136, 134, 141, 131, 133, 128, 130, 134, 125, 139, 156, 135, 124, 132, 144, 138, 133, 144, 133, 130, 135, 145, 131, 120, 128, 134, 135, 122, 146, 126, 136, 134, 141, 136, 142, 155, 134, 125, 132, 120, 149, 127, 137, 138, 142, 155, 128, 135, 142, 131, 138, 136, 124, 155, 123, 137, 142, 146, 136, 130, 136, 133, 148, 145, 144, 121, 119, 136, 125, 133, 131, 149, 142, 139, 146, 171, 126, 135, 130, 143, 126, 138, 142, 153, 137, 146, 133, 0, 127, 141, 131, 146, 128, 140, 127, 164, 143, 151, 146, 140, 141, 140, 139, 160, 138, 140, 136, 140, 138, 160, 143, 132, 121, 142, 145, 128, 133, 135, 144, 147, 122, 140, 137, 144, 128, 129, 126, 141, 135, 149, 138, 142, 134, 141, 127, 136, 137, 135, 142, 151, 116, 133, 131, 144, 132, 142, 135, 141, 142, 153, 129, 118, 138, 135, 135, 134, 135, 138, 141, 124, 160, 147, 133, 124, 135, 138, 141, 136, 142, 145, 146, 126, 144, 135, 69, 136, 130, 133, 126, 150, 133, 141, 145, 144, 142, 149, 130, 142, 137, 149, 125, 131, 121, 144, 155, 135, 139, 142, 146, 126, 137, 130, 127, 160, 132, 140, 120, 132, 130, 131, 142, 143, 139, 142, 141, 139, 137, 133, 135, 141, 127, 136, 105, 152, 125, 141, 117, 149, 143, 137, 138, 130, 134, 132, 145, 140, 135, 137, 166, 131, 152, 143, 136, 134, 127, 140, 139, 135, 134, 136, 130, 129, 141, 144, 138, 129, 153, 133, 138, 142, 131, 156, 136, 137, 143, 145, 139, 142, 144, 128, 113, 137, 145, 130, 138, 151, 121, 115, 146, 135, 135, 133, 147, 134, 124, 145, 145, 132, 113, 127, 130, 154, 148, 128, 136, 120, 125, 140, 128, 144, 131, 128, 134, 148, 140, 136, 136, 135, 166, 127, 133, 131, 135, 147, 141, 145, 146, 129, 131, 150, 122, 129, 134, 147, 144, 139, 144, 141, 145, 127, 130, 151, 147, 146, 143, 138, 132, 129, 138, 139, 136, 143, 144, 126, 137, 131, 138, 142, 139, 141, 143, 128, 142, 172, 126, 119, 138, 155, 139, 141, 129, 127, 146, 133, 134, 131, 139, 142, 141, 135, 134, 156, 144, 145, 138, 137, 123, 142, 115, 144, 151, 134, 128, 129, 138, 131, 142, 130, 128, 85, 133, 117, 146, 146, 132, 129, 148, 141, 135, 129, 146, 139, 137, 137, 134, 138, 130, 150, 147, 136, 128, 147, 139, 139, 133, 139, 134, 143, 132, 136, 138, 147, 175, 124, 146, 133, 135, 132, 135, 128, 142, 110, 134, 150, 144, 137, 132, 147, 137, 144, 134, 52, 133, 132, 125, 128, 139, 113, 156, 143, 150, 128, 127, 140, 143, 144, 140, 148, 124, 138, 148, 122, 140, 138, 128, 136, 178, 141, 130, 134, 140, 133, 122, 129, 140, 123, 126, 140, 134, 144, 116, 116, 145, 146, 141, 129, 141, 126, 134, 118, 134, 149, 119, 137, 110, 142, 134, 139, 135, 138, 161, 138, 157, 135, 129, 137, 144, 137, 145, 116, 130, 120, 138, 135, 114, 136, 146, 146, 147, 132, 122, 134, 138, 146, 131, 157, 131, 132, 135, 145, 149, 151, 138, 149, 127, 121, 147, 123, 56, 139, 135, 137, 143, 127, 124, 115, 136, 134, 139, 131, 140, 143, 134, 131, 144, 141, 138, 140, 145, 133, 142, 141, 136, 145, 136, 144, 134, 122, 119, 141, 134, 128, 128, 139, 140, 124, 139, 130, 145, 129, 139, 129, 137, 134, 147, 145, 130, 134, 136, 145, 145, 135, 131, 129, 132, 142, 140, 137, 137, 138, 133, 131, 130, 134, 134, 143, 136, 141, 132, 143, 129, 124, 128, 150, 136, 142, 138, 131, 138, 134, 134, 129, 137, 136, 146, 138, 143, 135, 137, 136, 142, 143, 142, 138, 131, 143, 135, 132, 140, 134, 140, 134, 121, 121, 131, 137, 135, 140, 142, 135, 136, 141, 139, 130, 142, 126, 137, 131, 132, 144, 136, 138, 144, 139, 139, 130, 140, 139, 139, 139, 142, 130, 151, 140, 133, 139, 143, 137, 138, 141, 137, 135, 138, 139, 137, 140, 139, 136, 139, 129, 140, 142, 135, 132, 141, 130, 133, 138, 139, 137, 139, 143, 149, 137, 126, 140, 136, 148, 138, 133, 130, 131, 133, 139, 140, 128, 132, 130, 132, 138, 144, 131, 134, 133, 133, 139, 148, 142, 135, 134, 158, 138, 142, 128, 139, 138, 137, 122, 137, 137, 133, 135, 129, 126, 138, 135, 141, 143, 146, 138, 133, 129, 128, 149, 136, 131, 138, 137, 133, 134, 134, 134, 140, 139, 138, 136, 132, 128, 135, 141, 133, 139, 143, 136, 136, 141, 132, 149, 136, 133, 136, 137, 134, 136, 134, 133, 127, 131, 142, 134, 141, 136, 135, 134, 135, 139, 129, 142, 139, 134, 127, 142, 138, 129, 137, 139, 135, 143, 146, 136, 129, 141, 132, 137, 136, 122, 129, 146, 135, 141, 133, 136, 134, 137, 147, 136, 142, 132, 137, 120, 138, 135, 136, 132, 138, 151, 119, 140, 138, 144, 144, 138, 143, 133, 134, 141, 123, 138, 135, 145, 128, 146, 141, 142, 138, 130, 138, 141, 138, 134, 138, 134, 136, 130, 144, 135, 140, 134, 133, 140, 143, 140, 131, 142, 138, 136, 141, 144, 144, 125, 136, 133, 129, 134, 136, 115, 141, 132, 127, 133, 139, 135, 139, 137, 123, 141, 139, 136, 125, 140, 143, 135, 134, 140, 143, 138, 132, 142, 138, 142, 130, 135, 140, 127, 138, 134, 130, 140, 139, 128, 132, 128, 147, 138, 137, 139, 133, 136, 129, 137, 149, 130, 128, 140, 140, 151, 132, 149, 138, 132, 125, 137, 134, 139, 143, 131, 138, 142, 132, 142, 137, 141, 132, 137, 136, 130, 136, 139, 134, 133, 135, 144, 131, 138, 134, 147, 136, 146, 146, 143, 136, 129, 125, 141, 145, 146, 132, 131, 144, 132, 135, 131, 123, 139, 138, 134, 135, 139, 134, 132, 139, 151, 140, 144, 128, 134, 137, 141, 134, 135, 142, 139, 135, 152, 131, 125, 134, 137, 141, 140, 134, 136, 134, 140, 136, 129, 128, 131, 141, 133, 133, 136, 133, 136, 132, 138, 139, 135, 136, 127, 150, 134, 145, 153, 129, 132, 126, 140, 127, 141, 136, 137, 134, 134, 137, 136, 140, 127, 137, 128, 154, 137, 149, 130, 130, 130, 137, 130, 137, 126, 128, 130, 146, 132, 128, 134, 129, 125, 136, 123, 129, 141, 131, 132, 142, 133, 128, 131, 142, 142, 138, 135, 142, 141, 131, 138, 145, 120, 137, 127, 143, 127, 125, 152, 139, 136, 130, 142, 147, 140, 133, 136, 130, 139, 141, 139, 135, 128, 132, 141, 131, 144, 132, 134, 141, 140, 130, 136, 144, 140, 132, 130, 143, 130, 134, 104, 133, 135, 137, 129, 115, 140, 137, 134, 135, 129, 138, 128, 137, 132, 133, 142, 143, 140, 139, 129, 133, 140, 124, 139, 127, 137, 130, 158, 137, 131, 139, 142, 126, 130, 145, 125, 127, 128, 126, 179, 140, 141, 135, 130, 134, 132, 136, 124, 152, 143, 135, 132, 137, 135, 133, 151, 154, 130, 135, 122, 145, 132, 129, 137, 136, 140, 137, 140, 138, 128, 142, 129, 124, 128, 131, 132, 134, 131, 140, 136, 135, 145, 142, 138, 136, 139, 126, 137, 139, 140, 136, 122, 126, 136, 129, 139, 137, 134, 129, 130, 130, 134, 134, 135, 125, 134, 140, 135, 132, 137, 136, 133, 135, 130, 142, 143, 134, 135, 139, 130, 134, 143, 145, 133, 136, 124, 132, 142, 140, 132, 136, 137, 131, 139, 129, 140, 126, 138, 137, 137, 140, 124, 133, 141, 141, 126, 132, 134, 141, 126, 139, 125, 135, 144, 152, 136, 138, 141, 139, 138, 138, 129, 137, 138, 148, 156, 140, 126, 137, 140, 135, 130, 145, 136, 127, 130, 147, 130, 139, 132, 133, 129, 130, 132, 135, 142, 119, 130, 129, 135, 143, 141, 132, 138, 135, 128, 132, 141, 140, 127, 136, 138, 122, 132, 138, 145, 119, 138, 138, 139, 134, 135, 140, 139, 141, 145, 132, 150, 131, 140, 143, 130, 136, 149, 135, 138, 145, 132, 145, 135, 142, 138, 146, 137, 143, 127, 132, 146, 138, 136, 140, 128, 131, 139, 144, 133, 136, 151, 143, 141, 132, 141, 121, 131, 137, 129, 141, 140, 159, 132, 140, 137, 131, 132, 139, 144, 127, 135, 144, 142, 131, 137, 133, 137, 140, 131, 146, 137, 137, 135, 121, 141, 145, 130, 125, 134, 144, 123, 145, 133, 139, 145, 138, 126, 155, 137, 133, 158, 137, 137, 157, 134, 137, 129, 133, 134, 129, 139, 134, 134, 157, 134, 136, 135, 148, 135, 132, 130, 136, 135, 141, 147, 137, 126, 140, 145, 132, 145, 133, 140, 129, 141, 136, 132, 136, 131, 134, 131, 145, 129, 141, 137, 132, 128, 131, 134, 140, 137, 138, 144, 128, 139, 133, 143, 132, 133, 127, 137, 131, 140, 151, 146, 144, 141, 127, 138, 153, 140, 118, 137, 128, 134, 134, 132, 129, 136, 143, 135, 133, 142, 142, 133, 128, 134, 138, 136, 143, 139, 154, 119, 144, 128, 138, 141, 131, 163, 130, 130, 141, 131, 137, 135, 133, 133, 125, 143, 139, 132, 140, 135, 142, 146, 143, 138, 138, 125, 139, 139, 131, 127, 131, 134, 130, 134, 143, 137, 133, 130, 137, 132, 133, 136, 135, 146, 177, 143, 132, 135, 127, 127, 149, 134, 137, 136, 133, 135, 135, 134, 130, 132, 133, 136, 130, 144, 132, 132, 135, 141, 136, 127, 136, 137, 138, 139, 128, 131, 137, 134, 133, 119, 143, 135, 126, 142, 133, 130, 132, 137, 143, 132, 139, 132, 134, 130, 127, 139, 149, 138, 124, 142, 134, 141, 147, 133, 130, 134, 134, 142, 136, 126, 143, 151, 122, 132, 135, 129, 127, 140, 133, 125, 135, 142, 146, 129, 153, 119, 132, 133, 135, 133, 137, 129, 134, 147, 122, 140, 136, 144, 134, 133, 125, 134, 131, 131, 118, 131, 139, 139, 121, 135, 122, 136, 139, 143, 132, 141, 136, 135, 123, 142, 125, 133, 125, 134, 130, 133, 124, 133, 122, 137, 134, 132, 140, 140, 144, 133, 126, 134, 136, 138, 135, 133, 130, 138, 145, 124, 135, 128, 145, 134, 136, 136, 129, 139, 136, 130, 134, 135, 136, 155, 129, 141, 143, 126, 133, 146, 137, 137, 135, 126, 126, 131, 125, 132, 131, 133, 89, 132, 142, 132, 136, 145, 139, 133, 125, 130, 141, 138, 132, 129, 120, 141, 135, 145, 117, 139, 122, 137, 132, 125, 141, 124, 143, 134, 147, 133, 138, 140, 136, 125, 141, 135, 135, 131, 132, 127, 142, 125, 135, 122, 130, 126, 133, 137, 141, 142, 142, 135, 146, 118, 137, 137, 140, 134, 139, 147, 140, 121, 138, 144, 123, 125, 165, 147, 132, 137, 133, 135, 132, 129, 124, 122, 147, 130, 129, 135, 131, 131, 133, 140, 134, 141, 135, 142, 137, 147, 140, 138, 136, 147, 157, 142, 143, 135, 134, 142, 126, 128, 129, 126, 136, 137, 135, 129, 124, 135, 138, 133, 146, 143, 126, 134, 128, 137, 150, 135, 140, 140, 131, 120, 136, 144, 146, 132, 133, 129, 136, 131, 131, 133, 131, 133, 123, 127, 130, 140, 133, 134, 134, 126, 140, 133, 133, 138, 127, 143, 137, 126, 158, 142, 126, 137, 134, 138, 136, 131, 134, 120, 147, 151, 134, 130, 141, 128, 112, 137, 93, 145, 147, 132, 142, 123, 130, 132, 140, 130, 133, 137, 136, 132, 135, 124, 134, 138, 162, 141, 140, 139, 142, 143, 122, 138, 142, 136, 134, 134, 132, 112, 134, 132, 108, 132, 132, 126, 130, 137, 135, 144, 150, 144, 135, 141, 142, 134, 139, 128, 141, 135, 135, 138, 144, 142, 143, 132, 137, 128, 145, 111, 136, 142, 133, 144, 125, 143, 137, 148, 122, 131, 133, 140, 148, 129, 134, 132, 140, 132, 150, 134, 141, 128, 119, 130, 137, 136, 124, 140, 138, 139, 139, 136, 131, 140, 134, 148, 143, 142, 130, 126, 142, 91, 136, 127, 131, 136, 121, 138, 149, 140, 133, 146, 137, 136, 132, 138, 121, 135, 140, 125, 136, 134, 140, 137, 135, 128, 148, 147, 149, 138, 133, 151, 137, 133, 152, 119, 140, 143, 137, 141, 134, 128, 121, 138, 117, 141, 144, 146, 145, 142, 177, 135, 134, 139, 142, 131, 140, 151, 141, 139, 116, 127, 137, 138, 134, 152, 119, 137, 139, 128, 144, 126, 132, 144, 140, 139, 135, 130, 137, 138, 132, 133, 125, 129, 134, 128, 143, 132, 134, 127, 138, 123, 139, 128, 142, 130, 137, 141, 125, 136, 133, 128, 135, 141, 125, 112, 133, 138, 135, 147, 125, 131, 130, 137, 123, 132, 132, 138, 136, 128, 137, 130, 123, 120, 136, 138, 144, 140, 132, 119, 147, 120, 136, 132, 146, 142, 132, 144, 134, 129, 126, 128, 128, 117, 135, 127, 144, 131, 137, 125, 145, 133, 140, 138, 152, 145, 150, 148, 130, 141, 124, 122, 117, 128, 126, 149, 144, 155, 143, 134, 127, 142, 146, 139, 141, 144, 144, 138, 135, 135, 135, 135, 136, 124, 118, 131, 141, 143, 136, 134, 135, 130, 136, 123, 121, 130, 132, 156, 143, 162, 129, 135, 134, 141, 158, 129, 129, 153, 120, 134, 141, 149, 138, 137, 123, 130, 145, 126, 132, 129, 120, 139, 126, 128, 130, 139, 140, 144, 136, 125, 144, 113, 131, 132, 138, 144, 131, 135, 132, 126, 133, 133, 129, 137, 140, 128, 135, 139, 134, 142, 149, 167, 136, 128, 139, 140, 122, 131, 145, 136, 144, 137, 117, 132, 140, 142, 138, 138, 140, 136, 120, 133, 125, 137, 126, 126, 128, 133, 134, 138, 140, 135, 124, 139, 140, 116, 131, 132, 137, 135, 128, 127, 151, 151, 133, 131, 136, 147, 132, 129, 134, 130, 143, 145, 138, 147, 141, 127, 150, 149, 155, 144, 121, 137, 124, 128, 128, 138, 122, 125, 109, 128, 151, 138, 116, 130, 130, 129, 150, 140, 153, 138, 135, 143, 131, 140, 130, 140, 143, 130, 148, 130, 114, 120, 128, 125, 140, 130, 128, 141, 137, 133, 136, 141, 151, 135, 130, 131, 139, 148, 129, 138, 143, 123, 128, 132, 134, 135, 137, 136, 144, 129, 128, 142, 135, 136, 121, 149, 147, 148, 143, 139, 125, 143, 126, 137, 142, 134, 136, 146, 131, 133, 138, 139, 148, 133, 123, 130, 115, 143, 125, 131, 133, 131, 119, 152, 130, 134, 123, 138, 128, 134, 132, 120, 137, 151, 140, 141, 129, 157, 151, 151, 131, 122, 139, 155, 131, 141, 127, 114, 128, 135, 153, 129, 138, 133, 121, 141, 136, 142, 138, 141, 129, 111, 130, 135, 134, 151, 134, 149, 140, 128, 157, 136, 139, 120, 124, 137, 117, 148, 133, 120, 130, 144, 127, 136, 140, 126, 141, 116, 137, 128, 135, 128, 120, 138, 134, 135, 133, 119, 136, 159, 139, 141, 137, 137, 139, 132, 133, 143, 152, 140, 149, 139, 152, 111, 130, 129, 149, 133, 135, 144, 125, 148, 138, 132, 133, 137, 139, 127, 144, 129, 138, 141, 128, 134, 130, 143, 138, 134, 132, 129, 156, 143, 148, 128, 130, 132, 128, 142, 142, 128, 123, 134, 160, 134, 147, 127, 142, 131, 122, 135, 134, 140, 145, 141, 123, 144, 145, 135, 141, 113, 116, 123, 125, 152, 143, 142, 144, 134, 145, 120, 132, 134, 119, 122, 137, 129, 128, 135, 133, 135, 116, 124, 138, 134, 141, 150, 131, 138, 146, 145, 166, 132, 148, 129, 136, 154, 133, 136, 138, 132, 143, 139, 122, 139, 151, 139, 128, 118, 126, 140, 140, 131, 141, 140, 136, 132, 122, 135, 136, 141, 146, 131, 148, 143, 126, 139, 136, 143, 149, 138, 137, 132, 142, 115, 147, 136, 129, 121, 136, 137, 149, 121, 143, 137, 142, 147, 128, 131, 134, 140, 140, 134, 150, 135, 140, 130, 126, 137, 159, 122, 137, 140, 132, 135, 132, 148, 142, 141, 122, 124, 130, 139, 122, 136, 161, 126, 144, 147, 124, 159, 139, 130, 136, 140, 137, 145, 135, 144, 129, 137, 140, 140, 149, 125, 150, 136, 146, 137, 139, 134, 134, 141, 123, 139, 143, 142, 127, 140, 145, 126, 145, 150, 130, 134, 127, 144, 145, 128, 139, 141, 135, 141, 132, 140, 134, 147, 136, 146, 140, 112, 155, 125, 123, 131, 137, 134, 121, 130, 130, 136, 139, 123, 124, 128, 132, 138, 139, 128, 144, 136, 125, 141, 135, 132, 147, 112, 131, 142, 137, 139, 142, 128, 140, 126, 122, 133, 132, 145, 149, 140, 124, 129, 143, 132, 162, 135, 145, 148, 136, 128, 139, 126, 135, 140, 139, 129, 133, 145, 135, 127, 138, 128, 130, 126, 131, 133, 151, 130, 131, 138, 131, 170, 131, 136, 134, 142, 119, 123, 127, 142, 155, 131, 135, 116, 137, 129, 139, 138, 145, 148, 133, 137, 131, 144, 115, 146, 141, 146, 134, 132, 128, 126, 143, 141, 130, 148, 131, 116, 141, 132, 137, 140, 136, 133, 137, 127, 146, 112, 136, 131, 160, 137, 124, 134, 186, 137, 135, 139, 131, 129, 130, 141, 135, 134, 122, 127, 145, 132, 140, 128, 188, 133, 143, 135, 139, 146, 141, 133, 144, 129, 138, 139, 132, 136, 142, 146, 128, 137, 135, 132, 140, 128, 133, 127, 143, 137, 124, 123, 132, 132, 127, 128, 122, 144, 164, 146, 124, 132, 152, 126, 157, 140, 136, 131, 135, 141, 127, 131, 129, 115, 129, 156, 125, 113, 141, 131, 158, 142, 126, 145, 125, 129, 131, 139, 139, 143, 143, 132, 132, 137, 133, 130, 138, 129, 133, 128, 130, 142, 150, 139, 128, 137, 142, 137, 147, 150, 157, 141, 127, 131, 131, 129, 125, 150, 152, 134, 134, 137, 123, 141, 124, 142, 133, 141, 132, 137, 136, 153, 137, 110, 128, 122, 134, 142, 143, 114, 146, 139, 133, 138, 133, 129, 149, 130, 121, 130, 147, 130, 129, 128, 137, 139, 122, 148, 129, 123, 129, 134, 157, 154, 132, 119, 139, 127, 148, 127, 128, 137, 102, 130, 146, 139, 132, 136, 137, 143, 141, 126, 121, 149, 145, 146, 132, 137, 146, 128, 134, 134, 137, 114, 124, 127, 127, 133, 131, 136, 159, 151, 138, 139, 134, 103, 138, 129, 142, 139, 132, 123, 122, 152, 136, 127, 125, 130, 155, 134, 130, 158, 131, 124, 142, 137, 139, 133, 146, 131, 106, 132, 130, 137, 125, 137, 138, 126, 129, 128, 140, 132, 126, 133, 127, 149, 122, 135, 126, 143, 161, 134, 141, 135, 132, 126, 127, 138, 151, 132, 146, 146, 124, 146, 145, 144, 130, 119, 152, 127, 141, 146, 132, 121, 135, 140, 137, 123, 139, 126, 134, 125, 135, 126, 161, 133, 135, 124, 142, 127, 138, 124, 127, 134, 130, 128, 121, 141, 134, 136, 156, 125, 146, 160, 132, 123, 129, 134, 131, 131, 125, 141, 125, 125, 117, 128, 130, 131, 132, 140, 126, 145, 126, 110, 138, 126, 120, 126, 147, 137, 144, 116, 139, 141, 136, 121, 143, 149, 141, 121, 132, 138, 126, 135, 132, 132, 125, 136, 145, 148, 123, 120, 139, 140, 144, 130, 145, 127, 151, 130, 127, 126, 138, 116, 129, 144, 132, 140, 126, 161, 132, 142, 146, 125, 129, 131, 139, 152, 114, 142, 119, 116, 129, 155, 149, 144, 147, 135, 146, 135, 124, 122, 138, 134, 135, 135, 132, 117, 139, 125, 151, 126, 137, 134, 136, 135, 116, 140, 137, 155, 121, 128, 159, 146, 132, 132, 130, 119, 134, 122, 139, 134, 127, 130, 135, 149, 130, 139, 131, 152, 142, 129, 133, 131, 127, 126, 123, 138, 138, 141, 126, 142, 130, 125, 120, 135, 126, 131, 135, 122, 123, 140, 134, 140, 145, 139, 131, 123, 144, 138, 138, 131, 137, 143, 137, 152, 129, 136, 118, 126, 157, 137, 132, 150, 134, 137, 146, 126, 131, 133, 135, 124, 130, 135, 130, 133, 138, 109, 137, 163, 144, 124, 137, 121, 136, 137, 130, 129, 138, 135, 142, 133, 127, 137, 137, 130, 110, 125, 130, 133, 141, 110, 158, 118, 128, 165, 131, 135, 122, 148, 127, 123, 138, 136, 122, 145, 135, 141, 141, 135, 135, 139, 130, 128, 136, 129, 142, 121, 118, 131, 143, 142, 132, 123, 139, 133, 149, 148, 144, 131, 137, 138, 145, 141, 152, 146, 145, 122, 130, 124, 139, 125, 139, 139, 123, 120, 141, 110, 141, 153, 134, 120, 130, 120, 118, 126, 130, 125, 141, 147, 122, 145, 132, 138, 125, 131, 122, 122, 135, 145, 140, 144, 143, 146, 127, 129, 157, 146, 129, 153, 120, 127, 132, 153, 142, 142, 133, 134, 145, 149, 128, 148, 127, 131, 140, 128, 128, 124, 130, 140, 130, 134, 144, 134, 129, 124, 138, 148, 146, 119, 168, 126, 139, 122, 130, 136, 142, 129, 141, 135, 143, 149, 135, 124, 149, 151, 126, 152, 150, 139, 119, 137, 133, 136, 169, 144, 138, 137, 152, 132, 141, 128, 139, 140, 131, 165, 137, 144, 133, 156, 142, 147, 137, 126, 135, 114, 140, 132, 133, 146, 127, 130, 140, 145, 128, 137, 138, 137, 125, 133, 135, 135, 141, 144, 137, 145, 122, 142, 130, 146, 130, 143, 128, 132, 122, 142, 132, 144, 136, 140, 136, 130, 133, 120, 116, 134, 130, 132, 146, 138, 140, 140, 136, 130, 144, 135, 115, 131, 131, 131, 157, 138, 135, 126, 141, 146, 124, 130, 139, 142, 127, 115, 117, 150, 129, 117, 169, 166, 162, 134, 134, 142, 147, 122, 135, 139, 135, 138, 110, 129, 136, 148, 134, 128, 131, 123, 125, 131, 147, 138, 130, 138, 143, 142, 136, 143, 132, 128, 130, 116, 133, 110, 135, 127, 136, 125, 122, 117, 136, 130, 129, 122, 164, 139, 106, 124, 128, 117, 149, 127, 127, 140, 131, 126, 145, 115, 150, 150, 122, 128, 164, 131, 128, 140, 139, 136, 154, 136, 113, 132, 141, 133, 134, 133, 136, 128, 135, 138, 135, 129, 133, 135, 142, 141, 141, 134, 139, 139, 128, 134, 137, 142, 136, 134, 128, 138, 137, 135, 140, 138, 136, 135, 131, 132, 127, 135, 138, 134, 127, 128, 132, 135, 132, 134, 137, 135, 147, 138, 134, 131, 128, 127, 137, 145, 134, 140, 139, 141, 126, 147, 130, 132, 132, 138, 147, 144, 133, 137, 135, 139, 134, 127, 135, 140, 134, 136, 131, 133, 141, 142, 142, 152, 147, 129, 130, 133, 126, 135, 143, 124, 130, 137, 137, 136, 141, 137, 139, 139, 140, 141, 144, 136, 137, 137, 138, 139, 141, 136, 139, 134, 144, 131, 131, 142, 143, 139, 138, 144, 140, 139, 132, 141, 133, 130, 133, 136, 135, 141, 143, 138, 142, 125, 137, 137, 124, 117, 138, 127, 138, 137, 145, 135, 133, 142, 140, 137, 134, 138, 131, 137, 125, 137, 133, 135, 141, 125, 130, 133, 138, 145, 141, 128, 139, 128, 144, 144, 142, 140, 138, 135, 143, 131, 126, 131, 134, 124, 132, 135, 129, 140, 136, 135, 138, 140, 133, 141, 137, 142, 136, 138, 128, 139, 131, 135, 137, 130, 140, 143, 152, 138, 140, 141, 133, 131, 130, 135, 126, 148, 129, 144, 133, 128, 142, 143, 127, 133, 141, 126, 144, 132, 135, 132, 132, 136, 136, 134, 135, 135, 139, 139, 138, 136, 134, 127, 128, 132, 146, 138, 136, 145, 141, 132, 140, 139, 147, 136, 132, 132, 132, 133, 134, 127, 139, 137, 146, 139, 136, 130, 135, 139, 143, 143, 130, 126, 140, 135, 136, 127, 136, 140, 134, 137, 135, 148, 142, 124, 146, 140, 136, 132, 129, 137, 143, 141, 116, 139, 137, 135, 138, 134, 129, 129, 134, 142, 142, 140, 138, 145, 141, 121, 136, 139, 148, 134, 144, 146, 138, 135, 131, 128, 141, 138, 132, 139, 143, 136, 132, 125, 139, 138, 141, 132, 136, 137, 140, 132, 144, 149, 129, 133, 141, 137, 135, 141, 146, 136, 118, 130, 135, 141, 141, 134, 122, 137, 133, 130, 141, 137, 138, 137, 142, 131, 132, 127, 140, 138, 138, 135, 142, 137, 133, 144, 141, 125, 133, 133, 136, 145, 147, 135, 137, 140, 136, 144, 138, 138, 129, 132, 132, 136, 135, 136, 133, 130, 142, 138, 135, 133, 129, 134, 121, 132, 127, 139, 134, 131, 114, 139, 139, 132, 139, 135, 135, 126, 131, 136, 134, 134, 134, 133, 141, 129, 132, 139, 139, 140, 130, 127, 137, 131, 134, 138, 136, 140, 135, 136, 138, 144, 123, 136, 135, 138, 129, 129, 131, 134, 151, 130, 137, 147, 139, 135, 141, 136, 145, 133, 131, 133, 132, 133, 140, 141, 140, 146, 136, 137, 139, 140, 139, 144, 142, 138, 139, 133, 133, 128, 139, 130, 134, 138, 132, 147, 137, 129, 131, 144, 139, 130, 130, 147, 131, 136, 127, 131, 139, 148, 142, 135, 136, 141, 124, 127, 127, 133, 133, 133, 135, 156, 138, 139, 133, 132, 139, 130, 149, 138, 147, 128, 143, 139, 128, 136, 139, 129, 132, 135, 123, 122, 139, 126, 130, 143, 140, 123, 139, 135, 139, 164, 145, 139, 131, 139, 125, 132, 148, 134, 148, 150, 125, 129, 135, 139, 148, 140, 132, 127, 105, 140, 154, 154, 131, 150, 150, 130, 131, 144, 138, 119, 121, 141, 132, 158, 132, 111, 132, 135, 148, 119, 131, 135, 139, 146, 126, 148, 121, 142, 141, 159, 119, 133, 143, 139, 127, 152, 152, 129, 143, 137, 113, 133, 144, 129, 137, 135, 140, 144, 123, 124, 117, 147, 133, 136, 132, 133, 134, 129, 136, 143, 134, 154, 134, 143, 128, 132, 122, 130, 137, 119, 134, 148, 129, 132, 127, 118, 132, 151, 136, 131, 130, 134, 130, 132, 132, 137, 136, 140, 128, 147, 135, 131, 142, 126, 149, 148, 151, 129, 132, 130, 125, 144, 130, 145, 143, 139, 133, 146, 137, 134, 129, 139, 134, 139, 135, 134, 138, 136, 135, 142, 123, 137, 151, 157, 130, 150, 140, 135, 135, 158, 147, 130, 140, 128, 142, 129, 133, 143, 129, 137, 124, 143, 111, 137, 126, 140, 137, 141, 135, 137, 150, 130, 141, 126, 144, 118, 120, 147, 135, 144, 130, 153, 147, 116, 137, 147, 133, 128, 136, 138, 136, 141, 137, 132, 151, 112, 143, 129, 140, 129, 125, 144, 141, 135, 130, 130, 154, 135, 138, 134, 123, 112, 135, 142, 128, 143, 140, 152, 125, 136, 124, 131, 124, 139, 125, 127, 144, 153, 126, 117, 141, 144, 156, 135, 155, 118, 118, 135, 137, 146, 130, 138, 124, 146, 136, 126, 153, 148, 123, 144, 124, 129, 130, 142, 140, 128, 128, 144, 128, 120, 144, 141, 165, 113, 122, 140, 135, 157, 142, 140, 122, 132, 146, 139, 135, 135, 131, 142, 131, 146, 132, 154, 122, 137, 122, 147, 142, 140, 137, 137, 114, 135, 132, 145, 134, 129, 142, 133, 140, 136, 134, 140, 134, 130, 136, 130, 151, 137, 137, 129, 136, 130, 125, 119, 133, 152, 134, 125, 130, 121, 108, 130, 133, 142, 135, 140, 154, 131, 125, 127, 126, 132, 125, 136, 138, 143, 122, 135, 138, 133, 152, 128, 129, 139, 114, 137, 121, 135, 129, 128, 135, 140, 138, 120, 129, 126, 139, 125, 133, 139, 138, 136, 125, 139, 139, 112, 135, 129, 137, 134, 137, 140, 142, 136, 130, 136, 134, 145, 134, 158, 136, 153, 137, 136, 148, 147, 130, 129, 125, 132, 152, 143, 140, 129, 141, 118, 141, 147, 145, 149, 156, 145, 146, 137, 142, 136, 142, 139, 121, 123, 126, 132, 134, 160, 128, 149, 124, 142, 116, 152, 122, 121, 149, 142, 149, 122, 132, 132, 146, 133, 122, 110, 131, 144, 140, 135, 145, 119, 126, 130, 137, 144, 135, 131, 133, 148, 143, 144, 130, 151, 142, 135, 137, 147, 135, 120, 137, 121, 137, 156, 143, 131, 124, 133, 131, 114, 141, 133, 127, 147, 152, 153, 144, 130, 120, 143, 152, 156, 129, 129, 127, 140, 134, 143, 131, 129, 133, 130, 136, 123, 133, 119, 140, 133, 130, 141, 128, 124, 132, 137, 125, 124, 125, 143, 133, 131, 152, 141, 131, 148, 140, 138, 141, 134, 135, 135, 137, 137, 136, 155, 135, 136, 135, 129, 137, 143, 137, 135, 148, 149, 124, 140, 138, 129, 136, 133, 131, 139, 132, 132, 138, 135, 128, 138, 140, 137, 125, 136, 137, 121, 122, 113, 143, 124, 126, 117, 125, 129, 130, 124, 140, 142, 125, 136, 142, 138, 145, 130, 147, 140, 125, 128, 134, 133, 144, 144, 146, 138, 138, 129, 135, 143, 138, 132, 142, 129, 139, 134, 139, 150, 117, 126, 132, 165, 141, 122, 141, 154, 134, 135, 138, 145, 142, 129, 129, 127, 143, 122, 148, 145, 137, 132, 138, 147, 130, 126, 144, 133, 128, 133, 133, 144, 134, 136, 121, 141, 129, 133, 130, 153, 144, 131, 133, 127, 140, 144, 133, 143, 143, 129, 134, 141, 135, 130, 137, 129, 135, 158, 121, 133, 140, 140, 123, 143, 138, 126, 130, 133, 135, 139, 161, 125, 140, 125, 143, 130, 133, 120, 131, 148, 129, 130, 133, 133, 134, 126, 133, 129, 128, 143, 147, 141, 143, 138, 134, 153, 148, 132, 143, 162, 130, 132, 116, 133, 126, 139, 141, 128, 138, 129, 133, 121, 153, 121, 135, 128, 136, 145, 142, 135, 144, 126, 136, 114, 144, 138, 137, 152, 148, 129, 135, 142, 141, 122, 131, 140, 129, 118, 136, 150, 156, 137, 136, 121, 139, 131, 163, 137, 135, 123, 129, 147, 143, 116, 138, 134, 142, 160, 124, 143, 135, 138, 127, 135, 125, 136, 121, 129, 132, 142, 136, 137, 144, 143, 145, 145, 125, 142, 139, 134, 141, 127, 146, 120, 129, 142, 149, 123, 126, 140, 130, 152, 137, 129, 130, 135, 126, 135, 133, 136, 141, 134, 130, 130, 136, 125, 130, 135, 127, 127, 130, 132, 150, 135, 128, 108, 146, 135, 137, 137, 125, 140, 132, 128, 147, 139, 140, 150, 140, 130, 139, 132, 134, 123, 126, 134, 147, 136, 136, 127, 138, 140, 133, 128, 114, 136, 127, 138, 123, 134, 130, 137, 130, 128, 148, 136, 126, 131, 136, 148, 136, 146, 127, 129, 133, 117, 142, 124, 122, 149, 142, 144, 117, 121, 135, 143, 125, 131, 133, 134, 135, 143, 143, 128, 141, 130, 130, 137, 133, 125, 148, 147, 142, 129, 122, 133, 133, 155, 128, 134, 139, 131, 136, 140, 133, 130, 138, 130, 133, 127, 139, 136, 130, 155, 134, 134, 141, 126, 144, 131, 138, 131, 130, 131, 139, 132, 144, 138, 131, 132, 132, 138, 132, 135, 135, 130, 140, 132, 140, 145, 149, 136, 140, 139, 152, 139, 138, 124, 149, 130, 136, 131, 143, 145, 137, 138, 141, 121, 140, 136, 133, 149, 132, 134, 132, 116, 136, 136, 148, 140, 133, 116, 138, 135, 134, 131, 127, 153, 144, 138, 143, 126, 131, 144, 132, 116, 146, 148, 147, 113, 139, 141, 145, 145, 144, 142, 130, 141, 145, 135, 124, 130, 155, 147, 130, 136, 143, 121, 132, 132, 129, 131, 147, 142, 140, 127, 148, 127, 131, 126, 151, 123, 126, 123, 155, 143, 154, 145, 140, 135, 131, 148, 137, 143, 137, 146, 130, 147, 132, 140, 138, 140, 140, 148, 137, 142, 128, 132, 114, 140, 157, 126, 163, 133, 140, 137, 131, 122, 142, 150, 131, 146, 120, 132, 154, 127, 145, 142, 126, 140, 124, 133, 130, 144, 144, 129, 131, 134, 130, 143, 138, 135, 158, 142, 136, 143, 139, 127, 140, 137, 136, 125, 134, 141, 135, 136, 145, 128, 136, 165, 141, 141, 138, 150, 138, 138, 127, 145, 142, 148, 141, 142, 145, 158, 144, 172, 131, 131, 151, 129, 141, 131, 119, 129, 135, 158, 146, 126, 138, 145, 143, 131, 139, 140, 113, 129, 145, 124, 130, 144, 129, 148, 132, 130, 118, 135, 140, 167, 132, 133, 136, 152, 150, 156, 144, 132, 151, 133, 122, 142, 150, 134, 132, 150, 135, 138, 131, 148, 142, 144, 136, 132, 134, 137, 117, 141, 134, 121, 135, 128, 142, 146, 158, 125, 131, 127, 126, 145, 144, 124, 147, 136, 129, 143, 132, 144, 132, 152, 133, 132, 121, 132, 142, 130, 134, 154, 144, 135, 152, 141, 147, 132, 135, 123, 150, 151, 125, 131, 139, 137, 135, 118, 131, 139, 123, 137, 139, 154, 146, 151, 140, 137, 145, 124, 133, 123, 121, 134, 133, 136, 131, 141, 144, 140, 142, 138, 124, 149, 154, 137, 139, 152, 173, 152, 147, 131, 143, 148, 163, 134, 128, 137, 146, 133, 140, 128, 153, 141, 146, 143, 127, 149, 144, 151, 126, 133, 138, 143, 154, 124, 123, 124, 127, 144, 128, 136, 156, 127, 125, 138, 130, 150, 156, 143, 128, 123, 147, 137, 180, 134, 135, 136, 136, 140, 127, 141, 134, 155, 142, 120, 139, 126, 129, 162, 132, 128, 128, 149, 122, 132, 136, 131, 137, 133, 137, 125, 122, 136, 146, 126, 126, 137, 130, 159, 130, 155, 147, 142, 136, 134, 132, 138, 138, 133, 136, 126, 158, 138, 158, 143, 131, 135, 140, 135, 133, 123, 116, 142, 138, 128, 98, 133, 132, 127, 141, 136, 137, 128, 137, 133, 134, 147, 125, 132, 142, 127, 136, 140, 138, 125, 146, 135, 133, 136, 117, 138, 120, 137, 139, 134, 137, 148, 148, 130, 139, 117, 132, 140, 129, 151, 122, 139, 147, 145, 132, 126, 132, 138, 149, 138, 113, 137, 136, 128, 158, 130, 114, 144, 130, 138, 132, 132, 150, 144, 123, 130, 141, 137, 126, 140, 132, 134, 141, 139, 133, 144, 145, 148, 141, 137, 141, 134, 163, 122, 139, 140, 132, 135, 138, 130, 126, 130, 142, 137, 138, 136, 136, 135, 135, 134, 116, 136, 135, 151, 136, 131, 130, 126, 124, 129, 129, 146, 128, 143, 140, 141, 118, 138, 145, 134, 144, 134, 135, 129, 132, 120, 141, 144, 125, 141, 135, 135, 139, 139, 128, 134, 134, 134, 152, 130, 131, 127, 122, 130, 132, 142, 131, 141, 131, 153, 138, 135, 141, 131, 154, 123, 135, 134, 138, 125, 131, 127, 131, 132, 139, 142, 119, 127, 133, 141, 131, 150, 133, 122, 155, 132, 142, 145, 134, 127, 128, 143, 122, 138, 136, 143, 139, 139, 141, 162, 138, 129, 137, 141, 146, 135, 141, 130, 133, 149, 139, 150, 138, 125, 136, 139, 127, 137, 136, 125, 146, 124, 151, 131, 128, 117, 126, 127, 139, 136, 142, 130, 125, 136, 122, 128, 131, 141, 130, 141, 122, 127, 129, 147, 137, 136, 132, 133, 125, 133, 142, 113, 138, 144, 138, 123, 148, 129, 146, 132, 146, 145, 125, 127, 138, 150, 124, 125, 131, 139, 142, 139, 139, 138, 120, 142, 126, 133, 123, 143, 124, 132, 130, 138, 124, 149, 139, 138, 135, 115, 143, 133, 136, 148, 148, 147, 145, 165, 141, 125, 125, 131, 142, 150, 143, 126, 131, 148, 145, 140, 132, 135, 138, 130, 166, 135, 134, 140, 131, 131, 138, 137, 133, 120, 125, 135, 113, 136, 141, 136, 141, 147, 150, 140, 129, 141, 149, 118, 117, 129, 142, 129, 141, 136, 152, 159, 145, 122, 133, 128, 130, 142, 127, 139, 143, 137, 131, 125, 146, 122, 139, 126, 137, 136, 142, 137, 126, 145, 126, 143, 130, 127, 147, 145, 132, 125, 121, 116, 135, 126, 125, 113, 142, 135, 140, 172, 159, 139, 136, 129, 117, 153, 144, 128, 133, 123, 126, 121, 152, 144, 136, 117, 168, 153, 125, 127, 154, 143, 122, 133, 133, 125, 139, 139, 123, 130, 139, 141, 149, 140, 149, 139, 142, 135, 122, 140, 124, 122, 135, 141, 149, 119, 136, 136, 144, 144, 123, 127, 110, 137, 147, 136, 131, 124, 132, 139, 134, 133, 145, 132, 133, 144, 139, 142, 144, 133, 138, 128, 151, 140, 133, 137, 120, 122, 142, 113, 125, 125, 140, 127, 137, 146, 135, 148, 129, 164, 139, 133, 130, 154, 124, 132, 135, 138, 142, 139, 132, 156, 137, 137, 124, 134, 137, 140, 132, 131, 129, 144, 140, 138, 139, 127, 133, 121, 171, 159, 122, 142, 140, 157, 143, 121, 136, 132, 137, 122, 148, 143, 139, 133, 133, 144, 143, 128, 140, 145, 123, 134, 143, 130, 132, 125, 127, 157, 124, 129, 125, 139, 135, 131, 145, 142, 129, 141, 121, 140, 128, 122, 121, 124, 140, 137, 143, 126, 139, 154, 125, 145, 125, 130, 135, 131, 130, 130, 156, 145, 134, 149, 145, 133, 125, 140, 139, 131, 136, 126, 131, 138, 131, 128, 154, 130, 134, 139, 128, 128, 126, 142, 149, 129, 135, 159, 118, 130, 134, 122, 127, 117, 116, 125, 112, 130, 141, 120, 146, 137, 138, 118, 142, 119, 128, 150, 135, 140, 134, 149, 144, 126, 143, 143, 136, 132, 121, 150, 140, 142, 138, 131, 133, 135, 120, 125, 140, 129, 129, 142, 132, 152, 131, 140, 133, 141, 142, 150, 136, 136, 146, 131, 158, 132, 134, 151, 146, 138, 131, 128, 149, 145, 126, 130, 143, 135, 130, 149, 127, 150, 147, 124, 150, 131, 130, 131, 132, 124, 123, 132, 133, 143, 134, 146, 139, 138, 134, 125, 114, 137, 153, 124, 140, 126, 130, 147, 130, 144, 120, 115, 116, 128, 132, 144, 125, 121, 129, 142, 139, 131, 136, 135, 138, 148, 155, 148, 128, 134, 136, 143, 139, 128, 135, 146, 145, 144, 145, 129, 134, 119, 140, 132, 128, 119, 138, 136, 126, 146, 137, 154, 117, 141, 122, 144, 122, 124, 137, 127, 127, 132, 139, 132, 145, 132, 145, 140, 133, 134, 129, 131, 128, 131, 153, 135, 136, 135, 135, 136, 143, 137, 131, 133, 119, 145, 125, 131, 121, 153, 145, 132, 127, 136, 127, 139, 117, 179, 144, 157, 139, 134, 147, 140, 141, 168, 147, 118, 132, 131, 136, 149, 143, 133, 121, 136, 134, 126, 126, 138, 143, 132, 145, 130, 157, 141, 136, 122, 125, 138, 134, 132, 144, 139, 132, 129, 139, 145, 138, 139, 130, 148, 137, 121, 148, 153, 135, 140, 137, 123, 136, 140, 140, 144, 141, 132, 148, 144, 139, 135, 145, 142, 144, 145, 119, 139, 136, 133, 112, 152, 129, 148, 136, 123, 134, 118, 125, 144, 145, 134, 143, 153, 130, 145, 121, 121, 123, 133, 142, 124, 128, 135, 135, 125, 141, 134, 125, 130, 117, 142, 140, 109, 122, 136, 140, 136, 158, 131, 121, 143, 130, 134, 127, 141, 146, 147, 118, 136, 139, 138, 124, 142, 141, 135, 141, 143, 123, 130, 140, 121, 138, 138, 141, 132, 142, 122, 121, 110, 147, 147, 130, 135, 151, 132, 131, 109, 138, 129, 143, 155, 135, 152, 126, 138, 144, 139, 131, 138, 143, 130, 102, 123, 136, 142, 129, 158, 166, 141, 142, 145, 140, 135, 130, 150, 122, 129, 137, 122, 132, 132, 124, 148, 135, 130, 147, 134, 114, 150, 147, 138, 126, 142, 123, 131, 134, 142, 131, 117, 131, 133, 151, 135, 127, 130, 158, 135, 132, 131, 120, 133, 136, 139, 142, 142, 160, 143, 143, 135, 139, 137, 133, 110, 146, 143, 141, 139, 138, 132, 129, 152, 131, 136, 132, 141, 123, 121, 120, 126, 135, 137, 144, 129, 140, 136, 143, 146, 151, 149, 125, 137, 131, 129, 152, 141, 138, 134, 147, 136, 143, 132, 127, 130, 133, 123, 133, 165, 132, 150, 137, 151, 131, 147, 133, 128, 143, 136, 128, 146, 127, 152, 130, 142, 138, 140, 133, 136, 134, 138, 137, 138, 153, 120, 126, 140, 120, 145, 146, 132, 134, 137, 131, 132, 121, 129, 123, 137, 133, 146, 139, 139, 118, 136, 118, 141, 121, 135, 132, 133, 143, 137, 131, 136, 139, 147, 138, 126, 140, 144, 135, 139, 142, 137, 139, 149, 131, 132, 132, 131, 150, 138, 127, 139, 130, 123, 132, 132, 144, 137, 134, 121, 139, 125, 131, 133, 130, 117, 142, 141, 131, 157, 123, 145, 142, 141, 135, 123, 118, 141, 134, 138, 143, 133, 141, 136, 136, 143, 148, 126, 113, 129, 122, 142, 140, 126, 127, 152, 144, 128, 147, 156, 125, 130, 140, 132, 151, 140, 134, 127, 147, 128, 136, 142, 124, 147, 140, 141, 127, 116, 126, 152, 127, 139, 146, 126, 123, 153, 145, 134, 138, 135, 127, 129, 119, 144, 136, 133, 134, 141, 141, 146, 139, 125, 135, 130, 140, 125, 142, 132, 128, 136, 141, 137, 133, 118, 149, 142, 136, 135, 130, 146, 146, 135, 132, 139, 130, 151, 138, 138, 121, 139, 134, 139, 143, 133, 134, 147, 142, 131, 131, 135, 147, 134, 134, 127, 149, 142, 131, 134, 139, 131, 146, 142, 139, 146, 133, 138, 128, 124, 133, 119, 139, 135, 137, 125, 136, 126, 144, 136, 144, 140, 140, 134, 132, 135, 130, 147, 130, 137, 122, 139, 137, 136, 134, 129, 123, 121, 141, 135, 138, 122, 148, 144, 130, 130, 140, 172, 142, 142, 130, 125, 135, 145, 142, 138, 132, 111, 143, 136, 136, 128, 142, 132, 129, 145, 130, 143, 139, 136, 119, 162, 133, 138, 131, 128, 131, 139, 135, 132, 142, 133, 140, 137, 127, 127, 137, 134, 131, 134, 148, 126, 133, 143, 144, 144, 139, 136, 140, 141, 129, 131, 133, 126, 143, 133, 137, 139, 145, 130, 131, 139, 127, 133, 147, 131, 145, 131, 140, 143, 151, 126, 134, 153, 130, 129, 145, 130, 142, 134, 162, 134, 140, 131, 126, 141, 140, 130, 141, 153, 117, 136, 119, 136, 141, 133, 138, 130, 134, 137, 136, 134, 142, 153, 141, 150, 138, 152, 128, 123, 136, 139, 129, 131, 135, 132, 132, 130, 132, 135, 134, 131, 132, 127, 119, 139, 138, 131, 140, 138, 146, 141, 137, 124, 134, 124, 117, 143, 125, 142, 129, 148, 138, 136, 151, 135, 128, 126, 149, 153, 133, 140, 148, 130, 136, 133, 135, 129, 130, 129, 135, 129, 134, 148, 135, 137, 132, 149, 118, 143, 125, 128, 136, 134, 136, 136, 130, 139, 133, 131, 129, 143, 135, 138, 127, 140, 133, 156, 136, 127, 131, 135, 142, 132, 135, 170, 167, 135, 135, 132, 124, 134, 130, 135, 143, 128, 139, 132, 143, 131, 119, 131, 139, 142, 150, 125, 149, 147, 127, 156, 136, 125, 127, 147, 136, 149, 134, 130, 133, 148, 134, 143, 154, 130, 132, 135, 131, 133, 134, 141, 130, 130, 131, 146, 134, 134, 137, 137, 135, 136, 137, 136, 132, 130, 128, 132, 137, 135, 134, 125, 120, 149, 136, 135, 132, 146, 142, 138, 133, 134, 147, 128, 137, 148, 134, 135, 124, 133, 134, 146, 136, 134, 119, 130, 135, 135, 124, 122, 134, 154, 130, 141, 134, 140, 133, 120, 141, 127, 127, 142, 138, 137, 130, 139, 146, 133, 131, 150, 152, 128, 138, 133, 144, 138, 134, 133, 130, 130, 137, 137, 117, 113, 146, 128, 123, 143, 133, 134, 132, 132, 153, 153, 151, 130, 136, 122, 129, 128, 133, 141, 132, 132, 133, 148, 135, 122, 140, 131, 133, 140, 133, 133, 123, 134, 141, 118, 135, 137, 137, 143, 127, 140, 137, 135, 124, 136, 134, 139, 143, 131, 129, 136, 136, 142, 141, 141, 151, 147, 128, 135, 127, 133, 148, 142, 137, 115, 128, 130, 147, 149, 135, 140, 130, 127, 136, 154, 136, 153, 115, 128, 131, 135, 130, 140, 123, 118, 127, 138, 154, 131, 115, 134, 139, 132, 125, 137, 139, 133, 124, 132, 140, 114, 130, 141, 115, 131, 138, 125, 133, 113, 131, 142, 135, 160, 152, 140, 125, 142, 140, 113, 115, 144, 147, 127, 135, 139, 155, 133, 144, 127, 138, 143, 117, 140, 134, 136, 126, 136, 137, 148, 128, 127, 136, 131, 135, 141, 140, 144, 127, 149, 128, 122, 138, 119, 131, 113, 128, 134, 131, 139, 126, 135, 127, 145, 174, 137, 134, 129, 144, 149, 133, 136, 133, 136, 131, 149, 146, 149, 144, 135, 133, 144, 122, 152, 159, 143, 133, 134, 150, 136, 140, 134, 129, 137, 120, 122, 140, 134, 112, 131, 110, 128, 136, 119, 126, 119, 129, 127, 135, 127, 130, 140, 132, 113, 128, 142, 131, 137, 131, 123, 123, 136, 138, 151, 138, 120, 124, 139, 129, 146, 124, 137, 144, 144, 139, 142, 127, 138, 127, 138, 137, 139, 147, 133, 132, 115, 133, 124, 126, 126, 143, 125, 126, 144, 144, 136, 136, 139, 144, 128, 134, 131, 137, 142, 148, 124, 140, 132, 133, 126, 144, 138, 147, 134, 140, 126, 139, 122, 132, 132, 133, 124, 136, 129, 136, 151, 153, 139, 129, 145, 127, 136, 128, 121, 127, 129, 126, 129, 131, 118, 117, 126, 144, 121, 151, 137, 136, 131, 142, 132, 137, 124, 139, 122, 143, 144, 124, 146, 122, 141, 159, 136, 136, 138, 148, 146, 145, 132, 134, 158, 122, 130, 140, 144, 128, 132, 149, 120, 134, 138, 142, 147, 133, 134, 135, 129, 134, 134, 134, 135, 125, 141, 148, 126, 146, 136, 138, 121, 126, 131, 124, 150, 135, 144, 132, 143, 127, 142, 123, 132, 126, 131, 140, 146, 133, 148, 146, 130, 131, 136, 122, 130, 141, 136, 144, 135, 136, 131, 109, 123, 131, 133, 137, 129, 133, 125, 141, 146, 124, 148, 133, 136, 142, 137, 140, 147, 136, 146, 150, 144, 143, 130, 135, 136, 158, 149, 125, 138, 150, 131, 139, 133, 139, 129, 134, 117, 131, 131, 133, 144, 135, 134, 140, 136, 138, 135, 137, 148, 135, 140, 146, 139, 133, 131, 127, 141, 136, 121, 144, 139, 145, 134, 133, 142, 144, 133, 142, 120, 136, 147, 134, 147, 127, 107, 135, 129, 128, 127, 157, 144, 142, 148, 119, 137, 129, 145, 132, 145, 136, 121, 130, 117, 144, 132, 153, 116, 132, 137, 140, 123, 130, 140, 163, 134, 137, 134, 142, 129, 140, 122, 143, 137, 127, 142, 126, 141, 131, 132, 138, 133, 129, 143, 124, 138, 133, 139, 125, 145, 143, 141, 157, 129, 136, 125, 141, 130, 121, 123, 155, 146, 138, 144, 139, 119, 151, 134, 142, 126, 133, 141, 140, 158, 154, 133, 141, 130, 128, 138, 119, 131, 129, 130, 134, 129, 150, 142, 119, 132, 146, 128, 144, 147, 129, 127, 125, 135, 122, 121, 124, 146, 141, 137, 136, 134, 135, 145, 127, 157, 129, 131, 124, 163, 140, 145, 129, 138, 129, 149, 151, 118, 137, 137, 128, 124, 149, 119, 131, 143, 130, 143, 128, 145, 131, 124, 144, 136, 135, 141, 137, 137, 131, 137, 140, 149, 123, 133, 134, 136, 128, 134, 136, 138, 138, 130, 149, 106, 147, 130, 140, 139, 130, 133, 116, 135, 146, 137, 137, 135, 134, 138, 132, 139, 142, 139, 159, 131, 137, 142, 133, 115, 119, 134, 126, 137, 135, 136, 140, 129, 130, 126, 124, 138, 120, 130, 132, 145, 137, 144, 139, 128, 131, 134, 141, 137, 139, 155, 137, 140, 135, 125, 131, 126, 130, 135, 133, 138, 141, 134, 130, 122, 130, 133, 142, 136, 131, 136, 127, 138, 138, 130, 131, 147, 143, 137, 134, 139, 136, 130, 139, 137, 132, 138, 136, 139, 139, 136, 110, 134, 134, 130, 124, 146, 138, 118, 137, 144, 160, 136, 128, 125, 137, 131, 137, 142, 128, 144, 110, 128, 125, 134, 131, 151, 138, 111, 119, 128, 134, 136, 136, 167, 134, 146, 140, 141, 142, 131, 129, 127, 136, 132, 131, 130, 144, 140, 141, 135, 108, 132, 132, 135, 138, 137, 137, 123, 140, 130, 162, 150, 135, 146, 134, 136, 136, 174, 140, 129, 136, 125, 138, 129, 143, 143, 125, 144, 120, 140, 145, 145, 133, 148, 128, 139, 134, 135, 134, 159, 133, 136, 127, 148, 148, 129, 132, 151, 135, 140, 146, 143, 140, 140, 131, 138, 134, 138, 134, 134, 144, 145, 139, 131, 142, 147, 144, 134, 139, 153, 131, 132, 128, 133, 151, 151, 124, 133, 142, 140, 128, 129, 140, 154, 138, 146, 149, 150, 139, 132, 137, 135, 144, 165, 142, 135, 119, 130, 138, 135, 145, 136, 134, 121, 140, 132, 133, 139, 132, 128, 142, 125, 139, 128, 129, 140, 130, 131, 137, 148, 113, 126, 133, 131, 132, 118, 132, 137, 142, 142, 147, 135, 134, 134, 130, 137, 134, 141, 138, 143, 142, 139, 148, 130, 137, 147, 134, 134, 134, 136, 134, 147, 134, 152, 140, 139, 141, 133, 135, 112, 158, 153, 160, 146, 150, 138, 131, 133, 141, 141, 114, 124, 138, 134, 148, 129, 147, 159, 144, 141, 132, 152, 135, 127, 126, 135, 136, 137, 131, 129, 123, 138, 145, 146, 141, 140, 144, 126, 133, 139, 121, 134, 140, 143, 143, 153, 142, 130, 116, 151, 132, 140, 136, 140, 153, 138, 125, 140, 121, 129, 137, 138, 147, 135, 135, 145, 135, 139, 143, 147, 125, 143, 149, 120, 138, 126, 148, 150, 152, 134, 133, 145, 140, 121, 131, 119, 120, 130, 125, 126, 143, 127, 150, 146, 129, 129, 152, 141, 128, 129, 148, 124, 130, 142, 124, 126, 135, 130, 141, 143, 138, 142, 144, 135, 131, 140, 124, 150, 137, 142, 128, 142, 128, 137, 133, 134, 135, 133, 131, 135, 135, 136, 122, 146, 148, 126, 156, 125, 139, 143, 137, 138, 116, 144, 139, 127, 135, 147, 120, 145, 146, 137, 136, 136, 131, 135, 132, 137, 138, 136, 137, 127, 126, 128, 134, 118, 137, 133, 127, 138, 135, 129, 152, 137, 134, 139, 142, 138, 128, 128, 138, 129, 139, 117, 124, 129, 133, 138, 130, 150, 153, 163, 129, 141, 149, 145, 129, 127, 140, 147, 138, 130, 136, 141, 144, 131, 133, 133, 130, 150, 131, 142, 141, 129, 134, 112, 130, 133, 136, 144, 155, 131, 126, 134, 120, 130, 136, 127, 150, 138, 134, 122, 132, 127, 124, 139, 137, 125, 138, 134, 136, 138, 147, 130, 129, 128, 152, 134, 132, 139, 127, 118, 126, 130, 135, 128, 128, 132, 128, 123, 139, 135, 137, 135, 144, 124, 126, 147, 129, 134, 124, 134, 131, 122, 133, 140, 141, 160, 130, 138, 136, 137, 134, 124, 140, 130, 138, 137, 137, 146, 140, 126, 144, 142, 139, 123, 142, 132, 137, 128, 129, 132, 140, 141, 130, 127, 132, 136, 140, 138, 123, 144, 142, 153, 147, 125, 131, 137, 137, 145, 134, 142, 139, 132, 133, 147, 130, 142, 128, 140, 140, 138, 127, 123, 153, 133, 133, 143, 144, 133, 148, 138, 128, 129, 133, 153, 132, 136, 127, 128, 134, 154, 133, 129, 133, 146, 133, 138, 133, 135, 131, 131, 134, 149, 137, 133, 137, 109, 143, 137, 125, 143, 142, 130, 135, 130, 129, 122, 144, 133, 137, 137, 138, 165, 138, 134, 136, 123, 120, 146, 126, 132, 124, 135, 132, 138, 139, 127, 133, 114, 130, 134, 132, 142, 141, 130, 132, 134, 134, 144, 145, 150, 128, 146, 133, 140, 125, 134, 130, 135, 143, 132, 145, 136, 132, 132, 140, 144, 134, 145, 146, 148, 136, 150, 137, 149, 135, 141, 118, 140, 145, 132, 139, 143, 151, 133, 126, 128, 136, 129, 145, 144, 136, 137, 131, 130, 136, 135, 126, 124, 140, 137, 121, 127, 130, 136, 153, 127, 131, 151, 137, 137, 138, 146, 131, 128, 139, 125, 129, 138, 129, 139, 126, 124, 134, 137, 124, 133, 126, 142, 132, 134, 125, 132, 125, 129, 147, 146, 130, 143, 141, 122, 137, 129, 142, 120, 134, 140, 144, 137, 139, 123, 137, 135, 137, 127, 142, 135, 133, 136, 135, 137, 129, 120, 130, 142, 139, 135, 124, 137, 133, 132, 127, 137, 137, 140, 137, 130, 147, 137, 128, 132, 130, 145, 141, 143, 139, 133, 143, 134, 142, 135, 152, 140, 136, 135, 135, 134, 130, 143, 135, 132, 120, 139, 139, 138, 147, 142, 129, 133, 133, 152, 140, 145, 132, 132, 125, 128, 138, 134, 120, 130, 129, 136, 137, 133, 130, 136, 147, 138, 136, 130, 135, 131, 125, 134, 120, 123, 134, 127, 129, 151, 137, 141, 141, 126, 131, 132, 139, 138, 140, 139, 123, 125, 132, 128, 128, 133, 144, 125, 143, 132, 143, 135, 114, 137, 144, 136, 137, 138, 139, 132, 138, 132, 142, 140, 137, 139, 135, 154, 148, 140, 131, 143, 129, 135, 140, 147, 135, 128, 148, 135, 153, 154, 130, 129, 139, 154, 137, 145, 139, 130, 129, 130, 132, 136, 129, 141, 140, 144, 137, 148, 129, 134, 132, 131, 141, 131, 133, 140, 141, 141, 145, 125, 127, 136, 138, 130, 145, 147, 143, 140, 135, 148, 130, 130, 152, 137, 135, 126, 130, 158, 126, 141, 142, 131, 143, 132, 133, 159, 136, 131, 131, 132, 148, 131, 142, 132, 134, 127, 137, 146, 135, 141, 144, 152, 126, 134, 120, 136, 119, 131, 146, 126, 143, 150, 118, 153, 148, 143, 147, 132, 134, 138, 120, 150, 135, 137, 111, 125, 123, 134, 128, 145, 114, 146, 131, 141, 140, 146, 138, 122, 134, 125, 129, 137, 150, 137, 155, 130, 164, 135, 137, 153, 135, 139, 124, 138, 133, 136, 129, 124, 149, 130, 136, 119, 121, 124, 127, 136, 138, 119, 130, 135, 160, 120, 140, 129, 132, 145, 133, 145, 131, 124, 125, 130, 133, 133, 151, 137, 123, 133, 142, 127, 143, 141, 150, 148, 148, 115, 130, 135, 154, 128, 121, 139, 129, 139, 129, 132, 157, 136, 136, 137, 124, 137, 133, 147, 134, 125, 134, 139, 135, 127, 145, 157, 135, 129, 136, 129, 137, 122, 122, 142, 130, 128, 136, 133, 115, 143, 138, 121, 120, 142, 136, 133, 115, 144, 134, 149, 127, 144, 130, 147, 134, 136, 123, 132, 116, 126, 144, 124, 139, 150, 125, 124, 143, 165, 128, 153, 126, 136, 131, 136, 147, 130, 133, 103, 103, 136, 146, 140, 140, 132, 146, 139, 138, 129, 137, 145, 127, 144, 143, 134, 152, 125, 147, 128, 137, 141, 152, 122, 125, 121, 128, 148, 133, 145, 130, 135, 132, 138, 126, 137, 132, 137, 140, 147, 131, 138, 127, 145, 133, 129, 133, 127, 150, 142, 143, 123, 133, 139, 133, 141, 129, 142, 132, 128, 137, 124, 134, 123, 146, 143, 127, 151, 145, 123, 140, 140, 122, 125, 137, 127, 133, 140, 120, 146, 125, 133, 130, 141, 122, 137, 165, 141, 135, 159, 156, 142, 124, 140, 124, 133, 144, 134, 135, 127, 134, 144, 130, 132, 122, 146, 129, 133, 140, 148, 136, 146, 136, 158, 151, 128, 141, 147, 126, 120, 150, 137, 153, 143, 145, 148, 137, 138, 134, 135, 143, 127, 147, 123, 133, 148, 135, 129, 108, 127, 147, 138, 142, 136, 134, 123, 142, 128, 137, 146, 131, 133, 152, 135, 139, 149, 140, 133, 153, 131, 137, 140, 140, 129, 169, 146, 132, 154, 140, 133, 131, 131, 129, 135, 144, 122, 140, 134, 134, 147, 148, 129, 122, 138, 156, 123, 144, 128, 121, 143, 122, 123, 130, 132, 135, 142, 141, 144, 140, 132, 121, 125, 138, 130, 120, 133, 122, 150, 147, 156, 123, 126, 140, 120, 134, 136, 143, 132, 139, 128, 160, 134, 125, 120, 134, 118, 134, 129, 132, 147, 130, 132, 168, 133, 130, 133, 133, 130, 132, 144, 141, 135, 143, 140, 119, 133, 147, 145, 137, 129, 132, 134, 140, 144, 132, 125, 137, 132, 147, 139, 125, 128, 129, 130, 139, 146, 128, 159, 148, 129, 132, 144, 131, 155, 124, 133, 141, 128, 142, 121, 138, 143, 139, 131, 148, 131, 134, 123, 145, 134, 139, 135, 143, 138, 166, 136, 140, 133, 140, 137, 147, 131, 136, 125, 134, 127, 165, 164, 142, 141, 137, 131, 143, 130, 137, 136, 134, 151, 142, 155, 135, 146, 138, 142, 126, 135, 133, 124, 124, 136, 140, 142, 121, 146, 136, 136, 134, 139, 129, 136, 132, 156, 124, 131, 146, 138, 128, 115, 129, 134, 134, 139, 129, 123, 134, 135, 138, 124, 108, 128, 138, 143, 140, 124, 141, 129, 143, 129, 130, 139, 132, 137, 131, 162, 136, 142, 137, 139, 131, 126, 140, 120, 135, 116, 138, 134, 141, 131, 162, 143, 144, 140, 123, 156, 129, 131, 148, 130, 130, 139, 136, 147, 142, 130, 133, 135, 146, 136, 133, 135, 135, 144, 149, 121, 138, 131, 133, 136, 131, 141, 133, 140, 127, 150, 134, 148, 137, 125, 131, 129, 125, 145, 142, 131, 131, 126, 151, 142, 136, 132, 128, 146, 132, 126, 141, 124, 130, 133, 140, 124, 125, 109, 126, 141, 148, 138, 135, 136, 128, 141, 127, 137, 133, 132, 139, 143, 133, 143, 142, 132, 140, 120, 143, 129, 147, 134, 155, 136, 134, 137, 141, 129, 130, 134, 129, 126, 138, 122, 137, 123, 138, 131, 126, 147, 127, 133, 126, 135, 139, 128, 133, 148, 129, 125, 109, 131, 118, 132, 139, 128, 133, 137, 143, 127, 124, 135, 137, 132, 123, 135, 140, 129, 140, 146, 145, 139, 139, 135, 138, 140, 129, 127, 136, 130, 131, 128, 140, 129, 133, 137, 138, 136, 128, 136, 132, 136, 140, 128, 134, 133, 136, 130, 144, 142, 135, 140, 136, 136, 134, 115, 142, 132, 140, 124, 130, 145, 136, 142, 134, 137, 124, 143, 140, 150, 126, 127, 121, 133, 135, 130, 133, 135, 137, 140, 126, 136, 120, 143, 133, 136, 129, 144, 122, 136, 143, 133, 143, 141, 149, 131, 127, 148, 146, 140, 132, 134, 136, 124, 147, 127, 134, 129, 131, 131, 145, 138, 124, 143, 130, 148, 141, 136, 126, 138, 138, 138, 132, 139, 144, 164, 133, 137, 141, 119, 129, 139, 135, 151, 148, 130, 129, 137, 138, 137, 136, 113, 133, 126, 132, 143, 122, 136, 135, 132, 160, 139, 133, 151, 146, 131, 137, 125, 132, 129, 137, 126, 147, 134, 117, 140, 123, 132, 157, 129, 151, 129, 136, 140, 97, 133, 151, 137, 137, 138, 132, 117, 130, 140, 147, 145, 138, 119, 129, 137, 136, 136, 138, 128, 123, 137, 135, 134, 139, 129, 128, 130, 147, 144, 132, 134, 132, 145, 127, 144, 127, 140, 125, 131, 142, 155, 109, 141, 129, 133, 113, 140, 138, 135, 134, 143, 146, 134, 128, 148, 129, 131, 126, 127, 136, 149, 142, 138, 134, 127, 139, 134, 145, 153, 131, 130, 142, 131, 133, 126, 131, 140, 139, 140, 141, 148, 138, 150, 142, 140, 135, 131, 130, 135, 148, 131, 146, 131, 137, 124, 135, 137, 124, 137, 135, 151, 134, 118, 138, 130, 135, 128, 144, 140, 139, 146, 124, 129, 123, 136, 128, 153, 140, 140, 132, 140, 137, 129, 130, 128, 149, 137, 137, 132, 128, 131, 132, 140, 131, 137, 151, 134, 128, 137, 148, 128, 130, 145, 146, 140, 142, 129, 122, 134, 134, 131, 138, 130, 133, 142, 134, 139, 133, 135, 148, 134, 149, 137, 143, 137, 143, 136, 141, 139, 144, 133, 138, 142, 131, 135, 137, 140, 114, 132, 143, 129, 147, 139, 129, 122, 128, 135, 138, 143, 144, 131, 124, 133, 127, 138, 140, 147, 129, 135, 141, 139, 133, 136, 126, 134, 129, 146, 131, 127, 135, 137, 130, 136, 136, 133, 146, 127, 137, 149, 142, 136, 140, 132, 119, 132, 133, 124, 148, 143, 146, 144, 136, 157, 131, 129, 131, 137, 146, 133, 143, 141, 144, 135, 122, 152, 136, 142, 135, 146, 141, 123, 144, 132, 142, 123, 137, 134, 116, 132, 133, 134, 143, 134, 141, 150, 140, 127, 141, 131, 134, 142, 141, 138, 136, 147, 127, 129, 126, 131, 149, 129, 147, 129, 141, 150, 143, 148, 127, 138, 135, 126, 141, 123, 133, 129, 136, 132, 134, 140, 136, 143, 140, 134, 143, 141, 119, 134, 142, 130, 143, 145, 134, 133, 146, 122, 137, 143, 141, 130, 138, 122, 140, 133, 134, 128, 135, 147, 140, 136, 137, 150, 138, 131, 135, 121, 136, 138, 147, 137, 141, 144, 135, 123, 129, 133, 140, 129, 130, 144, 143, 138, 132, 141, 141, 117, 129, 125, 133, 140, 130, 117, 141, 143, 130, 124, 133, 144, 144, 134, 133, 137, 131, 134, 134, 144, 135, 135, 139, 130, 135, 145, 130, 131, 125, 138, 129, 137, 134, 136, 132, 129, 118, 133, 130, 133, 134, 138, 145, 139, 132, 127, 120, 135, 132, 136, 138, 125, 129, 127, 131, 129, 136, 141, 136, 155, 140, 129, 121, 145, 122, 117, 131, 142, 128, 131, 132, 145, 127, 140, 135, 140, 128, 136, 139, 124, 139, 130, 136, 129, 138, 135, 138, 134, 140, 128, 144, 141, 132, 143, 141, 144, 131, 145, 135, 144, 140, 147, 141, 124, 142, 130, 145, 143, 142, 135, 154, 115, 135, 129, 140, 140, 138, 143, 133, 143, 140, 134, 139, 125, 136, 130, 139, 138, 136, 133, 147, 125, 131, 143, 142, 145, 141, 138, 129, 145, 134, 142, 152, 139, 145, 136, 129, 145, 131, 151, 131, 137, 144, 131, 144, 136, 119, 144, 133, 135, 125, 134, 137, 135, 129, 109, 136, 145, 130, 134, 135, 144, 132, 137, 127, 125, 134, 137, 139, 143, 137, 138, 131, 141, 137, 138, 131, 132, 127, 128, 132, 132, 127, 148, 112, 138, 124, 127, 132, 133, 126, 138, 129, 140, 131, 137, 143, 139, 138, 142, 129, 152, 130, 141, 136, 126, 148, 131, 134, 134, 133, 136, 144, 133, 149, 137, 141, 134, 141, 132, 150, 137, 139, 135, 134, 143, 147, 123, 114, 137, 132, 145, 125, 138, 143, 132, 143, 134, 144, 136, 139, 126, 142, 145, 130, 122, 134, 133, 139, 140, 145, 142, 130, 131, 142, 152, 140, 130, 141, 126, 144, 133, 137, 138, 130, 128, 136, 136, 133, 129, 136, 129, 140, 121, 143, 133, 119, 139, 136, 146, 139, 137, 133, 145, 144, 132, 135, 134, 132, 145, 138, 142, 141, 137, 133, 140, 160, 141, 136, 133, 119, 126, 129, 136, 137, 128, 123, 122, 126, 129, 149, 134, 153, 138, 136, 133, 140, 142, 138, 135, 122, 139, 144, 133, 128, 135, 122, 138, 132, 136, 122, 132, 126, 134, 154, 135, 137, 129, 129, 130, 136, 138, 137, 139, 140, 140, 144, 144, 134, 132, 130, 143, 132, 139, 146, 129, 131, 136, 144, 137, 135, 137, 155, 140, 128, 131, 141, 132, 149, 132, 138, 129, 134, 134, 140, 122, 147, 131, 133, 140, 161, 124, 129, 140, 144, 142, 134, 140, 132, 131, 126, 98, 151, 135, 118, 138, 141, 142, 130, 140, 142, 134, 130, 128, 132, 135, 150, 146, 140, 123, 146, 132, 143, 136, 135, 130, 139, 115, 138, 146, 165, 138, 154, 148, 133, 132, 139, 142, 142, 136, 107, 127, 137, 145, 140, 144, 139, 141, 124, 143, 136, 131, 121, 124, 128, 143, 140, 153, 128, 137, 149, 143, 129, 132, 127, 139, 87, 133, 128, 135, 131, 131, 121, 146, 122, 146, 139, 121, 136, 141, 113, 146, 107, 144, 135, 141, 145, 137, 141, 130, 126, 142, 159, 154, 131, 126, 137, 133, 144, 138, 130, 147, 132, 145, 123, 117, 110, 136, 144, 143, 122, 134, 131, 138, 128, 136, 130, 133, 144, 135, 134, 131, 143, 127, 129, 140, 122, 135, 135, 138, 134, 121, 134, 136, 132, 148, 134, 139, 132, 130, 131, 139, 125, 137, 146, 142, 130, 141, 134, 143, 127, 129, 133, 129, 149, 131, 120, 134, 130, 132, 131, 141, 123, 137, 130, 124, 128, 147, 139, 129, 115, 136, 132, 136, 136, 138, 111, 144, 118, 138, 135, 136, 142, 170, 118, 133, 152, 141, 130, 127, 128, 141, 134, 136, 133, 138, 142, 137, 141, 135, 140, 134, 131, 135, 136, 142, 136, 131, 137, 142, 122, 137, 138, 138, 129, 134, 144, 114, 117, 137, 140, 132, 132, 127, 134, 123, 131, 141, 129, 138, 141, 138, 142, 125, 140, 142, 121, 130, 128, 125, 131, 158, 131, 125, 136, 149, 142, 171, 146, 133, 122, 133, 140, 128, 137, 135, 138, 135, 124, 129, 143, 132, 134, 124, 139, 142, 151, 131, 116, 137, 170, 130, 137, 136, 130, 138, 145, 134, 122, 124, 139, 136, 121, 143, 126, 137, 130, 136, 147, 149, 134, 126, 140, 141, 136, 133, 145, 121, 135, 126, 140, 133, 121, 129, 145, 121, 135, 131, 112, 128, 138, 139, 132, 141, 135, 162, 125, 127, 123, 138, 135, 132, 133, 157, 136, 134, 137, 136, 130, 128, 131, 134, 145, 123, 138, 116, 140, 144, 112, 134, 138, 138, 135, 141, 128, 143, 133, 136, 123, 139, 134, 147, 118, 130, 142, 131, 133, 131, 140, 141, 135, 146, 149, 137, 136, 128, 129, 133, 155, 120, 142, 123, 136, 144, 126, 124, 127, 148, 134, 110, 126, 138, 135, 138, 123, 133, 137, 129, 123, 138, 130, 137, 127, 111, 146, 135, 129, 148, 136, 134, 129, 131, 147, 142, 139, 128, 136, 138, 132, 140, 140, 129, 129, 142, 112, 138, 138, 131, 132, 134, 135, 125, 132, 140, 134, 137, 129, 132, 138, 132, 132, 135, 135, 138, 130, 138, 142, 135, 127, 131, 134, 137, 158, 125, 134, 131, 130, 124, 139, 137, 115, 135, 119, 128, 126, 139, 124, 134, 133, 141, 135, 133, 134, 134, 135, 139, 142, 117, 132, 123, 126, 132, 138, 135, 136, 137, 146, 159, 134, 126, 132, 143, 142, 127, 131, 133, 134, 137, 138, 150, 137, 137, 138, 128, 135, 129, 136, 136, 136, 151, 136, 141, 140, 138, 140, 125, 138, 138, 129, 130, 134, 124, 139, 128, 148, 132, 120, 126, 133, 131, 130, 125, 142, 128, 141, 138, 134, 132, 132, 145, 131, 124, 131, 131, 140, 138, 130, 134, 139, 143, 132, 122, 177, 133, 132, 154, 129, 145, 138, 133, 136, 142, 128, 131, 141, 137, 143, 130, 140, 140, 132, 129, 139, 137, 166, 132, 132, 151, 139, 123, 136, 142, 132, 135, 137, 138, 132, 137, 109, 134, 143, 142, 135, 139, 128, 129, 138, 135, 131, 128, 137, 138, 142, 138, 139, 146, 135, 140, 125, 136, 151, 143, 137, 124, 135, 141, 130, 134, 136, 131, 139, 131, 126, 131, 134, 124, 132, 145, 129, 136, 129, 126, 135, 149, 151, 125, 138, 134, 128, 132, 138, 143, 128, 135, 132, 140, 133, 126, 139, 138, 133, 131, 138, 131, 164, 135, 127, 135, 130, 131, 141, 134, 132, 129, 131, 136, 141, 143, 130, 131, 136, 145, 138, 132, 131, 140, 143, 133, 137, 133, 123, 145, 138, 139, 136, 138, 136, 133, 145, 126, 137, 131, 136, 135, 127, 128, 132, 137, 126, 136, 179, 143, 136, 136, 137, 135, 134, 129, 132, 137, 133, 129, 132, 133, 130, 142, 135, 140, 138, 131, 144, 120, 138, 128, 128, 140, 144, 133, 138, 134, 134, 140, 126, 135, 144, 141, 129, 137, 137, 133, 132, 133, 141, 135, 136, 132, 125, 133, 128, 146, 134, 138, 133, 132, 128, 136, 136, 143, 134, 125, 135, 129, 140, 151, 139, 129, 143, 139, 140, 118, 140, 130, 133, 134, 157, 128, 134, 136, 140, 134, 134, 154, 137, 135, 141, 128, 145, 136, 148, 133, 138, 146, 129, 129, 123, 128, 130, 126, 135, 137, 130, 145, 138, 126, 135, 135, 130, 127, 137, 142, 134, 150, 137, 139, 134, 132, 163, 130, 138, 142, 136, 143, 141, 138, 132, 143, 144, 133, 137, 145, 132, 132, 134, 134, 126, 136, 154, 130, 129, 133, 124, 137, 129, 137, 140, 138, 140, 138, 138, 143, 144, 138, 132, 131, 146, 121, 129, 136, 146, 130, 139, 132, 139, 130, 139, 132, 142, 129, 127, 134, 115, 128, 139, 138, 132, 160, 119, 140, 138, 131, 151, 141, 136, 138, 131, 138, 130, 133, 135, 139, 134, 125, 131, 126, 132, 128, 119, 138, 131, 125, 126, 128, 130, 138, 141, 128, 128, 141, 144, 129, 150, 138, 139, 140, 134, 127, 140, 140, 128, 138, 124, 138, 129, 132, 133, 136, 141, 114, 133, 128, 132, 132, 135, 110, 123, 139, 142, 144, 135, 139, 141, 133, 135, 129, 140, 133, 128, 133, 129, 134, 138, 136, 134, 145, 136, 160, 138, 134, 134, 132, 132, 136, 134, 139, 133, 137, 134, 128, 135, 142, 143, 149, 124, 132, 145, 139, 135, 149, 129, 126, 129, 124, 136, 137, 138, 129, 133, 138, 135, 137, 140, 135, 140, 155, 145, 120, 126, 141, 139, 131, 133, 128, 140, 132, 152, 141, 133, 133, 136, 137, 137, 116, 146, 138, 152, 139, 130, 128, 127, 145, 139, 122, 137, 151, 147, 135, 146, 127, 118, 129, 131, 139, 138, 111, 128, 142, 149, 130, 133, 142, 141, 126, 131, 130, 130, 149, 132, 128, 125, 123, 127, 133, 131, 120, 130, 134, 141, 120, 137, 139, 143, 129, 132, 151, 130, 139, 135, 141, 137, 132, 128, 140, 128, 131, 134, 141, 123, 135, 135, 141, 132, 152, 144, 148, 136, 135, 133, 130, 136, 138, 153, 132, 130, 137, 139, 132, 133, 129, 139, 129, 131, 129, 141, 133, 144, 148, 133, 158, 129, 136, 143, 154, 128, 133, 134, 131, 140, 134, 125, 133, 142, 132, 134, 132, 139, 117, 129, 126, 132, 132, 144, 142, 136, 127, 124, 142, 127, 137, 146, 134, 144, 139, 105, 131, 122, 115, 124, 143, 138, 142, 125, 123, 129, 146, 128, 140, 137, 128, 134, 135, 136, 140, 116, 134, 148, 141, 140, 146, 135, 134, 129, 134, 146, 143, 141, 140, 127, 142, 136, 136, 136, 141, 138, 128, 147, 126, 132, 141, 139, 133, 149, 128, 132, 128, 131, 131, 130, 138, 133, 133, 149, 140, 132, 144, 143, 127, 130, 152, 128, 140, 127, 149, 138, 133, 119, 128, 137, 143, 133, 134, 130, 129, 129, 144, 135, 130, 129, 127, 133, 132, 138, 136, 133, 131, 136, 130, 127, 130, 126, 129, 146, 120, 146, 124, 143, 134, 124, 139, 132, 133, 136, 150, 136, 144, 123, 142, 130, 128, 129, 143, 132, 140, 137, 143, 135, 126, 139, 135, 143, 133, 129, 138, 128, 109, 136, 135, 127, 129, 143, 143, 141, 131, 143, 135, 132, 132, 133, 128, 139, 133, 137, 153, 137, 129, 129, 138, 149, 140, 137, 149, 141, 138, 135, 134, 134, 122, 137, 134, 138, 136, 125, 130, 132, 147, 138, 131, 142, 120, 131, 144, 140, 137, 133, 134, 136, 141, 139, 129, 136, 128, 133, 131, 136, 134, 135, 131, 136, 133, 136, 140, 136, 139, 135, 137, 128, 128, 144, 131, 138, 137, 132, 150, 143, 136, 132, 126, 158, 137, 132, 120, 114, 165, 116, 143, 128, 132, 138, 144, 151, 135, 136, 119, 126, 136, 140, 153, 164, 129, 134, 134, 127, 135, 137, 142, 131, 139, 139, 135, 140, 152, 135, 132, 135, 138, 133, 146, 139, 133, 145, 116, 141, 134, 125, 150, 132, 130, 138, 143, 134, 137, 134, 134, 135, 126, 140, 132, 143, 132, 138, 156, 139, 132, 128, 147, 130, 159, 133, 143, 137, 142, 152, 134, 136, 145, 127, 137, 138, 140, 144, 141, 113, 131, 151, 135, 132, 146, 126, 134, 116, 138, 126, 141, 118, 149, 142, 148, 137, 143, 141, 127, 135, 139, 142, 134, 139, 131, 131, 140, 152, 127, 137, 140, 128, 128, 125, 129, 133, 117, 134, 146, 124, 134, 130, 148, 142, 124, 153, 122, 129, 122, 156, 128, 133, 144, 146, 135, 121, 120, 144, 140, 119, 128, 158, 126, 128, 143, 121, 138, 130, 141, 133, 143, 144, 160, 130, 129, 149, 116, 146, 130, 140, 127, 132, 130, 140, 128, 135, 127, 146, 132, 136, 133, 147, 135, 127, 139, 149, 129, 149, 126, 145, 132, 126, 140, 141, 145, 130, 161, 140, 138, 136, 137, 121, 144, 127, 138, 135, 132, 125, 135, 140, 130, 146, 140, 136, 129, 145, 114, 129, 133, 138, 133, 135, 148, 143, 140, 155, 135, 145, 139, 146, 143, 126, 120, 140, 157, 142, 161, 155, 141, 137, 137, 138, 126, 136, 130, 125, 131, 135, 123, 152, 140, 133, 160, 139, 142, 125, 141, 130, 135, 128, 136, 138, 139, 136, 139, 127, 121, 125, 130, 144, 145, 140, 139, 125, 141, 130, 126, 151, 150, 135, 133, 147, 122, 143, 146, 146, 139, 134, 129, 143, 135, 135, 116, 129, 115, 130, 127, 142, 138, 135, 145, 125, 129, 130, 141, 140, 135, 133, 125, 131, 127, 134, 129, 140, 136, 128, 139, 149, 146, 137, 143, 137, 133, 135, 136, 136, 129, 144, 132, 130, 135, 153, 133, 127, 112, 154, 141, 138, 135, 129, 135, 120, 132, 125, 155, 140, 128, 132, 142, 143, 133, 127, 134, 123, 138, 137, 131, 154, 141, 144, 133, 134, 124, 149, 148, 128, 152, 126, 144, 126, 136, 144, 138, 145, 120, 141, 140, 127, 134, 123, 148, 121, 134, 136, 135, 140, 120, 138, 128, 134, 135, 136, 134, 162, 144, 138, 139, 143, 126, 144, 130, 133, 147, 145, 128, 125, 130, 133, 148, 136, 131, 128, 143, 126, 139, 138, 136, 133, 137, 126, 148, 146, 137, 136, 144, 138, 143, 126, 134, 132, 144, 134, 148, 147, 139, 134, 135, 131, 135, 127, 134, 116, 137, 127, 123, 122, 132, 131, 134, 135, 129, 130, 126, 126, 137, 133, 131, 136, 128, 139, 175, 144, 150, 148, 131, 137, 130, 131, 141, 127, 135, 134, 144, 130, 141, 137, 128, 138, 127, 129, 122, 131, 143, 151, 133, 134, 132, 131, 126, 136, 142, 140, 129, 131, 123, 145, 132, 143, 142, 168, 125, 115, 130, 132, 133, 135, 124, 138, 132, 133, 149, 142, 143, 132, 126, 118, 142, 145, 163, 139, 131, 124, 125, 128, 130, 141, 130, 116, 133, 145, 127, 126, 143, 134, 132, 131, 131, 135, 131, 122, 132, 133, 137, 129, 138, 152, 133, 132, 138, 124, 131, 144, 130, 132, 134, 145, 127, 139, 125, 137, 149, 145, 146, 130, 145, 138, 132, 141, 158, 132, 121, 132, 153, 135, 144, 138, 133, 129, 130, 129, 139, 136, 129, 137, 142, 159, 125, 145, 128, 137, 144, 143, 122, 115, 131, 150, 131, 126, 140, 144, 147, 134, 147, 130, 139, 142, 133, 141, 131, 132, 135, 142, 140, 135, 153, 144, 148, 155, 148, 143, 139, 122, 139, 132, 133, 133, 121, 135, 141, 140, 127, 124, 128, 136, 122, 133, 138, 131, 146, 120, 128, 138, 134, 152, 121, 136, 127, 143, 141, 139, 154, 136, 141, 128, 138, 135, 125, 166, 134, 152, 138, 144, 122, 138, 139, 135, 126, 132, 137, 142, 138, 133, 135, 144, 126, 140, 136, 137, 132, 142, 130, 123, 139, 143, 128, 147, 141, 124, 131, 136, 140, 146, 132, 135, 135, 130, 139, 140, 140, 129, 132, 137, 135, 135, 138, 140, 120, 133, 139, 140, 141, 155, 147, 137, 153, 144, 136, 119, 145, 135, 135, 127, 137, 133, 134, 138, 118, 135, 143, 143, 144, 134, 129, 143, 137, 131, 140, 140, 128, 142, 131, 137, 133, 142, 150, 136, 147, 149, 134, 135, 134, 142, 137, 133, 129, 131, 131, 133, 137, 133, 134, 141, 114, 140, 133, 140, 131, 135, 129, 141, 128, 148, 139, 142, 132, 136, 115, 141, 141, 136, 143, 138, 138, 133, 139, 135, 130, 141, 150, 135, 123, 134, 141, 127, 134, 133, 132, 138, 153, 137, 140, 127, 143, 130, 138, 143, 134, 142, 146, 144, 137, 146, 123, 140, 145, 133, 134, 146, 129, 136, 129, 135, 130, 142, 137, 136, 135, 147, 140, 139, 131, 142, 124, 151, 130, 136, 134, 127, 149, 143, 137, 137, 138, 140, 135, 131, 140, 138, 141, 130, 136, 131, 139, 142, 137, 139, 129, 127, 136, 121, 133, 138, 137, 155, 138, 124, 144, 149, 139, 131, 144, 132, 135, 132, 136, 125, 135, 138, 132, 144, 139, 134, 123, 129, 144, 131, 132, 133, 123, 124, 137, 126, 131, 131, 133, 143, 135, 127, 147, 134, 133, 133, 130, 131, 140, 147, 134, 131, 138, 129, 135, 137, 149, 138, 134, 137, 141, 135, 140, 135, 142, 135, 134, 132, 136, 134, 136, 129, 131, 142, 128, 142, 139, 147, 135, 141, 134, 142, 130, 135, 142, 136, 141, 141, 101, 129, 125, 151, 141, 132, 136, 140, 136, 145, 146, 142, 129, 131, 132, 143, 128, 128, 137, 129, 133, 128, 125, 137, 144, 142, 139, 163, 135, 125, 130, 123, 128, 130, 133, 141, 140, 146, 135, 135, 143, 157, 134, 139, 133, 139, 146, 138, 132, 128, 139, 135, 144, 138, 143, 135, 134, 134, 124, 126, 124, 149, 132, 140, 138, 134, 133, 150, 128, 144, 121, 135, 132, 137, 132, 134, 142, 134, 119, 139, 133, 142, 136, 112, 137, 135, 134, 140, 137, 131, 133, 137, 133, 130, 143, 124, 129, 144, 124, 141, 140, 137, 131, 138, 123, 131, 135, 109, 121, 137, 141, 146, 141, 141, 142, 138, 142, 138, 137, 126, 128, 143, 134, 139, 129, 131, 137, 137, 139, 137, 142, 130, 121, 130, 128, 138, 143, 139, 151, 133, 134, 133, 134, 139, 141, 125, 120, 139, 132, 142, 133, 132, 138, 115, 139, 166, 129, 141, 126, 140, 116, 134, 139, 136, 136, 134, 141, 122, 141, 147, 135, 149, 142, 134, 139, 142, 135, 141, 130, 137, 129, 141, 135, 151, 133, 136, 126, 137, 135, 137, 140, 123, 125, 129, 131, 127, 141, 139, 133, 124, 137, 137, 136, 140, 131, 135, 139, 135, 140, 134, 145, 130, 119, 142, 138, 134, 137, 144, 139, 131, 134, 143, 130, 136, 149, 134, 140, 143, 126, 137, 148, 133, 150, 143, 142, 129, 136, 139, 155, 131, 131, 134, 136, 124, 127, 135, 150, 136, 126, 137, 133, 141, 128, 136, 135, 130, 132, 136, 136, 135, 130, 139, 132, 127, 129, 137, 143, 142, 137, 130, 129, 142, 138, 136, 137, 140, 141, 143, 136, 134, 142, 136, 139, 143, 139, 146, 144, 138, 135, 137, 130, 139, 127, 136, 137, 133, 139, 131, 141, 135, 133, 138, 125, 138, 153, 129, 126, 140, 123, 145, 129, 125, 139, 138, 138, 127, 142, 136, 143, 147, 137, 138, 130, 142, 131, 141, 135, 141, 140, 142, 132, 142, 135, 134, 142, 136, 120, 130, 135, 145, 136, 133, 135, 137, 133, 135, 155, 131, 144, 135, 143, 141, 140, 136, 143, 140, 139, 130, 117, 133, 130, 135, 146, 143, 133, 138, 141, 128, 136, 144, 128, 124, 138, 127, 147, 134, 136, 142, 147, 137, 133, 144, 137, 132, 139, 140, 143, 144, 134, 125, 139, 143, 137, 143, 141, 140, 135, 137, 139, 138, 140, 128, 138, 132, 132, 130, 138, 115, 170, 134, 138, 137, 131, 134, 141, 135, 144, 133, 135, 146, 143, 141, 137, 132, 137, 140, 135, 137, 131, 145, 138, 145, 135, 149, 129, 135, 130, 143, 140, 141, 137, 140, 151, 150, 136, 138, 145, 139, 128, 137, 146, 135, 137, 114, 135, 137, 135, 133, 133, 130, 143, 129, 135, 137, 130, 144, 136, 136, 122, 142, 138, 135, 135, 135, 147, 148, 127, 136, 131, 140, 140, 140, 141, 133, 136, 155, 139, 140, 135, 134, 148, 139, 130, 137, 144, 129, 134, 134, 132, 134, 134, 138, 132, 135, 130, 135, 142, 149, 130, 126, 124, 131, 139, 143, 126, 136, 136, 134, 135, 152, 133, 130, 116, 141, 135, 137, 133, 119, 139, 135, 128, 133, 148, 126, 136, 139, 134, 138, 149, 152, 147, 125, 144, 132, 130, 135, 126, 134, 138, 130, 139, 131, 138, 144, 137, 133, 135, 140, 126, 155, 140, 135, 139, 119, 117, 123, 137, 142, 136, 122, 138, 147, 141, 125, 133, 136, 135, 141, 128, 138, 127, 143, 129, 124, 142, 135, 136, 142, 140, 126, 141, 128, 133, 135, 138, 148, 132, 143, 130, 143, 137, 127, 146, 138, 139, 145, 133, 127, 143, 143, 142, 133, 132, 130, 130, 131, 148, 150, 134, 132, 142, 142, 143, 136, 140, 139, 140, 130, 151, 141, 142, 137, 137, 145, 146, 134, 137, 144, 136, 146, 136, 136, 138, 130, 132, 137, 130, 136, 134, 146, 141, 134, 130, 136, 130, 137, 143, 135, 148, 123, 166, 137, 137, 139, 146, 146, 142, 123, 153, 137, 145, 136, 137, 129, 133, 136, 139, 125, 137, 133, 139, 131, 139, 137, 139, 135, 122, 123, 133, 121, 117, 141, 142, 133, 144, 142, 137, 141, 138, 137, 141, 147, 123, 125, 144, 126, 137, 140, 140, 141, 142, 141, 131, 142, 134, 135, 134, 131, 134, 148, 137, 136, 122, 124, 123, 128, 135, 135, 130, 143, 133, 144, 137, 129, 122, 142, 143, 127, 141, 134, 151, 139, 130, 116, 129, 138, 127, 133, 129, 142, 143, 131, 137, 135, 108, 135, 133, 127, 137, 134, 149, 128, 136, 129, 133, 139, 124, 136, 136, 135, 126, 143, 127, 133, 128, 141, 141, 132, 141, 142, 134, 124, 125, 125, 144, 124, 142, 138, 139, 134, 135, 130, 126, 134, 132, 127, 139, 138, 138, 128, 142, 128, 134, 132, 142, 126, 129, 129, 132, 138, 148, 123, 139, 126, 147, 120, 147, 144, 130, 153, 135, 141, 135, 139, 130, 128, 142, 124, 134, 143, 139, 140, 140, 135, 134, 129, 116, 135, 138, 129, 135, 125, 137, 137, 125, 129, 126, 129, 135, 154, 133, 140, 137, 124, 133, 150, 128, 120, 125, 136, 119, 137, 134, 155, 126, 127, 139, 140, 142, 147, 134, 147, 143, 140, 130, 145, 142, 124, 128, 133, 150, 140, 129, 129, 127, 137, 131, 132, 129, 139, 137, 149, 135, 139, 135, 138, 136, 138, 133, 140, 150, 131, 139, 136, 137, 134, 129, 130, 133, 134, 134, 131, 141, 131, 127, 123, 142, 126, 135, 128, 132, 126, 148, 138, 132, 148, 137, 135, 140, 134, 151, 133, 128, 136, 137, 138, 159, 135, 121, 144, 137, 144, 149, 134, 140, 136, 129, 138, 139, 134, 139, 139, 128, 143, 138, 137, 143, 137, 135, 122, 142, 127, 142, 139, 133, 127, 125, 131, 130, 127, 140, 140, 130, 124, 135, 130, 134, 139, 145, 129, 136, 139, 142, 143, 150, 141, 137, 142, 143, 137, 131, 137, 142, 151, 134, 118, 142, 133, 113, 130, 139, 133, 142, 131, 136, 138, 117, 135, 130, 139, 156, 145, 155, 132, 137, 139, 121, 137, 135, 141, 140, 111, 143, 141, 126, 139, 137, 131, 141, 137, 158, 132, 134, 141, 128, 133, 128, 126, 126, 135, 134, 132, 125, 141, 146, 133, 141, 140, 142, 136, 128, 147, 133, 141, 140, 143, 130, 132, 116, 137, 128, 135, 140, 142, 134, 137, 141, 136, 136, 134, 134, 136, 129, 143, 131, 141, 139, 131, 137, 146, 127, 138, 137, 132, 127, 123, 139, 140, 146, 140, 138, 129, 133, 136, 137, 131, 134, 144, 131, 127, 135, 157, 130, 138, 142, 140, 146, 139, 127, 125, 144, 139, 136, 157, 125, 134, 133, 135, 145, 131, 140, 114, 135, 137, 132, 129, 129, 145, 124, 127, 143, 149, 142, 141, 135, 126, 130, 134, 140, 144, 138, 134, 143, 130, 137, 142, 135, 133, 141, 149, 135, 130, 137, 143, 131, 149, 145, 145, 137, 135, 122, 140, 131, 126, 131, 132, 141, 139, 157, 122, 152, 138, 128, 138, 136, 122, 138, 135, 147, 123, 131, 144, 144, 141, 127, 127, 125, 138, 134, 124, 124, 137, 150, 125, 144, 137, 139, 138, 123, 138, 119, 146, 151, 129, 143, 85, 148, 154, 121, 157, 150, 151, 147, 154, 139, 124, 142, 142, 112, 130, 140, 164, 111, 127, 173, 135, 144, 136, 137, 137, 151, 116, 121, 153, 133, 115, 142, 177, 133, 174, 138, 168, 133, 92, 129, 128, 128, 145, 130, 134, 135, 135, 126, 142, 146, 131, 135, 120, 117, 139, 134, 131, 159, 118, 120, 123, 113, 147, 111, 131, 147, 122, 126, 120, 137, 140, 141, 134, 128, 124, 137, 151, 132, 145, 127, 148, 143, 103, 114, 157, 116, 130, 117, 133, 130, 113, 140, 128, 126, 124, 136, 117, 143, 128, 132, 142, 124, 120, 149, 144, 126, 122, 142, 112, 146, 148, 108, 119, 130, 127, 127, 125, 132, 131, 132, 136, 123, 157, 116, 135, 156, 116, 152, 120, 144, 144, 135, 140, 129, 150, 181, 109, 134, 136, 128, 127, 121, 142, 143, 120, 143, 148, 135, 142, 116, 140, 137, 139, 132, 139, 109, 130, 141, 153, 122, 84, 166, 143, 141, 122, 162, 139, 127, 129, 122, 123, 110, 139, 143, 183, 129, 141, 139, 134, 134, 123, 115, 141, 139, 130, 139, 142, 225, 143, 157, 148, 139, 144, 120, 135, 170, 110, 152, 126, 149, 157, 132, 143, 140, 147, 129, 118, 119, 137, 147, 139, 146, 137, 159, 133, 133, 155, 127, 137, 128, 154, 127, 125, 121, 149, 131, 146, 134, 114, 125, 134, 157, 137, 101, 132, 128, 129, 144, 140, 149, 114, 125, 151, 173, 100, 121, 132, 118, 138, 150, 137, 141, 103, 119, 142, 132, 135, 132, 117, 143, 121, 160, 144, 136, 127, 129, 135, 130, 136, 117, 136, 74, 128, 149, 131, 126, 137, 102, 132, 132, 126, 134, 137, 125, 113, 103, 140, 129, 127, 139, 142, 143, 139, 142, 153, 147, 149, 129, 134, 132, 155, 155, 139, 110, 130, 136, 123, 136, 137, 122, 148, 153, 136, 140, 93, 149, 131, 139, 187, 140, 142, 155, 132, 154, 153, 145, 141, 151, 132, 149, 125, 119, 140, 148, 148, 131, 133, 132, 129, 122, 123, 109, 133, 135, 142, 138, 153, 139, 128, 129, 129, 124, 128, 124, 166, 139, 117, 106, 159, 151, 126, 129, 143, 154, 132, 137, 134, 149, 162, 133, 141, 128, 142, 151, 152, 127, 129, 131, 122, 140, 153, 156, 132, 131, 157, 131, 211, 133, 147, 133, 138, 137, 122, 147, 125, 134, 144, 130, 165, 143, 134, 129, 131, 136, 118, 121, 128, 128, 142, 134, 115, 131, 150, 143, 146, 112, 120, 141, 122, 138, 113, 128, 138, 142, 141, 137, 143, 120, 126, 126, 145, 144, 106, 145, 118, 122, 140, 180, 124, 150, 137, 128, 146, 126, 117, 136, 124, 127, 144, 140, 147, 135, 156, 146, 120, 129, 118, 111, 139, 170, 130, 136, 121, 112, 157, 123, 150, 147, 179, 130, 122, 158, 116, 137, 124, 116, 140, 139, 146, 135, 146, 135, 132, 141, 145, 120, 136, 118, 128, 155, 130, 160, 141, 129, 130, 136, 156, 139, 144, 107, 134, 108, 122, 143, 138, 131, 130, 127, 120, 120, 140, 146, 123, 143, 132, 125, 154, 136, 140, 126, 134, 126, 145, 132, 138, 133, 134, 158, 141, 137, 115, 144, 148, 147, 153, 132, 141, 125, 121, 123, 123, 134, 138, 133, 148, 142, 133, 131, 129, 127, 132, 152, 138, 130, 136, 136, 125, 140, 144, 124, 122, 140, 135, 157, 131, 127, 140, 154, 130, 139, 125, 128, 147, 135, 142, 134, 145, 161, 131, 118, 157, 148, 147, 132, 134, 144, 130, 119, 136, 130, 136, 134, 116, 129, 144, 139, 138, 133, 126, 125, 130, 151, 130, 127, 132, 135, 137, 112, 131, 122, 145, 146, 132, 105, 129, 144, 132, 145, 136, 120, 127, 128, 141, 115, 137, 119, 124, 134, 143, 136, 145, 133, 131, 122, 123, 135, 129, 135, 161, 137, 136, 134, 127, 156, 129, 124, 136, 114, 133, 135, 179, 139, 141, 149, 133, 112, 134, 137, 134, 134, 145, 154, 132, 158, 122, 126, 137, 138, 149, 130, 145, 111, 131, 134, 138, 133, 125, 136, 152, 134, 137, 136, 148, 132, 136, 138, 127, 130, 134, 107, 138, 137, 142, 139, 141, 134, 130, 133, 130, 136, 134, 137, 121, 131, 170, 159, 145, 121, 148, 131, 126, 138, 147, 132, 130, 126, 132, 145, 123, 136, 138, 125, 140, 137, 125, 140, 136, 132, 145, 127, 121, 125, 156, 136, 138, 138, 129, 133, 144, 133, 156, 128, 139, 132, 144, 164, 129, 152, 130, 143, 149, 127, 140, 132, 140, 131, 123, 138, 155, 140, 137, 136, 108, 136, 137, 134, 135, 135, 136, 131, 134, 125, 139, 137, 154, 138, 140, 130, 133, 143, 131, 118, 128, 126, 136, 134, 141, 121, 127, 143, 138, 131, 131, 146, 138, 135, 130, 144, 138, 129, 139, 138, 138, 134, 127, 140, 124, 143, 134, 130, 141, 136, 133, 141, 139, 130, 147, 125, 133, 137, 133, 127, 143, 131, 125, 148, 132, 134, 149, 141, 136, 133, 128, 131, 130, 131, 138, 134, 121, 140, 135, 136, 121, 142, 143, 140, 139, 153, 149, 154, 150, 133, 139, 124, 132, 139, 124, 136, 124, 132, 128, 122, 138, 133, 151, 132, 135, 140, 142, 139, 150, 133, 132, 140, 118, 148, 134, 146, 138, 149, 147, 139, 136, 144, 139, 138, 153, 144, 124, 133, 128, 132, 136, 130, 126, 133, 136, 128, 126, 129, 129, 146, 124, 133, 123, 130, 131, 140, 150, 136, 134, 150, 155, 134, 144, 137, 135, 129, 134, 136, 141, 112, 132, 140, 127, 124, 135, 126, 136, 111, 118, 120, 128, 128, 129, 130, 138, 138, 143, 133, 140, 134, 134, 140, 129, 119, 145, 132, 130, 141, 134, 130, 123, 140, 130, 133, 137, 123, 120, 134, 135, 137, 128, 129, 125, 135, 138, 124, 142, 119, 129, 132, 141, 138, 129, 155, 128, 147, 137, 122, 125, 139, 134, 111, 158, 139, 137, 152, 130, 129, 138, 143, 164, 141, 140, 134, 142, 135, 140, 138, 125, 138, 138, 134, 138, 146, 135, 130, 127, 133, 136, 139, 146, 128, 110, 126, 135, 124, 134, 132, 133, 128, 136, 142, 138, 144, 134, 141, 138, 135, 134, 135, 160, 127, 130, 135, 117, 141, 145, 138, 144, 139, 140, 145, 126, 133, 130, 137, 139, 129, 138, 132, 133, 134, 134, 149, 146, 144, 139, 132, 131, 135, 145, 135, 130, 141, 135, 131, 132, 134, 129, 138, 132, 140, 141, 135, 125, 137, 129, 147, 141, 140, 131, 131, 143, 139, 138, 129, 156, 138, 135, 142, 132, 130, 149, 136, 139, 131, 140, 126, 133, 137, 136, 134, 135, 136, 131, 137, 141, 131, 146, 140, 122, 136, 125, 136, 134, 133, 145, 135, 126, 139, 135, 138, 143, 132, 144, 129, 136, 135, 139, 120, 125, 154, 138, 127, 127, 136, 125, 126, 143, 145, 138, 145, 131, 143, 134, 137, 136, 134, 148, 141, 145, 140, 137, 136, 135, 133, 134, 142, 133, 136, 135, 130, 116, 133, 150, 143, 130, 127, 136, 137, 141, 138, 151, 140, 130, 124, 127, 132, 143, 140, 142, 132, 125, 141, 136, 141, 131, 135, 143, 150, 133, 132, 144, 142, 134, 137, 136, 139, 132, 149, 140, 153, 135, 151, 133, 128, 147, 136, 131, 146, 138, 137, 138, 134, 135, 132, 120, 139, 121, 142, 126, 141, 139, 136, 126, 140, 136, 144, 146, 131, 136, 139, 127, 135, 132, 130, 140, 140, 139, 130, 127, 138, 136, 134, 123, 144, 144, 133, 130, 131, 132, 138, 140, 135, 145, 138, 140, 139, 141, 135, 121, 128, 121, 154, 144, 136, 137, 145, 140, 141, 129, 132, 127, 131, 142, 144, 138, 145, 138, 146, 152, 128, 139, 142, 139, 134, 139, 137, 125, 140, 132, 136, 139, 131, 130, 136, 147, 139, 134, 134, 136, 140, 126, 152, 136, 156, 134, 138, 140, 119, 135, 127, 142, 148, 132, 137, 144, 131, 133, 143, 136, 134, 134, 129, 146, 124, 139, 137, 141, 141, 136, 141, 125, 144, 133, 129, 137, 142, 129, 142, 144, 126, 127, 138, 136, 121, 147, 136, 141, 138, 139, 130, 148, 133, 139, 134, 149, 128, 139, 161, 145, 140, 131, 129, 144, 128, 139, 137, 131, 126, 134, 124, 126, 118, 131, 142, 136, 131, 151, 132, 135, 143, 132, 132, 145, 142, 134, 134, 125, 139, 141, 145, 126, 133, 142, 141, 135, 146, 148, 151, 135, 134, 136, 145, 146, 129, 124, 139, 137, 118, 144, 131, 130, 139, 131, 140, 139, 129, 138, 127, 134, 146, 134, 139, 132, 137, 116, 141, 123, 144, 126, 136, 120, 169, 134, 144, 126, 136, 140, 132, 129, 133, 135, 118, 133, 134, 127, 133, 138, 139, 127, 131, 131, 109, 136, 140, 151, 154, 152, 142, 143, 136, 130, 135, 126, 143, 141, 140, 143, 136, 131, 137, 145, 142, 135, 136, 134, 137, 139, 127, 133, 119, 140, 137, 127, 134, 134, 132, 136, 138, 145, 146, 129, 135, 124, 133, 128, 138, 131, 136, 138, 126, 137, 124, 136, 153, 142, 140, 137, 127, 137, 147, 144, 124, 146, 138, 132, 156, 130, 131, 133, 141, 135, 130, 139, 137, 137, 124, 150, 131, 140, 130, 149, 136, 118, 127, 136, 126, 142, 137, 135, 137, 125, 132, 148, 158, 135, 118, 133, 157, 136, 127, 124, 130, 139, 141, 131, 147, 133, 139, 110, 139, 136, 144, 118, 121, 142, 140, 135, 131, 132, 161, 130, 132, 145, 133, 139, 136, 130, 118, 135, 146, 126, 140, 131, 132, 141, 137, 145, 136, 129, 159, 121, 136, 130, 114, 134, 142, 134, 129, 128, 141, 135, 134, 147, 124, 133, 170, 131, 132, 137, 145, 136, 133, 147, 134, 126, 139, 145, 127, 138, 130, 138, 135, 140, 134, 121, 139, 133, 131, 151, 128, 140, 134, 138, 130, 134, 132, 132, 142, 133, 136, 137, 121, 146, 125, 138, 124, 134, 148, 131, 132, 135, 141, 164, 152, 132, 149, 132, 126, 133, 136, 146, 125, 148, 129, 130, 133, 140, 133, 122, 129, 129, 151, 129, 128, 129, 137, 126, 141, 137, 140, 135, 136, 133, 129, 131, 131, 128, 118, 128, 141, 151, 125, 132, 131, 137, 141, 133, 135, 136, 142, 130, 132, 135, 145, 137, 134, 135, 133, 136, 139, 137, 130, 127, 147, 114, 131, 130, 129, 134, 141, 136, 129, 120, 147, 130, 134, 128, 128, 149, 144, 122, 137, 136, 133, 132, 132, 125, 122, 122, 137, 142, 125, 135, 122, 148, 134, 124, 155, 136, 131, 149, 131, 139, 135, 145, 124, 135, 125, 141, 130, 136, 124, 129, 138, 139, 142, 134, 149, 130, 129, 137, 137, 133, 131, 128, 138, 129, 139, 145, 121, 144, 129, 142, 135, 129, 139, 131, 142, 137, 144, 125, 116, 131, 134, 135, 124, 142, 127, 141, 134, 128, 145, 138, 149, 143, 129, 148, 127, 128, 128, 129, 137, 138, 126, 135, 148, 114, 133, 138, 130, 138, 131, 128, 135, 145, 129, 152, 135, 136, 134, 144, 136, 140, 133, 141, 142, 133, 128, 130, 151, 140, 124, 131, 145, 143, 133, 134, 142, 123, 152, 125, 147, 143, 134, 130, 135, 126, 139, 132, 143, 131, 137, 130, 137, 137, 124, 138, 128, 137, 134, 149, 127, 135, 134, 140, 123, 139, 127, 136, 129, 130, 132, 139, 149, 135, 141, 130, 140, 160, 135, 125, 156, 137, 147, 126, 136, 134, 119, 143, 129, 139, 135, 142, 129, 151, 143, 144, 132, 137, 117, 132, 133, 142, 135, 137, 137, 139, 134, 139, 130, 125, 128, 147, 129, 134, 141, 137, 152, 135, 137, 134, 132, 135, 131, 149, 135, 142, 133, 132, 146, 136, 127, 147, 140, 136, 133, 116, 129, 133, 130, 129, 123, 131, 136, 135, 159, 128, 125, 145, 142, 138, 137, 123, 149, 139, 138, 132, 131, 133, 126, 140, 135, 143, 138, 120, 129, 130, 159, 126, 141, 135, 152, 141, 131, 130, 135, 139, 150, 134, 132, 144, 134, 134, 136, 120, 126, 119, 133, 129, 148, 145, 138, 125, 119, 138, 149, 126, 142, 129, 124, 146, 136, 140, 139, 147, 155, 120, 143, 131, 130, 132, 128, 133, 138, 134, 143, 143, 137, 148, 129, 144, 125, 130, 141, 151, 135, 133, 135, 138, 134, 135, 135, 133, 130, 138, 141, 131, 129, 132, 136, 139, 138, 135, 126, 134, 138, 129, 134, 137, 132, 136, 150, 131, 145, 124, 148, 134, 131, 139, 139, 138, 131, 132, 131, 135, 152, 139, 128, 134, 135, 134, 136, 133, 133, 126, 139, 137, 138, 130, 138, 135, 133, 138, 129, 135, 139, 134, 132, 146, 131, 142, 143, 137, 139, 135, 135, 138, 140, 137, 140, 138, 124, 124, 124, 141, 148, 137, 143, 140, 138, 135, 132, 138, 138, 137, 147, 137, 145, 140, 130, 148, 133, 148, 151, 133, 145, 130, 130, 141, 134, 140, 145, 141, 133, 136, 140, 141, 148, 136, 131, 130, 139, 142, 119, 128, 134, 123, 132, 142, 140, 136, 139, 135, 141, 133, 131, 129, 139, 137, 130, 143, 137, 129, 137, 136, 138, 137, 134, 132, 135, 140, 134, 132, 146, 142, 141, 140, 138, 132, 146, 142, 132, 136, 140, 140, 133, 130, 134, 138, 148, 139, 126, 138, 134, 137, 142, 129, 139, 131, 134, 136, 120, 135, 147, 137, 136, 139, 141, 139, 135, 140, 140, 139, 160, 144, 147, 140, 142, 129, 128, 138, 132, 139, 135, 134, 139, 133, 141, 128, 133, 136, 146, 136, 133, 138, 137, 136, 136, 139, 136, 126, 124, 131, 146, 137, 148, 140, 121, 118, 132, 141, 124, 130, 130, 131, 146, 133, 137, 139, 133, 143, 137, 136, 136, 142, 139, 136, 130, 141, 144, 135, 138, 133, 126, 132, 145, 139, 152, 138, 140, 146, 133, 143, 135, 142, 129, 139, 136, 139, 136, 138, 131, 140, 140, 132, 128, 137, 147, 134, 131, 128, 131, 139, 127, 132, 135, 141, 140, 138, 126, 129, 132, 136, 127, 135, 129, 135, 115, 141, 134, 124, 127, 136, 107, 140, 135, 131, 134, 137, 129, 143, 138, 130, 131, 131, 141, 140, 143, 131, 132, 138, 134, 141, 140, 139, 136, 139, 136, 128, 132, 130, 137, 135, 129, 142, 117, 126, 131, 129, 127, 135, 131, 127, 142, 137, 137, 144, 128, 137, 131, 125, 132, 139, 137, 130, 143, 138, 142, 130, 135, 135, 136, 133, 140, 137, 136, 138, 138, 137, 123, 135, 131, 137, 135, 139, 132, 135, 130, 130, 137, 146, 132, 138, 134, 136, 141, 134, 135, 140, 128, 136, 139, 134, 136, 140, 140, 135, 139, 140, 133, 128, 133, 144, 143, 130, 131, 130, 143, 136, 120, 134, 138, 135, 139, 128, 138, 124, 134, 121, 143, 134, 151, 129, 135, 137, 149, 138, 134, 134, 134, 126, 134, 131, 129, 150, 130, 135, 132, 130, 144, 144, 125, 136, 138, 131, 136, 130, 126, 133, 159, 125, 123, 141, 138, 129, 134, 135, 132, 132, 139, 134, 134, 131, 149, 144, 140, 128, 139, 136, 109, 137, 127, 143, 141, 134, 136, 144, 129, 130, 132, 123, 131, 143, 133, 133, 143, 137, 131, 133, 135, 127, 143, 144, 146, 134, 128, 129, 127, 147, 142, 130, 137, 136, 128, 134, 134, 135, 143, 136, 127, 131, 145, 127, 138, 140, 131, 139, 132, 139, 132, 130, 148, 137, 140, 141, 145, 124, 130, 135, 132, 87, 134, 136, 140, 152, 130, 143, 158, 128, 130, 131, 144, 125, 131, 135, 123, 136, 137, 135, 130, 130, 138, 105, 135, 138, 124, 127, 133, 114, 135, 139, 157, 145, 147, 124, 136, 145, 132, 141, 125, 143, 137, 140, 142, 142, 139, 135, 117, 122, 126, 123, 136, 144, 142, 134, 130, 137, 139, 140, 150, 128, 132, 147, 128, 144, 132, 110, 134, 136, 131, 137, 146, 144, 126, 134, 151, 143, 126, 123, 135, 147, 126, 122, 137, 141, 143, 141, 131, 137, 136, 141, 117, 140, 133, 137, 155, 129, 132, 134, 136, 138, 144, 121, 123, 150, 154, 126, 136, 126, 134, 142, 127, 122, 135, 124, 147, 128, 126, 151, 133, 136, 114, 145, 132, 144, 137, 116, 131, 147, 137, 159, 169, 120, 134, 150, 129, 129, 132, 138, 144, 129, 131, 140, 155, 130, 141, 139, 164, 121, 138, 105, 129, 126, 140, 120, 139, 135, 125, 137, 135, 141, 129, 139, 130, 124, 145, 130, 152, 139, 137, 138, 147, 133, 135, 122, 128, 140, 137, 122, 140, 143, 153, 149, 146, 132, 132, 137, 119, 122, 129, 130, 135, 152, 161, 139, 133, 120, 143, 139, 152, 134, 143, 136, 128, 131, 128, 152, 136, 143, 130, 139, 139, 164, 141, 136, 139, 121, 139, 132, 132, 144, 134, 139, 140, 139, 128, 134, 136, 128, 118, 139, 136, 143, 139, 145, 138, 143, 140, 135, 137, 141, 138, 144, 162, 132, 138, 148, 134, 123, 145, 133, 133, 141, 138, 142, 140, 147, 138, 142, 120, 98, 139, 135, 133, 132, 126, 148, 133, 138, 119, 144, 148, 129, 140, 116, 133, 132, 144, 138, 132, 130, 131, 137, 120, 157, 137, 144, 124, 128, 141, 147, 138, 144, 135, 132, 153, 123, 139, 136, 127, 156, 134, 134, 130, 127, 131, 137, 150, 136, 152, 131, 133, 140, 140, 136, 139, 120, 135, 135, 131, 146, 130, 138, 134, 133, 144, 139, 163, 136, 140, 142, 126, 131, 128, 125, 133, 146, 153, 131, 132, 130, 116, 144, 138, 142, 145, 127, 137, 118, 136, 147, 142, 132, 125, 132, 149, 138, 135, 138, 132, 134, 124, 131, 142, 115, 142, 136, 142, 136, 121, 141, 136, 130, 145, 124, 140, 160, 163, 130, 123, 131, 132, 133, 141, 125, 129, 142, 141, 136, 154, 124, 134, 139, 128, 176, 149, 129, 129, 135, 145, 129, 147, 132, 118, 132, 122, 136, 131, 133, 131, 142, 137, 145, 127, 142, 134, 131, 131, 112, 145, 145, 133, 121, 147, 119, 113, 140, 135, 131, 126, 148, 149, 127, 136, 114, 125, 124, 134, 108, 132, 130, 122, 130, 118, 150, 134, 133, 138, 137, 159, 126, 119, 133, 141, 141, 135, 131, 141, 138, 138, 131, 135, 136, 143, 133, 141, 125, 114, 144, 127, 148, 121, 137, 146, 138, 127, 164, 127, 148, 145, 139, 135, 113, 128, 151, 123, 152, 133, 139, 132, 146, 139, 125, 128, 127, 145, 151, 133, 137, 148, 137, 145, 150, 135, 153, 136, 153, 142, 137, 151, 138, 132, 140, 116, 133, 133, 142, 148, 139, 137, 134, 125, 142, 132, 150, 148, 137, 136, 130, 141, 143, 134, 125, 137, 144, 150, 141, 140, 121, 147, 131, 135, 109, 141, 155, 130, 119, 129, 135, 136, 118, 142, 155, 124, 132, 140, 145, 140, 125, 154, 132, 141, 137, 133, 130, 156, 124, 112, 143, 152, 127, 136, 126, 157, 145, 146, 128, 128, 135, 139, 133, 130, 127, 139, 133, 140, 138, 129, 146, 137, 133, 140, 129, 144, 129, 124, 140, 142, 140, 135, 141, 144, 139, 133, 127, 150, 129, 128, 139, 131, 135, 141, 123, 151, 140, 146, 125, 122, 135, 144, 147, 138, 143, 144, 142, 144, 159, 140, 125, 132, 148, 120, 92, 141, 132, 94, 137, 115, 118, 122, 135, 138, 120, 132, 128, 143, 139, 138, 133, 121, 136, 139, 128, 128, 104, 138, 131, 126, 136, 158, 122, 126, 135, 137, 130, 143, 139, 141, 130, 130, 139, 142, 135, 133, 149, 138, 131, 136, 140, 143, 127, 144, 130, 151, 98, 129, 128, 130, 148, 141, 131, 136, 130, 153, 119, 121, 133, 139, 126, 142, 139, 142, 111, 119, 129, 139, 151, 96, 121, 125, 132, 141, 143, 141, 142, 155, 130, 124, 140, 141, 152, 149, 142, 144, 144, 139, 141, 141, 150, 131, 139, 138, 128, 129, 68, 138, 127, 156, 131, 128, 137, 157, 138, 155, 138, 134, 134, 141, 149, 138, 137, 133, 134, 139, 153, 130, 133, 128, 124, 124, 137, 143, 128, 133, 129, 140, 138, 137, 133, 127, 137, 137, 152, 140, 135, 136, 143, 139, 133, 133, 79, 134, 138, 130, 164, 156, 121, 145, 124, 144, 131, 129, 146, 155, 141, 143, 145, 126, 137, 149, 128, 149, 145, 125, 137, 137, 146, 132, 151, 154, 130, 144, 195, 128, 143, 134, 140, 135, 146, 139, 150, 155, 125, 141, 136, 160, 158, 140, 136, 143, 130, 135, 140, 145, 123, 115, 126, 115, 138, 140, 144, 143, 132, 132, 130, 137, 130, 135, 129, 127, 148, 133, 143, 142, 110, 141, 128, 159, 134, 125, 133, 91, 133, 128, 143, 158, 137, 135, 124, 154, 145, 119, 129, 126, 139, 143, 108, 131, 125, 140, 149, 133, 126, 142, 132, 134, 136, 148, 139, 128, 154, 105, 136, 134, 130, 143, 98, 138, 140, 142, 147, 143, 135, 135, 135, 105, 145, 137, 132, 131, 127, 138, 136, 136, 134, 130, 135, 128, 136, 137, 148, 131, 156, 137, 121, 139, 133, 141, 139, 144, 142, 130, 137, 131, 118, 139, 124, 126, 131, 133, 125, 144, 146, 135, 113, 130, 147, 133, 151, 131, 135, 141, 142, 162, 146, 113, 196, 142, 138, 140, 115, 134, 142, 140, 128, 145, 132, 139, 144, 126, 136, 137, 143, 124, 128, 124, 154, 121, 129, 141, 139, 127, 146, 144, 142, 159, 148, 131, 125, 143, 142, 125, 140, 149, 132, 131, 163, 126, 141, 153, 149, 125, 148, 124, 155, 138, 138, 145, 133, 141, 138, 142, 142, 126, 120, 146, 123, 129, 139, 135, 132, 128, 133, 121, 154, 138, 125, 135, 138, 129, 125, 132, 144, 153, 108, 141, 112, 134, 138, 139, 132, 127, 133, 131, 143, 146, 137, 125, 143, 151, 120, 137, 138, 132, 129, 121, 137, 143, 114, 147, 124, 132, 124, 120, 138, 139, 139, 135, 135, 139, 132, 128, 153, 150, 149, 131, 129, 156, 114, 120, 121, 137, 157, 139, 143, 134, 133, 139, 143, 127, 131, 143, 128, 131, 140, 133, 133, 121, 138, 131, 125, 125, 148, 127, 131, 141, 143, 148, 137, 136, 141, 131, 146, 118, 134, 107, 123, 122, 139, 143, 136, 173, 132, 126, 153, 130, 131, 132, 141, 143, 148, 142, 134, 131, 120, 163, 108, 131, 132, 129, 125, 136, 139, 133, 115, 134, 123, 150, 134, 124, 133, 155, 128, 122, 139, 118, 137, 129, 136, 139, 129, 131, 146, 133, 133, 134, 145, 145, 136, 138, 165, 109, 140, 138, 149, 152, 119, 133, 127, 138, 120, 139, 135, 148, 127, 149, 149, 129, 150, 131, 127, 148, 138, 133, 137, 126, 118, 145, 137, 135, 123, 139, 137, 142, 119, 126, 158, 138, 144, 137, 103, 130, 138, 148, 141, 127, 130, 137, 118, 127, 130, 158, 126, 118, 129, 130, 143, 129, 121, 118, 119, 132, 142, 138, 132, 126, 144, 128, 134, 131, 134, 136, 130, 124, 137, 123, 132, 135, 129, 129, 105, 118, 159, 133, 136, 116, 126, 111, 130, 144, 147, 135, 127, 135, 125, 135, 132, 130, 131, 133, 134, 141, 142, 130, 124, 153, 119, 127, 132, 140, 141, 139, 141, 146, 178, 132, 136, 156, 130, 112, 125, 126, 139, 160, 120, 136, 138, 151, 167, 132, 148, 140, 140, 132, 117, 146, 150, 137, 131, 129, 132, 125, 141, 130, 125, 142, 131, 145, 138, 126, 153, 150, 132, 148, 148, 131, 137, 129, 131, 133, 139, 139, 138, 116, 134, 149, 135, 136, 137, 134, 134, 144, 147, 142, 145, 142, 142, 128, 128, 129, 134, 116, 141, 129, 143, 129, 141, 135, 138, 134, 166, 113, 152, 136, 165, 138, 141, 127, 128, 121, 139, 129, 134, 133, 143, 129, 130, 131, 135, 110, 128, 133, 139, 124, 122, 140, 122, 140, 135, 139, 122, 148, 111, 129, 144, 126, 128, 151, 151, 133, 135, 124, 145, 143, 140, 135, 142, 133, 146, 137, 120, 129, 142, 127, 129, 139, 120, 129, 120, 138, 142, 154, 126, 140, 141, 129, 133, 133, 124, 178, 163, 126, 136, 144, 139, 129, 127, 110, 144, 134, 141, 123, 122, 146, 146, 132, 170, 134, 126, 163, 128, 136, 131, 135, 147, 127, 143, 128, 166, 135, 137, 142, 125, 133, 137, 136, 137, 138, 118, 138, 139, 124, 133, 104, 146, 140, 129, 135, 125, 143, 115, 145, 136, 116, 130, 129, 130, 120, 128, 135, 131, 130, 138, 138, 141, 136, 142, 129, 148, 138, 120, 120, 139, 138, 147, 135, 151, 146, 135, 137, 127, 129, 148, 134, 146, 137, 138, 146, 130, 124, 134, 138, 152, 125, 122, 137, 136, 130, 140, 139, 129, 141, 132, 141, 116, 142, 131, 113, 137, 125, 128, 131, 134, 142, 136, 116, 129, 139, 133, 142, 126, 126, 134, 136, 129, 134, 123, 142, 122, 135, 130, 125, 136, 141, 134, 129, 121, 142, 136, 128, 140, 133, 127, 141, 125, 137, 145, 127, 127, 145, 144, 141, 132, 134, 134, 143, 140, 133, 135, 146, 126, 136, 128, 143, 111, 132, 140, 127, 142, 133, 143, 142, 129, 133, 128, 137, 134, 133, 135, 137, 129, 118, 144, 132, 134, 129, 136, 136, 130, 130, 135, 145, 128, 133, 133, 131, 128, 120, 139, 131, 125, 118, 132, 139, 129, 143, 131, 138, 130, 140, 131, 132, 147, 118, 131, 116, 143, 124, 130, 135, 132, 128, 147, 134, 131, 127, 166, 142, 127, 114, 124, 116, 124, 133, 127, 144, 149, 154, 140, 136, 140, 141, 130, 138, 140, 131, 135, 136, 119, 132, 140, 133, 136, 142, 137, 137, 130, 130, 133, 133, 141, 130, 106, 141, 140, 143, 128, 130, 134, 135, 155, 142, 129, 135, 128, 138, 128, 140, 107, 144, 141, 133, 124, 133, 137, 128, 142, 131, 126, 136, 129, 143, 136, 123, 129, 138, 129, 140, 132, 118, 142, 134, 108, 130, 130, 131, 128, 135, 139, 136, 125, 135, 133, 141, 141, 133, 138, 140, 139, 139, 135, 130, 110, 133, 142, 132, 132, 131, 85, 138, 143, 139, 146, 142, 129, 111, 138, 141, 142, 133, 139, 137, 129, 133, 127, 137, 141, 136, 129, 135, 127, 141, 129, 134, 138, 144, 138, 134, 131, 133, 132, 133, 144, 131, 119, 128, 123, 129, 133, 142, 131, 131, 138, 137, 194, 134, 133, 138, 139, 154, 125, 144, 137, 132, 129, 132, 133, 135, 138, 134, 139, 131, 139, 125, 134, 129, 135, 134, 128, 145, 130, 141, 133, 145, 142, 125, 147, 134, 138, 144, 128, 137, 132, 142, 130, 141, 153, 126, 135, 141, 126, 131, 132, 129, 136, 140, 145, 142, 137, 135, 141, 160, 147, 152, 140, 136, 129, 163, 135, 146, 123, 132, 132, 132, 144, 137, 125, 134, 137, 137, 130, 136, 130, 136, 122, 136, 142, 129, 139, 126, 137, 139, 135, 142, 134, 138, 134, 141, 131, 134, 155, 142, 139, 140, 130, 136, 142, 138, 148, 131, 135, 135, 134, 141, 137, 153, 136, 142, 125, 141, 156, 144, 125, 130, 138, 147, 139, 132, 136, 148, 147, 137, 124, 128, 145, 140, 146, 135, 139, 140, 145, 130, 139, 134, 138, 133, 143, 132, 132, 141, 135, 135, 137, 117, 131, 130, 124, 132, 122, 143, 137, 114, 142, 147, 115, 145, 134, 141, 145, 138, 117, 138, 139, 144, 120, 143, 129, 130, 121, 126, 145, 132, 132, 141, 132, 156, 139, 139, 132, 140, 134, 139, 151, 128, 133, 127, 138, 145, 138, 131, 137, 120, 121, 122, 133, 130, 140, 141, 124, 140, 134, 134, 139, 136, 138, 138, 133, 137, 125, 113, 127, 143, 136, 140, 147, 138, 136, 131, 122, 139, 132, 142, 141, 137, 140, 138, 126, 137, 130, 136, 163, 137, 146, 134, 136, 148, 129, 129, 132, 136, 136, 125, 129, 141, 153, 132, 138, 128, 136, 147, 134, 134, 133, 140, 138, 128, 142, 134, 137, 123, 132, 129, 150, 131, 164, 142, 126, 137, 126, 142, 126, 149, 139, 133, 166, 151, 136, 145, 129, 139, 131, 141, 132, 131, 148, 129, 130, 122, 131, 131, 132, 128, 137, 133, 138, 133, 131, 109, 159, 145, 148, 108, 134, 143, 131, 124, 137, 161, 148, 134, 136, 142, 137, 137, 136, 151, 138, 121, 130, 151, 142, 147, 134, 139, 147, 122, 131, 136, 142, 140, 137, 130, 130, 148, 126, 128, 135, 151, 136, 142, 142, 140, 148, 120, 128, 126, 141, 146, 135, 148, 136, 133, 129, 136, 138, 125, 137, 135, 134, 131, 131, 137, 141, 142, 140, 138, 135, 138, 133, 121, 132, 140, 140, 138, 144, 138, 130, 149, 141, 152, 131, 124, 137, 143, 127, 137, 134, 138, 125, 132, 130, 132, 146, 129, 136, 141, 131, 139, 164, 140, 141, 135, 134, 165, 129, 127, 135, 131, 135, 141, 133, 119, 112, 153, 128, 131, 136, 134, 132, 145, 137, 154, 141, 136, 129, 140, 132, 138, 143, 134, 132, 132, 139, 147, 140, 131, 158, 133, 137, 135, 132, 145, 136, 140, 140, 122, 138, 135, 138, 130, 130, 122, 132, 146, 130, 139, 139, 133, 129, 139, 140, 138, 144, 129, 117, 148, 139, 145, 142, 138, 131, 129, 139, 136, 143, 122, 131, 130, 127, 137, 125, 144, 131, 152, 141, 131, 146, 147, 138, 143, 121, 139, 123, 148, 131, 144, 134, 142, 135, 143, 136, 144, 140, 140, 142, 124, 134, 138, 148, 124, 137, 128, 131, 141, 136, 125, 131, 150, 132, 128, 121, 128, 133, 142, 140, 143, 114, 133, 148, 134, 132, 129, 123, 141, 123, 134, 152, 142, 137, 134, 140, 113, 143, 128, 127, 134, 145, 148, 145, 125, 131, 132, 128, 135, 133, 134, 126, 139, 140, 148, 129, 134, 153, 138, 135, 147, 132, 140, 144, 131, 128, 134, 133, 132, 138, 138, 136, 131, 121, 146, 125, 136, 139, 139, 138, 134, 133, 142, 134, 124, 127, 138, 130, 125, 143, 126, 141, 147, 141, 132, 127, 144, 132, 134, 121, 163, 129, 137, 133, 159, 138, 146, 148, 148, 139, 128, 141, 137, 125, 138, 138, 167, 138, 124, 136, 128, 159, 137, 136, 131, 138, 132, 123, 141, 118, 138, 147, 140, 128, 154, 154, 124, 140, 137, 131, 124, 126, 146, 144, 126, 134, 140, 141, 141, 138, 146, 148, 126, 131, 124, 135, 126, 139, 139, 136, 130, 137, 146, 138, 133, 133, 130, 138, 139, 145, 131, 126, 137, 144, 149, 130, 135, 137, 119, 142, 145, 128, 136, 145, 128, 135, 139, 130, 145, 138, 139, 143, 140, 135, 126, 136, 140, 147, 151, 136, 126, 131, 117, 135, 142, 128, 147, 140, 131, 149, 125, 146, 137, 137, 137, 135, 137, 138, 102, 147, 140, 141, 146, 134, 135, 136, 132, 136, 131, 126, 131, 140, 134, 138, 142, 142, 137, 130, 138, 111, 125, 119, 141, 122, 165, 150, 134, 134, 132, 131, 140, 144, 137, 115, 138, 139, 108, 143, 138, 160, 142, 132, 145, 122, 123, 139, 143, 114, 135, 136, 115, 132, 138, 129, 128, 143, 125, 145, 130, 136, 142, 133, 139, 144, 134, 126, 141, 149, 144, 136, 140, 130, 144, 126, 148, 141, 151, 137, 129, 136, 155, 137, 157, 133, 137, 119, 132, 141, 134, 142, 140, 144, 141, 125, 148, 136, 141, 137, 132, 123, 142, 154, 129, 131, 128, 131, 131, 154, 132, 131, 126, 147, 137, 142, 128, 135, 128, 126, 128, 143, 138, 138, 167, 131, 140, 133, 135, 142, 136, 116, 166, 131, 163, 129, 150, 124, 126, 132, 127, 140, 137, 143, 133, 138, 145, 146, 133, 149, 137, 142, 135, 141, 130, 133, 125, 147, 134, 139, 141, 119, 142, 139, 141, 137, 139, 127, 134, 136, 122, 136, 127, 140, 152, 144, 145, 142, 139, 147, 124, 134, 173, 129, 142, 117, 140, 149, 126, 135, 126, 135, 139, 150, 131, 124, 132, 135, 129, 142, 141, 130, 124, 117, 128, 140, 148, 128, 130, 124, 138, 132, 134, 133, 145, 142, 142, 129, 139, 136, 153, 126, 124, 138, 139, 115, 152, 125, 118, 130, 133, 147, 156, 136, 124, 143, 144, 130, 132, 121, 140, 141, 147, 124, 122, 125, 131, 133, 140, 155, 132, 123, 126, 137, 146, 128, 128, 136, 130, 130, 128, 137, 120, 114, 124, 140, 132, 153, 127, 138, 139, 131, 133, 151, 127, 137, 137, 142, 126, 144, 122, 142, 138, 136, 123, 137, 117, 147, 135, 153, 135, 128, 136, 132, 125, 157, 135, 143, 147, 129, 108, 144, 136, 134, 137, 147, 137, 128, 130, 151, 155, 122, 126, 125, 144, 135, 135, 142, 122, 110, 139, 134, 138, 129, 136, 129, 131, 140, 150, 153, 139, 132, 111, 162, 133, 127, 131, 132, 144, 143, 130, 135, 124, 159, 158, 133, 118, 138, 138, 133, 140, 137, 145, 144, 150, 125, 128, 123, 121, 135, 138, 122, 139, 137, 132, 143, 129, 133, 134, 133, 131, 143, 124, 138, 145, 136, 129, 160, 131, 124, 123, 127, 150, 145, 110, 141, 123, 133, 139, 127, 124, 137, 147, 141, 135, 138, 121, 131, 138, 140, 132, 135, 122, 134, 119, 135, 135, 121, 119, 125, 129, 125, 148, 139, 142, 127, 129, 129, 130, 119, 149, 135, 151, 160, 132, 141, 126, 142, 138, 130, 137, 148, 150, 131, 145, 148, 124, 138, 138, 124, 131, 142, 140, 142, 147, 106, 151, 127, 145, 130, 130, 113, 139, 127, 145, 127, 138, 142, 154, 144, 133, 131, 147, 134, 139, 127, 128, 144, 133, 129, 145, 134, 126, 144, 120, 137, 125, 142, 135, 127, 140, 137, 132, 136, 141, 136, 132, 158, 126, 135, 159, 131, 151, 137, 140, 140, 126, 138, 129, 126, 142, 136, 107, 121, 131, 124, 115, 143, 150, 136, 139, 107, 148, 146, 141, 155, 120, 141, 138, 149, 131, 135, 137, 139, 136, 142, 140, 139, 143, 143, 136, 135, 141, 133, 140, 131, 145, 152, 134, 150, 142, 167, 144, 152, 120, 138, 133, 132, 124, 140, 139, 134, 142, 145, 139, 128, 143, 152, 126, 112, 120, 148, 138, 127, 153, 149, 148, 124, 142, 133, 143, 130, 133, 131, 126, 142, 132, 116, 121, 128, 144, 139, 142, 150, 130, 131, 135, 121, 138, 138, 139, 131, 131, 140, 150, 143, 140, 139, 137, 134, 137, 128, 126, 148, 139, 139, 146, 129, 141, 128, 147, 136, 136, 131, 141, 142, 123, 148, 142, 138, 134, 141, 130, 134, 137, 138, 132, 124, 137, 138, 150, 136, 135, 138, 133, 144, 136, 131, 134, 128, 119, 132, 142, 131, 140, 147, 138, 137, 127, 139, 138, 137, 149, 132, 136, 122, 139, 139, 129, 145, 134, 143, 138, 134, 164, 132, 125, 136, 144, 124, 122, 137, 133, 135, 147, 139, 120, 133, 131, 129, 133, 129, 140, 136, 149, 133, 170, 140, 141, 130, 144, 139, 141, 129, 140, 127, 131, 130, 133, 135, 128, 139, 132, 143, 135, 128, 140, 131, 136, 135, 141, 149, 150, 145, 135, 130, 127, 143, 139, 138, 135, 132, 130, 141, 125, 127, 137, 140, 129, 130, 135, 140, 129, 131, 149, 114, 143, 136, 138, 144, 147, 132, 144, 147, 134, 136, 138, 137, 129, 134, 123, 130, 144, 143, 135, 117, 130, 131, 141, 137, 129, 144, 131, 145, 138, 142, 135, 136, 132, 146, 141, 135, 141, 132, 136, 131, 126, 138, 135, 128, 139, 118, 131, 130, 127, 117, 129, 130, 133, 133, 136, 154, 140, 154, 136, 137, 142, 143, 124, 136, 140, 129, 126, 140, 130, 137, 146, 142, 130, 146, 124, 152, 137, 136, 148, 118, 129, 130, 131, 130, 146, 134, 127, 132, 137, 139, 143, 147, 132, 133, 144, 137, 140, 138, 137, 141, 138, 136, 127, 120, 148, 143, 148, 126, 126, 134, 140, 129, 143, 145, 130, 124, 135, 134, 141, 130, 140, 139, 130, 132, 129, 134, 124, 138, 145, 128, 116, 132, 140, 148, 167, 153, 130, 126, 141, 136, 157, 137, 129, 132, 128, 146, 128, 132, 141, 123, 137, 143, 124, 141, 133, 135, 133, 162, 148, 138, 128, 139, 136, 129, 136, 137, 127, 162, 137, 141, 137, 134, 134, 144, 148, 126, 129, 127, 120, 132, 143, 137, 136, 142, 134, 137, 131, 137, 131, 129, 129, 133, 135, 119, 144, 154, 127, 142, 129, 142, 137, 141, 136, 147, 136, 139, 137, 130, 146, 128, 131, 133, 127, 145, 131, 139, 151, 138, 129, 137, 140, 146, 131, 143, 132, 130, 134, 136, 112, 133, 141, 132, 130, 131, 137, 140, 125, 111, 134, 132, 136, 120, 138, 149, 143, 141, 165, 123, 139, 137, 134, 139, 135, 136, 140, 138, 140, 123, 136, 142, 145, 126, 127, 146, 136, 133, 145, 138, 133, 125, 149, 147, 134, 135, 130, 120, 125, 140, 131, 176, 132, 131, 122, 137, 137, 148, 140, 142, 138, 142, 127, 131, 139, 126, 136, 145, 135, 144, 159, 134, 124, 128, 133, 148, 130, 152, 136, 141, 134, 131, 123, 125, 145, 131, 131, 128, 139, 136, 128, 131, 124, 166, 130, 127, 129, 126, 110, 117, 157, 140, 139, 130, 131, 142, 115, 128, 147, 135, 139, 117, 147, 136, 133, 163, 146, 149, 140, 138, 137, 142, 143, 153, 167, 129, 130, 143, 142, 128, 126, 132, 148, 147, 130, 125, 137, 123, 125, 132, 165, 130, 147, 123, 138, 141, 127, 153, 129, 134, 117, 147, 133, 149, 145, 139, 135, 151, 136, 140, 142, 126, 139, 125, 132, 125, 136, 137, 141, 124, 140, 130, 126, 143, 160, 134, 131, 130, 137, 131, 142, 128, 132, 139, 121, 141, 150, 128, 127, 161, 141, 139, 150, 146, 126, 124, 129, 128, 125, 129, 123, 135, 146, 141, 164, 138, 131, 138, 133, 128, 134, 125, 141, 134, 138, 153, 131, 135, 130, 139, 153, 134, 138, 126, 123, 133, 131, 120, 125, 136, 145, 140, 139, 137, 130, 161, 128, 141, 150, 139, 136, 132, 133, 134, 139, 134, 132, 151, 122, 125, 104, 128, 146, 136, 123, 130, 138, 125, 134, 137, 142, 125, 129, 148, 142, 136, 118, 132, 134, 134, 140, 136, 108, 134, 130, 151, 130, 135, 133, 145, 130, 118, 136, 130, 135, 142, 133, 139, 142, 150, 114, 139, 124, 145, 132, 132, 172, 153, 145, 127, 133, 147, 134, 135, 128, 147, 130, 139, 129, 136, 118, 133, 138, 136, 147, 134, 145, 132, 136, 144, 126, 130, 135, 133, 142, 152, 145, 139, 152, 152, 157, 123, 129, 122, 126, 143, 134, 135, 145, 130, 136, 131, 136, 128, 118, 143, 136, 137, 149, 137, 154, 143, 127, 144, 141, 139, 132, 143, 135, 134, 138, 134, 136, 130, 133, 137, 142, 129, 142, 126, 142, 136, 136, 152, 126, 147, 110, 139, 131, 116, 126, 134, 163, 139, 144, 114, 154, 133, 139, 137, 137, 119, 122, 131, 137, 144, 142, 136, 144, 143, 136, 136, 126, 122, 134, 129, 123, 147, 123, 159, 146, 144, 134, 130, 126, 139, 135, 133, 136, 146, 141, 133, 141, 130, 134, 132, 127, 132, 153, 128, 132, 114, 132, 142, 120, 148, 139, 146, 134, 152, 135, 143, 144, 126, 131, 136, 135, 133, 129, 143, 148, 135, 139, 141, 152, 128, 147, 125, 134, 126, 133, 135, 145, 131, 125, 123, 140, 139, 124, 134, 135, 140, 129, 141, 130, 127, 132, 124, 126, 142, 137, 150, 131, 129, 137, 147, 134, 129, 171, 177, 158, 141, 139, 124, 143, 133, 134, 128, 125, 170, 132, 124, 129, 126, 118, 133, 158, 162, 135, 129, 134, 118, 127, 150, 144, 131, 137, 116, 145, 136, 140, 134, 133, 149, 141, 118, 138, 130, 142, 140, 136, 133, 137, 128, 145, 149, 132, 132, 139, 156, 128, 140, 139, 133, 113, 140, 139, 127, 148, 137, 139, 143, 129, 132, 134, 143, 140, 132, 153, 131, 136, 145, 138, 156, 117, 142, 139, 144, 125, 143, 126, 140, 120, 148, 136, 127, 137, 128, 153, 147, 138, 142, 118, 114, 140, 152, 142, 132, 145, 141, 139, 148, 149, 133, 158, 132, 69, 131, 135, 135, 132, 133, 145, 128, 155, 152, 138, 141, 135, 132, 161, 145, 108, 134, 135, 146, 142, 139, 140, 139, 141, 140, 130, 140, 141, 130, 116, 142, 141, 138, 132, 131, 132, 148, 148, 147, 135, 133, 147, 136, 154, 142, 134, 126, 142, 143, 130, 137, 133, 149, 136, 138, 194, 140, 136, 139, 141, 140, 148, 126, 130, 132, 128, 146, 135, 137, 138, 137, 137, 151, 135, 132, 135, 141, 144, 142, 143, 134, 137, 140, 129, 154, 126, 102, 133, 152, 140, 139, 138, 151, 141, 136, 144, 135, 153, 133, 129, 139, 134, 144, 149, 139, 137, 148, 134, 126, 129, 131, 140, 137, 133, 142, 125, 155, 150, 126, 128, 141, 144, 143, 140, 133, 133, 135, 137, 142, 137, 132, 137, 141, 130, 122, 159, 136, 137, 139, 132, 136, 131, 141, 153, 136, 129, 135, 149, 135, 136, 143, 140, 160, 137, 134, 137, 147, 128, 141, 130, 150, 129, 141, 133, 140, 141, 134, 146, 148, 134, 130, 133, 132, 138, 140, 140, 157, 131, 135, 136, 137, 127, 153, 129, 141, 138, 124, 133, 131, 136, 150, 142, 149, 140, 139, 137, 134, 138, 143, 139, 138, 135, 131, 146, 133, 118, 131, 124, 136, 133, 148, 128, 136, 136, 146, 138, 133, 143, 132, 149, 123, 141, 138, 135, 133, 130, 129, 139, 140, 126, 133, 148, 135, 142, 139, 159, 137, 140, 136, 134, 131, 149, 136, 161, 135, 128, 135, 139, 139, 126, 142, 143, 138, 133, 152, 126, 138, 137, 132, 133, 140, 162, 139, 136, 140, 190, 134, 130, 147, 136, 137, 131, 132, 134, 125, 133, 136, 123, 136, 136, 142, 142, 130, 143, 151, 137, 136, 127, 89, 138, 145, 129, 152, 140, 118, 127, 139, 138, 133, 134, 153, 119, 131, 140, 147, 144, 129, 133, 119, 139, 138, 138, 132, 146, 140, 133, 138, 134, 138, 160, 140, 129, 129, 154, 120, 139, 137, 136, 147, 129, 136, 126, 147, 144, 150, 127, 141, 143, 132, 141, 131, 141, 138, 138, 137, 149, 150, 145, 132, 140, 130, 139, 136, 104, 136, 133, 148, 139, 135, 119, 133, 141, 142, 138, 148, 142, 141, 146, 133, 137, 131, 131, 148, 134, 137, 134, 133, 135, 155, 135, 124, 145, 141, 147, 143, 135, 128, 136, 138, 145, 139, 134, 151, 127, 142, 142, 138, 141, 141, 131, 142, 132, 142, 156, 147, 137, 150, 135, 130, 116, 143, 128, 134, 140, 145, 138, 123, 142, 127, 141, 141, 123, 133, 116, 138, 134, 137, 142, 136, 155, 128, 143, 130, 142, 135, 128, 133, 152, 136, 139, 145, 147, 161, 146, 133, 139, 136, 136, 156, 134, 93, 138, 137, 142, 175, 124, 135, 137, 139, 142, 137, 132, 130, 133, 136, 145, 137, 138, 137, 136, 157, 143, 134, 149, 135, 134, 138, 136, 135, 140, 123, 144, 157, 112, 143, 140, 139, 127, 126, 148, 127, 138, 138, 136, 143, 117, 151, 138, 127, 135, 146, 125, 143, 141, 133, 125, 134, 145, 127, 131, 128, 134, 131, 128, 132, 150, 141, 134, 130, 142, 132, 129, 134, 130, 147, 130, 129, 139, 136, 143, 134, 135, 143, 129, 131, 137, 144, 136, 123, 140, 125, 127, 136, 140, 132, 132, 118, 136, 123, 138, 138, 131, 136, 133, 135, 136, 130, 142, 137, 166, 141, 129, 150, 133, 121, 126, 147, 146, 121, 122, 117, 148, 123, 136, 139, 140, 135, 136, 137, 134, 131, 136, 132, 139, 135, 140, 132, 124, 143, 126, 125, 133, 129, 138, 131, 126, 150, 134, 141, 132, 126, 138, 151, 147, 133, 116, 133, 145, 129, 141, 132, 129, 139, 130, 134, 120, 130, 134, 125, 127, 132, 138, 138, 149, 127, 143, 131, 136, 139, 140, 129, 138, 142, 127, 124, 129, 127, 143, 135, 128, 144, 137, 137, 149, 138, 139, 137, 137, 126, 141, 132, 136, 143, 132, 125, 141, 135, 139, 141, 125, 137, 135, 132, 132, 141, 139, 132, 134, 144, 144, 133, 137, 135, 136, 147, 141, 131, 131, 140, 141, 133, 133, 128, 138, 148, 140, 135, 128, 142, 128, 145, 136, 140, 130, 136, 116, 141, 148, 136, 135, 120, 125, 149, 127, 120, 144, 127, 132, 131, 141, 135, 148, 140, 134, 145, 138, 134, 135, 126, 125, 141, 140, 134, 126, 134, 134, 139, 137, 138, 141, 144, 139, 130, 151, 136, 147, 133, 126, 134, 157, 125, 134, 131, 139, 132, 122, 150, 138, 142, 134, 137, 134, 123, 147, 139, 137, 127, 146, 137, 140, 127, 133, 132, 132, 132, 139, 130, 128, 133, 132, 127, 130, 124, 135, 145, 133, 135, 129, 130, 142, 134, 136, 130, 136, 135, 137, 153, 131, 145, 146, 134, 123, 124, 142, 152, 112, 125, 121, 133, 134, 144, 129, 145, 129, 153, 118, 137, 128, 136, 141, 151, 149, 141, 146, 119, 132, 147, 133, 137, 134, 142, 131, 147, 129, 138, 144, 134, 132, 141, 132, 133, 137, 128, 148, 142, 134, 139, 131, 148, 134, 134, 134, 137, 134, 135, 131, 144, 127, 149, 139, 133, 132, 127, 135, 149, 138, 135, 141, 148, 150, 150, 141, 150, 129, 149, 137, 138, 136, 137, 134, 149, 142, 139, 147, 131, 131, 134, 127, 137, 134, 143, 136, 131, 139, 128, 135, 128, 141, 137, 130, 130, 144, 140, 142, 130, 131, 160, 144, 134, 135, 150, 137, 128, 147, 139, 140, 130, 131, 139, 134, 137, 134, 120, 124, 130, 129, 135, 125, 125, 150, 145, 136, 123, 133, 133, 140, 128, 121, 143, 142, 137, 130, 139, 145, 140, 139, 124, 134, 145, 131, 139, 137, 131, 136, 136, 129, 142, 151, 133, 130, 157, 139, 124, 125, 128, 137, 131, 129, 138, 139, 142, 125, 143, 131, 142, 144, 136, 148, 139, 127, 127, 128, 150, 134, 145, 137, 133, 135, 142, 140, 115, 115, 129, 134, 130, 134, 141, 139, 130, 135, 131, 132, 136, 130, 137, 142, 133, 116, 140, 129, 137, 137, 129, 132, 150, 128, 147, 133, 141, 134, 134, 148, 136, 135, 141, 140, 133, 139, 135, 141, 140, 141, 137, 150, 128, 133, 134, 135, 139, 134, 138, 147, 134, 138, 137, 138, 138, 132, 140, 123, 138, 139, 131, 146, 135, 132, 133, 138, 141, 130, 139, 135, 147, 143, 131, 132, 136, 144, 141, 124, 139, 141, 141, 143, 145, 135, 120, 142, 155, 134, 135, 145, 141, 133, 137, 133, 131, 134, 135, 138, 141, 141, 145, 139, 143, 140, 150, 145, 135, 142, 136, 133, 138, 138, 131, 134, 145, 135, 137, 131, 151, 137, 134, 135, 141, 132, 138, 137, 138, 135, 136, 131, 144, 141, 138, 132, 129, 140, 139, 134, 139, 130, 134, 139, 139, 140, 138, 137, 138, 140, 148, 125, 131, 142, 150, 143, 143, 131, 141, 130, 145, 145, 133, 130, 97, 133, 135, 146, 136, 129, 133, 133, 132, 137, 130, 139, 144, 135, 134, 138, 141, 173, 134, 142, 147, 134, 148, 124, 134, 140, 136, 135, 122, 134, 144, 138, 134, 139, 144, 143, 135, 143, 134, 138, 140, 134, 136, 132, 128, 137, 134, 136, 140, 145, 133, 138, 137, 132, 142, 137, 136, 116, 138, 144, 143, 128, 140, 133, 129, 138, 138, 127, 134, 135, 137, 134, 140, 137, 128, 130, 141, 135, 134, 134, 134, 125, 134, 138, 127, 137, 136, 144, 138, 132, 131, 138, 141, 136, 136, 131, 142, 148, 135, 132, 134, 130, 127, 142, 133, 135, 133, 129, 140, 146, 132, 137, 143, 142, 132, 133, 137, 141, 133, 139, 138, 131, 126, 133, 133, 133, 130, 135, 139, 136, 135, 138, 137, 103, 133, 121, 138, 144, 139, 144, 129, 140, 138, 134, 140, 149, 138, 153, 151, 133, 134, 138, 141, 131, 125, 138, 135, 130, 137, 125, 163, 146, 149, 141, 137, 121, 130, 124, 130, 128, 130, 130, 129, 136, 131, 128, 139, 132, 134, 132, 136, 146, 131, 138, 146, 137, 139, 142, 147, 131, 139, 128, 125, 131, 134, 139, 140, 139, 142, 130, 137, 146, 99, 114, 121, 136, 141, 137, 135, 129, 146, 142, 134, 134, 137, 134, 143, 112, 134, 133, 132, 134, 134, 131, 137, 141, 138, 147, 130, 138, 140, 138, 139, 138, 126, 132, 134, 131, 138, 134, 139, 140, 135, 134, 132, 129, 133, 145, 143, 146, 127, 145, 140, 131, 136, 134, 140, 136, 144, 162, 144, 137, 130, 128, 138, 138, 129, 146, 133, 137, 146, 146, 141, 152, 130, 139, 132, 123, 129, 138, 128, 132, 135, 146, 135, 148, 137, 125, 141, 139, 131, 139, 140, 134, 142, 141, 127, 140, 134, 138, 131, 136, 149, 133, 137, 135, 149, 138, 137, 138, 132, 139, 147, 155, 148, 149, 148, 144, 133, 120, 138, 135, 147, 127, 137, 134, 137, 132, 132, 138, 149, 135, 134, 104, 120, 148, 119, 124, 136, 134, 141, 135, 134, 143, 136, 132, 142, 146, 140, 132, 142, 135, 138, 142, 134, 136, 138, 143, 135, 140, 144, 125, 113, 138, 137, 141, 129, 127, 144, 134, 135, 140, 130, 131, 129, 141, 136, 141, 141, 134, 127, 144, 131, 126, 137, 132, 137, 116, 134, 139, 133, 138, 136, 142, 128, 131, 136, 125, 140, 137, 137, 136, 142, 119, 132, 126, 139, 140, 141, 137, 130, 128, 135, 140, 124, 144, 135, 143, 137, 136, 130, 131, 138, 136, 143, 138, 126, 138, 123, 143, 133, 131, 127, 144, 142, 149, 140, 113, 136, 135, 150, 130, 139, 141, 136, 141, 134, 131, 134, 136, 146, 131, 128, 122, 130, 132, 140, 140, 143, 135, 147, 146, 138, 134, 136, 132, 130, 155, 134, 148, 131, 140, 135, 141, 129, 139, 132, 135, 148, 163, 142, 154, 140, 145, 137, 136, 135, 142, 134, 142, 138, 139, 128, 139, 139, 125, 139, 112, 129, 138, 135, 142, 141, 138, 140, 135, 131, 134, 133, 139, 126, 146, 140, 138, 140, 135, 127, 132, 156, 136, 117, 134, 131, 136, 136, 131, 140, 130, 141, 134, 130, 137, 140, 153, 132, 143, 137, 141, 157, 141, 135, 141, 132, 128, 134, 124, 146, 139, 139, 142, 135, 138, 133, 132, 128, 159, 131, 139, 123, 130, 130, 140, 134, 145, 125, 138, 128, 112, 123, 131, 133, 126, 120, 129, 136, 140, 126, 137, 138, 158, 130, 133, 136, 132, 140, 146, 130, 143, 137, 136, 129, 133, 111, 129, 138, 137, 118, 137, 132, 136, 140, 123, 135, 123, 138, 127, 146, 122, 136, 122, 118, 142, 122, 129, 129, 129, 124, 132, 133, 130, 135, 132, 128, 141, 146, 143, 139, 140, 133, 135, 133, 137, 137, 133, 147, 147, 134, 141, 126, 136, 137, 138, 140, 124, 129, 141, 143, 133, 130, 143, 132, 125, 145, 140, 134, 129, 139, 127, 134, 128, 126, 151, 121, 131, 145, 128, 133, 125, 137, 137, 129, 130, 141, 145, 130, 142, 139, 140, 132, 129, 130, 124, 132, 135, 148, 131, 128, 127, 135, 131, 132, 143, 139, 148, 146, 132, 141, 122, 135, 123, 123, 135, 145, 146, 137, 136, 118, 125, 136, 128, 139, 132, 134, 140, 141, 138, 135, 122, 138, 129, 125, 122, 145, 124, 137, 119, 148, 132, 135, 125, 132, 136, 142, 132, 126, 139, 130, 129, 145, 135, 139, 148, 129, 138, 145, 137, 159, 134, 134, 137, 139, 127, 125, 128, 129, 135, 138, 136, 133, 132, 150, 148, 141, 136, 151, 134, 128, 133, 139, 134, 131, 140, 125, 137, 129, 126, 138, 135, 135, 144, 134, 154, 132, 132, 142, 125, 147, 136, 146, 140, 133, 135, 138, 142, 145, 131, 126, 130, 124, 117, 123, 140, 129, 131, 138, 143, 133, 142, 137, 152, 124, 153, 133, 149, 130, 145, 134, 128, 144, 130, 128, 143, 139, 137, 125, 138, 147, 130, 128, 144, 118, 130, 138, 142, 135, 148, 134, 132, 141, 138, 141, 135, 129, 139, 139, 138, 141, 123, 138, 131, 143, 142, 160, 135, 130, 137, 135, 139, 144, 149, 145, 120, 142, 142, 133, 143, 132, 132, 135, 141, 124, 153, 125, 138, 133, 126, 130, 139, 122, 140, 141, 150, 128, 146, 137, 134, 141, 123, 143, 149, 136, 133, 149, 144, 132, 136, 125, 142, 138, 135, 122, 138, 145, 135, 135, 130, 130, 118, 135, 136, 133, 129, 132, 147, 142, 123, 152, 128, 145, 135, 158, 135, 133, 143, 165, 132, 138, 127, 140, 136, 120, 138, 140, 131, 128, 136, 130, 131, 135, 134, 135, 134, 138, 136, 149, 134, 139, 136, 138, 143, 141, 125, 139, 133, 146, 133, 137, 130, 132, 138, 128, 123, 130, 147, 122, 133, 137, 134, 134, 128, 128, 149, 136, 137, 131, 142, 138, 132, 124, 128, 136, 73, 138, 142, 122, 144, 151, 132, 148, 121, 136, 136, 137, 142, 134, 140, 138, 122, 143, 136, 129, 144, 136, 125, 138, 129, 135, 133, 126, 127, 130, 134, 94, 117, 135, 131, 140, 145, 136, 129, 134, 128, 140, 139, 134, 148, 145, 130, 141, 110, 134, 118, 144, 112, 134, 128, 132, 135, 133, 136, 141, 137, 133, 135, 123, 126, 131, 138, 150, 148, 130, 140, 134, 138, 135, 129, 131, 135, 133, 128, 132, 136, 144, 128, 141, 135, 137, 132, 137, 134, 142, 134, 129, 123, 125, 135, 143, 154, 140, 131, 133, 136, 133, 132, 140, 129, 136, 132, 127, 133, 132, 129, 135, 127, 132, 119, 126, 124, 147, 132, 126, 148, 107, 133, 136, 142, 127, 133, 143, 135, 135, 132, 132, 143, 131, 128, 139, 129, 139, 126, 133, 138, 129, 136, 131, 142, 134, 144, 117, 135, 128, 156, 143, 134, 125, 117, 132, 143, 130, 133, 148, 140, 142, 140, 129, 133, 127, 139, 123, 125, 143, 133, 131, 136, 144, 134, 141, 134, 138, 140, 110, 140, 137, 128, 153, 140, 122, 134, 126, 140, 130, 140, 125, 127, 165, 157, 142, 142, 136, 138, 121, 140, 117, 145, 130, 135, 133, 132, 130, 141, 144, 137, 134, 128, 143, 140, 142, 128, 133, 140, 136, 145, 145, 132, 131, 142, 143, 136, 139, 133, 129, 137, 134, 105, 133, 136, 121, 139, 135, 137, 125, 143, 134, 141, 139, 143, 141, 129, 131, 153, 133, 128, 133, 138, 135, 135, 132, 165, 138, 143, 139, 140, 134, 116, 130, 138, 143, 133, 108, 127, 137, 163, 139, 128, 143, 146, 138, 137, 141, 129, 136, 134, 133, 138, 139, 123, 132, 131, 133, 138, 149, 143, 129, 133, 125, 133, 130, 138, 145, 146, 133, 121, 130, 150, 134, 109, 129, 131, 132, 140, 154, 127, 141, 136, 141, 140, 136, 138, 134, 133, 127, 136, 129, 129, 144, 130, 134, 131, 138, 136, 141, 145, 128, 133, 133, 138, 133, 131, 126, 144, 131, 124, 128, 134, 137, 134, 126, 134, 140, 131, 138, 115, 151, 139, 158, 141, 131, 141, 136, 142, 124, 123, 130, 135, 105, 127, 140, 138, 132, 161, 129, 124, 133, 138, 132, 148, 143, 134, 139, 140, 141, 140, 136, 136, 135, 128, 131, 125, 129, 135, 139, 134, 119, 117, 131, 123, 125, 135, 153, 133, 127, 122, 138, 134, 134, 132, 140, 133, 116, 116, 131, 140, 139, 136, 137, 135, 138, 142, 136, 130, 141, 144, 135, 125, 126, 137, 123, 129, 134, 138, 142, 125, 126, 124, 141, 144, 148, 131, 135, 128, 137, 142, 142, 143, 136, 128, 133, 124, 134, 129, 139, 123, 130, 148, 123, 84, 143, 132, 132, 140, 144, 132, 135, 132, 143, 134, 146, 141, 136, 134, 131, 151, 144, 152, 124, 139, 135, 132, 144, 143, 144, 125, 135, 153, 136, 136, 149, 138, 134, 129, 141, 128, 131, 136, 130, 141, 139, 128, 140, 135, 128, 141, 138, 134, 148, 129, 143, 141, 133, 129, 130, 132, 172, 141, 139, 130, 140, 134, 133, 134, 133, 141, 134, 125, 126, 127, 135, 144, 141, 142, 128, 143, 131, 141, 137, 127, 139, 120, 138, 137, 148, 137, 134, 150, 141, 131, 140, 131, 144, 127, 118, 136, 134, 161, 138, 137, 121, 134, 139, 144, 130, 137, 136, 126, 147, 135, 122, 134, 128, 126, 143, 133, 127, 110, 136, 138, 136, 131, 148, 129, 139, 141, 139, 132, 134, 130, 134, 132, 140, 135, 131, 123, 140, 125, 138, 138, 143, 139, 136, 146, 135, 129, 138, 132, 139, 126, 143, 125, 141, 126, 137, 137, 141, 162, 127, 138, 134, 120, 136, 129, 134, 134, 130, 133, 140, 139, 134, 144, 130, 146, 140, 128, 136, 132, 147, 124, 118, 122, 143, 129, 148, 137, 136, 140, 137, 119, 134, 136, 145, 137, 141, 134, 138, 141, 135, 143, 132, 124, 132, 133, 138, 135, 139, 145, 132, 147, 137, 144, 135, 129, 127, 145, 120, 135, 135, 143, 151, 149, 139, 134, 144, 129, 131, 141, 138, 141, 136, 135, 128, 144, 137, 141, 139, 131, 124, 137, 143, 140, 137, 146, 146, 150, 140, 138, 144, 134, 135, 146, 138, 137, 134, 134, 130, 136, 138, 142, 153, 116, 123, 136, 141, 127, 145, 126, 135, 135, 126, 130, 121, 129, 147, 141, 133, 143, 143, 123, 141, 130, 138, 141, 138, 134, 146, 136, 139, 128, 128, 153, 147, 144, 134, 137, 140, 143, 139, 153, 138, 147, 162, 152, 142, 139, 135, 136, 144, 131, 148, 135, 127, 133, 140, 138, 145, 148, 130, 131, 132, 139, 132, 131, 131, 147, 137, 136, 129, 136, 147, 134, 138, 145, 122, 131, 129, 143, 134, 141, 134, 135, 148, 130, 128, 119, 134, 142, 120, 143, 146, 150, 149, 127, 140, 133, 130, 143, 135, 126, 129, 138, 129, 132, 144, 129, 138, 144, 127, 135, 152, 159, 128, 103, 145, 132, 133, 140, 132, 132, 137, 145, 141, 145, 135, 128, 127, 132, 121, 121, 132, 142, 138, 122, 130, 140, 144, 133, 145, 124, 123, 143, 135, 148, 147, 134, 150, 135, 133, 140, 145, 128, 128, 130, 132, 143, 129, 160, 144, 149, 143, 134, 133, 134, 130, 137, 142, 147, 130, 138, 148, 136, 141, 150, 134, 141, 122, 133, 143, 144, 145, 138, 122, 130, 165, 125, 139, 146, 122, 136, 142, 133, 135, 150, 142, 140, 145, 137, 127, 136, 133, 138, 122, 129, 116, 139, 129, 138, 136, 149, 134, 139, 136, 154, 137, 128, 145, 135, 142, 140, 138, 138, 122, 146, 144, 135, 130, 146, 141, 124, 127, 134, 143, 134, 121, 136, 139, 141, 117, 148, 135, 144, 129, 145, 135, 128, 142, 142, 124, 127, 134, 150, 145, 135, 140, 136, 122, 138, 139, 128, 143, 144, 146, 136, 134, 136, 143, 127, 138, 129, 144, 138, 126, 133, 133, 119, 137, 118, 133, 138, 115, 153, 134, 137, 143, 141, 145, 143, 132, 145, 145, 135, 131, 129, 128, 135, 127, 135, 133, 121, 127, 153, 129, 121, 144, 146, 140, 128, 144, 135, 130, 136, 137, 136, 139, 143, 127, 126, 131, 118, 132, 128, 142, 125, 140, 132, 129, 142, 142, 133, 142, 130, 129, 128, 143, 153, 147, 136, 137, 119, 133, 125, 156, 150, 134, 144, 132, 135, 138, 129, 143, 139, 133, 128, 131, 133, 132, 129, 144, 133, 124, 140, 144, 133, 128, 150, 151, 126, 140, 135, 136, 141, 149, 153, 127, 136, 137, 138, 138, 131, 128, 125, 116, 146, 135, 129, 143, 145, 149, 127, 142, 126, 131, 134, 155, 134, 156, 147, 126, 148, 136, 141, 138, 134, 142, 137, 131, 126, 126, 133, 148, 143, 142, 135, 130, 148, 136, 149, 138, 125, 135, 138, 134, 131, 149, 133, 125, 143, 136, 133, 130, 130, 139, 148, 140, 135, 141, 125, 131, 139, 125, 136, 126, 143, 130, 132, 134, 150, 140, 127, 118, 141, 136, 126, 141, 144, 146, 141, 146, 132, 144, 131, 138, 141, 128, 144, 141, 128, 142, 130, 135, 150, 135, 139, 146, 139, 141, 130, 138, 136, 141, 142, 140, 131, 131, 128, 118, 142, 120, 149, 134, 125, 137, 135, 133, 134, 124, 125, 146, 132, 141, 131, 144, 138, 123, 142, 128, 128, 131, 132, 139, 126, 140, 130, 137, 137, 131, 135, 138, 137, 120, 129, 135, 130, 125, 124, 144, 143, 123, 135, 133, 133, 126, 131, 139, 144, 128, 124, 131, 144, 142, 135, 140, 150, 130, 138, 148, 127, 133, 135, 134, 127, 121, 143, 136, 142, 133, 127, 144, 125, 147, 141, 139, 138, 135, 118, 112, 124, 147, 146, 140, 143, 138, 143, 134, 137, 130, 135, 137, 141, 139, 143, 133, 127, 151, 144, 143, 136, 126, 126, 133, 133, 129, 140, 135, 137, 149, 140, 134, 127, 137, 152, 138, 116, 150, 138, 128, 127, 136, 147, 140, 153, 138, 133, 127, 153, 137, 153, 129, 129, 145, 126, 141, 143, 147, 128, 138, 140, 130, 141, 121, 136, 136, 141, 140, 129, 151, 130, 135, 124, 128, 130, 138, 127, 124, 140, 120, 134, 132, 131, 142, 131, 146, 139, 137, 140, 132, 146, 129, 130, 139, 153, 135, 136, 138, 137, 123, 133, 137, 137, 137, 141, 134, 127, 133, 132, 124, 125, 138, 146, 124, 123, 128, 142, 131, 133, 143, 140, 137, 140, 133, 131, 136, 134, 147, 139, 128, 145, 148, 138, 131, 119, 131, 123, 138, 112, 144, 155, 126, 113, 123, 135, 138, 130, 136, 133, 131, 131, 133, 157, 137, 137, 123, 152, 129, 147, 138, 120, 124, 129, 142, 137, 143, 145, 132, 133, 127, 138, 152, 137, 134, 144, 137, 138, 130, 130, 113, 128, 145, 137, 144, 143, 138, 136, 150, 136, 126, 133, 136, 130, 145, 127, 134, 144, 146, 136, 150, 140, 118, 131, 133, 150, 132, 150, 134, 142, 139, 141, 136, 150, 127, 141, 122, 135, 144, 150, 146, 136, 127, 126, 139, 139, 132, 135, 155, 131, 136, 137, 127, 143, 144, 122, 133, 108, 145, 131, 142, 130, 135, 136, 142, 137, 133, 139, 135, 142, 123, 128, 141, 139, 144, 142, 132, 128, 141, 126, 133, 142, 136, 147, 145, 170, 145, 133, 132, 143, 145, 142, 133, 128, 140, 137, 131, 123, 134, 118, 144, 125, 138, 131, 136, 134, 140, 131, 136, 131, 139, 133, 140, 135, 139, 147, 136, 144, 137, 139, 123, 147, 135, 134, 139, 142, 136, 138, 131, 144, 138, 137, 142, 133, 123, 139, 139, 138, 138, 164, 128, 139, 126, 142, 121, 141, 127, 121, 136, 141, 129, 137, 152, 139, 139, 130, 142, 132, 129, 151, 132, 144, 135, 131, 142, 140, 124, 120, 136, 137, 138, 126, 130, 133, 143, 131, 138, 146, 130, 134, 129, 136, 142, 140, 123, 148, 129, 139, 136, 131, 125, 142, 125, 135, 144, 128, 130, 134, 141, 143, 145, 132, 155, 132, 136, 135, 138, 136, 134, 133, 129, 129, 120, 139, 130, 141, 134, 147, 135, 128, 135, 130, 132, 135, 139, 136, 129, 128, 137, 137, 128, 142, 134, 145, 142, 135, 155, 135, 133, 146, 131, 149, 134, 126, 135, 143, 122, 127, 134, 127, 135, 140, 138, 127, 141, 142, 136, 133, 139, 133, 130, 139, 158, 131, 141, 141, 130, 124, 133, 135, 125, 137, 149, 141, 141, 129, 139, 143, 134, 131, 143, 133, 130, 138, 137, 135, 149, 130, 143, 128, 130, 144, 126, 134, 133, 122, 144, 119, 140, 140, 134, 130, 135, 119, 133, 125, 134, 136, 125, 138, 138, 137, 126, 146, 144, 127, 136, 135, 131, 135, 140, 134, 128, 142, 136, 134, 137, 160, 126, 127, 132, 139, 125, 121, 123, 151, 134, 143, 127, 131, 144, 137, 129, 145, 140, 127, 128, 135, 129, 129, 139, 145, 150, 143, 87, 134, 135, 129, 151, 131, 146, 134, 133, 134, 129, 146, 155, 136, 146, 132, 136, 134, 133, 142, 127, 147, 135, 140, 138, 135, 134, 135, 129, 120, 131, 138, 144, 133, 143, 135, 121, 135, 140, 128, 142, 135, 120, 137, 136, 126, 133, 140, 144, 131, 148, 141, 135, 133, 130, 142, 137, 125, 137, 138, 133, 141, 140, 146, 148, 133, 141, 144, 140, 135, 130, 138, 130, 140, 142, 107, 138, 130, 132, 137, 148, 148, 147, 132, 128, 142, 146, 131, 144, 136, 136, 140, 129, 139, 117, 140, 132, 133, 132, 154, 132, 142, 131, 154, 130, 154, 144, 140, 135, 144, 120, 134, 127, 137, 131, 133, 152, 126, 145, 147, 142, 136, 150, 145, 150, 136, 145, 142, 128, 139, 134, 140, 123, 142, 156, 120, 136, 144, 129, 127, 133, 126, 124, 141, 160, 131, 135, 140, 133, 131, 136, 136, 143, 133, 143, 136, 144, 140, 130, 134, 188, 131, 140, 140, 131, 134, 133, 135, 139, 135, 141, 133, 140, 147, 140, 131, 143, 140, 134, 135, 132, 127, 142, 135, 142, 140, 133, 138, 133, 140, 141, 135, 147, 135, 136, 140, 141, 132, 136, 133, 138, 136, 133, 136, 131, 131, 149, 145, 142, 141, 133, 134, 138, 151, 128, 139, 133, 138, 133, 140, 141, 143, 123, 131, 132, 133, 133, 141, 134, 134, 135, 132, 141, 140, 131, 136, 138, 141, 142, 137, 137, 143, 135, 137, 137, 128, 127, 144, 136, 124, 136, 137, 153, 130, 139, 130, 140, 143, 85, 133, 129, 134, 131, 145, 128, 139, 134, 116, 141, 142, 137, 134, 152, 135, 135, 135, 136, 135, 125, 136, 140, 132, 141, 128, 141, 120, 139, 134, 120, 129, 134, 132, 133, 138, 131, 138, 131, 133, 134, 137, 105, 129, 137, 131, 136, 139, 139, 134, 139, 137, 138, 135, 135, 141, 142, 137, 140, 128, 127, 139, 135, 135, 136, 132, 134, 139, 135, 136, 140, 138, 141, 139, 137, 136, 133, 138, 132, 136, 132, 130, 127, 132, 133, 135, 133, 127, 137, 142, 137, 141, 140, 129, 134, 130, 126, 138, 137, 142, 132, 128, 133, 134, 133, 135, 139, 131, 138, 129, 140, 141, 142, 127, 136, 134, 148, 132, 136, 135, 133, 133, 137, 135, 138, 134, 137, 135, 144, 136, 131, 128, 132, 130, 135, 132, 133, 144, 140, 135, 128, 132, 116, 137, 138, 142, 134, 137, 136, 137, 135, 136, 142, 132, 146, 139, 136, 133, 96, 132, 144, 138, 139, 135, 136, 136, 130, 129, 124, 137, 137, 131, 142, 128, 167, 145, 140, 137, 137, 136, 137, 139, 142, 132, 141, 135, 141, 139, 132, 139, 139, 134, 139, 138, 138, 136, 135, 144, 134, 141, 133, 133, 142, 139, 139, 135, 138, 129, 139, 136, 139, 141, 134, 138, 141, 136, 131, 145, 140, 140, 132, 141, 135, 140, 133, 138, 133, 126, 130, 135, 129, 141, 133, 139, 143, 137, 132, 144, 134, 139, 135, 150, 168, 137, 135, 134, 192, 139, 141, 132, 126, 125, 138, 123, 141, 118, 129, 136, 133, 137, 127, 134, 145, 133, 127, 143, 139, 142, 127, 135, 130, 134, 133, 142, 132, 116, 136, 133, 134, 157, 137, 136, 139, 130, 137, 125, 138, 134, 137, 139, 138, 135, 136, 112, 133, 136, 139, 141, 142, 121, 140, 135, 130, 133, 125, 137, 140, 132, 142, 140, 129, 140, 133, 133, 134, 137, 139, 130, 145, 136, 132, 132, 134, 136, 143, 134, 133, 140, 136, 136, 134, 130, 137, 147, 132, 133, 136, 137, 127, 137, 131, 134, 135, 143, 141, 132, 139, 135, 134, 140, 140, 138, 132, 138, 136, 137, 134, 132, 133, 133, 137, 134, 139, 136, 138, 140, 133, 134, 140, 142, 143, 134, 134, 138, 137, 130, 141, 142, 127, 134, 133, 131, 136, 132, 142, 134, 133, 121, 143, 134, 136, 139, 144, 134, 133, 136, 136, 137, 137, 138, 136, 124, 138, 122, 143, 132, 147, 145, 127, 139, 130, 144, 144, 137, 136, 135, 133, 143, 122, 135, 144, 128, 127, 145, 137, 136, 137, 133, 141, 136, 137, 148, 141, 140, 137, 149, 156, 146, 150, 143, 137, 148, 139, 134, 146, 144, 127, 136, 125, 145, 155, 124, 123, 136, 133, 142, 135, 121, 132, 139, 127, 140, 147, 130, 126, 127, 139, 121, 132, 148, 144, 138, 136, 133, 133, 136, 152, 144, 149, 135, 145, 140, 147, 124, 108, 133, 135, 130, 152, 130, 141, 140, 134, 128, 119, 148, 122, 122, 123, 132, 153, 148, 120, 138, 140, 133, 139, 131, 154, 139, 140, 138, 136, 132, 134, 126, 128, 131, 135, 138, 140, 141, 137, 130, 128, 132, 145, 141, 137, 124, 132, 138, 127, 137, 132, 136, 129, 132, 145, 133, 132, 108, 122, 128, 125, 132, 135, 137, 127, 139, 126, 139, 129, 136, 139, 129, 130, 144, 134, 137, 145, 138, 124, 137, 130, 142, 140, 138, 140, 134, 142, 135, 137, 135, 135, 139, 134, 142, 132, 128, 135, 134, 136, 139, 127, 122, 137, 140, 142, 150, 132, 148, 145, 140, 130, 126, 132, 138, 135, 142, 137, 143, 138, 144, 134, 136, 151, 130, 127, 154, 138, 148, 132, 131, 135, 144, 146, 137, 141, 138, 142, 129, 135, 138, 130, 135, 137, 132, 134, 135, 135, 130, 142, 144, 133, 132, 132, 164, 138, 143, 138, 131, 127, 140, 124, 143, 134, 145, 141, 143, 129, 138, 156, 149, 140, 137, 131, 144, 136, 129, 147, 125, 126, 135, 134, 138, 142, 126, 137, 140, 134, 134, 136, 136, 135, 136, 128, 146, 147, 123, 124, 131, 141, 149, 134, 135, 139, 132, 135, 142, 148, 144, 128, 124, 149, 137, 166, 142, 131, 139, 129, 137, 130, 132, 133, 137, 133, 151, 144, 129, 145, 149, 135, 140, 137, 130, 138, 127, 144, 131, 143, 120, 141, 132, 127, 155, 128, 136, 138, 141, 130, 139, 132, 135, 130, 148, 143, 155, 124, 130, 126, 134, 127, 132, 132, 138, 165, 125, 121, 135, 144, 131, 135, 152, 137, 152, 149, 124, 142, 134, 139, 132, 118, 124, 139, 130, 169, 128, 130, 127, 139, 131, 128, 135, 137, 133, 127, 122, 132, 133, 138, 132, 135, 151, 126, 139, 133, 136, 145, 128, 134, 128, 137, 108, 135, 109, 137, 147, 132, 139, 138, 141, 118, 127, 155, 122, 137, 138, 135, 130, 141, 157, 134, 130, 144, 137, 140, 142, 136, 149, 123, 144, 146, 135, 126, 133, 124, 129, 136, 125, 129, 133, 122, 148, 133, 144, 142, 139, 140, 142, 149, 144, 144, 128, 136, 139, 127, 130, 136, 117, 138, 142, 140, 137, 138, 138, 141, 134, 131, 134, 155, 131, 133, 131, 130, 133, 137, 143, 146, 133, 140, 139, 137, 136, 137, 136, 149, 145, 151, 123, 132, 138, 120, 145, 130, 136, 142, 135, 123, 136, 153, 129, 150, 120, 132, 137, 141, 132, 130, 132, 137, 140, 137, 140, 145, 128, 131, 127, 138, 144, 122, 133, 155, 138, 132, 139, 130, 137, 132, 134, 141, 133, 148, 138, 149, 143, 139, 128, 135, 132, 130, 115, 134, 135, 143, 132, 135, 133, 142, 142, 136, 135, 117, 142, 135, 136, 134, 132, 141, 133, 148, 133, 130, 136, 132, 137, 136, 139, 144, 142, 138, 136, 132, 133, 145, 139, 137, 136, 139, 130, 132, 133, 148, 139, 134, 135, 128, 135, 134, 116, 123, 136, 143, 135, 131, 143, 144, 140, 125, 133, 131, 132, 135, 141, 139, 136, 135, 130, 131, 144, 131, 135, 132, 138, 132, 133, 139, 146, 136, 137, 137, 131, 128, 147, 136, 132, 141, 131, 145, 131, 139, 133, 143, 142, 141, 129, 122, 135, 134, 144, 116, 144, 131, 116, 140, 143, 140, 131, 155, 136, 138, 130, 127, 140, 137, 140, 129, 136, 135, 135, 140, 141, 136, 135, 149, 129, 131, 131, 133, 137, 135, 140, 136, 137, 136, 139, 181, 134, 137, 87, 146, 143, 139, 132, 141, 131, 142, 135, 143, 142, 138, 152, 135, 136, 128, 140, 131, 134, 136, 134, 134, 136, 136, 137, 132, 142, 133, 133, 137, 134, 133, 142, 138, 139, 131, 131, 146, 134, 133, 139, 131, 131, 142, 146, 139, 149, 144, 141, 134, 134, 123, 145, 128, 136, 182, 133, 133, 136, 143, 134, 136, 137, 136, 131, 139, 132, 140, 127, 144, 133, 142, 135, 136, 134, 136, 133, 128, 139, 133, 136, 140, 142, 136, 130, 142, 121, 135, 138, 131, 132, 135, 144, 137, 138, 131, 130, 117, 142, 138, 136, 135, 139, 137, 137, 130, 141, 154, 131, 145, 135, 138, 132, 127, 134, 136, 134, 141, 135, 136, 138, 130, 137, 129, 147, 139, 137, 141, 141, 138, 146, 142, 137, 136, 137, 138, 134, 143, 133, 138, 133, 137, 137, 134, 137, 137, 139, 135, 133, 141, 141, 134, 143, 137, 138, 129, 138, 136, 140, 134, 137, 136, 139, 193, 134, 135, 140, 136, 134, 138, 137, 138, 141, 137, 143, 134, 135, 134, 133, 136, 141, 138, 132, 129, 134, 135, 144, 130, 141, 141, 137, 133, 137, 136, 139, 141, 147, 128, 136, 134, 139, 139, 135, 144, 137, 132, 122, 138, 185, 139, 119, 128, 129, 135, 137, 141, 136, 143, 137, 121, 146, 140, 137, 134, 135, 132, 134, 135, 138, 138, 135, 137, 137, 138, 129, 137, 132, 134, 135, 131, 128, 136, 135, 136, 139, 138, 139, 138, 147, 137, 136, 136, 115, 140, 130, 141, 139, 136, 139, 129, 142, 138, 139, 136, 139, 134, 136, 135, 130, 132, 133, 139, 128, 146, 133, 131, 133, 136, 142, 138, 150, 134, 137, 141, 137, 135, 137, 133, 148, 134, 133, 136, 140, 131, 137, 134, 135, 140, 129, 140, 134, 134, 133, 136, 138, 134, 133, 136, 140, 128, 133, 129, 139, 131, 126, 131, 132, 138, 133, 134, 139, 136, 137, 140, 136, 131, 133, 137, 137, 135, 136, 144, 141, 132, 133, 133, 140, 132, 149, 139, 135, 137, 117, 141, 132, 133, 138, 125, 133, 133, 136, 136, 138, 134, 135, 133, 117, 130, 143, 135, 127, 131, 137, 132, 138, 126, 129, 137, 130, 138, 132, 135, 124, 129, 133, 135, 132, 131, 133, 133, 158, 137, 146, 133, 124, 122, 134, 133, 146, 128, 133, 143, 131, 140, 135, 146, 131, 150, 133, 136, 143, 130, 149, 133, 141, 136, 129, 131, 133, 136, 107, 132, 150, 137, 142, 140, 130, 124, 122, 150, 132, 130, 135, 146, 134, 147, 131, 132, 156, 127, 144, 130, 138, 131, 139, 126, 133, 124, 143, 138, 126, 149, 141, 127, 120, 139, 136, 123, 142, 142, 130, 134, 128, 135, 138, 139, 119, 126, 127, 163, 133, 141, 136, 129, 137, 119, 135, 142, 135, 135, 143, 138, 146, 133, 136, 137, 135, 132, 153, 128, 132, 131, 145, 139, 147, 136, 135, 130, 134, 145, 136, 129, 124, 138, 125, 144, 124, 142, 133, 149, 142, 134, 133, 152, 148, 137, 136, 130, 135, 143, 139, 131, 141, 142, 114, 134, 144, 143, 126, 138, 121, 137, 138, 120, 141, 135, 137, 143, 136, 122, 138, 142, 131, 143, 124, 130, 142, 132, 128, 122, 130, 137, 140, 132, 130, 132, 137, 127, 143, 137, 134, 137, 138, 122, 138, 138, 131, 157, 134, 138, 129, 130, 133, 135, 140, 151, 140, 140, 124, 144, 127, 141, 136, 135, 133, 126, 126, 138, 137, 134, 135, 136, 131, 147, 125, 130, 137, 138, 137, 125, 134, 134, 128, 126, 125, 143, 142, 141, 137, 140, 137, 134, 146, 143, 129, 139, 149, 140, 138, 129, 131, 146, 134, 134, 133, 134, 136, 125, 143, 121, 137, 136, 127, 170, 143, 141, 128, 143, 124, 139, 137, 127, 120, 124, 135, 129, 116, 126, 128, 137, 139, 140, 122, 126, 144, 151, 133, 140, 146, 150, 137, 125, 129, 128, 133, 134, 133, 140, 129, 129, 124, 143, 141, 165, 135, 148, 132, 139, 114, 145, 141, 133, 135, 134, 127, 126, 134, 129, 134, 130, 138, 148, 130, 129, 143, 129, 123, 147, 133, 138, 145, 129, 128, 149, 131, 129, 117, 150, 141, 138, 145, 123, 132, 134, 132, 132, 146, 126, 132, 136, 119, 135, 128, 130, 152, 144, 137, 133, 139, 156, 135, 140, 127, 134, 142, 128, 136, 130, 130, 128, 137, 139, 141, 141, 130, 140, 135, 130, 138, 143, 144, 134, 129, 141, 133, 156, 122, 116, 134, 129, 141, 136, 154, 142, 138, 132, 138, 132, 129, 143, 132, 131, 127, 147, 147, 133, 140, 140, 131, 136, 143, 130, 149, 136, 138, 126, 135, 135, 139, 145, 125, 144, 142, 144, 146, 129, 136, 121, 124, 138, 135, 141, 141, 136, 128, 128, 121, 133, 127, 141, 126, 136, 139, 147, 134, 132, 136, 127, 121, 126, 133, 135, 152, 142, 139, 132, 139, 148, 144, 138, 150, 128, 132, 131, 138, 119, 130, 140, 128, 135, 140, 130, 129, 131, 123, 134, 143, 140, 143, 130, 138, 142, 123, 134, 137, 132, 140, 147, 136, 148, 132, 144, 138, 134, 119, 126, 129, 133, 133, 131, 135, 129, 126, 126, 132, 157, 134, 145, 136, 147, 126, 136, 127, 140, 141, 135, 136, 120, 144, 147, 140, 140, 152, 129, 136, 135, 135, 140, 123, 138, 151, 145, 116, 145, 133, 137, 143, 127, 124, 136, 145, 135, 144, 148, 133, 106, 139, 145, 150, 137, 155, 135, 137, 132, 136, 150, 139, 140, 130, 136, 146, 127, 130, 137, 162, 121, 146, 142, 142, 103, 146, 138, 108, 144, 134, 133, 138, 125, 126, 124, 130, 133, 134, 140, 129, 146, 126, 134, 135, 144, 142, 137, 127, 132, 137, 143, 140, 139, 135, 144, 136, 145, 140, 124, 125, 139, 137, 138, 116, 130, 140, 140, 143, 136, 142, 132, 143, 138, 135, 135, 147, 144, 147, 145, 159, 138, 150, 148, 151, 146, 124, 141, 146, 143, 83, 114, 137, 151, 147, 126, 142, 142, 141, 138, 142, 125, 124, 98, 137, 149, 122, 133, 133, 123, 141, 127, 120, 144, 138, 126, 232, 142, 121, 146, 140, 140, 139, 129, 156, 114, 139, 130, 143, 143, 155, 137, 124, 137, 141, 149, 140, 139, 136, 139, 138, 142, 136, 132, 149, 134, 130, 132, 139, 130, 121, 134, 142, 136, 152, 129, 134, 139, 132, 125, 133, 135, 152, 137, 135, 145, 119, 129, 138, 142, 135, 135, 175, 124, 131, 133, 141, 149, 148, 136, 136, 116, 110, 152, 122, 116, 134, 129, 152, 142, 132, 136, 122, 130, 150, 150, 124, 138, 149, 138, 130, 139, 114, 139, 129, 132, 140, 123, 131, 148, 137, 130, 129, 136, 148, 116, 137, 150, 133, 134, 149, 128, 143, 137, 131, 147, 149, 143, 135, 139, 137, 152, 144, 147, 144, 137, 131, 127, 146, 144, 140, 130, 125, 137, 135, 126, 131, 131, 131, 140, 141, 129, 138, 139, 132, 126, 148, 139, 130, 142, 109, 141, 142, 146, 130, 137, 145, 132, 140, 129, 138, 145, 128, 148, 129, 139, 134, 130, 131, 133, 145, 140, 148, 135, 146, 124, 146, 133, 130, 134, 140, 142, 135, 139, 128, 127, 161, 134, 129, 132, 134, 128, 127, 69, 133, 133, 137, 136, 135, 127, 127, 142, 138, 128, 177, 149, 117, 143, 137, 151, 131, 143, 137, 138, 133, 146, 149, 125, 134, 141, 141, 122, 153, 134, 136, 138, 120, 147, 208, 129, 136, 123, 151, 144, 133, 139, 141, 130, 135, 127, 122, 167, 115, 134, 136, 132, 142, 129, 128, 144, 136, 132, 139, 139, 127, 134, 144, 136, 137, 132, 128, 142, 135, 131, 125, 126, 152, 128, 142, 132, 137, 146, 144, 138, 140, 132, 131, 131, 142, 206, 140, 134, 130, 135, 126, 132, 129, 132, 145, 133, 133, 141, 134, 123, 141, 138, 123, 149, 123, 130, 117, 148, 187, 139, 143, 133, 147, 150, 145, 141, 134, 144, 148, 144, 138, 134, 141, 145, 133, 105, 134, 136, 132, 120, 145, 149, 146, 151, 127, 131, 117, 140, 155, 131, 136, 130, 135, 141, 136, 140, 145, 138, 132, 139, 142, 126, 132, 139, 144, 136, 146, 122, 145, 131, 136, 145, 142, 139, 116, 119, 133, 141, 136, 145, 143, 131, 131, 127, 127, 130, 125, 133, 131, 123, 138, 136, 123, 128, 158, 140, 142, 139, 127, 124, 139, 156, 124, 125, 136, 144, 122, 137, 126, 136, 139, 145, 126, 133, 129, 131, 135, 116, 136, 123, 120, 132, 148, 130, 137, 138, 139, 135, 133, 146, 136, 144, 163, 149, 135, 137, 136, 142, 139, 129, 137, 130, 125, 134, 129, 128, 147, 128, 124, 162, 118, 132, 129, 126, 134, 139, 143, 129, 133, 133, 144, 123, 140, 139, 132, 141, 120, 136, 130, 127, 142, 134, 138, 141, 124, 120, 131, 128, 128, 146, 141, 124, 126, 146, 137, 134, 139, 142, 155, 124, 104, 136, 130, 140, 108, 147, 144, 151, 131, 143, 144, 123, 134, 118, 135, 141, 170, 149, 134, 133, 135, 146, 158, 133, 134, 129, 134, 135, 134, 110, 136, 126, 143, 127, 116, 150, 140, 128, 142, 126, 128, 126, 140, 139, 128, 140, 117, 139, 136, 134, 117, 134, 120, 117, 130, 138, 128, 152, 145, 120, 120, 159, 131, 133, 128, 133, 126, 131, 148, 132, 136, 130, 131, 133, 137, 135, 132, 207, 157, 124, 145, 139, 143, 125, 140, 124, 135, 150, 124, 134, 136, 154, 133, 123, 143, 130, 139, 117, 127, 129, 120, 130, 128, 145, 141, 140, 133, 133, 141, 157, 136, 135, 136, 121, 137, 130, 143, 128, 131, 131, 123, 128, 128, 120, 137, 125, 151, 145, 139, 133, 118, 136, 157, 125, 125, 124, 144, 146, 137, 128, 127, 129, 143, 141, 131, 155, 134, 130, 136, 141, 132, 134, 126, 136, 137, 121, 133, 138, 135, 142, 148, 123, 123, 153, 122, 128, 129, 124, 132, 130, 117, 133, 134, 138, 141, 135, 135, 134, 126, 134, 152, 135, 156, 129, 144, 140, 125, 125, 163, 146, 126, 139, 131, 132, 136, 149, 136, 137, 128, 147, 140, 141, 152, 132, 128, 116, 150, 125, 105, 140, 138, 143, 135, 137, 136, 133, 134, 145, 154, 153, 148, 136, 145, 133, 137, 125, 132, 121, 142, 153, 108, 118, 126, 153, 127, 135, 140, 137, 125, 124, 124, 123, 145, 127, 142, 136, 124, 158, 137, 157, 123, 130, 126, 134, 135, 133, 148, 133, 132, 125, 113, 149, 136, 138, 137, 149, 141, 131, 141, 118, 137, 126, 142, 136, 111, 129, 134, 136, 134, 136, 130, 138, 123, 134, 135, 133, 149, 137, 125, 118, 134, 133, 142, 127, 156, 136, 126, 144, 130, 151, 119, 127, 132, 121, 150, 130, 135, 146, 134, 132, 151, 129, 130, 138, 132, 136, 145, 135, 158, 174, 134, 142, 122, 134, 124, 134, 127, 130, 130, 145, 137, 132, 138, 136, 127, 150, 134, 126, 132, 127, 137, 127, 122, 144, 131, 123, 131, 136, 125, 163, 140, 145, 122, 132, 125, 133, 122, 123, 125, 138, 116, 127, 138, 133, 136, 129, 139, 148, 141, 135, 122, 127, 131, 142, 146, 132, 142, 148, 146, 140, 135, 152, 143, 143, 128, 134, 131, 138, 135, 130, 130, 122, 140, 127, 149, 135, 130, 136, 135, 125, 134, 137, 142, 124, 142, 129, 133, 127, 171, 132, 145, 134, 141, 142, 140, 133, 132, 133, 148, 135, 152, 131, 141, 116, 131, 138, 132, 134, 124, 144, 138, 123, 146, 138, 131, 139, 136, 137, 126, 118, 129, 137, 131, 127, 100, 140, 117, 133, 145, 131, 148, 106, 141, 133, 140, 134, 117, 140, 124, 142, 143, 133, 133, 146, 109, 143, 136, 131, 150, 129, 134, 149, 153, 132, 142, 136, 125, 136, 166, 122, 118, 154, 138, 132, 130, 126, 120, 130, 115, 156, 134, 140, 146, 142, 157, 134, 126, 160, 124, 136, 131, 136, 143, 128, 128, 139, 135, 142, 146, 143, 137, 139, 138, 120, 133, 133, 141, 133, 127, 147, 132, 146, 130, 123, 135, 135, 145, 148, 145, 140, 134, 132, 123, 132, 145, 135, 135, 140, 134, 127, 134, 125, 133, 133, 140, 131, 137, 143, 128, 132, 140, 132, 139, 138, 138, 144, 150, 128, 156, 128, 136, 122, 144, 129, 131, 142, 137, 124, 128, 136, 138, 136, 142, 127, 137, 130, 135, 136, 138, 141, 108, 143, 128, 147, 140, 133, 132, 134, 141, 142, 132, 145, 140, 146, 140, 139, 124, 139, 139, 132, 136, 133, 145, 139, 140, 143, 129, 144, 136, 139, 129, 136, 130, 140, 126, 135, 128, 117, 148, 147, 137, 139, 129, 144, 127, 123, 138, 135, 133, 139, 132, 141, 140, 138, 133, 126, 140, 144, 146, 134, 134, 128, 132, 126, 133, 142, 129, 147, 135, 152, 136, 126, 144, 127, 145, 125, 129, 136, 142, 143, 143, 152, 118, 141, 136, 128, 121, 139, 136, 131, 137, 138, 126, 140, 137, 137, 147, 129, 144, 136, 149, 125, 144, 145, 137, 132, 135, 133, 140, 133, 127, 134, 135, 130, 142, 149, 145, 135, 132, 132, 126, 145, 132, 162, 136, 137, 149, 128, 128, 133, 131, 138, 138, 126, 131, 140, 118, 142, 135, 130, 137, 131, 138, 128, 127, 125, 128, 135, 137, 134, 148, 135, 147, 151, 140, 132, 117, 143, 133, 133, 144, 120, 127, 131, 125, 143, 136, 151, 139, 131, 116, 140, 140, 142, 125, 128, 129, 133, 134, 129, 145, 135, 131, 143, 138, 163, 124, 156, 131, 142, 129, 121, 145, 124, 125, 152, 135, 129, 139, 136, 128, 140, 142, 126, 135, 142, 112, 108, 127, 131, 146, 133, 140, 148, 133, 145, 134, 138, 123, 139, 146, 140, 128, 123, 139, 129, 143, 134, 138, 142, 130, 140, 128, 131, 128, 131, 121, 128, 141, 133, 146, 128, 145, 148, 141, 134, 129, 140, 130, 149, 138, 141, 131, 128, 148, 128, 141, 140, 129, 140, 134, 143, 133, 124, 136, 140, 138, 136, 132, 127, 138, 127, 146, 147, 134, 136, 138, 140, 143, 138, 141, 141, 138, 151, 133, 131, 106, 150, 124, 144, 140, 137, 141, 124, 138, 136, 130, 128, 143, 141, 119, 136, 159, 148, 128, 138, 123, 151, 140, 135, 142, 137, 137, 139, 153, 124, 134, 125, 130, 133, 150, 132, 136, 142, 136, 129, 129, 140, 118, 146, 118, 134, 132, 144, 131, 127, 133, 130, 130, 128, 144, 137, 137, 135, 132, 135, 142, 134, 137, 131, 128, 154, 135, 135, 144, 135, 128, 127, 132, 141, 133, 134, 140, 182, 132, 147, 132, 127, 122, 135, 133, 136, 137, 125, 143, 126, 131, 130, 129, 127, 142, 127, 140, 125, 135, 129, 136, 134, 152, 139, 141, 145, 144, 137, 125, 137, 134, 123, 167, 125, 128, 136, 134, 137, 140, 137, 135, 141, 135, 131, 105, 138, 122, 134, 143, 126, 123, 133, 127, 131, 139, 127, 142, 129, 144, 134, 142, 134, 131, 134, 138, 126, 144, 129, 134, 142, 138, 132, 136, 126, 140, 132, 133, 142, 134, 130, 138, 133, 129, 118, 139, 127, 143, 136, 132, 122, 137, 135, 144, 137, 126, 134, 134, 130, 136, 148, 131, 147, 136, 134, 134, 141, 143, 142, 139, 137, 134, 142, 136, 119, 153, 140, 146, 130, 145, 143, 116, 139, 122, 133, 146, 138, 127, 139, 145, 138, 130, 134, 152, 147, 134, 134, 131, 137, 147, 127, 129, 124, 119, 125, 146, 141, 139, 127, 133, 149, 123, 141, 118, 140, 141, 129, 139, 132, 129, 142, 137, 127, 129, 133, 155, 135, 129, 136, 134, 145, 137, 130, 153, 141, 130, 134, 131, 135, 136, 130, 141, 135, 134, 127, 133, 138, 126, 137, 140, 123, 147, 132, 139, 140, 116, 132, 137, 140, 139, 173, 136, 134, 135, 134, 135, 141, 128, 130, 137, 135, 138, 128, 131, 129, 128, 136, 141, 153, 137, 148, 133, 129, 133, 137, 161, 140, 149, 128, 136, 128, 133, 150, 138, 129, 122, 132, 143, 132, 148, 141, 131, 131, 129, 139, 144, 121, 141, 137, 141, 130, 138, 147, 136, 142, 137, 130, 151, 137, 138, 132, 125, 128, 126, 138, 109, 138, 147, 138, 135, 138, 120, 141, 139, 131, 148, 132, 141, 148, 139, 133, 123, 135, 129, 143, 133, 144, 126, 159, 137, 139, 133, 136, 139, 130, 133, 151, 134, 134, 157, 123, 134, 129, 146, 150, 129, 143, 142, 128, 128, 148, 136, 126, 147, 144, 134, 140, 138, 141, 138, 138, 151, 146, 126, 136, 137, 140, 144, 136, 123, 163, 132, 141, 122, 142, 132, 133, 145, 131, 133, 149, 137, 147, 126, 131, 142, 136, 151, 138, 127, 135, 139, 148, 132, 118, 138, 145, 143, 137, 135, 147, 142, 129, 125, 144, 149, 129, 136, 139, 147, 128, 128, 134, 147, 136, 131, 134, 134, 134, 139, 121, 102, 159, 133, 120, 132, 128, 150, 139, 136, 144, 141, 131, 133, 149, 137, 141, 134, 137, 145, 130, 134, 149, 133, 137, 126, 124, 123, 130, 142, 136, 133, 117, 144, 136, 138, 142, 147, 145, 127, 139, 130, 127, 135, 143, 137, 139, 152, 139, 133, 130, 142, 131, 135, 116, 142, 124, 137, 139, 132, 128, 126, 146, 148, 147, 124, 132, 128, 122, 135, 134, 129, 140, 132, 140, 125, 140, 132, 132, 121, 132, 151, 133, 128, 136, 134, 140, 136, 131, 159, 125, 118, 139, 144, 130, 132, 126, 141, 132, 137, 128, 133, 139, 132, 131, 139, 132, 150, 139, 123, 134, 139, 132, 126, 131, 134, 129, 133, 141, 145, 135, 136, 131, 117, 133, 120, 149, 132, 154, 141, 135, 132, 125, 123, 141, 127, 128, 141, 143, 152, 115, 142, 130, 117, 123, 126, 141, 150, 134, 131, 144, 134, 135, 122, 123, 132, 148, 135, 133, 138, 135, 126, 145, 139, 125, 128, 143, 142, 127, 134, 150, 126, 135, 133, 150, 126, 118, 126, 133, 137, 136, 143, 134, 146, 137, 134, 138, 136, 162, 144, 139, 144, 135, 146, 135, 135, 132, 144, 122, 139, 133, 126, 151, 127, 136, 128, 144, 137, 130, 150, 145, 136, 137, 134, 137, 136, 143, 144, 147, 125, 135, 146, 140, 141, 140, 137, 130, 143, 147, 141, 149, 133, 110, 124, 129, 131, 133, 138, 138, 135, 130, 128, 137, 135, 136, 132, 126, 125, 120, 141, 127, 157, 141, 135, 132, 124, 140, 144, 125, 139, 130, 129, 133, 133, 141, 129, 127, 138, 150, 148, 133, 133, 127, 132, 129, 126, 136, 133, 144, 133, 137, 126, 141, 151, 132, 129, 130, 141, 146, 139, 115, 130, 145, 133, 127, 142, 133, 143, 127, 140, 118, 151, 131, 139, 143, 127, 152, 132, 142, 117, 127, 125, 135, 132, 134, 134, 145, 132, 132, 131, 122, 117, 156, 136, 141, 133, 130, 148, 134, 125, 133, 131, 140, 132, 134, 140, 129, 131, 129, 126, 129, 138, 130, 147, 140, 141, 124, 138, 147, 145, 118, 128, 132, 128, 129, 145, 153, 142, 151, 137, 139, 136, 138, 124, 140, 135, 134, 135, 151, 138, 139, 145, 138, 140, 134, 149, 133, 142, 125, 132, 136, 134, 135, 128, 136, 127, 136, 139, 136, 123, 138, 141, 155, 141, 143, 144, 150, 134, 134, 123, 139, 133, 129, 122, 136, 129, 131, 137, 151, 132, 125, 127, 134, 130, 137, 149, 131, 132, 142, 133, 149, 128, 141, 133, 136, 144, 123, 136, 131, 143, 138, 130, 134, 138, 130, 121, 131, 131, 136, 139, 134, 121, 141, 134, 134, 139, 142, 131, 139, 129, 146, 134, 130, 136, 136, 126, 132, 145, 135, 132, 129, 131, 142, 134, 144, 145, 139, 134, 155, 137, 135, 119, 135, 120, 134, 131, 134, 137, 127, 154, 137, 140, 152, 141, 137, 126, 128, 142, 128, 131, 137, 124, 152, 132, 156, 124, 120, 133, 138, 145, 135, 127, 124, 136, 129, 141, 143, 134, 158, 131, 123, 144, 122, 112, 138, 138, 122, 162, 126, 141, 132, 132, 147, 131, 136, 139, 137, 127, 123, 135, 148, 119, 129, 137, 122, 129, 123, 118, 143, 128, 134, 139, 137, 134, 151, 131, 149, 132, 145, 145, 137, 131, 146, 135, 133, 140, 133, 127, 134, 123, 137, 137, 136, 136, 145, 110, 128, 142, 139, 135, 130, 161, 112, 140, 153, 136, 129, 143, 134, 142, 118, 129, 138, 144, 142, 141, 134, 144, 140, 131, 133, 155, 134, 134, 137, 126, 137, 123, 124, 123, 130, 121, 135, 152, 129, 121, 146, 130, 139, 120, 135, 132, 137, 139, 142, 129, 130, 141, 124, 134, 130, 128, 139, 132, 122, 139, 142, 134, 148, 131, 132, 136, 128, 151, 140, 146, 145, 128, 153, 146, 145, 131, 134, 128, 134, 138, 139, 139, 124, 131, 131, 132, 133, 138, 136, 132, 127, 130, 124, 141, 145, 131, 144, 134, 139, 137, 113, 131, 139, 132, 144, 141, 147, 137, 134, 126, 136, 122, 143, 132, 116, 143, 134, 132, 131, 134, 138, 138, 135, 138, 135, 143, 141, 145, 136, 138, 135, 151, 145, 131, 130, 124, 136, 130, 139, 144, 137, 131, 119, 124, 139, 151, 146, 141, 137, 121, 140, 142, 136, 144, 113, 119, 115, 131, 141, 136, 139, 138, 125, 127, 130, 123, 130, 127, 134, 116, 120, 119, 128, 139, 129, 130, 136, 149, 141, 144, 151, 138, 135, 143, 138, 142, 135, 140, 129, 145, 127, 162, 146, 130, 127, 129, 132, 131, 128, 135, 130, 128, 148, 134, 121, 135, 138, 146, 138, 134, 127, 134, 122, 128, 144, 138, 134, 133, 132, 136, 145, 135, 142, 145, 131, 141, 136, 127, 119, 132, 148, 138, 137, 140, 140, 136, 137, 124, 120, 129, 136, 138, 128, 138, 147, 129, 117, 118, 134, 133, 134, 138, 135, 138, 133, 138, 133, 141, 143, 140, 143, 136, 135, 132, 146, 114, 137, 135, 139, 127, 138, 135, 146, 140, 145, 135, 131, 130, 134, 146, 135, 141, 153, 130, 134, 148, 155, 127, 107, 112, 140, 128, 142, 121, 126, 141, 134, 127, 137, 141, 126, 146, 122, 133, 137, 127, 130, 128, 140, 137, 132, 139, 135, 134, 126, 134, 132, 135, 134, 140, 122, 148, 139, 146, 133, 142, 126, 150, 147, 136, 143, 145, 126, 124, 108, 133, 146, 134, 134, 139, 130, 136, 139, 127, 153, 145, 137, 129, 157, 139, 130, 141, 138, 140, 136, 129, 130, 133, 135, 128, 130, 138, 133, 130, 131, 131, 132, 143, 142, 145, 139, 126, 148, 130, 138, 139, 145, 123, 127, 137, 140, 127, 135, 147, 139, 142, 135, 140, 137, 140, 138, 133, 133, 135, 132, 132, 131, 138, 138, 129, 119, 132, 142, 149, 148, 144, 140, 126, 134, 136, 152, 130, 130, 132, 130, 143, 133, 136, 141, 144, 132, 129, 135, 123, 138, 144, 139, 129, 123, 132, 134, 143, 140, 123, 144, 133, 139, 135, 120, 141, 137, 144, 136, 129, 143, 148, 134, 137, 132, 135, 147, 132, 147, 147, 148, 130, 137, 115, 146, 137, 144, 131, 124, 126, 137, 134, 134, 127, 138, 127, 136, 137, 129, 134, 137, 138, 132, 132, 151, 128, 123, 132, 112, 136, 123, 104, 132, 142, 144, 140, 135, 140, 146, 139, 112, 138, 141, 147, 114, 136, 141, 130, 135, 129, 128, 129, 132, 120, 136, 144, 135, 146, 130, 146, 145, 137, 134, 135, 123, 139, 154, 138, 135, 155, 145, 136, 120, 115, 136, 122, 145, 136, 136, 134, 150, 128, 143, 133, 127, 134, 135, 124, 117, 102, 134, 149, 141, 124, 150, 134, 132, 142, 135, 121, 139, 136, 118, 142, 131, 144, 129, 121, 140, 148, 142, 144, 138, 137, 128, 130, 136, 143, 127, 139, 135, 132, 132, 133, 135, 136, 133, 146, 139, 137, 127, 136, 143, 133, 134, 128, 126, 137, 128, 118, 133, 129, 150, 132, 131, 130, 131, 135, 137, 137, 135, 141, 127, 136, 121, 144, 133, 146, 143, 126, 135, 129, 139, 141, 143, 133, 128, 135, 134, 141, 137, 146, 147, 141, 137, 121, 138, 146, 136, 134, 137, 141, 130, 126, 130, 142, 138, 131, 145, 123, 129, 143, 144, 135, 135, 149, 143, 143, 140, 137, 135, 130, 140, 137, 138, 140, 145, 143, 147, 144, 127, 137, 142, 141, 147, 139, 141, 128, 129, 135, 144, 127, 149, 134, 129, 139, 134, 137, 133, 140, 143, 143, 141, 140, 135, 144, 143, 142, 114, 133, 127, 123, 140, 134, 136, 137, 131, 135, 147, 128, 139, 146, 131, 132, 135, 126, 138, 143, 153, 147, 129, 136, 132, 142, 139, 138, 121, 140, 132, 133, 139, 139, 153, 133, 132, 134, 132, 136, 140, 140, 151, 135, 142, 127, 144, 138, 127, 139, 134, 136, 137, 111, 136, 127, 139, 142, 127, 129, 135, 134, 131, 131, 130, 143, 136, 136, 130, 135, 148, 135, 128, 135, 133, 140, 123, 136, 141, 139, 142, 144, 142, 146, 144, 132, 136, 133, 138, 130, 128, 127, 132, 136, 139, 131, 141, 131, 134, 136, 134, 145, 128, 136, 136, 138, 132, 132, 133, 157, 139, 142, 136, 141, 133, 138, 140, 132, 141, 137, 151, 127, 149, 138, 137, 125, 158, 141, 130, 132, 130, 136, 134, 138, 137, 134, 148, 144, 115, 137, 129, 134, 141, 138, 136, 124, 132, 141, 120, 140, 136, 156, 142, 133, 134, 134, 133, 140, 144, 135, 141, 126, 143, 139, 141, 132, 134, 145, 134, 136, 136, 127, 148, 140, 158, 152, 133, 136, 136, 126, 154, 143, 136, 148, 143, 135, 128, 142, 127, 145, 149, 140, 138, 133, 151, 129, 146, 138, 145, 144, 135, 140, 123, 147, 144, 133, 140, 135, 143, 132, 141, 129, 141, 128, 146, 136, 156, 124, 131, 136, 118, 140, 133, 132, 141, 138, 138, 143, 145, 125, 127, 135, 148, 138, 148, 143, 127, 134, 127, 124, 138, 148, 135, 143, 121, 135, 132, 137, 129, 134, 158, 129, 144, 134, 134, 133, 131, 130, 149, 127, 139, 130, 134, 129, 124, 141, 127, 135, 136, 131, 137, 137, 142, 114, 126, 140, 135, 140, 140, 140, 131, 132, 126, 137, 132, 152, 144, 141, 147, 123, 143, 143, 131, 156, 130, 132, 130, 142, 129, 137, 108, 131, 131, 122, 154, 144, 139, 134, 135, 121, 139, 130, 130, 137, 137, 135, 130, 137, 143, 138, 145, 139, 138, 140, 143, 133, 139, 122, 135, 128, 136, 141, 146, 143, 130, 135, 142, 129, 133, 143, 125, 130, 130, 128, 130, 133, 136, 120, 150, 136, 139, 130, 136, 143, 145, 137, 135, 148, 135, 140, 140, 139, 130, 157, 131, 147, 126, 147, 128, 141, 133, 133, 129, 123, 143, 148, 139, 144, 138, 144, 132, 120, 149, 149, 136, 146, 139, 134, 133, 124, 194, 135, 132, 107, 132, 130, 131, 130, 132, 146, 131, 116, 134, 147, 138, 138, 124, 121, 136, 131, 143, 129, 134, 123, 135, 135, 132, 141, 120, 138, 105, 132, 117, 133, 147, 126, 137, 147, 131, 133, 127, 133, 117, 138, 143, 133, 140, 136, 136, 138, 118, 133, 131, 134, 128, 145, 153, 127, 143, 113, 150, 133, 119, 135, 148, 132, 131, 141, 119, 136, 140, 131, 146, 127, 137, 137, 139, 156, 149, 124, 138, 129, 137, 136, 125, 146, 126, 143, 127, 127, 142, 166, 131, 136, 147, 128, 139, 123, 136, 136, 142, 135, 139, 157, 128, 136, 136, 140, 130, 125, 132, 120, 126, 140, 138, 149, 131, 131, 141, 132, 132, 138, 132, 124, 133, 133, 138, 127, 137, 136, 135, 132, 139, 119, 144, 133, 131, 137, 135, 133, 125, 142, 123, 133, 130, 127, 146, 147, 128, 144, 139, 133, 138, 126, 128, 145, 139, 134, 146, 130, 136, 135, 135, 153, 142, 137, 129, 137, 149, 125, 149, 138, 135, 124, 127, 126, 132, 143, 131, 131, 131, 142, 118, 145, 142, 136, 122, 127, 137, 132, 141, 130, 137, 147, 146, 138, 146, 135, 136, 128, 137, 138, 134, 130, 120, 134, 144, 155, 138, 128, 139, 148, 133, 149, 131, 136, 129, 145, 129, 139, 132, 128, 130, 130, 142, 141, 137, 142, 131, 149, 125, 136, 129, 150, 135, 137, 127, 139, 135, 128, 134, 128, 136, 131, 130, 132, 153, 132, 127, 131, 118, 119, 131, 132, 159, 140, 138, 125, 123, 144, 148, 146, 134, 133, 135, 141, 127, 145, 135, 129, 133, 129, 139, 120, 125, 141, 118, 136, 159, 140, 132, 129, 140, 136, 125, 129, 127, 142, 147, 137, 132, 145, 142, 125, 154, 128, 137, 131, 131, 134, 136, 133, 150, 132, 97, 127, 138, 130, 138, 139, 128, 148, 143, 116, 135, 122, 139, 146, 129, 138, 140, 122, 130, 132, 138, 137, 129, 134, 141, 119, 138, 132, 137, 125, 136, 132, 124, 138, 134, 136, 127, 143, 109, 124, 138, 172, 123, 138, 131, 138, 122, 136, 134, 123, 137, 135, 114, 155, 136, 141, 133, 138, 168, 130, 143, 147, 126, 142, 149, 147, 143, 129, 144, 138, 137, 135, 150, 137, 130, 132, 126, 137, 136, 129, 124, 128, 137, 115, 144, 136, 122, 128, 123, 137, 144, 125, 131, 143, 153, 135, 142, 145, 134, 131, 138, 129, 142, 144, 142, 127, 132, 142, 116, 133, 129, 141, 135, 146, 136, 139, 132, 134, 114, 148, 139, 135, 135, 122, 140, 133, 145, 125, 133, 135, 142, 139, 131, 151, 130, 139, 139, 124, 137, 147, 138, 144, 138, 140, 143, 130, 149, 143, 147, 127, 138, 137, 138, 126, 127, 127, 137, 125, 138, 133, 142, 134, 144, 136, 131, 129, 121, 146, 140, 127, 133, 141, 139, 129, 134, 144, 137, 137, 131, 157, 126, 144, 136, 133, 116, 128, 126, 128, 127, 130, 133, 133, 133, 132, 133, 139, 143, 118, 134, 153, 110, 126, 128, 125, 122, 136, 130, 140, 143, 154, 146, 155, 131, 132, 134, 145, 113, 147, 143, 133, 145, 127, 152, 141, 149, 115, 138, 150, 128, 117, 128, 148, 139, 148, 114, 132, 165, 141, 134, 132, 131, 131, 131, 144, 122, 122, 138, 126, 127, 133, 141, 124, 125, 136, 134, 139, 138, 135, 128, 152, 122, 134, 130, 153, 110, 130, 116, 144, 141, 144, 145, 123, 113, 133, 141, 150, 152, 134, 135, 146, 133, 128, 116, 133, 132, 129, 163, 134, 131, 138, 132, 138, 150, 106, 127, 137, 125, 134, 127, 115, 124, 133, 142, 132, 112, 145, 127, 140, 135, 115, 142, 126, 124, 123, 123, 145, 160, 137, 140, 123, 132, 149, 135, 132, 99, 133, 131, 131, 132, 146, 145, 149, 144, 148, 106, 148, 130, 146, 133, 127, 138, 121, 128, 126, 136, 123, 137, 126, 126, 108, 136, 134, 126, 150, 135, 136, 138, 113, 148, 130, 160, 138, 133, 136, 126, 128, 120, 120, 151, 161, 134, 135, 124, 131, 162, 146, 130, 125, 134, 131, 128, 143, 146, 129, 130, 138, 131, 135, 153, 137, 131, 126, 134, 119, 150, 135, 139, 137, 126, 115, 143, 119, 140, 135, 131, 154, 128, 143, 149, 135, 129, 138, 127, 130, 144, 156, 126, 140, 140, 120, 139, 137, 139, 124, 127, 139, 173, 132, 149, 129, 133, 145, 142, 137, 114, 160, 133, 136, 128, 114, 134, 139, 122, 129, 146, 143, 133, 132, 125, 134, 130, 141, 114, 99, 136, 149, 120, 141, 157, 135, 121, 142, 131, 147, 125, 131, 137, 137, 126, 122, 113, 128, 121, 141, 132, 128, 145, 129, 132, 133, 133, 114, 132, 131, 138, 150, 144, 149, 150, 147, 108, 131, 131, 135, 147, 141, 134, 138, 134, 144, 135, 124, 118, 143, 131, 139, 144, 126, 147, 130, 122, 132, 135, 141, 132, 140, 130, 144, 128, 139, 178, 155, 133, 131, 113, 148, 141, 147, 129, 154, 134, 129, 140, 133, 121, 144, 130, 127, 140, 148, 139, 162, 132, 133, 146, 143, 117, 125, 128, 141, 172, 126, 120, 139, 128, 167, 140, 134, 158, 116, 144, 128, 131, 125, 137, 150, 127, 138, 145, 139, 130, 130, 126, 129, 116, 135, 149, 138, 118, 125, 132, 141, 132, 188, 143, 151, 135, 125, 138, 121, 121, 129, 123, 125, 140, 113, 151, 148, 131, 149, 139, 136, 131, 137, 123, 134, 137, 130, 137, 134, 140, 148, 136, 130, 131, 115, 127, 127, 139, 139, 152, 141, 131, 128, 138, 137, 124, 146, 142, 136, 119, 133, 143, 132, 125, 136, 153, 138, 121, 136, 131, 133, 136, 134, 148, 141, 126, 126, 99, 135, 132, 157, 146, 147, 128, 136, 133, 139, 143, 134, 142, 129, 131, 131, 134, 132, 134, 143, 126, 112, 138, 127, 127, 116, 131, 139, 136, 139, 126, 139, 125, 126, 180, 124, 133, 133, 116, 111, 152, 125, 146, 119, 137, 116, 137, 129, 145, 138, 139, 114, 107, 129, 125, 131, 131, 126, 139, 151, 135, 120, 113, 116, 129, 140, 135, 132, 139, 126, 154, 137, 117, 125, 123, 146, 141, 135, 145, 132, 128, 129, 154, 158, 125, 150, 134, 134, 145, 125, 132, 131, 128, 136, 129, 165, 151, 133, 132, 132, 127, 130, 134, 131, 130, 141, 147, 145, 130, 140, 139, 139, 129, 136, 161, 145, 135, 134, 139, 138, 146, 115, 92, 125, 130, 138, 135, 157, 134, 135, 127, 130, 143, 143, 139, 149, 150, 137, 131, 124, 151, 131, 132, 121, 150, 139, 126, 135, 143, 133, 142, 162, 154, 138, 133, 136, 128, 125, 137, 148, 141, 121, 128, 129, 137, 139, 144, 152, 143, 121, 123, 125, 135, 119, 135, 130, 140, 131, 138, 136, 142, 109, 137, 135, 122, 134, 131, 147, 124, 136, 148, 133, 144, 128, 124, 118, 144, 141, 148, 135, 146, 121, 144, 148, 140, 115, 145, 131, 137, 135, 134, 151, 126, 180, 137, 136, 126, 135, 135, 127, 146, 118, 128, 142, 129, 108, 150, 130, 138, 111, 107, 126, 134, 145, 137, 141, 124, 128, 130, 142, 145, 121, 136, 132, 145, 136, 140, 140, 120, 146, 136, 139, 140, 139, 141, 135, 128, 134, 123, 139, 128, 139, 129, 132, 134, 133, 146, 126, 129, 134, 110, 139, 145, 143, 142, 132, 145, 132, 170, 152, 148, 130, 129, 150, 140, 133, 135, 144, 137, 127, 113, 131, 133, 130, 133, 127, 136, 138, 131, 147, 140, 122, 146, 161, 127, 133, 134, 137, 142, 148, 133, 134, 139, 152, 146, 137, 155, 126, 146, 144, 123, 129, 118, 124, 129, 129, 126, 150, 122, 145, 159, 112, 136, 129, 149, 129, 131, 132, 136, 154, 132, 130, 142, 136, 142, 136, 138, 134, 130, 136, 138, 157, 136, 136, 142, 126, 132, 142, 137, 129, 129, 136, 113, 134, 146, 129, 133, 122, 144, 137, 144, 151, 140, 123, 145, 138, 143, 130, 134, 138, 143, 145, 128, 140, 113, 140, 134, 148, 134, 142, 129, 149, 134, 128, 131, 142, 131, 170, 140, 129, 118, 126, 142, 125, 137, 120, 143, 141, 136, 134, 144, 108, 132, 136, 116, 126, 132, 110, 128, 126, 133, 140, 131, 135, 134, 130, 147, 149, 137, 148, 135, 136, 125, 134, 131, 122, 140, 136, 109, 133, 142, 169, 132, 147, 128, 136, 137, 128, 141, 148, 129, 133, 155, 135, 133, 130, 127, 133, 144, 130, 124, 138, 140, 133, 140, 144, 135, 136, 121, 141, 134, 139, 133, 127, 127, 126, 129, 140, 133, 141, 135, 140, 138, 128, 148, 152, 140, 139, 139, 133, 125, 140, 127, 129, 112, 128, 144, 127, 129, 139, 126, 145, 116, 116, 129, 127, 133, 132, 145, 135, 137, 143, 145, 131, 144, 122, 137, 132, 144, 128, 134, 128, 129, 123, 165, 145, 133, 125, 130, 128, 133, 127, 125, 136, 140, 140, 127, 120, 127, 121, 124, 106, 148, 139, 136, 122, 131, 141, 133, 129, 131, 138, 136, 146, 143, 134, 131, 141, 132, 139, 130, 134, 133, 133, 128, 144, 134, 131, 130, 140, 143, 131, 170, 139, 115, 133, 132, 136, 137, 122, 130, 138, 139, 122, 137, 136, 118, 122, 125, 144, 149, 129, 139, 141, 135, 119, 131, 134, 134, 144, 137, 139, 130, 138, 135, 130, 127, 151, 140, 142, 137, 140, 133, 135, 140, 136, 140, 144, 134, 125, 140, 147, 133, 138, 137, 141, 136, 125, 141, 135, 128, 125, 132, 140, 146, 144, 136, 137, 129, 147, 131, 137, 131, 141, 138, 132, 134, 130, 135, 133, 136, 129, 142, 134, 136, 134, 139, 137, 126, 133, 134, 151, 145, 169, 138, 148, 136, 147, 137, 138, 138, 132, 135, 163, 130, 141, 144, 141, 141, 139, 135, 149, 131, 127, 143, 125, 135, 132, 124, 127, 124, 132, 134, 129, 141, 132, 133, 153, 116, 140, 135, 144, 138, 129, 130, 111, 123, 141, 130, 136, 136, 129, 133, 130, 145, 143, 131, 136, 127, 144, 130, 140, 135, 145, 120, 162, 138, 135, 119, 150, 133, 135, 146, 145, 142, 134, 130, 120, 137, 131, 146, 138, 137, 132, 138, 135, 130, 131, 147, 127, 138, 143, 139, 125, 123, 129, 129, 144, 119, 140, 143, 133, 131, 138, 124, 118, 148, 146, 137, 138, 130, 127, 135, 141, 128, 132, 138, 129, 142, 134, 135, 132, 129, 147, 141, 139, 117, 138, 141, 134, 142, 133, 139, 144, 131, 125, 142, 147, 143, 140, 142, 137, 116, 127, 141, 122, 139, 130, 143, 137, 133, 150, 142, 145, 141, 136, 127, 124, 138, 144, 132, 148, 138, 142, 126, 131, 148, 126, 138, 137, 129, 133, 132, 129, 126, 129, 123, 129, 134, 133, 129, 129, 135, 132, 141, 139, 129, 140, 140, 118, 158, 140, 126, 146, 145, 142, 137, 141, 146, 131, 128, 142, 124, 137, 126, 140, 128, 141, 143, 128, 136, 133, 146, 136, 135, 142, 145, 134, 129, 127, 124, 137, 141, 150, 141, 140, 142, 127, 126, 138, 141, 140, 129, 139, 133, 144, 123, 126, 125, 132, 141, 136, 143, 140, 146, 131, 132, 144, 145, 141, 143, 132, 129, 137, 136, 135, 133, 125, 134, 135, 140, 137, 162, 143, 135, 116, 131, 135, 126, 139, 142, 129, 134, 129, 140, 126, 136, 146, 137, 140, 137, 132, 139, 136, 127, 132, 147, 135, 138, 145, 133, 134, 143, 136, 134, 136, 135, 141, 141, 125, 124, 148, 126, 136, 137, 130, 142, 140, 131, 136, 139, 148, 130, 132, 137, 131, 114, 138, 141, 134, 133, 138, 135, 136, 130, 131, 119, 146, 137, 127, 133, 122, 136, 137, 137, 140, 153, 138, 146, 142, 135, 135, 134, 145, 126, 136, 120, 134, 131, 144, 142, 130, 124, 126, 124, 139, 141, 122, 134, 120, 132, 129, 116, 124, 144, 134, 141, 127, 137, 134, 143, 140, 149, 131, 139, 143, 139, 138, 144, 145, 130, 144, 131, 137, 138, 135, 142, 146, 147, 142, 129, 132, 126, 137, 131, 129, 124, 121, 137, 143, 125, 114, 135, 131, 154, 134, 130, 141, 129, 135, 134, 129, 131, 147, 152, 148, 130, 142, 149, 129, 138, 135, 136, 140, 157, 133, 133, 117, 138, 130, 128, 132, 140, 144, 133, 120, 127, 145, 140, 130, 127, 101, 142, 130, 138, 152, 119, 141, 135, 125, 123, 148, 136, 127, 126, 150, 152, 143, 145, 154, 135, 157, 159, 130, 132, 148, 145, 133, 128, 102, 148, 156, 158, 146, 116, 129, 130, 142, 137, 135, 125, 149, 137, 129, 114, 136, 144, 134, 151, 119, 118, 132, 138, 128, 128, 133, 148, 139, 141, 127, 132, 148, 127, 136, 156, 120, 124, 136, 142, 140, 140, 113, 143, 149, 140, 138, 150, 125, 142, 132, 122, 151, 131, 156, 130, 123, 159, 138, 134, 139, 148, 166, 135, 148, 142, 146, 149, 139, 141, 147, 127, 118, 134, 136, 134, 129, 128, 137, 141, 134, 141, 115, 136, 158, 140, 142, 132, 145, 135, 143, 134, 145, 121, 145, 130, 149, 135, 125, 124, 138, 145, 138, 135, 149, 150, 138, 138, 139, 146, 143, 133, 141, 129, 141, 131, 139, 136, 121, 133, 129, 140, 138, 145, 134, 127, 132, 133, 138, 142, 134, 141, 128, 132, 140, 133, 138, 149, 153, 138, 132, 131, 135, 141, 135, 131, 118, 126, 134, 130, 116, 139, 126, 141, 136, 118, 136, 136, 153, 121, 131, 140, 140, 146, 124, 150, 142, 147, 130, 127, 134, 152, 134, 140, 129, 119, 139, 158, 139, 137, 145, 139, 140, 127, 134, 141, 129, 119, 138, 135, 144, 143, 127, 131, 143, 126, 133, 138, 139, 145, 132, 139, 139, 133, 150, 144, 136, 142, 145, 134, 107, 159, 138, 157, 141, 117, 132, 129, 134, 137, 129, 148, 147, 127, 131, 145, 136, 147, 151, 134, 131, 139, 125, 130, 147, 125, 131, 151, 131, 148, 156, 129, 143, 134, 126, 150, 142, 131, 126, 140, 144, 139, 130, 154, 129, 140, 154, 140, 140, 137, 132, 139, 135, 130, 124, 130, 124, 121, 130, 140, 131, 144, 132, 150, 129, 123, 137, 142, 131, 130, 142, 144, 132, 136, 132, 142, 138, 142, 126, 128, 132, 137, 144, 134, 137, 143, 126, 135, 132, 131, 139, 145, 140, 149, 143, 135, 132, 148, 137, 139, 126, 138, 147, 128, 126, 149, 136, 127, 130, 158, 149, 145, 140, 137, 139, 128, 133, 130, 129, 143, 124, 128, 126, 159, 132, 141, 118, 129, 132, 142, 143, 120, 142, 127, 151, 135, 136, 129, 135, 128, 143, 129, 108, 146, 149, 141, 125, 136, 114, 140, 132, 131, 119, 139, 133, 124, 141, 125, 126, 146, 133, 125, 141, 142, 139, 137, 145, 133, 137, 132, 139, 144, 132, 127, 132, 123, 124, 146, 141, 123, 137, 138, 119, 132, 122, 142, 141, 135, 140, 122, 107, 115, 148, 145, 142, 156, 134, 144, 139, 145, 130, 137, 138, 136, 134, 135, 149, 129, 126, 126, 125, 142, 130, 154, 129, 140, 158, 142, 132, 145, 150, 121, 137, 142, 157, 131, 127, 118, 125, 118, 136, 137, 143, 140, 138, 132, 135, 134, 134, 132, 134, 132, 143, 137, 135, 140, 133, 135, 150, 141, 135, 136, 108, 132, 125, 146, 134, 131, 152, 132, 145, 143, 131, 145, 122, 148, 142, 123, 134, 131, 126, 136, 132, 136, 129, 141, 136, 134, 132, 137, 153, 137, 149, 140, 132, 131, 142, 145, 136, 141, 130, 133, 143, 139, 122, 128, 139, 129, 127, 138, 135, 130, 136, 141, 148, 131, 132, 127, 128, 145, 123, 138, 149, 153, 150, 140, 135, 141, 135, 142, 133, 145, 135, 139, 147, 130, 137, 133, 132, 136, 141, 129, 129, 143, 132, 137, 121, 141, 114, 124, 146, 149, 123, 136, 136, 141, 148, 138, 138, 134, 142, 142, 122, 127, 154, 140, 128, 148, 140, 134, 118, 141, 132, 127, 127, 139, 129, 141, 128, 136, 130, 144, 126, 145, 131, 140, 136, 128, 129, 122, 138, 132, 135, 132, 123, 138, 162, 131, 125, 141, 135, 134, 142, 124, 133, 122, 134, 129, 137, 141, 141, 143, 140, 144, 127, 134, 120, 126, 132, 143, 132, 144, 109, 134, 135, 131, 153, 141, 134, 122, 147, 146, 127, 132, 137, 140, 134, 135, 144, 143, 138, 129, 128, 135, 135, 140, 128, 125, 132, 140, 115, 138, 146, 136, 141, 141, 121, 136, 126, 138, 137, 140, 131, 142, 141, 127, 133, 139, 123, 134, 138, 133, 130, 137, 135, 138, 136, 129, 129, 137, 139, 144, 130, 144, 132, 144, 130, 140, 124, 136, 126, 143, 129, 128, 135, 130, 143, 131, 150, 143, 144, 155, 136, 139, 134, 133, 132, 138, 122, 133, 129, 137, 135, 136, 112, 159, 134, 144, 135, 146, 123, 135, 134, 156, 142, 147, 130, 133, 125, 141, 140, 132, 153, 125, 121, 135, 151, 140, 129, 141, 114, 138, 125, 139, 132, 126, 133, 138, 144, 140, 153, 131, 151, 132, 132, 140, 132, 142, 128, 121, 131, 130, 138, 152, 157, 145, 157, 126, 133, 139, 130, 141, 151, 143, 158, 126, 129, 148, 127, 147, 132, 142, 132, 138, 130, 153, 127, 140, 136, 132, 141, 147, 126, 152, 141, 144, 141, 131, 181, 137, 144, 148, 152, 134, 133, 142, 142, 145, 140, 150, 131, 132, 140, 134, 155, 123, 126, 144, 132, 134, 114, 130, 133, 135, 132, 126, 144, 134, 130, 141, 130, 149, 140, 120, 137, 146, 137, 142, 137, 133, 147, 144, 122, 126, 116, 129, 127, 142, 120, 123, 132, 135, 130, 133, 137, 130, 145, 144, 138, 123, 136, 133, 131, 136, 120, 133, 129, 136, 142, 126, 135, 143, 129, 129, 134, 140, 142, 141, 128, 136, 142, 145, 106, 145, 115, 138, 126, 134, 120, 137, 139, 121, 146, 129, 131, 105, 136, 116, 139, 131, 159, 121, 129, 131, 134, 138, 131, 139, 180, 148, 149, 116, 108, 125, 125, 129, 139, 154, 137, 139, 135, 131, 124, 136, 138, 136, 124, 121, 138, 143, 130, 138, 158, 136, 135, 140, 119, 138, 134, 116, 145, 120, 140, 128, 131, 138, 134, 130, 139, 140, 135, 134, 135, 141, 138, 127, 123, 135, 145, 137, 135, 135, 108, 140, 132, 138, 142, 141, 136, 140, 124, 125, 148, 139, 110, 139, 137, 114, 148, 139, 143, 142, 144, 141, 138, 149, 131, 142, 141, 147, 126, 133, 132, 133, 132, 130, 140, 124, 139, 135, 146, 140, 142, 132, 137, 130, 140, 138, 140, 157, 138, 132, 142, 132, 146, 143, 145, 151, 134, 144, 128, 135, 135, 141, 135, 129, 130, 146, 141, 142, 139, 138, 134, 128, 131, 144, 140, 135, 143, 139, 134, 140, 127, 125, 142, 143, 138, 131, 144, 139, 149, 141, 127, 140, 136, 145, 121, 131, 119, 118, 124, 140, 133, 137, 142, 142, 142, 127, 127, 133, 133, 142, 141, 130, 142, 131, 142, 132, 129, 139, 138, 130, 137, 131, 136, 144, 144, 130, 136, 142, 134, 141, 138, 136, 140, 150, 131, 150, 126, 137, 132, 143, 141, 126, 127, 134, 138, 138, 140, 137, 140, 143, 138, 144, 128, 136, 130, 145, 142, 126, 140, 150, 137, 143, 133, 127, 148, 131, 135, 147, 140, 126, 137, 141, 136, 122, 142, 137, 123, 125, 139, 135, 141, 133, 142, 139, 140, 137, 133, 149, 139, 141, 136, 145, 120, 123, 145, 129, 127, 138, 143, 132, 142, 132, 146, 150, 125, 126, 133, 139, 132, 130, 130, 139, 153, 129, 134, 142, 146, 119, 127, 138, 130, 148, 141, 138, 139, 139, 139, 126, 144, 136, 130, 130, 126, 129, 139, 144, 132, 142, 129, 136, 127, 141, 129, 143, 142, 134, 135, 132, 140, 128, 137, 136, 147, 146, 137, 130, 139, 136, 134, 139, 143, 132, 130, 148, 151, 147, 141, 144, 136, 143, 140, 145, 141, 131, 130, 125, 131, 121, 143, 139, 145, 136, 137, 133, 145, 139, 133, 126, 138, 133, 142, 128, 141, 131, 144, 144, 131, 142, 144, 141, 140, 148, 128, 146, 133, 137, 142, 143, 146, 136, 148, 134, 138, 139, 142, 132, 142, 133, 132, 126, 139, 137, 131, 138, 129, 137, 139, 133, 141, 136, 137, 131, 109, 128, 134, 138, 138, 130, 129, 128, 144, 138, 127, 138, 141, 140, 138, 135, 135, 130, 134, 137, 138, 142, 144, 133, 146, 140, 131, 134, 137, 140, 134, 126, 134, 140, 124, 131, 151, 132, 142, 118, 139, 119, 145, 143, 138, 124, 135, 138, 138, 142, 148, 123, 140, 125, 137, 126, 136, 140, 136, 133, 138, 132, 137, 127, 132, 138, 142, 139, 122, 125, 143, 145, 142, 143, 136, 144, 141, 127, 142, 134, 142, 137, 129, 136, 130, 138, 136, 143, 142, 131, 125, 143, 145, 128, 139, 133, 139, 144, 141, 132, 151, 140, 140, 125, 140, 137, 128, 137, 140, 137, 137, 129, 136, 130, 121, 142, 156, 141, 146, 131, 156, 135, 138, 130, 133, 142, 148, 139, 139, 142, 136, 138, 141, 143, 126, 136, 141, 139, 140, 136, 135, 135, 136, 141, 132, 136, 142, 136, 143, 140, 135, 144, 143, 138, 129, 135, 131, 153, 132, 140, 139, 129, 133, 125, 148, 142, 129, 131, 134, 131, 141, 137, 136, 144, 134, 130, 139, 131, 136, 138, 131, 140, 136, 133, 131, 135, 133, 150, 134, 132, 142, 143, 124, 139, 130, 149, 145, 150, 131, 119, 130, 136, 128, 146, 140, 135, 130, 137, 141, 141, 134, 137, 129, 135, 131, 139, 135, 139, 126, 134, 133, 153, 132, 136, 130, 137, 132, 136, 136, 142, 148, 141, 135, 137, 138, 133, 126, 146, 147, 131, 138, 129, 132, 133, 131, 134, 139, 141, 126, 134, 123, 135, 132, 123, 140, 138, 139, 147, 129, 141, 142, 135, 128, 133, 135, 134, 134, 135, 133, 133, 144, 126, 129, 141, 117, 124, 140, 146, 135, 133, 147, 133, 123, 134, 125, 121, 133, 143, 137, 134, 142, 127, 140, 161, 139, 129, 125, 134, 130, 130, 130, 130, 137, 130, 123, 143, 137, 136, 139, 131, 140, 138, 139, 127, 146, 132, 154, 132, 137, 130, 134, 138, 139, 145, 127, 143, 125, 158, 126, 138, 123, 136, 137, 135, 139, 131, 134, 138, 140, 134, 134, 124, 130, 135, 138, 145, 134, 140, 130, 136, 127, 125, 154, 137, 131, 133, 134, 123, 148, 134, 138, 140, 139, 134, 133, 134, 141, 145, 133, 127, 141, 138, 139, 146, 135, 140, 124, 135, 115, 148, 115, 140, 135, 143, 149, 131, 136, 126, 137, 144, 150, 134, 129, 138, 133, 138, 136, 136, 151, 133, 143, 142, 130, 140, 131, 132, 127, 148, 137, 134, 138, 133, 140, 118, 136, 129, 138, 125, 146, 127, 130, 136, 135, 137, 128, 128, 138, 136, 123, 145, 158, 144, 131, 139, 139, 135, 132, 121, 132, 135, 134, 130, 138, 129, 129, 140, 129, 134, 133, 132, 137, 126, 134, 126, 144, 139, 137, 137, 122, 139, 142, 128, 138, 140, 130, 133, 126, 124, 135, 130, 137, 141, 140, 136, 128, 137, 135, 141, 127, 132, 137, 135, 126, 130, 135, 130, 146, 149, 136, 129, 137, 136, 124, 132, 144, 134, 134, 143, 127, 140, 134, 134, 128, 144, 136, 143, 135, 143, 134, 131, 144, 133, 142, 149, 137, 125, 135, 139, 125, 129, 150, 126, 135, 132, 140, 121, 123, 140, 132, 134, 151, 130, 133, 128, 124, 147, 133, 134, 132, 124, 139, 139, 130, 149, 136, 125, 134, 136, 146, 135, 134, 132, 144, 142, 135, 131, 142, 129, 136, 137, 133, 114, 129, 140, 139, 140, 131, 130, 139, 134, 132, 152, 147, 137, 139, 141, 148, 133, 142, 142, 132, 146, 138, 119, 142, 137, 138, 131, 135, 145, 139, 167, 134, 134, 134, 133, 126, 138, 143, 130, 134, 137, 142, 133, 130, 124, 152, 139, 130, 123, 125, 132, 128, 132, 142, 139, 141, 156, 131, 133, 142, 141, 138, 135, 137, 141, 132, 125, 118, 125, 129, 135, 136, 146, 124, 133, 143, 130, 134, 132, 128, 135, 102, 127, 127, 134, 141, 150, 138, 135, 134, 137, 152, 131, 135, 134, 127, 136, 131, 127, 128, 150, 141, 142, 125, 136, 136, 135, 131, 131, 138, 128, 130, 126, 126, 132, 132, 133, 159, 144, 140, 140, 137, 134, 138, 142, 139, 133, 127, 131, 128, 127, 135, 142, 130, 140, 142, 134, 133, 122, 155, 142, 145, 126, 129, 143, 124, 139, 142, 126, 140, 134, 135, 133, 124, 142, 132, 144, 139, 144, 136, 129, 136, 140, 125, 152, 138, 138, 136, 137, 181, 140, 135, 153, 139, 152, 150, 140, 146, 139, 141, 141, 145, 135, 142, 143, 144, 137, 137, 154, 144, 130, 131, 133, 143, 132, 138, 130, 130, 139, 135, 126, 143, 130, 135, 141, 140, 134, 146, 135, 132, 137, 126, 139, 134, 150, 153, 150, 129, 134, 129, 133, 127, 133, 145, 141, 138, 144, 136, 131, 133, 137, 138, 143, 141, 142, 143, 143, 86, 127, 138, 132, 139, 130, 139, 133, 143, 140, 140, 137, 135, 134, 136, 156, 111, 131, 137, 53, 168, 134, 132, 146, 150, 101, 155, 144, 137, 139, 138, 121, 141, 137, 167, 134, 136, 141, 147, 140, 140, 136, 132, 132, 136, 144, 135, 146, 109, 147, 129, 134, 112, 136, 141, 124, 142, 145, 142, 132, 130, 128, 136, 132, 144, 136, 137, 77, 138, 142, 158, 132, 144, 138, 139, 138, 126, 127, 131, 144, 138, 134, 135, 129, 132, 140, 137, 143, 141, 128, 136, 137, 141, 133, 137, 139, 146, 103, 104, 136, 134, 137, 138, 118, 128, 148, 139, 128, 138, 145, 129, 128, 131, 142, 143, 143, 151, 137, 106, 135, 129, 110, 133, 134, 139, 129, 137, 132, 136, 130, 136, 140, 129, 137, 129, 133, 136, 138, 137, 146, 139, 134, 133, 134, 129, 131, 140, 111, 138, 140, 141, 144, 134, 137, 142, 143, 140, 135, 120, 136, 140, 138, 142, 136, 126, 130, 139, 106, 147, 136, 139, 130, 140, 142, 136, 129, 131, 134, 138, 133, 143, 143, 138, 116, 129, 121, 138, 141, 138, 132, 132, 131, 136, 115, 133, 137, 135, 133, 131, 139, 143, 130, 135, 137, 135, 136, 138, 146, 142, 132, 131, 139, 149, 134, 146, 141, 138, 132, 132, 141, 127, 128, 139, 141, 139, 151, 137, 130, 132, 139, 139, 138, 128, 129, 139, 150, 135, 131, 138, 138, 135, 143, 138, 142, 130, 133, 147, 134, 137, 135, 137, 137, 127, 137, 143, 140, 141, 130, 130, 128, 136, 136, 157, 131, 138, 134, 135, 122, 134, 150, 133, 120, 132, 138, 139, 139, 142, 142, 123, 122, 139, 139, 141, 149, 129, 145, 132, 144, 139, 143, 143, 141, 143, 128, 134, 138, 149, 133, 134, 150, 126, 151, 147, 143, 191, 137, 135, 144, 140, 142, 131, 136, 130, 137, 138, 147, 136, 139, 109, 131, 140, 139, 147, 134, 128, 129, 134, 141, 135, 138, 139, 137, 127, 139, 142, 159, 140, 128, 129, 132, 141, 134, 133, 127, 136, 141, 145, 150, 146, 144, 129, 136, 137, 128, 136, 134, 131, 137, 140, 135, 139, 143, 147, 127, 143, 156, 142, 135, 121, 160, 132, 140, 132, 143, 115, 131, 146, 132, 145, 138, 135, 130, 136, 140, 144, 141, 142, 143, 135, 140, 139, 142, 127, 150, 132, 148, 141, 126, 146, 137, 134, 143, 144, 133, 138, 149, 144, 131, 124, 146, 144, 137, 134, 155, 142, 137, 133, 153, 133, 138, 143, 137, 140, 136, 146, 133, 142, 132, 139, 144, 145, 125, 134, 131, 139, 133, 137, 138, 139, 132, 126, 146, 123, 128, 139, 137, 147, 151, 109, 133, 144, 135, 142, 138, 134, 141, 135, 137, 123, 134, 128, 137, 129, 148, 161, 131, 125, 134, 131, 124, 131, 130, 144, 142, 146, 130, 127, 136, 127, 117, 126, 132, 143, 131, 142, 122, 135, 151, 156, 127, 140, 130, 132, 134, 129, 133, 132, 142, 142, 131, 154, 139, 131, 140, 162, 143, 143, 135, 145, 137, 139, 131, 127, 121, 135, 134, 146, 147, 133, 137, 131, 143, 121, 135, 144, 142, 127, 116, 144, 147, 127, 135, 136, 144, 137, 127, 139, 132, 136, 122, 118, 126, 135, 146, 125, 127, 139, 133, 128, 128, 115, 133, 129, 126, 155, 139, 130, 138, 134, 147, 131, 130, 129, 129, 134, 137, 133, 140, 142, 126, 149, 144, 138, 136, 131, 147, 128, 147, 148, 130, 134, 141, 136, 130, 137, 137, 133, 131, 134, 147, 150, 140, 128, 127, 143, 142, 141, 114, 133, 143, 142, 130, 137, 163, 122, 132, 124, 122, 126, 134, 144, 147, 139, 140, 155, 142, 140, 140, 138, 134, 137, 131, 114, 136, 141, 151, 133, 129, 128, 127, 149, 124, 140, 135, 136, 115, 138, 144, 133, 139, 133, 133, 125, 133, 130, 138, 138, 131, 146, 141, 136, 133, 141, 132, 136, 150, 124, 142, 140, 137, 123, 158, 140, 141, 143, 142, 143, 144, 147, 137, 120, 142, 152, 137, 146, 142, 132, 149, 139, 133, 137, 130, 138, 136, 137, 136, 136, 126, 133, 125, 141, 133, 144, 147, 124, 144, 145, 138, 131, 127, 136, 125, 153, 139, 149, 140, 131, 151, 141, 136, 140, 129, 134, 132, 126, 126, 132, 131, 144, 144, 131, 129, 137, 123, 130, 136, 126, 146, 136, 130, 153, 137, 127, 127, 130, 123, 120, 143, 141, 139, 146, 135, 135, 156, 142, 145, 118, 128, 134, 137, 138, 123, 121, 148, 143, 131, 134, 135, 132, 162, 128, 140, 125, 131, 144, 130, 139, 129, 140, 133, 145, 121, 132, 143, 134, 128, 141, 132, 137, 133, 134, 120, 142, 145, 135, 131, 137, 118, 133, 138, 134, 129, 147, 128, 131, 134, 136, 134, 133, 139, 140, 140, 154, 141, 129, 138, 123, 123, 126, 148, 139, 137, 143, 135, 149, 136, 128, 127, 136, 132, 122, 131, 131, 141, 123, 141, 137, 138, 141, 137, 130, 131, 138, 124, 135, 152, 141, 157, 125, 142, 132, 134, 141, 141, 142, 131, 135, 143, 145, 143, 143, 135, 113, 122, 126, 143, 172, 129, 114, 126, 134, 143, 128, 147, 147, 127, 131, 99, 133, 124, 122, 137, 131, 146, 140, 149, 140, 147, 135, 129, 133, 141, 176, 145, 132, 121, 130, 134, 139, 145, 143, 140, 142, 137, 143, 113, 142, 128, 124, 144, 143, 141, 134, 121, 114, 144, 143, 133, 143, 148, 144, 132, 133, 129, 129, 129, 125, 134, 142, 130, 135, 137, 162, 133, 148, 133, 135, 130, 133, 134, 131, 137, 127, 120, 126, 131, 144, 141, 131, 122, 137, 132, 159, 133, 139, 145, 134, 130, 141, 140, 138, 127, 131, 132, 151, 139, 132, 142, 142, 142, 135, 138, 128, 141, 137, 142, 144, 141, 119, 131, 137, 138, 132, 124, 135, 137, 133, 134, 117, 133, 131, 130, 116, 136, 123, 137, 135, 132, 128, 122, 114, 125, 130, 135, 137, 137, 140, 133, 132, 134, 138, 132, 138, 131, 127, 135, 141, 140, 149, 143, 132, 137, 128, 128, 149, 125, 130, 136, 139, 145, 127, 121, 140, 130, 133, 132, 131, 136, 140, 134, 120, 133, 139, 124, 140, 141, 138, 127, 142, 131, 138, 131, 129, 140, 150, 140, 140, 136, 135, 138, 137, 136, 130, 135, 125, 137, 134, 123, 140, 131, 137, 133, 129, 146, 126, 141, 130, 130, 128, 134, 135, 142, 127, 128, 140, 143, 137, 127, 129, 136, 138, 133, 129, 133, 145, 137, 133, 140, 137, 135, 175, 137, 133, 140, 134, 128, 135, 145, 135, 136, 130, 135, 142, 145, 132, 139, 135, 135, 132, 135, 138, 128, 143, 142, 130, 123, 134, 138, 129, 144, 136, 147, 141, 130, 124, 133, 132, 146, 115, 142, 140, 136, 146, 138, 125, 134, 140, 144, 127, 137, 145, 128, 139, 135, 138, 133, 150, 127, 151, 124, 137, 137, 134, 133, 142, 135, 136, 129, 143, 143, 137, 141, 117, 139, 150, 130, 141, 132, 152, 143, 146, 136, 129, 141, 129, 140, 142, 137, 134, 131, 123, 124, 138, 139, 136, 135, 132, 135, 128, 141, 137, 143, 133, 130, 133, 130, 148, 129, 135, 137, 120, 130, 130, 121, 130, 144, 134, 133, 130, 138, 117, 131, 139, 131, 133, 138, 125, 135, 137, 129, 136, 132, 134, 136, 128, 140, 143, 151, 144, 140, 131, 138, 132, 129, 140, 132, 131, 143, 128, 137, 135, 126, 141, 139, 143, 138, 138, 139, 136, 138, 136, 130, 138, 129, 153, 134, 124, 135, 143, 142, 135, 128, 144, 132, 128, 136, 124, 138, 145, 123, 131, 135, 139, 135, 140, 133, 128, 117, 130, 131, 136, 146, 128, 137, 109, 143, 136, 129, 128, 138, 134, 144, 136, 138, 139, 135, 139, 131, 144, 148, 138, 134, 140, 139, 132, 128, 147, 134, 138, 133, 130, 145, 155, 135, 136, 123, 132, 131, 148, 143, 131, 140, 130, 126, 139, 147, 132, 137, 138, 152, 131, 137, 145, 125, 136, 143, 130, 133, 131, 132, 161, 133, 135, 131, 150, 118, 139, 137, 131, 129, 128, 135, 133, 133, 130, 129, 134, 135, 133, 146, 145, 138, 143, 154, 141, 121, 144, 122, 132, 135, 149, 126, 130, 123, 133, 148, 150, 147, 141, 152, 119, 140, 142, 133, 128, 128, 135, 140, 136, 132, 139, 131, 140, 134, 119, 135, 127, 151, 135, 141, 152, 125, 131, 149, 128, 144, 129, 146, 133, 125, 135, 129, 134, 138, 147, 133, 137, 135, 133, 139, 142, 139, 141, 120, 136, 132, 139, 131, 129, 121, 136, 139, 130, 147, 141, 140, 124, 145, 136, 127, 130, 135, 149, 142, 129, 147, 130, 132, 138, 141, 137, 124, 144, 127, 130, 141, 141, 124, 135, 133, 146, 131, 141, 140, 151, 127, 134, 128, 132, 157, 135, 148, 138, 141, 150, 142, 129, 131, 136, 139, 129, 132, 116, 113, 136, 121, 141, 127, 127, 144, 127, 136, 138, 150, 142, 132, 122, 138, 122, 121, 146, 152, 134, 120, 125, 147, 151, 120, 130, 139, 137, 122, 137, 139, 145, 132, 123, 133, 134, 144, 161, 135, 135, 130, 143, 154, 134, 131, 118, 130, 120, 125, 129, 140, 137, 143, 135, 131, 125, 141, 145, 140, 149, 115, 131, 135, 148, 143, 164, 129, 119, 138, 139, 134, 146, 137, 128, 137, 130, 147, 132, 133, 137, 137, 128, 127, 125, 147, 134, 128, 137, 137, 148, 113, 125, 135, 145, 136, 137, 134, 129, 131, 137, 138, 137, 130, 140, 147, 137, 151, 119, 132, 139, 148, 128, 107, 133, 126, 132, 152, 153, 135, 135, 130, 135, 144, 145, 128, 150, 120, 154, 142, 125, 125, 137, 143, 135, 135, 129, 141, 134, 126, 145, 131, 131, 134, 117, 134, 130, 118, 140, 134, 130, 139, 135, 153, 134, 136, 148, 147, 133, 126, 136, 140, 154, 135, 138, 134, 142, 145, 127, 125, 140, 135, 125, 140, 144, 139, 128, 123, 155, 147, 141, 153, 143, 141, 157, 146, 125, 137, 135, 131, 129, 129, 130, 140, 162, 143, 155, 127, 129, 133, 132, 146, 131, 141, 123, 150, 138, 124, 143, 133, 130, 151, 128, 139, 129, 140, 138, 128, 129, 156, 145, 145, 120, 126, 140, 135, 131, 131, 157, 146, 127, 138, 157, 143, 131, 131, 129, 134, 137, 141, 147, 147, 124, 131, 137, 114, 137, 145, 125, 144, 130, 132, 156, 138, 140, 134, 138, 135, 119, 133, 138, 133, 149, 144, 133, 120, 134, 138, 139, 123, 144, 138, 151, 125, 148, 130, 132, 123, 118, 134, 124, 142, 124, 146, 150, 123, 138, 127, 128, 131, 143, 140, 139, 129, 136, 135, 162, 138, 141, 138, 130, 136, 149, 135, 133, 141, 131, 143, 149, 146, 139, 146, 132, 134, 124, 148, 131, 127, 125, 136, 145, 138, 141, 130, 126, 131, 139, 136, 139, 132, 153, 125, 144, 127, 143, 119, 158, 148, 145, 145, 115, 124, 148, 140, 131, 129, 136, 124, 151, 125, 133, 165, 130, 134, 141, 122, 139, 121, 130, 114, 147, 137, 158, 142, 126, 142, 148, 121, 142, 130, 142, 130, 122, 125, 148, 138, 132, 123, 137, 148, 125, 141, 127, 148, 142, 122, 119, 138, 126, 149, 137, 124, 140, 143, 135, 139, 151, 127, 131, 130, 134, 130, 123, 163, 131, 138, 161, 124, 134, 130, 125, 128, 136, 137, 141, 110, 136, 144, 137, 129, 121, 140, 142, 134, 135, 130, 143, 143, 130, 133, 152, 146, 147, 132, 136, 129, 149, 142, 121, 138, 141, 134, 154, 125, 139, 133, 155, 147, 138, 151, 149, 137, 131, 110, 144, 130, 135, 143, 121, 141, 143, 139, 129, 142, 135, 137, 151, 144, 113, 131, 125, 131, 120, 128, 150, 165, 127, 131, 138, 141, 149, 139, 139, 147, 125, 127, 129, 145, 135, 141, 139, 132, 134, 133, 141, 129, 139, 122, 141, 143, 128, 113, 127, 156, 141, 141, 143, 120, 131, 134, 156, 142, 155, 115, 136, 128, 138, 144, 136, 153, 126, 139, 134, 134, 133, 154, 136, 138, 125, 126, 132, 149, 128, 157, 141, 134, 138, 130, 136, 135, 134, 131, 126, 136, 137, 127, 132, 132, 133, 128, 138, 158, 144, 152, 127, 143, 153, 132, 148, 131, 139, 132, 135, 132, 120, 145, 138, 162, 126, 135, 123, 137, 135, 140, 145, 136, 127, 137, 147, 153, 145, 127, 141, 142, 141, 130, 144, 128, 142, 126, 125, 136, 125, 125, 135, 132, 141, 137, 130, 126, 126, 127, 131, 144, 123, 132, 141, 147, 135, 148, 136, 137, 124, 138, 155, 141, 131, 138, 127, 128, 131, 143, 113, 127, 134, 132, 143, 140, 144, 125, 137, 133, 146, 131, 139, 123, 139, 138, 125, 139, 121, 132, 126, 131, 132, 139, 126, 137, 147, 127, 137, 130, 129, 140, 142, 127, 136, 133, 122, 157, 134, 126, 132, 145, 134, 126, 140, 138, 132, 142, 155, 129, 130, 111, 130, 143, 129, 124, 120, 136, 121, 125, 133, 131, 133, 153, 131, 149, 140, 145, 140, 130, 133, 132, 140, 143, 141, 141, 143, 131, 118, 132, 134, 136, 137, 130, 143, 137, 146, 137, 140, 135, 136, 128, 139, 137, 152, 131, 140, 137, 153, 124, 150, 122, 123, 129, 142, 148, 139, 136, 150, 145, 138, 109, 129, 137, 144, 142, 135, 140, 127, 146, 126, 118, 126, 121, 131, 139, 121, 137, 145, 136, 139, 131, 139, 135, 134, 123, 90, 134, 150, 154, 130, 130, 123, 157, 133, 131, 146, 123, 129, 138, 126, 128, 134, 126, 137, 153, 133, 141, 131, 139, 131, 147, 148, 139, 127, 138, 136, 136, 125, 138, 168, 135, 141, 118, 149, 137, 134, 146, 148, 148, 187, 138, 138, 139, 129, 129, 149, 141, 132, 135, 132, 128, 131, 118, 126, 133, 120, 143, 144, 125, 137, 131, 120, 136, 141, 134, 133, 130, 142, 125, 128, 137, 138, 135, 127, 135, 132, 148, 139, 137, 142, 137, 127, 131, 143, 129, 144, 137, 120, 135, 140, 123, 117, 148, 133, 132, 146, 121, 148, 137, 130, 143, 168, 107, 130, 134, 136, 136, 137, 152, 128, 130, 142, 149, 140, 158, 128, 121, 132, 144, 135, 134, 129, 126, 139, 148, 127, 128, 146, 142, 133, 136, 138, 113, 137, 146, 128, 123, 137, 135, 152, 156, 142, 139, 135, 131, 142, 131, 134, 135, 131, 153, 121, 147, 155, 130, 141, 159, 162, 132, 127, 136, 142, 137, 142, 138, 151, 146, 112, 132, 136, 138, 130, 133, 140, 139, 125, 144, 135, 148, 130, 140, 137, 137, 136, 141, 135, 123, 128, 130, 133, 141, 117, 137, 125, 140, 123, 129, 135, 138, 129, 137, 138, 132, 145, 143, 137, 148, 131, 141, 114, 118, 120, 129, 138, 131, 123, 130, 127, 131, 132, 137, 135, 126, 131, 133, 127, 138, 128, 144, 135, 135, 133, 140, 142, 138, 135, 134, 130, 142, 134, 142, 137, 138, 138, 131, 133, 134, 142, 136, 133, 130, 150, 133, 131, 139, 136, 137, 134, 130, 133, 130, 138, 138, 139, 132, 137, 141, 147, 141, 125, 140, 132, 129, 137, 130, 125, 134, 128, 132, 136, 135, 138, 138, 144, 140, 138, 142, 144, 135, 134, 137, 136, 131, 138, 134, 140, 131, 137, 134, 141, 138, 140, 133, 128, 133, 129, 128, 134, 140, 137, 136, 130, 134, 121, 133, 133, 143, 133, 145, 138, 137, 137, 131, 134, 126, 140, 134, 136, 132, 131, 144, 132, 138, 133, 133, 136, 132, 135, 138, 139, 140, 130, 135, 139, 133, 130, 134, 132, 133, 130, 136, 132, 135, 140, 135, 137, 136, 129, 141, 138, 135, 129, 147, 141, 135, 131, 135, 135, 158, 139, 138, 136, 131, 136, 138, 127, 120, 135, 137, 129, 134, 130, 134, 129, 143, 133, 134, 139, 129, 134, 143, 140, 134, 132, 141, 132, 133, 133, 98, 135, 143, 143, 130, 125, 142, 146, 131, 138, 130, 133, 131, 134, 136, 140, 130, 139, 128, 145, 146, 131, 136, 130, 142, 134, 139, 136, 126, 131, 136, 132, 149, 138, 123, 135, 137, 135, 141, 144, 139, 143, 136, 136, 135, 128, 143, 142, 132, 137, 140, 134, 128, 135, 141, 141, 135, 137, 139, 145, 133, 134, 142, 135, 143, 139, 139, 137, 134, 139, 134, 135, 139, 141, 134, 137, 128, 131, 132, 133, 141, 134, 133, 142, 129, 139, 135, 137, 137, 138, 136, 130, 133, 137, 141, 140, 136, 127, 134, 136, 130, 139, 135, 128, 134, 134, 138, 139, 139, 139, 142, 132, 142, 137, 140, 135, 140, 134, 131, 138, 131, 140, 137, 132, 132, 151, 133, 131, 138, 136, 127, 135, 141, 134, 139, 140, 141, 129, 138, 133, 130, 138, 129, 136, 137, 128, 145, 153, 127, 139, 137, 138, 132, 138, 127, 136, 142, 132, 140, 144, 130, 129, 143, 146, 144, 142, 137, 130, 136, 137, 152, 136, 138, 137, 140, 144, 134, 142, 136, 135, 133, 136, 132, 149, 136, 138, 124, 137, 131, 131, 133, 134, 135, 132, 129, 138, 135, 134, 133, 140, 137, 133, 139, 137, 127, 146, 136, 131, 141, 125, 135, 138, 134, 137, 138, 138, 125, 133, 142, 135, 137, 140, 125, 137, 137, 145, 143, 131, 138, 135, 133, 136, 129, 142, 146, 140, 140, 140, 137, 138, 133, 136, 136, 136, 142, 132, 141, 136, 134, 124, 131, 134, 134, 135, 124, 133, 129, 134, 136, 142, 149, 140, 129, 142, 136, 136, 141, 136, 139, 131, 132, 134, 138, 126, 134, 135, 129, 140, 137, 134, 134, 139, 128, 132, 137, 145, 137, 136, 138, 143, 133, 136, 138, 133, 127, 134, 149, 136, 139, 134, 136, 137, 144, 129, 134, 136, 135, 140, 138, 143, 131, 140, 132, 135, 137, 136, 134, 134, 140, 141, 137, 131, 133, 131, 140, 137, 139, 131, 129, 141, 140, 136, 137, 122, 133, 138, 133, 125, 134, 133, 139, 135, 119, 151, 145, 136, 129, 131, 142, 124, 145, 126, 144, 129, 144, 122, 138, 140, 135, 130, 134, 132, 136, 120, 137, 143, 139, 136, 129, 152, 123, 124, 130, 132, 128, 134, 132, 143, 134, 140, 150, 143, 126, 145, 148, 141, 143, 133, 140, 138, 141, 130, 138, 139, 130, 142, 134, 141, 133, 125, 140, 145, 134, 126, 139, 143, 138, 145, 141, 143, 146, 138, 140, 140, 139, 131, 146, 144, 139, 149, 126, 142, 145, 138, 133, 136, 151, 145, 137, 142, 120, 117, 118, 137, 127, 137, 136, 147, 137, 135, 130, 139, 127, 142, 138, 142, 141, 136, 128, 146, 129, 144, 128, 140, 137, 148, 124, 134, 129, 124, 131, 127, 136, 139, 131, 147, 131, 128, 131, 146, 134, 127, 137, 135, 149, 133, 134, 132, 136, 139, 147, 142, 131, 132, 143, 155, 140, 141, 127, 133, 146, 145, 134, 134, 129, 137, 129, 147, 139, 134, 116, 145, 132, 137, 139, 131, 128, 125, 133, 128, 144, 151, 136, 136, 132, 144, 135, 145, 129, 130, 148, 142, 137, 139, 133, 145, 136, 139, 136, 128, 146, 141, 126, 127, 139, 140, 141, 148, 136, 134, 134, 134, 130, 132, 134, 151, 157, 134, 146, 131, 145, 137, 141, 138, 141, 130, 132, 140, 121, 139, 142, 132, 129, 135, 135, 143, 133, 137, 133, 129, 134, 140, 139, 129, 136, 135, 132, 140, 145, 132, 149, 131, 142, 124, 143, 139, 147, 126, 145, 129, 144, 140, 151, 136, 141, 133, 127, 121, 122, 142, 131, 137, 138, 134, 137, 117, 140, 141, 133, 147, 138, 132, 141, 129, 130, 129, 142, 139, 130, 142, 137, 131, 130, 129, 127, 137, 138, 130, 126, 117, 138, 109, 127, 125, 152, 134, 125, 141, 126, 139, 129, 129, 135, 138, 143, 138, 132, 136, 131, 150, 149, 132, 141, 139, 152, 134, 120, 133, 131, 142, 142, 136, 136, 143, 139, 142, 142, 138, 153, 136, 129, 141, 136, 136, 138, 125, 152, 124, 132, 137, 142, 132, 134, 136, 146, 133, 128, 141, 142, 130, 142, 151, 141, 145, 135, 123, 135, 132, 136, 134, 137, 133, 134, 136, 126, 130, 134, 134, 134, 139, 127, 149, 133, 134, 150, 134, 131, 134, 141, 142, 136, 144, 134, 141, 137, 142, 138, 141, 139, 142, 145, 147, 135, 141, 127, 134, 146, 149, 131, 126, 130, 139, 149, 128, 137, 128, 132, 145, 139, 139, 132, 132, 129, 140, 133, 128, 146, 128, 139, 133, 134, 137, 144, 155, 136, 146, 128, 145, 137, 132, 136, 124, 140, 143, 155, 143, 139, 139, 127, 141, 142, 140, 138, 137, 140, 132, 118, 152, 132, 135, 145, 135, 125, 138, 138, 147, 130, 133, 143, 139, 135, 146, 148, 139, 138, 145, 126, 145, 142, 142, 137, 134, 167, 117, 133, 131, 136, 143, 140, 136, 123, 123, 132, 129, 135, 141, 134, 135, 127, 123, 140, 131, 139, 127, 131, 135, 132, 136, 134, 123, 127, 133, 132, 138, 140, 144, 138, 140, 136, 142, 124, 127, 143, 127, 142, 137, 135, 141, 133, 131, 128, 139, 133, 137, 134, 136, 148, 136, 130, 127, 124, 154, 128, 137, 133, 137, 134, 140, 132, 130, 131, 140, 127, 147, 135, 132, 124, 110, 153, 140, 124, 142, 141, 145, 135, 134, 125, 122, 142, 137, 146, 132, 135, 129, 138, 133, 129, 146, 140, 142, 156, 136, 123, 128, 140, 127, 126, 134, 130, 129, 136, 129, 140, 144, 144, 125, 140, 134, 134, 139, 131, 148, 137, 130, 148, 118, 132, 128, 120, 126, 132, 144, 125, 118, 126, 136, 137, 134, 141, 136, 142, 120, 121, 139, 150, 130, 123, 123, 117, 145, 140, 137, 127, 131, 125, 144, 139, 123, 136, 139, 130, 146, 132, 119, 134, 139, 136, 135, 138, 139, 138, 135, 133, 145, 147, 135, 134, 126, 127, 131, 137, 159, 134, 132, 134, 130, 135, 120, 130, 133, 138, 135, 140, 126, 152, 143, 136, 144, 131, 128, 147, 135, 133, 155, 127, 134, 136, 166, 136, 168, 143, 122, 147, 140, 136, 127, 130, 144, 142, 144, 122, 111, 143, 139, 149, 138, 139, 134, 141, 131, 147, 136, 131, 126, 148, 136, 138, 135, 126, 144, 140, 140, 125, 135, 133, 140, 129, 121, 138, 146, 124, 118, 129, 124, 125, 132, 135, 136, 138, 144, 138, 130, 145, 125, 127, 132, 130, 156, 144, 146, 122, 129, 136, 137, 131, 142, 140, 146, 144, 129, 131, 142, 126, 143, 128, 136, 126, 150, 127, 140, 126, 111, 139, 139, 133, 127, 120, 135, 144, 159, 128, 134, 130, 138, 132, 129, 165, 140, 138, 132, 113, 127, 147, 128, 127, 151, 128, 138, 124, 132, 132, 133, 140, 130, 145, 132, 148, 134, 128, 126, 136, 133, 126, 143, 144, 140, 117, 121, 142, 131, 141, 137, 129, 121, 144, 150, 124, 133, 137, 128, 140, 124, 136, 142, 149, 134, 148, 131, 138, 129, 151, 138, 135, 140, 151, 130, 135, 132, 118, 133, 140, 156, 138, 140, 129, 126, 134, 134, 147, 138, 125, 136, 137, 128, 141, 133, 137, 138, 157, 141, 145, 138, 116, 145, 139, 142, 138, 132, 131, 137, 131, 141, 153, 137, 126, 121, 148, 134, 136, 134, 161, 135, 125, 138, 124, 129, 141, 134, 134, 147, 123, 137, 135, 138, 145, 144, 139, 123, 110, 132, 110, 141, 136, 136, 117, 140, 143, 132, 151, 131, 129, 142, 134, 134, 134, 136, 129, 142, 136, 131, 142, 144, 132, 130, 138, 140, 143, 141, 134, 139, 146, 125, 132, 132, 137, 126, 136, 134, 141, 128, 124, 134, 127, 137, 141, 124, 142, 124, 125, 130, 143, 125, 148, 130, 128, 132, 140, 138, 120, 147, 133, 125, 146, 137, 138, 135, 150, 128, 128, 134, 134, 120, 144, 139, 144, 129, 132, 147, 128, 122, 132, 141, 142, 136, 138, 135, 128, 134, 135, 138, 140, 142, 130, 123, 124, 139, 134, 144, 131, 140, 138, 126, 136, 136, 137, 141, 142, 131, 148, 142, 136, 143, 131, 147, 119, 135, 148, 133, 141, 135, 132, 123, 144, 118, 131, 131, 125, 141, 136, 141, 146, 137, 149, 129, 148, 139, 138, 141, 148, 143, 132, 137, 123, 161, 139, 130, 147, 154, 140, 153, 142, 154, 133, 138, 155, 124, 125, 128, 144, 129, 116, 142, 134, 134, 134, 131, 133, 151, 132, 135, 125, 124, 151, 148, 152, 128, 145, 134, 146, 124, 134, 133, 135, 145, 160, 139, 110, 139, 141, 131, 135, 119, 145, 139, 122, 140, 132, 128, 151, 136, 131, 119, 127, 134, 138, 133, 130, 134, 136, 143, 144, 157, 133, 133, 137, 145, 136, 137, 121, 130, 140, 133, 132, 134, 131, 122, 156, 146, 133, 133, 131, 133, 151, 142, 138, 137, 142, 127, 144, 133, 134, 145, 129, 152, 128, 141, 152, 145, 145, 138, 147, 148, 135, 137, 135, 140, 139, 136, 131, 147, 143, 144, 156, 144, 141, 130, 140, 133, 141, 145, 127, 139, 132, 133, 132, 133, 131, 112, 118, 148, 140, 145, 123, 133, 140, 136, 141, 144, 142, 134, 132, 126, 135, 142, 141, 137, 145, 140, 133, 134, 145, 149, 150, 96, 136, 137, 131, 143, 143, 143, 130, 121, 136, 152, 126, 120, 127, 161, 137, 154, 140, 122, 129, 152, 134, 147, 143, 149, 141, 142, 141, 127, 147, 147, 137, 130, 157, 138, 132, 138, 130, 153, 134, 132, 135, 152, 137, 118, 158, 118, 133, 143, 129, 143, 146, 133, 129, 130, 123, 144, 152, 137, 151, 132, 127, 134, 132, 134, 126, 140, 148, 127, 138, 119, 129, 135, 135, 131, 133, 150, 113, 128, 132, 137, 149, 137, 129, 144, 138, 151, 126, 145, 132, 131, 129, 134, 126, 139, 139, 148, 153, 117, 153, 125, 147, 137, 150, 141, 141, 141, 152, 136, 123, 134, 144, 127, 135, 143, 124, 132, 130, 126, 134, 138, 129, 144, 138, 137, 118, 139, 126, 134, 128, 125, 135, 140, 141, 138, 125, 131, 141, 125, 127, 135, 125, 110, 127, 127, 146, 148, 147, 128, 134, 141, 137, 145, 122, 127, 140, 141, 132, 133, 141, 145, 126, 131, 140, 147, 140, 144, 143, 139, 126, 152, 138, 137, 129, 122, 129, 145, 139, 140, 151, 129, 130, 145, 148, 147, 130, 142, 130, 133, 146, 136, 138, 130, 124, 138, 129, 144, 137, 139, 138, 125, 128, 146, 144, 135, 127, 148, 135, 148, 148, 130, 130, 131, 138, 145, 142, 155, 143, 143, 144, 120, 135, 143, 154, 157, 134, 148, 122, 135, 124, 148, 140, 133, 125, 130, 123, 137, 130, 148, 127, 118, 156, 132, 122, 134, 137, 154, 130, 139, 141, 139, 138, 154, 134, 126, 147, 143, 135, 122, 128, 134, 137, 144, 146, 143, 133, 139, 136, 151, 122, 148, 123, 147, 140, 131, 124, 130, 146, 141, 135, 140, 116, 117, 133, 129, 132, 140, 134, 141, 139, 135, 136, 142, 134, 132, 153, 129, 126, 146, 149, 138, 144, 135, 149, 128, 146, 126, 135, 136, 153, 116, 107, 143, 136, 123, 160, 135, 147, 153, 149, 156, 144, 119, 140, 130, 128, 148, 128, 132, 131, 140, 142, 148, 122, 125, 135, 132, 136, 132, 136, 140, 134, 136, 133, 140, 134, 134, 128, 129, 138, 132, 137, 140, 134, 130, 132, 138, 135, 135, 134, 136, 133, 139, 135, 131, 137, 133, 123, 138, 137, 137, 134, 135, 135, 136, 136, 131, 135, 135, 132, 135, 137, 138, 136, 134, 178, 136, 146, 133, 134, 132, 135, 139, 140, 138, 137, 134, 132, 131, 138, 143, 136, 98, 138, 137, 149, 137, 138, 132, 135, 134, 134, 136, 137, 134, 134, 139, 133, 138, 139, 133, 137, 136, 134, 132, 123, 142, 129, 136, 140, 137, 132, 132, 135, 132, 138, 133, 137, 138, 138, 133, 122, 143, 135, 139, 132, 137, 175, 139, 137, 139, 133, 140, 145, 152, 136, 136, 131, 135, 136, 139, 134, 138, 135, 136, 135, 133, 163, 140, 158, 144, 139, 135, 132, 137, 133, 138, 134, 135, 138, 133, 134, 140, 133, 131, 134, 133, 135, 138, 140, 140, 136, 147, 137, 135, 137, 137, 138, 131, 140, 137, 135, 132, 139, 134, 134, 155, 137, 139, 141, 137, 127, 135, 137, 132, 133, 136, 137, 142, 130, 136, 136, 136, 138, 135, 135, 138, 136, 135, 148, 141, 131, 137, 135, 136, 138, 137, 140, 138, 140, 131, 136, 148, 126, 135, 131, 134, 139, 138, 140, 135, 145, 134, 138, 140, 134, 136, 133, 139, 135, 139, 136, 137, 154, 131, 133, 132, 135, 136, 133, 137, 136, 132, 137, 139, 138, 141, 135, 139, 133, 139, 138, 137, 139, 135, 136, 139, 135, 137, 135, 141, 138, 139, 138, 135, 137, 139, 141, 142, 141, 131, 135, 135, 137, 135, 118, 139, 138, 135, 135, 134, 135, 134, 132, 140, 138, 134, 133, 133, 134, 124, 140, 141, 134, 138, 136, 136, 135, 136, 141, 134, 137, 141, 137, 138, 139, 140, 137, 135, 139, 135, 109, 132, 137, 134, 137, 141, 143, 139, 137, 137, 132, 138, 136, 141, 137, 128, 125, 139, 136, 134, 136, 138, 135, 143, 135, 134, 139, 135, 136, 123, 140, 94, 140, 138, 135, 135, 139, 121, 140, 138, 140, 137, 138, 135, 137, 136, 136, 131, 141, 134, 138, 138, 132, 134, 138, 128, 136, 137, 140, 152, 139, 137, 137, 139, 138, 122, 152, 135, 137, 138, 138, 138, 135, 132, 139, 141, 142, 135, 135, 134, 134, 124, 135, 134, 134, 143, 137, 133, 136, 134, 124, 140, 132, 139, 134, 135, 134, 135, 137, 164, 140, 138, 132, 124, 135, 135, 129, 136, 137, 138, 139, 140, 134, 139, 141, 133, 142, 137, 135, 129, 135, 135, 132, 139, 135, 137, 135, 136, 145, 137, 139, 127, 138, 138, 141, 135, 139, 133, 138, 135, 137, 137, 138, 136, 132, 139, 137, 133, 154, 134, 130, 134, 134, 134, 138, 148, 136, 138, 141, 136, 134, 134, 149, 133, 140, 136, 134, 135, 133, 138, 136, 135, 134, 136, 138, 166, 134, 134, 135, 138, 134, 136, 136, 136, 136, 137, 141, 134, 137, 138, 132, 134, 136, 135, 136, 134, 135, 135, 148, 134, 134, 140, 140, 134, 135, 138, 136, 131, 136, 131, 132, 125, 148, 130, 140, 145, 119, 133, 140, 149, 144, 138, 112, 137, 142, 137, 132, 141, 130, 155, 145, 133, 136, 139, 126, 160, 135, 135, 135, 136, 146, 135, 155, 126, 140, 142, 130, 117, 130, 138, 137, 138, 145, 140, 143, 143, 146, 142, 136, 160, 157, 147, 137, 123, 138, 133, 132, 131, 132, 136, 121, 138, 128, 132, 136, 136, 135, 120, 132, 144, 143, 136, 147, 141, 133, 128, 123, 143, 150, 131, 124, 127, 126, 133, 126, 139, 129, 123, 133, 131, 149, 133, 125, 135, 141, 135, 128, 145, 122, 137, 130, 125, 142, 129, 146, 129, 133, 142, 135, 130, 155, 144, 119, 124, 128, 144, 149, 138, 137, 130, 134, 127, 140, 125, 124, 121, 133, 141, 133, 132, 139, 132, 152, 133, 139, 140, 127, 141, 145, 134, 142, 132, 108, 153, 155, 126, 132, 127, 134, 157, 129, 142, 130, 139, 138, 136, 131, 137, 124, 127, 136, 136, 157, 142, 138, 136, 99, 135, 129, 134, 133, 145, 140, 138, 145, 136, 134, 128, 139, 133, 139, 132, 114, 123, 135, 120, 136, 145, 139, 131, 138, 142, 137, 117, 137, 145, 144, 139, 134, 132, 138, 133, 134, 133, 143, 141, 126, 137, 142, 123, 134, 144, 135, 140, 134, 144, 142, 140, 120, 126, 132, 119, 139, 143, 134, 121, 119, 135, 131, 130, 133, 137, 129, 139, 139, 122, 137, 137, 141, 130, 133, 129, 148, 130, 132, 129, 141, 155, 125, 141, 130, 133, 128, 135, 135, 133, 144, 135, 130, 129, 135, 138, 146, 130, 131, 132, 129, 123, 139, 122, 128, 128, 140, 133, 134, 118, 131, 150, 137, 136, 131, 135, 134, 126, 147, 115, 133, 114, 135, 136, 133, 157, 124, 111, 125, 138, 126, 140, 139, 130, 127, 135, 132, 139, 130, 139, 134, 154, 136, 136, 131, 129, 129, 155, 122, 138, 132, 128, 143, 118, 122, 132, 136, 141, 134, 156, 121, 139, 119, 128, 132, 137, 146, 143, 132, 135, 119, 127, 148, 136, 129, 134, 145, 118, 143, 147, 130, 142, 144, 126, 129, 144, 134, 133, 128, 134, 147, 140, 138, 143, 131, 133, 141, 129, 139, 146, 146, 131, 138, 126, 137, 129, 135, 132, 136, 138, 131, 140, 127, 135, 135, 143, 135, 140, 135, 126, 146, 136, 142, 134, 135, 141, 139, 144, 133, 144, 125, 137, 139, 136, 138, 134, 138, 126, 146, 128, 123, 136, 118, 140, 132, 154, 147, 131, 144, 129, 135, 151, 137, 143, 130, 137, 147, 121, 146, 144, 143, 141, 138, 123, 144, 135, 139, 135, 129, 165, 145, 133, 121, 167, 127, 129, 139, 140, 134, 140, 137, 137, 139, 142, 135, 147, 139, 132, 139, 144, 141, 139, 132, 131, 121, 130, 144, 138, 139, 128, 128, 128, 141, 126, 125, 139, 135, 130, 133, 143, 125, 132, 134, 145, 130, 144, 154, 135, 142, 135, 147, 142, 141, 136, 129, 125, 137, 136, 148, 141, 131, 136, 127, 140, 138, 127, 126, 134, 143, 145, 140, 140, 124, 118, 139, 139, 133, 120, 128, 149, 149, 143, 124, 140, 151, 134, 137, 131, 142, 128, 133, 143, 124, 115, 136, 125, 132, 141, 132, 142, 126, 137, 145, 136, 137, 148, 124, 129, 140, 122, 135, 127, 137, 131, 152, 145, 144, 137, 153, 155, 115, 130, 139, 137, 127, 150, 134, 142, 132, 135, 123, 135, 138, 134, 142, 145, 123, 143, 132, 131, 131, 139, 147, 145, 131, 129, 143, 152, 143, 118, 133, 132, 132, 142, 130, 126, 123, 125, 129, 141, 128, 134, 139, 139, 134, 140, 138, 134, 137, 144, 133, 143, 146, 142, 133, 131, 134, 153, 136, 152, 135, 124, 143, 151, 139, 137, 134, 130, 136, 137, 120, 147, 121, 138, 125, 152, 147, 130, 142, 139, 117, 142, 146, 155, 138, 132, 142, 135, 119, 131, 128, 150, 143, 128, 142, 127, 142, 122, 118, 148, 126, 141, 143, 141, 122, 141, 140, 139, 131, 138, 151, 134, 133, 137, 124, 146, 136, 124, 145, 143, 144, 142, 124, 129, 130, 138, 144, 133, 130, 135, 146, 136, 140, 147, 142, 127, 148, 125, 131, 135, 148, 126, 136, 157, 124, 124, 137, 120, 143, 142, 131, 148, 169, 138, 125, 130, 140, 134, 140, 134, 133, 144, 144, 133, 132, 135, 117, 136, 136, 139, 141, 130, 130, 138, 140, 133, 130, 130, 133, 144, 139, 139, 136, 145, 130, 135, 130, 144, 140, 129, 129, 134, 141, 136, 139, 147, 138, 147, 145, 136, 151, 131, 131, 145, 124, 128, 154, 123, 125, 135, 133, 138, 127, 141, 143, 120, 131, 126, 130, 147, 143, 110, 136, 133, 142, 133, 132, 150, 133, 137, 131, 126, 122, 144, 117, 130, 125, 144, 138, 121, 143, 137, 117, 142, 129, 135, 137, 136, 133, 134, 133, 133, 138, 131, 121, 133, 134, 130, 126, 158, 139, 138, 119, 135, 137, 108, 133, 129, 135, 133, 117, 126, 125, 121, 140, 129, 157, 133, 146, 124, 119, 129, 129, 154, 127, 134, 158, 139, 121, 134, 140, 125, 136, 126, 137, 135, 140, 124, 139, 132, 133, 140, 121, 149, 127, 132, 141, 130, 127, 124, 129, 128, 152, 128, 141, 138, 139, 144, 134, 128, 137, 137, 145, 136, 141, 137, 130, 136, 133, 121, 142, 134, 134, 141, 151, 130, 129, 145, 125, 144, 136, 129, 138, 146, 115, 140, 150, 122, 133, 140, 131, 135, 133, 128, 133, 138, 148, 131, 127, 138, 135, 138, 129, 123, 152, 126, 134, 151, 131, 141, 140, 141, 135, 140, 128, 132, 131, 132, 147, 140, 152, 138, 141, 139, 127, 139, 143, 139, 134, 133, 129, 137, 142, 135, 122, 149, 136, 140, 143, 150, 138, 145, 141, 145, 132, 135, 133, 131, 132, 150, 147, 145, 152, 138, 116, 126, 159, 136, 132, 140, 136, 130, 141, 152, 148, 137, 131, 132, 126, 154, 130, 138, 136, 129, 134, 117, 144, 124, 148, 147, 124, 125, 128, 142, 138, 138, 131, 132, 130, 148, 144, 129, 135, 117, 133, 116, 136, 127, 133, 130, 123, 140, 145, 126, 168, 144, 133, 129, 139, 132, 137, 131, 126, 132, 129, 131, 148, 151, 145, 166, 126, 139, 133, 118, 132, 131, 132, 140, 127, 125, 136, 123, 137, 142, 131, 113, 135, 128, 145, 129, 132, 134, 125, 139, 125, 142, 129, 123, 136, 140, 126, 137, 131, 123, 135, 118, 201, 133, 142, 131, 132, 151, 143, 143, 147, 124, 121, 147, 145, 157, 121, 126, 154, 139, 136, 153, 135, 128, 146, 120, 141, 132, 135, 140, 159, 128, 123, 145, 130, 132, 142, 139, 134, 137, 129, 135, 135, 133, 142, 124, 125, 127, 137, 152, 126, 129, 133, 123, 150, 138, 141, 119, 153, 123, 128, 136, 138, 135, 156, 134, 146, 128, 140, 151, 134, 143, 135, 131, 127, 153, 92, 142, 147, 133, 135, 140, 121, 133, 132, 133, 131, 120, 128, 136, 123, 120, 142, 124, 125, 125, 127, 131, 133, 124, 142, 119, 140, 143, 139, 138, 147, 147, 130, 131, 140, 167, 138, 111, 114, 134, 155, 155, 125, 124, 126, 116, 146, 122, 134, 135, 121, 149, 141, 142, 125, 137, 134, 132, 111, 137, 129, 136, 126, 142, 126, 123, 126, 143, 129, 140, 144, 139, 130, 141, 135, 132, 138, 129, 128, 145, 128, 141, 122, 127, 132, 119, 143, 126, 130, 134, 131, 136, 133, 139, 156, 126, 131, 132, 135, 135, 132, 140, 145, 138, 130, 146, 126, 121, 139, 134, 136, 139, 135, 127, 133, 134, 119, 122, 129, 141, 158, 142, 134, 133, 123, 129, 163, 140, 151, 137, 138, 128, 169, 132, 127, 130, 127, 136, 118, 141, 132, 128, 141, 141, 123, 150, 164, 131, 136, 139, 137, 130, 121, 122, 140, 131, 144, 119, 125, 132, 143, 124, 135, 123, 137, 138, 143, 130, 157, 127, 138, 138, 131, 137, 133, 122, 127, 132, 132, 137, 138, 128, 136, 138, 145, 124, 130, 123, 151, 124, 142, 133, 133, 129, 160, 131, 128, 142, 151, 132, 140, 124, 141, 139, 139, 135, 139, 147, 135, 131, 138, 119, 138, 100, 128, 141, 128, 139, 140, 134, 150, 121, 138, 114, 141, 126, 140, 137, 130, 142, 136, 125, 184, 152, 139, 134, 145, 129, 134, 137, 166, 140, 136, 124, 137, 139, 129, 135, 129, 132, 123, 126, 131, 139, 117, 129, 141, 132, 128, 135, 129, 122, 134, 127, 136, 122, 133, 135, 131, 140, 137, 132, 120, 143, 124, 130, 132, 134, 110, 137, 153, 140, 137, 137, 134, 158, 123, 122, 127, 150, 133, 134, 126, 138, 126, 135, 128, 143, 109, 124, 122, 148, 140, 132, 122, 154, 127, 136, 130, 132, 134, 137, 143, 145, 129, 124, 133, 136, 138, 136, 131, 134, 140, 153, 135, 122, 127, 132, 133, 132, 137, 131, 131, 139, 125, 107, 144, 136, 150, 121, 122, 124, 138, 129, 135, 129, 126, 120, 131, 134, 134, 142, 126, 120, 139, 131, 132, 135, 130, 148, 145, 159, 118, 132, 142, 135, 145, 142, 164, 127, 134, 143, 131, 137, 128, 140, 149, 134, 142, 160, 134, 130, 127, 148, 123, 144, 130, 137, 135, 139, 131, 133, 144, 133, 148, 145, 137, 137, 132, 134, 135, 135, 139, 120, 136, 138, 141, 129, 135, 142, 135, 131, 134, 141, 144, 148, 144, 128, 138, 139, 139, 140, 130, 128, 123, 136, 130, 134, 125, 127, 141, 141, 142, 139, 132, 144, 138, 142, 137, 130, 140, 149, 141, 128, 143, 136, 136, 143, 145, 147, 131, 145, 137, 137, 130, 131, 136, 127, 136, 131, 132, 122, 138, 139, 146, 135, 123, 138, 131, 144, 130, 138, 132, 137, 141, 138, 128, 124, 124, 139, 138, 151, 135, 139, 140, 140, 141, 136, 134, 134, 130, 138, 145, 142, 134, 136, 129, 143, 144, 134, 142, 137, 138, 133, 132, 135, 136, 138, 141, 138, 133, 139, 130, 138, 123, 130, 128, 144, 129, 134, 140, 138, 144, 140, 131, 140, 134, 138, 144, 123, 130, 145, 120, 141, 132, 139, 130, 138, 141, 126, 136, 143, 130, 143, 121, 135, 132, 130, 135, 134, 141, 132, 141, 137, 134, 142, 131, 138, 141, 143, 136, 135, 134, 143, 141, 133, 138, 134, 139, 129, 133, 141, 129, 126, 123, 138, 141, 132, 133, 140, 131, 137, 142, 130, 135, 129, 140, 140, 132, 138, 139, 139, 141, 133, 135, 132, 144, 136, 138, 127, 133, 136, 140, 133, 136, 140, 131, 145, 132, 128, 139, 128, 128, 140, 132, 128, 135, 131, 128, 148, 132, 141, 142, 132, 130, 139, 131, 138, 138, 146, 131, 142, 128, 137, 137, 144, 137, 134, 136, 128, 137, 131, 132, 132, 135, 133, 141, 138, 136, 122, 139, 134, 132, 157, 130, 133, 135, 138, 132, 146, 135, 127, 137, 145, 136, 130, 137, 132, 134, 143, 123, 129, 134, 145, 134, 148, 151, 180, 135, 143, 126, 138, 136, 132, 131, 139, 132, 135, 148, 158, 135, 129, 127, 132, 127, 145, 133, 138, 129, 138, 140, 141, 136, 132, 138, 131, 135, 135, 137, 135, 140, 140, 142, 132, 146, 147, 134, 139, 130, 114, 138, 144, 139, 137, 138, 133, 145, 125, 128, 134, 128, 148, 136, 126, 134, 133, 136, 133, 129, 127, 138, 151, 139, 139, 137, 126, 137, 134, 135, 134, 133, 134, 139, 132, 150, 136, 143, 137, 138, 123, 136, 133, 132, 129, 147, 138, 138, 138, 135, 136, 140, 130, 133, 137, 134, 131, 129, 140, 128, 133, 136, 118, 139, 141, 152, 141, 143, 130, 131, 150, 133, 136, 137, 140, 116, 129, 136, 133, 138, 135, 145, 145, 141, 142, 144, 137, 144, 136, 133, 131, 119, 130, 137, 146, 155, 135, 139, 140, 134, 133, 134, 137, 142, 140, 144, 140, 142, 131, 152, 148, 153, 141, 141, 138, 129, 131, 144, 136, 146, 137, 136, 137, 130, 128, 144, 137, 147, 134, 139, 107, 140, 144, 139, 131, 137, 125, 141, 151, 140, 132, 131, 141, 137, 125, 140, 141, 132, 132, 136, 151, 131, 147, 141, 137, 134, 133, 135, 138, 135, 139, 135, 137, 134, 128, 118, 141, 145, 128, 143, 145, 130, 129, 126, 128, 133, 143, 144, 141, 131, 138, 126, 138, 143, 145, 144, 148, 123, 121, 136, 126, 134, 128, 147, 134, 145, 135, 132, 135, 134, 133, 143, 137, 140, 137, 136, 139, 132, 146, 136, 136, 128, 127, 134, 135, 130, 134, 130, 133, 125, 141, 155, 128, 148, 127, 136, 142, 136, 125, 133, 139, 134, 125, 129, 118, 123, 134, 128, 136, 129, 117, 130, 130, 140, 141, 135, 132, 138, 127, 136, 128, 139, 134, 137, 150, 144, 138, 144, 146, 121, 139, 138, 136, 130, 130, 131, 140, 132, 133, 143, 129, 147, 143, 135, 130, 141, 137, 129, 134, 165, 136, 130, 143, 141, 133, 140, 131, 137, 126, 141, 134, 138, 146, 145, 147, 122, 150, 137, 121, 126, 131, 133, 142, 131, 148, 143, 130, 133, 142, 139, 132, 135, 129, 136, 133, 135, 129, 140, 137, 142, 121, 130, 135, 140, 134, 159, 137, 129, 138, 143, 147, 126, 140, 146, 134, 142, 138, 134, 140, 150, 140, 136, 146, 150, 133, 153, 121, 129, 146, 139, 134, 129, 138, 130, 130, 141, 144, 142, 135, 133, 141, 140, 133, 139, 139, 148, 138, 118, 120, 139, 128, 135, 147, 142, 142, 133, 121, 132, 139, 138, 133, 148, 142, 148, 137, 124, 141, 139, 140, 134, 144, 145, 146, 129, 136, 136, 126, 131, 130, 130, 151, 130, 168, 136, 155, 138, 132, 135, 154, 133, 117, 129, 136, 138, 138, 127, 127, 141, 141, 148, 148, 137, 128, 134, 130, 138, 122, 149, 131, 130, 134, 142, 140, 141, 134, 138, 135, 130, 128, 135, 142, 135, 128, 148, 128, 130, 134, 136, 132, 140, 144, 137, 128, 134, 137, 139, 135, 143, 128, 138, 135, 139, 131, 128, 137, 135, 148, 137, 134, 132, 135, 137, 140, 140, 138, 130, 135, 127, 128, 143, 137, 133, 137, 140, 141, 138, 130, 137, 123, 131, 136, 139, 134, 132, 138, 135, 126, 133, 149, 136, 132, 137, 137, 136, 131, 131, 136, 143, 143, 137, 127, 133, 131, 139, 133, 138, 134, 143, 135, 143, 141, 141, 133, 129, 134, 134, 139, 133, 132, 125, 123, 135, 139, 142, 158, 131, 148, 136, 128, 138, 134, 138, 130, 134, 139, 137, 135, 127, 130, 137, 144, 133, 136, 132, 148, 135, 122, 138, 136, 135, 131, 134, 131, 147, 126, 138, 141, 128, 137, 131, 130, 131, 140, 145, 133, 130, 132, 130, 132, 128, 122, 139, 140, 147, 135, 131, 134, 141, 135, 133, 126, 128, 132, 130, 123, 144, 145, 136, 126, 131, 144, 138, 146, 139, 140, 139, 136, 123, 131, 147, 149, 129, 114, 135, 137, 142, 141, 143, 141, 138, 141, 146, 130, 143, 136, 152, 140, 136, 141, 150, 124, 125, 136, 132, 135, 135, 127, 140, 130, 136, 134, 118, 139, 145, 131, 137, 138, 134, 130, 123, 149, 135, 130, 132, 125, 147, 141, 131, 124, 131, 136, 135, 143, 152, 147, 136, 122, 140, 147, 130, 144, 134, 141, 136, 136, 139, 141, 132, 136, 128, 133, 128, 136, 136, 121, 132, 131, 139, 131, 140, 130, 130, 137, 123, 153, 147, 136, 124, 138, 155, 138, 136, 141, 136, 139, 138, 146, 135, 126, 135, 139, 144, 132, 123, 135, 135, 149, 131, 144, 128, 137, 143, 125, 147, 144, 137, 136, 121, 139, 127, 135, 134, 150, 129, 136, 170, 142, 141, 135, 142, 140, 128, 143, 135, 143, 140, 151, 137, 123, 118, 130, 140, 135, 131, 129, 131, 146, 131, 130, 125, 141, 145, 142, 139, 142, 132, 125, 115, 155, 128, 128, 137, 153, 140, 146, 125, 140, 143, 145, 123, 127, 145, 126, 128, 138, 136, 142, 143, 138, 145, 119, 133, 128, 142, 128, 134, 118, 139, 144, 136, 127, 138, 141, 141, 126, 145, 138, 143, 138, 121, 142, 141, 124, 129, 144, 135, 126, 144, 137, 134, 160, 142, 131, 130, 124, 138, 130, 127, 127, 127, 146, 132, 131, 128, 113, 128, 134, 117, 139, 139, 148, 137, 126, 133, 129, 130, 135, 122, 134, 141, 118, 132, 138, 142, 135, 138, 125, 138, 140, 124, 141, 136, 135, 139, 136, 147, 131, 144, 139, 124, 126, 138, 133, 133, 137, 131, 148, 136, 135, 145, 139, 144, 150, 131, 123, 133, 128, 142, 128, 128, 129, 141, 133, 130, 139, 130, 132, 139, 111, 132, 136, 140, 140, 135, 133, 168, 129, 130, 148, 132, 134, 133, 133, 140, 124, 113, 133, 133, 135, 125, 134, 128, 153, 135, 137, 130, 142, 128, 125, 125, 138, 159, 139, 128, 130, 129, 148, 135, 114, 144, 136, 140, 120, 127, 123, 131, 128, 136, 133, 135, 139, 124, 136, 127, 139, 123, 131, 129, 126, 131, 133, 123, 139, 147, 127, 135, 143, 139, 130, 134, 136, 133, 122, 135, 123, 139, 143, 125, 125, 124, 138, 144, 148, 123, 136, 136, 130, 133, 136, 136, 133, 134, 136, 143, 122, 141, 132, 133, 140, 151, 121, 139, 140, 130, 136, 145, 135, 140, 147, 146, 129, 132, 141, 129, 137, 130, 129, 125, 133, 142, 132, 135, 162, 130, 145, 126, 137, 110, 130, 135, 125, 142, 136, 143, 126, 137, 140, 147, 138, 136, 125, 131, 135, 137, 136, 133, 138, 132, 138, 129, 147, 143, 128, 138, 143, 131, 142, 149, 125, 134, 145, 154, 118, 136, 129, 137, 126, 129, 138, 136, 132, 133, 141, 135, 129, 128, 143, 161, 143, 138, 132, 131, 146, 131, 138, 123, 142, 139, 148, 126, 130, 142, 131, 134, 140, 132, 131, 108, 143, 125, 132, 151, 125, 149, 132, 133, 133, 131, 132, 129, 147, 158, 138, 143, 134, 131, 131, 139, 132, 121, 121, 126, 140, 129, 139, 151, 135, 138, 133, 143, 131, 134, 131, 130, 126, 129, 139, 154, 141, 143, 125, 120, 131, 129, 143, 124, 130, 132, 145, 134, 144, 128, 121, 140, 137, 133, 133, 148, 127, 134, 135, 149, 126, 131, 131, 127, 111, 133, 130, 120, 128, 149, 130, 141, 138, 128, 145, 143, 147, 121, 136, 131, 135, 151, 132, 134, 135, 137, 133, 131, 132, 158, 122, 129, 149, 129, 138, 153, 124, 131, 141, 136, 145, 135, 135, 141, 139, 148, 145, 142, 137, 134, 139, 134, 143, 143, 126, 137, 126, 143, 144, 147, 132, 145, 136, 152, 128, 134, 139, 139, 139, 135, 141, 127, 142, 134, 144, 131, 149, 139, 132, 124, 147, 146, 139, 135, 129, 147, 129, 129, 140, 146, 135, 141, 126, 139, 131, 137, 136, 142, 141, 135, 136, 151, 134, 138, 140, 124, 115, 134, 148, 142, 134, 139, 140, 132, 135, 136, 134, 145, 122, 153, 128, 138, 133, 141, 148, 138, 140, 136, 127, 147, 130, 138, 131, 138, 136, 146, 131, 144, 129, 132, 136, 151, 133, 125, 140, 128, 144, 125, 138, 138, 148, 147, 133, 150, 134, 125, 130, 132, 141, 129, 133, 146, 126, 144, 146, 133, 129, 140, 137, 136, 126, 134, 138, 142, 139, 126, 141, 134, 143, 136, 125, 155, 121, 138, 135, 134, 136, 135, 142, 131, 131, 137, 131, 130, 131, 136, 130, 129, 130, 133, 131, 129, 138, 136, 135, 144, 146, 135, 131, 137, 139, 142, 133, 140, 128, 139, 135, 139, 123, 135, 143, 136, 126, 134, 141, 140, 169, 136, 134, 113, 130, 135, 157, 129, 137, 138, 138, 132, 149, 95, 146, 129, 134, 143, 134, 138, 144, 132, 136, 149, 132, 145, 143, 134, 128, 131, 143, 134, 126, 138, 123, 141, 141, 140, 149, 138, 129, 145, 144, 137, 150, 140, 136, 128, 143, 134, 138, 131, 127, 135, 131, 147, 118, 141, 136, 136, 137, 135, 127, 129, 136, 131, 126, 139, 157, 137, 129, 130, 140, 104, 119, 143, 134, 134, 134, 144, 132, 130, 142, 127, 132, 125, 128, 136, 140, 148, 135, 146, 132, 134, 137, 130, 134, 136, 127, 130, 130, 138, 135, 140, 136, 143, 139, 134, 141, 148, 139, 137, 136, 129, 128, 135, 139, 140, 136, 134, 132, 138, 128, 147, 138, 137, 132, 134, 134, 135, 126, 148, 127, 141, 136, 134, 139, 142, 141, 140, 142, 131, 138, 122, 135, 130, 134, 133, 148, 133, 138, 133, 138, 140, 140, 135, 132, 147, 134, 140, 149, 130, 144, 105, 143, 137, 145, 147, 127, 138, 151, 128, 124, 126, 120, 133, 133, 134, 143, 140, 128, 135, 145, 140, 119, 149, 137, 138, 147, 142, 143, 141, 137, 132, 148, 147, 133, 132, 145, 135, 142, 142, 132, 131, 137, 136, 139, 130, 130, 132, 148, 142, 137, 135, 143, 134, 139, 140, 135, 132, 148, 139, 126, 127, 137, 134, 146, 126, 149, 133, 135, 135, 137, 143, 131, 129, 139, 122, 135, 142, 134, 134, 134, 147, 141, 130, 140, 147, 123, 141, 141, 128, 138, 123, 135, 130, 140, 131, 141, 133, 129, 149, 136, 142, 141, 154, 129, 127, 136, 140, 132, 133, 135, 143, 145, 136, 134, 136, 135, 143, 153, 128, 143, 137, 146, 125, 139, 151, 141, 136, 143, 138, 136, 138, 147, 128, 133, 135, 126, 135, 139, 144, 125, 135, 137, 133, 127, 129, 122, 133, 130, 137, 136, 137, 140, 137, 130, 140, 158, 138, 145, 128, 134, 150, 140, 135, 118, 143, 140, 131, 151, 137, 130, 135, 137, 130, 121, 135, 122, 111, 142, 137, 141, 139, 129, 119, 133, 130, 140, 156, 136, 118, 129, 162, 123, 135, 134, 142, 134, 133, 121, 152, 137, 145, 138, 123, 129, 145, 142, 127, 134, 147, 139, 135, 136, 151, 131, 138, 133, 133, 136, 129, 119, 145, 127, 134, 134, 121, 130, 141, 142, 128, 151, 117, 127, 137, 142, 129, 125, 132, 130, 123, 138, 147, 137, 141, 150, 131, 119, 126, 127, 147, 132, 149, 145, 134, 149, 141, 147, 137, 134, 136, 139, 119, 141, 125, 125, 135, 130, 124, 122, 145, 130, 134, 130, 126, 162, 137, 123, 136, 119, 142, 131, 133, 149, 138, 162, 131, 153, 126, 129, 144, 137, 136, 144, 135, 125, 130, 136, 130, 130, 121, 126, 131, 133, 128, 135, 119, 119, 139, 126, 132, 162, 101, 153, 121, 131, 128, 169, 140, 133, 139, 134, 152, 132, 134, 137, 136, 150, 135, 138, 120, 120, 131, 175, 131, 123, 134, 132, 131, 141, 136, 127, 130, 143, 147, 125, 127, 123, 135, 127, 132, 140, 129, 123, 143, 149, 130, 156, 127, 137, 125, 124, 129, 124, 133, 131, 114, 151, 130, 134, 141, 127, 134, 132, 129, 133, 140, 130, 131, 139, 125, 144, 138, 128, 123, 139, 145, 120, 125, 129, 140, 149, 132, 126, 117, 134, 136, 140, 134, 128, 149, 133, 134, 148, 120, 144, 133, 157, 137, 138, 125, 136, 136, 144, 128, 137, 142, 144, 162, 139, 152, 120, 142, 139, 133, 131, 144, 124, 146, 142, 139, 149, 147, 137, 153, 133, 145, 122, 120, 156, 128, 140, 137, 131, 132, 137, 148, 139, 136, 148, 121, 142, 128, 124, 137, 135, 128, 134, 128, 132, 127, 135, 143, 138, 140, 132, 143, 133, 142, 136, 135, 138, 140, 144, 133, 133, 130, 154, 152, 151, 146, 136, 129, 140, 126, 145, 126, 134, 131, 149, 123, 135, 152, 132, 132, 148, 151, 155, 127, 117, 133, 139, 155, 139, 134, 135, 147, 123, 147, 124, 120, 139, 130, 129, 127, 135, 137, 128, 127, 149, 118, 134, 114, 127, 131, 127, 133, 125, 128, 127, 143, 131, 135, 141, 144, 137, 135, 128, 124, 127, 136, 125, 129, 136, 134, 152, 131, 146, 148, 148, 145, 135, 128, 135, 137, 128, 159, 129, 127, 135, 138, 130, 129, 120, 128, 132, 128, 150, 145, 141, 137, 135, 152, 135, 147, 130, 125, 141, 139, 133, 139, 127, 139, 160, 135, 141, 152, 140, 145, 149, 129, 118, 148, 127, 131, 155, 132, 130, 124, 135, 129, 136, 135, 125, 139, 130, 129, 132, 131, 143, 144, 132, 132, 137, 134, 128, 116, 134, 142, 136, 135, 122, 137, 126, 131, 138, 134, 140, 130, 152, 138, 135, 138, 143, 128, 118, 120, 131, 122, 134, 142, 147, 119, 140, 128, 110, 140, 133, 155, 124, 135, 137, 148, 125, 115, 136, 150, 139, 141, 142, 121, 110, 116, 135, 126, 136, 162, 125, 143, 134, 147, 109, 141, 136, 139, 130, 118, 138, 136, 135, 124, 131, 144, 140, 133, 127, 143, 139, 128, 137, 140, 164, 121, 145, 133, 122, 130, 116, 128, 148, 117, 139, 131, 134, 139, 132, 137, 137, 134, 153, 140, 149, 132, 128, 124, 133, 130, 123, 132, 121, 141, 128, 143, 146, 131, 137, 143, 133, 128, 123, 27, 135, 130, 150, 134, 143, 142, 131, 128, 135, 137, 136, 137, 173, 131, 134, 126, 121, 143, 120, 151, 130, 156, 122, 133, 138, 147, 133, 137, 134, 139, 135, 151, 150, 121, 114, 117, 133, 141, 134, 136, 144, 137, 128, 132, 126, 141, 130, 129, 153, 137, 122, 135, 128, 141, 106, 140, 141, 127, 144, 151, 135, 149, 132, 137, 130, 162, 136, 134, 151, 138, 144, 145, 156, 84, 123, 146, 132, 131, 135, 120, 138, 133, 137, 131, 124, 120, 139, 141, 107, 131, 137, 146, 132, 117, 134, 130, 147, 137, 144, 132, 140, 117, 135, 138, 136, 128, 129, 136, 147, 135, 127, 136, 133, 136, 137, 130, 126, 143, 129, 132, 126, 153, 134, 133, 139, 130, 133, 127, 132, 135, 134, 125, 128, 132, 139, 127, 134, 140, 128, 129, 136, 142, 135, 136, 127, 138, 132, 131, 136, 136, 137, 127, 136, 129, 136, 124, 125, 131, 125, 126, 129, 136, 128, 137, 141, 139, 129, 143, 135, 135, 140, 146, 136, 134, 132, 148, 138, 147, 137, 142, 124, 120, 140, 137, 141, 134, 133, 132, 140, 120, 134, 133, 140, 139, 137, 134, 137, 139, 126, 136, 119, 148, 143, 133, 123, 148, 144, 134, 138, 127, 127, 99, 130, 129, 124, 142, 130, 138, 131, 141, 132, 123, 136, 139, 140, 154, 118, 128, 135, 138, 140, 121, 135, 141, 136, 136, 137, 129, 131, 134, 140, 109, 132, 144, 142, 142, 134, 156, 116, 140, 134, 137, 142, 141, 146, 140, 146, 134, 139, 135, 139, 155, 142, 130, 133, 128, 138, 146, 137, 131, 114, 139, 125, 137, 133, 145, 142, 142, 139, 129, 150, 126, 134, 135, 130, 126, 127, 121, 136, 126, 138, 136, 125, 144, 129, 139, 135, 134, 144, 147, 130, 130, 133, 150, 124, 150, 145, 139, 143, 135, 131, 136, 112, 116, 118, 141, 154, 118, 140, 137, 137, 145, 138, 126, 131, 133, 145, 143, 132, 143, 132, 134, 136, 157, 125, 142, 130, 133, 118, 139, 127, 128, 132, 135, 131, 148, 137, 142, 124, 102, 139, 153, 138, 152, 130, 116, 148, 151, 155, 127, 135, 143, 139, 138, 131, 133, 130, 134, 131, 156, 131, 137, 126, 127, 134, 138, 132, 132, 145, 134, 142, 133, 136, 150, 140, 148, 152, 136, 136, 146, 128, 134, 140, 140, 127, 143, 140, 121, 141, 143, 139, 134, 145, 117, 127, 140, 144, 136, 115, 133, 137, 133, 121, 123, 127, 131, 124, 132, 132, 140, 145, 128, 124, 145, 118, 126, 126, 132, 140, 138, 138, 137, 132, 140, 141, 140, 117, 138, 134, 150, 136, 93, 127, 147, 139, 133, 122, 137, 147, 126, 138, 140, 151, 141, 137, 138, 154, 135, 145, 126, 120, 131, 141, 144, 141, 134, 125, 119, 137, 123, 135, 132, 130, 138, 144, 142, 125, 122, 149, 142, 128, 133, 140, 128, 137, 129, 153, 133, 131, 118, 132, 133, 137, 140, 140, 140, 128, 133, 144, 121, 150, 149, 154, 139, 131, 118, 133, 140, 127, 133, 143, 137, 137, 143, 133, 134, 127, 133, 138, 138, 141, 141, 130, 130, 137, 148, 136, 131, 132, 135, 136, 133, 131, 131, 144, 134, 138, 135, 132, 132, 143, 132, 143, 128, 137, 136, 133, 134, 135, 130, 134, 135, 139, 125, 155, 126, 122, 139, 138, 135, 155, 139, 129, 137, 110, 135, 133, 133, 138, 138, 141, 132, 136, 141, 145, 150, 130, 143, 132, 144, 132, 135, 122, 146, 122, 137, 132, 133, 130, 134, 131, 136, 128, 135, 136, 132, 141, 129, 113, 136, 132, 139, 138, 144, 142, 133, 132, 134, 147, 142, 166, 136, 150, 132, 131, 130, 123, 132, 127, 134, 129, 132, 134, 133, 136, 142, 134, 131, 151, 129, 141, 121, 126, 129, 134, 136, 135, 145, 139, 127, 138, 127, 135, 122, 140, 119, 136, 146, 135, 140, 130, 133, 133, 136, 155, 126, 121, 135, 134, 136, 121, 127, 168, 130, 136, 140, 136, 126, 138, 128, 130, 128, 121, 128, 138, 137, 141, 125, 124, 133, 144, 124, 154, 132, 141, 126, 127, 126, 146, 132, 132, 135, 138, 126, 141, 130, 125, 144, 125, 146, 138, 144, 141, 132, 137, 151, 140, 148, 145, 139, 140, 150, 138, 136, 125, 124, 125, 138, 131, 135, 123, 134, 126, 133, 131, 128, 130, 145, 151, 141, 129, 141, 135, 132, 129, 129, 131, 137, 130, 134, 124, 131, 137, 128, 128, 130, 130, 125, 131, 132, 139, 155, 139, 138, 138, 132, 133, 142, 134, 143, 132, 135, 145, 131, 120, 131, 129, 140, 139, 118, 131, 149, 135, 129, 135, 122, 129, 128, 138, 138, 141, 123, 145, 125, 141, 145, 132, 134, 154, 135, 119, 144, 130, 141, 136, 133, 134, 144, 140, 127, 130, 139, 135, 148, 132, 130, 135, 137, 130, 135, 136, 124, 124, 125, 150, 129, 142, 141, 150, 125, 141, 124, 128, 122, 141, 129, 141, 137, 139, 135, 136, 141, 127, 135, 129, 127, 128, 130, 149, 129, 141, 134, 146, 152, 140, 134, 129, 134, 129, 140, 128, 126, 128, 128, 124, 143, 129, 149, 131, 136, 141, 137, 126, 137, 132, 128, 136, 144, 130, 139, 156, 133, 142, 132, 127, 144, 140, 126, 134, 130, 145, 148, 134, 143, 136, 134, 137, 135, 154, 141, 132, 127, 124, 142, 152, 141, 133, 127, 120, 130, 146, 120, 142, 144, 128, 142, 140, 130, 140, 138, 134, 139, 142, 133, 139, 146, 148, 131, 127, 131, 130, 139, 135, 148, 135, 145, 114, 137, 140, 146, 135, 113, 163, 136, 145, 156, 127, 121, 126, 130, 139, 137, 150, 137, 145, 136, 132, 133, 124, 136, 130, 137, 126, 141, 146, 135, 132, 113, 131, 129, 121, 148, 136, 132, 137, 131, 134, 128, 131, 161, 137, 134, 131, 121, 139, 139, 116, 129, 134, 139, 128, 123, 142, 136, 138, 133, 136, 141, 143, 123, 147, 145, 148, 141, 140, 136, 138, 138, 138, 138, 159, 143, 145, 137, 135, 133, 149, 118, 130, 128, 149, 139, 151, 131, 137, 145, 115, 152, 125, 137, 134, 127, 126, 143, 146, 148, 149, 145, 138, 144, 130, 151, 142, 152, 130, 128, 123, 130, 138, 127, 135, 140, 129, 117, 130, 140, 129, 120, 132, 129, 130, 145, 127, 144, 138, 135, 148, 113, 137, 128, 141, 133, 134, 133, 125, 137, 140, 147, 131, 141, 140, 144, 133, 134, 130, 137, 131, 135, 120, 124, 137, 122, 141, 143, 134, 134, 135, 132, 144, 130, 135, 145, 141, 128, 121, 150, 138, 140, 133, 143, 138, 153, 129, 138, 144, 136, 132, 128, 130, 139, 143, 145, 132, 148, 134, 132, 132, 134, 153, 160, 139, 136, 150, 118, 128, 129, 127, 128, 131, 151, 144, 149, 134, 129, 150, 134, 130, 134, 135, 131, 133, 139, 137, 130, 140, 136, 131, 142, 135, 143, 146, 136, 130, 141, 145, 134, 137, 140, 135, 134, 143, 144, 146, 134, 132, 141, 134, 129, 144, 127, 138, 145, 142, 132, 132, 128, 141, 143, 136, 136, 127, 138, 145, 128, 131, 137, 129, 138, 140, 140, 132, 126, 140, 137, 133, 140, 149, 140, 136, 128, 136, 117, 146, 137, 146, 134, 141, 134, 141, 135, 133, 141, 135, 144, 131, 137, 130, 134, 137, 136, 133, 124, 139, 150, 127, 135, 139, 138, 138, 130, 127, 126, 147, 130, 135, 124, 131, 135, 143, 136, 133, 137, 147, 137, 125, 141, 126, 136, 140, 132, 147, 130, 131, 143, 137, 150, 128, 129, 142, 132, 133, 131, 125, 134, 129, 118, 124, 146, 144, 130, 137, 146, 130, 134, 131, 123, 139, 129, 142, 144, 134, 128, 134, 133, 129, 130, 132, 140, 143, 129, 137, 139, 149, 128, 126, 132, 138, 145, 137, 135, 135, 127, 138, 118, 146, 142, 133, 138, 127, 133, 126, 144, 122, 147, 130, 145, 144, 128, 130, 139, 132, 135, 139, 141, 139, 138, 148, 132, 129, 136, 134, 134, 140, 130, 135, 146, 134, 137, 138, 144, 143, 138, 137, 142, 134, 136, 139, 138, 136, 129, 125, 129, 126, 146, 139, 133, 138, 141, 138, 137, 124, 134, 141, 129, 127, 121, 146, 134, 135, 133, 143, 146, 135, 126, 134, 121, 134, 141, 138, 146, 128, 122, 125, 134, 131, 135, 136, 132, 126, 129, 133, 136, 137, 119, 131, 134, 124, 133, 138, 126, 128, 143, 131, 135, 128, 143, 126, 129, 128, 141, 131, 130, 129, 129, 129, 139, 131, 136, 134, 142, 137, 138, 135, 137, 135, 134, 132, 139, 134, 140, 157, 118, 137, 143, 120, 134, 132, 135, 141, 135, 140, 127, 134, 139, 134, 131, 128, 124, 136, 122, 137, 142, 124, 138, 130, 137, 139, 134, 140, 135, 150, 135, 119, 149, 136, 136, 128, 122, 144, 147, 146, 143, 130, 120, 155, 150, 141, 127, 135, 124, 129, 127, 144, 143, 136, 129, 136, 123, 140, 137, 145, 136, 128, 152, 146, 139, 148, 136, 132, 130, 135, 139, 151, 133, 138, 125, 144, 141, 126, 137, 129, 135, 141, 139, 132, 124, 130, 139, 139, 139, 153, 140, 137, 131, 130, 129, 123, 137, 113, 144, 139, 133, 130, 137, 137, 138, 114, 127, 142, 139, 138, 138, 134, 146, 131, 140, 124, 125, 146, 138, 131, 137, 129, 138, 136, 145, 128, 140, 140, 126, 137, 125, 127, 130, 147, 128, 139, 140, 122, 135, 143, 137, 130, 143, 140, 140, 143, 140, 145, 129, 137, 136, 129, 137, 139, 133, 142, 124, 131, 140, 137, 137, 147, 125, 138, 131, 140, 143, 143, 120, 119, 130, 140, 124, 145, 137, 121, 120, 132, 142, 165, 138, 126, 141, 142, 141, 138, 136, 133, 146, 131, 128, 136, 85, 143, 129, 134, 128, 162, 124, 134, 107, 141, 149, 122, 116, 150, 140, 141, 136, 139, 141, 143, 142, 132, 140, 134, 124, 130, 149, 137, 142, 131, 102, 136, 125, 128, 131, 131, 135, 137, 134, 134, 118, 139, 140, 136, 139, 145, 149, 120, 133, 118, 129, 133, 142, 138, 134, 138, 139, 140, 122, 149, 147, 155, 151, 130, 139, 142, 145, 127, 124, 131, 128, 144, 141, 137, 130, 126, 133, 138, 134, 128, 136, 132, 148, 135, 147, 125, 133, 136, 134, 130, 129, 140, 118, 133, 132, 132, 130, 142, 134, 140, 144, 138, 132, 138, 146, 140, 105, 129, 125, 135, 138, 142, 151, 120, 142, 143, 136, 139, 137, 131, 141, 144, 133, 161, 137, 141, 136, 147, 133, 139, 133, 133, 127, 134, 143, 144, 130, 135, 141, 137, 135, 143, 134, 124, 133, 144, 137, 135, 143, 135, 118, 136, 137, 121, 125, 132, 150, 93, 102, 130, 158, 140, 131, 144, 146, 128, 135, 128, 132, 147, 133, 141, 142, 138, 143, 125, 127, 137, 140, 134, 138, 129, 136, 134, 140, 127, 128, 138, 130, 152, 143, 137, 144, 124, 133, 146, 135, 143, 145, 128, 111, 133, 135, 131, 141, 142, 138, 104, 139, 144, 141, 119, 135, 142, 140, 139, 139, 131, 140, 124, 138, 125, 129, 145, 125, 140, 147, 136, 137, 148, 129, 129, 141, 144, 98, 91, 124, 125, 131, 141, 137, 123, 132, 142, 136, 138, 128, 140, 154, 139, 149, 137, 166, 132, 132, 146, 133, 139, 147, 141, 138, 136, 130, 109, 123, 131, 136, 165, 135, 132, 131, 116, 145, 144, 131, 129, 144, 137, 135, 151, 133, 140, 144, 149, 123, 136, 118, 143, 143, 142, 134, 143, 130, 142, 130, 128, 137, 137, 140, 181, 138, 132, 141, 119, 130, 136, 132, 138, 140, 102, 132, 146, 132, 141, 143, 140, 134, 145, 133, 121, 151, 134, 150, 178, 126, 145, 82, 122, 139, 115, 141, 133, 117, 133, 126, 142, 136, 138, 135, 140, 133, 134, 133, 134, 128, 140, 144, 136, 136, 141, 154, 130, 123, 147, 143, 134, 142, 129, 133, 135, 138, 137, 132, 126, 133, 143, 154, 138, 152, 132, 132, 126, 141, 144, 138, 133, 143, 147, 141, 130, 152, 140, 143, 148, 129, 132, 138, 143, 157, 129, 139, 138, 123, 130, 134, 132, 141, 139, 129, 124, 133, 140, 132, 135, 135, 126, 149, 144, 136, 132, 112, 133, 133, 124, 137, 130, 136, 144, 143, 130, 135, 137, 141, 139, 134, 136, 137, 146, 136, 140, 155, 139, 137, 143, 148, 134, 137, 132, 131, 143, 123, 144, 136, 144, 137, 143, 124, 151, 139, 138, 120, 159, 147, 126, 132, 131, 144, 135, 126, 134, 156, 128, 139, 141, 128, 130, 125, 150, 146, 121, 136, 148, 125, 131, 136, 128, 141, 141, 132, 139, 149, 145, 143, 146, 130, 130, 123, 132, 128, 145, 137, 147, 141, 130, 132, 138, 137, 136, 137, 135, 148, 149, 132, 136, 142, 135, 139, 138, 125, 135, 151, 132, 141, 143, 126, 134, 135, 131, 138, 137, 121, 143, 128, 137, 124, 138, 148, 136, 145, 134, 134, 131, 131, 134, 132, 139, 144, 139, 149, 144, 136, 133, 134, 142, 125, 136, 129, 130, 139, 140, 136, 145, 140, 128, 153, 134, 144, 151, 140, 138, 130, 161, 140, 121, 143, 144, 140, 121, 137, 134, 144, 127, 142, 126, 136, 137, 150, 133, 142, 133, 140, 132, 145, 119, 138, 135, 134, 128, 141, 141, 147, 125, 138, 136, 125, 137, 130, 150, 135, 136, 131, 147, 129, 139, 144, 128, 136, 136, 137, 153, 135, 124, 137, 134, 129, 145, 132, 137, 128, 127, 134, 151, 136, 136, 133, 145, 125, 134, 137, 141, 136, 135, 131, 141, 136, 133, 148, 124, 136, 142, 128, 145, 142, 142, 130, 143, 135, 147, 147, 128, 146, 139, 135, 135, 151, 149, 139, 137, 127, 140, 147, 138, 116, 143, 130, 133, 132, 135, 146, 145, 139, 117, 137, 142, 149, 133, 133, 135, 127, 145, 127, 145, 155, 140, 134, 140, 133, 135, 128, 138, 152, 132, 140, 115, 144, 130, 130, 156, 128, 139, 133, 112, 146, 134, 132, 135, 134, 139, 142, 141, 130, 144, 146, 128, 149, 134, 134, 141, 129, 124, 135, 136, 135, 139, 136, 140, 150, 134, 129, 142, 137, 138, 136, 137, 131, 129, 134, 131, 132, 157, 144, 135, 138, 134, 126, 153, 134, 149, 139, 155, 139, 150, 127, 121, 139, 129, 143, 132, 143, 137, 146, 134, 149, 134, 139, 131, 135, 131, 140, 138, 145, 147, 151, 142, 128, 127, 137, 144, 135, 136, 119, 137, 141, 145, 137, 134, 133, 142, 139, 127, 142, 128, 145, 133, 129, 131, 141, 129, 136, 137, 130, 123, 128, 146, 155, 137, 134, 145, 130, 131, 131, 133, 146, 133, 152, 151, 133, 127, 132, 127, 129, 134, 133, 141, 130, 144, 135, 132, 138, 137, 138, 133, 148, 141, 155, 135, 122, 137, 141, 122, 135, 151, 142, 125, 144, 120, 137, 137, 131, 132, 145, 128, 135, 136, 136, 145, 135, 146, 135, 148, 138, 146, 111, 136, 135, 126, 139, 134, 139, 139, 138, 150, 138, 126, 140, 132, 136, 143, 156, 128, 143, 144, 128, 137, 125, 142, 144, 143, 130, 130, 148, 138, 135, 134, 124, 130, 131, 131, 145, 134, 122, 125, 120, 151, 140, 141, 137, 148, 132, 140, 141, 128, 145, 143, 143, 132, 132, 139, 140, 132, 151, 140, 128, 120, 144, 145, 137, 127, 130, 145, 136, 134, 160, 143, 131, 125, 133, 130, 113, 144, 121, 131, 141, 127, 143, 138, 150, 113, 129, 146, 127, 136, 129, 137, 136, 129, 118, 149, 140, 129, 133, 158, 140, 158, 143, 119, 136, 129, 134, 120, 130, 140, 135, 134, 133, 112, 131, 138, 123, 143, 137, 143, 133, 135, 128, 126, 156, 137, 137, 114, 147, 143, 132, 136, 137, 126, 140, 136, 144, 143, 142, 127, 142, 143, 126, 129, 124, 131, 140, 136, 153, 126, 150, 145, 128, 143, 150, 143, 141, 149, 134, 129, 130, 138, 148, 139, 126, 145, 142, 132, 106, 142, 150, 144, 158, 125, 139, 138, 135, 133, 138, 132, 127, 133, 148, 122, 134, 128, 132, 129, 140, 136, 124, 131, 145, 146, 110, 140, 130, 133, 132, 140, 142, 137, 136, 135, 126, 123, 142, 121, 137, 143, 130, 152, 136, 131, 119, 134, 131, 134, 147, 130, 131, 148, 128, 126, 123, 138, 129, 143, 132, 142, 141, 121, 131, 120, 143, 137, 136, 127, 130, 136, 129, 134, 162, 126, 137, 132, 130, 145, 125, 142, 134, 123, 135, 137, 131, 130, 138, 147, 146, 141, 144, 120, 145, 137, 133, 130, 127, 135, 145, 142, 146, 134, 137, 135, 137, 151, 124, 138, 133, 139, 149, 139, 147, 137, 140, 121, 136, 147, 133, 125, 157, 132, 127, 128, 134, 135, 152, 128, 141, 135, 142, 140, 140, 132, 129, 138, 134, 128, 130, 126, 132, 140, 116, 119, 122, 130, 138, 134, 132, 119, 140, 124, 148, 137, 144, 130, 118, 136, 117, 135, 130, 142, 121, 138, 142, 130, 139, 133, 136, 158, 140, 137, 131, 131, 141, 154, 119, 142, 138, 132, 146, 128, 125, 126, 124, 136, 143, 123, 145, 138, 132, 135, 134, 146, 123, 141, 144, 146, 153, 148, 132, 124, 143, 154, 113, 136, 123, 133, 129, 128, 135, 129, 135, 143, 141, 140, 143, 151, 145, 141, 134, 160, 121, 137, 145, 123, 146, 143, 139, 133, 151, 125, 128, 143, 134, 138, 141, 136, 152, 152, 145, 142, 130, 135, 153, 129, 140, 134, 154, 123, 142, 112, 144, 141, 134, 146, 133, 132, 139, 132, 149, 136, 154, 145, 169, 136, 120, 155, 133, 124, 120, 123, 125, 146, 135, 133, 141, 129, 140, 135, 123, 156, 149, 131, 123, 154, 131, 146, 143, 129, 129, 130, 143, 115, 138, 139, 152, 140, 132, 145, 146, 147, 134, 144, 144, 119, 127, 133, 136, 156, 118, 132, 115, 136, 137, 159, 135, 138, 145, 122, 139, 109, 136, 127, 159, 133, 134, 150, 138, 131, 127, 122, 128, 119, 149, 157, 138, 149, 134, 159, 144, 117, 138, 129, 141, 125, 130, 130, 135, 152, 127, 135, 141, 122, 133, 157, 132, 125, 142, 141, 131, 132, 121, 154, 133, 141, 131, 137, 154, 136, 135, 132, 135, 128, 124, 136, 143, 141, 134, 136, 130, 148, 125, 130, 142, 134, 147, 142, 132, 138, 134, 142, 130, 136, 139, 141, 131, 135, 122, 132, 130, 138, 134, 134, 130, 137, 138, 139, 138, 130, 139, 132, 147, 131, 128, 131, 124, 143, 140, 130, 146, 139, 136, 131, 133, 130, 139, 133, 134, 142, 132, 129, 134, 141, 138, 132, 135, 132, 139, 129, 132, 148, 126, 134, 135, 133, 132, 115, 125, 139, 127, 135, 128, 134, 135, 130, 132, 133, 140, 142, 137, 141, 140, 144, 137, 142, 137, 145, 132, 132, 134, 138, 137, 147, 130, 128, 145, 142, 144, 129, 135, 129, 136, 138, 131, 137, 132, 129, 127, 128, 134, 152, 137, 129, 126, 132, 136, 138, 134, 128, 132, 141, 143, 139, 135, 123, 140, 133, 133, 129, 133, 135, 137, 147, 143, 133, 135, 123, 133, 140, 133, 140, 142, 131, 128, 135, 146, 148, 132, 160, 142, 130, 147, 138, 125, 130, 122, 146, 135, 133, 142, 133, 131, 122, 131, 130, 151, 139, 135, 132, 138, 128, 140, 122, 141, 128, 131, 140, 133, 144, 141, 140, 149, 144, 143, 132, 129, 148, 132, 132, 133, 127, 147, 142, 129, 136, 136, 130, 127, 146, 126, 140, 146, 142, 131, 144, 134, 145, 135, 127, 143, 150, 131, 132, 137, 118, 136, 131, 127, 128, 124, 124, 127, 132, 130, 131, 126, 143, 128, 132, 149, 144, 136, 146, 142, 135, 134, 137, 136, 137, 130, 144, 121, 142, 128, 128, 140, 150, 135, 124, 110, 141, 140, 129, 130, 131, 134, 130, 128, 150, 130, 140, 125, 119, 135, 136, 123, 142, 130, 129, 139, 140, 149, 138, 135, 135, 128, 138, 144, 138, 131, 141, 123, 125, 129, 131, 136, 127, 135, 154, 132, 126, 136, 136, 133, 136, 143, 134, 150, 147, 123, 138, 123, 128, 151, 127, 138, 135, 127, 137, 140, 129, 132, 164, 130, 126, 140, 142, 123, 127, 147, 138, 144, 139, 139, 131, 135, 133, 138, 135, 141, 112, 131, 151, 144, 125, 145, 117, 133, 134, 141, 131, 141, 135, 128, 129, 132, 130, 136, 137, 138, 128, 138, 133, 138, 132, 140, 129, 117, 113, 139, 144, 133, 138, 134, 126, 139, 136, 141, 140, 133, 133, 144, 137, 139, 143, 152, 130, 136, 142, 132, 134, 131, 141, 143, 126, 126, 114, 132, 129, 136, 134, 142, 133, 128, 137, 143, 135, 133, 132, 132, 126, 135, 119, 140, 145, 149, 121, 135, 134, 118, 128, 137, 140, 138, 137, 139, 129, 135, 131, 137, 131, 152, 154, 138, 138, 119, 130, 139, 143, 137, 141, 125, 115, 127, 136, 129, 129, 135, 138, 137, 132, 141, 130, 143, 134, 131, 131, 129, 140, 136, 164, 141, 123, 147, 131, 135, 130, 135, 124, 140, 119, 134, 138, 133, 132, 136, 138, 132, 142, 110, 124, 135, 144, 137, 136, 129, 128, 140, 127, 139, 118, 145, 134, 137, 127, 136, 138, 130, 131, 132, 145, 133, 134, 146, 136, 144, 139, 135, 128, 144, 139, 117, 139, 135, 127, 145, 143, 123, 144, 138, 132, 135, 136, 142, 145, 134, 131, 131, 134, 125, 133, 130, 132, 139, 131, 136, 132, 127, 126, 130, 143, 131, 131, 128, 139, 146, 139, 131, 136, 127, 133, 133, 132, 137, 128, 136, 135, 134, 141, 132, 139, 98, 150, 152, 123, 126, 134, 143, 139, 138, 149, 131, 137, 148, 134, 138, 133, 133, 139, 136, 129, 121, 125, 136, 136, 139, 144, 131, 136, 136, 144, 140, 138, 128, 133, 129, 132, 134, 135, 127, 136, 138, 133, 120, 126, 132, 132, 142, 135, 131, 130, 144, 152, 136, 114, 133, 130, 142, 135, 146, 146, 125, 137, 142, 133, 139, 138, 141, 141, 131, 138, 150, 137, 133, 151, 139, 165, 152, 162, 143, 130, 132, 133, 137, 134, 139, 137, 131, 125, 136, 141, 121, 144, 128, 131, 104, 144, 97, 143, 127, 130, 135, 145, 146, 155, 141, 143, 140, 143, 121, 143, 140, 133, 123, 133, 141, 117, 139, 133, 142, 137, 131, 141, 130, 140, 134, 137, 134, 147, 151, 144, 137, 135, 138, 128, 139, 132, 137, 161, 124, 144, 145, 138, 138, 141, 134, 131, 133, 139, 115, 159, 127, 154, 128, 130, 123, 123, 140, 136, 148, 140, 136, 139, 108, 140, 123, 145, 139, 142, 144, 123, 134, 127, 119, 133, 139, 135, 136, 128, 117, 137, 126, 119, 142, 140, 130, 132, 138, 142, 139, 139, 140, 138, 132, 135, 133, 133, 139, 137, 149, 167, 132, 141, 150, 136, 126, 142, 118, 144, 131, 141, 120, 134, 126, 139, 139, 123, 120, 139, 144, 127, 127, 136, 133, 144, 118, 127, 137, 126, 140, 126, 138, 170, 130, 132, 132, 130, 140, 151, 124, 136, 116, 136, 136, 121, 138, 123, 127, 179, 135, 127, 147, 138, 150, 138, 147, 137, 148, 131, 137, 143, 145, 153, 139, 132, 133, 138, 130, 142, 128, 169, 135, 114, 127, 125, 139, 126, 131, 138, 132, 132, 155, 132, 135, 123, 135, 131, 118, 120, 133, 127, 132, 144, 139, 126, 139, 135, 134, 142, 130, 134, 107, 140, 139, 131, 134, 141, 141, 138, 138, 133, 148, 121, 126, 132, 161, 162, 134, 146, 139, 133, 127, 147, 138, 136, 137, 136, 150, 137, 121, 134, 133, 131, 136, 137, 120, 134, 142, 134, 131, 137, 129, 136, 136, 119, 131, 135, 135, 142, 132, 140, 162, 126, 142, 136, 143, 138, 132, 141, 133, 134, 135, 136, 133, 126, 109, 127, 142, 133, 133, 132, 139, 135, 136, 137, 145, 141, 137, 136, 118, 137, 142, 133, 132, 138, 129, 128, 144, 134, 132, 146, 128, 137, 137, 127, 126, 164, 140, 133, 143, 131, 132, 137, 140, 132, 132, 137, 149, 132, 140, 142, 140, 137, 155, 137, 134, 133, 131, 131, 137, 133, 137, 127, 124, 143, 135, 152, 135, 106, 143, 139, 137, 144, 138, 135, 130, 142, 136, 137, 147, 133, 135, 138, 131, 134, 128, 146, 129, 135, 118, 143, 141, 157, 141, 141, 142, 131, 127, 139, 134, 133, 142, 130, 136, 133, 135, 132, 150, 128, 149, 143, 142, 146, 136, 132, 131, 129, 134, 123, 136, 138, 135, 135, 135, 127, 133, 148, 135, 132, 140, 131, 130, 140, 148, 145, 150, 118, 136, 149, 120, 130, 136, 102, 140, 131, 141, 133, 135, 123, 125, 142, 126, 137, 130, 114, 137, 125, 143, 138, 129, 139, 140, 120, 137, 132, 143, 130, 134, 135, 144, 121, 147, 145, 119, 147, 148, 140, 132, 140, 148, 134, 121, 129, 139, 132, 121, 119, 150, 139, 136, 137, 145, 152, 136, 131, 109, 121, 143, 149, 129, 125, 142, 126, 128, 146, 152, 135, 125, 147, 145, 139, 129, 131, 137, 135, 137, 146, 139, 130, 126, 147, 139, 142, 124, 119, 139, 136, 129, 142, 148, 136, 134, 147, 137, 129, 121, 136, 135, 126, 131, 123, 135, 146, 143, 126, 142, 130, 149, 143, 146, 136, 141, 142, 130, 141, 129, 134, 130, 128, 146, 131, 125, 140, 133, 135, 140, 129, 143, 136, 147, 129, 129, 132, 145, 139, 138, 128, 128, 134, 138, 141, 137, 142, 133, 151, 126, 135, 150, 129, 134, 140, 140, 129, 138, 130, 140, 169, 137, 130, 129, 125, 139, 121, 133, 125, 150, 154, 137, 128, 141, 131, 139, 133, 131, 123, 135, 131, 141, 132, 133, 141, 147, 138, 121, 130, 122, 137, 135, 137, 127, 126, 133, 138, 164, 150, 115, 142, 136, 136, 135, 119, 131, 127, 141, 135, 137, 130, 149, 140, 130, 135, 142, 137, 129, 132, 117, 131, 138, 131, 130, 152, 131, 144, 153, 123, 138, 134, 134, 134, 144, 150, 124, 134, 138, 143, 149, 124, 133, 143, 145, 135, 134, 150, 128, 149, 152, 136, 144, 131, 135, 121, 169, 133, 136, 135, 140, 142, 143, 138, 148, 125, 150, 136, 134, 129, 153, 141, 144, 125, 127, 130, 120, 131, 120, 133, 127, 133, 142, 127, 139, 119, 131, 124, 139, 142, 142, 128, 122, 139, 138, 149, 146, 130, 133, 135, 135, 131, 136, 136, 126, 119, 122, 141, 134, 134, 134, 135, 152, 149, 144, 147, 139, 135, 137, 141, 153, 147, 145, 138, 122, 144, 129, 132, 126, 137, 127, 131, 134, 127, 146, 132, 141, 130, 140, 125, 132, 139, 125, 130, 140, 136, 125, 140, 145, 135, 126, 133, 144, 148, 153, 125, 131, 130, 152, 136, 143, 114, 126, 133, 124, 132, 153, 125, 141, 134, 120, 135, 130, 134, 137, 134, 128, 140, 154, 133, 140, 134, 158, 139, 124, 141, 127, 117, 126, 133, 140, 131, 139, 129, 130, 140, 143, 134, 140, 133, 137, 132, 137, 144, 128, 130, 145, 132, 129, 122, 143, 123, 139, 147, 139, 129, 140, 153, 132, 134, 148, 142, 150, 128, 136, 139, 125, 128, 135, 134, 139, 126, 132, 135, 131, 128, 136, 126, 127, 129, 139, 140, 125, 137, 132, 137, 138, 128, 128, 123, 128, 137, 136, 143, 151, 137, 130, 138, 146, 139, 122, 141, 123, 126, 134, 133, 133, 132, 140, 126, 129, 134, 144, 139, 134, 135, 148, 146, 130, 126, 140, 147, 139, 142, 134, 121, 144, 125, 142, 115, 129, 149, 137, 121, 137, 136, 130, 148, 112, 137, 150, 135, 124, 137, 141, 142, 137, 127, 151, 146, 151, 133, 142, 150, 144, 150, 145, 122, 160, 122, 134, 135, 126, 140, 131, 128, 144, 139, 157, 155, 152, 131, 144, 107, 136, 144, 146, 144, 137, 128, 125, 145, 147, 138, 131, 154, 134, 143, 139, 126, 127, 123, 124, 135, 128, 147, 128, 133, 138, 113, 136, 156, 146, 145, 147, 116, 129, 142, 150, 123, 122, 127, 123, 121, 134, 166, 131, 126, 137, 125, 139, 135, 151, 134, 128, 143, 139, 123, 141, 119, 140, 147, 122, 131, 133, 132, 141, 125, 139, 132, 143, 125, 143, 133, 146, 150, 151, 140, 133, 138, 127, 119, 127, 132, 134, 144, 126, 128, 126, 136, 137, 134, 138, 134, 149, 132, 124, 142, 130, 131, 145, 139, 129, 119, 140, 134, 139, 113, 149, 136, 138, 145, 152, 129, 139, 136, 116, 133, 143, 136, 130, 126, 155, 137, 147, 139, 142, 141, 136, 134, 140, 141, 135, 136, 130, 135, 120, 137, 125, 134, 163, 142, 125, 143, 135, 123, 135, 145, 137, 132, 118, 128, 146, 132, 135, 132, 141, 136, 154, 144, 131, 128, 117, 137, 135, 137, 112, 132, 121, 145, 121, 126, 128, 130, 137, 124, 139, 144, 119, 126, 136, 138, 138, 136, 133, 133, 127, 133, 139, 147, 148, 140, 127, 132, 135, 140, 120, 148, 145, 120, 137, 150, 144, 139, 119, 130, 117, 144, 124, 145, 135, 132, 132, 154, 131, 143, 142, 134, 125, 145, 129, 135, 148, 139, 125, 123, 156, 135, 115, 133, 118, 128, 129, 137, 138, 142, 142, 122, 153, 138, 171, 131, 145, 126, 131, 143, 144, 124, 120, 126, 150, 130, 158, 116, 145, 132, 136, 120, 122, 141, 136, 140, 138, 133, 131, 135, 135, 132, 119, 126, 132, 110, 147, 146, 135, 140, 140, 136, 154, 134, 141, 125, 133, 138, 137, 129, 145, 123, 141, 149, 150, 137, 119, 143, 142, 132, 123, 131, 135, 157, 115, 129, 123, 132, 155, 144, 127, 130, 142, 134, 139, 141, 126, 135, 159, 126, 150, 141, 139, 131, 139, 122, 132, 128, 138, 130, 139, 136, 150, 132, 166, 144, 130, 135, 147, 127, 129, 127, 133, 127, 139, 146, 143, 134, 163, 145, 131, 125, 135, 134, 107, 135, 133, 131, 130, 118, 155, 138, 131, 140, 133, 133, 128, 140, 157, 138, 163, 119, 133, 133, 151, 123, 134, 125, 154, 126, 142, 126, 138, 137, 122, 127, 117, 142, 132, 145, 131, 135, 132, 145, 136, 181, 151, 142, 131, 149, 148, 151, 124, 139, 143, 127, 134, 142, 141, 122, 125, 133, 141, 129, 137, 137, 129, 130, 139, 134, 136, 127, 133, 125, 125, 132, 129, 122, 139, 145, 122, 133, 127, 135, 147, 146, 125, 124, 149, 140, 173, 139, 137, 137, 140, 134, 133, 122, 142, 122, 140, 138, 148, 128, 154, 129, 142, 141, 136, 134, 135, 128, 136, 138, 137, 134, 131, 133, 137, 143, 145, 146, 137, 141, 139, 133, 143, 138, 133, 137, 129, 139, 129, 131, 138, 126, 137, 140, 151, 130, 134, 133, 140, 136, 138, 130, 132, 125, 131, 142, 136, 115, 133, 128, 131, 133, 145, 139, 140, 131, 128, 129, 129, 135, 138, 136, 135, 143, 147, 134, 136, 129, 136, 134, 130, 137, 132, 133, 132, 138, 134, 141, 145, 135, 134, 119, 143, 139, 138, 131, 132, 131, 120, 124, 139, 138, 132, 132, 140, 136, 139, 127, 132, 150, 125, 145, 132, 134, 128, 135, 134, 127, 132, 130, 145, 136, 141, 141, 132, 143, 127, 132, 138, 132, 139, 126, 132, 142, 141, 135, 134, 121, 125, 126, 133, 139, 129, 141, 141, 129, 130, 133, 140, 132, 151, 140, 140, 130, 132, 136, 127, 132, 132, 139, 122, 141, 137, 132, 120, 144, 139, 129, 128, 134, 142, 133, 137, 139, 135, 139, 133, 138, 129, 131, 139, 133, 149, 136, 132, 138, 156, 142, 134, 135, 132, 132, 136, 135, 136, 137, 125, 142, 140, 141, 138, 129, 138, 148, 133, 132, 137, 133, 137, 141, 132, 134, 133, 134, 133, 133, 140, 140, 145, 133, 129, 137, 136, 142, 140, 137, 139, 137, 137, 151, 133, 146, 136, 143, 135, 136, 143, 136, 135, 128, 144, 141, 140, 135, 130, 128, 136, 139, 145, 136, 132, 138, 138, 137, 130, 146, 140, 132, 134, 134, 129, 139, 129, 122, 128, 146, 143, 131, 137, 145, 138, 132, 140, 140, 136, 133, 141, 124, 131, 138, 125, 142, 130, 133, 140, 154, 136, 140, 130, 148, 137, 141, 137, 138, 131, 126, 129, 137, 148, 130, 141, 135, 133, 133, 140, 149, 136, 119, 127, 138, 139, 152, 134, 144, 148, 125, 138, 136, 129, 129, 135, 137, 135, 131, 133, 125, 135, 130, 134, 138, 137, 141, 129, 136, 133, 136, 138, 139, 132, 135, 138, 138, 132, 134, 133, 133, 150, 136, 135, 131, 133, 138, 139, 126, 136, 136, 128, 133, 133, 135, 138, 123, 134, 124, 132, 131, 137, 124, 119, 135, 140, 128, 145, 138, 139, 140, 135, 132, 135, 135, 132, 129, 140, 132, 131, 132, 129, 145, 137, 124, 136, 136, 138, 133, 133, 139, 130, 146, 139, 142, 143, 135, 135, 136, 130, 122, 134, 136, 131, 137, 130, 148, 141, 131, 138, 132, 138, 133, 134, 138, 128, 137, 137, 130, 135, 134, 144, 144, 114, 129, 143, 131, 126, 135, 138, 140, 133, 139, 133, 134, 135, 131, 139, 139, 126, 148, 131, 125, 131, 146, 132, 145, 132, 123, 133, 140, 134, 124, 146, 132, 162, 132, 134, 145, 131, 135, 132, 133, 134, 133, 130, 137, 135, 122, 135, 137, 127, 133, 136, 135, 129, 147, 129, 129, 140, 153, 133, 143, 130, 138, 127, 133, 133, 131, 138, 132, 132, 138, 139, 137, 146, 143, 139, 128, 138, 138, 135, 141, 128, 132, 130, 130, 133, 136, 130, 128, 127, 132, 136, 118, 134, 129, 139, 135, 136, 142, 123, 123, 145, 136, 149, 139, 132, 132, 130, 128, 130, 134, 130, 131, 134, 160, 138, 142, 114, 136, 139, 124, 133, 138, 132, 146, 124, 146, 146, 140, 124, 120, 130, 147, 132, 148, 138, 122, 154, 137, 138, 127, 144, 143, 142, 145, 137, 136, 140, 143, 131, 140, 138, 124, 137, 142, 138, 130, 129, 144, 132, 144, 131, 149, 130, 129, 130, 151, 140, 137, 128, 129, 144, 124, 139, 139, 129, 139, 152, 135, 140, 143, 143, 133, 134, 133, 144, 132, 138, 126, 138, 132, 138, 126, 143, 132, 145, 131, 128, 121, 129, 153, 134, 134, 126, 129, 146, 126, 141, 145, 167, 132, 139, 148, 133, 142, 150, 151, 124, 124, 140, 155, 144, 131, 139, 127, 155, 140, 151, 149, 137, 146, 134, 135, 132, 135, 132, 134, 136, 128, 127, 129, 138, 140, 134, 136, 135, 124, 115, 132, 126, 122, 130, 140, 123, 122, 140, 140, 137, 134, 139, 131, 136, 132, 128, 142, 130, 137, 134, 158, 131, 135, 140, 129, 131, 131, 127, 155, 138, 140, 142, 146, 133, 130, 136, 144, 134, 150, 122, 146, 144, 149, 145, 131, 139, 148, 134, 133, 142, 129, 127, 151, 149, 134, 132, 133, 150, 135, 125, 129, 123, 136, 134, 141, 138, 127, 123, 141, 137, 130, 141, 131, 140, 147, 131, 141, 121, 132, 139, 133, 139, 131, 145, 125, 123, 132, 131, 139, 132, 140, 146, 142, 125, 161, 134, 134, 128, 141, 138, 141, 136, 138, 145, 141, 140, 137, 151, 125, 131, 135, 138, 123, 125, 138, 137, 142, 132, 143, 152, 133, 125, 139, 136, 128, 148, 150, 138, 138, 152, 143, 140, 135, 130, 134, 136, 131, 132, 137, 133, 136, 132, 132, 120, 123, 127, 138, 132, 130, 139, 139, 122, 142, 123, 136, 146, 130, 144, 149, 136, 138, 131, 141, 143, 129, 130, 135, 148, 136, 122, 129, 123, 139, 138, 132, 130, 138, 125, 141, 141, 134, 129, 143, 125, 132, 142, 161, 137, 141, 145, 136, 127, 125, 131, 130, 151, 135, 133, 143, 131, 143, 133, 131, 124, 130, 131, 141, 132, 133, 128, 133, 146, 138, 144, 133, 139, 147, 139, 139, 130, 142, 144, 133, 145, 130, 130, 143, 137, 120, 129, 149, 127, 159, 132, 146, 131, 147, 149, 133, 125, 126, 137, 148, 120, 130, 126, 133, 139, 150, 133, 131, 142, 129, 128, 125, 135, 135, 141, 139, 134, 134, 126, 137, 128, 144, 118, 150, 147, 129, 135, 133, 147, 130, 129, 124, 142, 140, 144, 132, 137, 132, 149, 140, 141, 139, 133, 127, 128, 123, 141, 134, 130, 142, 131, 139, 137, 153, 119, 134, 137, 156, 132, 135, 123, 139, 137, 148, 137, 130, 134, 138, 127, 138, 127, 131, 137, 137, 137, 132, 116, 130, 134, 136, 141, 127, 138, 138, 133, 137, 133, 126, 156, 128, 134, 137, 142, 142, 127, 133, 142, 142, 142, 132, 125, 139, 146, 132, 137, 139, 134, 147, 161, 140, 136, 124, 132, 145, 139, 127, 141, 128, 154, 148, 124, 142, 142, 128, 144, 138, 152, 127, 143, 144, 132, 131, 125, 130, 115, 134, 139, 130, 137, 145, 130, 143, 143, 134, 128, 148, 139, 147, 143, 128, 137, 149, 130, 145, 137, 130, 142, 141, 137, 143, 138, 136, 138, 137, 133, 136, 145, 130, 120, 134, 136, 132, 136, 139, 133, 117, 129, 143, 142, 147, 123, 140, 126, 139, 141, 111, 144, 134, 141, 131, 129, 127, 133, 126, 129, 137, 144, 144, 145, 134, 128, 116, 122, 137, 134, 123, 139, 147, 126, 135, 144, 142, 141, 140, 140, 143, 149, 121, 131, 118, 143, 120, 132, 134, 126, 131, 165, 128, 139, 134, 136, 131, 128, 136, 133, 136, 134, 133, 131, 126, 156, 149, 126, 132, 131, 129, 142, 133, 140, 140, 136, 141, 131, 118, 136, 132, 133, 142, 134, 144, 132, 133, 137, 128, 131, 122, 137, 133, 137, 138, 149, 139, 129, 154, 131, 122, 133, 125, 146, 144, 138, 145, 134, 156, 137, 134, 123, 134, 140, 147, 140, 128, 131, 129, 136, 142, 135, 171, 136, 131, 146, 129, 129, 165, 135, 144, 132, 125, 141, 142, 153, 130, 134, 132, 121, 127, 149, 128, 133, 126, 130, 151, 142, 133, 138, 132, 123, 139, 141, 140, 129, 134, 130, 149, 136, 130, 136, 130, 128, 141, 135, 142, 146, 134, 133, 135, 122, 141, 139, 120, 144, 130, 126, 133, 142, 131, 123, 134, 127, 126, 119, 126, 129, 135, 124, 138, 129, 138, 134, 148, 145, 130, 134, 140, 149, 120, 136, 140, 151, 141, 147, 150, 128, 125, 139, 141, 133, 122, 147, 137, 152, 138, 153, 138, 135, 127, 134, 132, 119, 128, 129, 125, 118, 137, 124, 133, 157, 147, 139, 127, 136, 141, 141, 135, 141, 144, 131, 133, 142, 145, 129, 154, 137, 125, 139, 132, 131, 133, 144, 134, 136, 155, 148, 127, 147, 137, 147, 150, 133, 142, 123, 141, 125, 139, 137, 134, 126, 134, 130, 129, 137, 143, 137, 118, 135, 129, 125, 125, 143, 132, 141, 141, 142, 118, 152, 145, 139, 131, 129, 137, 141, 145, 149, 130, 132, 137, 140, 121, 135, 132, 126, 164, 131, 133, 138, 130, 148, 144, 133, 136, 141, 133, 128, 129, 135, 125, 130, 133, 132, 140, 137, 124, 126, 126, 133, 146, 132, 133, 126, 139, 124, 138, 136, 119, 137, 124, 124, 139, 134, 146, 128, 138, 132, 140, 122, 145, 133, 124, 144, 137, 151, 130, 138, 137, 144, 129, 131, 121, 143, 139, 126, 150, 135, 125, 146, 136, 130, 134, 134, 138, 116, 150, 129, 137, 130, 128, 128, 130, 141, 129, 151, 132, 136, 126, 131, 149, 157, 130, 134, 143, 125, 146, 133, 129, 131, 130, 141, 129, 136, 138, 142, 140, 123, 137, 140, 124, 151, 130, 145, 129, 134, 131, 130, 142, 138, 142, 136, 145, 127, 143, 132, 136, 142, 146, 131, 134, 142, 132, 125, 143, 145, 150, 139, 120, 148, 135, 130, 135, 130, 134, 128, 143, 140, 123, 134, 128, 143, 129, 123, 130, 134, 126, 128, 130, 149, 134, 133, 140, 146, 139, 127, 142, 138, 135, 129, 142, 141, 141, 131, 137, 152, 134, 131, 140, 145, 132, 119, 121, 133, 139, 141, 140, 131, 163, 140, 137, 142, 127, 134, 133, 141, 138, 137, 128, 131, 145, 132, 133, 144, 121, 142, 143, 142, 129, 129, 136, 154, 120, 146, 145, 121, 145, 132, 142, 129, 142, 138, 126, 128, 139, 139, 136, 137, 133, 138, 146, 136, 136, 140, 134, 146, 156, 135, 137, 130, 140, 137, 135, 140, 137, 132, 136, 137, 125, 136, 131, 127, 135, 133, 134, 140, 136, 138, 136, 125, 137, 144, 138, 141, 137, 144, 139, 141, 156, 131, 135, 137, 131, 138, 134, 132, 149, 134, 144, 127, 129, 132, 137, 126, 147, 136, 127, 133, 133, 128, 135, 135, 138, 129, 128, 152, 130, 125, 137, 131, 138, 147, 145, 141, 135, 117, 161, 153, 137, 139, 143, 131, 131, 153, 128, 133, 139, 125, 135, 148, 139, 144, 138, 126, 133, 138, 148, 136, 138, 134, 137, 127, 146, 157, 138, 142, 131, 131, 145, 130, 145, 142, 132, 134, 139, 135, 102, 137, 125, 135, 139, 143, 129, 139, 145, 136, 126, 142, 143, 135, 147, 137, 138, 133, 139, 141, 140, 133, 137, 152, 144, 130, 147, 143, 128, 132, 132, 131, 129, 146, 138, 152, 132, 129, 139, 144, 126, 131, 140, 143, 144, 136, 135, 142, 138, 134, 133, 141, 130, 127, 140, 133, 140, 141, 141, 143, 137, 126, 134, 133, 141, 153, 143, 146, 125, 141, 133, 129, 144, 137, 127, 134, 115, 141, 138, 142, 132, 146, 145, 135, 148, 140, 134, 144, 136, 135, 133, 139, 136, 135, 132, 136, 141, 134, 135, 140, 136, 132, 149, 178, 142, 151, 132, 147, 143, 130, 128, 142, 141, 146, 133, 130, 134, 130, 134, 144, 133, 143, 141, 144, 133, 131, 141, 143, 137, 133, 149, 132, 130, 122, 137, 135, 140, 144, 133, 139, 119, 137, 129, 133, 134, 106, 111, 141, 134, 139, 130, 137, 134, 133, 139, 147, 136, 139, 137, 133, 113, 132, 130, 133, 139, 153, 134, 148, 138, 130, 130, 128, 143, 130, 135, 135, 126, 141, 130, 142, 141, 129, 136, 139, 131, 134, 134, 148, 141, 135, 128, 141, 136, 137, 128, 136, 125, 146, 136, 140, 138, 146, 136, 134, 139, 163, 138, 142, 126, 131, 141, 143, 134, 130, 130, 134, 168, 130, 135, 143, 125, 131, 139, 141, 126, 132, 130, 136, 137, 135, 138, 148, 135, 149, 127, 136, 160, 123, 136, 143, 136, 135, 143, 142, 133, 130, 144, 135, 135, 133, 137, 141, 160, 128, 133, 161, 138, 141, 136, 138, 137, 146, 135, 138, 134, 136, 132, 131, 141, 135, 127, 142, 139, 147, 135, 137, 105, 141, 135, 150, 140, 140, 137, 137, 138, 126, 142, 133, 144, 138, 137, 137, 130, 131, 146, 132, 140, 136, 144, 147, 136, 137, 140, 126, 138, 146, 127, 138, 139, 141, 129, 127, 130, 141, 133, 136, 152, 139, 146, 149, 139, 136, 131, 137, 132, 125, 141, 131, 141, 124, 148, 141, 130, 134, 137, 148, 122, 139, 138, 137, 141, 154, 137, 135, 145, 130, 136, 134, 129, 143, 123, 136, 129, 123, 126, 136, 123, 139, 134, 135, 131, 142, 130, 134, 117, 130, 122, 147, 128, 143, 138, 121, 130, 133, 139, 137, 129, 126, 135, 142, 132, 135, 136, 122, 124, 128, 138, 126, 139, 143, 151, 131, 132, 133, 123, 138, 154, 144, 128, 137, 139, 129, 141, 136, 141, 126, 142, 139, 132, 131, 130, 142, 137, 134, 137, 127, 132, 129, 128, 132, 123, 128, 151, 135, 129, 132, 144, 126, 139, 138, 127, 134, 142, 143, 130, 137, 126, 151, 125, 126, 133, 135, 139, 131, 136, 130, 138, 124, 152, 134, 138, 140, 143, 140, 128, 137, 139, 136, 135, 138, 126, 127, 141, 123, 127, 128, 133, 142, 128, 134, 140, 121, 130, 136, 131, 139, 130, 141, 151, 134, 141, 133, 138, 131, 123, 136, 151, 122, 144, 127, 123, 145, 144, 135, 131, 126, 138, 131, 133, 137, 134, 133, 144, 127, 140, 139, 137, 141, 128, 139, 141, 121, 129, 125, 140, 135, 135, 126, 142, 132, 142, 146, 139, 142, 122, 138, 125, 149, 157, 139, 143, 132, 153, 127, 135, 145, 123, 136, 140, 128, 145, 135, 149, 138, 124, 137, 141, 141, 143, 148, 139, 132, 148, 131, 148, 137, 131, 138, 133, 141, 131, 140, 144, 133, 148, 141, 142, 137, 136, 130, 146, 146, 140, 118, 129, 143, 138, 123, 129, 148, 131, 140, 148, 131, 135, 150, 146, 136, 136, 127, 134, 145, 141, 125, 168, 130, 142, 135, 127, 131, 140, 138, 132, 149, 133, 145, 142, 136, 125, 119, 131, 126, 137, 142, 120, 140, 133, 138, 131, 140, 140, 140, 126, 134, 144, 144, 130, 151, 124, 127, 127, 135, 140, 120, 133, 125, 126, 133, 144, 137, 120, 138, 132, 131, 135, 134, 123, 144, 143, 135, 145, 142, 127, 124, 128, 158, 138, 138, 131, 134, 133, 122, 141, 128, 142, 141, 144, 131, 126, 128, 150, 147, 124, 132, 138, 128, 132, 138, 125, 133, 134, 124, 130, 137, 126, 160, 149, 138, 154, 137, 123, 132, 136, 131, 135, 157, 137, 144, 126, 138, 139, 118, 150, 138, 148, 131, 126, 127, 141, 139, 155, 134, 139, 142, 131, 133, 141, 114, 137, 133, 147, 123, 146, 145, 131, 117, 132, 139, 136, 136, 136, 119, 121, 128, 134, 131, 146, 137, 134, 126, 132, 129, 132, 136, 135, 127, 154, 164, 142, 134, 133, 142, 124, 155, 144, 117, 137, 136, 133, 127, 133, 136, 126, 138, 135, 143, 132, 132, 150, 145, 131, 139, 130, 148, 137, 131, 132, 134, 134, 128, 136, 134, 119, 134, 110, 142, 128, 124, 130, 148, 150, 146, 141, 137, 145, 142, 116, 133, 123, 120, 123, 122, 127, 122, 137, 132, 135, 148, 137, 133, 149, 156, 132, 125, 138, 143, 136, 136, 149, 134, 125, 136, 140, 138, 132, 135, 125, 134, 131, 127, 134, 147, 128, 148, 134, 145, 133, 137, 138, 132, 140, 132, 133, 128, 132, 140, 148, 134, 131, 139, 131, 136, 144, 137, 125, 132, 139, 145, 141, 137, 145, 134, 144, 128, 136, 138, 136, 136, 136, 144, 142, 131, 130, 133, 141, 116, 136, 143, 139, 143, 151, 142, 133, 140, 128, 133, 142, 144, 144, 137, 132, 137, 140, 142, 131, 136, 133, 141, 137, 142, 138, 122, 139, 136, 144, 128, 132, 144, 138, 132, 138, 143, 132, 134, 137, 127, 125, 140, 128, 134, 142, 128, 127, 134, 147, 133, 133, 128, 135, 139, 144, 126, 141, 127, 148, 132, 133, 134, 144, 125, 141, 134, 132, 133, 136, 131, 128, 136, 128, 141, 127, 143, 133, 139, 132, 135, 122, 131, 117, 140, 141, 131, 138, 136, 137, 136, 131, 141, 150, 144, 137, 140, 147, 139, 149, 132, 139, 134, 135, 135, 146, 134, 137, 138, 138, 138, 122, 134, 134, 140, 136, 138, 137, 133, 139, 143, 133, 125, 132, 136, 137, 134, 147, 138, 121, 126, 136, 140, 140, 124, 139, 134, 137, 140, 143, 146, 138, 135, 137, 136, 133, 138, 159, 142, 148, 141, 135, 145, 141, 131, 137, 138, 141, 129, 137, 145, 144, 140, 132, 119, 140, 122, 145, 144, 114, 143, 136, 135, 140, 139, 124, 147, 133, 142, 138, 139, 145, 132, 136, 139, 129, 132, 135, 137, 139, 137, 134, 139, 138, 141, 121, 158, 139, 143, 142, 145, 138, 135, 131, 130, 128, 116, 141, 142, 132, 128, 137, 131, 124, 135, 142, 128, 136, 142, 143, 128, 139, 149, 129, 143, 134, 139, 131, 132, 136, 137, 141, 140, 139, 137, 129, 133, 133, 137, 142, 151, 127, 154, 143, 144, 137, 130, 129, 140, 138, 144, 137, 141, 136, 129, 144, 136, 135, 142, 139, 145, 138, 134, 152, 136, 150, 130, 134, 139, 122, 136, 144, 146, 128, 148, 140, 141, 133, 130, 141, 138, 140, 136, 138, 141, 138, 130, 133, 132, 153, 134, 142, 134, 130, 133, 139, 138, 144, 130, 150, 152, 139, 132, 150, 134, 140, 131, 139, 141, 130, 136, 132, 129, 134, 134, 129, 137, 139, 133, 125, 143, 143, 135, 118, 135, 136, 130, 137, 126, 132, 141, 131, 145, 124, 144, 147, 142, 138, 143, 135, 137, 126, 128, 137, 140, 134, 137, 143, 134, 144, 141, 127, 132, 128, 134, 134, 133, 140, 143, 141, 141, 130, 147, 139, 131, 137, 128, 143, 129, 132, 140, 143, 137, 135, 147, 136, 139, 136, 142, 140, 142, 141, 144, 142, 141, 138, 141, 143, 131, 141, 141, 134, 145, 135, 131, 139, 143, 145, 118, 141, 145, 136, 138, 137, 138, 132, 144, 142, 144, 127, 141, 139, 147, 135, 132, 128, 134, 143, 132, 137, 134, 147, 132, 135, 137, 140, 136, 129, 132, 130, 138, 132, 141, 143, 140, 142, 133, 142, 141, 128, 134, 141, 121, 142, 147, 135, 135, 136, 130, 141, 133, 117, 145, 138, 143, 124, 134, 133, 143, 137, 146, 126, 137, 122, 144, 134, 130, 137, 131, 160, 142, 137, 143, 135, 141, 132, 144, 144, 140, 135, 125, 145, 118, 132, 154, 142, 124, 135, 153, 131, 150, 129, 132, 153, 134, 123, 139, 135, 143, 131, 145, 145, 121, 125, 140, 141, 132, 125, 130, 123, 144, 145, 156, 140, 95, 139, 158, 125, 128, 128, 117, 146, 141, 132, 141, 122, 140, 133, 139, 132, 126, 128, 129, 125, 124, 152, 149, 138, 130, 145, 141, 128, 150, 140, 139, 130, 133, 134, 150, 137, 125, 123, 137, 141, 130, 151, 137, 135, 138, 126, 147, 136, 132, 136, 127, 125, 145, 134, 136, 123, 132, 137, 126, 124, 111, 153, 132, 142, 132, 138, 131, 139, 155, 132, 132, 144, 146, 123, 129, 141, 127, 141, 144, 133, 117, 126, 133, 125, 137, 131, 142, 129, 133, 130, 139, 136, 119, 126, 136, 139, 134, 136, 144, 140, 130, 115, 150, 127, 128, 142, 139, 133, 140, 129, 138, 131, 124, 135, 136, 134, 127, 142, 139, 154, 139, 126, 139, 133, 135, 137, 137, 141, 147, 155, 139, 134, 143, 131, 164, 126, 138, 146, 133, 133, 137, 140, 143, 138, 137, 142, 133, 132, 131, 131, 145, 131, 115, 125, 138, 150, 143, 139, 139, 154, 146, 152, 126, 177, 129, 149, 134, 127, 137, 154, 129, 131, 147, 147, 132, 143, 144, 132, 131, 129, 146, 134, 159, 133, 134, 146, 138, 131, 131, 126, 127, 137, 138, 128, 137, 146, 152, 127, 122, 141, 150, 133, 138, 142, 138, 121, 143, 141, 135, 135, 137, 145, 128, 130, 123, 150, 152, 132, 141, 151, 123, 132, 131, 139, 128, 126, 155, 131, 135, 135, 153, 121, 125, 137, 131, 150, 129, 134, 138, 93, 136, 122, 134, 122, 139, 129, 133, 155, 142, 136, 143, 137, 142, 123, 128, 123, 125, 136, 147, 125, 140, 131, 135, 141, 125, 142, 139, 141, 129, 137, 144, 132, 136, 153, 125, 144, 128, 133, 133, 137, 129, 138, 154, 131, 138, 125, 137, 136, 147, 140, 140, 126, 140, 144, 138, 136, 125, 142, 139, 118, 139, 125, 142, 125, 130, 129, 138, 141, 126, 152, 154, 135, 132, 136, 141, 129, 139, 136, 124, 132, 130, 126, 133, 128, 135, 130, 148, 127, 114, 148, 136, 136, 138, 128, 135, 137, 141, 124, 125, 122, 151, 137, 121, 132, 137, 154, 124, 132, 136, 133, 142, 124, 147, 124, 154, 128, 134, 135, 133, 138, 134, 144, 129, 137, 168, 130, 157, 144, 135, 122, 126, 125, 141, 140, 135, 140, 145, 147, 150, 133, 130, 145, 132, 129, 137, 140, 139, 146, 137, 147, 136, 138, 142, 143, 122, 136, 122, 125, 148, 127, 167, 140, 135, 131, 140, 149, 106, 130, 149, 136, 136, 130, 143, 144, 127, 134, 139, 128, 132, 135, 123, 144, 123, 124, 141, 127, 124, 146, 137, 139, 154, 111, 132, 122, 132, 130, 142, 174, 126, 109, 138, 138, 142, 134, 134, 130, 141, 131, 174, 126, 138, 135, 137, 148, 135, 123, 127, 135, 119, 155, 154, 152, 150, 135, 137, 128, 129, 146, 147, 127, 119, 117, 136, 134, 120, 130, 130, 149, 136, 145, 136, 127, 121, 138, 129, 124, 102, 117, 140, 141, 130, 127, 137, 165, 117, 142, 140, 131, 137, 140, 134, 141, 132, 136, 137, 142, 145, 135, 137, 123, 112, 144, 143, 133, 127, 122, 138, 135, 151, 128, 133, 125, 135, 147, 179, 130, 140, 143, 127, 132, 143, 140, 142, 140, 132, 135, 139, 137, 130, 137, 114, 142, 133, 121, 143, 132, 131, 132, 120, 114, 146, 137, 150, 133, 123, 128, 131, 126, 137, 146, 142, 141, 136, 130, 137, 155, 136, 144, 139, 128, 130, 135, 131, 155, 132, 130, 135, 139, 131, 111, 138, 137, 117, 123, 137, 127, 137, 133, 128, 130, 133, 137, 137, 127, 129, 145, 131, 131, 113, 140, 136, 129, 123, 135, 144, 147, 140, 144, 139, 126, 144, 128, 144, 139, 134, 139, 133, 136, 136, 140, 133, 138, 141, 153, 128, 140, 140, 132, 120, 145, 144, 116, 147, 138, 146, 134, 131, 136, 141, 140, 125, 142, 139, 155, 131, 138, 130, 138, 137, 132, 128, 127, 150, 152, 141, 135, 143, 125, 143, 147, 126, 139, 142, 128, 140, 133, 130, 151, 135, 129, 141, 137, 138, 128, 137, 138, 136, 140, 136, 130, 140, 153, 138, 127, 106, 130, 128, 136, 152, 141, 140, 137, 133, 137, 145, 139, 149, 123, 129, 143, 120, 138, 142, 143, 134, 125, 145, 128, 123, 143, 117, 134, 133, 132, 115, 137, 149, 144, 131, 142, 130, 141, 137, 129, 124, 123, 116, 145, 141, 136, 131, 144, 153, 128, 125, 140, 103, 127, 121, 138, 132, 135, 149, 132, 135, 141, 147, 132, 139, 152, 146, 128, 150, 145, 147, 148, 142, 133, 152, 135, 153, 138, 143, 140, 130, 139, 137, 137, 141, 132, 128, 139, 128, 163, 143, 137, 127, 140, 132, 121, 129, 147, 136, 136, 127, 132, 157, 135, 136, 133, 140, 131, 188, 135, 135, 140, 137, 129, 148, 140, 140, 134, 133, 132, 136, 142, 134, 152, 136, 130, 126, 163, 139, 136, 136, 130, 133, 136, 130, 131, 132, 122, 133, 147, 136, 152, 136, 135, 128, 132, 165, 145, 131, 127, 132, 136, 133, 131, 132, 129, 154, 134, 125, 136, 136, 136, 136, 134, 136, 135, 132, 137, 120, 135, 144, 143, 135, 153, 145, 138, 130, 128, 132, 145, 138, 136, 127, 139, 139, 145, 138, 147, 133, 133, 144, 137, 54, 133, 109, 139, 143, 146, 139, 99, 131, 131, 126, 134, 128, 147, 139, 138, 146, 146, 134, 150, 141, 131, 148, 135, 134, 131, 148, 137, 136, 149, 138, 143, 140, 139, 133, 134, 137, 117, 142, 131, 136, 160, 162, 170, 129, 143, 119, 140, 125, 142, 131, 143, 131, 128, 138, 150, 127, 132, 143, 139, 133, 141, 139, 138, 129, 141, 134, 132, 130, 139, 134, 132, 147, 130, 142, 132, 123, 132, 124, 136, 135, 135, 142, 138, 100, 131, 131, 139, 122, 133, 135, 137, 132, 128, 143, 186, 120, 130, 141, 135, 136, 125, 131, 130, 139, 133, 136, 143, 139, 139, 136, 135, 124, 123, 136, 135, 120, 149, 127, 140, 141, 139, 132, 129, 122, 138, 132, 134, 126, 148, 130, 134, 136, 132, 141, 138, 128, 138, 131, 147, 135, 127, 137, 133, 141, 148, 144, 126, 129, 125, 132, 145, 124, 143, 135, 141, 132, 131, 136, 143, 134, 155, 163, 135, 146, 119, 147, 130, 147, 139, 129, 167, 139, 157, 139, 130, 140, 138, 141, 126, 136, 135, 128, 150, 126, 154, 136, 132, 118, 126, 134, 119, 135, 123, 122, 140, 127, 132, 136, 140, 130, 131, 141, 138, 144, 142, 141, 140, 134, 143, 126, 132, 130, 135, 143, 140, 146, 137, 124, 148, 132, 135, 137, 128, 148, 127, 128, 142, 132, 127, 127, 123, 140, 120, 154, 143, 146, 139, 139, 138, 134, 126, 139, 138, 135, 138, 135, 133, 141, 138, 143, 139, 134, 134, 112, 130, 149, 136, 127, 136, 133, 114, 136, 134, 131, 138, 137, 147, 127, 118, 137, 136, 136, 140, 140, 147, 132, 141, 128, 136, 138, 137, 142, 133, 141, 131, 148, 126, 133, 135, 136, 143, 135, 132, 142, 121, 147, 132, 123, 132, 139, 136, 127, 138, 144, 140, 156, 130, 131, 147, 146, 153, 133, 134, 138, 134, 134, 126, 128, 121, 133, 148, 134, 135, 139, 137, 127, 128, 147, 137, 141, 146, 120, 149, 147, 128, 143, 137, 123, 136, 132, 132, 130, 123, 132, 124, 139, 139, 132, 146, 126, 133, 130, 140, 136, 161, 129, 128, 156, 145, 133, 117, 138, 126, 125, 138, 136, 139, 134, 133, 137, 147, 131, 138, 148, 126, 133, 139, 134, 136, 146, 135, 124, 167, 139, 140, 139, 137, 139, 135, 155, 146, 135, 132, 137, 127, 138, 129, 130, 144, 135, 138, 135, 161, 137, 147, 138, 126, 132, 138, 130, 142, 137, 126, 146, 125, 133, 139, 124, 147, 129, 135, 140, 133, 132, 137, 150, 132, 141, 121, 146, 137, 129, 123, 134, 138, 136, 161, 125, 130, 147, 132, 126, 137, 145, 133, 124, 131, 152, 136, 152, 138, 126, 143, 131, 124, 132, 138, 139, 122, 138, 130, 138, 139, 132, 135, 133, 138, 137, 137, 136, 137, 134, 137, 141, 131, 139, 135, 137, 130, 137, 132, 119, 125, 131, 143, 135, 140, 125, 137, 142, 135, 128, 138, 154, 133, 133, 147, 143, 144, 122, 138, 119, 120, 133, 144, 151, 139, 140, 127, 133, 125, 140, 125, 130, 133, 139, 132, 130, 133, 147, 133, 132, 131, 139, 133, 137, 116, 145, 142, 141, 123, 141, 134, 110, 135, 134, 138, 144, 136, 135, 134, 139, 126, 118, 140, 142, 146, 134, 143, 131, 148, 135, 140, 134, 167, 136, 123, 138, 137, 145, 132, 130, 134, 133, 138, 127, 134, 146, 126, 142, 137, 128, 135, 132, 128, 135, 142, 135, 143, 117, 138, 134, 145, 137, 129, 135, 133, 146, 144, 135, 147, 133, 136, 162, 139, 141, 131, 137, 155, 143, 143, 131, 135, 128, 134, 141, 143, 130, 140, 142, 136, 135, 122, 139, 135, 134, 139, 130, 126, 157, 128, 133, 141, 142, 163, 138, 133, 126, 126, 126, 140, 133, 138, 140, 130, 145, 119, 144, 132, 129, 131, 121, 137, 137, 130, 143, 134, 135, 139, 141, 132, 134, 129, 132, 129, 126, 127, 146, 128, 130, 130, 132, 135, 142, 128, 119, 145, 123, 131, 137, 139, 131, 135, 152, 135, 126, 142, 138, 131, 120, 124, 135, 133, 137, 145, 135, 130, 132, 148, 126, 139, 126, 158, 127, 130, 128, 149, 142, 132, 149, 126, 143, 123, 126, 121, 132, 146, 126, 140, 147, 127, 135, 147, 144, 140, 125, 131, 137, 138, 139, 146, 128, 145, 133, 122, 146, 143, 134, 140, 156, 134, 139, 124, 128, 152, 134, 130, 116, 144, 135, 138, 138, 132, 138, 138, 148, 133, 126, 136, 184, 131, 135, 135, 128, 134, 125, 134, 127, 140, 122, 116, 141, 146, 136, 147, 123, 120, 133, 155, 141, 128, 148, 158, 133, 136, 128, 144, 148, 126, 133, 131, 129, 121, 120, 128, 140, 146, 138, 136, 142, 140, 150, 138, 132, 131, 130, 143, 150, 122, 140, 139, 139, 129, 129, 129, 134, 137, 137, 152, 131, 131, 138, 131, 124, 136, 139, 132, 140, 123, 148, 139, 143, 150, 126, 135, 131, 133, 142, 147, 138, 150, 140, 142, 136, 143, 132, 130, 131, 143, 129, 124, 123, 141, 141, 140, 133, 139, 141, 128, 131, 149, 151, 144, 125, 131, 146, 145, 140, 122, 131, 130, 134, 132, 140, 122, 138, 143, 127, 130, 118, 148, 148, 140, 121, 140, 147, 142, 129, 139, 132, 132, 141, 150, 124, 139, 121, 149, 126, 128, 136, 135, 132, 136, 120, 149, 124, 146, 128, 137, 132, 136, 133, 130, 132, 137, 148, 149, 145, 132, 125, 128, 132, 137, 125, 122, 140, 149, 153, 129, 141, 139, 143, 136, 124, 124, 140, 143, 147, 141, 149, 144, 136, 137, 142, 120, 132, 143, 142, 129, 137, 134, 143, 127, 148, 138, 131, 134, 133, 148, 144, 130, 145, 142, 132, 139, 151, 133, 128, 135, 123, 136, 153, 146, 147, 132, 157, 135, 124, 138, 134, 155, 124, 129, 130, 135, 135, 124, 135, 136, 130, 137, 125, 143, 134, 137, 154, 130, 126, 149, 141, 134, 142, 138, 135, 162, 129, 145, 133, 136, 130, 136, 144, 136, 118, 153, 144, 143, 124, 133, 133, 151, 136, 128, 131, 132, 138, 136, 143, 127, 133, 135, 141, 151, 131, 132, 138, 151, 153, 137, 132, 132, 139, 143, 139, 128, 141, 133, 131, 133, 133, 145, 141, 132, 144, 149, 151, 127, 146, 151, 134, 135, 132, 133, 144, 135, 120, 140, 141, 132, 144, 148, 163, 139, 129, 126, 133, 118, 134, 132, 145, 127, 142, 128, 142, 135, 137, 140, 137, 131, 142, 140, 123, 131, 142, 149, 147, 127, 140, 125, 133, 141, 130, 128, 141, 130, 135, 117, 141, 138, 135, 143, 132, 143, 126, 136, 140, 125, 136, 135, 127, 138, 165, 136, 147, 128, 122, 136, 131, 132, 136, 143, 137, 139, 138, 147, 136, 142, 118, 125, 143, 121, 133, 149, 132, 132, 140, 136, 132, 135, 135, 126, 139, 127, 138, 137, 134, 135, 135, 132, 142, 140, 139, 137, 135, 117, 131, 129, 133, 136, 136, 137, 142, 139, 138, 139, 129, 129, 139, 129, 144, 122, 129, 138, 129, 128, 137, 127, 137, 140, 134, 139, 131, 125, 135, 141, 131, 128, 142, 129, 135, 136, 132, 128, 129, 165, 129, 144, 137, 138, 135, 120, 138, 129, 126, 131, 135, 156, 139, 122, 129, 148, 133, 137, 127, 126, 142, 140, 136, 142, 129, 144, 137, 144, 133, 137, 141, 128, 131, 135, 140, 143, 129, 135, 129, 137, 129, 125, 136, 144, 136, 138, 139, 138, 142, 127, 129, 129, 131, 122, 127, 142, 141, 132, 105, 133, 137, 129, 134, 121, 125, 137, 136, 134, 139, 133, 143, 135, 128, 146, 142, 137, 130, 135, 143, 133, 138, 134, 120, 144, 146, 136, 140, 143, 149, 142, 135, 140, 135, 142, 125, 133, 118, 134, 134, 141, 143, 131, 138, 141, 140, 134, 134, 139, 127, 137, 135, 123, 133, 147, 147, 125, 133, 134, 146, 141, 132, 140, 130, 135, 131, 150, 135, 128, 120, 137, 126, 143, 144, 147, 132, 146, 132, 136, 131, 135, 130, 133, 127, 135, 133, 143, 132, 129, 132, 138, 139, 133, 130, 136, 136, 151, 137, 119, 127, 132, 148, 121, 143, 124, 134, 128, 138, 145, 146, 136, 135, 136, 150, 136, 138, 151, 137, 133, 136, 135, 131, 136, 123, 136, 127, 146, 125, 148, 144, 135, 136, 133, 131, 138, 133, 140, 136, 147, 136, 136, 134, 120, 134, 147, 124, 123, 137, 135, 134, 138, 125, 138, 145, 141, 138, 147, 136, 142, 154, 138, 140, 133, 131, 131, 139, 124, 127, 150, 133, 131, 136, 135, 136, 140, 128, 135, 135, 146, 143, 127, 117, 136, 136, 140, 127, 132, 122, 151, 134, 130, 140, 136, 144, 146, 154, 130, 140, 123, 134, 128, 135, 139, 126, 131, 140, 136, 133, 134, 133, 133, 144, 132, 135, 133, 132, 141, 133, 131, 139, 134, 135, 138, 131, 131, 136, 138, 131, 150, 138, 145, 142, 133, 135, 129, 141, 128, 136, 142, 144, 129, 139, 139, 137, 125, 134, 154, 136, 132, 134, 123, 130, 130, 134, 144, 140, 147, 129, 135, 124, 143, 141, 139, 129, 136, 139, 136, 138, 138, 133, 129, 138, 124, 134, 138, 130, 147, 134, 136, 132, 131, 137, 136, 134, 132, 122, 135, 135, 146, 146, 150, 137, 138, 141, 135, 145, 124, 130, 139, 137, 129, 127, 134, 137, 130, 153, 146, 132, 127, 133, 149, 137, 145, 138, 132, 137, 143, 136, 137, 113, 126, 129, 133, 132, 131, 147, 137, 144, 129, 139, 141, 131, 137, 137, 161, 138, 118, 143, 134, 145, 140, 140, 126, 136, 144, 136, 130, 149, 128, 133, 133, 140, 139, 129, 137, 127, 151, 129, 135, 133, 137, 124, 136, 139, 148, 127, 137, 133, 132, 139, 122, 134, 131, 132, 137, 137, 141, 135, 142, 134, 140, 132, 128, 132, 140, 120, 145, 134, 146, 145, 132, 147, 134, 117, 137, 143, 130, 139, 143, 140, 174, 139, 145, 134, 137, 119, 128, 153, 142, 138, 107, 137, 130, 124, 148, 138, 134, 140, 131, 140, 132, 120, 136, 123, 116, 155, 160, 117, 130, 131, 137, 124, 119, 132, 150, 118, 133, 130, 102, 144, 150, 117, 125, 155, 133, 156, 136, 126, 106, 157, 139, 142, 131, 137, 144, 136, 127, 154, 102, 140, 139, 119, 151, 138, 136, 126, 125, 126, 118, 125, 133, 135, 121, 133, 123, 123, 124, 143, 147, 141, 118, 128, 124, 129, 147, 146, 142, 125, 124, 156, 119, 133, 129, 128, 111, 149, 164, 133, 153, 157, 125, 139, 132, 143, 141, 135, 147, 135, 141, 121, 137, 157, 114, 124, 123, 140, 146, 132, 125, 141, 123, 147, 145, 132, 149, 124, 139, 130, 132, 137, 131, 136, 126, 128, 142, 117, 132, 123, 146, 149, 133, 109, 127, 132, 129, 122, 125, 112, 142, 118, 129, 123, 134, 131, 137, 127, 144, 127, 129, 148, 119, 144, 113, 130, 147, 134, 126, 143, 124, 119, 126, 130, 137, 145, 133, 132, 131, 135, 133, 145, 149, 132, 121, 121, 128, 149, 133, 125, 126, 129, 133, 145, 131, 124, 143, 136, 141, 132, 135, 143, 155, 119, 116, 118, 157, 135, 144, 115, 125, 137, 123, 161, 143, 145, 139, 118, 114, 153, 142, 141, 139, 146, 145, 151, 144, 119, 129, 130, 137, 134, 142, 149, 144, 136, 145, 140, 150, 125, 153, 144, 114, 128, 125, 145, 154, 141, 140, 133, 144, 156, 137, 135, 137, 142, 135, 144, 136, 134, 148, 130, 152, 120, 156, 116, 138, 141, 145, 153, 171, 142, 135, 159, 130, 162, 135, 127, 178, 133, 150, 123, 130, 160, 146, 132, 129, 119, 132, 141, 132, 112, 127, 133, 172, 142, 134, 146, 116, 143, 134, 149, 142, 130, 123, 141, 125, 129, 153, 125, 125, 133, 121, 142, 133, 132, 154, 131, 110, 131, 126, 149, 146, 137, 143, 129, 139, 142, 141, 129, 112, 139, 120, 157, 149, 127, 147, 136, 125, 136, 139, 127, 128, 121, 121, 121, 133, 151, 138, 138, 145, 134, 136, 151, 149, 124, 141, 131, 135, 118, 133, 141, 139, 135, 126, 131, 134, 132, 155, 134, 133, 159, 120, 144, 143, 132, 171, 157, 132, 146, 143, 141, 139, 132, 121, 137, 126, 155, 117, 145, 130, 139, 113, 141, 140, 153, 125, 139, 131, 117, 135, 133, 131, 114, 131, 129, 135, 128, 150, 149, 133, 124, 128, 124, 144, 126, 134, 137, 134, 145, 143, 144, 135, 131, 130, 134, 140, 124, 130, 121, 125, 131, 141, 140, 135, 127, 138, 124, 92, 135, 132, 142, 126, 129, 106, 143, 143, 130, 136, 119, 137, 118, 132, 132, 149, 136, 158, 138, 133, 139, 145, 151, 141, 147, 135, 124, 106, 163, 122, 117, 137, 131, 135, 125, 156, 135, 130, 148, 135, 126, 141, 134, 123, 139, 135, 122, 133, 133, 131, 124, 99, 91, 131, 140, 119, 137, 136, 138, 137, 129, 146, 129, 145, 123, 138, 144, 134, 123, 128, 131, 129, 134, 144, 142, 116, 134, 130, 140, 133, 142, 123, 137, 128, 116, 145, 133, 125, 135, 118, 131, 151, 128, 137, 141, 131, 139, 135, 141, 131, 136, 143, 126, 120, 143, 136, 135, 144, 131, 137, 130, 150, 119, 130, 137, 130, 129, 145, 143, 122, 130, 144, 145, 136, 129, 146, 129, 154, 124, 142, 136, 130, 127, 131, 138, 123, 139, 141, 119, 137, 140, 150, 128, 134, 124, 130, 129, 137, 134, 127, 124, 141, 135, 149, 139, 139, 137, 147, 141, 135, 137, 125, 136, 139, 127, 146, 154, 136, 135, 140, 129, 143, 142, 117, 121, 130, 142, 122, 143, 126, 127, 115, 133, 143, 150, 130, 113, 162, 140, 129, 137, 122, 130, 144, 145, 131, 133, 138, 139, 126, 149, 121, 153, 132, 129, 139, 135, 122, 120, 140, 141, 135, 141, 131, 138, 143, 139, 139, 132, 135, 143, 147, 147, 129, 126, 133, 134, 141, 133, 112, 136, 141, 133, 136, 121, 140, 135, 158, 142, 129, 142, 154, 134, 144, 144, 149, 127, 138, 142, 123, 116, 121, 144, 144, 151, 119, 129, 144, 126, 123, 137, 126, 152, 136, 120, 144, 140, 125, 130, 136, 126, 139, 128, 139, 129, 134, 137, 140, 132, 137, 140, 158, 129, 130, 119, 122, 133, 123, 147, 131, 130, 125, 133, 129, 121, 141, 131, 120, 142, 134, 130, 124, 135, 131, 147, 147, 151, 142, 130, 150, 129, 139, 138, 129, 147, 147, 133, 108, 136, 129, 140, 144, 158, 156, 149, 129, 128, 135, 127, 140, 142, 132, 143, 137, 140, 145, 147, 136, 120, 137, 132, 137, 135, 135, 143, 140, 130, 157, 138, 138, 132, 140, 134, 138, 147, 149, 152, 128, 143, 149, 125, 125, 126, 142, 131, 135, 122, 130, 146, 133, 134, 174, 142, 134, 135, 142, 158, 134, 144, 147, 121, 140, 147, 139, 127, 150, 141, 141, 154, 150, 130, 131, 151, 129, 136, 136, 135, 129, 129, 138, 144, 137, 145, 127, 150, 142, 140, 125, 140, 123, 125, 141, 155, 130, 141, 136, 119, 138, 127, 140, 142, 148, 134, 152, 146, 130, 136, 119, 143, 141, 133, 132, 128, 142, 134, 142, 134, 144, 127, 143, 126, 146, 131, 143, 137, 141, 148, 126, 128, 129, 129, 140, 133, 135, 138, 132, 125, 125, 133, 127, 133, 134, 136, 144, 127, 127, 125, 122, 139, 132, 127, 134, 138, 129, 140, 141, 159, 140, 128, 129, 129, 138, 127, 144, 130, 138, 142, 144, 124, 136, 137, 132, 128, 137, 129, 122, 102, 141, 139, 144, 136, 128, 111, 130, 141, 131, 150, 119, 149, 136, 138, 142, 130, 126, 138, 136, 142, 140, 130, 139, 141, 130, 131, 128, 143, 129, 148, 142, 145, 139, 137, 128, 134, 140, 140, 129, 116, 129, 126, 136, 138, 137, 128, 140, 131, 128, 132, 143, 140, 134, 126, 143, 129, 135, 145, 137, 138, 136, 135, 142, 128, 123, 118, 148, 131, 136, 135, 124, 142, 115, 139, 128, 153, 138, 153, 157, 134, 143, 134, 138, 136, 120, 134, 132, 136, 144, 133, 131, 139, 134, 135, 131, 144, 132, 123, 139, 138, 138, 139, 113, 139, 125, 135, 132, 139, 149, 136, 137, 142, 133, 152, 134, 126, 137, 137, 125, 133, 131, 142, 132, 136, 139, 133, 146, 128, 137, 132, 131, 143, 150, 140, 153, 132, 136, 134, 134, 146, 152, 137, 144, 135, 140, 137, 131, 137, 138, 137, 125, 130, 140, 134, 167, 142, 125, 135, 127, 126, 133, 148, 136, 133, 139, 130, 136, 132, 133, 132, 136, 137, 144, 134, 130, 136, 122, 140, 136, 140, 134, 123, 136, 137, 129, 138, 137, 133, 127, 141, 128, 140, 133, 125, 135, 135, 131, 138, 130, 141, 139, 139, 142, 123, 118, 145, 147, 119, 151, 132, 133, 132, 141, 138, 142, 136, 143, 146, 139, 132, 131, 150, 128, 120, 134, 144, 142, 142, 144, 131, 132, 141, 117, 135, 140, 136, 143, 156, 136, 128, 130, 141, 139, 137, 138, 141, 136, 141, 136, 133, 129, 142, 135, 131, 129, 141, 141, 150, 141, 125, 139, 142, 135, 139, 142, 135, 125, 135, 131, 137, 139, 129, 135, 135, 136, 130, 126, 134, 136, 139, 140, 143, 128, 126, 130, 130, 133, 135, 114, 131, 135, 142, 135, 133, 126, 143, 129, 145, 145, 131, 132, 122, 141, 139, 142, 135, 125, 143, 136, 135, 147, 136, 135, 131, 130, 133, 135, 135, 136, 147, 130, 128, 141, 132, 130, 135, 161, 140, 144, 142, 151, 142, 117, 134, 141, 155, 137, 130, 149, 130, 125, 135, 134, 133, 140, 141, 136, 144, 134, 143, 142, 141, 138, 140, 145, 135, 129, 137, 139, 132, 139, 143, 131, 143, 142, 129, 137, 134, 138, 126, 141, 138, 130, 140, 138, 135, 136, 131, 137, 151, 135, 130, 134, 129, 131, 138, 129, 132, 143, 137, 127, 145, 134, 123, 140, 147, 131, 146, 135, 130, 136, 146, 140, 151, 129, 136, 144, 133, 154, 140, 130, 133, 124, 148, 138, 121, 128, 131, 129, 158, 135, 144, 149, 118, 135, 146, 129, 130, 140, 136, 118, 135, 145, 134, 130, 125, 136, 136, 143, 137, 130, 143, 136, 140, 138, 143, 141, 133, 152, 144, 143, 142, 139, 129, 138, 133, 132, 140, 122, 140, 139, 147, 126, 120, 144, 125, 137, 132, 135, 133, 132, 124, 125, 129, 139, 142, 140, 137, 140, 135, 137, 141, 137, 137, 137, 143, 132, 136, 123, 150, 132, 164, 135, 130, 147, 142, 140, 138, 135, 132, 140, 126, 138, 126, 136, 121, 126, 132, 144, 134, 130, 141, 117, 134, 112, 143, 136, 134, 138, 141, 133, 132, 156, 157, 137, 119, 148, 138, 116, 126, 129, 136, 137, 137, 136, 142, 129, 136, 130, 151, 135, 138, 113, 148, 142, 133, 138, 137, 136, 143, 129, 136, 144, 150, 137, 129, 136, 122, 134, 154, 138, 140, 135, 152, 129, 138, 166, 146, 143, 136, 131, 142, 152, 136, 132, 133, 133, 131, 143, 133, 125, 133, 137, 140, 131, 147, 132, 118, 129, 138, 138, 125, 126, 141, 137, 135, 150, 127, 144, 135, 130, 119, 145, 131, 137, 135, 129, 147, 145, 130, 141, 128, 131, 137, 129, 147, 130, 134, 135, 129, 157, 144, 142, 136, 134, 158, 136, 133, 143, 138, 138, 128, 122, 140, 140, 125, 140, 133, 143, 119, 154, 127, 127, 135, 140, 156, 125, 144, 137, 122, 141, 137, 129, 135, 127, 130, 144, 141, 135, 131, 126, 133, 136, 126, 135, 138, 116, 141, 141, 135, 143, 142, 143, 142, 136, 139, 151, 128, 130, 147, 143, 131, 137, 145, 125, 140, 131, 136, 123, 131, 145, 137, 133, 127, 142, 137, 143, 134, 134, 133, 123, 129, 134, 119, 144, 137, 142, 126, 132, 149, 129, 146, 143, 128, 136, 140, 142, 133, 133, 140, 150, 131, 139, 131, 127, 138, 130, 131, 136, 128, 140, 130, 129, 131, 135, 150, 131, 150, 152, 115, 151, 140, 131, 126, 126, 134, 129, 153, 140, 144, 132, 139, 137, 145, 120, 133, 148, 146, 125, 132, 137, 119, 150, 140, 143, 125, 135, 132, 131, 151, 125, 130, 160, 139, 147, 136, 135, 140, 126, 137, 149, 127, 129, 134, 149, 139, 134, 128, 128, 119, 131, 135, 146, 146, 132, 130, 132, 139, 139, 137, 130, 140, 153, 132, 141, 141, 136, 128, 127, 142, 132, 121, 143, 138, 128, 139, 138, 134, 136, 150, 130, 129, 130, 137, 139, 120, 118, 130, 129, 139, 135, 137, 132, 152, 153, 139, 137, 143, 128, 142, 141, 135, 153, 141, 128, 135, 149, 158, 146, 135, 137, 129, 134, 132, 133, 116, 147, 140, 126, 137, 145, 151, 135, 137, 127, 133, 123, 141, 142, 130, 136, 124, 130, 130, 137, 134, 143, 133, 129, 129, 146, 113, 141, 127, 133, 135, 141, 127, 141, 136, 134, 134, 131, 138, 132, 133, 130, 141, 136, 130, 110, 147, 123, 138, 135, 136, 135, 138, 124, 137, 140, 130, 137, 134, 138, 124, 122, 146, 151, 130, 124, 129, 133, 124, 120, 128, 129, 137, 130, 139, 148, 135, 132, 133, 147, 130, 137, 151, 116, 146, 127, 137, 131, 122, 141, 129, 121, 145, 149, 126, 138, 138, 139, 146, 140, 151, 137, 153, 134, 131, 147, 126, 137, 138, 136, 138, 136, 141, 139, 153, 122, 140, 146, 129, 121, 129, 126, 123, 145, 141, 142, 134, 135, 154, 153, 135, 126, 135, 131, 135, 137, 135, 137, 138, 148, 123, 136, 130, 131, 149, 127, 148, 111, 128, 137, 124, 151, 152, 134, 125, 131, 129, 145, 131, 123, 139, 142, 137, 136, 122, 134, 119, 143, 127, 144, 125, 127, 141, 124, 141, 148, 133, 124, 142, 136, 143, 143, 120, 138, 145, 130, 147, 144, 146, 141, 137, 140, 141, 135, 135, 133, 129, 140, 119, 105, 128, 143, 137, 127, 128, 140, 136, 137, 130, 132, 137, 133, 137, 145, 129, 137, 130, 134, 131, 132, 148, 136, 114, 136, 146, 135, 140, 139, 137, 148, 134, 136, 143, 140, 148, 133, 137, 115, 143, 127, 127, 142, 143, 141, 139, 133, 144, 141, 149, 136, 135, 131, 131, 127, 141, 130, 132, 124, 144, 140, 145, 141, 134, 138, 118, 135, 152, 131, 154, 132, 140, 146, 138, 128, 134, 141, 134, 124, 137, 130, 133, 136, 128, 139, 139, 135, 138, 138, 125, 137, 135, 130, 136, 136, 132, 145, 166, 118, 142, 140, 136, 163, 153, 132, 128, 150, 128, 133, 136, 131, 133, 149, 138, 126, 138, 141, 137, 135, 141, 110, 133, 142, 139, 130, 140, 124, 134, 119, 130, 137, 134, 132, 132, 125, 134, 143, 129, 139, 129, 136, 133, 140, 132, 126, 141, 137, 144, 132, 137, 131, 138, 132, 141, 143, 141, 133, 151, 135, 138, 129, 135, 132, 140, 138, 157, 117, 130, 142, 139, 137, 148, 124, 135, 111, 137, 140, 144, 129, 144, 137, 139, 131, 140, 138, 125, 141, 141, 135, 144, 137, 139, 140, 115, 127, 118, 134, 139, 125, 140, 135, 147, 141, 145, 135, 135, 148, 142, 138, 113, 137, 140, 138, 139, 143, 140, 141, 132, 131, 145, 135, 148, 140, 126, 122, 138, 140, 118, 142, 134, 129, 134, 139, 144, 127, 118, 136, 137, 138, 146, 135, 131, 138, 134, 129, 140, 135, 132, 133, 143, 135, 139, 133, 141, 137, 139, 133, 129, 135, 132, 124, 138, 115, 131, 136, 138, 141, 134, 129, 140, 124, 136, 131, 137, 127, 131, 137, 137, 142, 132, 126, 128, 128, 136, 143, 127, 132, 139, 132, 130, 141, 146, 141, 131, 82, 140, 137, 134, 125, 135, 147, 133, 142, 136, 136, 116, 146, 130, 132, 140, 143, 139, 146, 135, 143, 141, 135, 134, 145, 130, 117, 137, 134, 145, 141, 143, 130, 143, 139, 133, 135, 128, 131, 134, 126, 142, 128, 131, 118, 136, 140, 135, 121, 131, 143, 139, 134, 135, 130, 130, 128, 134, 137, 142, 144, 132, 128, 128, 140, 133, 163, 137, 130, 136, 138, 142, 133, 132, 130, 141, 135, 131, 136, 122, 141, 136, 135, 128, 170, 132, 137, 145, 159, 105, 133, 140, 142, 144, 129, 138, 130, 150, 137, 144, 136, 143, 125, 142, 129, 129, 154, 131, 107, 137, 130, 138, 136, 134, 152, 137, 130, 132, 132, 124, 137, 140, 141, 133, 135, 144, 134, 131, 110, 150, 132, 134, 123, 141, 151, 137, 145, 140, 133, 147, 135, 135, 140, 139, 163, 129, 147, 111, 134, 141, 150, 138, 134, 140, 135, 137, 132, 150, 122, 141, 136, 143, 138, 124, 136, 135, 129, 125, 160, 142, 138, 138, 130, 147, 139, 133, 138, 127, 128, 130, 136, 138, 121, 139, 130, 136, 147, 131, 103, 131, 129, 129, 138, 139, 143, 132, 138, 135, 162, 125, 143, 138, 145, 140, 138, 133, 133, 147, 141, 133, 136, 140, 138, 140, 146, 135, 139, 147, 135, 104, 121, 143, 167, 140, 135, 131, 139, 132, 143, 136, 149, 132, 149, 134, 130, 146, 136, 140, 143, 139, 139, 124, 133, 131, 127, 132, 135, 141, 120, 143, 141, 130, 114, 132, 151, 136, 136, 132, 134, 143, 112, 123, 131, 155, 151, 135, 136, 135, 125, 127, 140, 143, 136, 135, 140, 138, 132, 134, 132, 135, 132, 137, 129, 130, 138, 139, 138, 149, 140, 139, 135, 130, 135, 126, 139, 135, 148, 145, 136, 138, 137, 129, 137, 123, 140, 136, 128, 130, 142, 140, 132, 138, 140, 129, 135, 132, 140, 135, 145, 124, 143, 134, 127, 134, 143, 125, 137, 132, 145, 122, 140, 138, 145, 126, 131, 131, 131, 142, 133, 139, 131, 138, 129, 147, 134, 133, 132, 138, 149, 140, 133, 148, 127, 128, 140, 122, 144, 135, 138, 145, 139, 143, 146, 131, 127, 135, 131, 135, 146, 143, 141, 140, 136, 133, 144, 141, 131, 148, 131, 139, 145, 142, 143, 135, 126, 132, 127, 138, 135, 129, 135, 131, 125, 142, 131, 135, 137, 145, 130, 126, 147, 137, 126, 133, 132, 132, 145, 134, 124, 136, 139, 127, 140, 135, 141, 142, 141, 155, 132, 149, 139, 136, 143, 145, 140, 140, 124, 122, 133, 140, 130, 138, 146, 151, 129, 141, 135, 134, 142, 148, 135, 149, 154, 139, 137, 135, 142, 125, 137, 138, 147, 139, 137, 147, 131, 143, 142, 127, 128, 141, 136, 138, 132, 130, 135, 130, 130, 130, 142, 141, 123, 149, 134, 135, 137, 131, 133, 124, 132, 131, 132, 151, 125, 136, 139, 136, 129, 130, 142, 150, 133, 137, 140, 145, 134, 132, 140, 127, 138, 140, 137, 138, 141, 128, 124, 135, 132, 150, 135, 134, 141, 135, 141, 132, 124, 134, 149, 132, 137, 146, 130, 131, 143, 139, 133, 135, 134, 133, 140, 130, 143, 135, 133, 131, 140, 150, 124, 145, 138, 132, 136, 142, 144, 124, 141, 125, 144, 136, 147, 139, 131, 128, 139, 138, 132, 136, 133, 142, 139, 143, 134, 136, 143, 126, 133, 130, 136, 135, 126, 131, 138, 114, 136, 131, 138, 136, 131, 137, 136, 145, 145, 138, 139, 148, 134, 145, 138, 133, 131, 143, 136, 134, 141, 144, 138, 143, 144, 140, 144, 132, 131, 138, 142, 132, 134, 123, 144, 130, 128, 126, 134, 136, 132, 140, 131, 145, 145, 145, 138, 151, 142, 133, 137, 146, 144, 138, 136, 136, 135, 139, 137, 132, 138, 123, 132, 143, 136, 133, 139, 149, 127, 137, 145, 131, 133, 138, 130, 138, 140, 138, 145, 126, 139, 121, 148, 132, 146, 136, 129, 138, 136, 139, 128, 129, 142, 133, 134, 143, 124, 127, 144, 130, 135, 125, 140, 134, 140, 151, 142, 132, 141, 138, 132, 138, 138, 124, 138, 134, 142, 142, 141, 128, 132, 129, 139, 142, 152, 125, 139, 142, 135, 146, 129, 138, 147, 139, 134, 143, 138, 146, 131, 145, 134, 153, 133, 136, 141, 132, 130, 140, 135, 135, 137, 140, 136, 139, 133, 132, 142, 127, 135, 132, 145, 135, 134, 142, 129, 144, 143, 127, 131, 139, 127, 147, 152, 129, 129, 127, 129, 130, 141, 142, 135, 132, 143, 129, 140, 131, 142, 132, 146, 138, 133, 128, 131, 135, 142, 139, 139, 132, 136, 131, 130, 131, 142, 136, 137, 137, 129, 127, 129, 131, 142, 149, 117, 144, 126, 129, 147, 133, 121, 132, 138, 137, 128, 136, 141, 126, 122, 126, 141, 136, 145, 141, 139, 145, 148, 133, 126, 142, 131, 149, 137, 138, 130, 143, 136, 129, 135, 139, 122, 144, 130, 149, 143, 132, 139, 139, 147, 142, 141, 140, 147, 138, 133, 117, 139, 135, 138, 140, 131, 149, 140, 132, 160, 147, 140, 129, 131, 147, 136, 141, 141, 129, 133, 127, 137, 125, 138, 127, 139, 138, 132, 139, 137, 146, 138, 149, 135, 139, 123, 136, 130, 124, 146, 131, 142, 139, 143, 147, 143, 133, 154, 148, 114, 125, 132, 134, 131, 133, 137, 139, 141, 140, 143, 128, 134, 143, 130, 129, 137, 133, 142, 133, 132, 134, 138, 151, 136, 131, 131, 141, 141, 127, 136, 157, 147, 122, 138, 135, 145, 144, 138, 138, 137, 108, 136, 133, 139, 135, 156, 136, 135, 141, 134, 117, 135, 142, 114, 137, 136, 134, 141, 137, 126, 128, 135, 133, 142, 134, 136, 123, 139, 129, 152, 133, 134, 136, 134, 141, 128, 133, 130, 134, 140, 139, 126, 133, 139, 133, 128, 130, 135, 127, 161, 116, 130, 132, 127, 156, 140, 136, 142, 131, 127, 139, 140, 125, 128, 140, 130, 138, 135, 137, 148, 139, 143, 146, 144, 142, 152, 136, 118, 123, 132, 133, 126, 128, 108, 136, 146, 141, 138, 139, 135, 147, 135, 133, 137, 138, 147, 141, 142, 141, 141, 130, 142, 153, 135, 139, 136, 110, 141, 135, 134, 124, 128, 123, 142, 134, 130, 133, 129, 136, 127, 130, 139, 151, 153, 133, 141, 141, 143, 160, 142, 132, 148, 138, 127, 138, 122, 131, 142, 145, 138, 123, 129, 133, 135, 133, 133, 127, 139, 139, 135, 137, 136, 136, 135, 143, 129, 152, 129, 134, 127, 134, 133, 138, 139, 139, 144, 135, 130, 121, 137, 154, 141, 132, 140, 144, 142, 132, 150, 122, 130, 142, 140, 125, 135, 135, 139, 135, 127, 149, 142, 118, 140, 151, 136, 138, 125, 132, 129, 139, 139, 126, 134, 142, 134, 126, 131, 122, 137, 136, 136, 137, 132, 142, 137, 135, 140, 130, 134, 138, 139, 124, 131, 137, 150, 145, 130, 144, 136, 130, 133, 132, 128, 136, 143, 142, 141, 133, 134, 143, 133, 133, 131, 133, 139, 147, 133, 128, 138, 146, 144, 131, 139, 126, 132, 134, 137, 130, 138, 132, 143, 139, 122, 144, 141, 155, 138, 147, 135, 132, 128, 139, 162, 131, 140, 138, 147, 115, 129, 142, 146, 127, 141, 121, 135, 138, 127, 122, 133, 133, 130, 148, 123, 128, 136, 141, 134, 139, 152, 135, 135, 153, 153, 135, 142, 136, 142, 146, 128, 138, 135, 137, 131, 128, 143, 133, 132, 132, 145, 139, 139, 139, 130, 140, 149, 128, 130, 135, 138, 141, 142, 141, 136, 124, 140, 127, 135, 144, 130, 121, 129, 149, 145, 142, 118, 136, 136, 133, 138, 139, 138, 117, 146, 136, 138, 150, 119, 125, 143, 151, 139, 150, 127, 137, 132, 148, 132, 136, 140, 134, 117, 133, 125, 124, 135, 126, 133, 143, 137, 134, 134, 133, 134, 146, 150, 137, 138, 133, 146, 128, 155, 141, 140, 129, 144, 138, 144, 130, 134, 135, 147, 134, 156, 131, 158, 137, 140, 141, 137, 125, 130, 125, 131, 151, 135, 130, 130, 145, 156, 140, 129, 130, 139, 148, 140, 142, 169, 141, 134, 128, 130, 132, 135, 130, 134, 144, 136, 132, 139, 147, 144, 128, 156, 132, 128, 139, 140, 137, 147, 135, 135, 128, 115, 132, 133, 135, 135, 146, 147, 142, 143, 134, 140, 133, 143, 137, 131, 125, 136, 133, 143, 143, 136, 137, 130, 127, 133, 139, 145, 143, 136, 138, 126, 132, 128, 149, 136, 134, 124, 126, 122, 145, 139, 141, 138, 127, 135, 135, 129, 135, 134, 141, 124, 138, 123, 133, 134, 135, 127, 120, 135, 136, 140, 153, 125, 131, 133, 137, 146, 124, 134, 128, 136, 134, 147, 143, 140, 130, 131, 133, 138, 132, 130, 147, 128, 137, 138, 139, 123, 133, 132, 128, 137, 135, 135, 132, 139, 138, 150, 122, 146, 130, 129, 136, 137, 130, 135, 130, 130, 145, 153, 131, 136, 135, 134, 120, 125, 131, 146, 134, 149, 129, 127, 129, 128, 133, 136, 115, 129, 130, 131, 134, 124, 138, 139, 156, 133, 143, 145, 135, 135, 141, 131, 139, 132, 133, 136, 143, 126, 136, 135, 130, 136, 136, 120, 138, 141, 124, 135, 142, 137, 132, 142, 132, 127, 133, 136, 140, 132, 149, 138, 138, 143, 137, 129, 135, 132, 130, 136, 124, 150, 136, 141, 136, 128, 131, 125, 142, 146, 130, 146, 138, 125, 119, 127, 135, 131, 131, 138, 139, 118, 137, 138, 134, 123, 134, 132, 146, 139, 130, 143, 134, 130, 129, 140, 138, 140, 135, 138, 128, 123, 131, 144, 134, 143, 140, 140, 129, 142, 145, 131, 126, 135, 136, 145, 131, 138, 142, 145, 133, 143, 131, 144, 140, 136, 127, 130, 132, 132, 138, 142, 138, 129, 139, 141, 126, 133, 135, 131, 143, 131, 119, 132, 127, 140, 140, 140, 141, 132, 144, 136, 128, 139, 135, 122, 141, 130, 132, 127, 127, 140, 138, 137, 148, 136, 132, 128, 109, 131, 139, 132, 139, 142, 134, 129, 141, 140, 128, 147, 157, 133, 126, 137, 138, 135, 145, 141, 142, 125, 133, 121, 140, 129, 124, 132, 144, 137, 129, 141, 145, 129, 127, 136, 135, 135, 125, 131, 129, 132, 131, 131, 135, 136, 126, 113, 121, 148, 126, 146, 161, 139, 139, 137, 120, 148, 128, 156, 130, 137, 131, 139, 132, 135, 147, 129, 132, 128, 142, 137, 144, 125, 139, 136, 140, 135, 122, 138, 130, 128, 138, 155, 124, 138, 144, 127, 152, 140, 144, 138, 141, 126, 136, 126, 131, 137, 146, 141, 142, 153, 130, 132, 139, 137, 138, 137, 139, 136, 139, 140, 113, 121, 136, 135, 128, 140, 130, 147, 132, 144, 147, 148, 131, 131, 137, 129, 131, 142, 137, 154, 130, 133, 127, 138, 129, 121, 137, 128, 135, 136, 118, 155, 139, 152, 156, 136, 135, 132, 158, 137, 140, 148, 128, 129, 113, 145, 138, 128, 126, 142, 129, 126, 121, 139, 140, 137, 127, 132, 130, 138, 136, 128, 135, 122, 125, 203, 143, 177, 126, 145, 171, 153, 103, 140, 132, 113, 109, 136, 140, 112, 128, 134, 135, 141, 133, 146, 141, 115, 136, 149, 133, 123, 129, 129, 123, 157, 133, 122, 136, 117, 129, 129, 145, 130, 103, 142, 153, 128, 148, 155, 139, 152, 125, 127, 122, 118, 138, 145, 150, 149, 142, 134, 137, 125, 126, 145, 131, 128, 139, 157, 113, 182, 131, 136, 146, 139, 140, 142, 128, 132, 145, 142, 136, 113, 126, 155, 130, 145, 127, 138, 140, 134, 145, 123, 131, 137, 121, 126, 134, 133, 131, 132, 128, 116, 136, 133, 123, 124, 112, 127, 140, 134, 113, 114, 143, 127, 143, 145, 128, 131, 126, 111, 128, 136, 127, 131, 120, 129, 132, 113, 139, 135, 140, 126, 124, 146, 118, 144, 131, 125, 135, 164, 136, 125, 149, 134, 144, 154, 129, 121, 109, 141, 126, 105, 117, 136, 136, 137, 125, 142, 140, 126, 122, 154, 144, 124, 152, 125, 131, 131, 142, 135, 132, 135, 142, 129, 121, 110, 138, 138, 132, 136, 124, 130, 136, 122, 130, 126, 138, 127, 135, 135, 143, 158, 122, 130, 132, 118, 123, 124, 133, 132, 118, 117, 125, 115, 142, 143, 122, 165, 133, 153, 141, 150, 121, 148, 117, 128, 133, 136, 139, 126, 141, 130, 171, 142, 151, 124, 135, 137, 122, 124, 129, 143, 154, 143, 137, 134, 126, 129, 149, 147, 135, 145, 133, 136, 153, 123, 151, 114, 121, 119, 141, 135, 150, 137, 122, 120, 128, 129, 124, 134, 113, 135, 149, 143, 139, 134, 148, 127, 143, 143, 143, 134, 144, 137, 137, 123, 148, 127, 128, 128, 156, 156, 116, 125, 133, 133, 133, 135, 136, 122, 157, 132, 128, 145, 111, 136, 124, 143, 139, 138, 130, 134, 135, 139, 134, 129, 133, 130, 137, 123, 136, 120, 137, 121, 132, 141, 113, 128, 133, 125, 115, 141, 128, 159, 136, 135, 139, 139, 140, 118, 153, 148, 141, 128, 139, 133, 119, 149, 139, 119, 158, 145, 147, 139, 138, 131, 135, 153, 138, 132, 153, 127, 127, 122, 138, 145, 143, 124, 140, 108, 126, 117, 134, 130, 125, 204, 154, 140, 122, 118, 120, 130, 141, 125, 152, 132, 138, 140, 119, 134, 125, 130, 141, 159, 150, 122, 131, 129, 115, 136, 123, 140, 158, 144, 151, 123, 153, 142, 154, 141, 132, 130, 121, 124, 144, 107, 131, 132, 157, 129, 144, 143, 141, 126, 132, 139, 130, 146, 116, 138, 138, 161, 150, 121, 145, 142, 143, 140, 145, 137, 141, 130, 139, 125, 152, 126, 140, 134, 116, 140, 156, 142, 135, 142, 149, 122, 122, 138, 116, 123, 142, 132, 144, 149, 148, 132, 131, 144, 138, 121, 151, 138, 134, 122, 144, 142, 129, 132, 125, 139, 148, 140, 120, 141, 147, 129, 148, 138, 125, 141, 145, 130, 138, 127, 142, 143, 128, 128, 121, 137, 139, 126, 146, 132, 137, 144, 148, 122, 116, 135, 130, 122, 138, 137, 138, 103, 136, 134, 129, 151, 136, 123, 132, 131, 127, 138, 135, 142, 135, 141, 144, 121, 151, 134, 138, 128, 138, 143, 122, 138, 135, 138, 140, 165, 155, 132, 131, 144, 141, 141, 133, 118, 125, 123, 121, 136, 132, 137, 133, 139, 141, 118, 136, 132, 135, 120, 125, 128, 137, 139, 135, 149, 147, 107, 126, 133, 139, 130, 138, 117, 134, 128, 142, 133, 120, 131, 137, 138, 134, 145, 141, 139, 149, 140, 139, 137, 133, 135, 129, 136, 128, 136, 140, 133, 146, 137, 120, 111, 131, 144, 143, 129, 128, 123, 138, 145, 142, 136, 134, 138, 125, 138, 128, 134, 144, 132, 138, 132, 136, 131, 131, 136, 140, 142, 133, 132, 117, 153, 165, 119, 148, 138, 139, 117, 127, 128, 144, 142, 141, 126, 131, 131, 136, 128, 142, 128, 151, 144, 136, 133, 122, 144, 130, 132, 142, 114, 132, 148, 142, 141, 138, 141, 136, 136, 138, 133, 120, 132, 159, 143, 136, 127, 145, 137, 126, 125, 125, 137, 128, 138, 140, 137, 138, 138, 134, 147, 143, 132, 127, 125, 85, 131, 127, 120, 133, 142, 138, 142, 129, 137, 142, 151, 146, 148, 140, 122, 140, 128, 136, 136, 120, 137, 134, 131, 135, 136, 131, 140, 130, 144, 132, 145, 149, 132, 130, 155, 150, 138, 140, 139, 133, 131, 153, 137, 136, 135, 124, 147, 133, 127, 130, 137, 132, 129, 132, 123, 137, 129, 143, 143, 135, 140, 148, 128, 123, 157, 130, 127, 138, 137, 141, 141, 142, 127, 127, 124, 136, 144, 134, 144, 122, 141, 128, 143, 130, 145, 137, 130, 145, 129, 134, 130, 137, 134, 129, 119, 147, 133, 135, 136, 144, 136, 142, 130, 127, 132, 134, 133, 121, 143, 125, 113, 131, 137, 135, 153, 136, 140, 132, 134, 131, 136, 120, 122, 137, 139, 139, 130, 141, 132, 145, 122, 143, 131, 140, 133, 143, 129, 130, 143, 127, 128, 130, 137, 127, 153, 148, 131, 129, 145, 137, 137, 145, 130, 153, 134, 129, 134, 135, 135, 136, 139, 139, 132, 135, 137, 128, 142, 133, 141, 142, 135, 137, 141, 161, 135, 134, 136, 149, 140, 128, 139, 133, 120, 129, 144, 133, 143, 127, 130, 143, 141, 140, 127, 135, 136, 145, 131, 138, 136, 148, 135, 123, 134, 134, 125, 130, 134, 130, 152, 135, 135, 136, 127, 121, 147, 154, 146, 137, 138, 132, 122, 123, 157, 133, 141, 133, 137, 130, 128, 136, 123, 136, 126, 147, 127, 146, 135, 138, 120, 126, 145, 138, 131, 135, 139, 136, 148, 133, 153, 136, 132, 128, 112, 140, 142, 149, 131, 137, 138, 141, 139, 120, 140, 133, 139, 141, 132, 122, 143, 126, 145, 128, 142, 136, 138, 134, 137, 136, 136, 135, 135, 136, 135, 137, 131, 125, 119, 141, 135, 127, 132, 134, 149, 135, 114, 128, 137, 137, 130, 137, 141, 121, 119, 135, 149, 143, 133, 151, 135, 144, 143, 128, 122, 146, 140, 133, 128, 151, 123, 124, 131, 125, 136, 142, 149, 141, 125, 135, 144, 129, 134, 131, 142, 135, 134, 139, 132, 123, 136, 133, 146, 131, 139, 129, 129, 125, 133, 136, 140, 144, 138, 138, 139, 140, 127, 133, 144, 136, 134, 126, 141, 129, 123, 127, 151, 124, 138, 138, 131, 134, 129, 135, 128, 144, 129, 135, 126, 131, 134, 144, 131, 122, 136, 126, 120, 128, 156, 146, 128, 138, 140, 131, 115, 145, 141, 152, 133, 133, 131, 136, 127, 126, 127, 146, 137, 134, 132, 143, 133, 142, 148, 129, 138, 134, 128, 141, 132, 142, 143, 142, 138, 128, 136, 145, 140, 145, 150, 139, 133, 121, 129, 139, 129, 131, 138, 137, 144, 131, 145, 145, 131, 125, 143, 143, 122, 138, 134, 130, 135, 141, 147, 140, 127, 123, 130, 130, 118, 137, 141, 134, 134, 136, 127, 130, 129, 122, 137, 129, 138, 143, 138, 141, 147, 144, 134, 129, 121, 149, 146, 150, 131, 113, 154, 134, 144, 146, 148, 149, 136, 124, 128, 132, 148, 126, 123, 146, 133, 137, 136, 128, 142, 125, 144, 144, 132, 133, 132, 130, 142, 148, 131, 146, 122, 143, 158, 138, 143, 131, 144, 148, 154, 138, 146, 131, 124, 125, 143, 139, 135, 141, 130, 130, 120, 149, 130, 124, 126, 130, 121, 133, 134, 141, 137, 120, 141, 141, 142, 124, 127, 145, 125, 142, 140, 149, 137, 136, 127, 162, 145, 144, 125, 137, 143, 141, 137, 153, 132, 136, 135, 137, 137, 146, 136, 133, 128, 123, 132, 130, 125, 124, 135, 127, 135, 135, 125, 126, 133, 132, 137, 135, 133, 139, 125, 137, 144, 120, 112, 135, 142, 150, 143, 137, 135, 130, 121, 129, 126, 127, 143, 133, 133, 147, 131, 139, 123, 145, 125, 152, 126, 129, 145, 128, 149, 134, 140, 138, 141, 133, 131, 134, 172, 130, 130, 133, 150, 140, 135, 133, 139, 159, 130, 140, 131, 143, 136, 139, 140, 130, 136, 137, 142, 132, 123, 147, 136, 131, 121, 138, 133, 129, 131, 145, 142, 165, 112, 148, 132, 134, 141, 133, 149, 136, 127, 148, 135, 130, 134, 148, 133, 135, 141, 144, 150, 129, 151, 146, 136, 129, 128, 127, 139, 121, 139, 122, 146, 131, 147, 141, 146, 129, 140, 141, 135, 135, 142, 143, 128, 126, 139, 136, 131, 121, 141, 117, 138, 130, 130, 140, 135, 131, 145, 139, 141, 149, 139, 144, 140, 129, 129, 139, 150, 128, 127, 122, 123, 147, 125, 137, 143, 127, 117, 135, 150, 125, 160, 141, 138, 133, 148, 130, 131, 141, 127, 139, 139, 145, 143, 139, 130, 183, 131, 133, 132, 114, 135, 148, 142, 136, 130, 137, 138, 128, 140, 116, 144, 135, 140, 127, 136, 119, 153, 134, 134, 141, 131, 140, 129, 146, 139, 138, 137, 144, 131, 149, 151, 138, 135, 134, 117, 125, 145, 138, 129, 135, 150, 139, 128, 128, 134, 124, 139, 148, 129, 128, 139, 147, 123, 135, 137, 142, 144, 140, 142, 143, 138, 143, 146, 131, 161, 125, 142, 138, 126, 140, 128, 157, 148, 117, 151, 122, 132, 137, 139, 142, 129, 129, 115, 128, 132, 141, 129, 142, 122, 131, 150, 122, 136, 129, 137, 131, 133, 141, 138, 135, 137, 107, 144, 131, 138, 165, 159, 119, 126, 131, 140, 152, 138, 141, 147, 131, 127, 149, 145, 137, 138, 127, 139, 114, 134, 144, 128, 127, 138, 146, 123, 148, 140, 141, 139, 126, 116, 144, 145, 135, 118, 129, 130, 146, 137, 130, 130, 125, 136, 147, 134, 128, 124, 141, 141, 142, 166, 142, 138, 126, 134, 145, 133, 138, 133, 126, 133, 143, 141, 137, 144, 148, 132, 148, 143, 219, 129, 133, 126, 137, 139, 131, 124, 128, 134, 142, 152, 138, 138, 127, 121, 127, 131, 124, 128, 123, 134, 138, 136, 143, 129, 123, 131, 130, 151, 136, 143, 134, 155, 137, 137, 143, 145, 128, 129, 148, 122, 143, 132, 137, 120, 130, 129, 136, 131, 144, 131, 141, 139, 141, 147, 129, 134, 134, 132, 123, 134, 135, 132, 142, 136, 125, 142, 133, 130, 144, 136, 126, 142, 137, 146, 132, 134, 144, 120, 132, 132, 122, 142, 138, 152, 136, 139, 138, 136, 134, 131, 144, 131, 130, 142, 120, 144, 118, 138, 124, 135, 146, 133, 133, 132, 144, 130, 137, 134, 136, 142, 145, 133, 139, 162, 158, 135, 139, 134, 138, 139, 137, 135, 145, 138, 127, 140, 142, 134, 129, 134, 139, 139, 136, 131, 153, 133, 159, 156, 132, 138, 135, 144, 138, 132, 139, 132, 125, 133, 140, 135, 160, 140, 125, 129, 139, 139, 127, 159, 131, 144, 127, 145, 137, 138, 128, 127, 149, 125, 135, 135, 139, 132, 132, 134, 132, 142, 139, 139, 132, 130, 135, 134, 126, 142, 125, 140, 145, 137, 136, 134, 133, 133, 123, 139, 134, 138, 126, 156, 133, 117, 140, 130, 133, 137, 132, 139, 143, 136, 136, 130, 133, 129, 142, 125, 137, 145, 128, 134, 129, 132, 132, 138, 138, 130, 132, 118, 132, 151, 140, 145, 128, 132, 142, 135, 142, 148, 139, 133, 133, 136, 132, 136, 143, 135, 134, 130, 131, 131, 121, 142, 137, 140, 140, 137, 146, 141, 133, 128, 132, 118, 127, 137, 128, 143, 143, 126, 139, 137, 142, 133, 139, 140, 132, 125, 147, 134, 156, 127, 144, 141, 133, 131, 132, 143, 135, 138, 145, 142, 127, 133, 136, 137, 132, 134, 138, 141, 134, 118, 142, 138, 129, 129, 142, 138, 131, 140, 125, 130, 135, 129, 121, 145, 131, 143, 130, 134, 147, 136, 135, 133, 140, 135, 135, 136, 143, 124, 139, 134, 133, 129, 136, 126, 126, 122, 137, 137, 128, 148, 130, 138, 129, 159, 131, 131, 139, 141, 139, 141, 140, 138, 128, 124, 115, 132, 140, 138, 134, 129, 133, 145, 138, 136, 142, 130, 134, 126, 141, 129, 152, 149, 132, 133, 130, 128, 137, 137, 135, 119, 136, 151, 127, 129, 138, 144, 132, 137, 133, 151, 132, 154, 139, 170, 135, 135, 126, 164, 138, 141, 120, 147, 136, 143, 125, 138, 124, 133, 132, 126, 127, 135, 144, 132, 141, 147, 144, 139, 131, 133, 151, 138, 132, 135, 134, 147, 143, 137, 135, 137, 150, 112, 135, 145, 139, 147, 138, 148, 142, 131, 146, 139, 137, 130, 145, 138, 121, 138, 153, 144, 130, 138, 129, 141, 140, 143, 132, 135, 124, 145, 133, 108, 132, 138, 128, 137, 135, 135, 147, 124, 106, 154, 139, 136, 120, 131, 144, 148, 125, 132, 131, 139, 134, 135, 145, 121, 147, 133, 148, 151, 137, 136, 134, 128, 148, 150, 123, 153, 144, 127, 142, 138, 138, 129, 142, 135, 133, 131, 142, 127, 132, 135, 124, 130, 116, 122, 134, 128, 136, 142, 122, 134, 134, 130, 150, 145, 129, 125, 122, 114, 149, 121, 138, 146, 136, 143, 139, 138, 132, 127, 132, 132, 143, 145, 130, 138, 133, 140, 128, 148, 131, 127, 142, 141, 147, 132, 135, 138, 128, 139, 134, 144, 146, 148, 145, 122, 118, 141, 142, 127, 135, 139, 114, 130, 112, 133, 132, 134, 123, 129, 143, 125, 133, 138, 140, 152, 128, 139, 141, 129, 115, 131, 128, 139, 141, 130, 122, 136, 127, 146, 132, 126, 147, 122, 136, 135, 141, 116, 119, 121, 146, 123, 134, 142, 128, 131, 126, 128, 137, 129, 146, 135, 134, 142, 127, 145, 137, 130, 139, 132, 125, 132, 149, 127, 132, 135, 125, 147, 164, 142, 119, 163, 148, 143, 127, 135, 132, 128, 128, 150, 135, 120, 138, 135, 135, 143, 143, 136, 138, 125, 129, 139, 133, 130, 132, 130, 140, 136, 151, 121, 118, 137, 122, 134, 146, 151, 131, 142, 127, 123, 131, 139, 144, 144, 133, 139, 146, 138, 130, 140, 125, 127, 141, 129, 134, 107, 133, 128, 149, 132, 138, 135, 133, 123, 139, 131, 139, 141, 130, 119, 127, 124, 142, 154, 150, 137, 130, 135, 125, 131, 139, 135, 135, 132, 135, 123, 144, 126, 164, 139, 142, 125, 135, 128, 152, 141, 157, 131, 138, 139, 141, 148, 146, 119, 130, 134, 127, 142, 114, 139, 136, 141, 146, 130, 143, 129, 136, 131, 152, 136, 130, 137, 128, 136, 136, 133, 134, 143, 138, 140, 140, 130, 159, 140, 135, 118, 134, 139, 152, 139, 128, 135, 135, 145, 132, 134, 131, 132, 135, 144, 126, 141, 129, 142, 124, 128, 133, 127, 150, 139, 137, 140, 152, 134, 145, 130, 139, 129, 138, 127, 143, 142, 132, 139, 140, 135, 128, 126, 127, 137, 137, 129, 156, 127, 141, 129, 135, 137, 121, 117, 150, 129, 128, 139, 128, 141, 117, 137, 139, 152, 135, 142, 140, 143, 147, 126, 145, 134, 124, 133, 128, 122, 138, 128, 143, 142, 152, 156, 130, 144, 134, 138, 130, 138, 129, 146, 139, 143, 147, 147, 124, 126, 104, 134, 129, 141, 135, 143, 141, 132, 141, 123, 131, 130, 128, 147, 139, 133, 136, 126, 143, 131, 143, 154, 142, 138, 147, 134, 134, 144, 127, 139, 125, 136, 127, 125, 145, 139, 135, 131, 130, 140, 136, 128, 124, 132, 133, 141, 135, 144, 131, 116, 138, 145, 128, 129, 167, 129, 138, 131, 138, 139, 143, 137, 141, 133, 139, 129, 130, 151, 132, 139, 140, 147, 134, 141, 153, 132, 142, 137, 137, 119, 140, 155, 120, 144, 134, 134, 133, 126, 144, 155, 130, 138, 147, 134, 133, 139, 143, 134, 144, 147, 143, 139, 135, 129, 122, 148, 117, 136, 139, 140, 139, 141, 129, 138, 132, 140, 129, 143, 136, 140, 158, 129, 157, 139, 139, 119, 161, 134, 132, 140, 142, 125, 147, 140, 136, 131, 141, 137, 140, 122, 120, 135, 150, 117, 130, 125, 114, 136, 129, 135, 138, 131, 139, 151, 111, 136, 141, 127, 135, 129, 133, 133, 149, 129, 148, 129, 140, 147, 142, 146, 120, 137, 136, 139, 139, 141, 135, 135, 137, 135, 136, 134, 134, 142, 129, 138, 125, 115, 134, 137, 135, 132, 137, 134, 144, 133, 136, 135, 138, 139, 126, 132, 140, 149, 132, 128, 119, 163, 145, 128, 133, 143, 148, 154, 141, 117, 131, 139, 118, 126, 144, 130, 124, 151, 128, 139, 128, 142, 129, 125, 161, 135, 139, 131, 134, 134, 153, 140, 130, 147, 131, 145, 139, 135, 140, 143, 138, 131, 134, 131, 146, 112, 137, 144, 131, 125, 120, 121, 126, 143, 136, 130, 124, 131, 138, 145, 131, 145, 137, 144, 145, 122, 138, 137, 133, 135, 140, 131, 129, 124, 146, 149, 157, 126, 132, 173, 132, 148, 135, 147, 145, 109, 122, 152, 135, 124, 139, 136, 134, 133, 133, 134, 120, 140, 144, 142, 133, 135, 140, 137, 146, 140, 133, 138, 136, 120, 145, 125, 127, 143, 138, 132, 126, 113, 127, 144, 136, 138, 137, 137, 138, 158, 136, 135, 126, 134, 129, 142, 136, 149, 149, 139, 138, 137, 141, 141, 135, 147, 136, 131, 141, 132, 116, 151, 144, 161, 141, 131, 142, 149, 148, 137, 135, 141, 128, 129, 139, 135, 139, 135, 141, 141, 142, 149, 134, 139, 141, 138, 130, 135, 144, 144, 117, 138, 137, 149, 129, 137, 136, 131, 125, 132, 132, 155, 141, 156, 136, 140, 132, 116, 135, 131, 129, 136, 135, 128, 145, 132, 138, 127, 114, 129, 126, 140, 140, 131, 136, 139, 128, 139, 143, 121, 134, 125, 138, 137, 146, 132, 138, 141, 133, 136, 126, 145, 136, 135, 147, 138, 162, 136, 129, 140, 138, 124, 156, 139, 147, 135, 145, 156, 129, 136, 119, 132, 121, 141, 152, 135, 129, 101, 138, 122, 131, 132, 139, 190, 134, 131, 108, 158, 132, 123, 133, 139, 149, 123, 149, 147, 126, 119, 133, 134, 139, 158, 133, 126, 136, 130, 131, 143, 144, 126, 146, 134, 141, 133, 139, 146, 140, 138, 137, 138, 141, 134, 117, 142, 137, 138, 133, 132, 141, 139, 131, 147, 124, 135, 140, 152, 133, 115, 142, 134, 144, 110, 144, 136, 145, 129, 129, 122, 135, 133, 111, 149, 120, 149, 127, 132, 124, 137, 131, 139, 145, 142, 135, 133, 133, 144, 147, 127, 138, 133, 135, 140, 140, 135, 146, 139, 136, 134, 133, 123, 144, 142, 140, 129, 139, 136, 144, 135, 137, 132, 141, 132, 139, 130, 132, 138, 125, 116, 118, 126, 132, 141, 133, 139, 133, 131, 136, 147, 138, 104, 124, 132, 132, 133, 138, 143, 148, 125, 130, 128, 129, 134, 137, 134, 132, 146, 141, 129, 147, 131, 135, 110, 131, 133, 144, 144, 137, 137, 139, 138, 127, 123, 147, 139, 148, 139, 131, 137, 135, 143, 139, 142, 133, 147, 131, 137, 144, 140, 136, 142, 130, 132, 133, 128, 143, 128, 141, 132, 141, 140, 139, 144, 136, 147, 126, 133, 130, 141, 130, 142, 136, 139, 141, 145, 153, 135, 134, 138, 138, 140, 137, 134, 137, 137, 137, 138, 135, 145, 142, 134, 134, 138, 135, 125, 141, 137, 134, 133, 136, 137, 131, 136, 135, 132, 130, 135, 142, 131, 130, 141, 138, 126, 138, 138, 136, 131, 142, 135, 138, 141, 134, 136, 136, 135, 130, 133, 140, 131, 138, 129, 136, 123, 141, 129, 136, 142, 136, 134, 133, 147, 140, 133, 134, 132, 131, 134, 134, 134, 147, 125, 137, 140, 141, 140, 142, 137, 145, 141, 136, 135, 139, 128, 141, 135, 132, 145, 140, 144, 135, 146, 133, 135, 128, 133, 131, 135, 137, 138, 133, 135, 132, 137, 142, 136, 140, 139, 143, 144, 131, 133, 141, 137, 130, 136, 152, 140, 139, 135, 144, 127, 130, 138, 139, 149, 135, 128, 142, 137, 140, 137, 138, 137, 136, 139, 139, 139, 130, 142, 135, 147, 133, 149, 132, 141, 133, 143, 136, 138, 140, 131, 141, 135, 130, 138, 145, 149, 124, 137, 137, 135, 129, 125, 139, 131, 162, 135, 137, 140, 138, 136, 140, 138, 137, 125, 140, 135, 146, 136, 138, 151, 126, 147, 134, 148, 138, 138, 128, 133, 141, 134, 147, 139, 132, 127, 151, 122, 161, 148, 139, 128, 134, 136, 139, 138, 141, 136, 129, 140, 133, 132, 142, 134, 143, 132, 145, 134, 143, 138, 123, 144, 134, 135, 139, 132, 128, 134, 140, 137, 126, 134, 143, 136, 140, 127, 139, 152, 143, 140, 136, 149, 135, 147, 136, 141, 140, 134, 137, 143, 129, 145, 146, 136, 133, 137, 139, 137, 147, 134, 154, 140, 142, 123, 138, 127, 131, 128, 137, 133, 129, 145, 128, 137, 129, 151, 138, 130, 131, 133, 151, 124, 128, 136, 137, 133, 139, 138, 137, 137, 138, 143, 140, 142, 142, 129, 129, 131, 133, 125, 129, 150, 135, 125, 132, 132, 147, 126, 138, 139, 175, 111, 142, 128, 133, 137, 143, 144, 128, 137, 136, 147, 138, 133, 134, 118, 134, 131, 136, 133, 125, 143, 136, 142, 130, 136, 139, 126, 134, 133, 141, 129, 139, 137, 142, 138, 130, 132, 139, 138, 142, 143, 148, 131, 148, 133, 129, 138, 138, 142, 133, 146, 131, 136, 142, 138, 136, 131, 143, 136, 138, 146, 137, 124, 149, 134, 142, 120, 135, 137, 133, 143, 133, 131, 130, 128, 135, 138, 136, 139, 130, 141, 143, 143, 139, 127, 131, 137, 134, 133, 142, 144, 134, 158, 136, 127, 143, 131, 136, 137, 136, 130, 138, 141, 131, 126, 139, 134, 146, 127, 136, 141, 133, 136, 136, 129, 133, 142, 140, 119, 135, 144, 143, 109, 134, 143, 134, 127, 132, 136, 136, 134, 138, 135, 133, 127, 140, 134, 132, 134, 135, 128, 138, 126, 137, 132, 151, 142, 139, 136, 135, 136, 148, 142, 141, 125, 132, 137, 140, 129, 135, 133, 134, 124, 139, 144, 130, 141, 134, 142, 138, 137, 130, 135, 130, 128, 140, 148, 143, 154, 141, 131, 137, 131, 137, 141, 132, 152, 138, 139, 124, 140, 147, 136, 137, 138, 139, 114, 131, 137, 145, 144, 138, 134, 129, 139, 144, 140, 134, 140, 176, 148, 133, 138, 138, 130, 113, 131, 115, 143, 135, 134, 139, 168, 139, 136, 144, 137, 142, 137, 129, 123, 136, 140, 136, 133, 148, 138, 131, 136, 179, 133, 138, 132, 136, 136, 131, 139, 132, 137, 128, 140, 138, 130, 130, 144, 136, 143, 135, 139, 128, 124, 140, 149, 138, 148, 135, 129, 129, 131, 144, 153, 140, 140, 132, 132, 140, 137, 140, 149, 129, 126, 131, 137, 137, 144, 130, 139, 137, 159, 135, 137, 133, 138, 133, 136, 143, 135, 132, 133, 139, 138, 138, 142, 136, 141, 134, 141, 144, 134, 135, 138, 133, 131, 143, 148, 140, 136, 129, 143, 147, 138, 137, 132, 128, 131, 126, 150, 130, 143, 140, 145, 138, 127, 130, 134, 133, 136, 130, 135, 137, 137, 137, 130, 132, 148, 122, 144, 137, 126, 137, 131, 137, 131, 119, 135, 131, 139, 132, 147, 121, 141, 126, 147, 133, 140, 132, 154, 142, 127, 141, 133, 128, 128, 132, 134, 136, 132, 137, 139, 145, 135, 131, 129, 140, 132, 133, 140, 134, 139, 139, 126, 132, 144, 134, 140, 147, 139, 136, 137, 139, 136, 136, 134, 134, 134, 136, 138, 131, 137, 121, 137, 137, 135, 134, 139, 135, 131, 127, 133, 139, 149, 139, 131, 130, 144, 139, 133, 131, 135, 135, 137, 142, 133, 124, 134, 142, 141, 141, 128, 134, 133, 146, 136, 170, 181, 134, 140, 115, 133, 144, 133, 129, 132, 140, 138, 140, 136, 145, 131, 141, 132, 132, 135, 141, 137, 136, 131, 144, 140, 143, 127, 135, 187, 132, 139, 140, 127, 136, 136, 145, 133, 134, 140, 132, 126, 143, 130, 138, 148, 132, 148, 147, 134, 115, 134, 157, 134, 124, 137, 150, 133, 141, 140, 142, 137, 138, 136, 140, 156, 127, 143, 150, 151, 117, 138, 137, 128, 143, 164, 137, 138, 146, 132, 136, 136, 132, 120, 137, 123, 142, 135, 142, 168, 137, 133, 145, 139, 134, 136, 150, 134, 142, 133, 133, 132, 138, 122, 124, 139, 140, 135, 137, 139, 139, 136, 147, 136, 136, 146, 141, 138, 126, 152, 134, 132, 140, 143, 143, 137, 138, 125, 126, 128, 137, 156, 140, 135, 136, 139, 136, 139, 140, 138, 135, 142, 159, 144, 136, 140, 134, 131, 133, 131, 142, 139, 128, 153, 127, 140, 137, 134, 130, 125, 133, 136, 138, 156, 129, 144, 144, 141, 149, 127, 141, 144, 146, 117, 136, 144, 127, 134, 141, 134, 155, 146, 146, 140, 145, 115, 136, 147, 122, 158, 139, 135, 134, 145, 132, 149, 132, 126, 125, 140, 143, 145, 143, 111, 133, 140, 129, 151, 148, 142, 126, 158, 129, 132, 135, 118, 121, 135, 129, 135, 128, 129, 127, 121, 147, 135, 136, 135, 128, 123, 127, 133, 127, 138, 136, 133, 141, 128, 140, 147, 129, 138, 125, 132, 132, 125, 137, 147, 131, 136, 135, 136, 130, 140, 140, 148, 147, 117, 126, 136, 131, 146, 134, 143, 136, 134, 133, 166, 129, 142, 144, 133, 139, 147, 144, 132, 138, 142, 136, 132, 155, 140, 133, 134, 109, 140, 133, 141, 128, 137, 144, 146, 141, 130, 131, 131, 135, 118, 127, 146, 155, 144, 142, 131, 147, 128, 124, 147, 131, 137, 122, 145, 156, 151, 125, 129, 122, 136, 152, 147, 142, 143, 128, 155, 135, 133, 156, 133, 159, 144, 150, 147, 131, 137, 157, 139, 125, 138, 150, 152, 157, 145, 120, 136, 154, 138, 143, 142, 140, 149, 136, 133, 137, 150, 132, 143, 152, 149, 130, 123, 167, 143, 146, 134, 123, 136, 135, 146, 126, 137, 123, 132, 146, 153, 130, 124, 134, 139, 150, 147, 144, 132, 121, 138, 129, 122, 129, 142, 140, 129, 118, 134, 137, 121, 140, 146, 135, 129, 156, 128, 134, 136, 115, 133, 129, 129, 157, 149, 142, 140, 134, 131, 141, 124, 132, 141, 157, 142, 145, 131, 132, 118, 126, 129, 140, 129, 129, 132, 135, 140, 120, 126, 151, 124, 136, 136, 133, 159, 130, 167, 136, 151, 156, 148, 131, 122, 148, 116, 157, 141, 133, 145, 142, 147, 136, 142, 134, 125, 142, 129, 132, 143, 141, 126, 154, 173, 134, 143, 150, 133, 132, 121, 136, 128, 102, 127, 155, 127, 139, 132, 140, 129, 129, 142, 136, 117, 149, 126, 124, 136, 127, 136, 132, 142, 129, 133, 145, 137, 138, 129, 114, 131, 134, 132, 153, 129, 131, 128, 147, 140, 139, 127, 140, 150, 144, 145, 142, 148, 145, 131, 129, 138, 137, 139, 140, 143, 135, 138, 136, 138, 140, 136, 141, 140, 145, 134, 131, 133, 132, 129, 157, 132, 137, 142, 135, 142, 149, 135, 141, 137, 142, 147, 153, 132, 135, 130, 130, 124, 155, 140, 128, 136, 131, 131, 130, 130, 141, 143, 136, 144, 130, 149, 145, 151, 142, 139, 133, 135, 127, 150, 138, 140, 151, 144, 121, 149, 148, 129, 121, 125, 138, 122, 135, 141, 132, 148, 140, 141, 140, 135, 135, 137, 134, 133, 130, 135, 129, 141, 132, 127, 140, 154, 129, 128, 148, 133, 126, 131, 138, 129, 149, 137, 137, 146, 145, 145, 132, 147, 108, 127, 136, 131, 140, 137, 130, 143, 133, 123, 134, 133, 137, 132, 143, 141, 142, 135, 132, 145, 140, 136, 132, 139, 128, 140, 145, 147, 125, 137, 130, 133, 136, 124, 149, 138, 132, 137, 134, 130, 128, 149, 140, 138, 133, 122, 139, 135, 128, 136, 144, 132, 134, 141, 124, 145, 126, 134, 134, 124, 134, 125, 143, 144, 136, 137, 130, 129, 143, 131, 143, 126, 151, 138, 141, 137, 128, 138, 123, 141, 129, 136, 136, 135, 150, 124, 134, 146, 130, 127, 124, 136, 138, 122, 133, 140, 138, 151, 133, 127, 132, 143, 136, 150, 132, 126, 146, 127, 139, 129, 142, 121, 135, 131, 116, 136, 129, 148, 131, 118, 136, 143, 135, 124, 144, 142, 128, 144, 143, 134, 130, 140, 145, 137, 140, 132, 129, 148, 134, 119, 146, 129, 140, 136, 125, 140, 137, 127, 132, 129, 120, 139, 123, 146, 134, 134, 144, 134, 140, 133, 138, 141, 143, 146, 139, 138, 136, 146, 139, 132, 133, 135, 130, 142, 134, 146, 133, 138, 134, 130, 128, 125, 126, 140, 143, 143, 142, 119, 138, 132, 126, 142, 136, 141, 132, 137, 146, 149, 136, 140, 120, 137, 122, 136, 143, 135, 137, 135, 130, 137, 138, 125, 141, 126, 147, 139, 135, 138, 140, 131, 130, 134, 171, 126, 137, 156, 130, 146, 152, 131, 143, 148, 140, 133, 131, 131, 129, 150, 139, 132, 152, 131, 142, 138, 140, 138, 153, 144, 119, 136, 141, 146, 136, 129, 132, 133, 124, 138, 158, 144, 120, 138, 145, 130, 139, 126, 133, 146, 144, 131, 133, 140, 135, 138, 128, 133, 131, 132, 135, 138, 139, 133, 149, 123, 133, 137, 133, 137, 133, 142, 126, 155, 140, 145, 140, 132, 123, 150, 132, 133, 142, 140, 126, 129, 137, 139, 127, 126, 136, 142, 119, 122, 133, 144, 132, 148, 127, 133, 137, 136, 138, 127, 145, 139, 137, 132, 133, 133, 118, 144, 130, 131, 117, 132, 135, 139, 144, 143, 127, 139, 139, 128, 131, 124, 132, 121, 131, 138, 150, 161, 141, 124, 140, 127, 130, 125, 139, 138, 117, 152, 131, 131, 135, 134, 136, 134, 125, 144, 135, 136, 137, 131, 133, 136, 126, 149, 138, 141, 144, 129, 133, 134, 133, 123, 144, 135, 132, 142, 143, 135, 131, 151, 140, 131, 144, 143, 124, 141, 140, 135, 147, 133, 143, 129, 127, 137, 143, 135, 138, 140, 135, 148, 150, 132, 137, 134, 142, 127, 133, 123, 139, 128, 137, 137, 148, 137, 137, 131, 131, 157, 131, 136, 129, 144, 149, 137, 133, 144, 135, 134, 129, 127, 142, 136, 142, 141, 139, 142, 140, 125, 134, 134, 141, 146, 129, 134, 144, 138, 129, 138, 131, 145, 129, 142, 137, 125, 142, 131, 138, 137, 148, 134, 149, 126, 137, 136, 133, 141, 140, 138, 129, 140, 130, 139, 128, 135, 140, 127, 138, 126, 138, 123, 145, 141, 134, 125, 133, 137, 133, 125, 131, 126, 131, 122, 142, 153, 141, 136, 139, 136, 142, 142, 123, 139, 131, 140, 138, 132, 127, 145, 145, 131, 134, 127, 122, 131, 126, 127, 140, 131, 138, 133, 129, 144, 135, 133, 130, 134, 130, 135, 140, 132, 125, 139, 134, 133, 139, 132, 137, 135, 130, 141, 150, 132, 122, 141, 143, 144, 135, 127, 129, 138, 123, 136, 133, 139, 137, 142, 142, 138, 125, 140, 133, 133, 142, 140, 137, 135, 139, 134, 135, 131, 149, 147, 137, 130, 133, 137, 138, 130, 141, 126, 146, 139, 135, 125, 136, 182, 136, 143, 136, 134, 134, 142, 134, 128, 129, 131, 141, 110, 141, 134, 155, 143, 139, 134, 120, 128, 135, 144, 132, 147, 134, 140, 130, 127, 141, 143, 141, 135, 136, 127, 143, 138, 121, 138, 139, 143, 125, 132, 135, 132, 134, 136, 146, 138, 138, 142, 122, 138, 135, 117, 124, 133, 128, 131, 152, 141, 146, 130, 135, 132, 128, 144, 146, 132, 133, 144, 135, 131, 140, 133, 146, 139, 141, 135, 134, 132, 121, 145, 132, 141, 140, 123, 130, 140, 146, 135, 135, 138, 134, 136, 135, 135, 125, 128, 132, 143, 139, 131, 137, 136, 137, 133, 138, 135, 127, 143, 131, 126, 133, 144, 122, 130, 132, 151, 136, 134, 137, 136, 141, 144, 119, 142, 154, 128, 145, 129, 130, 133, 134, 148, 144, 137, 129, 139, 143, 133, 142, 135, 148, 123, 135, 140, 135, 130, 134, 129, 140, 134, 133, 136, 123, 133, 138, 134, 129, 144, 135, 135, 130, 131, 134, 126, 118, 124, 126, 126, 137, 131, 124, 136, 135, 139, 136, 134, 137, 139, 123, 116, 133, 143, 128, 127, 131, 141, 137, 131, 144, 135, 138, 157, 130, 136, 138, 130, 133, 141, 132, 128, 131, 136, 141, 130, 134, 142, 139, 135, 138, 167, 124, 142, 136, 147, 140, 132, 161, 129, 139, 131, 129, 137, 139, 144, 131, 143, 138, 138, 143, 122, 137, 132, 143, 138, 138, 136, 142, 136, 114, 114, 137, 134, 127, 135, 148, 146, 137, 118, 133, 130, 145, 150, 151, 131, 140, 136, 135, 136, 122, 134, 138, 141, 138, 149, 131, 140, 132, 133, 132, 134, 127, 134, 137, 136, 134, 145, 139, 138, 136, 125, 141, 136, 135, 144, 145, 141, 137, 134, 134, 139, 140, 130, 135, 141, 147, 121, 146, 127, 131, 139, 132, 138, 130, 128, 140, 132, 136, 133, 133, 145, 137, 119, 139, 114, 138, 137, 137, 134, 140, 140, 137, 137, 136, 136, 127, 142, 132, 120, 137, 129, 133, 135, 140, 137, 144, 135, 141, 141, 137, 139, 134, 136, 135, 138, 133, 140, 140, 137, 126, 132, 138, 129, 130, 171, 129, 125, 134, 129, 129, 144, 137, 135, 115, 140, 146, 125, 141, 113, 134, 145, 140, 134, 136, 146, 127, 136, 157, 142, 129, 134, 131, 138, 141, 131, 137, 137, 147, 136, 132, 134, 136, 116, 133, 144, 130, 131, 150, 133, 92, 129, 142, 142, 137, 124, 125, 136, 128, 131, 134, 140, 140, 130, 128, 137, 135, 143, 131, 136, 141, 140, 133, 119, 134, 136, 140, 134, 131, 127, 131, 127, 135, 113, 133, 135, 140, 135, 135, 150, 134, 129, 134, 132, 109, 140, 150, 129, 136, 157, 136, 130, 135, 159, 126, 134, 134, 141, 122, 130, 128, 152, 126, 134, 139, 127, 136, 137, 124, 129, 143, 135, 138, 139, 147, 130, 127, 138, 126, 132, 139, 138, 150, 130, 139, 129, 126, 136, 144, 120, 124, 123, 139, 125, 138, 132, 141, 140, 137, 143, 146, 138, 148, 136, 138, 151, 124, 135, 137, 131, 141, 130, 124, 142, 130, 138, 133, 158, 125, 129, 142, 137, 146, 97, 125, 123, 138, 141, 135, 140, 144, 134, 127, 130, 147, 129, 155, 127, 134, 139, 131, 124, 129, 138, 145, 126, 150, 146, 142, 146, 140, 115, 147, 135, 135, 135, 155, 164, 135, 150, 135, 146, 144, 141, 139, 131, 136, 150, 125, 135, 131, 132, 131, 133, 129, 140, 141, 130, 126, 142, 144, 134, 136, 139, 141, 134, 132, 132, 135, 137, 140, 111, 131, 126, 143, 144, 138, 130, 141, 132, 133, 134, 130, 129, 133, 144, 119, 133, 151, 135, 147, 126, 140, 150, 135, 150, 145, 133, 153, 132, 137, 132, 125, 135, 144, 163, 149, 127, 137, 139, 140, 139, 129, 138, 128, 132, 145, 127, 133, 135, 142, 134, 139, 146, 136, 134, 126, 143, 140, 130, 131, 139, 130, 120, 132, 133, 127, 121, 141, 135, 125, 129, 137, 126, 128, 143, 135, 138, 156, 132, 153, 140, 134, 127, 135, 137, 143, 134, 136, 138, 132, 130, 131, 126, 124, 150, 134, 134, 135, 134, 138, 156, 135, 141, 134, 137, 144, 141, 125, 146, 142, 132, 135, 153, 137, 133, 141, 135, 134, 146, 142, 137, 136, 140, 124, 140, 131, 118, 144, 150, 139, 138, 126, 133, 132, 121, 123, 145, 123, 137, 139, 129, 156, 152, 136, 140, 141, 131, 126, 118, 129, 124, 135, 141, 132, 144, 142, 123, 145, 145, 135, 138, 137, 146, 142, 125, 144, 139, 144, 134, 130, 132, 137, 126, 133, 138, 136, 140, 130, 149, 134, 140, 138, 134, 129, 119, 138, 146, 120, 115, 126, 132, 148, 133, 125, 142, 141, 144, 113, 122, 158, 149, 124, 134, 157, 154, 131, 148, 129, 141, 138, 123, 133, 130, 132, 135, 124, 131, 133, 129, 139, 139, 142, 129, 150, 139, 133, 134, 138, 133, 138, 131, 144, 133, 133, 137, 137, 156, 131, 130, 138, 126, 132, 129, 123, 135, 139, 128, 160, 138, 130, 131, 138, 129, 144, 138, 134, 129, 132, 144, 136, 142, 128, 138, 154, 147, 123, 138, 134, 134, 140, 137, 144, 167, 149, 143, 140, 131, 147, 130, 147, 152, 119, 121, 136, 135, 126, 128, 120, 138, 123, 127, 133, 135, 137, 134, 128, 127, 126, 139, 141, 162, 146, 140, 132, 141, 149, 149, 114, 141, 136, 136, 130, 140, 143, 136, 146, 130, 135, 143, 116, 123, 146, 146, 132, 130, 141, 137, 147, 127, 142, 130, 130, 138, 121, 134, 112, 148, 142, 142, 133, 133, 134, 133, 114, 131, 132, 144, 131, 137, 135, 125, 132, 130, 148, 137, 132, 123, 144, 129, 140, 125, 124, 126, 138, 131, 125, 143, 141, 138, 145, 134, 129, 135, 126, 127, 122, 148, 126, 134, 140, 153, 138, 138, 128, 136, 143, 135, 140, 133, 146, 151, 134, 143, 124, 129, 133, 128, 126, 133, 128, 139, 139, 131, 117, 137, 128, 151, 132, 131, 144, 131, 134, 135, 129, 138, 125, 116, 126, 132, 126, 133, 142, 120, 129, 154, 144, 130, 134, 138, 141, 141, 142, 136, 122, 132, 146, 136, 129, 149, 139, 152, 141, 135, 128, 135, 131, 142, 133, 132, 134, 128, 148, 146, 145, 142, 143, 136, 156, 127, 137, 136, 128, 125, 125, 131, 128, 138, 128, 138, 129, 140, 128, 133, 143, 139, 145, 132, 128, 162, 142, 139, 147, 138, 133, 143, 156, 140, 132, 149, 133, 129, 134, 127, 150, 130, 149, 136, 134, 123, 142, 142, 131, 120, 125, 151, 147, 143, 129, 131, 139, 147, 136, 143, 135, 136, 122, 127, 145, 130, 133, 146, 126, 129, 160, 138, 128, 148, 164, 146, 157, 137, 131, 143, 134, 136, 136, 153, 143, 127, 147, 131, 136, 127, 147, 117, 143, 157, 129, 161, 128, 125, 143, 133, 139, 135, 120, 139, 134, 127, 138, 142, 140, 137, 142, 134, 146, 131, 129, 119, 134, 144, 130, 129, 145, 137, 140, 126, 131, 137, 146, 125, 127, 158, 139, 128, 134, 135, 126, 130, 146, 128, 134, 126, 141, 129, 134, 141, 134, 139, 134, 138, 143, 142, 136, 132, 136, 124, 128, 141, 119, 144, 137, 134, 131, 139, 144, 152, 136, 139, 156, 150, 153, 124, 133, 137, 136, 129, 148, 130, 128, 128, 135, 164, 160, 131, 153, 141, 123, 141, 129, 128, 143, 153, 132, 127, 141, 132, 131, 141, 130, 136, 132, 149, 137, 147, 137, 140, 146, 127, 140, 137, 126, 130, 134, 127, 130, 136, 127, 131, 144, 130, 133, 125, 134, 137, 147, 140, 116, 148, 131, 141, 135, 151, 146, 144, 125, 126, 128, 135, 119, 152, 142, 155, 136, 116, 131, 138, 129, 135, 127, 135, 142, 154, 128, 133, 139, 129, 142, 136, 144, 133, 149, 138, 123, 123, 146, 148, 148, 142, 139, 129, 138, 132, 155, 135, 130, 123, 127, 130, 113, 128, 146, 136, 134, 137, 144, 136, 160, 142, 138, 129, 129, 136, 148, 135, 136, 145, 134, 154, 144, 133, 141, 141, 168, 141, 141, 130, 148, 127, 126, 148, 133, 134, 131, 138, 147, 138, 151, 135, 126, 133, 139, 120, 130, 139, 145, 135, 135, 147, 125, 148, 135, 139, 130, 134, 127, 153, 148, 137, 136, 135, 145, 151, 141, 137, 122, 148, 124, 140, 137, 129, 127, 143, 136, 129, 121, 140, 131, 158, 144, 132, 148, 142, 119, 141, 143, 135, 124, 139, 134, 136, 148, 136, 134, 136, 133, 133, 141, 127, 135, 132, 139, 140, 124, 137, 145, 151, 130, 155, 131, 141, 137, 142, 131, 138, 145, 127, 149, 131, 132, 147, 146, 130, 130, 139, 149, 127, 132, 126, 129, 124, 133, 141, 149, 147, 149, 141, 130, 137, 135, 123, 149, 145, 135, 154, 125, 137, 124, 150, 145, 138, 135, 130, 131, 129, 139, 141, 129, 136, 134, 136, 134, 133, 132, 135, 132, 121, 146, 124, 124, 132, 134, 139, 138, 129, 139, 134, 130, 130, 137, 140, 137, 132, 138, 133, 139, 133, 136, 135, 149, 137, 129, 130, 143, 130, 132, 127, 128, 137, 119, 132, 138, 145, 134, 163, 145, 136, 136, 144, 132, 127, 136, 130, 125, 135, 134, 137, 135, 128, 130, 134, 139, 124, 140, 132, 135, 130, 127, 119, 135, 127, 125, 141, 138, 133, 137, 139, 132, 130, 131, 135, 136, 147, 136, 134, 157, 132, 134, 134, 138, 143, 137, 140, 136, 141, 155, 124, 139, 145, 135, 134, 134, 138, 128, 137, 138, 145, 131, 115, 139, 135, 163, 130, 133, 130, 140, 120, 138, 121, 123, 137, 127, 143, 141, 140, 148, 134, 128, 142, 132, 135, 137, 127, 138, 136, 135, 137, 145, 137, 143, 149, 137, 127, 139, 155, 126, 135, 139, 137, 132, 135, 126, 134, 147, 125, 137, 143, 142, 139, 144, 135, 134, 140, 134, 132, 139, 127, 141, 144, 155, 133, 133, 134, 136, 152, 146, 129, 131, 135, 144, 128, 126, 116, 130, 128, 142, 127, 136, 144, 137, 143, 148, 138, 138, 138, 132, 132, 118, 136, 137, 147, 130, 133, 128, 139, 145, 127, 135, 145, 132, 133, 131, 139, 132, 145, 144, 135, 143, 117, 136, 130, 135, 146, 122, 131, 145, 133, 142, 140, 140, 133, 141, 131, 140, 131, 131, 131, 146, 158, 133, 132, 128, 150, 144, 126, 135, 139, 142, 137, 132, 134, 128, 139, 141, 129, 135, 140, 136, 131, 145, 135, 143, 125, 135, 139, 135, 132, 127, 129, 128, 140, 141, 141, 116, 141, 137, 150, 130, 144, 140, 140, 138, 139, 145, 131, 146, 127, 121, 133, 141, 135, 134, 128, 131, 153, 124, 129, 134, 136, 136, 142, 134, 136, 133, 143, 140, 140, 137, 135, 130, 140, 131, 143, 134, 131, 145, 134, 133, 146, 148, 146, 130, 128, 135, 131, 151, 139, 133, 142, 147, 146, 109, 128, 128, 136, 146, 136, 153, 128, 131, 142, 129, 149, 140, 139, 132, 133, 135, 134, 131, 146, 132, 140, 146, 128, 133, 134, 144, 139, 137, 149, 134, 138, 134, 125, 134, 129, 138, 131, 128, 119, 129, 126, 133, 139, 114, 140, 123, 133, 138, 138, 133, 134, 119, 133, 145, 137, 133, 131, 132, 131, 129, 137, 130, 121, 141, 125, 138, 141, 129, 134, 126, 137, 142, 141, 130, 142, 143, 144, 132, 138, 134, 126, 142, 131, 135, 141, 159, 142, 145, 138, 133, 139, 133, 127, 137, 133, 149, 130, 141, 132, 137, 143, 127, 146, 144, 136, 139, 131, 135, 134, 144, 142, 147, 143, 141, 142, 134, 153, 147, 136, 141, 135, 127, 136, 138, 134, 134, 117, 135, 132, 145, 141, 127, 134, 138, 134, 139, 142, 126, 144, 135, 134, 122, 133, 137, 130, 133, 168, 136, 140, 146, 150, 133, 142, 126, 134, 134, 117, 149, 139, 132, 134, 134, 121, 137, 140, 128, 135, 118, 130, 131, 126, 120, 140, 134, 143, 138, 129, 127, 142, 143, 130, 143, 134, 134, 133, 130, 135, 140, 132, 145, 139, 143, 133, 141, 139, 137, 127, 143, 125, 132, 138, 147, 135, 131, 145, 131, 136, 139, 132, 141, 137, 136, 140, 132, 144, 140, 129, 145, 135, 136, 130, 135, 131, 149, 120, 118, 132, 131, 127, 134, 126, 138, 135, 153, 137, 133, 148, 132, 130, 120, 125, 134, 127, 143, 133, 124, 131, 138, 141, 139, 123, 134, 139, 138, 125, 137, 126, 144, 141, 141, 131, 140, 140, 120, 137, 137, 149, 128, 133, 139, 133, 122, 149, 130, 126, 139, 130, 137, 137, 132, 136, 137, 135, 132, 130, 134, 129, 133, 120, 130, 139, 143, 145, 126, 132, 138, 131, 135, 129, 136, 134, 129, 138, 130, 136, 144, 133, 140, 136, 125, 141, 133, 136, 136, 120, 138, 138, 131, 137, 129, 139, 127, 141, 132, 146, 133, 149, 123, 134, 127, 117, 135, 137, 136, 141, 138, 132, 145, 137, 143, 131, 142, 139, 133, 143, 141, 143, 132, 135, 134, 134, 131, 133, 145, 128, 137, 130, 121, 140, 143, 144, 127, 130, 143, 139, 135, 128, 139, 130, 132, 137, 147, 144, 125, 135, 138, 132, 146, 136, 145, 134, 143, 142, 121, 141, 124, 131, 127, 149, 138, 124, 131, 145, 136, 125, 128, 139, 125, 137, 129, 152, 131, 132, 126, 141, 119, 136, 127, 125, 124, 131, 146, 144, 138, 135, 147, 140, 136, 127, 149, 138, 135, 143, 127, 149, 155, 126, 139, 142, 138, 129, 160, 132, 132, 120, 128, 137, 139, 144, 123, 141, 138, 141, 137, 137, 131, 132, 139, 132, 148, 132, 122, 153, 122, 149, 133, 148, 130, 126, 169, 150, 136, 143, 131, 144, 148, 136, 136, 134, 133, 134, 140, 153, 139, 132, 128, 138, 131, 125, 136, 127, 136, 129, 132, 146, 142, 129, 128, 133, 145, 123, 129, 144, 146, 131, 136, 126, 124, 144, 134, 125, 121, 133, 133, 144, 122, 124, 129, 144, 138, 138, 147, 137, 126, 130, 135, 140, 142, 141, 154, 141, 138, 149, 130, 152, 138, 165, 142, 145, 130, 131, 132, 145, 138, 142, 125, 141, 131, 134, 137, 131, 131, 123, 137, 136, 128, 148, 141, 130, 136, 144, 132, 133, 138, 143, 145, 125, 130, 136, 132, 129, 143, 139, 144, 136, 139, 142, 131, 140, 135, 141, 121, 126, 139, 142, 129, 137, 112, 154, 138, 137, 130, 119, 147, 144, 141, 144, 138, 138, 143, 140, 152, 131, 148, 127, 127, 126, 139, 133, 136, 134, 143, 135, 133, 143, 146, 132, 142, 146, 153, 136, 148, 138, 128, 129, 135, 135, 143, 144, 125, 145, 146, 125, 134, 129, 146, 128, 131, 152, 130, 134, 135, 134, 130, 138, 130, 132, 139, 137, 132, 129, 135, 137, 139, 134, 144, 118, 121, 143, 126, 133, 135, 129, 152, 134, 126, 136, 148, 146, 105, 149, 121, 140, 152, 133, 131, 129, 137, 138, 132, 128, 129, 132, 131, 142, 131, 135, 136, 131, 146, 131, 131, 135, 131, 147, 133, 136, 127, 164, 145, 145, 150, 143, 126, 134, 144, 137, 142, 129, 140, 138, 124, 131, 130, 140, 122, 129, 133, 139, 144, 133, 154, 126, 140, 136, 142, 133, 146, 152, 139, 136, 145, 133, 139, 131, 143, 133, 141, 142, 130, 135, 143, 126, 136, 129, 130, 122, 125, 124, 129, 128, 147, 127, 154, 146, 139, 145, 143, 151, 137, 137, 147, 133, 143, 141, 124, 134, 135, 132, 116, 123, 140, 136, 132, 131, 140, 136, 125, 156, 165, 136, 138, 133, 148, 131, 139, 132, 131, 131, 141, 129, 141, 114, 138, 139, 120, 123, 128, 130, 143, 142, 141, 130, 131, 149, 151, 153, 138, 109, 131, 130, 144, 134, 148, 138, 134, 148, 146, 126, 140, 141, 129, 126, 142, 159, 151, 143, 134, 137, 143, 143, 124, 144, 130, 137, 139, 126, 140, 126, 131, 134, 132, 121, 127, 119, 134, 146, 128, 144, 138, 140, 122, 125, 127, 148, 140, 140, 137, 119, 154, 130, 133, 133, 125, 129, 136, 139, 149, 145, 134, 136, 120, 135, 137, 133, 137, 140, 144, 128, 119, 143, 142, 119, 139, 140, 144, 120, 130, 135, 157, 140, 133, 141, 137, 143, 139, 134, 137, 141, 127, 122, 152, 135, 131, 139, 135, 137, 138, 150, 126, 133, 132, 136, 143, 141, 128, 153, 140, 146, 122, 133, 135, 157, 136, 116, 139, 123, 136, 135, 132, 140, 137, 146, 154, 125, 137, 129, 128, 130, 145, 118, 126, 137, 138, 120, 128, 139, 136, 145, 149, 148, 124, 136, 136, 138, 141, 147, 131, 130, 146, 130, 127, 128, 138, 132, 139, 122, 143, 125, 129, 137, 144, 132, 140, 132, 144, 140, 157, 137, 130, 148, 137, 139, 149, 134, 133, 134, 134, 139, 136, 154, 139, 150, 134, 137, 131, 154, 139, 144, 131, 137, 149, 130, 134, 135, 142, 130, 136, 143, 140, 149, 133, 143, 134, 122, 132, 141, 124, 134, 130, 131, 132, 124, 134, 144, 136, 145, 135, 126, 129, 141, 135, 129, 128, 150, 148, 131, 148, 114, 123, 148, 142, 131, 147, 127, 123, 134, 129, 146, 134, 133, 147, 155, 136, 127, 159, 133, 134, 134, 139, 125, 126, 136, 146, 130, 137, 133, 131, 137, 155, 133, 131, 139, 148, 129, 134, 139, 119, 152, 130, 136, 140, 122, 113, 128, 137, 155, 138, 141, 135, 144, 140, 125, 127, 129, 130, 142, 138, 136, 131, 137, 135, 133, 132, 164, 139, 153, 129, 126, 134, 120, 143, 132, 147, 142, 135, 136, 139, 127, 134, 134, 132, 156, 143, 137, 127, 127, 141, 130, 137, 134, 134, 141, 128, 140, 106, 135, 139, 119, 144, 127, 143, 135, 127, 120, 132, 137, 135, 137, 131, 146, 137, 142, 142, 130, 141, 136, 146, 141, 140, 140, 149, 127, 136, 141, 146, 126, 124, 115, 133, 139, 123, 140, 131, 129, 138, 116, 134, 154, 127, 162, 138, 153, 138, 141, 131, 125, 123, 134, 138, 134, 133, 130, 126, 153, 128, 128, 140, 132, 129, 123, 135, 149, 115, 129, 134, 141, 129, 137, 136, 140, 121, 127, 130, 144, 141, 138, 140, 132, 141, 114, 128, 142, 142, 133, 131, 136, 130, 146, 136, 130, 138, 129, 124, 139, 139, 135, 123, 130, 161, 131, 129, 130, 131, 124, 119, 118, 151, 134, 158, 127, 129, 121, 125, 127, 136, 127, 125, 123, 129, 152, 139, 143, 147, 124, 132, 134, 141, 148, 140, 140, 122, 144, 155, 147, 140, 143, 105, 134, 139, 152, 137, 172, 148, 138, 144, 128, 136, 156, 134, 151, 134, 140, 136, 130, 140, 140, 127, 135, 120, 120, 132, 147, 149, 124, 123, 146, 131, 135, 143, 107, 136, 137, 148, 134, 142, 149, 141, 154, 133, 139, 118, 152, 133, 126, 138, 139, 130, 144, 120, 127, 138, 137, 143, 124, 137, 128, 146, 144, 136, 132, 134, 128, 152, 137, 148, 137, 154, 120, 136, 123, 121, 139, 135, 119, 133, 141, 130, 148, 134, 148, 142, 133, 124, 149, 132, 130, 133, 140, 121, 136, 148, 127, 123, 131, 128, 131, 126, 144, 127, 132, 133, 117, 152, 122, 144, 139, 128, 137, 132, 120, 149, 136, 122, 137, 104, 141, 124, 148, 132, 139, 138, 159, 148, 134, 132, 123, 140, 131, 138, 126, 137, 153, 146, 116, 133, 122, 136, 160, 132, 146, 143, 122, 133, 143, 127, 119, 124, 122, 144, 140, 148, 126, 130, 118, 159, 116, 127, 124, 155, 127, 153, 140, 136, 120, 134, 131, 134, 135, 157, 126, 121, 131, 133, 118, 137, 123, 133, 135, 123, 120, 137, 160, 135, 132, 173, 134, 131, 126, 144, 135, 119, 143, 146, 129, 145, 143, 116, 150, 142, 134, 133, 132, 136, 140, 150, 136, 152, 135, 137, 130, 133, 131, 128, 125, 135, 154, 138, 115, 140, 148, 135, 142, 150, 133, 126, 147, 126, 150, 112, 121, 131, 126, 128, 142, 136, 129, 140, 143, 143, 126, 123, 150, 158, 131, 132, 132, 140, 140, 110, 139, 129, 119, 139, 155, 138, 117, 126, 140, 139, 145, 137, 141, 134, 124, 140, 138, 158, 129, 146, 145, 118, 143, 125, 128, 133, 144, 112, 129, 137, 134, 143, 134, 125, 128, 148, 153, 137, 115, 131, 135, 137, 144, 124, 130, 131, 143, 142, 137, 123, 141, 132, 143, 140, 135, 130, 127, 122, 124, 159, 134, 161, 135, 144, 147, 123, 134, 134, 151, 124, 160, 130, 125, 130, 128, 138, 130, 144, 158, 140, 138, 128, 133, 131, 136, 115, 141, 153, 126, 126, 127, 140, 128, 127, 151, 142, 139, 140, 134, 131, 130, 130, 123, 139, 138, 151, 130, 140, 134, 144, 142, 140, 139, 133, 130, 146, 137, 152, 123, 134, 140, 129, 140, 134, 146, 131, 142, 145, 119, 131, 132, 138, 123, 136, 167, 161, 138, 146, 135, 137, 136, 144, 119, 129, 117, 146, 140, 123, 117, 143, 124, 133, 123, 133, 137, 130, 131, 125, 139, 136, 132, 135, 134, 141, 138, 163, 138, 151, 140, 117, 129, 127, 132, 122, 128, 127, 136, 145, 134, 154, 132, 134, 140, 116, 138, 123, 117, 140, 139, 126, 140, 152, 121, 135, 137, 145, 126, 136, 134, 140, 136, 137, 140, 148, 134, 148, 127, 137, 129, 133, 141, 133, 149, 139, 128, 137, 121, 156, 140, 138, 133, 136, 145, 127, 131, 160, 151, 136, 138, 131, 139, 139, 153, 142, 137, 128, 149, 126, 130, 128, 129, 135, 129, 131, 147, 142, 145, 132, 134, 125, 141, 142, 145, 130, 128, 138, 144, 135, 150, 149, 128, 140, 128, 148, 140, 136, 133, 134, 134, 128, 120, 136, 137, 107, 150, 124, 130, 135, 128, 136, 136, 134, 139, 138, 139, 128, 138, 134, 143, 124, 133, 138, 144, 139, 126, 133, 138, 145, 135, 135, 131, 145, 138, 140, 146, 128, 132, 122, 133, 133, 134, 136, 129, 143, 141, 133, 137, 152, 130, 133, 133, 135, 128, 140, 137, 134, 143, 122, 130, 131, 135, 138, 153, 127, 109, 108, 141, 144, 129, 138, 142, 131, 126, 135, 135, 143, 131, 131, 136, 135, 121, 145, 144, 143, 132, 137, 129, 140, 133, 138, 137, 125, 136, 135, 117, 133, 133, 136, 142, 139, 133, 127, 140, 151, 149, 132, 136, 135, 115, 122, 150, 127, 137, 128, 144, 128, 130, 141, 140, 133, 133, 126, 134, 141, 123, 139, 132, 130, 125, 137, 140, 138, 134, 129, 139, 138, 136, 143, 128, 135, 143, 131, 134, 138, 141, 136, 122, 136, 139, 138, 140, 132, 147, 128, 132, 149, 152, 129, 121, 125, 136, 134, 134, 129, 159, 137, 133, 143, 131, 139, 136, 143, 145, 145, 155, 137, 140, 123, 136, 131, 157, 139, 152, 113, 149, 126, 135, 121, 124, 136, 158, 132, 130, 125, 134, 135, 105, 128, 138, 123, 129, 135, 132, 135, 139, 143, 153, 105, 124, 139, 140, 142, 165, 144, 157, 151, 137, 149, 134, 140, 128, 129, 140, 140, 133, 144, 137, 147, 124, 143, 132, 127, 135, 126, 147, 133, 133, 133, 137, 136, 132, 139, 127, 131, 128, 132, 147, 148, 128, 159, 146, 157, 134, 150, 134, 136, 139, 123, 137, 120, 139, 127, 123, 140, 140, 133, 137, 146, 134, 136, 138, 129, 132, 144, 134, 138, 146, 120, 128, 124, 140, 125, 140, 150, 137, 135, 147, 132, 140, 140, 125, 132, 116, 141, 141, 111, 137, 134, 135, 139, 142, 145, 149, 139, 147, 118, 126, 132, 141, 151, 134, 133, 140, 137, 140, 143, 142, 139, 132, 129, 118, 136, 131, 134, 124, 133, 135, 135, 142, 140, 119, 132, 122, 136, 143, 132, 144, 140, 140, 150, 131, 130, 138, 135, 129, 131, 139, 142, 135, 135, 136, 131, 119, 130, 129, 151, 157, 137, 140, 144, 126, 116, 137, 134, 126, 128, 136, 141, 145, 138, 134, 137, 138, 129, 133, 132, 140, 143, 140, 134, 168, 141, 132, 123, 128, 141, 126, 140, 133, 124, 129, 153, 137, 130, 133, 121, 134, 140, 145, 132, 145, 134, 148, 134, 128, 147, 135, 138, 142, 151, 153, 129, 119, 143, 147, 133, 135, 132, 124, 140, 131, 136, 150, 145, 140, 139, 140, 130, 130, 133, 124, 139, 136, 138, 138, 139, 157, 131, 136, 147, 135, 132, 132, 131, 131, 143, 145, 137, 136, 145, 145, 137, 149, 132, 136, 135, 135, 131, 137, 129, 136, 139, 118, 139, 129, 128, 114, 148, 140, 124, 120, 133, 131, 136, 120, 130, 139, 133, 136, 136, 134, 137, 141, 136, 134, 124, 140, 143, 136, 143, 137, 134, 132, 126, 145, 142, 130, 137, 132, 144, 138, 157, 144, 134, 122, 125, 135, 133, 143, 140, 132, 124, 130, 115, 116, 125, 132, 132, 124, 143, 120, 134, 134, 128, 127, 141, 143, 142, 122, 140, 132, 138, 139, 136, 136, 140, 123, 132, 128, 123, 131, 137, 124, 149, 128, 135, 148, 138, 128, 132, 135, 122, 149, 126, 119, 137, 129, 135, 123, 139, 120, 132, 133, 145, 143, 142, 150, 124, 134, 132, 129, 139, 126, 124, 153, 131, 136, 127, 134, 144, 150, 125, 146, 144, 125, 143, 136, 142, 126, 137, 126, 138, 144, 132, 163, 139, 127, 142, 137, 120, 132, 123, 139, 137, 125, 143, 121, 137, 149, 152, 124, 132, 138, 132, 125, 135, 134, 116, 152, 143, 126, 124, 141, 135, 126, 124, 134, 134, 143, 132, 140, 134, 131, 120, 137, 138, 127, 129, 141, 140, 151, 137, 149, 148, 123, 133, 119, 136, 140, 133, 125, 136, 123, 132, 145, 124, 132, 130, 153, 130, 142, 138, 150, 133, 137, 153, 130, 123, 145, 142, 145, 146, 136, 131, 142, 126, 128, 155, 143, 126, 145, 137, 147, 137, 144, 141, 141, 139, 131, 132, 136, 143, 142, 144, 126, 137, 136, 147, 132, 136, 147, 141, 125, 133, 107, 126, 122, 137, 132, 133, 135, 152, 118, 128, 149, 140, 148, 130, 143, 138, 133, 117, 130, 138, 124, 123, 135, 127, 128, 154, 142, 145, 138, 133, 131, 144, 139, 151, 144, 145, 157, 136, 126, 142, 135, 143, 144, 138, 138, 138, 149, 140, 139, 139, 122, 140, 118, 141, 128, 143, 140, 136, 130, 135, 139, 146, 128, 162, 136, 137, 129, 137, 133, 136, 132, 160, 148, 124, 142, 142, 121, 131, 139, 145, 131, 158, 134, 146, 137, 153, 125, 135, 136, 171, 138, 143, 127, 130, 139, 140, 140, 139, 154, 136, 128, 130, 140, 128, 137, 128, 137, 139, 134, 127, 129, 133, 131, 134, 122, 140, 141, 140, 119, 135, 147, 148, 125, 128, 133, 157, 143, 130, 129, 136, 137, 131, 136, 125, 128, 164, 138, 136, 132, 130, 135, 139, 144, 139, 142, 133, 130, 137, 149, 128, 138, 140, 132, 126, 134, 141, 126, 136, 136, 142, 138, 130, 135, 153, 141, 137, 122, 138, 157, 151, 134, 144, 123, 144, 130, 121, 143, 143, 127, 133, 148, 136, 125, 147, 133, 143, 130, 148, 124, 134, 140, 130, 130, 141, 138, 152, 134, 129, 136, 126, 135, 124, 125, 132, 123, 141, 147, 145, 133, 137, 138, 126, 130, 136, 133, 142, 139, 141, 108, 138, 143, 146, 137, 132, 135, 137, 135, 147, 141, 131, 153, 150, 138, 148, 128, 142, 143, 130, 145, 144, 134, 122, 134, 143, 135, 131, 121, 143, 141, 132, 144, 141, 144, 135, 141, 135, 111, 141, 146, 157, 133, 136, 138, 139, 141, 136, 136, 139, 129, 134, 131, 138, 150, 141, 150, 145, 130, 143, 135, 134, 147, 138, 128, 142, 131, 142, 134, 139, 147, 167, 133, 146, 133, 128, 129, 151, 142, 142, 133, 130, 136, 141, 101, 139, 144, 137, 132, 137, 140, 136, 139, 133, 133, 136, 149, 120, 132, 134, 140, 134, 147, 135, 146, 143, 122, 128, 148, 134, 138, 132, 139, 141, 150, 130, 135, 144, 132, 150, 136, 145, 148, 130, 135, 180, 138, 131, 137, 139, 132, 126, 137, 143, 129, 140, 143, 146, 135, 130, 141, 130, 138, 136, 150, 144, 138, 134, 132, 129, 142, 134, 141, 126, 127, 143, 145, 139, 146, 138, 128, 151, 147, 145, 138, 136, 139, 132, 141, 131, 138, 142, 138, 139, 132, 142, 149, 133, 141, 136, 145, 137, 126, 139, 137, 150, 136, 142, 140, 130, 128, 134, 134, 126, 133, 124, 115, 135, 129, 126, 136, 137, 141, 139, 124, 144, 132, 141, 134, 127, 130, 139, 130, 131, 139, 146, 144, 129, 131, 133, 142, 134, 136, 138, 138, 135, 148, 156, 139, 126, 139, 138, 139, 142, 140, 137, 128, 140, 124, 135, 140, 143, 128, 126, 150, 143, 149, 132, 133, 144, 137, 142, 142, 146, 143, 133, 142, 156, 140, 136, 142, 137, 136, 152, 120, 130, 143, 131, 145, 139, 125, 134, 142, 130, 136, 139, 146, 135, 131, 145, 136, 132, 139, 153, 132, 137, 138, 138, 144, 128, 131, 122, 138, 144, 131, 142, 143, 129, 141, 142, 135, 132, 143, 132, 141, 136, 140, 134, 133, 139, 133, 145, 142, 143, 138, 142, 133, 124, 145, 141, 143, 149, 145, 140, 133, 131, 130, 133, 133, 128, 128, 128, 134, 123, 131, 140, 130, 147, 133, 132, 144, 153, 134, 132, 130, 145, 143, 147, 129, 138, 137, 133, 142, 138, 147, 132, 135, 134, 140, 138, 148, 128, 139, 148, 152, 131, 136, 146, 143, 133, 138, 131, 141, 137, 144, 132, 147, 139, 133, 134, 143, 136, 131, 132, 163, 139, 127, 142, 137, 138, 143, 144, 142, 130, 135, 149, 140, 127, 112, 136, 136, 129, 141, 140, 139, 141, 140, 158, 136, 134, 131, 131, 143, 145, 142, 128, 150, 136, 136, 148, 138, 145, 135, 126, 139, 120, 135, 126, 132, 143, 144, 131, 139, 141, 141, 143, 131, 136, 131, 134, 147, 125, 135, 134, 148, 131, 140, 148, 138, 131, 141, 147, 146, 141, 143, 146, 133, 136, 134, 147, 141, 139, 139, 134, 142, 147, 129, 148, 133, 156, 144, 144, 123, 135, 129, 133, 128, 131, 146, 142, 136, 136, 137, 137, 131, 120, 138, 139, 134, 140, 140, 143, 149, 143, 141, 128, 139, 138, 127, 141, 130, 114, 138, 145, 132, 134, 131, 132, 151, 139, 130, 126, 130, 133, 132, 125, 145, 135, 130, 145, 133, 131, 135, 135, 138, 137, 145, 139, 132, 134, 144, 122, 128, 141, 139, 140, 148, 133, 131, 129, 144, 142, 139, 137, 140, 129, 125, 147, 152, 123, 137, 124, 131, 129, 141, 145, 129, 138, 148, 136, 172, 134, 133, 139, 130, 141, 134, 148, 133, 145, 134, 139, 128, 130, 126, 132, 123, 133, 152, 121, 131, 132, 134, 138, 139, 133, 135, 141, 137, 129, 144, 131, 131, 142, 142, 135, 127, 134, 131, 133, 133, 142, 133, 135, 138, 129, 135, 140, 133, 134, 141, 126, 151, 135, 129, 148, 128, 117, 132, 134, 123, 135, 139, 132, 128, 142, 141, 135, 139, 130, 128, 140, 128, 131, 132, 138, 134, 137, 140, 137, 126, 138, 127, 137, 132, 140, 134, 132, 142, 131, 135, 134, 125, 143, 128, 149, 131, 138, 151, 140, 139, 142, 137, 135, 141, 134, 141, 161, 133, 132, 131, 134, 143, 135, 129, 125, 132, 134, 153, 142, 132, 131, 150, 134, 117, 140, 138, 123, 132, 156, 137, 131, 137, 138, 135, 131, 115, 143, 130, 140, 144, 135, 141, 147, 140, 143, 126, 138, 132, 126, 137, 141, 128, 142, 134, 137, 134, 136, 115, 136, 142, 142, 147, 139, 138, 139, 139, 122, 132, 130, 122, 135, 139, 145, 139, 139, 135, 139, 130, 137, 140, 147, 144, 138, 134, 131, 135, 134, 147, 145, 128, 134, 130, 142, 129, 135, 141, 133, 128, 139, 137, 130, 138, 132, 151, 142, 128, 133, 142, 128, 130, 149, 150, 139, 131, 134, 132, 143, 132, 147, 134, 141, 132, 136, 129, 130, 119, 131, 140, 133, 124, 141, 139, 131, 126, 151, 139, 140, 140, 142, 141, 132, 140, 138, 134, 144, 136, 141, 130, 134, 132, 137, 145, 141, 134, 145, 131, 136, 133, 134, 131, 108, 139, 131, 134, 127, 152, 133, 138, 133, 130, 141, 133, 160, 146, 149, 132, 137, 133, 127, 135, 147, 140, 134, 141, 123, 141, 146, 128, 135, 130, 130, 137, 138, 138, 146, 133, 133, 149, 127, 135, 147, 135, 111, 105, 140, 136, 133, 131, 137, 136, 160, 132, 132, 138, 128, 120, 132, 105, 145, 139, 134, 119, 125, 140, 135, 126, 134, 129, 121, 139, 161, 131, 139, 130, 139, 133, 124, 142, 140, 140, 139, 133, 137, 129, 129, 143, 142, 137, 133, 149, 145, 136, 134, 140, 131, 136, 144, 142, 141, 138, 133, 142, 146, 142, 151, 139, 135, 134, 135, 134, 145, 135, 151, 163, 147, 131, 130, 131, 140, 136, 150, 143, 130, 125, 127, 138, 135, 128, 144, 141, 139, 126, 127, 152, 128, 132, 138, 140, 124, 126, 128, 148, 131, 146, 149, 134, 135, 140, 139, 151, 136, 131, 137, 144, 150, 138, 147, 149, 144, 141, 133, 134, 130, 138, 128, 129, 131, 131, 132, 149, 135, 128, 142, 108, 133, 127, 126, 131, 131, 138, 144, 133, 131, 138, 133, 123, 132, 147, 138, 132, 136, 144, 127, 133, 132, 144, 139, 131, 141, 125, 137, 135, 143, 140, 122, 130, 125, 123, 140, 141, 137, 137, 131, 128, 133, 125, 142, 133, 135, 142, 139, 130, 136, 138, 127, 142, 137, 139, 139, 125, 142, 143, 146, 139, 119, 145, 139, 139, 141, 131, 140, 141, 129, 151, 140, 129, 129, 135, 140, 129, 145, 127, 141, 133, 143, 112, 122, 137, 149, 141, 130, 128, 123, 134, 143, 129, 123, 141, 138, 148, 140, 153, 136, 134, 135, 131, 137, 124, 149, 160, 146, 133, 166, 136, 141, 133, 125, 143, 138, 132, 145, 152, 132, 146, 147, 138, 127, 132, 125, 144, 131, 155, 137, 127, 151, 136, 134, 130, 139, 126, 129, 137, 139, 124, 138, 134, 144, 143, 139, 138, 137, 143, 136, 135, 146, 120, 136, 119, 134, 164, 133, 132, 133, 113, 134, 153, 131, 126, 140, 140, 149, 137, 129, 146, 151, 138, 126, 142, 137, 130, 146, 134, 124, 131, 130, 134, 134, 135, 160, 147, 130, 137, 138, 140, 144, 152, 132, 148, 135, 134, 130, 143, 138, 132, 149, 129, 130, 125, 134, 135, 127, 155, 138, 142, 132, 124, 125, 149, 137, 139, 145, 135, 143, 144, 148, 129, 127, 138, 130, 126, 128, 128, 142, 138, 132, 136, 129, 115, 134, 138, 135, 143, 138, 137, 142, 130, 137, 132, 147, 143, 164, 135, 126, 150, 130, 135, 120, 133, 140, 144, 132, 142, 143, 111, 138, 139, 140, 142, 135, 136, 130, 121, 140, 138, 120, 145, 131, 144, 123, 131, 121, 151, 147, 143, 130, 140, 151, 133, 137, 126, 120, 132, 129, 139, 127, 153, 140, 125, 131, 140, 155, 136, 145, 128, 124, 135, 126, 146, 125, 137, 163, 130, 150, 127, 143, 142, 150, 130, 147, 136, 127, 139, 141, 132, 133, 136, 151, 129, 143, 138, 145, 142, 148, 136, 134, 143, 135, 141, 134, 140, 140, 138, 146, 133, 119, 134, 138, 133, 137, 132, 135, 137, 137, 143, 137, 141, 143, 139, 131, 128, 120, 131, 142, 141, 136, 128, 136, 114, 153, 133, 144, 140, 128, 129, 136, 149, 138, 141, 133, 129, 136, 119, 134, 136, 144, 127, 131, 137, 141, 133, 129, 147, 143, 151, 128, 129, 131, 140, 139, 145, 146, 144, 131, 131, 132, 145, 128, 132, 146, 144, 140, 146, 131, 145, 130, 131, 141, 139, 126, 143, 155, 120, 137, 142, 138, 138, 136, 153, 126, 141, 135, 155, 132, 123, 139, 125, 129, 127, 138, 138, 149, 141, 145, 129, 119, 135, 129, 138, 135, 141, 141, 130, 152, 133, 137, 129, 132, 135, 133, 138, 120, 136, 140, 118, 132, 141, 142, 146, 128, 144, 134, 131, 126, 128, 143, 148, 132, 127, 141, 139, 131, 143, 138, 143, 140, 142, 124, 140, 127, 123, 141, 141, 136, 119, 127, 137, 135, 124, 132, 125, 141, 140, 126, 144, 142, 147, 138, 134, 138, 135, 129, 139, 134, 141, 132, 138, 138, 153, 124, 132, 132, 147, 127, 137, 147, 133, 150, 141, 131, 133, 146, 130, 135, 133, 140, 130, 133, 141, 128, 128, 135, 140, 135, 127, 116, 129, 134, 141, 131, 138, 132, 155, 145, 136, 140, 131, 140, 120, 140, 136, 146, 143, 132, 132, 132, 123, 131, 137, 141, 135, 131, 114, 148, 128, 127, 137, 130, 132, 148, 146, 139, 135, 141, 140, 122, 128, 132, 147, 125, 139, 142, 139, 123, 152, 134, 120, 140, 129, 129, 136, 151, 138, 132, 148, 121, 145, 130, 148, 139, 141, 128, 140, 129, 143, 132, 121, 136, 127, 125, 148, 146, 148, 122, 130, 131, 117, 134, 113, 128, 142, 137, 134, 144, 128, 130, 137, 131, 147, 136, 143, 132, 126, 138, 120, 151, 133, 133, 162, 148, 123, 135, 140, 131, 126, 136, 130, 130, 151, 164, 150, 137, 132, 144, 125, 151, 155, 130, 127, 150, 134, 144, 122, 125, 117, 116, 143, 127, 130, 139, 130, 117, 128, 125, 138, 148, 128, 137, 134, 142, 138, 138, 129, 134, 131, 139, 140, 139, 130, 139, 132, 127, 133, 128, 135, 141, 137, 142, 149, 152, 122, 117, 135, 139, 128, 129, 149, 142, 146, 134, 126, 119, 132, 134, 144, 126, 153, 117, 125, 126, 138, 140, 140, 127, 139, 138, 136, 122, 145, 136, 165, 143, 149, 146, 170, 138, 145, 135, 124, 131, 133, 149, 148, 150, 141, 141, 150, 131, 126, 147, 130, 148, 122, 135, 146, 139, 121, 125, 134, 138, 145, 136, 128, 126, 150, 142, 144, 145, 119, 132, 128, 134, 131, 152, 138, 130, 129, 116, 153, 143, 144, 142, 129, 135, 123, 141, 133, 114, 128, 131, 145, 122, 132, 143, 129, 131, 142, 135, 140, 123, 138, 140, 139, 154, 126, 132, 149, 144, 148, 148, 139, 124, 147, 143, 136, 138, 123, 137, 130, 134, 125, 138, 136, 147, 123, 135, 139, 137, 156, 149, 118, 141, 132, 144, 143, 136, 133, 118, 139, 127, 132, 133, 120, 125, 126, 133, 133, 113, 133, 133, 134, 125, 133, 145, 127, 145, 132, 142, 137, 128, 132, 129, 134, 133, 144, 124, 138, 133, 138, 144, 130, 125, 142, 130, 137, 127, 129, 140, 148, 117, 155, 138, 134, 106, 135, 137, 135, 138, 132, 155, 136, 137, 140, 141, 145, 124, 118, 135, 135, 131, 127, 131, 144, 141, 131, 134, 149, 128, 125, 125, 134, 134, 137, 127, 144, 127, 131, 129, 117, 137, 136, 140, 148, 140, 131, 133, 128, 135, 116, 133, 134, 129, 138, 147, 141, 143, 122, 143, 132, 147, 144, 148, 136, 124, 142, 120, 123, 134, 124, 127, 136, 137, 128, 155, 125, 147, 134, 137, 147, 138, 134, 141, 153, 145, 142, 140, 130, 121, 123, 149, 139, 137, 143, 124, 156, 148, 148, 133, 145, 144, 127, 123, 161, 160, 152, 139, 142, 149, 128, 128, 156, 122, 123, 154, 131, 145, 130, 124, 147, 141, 123, 134, 133, 127, 144, 144, 141, 126, 140, 136, 133, 130, 181, 147, 136, 117, 142, 122, 122, 157, 114, 123, 138, 131, 123, 150, 128, 138, 141, 145, 151, 143, 138, 118, 129, 113, 122, 139, 133, 147, 145, 137, 127, 132, 119, 139, 142, 144, 133, 125, 130, 130, 135, 128, 129, 134, 124, 139, 125, 137, 139, 112, 131, 121, 130, 139, 141, 137, 145, 140, 126, 136, 137, 134, 133, 131, 136, 130, 140, 137, 132, 134, 136, 133, 133, 133, 144, 134, 138, 133, 137, 139, 140, 138, 142, 138, 132, 136, 134, 136, 128, 137, 137, 142, 159, 137, 140, 133, 135, 137, 135, 139, 142, 130, 133, 136, 132, 130, 131, 146, 133, 141, 133, 134, 139, 133, 135, 137, 138, 127, 132, 140, 146, 142, 133, 146, 135, 138, 137, 139, 145, 132, 131, 134, 137, 135, 135, 136, 130, 138, 137, 130, 144, 146, 135, 135, 134, 132, 132, 136, 140, 137, 136, 134, 128, 125, 131, 139, 136, 136, 146, 135, 137, 127, 141, 140, 136, 133, 134, 139, 136, 135, 128, 132, 140, 131, 130, 139, 144, 134, 142, 133, 140, 133, 133, 133, 136, 128, 141, 135, 148, 143, 130, 131, 137, 140, 137, 134, 128, 135, 123, 139, 139, 135, 138, 142, 135, 128, 124, 125, 137, 134, 137, 142, 137, 140, 149, 135, 138, 140, 132, 129, 140, 136, 134, 140, 136, 138, 135, 140, 137, 140, 135, 139, 137, 130, 132, 138, 136, 138, 145, 132, 135, 134, 139, 132, 136, 133, 133, 135, 132, 136, 138, 139, 138, 137, 133, 131, 136, 141, 135, 138, 135, 135, 142, 133, 134, 136, 141, 135, 142, 139, 136, 140, 135, 121, 138, 136, 134, 136, 151, 129, 135, 134, 141, 149, 132, 131, 130, 140, 138, 132, 137, 141, 143, 150, 139, 129, 129, 134, 136, 134, 134, 139, 149, 137, 131, 134, 130, 136, 139, 137, 138, 142, 136, 136, 138, 119, 131, 140, 139, 139, 137, 127, 132, 133, 141, 138, 138, 137, 133, 138, 141, 132, 137, 144, 138, 142, 146, 139, 131, 138, 129, 136, 161, 136, 136, 139, 132, 144, 135, 147, 138, 135, 138, 138, 143, 144, 128, 140, 152, 134, 133, 139, 135, 141, 143, 133, 137, 136, 132, 137, 145, 146, 140, 139, 135, 136, 128, 139, 135, 136, 133, 140, 115, 137, 137, 141, 124, 135, 134, 133, 138, 160, 142, 131, 119, 136, 140, 145, 143, 140, 135, 131, 138, 135, 136, 138, 134, 142, 137, 126, 136, 124, 136, 135, 137, 138, 140, 133, 134, 140, 138, 147, 127, 129, 138, 145, 138, 133, 133, 138, 137, 130, 135, 140, 140, 140, 135, 138, 140, 135, 142, 132, 144, 135, 138, 131, 141, 136, 137, 133, 134, 136, 139, 145, 138, 132, 134, 137, 138, 136, 138, 128, 133, 132, 132, 136, 144, 136, 137, 132, 131, 130, 125, 135, 137, 127, 138, 138, 135, 136, 142, 133, 137, 136, 132, 135, 138, 132, 136, 136, 136, 139, 128, 138, 137, 134, 143, 138, 130, 136, 139, 128, 132, 137, 128, 132, 150, 137, 133, 129, 132, 139, 139, 140, 131, 135, 132, 132, 137, 134, 139, 132, 141, 139, 139, 135, 129, 134, 141, 137, 132, 148, 133, 132, 139, 132, 133, 142, 142, 138, 139, 134, 144, 129, 129, 142, 135, 134, 143, 144, 136, 135, 142, 139, 131, 130, 136, 137, 137, 133, 135, 133, 152, 138, 137, 139, 137, 135, 131, 131, 140, 151, 147, 134, 148, 130, 134, 126, 137, 132, 134, 138, 130, 146, 135, 142, 138, 131, 142, 138, 128, 139, 141, 130, 140, 145, 127, 143, 141, 131, 133, 138, 142, 129, 131, 136, 132, 129, 128, 142, 128, 136, 138, 131, 131, 136, 136, 141, 134, 129, 137, 130, 133, 144, 142, 145, 131, 145, 136, 135, 134, 130, 149, 136, 138, 139, 137, 135, 128, 128, 133, 129, 136, 134, 143, 147, 139, 129, 129, 141, 131, 135, 143, 115, 131, 129, 137, 137, 141, 143, 133, 147, 147, 134, 142, 137, 140, 129, 130, 137, 134, 137, 138, 138, 129, 139, 126, 133, 137, 130, 138, 134, 138, 134, 142, 139, 139, 137, 132, 141, 138, 134, 131, 137, 167, 136, 130, 142, 131, 135, 121, 136, 132, 134, 135, 139, 145, 124, 127, 127, 139, 137, 133, 148, 128, 139, 143, 146, 145, 132, 110, 138, 135, 135, 134, 125, 141, 131, 128, 146, 133, 131, 134, 143, 137, 132, 140, 107, 137, 141, 133, 139, 147, 127, 134, 129, 127, 127, 130, 138, 140, 133, 135, 139, 150, 138, 132, 141, 128, 132, 137, 130, 140, 129, 127, 139, 145, 136, 136, 135, 148, 136, 135, 134, 137, 134, 135, 136, 144, 135, 137, 138, 132, 135, 127, 140, 136, 137, 137, 137, 142, 142, 137, 135, 127, 141, 129, 131, 143, 141, 134, 132, 138, 142, 134, 134, 135, 136, 134, 135, 140, 134, 127, 111, 139, 132, 145, 138, 127, 140, 127, 141, 145, 143, 153, 131, 131, 138, 133, 136, 148, 131, 144, 135, 141, 141, 142, 139, 145, 133, 138, 131, 136, 136, 142, 138, 130, 131, 133, 140, 134, 139, 138, 133, 132, 137, 137, 141, 122, 141, 145, 135, 116, 132, 140, 136, 134, 142, 128, 133, 130, 143, 141, 141, 136, 129, 134, 142, 129, 145, 132, 143, 134, 146, 146, 148, 145, 139, 136, 132, 147, 126, 145, 132, 134, 139, 145, 147, 142, 150, 142, 141, 136, 130, 135, 128, 141, 147, 132, 148, 141, 143, 148, 143, 148, 139, 129, 145, 123, 141, 140, 139, 133, 137, 146, 136, 139, 132, 135, 136, 124, 153, 138, 140, 154, 136, 138, 134, 143, 137, 151, 112, 116, 133, 130, 133, 142, 137, 130, 143, 127, 127, 132, 133, 146, 142, 130, 124, 135, 146, 129, 138, 133, 130, 135, 138, 141, 137, 145, 136, 105, 138, 138, 138, 131, 141, 138, 137, 141, 143, 138, 130, 128, 142, 136, 127, 138, 132, 134, 127, 134, 151, 136, 108, 146, 136, 141, 132, 136, 125, 141, 136, 138, 140, 133, 133, 134, 135, 134, 137, 121, 126, 125, 144, 146, 142, 110, 140, 141, 138, 142, 135, 139, 138, 141, 135, 146, 147, 137, 138, 147, 127, 138, 111, 130, 141, 142, 139, 142, 131, 129, 155, 135, 138, 143, 131, 141, 142, 145, 134, 142, 141, 142, 126, 137, 135, 139, 141, 140, 137, 140, 134, 134, 139, 148, 140, 134, 135, 145, 131, 139, 127, 132, 137, 131, 129, 132, 142, 134, 137, 141, 126, 137, 134, 131, 135, 147, 136, 143, 147, 142, 131, 125, 134, 128, 136, 145, 146, 142, 126, 139, 129, 136, 152, 130, 139, 147, 142, 136, 148, 131, 145, 131, 126, 139, 125, 145, 145, 128, 125, 135, 130, 142, 139, 125, 138, 136, 137, 133, 151, 128, 141, 138, 134, 126, 125, 129, 116, 144, 128, 145, 127, 128, 132, 141, 134, 123, 150, 137, 130, 140, 133, 136, 154, 144, 141, 130, 133, 137, 139, 139, 129, 129, 139, 117, 135, 132, 142, 143, 135, 144, 137, 125, 136, 134, 143, 127, 124, 130, 138, 141, 131, 137, 144, 141, 134, 134, 118, 132, 135, 132, 132, 144, 119, 126, 134, 153, 138, 121, 137, 142, 135, 130, 134, 136, 142, 125, 128, 135, 140, 131, 132, 150, 141, 136, 133, 137, 139, 140, 128, 135, 139, 130, 130, 147, 148, 126, 144, 135, 106, 140, 117, 135, 131, 132, 141, 132, 125, 144, 133, 133, 133, 133, 134, 143, 150, 132, 149, 139, 132, 146, 126, 124, 138, 128, 138, 136, 139, 135, 133, 128, 132, 136, 128, 130, 141, 147, 137, 132, 147, 136, 130, 135, 137, 132, 137, 136, 120, 136, 121, 138, 136, 134, 141, 146, 139, 138, 135, 132, 149, 140, 129, 131, 127, 123, 139, 126, 116, 128, 128, 137, 124, 169, 131, 140, 145, 138, 126, 128, 122, 124, 118, 157, 136, 141, 122, 122, 134, 128, 126, 136, 144, 147, 126, 148, 137, 173, 131, 138, 129, 148, 125, 126, 146, 143, 135, 153, 135, 135, 135, 128, 136, 137, 132, 128, 126, 131, 142, 131, 128, 133, 132, 141, 123, 137, 136, 133, 130, 136, 140, 127, 127, 123, 133, 128, 128, 148, 128, 136, 129, 138, 139, 132, 137, 145, 119, 141, 135, 159, 141, 127, 135, 215, 140, 129, 126, 140, 146, 146, 116, 144, 142, 118, 133, 143, 120, 120, 149, 134, 141, 113, 134, 133, 149, 170, 134, 128, 127, 134, 141, 127, 142, 127, 135, 141, 150, 147, 130, 134, 143, 134, 147, 131, 132, 140, 126, 136, 144, 142, 135, 134, 133, 143, 131, 131, 104, 125, 145, 137, 133, 134, 132, 127, 129, 134, 143, 115, 136, 136, 150, 138, 140, 125, 139, 139, 125, 151, 138, 139, 131, 133, 137, 133, 125, 130, 145, 147, 135, 139, 132, 127, 128, 140, 138, 123, 132, 134, 154, 131, 127, 141, 133, 146, 138, 129, 145, 132, 143, 134, 134, 144, 132, 135, 131, 124, 139, 138, 133, 127, 119, 146, 142, 130, 116, 140, 133, 136, 139, 118, 141, 142, 132, 146, 121, 130, 132, 128, 145, 124, 137, 120, 132, 124, 142, 150, 125, 147, 129, 135, 131, 128, 141, 125, 151, 147, 140, 141, 132, 129, 152, 137, 136, 128, 139, 128, 133, 143, 136, 129, 154, 141, 140, 152, 129, 144, 140, 137, 125, 149, 134, 123, 136, 162, 130, 148, 143, 131, 137, 125, 135, 147, 141, 144, 130, 132, 144, 132, 143, 136, 126, 146, 126, 123, 131, 123, 113, 174, 141, 131, 126, 131, 132, 135, 124, 139, 133, 134, 136, 134, 128, 145, 133, 132, 138, 138, 133, 130, 137, 137, 136, 127, 137, 133, 137, 152, 137, 136, 136, 138, 134, 142, 141, 139, 136, 133, 133, 134, 133, 131, 139, 128, 139, 147, 141, 136, 146, 145, 134, 147, 139, 141, 143, 130, 135, 143, 134, 132, 134, 137, 147, 148, 141, 126, 136, 135, 136, 139, 131, 136, 135, 135, 136, 135, 129, 135, 130, 121, 137, 146, 132, 147, 133, 135, 138, 124, 126, 131, 139, 139, 141, 142, 136, 132, 140, 129, 130, 138, 136, 141, 134, 134, 136, 136, 139, 135, 139, 133, 137, 131, 133, 122, 135, 137, 140, 133, 137, 139, 131, 136, 138, 131, 133, 132, 132, 131, 140, 140, 141, 133, 137, 150, 133, 133, 133, 134, 126, 137, 141, 135, 138, 142, 136, 138, 144, 140, 134, 131, 146, 142, 132, 133, 125, 138, 128, 131, 130, 139, 133, 144, 139, 141, 130, 133, 133, 141, 131, 128, 132, 131, 136, 142, 143, 133, 139, 143, 136, 134, 142, 133, 134, 128, 138, 127, 133, 141, 128, 129, 139, 143, 132, 143, 145, 135, 138, 132, 140, 135, 129, 140, 129, 134, 130, 134, 138, 136, 138, 125, 140, 131, 136, 145, 147, 139, 137, 134, 140, 139, 147, 127, 132, 132, 133, 130, 131, 140, 141, 139, 127, 125, 141, 131, 130, 140, 144, 135, 138, 129, 139, 142, 140, 138, 126, 139, 129, 140, 127, 137, 138, 154, 142, 133, 136, 142, 129, 147, 138, 142, 138, 143, 134, 129, 138, 135, 135, 133, 140, 131, 131, 131, 132, 137, 141, 135, 134, 142, 140, 137, 131, 141, 136, 137, 137, 136, 143, 131, 138, 137, 134, 141, 132, 142, 136, 135, 125, 135, 132, 135, 141, 136, 140, 148, 131, 136, 136, 142, 142, 147, 141, 130, 131, 138, 143, 132, 141, 136, 141, 142, 140, 129, 141, 137, 131, 130, 138, 138, 137, 135, 137, 147, 136, 124, 132, 138, 136, 132, 124, 145, 138, 144, 139, 139, 142, 140, 137, 139, 142, 135, 137, 133, 144, 127, 136, 137, 127, 134, 132, 141, 135, 136, 136, 146, 141, 128, 138, 139, 142, 133, 137, 143, 132, 138, 130, 138, 137, 134, 137, 141, 137, 134, 135, 149, 133, 141, 145, 134, 135, 131, 132, 134, 137, 144, 145, 133, 145, 129, 137, 129, 142, 137, 145, 140, 140, 140, 138, 139, 140, 134, 130, 135, 143, 136, 144, 141, 140, 134, 136, 143, 136, 138, 133, 139, 141, 135, 136, 149, 134, 132, 136, 135, 127, 126, 138, 131, 125, 140, 134, 138, 134, 134, 144, 137, 137, 130, 131, 138, 143, 135, 139, 135, 139, 142, 129, 138, 123, 129, 144, 141, 136, 127, 139, 136, 132, 132, 145, 132, 128, 132, 130, 134, 132, 139, 131, 140, 135, 139, 135, 131, 137, 133, 138, 129, 140, 139, 136, 133, 135, 127, 137, 137, 138, 137, 137, 133, 129, 124, 133, 129, 140, 143, 140, 144, 136, 125, 133, 131, 147, 136, 132, 139, 142, 138, 141, 136, 150, 135, 139, 126, 144, 130, 144, 139, 125, 129, 126, 120, 143, 144, 145, 139, 139, 133, 136, 127, 124, 140, 118, 140, 136, 145, 135, 146, 144, 133, 121, 118, 126, 141, 134, 133, 142, 148, 117, 121, 131, 128, 135, 131, 127, 128, 132, 147, 140, 127, 139, 138, 130, 135, 144, 130, 122, 139, 153, 133, 129, 133, 148, 132, 139, 133, 151, 131, 141, 127, 154, 146, 139, 125, 137, 129, 146, 126, 141, 144, 143, 140, 131, 142, 138, 128, 131, 138, 137, 127, 128, 141, 137, 151, 121, 138, 138, 140, 132, 138, 137, 141, 131, 130, 142, 143, 145, 142, 135, 143, 128, 137, 129, 139, 141, 130, 135, 138, 131, 160, 142, 145, 138, 127, 133, 143, 120, 133, 131, 134, 141, 139, 116, 125, 140, 140, 131, 128, 132, 126, 137, 145, 133, 120, 130, 145, 136, 133, 138, 134, 140, 112, 140, 136, 135, 135, 134, 137, 126, 133, 137, 151, 146, 148, 119, 132, 132, 157, 145, 151, 141, 125, 138, 137, 142, 133, 147, 136, 145, 150, 121, 140, 135, 146, 115, 126, 134, 139, 134, 131, 128, 126, 136, 159, 142, 127, 117, 139, 148, 146, 140, 128, 135, 136, 139, 126, 144, 118, 106, 138, 127, 149, 139, 135, 135, 134, 138, 132, 145, 137, 119, 148, 134, 139, 131, 140, 132, 122, 144, 130, 145, 131, 141, 131, 128, 144, 138, 136, 114, 137, 129, 153, 134, 129, 137, 129, 133, 139, 145, 134, 129, 133, 156, 138, 139, 134, 141, 133, 129, 130, 134, 136, 131, 142, 130, 128, 146, 134, 127, 141, 125, 144, 151, 136, 136, 136, 150, 131, 143, 147, 129, 133, 137, 134, 135, 154, 148, 125, 133, 137, 142, 141, 135, 132, 143, 131, 143, 137, 141, 145, 146, 130, 136, 140, 133, 136, 139, 132, 128, 141, 134, 142, 123, 136, 134, 130, 136, 125, 134, 136, 129, 138, 118, 132, 145, 124, 142, 137, 141, 145, 132, 140, 136, 127, 127, 146, 143, 132, 137, 108, 140, 138, 138, 148, 141, 138, 127, 139, 123, 138, 134, 131, 126, 145, 140, 135, 137, 118, 129, 132, 143, 123, 130, 138, 146, 134, 142, 130, 132, 138, 130, 127, 129, 133, 139, 152, 118, 132, 131, 136, 146, 135, 142, 139, 141, 136, 127, 129, 138, 127, 145, 137, 139, 144, 139, 132, 141, 148, 136, 132, 137, 128, 127, 136, 147, 137, 120, 124, 141, 142, 133, 123, 119, 135, 136, 155, 136, 146, 150, 138, 126, 135, 149, 149, 130, 128, 142, 141, 136, 132, 138, 136, 137, 129, 123, 132, 137, 139, 125, 144, 116, 140, 143, 133, 139, 133, 128, 127, 133, 135, 145, 138, 137, 148, 138, 136, 142, 141, 131, 122, 136, 119, 136, 140, 133, 138, 133, 150, 130, 141, 139, 142, 138, 134, 133, 122, 123, 135, 139, 135, 131, 139, 136, 135, 116, 136, 138, 133, 114, 152, 135, 135, 142, 129, 177, 149, 159, 130, 136, 141, 119, 128, 132, 149, 127, 144, 131, 120, 132, 144, 132, 136, 133, 137, 129, 135, 142, 119, 152, 149, 123, 141, 126, 137, 148, 135, 121, 137, 152, 133, 130, 135, 127, 124, 152, 156, 153, 126, 127, 133, 122, 138, 141, 130, 132, 100, 153, 144, 123, 131, 166, 140, 141, 138, 133, 124, 126, 142, 143, 141, 154, 143, 135, 137, 136, 138, 150, 127, 112, 140, 129, 146, 146, 143, 126, 142, 144, 151, 138, 123, 133, 150, 125, 139, 143, 138, 154, 127, 136, 151, 126, 131, 133, 145, 126, 122, 150, 138, 127, 144, 134, 134, 125, 119, 132, 127, 136, 150, 131, 134, 127, 143, 145, 153, 132, 148, 145, 142, 134, 134, 127, 142, 132, 125, 136, 119, 119, 139, 133, 134, 137, 113, 137, 125, 143, 112, 144, 135, 141, 138, 133, 147, 133, 153, 147, 114, 135, 135, 138, 149, 130, 147, 127, 137, 120, 159, 126, 142, 132, 135, 131, 113, 130, 135, 139, 125, 124, 125, 148, 142, 136, 150, 132, 140, 129, 156, 126, 147, 136, 123, 132, 130, 132, 118, 131, 144, 130, 122, 139, 134, 146, 114, 124, 141, 136, 136, 135, 139, 141, 133, 123, 141, 133, 143, 134, 122, 131, 119, 131, 122, 121, 124, 135, 138, 140, 139, 134, 123, 128, 129, 122, 143, 139, 130, 119, 127, 144, 127, 132, 133, 144, 132, 154, 130, 133, 142, 127, 140, 136, 125, 153, 124, 136, 154, 132, 157, 134, 121, 132, 134, 136, 147, 123, 116, 129, 137, 134, 130, 147, 156, 153, 129, 143, 131, 115, 142, 134, 157, 125, 143, 138, 128, 148, 136, 152, 141, 98, 121, 148, 138, 137, 145, 141, 137, 120, 157, 139, 132, 143, 116, 125, 139, 125, 131, 132, 127, 138, 129, 129, 126, 133, 130, 128, 131, 121, 134, 128, 117, 139, 150, 154, 134, 144, 133, 149, 145, 133, 138, 136, 147, 146, 131, 132, 140, 143, 145, 143, 144, 132, 129, 135, 117, 129, 131, 133, 123, 129, 137, 155, 146, 138, 130, 137, 130, 134, 129, 143, 125, 144, 144, 122, 135, 139, 126, 141, 158, 139, 127, 133, 136, 119, 130, 147, 136, 100, 135, 135, 129, 147, 138, 121, 138, 126, 125, 136, 139, 130, 134, 154, 127, 134, 150, 130, 131, 155, 135, 131, 130, 130, 140, 136, 123, 136, 144, 145, 141, 137, 149, 116, 135, 128, 141, 148, 135, 142, 123, 136, 140, 136, 132, 133, 125, 128, 132, 133, 138, 133, 125, 178, 116, 127, 116, 146, 125, 147, 130, 130, 147, 130, 155, 139, 138, 132, 131, 143, 144, 142, 146, 153, 123, 143, 125, 140, 135, 143, 143, 109, 124, 134, 119, 131, 137, 130, 115, 127, 131, 156, 131, 105, 149, 152, 134, 126, 138, 138, 138, 147, 126, 138, 119, 139, 136, 131, 149, 129, 138, 136, 138, 118, 130, 151, 134, 150, 140, 133, 124, 133, 137, 139, 162, 118, 114, 132, 130, 138, 144, 134, 133, 157, 135, 162, 148, 149, 132, 126, 147, 153, 126, 138, 122, 145, 128, 146, 125, 131, 137, 125, 137, 144, 142, 136, 131, 112, 127, 128, 147, 114, 158, 135, 134, 141, 134, 130, 134, 147, 136, 126, 128, 141, 129, 144, 139, 136, 137, 138, 118, 116, 139, 165, 130, 147, 107, 132, 130, 124, 128, 130, 154, 136, 107, 134, 141, 109, 133, 125, 137, 132, 127, 142, 151, 133, 151, 140, 141, 133, 122, 139, 143, 140, 138, 124, 128, 141, 125, 122, 140, 122, 140, 119, 155, 121, 129, 149, 129, 126, 141, 132, 131, 170, 141, 142, 140, 138, 134, 125, 132, 140, 131, 130, 136, 133, 143, 162, 139, 140, 134, 141, 134, 126, 138, 136, 142, 125, 136, 124, 155, 137, 140, 142, 131, 126, 128, 118, 126, 140, 129, 143, 139, 123, 141, 135, 132, 137, 118, 136, 127, 133, 120, 128, 129, 121, 138, 142, 134, 146, 141, 133, 143, 141, 134, 150, 126, 144, 121, 136, 146, 144, 127, 144, 144, 140, 133, 131, 115, 139, 154, 142, 136, 133, 129, 131, 138, 128, 158, 139, 127, 132, 129, 121, 124, 134, 114, 142, 111, 139, 148, 145, 124, 153, 137, 123, 139, 139, 131, 129, 139, 124, 144, 125, 153, 136, 140, 134, 127, 131, 119, 133, 133, 133, 122, 140, 130, 149, 125, 136, 134, 152, 132, 131, 134, 154, 149, 126, 137, 142, 145, 142, 140, 126, 145, 162, 133, 130, 140, 137, 131, 124, 129, 136, 129, 131, 123, 123, 124, 144, 140, 125, 139, 138, 135, 157, 148, 140, 141, 126, 135, 137, 140, 140, 133, 141, 146, 142, 122, 146, 137, 137, 140, 127, 135, 127, 143, 131, 139, 111, 121, 129, 134, 144, 129, 128, 138, 133, 139, 135, 126, 124, 135, 143, 136, 135, 147, 151, 126, 132, 147, 146, 129, 143, 135, 126, 160, 150, 137, 131, 137, 130, 132, 130, 139, 149, 128, 141, 142, 135, 129, 136, 148, 144, 133, 138, 135, 122, 132, 133, 132, 152, 141, 112, 146, 144, 122, 124, 140, 129, 135, 164, 130, 140, 129, 128, 126, 143, 141, 133, 128, 136, 132, 141, 155, 132, 132, 139, 139, 146, 154, 137, 132, 147, 135, 142, 138, 137, 151, 138, 132, 110, 129, 142, 117, 134, 131, 139, 125, 137, 156, 127, 126, 136, 148, 158, 143, 126, 127, 137, 138, 157, 143, 147, 134, 117, 134, 140, 140, 120, 131, 139, 145, 139, 141, 142, 126, 129, 144, 127, 119, 139, 129, 116, 132, 135, 132, 152, 131, 130, 138, 133, 146, 138, 132, 120, 144, 118, 126, 149, 139, 139, 128, 131, 135, 134, 144, 137, 133, 137, 136, 136, 159, 138, 144, 139, 138, 132, 133, 139, 142, 127, 128, 121, 133, 138, 119, 115, 142, 169, 145, 129, 144, 141, 135, 126, 133, 139, 137, 146, 137, 129, 133, 147, 154, 132, 130, 128, 134, 126, 141, 132, 135, 139, 141, 142, 151, 121, 127, 133, 137, 143, 128, 125, 122, 146, 113, 123, 137, 120, 130, 152, 126, 138, 129, 140, 132, 135, 137, 149, 135, 135, 132, 121, 123, 149, 140, 120, 141, 113, 142, 167, 152, 140, 128, 135, 139, 133, 151, 126, 125, 134, 127, 135, 133, 152, 138, 136, 124, 140, 141, 139, 129, 136, 142, 137, 152, 122, 129, 134, 137, 131, 138, 128, 157, 156, 134, 129, 156, 127, 131, 144, 132, 137, 143, 171, 127, 140, 142, 121, 126, 137, 131, 137, 137, 138, 148, 144, 135, 134, 137, 132, 160, 135, 122, 129, 147, 132, 136, 129, 142, 130, 129, 138, 128, 128, 147, 134, 132, 123, 131, 132, 134, 129, 144, 129, 162, 153, 129, 150, 135, 142, 129, 137, 134, 147, 125, 119, 144, 129, 125, 122, 133, 139, 135, 120, 141, 132, 130, 141, 134, 127, 123, 137, 132, 123, 124, 133, 127, 133, 120, 133, 140, 149, 136, 139, 146, 136, 128, 133, 134, 138, 152, 131, 130, 131, 121, 124, 135, 131, 140, 142, 138, 137, 135, 118, 139, 130, 135, 139, 141, 137, 138, 137, 141, 143, 133, 128, 141, 125, 131, 149, 152, 128, 144, 128, 128, 126, 146, 127, 107, 120, 116, 152, 147, 122, 136, 152, 136, 118, 154, 143, 135, 124, 130, 142, 133, 138, 145, 129, 133, 136, 140, 127, 138, 128, 134, 132, 144, 125, 140, 136, 128, 139, 142, 137, 133, 135, 133, 144, 131, 111, 145, 127, 148, 147, 121, 122, 126, 136, 131, 146, 140, 131, 136, 127, 118, 132, 125, 142, 120, 125, 146, 135, 130, 117, 122, 144, 137, 136, 159, 132, 150, 136, 134, 127, 161, 113, 118, 142, 134, 129, 137, 144, 130, 133, 137, 150, 137, 146, 121, 140, 144, 130, 130, 129, 130, 137, 137, 141, 128, 134, 133, 130, 117, 129, 130, 122, 142, 129, 141, 132, 141, 132, 121, 140, 135, 134, 143, 134, 105, 132, 132, 142, 124, 139, 132, 122, 129, 113, 142, 131, 135, 136, 129, 143, 137, 118, 134, 140, 138, 141, 120, 148, 134, 133, 151, 110, 143, 127, 131, 137, 117, 123, 140, 129, 126, 129, 133, 134, 134, 138, 141, 127, 132, 137, 126, 142, 136, 136, 154, 137, 140, 136, 145, 136, 132, 143, 127, 121, 139, 134, 132, 142, 141, 139, 142, 123, 135, 131, 118, 142, 135, 125, 129, 134, 143, 132, 123, 152, 125, 134, 128, 143, 129, 135, 130, 145, 139, 134, 145, 140, 133, 133, 131, 131, 139, 148, 141, 127, 125, 135, 177, 140, 143, 131, 133, 131, 144, 138, 130, 140, 131, 140, 134, 142, 125, 143, 125, 125, 132, 134, 147, 136, 125, 146, 137, 146, 124, 139, 131, 123, 133, 124, 133, 143, 144, 147, 130, 121, 129, 140, 144, 132, 111, 138, 144, 124, 129, 148, 155, 146, 138, 136, 141, 128, 138, 149, 121, 128, 127, 127, 130, 146, 129, 148, 127, 126, 141, 131, 138, 133, 133, 126, 172, 125, 136, 139, 134, 132, 139, 145, 134, 130, 138, 129, 148, 137, 136, 130, 143, 123, 146, 131, 119, 131, 152, 146, 129, 143, 151, 137, 115, 138, 132, 147, 119, 108, 148, 127, 123, 129, 146, 151, 135, 137, 127, 147, 146, 139, 130, 128, 127, 129, 146, 128, 136, 126, 130, 134, 147, 135, 140, 140, 141, 146, 140, 131, 125, 125, 141, 142, 141, 121, 127, 129, 141, 138, 126, 139, 145, 114, 139, 130, 121, 121, 134, 140, 133, 149, 122, 145, 126, 151, 149, 136, 136, 134, 134, 137, 136, 135, 131, 130, 138, 128, 139, 129, 122, 121, 124, 157, 130, 119, 130, 129, 126, 125, 156, 135, 120, 147, 134, 145, 150, 112, 130, 132, 149, 121, 135, 126, 124, 126, 128, 140, 136, 146, 167, 141, 123, 123, 153, 149, 127, 132, 122, 135, 152, 140, 134, 144, 131, 139, 148, 137, 127, 134, 131, 130, 124, 131, 151, 132, 144, 127, 137, 131, 126, 135, 136, 132, 132, 133, 131, 135, 128, 139, 140, 124, 130, 129, 132, 121, 127, 132, 117, 131, 149, 128, 131, 131, 152, 137, 134, 122, 147, 113, 141, 116, 123, 122, 140, 124, 152, 129, 137, 125, 125, 105, 141, 135, 127, 147, 153, 139, 148, 133, 125, 130, 127, 139, 139, 152, 157, 140, 139, 135, 127, 137, 126, 138, 127, 154, 140, 120, 138, 157, 121, 147, 155, 151, 129, 135, 145, 143, 125, 122, 143, 140, 145, 140, 145, 139, 127, 126, 131, 147, 139, 146, 139, 131, 123, 134, 153, 147, 142, 156, 137, 141, 135, 147, 141, 128, 134, 134, 140, 136, 140, 132, 126, 129, 124, 134, 133, 122, 143, 138, 157, 141, 118, 137, 149, 135, 141, 142, 140, 154, 138, 140, 144, 144, 149, 138, 121, 144, 145, 129, 133, 147, 163, 137, 138, 124, 136, 139, 135, 162, 147, 134, 136, 143, 152, 125, 117, 121, 129, 113, 128, 126, 126, 138, 137, 119, 145, 136, 127, 116, 151, 133, 137, 135, 123, 151, 146, 135, 125, 157, 130, 121, 135, 146, 134, 136, 139, 122, 131, 123, 119, 133, 123, 145, 137, 129, 124, 149, 145, 121, 143, 129, 143, 137, 143, 145, 138, 136, 141, 133, 151, 116, 173, 136, 132, 138, 120, 133, 133, 129, 122, 150, 138, 138, 133, 142, 146, 129, 152, 133, 126, 144, 120, 130, 140, 130, 147, 143, 134, 121, 127, 130, 147, 130, 142, 141, 128, 121, 142, 150, 126, 141, 146, 135, 135, 129, 139, 145, 129, 128, 134, 148, 125, 134, 145, 131, 135, 140, 132, 136, 131, 142, 136, 129, 150, 127, 132, 145, 132, 162, 133, 145, 146, 147, 142, 136, 129, 145, 121, 137, 138, 135, 133, 155, 141, 108, 138, 141, 135, 132, 138, 158, 128, 111, 133, 108, 127, 145, 118, 140, 124, 119, 122, 124, 136, 135, 138, 165, 138, 116, 131, 152, 126, 116, 137, 147, 140, 137, 130, 122, 155, 115, 123, 139, 157, 135, 157, 147, 130, 140, 141, 130, 119, 117, 130, 125, 129, 143, 127, 133, 140, 141, 133, 129, 131, 140, 139, 147, 131, 129, 128, 124, 134, 127, 145, 142, 136, 147, 142, 131, 137, 149, 130, 124, 128, 129, 126, 140, 140, 130, 146, 150, 138, 132, 150, 133, 161, 128, 140, 125, 119, 144, 126, 141, 135, 124, 138, 133, 146, 157, 110, 132, 113, 124, 146, 134, 134, 140, 142, 122, 148, 147, 129, 137, 136, 120, 143, 139, 141, 132, 142, 137, 139, 134, 143, 143, 139, 133, 128, 137, 126, 123, 142, 152, 122, 137, 131, 144, 122, 128, 141, 146, 138, 133, 148, 147, 134, 131, 148, 154, 130, 145, 144, 141, 136, 148, 136, 130, 133, 114, 147, 137, 146, 142, 127, 142, 131, 151, 139, 132, 126, 115, 131, 140, 136, 134, 126, 133, 155, 135, 137, 142, 126, 136, 129, 136, 128, 134, 126, 132, 144, 139, 152, 130, 148, 141, 122, 143, 138, 129, 163, 138, 126, 131, 122, 132, 139, 150, 141, 132, 139, 135, 135, 133, 161, 141, 130, 140, 151, 150, 127, 146, 133, 142, 131, 128, 140, 122, 135, 135, 125, 139, 142, 150, 142, 145, 131, 133, 120, 134, 131, 127, 135, 155, 131, 118, 143, 138, 117, 150, 150, 131, 148, 129, 145, 142, 131, 133, 151, 141, 135, 151, 145, 149, 141, 135, 147, 144, 144, 125, 132, 136, 132, 139, 152, 139, 124, 128, 131, 136, 134, 133, 144, 130, 138, 137, 141, 125, 133, 133, 123, 130, 145, 135, 127, 137, 137, 125, 128, 132, 131, 127, 135, 140, 136, 134, 138, 131, 146, 129, 124, 124, 143, 128, 129, 141, 130, 123, 145, 132, 137, 128, 131, 132, 123, 132, 140, 140, 119, 137, 127, 141, 139, 134, 142, 125, 134, 138, 128, 152, 132, 151, 129, 126, 146, 124, 155, 130, 141, 128, 128, 124, 134, 136, 126, 124, 131, 139, 124, 143, 150, 135, 133, 132, 139, 126, 139, 140, 124, 138, 132, 139, 139, 129, 153, 133, 129, 135, 141, 141, 155, 127, 142, 123, 147, 129, 148, 149, 127, 149, 129, 148, 140, 137, 134, 138, 123, 142, 137, 141, 134, 161, 132, 141, 136, 143, 133, 129, 147, 136, 125, 141, 142, 136, 121, 129, 133, 128, 150, 144, 130, 133, 141, 146, 149, 125, 124, 147, 158, 145, 134, 146, 129, 131, 135, 131, 124, 134, 143, 134, 136, 146, 139, 132, 126, 135, 140, 141, 137, 126, 130, 140, 139, 118, 143, 134, 129, 127, 130, 136, 135, 135, 134, 140, 138, 160, 130, 130, 128, 128, 148, 138, 135, 134, 150, 157, 138, 151, 134, 134, 128, 139, 142, 136, 135, 127, 136, 130, 145, 127, 140, 147, 146, 139, 139, 127, 120, 129, 125, 128, 115, 122, 145, 134, 136, 134, 131, 126, 138, 134, 136, 127, 137, 151, 124, 123, 145, 132, 160, 129, 131, 147, 121, 109, 128, 140, 129, 144, 131, 131, 138, 123, 144, 132, 129, 129, 139, 131, 131, 120, 129, 132, 131, 130, 132, 144, 141, 149, 146, 133, 143, 137, 134, 134, 149, 151, 127, 140, 142, 147, 123, 134, 140, 144, 136, 129, 166, 136, 129, 141, 133, 137, 129, 146, 149, 137, 132, 137, 145, 134, 156, 130, 157, 120, 127, 138, 134, 130, 143, 161, 137, 123, 144, 133, 126, 139, 127, 138, 168, 151, 128, 130, 132, 134, 145, 166, 139, 147, 127, 150, 142, 161, 143, 136, 120, 134, 150, 126, 146, 147, 133, 131, 139, 132, 140, 127, 141, 142, 141, 132, 134, 137, 143, 138, 152, 132, 140, 105, 133, 123, 138, 126, 155, 127, 117, 143, 136, 126, 134, 140, 136, 127, 137, 148, 140, 127, 139, 153, 148, 145, 123, 108, 129, 137, 117, 142, 118, 135, 136, 128, 140, 145, 135, 133, 139, 143, 126, 119, 151, 132, 139, 156, 125, 136, 165, 141, 133, 125, 131, 138, 128, 136, 142, 137, 137, 141, 124, 130, 139, 138, 142, 135, 141, 147, 129, 134, 135, 144, 140, 138, 120, 132, 165, 124, 132, 134, 136, 150, 134, 140, 137, 132, 128, 146, 114, 136, 157, 131, 132, 135, 154, 133, 118, 137, 149, 132, 113, 138, 139, 140, 135, 134, 125, 132, 135, 142, 142, 135, 137, 150, 132, 128, 128, 125, 131, 134, 138, 123, 140, 135, 149, 148, 136, 138, 153, 115, 126, 140, 135, 130, 136, 148, 139, 125, 146, 135, 137, 134, 139, 135, 134, 127, 144, 126, 144, 139, 143, 142, 134, 136, 128, 131, 145, 155, 149, 123, 127, 143, 147, 142, 149, 135, 137, 123, 135, 135, 140, 139, 124, 128, 130, 146, 121, 136, 136, 131, 137, 127, 139, 141, 141, 153, 132, 139, 145, 143, 134, 126, 129, 143, 146, 143, 134, 140, 138, 147, 121, 122, 134, 139, 132, 142, 122, 126, 142, 157, 149, 132, 143, 138, 139, 137, 143, 131, 150, 115, 150, 129, 131, 141, 147, 129, 135, 120, 143, 144, 142, 139, 136, 128, 128, 146, 140, 141, 140, 115, 126, 131, 133, 127, 116, 132, 140, 123, 140, 146, 131, 155, 137, 147, 137, 141, 130, 150, 132, 149, 132, 140, 126, 135, 134, 125, 136, 148, 136, 138, 122, 139, 126, 121, 142, 131, 128, 146, 142, 134, 137, 101, 141, 137, 142, 129, 132, 119, 129, 141, 127, 132, 130, 133, 149, 147, 138, 143, 134, 118, 134, 146, 145, 139, 113, 131, 136, 136, 130, 122, 147, 134, 139, 155, 136, 154, 117, 96, 147, 134, 124, 134, 137, 144, 137, 139, 138, 138, 140, 130, 137, 128, 142, 134, 130, 130, 121, 130, 149, 140, 127, 136, 129, 137, 136, 129, 141, 150, 138, 144, 152, 143, 120, 132, 129, 132, 129, 142, 152, 119, 135, 130, 136, 130, 129, 131, 139, 161, 135, 133, 132, 115, 135, 135, 137, 119, 118, 142, 124, 127, 136, 132, 136, 139, 132, 151, 142, 131, 135, 130, 117, 103, 129, 136, 165, 136, 124, 121, 118, 132, 132, 144, 120, 145, 136, 137, 126, 132, 129, 145, 128, 123, 114, 126, 138, 134, 152, 125, 152, 148, 133, 141, 143, 130, 146, 146, 136, 133, 150, 137, 152, 144, 127, 126, 143, 139, 130, 127, 119, 150, 147, 120, 145, 130, 146, 140, 137, 144, 140, 151, 140, 134, 132, 118, 145, 153, 152, 121, 132, 98, 132, 124, 114, 140, 140, 136, 128, 135, 141, 138, 130, 134, 132, 132, 160, 150, 138, 140, 131, 115, 135, 146, 138, 141, 133, 134, 129, 151, 133, 130, 149, 137, 139, 140, 139, 124, 127, 135, 142, 136, 162, 135, 128, 145, 136, 144, 141, 149, 138, 125, 126, 135, 128, 128, 115, 135, 143, 132, 117, 138, 145, 144, 140, 138, 111, 137, 141, 141, 127, 156, 140, 155, 134, 123, 142, 144, 121, 123, 131, 117, 141, 135, 141, 128, 148, 142, 139, 146, 152, 147, 136, 134, 143, 135, 140, 143, 119, 131, 139, 130, 157, 141, 129, 151, 146, 142, 128, 143, 125, 142, 138, 136, 124, 129, 127, 131, 135, 156, 128, 146, 139, 163, 138, 124, 135, 137, 132, 130, 159, 148, 142, 130, 125, 122, 124, 140, 134, 131, 137, 140, 136, 140, 146, 118, 132, 137, 139, 130, 129, 138, 134, 130, 132, 146, 130, 153, 143, 137, 121, 144, 131, 125, 136, 136, 140, 161, 147, 144, 133, 146, 138, 127, 147, 123, 135, 134, 156, 129, 147, 136, 140, 154, 88, 129, 128, 139, 144, 136, 141, 132, 129, 126, 144, 138, 141, 150, 140, 135, 126, 143, 142, 132, 134, 141, 140, 130, 142, 142, 136, 133, 132, 134, 124, 136, 127, 126, 136, 138, 141, 143, 131, 135, 162, 119, 149, 148, 144, 150, 138, 131, 135, 134, 135, 124, 103, 148, 134, 122, 137, 128, 127, 121, 133, 137, 145, 135, 148, 119, 137, 134, 145, 138, 149, 147, 135, 128, 148, 124, 132, 138, 134, 142, 143, 134, 144, 129, 144, 138, 134, 131, 131, 131, 132, 126, 144, 140, 139, 127, 138, 133, 123, 134, 135, 138, 142, 155, 147, 141, 134, 152, 142, 132, 135, 133, 142, 134, 137, 140, 156, 132, 143, 126, 125, 120, 140, 147, 132, 131, 125, 141, 138, 145, 147, 132, 143, 133, 131, 137, 151, 126, 129, 124, 133, 139, 141, 137, 116, 129, 139, 131, 123, 142, 134, 156, 134, 117, 130, 115, 139, 140, 144, 123, 138, 151, 141, 129, 122, 129, 143, 139, 143, 132, 148, 143, 137, 136, 130, 138, 118, 124, 139, 141, 149, 134, 142, 152, 139, 178, 149, 123, 136, 134, 140, 131, 129, 123, 142, 128, 132, 137, 134, 132, 135, 134, 140, 150, 151, 115, 141, 137, 131, 126, 133, 140, 132, 141, 135, 143, 131, 127, 132, 139, 146, 127, 127, 132, 138, 141, 149, 137, 146, 142, 160, 107, 125, 136, 148, 133, 132, 130, 133, 123, 135, 140, 145, 133, 135, 99, 130, 127, 122, 142, 128, 141, 140, 137, 155, 122, 131, 132, 131, 144, 157, 125, 138, 140, 127, 137, 145, 129, 122, 139, 131, 127, 132, 139, 128, 138, 114, 135, 140, 159, 131, 136, 129, 131, 147, 150, 128, 137, 121, 130, 128, 130, 129, 143, 143, 131, 132, 141, 143, 146, 149, 126, 133, 144, 129, 132, 135, 138, 139, 132, 139, 139, 147, 151, 135, 126, 131, 122, 147, 150, 125, 141, 116, 147, 136, 126, 120, 128, 130, 138, 135, 139, 136, 134, 119, 138, 130, 138, 137, 141, 141, 136, 137, 142, 120, 159, 157, 131, 131, 131, 114, 134, 155, 147, 136, 127, 135, 141, 122, 147, 118, 140, 138, 121, 134, 150, 138, 139, 139, 135, 136, 125, 134, 135, 140, 142, 144, 125, 128, 136, 142, 137, 130, 125, 137, 139, 120, 110, 131, 137, 139, 142, 122, 136, 120, 145, 141, 144, 154, 125, 139, 139, 147, 126, 135, 144, 131, 134, 136, 134, 140, 130, 129, 135, 135, 133, 139, 151, 138, 144, 141, 134, 129, 139, 145, 130, 128, 133, 130, 139, 159, 98, 111, 133, 138, 121, 154, 134, 153, 136, 138, 145, 129, 142, 134, 137, 138, 129, 125, 125, 129, 132, 116, 157, 138, 108, 142, 147, 137, 138, 134, 125, 136, 143, 131, 136, 142, 132, 150, 136, 146, 136, 128, 135, 150, 136, 145, 157, 127, 141, 139, 140, 135, 119, 141, 139, 117, 136, 132, 132, 145, 134, 137, 135, 142, 125, 133, 146, 132, 145, 96, 135, 169, 125, 111, 136, 141, 122, 114, 131, 134, 136, 143, 131, 119, 137, 130, 125, 133, 136, 135, 123, 108, 129, 141, 138, 138, 128, 131, 129, 139, 129, 137, 113, 126, 138, 139, 119, 173, 127, 141, 159, 147, 131, 128, 141, 128, 119, 143, 106, 146, 130, 138, 125, 133, 132, 141, 144, 141, 87, 121, 128, 130, 139, 139, 140, 137, 129, 133, 129, 130, 139, 118, 126, 131, 132, 134, 125, 131, 133, 147, 92, 131, 132, 128, 149, 130, 136, 133, 123, 135, 128, 135, 107, 133, 147, 124, 139, 146, 93, 123, 129, 137, 125, 146, 131, 145, 135, 136, 131, 135, 140, 136, 130, 136, 133, 139, 141, 139, 145, 122, 136, 136, 136, 138, 134, 140, 124, 152, 142, 141, 154, 138, 139, 135, 176, 142, 147, 145, 126, 145, 139, 135, 141, 153, 166, 140, 137, 142, 146, 145, 122, 138, 141, 153, 134, 140, 132, 135, 140, 137, 130, 136, 134, 142, 140, 132, 130, 136, 140, 150, 100, 132, 146, 154, 130, 137, 121, 133, 136, 142, 132, 128, 140, 131, 144, 135, 143, 139, 138, 128, 123, 130, 121, 145, 141, 138, 135, 141, 127, 165, 139, 133, 123, 124, 138, 130, 149, 186, 144, 138, 127, 140, 113, 123, 140, 133, 141, 135, 126, 141, 126, 105, 149, 130, 122, 157, 141, 144, 142, 139, 155, 130, 134, 129, 116, 143, 108, 137, 122, 128, 125, 135, 135, 140, 140, 129, 135, 129, 141, 134, 132, 105, 139, 152, 136, 134, 133, 128, 137, 130, 184, 143, 142, 147, 132, 126, 134, 139, 129, 170, 155, 133, 137, 112, 133, 132, 140, 142, 128, 144, 119, 135, 135, 131, 127, 129, 131, 140, 140, 96, 130, 132, 147, 144, 134, 142, 140, 137, 103, 129, 134, 136, 122, 141, 135, 125, 126, 135, 140, 137, 138, 142, 135, 141, 116, 133, 126, 143, 129, 170, 121, 144, 135, 125, 138, 151, 147, 134, 137, 119, 139, 133, 125, 150, 127, 128, 129, 136, 128, 129, 127, 107, 131, 126, 143, 166, 149, 119, 117, 124, 134, 141, 139, 138, 141, 134, 140, 126, 131, 159, 148, 138, 138, 132, 124, 132, 133, 135, 140, 135, 132, 134, 139, 132, 144, 124, 151, 154, 132, 129, 142, 141, 156, 130, 130, 132, 144, 127, 149, 138, 134, 148, 138, 135, 127, 129, 145, 136, 130, 154, 132, 129, 138, 135, 137, 143, 143, 129, 145, 151, 131, 135, 130, 149, 141, 116, 128, 134, 126, 132, 139, 140, 127, 143, 139, 130, 132, 136, 138, 150, 159, 123, 127, 136, 132, 145, 136, 129, 137, 166, 129, 162, 146, 132, 141, 139, 133, 125, 141, 146, 148, 150, 159, 138, 136, 159, 136, 138, 141, 125, 137, 134, 132, 132, 119, 134, 139, 123, 141, 142, 137, 130, 152, 144, 125, 128, 139, 127, 120, 133, 136, 122, 137, 128, 128, 141, 129, 139, 143, 142, 129, 135, 121, 138, 140, 144, 127, 144, 129, 125, 132, 127, 141, 131, 117, 156, 127, 145, 135, 135, 134, 126, 135, 146, 138, 143, 136, 129, 143, 131, 146, 147, 119, 146, 154, 137, 141, 132, 124, 134, 128, 133, 123, 145, 134, 128, 133, 130, 152, 126, 138, 145, 129, 140, 136, 133, 144, 136, 118, 135, 143, 131, 130, 143, 146, 146, 123, 145, 135, 155, 134, 138, 135, 130, 140, 144, 123, 134, 132, 133, 127, 153, 130, 138, 119, 132, 144, 123, 146, 123, 131, 128, 137, 145, 131, 137, 133, 115, 132, 139, 145, 133, 129, 141, 134, 143, 133, 138, 127, 136, 118, 137, 129, 120, 131, 138, 163, 121, 145, 139, 128, 134, 135, 125, 121, 126, 141, 137, 126, 138, 155, 150, 133, 130, 127, 141, 136, 154, 139, 141, 133, 126, 135, 132, 151, 138, 139, 136, 138, 126, 139, 135, 139, 143, 137, 143, 143, 132, 145, 125, 137, 147, 136, 131, 129, 154, 129, 133, 146, 139, 136, 136, 137, 143, 138, 117, 164, 117, 129, 125, 140, 134, 143, 128, 120, 150, 143, 120, 136, 122, 115, 142, 129, 126, 137, 139, 143, 142, 133, 103, 125, 150, 119, 131, 135, 141, 130, 113, 142, 121, 140, 126, 135, 147, 115, 151, 128, 132, 134, 131, 124, 135, 124, 129, 136, 125, 139, 125, 148, 131, 120, 139, 132, 128, 138, 138, 138, 146, 135, 132, 134, 134, 128, 136, 139, 139, 132, 148, 116, 139, 131, 122, 144, 144, 118, 133, 133, 142, 129, 128, 125, 136, 132, 141, 138, 143, 121, 141, 132, 137, 150, 129, 147, 133, 132, 139, 129, 129, 120, 140, 135, 109, 122, 126, 133, 161, 111, 145, 119, 137, 136, 136, 149, 142, 130, 140, 137, 138, 143, 159, 151, 133, 135, 140, 128, 112, 122, 131, 130, 135, 123, 130, 133, 119, 156, 138, 123, 131, 139, 120, 135, 134, 138, 131, 130, 145, 140, 137, 135, 159, 121, 132, 136, 139, 124, 110, 120, 124, 124, 141, 127, 129, 139, 161, 141, 122, 127, 139, 137, 126, 135, 133, 140, 161, 137, 132, 146, 134, 124, 129, 150, 138, 137, 143, 130, 127, 129, 127, 132, 137, 134, 140, 139, 142, 139, 148, 116, 140, 140, 162, 134, 136, 127, 149, 141, 153, 145, 136, 127, 142, 140, 116, 129, 126, 160, 149, 138, 117, 130, 132, 136, 136, 125, 149, 157, 128, 140, 134, 141, 123, 149, 137, 135, 131, 145, 151, 119, 138, 137, 145, 151, 148, 125, 137, 136, 146, 129, 146, 136, 148, 145, 126, 135, 154, 126, 142, 110, 139, 137, 140, 137, 134, 143, 130, 152, 136, 130, 126, 130, 129, 130, 142, 142, 127, 149, 127, 107, 128, 127, 115, 132, 153, 146, 141, 139, 132, 131, 136, 129, 119, 125, 127, 122, 116, 138, 120, 148, 126, 120, 131, 140, 141, 129, 141, 143, 140, 147, 134, 131, 120, 136, 126, 131, 139, 141, 126, 127, 127, 138, 133, 140, 148, 144, 135, 138, 138, 127, 134, 128, 120, 137, 140, 138, 142, 136, 140, 137, 147, 140, 143, 126, 131, 145, 137, 141, 146, 127, 127, 133, 140, 135, 141, 139, 143, 128, 144, 140, 137, 143, 134, 145, 132, 131, 143, 154, 142, 124, 137, 105, 149, 123, 134, 142, 128, 117, 144, 136, 135, 134, 132, 137, 135, 133, 147, 141, 144, 137, 145, 132, 139, 141, 130, 126, 117, 154, 158, 141, 127, 141, 147, 124, 155, 147, 139, 151, 134, 135, 124, 139, 142, 121, 130, 142, 126, 117, 144, 107, 138, 143, 139, 146, 130, 115, 137, 127, 125, 149, 138, 155, 142, 135, 148, 135, 146, 133, 140, 135, 141, 135, 135, 135, 142, 127, 131, 139, 139, 144, 138, 120, 125, 130, 140, 120, 135, 132, 136, 120, 138, 139, 139, 121, 142, 160, 143, 136, 145, 137, 143, 134, 130, 140, 127, 158, 138, 152, 137, 107, 120, 136, 133, 130, 132, 139, 140, 135, 136, 126, 143, 145, 146, 145, 131, 130, 133, 133, 145, 122, 119, 120, 143, 141, 133, 142, 129, 130, 141, 133, 135, 139, 120, 136, 144, 135, 141, 165, 145, 151, 152, 139, 136, 136, 128, 123, 133, 137, 134, 147, 119, 137, 135, 137, 127, 136, 123, 153, 127, 135, 130, 129, 128, 126, 138, 134, 128, 125, 134, 123, 158, 141, 135, 125, 125, 141, 133, 127, 134, 140, 137, 128, 131, 152, 135, 148, 129, 143, 132, 126, 135, 135, 142, 131, 132, 134, 130, 128, 133, 130, 119, 144, 134, 141, 137, 126, 132, 139, 132, 121, 136, 136, 133, 143, 126, 132, 140, 141, 127, 130, 137, 142, 144, 137, 164, 141, 142, 116, 143, 122, 136, 136, 138, 120, 141, 128, 140, 143, 131, 128, 134, 128, 139, 136, 142, 135, 140, 124, 134, 153, 135, 130, 130, 120, 142, 125, 132, 146, 133, 131, 134, 131, 148, 143, 132, 125, 144, 133, 127, 153, 153, 124, 132, 119, 139, 148, 121, 149, 138, 129, 116, 134, 125, 122, 137, 146, 128, 148, 142, 132, 139, 149, 117, 137, 134, 137, 136, 127, 134, 162, 124, 150, 131, 119, 120, 149, 141, 136, 123, 144, 144, 123, 145, 132, 134, 143, 128, 126, 126, 132, 153, 123, 143, 131, 119, 145, 139, 157, 150, 133, 140, 140, 136, 128, 146, 133, 141, 144, 122, 133, 151, 136, 123, 122, 137, 139, 133, 127, 145, 131, 130, 134, 118, 130, 135, 138, 142, 136, 137, 121, 137, 141, 136, 140, 130, 138, 194, 124, 130, 127, 139, 135, 132, 133, 131, 138, 138, 141, 133, 136, 135, 132, 136, 120, 138, 136, 143, 130, 128, 137, 132, 143, 147, 134, 137, 135, 140, 135, 144, 137, 134, 135, 133, 137, 134, 122, 138, 139, 134, 138, 134, 142, 137, 133, 133, 134, 135, 138, 134, 116, 165, 133, 143, 145, 142, 128, 136, 146, 139, 135, 144, 132, 140, 137, 137, 138, 134, 130, 137, 139, 187, 133, 134, 175, 144, 129, 132, 145, 136, 136, 135, 136, 137, 142, 135, 138, 149, 137, 137, 147, 135, 133, 133, 139, 133, 149, 125, 135, 127, 134, 132, 158, 135, 146, 131, 132, 135, 136, 139, 132, 137, 136, 130, 139, 122, 120, 130, 125, 168, 141, 138, 136, 149, 144, 141, 130, 144, 133, 140, 140, 144, 135, 145, 135, 129, 132, 139, 137, 132, 130, 111, 140, 142, 132, 140, 126, 133, 143, 137, 134, 110, 136, 142, 136, 120, 136, 131, 133, 127, 120, 146, 129, 139, 142, 141, 135, 132, 147, 133, 131, 131, 138, 144, 140, 132, 133, 133, 142, 138, 144, 137, 137, 137, 141, 136, 139, 134, 142, 141, 144, 135, 154, 137, 139, 135, 142, 141, 141, 139, 130, 134, 133, 123, 135, 132, 134, 142, 141, 136, 136, 135, 171, 140, 137, 135, 139, 137, 142, 138, 139, 145, 142, 135, 143, 126, 130, 136, 133, 142, 136, 138, 131, 136, 134, 139, 136, 135, 134, 131, 142, 132, 136, 136, 137, 134, 119, 134, 134, 146, 126, 133, 136, 130, 153, 127, 133, 135, 138, 131, 134, 149, 134, 139, 125, 138, 132, 133, 138, 121, 121, 129, 149, 135, 138, 141, 140, 131, 133, 136, 141, 133, 139, 135, 146, 141, 140, 135, 129, 137, 143, 138, 143, 142, 125, 143, 110, 133, 136, 139, 135, 139, 141, 154, 153, 139, 135, 143, 138, 137, 135, 139, 135, 138, 135, 133, 137, 137, 131, 128, 135, 135, 142, 146, 136, 136, 132, 95, 135, 131, 145, 141, 140, 128, 142, 141, 134, 130, 150, 135, 129, 135, 120, 137, 130, 123, 145, 139, 137, 117, 137, 134, 134, 141, 135, 131, 105, 130, 142, 141, 114, 144, 136, 138, 134, 138, 139, 139, 134, 136, 144, 150, 132, 137, 137, 119, 137, 142, 137, 142, 116, 131, 135, 141, 138, 146, 134, 139, 130, 126, 136, 140, 138, 128, 138, 131, 130, 147, 141, 133, 134, 135, 139, 135, 136, 134, 142, 134, 143, 114, 134, 144, 135, 138, 137, 134, 133, 139, 115, 131, 139, 139, 140, 137, 132, 131, 143, 139, 132, 137, 135, 138, 145, 135, 138, 141, 136, 134, 141, 125, 122, 137, 141, 133, 135, 145, 137, 132, 131, 134, 136, 140, 128, 126, 141, 130, 137, 133, 136, 139, 132, 134, 130, 128, 130, 133, 140, 131, 134, 131, 131, 139, 127, 134, 130, 140, 136, 142, 127, 160, 135, 137, 132, 128, 139, 135, 124, 139, 123, 139, 137, 137, 133, 139, 138, 136, 135, 147, 140, 150, 132, 133, 118, 140, 137, 150, 140, 130, 137, 138, 138, 134, 137, 132, 138, 119, 133, 134, 136, 136, 135, 138, 142, 131, 138, 145, 141, 135, 157, 138, 143, 141, 127, 112, 125, 151, 149, 143, 140, 142, 167, 133, 131, 129, 147, 120, 120, 134, 127, 133, 136, 145, 140, 135, 145, 137, 146, 130, 141, 137, 132, 156, 133, 130, 131, 120, 128, 128, 130, 140, 128, 134, 140, 126, 133, 140, 129, 125, 132, 141, 136, 138, 130, 143, 133, 144, 144, 135, 134, 145, 149, 138, 135, 127, 136, 138, 138, 128, 135, 139, 137, 127, 145, 128, 131, 147, 151, 153, 132, 148, 134, 132, 147, 152, 137, 139, 138, 145, 153, 137, 133, 142, 140, 121, 131, 145, 143, 136, 132, 133, 118, 119, 135, 137, 121, 137, 131, 132, 132, 143, 143, 140, 148, 133, 131, 139, 65, 132, 138, 135, 138, 147, 145, 138, 136, 132, 146, 143, 143, 133, 200, 137, 144, 140, 132, 144, 139, 118, 137, 138, 129, 147, 144, 133, 131, 132, 127, 144, 131, 152, 125, 149, 131, 135, 132, 128, 143, 146, 127, 119, 136, 136, 154, 133, 133, 129, 149, 128, 132, 139, 154, 120, 122, 129, 147, 123, 142, 136, 137, 130, 149, 130, 128, 123, 93, 141, 147, 131, 131, 119, 133, 137, 139, 142, 142, 135, 137, 136, 143, 139, 133, 133, 128, 138, 137, 123, 157, 133, 133, 142, 127, 143, 139, 91, 131, 138, 147, 144, 130, 138, 134, 146, 135, 134, 134, 132, 140, 142, 141, 121, 134, 141, 137, 122, 148, 139, 136, 130, 119, 142, 124, 147, 142, 128, 130, 144, 134, 137, 132, 147, 136, 168, 130, 132, 134, 133, 128, 134, 135, 150, 139, 122, 132, 141, 130, 122, 126, 140, 147, 122, 137, 138, 136, 122, 129, 120, 129, 134, 131, 137, 132, 144, 132, 137, 135, 140, 134, 136, 132, 129, 144, 125, 147, 131, 127, 135, 130, 144, 129, 130, 142, 124, 99, 120, 127, 130, 128, 144, 154, 136, 138, 128, 127, 144, 148, 133, 132, 150, 145, 135, 136, 139, 116, 148, 133, 136, 125, 147, 144, 126, 127, 140, 105, 137, 130, 149, 136, 128, 127, 123, 146, 136, 157, 140, 127, 139, 137, 137, 142, 149, 143, 143, 134, 131, 140, 133, 124, 130, 136, 137, 140, 130, 124, 135, 125, 137, 139, 138, 140, 119, 144, 131, 136, 139, 136, 134, 140, 152, 139, 129, 135, 143, 137, 127, 131, 137, 129, 137, 130, 136, 125, 152, 136, 135, 131, 136, 127, 136, 142, 133, 131, 126, 137, 132, 144, 150, 125, 136, 154, 134, 130, 137, 135, 140, 149, 139, 130, 131, 136, 125, 179, 144, 137, 140, 133, 152, 138, 141, 142, 147, 140, 127, 130, 129, 130, 141, 134, 146, 138, 137, 134, 144, 147, 137, 129, 127, 128, 132, 146, 121, 137, 130, 142, 154, 130, 137, 123, 128, 136, 141, 131, 130, 133, 137, 133, 137, 137, 122, 132, 144, 164, 135, 141, 115, 143, 130, 132, 132, 117, 132, 124, 139, 153, 144, 130, 142, 132, 133, 140, 137, 137, 131, 128, 106, 134, 130, 146, 150, 145, 150, 117, 134, 164, 138, 127, 142, 153, 136, 151, 151, 130, 130, 139, 147, 112, 131, 154, 130, 134, 141, 132, 134, 143, 115, 123, 138, 155, 143, 124, 157, 121, 132, 130, 129, 132, 130, 148, 138, 138, 146, 147, 131, 137, 146, 127, 128, 140, 135, 142, 151, 137, 137, 141, 135, 136, 155, 151, 152, 154, 126, 125, 151, 147, 133, 135, 135, 133, 140, 139, 129, 134, 157, 120, 131, 143, 148, 151, 123, 155, 144, 113, 132, 145, 130, 130, 132, 146, 121, 143, 141, 147, 130, 103, 132, 155, 132, 131, 116, 136, 105, 134, 140, 139, 126, 117, 133, 121, 127, 142, 154, 133, 126, 147, 130, 151, 140, 121, 149, 146, 116, 138, 129, 126, 146, 138, 149, 146, 136, 138, 142, 129, 150, 132, 146, 145, 122, 132, 131, 138, 70, 140, 144, 130, 148, 137, 118, 150, 148, 141, 144, 138, 147, 136, 137, 130, 122, 126, 128, 153, 141, 138, 127, 140, 124, 138, 133, 118, 147, 146, 143, 133, 137, 138, 145, 140, 123, 149, 140, 138, 127, 151, 138, 127, 135, 133, 129, 142, 144, 143, 139, 132, 161, 116, 123, 141, 140, 131, 131, 130, 152, 126, 133, 157, 147, 138, 136, 123, 151, 139, 124, 115, 144, 149, 140, 141, 135, 131, 145, 139, 143, 133, 137, 126, 141, 133, 139, 130, 151, 130, 128, 125, 149, 116, 136, 133, 144, 120, 110, 136, 134, 139, 125, 142, 133, 115, 151, 138, 150, 141, 147, 122, 123, 135, 152, 130, 144, 140, 139, 143, 140, 127, 133, 140, 129, 118, 130, 148, 164, 123, 144, 146, 142, 132, 138, 128, 136, 144, 120, 146, 135, 133, 132, 146, 117, 133, 139, 134, 141, 119, 149, 142, 145, 140, 127, 144, 133, 153, 130, 148, 134, 142, 135, 130, 129, 132, 132, 122, 143, 131, 146, 130, 121, 143, 142, 134, 131, 131, 129, 143, 143, 146, 123, 149, 137, 125, 146, 123, 159, 125, 147, 136, 136, 132, 147, 151, 145, 140, 135, 136, 123, 143, 144, 124, 142, 133, 138, 134, 143, 127, 138, 136, 137, 146, 140, 134, 152, 150, 121, 130, 124, 128, 143, 144, 151, 152, 155, 112, 121, 124, 148, 136, 119, 141, 127, 130, 139, 139, 150, 151, 154, 119, 142, 127, 125, 115, 130, 118, 140, 144, 148, 145, 159, 128, 119, 135, 134, 128, 128, 142, 154, 140, 140, 142, 133, 133, 131, 135, 137, 146, 131, 124, 130, 138, 145, 123, 118, 145, 145, 150, 147, 144, 141, 151, 131, 136, 152, 158, 136, 148, 129, 135, 133, 128, 128, 141, 134, 139, 135, 127, 143, 132, 143, 137, 152, 131, 140, 139, 125, 161, 137, 135, 127, 142, 135, 146, 130, 127, 112, 134, 132, 136, 133, 154, 142, 127, 128, 141, 135, 146, 141, 141, 131, 121, 124, 134, 118, 162, 135, 125, 126, 144, 133, 142, 125, 140, 143, 129, 143, 130, 133, 139, 126, 139, 133, 158, 140, 142, 145, 121, 129, 142, 145, 141, 133, 131, 127, 139, 130, 118, 131, 123, 123, 137, 116, 127, 137, 138, 142, 143, 120, 140, 125, 134, 136, 146, 140, 139, 138, 152, 137, 143, 149, 127, 130, 137, 143, 145, 137, 132, 152, 152, 152, 139, 160, 158, 128, 131, 125, 132, 123, 127, 131, 132, 149, 137, 126, 137, 138, 134, 133, 137, 129, 145, 132, 131, 124, 135, 135, 124, 133, 132, 145, 143, 126, 130, 136, 126, 136, 132, 126, 133, 134, 133, 126, 141, 145, 136, 130, 141, 135, 143, 128, 148, 134, 140, 139, 142, 145, 141, 124, 137, 123, 128, 138, 145, 132, 142, 114, 134, 142, 161, 132, 156, 129, 115, 114, 140, 152, 134, 139, 151, 139, 140, 140, 131, 144, 133, 134, 132, 141, 132, 127, 141, 151, 132, 128, 140, 139, 132, 138, 132, 143, 128, 133, 130, 129, 150, 136, 146, 139, 135, 126, 148, 125, 117, 153, 147, 150, 125, 136, 142, 137, 130, 136, 137, 138, 124, 131, 144, 138, 140, 127, 140, 132, 139, 141, 131, 130, 126, 135, 145, 117, 144, 134, 128, 141, 121, 151, 134, 134, 147, 143, 127, 136, 137, 126, 140, 140, 133, 128, 120, 124, 124, 115, 119, 133, 128, 122, 155, 118, 132, 138, 131, 134, 146, 131, 128, 134, 145, 145, 117, 148, 132, 143, 139, 134, 143, 148, 142, 146, 137, 135, 137, 120, 132, 141, 123, 150, 136, 133, 132, 130, 156, 136, 134, 148, 125, 130, 130, 146, 132, 144, 140, 135, 137, 139, 149, 153, 136, 144, 141, 141, 142, 132, 130, 151, 132, 126, 146, 128, 137, 139, 139, 127, 121, 132, 146, 121, 128, 131, 125, 147, 145, 137, 132, 135, 143, 141, 122, 135, 146, 135, 138, 147, 136, 142, 136, 139, 135, 118, 151, 134, 140, 126, 120, 119, 140, 134, 137, 136, 137, 120, 140, 140, 138, 134, 135, 141, 140, 162, 147, 145, 144, 132, 139, 128, 145, 159, 136, 132, 133, 136, 153, 141, 146, 155, 141, 141, 138, 130, 132, 125, 129, 117, 131, 130, 128, 139, 134, 138, 146, 134, 136, 142, 137, 135, 126, 152, 127, 138, 138, 136, 138, 121, 126, 135, 135, 135, 123, 138, 139, 141, 156, 135, 133, 126, 131, 136, 138, 152, 144, 140, 137, 167, 168, 129, 143, 134, 134, 136, 155, 120, 134, 125, 138, 140, 143, 132, 138, 129, 138, 131, 140, 139, 118, 116, 149, 139, 121, 136, 132, 127, 129, 116, 126, 127, 146, 128, 126, 128, 113, 121, 129, 128, 138, 127, 132, 135, 119, 126, 135, 141, 137, 142, 155, 149, 132, 142, 136, 121, 134, 139, 138, 152, 138, 136, 130, 120, 135, 142, 141, 133, 124, 136, 142, 138, 142, 120, 136, 131, 138, 128, 124, 142, 147, 137, 145, 153, 137, 127, 148, 138, 132, 129, 141, 127, 122, 145, 135, 130, 133, 137, 143, 135, 138, 138, 122, 143, 126, 142, 135, 131, 138, 141, 142, 130, 144, 144, 123, 133, 141, 137, 141, 137, 135, 139, 137, 124, 136, 135, 131, 122, 132, 156, 138, 149, 142, 137, 137, 135, 123, 135, 129, 139, 135, 145, 137, 148, 140, 138, 145, 143, 138, 147, 133, 151, 134, 134, 154, 122, 131, 146, 156, 145, 135, 134, 136, 145, 152, 145, 142, 125, 133, 127, 130, 130, 113, 133, 131, 131, 142, 136, 121, 129, 130, 133, 148, 153, 132, 139, 134, 135, 126, 134, 142, 135, 142, 138, 139, 139, 135, 138, 134, 131, 142, 143, 134, 161, 131, 141, 136, 129, 137, 151, 144, 149, 139, 126, 145, 128, 141, 133, 136, 127, 137, 137, 136, 114, 140, 136, 125, 130, 149, 132, 137, 138, 138, 139, 125, 129, 139, 130, 133, 137, 133, 130, 125, 128, 131, 133, 152, 145, 133, 132, 138, 135, 140, 137, 125, 130, 143, 137, 127, 144, 131, 141, 130, 129, 129, 138, 176, 131, 142, 140, 128, 146, 139, 132, 142, 129, 141, 135, 146, 147, 130, 139, 141, 142, 129, 131, 128, 129, 130, 132, 118, 136, 146, 133, 129, 128, 129, 142, 130, 141, 137, 144, 142, 135, 147, 129, 135, 110, 133, 131, 144, 137, 126, 131, 128, 136, 123, 129, 134, 133, 136, 123, 131, 142, 125, 137, 145, 147, 122, 139, 140, 128, 132, 143, 129, 134, 139, 141, 160, 127, 141, 131, 129, 136, 142, 122, 130, 122, 131, 135, 136, 142, 119, 143, 131, 137, 133, 133, 138, 121, 133, 133, 134, 134, 113, 137, 135, 157, 125, 135, 154, 117, 130, 136, 130, 134, 129, 116, 130, 131, 133, 148, 138, 138, 134, 134, 152, 134, 135, 133, 134, 130, 135, 139, 151, 137, 141, 128, 124, 136, 158, 132, 145, 126, 137, 126, 133, 133, 133, 131, 124, 138, 132, 131, 137, 138, 132, 139, 123, 138, 157, 124, 115, 124, 138, 141, 136, 154, 142, 124, 140, 127, 132, 136, 157, 126, 143, 141, 145, 129, 132, 127, 129, 137, 133, 125, 134, 119, 143, 158, 139, 139, 156, 128, 140, 125, 129, 146, 133, 137, 120, 123, 145, 123, 128, 126, 132, 138, 135, 134, 136, 133, 132, 138, 144, 142, 148, 124, 134, 129, 143, 130, 158, 146, 140, 136, 132, 151, 132, 139, 140, 117, 130, 137, 137, 134, 144, 137, 136, 124, 135, 159, 157, 132, 129, 139, 145, 134, 127, 137, 146, 128, 145, 126, 133, 133, 122, 138, 160, 131, 145, 125, 139, 137, 133, 138, 126, 137, 135, 144, 130, 133, 136, 118, 145, 129, 130, 137, 136, 138, 129, 137, 148, 135, 135, 124, 140, 138, 142, 128, 119, 144, 129, 129, 138, 129, 148, 135, 130, 150, 128, 106, 128, 129, 136, 119, 133, 140, 145, 145, 128, 132, 134, 126, 140, 162, 137, 136, 145, 136, 134, 147, 130, 141, 129, 144, 137, 135, 126, 134, 126, 137, 133, 138, 143, 121, 136, 141, 136, 134, 137, 140, 133, 138, 153, 142, 133, 138, 140, 139, 130, 136, 137, 126, 123, 134, 154, 142, 129, 149, 125, 139, 141, 139, 142, 127, 136, 130, 128, 128, 128, 136, 140, 121, 132, 136, 118, 141, 120, 136, 134, 133, 133, 139, 119, 137, 136, 139, 132, 148, 130, 118, 132, 139, 128, 137, 136, 113, 136, 146, 158, 132, 137, 137, 142, 132, 135, 127, 123, 136, 137, 129, 140, 132, 129, 131, 128, 138, 130, 130, 135, 139, 108, 130, 132, 123, 140, 136, 134, 132, 135, 135, 141, 142, 131, 161, 135, 137, 135, 126, 145, 138, 124, 138, 136, 143, 147, 133, 135, 138, 130, 138, 134, 123, 144, 124, 136, 132, 131, 144, 147, 137, 138, 139, 122, 137, 134, 136, 131, 137, 136, 147, 130, 135, 123, 132, 134, 148, 135, 136, 138, 133, 159, 131, 139, 135, 132, 152, 145, 138, 139, 130, 128, 143, 146, 135, 118, 139, 135, 127, 136, 130, 125, 131, 122, 129, 134, 126, 144, 134, 138, 123, 138, 127, 138, 129, 131, 141, 142, 129, 135, 142, 134, 139, 134, 137, 142, 138, 141, 122, 139, 130, 130, 133, 129, 138, 149, 132, 141, 112, 136, 134, 132, 127, 150, 135, 137, 139, 141, 143, 135, 132, 134, 141, 123, 138, 132, 135, 128, 130, 127, 126, 130, 130, 131, 135, 131, 134, 122, 149, 145, 134, 130, 134, 131, 141, 133, 146, 113, 149, 133, 130, 120, 135, 130, 145, 130, 153, 136, 130, 131, 135, 141, 135, 123, 133, 124, 148, 122, 143, 136, 141, 142, 152, 136, 138, 130, 137, 126, 145, 146, 154, 136, 147, 136, 135, 136, 132, 120, 122, 138, 131, 145, 126, 164, 134, 131, 141, 137, 140, 140, 137, 127, 130, 134, 136, 116, 145, 122, 141, 142, 138, 140, 135, 129, 131, 136, 138, 135, 119, 133, 161, 137, 144, 143, 133, 143, 129, 160, 139, 129, 136, 138, 131, 143, 136, 139, 146, 133, 135, 134, 135, 129, 138, 133, 138, 130, 139, 145, 134, 135, 139, 151, 129, 134, 140, 139, 132, 141, 140, 119, 117, 133, 132, 135, 130, 131, 130, 147, 137, 143, 140, 132, 133, 132, 129, 138, 134, 138, 133, 140, 135, 142, 127, 142, 129, 136, 136, 141, 140, 139, 135, 130, 131, 138, 140, 134, 128, 127, 136, 145, 146, 140, 138, 140, 129, 123, 124, 139, 147, 132, 140, 145, 138, 142, 143, 108, 134, 138, 136, 141, 130, 141, 139, 124, 145, 130, 150, 131, 126, 128, 125, 141, 122, 139, 135, 133, 138, 141, 126, 154, 128, 122, 138, 127, 136, 124, 146, 134, 147, 142, 152, 142, 147, 141, 129, 131, 132, 156, 131, 133, 139, 152, 135, 142, 134, 132, 134, 122, 131, 136, 130, 125, 135, 140, 140, 145, 137, 139, 137, 134, 129, 143, 135, 133, 139, 150, 145, 139, 120, 129, 131, 126, 125, 130, 137, 134, 128, 137, 137, 144, 126, 143, 141, 133, 132, 140, 147, 140, 135, 148, 121, 131, 130, 131, 128, 128, 132, 133, 135, 125, 132, 124, 130, 145, 144, 137, 148, 116, 130, 141, 135, 139, 135, 129, 136, 126, 134, 130, 134, 128, 140, 139, 133, 146, 139, 141, 139, 135, 131, 138, 128, 132, 124, 137, 139, 138, 144, 138, 130, 129, 137, 142, 126, 131, 133, 137, 129, 139, 145, 132, 136, 142, 133, 141, 144, 129, 138, 135, 137, 132, 147, 138, 133, 138, 131, 135, 129, 130, 133, 142, 134, 129, 140, 136, 137, 132, 132, 135, 147, 131, 136, 133, 143, 137, 130, 138, 131, 135, 140, 136, 135, 133, 137, 134, 129, 129, 136, 134, 140, 143, 140, 139, 140, 140, 136, 144, 134, 143, 143, 138, 139, 130, 135, 147, 125, 154, 132, 143, 143, 133, 137, 138, 129, 134, 123, 138, 136, 128, 138, 132, 143, 138, 141, 142, 140, 139, 130, 134, 139, 136, 126, 137, 139, 134, 137, 133, 133, 135, 136, 132, 132, 129, 140, 137, 138, 145, 139, 137, 140, 131, 142, 140, 130, 133, 144, 131, 137, 140, 137, 131, 140, 139, 134, 133, 139, 136, 144, 134, 153, 136, 134, 142, 139, 132, 137, 137, 141, 145, 141, 132, 140, 133, 143, 136, 132, 140, 134, 138, 127, 133, 134, 131, 140, 144, 135, 132, 134, 136, 134, 140, 129, 139, 146, 136, 134, 133, 134, 135, 133, 143, 139, 132, 143, 140, 137, 134, 133, 137, 141, 135, 129, 135, 139, 135, 138, 133, 130, 128, 126, 132, 136, 136, 139, 134, 136, 138, 136, 131, 142, 132, 134, 136, 140, 136, 135, 140, 137, 138, 142, 130, 125, 136, 135, 146, 141, 138, 135, 136, 137, 139, 134, 136, 136, 129, 135, 139, 138, 130, 128, 135, 136, 134, 138, 137, 127, 140, 141, 146, 136, 137, 131, 138, 142, 137, 127, 140, 131, 134, 148, 138, 136, 141, 132, 133, 117, 137, 137, 129, 139, 126, 137, 143, 132, 141, 130, 133, 141, 139, 132, 134, 145, 147, 143, 146, 134, 129, 130, 137, 141, 136, 130, 134, 140, 141, 132, 132, 137, 134, 130, 141, 129, 137, 128, 134, 135, 125, 140, 129, 129, 142, 138, 133, 144, 132, 133, 146, 138, 133, 144, 135, 135, 130, 140, 122, 129, 128, 136, 137, 134, 138, 143, 147, 136, 144, 128, 132, 140, 132, 130, 136, 137, 137, 145, 135, 133, 142, 133, 132, 138, 135, 135, 136, 130, 136, 134, 141, 138, 126, 145, 135, 135, 135, 127, 139, 141, 132, 138, 134, 136, 138, 136, 141, 130, 134, 130, 133, 143, 136, 139, 141, 138, 131, 137, 136, 138, 133, 135, 131, 130, 140, 131, 132, 128, 141, 142, 135, 136, 136, 138, 141, 136, 128, 120, 129, 129, 136, 132, 132, 148, 140, 141, 128, 139, 136, 140, 130, 139, 140, 136, 130, 133, 142, 134, 131, 143, 133, 132, 138, 134, 147, 136, 135, 134, 138, 125, 135, 133, 130, 136, 145, 138, 137, 138, 132, 135, 139, 134, 136, 126, 142, 147, 133, 138, 139, 133, 133, 126, 133, 131, 136, 134, 133, 133, 136, 132, 140, 133, 128, 144, 139, 128, 132, 133, 139, 133, 135, 142, 133, 133, 137, 132, 142, 131, 143, 132, 128, 136, 127, 137, 138, 128, 143, 134, 140, 140, 143, 134, 131, 131, 126, 132, 135, 122, 132, 140, 126, 134, 131, 129, 124, 126, 140, 140, 139, 129, 121, 144, 123, 142, 138, 128, 150, 137, 140, 126, 146, 129, 139, 127, 148, 129, 134, 135, 145, 135, 132, 107, 114, 144, 116, 138, 121, 132, 132, 128, 139, 126, 147, 121, 144, 136, 146, 128, 130, 118, 130, 137, 141, 139, 125, 156, 133, 126, 127, 133, 137, 128, 143, 166, 138, 142, 141, 128, 131, 127, 147, 133, 136, 140, 125, 154, 131, 125, 128, 146, 127, 124, 152, 136, 134, 143, 134, 124, 143, 127, 133, 144, 143, 148, 135, 156, 147, 149, 126, 139, 126, 133, 138, 139, 139, 158, 126, 134, 147, 112, 131, 132, 137, 152, 132, 146, 134, 134, 132, 146, 132, 151, 132, 123, 130, 136, 145, 136, 140, 145, 146, 137, 130, 131, 141, 133, 140, 139, 137, 141, 148, 168, 133, 135, 122, 134, 138, 125, 125, 139, 125, 133, 136, 139, 126, 142, 146, 135, 138, 142, 142, 131, 138, 128, 144, 134, 132, 138, 130, 152, 162, 136, 149, 131, 136, 134, 131, 134, 123, 137, 135, 135, 144, 138, 140, 142, 125, 137, 148, 138, 123, 124, 125, 129, 137, 142, 141, 132, 143, 123, 137, 145, 120, 139, 134, 135, 126, 123, 145, 141, 128, 134, 136, 145, 134, 132, 116, 139, 129, 134, 132, 132, 138, 128, 134, 132, 130, 127, 135, 137, 135, 143, 133, 144, 133, 126, 126, 131, 139, 129, 120, 142, 125, 146, 130, 134, 129, 132, 125, 138, 112, 133, 134, 128, 143, 150, 135, 145, 130, 123, 124, 143, 112, 128, 131, 130, 132, 120, 130, 144, 122, 158, 156, 137, 154, 138, 133, 147, 139, 135, 146, 116, 135, 141, 121, 142, 137, 143, 142, 135, 138, 127, 122, 150, 128, 128, 147, 121, 129, 121, 140, 145, 142, 125, 121, 132, 136, 129, 134, 142, 125, 130, 154, 131, 133, 151, 143, 134, 131, 141, 133, 149, 137, 136, 143, 134, 137, 135, 138, 134, 139, 153, 129, 138, 129, 135, 139, 142, 134, 143, 117, 133, 139, 118, 133, 133, 129, 129, 128, 152, 134, 150, 135, 126, 135, 134, 131, 139, 134, 140, 138, 124, 122, 143, 110, 150, 137, 142, 154, 136, 137, 136, 136, 146, 125, 141, 140, 127, 138, 144, 134, 130, 144, 145, 124, 143, 117, 129, 126, 141, 136, 144, 138, 127, 129, 140, 130, 127, 133, 146, 131, 130, 133, 136, 150, 136, 146, 128, 141, 136, 143, 131, 145, 138, 138, 128, 126, 135, 143, 140, 144, 133, 141, 134, 128, 133, 136, 148, 120, 138, 122, 128, 117, 135, 144, 117, 135, 129, 133, 128, 131, 132, 140, 124, 119, 142, 135, 155, 119, 151, 150, 123, 144, 145, 131, 134, 147, 144, 128, 147, 142, 125, 138, 127, 139, 133, 135, 151, 126, 125, 126, 137, 140, 161, 140, 135, 119, 143, 145, 118, 129, 130, 134, 149, 152, 139, 147, 140, 140, 143, 134, 131, 136, 131, 132, 137, 127, 134, 141, 128, 126, 131, 138, 134, 132, 146, 148, 144, 137, 129, 141, 133, 118, 133, 122, 124, 127, 143, 131, 122, 116, 143, 143, 142, 135, 128, 141, 127, 123, 129, 121, 130, 131, 128, 138, 118, 143, 139, 138, 151, 143, 144, 133, 114, 129, 152, 130, 140, 148, 148, 130, 142, 127, 137, 131, 121, 141, 130, 121, 126, 127, 120, 119, 148, 132, 129, 129, 127, 149, 134, 118, 137, 121, 143, 138, 140, 132, 130, 126, 124, 130, 120, 140, 156, 137, 142, 115, 140, 126, 143, 123, 144, 137, 111, 123, 151, 118, 144, 132, 130, 140, 146, 131, 142, 119, 140, 136, 134, 147, 153, 137, 145, 140, 139, 142, 144, 132, 144, 117, 133, 155, 131, 138, 133, 141, 124, 133, 144, 135, 141, 144, 145, 154, 124, 145, 145, 147, 150, 137, 137, 165, 145, 133, 136, 131, 136, 156, 136, 140, 150, 130, 135, 141, 153, 141, 143, 119, 127, 141, 140, 115, 133, 134, 126, 129, 138, 127, 136, 145, 140, 135, 129, 132, 151, 109, 140, 131, 142, 135, 145, 128, 145, 124, 139, 135, 140, 137, 141, 120, 132, 137, 132, 132, 131, 138, 122, 146, 123, 131, 148, 129, 125, 141, 125, 130, 130, 128, 138, 140, 119, 131, 123, 142, 128, 145, 119, 141, 137, 149, 125, 139, 165, 134, 135, 137, 133, 138, 152, 142, 135, 127, 127, 131, 129, 135, 124, 133, 127, 139, 123, 132, 154, 132, 138, 138, 145, 146, 133, 137, 120, 131, 149, 133, 141, 145, 134, 153, 133, 152, 140, 133, 148, 136, 128, 126, 125, 138, 131, 135, 125, 134, 135, 140, 149, 122, 126, 131, 142, 133, 133, 143, 140, 123, 128, 142, 118, 124, 145, 125, 121, 128, 138, 130, 142, 142, 140, 138, 143, 136, 129, 113, 135, 119, 146, 123, 109, 150, 142, 132, 138, 133, 141, 140, 134, 149, 144, 131, 138, 143, 133, 131, 132, 144, 128, 153, 139, 125, 142, 129, 126, 140, 119, 132, 121, 119, 139, 134, 141, 135, 133, 148, 144, 138, 127, 132, 132, 129, 128, 127, 137, 148, 127, 134, 135, 136, 126, 126, 127, 131, 131, 124, 122, 116, 152, 139, 144, 139, 147, 133, 132, 115, 135, 139, 145, 138, 136, 155, 147, 134, 136, 144, 131, 139, 122, 123, 134, 144, 136, 137, 121, 125, 129, 148, 130, 142, 126, 127, 134, 138, 122, 139, 136, 133, 140, 136, 127, 134, 137, 153, 145, 127, 131, 133, 150, 139, 128, 130, 142, 134, 136, 124, 131, 142, 136, 139, 136, 135, 120, 134, 133, 127, 146, 145, 132, 132, 132, 130, 136, 128, 147, 132, 131, 134, 141, 136, 134, 143, 138, 145, 128, 136, 120, 124, 135, 153, 138, 130, 135, 131, 126, 134, 131, 130, 133, 140, 138, 135, 138, 153, 137, 137, 144, 144, 121, 136, 125, 133, 128, 129, 135, 128, 141, 134, 125, 135, 131, 124, 152, 134, 145, 145, 135, 144, 138, 130, 137, 144, 160, 135, 152, 131, 153, 181, 144, 144, 124, 129, 141, 130, 142, 118, 131, 134, 140, 143, 131, 121, 130, 127, 121, 119, 133, 155, 139, 137, 134, 140, 135, 124, 127, 123, 126, 137, 145, 151, 169, 132, 136, 140, 139, 127, 117, 139, 128, 117, 133, 130, 140, 145, 129, 131, 134, 115, 141, 138, 144, 127, 142, 144, 147, 127, 124, 145, 133, 133, 140, 138, 133, 126, 139, 141, 141, 130, 135, 149, 139, 136, 135, 131, 137, 135, 143, 142, 128, 135, 130, 136, 139, 145, 155, 141, 143, 125, 146, 145, 155, 139, 134, 146, 132, 144, 136, 126, 140, 130, 130, 126, 134, 137, 143, 159, 141, 164, 133, 124, 139, 132, 136, 136, 133, 140, 134, 139, 143, 126, 92, 144, 139, 94, 125, 134, 144, 135, 142, 116, 135, 134, 137, 144, 133, 182, 142, 134, 125, 147, 138, 138, 145, 140, 133, 137, 136, 136, 126, 119, 130, 139, 179, 146, 113, 127, 136, 136, 130, 163, 124, 127, 135, 140, 133, 140, 116, 132, 142, 127, 137, 107, 138, 123, 173, 142, 138, 138, 136, 132, 131, 129, 146, 128, 139, 127, 130, 131, 134, 124, 130, 142, 137, 119, 135, 133, 121, 143, 129, 137, 149, 135, 138, 135, 135, 119, 131, 135, 139, 133, 148, 171, 130, 126, 133, 141, 140, 138, 130, 131, 127, 134, 140, 143, 154, 111, 123, 141, 124, 143, 127, 122, 133, 161, 134, 132, 136, 139, 132, 132, 139, 124, 139, 131, 135, 191, 128, 138, 134, 130, 140, 160, 127, 127, 135, 127, 142, 136, 134, 133, 135, 130, 143, 140, 140, 137, 124, 134, 145, 139, 149, 138, 121, 133, 129, 127, 141, 119, 139, 147, 140, 135, 132, 154, 140, 131, 120, 96, 143, 125, 144, 134, 141, 129, 128, 137, 149, 96, 124, 138, 136, 142, 122, 130, 138, 131, 134, 131, 132, 140, 144, 140, 134, 135, 144, 125, 138, 138, 131, 136, 139, 138, 141, 171, 132, 146, 142, 130, 134, 126, 145, 134, 136, 125, 133, 140, 141, 127, 141, 136, 147, 143, 131, 131, 139, 128, 143, 139, 140, 130, 139, 125, 102, 138, 128, 130, 134, 137, 132, 145, 103, 139, 132, 135, 144, 111, 130, 134, 129, 149, 124, 142, 137, 129, 116, 150, 130, 128, 131, 134, 147, 142, 116, 145, 131, 126, 132, 121, 120, 125, 131, 121, 139, 123, 137, 133, 152, 130, 136, 146, 127, 132, 132, 122, 134, 127, 140, 135, 116, 130, 127, 132, 130, 97, 151, 138, 138, 135, 129, 133, 129, 133, 115, 155, 136, 132, 149, 126, 147, 136, 140, 128, 137, 131, 131, 133, 130, 131, 133, 137, 137, 138, 149, 129, 134, 144, 141, 123, 131, 130, 131, 136, 134, 140, 119, 127, 137, 124, 141, 123, 133, 141, 133, 120, 136, 132, 129, 124, 134, 129, 137, 144, 107, 140, 149, 139, 139, 126, 137, 144, 135, 143, 130, 133, 138, 162, 142, 128, 129, 131, 135, 132, 124, 126, 121, 133, 130, 143, 100, 142, 137, 126, 124, 134, 138, 136, 133, 134, 132, 150, 128, 137, 106, 137, 143, 134, 132, 123, 132, 131, 134, 131, 134, 129, 126, 123, 149, 135, 135, 136, 137, 126, 138, 131, 129, 141, 119, 128, 133, 133, 122, 134, 141, 138, 132, 144, 118, 145, 126, 138, 134, 134, 118, 130, 137, 138, 135, 140, 100, 131, 134, 136, 142, 135, 136, 138, 144, 138, 143, 133, 153, 120, 148, 132, 134, 140, 141, 140, 134, 133, 136, 139, 154, 126, 144, 138, 145, 137, 131, 139, 126, 126, 143, 135, 134, 140, 139, 138, 141, 135, 115, 128, 132, 138, 148, 133, 141, 138, 144, 148, 138, 148, 126, 133, 132, 141, 129, 134, 136, 137, 141, 134, 139, 133, 144, 145, 136, 128, 133, 138, 147, 132, 135, 133, 131, 134, 139, 132, 140, 134, 131, 139, 142, 134, 142, 145, 138, 143, 137, 154, 131, 144, 120, 123, 135, 140, 159, 122, 132, 153, 132, 132, 137, 129, 140, 139, 148, 133, 133, 95, 137, 131, 139, 130, 137, 138, 109, 133, 131, 138, 135, 139, 115, 134, 142, 133, 134, 133, 140, 142, 128, 136, 129, 128, 132, 143, 145, 140, 136, 88, 144, 131, 149, 130, 141, 132, 132, 132, 126, 117, 141, 146, 138, 138, 135, 129, 170, 133, 132, 142, 134, 122, 135, 135, 135, 129, 136, 132, 136, 146, 142, 142, 142, 132, 137, 139, 121, 128, 113, 135, 137, 136, 127, 132, 143, 132, 142, 125, 138, 131, 140, 130, 136, 140, 134, 130, 139, 135, 127, 135, 145, 130, 138, 141, 134, 139, 138, 130, 143, 135, 133, 135, 142, 115, 144, 115, 144, 140, 150, 132, 138, 140, 141, 136, 140, 142, 145, 126, 140, 144, 140, 145, 179, 130, 141, 128, 135, 130, 145, 141, 148, 141, 131, 131, 141, 143, 134, 133, 146, 141, 135, 134, 142, 133, 132, 141, 137, 138, 127, 137, 116, 140, 133, 143, 105, 140, 129, 144, 142, 148, 140, 122, 129, 141, 132, 140, 125, 143, 135, 123, 136, 136, 139, 139, 148, 135, 134, 144, 137, 132, 142, 126, 137, 134, 137, 134, 129, 135, 144, 143, 130, 168, 141, 132, 136, 133, 137, 137, 121, 146, 131, 139, 137, 131, 137, 130, 163, 137, 135, 131, 125, 136, 142, 135, 139, 132, 133, 136, 146, 131, 131, 138, 147, 153, 134, 141, 126, 139, 140, 136, 128, 141, 155, 93, 98, 136, 140, 99, 151, 140, 129, 145, 140, 144, 146, 131, 131, 136, 124, 141, 140, 145, 131, 133, 147, 132, 136, 136, 135, 137, 152, 146, 82, 137, 141, 151, 160, 141, 136, 124, 132, 124, 130, 130, 127, 135, 132, 129, 126, 136, 148, 137, 123, 120, 137, 121, 133, 127, 125, 138, 129, 138, 143, 136, 148, 136, 137, 132, 137, 133, 142, 140, 123, 138, 133, 137, 159, 147, 118, 139, 142, 127, 130, 141, 141, 135, 130, 147, 138, 132, 132, 134, 168, 146, 145, 114, 151, 143, 135, 144, 133, 132, 139, 167, 132, 128, 125, 129, 137, 135, 133, 145, 140, 129, 141, 142, 141, 123, 132, 127, 138, 139, 130, 148, 142, 134, 130, 131, 137, 142, 140, 154, 143, 134, 147, 123, 137, 143, 143, 134, 139, 128, 129, 133, 127, 131, 134, 125, 139, 143, 129, 137, 139, 137, 100, 146, 133, 127, 133, 134, 145, 133, 132, 134, 135, 141, 143, 144, 137, 128, 139, 156, 139, 125, 153, 131, 129, 136, 135, 141, 140, 136, 137, 134, 138, 142, 139, 137, 134, 132, 133, 135, 127, 134, 132, 138, 133, 146, 135, 139, 128, 134, 136, 136, 137, 136, 144, 151, 125, 132, 141, 129, 144, 135, 130, 145, 132, 137, 140, 132, 137, 135, 136, 142, 126, 135, 139, 140, 68, 132, 135, 124, 137, 160, 136, 143, 133, 133, 136, 138, 136, 139, 126, 134, 109, 138, 136, 116, 142, 134, 133, 139, 136, 134, 128, 144, 137, 139, 139, 111, 114, 142, 135, 132, 138, 130, 138, 127, 145, 135, 133, 142, 126, 165, 132, 149, 113, 136, 119, 141, 118, 141, 145, 125, 148, 135, 139, 129, 135, 136, 135, 133, 125, 134, 135, 143, 139, 132, 168, 137, 145, 131, 132, 127, 131, 143, 142, 139, 145, 117, 131, 142, 139, 134, 128, 133, 130, 142, 147, 136, 141, 137, 141, 141, 142, 126, 138, 139, 139, 140, 141, 137, 136, 126, 139, 127, 140, 144, 137, 138, 136, 143, 133, 141, 131, 145, 133, 141, 108, 112, 141, 137, 138, 129, 138, 140, 136, 128, 137, 133, 128, 140, 138, 141, 140, 147, 136, 131, 133, 96, 133, 133, 138, 134, 136, 125, 140, 134, 146, 145, 134, 134, 138, 134, 133, 127, 138, 134, 145, 134, 135, 132, 137, 129, 132, 141, 142, 138, 137, 138, 135, 123, 136, 143, 137, 130, 142, 125, 140, 138, 137, 118, 133, 122, 129, 140, 134, 136, 144, 134, 140, 139, 143, 140, 134, 139, 153, 137, 130, 136, 141, 141, 141, 132, 132, 137, 134, 133, 131, 142, 139, 144, 137, 145, 134, 134, 138, 137, 142, 140, 144, 137, 134, 144, 136, 139, 138, 140, 142, 141, 121, 117, 136, 125, 143, 145, 137, 130, 141, 136, 136, 141, 130, 125, 131, 136, 133, 141, 142, 134, 132, 139, 128, 132, 175, 140, 129, 139, 139, 139, 135, 141, 146, 132, 130, 133, 134, 137, 129, 144, 141, 136, 139, 148, 136, 136, 144, 129, 141, 136, 139, 134, 128, 165, 130, 139, 136, 156, 143, 138, 139, 129, 134, 142, 137, 137, 137, 140, 119, 136, 139, 138, 153, 135, 143, 140, 140, 164, 126, 135, 132, 134, 136, 133, 134, 131, 152, 130, 141, 133, 150, 132, 125, 128, 138, 145, 139, 140, 135, 144, 131, 137, 134, 149, 133, 139, 151, 135, 140, 136, 135, 137, 130, 129, 135, 144, 126, 140, 107, 147, 137, 132, 136, 147, 138, 138, 139, 126, 136, 139, 143, 133, 133, 137, 135, 116, 141, 128, 145, 137, 135, 126, 133, 132, 133, 134, 134, 121, 132, 139, 124, 137, 126, 132, 140, 136, 130, 127, 131, 129, 129, 132, 146, 133, 130, 130, 135, 130, 139, 130, 136, 130, 139, 141, 134, 129, 107, 131, 132, 136, 137, 136, 136, 126, 146, 158, 143, 133, 137, 135, 140, 137, 143, 127, 142, 130, 144, 137, 119, 144, 136, 134, 123, 146, 135, 147, 134, 131, 119, 130, 136, 139, 121, 130, 146, 132, 125, 134, 111, 131, 144, 130, 130, 136, 138, 144, 131, 138, 118, 141, 131, 142, 130, 122, 126, 127, 119, 137, 145, 128, 151, 138, 128, 134, 142, 139, 138, 131, 130, 140, 137, 143, 135, 138, 130, 137, 140, 134, 151, 136, 148, 140, 138, 137, 126, 150, 136, 147, 130, 141, 123, 137, 134, 142, 134, 138, 126, 140, 149, 131, 134, 133, 126, 141, 154, 145, 149, 138, 134, 137, 135, 136, 131, 129, 148, 142, 135, 130, 132, 137, 134, 139, 132, 140, 128, 133, 124, 132, 137, 126, 136, 143, 127, 172, 129, 121, 124, 138, 145, 126, 140, 136, 128, 162, 131, 140, 140, 139, 134, 140, 135, 149, 144, 150, 130, 138, 134, 128, 146, 150, 110, 125, 141, 135, 149, 133, 145, 128, 129, 135, 136, 127, 133, 140, 122, 145, 120, 134, 135, 134, 130, 141, 140, 151, 131, 137, 129, 134, 132, 126, 137, 125, 134, 146, 134, 132, 135, 139, 127, 136, 116, 140, 138, 138, 120, 149, 130, 128, 138, 135, 139, 115, 142, 138, 136, 157, 139, 135, 132, 136, 131, 119, 139, 149, 139, 125, 141, 118, 130, 140, 147, 132, 111, 139, 118, 146, 140, 136, 133, 134, 130, 132, 102, 146, 142, 122, 145, 135, 147, 142, 135, 139, 134, 151, 137, 135, 137, 143, 133, 136, 141, 131, 133, 127, 149, 134, 135, 144, 136, 146, 149, 138, 131, 142, 135, 134, 162, 139, 157, 131, 149, 142, 133, 145, 138, 141, 144, 131, 156, 138, 127, 132, 138, 135, 134, 130, 130, 131, 141, 136, 127, 141, 138, 115, 158, 143, 131, 142, 126, 130, 155, 121, 150, 141, 145, 116, 134, 138, 137, 136, 139, 148, 150, 137, 114, 137, 123, 135, 139, 128, 123, 144, 140, 140, 137, 133, 134, 134, 140, 130, 134, 130, 156, 141, 138, 160, 173, 137, 135, 130, 130, 147, 133, 115, 137, 148, 133, 114, 143, 138, 143, 148, 143, 139, 146, 127, 131, 130, 129, 153, 133, 134, 135, 123, 122, 117, 128, 138, 142, 143, 142, 143, 143, 134, 131, 138, 139, 167, 138, 131, 155, 111, 135, 145, 140, 141, 138, 133, 137, 128, 141, 91, 124, 138, 140, 142, 142, 132, 130, 140, 139, 148, 147, 114, 118, 121, 121, 143, 146, 133, 144, 144, 128, 128, 142, 162, 148, 148, 124, 139, 131, 123, 135, 142, 146, 130, 125, 134, 137, 146, 143, 148, 135, 126, 134, 121, 126, 133, 139, 154, 138, 125, 138, 129, 135, 129, 104, 138, 138, 141, 144, 134, 143, 133, 126, 131, 139, 139, 138, 133, 144, 137, 128, 123, 137, 123, 197, 129, 136, 141, 134, 141, 139, 137, 136, 145, 133, 148, 123, 128, 148, 123, 150, 143, 135, 138, 139, 133, 139, 139, 137, 125, 131, 131, 137, 147, 129, 128, 130, 133, 138, 127, 145, 126, 135, 116, 144, 146, 125, 150, 132, 154, 126, 133, 125, 142, 128, 143, 127, 120, 121, 123, 133, 133, 133, 139, 128, 129, 131, 130, 140, 142, 148, 130, 152, 146, 144, 133, 133, 159, 140, 134, 144, 135, 148, 146, 138, 132, 122, 148, 145, 104, 132, 129, 140, 146, 124, 146, 144, 134, 144, 154, 123, 141, 157, 138, 161, 128, 138, 131, 129, 120, 138, 145, 143, 140, 138, 135, 143, 126, 128, 147, 144, 130, 131, 146, 130, 155, 128, 146, 139, 145, 153, 107, 141, 144, 137, 133, 132, 129, 161, 144, 145, 128, 117, 143, 150, 135, 129, 124, 143, 129, 119, 146, 162, 150, 151, 143, 152, 149, 128, 139, 133, 111, 137, 118, 140, 154, 116, 150, 136, 140, 142, 134, 118, 141, 137, 138, 150, 152, 126, 118, 142, 122, 123, 143, 135, 132, 131, 127, 140, 144, 140, 129, 135, 140, 127, 129, 150, 143, 137, 131, 134, 137, 142, 148, 144, 124, 130, 139, 93, 153, 141, 141, 136, 141, 141, 136, 139, 134, 142, 130, 113, 126, 148, 146, 125, 144, 148, 126, 137, 127, 137, 125, 136, 134, 129, 146, 134, 125, 116, 136, 139, 125, 141, 144, 146, 145, 147, 130, 158, 136, 130, 132, 115, 133, 120, 134, 147, 140, 139, 137, 151, 132, 128, 136, 149, 131, 130, 129, 125, 129, 139, 155, 138, 137, 135, 112, 134, 138, 131, 148, 132, 137, 136, 144, 134, 133, 139, 132, 146, 135, 121, 160, 154, 126, 137, 111, 155, 141, 136, 152, 136, 137, 138, 113, 134, 140, 143, 129, 129, 136, 137, 135, 136, 127, 128, 129, 135, 124, 97, 137, 137, 129, 121, 127, 147, 118, 115, 150, 138, 129, 129, 108, 114, 138, 149, 133, 135, 152, 136, 139, 123, 149, 142, 149, 141, 146, 131, 128, 142, 142, 146, 133, 147, 141, 129, 148, 136, 137, 113, 134, 147, 130, 136, 130, 135, 124, 126, 134, 149, 115, 138, 135, 132, 133, 143, 141, 127, 143, 152, 138, 144, 139, 146, 139, 131, 134, 127, 134, 136, 148, 136, 143, 148, 144, 122, 130, 141, 131, 134, 136, 145, 140, 136, 131, 125, 128, 143, 137, 132, 133, 154, 134, 149, 121, 143, 142, 130, 146, 131, 146, 135, 142, 138, 145, 139, 140, 133, 138, 141, 130, 131, 128, 127, 137, 151, 134, 132, 139, 140, 127, 147, 148, 130, 141, 140, 135, 138, 143, 123, 136, 152, 144, 133, 116, 134, 111, 132, 132, 144, 136, 150, 128, 145, 149, 124, 130, 149, 148, 132, 128, 131, 140, 141, 127, 151, 137, 129, 134, 154, 135, 130, 134, 142, 147, 142, 128, 130, 139, 142, 138, 137, 149, 138, 147, 117, 139, 138, 130, 135, 156, 115, 121, 135, 151, 138, 150, 138, 134, 133, 140, 135, 137, 143, 146, 152, 137, 138, 135, 136, 136, 143, 136, 121, 149, 150, 137, 138, 128, 139, 132, 135, 149, 133, 129, 132, 120, 127, 127, 144, 140, 146, 155, 134, 160, 135, 153, 126, 147, 141, 141, 131, 156, 157, 137, 132, 126, 130, 144, 178, 144, 132, 121, 142, 150, 140, 126, 134, 133, 133, 131, 127, 140, 127, 133, 143, 138, 140, 144, 140, 125, 135, 139, 136, 129, 138, 142, 129, 131, 131, 134, 124, 140, 131, 128, 125, 143, 143, 130, 136, 134, 146, 134, 143, 138, 118, 143, 145, 140, 133, 137, 132, 132, 147, 132, 130, 135, 130, 139, 132, 139, 125, 135, 149, 138, 137, 133, 150, 125, 153, 137, 144, 145, 135, 138, 147, 139, 126, 139, 131, 126, 149, 137, 134, 134, 143, 133, 126, 133, 132, 129, 137, 148, 128, 142, 144, 137, 134, 142, 135, 141, 130, 137, 128, 138, 141, 131, 141, 138, 136, 141, 134, 131, 133, 138, 135, 134, 139, 137, 135, 143, 143, 127, 146, 148, 148, 159, 129, 153, 133, 143, 127, 136, 153, 122, 135, 141, 127, 139, 135, 144, 134, 124, 137, 138, 140, 137, 143, 139, 135, 142, 129, 129, 126, 106, 131, 128, 132, 139, 126, 128, 129, 122, 144, 130, 133, 126, 126, 136, 139, 151, 135, 137, 152, 139, 132, 140, 131, 136, 127, 133, 133, 133, 139, 133, 135, 133, 132, 140, 150, 143, 143, 131, 141, 151, 162, 137, 134, 134, 140, 136, 132, 146, 147, 120, 128, 146, 137, 137, 126, 150, 138, 119, 131, 135, 151, 130, 150, 134, 135, 132, 141, 140, 133, 142, 140, 126, 142, 126, 126, 130, 132, 129, 140, 144, 148, 129, 128, 133, 135, 139, 128, 125, 143, 153, 129, 142, 140, 135, 133, 125, 137, 135, 144, 136, 146, 124, 131, 146, 142, 138, 135, 124, 146, 153, 123, 135, 145, 138, 137, 127, 140, 139, 139, 132, 120, 151, 129, 143, 141, 133, 146, 132, 136, 136, 130, 138, 134, 139, 135, 135, 144, 128, 139, 130, 142, 136, 169, 122, 132, 138, 106, 133, 160, 133, 124, 129, 138, 139, 143, 134, 131, 130, 124, 139, 127, 139, 140, 148, 128, 142, 137, 136, 136, 132, 147, 131, 121, 132, 139, 136, 127, 132, 141, 139, 145, 152, 148, 148, 157, 141, 137, 134, 139, 128, 146, 151, 133, 138, 146, 142, 146, 139, 121, 141, 142, 141, 129, 132, 144, 125, 158, 142, 128, 133, 130, 142, 133, 137, 139, 151, 140, 140, 150, 127, 136, 130, 132, 134, 140, 136, 132, 136, 138, 132, 148, 144, 144, 132, 142, 146, 137, 139, 141, 119, 130, 127, 129, 104, 126, 133, 132, 137, 153, 140, 146, 126, 133, 117, 139, 138, 130, 133, 147, 137, 135, 137, 158, 161, 139, 151, 128, 148, 121, 128, 126, 129, 147, 142, 129, 142, 136, 131, 137, 140, 155, 124, 116, 144, 135, 141, 136, 149, 134, 129, 105, 131, 140, 133, 129, 123, 125, 143, 148, 127, 130, 136, 143, 140, 141, 130, 140, 137, 141, 146, 129, 133, 135, 141, 145, 147, 134, 141, 135, 141, 118, 132, 132, 134, 131, 135, 132, 134, 138, 140, 148, 130, 137, 134, 133, 135, 140, 137, 144, 133, 131, 143, 134, 136, 139, 143, 139, 132, 134, 137, 158, 129, 133, 130, 137, 131, 126, 133, 140, 118, 131, 141, 131, 129, 125, 138, 131, 141, 145, 137, 141, 149, 150, 132, 146, 122, 133, 147, 129, 137, 141, 138, 152, 128, 147, 127, 124, 120, 154, 129, 133, 128, 139, 141, 140, 126, 138, 146, 132, 123, 132, 143, 141, 150, 123, 155, 132, 125, 132, 145, 137, 133, 147, 143, 130, 140, 108, 136, 142, 123, 144, 131, 140, 128, 146, 121, 128, 144, 132, 137, 118, 130, 143, 139, 154, 144, 143, 138, 143, 132, 127, 138, 155, 161, 131, 123, 99, 146, 133, 130, 142, 134, 130, 132, 134, 141, 149, 141, 138, 137, 124, 142, 125, 129, 122, 129, 139, 137, 137, 135, 137, 134, 126, 136, 134, 132, 138, 136, 135, 135, 135, 140, 130, 130, 123, 124, 140, 138, 145, 149, 146, 141, 155, 132, 140, 129, 131, 131, 127, 143, 130, 126, 136, 138, 138, 132, 137, 137, 158, 125, 133, 114, 129, 144, 139, 128, 129, 138, 137, 142, 139, 138, 140, 137, 121, 140, 134, 137, 125, 148, 129, 132, 132, 127, 135, 171, 127, 143, 157, 124, 107, 127, 127, 130, 149, 134, 121, 138, 154, 151, 134, 134, 122, 130, 130, 146, 128, 140, 145, 138, 113, 147, 138, 127, 138, 158, 132, 142, 145, 133, 129, 131, 127, 128, 138, 146, 152, 143, 147, 132, 124, 132, 121, 133, 126, 145, 139, 131, 131, 126, 134, 138, 134, 118, 143, 116, 138, 136, 138, 127, 146, 138, 128, 138, 140, 135, 135, 122, 180, 117, 147, 127, 129, 125, 133, 134, 119, 144, 141, 137, 136, 125, 157, 135, 131, 129, 139, 140, 137, 137, 124, 140, 153, 142, 157, 138, 142, 127, 132, 131, 151, 153, 159, 142, 135, 126, 143, 141, 143, 132, 128, 132, 148, 130, 141, 144, 137, 138, 118, 142, 131, 137, 131, 133, 143, 126, 133, 143, 130, 140, 146, 143, 132, 155, 155, 150, 129, 147, 143, 138, 117, 128, 135, 134, 138, 127, 142, 137, 149, 136, 147, 130, 132, 159, 138, 137, 137, 128, 133, 144, 146, 136, 145, 126, 125, 131, 142, 153, 150, 119, 146, 134, 132, 137, 130, 126, 134, 142, 128, 128, 140, 135, 147, 130, 135, 121, 125, 136, 143, 145, 133, 131, 144, 121, 131, 132, 141, 131, 117, 126, 148, 153, 143, 145, 131, 144, 123, 139, 145, 143, 150, 134, 157, 135, 130, 135, 136, 129, 136, 126, 135, 147, 132, 144, 143, 136, 132, 134, 122, 133, 138, 135, 135, 133, 124, 150, 136, 132, 120, 132, 122, 135, 140, 143, 130, 135, 134, 123, 140, 129, 128, 130, 147, 158, 133, 129, 150, 132, 138, 141, 133, 145, 159, 126, 140, 151, 148, 131, 129, 136, 150, 125, 130, 138, 132, 130, 135, 133, 135, 131, 122, 131, 132, 144, 140, 139, 159, 152, 123, 134, 118, 134, 122, 122, 137, 139, 132, 122, 132, 140, 131, 147, 133, 138, 148, 132, 132, 139, 138, 145, 144, 135, 130, 143, 122, 130, 135, 135, 130, 138, 150, 127, 129, 133, 134, 132, 118, 136, 139, 155, 139, 141, 130, 134, 129, 121, 135, 136, 132, 143, 139, 149, 146, 134, 134, 128, 142, 140, 133, 133, 138, 130, 134, 138, 133, 137, 137, 127, 139, 131, 120, 130, 135, 140, 146, 140, 131, 133, 125, 140, 126, 135, 136, 138, 133, 122, 128, 131, 131, 131, 130, 133, 135, 130, 139, 138, 137, 131, 140, 130, 153, 135, 143, 144, 141, 146, 141, 131, 136, 136, 133, 132, 137, 137, 143, 140, 148, 145, 131, 134, 129, 133, 140, 139, 137, 126, 134, 132, 134, 140, 132, 133, 141, 137, 129, 144, 139, 135, 123, 134, 136, 129, 141, 136, 135, 130, 136, 132, 137, 136, 136, 138, 123, 139, 134, 146, 136, 144, 134, 133, 139, 136, 147, 132, 135, 141, 129, 137, 139, 135, 133, 143, 125, 138, 142, 140, 137, 138, 142, 136, 134, 141, 131, 134, 137, 105, 135, 141, 130, 133, 127, 130, 139, 141, 146, 137, 132, 128, 204, 132, 133, 140, 136, 132, 138, 130, 132, 129, 141, 133, 125, 140, 126, 132, 127, 102, 129, 133, 138, 132, 138, 133, 139, 133, 131, 134, 130, 135, 142, 135, 136, 133, 108, 137, 134, 141, 144, 133, 133, 135, 137, 142, 143, 140, 141, 132, 128, 152, 130, 131, 127, 141, 134, 134, 143, 149, 131, 134, 139, 127, 142, 136, 135, 132, 151, 127, 137, 146, 136, 135, 139, 138, 128, 136, 131, 133, 137, 154, 146, 136, 130, 140, 142, 143, 139, 142, 132, 135, 133, 138, 123, 168, 132, 137, 145, 143, 148, 147, 141, 130, 140, 137, 140, 140, 135, 135, 130, 130, 124, 150, 139, 129, 130, 149, 152, 133, 121, 132, 147, 137, 144, 135, 139, 135, 131, 132, 138, 151, 130, 133, 131, 130, 134, 134, 141, 130, 148, 141, 131, 144, 151, 138, 113, 133, 129, 154, 136, 152, 139, 135, 143, 135, 136, 134, 129, 137, 127, 142, 145, 130, 130, 149, 134, 137, 131, 130, 136, 133, 147, 132, 145, 136, 133, 135, 156, 129, 137, 124, 126, 128, 136, 139, 139, 132, 137, 107, 141, 132, 137, 137, 137, 138, 93, 138, 137, 135, 158, 138, 133, 129, 125, 143, 137, 139, 132, 160, 130, 133, 143, 130, 138, 134, 129, 131, 139, 139, 138, 135, 126, 130, 136, 134, 133, 118, 134, 135, 132, 135, 136, 135, 141, 132, 134, 143, 135, 133, 134, 157, 129, 147, 130, 135, 134, 129, 144, 140, 130, 134, 130, 132, 137, 136, 132, 132, 130, 136, 146, 132, 124, 135, 141, 136, 134, 131, 136, 140, 132, 134, 153, 133, 138, 162, 144, 131, 132, 131, 146, 132, 149, 147, 128, 138, 139, 131, 154, 132, 146, 129, 116, 136, 139, 131, 147, 138, 149, 130, 141, 135, 136, 141, 146, 136, 134, 130, 137, 128, 133, 140, 140, 130, 135, 153, 129, 139, 137, 129, 140, 128, 139, 136, 132, 137, 145, 133, 136, 139, 133, 138, 152, 138, 135, 140, 150, 136, 139, 137, 151, 124, 133, 130, 133, 132, 144, 129, 134, 132, 135, 130, 140, 140, 121, 140, 134, 128, 150, 138, 137, 141, 129, 128, 137, 126, 121, 124, 143, 127, 145, 138, 144, 132, 133, 132, 123, 146, 139, 124, 144, 132, 139, 120, 128, 135, 138, 138, 129, 128, 141, 126, 132, 125, 148, 128, 136, 132, 136, 146, 150, 144, 139, 145, 142, 134, 135, 127, 138, 141, 124, 145, 154, 140, 122, 125, 152, 138, 132, 136, 144, 122, 125, 138, 139, 128, 139, 146, 141, 135, 138, 134, 126, 150, 135, 125, 138, 142, 122, 146, 124, 127, 124, 121, 129, 133, 133, 138, 138, 145, 141, 150, 142, 134, 146, 123, 124, 130, 149, 136, 131, 130, 133, 132, 139, 150, 171, 137, 138, 136, 146, 134, 118, 142, 135, 138, 108, 136, 145, 133, 132, 143, 132, 131, 136, 137, 133, 135, 145, 132, 139, 125, 151, 134, 136, 148, 138, 134, 132, 150, 133, 126, 128, 142, 141, 126, 140, 128, 123, 140, 133, 133, 149, 132, 138, 137, 139, 145, 134, 132, 137, 147, 132, 136, 135, 139, 138, 143, 131, 128, 123, 145, 133, 146, 132, 152, 125, 127, 130, 130, 141, 141, 131, 122, 133, 145, 156, 142, 123, 148, 127, 149, 136, 145, 117, 128, 122, 149, 136, 117, 134, 125, 137, 121, 124, 126, 151, 141, 132, 122, 132, 125, 134, 132, 147, 157, 135, 136, 133, 126, 133, 153, 113, 131, 143, 123, 128, 140, 136, 122, 129, 131, 142, 134, 126, 160, 149, 130, 132, 129, 145, 141, 133, 132, 134, 162, 138, 129, 138, 125, 128, 141, 141, 135, 130, 154, 123, 142, 146, 127, 119, 146, 154, 136, 129, 132, 132, 136, 150, 161, 129, 128, 130, 134, 156, 135, 128, 133, 142, 125, 125, 167, 137, 152, 129, 138, 120, 141, 132, 125, 148, 142, 141, 141, 143, 133, 141, 129, 132, 127, 117, 126, 134, 128, 138, 142, 154, 151, 131, 141, 155, 131, 135, 139, 128, 149, 152, 132, 160, 136, 128, 134, 154, 134, 145, 151, 148, 132, 147, 138, 150, 132, 142, 144, 131, 135, 136, 142, 145, 161, 143, 124, 133, 128, 129, 146, 135, 118, 127, 139, 125, 142, 151, 131, 130, 127, 130, 130, 140, 138, 139, 126, 131, 139, 123, 153, 137, 139, 134, 123, 127, 134, 129, 128, 138, 142, 140, 128, 153, 132, 148, 130, 156, 130, 135, 154, 139, 141, 137, 129, 131, 136, 139, 134, 150, 133, 129, 141, 138, 132, 130, 132, 141, 134, 142, 135, 147, 149, 136, 118, 135, 146, 143, 140, 150, 125, 125, 152, 117, 126, 145, 145, 133, 146, 120, 136, 143, 129, 127, 143, 145, 133, 128, 138, 146, 131, 135, 124, 130, 144, 119, 131, 132, 137, 126, 136, 132, 135, 141, 120, 138, 113, 147, 130, 120, 128, 144, 130, 134, 158, 158, 132, 137, 150, 136, 148, 111, 129, 140, 155, 131, 125, 138, 117, 149, 151, 140, 131, 138, 130, 125, 148, 150, 135, 135, 135, 145, 142, 125, 138, 139, 133, 126, 128, 141, 134, 135, 126, 137, 131, 121, 137, 152, 131, 152, 151, 135, 128, 133, 152, 125, 167, 133, 123, 155, 122, 128, 129, 143, 122, 145, 131, 127, 125, 142, 130, 134, 143, 130, 153, 134, 122, 141, 131, 130, 132, 138, 146, 140, 145, 142, 135, 152, 143, 130, 142, 139, 146, 139, 142, 138, 130, 139, 134, 120, 152, 129, 150, 140, 120, 139, 135, 127, 150, 135, 130, 125, 126, 166, 121, 124, 151, 139, 135, 122, 154, 138, 121, 151, 130, 140, 134, 138, 131, 142, 129, 132, 136, 131, 142, 136, 141, 123, 121, 146, 119, 132, 140, 139, 124, 147, 133, 149, 140, 128, 138, 151, 131, 145, 129, 139, 127, 136, 126, 120, 124, 141, 155, 152, 136, 154, 131, 135, 132, 125, 146, 136, 140, 137, 143, 136, 139, 126, 145, 114, 155, 127, 127, 132, 128, 147, 137, 140, 135, 141, 136, 133, 119, 149, 133, 129, 138, 141, 140, 115, 136, 142, 123, 130, 133, 139, 125, 152, 141, 160, 136, 147, 139, 123, 133, 142, 124, 134, 122, 140, 133, 129, 123, 148, 124, 126, 128, 142, 136, 128, 118, 130, 133, 141, 138, 146, 136, 138, 141, 134, 129, 130, 126, 152, 133, 133, 114, 138, 142, 143, 131, 126, 142, 142, 118, 133, 145, 137, 135, 149, 138, 134, 127, 126, 134, 138, 152, 128, 131, 134, 137, 131, 134, 120, 133, 141, 140, 155, 136, 130, 142, 118, 132, 132, 146, 144, 146, 137, 155, 139, 135, 130, 148, 139, 122, 142, 131, 129, 130, 130, 133, 130, 129, 125, 125, 154, 136, 150, 127, 122, 144, 134, 134, 124, 128, 130, 127, 135, 148, 155, 123, 127, 135, 133, 125, 147, 141, 121, 139, 138, 125, 150, 151, 131, 120, 141, 135, 148, 147, 135, 127, 137, 154, 137, 127, 131, 129, 141, 129, 116, 108, 132, 135, 132, 160, 135, 150, 154, 126, 149, 166, 135, 140, 150, 129, 141, 133, 141, 146, 152, 135, 133, 123, 129, 125, 128, 130, 135, 133, 132, 138, 149, 125, 148, 129, 136, 130, 140, 175, 163, 125, 138, 154, 128, 137, 147, 137, 143, 126, 139, 134, 145, 134, 133, 149, 131, 137, 127, 133, 152, 129, 138, 134, 129, 124, 141, 131, 146, 136, 134, 136, 134, 142, 137, 119, 147, 132, 150, 135, 130, 145, 124, 141, 143, 151, 128, 139, 120, 136, 145, 127, 128, 140, 133, 135, 145, 140, 141, 126, 129, 142, 127, 119, 148, 144, 138, 123, 136, 149, 138, 130, 138, 138, 132, 131, 130, 122, 131, 144, 140, 145, 128, 147, 138, 132, 131, 134, 163, 131, 144, 133, 135, 151, 138, 129, 121, 131, 130, 138, 144, 129, 123, 125, 149, 136, 126, 137, 151, 130, 138, 143, 146, 137, 141, 135, 137, 135, 139, 128, 142, 138, 139, 130, 134, 129, 140, 128, 136, 146, 144, 155, 130, 157, 123, 143, 152, 138, 126, 128, 137, 135, 153, 125, 132, 135, 129, 118, 134, 136, 128, 120, 134, 139, 141, 133, 128, 133, 125, 128, 161, 147, 129, 129, 127, 128, 120, 133, 142, 134, 116, 138, 124, 154, 136, 139, 136, 136, 132, 133, 135, 136, 134, 141, 133, 131, 135, 153, 130, 141, 132, 132, 148, 137, 140, 143, 136, 135, 122, 128, 129, 130, 140, 134, 116, 133, 147, 144, 136, 125, 157, 155, 134, 135, 132, 135, 133, 120, 135, 128, 139, 128, 130, 132, 138, 122, 143, 143, 129, 126, 137, 126, 147, 144, 143, 132, 122, 131, 121, 143, 141, 150, 138, 122, 137, 141, 144, 138, 145, 131, 135, 141, 143, 127, 137, 145, 144, 145, 151, 99, 144, 140, 128, 132, 155, 139, 158, 132, 131, 134, 127, 132, 132, 135, 133, 139, 131, 131, 134, 136, 143, 156, 118, 122, 159, 140, 131, 142, 132, 139, 130, 106, 102, 141, 122, 149, 133, 130, 132, 134, 137, 136, 142, 135, 135, 137, 136, 132, 136, 132, 127, 132, 127, 143, 149, 120, 137, 123, 141, 127, 137, 140, 145, 126, 136, 145, 130, 114, 138, 135, 153, 148, 143, 159, 150, 140, 128, 136, 143, 139, 121, 130, 139, 123, 139, 132, 140, 138, 134, 150, 126, 135, 136, 133, 132, 126, 133, 139, 130, 129, 138, 134, 131, 135, 122, 146, 141, 151, 144, 132, 139, 145, 116, 130, 112, 139, 135, 125, 131, 129, 112, 129, 131, 134, 134, 134, 137, 139, 139, 143, 134, 161, 151, 137, 146, 136, 130, 134, 135, 134, 147, 131, 130, 127, 128, 143, 128, 123, 136, 140, 141, 133, 141, 141, 147, 130, 132, 133, 141, 137, 122, 134, 129, 135, 144, 127, 144, 145, 143, 143, 142, 124, 144, 116, 118, 126, 135, 139, 142, 132, 128, 147, 133, 134, 128, 132, 111, 134, 130, 150, 152, 134, 135, 133, 126, 135, 126, 126, 146, 144, 142, 133, 139, 128, 155, 140, 138, 125, 147, 138, 137, 139, 123, 161, 125, 144, 136, 139, 141, 124, 138, 135, 136, 138, 141, 141, 135, 132, 133, 152, 145, 141, 134, 130, 131, 136, 131, 133, 133, 139, 135, 145, 138, 140, 139, 135, 110, 112, 138, 125, 141, 133, 136, 133, 131, 142, 143, 141, 132, 147, 143, 135, 144, 142, 137, 130, 139, 138, 132, 139, 142, 135, 138, 124, 131, 138, 141, 139, 144, 137, 149, 141, 143, 145, 134, 137, 128, 145, 137, 131, 140, 145, 140, 135, 126, 141, 135, 140, 140, 139, 121, 139, 127, 129, 128, 141, 130, 133, 152, 145, 138, 135, 150, 144, 142, 149, 133, 140, 124, 128, 130, 133, 128, 120, 135, 137, 135, 124, 129, 130, 145, 120, 109, 133, 134, 140, 142, 118, 136, 146, 137, 131, 140, 138, 131, 122, 163, 140, 140, 137, 133, 142, 127, 138, 131, 136, 132, 143, 130, 137, 139, 134, 134, 141, 138, 137, 134, 150, 126, 134, 133, 141, 133, 130, 141, 140, 139, 134, 143, 140, 147, 144, 142, 144, 140, 132, 149, 129, 133, 138, 145, 142, 132, 147, 136, 129, 133, 150, 129, 133, 157, 135, 139, 121, 122, 126, 135, 126, 148, 138, 119, 142, 131, 155, 134, 129, 126, 130, 139, 132, 138, 107, 133, 126, 124, 149, 134, 136, 145, 143, 136, 139, 140, 138, 146, 141, 155, 140, 132, 141, 133, 136, 132, 134, 142, 153, 163, 156, 133, 143, 140, 127, 120, 137, 134, 141, 134, 147, 138, 132, 140, 137, 133, 132, 138, 134, 141, 140, 146, 131, 149, 135, 134, 131, 133, 130, 140, 135, 133, 131, 133, 147, 142, 121, 134, 161, 140, 142, 138, 136, 137, 131, 137, 131, 135, 129, 137, 143, 146, 141, 129, 137, 148, 135, 136, 133, 137, 139, 131, 137, 141, 138, 134, 140, 138, 129, 141, 133, 145, 141, 175, 144, 139, 138, 123, 135, 132, 132, 131, 137, 138, 143, 130, 137, 127, 131, 138, 135, 128, 80, 134, 131, 133, 139, 144, 125, 141, 134, 135, 133, 136, 161, 142, 139, 140, 140, 133, 132, 135, 137, 137, 137, 133, 139, 142, 130, 135, 119, 125, 134, 122, 131, 132, 137, 136, 153, 136, 132, 131, 138, 131, 136, 134, 134, 142, 135, 128, 109, 123, 132, 131, 142, 144, 134, 144, 128, 136, 138, 138, 138, 129, 123, 125, 138, 132, 138, 131, 136, 137, 125, 131, 133, 145, 129, 141, 135, 143, 121, 131, 126, 136, 133, 132, 121, 136, 136, 131, 146, 136, 144, 139, 140, 131, 131, 139, 129, 137, 138, 160, 140, 136, 131, 135, 129, 142, 129, 138, 133, 129, 160, 126, 131, 139, 142, 137, 136, 136, 138, 146, 140, 134, 121, 134, 139, 143, 136, 144, 151, 140, 137, 138, 136, 136, 141, 137, 144, 142, 127, 135, 141, 130, 127, 135, 128, 133, 135, 142, 142, 131, 137, 129, 139, 138, 135, 138, 135, 140, 141, 138, 137, 118, 135, 139, 134, 132, 128, 139, 131, 132, 139, 134, 133, 142, 100, 128, 135, 131, 136, 141, 144, 147, 135, 132, 138, 132, 128, 127, 139, 143, 137, 129, 128, 135, 138, 136, 133, 128, 136, 126, 123, 136, 132, 137, 142, 143, 121, 134, 138, 139, 142, 135, 134, 129, 135, 139, 138, 144, 135, 131, 143, 141, 139, 150, 138, 142, 144, 141, 139, 125, 138, 145, 145, 134, 138, 139, 142, 152, 137, 143, 134, 143, 135, 158, 140, 138, 149, 131, 147, 131, 137, 141, 144, 138, 143, 137, 138, 139, 142, 157, 142, 131, 128, 137, 144, 126, 136, 136, 140, 134, 134, 141, 135, 135, 137, 129, 143, 145, 134, 134, 137, 152, 137, 132, 136, 150, 131, 136, 130, 138, 141, 132, 143, 137, 130, 138, 138, 133, 143, 142, 146, 137, 132, 137, 133, 137, 135, 138, 134, 138, 132, 136, 140, 140, 140, 127, 134, 139, 140, 132, 136, 129, 133, 132, 139, 130, 127, 132, 146, 134, 144, 118, 134, 141, 131, 142, 137, 136, 136, 136, 129, 135, 135, 129, 118, 141, 141, 150, 128, 108, 128, 133, 130, 137, 131, 129, 126, 138, 133, 143, 134, 140, 141, 139, 139, 125, 146, 134, 137, 145, 126, 132, 131, 127, 135, 148, 129, 135, 138, 147, 140, 139, 144, 143, 135, 135, 137, 137, 129, 117, 122, 138, 140, 141, 140, 139, 134, 133, 122, 140, 133, 131, 140, 139, 136, 138, 134, 149, 126, 147, 167, 124, 162, 119, 144, 134, 132, 133, 126, 127, 154, 132, 149, 143, 125, 131, 127, 145, 131, 108, 136, 132, 133, 147, 132, 132, 130, 141, 130, 137, 143, 128, 129, 106, 121, 148, 141, 131, 142, 132, 130, 135, 147, 146, 144, 143, 136, 140, 143, 144, 146, 132, 118, 145, 146, 128, 137, 117, 128, 142, 132, 153, 126, 147, 146, 133, 139, 140, 132, 125, 132, 130, 130, 132, 119, 132, 137, 134, 114, 125, 123, 148, 141, 143, 144, 137, 133, 124, 141, 131, 118, 153, 140, 138, 140, 125, 125, 148, 134, 131, 137, 126, 137, 143, 128, 113, 124, 127, 138, 133, 144, 133, 135, 151, 131, 116, 152, 125, 135, 144, 134, 140, 129, 122, 133, 121, 151, 142, 138, 153, 124, 135, 126, 127, 120, 136, 146, 125, 125, 121, 137, 128, 133, 132, 138, 131, 138, 155, 143, 128, 141, 128, 145, 138, 127, 123, 126, 153, 138, 130, 139, 130, 144, 121, 137, 148, 133, 130, 131, 128, 135, 140, 132, 140, 140, 139, 130, 143, 135, 129, 131, 138, 140, 132, 132, 131, 158, 130, 146, 129, 130, 133, 145, 142, 132, 132, 120, 146, 155, 130, 111, 151, 112, 122, 138, 130, 128, 135, 146, 129, 136, 138, 134, 134, 160, 138, 127, 130, 139, 129, 128, 130, 122, 138, 119, 128, 140, 132, 142, 142, 134, 130, 128, 130, 136, 130, 144, 125, 136, 152, 151, 143, 134, 146, 142, 143, 132, 133, 140, 136, 143, 160, 130, 143, 129, 143, 141, 134, 133, 143, 132, 131, 148, 133, 133, 142, 126, 137, 129, 114, 137, 141, 124, 135, 131, 147, 132, 132, 128, 134, 131, 127, 132, 136, 126, 163, 131, 129, 148, 120, 141, 139, 130, 138, 127, 136, 139, 153, 131, 168, 145, 136, 143, 136, 122, 134, 143, 147, 137, 129, 134, 134, 146, 134, 133, 133, 137, 143, 138, 140, 135, 134, 143, 157, 129, 139, 154, 142, 139, 130, 129, 132, 122, 127, 143, 145, 142, 143, 129, 126, 123, 131, 143, 139, 136, 147, 129, 132, 127, 130, 139, 144, 149, 128, 132, 128, 146, 122, 143, 137, 139, 135, 132, 127, 127, 130, 140, 129, 144, 134, 142, 141, 137, 140, 138, 139, 137, 139, 158, 139, 129, 128, 136, 134, 149, 140, 142, 136, 150, 125, 135, 127, 132, 172, 128, 150, 115, 125, 131, 120, 139, 143, 135, 137, 127, 140, 166, 123, 136, 140, 145, 127, 123, 131, 140, 136, 150, 135, 127, 139, 129, 131, 127, 137, 135, 122, 144, 147, 149, 138, 129, 165, 117, 130, 121, 154, 139, 138, 143, 134, 144, 153, 120, 145, 141, 139, 135, 135, 149, 135, 135, 128, 133, 127, 135, 134, 135, 145, 144, 135, 132, 135, 139, 133, 135, 133, 149, 155, 130, 146, 141, 121, 155, 136, 129, 148, 139, 143, 136, 124, 123, 146, 125, 139, 142, 127, 146, 133, 129, 132, 124, 129, 129, 127, 138, 150, 121, 125, 146, 139, 146, 129, 138, 145, 149, 151, 148, 142, 138, 145, 135, 137, 140, 146, 125, 140, 143, 151, 142, 138, 143, 142, 135, 139, 133, 145, 129, 132, 121, 136, 146, 142, 141, 136, 136, 141, 133, 139, 123, 140, 144, 135, 140, 129, 131, 133, 144, 147, 146, 141, 138, 140, 137, 140, 141, 133, 126, 138, 144, 139, 134, 155, 132, 135, 135, 131, 143, 153, 136, 139, 147, 143, 151, 144, 132, 142, 135, 141, 135, 124, 138, 145, 141, 116, 139, 134, 139, 137, 142, 145, 142, 131, 128, 122, 136, 128, 144, 142, 139, 130, 141, 141, 146, 144, 136, 135, 132, 134, 143, 136, 124, 148, 128, 120, 136, 136, 133, 127, 126, 149, 143, 142, 142, 137, 106, 143, 143, 130, 130, 151, 129, 131, 142, 134, 127, 140, 140, 144, 142, 141, 139, 130, 148, 126, 142, 140, 141, 126, 124, 140, 144, 124, 136, 130, 181, 137, 132, 143, 123, 111, 125, 137, 134, 136, 139, 146, 140, 141, 143, 139, 131, 129, 131, 145, 134, 136, 154, 144, 138, 143, 132, 131, 125, 146, 137, 126, 139, 131, 132, 152, 132, 130, 125, 151, 129, 135, 128, 131, 142, 141, 137, 141, 135, 135, 129, 125, 143, 130, 147, 149, 138, 142, 125, 133, 142, 146, 148, 138, 134, 133, 138, 128, 126, 141, 145, 153, 136, 134, 133, 141, 134, 131, 150, 130, 135, 154, 153, 129, 132, 133, 133, 131, 138, 136, 127, 151, 124, 142, 135, 140, 136, 125, 138, 137, 128, 129, 134, 138, 145, 139, 122, 126, 128, 142, 137, 137, 149, 163, 135, 143, 135, 136, 135, 137, 124, 133, 133, 136, 145, 128, 128, 135, 129, 137, 132, 139, 139, 125, 142, 140, 140, 127, 124, 145, 142, 139, 143, 122, 138, 132, 134, 147, 134, 133, 148, 134, 137, 144, 140, 140, 122, 143, 138, 133, 142, 141, 137, 132, 136, 126, 131, 137, 140, 139, 140, 132, 142, 136, 145, 128, 136, 140, 154, 138, 137, 150, 133, 147, 130, 133, 135, 137, 124, 142, 134, 143, 129, 120, 132, 139, 133, 145, 135, 145, 136, 147, 144, 156, 146, 134, 142, 131, 131, 132, 136, 149, 140, 133, 148, 149, 139, 132, 142, 134, 135, 130, 135, 139, 116, 146, 151, 134, 134, 136, 138, 135, 133, 138, 130, 140, 132, 132, 116, 130, 126, 130, 141, 137, 153, 132, 133, 148, 135, 133, 128, 123, 132, 136, 144, 140, 138, 137, 140, 144, 128, 129, 145, 134, 147, 121, 125, 127, 135, 134, 132, 147, 139, 140, 134, 135, 129, 119, 151, 146, 127, 146, 127, 135, 139, 140, 145, 127, 139, 122, 147, 138, 129, 124, 135, 147, 123, 148, 146, 133, 135, 132, 142, 129, 138, 131, 136, 136, 145, 152, 138, 140, 143, 138, 127, 143, 127, 145, 141, 136, 128, 137, 140, 148, 133, 133, 131, 137, 136, 127, 122, 129, 135, 146, 139, 145, 134, 140, 134, 127, 110, 134, 134, 150, 128, 132, 139, 146, 142, 134, 148, 128, 120, 139, 131, 137, 127, 125, 124, 133, 135, 130, 141, 135, 126, 143, 129, 134, 138, 143, 136, 134, 156, 141, 120, 140, 139, 138, 117, 134, 137, 138, 132, 130, 131, 142, 123, 133, 133, 135, 155, 132, 154, 144, 139, 129, 141, 131, 134, 133, 149, 120, 136, 132, 130, 149, 133, 141, 141, 135, 134, 140, 140, 154, 140, 141, 127, 138, 137, 126, 144, 111, 138, 125, 134, 140, 122, 135, 135, 123, 141, 148, 124, 143, 134, 147, 130, 139, 133, 127, 148, 157, 145, 128, 146, 139, 135, 130, 141, 130, 137, 122, 139, 139, 125, 146, 148, 133, 139, 130, 125, 143, 138, 133, 133, 136, 137, 127, 130, 122, 147, 123, 129, 140, 136, 160, 130, 134, 149, 133, 123, 131, 136, 128, 148, 143, 142, 129, 132, 136, 143, 132, 138, 137, 134, 134, 133, 124, 148, 137, 133, 147, 135, 139, 133, 132, 133, 131, 132, 135, 139, 137, 137, 140, 128, 131, 135, 167, 144, 138, 127, 130, 135, 153, 143, 152, 134, 139, 131, 132, 134, 137, 134, 151, 140, 141, 141, 133, 129, 129, 127, 142, 128, 127, 142, 121, 123, 151, 136, 143, 132, 127, 143, 149, 132, 137, 140, 132, 135, 145, 128, 149, 139, 132, 122, 128, 127, 136, 136, 144, 136, 136, 140, 134, 144, 147, 146, 131, 132, 141, 131, 138, 138, 135, 123, 146, 161, 139, 134, 131, 129, 140, 132, 134, 129, 131, 128, 130, 131, 140, 131, 141, 130, 138, 129, 140, 124, 130, 143, 136, 146, 143, 134, 157, 137, 130, 147, 138, 134, 131, 134, 132, 131, 129, 129, 134, 145, 146, 148, 145, 122, 140, 140, 136, 142, 132, 144, 132, 124, 125, 131, 147, 135, 128, 128, 150, 129, 136, 143, 140, 138, 154, 124, 128, 139, 142, 145, 140, 132, 143, 145, 140, 136, 143, 137, 133, 133, 135, 141, 130, 134, 138, 129, 132, 133, 143, 142, 136, 145, 136, 141, 137, 140, 131, 134, 143, 136, 150, 138, 133, 145, 139, 142, 132, 140, 145, 144, 132, 137, 136, 132, 134, 135, 126, 124, 142, 132, 125, 135, 134, 120, 138, 131, 132, 130, 141, 128, 131, 139, 133, 128, 124, 131, 127, 137, 129, 119, 132, 134, 130, 153, 146, 136, 141, 136, 139, 126, 132, 130, 136, 130, 148, 142, 145, 145, 139, 134, 137, 141, 143, 130, 135, 131, 145, 134, 136, 157, 124, 142, 130, 132, 136, 146, 127, 136, 126, 127, 135, 151, 131, 155, 143, 151, 132, 135, 136, 128, 124, 129, 136, 137, 146, 128, 167, 134, 134, 126, 139, 133, 140, 142, 126, 136, 137, 134, 144, 129, 137, 126, 140, 129, 133, 142, 121, 142, 115, 140, 132, 151, 154, 143, 144, 127, 135, 134, 133, 115, 134, 140, 137, 138, 118, 135, 127, 130, 147, 136, 133, 131, 134, 148, 136, 138, 140, 131, 133, 129, 126, 143, 130, 134, 132, 137, 131, 140, 127, 142, 131, 134, 133, 134, 130, 129, 159, 123, 140, 133, 141, 132, 139, 135, 121, 129, 138, 131, 144, 135, 128, 125, 128, 130, 134, 133, 136, 140, 125, 142, 133, 135, 130, 151, 135, 134, 125, 121, 147, 124, 130, 130, 139, 141, 146, 125, 134, 135, 128, 135, 128, 138, 133, 129, 154, 121, 125, 125, 127, 126, 146, 153, 138, 138, 126, 134, 135, 133, 133, 146, 124, 142, 148, 144, 128, 146, 131, 133, 144, 122, 130, 134, 137, 119, 140, 147, 128, 134, 144, 130, 147, 128, 138, 120, 148, 128, 151, 142, 132, 148, 129, 136, 130, 130, 122, 139, 134, 139, 129, 144, 134, 124, 125, 139, 123, 139, 117, 122, 134, 138, 130, 146, 129, 139, 134, 146, 127, 129, 125, 134, 135, 130, 130, 131, 128, 155, 115, 127, 132, 138, 136, 132, 135, 134, 130, 152, 148, 130, 132, 143, 130, 125, 125, 115, 125, 138, 139, 134, 133, 117, 146, 133, 138, 135, 142, 143, 148, 129, 129, 125, 159, 139, 131, 142, 134, 149, 138, 146, 145, 128, 120, 131, 130, 147, 142, 136, 133, 136, 151, 127, 137, 125, 142, 133, 144, 137, 119, 136, 125, 133, 125, 139, 139, 139, 129, 151, 126, 135, 130, 136, 142, 131, 146, 128, 128, 129, 111, 143, 138, 122, 128, 136, 115, 127, 122, 130, 119, 148, 131, 135, 131, 143, 149, 125, 135, 123, 129, 139, 138, 140, 135, 139, 126, 132, 124, 140, 126, 132, 147, 133, 136, 130, 132, 129, 125, 138, 130, 140, 134, 145, 131, 130, 145, 135, 126, 135, 142, 139, 144, 124, 168, 135, 147, 122, 159, 132, 148, 138, 144, 136, 136, 128, 152, 134, 136, 164, 148, 132, 135, 151, 128, 129, 139, 122, 135, 145, 113, 142, 141, 152, 124, 144, 134, 147, 142, 131, 133, 124, 150, 140, 120, 127, 133, 125, 128, 129, 141, 136, 141, 130, 138, 124, 137, 126, 143, 141, 137, 132, 125, 146, 138, 129, 138, 126, 130, 124, 135, 134, 134, 150, 137, 155, 139, 153, 123, 143, 152, 131, 143, 130, 135, 128, 125, 122, 132, 131, 120, 137, 143, 133, 127, 136, 144, 128, 132, 136, 124, 147, 136, 144, 149, 133, 119, 149, 140, 151, 137, 126, 128, 145, 128, 162, 131, 120, 138, 130, 134, 129, 135, 136, 151, 137, 142, 146, 129, 142, 141, 145, 171, 120, 140, 135, 134, 140, 129, 140, 148, 142, 131, 145, 139, 131, 139, 152, 134, 124, 134, 136, 140, 142, 130, 124, 128, 138, 135, 137, 123, 147, 135, 120, 140, 133, 140, 128, 132, 140, 132, 138, 136, 142, 131, 140, 136, 149, 128, 141, 145, 130, 125, 117, 139, 134, 132, 135, 134, 128, 129, 127, 132, 124, 137, 134, 123, 132, 139, 137, 138, 130, 126, 143, 135, 124, 115, 130, 115, 142, 134, 131, 135, 132, 136, 130, 127, 136, 123, 133, 147, 130, 152, 147, 130, 150, 135, 134, 137, 135, 132, 117, 136, 135, 136, 142, 146, 126, 134, 129, 133, 124, 162, 141, 150, 134, 130, 141, 131, 130, 137, 136, 155, 135, 145, 146, 136, 124, 143, 130, 145, 129, 128, 136, 147, 141, 132, 127, 120, 144, 134, 128, 132, 145, 129, 125, 136, 142, 131, 130, 135, 142, 138, 147, 129, 128, 137, 123, 154, 128, 140, 144, 139, 140, 129, 142, 150, 132, 126, 126, 136, 112, 128, 131, 133, 145, 125, 129, 130, 131, 135, 143, 128, 144, 138, 135, 133, 135, 138, 127, 138, 149, 142, 127, 140, 115, 115, 141, 132, 152, 129, 125, 124, 133, 154, 148, 133, 141, 130, 141, 128, 127, 149, 127, 139, 123, 126, 135, 132, 142, 128, 128, 141, 128, 132, 139, 140, 145, 138, 123, 132, 148, 141, 130, 140, 143, 126, 134, 155, 134, 150, 138, 130, 139, 136, 149, 139, 124, 132, 137, 133, 141, 125, 139, 123, 148, 126, 144, 137, 137, 132, 142, 140, 128, 140, 142, 143, 143, 117, 151, 125, 118, 132, 151, 136, 140, 148, 132, 124, 133, 139, 143, 132, 138, 138, 121, 130, 125, 143, 138, 150, 113, 141, 126, 140, 131, 125, 138, 128, 133, 128, 135, 139, 130, 143, 132, 146, 124, 120, 141, 120, 151, 139, 136, 138, 135, 133, 132, 138, 140, 130, 123, 135, 120, 132, 133, 148, 121, 119, 142, 135, 136, 159, 145, 136, 118, 139, 142, 130, 148, 127, 129, 132, 119, 137, 147, 136, 130, 132, 147, 134, 137, 154, 140, 133, 137, 140, 123, 140, 146, 129, 136, 120, 143, 124, 136, 122, 157, 136, 126, 136, 122, 122, 134, 131, 131, 136, 123, 147, 144, 121, 135, 140, 128, 124, 135, 127, 133, 132, 136, 130, 124, 157, 103, 136, 131, 141, 115, 134, 142, 138, 148, 143, 132, 137, 122, 124, 139, 130, 139, 128, 138, 144, 139, 143, 143, 139, 138, 158, 135, 146, 146, 152, 141, 146, 153, 154, 133, 130, 145, 129, 166, 130, 148, 146, 127, 138, 135, 143, 131, 145, 139, 142, 135, 126, 139, 125, 153, 145, 149, 139, 135, 122, 145, 128, 124, 139, 141, 141, 134, 136, 141, 137, 169, 148, 141, 134, 142, 132, 135, 139, 136, 151, 128, 151, 148, 130, 150, 147, 130, 139, 148, 136, 151, 142, 122, 139, 143, 128, 129, 137, 155, 145, 138, 130, 121, 140, 141, 123, 125, 142, 128, 130, 134, 142, 147, 143, 128, 129, 144, 135, 156, 139, 141, 132, 134, 145, 123, 134, 136, 145, 126, 139, 126, 146, 133, 127, 127, 123, 131, 124, 131, 145, 134, 138, 125, 141, 136, 131, 131, 123, 127, 134, 131, 132, 130, 144, 156, 135, 142, 150, 133, 139, 159, 134, 126, 135, 137, 156, 148, 133, 128, 142, 124, 126, 128, 133, 140, 129, 125, 136, 122, 133, 134, 126, 126, 120, 135, 128, 134, 116, 126, 156, 146, 141, 148, 143, 133, 137, 124, 127, 138, 138, 130, 131, 136, 146, 135, 151, 128, 135, 133, 145, 136, 137, 115, 128, 139, 132, 140, 140, 151, 142, 131, 139, 131, 139, 135, 132, 131, 144, 131, 147, 140, 128, 142, 138, 140, 142, 132, 137, 127, 140, 142, 135, 142, 136, 135, 132, 130, 136, 146, 134, 128, 164, 122, 142, 146, 136, 143, 135, 130, 144, 147, 145, 131, 135, 138, 128, 125, 129, 131, 138, 141, 141, 153, 137, 128, 132, 137, 135, 137, 132, 129, 133, 135, 132, 129, 138, 125, 130, 128, 132, 126, 144, 130, 152, 125, 133, 138, 142, 137, 139, 144, 130, 150, 126, 131, 145, 131, 139, 148, 140, 148, 147, 143, 147, 126, 126, 136, 139, 139, 139, 144, 139, 152, 142, 132, 136, 141, 131, 138, 156, 130, 138, 137, 145, 137, 137, 147, 129, 126, 140, 136, 159, 120, 132, 131, 142, 143, 129, 136, 126, 148, 144, 132, 129, 140, 125, 137, 144, 139, 125, 147, 137, 139, 138, 133, 131, 125, 138, 125, 138, 134, 147, 143, 134, 138, 132, 129, 148, 142, 137, 128, 142, 143, 116, 144, 134, 130, 131, 143, 137, 124, 132, 136, 118, 114, 153, 144, 134, 143, 138, 137, 125, 137, 142, 126, 137, 131, 133, 127, 133, 130, 148, 137, 123, 138, 144, 132, 138, 136, 135, 130, 137, 134, 136, 131, 144, 128, 142, 124, 138, 136, 132, 147, 127, 138, 151, 140, 131, 159, 145, 144, 147, 130, 150, 167, 118, 135, 136, 132, 142, 136, 144, 130, 144, 128, 119, 139, 135, 135, 125, 136, 143, 131, 135, 154, 128, 137, 124, 142, 147, 146, 144, 137, 122, 143, 140, 147, 130, 138, 130, 134, 138, 133, 134, 147, 136, 133, 126, 138, 147, 135, 124, 124, 116, 125, 135, 143, 122, 130, 130, 136, 142, 135, 129, 137, 126, 135, 134, 124, 143, 122, 130, 147, 142, 143, 138, 139, 156, 122, 137, 133, 136, 133, 157, 133, 141, 139, 119, 137, 127, 144, 140, 136, 134, 134, 136, 136, 130, 126, 134, 151, 165, 125, 135, 143, 135, 135, 126, 146, 126, 137, 136, 133, 143, 120, 129, 123, 139, 134, 122, 135, 150, 129, 136, 125, 131, 136, 146, 148, 144, 163, 113, 139, 131, 126, 143, 144, 144, 138, 119, 124, 135, 152, 138, 139, 142, 137, 137, 130, 140, 128, 137, 141, 155, 132, 131, 129, 128, 139, 131, 162, 134, 112, 134, 139, 127, 138, 139, 136, 129, 122, 126, 135, 138, 132, 141, 144, 136, 136, 135, 125, 141, 129, 133, 139, 122, 138, 126, 143, 131, 138, 134, 138, 149, 135, 136, 131, 127, 143, 156, 138, 143, 139, 135, 141, 140, 133, 124, 141, 141, 99, 138, 133, 133, 135, 136, 116, 128, 120, 128, 134, 120, 128, 126, 134, 128, 139, 134, 131, 127, 138, 137, 142, 146, 136, 134, 141, 148, 154, 143, 141, 139, 143, 135, 127, 129, 140, 162, 133, 136, 142, 142, 153, 131, 123, 120, 151, 136, 130, 138, 140, 132, 130, 139, 135, 146, 131, 144, 135, 134, 124, 129, 129, 116, 152, 131, 134, 138, 141, 143, 142, 138, 138, 147, 131, 135, 134, 135, 142, 139, 135, 128, 138, 133, 136, 128, 134, 133, 136, 147, 133, 118, 142, 146, 140, 133, 133, 142, 136, 137, 124, 135, 146, 141, 144, 136, 129, 144, 136, 121, 138, 139, 133, 135, 167, 143, 133, 156, 144, 135, 141, 132, 140, 142, 137, 145, 131, 133, 136, 139, 137, 123, 133, 126, 142, 156, 141, 149, 137, 138, 149, 117, 137, 124, 131, 133, 138, 131, 128, 146, 148, 116, 145, 132, 126, 144, 139, 160, 147, 132, 141, 149, 127, 124, 135, 134, 149, 131, 141, 134, 141, 134, 144, 124, 145, 132, 130, 140, 122, 133, 122, 136, 150, 131, 133, 134, 133, 161, 130, 138, 151, 135, 127, 140, 133, 130, 138, 139, 149, 125, 125, 145, 141, 127, 123, 138, 134, 143, 131, 149, 134, 137, 140, 138, 129, 144, 116, 132, 124, 124, 132, 144, 127, 133, 136, 125, 147, 128, 121, 143, 137, 141, 136, 122, 144, 137, 122, 126, 139, 145, 143, 142, 132, 159, 150, 131, 142, 127, 164, 128, 119, 126, 145, 132, 143, 121, 125, 134, 150, 128, 126, 126, 135, 125, 119, 131, 131, 144, 131, 123, 146, 134, 141, 125, 133, 139, 121, 139, 143, 143, 135, 154, 135, 128, 127, 146, 144, 134, 126, 130, 131, 139, 135, 146, 146, 123, 137, 156, 132, 137, 132, 146, 136, 128, 122, 137, 128, 135, 143, 138, 149, 132, 126, 144, 129, 116, 147, 135, 134, 118, 131, 153, 123, 141, 120, 148, 139, 133, 145, 138, 136, 146, 123, 134, 139, 132, 138, 134, 136, 123, 135, 134, 132, 126, 149, 129, 148, 140, 141, 142, 131, 141, 127, 131, 136, 120, 137, 126, 136, 135, 121, 139, 147, 124, 133, 130, 140, 125, 130, 144, 129, 127, 140, 143, 145, 134, 135, 145, 131, 154, 128, 123, 141, 142, 141, 136, 122, 134, 130, 144, 124, 140, 121, 144, 125, 141, 136, 145, 142, 117, 132, 122, 144, 138, 130, 130, 130, 150, 141, 134, 143, 134, 118, 127, 137, 121, 126, 117, 129, 149, 146, 136, 148, 126, 131, 132, 123, 152, 138, 140, 128, 131, 129, 124, 127, 130, 126, 140, 122, 135, 136, 134, 139, 146, 130, 135, 122, 129, 133, 132, 129, 131, 143, 139, 136, 143, 133, 157, 127, 131, 132, 120, 140, 149, 128, 122, 145, 133, 123, 132, 129, 138, 144, 141, 124, 112, 150, 139, 149, 132, 123, 133, 142, 122, 128, 134, 140, 142, 129, 133, 139, 138, 135, 140, 143, 123, 128, 147, 121, 144, 150, 127, 139, 134, 153, 143, 140, 137, 129, 119, 137, 132, 129, 134, 134, 137, 144, 143, 130, 130, 150, 153, 146, 135, 131, 144, 140, 127, 137, 131, 135, 133, 144, 133, 131, 137, 126, 137, 145, 113, 133, 139, 145, 143, 141, 131, 134, 137, 133, 125, 134, 123, 135, 145, 130, 132, 159, 119, 141, 142, 135, 144, 130, 135, 138, 133, 139, 138, 128, 125, 138, 139, 135, 146, 128, 129, 145, 136, 160, 136, 134, 159, 132, 135, 140, 143, 128, 129, 134, 140, 128, 136, 149, 122, 141, 142, 136, 131, 149, 146, 134, 137, 133, 147, 146, 143, 137, 144, 137, 133, 127, 133, 143, 127, 137, 142, 142, 140, 128, 133, 155, 150, 129, 132, 131, 134, 141, 128, 149, 134, 137, 125, 146, 136, 132, 126, 117, 129, 147, 153, 150, 127, 130, 127, 126, 135, 135, 134, 138, 133, 138, 144, 134, 144, 136, 124, 124, 145, 135, 128, 132, 130, 135, 127, 128, 144, 137, 137, 130, 120, 140, 146, 136, 153, 134, 139, 127, 140, 143, 141, 148, 123, 129, 124, 129, 128, 127, 135, 139, 143, 139, 131, 128, 123, 133, 138, 130, 134, 147, 153, 136, 137, 143, 144, 145, 133, 133, 135, 138, 141, 129, 130, 131, 131, 133, 136, 121, 142, 129, 135, 135, 135, 152, 151, 140, 141, 146, 144, 128, 156, 134, 152, 124, 141, 136, 142, 134, 144, 136, 130, 126, 139, 125, 133, 126, 149, 138, 140, 129, 144, 139, 135, 133, 135, 126, 117, 156, 104, 121, 137, 157, 157, 138, 131, 130, 140, 146, 136, 132, 139, 141, 133, 140, 143, 129, 134, 149, 146, 123, 137, 148, 144, 130, 132, 140, 135, 112, 139, 128, 137, 127, 141, 140, 135, 140, 132, 134, 133, 141, 138, 128, 128, 134, 127, 137, 130, 144, 138, 134, 139, 152, 135, 148, 131, 121, 142, 129, 131, 133, 141, 137, 141, 137, 142, 139, 119, 134, 142, 137, 135, 130, 127, 144, 134, 130, 137, 149, 143, 124, 129, 137, 142, 141, 140, 130, 133, 140, 138, 131, 130, 141, 140, 135, 147, 135, 142, 127, 134, 132, 131, 133, 116, 148, 127, 116, 126, 128, 146, 123, 130, 144, 134, 140, 140, 133, 131, 145, 137, 131, 139, 120, 136, 151, 140, 156, 114, 146, 124, 138, 132, 134, 138, 161, 137, 135, 140, 152, 140, 128, 143, 127, 147, 143, 154, 149, 141, 129, 170, 130, 132, 137, 129, 133, 122, 132, 145, 135, 135, 130, 138, 136, 139, 153, 133, 140, 128, 148, 131, 135, 152, 147, 129, 147, 132, 119, 138, 144, 140, 124, 139, 133, 135, 137, 144, 148, 133, 133, 148, 137, 135, 141, 125, 132, 152, 132, 130, 142, 152, 159, 128, 127, 135, 138, 134, 143, 137, 143, 130, 138, 124, 136, 141, 130, 149, 139, 125, 152, 141, 130, 134, 134, 144, 124, 134, 138, 134, 142, 138, 138, 128, 135, 138, 144, 136, 131, 141, 123, 120, 130, 131, 127, 144, 132, 145, 141, 132, 132, 151, 146, 150, 142, 139, 139, 134, 146, 133, 133, 136, 138, 141, 139, 143, 134, 132, 138, 146, 143, 126, 137, 133, 142, 151, 128, 149, 139, 132, 129, 134, 152, 134, 126, 150, 140, 136, 145, 136, 133, 139, 135, 145, 143, 134, 133, 126, 144, 131, 124, 138, 143, 128, 130, 123, 134, 130, 150, 138, 132, 135, 125, 129, 126, 128, 137, 139, 135, 127, 146, 141, 139, 155, 141, 137, 132, 122, 107, 132, 140, 126, 135, 127, 132, 132, 144, 128, 135, 126, 138, 141, 138, 127, 143, 135, 143, 129, 127, 136, 147, 110, 139, 149, 130, 143, 144, 133, 130, 132, 129, 144, 139, 132, 142, 134, 119, 119, 136, 130, 136, 131, 130, 123, 130, 129, 131, 132, 134, 138, 124, 158, 134, 150, 136, 152, 135, 129, 131, 134, 119, 132, 134, 144, 129, 137, 137, 134, 137, 147, 130, 126, 134, 129, 137, 137, 141, 134, 143, 140, 131, 137, 136, 133, 138, 131, 123, 125, 140, 146, 137, 120, 148, 142, 143, 105, 138, 140, 139, 150, 138, 135, 132, 137, 147, 134, 131, 146, 140, 134, 151, 153, 134, 129, 124, 135, 145, 131, 128, 153, 133, 147, 128, 124, 141, 141, 129, 135, 135, 146, 141, 139, 139, 157, 136, 127, 129, 137, 142, 141, 127, 134, 151, 138, 148, 140, 154, 138, 133, 139, 130, 163, 167, 138, 167, 132, 130, 143, 130, 130, 139, 136, 141, 129, 144, 126, 142, 120, 128, 136, 135, 149, 138, 129, 143, 124, 133, 135, 139, 139, 143, 132, 136, 138, 132, 135, 133, 149, 127, 139, 134, 139, 132, 159, 120, 141, 132, 124, 147, 152, 120, 128, 134, 132, 144, 131, 127, 151, 142, 141, 131, 135, 134, 122, 136, 145, 124, 142, 132, 127, 131, 127, 133, 135, 127, 135, 128, 134, 126, 133, 131, 130, 136, 143, 126, 144, 132, 141, 149, 131, 131, 143, 137, 142, 146, 136, 132, 114, 135, 118, 132, 137, 141, 146, 123, 150, 136, 136, 151, 121, 140, 139, 145, 136, 146, 128, 132, 140, 142, 132, 142, 127, 145, 154, 156, 139, 153, 139, 140, 138, 137, 141, 138, 146, 142, 126, 142, 122, 135, 129, 147, 147, 125, 143, 139, 121, 122, 140, 132, 132, 131, 134, 128, 142, 132, 140, 137, 134, 130, 141, 128, 143, 131, 154, 129, 132, 136, 147, 138, 133, 131, 125, 129, 138, 135, 125, 139, 135, 132, 149, 152, 126, 145, 126, 128, 141, 140, 132, 141, 122, 129, 131, 143, 147, 128, 138, 132, 139, 143, 142, 139, 128, 141, 139, 135, 114, 129, 134, 130, 130, 138, 119, 141, 134, 127, 150, 145, 137, 129, 139, 135, 135, 139, 126, 137, 147, 144, 141, 134, 130, 142, 118, 131, 139, 135, 136, 133, 132, 134, 150, 135, 136, 143, 154, 140, 144, 130, 155, 155, 158, 128, 134, 130, 144, 131, 125, 137, 135, 147, 127, 145, 143, 140, 139, 123, 135, 133, 139, 131, 136, 136, 129, 150, 136, 130, 139, 125, 150, 139, 130, 129, 134, 137, 144, 138, 137, 135, 138, 142, 124, 144, 127, 143, 137, 140, 139, 142, 144, 131, 140, 135, 132, 147, 133, 128, 136, 147, 144, 123, 141, 131, 130, 131, 133, 145, 133, 147, 143, 136, 125, 139, 150, 134, 134, 136, 132, 118, 124, 121, 146, 147, 131, 129, 139, 150, 123, 145, 130, 144, 126, 142, 134, 135, 139, 138, 133, 143, 130, 137, 138, 143, 134, 139, 140, 120, 145, 132, 138, 113, 142, 126, 144, 135, 138, 135, 141, 132, 134, 153, 117, 136, 133, 138, 155, 143, 130, 134, 143, 130, 148, 138, 131, 136, 137, 138, 142, 129, 127, 150, 146, 142, 146, 124, 132, 127, 144, 138, 140, 141, 123, 137, 133, 147, 137, 145, 140, 144, 137, 137, 131, 135, 131, 119, 141, 136, 138, 125, 149, 118, 145, 163, 135, 143, 132, 127, 150, 142, 140, 138, 148, 138, 135, 136, 141, 147, 142, 138, 142, 130, 118, 140, 147, 135, 161, 123, 113, 110, 132, 109, 132, 143, 117, 138, 131, 140, 147, 136, 137, 138, 131, 137, 137, 141, 123, 147, 137, 142, 141, 135, 115, 144, 145, 140, 141, 143, 137, 130, 135, 142, 139, 130, 127, 149, 127, 131, 149, 126, 125, 126, 123, 126, 158, 149, 129, 128, 152, 133, 148, 125, 111, 131, 124, 146, 122, 132, 123, 136, 163, 122, 140, 126, 160, 141, 158, 128, 127, 119, 141, 124, 125, 138, 145, 137, 142, 168, 148, 129, 132, 133, 123, 152, 137, 135, 144, 136, 150, 146, 124, 140, 151, 141, 127, 116, 141, 171, 123, 131, 139, 119, 149, 118, 124, 128, 146, 144, 128, 106, 140, 136, 138, 138, 129, 132, 137, 134, 133, 136, 140, 137, 139, 146, 137, 146, 131, 121, 148, 152, 135, 130, 143, 147, 136, 131, 131, 127, 138, 133, 147, 118, 117, 128, 124, 132, 146, 152, 138, 130, 148, 140, 142, 113, 141, 141, 132, 121, 147, 137, 137, 140, 173, 127, 148, 139, 114, 152, 130, 173, 135, 126, 138, 116, 128, 127, 145, 139, 180, 141, 130, 136, 125, 135, 138, 143, 135, 132, 143, 144, 139, 139, 135, 131, 139, 124, 155, 133, 137, 133, 133, 130, 130, 130, 128, 122, 130, 137, 150, 136, 137, 139, 135, 122, 152, 136, 138, 139, 140, 148, 130, 129, 135, 148, 135, 189, 132, 134, 143, 142, 173, 159, 143, 139, 132, 146, 143, 113, 141, 115, 140, 139, 182, 135, 135, 134, 121, 133, 130, 135, 149, 137, 120, 138, 139, 135, 145, 156, 140, 137, 145, 133, 146, 132, 138, 132, 125, 138, 136, 128, 126, 125, 136, 132, 126, 139, 145, 132, 153, 137, 132, 129, 136, 138, 143, 133, 136, 123, 132, 133, 147, 130, 156, 126, 126, 138, 131, 133, 153, 116, 131, 136, 129, 133, 131, 146, 123, 158, 139, 140, 140, 139, 129, 133, 135, 145, 133, 127, 141, 138, 137, 136, 128, 137, 137, 144, 155, 142, 127, 128, 134, 133, 139, 130, 140, 132, 128, 141, 142, 137, 122, 138, 143, 141, 128, 128, 137, 125, 128, 130, 150, 140, 140, 132, 125, 124, 134, 144, 139, 132, 159, 129, 145, 137, 136, 143, 132, 130, 135, 127, 154, 130, 140, 131, 161, 132, 141, 142, 136, 125, 146, 145, 134, 126, 142, 140, 152, 136, 126, 123, 130, 126, 146, 109, 126, 140, 136, 130, 137, 137, 171, 135, 138, 134, 110, 155, 138, 148, 136, 158, 125, 110, 127, 137, 150, 138, 141, 133, 139, 134, 118, 125, 128, 135, 126, 123, 137, 143, 150, 144, 142, 121, 152, 157, 137, 134, 124, 140, 155, 141, 138, 143, 140, 139, 125, 127, 130, 141, 147, 134, 120, 127, 138, 155, 128, 129, 120, 153, 130, 127, 140, 147, 129, 126, 129, 135, 140, 146, 136, 137, 130, 139, 126, 130, 115, 131, 122, 133, 118, 129, 142, 134, 128, 130, 149, 136, 139, 114, 134, 142, 152, 152, 135, 129, 120, 125, 128, 121, 154, 140, 124, 129, 141, 140, 129, 125, 142, 132, 119, 137, 137, 107, 157, 127, 137, 145, 153, 141, 146, 139, 123, 150, 144, 135, 140, 144, 138, 132, 129, 118, 124, 138, 153, 141, 148, 136, 143, 130, 137, 138, 139, 137, 129, 128, 138, 140, 142, 138, 140, 139, 130, 127, 143, 137, 145, 141, 130, 144, 131, 137, 132, 140, 119, 139, 129, 146, 130, 141, 107, 146, 120, 139, 145, 136, 132, 128, 128, 120, 144, 138, 135, 140, 131, 146, 123, 141, 147, 134, 133, 117, 139, 124, 148, 130, 147, 138, 129, 158, 124, 140, 129, 121, 149, 127, 136, 136, 141, 131, 134, 124, 114, 143, 136, 134, 133, 133, 140, 135, 126, 125, 138, 136, 122, 127, 130, 131, 137, 152, 150, 137, 145, 130, 135, 145, 140, 138, 125, 138, 134, 136, 141, 127, 142, 139, 136, 150, 136, 136, 135, 152, 139, 127, 127, 144, 142, 144, 132, 140, 142, 136, 137, 133, 123, 138, 130, 140, 162, 125, 121, 143, 141, 134, 141, 136, 169, 140, 135, 129, 131, 132, 135, 124, 126, 144, 131, 118, 144, 147, 121, 129, 150, 150, 132, 148, 150, 140, 145, 116, 146, 130, 133, 143, 134, 137, 149, 122, 149, 130, 139, 135, 128, 129, 143, 160, 127, 126, 137, 148, 124, 141, 144, 136, 144, 153, 109, 139, 131, 132, 131, 145, 129, 126, 144, 125, 119, 135, 144, 146, 138, 149, 127, 140, 133, 141, 132, 122, 129, 147, 134, 134, 151, 132, 146, 140, 144, 143, 129, 129, 147, 128, 147, 132, 137, 144, 135, 137, 131, 127, 128, 139, 145, 117, 159, 139, 138, 126, 132, 140, 142, 126, 130, 153, 144, 150, 124, 136, 136, 136, 114, 138, 130, 139, 152, 125, 148, 134, 120, 123, 123, 124, 121, 140, 134, 141, 140, 138, 136, 146, 145, 151, 132, 143, 146, 134, 139, 126, 121, 135, 128, 130, 133, 123, 143, 132, 129, 130, 134, 144, 138, 137, 126, 154, 133, 132, 127, 138, 136, 136, 130, 140, 149, 131, 121, 123, 128, 123, 135, 134, 143, 131, 143, 137, 140, 116, 132, 154, 133, 146, 138, 146, 148, 154, 135, 144, 130, 143, 119, 133, 144, 147, 144, 126, 140, 128, 128, 130, 146, 164, 130, 135, 134, 146, 144, 130, 136, 121, 132, 135, 140, 144, 145, 152, 128, 137, 133, 133, 146, 132, 127, 155, 120, 138, 131, 139, 131, 121, 143, 134, 141, 128, 151, 139, 133, 142, 131, 153, 143, 131, 128, 127, 114, 134, 153, 150, 143, 124, 138, 123, 146, 150, 120, 137, 135, 129, 126, 130, 160, 166, 136, 125, 128, 140, 136, 132, 132, 140, 128, 138, 150, 137, 137, 143, 134, 148, 139, 113, 131, 128, 152, 133, 139, 140, 149, 122, 136, 132, 145, 126, 153, 119, 130, 127, 136, 114, 122, 125, 123, 138, 129, 155, 144, 133, 140, 144, 137, 149, 148, 128, 127, 144, 136, 135, 138, 133, 125, 131, 123, 137, 139, 129, 150, 132, 136, 136, 130, 116, 148, 136, 129, 148, 136, 131, 144, 144, 139, 128, 125, 129, 136, 131, 130, 139, 146, 136, 138, 136, 143, 140, 144, 139, 129, 137, 134, 143, 154, 141, 143, 128, 132, 138, 130, 129, 135, 147, 131, 132, 143, 132, 136, 146, 141, 136, 125, 144, 131, 141, 131, 121, 130, 154, 136, 140, 133, 132, 133, 139, 130, 131, 133, 131, 159, 132, 132, 121, 144, 136, 126, 150, 137, 151, 125, 131, 126, 146, 144, 131, 140, 140, 136, 134, 127, 138, 143, 128, 136, 148, 134, 134, 134, 133, 148, 132, 140, 129, 123, 133, 133, 134, 131, 134, 131, 135, 138, 132, 137, 134, 154, 145, 129, 134, 135, 133, 125, 135, 123, 138, 138, 135, 135, 143, 135, 127, 140, 121, 131, 133, 132, 140, 134, 126, 128, 128, 133, 140, 141, 152, 138, 135, 144, 139, 129, 130, 140, 157, 138, 143, 136, 142, 138, 130, 134, 141, 137, 133, 142, 136, 132, 125, 151, 132, 133, 131, 125, 147, 132, 129, 131, 131, 131, 135, 138, 140, 142, 131, 135, 136, 127, 139, 129, 127, 133, 131, 114, 121, 140, 130, 142, 140, 137, 134, 149, 134, 133, 135, 132, 136, 150, 133, 127, 135, 130, 134, 147, 142, 117, 132, 134, 128, 149, 133, 148, 138, 137, 134, 143, 132, 136, 140, 138, 141, 138, 142, 146, 132, 131, 137, 129, 125, 124, 133, 127, 146, 134, 129, 129, 140, 118, 131, 141, 131, 138, 155, 132, 127, 143, 139, 136, 125, 144, 133, 153, 134, 129, 128, 136, 147, 143, 128, 135, 125, 128, 118, 153, 136, 135, 136, 126, 122, 142, 114, 145, 133, 143, 147, 104, 129, 144, 130, 133, 128, 133, 115, 139, 147, 111, 135, 138, 132, 143, 132, 141, 135, 144, 133, 136, 140, 131, 142, 139, 148, 131, 135, 130, 129, 132, 133, 141, 138, 141, 142, 142, 135, 132, 131, 133, 137, 142, 144, 135, 139, 133, 141, 132, 129, 135, 123, 143, 127, 115, 137, 139, 128, 133, 130, 150, 142, 153, 130, 135, 129, 133, 137, 103, 127, 146, 125, 123, 116, 134, 134, 127, 129, 146, 141, 136, 138, 145, 138, 137, 124, 134, 147, 126, 144, 147, 137, 144, 140, 126, 127, 120, 139, 127, 148, 152, 142, 132, 133, 151, 126, 143, 132, 137, 143, 139, 129, 139, 151, 134, 149, 141, 130, 130, 145, 130, 139, 114, 135, 146, 141, 130, 142, 130, 129, 129, 128, 139, 144, 136, 136, 143, 143, 136, 134, 130, 127, 160, 134, 140, 134, 129, 111, 142, 139, 133, 130, 139, 133, 130, 136, 139, 137, 129, 134, 144, 141, 148, 146, 131, 142, 138, 128, 139, 128, 122, 142, 136, 136, 125, 139, 137, 133, 132, 143, 121, 132, 141, 140, 114, 133, 134, 135, 137, 129, 131, 117, 144, 138, 131, 136, 128, 138, 150, 117, 132, 126, 127, 136, 130, 143, 143, 143, 125, 131, 136, 133, 143, 123, 132, 123, 131, 133, 142, 159, 141, 139, 140, 131, 139, 133, 137, 143, 140, 143, 146, 139, 137, 130, 135, 130, 140, 121, 135, 142, 142, 131, 134, 145, 126, 142, 118, 129, 138, 140, 142, 132, 141, 135, 139, 130, 143, 152, 133, 133, 131, 141, 140, 126, 127, 136, 152, 128, 134, 130, 136, 138, 136, 131, 140, 135, 143, 140, 137, 131, 135, 141, 137, 139, 146, 129, 135, 135, 135, 164, 120, 135, 145, 120, 139, 138, 138, 133, 133, 142, 146, 146, 126, 150, 143, 127, 131, 157, 139, 141, 141, 144, 133, 142, 142, 123, 136, 120, 141, 131, 147, 147, 138, 136, 157, 134, 127, 108, 140, 140, 151, 147, 143, 137, 136, 133, 136, 127, 150, 141, 128, 123, 139, 129, 131, 143, 155, 132, 138, 132, 140, 138, 131, 141, 128, 124, 136, 142, 135, 133, 135, 130, 137, 129, 142, 141, 138, 130, 161, 132, 132, 147, 133, 138, 155, 129, 129, 129, 140, 139, 129, 128, 134, 148, 147, 129, 135, 138, 122, 127, 144, 134, 146, 130, 126, 136, 131, 143, 136, 143, 123, 134, 132, 128, 131, 143, 138, 129, 139, 135, 142, 139, 141, 130, 129, 132, 144, 145, 138, 133, 135, 135, 137, 133, 124, 133, 157, 138, 125, 117, 133, 124, 144, 149, 132, 136, 134, 123, 138, 156, 90, 137, 138, 135, 144, 123, 136, 138, 142, 143, 138, 133, 138, 132, 149, 132, 133, 133, 137, 126, 120, 131, 131, 140, 120, 128, 137, 135, 134, 148, 131, 126, 139, 134, 136, 154, 129, 129, 140, 130, 135, 141, 133, 143, 138, 139, 141, 136, 120, 138, 136, 133, 138, 130, 120, 133, 134, 142, 126, 137, 113, 140, 143, 137, 128, 139, 131, 148, 134, 144, 136, 135, 132, 138, 130, 131, 146, 134, 132, 135, 131, 135, 142, 128, 140, 136, 147, 141, 146, 143, 136, 131, 137, 140, 132, 120, 126, 140, 140, 133, 144, 113, 133, 130, 135, 133, 137, 138, 127, 135, 131, 133, 138, 127, 127, 140, 146, 143, 145, 139, 138, 142, 140, 130, 134, 138, 135, 137, 154, 130, 144, 149, 120, 134, 139, 135, 132, 137, 142, 140, 137, 134, 141, 129, 136, 119, 127, 138, 138, 126, 118, 123, 132, 127, 102, 124, 137, 137, 141, 151, 130, 137, 141, 109, 111, 148, 138, 129, 139, 141, 133, 143, 134, 129, 135, 136, 142, 140, 134, 138, 131, 135, 133, 125, 132, 133, 150, 135, 132, 159, 128, 142, 128, 140, 143, 156, 139, 141, 136, 134, 141, 134, 131, 122, 120, 147, 138, 125, 137, 138, 130, 139, 145, 144, 132, 136, 132, 137, 135, 139, 139, 138, 130, 134, 138, 135, 124, 139, 130, 137, 137, 126, 143, 143, 130, 148, 131, 136, 125, 135, 124, 128, 138, 153, 145, 137, 131, 140, 129, 140, 132, 135, 126, 139, 129, 134, 137, 145, 132, 138, 132, 131, 137, 126, 148, 141, 128, 138, 146, 129, 138, 125, 136, 147, 135, 135, 138, 136, 139, 135, 135, 135, 140, 134, 135, 141, 139, 127, 140, 138, 121, 137, 140, 155, 108, 128, 131, 131, 141, 138, 143, 134, 136, 126, 129, 132, 152, 132, 132, 140, 147, 144, 149, 142, 143, 139, 133, 143, 132, 133, 129, 122, 143, 126, 129, 134, 139, 135, 103, 140, 131, 130, 141, 125, 137, 151, 134, 140, 130, 139, 128, 143, 132, 133, 123, 136, 131, 145, 131, 134, 139, 142, 147, 141, 139, 128, 134, 145, 135, 124, 141, 137, 129, 126, 136, 137, 125, 142, 150, 130, 151, 130, 130, 143, 132, 128, 140, 132, 123, 149, 127, 142, 135, 131, 136, 123, 146, 137, 131, 134, 132, 138, 138, 133, 164, 125, 119, 127, 134, 138, 140, 144, 134, 138, 126, 143, 131, 131, 139, 130, 130, 139, 136, 142, 110, 128, 135, 134, 135, 127, 139, 131, 127, 137, 116, 142, 139, 137, 147, 130, 139, 139, 131, 138, 128, 142, 128, 132, 135, 134, 141, 123, 127, 152, 146, 136, 135, 135, 133, 139, 125, 148, 134, 137, 143, 136, 132, 125, 138, 142, 136, 141, 143, 146, 144, 128, 146, 129, 140, 148, 132, 149, 119, 125, 133, 142, 139, 111, 132, 142, 128, 140, 127, 140, 136, 130, 129, 141, 130, 143, 148, 152, 139, 141, 136, 142, 134, 130, 141, 141, 123, 141, 134, 137, 146, 171, 140, 143, 143, 126, 133, 134, 147, 143, 133, 134, 134, 136, 144, 141, 159, 139, 129, 137, 144, 135, 139, 131, 124, 157, 148, 126, 166, 141, 146, 125, 121, 117, 134, 135, 122, 124, 133, 134, 137, 119, 146, 138, 132, 142, 120, 140, 140, 140, 145, 136, 139, 138, 137, 142, 131, 136, 132, 135, 137, 130, 147, 132, 129, 138, 135, 128, 160, 141, 133, 139, 143, 136, 138, 125, 116, 138, 142, 135, 131, 137, 132, 147, 134, 128, 137, 135, 160, 133, 130, 131, 142, 131, 152, 136, 128, 128, 131, 135, 132, 138, 136, 137, 131, 137, 148, 129, 133, 128, 144, 131, 136, 134, 141, 137, 147, 126, 129, 142, 127, 141, 126, 138, 135, 156, 135, 139, 134, 130, 125, 133, 128, 133, 150, 129, 133, 134, 122, 127, 142, 132, 138, 136, 140, 140, 133, 134, 137, 147, 122, 138, 120, 126, 129, 136, 128, 146, 149, 135, 130, 144, 149, 153, 135, 123, 137, 139, 137, 126, 140, 123, 145, 143, 128, 145, 126, 137, 118, 141, 143, 135, 128, 129, 120, 153, 126, 149, 143, 122, 134, 137, 135, 130, 129, 132, 131, 137, 129, 130, 123, 131, 134, 145, 140, 127, 142, 129, 132, 137, 129, 142, 144, 147, 116, 136, 129, 129, 131, 151, 127, 138, 135, 136, 141, 141, 136, 126, 124, 136, 126, 161, 152, 132, 116, 129, 140, 126, 125, 141, 159, 128, 136, 116, 124, 120, 130, 127, 134, 134, 128, 143, 128, 140, 128, 138, 140, 139, 136, 134, 135, 134, 131, 135, 129, 149, 136, 136, 137, 137, 136, 147, 134, 125, 135, 136, 132, 137, 142, 125, 134, 138, 129, 135, 115, 167, 132, 135, 118, 131, 125, 134, 125, 140, 123, 126, 132, 139, 155, 143, 129, 142, 132, 137, 122, 138, 121, 135, 134, 120, 140, 135, 125, 144, 147, 139, 132, 143, 130, 136, 144, 134, 127, 128, 140, 137, 134, 139, 136, 134, 147, 133, 136, 137, 139, 139, 125, 137, 131, 139, 142, 140, 137, 133, 138, 135, 137, 141, 137, 129, 136, 122, 144, 137, 128, 135, 134, 142, 134, 137, 137, 143, 133, 134, 129, 139, 135, 143, 140, 133, 136, 135, 138, 130, 144, 127, 137, 134, 137, 143, 135, 137, 128, 134, 140, 137, 131, 128, 132, 138, 137, 137, 136, 134, 136, 126, 134, 139, 133, 138, 134, 130, 145, 136, 140, 146, 136, 140, 142, 124, 140, 140, 139, 135, 140, 138, 140, 133, 132, 137, 131, 133, 132, 141, 145, 140, 134, 137, 132, 137, 124, 134, 141, 136, 137, 135, 138, 135, 133, 133, 145, 128, 136, 131, 132, 142, 133, 129, 135, 129, 137, 139, 139, 136, 136, 143, 146, 125, 138, 125, 135, 140, 137, 134, 134, 129, 142, 138, 134, 135, 137, 138, 140, 142, 136, 135, 130, 135, 130, 141, 143, 128, 140, 131, 132, 132, 136, 136, 127, 135, 145, 131, 141, 135, 139, 130, 148, 137, 121, 128, 134, 140, 128, 133, 127, 139, 137, 133, 128, 148, 141, 133, 148, 143, 138, 140, 136, 135, 135, 129, 138, 136, 134, 124, 135, 136, 144, 134, 129, 137, 128, 132, 154, 138, 132, 141, 129, 136, 134, 147, 124, 142, 140, 141, 135, 132, 136, 133, 129, 131, 140, 138, 138, 134, 143, 138, 135, 136, 149, 142, 144, 139, 131, 133, 134, 139, 138, 129, 134, 141, 142, 140, 136, 137, 138, 135, 128, 141, 138, 134, 133, 136, 132, 135, 152, 137, 139, 135, 149, 133, 138, 135, 138, 135, 131, 134, 141, 143, 131, 143, 129, 132, 130, 138, 132, 134, 143, 131, 145, 135, 134, 135, 141, 132, 134, 138, 143, 131, 127, 140, 131, 125, 131, 138, 132, 129, 135, 137, 129, 140, 131, 131, 143, 139, 134, 130, 140, 122, 136, 143, 136, 138, 143, 142, 130, 138, 137, 147, 139, 135, 136, 140, 131, 138, 135, 127, 142, 149, 128, 133, 140, 145, 133, 129, 128, 138, 127, 136, 136, 134, 139, 137, 145, 133, 145, 134, 133, 136, 134, 128, 140, 135, 145, 140, 138, 134, 139, 127, 137, 133, 135, 141, 138, 135, 134, 135, 139, 137, 144, 141, 133, 145, 143, 138, 143, 135, 139, 137, 154, 133, 131, 128, 136, 142, 126, 135, 132, 138, 132, 139, 138, 135, 135, 132, 128, 148, 127, 138, 126, 130, 131, 132, 138, 132, 138, 138, 135, 139, 132, 130, 134, 142, 147, 140, 124, 122, 129, 136, 132, 147, 140, 132, 136, 132, 140, 141, 135, 131, 133, 132, 128, 132, 135, 139, 138, 139, 135, 135, 133, 140, 140, 132, 138, 123, 139, 145, 144, 158, 139, 129, 140, 136, 144, 141, 142, 134, 133, 131, 143, 129, 140, 126, 126, 136, 140, 131, 130, 135, 133, 129, 146, 138, 132, 136, 127, 141, 138, 138, 143, 132, 135, 134, 130, 138, 132, 134, 137, 141, 141, 145, 141, 142, 136, 141, 140, 138, 146, 130, 142, 137, 122, 134, 137, 132, 142, 132, 142, 135, 137, 135, 140, 135, 134, 135, 135, 138, 129, 137, 139, 132, 135, 142, 133, 147, 139, 133, 144, 136, 142, 142, 135, 135, 136, 139, 145, 143, 140, 129, 136, 131, 135, 141, 140, 133, 123, 139, 137, 135, 159, 148, 129, 141, 138, 138, 136, 125, 143, 142, 149, 137, 147, 131, 139, 146, 126, 140, 129, 151, 133, 121, 136, 145, 130, 137, 150, 143, 140, 140, 130, 141, 131, 137, 144, 152, 125, 133, 140, 139, 133, 147, 129, 130, 128, 143, 144, 130, 134, 135, 143, 131, 135, 137, 134, 149, 147, 131, 132, 141, 139, 138, 155, 140, 151, 130, 129, 140, 130, 124, 138, 135, 128, 140, 130, 128, 137, 127, 128, 137, 139, 141, 140, 147, 134, 141, 138, 134, 141, 129, 132, 141, 133, 125, 143, 160, 134, 134, 141, 132, 131, 144, 140, 146, 138, 133, 136, 151, 134, 134, 132, 145, 135, 139, 137, 144, 130, 130, 141, 152, 136, 134, 126, 134, 149, 151, 140, 133, 136, 140, 135, 142, 141, 134, 126, 150, 136, 136, 135, 136, 141, 134, 135, 142, 145, 127, 138, 136, 138, 141, 132, 153, 133, 138, 134, 141, 153, 148, 137, 134, 132, 138, 134, 138, 142, 129, 141, 136, 132, 143, 136, 124, 129, 130, 138, 137, 121, 129, 130, 138, 135, 136, 128, 133, 148, 139, 128, 134, 131, 134, 134, 138, 134, 135, 138, 123, 144, 143, 153, 142, 128, 137, 121, 119, 140, 135, 131, 144, 129, 128, 125, 142, 126, 133, 139, 131, 121, 126, 142, 134, 130, 131, 154, 145, 140, 144, 137, 128, 127, 168, 139, 136, 132, 128, 143, 134, 131, 132, 127, 140, 130, 137, 144, 135, 141, 133, 138, 133, 133, 140, 129, 120, 137, 141, 131, 130, 141, 154, 143, 131, 141, 127, 144, 121, 136, 160, 144, 134, 126, 132, 146, 135, 137, 134, 131, 144, 148, 123, 127, 131, 131, 133, 137, 138, 138, 133, 130, 148, 129, 121, 130, 134, 133, 137, 123, 126, 147, 126, 144, 135, 139, 142, 135, 140, 133, 132, 131, 140, 134, 142, 137, 143, 137, 127, 132, 142, 138, 131, 137, 141, 133, 131, 143, 144, 135, 134, 139, 123, 132, 131, 130, 148, 138, 136, 137, 127, 136, 128, 141, 118, 133, 132, 128, 137, 137, 130, 146, 146, 132, 140, 127, 134, 136, 132, 135, 128, 134, 135, 137, 122, 168, 133, 130, 131, 144, 130, 133, 137, 141, 128, 113, 134, 142, 134, 141, 151, 119, 142, 133, 133, 155, 141, 132, 156, 137, 133, 142, 128, 135, 145, 149, 123, 136, 141, 157, 138, 136, 136, 139, 133, 150, 138, 136, 138, 133, 141, 146, 135, 137, 143, 134, 129, 130, 131, 143, 135, 134, 132, 132, 149, 132, 135, 126, 131, 135, 134, 144, 142, 142, 133, 137, 132, 136, 147, 135, 142, 140, 136, 144, 132, 118, 124, 128, 136, 139, 156, 123, 139, 146, 128, 142, 134, 142, 136, 142, 142, 134, 134, 126, 128, 140, 136, 136, 139, 130, 129, 138, 148, 133, 126, 133, 134, 135, 138, 133, 131, 113, 134, 130, 138, 129, 126, 139, 157, 133, 135, 121, 135, 134, 139, 132, 128, 139, 159, 135, 128, 148, 115, 137, 144, 133, 130, 135, 142, 112, 166, 126, 139, 122, 130, 122, 142, 133, 156, 139, 134, 122, 134, 140, 121, 120, 134, 125, 130, 134, 133, 129, 122, 134, 129, 123, 158, 140, 121, 128, 139, 136, 143, 147, 139, 138, 133, 127, 110, 128, 145, 137, 143, 137, 151, 126, 157, 140, 117, 155, 131, 123, 134, 130, 134, 135, 129, 147, 137, 124, 146, 149, 131, 132, 130, 137, 136, 132, 127, 143, 124, 144, 135, 128, 136, 128, 122, 123, 141, 130, 134, 137, 129, 126, 141, 130, 132, 121, 140, 138, 122, 131, 126, 146, 128, 136, 130, 149, 136, 139, 147, 134, 127, 168, 134, 138, 143, 144, 136, 129, 122, 141, 128, 129, 128, 132, 143, 135, 125, 136, 146, 133, 149, 124, 127, 128, 132, 151, 131, 114, 133, 136, 171, 127, 159, 144, 148, 123, 132, 145, 128, 144, 115, 130, 137, 152, 151, 141, 138, 107, 137, 124, 136, 130, 150, 144, 127, 115, 136, 141, 151, 137, 123, 128, 130, 141, 143, 136, 137, 141, 130, 152, 144, 140, 130, 130, 133, 135, 143, 136, 154, 135, 124, 127, 141, 131, 138, 128, 129, 144, 124, 133, 144, 141, 142, 132, 126, 138, 120, 136, 130, 140, 129, 136, 115, 156, 137, 143, 133, 159, 134, 124, 129, 124, 143, 125, 136, 127, 125, 118, 131, 133, 140, 140, 146, 135, 125, 130, 123, 149, 138, 153, 132, 115, 127, 133, 129, 133, 123, 151, 124, 131, 149, 129, 142, 139, 120, 146, 141, 138, 147, 144, 140, 118, 135, 134, 132, 125, 131, 136, 124, 140, 146, 133, 145, 130, 143, 142, 134, 131, 132, 139, 133, 154, 140, 135, 127, 141, 148, 139, 133, 143, 136, 147, 130, 140, 142, 121, 121, 131, 148, 121, 133, 142, 137, 135, 126, 134, 131, 126, 150, 136, 137, 147, 141, 129, 125, 132, 139, 144, 126, 125, 149, 133, 123, 127, 148, 143, 128, 138, 144, 123, 165, 125, 141, 135, 145, 126, 134, 128, 130, 128, 142, 133, 127, 133, 147, 122, 124, 129, 117, 128, 134, 129, 137, 136, 128, 132, 130, 123, 147, 131, 131, 128, 123, 135, 130, 124, 136, 130, 126, 136, 144, 137, 143, 140, 122, 130, 129, 130, 147, 147, 124, 136, 122, 151, 143, 129, 143, 134, 139, 148, 126, 119, 127, 136, 130, 139, 139, 136, 127, 132, 128, 136, 129, 143, 146, 137, 131, 135, 141, 133, 135, 144, 157, 127, 141, 131, 134, 130, 128, 126, 137, 136, 146, 151, 128, 138, 136, 144, 135, 122, 141, 137, 138, 150, 136, 118, 145, 148, 126, 119, 140, 143, 123, 122, 146, 120, 138, 141, 130, 105, 142, 147, 135, 135, 148, 115, 131, 137, 133, 130, 126, 140, 121, 132, 148, 142, 138, 141, 141, 135, 127, 127, 123, 134, 135, 153, 134, 131, 129, 139, 137, 131, 137, 154, 131, 126, 148, 141, 129, 132, 145, 145, 122, 123, 137, 137, 134, 143, 134, 129, 139, 134, 129, 135, 137, 123, 140, 129, 151, 133, 131, 129, 139, 154, 126, 138, 132, 144, 140, 132, 129, 132, 126, 133, 137, 136, 143, 143, 144, 158, 138, 129, 157, 174, 144, 140, 144, 156, 126, 156, 137, 132, 130, 135, 144, 119, 128, 142, 119, 163, 122, 145, 136, 113, 125, 125, 132, 122, 133, 125, 132, 137, 122, 133, 145, 141, 131, 151, 129, 145, 132, 147, 152, 135, 129, 138, 134, 154, 127, 128, 137, 139, 153, 115, 126, 135, 145, 121, 140, 134, 134, 110, 136, 130, 152, 136, 124, 132, 149, 134, 129, 141, 143, 129, 159, 135, 132, 154, 132, 136, 133, 145, 136, 137, 142, 149, 152, 131, 118, 140, 123, 136, 125, 138, 141, 149, 124, 125, 135, 146, 140, 142, 126, 130, 124, 133, 134, 142, 134, 122, 138, 134, 139, 138, 147, 128, 133, 140, 130, 145, 140, 133, 135, 132, 132, 111, 143, 130, 125, 134, 134, 141, 134, 124, 136, 132, 136, 127, 136, 146, 153, 147, 139, 128, 136, 139, 144, 158, 140, 134, 117, 137, 128, 125, 147, 124, 126, 130, 129, 130, 146, 128, 138, 139, 137, 132, 133, 140, 134, 118, 151, 120, 133, 133, 132, 162, 143, 122, 139, 148, 144, 158, 124, 137, 134, 131, 139, 146, 139, 130, 137, 144, 143, 124, 136, 144, 119, 134, 144, 144, 149, 148, 125, 148, 144, 134, 132, 137, 162, 139, 112, 125, 139, 154, 135, 138, 139, 135, 127, 145, 132, 134, 132, 137, 138, 136, 150, 146, 160, 144, 128, 144, 138, 127, 138, 158, 143, 124, 134, 134, 146, 144, 125, 139, 141, 149, 128, 130, 117, 140, 133, 130, 158, 140, 147, 133, 135, 146, 139, 135, 138, 140, 140, 139, 140, 143, 132, 136, 143, 145, 135, 137, 142, 165, 135, 139, 140, 133, 155, 148, 134, 139, 147, 135, 134, 138, 125, 136, 137, 142, 151, 138, 142, 134, 129, 119, 130, 144, 138, 138, 141, 157, 139, 140, 127, 138, 143, 119, 129, 134, 137, 141, 133, 142, 144, 131, 141, 129, 118, 146, 133, 145, 130, 139, 127, 154, 145, 133, 123, 155, 135, 134, 122, 134, 139, 129, 121, 127, 129, 137, 136, 128, 138, 153, 138, 128, 137, 125, 137, 126, 140, 130, 120, 136, 134, 134, 119, 143, 141, 137, 140, 144, 129, 148, 126, 139, 114, 146, 125, 141, 128, 132, 160, 117, 133, 133, 131, 130, 133, 128, 146, 130, 144, 130, 136, 139, 162, 130, 138, 128, 138, 138, 132, 135, 119, 126, 121, 144, 145, 142, 141, 124, 132, 128, 143, 132, 141, 144, 147, 143, 142, 148, 151, 129, 133, 131, 136, 122, 142, 133, 125, 127, 121, 132, 134, 134, 140, 132, 121, 130, 152, 155, 130, 136, 139, 148, 140, 132, 138, 128, 138, 132, 151, 138, 133, 139, 133, 136, 154, 127, 147, 138, 135, 147, 135, 149, 130, 139, 136, 137, 127, 135, 153, 120, 125, 123, 137, 137, 137, 128, 126, 146, 139, 143, 145, 138, 127, 137, 134, 139, 133, 120, 130, 133, 148, 142, 138, 147, 122, 145, 138, 136, 124, 146, 108, 138, 150, 152, 137, 137, 143, 127, 120, 132, 133, 129, 129, 135, 150, 129, 134, 138, 139, 131, 126, 154, 125, 141, 135, 152, 146, 134, 126, 140, 143, 124, 128, 131, 130, 136, 131, 141, 139, 107, 138, 109, 148, 119, 126, 141, 136, 139, 133, 141, 134, 133, 132, 123, 132, 119, 137, 113, 128, 142, 149, 130, 150, 126, 135, 133, 124, 127, 134, 132, 132, 133, 132, 133, 130, 143, 137, 147, 150, 123, 135, 128, 150, 124, 131, 125, 141, 132, 141, 152, 132, 121, 150, 134, 146, 153, 132, 137, 144, 138, 113, 130, 135, 137, 128, 136, 136, 136, 132, 136, 121, 138, 146, 145, 145, 135, 127, 135, 145, 136, 142, 139, 134, 152, 149, 125, 138, 136, 142, 126, 126, 132, 155, 135, 147, 144, 139, 135, 114, 137, 141, 133, 144, 135, 129, 110, 138, 140, 160, 140, 129, 143, 147, 135, 149, 132, 128, 133, 151, 145, 130, 131, 138, 124, 179, 115, 129, 135, 140, 139, 139, 139, 140, 123, 129, 123, 143, 131, 128, 134, 130, 129, 136, 145, 121, 135, 133, 142, 116, 133, 130, 137, 131, 129, 130, 153, 133, 142, 115, 131, 157, 121, 152, 133, 139, 142, 135, 144, 132, 136, 131, 120, 111, 114, 129, 134, 162, 127, 121, 140, 137, 111, 127, 144, 143, 134, 133, 141, 127, 138, 140, 156, 139, 152, 129, 134, 151, 127, 125, 130, 130, 143, 141, 133, 136, 133, 122, 128, 120, 134, 123, 129, 128, 146, 121, 141, 134, 123, 133, 139, 142, 133, 151, 137, 131, 137, 134, 123, 142, 137, 133, 146, 121, 170, 146, 115, 142, 115, 148, 159, 137, 136, 144, 140, 122, 112, 121, 137, 131, 140, 145, 150, 146, 125, 143, 128, 148, 128, 131, 127, 115, 157, 145, 132, 126, 131, 133, 148, 133, 124, 131, 140, 129, 128, 125, 137, 129, 154, 130, 150, 144, 125, 128, 133, 142, 130, 127, 140, 132, 147, 120, 143, 125, 136, 142, 129, 153, 150, 131, 147, 132, 132, 131, 128, 135, 122, 144, 119, 147, 142, 147, 138, 126, 133, 133, 145, 125, 131, 138, 131, 142, 137, 129, 120, 144, 131, 117, 130, 144, 143, 135, 131, 145, 122, 141, 142, 138, 131, 132, 129, 125, 133, 143, 136, 145, 129, 131, 131, 126, 120, 146, 152, 146, 134, 129, 125, 136, 142, 131, 125, 136, 155, 114, 130, 145, 148, 140, 131, 133, 141, 133, 131, 154, 131, 150, 130, 131, 137, 140, 141, 128, 149, 137, 141, 140, 145, 156, 125, 151, 134, 139, 115, 131, 128, 150, 147, 132, 138, 130, 112, 121, 138, 145, 144, 125, 126, 129, 143, 144, 130, 142, 146, 151, 126, 136, 137, 129, 126, 118, 125, 140, 132, 121, 149, 125, 124, 150, 151, 146, 145, 136, 142, 119, 128, 138, 132, 142, 132, 145, 138, 131, 146, 135, 155, 135, 139, 128, 139, 140, 151, 132, 132, 135, 138, 126, 132, 126, 143, 135, 139, 137, 140, 130, 147, 135, 131, 144, 125, 150, 132, 139, 140, 125, 141, 142, 121, 138, 131, 126, 135, 143, 133, 136, 133, 128, 125, 141, 133, 139, 119, 127, 147, 145, 135, 133, 129, 139, 135, 137, 133, 137, 132, 137, 132, 138, 130, 135, 133, 127, 122, 139, 135, 143, 141, 127, 126, 131, 130, 136, 135, 134, 138, 139, 138, 135, 127, 144, 134, 141, 142, 140, 137, 141, 142, 132, 139, 132, 142, 138, 126, 142, 130, 145, 132, 134, 134, 132, 132, 134, 144, 147, 143, 139, 135, 133, 130, 145, 134, 128, 138, 133, 128, 146, 139, 157, 134, 131, 135, 138, 134, 135, 136, 138, 133, 122, 129, 134, 130, 134, 122, 129, 137, 142, 132, 133, 135, 135, 146, 137, 137, 137, 140, 131, 140, 135, 143, 138, 138, 140, 144, 143, 134, 126, 142, 139, 137, 137, 137, 134, 138, 133, 141, 134, 131, 147, 135, 134, 140, 128, 139, 130, 131, 135, 131, 138, 143, 136, 131, 134, 145, 136, 134, 138, 143, 133, 135, 141, 137, 132, 146, 140, 142, 137, 141, 141, 150, 146, 135, 137, 129, 130, 131, 139, 132, 131, 129, 119, 141, 137, 121, 135, 134, 138, 146, 128, 132, 138, 137, 132, 139, 120, 132, 134, 134, 140, 144, 129, 142, 139, 127, 148, 135, 139, 143, 133, 145, 145, 132, 158, 140, 137, 146, 139, 126, 141, 133, 128, 131, 132, 133, 139, 118, 134, 136, 144, 136, 137, 130, 142, 140, 141, 143, 138, 138, 131, 133, 142, 132, 142, 135, 138, 133, 133, 145, 128, 131, 132, 128, 137, 132, 134, 145, 145, 134, 143, 129, 137, 135, 157, 143, 141, 141, 137, 129, 152, 144, 137, 134, 134, 145, 148, 147, 138, 140, 141, 131, 125, 137, 121, 137, 141, 136, 128, 142, 137, 128, 133, 132, 122, 132, 138, 126, 132, 132, 137, 133, 142, 139, 131, 122, 126, 135, 136, 131, 139, 136, 130, 139, 139, 141, 120, 143, 147, 134, 130, 145, 141, 139, 141, 138, 139, 137, 136, 134, 130, 138, 135, 129, 134, 134, 139, 117, 136, 135, 140, 133, 134, 128, 140, 146, 138, 133, 132, 124, 128, 134, 144, 129, 136, 132, 137, 145, 135, 144, 129, 132, 133, 128, 139, 133, 138, 134, 132, 135, 131, 144, 129, 135, 126, 142, 126, 134, 136, 121, 132, 142, 130, 134, 146, 144, 140, 144, 125, 139, 150, 145, 121, 134, 132, 142, 136, 133, 139, 142, 127, 138, 160, 129, 141, 130, 131, 137, 129, 137, 124, 140, 141, 138, 141, 138, 137, 148, 131, 139, 132, 141, 139, 136, 113, 135, 136, 134, 141, 138, 123, 136, 128, 132, 131, 128, 156, 143, 127, 132, 142, 140, 130, 134, 129, 144, 132, 131, 144, 133, 141, 144, 140, 130, 136, 138, 136, 153, 130, 140, 135, 142, 129, 137, 132, 144, 139, 131, 147, 139, 137, 130, 133, 131, 133, 140, 130, 136, 132, 139, 142, 133, 131, 140, 134, 136, 134, 135, 147, 121, 146, 134, 133, 136, 141, 132, 129, 130, 136, 138, 140, 133, 136, 138, 134, 135, 133, 138, 138, 145, 125, 138, 143, 142, 136, 142, 141, 131, 135, 128, 131, 135, 125, 133, 146, 132, 136, 142, 130, 133, 134, 129, 131, 152, 136, 140, 129, 129, 127, 134, 125, 134, 134, 139, 130, 143, 126, 134, 137, 135, 121, 139, 133, 139, 139, 128, 137, 136, 135, 134, 130, 135, 142, 137, 135, 136, 149, 133, 132, 134, 132, 129, 137, 145, 125, 136, 148, 133, 142, 139, 142, 140, 131, 132, 138, 138, 135, 141, 135, 145, 135, 139, 133, 129, 136, 133, 136, 111, 136, 134, 142, 128, 132, 131, 144, 128, 138, 138, 135, 136, 132, 142, 131, 146, 138, 136, 121, 145, 129, 131, 133, 136, 137, 139, 136, 143, 146, 129, 148, 140, 154, 129, 128, 135, 129, 137, 131, 130, 133, 140, 136, 136, 138, 143, 138, 141, 144, 147, 135, 148, 142, 154, 128, 133, 137, 136, 144, 151, 123, 125, 126, 135, 133, 136, 136, 136, 145, 136, 141, 132, 144, 132, 135, 141, 134, 135, 130, 144, 134, 139, 134, 140, 125, 140, 133, 124, 137, 140, 140, 143, 132, 123, 131, 138, 127, 134, 142, 128, 131, 134, 133, 137, 138, 138, 134, 133, 140, 139, 139, 142, 144, 130, 131, 140, 139, 138, 122, 130, 132, 144, 137, 132, 136, 146, 143, 125, 135, 136, 139, 130, 127, 148, 147, 134, 138, 139, 146, 129, 145, 139, 151, 143, 142, 130, 130, 132, 133, 140, 121, 134, 130, 131, 132, 141, 126, 134, 138, 133, 138, 134, 141, 133, 133, 137, 136, 126, 131, 143, 136, 135, 127, 132, 138, 133, 144, 128, 128, 132, 141, 141, 137, 146, 137, 141, 139, 138, 150, 139, 133, 129, 137, 141, 137, 145, 138, 137, 123, 138, 125, 118, 136, 134, 135, 127, 142, 144, 137, 138, 131, 131, 154, 143, 130, 114, 136, 136, 140, 133, 135, 132, 131, 136, 144, 139, 123, 128, 139, 138, 134, 129, 131, 144, 138, 134, 136, 130, 145, 127, 133, 131, 135, 131, 137, 142, 134, 134, 134, 132, 134, 134, 129, 143, 138, 137, 148, 133, 140, 130, 142, 139, 142, 134, 133, 130, 118, 142, 140, 136, 135, 139, 138, 133, 134, 133, 136, 136, 141, 133, 133, 133, 135, 140, 146, 143, 143, 141, 142, 140, 142, 142, 136, 147, 130, 140, 129, 135, 136, 138, 133, 118, 138, 140, 134, 138, 120, 122, 136, 133, 129, 133, 130, 135, 145, 120, 144, 151, 143, 130, 144, 139, 133, 132, 132, 136, 140, 135, 138, 137, 138, 139, 142, 136, 141, 138, 135, 146, 133, 124, 145, 132, 129, 141, 131, 133, 129, 133, 138, 139, 131, 127, 122, 134, 128, 140, 139, 131, 132, 138, 134, 134, 133, 128, 129, 138, 137, 140, 135, 136, 134, 129, 136, 149, 133, 135, 135, 122, 133, 134, 138, 126, 129, 139, 147, 140, 137, 138, 141, 131, 123, 141, 137, 131, 142, 143, 134, 129, 128, 131, 134, 134, 121, 112, 141, 139, 122, 127, 119, 115, 149, 144, 128, 133, 137, 134, 139, 139, 137, 139, 142, 140, 146, 139, 150, 145, 131, 129, 139, 135, 121, 133, 130, 144, 146, 154, 139, 138, 136, 136, 137, 137, 126, 133, 135, 145, 128, 133, 118, 121, 143, 147, 130, 137, 139, 134, 132, 150, 149, 139, 128, 142, 136, 139, 132, 136, 129, 133, 139, 124, 142, 159, 133, 150, 145, 133, 133, 128, 139, 128, 119, 137, 137, 130, 143, 128, 134, 136, 125, 129, 156, 132, 139, 140, 136, 139, 138, 146, 139, 137, 129, 142, 130, 126, 134, 136, 135, 138, 138, 152, 148, 141, 133, 137, 125, 125, 139, 137, 137, 132, 140, 140, 140, 138, 137, 132, 148, 140, 126, 132, 136, 133, 145, 137, 142, 128, 137, 146, 138, 128, 135, 136, 136, 142, 133, 135, 135, 130, 128, 122, 131, 122, 144, 133, 136, 140, 136, 136, 138, 128, 138, 135, 135, 142, 137, 132, 136, 200, 146, 134, 132, 114, 136, 139, 126, 112, 139, 132, 143, 125, 131, 138, 146, 125, 146, 131, 123, 130, 147, 127, 135, 141, 136, 143, 137, 127, 151, 136, 133, 130, 139, 130, 134, 137, 131, 123, 158, 140, 144, 136, 137, 128, 121, 134, 141, 126, 123, 128, 130, 139, 138, 132, 137, 144, 140, 140, 139, 134, 143, 137, 140, 142, 136, 149, 142, 129, 137, 142, 123, 120, 131, 139, 145, 135, 124, 164, 139, 147, 132, 140, 131, 133, 132, 125, 140, 135, 140, 132, 130, 133, 132, 153, 136, 123, 127, 142, 134, 131, 139, 131, 141, 143, 136, 133, 139, 130, 145, 125, 152, 126, 143, 148, 134, 139, 123, 144, 135, 143, 140, 149, 147, 131, 128, 140, 145, 128, 133, 149, 146, 138, 134, 135, 128, 128, 137, 132, 131, 144, 136, 139, 132, 132, 133, 134, 125, 120, 133, 152, 137, 149, 127, 136, 136, 142, 142, 143, 131, 138, 137, 142, 129, 133, 142, 155, 133, 137, 135, 147, 126, 133, 140, 136, 139, 136, 134, 143, 127, 142, 127, 140, 129, 141, 135, 136, 146, 130, 126, 138, 127, 131, 134, 144, 136, 135, 153, 136, 131, 138, 160, 121, 95, 144, 136, 137, 137, 136, 143, 129, 135, 139, 142, 119, 142, 141, 136, 133, 134, 130, 142, 136, 134, 133, 135, 134, 125, 133, 135, 133, 163, 137, 145, 133, 129, 134, 155, 136, 136, 134, 129, 153, 141, 137, 135, 148, 130, 135, 144, 136, 129, 131, 133, 144, 146, 136, 140, 156, 137, 142, 139, 138, 138, 138, 137, 145, 141, 131, 134, 141, 136, 142, 135, 125, 139, 135, 121, 131, 132, 139, 146, 135, 132, 143, 135, 141, 134, 144, 135, 128, 145, 135, 131, 135, 147, 125, 131, 110, 135, 129, 131, 136, 126, 141, 114, 140, 138, 128, 128, 136, 131, 119, 126, 129, 132, 138, 136, 125, 133, 129, 143, 113, 129, 126, 137, 140, 149, 147, 116, 132, 127, 140, 130, 128, 136, 134, 132, 131, 127, 137, 138, 136, 160, 136, 131, 133, 123, 145, 130, 150, 141, 137, 129, 137, 135, 140, 119, 141, 139, 129, 126, 144, 131, 132, 133, 126, 131, 127, 131, 138, 132, 136, 139, 147, 134, 136, 129, 124, 140, 136, 128, 128, 131, 138, 125, 131, 142, 130, 148, 129, 125, 137, 115, 156, 133, 154, 132, 128, 139, 150, 138, 134, 132, 126, 140, 136, 119, 143, 149, 136, 134, 139, 150, 123, 133, 126, 139, 143, 134, 121, 135, 137, 122, 135, 113, 136, 151, 130, 134, 149, 137, 134, 128, 133, 117, 129, 134, 129, 128, 137, 126, 139, 141, 140, 137, 116, 133, 129, 135, 133, 120, 143, 128, 137, 137, 142, 150, 132, 143, 128, 131, 189, 134, 131, 141, 136, 142, 137, 120, 132, 132, 123, 128, 134, 132, 132, 123, 136, 139, 126, 127, 135, 120, 138, 138, 130, 135, 135, 125, 139, 117, 139, 143, 146, 129, 140, 146, 130, 114, 144, 134, 128, 141, 139, 125, 141, 142, 147, 121, 131, 131, 125, 133, 138, 135, 141, 119, 133, 130, 122, 127, 132, 126, 141, 140, 136, 143, 134, 135, 129, 140, 144, 136, 135, 128, 151, 136, 137, 138, 124, 126, 118, 121, 135, 147, 140, 134, 140, 125, 135, 139, 136, 134, 152, 159, 132, 126, 143, 130, 124, 135, 128, 140, 143, 131, 180, 144, 151, 133, 158, 132, 140, 141, 144, 143, 129, 134, 136, 136, 139, 143, 110, 139, 137, 150, 144, 152, 142, 137, 140, 137, 141, 126, 134, 136, 130, 115, 127, 129, 134, 126, 142, 125, 140, 133, 127, 130, 133, 155, 122, 133, 123, 157, 143, 141, 120, 132, 167, 122, 141, 155, 139, 119, 144, 129, 129, 147, 128, 136, 127, 130, 131, 131, 135, 141, 155, 123, 130, 134, 131, 134, 122, 143, 123, 145, 135, 144, 150, 134, 127, 134, 141, 126, 129, 124, 122, 135, 132, 127, 113, 136, 129, 128, 142, 129, 133, 145, 126, 124, 137, 128, 144, 150, 135, 129, 134, 127, 130, 138, 125, 142, 131, 137, 135, 137, 132, 140, 123, 129, 137, 137, 141, 125, 130, 139, 141, 136, 133, 134, 134, 138, 133, 134, 142, 147, 132, 131, 134, 139, 151, 130, 127, 144, 132, 131, 143, 160, 139, 147, 138, 129, 130, 130, 127, 120, 124, 127, 132, 159, 141, 126, 145, 136, 136, 130, 125, 134, 147, 124, 136, 130, 153, 154, 137, 125, 134, 133, 129, 129, 142, 142, 129, 146, 145, 139, 136, 125, 129, 133, 169, 136, 125, 140, 146, 131, 149, 114, 131, 148, 146, 129, 129, 122, 139, 140, 123, 143, 126, 130, 135, 145, 143, 141, 135, 132, 137, 141, 138, 161, 148, 137, 136, 137, 124, 136, 127, 130, 128, 147, 127, 144, 136, 138, 123, 138, 134, 153, 146, 135, 135, 121, 120, 128, 144, 133, 149, 126, 158, 127, 132, 139, 148, 131, 121, 144, 131, 139, 140, 152, 131, 139, 123, 144, 138, 146, 144, 123, 135, 134, 137, 133, 142, 136, 143, 138, 122, 135, 129, 138, 136, 131, 137, 134, 130, 134, 159, 126, 141, 137, 131, 136, 142, 127, 132, 127, 144, 140, 134, 164, 137, 135, 141, 123, 136, 144, 137, 134, 137, 135, 136, 129, 134, 127, 136, 133, 119, 140, 132, 124, 146, 138, 135, 146, 132, 131, 136, 142, 137, 134, 142, 142, 142, 130, 131, 133, 131, 131, 147, 111, 131, 126, 139, 161, 133, 132, 129, 134, 129, 143, 129, 140, 134, 133, 133, 136, 133, 134, 129, 138, 130, 151, 133, 132, 125, 144, 137, 133, 143, 137, 139, 125, 131, 135, 145, 133, 173, 138, 138, 137, 138, 127, 149, 137, 128, 146, 127, 134, 144, 137, 137, 147, 129, 132, 129, 125, 135, 142, 149, 123, 142, 128, 132, 136, 132, 109, 139, 146, 148, 141, 160, 133, 146, 139, 134, 127, 94, 129, 139, 139, 130, 133, 139, 145, 139, 128, 135, 179, 132, 130, 124, 130, 130, 148, 132, 149, 139, 141, 145, 130, 138, 150, 151, 141, 129, 133, 140, 133, 135, 150, 146, 140, 123, 146, 129, 132, 134, 146, 155, 146, 138, 135, 145, 134, 144, 124, 137, 122, 118, 127, 135, 132, 147, 135, 148, 129, 135, 124, 132, 130, 120, 165, 137, 137, 133, 141, 128, 131, 137, 143, 138, 141, 142, 132, 132, 128, 135, 124, 130, 132, 128, 167, 134, 133, 129, 136, 140, 128, 132, 130, 129, 126, 133, 141, 129, 130, 139, 126, 136, 134, 125, 126, 134, 137, 132, 140, 129, 137, 129, 136, 136, 126, 129, 129, 140, 129, 135, 123, 146, 136, 136, 134, 134, 134, 135, 154, 130, 122, 132, 149, 147, 136, 139, 154, 134, 137, 129, 137, 140, 111, 118, 132, 144, 141, 133, 136, 135, 146, 135, 137, 135, 143, 145, 139, 138, 137, 135, 135, 139, 137, 144, 143, 138, 138, 144, 122, 148, 147, 129, 142, 141, 147, 151, 163, 135, 129, 150, 144, 141, 132, 140, 126, 142, 122, 142, 133, 133, 137, 139, 138, 124, 131, 114, 137, 140, 138, 114, 123, 127, 134, 137, 152, 89, 133, 133, 122, 147, 129, 139, 124, 130, 120, 137, 126, 141, 139, 124, 135, 137, 130, 130, 130, 124, 127, 122, 97, 136, 134, 127, 94, 133, 125, 146, 125, 132, 140, 134, 124, 148, 113, 153, 137, 127, 140, 109, 137, 128, 134, 123, 133, 132, 136, 142, 135, 123, 126, 136, 116, 162, 119, 137, 136, 106, 128, 138, 130, 133, 129, 131, 131, 130, 133, 136, 134, 136, 139, 139, 134, 90, 139, 131, 142, 132, 139, 131, 124, 146, 94, 132, 130, 159, 135, 148, 125, 119, 134, 134, 131, 131, 158, 141, 132, 135, 135, 129, 133, 132, 172, 149, 140, 144, 149, 131, 143, 103, 137, 147, 128, 135, 142, 136, 137, 126, 137, 133, 137, 139, 124, 124, 145, 136, 139, 157, 139, 139, 138, 131, 120, 131, 139, 143, 123, 131, 137, 132, 136, 141, 140, 150, 133, 133, 128, 138, 126, 130, 122, 135, 137, 140, 137, 124, 145, 146, 131, 122, 132, 135, 129, 143, 123, 123, 127, 136, 134, 140, 133, 150, 136, 154, 130, 137, 137, 153, 146, 128, 132, 130, 127, 150, 137, 142, 128, 161, 129, 145, 136, 144, 132, 124, 150, 138, 128, 134, 123, 144, 143, 139, 135, 142, 152, 140, 129, 143, 124, 138, 132, 136, 136, 140, 129, 149, 141, 142, 134, 136, 139, 128, 139, 150, 140, 136, 141, 146, 150, 149, 160, 117, 129, 125, 128, 145, 128, 137, 135, 144, 131, 117, 140, 134, 137, 130, 126, 133, 140, 136, 133, 141, 135, 125, 120, 128, 139, 131, 144, 132, 136, 123, 124, 127, 134, 136, 149, 135, 127, 129, 136, 153, 128, 136, 140, 139, 131, 133, 138, 131, 132, 133, 141, 124, 137, 138, 137, 152, 114, 134, 137, 134, 134, 137, 150, 135, 143, 136, 122, 153, 128, 130, 136, 131, 139, 141, 138, 134, 124, 129, 137, 126, 125, 139, 137, 134, 134, 136, 129, 139, 133, 135, 136, 150, 139, 123, 137, 136, 128, 161, 137, 134, 137, 122, 147, 131, 135, 137, 144, 146, 133, 136, 129, 144, 135, 120, 150, 127, 127, 120, 143, 132, 143, 135, 132, 142, 133, 137, 126, 134, 143, 131, 126, 137, 118, 139, 140, 127, 132, 139, 137, 130, 133, 133, 132, 128, 128, 127, 146, 146, 138, 140, 134, 113, 148, 136, 135, 128, 139, 129, 135, 137, 124, 123, 133, 138, 144, 141, 140, 138, 129, 150, 133, 151, 129, 139, 137, 127, 128, 136, 135, 138, 133, 135, 136, 144, 158, 127, 134, 132, 139, 130, 127, 140, 146, 139, 137, 133, 172, 133, 137, 134, 138, 128, 133, 117, 136, 128, 136, 149, 138, 131, 141, 128, 144, 138, 139, 142, 118, 139, 134, 139, 139, 148, 136, 135, 140, 141, 136, 133, 131, 133, 143, 126, 134, 131, 138, 125, 137, 135, 154, 141, 127, 129, 135, 121, 132, 150, 128, 141, 140, 153, 133, 139, 132, 129, 139, 134, 147, 119, 133, 123, 140, 137, 133, 149, 120, 130, 186, 130, 125, 126, 128, 141, 138, 144, 142, 141, 128, 131, 118, 127, 135, 130, 142, 143, 140, 131, 144, 149, 131, 132, 141, 138, 144, 143, 138, 143, 136, 151, 135, 139, 140, 140, 131, 139, 134, 141, 131, 144, 130, 139, 149, 140, 124, 131, 143, 135, 143, 136, 114, 137, 130, 124, 125, 127, 137, 132, 131, 122, 143, 131, 141, 138, 139, 142, 130, 140, 141, 144, 132, 142, 157, 141, 125, 136, 149, 157, 106, 138, 122, 125, 146, 136, 137, 125, 123, 138, 128, 140, 146, 130, 127, 133, 150, 146, 151, 138, 143, 120, 136, 129, 136, 136, 126, 135, 147, 132, 129, 128, 132, 141, 142, 138, 131, 133, 136, 125, 153, 150, 150, 131, 133, 137, 137, 128, 143, 143, 129, 148, 123, 143, 144, 128, 145, 135, 116, 160, 137, 124, 116, 126, 140, 129, 131, 134, 113, 145, 132, 131, 148, 129, 148, 118, 128, 141, 133, 158, 133, 145, 128, 146, 163, 136, 131, 137, 135, 142, 154, 133, 122, 141, 131, 120, 140, 141, 130, 162, 139, 136, 142, 157, 145, 131, 142, 138, 138, 132, 141, 133, 143, 139, 117, 139, 124, 129, 148, 131, 128, 145, 114, 137, 133, 126, 132, 121, 120, 151, 143, 127, 124, 129, 151, 106, 133, 124, 148, 137, 148, 134, 131, 142, 139, 144, 150, 132, 132, 153, 143, 144, 126, 136, 146, 125, 142, 120, 130, 142, 135, 135, 132, 131, 132, 122, 154, 127, 116, 113, 129, 142, 150, 122, 161, 116, 136, 120, 133, 130, 135, 137, 138, 135, 115, 122, 144, 127, 123, 143, 144, 139, 135, 136, 123, 143, 148, 134, 156, 124, 131, 116, 138, 121, 127, 148, 128, 140, 133, 155, 124, 142, 145, 138, 130, 113, 134, 128, 130, 144, 149, 147, 141, 123, 133, 142, 129, 131, 144, 141, 132, 140, 143, 133, 136, 141, 140, 136, 149, 141, 126, 144, 126, 121, 138, 130, 129, 124, 141, 108, 128, 141, 123, 136, 147, 135, 142, 138, 131, 127, 130, 134, 128, 146, 138, 137, 147, 140, 138, 143, 133, 130, 146, 126, 127, 126, 136, 127, 145, 157, 142, 153, 143, 140, 143, 142, 144, 110, 133, 151, 125, 131, 138, 125, 149, 144, 129, 141, 124, 146, 132, 123, 134, 136, 142, 129, 140, 134, 138, 140, 145, 130, 123, 137, 153, 150, 135, 142, 151, 148, 145, 125, 140, 141, 125, 136, 125, 121, 140, 138, 122, 148, 135, 138, 135, 137, 170, 131, 127, 144, 134, 137, 133, 144, 140, 151, 132, 136, 132, 136, 119, 136, 132, 135, 127, 136, 142, 133, 135, 124, 134, 118, 133, 144, 161, 150, 122, 115, 128, 142, 144, 153, 126, 125, 139, 131, 139, 132, 128, 128, 135, 137, 133, 128, 144, 128, 141, 124, 133, 143, 140, 132, 148, 126, 160, 146, 136, 125, 148, 135, 135, 117, 147, 126, 126, 131, 143, 128, 135, 132, 115, 134, 121, 137, 142, 137, 124, 118, 153, 134, 139, 130, 133, 134, 134, 141, 141, 136, 142, 151, 118, 145, 144, 140, 140, 117, 155, 141, 144, 144, 140, 138, 129, 132, 138, 132, 129, 153, 135, 135, 134, 127, 141, 124, 141, 116, 149, 113, 119, 119, 138, 134, 139, 143, 140, 137, 150, 126, 145, 148, 136, 122, 139, 118, 114, 134, 141, 131, 132, 133, 140, 149, 137, 147, 116, 138, 131, 160, 142, 130, 139, 146, 137, 116, 137, 143, 166, 140, 133, 132, 157, 152, 147, 136, 122, 116, 133, 118, 132, 136, 149, 123, 141, 139, 140, 145, 134, 136, 137, 134, 136, 146, 130, 130, 161, 137, 136, 132, 127, 128, 128, 128, 128, 121, 126, 133, 135, 114, 142, 128, 124, 129, 146, 136, 115, 129, 127, 138, 130, 131, 131, 157, 127, 139, 130, 146, 113, 138, 133, 137, 134, 144, 138, 124, 151, 125, 133, 124, 142, 145, 135, 116, 135, 152, 139, 137, 142, 116, 139, 139, 154, 139, 153, 136, 119, 131, 144, 140, 129, 130, 127, 140, 147, 132, 118, 132, 135, 135, 136, 119, 139, 136, 131, 130, 122, 131, 120, 139, 138, 132, 132, 117, 132, 144, 124, 148, 132, 128, 139, 142, 141, 141, 137, 135, 139, 130, 145, 132, 124, 142, 142, 139, 139, 132, 135, 131, 137, 140, 147, 147, 148, 137, 161, 136, 131, 132, 138, 128, 133, 126, 135, 145, 129, 126, 140, 140, 137, 147, 138, 126, 123, 141, 130, 128, 140, 159, 153, 130, 136, 150, 123, 140, 131, 128, 131, 138, 123, 133, 136, 146, 144, 154, 136, 143, 159, 122, 127, 125, 135, 135, 141, 137, 136, 142, 148, 161, 131, 142, 130, 126, 154, 129, 148, 152, 133, 140, 132, 135, 123, 142, 132, 118, 138, 145, 131, 130, 140, 128, 140, 145, 136, 139, 137, 150, 128, 137, 158, 137, 135, 137, 134, 144, 138, 125, 131, 135, 138, 147, 123, 136, 128, 147, 128, 134, 138, 129, 144, 136, 131, 135, 130, 115, 114, 138, 146, 129, 150, 137, 172, 141, 132, 146, 134, 147, 143, 147, 132, 144, 133, 150, 145, 122, 141, 129, 117, 136, 136, 147, 159, 149, 156, 139, 144, 132, 124, 139, 127, 143, 144, 124, 103, 140, 138, 152, 138, 141, 115, 118, 134, 118, 140, 132, 138, 137, 134, 146, 129, 148, 135, 129, 139, 135, 149, 139, 136, 133, 146, 131, 145, 137, 136, 148, 119, 121, 136, 135, 133, 120, 118, 122, 135, 161, 128, 157, 121, 120, 131, 140, 150, 141, 141, 128, 134, 121, 127, 123, 142, 142, 140, 127, 132, 118, 138, 122, 137, 154, 133, 130, 119, 134, 144, 135, 142, 153, 128, 134, 148, 158, 141, 129, 122, 129, 143, 128, 136, 131, 137, 151, 128, 151, 136, 149, 151, 142, 132, 132, 147, 152, 150, 137, 139, 116, 128, 134, 138, 147, 117, 135, 117, 119, 148, 142, 140, 135, 146, 164, 142, 168, 156, 97, 142, 118, 134, 121, 144, 139, 150, 123, 141, 137, 156, 149, 143, 128, 140, 132, 130, 154, 135, 133, 144, 119, 132, 157, 132, 138, 133, 147, 135, 128, 129, 113, 130, 123, 142, 138, 149, 139, 145, 128, 146, 127, 132, 148, 126, 124, 153, 143, 137, 134, 124, 127, 128, 140, 134, 140, 150, 144, 131, 130, 128, 135, 135, 125, 129, 135, 122, 124, 130, 142, 129, 136, 138, 113, 141, 142, 130, 138, 144, 119, 112, 145, 140, 150, 132, 141, 153, 130, 146, 139, 128, 139, 143, 140, 118, 137, 137, 134, 137, 148, 130, 124, 131, 124, 129, 140, 123, 150, 129, 119, 123, 127, 140, 137, 143, 130, 155, 144, 133, 129, 118, 138, 133, 130, 106, 137, 143, 136, 131, 141, 142, 135, 134, 133, 123, 138, 127, 134, 141, 127, 137, 141, 137, 149, 154, 154, 136, 108, 140, 143, 131, 130, 138, 131, 129, 133, 124, 144, 159, 127, 138, 133, 122, 131, 139, 133, 129, 139, 132, 143, 131, 126, 146, 128, 131, 134, 145, 128, 136, 126, 127, 122, 157, 121, 149, 132, 135, 132, 136, 143, 128, 137, 130, 130, 124, 135, 127, 158, 139, 136, 140, 119, 143, 128, 124, 138, 135, 141, 142, 134, 133, 139, 140, 149, 148, 126, 136, 136, 128, 132, 156, 137, 131, 129, 133, 137, 137, 133, 129, 121, 131, 127, 119, 149, 139, 143, 133, 130, 127, 134, 131, 118, 142, 135, 131, 126, 147, 131, 150, 135, 132, 122, 128, 121, 128, 140, 129, 128, 136, 145, 133, 105, 134, 130, 121, 133, 124, 140, 148, 140, 157, 134, 130, 147, 143, 128, 147, 155, 129, 140, 130, 131, 134, 145, 135, 132, 152, 139, 141, 144, 126, 128, 151, 121, 135, 132, 137, 123, 138, 123, 135, 133, 132, 133, 128, 123, 124, 131, 127, 143, 132, 144, 129, 136, 134, 135, 147, 147, 132, 127, 140, 134, 134, 137, 125, 129, 136, 130, 134, 134, 133, 126, 134, 134, 147, 139, 133, 138, 135, 136, 136, 150, 130, 130, 129, 141, 134, 136, 136, 125, 138, 128, 132, 138, 138, 139, 132, 132, 146, 143, 136, 142, 133, 136, 124, 137, 121, 137, 131, 133, 134, 148, 137, 130, 142, 133, 148, 137, 147, 129, 135, 151, 126, 134, 141, 137, 140, 119, 118, 119, 137, 136, 139, 126, 130, 143, 138, 132, 153, 123, 130, 131, 143, 142, 139, 131, 143, 114, 131, 144, 139, 142, 123, 141, 132, 127, 139, 146, 133, 125, 129, 133, 132, 133, 125, 139, 127, 142, 140, 140, 143, 165, 104, 132, 142, 124, 133, 128, 139, 138, 133, 121, 123, 135, 127, 134, 128, 138, 131, 126, 133, 145, 128, 133, 131, 135, 146, 132, 119, 141, 138, 122, 147, 145, 127, 148, 137, 132, 118, 129, 129, 130, 136, 134, 129, 150, 120, 149, 130, 151, 142, 138, 127, 141, 132, 141, 136, 155, 116, 121, 146, 120, 155, 132, 130, 142, 138, 128, 136, 126, 133, 148, 141, 153, 140, 129, 160, 135, 147, 136, 144, 136, 136, 144, 132, 118, 157, 147, 132, 151, 141, 131, 138, 134, 122, 146, 138, 142, 131, 125, 140, 128, 123, 138, 140, 133, 140, 154, 136, 112, 129, 132, 139, 123, 150, 137, 133, 118, 125, 127, 140, 135, 139, 126, 127, 146, 120, 146, 161, 121, 136, 136, 133, 130, 131, 136, 138, 142, 121, 127, 135, 134, 131, 128, 130, 137, 140, 156, 148, 128, 144, 132, 138, 139, 138, 133, 149, 133, 137, 151, 131, 135, 140, 150, 113, 129, 133, 138, 127, 134, 143, 151, 131, 132, 139, 128, 143, 126, 131, 148, 137, 139, 140, 135, 146, 151, 124, 133, 134, 130, 151, 132, 132, 132, 131, 135, 131, 147, 123, 137, 137, 148, 135, 143, 142, 136, 137, 127, 140, 135, 127, 135, 122, 125, 126, 123, 149, 150, 149, 137, 160, 139, 137, 127, 135, 127, 144, 145, 127, 134, 149, 148, 142, 137, 134, 137, 141, 131, 121, 126, 119, 134, 143, 134, 126, 136, 163, 125, 134, 145, 141, 133, 142, 146, 120, 134, 130, 144, 135, 135, 141, 145, 133, 139, 126, 127, 120, 155, 143, 126, 123, 129, 134, 133, 139, 130, 130, 139, 137, 125, 139, 138, 143, 124, 143, 150, 134, 133, 132, 141, 140, 135, 135, 136, 129, 148, 132, 136, 138, 137, 143, 133, 136, 138, 132, 134, 130, 125, 119, 132, 133, 126, 132, 135, 141, 124, 141, 131, 132, 138, 137, 130, 136, 135, 138, 135, 133, 137, 145, 134, 129, 129, 135, 132, 140, 161, 133, 149, 140, 121, 135, 137, 128, 155, 144, 143, 141, 135, 131, 124, 123, 132, 138, 132, 137, 139, 133, 134, 130, 135, 133, 119, 134, 135, 134, 128, 137, 137, 142, 123, 131, 139, 143, 129, 129, 128, 124, 136, 130, 142, 145, 127, 135, 139, 136, 143, 138, 135, 135, 131, 140, 125, 131, 134, 138, 128, 141, 130, 144, 130, 140, 145, 137, 132, 139, 148, 135, 101, 125, 134, 152, 131, 134, 127, 130, 117, 140, 135, 143, 134, 146, 131, 138, 134, 135, 134, 126, 139, 136, 145, 129, 131, 138, 137, 131, 137, 136, 129, 131, 147, 134, 132, 132, 153, 127, 135, 136, 138, 122, 134, 124, 123, 136, 127, 124, 145, 138, 135, 136, 134, 130, 141, 128, 132, 134, 142, 136, 137, 140, 132, 142, 124, 143, 132, 142, 135, 130, 148, 138, 138, 135, 135, 136, 131, 132, 139, 132, 136, 136, 137, 148, 142, 126, 137, 137, 129, 136, 132, 137, 136, 133, 133, 130, 123, 130, 133, 133, 136, 137, 129, 132, 134, 140, 127, 150, 128, 130, 140, 139, 130, 140, 137, 137, 143, 129, 139, 147, 133, 134, 132, 138, 136, 127, 137, 137, 118, 147, 134, 142, 135, 140, 134, 139, 140, 135, 143, 126, 130, 127, 129, 136, 154, 135, 131, 145, 136, 131, 143, 132, 135, 133, 128, 138, 128, 133, 143, 140, 139, 128, 131, 127, 135, 130, 132, 136, 140, 124, 133, 137, 125, 125, 136, 129, 132, 132, 135, 128, 148, 133, 137, 127, 137, 142, 132, 127, 150, 131, 131, 124, 133, 138, 139, 122, 125, 124, 131, 130, 129, 139, 128, 128, 129, 133, 133, 133, 144, 142, 138, 129, 143, 139, 140, 147, 149, 120, 134, 132, 137, 126, 136, 128, 133, 146, 134, 161, 141, 137, 130, 132, 134, 117, 147, 122, 127, 130, 131, 128, 135, 131, 125, 132, 135, 133, 131, 132, 140, 136, 145, 132, 155, 127, 135, 138, 120, 135, 137, 140, 135, 126, 138, 140, 139, 135, 141, 143, 131, 136, 142, 136, 136, 143, 143, 126, 143, 137, 141, 136, 138, 139, 143, 144, 124, 145, 130, 135, 130, 131, 139, 119, 123, 121, 131, 133, 139, 130, 132, 134, 127, 132, 137, 136, 140, 134, 137, 142, 135, 134, 126, 153, 134, 112, 134, 131, 126, 131, 121, 131, 120, 133, 127, 134, 131, 135, 136, 138, 136, 123, 133, 137, 135, 137, 137, 132, 142, 132, 139, 127, 144, 139, 151, 129, 138, 133, 132, 136, 138, 140, 132, 143, 140, 129, 132, 132, 132, 132, 140, 122, 141, 124, 128, 129, 131, 139, 138, 136, 122, 139, 140, 139, 132, 134, 138, 149, 137, 135, 128, 132, 108, 139, 131, 141, 139, 137, 135, 146, 122, 133, 132, 132, 134, 134, 140, 139, 141, 141, 132, 138, 126, 121, 127, 127, 133, 135, 130, 131, 138, 140, 127, 130, 137, 126, 109, 133, 139, 142, 145, 150, 121, 144, 138, 134, 130, 140, 125, 128, 146, 116, 136, 126, 134, 136, 138, 125, 136, 139, 143, 133, 153, 132, 143, 141, 140, 126, 126, 129, 137, 139, 132, 146, 118, 157, 134, 124, 133, 127, 139, 131, 133, 145, 148, 135, 120, 127, 131, 139, 140, 152, 133, 130, 133, 141, 139, 134, 131, 126, 131, 135, 142, 131, 135, 147, 149, 148, 154, 144, 135, 135, 129, 140, 144, 150, 134, 146, 128, 138, 157, 132, 147, 141, 154, 129, 156, 149, 144, 132, 143, 136, 132, 134, 131, 140, 130, 136, 131, 138, 141, 132, 134, 129, 133, 144, 134, 132, 134, 127, 128, 136, 124, 135, 149, 141, 144, 136, 139, 128, 142, 131, 126, 135, 132, 133, 152, 139, 155, 125, 131, 132, 140, 131, 142, 136, 151, 133, 133, 138, 141, 156, 135, 148, 129, 136, 141, 140, 132, 129, 128, 124, 142, 134, 128, 141, 121, 132, 137, 142, 135, 128, 136, 140, 143, 132, 140, 133, 141, 136, 158, 133, 137, 123, 130, 172, 130, 134, 128, 133, 142, 133, 98, 134, 140, 144, 130, 133, 148, 134, 130, 112, 140, 143, 138, 143, 141, 133, 135, 130, 124, 133, 135, 143, 126, 136, 127, 134, 148, 132, 150, 124, 127, 132, 135, 126, 130, 124, 139, 140, 134, 136, 133, 140, 127, 128, 126, 135, 132, 136, 139, 128, 142, 130, 144, 150, 133, 125, 161, 139, 140, 120, 127, 132, 131, 123, 129, 145, 145, 140, 132, 124, 144, 136, 133, 121, 144, 121, 120, 128, 144, 111, 147, 127, 108, 138, 144, 131, 136, 121, 143, 128, 128, 125, 131, 142, 134, 137, 131, 138, 108, 136, 131, 142, 135, 133, 141, 130, 144, 132, 143, 131, 158, 131, 134, 139, 139, 139, 156, 136, 131, 142, 121, 142, 131, 142, 136, 133, 132, 138, 140, 144, 134, 138, 122, 151, 125, 127, 144, 132, 137, 146, 137, 123, 136, 139, 134, 139, 133, 114, 128, 136, 126, 123, 128, 140, 132, 145, 143, 132, 143, 140, 137, 145, 140, 145, 128, 102, 139, 147, 135, 129, 143, 148, 146, 139, 133, 128, 139, 143, 123, 143, 141, 138, 126, 142, 129, 152, 142, 138, 138, 139, 139, 121, 137, 147, 127, 136, 132, 131, 139, 125, 145, 134, 128, 141, 128, 124, 135, 132, 134, 135, 148, 133, 146, 126, 137, 139, 145, 146, 127, 134, 156, 131, 145, 133, 129, 144, 136, 141, 137, 127, 123, 146, 130, 132, 142, 133, 120, 137, 126, 135, 128, 120, 126, 117, 143, 136, 126, 132, 145, 140, 136, 135, 132, 122, 142, 131, 132, 142, 134, 139, 107, 144, 140, 139, 145, 133, 147, 136, 122, 132, 147, 139, 145, 132, 146, 152, 139, 146, 119, 133, 130, 140, 153, 145, 110, 129, 129, 137, 131, 142, 143, 142, 130, 142, 132, 141, 147, 128, 134, 131, 127, 142, 138, 143, 133, 137, 127, 129, 149, 146, 133, 129, 143, 137, 137, 131, 143, 134, 126, 128, 137, 122, 135, 131, 140, 135, 131, 132, 141, 147, 118, 142, 135, 137, 131, 141, 166, 133, 126, 134, 137, 123, 137, 122, 147, 140, 130, 129, 151, 129, 135, 135, 142, 125, 147, 130, 138, 149, 118, 129, 131, 130, 132, 145, 135, 130, 134, 131, 135, 128, 133, 141, 142, 138, 130, 144, 127, 138, 142, 129, 131, 163, 115, 115, 140, 155, 134, 129, 153, 139, 143, 139, 151, 115, 136, 138, 145, 142, 133, 132, 132, 128, 129, 137, 131, 122, 136, 147, 144, 130, 128, 142, 119, 136, 134, 131, 121, 143, 131, 134, 136, 129, 139, 138, 129, 133, 132, 132, 132, 129, 144, 150, 130, 144, 139, 139, 144, 147, 131, 139, 162, 126, 136, 152, 142, 144, 142, 122, 114, 142, 125, 135, 139, 144, 153, 123, 132, 117, 152, 129, 143, 135, 139, 122, 135, 125, 143, 136, 133, 145, 127, 133, 119, 141, 130, 148, 131, 128, 134, 160, 141, 131, 127, 131, 129, 128, 125, 139, 135, 139, 138, 131, 123, 130, 119, 126, 149, 142, 126, 125, 129, 130, 135, 136, 139, 135, 141, 133, 144, 133, 125, 125, 124, 130, 137, 133, 138, 139, 160, 129, 132, 141, 142, 143, 136, 136, 118, 126, 139, 137, 136, 140, 136, 132, 126, 125, 129, 134, 125, 137, 138, 136, 137, 121, 128, 142, 116, 126, 137, 141, 139, 147, 144, 132, 160, 142, 141, 126, 141, 148, 136, 137, 134, 134, 143, 139, 137, 130, 137, 133, 119, 137, 135, 125, 137, 130, 122, 143, 145, 128, 128, 131, 131, 122, 130, 130, 143, 135, 135, 128, 135, 138, 148, 134, 133, 138, 150, 133, 137, 136, 133, 133, 138, 131, 123, 145, 134, 133, 131, 137, 154, 144, 139, 138, 129, 126, 128, 151, 134, 142, 138, 134, 130, 153, 121, 128, 143, 130, 142, 137, 139, 135, 135, 132, 131, 136, 134, 133, 138, 114, 128, 115, 145, 135, 147, 130, 132, 134, 137, 130, 128, 131, 135, 130, 121, 129, 150, 135, 132, 128, 125, 139, 142, 129, 129, 143, 141, 116, 137, 123, 134, 143, 137, 128, 146, 136, 135, 144, 138, 138, 133, 136, 143, 131, 126, 142, 130, 136, 116, 141, 134, 129, 155, 125, 122, 145, 147, 145, 128, 138, 133, 136, 125, 134, 145, 143, 130, 125, 122, 142, 144, 136, 122, 127, 142, 144, 134, 124, 126, 138, 128, 124, 154, 124, 122, 147, 142, 137, 133, 141, 167, 122, 134, 137, 146, 116, 138, 141, 139, 125, 147, 142, 124, 129, 135, 142, 149, 134, 128, 147, 150, 155, 129, 132, 137, 142, 125, 148, 141, 132, 141, 144, 141, 134, 137, 133, 137, 128, 140, 140, 132, 147, 134, 148, 137, 134, 129, 130, 125, 142, 128, 137, 129, 126, 142, 136, 142, 129, 137, 135, 117, 126, 133, 145, 149, 132, 151, 141, 144, 147, 121, 129, 135, 135, 148, 127, 132, 141, 128, 150, 131, 144, 126, 131, 144, 135, 124, 150, 134, 130, 148, 134, 143, 127, 133, 142, 134, 132, 132, 139, 156, 133, 146, 138, 136, 132, 131, 127, 127, 133, 121, 121, 142, 140, 139, 145, 163, 128, 144, 133, 140, 137, 138, 117, 130, 137, 152, 126, 130, 136, 131, 135, 136, 142, 122, 123, 130, 135, 127, 133, 128, 128, 128, 141, 135, 130, 134, 135, 137, 128, 138, 143, 130, 129, 131, 157, 130, 138, 134, 132, 136, 152, 125, 126, 128, 139, 142, 143, 132, 145, 135, 125, 136, 114, 153, 138, 120, 145, 117, 152, 124, 132, 136, 121, 154, 139, 128, 124, 133, 132, 120, 154, 157, 142, 130, 141, 164, 122, 137, 141, 144, 140, 135, 129, 133, 138, 147, 158, 155, 129, 130, 126, 136, 139, 146, 116, 132, 132, 134, 143, 148, 136, 136, 144, 151, 138, 131, 132, 132, 131, 119, 128, 119, 135, 133, 148, 129, 135, 122, 132, 120, 122, 129, 128, 128, 161, 138, 131, 147, 137, 143, 137, 122, 126, 137, 131, 156, 150, 162, 138, 144, 140, 144, 149, 136, 140, 136, 130, 121, 138, 145, 135, 138, 126, 149, 139, 134, 139, 133, 143, 128, 128, 153, 131, 142, 141, 132, 122, 133, 135, 135, 146, 129, 136, 121, 132, 161, 157, 126, 143, 142, 137, 134, 144, 136, 148, 138, 142, 132, 153, 149, 133, 126, 149, 142, 127, 131, 147, 134, 140, 122, 130, 127, 145, 134, 136, 139, 148, 129, 125, 132, 128, 132, 145, 137, 145, 159, 128, 147, 129, 137, 131, 142, 146, 123, 135, 132, 112, 139, 126, 132, 132, 136, 140, 135, 133, 140, 130, 139, 153, 125, 138, 130, 121, 139, 124, 127, 130, 135, 146, 148, 140, 133, 131, 148, 124, 143, 137, 139, 136, 137, 131, 128, 146, 137, 146, 139, 136, 141, 139, 130, 131, 133, 141, 137, 144, 146, 130, 116, 147, 142, 137, 137, 130, 136, 150, 124, 131, 130, 135, 137, 143, 118, 127, 132, 124, 133, 145, 141, 135, 139, 139, 132, 139, 152, 143, 138, 133, 129, 138, 143, 130, 146, 146, 119, 142, 140, 133, 149, 135, 127, 121, 134, 132, 124, 132, 128, 137, 117, 152, 130, 144, 132, 146, 137, 153, 135, 141, 125, 161, 164, 153, 136, 130, 135, 146, 131, 142, 138, 145, 152, 141, 140, 137, 140, 136, 134, 143, 135, 143, 126, 134, 140, 135, 124, 161, 137, 121, 130, 124, 135, 116, 141, 128, 133, 137, 141, 136, 124, 157, 142, 145, 129, 133, 148, 151, 106, 137, 148, 149, 140, 125, 141, 147, 150, 137, 138, 143, 136, 136, 126, 119, 130, 133, 134, 149, 130, 145, 127, 135, 150, 134, 147, 133, 139, 114, 143, 128, 134, 121, 129, 142, 134, 144, 150, 122, 141, 144, 142, 144, 136, 131, 131, 140, 133, 134, 133, 129, 134, 132, 152, 144, 145, 133, 124, 129, 131, 147, 169, 132, 141, 134, 133, 137, 126, 135, 125, 149, 134, 139, 130, 154, 127, 139, 153, 130, 141, 148, 141, 134, 135, 134, 137, 134, 138, 149, 122, 134, 131, 125, 127, 137, 127, 133, 133, 138, 122, 141, 132, 133, 144, 126, 152, 130, 142, 138, 135, 156, 129, 124, 135, 146, 117, 129, 127, 135, 143, 139, 136, 135, 122, 134, 137, 131, 140, 157, 121, 149, 110, 134, 141, 140, 138, 126, 122, 123, 145, 130, 144, 140, 140, 136, 129, 145, 139, 135, 141, 134, 139, 150, 135, 138, 131, 134, 133, 132, 131, 126, 131, 137, 134, 137, 141, 144, 140, 127, 133, 152, 135, 148, 133, 134, 140, 134, 129, 108, 122, 152, 146, 137, 131, 128, 134, 126, 127, 140, 128, 140, 142, 134, 137, 134, 149, 124, 133, 131, 118, 142, 133, 152, 121, 147, 147, 139, 140, 153, 148, 129, 158, 121, 139, 136, 130, 151, 149, 129, 132, 139, 140, 128, 136, 134, 134, 140, 158, 128, 142, 135, 130, 136, 130, 144, 129, 136, 131, 130, 166, 114, 132, 133, 129, 129, 134, 142, 143, 136, 140, 138, 135, 130, 132, 124, 136, 143, 139, 138, 142, 135, 139, 129, 128, 143, 131, 132, 130, 125, 140, 140, 133, 142, 133, 124, 130, 132, 125, 138, 143, 130, 146, 123, 131, 135, 137, 137, 121, 131, 144, 149, 139, 147, 118, 127, 131, 136, 139, 118, 144, 138, 129, 127, 148, 128, 143, 137, 123, 133, 129, 141, 133, 131, 136, 144, 129, 123, 125, 155, 129, 135, 150, 133, 128, 138, 159, 141, 133, 142, 130, 135, 126, 127, 131, 143, 133, 135, 136, 131, 149, 123, 138, 127, 140, 136, 147, 140, 128, 135, 156, 124, 137, 135, 141, 142, 140, 131, 140, 166, 142, 135, 129, 126, 127, 126, 136, 130, 141, 133, 124, 137, 135, 132, 153, 140, 136, 148, 124, 130, 137, 144, 153, 137, 137, 138, 118, 110, 123, 154, 122, 128, 143, 146, 125, 142, 132, 129, 155, 134, 140, 146, 125, 140, 126, 150, 142, 139, 131, 131, 142, 149, 147, 131, 125, 136, 146, 140, 128, 132, 138, 137, 131, 133, 135, 140, 130, 137, 154, 136, 145, 142, 132, 132, 127, 140, 147, 136, 128, 135, 140, 143, 150, 114, 133, 135, 140, 124, 142, 136, 137, 131, 121, 142, 152, 151, 135, 119, 133, 142, 131, 127, 136, 127, 127, 148, 140, 128, 133, 138, 127, 127, 138, 136, 148, 141, 140, 150, 126, 110, 151, 168, 134, 145, 121, 125, 134, 129, 132, 140, 122, 134, 156, 142, 142, 124, 133, 136, 141, 145, 129, 125, 137, 127, 137, 126, 118, 116, 135, 129, 132, 132, 144, 153, 144, 141, 139, 135, 148, 122, 137, 137, 125, 130, 141, 131, 138, 128, 128, 129, 131, 128, 133, 135, 139, 140, 132, 149, 138, 124, 132, 142, 122, 149, 132, 133, 139, 123, 135, 143, 138, 136, 129, 142, 129, 133, 138, 143, 123, 143, 136, 131, 141, 142, 131, 147, 141, 133, 135, 156, 116, 139, 140, 147, 158, 145, 151, 134, 165, 126, 141, 127, 121, 138, 133, 119, 124, 139, 142, 127, 131, 132, 139, 135, 146, 137, 142, 133, 152, 134, 129, 140, 132, 135, 144, 136, 136, 128, 129, 123, 141, 135, 142, 142, 127, 138, 134, 136, 143, 118, 121, 136, 121, 134, 145, 139, 149, 142, 136, 147, 137, 150, 130, 122, 131, 132, 141, 161, 132, 138, 130, 118, 145, 114, 141, 142, 133, 132, 135, 136, 133, 149, 136, 146, 136, 127, 135, 134, 134, 144, 127, 139, 137, 126, 130, 123, 133, 130, 140, 140, 140, 144, 142, 135, 133, 121, 121, 130, 140, 130, 144, 129, 133, 132, 166, 144, 130, 143, 127, 149, 137, 135, 133, 142, 144, 139, 126, 145, 135, 132, 142, 137, 137, 122, 127, 115, 144, 148, 146, 129, 142, 136, 137, 143, 146, 140, 137, 133, 139, 144, 127, 117, 146, 127, 140, 126, 128, 141, 104, 140, 154, 128, 138, 145, 138, 141, 140, 139, 147, 140, 134, 129, 138, 141, 136, 121, 149, 148, 127, 143, 133, 120, 132, 145, 137, 135, 134, 126, 152, 132, 141, 122, 141, 141, 154, 135, 145, 138, 111, 135, 127, 130, 130, 147, 126, 141, 141, 125, 143, 127, 137, 146, 136, 145, 138, 136, 132, 131, 130, 142, 151, 136, 129, 125, 139, 127, 127, 135, 136, 132, 147, 143, 141, 128, 142, 122, 138, 138, 141, 141, 135, 140, 139, 149, 135, 143, 135, 145, 138, 138, 144, 131, 146, 143, 137, 141, 132, 145, 140, 128, 131, 138, 129, 148, 145, 124, 132, 135, 146, 140, 146, 134, 143, 134, 137, 148, 153, 149, 119, 137, 144, 135, 134, 144, 137, 137, 146, 137, 139, 129, 139, 128, 142, 139, 145, 105, 129, 151, 134, 137, 141, 146, 140, 125, 147, 130, 134, 142, 147, 128, 133, 141, 143, 122, 146, 122, 129, 137, 141, 146, 134, 121, 144, 139, 126, 152, 146, 127, 133, 121, 137, 132, 138, 136, 141, 123, 145, 139, 135, 139, 146, 127, 126, 125, 136, 147, 130, 132, 136, 145, 141, 111, 130, 145, 133, 141, 130, 120, 137, 145, 130, 137, 131, 134, 144, 133, 135, 139, 142, 136, 145, 139, 137, 126, 139, 130, 138, 141, 137, 142, 136, 123, 136, 138, 135, 138, 127, 135, 145, 140, 134, 130, 148, 114, 136, 125, 132, 141, 138, 124, 125, 145, 137, 134, 143, 142, 137, 135, 138, 142, 130, 131, 153, 133, 146, 130, 128, 128, 127, 133, 135, 137, 149, 140, 149, 129, 137, 141, 134, 137, 133, 139, 136, 133, 143, 149, 123, 132, 151, 130, 143, 129, 127, 119, 146, 131, 117, 125, 142, 140, 133, 143, 135, 137, 135, 142, 135, 132, 147, 126, 140, 137, 135, 137, 142, 130, 144, 133, 140, 119, 145, 157, 143, 130, 143, 143, 133, 149, 134, 134, 140, 134, 143, 157, 152, 129, 137, 145, 123, 148, 140, 137, 143, 145, 128, 144, 139, 140, 152, 130, 123, 133, 148, 133, 145, 137, 142, 139, 153, 148, 126, 141, 131, 153, 130, 135, 139, 133, 122, 130, 137, 144, 155, 135, 129, 140, 148, 134, 144, 143, 127, 122, 134, 136, 138, 142, 135, 134, 121, 134, 135, 132, 130, 139, 137, 148, 145, 132, 131, 122, 135, 124, 132, 135, 146, 152, 149, 136, 116, 148, 127, 132, 145, 143, 138, 145, 139, 149, 131, 127, 142, 134, 140, 125, 156, 146, 139, 150, 118, 143, 142, 135, 144, 148, 135, 145, 129, 146, 130, 130, 130, 126, 115, 136, 148, 148, 146, 133, 137, 141, 128, 126, 114, 130, 152, 133, 140, 146, 139, 126, 125, 139, 136, 135, 127, 131, 135, 134, 145, 135, 142, 151, 133, 122, 143, 139, 134, 147, 140, 132, 140, 140, 139, 150, 123, 135, 141, 137, 127, 138, 127, 134, 126, 138, 155, 131, 142, 121, 121, 113, 113, 121, 139, 136, 141, 143, 131, 158, 127, 132, 137, 151, 116, 144, 136, 135, 150, 132, 143, 106, 129, 122, 139, 127, 126, 132, 134, 139, 136, 127, 135, 142, 151, 116, 135, 137, 118, 135, 141, 129, 129, 125, 130, 133, 142, 112, 123, 126, 147, 143, 143, 138, 155, 138, 127, 136, 139, 144, 129, 134, 134, 126, 137, 131, 131, 150, 142, 129, 141, 123, 135, 154, 128, 152, 134, 133, 125, 144, 143, 125, 148, 133, 148, 141, 125, 136, 150, 139, 114, 127, 134, 135, 131, 134, 134, 141, 138, 152, 135, 124, 129, 143, 136, 139, 134, 124, 129, 133, 140, 144, 126, 144, 133, 136, 138, 136, 140, 147, 145, 133, 125, 127, 138, 129, 129, 155, 112, 127, 144, 153, 138, 131, 138, 131, 130, 123, 123, 145, 143, 154, 128, 130, 138, 139, 150, 124, 124, 138, 140, 149, 148, 132, 127, 144, 128, 139, 140, 133, 152, 118, 121, 119, 145, 144, 140, 140, 117, 142, 134, 133, 125, 140, 120, 141, 124, 135, 135, 133, 141, 132, 143, 136, 133, 139, 134, 126, 129, 138, 134, 140, 126, 143, 120, 136, 163, 122, 132, 147, 147, 149, 129, 142, 123, 134, 133, 139, 141, 145, 143, 123, 145, 144, 125, 123, 142, 126, 134, 122, 134, 129, 138, 130, 130, 135, 141, 136, 129, 134, 141, 137, 129, 147, 134, 132, 127, 140, 147, 131, 148, 139, 128, 123, 127, 132, 142, 126, 148, 134, 133, 134, 125, 124, 127, 140, 124, 126, 138, 139, 148, 141, 135, 129, 143, 125, 133, 140, 135, 146, 140, 138, 129, 137, 129, 149, 128, 135, 125, 126, 140, 133, 148, 141, 141, 127, 144, 131, 141, 142, 139, 147, 139, 149, 137, 138, 140, 138, 134, 139, 140, 139, 146, 149, 136, 138, 142, 130, 138, 148, 133, 141, 141, 143, 123, 139, 126, 141, 142, 144, 155, 132, 146, 160, 151, 123, 140, 133, 147, 136, 160, 137, 133, 130, 137, 142, 126, 145, 130, 129, 150, 126, 133, 127, 136, 118, 130, 148, 137, 133, 144, 131, 128, 130, 146, 124, 130, 128, 142, 133, 124, 145, 134, 136, 165, 137, 140, 144, 135, 138, 135, 138, 118, 137, 133, 127, 134, 135, 143, 142, 128, 143, 140, 137, 123, 129, 142, 151, 128, 145, 151, 139, 136, 147, 144, 123, 134, 137, 140, 133, 147, 144, 143, 125, 126, 144, 113, 155, 130, 123, 155, 150, 119, 115, 146, 142, 144, 152, 124, 145, 143, 143, 135, 127, 130, 140, 150, 143, 137, 129, 131, 129, 139, 127, 146, 133, 145, 140, 128, 144, 141, 134, 132, 123, 143, 141, 133, 155, 144, 132, 141, 141, 119, 136, 124, 129, 125, 138, 146, 139, 144, 141, 129, 138, 134, 148, 134, 146, 126, 129, 129, 137, 126, 129, 135, 132, 144, 141, 139, 129, 133, 125, 138, 141, 129, 145, 125, 131, 138, 138, 135, 144, 144, 150, 145, 137, 133, 137, 150, 116, 122, 146, 128, 143, 130, 139, 135, 140, 157, 141, 130, 138, 135, 142, 124, 139, 125, 128, 131, 146, 144, 130, 130, 122, 136, 148, 134, 140, 132, 123, 140, 141, 132, 135, 134, 123, 121, 132, 137, 135, 132, 158, 122, 141, 129, 136, 134, 142, 143, 129, 131, 143, 136, 126, 140, 142, 110, 142, 131, 141, 136, 147, 131, 130, 144, 101, 141, 128, 138, 129, 132, 136, 126, 135, 135, 136, 140, 141, 131, 128, 129, 146, 141, 140, 142, 139, 129, 138, 125, 147, 138, 147, 130, 135, 130, 139, 136, 144, 128, 148, 138, 142, 136, 131, 139, 138, 120, 141, 144, 133, 139, 132, 148, 142, 142, 140, 130, 135, 132, 125, 129, 148, 127, 131, 135, 150, 134, 132, 130, 122, 134, 149, 137, 114, 133, 136, 123, 139, 139, 128, 125, 138, 130, 137, 144, 136, 134, 137, 130, 131, 136, 116, 135, 167, 136, 155, 145, 133, 134, 138, 135, 141, 138, 132, 144, 123, 124, 131, 138, 133, 143, 138, 131, 162, 131, 135, 129, 128, 131, 140, 138, 138, 131, 134, 146, 144, 150, 120, 128, 146, 133, 137, 137, 140, 133, 130, 150, 139, 142, 129, 126, 137, 155, 131, 146, 122, 138, 127, 150, 129, 141, 137, 144, 156, 135, 129, 134, 145, 135, 134, 139, 127, 126, 163, 148, 131, 148, 133, 116, 131, 133, 134, 141, 126, 124, 128, 139, 131, 132, 129, 141, 126, 142, 149, 128, 130, 133, 144, 128, 115, 141, 123, 126, 127, 128, 151, 143, 146, 132, 146, 141, 133, 139, 140, 138, 132, 134, 125, 119, 156, 134, 126, 135, 145, 142, 136, 133, 122, 136, 126, 121, 131, 143, 129, 127, 136, 129, 135, 135, 136, 125, 135, 131, 136, 130, 135, 137, 136, 150, 160, 127, 135, 138, 130, 138, 141, 129, 140, 134, 142, 154, 129, 136, 150, 136, 140, 136, 136, 131, 110, 128, 133, 136, 131, 139, 136, 131, 129, 140, 133, 148, 132, 143, 151, 145, 139, 131, 125, 120, 137, 135, 124, 135, 137, 122, 132, 145, 159, 149, 133, 148, 143, 131, 125, 129, 129, 140, 147, 134, 129, 140, 132, 147, 152, 121, 141, 127, 139, 134, 129, 147, 143, 140, 132, 133, 133, 136, 142, 137, 135, 134, 133, 144, 141, 138, 128, 135, 139, 124, 132, 144, 127, 139, 142, 137, 142, 123, 142, 150, 150, 144, 135, 141, 130, 142, 136, 138, 140, 135, 142, 136, 146, 144, 135, 132, 131, 139, 122, 130, 154, 129, 130, 148, 123, 126, 130, 137, 129, 138, 131, 136, 144, 122, 130, 149, 135, 135, 122, 137, 153, 132, 124, 129, 133, 119, 145, 107, 136, 138, 129, 131, 148, 130, 141, 126, 140, 143, 143, 129, 113, 131, 135, 136, 147, 101, 147, 122, 131, 143, 142, 126, 123, 141, 148, 138, 133, 123, 124, 149, 149, 132, 121, 123, 146, 147, 133, 135, 142, 110, 137, 137, 132, 148, 127, 120, 143, 141, 155, 141, 150, 134, 118, 153, 159, 142, 128, 146, 147, 141, 145, 149, 115, 143, 127, 121, 136, 120, 133, 128, 153, 142, 138, 134, 140, 115, 134, 139, 136, 115, 156, 131, 129, 121, 135, 124, 130, 133, 134, 142, 140, 139, 139, 145, 127, 131, 126, 125, 136, 133, 130, 140, 122, 132, 124, 130, 139, 110, 155, 132, 149, 162, 139, 127, 133, 137, 134, 156, 149, 124, 136, 125, 132, 158, 134, 129, 138, 142, 145, 154, 130, 141, 140, 140, 129, 125, 128, 136, 142, 130, 126, 109, 140, 136, 145, 137, 131, 134, 120, 132, 129, 143, 122, 125, 146, 150, 135, 139, 144, 138, 146, 133, 136, 138, 135, 133, 128, 148, 131, 151, 132, 143, 128, 122, 200, 133, 160, 144, 131, 131, 124, 111, 148, 128, 148, 132, 134, 149, 145, 147, 141, 134, 141, 134, 144, 154, 137, 131, 139, 136, 132, 143, 130, 130, 141, 128, 163, 151, 136, 132, 125, 148, 121, 127, 115, 147, 145, 138, 149, 133, 131, 120, 131, 140, 122, 135, 140, 139, 116, 129, 123, 127, 134, 134, 130, 132, 153, 131, 132, 145, 120, 131, 147, 149, 138, 151, 143, 143, 124, 136, 126, 140, 167, 124, 130, 135, 129, 140, 117, 124, 137, 159, 138, 118, 137, 137, 134, 139, 141, 159, 134, 129, 115, 153, 148, 129, 127, 133, 151, 118, 146, 115, 136, 126, 131, 118, 134, 128, 131, 141, 143, 122, 130, 148, 129, 149, 138, 157, 129, 131, 162, 128, 131, 119, 128, 143, 147, 152, 132, 138, 125, 138, 123, 139, 134, 142, 127, 125, 138, 140, 136, 136, 100, 141, 133, 150, 136, 139, 124, 131, 138, 141, 131, 139, 125, 134, 133, 131, 129, 130, 132, 129, 118, 142, 125, 146, 135, 130, 137, 137, 158, 127, 150, 142, 120, 129, 141, 138, 132, 119, 144, 135, 146, 136, 133, 140, 127, 144, 142, 128, 156, 158, 166, 150, 146, 122, 149, 134, 169, 123, 139, 144, 136, 115, 128, 131, 151, 131, 117, 139, 131, 144, 156, 156, 149, 133, 138, 135, 128, 132, 147, 112, 146, 132, 157, 107, 138, 126, 146, 139, 133, 121, 147, 140, 110, 145, 127, 142, 132, 134, 140, 140, 132, 152, 135, 116, 131, 148, 125, 142, 142, 128, 129, 138, 137, 132, 115, 143, 129, 131, 138, 135, 124, 132, 115, 164, 124, 122, 140, 125, 122, 125, 126, 131, 120, 130, 139, 143, 152, 143, 138, 138, 116, 153, 152, 121, 135, 131, 123, 152, 130, 129, 146, 147, 123, 146, 153, 139, 128, 129, 117, 140, 147, 109, 133, 144, 127, 123, 142, 146, 123, 132, 147, 144, 131, 127, 136, 149, 130, 136, 118, 129, 129, 138, 137, 122, 130, 137, 125, 137, 130, 137, 124, 127, 141, 135, 142, 147, 140, 128, 141, 141, 130, 146, 114, 123, 127, 124, 133, 133, 135, 133, 156, 140, 132, 133, 124, 138, 136, 122, 133, 151, 126, 145, 120, 147, 136, 140, 128, 133, 150, 126, 134, 130, 133, 146, 155, 134, 155, 135, 135, 151, 129, 131, 136, 135, 145, 124, 136, 138, 142, 136, 122, 127, 130, 138, 152, 128, 151, 151, 140, 126, 127, 136, 128, 134, 122, 139, 127, 129, 134, 129, 129, 143, 139, 135, 137, 133, 131, 137, 144, 123, 134, 115, 126, 147, 136, 129, 136, 137, 126, 131, 132, 137, 134, 134, 138, 128, 146, 124, 136, 132, 137, 118, 147, 136, 137, 142, 137, 134, 134, 127, 126, 138, 151, 138, 143, 138, 146, 135, 130, 135, 135, 141, 153, 135, 136, 143, 138, 136, 147, 129, 129, 125, 140, 136, 136, 135, 138, 135, 123, 145, 132, 140, 129, 139, 124, 134, 132, 126, 131, 130, 125, 131, 128, 138, 132, 135, 135, 130, 131, 141, 127, 124, 143, 143, 143, 143, 131, 136, 136, 132, 124, 131, 141, 148, 139, 130, 142, 130, 131, 147, 133, 138, 155, 143, 133, 122, 143, 136, 133, 152, 121, 129, 134, 129, 114, 128, 134, 148, 134, 144, 145, 136, 143, 136, 145, 128, 140, 133, 124, 128, 138, 138, 143, 147, 123, 136, 133, 146, 129, 127, 143, 142, 144, 142, 131, 132, 131, 121, 129, 133, 124, 138, 130, 143, 125, 135, 135, 141, 124, 139, 132, 137, 134, 124, 134, 171, 151, 130, 143, 148, 129, 144, 136, 122, 126, 154, 127, 144, 126, 142, 135, 147, 164, 134, 141, 139, 136, 134, 135, 142, 133, 135, 132, 121, 133, 127, 113, 145, 137, 127, 137, 148, 141, 145, 145, 136, 144, 109, 120, 127, 127, 172, 129, 124, 151, 143, 137, 154, 129, 130, 144, 146, 156, 136, 132, 133, 137, 140, 114, 122, 139, 133, 159, 138, 130, 140, 139, 134, 115, 140, 145, 131, 117, 142, 135, 149, 132, 147, 143, 130, 127, 137, 159, 155, 129, 121, 144, 141, 156, 123, 136, 139, 128, 136, 142, 122, 136, 123, 145, 131, 130, 143, 139, 131, 137, 136, 151, 138, 131, 138, 136, 137, 122, 122, 160, 125, 139, 134, 132, 123, 134, 145, 126, 138, 137, 139, 124, 129, 142, 140, 128, 139, 113, 128, 131, 141, 157, 140, 153, 142, 131, 136, 138, 130, 138, 150, 145, 141, 133, 138, 133, 132, 153, 135, 138, 136, 120, 139, 134, 136, 139, 130, 122, 140, 122, 126, 122, 162, 142, 142, 138, 144, 134, 145, 137, 132, 135, 132, 141, 142, 138, 130, 142, 136, 121, 136, 144, 122, 149, 126, 136, 149, 119, 125, 130, 143, 139, 129, 136, 158, 129, 135, 128, 132, 105, 159, 131, 140, 154, 131, 128, 130, 137, 135, 125, 139, 135, 129, 124, 133, 132, 124, 123, 126, 141, 134, 126, 146, 123, 116, 122, 141, 132, 134, 135, 124, 140, 129, 123, 148, 140, 130, 140, 124, 137, 129, 137, 139, 134, 129, 141, 143, 131, 126, 135, 131, 136, 139, 129, 139, 139, 139, 136, 131, 128, 121, 120, 131, 125, 129, 148, 133, 134, 146, 128, 147, 123, 135, 142, 136, 136, 132, 132, 139, 131, 132, 132, 124, 140, 150, 144, 130, 131, 132, 139, 132, 119, 132, 137, 125, 140, 127, 132, 140, 140, 147, 134, 137, 127, 153, 142, 124, 140, 139, 138, 130, 133, 135, 139, 124, 145, 132, 138, 124, 130, 133, 126, 145, 122, 140, 134, 141, 137, 144, 131, 132, 143, 128, 148, 129, 140, 139, 125, 141, 124, 138, 140, 123, 143, 134, 158, 127, 143, 134, 129, 135, 146, 129, 137, 134, 135, 143, 149, 131, 142, 141, 131, 130, 133, 123, 134, 132, 128, 142, 132, 132, 137, 137, 136, 139, 134, 131, 135, 138, 143, 142, 129, 126, 120, 123, 128, 128, 138, 137, 131, 133, 136, 126, 133, 135, 135, 133, 128, 131, 130, 136, 134, 142, 124, 137, 132, 145, 143, 141, 145, 133, 142, 137, 134, 128, 128, 136, 138, 126, 127, 125, 127, 136, 131, 137, 144, 137, 153, 145, 135, 134, 131, 132, 134, 143, 139, 125, 139, 141, 137, 140, 146, 121, 134, 153, 136, 157, 144, 133, 128, 135, 137, 138, 130, 141, 131, 130, 137, 131, 141, 145, 138, 143, 150, 127, 136, 140, 141, 131, 139, 130, 136, 138, 131, 135, 132, 114, 137, 143, 139, 143, 120, 129, 136, 127, 136, 137, 136, 150, 130, 137, 137, 132, 136, 133, 136, 141, 131, 147, 131, 141, 131, 137, 137, 138, 124, 137, 134, 135, 143, 139, 146, 140, 124, 137, 133, 129, 130, 139, 140, 139, 134, 126, 138, 137, 135, 147, 135, 134, 138, 128, 143, 119, 140, 129, 133, 133, 129, 139, 149, 135, 136, 148, 135, 139, 149, 132, 127, 147, 121, 139, 131, 138, 137, 131, 136, 133, 134, 143, 134, 146, 136, 151, 133, 112, 131, 142, 123, 140, 141, 124, 138, 133, 129, 133, 132, 128, 146, 116, 141, 137, 133, 136, 132, 132, 146, 141, 139, 137, 134, 143, 145, 134, 143, 139, 130, 132, 137, 129, 133, 134, 129, 138, 153, 137, 130, 129, 139, 131, 125, 144, 130, 150, 133, 134, 131, 132, 142, 127, 133, 127, 133, 121, 143, 143, 138, 135, 134, 136, 125, 133, 132, 137, 145, 141, 139, 132, 127, 153, 146, 140, 142, 127, 128, 133, 125, 141, 128, 139, 135, 125, 125, 141, 130, 138, 121, 118, 145, 134, 137, 142, 138, 132, 145, 129, 130, 141, 139, 131, 148, 143, 135, 127, 137, 124, 146, 124, 136, 143, 125, 144, 139, 142, 136, 137, 134, 123, 126, 148, 128, 131, 137, 133, 129, 140, 131, 131, 136, 133, 143, 133, 140, 132, 122, 139, 136, 145, 144, 132, 143, 132, 137, 137, 114, 158, 122, 143, 141, 140, 137, 142, 145, 141, 133, 130, 135, 128, 130, 139, 137, 128, 133, 132, 133, 134, 111, 125, 147, 132, 136, 143, 135, 135, 135, 151, 138, 131, 137, 135, 133, 136, 140, 137, 131, 141, 132, 132, 129, 145, 139, 130, 139, 139, 136, 129, 136, 138, 134, 129, 132, 137, 134, 130, 144, 139, 141, 132, 146, 133, 128, 137, 145, 143, 141, 127, 139, 140, 150, 143, 146, 133, 129, 126, 136, 141, 140, 131, 134, 138, 134, 135, 128, 146, 137, 127, 135, 135, 134, 136, 140, 136, 124, 132, 126, 131, 145, 135, 139, 132, 138, 137, 135, 139, 137, 131, 131, 134, 135, 130, 144, 134, 134, 138, 137, 148, 126, 135, 145, 136, 135, 143, 135, 136, 138, 138, 133, 125, 135, 137, 148, 136, 131, 143, 138, 135, 131, 133, 136, 135, 144, 140, 137, 104, 143, 137, 119, 139, 148, 137, 133, 139, 146, 130, 142, 134, 127, 141, 132, 136, 151, 139, 138, 131, 121, 143, 137, 129, 138, 183, 125, 140, 128, 140, 132, 136, 131, 136, 135, 142, 143, 127, 144, 131, 143, 141, 144, 139, 138, 140, 131, 137, 137, 124, 137, 128, 151, 148, 136, 135, 144, 132, 139, 141, 137, 125, 142, 141, 133, 123, 141, 141, 131, 138, 135, 133, 138, 134, 135, 150, 133, 134, 141, 136, 137, 183, 139, 148, 127, 135, 144, 128, 137, 139, 131, 129, 131, 138, 139, 130, 133, 133, 135, 131, 133, 125, 136, 134, 147, 141, 138, 132, 134, 137, 144, 147, 137, 140, 133, 145, 135, 142, 142, 136, 146, 130, 134, 135, 140, 142, 127, 123, 127, 144, 133, 120, 142, 140, 137, 126, 119, 134, 132, 133, 140, 135, 138, 135, 134, 135, 148, 141, 135, 144, 133, 123, 135, 140, 139, 130, 131, 129, 128, 127, 134, 139, 130, 134, 130, 132, 133, 131, 130, 139, 147, 133, 139, 138, 129, 137, 132, 139, 134, 143, 144, 124, 143, 131, 138, 136, 133, 135, 141, 138, 131, 137, 125, 140, 136, 142, 132, 131, 133, 144, 136, 140, 151, 128, 138, 157, 141, 131, 136, 136, 135, 131, 120, 129, 133, 134, 143, 135, 122, 139, 137, 138, 141, 149, 135, 137, 133, 128, 129, 134, 123, 134, 140, 132, 141, 142, 133, 134, 130, 130, 141, 134, 131, 137, 135, 133, 151, 156, 139, 140, 126, 146, 141, 138, 138, 125, 141, 139, 131, 127, 138, 125, 139, 135, 127, 139, 137, 136, 136, 143, 134, 140, 134, 131, 143, 149, 141, 139, 123, 136, 136, 134, 131, 128, 137, 146, 140, 131, 135, 134, 132, 143, 145, 135, 137, 138, 139, 142, 175, 133, 138, 128, 125, 136, 134, 146, 140, 130, 129, 136, 140, 131, 144, 132, 122, 138, 138, 135, 135, 137, 137, 133, 135, 143, 133, 131, 133, 139, 134, 138, 131, 142, 134, 134, 137, 149, 129, 130, 138, 140, 133, 141, 137, 128, 134, 140, 128, 127, 130, 147, 125, 139, 142, 137, 136, 135, 139, 130, 140, 134, 123, 140, 143, 131, 117, 138, 129, 127, 135, 138, 147, 160, 129, 136, 131, 132, 138, 137, 149, 140, 136, 127, 139, 131, 128, 139, 139, 132, 131, 146, 140, 123, 134, 149, 127, 141, 130, 137, 135, 124, 136, 135, 131, 133, 140, 143, 135, 117, 131, 128, 136, 139, 154, 146, 132, 136, 127, 139, 126, 149, 134, 133, 119, 145, 144, 138, 151, 128, 126, 124, 137, 125, 138, 125, 144, 137, 138, 140, 138, 137, 145, 121, 153, 148, 118, 132, 135, 157, 132, 128, 141, 134, 127, 138, 138, 139, 148, 135, 118, 124, 145, 126, 135, 129, 155, 124, 128, 136, 142, 118, 136, 139, 156, 141, 136, 131, 143, 123, 151, 143, 134, 144, 130, 152, 138, 136, 131, 149, 127, 134, 136, 137, 134, 137, 144, 148, 140, 141, 131, 136, 116, 142, 136, 132, 145, 125, 151, 125, 146, 138, 142, 130, 145, 130, 139, 123, 134, 135, 146, 125, 139, 143, 134, 127, 148, 128, 120, 139, 119, 143, 147, 142, 134, 135, 131, 161, 136, 142, 128, 143, 141, 142, 110, 130, 147, 131, 146, 122, 150, 148, 131, 131, 138, 142, 128, 132, 127, 123, 120, 148, 132, 121, 154, 132, 136, 137, 134, 143, 135, 150, 132, 139, 149, 127, 144, 139, 150, 136, 127, 139, 128, 143, 145, 135, 144, 133, 155, 132, 129, 146, 142, 135, 135, 143, 131, 142, 143, 140, 132, 116, 119, 145, 134, 130, 141, 129, 134, 137, 144, 142, 135, 150, 130, 134, 130, 143, 142, 125, 123, 129, 126, 132, 143, 133, 133, 136, 128, 143, 141, 139, 132, 124, 122, 132, 132, 127, 144, 138, 137, 144, 120, 141, 130, 122, 127, 139, 139, 121, 138, 139, 121, 137, 120, 145, 130, 150, 139, 127, 132, 162, 116, 140, 138, 134, 127, 139, 130, 142, 127, 130, 137, 151, 142, 143, 139, 133, 134, 142, 126, 151, 128, 133, 158, 132, 143, 137, 132, 131, 139, 134, 146, 133, 135, 136, 144, 133, 141, 123, 134, 132, 130, 150, 150, 138, 134, 158, 130, 149, 152, 137, 134, 120, 140, 147, 131, 122, 130, 127, 159, 124, 150, 143, 130, 153, 132, 143, 124, 130, 145, 129, 128, 131, 122, 145, 137, 141, 139, 129, 132, 148, 117, 140, 120, 128, 136, 145, 132, 137, 128, 128, 130, 131, 153, 143, 126, 126, 144, 124, 130, 132, 133, 143, 138, 122, 151, 150, 157, 125, 127, 140, 124, 138, 131, 132, 162, 140, 142, 125, 135, 117, 125, 133, 147, 134, 117, 126, 133, 145, 140, 138, 125, 131, 121, 127, 126, 127, 113, 133, 132, 127, 135, 127, 126, 133, 131, 155, 145, 144, 150, 143, 134, 151, 124, 141, 134, 130, 156, 130, 144, 136, 139, 147, 132, 137, 131, 145, 141, 145, 137, 141, 135, 148, 129, 142, 114, 138, 134, 141, 133, 133, 130, 138, 143, 134, 133, 134, 162, 129, 138, 115, 137, 130, 150, 139, 133, 137, 126, 128, 144, 124, 152, 137, 130, 138, 138, 137, 137, 122, 128, 152, 131, 124, 134, 127, 132, 142, 143, 120, 139, 137, 132, 135, 142, 144, 132, 159, 142, 133, 119, 136, 137, 127, 130, 133, 145, 131, 127, 113, 128, 146, 129, 135, 132, 133, 142, 147, 123, 138, 127, 130, 130, 134, 148, 124, 130, 137, 133, 122, 126, 129, 132, 137, 139, 137, 133, 147, 147, 137, 144, 135, 131, 131, 138, 138, 138, 133, 117, 124, 110, 131, 143, 142, 148, 142, 131, 126, 127, 140, 144, 140, 126, 135, 130, 137, 133, 139, 140, 129, 142, 124, 140, 121, 129, 146, 111, 130, 134, 117, 131, 130, 129, 138, 112, 127, 127, 129, 140, 134, 141, 120, 135, 135, 137, 147, 134, 134, 138, 130, 134, 141, 143, 159, 132, 125, 143, 145, 127, 126, 144, 130, 141, 124, 136, 127, 130, 137, 135, 136, 138, 127, 154, 140, 121, 134, 127, 134, 140, 135, 140, 138, 142, 129, 118, 138, 134, 136, 129, 129, 139, 129, 131, 138, 130, 128, 139, 142, 138, 141, 139, 134, 143, 139, 141, 133, 144, 159, 139, 134, 128, 143, 128, 126, 116, 133, 138, 111, 129, 135, 126, 148, 137, 114, 144, 134, 140, 139, 127, 143, 140, 122, 139, 138, 141, 137, 143, 131, 133, 129, 142, 134, 139, 122, 135, 137, 141, 137, 129, 138, 126, 126, 138, 123, 123, 130, 137, 138, 136, 133, 139, 119, 133, 136, 139, 134, 144, 140, 136, 144, 132, 137, 129, 135, 140, 137, 134, 143, 138, 144, 130, 127, 139, 132, 125, 133, 137, 134, 126, 142, 136, 139, 128, 129, 126, 129, 127, 125, 141, 139, 147, 124, 132, 147, 137, 136, 136, 148, 135, 148, 154, 131, 117, 136, 137, 128, 136, 142, 133, 130, 140, 134, 107, 130, 135, 128, 137, 145, 134, 132, 135, 134, 126, 143, 157, 148, 127, 123, 128, 131, 129, 137, 135, 139, 129, 134, 148, 142, 130, 144, 141, 134, 144, 134, 129, 132, 137, 133, 136, 130, 139, 126, 132, 135, 132, 139, 132, 119, 134, 126, 134, 135, 140, 126, 135, 133, 120, 134, 146, 136, 137, 129, 128, 129, 137, 123, 134, 140, 144, 126, 132, 139, 132, 138, 122, 126, 136, 147, 139, 120, 145, 139, 147, 135, 137, 116, 120, 139, 137, 141, 133, 122, 131, 144, 148, 137, 130, 137, 132, 136, 139, 144, 137, 136, 137, 116, 152, 144, 142, 134, 140, 126, 135, 136, 141, 147, 134, 124, 134, 145, 138, 139, 134, 129, 138, 144, 129, 135, 127, 141, 133, 149, 132, 144, 136, 130, 135, 129, 157, 139, 139, 142, 132, 137, 132, 125, 154, 140, 132, 138, 131, 141, 125, 135, 138, 124, 135, 147, 145, 143, 150, 129, 139, 136, 145, 143, 131, 137, 121, 142, 120, 148, 152, 144, 134, 141, 134, 137, 135, 130, 136, 137, 127, 138, 127, 152, 133, 138, 141, 134, 135, 118, 134, 136, 130, 144, 146, 141, 124, 135, 117, 135, 145, 142, 127, 127, 134, 132, 143, 149, 127, 144, 125, 128, 126, 143, 129, 129, 142, 135, 135, 122, 140, 131, 133, 141, 136, 127, 130, 136, 137, 161, 136, 127, 133, 135, 133, 144, 133, 126, 129, 139, 128, 139, 144, 134, 127, 131, 134, 129, 132, 131, 147, 134, 131, 130, 143, 142, 145, 129, 134, 127, 133, 137, 130, 124, 126, 140, 132, 137, 127, 123, 140, 140, 144, 142, 117, 139, 139, 139, 170, 132, 129, 134, 129, 132, 130, 147, 133, 145, 138, 134, 139, 142, 139, 137, 146, 145, 134, 133, 138, 141, 125, 126, 147, 148, 132, 137, 145, 142, 134, 140, 124, 132, 155, 136, 131, 129, 143, 133, 128, 140, 149, 129, 138, 147, 123, 135, 131, 133, 138, 136, 139, 136, 139, 131, 143, 135, 133, 137, 127, 143, 131, 133, 132, 145, 139, 143, 138, 136, 158, 130, 153, 142, 129, 137, 117, 124, 134, 126, 144, 134, 125, 152, 150, 138, 138, 114, 129, 105, 147, 138, 142, 142, 125, 139, 136, 132, 132, 137, 143, 143, 134, 132, 125, 139, 127, 129, 120, 160, 125, 142, 136, 143, 119, 133, 151, 133, 141, 144, 141, 138, 130, 131, 126, 133, 140, 127, 141, 137, 135, 138, 127, 160, 132, 132, 134, 106, 123, 142, 132, 138, 153, 130, 139, 126, 121, 127, 134, 155, 141, 139, 125, 144, 134, 127, 148, 132, 139, 140, 127, 137, 149, 141, 127, 139, 123, 141, 125, 124, 123, 133, 120, 131, 125, 125, 140, 137, 144, 139, 169, 140, 131, 134, 130, 118, 135, 123, 139, 134, 128, 134, 139, 125, 134, 131, 144, 123, 152, 147, 134, 143, 143, 158, 123, 145, 148, 146, 133, 146, 128, 148, 140, 147, 137, 135, 132, 155, 152, 151, 133, 124, 109, 147, 136, 144, 142, 143, 136, 136, 130, 124, 133, 140, 127, 143, 116, 119, 127, 134, 132, 138, 125, 143, 143, 154, 152, 145, 141, 146, 125, 134, 125, 136, 144, 143, 127, 131, 123, 139, 139, 144, 134, 133, 138, 128, 146, 127, 141, 138, 126, 138, 147, 134, 134, 131, 132, 133, 135, 127, 131, 142, 144, 151, 143, 143, 136, 143, 129, 126, 132, 136, 132, 132, 130, 131, 148, 144, 137, 128, 136, 163, 132, 138, 134, 130, 127, 134, 143, 148, 144, 127, 126, 144, 136, 140, 138, 136, 139, 123, 137, 129, 130, 139, 128, 137, 140, 145, 127, 138, 131, 137, 161, 133, 121, 144, 142, 144, 140, 142, 145, 134, 143, 137, 143, 131, 142, 140, 136, 132, 128, 136, 126, 140, 143, 134, 145, 156, 131, 148, 128, 135, 157, 124, 129, 133, 133, 136, 134, 132, 131, 140, 137, 134, 133, 126, 142, 131, 129, 127, 137, 145, 135, 136, 135, 144, 157, 130, 131, 132, 136, 129, 136, 121, 143, 139, 127, 138, 118, 143, 146, 127, 133, 139, 130, 132, 140, 126, 152, 149, 130, 141, 139, 132, 125, 149, 134, 124, 139, 136, 133, 131, 138, 142, 135, 124, 150, 128, 123, 138, 123, 157, 141, 145, 121, 142, 143, 150, 137, 132, 127, 129, 149, 131, 132, 137, 142, 126, 128, 119, 149, 125, 130, 132, 140, 128, 156, 135, 141, 128, 137, 143, 131, 134, 148, 124, 148, 149, 131, 124, 126, 134, 135, 130, 139, 139, 141, 145, 143, 137, 132, 136, 146, 137, 127, 121, 134, 116, 161, 132, 134, 134, 136, 122, 153, 153, 144, 146, 126, 135, 142, 133, 135, 131, 144, 135, 138, 139, 134, 133, 138, 136, 126, 164, 127, 133, 126, 145, 126, 119, 148, 136, 144, 148, 144, 132, 139, 122, 133, 142, 145, 140, 128, 131, 127, 131, 132, 145, 114, 135, 128, 134, 122, 137, 141, 144, 152, 135, 130, 145, 128, 139, 128, 138, 141, 138, 132, 140, 135, 148, 129, 134, 149, 151, 133, 142, 133, 134, 137, 131, 119, 140, 141, 143, 142, 136, 136, 130, 134, 141, 128, 133, 138, 126, 127, 142, 129, 123, 147, 136, 137, 132, 152, 131, 141, 142, 147, 145, 132, 129, 134, 118, 136, 131, 132, 153, 155, 130, 133, 132, 130, 143, 141, 140, 140, 141, 156, 126, 124, 138, 138, 132, 133, 117, 132, 135, 132, 150, 136, 141, 144, 135, 143, 136, 143, 143, 142, 135, 152, 137, 145, 146, 138, 130, 154, 128, 145, 129, 138, 116, 131, 131, 138, 130, 149, 132, 136, 131, 128, 147, 132, 134, 130, 131, 132, 148, 137, 145, 137, 132, 148, 135, 141, 129, 129, 135, 123, 139, 150, 142, 139, 144, 138, 130, 129, 123, 125, 143, 127, 130, 141, 132, 131, 146, 139, 135, 140, 126, 140, 137, 126, 142, 122, 120, 137, 147, 130, 124, 139, 135, 139, 125, 139, 144, 136, 134, 133, 136, 145, 139, 159, 137, 125, 129, 127, 143, 139, 141, 141, 116, 125, 133, 130, 139, 130, 134, 146, 128, 136, 134, 154, 128, 132, 141, 129, 128, 147, 153, 105, 129, 145, 127, 131, 128, 141, 141, 135, 125, 133, 135, 136, 141, 130, 146, 127, 130, 132, 137, 138, 129, 136, 139, 138, 130, 133, 122, 143, 129, 152, 142, 138, 117, 142, 140, 129, 133, 137, 140, 128, 150, 137, 146, 130, 147, 128, 134, 150, 145, 142, 145, 141, 135, 136, 117, 130, 136, 140, 161, 140, 129, 137, 151, 135, 126, 126, 135, 142, 134, 145, 134, 132, 119, 124, 135, 127, 133, 153, 133, 151, 142, 134, 141, 132, 129, 134, 135, 140, 130, 130, 140, 145, 138, 118, 136, 128, 118, 129, 136, 146, 141, 128, 147, 154, 134, 143, 135, 141, 142, 142, 126, 137, 148, 144, 136, 129, 153, 133, 134, 127, 126, 135, 154, 125, 139, 129, 141, 136, 133, 136, 130, 137, 137, 134, 147, 138, 139, 136, 149, 126, 143, 126, 138, 140, 153, 126, 137, 133, 146, 136, 121, 135, 141, 128, 130, 140, 122, 143, 145, 134, 134, 132, 125, 136, 134, 128, 138, 133, 143, 136, 137, 137, 151, 125, 130, 144, 127, 144, 144, 130, 131, 137, 107, 122, 155, 147, 133, 147, 150, 131, 155, 135, 132, 144, 135, 130, 131, 133, 136, 136, 126, 146, 127, 143, 137, 135, 138, 138, 146, 156, 136, 141, 144, 127, 130, 122, 139, 118, 130, 144, 154, 138, 129, 148, 140, 140, 132, 136, 129, 145, 146, 130, 128, 133, 145, 135, 151, 116, 134, 121, 146, 118, 127, 153, 133, 134, 112, 129, 134, 122, 130, 145, 127, 143, 141, 129, 140, 133, 134, 138, 119, 144, 125, 122, 146, 124, 138, 125, 124, 151, 146, 128, 138, 150, 132, 138, 130, 139, 142, 140, 140, 137, 143, 119, 147, 137, 136, 147, 142, 130, 141, 139, 150, 148, 143, 136, 139, 134, 135, 141, 135, 131, 140, 145, 129, 128, 153, 130, 142, 140, 148, 125, 132, 136, 126, 129, 143, 152, 138, 137, 136, 124, 124, 131, 136, 124, 125, 126, 135, 134, 150, 148, 145, 134, 146, 130, 142, 131, 134, 124, 145, 128, 138, 128, 113, 131, 135, 137, 140, 147, 148, 140, 132, 135, 120, 125, 139, 136, 131, 131, 127, 147, 130, 134, 135, 127, 133, 152, 134, 129, 145, 133, 134, 136, 135, 142, 141, 141, 129, 141, 134, 128, 132, 127, 131, 139, 131, 136, 152, 141, 128, 128, 132, 121, 149, 139, 149, 130, 123, 144, 136, 137, 131, 141, 140, 128, 128, 145, 121, 129, 121, 135, 134, 131, 146, 133, 131, 147, 127, 143, 138, 121, 137, 129, 124, 139, 179, 129, 124, 145, 113, 137, 136, 153, 136, 141, 134, 128, 126, 129, 122, 147, 139, 134, 129, 132, 135, 139, 142, 139, 149, 139, 120, 118, 139, 129, 130, 128, 151, 132, 147, 139, 150, 135, 134, 142, 132, 137, 123, 125, 127, 129, 131, 125, 123, 148, 123, 126, 139, 136, 135, 144, 136, 135, 144, 128, 117, 134, 132, 140, 129, 138, 138, 147, 125, 144, 126, 133, 142, 129, 130, 132, 133, 126, 129, 141, 126, 138, 121, 137, 141, 139, 134, 151, 115, 128, 137, 134, 127, 127, 151, 128, 147, 126, 127, 141, 137, 131, 142, 130, 126, 137, 130, 126, 130, 133, 145, 139, 150, 137, 132, 136, 140, 139, 125, 125, 135, 139, 146, 131, 136, 127, 129, 124, 134, 129, 150, 133, 129, 135, 136, 128, 133, 130, 127, 133, 150, 137, 146, 126, 136, 151, 150, 136, 124, 142, 149, 137, 133, 113, 132, 128, 134, 137, 125, 148, 142, 142, 130, 148, 127, 131, 132, 154, 131, 130, 131, 118, 119, 142, 136, 145, 129, 134, 145, 130, 127, 142, 133, 142, 144, 142, 146, 148, 135, 130, 128, 131, 110, 136, 137, 124, 139, 138, 158, 130, 135, 138, 134, 119, 119, 143, 142, 136, 144, 125, 137, 120, 142, 121, 132, 132, 135, 148, 137, 143, 140, 132, 146, 141, 129, 137, 141, 122, 133, 137, 142, 123, 134, 152, 131, 146, 138, 116, 156, 151, 146, 128, 121, 134, 144, 125, 136, 143, 125, 127, 141, 120, 144, 123, 142, 116, 128, 132, 111, 138, 142, 135, 141, 135, 135, 130, 147, 116, 138, 128, 143, 128, 131, 126, 134, 131, 136, 125, 157, 141, 137, 131, 130, 135, 128, 133, 134, 139, 136, 138, 125, 125, 136, 125, 141, 153, 126, 128, 123, 147, 122, 124, 140, 136, 145, 148, 141, 129, 126, 133, 134, 147, 144, 133, 129, 129, 144, 134, 129, 124, 156, 145, 121, 145, 138, 112, 127, 122, 127, 142, 124, 141, 132, 135, 145, 132, 139, 127, 133, 146, 152, 138, 123, 141, 150, 129, 128, 128, 135, 130, 137, 139, 121, 122, 134, 115, 119, 156, 131, 134, 145, 123, 132, 128, 140, 148, 129, 157, 132, 132, 140, 134, 151, 131, 121, 127, 138, 134, 130, 135, 126, 130, 120, 140, 139, 123, 146, 140, 132, 152, 116, 138, 131, 139, 137, 132, 148, 137, 127, 142, 129, 138, 143, 139, 133, 120, 128, 138, 139, 133, 131, 121, 143, 131, 129, 131, 151, 130, 146, 146, 151, 137, 143, 136, 129, 159, 131, 136, 142, 119, 134, 139, 128, 128, 129, 131, 134, 141, 152, 148, 134, 141, 139, 150, 129, 144, 131, 131, 137, 130, 151, 124, 136, 121, 126, 127, 135, 141, 129, 136, 142, 140, 136, 130, 136, 145, 146, 136, 125, 142, 128, 126, 140, 144, 135, 122, 154, 119, 133, 140, 141, 139, 128, 155, 147, 148, 154, 145, 140, 137, 143, 116, 129, 142, 132, 117, 132, 138, 160, 127, 131, 139, 129, 134, 148, 149, 120, 145, 147, 163, 142, 129, 141, 139, 144, 135, 142, 145, 140, 141, 139, 130, 120, 123, 142, 132, 138, 151, 156, 137, 165, 128, 139, 133, 131, 125, 144, 121, 144, 133, 137, 121, 139, 125, 145, 145, 145, 124, 133, 121, 144, 159, 135, 128, 126, 122, 135, 146, 133, 149, 138, 135, 138, 116, 121, 138, 123, 130, 127, 128, 126, 126, 137, 126, 127, 136, 127, 141, 136, 135, 135, 154, 144, 141, 141, 161, 131, 144, 140, 135, 127, 129, 148, 125, 126, 139, 139, 132, 141, 136, 127, 118, 148, 152, 127, 126, 142, 132, 134, 135, 148, 141, 139, 144, 142, 136, 137, 133, 138, 140, 146, 128, 141, 132, 135, 153, 144, 131, 155, 169, 134, 120, 126, 143, 126, 144, 143, 143, 124, 132, 145, 148, 121, 135, 136, 135, 148, 144, 147, 138, 144, 136, 128, 125, 153, 134, 136, 141, 124, 147, 148, 131, 127, 139, 143, 144, 124, 138, 140, 145, 119, 126, 143, 94, 137, 122, 137, 151, 115, 129, 130, 144, 138, 127, 130, 142, 142, 134, 133, 160, 138, 141, 148, 141, 139, 136, 129, 136, 137, 128, 133, 135, 132, 131, 139, 136, 127, 130, 119, 132, 146, 129, 131, 139, 129, 128, 121, 111, 122, 149, 125, 152, 139, 134, 130, 135, 149, 143, 117, 130, 129, 139, 143, 134, 138, 143, 128, 134, 124, 151, 129, 117, 139, 128, 140, 124, 132, 107, 139, 110, 119, 148, 129, 164, 135, 129, 135, 136, 133, 143, 132, 138, 132, 107, 146, 131, 137, 132, 136, 123, 149, 128, 137, 139, 135, 152, 132, 139, 159, 123, 119, 142, 141, 122, 147, 131, 147, 140, 131, 150, 140, 125, 115, 134, 123, 131, 126, 132, 135, 146, 133, 130, 133, 125, 128, 136, 140, 131, 134, 127, 141, 140, 144, 145, 128, 130, 130, 130, 123, 111, 133, 145, 138, 162, 147, 134, 133, 143, 137, 130, 124, 128, 124, 145, 137, 128, 130, 148, 128, 140, 135, 131, 129, 127, 126, 139, 139, 140, 145, 127, 132, 133, 127, 143, 123, 142, 143, 141, 124, 136, 118, 136, 140, 136, 132, 134, 134, 132, 130, 125, 146, 136, 133, 131, 140, 137, 133, 137, 125, 133, 132, 141, 150, 130, 131, 125, 129, 126, 142, 123, 141, 129, 137, 142, 143, 142, 134, 130, 132, 140, 140, 126, 140, 125, 133, 126, 126, 141, 150, 141, 134, 138, 126, 140, 136, 128, 132, 132, 127, 144, 135, 138, 129, 128, 143, 124, 132, 128, 132, 151, 134, 144, 141, 129, 128, 132, 134, 150, 141, 150, 145, 133, 126, 132, 133, 152, 136, 127, 135, 136, 143, 141, 121, 136, 134, 133, 130, 127, 135, 138, 133, 143, 133, 138, 130, 140, 125, 127, 135, 137, 147, 130, 148, 149, 148, 138, 142, 144, 137, 128, 130, 142, 138, 139, 144, 148, 133, 147, 137, 156, 129, 168, 127, 138, 128, 144, 123, 136, 131, 132, 139, 138, 127, 124, 131, 137, 135, 138, 131, 136, 132, 129, 148, 132, 136, 150, 132, 144, 139, 140, 144, 126, 141, 132, 130, 136, 129, 142, 141, 119, 123, 121, 135, 142, 133, 142, 119, 147, 147, 137, 137, 134, 130, 148, 128, 143, 146, 129, 130, 140, 136, 143, 135, 148, 156, 140, 131, 131, 144, 144, 129, 131, 140, 125, 143, 151, 131, 154, 134, 132, 135, 143, 139, 135, 143, 132, 140, 134, 130, 132, 155, 128, 137, 157, 132, 144, 139, 132, 131, 130, 146, 133, 139, 147, 141, 128, 128, 126, 139, 137, 137, 150, 138, 142, 139, 124, 135, 136, 145, 126, 127, 142, 128, 138, 135, 139, 131, 136, 151, 134, 143, 127, 145, 140, 125, 133, 148, 145, 138, 134, 144, 119, 133, 132, 117, 132, 128, 135, 124, 141, 144, 139, 140, 136, 134, 124, 146, 147, 142, 134, 144, 139, 131, 138, 136, 137, 132, 127, 142, 136, 139, 129, 133, 131, 121, 126, 138, 126, 146, 148, 129, 148, 138, 143, 151, 145, 131, 116, 142, 126, 139, 135, 132, 143, 135, 132, 141, 144, 126, 143, 133, 138, 135, 151, 147, 129, 140, 132, 136, 135, 135, 136, 137, 142, 135, 124, 139, 138, 136, 150, 127, 136, 137, 145, 135, 135, 146, 124, 134, 139, 128, 124, 147, 134, 147, 141, 134, 126, 145, 137, 138, 131, 142, 142, 142, 129, 136, 137, 131, 139, 142, 134, 137, 135, 133, 130, 137, 132, 133, 129, 160, 127, 138, 130, 144, 147, 136, 133, 129, 134, 137, 129, 127, 148, 143, 131, 139, 137, 138, 135, 129, 131, 135, 142, 139, 137, 137, 145, 144, 161, 140, 140, 123, 127, 143, 142, 98, 114, 147, 142, 125, 142, 129, 151, 135, 138, 150, 136, 141, 143, 146, 129, 129, 129, 131, 133, 145, 135, 146, 133, 142, 133, 130, 137, 131, 134, 116, 145, 123, 135, 135, 131, 153, 144, 137, 141, 140, 134, 137, 118, 145, 145, 139, 125, 135, 137, 148, 129, 134, 154, 147, 133, 125, 132, 135, 128, 148, 131, 126, 135, 145, 129, 127, 134, 135, 126, 140, 135, 131, 136, 142, 137, 134, 142, 139, 128, 129, 135, 145, 133, 128, 141, 118, 135, 128, 132, 137, 134, 122, 140, 129, 141, 146, 145, 121, 135, 133, 136, 131, 135, 153, 150, 142, 134, 129, 151, 142, 130, 131, 137, 125, 143, 134, 142, 119, 141, 128, 135, 134, 127, 132, 129, 127, 147, 129, 146, 118, 147, 139, 135, 135, 132, 134, 134, 128, 132, 128, 135, 150, 130, 166, 140, 137, 144, 134, 128, 151, 156, 134, 135, 125, 134, 129, 143, 139, 126, 142, 136, 146, 132, 156, 131, 134, 129, 136, 126, 153, 126, 124, 151, 123, 133, 135, 141, 118, 138, 128, 140, 137, 132, 140, 126, 159, 145, 135, 139, 123, 143, 144, 136, 132, 147, 133, 126, 144, 149, 141, 129, 137, 129, 130, 132, 132, 144, 136, 132, 142, 137, 143, 137, 138, 158, 114, 141, 124, 144, 134, 129, 132, 131, 141, 135, 144, 135, 131, 135, 134, 148, 132, 123, 140, 134, 131, 135, 152, 131, 137, 148, 133, 131, 145, 151, 122, 137, 135, 131, 148, 131, 134, 134, 139, 128, 127, 122, 132, 144, 140, 139, 125, 148, 141, 124, 130, 115, 127, 142, 136, 133, 139, 118, 128, 135, 138, 133, 129, 137, 137, 137, 140, 152, 140, 138, 133, 140, 135, 126, 145, 147, 130, 135, 139, 134, 126, 139, 129, 139, 141, 135, 127, 118, 140, 132, 135, 142, 137, 131, 138, 132, 130, 127, 148, 128, 161, 135, 136, 142, 125, 130, 142, 153, 131, 140, 141, 128, 134, 138, 124, 128, 141, 142, 152, 136, 127, 131, 137, 144, 141, 124, 128, 131, 132, 132, 139, 147, 127, 125, 141, 134, 136, 142, 143, 126, 127, 129, 129, 143, 138, 139, 137, 137, 101, 136, 143, 130, 140, 126, 137, 128, 138, 142, 145, 134, 122, 151, 132, 138, 128, 142, 131, 140, 156, 139, 128, 129, 143, 133, 138, 143, 147, 130, 142, 149, 136, 146, 140, 146, 147, 156, 151, 107, 140, 131, 133, 137, 136, 144, 141, 130, 140, 144, 136, 140, 138, 138, 125, 134, 130, 127, 138, 131, 149, 129, 147, 127, 139, 137, 131, 139, 138, 154, 130, 147, 143, 125, 137, 124, 145, 140, 139, 128, 129, 131, 152, 130, 146, 136, 141, 138, 129, 144, 142, 125, 140, 130, 134, 136, 127, 138, 126, 137, 115, 132, 147, 145, 136, 128, 167, 141, 121, 131, 132, 136, 154, 136, 132, 145, 137, 136, 132, 130, 129, 136, 131, 120, 112, 134, 133, 150, 129, 122, 123, 140, 143, 129, 128, 141, 140, 144, 135, 128, 148, 130, 126, 147, 139, 148, 142, 140, 128, 159, 152, 139, 135, 136, 131, 124, 140, 135, 135, 133, 139, 140, 119, 149, 150, 138, 132, 126, 163, 142, 136, 144, 150, 135, 142, 123, 141, 124, 133, 156, 137, 135, 142, 138, 133, 133, 131, 139, 136, 149, 135, 139, 139, 122, 121, 133, 141, 131, 145, 123, 127, 153, 143, 128, 135, 126, 135, 121, 138, 136, 139, 141, 137, 131, 137, 139, 145, 138, 134, 125, 146, 145, 150, 144, 120, 119, 134, 125, 127, 136, 133, 131, 130, 131, 139, 125, 128, 145, 150, 145, 125, 133, 149, 145, 144, 130, 136, 124, 133, 130, 140, 151, 150, 134, 122, 130, 137, 128, 132, 137, 134, 132, 143, 152, 141, 135, 129, 126, 136, 124, 141, 139, 149, 137, 129, 132, 126, 130, 133, 137, 125, 128, 125, 130, 129, 134, 139, 144, 138, 130, 150, 146, 123, 153, 149, 152, 139, 141, 133, 138, 132, 142, 132, 139, 139, 117, 140, 134, 121, 132, 148, 122, 128, 143, 128, 127, 149, 139, 123, 130, 131, 132, 146, 130, 130, 135, 148, 130, 146, 130, 147, 144, 132, 131, 151, 138, 140, 139, 138, 129, 128, 162, 139, 139, 145, 146, 140, 132, 133, 142, 138, 136, 126, 148, 134, 131, 124, 135, 123, 129, 137, 131, 147, 139, 133, 139, 134, 158, 129, 137, 133, 139, 131, 142, 132, 131, 144, 133, 130, 131, 139, 149, 142, 137, 138, 125, 146, 127, 134, 133, 139, 125, 124, 140, 123, 163, 146, 121, 141, 136, 139, 134, 125, 139, 129, 151, 131, 122, 140, 133, 151, 134, 144, 123, 131, 131, 139, 129, 130, 154, 132, 124, 134, 133, 137, 134, 137, 132, 143, 130, 150, 126, 139, 131, 144, 148, 154, 146, 135, 128, 133, 122, 133, 152, 150, 140, 120, 130, 134, 139, 131, 134, 127, 120, 132, 133, 131, 137, 146, 138, 150, 145, 142, 129, 126, 144, 126, 135, 127, 153, 138, 135, 142, 132, 137, 134, 137, 138, 139, 142, 131, 141, 155, 127, 135, 140, 149, 140, 153, 135, 121, 136, 130, 115, 131, 118, 143, 135, 131, 145, 149, 132, 129, 132, 124, 129, 148, 129, 119, 121, 144, 147, 140, 125, 127, 151, 140, 135, 147, 129, 123, 133, 146, 125, 112, 127, 146, 137, 129, 147, 135, 132, 124, 153, 125, 133, 135, 134, 156, 138, 136, 146, 112, 135, 149, 135, 150, 140, 129, 137, 145, 145, 128, 126, 129, 133, 136, 124, 133, 140, 136, 133, 137, 139, 136, 123, 128, 128, 146, 133, 130, 133, 134, 131, 149, 133, 133, 126, 139, 139, 139, 143, 138, 135, 145, 138, 142, 125, 134, 136, 144, 134, 139, 123, 143, 132, 125, 138, 134, 137, 148, 148, 128, 145, 130, 140, 146, 135, 125, 149, 130, 143, 128, 120, 141, 141, 148, 136, 132, 132, 127, 137, 124, 134, 142, 137, 144, 144, 127, 137, 130, 131, 133, 124, 137, 126, 134, 132, 132, 144, 144, 137, 140, 147, 150, 125, 138, 136, 147, 136, 132, 134, 127, 149, 128, 134, 131, 138, 137, 149, 134, 152, 134, 146, 128, 122, 136, 159, 129, 146, 134, 131, 132, 133, 120, 139, 142, 135, 133, 124, 132, 135, 143, 137, 136, 125, 126, 155, 137, 149, 132, 125, 135, 145, 157, 150, 131, 127, 126, 147, 134, 146, 147, 139, 140, 135, 129, 134, 121, 152, 131, 136, 134, 125, 136, 148, 140, 131, 124, 134, 149, 139, 132, 146, 127, 138, 129, 132, 130, 138, 115, 134, 136, 140, 116, 142, 124, 138, 119, 127, 145, 146, 134, 116, 138, 130, 145, 134, 142, 129, 103, 131, 147, 129, 127, 135, 135, 143, 137, 136, 131, 135, 149, 158, 117, 121, 119, 129, 129, 134, 133, 131, 138, 141, 129, 123, 121, 115, 126, 123, 143, 117, 158, 130, 136, 134, 120, 136, 134, 125, 136, 136, 141, 125, 148, 128, 126, 144, 147, 131, 117, 145, 166, 128, 129, 146, 123, 103, 135, 129, 140, 142, 118, 111, 140, 145, 137, 149, 133, 141, 141, 130, 129, 141, 139, 114, 133, 136, 125, 131, 128, 134, 139, 141, 140, 136, 142, 107, 136, 124, 125, 134, 126, 150, 143, 116, 136, 126, 140, 124, 140, 140, 138, 143, 144, 137, 142, 139, 137, 142, 126, 128, 140, 121, 136, 142, 132, 126, 148, 125, 128, 122, 136, 148, 146, 132, 130, 133, 169, 140, 134, 119, 141, 134, 140, 115, 116, 133, 124, 135, 125, 125, 93, 129, 146, 146, 132, 138, 139, 136, 130, 126, 124, 121, 151, 137, 137, 141, 130, 147, 128, 143, 111, 134, 116, 132, 137, 141, 137, 150, 138, 132, 136, 131, 155, 147, 116, 171, 127, 134, 140, 127, 140, 116, 127, 139, 135, 144, 134, 134, 125, 122, 130, 117, 133, 139, 148, 144, 149, 152, 144, 115, 126, 123, 138, 121, 136, 129, 113, 135, 171, 133, 151, 143, 124, 133, 155, 124, 106, 123, 149, 132, 132, 134, 136, 140, 134, 132, 132, 136, 141, 124, 123, 123, 134, 141, 115, 148, 136, 124, 134, 135, 143, 138, 136, 123, 129, 131, 137, 126, 132, 144, 140, 143, 115, 115, 142, 135, 159, 139, 138, 137, 136, 128, 135, 120, 114, 150, 135, 135, 131, 135, 125, 131, 119, 137, 144, 143, 131, 136, 126, 144, 126, 128, 112, 138, 132, 122, 134, 141, 127, 135, 121, 131, 134, 136, 150, 136, 141, 132, 129, 137, 164, 131, 140, 134, 141, 134, 144, 132, 148, 140, 140, 143, 132, 130, 122, 142, 121, 128, 110, 132, 129, 125, 127, 141, 153, 126, 128, 153, 127, 106, 143, 135, 131, 151, 136, 136, 147, 129, 129, 160, 117, 150, 136, 148, 151, 166, 132, 125, 132, 135, 126, 133, 131, 136, 137, 129, 135, 118, 137, 135, 115, 130, 120, 154, 126, 137, 129, 133, 144, 135, 129, 139, 137, 135, 140, 129, 144, 133, 126, 128, 139, 137, 130, 151, 125, 122, 132, 145, 125, 139, 128, 117, 140, 123, 149, 132, 146, 138, 146, 150, 126, 146, 142, 149, 146, 142, 138, 110, 131, 106, 160, 136, 117, 153, 136, 124, 125, 141, 123, 143, 141, 142, 148, 124, 125, 139, 121, 143, 131, 133, 102, 125, 139, 134, 140, 147, 115, 147, 143, 130, 155, 149, 117, 135, 130, 134, 117, 145, 119, 123, 132, 151, 127, 137, 141, 129, 134, 128, 139, 140, 140, 120, 119, 130, 120, 130, 138, 125, 141, 153, 156, 147, 136, 118, 124, 133, 124, 140, 133, 147, 112, 150, 128, 127, 141, 128, 145, 143, 138, 137, 131, 136, 135, 127, 158, 138, 135, 120, 133, 133, 122, 135, 136, 140, 138, 127, 128, 122, 139, 151, 132, 133, 133, 145, 139, 129, 139, 135, 149, 131, 137, 136, 134, 133, 131, 133, 120, 130, 136, 144, 139, 161, 130, 137, 133, 138, 141, 132, 137, 138, 145, 138, 144, 129, 124, 132, 155, 136, 130, 126, 142, 136, 127, 132, 147, 138, 135, 138, 128, 139, 129, 146, 139, 139, 121, 147, 124, 130, 118, 121, 143, 138, 128, 127, 124, 136, 137, 129, 136, 131, 125, 136, 145, 127, 116, 141, 140, 141, 148, 130, 137, 144, 135, 143, 136, 143, 137, 138, 145, 130, 134, 126, 130, 140, 133, 140, 148, 145, 136, 134, 145, 126, 132, 142, 135, 139, 142, 143, 129, 138, 132, 135, 144, 149, 138, 124, 134, 128, 137, 134, 129, 151, 137, 138, 136, 136, 134, 130, 144, 134, 150, 129, 141, 131, 130, 146, 137, 151, 140, 142, 136, 135, 151, 137, 127, 143, 129, 133, 137, 152, 133, 129, 156, 139, 127, 131, 134, 139, 128, 138, 121, 131, 138, 138, 135, 129, 120, 134, 129, 144, 141, 134, 142, 136, 123, 144, 134, 137, 133, 143, 122, 151, 146, 129, 139, 139, 136, 135, 148, 127, 139, 139, 128, 127, 139, 140, 138, 134, 141, 140, 137, 135, 146, 149, 135, 143, 144, 124, 143, 130, 129, 135, 134, 148, 145, 151, 140, 148, 133, 147, 136, 141, 140, 147, 137, 137, 137, 142, 141, 127, 135, 125, 141, 130, 135, 113, 126, 134, 128, 132, 141, 135, 117, 135, 142, 132, 138, 142, 142, 140, 126, 133, 135, 138, 140, 131, 125, 135, 136, 146, 121, 129, 138, 140, 136, 130, 134, 127, 136, 128, 159, 136, 143, 137, 134, 154, 147, 142, 139, 129, 129, 129, 123, 138, 154, 132, 151, 131, 130, 134, 133, 139, 132, 123, 141, 128, 123, 134, 135, 133, 147, 124, 134, 135, 150, 124, 129, 137, 147, 140, 129, 133, 142, 132, 147, 140, 136, 133, 131, 139, 131, 148, 130, 135, 138, 142, 140, 140, 132, 129, 135, 135, 143, 135, 131, 135, 134, 128, 123, 142, 133, 142, 138, 131, 143, 128, 134, 130, 127, 144, 144, 135, 141, 147, 147, 138, 138, 137, 135, 140, 128, 131, 124, 162, 122, 135, 139, 128, 149, 139, 135, 119, 137, 142, 125, 134, 163, 134, 145, 123, 137, 129, 137, 137, 131, 142, 147, 136, 133, 133, 130, 132, 149, 125, 135, 138, 132, 122, 136, 139, 139, 145, 142, 128, 139, 140, 130, 144, 153, 126, 127, 133, 125, 136, 146, 133, 139, 151, 120, 132, 135, 153, 138, 144, 132, 134, 127, 131, 142, 127, 139, 148, 131, 135, 142, 140, 122, 143, 136, 139, 134, 127, 122, 143, 142, 154, 138, 130, 132, 143, 130, 124, 145, 126, 141, 148, 135, 151, 134, 140, 138, 136, 133, 132, 142, 135, 132, 139, 144, 137, 154, 144, 131, 131, 129, 137, 134, 138, 148, 145, 127, 138, 133, 146, 121, 148, 140, 143, 150, 134, 143, 124, 144, 133, 139, 129, 126, 155, 141, 127, 125, 123, 144, 136, 132, 130, 129, 156, 138, 134, 142, 136, 132, 126, 129, 143, 133, 136, 147, 148, 148, 145, 134, 131, 129, 138, 135, 138, 121, 129, 133, 147, 120, 141, 137, 134, 129, 113, 139, 144, 135, 135, 138, 132, 127, 139, 137, 135, 134, 166, 142, 145, 125, 136, 140, 123, 147, 133, 135, 145, 135, 152, 133, 135, 130, 123, 130, 125, 130, 124, 119, 134, 102, 112, 140, 136, 166, 128, 149, 130, 135, 132, 132, 134, 140, 134, 137, 141, 142, 131, 141, 132, 127, 132, 133, 121, 125, 133, 140, 134, 131, 134, 147, 146, 120, 135, 148, 119, 137, 124, 127, 135, 132, 136, 132, 134, 132, 137, 146, 134, 121, 141, 138, 142, 128, 141, 140, 145, 137, 135, 142, 125, 135, 124, 146, 126, 133, 112, 132, 140, 133, 142, 130, 127, 139, 138, 123, 138, 136, 142, 142, 137, 134, 154, 144, 131, 148, 142, 129, 133, 149, 151, 138, 129, 145, 145, 149, 133, 132, 128, 137, 136, 131, 135, 129, 135, 134, 138, 140, 127, 138, 132, 129, 158, 118, 129, 150, 156, 154, 147, 138, 135, 129, 138, 157, 121, 152, 134, 128, 143, 150, 133, 137, 138, 126, 131, 122, 134, 130, 128, 126, 139, 132, 128, 139, 149, 144, 133, 140, 130, 145, 126, 138, 132, 143, 137, 131, 124, 123, 134, 123, 145, 134, 132, 136, 138, 123, 140, 113, 146, 163, 125, 126, 129, 122, 141, 150, 122, 144, 136, 135, 142, 141, 136, 138, 141, 139, 130, 143, 140, 122, 129, 142, 134, 158, 139, 128, 123, 125, 145, 121, 135, 132, 122, 141, 123, 122, 131, 135, 130, 137, 126, 150, 124, 124, 140, 121, 131, 151, 147, 130, 138, 132, 141, 135, 124, 148, 126, 140, 140, 135, 120, 148, 143, 126, 127, 132, 137, 143, 129, 127, 126, 130, 128, 148, 114, 134, 154, 146, 143, 129, 131, 126, 133, 143, 149, 148, 135, 135, 131, 147, 132, 129, 131, 136, 125, 140, 142, 138, 137, 142, 139, 120, 129, 140, 133, 134, 144, 130, 132, 137, 137, 129, 136, 130, 125, 134, 128, 147, 128, 152, 145, 135, 141, 139, 124, 139, 138, 138, 140, 141, 133, 144, 145, 126, 135, 137, 121, 139, 125, 135, 144, 134, 136, 128, 127, 124, 148, 163, 138, 124, 138, 138, 130, 142, 149, 138, 135, 154, 142, 136, 127, 137, 123, 124, 146, 132, 139, 131, 134, 139, 124, 161, 135, 138, 133, 132, 142, 123, 139, 146, 132, 151, 115, 118, 147, 152, 126, 129, 146, 117, 135, 140, 118, 130, 146, 140, 139, 131, 139, 147, 124, 134, 134, 146, 129, 134, 143, 149, 131, 149, 142, 135, 142, 132, 153, 130, 133, 136, 139, 135, 150, 124, 129, 130, 141, 120, 134, 127, 131, 145, 142, 121, 142, 136, 135, 146, 115, 118, 132, 131, 129, 132, 147, 126, 131, 137, 138, 131, 151, 150, 139, 151, 122, 136, 131, 136, 138, 120, 118, 144, 123, 136, 131, 141, 124, 126, 128, 155, 113, 140, 133, 121, 127, 128, 125, 136, 150, 151, 138, 140, 123, 143, 129, 139, 146, 134, 113, 141, 141, 146, 140, 149, 150, 140, 136, 146, 136, 143, 138, 135, 120, 128, 138, 126, 132, 127, 135, 134, 137, 154, 135, 133, 169, 119, 145, 140, 142, 127, 160, 144, 140, 115, 122, 133, 128, 135, 131, 150, 142, 133, 136, 128, 143, 118, 124, 122, 129, 128, 140, 130, 143, 135, 135, 136, 128, 136, 144, 114, 128, 145, 130, 120, 137, 135, 138, 132, 123, 128, 140, 105, 137, 145, 128, 131, 156, 140, 141, 140, 143, 130, 127, 130, 164, 132, 142, 148, 145, 136, 139, 141, 130, 139, 138, 136, 132, 135, 129, 121, 133, 137, 138, 136, 137, 114, 125, 126, 139, 125, 116, 137, 120, 137, 150, 123, 141, 129, 144, 138, 167, 131, 145, 148, 158, 145, 122, 144, 141, 139, 152, 144, 121, 132, 127, 151, 137, 124, 160, 133, 150, 142, 119, 142, 137, 133, 142, 146, 144, 119, 122, 140, 133, 148, 130, 134, 158, 146, 144, 149, 133, 148, 123, 146, 121, 129, 140, 146, 135, 138, 125, 139, 140, 136, 138, 127, 130, 129, 132, 137, 120, 140, 134, 138, 114, 140, 144, 139, 140, 136, 143, 127, 138, 141, 137, 131, 133, 151, 145, 114, 135, 118, 125, 153, 132, 139, 132, 122, 153, 151, 120, 140, 128, 121, 138, 152, 135, 146, 115, 142, 144, 137, 125, 134, 139, 149, 126, 127, 154, 138, 140, 147, 141, 133, 111, 135, 136, 119, 144, 142, 124, 122, 118, 132, 130, 125, 132, 148, 132, 120, 140, 142, 138, 164, 144, 129, 144, 130, 142, 134, 136, 107, 137, 129, 135, 142, 139, 134, 144, 138, 126, 135, 141, 113, 142, 110, 133, 118, 131, 136, 121, 148, 117, 126, 133, 141, 123, 133, 120, 137, 137, 140, 139, 140, 136, 135, 134, 143, 139, 151, 142, 140, 140, 136, 129, 149, 135, 137, 144, 141, 163, 178, 133, 146, 136, 142, 132, 133, 128, 132, 120, 150, 143, 116, 109, 139, 138, 137, 146, 128, 137, 157, 129, 131, 134, 127, 138, 143, 129, 129, 127, 142, 126, 142, 127, 147, 138, 130, 139, 147, 137, 145, 136, 127, 131, 141, 134, 121, 124, 124, 119, 144, 141, 125, 130, 130, 124, 145, 127, 123, 126, 152, 119, 122, 120, 151, 134, 127, 139, 137, 149, 134, 124, 135, 138, 131, 129, 131, 123, 130, 131, 123, 131, 135, 130, 126, 131, 136, 135, 141, 137, 134, 140, 167, 122, 123, 137, 131, 130, 134, 143, 136, 137, 165, 124, 138, 147, 138, 133, 117, 129, 137, 130, 132, 132, 124, 138, 133, 124, 145, 128, 149, 137, 136, 130, 142, 122, 127, 137, 143, 134, 138, 135, 127, 126, 130, 144, 117, 140, 129, 142, 158, 118, 133, 119, 131, 129, 153, 176, 153, 139, 124, 134, 131, 154, 141, 152, 139, 121, 127, 149, 136, 137, 143, 147, 100, 119, 140, 132, 127, 143, 129, 136, 140, 149, 139, 164, 128, 157, 135, 135, 134, 142, 126, 120, 142, 139, 137, 129, 159, 143, 171, 132, 124, 128, 124, 143, 133, 116, 140, 109, 140, 145, 131, 121, 128, 118, 142, 135, 143, 139, 130, 161, 135, 116, 130, 132, 138, 133, 132, 134, 126, 136, 134, 135, 139, 126, 126, 140, 134, 141, 144, 133, 141, 137, 144, 149, 131, 147, 129, 132, 141, 149, 139, 154, 127, 126, 141, 142, 141, 117, 125, 146, 111, 135, 145, 126, 122, 133, 132, 146, 133, 133, 126, 147, 129, 138, 126, 139, 137, 134, 135, 139, 129, 113, 147, 131, 127, 135, 111, 128, 135, 125, 140, 147, 133, 128, 119, 146, 138, 150, 140, 141, 136, 143, 177, 149, 136, 121, 117, 141, 138, 131, 129, 137, 136, 132, 132, 122, 120, 128, 149, 138, 130, 125, 125, 146, 144, 119, 104, 133, 153, 116, 140, 135, 123, 135, 135, 126, 144, 153, 143, 127, 133, 144, 142, 152, 156, 135, 152, 140, 133, 131, 166, 127, 134, 143, 121, 125, 132, 136, 143, 148, 138, 145, 135, 117, 136, 125, 130, 119, 152, 136, 149, 128, 137, 143, 144, 114, 144, 143, 121, 133, 135, 150, 155, 140, 142, 124, 138, 142, 144, 147, 125, 110, 134, 139, 123, 148, 133, 137, 132, 137, 142, 120, 142, 150, 121, 160, 127, 120, 154, 128, 131, 135, 133, 128, 145, 134, 125, 140, 137, 126, 133, 116, 126, 122, 178, 131, 125, 121, 129, 146, 136, 138, 129, 140, 148, 136, 135, 160, 133, 138, 133, 146, 148, 128, 128, 137, 151, 147, 140, 170, 125, 129, 131, 121, 134, 169, 133, 125, 136, 147, 136, 134, 115, 139, 136, 144, 136, 138, 136, 146, 124, 134, 134, 142, 143, 126, 139, 133, 136, 132, 129, 137, 143, 128, 116, 138, 128, 132, 139, 155, 143, 134, 137, 134, 129, 133, 122, 146, 151, 137, 121, 128, 131, 123, 136, 116, 136, 129, 123, 133, 136, 132, 139, 146, 140, 137, 138, 126, 139, 129, 125, 130, 114, 146, 132, 156, 138, 134, 144, 136, 148, 134, 111, 132, 134, 142, 143, 151, 126, 130, 123, 130, 127, 142, 132, 129, 135, 124, 127, 134, 130, 142, 141, 144, 119, 112, 134, 126, 138, 115, 121, 130, 148, 154, 146, 134, 132, 125, 122, 128, 111, 140, 120, 127, 129, 134, 134, 137, 137, 143, 146, 138, 131, 138, 129, 130, 133, 139, 137, 148, 131, 123, 153, 123, 141, 134, 132, 133, 151, 121, 139, 151, 135, 134, 136, 140, 135, 131, 121, 139, 131, 154, 136, 125, 143, 117, 119, 121, 139, 135, 145, 118, 147, 119, 132, 132, 124, 143, 131, 133, 143, 130, 145, 127, 124, 135, 127, 135, 139, 128, 152, 128, 140, 128, 112, 140, 131, 132, 120, 118, 132, 136, 159, 140, 129, 135, 141, 127, 137, 138, 112, 134, 127, 130, 149, 143, 142, 121, 136, 144, 143, 129, 125, 144, 133, 134, 135, 164, 154, 144, 128, 132, 137, 125, 126, 135, 136, 146, 153, 143, 126, 140, 144, 153, 139, 135, 147, 139, 132, 144, 139, 143, 132, 136, 130, 137, 132, 137, 134, 141, 141, 142, 119, 145, 137, 131, 139, 132, 129, 131, 136, 139, 138, 132, 142, 141, 126, 127, 140, 134, 143, 122, 146, 134, 124, 144, 141, 144, 133, 138, 143, 139, 132, 134, 122, 133, 138, 135, 139, 136, 144, 131, 149, 143, 141, 136, 142, 133, 150, 122, 142, 126, 125, 128, 123, 138, 128, 137, 136, 126, 151, 124, 149, 157, 154, 133, 135, 131, 145, 131, 152, 129, 129, 141, 139, 135, 150, 140, 131, 133, 137, 137, 137, 140, 140, 142, 133, 136, 137, 138, 169, 131, 145, 130, 121, 145, 136, 134, 134, 130, 125, 132, 119, 148, 129, 135, 130, 148, 137, 142, 109, 141, 138, 130, 138, 146, 146, 131, 143, 143, 132, 136, 135, 130, 135, 139, 139, 138, 140, 124, 147, 138, 136, 135, 122, 135, 131, 128, 142, 130, 142, 134, 134, 130, 129, 124, 135, 139, 137, 131, 130, 143, 138, 132, 137, 130, 132, 158, 136, 133, 139, 141, 161, 154, 128, 131, 137, 140, 134, 138, 138, 133, 133, 140, 128, 140, 139, 133, 129, 137, 145, 146, 141, 137, 139, 148, 130, 150, 131, 141, 134, 124, 128, 134, 143, 133, 135, 138, 131, 129, 122, 134, 130, 127, 127, 137, 133, 123, 146, 136, 153, 122, 134, 138, 132, 140, 137, 150, 134, 136, 136, 148, 142, 136, 148, 146, 133, 139, 138, 138, 114, 141, 133, 129, 124, 129, 137, 137, 127, 137, 141, 150, 148, 134, 128, 127, 136, 136, 133, 139, 141, 133, 139, 142, 139, 143, 135, 138, 126, 125, 164, 130, 133, 132, 145, 141, 135, 154, 134, 135, 139, 130, 139, 135, 144, 136, 144, 136, 133, 137, 150, 129, 139, 125, 133, 148, 126, 146, 130, 121, 129, 130, 132, 128, 143, 125, 125, 140, 150, 124, 138, 152, 141, 161, 145, 137, 138, 147, 138, 161, 138, 146, 132, 148, 138, 135, 141, 134, 134, 144, 138, 127, 131, 142, 138, 148, 139, 131, 132, 139, 136, 138, 141, 127, 134, 141, 142, 132, 143, 136, 128, 136, 128, 137, 130, 132, 131, 138, 139, 130, 139, 143, 139, 141, 138, 146, 129, 139, 142, 130, 129, 131, 129, 128, 119, 134, 132, 131, 134, 131, 140, 140, 137, 151, 143, 121, 131, 133, 137, 143, 132, 132, 139, 133, 137, 127, 133, 139, 129, 135, 129, 131, 138, 135, 140, 143, 135, 157, 131, 136, 150, 140, 153, 130, 135, 131, 143, 139, 136, 150, 132, 137, 147, 138, 132, 127, 135, 135, 115, 135, 129, 145, 136, 135, 153, 148, 139, 119, 122, 133, 144, 122, 127, 144, 138, 136, 141, 144, 139, 132, 142, 142, 142, 132, 139, 137, 134, 125, 132, 132, 125, 132, 131, 138, 134, 129, 131, 137, 129, 132, 140, 135, 132, 132, 139, 131, 137, 138, 133, 143, 142, 137, 141, 137, 138, 132, 145, 125, 135, 137, 128, 148, 158, 134, 146, 129, 142, 136, 121, 132, 127, 137, 134, 108, 131, 136, 135, 125, 114, 152, 144, 128, 133, 122, 143, 145, 137, 157, 139, 125, 134, 137, 142, 140, 124, 118, 137, 141, 127, 129, 123, 140, 155, 130, 137, 121, 141, 136, 133, 132, 137, 109, 136, 130, 125, 163, 145, 137, 132, 119, 128, 136, 131, 150, 137, 117, 130, 130, 125, 139, 144, 146, 145, 139, 136, 113, 137, 149, 145, 142, 131, 125, 146, 128, 135, 129, 105, 130, 144, 123, 124, 133, 129, 151, 134, 149, 141, 133, 124, 132, 134, 128, 128, 135, 144, 143, 127, 136, 119, 138, 132, 124, 134, 124, 146, 138, 140, 140, 125, 147, 134, 142, 143, 138, 151, 144, 126, 137, 142, 136, 137, 136, 140, 116, 129, 130, 137, 137, 130, 124, 135, 147, 132, 129, 152, 133, 123, 129, 144, 140, 142, 139, 141, 139, 121, 135, 136, 137, 146, 126, 142, 152, 146, 120, 144, 134, 135, 149, 143, 117, 130, 133, 133, 163, 138, 126, 128, 121, 127, 136, 123, 131, 135, 137, 130, 135, 140, 135, 141, 126, 137, 139, 143, 131, 156, 149, 123, 131, 151, 138, 117, 129, 122, 139, 129, 149, 132, 126, 148, 113, 131, 140, 136, 136, 131, 125, 139, 155, 126, 160, 128, 116, 137, 139, 120, 154, 142, 133, 154, 143, 124, 146, 120, 133, 146, 133, 139, 155, 138, 139, 127, 145, 133, 115, 137, 135, 120, 127, 125, 130, 138, 135, 129, 136, 154, 140, 137, 119, 127, 133, 142, 125, 145, 138, 133, 134, 133, 130, 135, 150, 121, 137, 139, 136, 132, 141, 124, 130, 126, 127, 127, 144, 128, 144, 132, 115, 137, 147, 133, 133, 132, 134, 121, 122, 157, 119, 129, 127, 129, 143, 134, 163, 132, 122, 142, 126, 127, 131, 153, 137, 122, 126, 114, 141, 136, 143, 159, 137, 130, 161, 120, 139, 123, 124, 139, 136, 129, 147, 141, 146, 139, 120, 113, 132, 142, 134, 133, 134, 130, 110, 134, 125, 134, 152, 126, 125, 120, 127, 137, 133, 135, 139, 126, 127, 130, 130, 149, 129, 132, 151, 128, 143, 134, 131, 146, 115, 137, 129, 145, 132, 118, 130, 147, 128, 129, 131, 129, 146, 118, 139, 134, 138, 137, 115, 136, 148, 151, 144, 134, 143, 137, 144, 136, 146, 146, 152, 124, 151, 135, 133, 133, 125, 136, 150, 140, 130, 136, 123, 140, 136, 130, 133, 131, 142, 134, 147, 140, 119, 132, 127, 136, 140, 128, 133, 130, 150, 127, 146, 129, 145, 135, 126, 138, 159, 127, 130, 145, 142, 142, 131, 129, 157, 130, 143, 133, 156, 122, 127, 126, 125, 138, 113, 133, 148, 115, 133, 138, 113, 123, 137, 119, 126, 118, 122, 151, 140, 138, 116, 123, 153, 132, 128, 131, 132, 159, 126, 125, 128, 136, 139, 130, 133, 137, 140, 121, 137, 140, 130, 129, 142, 149, 136, 133, 122, 145, 125, 126, 136, 131, 147, 138, 126, 149, 151, 136, 143, 122, 132, 129, 125, 136, 125, 126, 116, 144, 151, 150, 138, 148, 157, 129, 130, 135, 139, 143, 121, 129, 130, 140, 138, 146, 131, 140, 133, 154, 144, 136, 137, 132, 139, 145, 147, 138, 139, 133, 136, 143, 135, 132, 134, 141, 135, 132, 140, 140, 134, 143, 135, 133, 132, 129, 134, 135, 132, 134, 135, 142, 131, 136, 134, 139, 136, 134, 131, 140, 132, 140, 129, 143, 141, 144, 140, 144, 135, 128, 135, 141, 144, 137, 135, 139, 146, 139, 138, 138, 135, 135, 137, 135, 136, 146, 136, 136, 137, 156, 140, 137, 133, 147, 128, 144, 141, 134, 138, 137, 148, 134, 136, 131, 134, 141, 141, 135, 130, 138, 127, 135, 138, 131, 136, 142, 135, 135, 138, 135, 137, 137, 130, 131, 136, 137, 139, 138, 139, 132, 120, 139, 134, 128, 132, 136, 133, 144, 139, 138, 138, 142, 129, 137, 137, 140, 140, 135, 135, 131, 136, 135, 138, 137, 122, 132, 132, 131, 137, 132, 142, 127, 128, 125, 136, 131, 137, 149, 136, 145, 143, 141, 142, 138, 132, 143, 130, 136, 138, 140, 133, 128, 135, 141, 112, 136, 139, 136, 133, 152, 137, 129, 131, 137, 134, 146, 134, 134, 140, 134, 150, 151, 139, 136, 129, 139, 136, 131, 139, 141, 138, 141, 132, 143, 137, 130, 141, 141, 135, 132, 139, 135, 138, 134, 147, 145, 142, 143, 142, 142, 146, 125, 141, 152, 133, 134, 132, 141, 135, 133, 146, 139, 139, 143, 139, 134, 147, 141, 129, 132, 129, 138, 131, 136, 139, 139, 138, 139, 139, 131, 135, 119, 133, 128, 136, 131, 125, 135, 138, 136, 147, 139, 131, 138, 142, 139, 136, 139, 135, 135, 138, 137, 133, 134, 134, 132, 137, 139, 134, 133, 130, 136, 135, 132, 130, 136, 153, 136, 140, 133, 132, 141, 134, 123, 141, 134, 137, 139, 123, 125, 139, 98, 125, 131, 132, 144, 136, 144, 126, 140, 138, 139, 139, 125, 139, 141, 138, 136, 150, 136, 140, 138, 145, 132, 138, 127, 143, 135, 142, 136, 140, 143, 142, 145, 135, 129, 144, 136, 127, 139, 137, 138, 133, 130, 134, 136, 137, 140, 130, 138, 135, 138, 139, 137, 134, 135, 137, 137, 131, 139, 137, 134, 138, 135, 139, 134, 150, 129, 144, 133, 136, 140, 134, 115, 134, 137, 132, 138, 136, 122, 136, 136, 142, 144, 142, 138, 133, 132, 132, 142, 129, 133, 140, 139, 137, 133, 138, 136, 136, 130, 133, 134, 139, 139, 134, 133, 142, 118, 138, 133, 129, 134, 129, 134, 144, 140, 123, 129, 134, 138, 133, 134, 140, 137, 128, 138, 141, 144, 138, 137, 129, 136, 122, 135, 137, 148, 133, 134, 138, 133, 138, 133, 139, 148, 135, 135, 133, 157, 142, 136, 136, 139, 138, 134, 130, 134, 136, 133, 138, 133, 138, 131, 134, 140, 142, 135, 130, 129, 135, 140, 138, 134, 137, 137, 132, 135, 131, 141, 123, 136, 140, 135, 135, 128, 136, 140, 139, 140, 132, 131, 138, 127, 139, 138, 139, 138, 136, 137, 136, 132, 133, 137, 136, 148, 135, 132, 131, 125, 134, 135, 133, 143, 131, 139, 132, 130, 145, 124, 137, 140, 136, 135, 132, 132, 133, 141, 125, 151, 134, 145, 138, 146, 127, 140, 138, 147, 142, 128, 141, 154, 128, 139, 135, 139, 133, 153, 131, 128, 142, 138, 145, 142, 138, 142, 141, 136, 146, 131, 132, 147, 138, 130, 143, 131, 133, 131, 136, 129, 136, 130, 160, 131, 139, 140, 128, 141, 140, 141, 134, 129, 140, 127, 137, 142, 134, 149, 144, 128, 141, 136, 131, 127, 146, 149, 138, 137, 125, 133, 150, 122, 145, 132, 129, 142, 147, 131, 132, 137, 143, 138, 140, 139, 121, 137, 133, 133, 132, 138, 141, 136, 139, 138, 140, 133, 131, 136, 138, 141, 137, 134, 137, 149, 143, 151, 137, 131, 140, 141, 140, 132, 137, 144, 137, 154, 137, 141, 126, 137, 132, 148, 132, 138, 144, 140, 125, 130, 159, 139, 140, 132, 136, 123, 132, 159, 135, 139, 141, 133, 143, 91, 139, 139, 141, 140, 128, 143, 136, 138, 141, 141, 133, 137, 137, 135, 134, 136, 204, 135, 146, 130, 138, 144, 128, 126, 136, 141, 136, 144, 129, 137, 139, 135, 148, 101, 124, 125, 134, 144, 145, 127, 138, 131, 136, 142, 126, 120, 129, 132, 123, 137, 140, 135, 124, 137, 129, 127, 134, 141, 138, 140, 132, 142, 149, 127, 135, 104, 141, 129, 131, 140, 131, 138, 143, 136, 146, 134, 141, 133, 125, 135, 147, 146, 137, 143, 135, 125, 135, 139, 128, 131, 133, 154, 144, 121, 129, 135, 149, 134, 150, 131, 134, 131, 132, 138, 126, 143, 136, 141, 137, 128, 132, 132, 145, 148, 143, 127, 141, 130, 129, 130, 138, 137, 143, 135, 139, 132, 146, 141, 131, 137, 137, 133, 141, 136, 129, 143, 139, 138, 124, 141, 121, 157, 151, 157, 113, 135, 122, 139, 153, 132, 142, 138, 135, 128, 135, 120, 127, 131, 140, 130, 139, 137, 143, 144, 133, 140, 137, 127, 129, 134, 142, 149, 146, 143, 133, 147, 135, 125, 116, 115, 135, 145, 136, 137, 140, 124, 181, 137, 144, 150, 148, 139, 128, 101, 122, 128, 136, 123, 137, 139, 139, 134, 140, 128, 137, 143, 147, 133, 146, 132, 139, 130, 135, 137, 145, 140, 141, 138, 132, 116, 128, 107, 134, 139, 158, 152, 136, 135, 121, 144, 126, 130, 147, 131, 148, 146, 134, 132, 154, 129, 140, 156, 135, 143, 136, 134, 132, 127, 142, 182, 127, 138, 131, 136, 134, 140, 127, 117, 124, 148, 136, 158, 124, 135, 153, 149, 138, 140, 141, 157, 139, 124, 102, 132, 130, 148, 130, 143, 142, 136, 131, 140, 134, 130, 140, 147, 129, 127, 149, 133, 133, 131, 131, 130, 141, 119, 137, 132, 132, 135, 139, 139, 138, 139, 143, 134, 144, 142, 141, 122, 141, 139, 55, 117, 134, 125, 122, 133, 144, 120, 126, 130, 133, 139, 136, 138, 138, 138, 138, 129, 131, 140, 143, 142, 143, 131, 142, 138, 130, 138, 128, 145, 140, 155, 146, 128, 132, 131, 125, 146, 126, 137, 147, 130, 139, 134, 145, 140, 132, 121, 125, 142, 149, 128, 132, 142, 134, 133, 130, 143, 137, 134, 136, 137, 139, 121, 138, 139, 136, 146, 138, 156, 141, 135, 134, 124, 139, 149, 136, 138, 136, 125, 141, 148, 131, 147, 144, 135, 141, 133, 124, 135, 138, 137, 133, 138, 133, 121, 141, 134, 141, 155, 144, 132, 133, 137, 132, 134, 129, 129, 141, 127, 129, 135, 134, 133, 141, 151, 145, 124, 133, 132, 132, 135, 133, 140, 147, 136, 116, 137, 141, 142, 129, 135, 132, 130, 131, 133, 137, 130, 134, 127, 148, 136, 138, 134, 131, 135, 142, 143, 128, 131, 165, 144, 141, 134, 130, 140, 133, 136, 129, 132, 143, 134, 125, 158, 143, 123, 139, 132, 132, 141, 150, 139, 130, 142, 139, 134, 134, 142, 137, 140, 145, 135, 123, 128, 137, 135, 132, 132, 134, 117, 138, 127, 136, 139, 160, 143, 127, 140, 131, 135, 132, 140, 133, 131, 159, 141, 131, 138, 128, 149, 133, 141, 132, 129, 132, 129, 138, 136, 130, 128, 131, 131, 138, 130, 133, 149, 130, 140, 142, 138, 138, 131, 133, 131, 141, 137, 137, 138, 131, 128, 138, 133, 125, 129, 143, 141, 149, 132, 153, 129, 129, 137, 125, 135, 135, 125, 126, 146, 138, 141, 134, 139, 145, 126, 137, 150, 115, 151, 127, 136, 133, 132, 138, 143, 143, 125, 133, 148, 136, 148, 125, 135, 136, 120, 133, 132, 155, 143, 140, 134, 134, 133, 135, 128, 147, 133, 140, 141, 129, 135, 139, 145, 139, 119, 147, 129, 134, 143, 138, 127, 131, 137, 128, 134, 157, 125, 131, 143, 141, 125, 150, 142, 131, 121, 132, 130, 133, 124, 161, 135, 134, 140, 138, 130, 132, 134, 120, 122, 125, 133, 144, 125, 128, 138, 133, 124, 130, 143, 121, 147, 132, 128, 143, 134, 160, 148, 133, 134, 137, 133, 136, 153, 144, 122, 132, 132, 130, 132, 133, 146, 140, 134, 131, 144, 123, 145, 133, 142, 131, 130, 143, 146, 125, 136, 127, 124, 132, 122, 140, 133, 144, 122, 140, 128, 133, 129, 127, 140, 138, 140, 129, 145, 144, 145, 128, 118, 148, 129, 125, 142, 143, 136, 161, 131, 132, 133, 133, 146, 132, 135, 131, 138, 134, 132, 135, 149, 133, 137, 127, 126, 151, 133, 148, 130, 136, 138, 136, 134, 138, 130, 136, 137, 134, 159, 128, 133, 130, 149, 132, 142, 130, 126, 128, 126, 140, 137, 132, 130, 117, 136, 133, 130, 130, 150, 131, 131, 138, 137, 134, 136, 138, 131, 137, 133, 134, 131, 120, 142, 131, 134, 133, 128, 142, 139, 136, 131, 137, 137, 129, 134, 155, 129, 134, 125, 142, 133, 135, 147, 137, 139, 135, 128, 133, 130, 138, 136, 126, 135, 137, 138, 141, 149, 131, 137, 136, 132, 128, 120, 129, 131, 134, 131, 125, 138, 136, 124, 135, 144, 133, 137, 146, 132, 166, 124, 127, 118, 137, 121, 139, 139, 135, 137, 141, 138, 131, 127, 136, 118, 132, 157, 131, 133, 138, 133, 142, 135, 133, 129, 132, 119, 129, 138, 118, 145, 148, 143, 132, 137, 127, 142, 146, 118, 140, 128, 139, 132, 148, 146, 131, 142, 131, 137, 147, 145, 133, 132, 138, 141, 135, 124, 127, 128, 137, 147, 142, 140, 140, 137, 120, 120, 134, 134, 130, 136, 127, 127, 129, 130, 147, 140, 119, 133, 130, 136, 151, 121, 118, 131, 151, 133, 121, 134, 145, 137, 132, 127, 136, 131, 146, 134, 126, 153, 137, 147, 149, 132, 146, 135, 126, 126, 132, 124, 126, 135, 125, 155, 132, 136, 125, 127, 138, 129, 114, 118, 128, 125, 120, 123, 140, 141, 135, 138, 145, 148, 133, 130, 133, 139, 125, 143, 132, 156, 121, 134, 142, 130, 130, 142, 131, 125, 139, 137, 141, 147, 127, 135, 146, 135, 136, 142, 130, 133, 136, 141, 134, 135, 128, 138, 134, 120, 135, 137, 134, 132, 134, 141, 136, 131, 140, 131, 127, 140, 144, 149, 137, 141, 150, 132, 132, 132, 138, 132, 128, 138, 146, 134, 137, 132, 140, 136, 131, 142, 134, 133, 131, 134, 145, 143, 141, 140, 137, 137, 140, 131, 142, 141, 144, 142, 139, 125, 141, 132, 137, 123, 126, 131, 128, 147, 133, 138, 147, 143, 160, 145, 141, 137, 136, 134, 138, 153, 139, 144, 137, 132, 139, 124, 132, 138, 139, 129, 145, 148, 133, 129, 140, 138, 138, 140, 126, 129, 138, 129, 129, 135, 133, 137, 147, 137, 141, 140, 125, 132, 126, 137, 123, 140, 130, 131, 134, 127, 152, 137, 150, 136, 142, 138, 133, 134, 149, 132, 137, 142, 129, 140, 127, 129, 142, 128, 144, 148, 140, 144, 132, 132, 128, 143, 143, 136, 127, 136, 133, 141, 134, 123, 137, 123, 128, 141, 135, 135, 147, 145, 142, 133, 140, 134, 138, 135, 124, 133, 120, 149, 129, 133, 138, 120, 128, 130, 137, 134, 141, 127, 128, 130, 133, 142, 130, 138, 142, 125, 132, 130, 132, 150, 127, 140, 131, 137, 132, 117, 135, 145, 136, 143, 127, 149, 141, 136, 137, 126, 144, 138, 142, 138, 123, 139, 144, 134, 133, 136, 141, 138, 141, 137, 126, 124, 144, 142, 139, 127, 123, 139, 133, 139, 125, 137, 129, 132, 135, 138, 142, 134, 135, 129, 134, 140, 136, 130, 141, 141, 133, 143, 140, 135, 130, 136, 128, 141, 128, 132, 129, 141, 144, 131, 140, 132, 132, 122, 137, 146, 135, 136, 121, 129, 129, 133, 139, 140, 136, 137, 141, 128, 123, 121, 157, 146, 135, 148, 127, 130, 140, 155, 125, 139, 143, 138, 122, 139, 144, 134, 132, 127, 142, 138, 128, 132, 123, 133, 128, 138, 137, 132, 131, 141, 138, 138, 126, 134, 132, 135, 145, 119, 132, 135, 140, 133, 140, 141, 143, 133, 123, 133, 131, 141, 124, 140, 140, 141, 125, 135, 138, 144, 127, 129, 159, 130, 137, 135, 126, 139, 137, 153, 143, 137, 139, 140, 138, 144, 146, 129, 124, 142, 131, 135, 132, 152, 149, 138, 128, 141, 127, 132, 141, 134, 142, 137, 138, 130, 141, 130, 142, 137, 139, 134, 142, 140, 141, 137, 143, 143, 130, 131, 137, 131, 140, 141, 146, 136, 139, 131, 131, 134, 135, 150, 138, 135, 134, 132, 127, 130, 137, 138, 134, 138, 138, 129, 136, 140, 130, 131, 143, 128, 140, 129, 131, 137, 138, 142, 139, 135, 138, 137, 140, 133, 146, 126, 139, 132, 139, 135, 143, 147, 136, 137, 131, 146, 138, 135, 136, 138, 130, 127, 135, 134, 135, 118, 134, 139, 138, 132, 137, 142, 140, 139, 134, 135, 134, 138, 137, 141, 130, 134, 136, 139, 143, 137, 133, 131, 138, 141, 132, 142, 141, 138, 138, 140, 140, 145, 138, 138, 145, 135, 137, 137, 134, 139, 132, 142, 140, 137, 130, 134, 141, 135, 131, 136, 141, 134, 146, 130, 141, 138, 131, 128, 133, 138, 132, 136, 143, 135, 165, 139, 133, 138, 138, 137, 144, 134, 125, 138, 133, 133, 135, 95, 125, 133, 139, 140, 136, 140, 141, 133, 146, 153, 131, 136, 138, 134, 142, 138, 188, 135, 135, 137, 130, 138, 131, 138, 134, 131, 135, 139, 135, 148, 139, 140, 130, 143, 137, 132, 135, 127, 142, 124, 134, 126, 126, 136, 138, 137, 136, 129, 136, 133, 131, 137, 131, 133, 135, 133, 127, 151, 137, 130, 138, 128, 137, 135, 137, 152, 145, 134, 149, 137, 129, 134, 141, 136, 141, 134, 136, 137, 151, 138, 132, 136, 136, 133, 144, 137, 137, 137, 129, 137, 132, 129, 136, 136, 133, 148, 140, 127, 139, 137, 127, 141, 133, 145, 133, 134, 136, 142, 132, 142, 126, 132, 131, 132, 140, 132, 141, 134, 133, 136, 136, 153, 142, 134, 134, 135, 137, 136, 140, 131, 137, 139, 137, 135, 138, 137, 129, 132, 136, 131, 143, 157, 131, 165, 149, 137, 140, 135, 134, 129, 127, 135, 143, 133, 140, 134, 129, 130, 135, 143, 150, 137, 137, 143, 140, 137, 128, 126, 135, 143, 136, 133, 136, 142, 142, 134, 146, 134, 139, 120, 148, 136, 140, 138, 130, 131, 186, 139, 136, 143, 135, 138, 135, 124, 133, 141, 140, 125, 134, 135, 125, 140, 137, 136, 136, 137, 134, 138, 139, 139, 132, 136, 134, 134, 138, 130, 129, 136, 140, 130, 123, 131, 137, 140, 139, 143, 137, 135, 143, 139, 125, 137, 130, 132, 131, 122, 136, 133, 118, 140, 142, 135, 137, 135, 135, 136, 136, 140, 130, 170, 127, 134, 146, 144, 141, 129, 137, 141, 145, 126, 142, 122, 139, 135, 130, 136, 139, 135, 140, 130, 135, 138, 111, 141, 143, 138, 133, 137, 136, 133, 134, 139, 142, 136, 133, 112, 138, 141, 123, 119, 132, 129, 134, 139, 141, 121, 140, 138, 130, 143, 132, 137, 138, 145, 136, 121, 137, 132, 141, 144, 130, 136, 120, 147, 139, 132, 137, 135, 118, 137, 122, 130, 143, 134, 129, 139, 138, 140, 131, 135, 130, 133, 124, 138, 144, 141, 129, 137, 138, 136, 140, 130, 141, 126, 140, 134, 134, 138, 136, 130, 132, 145, 140, 134, 124, 138, 136, 140, 129, 130, 144, 129, 130, 151, 140, 141, 146, 137, 138, 143, 136, 133, 131, 140, 127, 133, 129, 134, 138, 133, 138, 142, 148, 127, 134, 134, 130, 141, 144, 129, 135, 135, 136, 134, 143, 128, 130, 149, 131, 136, 136, 133, 128, 135, 147, 146, 138, 136, 141, 138, 129, 147, 147, 123, 129, 136, 128, 132, 137, 131, 132, 141, 132, 137, 131, 137, 146, 132, 130, 135, 141, 128, 144, 145, 126, 129, 135, 132, 143, 145, 116, 148, 141, 131, 136, 141, 134, 127, 132, 140, 135, 130, 150, 131, 136, 126, 137, 127, 140, 135, 137, 141, 133, 135, 132, 138, 139, 129, 143, 131, 136, 134, 136, 147, 121, 118, 139, 135, 140, 133, 132, 133, 133, 129, 144, 136, 141, 139, 144, 134, 140, 136, 138, 129, 141, 132, 131, 140, 114, 133, 137, 137, 125, 128, 144, 135, 137, 139, 137, 134, 134, 126, 131, 142, 137, 143, 127, 129, 135, 133, 136, 147, 135, 132, 142, 133, 143, 131, 194, 141, 134, 130, 147, 141, 131, 135, 130, 122, 147, 139, 136, 128, 139, 129, 150, 135, 135, 135, 135, 143, 139, 142, 133, 131, 141, 146, 138, 139, 147, 134, 130, 136, 128, 130, 139, 137, 136, 146, 125, 142, 134, 131, 136, 128, 135, 135, 137, 137, 133, 124, 134, 131, 133, 131, 136, 140, 136, 141, 142, 137, 125, 137, 129, 143, 134, 132, 139, 124, 148, 135, 139, 149, 137, 123, 148, 139, 133, 130, 130, 153, 136, 139, 141, 136, 135, 151, 137, 122, 143, 143, 126, 123, 119, 133, 132, 131, 139, 140, 143, 122, 136, 134, 136, 136, 128, 143, 138, 121, 125, 142, 137, 130, 140, 140, 122, 140, 139, 140, 132, 126, 134, 133, 140, 144, 127, 145, 130, 134, 136, 136, 134, 137, 126, 132, 124, 131, 126, 127, 130, 136, 141, 138, 128, 140, 126, 127, 144, 136, 136, 117, 143, 132, 132, 140, 139, 131, 129, 161, 134, 138, 139, 118, 104, 129, 129, 139, 137, 136, 111, 135, 144, 139, 129, 121, 136, 115, 140, 140, 147, 141, 135, 133, 131, 140, 128, 133, 137, 131, 146, 143, 142, 143, 135, 137, 144, 142, 134, 135, 138, 134, 139, 130, 131, 132, 137, 134, 131, 123, 134, 137, 133, 139, 138, 145, 138, 139, 133, 132, 131, 129, 128, 138, 135, 144, 129, 138, 135, 139, 133, 125, 138, 141, 137, 135, 131, 136, 129, 129, 127, 145, 163, 152, 128, 161, 143, 131, 134, 137, 134, 145, 134, 133, 131, 137, 141, 132, 140, 140, 131, 158, 131, 131, 135, 139, 140, 134, 147, 137, 136, 145, 164, 143, 154, 131, 134, 134, 130, 144, 141, 140, 140, 140, 141, 145, 137, 138, 140, 138, 125, 131, 139, 134, 126, 141, 129, 136, 132, 135, 130, 140, 124, 139, 133, 139, 129, 139, 130, 132, 133, 124, 131, 133, 138, 139, 137, 136, 148, 140, 143, 145, 136, 133, 126, 128, 141, 139, 137, 138, 131, 133, 134, 139, 137, 135, 150, 141, 144, 143, 138, 125, 131, 135, 144, 135, 129, 131, 129, 131, 131, 143, 133, 152, 153, 127, 136, 137, 131, 138, 142, 145, 137, 132, 129, 135, 145, 131, 128, 128, 140, 132, 135, 134, 135, 130, 141, 132, 128, 138, 121, 136, 145, 135, 136, 138, 139, 133, 144, 130, 135, 139, 138, 128, 140, 127, 137, 135, 140, 137, 129, 148, 128, 145, 123, 136, 137, 140, 142, 142, 157, 129, 135, 141, 134, 139, 145, 138, 150, 123, 143, 134, 150, 157, 146, 141, 146, 127, 136, 144, 140, 134, 123, 133, 136, 133, 135, 158, 135, 137, 114, 123, 141, 131, 141, 137, 139, 147, 142, 131, 134, 133, 135, 132, 135, 133, 129, 134, 135, 130, 135, 136, 134, 121, 131, 144, 132, 141, 134, 129, 133, 141, 134, 158, 133, 136, 142, 138, 127, 131, 147, 141, 136, 121, 128, 134, 136, 136, 134, 142, 136, 130, 136, 107, 139, 137, 133, 144, 138, 134, 122, 154, 134, 127, 141, 141, 121, 135, 139, 138, 138, 126, 135, 125, 137, 149, 137, 134, 143, 132, 142, 135, 154, 141, 136, 145, 137, 141, 136, 135, 132, 138, 137, 146, 134, 163, 138, 141, 135, 123, 129, 138, 135, 143, 133, 137, 159, 148, 144, 129, 132, 137, 133, 150, 137, 134, 129, 129, 134, 151, 125, 136, 133, 142, 139, 134, 125, 134, 154, 136, 128, 124, 149, 133, 139, 148, 135, 139, 119, 121, 171, 135, 120, 126, 134, 140, 135, 138, 136, 137, 143, 146, 129, 131, 146, 142, 142, 130, 138, 126, 139, 129, 125, 127, 144, 134, 123, 128, 131, 142, 134, 144, 135, 144, 134, 145, 142, 138, 115, 130, 135, 130, 135, 135, 144, 135, 119, 129, 137, 126, 148, 134, 147, 146, 124, 153, 124, 135, 135, 130, 137, 133, 133, 127, 131, 152, 128, 132, 140, 118, 126, 149, 121, 139, 135, 136, 141, 147, 133, 144, 143, 134, 140, 137, 144, 132, 139, 154, 159, 123, 139, 140, 137, 119, 134, 139, 137, 127, 165, 135, 124, 131, 143, 133, 127, 130, 131, 129, 138, 134, 128, 142, 137, 132, 126, 147, 132, 128, 107, 133, 141, 140, 123, 137, 140, 134, 141, 133, 139, 152, 135, 135, 142, 126, 146, 135, 153, 140, 126, 129, 141, 138, 125, 146, 134, 136, 131, 144, 134, 124, 134, 128, 137, 138, 142, 129, 130, 139, 141, 129, 145, 138, 130, 141, 136, 137, 124, 137, 134, 138, 147, 139, 145, 135, 126, 133, 128, 131, 133, 139, 137, 137, 133, 139, 143, 132, 136, 142, 135, 140, 140, 139, 139, 123, 146, 147, 120, 127, 130, 130, 153, 137, 133, 131, 140, 129, 133, 134, 135, 134, 129, 143, 141, 136, 140, 143, 152, 143, 132, 138, 143, 133, 142, 139, 143, 137, 137, 133, 135, 130, 144, 134, 147, 128, 132, 125, 143, 154, 158, 130, 144, 147, 134, 143, 123, 138, 126, 134, 127, 147, 137, 131, 146, 151, 143, 129, 141, 148, 138, 128, 159, 124, 142, 144, 123, 146, 139, 152, 136, 132, 140, 136, 140, 137, 137, 134, 132, 139, 137, 128, 137, 142, 139, 134, 132, 133, 137, 136, 135, 137, 135, 136, 143, 135, 138, 142, 136, 142, 139, 143, 138, 136, 132, 138, 134, 135, 137, 138, 136, 135, 138, 137, 139, 131, 138, 135, 140, 135, 141, 130, 133, 132, 134, 136, 134, 142, 139, 127, 134, 134, 138, 140, 129, 135, 136, 135, 134, 139, 138, 140, 134, 134, 133, 133, 139, 137, 139, 136, 133, 135, 137, 139, 138, 137, 139, 138, 138, 142, 138, 134, 140, 134, 133, 134, 134, 130, 135, 140, 139, 139, 135, 138, 136, 133, 145, 134, 133, 131, 132, 125, 135, 139, 132, 137, 132, 140, 130, 141, 130, 141, 139, 142, 135, 133, 127, 136, 135, 140, 131, 143, 131, 124, 133, 136, 139, 130, 136, 137, 139, 136, 141, 140, 136, 133, 140, 134, 131, 129, 135, 140, 138, 140, 140, 133, 130, 135, 138, 133, 136, 139, 139, 131, 140, 140, 139, 123, 133, 140, 139, 132, 131, 132, 136, 140, 150, 139, 134, 133, 136, 138, 137, 137, 129, 139, 133, 133, 134, 131, 140, 136, 145, 136, 138, 135, 127, 137, 136, 140, 136, 136, 137, 131, 136, 135, 138, 132, 134, 141, 131, 136, 137, 136, 136, 138, 133, 126, 135, 140, 135, 134, 138, 136, 134, 142, 129, 139, 132, 135, 138, 138, 131, 132, 136, 131, 133, 141, 136, 135, 138, 134, 134, 134, 134, 137, 136, 137, 141, 139, 137, 149, 134, 136, 138, 138, 134, 136, 132, 130, 132, 140, 135, 131, 130, 141, 134, 139, 137, 138, 133, 140, 136, 144, 136, 133, 138, 144, 135, 136, 142, 138, 133, 130, 142, 145, 139, 138, 136, 140, 139, 139, 137, 139, 138, 146, 129, 135, 130, 140, 136, 141, 144, 146, 129, 140, 139, 138, 130, 133, 141, 137, 136, 135, 134, 145, 141, 133, 133, 135, 139, 132, 142, 135, 138, 137, 144, 139, 135, 135, 135, 127, 137, 128, 132, 123, 135, 132, 133, 139, 143, 139, 137, 138, 139, 131, 132, 131, 137, 134, 133, 136, 135, 143, 137, 137, 128, 140, 133, 134, 139, 142, 137, 132, 140, 136, 134, 137, 136, 140, 134, 139, 136, 140, 137, 135, 140, 135, 133, 143, 147, 152, 137, 144, 128, 138, 139, 131, 133, 134, 135, 138, 142, 136, 119, 139, 139, 139, 128, 132, 139, 147, 135, 136, 131, 136, 138, 136, 140, 148, 133, 134, 133, 130, 142, 134, 137, 134, 144, 142, 135, 129, 136, 137, 137, 143, 137, 140, 139, 134, 135, 132, 144, 145, 138, 140, 142, 125, 136, 143, 137, 138, 134, 135, 138, 133, 138, 139, 146, 131, 133, 128, 131, 127, 135, 144, 136, 139, 142, 133, 139, 134, 135, 138, 139, 134, 131, 141, 136, 148, 135, 142, 143, 131, 136, 141, 139, 141, 145, 137, 136, 134, 137, 140, 131, 136, 139, 134, 141, 136, 132, 136, 137, 134, 137, 133, 135, 135, 139, 139, 138, 136, 136, 145, 131, 137, 139, 131, 134, 138, 136, 141, 139, 137, 144, 139, 138, 135, 136, 133, 145, 137, 145, 126, 143, 124, 135, 140, 146, 126, 141, 143, 137, 125, 132, 132, 142, 134, 148, 138, 133, 128, 141, 134, 132, 133, 140, 128, 141, 132, 148, 123, 124, 133, 137, 135, 146, 137, 134, 136, 136, 130, 135, 130, 150, 140, 149, 138, 137, 137, 127, 140, 134, 123, 129, 137, 130, 136, 142, 131, 132, 136, 133, 139, 131, 142, 144, 125, 133, 123, 142, 135, 145, 105, 137, 141, 125, 127, 129, 135, 137, 126, 132, 139, 144, 135, 130, 149, 134, 121, 132, 130, 134, 147, 136, 139, 136, 160, 123, 130, 136, 135, 133, 121, 131, 148, 122, 127, 148, 144, 140, 143, 140, 147, 138, 127, 121, 128, 132, 134, 129, 136, 148, 124, 133, 128, 144, 152, 132, 130, 141, 131, 144, 142, 131, 143, 140, 142, 124, 141, 134, 138, 135, 128, 129, 134, 133, 133, 130, 139, 133, 143, 125, 124, 133, 130, 130, 143, 136, 126, 131, 133, 150, 125, 139, 136, 132, 134, 141, 141, 124, 133, 133, 142, 133, 138, 149, 127, 139, 152, 142, 155, 134, 117, 130, 133, 139, 138, 134, 133, 136, 139, 129, 142, 140, 142, 136, 133, 139, 129, 131, 135, 129, 130, 140, 145, 138, 139, 133, 113, 135, 125, 140, 143, 141, 149, 138, 139, 138, 131, 134, 136, 147, 124, 138, 139, 137, 139, 137, 128, 140, 142, 120, 129, 127, 129, 139, 136, 141, 153, 133, 135, 147, 132, 142, 143, 139, 139, 142, 141, 149, 134, 131, 137, 131, 132, 141, 131, 135, 154, 139, 131, 134, 125, 138, 143, 131, 128, 127, 135, 139, 133, 128, 144, 127, 126, 131, 127, 131, 134, 127, 135, 135, 130, 130, 137, 142, 126, 122, 148, 131, 141, 146, 135, 135, 127, 128, 145, 128, 137, 135, 143, 125, 139, 138, 141, 127, 123, 152, 144, 133, 132, 130, 131, 134, 134, 138, 131, 137, 125, 133, 129, 139, 133, 127, 138, 132, 148, 132, 119, 135, 141, 138, 141, 132, 131, 131, 135, 129, 123, 136, 131, 138, 140, 131, 128, 164, 130, 126, 137, 130, 131, 135, 129, 133, 131, 138, 141, 150, 144, 130, 124, 132, 134, 139, 119, 148, 134, 140, 142, 136, 125, 145, 120, 142, 127, 146, 151, 114, 145, 132, 137, 146, 139, 127, 136, 141, 144, 156, 139, 134, 141, 146, 133, 136, 138, 138, 129, 132, 124, 137, 134, 132, 136, 130, 144, 134, 130, 124, 143, 122, 136, 128, 137, 137, 141, 140, 141, 145, 141, 137, 133, 136, 138, 151, 129, 131, 141, 131, 148, 131, 123, 131, 123, 129, 133, 142, 141, 139, 132, 129, 146, 131, 137, 133, 138, 133, 138, 137, 145, 146, 139, 138, 135, 132, 139, 128, 146, 145, 134, 146, 138, 130, 141, 144, 142, 133, 133, 141, 136, 133, 138, 136, 135, 137, 131, 136, 130, 142, 138, 141, 146, 137, 137, 140, 132, 130, 144, 136, 143, 129, 133, 128, 129, 143, 119, 151, 135, 137, 130, 132, 139, 127, 132, 141, 138, 141, 150, 126, 134, 139, 136, 147, 139, 131, 140, 123, 139, 133, 131, 134, 118, 132, 161, 134, 141, 146, 121, 135, 141, 134, 137, 130, 156, 134, 134, 156, 139, 121, 133, 126, 142, 109, 141, 158, 131, 127, 130, 131, 143, 138, 131, 124, 123, 117, 139, 130, 139, 140, 147, 161, 146, 171, 127, 124, 138, 123, 111, 149, 152, 133, 136, 125, 146, 132, 148, 131, 139, 106, 140, 126, 122, 141, 126, 125, 127, 148, 138, 142, 130, 135, 143, 140, 132, 147, 123, 114, 143, 126, 121, 129, 145, 126, 134, 155, 132, 143, 104, 148, 142, 130, 136, 116, 118, 128, 132, 149, 120, 127, 114, 132, 139, 126, 127, 156, 145, 122, 129, 135, 140, 141, 139, 105, 127, 157, 141, 131, 132, 142, 112, 124, 120, 162, 105, 150, 121, 136, 109, 122, 125, 131, 152, 155, 155, 132, 159, 125, 147, 127, 131, 154, 125, 170, 136, 129, 157, 113, 127, 142, 106, 132, 142, 124, 132, 144, 125, 139, 153, 111, 140, 142, 155, 142, 123, 142, 136, 122, 142, 136, 135, 131, 147, 127, 139, 157, 137, 120, 132, 141, 131, 126, 120, 134, 135, 125, 132, 136, 123, 135, 150, 129, 142, 150, 137, 153, 140, 163, 133, 141, 142, 125, 153, 137, 119, 123, 117, 132, 132, 200, 142, 123, 142, 145, 133, 138, 138, 143, 155, 147, 143, 148, 139, 136, 129, 112, 130, 131, 140, 108, 131, 132, 142, 126, 141, 155, 142, 143, 125, 133, 139, 130, 135, 142, 146, 144, 127, 136, 134, 154, 132, 141, 165, 113, 131, 122, 153, 132, 149, 137, 139, 127, 119, 150, 135, 108, 139, 140, 136, 127, 142, 117, 131, 136, 127, 141, 123, 123, 97, 132, 142, 143, 131, 129, 137, 153, 122, 135, 127, 156, 115, 139, 189, 156, 118, 135, 142, 137, 128, 144, 168, 140, 129, 125, 121, 135, 147, 152, 146, 138, 137, 135, 132, 140, 137, 122, 118, 125, 156, 126, 146, 145, 126, 128, 127, 142, 136, 99, 157, 139, 155, 149, 135, 110, 129, 120, 129, 139, 136, 151, 123, 126, 142, 141, 145, 139, 139, 145, 146, 138, 131, 149, 151, 128, 140, 140, 137, 136, 128, 134, 142, 121, 120, 140, 130, 135, 131, 139, 125, 129, 146, 134, 140, 153, 150, 150, 135, 129, 144, 139, 145, 177, 126, 140, 132, 127, 142, 124, 139, 135, 149, 134, 140, 131, 126, 134, 139, 150, 143, 159, 126, 153, 105, 128, 138, 143, 143, 141, 146, 138, 116, 151, 130, 146, 136, 131, 123, 134, 130, 130, 142, 145, 134, 138, 145, 135, 154, 150, 123, 132, 156, 131, 129, 130, 127, 151, 162, 137, 157, 142, 129, 129, 103, 142, 139, 103, 123, 123, 135, 136, 136, 127, 126, 137, 133, 137, 137, 143, 141, 125, 139, 128, 116, 134, 123, 128, 141, 132, 127, 123, 115, 135, 148, 133, 125, 125, 142, 141, 148, 149, 116, 156, 144, 129, 133, 145, 130, 131, 131, 130, 134, 118, 126, 136, 151, 116, 123, 137, 122, 143, 138, 146, 140, 134, 155, 132, 136, 145, 136, 130, 138, 142, 130, 126, 123, 138, 135, 146, 129, 133, 126, 131, 140, 138, 124, 135, 141, 160, 139, 129, 139, 139, 145, 143, 132, 131, 132, 144, 123, 130, 147, 119, 118, 152, 135, 121, 140, 128, 148, 134, 126, 147, 143, 130, 120, 130, 150, 124, 134, 124, 132, 134, 113, 134, 136, 141, 143, 127, 146, 131, 119, 139, 122, 139, 142, 140, 151, 147, 136, 127, 133, 148, 139, 136, 138, 150, 144, 121, 145, 140, 139, 141, 157, 135, 138, 137, 135, 126, 127, 146, 118, 143, 136, 121, 155, 154, 125, 147, 121, 128, 141, 126, 108, 131, 145, 136, 144, 133, 136, 151, 134, 135, 125, 124, 123, 108, 144, 135, 142, 128, 135, 140, 139, 142, 132, 124, 135, 123, 125, 135, 130, 167, 139, 144, 140, 134, 114, 147, 139, 139, 149, 130, 159, 118, 143, 135, 126, 121, 129, 131, 145, 140, 121, 134, 139, 124, 144, 132, 132, 146, 118, 136, 137, 127, 142, 137, 128, 131, 132, 118, 118, 127, 131, 139, 163, 139, 143, 126, 121, 127, 132, 124, 154, 119, 129, 142, 137, 124, 130, 150, 122, 157, 139, 135, 129, 128, 124, 144, 123, 132, 160, 127, 128, 140, 142, 144, 137, 147, 140, 155, 137, 132, 141, 119, 130, 151, 123, 145, 149, 142, 135, 129, 144, 146, 134, 139, 131, 132, 138, 134, 158, 141, 126, 131, 137, 140, 133, 123, 132, 145, 146, 132, 142, 137, 124, 126, 144, 134, 130, 134, 133, 150, 120, 131, 144, 136, 136, 125, 134, 129, 134, 134, 124, 148, 116, 129, 118, 129, 136, 153, 135, 125, 144, 132, 159, 145, 153, 126, 145, 130, 154, 154, 124, 132, 125, 152, 140, 149, 132, 130, 133, 130, 132, 145, 143, 142, 133, 128, 142, 132, 157, 147, 132, 136, 123, 146, 139, 120, 153, 135, 142, 146, 132, 136, 142, 143, 126, 128, 127, 143, 129, 132, 133, 131, 152, 138, 142, 123, 154, 148, 130, 134, 121, 154, 150, 144, 138, 134, 140, 125, 140, 169, 129, 131, 150, 127, 127, 131, 131, 132, 165, 137, 134, 160, 149, 140, 137, 146, 150, 151, 130, 119, 142, 124, 162, 143, 142, 126, 143, 119, 135, 134, 136, 121, 122, 139, 148, 117, 149, 139, 158, 122, 142, 144, 131, 150, 145, 140, 135, 115, 153, 152, 132, 126, 149, 134, 137, 134, 124, 113, 123, 130, 128, 133, 115, 134, 137, 140, 146, 120, 139, 132, 141, 130, 126, 146, 142, 134, 135, 128, 129, 136, 132, 146, 149, 113, 135, 135, 136, 150, 124, 129, 151, 137, 148, 145, 127, 143, 134, 137, 133, 146, 132, 124, 137, 147, 135, 130, 134, 151, 124, 130, 144, 134, 144, 140, 146, 133, 143, 140, 137, 132, 124, 122, 129, 136, 137, 130, 119, 126, 129, 119, 110, 132, 136, 140, 138, 151, 125, 114, 138, 132, 112, 131, 125, 132, 126, 117, 128, 144, 124, 126, 144, 128, 132, 119, 145, 143, 134, 130, 132, 135, 130, 127, 142, 124, 140, 133, 139, 139, 140, 144, 144, 132, 134, 148, 140, 133, 126, 127, 135, 150, 128, 142, 148, 144, 140, 136, 126, 140, 151, 133, 138, 123, 131, 133, 136, 140, 141, 153, 126, 127, 120, 161, 134, 144, 120, 134, 126, 126, 145, 132, 143, 153, 123, 137, 147, 129, 133, 137, 152, 150, 133, 134, 134, 140, 127, 154, 122, 136, 154, 139, 137, 147, 129, 143, 132, 125, 141, 135, 136, 123, 145, 130, 142, 142, 140, 129, 132, 143, 143, 134, 138, 128, 140, 126, 125, 130, 143, 141, 165, 124, 129, 133, 135, 139, 145, 134, 136, 137, 126, 134, 140, 129, 109, 130, 140, 146, 124, 124, 156, 125, 134, 135, 127, 133, 126, 132, 137, 123, 128, 133, 149, 119, 124, 127, 118, 133, 126, 143, 136, 142, 143, 140, 143, 135, 127, 134, 146, 140, 149, 118, 142, 148, 130, 130, 134, 129, 132, 134, 136, 124, 141, 120, 138, 138, 118, 134, 127, 130, 133, 144, 131, 149, 143, 127, 131, 155, 135, 132, 136, 136, 139, 131, 121, 123, 148, 148, 125, 140, 132, 128, 140, 135, 135, 139, 129, 138, 118, 137, 161, 133, 127, 131, 142, 145, 139, 140, 157, 135, 148, 134, 140, 136, 158, 135, 141, 124, 140, 130, 109, 147, 109, 128, 152, 131, 133, 131, 136, 135, 116, 147, 136, 128, 126, 143, 146, 151, 132, 136, 131, 128, 138, 125, 160, 126, 123, 132, 141, 120, 139, 141, 137, 165, 139, 130, 136, 128, 131, 123, 149, 139, 145, 133, 132, 139, 131, 143, 114, 123, 142, 111, 140, 143, 137, 132, 138, 121, 133, 137, 151, 124, 140, 138, 121, 145, 130, 143, 130, 123, 129, 125, 131, 138, 144, 136, 128, 139, 133, 124, 160, 132, 142, 143, 141, 133, 132, 133, 135, 137, 130, 125, 115, 126, 148, 127, 138, 142, 142, 125, 145, 157, 132, 143, 130, 135, 142, 130, 123, 144, 134, 150, 143, 134, 146, 153, 123, 136, 140, 147, 138, 132, 134, 139, 134, 137, 146, 126, 134, 164, 130, 126, 151, 137, 141, 141, 128, 142, 147, 135, 134, 136, 138, 133, 132, 117, 135, 128, 137, 124, 134, 136, 131, 127, 146, 125, 136, 149, 141, 141, 132, 129, 127, 130, 124, 135, 146, 136, 144, 128, 150, 129, 139, 129, 118, 132, 132, 127, 136, 152, 145, 134, 126, 119, 137, 136, 126, 118, 124, 141, 136, 135, 146, 138, 130, 128, 136, 135, 122, 128, 139, 133, 126, 125, 135, 131, 146, 130, 126, 148, 131, 149, 142, 138, 128, 134, 124, 129, 125, 126, 148, 113, 126, 150, 133, 136, 145, 130, 116, 130, 145, 133, 142, 142, 139, 127, 120, 133, 142, 133, 140, 133, 141, 127, 142, 126, 137, 132, 140, 145, 131, 131, 133, 139, 132, 140, 147, 125, 132, 139, 117, 141, 134, 120, 138, 143, 130, 137, 135, 136, 139, 136, 135, 139, 136, 144, 127, 130, 139, 142, 129, 139, 128, 137, 132, 138, 140, 161, 141, 122, 126, 149, 141, 137, 131, 132, 134, 127, 151, 126, 146, 133, 132, 145, 140, 126, 138, 121, 134, 128, 132, 144, 126, 123, 134, 146, 117, 131, 140, 133, 136, 147, 133, 121, 125, 132, 183, 130, 141, 140, 139, 135, 160, 139, 147, 113, 124, 143, 129, 131, 140, 146, 135, 127, 138, 139, 132, 126, 135, 143, 141, 132, 109, 130, 127, 122, 135, 130, 125, 123, 148, 133, 137, 128, 131, 140, 136, 127, 143, 151, 146, 150, 157, 155, 120, 143, 146, 133, 131, 140, 133, 132, 132, 122, 135, 122, 144, 141, 153, 170, 128, 128, 128, 127, 131, 128, 135, 118, 154, 129, 139, 137, 139, 145, 128, 134, 128, 132, 134, 141, 136, 124, 148, 140, 129, 127, 127, 155, 131, 132, 131, 144, 138, 125, 134, 136, 130, 136, 131, 131, 128, 132, 147, 138, 126, 141, 124, 134, 128, 134, 142, 129, 139, 143, 141, 145, 142, 142, 154, 125, 143, 131, 134, 143, 147, 123, 147, 133, 130, 136, 132, 127, 135, 167, 131, 151, 120, 131, 141, 136, 127, 143, 126, 133, 145, 121, 134, 127, 128, 125, 143, 121, 137, 134, 126, 128, 128, 129, 120, 130, 128, 139, 134, 125, 123, 140, 136, 129, 146, 125, 131, 121, 123, 130, 138, 137, 131, 144, 124, 153, 142, 134, 126, 144, 118, 130, 131, 133, 136, 137, 145, 141, 129, 136, 132, 147, 140, 141, 124, 131, 130, 140, 131, 146, 137, 135, 145, 135, 133, 137, 138, 130, 133, 139, 144, 120, 131, 134, 141, 138, 133, 133, 137, 142, 144, 135, 135, 129, 132, 130, 130, 147, 143, 134, 139, 139, 132, 145, 128, 138, 133, 139, 132, 138, 141, 134, 120, 134, 150, 140, 151, 121, 147, 126, 126, 150, 135, 144, 145, 131, 147, 135, 143, 132, 141, 144, 160, 147, 136, 108, 137, 129, 156, 141, 137, 139, 146, 135, 119, 143, 134, 124, 135, 125, 138, 127, 152, 139, 134, 141, 145, 122, 129, 115, 138, 134, 146, 127, 131, 129, 141, 135, 139, 153, 130, 137, 128, 130, 151, 146, 141, 129, 132, 124, 137, 125, 150, 129, 146, 128, 141, 134, 137, 124, 126, 142, 149, 121, 133, 140, 138, 146, 143, 139, 142, 125, 132, 121, 136, 138, 131, 130, 141, 131, 138, 135, 141, 133, 141, 133, 117, 147, 115, 139, 134, 130, 137, 140, 134, 158, 131, 131, 132, 142, 154, 134, 129, 134, 136, 133, 143, 137, 131, 108, 137, 129, 132, 121, 127, 125, 130, 132, 148, 153, 149, 139, 133, 130, 129, 136, 158, 130, 144, 131, 138, 146, 158, 148, 127, 132, 141, 148, 132, 145, 139, 122, 154, 137, 133, 139, 127, 132, 139, 146, 139, 137, 148, 135, 130, 145, 132, 140, 132, 135, 140, 150, 122, 134, 138, 120, 128, 145, 138, 142, 136, 126, 124, 121, 140, 130, 134, 126, 127, 153, 134, 127, 137, 131, 132, 148, 139, 125, 128, 140, 138, 136, 139, 150, 125, 141, 119, 130, 133, 139, 143, 132, 143, 134, 148, 138, 129, 135, 128, 135, 131, 130, 133, 152, 145, 134, 137, 142, 137, 138, 137, 131, 147, 132, 133, 136, 132, 142, 138, 133, 144, 146, 132, 140, 134, 132, 137, 125, 138, 133, 134, 138, 141, 128, 162, 134, 132, 135, 143, 151, 132, 123, 143, 142, 141, 146, 138, 123, 130, 140, 127, 137, 153, 131, 131, 137, 140, 140, 134, 155, 145, 132, 132, 141, 135, 135, 128, 133, 136, 140, 141, 132, 131, 139, 141, 135, 133, 139, 135, 128, 136, 137, 134, 134, 140, 134, 133, 130, 131, 135, 140, 154, 135, 129, 134, 134, 144, 137, 133, 130, 141, 140, 118, 140, 111, 141, 141, 132, 135, 138, 140, 143, 132, 138, 126, 147, 146, 141, 127, 142, 131, 132, 121, 138, 138, 135, 136, 144, 148, 138, 148, 138, 141, 126, 137, 129, 126, 135, 130, 132, 133, 133, 140, 126, 135, 133, 122, 138, 142, 137, 123, 127, 163, 145, 132, 146, 138, 129, 108, 128, 142, 126, 141, 133, 141, 135, 135, 138, 139, 130, 138, 153, 139, 132, 141, 125, 140, 136, 139, 140, 133, 133, 136, 144, 133, 141, 131, 139, 137, 139, 144, 132, 124, 141, 142, 129, 130, 135, 140, 139, 147, 130, 128, 127, 133, 141, 141, 137, 147, 138, 133, 134, 134, 133, 130, 137, 149, 135, 136, 135, 135, 135, 132, 139, 141, 123, 133, 128, 143, 121, 132, 142, 130, 138, 138, 139, 135, 130, 137, 129, 138, 137, 136, 136, 141, 128, 132, 133, 136, 144, 149, 135, 125, 132, 140, 124, 141, 153, 135, 137, 145, 139, 133, 124, 138, 125, 139, 133, 125, 143, 137, 133, 136, 132, 130, 143, 136, 136, 117, 136, 133, 129, 138, 134, 140, 127, 134, 133, 136, 139, 132, 128, 134, 132, 143, 156, 130, 143, 144, 130, 141, 135, 134, 138, 132, 149, 139, 144, 135, 143, 140, 138, 147, 133, 136, 146, 136, 140, 125, 139, 127, 156, 145, 135, 134, 134, 140, 134, 124, 133, 134, 141, 140, 134, 137, 134, 137, 111, 120, 138, 139, 144, 150, 134, 133, 151, 148, 158, 137, 143, 129, 142, 113, 123, 136, 131, 146, 133, 133, 133, 130, 141, 128, 136, 130, 123, 143, 132, 139, 139, 133, 137, 135, 128, 134, 137, 134, 136, 133, 129, 136, 131, 136, 144, 131, 134, 138, 134, 141, 131, 138, 134, 133, 137, 135, 130, 136, 136, 137, 140, 149, 132, 138, 128, 138, 141, 135, 139, 163, 136, 134, 141, 141, 135, 133, 144, 125, 136, 133, 131, 151, 147, 137, 120, 145, 147, 139, 140, 163, 127, 139, 135, 131, 126, 134, 133, 135, 130, 134, 124, 137, 128, 119, 140, 142, 131, 146, 157, 140, 134, 130, 132, 125, 138, 132, 135, 140, 132, 149, 136, 141, 133, 129, 144, 129, 142, 137, 123, 87, 142, 127, 138, 136, 137, 132, 138, 134, 128, 130, 147, 137, 140, 146, 122, 132, 135, 139, 131, 123, 133, 136, 130, 136, 136, 132, 136, 131, 152, 139, 135, 136, 133, 130, 126, 148, 131, 147, 137, 157, 144, 135, 117, 133, 135, 130, 139, 132, 132, 125, 133, 134, 143, 139, 130, 131, 133, 138, 138, 132, 131, 145, 133, 128, 126, 127, 129, 125, 130, 137, 132, 144, 137, 132, 141, 134, 135, 150, 142, 149, 138, 136, 140, 137, 137, 125, 135, 142, 141, 133, 132, 147, 137, 128, 137, 137, 136, 132, 135, 144, 135, 159, 134, 146, 133, 133, 132, 140, 137, 134, 148, 146, 145, 127, 133, 138, 136, 138, 129, 130, 131, 129, 131, 139, 134, 133, 145, 125, 134, 143, 129, 143, 139, 138, 135, 138, 132, 138, 130, 144, 132, 133, 136, 141, 143, 139, 133, 137, 133, 144, 149, 142, 130, 134, 143, 145, 140, 136, 142, 140, 129, 137, 131, 130, 138, 96, 142, 138, 136, 140, 139, 130, 127, 131, 146, 115, 130, 134, 129, 137, 137, 138, 136, 140, 137, 140, 147, 136, 123, 136, 138, 131, 140, 142, 133, 146, 151, 134, 137, 144, 148, 148, 139, 136, 139, 140, 128, 130, 130, 136, 138, 127, 128, 139, 143, 137, 145, 132, 140, 137, 137, 143, 131, 130, 130, 130, 131, 129, 137, 143, 148, 137, 132, 137, 133, 171, 130, 139, 128, 136, 136, 131, 133, 140, 134, 127, 140, 140, 138, 131, 133, 130, 133, 131, 136, 140, 131, 157, 112, 131, 134, 130, 140, 156, 137, 134, 137, 156, 134, 139, 131, 131, 132, 133, 133, 131, 141, 147, 133, 142, 140, 135, 137, 135, 132, 134, 146, 147, 134, 137, 142, 140, 134, 145, 146, 139, 136, 155, 150, 138, 135, 138, 135, 140, 133, 141, 139, 136, 132, 140, 132, 128, 132, 130, 132, 134, 139, 129, 142, 134, 132, 142, 137, 111, 134, 140, 136, 131, 133, 135, 133, 148, 133, 142, 132, 132, 144, 140, 126, 104, 137, 130, 132, 175, 135, 149, 132, 131, 147, 141, 145, 141, 145, 132, 133, 134, 138, 142, 130, 155, 137, 132, 145, 144, 134, 133, 136, 135, 137, 130, 142, 139, 141, 135, 132, 139, 138, 130, 139, 137, 126, 110, 135, 136, 134, 131, 139, 130, 111, 135, 129, 138, 150, 135, 137, 127, 136, 140, 134, 137, 129, 138, 140, 147, 133, 130, 137, 135, 139, 138, 148, 135, 139, 129, 124, 140, 136, 132, 130, 139, 143, 136, 135, 164, 126, 127, 136, 142, 142, 144, 132, 136, 143, 132, 138, 136, 136, 127, 136, 144, 107, 141, 140, 138, 140, 135, 146, 140, 142, 143, 139, 162, 133, 132, 131, 127, 134, 136, 134, 132, 117, 137, 143, 134, 135, 134, 133, 134, 127, 133, 129, 135, 128, 140, 163, 155, 140, 131, 145, 133, 135, 136, 126, 147, 139, 137, 143, 134, 137, 137, 133, 118, 159, 145, 135, 134, 140, 147, 131, 138, 133, 146, 138, 135, 139, 136, 135, 140, 135, 140, 137, 110, 133, 140, 134, 134, 134, 130, 151, 131, 132, 144, 122, 133, 126, 136, 125, 134, 136, 132, 130, 135, 134, 140, 130, 128, 132, 132, 143, 128, 122, 134, 134, 130, 134, 136, 132, 139, 136, 143, 136, 143, 138, 130, 130, 137, 135, 135, 132, 138, 140, 127, 122, 124, 123, 122, 146, 135, 111, 134, 135, 114, 144, 143, 126, 147, 135, 138, 127, 135, 148, 157, 151, 135, 129, 127, 129, 128, 139, 140, 155, 126, 152, 118, 146, 130, 121, 122, 133, 144, 141, 136, 133, 125, 128, 142, 128, 139, 138, 149, 128, 152, 121, 126, 152, 123, 118, 156, 129, 136, 151, 130, 136, 136, 123, 140, 127, 121, 122, 143, 141, 123, 132, 123, 136, 126, 115, 144, 141, 130, 135, 131, 142, 133, 142, 131, 140, 141, 99, 147, 145, 131, 124, 135, 113, 144, 131, 140, 135, 120, 129, 117, 130, 144, 142, 131, 134, 132, 119, 143, 127, 139, 140, 111, 132, 142, 132, 125, 122, 110, 129, 140, 152, 167, 122, 140, 134, 135, 126, 142, 125, 119, 132, 120, 134, 123, 133, 128, 138, 148, 146, 79, 143, 133, 135, 138, 134, 146, 143, 141, 131, 138, 163, 137, 127, 137, 118, 130, 131, 138, 128, 137, 137, 158, 154, 126, 136, 117, 136, 126, 133, 135, 144, 133, 148, 138, 132, 145, 128, 144, 121, 148, 132, 123, 132, 120, 121, 143, 120, 144, 136, 132, 113, 139, 127, 127, 133, 139, 147, 132, 145, 149, 144, 122, 127, 134, 144, 128, 132, 130, 133, 127, 130, 131, 131, 142, 132, 112, 124, 129, 133, 134, 129, 126, 144, 122, 142, 138, 138, 138, 140, 151, 142, 149, 141, 129, 122, 133, 118, 154, 144, 133, 129, 136, 145, 138, 129, 127, 180, 138, 113, 138, 133, 144, 137, 153, 136, 139, 139, 143, 142, 144, 127, 139, 101, 119, 113, 133, 133, 138, 126, 142, 139, 145, 141, 136, 129, 115, 136, 139, 136, 132, 139, 127, 124, 150, 131, 115, 122, 136, 139, 149, 120, 148, 124, 142, 135, 134, 142, 150, 130, 147, 128, 130, 135, 133, 135, 162, 155, 114, 135, 140, 148, 145, 161, 153, 135, 129, 139, 116, 148, 143, 125, 125, 141, 126, 132, 131, 132, 148, 147, 159, 132, 135, 139, 138, 143, 127, 127, 135, 135, 142, 138, 135, 122, 137, 125, 142, 124, 137, 124, 134, 116, 140, 133, 125, 136, 137, 148, 131, 124, 123, 121, 138, 138, 149, 151, 89, 110, 138, 128, 141, 146, 129, 136, 135, 142, 144, 137, 119, 129, 154, 126, 132, 146, 152, 117, 147, 132, 132, 140, 147, 132, 134, 121, 127, 120, 125, 120, 133, 143, 147, 135, 131, 110, 128, 139, 130, 142, 131, 141, 129, 140, 126, 124, 126, 129, 128, 134, 124, 126, 127, 145, 132, 133, 137, 131, 127, 130, 134, 138, 141, 135, 132, 125, 141, 140, 126, 168, 138, 123, 143, 140, 123, 153, 111, 126, 136, 124, 160, 141, 138, 152, 126, 126, 137, 126, 133, 144, 128, 119, 135, 127, 125, 142, 141, 137, 144, 152, 143, 118, 152, 125, 131, 146, 145, 116, 127, 124, 140, 153, 132, 132, 114, 120, 149, 131, 142, 139, 131, 115, 132, 142, 116, 141, 130, 137, 139, 128, 133, 154, 131, 131, 142, 137, 134, 123, 142, 136, 147, 134, 147, 137, 133, 137, 137, 134, 146, 145, 161, 134, 137, 130, 141, 130, 145, 132, 152, 133, 143, 147, 139, 143, 144, 125, 155, 129, 146, 150, 125, 133, 136, 135, 147, 135, 139, 131, 125, 126, 143, 140, 133, 141, 116, 128, 129, 145, 136, 141, 124, 120, 133, 133, 141, 135, 110, 118, 139, 138, 136, 139, 133, 136, 126, 134, 117, 134, 141, 130, 147, 139, 132, 126, 159, 140, 139, 138, 113, 139, 136, 140, 142, 127, 141, 132, 131, 137, 133, 157, 134, 134, 124, 139, 127, 138, 139, 137, 135, 141, 133, 134, 126, 133, 137, 129, 143, 126, 132, 144, 134, 139, 148, 132, 129, 134, 139, 146, 136, 140, 162, 140, 143, 119, 143, 131, 131, 133, 137, 142, 131, 154, 133, 134, 132, 142, 134, 135, 133, 130, 138, 141, 133, 143, 133, 127, 137, 129, 142, 136, 123, 131, 137, 140, 130, 127, 133, 130, 127, 121, 136, 135, 138, 147, 134, 133, 140, 135, 143, 141, 142, 129, 135, 126, 141, 141, 133, 139, 123, 149, 120, 130, 151, 129, 129, 130, 140, 128, 137, 120, 146, 132, 136, 134, 131, 138, 131, 140, 137, 119, 122, 141, 140, 139, 146, 139, 128, 132, 137, 146, 132, 136, 143, 147, 137, 133, 144, 125, 136, 123, 125, 138, 158, 133, 116, 125, 134, 135, 139, 139, 129, 131, 139, 151, 129, 136, 140, 133, 126, 137, 140, 142, 136, 147, 134, 135, 134, 148, 126, 125, 142, 135, 129, 145, 137, 145, 136, 134, 136, 159, 136, 124, 134, 136, 133, 133, 148, 131, 124, 136, 118, 129, 134, 145, 133, 136, 130, 129, 106, 124, 138, 132, 140, 138, 130, 127, 134, 141, 136, 127, 133, 137, 143, 121, 128, 137, 125, 135, 153, 122, 136, 135, 145, 143, 140, 128, 143, 148, 145, 153, 137, 138, 131, 131, 132, 138, 137, 139, 146, 115, 139, 115, 137, 144, 129, 131, 135, 118, 127, 127, 134, 129, 136, 146, 139, 144, 135, 121, 124, 137, 133, 132, 138, 139, 145, 132, 134, 141, 124, 133, 143, 137, 134, 141, 132, 146, 133, 136, 133, 133, 132, 146, 134, 130, 133, 113, 144, 140, 130, 136, 132, 131, 149, 136, 135, 144, 130, 141, 140, 134, 134, 131, 138, 141, 133, 133, 123, 150, 143, 134, 135, 131, 140, 132, 134, 157, 139, 134, 146, 132, 140, 143, 135, 135, 138, 138, 138, 130, 139, 147, 141, 120, 131, 131, 142, 134, 121, 136, 123, 149, 132, 146, 125, 135, 135, 160, 155, 125, 138, 118, 126, 127, 138, 152, 134, 138, 140, 135, 133, 147, 128, 128, 155, 135, 139, 162, 119, 134, 137, 126, 135, 135, 137, 141, 128, 147, 136, 137, 139, 134, 124, 126, 134, 125, 141, 141, 149, 139, 139, 137, 130, 136, 148, 140, 126, 131, 148, 132, 141, 132, 134, 120, 133, 133, 151, 135, 144, 138, 132, 121, 122, 151, 146, 135, 130, 125, 142, 142, 128, 140, 151, 124, 129, 133, 129, 136, 133, 141, 124, 147, 144, 127, 141, 143, 138, 140, 119, 136, 132, 130, 138, 130, 130, 148, 136, 129, 138, 138, 133, 137, 132, 141, 127, 129, 131, 114, 123, 127, 132, 153, 141, 137, 143, 133, 142, 144, 123, 146, 122, 139, 142, 133, 135, 137, 136, 171, 138, 134, 123, 144, 144, 170, 133, 134, 126, 125, 126, 113, 145, 126, 141, 133, 134, 130, 134, 133, 136, 123, 130, 145, 146, 132, 133, 126, 138, 127, 137, 143, 137, 119, 129, 136, 125, 145, 121, 140, 130, 137, 119, 138, 134, 140, 144, 138, 119, 136, 127, 143, 140, 137, 155, 134, 115, 118, 141, 147, 136, 127, 149, 143, 139, 136, 148, 126, 126, 130, 112, 142, 138, 139, 137, 124, 140, 134, 126, 140, 121, 139, 141, 143, 126, 139, 137, 148, 145, 138, 128, 137, 127, 133, 125, 155, 137, 122, 144, 130, 136, 126, 151, 130, 135, 126, 132, 134, 126, 136, 128, 136, 136, 133, 134, 128, 142, 133, 147, 120, 127, 138, 135, 144, 136, 134, 129, 145, 140, 129, 137, 128, 137, 130, 135, 136, 141, 128, 131, 121, 139, 136, 130, 133, 151, 131, 133, 132, 125, 140, 134, 133, 137, 127, 132, 125, 134, 146, 140, 127, 145, 133, 137, 145, 126, 137, 131, 137, 131, 137, 134, 141, 130, 140, 123, 132, 141, 132, 139, 146, 137, 139, 138, 132, 127, 135, 132, 137, 150, 123, 122, 125, 131, 133, 123, 135, 127, 149, 151, 131, 128, 125, 142, 129, 148, 139, 138, 152, 138, 123, 132, 130, 140, 130, 116, 129, 138, 121, 132, 132, 133, 137, 134, 120, 126, 128, 131, 138, 130, 133, 156, 124, 133, 168, 131, 142, 150, 127, 124, 128, 141, 142, 147, 144, 143, 136, 125, 154, 142, 140, 147, 123, 144, 128, 135, 137, 129, 134, 129, 142, 146, 144, 139, 132, 146, 129, 136, 148, 145, 134, 128, 137, 129, 144, 138, 136, 139, 135, 139, 127, 130, 136, 133, 124, 138, 142, 138, 129, 140, 148, 139, 140, 132, 139, 122, 139, 130, 137, 143, 141, 122, 121, 142, 146, 127, 132, 128, 126, 143, 128, 142, 125, 136, 140, 133, 140, 131, 128, 136, 130, 133, 154, 137, 143, 137, 141, 122, 155, 141, 139, 131, 143, 133, 134, 139, 129, 131, 131, 111, 113, 131, 140, 151, 145, 132, 119, 140, 149, 133, 140, 139, 138, 139, 137, 147, 128, 127, 150, 119, 138, 130, 135, 129, 127, 126, 141, 130, 145, 129, 138, 137, 136, 125, 125, 151, 142, 143, 118, 138, 147, 134, 140, 140, 144, 147, 137, 143, 133, 146, 126, 143, 144, 146, 124, 135, 146, 128, 135, 146, 145, 127, 113, 143, 149, 138, 142, 148, 142, 139, 141, 144, 130, 141, 134, 144, 136, 154, 139, 146, 130, 138, 145, 129, 142, 127, 141, 134, 135, 126, 132, 139, 138, 130, 131, 152, 153, 122, 126, 140, 122, 130, 127, 130, 130, 140, 138, 157, 135, 122, 148, 139, 129, 127, 138, 124, 138, 122, 141, 135, 123, 128, 121, 135, 137, 148, 139, 129, 129, 125, 122, 131, 148, 107, 128, 135, 136, 135, 132, 153, 135, 148, 141, 135, 132, 142, 132, 132, 137, 110, 117, 142, 118, 143, 170, 132, 136, 149, 135, 130, 130, 142, 145, 145, 140, 141, 137, 133, 126, 129, 117, 150, 133, 133, 132, 130, 132, 153, 125, 143, 117, 122, 133, 153, 130, 129, 140, 132, 135, 139, 138, 130, 119, 129, 135, 107, 140, 142, 125, 129, 140, 139, 148, 132, 125, 129, 146, 121, 129, 130, 136, 144, 131, 128, 153, 132, 123, 115, 131, 136, 125, 132, 136, 145, 133, 135, 132, 134, 134, 144, 136, 144, 135, 131, 137, 133, 146, 142, 138, 115, 131, 133, 129, 148, 135, 126, 142, 135, 132, 112, 139, 137, 128, 132, 128, 128, 131, 150, 142, 161, 124, 128, 130, 133, 140, 133, 126, 133, 150, 148, 127, 142, 147, 138, 137, 130, 144, 117, 125, 131, 138, 144, 142, 149, 136, 146, 128, 123, 136, 136, 133, 145, 127, 128, 144, 131, 123, 140, 139, 145, 151, 136, 166, 125, 153, 137, 129, 122, 130, 133, 138, 130, 128, 157, 136, 133, 136, 115, 143, 143, 139, 128, 136, 127, 129, 139, 144, 152, 125, 126, 126, 141, 142, 134, 139, 129, 134, 120, 144, 134, 133, 124, 149, 136, 133, 135, 146, 131, 148, 129, 134, 135, 152, 119, 123, 124, 126, 130, 116, 137, 143, 153, 137, 151, 127, 129, 150, 134, 120, 128, 144, 117, 135, 137, 131, 137, 124, 154, 149, 146, 146, 145, 140, 146, 157, 136, 132, 135, 138, 132, 127, 124, 134, 127, 148, 138, 137, 128, 124, 132, 126, 136, 142, 120, 126, 143, 134, 135, 130, 131, 118, 131, 146, 139, 121, 135, 124, 141, 133, 123, 140, 130, 126, 138, 126, 144, 142, 130, 138, 139, 137, 136, 142, 135, 132, 122, 147, 115, 128, 140, 127, 140, 149, 134, 124, 129, 135, 141, 143, 145, 121, 133, 138, 135, 143, 130, 126, 130, 123, 129, 129, 137, 131, 149, 139, 140, 133, 143, 146, 125, 131, 124, 145, 124, 136, 147, 136, 146, 144, 132, 138, 141, 144, 134, 138, 127, 135, 127, 119, 145, 132, 130, 136, 138, 132, 127, 143, 139, 146, 127, 150, 149, 113, 132, 136, 121, 157, 132, 133, 138, 135, 127, 123, 131, 135, 128, 132, 155, 127, 143, 135, 136, 129, 139, 153, 138, 142, 115, 132, 126, 132, 128, 135, 129, 144, 128, 127, 125, 132, 140, 135, 135, 139, 136, 137, 137, 123, 141, 135, 135, 140, 134, 148, 130, 137, 131, 149, 135, 130, 149, 153, 149, 136, 124, 130, 165, 126, 123, 134, 131, 143, 160, 144, 144, 136, 138, 124, 136, 134, 141, 130, 140, 130, 132, 144, 144, 134, 137, 126, 185, 135, 127, 136, 147, 118, 132, 135, 140, 132, 127, 135, 139, 146, 135, 144, 138, 127, 139, 146, 130, 119, 131, 128, 129, 138, 139, 143, 142, 137, 144, 146, 135, 141, 143, 150, 145, 125, 119, 149, 123, 142, 135, 132, 138, 144, 129, 137, 123, 117, 145, 129, 125, 121, 132, 120, 129, 134, 142, 145, 141, 151, 137, 142, 128, 130, 130, 150, 131, 129, 126, 127, 122, 128, 131, 148, 129, 132, 157, 145, 136, 138, 162, 139, 145, 139, 130, 129, 152, 141, 122, 133, 121, 133, 132, 165, 138, 135, 144, 149, 130, 147, 137, 129, 172, 130, 126, 122, 140, 136, 138, 138, 129, 135, 144, 142, 142, 151, 132, 148, 123, 137, 141, 146, 134, 137, 127, 124, 135, 144, 125, 133, 143, 122, 143, 139, 130, 156, 135, 141, 143, 131, 139, 141, 116, 133, 123, 125, 140, 126, 156, 136, 120, 127, 128, 131, 128, 157, 147, 136, 120, 141, 136, 125, 123, 141, 133, 142, 146, 132, 139, 141, 139, 143, 124, 140, 135, 109, 154, 131, 136, 139, 139, 137, 120, 139, 145, 144, 114, 132, 129, 152, 129, 130, 147, 132, 131, 123, 143, 144, 135, 119, 144, 131, 157, 134, 141, 138, 147, 136, 125, 136, 134, 127, 146, 123, 124, 126, 113, 136, 123, 153, 128, 123, 161, 132, 139, 135, 128, 138, 139, 137, 145, 145, 155, 131, 150, 132, 128, 134, 140, 122, 133, 162, 133, 121, 147, 129, 163, 142, 167, 146, 133, 143, 130, 151, 138, 151, 121, 120, 136, 144, 133, 143, 122, 140, 134, 127, 135, 143, 143, 131, 133, 139, 141, 145, 126, 136, 132, 141, 140, 123, 125, 126, 144, 133, 130, 124, 129, 137, 143, 154, 133, 134, 138, 129, 117, 139, 135, 122, 151, 150, 125, 134, 141, 139, 147, 138, 132, 132, 123, 134, 129, 134, 141, 133, 136, 128, 137, 135, 134, 135, 127, 135, 157, 140, 128, 131, 129, 141, 147, 145, 145, 134, 123, 138, 129, 151, 137, 116, 123, 132, 135, 125, 133, 139, 132, 156, 132, 126, 137, 155, 137, 130, 133, 127, 120, 137, 131, 139, 143, 124, 139, 131, 129, 154, 127, 135, 134, 126, 140, 121, 128, 137, 128, 129, 146, 128, 125, 129, 130, 150, 122, 140, 130, 131, 145, 138, 148, 141, 138, 144, 130, 151, 134, 130, 142, 120, 128, 118, 135, 129, 149, 136, 133, 140, 138, 126, 147, 133, 143, 120, 142, 119, 134, 132, 129, 126, 141, 135, 138, 130, 152, 166, 141, 142, 145, 153, 129, 129, 140, 137, 156, 140, 140, 133, 136, 132, 141, 133, 116, 132, 138, 146, 137, 125, 130, 148, 164, 127, 129, 130, 160, 139, 119, 130, 129, 133, 137, 114, 147, 144, 139, 124, 141, 137, 132, 136, 149, 150, 139, 126, 131, 140, 141, 147, 156, 134, 114, 141, 145, 131, 138, 142, 139, 122, 146, 133, 136, 134, 133, 133, 132, 139, 143, 132, 126, 130, 154, 136, 119, 128, 138, 144, 149, 148, 149, 138, 134, 133, 132, 140, 144, 131, 150, 131, 144, 127, 145, 132, 150, 144, 119, 141, 147, 113, 154, 134, 121, 130, 140, 127, 131, 123, 145, 124, 122, 133, 137, 139, 132, 129, 126, 145, 151, 141, 115, 136, 125, 135, 129, 139, 149, 154, 127, 125, 120, 141, 129, 145, 148, 143, 148, 135, 139, 130, 135, 124, 140, 140, 149, 130, 142, 135, 124, 132, 110, 127, 128, 142, 132, 139, 136, 130, 135, 126, 131, 146, 142, 148, 147, 132, 142, 135, 134, 142, 131, 126, 143, 143, 127, 144, 144, 136, 138, 138, 133, 120, 139, 135, 140, 130, 135, 132, 139, 134, 134, 131, 145, 139, 124, 156, 129, 124, 155, 130, 124, 130, 130, 116, 173, 129, 141, 130, 129, 136, 139, 139, 128, 149, 138, 142, 152, 136, 146, 126, 162, 127, 136, 121, 130, 138, 153, 130, 121, 128, 145, 149, 137, 141, 143, 137, 134, 140, 127, 128, 123, 136, 134, 153, 139, 132, 123, 136, 114, 136, 114, 131, 137, 140, 132, 139, 151, 134, 120, 146, 115, 131, 120, 142, 141, 132, 147, 135, 134, 135, 127, 141, 136, 135, 123, 149, 131, 132, 139, 135, 133, 138, 129, 126, 133, 157, 136, 133, 136, 125, 138, 133, 140, 139, 135, 137, 130, 139, 145, 126, 146, 139, 143, 148, 129, 131, 121, 134, 119, 134, 137, 127, 146, 121, 146, 131, 120, 129, 134, 135, 146, 153, 134, 139, 126, 143, 122, 148, 127, 138, 146, 135, 132, 128, 137, 133, 145, 129, 148, 129, 135, 131, 120, 144, 140, 126, 139, 144, 131, 132, 137, 135, 157, 139, 147, 126, 135, 135, 130, 141, 121, 109, 140, 114, 132, 133, 140, 126, 132, 137, 140, 151, 124, 133, 133, 132, 132, 124, 127, 139, 130, 139, 137, 140, 149, 134, 140, 146, 120, 142, 134, 130, 130, 126, 144, 131, 141, 133, 146, 133, 134, 146, 138, 143, 130, 140, 132, 132, 152, 133, 138, 148, 130, 133, 142, 125, 133, 127, 127, 141, 137, 134, 131, 130, 132, 131, 142, 130, 121, 134, 108, 116, 154, 130, 138, 143, 144, 143, 134, 144, 132, 133, 148, 131, 139, 123, 148, 132, 133, 136, 133, 129, 151, 141, 128, 141, 139, 127, 139, 137, 139, 141, 137, 147, 145, 143, 143, 133, 138, 131, 176, 122, 122, 143, 143, 131, 136, 132, 132, 128, 124, 152, 138, 151, 134, 130, 155, 145, 136, 134, 141, 135, 121, 121, 124, 135, 132, 129, 133, 141, 139, 139, 133, 149, 135, 139, 136, 150, 147, 126, 154, 134, 131, 140, 105, 125, 135, 130, 148, 126, 150, 128, 135, 128, 124, 161, 135, 149, 140, 133, 154, 125, 134, 130, 145, 138, 150, 134, 143, 148, 136, 145, 122, 126, 147, 127, 132, 132, 132, 148, 131, 123, 126, 141, 129, 142, 134, 128, 130, 133, 126, 137, 131, 137, 143, 141, 149, 118, 134, 137, 118, 124, 152, 133, 138, 140, 143, 123, 131, 148, 125, 147, 134, 130, 142, 117, 130, 136, 133, 131, 130, 133, 134, 128, 126, 134, 150, 135, 176, 140, 126, 153, 130, 119, 158, 122, 144, 140, 118, 141, 141, 148, 122, 124, 138, 138, 144, 119, 131, 115, 147, 127, 130, 153, 135, 128, 138, 127, 117, 138, 128, 138, 131, 139, 163, 128, 129, 124, 145, 139, 147, 134, 151, 130, 129, 126, 149, 136, 140, 137, 130, 132, 130, 138, 140, 130, 131, 122, 135, 131, 146, 137, 126, 151, 131, 138, 121, 147, 128, 144, 147, 121, 131, 131, 136, 116, 140, 159, 121, 133, 136, 136, 124, 125, 132, 135, 129, 135, 121, 134, 117, 128, 127, 113, 126, 141, 129, 132, 145, 124, 162, 121, 133, 130, 140, 141, 123, 120, 129, 133, 122, 115, 121, 141, 151, 117, 131, 115, 157, 136, 124, 142, 123, 135, 152, 141, 139, 125, 118, 135, 157, 149, 148, 135, 124, 133, 126, 129, 135, 145, 144, 132, 159, 133, 144, 133, 133, 128, 123, 131, 140, 133, 130, 140, 130, 124, 130, 129, 143, 142, 142, 127, 116, 121, 134, 123, 126, 119, 147, 126, 132, 138, 127, 121, 125, 110, 150, 135, 139, 150, 109, 150, 125, 162, 134, 136, 136, 134, 126, 124, 139, 141, 124, 125, 135, 131, 136, 139, 126, 143, 133, 125, 131, 124, 145, 120, 159, 144, 127, 153, 144, 133, 128, 139, 140, 144, 135, 127, 132, 148, 125, 129, 134, 126, 136, 125, 139, 152, 117, 147, 130, 146, 117, 159, 122, 150, 109, 139, 156, 136, 151, 150, 134, 135, 147, 126, 127, 147, 125, 129, 135, 122, 154, 158, 148, 129, 128, 121, 136, 114, 135, 126, 138, 140, 114, 140, 132, 128, 138, 141, 135, 119, 124, 138, 138, 129, 147, 150, 160, 137, 141, 137, 129, 125, 121, 131, 119, 132, 148, 129, 141, 140, 130, 130, 141, 123, 124, 144, 146, 120, 132, 121, 145, 132, 132, 134, 148, 163, 145, 157, 126, 113, 131, 126, 123, 145, 130, 141, 107, 129, 126, 160, 129, 152, 156, 139, 125, 119, 125, 122, 128, 124, 130, 127, 146, 142, 131, 149, 131, 129, 148, 136, 149, 142, 134, 141, 160, 128, 132, 135, 145, 136, 142, 133, 149, 125, 135, 141, 138, 131, 136, 163, 141, 137, 113, 145, 133, 133, 143, 126, 130, 139, 136, 133, 125, 126, 131, 156, 133, 118, 129, 109, 131, 126, 149, 140, 126, 112, 131, 132, 125, 129, 138, 129, 131, 136, 137, 137, 143, 135, 125, 146, 132, 143, 126, 139, 149, 150, 127, 132, 158, 138, 137, 149, 145, 139, 117, 144, 144, 129, 143, 122, 132, 134, 142, 135, 113, 132, 119, 133, 107, 133, 130, 126, 136, 147, 114, 136, 127, 139, 130, 132, 123, 139, 132, 157, 143, 127, 118, 134, 110, 133, 141, 130, 125, 133, 133, 137, 120, 122, 139, 123, 132, 142, 118, 124, 127, 127, 125, 137, 136, 119, 133, 139, 134, 127, 145, 132, 128, 151, 128, 134, 145, 146, 133, 132, 144, 132, 127, 140, 139, 131, 125, 129, 136, 140, 122, 143, 125, 124, 155, 140, 135, 129, 131, 120, 127, 142, 132, 128, 167, 160, 130, 143, 142, 114, 135, 142, 133, 146, 127, 141, 141, 138, 119, 126, 133, 127, 126, 141, 135, 136, 131, 136, 127, 133, 132, 152, 127, 139, 141, 131, 120, 129, 123, 152, 134, 129, 127, 131, 150, 118, 130, 141, 157, 129, 153, 142, 128, 140, 134, 136, 123, 128, 125, 129, 122, 138, 138, 128, 126, 134, 131, 121, 143, 142, 126, 145, 132, 135, 134, 140, 113, 140, 131, 133, 145, 135, 125, 129, 136, 135, 146, 136, 126, 142, 147, 141, 143, 128, 139, 134, 135, 135, 136, 148, 147, 126, 133, 142, 130, 128, 147, 120, 131, 128, 143, 142, 151, 132, 120, 131, 135, 135, 137, 136, 156, 141, 140, 128, 142, 138, 134, 124, 132, 145, 130, 136, 147, 130, 140, 134, 133, 122, 130, 123, 131, 141, 124, 135, 130, 127, 129, 136, 123, 138, 136, 132, 142, 138, 134, 130, 142, 135, 134, 154, 128, 115, 133, 136, 121, 136, 148, 134, 134, 125, 133, 137, 140, 138, 134, 129, 152, 130, 149, 137, 131, 113, 133, 140, 133, 136, 133, 133, 144, 136, 134, 137, 136, 135, 128, 145, 142, 121, 145, 137, 138, 120, 130, 138, 138, 126, 134, 152, 128, 133, 135, 144, 134, 134, 137, 130, 137, 149, 141, 116, 142, 162, 134, 142, 135, 141, 148, 135, 145, 136, 136, 124, 152, 150, 131, 138, 140, 134, 138, 125, 157, 131, 137, 138, 138, 118, 135, 140, 133, 135, 121, 122, 139, 133, 135, 127, 128, 142, 139, 134, 142, 128, 126, 143, 129, 146, 131, 132, 143, 128, 141, 129, 134, 124, 139, 146, 162, 127, 124, 124, 132, 142, 146, 129, 134, 138, 131, 132, 131, 127, 155, 129, 134, 129, 134, 135, 128, 134, 133, 140, 141, 136, 147, 140, 143, 141, 130, 135, 150, 139, 151, 142, 119, 145, 134, 137, 134, 117, 139, 133, 122, 138, 148, 135, 143, 146, 122, 143, 136, 130, 157, 141, 131, 130, 142, 129, 132, 123, 148, 126, 149, 110, 124, 140, 132, 135, 130, 140, 143, 155, 132, 141, 136, 149, 161, 129, 126, 129, 136, 123, 131, 129, 123, 129, 124, 144, 148, 141, 133, 129, 147, 138, 121, 144, 146, 121, 140, 127, 132, 144, 118, 139, 142, 144, 152, 125, 127, 133, 121, 119, 145, 145, 132, 101, 135, 140, 129, 149, 137, 135, 120, 143, 129, 136, 130, 137, 128, 128, 138, 143, 139, 126, 148, 140, 144, 130, 143, 131, 136, 140, 132, 133, 136, 143, 141, 136, 130, 133, 141, 139, 136, 141, 130, 143, 131, 136, 140, 126, 149, 138, 144, 176, 128, 123, 130, 123, 144, 144, 127, 142, 142, 133, 134, 134, 126, 133, 137, 140, 151, 130, 137, 142, 114, 137, 137, 119, 137, 127, 134, 128, 143, 157, 139, 146, 136, 122, 139, 133, 126, 135, 123, 126, 140, 136, 132, 138, 123, 137, 133, 124, 135, 113, 125, 135, 138, 142, 132, 119, 146, 137, 132, 139, 112, 130, 123, 147, 142, 131, 145, 127, 133, 126, 131, 128, 132, 134, 156, 131, 130, 142, 133, 148, 145, 139, 133, 142, 128, 141, 146, 139, 125, 130, 134, 134, 148, 148, 131, 121, 146, 135, 146, 135, 156, 122, 130, 123, 139, 129, 140, 135, 132, 140, 139, 134, 134, 128, 143, 128, 127, 130, 143, 130, 118, 136, 130, 133, 136, 139, 149, 150, 137, 136, 131, 129, 138, 154, 131, 143, 146, 145, 140, 136, 124, 138, 119, 123, 132, 139, 128, 117, 117, 131, 143, 127, 115, 138, 140, 130, 108, 128, 131, 154, 140, 133, 142, 127, 147, 134, 131, 123, 142, 126, 136, 128, 135, 133, 134, 153, 140, 139, 137, 143, 124, 153, 142, 128, 114, 129, 146, 132, 144, 141, 135, 145, 137, 143, 152, 140, 127, 129, 138, 128, 134, 148, 151, 144, 133, 142, 128, 136, 133, 128, 139, 144, 128, 138, 143, 136, 138, 131, 125, 138, 134, 132, 137, 128, 147, 130, 143, 141, 147, 122, 143, 138, 126, 134, 125, 136, 137, 139, 126, 130, 138, 128, 138, 141, 136, 129, 126, 135, 125, 136, 124, 130, 129, 139, 136, 136, 131, 149, 129, 149, 125, 120, 126, 136, 137, 152, 130, 126, 137, 137, 133, 117, 139, 133, 140, 157, 154, 127, 148, 124, 160, 131, 136, 133, 138, 146, 138, 136, 134, 125, 146, 134, 131, 132, 143, 146, 128, 173, 116, 124, 151, 133, 141, 116, 144, 122, 140, 143, 123, 140, 149, 130, 143, 130, 139, 139, 131, 131, 126, 142, 139, 146, 129, 135, 152, 119, 126, 124, 139, 156, 133, 144, 131, 126, 132, 132, 124, 133, 132, 140, 141, 134, 151, 123, 137, 135, 144, 140, 138, 141, 129, 145, 134, 144, 138, 144, 139, 124, 142, 133, 136, 144, 119, 132, 141, 140, 134, 131, 128, 140, 156, 128, 153, 133, 138, 134, 135, 141, 141, 130, 149, 129, 135, 150, 147, 114, 130, 136, 136, 141, 129, 145, 132, 134, 127, 136, 138, 135, 150, 156, 132, 149, 130, 135, 142, 139, 134, 136, 130, 125, 136, 124, 141, 129, 134, 126, 136, 134, 138, 141, 131, 140, 144, 136, 125, 143, 128, 137, 132, 136, 138, 130, 133, 141, 128, 135, 127, 133, 129, 141, 127, 152, 141, 139, 143, 137, 122, 136, 146, 143, 142, 139, 140, 133, 125, 125, 146, 136, 121, 125, 124, 123, 132, 130, 133, 133, 132, 134, 154, 130, 142, 127, 124, 124, 146, 138, 138, 130, 130, 132, 143, 119, 123, 120, 128, 131, 129, 141, 140, 130, 138, 155, 142, 144, 144, 123, 141, 139, 141, 129, 130, 141, 129, 138, 140, 121, 142, 138, 122, 135, 134, 139, 133, 127, 122, 134, 142, 140, 141, 149, 121, 136, 134, 134, 131, 144, 135, 131, 139, 132, 134, 129, 137, 126, 125, 130, 134, 132, 142, 146, 126, 128, 139, 135, 136, 130, 155, 128, 138, 144, 131, 142, 147, 133, 118, 137, 150, 125, 120, 129, 143, 129, 131, 132, 127, 137, 124, 134, 141, 151, 130, 118, 126, 136, 140, 142, 137, 151, 129, 147, 132, 146, 149, 128, 134, 147, 125, 124, 132, 133, 136, 131, 138, 137, 140, 138, 135, 133, 135, 141, 132, 137, 139, 132, 123, 129, 122, 123, 122, 130, 138, 146, 128, 131, 138, 136, 134, 126, 144, 146, 140, 137, 123, 124, 139, 138, 133, 137, 141, 124, 137, 135, 131, 129, 126, 156, 139, 137, 143, 136, 144, 136, 141, 130, 144, 134, 135, 134, 143, 145, 137, 124, 139, 134, 133, 136, 139, 130, 128, 136, 145, 147, 131, 135, 139, 134, 131, 136, 140, 128, 140, 139, 126, 131, 138, 147, 128, 151, 129, 135, 126, 139, 147, 140, 137, 136, 147, 137, 134, 141, 134, 141, 131, 130, 147, 138, 125, 143, 139, 132, 117, 130, 135, 137, 140, 141, 132, 139, 132, 139, 135, 143, 137, 140, 136, 136, 141, 145, 135, 138, 143, 138, 123, 147, 141, 133, 131, 137, 144, 137, 146, 134, 128, 137, 134, 130, 139, 151, 140, 137, 145, 142, 136, 148, 138, 137, 133, 142, 139, 139, 131, 143, 153, 144, 143, 140, 147, 139, 147, 144, 125, 141, 141, 137, 132, 137, 133, 144, 139, 137, 137, 146, 143, 135, 137, 143, 136, 133, 142, 138, 141, 135, 142, 139, 132, 139, 136, 141, 134, 133, 127, 143, 140, 131, 133, 139, 138, 134, 141, 145, 149, 131, 139, 126, 145, 148, 143, 131, 122, 141, 141, 137, 125, 137, 135, 135, 131, 130, 136, 141, 131, 130, 134, 136, 135, 137, 132, 132, 133, 128, 146, 134, 126, 143, 148, 133, 140, 121, 145, 149, 141, 140, 137, 135, 143, 122, 142, 145, 134, 138, 124, 136, 136, 138, 146, 134, 147, 139, 135, 139, 133, 138, 144, 137, 129, 138, 144, 136, 129, 137, 124, 132, 132, 140, 143, 138, 146, 140, 143, 137, 131, 140, 139, 141, 128, 145, 134, 134, 133, 135, 137, 134, 135, 123, 138, 138, 139, 130, 133, 146, 120, 134, 141, 145, 143, 140, 139, 135, 138, 142, 124, 140, 134, 131, 135, 142, 132, 134, 139, 156, 135, 139, 135, 139, 146, 148, 132, 136, 140, 132, 124, 131, 137, 137, 129, 117, 143, 141, 129, 137, 143, 136, 122, 126, 129, 141, 136, 140, 132, 133, 137, 132, 143, 147, 139, 137, 145, 129, 130, 138, 133, 128, 134, 138, 129, 135, 134, 130, 131, 147, 142, 137, 134, 134, 141, 135, 143, 136, 141, 135, 131, 141, 136, 138, 139, 143, 146, 121, 131, 133, 142, 141, 129, 131, 132, 133, 134, 145, 134, 134, 133, 130, 135, 145, 139, 138, 134, 144, 124, 146, 136, 118, 135, 152, 152, 140, 132, 137, 138, 140, 133, 132, 133, 139, 131, 137, 142, 136, 130, 133, 134, 140, 137, 133, 133, 135, 128, 136, 136, 137, 134, 131, 131, 141, 135, 142, 140, 144, 138, 134, 147, 150, 136, 134, 132, 127, 143, 149, 139, 139, 145, 145, 128, 124, 137, 138, 140, 141, 135, 130, 120, 137, 137, 139, 135, 139, 140, 149, 142, 127, 136, 142, 134, 142, 146, 144, 130, 138, 117, 130, 143, 147, 135, 139, 126, 133, 136, 128, 128, 139, 133, 122, 140, 130, 134, 135, 131, 138, 127, 139, 129, 128, 152, 141, 143, 139, 126, 136, 140, 141, 141, 143, 140, 157, 130, 127, 141, 148, 143, 147, 146, 126, 131, 127, 128, 130, 139, 132, 148, 124, 142, 139, 147, 135, 132, 131, 133, 134, 136, 135, 127, 128, 135, 128, 137, 137, 143, 117, 135, 150, 132, 126, 131, 130, 147, 132, 140, 143, 125, 135, 149, 143, 130, 117, 137, 122, 139, 114, 143, 149, 140, 136, 134, 137, 136, 139, 147, 146, 148, 125, 126, 142, 122, 141, 129, 141, 124, 120, 136, 129, 149, 141, 139, 126, 131, 142, 132, 136, 148, 136, 148, 132, 114, 133, 137, 142, 139, 143, 137, 137, 135, 128, 137, 138, 138, 122, 123, 125, 129, 121, 145, 150, 132, 136, 122, 140, 152, 156, 134, 137, 143, 129, 126, 135, 126, 134, 137, 148, 142, 137, 140, 127, 119, 152, 133, 131, 130, 138, 115, 141, 158, 123, 130, 145, 151, 131, 119, 139, 168, 143, 134, 132, 139, 121, 142, 107, 134, 140, 132, 140, 134, 138, 140, 146, 121, 128, 123, 134, 147, 140, 138, 118, 128, 139, 133, 125, 147, 130, 148, 98, 130, 127, 131, 128, 126, 149, 140, 123, 147, 123, 132, 136, 130, 133, 125, 134, 132, 129, 126, 151, 133, 129, 147, 130, 141, 169, 138, 152, 137, 130, 142, 145, 130, 131, 147, 132, 128, 134, 133, 129, 131, 149, 140, 133, 133, 140, 110, 127, 140, 142, 132, 133, 138, 130, 148, 128, 129, 146, 150, 131, 135, 136, 142, 138, 126, 144, 140, 132, 138, 141, 123, 110, 140, 156, 133, 123, 133, 140, 137, 145, 124, 127, 125, 142, 144, 140, 124, 167, 138, 136, 137, 129, 143, 148, 139, 130, 131, 120, 140, 141, 124, 136, 128, 129, 141, 125, 142, 147, 131, 132, 151, 128, 129, 135, 120, 138, 141, 123, 135, 149, 130, 135, 136, 140, 150, 140, 129, 139, 156, 134, 134, 155, 140, 163, 139, 137, 120, 134, 124, 130, 136, 127, 139, 135, 145, 134, 105, 132, 155, 138, 142, 154, 139, 137, 134, 136, 122, 150, 131, 140, 129, 147, 123, 139, 138, 141, 131, 127, 150, 145, 144, 146, 129, 143, 144, 133, 139, 132, 133, 119, 126, 139, 145, 141, 133, 148, 144, 130, 137, 150, 122, 124, 145, 146, 136, 127, 130, 144, 144, 128, 148, 144, 131, 133, 139, 135, 134, 122, 143, 134, 151, 140, 146, 155, 125, 145, 133, 131, 139, 126, 126, 146, 144, 150, 145, 144, 130, 153, 135, 131, 130, 133, 137, 137, 126, 145, 140, 109, 144, 149, 138, 139, 133, 131, 127, 131, 127, 138, 126, 139, 141, 143, 128, 118, 140, 137, 143, 139, 143, 133, 134, 131, 132, 115, 136, 132, 125, 127, 142, 130, 138, 133, 139, 112, 143, 133, 129, 125, 132, 132, 137, 134, 126, 144, 125, 129, 154, 133, 127, 98, 131, 141, 141, 132, 139, 139, 118, 115, 128, 137, 149, 156, 148, 136, 130, 143, 137, 126, 130, 133, 143, 129, 152, 120, 132, 135, 129, 135, 139, 140, 140, 141, 138, 128, 131, 152, 145, 141, 134, 138, 126, 129, 127, 136, 143, 147, 123, 140, 135, 154, 125, 151, 130, 139, 126, 137, 154, 123, 127, 114, 126, 138, 132, 132, 182, 130, 128, 142, 127, 141, 133, 148, 130, 135, 138, 138, 165, 138, 142, 129, 120, 143, 143, 132, 122, 138, 133, 137, 145, 144, 142, 132, 133, 118, 137, 142, 144, 144, 135, 139, 139, 133, 135, 131, 137, 142, 128, 137, 150, 109, 135, 139, 137, 139, 124, 132, 142, 127, 129, 135, 148, 133, 143, 157, 127, 140, 151, 146, 139, 120, 140, 129, 129, 121, 133, 121, 136, 119, 125, 126, 162, 135, 131, 133, 121, 130, 125, 128, 140, 140, 160, 127, 122, 137, 155, 133, 147, 124, 132, 126, 132, 126, 126, 134, 122, 142, 140, 139, 135, 142, 128, 129, 138, 127, 135, 131, 128, 150, 132, 116, 148, 142, 116, 131, 111, 132, 132, 136, 140, 140, 132, 138, 112, 138, 152, 120, 143, 125, 134, 134, 126, 145, 153, 122, 143, 143, 143, 143, 135, 135, 136, 121, 129, 129, 144, 154, 148, 138, 138, 138, 131, 132, 142, 158, 129, 128, 132, 115, 139, 145, 125, 129, 141, 125, 136, 136, 115, 150, 134, 136, 128, 145, 151, 119, 134, 146, 135, 144, 127, 134, 117, 136, 164, 150, 128, 124, 132, 130, 118, 151, 127, 120, 138, 118, 129, 151, 146, 131, 128, 137, 137, 150, 119, 119, 143, 153, 140, 124, 147, 132, 129, 117, 125, 149, 142, 142, 147, 140, 130, 133, 106, 129, 132, 139, 143, 134, 130, 138, 134, 120, 129, 127, 132, 141, 143, 127, 141, 138, 137, 130, 131, 157, 128, 132, 141, 132, 142, 148, 142, 132, 125, 133, 135, 140, 134, 128, 123, 147, 121, 144, 131, 151, 135, 132, 119, 142, 140, 137, 134, 153, 127, 129, 136, 137, 144, 131, 139, 135, 132, 123, 121, 140, 132, 130, 104, 134, 133, 153, 148, 123, 141, 131, 138, 131, 121, 141, 136, 127, 133, 145, 129, 112, 130, 137, 141, 158, 128, 145, 138, 147, 160, 122, 139, 129, 150, 112, 126, 135, 148, 130, 143, 125, 129, 122, 134, 143, 132, 123, 132, 152, 131, 140, 142, 154, 134, 129, 134, 129, 159, 127, 125, 122, 141, 172, 129, 142, 141, 145, 138, 144, 145, 128, 141, 133, 117, 123, 123, 130, 133, 142, 125, 138, 131, 144, 145, 126, 135, 168, 156, 137, 140, 141, 137, 129, 139, 141, 129, 130, 135, 141, 137, 157, 139, 134, 141, 132, 135, 132, 146, 144, 132, 130, 135, 137, 126, 126, 146, 129, 138, 147, 152, 137, 155, 130, 136, 129, 137, 140, 132, 142, 129, 153, 145, 159, 132, 133, 133, 130, 147, 133, 145, 149, 135, 137, 138, 141, 124, 125, 125, 138, 139, 131, 129, 147, 123, 128, 127, 116, 129, 134, 136, 121, 128, 130, 159, 123, 120, 115, 127, 135, 129, 127, 130, 136, 128, 142, 124, 135, 131, 134, 135, 135, 146, 149, 120, 133, 137, 129, 135, 166, 130, 137, 120, 125, 141, 137, 135, 141, 135, 138, 143, 129, 133, 139, 136, 128, 112, 141, 135, 130, 140, 147, 148, 138, 123, 136, 132, 153, 138, 136, 133, 140, 154, 135, 147, 148, 138, 122, 155, 139, 128, 135, 133, 129, 141, 145, 160, 139, 142, 143, 139, 144, 139, 124, 134, 136, 137, 118, 128, 138, 136, 134, 143, 141, 125, 127, 139, 148, 135, 130, 131, 149, 146, 132, 145, 149, 159, 148, 134, 136, 139, 144, 134, 137, 127, 132, 127, 152, 126, 147, 142, 123, 120, 133, 140, 130, 133, 128, 146, 126, 155, 136, 138, 130, 134, 134, 139, 126, 136, 126, 154, 135, 153, 138, 139, 131, 131, 134, 128, 158, 134, 144, 125, 137, 124, 133, 130, 142, 139, 138, 135, 136, 136, 134, 135, 138, 154, 125, 142, 141, 123, 154, 133, 135, 135, 128, 132, 125, 143, 136, 134, 137, 131, 134, 142, 136, 121, 132, 130, 126, 135, 136, 131, 130, 134, 146, 132, 130, 128, 142, 141, 124, 124, 128, 134, 143, 138, 124, 132, 131, 121, 140, 132, 124, 130, 125, 141, 142, 136, 139, 132, 127, 135, 158, 157, 142, 153, 155, 152, 137, 135, 128, 144, 130, 134, 152, 126, 142, 143, 144, 148, 137, 128, 139, 139, 131, 145, 140, 142, 144, 137, 144, 133, 125, 151, 139, 140, 139, 116, 132, 134, 128, 140, 135, 121, 127, 137, 148, 132, 127, 131, 132, 133, 143, 138, 146, 147, 147, 132, 153, 138, 142, 147, 130, 140, 133, 141, 127, 123, 139, 131, 135, 136, 127, 143, 130, 131, 136, 129, 133, 145, 139, 137, 136, 127, 137, 140, 154, 137, 134, 128, 131, 148, 149, 130, 136, 138, 141, 150, 136, 161, 129, 138, 145, 143, 130, 133, 123, 123, 127, 131, 151, 129, 135, 134, 144, 139, 131, 127, 134, 112, 124, 133, 124, 147, 147, 133, 139, 136, 140, 134, 131, 146, 128, 132, 128, 134, 134, 138, 155, 123, 137, 133, 129, 129, 132, 133, 121, 144, 146, 152, 133, 119, 129, 124, 147, 136, 128, 131, 140, 127, 118, 123, 130, 145, 137, 141, 143, 125, 140, 113, 135, 137, 150, 136, 147, 141, 134, 162, 130, 135, 138, 136, 117, 121, 134, 138, 141, 139, 115, 141, 167, 131, 134, 129, 126, 129, 148, 123, 145, 140, 127, 138, 126, 138, 149, 132, 129, 141, 133, 140, 128, 133, 131, 158, 135, 127, 141, 133, 135, 143, 134, 145, 132, 141, 142, 145, 123, 143, 134, 152, 136, 138, 144, 141, 142, 136, 135, 130, 141, 139, 130, 134, 131, 150, 125, 129, 138, 124, 118, 134, 133, 137, 130, 149, 137, 128, 135, 138, 130, 148, 132, 140, 133, 133, 135, 135, 133, 139, 142, 135, 134, 133, 144, 131, 133, 132, 131, 139, 123, 131, 114, 139, 132, 140, 131, 153, 137, 138, 129, 133, 134, 138, 135, 131, 136, 147, 132, 134, 149, 143, 140, 138, 136, 135, 141, 123, 142, 127, 134, 142, 132, 129, 144, 123, 130, 129, 133, 128, 128, 132, 137, 135, 141, 133, 133, 132, 137, 131, 136, 149, 131, 127, 135, 129, 133, 129, 136, 131, 134, 132, 146, 137, 138, 148, 133, 134, 135, 133, 131, 140, 132, 138, 137, 136, 159, 138, 121, 146, 130, 134, 138, 134, 155, 126, 126, 134, 143, 129, 141, 133, 136, 129, 141, 143, 139, 132, 129, 140, 130, 124, 138, 136, 134, 127, 146, 127, 150, 136, 137, 138, 145, 131, 136, 135, 127, 144, 141, 140, 127, 143, 134, 137, 140, 139, 131, 137, 128, 123, 146, 134, 138, 145, 137, 145, 121, 134, 135, 139, 130, 126, 132, 123, 133, 129, 132, 139, 128, 144, 128, 136, 134, 156, 141, 154, 127, 126, 135, 135, 138, 127, 135, 131, 129, 122, 144, 139, 132, 148, 134, 139, 125, 130, 129, 134, 141, 130, 133, 128, 129, 119, 134, 132, 127, 149, 127, 128, 138, 120, 121, 122, 131, 141, 133, 140, 136, 151, 132, 127, 141, 134, 126, 142, 139, 160, 137, 136, 143, 131, 132, 133, 125, 130, 146, 137, 132, 129, 112, 132, 147, 136, 128, 146, 141, 132, 133, 131, 133, 127, 139, 118, 141, 139, 141, 141, 134, 146, 148, 134, 139, 139, 133, 135, 138, 138, 129, 133, 125, 138, 123, 135, 141, 106, 119, 143, 136, 131, 130, 149, 125, 137, 149, 133, 131, 140, 131, 140, 131, 134, 173, 142, 127, 134, 130, 142, 133, 130, 142, 135, 141, 151, 134, 143, 135, 153, 145, 143, 142, 136, 135, 122, 137, 158, 132, 142, 139, 134, 131, 134, 144, 136, 133, 128, 129, 153, 129, 139, 142, 124, 133, 137, 129, 131, 129, 137, 129, 132, 137, 122, 120, 135, 131, 134, 129, 144, 146, 126, 142, 127, 124, 129, 127, 136, 145, 143, 142, 135, 134, 126, 133, 145, 129, 134, 124, 111, 133, 132, 139, 144, 142, 138, 134, 133, 142, 126, 131, 120, 142, 143, 137, 131, 139, 136, 135, 154, 135, 136, 128, 126, 131, 134, 147, 135, 140, 137, 138, 136, 125, 132, 135, 150, 139, 140, 134, 153, 140, 135, 131, 136, 133, 148, 127, 130, 137, 122, 129, 132, 128, 146, 140, 143, 145, 134, 128, 144, 127, 129, 137, 139, 141, 147, 129, 140, 155, 138, 141, 139, 124, 160, 121, 143, 133, 129, 148, 131, 135, 128, 138, 140, 145, 127, 143, 133, 142, 117, 144, 144, 133, 131, 132, 142, 131, 132, 135, 130, 141, 132, 141, 147, 124, 137, 134, 121, 135, 130, 135, 136, 136, 147, 133, 133, 133, 125, 135, 140, 138, 138, 138, 131, 142, 135, 125, 128, 130, 133, 132, 133, 133, 139, 129, 129, 131, 155, 126, 136, 136, 128, 133, 136, 151, 125, 133, 133, 137, 125, 127, 140, 130, 140, 136, 142, 117, 148, 132, 138, 126, 137, 122, 152, 137, 137, 126, 126, 147, 139, 126, 137, 136, 135, 142, 135, 131, 137, 133, 128, 143, 135, 138, 124, 128, 129, 139, 146, 120, 136, 137, 142, 131, 128, 142, 140, 128, 136, 135, 137, 140, 151, 129, 129, 138, 134, 126, 131, 144, 131, 140, 126, 135, 133, 127, 136, 122, 138, 134, 145, 150, 124, 130, 137, 123, 133, 132, 135, 140, 138, 143, 138, 137, 135, 143, 133, 136, 125, 126, 134, 141, 125, 121, 131, 138, 132, 140, 127, 137, 130, 136, 143, 118, 131, 134, 133, 129, 140, 116, 150, 136, 127, 140, 126, 115, 138, 120, 130, 128, 117, 119, 134, 141, 129, 121, 138, 125, 133, 115, 131, 144, 145, 148, 140, 124, 148, 136, 136, 132, 143, 123, 173, 136, 118, 119, 154, 166, 147, 118, 144, 139, 121, 150, 133, 127, 127, 137, 125, 142, 131, 134, 130, 121, 137, 134, 139, 126, 132, 139, 121, 128, 170, 128, 129, 129, 123, 118, 113, 141, 130, 122, 130, 153, 122, 138, 136, 137, 130, 142, 125, 127, 115, 130, 150, 123, 131, 133, 125, 118, 138, 125, 138, 135, 123, 139, 154, 139, 151, 135, 132, 124, 145, 150, 157, 144, 123, 139, 132, 145, 138, 145, 149, 128, 139, 131, 121, 140, 144, 148, 134, 128, 114, 138, 127, 120, 138, 131, 122, 122, 123, 127, 134, 130, 135, 116, 121, 127, 125, 116, 137, 133, 128, 133, 129, 133, 128, 141, 135, 133, 134, 143, 129, 86, 141, 123, 133, 127, 119, 143, 107, 136, 149, 142, 124, 131, 137, 123, 143, 133, 120, 140, 159, 151, 130, 126, 130, 132, 135, 129, 114, 128, 153, 119, 136, 122, 138, 147, 145, 124, 134, 137, 128, 130, 127, 155, 145, 146, 127, 122, 121, 129, 139, 128, 131, 121, 140, 120, 151, 122, 122, 127, 125, 122, 129, 135, 115, 152, 146, 138, 145, 155, 131, 146, 131, 123, 139, 146, 134, 123, 153, 130, 126, 148, 136, 156, 157, 140, 147, 136, 135, 133, 137, 124, 145, 143, 139, 129, 142, 148, 141, 165, 125, 124, 109, 139, 134, 139, 135, 144, 121, 125, 127, 147, 157, 132, 132, 125, 134, 144, 135, 140, 128, 137, 133, 146, 138, 135, 135, 125, 139, 124, 136, 125, 136, 140, 129, 126, 126, 120, 137, 133, 134, 140, 136, 148, 129, 140, 128, 108, 133, 132, 139, 118, 151, 159, 124, 124, 122, 153, 154, 126, 133, 153, 140, 138, 121, 139, 118, 130, 130, 129, 121, 120, 141, 129, 139, 144, 139, 138, 131, 132, 120, 136, 130, 134, 132, 147, 126, 144, 132, 130, 134, 122, 118, 138, 143, 117, 117, 125, 126, 146, 185, 137, 133, 138, 128, 128, 132, 149, 142, 132, 142, 135, 122, 94, 144, 135, 130, 154, 140, 125, 133, 112, 125, 124, 136, 121, 128, 148, 128, 140, 118, 118, 146, 124, 131, 137, 135, 123, 124, 134, 125, 136, 90, 133, 138, 117, 127, 132, 132, 126, 141, 134, 133, 139, 137, 139, 114, 144, 147, 130, 138, 127, 122, 129, 150, 124, 117, 156, 129, 143, 135, 156, 109, 128, 136, 149, 135, 119, 127, 134, 139, 134, 131, 119, 146, 130, 142, 145, 135, 124, 128, 135, 142, 133, 148, 148, 130, 126, 149, 136, 127, 131, 139, 139, 149, 135, 131, 134, 124, 137, 154, 140, 129, 146, 155, 112, 181, 127, 143, 124, 141, 141, 122, 115, 135, 121, 121, 148, 112, 145, 161, 133, 135, 149, 148, 136, 116, 140, 134, 137, 122, 140, 132, 124, 142, 114, 127, 132, 145, 129, 135, 140, 126, 131, 133, 134, 128, 134, 137, 133, 147, 154, 133, 150, 117, 138, 132, 151, 132, 137, 127, 136, 139, 124, 120, 129, 135, 126, 123, 141, 104, 132, 135, 133, 134, 135, 138, 141, 136, 129, 132, 128, 139, 134, 154, 154, 117, 130, 133, 128, 135, 146, 130, 142, 136, 146, 117, 129, 132, 151, 126, 140, 136, 131, 131, 111, 117, 131, 133, 139, 130, 144, 138, 134, 136, 136, 126, 134, 112, 129, 133, 149, 153, 128, 116, 134, 135, 130, 140, 149, 152, 139, 130, 132, 149, 130, 119, 141, 147, 138, 130, 146, 140, 147, 120, 141, 141, 107, 130, 137, 133, 130, 135, 136, 133, 145, 128, 131, 131, 141, 127, 129, 151, 136, 141, 127, 130, 141, 137, 136, 143, 131, 128, 139, 126, 138, 146, 141, 131, 134, 141, 125, 133, 134, 129, 115, 139, 134, 129, 126, 130, 126, 137, 130, 134, 131, 139, 143, 139, 124, 136, 133, 125, 138, 146, 145, 133, 129, 128, 126, 115, 136, 138, 142, 126, 135, 137, 142, 144, 122, 136, 158, 134, 130, 138, 151, 151, 117, 149, 131, 155, 131, 132, 140, 132, 113, 141, 143, 135, 113, 137, 132, 130, 136, 147, 135, 136, 130, 137, 156, 118, 130, 127, 131, 145, 149, 134, 134, 116, 133, 143, 129, 138, 134, 141, 144, 123, 136, 139, 127, 152, 123, 133, 122, 144, 133, 134, 143, 134, 133, 140, 128, 146, 142, 118, 126, 133, 142, 138, 132, 136, 146, 132, 139, 155, 134, 123, 136, 123, 148, 131, 139, 129, 124, 131, 132, 138, 127, 137, 127, 133, 131, 141, 130, 134, 143, 148, 141, 119, 143, 130, 146, 133, 152, 141, 137, 158, 130, 139, 129, 119, 132, 125, 138, 128, 138, 117, 146, 134, 154, 129, 133, 124, 126, 140, 137, 144, 130, 137, 138, 144, 116, 126, 138, 126, 129, 146, 116, 132, 144, 142, 124, 129, 123, 139, 151, 133, 138, 119, 134, 143, 125, 129, 122, 135, 117, 157, 150, 142, 138, 154, 143, 126, 140, 130, 149, 141, 148, 141, 140, 125, 137, 139, 128, 133, 132, 133, 130, 133, 122, 145, 135, 120, 125, 133, 139, 161, 141, 140, 143, 147, 120, 138, 127, 143, 135, 132, 125, 136, 160, 123, 130, 128, 142, 136, 133, 139, 128, 130, 125, 140, 161, 133, 132, 143, 137, 139, 129, 144, 134, 160, 138, 137, 139, 134, 129, 135, 115, 143, 136, 140, 126, 135, 135, 143, 135, 131, 125, 124, 136, 134, 120, 129, 137, 125, 131, 141, 139, 121, 119, 130, 135, 135, 135, 132, 147, 112, 113, 142, 127, 119, 144, 147, 150, 143, 138, 113, 134, 141, 154, 128, 135, 140, 138, 138, 130, 132, 141, 145, 148, 140, 124, 130, 151, 135, 166, 147, 138, 134, 119, 135, 138, 127, 151, 143, 133, 136, 115, 125, 131, 148, 139, 132, 127, 140, 122, 130, 143, 134, 143, 138, 130, 143, 141, 136, 129, 147, 130, 139, 136, 149, 132, 134, 122, 125, 125, 134, 140, 134, 136, 128, 143, 141, 136, 133, 151, 134, 147, 136, 139, 139, 132, 137, 135, 135, 134, 135, 129, 130, 122, 135, 139, 147, 134, 141, 128, 134, 131, 132, 143, 136, 142, 138, 139, 135, 143, 140, 146, 137, 136, 143, 139, 141, 127, 134, 138, 132, 139, 132, 138, 139, 133, 135, 136, 134, 133, 136, 134, 138, 136, 139, 130, 135, 133, 129, 132, 127, 137, 142, 131, 128, 139, 133, 138, 143, 139, 134, 141, 134, 133, 137, 141, 130, 144, 126, 133, 151, 129, 142, 138, 136, 139, 141, 138, 131, 143, 136, 143, 139, 138, 142, 132, 138, 132, 136, 133, 137, 133, 134, 133, 132, 142, 140, 136, 126, 140, 143, 137, 138, 137, 139, 139, 130, 145, 133, 142, 124, 130, 150, 136, 139, 131, 133, 137, 142, 127, 142, 141, 136, 132, 142, 138, 123, 134, 136, 140, 136, 136, 132, 143, 142, 135, 135, 135, 127, 127, 133, 134, 142, 135, 139, 145, 132, 140, 139, 132, 134, 135, 126, 132, 138, 139, 134, 135, 133, 142, 152, 135, 141, 138, 135, 134, 140, 135, 136, 137, 131, 139, 133, 136, 136, 134, 136, 144, 130, 137, 136, 146, 137, 141, 136, 127, 134, 136, 143, 144, 134, 138, 143, 139, 138, 137, 138, 130, 129, 140, 138, 134, 127, 140, 130, 135, 131, 125, 141, 139, 139, 137, 129, 140, 142, 132, 138, 136, 136, 129, 139, 136, 138, 139, 142, 126, 130, 141, 140, 137, 132, 130, 133, 131, 135, 134, 132, 135, 142, 137, 132, 131, 137, 134, 131, 143, 136, 128, 131, 139, 138, 138, 140, 132, 139, 135, 133, 134, 128, 125, 131, 127, 139, 132, 138, 138, 140, 127, 144, 142, 139, 135, 133, 140, 140, 136, 133, 131, 135, 139, 131, 139, 136, 131, 139, 147, 144, 129, 137, 136, 136, 135, 132, 136, 134, 139, 134, 143, 131, 137, 142, 138, 133, 141, 136, 127, 138, 125, 132, 136, 141, 139, 132, 142, 135, 134, 137, 134, 140, 142, 129, 131, 135, 139, 136, 142, 136, 139, 136, 139, 137, 138, 124, 135, 136, 129, 130, 132, 129, 133, 130, 144, 133, 135, 133, 132, 133, 139, 139, 139, 131, 144, 133, 132, 144, 140, 145, 137, 132, 132, 124, 146, 135, 139, 135, 129, 140, 132, 136, 137, 142, 133, 137, 133, 136, 135, 139, 132, 140, 138, 129, 138, 140, 141, 148, 152, 145, 128, 141, 135, 132, 132, 126, 138, 134, 137, 130, 137, 137, 128, 136, 131, 138, 128, 132, 137, 136, 139, 145, 134, 145, 135, 123, 136, 133, 134, 132, 140, 138, 136, 139, 134, 130, 137, 141, 131, 144, 137, 135, 133, 139, 132, 139, 134, 140, 139, 132, 139, 146, 140, 145, 133, 134, 139, 139, 132, 144, 138, 130, 132, 140, 135, 134, 147, 129, 134, 140, 137, 137, 140, 135, 136, 129, 138, 136, 141, 141, 142, 137, 129, 119, 140, 136, 136, 136, 139, 136, 137, 134, 138, 144, 126, 136, 137, 138, 132, 144, 141, 136, 144, 137, 132, 131, 129, 145, 136, 133, 133, 139, 141, 136, 142, 136, 140, 135, 114, 142, 144, 136, 130, 127, 141, 122, 147, 131, 136, 133, 129, 129, 134, 128, 118, 129, 123, 139, 134, 133, 142, 147, 137, 132, 126, 139, 147, 143, 144, 128, 141, 131, 146, 143, 133, 138, 151, 142, 131, 149, 129, 131, 129, 133, 145, 140, 139, 135, 137, 137, 145, 167, 141, 133, 135, 141, 138, 138, 132, 131, 139, 137, 130, 141, 127, 136, 142, 134, 142, 121, 129, 134, 138, 132, 131, 142, 136, 130, 138, 133, 142, 126, 141, 139, 130, 143, 130, 140, 138, 133, 134, 130, 141, 143, 140, 138, 128, 127, 130, 135, 134, 137, 136, 140, 138, 128, 129, 130, 145, 129, 135, 139, 141, 143, 138, 120, 132, 135, 146, 136, 141, 138, 133, 128, 130, 151, 123, 134, 141, 138, 131, 139, 134, 136, 133, 136, 145, 143, 142, 140, 142, 133, 122, 132, 132, 137, 129, 141, 134, 131, 143, 123, 127, 144, 126, 135, 137, 135, 126, 130, 133, 137, 129, 122, 145, 131, 145, 138, 152, 133, 143, 143, 135, 136, 128, 150, 136, 133, 144, 120, 134, 138, 137, 134, 128, 134, 132, 122, 129, 151, 128, 131, 133, 126, 128, 135, 140, 141, 141, 140, 129, 138, 132, 127, 147, 139, 133, 126, 135, 141, 136, 138, 139, 129, 136, 150, 131, 137, 134, 131, 142, 133, 138, 132, 135, 127, 134, 133, 124, 142, 150, 138, 134, 134, 137, 132, 149, 136, 144, 136, 139, 140, 131, 120, 141, 134, 147, 136, 145, 142, 127, 139, 137, 131, 123, 141, 135, 130, 144, 131, 132, 134, 141, 127, 133, 139, 128, 124, 131, 122, 131, 146, 139, 137, 138, 139, 133, 133, 130, 138, 117, 143, 129, 141, 123, 138, 134, 118, 123, 122, 132, 132, 136, 151, 130, 150, 124, 136, 119, 136, 138, 135, 120, 149, 130, 134, 129, 139, 139, 141, 143, 145, 128, 131, 142, 135, 134, 135, 137, 136, 133, 138, 123, 136, 134, 134, 134, 173, 123, 134, 138, 133, 140, 139, 134, 136, 133, 133, 147, 134, 128, 141, 128, 132, 136, 121, 140, 135, 136, 137, 133, 134, 134, 131, 140, 133, 126, 133, 141, 129, 140, 131, 134, 140, 136, 131, 138, 144, 119, 137, 137, 125, 134, 127, 133, 128, 137, 136, 138, 134, 139, 131, 125, 148, 136, 141, 130, 136, 134, 144, 123, 132, 140, 152, 140, 139, 138, 139, 148, 122, 136, 120, 138, 133, 131, 138, 138, 134, 140, 135, 128, 147, 135, 142, 139, 132, 135, 127, 129, 156, 133, 142, 117, 136, 125, 128, 136, 133, 133, 146, 130, 123, 136, 133, 135, 132, 144, 142, 136, 130, 107, 143, 130, 129, 139, 147, 137, 126, 144, 136, 133, 131, 136, 137, 137, 142, 131, 138, 134, 139, 139, 139, 131, 132, 130, 148, 133, 133, 135, 134, 146, 140, 147, 132, 137, 143, 111, 134, 143, 129, 138, 146, 131, 140, 139, 140, 134, 131, 139, 133, 136, 142, 127, 126, 138, 116, 136, 144, 130, 135, 127, 138, 132, 132, 141, 140, 134, 146, 136, 131, 138, 125, 134, 138, 131, 137, 131, 136, 140, 141, 130, 144, 121, 141, 131, 126, 143, 121, 130, 137, 131, 130, 126, 129, 120, 137, 142, 146, 151, 131, 136, 136, 140, 153, 135, 136, 145, 131, 136, 133, 134, 141, 130, 145, 128, 127, 136, 152, 138, 136, 131, 136, 123, 143, 122, 132, 145, 144, 131, 124, 127, 136, 128, 123, 133, 151, 142, 141, 137, 131, 130, 128, 147, 129, 129, 145, 127, 126, 128, 157, 140, 128, 135, 131, 149, 145, 127, 140, 131, 137, 140, 128, 131, 143, 130, 145, 140, 120, 131, 141, 136, 129, 129, 134, 141, 127, 132, 137, 144, 132, 154, 140, 144, 128, 152, 143, 140, 139, 132, 134, 136, 135, 137, 139, 143, 135, 130, 129, 118, 137, 137, 130, 136, 137, 135, 141, 135, 131, 126, 136, 130, 139, 136, 132, 145, 127, 138, 141, 138, 145, 142, 146, 137, 138, 134, 142, 138, 137, 143, 130, 135, 131, 128, 131, 130, 135, 152, 143, 131, 143, 126, 142, 129, 132, 138, 132, 133, 139, 142, 141, 136, 147, 132, 144, 134, 131, 130, 134, 123, 134, 139, 141, 119, 139, 134, 141, 142, 150, 131, 139, 136, 144, 124, 130, 127, 135, 129, 133, 135, 145, 128, 137, 126, 136, 127, 147, 136, 138, 138, 126, 128, 144, 136, 129, 131, 134, 127, 135, 124, 134, 135, 133, 134, 142, 136, 127, 132, 125, 132, 130, 134, 134, 133, 137, 129, 145, 142, 137, 129, 146, 150, 123, 162, 138, 146, 133, 121, 129, 129, 156, 135, 136, 133, 123, 134, 138, 130, 149, 141, 133, 131, 119, 140, 141, 147, 148, 146, 138, 130, 131, 134, 135, 132, 131, 138, 137, 144, 130, 132, 143, 134, 132, 138, 129, 147, 128, 133, 137, 144, 127, 129, 135, 133, 125, 125, 117, 140, 142, 139, 147, 133, 125, 134, 122, 121, 126, 123, 126, 115, 135, 128, 127, 129, 127, 138, 125, 134, 122, 125, 133, 144, 142, 132, 131, 148, 134, 147, 131, 141, 130, 131, 128, 131, 134, 139, 133, 127, 134, 133, 128, 133, 141, 134, 136, 127, 141, 144, 123, 133, 132, 132, 139, 147, 148, 128, 136, 121, 133, 130, 136, 144, 134, 141, 129, 137, 145, 133, 137, 133, 155, 150, 133, 144, 135, 141, 144, 136, 130, 141, 131, 131, 134, 140, 143, 140, 130, 149, 138, 137, 143, 135, 126, 130, 135, 125, 133, 122, 129, 137, 135, 145, 141, 119, 143, 133, 128, 123, 128, 133, 140, 138, 147, 142, 124, 134, 131, 133, 159, 151, 151, 126, 138, 128, 145, 142, 132, 139, 140, 115, 139, 130, 140, 137, 129, 126, 138, 148, 138, 134, 143, 131, 143, 128, 158, 139, 141, 135, 149, 144, 129, 150, 130, 127, 130, 144, 138, 138, 126, 129, 144, 152, 129, 125, 149, 137, 138, 132, 151, 127, 127, 130, 135, 142, 116, 131, 128, 134, 135, 127, 141, 136, 141, 135, 145, 129, 142, 135, 133, 130, 118, 138, 135, 137, 124, 135, 129, 137, 131, 132, 129, 142, 132, 129, 126, 148, 139, 128, 141, 142, 141, 135, 139, 141, 147, 141, 138, 132, 130, 123, 121, 138, 134, 140, 127, 138, 133, 145, 130, 137, 143, 145, 154, 140, 147, 136, 134, 132, 137, 129, 136, 135, 137, 131, 145, 142, 130, 140, 128, 138, 148, 139, 133, 135, 135, 137, 151, 133, 137, 133, 135, 145, 136, 132, 142, 139, 128, 135, 134, 127, 145, 135, 129, 132, 128, 125, 138, 135, 135, 128, 137, 128, 122, 135, 131, 136, 139, 131, 141, 123, 142, 139, 146, 134, 128, 132, 136, 147, 138, 132, 135, 130, 142, 142, 141, 128, 135, 139, 137, 135, 145, 135, 131, 131, 127, 129, 131, 135, 141, 133, 117, 135, 138, 153, 137, 137, 136, 136, 129, 136, 127, 124, 127, 130, 134, 140, 131, 142, 142, 137, 138, 136, 138, 133, 133, 144, 138, 125, 136, 128, 160, 161, 147, 135, 132, 138, 152, 130, 137, 135, 130, 124, 140, 130, 129, 141, 131, 133, 138, 142, 137, 138, 142, 123, 133, 142, 135, 136, 132, 138, 130, 144, 131, 129, 124, 136, 138, 135, 140, 119, 106, 129, 118, 134, 134, 139, 129, 137, 133, 131, 130, 128, 133, 143, 138, 143, 142, 137, 133, 131, 129, 142, 139, 138, 135, 121, 126, 132, 150, 139, 139, 134, 138, 137, 139, 120, 138, 146, 130, 130, 139, 140, 126, 141, 138, 136, 135, 134, 128, 141, 137, 132, 126, 135, 131, 138, 143, 131, 108, 154, 135, 146, 137, 140, 129, 136, 133, 137, 118, 134, 133, 139, 131, 132, 142, 136, 115, 134, 129, 119, 157, 136, 134, 129, 131, 131, 134, 145, 128, 138, 131, 133, 130, 133, 131, 131, 130, 131, 135, 125, 134, 136, 133, 137, 162, 140, 138, 137, 160, 124, 142, 127, 139, 136, 138, 141, 135, 133, 128, 119, 141, 132, 140, 115, 130, 141, 134, 139, 134, 133, 136, 133, 132, 131, 129, 134, 139, 128, 143, 145, 135, 133, 162, 130, 129, 110, 113, 136, 138, 137, 135, 132, 136, 118, 147, 143, 139, 136, 136, 143, 103, 133, 140, 127, 136, 137, 133, 126, 145, 143, 137, 128, 130, 141, 132, 133, 125, 129, 142, 139, 138, 144, 134, 133, 137, 145, 115, 141, 133, 143, 124, 140, 120, 133, 138, 139, 147, 127, 140, 132, 140, 122, 128, 134, 137, 139, 136, 151, 137, 139, 134, 138, 134, 142, 132, 136, 162, 139, 141, 137, 140, 146, 131, 143, 138, 138, 128, 124, 140, 132, 138, 128, 120, 141, 141, 134, 131, 131, 138, 154, 130, 149, 146, 133, 142, 139, 124, 132, 136, 149, 129, 135, 164, 135, 143, 115, 124, 143, 133, 136, 132, 152, 135, 137, 123, 130, 143, 133, 137, 139, 137, 131, 139, 119, 134, 124, 106, 149, 134, 144, 132, 135, 130, 136, 137, 138, 140, 131, 126, 138, 134, 128, 135, 140, 124, 137, 135, 143, 136, 137, 140, 140, 141, 129, 132, 134, 132, 137, 122, 132, 139, 151, 131, 142, 142, 141, 150, 133, 128, 123, 140, 122, 138, 126, 123, 132, 138, 140, 142, 119, 132, 129, 153, 134, 138, 132, 131, 143, 130, 140, 134, 155, 136, 140, 128, 132, 126, 127, 140, 133, 149, 138, 170, 136, 126, 149, 139, 117, 133, 128, 137, 137, 122, 131, 137, 138, 142, 144, 134, 152, 122, 145, 130, 131, 142, 124, 130, 134, 134, 139, 133, 137, 112, 126, 135, 134, 138, 155, 143, 133, 143, 127, 131, 147, 115, 127, 141, 122, 145, 130, 123, 133, 135, 138, 133, 125, 142, 135, 135, 128, 119, 127, 140, 137, 132, 131, 137, 140, 125, 119, 143, 134, 165, 142, 144, 133, 131, 146, 116, 145, 122, 134, 127, 132, 116, 129, 151, 138, 134, 122, 146, 147, 161, 134, 114, 136, 133, 147, 135, 122, 134, 133, 134, 137, 148, 141, 135, 118, 124, 127, 140, 150, 114, 155, 138, 132, 130, 126, 123, 136, 137, 144, 137, 128, 129, 144, 147, 114, 132, 131, 137, 142, 138, 135, 131, 137, 141, 141, 130, 152, 138, 147, 113, 128, 154, 148, 137, 140, 146, 167, 135, 130, 131, 137, 142, 133, 134, 133, 142, 122, 144, 136, 131, 132, 137, 145, 148, 141, 134, 138, 151, 153, 133, 115, 134, 161, 118, 141, 131, 137, 119, 127, 178, 132, 123, 141, 122, 140, 129, 134, 153, 140, 148, 118, 138, 136, 132, 136, 140, 124, 123, 134, 127, 136, 134, 134, 138, 133, 133, 156, 142, 131, 134, 129, 138, 134, 136, 141, 135, 127, 142, 124, 134, 137, 137, 136, 139, 136, 134, 148, 105, 128, 127, 124, 136, 112, 118, 120, 153, 139, 145, 133, 132, 137, 126, 131, 145, 138, 132, 121, 138, 146, 141, 138, 144, 147, 143, 152, 119, 124, 132, 129, 136, 130, 123, 132, 134, 128, 146, 119, 144, 133, 138, 132, 114, 146, 129, 135, 133, 141, 134, 132, 132, 131, 120, 136, 132, 151, 134, 132, 124, 138, 132, 129, 138, 134, 136, 134, 135, 121, 128, 156, 134, 135, 125, 147, 146, 140, 138, 135, 135, 134, 113, 127, 137, 133, 142, 148, 138, 138, 147, 135, 148, 128, 132, 128, 137, 124, 132, 128, 131, 141, 132, 130, 130, 149, 142, 127, 139, 134, 139, 135, 137, 130, 134, 137, 183, 134, 133, 135, 134, 130, 136, 132, 145, 131, 131, 136, 129, 126, 129, 146, 138, 136, 136, 129, 129, 129, 121, 151, 129, 138, 135, 134, 130, 132, 138, 151, 135, 134, 130, 117, 138, 143, 136, 154, 124, 144, 133, 129, 133, 161, 135, 133, 139, 158, 144, 145, 131, 139, 116, 127, 131, 142, 142, 132, 144, 138, 130, 137, 139, 145, 123, 134, 161, 140, 136, 131, 143, 144, 140, 130, 132, 119, 131, 131, 132, 145, 126, 126, 129, 131, 143, 132, 148, 128, 131, 135, 143, 137, 138, 133, 135, 124, 139, 123, 151, 136, 128, 144, 131, 126, 135, 126, 132, 135, 133, 133, 129, 131, 137, 149, 123, 124, 131, 125, 129, 144, 125, 117, 121, 141, 132, 135, 134, 133, 143, 126, 141, 147, 132, 142, 127, 132, 140, 136, 137, 139, 147, 126, 137, 126, 135, 130, 142, 144, 127, 131, 139, 142, 143, 132, 157, 125, 148, 135, 129, 129, 136, 133, 128, 152, 133, 137, 140, 149, 159, 128, 147, 135, 142, 125, 137, 127, 135, 132, 137, 135, 128, 131, 132, 135, 124, 137, 151, 148, 125, 148, 151, 136, 101, 143, 140, 127, 135, 133, 141, 132, 132, 136, 159, 130, 155, 134, 137, 146, 137, 125, 146, 136, 151, 141, 125, 138, 114, 123, 130, 112, 146, 119, 122, 133, 127, 126, 134, 140, 133, 140, 129, 126, 132, 140, 145, 116, 139, 135, 136, 126, 119, 138, 145, 131, 146, 140, 136, 130, 141, 139, 145, 139, 134, 136, 137, 134, 142, 128, 132, 116, 129, 126, 124, 130, 154, 137, 119, 149, 150, 123, 148, 140, 126, 137, 131, 141, 144, 125, 141, 131, 141, 144, 128, 130, 125, 142, 153, 140, 151, 123, 133, 125, 156, 132, 123, 141, 136, 114, 154, 135, 145, 124, 139, 144, 117, 142, 133, 142, 138, 117, 140, 148, 134, 117, 151, 134, 136, 150, 141, 135, 130, 141, 135, 137, 139, 135, 103, 128, 124, 125, 137, 127, 130, 140, 148, 119, 126, 118, 131, 148, 152, 119, 138, 116, 121, 138, 140, 137, 144, 143, 142, 128, 134, 129, 132, 150, 143, 136, 136, 133, 123, 137, 109, 131, 146, 148, 133, 133, 137, 137, 133, 142, 138, 149, 133, 145, 142, 119, 135, 135, 134, 132, 128, 138, 127, 135, 130, 142, 131, 144, 131, 132, 147, 139, 138, 142, 142, 117, 171, 131, 138, 137, 119, 139, 117, 138, 133, 120, 132, 135, 127, 129, 151, 132, 159, 150, 130, 144, 151, 149, 144, 146, 138, 145, 141, 126, 163, 151, 150, 126, 140, 120, 145, 149, 131, 144, 153, 142, 131, 147, 131, 120, 136, 129, 150, 145, 134, 121, 133, 135, 150, 124, 131, 133, 133, 135, 137, 145, 132, 143, 135, 138, 122, 142, 136, 135, 137, 138, 139, 131, 136, 120, 121, 149, 142, 139, 142, 158, 125, 147, 126, 152, 136, 145, 137, 142, 141, 141, 135, 133, 124, 136, 118, 131, 130, 141, 140, 131, 139, 129, 147, 140, 144, 130, 127, 151, 112, 143, 147, 134, 139, 149, 132, 124, 145, 137, 122, 137, 159, 117, 141, 127, 137, 134, 148, 159, 132, 141, 137, 153, 150, 142, 131, 132, 130, 125, 138, 146, 129, 148, 139, 153, 156, 137, 147, 148, 157, 122, 123, 130, 131, 143, 142, 136, 149, 124, 141, 167, 144, 132, 142, 130, 140, 120, 147, 138, 137, 164, 114, 132, 152, 134, 131, 123, 150, 112, 117, 146, 177, 142, 135, 156, 144, 141, 135, 138, 136, 125, 157, 141, 134, 126, 137, 148, 138, 136, 122, 138, 124, 143, 145, 151, 149, 136, 138, 146, 116, 131, 138, 131, 149, 133, 147, 138, 138, 122, 151, 119, 135, 132, 146, 137, 130, 153, 134, 154, 131, 132, 117, 136, 127, 152, 150, 120, 131, 131, 128, 128, 142, 136, 141, 150, 129, 141, 112, 149, 147, 137, 148, 134, 140, 133, 140, 133, 143, 137, 128, 136, 147, 133, 138, 124, 139, 129, 136, 142, 133, 136, 128, 128, 149, 142, 139, 135, 135, 142, 135, 136, 147, 134, 166, 139, 133, 137, 140, 152, 133, 135, 127, 128, 141, 136, 147, 137, 138, 135, 127, 148, 138, 138, 136, 138, 148, 128, 129, 127, 138, 134, 140, 136, 141, 129, 126, 134, 126, 139, 136, 135, 130, 128, 140, 138, 119, 148, 131, 132, 137, 140, 142, 135, 145, 128, 147, 138, 133, 133, 134, 137, 137, 132, 145, 136, 140, 146, 129, 139, 137, 135, 132, 137, 129, 134, 135, 121, 134, 134, 136, 136, 148, 141, 138, 133, 132, 156, 138, 142, 134, 134, 130, 148, 139, 140, 129, 139, 137, 137, 132, 138, 159, 133, 136, 128, 138, 128, 134, 137, 133, 146, 140, 134, 131, 135, 136, 150, 133, 142, 138, 138, 153, 137, 128, 160, 153, 134, 125, 134, 146, 144, 138, 146, 138, 141, 130, 146, 137, 134, 139, 141, 142, 129, 152, 130, 132, 140, 138, 145, 128, 136, 126, 125, 137, 125, 152, 128, 134, 135, 136, 135, 130, 134, 138, 147, 132, 152, 136, 136, 140, 133, 124, 136, 133, 121, 139, 146, 149, 125, 137, 133, 138, 135, 129, 141, 142, 135, 139, 140, 139, 137, 130, 135, 146, 149, 145, 138, 129, 127, 134, 136, 139, 132, 135, 133, 138, 136, 134, 143, 144, 141, 134, 134, 129, 128, 136, 134, 131, 124, 146, 142, 135, 130, 135, 138, 129, 126, 130, 127, 151, 153, 127, 129, 137, 143, 131, 138, 126, 139, 137, 146, 144, 170, 142, 139, 129, 132, 129, 144, 132, 130, 129, 145, 139, 146, 136, 164, 132, 141, 135, 133, 136, 122, 133, 138, 124, 137, 133, 136, 148, 147, 126, 139, 131, 144, 133, 139, 132, 134, 129, 137, 127, 138, 149, 147, 134, 141, 134, 152, 127, 132, 131, 136, 142, 126, 145, 134, 138, 133, 133, 135, 129, 137, 119, 124, 140, 115, 131, 127, 134, 145, 134, 142, 143, 144, 124, 122, 136, 131, 130, 137, 132, 129, 128, 134, 136, 131, 128, 129, 130, 139, 139, 131, 153, 135, 134, 135, 130, 157, 132, 143, 137, 138, 147, 143, 136, 128, 135, 138, 126, 139, 139, 141, 136, 139, 146, 147, 141, 115, 122, 132, 140, 134, 134, 135, 120, 152, 136, 149, 135, 138, 137, 142, 112, 149, 138, 149, 155, 141, 131, 147, 123, 124, 141, 137, 155, 123, 142, 137, 151, 138, 132, 120, 139, 139, 138, 131, 138, 146, 134, 127, 148, 132, 140, 140, 134, 145, 144, 129, 148, 143, 129, 132, 124, 136, 137, 136, 156, 145, 138, 142, 142, 138, 116, 131, 141, 131, 149, 133, 138, 144, 136, 125, 138, 136, 133, 140, 136, 144, 138, 137, 136, 135, 124, 119, 141, 129, 139, 139, 141, 148, 150, 137, 128, 133, 136, 131, 136, 130, 141, 115, 143, 144, 126, 138, 125, 150, 133, 139, 143, 135, 140, 134, 147, 136, 144, 134, 122, 130, 141, 136, 141, 147, 129, 132, 131, 146, 130, 139, 125, 129, 135, 149, 133, 122, 141, 145, 126, 146, 145, 140, 133, 139, 139, 149, 139, 135, 134, 130, 150, 144, 142, 129, 141, 137, 143, 123, 153, 142, 130, 125, 146, 154, 144, 145, 137, 140, 141, 138, 122, 146, 135, 126, 142, 132, 127, 138, 142, 134, 131, 139, 132, 121, 121, 138, 146, 138, 130, 133, 141, 132, 127, 153, 129, 140, 126, 137, 129, 133, 134, 146, 141, 135, 127, 145, 138, 132, 133, 129, 141, 123, 139, 132, 153, 140, 140, 149, 154, 134, 132, 110, 143, 133, 139, 125, 129, 160, 134, 137, 148, 132, 133, 131, 140, 128, 132, 127, 128, 134, 139, 144, 136, 139, 123, 126, 138, 136, 129, 130, 134, 152, 139, 143, 142, 136, 132, 131, 140, 111, 124, 141, 150, 135, 158, 156, 140, 143, 137, 144, 108, 131, 142, 143, 139, 148, 132, 146, 131, 132, 133, 144, 133, 120, 156, 136, 129, 134, 140, 141, 144, 121, 143, 127, 131, 113, 146, 142, 135, 125, 138, 127, 129, 129, 133, 132, 129, 150, 140, 126, 142, 136, 134, 141, 126, 142, 144, 145, 127, 130, 147, 136, 133, 116, 139, 129, 146, 139, 132, 131, 138, 126, 128, 132, 126, 137, 133, 144, 134, 150, 141, 131, 135, 138, 144, 139, 142, 140, 133, 135, 141, 132, 143, 141, 131, 134, 131, 133, 134, 138, 136, 136, 127, 135, 140, 113, 139, 127, 158, 147, 122, 136, 138, 142, 136, 138, 137, 148, 148, 138, 130, 149, 134, 145, 140, 125, 137, 126, 133, 135, 137, 128, 131, 141, 141, 136, 129, 145, 136, 145, 140, 130, 135, 134, 145, 136, 139, 140, 135, 135, 124, 126, 132, 131, 119, 143, 123, 140, 126, 133, 145, 141, 139, 144, 140, 132, 143, 136, 127, 116, 142, 142, 134, 138, 125, 139, 133, 135, 136, 117, 142, 140, 146, 134, 135, 125, 135, 144, 131, 138, 134, 155, 148, 128, 131, 128, 131, 142, 139, 134, 129, 133, 128, 127, 127, 126, 107, 134, 137, 147, 141, 132, 134, 146, 136, 125, 119, 141, 136, 133, 139, 159, 125, 131, 119, 138, 131, 143, 131, 121, 140, 150, 135, 149, 129, 137, 139, 116, 136, 148, 137, 132, 140, 135, 136, 136, 138, 133, 135, 142, 125, 136, 127, 119, 125, 144, 133, 137, 129, 140, 139, 135, 135, 160, 133, 121, 130, 133, 125, 135, 134, 134, 135, 112, 136, 143, 152, 120, 128, 133, 137, 133, 145, 130, 138, 134, 138, 146, 137, 131, 127, 151, 149, 129, 130, 129, 136, 156, 132, 116, 130, 157, 122, 141, 149, 130, 126, 126, 120, 131, 140, 145, 127, 147, 135, 126, 137, 141, 125, 136, 138, 119, 163, 118, 135, 140, 135, 138, 134, 137, 140, 131, 145, 132, 140, 144, 140, 128, 133, 136, 120, 139, 129, 126, 142, 153, 143, 135, 136, 138, 126, 133, 125, 138, 144, 130, 134, 142, 133, 142, 137, 146, 152, 140, 129, 120, 143, 107, 142, 131, 132, 138, 138, 134, 133, 134, 144, 139, 125, 134, 133, 136, 192, 155, 136, 136, 132, 139, 133, 127, 138, 118, 140, 130, 148, 138, 135, 141, 132, 138, 135, 127, 133, 146, 148, 142, 132, 132, 144, 133, 136, 147, 136, 141, 134, 126, 173, 129, 145, 142, 134, 124, 142, 122, 142, 120, 141, 124, 139, 124, 137, 147, 147, 135, 138, 161, 145, 128, 94, 154, 150, 133, 133, 133, 138, 120, 150, 151, 131, 132, 139, 130, 133, 143, 128, 133, 156, 144, 125, 132, 108, 152, 141, 143, 133, 129, 135, 142, 134, 131, 143, 129, 139, 145, 133, 128, 141, 139, 140, 136, 147, 129, 125, 131, 129, 125, 143, 129, 127, 135, 135, 135, 153, 130, 138, 133, 131, 127, 114, 148, 134, 134, 146, 132, 132, 133, 140, 151, 142, 130, 131, 156, 142, 147, 120, 155, 137, 136, 135, 139, 148, 147, 129, 147, 134, 130, 140, 140, 138, 124, 141, 133, 143, 130, 145, 140, 133, 134, 146, 136, 142, 136, 127, 142, 140, 146, 119, 138, 129, 136, 135, 139, 141, 149, 140, 131, 142, 142, 143, 144, 128, 126, 148, 147, 148, 135, 130, 124, 129, 131, 141, 141, 139, 138, 130, 141, 129, 135, 128, 135, 137, 134, 132, 132, 124, 148, 115, 139, 123, 135, 123, 129, 124, 116, 158, 143, 122, 132, 130, 143, 129, 124, 134, 127, 132, 125, 133, 137, 131, 146, 153, 126, 131, 143, 148, 135, 133, 152, 140, 126, 134, 122, 143, 127, 144, 131, 136, 131, 138, 136, 140, 143, 141, 141, 144, 132, 134, 139, 142, 100, 123, 140, 137, 141, 142, 136, 133, 134, 142, 131, 140, 120, 134, 139, 143, 135, 132, 129, 148, 143, 134, 145, 156, 131, 132, 131, 140, 127, 149, 129, 139, 130, 135, 126, 138, 145, 129, 139, 122, 136, 123, 119, 134, 135, 135, 132, 139, 134, 115, 134, 138, 134, 146, 132, 138, 138, 129, 137, 132, 134, 132, 137, 136, 131, 124, 124, 143, 139, 139, 136, 130, 134, 136, 136, 142, 139, 129, 139, 121, 138, 144, 125, 140, 129, 145, 128, 139, 138, 148, 131, 143, 137, 126, 131, 126, 143, 136, 134, 134, 137, 120, 142, 136, 126, 134, 139, 130, 128, 130, 139, 125, 139, 124, 132, 142, 141, 141, 134, 143, 135, 131, 137, 139, 142, 148, 135, 137, 128, 137, 137, 133, 132, 129, 130, 133, 133, 162, 142, 135, 148, 134, 129, 139, 128, 148, 152, 132, 124, 131, 101, 162, 134, 132, 144, 136, 125, 115, 145, 136, 158, 129, 109, 140, 145, 132, 142, 134, 143, 127, 138, 137, 134, 138, 118, 137, 147, 126, 124, 154, 135, 129, 135, 137, 120, 135, 133, 136, 136, 132, 116, 131, 131, 141, 131, 119, 125, 152, 144, 145, 136, 152, 135, 137, 128, 135, 131, 134, 129, 146, 128, 136, 151, 149, 133, 129, 144, 125, 117, 120, 128, 130, 225, 125, 122, 135, 138, 146, 142, 125, 141, 139, 134, 140, 123, 122, 130, 142, 122, 136, 133, 123, 147, 139, 114, 137, 126, 143, 138, 140, 136, 146, 129, 140, 128, 141, 124, 138, 137, 126, 146, 135, 146, 126, 125, 134, 110, 126, 145, 139, 125, 118, 138, 120, 132, 140, 138, 137, 162, 127, 120, 143, 131, 135, 131, 132, 125, 154, 136, 136, 150, 145, 143, 128, 135, 123, 131, 120, 135, 138, 133, 143, 129, 137, 129, 147, 128, 139, 124, 130, 121, 140, 135, 132, 131, 137, 128, 130, 100, 108, 137, 132, 118, 135, 132, 131, 148, 133, 148, 138, 137, 142, 130, 127, 139, 120, 133, 130, 139, 147, 137, 131, 118, 134, 114, 131, 133, 143, 139, 138, 137, 132, 141, 153, 139, 140, 144, 145, 132, 138, 129, 138, 131, 137, 148, 136, 115, 139, 124, 130, 166, 154, 141, 120, 128, 124, 132, 130, 141, 123, 148, 141, 142, 129, 138, 135, 138, 137, 139, 158, 136, 155, 135, 124, 125, 125, 116, 143, 132, 150, 131, 126, 138, 142, 135, 130, 112, 131, 140, 165, 139, 151, 138, 131, 130, 129, 132, 147, 133, 147, 122, 173, 138, 151, 123, 131, 138, 144, 100, 134, 139, 130, 155, 133, 105, 130, 149, 150, 130, 133, 144, 131, 132, 136, 117, 136, 184, 158, 125, 135, 129, 145, 134, 145, 124, 138, 133, 146, 134, 142, 161, 131, 125, 149, 206, 132, 117, 131, 140, 139, 119, 148, 133, 124, 127, 128, 144, 139, 130, 144, 137, 137, 136, 140, 132, 134, 106, 139, 131, 128, 133, 140, 128, 147, 128, 136, 127, 130, 138, 136, 138, 141, 135, 127, 139, 137, 129, 136, 132, 133, 133, 136, 126, 128, 121, 132, 141, 130, 151, 138, 127, 135, 106, 137, 145, 130, 139, 146, 137, 150, 123, 86, 159, 130, 133, 138, 135, 138, 118, 124, 164, 138, 143, 134, 131, 134, 138, 142, 132, 137, 145, 140, 149, 132, 133, 134, 129, 143, 161, 134, 138, 143, 142, 126, 135, 139, 127, 135, 129, 131, 135, 173, 140, 144, 158, 149, 137, 125, 137, 132, 130, 138, 136, 130, 148, 126, 135, 144, 125, 143, 138, 125, 134, 139, 137, 150, 133, 142, 140, 134, 146, 135, 144, 141, 136, 133, 177, 140, 114, 132, 115, 131, 131, 100, 132, 152, 144, 112, 135, 132, 135, 151, 120, 141, 99, 131, 127, 130, 108, 136, 137, 140, 133, 138, 141, 134, 138, 134, 128, 131, 136, 133, 137, 120, 146, 131, 131, 140, 130, 151, 140, 138, 129, 145, 125, 138, 141, 152, 134, 144, 135, 104, 129, 121, 132, 140, 130, 138, 145, 145, 131, 129, 124, 146, 119, 133, 142, 115, 136, 140, 125, 141, 125, 127, 134, 139, 108, 136, 125, 156, 128, 139, 96, 132, 138, 139, 133, 142, 130, 151, 141, 143, 126, 119, 125, 149, 136, 193, 144, 144, 131, 131, 143, 144, 134, 146, 135, 136, 132, 132, 137, 138, 133, 138, 142, 128, 136, 130, 150, 150, 142, 140, 148, 122, 135, 134, 141, 133, 132, 133, 152, 129, 125, 131, 147, 135, 134, 159, 101, 138, 139, 154, 122, 133, 136, 129, 159, 146, 143, 128, 143, 130, 128, 131, 141, 142, 158, 125, 145, 125, 145, 117, 135, 131, 138, 136, 142, 135, 139, 144, 155, 144, 144, 141, 131, 129, 125, 134, 123, 112, 143, 141, 124, 137, 123, 138, 133, 121, 164, 124, 109, 135, 120, 120, 142, 151, 140, 141, 131, 147, 129, 128, 140, 123, 128, 132, 119, 150, 134, 152, 139, 153, 149, 133, 148, 129, 86, 129, 123, 147, 137, 133, 146, 117, 137, 144, 136, 126, 140, 114, 166, 125, 136, 148, 128, 133, 131, 140, 158, 133, 120, 136, 139, 144, 141, 124, 135, 147, 137, 133, 130, 127, 129, 142, 126, 134, 130, 130, 121, 139, 141, 152, 168, 113, 136, 115, 146, 133, 166, 129, 143, 164, 138, 150, 137, 141, 117, 147, 166, 120, 146, 111, 140, 127, 142, 129, 132, 119, 140, 151, 136, 134, 132, 131, 117, 143, 142, 125, 129, 133, 128, 125, 122, 130, 144, 124, 138, 152, 130, 165, 140, 138, 155, 117, 135, 124, 139, 144, 133, 131, 140, 147, 145, 138, 163, 130, 131, 124, 140, 131, 135, 127, 150, 166, 127, 126, 143, 140, 137, 133, 131, 140, 138, 131, 137, 117, 130, 143, 129, 139, 158, 123, 134, 143, 134, 135, 141, 139, 128, 141, 137, 132, 120, 124, 133, 142, 134, 150, 131, 120, 139, 148, 123, 149, 168, 138, 139, 137, 143, 140, 147, 126, 144, 148, 135, 126, 130, 123, 117, 132, 152, 140, 122, 138, 134, 152, 140, 121, 138, 135, 127, 143, 134, 133, 155, 131, 146, 139, 156, 142, 132, 145, 134, 144, 150, 134, 140, 146, 133, 160, 131, 137, 135, 132, 131, 132, 144, 128, 122, 148, 126, 146, 137, 137, 122, 135, 134, 134, 135, 147, 136, 126, 138, 135, 142, 138, 138, 139, 141, 146, 142, 147, 138, 131, 151, 128, 124, 138, 133, 124, 137, 125, 123, 145, 163, 133, 133, 153, 138, 131, 128, 145, 139, 124, 135, 148, 132, 124, 135, 140, 138, 131, 144, 169, 135, 169, 141, 130, 123, 138, 142, 127, 128, 121, 144, 147, 121, 137, 143, 167, 139, 125, 124, 140, 130, 130, 140, 129, 143, 137, 149, 152, 138, 138, 144, 143, 130, 124, 125, 151, 139, 126, 135, 150, 149, 126, 128, 117, 147, 143, 133, 120, 134, 126, 132, 130, 148, 120, 128, 129, 110, 119, 150, 131, 139, 140, 143, 125, 132, 110, 145, 131, 130, 136, 130, 139, 139, 133, 135, 133, 134, 132, 153, 137, 123, 143, 128, 131, 139, 128, 110, 134, 137, 129, 137, 134, 143, 148, 135, 140, 124, 135, 137, 109, 133, 129, 125, 138, 124, 133, 143, 133, 118, 149, 135, 136, 133, 123, 124, 151, 122, 163, 143, 141, 129, 136, 115, 149, 142, 146, 141, 132, 123, 134, 129, 122, 115, 129, 126, 149, 135, 136, 134, 126, 155, 136, 135, 146, 123, 147, 129, 124, 153, 134, 127, 137, 128, 119, 135, 137, 148, 144, 111, 131, 150, 122, 166, 126, 135, 135, 152, 133, 125, 115, 145, 121, 125, 136, 134, 121, 150, 122, 138, 134, 143, 139, 132, 136, 131, 139, 141, 132, 133, 137, 138, 139, 134, 141, 138, 136, 133, 129, 127, 130, 156, 132, 135, 141, 136, 144, 143, 155, 137, 134, 142, 135, 143, 129, 130, 142, 136, 139, 146, 134, 157, 156, 135, 127, 128, 131, 138, 138, 148, 141, 132, 141, 137, 135, 129, 131, 152, 166, 137, 138, 140, 138, 134, 131, 135, 144, 131, 148, 132, 133, 139, 143, 132, 113, 140, 136, 142, 143, 128, 158, 142, 130, 127, 139, 143, 149, 136, 148, 135, 140, 131, 142, 135, 145, 135, 133, 134, 152, 143, 125, 130, 130, 134, 142, 138, 139, 134, 145, 132, 130, 139, 136, 132, 141, 139, 133, 134, 132, 140, 113, 129, 130, 122, 136, 133, 137, 123, 131, 136, 138, 133, 127, 141, 143, 135, 140, 133, 131, 132, 135, 147, 139, 142, 135, 134, 138, 132, 133, 129, 132, 117, 144, 143, 139, 133, 156, 133, 140, 130, 138, 146, 133, 127, 138, 126, 126, 134, 142, 139, 129, 138, 136, 132, 138, 139, 131, 128, 158, 128, 135, 128, 138, 119, 136, 137, 132, 134, 127, 139, 174, 124, 119, 140, 140, 132, 131, 129, 126, 140, 126, 138, 130, 146, 139, 133, 136, 134, 127, 127, 139, 129, 141, 105, 128, 139, 101, 139, 130, 142, 130, 136, 153, 139, 132, 131, 138, 132, 135, 147, 132, 131, 140, 148, 139, 149, 145, 132, 129, 132, 138, 139, 132, 124, 135, 141, 137, 132, 144, 143, 143, 125, 143, 132, 143, 137, 156, 133, 130, 141, 139, 141, 132, 137, 136, 138, 151, 131, 133, 126, 134, 130, 126, 128, 131, 130, 138, 138, 153, 139, 144, 136, 139, 135, 129, 142, 132, 135, 137, 129, 133, 134, 134, 131, 97, 142, 132, 131, 156, 132, 113, 133, 138, 140, 130, 142, 134, 133, 121, 129, 135, 141, 131, 135, 142, 136, 132, 125, 126, 137, 142, 131, 138, 136, 125, 139, 134, 141, 131, 124, 134, 141, 139, 141, 133, 138, 133, 145, 140, 138, 135, 141, 134, 131, 114, 132, 139, 129, 134, 133, 140, 144, 136, 135, 143, 136, 152, 135, 135, 141, 134, 144, 142, 136, 139, 134, 134, 130, 138, 140, 138, 131, 136, 145, 141, 139, 115, 142, 146, 139, 144, 125, 128, 135, 127, 128, 143, 132, 138, 132, 137, 144, 131, 127, 139, 140, 136, 146, 127, 135, 135, 137, 123, 139, 136, 134, 118, 135, 133, 130, 148, 130, 133, 146, 139, 120, 134, 128, 140, 141, 132, 141, 171, 143, 137, 134, 132, 131, 135, 138, 137, 137, 136, 140, 160, 142, 146, 133, 125, 140, 132, 138, 166, 137, 145, 113, 168, 128, 128, 141, 132, 138, 138, 131, 147, 126, 141, 143, 138, 137, 128, 139, 131, 127, 137, 142, 146, 139, 141, 131, 151, 139, 123, 135, 141, 135, 135, 114, 151, 133, 130, 135, 130, 130, 135, 137, 141, 147, 137, 129, 131, 125, 137, 132, 138, 133, 133, 134, 134, 143, 150, 128, 142, 141, 122, 141, 112, 137, 128, 144, 128, 135, 137, 131, 128, 125, 137, 139, 129, 134, 140, 143, 133, 132, 123, 138, 138, 134, 140, 138, 139, 133, 125, 135, 134, 141, 131, 131, 145, 141, 134, 136, 127, 156, 144, 137, 143, 145, 133, 140, 123, 140, 130, 127, 129, 139, 146, 141, 124, 116, 143, 134, 152, 126, 145, 151, 132, 126, 123, 142, 124, 125, 127, 128, 125, 140, 138, 142, 164, 122, 155, 129, 131, 131, 139, 131, 131, 144, 133, 142, 104, 142, 136, 139, 136, 128, 147, 126, 138, 127, 115, 124, 141, 123, 147, 140, 134, 129, 133, 146, 133, 125, 143, 129, 141, 131, 125, 132, 131, 124, 144, 138, 137, 132, 105, 130, 138, 150, 136, 116, 158, 124, 116, 129, 132, 154, 139, 141, 142, 135, 144, 143, 134, 135, 163, 149, 139, 132, 131, 134, 152, 130, 135, 136, 134, 138, 132, 141, 124, 124, 138, 154, 137, 120, 120, 136, 140, 118, 138, 122, 128, 137, 142, 124, 130, 137, 135, 151, 143, 128, 126, 145, 135, 129, 126, 130, 128, 130, 134, 138, 138, 132, 147, 133, 122, 126, 136, 134, 139, 127, 135, 144, 135, 126, 130, 138, 119, 131, 137, 130, 136, 144, 136, 139, 137, 145, 137, 135, 127, 133, 133, 135, 129, 132, 135, 122, 147, 137, 121, 118, 148, 140, 150, 127, 139, 149, 137, 136, 145, 124, 142, 157, 134, 140, 146, 125, 121, 132, 141, 143, 141, 130, 121, 133, 123, 142, 162, 137, 149, 132, 129, 140, 137, 138, 149, 146, 141, 140, 127, 155, 145, 136, 147, 134, 121, 151, 141, 137, 133, 129, 136, 137, 145, 128, 130, 125, 141, 150, 130, 123, 149, 116, 134, 143, 118, 145, 137, 164, 129, 141, 137, 130, 138, 137, 157, 123, 133, 137, 149, 128, 123, 122, 149, 126, 152, 135, 142, 135, 155, 127, 137, 135, 138, 127, 130, 148, 135, 134, 125, 139, 129, 154, 135, 133, 122, 137, 113, 129, 139, 127, 130, 128, 139, 140, 142, 130, 136, 131, 132, 162, 132, 123, 147, 117, 124, 142, 127, 142, 143, 127, 154, 129, 121, 149, 119, 129, 130, 137, 130, 129, 128, 125, 133, 134, 146, 159, 132, 141, 148, 148, 134, 128, 124, 124, 159, 136, 135, 131, 131, 136, 134, 129, 134, 130, 134, 137, 138, 139, 140, 134, 136, 147, 138, 135, 130, 148, 137, 144, 127, 131, 117, 147, 128, 156, 131, 133, 134, 142, 135, 129, 130, 141, 128, 131, 134, 119, 139, 136, 118, 136, 148, 160, 133, 142, 129, 125, 115, 134, 142, 132, 129, 142, 123, 144, 140, 140, 138, 113, 135, 136, 136, 128, 129, 147, 155, 130, 135, 141, 120, 138, 139, 147, 141, 133, 130, 132, 119, 122, 132, 147, 137, 133, 129, 132, 131, 136, 124, 132, 134, 142, 154, 146, 142, 141, 125, 134, 137, 137, 155, 128, 133, 152, 145, 124, 123, 135, 135, 133, 159, 133, 139, 144, 120, 125, 127, 134, 133, 129, 144, 131, 137, 145, 133, 125, 138, 130, 130, 134, 127, 133, 123, 128, 123, 107, 134, 129, 135, 119, 141, 143, 109, 131, 139, 145, 146, 143, 130, 126, 138, 159, 130, 147, 130, 140, 148, 113, 148, 133, 140, 134, 132, 140, 156, 129, 132, 137, 153, 134, 144, 136, 131, 131, 141, 137, 137, 129, 135, 125, 142, 138, 133, 128, 141, 137, 125, 145, 134, 145, 122, 143, 129, 130, 128, 142, 127, 142, 161, 137, 128, 140, 138, 140, 145, 138, 144, 136, 130, 133, 129, 134, 141, 127, 137, 130, 117, 122, 146, 133, 163, 142, 139, 130, 136, 147, 142, 128, 117, 141, 129, 140, 115, 122, 150, 138, 142, 145, 136, 156, 134, 141, 151, 140, 129, 137, 142, 148, 125, 142, 124, 132, 130, 144, 131, 138, 121, 136, 118, 137, 121, 137, 139, 140, 140, 137, 136, 135, 144, 149, 140, 156, 146, 116, 148, 133, 129, 130, 133, 143, 125, 112, 143, 143, 120, 114, 129, 139, 146, 143, 152, 147, 139, 131, 142, 134, 122, 124, 129, 138, 136, 141, 158, 128, 135, 140, 115, 137, 125, 134, 125, 139, 124, 110, 135, 138, 135, 128, 133, 119, 125, 138, 133, 164, 122, 139, 138, 145, 159, 142, 137, 123, 129, 136, 131, 133, 141, 128, 130, 153, 139, 140, 149, 143, 147, 137, 137, 127, 132, 134, 134, 139, 141, 131, 128, 136, 121, 152, 142, 140, 132, 122, 132, 134, 136, 115, 137, 139, 151, 133, 144, 146, 135, 125, 135, 127, 139, 133, 139, 135, 140, 130, 131, 134, 150, 132, 140, 149, 139, 134, 123, 159, 151, 150, 134, 143, 136, 123, 135, 149, 143, 123, 140, 117, 125, 130, 125, 149, 145, 137, 145, 135, 134, 143, 132, 130, 147, 129, 152, 119, 138, 144, 143, 146, 126, 115, 141, 134, 128, 140, 138, 137, 133, 128, 128, 123, 135, 129, 121, 142, 144, 149, 129, 147, 149, 140, 147, 149, 132, 139, 156, 134, 136, 139, 141, 146, 149, 142, 134, 131, 142, 121, 126, 143, 154, 157, 130, 140, 144, 128, 134, 143, 126, 137, 134, 118, 150, 139, 157, 140, 141, 136, 146, 128, 154, 125, 141, 141, 136, 131, 154, 141, 137, 135, 130, 137, 129, 127, 135, 128, 130, 143, 133, 129, 143, 109, 135, 138, 151, 121, 133, 134, 135, 143, 127, 119, 149, 133, 149, 135, 129, 135, 144, 129, 153, 136, 146, 133, 128, 129, 146, 150, 133, 144, 133, 152, 134, 136, 129, 128, 136, 134, 137, 129, 134, 133, 134, 127, 141, 128, 135, 136, 135, 131, 123, 143, 171, 121, 137, 110, 142, 147, 134, 135, 146, 124, 134, 131, 143, 147, 135, 115, 144, 122, 144, 118, 120, 121, 135, 121, 144, 143, 142, 149, 137, 141, 161, 142, 130, 134, 133, 135, 123, 132, 124, 134, 130, 148, 110, 127, 137, 152, 152, 139, 145, 134, 138, 161, 126, 136, 123, 135, 143, 138, 142, 140, 150, 116, 123, 136, 140, 82, 123, 137, 136, 126, 130, 135, 136, 117, 135, 121, 120, 121, 125, 121, 129, 147, 141, 125, 107, 131, 142, 153, 141, 117, 132, 153, 129, 133, 143, 127, 124, 120, 143, 123, 146, 130, 133, 142, 144, 141, 139, 132, 140, 132, 121, 141, 129, 128, 145, 145, 140, 142, 151, 135, 142, 141, 142, 132, 136, 130, 138, 142, 135, 141, 144, 142, 132, 125, 139, 122, 134, 139, 128, 146, 141, 135, 149, 133, 141, 133, 142, 139, 143, 140, 113, 155, 134, 113, 144, 134, 131, 129, 104, 132, 139, 136, 133, 134, 139, 157, 121, 131, 136, 127, 120, 132, 156, 124, 128, 130, 136, 132, 118, 136, 145, 155, 132, 142, 137, 136, 112, 148, 129, 121, 140, 130, 143, 129, 137, 139, 141, 110, 131, 159, 137, 137, 137, 120, 123, 133, 122, 137, 130, 140, 133, 137, 129, 151, 126, 132, 126, 135, 123, 145, 132, 140, 142, 144, 134, 141, 147, 139, 128, 141, 132, 123, 143, 120, 129, 135, 149, 147, 132, 140, 123, 138, 130, 135, 133, 132, 140, 129, 162, 130, 135, 140, 137, 139, 145, 136, 147, 140, 141, 143, 141, 139, 130, 130, 138, 133, 134, 141, 136, 133, 138, 140, 131, 133, 145, 144, 133, 138, 154, 137, 137, 144, 136, 137, 127, 125, 139, 145, 138, 144, 127, 129, 140, 122, 138, 148, 133, 135, 129, 137, 142, 155, 132, 139, 126, 148, 142, 132, 132, 136, 130, 139, 135, 133, 110, 132, 153, 141, 153, 146, 137, 123, 130, 140, 140, 134, 126, 136, 131, 138, 135, 137, 130, 128, 126, 141, 131, 135, 155, 129, 130, 155, 136, 158, 140, 144, 153, 136, 128, 137, 145, 144, 128, 121, 138, 132, 121, 136, 130, 137, 132, 132, 131, 164, 133, 143, 132, 131, 134, 147, 153, 136, 132, 130, 120, 136, 135, 141, 128, 144, 135, 132, 133, 126, 148, 142, 136, 116, 136, 137, 121, 171, 148, 137, 135, 133, 142, 146, 112, 135, 131, 134, 124, 127, 147, 152, 128, 137, 123, 142, 130, 153, 135, 129, 150, 129, 120, 133, 148, 120, 136, 121, 132, 131, 140, 143, 145, 132, 141, 126, 149, 139, 134, 135, 118, 117, 115, 134, 138, 133, 140, 161, 147, 136, 135, 131, 145, 135, 127, 137, 136, 122, 136, 135, 130, 142, 131, 152, 132, 147, 132, 141, 151, 122, 146, 138, 138, 137, 124, 133, 135, 134, 141, 137, 150, 116, 139, 143, 127, 115, 129, 119, 134, 135, 152, 126, 122, 118, 130, 144, 130, 132, 144, 130, 135, 136, 128, 128, 129, 129, 130, 133, 137, 138, 141, 132, 137, 156, 125, 127, 130, 133, 153, 118, 128, 144, 132, 140, 132, 158, 133, 148, 117, 131, 150, 135, 142, 133, 136, 140, 126, 123, 132, 148, 124, 133, 133, 128, 137, 135, 132, 137, 130, 130, 141, 134, 130, 137, 128, 134, 142, 136, 146, 126, 147, 123, 133, 135, 131, 135, 151, 132, 134, 132, 145, 122, 135, 138, 142, 138, 140, 144, 138, 120, 141, 128, 136, 137, 110, 133, 125, 125, 140, 141, 146, 119, 144, 147, 144, 135, 135, 136, 128, 171, 141, 144, 125, 143, 128, 130, 136, 146, 147, 136, 121, 133, 133, 128, 138, 136, 130, 133, 127, 133, 142, 148, 140, 149, 127, 122, 141, 131, 124, 135, 125, 141, 128, 131, 132, 127, 136, 147, 138, 131, 123, 137, 146, 132, 139, 139, 135, 136, 135, 133, 146, 135, 138, 142, 136, 130, 133, 148, 129, 140, 134, 133, 135, 133, 132, 137, 140, 148, 124, 147, 126, 132, 136, 128, 151, 121, 133, 135, 133, 132, 127, 134, 124, 139, 129, 135, 150, 139, 157, 133, 141, 129, 147, 143, 116, 141, 132, 128, 139, 149, 128, 148, 158, 138, 143, 135, 136, 120, 144, 137, 139, 131, 151, 128, 141, 138, 136, 133, 132, 139, 128, 133, 132, 132, 120, 136, 135, 141, 142, 135, 139, 139, 131, 133, 131, 132, 136, 135, 137, 143, 144, 134, 129, 119, 136, 122, 140, 154, 125, 128, 136, 159, 131, 135, 138, 145, 135, 140, 140, 125, 142, 133, 145, 134, 139, 151, 137, 130, 132, 132, 138, 140, 141, 141, 132, 135, 124, 139, 122, 140, 132, 143, 126, 126, 140, 137, 132, 139, 130, 133, 124, 140, 139, 134, 127, 137, 127, 130, 144, 133, 145, 128, 134, 139, 134, 138, 139, 137, 147, 136, 136, 133, 121, 130, 137, 134, 133, 131, 127, 143, 139, 132, 138, 154, 142, 137, 132, 172, 126, 149, 150, 135, 139, 134, 125, 133, 136, 131, 140, 143, 126, 129, 121, 141, 138, 150, 139, 129, 133, 141, 130, 135, 140, 126, 146, 133, 140, 135, 140, 136, 146, 130, 144, 134, 142, 134, 136, 135, 120, 133, 132, 129, 126, 122, 133, 130, 118, 140, 134, 142, 131, 144, 142, 145, 140, 133, 138, 133, 141, 140, 131, 136, 128, 136, 135, 137, 134, 146, 149, 136, 133, 145, 148, 125, 138, 141, 145, 141, 149, 135, 135, 146, 132, 136, 134, 142, 144, 146, 129, 143, 138, 149, 158, 133, 134, 142, 142, 134, 144, 131, 153, 128, 136, 127, 124, 153, 132, 139, 142, 141, 137, 122, 137, 139, 132, 132, 128, 119, 157, 145, 127, 141, 135, 143, 131, 151, 132, 148, 132, 131, 134, 138, 135, 128, 125, 118, 136, 136, 127, 127, 136, 125, 140, 134, 133, 130, 149, 132, 132, 133, 130, 126, 141, 142, 138, 144, 134, 147, 127, 128, 130, 139, 131, 137, 138, 141, 128, 132, 163, 133, 134, 136, 129, 160, 136, 138, 127, 136, 134, 129, 139, 126, 130, 133, 134, 141, 132, 136, 135, 126, 123, 131, 137, 126, 127, 126, 126, 127, 149, 136, 132, 142, 138, 132, 131, 140, 132, 136, 139, 140, 142, 146, 149, 130, 132, 143, 125, 139, 142, 145, 135, 138, 128, 157, 129, 141, 134, 137, 138, 137, 144, 129, 136, 131, 145, 135, 125, 141, 137, 139, 126, 140, 151, 127, 134, 145, 126, 134, 165, 138, 138, 131, 153, 131, 128, 146, 130, 140, 120, 131, 135, 131, 149, 128, 147, 149, 128, 137, 140, 148, 137, 143, 147, 138, 133, 131, 126, 139, 134, 142, 136, 128, 134, 148, 142, 131, 130, 111, 132, 126, 138, 135, 125, 157, 134, 123, 144, 139, 137, 120, 121, 133, 140, 129, 135, 148, 138, 125, 134, 134, 135, 138, 138, 125, 137, 151, 135, 139, 124, 139, 131, 130, 131, 134, 137, 146, 131, 128, 139, 150, 141, 140, 138, 130, 138, 130, 149, 133, 133, 143, 139, 126, 130, 145, 130, 132, 148, 144, 137, 125, 151, 143, 125, 149, 134, 136, 131, 137, 153, 140, 138, 135, 130, 138, 135, 134, 132, 136, 148, 137, 173, 128, 93, 134, 141, 134, 118, 124, 137, 139, 132, 147, 148, 143, 147, 147, 153, 144, 134, 143, 135, 137, 139, 140, 130, 133, 130, 124, 127, 137, 134, 141, 137, 129, 136, 125, 130, 142, 136, 143, 129, 125, 135, 122, 132, 135, 132, 116, 143, 138, 117, 138, 130, 150, 127, 137, 161, 125, 146, 141, 134, 127, 134, 135, 136, 148, 146, 131, 132, 115, 153, 135, 134, 142, 134, 141, 143, 140, 132, 130, 129, 139, 136, 133, 138, 124, 121, 144, 142, 140, 135, 141, 137, 133, 132, 145, 139, 128, 142, 128, 143, 133, 151, 131, 129, 124, 125, 141, 131, 128, 137, 149, 145, 124, 127, 148, 132, 140, 122, 136, 135, 134, 148, 130, 132, 137, 139, 124, 140, 133, 132, 112, 141, 132, 131, 124, 138, 135, 141, 144, 127, 135, 130, 134, 135, 130, 130, 122, 136, 139, 140, 134, 132, 132, 123, 119, 151, 117, 132, 150, 157, 152, 142, 132, 136, 146, 141, 134, 136, 136, 115, 150, 143, 136, 122, 131, 121, 122, 128, 139, 132, 143, 143, 142, 139, 137, 136, 131, 131, 151, 118, 127, 128, 135, 144, 128, 131, 140, 134, 139, 144, 121, 142, 158, 100, 148, 151, 171, 146, 131, 144, 129, 121, 142, 146, 131, 138, 121, 125, 135, 149, 123, 138, 138, 136, 162, 129, 136, 138, 140, 156, 143, 139, 139, 145, 115, 131, 146, 155, 130, 138, 129, 148, 155, 138, 132, 156, 123, 144, 145, 138, 139, 126, 141, 152, 141, 125, 133, 149, 159, 134, 130, 134, 159, 135, 141, 143, 142, 134, 147, 147, 129, 144, 145, 130, 138, 142, 130, 138, 136, 126, 122, 151, 136, 136, 143, 136, 147, 131, 136, 138, 137, 128, 130, 152, 130, 137, 137, 142, 140, 134, 127, 129, 128, 127, 123, 130, 134, 139, 132, 129, 141, 147, 124, 137, 139, 132, 132, 125, 132, 120, 132, 130, 144, 139, 123, 129, 141, 137, 139, 124, 112, 147, 146, 131, 122, 146, 150, 134, 133, 146, 149, 141, 138, 129, 140, 138, 136, 145, 139, 133, 137, 132, 127, 141, 148, 132, 115, 106, 142, 123, 118, 144, 144, 150, 129, 136, 122, 120, 145, 125, 140, 136, 133, 142, 144, 146, 140, 135, 137, 129, 142, 136, 141, 127, 130, 136, 140, 139, 135, 132, 133, 137, 132, 130, 133, 134, 137, 118, 135, 130, 131, 148, 119, 155, 141, 147, 126, 131, 124, 142, 138, 157, 135, 148, 142, 128, 140, 108, 132, 127, 130, 152, 143, 147, 139, 148, 122, 139, 130, 131, 154, 140, 129, 142, 133, 123, 125, 130, 134, 139, 131, 125, 144, 136, 126, 131, 132, 149, 135, 142, 135, 126, 126, 123, 112, 136, 128, 136, 128, 143, 128, 142, 135, 144, 141, 136, 132, 149, 136, 150, 139, 151, 139, 124, 133, 128, 140, 135, 144, 131, 137, 133, 146, 139, 149, 122, 124, 117, 129, 132, 124, 149, 157, 146, 136, 123, 149, 138, 129, 122, 155, 141, 133, 128, 125, 141, 142, 129, 157, 128, 135, 146, 131, 131, 131, 122, 126, 130, 128, 118, 148, 138, 144, 132, 146, 132, 129, 142, 149, 165, 124, 142, 125, 138, 122, 124, 112, 134, 129, 128, 141, 125, 138, 134, 119, 143, 131, 140, 147, 125, 138, 136, 115, 153, 142, 130, 130, 117, 130, 131, 139, 150, 135, 142, 136, 121, 146, 138, 138, 137, 139, 128, 130, 142, 134, 135, 133, 121, 138, 141, 126, 136, 153, 131, 133, 127, 145, 141, 130, 146, 128, 131, 144, 138, 134, 140, 137, 149, 132, 132, 125, 136, 136, 129, 140, 139, 142, 125, 153, 138, 132, 141, 139, 136, 140, 138, 124, 134, 143, 158, 148, 124, 133, 133, 159, 126, 149, 122, 138, 136, 143, 139, 137, 142, 127, 132, 126, 139, 148, 143, 125, 136, 128, 147, 123, 142, 146, 148, 131, 144, 139, 138, 138, 139, 143, 146, 133, 142, 132, 143, 147, 145, 145, 125, 132, 122, 136, 139, 149, 126, 130, 131, 164, 146, 134, 147, 150, 137, 132, 136, 133, 138, 162, 127, 144, 129, 147, 133, 141, 125, 112, 140, 161, 134, 125, 140, 148, 123, 141, 142, 146, 144, 127, 141, 132, 139, 135, 122, 135, 147, 128, 129, 122, 144, 142, 119, 137, 153, 145, 125, 123, 130, 135, 120, 154, 128, 125, 143, 135, 128, 119, 147, 140, 115, 151, 141, 149, 130, 142, 121, 144, 152, 131, 135, 140, 123, 145, 127, 143, 161, 128, 145, 131, 142, 123, 146, 135, 155, 138, 151, 122, 144, 141, 117, 111, 145, 141, 135, 141, 148, 142, 144, 135, 124, 133, 127, 119, 134, 148, 137, 128, 116, 148, 139, 126, 132, 125, 131, 126, 150, 135, 108, 124, 139, 147, 128, 129, 142, 144, 158, 152, 136, 138, 132, 155, 148, 123, 140, 143, 128, 137, 129, 129, 134, 151, 121, 131, 140, 135, 153, 130, 141, 118, 134, 108, 149, 122, 142, 133, 144, 140, 166, 132, 148, 152, 123, 127, 145, 138, 147, 132, 132, 145, 139, 135, 136, 123, 138, 115, 118, 147, 145, 140, 129, 129, 124, 135, 141, 142, 163, 138, 129, 137, 135, 104, 144, 123, 136, 134, 116, 133, 162, 116, 136, 146, 141, 142, 139, 138, 103, 146, 150, 138, 139, 143, 138, 121, 133, 148, 143, 129, 132, 135, 123, 129, 125, 153, 130, 128, 120, 155, 137, 142, 147, 142, 106, 136, 137, 128, 142, 124, 125, 134, 145, 140, 132, 132, 124, 136, 129, 124, 140, 147, 134, 135, 142, 128, 154, 122, 139, 138, 133, 139, 157, 138, 138, 131, 136, 152, 159, 140, 143, 144, 144, 127, 146, 139, 128, 131, 123, 130, 134, 131, 126, 134, 142, 133, 140, 126, 140, 139, 135, 137, 133, 116, 133, 132, 133, 126, 139, 135, 156, 139, 140, 135, 137, 124, 131, 132, 140, 138, 139, 139, 138, 138, 140, 143, 134, 136, 142, 134, 143, 134, 141, 132, 131, 140, 137, 134, 142, 137, 136, 133, 120, 143, 145, 125, 133, 135, 136, 130, 151, 136, 139, 130, 133, 137, 135, 134, 147, 138, 126, 134, 135, 143, 144, 133, 152, 127, 135, 140, 137, 134, 126, 141, 133, 131, 130, 137, 132, 145, 130, 147, 139, 151, 134, 138, 136, 137, 129, 135, 136, 128, 124, 136, 138, 139, 136, 129, 138, 138, 133, 127, 143, 128, 136, 137, 130, 124, 138, 125, 131, 130, 145, 140, 138, 159, 138, 142, 133, 132, 142, 141, 130, 141, 138, 144, 136, 140, 135, 131, 145, 124, 140, 122, 134, 138, 131, 146, 132, 141, 145, 133, 132, 140, 138, 140, 145, 131, 118, 134, 130, 146, 139, 142, 130, 138, 139, 126, 135, 130, 133, 131, 138, 138, 133, 132, 131, 131, 139, 138, 134, 138, 139, 141, 147, 138, 127, 136, 132, 138, 136, 136, 144, 131, 128, 130, 139, 131, 130, 153, 141, 127, 137, 135, 137, 142, 143, 126, 143, 135, 151, 143, 132, 133, 139, 133, 142, 138, 135, 133, 134, 139, 134, 142, 149, 137, 139, 134, 116, 129, 145, 139, 136, 131, 125, 139, 138, 133, 131, 141, 133, 131, 129, 135, 121, 134, 133, 133, 145, 129, 135, 137, 138, 137, 132, 129, 132, 130, 143, 141, 143, 145, 133, 138, 127, 140, 137, 134, 126, 135, 130, 137, 137, 142, 129, 133, 133, 145, 135, 145, 134, 135, 134, 133, 135, 137, 148, 123, 119, 130, 129, 134, 133, 130, 136, 134, 137, 137, 134, 128, 124, 153, 141, 145, 136, 131, 136, 149, 135, 134, 116, 137, 144, 132, 144, 144, 140, 134, 114, 139, 141, 127, 133, 134, 136, 135, 140, 122, 138, 137, 141, 97, 128, 136, 132, 134, 133, 137, 134, 136, 138, 131, 125, 140, 132, 134, 136, 133, 140, 133, 130, 138, 141, 134, 137, 138, 131, 131, 136, 144, 136, 127, 137, 139, 142, 149, 137, 133, 138, 134, 113, 135, 133, 139, 126, 141, 122, 137, 135, 131, 137, 143, 134, 137, 138, 131, 144, 133, 139, 136, 135, 128, 127, 132, 137, 125, 140, 122, 139, 144, 124, 143, 137, 143, 134, 136, 136, 133, 140, 134, 158, 135, 123, 128, 125, 136, 123, 138, 140, 131, 142, 141, 135, 127, 160, 138, 136, 138, 148, 136, 144, 132, 143, 135, 132, 146, 156, 138, 139, 178, 139, 134, 138, 128, 138, 133, 133, 140, 143, 143, 138, 132, 140, 138, 129, 131, 128, 119, 138, 150, 149, 85, 131, 141, 124, 133, 132, 129, 137, 128, 132, 133, 136, 137, 134, 128, 138, 130, 145, 135, 135, 138, 139, 140, 126, 140, 133, 138, 137, 138, 131, 128, 127, 140, 144, 131, 145, 137, 138, 132, 129, 130, 131, 140, 137, 145, 136, 134, 126, 139, 135, 133, 133, 133, 141, 139, 125, 117, 142, 129, 142, 131, 138, 136, 130, 149, 122, 130, 142, 127, 133, 126, 139, 132, 134, 142, 138, 132, 132, 144, 144, 134, 141, 161, 135, 145, 152, 133, 150, 138, 144, 134, 128, 140, 148, 126, 141, 142, 145, 129, 130, 136, 152, 140, 155, 129, 138, 138, 142, 137, 139, 139, 127, 150, 141, 132, 129, 142, 138, 144, 137, 133, 132, 135, 120, 128, 142, 145, 127, 136, 125, 145, 134, 140, 141, 133, 139, 131, 139, 141, 125, 135, 152, 155, 138, 142, 131, 141, 125, 159, 141, 127, 147, 143, 116, 140, 126, 156, 121, 145, 145, 135, 145, 143, 139, 136, 132, 141, 131, 140, 128, 124, 122, 128, 140, 136, 145, 130, 150, 143, 126, 134, 122, 134, 136, 115, 139, 131, 137, 126, 136, 142, 141, 144, 156, 141, 137, 129, 138, 133, 130, 125, 140, 135, 142, 145, 145, 141, 136, 135, 136, 133, 133, 129, 136, 132, 131, 127, 134, 119, 131, 135, 134, 135, 135, 146, 146, 150, 146, 129, 158, 134, 141, 139, 145, 130, 135, 140, 139, 135, 126, 142, 136, 147, 136, 149, 118, 145, 138, 148, 144, 137, 135, 145, 142, 139, 141, 138, 141, 122, 140, 133, 139, 132, 136, 132, 139, 123, 144, 147, 164, 134, 137, 158, 133, 136, 138, 139, 132, 145, 140, 134, 136, 132, 141, 142, 127, 143, 130, 141, 132, 140, 138, 134, 138, 132, 166, 138, 152, 137, 143, 117, 132, 137, 157, 145, 126, 141, 127, 129, 135, 138, 135, 126, 147, 133, 132, 151, 140, 143, 146, 139, 130, 144, 136, 138, 137, 136, 144, 134, 133, 142, 132, 133, 140, 133, 134, 138, 130, 119, 129, 144, 136, 137, 130, 137, 136, 140, 138, 135, 130, 125, 134, 141, 146, 133, 129, 147, 119, 142, 138, 146, 138, 139, 148, 126, 121, 122, 138, 131, 138, 152, 128, 121, 136, 142, 133, 137, 135, 164, 146, 145, 127, 138, 136, 124, 134, 151, 131, 131, 141, 152, 140, 142, 133, 133, 133, 139, 135, 147, 131, 120, 136, 132, 132, 137, 128, 128, 150, 141, 140, 137, 151, 128, 134, 149, 153, 130, 137, 135, 142, 137, 131, 138, 140, 138, 135, 132, 142, 141, 131, 147, 147, 126, 138, 139, 150, 132, 135, 138, 122, 134, 138, 143, 128, 137, 135, 125, 139, 130, 145, 130, 130, 145, 127, 130, 124, 133, 139, 139, 132, 129, 133, 133, 129, 129, 135, 119, 152, 127, 142, 130, 138, 149, 148, 139, 136, 146, 138, 139, 140, 133, 143, 142, 143, 124, 130, 134, 113, 145, 143, 142, 125, 141, 135, 136, 144, 137, 129, 129, 141, 131, 151, 137, 137, 141, 128, 138, 133, 120, 138, 126, 137, 150, 140, 137, 127, 137, 120, 138, 131, 130, 125, 144, 134, 140, 131, 125, 128, 136, 133, 128, 128, 132, 130, 135, 146, 142, 130, 132, 149, 132, 153, 135, 130, 137, 137, 145, 118, 134, 136, 139, 125, 146, 141, 134, 124, 142, 134, 128, 136, 128, 127, 136, 144, 137, 147, 135, 134, 130, 131, 139, 140, 136, 133, 138, 131, 144, 131, 133, 133, 135, 130, 143, 131, 140, 129, 129, 139, 136, 139, 135, 131, 132, 141, 124, 130, 131, 133, 149, 119, 134, 130, 151, 137, 131, 136, 148, 136, 126, 126, 136, 141, 133, 140, 127, 130, 124, 128, 124, 130, 125, 128, 135, 128, 138, 138, 130, 126, 130, 120, 133, 132, 129, 144, 131, 147, 144, 134, 143, 141, 139, 149, 133, 133, 146, 143, 141, 134, 134, 123, 131, 137, 136, 135, 129, 134, 144, 126, 129, 125, 137, 135, 133, 149, 132, 126, 135, 142, 133, 136, 140, 127, 133, 144, 138, 142, 136, 159, 131, 127, 134, 142, 128, 137, 136, 136, 134, 146, 146, 140, 143, 136, 125, 146, 126, 124, 138, 132, 125, 137, 135, 127, 124, 134, 133, 140, 115, 136, 134, 138, 150, 142, 134, 145, 135, 140, 133, 135, 124, 139, 136, 142, 131, 133, 144, 132, 144, 128, 134, 137, 137, 139, 128, 139, 150, 140, 129, 132, 123, 126, 132, 142, 135, 134, 125, 130, 125, 134, 147, 150, 121, 135, 134, 136, 135, 128, 137, 134, 137, 140, 127, 141, 135, 134, 132, 136, 141, 141, 139, 142, 124, 132, 141, 131, 138, 142, 130, 123, 142, 129, 158, 131, 135, 143, 120, 140, 128, 138, 125, 121, 132, 131, 129, 139, 117, 144, 134, 138, 134, 143, 145, 134, 146, 133, 147, 134, 141, 120, 127, 137, 129, 125, 126, 136, 138, 130, 131, 139, 136, 130, 131, 128, 126, 124, 135, 139, 143, 137, 146, 144, 131, 128, 142, 120, 149, 139, 134, 145, 135, 134, 119, 134, 130, 138, 127, 123, 130, 130, 140, 146, 145, 138, 137, 135, 134, 146, 140, 141, 137, 142, 141, 134, 138, 139, 127, 131, 144, 138, 132, 147, 145, 131, 152, 133, 130, 135, 151, 129, 123, 137, 138, 132, 137, 132, 143, 133, 132, 134, 134, 121, 155, 134, 130, 149, 133, 128, 141, 134, 132, 139, 132, 137, 118, 127, 142, 128, 137, 136, 134, 135, 142, 134, 130, 123, 132, 139, 138, 133, 137, 133, 136, 143, 144, 142, 138, 140, 125, 137, 125, 132, 135, 138, 139, 121, 132, 132, 133, 138, 137, 137, 136, 131, 130, 133, 129, 139, 140, 144, 140, 125, 132, 131, 126, 136, 135, 134, 128, 143, 142, 130, 146, 134, 141, 136, 143, 122, 133, 129, 136, 135, 150, 126, 124, 131, 139, 132, 114, 141, 129, 137, 121, 133, 137, 133, 143, 150, 129, 132, 137, 138, 127, 135, 121, 138, 132, 142, 141, 133, 136, 128, 134, 128, 130, 140, 124, 127, 143, 142, 141, 128, 148, 137, 141, 130, 132, 132, 140, 165, 123, 169, 138, 135, 143, 143, 148, 136, 135, 149, 137, 139, 119, 149, 130, 138, 139, 140, 154, 139, 130, 134, 142, 136, 135, 135, 131, 146, 139, 124, 143, 130, 143, 133, 138, 129, 130, 132, 127, 132, 141, 136, 139, 135, 135, 132, 140, 134, 146, 130, 132, 134, 139, 131, 139, 150, 127, 137, 140, 147, 133, 128, 120, 138, 137, 137, 128, 139, 136, 131, 149, 149, 129, 150, 124, 136, 133, 123, 127, 135, 149, 142, 141, 140, 129, 134, 142, 110, 126, 138, 133, 129, 138, 134, 142, 126, 132, 125, 135, 137, 133, 131, 148, 116, 127, 130, 146, 134, 126, 119, 131, 156, 131, 129, 149, 134, 133, 148, 138, 142, 142, 130, 139, 130, 128, 131, 138, 135, 134, 123, 118, 132, 132, 132, 140, 119, 134, 136, 150, 125, 133, 143, 125, 136, 148, 132, 136, 128, 143, 142, 145, 153, 131, 146, 130, 154, 128, 143, 124, 124, 141, 148, 127, 154, 124, 136, 128, 137, 142, 149, 128, 142, 128, 139, 138, 139, 133, 131, 147, 125, 135, 140, 131, 149, 133, 138, 133, 135, 147, 145, 138, 151, 116, 134, 135, 130, 134, 158, 136, 150, 124, 143, 133, 133, 128, 134, 107, 131, 132, 139, 130, 134, 125, 151, 145, 145, 138, 153, 141, 129, 130, 148, 136, 145, 136, 135, 133, 131, 136, 142, 142, 140, 135, 123, 129, 141, 132, 133, 134, 138, 128, 132, 132, 129, 141, 136, 134, 115, 135, 154, 143, 127, 143, 130, 141, 130, 125, 140, 140, 148, 147, 123, 124, 143, 139, 133, 131, 128, 125, 130, 131, 125, 133, 131, 154, 135, 133, 124, 139, 129, 142, 134, 124, 123, 122, 136, 143, 138, 146, 144, 135, 126, 125, 129, 130, 135, 126, 147, 138, 126, 133, 119, 137, 139, 126, 138, 133, 142, 140, 133, 128, 142, 133, 145, 146, 136, 154, 142, 129, 130, 131, 116, 133, 126, 139, 134, 124, 154, 129, 121, 136, 146, 133, 124, 148, 121, 122, 149, 133, 132, 128, 138, 140, 126, 140, 127, 125, 112, 128, 123, 124, 130, 155, 131, 160, 142, 144, 113, 137, 137, 145, 133, 134, 137, 142, 141, 149, 142, 136, 139, 135, 135, 134, 138, 134, 149, 144, 130, 125, 131, 125, 146, 138, 133, 126, 131, 132, 116, 131, 123, 108, 133, 131, 131, 135, 141, 124, 129, 147, 139, 127, 132, 114, 135, 116, 140, 132, 137, 136, 135, 138, 147, 140, 144, 125, 135, 136, 145, 131, 140, 138, 131, 122, 141, 149, 124, 140, 134, 139, 138, 126, 124, 143, 139, 143, 134, 138, 130, 122, 138, 126, 134, 135, 124, 169, 132, 142, 143, 121, 132, 144, 136, 150, 130, 127, 136, 140, 142, 134, 132, 149, 167, 136, 131, 136, 122, 149, 136, 135, 152, 131, 146, 138, 127, 132, 131, 140, 132, 139, 146, 136, 132, 128, 129, 126, 127, 142, 129, 116, 126, 129, 124, 138, 146, 150, 112, 133, 127, 137, 130, 131, 133, 146, 141, 124, 128, 131, 131, 135, 128, 137, 130, 125, 133, 130, 145, 136, 124, 143, 136, 131, 141, 137, 125, 130, 124, 137, 134, 149, 135, 120, 130, 126, 130, 138, 137, 145, 123, 135, 135, 166, 158, 129, 124, 118, 146, 133, 118, 138, 136, 119, 149, 131, 127, 133, 132, 135, 142, 120, 131, 146, 123, 128, 128, 132, 134, 137, 131, 129, 139, 138, 130, 142, 121, 154, 140, 146, 134, 135, 140, 135, 121, 132, 121, 134, 128, 127, 132, 131, 136, 146, 138, 130, 154, 129, 140, 132, 146, 144, 146, 147, 125, 136, 133, 139, 125, 132, 145, 128, 136, 138, 137, 143, 145, 131, 124, 130, 125, 133, 120, 141, 150, 125, 129, 144, 118, 129, 141, 152, 140, 140, 168, 140, 137, 126, 130, 141, 124, 140, 131, 137, 139, 132, 138, 136, 139, 121, 135, 130, 117, 143, 151, 121, 131, 129, 137, 131, 131, 135, 147, 142, 165, 130, 123, 127, 151, 143, 119, 126, 125, 132, 128, 143, 148, 131, 123, 135, 137, 135, 129, 147, 136, 120, 135, 136, 132, 137, 131, 128, 136, 150, 132, 133, 122, 116, 129, 150, 133, 128, 121, 141, 143, 145, 141, 131, 146, 134, 125, 133, 136, 141, 135, 141, 145, 121, 148, 145, 137, 131, 136, 139, 143, 128, 139, 154, 128, 125, 129, 135, 127, 145, 133, 150, 127, 122, 155, 140, 138, 130, 137, 143, 165, 143, 144, 149, 145, 124, 143, 138, 129, 127, 123, 136, 134, 125, 132, 136, 140, 133, 141, 138, 127, 134, 126, 139, 140, 136, 161, 138, 145, 127, 130, 135, 134, 140, 152, 139, 127, 131, 138, 132, 130, 139, 144, 144, 142, 145, 137, 132, 134, 120, 137, 134, 129, 135, 132, 137, 127, 137, 148, 139, 145, 120, 131, 133, 126, 130, 145, 132, 127, 131, 136, 144, 137, 136, 141, 142, 134, 158, 124, 140, 131, 148, 139, 134, 139, 131, 133, 136, 135, 129, 141, 125, 131, 137, 131, 134, 126, 141, 149, 138, 145, 120, 146, 132, 129, 138, 131, 135, 137, 125, 134, 141, 131, 126, 151, 135, 139, 124, 130, 120, 151, 138, 135, 133, 124, 145, 127, 144, 129, 132, 121, 122, 142, 138, 151, 139, 132, 133, 129, 137, 150, 121, 136, 135, 134, 130, 150, 127, 135, 161, 135, 153, 134, 141, 160, 129, 118, 138, 141, 136, 139, 148, 127, 120, 132, 140, 134, 142, 136, 134, 153, 147, 137, 134, 124, 142, 137, 129, 135, 142, 133, 135, 133, 135, 155, 128, 134, 129, 138, 129, 141, 138, 128, 140, 137, 131, 133, 139, 114, 126, 129, 139, 134, 142, 151, 137, 137, 130, 134, 129, 129, 137, 131, 126, 129, 132, 127, 140, 128, 134, 128, 143, 120, 134, 139, 125, 135, 122, 131, 145, 134, 131, 151, 130, 130, 135, 127, 133, 138, 139, 140, 136, 122, 130, 155, 137, 157, 150, 138, 138, 122, 124, 132, 120, 133, 129, 138, 139, 134, 141, 132, 141, 140, 136, 131, 135, 130, 137, 154, 135, 128, 134, 143, 120, 133, 150, 139, 117, 128, 132, 130, 139, 138, 118, 124, 130, 135, 146, 135, 140, 145, 134, 133, 135, 139, 144, 139, 125, 126, 136, 138, 128, 162, 128, 125, 134, 120, 139, 134, 130, 136, 137, 131, 118, 145, 129, 131, 150, 130, 129, 132, 131, 128, 122, 129, 146, 124, 135, 128, 132, 127, 116, 127, 125, 136, 138, 125, 132, 136, 139, 138, 143, 124, 149, 142, 141, 145, 117, 120, 142, 126, 133, 132, 139, 138, 131, 135, 133, 115, 148, 146, 121, 143, 138, 128, 125, 137, 132, 131, 141, 126, 146, 136, 137, 145, 156, 131, 128, 125, 143, 128, 147, 145, 121, 141, 126, 137, 132, 125, 130, 122, 135, 128, 146, 172, 133, 134, 141, 140, 123, 139, 127, 137, 137, 131, 124, 163, 150, 119, 149, 130, 122, 123, 136, 144, 133, 133, 132, 125, 131, 121, 132, 153, 136, 146, 134, 116, 138, 130, 137, 142, 133, 138, 135, 137, 124, 143, 114, 142, 142, 136, 138, 151, 140, 146, 142, 139, 148, 126, 136, 112, 142, 125, 144, 156, 143, 127, 134, 143, 128, 135, 132, 139, 144, 131, 148, 141, 126, 125, 142, 155, 125, 168, 125, 152, 140, 143, 130, 123, 143, 129, 127, 130, 120, 140, 132, 127, 126, 151, 123, 145, 134, 131, 135, 135, 136, 125, 136, 133, 140, 137, 135, 145, 147, 130, 122, 136, 136, 139, 128, 138, 143, 129, 135, 140, 131, 129, 134, 137, 146, 132, 158, 138, 143, 134, 149, 136, 130, 130, 143, 132, 129, 131, 131, 141, 130, 151, 133, 130, 115, 143, 135, 134, 135, 99, 139, 140, 128, 122, 137, 145, 128, 142, 141, 124, 140, 126, 136, 127, 140, 135, 134, 130, 131, 146, 142, 129, 141, 142, 152, 132, 161, 127, 141, 161, 157, 127, 136, 138, 126, 132, 150, 140, 124, 139, 133, 127, 139, 138, 149, 138, 148, 132, 127, 134, 129, 124, 143, 127, 154, 124, 134, 135, 137, 158, 137, 141, 141, 134, 133, 175, 131, 142, 144, 121, 122, 140, 152, 125, 144, 122, 148, 134, 131, 158, 131, 143, 131, 153, 130, 131, 156, 140, 137, 131, 141, 130, 142, 128, 139, 126, 139, 148, 131, 119, 131, 117, 150, 122, 133, 145, 127, 146, 134, 137, 135, 134, 123, 150, 147, 160, 124, 122, 140, 129, 147, 143, 136, 127, 135, 126, 125, 146, 144, 145, 157, 142, 131, 125, 111, 149, 125, 135, 144, 133, 130, 122, 124, 127, 132, 140, 133, 138, 146, 153, 132, 132, 142, 110, 126, 135, 140, 149, 157, 130, 129, 141, 155, 127, 138, 138, 136, 119, 145, 136, 148, 137, 143, 141, 143, 123, 150, 152, 130, 131, 115, 146, 130, 128, 146, 128, 142, 140, 162, 150, 145, 135, 131, 135, 125, 132, 143, 149, 132, 125, 133, 127, 143, 128, 146, 137, 131, 137, 135, 142, 144, 134, 148, 145, 133, 128, 125, 134, 132, 147, 129, 146, 124, 121, 129, 137, 130, 129, 126, 127, 144, 143, 145, 131, 139, 119, 148, 136, 134, 143, 149, 135, 126, 144, 151, 125, 129, 136, 130, 129, 150, 127, 131, 132, 134, 132, 131, 144, 152, 132, 135, 123, 134, 131, 136, 136, 147, 129, 150, 143, 125, 129, 133, 135, 131, 145, 145, 133, 133, 127, 144, 131, 129, 141, 134, 109, 132, 125, 123, 154, 120, 141, 156, 116, 155, 130, 156, 140, 140, 145, 145, 127, 134, 134, 131, 146, 153, 123, 123, 143, 136, 151, 145, 157, 135, 136, 127, 125, 136, 134, 132, 122, 134, 150, 142, 135, 140, 130, 147, 163, 132, 144, 136, 133, 154, 125, 128, 123, 130, 122, 115, 123, 159, 147, 144, 116, 154, 116, 144, 139, 148, 144, 131, 137, 136, 124, 117, 122, 132, 143, 146, 131, 120, 132, 143, 129, 118, 132, 147, 131, 119, 133, 130, 134, 131, 139, 151, 143, 149, 144, 123, 161, 143, 129, 132, 133, 133, 119, 133, 149, 148, 139, 140, 139, 120, 132, 136, 100, 144, 134, 126, 144, 133, 148, 90, 144, 138, 135, 143, 127, 126, 121, 144, 125, 149, 145, 132, 135, 120, 140, 130, 144, 130, 128, 136, 135, 159, 166, 122, 147, 139, 131, 146, 140, 139, 149, 136, 160, 136, 129, 142, 136, 148, 144, 135, 125, 146, 147, 141, 122, 128, 141, 140, 134, 147, 138, 142, 141, 134, 145, 135, 132, 139, 153, 127, 144, 133, 140, 131, 136, 154, 121, 141, 144, 126, 132, 153, 128, 147, 134, 135, 129, 131, 138, 141, 150, 141, 140, 142, 137, 129, 129, 127, 130, 133, 121, 143, 140, 139, 152, 151, 140, 157, 138, 146, 137, 162, 138, 126, 133, 136, 145, 133, 138, 130, 152, 140, 129, 132, 146, 128, 134, 127, 130, 132, 121, 132, 129, 150, 133, 140, 128, 134, 134, 149, 140, 150, 140, 137, 124, 136, 138, 152, 151, 142, 110, 129, 140, 139, 134, 160, 148, 125, 135, 122, 143, 138, 126, 103, 137, 143, 136, 120, 141, 143, 135, 134, 131, 125, 141, 114, 141, 145, 134, 143, 124, 110, 152, 141, 138, 121, 138, 129, 99, 140, 140, 123, 133, 149, 135, 123, 149, 144, 145, 136, 139, 153, 122, 134, 139, 155, 129, 135, 131, 133, 138, 146, 117, 125, 134, 121, 145, 123, 142, 158, 136, 138, 138, 144, 138, 133, 134, 141, 141, 128, 145, 153, 132, 142, 127, 151, 122, 142, 146, 130, 151, 133, 131, 128, 138, 151, 143, 132, 160, 137, 136, 140, 136, 140, 114, 125, 135, 124, 155, 137, 142, 137, 127, 133, 114, 133, 165, 122, 134, 135, 136, 128, 129, 138, 134, 145, 144, 135, 132, 144, 144, 149, 134, 141, 122, 140, 130, 157, 135, 133, 117, 139, 128, 141, 159, 136, 149, 149, 144, 131, 144, 138, 143, 139, 142, 121, 141, 143, 139, 131, 162, 127, 123, 136, 133, 140, 147, 118, 132, 123, 130, 139, 127, 114, 124, 144, 131, 131, 146, 147, 147, 132, 133, 146, 141, 130, 138, 128, 133, 147, 157, 134, 155, 125, 146, 139, 126, 162, 151, 152, 141, 140, 139, 132, 147, 132, 120, 128, 147, 122, 134, 131, 138, 131, 141, 135, 141, 130, 143, 141, 165, 129, 141, 133, 148, 156, 139, 142, 151, 132, 145, 131, 115, 127, 131, 144, 127, 134, 130, 154, 125, 119, 124, 157, 137, 139, 132, 148, 142, 129, 140, 135, 142, 120, 121, 146, 150, 162, 126, 142, 133, 131, 128, 134, 140, 138, 152, 130, 136, 127, 117, 142, 149, 126, 131, 133, 135, 139, 146, 126, 145, 137, 143, 136, 137, 137, 138, 143, 130, 139, 140, 139, 137, 132, 134, 142, 143, 135, 133, 141, 137, 129, 135, 142, 132, 142, 132, 138, 124, 137, 132, 137, 140, 142, 141, 134, 136, 125, 144, 148, 130, 142, 124, 128, 133, 140, 133, 143, 124, 117, 147, 141, 139, 130, 124, 130, 148, 129, 134, 141, 130, 135, 142, 146, 137, 131, 133, 140, 134, 145, 137, 123, 134, 146, 131, 132, 129, 145, 136, 132, 150, 134, 134, 142, 138, 123, 123, 142, 104, 123, 133, 137, 159, 135, 132, 134, 130, 136, 136, 121, 122, 139, 135, 152, 138, 118, 141, 132, 151, 135, 132, 139, 128, 129, 151, 124, 133, 140, 144, 130, 123, 148, 122, 144, 126, 137, 148, 130, 131, 144, 131, 134, 122, 158, 131, 140, 130, 139, 135, 137, 133, 153, 121, 138, 132, 131, 145, 132, 132, 146, 147, 149, 147, 129, 130, 117, 135, 151, 128, 127, 133, 134, 138, 132, 132, 140, 131, 135, 148, 140, 148, 138, 116, 124, 132, 149, 149, 145, 135, 132, 145, 133, 127, 152, 139, 144, 131, 141, 140, 127, 132, 119, 126, 131, 164, 140, 137, 128, 136, 131, 135, 137, 144, 134, 125, 131, 132, 159, 129, 137, 141, 130, 122, 140, 161, 129, 129, 124, 124, 134, 118, 133, 125, 135, 131, 155, 135, 135, 149, 152, 133, 134, 147, 143, 138, 136, 148, 140, 176, 131, 126, 142, 137, 123, 138, 131, 143, 135, 131, 131, 140, 120, 138, 139, 126, 141, 128, 132, 124, 151, 135, 127, 136, 137, 136, 132, 141, 135, 142, 153, 128, 155, 148, 162, 132, 146, 130, 140, 140, 140, 148, 141, 145, 133, 151, 135, 152, 135, 131, 133, 130, 131, 129, 135, 145, 131, 142, 142, 139, 114, 150, 135, 141, 134, 132, 148, 137, 125, 136, 141, 136, 123, 102, 140, 144, 134, 141, 141, 126, 131, 131, 143, 109, 132, 134, 129, 161, 140, 151, 120, 138, 135, 142, 138, 141, 144, 143, 144, 137, 141, 133, 126, 136, 141, 137, 133, 152, 135, 141, 132, 138, 138, 143, 126, 143, 141, 133, 147, 146, 132, 131, 108, 136, 130, 124, 139, 136, 139, 146, 128, 138, 137, 132, 137, 135, 136, 125, 133, 131, 139, 131, 129, 135, 130, 138, 152, 125, 147, 145, 151, 131, 129, 130, 137, 133, 145, 139, 117, 131, 132, 127, 155, 146, 142, 137, 143, 137, 127, 129, 122, 131, 130, 130, 139, 139, 147, 137, 135, 134, 137, 140, 135, 138, 135, 134, 133, 139, 137, 133, 135, 123, 140, 150, 137, 129, 138, 124, 127, 108, 124, 131, 140, 132, 138, 139, 133, 135, 134, 124, 133, 123, 128, 125, 135, 140, 144, 158, 140, 144, 125, 137, 132, 116, 137, 133, 141, 131, 173, 138, 123, 126, 118, 148, 116, 144, 138, 118, 128, 122, 112, 129, 137, 131, 147, 149, 135, 131, 157, 141, 121, 144, 131, 147, 123, 135, 132, 133, 120, 140, 137, 122, 134, 142, 124, 150, 142, 131, 100, 134, 136, 128, 114, 124, 130, 133, 138, 135, 124, 132, 153, 148, 132, 144, 132, 135, 159, 140, 127, 149, 136, 130, 136, 130, 135, 139, 120, 106, 150, 129, 146, 114, 141, 117, 129, 135, 132, 112, 161, 129, 131, 138, 138, 125, 133, 138, 132, 113, 138, 148, 175, 79, 142, 125, 142, 156, 134, 137, 135, 165, 128, 111, 136, 103, 135, 125, 125, 127, 112, 140, 116, 138, 123, 139, 140, 145, 137, 117, 144, 163, 134, 143, 128, 131, 124, 136, 125, 136, 112, 124, 151, 143, 122, 137, 130, 121, 144, 123, 139, 135, 132, 143, 113, 148, 128, 151, 124, 101, 140, 176, 141, 136, 139, 125, 144, 130, 140, 123, 130, 129, 133, 134, 137, 124, 148, 122, 112, 114, 130, 178, 122, 136, 146, 129, 127, 129, 133, 138, 152, 131, 140, 131, 125, 131, 143, 137, 144, 136, 136, 152, 131, 125, 118, 117, 134, 126, 144, 127, 137, 140, 143, 126, 121, 119, 138, 140, 126, 152, 153, 138, 148, 135, 154, 140, 124, 137, 140, 143, 118, 135, 149, 143, 138, 146, 139, 135, 136, 128, 151, 146, 169, 136, 151, 165, 147, 142, 144, 134, 122, 129, 114, 174, 137, 140, 133, 134, 133, 141, 153, 131, 128, 159, 110, 129, 141, 145, 125, 133, 136, 147, 150, 120, 139, 141, 142, 136, 143, 122, 125, 147, 117, 138, 123, 148, 129, 132, 146, 135, 148, 146, 147, 137, 144, 151, 138, 138, 132, 141, 148, 131, 145, 139, 139, 130, 129, 156, 128, 139, 144, 135, 134, 156, 135, 156, 124, 145, 149, 145, 135, 147, 143, 142, 151, 147, 122, 134, 125, 104, 130, 132, 126, 135, 138, 134, 130, 131, 128, 152, 104, 123, 148, 136, 131, 128, 145, 140, 131, 119, 138, 124, 125, 139, 157, 156, 145, 133, 148, 148, 132, 122, 161, 154, 127, 140, 134, 125, 146, 146, 125, 124, 120, 107, 134, 138, 141, 134, 144, 124, 134, 120, 147, 132, 124, 146, 147, 129, 160, 139, 146, 159, 136, 129, 122, 132, 127, 135, 124, 138, 132, 141, 153, 114, 136, 139, 143, 168, 132, 143, 119, 131, 129, 154, 149, 129, 141, 156, 123, 135, 148, 134, 136, 126, 129, 132, 124, 150, 161, 145, 132, 131, 132, 150, 139, 129, 148, 129, 136, 124, 139, 125, 180, 123, 130, 146, 147, 133, 152, 129, 130, 124, 121, 130, 131, 141, 225, 116, 147, 146, 136, 161, 240, 128, 135, 121, 143, 141, 128, 150, 142, 119, 143, 136, 122, 158, 132, 138, 138, 127, 156, 115, 150, 138, 139, 149, 139, 141, 144, 126, 135, 149, 135, 128, 112, 123, 115, 136, 136, 113, 131, 131, 119, 144, 142, 129, 143, 122, 141, 141, 134, 128, 131, 143, 147, 150, 124, 119, 138, 122, 135, 129, 132, 137, 115, 121, 145, 127, 142, 140, 126, 135, 141, 128, 137, 133, 136, 130, 134, 128, 128, 117, 151, 137, 142, 119, 148, 153, 161, 151, 141, 131, 135, 144, 144, 139, 131, 140, 138, 145, 145, 130, 134, 127, 131, 149, 141, 124, 135, 141, 140, 119, 131, 135, 138, 142, 155, 144, 113, 142, 146, 139, 158, 118, 131, 138, 127, 138, 135, 98, 142, 139, 121, 135, 142, 146, 145, 128, 139, 127, 139, 143, 134, 139, 144, 128, 133, 134, 139, 124, 124, 129, 142, 141, 136, 137, 118, 139, 134, 132, 141, 135, 139, 109, 134, 134, 153, 121, 133, 124, 142, 140, 137, 141, 145, 145, 140, 136, 142, 155, 136, 142, 127, 119, 142, 152, 135, 140, 124, 144, 132, 126, 131, 143, 122, 146, 118, 135, 139, 142, 149, 145, 136, 142, 135, 150, 138, 146, 137, 131, 133, 139, 131, 127, 127, 138, 127, 135, 132, 125, 140, 153, 124, 143, 124, 145, 137, 135, 130, 141, 134, 143, 144, 141, 146, 135, 144, 143, 138, 145, 138, 141, 140, 134, 128, 154, 131, 132, 147, 145, 141, 137, 134, 141, 127, 144, 135, 138, 141, 136, 155, 141, 137, 133, 132, 135, 140, 138, 147, 149, 151, 133, 141, 130, 133, 144, 142, 128, 148, 138, 135, 133, 137, 136, 128, 144, 141, 135, 144, 130, 147, 138, 134, 138, 133, 141, 146, 162, 140, 144, 139, 141, 127, 133, 143, 133, 132, 139, 134, 137, 128, 143, 122, 132, 138, 144, 130, 140, 144, 128, 141, 137, 163, 139, 143, 122, 131, 132, 147, 141, 139, 132, 138, 141, 135, 146, 139, 146, 136, 125, 139, 137, 133, 138, 141, 133, 139, 140, 146, 127, 138, 139, 134, 122, 141, 128, 135, 145, 140, 141, 138, 132, 127, 148, 134, 133, 144, 138, 143, 133, 130, 139, 130, 139, 128, 155, 140, 118, 148, 137, 131, 143, 95, 132, 144, 140, 142, 139, 128, 131, 145, 132, 164, 135, 134, 130, 125, 141, 144, 112, 120, 137, 148, 141, 122, 141, 132, 127, 152, 137, 142, 134, 130, 139, 114, 120, 137, 131, 123, 131, 150, 144, 134, 122, 129, 119, 134, 137, 135, 120, 123, 144, 124, 140, 133, 139, 140, 141, 137, 133, 129, 129, 120, 141, 142, 136, 134, 139, 137, 143, 144, 136, 128, 136, 122, 141, 132, 135, 142, 130, 124, 136, 142, 133, 127, 142, 141, 126, 138, 130, 137, 143, 146, 142, 137, 141, 137, 140, 137, 135, 127, 132, 140, 137, 130, 146, 126, 150, 135, 132, 140, 127, 136, 144, 141, 137, 139, 126, 137, 135, 141, 138, 149, 130, 129, 138, 138, 134, 148, 115, 128, 129, 142, 141, 155, 134, 135, 143, 131, 136, 147, 139, 136, 144, 143, 149, 137, 141, 139, 126, 140, 144, 138, 145, 141, 139, 129, 132, 144, 132, 133, 133, 139, 153, 128, 136, 143, 110, 133, 129, 135, 133, 140, 131, 125, 124, 134, 126, 120, 145, 131, 142, 124, 139, 126, 136, 133, 115, 137, 138, 131, 131, 143, 142, 128, 142, 138, 125, 134, 129, 118, 129, 137, 136, 142, 145, 134, 134, 143, 130, 161, 142, 114, 133, 130, 145, 142, 132, 136, 125, 148, 135, 138, 132, 139, 128, 150, 135, 131, 133, 140, 146, 136, 133, 130, 130, 131, 131, 143, 120, 130, 144, 124, 149, 152, 159, 148, 119, 126, 141, 130, 135, 139, 139, 121, 115, 129, 117, 127, 139, 138, 126, 135, 113, 128, 134, 132, 122, 135, 124, 130, 146, 137, 137, 135, 137, 143, 139, 130, 126, 145, 132, 130, 134, 153, 126, 143, 130, 139, 132, 137, 143, 129, 138, 143, 139, 135, 130, 129, 132, 127, 150, 114, 137, 141, 126, 131, 138, 104, 129, 148, 144, 135, 130, 137, 149, 150, 138, 131, 148, 141, 122, 140, 132, 139, 131, 152, 129, 146, 139, 122, 137, 156, 129, 160, 120, 130, 138, 137, 120, 147, 123, 140, 135, 140, 153, 141, 128, 126, 126, 146, 123, 159, 137, 140, 147, 139, 125, 138, 153, 142, 123, 138, 130, 139, 132, 139, 130, 119, 135, 132, 142, 136, 149, 135, 130, 148, 136, 146, 131, 141, 130, 161, 130, 133, 131, 140, 136, 122, 120, 132, 124, 117, 121, 129, 120, 144, 129, 144, 124, 143, 141, 138, 136, 139, 152, 125, 165, 135, 138, 100, 158, 132, 143, 128, 134, 133, 146, 143, 164, 126, 129, 139, 136, 133, 150, 141, 132, 167, 129, 133, 126, 123, 124, 144, 141, 141, 142, 128, 142, 115, 131, 146, 128, 127, 145, 134, 144, 141, 140, 133, 116, 103, 135, 138, 122, 123, 135, 131, 137, 130, 128, 146, 127, 136, 133, 129, 136, 139, 133, 131, 143, 147, 142, 144, 134, 125, 139, 123, 147, 127, 129, 135, 115, 135, 145, 137, 156, 166, 167, 149, 156, 133, 144, 134, 136, 134, 151, 136, 138, 135, 147, 139, 124, 146, 129, 124, 136, 119, 159, 144, 129, 120, 149, 139, 132, 128, 138, 134, 141, 144, 128, 142, 142, 137, 126, 140, 131, 140, 125, 130, 151, 137, 139, 148, 149, 145, 147, 131, 127, 146, 127, 150, 140, 130, 140, 161, 143, 135, 143, 143, 140, 143, 132, 129, 142, 141, 140, 140, 124, 149, 134, 141, 115, 139, 131, 131, 144, 134, 134, 147, 139, 117, 140, 123, 130, 144, 128, 145, 136, 131, 141, 128, 126, 129, 123, 148, 149, 142, 159, 142, 134, 145, 152, 140, 135, 132, 134, 127, 121, 123, 138, 131, 120, 141, 131, 139, 127, 132, 148, 136, 130, 150, 112, 127, 138, 142, 138, 136, 141, 135, 130, 128, 150, 133, 118, 135, 138, 131, 136, 132, 156, 134, 148, 131, 134, 136, 139, 125, 146, 145, 140, 137, 136, 124, 126, 111, 133, 122, 144, 124, 139, 148, 137, 109, 124, 136, 132, 132, 114, 130, 131, 108, 131, 134, 146, 146, 120, 140, 143, 145, 120, 131, 125, 137, 132, 142, 114, 142, 128, 126, 134, 142, 132, 132, 141, 138, 132, 127, 131, 135, 140, 148, 133, 133, 125, 131, 152, 137, 126, 132, 143, 137, 136, 139, 129, 129, 116, 127, 140, 146, 145, 139, 149, 141, 142, 135, 134, 140, 131, 119, 161, 129, 157, 144, 135, 133, 131, 136, 137, 133, 143, 139, 131, 130, 129, 132, 135, 131, 130, 140, 154, 135, 134, 139, 134, 131, 129, 132, 130, 159, 157, 130, 126, 126, 138, 136, 130, 130, 136, 146, 138, 139, 136, 142, 142, 135, 141, 143, 135, 131, 144, 150, 134, 142, 145, 145, 144, 144, 138, 107, 142, 144, 124, 141, 137, 146, 133, 169, 140, 126, 135, 124, 144, 138, 117, 127, 156, 127, 140, 135, 135, 121, 117, 134, 114, 138, 126, 127, 132, 131, 134, 131, 115, 127, 148, 125, 124, 130, 132, 125, 112, 121, 127, 129, 112, 133, 135, 143, 137, 147, 150, 129, 120, 140, 134, 131, 140, 137, 133, 143, 132, 132, 140, 141, 150, 147, 143, 130, 142, 135, 149, 132, 132, 130, 134, 139, 129, 125, 115, 139, 131, 110, 132, 124, 131, 123, 147, 147, 141, 135, 152, 142, 142, 138, 143, 122, 129, 123, 142, 137, 137, 138, 148, 132, 146, 151, 142, 130, 141, 140, 149, 144, 130, 153, 145, 132, 143, 132, 133, 133, 142, 128, 152, 128, 131, 148, 141, 136, 133, 134, 136, 130, 137, 121, 135, 129, 174, 134, 129, 157, 135, 125, 123, 143, 144, 131, 131, 128, 125, 123, 114, 130, 133, 145, 140, 138, 114, 154, 155, 139, 133, 138, 139, 144, 127, 139, 137, 138, 139, 139, 142, 123, 118, 136, 97, 142, 139, 126, 127, 137, 128, 126, 138, 139, 138, 150, 141, 122, 130, 136, 140, 124, 128, 131, 137, 137, 138, 133, 139, 129, 121, 135, 132, 131, 129, 131, 134, 143, 167, 126, 132, 139, 141, 143, 124, 126, 136, 128, 132, 130, 125, 132, 144, 131, 117, 138, 134, 143, 158, 136, 123, 139, 129, 128, 125, 141, 141, 141, 167, 132, 140, 137, 144, 118, 139, 144, 139, 126, 144, 140, 144, 123, 183, 134, 135, 143, 129, 126, 153, 107, 136, 133, 139, 147, 130, 129, 136, 124, 127, 129, 143, 151, 132, 135, 131, 144, 137, 134, 138, 132, 147, 134, 133, 123, 129, 130, 133, 156, 132, 136, 147, 138, 155, 130, 147, 149, 126, 136, 125, 133, 143, 143, 121, 129, 132, 144, 155, 148, 149, 135, 138, 139, 125, 124, 131, 133, 138, 135, 145, 134, 125, 134, 136, 141, 138, 128, 145, 144, 142, 136, 143, 132, 143, 145, 134, 127, 142, 146, 123, 134, 126, 128, 137, 127, 126, 140, 135, 141, 150, 134, 139, 135, 137, 149, 136, 138, 124, 131, 156, 147, 134, 124, 129, 137, 127, 139, 131, 150, 131, 145, 124, 137, 154, 132, 137, 125, 129, 131, 128, 133, 144, 133, 153, 149, 134, 138, 151, 133, 119, 137, 157, 131, 153, 133, 132, 125, 133, 135, 126, 142, 160, 136, 152, 137, 149, 134, 133, 128, 134, 132, 127, 120, 146, 130, 142, 135, 136, 145, 123, 129, 137, 132, 148, 133, 157, 137, 127, 132, 118, 137, 146, 136, 119, 160, 128, 140, 146, 145, 138, 121, 135, 123, 124, 133, 125, 145, 134, 119, 137, 133, 130, 128, 142, 129, 132, 135, 126, 142, 138, 151, 135, 131, 136, 136, 123, 137, 130, 142, 125, 129, 138, 127, 157, 119, 137, 125, 120, 116, 138, 124, 126, 143, 127, 145, 119, 146, 136, 151, 141, 142, 155, 128, 138, 139, 146, 138, 127, 163, 138, 133, 148, 139, 131, 140, 113, 151, 139, 150, 148, 114, 133, 138, 119, 155, 132, 147, 130, 126, 145, 150, 134, 133, 144, 196, 142, 131, 128, 129, 131, 133, 138, 109, 127, 127, 139, 151, 139, 149, 135, 125, 126, 114, 136, 138, 145, 148, 129, 131, 139, 139, 164, 149, 137, 145, 133, 120, 134, 141, 125, 133, 130, 146, 146, 126, 137, 129, 119, 133, 141, 138, 140, 114, 149, 130, 144, 136, 133, 140, 138, 138, 138, 138, 142, 147, 161, 136, 133, 98, 142, 128, 131, 125, 125, 150, 136, 128, 147, 139, 143, 128, 126, 135, 202, 137, 139, 132, 126, 146, 145, 139, 131, 149, 141, 135, 137, 140, 132, 137, 129, 140, 138, 149, 126, 152, 141, 152, 134, 145, 143, 143, 142, 137, 119, 131, 131, 130, 114, 150, 136, 148, 132, 138, 140, 129, 155, 137, 141, 143, 133, 140, 121, 134, 112, 143, 133, 149, 143, 145, 153, 131, 141, 134, 133, 132, 130, 132, 143, 136, 155, 137, 133, 139, 139, 138, 137, 131, 133, 127, 137, 137, 119, 139, 139, 109, 142, 153, 135, 117, 139, 139, 141, 148, 141, 138, 137, 124, 139, 163, 160, 146, 138, 140, 138, 131, 133, 122, 130, 152, 121, 126, 135, 140, 151, 142, 125, 126, 141, 143, 132, 147, 118, 140, 150, 124, 156, 139, 136, 138, 135, 137, 141, 142, 135, 149, 129, 131, 124, 133, 150, 127, 137, 126, 117, 150, 144, 130, 135, 122, 139, 126, 163, 135, 135, 145, 146, 135, 146, 141, 136, 123, 132, 143, 146, 136, 138, 130, 135, 119, 133, 125, 151, 134, 159, 136, 132, 127, 106, 142, 131, 126, 159, 121, 101, 137, 132, 145, 162, 130, 148, 118, 122, 138, 131, 122, 140, 163, 142, 139, 157, 152, 213, 139, 128, 132, 135, 140, 131, 126, 138, 107, 193, 125, 127, 148, 147, 146, 138, 133, 127, 130, 144, 133, 154, 146, 134, 140, 136, 138, 125, 145, 162, 136, 133, 134, 124, 115, 145, 136, 126, 132, 148, 137, 142, 134, 146, 143, 143, 121, 134, 139, 129, 147, 139, 138, 145, 128, 126, 136, 149, 125, 146, 133, 137, 149, 134, 131, 137, 139, 128, 140, 134, 161, 133, 125, 135, 122, 128, 129, 128, 127, 147, 120, 136, 129, 131, 125, 134, 119, 127, 148, 144, 125, 151, 142, 156, 142, 138, 128, 136, 133, 136, 126, 136, 139, 148, 129, 141, 145, 133, 130, 129, 146, 140, 170, 144, 133, 140, 130, 136, 139, 138, 133, 145, 137, 74, 132, 133, 141, 142, 131, 135, 125, 149, 141, 148, 139, 146, 119, 140, 127, 138, 144, 132, 142, 160, 151, 126, 132, 123, 151, 136, 121, 137, 143, 116, 136, 169, 168, 146, 127, 125, 141, 160, 124, 136, 129, 140, 125, 127, 142, 136, 144, 134, 151, 127, 125, 120, 126, 138, 131, 130, 150, 134, 130, 141, 145, 121, 132, 136, 120, 137, 119, 140, 130, 142, 136, 137, 132, 136, 130, 149, 138, 149, 137, 146, 144, 139, 135, 127, 131, 117, 132, 150, 172, 136, 122, 144, 123, 132, 131, 143, 134, 133, 138, 136, 140, 142, 150, 154, 132, 133, 114, 150, 141, 121, 137, 148, 133, 138, 141, 124, 146, 117, 147, 144, 126, 115, 130, 130, 153, 127, 136, 136, 143, 139, 140, 127, 141, 141, 135, 144, 141, 146, 122, 164, 134, 123, 125, 123, 126, 150, 127, 131, 128, 139, 135, 123, 143, 135, 146, 165, 160, 123, 136, 156, 150, 139, 150, 145, 136, 136, 135, 144, 133, 123, 132, 134, 147, 133, 133, 134, 141, 137, 141, 122, 118, 134, 130, 133, 140, 137, 130, 132, 143, 148, 139, 150, 136, 131, 148, 129, 126, 138, 118, 133, 153, 134, 132, 134, 127, 136, 122, 124, 143, 150, 127, 147, 129, 139, 139, 126, 135, 129, 136, 124, 114, 143, 137, 132, 158, 126, 146, 124, 121, 141, 138, 126, 139, 138, 132, 127, 130, 130, 147, 141, 134, 142, 128, 141, 136, 119, 146, 150, 140, 140, 127, 132, 135, 144, 128, 144, 134, 150, 118, 140, 128, 137, 145, 164, 140, 148, 136, 139, 138, 137, 133, 132, 142, 120, 137, 141, 143, 148, 147, 119, 131, 149, 118, 147, 122, 144, 151, 130, 126, 160, 147, 123, 122, 137, 135, 145, 135, 129, 135, 135, 148, 144, 140, 132, 147, 139, 137, 122, 128, 119, 135, 130, 137, 146, 145, 126, 127, 149, 160, 134, 136, 149, 135, 135, 123, 140, 148, 121, 137, 143, 128, 142, 147, 131, 138, 140, 140, 131, 129, 138, 127, 128, 140, 129, 138, 128, 131, 133, 130, 134, 134, 124, 134, 140, 133, 148, 126, 130, 145, 113, 126, 134, 131, 139, 139, 139, 132, 127, 132, 117, 126, 151, 133, 120, 126, 130, 151, 148, 134, 137, 138, 136, 125, 123, 134, 156, 145, 135, 150, 144, 150, 129, 138, 123, 129, 135, 153, 144, 150, 137, 143, 122, 140, 121, 142, 136, 144, 123, 144, 124, 140, 127, 134, 134, 137, 147, 148, 165, 145, 154, 142, 144, 128, 131, 146, 139, 133, 151, 105, 145, 126, 138, 142, 154, 134, 135, 137, 125, 129, 140, 133, 133, 134, 129, 133, 140, 138, 133, 156, 147, 133, 136, 139, 155, 144, 131, 126, 138, 127, 148, 153, 126, 130, 131, 145, 138, 132, 130, 144, 148, 139, 144, 147, 169, 134, 131, 137, 129, 140, 126, 138, 138, 132, 126, 137, 144, 135, 138, 159, 151, 133, 141, 123, 163, 138, 143, 150, 137, 135, 140, 123, 115, 144, 135, 132, 122, 144, 149, 121, 130, 145, 149, 128, 130, 126, 136, 147, 159, 148, 142, 142, 123, 128, 140, 126, 126, 131, 129, 134, 138, 143, 144, 145, 128, 140, 134, 161, 149, 144, 118, 126, 129, 137, 139, 140, 144, 144, 134, 137, 143, 139, 149, 127, 154, 135, 133, 139, 129, 125, 146, 145, 142, 134, 126, 131, 148, 135, 135, 156, 122, 147, 125, 147, 136, 92, 138, 115, 142, 129, 130, 147, 135, 131, 134, 122, 136, 142, 126, 136, 144, 136, 133, 137, 138, 154, 129, 147, 128, 145, 149, 139, 135, 144, 144, 137, 149, 133, 121, 129, 128, 149, 126, 151, 123, 149, 131, 133, 137, 161, 127, 135, 129, 147, 139, 111, 132, 141, 134, 132, 136, 135, 132, 128, 134, 140, 135, 136, 131, 147, 138, 131, 140, 135, 124, 131, 144, 146, 134, 141, 144, 134, 134, 131, 143, 138, 137, 147, 130, 143, 133, 142, 132, 131, 129, 151, 145, 128, 137, 133, 130, 126, 139, 130, 130, 150, 146, 142, 128, 149, 104, 117, 140, 147, 122, 112, 129, 120, 139, 129, 126, 138, 143, 133, 130, 138, 123, 139, 129, 160, 153, 140, 139, 127, 134, 147, 132, 134, 139, 138, 140, 166, 142, 137, 150, 137, 133, 137, 148, 136, 137, 137, 129, 139, 143, 126, 139, 158, 137, 123, 134, 138, 133, 134, 140, 151, 120, 127, 133, 143, 135, 144, 154, 134, 148, 140, 135, 141, 133, 135, 127, 133, 142, 117, 137, 155, 146, 161, 128, 131, 132, 139, 145, 136, 135, 148, 143, 132, 135, 119, 131, 130, 128, 135, 127, 138, 142, 132, 130, 135, 142, 137, 144, 140, 117, 139, 135, 125, 144, 139, 140, 135, 127, 130, 134, 130, 135, 144, 129, 128, 135, 123, 140, 128, 138, 132, 125, 140, 140, 137, 144, 149, 124, 137, 135, 144, 121, 130, 122, 139, 135, 135, 141, 140, 140, 133, 139, 91, 129, 143, 141, 137, 140, 142, 131, 129, 131, 101, 133, 127, 140, 143, 141, 150, 134, 125, 149, 139, 139, 128, 134, 131, 134, 140, 144, 137, 131, 129, 140, 150, 121, 154, 132, 132, 139, 131, 136, 118, 131, 142, 139, 147, 135, 139, 135, 141, 136, 136, 135, 130, 125, 126, 136, 138, 135, 134, 137, 145, 137, 133, 138, 135, 157, 167, 139, 146, 137, 124, 150, 143, 138, 137, 140, 135, 134, 138, 141, 134, 140, 126, 146, 144, 118, 135, 136, 120, 128, 133, 133, 134, 136, 155, 147, 139, 137, 128, 134, 147, 120, 129, 145, 170, 129, 137, 138, 127, 139, 142, 144, 132, 139, 142, 145, 130, 150, 135, 128, 135, 146, 133, 130, 136, 138, 91, 142, 138, 139, 136, 121, 132, 141, 143, 139, 134, 153, 142, 136, 143, 153, 136, 134, 129, 125, 128, 147, 142, 138, 128, 135, 139, 137, 140, 139, 133, 122, 128, 130, 141, 138, 140, 144, 129, 124, 122, 144, 144, 148, 138, 145, 138, 132, 127, 124, 147, 147, 134, 132, 150, 140, 128, 150, 132, 128, 151, 136, 136, 135, 131, 136, 140, 150, 127, 137, 123, 129, 145, 136, 145, 130, 135, 145, 137, 142, 124, 142, 135, 142, 124, 127, 129, 143, 129, 132, 130, 138, 146, 128, 152, 138, 130, 121, 139, 149, 140, 130, 130, 136, 147, 140, 134, 136, 121, 143, 113, 142, 133, 137, 128, 142, 125, 148, 148, 139, 133, 139, 141, 129, 134, 128, 133, 147, 137, 143, 138, 128, 133, 132, 137, 140, 132, 129, 121, 132, 125, 163, 129, 152, 133, 135, 134, 120, 147, 122, 118, 152, 134, 120, 116, 127, 132, 154, 135, 130, 138, 143, 131, 142, 135, 129, 118, 126, 133, 139, 138, 121, 127, 155, 122, 130, 140, 122, 136, 130, 145, 121, 130, 132, 144, 143, 145, 126, 127, 146, 133, 136, 147, 120, 128, 133, 128, 143, 148, 133, 130, 129, 144, 148, 141, 132, 125, 107, 126, 134, 134, 134, 146, 144, 114, 148, 132, 135, 141, 140, 129, 130, 136, 125, 142, 142, 126, 142, 137, 128, 135, 123, 127, 133, 131, 139, 150, 131, 141, 128, 139, 151, 123, 131, 131, 128, 127, 117, 131, 110, 134, 149, 140, 130, 129, 136, 158, 125, 144, 145, 128, 144, 122, 148, 146, 129, 136, 135, 138, 126, 132, 133, 127, 125, 140, 141, 126, 156, 109, 149, 167, 137, 139, 142, 142, 114, 134, 144, 139, 139, 137, 139, 130, 121, 122, 116, 131, 139, 140, 156, 141, 137, 155, 136, 137, 128, 125, 125, 128, 118, 146, 140, 133, 150, 133, 136, 140, 124, 143, 132, 138, 143, 145, 147, 120, 130, 131, 140, 142, 133, 144, 136, 126, 137, 134, 129, 155, 138, 128, 129, 132, 106, 116, 147, 132, 135, 130, 129, 147, 138, 124, 139, 163, 129, 138, 143, 133, 132, 156, 135, 136, 129, 124, 149, 113, 131, 146, 131, 151, 137, 133, 136, 134, 142, 120, 136, 127, 130, 120, 141, 125, 140, 118, 130, 143, 128, 131, 138, 130, 141, 145, 117, 144, 129, 131, 132, 139, 120, 143, 142, 150, 149, 143, 123, 134, 120, 139, 136, 121, 139, 125, 131, 134, 131, 141, 143, 130, 134, 141, 137, 134, 145, 140, 123, 142, 135, 130, 124, 124, 144, 148, 131, 163, 127, 143, 135, 129, 130, 144, 138, 120, 136, 130, 123, 144, 138, 142, 150, 130, 136, 148, 142, 143, 147, 126, 136, 132, 119, 150, 116, 134, 162, 162, 138, 131, 129, 152, 146, 129, 127, 130, 143, 121, 152, 131, 130, 123, 123, 135, 131, 135, 137, 131, 126, 134, 130, 129, 128, 135, 137, 146, 134, 126, 126, 148, 158, 139, 139, 136, 148, 141, 139, 127, 134, 143, 129, 138, 107, 132, 139, 150, 122, 131, 124, 137, 146, 148, 143, 147, 135, 109, 147, 142, 145, 128, 127, 138, 135, 139, 140, 139, 142, 121, 143, 139, 142, 134, 137, 156, 120, 136, 133, 159, 129, 146, 127, 119, 124, 128, 140, 132, 151, 148, 134, 134, 126, 148, 139, 122, 132, 123, 145, 127, 127, 139, 124, 127, 127, 145, 133, 136, 160, 133, 138, 121, 110, 143, 133, 130, 144, 132, 110, 135, 129, 120, 136, 134, 143, 132, 149, 148, 120, 120, 132, 135, 146, 136, 140, 112, 144, 131, 124, 152, 140, 126, 137, 144, 132, 142, 136, 151, 147, 144, 143, 134, 136, 137, 151, 132, 139, 133, 132, 135, 130, 138, 138, 135, 146, 125, 132, 137, 134, 132, 124, 133, 127, 141, 122, 141, 132, 133, 136, 139, 137, 153, 126, 129, 141, 142, 135, 139, 125, 135, 130, 133, 124, 142, 125, 125, 133, 138, 134, 137, 152, 138, 136, 143, 137, 123, 148, 152, 134, 131, 143, 139, 140, 133, 144, 133, 139, 148, 134, 123, 127, 131, 134, 130, 139, 134, 144, 133, 148, 131, 141, 137, 126, 121, 141, 126, 140, 130, 130, 140, 148, 136, 147, 137, 140, 131, 145, 130, 142, 140, 130, 118, 130, 125, 129, 130, 138, 138, 128, 130, 138, 135, 143, 126, 126, 127, 145, 134, 109, 134, 136, 97, 133, 133, 143, 133, 129, 144, 133, 140, 134, 134, 129, 136, 112, 140, 141, 120, 151, 136, 136, 155, 131, 142, 138, 137, 131, 140, 140, 107, 140, 139, 136, 147, 136, 137, 132, 134, 138, 139, 147, 138, 132, 147, 136, 156, 124, 138, 122, 130, 124, 133, 131, 122, 130, 128, 144, 121, 132, 128, 138, 144, 130, 139, 134, 121, 139, 132, 131, 129, 135, 135, 138, 131, 133, 129, 142, 137, 136, 130, 132, 141, 129, 140, 143, 134, 132, 106, 140, 136, 135, 134, 128, 141, 142, 130, 142, 143, 132, 128, 138, 128, 138, 133, 144, 188, 136, 126, 138, 134, 137, 137, 138, 125, 129, 144, 116, 143, 131, 124, 135, 133, 140, 135, 138, 138, 130, 141, 133, 137, 140, 133, 135, 137, 140, 127, 128, 131, 128, 135, 133, 133, 142, 140, 133, 126, 133, 129, 128, 135, 131, 131, 137, 123, 146, 136, 134, 127, 128, 140, 135, 126, 136, 145, 132, 143, 134, 136, 134, 146, 138, 128, 125, 133, 135, 130, 139, 138, 130, 135, 132, 112, 144, 137, 128, 130, 137, 140, 137, 128, 154, 143, 140, 134, 139, 146, 164, 121, 118, 114, 145, 130, 136, 135, 141, 153, 135, 144, 137, 132, 140, 127, 136, 139, 130, 134, 131, 171, 131, 133, 137, 141, 140, 119, 143, 145, 134, 160, 144, 134, 149, 134, 126, 128, 138, 131, 137, 137, 126, 135, 130, 139, 143, 135, 134, 142, 157, 147, 129, 133, 129, 135, 125, 128, 154, 144, 126, 143, 136, 126, 123, 134, 130, 131, 134, 176, 128, 142, 127, 135, 137, 138, 147, 138, 133, 138, 124, 137, 132, 131, 127, 122, 128, 140, 134, 127, 140, 143, 131, 129, 141, 131, 130, 139, 127, 138, 148, 126, 125, 130, 150, 123, 108, 127, 142, 131, 130, 154, 133, 138, 139, 159, 130, 131, 143, 132, 135, 145, 125, 133, 135, 142, 139, 143, 139, 132, 132, 107, 131, 129, 131, 131, 135, 143, 142, 129, 155, 143, 132, 142, 138, 125, 134, 136, 143, 147, 135, 140, 121, 132, 144, 136, 133, 137, 126, 137, 132, 132, 138, 130, 133, 133, 144, 127, 133, 138, 203, 138, 136, 133, 135, 132, 133, 134, 132, 132, 132, 130, 128, 134, 138, 149, 127, 125, 127, 129, 128, 130, 134, 132, 141, 139, 105, 137, 126, 141, 130, 132, 137, 127, 141, 135, 132, 136, 135, 130, 130, 104, 137, 136, 124, 129, 136, 138, 136, 140, 143, 133, 133, 121, 139, 144, 134, 144, 145, 119, 133, 122, 126, 141, 131, 122, 134, 151, 124, 132, 145, 136, 128, 134, 129, 128, 141, 142, 140, 159, 133, 125, 121, 159, 136, 144, 137, 131, 129, 147, 133, 151, 134, 117, 127, 120, 130, 148, 134, 130, 119, 135, 145, 137, 138, 142, 135, 152, 127, 124, 140, 136, 128, 136, 128, 120, 136, 132, 135, 127, 135, 127, 154, 113, 142, 115, 156, 142, 133, 136, 133, 126, 136, 133, 135, 134, 134, 126, 155, 135, 131, 150, 125, 130, 131, 133, 137, 152, 150, 128, 130, 147, 128, 140, 164, 140, 154, 122, 124, 136, 126, 131, 135, 123, 127, 129, 149, 132, 139, 129, 116, 131, 154, 134, 138, 162, 140, 137, 141, 136, 128, 143, 135, 127, 144, 124, 139, 149, 120, 138, 139, 144, 145, 145, 107, 126, 131, 144, 137, 144, 150, 132, 145, 134, 129, 140, 120, 157, 137, 146, 129, 142, 144, 139, 132, 138, 124, 125, 131, 140, 133, 142, 135, 129, 140, 125, 129, 144, 160, 130, 128, 159, 133, 143, 139, 130, 130, 122, 135, 134, 127, 135, 157, 119, 135, 112, 141, 138, 134, 141, 134, 140, 129, 144, 145, 129, 130, 134, 125, 128, 134, 120, 126, 135, 130, 136, 148, 137, 128, 140, 127, 144, 122, 140, 134, 142, 127, 131, 124, 145, 141, 156, 134, 126, 143, 140, 140, 144, 134, 128, 120, 162, 136, 136, 137, 127, 131, 137, 131, 131, 141, 143, 151, 140, 128, 127, 142, 125, 146, 130, 127, 142, 133, 131, 145, 145, 130, 142, 140, 114, 134, 128, 158, 125, 140, 137, 147, 147, 141, 140, 160, 161, 137, 121, 126, 131, 147, 157, 126, 128, 134, 131, 139, 139, 129, 129, 124, 132, 139, 130, 126, 137, 128, 150, 140, 132, 155, 132, 160, 148, 126, 124, 137, 126, 132, 140, 149, 127, 139, 137, 131, 148, 142, 137, 148, 134, 140, 128, 155, 124, 129, 136, 146, 127, 155, 143, 135, 137, 145, 134, 128, 130, 152, 123, 152, 130, 148, 139, 132, 139, 134, 132, 144, 130, 136, 135, 120, 135, 131, 121, 140, 141, 133, 145, 135, 125, 125, 125, 128, 124, 130, 128, 138, 126, 169, 136, 124, 129, 131, 134, 139, 132, 141, 135, 144, 137, 138, 139, 128, 144, 146, 127, 126, 137, 141, 148, 136, 167, 119, 130, 137, 115, 137, 150, 145, 147, 138, 130, 138, 135, 134, 146, 144, 134, 129, 130, 127, 138, 102, 128, 137, 128, 134, 137, 151, 134, 133, 169, 143, 152, 126, 135, 119, 132, 127, 139, 145, 137, 137, 136, 126, 134, 134, 125, 142, 138, 133, 125, 114, 118, 142, 139, 140, 135, 137, 128, 149, 116, 126, 132, 136, 129, 152, 145, 134, 127, 146, 135, 136, 137, 131, 152, 128, 129, 139, 121, 142, 133, 138, 123, 141, 126, 123, 110, 141, 125, 133, 162, 133, 144, 141, 131, 143, 141, 138, 125, 131, 139, 139, 133, 125, 147, 117, 131, 129, 139, 110, 165, 130, 146, 142, 137, 148, 129, 131, 128, 138, 145, 138, 138, 144, 136, 144, 125, 135, 130, 134, 134, 140, 142, 143, 140, 147, 137, 148, 132, 162, 166, 129, 151, 145, 125, 121, 143, 129, 139, 133, 137, 143, 134, 134, 137, 139, 137, 133, 142, 141, 130, 147, 129, 135, 137, 145, 135, 127, 130, 140, 141, 146, 130, 129, 144, 122, 140, 148, 132, 145, 142, 127, 129, 129, 126, 163, 135, 150, 131, 142, 141, 137, 129, 131, 140, 126, 135, 141, 149, 153, 139, 114, 120, 130, 129, 142, 132, 134, 142, 139, 136, 149, 133, 121, 138, 134, 149, 122, 147, 127, 147, 136, 133, 129, 130, 136, 131, 124, 142, 133, 146, 128, 131, 135, 136, 140, 143, 133, 125, 128, 132, 143, 129, 130, 131, 128, 134, 116, 145, 128, 148, 134, 137, 140, 137, 135, 132, 137, 132, 133, 136, 134, 128, 146, 147, 145, 117, 138, 126, 136, 148, 126, 133, 135, 132, 138, 135, 138, 136, 136, 126, 140, 137, 137, 140, 146, 137, 136, 132, 135, 127, 133, 144, 141, 134, 129, 133, 143, 140, 132, 137, 143, 133, 135, 135, 143, 144, 149, 129, 139, 139, 123, 135, 133, 141, 144, 134, 138, 134, 119, 126, 128, 136, 128, 139, 133, 125, 131, 134, 144, 139, 147, 116, 137, 141, 119, 133, 126, 132, 139, 135, 150, 146, 138, 155, 125, 140, 140, 156, 145, 146, 152, 154, 131, 132, 131, 130, 140, 132, 140, 132, 126, 130, 136, 148, 134, 132, 123, 141, 145, 139, 131, 140, 140, 137, 138, 139, 137, 139, 127, 128, 152, 140, 138, 134, 128, 137, 130, 140, 152, 142, 138, 136, 120, 134, 127, 134, 130, 139, 133, 129, 118, 133, 136, 147, 130, 134, 137, 134, 142, 135, 134, 144, 152, 131, 146, 136, 126, 136, 141, 133, 129, 138, 134, 136, 141, 120, 166, 142, 148, 128, 136, 151, 138, 144, 142, 143, 145, 120, 133, 180, 135, 132, 142, 131, 129, 146, 135, 138, 129, 152, 156, 127, 135, 130, 160, 130, 129, 136, 144, 134, 135, 129, 146, 136, 142, 132, 137, 130, 137, 126, 130, 124, 140, 131, 129, 139, 135, 133, 131, 132, 134, 134, 138, 138, 133, 129, 136, 149, 141, 123, 139, 139, 144, 128, 120, 134, 129, 139, 129, 133, 143, 133, 145, 133, 141, 147, 122, 138, 140, 142, 131, 146, 140, 123, 134, 129, 120, 139, 139, 128, 136, 128, 141, 142, 143, 141, 136, 150, 139, 134, 133, 139, 148, 148, 126, 154, 137, 148, 128, 123, 139, 134, 123, 139, 147, 120, 130, 127, 131, 136, 132, 139, 155, 139, 137, 131, 137, 131, 131, 141, 150, 127, 145, 143, 166, 139, 129, 129, 137, 120, 126, 126, 142, 142, 133, 132, 133, 134, 124, 139, 130, 135, 135, 137, 133, 108, 127, 137, 153, 137, 140, 133, 132, 133, 134, 139, 150, 136, 139, 130, 137, 142, 141, 140, 143, 139, 131, 131, 138, 134, 131, 138, 132, 132, 119, 133, 128, 141, 123, 136, 148, 134, 125, 139, 152, 139, 121, 129, 132, 138, 142, 140, 133, 126, 144, 124, 143, 141, 142, 138, 126, 136, 147, 143, 140, 143, 139, 133, 120, 128, 154, 139, 139, 146, 145, 128, 149, 139, 126, 141, 135, 164, 135, 126, 138, 134, 131, 144, 116, 129, 136, 159, 141, 127, 141, 143, 138, 134, 144, 134, 151, 134, 137, 145, 130, 138, 128, 134, 132, 127, 122, 147, 142, 141, 145, 150, 134, 138, 134, 133, 124, 133, 136, 139, 152, 121, 136, 137, 109, 134, 180, 116, 150, 156, 143, 134, 128, 131, 157, 151, 138, 133, 124, 144, 113, 138, 130, 128, 132, 125, 140, 137, 137, 156, 136, 140, 135, 148, 119, 135, 136, 123, 115, 138, 122, 144, 142, 129, 152, 137, 129, 133, 135, 148, 131, 142, 125, 142, 121, 135, 138, 124, 119, 132, 136, 139, 126, 135, 134, 136, 143, 124, 135, 141, 129, 139, 154, 122, 127, 122, 139, 145, 149, 142, 133, 146, 153, 129, 136, 143, 126, 132, 133, 125, 123, 132, 125, 125, 135, 140, 139, 139, 137, 123, 132, 141, 131, 133, 141, 130, 132, 136, 132, 154, 141, 134, 147, 145, 133, 125, 138, 155, 143, 123, 136, 128, 138, 130, 143, 117, 121, 130, 138, 129, 132, 142, 136, 131, 134, 128, 123, 137, 139, 140, 138, 133, 140, 137, 131, 130, 138, 131, 127, 124, 127, 128, 122, 127, 120, 123, 123, 131, 130, 148, 138, 142, 155, 143, 126, 134, 147, 131, 137, 137, 135, 140, 127, 140, 131, 149, 113, 150, 144, 138, 126, 152, 135, 115, 148, 155, 136, 145, 151, 154, 131, 138, 142, 145, 139, 124, 141, 143, 129, 133, 137, 135, 119, 149, 124, 123, 140, 137, 147, 139, 139, 142, 146, 143, 131, 125, 120, 135, 145, 152, 127, 138, 119, 146, 133, 143, 128, 119, 132, 122, 152, 146, 137, 123, 142, 134, 126, 129, 122, 162, 118, 135, 158, 142, 145, 183, 127, 145, 145, 137, 152, 143, 152, 136, 128, 139, 124, 147, 134, 144, 148, 138, 131, 127, 138, 158, 141, 130, 131, 130, 135, 135, 132, 143, 126, 157, 143, 130, 140, 150, 136, 129, 143, 137, 133, 147, 135, 137, 142, 140, 132, 124, 142, 150, 137, 136, 134, 142, 132, 110, 124, 137, 125, 124, 134, 130, 147, 135, 139, 127, 152, 134, 140, 115, 144, 130, 138, 133, 143, 114, 138, 139, 144, 135, 133, 141, 127, 142, 135, 161, 136, 117, 123, 144, 130, 133, 141, 131, 124, 179, 154, 149, 139, 144, 132, 103, 144, 131, 126, 142, 129, 142, 146, 125, 141, 131, 108, 129, 132, 126, 144, 116, 165, 130, 134, 141, 123, 136, 144, 142, 121, 120, 133, 157, 134, 133, 140, 136, 134, 141, 142, 129, 122, 133, 133, 134, 146, 123, 121, 151, 129, 139, 131, 146, 148, 136, 143, 142, 128, 141, 136, 131, 134, 141, 138, 133, 137, 123, 115, 140, 131, 133, 120, 143, 137, 134, 132, 139, 118, 142, 124, 134, 157, 127, 120, 130, 136, 146, 123, 140, 143, 155, 145, 131, 131, 132, 143, 139, 133, 135, 121, 131, 140, 136, 138, 129, 131, 136, 130, 136, 128, 131, 143, 141, 127, 143, 138, 130, 149, 125, 139, 142, 140, 134, 148, 135, 132, 134, 149, 130, 137, 136, 136, 127, 142, 127, 139, 133, 132, 129, 146, 126, 147, 153, 124, 128, 141, 131, 146, 137, 143, 129, 134, 133, 125, 143, 124, 143, 133, 136, 124, 135, 138, 136, 144, 162, 141, 135, 137, 143, 139, 133, 124, 117, 126, 137, 134, 145, 130, 128, 149, 151, 152, 135, 137, 137, 123, 137, 138, 121, 113, 133, 130, 129, 135, 134, 137, 144, 127, 155, 137, 127, 130, 118, 136, 123, 116, 142, 119, 142, 129, 136, 137, 138, 141, 137, 156, 143, 134, 138, 140, 123, 131, 134, 134, 129, 128, 144, 132, 139, 132, 144, 141, 137, 125, 133, 134, 140, 133, 149, 130, 137, 121, 136, 133, 147, 145, 119, 134, 153, 142, 137, 142, 116, 153, 137, 126, 140, 142, 137, 142, 140, 132, 137, 146, 141, 146, 142, 139, 134, 152, 146, 137, 110, 144, 157, 147, 139, 149, 124, 127, 132, 157, 132, 129, 142, 133, 144, 143, 153, 130, 156, 148, 142, 144, 137, 138, 134, 154, 134, 131, 141, 129, 140, 142, 126, 146, 135, 136, 133, 141, 157, 142, 143, 123, 141, 128, 128, 141, 142, 147, 140, 135, 132, 133, 127, 123, 144, 127, 131, 136, 129, 119, 118, 129, 133, 149, 122, 139, 149, 133, 131, 138, 139, 147, 140, 149, 128, 131, 125, 158, 128, 127, 142, 123, 135, 126, 131, 145, 131, 124, 138, 128, 138, 133, 142, 132, 137, 133, 129, 134, 142, 131, 128, 128, 139, 128, 136, 136, 132, 130, 131, 132, 130, 136, 141, 136, 136, 117, 128, 124, 131, 137, 143, 139, 124, 141, 151, 141, 131, 118, 141, 129, 128, 135, 114, 141, 125, 146, 135, 128, 132, 146, 148, 134, 132, 127, 128, 133, 122, 128, 131, 115, 132, 133, 106, 125, 147, 134, 152, 143, 140, 130, 139, 148, 117, 130, 132, 132, 134, 138, 134, 129, 146, 137, 119, 134, 126, 143, 128, 143, 139, 141, 132, 131, 132, 137, 137, 133, 134, 143, 144, 133, 138, 131, 124, 135, 130, 141, 136, 131, 148, 126, 137, 122, 150, 150, 130, 139, 137, 154, 139, 132, 137, 143, 154, 131, 143, 144, 128, 159, 123, 128, 140, 137, 125, 152, 130, 143, 129, 136, 153, 145, 144, 134, 134, 133, 146, 154, 142, 141, 128, 133, 128, 131, 152, 137, 147, 128, 129, 137, 132, 133, 133, 137, 143, 138, 133, 133, 129, 151, 128, 143, 130, 136, 132, 142, 124, 140, 131, 140, 129, 134, 151, 157, 132, 149, 132, 141, 132, 121, 131, 146, 128, 143, 133, 136, 133, 154, 127, 121, 126, 135, 133, 143, 139, 143, 136, 153, 134, 147, 136, 136, 138, 138, 132, 135, 146, 129, 132, 137, 140, 130, 138, 142, 129, 143, 143, 125, 132, 136, 140, 132, 138, 134, 137, 131, 124, 146, 127, 138, 129, 115, 135, 140, 144, 139, 136, 136, 124, 141, 132, 145, 143, 143, 137, 136, 138, 144, 133, 142, 134, 128, 140, 140, 140, 133, 135, 141, 146, 141, 134, 139, 143, 144, 128, 145, 130, 139, 135, 142, 141, 136, 133, 132, 137, 137, 140, 127, 145, 132, 141, 139, 141, 145, 137, 142, 141, 139, 136, 138, 136, 138, 120, 138, 136, 137, 129, 137, 133, 135, 134, 142, 134, 131, 134, 133, 133, 143, 141, 142, 130, 138, 144, 130, 141, 137, 129, 157, 140, 135, 144, 150, 143, 133, 131, 134, 133, 135, 148, 134, 132, 134, 140, 144, 136, 137, 134, 136, 140, 135, 131, 134, 132, 126, 137, 139, 137, 130, 138, 135, 136, 137, 141, 135, 138, 135, 133, 133, 128, 127, 148, 130, 138, 128, 138, 128, 134, 136, 137, 143, 140, 132, 127, 128, 136, 137, 140, 133, 135, 136, 139, 136, 138, 135, 134, 143, 130, 145, 141, 139, 151, 140, 137, 137, 130, 136, 141, 139, 136, 135, 135, 135, 140, 135, 140, 144, 140, 138, 135, 130, 130, 141, 133, 135, 137, 143, 132, 134, 138, 133, 140, 141, 144, 132, 137, 137, 127, 139, 128, 136, 143, 139, 145, 136, 149, 141, 142, 137, 139, 126, 131, 137, 140, 135, 147, 138, 144, 135, 126, 131, 132, 135, 133, 133, 136, 135, 140, 135, 141, 124, 135, 141, 135, 140, 137, 140, 130, 138, 140, 125, 135, 144, 142, 143, 137, 133, 139, 141, 143, 142, 134, 142, 137, 139, 136, 137, 128, 140, 148, 139, 136, 129, 142, 140, 135, 137, 129, 136, 132, 133, 134, 139, 143, 129, 136, 135, 143, 146, 141, 147, 149, 136, 137, 141, 140, 138, 132, 144, 140, 132, 146, 145, 136, 137, 138, 132, 137, 139, 138, 138, 135, 129, 139, 134, 125, 137, 138, 128, 139, 127, 123, 143, 139, 137, 128, 126, 128, 145, 138, 134, 140, 142, 136, 139, 136, 133, 134, 137, 136, 135, 135, 136, 142, 133, 128, 135, 132, 138, 138, 128, 138, 136, 131, 134, 128, 129, 141, 139, 132, 120, 133, 134, 138, 138, 144, 135, 131, 126, 135, 129, 138, 133, 130, 136, 142, 137, 140, 133, 133, 133, 139, 135, 134, 135, 141, 142, 139, 137, 135, 136, 141, 143, 141, 133, 131, 145, 137, 138, 135, 146, 134, 143, 135, 134, 136, 138, 140, 134, 138, 135, 139, 140, 135, 137, 132, 125, 141, 151, 137, 136, 138, 132, 141, 136, 135, 135, 142, 139, 140, 136, 137, 141, 146, 136, 132, 140, 143, 144, 127, 142, 130, 128, 140, 135, 135, 141, 143, 139, 140, 127, 142, 135, 145, 136, 141, 132, 137, 145, 139, 140, 136, 141, 127, 125, 134, 137, 132, 144, 138, 138, 138, 139, 134, 133, 140, 139, 139, 141, 131, 139, 134, 130, 145, 132, 132, 138, 133, 136, 137, 141, 139, 128, 137, 140, 146, 130, 133, 139, 135, 141, 140, 132, 132, 134, 141, 131, 132, 141, 141, 141, 141, 132, 132, 143, 138, 126, 137, 138, 143, 151, 141, 138, 134, 143, 139, 158, 137, 137, 146, 128, 131, 140, 139, 130, 138, 143, 140, 125, 130, 128, 143, 121, 141, 156, 137, 132, 137, 130, 135, 140, 118, 133, 125, 119, 142, 140, 129, 122, 134, 147, 111, 144, 130, 129, 149, 143, 133, 133, 141, 132, 135, 136, 121, 124, 129, 139, 141, 144, 128, 138, 144, 122, 138, 121, 131, 156, 122, 137, 130, 123, 174, 150, 141, 135, 141, 154, 143, 143, 139, 149, 141, 132, 127, 139, 126, 139, 125, 148, 148, 110, 147, 141, 134, 135, 128, 146, 137, 143, 141, 146, 132, 150, 125, 140, 118, 130, 136, 133, 111, 139, 130, 122, 149, 131, 137, 144, 126, 124, 140, 129, 138, 137, 124, 140, 127, 142, 136, 135, 148, 149, 131, 122, 136, 134, 139, 118, 115, 143, 137, 135, 140, 139, 130, 158, 129, 131, 124, 148, 116, 128, 148, 132, 119, 132, 147, 137, 139, 142, 129, 131, 148, 131, 127, 144, 139, 137, 124, 138, 129, 132, 140, 147, 139, 129, 129, 122, 139, 134, 131, 126, 147, 133, 129, 136, 131, 137, 127, 136, 117, 135, 133, 152, 148, 124, 143, 144, 140, 147, 115, 120, 142, 129, 131, 124, 148, 142, 130, 147, 135, 135, 145, 131, 129, 135, 130, 146, 140, 146, 142, 120, 133, 124, 128, 145, 127, 151, 134, 126, 119, 130, 145, 135, 139, 135, 144, 141, 126, 132, 139, 136, 134, 133, 147, 142, 137, 153, 140, 149, 132, 140, 136, 145, 164, 137, 136, 149, 130, 136, 130, 134, 143, 159, 139, 141, 141, 128, 131, 131, 131, 140, 148, 139, 140, 127, 135, 143, 133, 141, 126, 134, 146, 121, 115, 158, 150, 163, 139, 138, 131, 138, 126, 155, 112, 161, 136, 134, 127, 135, 148, 121, 135, 152, 139, 137, 147, 132, 136, 145, 133, 125, 165, 144, 124, 142, 144, 132, 132, 124, 142, 143, 132, 124, 150, 147, 150, 141, 149, 132, 138, 144, 143, 144, 135, 137, 132, 156, 140, 138, 136, 127, 136, 125, 141, 136, 141, 116, 135, 140, 117, 145, 138, 130, 139, 131, 135, 127, 124, 149, 109, 132, 160, 133, 141, 130, 150, 141, 146, 131, 131, 127, 130, 118, 128, 153, 138, 124, 138, 137, 124, 133, 149, 103, 135, 146, 102, 130, 135, 122, 132, 142, 132, 134, 135, 115, 140, 153, 146, 140, 122, 152, 131, 140, 137, 136, 128, 131, 132, 147, 130, 139, 122, 121, 134, 148, 141, 135, 145, 140, 139, 132, 132, 134, 135, 134, 117, 153, 142, 150, 141, 139, 116, 141, 143, 139, 128, 143, 137, 128, 144, 122, 141, 132, 152, 120, 133, 123, 124, 134, 135, 145, 145, 143, 129, 144, 141, 141, 139, 136, 140, 137, 123, 137, 126, 132, 124, 131, 120, 149, 125, 131, 145, 127, 134, 141, 137, 133, 141, 136, 139, 137, 138, 137, 142, 125, 149, 126, 129, 133, 131, 133, 157, 136, 125, 128, 145, 136, 114, 124, 146, 138, 107, 153, 133, 163, 145, 127, 137, 145, 140, 135, 131, 126, 128, 122, 124, 135, 136, 122, 137, 143, 135, 163, 133, 134, 117, 136, 141, 129, 133, 143, 143, 124, 133, 146, 134, 130, 145, 127, 128, 125, 138, 129, 145, 133, 131, 146, 133, 133, 130, 127, 151, 141, 131, 136, 119, 134, 141, 135, 128, 135, 127, 134, 140, 129, 145, 142, 149, 141, 142, 122, 129, 122, 137, 141, 148, 136, 132, 136, 150, 114, 134, 133, 126, 156, 139, 120, 133, 148, 112, 134, 124, 157, 120, 129, 134, 117, 133, 120, 160, 142, 146, 146, 143, 135, 141, 126, 118, 157, 139, 144, 136, 135, 139, 151, 147, 135, 134, 148, 137, 131, 129, 145, 127, 132, 146, 152, 145, 129, 139, 131, 135, 141, 143, 137, 121, 122, 140, 137, 136, 135, 142, 119, 148, 140, 138, 128, 148, 146, 129, 132, 146, 130, 142, 127, 135, 103, 149, 140, 136, 144, 142, 132, 140, 125, 114, 139, 134, 137, 129, 140, 132, 138, 114, 139, 136, 128, 149, 145, 128, 130, 129, 128, 153, 146, 137, 137, 127, 144, 140, 140, 133, 146, 154, 138, 119, 141, 132, 137, 150, 135, 135, 155, 128, 143, 139, 135, 130, 170, 139, 129, 132, 133, 140, 146, 146, 147, 124, 140, 140, 125, 132, 134, 143, 132, 128, 133, 124, 122, 142, 149, 121, 140, 135, 144, 144, 143, 133, 127, 136, 127, 127, 132, 131, 136, 132, 127, 154, 141, 132, 138, 124, 142, 143, 156, 124, 122, 144, 150, 135, 148, 135, 140, 135, 132, 123, 152, 158, 134, 139, 124, 114, 144, 132, 130, 135, 115, 130, 126, 130, 120, 141, 139, 159, 135, 141, 139, 130, 129, 126, 139, 113, 140, 133, 133, 148, 153, 144, 128, 129, 125, 131, 138, 135, 119, 134, 142, 139, 134, 141, 136, 119, 131, 129, 130, 126, 118, 133, 149, 137, 135, 133, 108, 155, 128, 147, 140, 135, 136, 135, 145, 134, 134, 136, 135, 126, 133, 136, 127, 151, 137, 131, 144, 131, 146, 142, 144, 129, 139, 118, 122, 148, 141, 137, 123, 145, 125, 137, 139, 134, 148, 146, 125, 146, 131, 124, 171, 138, 142, 138, 132, 124, 138, 129, 147, 138, 119, 123, 134, 128, 134, 126, 135, 135, 125, 132, 129, 130, 144, 140, 136, 137, 150, 130, 139, 133, 152, 146, 139, 141, 126, 136, 121, 146, 147, 152, 131, 134, 125, 131, 149, 146, 141, 136, 148, 155, 130, 129, 123, 143, 133, 140, 133, 123, 132, 130, 118, 136, 130, 131, 131, 137, 128, 144, 140, 123, 128, 147, 138, 139, 128, 147, 139, 131, 120, 131, 146, 145, 128, 127, 112, 128, 135, 137, 117, 144, 126, 130, 123, 129, 123, 125, 128, 164, 121, 141, 134, 122, 132, 133, 136, 141, 135, 134, 119, 129, 137, 118, 137, 131, 141, 123, 128, 137, 147, 137, 148, 147, 138, 134, 156, 140, 117, 128, 114, 133, 130, 139, 129, 130, 125, 134, 141, 138, 132, 123, 114, 144, 133, 148, 150, 122, 155, 155, 156, 130, 134, 160, 135, 132, 143, 121, 121, 129, 117, 145, 153, 143, 143, 119, 130, 129, 157, 137, 127, 154, 123, 123, 130, 143, 135, 134, 139, 135, 136, 148, 138, 133, 129, 143, 135, 134, 130, 135, 139, 140, 153, 142, 146, 128, 149, 131, 139, 138, 137, 140, 142, 145, 132, 136, 135, 136, 139, 137, 131, 150, 134, 151, 136, 135, 142, 135, 144, 152, 135, 127, 133, 138, 135, 126, 120, 136, 133, 125, 134, 146, 139, 122, 126, 141, 130, 140, 127, 130, 148, 144, 133, 130, 150, 136, 148, 126, 138, 134, 148, 142, 133, 147, 145, 133, 124, 127, 130, 144, 141, 140, 141, 139, 128, 142, 148, 135, 141, 137, 140, 141, 129, 145, 115, 149, 137, 141, 126, 137, 131, 144, 143, 136, 143, 141, 127, 143, 145, 143, 136, 132, 149, 136, 138, 140, 133, 146, 146, 147, 129, 144, 131, 151, 132, 130, 120, 134, 129, 126, 142, 140, 132, 149, 141, 142, 133, 134, 121, 131, 140, 130, 133, 117, 138, 135, 144, 133, 133, 141, 139, 148, 128, 137, 141, 137, 151, 124, 151, 133, 135, 141, 134, 127, 146, 141, 127, 126, 142, 147, 137, 147, 130, 126, 140, 125, 125, 132, 138, 130, 151, 139, 128, 112, 133, 126, 139, 140, 138, 137, 131, 124, 130, 129, 133, 126, 139, 126, 129, 122, 144, 134, 138, 137, 135, 140, 134, 134, 150, 140, 131, 136, 140, 138, 139, 143, 128, 135, 142, 142, 140, 127, 138, 134, 153, 160, 132, 144, 139, 122, 141, 137, 139, 128, 134, 138, 148, 140, 132, 120, 115, 133, 134, 131, 125, 137, 125, 133, 145, 140, 141, 146, 142, 130, 143, 148, 132, 135, 145, 146, 151, 138, 143, 139, 136, 124, 136, 145, 132, 138, 125, 146, 130, 135, 153, 122, 145, 131, 140, 134, 131, 150, 128, 138, 132, 148, 133, 124, 143, 142, 126, 128, 143, 131, 155, 136, 139, 139, 141, 131, 157, 153, 123, 134, 136, 136, 151, 130, 136, 135, 129, 137, 151, 147, 134, 132, 136, 122, 139, 119, 141, 130, 136, 133, 144, 143, 131, 136, 139, 131, 130, 125, 126, 119, 143, 136, 147, 140, 135, 134, 135, 137, 131, 131, 133, 135, 144, 139, 139, 142, 144, 136, 140, 136, 143, 129, 134, 136, 133, 137, 141, 130, 135, 130, 141, 130, 137, 132, 125, 137, 142, 135, 118, 122, 134, 143, 131, 140, 145, 131, 140, 138, 131, 150, 125, 124, 133, 128, 129, 138, 134, 138, 134, 143, 141, 139, 132, 133, 143, 122, 137, 130, 138, 120, 141, 130, 142, 137, 147, 135, 129, 124, 132, 152, 128, 128, 126, 137, 155, 120, 132, 130, 143, 152, 134, 129, 132, 133, 146, 140, 133, 148, 149, 126, 142, 120, 135, 151, 137, 140, 134, 134, 132, 126, 144, 144, 140, 138, 135, 133, 131, 139, 124, 143, 148, 135, 132, 150, 137, 127, 124, 124, 135, 140, 132, 145, 144, 152, 137, 122, 132, 128, 137, 149, 129, 141, 149, 142, 137, 142, 133, 136, 133, 126, 142, 142, 135, 142, 130, 147, 144, 142, 126, 132, 132, 137, 144, 131, 149, 140, 146, 134, 136, 150, 130, 136, 129, 142, 126, 127, 136, 140, 124, 139, 154, 116, 126, 142, 141, 127, 137, 132, 121, 131, 133, 123, 126, 129, 130, 118, 137, 116, 154, 126, 125, 139, 123, 146, 144, 147, 139, 132, 134, 137, 137, 131, 136, 128, 144, 129, 132, 141, 127, 129, 141, 138, 132, 137, 129, 141, 136, 120, 121, 119, 140, 134, 131, 134, 136, 151, 148, 131, 150, 146, 135, 139, 127, 129, 135, 130, 136, 144, 129, 149, 140, 134, 136, 136, 126, 136, 130, 137, 137, 129, 138, 139, 122, 144, 135, 132, 158, 131, 124, 135, 112, 126, 128, 150, 131, 141, 136, 135, 134, 137, 143, 135, 129, 124, 137, 131, 140, 134, 124, 133, 129, 123, 138, 130, 129, 114, 124, 132, 129, 133, 132, 118, 142, 146, 123, 135, 132, 127, 149, 143, 131, 135, 145, 134, 128, 134, 120, 145, 134, 167, 118, 133, 139, 140, 140, 139, 142, 136, 127, 145, 132, 123, 139, 131, 142, 139, 116, 136, 131, 154, 134, 137, 129, 133, 144, 133, 127, 142, 138, 142, 131, 132, 122, 141, 139, 127, 140, 130, 114, 126, 134, 140, 136, 132, 138, 127, 133, 139, 127, 135, 139, 109, 138, 125, 160, 130, 129, 134, 125, 122, 138, 144, 133, 132, 134, 134, 132, 143, 131, 137, 130, 132, 138, 131, 125, 126, 127, 128, 133, 129, 134, 135, 132, 129, 139, 139, 129, 138, 124, 136, 117, 128, 144, 134, 157, 130, 142, 146, 135, 127, 130, 129, 131, 148, 139, 164, 130, 150, 144, 128, 144, 138, 132, 129, 129, 133, 151, 138, 129, 141, 136, 138, 135, 138, 126, 144, 148, 140, 119, 128, 126, 129, 130, 141, 141, 127, 129, 130, 130, 137, 124, 138, 140, 139, 136, 145, 130, 131, 122, 126, 137, 137, 128, 121, 135, 139, 146, 131, 143, 145, 133, 129, 130, 130, 126, 139, 144, 132, 131, 128, 132, 132, 133, 139, 134, 133, 129, 131, 132, 130, 134, 125, 140, 145, 161, 150, 142, 127, 138, 145, 136, 136, 133, 132, 132, 128, 132, 149, 136, 140, 141, 139, 135, 163, 128, 123, 134, 135, 138, 125, 131, 144, 121, 113, 140, 122, 138, 150, 142, 140, 138, 137, 134, 138, 132, 140, 128, 131, 140, 136, 137, 136, 149, 137, 138, 140, 141, 141, 128, 138, 137, 140, 123, 138, 138, 160, 139, 125, 125, 143, 132, 144, 136, 130, 134, 126, 124, 135, 135, 134, 152, 155, 138, 137, 139, 136, 129, 141, 135, 139, 129, 133, 136, 129, 129, 128, 126, 117, 135, 139, 140, 123, 134, 127, 132, 138, 159, 135, 138, 129, 129, 127, 132, 134, 138, 129, 114, 129, 130, 134, 156, 137, 140, 130, 131, 140, 137, 134, 141, 138, 146, 150, 138, 130, 136, 139, 147, 132, 134, 136, 126, 140, 129, 154, 143, 125, 139, 119, 138, 149, 154, 137, 127, 129, 142, 135, 133, 137, 130, 130, 145, 141, 138, 143, 140, 138, 133, 135, 141, 134, 129, 135, 135, 143, 142, 128, 140, 137, 129, 127, 139, 140, 127, 140, 136, 122, 134, 154, 141, 144, 143, 139, 140, 125, 134, 135, 133, 134, 128, 130, 150, 131, 125, 122, 136, 126, 141, 126, 132, 129, 137, 123, 143, 135, 138, 143, 132, 135, 134, 125, 131, 135, 141, 138, 138, 150, 141, 129, 137, 131, 136, 135, 143, 145, 127, 138, 130, 123, 148, 136, 148, 121, 134, 123, 125, 141, 118, 128, 138, 134, 148, 145, 130, 133, 145, 138, 122, 124, 142, 136, 135, 138, 120, 148, 128, 129, 135, 142, 124, 143, 122, 142, 139, 131, 140, 145, 125, 145, 131, 129, 146, 136, 126, 137, 130, 136, 146, 126, 136, 131, 126, 135, 140, 135, 132, 131, 134, 130, 134, 128, 142, 123, 126, 131, 144, 147, 138, 118, 130, 148, 129, 143, 120, 137, 126, 142, 140, 135, 134, 146, 133, 134, 143, 133, 141, 136, 124, 143, 122, 130, 134, 143, 133, 143, 130, 160, 129, 134, 150, 135, 133, 139, 147, 134, 140, 127, 135, 132, 149, 121, 141, 150, 145, 134, 144, 135, 138, 138, 135, 155, 130, 145, 143, 126, 147, 139, 118, 135, 135, 137, 135, 136, 147, 147, 133, 130, 133, 123, 130, 156, 147, 127, 140, 131, 150, 150, 142, 124, 152, 124, 132, 135, 123, 131, 130, 143, 128, 121, 131, 133, 143, 132, 136, 133, 143, 123, 125, 124, 147, 162, 134, 139, 133, 146, 140, 144, 125, 132, 127, 136, 143, 142, 138, 124, 132, 131, 147, 127, 152, 130, 122, 125, 141, 126, 143, 129, 121, 152, 151, 157, 143, 139, 128, 139, 132, 128, 123, 144, 144, 145, 130, 120, 150, 155, 144, 144, 140, 142, 142, 134, 127, 130, 131, 133, 121, 136, 134, 148, 131, 140, 144, 134, 131, 131, 134, 139, 134, 131, 139, 139, 132, 123, 142, 136, 135, 126, 139, 130, 140, 117, 152, 124, 138, 127, 141, 137, 125, 134, 148, 141, 138, 130, 123, 135, 134, 131, 147, 133, 136, 135, 127, 135, 134, 121, 146, 130, 142, 142, 147, 121, 133, 141, 138, 137, 139, 132, 126, 163, 143, 145, 142, 137, 136, 130, 125, 145, 138, 135, 141, 140, 133, 124, 130, 142, 127, 134, 126, 148, 116, 141, 141, 142, 137, 134, 124, 133, 128, 137, 138, 119, 129, 135, 131, 124, 140, 131, 130, 128, 140, 141, 118, 142, 143, 130, 126, 124, 135, 140, 128, 132, 151, 136, 137, 131, 142, 131, 132, 135, 133, 135, 133, 138, 151, 137, 139, 132, 125, 139, 134, 131, 145, 148, 150, 121, 140, 130, 125, 118, 130, 150, 133, 142, 127, 140, 160, 138, 130, 127, 132, 139, 133, 152, 134, 113, 144, 128, 128, 131, 131, 132, 123, 140, 144, 132, 131, 134, 134, 137, 134, 132, 144, 132, 143, 169, 130, 132, 140, 119, 137, 129, 138, 135, 136, 134, 146, 137, 139, 129, 141, 132, 131, 155, 163, 129, 129, 114, 128, 131, 140, 136, 127, 145, 164, 143, 129, 143, 130, 137, 113, 142, 140, 143, 121, 128, 147, 132, 127, 114, 130, 136, 136, 130, 142, 139, 130, 126, 127, 147, 145, 131, 133, 138, 123, 127, 140, 158, 139, 114, 133, 138, 136, 122, 135, 132, 132, 124, 145, 139, 128, 130, 123, 152, 130, 131, 124, 136, 142, 146, 133, 132, 133, 122, 131, 140, 141, 124, 134, 142, 135, 118, 118, 120, 140, 154, 123, 130, 128, 147, 169, 140, 135, 149, 144, 131, 134, 137, 138, 163, 135, 144, 128, 126, 139, 136, 126, 103, 156, 117, 135, 129, 128, 119, 135, 129, 116, 130, 145, 129, 123, 133, 134, 138, 120, 130, 140, 164, 131, 139, 119, 155, 140, 149, 163, 128, 126, 140, 145, 144, 119, 137, 147, 136, 140, 130, 124, 114, 128, 132, 126, 133, 119, 128, 144, 128, 140, 135, 127, 142, 135, 138, 160, 125, 146, 138, 144, 133, 133, 136, 138, 136, 139, 140, 134, 132, 126, 140, 145, 136, 124, 132, 122, 131, 138, 145, 138, 135, 139, 138, 131, 128, 132, 135, 151, 126, 143, 149, 108, 126, 132, 128, 147, 129, 130, 152, 120, 132, 127, 143, 148, 136, 128, 149, 122, 121, 131, 126, 115, 139, 135, 138, 133, 158, 139, 142, 134, 137, 138, 133, 134, 121, 126, 132, 108, 127, 130, 129, 132, 132, 141, 127, 133, 131, 146, 137, 136, 137, 137, 137, 138, 127, 145, 138, 132, 142, 137, 142, 143, 131, 130, 135, 128, 136, 138, 126, 133, 131, 141, 143, 131, 133, 127, 122, 128, 120, 152, 132, 120, 129, 135, 128, 120, 134, 122, 145, 132, 139, 149, 129, 135, 138, 132, 114, 131, 132, 133, 133, 136, 148, 149, 135, 142, 118, 122, 131, 141, 129, 138, 150, 130, 137, 139, 118, 136, 138, 162, 129, 91, 117, 142, 132, 146, 140, 137, 147, 124, 158, 141, 135, 151, 123, 140, 138, 131, 148, 136, 135, 126, 133, 149, 154, 132, 148, 142, 147, 130, 138, 139, 149, 140, 140, 144, 158, 148, 135, 128, 140, 152, 159, 130, 128, 167, 144, 128, 119, 141, 142, 138, 138, 118, 133, 141, 134, 122, 132, 149, 133, 146, 131, 135, 133, 124, 137, 140, 144, 143, 145, 127, 136, 144, 134, 136, 132, 129, 133, 139, 157, 138, 157, 139, 140, 131, 141, 138, 126, 111, 135, 149, 130, 134, 135, 146, 135, 142, 137, 125, 146, 132, 116, 152, 127, 147, 136, 125, 125, 145, 135, 124, 135, 153, 136, 140, 120, 141, 136, 143, 137, 131, 132, 145, 134, 139, 120, 131, 133, 141, 144, 145, 121, 125, 138, 124, 128, 147, 143, 143, 153, 134, 145, 146, 128, 134, 141, 143, 141, 145, 148, 127, 145, 135, 116, 137, 148, 142, 150, 155, 126, 136, 129, 152, 150, 129, 135, 134, 135, 138, 136, 137, 139, 134, 130, 128, 135, 138, 137, 138, 136, 140, 124, 120, 141, 142, 132, 139, 135, 131, 133, 146, 133, 142, 122, 121, 133, 132, 122, 134, 135, 136, 141, 153, 126, 133, 148, 134, 136, 137, 120, 127, 122, 131, 134, 140, 113, 145, 135, 144, 119, 151, 131, 122, 114, 129, 131, 132, 137, 140, 127, 144, 124, 133, 131, 139, 131, 139, 136, 145, 124, 136, 139, 143, 130, 129, 137, 131, 132, 132, 122, 136, 124, 153, 138, 147, 144, 125, 128, 126, 135, 144, 132, 157, 135, 142, 139, 140, 145, 137, 134, 137, 120, 132, 134, 136, 139, 141, 139, 108, 147, 141, 134, 140, 126, 140, 130, 144, 141, 127, 134, 134, 133, 146, 137, 125, 136, 126, 135, 137, 121, 126, 119, 147, 139, 135, 140, 135, 132, 132, 130, 138, 126, 153, 141, 134, 163, 135, 137, 149, 126, 134, 146, 138, 143, 152, 135, 142, 141, 130, 136, 139, 137, 134, 137, 140, 116, 141, 144, 138, 136, 144, 128, 131, 137, 129, 135, 133, 140, 144, 138, 127, 143, 124, 144, 132, 156, 146, 141, 144, 142, 139, 152, 134, 134, 134, 131, 139, 141, 135, 133, 141, 127, 142, 144, 130, 134, 124, 130, 127, 142, 184, 130, 136, 135, 145, 120, 138, 132, 139, 138, 138, 142, 132, 130, 138, 139, 126, 133, 145, 144, 120, 138, 136, 148, 139, 131, 136, 125, 134, 135, 137, 137, 134, 131, 155, 133, 132, 142, 139, 133, 130, 142, 157, 144, 140, 137, 142, 141, 138, 140, 134, 141, 141, 144, 134, 137, 139, 127, 134, 142, 142, 148, 122, 143, 136, 132, 141, 142, 136, 142, 132, 136, 142, 135, 131, 129, 138, 151, 132, 140, 143, 137, 125, 131, 134, 136, 137, 145, 141, 140, 145, 135, 144, 139, 137, 126, 137, 132, 126, 128, 124, 138, 137, 109, 143, 142, 146, 132, 143, 137, 131, 145, 149, 142, 131, 135, 119, 142, 143, 128, 140, 149, 123, 145, 153, 129, 139, 130, 138, 146, 133, 134, 134, 141, 143, 137, 123, 132, 137, 127, 136, 138, 132, 107, 137, 148, 122, 129, 155, 124, 120, 137, 132, 140, 132, 141, 129, 138, 144, 120, 129, 123, 134, 145, 143, 137, 143, 130, 142, 140, 146, 125, 128, 134, 138, 144, 143, 129, 133, 133, 134, 141, 131, 135, 136, 92, 114, 126, 134, 138, 133, 138, 145, 139, 125, 142, 135, 129, 125, 137, 107, 138, 142, 138, 142, 132, 139, 139, 132, 137, 132, 134, 149, 135, 140, 133, 139, 130, 139, 139, 136, 146, 131, 133, 138, 145, 125, 153, 135, 143, 128, 139, 160, 137, 146, 137, 129, 122, 137, 121, 146, 136, 137, 139, 135, 142, 131, 137, 149, 130, 134, 143, 129, 136, 134, 127, 161, 146, 133, 127, 135, 127, 131, 130, 125, 140, 135, 137, 162, 129, 130, 123, 133, 132, 139, 120, 138, 130, 142, 136, 128, 134, 132, 138, 143, 131, 132, 133, 131, 137, 129, 141, 133, 137, 142, 141, 142, 153, 136, 130, 123, 130, 123, 141, 143, 143, 139, 142, 131, 138, 136, 132, 136, 128, 139, 134, 108, 132, 136, 136, 148, 132, 144, 127, 135, 137, 135, 133, 137, 142, 136, 118, 137, 142, 130, 139, 127, 148, 138, 135, 151, 132, 127, 143, 140, 140, 145, 136, 126, 119, 156, 141, 133, 139, 145, 138, 100, 137, 123, 135, 135, 133, 135, 141, 121, 139, 119, 130, 123, 133, 141, 136, 121, 125, 147, 138, 138, 137, 149, 137, 120, 134, 123, 136, 132, 181, 142, 135, 140, 124, 135, 135, 128, 122, 144, 134, 151, 140, 149, 128, 136, 127, 132, 140, 139, 127, 144, 137, 139, 137, 138, 139, 150, 148, 129, 132, 151, 147, 137, 141, 146, 131, 137, 148, 138, 139, 141, 132, 127, 140, 168, 136, 126, 139, 132, 130, 124, 137, 135, 145, 124, 126, 119, 135, 135, 135, 132, 136, 129, 140, 146, 132, 132, 126, 134, 146, 133, 133, 153, 125, 126, 133, 137, 152, 121, 128, 129, 130, 129, 138, 132, 145, 145, 126, 114, 139, 144, 146, 122, 164, 139, 134, 125, 134, 155, 146, 135, 127, 127, 135, 113, 128, 140, 118, 132, 134, 127, 126, 141, 130, 141, 143, 130, 131, 131, 132, 127, 137, 116, 147, 151, 123, 139, 148, 131, 115, 142, 134, 139, 141, 141, 136, 141, 128, 121, 129, 114, 125, 143, 142, 139, 146, 151, 131, 129, 143, 131, 129, 141, 143, 136, 135, 139, 140, 123, 130, 142, 129, 132, 130, 133, 123, 147, 127, 140, 142, 154, 140, 132, 135, 130, 153, 129, 145, 123, 137, 122, 127, 131, 136, 131, 143, 124, 127, 139, 131, 128, 140, 136, 130, 150, 142, 135, 127, 140, 127, 138, 127, 130, 128, 130, 138, 155, 127, 123, 124, 132, 121, 137, 138, 137, 131, 131, 134, 121, 127, 147, 128, 142, 130, 140, 129, 147, 130, 131, 134, 138, 144, 148, 146, 130, 132, 126, 153, 159, 132, 142, 136, 137, 129, 133, 140, 127, 133, 140, 129, 137, 145, 137, 132, 136, 132, 127, 132, 134, 137, 132, 140, 122, 143, 138, 137, 133, 129, 135, 141, 145, 135, 150, 134, 148, 128, 157, 141, 133, 120, 133, 120, 139, 125, 132, 131, 145, 130, 143, 121, 134, 133, 132, 141, 148, 125, 135, 136, 130, 138, 138, 133, 145, 126, 136, 138, 135, 124, 158, 135, 137, 136, 127, 115, 138, 133, 129, 151, 127, 131, 143, 149, 137, 144, 118, 128, 184, 124, 129, 124, 120, 135, 141, 137, 132, 133, 139, 147, 137, 128, 126, 153, 136, 138, 146, 140, 124, 128, 128, 139, 134, 130, 154, 122, 125, 131, 134, 138, 148, 115, 148, 146, 122, 140, 141, 135, 130, 141, 129, 136, 137, 135, 135, 136, 155, 140, 134, 128, 147, 127, 144, 130, 145, 119, 138, 137, 137, 130, 132, 125, 145, 138, 141, 123, 151, 134, 132, 139, 139, 145, 134, 136, 142, 160, 136, 138, 122, 119, 138, 149, 143, 133, 115, 127, 140, 124, 130, 144, 163, 131, 146, 146, 136, 150, 131, 120, 138, 126, 134, 133, 128, 128, 143, 135, 138, 136, 123, 146, 123, 133, 133, 147, 124, 149, 140, 132, 138, 135, 124, 131, 137, 125, 146, 123, 135, 136, 137, 147, 122, 135, 129, 132, 145, 124, 129, 130, 132, 132, 128, 143, 145, 140, 125, 155, 137, 133, 129, 129, 143, 130, 120, 128, 139, 139, 126, 142, 137, 126, 144, 143, 143, 135, 126, 147, 140, 127, 133, 127, 128, 135, 138, 141, 138, 143, 129, 128, 130, 146, 138, 133, 132, 138, 129, 144, 135, 131, 127, 138, 140, 138, 127, 125, 134, 140, 124, 132, 135, 144, 136, 125, 128, 142, 140, 146, 139, 141, 139, 134, 148, 132, 126, 136, 135, 122, 149, 138, 135, 128, 129, 139, 132, 139, 142, 134, 140, 125, 124, 144, 130, 135, 138, 140, 121, 124, 145, 125, 138, 141, 121, 125, 145, 149, 142, 138, 116, 131, 130, 142, 132, 139, 129, 144, 132, 142, 133, 136, 135, 132, 131, 127, 144, 131, 146, 147, 129, 126, 140, 124, 134, 133, 143, 143, 138, 134, 139, 132, 143, 131, 141, 143, 151, 144, 135, 142, 134, 154, 130, 131, 137, 135, 139, 126, 131, 128, 124, 133, 135, 138, 136, 133, 135, 129, 127, 134, 121, 133, 134, 144, 135, 142, 133, 136, 130, 128, 136, 142, 138, 138, 141, 134, 129, 148, 128, 136, 137, 145, 127, 121, 144, 138, 137, 135, 140, 144, 137, 136, 125, 138, 140, 135, 141, 160, 131, 129, 143, 120, 126, 119, 128, 156, 142, 158, 138, 130, 135, 141, 131, 126, 120, 148, 147, 136, 142, 120, 137, 138, 130, 140, 131, 129, 136, 135, 139, 137, 137, 133, 127, 139, 143, 127, 122, 134, 126, 131, 147, 131, 129, 130, 129, 134, 138, 127, 134, 134, 131, 128, 133, 131, 139, 123, 144, 127, 163, 128, 138, 142, 133, 135, 138, 140, 136, 134, 149, 141, 127, 145, 136, 138, 135, 145, 130, 120, 130, 145, 137, 150, 153, 151, 127, 132, 139, 142, 151, 156, 141, 127, 135, 125, 143, 125, 132, 127, 132, 133, 130, 130, 131, 149, 133, 137, 138, 152, 123, 139, 141, 137, 133, 135, 137, 147, 135, 122, 133, 128, 136, 135, 135, 152, 132, 144, 126, 133, 151, 145, 134, 135, 127, 138, 139, 142, 132, 123, 137, 131, 147, 128, 138, 132, 142, 133, 142, 137, 131, 138, 135, 142, 136, 128, 132, 143, 125, 135, 124, 141, 134, 147, 130, 138, 148, 139, 120, 133, 137, 143, 135, 141, 151, 130, 130, 127, 143, 151, 130, 140, 145, 143, 143, 138, 137, 136, 146, 134, 137, 117, 144, 130, 128, 134, 131, 124, 158, 135, 145, 136, 128, 139, 132, 136, 129, 143, 128, 150, 139, 120, 127, 128, 129, 135, 134, 141, 136, 126, 144, 134, 127, 139, 133, 132, 131, 163, 147, 138, 140, 142, 140, 139, 138, 143, 146, 136, 138, 129, 127, 136, 135, 147, 128, 148, 129, 151, 133, 115, 134, 138, 135, 139, 138, 134, 149, 119, 124, 138, 120, 126, 141, 137, 131, 150, 149, 140, 130, 130, 137, 142, 137, 129, 136, 137, 140, 147, 155, 133, 131, 133, 129, 135, 142, 124, 136, 135, 149, 157, 129, 119, 134, 143, 126, 135, 141, 144, 137, 132, 152, 139, 143, 137, 119, 135, 137, 132, 138, 134, 135, 136, 146, 150, 145, 112, 126, 152, 147, 141, 136, 130, 141, 141, 136, 136, 129, 137, 141, 146, 138, 128, 130, 146, 136, 143, 147, 130, 145, 129, 139, 126, 132, 139, 142, 121, 130, 122, 132, 140, 139, 130, 130, 146, 126, 143, 146, 128, 137, 132, 152, 128, 133, 135, 117, 135, 145, 149, 143, 148, 138, 146, 126, 135, 129, 130, 108, 144, 145, 139, 130, 134, 143, 122, 129, 127, 141, 143, 148, 141, 136, 142, 137, 152, 147, 135, 124, 132, 139, 124, 128, 142, 131, 146, 132, 128, 139, 119, 127, 120, 136, 131, 146, 150, 119, 142, 138, 109, 140, 140, 137, 132, 129, 125, 132, 132, 156, 124, 132, 130, 136, 136, 139, 138, 143, 134, 132, 139, 131, 158, 141, 156, 132, 147, 134, 136, 137, 122, 159, 134, 120, 127, 133, 137, 135, 139, 144, 142, 143, 130, 142, 180, 133, 140, 142, 135, 130, 172, 137, 143, 142, 134, 138, 139, 137, 135, 132, 142, 126, 121, 133, 132, 134, 138, 140, 131, 138, 131, 120, 152, 143, 141, 127, 145, 143, 130, 135, 137, 124, 142, 146, 133, 135, 141, 142, 138, 127, 129, 132, 124, 128, 145, 121, 137, 136, 147, 127, 148, 161, 135, 130, 138, 151, 124, 132, 131, 140, 132, 142, 122, 132, 146, 133, 145, 146, 135, 145, 124, 134, 130, 140, 149, 160, 132, 144, 125, 128, 135, 132, 140, 129, 130, 130, 144, 135, 147, 129, 141, 135, 135, 126, 133, 143, 137, 157, 133, 120, 136, 137, 128, 138, 130, 135, 140, 150, 141, 127, 129, 131, 149, 138, 120, 133, 138, 128, 121, 157, 133, 140, 124, 129, 127, 134, 130, 153, 144, 140, 130, 142, 145, 147, 132, 152, 120, 114, 147, 129, 129, 138, 139, 143, 129, 130, 135, 130, 136, 127, 118, 137, 134, 147, 114, 138, 129, 119, 135, 115, 134, 129, 132, 139, 141, 139, 140, 140, 134, 134, 133, 146, 134, 146, 132, 127, 133, 126, 146, 129, 140, 127, 133, 126, 133, 125, 139, 126, 138, 127, 147, 142, 147, 132, 138, 140, 145, 160, 122, 131, 134, 138, 133, 130, 147, 128, 139, 128, 137, 149, 141, 133, 127, 143, 136, 120, 119, 158, 127, 141, 139, 133, 132, 129, 132, 150, 140, 123, 147, 135, 136, 130, 135, 143, 139, 131, 148, 147, 150, 149, 134, 132, 127, 130, 147, 123, 141, 142, 132, 144, 123, 130, 124, 128, 142, 149, 141, 127, 139, 147, 135, 134, 148, 142, 136, 146, 132, 128, 141, 133, 157, 156, 163, 126, 128, 141, 131, 130, 133, 125, 132, 131, 134, 134, 142, 147, 121, 132, 147, 135, 135, 150, 130, 145, 129, 136, 127, 135, 116, 145, 138, 115, 133, 124, 141, 137, 135, 138, 147, 140, 107, 131, 132, 132, 135, 132, 119, 147, 138, 137, 140, 144, 136, 149, 132, 141, 136, 156, 126, 134, 130, 129, 130, 133, 132, 130, 132, 134, 135, 132, 138, 145, 122, 133, 150, 135, 133, 120, 116, 139, 137, 140, 140, 142, 125, 154, 166, 132, 145, 140, 134, 125, 152, 141, 127, 142, 139, 140, 137, 129, 135, 134, 136, 143, 126, 137, 128, 145, 122, 135, 132, 151, 138, 127, 133, 125, 132, 128, 129, 131, 142, 127, 137, 147, 125, 135, 137, 130, 136, 153, 142, 131, 131, 129, 123, 127, 132, 137, 137, 125, 130, 137, 131, 131, 125, 150, 135, 141, 127, 139, 137, 142, 131, 144, 146, 135, 143, 138, 142, 133, 134, 134, 135, 150, 142, 139, 142, 132, 155, 155, 144, 141, 135, 142, 132, 132, 139, 141, 139, 145, 142, 155, 129, 130, 160, 155, 129, 140, 136, 123, 132, 146, 134, 136, 134, 121, 136, 152, 138, 136, 137, 131, 153, 134, 141, 142, 118, 137, 147, 137, 136, 145, 143, 128, 138, 121, 130, 142, 136, 139, 137, 115, 134, 125, 138, 143, 145, 137, 112, 140, 132, 136, 147, 135, 151, 131, 134, 126, 130, 133, 141, 131, 141, 136, 144, 135, 140, 130, 142, 136, 130, 133, 130, 127, 130, 136, 132, 142, 129, 134, 140, 131, 139, 137, 132, 139, 123, 129, 142, 144, 139, 121, 155, 142, 142, 132, 156, 135, 140, 142, 142, 137, 136, 145, 138, 132, 127, 136, 142, 120, 135, 129, 145, 139, 128, 130, 130, 146, 140, 130, 142, 145, 130, 129, 123, 140, 131, 127, 138, 122, 153, 139, 127, 129, 139, 129, 151, 145, 139, 140, 147, 135, 136, 135, 135, 126, 138, 133, 134, 133, 146, 134, 147, 138, 132, 131, 130, 125, 161, 133, 138, 126, 138, 141, 137, 134, 137, 141, 139, 137, 133, 112, 145, 115, 131, 120, 142, 129, 133, 148, 140, 135, 157, 139, 130, 118, 131, 135, 134, 127, 144, 125, 125, 147, 134, 135, 141, 135, 136, 141, 126, 150, 140, 136, 135, 125, 139, 134, 172, 132, 141, 132, 131, 126, 133, 126, 131, 143, 131, 131, 135, 139, 136, 151, 126, 129, 137, 130, 139, 146, 125, 163, 127, 136, 136, 118, 125, 136, 144, 134, 125, 128, 132, 138, 147, 129, 137, 136, 132, 141, 148, 150, 134, 139, 150, 147, 125, 138, 143, 125, 133, 139, 139, 141, 142, 141, 151, 132, 139, 133, 127, 121, 139, 133, 148, 135, 129, 140, 135, 134, 138, 139, 143, 131, 133, 131, 149, 132, 130, 129, 137, 143, 133, 144, 134, 128, 142, 132, 133, 130, 147, 142, 140, 127, 131, 164, 128, 135, 127, 139, 144, 132, 138, 135, 128, 144, 121, 137, 125, 137, 136, 121, 131, 154, 141, 130, 145, 146, 148, 141, 133, 142, 141, 131, 140, 132, 142, 136, 125, 127, 135, 140, 137, 134, 147, 127, 140, 134, 136, 150, 132, 138, 134, 121, 127, 115, 151, 136, 134, 111, 138, 140, 134, 126, 141, 163, 124, 126, 124, 129, 120, 141, 130, 140, 134, 135, 120, 138, 133, 133, 136, 138, 138, 139, 136, 137, 126, 138, 133, 141, 107, 134, 135, 136, 138, 140, 132, 142, 140, 142, 138, 140, 132, 139, 138, 130, 148, 133, 133, 145, 144, 137, 144, 132, 141, 143, 140, 142, 144, 116, 137, 130, 140, 137, 146, 144, 136, 145, 128, 148, 133, 129, 122, 134, 108, 138, 143, 126, 124, 143, 133, 138, 131, 138, 142, 133, 138, 121, 137, 137, 139, 130, 127, 140, 142, 140, 128, 139, 131, 136, 139, 143, 144, 127, 133, 125, 139, 140, 134, 135, 140, 135, 133, 144, 134, 142, 129, 130, 132, 137, 126, 142, 138, 125, 131, 138, 143, 129, 129, 132, 138, 141, 142, 131, 136, 129, 141, 131, 135, 137, 140, 163, 133, 142, 134, 135, 141, 130, 134, 127, 151, 137, 121, 152, 144, 134, 140, 137, 137, 135, 144, 122, 134, 136, 132, 132, 133, 127, 139, 149, 137, 134, 119, 129, 131, 139, 143, 127, 133, 143, 125, 130, 130, 119, 135, 137, 131, 140, 140, 122, 131, 145, 130, 141, 131, 130, 142, 130, 139, 139, 127, 150, 139, 126, 129, 129, 146, 134, 140, 133, 130, 128, 148, 135, 136, 139, 148, 137, 131, 133, 136, 116, 130, 130, 135, 140, 145, 132, 136, 143, 123, 151, 130, 153, 140, 137, 136, 128, 131, 130, 143, 139, 131, 132, 154, 125, 136, 131, 123, 140, 136, 139, 125, 142, 143, 133, 127, 137, 132, 130, 136, 136, 136, 132, 127, 118, 126, 138, 134, 133, 151, 134, 139, 129, 119, 146, 131, 142, 145, 139, 149, 132, 125, 138, 129, 131, 144, 134, 133, 131, 125, 133, 140, 116, 142, 137, 132, 133, 134, 134, 141, 143, 144, 132, 142, 130, 133, 151, 143, 136, 136, 135, 135, 136, 137, 137, 133, 147, 146, 138, 134, 139, 141, 141, 131, 143, 138, 140, 135, 135, 130, 141, 132, 132, 128, 156, 131, 133, 135, 122, 138, 132, 142, 136, 130, 128, 142, 147, 135, 132, 143, 132, 135, 151, 138, 134, 141, 123, 135, 139, 138, 137, 131, 136, 130, 136, 140, 137, 127, 154, 127, 130, 139, 125, 137, 129, 132, 137, 124, 139, 128, 131, 115, 131, 138, 134, 134, 140, 141, 133, 142, 138, 124, 138, 129, 131, 142, 139, 128, 124, 133, 137, 132, 139, 132, 130, 134, 165, 121, 128, 133, 152, 129, 139, 134, 131, 136, 140, 138, 135, 146, 132, 139, 134, 137, 128, 147, 138, 134, 132, 127, 115, 129, 133, 135, 131, 133, 132, 145, 134, 144, 128, 128, 140, 137, 145, 136, 133, 135, 136, 133, 129, 140, 141, 139, 148, 132, 144, 136, 132, 135, 140, 156, 133, 134, 145, 143, 137, 121, 132, 124, 136, 139, 125, 129, 133, 137, 141, 137, 137, 134, 135, 142, 127, 134, 117, 129, 136, 132, 143, 148, 137, 135, 145, 141, 141, 127, 145, 130, 147, 130, 128, 121, 130, 134, 127, 137, 135, 125, 143, 133, 137, 137, 124, 136, 138, 139, 122, 131, 130, 139, 151, 144, 139, 141, 137, 132, 133, 138, 132, 131, 135, 138, 139, 132, 134, 138, 138, 140, 134, 148, 130, 125, 134, 133, 135, 140, 139, 132, 124, 131, 140, 134, 131, 125, 138, 121, 132, 140, 139, 138, 141, 144, 140, 135, 147, 128, 143, 140, 130, 139, 117, 132, 132, 135, 122, 137, 148, 131, 143, 139, 145, 136, 140, 145, 137, 149, 135, 141, 132, 128, 139, 142, 138, 138, 139, 138, 130, 134, 138, 138, 137, 135, 138, 132, 142, 130, 131, 135, 136, 130, 138, 135, 122, 135, 148, 136, 132, 145, 140, 135, 144, 134, 140, 140, 141, 135, 131, 122, 127, 150, 140, 118, 139, 134, 128, 131, 152, 132, 135, 142, 137, 130, 133, 134, 135, 137, 156, 131, 134, 131, 124, 148, 131, 132, 147, 122, 140, 137, 139, 134, 126, 125, 139, 135, 133, 132, 131, 136, 133, 137, 128, 136, 138, 141, 140, 132, 131, 138, 133, 139, 135, 133, 113, 141, 140, 143, 137, 133, 131, 149, 125, 131, 131, 130, 135, 134, 124, 146, 152, 138, 135, 144, 142, 137, 144, 139, 129, 141, 137, 141, 135, 127, 125, 139, 141, 135, 178, 135, 136, 132, 133, 133, 136, 135, 131, 133, 140, 139, 136, 146, 134, 140, 124, 132, 146, 136, 142, 135, 137, 139, 137, 136, 110, 135, 139, 131, 139, 132, 135, 147, 132, 144, 136, 135, 134, 142, 142, 134, 136, 153, 135, 125, 136, 130, 145, 132, 127, 140, 134, 137, 135, 135, 135, 138, 136, 145, 140, 139, 129, 139, 137, 129, 135, 135, 137, 130, 147, 133, 120, 137, 132, 134, 128, 129, 139, 135, 129, 136, 106, 144, 162, 133, 133, 134, 142, 137, 146, 138, 122, 141, 138, 143, 129, 144, 124, 136, 131, 134, 135, 135, 149, 130, 143, 138, 134, 144, 140, 125, 133, 140, 133, 139, 136, 131, 127, 108, 128, 140, 138, 124, 137, 139, 133, 148, 149, 141, 137, 140, 141, 140, 134, 139, 137, 131, 140, 126, 135, 144, 141, 141, 147, 138, 119, 139, 138, 138, 138, 139, 147, 140, 135, 137, 122, 139, 134, 128, 138, 136, 128, 142, 134, 129, 131, 132, 123, 130, 143, 144, 141, 132, 137, 134, 143, 144, 142, 123, 134, 128, 142, 132, 138, 140, 131, 131, 140, 134, 130, 137, 135, 132, 126, 133, 135, 134, 134, 127, 135, 140, 143, 148, 137, 143, 117, 139, 129, 133, 139, 132, 138, 150, 137, 137, 141, 130, 125, 138, 144, 135, 131, 141, 111, 129, 136, 135, 126, 137, 132, 127, 145, 143, 133, 128, 132, 134, 128, 131, 138, 133, 142, 132, 132, 140, 140, 102, 91, 136, 137, 154, 144, 136, 136, 138, 128, 126, 132, 133, 137, 142, 147, 135, 131, 155, 148, 137, 133, 131, 137, 130, 130, 140, 148, 148, 114, 132, 144, 125, 151, 122, 136, 143, 129, 133, 129, 133, 148, 136, 133, 136, 139, 132, 133, 132, 147, 143, 133, 91, 132, 142, 136, 143, 133, 135, 125, 138, 136, 130, 135, 137, 143, 132, 139, 131, 138, 132, 135, 138, 162, 132, 93, 125, 139, 130, 134, 135, 134, 137, 138, 131, 133, 141, 134, 142, 124, 136, 142, 92, 141, 139, 137, 126, 129, 139, 131, 144, 134, 140, 136, 125, 149, 136, 123, 143, 143, 125, 134, 135, 139, 128, 128, 141, 132, 136, 131, 129, 131, 130, 140, 124, 137, 138, 135, 137, 135, 137, 154, 139, 139, 135, 130, 142, 134, 141, 121, 138, 141, 150, 135, 136, 134, 164, 125, 131, 138, 141, 147, 129, 133, 146, 129, 140, 139, 140, 136, 137, 134, 127, 139, 133, 141, 129, 138, 142, 134, 129, 148, 128, 139, 142, 120, 127, 127, 149, 140, 143, 136, 128, 149, 175, 140, 134, 135, 121, 140, 137, 136, 128, 136, 122, 140, 130, 141, 130, 129, 135, 132, 128, 145, 146, 126, 107, 143, 144, 133, 139, 151, 133, 140, 139, 131, 125, 147, 149, 133, 154, 123, 152, 135, 140, 131, 129, 130, 151, 136, 125, 126, 131, 169, 135, 119, 128, 154, 134, 137, 133, 128, 139, 140, 129, 150, 126, 137, 157, 145, 140, 144, 119, 141, 131, 133, 140, 143, 129, 145, 147, 127, 126, 131, 138, 139, 141, 154, 137, 141, 127, 130, 144, 127, 147, 144, 135, 154, 140, 136, 133, 145, 142, 135, 129, 131, 136, 129, 132, 137, 138, 139, 126, 131, 140, 137, 140, 129, 127, 126, 139, 132, 125, 134, 138, 122, 148, 154, 141, 141, 148, 134, 151, 162, 138, 128, 140, 146, 127, 136, 136, 158, 122, 147, 129, 142, 143, 134, 134, 134, 151, 143, 133, 152, 144, 135, 128, 142, 140, 152, 125, 144, 176, 145, 155, 130, 135, 134, 141, 139, 132, 110, 125, 143, 127, 131, 144, 110, 140, 150, 132, 155, 131, 125, 138, 130, 136, 146, 135, 146, 145, 144, 126, 129, 123, 136, 161, 131, 134, 130, 137, 131, 138, 131, 133, 141, 128, 156, 137, 138, 137, 127, 127, 147, 121, 134, 133, 130, 140, 127, 140, 127, 138, 139, 128, 139, 141, 134, 133, 141, 139, 129, 146, 143, 125, 133, 136, 143, 123, 148, 133, 136, 140, 146, 145, 138, 139, 131, 139, 135, 140, 136, 133, 131, 133, 133, 118, 122, 142, 130, 146, 139, 130, 130, 135, 136, 128, 141, 144, 132, 147, 125, 127, 141, 143, 133, 131, 137, 136, 131, 125, 136, 138, 146, 146, 139, 126, 132, 134, 140, 145, 134, 134, 139, 142, 135, 135, 133, 144, 107, 143, 136, 137, 137, 137, 147, 133, 141, 135, 135, 147, 127, 139, 120, 122, 127, 136, 127, 132, 134, 129, 149, 132, 135, 128, 135, 144, 141, 137, 134, 141, 118, 136, 135, 134, 149, 141, 141, 147, 138, 137, 134, 141, 139, 146, 143, 151, 158, 142, 123, 141, 133, 153, 143, 139, 133, 136, 122, 141, 140, 133, 137, 141, 131, 126, 145, 123, 141, 140, 134, 133, 139, 140, 141, 144, 137, 146, 134, 128, 144, 151, 125, 135, 134, 148, 133, 125, 141, 128, 152, 137, 125, 143, 131, 140, 140, 135, 144, 130, 145, 131, 139, 127, 151, 146, 150, 136, 131, 129, 128, 141, 135, 132, 126, 150, 139, 135, 148, 132, 147, 132, 136, 130, 122, 136, 133, 138, 137, 148, 150, 144, 137, 127, 130, 138, 136, 133, 135, 109, 132, 131, 151, 128, 142, 148, 127, 131, 137, 106, 160, 115, 133, 139, 136, 141, 139, 164, 142, 135, 137, 144, 140, 145, 121, 146, 129, 126, 138, 123, 138, 128, 135, 134, 127, 149, 145, 130, 142, 157, 146, 134, 126, 131, 144, 116, 145, 131, 136, 127, 161, 138, 126, 148, 132, 150, 141, 142, 132, 131, 142, 136, 137, 128, 126, 144, 140, 131, 139, 127, 139, 140, 134, 129, 129, 132, 136, 151, 139, 141, 127, 148, 146, 135, 138, 145, 145, 128, 149, 126, 139, 134, 137, 129, 139, 130, 130, 113, 145, 133, 140, 125, 132, 128, 129, 152, 132, 129, 126, 131, 133, 145, 121, 138, 137, 131, 127, 136, 152, 134, 131, 150, 148, 116, 129, 137, 155, 132, 126, 139, 132, 137, 142, 128, 151, 148, 138, 136, 142, 135, 144, 132, 145, 132, 132, 126, 126, 132, 135, 145, 139, 142, 116, 154, 132, 137, 130, 138, 139, 146, 116, 136, 137, 125, 135, 123, 130, 141, 130, 134, 143, 143, 134, 133, 130, 139, 135, 152, 136, 139, 136, 118, 143, 134, 129, 132, 133, 133, 135, 133, 146, 129, 129, 148, 137, 135, 125, 124, 143, 167, 133, 136, 126, 131, 134, 117, 139, 147, 145, 143, 133, 129, 133, 137, 146, 158, 143, 131, 143, 142, 135, 137, 136, 120, 149, 119, 148, 129, 122, 129, 127, 139, 137, 140, 142, 140, 100, 129, 135, 138, 141, 143, 139, 135, 130, 133, 130, 128, 129, 134, 132, 145, 125, 131, 126, 140, 124, 133, 132, 159, 138, 127, 140, 131, 133, 124, 144, 131, 141, 133, 141, 138, 123, 138, 138, 118, 137, 152, 140, 135, 138, 133, 138, 134, 124, 134, 126, 143, 129, 120, 129, 134, 134, 137, 136, 130, 147, 132, 119, 127, 143, 146, 138, 123, 133, 132, 127, 138, 142, 120, 147, 146, 129, 134, 129, 147, 117, 117, 135, 120, 136, 139, 140, 127, 142, 134, 141, 128, 138, 136, 139, 143, 131, 145, 131, 126, 132, 121, 137, 135, 131, 130, 150, 139, 145, 135, 133, 130, 135, 144, 149, 148, 132, 120, 132, 139, 122, 129, 127, 125, 147, 137, 139, 128, 142, 141, 133, 131, 124, 121, 139, 133, 135, 122, 132, 124, 134, 141, 146, 137, 116, 143, 129, 124, 132, 132, 140, 143, 149, 118, 127, 138, 120, 149, 136, 130, 131, 138, 133, 148, 144, 113, 129, 119, 138, 134, 130, 127, 141, 147, 125, 126, 125, 137, 134, 130, 148, 130, 152, 137, 131, 130, 116, 141, 133, 139, 147, 148, 134, 150, 120, 144, 129, 140, 131, 122, 135, 145, 130, 136, 132, 118, 133, 135, 138, 134, 141, 135, 160, 128, 134, 132, 147, 144, 132, 138, 117, 135, 139, 136, 135, 135, 136, 130, 132, 110, 128, 142, 137, 144, 139, 143, 146, 128, 144, 141, 144, 134, 139, 130, 136, 110, 126, 137, 154, 160, 152, 123, 140, 136, 132, 142, 151, 125, 141, 144, 136, 134, 137, 140, 127, 151, 130, 146, 137, 133, 134, 135, 132, 120, 144, 120, 127, 129, 132, 137, 135, 118, 135, 139, 129, 134, 144, 132, 131, 130, 138, 123, 127, 129, 143, 135, 132, 130, 122, 108, 141, 145, 133, 124, 151, 130, 136, 129, 121, 126, 136, 143, 123, 141, 140, 154, 134, 115, 114, 146, 125, 121, 137, 136, 124, 124, 134, 133, 132, 151, 139, 131, 150, 128, 181, 129, 135, 138, 134, 147, 125, 136, 141, 131, 126, 127, 129, 108, 131, 124, 141, 145, 147, 132, 132, 136, 135, 132, 131, 136, 138, 136, 144, 155, 140, 123, 154, 113, 128, 146, 119, 131, 131, 137, 126, 136, 133, 150, 115, 133, 107, 121, 153, 136, 130, 153, 132, 141, 141, 146, 132, 132, 137, 131, 147, 110, 134, 122, 129, 128, 148, 124, 157, 132, 128, 132, 130, 134, 113, 136, 136, 127, 130, 140, 134, 134, 114, 148, 131, 137, 136, 142, 138, 128, 140, 149, 127, 146, 135, 111, 126, 138, 128, 132, 133, 143, 135, 146, 133, 121, 142, 131, 155, 127, 147, 118, 149, 132, 135, 134, 110, 150, 138, 118, 138, 143, 139, 130, 122, 116, 136, 135, 132, 145, 147, 122, 129, 120, 133, 132, 144, 124, 136, 156, 125, 115, 180, 135, 136, 128, 131, 142, 147, 128, 133, 130, 124, 135, 124, 132, 133, 130, 143, 126, 135, 126, 125, 122, 141, 132, 147, 129, 130, 137, 122, 139, 143, 142, 143, 126, 144, 128, 136, 138, 123, 157, 134, 137, 145, 129, 122, 143, 141, 138, 143, 136, 120, 131, 145, 136, 125, 151, 132, 151, 132, 141, 141, 148, 139, 153, 123, 130, 138, 143, 128, 127, 119, 131, 129, 140, 133, 124, 145, 149, 145, 143, 151, 119, 138, 137, 127, 149, 145, 141, 134, 137, 147, 145, 117, 135, 128, 137, 141, 118, 127, 162, 131, 126, 129, 142, 140, 139, 131, 137, 155, 137, 87, 127, 117, 134, 137, 142, 127, 147, 140, 94, 135, 135, 137, 114, 139, 129, 142, 143, 145, 140, 152, 151, 126, 147, 121, 138, 130, 121, 130, 135, 139, 123, 124, 136, 148, 128, 135, 133, 128, 139, 127, 116, 133, 132, 151, 114, 133, 159, 131, 125, 122, 140, 130, 130, 148, 144, 150, 134, 123, 137, 120, 132, 120, 135, 132, 129, 134, 138, 131, 132, 125, 123, 123, 124, 128, 128, 121, 146, 137, 138, 117, 146, 127, 152, 126, 131, 134, 139, 135, 157, 139, 141, 118, 148, 129, 134, 134, 160, 136, 140, 156, 127, 142, 161, 149, 139, 110, 136, 135, 129, 139, 146, 101, 140, 137, 126, 130, 146, 145, 116, 135, 131, 140, 133, 141, 134, 124, 124, 151, 138, 143, 134, 130, 126, 128, 140, 134, 151, 147, 112, 139, 118, 155, 129, 114, 119, 128, 140, 140, 136, 150, 134, 153, 119, 124, 156, 132, 155, 156, 153, 131, 141, 132, 128, 139, 138, 141, 142, 131, 137, 131, 146, 117, 155, 129, 126, 127, 139, 134, 131, 130, 140, 119, 124, 141, 144, 124, 136, 120, 140, 135, 123, 164, 136, 122, 135, 133, 159, 130, 128, 141, 124, 129, 147, 124, 145, 138, 137, 146, 126, 127, 134, 134, 137, 119, 129, 143, 141, 143, 128, 142, 134, 127, 116, 136, 131, 140, 137, 124, 136, 142, 134, 135, 134, 135, 130, 138, 142, 119, 131, 128, 134, 141, 131, 142, 141, 134, 141, 135, 136, 143, 138, 139, 139, 132, 145, 140, 139, 136, 135, 134, 133, 154, 136, 140, 129, 137, 131, 132, 132, 134, 135, 139, 135, 143, 139, 128, 141, 142, 136, 139, 140, 130, 139, 134, 142, 137, 131, 142, 133, 134, 136, 136, 139, 139, 140, 133, 132, 148, 138, 129, 140, 131, 130, 129, 141, 132, 130, 141, 140, 146, 135, 129, 132, 143, 142, 132, 129, 136, 136, 134, 136, 133, 132, 134, 134, 131, 140, 135, 136, 146, 140, 144, 138, 139, 142, 139, 134, 134, 140, 141, 133, 141, 140, 133, 132, 140, 143, 138, 138, 170, 136, 141, 137, 142, 142, 131, 131, 138, 145, 141, 136, 133, 135, 145, 138, 139, 130, 139, 146, 124, 142, 138, 138, 138, 143, 133, 144, 125, 131, 153, 181, 132, 142, 143, 129, 120, 134, 139, 135, 131, 135, 134, 150, 138, 140, 146, 140, 140, 143, 138, 136, 130, 133, 132, 142, 135, 139, 142, 139, 130, 135, 133, 136, 140, 136, 140, 136, 138, 125, 137, 134, 133, 129, 140, 137, 137, 136, 139, 135, 132, 135, 133, 130, 140, 139, 136, 140, 133, 140, 134, 131, 133, 131, 131, 138, 134, 130, 144, 131, 136, 138, 133, 134, 146, 131, 137, 135, 129, 131, 143, 130, 126, 142, 139, 126, 140, 130, 139, 143, 135, 133, 133, 141, 137, 133, 135, 144, 131, 144, 134, 129, 143, 138, 129, 143, 129, 135, 125, 143, 134, 136, 123, 145, 136, 129, 123, 132, 138, 135, 135, 148, 138, 129, 134, 138, 152, 145, 133, 142, 136, 132, 130, 126, 139, 137, 131, 128, 131, 127, 132, 141, 142, 145, 139, 143, 136, 134, 129, 139, 129, 147, 128, 137, 133, 140, 133, 135, 137, 140, 143, 138, 128, 149, 128, 139, 138, 132, 144, 132, 137, 130, 138, 129, 130, 143, 142, 138, 138, 132, 138, 143, 130, 121, 149, 117, 127, 128, 131, 143, 139, 138, 145, 149, 142, 135, 138, 136, 132, 140, 124, 123, 137, 137, 133, 134, 138, 128, 143, 133, 140, 134, 132, 141, 133, 131, 124, 151, 131, 136, 131, 136, 147, 133, 138, 133, 136, 130, 133, 131, 132, 144, 140, 138, 131, 130, 141, 153, 141, 133, 141, 133, 134, 127, 136, 148, 147, 133, 135, 133, 137, 130, 131, 138, 143, 136, 135, 135, 129, 136, 116, 132, 134, 145, 137, 120, 127, 130, 137, 140, 135, 147, 129, 138, 139, 127, 149, 132, 135, 126, 137, 121, 140, 126, 126, 125, 150, 136, 126, 138, 130, 137, 142, 143, 135, 157, 137, 137, 133, 141, 137, 136, 141, 132, 133, 141, 131, 131, 136, 140, 128, 145, 160, 137, 133, 141, 106, 137, 144, 126, 129, 138, 130, 132, 136, 129, 133, 131, 130, 137, 138, 128, 133, 136, 142, 138, 140, 145, 147, 138, 138, 141, 136, 143, 142, 135, 131, 131, 138, 138, 139, 141, 135, 131, 137, 127, 150, 137, 160, 136, 146, 134, 135, 135, 136, 139, 147, 139, 142, 144, 143, 145, 139, 140, 143, 120, 124, 138, 134, 136, 117, 125, 135, 126, 136, 120, 138, 137, 126, 134, 138, 130, 144, 140, 137, 136, 133, 132, 136, 135, 120, 129, 133, 129, 125, 118, 128, 115, 148, 135, 130, 145, 156, 142, 141, 141, 140, 131, 131, 137, 131, 136, 125, 140, 131, 131, 138, 147, 167, 167, 131, 132, 134, 138, 145, 135, 131, 151, 132, 140, 129, 141, 111, 133, 156, 122, 137, 142, 137, 134, 148, 148, 141, 136, 112, 136, 155, 128, 142, 129, 145, 154, 123, 129, 128, 135, 145, 145, 137, 119, 140, 141, 136, 159, 137, 126, 135, 132, 137, 128, 109, 138, 138, 133, 129, 145, 148, 118, 136, 146, 141, 141, 127, 127, 128, 144, 134, 145, 133, 142, 135, 143, 135, 126, 140, 125, 136, 141, 128, 132, 132, 128, 131, 143, 146, 139, 137, 126, 150, 131, 145, 138, 139, 129, 132, 115, 146, 141, 137, 130, 136, 136, 124, 132, 145, 132, 136, 135, 136, 132, 156, 130, 140, 134, 137, 152, 148, 132, 139, 147, 131, 149, 131, 152, 142, 141, 138, 134, 147, 138, 126, 145, 171, 129, 128, 143, 131, 137, 138, 129, 140, 141, 140, 135, 147, 137, 139, 133, 136, 123, 132, 128, 135, 130, 134, 137, 126, 141, 134, 129, 175, 132, 151, 131, 141, 125, 123, 141, 128, 132, 127, 162, 133, 132, 138, 134, 133, 137, 137, 172, 135, 140, 119, 133, 153, 146, 139, 144, 152, 144, 133, 135, 149, 138, 129, 137, 153, 134, 138, 123, 114, 138, 130, 131, 135, 139, 135, 134, 126, 121, 186, 160, 147, 141, 136, 137, 139, 179, 142, 136, 127, 146, 124, 135, 146, 134, 133, 139, 137, 126, 147, 143, 140, 140, 140, 142, 142, 136, 137, 142, 138, 130, 136, 124, 130, 145, 136, 133, 119, 148, 132, 122, 144, 168, 135, 129, 126, 139, 125, 175, 140, 139, 132, 144, 136, 122, 134, 139, 125, 142, 133, 141, 142, 147, 136, 142, 140, 132, 131, 112, 131, 128, 127, 131, 128, 125, 139, 140, 153, 129, 138, 132, 147, 133, 117, 142, 138, 143, 138, 134, 133, 136, 135, 147, 127, 152, 125, 134, 139, 126, 152, 142, 127, 129, 154, 132, 131, 126, 144, 155, 131, 133, 135, 142, 128, 129, 138, 135, 166, 150, 123, 141, 133, 137, 132, 145, 139, 149, 124, 132, 136, 139, 144, 137, 132, 151, 135, 126, 146, 139, 121, 132, 143, 128, 116, 126, 137, 131, 119, 131, 131, 140, 139, 130, 152, 140, 129, 134, 152, 140, 133, 147, 139, 138, 146, 131, 146, 146, 121, 148, 141, 133, 142, 140, 149, 124, 143, 136, 135, 137, 136, 134, 140, 134, 112, 142, 136, 139, 136, 121, 144, 138, 141, 130, 136, 144, 136, 141, 126, 146, 143, 138, 126, 137, 144, 139, 134, 142, 125, 142, 137, 145, 130, 140, 145, 123, 141, 142, 141, 128, 130, 138, 153, 133, 134, 128, 123, 135, 124, 133, 140, 144, 138, 115, 144, 140, 125, 130, 143, 137, 142, 137, 147, 145, 141, 127, 148, 157, 130, 156, 130, 147, 141, 156, 144, 129, 126, 130, 156, 182, 146, 113, 119, 144, 145, 138, 142, 139, 133, 141, 119, 122, 149, 149, 137, 170, 133, 142, 139, 124, 129, 130, 131, 135, 128, 132, 143, 135, 121, 141, 142, 133, 135, 132, 118, 123, 144, 144, 132, 136, 141, 134, 136, 149, 144, 131, 148, 137, 130, 129, 130, 133, 132, 145, 119, 150, 146, 157, 131, 134, 120, 124, 131, 139, 131, 149, 135, 158, 129, 129, 130, 161, 139, 132, 138, 129, 132, 138, 140, 135, 154, 128, 134, 141, 138, 146, 126, 127, 141, 154, 126, 137, 142, 140, 140, 143, 130, 135, 116, 129, 148, 137, 131, 144, 139, 139, 137, 134, 113, 128, 127, 136, 149, 139, 154, 142, 147, 134, 138, 123, 116, 124, 133, 138, 134, 127, 143, 135, 134, 145, 135, 153, 138, 137, 144, 129, 145, 146, 136, 134, 147, 131, 146, 145, 134, 159, 140, 139, 143, 132, 150, 135, 135, 144, 137, 150, 120, 141, 125, 137, 130, 136, 151, 132, 134, 146, 129, 156, 149, 124, 145, 138, 139, 146, 131, 145, 147, 133, 153, 139, 147, 126, 131, 124, 134, 165, 137, 130, 148, 143, 126, 129, 138, 153, 145, 141, 139, 128, 134, 136, 138, 121, 141, 124, 142, 140, 132, 141, 139, 135, 135, 148, 130, 154, 121, 111, 133, 138, 129, 135, 140, 134, 128, 124, 143, 133, 140, 147, 141, 147, 142, 142, 142, 140, 135, 138, 161, 150, 133, 153, 143, 155, 148, 152, 133, 139, 140, 132, 125, 151, 131, 118, 129, 144, 130, 135, 131, 141, 139, 133, 139, 144, 143, 146, 128, 144, 137, 131, 134, 135, 146, 140, 142, 117, 142, 134, 157, 151, 131, 132, 138, 128, 129, 151, 143, 138, 136, 133, 142, 134, 154, 146, 127, 143, 136, 136, 130, 132, 130, 147, 171, 132, 136, 128, 143, 131, 149, 133, 134, 131, 137, 140, 143, 130, 125, 131, 115, 140, 144, 148, 134, 147, 135, 138, 135, 124, 140, 136, 137, 176, 132, 149, 146, 127, 130, 138, 147, 137, 134, 123, 143, 140, 138, 138, 123, 133, 144, 138, 134, 169, 149, 115, 134, 154, 142, 135, 133, 143, 134, 140, 116, 140, 138, 126, 140, 136, 128, 128, 134, 138, 131, 129, 143, 155, 156, 134, 147, 125, 116, 120, 136, 140, 142, 103, 133, 126, 144, 118, 133, 141, 153, 130, 140, 118, 145, 139, 135, 133, 141, 128, 144, 130, 161, 140, 136, 142, 136, 134, 131, 151, 137, 159, 120, 132, 153, 128, 136, 145, 134, 142, 133, 133, 138, 150, 150, 144, 135, 154, 134, 136, 126, 141, 145, 130, 129, 146, 133, 131, 119, 139, 133, 144, 130, 145, 130, 148, 147, 137, 146, 118, 119, 139, 139, 123, 144, 153, 152, 137, 149, 144, 133, 134, 132, 139, 148, 132, 138, 144, 131, 124, 136, 137, 142, 124, 137, 116, 144, 138, 125, 135, 138, 138, 136, 140, 115, 138, 128, 143, 147, 147, 135, 140, 136, 154, 128, 135, 152, 130, 142, 132, 143, 142, 140, 124, 121, 130, 132, 130, 137, 132, 141, 134, 151, 103, 143, 124, 127, 138, 134, 143, 126, 124, 118, 104, 134, 142, 138, 140, 141, 145, 149, 136, 133, 123, 135, 134, 147, 142, 130, 124, 135, 117, 137, 136, 128, 136, 172, 132, 152, 157, 133, 111, 134, 124, 153, 142, 136, 141, 130, 140, 123, 133, 128, 131, 131, 128, 122, 131, 110, 141, 160, 136, 134, 125, 137, 127, 142, 150, 121, 138, 132, 136, 132, 127, 136, 138, 133, 124, 128, 131, 148, 122, 137, 136, 132, 131, 156, 145, 135, 165, 117, 141, 127, 145, 142, 124, 144, 122, 129, 134, 133, 120, 121, 167, 119, 144, 126, 138, 121, 136, 137, 133, 121, 133, 135, 151, 138, 122, 146, 149, 128, 129, 132, 126, 148, 124, 145, 140, 144, 147, 129, 137, 126, 131, 133, 131, 140, 153, 143, 131, 125, 141, 145, 119, 132, 131, 127, 161, 130, 133, 141, 144, 138, 108, 142, 128, 135, 138, 150, 140, 133, 147, 137, 127, 134, 143, 134, 123, 135, 132, 126, 113, 116, 126, 139, 138, 130, 132, 122, 140, 137, 133, 135, 103, 134, 138, 141, 147, 142, 138, 110, 128, 121, 136, 131, 132, 152, 138, 122, 148, 149, 131, 137, 143, 138, 143, 135, 143, 150, 136, 153, 144, 158, 141, 134, 145, 122, 124, 142, 126, 150, 133, 148, 127, 134, 136, 148, 151, 135, 154, 129, 123, 133, 144, 143, 140, 114, 125, 148, 119, 118, 142, 141, 138, 140, 126, 124, 140, 135, 131, 138, 141, 138, 134, 130, 124, 132, 136, 138, 130, 137, 144, 127, 127, 135, 135, 132, 153, 135, 119, 134, 145, 121, 117, 127, 123, 151, 139, 136, 135, 122, 135, 106, 141, 137, 145, 133, 125, 124, 134, 145, 148, 141, 139, 123, 162, 134, 133, 128, 135, 133, 135, 132, 131, 116, 129, 130, 116, 122, 126, 141, 131, 115, 149, 132, 136, 126, 140, 130, 132, 126, 140, 144, 115, 130, 139, 155, 134, 153, 114, 135, 137, 137, 141, 128, 145, 140, 143, 136, 135, 127, 135, 139, 132, 140, 124, 150, 150, 147, 137, 139, 145, 131, 144, 141, 143, 142, 132, 141, 124, 138, 132, 139, 144, 141, 148, 139, 135, 135, 133, 142, 130, 130, 132, 137, 131, 134, 139, 145, 140, 142, 128, 149, 135, 135, 122, 143, 140, 139, 140, 146, 142, 138, 139, 134, 127, 128, 127, 142, 131, 145, 130, 131, 135, 138, 143, 141, 138, 151, 120, 138, 143, 118, 143, 137, 110, 127, 134, 131, 140, 132, 129, 129, 141, 130, 150, 116, 145, 137, 134, 130, 129, 163, 135, 141, 138, 139, 150, 138, 137, 130, 140, 137, 137, 128, 134, 131, 131, 143, 142, 140, 122, 132, 147, 141, 147, 173, 143, 141, 119, 139, 133, 132, 135, 132, 153, 142, 136, 139, 131, 132, 123, 134, 145, 142, 132, 112, 149, 123, 140, 115, 150, 141, 140, 152, 139, 135, 133, 134, 121, 138, 116, 143, 133, 130, 138, 133, 139, 129, 127, 137, 133, 140, 134, 132, 130, 132, 151, 128, 134, 140, 126, 120, 141, 112, 149, 123, 131, 138, 145, 124, 135, 126, 141, 137, 150, 133, 133, 126, 141, 139, 137, 117, 134, 139, 138, 142, 132, 140, 140, 139, 145, 128, 140, 135, 135, 143, 148, 131, 139, 134, 130, 119, 138, 129, 134, 127, 126, 138, 136, 124, 136, 133, 134, 134, 140, 142, 140, 147, 133, 118, 139, 133, 142, 128, 145, 134, 125, 134, 136, 141, 131, 138, 133, 161, 148, 141, 126, 148, 137, 138, 130, 135, 119, 133, 140, 138, 134, 137, 135, 128, 131, 129, 135, 151, 132, 126, 129, 151, 141, 131, 151, 137, 149, 133, 125, 150, 141, 129, 145, 119, 149, 134, 134, 145, 142, 132, 139, 141, 140, 135, 116, 135, 140, 150, 142, 136, 130, 116, 132, 133, 140, 131, 133, 163, 128, 122, 137, 132, 128, 147, 147, 134, 133, 137, 141, 126, 138, 125, 145, 137, 120, 138, 134, 138, 143, 134, 132, 144, 140, 134, 134, 138, 142, 148, 143, 139, 126, 174, 142, 158, 139, 133, 132, 133, 140, 137, 135, 130, 140, 136, 137, 134, 139, 134, 129, 139, 130, 129, 142, 139, 148, 147, 128, 132, 137, 129, 130, 140, 143, 150, 133, 157, 134, 131, 134, 136, 142, 141, 141, 134, 139, 141, 149, 145, 139, 134, 137, 144, 150, 144, 139, 127, 125, 136, 143, 127, 121, 148, 148, 153, 121, 129, 129, 141, 119, 137, 133, 135, 135, 139, 138, 135, 141, 145, 131, 139, 133, 135, 141, 128, 135, 147, 129, 124, 136, 127, 139, 132, 140, 124, 138, 138, 139, 139, 129, 136, 122, 141, 141, 145, 127, 110, 135, 140, 131, 124, 143, 133, 163, 137, 137, 142, 130, 145, 132, 133, 125, 128, 136, 128, 140, 132, 144, 143, 125, 121, 128, 129, 134, 140, 129, 138, 139, 133, 131, 138, 131, 147, 147, 123, 157, 143, 158, 167, 140, 131, 133, 140, 133, 142, 128, 143, 139, 141, 145, 138, 129, 140, 143, 138, 132, 147, 125, 131, 129, 139, 146, 131, 128, 140, 137, 137, 138, 140, 135, 139, 127, 139, 126, 134, 140, 134, 138, 135, 136, 147, 141, 139, 107, 131, 133, 135, 130, 140, 142, 136, 143, 137, 141, 124, 127, 135, 127, 134, 140, 130, 132, 126, 133, 129, 139, 162, 131, 111, 133, 136, 143, 150, 131, 133, 132, 131, 124, 121, 146, 126, 140, 135, 117, 124, 138, 138, 141, 129, 136, 132, 155, 140, 135, 121, 132, 137, 136, 149, 137, 143, 147, 134, 132, 122, 144, 132, 133, 140, 153, 133, 133, 144, 145, 147, 143, 138, 128, 136, 139, 141, 139, 122, 134, 155, 130, 135, 148, 117, 153, 130, 143, 151, 138, 149, 144, 137, 138, 142, 136, 134, 134, 129, 122, 140, 132, 131, 143, 134, 139, 138, 144, 134, 135, 130, 133, 128, 144, 138, 136, 125, 150, 140, 133, 132, 126, 136, 148, 124, 130, 133, 135, 143, 129, 141, 137, 136, 126, 148, 135, 138, 113, 154, 137, 143, 135, 136, 138, 120, 135, 130, 132, 135, 139, 155, 137, 145, 138, 132, 145, 155, 125, 146, 147, 130, 126, 129, 144, 128, 145, 130, 146, 125, 151, 124, 135, 129, 136, 135, 129, 130, 158, 146, 134, 135, 144, 132, 133, 128, 138, 131, 120, 138, 144, 141, 127, 129, 144, 134, 136, 140, 128, 160, 141, 136, 141, 133, 136, 146, 132, 129, 142, 154, 136, 133, 152, 138, 133, 119, 128, 121, 136, 150, 141, 145, 163, 137, 145, 139, 133, 131, 131, 137, 147, 123, 134, 128, 134, 147, 118, 133, 123, 125, 138, 145, 147, 152, 129, 134, 149, 131, 131, 123, 128, 139, 135, 131, 132, 133, 111, 141, 138, 132, 135, 145, 144, 128, 132, 130, 134, 130, 124, 141, 130, 149, 134, 131, 140, 137, 137, 110, 130, 141, 135, 132, 129, 129, 153, 136, 135, 130, 140, 135, 145, 131, 130, 131, 136, 135, 147, 145, 132, 148, 121, 135, 147, 118, 134, 132, 127, 140, 134, 133, 143, 108, 129, 128, 130, 138, 137, 133, 137, 143, 139, 141, 122, 129, 150, 153, 134, 127, 136, 132, 131, 130, 127, 149, 123, 143, 130, 140, 135, 141, 132, 136, 133, 143, 155, 130, 132, 131, 138, 148, 130, 126, 120, 143, 165, 127, 136, 138, 126, 135, 131, 142, 138, 139, 131, 144, 148, 139, 131, 137, 130, 134, 125, 124, 139, 134, 131, 136, 124, 130, 136, 123, 141, 143, 135, 143, 125, 147, 154, 143, 141, 125, 133, 141, 131, 140, 134, 134, 133, 132, 127, 146, 140, 137, 134, 141, 149, 134, 126, 135, 144, 125, 137, 138, 131, 133, 155, 130, 145, 136, 131, 133, 151, 134, 145, 137, 132, 134, 127, 133, 146, 127, 125, 159, 160, 143, 132, 133, 134, 145, 133, 119, 157, 137, 136, 126, 143, 120, 145, 143, 134, 132, 146, 138, 133, 113, 135, 139, 137, 140, 133, 117, 136, 148, 144, 140, 134, 144, 140, 123, 132, 137, 122, 121, 135, 146, 137, 141, 123, 130, 151, 163, 123, 144, 121, 137, 146, 119, 145, 128, 132, 128, 139, 132, 127, 145, 144, 132, 139, 138, 142, 129, 130, 140, 130, 133, 149, 128, 133, 139, 131, 140, 147, 147, 141, 139, 152, 130, 99, 146, 129, 135, 127, 134, 152, 127, 142, 130, 137, 127, 133, 137, 150, 136, 140, 128, 128, 143, 140, 138, 133, 134, 132, 131, 124, 145, 128, 129, 126, 133, 138, 138, 153, 135, 147, 130, 146, 139, 133, 139, 129, 138, 120, 137, 139, 131, 150, 137, 147, 122, 121, 140, 125, 127, 133, 131, 118, 135, 127, 128, 139, 143, 143, 123, 136, 121, 138, 154, 134, 140, 135, 134, 123, 129, 132, 125, 149, 132, 136, 133, 134, 139, 138, 134, 149, 136, 135, 132, 123, 130, 122, 118, 136, 135, 144, 140, 135, 126, 139, 133, 123, 148, 134, 129, 136, 132, 141, 116, 140, 134, 145, 154, 128, 117, 148, 131, 125, 145, 141, 125, 148, 135, 142, 132, 133, 137, 140, 131, 134, 143, 133, 140, 129, 144, 140, 126, 152, 133, 137, 118, 135, 124, 124, 149, 125, 131, 128, 123, 137, 134, 162, 139, 144, 145, 137, 144, 129, 131, 138, 137, 128, 140, 155, 155, 102, 134, 210, 135, 133, 134, 125, 142, 138, 136, 129, 147, 135, 136, 95, 137, 129, 139, 135, 136, 131, 141, 145, 136, 132, 140, 131, 122, 141, 129, 144, 166, 128, 133, 133, 131, 142, 131, 135, 127, 144, 133, 140, 124, 133, 127, 120, 126, 141, 147, 139, 129, 138, 136, 141, 135, 131, 139, 139, 123, 130, 148, 207, 130, 140, 128, 140, 144, 112, 135, 126, 136, 143, 129, 131, 141, 113, 126, 137, 132, 119, 139, 129, 123, 124, 131, 136, 137, 141, 129, 124, 128, 140, 140, 145, 127, 141, 136, 127, 130, 123, 132, 142, 135, 134, 116, 117, 142, 129, 139, 128, 122, 143, 131, 130, 137, 134, 139, 147, 146, 147, 130, 128, 135, 141, 141, 122, 139, 141, 136, 119, 143, 136, 143, 127, 131, 125, 142, 155, 124, 131, 135, 167, 138, 135, 121, 144, 138, 151, 127, 133, 131, 146, 146, 135, 141, 145, 154, 125, 138, 111, 137, 142, 135, 122, 129, 143, 134, 128, 142, 133, 154, 132, 128, 125, 136, 129, 139, 136, 128, 136, 126, 134, 134, 136, 144, 140, 154, 138, 141, 143, 136, 129, 128, 126, 152, 133, 150, 138, 133, 124, 139, 130, 155, 137, 124, 125, 134, 107, 137, 145, 140, 131, 132, 151, 149, 151, 140, 134, 126, 136, 139, 127, 131, 136, 137, 120, 131, 124, 132, 136, 128, 143, 163, 141, 130, 126, 143, 140, 135, 133, 135, 132, 132, 127, 131, 129, 136, 142, 132, 128, 149, 136, 133, 137, 143, 158, 130, 131, 146, 127, 132, 133, 136, 126, 134, 128, 131, 139, 151, 144, 129, 144, 136, 137, 132, 129, 138, 135, 135, 139, 135, 139, 141, 131, 155, 130, 127, 136, 144, 124, 143, 134, 146, 144, 125, 144, 131, 132, 130, 128, 122, 147, 128, 146, 129, 137, 147, 154, 135, 133, 126, 148, 133, 138, 149, 143, 160, 114, 124, 125, 129, 139, 127, 136, 154, 144, 130, 137, 113, 118, 136, 136, 146, 137, 124, 133, 137, 143, 120, 132, 147, 134, 135, 133, 119, 140, 125, 123, 132, 138, 127, 129, 146, 133, 124, 136, 124, 143, 164, 127, 148, 131, 128, 146, 133, 141, 133, 133, 133, 145, 138, 126, 127, 141, 133, 140, 135, 123, 118, 134, 137, 141, 133, 91, 135, 152, 133, 145, 126, 137, 128, 126, 142, 136, 143, 123, 131, 147, 130, 140, 133, 128, 146, 140, 138, 136, 134, 108, 171, 142, 125, 152, 142, 122, 133, 133, 125, 135, 134, 123, 140, 142, 142, 137, 136, 134, 128, 141, 139, 138, 129, 133, 129, 125, 131, 135, 129, 130, 134, 131, 127, 141, 137, 134, 132, 147, 128, 130, 135, 124, 132, 134, 115, 141, 128, 134, 138, 139, 143, 130, 145, 132, 145, 130, 141, 138, 132, 131, 129, 126, 144, 137, 129, 129, 143, 124, 128, 158, 141, 135, 120, 141, 141, 124, 149, 129, 154, 133, 147, 141, 116, 149, 138, 150, 136, 141, 135, 107, 140, 141, 132, 125, 135, 146, 157, 129, 133, 143, 109, 122, 117, 176, 137, 104, 151, 131, 140, 139, 142, 147, 140, 137, 126, 152, 133, 145, 125, 129, 125, 133, 140, 158, 135, 135, 120, 149, 143, 148, 147, 131, 150, 125, 133, 135, 131, 130, 140, 135, 131, 131, 153, 128, 114, 139, 129, 117, 123, 151, 158, 138, 116, 137, 129, 145, 135, 146, 144, 150, 132, 135, 140, 136, 130, 97, 132, 146, 138, 143, 127, 126, 123, 146, 140, 151, 121, 142, 130, 164, 141, 114, 134, 157, 115, 124, 135, 144, 140, 119, 135, 138, 145, 139, 138, 126, 143, 139, 146, 128, 124, 147, 127, 147, 151, 135, 155, 140, 140, 139, 153, 129, 132, 139, 144, 126, 148, 138, 129, 118, 130, 155, 129, 139, 122, 148, 155, 145, 121, 131, 133, 139, 128, 149, 128, 136, 138, 159, 138, 144, 135, 138, 139, 126, 136, 108, 145, 144, 148, 135, 134, 140, 145, 134, 132, 135, 120, 147, 126, 132, 134, 141, 139, 154, 124, 134, 141, 137, 130, 136, 143, 130, 147, 119, 137, 131, 135, 135, 122, 144, 147, 144, 140, 141, 142, 132, 116, 145, 123, 127, 115, 152, 134, 141, 128, 142, 141, 157, 119, 139, 134, 143, 142, 153, 127, 127, 115, 157, 134, 154, 134, 163, 144, 128, 142, 144, 137, 136, 125, 88, 132, 136, 134, 155, 140, 158, 136, 127, 139, 131, 160, 121, 142, 126, 139, 140, 119, 123, 160, 139, 139, 129, 140, 154, 129, 135, 144, 144, 124, 139, 134, 119, 130, 144, 137, 127, 135, 148, 122, 126, 147, 137, 138, 143, 146, 127, 147, 143, 147, 118, 127, 143, 132, 128, 138, 149, 140, 140, 155, 139, 138, 135, 138, 140, 143, 127, 147, 150, 132, 132, 159, 142, 144, 153, 135, 141, 132, 137, 148, 137, 135, 126, 152, 142, 144, 139, 133, 121, 146, 127, 127, 131, 138, 135, 156, 141, 139, 116, 137, 120, 99, 161, 146, 131, 138, 136, 146, 130, 133, 133, 138, 141, 134, 159, 124, 141, 143, 132, 140, 147, 133, 121, 143, 117, 135, 142, 139, 128, 152, 137, 150, 146, 141, 141, 141, 132, 131, 132, 146, 142, 145, 133, 104, 132, 121, 158, 147, 144, 144, 130, 149, 141, 134, 141, 121, 133, 144, 135, 142, 125, 138, 151, 127, 131, 143, 142, 146, 155, 146, 138, 133, 136, 146, 130, 115, 129, 139, 138, 134, 130, 138, 124, 122, 143, 143, 152, 135, 128, 129, 140, 142, 129, 113, 136, 131, 109, 154, 154, 131, 137, 152, 142, 131, 139, 121, 137, 133, 147, 146, 133, 125, 133, 156, 140, 137, 147, 144, 115, 146, 139, 128, 128, 121, 110, 137, 131, 140, 121, 148, 117, 143, 134, 129, 137, 142, 127, 142, 129, 138, 140, 123, 140, 129, 151, 128, 138, 125, 148, 135, 130, 140, 135, 140, 129, 136, 146, 138, 154, 146, 134, 136, 130, 114, 137, 126, 127, 137, 139, 120, 140, 118, 127, 125, 139, 132, 121, 135, 145, 137, 142, 130, 155, 138, 126, 141, 142, 134, 139, 145, 134, 140, 128, 121, 125, 162, 140, 169, 141, 141, 128, 159, 130, 124, 132, 113, 154, 133, 98, 145, 142, 123, 129, 121, 126, 125, 128, 141, 124, 143, 128, 149, 142, 139, 139, 136, 145, 143, 131, 133, 133, 148, 151, 113, 149, 135, 134, 144, 128, 127, 120, 133, 124, 153, 139, 138, 142, 145, 132, 136, 137, 133, 121, 145, 130, 147, 168, 134, 134, 146, 134, 134, 135, 149, 137, 128, 126, 137, 142, 139, 130, 148, 115, 133, 149, 137, 134, 133, 141, 147, 137, 126, 136, 132, 138, 130, 153, 118, 129, 155, 142, 139, 146, 133, 150, 130, 147, 136, 144, 145, 135, 142, 137, 140, 145, 136, 139, 146, 126, 148, 126, 132, 136, 124, 132, 140, 151, 144, 141, 140, 141, 129, 140, 150, 146, 141, 146, 141, 135, 136, 124, 151, 134, 129, 124, 144, 142, 134, 138, 133, 127, 136, 129, 135, 135, 122, 121, 143, 160, 133, 135, 143, 131, 141, 154, 138, 124, 131, 141, 136, 151, 141, 156, 119, 129, 138, 129, 132, 146, 156, 129, 135, 131, 134, 138, 153, 134, 138, 129, 125, 136, 133, 129, 126, 136, 126, 144, 114, 143, 143, 134, 138, 122, 136, 127, 139, 144, 132, 132, 132, 142, 141, 143, 127, 131, 131, 120, 131, 138, 137, 137, 141, 140, 117, 141, 138, 133, 134, 138, 135, 137, 146, 147, 135, 147, 126, 123, 125, 145, 135, 133, 139, 119, 136, 142, 129, 128, 139, 125, 140, 127, 134, 123, 145, 142, 123, 135, 139, 135, 123, 126, 153, 137, 117, 123, 141, 119, 107, 145, 152, 117, 126, 133, 142, 130, 140, 138, 121, 144, 131, 150, 146, 129, 129, 120, 142, 143, 141, 140, 172, 128, 133, 129, 116, 142, 134, 131, 141, 147, 132, 133, 136, 130, 139, 117, 97, 137, 147, 135, 136, 137, 131, 146, 114, 132, 143, 136, 141, 137, 126, 134, 146, 139, 133, 144, 116, 146, 134, 123, 136, 131, 143, 142, 136, 156, 131, 123, 146, 91, 140, 134, 138, 144, 133, 129, 146, 140, 140, 142, 130, 146, 133, 136, 129, 138, 139, 135, 141, 131, 128, 148, 125, 149, 139, 130, 129, 134, 140, 131, 128, 142, 129, 139, 137, 135, 129, 144, 141, 154, 131, 128, 144, 141, 142, 128, 130, 123, 134, 147, 135, 127, 137, 132, 146, 129, 124, 137, 127, 135, 151, 141, 138, 137, 142, 148, 132, 129, 160, 130, 111, 141, 138, 139, 152, 151, 135, 125, 139, 121, 155, 144, 143, 137, 133, 137, 124, 128, 124, 134, 133, 155, 138, 137, 136, 130, 135, 138, 127, 143, 129, 134, 141, 127, 145, 143, 138, 134, 149, 148, 131, 139, 127, 118, 137, 135, 161, 128, 131, 113, 127, 147, 155, 125, 137, 137, 121, 128, 137, 120, 157, 124, 144, 126, 127, 151, 149, 124, 132, 138, 132, 148, 135, 134, 134, 143, 148, 135, 124, 145, 136, 123, 124, 128, 132, 137, 136, 151, 144, 133, 140, 136, 126, 132, 140, 134, 133, 123, 142, 139, 139, 140, 129, 130, 143, 144, 119, 139, 142, 140, 131, 139, 135, 135, 131, 131, 147, 148, 138, 131, 152, 126, 132, 133, 148, 141, 141, 139, 141, 135, 115, 138, 137, 132, 126, 141, 144, 136, 136, 139, 139, 138, 137, 123, 136, 138, 124, 139, 139, 127, 134, 140, 132, 140, 134, 121, 145, 140, 142, 135, 117, 132, 125, 141, 136, 133, 149, 138, 137, 133, 137, 125, 120, 133, 133, 144, 124, 136, 156, 134, 130, 145, 131, 145, 135, 141, 139, 134, 135, 134, 133, 132, 130, 125, 137, 124, 133, 146, 142, 142, 136, 138, 131, 152, 133, 127, 135, 126, 127, 129, 142, 143, 128, 135, 123, 137, 131, 125, 135, 138, 132, 139, 144, 132, 133, 136, 141, 138, 139, 142, 127, 120, 139, 140, 134, 127, 132, 136, 129, 136, 143, 143, 135, 131, 131, 133, 137, 124, 128, 143, 132, 136, 146, 133, 133, 140, 127, 147, 125, 131, 142, 137, 129, 121, 135, 123, 132, 134, 144, 135, 133, 135, 138, 139, 126, 130, 138, 146, 131, 133, 140, 129, 125, 136, 134, 138, 132, 143, 125, 139, 141, 149, 140, 149, 126, 132, 136, 135, 132, 136, 139, 133, 141, 135, 138, 137, 151, 126, 151, 131, 127, 135, 140, 142, 131, 138, 135, 143, 149, 144, 145, 133, 133, 127, 135, 137, 138, 144, 136, 145, 134, 129, 134, 129, 130, 138, 148, 138, 141, 137, 134, 139, 138, 130, 122, 152, 128, 128, 146, 128, 139, 136, 141, 150, 123, 138, 133, 148, 140, 127, 146, 134, 134, 142, 130, 158, 127, 146, 142, 132, 139, 133, 139, 137, 133, 136, 139, 134, 125, 135, 122, 135, 140, 132, 132, 152, 153, 131, 144, 135, 134, 134, 146, 127, 141, 131, 128, 141, 142, 144, 132, 134, 144, 137, 133, 134, 141, 129, 127, 151, 123, 129, 122, 135, 141, 141, 146, 140, 132, 146, 140, 132, 134, 128, 125, 131, 119, 131, 139, 135, 129, 140, 124, 136, 140, 144, 133, 144, 149, 142, 146, 134, 141, 139, 115, 133, 136, 134, 137, 141, 138, 135, 145, 135, 135, 135, 135, 128, 144, 136, 143, 131, 138, 141, 131, 133, 134, 134, 140, 132, 124, 125, 134, 146, 141, 142, 135, 146, 132, 143, 138, 139, 137, 141, 134, 136, 144, 131, 132, 127, 131, 134, 138, 126, 136, 130, 134, 139, 131, 144, 134, 140, 139, 118, 135, 135, 134, 145, 136, 129, 127, 119, 146, 135, 142, 140, 138, 137, 129, 147, 128, 139, 135, 145, 122, 127, 129, 134, 141, 131, 149, 138, 139, 129, 137, 138, 130, 137, 138, 135, 135, 145, 145, 139, 129, 130, 137, 132, 142, 129, 140, 140, 138, 128, 131, 135, 125, 123, 137, 145, 128, 135, 138, 140, 121, 141, 136, 126, 135, 133, 127, 138, 131, 131, 129, 144, 129, 135, 132, 143, 147, 127, 140, 139, 128, 141, 133, 124, 137, 147, 132, 126, 125, 141, 126, 135, 147, 123, 135, 136, 131, 134, 127, 130, 138, 122, 155, 143, 139, 138, 136, 142, 119, 140, 127, 126, 137, 133, 135, 133, 138, 137, 136, 142, 144, 130, 133, 140, 143, 131, 130, 145, 136, 132, 150, 142, 125, 125, 158, 138, 136, 141, 142, 142, 133, 136, 127, 134, 147, 135, 139, 131, 141, 135, 151, 150, 132, 139, 156, 117, 145, 139, 143, 138, 123, 136, 128, 142, 135, 143, 127, 143, 146, 147, 142, 133, 144, 137, 139, 141, 123, 137, 122, 147, 146, 134, 133, 135, 129, 138, 145, 140, 133, 138, 141, 145, 131, 141, 132, 128, 120, 138, 137, 127, 135, 114, 140, 133, 135, 134, 135, 136, 140, 138, 140, 138, 145, 128, 133, 159, 130, 140, 135, 127, 146, 131, 145, 140, 139, 168, 133, 126, 129, 141, 136, 138, 123, 132, 127, 133, 136, 145, 134, 134, 132, 143, 140, 135, 128, 137, 141, 141, 136, 138, 136, 141, 133, 122, 123, 146, 137, 124, 140, 140, 149, 154, 143, 132, 119, 135, 126, 144, 141, 149, 142, 146, 136, 142, 136, 154, 128, 130, 134, 128, 138, 123, 125, 126, 115, 123, 145, 126, 127, 141, 134, 126, 138, 132, 137, 150, 134, 144, 127, 128, 142, 125, 140, 137, 125, 141, 132, 143, 138, 127, 143, 142, 124, 135, 135, 123, 132, 121, 137, 131, 139, 148, 138, 123, 140, 137, 154, 141, 131, 154, 147, 123, 141, 137, 134, 142, 137, 128, 128, 120, 139, 130, 152, 137, 140, 135, 142, 125, 134, 134, 144, 132, 149, 130, 136, 140, 131, 135, 139, 133, 140, 133, 146, 140, 163, 129, 148, 142, 130, 115, 130, 137, 142, 122, 131, 120, 129, 114, 128, 149, 131, 143, 148, 140, 152, 134, 142, 142, 135, 130, 130, 135, 128, 128, 125, 125, 131, 140, 135, 136, 134, 135, 138, 125, 134, 143, 143, 139, 114, 137, 153, 138, 136, 134, 151, 135, 131, 124, 120, 131, 127, 132, 150, 134, 143, 138, 140, 151, 142, 140, 137, 132, 127, 147, 144, 145, 145, 130, 138, 135, 145, 128, 143, 143, 134, 140, 137, 133, 148, 124, 145, 133, 142, 131, 130, 124, 138, 140, 133, 139, 148, 163, 144, 131, 129, 134, 135, 132, 139, 154, 143, 158, 149, 135, 142, 128, 150, 149, 143, 140, 133, 140, 131, 136, 137, 127, 123, 138, 132, 130, 143, 152, 131, 128, 152, 129, 141, 176, 129, 139, 145, 137, 165, 140, 130, 123, 137, 133, 128, 130, 137, 131, 142, 128, 136, 125, 128, 144, 164, 145, 141, 142, 101, 126, 145, 138, 136, 131, 130, 108, 137, 135, 159, 146, 144, 141, 132, 130, 128, 145, 138, 157, 147, 129, 118, 146, 128, 138, 110, 135, 151, 140, 133, 134, 129, 128, 138, 131, 135, 129, 134, 137, 132, 132, 135, 103, 148, 129, 146, 132, 115, 137, 131, 141, 132, 154, 126, 140, 139, 128, 142, 139, 146, 125, 139, 143, 125, 143, 139, 135, 148, 145, 144, 139, 140, 143, 138, 130, 136, 143, 129, 141, 133, 139, 133, 143, 135, 139, 135, 158, 130, 137, 134, 137, 139, 130, 130, 131, 142, 136, 128, 141, 136, 126, 137, 145, 132, 139, 139, 138, 145, 137, 136, 144, 137, 136, 135, 144, 144, 136, 139, 139, 134, 140, 129, 133, 140, 138, 136, 133, 136, 141, 145, 126, 159, 131, 142, 132, 133, 142, 141, 129, 130, 146, 136, 138, 125, 144, 133, 138, 144, 159, 139, 131, 145, 135, 137, 133, 135, 131, 139, 130, 141, 136, 130, 133, 143, 129, 129, 145, 143, 140, 128, 132, 141, 142, 134, 139, 132, 136, 128, 144, 138, 128, 128, 128, 139, 138, 133, 132, 130, 127, 137, 143, 124, 136, 127, 138, 142, 141, 140, 140, 132, 139, 139, 139, 134, 127, 132, 134, 136, 128, 141, 135, 135, 126, 141, 131, 139, 137, 130, 138, 145, 137, 136, 129, 137, 141, 138, 133, 135, 128, 138, 131, 141, 141, 132, 139, 134, 129, 140, 136, 136, 130, 129, 145, 126, 127, 140, 135, 126, 129, 122, 131, 140, 141, 133, 125, 141, 137, 158, 147, 130, 133, 133, 130, 127, 138, 120, 131, 131, 139, 141, 138, 129, 143, 138, 130, 140, 135, 134, 125, 135, 143, 116, 138, 133, 132, 133, 136, 139, 139, 134, 133, 138, 121, 131, 132, 129, 130, 128, 144, 131, 143, 133, 134, 130, 133, 139, 135, 130, 141, 136, 149, 135, 151, 125, 142, 143, 141, 134, 141, 126, 130, 134, 137, 134, 124, 126, 141, 127, 145, 140, 133, 131, 137, 125, 140, 138, 144, 125, 139, 131, 138, 135, 141, 130, 122, 137, 146, 155, 129, 131, 120, 130, 136, 132, 135, 137, 126, 130, 137, 147, 134, 142, 137, 141, 129, 134, 141, 127, 140, 134, 138, 133, 129, 128, 140, 135, 136, 143, 141, 154, 138, 130, 130, 136, 123, 143, 132, 133, 140, 134, 137, 139, 128, 136, 131, 137, 132, 134, 128, 142, 138, 134, 149, 135, 136, 139, 133, 134, 135, 131, 135, 132, 142, 134, 135, 135, 130, 134, 134, 134, 134, 126, 132, 139, 129, 137, 144, 143, 142, 136, 135, 147, 137, 134, 128, 139, 145, 152, 138, 141, 130, 120, 136, 138, 131, 133, 142, 137, 134, 140, 138, 129, 138, 129, 147, 142, 130, 134, 143, 138, 132, 133, 131, 135, 130, 128, 130, 133, 143, 143, 139, 137, 134, 126, 142, 142, 127, 133, 141, 143, 150, 139, 159, 144, 136, 135, 129, 139, 132, 136, 135, 129, 140, 140, 124, 134, 130, 132, 135, 151, 127, 129, 134, 139, 137, 135, 142, 124, 140, 126, 114, 153, 120, 138, 130, 129, 140, 139, 140, 135, 142, 136, 134, 134, 136, 145, 140, 131, 151, 133, 143, 134, 139, 134, 136, 145, 136, 134, 127, 136, 125, 141, 143, 143, 137, 129, 135, 128, 141, 141, 136, 138, 143, 134, 137, 136, 143, 134, 136, 137, 139, 113, 143, 136, 133, 149, 148, 147, 131, 142, 130, 137, 140, 119, 147, 135, 117, 145, 142, 135, 134, 132, 135, 132, 136, 136, 139, 139, 139, 133, 141, 130, 136, 136, 136, 133, 134, 139, 139, 137, 138, 140, 140, 138, 134, 140, 135, 139, 138, 137, 130, 135, 135, 140, 138, 136, 142, 118, 133, 130, 139, 140, 136, 137, 132, 127, 138, 140, 139, 140, 132, 140, 129, 134, 137, 139, 139, 138, 137, 147, 137, 140, 144, 136, 137, 136, 138, 137, 126, 138, 141, 136, 134, 129, 137, 137, 141, 133, 137, 134, 132, 144, 137, 134, 145, 134, 126, 138, 133, 136, 141, 136, 132, 132, 135, 142, 137, 142, 146, 144, 132, 136, 135, 138, 137, 131, 124, 137, 132, 137, 141, 139, 138, 140, 139, 142, 139, 132, 131, 136, 134, 129, 141, 133, 136, 136, 141, 135, 134, 135, 141, 134, 147, 123, 139, 129, 136, 131, 130, 136, 137, 148, 133, 149, 138, 132, 139, 133, 134, 143, 147, 139, 152, 142, 145, 131, 128, 145, 134, 128, 136, 139, 137, 136, 147, 131, 137, 137, 136, 137, 138, 124, 136, 133, 136, 134, 136, 137, 140, 138, 132, 135, 137, 128, 136, 134, 138, 132, 138, 133, 138, 132, 140, 143, 138, 131, 134, 140, 135, 136, 140, 140, 135, 137, 132, 120, 139, 135, 141, 139, 133, 135, 135, 138, 137, 133, 136, 137, 155, 132, 136, 138, 133, 128, 140, 134, 136, 129, 126, 137, 138, 140, 137, 135, 134, 135, 127, 134, 122, 136, 144, 133, 135, 133, 138, 137, 140, 132, 136, 134, 139, 141, 139, 133, 138, 143, 131, 134, 140, 139, 159, 138, 137, 136, 132, 136, 140, 139, 141, 133, 140, 136, 135, 139, 136, 134, 135, 136, 134, 135, 141, 132, 138, 141, 133, 144, 139, 119, 139, 138, 139, 135, 126, 137, 134, 133, 139, 136, 141, 133, 133, 151, 137, 118, 140, 140, 139, 137, 137, 128, 141, 134, 134, 137, 140, 131, 133, 133, 134, 138, 135, 143, 144, 138, 135, 136, 134, 159, 137, 131, 135, 152, 137, 138, 139, 133, 117, 136, 138, 147, 136, 133, 130, 126, 129, 135, 136, 136, 136, 138, 135, 135, 122, 138, 131, 134, 156, 140, 134, 132, 132, 130, 137, 133, 133, 142, 131, 146, 141, 139, 128, 129, 134, 141, 134, 141, 137, 136, 132, 134, 134, 134, 138, 132, 134, 129, 140, 135, 138, 130, 139, 134, 131, 137, 138, 134, 139, 133, 125, 136, 138, 135, 135, 129, 138, 136, 142, 137, 141, 136, 137, 127, 138, 132, 140, 139, 140, 145, 138, 131, 143, 139, 139, 136, 133, 133, 136, 134, 138, 136, 136, 137, 137, 135, 137, 138, 137, 133, 135, 136, 139, 129, 135, 133, 143, 134, 138, 149, 132, 144, 136, 124, 135, 139, 136, 139, 135, 135, 134, 139, 140, 135, 136, 137, 139, 135, 137, 133, 135, 130, 139, 148, 134, 137, 140, 136, 120, 140, 131, 131, 144, 134, 144, 130, 132, 140, 132, 133, 134, 142, 128, 137, 139, 134, 124, 135, 139, 136, 135, 139, 143, 137, 141, 137, 146, 134, 139, 122, 132, 137, 133, 132};
+ model->setOperandValue(op8, op8_init, sizeof(uint8_t) * 262144);
+ static int32_t op10_init[] = {11394, -1999, 4880, -2676, 6208, -1105, 13567, -3025, 7011, -1269, -1839, 10977, 2367, -1538, 6346, 7114, -1589, 4172, -1565, 7236, 2240, -921, 5150, 7512, 4914, -2337, -4988, -1603, -1501, -60, 4461, 4212, -1223, -8203, -21123, 5439, 4482, -3120, -507, 5387, -1463, 5896, 2931, 4335, 8023, 5484, -387, -1285, 3424, -136, 6466, 9839, -1431, 6363, 870, 7697, -1310, -2239, -1293, 3602, 768, 1057, 4505, -5877, -819, 6231, 3928, -7132, -6937, -645, -2878, 3467, 9156, -6209, 8901, 6379, -937, -2695, -451, -3679, -234, -726, 3643, -4771, 11820, -4237, 5937, 4491, 4777, 5911, -2484, 11144, -2659, 5340, 5249, 6817, 8248, 4418, 5158, 7165, 7354, 6955, -5204, -1949, -1639, 3884, -1104, 6225, -2427, 3711, 4914, 7990, 7537, 4974, -1025, 4957, 6372, -1436, -11, 4887, -2766, 264, 3382, 3865, 2613, 8539, 619, -3938, 6047, 4838, 5081, 2058, -126, 7885, -2315, 6576, 7233, -1056, 9418, 3103, -967, -2402, 5792, 7169, 10065, -2573, -6037, 4164, 7358, -180, -4190, -1877, 4940, -1126, -2485, 6054, -2241, 5144, 5471, -1185, 4573, 11596, -2306, -271, 11568, -4868, 6297, 4310, 8493, 7158, -4687, 1092, -880, 8145, 4638, 5246, -3870, 6122, 4818, 5611, -6418, 3942, -726, 3765, 9262, -974, 4955, 6057, 2953, -1974, 8506, -1170, -182, -160, 5044, 7437, -941, 3471, 4592, -1498, -2839, -630, 7125, 12836, -2712, 6760, 4981, 5536, -3242, 8943, -12592, -1263, -363, 3183, 11373, -976, -4168, -3316, 7544, -2969, 7960, 190, -4384, -1401, -2441, 8935, -3100, 9739, 8520, 7164, 5582, 259, 4969, 1731, -2431, 4411, -8167, 3930, -2725, 4913, 9081, -1463, 8334, -4279, 1631, 2244, 3563, 5701, 6420, 8175, 5574, 5615, 1863, 5644, 4750, 11416, 2735, -1347, 8907, 7140, -2160, -2441, -5500, -1027, -1330, -2412, 8310, 2451, 3676, -24, 5032, 6362, 8087, 7991, 2292, -5364, 6109, -2061, 12315, -3751, 4143, 4095, 1474, 7327, -6058, 5209, -1022, -571, -1694, 7873, 4929, 9169, -556, 4284, -991, 1403, -1486, -723, 4641, -522, 5800, -685, 5460, -1055, 5394, 4026, -1925, -741, -317, 4803, 6134, 2507, -1658, 7487, 729, -645, 8845, 9774, 3303, 3966, -4893, -657, 3860, -4120, -6229, 2897, 6727, -4947, 5823, -1722, 5974, 5215, 9125, 4255, 3514, -7826, -333, 4326, -1431, -1605, -10157, 10010, 6902, 530, 8868, 4708, -4545, 3823, 4508, 8464, -1728, 2169, -1069, 8100, 187, -36, -1112, -2222, -1821, 1090, -1200, -882, 813, 6197, 6063, 4471, 7066, 4782, 5108, -1383, 8965, -1319, -3987, -736, 3377, 5801, -533, 6329, -878, 5219, -146, 3487, 4417, -1205, 4950, 347, -1160, 834, -859, -5883, 8376, -657, 5913, -1517, 6189, 8613, -644, 4226, -1382, -795, 7929, -5572, -669, -392, -312, 5799, -269, -1577, -2377, 10646, 4558, 1608, 11593, 4036, -1487, 1163, -102, -380, -198, 13137, 7407, -5967, 4983, 3186, -3160, 412, -802, -949, 4604, -761, -599, -1345, 7225, -6091, -2165, -1707, 9026, 6189, -6400, -2132, -870, -7421, -1639, 12630, 2969, -9679, 4710, -2587, 7510, -1211, -1062, 9572, 4754, -4692, 9473, -3837, 9613, 4919, -721, 438, 3676, -497, 5660, -730, -892, -1250, 4344, 3307, -737, 4226, 7502, 3824, 4976, 3555, 3395, 4751, 5951, 5744, 4975, -893, 3099, -1599, 10522, -636, 7461, 5596, -2487, -1367, -4188, 4852, -9787, 7933, 5158, -484, -1047, 7642, -1660, -1338, -4094, -172, 4555, 4808, 6629, 9908, 5737, 4096, 3805, -1661, -2275, 9717, -1954, -2624};
+ model->setOperandValue(op10, op10_init, sizeof(int32_t) * 512);
+ static uint8_t op11_init[] = {126, 152, 123, 196, 129, 149, 123, 151, 103, 137, 92, 131, 115, 153, 126, 116, 156, 108, 148, 125, 111, 132, 122, 194, 109, 25, 119, 161, 170, 179, 118, 114, 171, 154, 154, 112, 106, 157, 145, 110, 137, 110, 112, 118, 142, 124, 165, 154, 104, 189, 119, 106, 149, 103, 154, 105, 164, 99, 146, 129, 179, 46, 114, 168, 148, 121, 115, 161, 148, 157, 112, 123, 118, 158, 110, 109, 141, 188, 78, 144, 161, 168, 112, 152, 127, 144, 119, 100, 124, 114, 134, 128, 166, 112, 131, 99, 115, 127, 117, 124, 89, 162, 126, 149, 164, 119, 147, 164, 82, 111, 191, 123, 115, 100, 104, 121, 186, 172, 128, 116, 141, 166, 115, 109, 125, 105, 158, 144, 133, 188, 119, 152, 184, 127, 161, 119, 168, 148, 129, 149, 147, 157, 126, 112, 141, 165, 128, 103, 104, 142, 137, 166, 134, 143, 98, 189, 176, 125, 119, 135, 124, 103, 143, 157, 131, 146, 102, 115, 118, 101, 137, 179, 152, 115, 130, 153, 142, 122, 121, 133, 203, 114, 160, 114, 151, 165, 119, 114, 132, 149, 130, 154, 180, 154, 126, 112, 157, 109, 121, 145, 151, 138, 104, 75, 61, 113, 144, 100, 82, 137, 165, 127, 153, 116, 135, 180, 93, 151, 90, 149, 119, 224, 156, 136, 105, 141, 151, 87, 122, 113, 107, 159, 107, 124, 159, 124, 177, 115, 174, 102, 109, 69, 93, 103, 192, 150, 110, 115, 109, 106, 95, 114, 117, 122, 126, 139, 93, 123, 117, 152, 155, 150, 151, 152, 177, 165, 145, 147, 108, 196, 119, 133, 130, 119, 108, 152, 157, 177, 138, 147, 115, 113, 164, 120, 172, 113, 125, 125, 142, 109, 114, 116, 155, 123, 144, 190, 127, 204, 115, 166, 145, 137, 120, 148, 114, 116, 140, 145, 152, 119, 116, 158, 163, 116, 121, 154, 104, 128, 141, 120, 106, 126, 112, 126, 149, 173, 84, 151, 124, 129, 122, 120, 155, 120, 101, 153, 174, 109, 154, 171, 154, 125, 112, 128, 103, 121, 162, 119, 109, 110, 135, 145, 132, 115, 144, 185, 168, 154, 175, 121, 146, 153, 116, 141, 114, 121, 118, 171, 114, 147, 121, 175, 133, 146, 121, 123, 124, 112, 125, 99, 107, 110, 117, 112, 114, 99, 139, 183, 149, 67, 124, 162, 119, 164, 161, 126, 144, 120, 153, 134, 111, 163, 157, 178, 115, 155, 168, 156, 150, 140, 121, 160, 133, 116, 163, 99, 123, 145, 93, 136, 127, 147, 113, 111, 164, 111, 136, 132, 120, 111, 130, 158, 121, 178, 160, 88, 111, 118, 152, 164, 128, 153, 152, 128, 147, 155, 117, 165, 123, 163, 95, 95, 122, 173, 122, 149, 137, 113, 179, 152, 117, 145, 112, 164, 151, 97, 114, 112, 158, 115, 108, 109, 118, 111, 113, 141, 121, 181, 127, 145, 113, 152, 132, 143, 118, 103, 119, 121, 144, 107, 152, 143, 168, 146, 165, 114, 171, 100, 159, 161, 120, 88, 155, 126, 112, 210, 107, 150, 100, 121, 168, 94, 107, 172, 113, 121, 119, 182, 115, 171, 113, 119, 123, 91, 98, 154, 122, 111, 186, 116, 158, 115, 87, 149, 118, 157, 132, 148, 117, 172, 192, 164, 113, 114, 92, 153, 141, 111, 112, 171, 80, 107, 63, 110, 123, 120, 95, 142, 187, 181, 116, 201, 114, 91, 162, 119, 170, 103, 176, 109, 152, 88, 170, 90, 118, 146, 170, 114, 112, 154, 158, 163, 102, 119, 123, 149, 105, 110, 157, 169, 141, 152, 155, 184, 118, 135, 86, 184, 120, 106, 121, 114, 128, 111, 167, 81, 86, 140, 116, 133, 121, 112, 129, 130, 132, 164, 179, 118, 150, 143, 126, 112, 130, 119, 115, 115, 124, 118, 164, 118, 49, 120, 159, 174, 115, 127, 107, 119, 178, 157, 142, 125, 108, 180, 197, 85, 163, 116, 126, 158, 98, 125, 152, 142, 133, 112, 113, 191, 156, 101, 137, 182, 184, 104, 152, 162, 108, 127, 222, 123, 113, 142, 112, 91, 149, 156, 104, 152, 119, 117, 113, 103, 93, 182, 164, 116, 101, 193, 172, 114, 117, 147, 116, 112, 163, 136, 140, 175, 131, 112, 150, 141, 131, 162, 177, 151, 117, 117, 156, 111, 124, 51, 142, 148, 117, 136, 136, 103, 81, 100, 147, 105, 161, 143, 146, 106, 111, 140, 186, 36, 135, 144, 121, 119, 174, 141, 82, 149, 181, 137, 100, 110, 109, 138, 120, 132, 203, 117, 169, 119, 147, 108, 140, 121, 99, 133, 180, 183, 118, 110, 109, 111, 142, 111, 109, 117, 101, 114, 83, 125, 96, 123, 162, 174, 157, 175, 164, 162, 108, 87, 101, 209, 114, 123, 101, 113, 95, 151, 150, 133, 117, 155, 119, 113, 176, 103, 169, 133, 127, 124, 149, 111, 104, 107, 162, 116, 160, 191, 151, 147, 115, 150, 139, 99, 115, 157, 105, 123, 93, 162, 135, 111, 117, 185, 163, 116, 100, 132, 128, 88, 172, 118, 99, 125, 114, 143, 185, 181, 102, 181, 119, 127, 120, 117, 135, 117, 114, 145, 141, 114, 148, 176, 164, 114, 103, 102, 139, 120, 148, 126, 130, 106, 167, 158, 135, 111, 179, 115, 147, 166, 169, 103, 162, 156, 117, 127, 122, 118, 115, 197, 118, 152, 110, 168, 107, 150, 116, 116, 165, 104, 138, 140, 185, 123, 111, 101, 116, 72, 133, 207, 158, 154, 100, 176, 125, 166, 122, 84, 151, 104, 167, 103, 116, 141, 166, 175, 106, 159, 170, 177, 176, 123, 114, 154, 119, 118, 184, 94, 141, 157, 99, 105, 100, 151, 114, 82, 202, 93, 135, 132, 115, 108, 118, 209, 113, 186, 187, 214, 101, 120, 162, 178, 212, 219, 161, 87, 169, 168, 120, 170, 120, 135, 130, 145, 132, 157, 119, 169, 106, 118, 161, 156, 126, 152, 116, 177, 75, 115, 109, 118, 165, 124, 121, 114, 126, 126, 115, 146, 117, 128, 103, 152, 118, 161, 107, 154, 123, 116, 145, 127, 106, 109, 191, 148, 172, 159, 175, 105, 108, 148, 189, 182, 113, 120, 154, 104, 113, 100, 117, 147, 95, 115, 211, 102, 130, 141, 125, 198, 130, 133, 131, 141, 105, 140, 161, 140, 125, 156, 129, 122, 139, 111, 142, 128, 123, 130, 127, 76, 114, 186, 124, 143, 150, 159, 121, 120, 171, 147, 151, 119, 112, 147, 152, 114, 147, 115, 115, 121, 146, 182, 148, 136, 111, 162, 125, 118, 143, 111, 143, 112, 159, 175, 139, 136, 171, 118, 121, 150, 136, 126, 122, 164, 142, 144, 121, 125, 123, 131, 112, 116, 133, 178, 76, 139, 157, 153, 120, 151, 129, 136, 121, 105, 127, 119, 136, 133, 159, 122, 136, 156, 121, 127, 122, 129, 97, 109, 125, 144, 153, 120, 139, 156, 167, 116, 119, 127, 121, 101, 105, 121, 170, 86, 148, 120, 139, 154, 119, 111, 128, 110, 149, 137, 132, 104, 122, 136, 157, 134, 150, 126, 93, 142, 134, 87, 139, 150, 129, 117, 141, 148, 121, 113, 168, 131, 127, 162, 130, 135, 106, 102, 28, 128, 122, 143, 129, 106, 140, 147, 137, 141, 110, 120, 120, 110, 139, 157, 145, 119, 135, 139, 137, 130, 127, 93, 109, 122, 152, 115, 145, 151, 189, 120, 178, 146, 131, 147, 168, 145, 129, 117, 151, 114, 124, 158, 143, 135, 111, 161, 167, 123, 149, 105, 173, 141, 163, 138, 151, 124, 140, 173, 175, 159, 161, 144, 122, 144, 149, 137, 117, 135, 139, 167, 128, 120, 112, 123, 113, 171, 127, 127, 170, 120, 170, 112, 110, 152, 102, 151, 183, 139, 111, 122, 116, 116, 135, 119, 121, 124, 132, 138, 108, 130, 126, 108, 146, 139, 148, 141, 168, 157, 150, 150, 99, 183, 123, 134, 133, 123, 121, 145, 152, 170, 137, 141, 122, 118, 156, 126, 162, 112, 131, 128, 140, 115, 120, 120, 147, 127, 138, 170, 127, 197, 121, 156, 145, 144, 125, 142, 123, 120, 146, 138, 146, 125, 117, 140, 159, 119, 127, 150, 108, 136, 133, 125, 199, 130, 121, 122, 143, 162, 94, 144, 127, 133, 125, 123, 110, 123, 110, 164, 161, 112, 153, 163, 145, 123, 118, 134, 159, 127, 148, 119, 112, 120, 127, 135, 130, 116, 134, 84, 163, 140, 169, 123, 138, 144, 122, 141, 118, 127, 125, 152, 118, 143, 125, 161, 139, 142, 126, 127, 117, 119, 131, 187, 137, 114, 123, 125, 120, 113, 139, 166, 145, 81, 130, 147, 123, 156, 160, 140, 137, 126, 144, 142, 118, 162, 147, 173, 121, 150, 157, 143, 138, 142, 123, 152, 135, 121, 148, 111, 125, 141, 103, 136, 133, 141, 118, 124, 136, 124, 140, 132, 122, 115, 135, 139, 126, 163, 143, 180, 120, 124, 143, 151, 98, 134, 141, 130, 136, 143, 122, 151, 122, 162, 157, 97, 182, 171, 125, 142, 141, 116, 169, 142, 120, 140, 116, 152, 154, 109, 117, 114, 148, 115, 112, 116, 121, 113, 115, 136, 128, 117, 132, 142, 116, 145, 136, 134, 120, 107, 120, 133, 148, 114, 141, 139, 154, 139, 148, 123, 85, 199, 135, 145, 124, 91, 150, 132, 119, 206, 112, 146, 114, 124, 132, 192, 126, 165, 106, 175, 120, 144, 89, 156, 107, 154, 102, 126, 133, 157, 118, 113, 162, 127, 151, 117, 143, 164, 120, 176, 120, 0, 135, 166, 160, 177, 120, 116, 160, 174, 146, 121, 141, 161, 182, 148, 167, 114, 136, 125, 140, 103, 174, 174, 119, 208, 112, 113, 149, 113, 135, 140, 149, 62, 162, 136, 161, 197, 118, 132, 159, 115, 115, 125, 138, 166, 140, 129, 115, 182, 115, 115, 154, 169, 200, 152, 160, 174, 114, 140, 90, 179, 117, 125, 112, 116, 129, 119, 186, 108, 137, 103, 111, 115, 115, 118, 132, 158, 150, 148, 151, 120, 153, 130, 105, 117, 151, 113, 121, 112, 149, 116, 125, 197, 211, 116, 132, 141, 113, 125, 137, 132, 146, 152, 129, 150, 107, 125, 183, 122, 170, 111, 168, 157, 133, 150, 153, 150, 119, 109, 138, 126, 147, 147, 100, 119, 191, 142, 132, 150, 142, 164, 226, 119, 111, 160, 112, 101, 151, 154, 128, 145, 106, 115, 127, 104, 150, 118, 154, 125, 134, 142, 176, 119, 118, 136, 187, 116, 147, 127, 124, 160, 107, 121, 117, 153, 120, 151, 154, 154, 115, 130, 152, 105, 112, 182, 160, 163, 107, 95, 104, 105, 138, 137, 41, 130, 159, 151, 162, 133, 127, 137, 137, 152, 93, 155, 122, 139, 172, 145, 164, 128, 170, 92, 130, 109, 129, 125, 122, 124, 165, 120, 147, 116, 173, 111, 121, 82, 131, 83, 141, 127, 114, 111, 113, 105, 127, 111, 141, 117, 142, 118, 137, 153, 136, 166, 156, 159, 139, 168, 165, 151, 142, 173, 151, 195, 120, 118, 132, 111, 138, 151, 132, 156, 129, 158, 112, 112, 144, 115, 144, 123, 153, 145, 160, 132, 111, 112, 152, 117, 137, 148, 161, 160, 111, 164, 115, 152, 120, 147, 108, 118, 187, 158, 155, 109, 114, 127, 148, 117, 148, 159, 125, 132, 126, 117, 38, 148, 113, 138, 117, 147, 141, 163, 118, 144, 123, 116, 167, 120, 112, 146, 170, 113, 150, 189, 162, 111, 134, 148, 102, 117, 153, 120, 115, 115, 153, 140, 146, 109, 125, 185, 171, 147, 166, 161, 154, 153, 133, 119, 116, 116, 111, 133, 115, 156, 116, 173, 158, 155, 114, 118, 142, 111, 162, 94, 208, 122, 118, 157, 135, 123, 154, 106, 153, 151, 129, 151, 122, 144, 153, 128, 156, 130, 157, 160, 108, 153, 152, 173, 141, 132, 164, 171, 188, 142, 115, 146, 125, 118, 153, 125, 151, 153, 121, 117, 131, 161, 110, 133, 200, 135, 155, 127, 114, 129, 148, 115, 118, 172, 177, 72, 118, 109, 158, 174, 204, 205, 152, 89, 138, 167, 112, 150, 120, 174, 93, 106, 116, 165, 112, 163, 110, 116, 138, 149, 122, 160, 115, 172, 169, 176, 117, 114, 166, 122, 112, 112, 115, 117, 110, 133, 112, 158, 140, 149, 118, 172, 102, 151, 111, 113, 174, 162, 148, 108, 175, 145, 136, 151, 171, 114, 195, 86, 162, 171, 114, 113, 127, 124, 113, 143, 122, 136, 153, 115, 231, 34, 84, 151, 110, 188, 108, 169, 46, 184, 110, 158, 134, 75, 176, 196, 126, 116, 161, 123, 189, 112, 117, 170, 118, 120, 148, 245, 144, 182, 175, 146, 114, 125, 173, 119, 178, 105, 65, 197, 129, 123, 197, 112, 226, 125, 67, 75, 185, 204, 114, 197, 119, 89, 180, 151, 143, 144, 193, 127, 183, 91, 184, 133, 123, 122, 183, 111, 111, 124, 137, 166, 149, 118, 110, 117, 124, 119, 176, 189, 195, 196, 163, 161, 125, 134, 65, 159, 111, 125, 114, 124, 127, 86, 193, 77, 92, 134, 111, 118, 127, 100, 218, 114, 177, 188, 166, 121, 158, 80, 145, 124, 107, 106, 123, 142, 251, 119, 105, 144, 85, 116, 153, 90, 125, 121, 144, 140, 184, 158, 97, 116, 117, 186, 198, 103, 186, 108, 128, 170, 84, 114, 176, 173, 119, 124, 50, 106, 232, 163, 129, 151, 215, 105, 155, 178, 122, 119, 178, 126, 111, 195, 109, 119, 186, 161, 75, 136, 135, 119, 108, 112, 138, 171, 190, 116, 79, 123, 205, 107, 113, 151, 94, 115, 166, 149, 46, 189, 116, 116, 118, 180, 88, 138, 187, 168, 113, 206, 167, 118, 112, 166, 172, 153, 113, 147, 154, 105, 91, 170, 207, 68, 159, 187, 184, 186, 62, 112, 131, 192, 145, 160, 116, 76, 196, 169, 135, 72, 181, 146, 86, 119, 122, 130, 137, 126, 194, 116, 180, 121, 184, 113, 234, 218, 179, 138, 203, 119, 123, 114, 121, 100, 148, 113, 193, 117, 51, 54, 150, 194, 107, 137, 187, 174, 151, 172, 159, 177, 41, 117, 156, 108, 116, 108, 83, 117, 186, 181, 116, 170, 51, 188, 115, 113, 185, 108, 119, 136, 191, 169, 173, 154, 97, 108, 151, 115, 197, 181, 187, 100, 116, 150, 88, 177, 112, 176, 106, 124, 133, 201, 143, 117, 114, 195, 188, 129, 174, 153, 188, 90, 141, 119, 119, 197, 122, 255, 171, 124, 123, 187, 113, 160, 115, 113, 113, 119, 119, 138, 179, 130, 186, 135, 197, 81, 121, 160, 124, 114, 135, 119, 132, 110, 160, 187, 183, 119, 157, 125, 170, 178, 185, 140, 148, 182, 162, 99, 120, 122, 120, 43, 115, 169, 101, 170, 185, 179, 117, 109, 227, 108, 172, 127, 194, 122, 115, 198, 211, 154, 147, 126, 182, 241, 95, 184, 125, 168, 16, 72, 180, 81, 123, 139, 107, 157, 169, 185, 170, 89, 191, 175, 141, 11, 112, 134, 60, 112, 187, 140, 202, 191, 139, 21, 81, 165, 119, 149, 183, 194, 198, 134, 114, 101, 181, 141, 119, 167, 208, 163, 97, 107, 172, 192, 169, 125, 162, 66, 179, 194, 125, 187, 109, 199, 137, 127, 116, 199, 109, 202, 101, 115, 186, 191, 122, 172, 107, 172, 173, 193, 119, 131, 174, 130, 139, 118, 121, 133, 120, 150, 117, 77, 97, 180, 126, 178, 53, 155, 114, 119, 202, 207, 104, 116, 186, 26, 94, 183, 188, 118, 115, 110, 199, 170, 118, 145, 101, 83, 113, 39, 146, 176, 172, 106, 196, 97, 137, 159, 115, 151, 127, 141, 115, 141, 113, 146, 175, 141, 124, 127, 119, 117, 153, 132, 133, 123, 143, 149, 122, 101, 121, 156, 132, 154, 150, 173, 125, 122, 148, 177, 133, 127, 151, 135, 167, 150, 150, 117, 116, 126, 151, 158, 153, 157, 128, 175, 117, 120, 135, 112, 134, 136, 128, 208, 141, 144, 139, 183, 121, 128, 144, 121, 122, 133, 133, 158, 137, 131, 125, 134, 125, 121, 143, 153, 174, 137, 148, 159, 122, 138, 111, 162, 125, 125, 115, 118, 129, 134, 165, 123, 145, 157, 119, 120, 118, 130, 118, 113, 136, 130, 137, 125, 146, 142, 176, 121, 120, 121, 124, 113, 118, 121, 130, 77, 201, 124, 130, 150, 117, 128, 132, 130, 132, 144, 136, 114, 109, 111, 161, 132, 151, 121, 100, 147, 141, 114, 139, 139, 122, 116, 153, 132, 129, 134, 161, 117, 170, 166, 128, 139, 144, 118, 230, 121, 117, 129, 119, 113, 133, 149, 141, 144, 107, 118, 133, 113, 147, 121, 134, 130, 143, 142, 155, 127, 124, 117, 143, 120, 139, 128, 144, 146, 164, 124, 146, 133, 130, 148, 143, 143, 121, 115, 140, 107, 120, 168, 147, 154, 113, 158, 171, 114, 141, 132, 172, 144, 148, 101, 148, 121, 141, 138, 134, 141, 161, 148, 127, 120, 165, 137, 157, 141, 152, 163, 144, 115, 130, 127, 126, 122, 152, 127, 140, 124, 158, 116, 111, 165, 123, 186, 109, 132, 121, 117, 115, 112, 135, 121, 125, 125, 156, 139, 133, 130, 139, 114, 136, 149, 135, 159, 158, 141, 159, 172, 159, 184, 123, 127, 143, 118, 126, 139, 135, 146, 147, 140, 115, 113, 131, 124, 143, 127, 135, 134, 143, 129, 125, 122, 145, 121, 120, 136, 135, 159, 117, 154, 112, 138, 125, 134, 116, 123, 176, 130, 149, 116, 122, 114, 138, 119, 133, 154, 122, 140, 123, 120, 239, 127, 118, 114, 112, 145, 144, 133, 125, 133, 130, 121, 112, 125, 114, 148, 150, 115, 133, 188, 148, 124, 136, 137, 161, 123, 139, 125, 116, 124, 146, 124, 135, 113, 120, 110, 147, 136, 143, 154, 150, 139, 127, 127, 119, 119, 115, 156, 118, 147, 122, 164, 146, 141, 118, 121, 113, 121, 147, 152, 170, 124, 122, 139, 117, 117, 147, 112, 141, 136, 139, 140, 126, 135, 167, 144, 142, 143, 156, 151, 118, 152, 141, 151, 132, 140, 145, 153, 179, 159, 121, 144, 141, 124, 141, 124, 123, 138, 124, 137, 143, 154, 115, 128, 178, 121, 127, 129, 117, 138, 130, 115, 123, 165, 134, 178, 125, 118, 143, 155, 178, 206, 144, 111, 124, 152, 115, 132, 127, 157, 172, 110, 149, 145, 118, 138, 119, 122, 127, 128, 122, 150, 123, 159, 155, 153, 120, 113, 148, 126, 113, 115, 119, 118, 113, 131, 119, 123, 143, 125, 121, 153, 116, 144, 118, 114, 156, 126, 151, 113, 160, 160, 146, 135, 153, 118, 108, 170, 143, 156, 120, 117, 133, 138, 120, 154, 121, 127, 140, 122, 188, 244, 138, 148, 143, 120, 132, 136, 129, 158, 112, 148, 106, 156, 148, 146, 98, 129, 132, 133, 140, 128, 168, 153, 124, 147, 121, 42, 153, 130, 151, 155, 127, 117, 150, 147, 158, 140, 177, 129, 158, 156, 163, 114, 128, 119, 166, 125, 118, 130, 117, 93, 124, 128, 148, 143, 113, 134, 121, 116, 144, 155, 140, 197, 119, 148, 139, 126, 128, 153, 155, 152, 166, 162, 117, 155, 114, 114, 136, 67, 171, 139, 150, 159, 120, 151, 136, 143, 124, 126, 120, 121, 165, 139, 129, 152, 157, 95, 117, 113, 120, 146, 105, 160, 164, 134, 151, 116, 138, 129, 101, 119, 172, 132, 122, 96, 114, 118, 117, 155, 178, 117, 156, 87, 119, 117, 166, 136, 118, 145, 118, 177, 120, 103, 171, 117, 152, 126, 154, 127, 153, 136, 140, 151, 110, 121, 150, 121, 121, 145, 107, 100, 142, 163, 104, 150, 166, 170, 186, 123, 121, 155, 128, 107, 138, 156, 150, 149, 110, 117, 133, 121, 157, 108, 126, 136, 171, 116, 147, 132, 124, 131, 187, 123, 130, 123, 136, 147, 113, 131, 125, 145, 117, 134, 102, 133, 126, 125, 132, 114, 120, 164, 155, 152, 106, 91, 86, 118, 161, 133, 98, 154, 152, 173, 146, 133, 150, 129, 96, 159, 111, 139, 123, 139, 145, 135, 162, 127, 128, 91, 158, 125, 121, 167, 110, 134, 136, 123, 173, 122, 145, 108, 106, 84, 127, 90, 101, 119, 106, 122, 115, 111, 104, 119, 140, 129, 184, 135, 141, 168, 141, 153, 151, 132, 154, 131, 154, 115, 148, 178, 117, 91, 122, 122, 159, 129, 147, 159, 124, 110, 146, 142, 108, 114, 109, 124, 145, 109, 145, 146, 137, 139, 143, 114, 142, 125, 100, 104, 155, 122, 123, 147, 177, 154, 125, 134, 120, 121, 165, 138, 149, 119, 111, 101, 131, 121, 155, 157, 113, 149, 107, 124, 110, 140, 119, 120, 146, 120, 172, 148, 129, 143, 124, 120, 141, 124, 118, 143, 154, 111, 138, 150, 144, 130, 148, 153, 114, 123, 150, 122, 112, 121, 139, 126, 139, 126, 106, 159, 113, 137, 181, 192, 143, 137, 147, 124, 113, 127, 116, 128, 121, 144, 117, 129, 170, 147, 122, 109, 105, 117, 159, 124, 169, 118, 124, 159, 128, 158, 165, 124, 151, 104, 145, 132, 121, 148, 163, 168, 135, 181, 146, 162, 131, 158, 137, 128, 147, 132, 139, 129, 142, 146, 121, 128, 140, 119, 134, 156, 137, 132, 163, 126, 154, 145, 122, 147, 135, 148, 132, 163, 121, 169, 145, 107, 126, 162, 128, 113, 131, 131, 140, 127, 156, 158, 135, 141, 117, 126, 120, 142, 129, 167, 108, 132, 116, 118, 121, 144, 111, 115, 131, 134, 118, 133, 120, 121, 158, 160, 102, 117, 151, 119, 105, 118, 120, 116, 108, 96, 121, 161, 167, 138, 108, 149, 130, 155, 125, 112, 171, 171, 183, 118, 162, 139, 125, 133, 124, 111, 145, 114, 83, 149, 126, 92, 117, 145, 116, 152, 114, 148, 143, 120, 105, 133, 141, 115, 126, 167, 124, 110, 107, 146, 115, 166, 124, 157, 158, 142, 117, 127, 164, 129, 136, 124, 175, 169, 124, 114, 123, 118, 212, 124, 88, 174, 131, 122, 149, 118, 157, 144, 177, 128, 185, 189, 181, 118, 131, 126, 146, 134, 143, 158, 109, 174, 126, 123, 137, 165, 108, 154, 112, 116, 128, 162, 157, 186, 118, 145, 131, 123, 127, 148, 161, 170, 195, 154, 115, 138, 112, 123, 147, 144, 183, 129, 149, 163, 124, 135, 114, 165, 127, 124, 121, 127, 181, 145, 154, 182, 163, 131, 119, 106, 116, 142, 124, 129, 181, 135, 138, 122, 145, 114, 115, 118, 131, 127, 126, 110, 136, 121, 108, 115, 199, 124, 143, 93, 121, 130, 176, 138, 122, 142, 106, 132, 112, 104, 34, 151, 145, 123, 127, 127, 148, 115, 149, 133, 127, 131, 159, 123, 125, 165, 139, 90, 168, 105, 108, 133, 168, 130, 194, 122, 113, 162, 128, 105, 132, 113, 154, 147, 132, 122, 137, 131, 188, 102, 125, 144, 151, 99, 159, 135, 121, 138, 122, 119, 113, 119, 127, 148, 130, 128, 116, 141, 121, 132, 121, 131, 126, 130, 147, 114, 115, 167, 145, 163, 118, 119, 124, 115, 146, 148, 122, 157, 124, 171, 147, 156, 148, 119, 181, 175, 126, 135, 122, 109, 173, 137, 143, 121, 142, 131, 163, 116, 125, 142, 125, 136, 108, 125, 148, 120, 59, 123, 125, 113, 160, 124, 104, 113, 118, 124, 115, 114, 133, 117, 156, 116, 164, 125, 165, 163, 144, 125, 131, 126, 148, 152, 158, 133, 152, 183, 110, 77, 124, 122, 143, 114, 164, 126, 94, 127, 152, 139, 113, 117, 105, 116, 127, 135, 147, 166, 150, 154, 141, 116, 133, 122, 49, 98, 150, 102, 118, 139, 152, 169, 123, 122, 119, 116, 206, 117, 161, 115, 111, 82, 122, 121, 173, 151, 118, 165, 100, 119, 109, 143, 120, 106, 167, 118, 171, 138, 124, 166, 129, 124, 137, 123, 115, 134, 157, 110, 152, 181, 133, 102, 152, 164, 141, 122, 139, 121, 133, 123, 147, 115, 136, 122, 114, 113, 145, 138, 187, 195, 143, 123, 170, 117, 110, 124, 121, 95, 117, 149, 123, 139, 204, 130, 114, 112, 92, 121, 144, 139, 149, 120, 122, 156, 130, 181, 170, 99, 142, 125, 153, 102, 119, 132, 134, 169, 143, 156, 157, 190, 120, 182, 104, 97, 160, 110, 122, 123, 155, 155, 121, 120, 145, 127, 113, 173, 133, 136, 170, 133, 161, 106, 124, 172, 173, 159, 143, 164, 121, 183, 148, 98, 123, 178, 134, 151, 133, 141, 144, 159, 179, 226, 135, 115, 109, 157, 116, 102, 124, 148, 125, 111, 135, 143, 114, 124, 139, 121, 125, 126, 120, 153, 117, 148, 179, 179, 122, 116, 154, 130, 122, 121, 119, 111, 114, 125, 117, 134, 160, 124, 114, 144, 122, 151, 119, 120, 185, 173, 155, 116, 153, 149, 109, 119, 156, 111, 119, 168, 116, 151, 123, 127, 119, 146, 125, 73, 121, 140, 161, 122, 180, 105, 132, 149, 143, 126, 132, 140, 134, 156, 116, 139, 155, 148, 142, 151, 104, 131, 117, 133, 138, 130, 154, 147, 127, 102, 124, 186, 142, 134, 152, 147, 128, 119, 146, 141, 153, 136, 164, 131, 146, 144, 148, 118, 132, 119, 159, 174, 140, 113, 119, 44, 124, 130, 146, 137, 120, 126, 130, 155, 144, 145, 134, 177, 119, 147, 137, 129, 130, 143, 149, 144, 146, 159, 120, 138, 112, 121, 137, 77, 162, 141, 150, 149, 121, 148, 137, 143, 124, 130, 123, 122, 152, 136, 84, 141, 148, 174, 119, 119, 124, 142, 110, 114, 155, 134, 150, 118, 135, 131, 139, 124, 115, 132, 125, 102, 107, 120, 123, 94, 168, 120, 152, 96, 121, 121, 155, 135, 125, 142, 123, 121, 124, 114, 176, 115, 140, 131, 105, 132, 147, 92, 140, 147, 116, 123, 142, 125, 124, 139, 157, 107, 139, 156, 112, 151, 156, 106, 164, 123, 126, 155, 130, 110, 135, 154, 142, 142, 109, 122, 131, 125, 145, 111, 133, 135, 164, 120, 147, 129, 125, 105, 104, 126, 135, 127, 135, 136, 173, 134, 136, 145, 120, 136, 109, 139, 127, 127, 132, 122, 124, 152, 153, 144, 113, 148, 156, 121, 153, 129, 155, 146, 157, 174, 142, 131, 144, 131, 167, 157, 148, 136, 127, 130, 139, 136, 153, 129, 131, 170, 148, 127, 124, 128, 112, 170, 136, 125, 166, 120, 152, 112, 110, 127, 124, 179, 112, 123, 112, 125, 116, 124, 132, 124, 135, 132, 172, 135, 135, 157, 138, 103, 151, 131, 153, 131, 148, 119, 142, 163, 117, 113, 123, 125, 152, 130, 141, 156, 131, 115, 138, 142, 114, 119, 118, 124, 145, 110, 144, 138, 136, 135, 140, 118, 143, 126, 117, 113, 158, 119, 127, 145, 174, 145, 126, 138, 121, 124, 149, 145, 144, 125, 115, 115, 134, 123, 143, 151, 117, 138, 116, 128, 176, 138, 122, 128, 142, 125, 158, 154, 132, 138, 124, 122, 117, 125, 125, 153, 156, 115, 138, 129, 143, 127, 142, 144, 141, 127, 135, 123, 111, 123, 135, 129, 139, 127, 113, 105, 129, 133, 168, 176, 139, 132, 140, 129, 119, 129, 123, 130, 127, 140, 125, 129, 151, 150, 126, 114, 120, 121, 156, 169, 171, 122, 124, 158, 132, 148, 154, 130, 147, 117, 140, 135, 122, 145, 155, 157, 134, 170, 140, 152, 132, 150, 140, 138, 140, 135, 142, 131, 140, 143, 125, 130, 136, 121, 136, 147, 138, 133, 152, 121, 143, 145, 124, 139, 135, 145, 133, 156, 122, 155, 144, 112, 129, 143, 135, 136, 128, 128, 141, 115, 156, 133, 134, 136, 123, 128, 122, 152, 130, 158, 145, 133, 167, 126, 126, 149, 113, 122, 129, 135, 121, 132, 124, 113, 149, 149, 105, 120, 151, 120, 107, 117, 122, 121, 113, 102, 123, 122, 155, 145, 114, 144, 133, 149, 127, 114, 156, 164, 175, 121, 157, 134, 129, 135, 115, 112, 91, 185, 93, 143, 128, 96, 121, 139, 118, 158, 114, 144, 139, 123, 98, 165};
+ model->setOperandValue(op11, op11_init, sizeof(uint8_t) * 4608);
+ static int32_t op13_init[] = {-4877, 721, 678, 4292, 10071, 1898, -2621, -19306, -21498, -13936, 8924, -10957, -15039, -8760, 10726, -1940, -2609, -13946, -15129, -10331, -15062, -7899, -16830, 2096, 1485, -16444, -7274, 2650, -8279, -3054, 11104, -27779, 5796, -4926, 24092, -17812, 2693, -6712, -13479, 9877, -14408, 3498, -17612, 9954, 753, 1425, -21266, 5028, -3375, -1855, -23583, -24441, -11628, -3866, 1589, -40614, -23824, -1652, -1879, 5411, 5459, -25641, -5617, 19247, -956, 26940, 5175, 8275, 8123, -27174, -20716, 8311, -11679, -10654, -22645, 13393, 6458, -2921, 182, 6807, -5019, -21492, -17806, -30854, 15622, 4366, 9048, -7021, 2901, 14294, 2528, -121, 3775, 6381, -3824, -4337, -9583, -11327, 20171, 2507, -18367, 22500, -406, -28676, 10885, -26140, -3397, -16997, -21130, -14684, 29333, 21191, 2520, 13654, -28552, 12486, 1026, 4616, 5706, 5356, -18821, 5628, -7792, -12895, 8208, 10447, -389, 4966, -7798, -16495, -7945, 7699, -9645, 26447, -18442, 15937, -5922, -1229, 6794, 13569, -2549, -5813, -6050, -26988, -20065, -24300, -22053, -27818, 2256, 10564, -13191, 5268, 7864, -9014, -14307, -22404, 11324, -16337, -2087, -19364, -17940, 6916, -17699, -8865, -13785, -10609, -6527, -12828, -10222, -33670, 3599, 2772, 24751, -13469, -555, -8745, -20538, -11486, -4666, -19643, 2269, -24734, -5421, -7096, 14939, -19271, -16481, 3595, 12307, -11509, -19461, -8256, -15293, -10568, -26738, -5637, -21581, -24955, -18708, -8090, -12189, 17218, -11559, 11904, 2785, -4204, -32033, 15474, -15519, -13122, -6947, -9276, -12824, 187, 21634, -26, -9278, -26205, -1350, -28679, 11271, 10390, -20143, 7467, 10104, 7998, 5846, -19189, -18263, 8629, 1139, -4108, -5539, -15491, -16658, 375, -6915, -13589, -6239, -5451, 20095, -15352, 899, 541, 5650, -639, -2976, 11613, 11304, -8192, -31960, 4233, -17844, -31553, -22933, -1883, -18179, -1943, -8066, -17810, -16706, -9513, -10900, -1222, -17231, -4421, -10161, -35927, -2653, -22824, -2462, -25862, 1057, -7506, 13392, -27146, -13084, 3736, -6578, -31150, 776, -22934, 20460, -46451, 9939, 3712, 4418, -4606, -289, -21906, -482, 6887, 11068, 9434, -1696, -13174, -558, -4058, 4646, 12758, -9873, -16593, -33326, 1282, 10015, -12681, -17861, 4800, 6978, -12072, -28769, 4991, -23681, -5425, 12025, -20827, 5364, -9880, -7133, 1398, -3699, -6872, 4494, -13878, -39027, -23532, -26402, -11359, -8668, 1792, 2562, 86, -5300, -3241, 11484, 5093, -23266, 11526, -5602, 10598, -18329, -8082, -23669, -10421, 17809, -17662, -23783, 5655, -13770, 9115, 8536, -4997, 11552, -7150, -25158, -2703, 14584, -10293, 8408, -9911, 2729, 28004, -23819, -16981, -21319, -14831, -26859, -9853, 196, -26785, 16281, -18332, 14625, -14248, 1007, -22995, 6964, 7100, -12551, 19360, -10236, -7287, -1589, -10854, 3629, 207, -11070, -9435, -13274, -20483, -19296, 2756, -3152, -892, -8157, 18293, 5096, -151, -10006, -20583, -69, -6878, -1009, 13213, -14484, -1917, -29455, -15284, 13163, 1377, -9193, -901, -13882, -9328, 6492, 5410, 9050, -26715, -6989, -5216, -20873, -30210, -1157, 18495, 22359, -12892, 884, -8823, -2142, 5722, 6952, -33411, 420, -36310, -3378, 211, -10879, -23100, 17165, -35053, -14920, 2745, 5247, -6643, -2567, 1052, 5052, 14906, 14310, 1363, -7743, -21934, 5841, 9654, -1299, -13084, -17796, 12736, -10214, -25004, -4992, -26200, -10513, 29618, 12890, -8492, -17917, -7479, -36350, 10551, -9685, -19198, -5370, -13439, 9733, -22280, -13104, 8214, -1993, 10421, -28592, -6668, -34387, 8927, -14614, 5269, 17166, 10229, -9886, -28003, -14966, 4052, 3941, 4526, 832, -9720, 11659, -12904, 4272, -1152, -1744, 17584, -25673, -11159, 722, -19940, -19347, -19639, 12573, -5779, -6954, 11062};
+ model->setOperandValue(op13, op13_init, sizeof(int32_t) * 512);
+ static uint8_t op14_init[] = {116, 122, 116, 103, 124, 118, 132, 111, 101, 108, 110, 123, 101, 116, 121, 124, 114, 104, 105, 97, 103, 127, 113, 110, 109, 116, 126, 122, 117, 109, 118, 100, 112, 116, 110, 116, 94, 127, 111, 120, 116, 118, 123, 104, 121, 122, 96, 117, 107, 117, 96, 122, 99, 105, 115, 121, 105, 121, 114, 109, 119, 113, 126, 117, 125, 100, 115, 109, 103, 119, 117, 113, 126, 119, 112, 121, 111, 117, 112, 120, 128, 111, 123, 115, 107, 115, 109, 105, 108, 131, 105, 110, 106, 119, 117, 113, 119, 101, 110, 118, 122, 118, 110, 105, 118, 122, 111, 94, 112, 122, 107, 104, 98, 101, 104, 111, 100, 116, 108, 117, 111, 120, 123, 121, 108, 124, 115, 101, 115, 104, 118, 119, 113, 109, 128, 115, 106, 121, 118, 116, 114, 110, 110, 101, 124, 111, 109, 106, 110, 121, 101, 109, 113, 115, 106, 122, 116, 101, 122, 134, 107, 116, 115, 116, 127, 121, 113, 114, 130, 120, 113, 114, 110, 122, 105, 112, 112, 113, 117, 111, 114, 111, 109, 115, 122, 101, 119, 121, 108, 99, 120, 120, 114, 115, 113, 139, 116, 115, 125, 101, 116, 105, 125, 115, 107, 120, 113, 125, 112, 109, 118, 110, 100, 112, 96, 121, 116, 109, 113, 123, 125, 108, 108, 111, 110, 120, 118, 124, 119, 114, 101, 114, 116, 118, 119, 119, 118, 120, 116, 117, 123, 118, 106, 112, 109, 107, 112, 124, 118, 112, 119, 124, 116, 116, 110, 95, 113, 111, 98, 118, 123, 136, 111, 106, 114, 112, 111, 125, 110, 126, 97, 115, 115, 117, 109, 132, 102, 112, 110, 113, 110, 126, 124, 118, 108, 107, 119, 107, 118, 111, 120, 114, 105, 117, 105, 111, 132, 119, 115, 115, 114, 109, 105, 104, 107, 123, 107, 128, 107, 110, 103, 118, 103, 112, 111, 108, 126, 117, 115, 114, 114, 108, 103, 100, 110, 103, 97, 106, 119, 117, 121, 121, 114, 122, 111, 119, 110, 108, 120, 119, 128, 115, 120, 124, 116, 109, 117, 111, 119, 119, 120, 124, 124, 117, 116, 114, 128, 100, 115, 135, 117, 123, 117, 100, 123, 105, 120, 120, 120, 104, 118, 122, 110, 119, 104, 109, 123, 113, 104, 101, 117, 124, 120, 116, 105, 115, 126, 96, 109, 123, 112, 126, 121, 110, 107, 127, 121, 119, 111, 122, 112, 120, 100, 115, 97, 131, 112, 117, 112, 129, 112, 120, 113, 121, 122, 114, 114, 110, 110, 127, 115, 109, 125, 126, 111, 119, 112, 123, 124, 122, 121, 123, 125, 107, 109, 105, 114, 93, 103, 125, 110, 111, 117, 106, 130, 116, 119, 124, 125, 117, 110, 125, 117, 104, 113, 125, 121, 112, 109, 114, 101, 101, 119, 107, 114, 106, 125, 114, 112, 105, 117, 117, 131, 119, 125, 124, 110, 120, 110, 89, 110, 108, 111, 117, 117, 113, 117, 106, 119, 110, 104, 131, 122, 126, 112, 112, 110, 114, 104, 110, 101, 114, 116, 115, 122, 123, 103, 122, 109, 122, 103, 117, 94, 107, 130, 111, 114, 107, 113, 117, 112, 117, 121, 124, 121, 107, 109, 124, 106, 123, 114, 105, 115, 118, 113, 110, 114, 115, 117, 106, 125, 110, 115, 109, 117, 115, 104, 110, 105, 112, 113, 116, 100, 115, 114, 112, 106, 124, 113, 121, 115, 110, 129, 105, 112, 113, 107, 108, 105, 116, 122, 109, 123, 114, 115, 103, 109, 124, 113, 108, 105, 101, 115, 120, 127, 126, 115, 108, 102, 117, 122, 105, 112, 107, 112, 113, 120, 119, 114, 106, 119, 115, 109, 117, 115, 110, 122, 114, 113, 116, 120, 128, 117, 106, 109, 115, 122, 105, 113, 111, 108, 118, 105, 130, 120, 112, 123, 119, 113, 115, 122, 99, 112, 118, 103, 116, 112, 121, 115, 121, 108, 109, 120, 98, 111, 108, 128, 108, 103, 123, 124, 128, 108, 112, 111, 118, 146, 121, 117, 121, 123, 120, 111, 115, 106, 109, 118, 114, 114, 110, 109, 116, 115, 110, 120, 102, 121, 114, 129, 120, 116, 120, 118, 106, 110, 110, 111, 119, 123, 106, 122, 109, 110, 109, 111, 113, 114, 109, 116, 116, 109, 102, 105, 121, 113, 122, 107, 109, 109, 109, 114, 117, 111, 104, 110, 110, 111, 117, 116, 117, 118, 96, 106, 115, 108, 129, 116, 112, 102, 105, 98, 95, 117, 112, 109, 132, 112, 111, 114, 106, 139, 109, 114, 109, 103, 112, 105, 113, 112, 106, 116, 109, 120, 115, 123, 120, 108, 113, 118, 120, 118, 113, 117, 118, 127, 114, 119, 110, 126, 115, 109, 115, 109, 113, 105, 105, 99, 118, 96, 126, 109, 106, 104, 124, 129, 117, 105, 124, 114, 115, 107, 125, 120, 115, 120, 112, 112, 107, 108, 117, 105, 109, 117, 127, 112, 114, 127, 104, 115, 114, 116, 112, 111, 120, 121, 115, 106, 115, 118, 117, 110, 119, 121, 116, 110, 122, 94, 109, 118, 103, 106, 114, 115, 94, 105, 129, 116, 107, 101, 109, 120, 104, 117, 107, 108, 104, 91, 118, 126, 116, 112, 116, 118, 103, 111, 114, 108, 115, 116, 108, 109, 117, 115, 126, 109, 122, 113, 109, 129, 120, 124, 123, 111, 112, 122, 114, 103, 118, 106, 108, 113, 118, 127, 124, 118, 114, 106, 112, 109, 106, 114, 106, 113, 117, 122, 129, 122, 116, 114, 113, 104, 124, 121, 141, 115, 103, 98, 101, 108, 114, 105, 118, 103, 106, 105, 125, 104, 129, 115, 113, 111, 142, 115, 114, 110, 112, 116, 105, 102, 129, 117, 118, 105, 120, 117, 115, 116, 136, 108, 118, 116, 113, 108, 123, 112, 111, 102, 118, 113, 120, 114, 115, 122, 100, 119, 115, 100, 135, 124, 104, 118, 112, 121, 120, 107, 107, 117, 128, 121, 117, 103, 119, 118, 124, 117, 119, 98, 118, 117, 108, 116, 123, 127, 114, 124, 106, 109, 124, 114, 129, 115, 122, 106, 111, 120, 105, 109, 110, 117, 106, 118, 101, 107, 128, 111, 113, 118, 135, 108, 117, 114, 119, 109, 101, 127, 122, 116, 124, 107, 110, 112, 117, 121, 124, 111, 119, 103, 123, 112, 119, 121, 107, 111, 102, 126, 110, 116, 123, 109, 107, 124, 109, 120, 106, 96, 116, 102, 130, 123, 111, 137, 124, 100, 111, 119, 107, 112, 124, 131, 121, 110, 111, 101, 126, 111, 132, 117, 112, 110, 115, 115, 102, 111, 122, 105, 118, 117, 111, 117, 125, 102, 114, 111, 124, 120, 95, 102, 107, 120, 110, 131, 105, 118, 107, 109, 110, 104, 119, 123, 118, 110, 129, 118, 113, 109, 111, 117, 96, 98, 125, 118, 132, 115, 101, 111, 108, 123, 114, 123, 115, 110, 104, 106, 123, 114, 114, 115, 119, 107, 112, 128, 122, 116, 111, 106, 111, 95, 107, 122, 115, 122, 113, 112, 114, 110, 127, 122, 107, 122, 134, 124, 114, 110, 119, 119, 118, 118, 109, 109, 113, 116, 124, 113, 112, 112, 103, 113, 124, 109, 115, 112, 118, 111, 115, 106, 115, 131, 119, 97, 111, 111, 131, 113, 116, 117, 113, 121, 115, 105, 117, 125, 120, 113, 125, 116, 115, 125, 111, 116, 112, 133, 116, 119, 120, 111, 122, 130, 113, 116, 107, 115, 113, 118, 101, 129, 109, 102, 118, 123, 128, 102, 116, 121, 105, 114, 110, 102, 118, 129, 114, 124, 115, 123, 115, 137, 121, 110, 119, 114, 131, 111, 116, 118, 114, 110, 108, 102, 121, 113, 124, 114, 115, 115, 114, 125, 109, 99, 114, 111, 110, 111, 129, 115, 115, 121, 117, 108, 112, 109, 130, 104, 112, 105, 108, 121, 119, 116, 111, 109, 112, 103, 111, 126, 123, 106, 95, 108, 114, 119, 131, 119, 121, 115, 114, 131, 104, 109, 118, 108, 100, 114, 126, 111, 96, 99, 114, 100, 106, 108, 133, 111, 103, 116, 114, 116, 113, 120, 114, 121, 113, 110, 98, 126, 117, 113, 101, 106, 115, 105, 108, 110, 108, 103, 120, 123, 108, 106, 117, 120, 120, 113, 114, 113, 116, 115, 125, 112, 122, 114, 121, 116, 117, 115, 127, 119, 108, 125, 104, 120, 117, 118, 112, 117, 108, 120, 108, 127, 106, 121, 109, 120, 116, 122, 110, 110, 118, 112, 107, 105, 125, 119, 110, 129, 114, 124, 126, 118, 113, 128, 116, 106, 107, 115, 118, 117, 117, 109, 106, 117, 110, 124, 105, 116, 119, 110, 132, 117, 124, 100, 130, 131, 104, 121, 114, 111, 116, 120, 113, 118, 115, 113, 108, 120, 101, 113, 126, 106, 116, 111, 118, 116, 111, 110, 126, 114, 115, 112, 125, 119, 117, 109, 112, 94, 123, 103, 110, 127, 121, 110, 111, 103, 100, 110, 108, 117, 117, 112, 138, 112, 111, 99, 114, 105, 110, 129, 110, 106, 96, 112, 117, 126, 109, 118, 120, 123, 100, 110, 123, 115, 111, 116, 108, 104, 102, 112, 111, 114, 105, 142, 125, 112, 117, 126, 129, 103, 115, 124, 117, 116, 128, 117, 116, 117, 112, 106, 113, 106, 114, 116, 119, 115, 111, 113, 113, 111, 121, 102, 104, 114, 112, 120, 115, 112, 116, 114, 106, 113, 111, 102, 113, 133, 128, 108, 127, 117, 114, 111, 124, 116, 123, 117, 121, 122, 113, 116, 108, 113, 118, 116, 118, 114, 126, 106, 115, 111, 114, 103, 114, 125, 114, 123, 112, 116, 118, 115, 111, 114, 117, 108, 110, 122, 116, 112, 114, 115, 111, 124, 114, 109, 111, 103, 104, 104, 122, 116, 114, 107, 124, 118, 116, 113, 118, 118, 115, 123, 118, 119, 122, 127, 109, 115, 118, 112, 114, 115, 113, 109, 118, 113, 118, 127, 114, 122, 108, 113, 112, 109, 121, 119, 123, 122, 110, 110, 110, 116, 112, 115, 109, 116, 121, 119, 118, 122, 116, 118, 110, 118, 105, 103, 112, 124, 114, 124, 109, 101, 110, 124, 124, 114, 122, 116, 121, 108, 112, 120, 105, 122, 114, 114, 118, 107, 120, 120, 119, 110, 109, 103, 121, 127, 113, 116, 106, 117, 112, 119, 114, 108, 120, 97, 114, 115, 113, 110, 112, 102, 117, 117, 119, 116, 110, 119, 129, 114, 116, 112, 110, 111, 121, 122, 105, 114, 130, 106, 114, 113, 114, 125, 120, 122, 112, 115, 116, 125, 103, 114, 112, 108, 121, 114, 120, 117, 113, 124, 115, 120, 115, 122, 118, 120, 120, 110, 116, 111, 116, 114, 115, 116, 106, 120, 112, 114, 118, 115, 112, 114, 115, 113, 122, 111, 109, 117, 121, 111, 113, 111, 114, 123, 120, 119, 121, 123, 119, 106, 127, 115, 111, 109, 118, 114, 114, 116, 119, 120, 117, 105, 122, 115, 113, 119, 110, 118, 114, 115, 126, 122, 115, 112, 129, 116, 124, 114, 119, 110, 116, 123, 120, 118, 114, 115, 111, 123, 119, 113, 119, 119, 111, 105, 107, 113, 109, 122, 126, 122, 127, 117, 112, 110, 113, 115, 111, 128, 131, 121, 120, 112, 118, 114, 120, 108, 110, 112, 119, 110, 120, 102, 119, 115, 112, 116, 113, 113, 123, 121, 127, 107, 119, 109, 110, 116, 110, 114, 117, 107, 118, 125, 110, 114, 108, 109, 115, 108, 122, 102, 105, 117, 96, 101, 123, 118, 120, 116, 127, 111, 120, 126, 117, 120, 119, 116, 113, 115, 114, 128, 118, 109, 114, 124, 118, 113, 113, 122, 124, 115, 110, 120, 109, 117, 112, 124, 119, 118, 117, 113, 114, 118, 123, 102, 117, 123, 116, 103, 117, 111, 119, 107, 110, 114, 120, 126, 122, 115, 117, 114, 118, 114, 113, 115, 123, 120, 121, 110, 112, 120, 121, 122, 125, 122, 122, 115, 114, 100, 110, 118, 120, 115, 118, 115, 111, 113, 108, 119, 123, 109, 114, 120, 123, 113, 112, 115, 111, 120, 119, 127, 109, 117, 120, 108, 117, 118, 126, 119, 120, 114, 122, 102, 116, 114, 122, 116, 115, 117, 117, 107, 118, 123, 120, 110, 122, 125, 115, 123, 121, 111, 124, 115, 118, 118, 116, 114, 110, 106, 115, 124, 117, 123, 124, 107, 114, 115, 131, 118, 109, 109, 100, 109, 116, 116, 120, 117, 117, 114, 110, 119, 113, 128, 121, 108, 113, 120, 112, 112, 114, 108, 117, 106, 115, 124, 115, 120, 103, 115, 119, 109, 124, 110, 118, 110, 112, 115, 97, 94, 95, 116, 108, 115, 124, 114, 119, 135, 120, 112, 116, 126, 116, 113, 106, 111, 110, 121, 115, 123, 135, 96, 118, 99, 119, 106, 109, 120, 128, 109, 107, 116, 117, 123, 117, 123, 118, 97, 105, 112, 109, 127, 106, 131, 123, 103, 119, 113, 114, 120, 119, 116, 104, 117, 120, 111, 111, 126, 111, 112, 93, 118, 101, 114, 105, 113, 124, 123, 121, 104, 109, 103, 118, 113, 106, 117, 115, 108, 118, 112, 111, 110, 114, 116, 116, 125, 102, 106, 125, 109, 119, 132, 102, 107, 115, 128, 121, 110, 107, 113, 122, 113, 120, 117, 124, 106, 117, 120, 111, 116, 131, 123, 114, 106, 125, 113, 113, 110, 121, 114, 110, 114, 122, 125, 124, 115, 98, 112, 106, 117, 110, 110, 117, 113, 106, 119, 112, 123, 109, 139, 109, 111, 113, 118, 115, 100, 110, 110, 96, 114, 124, 102, 112, 115, 117, 117, 115, 107, 118, 130, 130, 118, 98, 112, 118, 124, 122, 119, 129, 119, 119, 123, 107, 110, 112, 116, 113, 106, 122, 100, 120, 108, 114, 107, 112, 114, 110, 96, 105, 127, 117, 136, 97, 104, 126, 101, 97, 113, 95, 126, 134, 120, 110, 97, 117, 105, 116, 126, 129, 101, 114, 121, 124, 119, 99, 110, 123, 96, 107, 107, 124, 107, 108, 111, 130, 101, 121, 113, 120, 112, 117, 112, 114, 120, 116, 104, 106, 109, 111, 111, 113, 113, 137, 114, 121, 111, 118, 110, 112, 105, 108, 130, 121, 108, 117, 130, 115, 116, 111, 95, 117, 116, 142, 116, 129, 103, 109, 125, 114, 124, 115, 114, 105, 112, 124, 107, 119, 111, 120, 103, 108, 111, 97, 123, 110, 117, 140, 109, 107, 90, 118, 117, 128, 99, 128, 114, 99, 102, 116, 102, 142, 112, 105, 120, 127, 133, 126, 127, 113, 112, 101, 125, 112, 113, 106, 117, 122, 112, 114, 120, 124, 100, 104, 123, 108, 111, 127, 105, 112, 103, 106, 119, 117, 116, 115, 104, 111, 139, 115, 104, 110, 102, 115, 120, 111, 120, 117, 126, 115, 116, 106, 128, 131, 100, 96, 122, 110, 104, 106, 103, 129, 120, 120, 106, 125, 86, 123, 112, 116, 130, 113, 111, 130, 107, 118, 123, 106, 135, 106, 119, 112, 116, 117, 123, 118, 97, 118, 118, 103, 100, 125, 118, 106, 104, 107, 112, 98, 124, 106, 105, 108, 125, 105, 117, 112, 113, 108, 123, 123, 125, 108, 96, 117, 114, 135, 106, 101, 108, 112, 110, 120, 107, 114, 114, 111, 109, 102, 123, 110, 122, 114, 125, 121, 111, 104, 111, 112, 119, 113, 113, 95, 130, 105, 126, 111, 105, 128, 121, 109, 113, 109, 120, 117, 120, 111, 112, 113, 125, 101, 113, 124, 112, 120, 109, 130, 119, 109, 110, 119, 115, 123, 128, 102, 102, 106, 110, 124, 105, 111, 110, 127, 122, 114, 112, 115, 108, 117, 124, 115, 112, 110, 115, 121, 103, 104, 120, 115, 122, 119, 113, 126, 123, 111, 121, 110, 130, 126, 105, 112, 113, 133, 114, 119, 119, 116, 119, 48, 119, 106, 118, 107, 103, 129, 125, 121, 108, 106, 99, 144, 113, 123, 128, 118, 108, 110, 126, 121, 110, 127, 130, 106, 115, 124, 123, 120, 120, 117, 127, 101, 134, 115, 119, 127, 109, 118, 116, 121, 115, 110, 132, 102, 120, 123, 120, 121, 105, 113, 111, 111, 128, 102, 128, 112, 128, 118, 101, 115, 117, 114, 132, 111, 124, 114, 108, 101, 113, 119, 116, 104, 111, 108, 123, 114, 123, 97, 119, 110, 111, 102, 91, 117, 126, 117, 97, 123, 123, 118, 110, 111, 111, 105, 107, 111, 113, 122, 108, 115, 113, 124, 114, 107, 115, 114, 123, 127, 118, 114, 113, 120, 128, 107, 124, 116, 111, 99, 123, 97, 116, 117, 105, 114, 105, 100, 121, 113, 130, 99, 112, 113, 129, 137, 124, 109, 116, 112, 119, 112, 120, 126, 129, 113, 134, 112, 106, 110, 115, 99, 109, 96, 103, 131, 115, 147, 122, 132, 118, 116, 117, 120, 83, 107, 105, 123, 129, 111, 143, 111, 120, 108, 112, 117, 119, 115, 121, 110, 115, 117, 111, 112, 99, 114, 121, 116, 112, 118, 114, 117, 99, 105, 120, 100, 115, 105, 122, 111, 129, 102, 112, 113, 116, 115, 119, 122, 109, 112, 120, 115, 120, 103, 112, 108, 102, 127, 117, 113, 141, 114, 120, 103, 124, 108, 133, 108, 122, 115, 110, 116, 126, 103, 111, 123, 117, 114, 106, 110, 98, 113, 114, 116, 111, 115, 107, 124, 121, 109, 109, 104, 117, 118, 129, 114, 115, 127, 102, 122, 123, 108, 116, 124, 124, 114, 135, 116, 121, 119, 112, 107, 103, 107, 107, 109, 122, 114, 122, 110, 116, 115, 96, 124, 120, 121, 121, 91, 135, 109, 107, 113, 112, 122, 152, 125, 110, 112, 116, 113, 102, 117, 152, 114, 114, 120, 109, 123, 94, 99, 126, 106, 115, 128, 101, 123, 125, 112, 113, 111, 119, 115, 101, 109, 108, 143, 112, 130, 116, 118, 108, 125, 115, 118, 112, 124, 114, 93, 118, 107, 122, 123, 152, 139, 109, 109, 107, 124, 111, 106, 129, 114, 118, 115, 119, 123, 96, 112, 112, 109, 103, 117, 120, 120, 118, 109, 108, 108, 114, 108, 116, 104, 120, 114, 106, 127, 102, 119, 110, 108, 122, 105, 119, 123, 115, 126, 97, 126, 125, 113, 119, 112, 108, 122, 127, 138, 109, 117, 115, 109, 118, 112, 109, 113, 101, 137, 112, 131, 118, 116, 135, 113, 109, 108, 103, 131, 114, 106, 110, 105, 107, 98, 110, 107, 122, 107, 128, 113, 117, 112, 110, 118, 128, 132, 111, 111, 125, 103, 117, 107, 118, 109, 98, 108, 115, 98, 111, 130, 116, 114, 115, 106, 118, 119, 126, 140, 124, 122, 114, 116, 112, 115, 111, 106, 112, 122, 104, 118, 121, 112, 133, 120, 108, 114, 128, 119, 122, 100, 117, 112, 117, 131, 131, 104, 104, 111, 109, 121, 101, 101, 111, 126, 101, 113, 102, 95, 114, 117, 108, 106, 118, 97, 121, 121, 110, 110, 99, 93, 104, 124, 125, 126, 113, 107, 120, 133, 123, 116, 119, 108, 110, 109, 105, 113, 103, 118, 109, 117, 117, 116, 115, 115, 114, 117, 106, 102, 118, 119, 110, 116, 123, 116, 101, 115, 132, 116, 118, 127, 120, 122, 119, 108, 122, 107, 107, 117, 94, 118, 109, 117, 123, 119, 109, 114, 125, 107, 127, 118, 117, 103, 109, 121, 111, 107, 95, 113, 117, 123, 129, 114, 119, 118, 132, 114, 113, 105, 143, 115, 107, 120, 108, 116, 105, 115, 114, 134, 115, 119, 106, 107, 105, 106, 113, 118, 128, 120, 127, 117, 121, 97, 111, 122, 116, 118, 111, 121, 117, 76, 120, 110, 112, 111, 128, 115, 104, 118, 133, 126, 111, 112, 106, 109, 118, 110, 112, 111, 116, 119, 112, 100, 115, 117, 111, 131, 115, 113, 108, 112, 113, 102, 115, 116, 117, 120, 105, 104, 106, 119, 128, 93, 110, 112, 118, 93, 125, 115, 112, 119, 115, 112, 117, 135, 113, 110, 117, 121, 106, 111, 106, 92, 105, 120, 133, 119, 114, 119, 125, 111, 115, 132, 133, 88, 116, 84, 107, 111, 104, 103, 119, 113, 102, 127, 117, 125, 111, 116, 104, 119, 125, 122, 123, 102, 119, 107, 126, 112, 111, 119, 109, 123, 113, 119, 122, 114, 108, 130, 138, 110, 133, 126, 121, 113, 99, 124, 97, 113, 113, 120, 116, 120, 115, 123, 106, 113, 118, 111, 111, 107, 122, 105, 117, 127, 121, 112, 103, 131, 127, 109, 116, 115, 117, 134, 121, 112, 127, 121, 111, 99, 111, 104, 111, 112, 133, 133, 119, 123, 114, 129, 120, 128, 122, 121, 114, 120, 108, 112, 107, 106, 114, 104, 122, 124, 127, 124, 115, 112, 125, 94, 125, 111, 116, 130, 128, 114, 122, 110, 115, 115, 103, 124, 122, 107, 124, 96, 116, 123, 113, 115, 125, 124, 131, 123, 130, 118, 115, 123, 119, 110, 108, 115, 101, 110, 110, 104, 108, 131, 116, 97, 115, 109, 112, 113, 115, 126, 123, 107, 106, 124, 105, 114, 112, 109, 112, 107, 120, 107, 106, 102, 121, 109, 123, 128, 102, 124, 111, 115, 114, 104, 113, 116, 112, 126, 127, 115, 127, 112, 125, 121, 110, 104, 116, 116, 110, 112, 112, 114, 123, 113, 121, 119, 137, 108, 115, 107, 111, 111, 135, 115, 103, 115, 100, 108, 124, 101, 126, 113, 129, 133, 126, 113, 101, 110, 127, 120, 112, 131, 131, 99, 126, 128, 107, 103, 117, 118, 122, 102, 107, 117, 122, 110, 128, 122, 121, 99, 110, 100, 102, 131, 124, 126, 115, 118, 126, 121, 125, 125, 112, 109, 126, 109, 124, 115, 108, 92, 108, 111, 114, 101, 119, 104, 126, 109, 134, 95, 118, 126, 110, 95, 98, 122, 108, 101, 117, 126, 92, 111, 112, 117, 139, 130, 117, 106, 120, 98, 125, 124, 110, 117, 110, 118, 114, 105, 126, 132, 114, 101, 124, 117, 118, 129, 109, 89, 112, 114, 107, 118, 95, 120, 121, 87, 115, 121, 116, 86, 128, 121, 123, 118, 122, 94, 103, 118, 105, 107, 112, 118, 122, 110, 114, 120, 106, 117, 103, 115, 123, 116, 110, 105, 134, 115, 103, 130, 122, 118, 133, 110, 107, 140, 117, 118, 114, 117, 106, 125, 113, 125, 120, 100, 104, 111, 119, 123, 117, 110, 116, 116, 111, 115, 110, 110, 131, 106, 115, 101, 105, 110, 124, 108, 124, 148, 111, 114, 107, 105, 124, 115, 109, 104, 118, 120, 133, 127, 127, 123, 123, 165, 110, 119, 113, 113, 119, 92, 119, 113, 112, 128, 111, 98, 122, 122, 118, 106, 119, 99, 129, 134, 103, 114, 119, 112, 117, 105, 108, 104, 118, 122, 121, 127, 113, 113, 130, 111, 119, 133, 142, 116, 114, 134, 117, 106, 128, 133, 127, 131, 110, 127, 128, 112, 112, 124, 103, 117, 110, 106, 107, 107, 99, 117, 129, 121, 118, 125, 98, 105, 121, 111, 114, 110, 108, 127, 126, 115, 108, 116, 107, 102, 118, 115, 102, 117, 110, 117, 114, 120, 115, 114, 129, 129, 119, 130, 113, 120, 110, 110, 112, 103, 114, 120, 112, 128, 122, 123, 91, 117, 110, 107, 118, 110, 116, 94, 102, 98, 128, 114, 107, 126, 107, 83, 125, 120, 109, 129, 111, 106, 96, 125, 113, 102, 132, 103, 116, 107, 119, 135, 103, 107, 103, 120, 120, 118, 111, 115, 123, 126, 110, 108, 115, 121, 120, 115, 99, 118, 103, 116, 111, 128, 112, 106, 126, 121, 133, 119, 106, 126, 109, 101, 117, 117, 115, 116, 129, 121, 105, 108, 120, 91, 136, 117, 131, 122, 107, 129, 93, 109, 123, 103, 122, 93, 119, 119, 118, 125, 91, 103, 117, 100, 125, 115, 113, 107, 105, 111, 90, 115, 105, 135, 114, 100, 109, 113, 122, 138, 105, 109, 107, 111, 124, 108, 104, 105, 113, 112, 109, 111, 130, 113, 111, 100, 112, 113, 129, 113, 126, 99, 127, 123, 147, 109, 114, 117, 128, 123, 117, 98, 105, 129, 108, 119, 95, 107, 117, 115, 120, 120, 110, 119, 101, 115, 122, 111, 126, 103, 115, 116, 115, 111, 101, 124, 131, 109, 112, 129, 128, 109, 109, 113, 109, 104, 118, 125, 119, 110, 99, 122, 111, 121, 108, 111, 101, 107, 110, 126, 109, 108, 121, 102, 102, 107, 111, 125, 116, 114, 106, 97, 128, 122, 110, 121, 119, 139, 117, 110, 125, 124, 105, 96, 102, 111, 118, 96, 132, 121, 109, 131, 108, 114, 104, 125, 109, 130, 114, 113, 107, 108, 111, 113, 126, 100, 102, 102, 105, 131, 110, 114, 120, 105, 120, 89, 106, 135, 121, 109, 106, 121, 106, 113, 129, 114, 118, 117, 103, 98, 116, 129, 115, 112, 111, 110, 130, 127, 117, 102, 121, 111, 122, 113, 114, 111, 108, 123, 121, 122, 118, 106, 105, 108, 128, 115, 115, 113, 107, 126, 138, 101, 127, 107, 125, 107, 108, 108, 104, 118, 116, 100, 106, 128, 111, 114, 109, 126, 108, 108, 116, 120, 123, 108, 140, 118, 111, 122, 94, 118, 124, 106, 103, 122, 123, 120, 117, 119, 112, 108, 121, 114, 111, 118, 108, 111, 108, 103, 115, 108, 110, 137, 112, 122, 126, 116, 114, 119, 117, 124, 119, 126, 117, 112, 108, 119, 130, 126, 116, 112, 128, 107, 113, 122, 107, 116, 112, 113, 116, 108, 126, 116, 117, 125, 116, 117, 118, 117, 120, 109, 124, 122, 111, 122, 109, 113, 102, 114, 111, 113, 127, 104, 117, 105, 117, 107, 107, 114, 113, 121, 115, 116, 117, 113, 113, 115, 123, 117, 112, 118, 119, 112, 110, 120, 125, 113, 117, 101, 129, 111, 115, 102, 114, 109, 110, 119, 134, 119, 110, 113, 111, 112, 126, 121, 96, 126, 108, 119, 113, 116, 96, 115, 112, 122, 127, 117, 117, 122, 114, 110, 110, 129, 114, 121, 117, 111, 117, 105, 107, 109, 118, 116, 107, 113, 113, 111, 109, 120, 131, 115, 115, 125, 103, 118, 113, 118, 110, 115, 126, 121, 108, 109, 114, 116, 110, 114, 122, 126, 120, 100, 119, 105, 118, 120, 110, 118, 114, 123, 111, 116, 107, 119, 112, 120, 107, 122, 114, 117, 121, 113, 103, 124, 106, 125, 118, 120, 112, 105, 113, 124, 109, 101, 125, 116, 100, 112, 126, 113, 121, 124, 112, 122, 115, 118, 107, 117, 119, 112, 116, 121, 114, 112, 139, 128, 110, 109, 112, 136, 109, 114, 106, 129, 108, 130, 109, 121, 113, 127, 125, 111, 118, 114, 117, 128, 127, 118, 115, 124, 123, 113, 126, 115, 116, 123, 120, 107, 107, 111, 114, 111, 123, 116, 115, 94, 109, 105, 118, 111, 108, 118, 119, 98, 104, 123, 99, 108, 103, 106, 109, 109, 122, 112, 114, 106, 117, 137, 97, 100, 124, 101, 120, 102, 116, 110, 109, 127, 103, 127, 121, 118, 116, 109, 108, 126, 115, 127, 120, 104, 118, 113, 129, 113, 102, 114, 111, 110, 116, 110, 111, 116, 109, 120, 109, 125, 127, 119, 109, 105, 120, 107, 119, 111, 114, 111, 106, 119, 107, 123, 113, 123, 115, 113, 117, 123, 112, 110, 108, 111, 127, 119, 115, 118, 117, 114, 124, 105, 117, 117, 136, 118, 117, 96, 100, 118, 106, 115, 115, 120, 120, 97, 118, 136, 119, 113, 113, 113, 110, 113, 110, 110, 109, 116, 108, 104, 135, 130, 116, 109, 107, 99, 113, 113, 127, 119, 125, 109, 107, 117, 115, 122, 116, 118, 125, 108, 117, 116, 110, 112, 125, 119, 103, 120, 115, 130, 130, 121, 112, 114, 123, 115, 150, 127, 111, 124, 116, 119, 109, 103, 102, 112, 118, 120, 104, 123, 105, 115, 110, 119, 104, 114, 102, 111, 112, 114, 122, 122, 127, 117, 116, 103, 121, 119, 140, 106, 119, 108, 87, 120, 116, 125, 113, 107, 134, 119, 108, 119, 102, 110, 106, 101, 122, 118, 110, 117, 109, 101, 113, 106, 119, 121, 123, 113, 119, 124, 119, 129, 114, 105, 123, 114, 111, 107, 113, 107, 125, 127, 104, 121, 111, 129, 121, 105, 113, 117, 109, 113, 125, 104, 128, 108, 112, 116, 122, 125, 114, 116, 99, 111, 121, 118, 118, 110, 120, 108, 127, 126, 115, 100, 114, 107, 115, 105, 99, 127, 115, 111, 104, 110, 126, 110, 118, 128, 114, 114, 120, 119, 109, 118, 119, 109, 117, 109, 111, 104, 110, 108, 106, 119, 117, 107, 127, 118, 112, 109, 118, 115, 113, 116, 116, 121, 128, 115, 121, 123, 112, 109, 98, 115, 117, 112, 109, 117, 120, 118, 120, 118, 115, 112, 117, 110, 119, 114, 102, 112, 125, 111, 115, 111, 109, 102, 113, 111, 107, 111, 111, 118, 118, 109, 111, 118, 96, 119, 106, 109, 111, 120, 121, 114, 120, 107, 97, 118, 106, 118, 113, 106, 113, 109, 118, 92, 120, 124, 123, 111, 118, 127, 127, 121, 117, 116, 112, 109, 110, 114, 108, 133, 112, 107, 117, 131, 115, 119, 130, 109, 116, 121, 104, 115, 129, 117, 116, 114, 123, 106, 106, 108, 135, 109, 115, 110, 89, 123, 123, 112, 105, 120, 115, 126, 101, 113, 114, 115, 123, 125, 101, 122, 123, 124, 123, 121, 106, 109, 116, 124, 106, 125, 101, 97, 129, 117, 119, 127, 105, 124, 95, 119, 123, 112, 115, 104, 112, 113, 122, 117, 113, 124, 114, 116, 105, 107, 114, 114, 105, 113, 116, 119, 124, 121, 125, 116, 107, 114, 130, 117, 119, 110, 112, 116, 107, 110, 114, 113, 111, 115, 118, 117, 111, 113, 104, 119, 118, 118, 107, 117, 109, 124, 109, 114, 113, 111, 122, 113, 117, 115, 106, 111, 109, 119, 109, 118, 122, 114, 107, 110, 128, 120, 117, 111, 108, 128, 96, 119, 108, 113, 111, 126, 121, 103, 121, 127, 125, 121, 107, 106, 109, 125, 120, 126, 115, 115, 115, 122, 125, 110, 116, 117, 127, 122, 130, 132, 117, 110, 107, 112, 117, 114, 109, 102, 125, 116, 115, 102, 110, 117, 119, 110, 107, 123, 119, 116, 119, 114, 97, 119, 120, 107, 120, 121, 129, 114, 113, 124, 126, 119, 106, 113, 118, 107, 118, 122, 108, 120, 109, 114, 114, 121, 118, 115, 109, 108, 115, 112, 121, 118, 107, 98, 119, 110, 138, 108, 125, 103, 128, 106, 115, 114, 115, 105, 117, 114, 98, 105, 112, 122, 108, 118, 121, 116, 115, 120, 122, 104, 109, 119, 109, 125, 120, 108, 111, 128, 114, 106, 96, 108, 118, 115, 113, 114, 133, 115, 92, 99, 111, 119, 118, 131, 109, 125, 102, 108, 128, 106, 121, 120, 117, 117, 115, 106, 105, 105, 117, 110, 117, 133, 121, 126, 120, 110, 118, 114, 122, 139, 119, 117, 115, 114, 117, 113, 112, 109, 107, 112, 122, 110, 111, 110, 111, 110, 110, 123, 113, 114, 113, 100, 115, 121, 104, 111, 123, 113, 111, 119, 116, 128, 125, 120, 117, 121, 113, 104, 116, 119, 109, 114, 105, 116, 107, 117, 107, 109, 105, 106, 118, 115, 131, 108, 108, 111, 123, 117, 127, 110, 112, 105, 119, 101, 105, 112, 113, 102, 107, 114, 97, 121, 115, 108, 117, 114, 110, 116, 127, 103, 115, 121, 104, 121, 125, 120, 109, 124, 104, 110, 115, 105, 108, 131, 123, 104, 106, 101, 110, 128, 116, 117, 129, 109, 134, 110, 120, 112, 115, 117, 128, 108, 116, 110, 109, 114, 120, 117, 117, 111, 111, 112, 98, 113, 111, 132, 114, 127, 95, 111, 111, 120, 114, 125, 104, 114, 104, 116, 111, 119, 110, 125, 122, 119, 113, 118, 120, 115, 117, 104, 123, 116, 137, 99, 113, 114, 104, 98, 85, 114, 114, 90, 109, 129, 109, 95, 121, 107, 109, 106, 120, 111, 125, 104, 110, 108, 114, 110, 126, 110, 136, 120, 121, 110, 120, 111, 116, 132, 127, 108, 114, 113, 109, 118, 117, 126, 119, 110, 109, 114, 96, 109, 115, 122, 116, 121, 123, 120, 119, 115, 103, 110, 114, 106, 101, 118, 127, 121, 94, 101, 116, 112, 102, 132, 124, 116, 139, 113, 116, 106, 111, 97, 119, 107, 113, 127, 108, 121, 99, 112, 113, 101, 83, 113, 129, 119, 116, 121, 118, 127, 96, 104, 108, 123, 121, 109, 119, 106, 115, 116, 121, 113, 111, 121, 129, 122, 112, 113, 106, 112, 118, 117, 113, 106, 124, 117, 114, 105, 119, 110, 132, 105, 121, 114, 106, 113, 124, 114, 106, 132, 115, 115, 121, 114, 124, 116, 94, 118, 116, 122, 102, 109, 105, 114, 109, 119, 122, 111, 124, 128, 125, 121, 116, 118, 116, 101, 111, 125, 119, 107, 122, 122, 95, 117, 117, 117, 107, 123, 114, 122, 118, 113, 122, 112, 105, 108, 121, 121, 109, 120, 100, 118, 106, 115, 117, 108, 119, 107, 107, 125, 119, 125, 112, 117, 123, 102, 125, 103, 108, 111, 104, 122, 112, 121, 124, 124, 124, 105, 116, 98, 125, 124, 121, 113, 95, 77, 123, 135, 118, 110, 106, 130, 117, 110, 109, 112, 105, 128, 107, 115, 98, 111, 117, 121, 108, 111, 111, 115, 102, 108, 102, 102, 118, 110, 108, 103, 125, 115, 115, 116, 128, 108, 105, 122, 105, 117, 117, 104, 108, 115, 127, 111, 110, 116, 100, 110, 116, 100, 111, 119, 135, 136, 117, 116, 114, 117, 104, 112, 120, 120, 118, 123, 116, 125, 116, 117, 116, 115, 104, 110, 126, 124, 107, 120, 116, 113, 118, 112, 119, 115, 122, 117, 104, 104, 110, 120, 116, 116, 136, 107, 119, 117, 117, 122, 119, 110, 109, 120, 90, 123, 112, 112, 130, 124, 118, 114, 118, 132, 107, 113, 108, 111, 115, 125, 114, 120, 118, 119, 111, 116, 118, 104, 112, 114, 126, 114, 114, 117, 120, 110, 131, 101, 112, 117, 105, 105, 118, 114, 116, 116, 123, 111, 110, 107, 115, 113, 108, 115, 110, 119, 112, 123, 123, 113, 112, 115, 104, 101, 109, 115, 113, 88, 99, 117, 121, 127, 127, 113, 113, 118, 108, 123, 118, 109, 113, 113, 124, 111, 117, 121, 140, 121, 113, 131, 111, 112, 120, 120, 101, 113, 124, 116, 118, 139, 102, 122, 119, 105, 106, 119, 101, 111, 120, 107, 113, 127, 113, 115, 105, 113, 112, 132, 104, 111, 120, 121, 121, 124, 109, 117, 109, 126, 119, 119, 101, 102, 108, 105, 111, 119, 115, 105, 108, 119, 114, 117, 112, 99, 110, 128, 103, 130, 123, 114, 118, 120, 110, 108, 114, 115, 121, 109, 114, 116, 112, 115, 108, 119, 117, 118, 106, 114, 124, 107, 121, 109, 109, 111, 111, 120, 125, 125, 129, 121, 119, 121, 126, 113, 116, 110, 110, 128, 135, 119, 112, 107, 112, 99, 102, 104, 123, 107, 111, 115, 113, 114, 118, 116, 115, 112, 121, 110, 105, 115, 110, 108, 108, 101, 125, 116, 119, 115, 123, 127, 123, 126, 115, 124, 113, 116, 115, 116, 122, 119, 104, 106, 109, 110, 109, 112, 103, 116, 115, 112, 120, 114, 122, 108, 106, 109, 107, 112, 115, 110, 116, 108, 107, 118, 107, 101, 122, 116, 117, 114, 108, 129, 117, 127, 124, 101, 116, 106, 113, 96, 119, 121, 117, 128, 121, 122, 119, 129, 110, 108, 118, 116, 104, 111, 112, 110, 119, 115, 130, 118, 124, 115, 126, 106, 115, 118, 106, 109, 107, 110, 112, 116, 109, 106, 120, 107, 105, 113, 111, 111, 109, 115, 122, 119, 114, 115, 114, 108, 121, 125, 111, 121, 97, 102, 110, 123, 108, 113, 125, 115, 125, 113, 109, 115, 120, 108, 116, 119, 126, 124, 113, 118, 105, 119, 114, 107, 124, 121, 108, 110, 115, 117, 111, 118, 130, 111, 125, 103, 116, 114, 116, 114, 109, 115, 110, 130, 109, 114, 115, 113, 108, 108, 111, 116, 110, 120, 116, 120, 116, 118, 128, 118, 120, 115, 110, 122, 106, 120, 120, 122, 122, 106, 112, 115, 126, 113, 103, 119, 106, 115, 129, 98, 130, 104, 112, 105, 111, 115, 117, 107, 111, 106, 110, 119, 120, 128, 116, 125, 110, 114, 128, 111, 128, 125, 103, 107, 104, 112, 115, 118, 120, 127, 112, 119, 111, 127, 124, 121, 122, 117, 104, 117, 109, 122, 119, 106, 123, 118, 129, 106, 124, 119, 104, 134, 113, 121, 116, 89, 114, 103, 115, 120, 117, 107, 129, 113, 101, 118, 108, 107, 113, 110, 116, 123, 108, 116, 114, 115, 106, 126, 116, 115, 120, 115, 104, 98, 114, 106, 117, 118, 112, 109, 130, 106, 99, 111, 98, 121, 113, 115, 112, 103, 112, 107, 105, 115, 118, 118, 122, 114, 111, 116, 125, 122, 110, 114, 131, 110, 119, 110, 108, 106, 129, 109, 115, 110, 120, 130, 102, 126, 106, 105, 129, 104, 113, 106, 116, 125, 131, 129, 120, 118, 107, 111, 118, 118, 122, 118, 108, 111, 117, 101, 106, 115, 121, 112, 110, 112, 124, 110, 111, 108, 117, 114, 112, 128, 105, 101, 126, 114, 107, 112, 122, 114, 102, 114, 116, 123, 110, 116, 112, 119, 119, 127, 112, 106, 101, 103, 113, 104, 122, 98, 110, 110, 103, 110, 126, 111, 128, 107, 108, 115, 121, 122, 101, 106, 118, 124, 106, 111, 105, 116, 115, 124, 113, 115, 101, 113, 140, 103, 134, 106, 108, 118, 106, 114, 114, 111, 123, 117, 119, 114, 126, 115, 109, 135, 110, 131, 108, 129, 113, 114, 124, 110, 105, 106, 109, 122, 113, 108, 110, 122, 104, 109, 101, 124, 115, 115, 150, 132, 116, 110, 113, 120, 114, 121, 111, 115, 108, 110, 126, 114, 108, 109, 118, 121, 139, 115, 111, 113, 114, 99, 136, 117, 112, 124, 114, 110, 122, 112, 116, 116, 113, 116, 104, 115, 107, 118, 104, 114, 121, 120, 119, 110, 106, 110, 116, 113, 115, 108, 123, 115, 111, 110, 106, 112, 123, 117, 115, 125, 105, 115, 108, 117, 108, 105, 113, 110, 125, 113, 113, 123, 119, 115, 108, 117, 122, 116, 129, 128, 110, 117, 110, 119, 107, 112, 96, 114, 107, 116, 113, 87, 112, 114, 130, 111, 123, 116, 119, 108, 115, 112, 114, 106, 118, 112, 115, 113, 112, 123, 110, 108, 115, 124, 117, 117, 118, 124, 101, 118, 108, 108, 112, 119, 121, 108, 122, 115, 118, 118, 92, 121, 122, 112, 113, 115, 116, 132, 113, 119, 122, 127, 110, 115, 101, 126, 124, 112, 123, 116, 109, 112, 135, 115, 116, 111, 119, 114, 89, 119, 113, 110, 116, 110, 110, 137, 112, 110, 115, 108, 112, 108, 112, 105, 122, 101, 115, 111, 120, 115, 105, 119, 118, 106, 116, 139, 122, 121, 120, 94, 118, 111, 97, 127, 125, 115, 114, 111, 118, 122, 107, 120, 90, 119, 114, 123, 106, 109, 114, 120, 116, 111, 130, 113, 124, 123, 106, 113, 152, 120, 115, 118, 111, 118, 121, 106, 114, 122, 106, 117, 122, 113, 116, 128, 109, 126, 116, 109, 126, 114, 111, 117, 103, 125, 114, 109, 127, 118, 129, 114, 114, 116, 122, 114, 102, 108, 113, 109, 126, 106, 100, 110, 120, 116, 121, 114, 116, 109, 115, 114, 94, 111, 102, 118, 114, 115, 114, 111, 109, 117, 113, 126, 88, 111, 108, 124, 113, 102, 118, 106, 105, 112, 111, 120, 118, 110, 120, 125, 123, 108, 115, 116, 103, 120, 122, 115, 109, 121, 99, 115, 109, 111, 115, 102, 117, 113, 114, 126, 112, 110, 105, 118, 104, 112, 116, 119, 112, 113, 113, 122, 118, 110, 116, 121, 120, 112, 112, 104, 109, 118, 105, 108, 111, 113, 110, 118, 119, 119, 116, 103, 103, 109, 114, 115, 124, 111, 137, 117, 112, 120, 113, 108, 122, 110, 111, 114, 115, 115, 116, 109, 109, 116, 115, 113, 111, 116, 115, 127, 115, 108, 121, 107, 117, 123, 117, 109, 118, 114, 113, 123, 109, 115, 108, 118, 112, 117, 115, 116, 119, 111, 120, 114, 117, 112, 119, 118, 109, 119, 111, 115, 105, 117, 105, 118, 121, 112, 109, 129, 114, 139, 111, 108, 121, 116, 107, 113, 109, 110, 108, 113, 115, 118, 114, 117, 127, 109, 115, 118, 99, 141, 103, 108, 123, 108, 119, 115, 119, 116, 119, 117, 107, 107, 113, 113, 111, 101, 115, 118, 112, 128, 121, 109, 114, 109, 115, 121, 111, 116, 116, 119, 119, 95, 122, 101, 114, 114, 111, 119, 118, 125, 132, 115, 123, 108, 122, 115, 117, 114, 104, 126, 104, 115, 118, 112, 114, 112, 116, 111, 119, 102, 113, 114, 112, 123, 111, 114, 120, 122, 111, 127, 129, 122, 111, 113, 121, 111, 108, 111, 125, 107, 106, 111, 112, 118, 115, 118, 117, 127, 112, 113, 118, 117, 120, 111, 114, 110, 117, 112, 115, 124, 126, 115, 114, 124, 107, 111, 111, 123, 110, 119, 123, 125, 112, 114, 108, 107, 122, 121, 100, 109, 111, 117, 113, 93, 113, 114, 105, 114, 111, 112, 111, 108, 113, 117, 113, 123, 112, 115, 113, 120, 119, 124, 118, 112, 119, 122, 106, 102, 116, 124, 122, 120, 113, 123, 112, 113, 109, 116, 127, 117, 119, 108, 114, 117, 112, 120, 115, 108, 125, 122, 110, 120, 125, 109, 121, 125, 126, 114, 110, 122, 114, 119, 108, 118, 115, 113, 118, 119, 131, 114, 119, 100, 110, 114, 116, 109, 115, 98, 106, 117, 95, 105, 107, 72, 121, 113, 120, 119, 116, 112, 120, 108, 107, 116, 113, 110, 123, 114, 109, 106, 108, 119, 114, 106, 114, 109, 119, 118, 121, 121, 121, 103, 115, 117, 118, 105, 117, 118, 121, 118, 120, 125, 113, 125, 106, 117, 106, 107, 108, 115, 114, 117, 104, 116, 118, 115, 113, 115, 117, 126, 114, 117, 103, 114, 113, 113, 110, 126, 113, 111, 126, 117, 111, 113, 115, 120, 121, 119, 103, 128, 117, 108, 117, 113, 119, 111, 116, 114, 107, 121, 118, 120, 110, 104, 118, 112, 112, 105, 125, 110, 114, 104, 92, 111, 118, 113, 120, 116, 114, 119, 111, 121, 117, 119, 102, 107, 122, 115, 116, 114, 118, 115, 114, 120, 113, 122, 114, 119, 113, 118, 115, 106, 109, 117, 115, 138, 110, 115, 115, 123, 114, 124, 119, 120, 121, 104, 120, 107, 109, 105, 119, 109, 118, 111, 121, 117, 114, 117, 105, 112, 118, 108, 117, 115, 115, 115, 116, 112, 136, 117, 123, 113, 112, 116, 119, 111, 98, 111, 118, 109, 113, 107, 106, 109, 114, 119, 121, 101, 111, 118, 129, 115, 110, 115, 103, 116, 109, 121, 96, 115, 115, 115, 125, 107, 119, 119, 122, 119, 117, 108, 118, 113, 117, 112, 108, 104, 105, 117, 114, 120, 130, 114, 112, 117, 119, 110, 107, 118, 118, 111, 122, 109, 109, 123, 117, 120, 115, 117, 117, 109, 132, 118, 116, 112, 126, 116, 118, 120, 117, 118, 122, 124, 103, 108, 115, 116, 117, 118, 112, 118, 117, 113, 117, 108, 116, 114, 119, 111, 118, 115, 116, 118, 119, 120, 124, 118, 110, 123, 123, 117, 114, 111, 115, 115, 109, 133, 114, 116, 121, 112, 123, 113, 116, 110, 113, 118, 112, 110, 121, 114, 121, 116, 111, 118, 121, 122, 109, 108, 115, 116, 112, 118, 116, 108, 116, 119, 115, 110, 114, 109, 118, 118, 118, 116, 116, 121, 119, 128, 118, 111, 119, 120, 110, 121, 112, 120, 114, 119, 112, 111, 112, 117, 110, 117, 117, 121, 113, 119, 116, 116, 105, 118, 105, 128, 123, 117, 114, 113, 100, 115, 119, 113, 121, 108, 118, 89, 101, 112, 112, 117, 111, 111, 113, 111, 107, 114, 116, 103, 104, 119, 117, 124, 114, 125, 112, 113, 111, 89, 119, 109, 106, 114, 117, 111, 119, 113, 125, 108, 113, 104, 117, 107, 114, 124, 126, 109, 123, 115, 98, 116, 118, 113, 108, 121, 122, 103, 115, 112, 109, 115, 114, 128, 116, 111, 107, 119, 116, 107, 120, 108, 110, 109, 114, 129, 110, 117, 118, 112, 114, 111, 117, 109, 122, 104, 114, 122, 125, 108, 107, 116, 121, 117, 126, 105, 113, 126, 107, 111, 125, 118, 117, 94, 116, 96, 118, 100, 112, 113, 99, 122, 112, 119, 116, 111, 108, 113, 124, 119, 144, 112, 119, 121, 117, 100, 119, 121, 107, 109, 118, 126, 105, 110, 124, 112, 95, 130, 114, 116, 103, 116, 114, 106, 119, 113, 119, 114, 124, 108, 125, 126, 133, 104, 130, 113, 113, 118, 114, 113, 103, 119, 113, 105, 116, 111, 107, 114, 113, 123, 117, 120, 114, 127, 112, 113, 110, 115, 112, 116, 119, 113, 108, 110, 110, 119, 107, 112, 108, 118, 102, 112, 108, 128, 119, 119, 108, 110, 110, 111, 102, 107, 116, 119, 113, 114, 109, 114, 128, 83, 125, 118, 117, 120, 109, 103, 108, 122, 120, 122, 117, 114, 108, 111, 118, 114, 111, 123, 106, 116, 118, 123, 106, 105, 116, 121, 94, 114, 115, 111, 125, 113, 112, 116, 113, 110, 104, 119, 129, 124, 119, 100, 110, 111, 119, 123, 119, 115, 113, 114, 122, 108, 119, 132, 123, 125, 118, 120, 115, 120, 113, 112, 115, 114, 114, 113, 114, 114, 116, 119, 119, 119, 120, 104, 102, 119, 105, 120, 108, 119, 104, 116, 113, 118, 111, 106, 122, 120, 120, 118, 128, 119, 111, 109, 117, 111, 114, 116, 120, 117, 114, 116, 110, 114, 105, 110, 131, 120, 116, 117, 108, 125, 116, 109, 123, 109, 129, 119, 127, 118, 113, 122, 128, 119, 127, 105, 100, 122, 120, 110, 106, 111, 122, 119, 99, 113, 100, 106, 108, 113, 116, 121, 118, 113, 109, 112, 113, 113, 119, 116, 123, 112, 116, 104, 119, 105, 105, 112, 106, 105, 121, 127, 104, 116, 101, 115, 102, 127, 126, 110, 122, 113, 123, 119, 112, 115, 134, 111, 124, 103, 106, 118, 116, 119, 110, 109, 113, 109, 97, 104, 97, 120, 121, 108, 130, 110, 121, 106, 108, 122, 112, 106, 110, 107, 115, 120, 119, 108, 105, 118, 122, 116, 117, 124, 120, 115, 120, 108, 111, 111, 124, 111, 112, 100, 108, 107, 104, 106, 116, 101, 105, 127, 110, 118, 110, 105, 102, 110, 105, 128, 116, 113, 116, 110, 115, 116, 111, 123, 110, 107, 113, 108, 105, 95, 103, 122, 105, 120, 103, 109, 128, 113, 105, 122, 129, 130, 116, 111, 108, 116, 111, 114, 115, 114, 113, 107, 114, 111, 107, 106, 126, 116, 114, 122, 119, 120, 109, 100, 112, 126, 116, 106, 118, 141, 112, 118, 112, 115, 104, 119, 123, 110, 103, 109, 112, 111, 104, 134, 115, 104, 121, 117, 115, 102, 137, 119, 106, 118, 124, 116, 108, 110, 112, 133, 108, 105, 114, 114, 114, 109, 116, 110, 100, 116, 116, 116, 120, 112, 113, 93, 97, 121, 112, 63, 100, 119, 113, 111, 128, 109, 112, 108, 127, 111, 125, 120, 115, 109, 113, 121, 116, 136, 114, 114, 116, 112, 121, 126, 133, 115, 122, 109, 109, 117, 114, 108, 114, 113, 109, 115, 109, 116, 122, 102, 113, 109, 118, 107, 116, 114, 123, 102, 119, 115, 108, 101, 120, 110, 121, 111, 116, 101, 121, 117, 123, 118, 121, 115, 116, 96, 115, 106, 128, 112, 98, 111, 113, 118, 121, 120, 110, 107, 121, 119, 122, 120, 119, 112, 126, 112, 117, 127, 133, 113, 106, 127, 122, 111, 116, 119, 113, 105, 124, 102, 111, 118, 120, 117, 116, 112, 111, 122, 127, 110, 130, 128, 104, 114, 111, 112, 112, 111, 109, 120, 116, 108, 113, 119, 112, 119, 115, 115, 121, 107, 128, 117, 102, 109, 115, 129, 113, 136, 126, 129, 98, 117, 114, 118, 120, 115, 124, 115, 122, 110, 119, 122, 115, 119, 102, 119, 92, 119, 118, 129, 105, 113, 119, 128, 121, 127, 121, 114, 121, 116, 108, 110, 124, 107, 115, 113, 106, 104, 106, 102, 111, 104, 113, 111, 117, 113, 112, 122, 111, 108, 109, 130, 104, 117, 129, 112, 118, 110, 131, 128, 110, 110, 110, 113, 125, 119, 105, 108, 121, 95, 119, 106, 102, 111, 119, 122, 112, 116, 115, 118, 121, 119, 130, 123, 117, 102, 108, 119, 116, 116, 111, 107, 118, 115, 117, 109, 113, 110, 113, 106, 128, 111, 110, 112, 108, 111, 127, 129, 112, 110, 110, 115, 113, 124, 110, 103, 100, 122, 114, 119, 113, 116, 118, 106, 109, 108, 117, 114, 114, 86, 92, 116, 107, 116, 118, 105, 140, 108, 128, 118, 124, 104, 114, 114, 99, 106, 120, 108, 105, 108, 117, 107, 119, 124, 116, 112, 108, 118, 122, 117, 87, 121, 116, 108, 115, 112, 132, 112, 113, 117, 109, 112, 118, 118, 110, 121, 118, 111, 121, 115, 137, 108, 116, 119, 111, 116, 112, 111, 109, 112, 102, 110, 132, 115, 120, 111, 105, 111, 106, 114, 118, 114, 110, 110, 122, 117, 76, 115, 126, 115, 123, 108, 115, 126, 109, 101, 107, 109, 112, 115, 115, 121, 114, 107, 113, 103, 110, 121, 119, 132, 113, 134, 97, 121, 109, 90, 104, 106, 109, 108, 115, 108, 123, 122, 127, 117, 114, 112, 110, 112, 119, 116, 113, 105, 106, 119, 113, 115, 112, 112, 120, 104, 114, 115, 111, 97, 118, 117, 111, 110, 116, 96, 130, 106, 124, 130, 120, 105, 116, 118, 111, 111, 110, 121, 103, 113, 109, 118, 112, 103, 114, 131, 102, 121, 124, 106, 118, 111, 123, 123, 119, 106, 86, 121, 117, 119, 115, 108, 107, 107, 110, 113, 99, 118, 110, 129, 112, 105, 110, 111, 113, 111, 109, 117, 116, 95, 109, 112, 118, 131, 109, 110, 108, 117, 111, 93, 117, 116, 108, 103, 94, 121, 136, 119, 126, 115, 118, 111, 110, 120, 123, 102, 129, 110, 93, 118, 114, 109, 102, 122, 123, 116, 112, 138, 129, 120, 112, 110, 135, 129, 107, 107, 107, 127, 126, 121, 119, 102, 119, 111, 105, 115, 94, 123, 129, 114, 130, 119, 131, 102, 110, 127, 115, 115, 106, 115, 118, 104, 118, 96, 113, 108, 122, 96, 116, 95, 107, 118, 134, 114, 121, 114, 103, 128, 120, 123, 104, 106, 116, 93, 116, 100, 115, 106, 121, 115, 101, 118, 128, 102, 133, 105, 109, 112, 113, 111, 114, 104, 112, 111, 116, 103, 82, 122, 110, 124, 106, 108, 104, 109, 122, 113, 115, 116, 119, 118, 103, 105, 121, 119, 117, 137, 112, 122, 121, 115, 98, 102, 105, 109, 135, 116, 122, 118, 127, 111, 116, 120, 120, 127, 133, 112, 121, 130, 106, 118, 109, 102, 116, 124, 115, 116, 116, 124, 124, 123, 103, 127, 116, 91, 114, 122, 126, 98, 112, 112, 115, 103, 116, 114, 113, 92, 109, 113, 110, 124, 114, 116, 113, 116, 98, 149, 120, 106, 120, 117, 114, 102, 120, 127, 106, 115, 114, 115, 104, 105, 111, 120, 110, 128, 105, 128, 95, 113, 119, 124, 104, 102, 103, 112, 116, 115, 106, 94, 123, 119, 122, 117, 110, 105, 108, 130, 91, 125, 107, 112, 112, 119, 113, 120, 130, 123, 127, 113, 107, 113, 121, 119, 119, 111, 123, 120, 123, 129, 99, 123, 127, 107, 121, 115, 122, 120, 117, 118, 117, 131, 109, 112, 100, 97, 108, 122, 116, 112, 105, 122, 128, 117, 108, 113, 115, 122, 119, 105, 109, 101, 119, 98, 111, 114, 110, 119, 97, 110, 106, 112, 118, 120, 114, 134, 113, 114, 98, 111, 117, 126, 95, 112, 138, 130, 138, 95, 114, 109, 112, 102, 103, 98, 120, 122, 116, 117, 122, 110, 122, 113, 107, 108, 112, 104, 100, 108, 103, 117, 109, 95, 106, 107, 115, 115, 133, 93, 103, 125, 107, 113, 128, 108, 117, 126, 119, 123, 95, 121, 104, 112, 124, 109, 145, 120, 118, 116, 123, 113, 109, 122, 113, 108, 122, 110, 112, 110, 113, 114, 122, 114, 118, 92, 113, 97, 119, 107, 124, 125, 117, 112, 123, 116, 100, 105, 105, 107, 115, 111, 132, 122, 128, 113, 121, 111, 104, 130, 117, 129, 111, 114, 121, 106, 96, 106, 104, 116, 91, 125, 109, 117, 121, 97, 103, 101, 117, 124, 127, 101, 99, 114, 112, 112, 109, 128, 103, 115, 122, 123, 90, 128, 108, 113, 99, 95, 129, 114, 114, 107, 126, 104, 117, 103, 114, 103, 82, 121, 113, 111, 111, 121, 114, 117, 102, 120, 135, 119, 117, 123, 126, 117, 103, 121, 116, 125, 106, 124, 97, 127, 131, 110, 104, 106, 105, 114, 116, 117, 116, 112, 127, 126, 109, 114, 111, 128, 125, 109, 119, 119, 114, 113, 109, 119, 94, 119, 110, 104, 118, 103, 108, 122, 99, 93, 126, 112, 120, 123, 101, 123, 105, 112, 126, 104, 114, 102, 108, 107, 124, 102, 108, 106, 126, 108, 124, 117, 110, 123, 117, 116, 122, 112, 118, 98, 113, 110, 120, 121, 120, 108, 110, 115, 109, 118, 118, 124, 108, 126, 105, 109, 97, 129, 114, 116, 119, 121, 118, 114, 121, 101, 123, 128, 126, 128, 103, 110, 108, 148, 95, 134, 108, 123, 120, 118, 119, 136, 113, 116, 120, 99, 114, 119, 117, 104, 119, 119, 112, 111, 109, 115, 107, 106, 127, 112, 121, 111, 111, 124, 117, 130, 110, 99, 132, 121, 126, 111, 115, 113, 111, 110, 108, 118, 125, 124, 122, 110, 113, 120, 117, 125, 124, 133, 108, 120, 117, 110, 114, 124, 108, 120, 122, 118, 132, 118, 102, 114, 118, 111, 117, 135, 106, 134, 105, 114, 117, 110, 118, 114, 119, 102, 115, 115, 128, 117, 116, 107, 132, 118, 107, 109, 118, 113, 103, 116, 113, 110, 120, 111, 127, 122, 109, 115, 126, 103, 102, 116, 117, 133, 131, 119, 111, 120, 94, 127, 112, 133, 112, 121, 127, 122, 117, 110, 114, 111, 125, 108, 124, 116, 113, 125, 123, 106, 117, 120, 121, 125, 123, 113, 117, 114, 106, 118, 110, 101, 112, 116, 110, 123, 118, 110, 109, 105, 124, 117, 117, 125, 120, 103, 111, 122, 122, 107, 118, 116, 108, 110, 113, 101, 114, 146, 105, 126, 126, 97, 116, 120, 119, 115, 106, 129, 120, 108, 117, 124, 110, 118, 96, 112, 107, 120, 121, 103, 111, 104, 115, 115, 121, 113, 118, 107, 104, 97, 101, 117, 97, 116, 125, 113, 108, 108, 107, 106, 101, 113, 119, 120, 119, 121, 122, 114, 122, 127, 88, 130, 110, 131, 146, 123, 124, 104, 105, 125, 114, 117, 126, 113, 121, 115, 111, 112, 107, 125, 113, 109, 116, 114, 111, 129, 112, 93, 101, 117, 126, 112, 124, 119, 129, 124, 116, 121, 123, 130, 122, 120, 114, 99, 118, 92, 117, 125, 100, 111, 109, 115, 116, 130, 114, 123, 111, 108, 127, 137, 105, 112, 128, 111, 109, 118, 110, 114, 103, 130, 118, 129, 110, 96, 102, 118, 109, 117, 111, 103, 111, 121, 103, 100, 127, 109, 119, 117, 111, 131, 113, 113, 109, 109, 122, 113, 114, 98, 120, 121, 109, 113, 110, 115, 111, 122, 106, 115, 114, 117, 144, 119, 110, 105, 117, 115, 126, 107, 119, 107, 120, 119, 134, 117, 121, 108, 121, 110, 125, 111, 114, 114, 119, 125, 113, 126, 106, 128, 110, 123, 130, 115, 106, 107, 114, 119, 118, 105, 117, 116, 98, 105, 121, 109, 121, 111, 113, 111, 120, 121, 118, 113, 112, 112, 121, 122, 104, 124, 128, 122, 134, 98, 121, 119, 118, 107, 108, 116, 113, 112, 114, 102, 113, 114, 116, 127, 109, 106, 124, 114, 102, 134, 112, 109, 112, 114, 115, 108, 120, 105, 118, 111, 118, 121, 120, 117, 118, 103, 107, 114, 107, 126, 108, 118, 94, 95, 119, 102, 115, 109, 111, 106, 115, 120, 128, 120, 124, 117, 117, 123, 118, 138, 120, 111, 121, 100, 117, 112, 120, 118, 114, 122, 119, 116, 109, 120, 111, 114, 113, 103, 114, 123, 96, 121, 118, 111, 121, 128, 111, 108, 111, 117, 105, 122, 100, 122, 121, 121, 117, 106, 124, 114, 101, 119, 113, 113, 109, 121, 114, 120, 118, 109, 114, 103, 105, 110, 110, 114, 110, 119, 119, 114, 100, 119, 114, 109, 117, 113, 116, 133, 113, 116, 117, 125, 121, 109, 124, 110, 117, 118, 113, 115, 112, 125, 122, 102, 118, 114, 122, 126, 116, 116, 118, 107, 123, 112, 116, 108, 116, 118, 120, 122, 113, 108, 129, 123, 116, 120, 120, 121, 114, 117, 107, 125, 118, 90, 113, 118, 116, 120, 98, 107, 143, 101, 110, 109, 104, 110, 111, 102, 106, 103, 111, 109, 116, 111, 132, 119, 113, 118, 119, 113, 102, 112, 111, 110, 126, 115, 124, 110, 106, 122, 117, 114, 127, 108, 117, 108, 105, 105, 116, 122, 110, 123, 116, 114, 122, 125, 91, 120, 106, 118, 111, 106, 119, 118, 109, 112, 120, 120, 112, 120, 114, 116, 111, 106, 123, 115, 127, 107, 108, 119, 120, 122, 113, 117, 121, 114, 107, 111, 106, 101, 109, 108, 129, 124, 114, 119, 114, 109, 125, 120, 114, 119, 114, 121, 99, 118, 110, 115, 117, 100, 124, 108, 108, 121, 102, 111, 121, 102, 120, 103, 120, 122, 113, 113, 110, 111, 118, 121, 123, 118, 112, 117, 119, 110, 129, 110, 118, 116, 108, 116, 115, 123, 119, 123, 130, 110, 114, 128, 110, 117, 118, 106, 108, 107, 105, 101, 123, 107, 123, 114, 117, 103, 110, 111, 123, 111, 131, 115, 118, 116, 110, 116, 111, 106, 107, 113, 114, 124, 117, 104, 119, 107, 123, 133, 105, 109, 122, 118, 124, 122, 99, 130, 115, 120, 125, 109, 125, 111, 106, 114, 115, 122, 120, 98, 121, 116, 98, 115, 114, 107, 114, 110, 113, 114, 128, 108, 111, 109, 125, 112, 127, 116, 113, 122, 104, 113, 113, 117, 119, 103, 112, 118, 108, 101, 96, 116, 105, 110, 116, 128, 116, 136, 112, 113, 124, 110, 111, 116, 111, 119, 117, 120, 132, 109, 104, 120, 108, 124, 118, 102, 116, 113, 112, 101, 113, 110, 126, 122, 109, 114, 117, 108, 109, 111, 123, 112, 121, 127, 101, 117, 112, 125, 112, 110, 114, 106, 98, 123, 104, 104, 106, 110, 132, 108, 126, 117, 133, 115, 127, 104, 114, 132, 121, 109, 114, 103, 141, 119, 120, 133, 114, 113, 109, 118, 116, 119, 116, 128, 132, 111, 104, 109, 110, 121, 121, 113, 114, 113, 118, 126, 109, 124, 120, 123, 117, 121, 122, 138, 96, 115, 136, 121, 108, 118, 118, 112, 116, 112, 109, 117, 114, 111, 118, 127, 116, 103, 114, 104, 110, 108, 111, 118, 109, 121, 120, 123, 114, 124, 101, 114, 115, 115, 124, 109, 105, 107, 118, 104, 109, 119, 110, 111, 116, 117, 130, 110, 127, 101, 113, 119, 125, 140, 113, 118, 114, 129, 109, 131, 108, 103, 116, 112, 110, 115, 115, 110, 110, 126, 117, 115, 111, 119, 108, 116, 122, 111, 109, 124, 120, 124, 121, 122, 112, 101, 112, 118, 119, 113, 114, 116, 111, 113, 116, 120, 125, 111, 121, 118, 104, 114, 114, 120, 115, 125, 116, 117, 125, 106, 115, 114, 120, 128, 123, 126, 123, 121, 111, 118, 112, 132, 118, 120, 113, 121, 114, 118, 114, 100, 117, 118, 113, 100, 119, 112, 117, 111, 114, 124, 117, 122, 113, 124, 114, 113, 117, 107, 117, 94, 115, 118, 118, 116, 112, 116, 120, 113, 112, 121, 116, 119, 116, 120, 115, 124, 118, 105, 109, 119, 110, 111, 115, 110, 125, 107, 124, 110, 109, 114, 121, 114, 119, 117, 120, 110, 118, 117, 117, 113, 117, 120, 111, 118, 127, 108, 114, 112, 113, 121, 118, 111, 114, 115, 117, 123, 112, 115, 117, 110, 106, 118, 113, 117, 107, 127, 115, 118, 124, 110, 112, 116, 114, 107, 108, 120, 116, 102, 112, 113, 117, 115, 119, 117, 117, 115, 115, 115, 121, 115, 118, 115, 127, 123, 119, 122, 113, 119, 123, 122, 101, 119, 112, 117, 113, 113, 116, 124, 117, 123, 116, 124, 119, 110, 105, 115, 123, 125, 104, 110, 124, 121, 114, 142, 118, 107, 121, 117, 118, 119, 111, 112, 107, 113, 115, 108, 118, 109, 110, 118, 111, 122, 112, 124, 115, 119, 122, 90, 111, 92, 117, 117, 117, 112, 113, 125, 120, 132, 124, 115, 120, 114, 109, 111, 119, 111, 138, 112, 114, 110, 126, 116, 129, 118, 114, 133, 113, 113, 114, 110, 107, 116, 108, 116, 123, 107, 112, 119, 111, 112, 116, 121, 101, 115, 115, 110, 114, 113, 112, 118, 109, 102, 123, 117, 124, 123, 116, 117, 114, 106, 115, 106, 129, 117, 121, 115, 112, 122, 113, 111, 112, 111, 113, 110, 111, 108, 113, 111, 118, 117, 128, 115, 125, 121, 122, 112, 117, 118, 118, 114, 110, 108, 104, 116, 113, 115, 116, 110, 119, 115, 111, 109, 117, 119, 119, 114, 119, 126, 116, 110, 124, 113, 111, 111, 109, 111, 128, 110, 120, 114, 111, 108, 122, 107, 119, 117, 102, 121, 119, 117, 119, 108, 120, 116, 117, 118, 129, 115, 133, 117, 99, 121, 124, 119, 113, 105, 105, 120, 117, 112, 119, 120, 113, 109, 123, 139, 103, 115, 120, 105, 113, 107, 121, 115, 109, 121, 118, 110, 110, 119, 111, 106, 123, 115, 116, 120, 114, 111, 108, 114, 108, 113, 124, 127, 124, 124, 121, 114, 118, 116, 125, 114, 115, 111, 121, 121, 124, 117, 109, 119, 112, 119, 119, 113, 113, 113, 123, 111, 120, 108, 109, 112, 118, 116, 113, 114, 123, 117, 122, 122, 118, 117, 103, 117, 111, 121, 113, 117, 121, 98, 113, 121, 121, 117, 112, 117, 130, 115, 115, 112, 106, 140, 121, 115, 111, 126, 111, 120, 113, 117, 102, 121, 121, 118, 116, 128, 111, 102, 115, 118, 119, 119, 115, 120, 118, 113, 108, 100, 115, 119, 103, 124, 123, 110, 123, 111, 118, 117, 115, 115, 106, 118, 116, 111, 104, 117, 115, 110, 119, 120, 116, 101, 118, 131, 107, 125, 107, 107, 109, 101, 117, 124, 120, 114, 128, 122, 103, 114, 132, 127, 114, 127, 133, 110, 125, 116, 112, 112, 107, 120, 117, 114, 117, 110, 122, 106, 116, 116, 112, 112, 109, 106, 123, 104, 111, 121, 106, 109, 121, 113, 121, 119, 123, 118, 120, 120, 121, 110, 121, 121, 136, 118, 122, 120, 144, 105, 111, 121, 121, 112, 125, 110, 105, 91, 125, 114, 106, 98, 125, 100, 111, 123, 116, 105, 122, 124, 101, 114, 118, 123, 110, 112, 106, 126, 129, 106, 120, 131, 117, 123, 123, 121, 117, 118, 112, 118, 115, 111, 112, 114, 119, 125, 123, 118, 117, 121, 121, 121, 107, 123, 123, 114, 114, 120, 126, 112, 119, 117, 113, 125, 105, 110, 114, 116, 112, 115, 115, 114, 145, 118, 118, 111, 116, 109, 109, 123, 115, 115, 113, 111, 114, 108, 107, 108, 120, 140, 116, 121, 111, 125, 123, 106, 111, 123, 133, 125, 112, 109, 125, 102, 114, 120, 117, 101, 109, 122, 116, 114, 119, 111, 114, 124, 108, 117, 113, 121, 119, 120, 128, 115, 105, 123, 118, 97, 125, 127, 123, 129, 123, 106, 116, 113, 110, 119, 120, 113, 124, 105, 118, 120, 113, 121, 127, 125, 107, 115, 118, 112, 120, 113, 117, 115, 120, 110, 112, 119, 113, 118, 120, 115, 112, 119, 111, 118, 120, 107, 126, 113, 113, 96, 118, 105, 112, 115, 114, 132, 122, 119, 101, 95, 118, 112, 131, 111, 118, 116, 117, 114, 116, 118, 106, 109, 109, 104, 118, 117, 109, 105, 108, 103, 113, 108, 110, 119, 123, 113, 110, 103, 122, 123, 99, 129, 121, 125, 111, 113, 135, 105, 117, 119, 110, 107, 113, 123, 115, 103, 110, 120, 127, 110, 113, 118, 113, 118, 123, 120, 115, 111, 113, 119, 119, 113, 122, 116, 111, 134, 108, 118, 114, 127, 119, 120, 122, 114, 111, 125, 102, 110, 109, 126, 114, 116, 120, 115, 114, 125, 112, 117, 128, 121, 119, 117, 113, 116, 108, 111, 115, 114, 120, 122, 117, 98, 118, 117, 123, 112, 115, 114, 118, 110, 114, 124, 116, 114, 117, 108, 116, 121, 119, 115, 100, 117, 113, 110, 104, 118, 104, 119, 118, 111, 116, 126, 115, 108, 111, 123, 121, 120, 114, 113, 113, 117, 121, 110, 108, 112, 111, 117, 87, 109, 90, 118, 113, 114, 108, 107, 112, 120, 109, 110, 119, 121, 120, 104, 115, 109, 124, 112, 123, 119, 111, 142, 111, 115, 113, 107, 111, 105, 133, 124, 112, 124, 111, 113, 116, 119, 106, 112, 119, 120, 113, 123, 106, 113, 113, 105, 122, 115, 112, 102, 125, 117, 119, 118, 110, 104, 106, 120, 116, 117, 103, 120, 118, 113, 123, 113, 114, 115, 123, 106, 113, 123, 106, 121, 111, 109, 112, 110, 129, 133, 117, 138, 112, 122, 119, 107, 118, 106, 85, 121, 128, 117, 108, 105, 117, 106, 112, 121, 98, 111, 148, 118, 117, 118, 117, 123, 109, 92, 105, 115, 119, 103, 116, 118, 121, 108, 115, 111, 107, 110, 117, 129, 121, 118, 119, 119, 112, 121, 108, 96, 115, 112, 118, 121, 97, 113, 108, 138, 112, 123, 107, 115, 99, 118, 117, 107, 111, 117, 114, 127, 119, 110, 119, 113, 111, 126, 120, 116, 117, 112, 119, 121, 110, 110, 108, 109, 114, 115, 112, 110, 108, 113, 119, 113, 115, 116, 116, 124, 118, 118, 121, 103, 103, 116, 115, 100, 121, 117, 120, 126, 119, 103, 123, 110, 118, 112, 111, 121, 107, 118, 125, 109, 115, 115, 116, 118, 125, 111, 118, 112, 113, 116, 111, 106, 119, 115, 114, 120, 115, 117, 101, 117, 118, 113, 123, 116, 122, 113, 120, 100, 124, 127, 123, 110, 123, 119, 110, 110, 121, 116, 107, 106, 112, 121, 114, 120, 115, 116, 115, 121, 120, 112, 114, 102, 119, 105, 111, 116, 126, 119, 121, 119, 119, 112, 104, 119, 120, 109, 113, 122, 125, 117, 98, 101, 122, 120, 97, 115, 117, 107, 115, 92, 125, 114, 132, 120, 104, 102, 109, 117, 123, 117, 119, 120, 117, 119, 120, 108, 95, 128, 106, 118, 120, 120, 119, 111, 99, 110, 109, 115, 110, 113, 107, 120, 112, 125, 116, 99, 115, 109, 117, 116, 111, 107, 110, 137, 110, 109, 91, 120, 120, 111, 121, 113, 121, 134, 113, 115, 112, 106, 123, 111, 124, 117, 113, 119, 113, 112, 105, 120, 109, 109, 119, 104, 107, 119, 110, 107, 119, 113, 117, 118, 107, 111, 114, 116, 121, 119, 104, 123, 118, 80, 119, 135, 119, 117, 117, 116, 107, 105, 112, 122, 119, 117, 114, 114, 106, 105, 114, 112, 122, 121, 113, 124, 114, 110, 117, 108, 113, 119, 116, 123, 114, 122, 135, 125, 113, 110, 126, 122, 109, 105, 114, 125, 140, 116, 110, 132, 119, 117, 116, 136, 118, 117, 103, 111, 108, 119, 107, 111, 112, 107, 115, 112, 121, 117, 115, 114, 116, 118, 117, 121, 114, 116, 114, 83, 120, 109, 122, 115, 120, 117, 122, 108, 119, 114, 112, 112, 118, 112, 112, 110, 111, 113, 124, 105, 117, 118, 118, 113, 109, 115, 116, 120, 119, 109, 114, 121, 118, 100, 109, 116, 112, 122, 116, 112, 105, 116, 113, 120, 108, 114, 113, 120, 112, 127, 113, 107, 109, 116, 115, 109, 124, 137, 120, 119, 107, 117, 113, 142, 109, 111, 111, 109, 109, 117, 109, 116, 113, 120, 117, 119, 118, 114, 102, 104, 95, 114, 104, 118, 120, 110, 120, 107, 114, 114, 124, 120, 125, 121, 102, 110, 122, 112, 100, 129, 141, 113, 118, 115, 120, 112, 111, 104, 119, 124, 112, 115, 115, 112, 113, 117, 105, 112, 114, 114, 117, 106, 117, 114, 118, 115, 118, 118, 120, 120, 112, 111, 125, 115, 111, 122, 124, 114, 115, 122, 121, 121, 107, 132, 98, 133, 117, 113, 117, 79, 127, 114, 113, 104, 114, 119, 118, 97, 117, 120, 114, 121, 113, 120, 114, 114, 111, 112, 126, 124, 120, 112, 112, 121, 113, 110, 105, 116, 106, 112, 124, 116, 118, 106, 125, 114, 118, 112, 109, 118, 111, 116, 120, 105, 114, 121, 121, 119, 116, 115, 119, 121, 121, 113, 109, 122, 121, 121, 143, 120, 117, 125, 124, 117, 122, 117, 121, 121, 114, 114, 117, 114, 119, 113, 111, 114, 118, 125, 112, 109, 116, 113, 115, 108, 116, 119, 129, 116, 119, 103, 114, 118, 110, 122, 104, 129, 114, 113, 120, 117, 113, 99, 120, 117, 124, 110, 124, 137, 113, 118, 99, 119, 114, 109, 123, 112, 106, 118, 122, 108, 124, 118, 120, 122, 115, 113, 122, 108, 117, 114, 102, 121, 120, 113, 115, 116, 120, 120, 113, 111, 112, 115, 109, 129, 124, 115, 111, 119, 123, 121, 121, 107, 123, 120, 92, 108, 107, 117, 119, 122, 99, 122, 120, 118, 112, 115, 115, 116, 114, 126, 116, 117, 124, 112, 110, 109, 119, 120, 111, 117, 106, 113, 114, 124, 105, 120, 104, 128, 122, 120, 122, 121, 105, 109, 88, 114, 123, 112, 124, 121, 112, 116, 120, 118, 120, 115, 104, 117, 114, 114, 120, 123, 106, 118, 110, 113, 119, 106, 127, 118, 113, 108, 128, 107, 124, 113, 127, 128, 121, 111, 114, 115, 116, 115, 127, 116, 118, 119, 111, 117, 110, 105, 124, 119, 119, 108, 133, 108, 118, 115, 110, 108, 112, 113, 111, 116, 108, 128, 110, 116, 106, 125, 120, 115, 128, 116, 114, 114, 117, 115, 110, 130, 128, 114, 115, 119, 116, 115, 106, 126, 119, 116, 167, 111, 122, 102, 116, 117, 110, 114, 119, 111, 110, 106, 99, 113, 109, 111, 117, 116, 100, 118, 115, 124, 104, 119, 88, 111, 98, 117, 116, 111, 112, 112, 120, 118, 115, 117, 105, 117, 119, 113, 112, 119, 108, 116, 126, 103, 119, 118, 115, 128, 107, 126, 127, 116, 115, 123, 121, 124, 95, 121, 119, 117, 123, 109, 118, 114, 124, 115, 105, 118, 120, 112, 113, 115, 115, 101, 107, 116, 120, 104, 115, 112, 114, 122, 120, 111, 102, 118, 111, 116, 111, 117, 113, 124, 126, 105, 108, 128, 115, 113, 112, 123, 119, 112, 105, 117, 128, 102, 114, 111, 127, 76, 116, 113, 101, 108, 117, 119, 102, 113, 119, 114, 117, 114, 108, 118, 106, 115, 119, 116, 103, 113, 107, 113, 114, 111, 121, 107, 117, 98, 125, 122, 111, 118, 118, 116, 115, 114, 112, 115, 112, 109, 118, 108, 115, 120, 117, 122, 113, 111, 107, 116, 124, 108, 106, 105, 110, 118, 135, 116, 110, 116, 101, 106, 124, 111, 120, 119, 105, 115, 111, 117, 117, 123, 113, 118, 123, 118, 116, 104, 119, 111, 113, 100, 107, 115, 104, 105, 107, 118, 111, 111, 110, 117, 108, 102, 117, 124, 105, 119, 116, 121, 123, 113, 117, 107, 95, 117, 118, 123, 100, 110, 108, 112, 113, 106, 122, 115, 114, 114, 107, 110, 130, 123, 120, 126, 116, 106, 139, 123, 129, 114, 115, 103, 120, 114, 104, 117, 105, 114, 118, 135, 113, 110, 115, 131, 128, 122, 113, 116, 121, 114, 114, 124, 94, 109, 118, 114, 99, 115, 138, 119, 107, 112, 117, 118, 109, 104, 116, 127, 112, 117, 95, 116, 98, 111, 130, 108, 109, 131, 119, 109, 134, 125, 108, 126, 112, 123, 110, 106, 124, 124, 120, 128, 115, 110, 131, 110, 123, 95, 121, 131, 97, 103, 115, 125, 100, 120, 127, 124, 113, 106, 121, 122, 106, 88, 126, 122, 115, 117, 122, 89, 133, 110, 111, 106, 124, 128, 97, 106, 97, 110, 108, 105, 111, 105, 112, 103, 111, 93, 117, 103, 108, 118, 109, 117, 119, 102, 118, 122, 121, 116, 107, 126, 116, 128, 111, 117, 121, 103, 108, 121, 101, 117, 91, 110, 104, 115, 118, 109, 153, 123, 119, 121, 114, 114, 121, 104, 113, 96, 109, 112, 110, 126, 113, 116, 116, 116, 113, 110, 102, 119, 117, 105, 123, 110, 108, 129, 110, 125, 120, 103, 108, 134, 139, 103, 127, 111, 99, 115, 110, 139, 94, 114, 104, 113, 104, 113, 118, 113, 110, 119, 119, 122, 113, 96, 118, 120, 134, 115, 130, 129, 111, 113, 107, 117, 108, 128, 125, 119, 122, 118, 126, 120, 103, 110, 129, 118, 131, 111, 111, 115, 114, 115, 119, 109, 113, 122, 111, 96, 102, 110, 105, 118, 114, 95, 108, 112, 109, 109, 122, 110, 109, 102, 105, 111, 103, 110, 120, 111, 112, 129, 100, 103, 117, 109, 119, 105, 116, 116, 140, 120, 110, 117, 114, 125, 124, 122, 118, 137, 123, 90, 129, 114, 115, 96, 107, 116, 117, 125, 103, 111, 115, 102, 120, 127, 128, 123, 116, 115, 119, 117, 127, 136, 98, 133, 121, 132, 122, 133, 118, 120, 114, 103, 96, 92, 108, 122, 129, 121, 116, 123, 106, 111, 115, 117, 106, 111, 106, 89, 115, 120, 117, 109, 113, 132, 104, 105, 124, 117, 124, 92, 114, 108, 124, 114, 88, 94, 121, 122, 130, 117, 115, 117, 113, 108, 119, 105, 127, 113, 120, 125, 114, 116, 102, 127, 125, 113, 123, 118, 121, 122, 113, 138, 120, 129, 111, 115, 127, 125, 117, 83, 106, 121, 98, 108, 111, 115, 118, 125, 119, 119, 110, 119, 112, 116, 115, 111, 118, 118, 133, 114, 101, 117, 106, 112, 98, 98, 107, 124, 109, 118, 113, 118, 112, 118, 100, 117, 107, 123, 105, 116, 114, 106, 112, 121, 115, 116, 105, 113, 126, 115, 100, 119, 119, 110, 113, 112, 112, 119, 123, 101, 127, 107, 102, 118, 120, 105, 126, 102, 103, 105, 110, 105, 111, 90, 125, 118, 127, 119, 104, 135, 130, 103, 113, 113, 119, 126, 123, 129, 107, 109, 129, 104, 125, 119, 121, 119, 87, 137, 116, 106, 114, 113, 97, 123, 119, 119, 123, 121, 118, 118, 119, 111, 105, 111, 119, 102, 108, 106, 87, 88, 102, 96, 117, 120, 118, 111, 99, 126, 107, 118, 106, 111, 121, 106, 127, 116, 118, 108, 125, 105, 107, 102, 134, 114, 82, 105, 96, 130, 116, 121, 125, 116, 113, 115, 109, 110, 126, 105, 108, 110, 108, 113, 122, 110, 107, 121, 106, 109, 121, 120, 117, 121, 113, 120, 114, 120, 101, 106, 115, 120, 105, 117, 106, 123, 114, 123, 119, 108, 118, 122, 107, 114, 111, 105, 112, 113, 123, 119, 113, 118, 117, 126, 115, 111, 116, 124, 112, 102, 120, 104, 118, 118, 115, 102, 113, 118, 106, 109, 125, 121, 100, 115, 121, 109, 109, 117, 116, 116, 109, 101, 112, 123, 123, 119, 113, 121, 106, 113, 115, 119, 107, 116, 123, 124, 101, 110, 117, 117, 116, 116, 120, 105, 110, 129, 115, 122, 109, 110, 119, 116, 123, 120, 102, 121, 125, 124, 114, 113, 111, 117, 117, 107, 119, 115, 127, 102, 109, 117, 108, 106, 110, 106, 131, 118, 118, 118, 97, 108, 121, 123, 116, 121, 111, 120, 113, 118, 112, 112, 111, 116, 115, 110, 115, 116, 124, 115, 114, 118, 116, 122, 128, 129, 109, 111, 123, 122, 112, 117, 110, 112, 118, 107, 100, 109, 111, 122, 122, 129, 114, 108, 99, 116, 112, 122, 117, 117, 116, 128, 120, 117, 115, 114, 106, 111, 130, 116, 120, 121, 112, 117, 124, 116, 107, 137, 122, 108, 113, 113, 112, 111, 111, 119, 125, 116, 126, 120, 110, 113, 123, 125, 111, 107, 119, 113, 107, 115, 112, 107, 113, 111, 115, 125, 112, 111, 109, 111, 126, 115, 113, 114, 110, 111, 120, 128, 127, 113, 126, 117, 110, 117, 121, 111, 121, 118, 117, 120, 116, 102, 100, 122, 111, 110, 107, 103, 114, 128, 101, 126, 101, 113, 106, 119, 109, 107, 123, 111, 113, 87, 124, 119, 119, 117, 108, 112, 109, 110, 113, 119, 108, 109, 107, 104, 126, 129, 111, 112, 112, 113, 110, 99, 125, 114, 104, 115, 118, 111, 116, 124, 114, 115, 90, 128, 119, 107, 126, 109, 112, 108, 119, 120, 102, 108, 125, 104, 106, 128, 114, 106, 110, 112, 117, 107, 111, 107, 126, 110, 124, 120, 112, 126, 108, 131, 110, 118, 111, 97, 111, 109, 116, 105, 116, 121, 118, 117, 107, 116, 125, 121, 116, 116, 118, 109, 106, 123, 116, 102, 122, 104, 100, 121, 110, 113, 118, 111, 122, 98, 112, 123, 125, 111, 116, 129, 120, 107, 127, 125, 122, 106, 110, 109, 108, 116, 110, 108, 112, 107, 104, 110, 114, 119, 125, 125, 115, 117, 119, 121, 118, 105, 106, 106, 113, 114, 109, 117, 122, 125, 133, 128, 109, 103, 109, 141, 115, 120, 116, 112, 115, 106, 108, 109, 113, 118, 118, 128, 121, 121, 108, 123, 115, 119, 123, 128, 120, 117, 103, 123, 119, 115, 113, 116, 119, 115, 109, 117, 108, 106, 117, 101, 130, 114, 123, 111, 120, 119, 113, 125, 119, 112, 126, 119, 112, 132, 119, 116, 108, 98, 109, 120, 107, 110, 110, 120, 122, 113, 109, 109, 104, 119, 133, 119, 116, 124, 117, 111, 113, 135, 119, 104, 100, 109, 122, 112, 119, 118, 108, 114, 118, 114, 109, 105, 136, 110, 96, 135, 108, 110, 105, 116, 109, 105, 114, 123, 114, 119, 123, 81, 111, 107, 106, 113, 106, 119, 110, 106, 102, 116, 116, 115, 106, 106, 106, 138, 100, 110, 121, 118, 94, 111, 109, 119, 114, 98, 106, 128, 112, 118, 98, 114, 112, 130, 117, 113, 112, 120, 105, 97, 105, 126, 104, 102, 112, 97, 108, 122, 136, 102, 126, 111, 116, 108, 113, 120, 93, 126, 127, 115, 99, 105, 112, 114, 108, 95, 123, 130, 126, 133, 114, 111, 97, 116, 125, 116, 128, 105, 123, 108, 114, 117, 117, 127, 132, 115, 105, 128, 122, 136, 112, 122, 105, 116, 115, 101, 114, 107, 111, 106, 116, 119, 113, 101, 103, 111, 106, 118, 134, 118, 120, 104, 102, 109, 114, 111, 105, 110, 134, 100, 118, 124, 110, 111, 120, 111, 104, 109, 103, 116, 118, 122, 110, 111, 111, 98, 120, 104, 106, 104, 110, 134, 122, 107, 114, 102, 124, 114, 134, 123, 114, 116, 112, 106, 108, 136, 123, 118, 103, 121, 116, 127, 112, 117, 112, 118, 123, 118, 106, 119, 127, 100, 118, 121, 123, 106, 97, 125, 112, 111, 109, 106, 110, 119, 105, 124, 123, 117, 93, 120, 115, 109, 107, 108, 95, 122, 130, 116, 131, 111, 134, 114, 127, 112, 114, 113, 114, 110, 102, 102, 109, 124, 100, 113, 114, 116, 120, 118, 102, 114, 112, 115, 135, 122, 90, 130, 113, 116, 120, 122, 116, 122, 133, 108, 108, 124, 113, 107, 109, 104, 112, 111, 119, 121, 105, 111, 107, 90, 109, 105, 105, 138, 115, 114, 127, 97, 99, 111, 132, 96, 108, 115, 116, 127, 102, 98, 135, 105, 119, 111, 107, 120, 108, 110, 118, 119, 99, 138, 111, 100, 127, 103, 118, 129, 118, 111, 113, 131, 107, 111, 109, 100, 118, 129, 101, 105, 107, 118, 128, 126, 121, 109, 120, 119, 113, 115, 121, 125, 78, 102, 100, 95, 117, 111, 144, 108, 106, 91, 111, 97, 121, 104, 126, 108, 109, 116, 134, 113, 89, 107, 92, 130, 110, 115, 115, 126, 99, 130, 109, 102, 109, 128, 106, 111, 128, 120, 129, 112, 115, 131, 97, 112, 120, 117, 101, 113, 117, 112, 129, 117, 116, 107, 116, 115, 118, 115, 115, 123, 108, 115, 115, 139, 124, 121, 122, 99, 95, 114, 107, 109, 116, 119, 106, 120, 112, 111, 121, 112, 106, 113, 101, 128, 126, 100, 113, 127, 116, 104, 118, 112, 106, 117, 113, 106, 110, 113, 105, 125, 119, 125, 114, 110, 107, 111, 113, 126, 125, 130, 108, 122, 120, 118, 125, 103, 109, 118, 115, 120, 110, 108, 127, 118, 112, 88, 102, 103, 110, 111, 128, 119, 125, 123, 107, 100, 107, 105, 105, 118, 114, 111, 119, 117, 124, 124, 126, 111, 121, 126, 111, 132, 122, 121, 112, 109, 113, 118, 112, 126, 111, 115, 97, 113, 119, 117, 108, 115, 123, 117, 109, 106, 112, 123, 116, 101, 120, 109, 121, 113, 128, 96, 126, 136, 109, 118, 108, 115, 142, 108, 130, 133, 110, 110, 114, 106, 124, 120, 109, 113, 112, 124, 108, 111, 129, 110, 118, 124, 112, 110, 126, 116, 110, 112, 114, 105, 121, 101, 118, 121, 109, 83, 112, 108, 122, 114, 121, 110, 116, 102, 132, 131, 115, 105, 116, 123, 100, 114, 117, 110, 118, 105, 137, 105, 129, 124, 101, 105, 121, 107, 115, 90, 113, 104, 117, 132, 104, 127, 113, 118, 107, 117, 111, 111, 115, 107, 118, 109, 122, 106, 104, 123, 112, 114, 122, 118, 101, 99, 109, 121, 104, 117, 107, 125, 110, 114, 129, 128, 104, 107, 121, 125, 100, 106, 113, 110, 120, 121, 119, 116, 115, 118, 115, 112, 110, 113, 121, 115, 117, 121, 105, 117, 110, 115, 106, 117, 113, 98, 112, 121, 114, 104, 112, 108, 119, 119, 113, 121, 113, 128, 123, 103, 120, 108, 123, 108, 115, 122, 110, 116, 116, 111, 128, 105, 110, 118, 133, 121, 123, 110, 106, 114, 112, 128, 109, 108, 116, 111, 120, 111, 122, 103, 108, 111, 112, 122, 113, 102, 116, 119, 121, 120, 118, 116, 109, 109, 118, 104, 104, 111, 102, 120, 106, 106, 123, 113, 121, 97, 114, 123, 113, 115, 101, 117, 128, 89, 111, 111, 114, 118, 99, 119, 114, 107, 117, 118, 117, 111, 117, 119, 112, 117, 109, 107, 107, 122, 121, 113, 126, 118, 102, 116, 113, 108, 110, 108, 129, 118, 108, 116, 104, 111, 115, 115, 111, 104, 125, 108, 116, 122, 125, 94, 117, 98, 128, 131, 120, 104, 117, 125, 113, 110, 106, 119, 128, 116, 105, 107, 107, 105, 109, 141, 116, 112, 99, 105, 115, 115, 110, 115, 107, 112, 125, 114, 126, 120, 116, 101, 104, 112, 116, 110, 112, 120, 117, 116, 110, 104, 119, 107, 126, 122, 100, 112, 117, 128, 122, 128, 105, 113, 112, 113, 127, 127, 124, 106, 108, 127, 108, 114, 107, 117, 121, 119, 121, 105, 118, 108, 112, 120, 126, 116, 92, 114, 115, 116, 120, 118, 124, 123, 112, 122, 115, 112, 118, 111, 113, 111, 126, 118, 115, 115, 110, 119, 110, 110, 108, 107, 113, 121, 127, 113, 116, 111, 117, 108, 118, 119, 110, 115, 114, 99, 117, 127, 114, 116, 116, 107, 124, 110, 126, 80, 137, 104, 123, 125, 124, 110, 111, 112, 113, 113, 114, 122, 112, 119, 125, 108, 115, 115, 89, 112, 115, 118, 127, 118, 112, 106, 118, 115, 114, 108, 120, 117, 132, 115, 100, 143, 119, 107, 106, 118, 111, 101, 109, 112, 105, 124, 121, 126, 124, 114, 109, 114, 116, 116, 114, 110, 114, 113, 119, 108, 114, 102, 109, 114, 118, 126, 122, 110, 125, 121, 124, 115, 102, 113, 113, 111, 111, 107, 115, 113, 111, 121, 90, 99, 122, 112, 125, 110, 115, 121, 121, 128, 100, 116, 113, 115, 116, 110, 106, 114, 113, 104, 106, 121, 108, 122, 117, 109, 118, 121, 108, 102, 104, 113, 116, 116, 125, 117, 130, 126, 107, 112, 113, 113, 120, 107, 115, 115, 108, 116, 120, 124, 115, 105, 107, 119, 112, 119, 116, 116, 117, 114, 113, 121, 124, 115, 118, 113, 119, 113, 118, 116, 118, 116, 110, 101, 112, 110, 115, 119, 118, 114, 119, 109, 113, 120, 112, 117, 115, 117, 113, 113, 116, 115, 126, 115, 107, 115, 125, 117, 110, 113, 112, 115, 115, 113, 116, 124, 116, 113, 112, 112, 120, 114, 119, 111, 117, 115, 115, 115, 121, 110, 115, 121, 112, 118, 109, 114, 125, 109, 119, 110, 112, 117, 120, 112, 120, 110, 113, 112, 115, 106, 111, 113, 118, 113, 113, 118, 112, 111, 111, 121, 104, 119, 114, 113, 111, 117, 118, 123, 109, 114, 116, 119, 115, 112, 118, 115, 116, 117, 115, 120, 117, 126, 123, 116, 109, 115, 119, 115, 110, 113, 116, 123, 108, 118, 109, 110, 114, 123, 114, 117, 119, 114, 117, 119, 120, 120, 121, 118, 117, 116, 115, 119, 122, 120, 121, 110, 116, 115, 119, 109, 115, 117, 111, 114, 117, 122, 115, 112, 111, 116, 115, 117, 117, 117, 114, 111, 110, 122, 111, 106, 117, 114, 116, 109, 118, 110, 115, 110, 119, 117, 125, 122, 113, 113, 108, 108, 121, 123, 114, 105, 116, 112, 114, 119, 115, 118, 113, 116, 113, 120, 114, 120, 117, 134, 127, 114, 98, 118, 111, 111, 116, 113, 115, 110, 115, 112, 119, 110, 115, 107, 114, 116, 115, 117, 117, 111, 106, 117, 107, 112, 124, 120, 116, 122, 119, 125, 119, 117, 114, 112, 113, 117, 112, 117, 119, 114, 121, 117, 112, 114, 115, 115, 109, 116, 124, 107, 111, 118, 120, 107, 116, 117, 105, 116, 132, 115, 123, 114, 107, 118, 113, 110, 124, 119, 112, 119, 110, 109, 121, 120, 115, 118, 111, 119, 116, 111, 119, 111, 118, 107, 116, 112, 105, 109, 125, 113, 119, 124, 114, 119, 115, 116, 111, 117, 115, 101, 119, 116, 110, 112, 119, 119, 116, 117, 101, 114, 117, 106, 117, 123, 120, 112, 119, 114, 123, 107, 117, 112, 112, 121, 120, 112, 119, 114, 121, 120, 107, 128, 116, 113, 119, 113, 108, 105, 113, 109, 114, 118, 109, 117, 107, 119, 118, 103, 113, 116, 114, 117, 116, 112, 115, 113, 116, 117, 112, 117, 117, 111, 117, 111, 104, 111, 118, 117, 114, 108, 116, 113, 119, 112, 114, 114, 118, 114, 119, 127, 120, 118, 116, 113, 114, 111, 119, 116, 122, 109, 111, 108, 114, 114, 113, 119, 113, 115, 110, 110, 123, 114, 114, 116, 126, 114, 111, 119, 116, 114, 114, 120, 115, 113, 119, 124, 121, 125, 120, 118, 107, 115, 113, 123, 120, 114, 115, 121, 112, 115, 113, 116, 118, 108, 116, 115, 110, 117, 116, 121, 108, 115, 120, 106, 115, 122, 114, 120, 104, 114, 119, 112, 114, 117, 116, 113, 113, 115, 111, 112, 112, 122, 114, 113, 114, 114, 107, 115, 112, 118, 116, 112, 122, 124, 113, 110, 116, 116, 108, 114, 117, 117, 116, 117, 119, 118, 117, 113, 114, 117, 115, 104, 116, 113, 112, 118, 105, 114, 112, 106, 114, 123, 126, 116, 121, 106, 125, 123, 125, 116, 109, 117, 112, 119, 112, 101, 115, 104, 117, 110, 120, 116, 113, 129, 105, 93, 118, 120, 102, 107, 121, 109, 98, 115, 104, 114, 107, 110, 117, 113, 101, 111, 111, 128, 112, 115, 128, 129, 108, 113, 109, 101, 117, 103, 114, 111, 113, 103, 107, 123, 118, 112, 122, 116, 114, 113, 110, 114, 121, 117, 113, 131, 116, 103, 105, 118, 109, 113, 119, 130, 115, 113, 106, 110, 124, 116, 132, 117, 126, 108, 120, 113, 107, 111, 117, 119, 129, 113, 128, 120, 102, 116, 121, 106, 111, 117, 113, 110, 117, 98, 110, 109, 102, 107, 122, 114, 113, 118, 101, 105, 123, 114, 123, 102, 110, 124, 125, 116, 118, 108, 116, 117, 106, 125, 122, 122, 133, 129, 122, 108, 113, 110, 120, 114, 119, 114, 113, 103, 126, 120, 116, 114, 119, 121, 119, 105, 108, 116, 114, 112, 113, 106, 104, 91, 119, 113, 110, 114, 120, 114, 110, 113, 116, 105, 118, 106, 114, 109, 109, 107, 106, 107, 127, 116, 100, 109, 103, 107, 114, 105, 109, 111, 113, 118, 125, 105, 114, 121, 113, 101, 111, 106, 116, 137, 107, 108, 117, 118, 126, 122, 124, 115, 109, 121, 107, 111, 104, 103, 101, 118, 113, 114, 111, 115, 117, 104, 110, 127, 122, 118, 126, 112, 124, 117, 113, 108, 112, 111, 115, 119, 118, 102, 105, 115, 114, 107, 122, 114, 124, 110, 122, 118, 105, 112, 107, 116, 126, 119, 111, 105, 103, 119, 110, 99, 132, 108, 114, 109, 114, 105, 117, 115, 95, 125, 111, 112, 123, 120, 104, 117, 112, 111, 115, 110, 118, 101, 110, 118, 104, 116, 112, 100, 118, 115, 123, 109, 99, 130, 111, 128, 125, 108, 109, 129, 125, 115, 118, 116, 100, 110, 109, 120, 96, 108, 109, 117, 127, 129, 113, 129, 103, 122, 116, 112, 117, 113, 115, 107, 104, 121, 105, 107, 115, 117, 113, 120, 112, 109, 111, 130, 112, 129, 124, 127, 114, 112, 109, 121, 123, 104, 107, 105, 117, 115, 127, 127, 116, 115, 121, 115, 125, 105, 114, 107, 113, 116, 113, 121, 115, 109, 110, 121, 119, 110, 130, 117, 128, 110, 112, 122, 114, 113, 123, 117, 101, 120, 110, 107, 117, 110, 94, 111, 114, 118, 102, 111, 110, 96, 119, 115, 113, 127, 125, 115, 114, 102, 122, 121, 135, 110, 114, 101, 99, 128, 105, 104, 125, 105, 121, 115, 117, 120, 115, 127, 131, 118, 112, 105, 109, 109, 111, 115, 119, 116, 123, 119, 117, 123, 117, 130, 121, 115, 109, 112, 118, 115, 120, 113, 107, 118, 110, 115, 110, 135, 117, 128, 120, 107, 120, 123, 116, 113, 116, 103, 117, 122, 119, 116, 116, 113, 116, 104, 108, 115, 100, 108, 109, 109, 101, 120, 113, 118, 117, 117, 101, 125, 125, 114, 113, 106, 118, 124, 114, 115, 115, 120, 120, 117, 105, 125, 103, 109, 114, 98, 116, 142, 84, 106, 103, 106, 111, 109, 116, 115, 118, 113, 116, 102, 116, 113, 113, 108, 125, 116, 118, 112, 120, 109, 113, 122, 128, 115, 113, 111, 116, 116, 110, 128, 112, 116, 118, 140, 94, 110, 105, 114, 122, 121, 110, 111, 106, 122, 120, 118, 101, 105, 129, 121, 105, 114, 121, 117, 124, 114, 121, 115, 118, 119, 123, 119, 122, 100, 107, 118, 125, 122, 114, 111, 103, 116, 105, 105, 115, 109, 112, 99, 109, 110, 117, 113, 115, 102, 108, 109, 119, 125, 118, 98, 118, 102, 125, 132, 116, 112, 126, 109, 105, 120, 117, 123, 124, 112, 101, 106, 126, 94, 109, 115, 109, 109, 122, 122, 110, 122, 111, 113, 106, 136, 127, 125, 121, 105, 108, 111, 119, 117, 102, 126, 112, 104, 104, 124, 120, 121, 112, 110, 103, 109, 110, 99, 121, 120, 105, 121, 111, 116, 104, 111, 117, 112, 111, 120, 114, 102, 115, 120, 114, 126, 127, 102, 116, 122, 104, 111, 109, 135, 115, 114, 124, 109, 119, 118, 119, 118, 114, 109, 121, 120, 117, 121, 110, 122, 132, 111, 102, 110, 128, 118, 126, 120, 118, 127, 109, 113, 104, 112, 119, 113, 110, 120, 113, 119, 94, 91, 112, 109, 106, 107, 121, 110, 106, 109, 126, 103, 116, 117, 107, 120, 116, 105, 115, 134, 117, 115, 116, 116, 130, 122, 107, 125, 111, 115, 121, 115, 106, 127, 135, 128, 115, 118, 107, 102, 122, 119, 133, 121, 116, 105, 116, 96, 116, 111, 116, 121, 110, 122, 112, 107, 110, 111, 117, 135, 112, 107, 108, 125, 117, 119, 115, 130, 100, 98, 118, 118, 109, 117, 102, 118, 125, 120, 110, 115, 110, 118, 103, 114, 111, 107, 116, 102, 113, 114, 109, 114, 117, 123, 112, 115, 117, 107, 138, 115, 121, 108, 105, 108, 119, 116, 124, 115, 115, 118, 103, 115, 114, 113, 104, 100, 124, 105, 110, 122, 110, 114, 122, 119, 111, 103, 109, 117, 113, 115, 120, 122, 107, 111, 125, 117, 109, 108, 120, 114, 116, 105, 112, 126, 113, 110, 113, 119, 113, 100, 111, 124, 106, 117, 118, 119, 123, 106, 116, 123, 119, 116, 115, 103, 125, 116, 106, 125, 126, 108, 117, 106, 112, 128, 124, 110, 122, 114, 110, 131, 108, 98, 103, 126, 121, 115, 124, 114, 90, 98, 111, 142, 109, 109, 120, 122, 113, 124, 112, 125, 119, 120, 120, 123, 112, 114, 125, 112, 108, 113, 113, 116, 114, 111, 108, 122, 109, 99, 116, 101, 110, 122, 117, 111, 108, 121, 118, 129, 120, 115, 112, 98, 105, 106, 117, 117, 115, 118, 93, 116, 116, 101, 108, 114, 112, 109, 99, 124, 132, 117, 112, 109, 115, 113, 115, 122, 125, 111, 116, 114, 134, 112, 112, 110, 123, 125, 120, 124, 106, 121, 112, 118, 125, 106, 129, 121, 116, 111, 108, 112, 107, 120, 113, 115, 110, 108, 126, 114, 128, 116, 110, 104, 127, 115, 103, 114, 112, 113, 108, 107, 106, 108, 123, 116, 117, 113, 116, 115, 114, 114, 102, 112, 108, 114, 112, 110, 118, 118, 115, 111, 116, 120, 115, 116, 113, 110, 98, 115, 117, 117, 120, 117, 118, 106, 115, 124, 103, 119, 115, 114, 106, 123, 109, 110, 112, 114, 114, 120, 112, 116, 115, 113, 117, 115, 117, 110, 118, 116, 109, 116, 107, 117, 116, 112, 113, 139, 112, 115, 115, 98, 123, 113, 122, 99, 113, 108, 100, 115, 110, 117, 111, 115, 124, 116, 113, 142, 113, 107, 108, 121, 110, 116, 121, 118, 110, 113, 114, 116, 108, 115, 118, 118, 115, 120, 121, 122, 114, 117, 109, 111, 109, 116, 115, 115, 110, 111, 119, 118, 109, 122, 114, 120, 122, 116, 105, 119, 114, 113, 119, 114, 112, 113, 115, 115, 116, 107, 116, 113, 118, 119, 116, 139, 113, 114, 116, 116, 119, 113, 107, 110, 108, 120, 122, 94, 118, 116, 125, 113, 114, 110, 119, 117, 111, 100, 119, 109, 115, 107, 91, 113, 105, 104, 122, 115, 122, 118, 121, 126, 115, 118, 109, 128, 124, 117, 111, 109, 116, 116, 112, 111, 114, 133, 111, 117, 113, 109, 113, 111, 113, 116, 112, 124, 116, 112, 118, 120, 106, 110, 117, 120, 113, 117, 115, 116, 120, 106, 121, 125, 115, 124, 120, 120, 107, 120, 117, 109, 124, 114, 116, 119, 115, 113, 113, 145, 108, 101, 116, 111, 101, 122, 124, 112, 119, 99, 109, 117, 118, 113, 117, 117, 115, 105, 95, 114, 114, 112, 117, 108, 115, 116, 121, 119, 115, 117, 117, 110, 112, 116, 115, 123, 124, 118, 113, 116, 118, 112, 115, 112, 118, 117, 112, 116, 112, 113, 122, 119, 138, 112, 111, 119, 118, 121, 118, 111, 119, 113, 116, 115, 115, 114, 110, 119, 132, 112, 116, 116, 116, 121, 111, 114, 112, 106, 107, 119, 116, 111, 119, 113, 99, 112, 110, 119, 117, 113, 116, 111, 108, 119, 114, 108, 119, 124, 114, 117, 112, 118, 116, 101, 121, 105, 117, 118, 127, 113, 124, 116, 123, 112, 114, 122, 106, 118, 113, 114, 116, 112, 117, 122, 109, 116, 114, 113, 111, 115, 109, 107, 115, 115, 111, 116, 118, 114, 112, 110, 118, 113, 119, 111, 115, 111, 115, 113, 117, 115, 117, 115, 112, 115, 119, 122, 111, 103, 114, 116, 113, 116, 117, 120, 119, 115, 114, 120, 116, 103, 104, 119, 116, 109, 114, 114, 122, 117, 115, 130, 113, 110, 118, 114, 111, 116, 118, 115, 123, 109, 113, 110, 114, 118, 121, 123, 124, 121, 118, 118, 110, 117, 119, 115, 120, 115, 118, 117, 109, 111, 116, 112, 113, 117, 112, 116, 118, 112, 111, 115, 115, 108, 116, 121, 112, 115, 118, 118, 105, 116, 118, 124, 120, 114, 110, 94, 110, 111, 106, 117, 113, 106, 122, 114, 112, 105, 113, 116, 109, 113, 115, 122, 116, 122, 119, 113, 130, 119, 113, 119, 116, 116, 112, 118, 119, 121, 118, 119, 121, 123, 118, 113, 114, 117, 110, 112, 118, 115, 119, 120, 112, 121, 108, 119, 122, 111, 105, 121, 113, 112, 106, 119, 110, 115, 115, 122, 111, 106, 111, 109, 121, 112, 114, 119, 130, 115, 120, 116, 112, 115, 119, 126, 114, 112, 114, 116, 120, 116, 109, 125, 106, 103, 112, 109, 125, 119, 112, 132, 117, 112, 105, 119, 109, 107, 105, 117, 107, 118, 138, 108, 110, 108, 112, 109, 120, 117, 125, 110, 123, 108, 132, 119, 116, 105, 114, 108, 121, 110, 105, 115, 113, 119, 116, 116, 109, 123, 116, 115, 101, 115, 108, 112, 123, 107, 115, 105, 111, 101, 132, 113, 123, 121, 110, 100, 123, 111, 114, 107, 111, 104, 128, 119, 112, 108, 112, 103, 111, 123, 115, 123, 117, 108, 120, 113, 110, 117, 98, 117, 110, 122, 121, 114, 114, 117, 131, 115, 107, 125, 121, 110, 116, 103, 119, 128, 104, 112, 118, 115, 114, 117, 100, 122, 115, 104, 102, 119, 116, 115, 113, 131, 109, 117, 100, 116, 119, 130, 124, 117, 113, 118, 106, 116, 127, 118, 113, 125, 105, 104, 121, 112, 115, 112, 121, 117, 112, 102, 123, 122, 122, 121, 118, 110, 104, 109, 128, 133, 119, 123, 118, 112, 106, 115, 114, 114, 113, 125, 122, 111, 111, 122, 108, 123, 113, 125, 105, 91, 115, 108, 108, 108, 124, 125, 104, 122, 117, 108, 98, 116, 122, 129, 119, 112, 117, 112, 105, 127, 119, 99, 114, 102, 126, 135, 116, 128, 102, 117, 125, 121, 120, 109, 115, 117, 110, 111, 135, 112, 117, 104, 117, 110, 127, 120, 117, 99, 111, 104, 119, 116, 126, 118, 121, 112, 110, 119, 110, 122, 135, 112, 106, 101, 122, 119, 112, 127, 115, 127, 122, 127, 123, 113, 120, 116, 127, 115, 115, 108, 118, 122, 118, 111, 114, 107, 117, 125, 114, 117, 110, 109, 129, 132, 114, 116, 113, 109, 116, 124, 125, 112, 117, 112, 101, 108, 123, 119, 112, 115, 118, 105, 121, 109, 116, 114, 132, 108, 123, 100, 94, 119, 112, 105, 108, 115, 123, 123, 137, 116, 98, 106, 119, 113, 113, 126, 110, 127, 95, 105, 115, 107, 116, 111, 109, 109, 123, 112, 116, 105, 125, 117, 135, 119, 113, 109, 137, 121, 108, 112, 115, 125, 113, 119, 109, 114, 113, 108, 119, 113, 107, 133, 128, 120, 120, 105, 126, 106, 111, 110, 105, 120, 110, 108, 117, 111, 119, 118, 112, 108, 113, 115, 118, 121, 106, 119, 101, 120, 118, 109, 117, 119, 106, 112, 105, 126, 96, 107, 115, 120, 108, 108, 109, 116, 110, 119, 104, 102, 111, 113, 113, 106, 101, 114, 126, 117, 130, 112, 111, 110, 125, 122, 112, 113, 104, 113, 128, 113, 123, 120, 116, 129, 103, 116, 117, 115, 124, 110, 128, 114, 116, 111, 116, 113, 116, 104, 124, 121, 104, 118, 122, 119, 124, 120, 121, 117, 110, 111, 107, 119, 110, 105, 108, 103, 105, 103, 113, 127, 117, 116, 108, 117, 114, 119, 109, 109, 118, 120, 116, 117, 128, 122, 110, 122, 113, 105, 115, 122, 116, 100, 116, 99, 130, 117, 120, 114, 116, 129, 116, 113, 129, 116, 121, 113, 124, 105, 122, 109, 114, 113, 124, 107, 133, 101, 109, 115, 103, 115, 120, 108, 111, 125, 123, 115, 113, 133, 112, 131, 112, 92, 107, 88, 109, 115, 134, 101, 106, 105, 113, 95, 113, 134, 118, 111, 123, 100, 120, 109, 125, 108, 109, 105, 100, 108, 137, 107, 131, 118, 115, 116, 107, 108, 107, 106, 108, 119, 102, 101, 120, 137, 112, 110, 100, 124, 109, 125, 103, 109, 117, 125, 115, 121, 104, 107, 110, 103, 117, 99, 102, 119, 110, 111, 115, 120, 125, 114, 140, 112, 124, 115, 116, 138, 87, 106, 127, 113, 142, 120, 114, 142, 104, 119, 128, 116, 135, 122, 120, 114, 111, 125, 103, 119, 95, 123, 116, 117, 101, 113, 131, 118, 111, 116, 120, 108, 121, 115, 101, 111, 119, 127, 97, 125, 114, 112, 121, 109, 106, 119, 127, 113, 117, 132, 101, 113, 95, 123, 107, 107, 117, 136, 115, 127, 117, 94, 115, 108, 128, 120, 122, 119, 106, 101, 123, 108, 111, 132, 110, 101, 107, 106, 129, 123, 137, 111, 115, 113, 115, 142, 108, 108, 111, 111, 104, 123, 123, 123, 97, 111, 107, 109, 115, 101, 129, 111, 86, 121, 108, 123, 98, 134, 129, 119, 113, 110, 126, 127, 119, 112, 122, 108, 114, 117, 112, 134, 121, 120, 111, 124, 107, 115, 105, 110, 117, 118, 113, 122, 109, 110, 113, 123, 115, 136, 104, 128, 113, 124, 118, 115, 101, 124, 107, 119, 119, 107, 117, 127, 104, 115, 107, 128, 114, 106, 110, 106, 109, 122, 105, 130, 108, 107, 115, 116, 125, 116, 106, 109, 123, 92, 114, 126, 125, 124, 99, 127, 104, 95, 131, 109, 106, 99, 109, 107, 125, 115, 129, 111, 122, 114, 116, 113, 113, 117, 116, 109, 114, 115, 124, 115, 110, 112, 113, 107, 110, 121, 113, 120, 85, 133, 124, 123, 109, 107, 129, 119, 114, 112, 130, 114, 111, 111, 126, 108, 111, 111, 114, 117, 97, 120, 105, 112, 115, 105, 108, 117, 112, 96, 120, 118, 117, 113, 116, 113, 126, 112, 124, 114, 109, 116, 117, 121, 125, 127, 125, 119, 101, 122, 107, 104, 115, 109, 105, 120, 113, 111, 106, 116, 125, 113, 91, 110, 115, 116, 118, 134, 87, 105, 115, 108, 93, 119, 100, 116, 124, 105, 89, 122, 116, 111, 108, 119, 118, 99, 129, 104, 112, 108, 110, 121, 118, 110, 115, 121, 113, 110, 113, 123, 121, 114, 126, 117, 127, 123, 122, 130, 112, 109, 114, 120, 119, 121, 118, 116, 103, 101, 114, 115, 106, 125, 143, 109, 103, 115, 123, 110, 107, 128, 115, 119, 109, 106, 119, 133, 118, 120, 125, 120, 123, 125, 112, 133, 129, 116, 118, 93, 111, 125, 134, 113, 114, 123, 111, 113, 103, 114, 138, 116, 110, 124, 121, 120, 108, 107, 122, 120, 110, 134, 96, 100, 115, 114, 97, 125, 106, 118, 117, 121, 124, 117, 102, 104, 112, 117, 103, 124, 125, 104, 115, 103, 110, 111, 114, 100, 118, 105, 117, 124, 99, 94, 120, 124, 110, 129, 120, 120, 130, 109, 110, 104, 128, 117, 128, 118, 100, 121, 112, 112, 106, 106, 124, 126, 125, 118, 116, 109, 129, 111, 108, 121, 100, 139, 106, 114, 142, 116, 127, 115, 132, 119, 121, 103, 122, 117, 128, 116, 103, 114, 121, 106, 113, 103, 132, 116, 125, 110, 120, 126, 111, 104, 119, 120, 120, 109, 112, 100, 113, 122, 115, 109, 117, 104, 107, 106, 121, 112, 114, 129, 103, 100, 122, 113, 117, 102, 117, 120, 113, 118, 122, 97, 128, 131, 113, 113, 104, 120, 102, 119, 115, 120, 122, 116, 104, 138, 125, 121, 102, 100, 119, 116, 103, 114, 99, 120, 116, 114, 117, 107, 107, 113, 113, 104, 115, 112, 119, 107, 112, 111, 113, 111, 113, 117, 123, 114, 118, 123, 128, 122, 105, 114, 126, 110, 115, 130, 113, 114, 121, 106, 108, 124, 111, 117, 115, 112, 124, 116, 116, 127, 124, 120, 118, 111, 116, 136, 119, 109, 126, 120, 125, 117, 123, 106, 116, 114, 122, 114, 111, 118, 130, 103, 101, 118, 99, 126, 114, 138, 111, 125, 116, 121, 126, 123, 106, 128, 118, 122, 115, 120, 117, 114, 112, 126, 106, 114, 117, 123, 114, 113, 120, 98, 112, 125, 109, 118, 114, 119, 109, 115, 101, 111, 125, 120, 108, 110, 105, 122, 104, 109, 109, 115, 116, 104, 102, 108, 114, 116, 115, 115, 110, 125, 109, 107, 127, 128, 118, 114, 103, 122, 123, 124, 122, 129, 125, 114, 120, 108, 121, 104, 109, 132, 98, 104, 112, 109, 107, 117, 115, 107, 108, 115, 129, 121, 108, 92, 106, 101, 135, 126, 139, 105, 120, 122, 112, 96, 115, 125, 103, 105, 113, 106, 102, 115, 117, 126, 124, 110, 124, 114, 125, 81, 107, 104, 124, 116, 113, 108, 116, 132, 117, 124, 113, 127, 108, 131, 123, 110, 111, 130, 104, 116, 112, 123, 112, 109, 108, 123, 107, 116, 98, 130, 100, 114, 128, 117, 127, 122, 103, 107, 118, 110, 117, 129, 125, 120, 104, 131, 119, 117, 107, 111, 130, 100, 100, 116, 118, 118, 126, 117, 111, 115, 127, 99, 97, 116, 113, 118, 101, 108, 112, 112, 103, 116, 111, 125, 116, 114, 105, 125, 100, 115, 119, 116, 122, 119, 114, 112, 103, 115, 119, 116, 115, 112, 109, 107, 126, 102, 109, 106, 116, 103, 102, 129, 131, 137, 113, 124, 117, 120, 94, 114, 115, 117, 126, 108, 121, 108, 133, 122, 104, 102, 129, 99, 112, 125, 110, 109, 94, 120, 105, 131, 117, 109, 130, 103, 75, 109, 122, 100, 125, 120, 103, 86, 122, 145, 120, 126, 115, 108, 103, 129, 107, 114, 81, 133, 115, 113, 109, 114, 113, 134, 115, 119, 117, 129, 109, 115, 122, 114, 110, 122, 101, 126, 107, 102, 104, 122, 121, 108, 112, 128, 135, 123, 103, 105, 113, 123, 96, 109, 120, 108, 125, 109, 112, 120, 109, 114, 107, 111, 128, 114, 118, 106, 109, 116, 115, 90, 114, 112, 119, 116, 121, 104, 103, 107, 112, 118, 115, 113, 116, 108, 108, 117, 113, 119, 112, 118, 113, 117, 119, 120, 113, 104, 112, 115, 120, 111, 110, 113, 111, 107, 111, 99, 125, 123, 113, 110, 123, 117, 119, 107, 124, 114, 121, 122, 110, 105, 117, 109, 107, 108, 107, 114, 124, 110, 107, 121, 110, 115, 117, 115, 117, 116, 111, 124, 114, 104, 109, 119, 118, 109, 123, 111, 104, 114, 110, 118, 116, 109, 115, 116, 106, 121, 116, 117, 114, 103, 118, 116, 113, 109, 110, 114, 120, 113, 108, 118, 118, 109, 124, 111, 115, 118, 108, 114, 117, 116, 115, 111, 120, 111, 115, 118, 126, 111, 121, 122, 109, 118, 110, 108, 122, 116, 119, 114, 123, 111, 112, 113, 122, 108, 129, 124, 120, 125, 111, 107, 116, 109, 116, 113, 115, 110, 110, 125, 109, 98, 116, 100, 105, 114, 111, 105, 117, 121, 112, 117, 120, 118, 116, 115, 123, 115, 109, 118, 125, 114, 103, 111, 107, 105, 116, 109, 130, 109, 132, 130, 109, 114, 117, 117, 105, 114, 123, 123, 116, 121, 102, 124, 115, 112, 107, 113, 111, 116, 125, 109, 109, 118, 105, 117, 111, 124, 126, 117, 108, 108, 118, 120, 111, 97, 116, 108, 115, 108, 112, 104, 125, 120, 110, 114, 104, 119, 117, 114, 127, 125, 112, 119, 114, 123, 108, 124, 119, 120, 105, 101, 122, 96, 109, 121, 113, 113, 126, 107, 109, 122, 110, 120, 114, 106, 115, 121, 109, 131, 96, 111, 112, 119, 115, 116, 110, 114, 120, 126, 110, 103, 115, 111, 112, 118, 123, 105, 115, 109, 110, 112, 117, 109, 125, 104, 116, 118, 124, 115, 113, 112, 117, 106, 116, 127, 116, 121, 124, 110, 109, 108, 122, 122, 111, 111, 134, 120, 111, 107, 117, 121, 127, 112, 115, 106, 116, 109, 107, 111, 130, 114, 108, 121, 112, 119, 126, 122, 106, 106, 118, 101, 131, 116, 122, 114, 115, 114, 111, 112, 116, 109, 109, 111, 114, 116, 112, 107, 117, 129, 114, 103, 136, 108, 109, 114, 101, 115, 117, 123, 119, 116, 116, 118, 113, 119, 115, 120, 114, 116, 120, 107, 113, 119, 97, 120, 102, 116, 114, 109, 113, 94, 118, 117, 115, 112, 116, 110, 118, 112, 113, 115, 116, 117, 125, 114, 116, 114, 116, 117, 113, 109, 117, 102, 133, 107, 107, 115, 119, 118, 118, 116, 119, 125, 113, 106, 114, 112, 118, 109, 111, 116, 114, 122, 113, 108, 119, 119, 118, 123, 114, 116, 109, 108, 118, 106, 114, 118, 112, 110, 123, 123, 109, 125, 119, 123, 118, 112, 109, 114, 123, 107, 114, 118, 111, 121, 104, 108, 116, 125, 112, 113, 110, 117, 112, 113, 124, 117, 119, 119, 117, 121, 114, 114, 126, 110, 102, 113, 109, 109, 115, 120, 130, 116, 113, 109, 119, 127, 109, 116, 117, 105, 119, 114, 114, 120, 114, 108, 104, 119, 100, 111, 129, 108, 111, 115, 119, 104, 109, 120, 114, 128, 111, 98, 110, 114, 120, 116, 107, 117, 118, 106, 109, 111, 108, 117, 110, 115, 119, 129, 122, 100, 116, 116, 120, 119, 118, 122, 109, 115, 109, 108, 122, 108, 115, 123, 108, 110, 122, 121, 120, 117, 106, 123, 119, 119, 120, 117, 110, 118, 112, 106, 114, 110, 109, 119, 123, 107, 114, 104, 110, 115, 107, 112, 106, 109, 112, 125, 116, 122, 115, 112, 116, 109, 116, 117, 116, 117, 112, 108, 123, 115, 116, 116, 118, 120, 111, 117, 110, 121, 118, 109, 124, 115, 120, 104, 108, 120, 115, 124, 110, 114, 109, 107, 122, 104, 113, 117, 138, 122, 106, 114, 104, 118, 112, 119, 129, 125, 115, 116, 117, 107, 122, 115, 110, 122, 116, 104, 109, 114, 116, 110, 116, 114, 123, 118, 110, 114, 114, 116, 109, 120, 117, 103, 114, 108, 117, 108, 119, 127, 124, 112, 121, 110, 136, 118, 114, 115, 109, 116, 119, 117, 103, 108, 123, 105, 123, 118, 116, 119, 112, 104, 127, 114, 126, 116, 109, 112, 119, 115, 110, 114, 105, 109, 122, 116, 107, 116, 87, 125, 114, 106, 107, 111, 114, 113, 117, 110, 112, 112, 114, 124, 115, 111, 135, 121, 108, 104, 116, 108, 115, 118, 108, 120, 112, 128, 121, 116, 130, 110, 113, 112, 112, 111, 111, 90, 114, 111, 116, 119, 116, 116, 125, 113, 115, 119, 115, 106, 131, 113, 123, 118, 144, 115, 108, 118, 112, 112, 119, 117, 110, 117, 109, 110, 109, 119, 117, 115, 115, 120, 108, 135, 111, 118, 109, 114, 109, 109, 93, 116, 106, 116, 114, 112, 110, 115, 108, 119, 109, 120, 120, 104, 110, 119, 114, 124, 111, 113, 116, 119, 115, 124, 116, 126, 94, 117, 109, 107, 119, 117, 125, 122, 119, 116, 108, 114, 118, 106, 115, 121, 110, 100, 115, 116, 109, 118, 120, 116, 104, 109, 106, 117, 114, 118, 116, 110, 114, 105, 120, 114, 121, 115, 119, 125, 110, 119, 107, 110, 107, 111, 112, 126, 118, 113, 125, 117, 121, 109, 119, 113, 109, 96, 111, 122, 119, 118, 122, 130, 117, 115, 114, 115, 110, 119, 123, 104, 111, 121, 111, 115, 108, 106, 114, 109, 129, 109, 111, 118, 105, 129, 113, 117, 113, 112, 121, 94, 112, 112, 106, 120, 115, 107, 111, 121, 121, 112, 111, 109, 105, 127, 112, 115, 126, 111, 116, 113, 111, 110, 120, 99, 118, 113, 116, 113, 109, 119, 132, 123, 103, 111, 109, 115, 107, 122, 113, 107, 122, 122, 129, 112, 110, 120, 113, 118, 100, 130, 124, 104, 116, 113, 112, 113, 109, 108, 127, 108, 121, 114, 119, 113, 104, 120, 116, 106, 118, 119, 116, 113, 112, 103, 110, 121, 112, 108, 128, 123, 122, 124, 120, 129, 116, 116, 121, 107, 122, 108, 117, 118, 104, 112, 115, 121, 113, 112, 111, 120, 121, 119, 117, 108, 117, 117, 112, 97, 110, 116, 123, 114, 117, 120, 114, 119, 117, 103, 106, 118, 135, 113, 115, 101, 111, 122, 119, 122, 122, 112, 116, 109, 100, 116, 125, 117, 113, 117, 101, 110, 111, 121, 112, 98, 102, 111, 86, 109, 116, 106, 119, 114, 122, 110, 119, 99, 108, 103, 124, 124, 130, 114, 116, 101, 108, 108, 109, 122, 100, 114, 113, 109, 119, 114, 97, 115, 110, 105, 121, 117, 107, 122, 120, 116, 123, 112, 121, 111, 116, 107, 107, 103, 120, 101, 107, 115, 132, 127, 121, 114, 114, 118, 128, 107, 125, 104, 126, 117, 116, 115, 124, 97, 117, 122, 100, 119, 118, 110, 115, 103, 115, 130, 110, 127, 119, 114, 117, 124, 110, 98, 114, 121, 104, 119, 119, 118, 120, 110, 97, 114, 110, 128, 123, 106, 112, 122, 125, 112, 119, 125, 120, 130, 114, 104, 97, 117, 135, 107, 108, 112, 116, 121, 105, 106, 109, 111, 144, 117, 116, 102, 112, 120, 132, 118, 116, 111, 116, 112, 121, 109, 119, 109, 111, 119, 94, 129, 125, 111, 131, 104, 113, 96, 100, 149, 108, 120, 120, 95, 97, 113, 114, 132, 118, 114, 107, 110, 109, 119, 119, 103, 127, 115, 114, 127, 114, 111, 107, 123, 112, 120, 122, 141, 96, 124, 120, 114, 106, 119, 113, 119, 100, 107, 125, 101, 112, 116, 102, 110, 138, 123, 114, 102, 127, 125, 120, 112, 112, 117, 117, 113, 130, 107, 100, 109, 111, 104, 122, 115, 124, 107, 115, 121, 119, 120, 117, 117, 126, 110, 116, 91, 111, 127, 116, 115, 119, 135, 174, 116, 114, 99, 108, 131, 118, 105, 126, 100, 121, 101, 111, 128, 129, 128, 112, 130, 109, 136, 113, 133, 127, 108, 107, 116, 113, 106, 122, 114, 114, 116, 129, 83, 111, 133, 116, 113, 112, 95, 116, 124, 131, 105, 130, 113, 123, 101, 122, 117, 98, 116, 110, 94, 132, 118, 106, 119, 131, 104, 119, 112, 111, 109, 113, 124, 108, 109, 131, 122, 118, 101, 101, 94, 111, 116, 113, 125, 94, 112, 117, 118, 101, 104, 101, 102, 113, 120, 125, 107, 136, 141, 119, 110, 114, 120, 130, 112, 103, 115, 121, 119, 117, 131, 132, 117, 112, 124, 108, 112, 109, 108, 123, 120, 118, 114, 123, 117, 120, 111, 125, 121, 117, 124, 116, 117, 100, 107, 123, 118, 121, 109, 108, 125, 116, 113, 125, 122, 109, 121, 108, 112, 113, 113, 115, 117, 122, 99, 117, 107, 126, 112, 96, 120, 124, 115, 109, 135, 113, 128, 101, 109, 123, 120, 116, 109, 121, 113, 116, 122, 99, 119, 122, 103, 112, 113, 111, 128, 98, 104, 114, 138, 123, 111, 138, 98, 87, 119, 123, 133, 119, 117, 120, 97, 114, 127, 108, 108, 112, 110, 114, 116, 116, 112, 110, 119, 95, 117, 125, 112, 104, 120, 120, 116, 111, 119, 116, 111, 105, 120, 115, 119, 107, 118, 121, 119, 120, 109, 118, 106, 98, 122, 121, 108, 117, 111, 117, 108, 121, 127, 119, 109, 122, 112, 115, 129, 112, 106, 118, 120, 121, 119, 119, 106, 113, 113, 120, 130, 124, 109, 120, 105, 104, 120, 133, 111, 137, 130, 125, 114, 130, 115, 116, 107, 99, 118, 122, 115, 113, 104, 110, 108, 108, 123, 119, 116, 128, 111, 114, 105, 103, 113, 115, 112, 122, 123, 122, 119, 117, 109, 125, 106, 117, 121, 119, 100, 105, 114, 103, 122, 117, 112, 100, 110, 103, 110, 116, 115, 125, 112, 100, 102, 117, 105, 107, 117, 112, 117, 92, 106, 101, 105, 119, 124, 121, 112, 101, 102, 129, 118, 113, 112, 97, 127, 120, 115, 113, 120, 105, 89, 120, 114, 111, 105, 107, 101, 119, 113, 115, 100, 119, 119, 109, 108, 122, 132, 122, 90, 113, 116, 110, 114, 119, 114, 128, 116, 135, 121, 119, 111, 132, 93, 115, 115, 117, 107, 105, 108, 112, 114, 120, 117, 122, 93, 112, 107, 110, 118, 117, 103, 116, 120, 119, 103, 113, 148, 116, 115, 118, 128, 113, 104, 125, 119, 108, 115, 110, 107, 125, 118, 124, 128, 125, 114, 124, 124, 110, 113, 112, 111, 78, 114, 144, 116, 108, 112, 114, 112, 111, 107, 109, 106, 136, 112, 105, 104, 110, 113, 120, 106, 125, 119, 112, 115, 127, 118, 115, 118, 99, 105, 134, 114, 107, 155, 115, 120, 118, 114, 117, 113, 110, 116, 112, 114, 120, 111, 121, 113, 132, 121, 117, 122, 124, 94, 97, 102, 101, 123, 123, 131, 109, 125, 122, 118, 115, 118, 100, 127, 105, 112, 110, 121, 118, 117, 124, 112, 114, 111, 108, 119, 110, 134, 115, 109, 111, 112, 110, 101, 117, 115, 125, 121, 116, 114, 116, 109, 114, 109, 119, 110, 108, 110, 97, 125, 106, 137, 108, 125, 120, 105, 114, 119, 118, 114, 121, 123, 121, 121, 121, 123, 108, 116, 112, 106, 118, 107, 115, 112, 115, 119, 112, 115, 110, 104, 111, 107, 114, 118, 112, 110, 104, 114, 116, 114, 115, 116, 117, 118, 105, 111, 122, 104, 111, 109, 133, 107, 125, 109, 107, 123, 95, 106, 111, 105, 113, 148, 131, 101, 113, 117, 106, 116, 116, 126, 108, 126, 128, 104, 119, 114, 101, 124, 109, 126, 126, 122, 129, 123, 101, 116, 103, 109, 115, 105, 122, 118, 106, 120, 97, 122, 103, 92, 117, 123, 118, 120, 118, 121, 114, 127, 115, 122, 111, 116, 112, 126, 116, 117, 102, 117, 114, 96, 122, 124, 109, 109, 110, 112, 114, 117, 110, 122, 110, 108, 110, 109, 119, 118, 111, 116, 118, 120, 112, 114, 115, 120, 105, 101, 120, 126, 134, 114, 109, 116, 96, 107, 123, 128, 121, 114, 116, 124, 119, 136, 128, 115, 122, 127, 127, 110, 127, 114, 112, 126, 113, 101, 124, 115, 122, 116, 108, 110, 111, 109, 121, 127, 125, 129, 110, 128, 105, 110, 111, 88, 122, 116, 108, 106, 127, 110, 113, 103, 107, 112, 110, 152, 104, 121, 118, 101, 100, 122, 126, 114, 117, 118, 120, 115, 117, 107, 105, 100, 119, 119, 112, 116, 110, 120, 112, 122, 115, 116, 123, 119, 125, 126, 100, 114, 124, 121, 124, 115, 99, 102, 112, 114, 109, 118, 108, 129, 112, 120, 117, 108, 107, 114, 113, 114, 133, 108, 116, 116, 113, 125, 133, 119, 106, 103, 109, 123, 132, 113, 113, 99, 115, 114, 114, 123, 116, 108, 114, 114, 112, 116, 119, 107, 110, 98, 117, 118, 115, 115, 118, 112, 119, 111, 140, 113, 119, 119, 121, 112, 126, 116, 107, 138, 118, 112, 136, 125, 112, 99, 118, 98, 109, 116, 122, 93, 138, 131, 120, 105, 108, 114, 110, 111, 100, 109, 117, 117, 130, 119, 100, 104, 108, 114, 108, 112, 109, 113, 136, 111, 114, 117, 128, 106, 114, 107, 113, 137, 127, 117, 118, 119, 113, 111, 100, 127, 109, 122, 104, 107, 115, 136, 113, 119, 118, 130, 112, 107, 114, 117, 126, 125, 109, 111, 131, 109, 110, 125, 115, 110, 124, 113, 97, 133, 107, 122, 111, 113, 112, 119, 104, 137, 98, 109, 132, 111, 118, 106, 134, 125, 105, 112, 108, 111, 122, 120, 129, 97, 106, 118, 116, 123, 115, 98, 115, 113, 114, 124, 120, 119, 126, 112, 112, 109, 117, 123, 114, 115, 111, 126, 107, 122, 116, 111, 101, 112, 110, 107, 113, 109, 119, 122, 112, 116, 107, 130, 112, 98, 105, 117, 112, 108, 127, 130, 95, 123, 114, 128, 107, 108, 117, 102, 115, 119, 113, 111, 110, 111, 112, 115, 118, 116, 126, 128, 108, 115, 118, 119, 105, 119, 118, 103, 124, 104, 126, 101, 124, 116, 120, 115, 120, 115, 108, 107, 120, 113, 119, 120, 114, 114, 126, 130, 103, 118, 111, 109, 116, 109, 107, 129, 113, 95, 109, 110, 114, 103, 110, 114, 97, 124, 110, 105, 115, 131, 118, 119, 114, 116, 118, 104, 107, 115, 100, 120, 116, 115, 120, 116, 126, 107, 114, 116, 123, 110, 106, 106, 121, 132, 126, 111, 124, 112, 115, 111, 123, 121, 124, 107, 119, 117, 125, 130, 105, 143, 108, 126, 105, 103, 113, 113, 147, 92, 107, 131, 119, 111, 103, 100, 103, 118, 100, 123, 133, 125, 119, 114, 123, 116, 106, 112, 109, 122, 124, 122, 127, 114, 114, 118, 109, 115, 115, 110, 100, 118, 112, 110, 105, 104, 123, 119, 108, 135, 120, 120, 124, 110, 117, 107, 128, 105, 114, 118, 110, 112, 117, 120, 104, 106, 124, 117, 101, 108, 124, 107, 104, 112, 123, 106, 120, 105, 121, 107, 122, 123, 122, 136, 108, 119, 106, 108, 117, 107, 116, 112, 119, 119, 116, 116, 127, 126, 108, 116, 111, 117, 111, 113, 101, 105, 130, 111, 111, 117, 120, 109, 130, 109, 114, 121, 105, 111, 120, 114, 120, 124, 132, 104, 119, 116, 115, 120, 121, 109, 111, 114, 115, 110, 101, 107, 113, 114, 104, 124, 102, 101, 120, 125, 113, 124, 111, 108, 126, 108, 91, 110, 113, 111, 114, 109, 114, 119, 119, 115, 97, 114, 125, 112, 120, 108, 116, 109, 113, 101, 125, 112, 114, 114, 110, 110, 110, 106, 124, 104, 106, 118, 117, 104, 113, 110, 112, 121, 116, 112, 113, 118, 115, 115, 111, 125, 139, 124, 112, 119, 109, 118, 112, 113, 128, 117, 100, 116, 125, 105, 121, 112, 113, 116, 102, 105, 122, 109, 116, 107, 114, 119, 111, 125, 114, 111, 98, 117, 122, 118, 116, 122, 104, 118, 119, 112, 119, 114, 111, 119, 110, 119, 106, 105, 117, 83, 110, 108, 110, 85, 127, 111, 109, 123, 108, 114, 113, 121, 116, 118, 121, 101, 116, 110, 116, 125, 113, 126, 118, 121, 106, 118, 98, 118, 106, 112, 126, 119, 118, 124, 118, 112, 117, 110, 120, 120, 111, 118, 118, 116, 111, 122, 110, 119, 115, 118, 116, 114, 119, 115, 114, 119, 108, 123, 117, 113, 132, 114, 122, 110, 125, 112, 121, 117, 115, 119, 117, 113, 115, 120, 109, 125, 105, 109, 118, 122, 115, 122, 115, 118, 129, 119, 108, 116, 117, 119, 123, 110, 117, 108, 121, 119, 121, 119, 103, 114, 114, 123, 122, 119, 112, 117, 107, 123, 108, 107, 117, 115, 111, 118, 105, 127, 114, 113, 120, 116, 118, 118, 109, 117, 113, 111, 123, 115, 110, 125, 111, 116, 118, 113, 114, 119, 112, 119, 107, 117, 112, 114, 114, 115, 115, 108, 120, 110, 108, 112, 112, 123, 116, 127, 113, 114, 108, 112, 125, 124, 114, 121, 126, 102, 114, 112, 98, 102, 124, 100, 119, 120, 118, 109, 116, 120, 116, 117, 110, 110, 117, 108, 122, 114, 114, 123, 118, 120, 115, 114, 110, 108, 117, 107, 113, 128, 110, 115, 109, 112, 115, 117, 99, 116, 122, 120, 114, 117, 107, 111, 123, 121, 115, 111, 120, 104, 108, 118, 109, 118, 110, 138, 118, 110, 111, 115, 116, 118, 109, 126, 120, 110, 125, 121, 121, 127, 103, 116, 115, 113, 114, 124, 110, 103, 116, 115, 109, 117, 110, 118, 105, 123, 122, 112, 112, 118, 113, 115, 121, 122, 118, 117, 113, 122, 111, 113, 102, 111, 117, 118, 114, 112, 117, 122, 114, 116, 115, 121, 117, 117, 117, 122, 112, 116, 119, 118, 106, 112, 110, 112, 108, 116, 115, 118, 106, 126, 118, 112, 112, 110, 94, 116, 117, 113, 112, 106, 117, 113, 117, 123, 126, 122, 116, 113, 117, 116, 114, 129, 115, 106, 119, 128, 115, 119, 123, 110, 123, 116, 109, 111, 108, 116, 122, 129, 115, 107, 109, 126, 123, 118, 108, 112, 112, 118, 114, 114, 113, 113, 118, 121, 117, 95, 114, 112, 113, 114, 117, 117, 111, 111, 113, 113, 118, 107, 118, 111, 109, 106, 117, 120, 115, 109, 119, 115, 112, 112, 129, 117, 114, 116, 117, 118, 113, 123, 116, 115, 115, 103, 107, 118, 119, 115, 117, 112, 116, 114, 119, 118, 115, 114, 112, 117, 135, 112, 110, 113, 129, 121, 118, 120, 109, 152, 119, 123, 115, 117, 110, 116, 116, 114, 119, 116, 116, 121, 102, 118, 117, 111, 114, 109, 108, 117, 110, 113, 114, 119, 121, 106, 107, 116, 119, 112, 104, 110, 112, 115, 115, 114, 116, 110, 112, 113, 92, 110, 111, 117, 108, 109, 123, 121, 116, 106, 118, 120, 112, 117, 108, 104, 114, 108, 119, 121, 116, 112, 104, 122, 105, 121, 109, 111, 124, 119, 105, 122, 105, 112, 122, 116, 109, 107, 135, 114, 124, 112, 121, 117, 118, 108, 118, 128, 111, 124, 110, 122, 123, 114, 118, 109, 109, 109, 113, 106, 114, 123, 111, 107, 107, 108, 116, 109, 124, 118, 117, 114, 101, 103, 118, 107, 108, 115, 126, 110, 116, 109, 97, 120, 119, 115, 126, 134, 126, 117, 124, 117, 124, 117, 110, 119, 122, 108, 119, 115, 110, 117, 121, 97, 111, 105, 124, 103, 124, 120, 112, 115, 108, 114, 120, 114, 115, 112, 116, 109, 119, 116, 117, 108, 117, 107, 96, 128, 110, 113, 105, 116, 109, 117, 119, 112, 120, 114, 119, 103, 97, 105, 105, 116, 103, 116, 110, 109, 114, 105, 118, 116, 111, 115, 118, 108, 116, 119, 107, 114, 119, 121, 124, 106, 115, 115, 107, 101, 110, 134, 109, 110, 107, 120, 120, 124, 110, 115, 116, 118, 116, 115, 111, 115, 118, 120, 111, 113, 111, 117, 114, 115, 121, 121, 111, 118, 114, 124, 112, 117, 114, 113, 107, 125, 110, 127, 110, 127, 109, 112, 126, 128, 113, 99, 112, 108, 115, 114, 109, 123, 113, 121, 108, 121, 110, 113, 117, 118, 120, 114, 118, 122, 110, 106, 121, 116, 128, 117, 118, 115, 116, 119, 116, 96, 111, 126, 119, 112, 106, 124, 123, 119, 104, 133, 112, 123, 110, 108, 115, 115, 117, 108, 114, 109, 109, 110, 120, 122, 105, 133, 112, 125, 122, 124, 99, 116, 113, 117, 109, 107, 107, 117, 111, 115, 105, 111, 112, 122, 103, 122, 117, 114, 117, 111, 114, 115, 112, 107, 103, 121, 113, 115, 116, 126, 119, 119, 113, 115, 119, 122, 113, 111, 129, 111, 120, 114, 113, 116, 111, 121, 108, 107, 111, 114, 121, 124, 128, 116, 119, 116, 108, 108, 109, 116, 105, 114, 121, 109, 111, 113, 118, 120, 107, 115, 114, 114, 118, 125, 122, 111, 109, 122, 124, 120, 110, 121, 108, 109, 121, 105, 114, 115, 118, 119, 112, 120, 113, 113, 115, 110, 105, 121, 107, 115, 123, 105, 124, 116, 110, 116, 103, 112, 121, 120, 113, 119, 99, 126, 113, 120, 116, 119, 130, 124, 112, 117, 122, 117, 109, 104, 122, 116, 119, 115, 121, 125, 100, 114, 101, 124, 115, 114, 113, 110, 115, 120, 110, 121, 123, 109, 114, 120, 114, 120, 125, 121, 98, 112, 127, 107, 116, 116, 117, 133, 104, 131, 132, 116, 112, 129, 122, 107, 117, 121, 103, 118, 119, 118, 125, 104, 109, 140, 115, 109, 121, 124, 116, 85, 123, 110, 109, 113, 116, 109, 121, 118, 118, 109, 114, 122, 111, 116, 121, 113, 115, 112, 108, 103, 117, 117, 116, 122, 108, 117, 110, 125, 107, 123, 119, 132, 109, 111, 115, 119, 116, 109, 76, 115, 114, 113, 111, 119, 109, 107, 114, 119, 108, 109, 125, 106, 113, 115, 103, 111, 127, 96, 122, 113, 124, 107, 106, 111, 110, 112, 118, 111, 118, 122, 115, 109, 105, 122, 117, 114, 113, 110, 104, 113, 123, 115, 106, 111, 105, 123, 107, 125, 113, 119, 121, 130, 123, 128, 114, 115, 117, 111, 120, 116, 114, 112, 121, 116, 117, 119, 118, 118, 109, 122, 113, 120, 109, 114, 125, 106, 104, 116, 115, 116, 113, 108, 105, 119, 126, 117, 106, 119, 123, 113, 112, 110, 109, 114, 119, 120, 112, 118, 116, 107, 117, 120, 109, 101, 126, 107, 107, 130, 114, 106, 121, 117, 124, 106, 118, 119, 111, 117, 113, 101, 115, 125, 110, 109, 108, 114, 106, 112, 110, 110, 108, 109, 114, 123, 118, 120, 117, 110, 105, 116, 113, 119, 111, 109, 111, 122, 111, 108, 104, 113, 123, 108, 110, 117, 122, 107, 122, 111, 112, 117, 106, 113, 114, 109, 106, 115, 124, 114, 96, 117, 105, 116, 120, 114, 109, 108, 117, 121, 119, 118, 111, 106, 107, 122, 116, 112, 110, 126, 115, 119, 114, 118, 107, 115, 112, 109, 115, 113, 114, 110, 106, 109, 114, 105, 115, 121, 110, 115, 122, 113, 109, 122, 103, 122, 119, 119, 121, 117, 119, 107, 136, 109, 117, 115, 109, 115, 112, 108, 112, 118, 121, 115, 110, 121, 121, 134, 102, 108, 95, 113, 119, 115, 115, 112, 120, 122, 107, 121, 116, 121, 131, 109, 117, 114, 112, 116, 118, 112, 115, 115, 118, 119, 106, 121, 115, 108, 108, 116, 125, 116, 118, 114, 107, 112, 113, 123, 105, 115, 115, 110, 104, 108, 117, 119, 112, 118, 116, 127, 106, 127, 116, 121, 119, 113, 115, 110, 123, 124, 108, 117, 116, 120, 113, 102, 110, 122, 114, 106, 122, 117, 109, 116, 101, 101, 126, 121, 120, 117, 115, 114, 118, 107, 114, 113, 112, 115, 124, 125, 114, 107, 117, 132, 115, 112, 109, 114, 139, 114, 112, 120, 112, 109, 107, 114, 108, 123, 120, 107, 119, 118, 114, 114, 113, 122, 106, 94, 122, 108, 119, 117, 120, 100, 107, 114, 106, 118, 116, 110, 115, 113, 120, 111, 106, 114, 106, 120, 119, 117, 114, 115, 120, 95, 104, 130, 107, 120, 115, 110, 118, 117, 114, 101, 117, 128, 130, 118, 134, 116, 126, 125, 106, 123, 110, 111, 112, 126, 111, 104, 104, 116, 116, 107, 99, 103, 108, 127, 111, 122, 113, 116, 114, 118, 107, 119, 114, 117, 114, 113, 111, 123, 100, 112, 116, 112, 114, 113, 96, 112, 120, 117, 103, 128, 123, 111, 109, 110, 124, 103, 123, 110, 118, 106, 120, 116, 131, 119, 128, 110, 127, 118, 119, 112, 118, 119, 100, 117, 105, 119, 110, 115, 120, 114, 112, 129, 124, 119, 113, 115, 106, 106, 121, 117, 127, 119, 109, 113, 100, 113, 113, 121, 120, 113, 118, 117, 106, 120, 103, 116, 112, 116, 110, 122, 101, 114, 112, 103, 117, 110, 131, 116, 123, 119, 110, 101, 120, 123, 115, 106, 108, 108, 112, 116, 119, 116, 117, 107, 121, 116, 119, 119, 111, 113, 114, 105, 115, 105, 104, 113, 111, 117, 124, 120, 116, 114, 105, 122, 112, 123, 108, 110, 111, 113, 107, 119, 111, 110, 111, 126, 117, 114, 116, 137, 109, 103, 125, 116, 117, 117, 115, 119, 104, 108, 116, 114, 111, 112, 120, 128, 112, 126, 121, 97, 106, 111, 110, 104, 118, 117, 107, 109, 111, 119, 128, 111, 110, 107, 114, 122, 113, 111, 114, 125, 121, 123, 116, 110, 112, 97, 107, 102, 99, 119, 109, 124, 114, 123, 108, 111, 114, 103, 121, 107, 117, 110, 122, 106, 104, 115, 129, 131, 119, 117, 111, 115, 111, 118, 108, 113, 116, 136, 119, 108, 113, 101, 119, 125, 105, 115, 117, 114, 120, 125, 100, 124, 119, 115, 123, 117, 120, 112, 112, 114, 113, 121, 118, 120, 90, 122, 112, 109, 110, 119, 117, 112, 126, 93, 109, 124, 114, 121, 118, 113, 101, 112, 112, 118, 119, 107, 111, 115, 124, 110, 114, 110, 111, 113, 119, 125, 127, 114, 130, 112, 109, 108, 107, 120, 119, 121, 122, 123, 120, 90, 116, 99, 117, 104, 116, 122, 109, 113, 108, 110, 112, 122, 118, 104, 118, 119, 112, 113, 106, 117, 122, 123, 109, 115, 102, 113, 123, 113, 115, 110, 103, 105, 104, 117, 115, 111, 100, 123, 112, 117, 117, 110, 116, 113, 119, 126, 110, 116, 130, 106, 124, 132, 117, 119, 114, 116, 110, 124, 109, 126, 110, 111, 107, 118, 116, 109, 117, 104, 122, 115, 112, 134, 112, 113, 122, 109, 114, 122, 115, 114, 106, 115, 127, 120, 113, 100, 105, 113, 118, 112, 118, 115, 114, 109, 104, 110, 116, 113, 105, 120, 84, 116, 122, 111, 104, 113, 108, 116, 120, 118, 116, 121, 117, 113, 119, 117, 112, 129, 123, 115, 124, 109, 109, 117, 117, 109, 119, 119, 116, 114, 102, 118, 106, 126, 99, 113, 105, 110, 109, 124, 113, 108, 122, 124, 102, 114, 115, 110, 126, 116, 114, 112, 116, 121, 119, 109, 118, 108, 116, 113, 113, 115, 103, 115, 120, 121, 115, 119, 108, 102, 107, 109, 106, 114, 119, 109, 130, 115, 108, 114, 119, 112, 104, 111, 109, 113, 135, 114, 111, 131, 115, 119, 124, 116, 122, 107, 115, 145, 103, 116, 128, 106, 117, 112, 121, 117, 96, 115, 98, 117, 123, 105, 115, 111, 126, 105, 121, 120, 136, 124, 119, 122, 102, 112, 112, 118, 116, 109, 140, 114, 113, 107, 104, 118, 115, 112, 109, 109, 113, 114, 112, 121, 122, 115, 141, 116, 116, 107, 113, 102, 105, 113, 108, 102, 110, 118, 113, 137, 110, 114, 104, 117, 116, 118, 114, 117, 103, 104, 109, 118, 112, 117, 117, 121, 123, 114, 107, 125, 115, 118, 122, 97, 125, 113, 116, 114, 110, 112, 119, 113, 120, 112, 115, 115, 116, 113, 118, 105, 113, 109, 128, 105, 111, 126, 109, 111, 118, 125, 123, 118, 115, 113, 124, 123, 124, 123, 130, 123, 118, 124, 112, 98, 116, 110, 116, 118, 116, 109, 120, 124, 122, 119, 120, 116, 113, 121, 124, 116, 106, 121, 118, 117, 115, 117, 127, 113, 109, 119, 117, 121, 117, 116, 115, 112, 117, 115, 121, 116, 121, 111, 129, 114, 118, 122, 115, 119, 122, 116, 117, 115, 112, 122, 105, 113, 118, 104, 109, 103, 129, 117, 114, 111, 108, 116, 118, 109, 112, 123, 112, 110, 127, 125, 121, 119, 109, 112, 117, 120, 114, 110, 113, 120, 113, 117, 115, 127, 115, 120, 114, 114, 119, 123, 109, 109, 119, 116, 116, 98, 126, 113, 118, 113, 116, 121, 111, 125, 114, 119, 116, 122, 116, 119, 110, 109, 126, 116, 115, 112, 112, 116, 114, 123, 101, 123, 113, 119, 109, 120, 115, 123, 113, 113, 122, 118, 118, 120, 120, 115, 112, 117, 113, 118, 118, 121, 117, 112, 116, 118, 116, 124, 107, 115, 122, 110, 110, 112, 123, 107, 120, 114, 119, 121, 119, 119, 112, 114, 113, 103, 118, 128, 112, 114, 109, 110, 111, 117, 112, 109, 122, 115, 119, 111, 119, 115, 111, 111, 113, 123, 105, 120, 115, 114, 111, 124, 119, 117, 111, 117, 121, 127, 114, 120, 123, 119, 122, 115, 119, 106, 110, 111, 119, 114, 112, 115, 122, 114, 118, 122, 120, 118, 113, 127, 113, 116, 109, 114, 126, 115, 115, 119, 113, 101, 107, 117, 123, 111, 119, 112, 123, 119, 106, 114, 114, 111, 130, 113, 112, 109, 112, 119, 116, 121, 112, 120, 119, 107, 119, 110, 106, 126, 103, 112, 110, 114, 126, 113, 109, 115, 111, 122, 125, 109, 114, 104, 120, 115, 115, 120, 112, 116, 129, 109, 113, 107, 114, 121, 109, 111, 116, 118, 108, 108, 117, 115, 114, 114, 117, 117, 122, 129, 117, 115, 118, 115, 111, 125, 119, 118, 119, 120, 117, 110, 120, 119, 116, 123, 109, 124, 101, 116, 119, 119, 114, 110, 115, 111, 114, 120, 116, 118, 125, 114, 123, 114, 115, 121, 112, 113, 114, 125, 120, 115, 105, 103, 101, 111, 112, 116, 113, 116, 117, 120, 118, 113, 112, 114, 116, 118, 107, 126, 115, 109, 115, 110, 119, 108, 118, 122, 123, 110, 111, 112, 114, 118, 121, 110, 121, 130, 119, 108, 112, 111, 122, 114, 121, 119, 114, 119, 113, 123, 125, 116, 118, 118, 125, 112, 113, 114, 115, 118, 124, 106, 114, 113, 121, 121, 115, 108, 108, 110, 113, 113, 120, 105, 111, 114, 119, 113, 112, 112, 114, 117, 116, 110, 113, 122, 115, 118, 116, 117, 107, 116, 108, 120, 120, 116, 117, 113, 123, 116, 120, 115, 113, 119, 126, 121, 114, 115, 116, 108, 110, 115, 115, 117, 109, 107, 111, 109, 114, 121, 110, 113, 119, 114, 118, 123, 118, 108, 119, 112, 110, 123, 123, 112, 111, 116, 112, 119, 121, 119, 118, 118, 117, 122, 115, 115, 104, 112, 114, 113, 120, 121, 115, 112, 119, 111, 107, 115, 117, 115, 114, 118, 119, 109, 107, 118, 115, 125, 118, 109, 119, 109, 115, 116, 125, 97, 118, 119, 111, 113, 114, 120, 111, 116, 123, 113, 115, 133, 117, 113, 119, 124, 104, 94, 113, 105, 119, 111, 117, 120, 123, 125, 122, 111, 110, 115, 113, 117, 111, 118, 124, 107, 118, 113, 112, 118, 115, 110, 110, 116, 112, 120, 114, 122, 110, 111, 115, 108, 116, 120, 120, 117, 116, 111, 108, 119, 117, 108, 104, 109, 110, 113, 119, 107, 116, 122, 112, 116, 110, 108, 107, 116, 118, 119, 110, 112, 107, 108, 121, 115, 129, 119, 118, 126, 117, 109, 121, 126, 115, 100, 122, 111, 101, 120, 114, 118, 105, 123, 124, 130, 107, 115, 117, 116, 112, 102, 105, 126, 118, 111, 113, 121, 120, 120, 110, 113, 117, 105, 125, 115, 114, 119, 112, 110, 117, 119, 125, 112, 119, 118, 114, 113, 114, 119, 108, 120, 103, 124, 110, 118, 112, 113, 112, 117, 121, 119, 114, 123, 114, 120, 119, 123, 120, 98, 112, 112, 113, 127, 113, 115, 117, 112, 122, 101, 107, 104, 125, 114, 122, 118, 128, 128, 120, 118, 119, 115, 113, 113, 112, 119, 120, 126, 113, 113, 114, 118, 120, 114, 120, 118, 121, 114, 115, 107, 111, 122, 124, 116, 121, 113, 110, 125, 116, 119, 118, 123, 114, 113, 114, 110, 118, 116, 112, 112, 117, 115, 100, 103, 111, 112, 99, 120, 118, 108, 122, 123, 118, 119, 101, 101, 114, 110, 131, 121, 114, 115, 109, 114, 112, 123, 126, 115, 112, 117, 119, 112, 112, 124, 111, 106, 118, 123, 123, 123, 110, 107, 121, 111, 135, 116, 114, 124, 115, 115, 119, 104, 117, 104, 121, 111, 123, 114, 114, 125, 125, 110, 123, 116, 121, 109, 115, 115, 131, 113, 119, 120, 100, 133, 121, 113, 122, 108, 110, 116, 112, 128, 120, 115, 125, 118, 117, 118, 114, 124, 123, 115, 115, 118, 117, 121, 113, 120, 121, 112, 113, 124, 115, 112, 122, 126, 112, 112, 116, 117, 118, 127, 115, 117, 113, 109, 114, 112, 104, 120, 115, 114, 119, 115, 112, 106, 109, 124, 121, 104, 111, 121, 108, 112, 116, 119, 120, 123, 123, 107, 112, 125, 110, 110, 124, 107, 121, 118, 120, 119, 105, 114, 120, 113, 116, 122, 117, 117, 115, 107, 119, 120, 126, 111, 118, 120, 106, 110, 105, 116, 110, 107, 112, 116, 110, 115, 121, 116, 113, 116, 117, 120, 132, 116, 112, 118, 119, 121, 119, 112, 118, 120, 118, 109, 121, 118, 115, 111, 115, 112, 119, 117, 116, 111, 109, 118, 113, 115, 119, 109, 114, 115, 116, 111, 116, 113, 114, 121, 115, 112, 101, 118, 119, 114, 116, 119, 120, 112, 110, 122, 121, 117, 113, 116, 122, 122, 118, 117, 100, 106, 114, 119, 120, 108, 114, 102, 121, 113, 113, 105, 119, 122, 120, 116, 103, 116, 114, 117, 115, 106, 115, 112, 110, 111, 109, 116, 111, 116, 109, 121, 111, 108, 122, 102, 115, 109, 117, 115, 119, 111, 121, 111, 126, 114, 127, 118, 117, 115, 111, 122, 126, 116, 123, 125, 118, 117, 126, 117, 119, 120, 117, 107, 119, 113, 112, 121, 123, 111, 118, 116, 119, 104, 113, 118, 129, 129, 116, 120, 123, 121, 109, 118, 108, 112, 113, 104, 110, 134, 103, 119, 105, 120, 112, 106, 116, 121, 115, 101, 125, 112, 111, 120, 126, 111, 123, 86, 108, 113, 111, 114, 115, 113, 90, 104, 106, 86, 113, 118, 123, 84, 101, 120, 109, 100, 117, 104, 99, 127, 114, 110, 103, 113, 121, 116, 123, 92, 125, 112, 114, 124, 120, 126, 130, 111, 106, 106, 112, 137, 102, 132, 113, 110, 119, 105, 114, 114, 110, 119, 111, 115, 121, 114, 118, 110, 102, 127, 121, 109, 114, 123, 111, 110, 99, 118, 116, 113, 123, 107, 114, 116, 111, 119, 113, 110, 120, 80, 98, 110, 105, 115, 116, 105, 121, 109, 89, 115, 111, 107, 111, 125, 110, 105, 106, 93, 144, 110, 121, 109, 130, 116, 119, 117, 102, 110, 117, 125, 118, 114, 108, 119, 114, 101, 135, 110, 98, 138, 130, 121, 119, 107, 117, 120, 130, 119, 110, 114, 113, 112, 100, 129, 130, 119, 96, 114, 99, 105, 113, 116, 123, 117, 116, 119, 97, 117, 118, 124, 134, 104, 109, 103, 115, 114, 102, 112, 107, 112, 118, 104, 149, 107, 103, 121, 110, 121, 116, 115, 123, 120, 119, 116, 115, 114, 138, 127, 110, 118, 107, 115, 108, 121, 125, 114, 108, 110, 106, 104, 116, 106, 118, 107, 113, 120, 118, 113, 115, 120, 119, 118, 118, 122, 125, 136, 110, 117, 104, 113, 108, 98, 115, 129, 108, 124, 94, 120, 117, 139, 116, 85, 119, 104, 119, 122, 103, 113, 111, 98, 123, 125, 118, 110, 124, 107, 119, 113, 96, 121, 119, 110, 108, 119, 113, 105, 129, 109, 117, 122, 113, 131, 114, 120, 104, 117, 108, 111, 105, 116, 119, 109, 117, 120, 110, 110, 106, 119, 115, 125, 89, 99, 110, 106, 121, 115, 105, 124, 101, 118, 115, 107, 132, 113, 112, 118, 115, 122, 109, 114, 94, 114, 104, 116, 113, 110, 127, 122, 110, 127, 96, 141, 119, 110, 103, 111, 118, 101, 107, 122, 114, 115, 117, 119, 128, 110, 113, 131, 106, 118, 109, 118, 118, 114, 129, 125, 105, 113, 110, 117, 117, 106, 114, 96, 121, 110, 126, 110, 140, 105, 115, 121, 113, 110, 114, 119, 123, 101, 125, 112, 110, 118, 111, 102, 116, 111, 112, 119, 104, 111, 106, 126, 116, 122, 115, 109, 116, 119, 99, 107, 105, 109, 120, 102, 118, 115, 136, 126, 119, 124, 123, 108, 115, 117, 110, 111, 118, 98, 114, 115, 121, 116, 116, 95, 111, 122, 108, 104, 118, 99, 107, 117, 118, 94, 113, 110, 113, 113, 121, 114, 104, 112, 116, 99, 123, 110, 126, 122, 117, 118, 116, 127, 126, 103, 108, 106, 118, 124, 124, 152, 117, 106, 112, 117, 119, 117, 127, 114, 115, 107, 118, 112, 124, 112, 110, 125, 111, 122, 123, 127, 113, 112, 131, 124, 119, 115, 118, 111, 113, 104, 114, 117, 112, 112, 107, 118, 116, 117, 122, 115, 114, 116, 118, 125, 126, 114, 115, 105, 118, 127, 110, 116, 121, 127, 119, 125, 116, 114, 105, 121, 113, 120, 114, 113, 114, 120, 110, 108, 124, 116, 123, 114, 114, 117, 122, 119, 118, 112, 123, 126, 121, 129, 109, 109, 115, 122, 112, 121, 120, 121, 114, 113, 104, 133, 114, 104, 116, 127, 119, 112, 124, 117, 110, 107, 109, 111, 99, 119, 113, 115, 126, 103, 105, 128, 120, 123, 115, 131, 118, 138, 112, 116, 107, 116, 114, 117, 100, 133, 120, 114, 119, 125, 106, 110, 122, 101, 112, 116, 121, 125, 121, 120, 117, 117, 135, 130, 134, 113, 127, 100, 118, 111, 118, 114, 101, 119, 126, 106, 98, 118, 110, 111, 117, 124, 118, 107, 112, 115, 134, 109, 120, 119, 118, 107, 116, 116, 103, 121, 106, 115, 122, 108, 119, 117, 118, 119, 121, 115, 111, 121, 114, 111, 110, 112, 112, 117, 116, 101, 125, 113, 97, 131, 107, 111, 115, 105, 114, 115, 110, 124, 113, 120, 112, 117, 114, 115, 116, 117, 109, 108, 112, 110, 105, 106, 129, 118, 106, 110, 111, 114, 113, 110, 119, 117, 122, 124, 112, 110, 124, 117, 97, 112, 101, 103, 114, 106, 117, 119, 110, 122, 106, 104, 106, 86, 116, 123, 126, 105, 109, 114, 128, 111, 116, 117, 115, 118, 113, 110, 130, 114, 107, 113, 117, 114, 111, 124, 110, 117, 111, 109, 99, 112, 109, 107, 122, 115, 112, 110, 135, 118, 109, 129, 112, 119, 110, 117, 122, 107, 116, 121, 120, 113, 127, 114, 112, 117, 131, 110, 121, 121, 114, 116, 105, 122, 119, 108, 113, 119, 114, 106, 109, 116, 119, 124, 104, 103, 111, 120, 109, 117, 112, 107, 123, 117, 116, 124, 123, 129, 117, 111, 118, 116, 112, 107, 127, 98, 107, 119, 111, 112, 123, 111, 105, 118, 115, 116, 132, 110, 116, 118, 113, 102, 110, 114, 117, 114, 109, 100, 118, 109, 107, 113, 113, 123, 116, 121, 117, 123, 114, 118, 120, 117, 123, 120, 110, 116, 110, 126, 126, 110, 119, 100, 121, 110, 111, 104, 110, 129, 110, 136, 113, 111, 108, 115, 101, 110, 118, 107, 116, 115, 121, 121, 123, 119, 106, 115, 110, 123, 125, 113, 121, 127, 118, 128, 116, 122, 109, 124, 116, 116, 122, 126, 112, 135, 115, 112, 115, 128, 111, 111, 107, 98, 108, 113, 109, 112, 115, 126, 120, 121, 118, 113, 123, 131, 109, 116, 123, 104, 105, 116, 110, 108, 123, 118, 97, 126, 116, 137, 119, 103, 120, 111, 119, 123, 96, 114, 115, 111, 120, 114, 122, 113, 128, 125, 112, 116, 106, 111, 117, 100, 109, 104, 110, 108, 119, 108, 109, 118, 113, 108, 113, 116, 114, 111, 114, 115, 118, 100, 113, 117, 106, 109, 116, 130, 107, 120, 110, 106, 109, 121, 148, 132, 113, 116, 116, 125, 121, 110, 103, 123, 120, 119, 127, 114, 113, 111, 116, 117, 102, 111, 116, 114, 118, 110, 121, 126, 105, 115, 109, 115, 105, 116, 116, 118, 113, 106, 111, 115, 114, 119, 113, 115, 120, 119, 125, 111, 115, 120, 118, 114, 119, 121, 112, 122, 118, 114, 120, 119, 120, 111, 117, 121, 114, 122, 120, 113, 118, 121, 125, 112, 104, 120, 121, 110, 123, 117, 121, 109, 113, 115, 120, 119, 109, 116, 116, 113, 122, 118, 112, 117, 113, 120, 118, 118, 122, 121, 113, 115, 121, 118, 104, 114, 110, 119, 111, 118, 113, 114, 116, 117, 110, 110, 108, 116, 123, 108, 120, 113, 114, 112, 113, 118, 115, 118, 119, 109, 121, 117, 114, 115, 120, 118, 117, 121, 114, 111, 112, 112, 111, 121, 106, 107, 117, 113, 113, 124, 108, 110, 119, 109, 117, 116, 117, 107, 111, 114, 116, 116, 115, 119, 116, 114, 114, 116, 112, 117, 111, 116, 113, 116, 122, 117, 117, 122, 114, 117, 117, 123, 112, 115, 119, 120, 115, 111, 112, 121, 120, 103, 112, 115, 120, 119, 119, 111, 121, 108, 118, 111, 104, 120, 118, 107, 119, 119, 114, 116, 115, 115, 111, 117, 115, 117, 112, 119, 111, 119, 116, 109, 115, 116, 120, 121, 117, 122, 106, 111, 106, 107, 121, 119, 115, 121, 123, 114, 112, 112, 116, 111, 119, 118, 106, 109, 114, 121, 111, 111, 115, 117, 112, 114, 120, 117, 110, 114, 119, 111, 119, 113, 119, 113, 124, 117, 110, 116, 120, 128, 112, 113, 119, 112, 115, 123, 118, 122, 119, 112, 116, 117, 112, 121, 118, 125, 115, 114, 119, 113, 113, 111, 112, 119, 114, 112, 114, 115, 117, 111, 122, 117, 117, 113, 116, 117, 111, 121, 122, 118, 112, 117, 106, 111, 110, 120, 113, 110, 112, 116, 124, 123, 114, 107, 113, 114, 108, 115, 110, 113, 114, 118, 109, 115, 123, 119, 121, 110, 111, 115, 122, 117, 116, 112, 115, 115, 116, 117, 130, 117, 115, 115, 113, 110, 115, 117, 113, 121, 131, 115, 109, 111, 111, 113, 118, 115, 118, 122, 115, 114, 113, 118, 109, 119, 109, 108, 121, 112, 114, 116, 98, 114, 120, 117, 105, 115, 117, 113, 113, 114, 115, 110, 109, 114, 117, 112, 118, 119, 109, 114, 120, 115, 121, 111, 120, 119, 108, 113, 114, 119, 118, 111, 117, 114, 112, 114, 117, 124, 112, 115, 110, 117, 117, 113, 111, 116, 115, 108, 113, 119, 113, 115, 110, 119, 116, 115, 117, 119, 114, 111, 113, 106, 107, 116, 114, 121, 123, 115, 110, 115, 111, 117, 112, 113, 116, 115, 113, 121, 119, 113, 105, 113, 115, 110, 114, 120, 111, 109, 115, 120, 119, 114, 113, 113, 112, 121, 122, 111, 112, 108, 119, 118, 115, 115, 125, 119, 114, 117, 119, 122, 116, 122, 125, 113, 120, 113, 111, 111, 107, 117, 119, 116, 114, 112, 114, 117, 120, 120, 118, 118, 116, 117, 120, 118, 122, 117, 113, 114, 117, 113, 113, 110, 120, 111, 119, 111, 121, 117, 121, 121, 124, 116, 113, 116, 118, 114, 117, 104, 118, 104, 105, 127, 99, 100, 128, 114, 121, 112, 108, 117, 123, 119, 113, 118, 111, 117, 110, 113, 135, 113, 115, 119, 124, 122, 116, 124, 120, 103, 130, 103, 111, 121, 102, 130, 100, 131, 101, 117, 115, 122, 125, 115, 126, 113, 113, 121, 128, 110, 122, 112, 111, 111, 117, 113, 119, 110, 110, 131, 102, 105, 115, 100, 106, 112, 109, 107, 122, 120, 115, 115, 122, 125, 111, 125, 109, 109, 115, 134, 126, 107, 126, 121, 119, 111, 109, 107, 113, 118, 120, 124, 114, 104, 125, 111, 114, 99, 124, 119, 105, 102, 126, 105, 108, 113, 111, 118, 117, 122, 103, 116, 117, 110, 105, 118, 117, 108, 122, 125, 104, 125, 101, 106, 119, 122, 122, 110, 108, 113, 109, 120, 112, 115, 109, 125, 107, 118, 120, 120, 123, 112, 115, 114, 113, 109, 110, 121, 145, 114, 120, 126, 119, 123, 110, 122, 115, 118, 128, 108, 116, 111, 119, 121, 106, 111, 119, 120, 108, 111, 114, 115, 115, 111, 114, 113, 139, 113, 121, 115, 121, 111, 120, 137, 121, 92, 119, 110, 121, 110, 110, 122, 99, 116, 118, 119, 100, 124, 140, 101, 128, 120, 116, 113, 108, 116, 116, 113, 112, 131, 121, 122, 109, 108, 127, 111, 107, 125, 113, 120, 110, 101, 123, 125, 128, 124, 116, 137, 121, 115, 97, 110, 106, 116, 109, 108, 113, 121, 115, 113, 106, 112, 108, 119, 104, 105, 126, 126, 116, 117, 109, 127, 115, 116, 107, 101, 114, 124, 99, 110, 112, 113, 106, 102, 116, 130, 120, 113, 114, 124, 116, 117, 110, 108, 117, 126, 115, 123, 112, 118, 107, 110, 123, 118, 120, 128, 109, 132, 117, 119, 113, 124, 124, 115, 125, 130, 111, 121, 126, 129, 113, 117, 109, 108, 108, 108, 109, 107, 116, 123, 123, 106, 118, 108, 107, 113, 106, 119, 124, 120, 115, 117, 95, 121, 110, 138, 126, 135, 120, 110, 114, 128, 104, 101, 127, 129, 122, 113, 119, 110, 117, 114, 120, 121, 101, 130, 130, 123, 117, 111, 122, 102, 125, 118, 102, 124, 119, 119, 125, 126, 108, 118, 110, 100, 111, 112, 127, 115, 105, 121, 110, 126, 128, 115, 119, 132, 100, 113, 113, 121, 109, 119, 116, 112, 117, 128, 103, 119, 108, 123, 113, 128, 111, 109, 99, 108, 119, 124, 114, 143, 125, 102, 121, 115, 107, 116, 124, 114, 112, 128, 119, 116, 106, 112, 114, 121, 110, 113, 111, 116, 134, 113, 110, 108, 128, 131, 109, 104, 119, 120, 101, 118, 114, 115, 107, 109, 99, 112, 101, 105, 114, 106, 114, 119, 121, 116, 111, 119, 116, 109, 110, 132, 119, 122, 128, 121, 111, 98, 133, 123, 115, 107, 107, 114, 105, 121, 110, 122, 118, 129, 123, 110, 125, 124, 109, 113, 113, 112, 112, 109, 121, 126, 124, 125, 120, 123, 113, 118, 120, 110, 119, 112, 107, 121, 109, 112, 108, 117, 114, 115, 120, 119, 114, 127, 103, 101, 123, 121, 111, 124, 117, 108, 107, 111, 106, 122, 117, 108, 115, 138, 111, 108, 126, 114, 115, 100, 132, 118, 122, 111, 103, 119, 98, 122, 99, 109, 103, 114, 116, 109, 119, 104, 99, 117, 124, 125, 108, 109, 127, 110, 112, 127, 113, 116, 122, 118, 129, 109, 112, 113, 124, 120, 110, 118, 102, 106, 102, 120, 119, 102, 107, 115, 91, 110, 106, 120, 127, 110, 103, 119, 110, 99, 104, 115, 119, 106, 109, 125, 131, 116, 118, 114, 108, 115, 123, 108, 132, 115, 111, 117, 116, 107, 124, 107, 108, 103, 115, 126, 103, 103, 116, 112, 101, 117, 123, 121, 103, 125, 110, 111, 116, 116, 107, 116, 109, 127, 111, 116, 110, 107, 111, 119, 116, 105, 107, 121, 127, 133, 117, 112, 118, 108, 127, 116, 111, 108, 127, 115, 112, 110, 96, 99, 120, 128, 117, 112, 106, 110, 97, 125, 113, 115, 109, 113, 109, 116, 115, 116, 111, 117, 124, 115, 130, 109, 107, 112, 133, 112, 121, 123, 123, 127, 126, 94, 114, 168, 121, 120, 121, 107, 112, 110, 107, 120, 128, 120, 121, 109, 113, 127, 117, 109, 116, 112, 105, 112, 116, 112, 106, 106, 112, 113, 113, 123, 122, 129, 102, 123, 112, 123, 114, 109, 107, 128, 112, 100, 119, 105, 120, 115, 114, 112, 126, 121, 113, 121, 129, 130, 103, 113, 112, 112, 108, 121, 108, 119, 115, 107, 99, 116, 129, 116, 112, 109, 110, 128, 114, 103, 119, 98, 111, 104, 104, 122, 117, 112, 122, 105, 119, 110, 122, 122, 106, 106, 100, 91, 104, 119, 116, 149, 125, 118, 119, 117, 123, 102, 116, 119, 118, 115, 120, 114, 110, 112, 120, 112, 110, 113, 104, 127, 114, 124, 109, 113, 112, 114, 94, 98, 103, 99, 120, 107, 128, 118, 114, 103, 101, 107, 121, 129, 114, 118, 99, 100, 116, 116, 121, 116, 105, 120, 113, 105, 94, 119, 110, 96, 113, 121, 104, 105, 117, 129, 112, 116, 117, 105, 111, 108, 107, 95, 126, 118, 114, 114, 115, 127, 99, 120, 126, 132, 111, 109, 122, 130, 119, 121, 124, 101, 115, 127, 109, 116, 116, 113, 128, 110, 110, 106, 111, 97, 110, 121, 109, 119, 116, 98, 113, 100, 109, 117, 116, 124, 115, 130, 110, 99, 111, 102, 113, 118, 106, 96, 107, 123, 123, 112, 128, 116, 120, 119, 111, 126, 120, 108, 98, 118, 124, 107, 111, 118, 113, 114, 120, 114, 115, 119, 121, 108, 119, 116, 123, 109, 97, 120, 128, 107, 117, 114, 107, 109, 125, 113, 120, 102, 117, 114, 109, 104, 118, 115, 129, 123, 119, 112, 108, 116, 115, 131, 123, 112, 114, 119, 122, 130, 121, 110, 107, 118, 127, 125, 123, 105, 129, 126, 95, 112, 104, 116, 102, 117, 109, 133, 112, 123, 108, 107, 112, 111, 98, 127, 112, 101, 121, 106, 115, 125, 118, 107, 117, 99, 114, 123, 119, 120, 127, 121, 114, 113, 98, 122, 122, 110, 113, 116, 128, 118, 117, 108, 138, 124, 130, 114, 116, 130, 125, 123, 105, 124, 126, 116, 113, 123, 120, 120, 111, 108, 132, 120, 99, 125, 122, 113, 116, 115, 126, 115, 107, 109, 102, 123, 131, 112, 120, 106, 117, 140, 140, 106, 111, 123, 125, 114, 137, 127, 109, 124, 127, 115, 133, 102, 114, 109, 116, 118, 133, 114, 128, 120, 137, 108, 126, 102, 118, 106, 122, 110, 114, 119, 114, 115, 93, 113, 123, 117, 116, 111, 104, 113, 105, 101, 113, 108, 125, 111, 124, 117, 113, 114, 114, 118, 119, 122, 116, 112, 133, 122, 118, 105, 115, 115, 119, 116, 125, 120, 110, 128, 118, 115, 108, 121, 120, 126, 101, 126, 112, 119, 112, 110, 112, 109, 101, 115, 109, 129, 101, 125, 120, 108, 114, 116, 107, 99, 108, 115, 105, 110, 120, 120, 117, 111, 113, 117, 124, 117, 113, 117, 119, 115, 113, 125, 112, 106, 117, 110, 117, 109, 124, 116, 119, 129, 111, 124, 112, 111, 114, 100, 107, 103, 115, 113, 128, 119, 111, 109, 112, 100, 114, 125, 114, 126, 112, 108, 119, 121, 119, 113, 115, 108, 110, 117, 112, 117, 123, 126, 94, 119, 112, 125, 110, 129, 116, 121, 111, 99, 134, 113, 120, 122, 109, 124, 118, 108, 101, 114, 121, 122, 120, 121, 122, 117, 113, 123, 115, 113, 121, 118, 108, 117, 116, 113, 125, 105, 116, 112, 127, 110, 109, 122, 128, 126, 116, 118, 110, 110, 126, 119, 114, 113, 131, 120, 117, 117, 109, 112, 110, 115, 97, 109, 115, 108, 124, 111, 119, 109, 111, 102, 112, 106, 117, 123, 129, 112, 116, 104, 115, 116, 115, 127, 105, 115, 116, 122, 113, 125, 124, 126, 104, 121, 110, 108, 115, 119, 117, 114, 110, 127, 113, 120, 106, 102, 126, 125, 121, 111, 117, 113, 114, 120, 112, 102, 119, 114, 111, 114, 120, 110, 131, 117, 110, 113, 120, 133, 109, 118, 120, 122, 111, 121, 110, 116, 115, 117, 114, 121, 123, 123, 110, 122, 107, 109, 115, 107, 103, 116, 114, 124, 122, 117, 123, 120, 122, 115, 119, 128, 109, 109, 112, 111, 129, 128, 119, 111, 126, 117, 129, 125, 123, 127, 115, 110, 111, 107, 107, 113, 127, 124, 130, 124, 115, 124, 122, 99, 115, 119, 120, 124, 116, 112, 126, 115, 124, 110, 114, 126, 121, 135, 100, 130, 101, 117, 117, 130, 124, 113, 124, 112, 119, 119, 122, 113, 140, 126, 133, 114, 112, 115, 108, 117, 111, 112, 122, 111, 103, 134, 114, 117, 127, 111, 120, 124, 120, 121, 103, 128, 106, 100, 118, 124, 110, 129, 134, 117, 110, 132, 122, 116, 113, 123, 116, 109, 112, 117, 107, 114, 107, 112, 119, 115, 118, 127, 119, 132, 103, 105, 115, 109, 113, 125, 116, 107, 110, 112, 123, 129, 117, 110, 136, 120, 110, 120, 109, 107, 112, 138, 109, 118, 114, 123, 112, 125, 114, 131, 140, 117, 111, 116, 116, 112, 115, 116, 108, 111, 127, 118, 119, 109, 124, 117, 106, 127, 111, 117, 121, 105, 118, 125, 113, 115, 105, 111, 131, 113, 122, 110, 113, 122, 111, 131, 114, 128, 119, 125, 117, 113, 101, 118, 102, 115, 119, 115, 118, 112, 105, 107, 122, 114, 112, 113, 121, 119, 120, 110, 118, 124, 113, 133, 115, 116, 106, 111, 115, 123, 118, 123, 116, 123, 106, 111, 124, 99, 113, 108, 123, 113, 111, 131, 109, 117, 115, 123, 107, 114, 113, 119, 117, 113, 115, 120, 125, 116, 122, 117, 120, 133, 115, 126, 132, 113, 115, 116, 110, 118, 113, 124, 129, 131, 123, 102, 111, 118, 109, 112, 116, 98, 117, 107, 121, 101, 111, 123, 95, 102, 117, 124, 110, 123, 109, 120, 117, 107, 114, 107, 115, 115, 117, 109, 125, 120, 110, 102, 115, 88, 117, 119, 131, 120, 114, 113, 114, 135, 120, 128, 122, 120, 124, 103, 109, 123, 105, 122, 125, 106, 113, 112, 121, 121, 116, 137, 113, 115, 120, 118, 114, 123, 118, 117, 126, 126, 128, 106, 115, 106, 122, 118, 108, 104, 116, 121, 110, 111, 116, 119, 124, 109, 117, 109, 103, 126, 128, 134, 115, 108, 122, 111, 114, 114, 100, 104, 112, 120, 119, 104, 120, 100, 110, 114, 101, 113, 112, 124, 130, 119, 110, 109, 143, 113, 116, 117, 117, 101, 115, 110, 119, 123, 106, 122, 113, 116, 130, 122, 124, 114, 108, 130, 126, 114, 120, 111, 111, 103, 120, 119, 108, 118, 122, 113, 131, 114, 123, 112, 120, 110, 105, 124, 114, 118, 112, 119, 120, 118, 142, 109, 126, 124, 110, 114, 129, 108, 104, 123, 127, 113, 113, 102, 109, 120, 108, 112, 115, 120, 127, 116, 107, 108, 114, 115, 101, 121, 101, 108, 122, 109, 130, 121, 106, 125, 107, 119, 119, 98, 109, 123, 108, 120, 120, 104, 118, 116, 126, 119, 126, 102, 112, 121, 103, 115, 119, 123, 119, 114, 125, 115, 110, 131, 120, 123, 115, 116, 111, 124, 120, 117, 119, 115, 115, 109, 111, 130, 119, 117, 119, 121, 121, 114, 106, 107, 103, 122, 114, 114, 120, 112, 119, 111, 119, 123, 129, 122, 107, 110, 111, 112, 118, 108, 118, 133, 122, 109, 117, 106, 120, 108, 116, 113, 102, 124, 118, 129, 110, 121, 104, 126, 101, 116, 121, 125, 113, 109, 146, 108, 123, 120, 110, 112, 112, 122, 114, 121, 122, 111, 100, 110, 120, 120, 92, 123, 122, 128, 109, 104, 103, 99, 112, 124, 112, 109, 121, 106, 109, 107, 108, 104, 106, 119, 108, 115, 119, 115, 123, 115, 116, 105, 107, 101, 116, 128, 121, 108, 128, 107, 124, 106, 113, 114, 135, 117, 92, 114, 114, 108, 107, 107, 130, 116, 119, 111, 113, 115, 128, 118, 120, 120, 115, 106, 126, 103, 115, 118, 124, 103, 116, 123, 117, 116, 127, 125, 117, 121, 107, 108, 121, 111, 109, 99, 103, 117, 120, 113, 97, 111, 124, 120, 113, 113, 111, 121, 122, 124, 113, 117, 118, 117, 127, 111, 109, 128, 108, 102, 122, 116, 112, 117, 103, 125, 99, 123, 106, 103, 106, 122, 142, 132, 114, 99, 113, 127, 118, 127, 129, 110, 128, 121, 108, 121, 122, 112, 142, 113, 116, 114, 115, 115, 102, 120, 114, 114, 110, 123, 118, 111, 105, 137, 93, 111, 97, 118, 115, 135, 114, 123, 107, 110, 112, 113, 105, 115, 118, 120, 109, 114, 106, 108, 108, 132, 110, 111, 110, 138, 123, 117, 117, 124, 109, 111, 109, 103, 118, 121, 119, 123, 113, 115, 112, 115, 129, 100, 119, 110, 98, 123, 110, 114, 115, 102, 103, 118, 113, 120, 113, 119, 113, 118, 95, 124, 118, 118, 123, 111, 117, 107, 115, 126, 121, 102, 109, 119, 120, 115, 104, 114, 122, 110, 113, 126, 122, 117, 118, 114, 112, 92, 116, 125, 109, 124, 105, 104, 109, 108, 114, 109, 119, 111, 107, 118, 120, 116, 116, 107, 117, 129, 110, 102, 111, 115, 111, 113, 118, 118, 116, 111, 132, 120, 114, 98, 116, 112, 102, 115, 115, 128, 129, 98, 121, 113, 119, 123, 114, 121, 116, 104, 92, 123, 109, 118, 108, 110, 115, 121, 127, 117, 106, 112, 121, 103, 113, 110, 121, 139, 108, 106, 121, 111, 101, 112, 135, 119, 114, 108, 98, 124, 107, 117, 109, 135, 111, 118, 117, 113, 120, 112, 102, 124, 96, 99, 114, 110, 108, 114, 117, 111, 127, 126, 109, 121, 117, 132, 106, 114, 116, 118, 122, 120, 114, 115, 110, 105, 127, 118, 122, 115, 104, 97, 110, 117, 113, 122, 110, 116, 106, 121, 111, 108, 114, 103, 119, 127, 145, 120, 121, 114, 106, 131, 110, 126, 107, 105, 98, 114, 117, 105, 116, 99, 125, 130, 120, 107, 99, 116, 129, 111, 110, 99, 111, 121, 122, 120, 114, 115, 106, 102, 109, 114, 114, 100, 109, 101, 100, 103, 124, 114, 110, 129, 113, 119, 121, 106, 113, 108, 131, 114, 130, 127, 121, 121, 108, 115, 117, 122, 127, 127, 111, 125, 124, 135, 124, 119, 130, 128, 104, 101, 113, 127, 125, 122, 118, 120, 125, 108, 116, 123, 106, 117, 123, 120, 113, 126, 109, 125, 97, 124, 119, 129, 106, 106, 112, 109, 114, 105, 117, 110, 115, 112, 129, 106, 108, 103, 111, 120, 119, 126, 126, 114, 121, 111, 117, 109, 123, 133, 106, 113, 115, 121, 111, 102, 118, 114, 86, 115, 109, 132, 118, 109, 108, 121, 109, 109, 126, 103, 108, 103, 116, 104, 128, 117, 116, 118, 102, 116, 110, 104, 112, 110, 113, 119, 115, 110, 125, 108, 122, 126, 111, 115, 100, 116, 113, 132, 118, 120, 117, 106, 116, 105, 101, 106, 127, 112, 109, 107, 103, 112, 124, 102, 125, 113, 106, 117, 127, 111, 118, 103, 112, 110, 122, 105, 133, 118, 120, 127, 112, 109, 112, 127, 116, 101, 114, 112, 150, 116, 125, 140, 119, 110, 103, 102, 110, 107, 102, 106, 125, 121, 94, 125, 113, 114, 108, 118, 97, 130, 110, 128, 116, 119, 113, 104, 121, 105, 118, 129, 106, 120, 108, 114, 109, 100, 136, 126, 110, 119, 104, 115, 107, 113, 116, 117, 113, 125, 101, 114, 112, 113, 116, 109, 126, 125, 110, 123, 121, 104, 123, 115, 112, 109, 110, 111, 107, 118, 109, 101, 106, 118, 112, 106, 107, 111, 119, 111, 127, 109, 118, 119, 120, 125, 108, 112, 114, 121, 119, 124, 119, 109, 115, 122, 105, 126, 121, 116, 119, 119, 117, 109, 114, 125, 114, 121, 108, 126, 116, 114, 121, 116, 103, 124, 116, 107, 118, 109, 107, 109, 98, 111, 113, 111, 115, 106, 114, 106, 115, 111, 121, 117, 112, 109, 119, 122, 111, 129, 115, 113, 110, 102, 107, 115, 116, 115, 110, 112, 119, 115, 120, 119, 114, 115, 118, 119, 126, 111, 115, 99, 125, 115, 123, 119, 112, 108, 107, 106, 124, 126, 106, 117, 132, 119, 104, 119, 108, 122, 123, 120, 114, 118, 121, 116, 123, 120, 133, 114, 110, 114, 123, 124, 111, 118, 114, 126, 110, 104, 115, 115, 107, 111, 116, 118, 110, 120, 127, 114, 118, 110, 111, 121, 108, 107, 124, 114, 110, 120, 114, 117, 108, 124, 111, 111, 114, 111, 126, 100, 127, 104, 116, 118, 127, 120, 121, 113, 117, 103, 117, 103, 110, 112, 113, 101, 115, 112, 112, 120, 107, 111, 117, 119, 113, 128, 121, 104, 111, 113, 106, 111, 121, 127, 102, 120, 118, 120, 103, 123, 113, 125, 110, 104, 118, 107, 113, 115, 111, 112, 119, 112, 109, 121, 126, 113, 110, 101, 117, 109, 109, 131, 121, 119, 116, 108, 114, 118, 113, 115, 115, 117, 110, 124, 110, 113, 115, 114, 115, 110, 116, 103, 102, 120, 94, 122, 117, 105, 115, 104, 126, 134, 110, 113, 118, 118, 110, 111, 120, 117, 115, 111, 107, 103, 123, 108, 136, 119, 109, 134, 115, 117, 121, 124, 103, 118, 119, 106, 109, 113, 112, 97, 122, 110, 126, 117, 109, 121, 118, 110, 106, 117, 113, 117, 127, 122, 113, 112, 108, 118, 116, 130, 107, 113, 125, 103, 108, 111, 114, 113, 118, 113, 114, 118, 119, 113, 121, 119, 112, 117, 130, 118, 112, 112, 104, 129, 118, 119, 120, 121, 117, 114, 111, 113, 123, 124, 113, 124, 116, 111, 108, 116, 130, 123, 112, 108, 110, 111, 125, 114, 107, 128, 105, 118, 104, 110, 104, 127, 109, 127, 106, 120, 110, 110, 111, 114, 99, 128, 116, 124, 105, 120, 119, 119, 125, 116, 116, 95, 128, 111, 125, 126, 112, 114, 93, 113, 117, 113, 108, 117, 117, 120, 123, 119, 127, 121, 109, 128, 117, 127, 112, 103, 109, 103, 110, 112, 131, 117, 114, 119, 102, 127, 114, 107, 101, 116, 106, 121, 123, 107, 114, 117, 117, 110, 121, 119, 119, 116, 112, 111, 132, 104, 119, 113, 110, 109, 116, 105, 106, 119, 119, 123, 127, 91, 118, 112, 106, 130, 109, 114, 120, 119, 104, 109, 114, 104, 116, 114, 106, 110, 103, 108, 111, 117, 116, 112, 113, 114, 112, 121, 109, 127, 112, 101, 108, 124, 112, 126, 112, 113, 124, 105, 110, 113, 121, 128, 82, 112, 111, 105, 131, 115, 85, 109, 116, 110, 116, 102, 130, 109, 100, 121, 103, 115, 124, 132, 92, 110, 107, 119, 130, 108, 123, 110, 113, 150, 106, 121, 113, 124, 106, 111, 121, 111, 112, 103, 114, 129, 115, 112, 116, 105, 110, 119, 120, 133, 129, 118, 106, 118, 104, 125, 99, 103, 129, 111, 115, 112, 119, 116, 113, 115, 119, 122, 123, 119, 121, 114, 118, 115, 114, 119, 110, 99, 124, 109, 131, 129, 116, 132, 124, 122, 97, 115, 118, 109, 104, 112, 100, 107, 108, 125, 119, 114, 101, 114, 116, 114, 116, 127, 189, 117, 123, 124, 117, 108, 117, 107, 114, 120, 107, 126, 115, 133, 111, 120, 117, 127, 118, 115, 111, 121, 108, 112, 122, 109, 109, 105, 111, 118, 105, 102, 117, 120, 128, 112, 113, 102, 109, 118, 111, 113, 116, 115, 118, 117, 116, 126, 121, 126, 113, 118, 118, 118, 92, 111, 109, 125, 113, 123, 115, 95, 118, 112, 121, 111, 117, 118, 120, 121, 102, 109, 116, 118, 120, 113, 121, 128, 111, 118, 125, 118, 120, 110, 114, 112, 123, 115, 121, 112, 107, 125, 109, 126, 120, 145, 121, 109, 115, 103, 107, 115, 121, 117, 128, 112, 109, 105, 113, 120, 109, 120, 104, 114, 117, 117, 125, 110, 124, 112, 113, 117, 112, 112, 126, 120, 125, 119, 113, 121, 102, 127, 114, 121, 122, 123, 120, 114, 117, 113, 119, 113, 115, 117, 110, 119, 125, 110, 129, 119, 113, 127, 103, 124, 91, 105, 117, 116, 103, 112, 115, 114, 113, 117, 119, 118, 110, 114, 119, 88, 111, 133, 104, 108, 116, 110, 116, 128, 117, 117, 116, 125, 117, 117, 115, 119, 123, 120, 113, 123, 109, 107, 128, 119, 116, 124, 121, 114, 118, 122, 109, 118, 116, 101, 109, 109, 112, 103, 117, 139, 118, 118, 106, 123, 108, 120, 150, 111, 116, 101, 114, 96, 113, 125, 120, 119, 118, 123, 131, 119, 98, 113, 108, 121, 106, 118, 110, 119, 123, 101, 125, 119, 117, 124, 124, 113, 122, 130, 127, 109, 113, 114, 107, 120, 120, 125, 111, 116, 117, 120, 121, 117, 115, 126, 124, 137, 120, 101, 103, 132, 118, 112, 111, 112, 123, 119, 120, 106, 114, 118, 105, 105, 118, 111, 115, 104, 100, 119, 113, 113, 121, 114, 107, 110, 133, 125, 111, 111, 118, 119, 112, 112, 123, 121, 126, 119, 116, 120, 107, 114, 111, 120, 116, 114, 118, 95, 115, 118, 123, 112, 118, 119, 113, 109, 124, 128, 115, 97, 118, 119, 111, 110, 124, 118, 123, 111, 116, 121, 119, 115, 116, 121, 121, 121, 120, 129, 117, 116, 120, 103, 119, 105, 118, 106, 115, 117, 107, 119, 125, 114, 110, 108, 124, 136, 117, 98, 107, 146, 121, 125, 94, 102, 114, 110, 97, 127, 110, 121, 116, 119, 117, 116, 109, 114, 114, 115, 127, 121, 111, 115, 113, 113, 106, 110, 121, 112, 111, 114, 116, 119, 100, 135, 115, 119, 111, 102, 93, 117, 121, 111, 123, 114, 105, 110, 123, 110, 112, 125, 128, 113, 108, 110, 110, 125, 107, 129, 117, 113, 118, 118, 123, 117, 109, 120, 117, 117, 103, 116, 126, 111, 107, 116, 130, 109, 118, 117, 103, 117, 115, 117, 122, 125, 128, 109, 112, 108, 123, 121, 110, 115, 118, 124, 115, 113, 122, 111, 122, 102, 115, 119, 112, 120, 113, 114, 111, 115, 122, 115, 119, 108, 110, 117, 113, 117, 112, 121, 106, 115, 116, 117, 118, 128, 111, 114, 116, 120, 116, 120, 124, 115, 114, 119, 113, 109, 122, 111, 115, 118, 115, 117, 116, 116, 107, 108, 119, 122, 110, 128, 126, 119, 125, 113, 113, 118, 125, 109, 108, 109, 101, 119, 107, 108, 114, 114, 120, 121, 108, 122, 113, 120, 113, 111, 122, 117, 103, 116, 117, 110, 113, 115, 126, 124, 126, 109, 124, 126, 112, 128, 109, 106, 108, 110, 115, 122, 114, 122, 124, 109, 108, 102, 108, 110, 117, 122, 124, 118, 126, 112, 113, 113, 111, 113, 115, 117, 109, 119, 117, 133, 109, 121, 119, 144, 118, 123, 116, 102, 112, 118, 110, 117, 121, 112, 106, 106, 129, 112, 121, 117, 109, 117, 121, 121, 116, 114, 120, 125, 131, 121, 123, 125, 108, 114, 120, 113, 128, 114, 114, 113, 119, 121, 117, 112, 114, 99, 125, 109, 113, 112, 122, 103, 112, 125, 104, 125, 113, 106, 119, 120, 122, 120, 136, 102, 120, 122, 111, 122, 123, 114, 105, 117, 102, 118, 119, 111, 118, 118, 123, 110, 130, 132, 123, 111, 119, 110, 122, 109, 121, 130, 114, 119, 122, 111, 117, 116, 110, 104, 114, 96, 109, 125, 118, 103, 122, 108, 109, 108, 110, 121, 116, 120, 120, 100, 119, 108, 126, 110, 115, 110, 116, 107, 117, 121, 107, 103, 110, 120, 119, 115, 113, 122, 119, 107, 128, 117, 113, 109, 118, 106, 118, 120, 121, 127, 120, 123, 114, 108, 114, 122, 119, 105, 120, 107, 113, 104, 108, 118, 112, 124, 110, 109, 115, 141, 111, 112, 113, 110, 107, 112, 130, 117, 108, 112, 112, 97, 116, 118, 122, 112, 113, 127, 118, 113, 117, 125, 109, 103, 117, 109, 117, 129, 124, 114, 116, 119, 124, 121, 122, 121, 118, 114, 119, 108, 113, 118, 111, 112, 128, 114, 120, 103, 114, 128, 111, 131, 116, 121, 120, 121, 122, 111, 119, 119, 120, 104, 111, 119, 122, 111, 119, 110, 101, 116, 122, 111, 126, 109, 115, 117, 117, 129, 116, 128, 110, 120, 112, 120, 102, 121, 122, 112, 111, 116, 123, 127, 126, 114, 116, 124, 124, 122, 118, 104, 116, 113, 104, 119, 111, 127, 112, 108, 119, 119, 113, 124, 111, 130, 104, 106, 109, 120, 124, 118, 105, 129, 115, 113, 119, 112, 112, 113, 111, 122, 116, 125, 117, 118, 113, 120, 112, 115, 113, 120, 113, 124, 106, 111, 124, 112, 101, 130, 121, 111, 119, 109, 122, 130, 117, 111, 114, 120, 124, 110, 116, 115, 116, 118, 105, 110, 139, 122, 124, 110, 106, 124, 109, 112, 122, 106, 111, 126, 108, 115, 111, 121, 111, 119, 116, 117, 108, 133, 108, 107, 126, 123, 122, 116, 117, 120, 117, 108, 116, 129, 104, 113, 113, 122, 122, 123, 112, 113, 118, 111, 124, 120, 118, 125, 115, 107, 105, 113, 122, 113, 115, 113, 117, 111, 126, 105, 117, 109, 113, 117, 117, 125, 114, 116, 108, 106, 107, 113, 113, 120, 110, 113, 121, 126, 118, 109, 122, 116, 118, 111, 107, 118, 110, 121, 109, 116, 111, 95, 108, 119, 115, 112, 122, 120, 122, 122, 103, 124, 112, 116, 113, 125, 115, 116, 113, 125, 104, 103, 106, 117, 115, 124, 109, 116, 142, 115, 112, 125, 112, 120, 115, 118, 130, 110, 119, 114, 118, 112, 119, 122, 114, 133, 104, 124, 101, 121, 108, 118, 119, 129, 111, 105, 111, 126, 115, 110, 118, 126, 119, 111, 117, 118, 107, 117, 137, 116, 111, 108, 121, 116, 130, 131, 114, 116, 113, 123, 112, 114, 108, 120, 114, 119, 138, 125, 108, 120, 117, 99, 107, 115, 114, 116, 125, 111, 116, 119, 110, 113, 108, 121, 117, 139, 117, 114, 99, 121, 109, 121, 112, 122, 117, 126, 104, 120, 115, 121, 97, 117, 99, 108, 104, 111, 113, 107, 107, 111, 117, 115, 107, 117, 115, 140, 110, 118, 103, 112, 123, 109, 125, 114, 111, 117, 108, 110, 114, 116, 116, 113, 115, 118, 119, 119, 108, 115, 109, 100, 121, 126, 122, 113, 106, 114, 120, 123, 118, 120, 110, 129, 117, 112, 112, 124, 120, 107, 115, 114, 107, 123, 116, 119, 108, 126, 104, 113, 118, 114, 114, 115, 113, 112, 111, 107, 109, 118, 126, 101, 121, 118, 114, 109, 117, 110, 119, 115, 104, 116, 111, 107, 116, 115, 135, 112, 101, 123, 117, 117, 117, 128, 125, 99, 117, 108, 119, 140, 109, 120, 119, 110, 129, 126, 119, 110, 117, 125, 109, 123, 118, 106, 119, 118, 123, 114, 118, 114, 102, 117, 125, 115, 127, 121, 121, 107, 110, 117, 117, 120, 109, 116, 115, 112, 116, 110, 102, 114, 110, 114, 126, 107, 115, 105, 121, 111, 110, 116, 120, 116, 116, 111, 119, 123, 119, 119, 117, 109, 113, 121, 124, 123, 111, 108, 139, 112, 110, 112, 120, 121, 115, 123, 113, 117, 123, 102, 109, 120, 112, 117, 131, 114, 104, 112, 104, 117, 116, 110, 113, 130, 111, 121, 119, 110, 116, 111, 108, 111, 112, 103, 105, 119, 119, 119, 110, 106, 119, 114, 113, 114, 105, 103, 114, 131, 116, 120, 116, 116, 114, 108, 118, 123, 109, 108, 117, 116, 106, 110, 126, 122, 115, 113, 109, 113, 113, 104, 122, 106, 119, 116, 112, 114, 118, 103, 117, 118, 118, 114, 116, 118, 132, 117, 121, 119, 127, 121, 115, 118, 118, 113, 112, 105, 110, 120, 125, 117, 129, 111, 115, 121, 108, 127, 98, 116, 115, 114, 109, 110, 112, 125, 109, 120, 116, 86, 107, 120, 126, 120, 110, 111, 114, 115, 116, 120, 114, 106, 111, 121, 115, 103, 116, 128, 116, 118, 116, 120, 115, 113, 114, 127, 114, 127, 112, 113, 108, 116, 121, 108, 115, 118, 111, 114, 112, 112, 116, 116, 115, 103, 116, 113, 110, 121, 116, 115, 115, 123, 114, 116, 117, 111, 105, 111, 113, 116, 116, 120, 117, 109, 115, 116, 112, 111, 123, 117, 117, 105, 117, 114, 121, 112, 112, 107, 114, 117, 113, 112, 107, 116, 122, 123, 111, 116, 101, 127, 109, 116, 111, 117, 111, 116, 114, 113, 119, 116, 114, 121, 110, 123, 117, 111, 121, 110, 114, 112, 118, 115, 114, 125, 124, 117, 115, 123, 116, 112, 113, 107, 123, 102, 120, 110, 116, 108, 110, 108, 113, 117, 113, 104, 119, 111, 112, 117, 119, 117, 114, 113, 115, 122, 117, 114, 119, 115, 119, 127, 116, 117, 113, 121, 110, 118, 116, 115, 125, 110, 118, 107, 112, 114, 113, 118, 125, 114, 112, 115, 114, 119, 112, 118, 110, 111, 107, 110, 108, 112, 117, 111, 121, 115, 117, 116, 109, 114, 108, 109, 109, 114, 121, 107, 115, 114, 113, 115, 120, 107, 112, 113, 106, 114, 119, 113, 115, 121, 122, 121, 115, 119, 117, 131, 118, 114, 107, 113, 126, 127, 108, 119, 113, 113, 113, 115, 114, 104, 117, 113, 103, 118, 120, 113, 116, 114, 116, 120, 108, 116, 106, 119, 121, 110, 119, 108, 117, 112, 118, 119, 120, 114, 116, 115, 118, 114, 119, 112, 114, 114, 114, 109, 117, 123, 118, 111, 118, 123, 115, 117, 118, 114, 119, 117, 114, 119, 115, 107, 125, 129, 120, 113, 116, 108, 108, 110, 114, 118, 107, 116, 120, 124, 117, 119, 117, 121, 118, 113, 113, 115, 119, 107, 116, 121, 111, 108, 110, 110, 120, 116, 121, 121, 118, 120, 124, 115, 114, 130, 114, 119, 124, 115, 107, 117, 112, 115, 113, 124, 116, 124, 116, 121, 114, 114, 119, 114, 111, 114, 116, 119, 114, 104, 119, 109, 119, 114, 122, 120, 110, 122, 114, 112, 113, 112, 110, 110, 116, 111, 110, 119, 120, 114, 121, 115, 110, 119, 120, 114, 126, 112, 117, 115, 115, 115, 119, 117, 113, 126, 115, 121, 114, 108, 122, 101, 116, 113, 118, 116, 114, 112, 108, 112, 115, 115, 111, 113, 124, 118, 119, 110, 126, 114, 118, 113, 120, 113, 124, 120, 120, 126, 119, 114, 119, 122, 115, 110, 122, 117, 109, 119, 111, 115, 113, 114, 113, 117, 118, 118, 112, 118, 114, 114, 116, 115, 111, 120, 112, 114, 113, 111, 119, 111, 115, 112, 111, 121, 108, 108, 119, 118, 109, 117, 112, 115, 111, 114, 114, 114, 116, 121, 112, 113, 119, 112, 112, 115, 118, 110, 118, 117, 119, 120, 123, 119, 110, 113, 114, 129, 125, 108, 118, 98, 105, 113, 110, 115, 110, 115, 114, 114, 110, 122, 119, 111, 119, 114, 119, 109, 119, 116, 116, 121, 110, 115, 115, 112, 116, 116, 109, 106, 116, 117, 105, 112, 112, 107, 116, 126, 110, 118, 128, 117, 99, 108, 126, 106, 114, 109, 113, 127, 111, 119, 114, 112, 116, 106, 109, 111, 110, 101, 128, 128, 112, 116, 115, 125, 123, 110, 108, 110, 123, 114, 115, 117, 118, 124, 107, 125, 110, 115, 121, 111, 124, 94, 112, 119, 108, 124, 126, 114, 119, 103, 123, 124, 107, 121, 107, 123, 116, 106, 115, 135, 115, 105, 117, 94, 106, 102, 105, 130, 106, 93, 114, 118, 113, 110, 121, 104, 111, 114, 117, 107, 116, 103, 100, 118, 103, 104, 110, 99, 117, 98, 104, 128, 127, 121, 106, 117, 127, 118, 116, 115, 110, 105, 119, 108, 115, 110, 114, 114, 112, 110, 115, 116, 110, 103, 122, 132, 122, 115, 127, 119, 114, 108, 111, 125, 106, 106, 131, 108, 108, 122, 111, 114, 113, 126, 119, 128, 103, 111, 99, 118, 114, 116, 114, 111, 116, 122, 104, 118, 120, 118, 110, 116, 104, 108, 108, 118, 121, 124, 95, 120, 120, 115, 120, 102, 100, 117, 121, 116, 112, 109, 104, 115, 101, 115, 126, 109, 111, 116, 113, 118, 102, 108, 114, 112, 112, 130, 113, 105, 108, 123, 129, 115, 123, 131, 102, 116, 120, 123, 111, 114, 124, 123, 117, 107, 118, 111, 116, 127, 120, 104, 117, 114, 101, 113, 117, 99, 122, 122, 127, 110, 105, 117, 125, 126, 128, 124, 125, 103, 105, 114, 123, 116, 122, 122, 109, 113, 129, 116, 130, 120, 109, 114, 133, 115, 110, 105, 103, 114, 118, 115, 118, 115, 109, 110, 103, 112, 112, 120, 129, 122, 107, 108, 110, 110, 112, 114, 119, 111, 103, 131, 136, 109, 109, 99, 123, 136, 114, 101, 120, 121, 113, 116, 106, 112, 115, 138, 112, 118, 110, 110, 113, 115, 122, 119, 117, 111, 113, 114, 113, 116, 118, 100, 111, 107, 109, 125, 120, 110, 127, 109, 113, 109, 113, 111, 134, 116, 118, 103, 110, 116, 122, 101, 105, 107, 104, 119, 111, 99, 117, 112, 115, 122, 117, 120, 108, 101, 110, 101, 135, 107, 106, 123, 111, 128, 116, 110, 127, 128, 115, 116, 106, 118, 117, 118, 109, 106, 121, 104, 99, 114, 121, 115, 129, 106, 108, 114, 111, 125, 115, 123, 107, 120, 115, 114, 119, 101, 125, 108, 101, 107, 112, 105, 125, 126, 110, 114, 113, 123, 96, 113, 110, 122, 129, 109, 111, 115, 113, 106, 114, 106, 102, 109, 132, 128, 112, 104, 122, 122, 113, 118, 116, 119, 126, 128, 119, 110, 113, 97, 124, 103, 109, 113, 104, 122, 124, 109, 100, 109, 127, 128, 123, 112, 122, 115, 123, 102, 111, 112, 125, 115, 93, 121, 137, 107, 121, 120, 127, 114, 118, 95, 113, 121, 111, 118, 106, 113, 106, 103, 114, 106, 116, 109, 134, 113, 118, 118, 114, 123, 99, 108, 120, 110, 117, 109, 114, 119, 121, 103, 110, 108, 109, 109, 113, 126, 115, 110, 100, 106, 115, 129, 105, 105, 117, 120, 113, 109, 117, 100, 102, 104, 98, 137, 111, 115, 135, 113, 118, 120, 109, 113, 123, 119, 103, 113, 110, 119, 115, 113, 114, 114, 118, 114, 119, 111, 117, 114, 108, 116, 135, 116, 118, 122, 107, 117, 123, 117, 113, 98, 107, 117, 120, 110, 111, 111, 109, 123, 122, 128, 116, 105, 111, 121, 113, 105, 123, 111, 102, 124, 104, 129, 104, 114, 102, 118, 108, 118, 110, 122, 114, 116, 108, 118, 106, 108, 116, 118, 119, 111, 125, 105, 121, 121, 127, 117, 109, 108, 125, 122, 106, 116, 110, 121, 126, 102, 109, 154, 102, 122, 107, 111, 117, 122, 128, 135, 104, 101, 96, 111, 123, 100, 114, 119, 117, 114, 105, 133, 124, 106, 112, 123, 116, 102, 103, 120, 124, 93, 127, 115, 111, 112, 127, 120, 119, 126, 113, 116, 104, 101, 130, 112, 128, 111, 124, 112, 109, 124, 115, 116, 120, 114, 106, 107, 133, 130, 105, 121, 113, 113, 117, 125, 104, 114, 111, 124, 109, 110, 108, 117, 123, 106, 122, 131, 108, 125, 114, 113, 118, 116, 114, 116, 118, 112, 134, 119, 116, 116, 124, 117, 91, 115, 106, 105, 124, 114, 114, 108, 111, 104, 118, 117, 110, 129, 108, 113, 107, 110, 98, 113, 123, 123, 121, 112, 109, 118, 113, 122, 104, 115, 114, 117, 120, 111, 120, 127, 109, 117, 122, 106, 112, 108, 113, 117, 104, 110, 121, 117, 126, 113, 115, 129, 113, 123, 116, 120, 124, 105, 134, 118, 114, 104, 134, 126, 112, 121, 118, 115, 136, 112, 113, 125, 116, 136, 120, 110, 117, 101, 117, 94, 111, 111, 116, 116, 120, 122, 114, 120, 126, 105, 117, 111, 118, 111, 110, 120, 124, 114, 111, 109, 110, 92, 107, 106, 114, 131, 111, 122, 116, 124, 118, 110, 102, 120, 107, 117, 113, 113, 109, 102, 80, 101, 108, 133, 100, 111, 109, 114, 110, 106, 110, 121, 112, 122, 115, 107, 117, 122, 112, 118, 122, 124, 110, 123, 128, 111, 121, 118, 107, 105, 116, 128, 125, 111, 114, 117, 123, 104, 110, 128, 112, 103, 114, 126, 116, 134, 108, 114, 106, 109, 95, 124, 98, 109, 108, 131, 125, 115, 126, 105, 110, 122, 106, 106, 120, 112, 123, 113, 105, 116, 108, 101, 105, 114, 102, 108, 118, 104, 122, 100, 115, 118, 102, 129, 132, 101, 116, 114, 115, 112, 89, 118, 112, 104, 118, 112, 104, 109, 95, 111, 119, 106, 110, 126, 117, 108, 112, 114, 128, 116, 107, 113, 109, 113, 110, 124, 121, 99, 108, 128, 98, 124, 108, 109, 103, 117, 108, 113, 112, 126, 123, 108, 144, 123, 99, 103, 125, 113, 122, 136, 92, 114, 109, 114, 94, 104, 113, 136, 114, 110, 115, 108, 116, 119, 108, 112, 112, 109, 118, 121, 108, 109, 121, 112, 137, 115, 119, 116, 110, 120, 110, 137, 121, 110, 95, 127, 97, 117, 107, 108, 117, 115, 102, 120, 112, 129, 128, 129, 116, 108, 111, 121, 128, 118, 132, 105, 98, 123, 114, 106, 121, 137, 109, 106, 107, 114, 127, 128, 110, 130, 116, 111, 113, 109, 109, 112, 119, 140, 116, 135, 112, 115, 114, 111, 124, 115, 125, 102, 105, 119, 120, 107, 120, 119, 106, 117, 121, 118, 119, 123, 111, 113, 116, 114, 119, 112, 107, 115, 117, 105, 115, 122, 108, 116, 125, 121, 117, 113, 113, 104, 110, 124, 123, 113, 113, 137, 108, 114, 129, 116, 120, 123, 105, 114, 118, 98, 114, 116, 108, 100, 103, 110, 107, 110, 117, 121, 124, 125, 111, 115, 113, 110, 96, 120, 126, 122, 118, 109, 126, 116, 126, 130, 118, 116, 110, 121, 111, 98, 108, 117, 103, 113, 112, 109, 118, 113, 115, 96, 115, 124, 111, 128, 109, 121, 121, 143, 112, 116, 117, 120, 108, 115, 111, 122, 113, 116, 115, 118, 135, 117, 106, 117, 103, 110, 117, 112, 107, 113, 128, 101, 104, 106, 131, 118, 117, 111, 103, 120, 127, 115, 104, 106, 122, 120, 116, 120, 117, 131, 109, 112, 116, 111, 115, 114, 109, 118, 108, 128, 117, 118, 125, 117, 118, 114, 112, 119, 102, 121, 117, 110, 108, 114, 113, 119, 114, 102, 105, 123, 106, 120, 123, 105, 106, 103, 115, 110, 117, 108, 96, 109, 110, 114, 109, 114, 111, 126, 118, 121, 110, 103, 119, 116, 110, 120, 124, 114, 126, 112, 113, 114, 123, 101, 105, 127, 109, 111, 109, 114, 107, 116, 120, 108, 122, 120, 118, 115, 118, 115, 109, 105, 117, 117, 117, 106, 112, 114, 127, 105, 125, 115, 130, 122, 105, 119, 112, 120, 104, 102, 119, 92, 122, 116, 122, 127, 121, 109, 107, 120, 98, 128, 124, 111, 108, 129, 115, 118, 121, 113, 109, 118, 124, 99, 88, 111, 99, 115, 132, 120, 131, 112, 103, 103, 111, 119, 121, 103, 116, 114, 128, 127, 104, 106, 109, 135, 122, 116, 109, 109, 104, 121, 119, 120, 118, 109, 105, 122, 111, 113, 125, 111, 117, 116, 104, 104, 113, 125, 126, 103, 113, 109, 132, 106, 118, 115, 110, 107, 110, 134, 98, 113, 118, 112, 102, 105, 109, 99, 113, 104, 113, 113, 111, 115, 113, 109, 111, 114, 126, 112, 103, 122, 111, 119, 112, 107, 115, 101, 115, 124, 119, 111, 88, 118, 130, 107, 110, 108, 127, 129, 108, 114, 110, 125, 99, 109, 113, 110, 109, 115, 126, 125, 106, 107, 114, 115, 129, 124, 123, 130, 107, 103, 118, 116, 104, 109, 106, 111, 124, 127, 122, 103, 131, 128, 111, 114, 119, 113, 117, 116, 114, 125, 113, 113, 110, 112, 103, 109, 111, 105, 120, 113, 102, 104, 125, 116, 108, 112, 112, 97, 109, 106, 110, 111, 107, 100, 121, 106, 98, 109, 123, 85, 111, 110, 96, 114, 134, 114, 121, 110, 115, 106, 113, 109, 128, 112, 112, 113, 112, 107, 117, 109, 115, 112, 105, 120, 122, 110, 114, 109, 97, 125, 107, 107, 93, 103, 125, 120, 125, 101, 96, 95, 117, 113, 117, 102, 121, 108, 131, 119, 117, 113, 109, 105, 122, 107, 126, 118, 123, 122, 119, 113, 98, 110, 127, 117, 102, 114, 121, 114, 122, 114, 114, 111, 131, 118, 110, 116, 117, 116, 120, 123, 118, 115, 111, 121, 110, 119, 116, 112, 107, 108, 130, 119, 117, 106, 113, 113, 119, 115, 115, 112, 115, 122, 131, 120, 118, 102, 113, 117, 133, 116, 124, 119, 109, 108, 110, 114, 100, 122, 118, 118, 116, 114, 117, 116, 114, 127, 113, 111, 121, 108, 109, 102, 116, 105, 125, 112, 117, 125, 111, 116, 122, 122, 104, 113, 109, 111, 112, 114, 118, 111, 123, 119, 123, 114, 110, 116, 115, 119, 113, 116, 114, 118, 115, 121, 108, 114, 119, 113, 107, 115, 115, 121, 122, 125, 115, 106, 118, 116, 109, 108, 124, 126, 115, 117, 112, 122, 113, 118, 106, 118, 112, 118, 112, 101, 111, 130, 115, 115, 114, 120, 113, 126, 114, 115, 104, 116, 114, 107, 113, 117, 112, 112, 110, 108, 116, 113, 114, 131, 113, 118, 105, 120, 117, 116, 138, 113, 114, 126, 115, 119, 126, 109, 122, 110, 121, 119, 113, 113, 107, 117, 114, 104, 120, 117, 115, 117, 115, 103, 117, 122, 117, 114, 122, 116, 119, 107, 114, 108, 117, 117, 118, 114, 110, 112, 133, 118, 117, 118, 103, 109, 113, 127, 118, 121, 115, 116, 111, 110, 101, 120, 116, 109, 115, 112, 111, 124, 114, 123, 113, 128, 114, 119, 123, 114, 113, 124, 113, 112, 114, 109, 106, 112, 108, 113, 114, 110, 125, 119, 121, 115, 116, 127, 119, 113, 117, 120, 120, 123, 109, 105, 114, 120, 117, 111, 118, 117, 121, 117, 120, 109, 117, 116, 108, 104, 129, 114, 113, 114, 127, 119, 111, 114, 118, 116, 102, 123, 118, 117, 114, 113, 113, 114, 124, 123, 112, 121, 114, 116, 110, 98, 112, 117, 112, 111, 110, 110, 116, 113, 116, 109, 118, 124, 117, 107, 116, 120, 122, 106, 105, 112, 103, 103, 128, 115, 117, 107, 114, 107, 122, 107, 109, 122, 112, 112, 121, 121, 101, 106, 108, 118, 115, 111, 119, 116, 131, 110, 112, 120, 98, 115, 102, 117, 108, 97, 121, 116, 104, 122, 112, 132, 110, 114, 117, 116, 106, 118, 118, 112, 126, 121, 111, 112, 118, 116, 114, 104, 113, 119, 121, 117, 117, 105, 116, 116, 113, 130, 118, 112, 120, 105, 147, 118, 118, 115, 124, 122, 115, 112, 112, 116, 115, 116, 112, 108, 112, 107, 113, 112, 117, 110, 108, 119, 115, 112, 111, 104, 119, 115, 116, 117, 108, 115, 123, 115, 113, 126, 101, 115, 119, 109, 116, 111, 107, 117, 122, 121, 124, 120, 122, 113, 116, 113, 117, 120, 117, 107, 117, 113, 106, 106, 127, 115, 96, 107, 114, 110, 116, 112, 119, 109, 116, 115, 120, 109, 113, 113, 117, 106, 115, 116, 108, 116, 112, 118, 109, 112, 113, 117, 119, 118, 115, 123, 106, 115, 119, 121, 113, 114, 117, 116, 118, 118, 114, 117, 114, 113, 111, 103, 119, 117, 111, 109, 115, 121, 115, 130, 122, 109, 109, 125, 125, 123, 99, 107, 115, 110, 105, 115, 116, 117, 101, 117, 126, 104, 118, 113, 112, 130, 116, 113, 111, 121, 112, 117, 112, 123, 118, 128, 108, 111, 102, 108, 113, 116, 125, 119, 102, 100, 111, 120, 110, 105, 100, 121, 119, 109, 119, 111, 119, 126, 115, 120, 107, 106, 117, 111, 111, 137, 106, 93, 128, 116, 115, 112, 112, 122, 120, 119, 120, 112, 126, 119, 128, 111, 98, 127, 108, 114, 109, 111, 117, 109, 118, 120, 117, 100, 112, 107, 121, 109, 115, 118, 116, 110, 115, 110, 110, 118, 112, 110, 105, 105, 106, 134, 130, 113, 108, 97, 110, 125, 109, 120, 108, 116, 117, 113, 115, 108, 113, 119, 112, 105, 110, 117, 120, 114, 118, 109, 108, 115, 96, 115, 124, 108, 124, 104, 114, 117, 110, 126, 132, 112, 107, 116, 106, 119, 113, 113, 110, 109, 124, 120, 113, 120, 121, 120, 126, 111, 116, 114, 128, 113, 118, 109, 108, 132, 112, 113, 115, 115, 108, 114, 123, 119, 97, 123, 113, 119, 107, 111, 117, 124, 122, 117, 125, 120, 110, 118, 103, 121, 118, 105, 107, 110, 112, 113, 121, 113, 120, 112, 109, 118, 105, 115, 112, 95, 113, 113, 107, 125, 117, 115, 124, 87, 118, 113, 117, 123, 111, 115, 125, 119, 117, 114, 106, 121, 100, 120, 113, 121, 118, 126, 109, 127, 108, 101, 113, 121, 113, 107, 111, 108, 122, 113, 105, 95, 114, 116, 119, 117, 132, 116, 120, 117, 109, 107, 112, 118, 117, 104, 116, 107, 115, 116, 122, 121, 129, 100, 98, 115, 123, 99, 118, 118, 113, 120, 115, 114, 117, 109, 114, 111, 116, 109, 106, 123, 114, 108, 106, 110, 124, 113, 105, 120, 113, 113, 112, 117, 122, 118, 109, 119, 128, 116, 126, 106, 109, 122, 119, 106, 120, 116, 108, 112, 128, 116, 120, 111, 114, 115, 113, 118, 121, 110, 119, 126, 110, 97, 112, 122, 109, 109, 107, 113, 121, 113, 110, 105, 110, 119, 118, 107, 115, 118, 111, 105, 128, 108, 100, 114, 127, 115, 118, 118, 119, 120, 110, 105, 111, 110, 98, 117, 112, 117, 115, 123, 114, 118, 112, 107, 118, 124, 120, 127, 113, 105, 115, 121, 109, 119, 111, 104, 106, 115, 138, 112, 109, 113, 114, 100, 113, 110, 130, 122, 113, 116, 109, 119, 108, 125, 117, 113, 104, 103, 118, 103, 111, 113, 137, 107, 107, 106, 113, 105, 124, 115, 106, 123, 113, 111, 140, 115, 129, 124, 121, 102, 122, 108, 112, 102, 116, 113, 111, 120, 109, 115, 118, 125, 123, 100, 126, 114, 105, 111, 121, 123, 111, 108, 112, 97, 109, 113, 120, 109, 126, 121, 128, 110, 109, 110, 113, 107, 117, 112, 114, 91, 107, 110, 131, 114, 112, 105, 122, 105, 116, 112, 104, 120, 115, 116, 100, 105, 107, 119, 106, 106, 117, 115, 116, 115, 107, 125, 118, 117, 120, 112, 112, 112, 113, 120, 110, 119, 118, 122, 115, 118, 121, 111, 119, 118, 110, 110, 115, 113, 104, 103, 118, 116, 110, 112, 121, 123, 101, 104, 115, 118, 129, 94, 96, 124, 131, 117, 116, 114, 117, 108, 141, 126, 115, 108, 114, 114, 102, 122, 98, 118, 116, 116, 105, 122, 117, 105, 119, 124, 88, 115, 107, 120, 120, 113, 111, 125, 114, 115, 124, 120, 103, 122, 105, 120, 116, 123, 126, 113, 107, 119, 127, 117, 111, 114, 105, 99, 112, 100, 115, 122, 127, 111, 107, 114, 106, 119, 115, 134, 104, 116, 115, 119, 115, 119, 116, 105, 115, 121, 127, 114, 107, 135, 114, 119, 118, 114, 115, 116, 117, 97, 100, 123, 102, 116, 114, 105, 118, 115, 122, 104, 107, 122, 120, 105, 110, 112, 137, 113, 117, 113, 122, 109, 104, 115, 118, 110, 125, 105, 107, 106, 129, 122, 121, 93, 106, 117, 127, 119, 115, 118, 113, 109, 112, 119, 116, 116, 133, 115, 115, 118, 116, 107, 103, 112, 115, 111, 112, 114, 105, 111, 109, 123, 125, 122, 109, 106, 110, 105, 110, 106, 123, 108, 120, 128, 120, 107, 134, 115, 106, 119, 112, 116, 110, 127, 110, 131, 110, 121, 117, 114, 106, 119, 101, 115, 107, 115, 117, 100, 117, 117, 121, 114, 116, 110, 114, 99, 121, 112, 119, 123, 113, 136, 105, 119, 108, 111, 122, 113, 115, 149, 111, 110, 117, 115, 117, 104, 113, 109, 109, 113, 113, 129, 114, 95, 101, 119, 121, 106, 113, 114, 119, 119, 124, 125, 112, 112, 116, 119, 100, 121, 121, 116, 110, 121, 122, 109, 116, 116, 111, 125, 105, 118, 111, 116, 118, 109, 100, 121, 93, 128, 114, 114, 111, 119, 110, 122, 108, 119, 119, 137, 112, 114, 113, 129, 113, 103, 116, 98, 147, 98, 111, 110, 118, 122, 123, 116, 106, 121, 113, 124, 124, 88, 116, 115, 111, 104, 112, 120, 107, 117, 123, 119, 104, 120, 120, 118, 124, 120, 113, 125, 117, 112, 118, 104, 114, 119, 105, 124, 107, 114, 114, 107, 99, 113, 105, 108, 108, 113, 127, 113, 113, 99, 112, 113, 124, 107, 119, 106, 111, 114, 115, 113, 110, 110, 117, 107, 111, 118, 118, 114, 117, 117, 115, 124, 108, 113, 105, 123, 117, 111, 111, 112, 112, 112, 129, 115, 102, 113, 105, 121, 113, 120, 126, 93, 132, 108, 126, 112, 112, 110, 124, 107, 120, 119, 117, 133, 106, 114, 116, 115, 114, 111, 104, 106, 117, 95, 113, 120, 107, 117, 110, 125, 113, 116, 114, 108, 120, 107, 116, 117, 116, 112, 117, 116, 109, 109, 130, 119, 114, 112, 112, 114, 109, 112, 122, 116, 121, 127, 108, 121, 119, 115, 115, 103, 114, 108, 113, 122, 108, 121, 126, 113, 112, 110, 131, 105, 106, 111, 110, 110, 125, 129, 112, 112, 113, 112, 119, 113, 117, 108, 110, 103, 118, 119, 119, 115, 126, 108, 113, 110, 106, 123, 119, 102, 114, 118, 113, 122, 99, 109, 108, 117, 107, 112, 106, 113, 117, 118, 117, 114, 122, 116, 129, 126, 110, 126, 112, 116, 101, 107, 105, 123, 117, 108, 121, 109, 109, 114, 126, 95, 113, 107, 104, 114, 116, 108, 121, 113, 108, 126, 105, 114, 145, 81, 118, 106, 97, 113, 107, 124, 128, 111, 102, 112, 116, 128, 111, 83, 116, 123, 85, 110, 101, 100, 104, 116, 99, 108, 115, 111, 109, 132, 104, 112, 106, 116, 108, 102, 109, 106, 116, 104, 104, 112, 107, 126, 120, 114, 114, 118, 120, 116, 122, 115, 128, 101, 114, 118, 120, 121, 105, 120, 112, 107, 118, 128, 110, 119, 92, 98, 117, 119, 98, 121, 110, 101, 113, 114, 116, 110, 122, 116, 116, 119, 111, 114, 116, 114, 106, 118, 105, 98, 77, 120, 113, 114, 114, 107, 108, 119, 124, 125, 115, 119, 116, 131, 126, 101, 131, 99, 110, 118, 102, 113, 118, 104, 96, 111, 100, 123, 110, 120, 116, 126, 103, 116, 89, 96, 123, 130, 114, 94, 101, 113, 104, 110, 136, 123, 121, 110, 112, 134, 109, 129, 128, 107, 114, 118, 115, 116, 111, 96, 118, 125, 110, 118, 138, 123, 112, 117, 110, 127, 135, 117, 124, 134, 105, 121, 115, 116, 120, 118, 127, 114, 122, 118, 116, 108, 131, 123, 102, 133, 119, 132, 124, 85, 114, 113, 101, 121, 127, 109, 107, 127, 114, 108, 106, 122, 108, 116, 106, 107, 116, 115, 112, 101, 120, 120, 130, 125, 97, 123, 122, 129, 118, 109, 116, 121, 113, 120, 111, 119, 96, 104, 115, 106, 125, 116, 92, 101, 91, 118, 100, 102, 124, 95, 135, 111, 123, 105, 114, 119, 114, 113, 121, 122, 117, 104, 131, 124, 121, 108, 107, 117, 104, 120, 106, 116, 107, 115, 119, 115, 132, 94, 112, 131, 98, 108, 105, 101, 85, 110, 118, 109, 110, 108, 116, 92, 97, 119, 112, 110, 121, 156, 117, 112, 92, 102, 105, 125, 121, 118, 113, 117, 114, 124, 113, 142, 112, 124, 105, 136, 139, 114, 113, 114, 118, 117, 103, 124, 102, 116, 130, 114, 124, 97, 122, 116, 122, 104, 108, 104, 109, 97, 108, 112, 131, 127, 115, 105, 115, 119, 103, 119, 116, 101, 94, 99, 112, 114, 121, 134, 95, 107, 149, 102, 100, 106, 127, 118, 113, 115, 108, 112, 106, 136, 107, 123, 87, 103, 103, 117, 133, 121, 117, 102, 103, 100, 119, 107, 111, 128, 111, 123, 104, 134, 121, 107, 125, 105, 114, 124, 102, 118, 107, 103, 115, 111, 120, 127, 116, 106, 108, 110, 114, 134, 117, 107, 104, 127, 127, 109, 120, 110, 117, 105, 99, 114, 113, 115, 112, 126, 111, 121, 117, 117, 115, 120, 134, 125, 107, 97, 103, 100, 104, 98, 91, 118, 120, 123, 119, 125, 134, 125, 106, 118, 115, 106, 111, 114, 113, 116, 119, 113, 104, 117, 126, 131, 118, 108, 115, 136, 120, 136, 110, 115, 106, 109, 110, 103, 111, 121, 104, 131, 111, 94, 112, 104, 110, 115, 107, 109, 132, 103, 114, 110, 115, 135, 113, 109, 122, 126, 115, 115, 100, 107, 121, 119, 112, 114, 114, 98, 185, 93, 135, 129, 121, 124, 115, 114, 122, 121, 123, 128, 103, 130, 128, 116, 104, 129, 125, 119, 121, 132, 114, 118, 94, 113, 116, 135, 120, 104, 114, 121, 116, 130, 102, 125, 128, 107, 116, 106, 104, 109, 109, 114, 102, 108, 114, 112, 130, 128, 112, 114, 122, 107, 123, 117, 105, 106, 108, 117, 115, 110, 92, 117, 116, 104, 118, 122, 126, 122, 112, 105, 104, 124, 126, 120, 107, 113, 123, 119, 132, 109, 114, 135, 125, 108, 130, 130, 123, 98, 117, 106, 115, 108, 111, 108, 111, 126, 112, 121, 118, 118, 116, 131, 111, 114, 95, 104, 111, 108, 106, 121, 110, 99, 130, 104, 122, 124, 128, 106, 122, 118, 103, 128, 97, 109, 103, 112, 123, 92, 113, 137, 114, 113, 112, 127, 119, 115, 151, 117, 119, 101, 118, 113, 117, 122, 103, 119, 124, 100, 111, 127, 127, 125, 117, 111, 105, 116, 115, 95, 117, 123, 112, 123, 122, 109, 107, 140, 123, 102, 121, 128, 118, 111, 113, 138, 106, 114, 122, 131, 118, 111, 100, 106, 117, 97, 138, 125, 119, 112, 107, 95, 115, 122, 113, 131, 116, 126, 119, 111, 118, 120, 121, 125, 99, 123, 99, 101, 111, 110, 118, 109, 101, 104, 142, 103, 95, 112, 117, 117, 94, 122, 111, 118, 110, 130, 100, 115, 102, 97, 114, 115, 95, 106, 114, 118, 121, 122, 112, 124, 109, 117, 112, 100, 111, 98, 122, 125, 90, 114, 108, 101, 99, 125, 119, 96, 107, 105, 121, 115, 108, 90, 120, 107, 99, 146, 128, 107, 124, 108, 92, 125, 113, 111, 105, 120, 114, 121, 98, 122, 116, 112, 117, 128, 105, 106, 118, 106, 123, 116, 112, 113, 134, 127, 112, 120, 122, 122, 102, 117, 110, 110, 123, 105, 118, 109, 104, 106, 96, 108, 113, 108, 103, 129, 114, 105, 124, 113, 145, 113, 105, 91, 125, 97, 115, 108, 108, 110, 116, 105, 98, 116, 119, 102, 123, 111, 104, 110, 105, 119, 111, 112, 121, 119, 102, 120, 122, 126, 111, 105, 103, 120, 116, 121, 128, 116, 130, 105, 121, 120, 100, 106, 98, 109, 114, 118, 130, 112, 106, 97, 107, 96, 125, 116, 122, 117, 108, 144, 110, 115, 102, 104, 113, 118, 121, 121, 118, 120, 123, 122, 114, 109, 114, 118, 110, 115, 109, 110, 118, 120, 112, 110, 135, 117, 95, 117, 96, 101, 124, 109, 106, 119, 106, 118, 99, 109, 94, 121, 115, 118, 108, 124, 115, 107, 108, 129, 114, 119, 121, 119, 117, 125, 100, 111, 133, 123, 103, 108, 133, 109, 113, 112, 124, 121, 123, 112, 118, 105, 105, 102, 108, 113, 120, 120, 114, 112, 118, 95, 113, 101, 125, 115, 110, 100, 108, 116, 114, 94, 98, 134, 110, 110, 130, 106, 128, 118, 109, 107, 99, 104, 112, 119, 111, 113, 109, 95, 117, 112, 111, 105, 119, 112, 105, 114, 117, 122, 123, 121, 120, 138, 117, 126, 126, 114, 115, 137, 109, 105, 126, 120, 114, 105, 111, 111, 107, 100, 97, 110, 115, 116, 115, 114, 115, 114, 116, 116, 125, 123, 117, 118, 108, 112, 118, 120, 112, 115, 114, 112, 116, 117, 104, 111, 106, 122, 109, 113, 116, 118, 117, 115, 112, 94, 110, 116, 119, 119, 113, 117, 121, 101, 112, 112, 106, 122, 107, 111, 101, 116, 121, 110, 116, 115, 102, 111, 114, 122, 121, 112, 116, 122, 108, 141, 119, 113, 112, 22, 101, 112, 118, 111, 119, 117, 117, 111, 109, 123, 122, 117, 105, 114, 111, 119, 111, 112, 111, 106, 124, 119, 119, 113, 123, 109, 109, 105, 119, 112, 112, 116, 113, 129, 112, 119, 116, 119, 110, 118, 114, 128, 111, 116, 109, 116, 110, 112, 124, 116, 114, 118, 104, 119, 121, 118, 121, 119, 109, 113, 120, 143, 116, 112, 114, 117, 119, 115, 100, 121, 118, 137, 115, 116, 123, 111, 116, 120, 114, 119, 123, 114, 115, 82, 124, 107, 114, 119, 112, 113, 111, 111, 121, 127, 110, 121, 121, 112, 118, 107, 109, 115, 116, 114, 113, 110, 115, 120, 123, 112, 123, 107, 115, 117, 115, 119, 119, 116, 111, 124, 101, 109, 115, 114, 117, 113, 111, 114, 119, 124, 114, 120, 113, 121, 108, 109, 108, 112, 115, 113, 109, 111, 111, 120, 116, 117, 109, 107, 106, 113, 106, 117, 108, 134, 113, 104, 121, 112, 116, 111, 122, 118, 106, 227, 106, 74, 115, 104, 121, 116, 110, 117, 110, 106, 117, 115, 119, 115, 118, 111, 115, 114, 76, 115, 112, 111, 114, 106, 119, 121, 112, 127, 119, 114, 116, 115, 117, 122, 113, 115, 109, 116, 115, 116, 120, 112, 108, 115, 113, 118, 117, 112, 105, 114, 118, 116, 127, 124, 114, 111, 109, 121, 115, 113, 112, 116, 115, 122, 114, 120, 118, 117, 124, 114, 116, 115, 116, 119, 111, 115, 115, 122, 114, 116, 113, 118, 112, 106, 132, 117, 115, 106, 112, 112, 120, 116, 118, 108, 112, 117, 105, 114, 109, 113, 116, 119, 111, 82, 115, 110, 112, 110, 107, 117, 121, 108, 110, 121, 103, 123, 112, 115, 116, 114, 106, 123, 121, 134, 112, 110, 124, 122, 118, 116, 114, 121, 111, 118, 105, 118, 117, 111, 116, 113, 119, 113, 109, 116, 123, 107, 112, 128, 121, 119, 107, 110, 112, 120, 123, 117, 124, 111, 117, 117, 101, 115, 115, 116, 119, 114, 119, 123, 121, 120, 118, 123, 117, 106, 121, 115, 112, 113, 109, 117, 113, 117, 114, 110, 123, 113, 118, 114, 121, 116, 106, 118, 119, 117, 117, 113, 113, 117, 110, 115, 115, 114, 123, 108, 108, 113, 115, 121, 117, 120, 104, 110, 118, 113, 123, 111, 118, 115, 108, 123, 116, 124, 105, 114, 110, 115, 115, 114, 116, 114, 120, 116, 112, 121, 118, 115, 111, 113, 123, 115, 114, 119, 117, 118, 115, 118, 120, 115, 115, 118, 115, 114, 116, 107, 112, 119, 128, 116, 118, 117, 109, 115, 118, 113, 117, 114, 110, 123, 114, 98, 121, 115, 115, 115, 112, 107, 118, 114, 107, 117, 114, 108, 109, 114, 100, 123, 108, 107, 104, 114, 134, 109, 114, 126, 147, 103, 126, 126, 111, 116, 125, 115, 109, 140, 100, 117, 102, 107, 116, 121, 116, 113, 135, 109, 157, 114, 111, 114, 120, 113, 124, 119, 109, 117, 122, 113, 109, 117, 114, 111, 109, 116, 123, 105, 119, 118, 122, 112, 107, 108, 109, 124, 117, 110, 110, 126, 115, 111, 121, 116, 115, 119, 114, 118, 106, 114, 115, 115, 116, 108, 111, 101, 124, 130, 112, 120, 118, 108, 114, 100, 114, 118, 117, 117, 114, 102, 128, 151, 103, 118, 115, 119, 98, 119, 102, 113, 134, 106, 133, 113, 111, 106, 118, 109, 121, 130, 122, 113, 113, 104, 112, 111, 108, 124, 129, 110, 114, 109, 126, 103, 113, 110, 126, 116, 108, 121, 117, 120, 119, 127, 112, 98, 117, 116, 115, 116, 120, 119, 110, 113, 100, 114, 100, 111, 114, 119, 128, 98, 118, 118, 114, 112, 124, 109, 124, 112, 115, 114, 119, 113, 114, 118, 100, 116, 124, 115, 130, 132, 115, 117, 114, 116, 114, 117, 115, 117, 115, 118, 113, 115, 107, 127, 117, 125, 128, 115, 114, 121, 100, 113, 104, 132, 109, 128, 128, 110, 111, 113, 111, 118, 122, 106, 115, 122, 114, 117, 120, 111, 110, 117, 106, 115, 123, 120, 120, 113, 109, 117, 114, 117, 110, 127, 132, 116, 117, 116, 116, 109, 117, 104, 118, 113, 114, 110, 118, 117, 120, 114, 108, 110, 121, 107, 117, 118, 112, 108, 122, 111, 114, 112, 109, 113, 105, 105, 115, 111, 113, 103, 126, 126, 95, 110, 123, 115, 113, 117, 115, 116, 111, 108, 128, 103, 120, 97, 90, 82, 116, 105, 113, 115, 104, 117, 111, 115, 115, 120, 121, 113, 110, 108, 98, 114, 119, 107, 111, 97, 138, 114, 120, 103, 121, 111, 110, 130, 110, 106, 125, 114, 122, 110, 110, 107, 110, 119, 102, 128, 114, 102, 100, 98, 99, 96, 111, 110, 137, 136, 103, 132, 118, 111, 112, 105, 114, 117, 108, 114, 134, 119, 109, 110, 121, 110, 123, 123, 116, 123, 107, 120, 116, 114, 113, 115, 112, 107, 100, 119, 116, 113, 112, 102, 116, 129, 118, 102, 110, 109, 115, 121, 93, 96, 109, 110, 119, 108, 114, 110, 108, 116, 111, 104, 128, 105, 115, 109, 114, 108, 109, 100, 122, 95, 115, 104, 114, 122, 105, 111, 110, 109, 111, 121, 114, 114, 106, 110, 115, 112, 109, 114, 108, 109, 109, 126, 111, 114, 124, 110, 112, 104, 110, 127, 118, 123, 123, 103, 116, 114, 109, 125, 116, 120, 127, 171, 123, 105, 112, 108, 124, 120, 109, 112, 135, 127, 106, 104, 123, 120, 116, 130, 111, 113, 122, 114, 133, 118, 121, 120, 113, 109, 109, 128, 104, 110, 98, 106, 114, 98, 118, 115, 130, 114, 114, 107, 114, 104, 108, 114, 113, 111, 113, 116, 100, 114, 117, 122, 121, 111, 140, 112, 124, 110, 110, 124, 115, 114, 125, 122, 118, 121, 109, 80, 122, 107, 138, 99, 118, 109, 125, 121, 107, 111, 104, 112, 121, 105, 111, 122, 112, 115, 107, 109, 103, 115, 114, 113, 126, 115, 103, 113, 115, 106, 112, 115, 115, 117, 109, 117, 100, 114, 104, 131, 108, 120, 106, 118, 113, 113, 111, 107, 119, 106, 118, 109, 114, 130, 115, 107, 115, 133, 112, 115, 131, 111, 120, 106, 121, 117, 112, 118, 118, 113, 110, 116, 114, 121, 108, 123, 118, 129, 112, 112, 117, 110, 120, 104, 113, 109, 121, 130, 111, 110, 125, 130, 115, 114, 119, 122, 100, 101, 117, 126, 124, 115, 120, 111, 114, 120, 112, 120, 115, 109, 116, 113, 120, 108, 98, 117, 120, 123, 104, 117, 139, 121, 112, 98, 123, 124, 132, 118, 122, 117, 118, 111, 117, 146, 117, 126, 122, 123, 104, 110, 121, 114, 120, 101, 106, 111, 125, 113, 117, 105, 117, 109, 102, 113, 112, 113, 109, 114, 130, 119, 110, 116, 86, 113, 119, 108, 128, 108, 112, 121, 100, 117, 114, 114, 103, 134, 117, 99, 119, 110, 113, 115, 110, 103, 115, 116, 104, 113, 111, 111, 107, 111, 111, 114, 132, 117, 107, 117, 105, 122, 116, 116, 108, 113, 109, 118, 120, 109, 100, 120, 113, 115, 106, 117, 114, 107, 121, 128, 115, 103, 106, 108, 117, 107, 116, 113, 106, 104, 118, 108, 108, 120, 113, 113, 110, 115, 117, 113, 111, 116, 117, 117, 114, 114, 116, 120, 108, 120, 112, 120, 108, 115, 121, 124, 137, 116, 117, 104, 136, 117, 102, 115, 121, 106, 106, 98, 105, 120, 126, 115, 113, 108, 95, 125, 111, 115, 123, 113, 127, 114, 89, 111, 107, 112, 112, 112, 104, 101, 113, 102, 118, 73, 105, 120, 117, 133, 107, 98, 113, 116, 124, 112, 115, 108, 109, 140, 103, 117, 111, 116, 107, 133, 118, 113, 122, 121, 96, 112, 112, 121, 123, 108, 115, 112, 113, 114, 111, 109, 114, 122, 113, 115, 109, 97, 108, 120, 115, 117, 118, 112, 106, 123, 115, 112, 104, 124, 110, 112, 118, 114, 100, 117, 118, 120, 124, 115, 113, 119, 109, 117, 118, 115, 115, 108, 122, 125, 127, 110, 117, 103, 113, 113, 123, 124, 123, 106, 107, 104, 116, 121, 113, 112, 113, 106, 127, 111, 113, 127, 115, 109, 119, 124, 100, 126, 124, 107, 109, 123, 107, 107, 102, 129, 113, 106, 121, 119, 107, 112, 114, 121, 114, 118, 119, 117, 121, 113, 96, 99, 110, 112, 126, 116, 117, 113, 120, 120, 120, 128, 122, 98, 114, 126, 107, 105, 120, 104, 110, 115, 112, 115, 119, 109, 115, 117, 131, 122, 111, 110, 100, 112, 97, 113, 124, 127, 116, 109, 112, 109, 116, 112, 122, 124, 121, 122, 114, 112, 118, 107, 110, 97, 118, 119, 116, 124, 124, 106, 116, 120, 116, 110, 113, 109, 116, 120, 104, 127, 108, 106, 110, 116, 112, 114, 102, 127, 146, 115, 110, 122, 117, 112, 118, 111, 112, 126, 110, 95, 119, 113, 113, 107, 122, 122, 119, 116, 122, 124, 107, 118, 107, 128, 107, 112, 110, 107, 113, 120, 116, 117, 116, 123, 115, 121, 135, 115, 124, 110, 119, 114, 110, 113, 113, 116, 120, 113, 109, 104, 109, 118, 113, 107, 133, 104, 118, 118, 122, 100, 120, 109, 120, 120, 110, 99, 111, 115, 109, 119, 106, 122, 103, 114, 123, 114, 110, 112, 109, 109, 99, 122, 121, 118, 112, 119, 112, 110, 143, 113, 112, 111, 119, 112, 112, 109, 109, 132, 122, 128, 120, 117, 118, 102, 115, 109, 102, 121, 110, 127, 110, 105, 111, 120, 103, 112, 127, 106, 114, 120, 118, 105, 125, 126, 94, 103, 116, 113, 120, 117, 122, 115, 115, 110, 119, 114, 125, 120, 121, 116, 115, 111, 107, 119, 124, 113, 117, 118, 108, 103, 116, 112, 117, 122, 117, 101, 117, 113, 121, 109, 122, 110, 130, 118, 131, 103, 116, 118, 119, 117, 120, 126, 109, 122, 112, 119, 131, 118, 126, 115, 113, 118, 106, 113, 126, 124, 114, 117, 116, 121, 110, 129, 116, 126, 105, 114, 100, 123, 113, 114, 127, 112, 117, 113, 128, 105, 116, 104, 118, 106, 101, 116, 113, 126, 114, 121, 109, 111, 105, 112, 112, 112, 106, 114, 121, 119, 109, 97, 105, 126, 110, 128, 109, 107, 105, 106, 120, 109, 103, 119, 106, 116, 114, 108, 124, 117, 114, 128, 117, 115, 110, 116, 121, 124, 117, 123, 119, 112, 117, 123, 101, 122, 121, 120, 108, 120, 121, 126, 121, 105, 107, 116, 118, 121, 122, 102, 120, 120, 116, 113, 108, 112, 93, 126, 143, 120, 120, 113, 117, 116, 109, 108, 108, 125, 113, 119, 105, 110, 107, 121, 114, 119, 111, 129, 117, 115, 116, 123, 93, 116, 114, 114, 116, 103, 121, 110, 107, 120, 128, 115, 125, 116, 108, 126, 113, 121, 108, 105, 117, 124, 110, 124, 108, 120, 127, 106, 114, 104, 118, 124, 121, 144, 108, 119, 111, 109, 120, 108, 110, 116, 119, 119, 118, 107, 117, 123, 102, 111, 105, 94, 126, 105, 121, 119, 108, 113, 129, 122, 110, 113, 112, 134, 108, 112, 115, 99, 106, 108, 112, 105, 104, 107, 129, 117, 119, 113, 118, 99, 113, 110, 112, 110, 114, 113, 112, 123, 100, 118, 112, 104, 120, 111, 117, 122, 126, 118, 108, 113, 113, 115, 126, 115, 114, 119, 105, 127, 103, 113, 111, 118, 113, 120, 103, 104, 118, 106, 114, 125, 117, 129, 110, 120, 115, 123, 114, 112, 106, 118, 95, 124, 101, 122, 112, 125, 113, 120, 117, 115, 116, 110, 110, 105, 134, 116, 115, 99, 104, 109, 116, 104, 116, 112, 123, 119, 118, 108, 119, 123, 118, 108, 112, 115, 119, 116, 119, 117, 112, 117, 104, 112, 105, 113, 114, 119, 108, 135, 125, 114, 112, 95, 123, 112, 114, 116, 105, 120, 111, 110, 108, 107, 111, 112, 111, 108, 107, 105, 121, 114, 105, 117, 129, 131, 106, 109, 112, 117, 109, 98, 126, 106, 125, 117, 118, 126, 116, 123, 115, 107, 111, 120, 123, 108, 122, 127, 117, 118, 110, 110, 107, 123, 113, 123, 117, 111, 117, 128, 103, 105, 115, 109, 119, 121, 120, 111, 113, 109, 113, 112, 111, 115, 114, 101, 122, 127, 95, 112, 112, 111, 119, 118, 114, 113, 121, 119, 120, 119, 112, 125, 116, 123, 117, 119, 113, 117, 108, 117, 129, 118, 139, 105, 105, 115, 109, 115, 106, 129, 117, 116, 109, 127, 128, 109, 120, 107, 116, 112, 138, 116, 113, 128, 120, 113, 115, 105, 117, 118, 117, 111, 113, 116, 124, 101, 115, 121, 118, 119, 117, 113, 111, 114, 122, 109, 104, 100, 111, 112, 103, 116, 111, 116, 116, 113, 116, 112, 122, 113, 115, 117, 117, 106, 121, 119, 113, 109, 116, 118, 102, 107, 113, 115, 104, 119, 110, 111, 108, 111, 124, 125, 122, 113, 128, 109, 117, 112, 113, 108, 120, 123, 111, 123, 107, 116, 117, 107, 116, 122, 126, 116, 131, 103, 129, 118, 119, 124, 122, 112, 121, 115, 126, 116, 120, 123, 113, 115, 119, 130, 105, 114, 108, 116, 123, 101, 115, 116, 134, 111, 118, 112, 122, 115, 108, 122, 115, 118, 109, 114, 105, 122, 105, 117, 109, 108, 113, 104, 117, 114, 113, 118, 122, 109, 113, 118, 108, 128, 120, 122, 115, 110, 122, 107, 113, 116, 112, 118, 113, 128, 113, 120, 113, 98, 118, 117, 112, 116, 121, 116, 107, 121, 117, 118, 130, 123, 117, 117, 120, 109, 111, 108, 113, 106, 117, 107, 123, 117, 115, 109, 108, 123, 117, 119, 113, 110, 106, 116, 113, 109, 109, 116, 118, 112, 117, 106, 116, 121, 113, 110, 106, 107, 106, 112, 109, 114, 114, 115, 103, 122, 116, 116, 108, 111, 127, 120, 120, 109, 120, 117, 123, 113, 121, 113, 123, 121, 117, 119, 119, 111, 102, 102, 117, 122, 130, 118, 111, 126, 116, 116, 126, 96, 115, 122, 117, 118, 105, 119, 111, 116, 114, 115, 104, 117, 124, 126, 119, 115, 116, 116, 118, 105, 108, 114, 118, 114, 110, 115, 121, 120, 112, 114, 119, 124, 109, 125, 129, 116, 115, 117, 109, 113, 115, 114, 113, 117, 112, 108, 116, 130, 110, 111, 107, 94, 121, 107, 124, 109, 103, 107, 112, 118, 120, 118, 111, 124, 114, 113, 100, 120, 110, 109, 117, 117, 102, 113, 115, 123, 111, 107, 113, 116, 117, 122, 126, 103, 106, 122, 116, 122, 117, 108, 119, 122, 110, 120, 109, 111, 118, 116, 108, 117, 116, 106, 131, 109, 114, 118, 126, 120, 118, 118, 111, 116, 106, 116, 126, 108, 101, 119, 115, 83, 119, 115, 105, 106, 116, 117, 112, 120, 118, 124, 99, 110, 114, 124, 111, 107, 120, 118, 114, 117, 114, 138, 105, 111, 119, 115, 127, 108, 115, 116, 118, 111, 110, 116, 123, 106, 109, 117, 110, 116, 116, 104, 118, 95, 108, 112, 120, 110, 114, 116, 117, 119, 112, 129, 116, 140, 113, 112, 113, 122, 101, 115, 107, 117, 113, 112, 124, 125, 117, 121, 113, 109, 116, 116, 119, 114, 114, 128, 124, 109, 117, 124, 125, 113, 101, 118, 119, 108, 121, 120, 108, 117, 116, 109, 116, 121, 111, 108, 95, 115, 109, 121, 121, 119, 115, 114, 97, 118, 117, 120, 120, 113, 121, 114, 126, 116, 116, 110, 115, 112, 108, 114, 118, 117, 107, 113, 122, 122, 107, 118, 102, 115, 111, 115, 128, 122, 109, 111, 114, 108, 109, 112, 104, 113, 121, 119, 110, 114, 106, 114, 111, 119, 119, 119, 121, 115, 111, 135, 111, 118, 118, 105, 108, 112, 118, 119, 103, 125, 113, 99, 110, 115, 116, 118, 113, 112, 119, 108, 122, 124, 117, 120, 115, 119, 118, 111, 122, 123, 116, 109, 107, 118, 116, 115, 118, 107, 102, 104, 112, 114, 116, 104, 125, 106, 111, 111, 116, 128, 116, 119, 113, 116, 118, 113, 113, 108, 134, 116, 113, 110, 113, 118, 118, 111, 115, 109, 123, 118, 115, 116, 112, 113, 120, 115, 116, 116, 111, 112, 111, 113, 104, 119, 108, 123, 116, 115, 117, 118, 109, 120, 119, 115, 105, 113, 122, 105, 114, 115, 114, 112, 115, 117, 103, 120, 124, 124, 115, 113, 115, 115, 115, 125, 118, 122, 110, 105, 121, 112, 104, 119, 113, 116, 120, 113, 127, 121, 120, 116, 118, 121, 109, 114, 112, 112, 110, 103, 114, 113, 109, 116, 115, 110, 121, 120, 119, 113, 125, 112, 117, 114, 111, 116, 111, 116, 115, 120, 119, 115, 117, 115, 113, 118, 119, 113, 112, 111, 111, 113, 117, 118, 115, 114, 120, 110, 112, 114, 115, 120, 113, 121, 118, 124, 112, 111, 116, 122, 117, 109, 119, 110, 110, 109, 117, 112, 111, 114, 114, 117, 117, 103, 119, 126, 113, 116, 111, 120, 109, 116, 117, 119, 110, 110, 124, 120, 106, 115, 120, 111, 116, 114, 102, 116, 117, 111, 119, 114, 117, 122, 108, 123, 122, 114, 118, 112, 116, 110, 115, 118, 93, 108, 117, 109, 109, 110, 122, 119, 113, 115, 124, 129, 121, 125, 111, 124, 109, 107, 104, 111, 117, 123, 129, 119, 121, 126, 115, 118, 114, 118, 116, 109, 109, 120, 114, 109, 117, 114, 111, 121, 106, 115, 119, 114, 117, 109, 108, 107, 110, 115, 117, 116, 114, 108, 109, 107, 115, 119, 113, 110, 114, 119, 116, 102, 115, 109, 116, 113, 97, 126, 117, 118, 107, 112, 114, 113, 120, 108, 107, 119, 110, 123, 116, 115, 118, 115, 118, 121, 113, 121, 113, 121, 113, 110, 118, 117, 118, 121, 102, 113, 125, 120, 115, 124, 111, 122, 115, 112, 114, 123, 118, 113, 125, 115, 108, 114, 111, 114, 114, 106, 122, 119, 115, 119, 123, 116, 115, 103, 114, 113, 121, 118, 116, 116, 118, 116, 112, 106, 116, 113, 122, 116, 120, 113, 123, 99, 126, 111, 110, 106, 117, 108, 110, 115, 125, 110, 116, 109, 112, 105, 122, 110, 121, 113, 113, 115, 127, 116, 110, 117, 111, 118, 118, 115, 120, 108, 117, 117, 115, 123, 126, 110, 110, 111, 116, 108, 115, 116, 111, 116, 113, 108, 126, 111, 111, 102, 117, 110, 110, 117, 114, 128, 119, 112, 112, 129, 110, 115, 112, 114, 120, 116, 112, 112, 128, 114, 113, 110, 134, 113, 115, 113, 129, 121, 105, 126, 113, 112, 108, 108, 111, 111, 117, 116, 100, 126, 123, 126, 126, 110, 135, 122, 118, 104, 111, 126, 111, 120, 124, 110, 111, 101, 120, 102, 123, 111, 109, 109, 117, 106, 124, 113, 108, 114, 127, 105, 120, 127, 128, 118, 99, 119, 113, 103, 121, 119, 112, 102, 117, 121, 100, 109, 126, 110, 112, 113, 112, 107, 120, 113, 115, 120, 119, 109, 103, 116, 110, 121, 114, 113, 124, 119, 117, 112, 103, 124, 111, 112, 118, 108, 127, 106, 110, 109, 109, 99, 114, 111, 126, 111, 118, 115, 111, 129, 126, 108, 116, 107, 110, 110, 115, 126, 114, 111, 111, 125, 109, 116, 115, 105, 114, 115, 107, 104, 114, 121, 109, 114, 116, 112, 111, 105, 116, 120, 113, 126, 114, 113, 111, 123, 113, 109, 113, 126, 114, 116, 120, 113, 118, 129, 125, 115, 106, 110, 104, 101, 111, 109, 114, 107, 117, 115, 118, 109, 115, 112, 102, 113, 112, 105, 115, 124, 115, 104, 122, 123, 125, 110, 119, 116, 127, 124, 123, 111, 115, 106, 130, 107, 119, 114, 117, 118, 111, 135, 118, 121, 106, 125, 119, 114, 126, 114, 117, 113, 111, 121, 107, 126, 115, 110, 116, 114, 127, 133, 118, 113, 107, 120, 118, 116, 114, 118, 111, 117, 114, 112, 118, 110, 122, 105, 109, 118, 103, 112, 124, 114, 106, 119, 116, 120, 111, 107, 112, 107, 117, 112, 109, 106, 113, 112, 101, 112, 107, 119, 112, 132, 114, 121, 117, 125, 119, 121, 102, 121, 125, 98, 135, 110, 114, 111, 116, 121, 105, 107, 124, 104, 109, 134, 125, 107, 109, 112, 118, 116, 123, 124, 120, 122, 115, 123, 100, 119, 112, 104, 112, 130, 106, 112, 115, 109, 112, 114, 124, 113, 135, 119, 101, 119, 114, 117, 107, 128, 113, 105, 112, 109, 120, 117, 117, 107, 129, 118, 114, 120, 110, 100, 111, 114, 113, 118, 113, 104, 121, 110, 108, 116, 119, 110, 121, 113, 122, 107, 116, 113, 103, 133, 128, 111, 118, 117, 107, 110, 110, 115, 117, 103, 106, 116, 105, 115, 129, 108, 122, 109, 113, 109, 127, 112, 105, 109, 105, 116, 112, 115, 105, 115, 112, 125, 117, 120, 130, 116, 106, 119, 115, 112, 116, 112, 132, 106, 117, 109, 111, 108, 112, 114, 116, 115, 120, 114, 107, 105, 99, 107, 113, 107, 122, 108, 108, 112, 125, 114, 110, 113, 120, 121, 114, 110, 109, 119, 111, 108, 123, 122, 117, 123, 123, 121, 98, 117, 122, 128, 117, 110, 117, 123, 112, 121, 118, 114, 106, 116, 114, 113, 120, 114, 98, 108, 118, 117, 100, 113, 107, 119, 130, 122, 106, 138, 112, 122, 106, 115, 115, 119, 110, 108, 127, 116, 124, 137, 105, 102, 125, 105, 103, 112, 116, 116, 110, 115, 117, 115, 107, 118, 122, 123, 125, 109, 108, 102, 118, 116, 109, 114, 114, 106, 118, 100, 95, 123, 114, 115, 117, 120, 111, 127, 104, 114, 110, 124, 103, 120, 133, 112, 128, 123, 111, 130, 110, 120, 111, 125, 107, 114, 118, 103, 127, 106, 116, 120, 109, 114, 129, 117, 115, 122, 112, 118, 108, 115, 117, 110, 119, 103, 123, 111, 112, 114, 111, 120, 110, 110, 103, 115, 103, 103, 114, 123, 117, 112, 112, 111, 104, 107, 124, 109, 115, 112, 117, 102, 110, 124, 116, 111, 126, 106, 123, 117, 119, 128, 120, 113, 117, 119, 108, 119, 125, 119, 129, 118, 113, 106, 114, 121, 115, 127, 105, 129, 109, 108, 115, 104, 112, 117, 120, 109, 119, 112, 91, 109, 122, 112, 117, 117, 105, 117, 138, 113, 118, 113, 100, 104, 113, 129, 116, 120, 122, 115, 112, 111, 111, 113, 112, 105, 121, 114, 111, 107, 111, 114, 108, 121, 107, 118, 109, 114, 118, 100, 120, 109, 112, 122, 118, 119, 126, 109, 112, 105, 113, 111, 111, 121, 123, 119, 119, 112, 104, 95, 117, 114, 109, 128, 111, 109, 113, 107, 120, 115, 116, 113, 99, 127, 131, 118, 129, 130, 120, 117, 110, 113, 121, 105, 105, 126, 121, 128, 123, 109, 134, 126, 128, 119, 120, 114, 118, 119, 112, 116, 111, 116, 111, 117, 113, 112, 110, 109, 106, 118, 110, 123, 110, 110, 120, 125, 122, 116, 112, 115, 109, 127, 117, 110, 121, 114, 116, 107, 108, 119, 124, 111, 114, 115, 111, 117, 109, 127, 115, 108, 113, 107, 103, 123, 109, 114, 112, 104, 118, 109, 114, 104, 123, 118, 113, 115, 105, 108, 115, 119, 124, 117, 122, 107, 124, 114, 112, 117, 128, 145, 102, 122, 102, 113, 113, 109, 107, 118, 100, 111, 113, 105, 125, 120, 116, 117, 110, 121, 116, 116, 125, 102, 111, 126, 116, 120, 115, 121, 119, 119, 101, 113, 113, 108, 113, 108, 114, 125, 125, 122, 108, 139, 101, 117, 111, 111, 106, 116, 123, 120, 105, 118, 98, 114, 119, 116, 110, 122, 118, 117, 123, 109, 121, 120, 130, 117, 105, 106, 121, 123, 125, 103, 120, 124, 121, 102, 129, 115, 113, 130, 106, 106, 145, 101, 118, 106, 120, 115, 104, 112, 98, 118, 122, 131, 123, 115, 112, 114, 101, 105, 117, 108, 113, 109, 102, 102, 111, 109, 109, 118, 105, 115, 121, 106, 130, 120, 118, 114, 111, 120, 130, 110, 116, 106, 117, 111, 119, 110, 120, 107, 117, 129, 122, 110, 119, 108, 102, 119, 119, 115, 115, 110, 114, 117, 103, 118, 127, 115, 113, 111, 124, 114, 111, 131, 113, 109, 123, 107, 128, 103, 132, 103, 114, 114, 119, 125, 129, 108, 120, 128, 130, 123, 130, 102, 107, 117, 108, 100, 110, 102, 116, 107, 110, 106, 112, 109, 120, 125, 115, 105, 118, 112, 111, 120, 107, 118, 116, 112, 129, 114, 128, 114, 107, 114, 101, 110, 127, 103, 118, 117, 120, 123, 125, 117, 119, 107, 124, 107, 114, 111, 111, 106, 105, 109, 115, 103, 107, 109, 105, 114, 108, 118, 104, 128, 112, 109, 129, 112, 127, 117, 124, 126, 124, 107, 117, 118, 119, 120, 110, 117, 114, 112, 111, 110, 110, 102, 123, 109, 137, 116, 113, 107, 119, 117, 125, 119, 115, 121, 122, 117, 112, 115, 116, 109, 116, 113, 117, 124, 105, 118, 119, 125, 116, 109, 119, 110, 122, 112, 122, 114, 121, 110, 113, 121, 109, 120, 107, 117, 106, 119, 108, 121, 107, 115, 124, 100, 114, 112, 114, 111, 123, 122, 110, 119, 111, 116, 109, 106, 99, 111, 114, 107, 120, 113, 113, 104, 119, 119, 111, 103, 109, 121, 110, 118, 114, 105, 120, 116, 112, 106, 124, 103, 124, 115, 132, 104, 111, 119, 113, 110, 108, 117, 110, 109, 112, 111, 129, 117, 108, 109, 111, 125, 111, 123, 109, 121, 128, 107, 118, 125, 109, 124, 124, 108, 120, 116, 121, 117, 90, 120, 122, 120, 112, 125, 121, 128, 105, 122, 121, 129, 117, 123, 109, 121, 119, 111, 117, 107, 118, 112, 127, 119, 117, 117, 120, 107, 122, 112, 126, 125, 121, 116, 119, 122, 116, 122, 102, 113, 116, 123, 118, 116, 112, 129, 116, 134, 106, 122, 124, 112, 120, 111, 115, 99, 121, 119, 105, 123, 122, 120, 124, 122, 112, 134, 127, 119, 117, 114, 109, 131, 105, 121, 126, 112, 126, 119, 99, 111, 102, 109, 123, 105, 113, 120, 126, 125, 119, 109, 101, 114, 117, 116, 115, 121, 108, 109, 118, 110, 114, 117, 130, 113, 122, 129, 117, 104, 109, 126, 110, 117, 112, 110, 113, 104, 115, 114, 108, 121, 118, 115, 120, 117, 98, 117, 109, 107, 119, 123, 108, 112, 125, 111, 111, 124, 116, 114, 91, 102, 109, 123, 116, 126, 109, 116, 118, 117, 109, 115, 121, 103, 123, 107, 123, 126, 104, 134, 123, 121, 120, 123, 113, 110, 111, 115, 129, 111, 116, 114, 116, 110, 110, 112, 111, 109, 119, 112, 114, 110, 121, 123, 110, 104, 116, 114, 119, 104, 105, 123, 109, 122, 117, 106, 123, 107, 104, 135, 110, 92, 116, 130, 113, 113, 118, 120, 110, 103, 110, 116, 126, 111, 120, 92, 114, 120, 114, 112, 108, 104, 97, 112, 114, 121, 115, 120, 92, 113, 115, 111, 136, 134, 116, 134, 124, 106, 118, 125, 107, 119, 107, 112, 117, 116, 117, 123, 103, 113, 115, 114, 108, 117, 114, 113, 104, 127, 120, 114, 119, 119, 102, 121, 108, 111, 100, 119, 121, 105, 119, 117, 116, 109, 130, 116, 112, 109, 109, 117, 110, 114, 102, 108, 115, 123, 100, 121, 114, 126, 105, 102, 124, 114, 118, 109, 115, 120, 128, 124, 128, 111, 113, 105, 123, 113, 109, 116, 127, 109, 121, 108, 107, 117, 104, 108, 123, 136, 116, 113, 112, 115, 117, 111, 136, 103, 109, 127, 125, 130, 106, 110, 115, 110, 120, 110, 115, 102, 119, 108, 137, 129, 121, 121, 110, 118, 130, 98, 107, 106, 116, 112, 107, 107, 114, 104, 116, 125, 120, 114, 123, 110, 121, 117, 115, 115, 121, 121, 119, 121, 115, 108, 107, 116, 109, 112, 117, 110, 111, 118, 118, 116, 115, 111, 120, 121, 108, 113, 124, 114, 111, 128, 115, 113, 111, 120, 118, 113, 106, 119, 119, 120, 113, 103, 107, 120, 117, 113, 117, 101, 120, 110, 114, 125, 127, 119, 107, 127, 112, 108, 118, 114, 130, 121, 107, 116, 117, 113, 112, 101, 111, 109, 113, 124, 110, 110, 113, 123, 116, 117, 107, 118, 120, 120, 111, 107, 120, 121, 119, 117, 114, 107, 120, 117, 124, 116, 118, 113, 112, 116, 107, 115, 116, 112, 120, 115, 107, 115, 110, 112, 119, 112, 124, 116, 117, 113, 119, 114, 112, 108, 116, 127, 111, 114, 113, 120, 119, 123, 109, 115, 116, 114, 103, 114, 112, 117, 118, 119, 109, 113, 125, 129, 114, 110, 120, 119, 120, 108, 109, 122, 105, 118, 126, 122, 111, 112, 116, 114, 116, 117, 116, 121, 108, 117, 122, 121, 116, 118, 113, 124, 116, 116, 107, 120, 113, 111, 114, 104, 115, 110, 123, 110, 118, 113, 112, 119, 119, 123, 112, 110, 117, 118, 119, 112, 120, 121, 116, 124, 108, 111, 109, 110, 120, 117, 108, 104, 118, 114, 116, 115, 111, 116, 119, 116, 113, 117, 97, 118, 116, 103, 115, 111, 108, 106, 115, 114, 118, 112, 115, 111, 120, 115, 120, 117, 115, 103, 122, 113, 112, 119, 123, 112, 116, 113, 113, 114, 121, 108, 111, 118, 109, 110, 118, 115, 114, 115, 109, 117, 121, 103, 109, 124, 113, 109, 114, 106, 113, 115, 109, 110, 102, 110, 117, 119, 117, 118, 117, 108, 129, 117, 121, 115, 112, 133, 112, 119, 117, 117, 111, 113, 117, 117, 122, 115, 112, 115, 125, 116, 110, 111, 119, 112, 115, 116, 117, 114, 108, 116, 115, 117, 113, 112, 111, 115, 119, 113, 114, 111, 115, 126, 115, 119, 120, 117, 111, 117, 123, 117, 104, 118, 103, 107, 117, 116, 118, 115, 118, 122, 109, 120, 118, 116, 111, 120, 122, 111, 116, 115, 118, 115, 109, 120, 119, 110, 121, 114, 115, 119, 118, 123, 118, 114, 113, 117, 114, 117, 120, 118, 103, 110, 124, 114, 118, 118, 119, 108, 125, 122, 108, 111, 112, 123, 117, 122, 111, 113, 112, 115, 114, 123, 117, 118, 106, 120, 112, 112, 119, 110, 110, 112, 112, 122, 113, 117, 105, 121, 108, 118, 118, 115, 120, 111, 117, 122, 113, 121, 113, 116, 109, 116, 117, 117, 106, 102, 118, 119, 116, 111, 125, 109, 108, 109, 117, 125, 119, 103, 117, 121, 124, 110, 119, 119, 106, 116, 106, 113, 117, 114, 120, 110, 116, 108, 113, 118, 119, 114, 116, 117, 111, 125, 116, 114, 109, 117, 125, 122, 117, 120, 114, 120, 114, 111, 109, 107, 113, 115, 110, 119, 110, 106, 120, 110, 124, 126, 123, 117, 108, 117, 115, 117, 109, 106, 110, 107, 111, 112, 114, 113, 113, 120, 111, 117, 108, 108, 126, 122, 119, 116, 122, 110, 116, 128, 112, 94, 112, 109, 111, 108, 122, 115, 120, 122, 105, 103, 100, 123, 126, 108, 127, 106, 92, 140, 110, 101, 117, 105, 127, 107, 111, 106, 117, 111, 108, 109, 131, 120, 107, 126, 120, 108, 106, 115, 103, 115, 123, 116, 112, 109, 120, 108, 103, 119, 121, 118, 104, 110, 103, 114, 97, 109, 108, 126, 120, 107, 109, 113, 116, 120, 119, 133, 102, 111, 124, 114, 106, 123, 120, 105, 132, 113, 107, 105, 113, 115, 107, 119, 120, 127, 111, 117, 120, 108, 121, 118, 118, 105, 117, 123, 118, 127, 106, 102, 112, 127, 123, 112, 122, 119, 107, 96, 114, 109, 130, 112, 100, 110, 110, 107, 118, 113, 108, 115, 116, 108, 111, 113, 104, 124, 122, 118, 120, 113, 116, 110, 119, 102, 128, 107, 112, 120, 114, 113, 119, 117, 113, 113, 117, 113, 130, 107, 109, 113, 105, 106, 120, 104, 123, 114, 104, 114, 126, 113, 111, 110, 96, 118, 110, 104, 113, 103, 121, 122, 115, 124, 105, 114, 121, 101, 112, 123, 114, 118, 115, 121, 133, 114, 107, 109, 93, 125, 121, 115, 96, 111, 124, 118, 115, 114, 118, 122, 113, 111, 117, 118, 119, 129, 122, 118, 123, 101, 118, 125, 106, 114, 118, 121, 117, 112, 103, 110, 123, 113, 106, 109, 115, 109, 126, 126, 98, 103, 109, 111, 115, 117, 127, 113, 122, 113, 114, 94, 126, 119, 117, 125, 120, 102, 113, 98, 123, 128, 114, 119, 111, 108, 103, 109, 108, 123, 115, 111, 118, 120, 113, 119, 131, 121, 118, 110, 113, 99, 113, 107, 111, 111, 108, 114, 123, 106, 125, 116, 109, 115, 129, 123, 128, 94, 115, 117, 121, 105, 131, 113, 116, 108, 121, 110, 116, 101, 107, 107, 120, 125, 121, 120, 113, 116, 104, 126, 123, 113, 119, 109, 112, 119, 115, 119, 107, 126, 111, 111, 109, 117, 95, 118, 108, 118, 113, 113, 127, 104, 109, 107, 110, 115, 91, 120, 113, 113, 108, 122, 112, 101, 121, 112, 120, 110, 118, 117, 105, 115, 111, 114, 122, 123, 114, 135, 110, 133, 101, 116, 114, 116, 120, 116, 110, 115, 91, 117, 107, 113, 120, 114, 110, 96, 108, 106, 132, 107, 115, 118, 116, 121, 106, 119, 115, 105, 112, 117, 109, 112, 123, 123, 107, 113, 105, 129, 92, 106, 116, 115, 119, 125, 114, 118, 95, 111, 125, 113, 121, 124, 121, 135, 113, 106, 119, 111, 119, 112, 116, 121, 111, 115, 114, 113, 106, 103, 104, 115, 99, 92, 107, 104, 122, 112, 124, 110, 130, 104, 110, 112, 130, 114, 112, 113, 112, 116, 113, 105, 110, 109, 121, 115, 99, 105, 114, 115, 110, 105, 116, 106, 118, 114, 96, 133, 112, 101, 116, 116, 125, 126, 112, 118, 121, 118, 113, 100, 115, 109, 117, 109, 108, 108, 112, 118, 116, 105, 124, 129, 111, 115, 120, 117, 135, 124, 116, 117, 107, 116, 111, 110, 126, 106, 115, 117, 109, 97, 125, 117, 105, 103, 106, 105, 105, 119, 133, 110, 114, 123, 109, 105, 109, 111, 111, 106, 120, 111, 107, 118, 118, 117, 125, 119, 115, 126, 117, 102, 118, 147, 101, 122, 130, 113, 106, 96, 115, 114, 121, 108, 102, 107, 123, 123, 102, 113, 119, 115, 109, 120, 115, 107, 106, 132, 129, 109, 101, 116, 109, 103, 116, 124, 111, 108, 110, 107, 112, 110, 110, 132, 114, 117, 115, 111, 107, 100, 122, 112, 125, 108, 125, 112, 111, 109, 118, 118, 100, 128, 119, 100, 131, 103, 123, 130, 115, 123, 110, 114, 106, 114, 90, 114, 116, 120, 113, 122, 120, 122, 112, 109, 104, 113, 118, 127, 116, 110, 110, 111, 104, 123, 115, 137, 129, 125, 99, 90, 109, 132, 111, 131, 106, 113, 102, 114, 106, 121, 121, 89, 137, 119, 94, 124, 113, 152, 116, 127, 115, 119, 105, 111, 140, 118, 102, 117, 108, 122, 111, 109, 103, 115, 111, 109, 115, 121, 114, 114, 91, 115, 104, 110, 117, 105, 109, 116, 119, 115, 109, 120, 120, 105, 128, 117, 118, 105, 108, 99, 113, 107, 101, 108, 111, 97, 125, 107, 113, 119, 111, 103, 106, 122, 118, 106, 111, 117, 114, 122, 110, 111, 121, 130, 118, 96, 106, 96, 103, 112, 121, 101, 113, 115, 106, 109, 113, 107, 114, 120, 114, 116, 95, 115, 137, 111, 104, 112, 119, 95, 123, 122, 117, 126, 147, 113, 115, 117, 111, 119, 106, 110, 110, 108, 100, 119, 127, 108, 127, 111, 115, 119, 105, 128, 103, 108, 113, 118, 116, 108, 119, 106, 120, 121, 106, 121, 118, 126, 115, 108, 116, 113, 118, 112, 123, 114, 110, 111, 110, 134, 114, 123, 118, 112, 104, 132, 103, 109, 107, 106, 109, 103, 122, 129, 109, 115, 102, 113, 122, 114, 112, 110, 125, 119, 112, 104, 122, 117, 126, 115, 114, 111, 117, 124, 105, 96, 95, 119, 105, 116, 110, 118, 121, 110, 106, 128, 117, 115, 115, 114, 121, 122, 127, 113, 117, 115, 123, 113, 105, 116, 115, 107, 106, 116, 130, 114, 126, 118, 107, 104, 109, 122, 98, 132, 119, 117, 111, 108, 109, 99, 112, 114, 113, 105, 106, 115, 123, 109, 107, 89, 119, 111, 126, 102, 121, 103, 112, 134, 111, 129, 126, 97, 119, 141, 109, 115, 104, 112, 103, 131, 122, 110, 112, 119, 104, 117, 114, 117, 108, 127, 117, 99, 127, 114, 122, 109, 111, 112, 111, 115, 111, 105, 121, 124, 117, 108, 106, 112, 112, 120, 111, 119, 119, 109, 110, 127, 106, 108, 113, 110, 101, 116, 111, 108, 105, 126, 113, 116, 113, 112, 143, 87, 117, 102, 118, 107, 149, 118, 109, 105, 109, 117, 117, 117, 113, 120, 113, 120, 118, 120, 119, 107, 125, 107, 121, 104, 119, 104, 125, 115, 113, 108, 111, 96, 113, 115, 108, 115, 120, 108, 105, 121, 113, 111, 119, 113, 112, 100, 103, 115, 110, 110, 123, 107, 106, 120, 115, 103, 111, 132, 116, 116, 108, 129, 111, 106, 104, 122, 106, 120, 117, 107, 106, 108, 105, 126, 118, 111, 112, 129, 118, 119, 114, 106, 123, 121, 121, 115, 117, 112, 105, 113, 95, 110, 113, 120, 116, 122, 116, 113, 119, 114, 115, 106, 115, 121, 121, 120, 119, 114, 117, 110, 116, 101, 114, 115, 109, 124, 117, 111, 116, 112, 118, 118, 113, 111, 120, 119, 99, 110, 111, 119, 115, 106, 123, 117, 115, 116, 113, 112, 111, 121, 117, 108, 113, 141, 119, 103, 109, 108, 112, 124, 119, 119, 130, 113, 124, 118, 119, 113, 119, 115, 110, 116, 127, 104, 113, 115, 99, 112, 113, 113, 132, 121, 115, 109, 116, 114, 126, 113, 108, 109, 111, 120, 114, 103, 120, 102, 109, 118, 117, 118, 118, 109, 117, 102, 101, 112, 117, 109, 113, 122, 116, 121, 106, 105, 118, 120, 112, 122, 128, 123, 116, 131, 116, 103, 117, 102, 118, 114, 118, 108, 118, 109, 108, 111, 118, 129, 116, 113, 109, 117, 111, 111, 119, 129, 113, 112, 123, 115, 117, 119, 122, 110, 106, 111, 113, 105, 104, 116, 121, 117, 119, 110, 112, 108, 129, 116, 119, 114, 108, 123, 127, 109, 110, 114, 114, 115, 125, 99, 119, 115, 132, 118, 118, 113, 118, 104, 116, 116, 116, 127, 122, 127, 118, 126, 109, 117, 123, 96, 114, 113, 107, 103, 133, 100, 105, 108, 115, 122, 125, 116, 127, 105, 125, 119, 114, 110, 115, 124, 116, 116, 114, 126, 113, 108, 115, 123, 113, 115, 111, 113, 125, 106, 114, 104, 111, 107, 108, 119, 108, 115, 117, 112, 116, 109, 114, 122, 116, 116, 110, 117, 108, 109, 116, 122, 134, 109, 117, 112, 114, 124, 118, 128, 127, 113, 120, 118, 123, 109, 117, 126, 121, 120, 112, 113, 113, 130, 111, 121, 120, 106, 110, 110, 113, 122, 115, 119, 99, 111, 112, 110, 108, 112, 113, 118, 113, 137, 117, 115, 117, 112, 112, 124, 135, 111, 101, 106, 105, 103, 120, 116, 105, 125, 113, 126, 137, 124, 113, 113, 123, 103, 121, 109, 117, 122, 111, 103, 112, 102, 118, 120, 112, 115, 105, 116, 119, 111, 118, 116, 110, 114, 108, 117, 110, 116, 107, 116, 116, 110, 113, 111, 114, 123, 106, 126, 113, 120, 115, 133, 114, 122, 114, 125, 130, 105, 114, 119, 115, 114, 109, 124, 110, 117, 107, 117, 118, 108, 114, 128, 111, 111, 115, 109, 116, 115, 115, 117, 115, 112, 116, 116, 115, 116, 117, 116, 111, 122, 122, 116, 117, 119, 117, 122, 108, 111, 113, 121, 120, 116, 116, 120, 115, 113, 107, 124, 118, 116, 113, 115, 112, 110, 112, 108, 130, 108, 109, 110, 120, 118, 106, 117, 105, 122, 114, 119, 115, 113, 110, 130, 117, 105, 120, 118, 127, 118, 111, 118, 125, 120, 115, 113, 114, 115, 120, 112, 111, 113, 125, 110, 107, 113, 129, 121, 110, 117, 111, 121, 111, 116, 111, 117, 115, 108, 122, 116, 110, 101, 110, 119, 112, 105, 113, 108, 108, 110, 105, 122, 127, 113, 110, 108, 125, 118, 103, 111, 120, 115, 107, 123, 117, 121, 106, 125, 110, 110, 128, 120, 109, 126, 110, 114, 124, 109, 106, 106, 121, 127, 135, 112, 119, 114, 111, 108, 120, 91, 122, 133, 102, 110, 119, 113, 118, 107, 118, 107, 117, 129, 110, 115, 110, 117, 98, 118, 106, 106, 124, 102, 106, 108, 109, 107, 120, 121, 118, 125, 116, 112, 115, 117, 124, 103, 115, 127, 112, 122, 113, 110, 123, 108, 97, 118, 129, 110, 124, 107, 106, 110, 111, 116, 113, 116, 120, 120, 119, 106, 114, 101, 117, 134, 107, 113, 107, 105, 123, 102, 114, 110, 125, 119, 113, 128, 111, 94, 107, 119, 121, 136, 117, 109, 112, 107, 103, 116, 116, 123, 124, 98, 104, 116, 122, 110, 122, 115, 105, 100, 114, 106, 119, 117, 113, 118, 114, 115, 153, 123, 128, 124, 107, 112, 118, 119, 120, 118, 103, 101, 126, 103, 112, 120, 110, 105, 94, 116, 114, 101, 112, 120, 114, 112, 119, 124, 105, 127, 119, 118, 106, 119, 108, 133, 121, 118, 128, 113, 110, 110, 98, 107, 120, 109, 118, 85, 121, 104, 125, 107, 109, 103, 116, 104, 112, 136, 122, 126, 120, 122, 120, 128, 122, 111, 110, 109, 124, 116, 128, 125, 111, 115, 111, 121, 124, 115, 120, 117, 110, 116, 111, 114, 106, 113, 87, 119, 135, 123, 114, 124, 127, 121, 109, 127, 99, 125, 130, 121, 130, 80, 116, 102, 112, 117, 117, 111, 121, 115, 101, 100, 115, 112, 112, 114, 116, 112, 116, 119, 99, 119, 122, 115, 114, 114, 101, 113, 105, 111, 98, 127, 122, 109, 111, 116, 118, 105, 127, 114, 113, 75, 117, 135, 116, 128, 103, 106, 110, 124, 110, 118, 81, 103, 129, 115, 121, 112, 111, 120, 121, 116, 129, 107, 108, 107, 119, 109, 125, 115, 113, 123, 123, 109, 102, 117, 124, 126, 126, 115, 135, 132, 125, 127, 112, 98, 122, 108, 127, 131, 108, 106, 110, 116, 119, 110, 101, 129, 120, 121, 122, 120, 114, 110, 117, 115, 109, 113, 112, 105, 121, 112, 116, 105, 126, 134, 96, 116, 114, 123, 93, 106, 125, 112, 125, 95, 118, 105, 120, 116, 99, 117, 97, 111, 123, 121, 121, 116, 106, 121, 116, 121, 110, 125, 120, 106, 111, 106, 111, 120, 102, 122, 109, 113, 121, 109, 94, 119, 115, 118, 82, 114, 113, 107, 121, 119, 118, 109, 127, 107, 118, 108, 116, 109, 109, 121, 116, 119, 95, 119, 95, 122, 118, 121, 95, 120, 135, 110, 128, 135, 130, 136, 94, 118, 112, 108, 106, 115, 125, 119, 107, 126, 118, 109, 117, 112, 119, 122, 110, 135, 111, 108, 120, 131, 114, 119, 98, 112, 111, 132, 133, 122, 124, 122, 109, 114, 86, 115, 108, 106, 89, 95, 99, 116, 103, 104, 129, 132, 126, 105, 125, 121, 124, 107, 105, 114, 106, 126, 112, 100, 118, 119, 110, 110, 112, 109, 126, 124, 125, 120, 102, 107, 120, 97, 117, 128, 111, 130, 133, 104, 108, 116, 129, 116, 109, 120, 142, 113, 110, 120, 110, 125, 110, 110, 114, 124, 108, 111, 115, 120, 116, 115, 123, 106, 119, 129, 111, 113, 116, 120, 121, 113, 110, 116, 112, 110, 118, 115, 117, 112, 113, 110, 119, 122, 113, 124, 115, 131, 122, 124, 113, 124, 115, 123, 123, 145, 117, 117, 109, 139, 69, 109, 113, 69, 122, 118, 112, 113, 124, 122, 115, 119, 119, 124, 118, 126, 124, 109, 111, 104, 128, 115, 115, 111, 120, 107, 101, 99, 117, 129, 114, 120, 127, 130, 119, 123, 125, 112, 111, 114, 123, 121, 133, 113, 118, 114, 119, 109, 117, 119, 117, 119, 130, 104, 112, 112, 120, 109, 122, 114, 128, 115, 117, 111, 112, 112, 119, 121, 122, 111, 105, 116, 117, 109, 117, 109, 115, 110, 122, 117, 109, 123, 111, 109, 115, 118, 107, 125, 114, 121, 119, 102, 124, 102, 125, 110, 116, 119, 124, 118, 119, 110, 114, 116, 108, 116, 122, 128, 118, 117, 122, 119, 117, 124, 113, 113, 118, 116, 123, 114, 108, 116, 120, 116, 125, 118, 112, 113, 104, 119, 114, 116, 114, 107, 121, 119, 122, 109, 102, 111, 118, 118, 113, 110, 114, 105, 114, 120, 115, 132, 125, 111, 114, 107, 101, 124, 110, 117, 114, 122, 111, 117, 111, 104, 118, 97, 121, 123, 102, 112, 115, 127, 106, 120, 110, 125, 113, 115, 110, 109, 112, 109, 128, 120, 114, 115, 106, 103, 115, 112, 115, 117, 113, 123, 118, 116, 119, 128, 120, 115, 118, 115, 120, 122, 111, 116, 113, 112, 120, 124, 117, 113, 119, 109, 117, 107, 106, 79, 118, 109, 111, 120, 114, 122, 109, 101, 120, 119, 113, 114, 119, 121, 110, 102, 109, 125, 107, 107, 129, 116, 101, 111, 116, 119, 111, 115, 107, 114, 110, 117, 121, 121, 113, 119, 112, 121, 119, 97, 116, 124, 133, 105, 117, 98, 112, 119, 111, 135, 107, 107, 113, 117, 120, 119, 114, 113, 111, 114, 140, 109, 123, 118, 117, 104, 114, 110, 123, 124, 120, 122, 124, 119, 122, 104, 112, 108, 117, 107, 113, 114, 111, 117, 122, 120, 119, 117, 110, 118, 116, 119, 107, 111, 110, 114, 116, 113, 121, 115, 118, 114, 115, 121, 104, 116, 98, 126, 118, 109, 121, 133, 122, 107, 106, 113, 127, 116, 111, 112, 121, 118, 114, 115, 123, 127, 111, 116, 116, 121, 111, 109, 101, 113, 111, 130, 111, 114, 114, 106, 114, 124, 116, 104, 116, 111, 115, 118, 119, 115, 122, 117, 114, 111, 115, 115, 120, 112, 113, 114, 121, 111, 104, 113, 120, 110, 132, 123, 117, 116, 114, 114, 122, 121, 124, 116, 120, 116, 115, 118, 124, 116, 110, 127, 99, 118, 115, 113, 113, 103, 123, 107, 113, 114, 118, 118, 122, 114, 117, 120, 113, 113, 117, 129, 125, 115, 115, 117, 108, 111, 120, 123, 117, 111, 103, 116, 118, 118, 122, 125, 118, 122, 117, 121, 117, 108, 101, 109, 121, 114, 110, 117, 105, 110, 110, 112, 122, 127, 96, 125, 118, 122, 111, 119, 106, 126, 125, 112, 123, 117, 118, 119, 116, 124, 125, 110, 113, 112, 127, 112, 129, 114, 102, 128, 108, 122, 111, 112, 121, 117, 121, 117, 105, 114, 118, 112, 113, 116, 119, 124, 113, 107, 115, 116, 106, 113, 125, 117, 120, 106, 119, 111, 130, 110, 99, 108, 111, 117, 115, 114, 99, 123, 123, 110, 102, 112, 112, 119, 116, 118, 108, 120, 122, 122, 114, 129, 125, 111, 122, 105, 117, 118, 116, 124, 109, 132, 115, 120, 112, 102, 118, 112, 127, 116, 116, 133, 102, 116, 124, 106, 116, 126, 104, 116, 118, 111, 119, 111, 118, 121, 121, 108, 120, 134, 121, 102, 114, 114, 112, 125, 120, 117, 115, 137, 117, 111, 119, 109, 110, 117, 106, 110, 120, 112, 112, 113, 108, 109, 118, 110, 114, 117, 118, 118, 125, 122, 120, 112, 119, 108, 102, 110, 99, 125, 119, 118, 108, 113, 105, 120, 110, 124, 110, 113, 112, 120, 116, 126, 118, 108, 106, 120, 121, 117, 112, 111, 113, 124, 103, 128, 115, 124, 124, 111, 104, 119, 115, 118, 115, 118, 121, 112, 116, 120, 113, 125, 94, 127, 114, 116, 114, 119, 120, 104, 112, 102, 113, 116, 115, 113, 109, 107, 105, 115, 113, 124, 117, 113, 122, 116, 107, 107, 108, 127, 117, 112, 117, 110, 121, 114, 108, 109, 125, 127, 121, 116, 113, 113, 124, 121, 107, 116, 107, 116, 107, 116, 104, 109, 111, 119, 110, 116, 124, 124, 111, 123, 114, 108, 95, 117, 104, 123, 114, 113, 112, 107, 115, 111, 119, 108, 121, 117, 122, 120, 92, 115, 100, 108, 115, 133, 116, 123, 117, 126, 121, 106, 116, 116, 130, 119, 117, 115, 124, 130, 115, 105, 119, 116, 104, 114, 124, 122, 111, 109, 114, 126, 118, 113, 118, 129, 112, 121, 98, 117, 114, 111, 112, 121, 114, 122, 123, 121, 108, 109, 111, 115, 117, 113, 107, 121, 116, 122, 116, 113, 112, 119, 117, 114, 122, 127, 126, 118, 119, 113, 111, 123, 126, 129, 125, 115, 118, 126, 129, 114, 120, 115, 112, 135, 118, 117, 124, 109, 114, 114, 119, 104, 113, 120, 118, 113, 111, 109, 103, 120, 112, 120, 120, 111, 125, 115, 121, 120, 112, 133, 121, 131, 125, 99, 119, 114, 112, 114, 115, 99, 120, 132, 88, 109, 108, 120, 114, 121, 114, 124, 116, 102, 129, 127, 112, 113, 118, 110, 110, 124, 107, 118, 102, 108, 131, 119, 118, 118, 106, 114, 121, 126, 108, 117, 114, 122, 106, 107, 128, 109, 106, 112, 119, 118, 106, 114, 127, 127, 122, 118, 113, 117, 127, 131, 112, 111, 114, 108, 105, 105, 112, 122, 106, 119, 121, 114, 133, 119, 113, 116, 119, 119, 115, 116, 105, 115, 123, 113, 126, 118, 110, 114, 112, 121, 121, 142, 126, 124, 116, 113, 108, 121, 97, 112, 106, 111, 125, 111, 109, 124, 118, 120, 97, 118, 135, 105, 114, 106, 99, 109, 113, 128, 107, 122, 111, 120, 120, 124, 103, 128, 125, 118, 110, 114, 118, 123, 117, 123, 119, 119, 113, 108, 107, 106, 114, 101, 112, 116, 113, 78, 124, 116, 108, 134, 111, 107, 121, 116, 104, 120, 114, 112, 112, 124, 126, 120, 111, 111, 127, 114, 117, 123, 131, 118, 105, 138, 112, 111, 113, 108, 118, 112, 116, 107, 117, 124, 128, 113, 116, 121, 118, 99, 105, 120, 112, 117, 130, 96, 113, 118, 109, 129, 118, 109, 121, 111, 101, 96, 128, 103, 136, 118, 111, 114, 111, 112, 128, 107, 98, 117, 115, 107, 119, 112, 122, 110, 118, 110, 132, 108, 121, 123, 117, 113, 118, 121, 115, 126, 123, 129, 111, 114, 127, 116, 109, 120, 116, 99, 109, 108, 113, 119, 121, 110, 108, 112, 109, 123, 129, 118, 137, 124, 116, 119, 114, 116, 106, 109, 113, 112, 120, 111, 112, 112, 123, 117, 100, 117, 112, 107, 102, 112, 124, 104, 105, 123, 103, 134, 109, 108, 118, 117, 115, 120, 118, 112, 101, 108, 102, 117, 112, 104, 115, 116, 109, 112, 113, 98, 128, 113, 98, 114, 105, 113, 110, 132, 114, 115, 112, 115, 99, 128, 110, 115, 125, 116, 109, 123, 112, 109, 123, 106, 112, 117, 114, 116, 107, 109, 106, 128, 130, 108, 99, 125, 109, 115, 118, 115, 121, 106, 125, 117, 120, 117, 128, 121, 109, 124, 115, 101, 118, 113, 110, 125, 120, 128, 115, 109, 117, 117, 112, 130, 120, 107, 115, 136, 119, 114, 110, 128, 123, 123, 119, 106, 103, 116, 122, 125, 133, 106, 107, 113, 115, 106, 111, 121, 110, 126, 109, 120, 103, 108, 115, 112, 117, 122, 113, 112, 108, 139, 121, 112, 103, 114, 116, 119, 118, 111, 133, 108, 125, 115, 119, 111, 114, 120, 101, 118, 123, 110, 116, 114, 113, 112, 121, 112, 144, 111, 112, 95, 120, 116, 124, 103, 106, 123, 112, 105, 109, 106, 110, 107, 121, 131, 112, 110, 100, 113, 116, 115, 109, 107, 113, 107, 122, 123, 114, 113, 113, 114, 119, 123, 121, 106, 112, 126, 109, 119, 112, 111, 116, 107, 102, 108, 103, 119, 108, 115, 107, 114, 121, 107, 117, 113, 136, 120, 124, 118, 122, 112, 113, 117, 108, 118, 118, 120, 127, 107, 124, 113, 108, 108, 117, 107, 113, 113, 112, 107, 121, 133, 112, 103, 125, 116, 113, 133, 113, 104, 110, 106, 101, 112, 121, 115, 109, 117, 121, 109, 117, 117, 116, 102, 116, 101, 122, 141, 124, 119, 109, 120, 115, 124, 113, 120, 113, 106, 131, 110, 115, 124, 114, 136, 113, 108, 121, 104, 120, 109, 113, 120, 106, 119, 102, 112, 107, 105, 117, 104, 128, 114, 119, 112, 104, 118, 141, 113, 116, 88, 119, 131, 121, 116, 126, 108, 120, 109, 119, 137, 122, 105, 123, 119, 109, 113, 95, 113, 115, 113, 118, 116, 117, 118, 131, 120, 125, 114, 121, 112, 119, 126, 117, 117, 103, 103, 114, 115, 114, 111, 94, 105, 120, 114, 123, 111, 115, 113, 114, 124, 113, 100, 122, 98, 106, 119, 117, 118, 114, 119, 112, 121, 127, 121, 129, 106, 112, 107, 107, 135, 117, 120, 109, 114, 107, 113, 106, 129, 124, 117, 119, 115, 128, 115, 115, 150, 113, 125, 118, 122, 118, 123, 114, 115, 129, 124, 93, 98, 106, 105, 122, 108, 125, 101, 102, 114, 113, 130, 124, 111, 119, 115, 119, 109, 121, 119, 119, 134, 107, 95, 114, 107, 104, 105, 111, 109, 114, 110, 114, 119, 109, 98, 119, 113, 119, 100, 118, 102, 133, 121, 119, 107, 127, 120, 131, 115, 113, 111, 127, 124, 130, 104, 114, 116, 109, 126, 114, 118, 120, 117, 113, 103, 116, 126, 98, 107, 115, 110, 105, 106, 111, 104, 107, 107, 128, 115, 108, 112, 103, 115, 110, 116, 110, 117, 113, 115, 114, 111, 116, 115, 124, 105, 103, 110, 123, 113, 115, 118, 118, 106, 124, 107, 108, 113, 125, 111, 108, 114, 124, 123, 106, 104, 109, 129, 93, 110, 114, 121, 108, 121, 111, 122, 108, 121, 113, 125, 113, 113, 127, 113, 132, 114, 99, 128, 112, 118, 122, 100, 100, 111, 115, 128, 113, 125, 135, 120, 109, 108, 130, 113, 116, 130, 121, 113, 107, 111, 126, 108, 119, 109, 111, 112, 104, 110, 132, 113, 119, 107, 110, 117, 126, 113, 116, 121, 109, 119, 117, 120, 122, 117, 122, 110, 128, 123, 111, 116, 119, 117, 115, 107, 113, 126, 125, 116, 120, 112, 121, 111, 114, 113, 113, 130, 118, 113, 111, 107, 108, 118, 112, 109, 116, 118, 124, 104, 123, 132, 129, 113, 110, 118, 115, 118, 126, 113, 119, 111, 120, 125, 127, 121, 99, 106, 121, 119, 127, 115, 125, 102, 118, 106, 117, 101, 116, 99, 112, 120, 104, 117, 124, 110, 108, 114, 117, 114, 121, 109, 119, 118, 110, 116, 114, 115, 112, 103, 122, 111, 110, 110, 126, 124, 122, 106, 118, 114, 109, 109, 106, 114, 118, 103, 125, 132, 126, 125, 113, 119, 115, 130, 127, 112, 125, 114, 104, 110, 105, 103, 108, 118, 107, 114, 114, 125, 126, 115, 122, 119, 113, 106, 121, 125, 116, 115, 108, 105, 110, 128, 121, 111, 123, 126, 112, 107, 91, 123, 119, 123, 117, 112, 88, 104, 123, 110, 112, 115, 102, 118, 113, 109, 119, 112, 102, 103, 108, 123, 120, 114, 104, 131, 117, 109, 105, 110, 119, 128, 127, 101, 118, 103, 102, 109, 105, 110, 104, 110, 112, 120, 112, 113, 115, 128, 109, 109, 105, 107, 105, 117, 110, 112, 121, 111, 113, 118, 120, 107, 113, 120, 113, 117, 114, 102, 126, 111, 114, 118, 115, 112, 113, 119, 110, 104, 120, 119, 104, 113, 117, 108, 111, 123, 119, 122, 108, 116, 107, 123, 130, 109, 103, 119, 113, 128, 101, 115, 108, 116, 118, 105, 109, 119, 118, 119, 116, 129, 119, 111, 118, 110, 132, 110, 113, 103, 111, 142, 113, 130, 123, 106, 113, 112, 119, 109, 111, 121, 105, 125, 116, 120, 126, 102, 96, 112, 121, 108, 107, 127, 115, 104, 116, 117, 112, 116, 117, 125, 109, 133, 106, 111, 124, 125, 120, 113, 124, 119, 123, 107, 62, 105, 97, 130, 128, 121, 123, 123, 121, 127, 114, 113, 120, 116, 113, 114, 105, 120, 125, 120, 113, 110, 127, 119, 126, 109, 125, 120, 116, 104, 125, 105, 113, 103, 68, 110, 110, 88, 110, 125, 106, 113, 112, 123, 112, 111, 129, 111, 120, 113, 113, 114, 113, 128, 119, 119, 134, 121, 123, 116, 108, 107, 113, 117, 109, 121, 108, 122, 115, 120, 131, 131, 113, 115, 123, 122, 103, 125, 121, 100, 121, 126, 105, 112, 116, 123, 124, 119, 101, 121, 114, 112, 116, 121, 113, 87, 118, 117, 113, 116, 114, 125, 126, 119, 112, 111, 124, 107, 113, 117, 107, 124, 126, 125, 99, 116, 97, 91, 130, 110, 117, 117, 122, 117, 124, 121, 121, 94, 114, 112, 110, 111, 98, 108, 116, 112, 110, 113, 115, 115, 114, 129, 94, 115, 110, 106, 116, 128, 120, 112, 111, 110, 110, 106, 112, 124, 116, 119, 102, 100, 114, 116, 108, 107, 109, 111, 103, 112, 128, 109, 124, 118, 120, 123, 120, 129, 113, 112, 117, 116, 115, 133, 128, 95, 124, 112, 110, 107, 96, 106, 107, 118, 122, 129, 110, 116, 112, 103, 123, 93, 114, 115, 92, 124, 115, 118, 117, 121, 119, 127, 121, 117, 125, 119, 115, 107, 106, 102, 118, 114, 115, 117, 111, 120, 120, 117, 113, 122, 81, 115, 92, 120, 111, 114, 95, 121, 107, 115, 114, 109, 113, 130, 116, 103, 111, 98, 122, 117, 130, 120, 115, 104, 105, 117, 115, 125, 132, 118, 112, 112, 109, 114, 110, 86, 124, 121, 118, 116, 127, 112, 116, 115, 121, 102, 114, 107, 109, 123, 117, 103, 120, 109, 114, 114, 119, 106, 103, 116, 113, 107, 108, 111, 108, 124, 134, 116, 123, 123, 115, 120, 115, 140, 104, 98, 113, 114, 133, 102, 119, 114, 119, 109, 142, 116, 119, 112, 124, 115, 120, 109, 113, 127, 114, 119, 120, 119, 116, 122, 116, 110, 107, 126, 117, 114, 110, 94, 114, 113, 110, 119, 111, 119, 118, 118, 122, 84, 118, 116, 117, 119, 115, 113, 110, 119, 133, 122, 121, 121, 114, 115, 121, 115, 119, 113, 115, 128, 110, 100, 117, 112, 108, 115, 112, 128, 123, 126, 115, 113, 116, 110, 108, 116, 105, 118, 123, 114, 118, 119, 113, 117, 114, 117, 119, 121, 118, 113, 127, 124, 119, 85, 107, 130, 106, 123, 122, 124, 110, 90, 125, 115, 116, 119, 111, 114, 120, 115, 131, 103, 99, 104, 117, 119, 113, 123, 126, 120, 116, 118, 129, 122, 111, 104, 117, 92, 107, 122, 104, 111, 105, 110, 125, 110, 113, 120, 116, 119, 108, 130, 122, 118, 113, 117, 110, 103, 113, 114, 100, 115, 111, 120, 115, 133, 117, 119, 117, 120, 118, 129, 111, 104, 109, 113, 106, 115, 112, 120, 123, 105, 114, 126, 118, 112, 116, 113, 114, 116, 120, 118, 114, 116, 102, 113, 106, 117, 109, 116, 115, 110, 114, 123, 114, 112, 122, 112, 112, 115, 111, 111, 111, 114, 116, 105, 129, 115, 101, 117, 118, 113, 119, 108, 121, 109, 122, 109, 115, 114, 118, 111, 120, 112, 114, 115, 108, 134, 116, 122, 115, 116, 113, 116, 110, 127, 114, 117, 113, 87, 108, 117, 106, 98, 119, 118, 118, 117, 114, 121, 119, 102, 109, 110, 114, 92, 104, 119, 117, 106, 117, 119, 105, 112, 110, 108, 112, 128, 113, 114, 122, 120, 115, 111, 111, 111, 110, 116, 112, 119, 112, 112, 106, 115, 117, 122, 117, 112, 121, 125, 111, 115, 116, 115, 113, 114, 121, 93, 104, 113, 120, 123, 112, 108, 118, 115, 117, 105, 112, 112, 118, 141, 116, 122, 114, 112, 120, 118, 112, 102, 108, 123, 122, 80, 139, 106, 115, 117, 111, 116, 118, 117, 107, 120, 121, 114, 115, 119, 125, 118, 117, 116, 109, 115, 118, 115, 114, 113, 125, 114, 114, 118, 115, 115, 118, 120, 118, 115, 107, 117, 104, 113, 109, 112, 115, 112, 116, 109, 122, 122, 118, 115, 125, 112, 112, 105, 113, 122, 117, 120, 114, 120, 112, 111, 112, 115, 113, 105, 106, 105, 115, 124, 116, 114, 121, 119, 115, 123, 112, 122, 112, 107, 105, 121, 114, 49, 117, 116, 121, 110, 115, 107, 109, 116, 128, 112, 117, 113, 117, 109, 110, 115, 127, 115, 110, 117, 121, 117, 122, 121, 118, 119, 116, 112, 113, 114, 118, 119, 115, 114, 94, 121, 112, 113, 119, 111, 109, 110, 117, 111, 116, 119, 106, 113, 124, 107, 93, 103, 109, 112, 113, 119, 116, 112, 120, 118, 123, 122, 113, 115, 115, 114, 99, 115, 109, 113, 118, 118, 108, 121, 122, 122, 115, 111, 104, 125, 116, 123, 133, 120, 109, 108, 113, 112, 111, 117, 116, 101, 114, 116, 103, 121, 107, 117, 122, 108, 112, 106, 116, 119, 117, 113, 118, 114, 116, 115, 121, 111, 111, 123, 112, 117, 117, 112, 114, 113, 123, 125, 112, 113, 109, 127, 119, 112, 116, 120, 112, 109, 117, 118, 112, 120, 116, 111, 111, 120, 115, 112, 118, 122, 121, 105, 112, 114, 109, 113, 116, 117, 121, 111, 121, 121, 119, 116, 122, 114, 113, 115, 113, 108, 118, 116, 119, 121, 116, 116, 115, 118, 123, 129, 108, 119, 110, 108, 118, 114, 113, 112, 117, 115, 118, 123, 120, 113, 114, 117, 117, 114, 115, 111, 120, 111, 114, 118, 111, 118, 117, 111, 100, 118, 111, 123, 115, 108, 112, 114, 118, 120, 119, 118, 116, 122, 123, 113, 134, 111, 116, 115, 109, 113, 108, 120, 112, 107, 113, 110, 123, 122, 114, 120, 115, 115, 110, 116, 121, 123, 113, 140, 115, 119, 116, 107, 123, 113, 119, 116, 111, 113, 111, 115, 105, 119, 121, 113, 110, 109, 114, 104, 119, 118, 110, 117, 120, 113, 116, 117, 118, 121, 112, 111, 115, 119, 114, 114, 120, 108, 120, 120, 108, 109, 116, 102, 125, 119, 105, 114, 109, 117, 105, 127, 123, 108, 111, 115, 118, 117, 116, 114, 122, 121, 108, 126, 121, 113, 112, 104, 121, 113, 121, 115, 114, 112, 113, 117, 109, 115, 111, 122, 110, 114, 116, 117, 122, 117, 132, 105, 109, 120, 109, 120, 114, 120, 105, 109, 126, 104, 122, 108, 114, 115, 97, 104, 109, 120, 112, 112, 124, 122, 116, 110, 121, 107, 127, 111, 119, 107, 115, 116, 108, 115, 114, 115, 114, 104, 113, 119, 115, 109, 115, 120, 121, 113, 121, 113, 108, 116, 116, 110, 117, 101, 105, 113, 116, 122, 117, 112, 121, 120, 118, 122, 123, 121, 118, 122, 124, 106, 111, 114, 113, 119, 105, 111, 111, 116, 112, 115, 116, 112, 118, 99, 113, 105, 119, 115, 122, 110, 114, 116, 108, 109, 117, 113, 123, 127, 118, 123, 113, 110, 109, 121, 113, 105, 134, 111, 107, 122, 109, 113, 113, 108, 126, 117, 113, 119, 119, 111, 112, 122, 116, 120, 122, 126, 113, 116, 126, 114, 115, 118, 113, 122, 121, 112, 109, 109, 123, 118, 111, 124, 129, 114, 110, 88, 111, 116, 113, 116, 115, 122, 106, 85, 113, 101, 133, 115, 111, 119, 125, 119, 105, 116, 113, 113, 115, 117, 113, 110, 111, 122, 112, 111, 108, 111, 117, 116, 108, 117, 109, 120, 122, 114, 110, 122, 95, 121, 118, 115, 114, 115, 128, 119, 104, 130, 106, 117, 112, 123, 108, 126, 113, 115, 116, 120, 125, 119, 109, 117, 116, 123, 101, 117, 116, 119, 107, 124, 109, 97, 113, 135, 118, 111, 109, 115, 111, 109, 103, 112, 114, 112, 107, 116, 119, 115, 122, 110, 105, 102, 111, 104, 121, 127, 110, 108, 95, 129, 118, 116, 113, 110, 114, 115, 118, 134, 122, 108, 100, 107, 108, 120, 114, 116, 122, 108, 122, 103, 113, 116, 110, 111, 109, 110, 112, 122, 117, 109, 121, 107, 118, 109, 102, 126, 116, 116, 112, 119, 119, 108, 110, 104, 116, 111, 123, 109, 112, 120, 110, 112, 117, 114, 115, 117, 115, 116, 119, 118, 117, 114, 123, 115, 109, 93, 96, 115, 106, 116, 107, 124, 120, 112, 113, 120, 136, 116, 119, 113, 122, 109, 110, 109, 121, 113, 117, 107, 127, 107, 117, 115, 115, 105, 118, 108, 114, 121, 115, 118, 113, 118, 106, 108, 112, 118, 111, 113, 118, 116, 117, 118, 124, 123, 114, 117, 116, 120, 110, 116, 114, 113, 119, 114, 114, 118, 109, 109, 115, 120, 120, 115, 122, 111, 118, 117, 113, 108, 126, 106, 132, 125, 109, 112, 120, 111, 110, 119, 101, 123, 109, 116, 117, 118, 114, 115, 126, 111, 105, 112, 117, 113, 112, 112, 109, 121, 113, 120, 114, 113, 111, 105, 109, 120, 104, 116, 120, 117, 116, 108, 118, 116, 131, 119, 107, 117, 132, 123, 120, 118, 109, 116, 109, 117, 124, 104, 120, 112, 120, 114, 107, 114, 112, 119, 125, 112, 116, 94, 113, 115, 107, 122, 122, 110, 107, 108, 113, 118, 109, 104, 118, 107, 133, 125, 121, 111, 131, 118, 108, 120, 111, 127, 136, 108, 131, 123, 103, 120, 108, 102, 121, 124, 112, 121, 106, 127, 126, 104, 120, 118, 126, 111, 125, 112, 120, 114, 117, 110, 111, 111, 113, 112, 91, 132, 103, 127, 124, 103, 108, 111, 118, 127, 112, 111, 122, 112, 127, 108, 115, 113, 121, 118, 113, 116, 130, 119, 119, 124, 115, 120, 116, 121, 112, 128, 125, 106, 105, 127, 93, 119, 118, 125, 109, 110, 114, 105, 115, 109, 123, 127, 105, 123, 129, 109, 111, 111, 118, 123, 124, 109, 110, 116, 120, 107, 129, 120, 121, 116, 106, 117, 117, 112, 107, 113, 114, 128, 115, 123, 107, 113, 120, 107, 113, 110, 104, 113, 103, 100, 122, 127, 126, 119, 124, 111, 97, 119, 122, 116, 139, 99, 114, 106, 132, 113, 115, 125, 126, 111, 112, 112, 116, 107, 119, 118, 104, 134, 101, 104, 114, 117, 101, 124, 120, 130, 120, 119, 110, 119, 114, 100, 124, 120, 117, 114, 116, 116, 119, 107, 115, 114, 107, 119, 107, 111, 114, 117, 105, 100, 114, 126, 123, 104, 107, 126, 112, 139, 121, 119, 102, 113, 113, 110, 140, 122, 97, 104, 115, 122, 127, 112, 123, 120, 105, 106, 109, 118, 109, 126, 125, 116, 101, 103, 123, 115, 121, 110, 125, 113, 110, 108, 112, 114, 122, 116, 120, 113, 114, 111, 107, 113, 111, 110, 114, 119, 123, 112, 125, 101, 115, 115, 120, 126, 102, 121, 119, 107, 125, 129, 109, 111, 110, 99, 119, 109, 109, 104, 142, 106, 120, 128, 114, 111, 113, 122, 103, 113, 115, 102, 107, 117, 112, 133, 105, 108, 126, 113, 98, 134, 113, 115, 110, 115, 108, 115, 116, 111, 124, 105, 117, 119, 112, 120, 106, 114, 108, 130, 106, 108, 123, 103, 118, 117, 109, 115, 113, 118, 113, 106, 124, 110, 121, 99, 130, 123, 111, 125, 129, 125, 112, 117, 105, 113, 110, 118, 96, 102, 108, 113, 120, 118, 119, 124, 116, 124, 119, 102, 97, 112, 101, 114, 113, 114, 120, 107, 138, 119, 119, 117, 128, 109, 113, 107, 112, 121, 109, 109, 115, 98, 111, 116, 98, 109, 106, 119, 114, 114, 103, 135, 113, 115, 111, 125, 109, 106, 109, 116, 116, 118, 104, 103, 110, 114, 112, 118, 117, 117, 122, 119, 129, 117, 109, 116, 110, 132, 113, 119, 113, 126, 117, 110, 119, 116, 111, 117, 115, 108, 112, 106, 112, 103, 121, 105, 118, 130, 116, 105, 114, 116, 124, 109, 110, 118, 117, 117, 110, 103, 114, 112, 122, 121, 118, 112, 127, 115, 122, 112, 117, 129, 114, 112, 106, 99, 122, 120, 128, 133, 115, 109, 107, 114, 116, 129, 131, 109, 116, 119, 116, 115, 112, 106, 101, 116, 106, 128, 112, 104, 113, 115, 115, 122, 105, 120, 115, 121, 124, 114, 112, 112, 115, 107, 134, 99, 112, 123, 119, 113, 122, 112, 107, 110, 115, 100, 100, 115, 102, 114, 135, 112, 130, 104, 113, 112, 115, 116, 122, 92, 109, 112, 111, 123, 118, 111, 120, 118, 104, 113, 112, 114, 108, 113, 117, 109, 117, 108, 116, 122, 108, 117, 111, 93, 108, 111, 109, 105, 123, 106, 117, 114, 116, 116, 123, 124, 118, 119, 124, 109, 114, 126, 113, 120, 119, 108, 103, 114, 107, 119, 123, 111, 106, 124, 122, 110, 110, 127, 119, 118, 106, 108, 112, 116, 115, 121, 94, 106, 120, 119, 115, 118, 116, 115, 124, 117, 116, 115, 111, 122, 106, 111, 109, 118, 119, 108, 104, 114, 121, 111, 119, 110, 117, 111, 118, 102, 114, 111, 118, 116, 121, 107, 115, 113, 111, 114, 110, 89, 118, 102, 129, 94, 120, 113, 107, 113, 108, 116, 125, 104, 134, 132, 125, 94, 119, 122, 111, 116, 108, 107, 112, 106, 140, 107, 125, 110, 114, 115, 110, 110, 124, 113, 117, 118, 125, 122, 106, 115, 118, 120, 121, 112, 128, 119, 112, 111, 111, 123, 116, 115, 110, 108, 119, 99, 118, 119, 108, 119, 115, 108, 117, 111, 103, 112, 116, 108, 106, 118, 115, 119, 121, 111, 106, 107, 109, 128, 110, 117, 112, 106, 112, 114, 120, 126, 104, 114, 117, 92, 117, 111, 110, 115, 118, 118, 113, 113, 119, 110, 114, 107, 126, 119, 117, 116, 106, 114, 115, 126, 123, 112, 116, 115, 112, 106, 129, 107, 117, 112, 118, 110, 117, 113, 113, 107, 108, 120, 126, 115, 121, 122, 116, 112, 137, 116, 126, 115, 117, 123, 120, 123, 125, 106, 127, 111, 122, 119, 122, 95, 114, 115, 109, 120, 116, 113, 110, 111, 95, 118, 115, 118, 128, 117, 119, 112, 107, 114, 92, 116, 115, 116, 110, 124, 116, 113, 114, 122, 121, 100, 114, 109, 117, 115, 96, 120, 115, 111, 119, 121, 107, 112, 116, 120, 116, 118, 124, 111, 117, 120, 113, 105, 102, 116, 114, 120, 110, 122, 109, 110, 111, 112, 103, 109, 103, 117, 106, 112, 114, 122, 113, 113, 110, 122, 112, 124, 116, 119, 126, 118, 114, 103, 118, 114, 118, 116, 119, 109, 120, 120, 114, 116, 106, 118, 100, 126, 108, 115, 115, 111, 118, 115, 127, 114, 105, 108, 103, 121, 114, 109, 108, 116, 113, 123, 96, 111, 106, 111, 115, 118, 117, 112, 114, 110, 103, 110, 120, 113, 118, 123, 124, 114, 107, 121, 112, 127, 107, 110, 120, 107, 123, 104, 102, 112, 103, 110, 134, 121, 126, 112, 119, 120, 109, 116, 115, 117, 116, 109, 109, 117, 111, 110, 126, 109, 102, 113, 112, 121, 109, 125, 118, 110, 136, 131, 105, 135, 114, 117, 129, 124, 118, 127, 119, 115, 123, 103, 104, 121, 110, 111, 110, 124, 118, 125, 108, 110, 122, 115, 113, 112, 116, 101, 119, 112, 114, 117, 121, 116, 115, 117, 118, 125, 115, 119, 117, 113, 114, 105, 122, 118, 118, 119, 111, 111, 106, 116, 114, 116, 117, 119, 109, 112, 124, 115, 121, 120, 122, 119, 110, 123, 117, 113, 109, 102, 121, 103, 118, 120, 112, 118, 116, 111, 118, 116, 112, 115, 108, 116, 112, 114, 94, 135, 110, 108, 97, 105, 93, 115, 104, 121, 110, 108, 108, 116, 120, 116, 108, 105, 100, 139, 95, 113, 129, 107, 121, 122, 102, 121, 130, 106, 112, 108, 114, 128, 108, 132, 126, 105, 130, 123, 114, 124, 124, 115, 129, 104, 105, 118, 125, 107, 107, 115, 117, 110, 109, 112, 120, 114, 117, 115, 115, 124, 114, 124, 101, 113, 111, 106, 111, 109, 119, 133, 111, 121, 133, 104, 138, 110, 119, 116, 129, 111, 117, 109, 112, 106, 122, 120, 119, 117, 123, 115, 109, 110, 117, 104, 131, 126, 113, 113, 120, 104, 108, 103, 121, 99, 136, 116, 121, 112, 103, 100, 121, 97, 111, 108, 107, 120, 114, 121, 98, 116, 111, 102, 106, 104, 113, 115, 133, 127, 123, 104, 112, 106, 124, 124, 111, 117, 106, 131, 107, 116, 113, 106, 119, 127, 108, 107, 107, 111, 117, 122, 108, 120, 114, 109, 126, 115, 112, 120, 125, 126, 107, 116, 118, 110, 113, 106, 113, 112, 105, 121, 131, 103, 104, 95, 116, 109, 110, 111, 99, 102, 114, 105, 90, 108, 119, 108, 103, 124, 113, 107, 106, 118, 110, 109, 99, 123, 110, 108, 118, 121, 128, 102, 107, 119, 133, 110, 125, 109, 103, 112, 114, 114, 105, 110, 126, 114, 108, 112, 116, 112, 115, 116, 123, 121, 103, 101, 116, 106, 113, 118, 117, 121, 107, 108, 108, 110, 116, 108, 121, 125, 127, 111, 106, 107, 104, 128, 130, 119, 112, 113, 116, 114, 123, 113, 117, 106, 111, 125, 106, 102, 102, 115, 115, 103, 105, 113, 113, 116, 104, 118, 128, 128, 111, 111, 125, 111, 126, 126, 112, 114, 108, 118, 113, 123, 119, 114, 112, 119, 122, 123, 121, 116, 110, 126, 113, 111, 116, 106, 110, 122, 129, 114, 113, 123, 109, 105, 131, 103, 103, 107, 110, 109, 119, 113, 114, 126, 119, 106, 115, 116, 114, 112, 122, 117, 117, 119, 124, 119, 115, 117, 122, 121, 120, 108, 112, 120, 113, 109, 122, 111, 123, 110, 94, 101, 111, 126, 107, 125, 119, 114, 122, 111, 136, 119, 117, 116, 109, 113, 113, 100, 118, 115, 100, 109, 112, 131, 113, 107, 122, 112, 141, 110, 123, 111, 104, 105, 125, 102, 107, 106, 110, 116, 134, 109, 127, 103, 114, 114, 115, 109, 106, 119, 124, 109, 128, 99, 120, 117, 114, 120, 121, 95, 117, 107, 119, 108, 124, 109, 117, 107, 105, 111, 116, 106, 119, 122, 118, 121, 100, 100, 113, 98, 100, 112, 110, 114, 114, 113, 111, 122, 121, 103, 118, 117, 119, 122, 97, 109, 123, 109, 105, 119, 120, 118, 116, 115, 118, 106, 111, 101, 102, 107, 112, 107, 123, 112, 108, 120, 107, 118, 105, 112, 100, 124, 107, 97, 126, 118, 107, 106, 108, 109, 98, 114, 105, 118, 124, 119, 111, 119, 121, 117, 120, 117, 109, 126, 116, 115, 122, 116, 113, 122, 117, 114, 120, 114, 106, 109, 96, 125, 110, 108, 111, 110, 114, 133, 122, 115, 114, 113, 116, 117, 119, 116, 106, 119, 110, 110, 116, 119, 115, 112, 102, 112, 106, 111, 98, 119, 110, 117, 107, 120, 119, 100, 118, 128, 116, 116, 120, 124, 128, 114, 127, 111, 119, 115, 108, 126, 119, 113, 116, 114, 108, 110, 116, 123, 115, 102, 106, 119, 128, 119, 125, 112, 121, 113, 109, 116, 120, 111, 105, 117, 93, 114, 90, 116, 124, 116, 121, 127, 120, 108, 117, 122, 118, 108, 106, 115, 125, 102, 117, 108, 122, 117, 117, 111, 113, 117, 103, 114, 125, 110, 114, 109, 125, 110, 126, 124, 109, 110, 119, 108, 120, 119, 92, 109, 128, 118, 120, 106, 113, 102, 133, 115, 104, 124, 124, 117, 113, 119, 107, 115, 119, 118, 108, 120, 113, 120, 119, 119, 111, 118, 93, 112, 106, 118, 119, 114, 114, 100, 129, 111, 120, 130, 115, 115, 122, 120, 119, 118, 108, 109, 121, 123, 98, 133, 111, 132, 99, 115, 110, 118, 120, 98, 117, 117, 111, 117, 114, 104, 119, 110, 123, 120, 111, 110, 119, 122, 105, 116, 121, 106, 113, 112, 115, 115, 111, 120, 111, 107, 123, 111, 115, 114, 107, 117, 117, 123, 115, 97, 113, 103, 122, 120, 110, 109, 115, 112, 106, 120, 113, 127, 130, 114, 114, 113, 127, 104, 115, 105, 135, 110, 120, 117, 106, 112, 129, 113, 120, 108, 107, 121, 119, 111, 111, 101, 117, 116, 108, 118, 122, 104, 135, 123, 104, 113, 99, 111, 115, 109, 112, 120, 105, 115, 123, 129, 121, 112, 113, 98, 110, 111, 114, 108, 117, 108, 118, 121, 116, 120, 125, 118, 101, 117, 92, 101, 111, 117, 119, 105, 119, 115, 109, 109, 114, 110, 109, 113, 127, 126, 110, 110, 103, 109, 106, 112, 109, 124, 115, 113, 125, 112, 117, 102, 95, 114, 108, 109, 119, 91, 103, 103, 99, 93, 121, 105, 108, 116, 121, 133, 91, 121, 119, 114, 121, 121, 130, 103, 103, 102, 105, 110, 113, 115, 116, 120, 120, 117, 119, 107, 111, 113, 113, 119, 127, 111, 105, 107, 117, 115, 126, 117, 116, 125, 117, 119, 105, 111, 123, 114, 104, 105, 116, 118, 123, 114, 120, 104, 93, 116, 113, 116, 122, 113, 110, 123, 122, 118, 115, 127, 112, 120, 128, 112, 115, 110, 122, 109, 118, 112, 117, 125, 124, 116, 109, 126, 108, 111, 117, 121, 117, 123, 115, 122, 100, 110, 109, 114, 114, 109, 130, 125, 124, 109, 98, 103, 129, 116, 108, 124, 107, 126, 118, 101, 136, 115, 140, 112, 113, 118, 108, 103, 109, 113, 117, 118, 111, 125, 104, 117, 123, 105, 120, 107, 111, 110, 121, 113, 117, 121, 108, 109, 127, 94, 119, 115, 111, 119, 122, 119, 116, 110, 121, 102, 122, 122, 122, 111, 115, 111, 110, 114, 87, 118, 106, 112, 125, 119, 126, 118, 111, 114, 122, 98, 127, 118, 121, 114, 105, 115, 108, 115, 113, 118, 105, 110, 113, 117, 120, 106, 106, 99, 113, 117, 105, 114, 114, 108, 107, 100, 107, 117, 117, 123, 124, 110, 116, 116, 114, 121, 117, 143, 125, 116, 117, 114, 115, 119, 113, 112, 115, 123, 106, 103, 117, 112, 108, 115, 119, 116, 114, 117, 124, 113, 124, 125, 106, 125, 114, 112, 114, 120, 115, 114, 103, 109, 116, 111, 94, 130, 121, 107, 114, 123, 117, 108, 116, 105, 111, 109, 115, 120, 113, 109, 111, 117, 105, 106, 119, 120, 112, 117, 113, 124, 107, 112, 129, 98, 112, 121, 98, 106, 119, 114, 126, 102, 127, 121, 112, 105, 127, 116, 110, 112, 120, 105, 122, 104, 126, 106, 100, 121, 118, 104, 117, 109, 128, 107, 110, 105, 111, 142, 114, 110, 141, 117, 131, 113, 116, 87, 128, 101, 130, 106, 98, 103, 112, 109, 123, 114, 106, 129, 114, 123, 112, 114, 125, 108, 114, 115, 117, 126, 110, 122, 113, 116, 133, 135, 116, 118, 114, 118, 115, 115, 115, 116, 113, 122, 119, 116, 111, 120, 126, 126, 110, 124, 109, 107, 119, 115, 113, 108, 122, 113, 109, 110, 114, 99, 99, 104, 135, 115, 114, 116, 113, 116, 107, 104, 113, 105, 117, 134, 110, 109, 120, 122, 102, 119, 112, 116, 121, 102, 123, 115, 111, 113, 112, 108, 103, 113, 123, 117, 111, 137, 114, 111, 120, 111, 126, 129, 104, 122, 115, 103, 132, 109, 116, 119, 125, 115, 121, 126, 127, 118, 121, 120, 126, 119, 115, 134, 111, 111, 116, 104, 116, 124, 99, 107, 125, 127, 114, 116, 113, 112, 100, 86, 114, 104, 117, 111, 111, 111, 113, 111, 98, 80, 104, 113, 109, 97, 112, 109, 95, 116, 120, 126, 124, 122, 121, 126, 106, 101, 113, 110, 108, 108, 91, 136, 107, 130, 114, 116, 113, 143, 120, 113, 93, 104, 128, 102, 127, 110, 115, 103, 109, 119, 107, 123, 101, 114, 106, 102, 107, 117, 125, 128, 122, 112, 118, 99, 130, 109, 126, 125, 124, 100, 117, 103, 117, 116, 107, 122, 111, 121, 126, 117, 130, 104, 117, 125, 110, 106, 97, 106, 127, 106, 107, 128, 114, 122, 126, 112, 123, 118, 106, 105, 118, 111, 113, 117, 104, 123, 121, 106, 106, 105, 115, 111, 106, 119, 103, 111, 101, 120, 100, 117, 118, 115, 120, 112, 128, 109, 103, 116, 117, 107, 105, 111, 132, 124, 106, 113, 109, 125, 126, 129, 103, 115, 117, 120, 109, 115, 113, 105, 114, 113, 118, 122, 116, 116, 107, 111, 101, 136, 120, 108, 106, 107, 118, 122, 103, 128, 95, 126, 106, 117, 114, 113, 105, 124, 123, 124, 109, 113, 113, 119, 121, 118, 113, 116, 113, 116, 120, 119, 120, 129, 127, 123, 118, 113, 113, 113, 122, 119, 110, 114, 128, 120, 105, 110, 112, 116, 118, 133, 125, 117, 118, 104, 95, 101, 119, 118, 118, 109, 98, 119, 131, 115, 106, 112, 112, 126, 116, 151, 120, 134, 129, 116, 123, 107, 111, 100, 112, 127, 101, 112, 115, 111, 114, 121, 125, 116, 112, 103, 106, 112, 115, 114, 119, 118, 117, 123, 111, 128, 105, 114, 119, 121, 109, 119, 128, 113, 119, 119, 122, 111, 119, 115, 123, 107, 115, 118, 111, 109, 96, 117, 111, 113, 113, 121, 121, 117, 110, 115, 112, 110, 110, 122, 111, 109, 126, 122, 116, 110, 107, 121, 119, 115, 114, 109, 111, 119, 115, 113, 107, 113, 118, 119, 117, 117, 104, 123, 114, 114, 120, 117, 121, 115, 104, 116, 120, 108, 121, 123, 103, 117, 115, 109, 122, 116, 116, 124, 112, 109, 103, 117, 114, 113, 117, 105, 117, 116, 122, 119, 118, 117, 114, 115, 108, 112, 115, 116, 117, 113, 109, 123, 105, 123, 117, 114, 115, 107, 107, 118, 103, 115, 119, 111, 120, 104, 118, 114, 120, 119, 116, 126, 111, 109, 117, 115, 118, 110, 108, 114, 125, 112, 126, 111, 113, 122, 116, 111, 117, 102, 113, 109, 111, 107, 114, 109, 112, 104, 117, 113, 122, 126, 121, 119, 120, 119, 109, 109, 121, 115, 108, 122, 118, 111, 125, 115, 113, 112, 111, 112, 124, 114, 99, 119, 102, 114, 108, 112, 113, 123, 110, 117, 109, 118, 107, 119, 116, 110, 113, 121, 120, 125, 119, 111, 117, 111, 116, 121, 113, 110, 115, 105, 97, 121, 113, 115, 113, 122, 113, 106, 117, 115, 130, 112, 115, 110, 109, 112, 118, 108, 110, 109, 117, 119, 134, 116, 115, 123, 114, 112, 118, 98, 125, 111, 118, 103, 120, 116, 115, 117, 112, 128, 115, 109, 120, 112, 111, 105, 117, 107, 120, 110, 116, 113, 118, 117, 114, 99, 107, 107, 113, 124, 107, 122, 110, 114, 121, 96, 116, 119, 111, 119, 114, 117, 110, 104, 117, 119, 120, 122, 131, 108, 114, 106, 120, 109, 117, 113, 126, 114, 119, 116, 112, 115, 112, 114, 122, 116, 121, 119, 114, 112, 113, 119, 123, 111, 111, 129, 118, 118, 113, 123, 113, 123, 122, 127, 129, 118, 115, 117, 115, 122, 119, 126, 111, 121, 121, 119, 117, 108, 112, 115, 124, 115, 119, 106, 107, 112, 107, 117, 104, 114, 126, 113, 121, 113, 121, 120, 118, 117, 114, 114, 116, 115, 109, 117, 113, 102, 122, 112, 118, 109, 112, 112, 108, 111, 110, 117, 106, 117, 108, 111, 113, 119, 123, 126, 114, 113, 115, 110, 112, 111, 109, 115, 116, 122, 117, 118, 110, 124, 118, 115, 122, 107, 116, 105, 114, 118, 113, 115, 112, 110, 113, 119, 121, 113, 119, 106, 117, 119, 103, 116, 121, 117, 107, 115, 110, 114, 114, 112, 113, 117, 112, 105, 112, 119, 118, 114, 120, 113, 114, 114, 119, 122, 115, 107, 117, 109, 114, 110, 124, 122, 110, 121, 112, 110, 120, 119, 113, 106, 135, 119, 117, 115, 109, 113, 107, 112, 115, 120, 111, 125, 119, 118, 115, 116, 116, 114, 116, 118, 116, 107, 110, 113, 120, 113, 117, 117, 119, 110, 119, 110, 122, 121, 116, 110, 118, 103, 113, 110, 121, 112, 117, 113, 118, 113, 111, 119, 123, 103, 120, 105, 105, 118, 117, 115, 108, 110, 114, 112, 116, 111, 115, 119, 113, 110, 117, 125, 117, 125, 114, 113, 119, 104, 109, 121, 110, 122, 114, 120, 116, 110, 119, 111, 125, 110, 112, 127, 117, 111, 128, 110, 99, 116, 112, 105, 115, 115, 107, 108, 114, 115, 121, 110, 126, 113, 113, 110, 115, 121, 114, 104, 106, 122, 131, 96, 105, 110, 116, 115, 113, 108, 108, 124, 139, 112, 110, 119, 108, 120, 120, 125, 115, 115, 108, 124, 123, 125, 117, 118, 105, 112, 106, 126, 109, 122, 117, 134, 109, 104, 117, 115, 109, 113, 112, 121, 123, 112, 120, 121, 119, 119, 114, 113, 115, 115, 112, 106, 121, 108, 118, 110, 114, 110, 126, 116, 114, 120, 108, 113, 104, 122, 116, 115, 115, 112, 123, 112, 118, 121, 117, 127, 112, 116, 113, 102, 111, 111, 113, 112, 121, 114, 105, 107, 108, 119, 126, 124, 118, 111, 120, 118, 117, 76, 124, 111, 119, 124, 101, 119, 127, 121, 94, 118, 118, 108, 109, 107, 117, 120, 109, 105, 127, 122, 111, 111, 122, 94, 117, 112, 121, 111, 107, 124, 117, 100, 123, 109, 115, 120, 113, 110, 122, 119, 107, 116, 113, 118, 114, 104, 120, 95, 116, 109, 114, 117, 109, 123, 124, 117, 112, 114, 118, 106, 106, 108, 106, 113, 122, 114, 117, 98, 122, 104, 119, 117, 115, 123, 121, 123, 96, 118, 123, 123, 122, 122, 113, 120, 124, 112, 120, 107, 113, 103, 119, 128, 104, 114, 125, 104, 115, 120, 111, 110, 106, 121, 117, 112, 120, 112, 109, 101, 115, 97, 103, 114, 115, 118, 120, 111, 121, 129, 113, 122, 116, 104, 134, 119, 108, 115, 98, 138, 109, 118, 111, 113, 118, 121, 119, 106, 126, 110, 122, 116, 121, 114, 117, 117, 125, 118, 117, 115, 118, 116, 118, 115, 98, 125, 96, 129, 112, 118, 115, 106, 113, 114, 123, 96, 94, 120, 108, 115, 109, 105, 109, 115, 124, 128, 119, 123, 127, 113, 114, 115, 111, 109, 108, 108, 120, 118, 109, 128, 131, 110, 110, 117, 121, 117, 99, 103, 114, 110, 100, 128, 115, 115, 105, 108, 111, 119, 123, 107, 116, 110, 116, 108, 125, 118, 114, 123, 111, 132, 113, 127, 121, 110, 112, 120, 114, 113, 102, 108, 112, 109, 119, 90, 113, 111, 117, 109, 116, 100, 112, 119, 114, 129, 115, 122, 116, 106, 101, 111, 112, 109, 119, 120, 103, 110, 123, 124, 111, 98, 113, 118, 118, 122, 122, 126, 121, 117, 125, 113, 125, 120, 121, 101, 125, 112, 113, 113, 113, 117, 119, 109, 118, 109, 116, 110, 124, 109, 109, 96, 119, 111, 115, 105, 112, 115, 116, 113, 105, 103, 119, 110, 119, 107, 108, 117, 116, 101, 110, 113, 119, 103, 106, 125, 117, 123, 128, 114, 108, 113, 122, 112, 101, 121, 123, 112, 106, 110, 110, 118, 116, 113, 119, 102, 115, 125, 122, 118, 125, 109, 126, 116, 120, 120, 124, 107, 124, 124, 119, 113, 96, 108, 96, 97, 109, 112, 112, 111, 117, 107, 124, 121, 102, 116, 124, 110, 124, 120, 108, 125, 115, 117, 109, 119, 120, 119, 111, 118, 92, 120, 106, 116, 124, 132, 105, 125, 114, 120, 113, 111, 112, 109, 117, 120, 106, 101, 115, 114, 119, 119, 111, 121, 105, 113, 112, 128, 109, 121, 136, 130, 100, 115, 105, 126, 115, 108, 98, 125, 99, 108, 101, 120, 133, 119, 121, 109, 109, 110, 119, 121, 123, 117, 116, 117, 120, 111, 104, 118, 109, 111, 134, 109, 122, 111, 108, 105, 123, 114, 103, 107, 116, 117, 131, 118, 109, 118, 114, 110, 118, 154, 116, 135, 131, 113, 114, 118, 102, 111, 122, 110, 120, 121, 130, 106, 127, 115, 150, 121, 114, 132, 122, 104, 119, 116, 127, 110, 120, 130, 119, 110, 114, 117, 113, 131, 108, 109, 134, 116, 106, 115, 113, 113, 119, 125, 116, 110, 120, 113, 108, 110, 113, 108, 110, 119, 122, 127, 124, 114, 109, 108, 115, 112, 116, 104, 109, 124, 111, 119, 110, 112, 108, 115, 117, 112, 118, 122, 119, 101, 119, 121, 111, 99, 112, 132, 105, 108, 138, 114, 110, 96, 111, 116, 115, 103, 141, 138, 117, 124, 112, 128, 111, 116, 115, 118, 112, 113, 114, 105, 113, 121, 125, 111, 120, 114, 117, 123, 108, 120, 111, 111, 99, 115, 111, 116, 113, 116, 118, 114, 145, 119, 112, 114, 121, 115, 110, 109, 109, 128, 114, 110, 118, 121, 125, 116, 106, 122, 104, 111, 118, 113, 118, 140, 117, 126, 96, 115, 115, 122, 112, 116, 113, 107, 120, 115, 116, 114, 115, 129, 125, 114, 116, 112, 125, 113, 128, 140, 132, 110, 137, 114, 104, 98, 96, 119, 109, 110, 117, 106, 124, 106, 109, 118, 111, 88, 115, 118, 121, 123, 111, 97, 111, 112, 107, 100, 113, 115, 102, 119, 116, 117, 131, 123, 117, 119, 110, 131, 105, 104, 113, 119, 117, 114, 116, 130, 124, 117, 119, 120, 116, 114, 122, 112, 115, 117, 99, 118, 114, 123, 115, 108, 109, 93, 114, 124, 117, 120, 130, 108, 112, 99, 122, 114, 117, 114, 108, 124, 122, 108, 125, 110, 123, 109, 116, 108, 126, 115, 113, 108, 113, 109, 123, 109, 107, 121, 111, 123, 116, 105, 115, 120, 124, 109, 124, 110, 122, 141, 108, 112, 123, 113, 114, 111, 122, 128, 123, 111, 115, 118, 127, 112, 120, 108, 116, 113, 111, 106, 109, 114, 111, 112, 103, 121, 126, 121, 112, 120, 105, 98, 108, 116, 102, 112, 90, 113, 97, 96, 132, 109, 111, 120, 120, 114, 119, 108, 121, 120, 113, 124, 120, 106, 107, 89, 123, 122, 102, 117, 121, 117, 114, 135, 104, 122, 114, 97, 118, 109, 106, 107, 107, 116, 122, 115, 110, 99, 106, 122, 116, 115, 127, 116, 129, 119, 106, 120, 106, 117, 109, 103, 124, 111, 135, 116, 124, 116, 110, 121, 116, 117, 123, 127, 117, 106, 113, 99, 133, 117, 122, 112, 113, 113, 115, 105, 117, 122, 115, 102, 113, 115, 109, 115, 98, 131, 117, 128, 110, 114, 120, 120, 119, 120, 129, 120, 123, 109, 109, 108, 122, 111, 118, 119, 108, 106, 114, 119, 126, 111, 118, 107, 121, 111, 111, 112, 107, 115, 117, 115, 119, 110, 123, 109, 114, 121, 124, 113, 114, 116, 131, 121, 106, 104, 123, 118, 125, 100, 115, 125, 125, 110, 108, 115, 105, 107, 111, 115, 114, 110, 114, 103, 127, 92, 118, 127, 101, 113, 129, 109, 117, 125, 102, 118, 105, 112, 116, 104, 104, 124, 126, 117, 116, 121, 115, 118, 123, 109, 122, 115, 110, 110, 119, 118, 116, 97, 117, 118, 122, 113, 107, 111, 108, 114, 106, 114, 99, 106, 112, 110, 121, 119, 127, 112, 119, 117, 111, 131, 122, 122, 126, 109, 112, 110, 110, 105, 110, 127, 107, 114, 119, 108, 136, 129, 105, 110, 119, 119, 117, 102, 115, 107, 121, 116, 125, 114, 129, 116, 120, 108, 129, 110, 108, 103, 102, 108, 110, 116, 119, 125, 113, 100, 110, 123, 119, 118, 103, 105, 114, 108, 112, 106, 118, 117, 118, 104, 127, 107, 103, 128, 114, 112, 117, 123, 120, 102, 113, 125, 106, 115, 97, 109, 118, 116, 114, 107, 119, 115, 115, 116, 122, 111, 104, 114, 112, 108, 99, 124, 119, 109, 105, 111, 112, 107, 131, 111, 111, 119, 114, 120, 127, 114, 125, 115, 114, 116, 111, 120, 122, 116, 127, 122, 120, 119, 119, 108, 120, 127, 124, 108, 110, 128, 108, 92, 107, 122, 120, 106, 112, 116, 112, 120, 99, 120, 107, 110, 115, 100, 107, 136, 107, 114, 118, 112, 90, 98, 106, 122, 109, 112, 101, 117, 126, 117, 123, 113, 110, 126, 101, 107, 118, 123, 131, 102, 110, 104, 122, 122, 119, 119, 112, 117, 126, 119, 110, 111, 129, 104, 105, 109, 114, 119, 129, 107, 115, 105, 128, 115, 114, 120, 116, 115, 113, 115, 109, 103, 120, 110, 110, 112, 131, 103, 107, 89, 117, 112, 99, 108, 120, 109, 109, 122, 121, 118, 111, 113, 121, 109, 111, 122, 119, 127, 103, 110, 109, 115, 114, 103, 113, 123, 120, 122, 126, 109, 126, 125, 115, 121, 110, 114, 113, 117, 117, 116, 114, 101, 105, 107, 102, 121, 115, 113, 120, 104, 117, 116, 131, 109, 104, 104, 114, 123, 115, 116, 122, 109, 109, 113, 120, 129, 110, 116, 113, 115, 98, 115, 108, 111, 113, 107, 130, 108, 119, 129, 125, 115, 125, 112, 116, 102, 104, 102, 124, 118, 113, 118, 117, 122, 120, 122, 116, 101, 112, 108, 107, 118, 111, 119, 117, 114, 121, 118, 116, 115, 112, 117, 107, 120, 113, 106, 104, 124, 117, 106, 112, 111, 106, 117, 106, 111, 110, 111, 120, 120, 107, 126, 118, 112, 108, 104, 120, 106, 105, 114, 110, 107, 107, 124, 108, 120, 112, 115, 119, 112, 118, 115, 126, 103, 123, 108, 109, 98, 110, 106, 114, 139, 109, 112, 111, 103, 106, 109, 109, 106, 111, 126, 106, 116, 136, 111, 109, 107, 120, 126, 123, 117, 122, 116, 120, 109, 116, 120, 106, 125, 112, 126, 111, 108, 102, 106, 113, 110, 111, 122, 115, 109, 98, 105, 109, 113, 108, 118, 118, 115, 112, 120, 120, 109, 117, 105, 113, 109, 117, 103, 117, 108, 108, 118, 125, 116, 115, 118, 106, 114, 120, 113, 126, 104, 122, 118, 109, 120, 114, 104, 113, 117, 116, 114, 108, 110, 133, 113, 110, 110, 110, 104, 126, 108, 114, 118, 103, 100, 101, 125, 107, 102, 119, 123, 116, 122, 112, 96, 131, 117, 112, 109, 115, 106, 118, 114, 115, 112, 116, 116, 126, 116, 126, 106, 119, 108, 108, 108, 135, 105, 117, 114, 106, 115, 119, 104, 105, 111, 120, 118, 121, 115, 121, 98, 110, 101, 130, 115, 100, 124, 107, 117, 118, 109, 131, 109, 114, 111, 104, 109, 114, 124, 112, 112, 114, 110, 110, 122, 117, 114, 122, 109, 129, 122, 115, 105, 127, 116, 115, 119, 111, 119, 113, 118, 106, 113, 115, 115, 103, 112, 123, 124, 117, 115, 114, 115, 121, 117, 102, 125, 123, 121, 112, 114, 113, 113, 116, 106, 112, 111, 122, 130, 122, 112, 120, 123, 106, 94, 131, 107, 112, 127, 125, 125, 112, 108, 113, 106, 108, 115, 110, 113, 114, 134, 116, 116, 120, 118, 118, 116, 134, 110, 103, 110, 113, 112, 123, 120, 127, 117, 113, 115, 118, 110, 121, 122, 114, 122, 117, 118, 116, 130, 125, 126, 113, 107, 114, 116, 111, 116, 111, 114, 109, 114, 115, 118, 112, 113, 126, 119, 109, 112, 108, 111, 120, 137, 104, 106, 121, 120, 127, 113, 113, 124, 115, 121, 107, 115, 108, 115, 104, 135, 117, 106, 121, 105, 119, 118, 107, 108, 116, 117, 104, 118, 104, 106, 112, 117, 115, 107, 108, 106, 144, 110, 120, 110, 121, 108, 111, 106, 113, 104, 109, 106, 109, 110, 100, 122, 108, 125, 115, 119, 110, 112, 118, 113, 120, 117, 112, 113, 114, 119, 115, 109, 111, 121, 121, 115, 110, 144, 131, 131, 112, 119, 109, 112, 107, 113, 114, 111, 115, 121, 117, 115, 125, 111, 122, 110, 123, 105, 129, 114, 117, 120, 109, 114, 122, 110, 104, 111, 104, 108, 101, 116, 117, 111, 108, 122, 111, 118, 111, 122, 116, 98, 121, 100, 105, 114, 112, 101, 116, 115, 113, 117, 116, 119, 120, 118, 108, 123, 116, 126, 120, 118, 107, 107, 120, 92, 100, 111, 113, 121, 119, 93, 109, 119, 116, 112, 118, 116, 118, 118, 108, 119, 118, 99, 104, 115, 115, 104, 119, 114, 100, 123, 115, 121, 105, 115, 120, 114, 121, 121, 116, 106, 121, 124, 111, 123, 109, 109, 123, 128, 116, 105, 109, 116, 121, 118, 119, 114, 125, 112, 125, 115, 118, 114, 112, 126, 114, 98, 124, 116, 99, 127, 108, 118, 115, 120, 115, 131, 108, 111, 114, 125, 122, 107, 128, 111, 105, 122, 109, 117, 122, 129, 105, 108, 107, 121, 112, 109, 113, 110, 107, 116, 121, 131, 111, 113, 105, 116, 106, 119, 116, 112, 118, 133, 123, 114, 108, 113, 121, 113, 97, 110, 123, 118, 115, 131, 108, 113, 121, 123, 117, 113, 112, 83, 108, 115, 112, 114, 117, 107, 109, 121, 108, 124, 109, 123, 124, 107, 121, 118, 107, 122, 130, 130, 126, 126, 120, 96, 112, 114, 126, 114, 111, 114, 110, 113, 125, 115, 115, 119, 130, 112, 107, 105, 116, 107, 125, 132, 112, 106, 122, 123, 107, 104, 123, 125, 103, 118, 110, 88, 107, 105, 108, 122, 114, 104, 115, 121, 122, 122, 106, 113, 123, 113, 103, 115, 108, 112, 122, 117, 126, 102, 106, 119, 111, 126, 114, 120, 117, 119, 117, 112, 121, 109, 103, 114, 110, 117, 129, 107, 100, 109, 104, 107, 112, 111, 114, 113, 116, 115, 98, 102, 147, 110, 115, 118, 122, 122, 107, 115, 110, 113, 100, 111, 113, 110, 124, 117, 106, 112, 112, 122, 110, 119, 115, 118, 100, 110, 114, 115, 112, 114, 123, 108, 120, 124, 110, 117, 118, 101, 101, 110, 105, 120, 113, 128, 110, 112, 121, 121, 138, 119, 106, 146, 102, 120, 113, 114, 108, 115, 110, 117, 110, 113, 127, 112, 117, 130, 117, 127, 111, 129, 100, 116, 128, 105, 114, 106, 120, 118, 103, 124, 116, 122, 112, 109, 116, 116, 116, 114, 132, 111, 118, 123, 112, 115, 109, 119, 118, 131, 117, 114, 122, 118, 125, 111, 110, 110, 125, 109, 133, 110, 115, 109, 120, 114, 120, 115, 120, 112, 114, 116, 123, 105, 123, 127, 116, 108, 116, 114, 122, 115, 115, 114, 120, 114, 108, 110, 109, 116, 124, 113, 116, 128, 107, 116, 110, 118, 112, 100, 131, 108, 122, 109, 112, 120, 109, 114, 118, 110, 115, 116, 111, 107, 106, 112, 114, 125, 115, 103, 121, 107, 132, 125, 126, 119, 119, 120, 106, 112, 115, 107, 122, 118, 110, 112, 118, 109, 132, 122, 123, 117, 114, 116, 103, 107, 114, 107, 114, 108, 111, 116, 127, 119, 112, 120, 118, 114, 116, 129, 106, 111, 104, 107, 114, 102, 119, 117, 117, 113, 108, 121, 111, 125, 112, 112, 128, 127, 117, 117, 116, 112, 107, 120, 120, 111, 120, 119, 121, 110, 112, 134, 93, 118, 110, 124, 121, 120, 111, 101, 114, 110, 108, 102, 104, 129, 118, 120, 117, 114, 113, 115, 109, 126, 119, 111, 116, 122, 120, 113, 100, 118, 118, 104, 111, 102, 128, 107, 98, 101, 111, 111, 107, 105, 105, 115, 99, 120, 108, 114, 126, 103, 105, 111, 121, 101, 111, 122, 105, 103, 113, 121, 113, 110, 115, 126, 99, 108, 97, 115, 117, 108, 109, 126, 127, 110, 127, 117, 114, 123, 111, 104, 107, 110, 122, 105, 119, 123, 122, 109, 107, 112, 116, 123, 108, 122, 116, 120, 111, 116, 110, 109, 119, 104, 123, 109, 103, 111, 111, 122, 112, 120, 111, 110, 107, 111, 98, 112, 124, 122, 117, 113, 114, 120, 110, 129, 113, 124, 121, 105, 113, 109, 117, 107, 121, 114, 117, 110, 122, 119, 110, 121, 117, 123, 113, 121, 119, 121, 128, 113, 116, 120, 113, 119, 115, 120, 117, 113, 117, 114, 121, 108, 106, 111, 110, 108, 117, 112, 108, 114, 118, 110, 118, 129, 121, 109, 113, 108, 118, 115, 124, 108, 109, 108, 111, 119, 121, 114, 110, 117, 112, 114, 114, 109, 115, 116, 116, 115, 118, 117, 109, 109, 114, 115, 116, 118, 106, 129, 119, 111, 123, 113, 116, 106, 109, 104, 115, 117, 107, 106, 119, 118, 114, 117, 113, 111, 117, 117, 118, 116, 113, 112, 112, 108, 112, 102, 105, 114, 107, 116, 126, 128, 114, 120, 115, 119, 117, 118, 111, 113, 104, 114, 118, 116, 105, 109, 108, 120, 121, 113, 106, 114, 117, 100, 114, 110, 114, 110, 111, 114, 108, 107, 114, 103, 113, 115, 117, 116, 112, 111, 111, 118, 118, 124, 125, 117, 115, 110, 120, 117, 112, 109, 115, 110, 114, 117, 118, 112, 114, 105, 124, 120, 126, 108, 116, 114, 121, 107, 107, 119, 113, 120, 121, 114, 117, 132, 112, 112, 114, 117, 102, 112, 117, 114, 111, 115, 107, 112, 119, 114, 117, 103, 117, 116, 105, 105, 104, 115, 116, 120, 113, 123, 106, 116, 109, 118, 107, 117, 117, 101, 110, 109, 110, 116, 120, 113, 125, 118, 114, 102, 115, 115, 102, 113, 108, 114, 114, 110, 128, 109, 119, 116, 113, 116, 118, 119, 120, 118, 118, 102, 118, 101, 122, 127, 128, 119, 122, 114, 119, 121, 108, 111, 115, 120, 119, 116, 115, 115, 107, 104, 122, 119, 110, 123, 115, 112, 114, 109, 114, 123, 114, 117, 117, 124, 114, 105, 114, 120, 122, 111, 111, 103, 121, 107, 118, 106, 116, 116, 123, 94, 102, 123, 115, 121, 115, 116, 104, 111, 121, 109, 124, 112, 115, 125, 114, 112, 118, 117, 114, 108, 116, 118, 119, 116, 104, 115, 115, 100, 116, 113, 112, 117, 113, 110, 124, 108, 117, 116, 124, 116, 117, 125, 117, 116, 116, 124, 110, 105, 110, 106, 108, 116, 113, 122, 118, 114, 121, 123, 123, 115, 111, 106, 115, 109, 113, 120, 125, 119, 120, 119, 110, 115, 114, 118, 116, 115, 119, 105, 120, 110, 110, 125, 121, 113, 113, 113, 113, 109, 113, 117, 119, 121, 112, 113, 121, 116, 115, 118, 119, 118, 114, 117, 129, 115, 106, 113, 115, 126, 113, 112, 118, 107, 107, 127, 114, 111, 107, 114, 116, 123, 111, 100, 115, 112, 108, 111, 109, 114, 113, 113, 107, 120, 108, 124, 110, 118, 110, 119, 109, 124, 116, 112, 107, 111, 118, 120, 122, 115, 117, 125, 110, 118, 124, 115, 115, 109, 116, 111, 110, 113, 117, 104, 108, 104, 115, 117, 114, 108, 123, 125, 114, 112, 117, 103, 113, 112, 112, 106, 101, 118, 108, 120, 114, 109, 111, 115, 120, 109, 114, 112, 120, 116, 110, 115, 117, 119, 113, 115, 113, 118, 115, 115, 115, 115, 115, 113, 110, 118, 123, 115, 117, 114, 117, 113, 112, 114, 115, 110, 127, 101, 108, 110, 117, 114, 110, 121, 114, 118, 113, 113, 121, 103, 116, 114, 112, 118, 117, 113, 121, 112, 111, 110, 112, 115, 106, 124, 112, 116, 118, 110, 113, 117, 118, 113, 112, 119, 112, 118, 116, 115, 114, 118, 114, 121, 129, 112, 114, 118, 121, 113, 122, 119, 106, 117, 118, 109, 120, 118, 119, 110, 130, 112, 113, 114, 116, 118, 120, 120, 110, 120, 111, 105, 105, 116, 113, 106, 114, 102, 120, 114, 112, 124, 112, 109, 109, 120, 114, 125, 119, 113, 102, 109, 115, 109, 114, 108, 116, 106, 117, 116, 118, 107, 130, 121, 120, 112, 118, 110, 107, 120, 124, 106, 120, 114, 120, 115, 120, 110, 119, 117, 117, 122, 118, 115, 116, 117, 112, 106, 116, 114, 115, 115, 115, 117, 117, 116, 107, 114, 115, 116, 111, 120, 119, 125, 129, 112, 113, 114, 113, 113, 116, 103, 121, 107, 121, 117, 110, 117, 120, 110, 113, 111, 116, 114, 119, 116, 123, 109, 108, 112, 117, 119, 121, 116, 108, 109, 114, 110, 114, 113, 115, 116, 117, 115, 112, 107, 114, 113, 117, 115, 118, 119, 123, 127, 113, 108, 118, 120, 111, 123, 116, 111, 114, 114, 106, 123, 114, 113, 125, 109, 118, 110, 121, 116, 105, 118, 115, 109, 116, 113, 114, 120, 119, 106, 111, 106, 110, 111, 119, 109, 119, 105, 120, 131, 115, 113, 114, 120, 109, 121, 121, 118, 121, 101, 112, 109, 117, 111, 119, 116, 118, 116, 112, 116, 120, 124, 122, 117, 115, 121, 122, 110, 113, 107, 111, 114, 111, 122, 115, 113, 118, 112, 114, 112, 115, 128, 113, 125, 118, 120, 109, 117, 117, 108, 118, 121, 115, 114, 115, 116, 109, 118, 122, 105, 120, 111, 119, 122, 118, 108, 116, 117, 127, 114, 110, 115, 116, 114, 118, 113, 116, 115, 118, 116, 111, 115, 111, 117, 110, 117, 110, 116, 112, 105, 112, 117, 118, 108, 115, 120, 121, 114, 116, 115, 119, 116, 109, 108, 113, 123, 119, 115, 118, 119, 116, 119, 118, 112, 121, 115, 116, 112, 130, 122, 115, 122, 117, 126, 121, 116, 122, 116, 120, 108, 115, 114, 108, 116, 114, 116, 114, 125, 111, 115, 108, 119, 114, 111, 113, 115, 123, 125, 118, 108, 116, 114, 120, 119, 117, 112, 120, 113, 119, 122, 117, 115, 124, 110, 111, 112, 122, 116, 108, 116, 113, 112, 114, 120, 117, 113, 122, 119, 115, 119, 123, 112, 114, 118, 116, 111, 113, 117, 110, 106, 115, 115, 113, 116, 111, 118, 108, 116, 107, 111, 125, 114, 114, 122, 120, 113, 114, 116, 111, 114, 126, 113, 115, 125, 115, 123, 110, 113, 120, 123, 113, 113, 112, 112, 119, 120, 117, 123, 120, 106, 112, 114, 109, 119, 110, 113, 113, 124, 109, 111, 107, 114, 118, 116, 109, 112, 118, 109, 116, 112, 117, 113, 112, 113, 114, 117, 109, 102, 121, 110, 115, 117, 114, 123, 118, 112, 115, 117, 120, 115, 107, 91, 129, 121, 120, 105, 98, 112, 131, 93, 113, 121, 113, 111, 119, 123, 115, 105, 107, 115, 104, 112, 127, 118, 109, 124, 121, 124, 112, 108, 100, 112, 111, 109, 117, 102, 101, 119, 111, 116, 116, 123, 127, 108, 128, 98, 131, 115, 117, 109, 113, 131, 89, 116, 130, 120, 127, 115, 119, 124, 129, 123, 110, 116, 110, 120, 98, 113, 110, 115, 109, 122, 108, 114, 131, 115, 121, 105, 113, 116, 135, 99, 118, 117, 115, 101, 107, 131, 112, 106, 115, 119, 103, 108, 113, 112, 133, 108, 119, 119, 117, 119, 127, 119, 125, 115, 103, 108, 127, 94, 105, 103, 107, 125, 108, 118, 107, 119, 122, 105, 110, 125, 111, 113, 123, 120, 128, 117, 132, 115, 86, 109, 142, 110, 114, 103, 128, 112, 91, 113, 102, 98, 119, 107, 100, 114, 132, 115, 110, 114, 111, 110, 134, 122, 105, 126, 118, 118, 123, 122, 119, 115, 115, 102, 121, 110, 119, 116, 122, 118, 95, 112, 116, 111, 136, 112, 107, 115, 122, 124, 115, 114, 110, 107, 120, 107, 121, 131, 117, 121, 121, 106, 115, 114, 118, 107, 120, 108, 115, 107, 114, 122, 87, 122, 132, 118, 111, 118, 126, 129, 100, 114, 123, 126, 136, 122, 129, 125, 125, 111, 107, 114, 129, 112, 129, 119, 121, 121, 107, 135, 124, 119, 105, 117, 102, 109, 90, 132, 121, 126, 125, 121, 105, 114, 114, 133, 104, 104, 101, 102, 126, 120, 120, 126, 116, 108, 102, 127, 124, 126, 118, 109, 117, 123, 115, 117, 123, 115, 112, 97, 120, 115, 109, 112, 130, 102, 97, 112, 107, 101, 128, 120, 110, 104, 112, 115, 136, 118, 128, 127, 108, 88, 113, 103, 119, 108, 113, 133, 109, 111, 121, 99, 107, 121, 116, 108, 132, 113, 111, 105, 109, 110, 106, 120, 132, 114, 111, 130, 128, 124, 117, 106, 122, 99, 94, 97, 114, 106, 123, 128, 117, 119, 110, 112, 117, 126, 126, 110, 108, 112, 128, 110, 105, 112, 107, 118, 131, 112, 118, 121, 113, 126, 136, 116, 118, 120, 107, 102, 122, 113, 101, 115, 107, 120, 115, 113, 123, 111, 112, 93, 98, 113, 107, 137, 127, 112, 124, 132, 112, 115, 103, 121, 118, 125, 123, 113, 101, 108, 97, 100, 113, 93, 137, 119, 118, 113, 109, 122, 97, 122, 118, 118, 110, 125, 118, 110, 106, 120, 119, 131, 112, 117, 137, 123, 112, 114, 107, 109, 115, 135, 114, 134, 112, 113, 123, 93, 118, 104, 106, 104, 118, 109, 122, 119, 113, 118, 122, 102, 95, 115, 133, 100, 95, 117, 137, 99, 89, 118, 125, 108, 115, 118, 106, 126, 130, 111, 112, 116, 126, 134, 103, 122, 112, 102, 126, 115, 101, 129, 122, 128, 109, 115, 99, 125, 118, 123, 114, 104, 111, 122, 110, 105, 100, 119, 121, 109, 107, 98, 107, 136, 113, 133, 108, 122, 114, 126, 128, 112, 122, 122, 116, 121, 97, 122, 123, 115, 108, 145, 121, 97, 122, 113, 124, 90, 108, 123, 121, 109, 113, 107, 114, 109, 118, 109, 115, 116, 125, 114, 109, 124, 118, 108, 116, 118, 131, 128, 118, 119, 105, 125, 108, 101, 125, 117, 114, 115, 105, 116, 122, 112, 104, 116, 111, 113, 114, 132, 117, 118, 119, 121, 109, 118, 116, 100, 119, 110, 115, 123, 110, 114, 123, 112, 104, 128, 122, 115, 115, 105, 119, 125, 91, 110, 123, 129, 109, 113, 122, 124, 110, 114, 115, 123, 126, 117, 116, 103, 111, 123, 116, 113, 114, 131, 109, 119, 110, 117, 123, 111, 103, 117, 103, 119, 118, 113, 109, 107, 115, 116, 104, 110, 114, 112, 112, 114, 112, 94, 120, 118, 107, 122, 105, 112, 101, 117, 129, 119, 138, 113, 111, 108, 89, 104, 118, 108, 117, 93, 110, 114, 117, 117, 114, 114, 113, 110, 128, 117, 118, 114, 129, 119, 115, 106, 111, 117, 77, 115, 120, 107, 118, 117, 111, 107, 102, 118, 121, 109, 115, 104, 99, 119, 124, 115, 107, 115, 111, 118, 113, 116, 106, 114, 126, 113, 119, 127, 106, 108, 122, 114, 115, 122, 111, 106, 129, 129, 123, 106, 102, 116, 112, 118, 111, 106, 126, 107, 107, 117, 117, 108, 103, 120, 115, 114, 131, 128, 118, 116, 114, 107, 118, 128, 116, 110, 123, 109, 113, 112, 120, 105, 120, 111, 112, 125, 94, 112, 122, 114, 109, 118, 117, 112, 113, 102, 106, 109, 119, 118, 111, 110, 110, 121, 117, 118, 109, 113, 103, 119, 99, 110, 111, 111, 113, 108, 123, 104, 107, 112, 106, 119, 114, 121, 118, 129, 102, 107, 125, 115, 113, 107, 116, 111, 112, 116, 90, 117, 114, 122, 114, 59, 116, 99, 108, 115, 107, 105, 119, 116, 119, 126, 112, 93, 113, 121, 83, 115, 98, 123, 123, 107, 123, 111, 120, 118, 138, 115, 110, 120, 116, 121, 132, 114, 109, 121, 113, 117, 115, 105, 116, 119, 105, 102, 106, 100, 126, 112, 112, 103, 103, 118, 102, 100, 114, 106, 105, 125, 116, 132, 113, 107, 123, 120, 117, 123, 115, 110, 114, 100, 106, 111, 115, 118, 115, 122, 128, 110, 113, 122, 113, 123, 108, 117, 110, 116, 118, 114, 95, 115, 107, 124, 129, 113, 111, 105, 120, 103, 107, 118, 115, 121, 108, 127, 98, 116, 111, 116, 104, 124, 122, 116, 101, 114, 121, 97, 117, 100, 114, 119, 115, 116, 129, 129, 111, 113, 106, 109, 122, 119, 104, 123, 107, 111, 115, 111, 108, 104, 124, 116, 100, 119, 111, 140, 101, 114, 115, 122, 99, 113, 106, 107, 116, 108, 106, 129, 118, 102, 114, 114, 110, 111, 132, 117, 108, 110, 117, 118, 105, 108, 102, 114, 108, 108, 113, 115, 123, 111, 111, 121, 128, 104, 109, 105, 110, 118, 151, 123, 118, 108, 123, 105, 110, 119, 135, 107, 103, 127, 107, 107, 105, 113, 129, 117, 97, 125, 116, 119, 124, 124, 119, 108, 107, 113, 116, 121, 116, 123, 114, 112, 110, 119, 122, 117, 112, 116, 120, 110, 118, 103, 105, 127, 115, 103, 118, 114, 104, 109, 145, 121, 122, 115, 116, 110, 107, 116, 122, 112, 129, 118, 94, 123, 93, 116, 108, 119, 106, 99, 119, 120, 103, 111, 80, 106, 110, 111, 110, 124, 110, 141, 116, 120, 119, 119, 124, 110, 121, 119, 109, 115, 102, 126, 98, 124, 106, 118, 109, 116, 102, 125, 112, 97, 103, 118, 113, 107, 104, 115, 114, 96, 112, 120, 110, 110, 121, 137, 133, 118, 125, 117, 131, 98, 109, 113, 114, 122, 116, 123, 136, 129, 122, 107, 118, 103, 113, 123, 105, 126, 111, 116, 139, 123, 130, 127, 109, 116, 116, 119, 128, 113, 101, 114, 121, 105, 96, 109, 125, 102, 96, 103, 114, 127, 119, 94, 133, 118, 102, 101, 103, 120, 121, 102, 114, 118, 144, 105, 116, 115, 113, 104, 107, 108, 119, 117, 113, 113, 97, 114, 105, 102, 116, 124, 115, 99, 124, 120, 105, 126, 127, 129, 116, 109, 117, 111, 104, 96, 120, 126, 113, 119, 122, 121, 119, 124, 99, 107, 117, 124, 111, 124, 107, 119, 112, 108, 92, 110, 106, 138, 111, 102, 112, 114, 107, 120, 110, 96, 107, 106, 152, 120, 121, 121, 146, 117, 123, 125, 109, 118, 144, 101, 108, 118, 121, 135, 139, 104, 139, 111, 102, 107, 99, 116, 121, 106, 122, 124, 110, 104, 113, 110, 117, 114, 130, 116, 125, 122, 118, 115, 116, 110, 122, 122, 98, 118, 111, 121, 124, 104, 118, 118, 127, 132, 105, 130, 107, 117, 126, 98, 119, 109, 110, 106, 105, 131, 111, 103, 106, 104, 112, 109, 112, 121, 130, 113, 126, 133, 118, 111, 113, 124, 103, 135, 111, 91, 118, 123, 120, 119, 113, 113, 125, 116, 112, 120, 110, 123, 104, 124, 109, 118, 122, 114, 116, 110, 116, 122, 109, 114, 116, 120, 110, 107, 113, 108, 117, 110, 122, 117, 99, 113, 116, 115, 108, 114, 126, 113, 125, 119, 100, 130, 97, 104, 113, 103, 121, 103, 114, 110, 100, 102, 108, 99, 94, 105, 103, 114, 114, 125, 125, 117, 114, 110, 115, 128, 123, 125, 102, 116, 116, 114, 108, 118, 106, 113, 111, 118, 113, 107, 116, 121, 115, 113, 112, 108, 116, 118, 110, 98, 117, 104, 120, 117, 114, 123, 115, 115, 123, 127, 121, 119, 114, 107, 117, 117, 120, 103, 117, 111, 129, 107, 129, 115, 121, 104, 103, 110, 99, 121, 129, 137, 111, 113, 118, 116, 116, 111, 116, 105, 112, 102, 102, 119, 111, 111, 119, 107, 126, 110, 116, 130, 105, 102, 136, 125, 101, 128, 106, 123, 104, 91, 108, 122, 111, 110, 107, 121, 131, 116, 124, 122, 125, 111, 129, 111, 114, 108, 110, 101, 126, 102, 115, 117, 128, 121, 116, 109, 112, 120, 121, 130, 95, 111, 114, 121, 105, 118, 105, 111, 121, 128, 129, 107, 110, 123, 118, 111, 95, 116, 103, 116, 124, 123, 100, 123, 121, 115, 151, 118, 118, 134, 116, 119, 111, 123, 110, 110, 113, 126, 122, 111, 115, 124, 117, 118, 121, 110, 119, 131, 121, 111, 109, 120, 125, 111, 114, 119, 113, 118, 105, 108, 116, 118, 113, 114, 120, 123, 113, 117, 121, 116, 114, 111, 118, 108, 114, 122, 128, 113, 111, 106, 112, 111, 106, 83, 111, 122, 104, 112, 121, 112, 104, 116, 114, 118, 120, 120, 122, 114, 120, 122, 108, 127, 113, 109, 124, 129, 122, 113, 121, 115, 109, 115, 113, 114, 115, 117, 109, 121, 124, 109, 118, 126, 122, 106, 109, 116, 137, 106, 110, 125, 116, 122, 113, 111, 113, 120, 111, 121, 111, 120, 119, 108, 112, 113, 109, 117, 123, 125, 110, 117, 117, 118, 125, 112, 126, 126, 111, 117, 121, 118, 125, 117, 112, 119, 117, 114, 107, 111, 110, 129, 121, 125, 124, 123, 109, 111, 119, 115, 116, 116, 107, 107, 119, 117, 90, 117, 117, 109, 123, 114, 120, 124, 116, 114, 112, 112, 118, 120, 135, 128, 121, 121, 125, 115, 119, 107, 116, 112, 111, 116, 110, 125, 121, 117, 130, 111, 119, 126, 105, 117, 122, 108, 105, 108, 122, 123, 122, 114, 119, 103, 116, 106, 110, 117, 112, 115, 112, 114, 124, 116, 112, 114, 113, 109, 115, 119, 123, 120, 118, 114, 137, 112, 119, 118, 130, 117, 113, 117, 119, 118, 117, 120, 120, 125, 117, 104, 108, 109, 123, 114, 122, 112, 112, 111, 108, 107, 115, 112, 124, 113, 111, 125, 121, 113, 109, 126, 125, 109, 112, 124, 122, 115, 140, 120, 112, 132, 116, 110, 126, 120, 114, 114, 124, 103, 126, 116, 130, 115, 120, 118, 120, 105, 103, 101, 118, 109, 116, 111, 98, 91, 131, 108, 119, 125, 119, 111, 109, 110, 114, 116, 121, 123, 110, 138, 121, 109, 114, 115, 107, 125, 106, 112, 118, 122, 112, 111, 118, 113, 109, 118, 121, 119, 110, 122, 115, 119, 121, 109, 128, 125, 109, 114, 116, 108, 121, 118, 119, 121, 109, 111, 106, 111, 108, 120, 121, 114, 110, 113, 118, 123, 111, 122, 111, 108, 111, 113, 113, 112, 110, 115, 117, 107, 126, 120, 117, 111, 124, 119, 110, 111, 115, 113, 120, 120, 119, 105, 129, 112, 112, 106, 122, 108, 107, 111, 118, 110, 111, 115, 116, 127, 108, 106, 117, 114, 113, 110, 108, 115, 111, 109, 114, 112, 122, 115, 118, 112, 120, 109, 115, 112, 124, 108, 116, 110, 113, 110, 115, 112, 120, 105, 119, 119, 128, 103, 113, 115, 115, 113, 115, 108, 112, 116, 113, 109, 104, 125, 115, 114, 112, 109, 119, 120, 119, 108, 117, 113, 119, 123, 114, 112, 131, 115, 112, 112, 110, 119, 109, 113, 126, 121, 113, 117, 119, 112, 124, 114, 112, 123, 111, 111, 113, 110, 116, 117, 113, 107, 111, 129, 122, 122, 119, 115, 120, 124, 108, 118, 111, 118, 116, 110, 115, 116, 119, 120, 111, 114, 110, 118, 117, 118, 106, 117, 125, 106, 117, 112, 110, 119, 130, 120, 120, 111, 121, 129, 112, 119, 115, 118, 116, 104, 113, 116, 114, 99, 108, 125, 121, 111, 115, 117, 111, 117, 124, 116, 123, 109, 108, 99, 120, 110, 112, 111, 130, 107, 116, 102, 100, 113, 98, 129, 123, 115, 120, 112, 121, 118, 110, 131, 123, 122, 112, 102, 120, 129, 118, 111, 111, 111, 135, 118, 102, 109, 116, 121, 115, 121, 112, 119, 118, 125, 124, 109, 111, 118, 127, 109, 114, 123, 127, 109, 97, 108, 133, 130, 116, 126, 113, 124, 118, 113, 113, 103, 126, 113, 130, 108, 109, 125, 109, 124, 112, 121, 97, 119, 114, 106, 129, 94, 103, 119, 110, 121, 121, 115, 118, 127, 112, 114, 120, 102, 121, 133, 103, 120, 110, 95, 120, 126, 119, 115, 122, 119, 104, 109, 112, 117, 120, 112, 120, 114, 117, 103, 118, 102, 114, 118, 119, 110, 112, 114, 124, 124, 123, 87, 117, 117, 111, 118, 117, 114, 119, 118, 117, 130, 102, 119, 116, 113, 127, 120, 107, 118, 117, 109, 109, 102, 116, 118, 125, 112, 121, 114, 105, 107, 100, 115, 110, 115, 105, 121, 117, 124, 118, 133, 120, 113, 118, 115, 104, 101, 103, 128, 120, 109, 94, 105, 115, 116, 98, 110, 117, 108, 112, 114, 113, 91, 119, 108, 131, 120, 112, 117, 82, 85, 112, 121, 108, 110, 129, 107, 113, 120, 111, 107, 115, 113, 113, 120, 117, 93, 116, 110, 120, 117, 94, 109, 122, 124, 102, 118, 109, 120, 113, 125, 118, 141, 126, 130, 122, 106, 114, 119, 116, 121, 114, 121, 130, 110, 123, 115, 110, 115, 115, 121, 107, 128, 107, 119, 119, 105, 124, 93, 117, 111, 119, 112, 121, 111, 118, 112, 110, 103, 119, 122, 116, 104, 99, 89, 107, 100, 116, 115, 111, 115, 123, 120, 107, 121, 116, 99, 123, 117, 96, 107, 109, 123, 110, 123, 112, 114, 113, 119, 116, 117, 111, 110, 97, 109, 129, 115, 116, 127, 129, 128, 107, 119, 131, 112, 136, 126, 118, 111, 117, 106, 136, 106, 106, 125, 114, 108, 109, 133, 100, 119, 119, 117, 130, 113, 122, 120, 95, 117, 106, 112, 103, 102, 109, 118, 108, 129, 116, 98, 115, 118, 118, 119, 107, 121, 111, 115, 100, 112, 120, 103, 130, 120, 114, 122, 111, 111, 120, 102, 115, 108, 118, 116, 116, 107, 116, 118, 106, 120, 118, 106, 123, 124, 115, 109, 101, 106, 107, 97, 121, 108, 114, 123, 110, 113, 113, 111, 116, 118, 113, 124, 120, 125, 103, 95, 112, 123, 117, 110, 108, 105, 102, 109, 128, 117, 117, 77, 115, 135, 104, 107, 125, 106, 113, 135, 111, 111, 133, 111, 111, 113, 116, 112, 126, 115, 115, 110, 113, 111, 122, 112, 105, 104, 100, 115, 117, 111, 112, 121, 102, 121, 109, 108, 121, 131, 132, 116, 123, 117, 115, 116, 110, 99, 124, 82, 119, 111, 119, 111, 101, 118, 116, 95, 119, 128, 104, 109, 112, 118, 106, 114, 114, 111, 119, 107, 124, 133, 122, 116, 107, 124, 121, 119, 112, 122, 124, 105, 109, 119, 104, 111, 112, 105, 120, 121, 113, 109, 101, 105, 117, 124, 120, 114, 122, 127, 118, 125, 115, 124, 109, 139, 113, 105, 106, 113, 109, 116, 110, 130, 131, 116, 113, 101, 128, 115, 113, 108, 102, 113, 123, 111, 93, 131, 127, 122, 120, 121, 127, 115, 110, 120, 128, 133, 116, 118, 115, 122, 112, 119, 107, 117, 119, 122, 126, 119, 120, 127, 114, 115, 118, 105, 117, 116, 106, 113, 112, 111, 127, 111, 107, 116, 113, 115, 129, 110, 118, 116, 119, 112, 117, 123, 118, 105, 123, 121, 113, 115, 112, 110, 132, 120, 113, 112, 107, 113, 103, 131, 109, 121, 114, 127, 104, 113, 107, 110, 116, 104, 116, 121, 112, 124, 121, 120, 102, 117, 114, 119, 121, 124, 114, 109, 106, 117, 123, 121, 118, 110, 111, 119, 94, 112, 105, 113, 110, 121, 120, 116, 124, 116, 113, 117, 105, 113, 112, 113, 110, 125, 118, 136, 115, 113, 108, 116, 126, 131, 133, 116, 122, 114, 125, 108, 116, 120, 103, 109, 112, 116, 112, 122, 114, 123, 116, 108, 111, 114, 111, 103, 122, 123, 117, 116, 115, 112, 121, 122, 117, 109, 119, 122, 122, 119, 110, 107, 102, 116, 119, 113, 100, 118, 115, 125, 110, 116, 108, 110, 111, 118, 108, 107, 111, 121, 125, 114, 116, 110, 112, 119, 109, 119, 118, 98, 111, 117, 115, 120, 114, 106, 113, 127, 109, 117, 123, 111, 112, 113, 129, 111, 125, 118, 107, 124, 123, 120, 123, 103, 111, 112, 109, 111, 115, 124, 123, 100, 114, 107, 117, 118, 111, 124, 106, 111, 109, 125, 131, 116, 121, 117, 113, 105, 121, 104, 109, 120, 106, 115, 116, 112, 114, 117, 109, 110, 114, 127, 114, 86, 123, 108, 111, 131, 116, 114, 109, 114, 107, 96, 121, 119, 120, 100, 125, 123, 120, 117, 123, 122, 103, 117, 121, 114, 114, 123, 115, 108, 117, 120, 107, 124, 107, 116, 111, 109, 119, 121, 104, 108, 104, 113, 111, 120, 106, 108, 131, 112, 116, 112, 107, 115, 111, 110, 121, 115, 108, 119, 123, 128, 109, 119, 115, 107, 115, 116, 108, 123, 113, 112, 110, 115, 107, 112, 111, 108, 128, 110, 106, 119, 130, 105, 112, 114, 121, 110, 110, 120, 120, 115, 135, 121, 116, 117, 113, 125, 117, 112, 120, 117, 117, 110, 112, 127, 101, 126, 112, 110, 128, 118, 127, 124, 121, 110, 117, 133, 125, 109, 88, 106, 115, 115, 108, 122, 123, 114, 113, 119, 109, 120, 110, 120, 122, 120, 125, 124, 113, 122, 106, 117, 112, 114, 103, 116, 125, 109, 116, 113, 105, 124, 136, 102, 125, 117, 127, 106, 116, 118, 104, 110, 112, 124, 105, 110, 114, 115, 104, 117, 111, 115, 121, 117, 119, 102, 127, 106, 110, 115, 136, 116, 106, 120, 119, 123, 116, 106, 109, 127, 112, 110, 120, 108, 123, 127, 112, 104, 103, 131, 123, 149, 101, 114, 113, 114, 109, 108, 109, 104, 111, 128, 113, 122, 112, 105, 120, 114, 106, 113, 121, 103, 98, 117, 121, 115, 123, 114, 117, 119, 122, 118, 142, 99, 107, 101, 100, 116, 107, 118, 116, 106, 110, 117, 115, 121, 122, 109, 108, 103, 123, 119, 118, 122, 116, 108, 110, 118, 107, 104, 110, 113, 101, 106, 114, 98, 119, 126, 117, 130, 115, 119, 119, 109, 117, 119, 125, 112, 112, 117, 118, 103, 114, 106, 113, 110, 108, 101, 110, 118, 113, 108, 125, 116, 111, 110, 119, 112, 102, 103, 110, 119, 114, 99, 107, 113, 125, 115, 116, 110, 114, 112, 114, 107, 127, 115, 107, 113, 120, 115, 133, 107, 121, 116, 114, 117, 108, 117, 127, 125, 124, 115, 119, 122, 108, 115, 91, 117, 106, 106, 110, 120, 124, 130, 93, 116, 109, 110, 114, 110, 105, 118, 113, 114, 125, 107, 117, 114, 118, 119, 125, 113, 112, 120, 127, 117, 115, 107, 128, 119, 113, 113, 124, 116, 105, 109, 124, 112, 93, 122, 112, 114, 103, 122, 116, 115, 117, 111, 112, 120, 112, 117, 107, 123, 137, 106, 124, 112, 112, 111, 112, 114, 114, 118, 109, 120, 105, 123, 114, 115, 105, 113, 118, 123, 95, 118, 108, 105, 112, 119, 115, 103, 116, 118, 128, 105, 109, 119, 121, 132, 129, 104, 114, 125, 117, 119, 120, 109, 119, 105, 112, 116, 109, 115, 119, 117, 116, 97, 115, 98, 107, 116, 103, 117, 117, 114, 120, 113, 112, 115, 117, 115, 128, 118, 108, 111, 114, 114, 120, 130, 114, 104, 133, 120, 109, 121, 102, 119, 118, 126, 120, 104, 112, 115, 112, 119, 103, 115, 110, 121, 119, 115, 107, 110, 132, 122, 109, 113, 108, 117, 122, 121, 94, 109, 114, 119, 116, 115, 106, 99, 123, 126, 100, 123, 125, 117, 94, 105, 129, 110, 116, 123, 127, 122, 121, 115, 112, 107, 115, 104, 118, 94, 119, 129, 111, 120, 119, 111, 122, 114, 113, 123, 119, 108, 113, 116, 134, 129, 116, 109, 122, 125, 104, 119, 119, 126, 108, 121, 97, 136, 113, 122, 117, 109, 100, 119, 128, 118, 123, 122, 111, 120, 121, 111, 126, 117, 120, 126, 119, 125, 125, 112, 111, 120, 112, 119, 120, 114, 113, 116, 114, 118, 118, 108, 124, 110, 116, 118, 117, 110, 104, 120, 121, 134, 103, 118, 124, 111, 107, 120, 117, 135, 115, 105, 98, 116, 111, 114, 100, 122, 126, 122, 114, 124, 118, 108, 89, 105, 107, 120, 118, 113, 105, 112, 111, 112, 107, 119, 116, 110, 117, 119, 122, 109, 100, 107, 100, 103, 104, 111, 104, 109, 117, 105, 119, 114, 117, 131, 132, 104, 135, 117, 118, 119, 110, 109, 112, 113, 117, 139, 120, 121, 116, 118, 127, 119, 117, 106, 110, 119, 103, 118, 122, 136, 114, 109, 112, 102, 115, 110, 115, 127, 118, 116, 110, 110, 112, 98, 105, 104, 118, 129, 110, 112, 112, 103, 105, 112, 106, 104, 106, 123, 117, 126, 105, 97, 127, 119, 136, 119, 124, 109, 110, 107, 111, 118, 97, 106, 118, 128, 133, 105, 123, 111, 103, 112, 115, 115, 119, 111, 123, 115, 120, 114, 119, 102, 126, 118, 109, 109, 134, 120, 113, 116, 113, 120, 116, 120, 124, 129, 114, 118, 121, 122, 108, 112, 116, 113, 117, 117, 110, 107, 124, 108, 142, 124, 124, 113, 114, 126, 110, 113, 109, 119, 114, 133, 121, 125, 126, 119, 112, 124, 114, 110, 113, 112, 99, 107, 107, 112, 122, 120, 117, 117, 114, 112, 121, 116, 109, 112, 112, 125, 114, 118, 117, 112, 109, 119, 105, 119, 105, 119, 116, 128, 115, 114, 123, 117, 115, 122, 104, 120, 127, 111, 113, 122, 116, 110, 117, 120, 107, 124, 126, 129, 110, 118, 103, 125, 111, 122, 112, 118, 112, 115, 116, 113, 113, 120, 111, 110, 109, 123, 119, 111, 108, 122, 110, 130, 121, 119, 110, 112, 106, 104, 116, 113, 128, 112, 115, 113, 116, 108, 120, 115, 109, 104, 102, 116, 110, 121, 114, 114, 117, 117, 115, 112, 142, 120, 121, 115, 112, 113, 118, 111, 123, 112, 105, 106, 116, 112, 115, 119, 110, 117, 110, 104, 100, 109, 116, 122, 113, 112, 108, 107, 110, 111, 115, 108, 109, 119, 121, 109, 116, 113, 109, 110, 117, 124, 117, 115, 112, 132, 118, 114, 125, 112, 105, 108, 124, 117, 119, 119, 111, 116, 105, 127, 115, 120, 107, 115, 106, 112, 114, 111, 120, 111, 108, 110, 119, 118, 116, 108, 105, 112, 122, 111, 115, 112, 123, 113, 107, 113, 118, 126, 98, 124, 132, 106, 116, 117, 109, 111, 104, 116, 125, 112, 114, 110, 101, 121, 123, 109, 112, 130, 110, 121, 113, 114, 129, 124, 93, 121, 122, 127, 116, 120, 116, 108, 107, 128, 108, 114, 123, 105, 118, 95, 113, 119, 108, 120, 128, 116, 116, 115, 112, 115, 108, 111, 107, 121, 108, 128, 127, 114, 112, 121, 109, 112, 123, 117, 115, 123, 111, 112, 123, 115, 112, 127, 120, 113, 116, 111, 102, 89, 107, 117, 113, 122, 119, 109, 120, 107, 112, 127, 104, 112, 103, 118, 120, 112, 125, 112, 105, 103, 123, 126, 109, 116, 110, 113, 112, 113, 124, 102, 117, 109, 116, 114, 99, 120, 113, 105, 121, 114, 123, 114, 99, 100, 115, 117, 110, 121, 116, 120, 111, 117, 137, 116, 123, 122, 117, 113, 120, 101, 123, 113, 118, 88, 119, 115, 121, 115, 118, 114, 108, 112, 116, 118, 133, 122, 109, 113, 120, 122, 103, 130, 122, 117, 115, 116, 116, 112, 106, 110, 123, 116, 109, 117, 135, 111, 117, 120, 113, 125, 115, 106, 115, 113, 104, 115, 109, 117, 113, 114, 116, 123, 109, 112, 137, 113, 116, 112, 115, 112, 128, 112, 123, 114, 110, 115, 119, 109, 117, 122, 118, 127, 109, 107, 126, 123, 121, 114, 115, 110, 119, 121, 111, 124, 121, 115, 113, 119, 121, 131, 116, 113, 112, 119, 108, 125, 120, 117, 109, 113, 107, 117, 132, 120, 112, 122, 113, 113, 101, 111, 123, 99, 120, 121, 114, 117, 111, 113, 112, 112, 117, 103, 128, 108, 118, 106, 109, 129, 110, 113, 112, 125, 90, 110, 108, 113, 114, 107, 125, 125, 118, 107, 123, 122, 118, 116, 111, 106, 113, 117, 100, 117, 123, 116, 111, 111, 129, 110, 105, 118, 124, 113, 135, 112, 111, 114, 110, 124, 118, 123, 111, 125, 113, 117, 114, 123, 113, 123, 105, 100, 116, 103, 124, 110, 110, 113, 117, 110, 110, 122, 121, 111, 120, 115, 124, 118, 125, 106, 127, 135, 114, 112, 108, 112, 112, 110, 118, 114, 114, 115, 115, 125, 117, 107, 123, 109, 107, 115, 97, 108, 125, 112, 109, 104, 125, 116, 121, 109, 109, 106, 125, 117, 111, 121, 114, 117, 116, 120, 105, 113, 125, 125, 116, 116, 104, 109, 106, 108, 111, 112, 119, 117, 112, 111, 111, 116, 122, 106, 112, 113, 115, 126, 111, 121, 98, 123, 109, 120, 101, 109, 111, 114, 120, 121, 113, 114, 111, 102, 113, 121, 117, 120, 111, 122, 122, 110, 114, 108, 129, 124, 119, 126, 113, 104, 115, 122, 119, 117, 109, 118, 107, 110, 118, 115, 140, 121, 119, 138, 117, 106, 115, 125, 129, 119, 117, 128, 105, 111, 121, 107, 107, 102, 108, 120, 113, 108, 118, 119, 109, 123, 123, 125, 120, 110, 97, 116, 115, 108, 129, 106, 117, 112, 107, 112, 114, 107, 127, 128, 106, 112, 116, 109, 117, 109, 111, 114, 101, 115, 107, 118, 117, 124, 115, 117, 115, 119, 113, 113, 115, 119, 119, 118, 112, 115, 128, 117, 114, 108, 124, 98, 121, 122, 109, 101, 119, 114, 126, 115, 118, 112, 111, 105, 110, 124, 115, 104, 119, 133, 126, 117, 124, 116, 112, 123, 115, 116, 136, 124, 115, 124, 99, 119, 94, 120, 123, 113, 119, 108, 114, 118, 112, 114, 116, 113, 117, 121, 98, 114, 119, 120, 118, 121, 110, 121, 118, 107, 121, 102, 107, 118, 113, 117, 109, 99, 108, 114, 118, 111, 118, 102, 119, 108, 124, 120, 109, 114, 97, 114, 117, 112, 112, 119, 107, 115, 123, 112, 106, 107, 119, 115, 112, 121, 108, 115, 95, 116, 111, 102, 117, 111, 113, 141, 114, 111, 128, 113, 111, 110, 124, 99, 113, 110, 117, 122, 119, 109, 138, 105, 119, 113, 120, 112, 104, 109, 109, 121, 112, 126, 107, 116, 103, 113, 114, 104, 122, 111, 118, 118, 103, 110, 115, 117, 116, 112, 119, 100, 114, 122, 117, 116, 102, 109, 121, 110, 122, 131, 108, 112, 115, 109, 137, 117, 118, 103, 117, 120, 118, 123, 113, 106, 115, 130, 124, 95, 127, 112, 111, 104, 97, 119, 114, 132, 101, 102, 109, 121, 107, 122, 108, 116, 108, 114, 125, 112, 110, 111, 121, 106, 111, 134, 110, 112, 125, 117, 113, 113, 115, 110, 103, 112, 112, 113, 122, 108, 116, 121, 118, 118, 108, 118, 106, 117, 116, 111, 109, 128, 110, 112, 118, 111, 120, 111, 120, 101, 110, 108, 112, 118, 120, 118, 111, 109, 109, 115, 127, 115, 118, 119, 102, 129, 106, 111, 118, 112, 107, 108, 115, 103, 114, 102, 120, 108, 121, 105, 98, 116, 107, 114, 127, 108, 113, 126, 108, 122, 110, 113, 118, 125, 108, 115, 120, 107, 112, 112, 113, 122, 126, 119, 116, 116, 131, 104, 118, 111, 119, 124, 118, 113, 117, 103, 120, 123, 117, 123, 120, 119, 115, 132, 120, 119, 117, 110, 124, 113, 118, 114, 111, 116, 106, 113, 114, 125, 110, 119, 128, 110, 114, 114, 112, 112, 111, 109, 119, 109, 121, 113, 111, 104, 118, 123, 107, 119, 121, 112, 127, 106, 130, 114, 109, 119, 113, 103, 115, 111, 114, 108, 124, 106, 116, 114, 123, 113, 122, 109, 117, 111, 111, 105, 113, 120, 120, 122, 111, 109, 111, 115, 127, 118, 131, 113, 126, 117, 105, 117, 122, 112, 99, 119, 116, 119, 114, 111, 114, 104, 122, 112, 115, 113, 113, 109, 116, 108, 110, 117, 125, 118, 118, 112, 114, 110, 100, 130, 114, 111, 112, 106, 98, 116, 109, 102, 112, 119, 113, 121, 104, 128, 118, 104, 111, 125, 119, 113, 115, 115, 111, 107, 92, 114, 110, 117, 115, 136, 123, 111, 122, 112, 110, 110, 114, 108, 121, 124, 124, 119, 113, 118, 124, 121, 116, 125, 117, 128, 104, 112, 116, 123, 133, 130, 113, 116, 121, 118, 113, 117, 108, 130, 109, 127, 107, 109, 94, 122, 108, 116, 118, 115, 104, 118, 108, 114, 108, 120, 123, 117, 111, 124, 116, 116, 122, 112, 120, 114, 119, 116, 111, 123, 110, 102, 115, 119, 128, 115, 109, 117, 113, 118, 106, 114, 116, 103, 99, 128, 121, 114, 109, 115, 119, 114, 112, 102, 99, 111, 120, 122, 125, 111, 112, 110, 132, 116, 111, 115, 111, 122, 111, 100, 128, 112, 110, 129, 121, 128, 119, 113, 121, 116, 128, 115, 108, 118, 122, 109, 123, 111, 109, 123, 118, 118, 114, 120, 109, 114, 108, 128, 122, 115, 99, 106, 114, 114, 124, 119, 117, 110, 115, 120, 123, 106, 111, 108, 114, 113, 122, 114, 113, 123, 116, 105, 105, 123, 109, 126, 107, 113, 123, 100, 116, 116, 134, 113, 117, 123, 112, 109, 117, 128, 116, 116, 126, 133, 106, 108, 119, 134, 109, 123, 117, 108, 123, 113, 106, 115, 114, 114, 119, 126, 110, 111, 113, 113, 116, 113, 117, 123, 125, 113, 108, 132, 113, 125, 118, 110, 121, 116, 121, 118, 130, 113, 112, 109, 121, 114, 112, 116, 114, 114, 105, 125, 120, 114, 119, 120, 116, 107, 118, 114, 106, 105, 102, 120, 111, 118, 99, 111, 103, 113, 117, 113, 111, 115, 120, 111, 128, 119, 113, 130, 122, 114, 117, 123, 118, 117, 126, 119, 115, 154, 115, 114, 122, 116, 121, 116, 117, 126, 113, 111, 115, 121, 106, 116, 127, 122, 116, 105, 124, 116, 120, 116, 101, 114, 106, 118, 113, 114, 116, 110, 119, 102, 106, 110, 106, 117, 103, 115, 107, 116, 128, 104, 115, 115, 110, 106, 109, 113, 110, 121, 109, 116, 115, 117, 111, 113, 127, 113, 106, 103, 114, 118, 115, 114, 115, 125, 114, 112, 111, 116, 114, 109, 121, 106, 120, 115, 120, 123, 116, 110, 107, 116, 118, 110, 116, 114, 122, 113, 127, 126, 117, 111, 110, 115, 115, 123, 118, 117, 118, 113, 121, 111, 102, 113, 114, 119, 120, 110, 106, 112, 122, 111, 112, 117, 124, 110, 112, 112, 112, 115, 123, 117, 106, 116, 108, 119, 121, 119, 117, 114, 113, 108, 104, 107, 113, 125, 103, 113, 113, 105, 115, 112, 108, 127, 121, 113, 119, 106, 116, 111, 108, 121, 115, 118, 100, 114, 98, 113, 119, 117, 115, 115, 128, 111, 143, 117, 125, 116, 112, 99, 119, 116, 111, 105, 118, 108, 110, 106, 121, 117, 118, 108, 117, 110, 121, 114, 105, 117, 118, 115, 118, 110, 119, 113, 113, 106, 115, 117, 114, 117, 108, 110, 116, 111, 117, 116, 123, 112, 103, 114, 130, 122, 108, 112, 113, 121, 108, 120, 114, 119, 114, 104, 110, 114, 114, 108, 117, 111, 113, 118, 121, 114, 113, 110, 118, 129, 100, 116, 120, 114, 111, 112, 110, 122, 112, 108, 113, 118, 119, 118, 106, 120, 104, 111, 113, 120, 122, 117, 115, 111, 118, 111, 111, 108, 116, 115, 121, 110, 105, 116, 118, 109, 111, 120, 115, 105, 111, 116, 112, 117, 102, 112, 112, 105, 114, 105, 118, 119, 125, 118, 117, 112, 117, 113, 125, 120, 117, 120, 115, 116, 118, 115, 112, 116, 122, 114, 126, 114, 113, 121, 123, 112, 109, 113, 113, 114, 115, 112, 122, 109, 111, 120, 120, 117, 103, 120, 111, 116, 117, 121, 117, 119, 114, 102, 118, 107, 120, 117, 108, 114, 108, 125, 122, 111, 117, 119, 108, 114, 104, 107, 109, 118, 116, 111, 113, 121, 117, 123, 119, 123, 105, 112, 106, 112, 117, 105, 111, 109, 106, 113, 113, 113, 113, 113, 107, 117, 124, 118, 111, 113, 119, 111, 112, 111, 114, 124, 110, 110, 113, 114, 117, 108, 120, 108, 111, 119, 110, 114, 113, 109, 112, 112, 117, 118, 112, 128, 114, 126, 110, 117, 118, 121, 124, 115, 116, 119, 119, 121, 116, 117, 110, 113, 113, 122, 117, 116, 115, 107, 120, 112, 123, 117, 116, 123, 123, 97, 116, 118, 117, 113, 116, 121, 107, 114, 105, 104, 115, 115, 109, 120, 112, 120, 113, 118, 116, 111, 109, 112, 122, 110, 112, 112, 105, 119, 116, 121, 118, 110, 115, 111, 109, 119, 113, 109, 117, 113, 109, 115, 112, 102, 113, 116, 117, 114, 120, 115, 114, 113, 106, 119, 117, 115, 127, 118, 117, 120, 119, 115, 117, 115, 126, 117, 115, 112, 113, 112, 120, 110, 112, 116, 112, 116, 103, 118, 118, 124, 116, 119, 117, 106, 118, 108, 104, 116, 116, 114, 116, 104, 116, 107, 112, 116, 112, 113, 118, 114, 112, 118, 123, 113, 122, 118, 115, 109, 106, 117, 112, 123, 105, 114, 118, 118, 111, 121, 123, 118, 114, 130, 126, 114, 114, 113, 123, 109, 105, 121, 114, 118, 113, 111, 109, 105, 117, 114, 80, 117, 109, 112, 111, 116, 121, 113, 106, 113, 122, 106, 126, 115, 114, 108, 115, 119, 124, 114, 115, 105, 112, 111, 119, 122, 113, 107, 112, 119, 112, 111, 117, 122, 107, 118, 113, 105, 117, 118, 111, 116, 121, 115, 116, 110, 115, 118, 114, 111, 115, 117, 113, 105, 116, 116, 113, 120, 109, 113, 112, 121, 122, 118, 112, 117, 117, 111, 111, 115, 117, 128, 112, 112, 119, 117, 112, 111, 116, 117, 112, 117, 99, 116, 116, 116, 119, 114, 122, 100, 111, 116, 115, 120, 116, 114, 115, 113, 113, 116, 109, 120, 119, 111, 117, 116, 108, 120, 114, 116, 118, 111, 115, 103, 114, 119, 115, 112, 109, 125, 116, 120, 111, 120, 117, 120, 112, 123, 126, 109, 118, 119, 117, 130, 114, 121, 113, 120, 114, 122, 111, 115, 113, 109, 115, 115, 109, 112, 119, 100, 107, 116, 120, 113, 110, 110, 126, 121, 109, 114, 112, 136, 121, 111, 119, 115, 114, 113, 116, 120, 119, 113, 110, 111, 113, 116, 114, 120, 105, 117, 111, 119, 115, 119, 118, 109, 112, 113, 109, 112, 113, 107, 116, 120, 115, 116, 119, 125, 115, 115, 116, 122, 115, 107, 116, 121, 111, 116, 114, 118, 106, 110, 119, 117, 113, 112, 106, 118, 107, 107, 106, 111, 108, 115, 110, 117, 129, 120, 123, 115, 111, 116, 110, 122, 110, 110, 116, 119, 117, 115, 113, 111, 121, 108, 121, 112, 117, 119, 113, 128, 119, 117, 112, 117, 111, 124, 110, 112, 112, 116, 122, 113, 112, 119, 116, 114, 111, 117, 112, 112, 111, 126, 116, 121, 109, 109, 112, 117, 104, 122, 112, 121, 125, 120, 107, 114, 121, 122, 114, 108, 119, 115, 129, 114, 118, 120, 113, 107, 110, 120, 114, 117, 122, 121, 118, 109, 108, 118, 119, 108, 107, 108, 119, 113, 117, 122, 111, 116, 121, 118, 120, 106, 118, 106, 109, 110, 114, 112, 117, 114, 109, 113, 109, 115, 107, 107, 120, 112, 118, 109, 112, 111, 117, 118, 115, 120, 112, 121, 111, 115, 111, 119, 118, 118, 121, 109, 120, 128, 122, 108, 112, 118, 110, 113, 110, 121, 114, 124, 116, 119, 116, 117, 121, 116, 120, 118, 116, 118, 106, 117, 119, 115, 118, 119, 116, 117, 110, 116, 109, 113, 108, 115, 121, 117, 116, 115, 116, 117, 120, 118, 120, 113, 113, 103, 119, 112, 119, 107, 119, 119, 119, 108, 114, 116, 108, 110, 117, 113, 111, 117, 111, 113, 118, 113, 117, 107, 115, 115, 115, 114, 107, 116, 109, 107, 109, 113, 118, 120, 121, 118, 118, 122, 111, 110, 114, 115, 118, 120, 108, 118, 115, 110, 105, 111, 122, 120, 111, 98, 112, 115, 118, 122, 123, 114, 109, 110, 115, 105, 116, 118, 112, 112, 117, 118, 114, 124, 109, 108, 112, 122, 123, 112, 110, 117, 120, 117, 109, 114, 116, 113, 121, 118, 114, 114, 119, 122, 113, 111, 119, 114, 110, 104, 111, 127, 108, 114, 110, 109, 141, 115, 131, 121, 119, 117, 99, 99, 107, 112, 116, 112, 124, 106, 117, 120, 115, 112, 104, 119, 103, 107, 119, 117, 111, 121, 120, 111, 90, 111, 109, 109, 116, 129, 125, 110, 109, 122, 114, 106, 120, 112, 128, 116, 108, 129, 107, 123, 124, 102, 102, 130, 101, 109, 119, 109, 125, 117, 125, 116, 108, 107, 122, 108, 99, 103, 94, 115, 115, 109, 124, 116, 117, 118, 102, 110, 94, 113, 119, 113, 115, 111, 109, 113, 120, 105, 107, 117, 108, 104, 117, 87, 113, 116, 115, 115, 123, 125, 118, 105, 121, 109, 116, 110, 110, 102, 106, 115, 105, 101, 108, 110, 107, 122, 116, 106, 128, 120, 120, 115, 116, 117, 90, 117, 106, 125, 110, 131, 115, 112, 100, 106, 110, 107, 116, 104, 116, 123, 123, 111, 123, 104, 108, 118, 122, 119, 119, 130, 111, 105, 104, 120, 117, 116, 119, 121, 115, 110, 123, 130, 119, 91, 133, 113, 110, 115, 114, 117, 96, 116, 114, 124, 106, 126, 115, 132, 135, 104, 110, 119, 118, 107, 128, 107, 113, 108, 120, 111, 114, 104, 113, 115, 112, 117, 114, 108, 99, 116, 113, 111, 117, 113, 108, 120, 121, 121, 116, 114, 116, 108, 136, 113, 102, 117, 116, 127, 125, 104, 111, 101, 109, 115, 117, 115, 105, 118, 104, 119, 111, 123, 113, 114, 111, 113, 120, 131, 104, 100, 129, 118, 120, 114, 131, 115, 123, 107, 109, 104, 104, 108, 119, 102, 130, 117, 121, 107, 102, 118, 128, 121, 97, 126, 96, 132, 124, 118, 118, 105, 109, 115, 114, 122, 129, 134, 112, 117, 126, 121, 99, 104, 114, 114, 113, 116, 96, 119, 115, 110, 106, 115, 107, 127, 109, 115, 121, 107, 128, 112, 118, 96, 105, 106, 122, 94, 120, 121, 119, 136, 103, 118, 111, 113, 122, 121, 126, 112, 114, 133, 119, 95, 103, 101, 112, 103, 113, 107, 119, 94, 100, 113, 120, 105, 117, 112, 132, 112, 108, 104, 100, 116, 117, 121, 116, 124, 114, 126, 113, 123, 114, 119, 92, 106, 108, 106, 119, 120, 107, 112, 112, 114, 98, 107, 116, 127, 114, 121, 96, 108, 125, 119, 120, 126, 136, 100, 108, 114, 119, 119, 96, 114, 108, 113, 131, 132, 110, 112, 118, 113, 115, 132, 91, 116, 112, 107, 113, 107, 112, 112, 97, 122, 108, 125, 127, 124, 111, 118, 124, 116, 107, 123, 103, 114, 117, 115, 112, 127, 118, 117, 114, 115, 107, 106, 100, 123, 112, 121, 129, 108, 95, 126, 120, 120, 101, 100, 118, 119, 128, 120, 91, 124, 115, 130, 128, 115, 114, 135, 127, 116, 108, 102, 119, 124, 108, 117, 100, 118, 126, 108, 107, 114, 109, 121, 109, 100, 113, 119, 123, 112, 108, 118, 116, 101, 108, 115, 106, 118, 126, 126, 118, 153, 124, 109, 115, 107, 108, 96, 107, 103, 119, 123, 102, 122, 108, 118, 117, 114, 107, 117, 122, 108, 114, 124, 138, 107, 107, 105, 116, 121, 112, 113, 124, 105, 119, 110, 109, 125, 106, 123, 113, 106, 110, 108, 117, 116, 100, 118, 111, 92, 117, 117, 110, 120, 121, 123, 113, 106, 108, 110, 123, 103, 100, 120, 115, 107, 118, 114, 107, 82, 108, 117, 105, 104, 109, 129, 118, 112, 111, 112, 113, 114, 117, 113, 108, 116, 117, 109, 119, 125, 130, 127, 119, 110, 105, 112, 109, 120, 116, 121, 119, 119, 120, 109, 105, 105, 113, 117, 106, 126, 121, 123, 116, 119, 114, 113, 130, 111, 111, 112, 108, 109, 111, 115, 108, 112, 125, 105, 140, 102, 109, 133, 114, 116, 122, 121, 134, 119, 105, 115, 107, 116, 121, 115, 119, 112, 118, 113, 107, 111, 118, 117, 121, 111, 110, 98, 114, 116, 141, 127, 130, 109, 120, 98, 112, 130, 112, 114, 104, 119, 115, 112, 96, 114, 105, 112, 115, 119, 123, 120, 116, 132, 128, 127, 110, 107, 107, 118, 97, 112, 118, 112, 115, 117, 127, 106, 105, 116, 118, 118, 143, 123, 119, 92, 98, 104, 109, 102, 113, 106, 114, 107, 121, 112, 120, 114, 104, 115, 111, 111, 108, 111, 111, 114, 98, 106, 129, 125, 99, 120, 116, 118, 121, 108, 113, 136, 120, 113, 121, 118, 112, 114, 119, 113, 98, 100, 127, 123, 110, 127, 111, 112, 111, 120, 109, 119, 113, 111, 138, 117, 117, 99, 111, 109, 93, 116, 124, 116, 123, 118, 110, 126, 104, 127, 124, 115, 124, 125, 128, 112, 120, 114, 105, 111, 111, 118, 111, 123, 104, 117, 129, 96, 135, 109, 113, 117, 106, 119, 105, 114, 104, 109, 114, 109, 116, 115, 111, 119, 110, 113, 90, 108, 108, 108, 119, 118, 120, 117, 112, 109, 111, 112, 114, 109, 120, 108, 116, 116, 113, 108, 109, 124, 119, 106, 109, 111, 115, 104, 121, 113, 115, 111, 122, 109, 110, 113, 106, 119, 116, 101, 120, 100, 119, 121, 123, 107, 129, 109, 106, 97, 136, 113, 119, 120, 112, 117, 118, 112, 114, 121, 127, 113, 102, 111, 109, 104, 124, 107, 117, 123, 123, 104, 112, 113, 117, 118, 118, 103, 93, 108, 129, 114, 113, 122, 109, 112, 117, 98, 117, 118, 124, 119, 115, 106, 109, 124, 115, 118, 119, 121, 118, 111, 117, 105, 122, 115, 124, 106, 116, 132, 128, 107, 118, 126, 113, 138, 116, 118, 102, 120, 130, 104, 102, 98, 125, 117, 121, 107, 106, 109, 116, 104, 96, 116, 121, 111, 122, 119, 140, 108, 110, 101, 102, 121, 98, 115, 106, 120, 103, 108, 103, 98, 115, 100, 101, 113, 118, 117, 118, 122, 111, 121, 113, 119, 114, 98, 110, 109, 113, 108, 117, 122, 114, 122, 118, 98, 113, 105, 114, 108, 122, 111, 106, 112, 111, 117, 123, 111, 113, 123, 109, 121, 111, 117, 113, 126, 102, 105, 110, 112, 127, 114, 111, 108, 125, 110, 117, 107, 109, 122, 116, 109, 119, 114, 114, 122, 108, 118, 117, 116, 119, 115, 109, 121, 114, 101, 130, 117, 108, 114, 118, 115, 118, 105, 111, 115, 118, 106, 117, 113, 112, 121, 102, 120, 114, 112, 104, 109, 106, 125, 110, 127, 116, 129, 108, 111, 122, 119, 104, 125, 108, 113, 114, 128, 130, 105, 112, 105, 117, 134, 111, 113, 129, 114, 94, 135, 115, 110, 130, 129, 117, 123, 111, 129, 118, 116, 115, 116, 107, 112, 116, 112, 118, 111, 114, 98, 113, 113, 101, 105, 118, 118, 102, 106, 96, 93, 116, 114, 117, 114, 109, 109, 98, 109, 106, 113, 118, 135, 110, 112, 106, 118, 99, 121, 110, 137, 118, 122, 116, 115, 108, 120, 119, 89, 120, 116, 128, 130, 123, 109, 116, 108, 123, 128, 107, 123, 116, 110, 124, 139, 113, 106, 120, 113, 125, 119, 114, 98, 112, 110, 118, 103, 100, 120, 121, 111, 118, 123, 120, 110, 114, 122, 125, 109, 112, 113, 121, 111, 114, 131, 113, 118, 116, 117, 102, 120, 106, 109, 107, 117, 100, 119, 121, 126, 126, 121, 106, 112, 123, 125, 116, 118, 119, 114, 110, 104, 120, 111, 100, 110, 112, 143, 129, 114, 116, 113, 106, 120, 130, 126, 109, 97, 117, 120, 120, 114, 127, 108, 115, 120, 117, 135, 103, 111, 117, 97, 122, 106, 120, 125, 115, 103, 134, 107, 113, 112, 131, 139, 107, 113, 118, 111, 105, 112, 125, 141, 101, 107, 117, 117, 114, 116, 106, 122, 117, 119, 116, 108, 122, 109, 112, 110, 103, 113, 112, 128, 125, 118, 105, 125, 123, 133, 113, 113, 121, 123, 116, 113, 120, 118, 110, 107, 107, 98, 112, 113, 96, 100, 102, 115, 98, 113, 128, 121, 110, 120, 111, 111, 115, 109, 102, 115, 109, 100, 100, 114, 107, 121, 109, 111, 109, 105, 113, 123, 137, 117, 89, 104, 111, 112, 125, 119, 114, 112, 106, 113, 114, 113, 127, 121, 118, 110, 141, 130, 102, 106, 122, 128, 115, 129, 113, 105, 120, 108, 105, 128, 118, 113, 103, 117, 102, 102, 121, 113, 116, 115, 125, 113, 137, 121, 117, 105, 119, 124, 105, 116, 109, 108, 121, 124, 133, 115, 112, 108, 109, 123, 112, 106, 97, 138, 102, 111, 121, 105, 108, 123, 112, 124, 115, 114, 114, 109, 117, 110, 112, 142, 111, 118, 113, 107, 122, 131, 110, 108, 127, 115, 107, 123, 118, 108, 118, 125, 118, 116, 105, 124, 113, 108, 126, 122, 107, 108, 92, 123, 114, 124, 114, 108, 128, 110, 117, 108, 127, 109, 120, 129, 140, 122, 117, 125, 100, 116, 113, 115, 113, 119, 107, 124, 101, 107, 104, 111, 128, 115, 109, 113, 103, 120, 113, 144, 140, 117, 119, 117, 137, 125, 127, 98, 107, 108, 111, 119, 117, 119, 104, 126, 104, 111, 112, 107, 120, 131, 127, 118, 108, 118, 118, 98, 120, 109, 105, 123, 120, 113, 126, 120, 107, 105, 124, 99, 114, 123, 119, 122, 114, 109, 111, 105, 118, 108, 113, 120, 117, 146, 111, 126, 111, 114, 121, 123, 114, 114, 109, 109, 126, 122, 103, 116, 114, 120, 123, 124, 124, 113, 115, 117, 119, 118, 117, 109, 111, 117, 119, 107, 117, 121, 122, 108, 115, 116, 117, 112, 110, 118, 118, 110, 115, 118, 116, 111, 106, 111, 118, 115, 114, 113, 119, 111, 110, 118, 117, 119, 121, 112, 120, 115, 121, 111, 113, 111, 113, 99, 117, 117, 117, 113, 113, 116, 115, 110, 116, 115, 113, 109, 122, 112, 108, 104, 121, 110, 121, 112, 116, 125, 116, 110, 112, 106, 120, 120, 111, 113, 98, 102, 122, 113, 110, 107, 112, 118, 112, 149, 111, 124, 119, 103, 106, 108, 116, 118, 117, 120, 122, 104, 119, 117, 115, 118, 108, 124, 121, 122, 111, 102, 122, 125, 122, 116, 111, 113, 113, 114, 114, 115, 114, 106, 109, 119, 118, 106, 126, 114, 112, 102, 117, 115, 108, 103, 117, 121, 115, 105, 119, 109, 117, 114, 115, 117, 118, 125, 118, 109, 113, 121, 118, 106, 108, 116, 110, 117, 104, 117, 123, 112, 118, 112, 97, 112, 116, 112, 114, 113, 112, 125, 121, 120, 121, 125, 109, 120, 112, 109, 111, 116, 114, 119, 113, 124, 119, 123, 119, 98, 120, 117, 110, 110, 113, 115, 113, 111, 110, 116, 113, 122, 109, 118, 114, 116, 110, 120, 112, 111, 123, 119, 114, 119, 115, 119, 111, 113, 118, 107, 114, 108, 123, 123, 117, 122, 121, 117, 118, 124, 112, 119, 116, 118, 119, 117, 108, 111, 118, 104, 109, 116, 121, 113, 102, 117, 112, 115, 118, 120, 121, 113, 112, 114, 112, 110, 111, 117, 115, 110, 114, 109, 120, 114, 115, 99, 110, 118, 134, 124, 108, 123, 110, 109, 85, 116, 106, 115, 116, 116, 111, 113, 118, 122, 117, 111, 119, 113, 115, 107, 110, 99, 106, 117, 116, 117, 117, 113, 114, 120, 117, 117, 117, 117, 115, 120, 111, 117, 113, 117, 115, 107, 114, 120, 107, 108, 114, 116, 110, 118, 105, 120, 147, 110, 115, 118, 109, 118, 113, 111, 118, 107, 119, 117, 111, 115, 112, 121, 132, 106, 116, 111, 115, 110, 114, 112, 109, 109, 110, 107, 131, 113, 108, 117, 107, 114, 126, 116, 116, 114, 108, 109, 123, 114, 111, 110, 129, 112, 109, 110, 120, 110, 115, 113, 117, 118, 105, 115, 118, 112, 109, 111, 119, 114, 117, 102, 119, 110, 112, 116, 116, 111, 111, 110, 123, 106, 114, 123, 116, 114, 111, 113, 112, 111, 108, 114, 113, 104, 110, 119, 109, 115, 117, 118, 118, 114, 113, 116, 113, 107, 119, 111, 110, 111, 114, 118, 115, 116, 112, 112, 122, 113, 114, 117, 113, 122, 119, 116, 108, 111, 107, 123, 107, 110, 118, 108, 117, 114, 133, 112, 114, 115, 115, 121, 110, 110, 112, 122, 111, 109, 119, 113, 117, 117, 111, 113, 115, 114, 121, 114, 112, 108, 118, 115, 110, 110, 123, 110, 120, 111, 117, 112, 110, 118, 112, 104, 118, 115, 115, 119, 106, 108, 116, 117, 121, 118, 133, 119, 122, 111, 114, 106, 118, 120, 119, 101, 118, 109, 112, 112, 114, 112, 112, 120, 111, 119, 113, 111, 111, 113, 113, 117, 115, 115, 111, 130, 112, 106, 116, 117, 115, 112, 110, 104, 115, 111, 121, 119, 122, 113, 115, 113, 118, 114, 127, 119, 118, 109, 117, 114, 121, 114, 109, 123, 114, 118, 115, 122, 111, 116, 109, 120, 112, 117, 120, 123, 112, 121, 121, 108, 118, 115, 125, 118, 106, 115, 114, 110, 119, 114, 114, 114, 116, 117, 114, 118, 106, 117, 115, 115, 118, 115, 117, 117, 114, 113, 122, 116, 116, 115, 116, 118, 113, 104, 113, 119, 106, 119, 114, 114, 119, 118, 116, 119, 112, 98, 120, 116, 114, 119, 120, 102, 112, 117, 107, 117, 114, 116, 114, 121, 119, 108, 118, 115, 115, 113, 122, 117, 112, 121, 124, 115, 112, 123, 110, 126, 116, 114, 118, 120, 112, 115, 117, 106, 122, 122, 114, 122, 118, 115, 103, 114, 113, 119, 115, 112, 117, 116, 101, 115, 124, 110, 103, 109, 114, 117, 109, 114, 108, 117, 113, 119, 108, 115, 112, 112, 122, 126, 123, 113, 131, 114, 116, 113, 119, 117, 118, 118, 115, 119, 123, 113, 113, 121, 112, 110, 115, 115, 125, 113, 123, 118, 112, 115, 114, 119, 110, 113, 116, 125, 112, 116, 121, 129, 120, 115, 118, 108, 112, 124, 117, 116, 109, 110, 125, 119, 117, 123, 110, 116, 107, 118, 112, 111, 116, 108, 112, 116, 118, 113, 119, 112, 117, 116, 127, 117, 107, 113, 116, 118, 120, 116, 120, 118, 122, 121, 116, 106, 117, 118, 113, 114, 120, 112, 115, 118, 112, 123, 115, 120, 127, 114, 115, 113, 116, 121, 113, 115, 118, 112, 120, 103, 120, 119, 110, 116, 112, 108, 123, 120, 116, 107, 115, 109, 112, 127, 115, 119, 117, 118, 112, 108, 121, 114, 121, 106, 115, 118, 115, 108, 115, 119, 117, 113, 121, 117, 105, 115, 118, 120, 105, 111, 122, 114, 109, 117, 105, 112, 117, 115, 104, 115, 119, 118, 120, 124, 124, 121, 120, 118, 122, 116, 117, 113, 121, 116, 117, 117, 115, 113, 118, 106, 122, 113, 116, 122, 113, 116, 116, 117, 111, 114, 117, 119, 107, 118, 117, 123, 115, 103, 111, 119, 121, 112, 112, 111, 124, 122, 114, 120, 113, 118, 115, 124, 115, 111, 124, 115, 117, 121, 119, 112, 115, 124, 113, 119, 100, 112, 118, 104, 129, 122, 106, 119, 125, 113, 115, 114, 121, 130, 119, 120, 119, 122, 121, 120, 115, 111, 129, 105, 112, 108, 114, 112, 116, 119, 121, 114, 113, 117, 116, 118, 119, 109, 114, 123, 120, 116, 125, 115, 111, 116, 116, 115, 121, 114, 115, 113, 119, 112, 110, 123, 113, 109, 123, 114, 112, 105, 111, 114, 111, 128, 111, 115, 114, 116, 122, 112, 122, 119, 113, 112, 123, 116, 111, 116, 117, 120, 109, 116, 119, 121, 119, 112, 116, 116, 114, 125, 110, 115, 116, 120, 120, 115, 121, 122, 122, 118, 125, 115, 118, 114, 110, 114, 110, 116, 116, 110, 123, 106, 114, 110, 115, 108, 110, 122, 111, 125, 120, 117, 115, 115, 99, 118, 120, 100, 118, 122, 125, 111, 113, 118, 105, 121, 120, 116, 109, 129, 89, 121, 123, 114, 126, 113, 125, 116, 128, 120, 122, 113, 99, 126, 120, 113, 115, 109, 117, 121, 115, 120, 100, 120, 108, 121, 120, 112, 131, 111, 119, 111, 130, 99, 96, 131, 99, 99, 105, 117, 126, 111, 131, 114, 127, 112, 94, 119, 108, 114, 121, 115, 114, 109, 113, 113, 112, 105, 130, 118, 120, 104, 113, 118, 131, 128, 135, 120, 113, 114, 127, 109, 114, 113, 117, 107, 124, 119, 131, 117, 102, 119, 112, 119, 123, 120, 118, 116, 109, 116, 122, 127, 126, 81, 108, 120, 123, 116, 109, 117, 111, 112, 105, 98, 109, 123, 119, 115, 123, 114, 115, 119, 123, 112, 101, 108, 130, 125, 107, 98, 113, 113, 126, 89, 104, 89, 129, 111, 99, 139, 119, 105, 104, 125, 124, 147, 122, 122, 111, 115, 81, 99, 100, 107, 112, 82, 103, 106, 110, 127, 109, 96, 121, 117, 117, 129, 114, 116, 114, 104, 117, 115, 108, 114, 99, 113, 128, 102, 121, 105, 120, 110, 104, 101, 121, 110, 106, 126, 114, 129, 135, 104, 123, 104, 115, 114, 117, 120, 116, 109, 113, 105, 128, 118, 115, 128, 120, 97, 113, 103, 105, 122, 125, 129, 112, 101, 119, 120, 119, 110, 120, 116, 108, 115, 124, 111, 112, 101, 140, 112, 105, 118, 125, 115, 99, 119, 105, 117, 114, 111, 104, 74, 107, 106, 118, 122, 117, 119, 113, 130, 110, 112, 117, 118, 122, 112, 109, 116, 122, 120, 112, 120, 116, 111, 120, 112, 117, 109, 122, 115, 105, 103, 116, 123, 115, 106, 106, 117, 121, 107, 115, 113, 108, 135, 112, 104, 125, 140, 139, 125, 105, 108, 115, 103, 120, 127, 126, 76, 119, 119, 123, 126, 123, 108, 113, 101, 101, 127, 126, 102, 111, 97, 123, 135, 115, 123, 111, 102, 110, 121, 130, 115, 127, 140, 125, 111, 123, 119, 123, 118, 104, 110, 117, 120, 110, 104, 121, 101, 121, 109, 127, 134, 143, 145, 101, 114, 110, 116, 115, 102, 118, 122, 112, 105, 122, 123, 120, 114, 112, 99, 120, 122, 112, 108, 108, 93, 118, 96, 114, 124, 129, 112, 133, 122, 129, 122, 125, 122, 125, 123, 109, 122, 115, 141, 102, 130, 109, 118, 124, 106, 103, 127, 110, 112, 110, 101, 105, 112, 121, 103, 121, 123, 114, 117, 116, 126, 121, 99, 120, 111, 104, 105, 109, 109, 123, 122, 112, 113, 131, 115, 120, 110, 121, 104, 100, 128, 126, 121, 121, 121, 119, 104, 120, 112, 121, 118, 107, 120, 107, 109, 109, 111, 112, 100, 128, 118, 129, 128, 121, 121, 102, 107, 109, 132, 112, 138, 114, 111, 104, 111, 119, 134, 106, 97, 113, 111, 105, 115, 130, 111, 118, 138, 127, 119, 99, 118, 106, 105, 108, 107, 118, 126, 113, 113, 106, 119, 108, 124, 118, 113, 112, 107, 113, 116, 116, 130, 112, 127, 127, 91, 107, 94, 116, 121, 116, 102, 119, 120, 114, 123, 110, 127, 110, 116, 115, 113, 100, 114, 104, 110, 123, 120, 119, 118, 106, 115, 113, 111, 123, 121, 106, 114, 124, 120, 119, 113, 127, 119, 107, 116, 107, 129, 108, 113, 113, 116, 122, 117, 114, 103, 134, 111, 118, 118, 127, 111, 113, 116, 125, 109, 122, 104, 112, 111, 112, 91, 123, 106, 105, 122, 107, 103, 104, 140, 131, 118, 109, 112, 106, 110, 103, 107, 108, 118, 137, 107, 105, 114, 112, 108, 104, 115, 112, 109, 114, 117, 129, 107, 122, 125, 129, 106, 123, 125, 118, 118, 134, 120, 123, 122, 117, 112, 116, 118, 109, 117, 102, 97, 122, 125, 107, 114, 117, 117, 102, 114, 105, 113, 114, 83, 111, 121, 129, 107, 121, 122, 133, 115, 107, 114, 106, 119, 86, 120, 111, 113, 118, 107, 115, 111, 132, 100, 129, 103, 101, 112, 132, 109, 113, 100, 122, 118, 111, 116, 117, 121, 92, 113, 118, 122, 113, 124, 122, 111, 107, 101, 120, 114, 114, 112, 117, 115, 105, 124, 115, 116, 109, 117, 111, 106, 106, 110, 112, 106, 105, 104, 106, 123, 117, 115, 119, 105, 117, 113, 105, 113, 108, 120, 107, 107, 134, 121, 123, 128, 109, 109, 93, 126, 107, 108, 106, 106, 106, 112, 116, 117, 111, 120, 107, 109, 108, 100, 119, 118, 124, 99, 103, 104, 107, 111, 113, 110, 105, 104, 120, 120, 143, 121, 118, 113, 123, 121, 117, 100, 130, 127, 114, 112, 107, 110, 139, 125, 116, 110, 117, 113, 106, 120, 98, 106, 121, 110, 108, 120, 116, 114, 124, 102, 127, 110, 109, 115, 108, 115, 114, 111, 109, 116, 103, 110, 110, 113, 107, 112, 116, 98, 120, 113, 129, 109, 102, 106, 118, 113, 113, 113, 105, 119, 104, 95, 101, 117, 116, 116, 101, 111, 117, 113, 122, 109, 127, 112, 107, 120, 110, 114, 115, 116, 119, 117, 137, 141, 107, 109, 120, 113, 109, 108, 103, 124, 118, 101, 121, 117, 99, 113, 127, 117, 116, 112, 117, 119, 108, 105, 108, 123, 105, 111, 114, 112, 123, 119, 119, 122, 112, 113, 109, 114, 111, 119, 116, 110, 112, 117, 113, 110, 120, 125, 121, 105, 135, 115, 127, 106, 126, 110, 104, 107, 117, 105, 104, 105, 117, 122, 120, 126, 126, 116, 105, 126, 97, 120, 107, 115, 107, 109, 109, 116, 118, 121, 116, 108, 119, 118, 109, 104, 118, 112, 113, 108, 106, 118, 122, 118, 127, 107, 136, 103, 118, 105, 107, 109, 118, 123, 129, 97, 114, 103, 120, 105, 115, 111, 104, 132, 110, 106, 103, 119, 112, 100, 115, 119, 121, 126, 110, 119, 114, 110, 115, 118, 130, 100, 127, 121, 118, 109, 101, 113, 119, 122, 123, 107, 104, 108, 100, 123, 113, 108, 115, 107, 123, 112, 114, 115, 126, 115, 99, 115, 108, 124, 110, 109, 110, 117, 105, 111, 105, 105, 120, 118, 120, 114, 120, 124, 116, 130, 108, 113, 113, 109, 108, 128, 133, 125, 114, 122, 123, 107, 102, 124, 108, 111, 117, 129, 120, 109, 120, 119, 118, 117, 119, 102, 122, 88, 117, 117, 125, 117, 118, 118, 97, 125, 118, 105, 120, 103, 114, 115, 109, 106, 118, 131, 121, 104, 98, 107, 116, 114, 118, 119, 110, 114, 123, 115, 101, 123, 110, 109, 126, 98, 109, 111, 110, 116, 117, 127, 115, 117, 110, 134, 109, 115, 123, 137, 100, 112, 120, 112, 113, 122, 108, 108, 119, 136, 113, 114, 115, 123, 127, 75, 117, 104, 112, 130, 131, 113, 118, 130, 111, 104, 122, 111, 122, 115, 105, 114, 122, 120, 96, 113, 105, 103, 121, 95, 131, 115, 105, 110, 122, 108, 116, 120, 118, 117, 122, 120, 115, 114, 111, 107, 90, 126, 115, 96, 100, 91, 108, 113, 118, 133, 113, 111, 110, 102, 115, 124, 114, 97, 123, 101, 113, 127, 122, 125, 109, 110, 122, 107, 114, 118, 123, 120, 126, 112, 111, 98, 100, 118, 109, 124, 113, 96, 121, 116, 117, 112, 115, 123, 129, 144, 110, 99, 114, 119, 114, 120, 127, 112, 115, 114, 122, 118, 115, 100, 117, 112, 120, 111, 107, 93, 111, 128, 116, 113, 117, 117, 103, 99, 119, 107, 128, 102, 114, 100, 127, 102, 124, 116, 114, 113, 122, 99, 116, 83, 111, 115, 134, 121, 99, 117, 100, 121, 101, 117, 114, 119, 83, 106, 108, 103, 110, 124, 108, 125, 108, 107, 111, 109, 107, 121, 121, 130, 103, 114, 114, 124, 124, 116, 115, 107, 114, 101, 125, 111, 125, 111, 105, 120, 101, 103, 109, 99, 118, 120, 108, 122, 121, 114, 114, 118, 119, 120, 96, 114, 108, 124, 122, 116, 120, 91, 103, 114, 115, 117, 118, 118, 116, 125, 133, 120, 108, 112, 116, 118, 109, 130, 122, 110, 129, 124, 113, 107, 120, 110, 108, 102, 116, 101, 126, 132, 115, 106, 126, 114, 109, 120, 133, 115, 107, 121, 106, 132, 115, 114, 116, 116, 135, 90, 130, 114, 99, 117, 112, 122, 109, 122, 118, 113, 107, 116, 130, 116, 116, 119, 103, 98, 111, 111, 117, 112, 120, 109, 119, 111, 105, 117, 119, 127, 123, 121, 101, 135, 112, 102, 97, 106, 110, 115, 109, 98, 108, 118, 121, 121, 127, 92, 111, 98, 125, 122, 114, 113, 109, 146, 117, 129, 106, 105, 120, 104, 122, 110, 92, 112, 122, 122, 120, 116, 112, 119, 113, 127, 105, 123, 107, 128, 118, 124, 108, 120, 95, 110, 122, 117, 112, 109, 109, 112, 111, 110, 89, 109, 115, 112, 118, 107, 109, 109, 112, 95, 115, 117, 122, 120, 105, 117, 124, 117, 116, 96, 114, 115, 115, 119, 113, 112, 124, 101, 107, 104, 124, 110, 131, 109, 138, 115, 103, 123, 118, 133, 134, 119, 111, 105, 104, 109, 125, 114, 104, 119, 110, 116, 114, 116, 119, 121, 108, 115, 120, 128, 102, 126, 112, 104, 94, 119, 126, 108, 110, 115, 107, 122, 121, 127, 121, 105, 126, 118, 111, 126, 127, 105, 110, 100, 97, 129, 117, 124, 125, 110, 129, 114, 117, 115, 128, 112, 111, 115, 116, 113, 127, 100, 116, 124, 109, 123, 122, 115, 121, 120, 113, 121, 117, 115, 125, 111, 118, 108, 131, 108, 114, 117, 95, 113, 110, 103, 119, 115, 114, 107, 128, 124, 120, 129, 117, 118, 118, 113, 121, 117, 109, 125, 115, 99, 117, 112, 129, 124, 118, 109, 115, 101, 110, 107, 104, 106, 119, 115, 114, 117, 105, 115, 114, 116, 125, 109, 119, 113, 116, 109, 110, 112, 110, 117, 115, 115, 108, 118, 114, 106, 115, 122, 106, 115, 119, 113, 106, 125, 131, 123, 116, 108, 130, 117, 106, 117, 116, 117, 120, 109, 107, 112, 120, 111, 110, 114, 97, 111, 116, 104, 102, 118, 118, 123, 115, 99, 102, 115, 115, 121, 116, 115, 122, 119, 117, 107, 104, 118, 106, 108, 119, 107, 122, 104, 125, 120, 118, 120, 116, 114, 103, 116, 107, 107, 115, 117, 128, 125, 121, 114, 122, 110, 145, 114, 125, 125, 121, 116, 117, 118, 112, 108, 122, 119, 115, 112, 110, 117, 111, 93, 110, 120, 120, 107, 111, 123, 114, 106, 114, 111, 113, 119, 105, 107, 126, 117, 112, 111, 112, 108, 110, 115, 119, 114, 123, 120, 118, 106, 137, 117, 102, 114, 113, 111, 116, 108, 116, 104, 122, 111, 113, 122, 114, 134, 105, 111, 112, 101, 120, 120, 117, 117, 110, 102, 112, 114, 113, 114, 128, 116, 116, 115, 115, 112, 107, 119, 118, 125, 118, 115, 121, 111, 115, 120, 124, 118, 113, 115, 113, 113, 119, 106, 114, 115, 114, 113, 109, 124, 124, 125, 128, 110, 98, 115, 112, 116, 106, 108, 125, 118, 115, 112, 124, 117, 105, 140, 125, 110, 120, 108, 103, 101, 125, 114, 113, 110, 115, 125, 113, 118, 115, 116, 100, 117, 113, 105, 113, 112, 116, 105, 112, 117, 114, 108, 127, 127, 107, 101, 117, 99, 121, 112, 111, 125, 116, 114, 115, 113, 115, 114, 98, 126, 112, 123, 113, 120, 115, 118, 108, 110, 112, 115, 105, 124, 126, 94, 115, 123, 114, 123, 119, 118, 115, 114, 120, 113, 112, 113, 107, 119, 118, 117, 107, 118, 109, 123, 111, 123, 124, 116, 115, 116, 118, 117, 116, 109, 116, 116, 107, 116, 121, 122, 144, 112, 113, 108, 114, 124, 119, 121, 104, 112, 107, 94, 101, 110, 102, 117, 104, 114, 117, 121, 114, 123, 119, 118, 120, 125, 113, 109, 109, 123, 118, 120, 119, 118, 116, 109, 106, 118, 109, 103, 117, 106, 118, 106, 116, 111, 120, 117, 132, 95, 108, 109, 129, 116, 124, 116, 112, 96, 119, 119, 120, 130, 114, 117, 101, 114, 112, 113, 124, 103, 109, 111, 117, 117, 111, 113, 123, 103, 117, 114, 121, 119, 112, 107, 120, 121, 109, 109, 119, 118, 114, 124, 123, 129, 114, 103, 114, 137, 122, 120, 124, 119, 123, 122, 114, 122, 108, 112, 101, 126, 106, 123, 107, 115, 132, 114, 116, 109, 116, 97, 133, 130, 107, 117, 114, 119, 114, 116, 111, 114, 106, 117, 118, 117, 118, 114, 108, 119, 117, 115, 112, 112, 120, 120, 114, 104, 118, 108, 118, 112, 115, 112, 107, 114, 109, 117, 120, 117, 123, 110, 128, 109, 115, 117, 109, 118, 123, 114, 123, 114, 116, 123, 113, 116, 119, 115, 112, 110, 118, 120, 116, 120, 121, 108, 105, 117, 113, 121, 109, 106, 110, 124, 121, 125, 121, 127, 122, 115, 113, 113, 114, 111, 116, 124, 108, 112, 111, 118, 118, 109, 115, 120, 117, 112, 114, 106, 116, 110, 114, 119, 112, 116, 113, 111, 121, 109, 114, 113, 114, 115, 121, 119, 120, 115, 113, 110, 111, 116, 120, 120, 104, 115, 114, 118, 112, 116, 112, 113, 104, 115, 114, 112, 123, 134, 112, 117, 107, 120, 112, 119, 123, 103, 123, 116, 116, 112, 114, 116, 116, 118, 119, 107, 115, 109, 113, 115, 111, 115, 124, 119, 115, 111, 117, 127, 115, 117, 115, 113, 110, 112, 130, 120, 116, 118, 103, 113, 118, 128, 117, 115, 125, 106, 117, 117, 115, 125, 121, 117, 116, 117, 117, 119, 113, 114, 124, 132, 118, 121, 115, 120, 119, 118, 121, 118, 111, 121, 113, 117, 114, 107, 116, 111, 115, 109, 116, 117, 118, 114, 107, 122, 120, 113, 116, 115, 107, 115, 117, 120, 118, 119, 111, 104, 119, 108, 120, 120, 118, 120, 91, 120, 121, 120, 121, 123, 111, 114, 111, 109, 116, 113, 105, 117, 110, 110, 112, 124, 113, 111, 116, 116, 113, 113, 119, 108, 115, 113, 112, 118, 115, 112, 122, 113, 120, 113, 119, 113, 117, 117, 119, 121, 116, 117, 113, 117, 119, 119, 114, 122, 111, 111, 120, 109, 123, 118, 120, 109, 115, 114, 118, 111, 114, 107, 119, 121, 111, 109, 120, 112, 107, 110, 114, 114, 112, 121, 109, 111, 116, 121, 116, 114, 119, 118, 112, 114, 116, 117, 113, 116, 116, 113, 117, 115, 109, 129, 112, 119, 117, 108, 111, 116, 112, 111, 118, 117, 121, 112, 115, 108, 112, 112, 109, 110, 109, 119, 116, 116, 116, 118, 117, 115, 113, 105, 120, 119, 119, 122, 120, 113, 125, 111, 118, 120, 116, 116, 114, 113, 125, 119, 107, 114, 118, 123, 108, 113, 115, 108, 114, 119, 117, 111, 104, 112, 119, 119, 113, 110, 115, 116, 114, 110, 108, 110, 113, 117, 115, 117, 111, 114, 123, 116, 108, 110, 119, 112, 114, 110, 114, 116, 119, 120, 112, 120, 104, 123, 118, 120, 116, 111, 113, 115, 122, 115, 113, 110, 116, 111, 112, 117, 121, 114, 119, 116, 115, 114, 119, 113, 119, 118, 110, 113, 117, 113, 111, 119, 115, 114, 114, 120, 112, 117, 121, 117, 109, 114, 114, 112, 123, 112, 118, 121, 111, 116, 111, 108, 117, 103, 112, 115, 118, 114, 116, 115, 117, 115, 113, 116, 113, 118, 116, 114, 115, 120, 111, 117, 120, 120, 115, 111, 124, 115, 112, 113, 114, 123, 113, 121, 114, 110, 121, 115, 120, 113, 106, 119, 117, 115, 120, 120, 112, 115, 121, 108, 129, 117, 108, 118, 110, 116, 120, 117, 114, 116, 116, 106, 115, 129, 109, 138, 110, 117, 114, 117, 121, 116, 120, 121, 113, 113, 118, 117, 117, 115, 128, 119, 124, 112, 107, 121, 105, 111, 118, 115, 114, 116, 117, 113, 119, 117, 116, 116, 120, 116, 112, 111, 115, 115, 120, 114, 114, 115, 116, 104, 110, 111, 120, 118, 106, 112, 113, 109, 104, 122, 114, 113, 121, 113, 114, 103, 112, 111, 120, 109, 132, 141, 118, 106, 120, 117, 112, 121, 111, 114, 123, 109, 112, 108, 115, 112, 101, 113, 112, 122, 119, 112, 108, 115, 115, 119, 121, 120, 121, 118, 113, 122, 116, 105, 115, 119, 113, 122, 113, 119, 109, 128, 109, 106, 115, 115, 111, 114, 118, 112, 125, 130, 115, 115, 111, 109, 117, 113, 120, 128, 107, 118, 118, 125, 116, 114, 117, 113, 114, 115, 109, 118, 106, 114, 124, 111, 119, 111, 116, 117, 118, 127, 113, 116, 123, 113, 122, 123, 113, 117, 110, 115, 109, 111, 114, 125, 131, 121, 116, 111, 112, 116, 117, 122, 112, 124, 108, 128, 118, 106, 116, 124, 111, 119, 121, 112, 102, 111, 119, 118, 123, 112, 115, 109, 110, 129, 114, 111, 110, 121, 105, 111, 112, 120, 115, 129, 113, 116, 120, 107, 118, 117, 115, 122, 118, 112, 118, 118, 111, 121, 137, 119, 111, 119, 109, 111, 118, 123, 119, 114, 112, 117, 117, 112, 108, 117, 117, 113, 123, 108, 114, 113, 114, 123, 115, 108, 118, 120, 105, 119, 120, 109, 112, 124, 116, 118, 117, 111, 115, 107, 114, 116, 109, 117, 110, 115, 119, 122, 111, 114, 111, 119, 113, 88, 119, 113, 110, 110, 111, 106, 119, 119, 116, 116, 108, 117, 118, 118, 110, 120, 109, 121, 121, 119, 111, 115, 116, 99, 106, 114, 112, 124, 117, 118, 119, 110, 115, 130, 117, 113, 113, 110, 118, 113, 120, 128, 126, 118, 128, 104, 125, 117, 114, 112, 116, 115, 111, 113, 117, 113, 115, 107, 120, 108, 112, 119, 117, 122, 119, 111, 111, 117, 115, 108, 112, 111, 122, 117, 107, 110, 119, 115, 126, 115, 123, 120, 124, 113, 123, 111, 113, 118, 117, 121, 115, 118, 114, 110, 106, 110, 113, 116, 115, 111, 122, 120, 118, 120, 117, 119, 109, 114, 121, 116, 118, 119, 108, 116, 114, 126, 115, 118, 122, 109, 116, 110, 120, 114, 110, 114, 117, 125, 114, 115, 116, 117, 121, 115, 120, 118, 111, 115, 120, 108, 116, 126, 112, 118, 116, 118, 108, 114, 115, 123, 119, 113, 124, 123, 118, 117, 115, 106, 114, 110, 124, 109, 117, 116, 119, 132, 120, 117, 106, 116, 121, 112, 123, 111, 117, 111, 110, 116, 112, 118, 127, 111, 109, 118, 124, 110, 114, 102, 117, 116, 122, 115, 111, 113, 112, 113, 118, 114, 117, 123, 112, 117, 119, 116, 120, 119, 119, 118, 112, 112, 121, 123, 113, 116, 107, 114, 111, 114, 129, 125, 110, 125, 117, 120, 117, 117, 112, 121, 101, 116, 131, 108, 106, 99, 134, 116, 112, 100, 110, 105, 128, 128, 98, 118, 115, 104, 109, 124, 115, 105, 123, 117, 120, 122, 105, 106, 113, 122, 136, 126, 106, 111, 108, 117, 111, 118, 119, 102, 110, 108, 113, 115, 109, 104, 117, 111, 131, 118, 113, 123, 124, 98, 104, 124, 122, 105, 110, 110, 104, 119, 121, 116, 119, 116, 112, 107, 119, 118, 116, 116, 121, 102, 120, 110, 106, 115, 100, 109, 105, 109, 120, 128, 132, 117, 122, 127, 119, 108, 122, 99, 119, 115, 136, 122, 112, 117, 120, 113, 122, 119, 122, 102, 104, 122, 113, 113, 108, 110, 116, 113, 123, 102, 117, 121, 123, 109, 112, 108, 105, 92, 137, 123, 97, 112, 119, 108, 123, 119, 103, 107, 98, 118, 119, 104, 106, 107, 115, 105, 103, 101, 122, 122, 114, 117, 122, 114, 133, 109, 113, 111, 114, 131, 116, 125, 105, 127, 113, 109, 106, 108, 106, 114, 117, 121, 110, 108, 110, 103, 130, 91, 112, 123, 116, 121, 118, 111, 107, 119, 120, 117, 102, 111, 128, 127, 114, 108, 126, 105, 115, 116, 112, 126, 115, 128, 110, 105, 106, 119, 110, 105, 113, 115, 116, 106, 113, 119, 110, 104, 107, 104, 108, 89, 113, 108, 119, 122, 114, 114, 92, 122, 102, 125, 123, 106, 117, 123, 112, 120, 100, 124, 113, 134, 109, 114, 112, 111, 131, 126, 113, 122, 123, 126, 110, 121, 115, 122, 108, 126, 131, 88, 111, 108, 120, 122, 121, 120, 124, 114, 98, 123, 105, 126, 119, 116, 119, 117, 124, 106, 125, 120, 130, 124, 111, 109, 129, 108, 111, 115, 119, 116, 108, 121, 123, 103, 141, 109, 105, 101, 112, 100, 120, 126, 110, 97, 103, 122, 117, 124, 114, 135, 109, 127, 107, 103, 134, 122, 125, 120, 114, 121, 120, 124, 122, 105, 133, 124, 118, 115, 119, 110, 109, 104, 111, 119, 114, 108, 125, 121, 130, 119, 105, 126, 123, 126, 120, 113, 125, 125, 124, 124, 132, 120, 122, 122, 107, 114, 118, 103, 131, 105, 137, 112, 113, 104, 121, 111, 103, 101, 106, 108, 114, 109, 118, 114, 102, 122, 121, 106, 106, 114, 108, 123, 108, 120, 116, 113, 104, 123, 134, 114, 117, 128, 107, 117, 123, 109, 111, 100, 128, 116, 110, 123, 113, 131, 106, 130, 112, 108, 120, 110, 111, 117, 114, 107, 112, 113, 117, 98, 119, 124, 112, 118, 125, 105, 122, 115, 115, 134, 104, 116, 110, 131, 119, 124, 115, 110, 132, 103, 115, 108, 120, 117, 128, 133, 118, 112, 103, 103, 121, 100, 108, 110, 123, 120, 109, 120, 115, 123, 109, 104, 111, 103, 104, 122, 109, 113, 120, 105, 113, 116, 113, 103, 107, 123, 136, 105, 105, 106, 119, 121, 111, 112, 111, 115, 120, 139, 123, 114, 117, 118, 112, 118, 114, 103, 106, 113, 113, 120, 113, 114, 115, 131, 109, 121, 109, 106, 111, 114, 129, 131, 106, 122, 115, 129, 121, 110, 100, 117, 116, 110, 117, 108, 114, 112, 112, 107, 112, 112, 113, 117, 119, 104, 125, 113, 117, 118, 123, 112, 117, 115, 120, 114, 120, 125, 133, 119, 119, 107, 119, 113, 114, 110, 112, 122, 107, 110, 114, 118, 118, 118, 110, 106, 110, 119, 114, 113, 116, 106, 107, 112, 118, 112, 114, 119, 111, 117, 118, 111, 120, 117, 115, 116, 111, 102, 118, 116, 121, 121, 107, 114, 111, 119, 111, 118, 118, 111, 122, 114, 110, 109, 111, 118, 115, 115, 116, 111, 111, 104, 119, 121, 117, 110, 112, 106, 109, 117, 106, 121, 116, 113, 120, 112, 122, 111, 113, 110, 115, 114, 112, 113, 130, 117, 119, 119, 116, 125, 116, 111, 115, 113, 109, 111, 114, 116, 119, 115, 119, 114, 108, 124, 108, 121, 114, 115, 103, 109, 113, 118, 112, 120, 111, 121, 114, 117, 121, 112, 116, 121, 128, 112, 121, 117, 111, 116, 117, 108, 118, 114, 103, 110, 117, 127, 117, 115, 113, 111, 109, 118, 115, 114, 112, 109, 115, 124, 112, 106, 113, 124, 109, 111, 109, 108, 117, 116, 114, 122, 119, 113, 108, 115, 123, 117, 111, 118, 121, 120, 120, 115, 121, 119, 115, 114, 110, 120, 115, 118, 112, 117, 121, 112, 116, 118, 113, 116, 115, 118, 108, 120, 125, 119, 111, 118, 121, 118, 113, 115, 121, 118, 125, 122, 114, 115, 114, 112, 125, 118, 117, 119, 119, 116, 119, 119, 115, 115, 115, 124, 109, 114, 119, 117, 111, 120, 114, 117, 123, 119, 107, 119, 119, 108, 116, 105, 120, 113, 110, 112, 117, 109, 118, 127, 109, 124, 114, 106, 120, 116, 114, 118, 122, 117, 117, 116, 119, 114, 114, 119, 108, 116, 114, 117, 114, 106, 118, 116, 112, 114, 123, 121, 112, 103, 114, 123, 116, 115, 116, 114, 106, 112, 108, 118, 116, 120, 115, 119, 119, 113, 112, 116, 124, 106, 112, 117, 109, 112, 113, 121, 109, 115, 119, 104, 125, 118, 112, 112, 120, 115, 105, 116, 117, 115, 126, 111, 121, 120, 115, 105, 118, 108, 111, 118, 114, 120, 121, 114, 119, 115, 113, 113, 112, 115, 116, 116, 119, 109, 115, 119, 115, 119, 117, 111, 115, 113, 114, 107, 116, 106, 122, 116, 117, 114, 118, 107, 118, 119, 123, 120, 111, 114, 116, 109, 108, 116, 116, 113, 112, 118, 112, 110, 112, 127, 116, 118, 114, 111, 114, 115, 116, 112, 107, 102, 117, 114, 122, 119, 107, 123, 112, 116, 120, 111, 113, 114, 116, 113, 111, 113, 116, 119, 111, 117, 122, 115, 116, 111, 116, 109, 114, 118, 114, 119, 118, 117, 112, 109, 113, 116, 115, 115, 117, 112, 109, 119, 127, 114, 109, 112, 105, 121, 112, 109, 109, 120, 114, 110, 113, 113, 124, 121, 113, 111, 113, 112, 116, 123, 111, 117, 111, 117, 119, 115, 115, 121, 110, 110, 113, 122, 114, 117, 115, 112, 117, 107, 106, 119, 117, 116, 114, 113, 115, 107, 116, 117, 121, 108, 112, 114, 113, 117, 118, 117, 134, 107, 119, 119, 130, 116, 114, 126, 119, 110, 115, 127, 111, 106, 116, 118, 109, 120, 108, 131, 114, 106, 116, 122, 115, 116, 123, 114, 110, 122, 107, 116, 114, 120, 118, 103, 105, 122, 114, 107, 110, 112, 104, 112, 116, 128, 118, 104, 129, 106, 92, 113, 123, 121, 117, 88, 110, 115, 120, 123, 107, 113, 105, 103, 137, 107, 124, 104, 110, 104, 110, 119, 96, 113, 111, 106, 119, 116, 117, 116, 117, 117, 121, 108, 102, 121, 123, 112, 111, 116, 108, 122, 117, 123, 90, 107, 123, 105, 112, 118, 131, 123, 121, 121, 104, 115, 110, 110, 107, 123, 102, 116, 121, 118, 118, 130, 109, 115, 116, 114, 125, 106, 104, 114, 109, 128, 117, 124, 112, 114, 105, 124, 124, 112, 111, 120, 114, 103, 115, 104, 116, 106, 108, 107, 120, 117, 124, 119, 110, 124, 95, 122, 109, 127, 112, 103, 113, 104, 119, 112, 119, 118, 118, 118, 103, 108, 113, 118, 106, 115, 115, 115, 135, 117, 116, 122, 121, 104, 113, 115, 105, 109, 116, 123, 110, 108, 107, 119, 122, 100, 108, 110, 112, 113, 112, 99, 107, 115, 110, 115, 116, 103, 120, 126, 107, 104, 118, 117, 108, 112, 115, 128, 115, 122, 116, 108, 103, 116, 116, 133, 108, 117, 126, 106, 110, 118, 120, 117, 102, 117, 107, 113, 114, 117, 114, 129, 120, 131, 115, 110, 134, 117, 114, 102, 109, 109, 123, 118, 137, 119, 114, 103, 134, 121, 99, 129, 110, 115, 115, 109, 102, 118, 107, 112, 105, 122, 112, 118, 111, 118, 115, 112, 109, 103, 105, 122, 101, 106, 119, 114, 115, 95, 133, 112, 106, 118, 116, 98, 124, 111, 122, 128, 109, 126, 115, 101, 127, 119, 100, 108, 119, 118, 131, 105, 130, 117, 124, 104, 117, 113, 112, 118, 116, 109, 106, 113, 115, 126, 110, 102, 118, 114, 111, 115, 112, 118, 104, 121, 97, 128, 105, 105, 99, 109, 128, 115, 119, 110, 121, 122, 111, 124, 104, 114, 99, 112, 118, 118, 122, 123, 124, 137, 103, 108, 130, 115, 122, 115, 104, 131, 117, 105, 109, 107, 120, 115, 122, 112, 122, 111, 109, 114, 122, 106, 134, 107, 112, 120, 121, 117, 121, 123, 129, 105, 118, 118, 116, 113, 111, 119, 108, 115, 117, 109, 124, 121, 118, 98, 117, 111, 131, 124, 112, 105, 129, 118, 127, 105, 109, 124, 132, 111, 106, 123, 105, 118, 99, 111, 117, 120, 95, 114, 102, 115, 110, 124, 99, 112, 121, 104, 121, 113, 113, 111, 121, 108, 111, 130, 115, 117, 96, 117, 127, 111, 120, 124, 113, 113, 119, 104, 117, 106, 105, 113, 106, 108, 103, 109, 120, 107, 105, 115, 105, 119, 115, 119, 112, 112, 109, 112, 123, 121, 117, 107, 129, 124, 109, 127, 119, 128, 112, 111, 108, 102, 106, 109, 122, 129, 110, 110, 124, 122, 109, 103, 114, 116, 114, 104, 117, 119, 129, 121, 102, 108, 118, 117, 114, 112, 107, 114, 120, 118, 113, 113, 118, 113, 109, 112, 125, 116, 141, 111, 122, 119, 120, 104, 111, 124, 119, 123, 141, 125, 106, 114, 125, 121, 110, 120, 114, 111, 115, 99, 104, 110, 107, 97, 114, 103, 120, 114, 105, 114, 125, 115, 111, 96, 104, 110, 113, 117, 116, 102, 135, 114, 132, 122, 116, 113, 121, 107, 115, 120, 107, 113, 125, 112, 115, 101, 115, 115, 116, 113, 109, 118, 116, 112, 119, 106, 113, 106, 109, 104, 110, 121, 122, 100, 119, 111, 98, 119, 123, 115, 111, 136, 111, 115, 126, 109, 122, 115, 134, 104, 115, 123, 103, 110, 121, 98, 93, 101, 112, 110, 118, 116, 130, 144, 113, 113, 113, 119, 111, 100, 122, 109, 108, 109, 122, 106, 114, 113, 125, 121, 123, 110, 106, 128, 110, 116, 126, 107, 119, 112, 112, 109, 115, 120, 116, 106, 129, 104, 121, 108, 99, 116, 111, 108, 112, 111, 105, 126, 104, 113, 110, 129, 113, 96, 112, 114, 118, 120, 129, 117, 115, 107, 89, 113, 109, 110, 107, 118, 117, 115, 109, 128, 125, 119, 112, 113, 109, 96, 114, 118, 112, 123, 100, 114, 110, 122, 126, 117, 125, 113, 131, 123, 124, 121, 118, 132, 130, 112, 106, 104, 105, 109, 125, 112, 123, 121, 104, 106, 123, 116, 110, 125, 131, 109, 109, 114, 128, 114, 108, 114, 120, 111, 123, 111, 118, 116, 122, 117, 106, 123, 116, 108, 128, 111, 126, 109, 124, 115, 107, 114, 112, 105, 113, 108, 122, 132, 105, 114, 126, 118, 119, 104, 135, 116, 117, 114, 104, 113, 128, 120, 124, 119, 111, 117, 115, 125, 122, 111, 116, 104, 111, 129, 126, 111, 103, 118, 117, 103, 132, 114, 96, 110, 121, 121, 115, 113, 114, 109, 117, 117, 98, 99, 109, 115, 109, 106, 136, 99, 111, 116, 106, 111, 106, 127, 108, 110, 130, 120, 118, 108, 118, 113, 103, 120, 108, 102, 116, 104, 105, 105, 108, 114, 108, 103, 130, 118, 114, 138, 107, 116, 111, 105, 123, 123, 101, 120, 115, 119, 115, 102, 108, 117, 111, 132, 111, 109, 111, 123, 113, 127, 94, 122, 127, 112, 122, 94, 125, 113, 108, 114, 120, 120, 108, 128, 128, 133, 121, 114, 113, 114, 111, 119, 128, 109, 110, 113, 118, 112, 108, 102, 118, 109, 121, 108, 116, 114, 103, 109, 116, 105, 98, 120, 116, 114, 114, 118, 111, 113, 117, 118, 120, 105, 113, 120, 107, 121, 109, 112, 116, 122, 99, 117, 108, 114, 115, 111, 104, 106, 113, 103, 109, 114, 104, 110, 124, 121, 116, 116, 104, 113, 125, 106, 130, 102, 108, 117, 122, 124, 108, 103, 123, 112, 115, 128, 114, 117, 114, 127, 109, 113, 118, 113, 109, 112, 111, 121, 112, 121, 122, 125, 114, 101, 107, 105, 112, 99, 102, 109, 109, 123, 119, 122, 131, 116, 109, 131, 113, 111, 118, 132, 135, 123, 109, 119, 112, 121, 115, 114, 105, 107, 103, 115, 118, 121, 119, 107, 106, 144, 124, 117, 116, 115, 106, 87, 107, 102, 107, 111, 115, 115, 114, 86, 124, 114, 117, 110, 125, 100, 136, 104, 113, 113, 110, 126, 112, 116, 109, 122, 105, 122, 102, 100, 105, 101, 122, 111, 117, 121, 107, 121, 101, 133, 107, 122, 123, 109, 109, 121, 111, 104, 116, 104, 118, 119, 112, 121, 124, 123, 128, 114, 111, 106, 101, 105, 103, 85, 133, 135, 109, 92, 114, 114, 102, 106, 108, 119, 102, 111, 115, 104, 108, 105, 126, 98, 111, 113, 116, 102, 119, 107, 138, 115, 101, 113, 135, 115, 133, 108, 106, 110, 121, 114, 124, 116, 103, 130, 112, 122, 86, 116, 100, 92, 105, 110, 108, 131, 119, 110, 112, 123, 104, 110, 97, 114, 112, 91, 124, 103, 128, 98, 111, 95, 100, 110, 116, 119, 125, 112, 115, 126, 114, 109, 113, 103, 115, 114, 117, 106, 113, 118, 108, 115, 122, 111, 125, 119, 117, 108, 117, 106, 121, 126, 111, 99, 120, 109, 119, 118, 143, 116, 133, 127, 111, 103, 108, 123, 108, 108, 129, 132, 107, 121, 110, 100, 109, 111, 120, 118, 110, 137, 117, 122, 125, 115, 111, 114, 122, 119, 137, 133, 113, 123, 100, 112, 107, 118, 129, 117, 110, 125, 116, 128, 97, 106, 128, 119, 115, 120, 111, 101, 124, 125, 124, 116, 98, 110, 100, 114, 110, 121, 111, 103, 118, 115, 129, 108, 110, 108, 111, 106, 118, 112, 113, 116, 112, 116, 112, 120, 119, 125, 112, 118, 117, 136, 112, 120, 109, 116, 119, 136, 121, 121, 114, 135, 109, 117, 115, 98, 99, 117, 116, 108, 110, 112, 123, 108, 123, 116, 136, 107, 113, 127, 135, 127, 104, 115, 87, 108, 115, 104, 129, 119, 116, 110, 105, 93, 126, 119, 118, 113, 113, 118, 111, 101, 119, 124, 124, 112, 93, 124, 95, 123, 114, 110, 104, 135, 122, 123, 120, 116, 112, 101, 119, 103, 111, 128, 107, 119, 108, 112, 115, 107, 120, 110, 115, 123, 114, 113, 128, 123, 117, 129, 134, 109, 123, 137, 108, 108, 111, 116, 101, 102, 109, 126, 112, 98, 118, 130, 132, 113, 116, 128, 91, 111, 99, 126, 109, 103, 125, 123, 114, 92, 115, 99, 122, 125, 104, 111, 111, 110, 129, 91, 108, 126, 110, 107, 117, 108, 100, 115, 127, 111, 115, 121, 129, 92, 115, 106, 114, 119, 131, 96, 123, 105, 99, 101, 127, 102, 124, 118, 115, 120, 113, 115, 124, 125, 115, 113, 108, 115, 108, 108, 114, 129, 127, 104, 117, 105, 94, 109, 118, 123, 107, 120, 133, 114, 113, 111, 113, 114, 115, 124, 115, 120, 110, 122, 127, 119, 111, 119, 115, 120, 119, 119, 106, 104, 86, 114, 125, 107, 115, 111, 123, 118, 104, 124, 111, 132, 102, 117, 125, 100, 134, 105, 90, 120, 112, 134, 97, 128, 111, 111, 120, 110, 97, 117, 98, 115, 106, 121, 102, 118, 125, 116, 98, 98, 110, 109, 92, 110, 112, 115, 114, 106, 112, 112, 104, 110, 136, 120, 113, 117, 82, 112, 105, 137, 121, 120, 142, 104, 115, 113, 132, 104, 123, 102, 117, 103, 136, 123, 110, 100, 110, 129, 113, 123, 102, 119, 120, 128, 116, 125, 115, 107, 106, 110, 104, 98, 106, 116, 117, 115, 120, 114, 112, 114, 124, 110, 123, 120, 109, 112, 126, 113, 102, 112, 109, 104, 116, 111, 113, 118, 118, 107, 122, 120, 103, 119, 116, 114, 99, 117, 113, 103, 102, 125, 115, 108, 130, 117, 117, 105, 109, 105, 123, 120, 125, 110, 130, 112, 116, 122, 109, 113, 118, 117, 111, 106, 103, 119, 119, 125, 121, 135, 116, 106, 110, 109, 120, 107, 116, 122, 112, 120, 111, 119, 107, 107, 115, 116, 85, 121, 101, 100, 117, 114, 107, 122, 99, 102, 114, 107, 119, 117, 109, 108, 105, 128, 114, 112, 123, 111, 95, 117, 112, 108, 122, 115, 121, 121, 101, 116, 121, 114, 103, 116, 110, 112, 104, 117, 121, 118, 107, 116, 111, 115, 106, 107, 137, 111, 122, 115, 117, 112, 124, 126, 113, 108, 99, 132, 114, 109, 132, 112, 122, 118, 109, 125, 108, 118, 119, 112, 113, 103, 124, 121, 104, 111, 117, 112, 119, 119, 118, 127, 115, 133, 111, 127, 124, 113, 97, 112, 120, 113, 113, 115, 114, 118, 128, 103, 129, 102, 122, 110, 89, 106, 108, 114, 120, 116, 117, 109, 114, 130, 129, 119, 99, 112, 120, 130, 111, 124, 118, 127, 112, 103, 112, 113, 131, 120, 121, 108, 103, 115, 108, 123, 110, 116, 120, 106, 119, 142, 109, 132, 119, 114, 101, 118, 113, 128, 95, 106, 110, 117, 99, 107, 94, 129, 118, 126, 114, 113, 105, 103, 109, 123, 114, 124, 112, 120, 122, 114, 125, 130, 123, 119, 117, 115, 109, 122, 108, 117, 128, 111, 98, 133, 118, 113, 122, 124, 114, 115, 118, 125, 119, 120, 133, 101, 112, 134, 112, 111, 110, 107, 101, 114, 126, 120, 110, 112, 128, 106, 116, 106, 102, 113, 103, 119, 132, 115, 132, 106, 115, 121, 106, 126, 110, 119, 105, 129, 115, 116, 110, 94, 112, 114, 119, 108, 98, 114, 106, 116, 107, 114, 109, 118, 110, 114, 108, 114, 117, 103, 134, 110, 119, 102, 113, 96, 116, 112, 121, 122, 120, 115, 134, 114, 114, 122, 118, 106, 115, 119, 136, 120, 120, 123, 113, 137, 115, 120, 120, 125, 115, 121, 127, 115, 102, 105, 106, 118, 111, 121, 114, 124, 111, 112, 115, 98, 113, 108, 123, 113, 109, 116, 131, 119, 115, 117, 114, 134, 120, 119, 112, 120, 123, 120, 118, 111, 110, 114, 116, 110, 115, 113, 120, 114, 115, 112, 116, 113, 118, 108, 109, 127, 111, 123, 110, 118, 108, 117, 125, 123, 114, 119, 95, 101, 124, 115, 108, 113, 110, 124, 112, 116, 130, 125, 122, 135, 120, 118, 109, 119, 100, 97, 114, 116, 115, 97, 110, 109, 115, 109, 110, 110, 108, 120, 119, 120, 119, 109, 115, 104, 114, 111, 115, 106, 128, 121, 120, 114, 104, 106, 105, 123, 111, 102, 120, 114, 107, 124, 114, 112, 104, 122, 106, 111, 115, 124, 116, 99, 120, 123, 113, 116, 135, 116, 107, 114, 120, 120, 110, 130, 119, 111, 111, 115, 125, 122, 112, 110, 110, 120, 125, 124, 117, 115, 111, 108, 122, 111, 117, 106, 117, 116, 108, 113, 116, 117, 120, 118, 127, 119, 122, 117, 113, 111, 110, 114, 120, 113, 132, 124, 119, 113, 122, 121, 116, 110, 123, 109, 114, 105, 143, 107, 108, 119, 122, 118, 124, 113, 109, 118, 113, 116, 113, 110, 115, 137, 121, 111, 121, 113, 107, 122, 110, 111, 123, 125, 120, 110, 112, 118, 117, 97, 110, 112, 125, 95, 114, 108, 119, 120, 108, 126, 111, 103, 123, 113, 121, 119, 116, 106, 116, 104, 118, 115, 126, 122, 110, 120, 120, 117, 115, 108, 113, 111, 109, 115, 115, 124, 105, 116, 114, 106, 112, 117, 117, 116, 117, 119, 121, 119, 113, 114, 118, 117, 122, 110, 110, 106, 111, 113, 96, 102, 114, 128, 126, 116, 133, 117, 100, 119, 112, 122, 117, 119, 118, 112, 109, 108, 118, 127, 111, 137, 120, 111, 108, 114, 121, 109, 124, 108, 127, 113, 114, 117, 103, 113, 116, 111, 121, 129, 119, 117, 110, 133, 123, 113, 135, 103, 102, 118, 115, 100, 116, 102, 122, 115, 112, 118, 110, 108, 117, 116, 114, 127, 115, 116, 121, 114, 118, 116, 113, 115, 116, 120, 116, 121, 121, 119, 108, 116, 118, 113, 101, 114, 118, 122, 111, 122, 124, 115, 122, 110, 140, 112, 108, 103, 115, 112, 120, 117, 119, 118, 118, 115, 115, 119, 98, 121, 110, 121, 107, 120, 112, 114, 127, 112, 124, 111, 118, 106, 128, 123, 122, 114, 106, 108, 117, 133, 123, 120, 112, 113, 103, 119, 112, 127, 121, 112, 104, 120, 112, 135, 117, 123, 118, 114, 117, 107, 106, 112, 122, 118, 122, 122, 113, 121, 115, 111, 102, 108, 123, 105, 113, 113, 124, 118, 108, 102, 112, 113, 114, 117, 109, 116, 123, 115, 114, 115, 110, 124, 109, 106, 123, 118, 119, 113, 127, 118, 122, 119, 123, 123, 110, 112, 110, 129, 104, 110, 121, 100, 114, 121, 105, 101, 118, 129, 109, 114, 119, 103, 114, 118, 122, 118, 116, 103, 108, 124, 104, 116, 122, 115, 109, 114, 120, 116, 114, 115, 110, 121, 114, 119, 106, 113, 129, 106, 114, 112, 114, 113, 112, 109, 117, 116, 111, 123, 111, 126, 110, 117, 115, 124, 118, 103, 122, 116, 123, 108, 110, 123, 113, 117, 122, 111, 116, 132, 122, 115, 102, 116, 117, 112, 99, 128, 127, 114, 112, 112, 102, 104, 127, 113, 118, 117, 108, 112, 121, 116, 128, 127, 105, 110, 105, 135, 118, 112, 112, 100, 113, 111, 100, 112, 117, 103, 100, 103, 117, 120, 107, 110, 112, 112, 107, 100, 115, 112, 116, 115, 109, 124, 109, 120, 111, 120, 125, 108, 127, 106, 136, 121, 110, 118, 129, 125, 74, 112, 117, 118, 114, 123, 107, 120, 120, 117, 99, 119, 127, 115, 108, 116, 125, 125, 111, 108, 120, 105, 122, 141, 109, 120, 121, 105, 124, 113, 114, 122, 107, 103, 104, 118, 121, 122, 118, 104, 116, 111, 126, 116, 105, 126, 121, 122, 117, 108, 123, 111, 118, 115, 124, 122, 122, 108, 117, 130, 122, 115, 121, 128, 133, 131, 114, 121, 121, 109, 112, 124, 117, 117, 114, 115, 106, 103, 117, 110, 120, 132, 117, 118, 100, 117, 112, 113, 129, 105, 119, 127, 112, 129, 110, 107, 116, 113, 112, 109, 113, 125, 120, 110, 114, 124, 110, 118, 112, 113, 116, 106, 107, 122, 105, 115, 112, 119, 113, 123, 114, 110, 119, 109, 116, 108, 122, 120, 103, 111, 124, 120, 117, 109, 125, 111, 100, 106, 116, 103, 105, 112, 117, 108, 118, 113, 117, 130, 119, 108, 112, 118, 97, 113, 117, 112, 114, 113, 131, 120, 109, 103, 129, 119, 123, 107, 121, 120, 122, 105, 134, 116, 121, 117, 113, 118, 132, 127, 117, 108, 117, 122, 123, 130, 116, 117, 124, 121, 115, 131, 110, 118, 116, 99, 119, 123, 114, 112, 118, 111, 113, 111, 103, 105, 124, 119, 109, 123, 118, 123, 91, 118, 121, 108, 115, 120, 120, 109, 113, 117, 122, 106, 112, 103, 118, 115, 103, 117, 116, 113, 120, 106, 130, 111, 108, 119, 123, 140, 126, 118, 77, 129, 128, 116, 107, 117, 114, 89, 121, 100, 108, 114, 132, 120, 108, 115, 102, 116, 117, 106, 107, 95, 116, 124, 108, 119, 121, 105, 115, 124, 122, 127, 106, 114, 105, 116, 114, 112, 119, 95, 124, 129, 116, 129, 114, 113, 109, 122, 116, 133, 110, 113, 116, 121, 116, 121, 119, 116, 110, 121, 111, 120, 116, 114, 111, 97, 108, 121, 119, 127, 121, 118, 109, 112, 108, 107, 111, 117, 118, 126, 109, 109, 101, 112, 113, 129, 136, 122, 124, 136, 128, 117, 120, 114, 125, 120, 102, 116, 109, 117, 120, 108, 136, 95, 110, 117, 113, 107, 108, 110, 112, 107, 124, 132, 110, 118, 111, 88, 108, 115, 126, 116, 104, 126, 118, 112, 110, 115, 101, 103, 115, 113, 121, 117, 117, 108, 99, 121, 117, 128, 125, 112, 116, 105, 112, 112, 102, 101, 120, 122, 124, 115, 115, 116, 110, 107, 118, 115, 117, 118, 128, 117, 102, 98, 115, 110, 119, 107, 112, 110, 105, 109, 112, 110, 100, 105, 120, 101, 113, 114, 119, 114, 118, 112, 93, 126, 118, 110, 106, 102, 118, 129, 111, 118, 117, 114, 112, 111, 113, 109, 107, 111, 126, 113, 125, 105, 125, 111, 118, 114, 115, 111, 112, 114, 114, 125, 102, 106, 123, 116, 120, 108, 120, 113, 123, 116, 93, 129, 107, 123, 105, 115, 106, 117, 114, 113, 115, 111, 113, 121, 120, 122, 116, 118, 129, 125, 114, 119, 125, 114, 119, 119, 117, 113, 118, 113, 111, 105, 110, 98, 123, 127, 111, 115, 91, 102, 121, 114, 111, 112, 109, 107, 120, 113, 121, 95, 121, 119, 110, 112, 119, 130, 134, 119, 116, 103, 123, 111, 110, 96, 112, 108, 100, 120, 117, 113, 118, 104, 120, 118, 110, 122, 105, 116, 123, 112, 114, 127, 111, 113, 115, 106, 119, 110, 108, 109, 98, 104, 97, 98, 102, 122, 106, 95, 127, 124, 125, 117, 115, 121, 115, 118, 116, 127, 113, 118, 104, 124, 109, 109, 115, 114, 105, 119, 123, 117, 117, 109, 114, 115, 117, 109, 124, 124, 107, 113, 117, 113, 116, 99, 107, 116, 111, 111, 115, 120, 104, 103, 110, 117, 111, 104, 118, 116, 126, 111, 106, 113, 90, 112, 120, 112, 107, 105, 136, 111, 135, 114, 127, 118, 112, 113, 125, 119, 109, 124, 117, 112, 116, 111, 115, 110, 126, 114, 112, 111, 106, 117, 107, 101, 112, 109, 95, 115, 108, 109, 116, 110, 121, 103, 119, 110, 101, 116, 114, 113, 107, 114, 137, 110, 122, 114, 113, 111, 123, 112, 118, 114, 98, 107, 118, 116, 117, 99, 102, 106, 107, 117, 104, 111, 117, 120, 95, 129, 118, 106, 111, 109, 108, 113, 117, 124, 131, 114, 109, 112, 117, 120, 112, 109, 108, 122, 106, 120, 119, 126, 98, 104, 100, 109, 102, 108, 102, 124, 118, 109, 109, 121, 117, 115, 117, 120, 113, 122, 105, 118, 135, 107, 104, 118, 120, 105, 120, 102, 104, 109, 112, 113, 114, 111, 108, 117, 116, 99, 118, 114, 110, 116, 112, 120, 119, 118, 122, 122, 118, 113, 119, 118, 116, 111, 114, 115, 114, 120, 112, 108, 126, 108, 113, 124, 122, 121, 96, 120, 124, 101, 102, 115, 102, 115, 107, 104, 115, 102, 106, 117, 116, 119, 126, 106, 116, 119, 98, 120, 113, 115, 109, 110, 94, 108, 108, 108, 120, 116, 121, 121, 108, 113, 117, 114, 124, 124, 117, 128, 118, 115, 127, 103, 120, 115, 113, 96, 122, 114, 119, 123, 111, 115, 109, 107, 120, 112, 106, 113, 117, 110, 112, 107, 99, 110, 133, 106, 108, 112, 112, 113, 96, 109, 118, 120, 118, 108, 114, 120, 117, 130, 93, 105, 96, 118, 113, 110, 104, 126, 120, 97, 121, 106, 110, 117, 111, 116, 104, 106, 111, 111, 112, 112, 122, 125, 119, 117, 104, 111, 126, 105, 132, 112, 124, 120, 130, 116, 111, 113, 117, 111, 111, 109, 123, 105, 117, 102, 113, 128, 107, 102, 115, 117, 121, 132, 106, 111, 99, 109, 120, 106, 117, 131, 113, 122, 131, 139, 107, 110, 128, 112, 118, 111, 115, 113, 116, 127, 113, 108, 121, 101, 109, 133, 123, 122, 130, 104, 114, 109, 110, 117, 115, 114, 113, 116, 120, 118, 117, 113, 102, 98, 108, 116, 132, 92, 120, 107, 116, 110, 122, 128, 113, 115, 106, 114, 107, 114, 104, 121, 108, 132, 106, 99, 115, 120, 111, 109, 120, 113, 112, 113, 113, 105, 126, 109, 111, 122, 100, 116, 113, 112, 109, 102, 119, 106, 112, 120, 96, 110, 138, 126, 115, 125, 112, 109, 131, 105, 129, 115, 125, 126, 109, 127, 113, 129, 103, 112, 112, 124, 112, 114, 102, 125, 101, 95, 124, 107, 106, 120, 95, 117, 114, 118, 102, 151, 108, 99, 134, 106, 116, 127, 118, 115, 112, 110, 120, 123, 119, 121, 117, 111, 100, 130, 132, 114, 127, 118, 109, 124, 129, 123, 107, 118, 115, 106, 121, 102, 113, 142, 131, 167, 124, 114, 129, 120, 108, 129, 116, 123, 103, 114, 114, 103, 109, 116, 132, 124, 112, 110, 119, 117, 108, 109, 135, 111, 100, 110, 127, 114, 115, 109, 99, 144, 115, 113, 111, 112, 109, 112, 112, 113, 121, 117, 111, 115, 114, 122, 100, 113, 130, 101, 120, 109, 111, 133, 109, 102, 115, 112, 114, 109, 132, 126, 115, 120, 117, 109, 110, 119, 101, 130, 119, 113, 98, 106, 106, 116, 103, 105, 113, 109, 128, 114, 108, 111, 130, 131, 112, 126, 120, 103, 108, 114, 106, 116, 125, 118, 114, 110, 115, 112, 99, 104, 116, 121, 114, 114, 111, 116, 111, 116, 120, 107, 125, 109, 124, 103, 104, 120, 102, 123, 115, 115, 117, 109, 110, 118, 141, 126, 127, 117, 112, 135, 104, 118, 105, 121, 118, 119, 120, 105, 104, 116, 123, 106, 106, 115, 110, 94, 94, 95, 105, 105, 117, 103, 113, 94, 121, 126, 119, 112, 114, 115, 127, 115, 126, 135, 102, 102, 116, 111, 134, 120, 91, 114, 117, 120, 119, 119, 120, 130, 112, 117, 104, 112, 111, 111, 99, 114, 126, 99, 132, 121, 107, 116, 116, 122, 126, 118, 128, 129, 124, 106, 119, 109, 129, 93, 114, 122, 117, 113, 109, 117, 113, 119, 134, 114, 109, 116, 124, 126, 107, 136, 116, 119, 107, 124, 119, 120, 107, 109, 120, 124, 114, 112, 123, 109, 112, 116, 121, 117, 119, 108, 103, 127, 113, 115, 119, 135, 106, 106, 102, 106, 103, 127, 95, 115, 111, 109, 114, 120, 132, 125, 96, 111, 115, 138, 120, 120, 110, 111, 120, 107, 112, 116, 101, 108, 116, 123, 113, 120, 93, 113, 112, 116, 116, 118, 108, 109, 107, 121, 104, 120, 123, 120, 116, 110, 119, 116, 112, 102, 102, 113, 111, 107, 110, 119, 112, 95, 132, 109, 114, 94, 103, 122, 124, 110, 133, 125, 114, 106, 113, 114, 129, 120, 109, 109, 125, 112, 115, 112, 123, 115, 116, 115, 115, 115, 108, 120, 111, 124, 122, 118, 123, 115, 114, 114, 116, 113, 111, 108, 126, 117, 109, 113, 116, 112, 109, 125, 108, 122, 124, 110, 124, 125, 135, 115, 119, 104, 125, 108, 125, 108, 108, 117, 119, 117, 132, 111, 102, 115, 111, 113, 108, 141, 108, 115, 110, 126, 111, 112, 111, 130, 124, 107, 113, 119, 117, 107, 114, 104, 107, 115, 125, 112, 126, 114, 108, 122, 128, 115, 106, 117, 128, 128, 126, 121, 101, 138, 117, 115, 110, 101, 125, 126, 96, 109, 116, 113, 115, 108, 107, 107, 111, 116, 127, 95, 125, 109, 128, 102, 105, 111, 111, 131, 110, 125, 116, 121, 104, 91, 105, 114, 119, 109, 121, 131, 141, 118, 110, 112, 119, 116, 119, 121, 109, 117, 119, 116, 119, 120, 109, 126, 115, 121, 99, 113, 106, 128, 136, 98, 113, 126, 111, 115, 108, 110, 85, 121, 116, 119, 112, 109, 121, 118, 110, 122, 100, 114, 125, 112, 108, 109, 116, 105, 112, 128, 110, 113, 107, 108, 122, 127, 117, 100, 114, 119, 105, 109, 112, 112, 112, 122, 125, 114, 110, 128, 118, 104, 121, 125, 113, 104, 126, 104, 114, 115, 143, 99, 106, 108, 111, 109, 119, 116, 111, 90, 98, 113, 126, 83, 123, 114, 104, 118, 121, 115, 99, 105, 107, 127, 110, 121, 113, 124, 117, 122, 139, 118, 114, 121, 112, 112, 113, 116, 109, 94, 114, 100, 133, 122, 120, 107, 103, 103, 121, 121, 112, 136, 113, 111, 118, 106, 104, 118, 108, 121, 109, 123, 104, 107, 118, 107, 106, 114, 114, 100, 116, 99, 123, 97, 110, 114, 110, 118, 113, 117, 112, 113, 108, 124, 118, 119, 111, 109, 116, 115, 113, 112, 121, 135, 109, 105, 106, 127, 112, 92, 118, 129, 115, 118, 113, 124, 123, 104, 124, 105, 123, 112, 116, 108, 105, 107, 111, 108, 114, 142, 111, 110, 115, 116, 116, 102, 105, 118, 104, 120, 111, 93, 118, 107, 124, 126, 98, 112, 113, 116, 118, 88, 109, 116, 104, 110, 104, 111, 115, 112, 118, 125, 123, 120, 107, 114, 112, 117, 90, 116, 115, 99, 116, 121, 112, 122, 115, 118, 85, 124, 117, 117, 106, 109, 91, 109, 121, 109, 120, 127, 116, 106, 118, 110, 97, 109, 119, 116, 98, 114, 119, 109, 115, 109, 106, 128, 126, 112, 110, 105, 118, 109, 125, 129, 111, 114, 121, 112, 121, 106, 100, 99, 113, 136, 114, 117, 101, 108, 120, 114, 109, 123, 106, 93, 121, 106, 106, 108, 107, 115, 111, 97, 121, 118, 100, 117, 109, 123, 112, 101, 110, 136, 137, 118, 113, 104, 125, 118, 116, 121, 113, 101, 117, 111, 129, 99, 106, 100, 103, 107, 110, 107, 104, 106, 106, 113, 130, 103, 130, 112, 100, 128, 105, 112, 137, 101, 112, 123, 107, 108, 104, 116, 109, 98, 112, 106, 114, 116, 105, 122, 121, 113, 120, 109, 118, 107, 104, 114, 103, 116, 119, 114, 120, 110, 115, 117, 100, 128, 110, 121, 119, 115, 117, 102, 114, 109, 107, 111, 113, 126, 109, 124, 98, 111, 110, 104, 115, 117, 120, 109, 117, 120, 107, 103, 107, 111, 110, 117, 118, 112, 114, 114, 120, 110, 98, 117, 112, 117, 110, 115, 118, 111, 112, 112, 122, 113, 119, 106, 114, 126, 116, 125, 130, 98, 122, 115, 119, 119, 110, 112, 124, 123, 118, 114, 115, 115, 116, 124, 111, 122, 108, 125, 114, 114, 101, 125, 123, 104, 106, 117, 109, 108, 123, 139, 100, 119, 102, 108, 115, 107, 107, 122, 120, 109, 119, 111, 100, 114, 115, 126, 126, 118, 120, 115, 94, 108, 115, 117, 114, 118, 117, 108, 107, 105, 110, 116, 112, 106, 123, 124, 112, 129, 127, 111, 116, 107, 119, 120, 115, 114, 125, 99, 97, 115, 117, 113, 113, 109, 97, 106, 116, 116, 111, 124, 115, 102, 100, 109, 126, 116, 113, 116, 117, 119, 115, 112, 116, 105, 108, 114, 111, 112, 122, 121, 138, 119, 112, 103, 116, 103, 119, 116, 108, 127, 120, 112, 109, 115, 121, 111, 113, 109, 115, 115, 108, 114, 108, 131, 130, 129, 104, 101, 116, 111, 122, 102, 112, 112, 130, 111, 109, 104, 106, 118, 115, 119, 110, 108, 115, 121, 115, 100, 136, 103, 116, 113, 117, 113, 112, 123, 121, 116, 125, 120, 114, 94, 117, 113, 100, 115, 112, 123, 106, 122, 101, 113, 115, 117, 104, 113, 113, 110, 118, 110, 121, 118, 119, 113, 119, 121, 112, 119, 110, 125, 125, 97, 114, 110, 116, 106, 126, 102, 135, 119, 114, 105, 119, 113, 123, 104, 116, 117, 105, 130, 124, 105, 110, 119, 115, 116, 106, 108, 112, 118, 121, 108, 117, 107, 114, 110, 114, 105, 117, 115, 125, 110, 123, 119, 120, 112, 120, 130, 115, 101, 115, 119, 114, 125, 112, 119, 116, 115, 110, 129, 114, 107, 120, 108, 131, 109, 114, 110, 116, 123, 107, 112, 110, 106, 113, 106, 121, 126, 118, 124, 114, 118, 114, 107, 118, 121, 111, 123, 119, 120, 113, 102, 117, 119, 108, 122, 110, 122, 121, 117, 114, 113, 112, 119, 113, 112, 124, 114, 111, 117, 108, 121, 117, 117, 119, 120, 117, 125, 121, 128, 110, 110, 120, 123, 122, 119, 112, 113, 125, 111, 106, 103, 114, 115, 110, 127, 110, 110, 120, 113, 124, 107, 114, 119, 119, 114, 124, 124, 114, 101, 130, 111, 101, 109, 116, 125, 107, 113, 114, 112, 113, 103, 115, 115, 112, 123, 125, 110, 108, 116, 120, 105, 110, 112, 117, 113, 119, 120, 111, 115, 121, 112, 116, 108, 117, 114, 112, 116, 117, 116, 124, 109, 126, 125, 115, 114, 109, 127, 112, 116, 120, 125, 124, 97, 115, 111, 133, 105, 109, 105, 112, 118, 121, 102, 118, 108, 127, 101, 135, 114, 101, 117, 121, 119, 106, 110, 112, 123, 117, 109, 121, 114, 117, 101, 108, 116, 123, 119, 128, 107, 109, 107, 111, 115, 121, 118, 115, 108, 112, 121, 110, 114, 112, 104, 107, 113, 117, 118, 121, 123, 117, 116, 109, 124, 110, 122, 106, 103, 118, 100, 117, 113, 112, 105, 122, 110, 107, 111, 110, 105, 112, 117, 112, 127, 106, 115, 117, 108, 122, 103, 119, 114, 109, 118, 101, 116, 110, 120, 122, 107, 109, 114, 118, 104, 116, 118, 115, 109, 117, 137, 107, 111, 114, 121, 130, 119, 125, 111, 108, 124, 115, 113, 126, 123, 102, 129, 108, 114, 125, 141, 117, 115, 116, 114, 111, 118, 114, 105, 126, 118, 114, 122, 118, 126, 124, 110, 126, 108, 122, 108, 110, 127, 112, 117, 120, 101, 106, 116, 120, 119, 117, 114, 113, 116, 123, 110, 117, 106, 124, 103, 117, 101, 112, 120, 116, 105, 119, 108, 121, 112, 114, 115, 114, 112, 105, 116, 117, 120, 105, 120, 102, 120, 111, 108, 111, 117, 118, 108, 112, 110, 114, 100, 105, 111, 120, 131, 125, 115, 97, 117, 115, 115, 120, 108, 107, 126, 115, 125, 115, 106, 111, 92, 96, 128, 126, 118, 111, 113, 122, 119, 120, 113, 122, 114, 115, 133, 110, 112, 127, 109, 101, 114, 113, 125, 100, 100, 104, 105, 108, 113, 119, 107, 113, 110, 114, 121, 108, 110, 122, 118, 114, 107, 113, 104, 112, 97, 119, 107, 113, 110, 117, 112, 129, 114, 122, 119, 111, 110, 133, 106, 100, 107, 120, 117, 125, 119, 117, 123, 92, 119, 121, 123, 130, 111, 111, 106, 112, 110, 111, 100, 109, 121, 108, 117, 121, 110, 113, 109, 116, 119, 105, 115, 116, 100, 111, 101, 90, 103, 114, 117, 116, 105, 91, 120, 99, 115, 138, 100, 117, 102, 123, 115, 112, 107, 123, 113, 129, 114, 103, 104, 121, 113, 114, 103, 116, 129, 118, 114, 114, 98, 116, 121, 104, 119, 94, 115, 111, 104, 109, 121, 112, 115, 117, 93, 101, 122, 112, 125, 112, 113, 107, 114, 118, 115, 115, 125, 117, 106, 114, 122, 113, 113, 100, 118, 120, 112, 101, 141, 119, 123, 114, 111, 112, 122, 114, 110, 111, 120, 113, 114, 122, 107, 111, 102, 87, 118, 112, 115, 112, 117, 113, 117, 102, 109, 105, 120, 113, 108, 117, 115, 104, 118, 115, 126, 118, 121, 116, 122, 119, 120, 111, 109, 125, 125, 122, 124, 115, 119, 109, 128, 111, 117, 122, 112, 104, 118, 116, 107, 104, 124, 122, 104, 100, 123, 100, 115, 118, 115, 108, 125, 117, 121, 127, 110, 102, 100, 122, 118, 120, 101, 109, 114, 119, 111, 100, 110, 116, 112, 135, 124, 120, 108, 111, 105, 107, 123, 113, 119, 123, 105, 112, 111, 110, 110, 115, 110, 110, 116, 113, 107, 123, 112, 120, 123, 114, 112, 116, 114, 117, 102, 94, 114, 114, 113, 114, 115, 112, 101, 131, 127, 117, 121, 113, 120, 114, 113, 117, 100, 135, 108, 127, 113, 116, 123, 116, 111, 130, 120, 122, 136, 125, 110, 109, 135, 113, 124, 110, 112, 120, 122, 109, 120, 115, 117, 121, 119, 128, 117, 131, 108, 117, 111, 116, 110, 108, 104, 110, 107, 105, 111, 121, 115, 117, 109, 130, 122, 118, 116, 104, 118, 120, 105, 109, 120, 101, 114, 119, 123, 116, 108, 113, 125, 119, 105, 110, 121, 122, 105, 107, 112, 103, 119, 120, 116, 122, 119, 97, 133, 113, 135, 112, 109, 109, 104, 114, 110, 123, 122, 110, 111, 118, 123, 114, 137, 103, 113, 115, 113, 114, 115, 111, 126, 103, 118, 126, 124, 115, 113, 113, 105, 128, 114, 118, 124, 106, 108, 113, 130, 109, 98, 106, 117, 104, 122, 109, 118, 122, 108, 119, 125, 119, 111, 109, 111, 109, 120, 123, 109, 122, 132, 107, 114, 116, 118, 110, 110, 105, 130, 110, 119, 105, 123, 114, 112, 106, 105, 112, 115, 116, 116, 111, 117, 101, 122, 117, 112, 106, 114, 105, 120, 116, 109, 117, 115, 122, 112, 107, 112, 115, 110, 106, 111, 130, 120, 102, 126, 106, 107, 123, 126, 109, 116, 108, 113, 109, 122, 111, 114, 116, 99, 114, 104, 115, 97, 109, 121, 110, 125, 108, 118, 120, 116, 119, 106, 116, 126, 109, 120, 125, 117, 116, 107, 93, 125, 110, 113, 109, 110, 109, 121, 114, 116, 123, 129, 111, 116, 122, 116, 102, 122, 111, 110, 123, 135, 119, 115, 121, 113, 114, 128, 123, 115, 110, 107, 120, 99, 111, 122, 108, 122, 112, 103, 111, 124, 114, 116, 112, 105, 117, 121, 109, 111, 110, 114, 119, 113, 122, 116, 113, 110, 122, 124, 122, 105, 127, 111, 109, 109, 112, 111, 114, 125, 120, 107, 105, 113, 132, 116, 121, 115, 114, 120, 120, 112, 106, 110, 133, 108, 115, 119, 123, 121, 108, 129, 114, 120, 113, 109, 115, 113, 128, 114, 119, 109, 113, 109, 101, 120, 101, 110, 119, 113, 118, 99, 112, 122, 127, 122, 117, 106, 117, 115, 115, 111, 122, 107, 122, 116, 119, 116, 111, 119, 113, 117, 106, 117, 121, 118, 101, 114, 105, 123, 118, 113, 110, 113, 115, 127, 126, 112, 120, 115, 119, 120, 110, 114, 120, 120, 100, 118, 114, 123, 111, 114, 116, 105, 106, 109, 113, 119, 108, 113, 114, 111, 121, 115, 107, 120, 98, 109, 121, 105, 105, 122, 109, 122, 124, 107, 117, 114, 120, 113, 92, 81, 112, 114, 118, 113, 113, 120, 112, 112, 120, 122, 121, 107, 112, 118, 114, 120, 107, 113, 120, 123, 127, 126, 117, 110, 107, 122, 105, 108, 135, 121, 120, 110, 113, 108, 111, 106, 106, 125, 102, 104, 112, 103, 117, 103, 116, 115, 105, 115, 110, 108, 110, 108, 119, 118, 115, 105, 119, 113, 110, 112, 113, 116, 110, 112, 113, 129, 124, 112, 125, 110, 119, 112, 127, 122, 112, 108, 116, 119, 101, 135, 128, 121, 115, 107, 111, 110, 111, 120, 115, 114, 108, 116, 112, 116, 122, 113, 106, 138, 117, 118, 116, 115, 106, 117, 114, 118, 111, 110, 135, 115, 112, 112, 115, 120, 110, 112, 110, 113, 122, 113, 114, 110, 110, 122, 121, 106, 125, 119, 116, 113, 112, 116, 104, 113, 114, 108, 104, 109, 114, 125, 107, 121, 110, 119, 126, 130, 117, 107, 109, 109, 121, 114, 123, 119, 114, 112, 122, 119, 128, 96, 123, 121, 103, 123, 114, 119, 112, 120, 110, 130, 117, 126, 120, 115, 108, 122, 116, 106, 115, 106, 116, 111, 115, 125, 127, 111, 112, 121, 120, 119, 117, 110, 113, 113, 119, 102, 110, 118, 127, 115, 111, 110, 127, 111, 120, 126, 110, 101, 122, 114, 103, 117, 109, 109, 110, 117, 120, 118, 123, 108, 99, 110, 103, 114, 109, 113, 114, 113, 124, 111, 98, 114, 120, 113, 114, 123, 111, 119, 121, 123, 119, 123, 101, 118, 108, 119, 134, 118, 120, 109, 115, 118, 131, 113, 108, 122, 115, 111, 120, 136, 106, 108, 107, 126, 114, 111, 109, 119, 109, 122, 115, 130, 109, 117, 92, 108, 116, 113, 111, 119, 112, 114, 116, 129, 117, 118, 124, 118, 128, 117, 109, 116, 113, 107, 113, 113, 105, 100, 120, 109, 82, 104, 105, 139, 109, 117, 134, 120, 111, 110, 112, 111, 124, 106, 118, 105, 122, 109, 138, 117, 114, 109, 125, 118, 142, 120, 113, 137, 120, 124, 105, 104, 110, 123, 114, 123, 119, 108, 95, 118, 111, 110, 124, 118, 108, 122, 117, 121, 126, 115, 107, 106, 124, 111, 127, 99, 118, 123, 131, 112, 106, 121, 106, 126, 112, 109, 120, 108, 108, 94, 125, 113, 77, 109, 124, 118, 121, 109, 119, 126, 107, 115, 114, 117, 123, 91, 112, 116, 118, 122, 127, 109, 117, 106, 117, 110, 118, 119, 110, 110, 134, 121, 120, 108, 113, 120, 126, 125, 110, 110, 122, 133, 148, 120, 114, 113, 112, 109, 115, 108, 112, 105, 111, 119, 102, 113, 121, 93, 107, 120, 117, 117, 96, 120, 128, 128, 120, 106, 100, 121, 116, 123, 94, 111, 108, 116, 113, 132, 97, 110, 112, 114, 108, 103, 117, 120, 110, 122, 114, 117, 112, 122, 116, 125, 122, 123, 106, 119, 135, 115, 131, 113, 121, 121, 114, 116, 122, 120, 127, 121, 113, 125, 120, 103, 117, 115, 124, 114, 111, 104, 104, 116, 122, 113, 116, 119, 113, 123, 114, 118, 118, 114, 101, 119, 105, 114, 113, 115, 122, 121, 100, 113, 118, 125, 110, 114, 114, 107, 117, 124, 121, 117, 112, 110, 119, 122, 127, 105, 103, 109, 101, 113, 115, 118, 114, 120, 113, 114, 110, 106, 123, 152, 115, 103, 113, 116, 120, 109, 121, 123, 128, 115, 119, 106, 126, 108, 113, 108, 133, 120, 115, 115, 120, 101, 116, 109, 116, 109, 105, 118, 121, 106, 118, 122, 112, 92, 110, 111, 109, 123, 108, 117, 114, 113, 117, 123, 108, 107, 85, 118, 107, 109, 119, 121, 95, 112, 129, 113, 119, 100, 132, 112, 111, 115, 107, 109, 97, 111, 127, 115, 120, 110, 111, 119, 130, 110, 126, 127, 114, 113, 117, 119, 128, 131, 114, 105, 113, 121, 123, 122, 122, 117, 113, 124, 116, 96, 113, 112, 115, 112, 107, 115, 113, 117, 114, 106, 96, 115, 110, 114, 108, 111, 116, 115, 118, 120, 119, 117, 126, 120, 133, 117, 127, 118, 109, 119, 126, 118, 124, 127, 121, 112, 130, 118, 140, 127, 109, 110, 116, 116, 116, 112, 124, 114, 117, 116, 109, 130, 122, 113, 110, 113, 115, 101, 109, 119, 115, 113, 112, 103, 123, 117, 118, 117, 88, 117, 121, 93, 128, 107, 107, 122, 106, 125, 119, 119, 119, 113, 124, 106, 113, 133, 111, 117, 102, 110, 113, 105, 105, 102, 117, 110, 106, 112, 134, 126, 121, 91, 112, 76, 121, 110, 123, 113, 115, 112, 100, 107, 118, 111, 123, 117, 102, 99, 111, 104, 112, 122, 105, 108, 104, 118, 122, 119, 123, 126, 113, 127, 128, 116, 122, 118, 89, 123, 110, 115, 99, 109, 109, 119, 117, 114, 117, 117, 107, 106, 120, 119, 115, 111, 121, 117, 125, 120, 111, 119, 122, 115, 105, 106, 121, 119, 113, 113, 110, 121, 115, 105, 136, 125, 112, 118, 118, 120, 104, 114, 111, 118, 114, 112, 113, 114, 103, 114, 119, 125, 112, 120, 100, 121, 115, 106, 121, 107, 119, 115, 124, 116, 105, 117, 120, 111, 123, 127, 117, 113, 111, 124, 115, 114, 132, 115, 114, 118, 126, 111, 109, 122, 101, 113, 112, 116, 118, 117, 105, 118, 124, 119, 112, 121, 117, 109, 112, 112, 113, 117, 115, 112, 114, 117, 121, 108, 118, 118, 108, 117, 115, 108, 125, 116, 111, 104, 118, 119, 121, 118, 107, 113, 120, 126, 112, 121, 112, 112, 114, 110, 126, 113, 110, 122, 122, 120, 116, 126, 131, 112, 105, 119, 100, 113, 112, 114, 110, 116, 107, 119, 114, 119, 110, 120, 124, 119, 116, 117, 118, 105, 115, 107, 122, 102, 103, 120, 118, 123, 122, 115, 118, 118, 116, 105, 118, 108, 115, 115, 112, 120, 105, 116, 111, 121, 112, 112, 110, 111, 109, 115, 119, 115, 112, 124, 106, 114, 111, 119, 114, 115, 122, 121, 109, 126, 117, 112, 113, 110, 106, 123, 112, 114, 114, 120, 116, 114, 114, 110, 108, 113, 124, 119, 106, 120, 124, 115, 116, 119, 127, 115, 114, 122, 120, 114, 108, 114, 110, 123, 115, 110, 107, 116, 110, 112, 129, 118, 113, 122, 124, 105, 113, 114, 120, 127, 119, 116, 125, 108, 118, 115, 118, 111, 131, 122, 111, 119, 122, 118, 113, 114, 115, 112, 122, 123, 105, 120, 117, 108, 114, 119, 114, 114, 110, 109, 114, 108, 116, 115, 118, 112, 129, 113, 113, 134, 107, 114, 118, 113, 119, 109, 121, 112, 113, 112, 123, 116, 126, 110, 125, 110, 115, 124, 115, 114, 121, 109, 102, 101, 105, 114, 119, 110, 111, 118, 121, 118, 126, 121, 121, 115, 108, 115, 111, 108, 111, 117, 115, 111, 117, 117, 105, 119, 122, 119, 107, 114, 108, 119, 113, 117, 113, 117, 130, 112, 110, 113, 111, 119, 111, 119, 119, 116, 112, 109, 112, 120, 118, 110, 116, 113, 124, 109, 118, 126, 117, 123, 113, 108, 120, 111, 108, 111, 121, 112, 109, 118, 114, 110, 129, 130, 122, 108, 119, 114, 119, 130, 106, 111, 112, 114, 118, 112, 112, 108, 117, 119, 115, 118, 113, 115, 125, 113, 115, 104, 110, 118, 107, 109, 122, 112, 111, 123, 119, 122, 112, 113, 113, 111, 113, 118, 121, 113, 130, 118, 114, 121, 111, 117, 126, 116, 110, 125, 125, 110, 112, 107, 109, 108, 123, 114, 89, 113, 113, 115, 124, 109, 106, 113, 121, 115, 113, 120, 118, 118, 122, 113, 114, 116, 112, 108, 105, 130, 109, 116, 102, 112, 111, 109, 122, 115, 113, 111, 111, 109, 119, 121, 103, 126, 111, 115, 127, 115, 111, 117, 126, 106, 113, 110, 115, 120, 111, 115, 109, 107, 120, 122, 113, 124, 115, 105, 121, 118, 103, 111, 117, 123, 117, 120, 119, 115, 126, 113, 110, 116, 116, 118, 118, 110, 121, 110, 115, 116, 114, 122, 114, 116, 106, 120, 120, 125, 113, 125, 108, 111, 112, 121, 105, 116, 112, 114, 121, 109, 121, 117, 123, 113, 118, 106, 114, 115, 123, 116, 110, 108, 109, 111, 126, 106, 113, 101, 114, 115, 110, 121, 110, 114, 119, 112, 119, 115, 106, 111, 115, 111, 115, 116, 102, 111, 116, 112, 111, 118, 110, 111, 122, 125, 117, 108, 122, 108, 126, 111, 128, 107, 110, 117, 115, 114, 114, 112, 131, 114, 121, 109, 117, 124, 113, 120, 118, 122, 118, 112, 116, 104, 102, 131, 101, 119, 121, 119, 122, 118, 110, 114, 139, 116, 114, 103, 115, 111, 115, 122, 119, 120, 104, 117, 119, 110, 121, 126, 107, 113, 106, 109, 121, 122, 112, 115, 116, 116, 118, 115, 113, 118, 101, 117, 111, 135, 109, 107, 123, 121, 114, 123, 118, 113, 125, 123, 119, 107, 120, 112, 113, 95, 121, 117, 108, 112, 108, 103, 119, 126, 110, 112, 116, 121, 118, 103, 122, 122, 106, 112, 120, 114, 106, 105, 115, 110, 117, 119, 104, 117, 115, 121, 116, 112, 117, 117, 118, 115, 110, 108, 118, 112, 121, 107, 119, 109, 126, 107, 111, 121, 111, 106, 113, 114, 119, 96, 119, 110, 123, 111, 115, 112, 111, 123, 115, 120, 125, 118, 106, 95, 111, 108, 119, 119, 116, 120, 124, 118, 116, 108, 113, 133, 109, 111, 111, 125, 113, 104, 119, 116, 110, 110, 112, 109, 116, 116, 119, 101, 115, 110, 125, 105, 121, 128, 110, 118, 120, 118, 114, 115, 107, 113, 115, 124, 115, 127, 106, 118, 125, 112, 109, 112, 118, 102, 124, 113, 112, 111, 116, 115, 122, 98, 114, 104, 115, 121, 111, 117, 119, 125, 112, 115, 115, 117, 124, 106, 112, 112, 107, 112, 117, 112, 114, 127, 110, 115, 108, 118, 121, 119, 115, 114, 116, 108, 114, 125, 113, 112, 111, 115, 105, 117, 109, 122, 119, 117, 110, 118, 110, 126, 128, 123, 114, 117, 112, 120, 105, 122, 109, 117, 117, 110, 104, 115, 117, 105, 111, 112, 113, 109, 109, 118, 106, 108, 113, 120, 121, 116, 114, 117, 114, 123, 115, 118, 114, 116, 111, 122, 122, 105, 106, 124, 106, 104, 122, 116, 117, 115, 127, 116, 113, 113, 122, 113, 112, 119, 121, 125, 111, 113, 116, 116, 117, 103, 106, 116, 109, 109, 116, 119, 121, 117, 114, 111, 105, 113, 114, 112, 128, 112, 110, 113, 113, 108, 114, 117, 108, 115, 125, 119, 123, 110, 117, 109, 104, 109, 124, 112, 108, 107, 108, 117, 111, 115, 106, 118, 115, 115, 117, 113, 115, 135, 108, 106, 125, 122, 117, 113, 118, 116, 110, 127, 111, 116, 115, 108, 116, 118, 105, 115, 113, 124, 116, 120, 104, 106, 128, 116, 120, 115, 104, 116, 114, 118, 115, 113, 117, 116, 117, 116, 116, 118, 114, 116, 114, 120, 108, 112, 119, 110, 116, 124, 122, 117, 110, 110, 128, 109, 111, 111, 119, 122, 118, 118, 115, 122, 123, 116, 115, 116, 123, 122, 105, 124, 114, 109, 110, 112, 132, 110, 120, 108, 114, 116, 108, 103, 116, 124, 120, 107, 112, 118, 121, 114, 111, 107, 115, 115, 109, 115, 112, 114, 96, 117, 111, 112, 113, 117, 116, 115, 118, 117, 127, 115, 120, 119, 120, 100, 117, 116, 110, 103, 82, 109, 110, 123, 117, 129, 113, 111, 102, 109, 115, 104, 115, 105, 114, 129, 119, 125, 118, 119, 129, 122, 122, 119, 110, 116, 126, 126, 121, 117, 117, 119, 117, 112, 103, 124, 123, 112, 120, 116, 110, 116, 105, 111, 134, 117, 115, 105, 116, 115, 114, 119, 109, 128, 127, 113, 102, 113, 115, 123, 123, 105, 109, 114, 113, 111, 112, 101, 107, 109, 115, 113, 116, 120, 98, 122, 119, 114, 113, 113, 106, 122, 107, 116, 132, 104, 113, 115, 118, 101, 116, 114, 101, 119, 120, 117, 112, 102, 91, 117, 119, 124, 123, 118, 110, 122, 99, 117, 121, 114, 121, 115, 109, 125, 108, 121, 112, 119, 120, 115, 114, 124, 123, 120, 112, 114, 117, 118, 109, 115, 133, 112, 114, 100, 115, 114, 115, 110, 101, 119, 107, 114, 116, 126, 118, 116, 117, 111, 110, 101, 112, 128, 123, 116, 115, 112, 118, 117, 120, 129, 123, 121, 128, 117, 118, 114, 125, 122, 105, 119, 117, 120, 122, 113, 114, 114, 118, 117, 118, 108, 104, 111, 112, 128, 117, 116, 113, 106, 109, 116, 122, 123, 113, 108, 112, 112, 115, 109, 114, 120, 117, 114, 108, 118, 109, 118, 120, 107, 108, 110, 116, 134, 105, 113, 119, 133, 117, 98, 115, 124, 107, 122, 117, 104, 116, 124, 110, 116, 119, 111, 109, 111, 110, 115, 114, 117, 110, 112, 125, 114, 106, 132, 120, 116, 119, 110, 109, 107, 112, 118, 117, 126, 109, 104, 119, 109, 120, 119, 108, 119, 120, 104, 101, 111, 116, 118, 106, 122, 103, 102, 113, 115, 131, 109, 106, 102, 117, 127, 129, 123, 112, 102, 122, 116, 113, 115, 113, 114, 119, 126, 129, 124, 113, 108, 112, 122, 117, 119, 109, 115, 123, 118, 119, 116, 117, 121, 112, 117, 113, 111, 112, 106, 116, 112, 110, 117, 120, 108, 134, 108, 117, 117, 118, 108, 136, 121, 115, 119, 113, 118, 119, 116, 125, 118, 105, 117, 108, 112, 122, 114, 114, 120, 125, 112, 115, 106, 109, 112, 126, 109, 112, 107, 112, 118, 129, 115, 112, 117, 119, 142, 110, 117, 129, 113, 121, 95, 120, 107, 119, 112, 116, 106, 99, 119, 117, 119, 122, 117, 105, 111, 119, 101, 121, 130, 108, 132, 116, 116, 98, 128, 117, 107, 101, 118, 114, 120, 107, 114, 116, 105, 104, 103, 102, 125, 111, 105, 126, 108, 117, 114, 107, 111, 122, 116, 111, 121, 126, 117, 130, 118, 115, 109, 109, 111, 116, 113, 110, 114, 110, 116, 108, 123, 119, 127, 114, 114, 114, 116, 113, 89, 114, 136, 104, 106, 113, 125, 123, 117, 114, 116, 114, 107, 116, 123, 117, 110, 109, 118, 119, 126, 108, 113, 118, 104, 119, 123, 118, 108, 103, 116, 112, 135, 116, 119, 107, 106, 112, 119, 110, 114, 103, 114, 113, 111, 115, 114, 105, 115, 136, 107, 116, 103, 116, 132, 119, 124, 110, 114, 113, 106, 104, 116, 120, 104, 120, 121, 118, 106, 115, 121, 117, 99, 111, 100, 108, 125, 125, 107, 123, 120, 113, 116, 110, 111, 109, 114, 122, 116, 118, 117, 120, 120, 98, 122, 107, 98, 110, 103, 127, 110, 121, 121, 120, 120, 101, 128, 118, 112, 114, 115, 112, 108, 114, 119, 112, 113, 106, 121, 106, 109, 113, 120, 107, 103, 118, 106, 104, 118, 128, 108, 123, 123, 129, 103, 119, 112, 110, 121, 123, 127, 98, 114, 106, 107, 117, 111, 108, 126, 109, 119, 114, 119, 109, 112, 105, 108, 129, 117, 126, 118, 109, 115, 101, 118, 99, 103, 118, 114, 113, 118, 114, 111, 114, 100, 99, 106, 109, 114, 118, 112, 113, 110, 129, 119, 114, 119, 125, 110, 119, 116, 111, 114, 109, 115, 99, 123, 117, 109, 129, 143, 121, 118, 115, 103, 119, 107, 105, 119, 117, 119, 110, 124, 112, 119, 110, 123, 116, 114, 104, 114, 117, 108, 97, 121, 122, 112, 112, 118, 129, 114, 110, 119, 118, 129, 114, 117, 121, 114, 111, 104, 105, 117, 108, 111, 123, 119, 105, 118, 136, 130, 114, 113, 114, 121, 113, 109, 105, 117, 118, 108, 131, 104, 124, 125, 117, 112, 107, 118, 118, 123, 117, 120, 112, 131, 132, 113, 100, 127, 128, 119, 130, 127, 120, 108, 106, 127, 122, 115, 112, 102, 121, 107, 115, 113, 109, 108, 111, 111, 107, 112, 108, 137, 115, 122, 105, 107, 113, 111, 115, 113, 107, 117, 113, 124, 128, 112, 112, 117, 124, 100, 109, 112, 110, 118, 111, 114, 115, 120, 106, 107, 110, 111, 118, 109, 119, 125, 123, 123, 114, 123, 120, 122, 113, 122, 118, 122, 137, 118, 125, 109, 124, 115, 113, 115, 118, 114, 100, 119, 108, 112, 118, 101, 110, 121, 124, 136, 110, 111, 118, 123, 111, 99, 123, 118, 113, 109, 111, 121, 124, 122, 112, 99, 109, 106, 121, 109, 110, 108, 112, 120, 109, 112, 116, 121, 118, 113, 120, 105, 129, 121, 113, 113, 125, 113, 125, 104, 114, 108, 108, 124, 114, 106, 112, 112, 112, 121, 133, 112, 104, 110, 119, 109, 125, 109, 111, 120, 98, 111, 118, 108, 121, 126, 121, 115, 104, 109, 123, 109, 111, 121, 109, 98, 116, 130, 113, 133, 122, 110, 116, 115, 118, 115, 109, 109, 117, 101, 112, 117, 115, 135, 121, 108, 105, 107, 115, 115, 120, 121, 108, 107, 111, 105, 122, 114, 106, 109, 113, 104, 121, 108, 119, 103, 120, 108, 123, 104, 127, 112, 116, 128, 111, 108, 115, 110, 112, 124, 117, 110, 124, 113, 115, 107, 109, 105, 110, 128, 104, 113, 123, 121, 116, 125, 103, 111, 105, 116, 112, 123, 106, 114, 119, 107, 110, 121, 122, 103, 110, 124, 115, 122, 123, 122, 114, 117, 103, 113, 103, 108, 111, 122, 98, 128, 123, 117, 112, 98, 103, 119, 116, 111, 108, 96, 110, 114, 118, 130, 104, 104, 120, 106, 108, 115, 107, 122, 126, 109, 113, 126, 116, 121, 120, 109, 114, 122, 113, 111, 115, 114, 120, 113, 117, 112, 118, 116, 129, 115, 122, 94, 117, 114, 108, 120, 115, 113, 109, 118, 120, 135, 96, 109, 101, 90, 122, 115, 102, 120, 113, 104, 106, 110, 121, 125, 137, 102, 105, 127, 121, 113, 113, 93, 130, 113, 131, 112, 122, 109, 111, 116, 110, 122, 115, 117, 110, 133, 121, 121, 118, 112, 122, 111, 119, 126, 103, 115, 116, 105, 121, 111, 112, 108, 110, 118, 120, 122, 109, 122, 118, 105, 95, 120, 120, 114, 118, 114, 99, 121, 112, 109, 114, 130, 109, 117, 113, 114, 107, 121, 134, 126, 107, 108, 108, 114, 97, 105, 109, 114, 103, 109, 115, 110, 120, 124, 124, 120, 120, 130, 117, 119, 105, 117, 120, 126, 115, 121, 120, 108, 106, 120, 116, 116, 129, 122, 102, 119, 108, 105, 109, 110, 123, 118, 116, 115, 114, 112, 119, 119, 110, 135, 113, 116, 114, 130, 132, 103, 111, 112, 114, 118, 103, 118, 121, 113, 130, 123, 103, 124, 120, 117, 104, 115, 102, 119, 118, 102, 107, 118, 117, 120, 126, 119, 124, 121, 96, 115, 106, 111, 129, 116, 103, 122, 118, 99, 122, 129, 121, 114, 134, 124, 102, 121, 112, 120, 119, 131, 119, 114, 109, 114, 108, 119, 111, 76, 123, 120, 112, 130, 109, 125, 111, 118, 115, 119, 108, 101, 132, 116, 104, 115, 124, 108, 125, 124, 152, 110, 127, 115, 113, 124, 115, 106, 120, 113, 126, 116, 117, 108, 110, 111, 99, 121, 125, 111, 124, 114, 128, 113, 126, 127, 118, 115, 90, 114, 111, 104, 113, 116, 106, 104, 119, 113, 122, 110, 133, 124, 115, 120, 133, 108, 112, 120, 119, 111, 113, 118, 127, 113, 131, 117, 127, 104, 127, 125, 108, 110, 111, 136, 116, 122, 129, 118, 115, 127, 103, 112, 103, 108, 111, 113, 121, 117, 115, 121, 113, 107, 104, 101, 125, 105, 96, 108, 126, 122, 121, 105, 117, 115, 107, 104, 128, 124, 104, 114, 119, 115, 114, 102, 121, 92, 118, 112, 110, 107, 107, 117, 129, 121, 131, 122, 123, 113, 117, 104, 107, 120, 129, 125, 123, 123, 123, 124, 112, 113, 138, 123, 123, 104, 113, 123, 125, 101, 129, 115, 109, 109, 108, 113, 114, 106, 103, 121, 118, 101, 120, 108, 119, 118, 112, 128, 110, 97, 117, 115, 105, 116, 110, 113, 115, 109, 113, 113, 138, 114, 119, 116, 138, 112, 108, 96, 123, 98, 114, 120, 116, 110, 122, 103, 119, 112, 111, 128, 108, 103, 124, 115, 117, 117, 116, 123, 116, 115, 117, 116, 125, 122, 114, 108, 124, 106, 119, 109, 122, 121, 117, 105, 121, 124, 114, 127, 118, 107, 112, 113, 119, 110, 112, 117, 127, 101, 113, 104, 109, 116, 112, 115, 131, 116, 127, 117, 116, 111, 111, 116, 124, 115, 120, 117, 100, 112, 120, 117, 115, 119, 104, 130, 111, 115, 114, 121, 115, 110, 119, 118, 102, 110, 123, 115, 119, 114, 121, 113, 105, 119, 116, 122, 110, 117, 119, 107, 115, 116, 115, 115, 121, 116, 109, 110, 122, 126, 120, 111, 117, 107, 117, 114, 146, 116, 119, 126, 109, 122, 118, 119, 114, 117, 123, 115, 111, 107, 129, 118, 130, 109, 122, 113, 116, 107, 120, 116, 125, 109, 108, 101, 119, 119, 98, 126, 116, 108, 120, 131, 106, 103, 116, 110, 115, 116, 113, 116, 110, 108, 114, 107, 127, 94, 107, 113, 126, 113, 114, 123, 115, 115, 111, 116, 120, 122, 111, 112, 116, 107, 111, 128, 106, 122, 110, 112, 117, 124, 123, 122, 123, 98, 117, 114, 110, 116, 117, 109, 117, 119, 117, 120, 121, 124, 112, 130, 123, 119, 117, 112, 103, 101, 124, 131, 118, 117, 118, 119, 106, 108, 115, 108, 118, 126, 111, 109, 124, 123, 113, 119, 112, 115, 123, 132, 115, 117, 111, 106, 115, 124, 119, 117, 122, 120, 131, 111, 117, 135, 118, 112, 109, 127, 125, 107, 118, 111, 122, 114, 121, 124, 108, 119, 112, 117, 117, 110, 117, 113, 126, 118, 127, 123, 108, 113, 104, 105, 128, 123, 116, 127, 130, 124, 104, 116, 128, 110, 112, 115, 117, 110, 113, 105, 121, 114, 115, 112, 112, 103, 122, 119, 124, 108, 117, 107, 112, 110, 119, 110, 120, 119, 119, 119, 117, 118, 119, 107, 116, 106, 115, 116, 111, 125, 112, 119, 113, 112, 116, 106, 119, 118, 113, 100, 128, 117, 106, 106, 130, 109, 109, 105, 126, 109, 129, 109, 109, 102, 126, 113, 113, 108, 123, 113, 108, 124, 119, 110, 119, 109, 119, 118, 109, 127, 112, 132, 116, 124, 116, 115, 104, 115, 126, 104, 118, 107, 110, 125, 123, 111, 105, 121, 120, 121, 120, 116, 107, 107, 116, 108, 107, 120, 113, 109, 113, 110, 124, 117, 109, 98, 112, 125, 116, 125, 124, 119, 117, 120, 119, 127, 106, 117, 115, 113, 105, 110, 115, 123, 111, 118, 101, 115, 110, 112, 132, 125, 118, 116, 121, 117, 108, 115, 128, 114, 113, 110, 113, 117, 116, 105, 117, 120, 119, 124, 111, 113, 119, 116, 132, 132, 116, 109, 100, 112, 130, 116, 114, 113, 114, 136, 114, 107, 103, 116, 126, 119, 124, 105, 106, 122, 111, 102, 115, 116, 104, 124, 110, 110, 108, 117, 127, 106, 123, 131, 123, 103, 104, 133, 106, 106, 105, 124, 121, 117, 114, 127, 115, 117, 111, 110, 110, 103, 119, 109, 130, 108, 117, 108, 119, 127, 106, 124, 120, 115, 110, 113, 110, 116, 125, 116, 114, 116, 110, 114, 119, 103, 120, 124, 105, 110, 113, 117, 110, 115, 123, 111, 112, 115, 117, 115, 115, 113, 111, 106, 114, 106, 114, 118, 120, 111, 115, 122, 113, 110, 107, 124, 82, 134, 125, 109, 108, 105, 126, 128, 104, 108, 107, 108, 115, 108, 109, 121, 122, 112, 111, 125, 112, 104, 120, 111, 117, 118, 104, 124, 105, 113, 105, 111, 110, 122, 118, 115, 103, 118, 133, 123, 121, 114, 111, 116, 103, 130, 107, 106, 114, 102, 133, 104, 135, 113, 103, 117, 120, 111, 124, 118, 111, 113, 127, 115, 108, 103, 116, 117, 112, 120, 127, 118, 91, 123, 125, 110, 112, 106, 124, 99, 113, 105, 108, 117, 102, 110, 119, 129, 125, 122, 120, 112, 107, 112, 117, 116, 118, 119, 132, 120, 108, 121, 133, 113, 111, 115, 113, 116, 113, 106, 126, 104, 121, 113, 102, 123, 111, 115, 121, 124, 119, 127, 118, 109, 98, 121, 106, 118, 114, 109, 96, 113, 122, 110, 121, 118, 111, 116, 126, 120, 115, 116, 120, 104, 113, 119, 105, 116, 104, 117, 123, 112, 109, 119, 118, 109, 135, 116, 111, 115, 114, 114, 123, 110, 118, 112, 119, 112, 119, 128, 124, 102, 116, 114, 119, 115, 111, 113, 107, 115, 130, 117, 113, 121, 117, 114, 120, 104, 132, 107, 108, 121, 112, 109, 131, 120, 123, 115, 107, 122, 121, 113, 108, 118, 115, 105, 118, 131, 109, 108, 119, 134, 118, 114, 126, 105, 102, 116, 119, 113, 115, 110, 97, 119, 129, 111, 113, 112, 113, 108, 119, 113, 114, 120, 109, 111, 129, 119, 116, 118, 125, 115, 115, 114, 108, 127, 117, 117, 83, 123, 131, 109, 113, 104, 120, 113, 134, 122, 117, 117, 120, 115, 108, 114, 116, 119, 106, 107, 115, 112, 112, 102, 109, 118, 114, 125, 121, 111, 100, 123, 109, 116, 135, 119, 121, 126, 116, 96, 107, 104, 116, 111, 110, 116, 118, 113, 109, 107, 103, 110, 122, 122, 99, 115, 111, 138, 115, 135, 109, 119, 115, 101, 119, 115, 105, 122, 114, 103, 121, 121, 116, 114, 138, 114, 118, 116, 92, 116, 117, 111, 114, 107, 100, 106, 123, 114, 113, 101, 111, 107, 108, 120, 106, 115, 116, 110, 126, 130, 107, 115, 108, 122, 127, 113, 115, 128, 133, 127, 121, 117, 109, 117, 113, 118, 116, 117, 112, 122, 117, 123, 119, 115, 112, 121, 111, 119, 134, 103, 112, 109, 117, 119, 136, 117, 109, 122, 122, 115, 120, 108, 116, 110, 118, 103, 113, 112, 122, 128, 105, 133, 121, 115, 102, 126, 121, 123, 103, 107, 118, 108, 117, 109, 98, 111, 104, 122, 113, 106, 124, 114, 116, 113, 117, 119, 128, 105, 121, 121, 114, 107, 108, 114, 113, 104, 116, 101, 124, 107, 120, 109, 109, 113, 100, 110, 90, 105, 117, 116, 116, 109, 119, 110, 123, 119, 125, 125, 111, 125, 124, 112, 134, 118, 119, 113, 116, 117, 110, 119, 120, 109, 108, 117, 108, 112, 110, 120, 106, 110, 111, 106, 117, 131, 117, 113, 101, 107, 105, 123, 128, 110, 123, 116, 121, 110, 132, 114, 116, 114, 112, 125, 122, 114, 115, 107, 104, 119, 101, 115, 121, 114, 124, 107, 119, 115, 126, 117, 115, 120, 116, 110, 118, 108, 127, 115, 126, 128, 115, 130, 111, 107, 114, 131, 121, 126, 115, 110, 114, 117, 107, 115, 98, 112, 108, 102, 102, 110, 123, 118, 106, 111, 118, 107, 106, 127, 113, 121, 112, 105, 109, 104, 102, 119, 112, 126, 124, 113, 121, 114, 103, 110, 119, 103, 98, 119, 111, 102, 107, 110, 114, 108, 109, 120, 104, 122, 109, 118, 108, 114, 114, 121, 103, 104, 109, 128, 110, 107, 110, 126, 115, 130, 124, 117, 115, 116, 100, 103, 125, 120, 112, 116, 109, 114, 105, 115, 118, 111, 116, 114, 96, 115, 131, 108, 123, 104, 119, 122, 118, 104, 111, 119, 123, 111, 118, 122, 111, 109, 115, 111, 127, 115, 109, 115, 105, 130, 122, 123, 132, 120, 140, 107, 120, 106, 125, 108, 123, 113, 111, 139, 116, 107, 107, 115, 96, 120, 108, 108, 118, 105, 113, 109, 115, 115, 121, 109, 112, 107, 118, 116, 102, 122, 118, 118, 111, 117, 124, 113, 107, 125, 113, 110, 115, 118, 126, 114, 112, 122, 121, 126, 116, 129, 113, 99, 107, 104, 129, 111, 103, 103, 117, 110, 111, 121, 124, 122, 106, 125, 108, 125, 97, 121, 112, 117, 123, 123, 114, 116, 121, 113, 124, 114, 119, 124, 113, 128, 119, 122, 117, 112, 100, 110, 112, 111, 114, 119, 109, 122, 112, 117, 125, 117, 120, 113, 104, 107, 114, 115, 102, 116, 129, 115, 118, 121, 100, 119, 104, 120, 114, 111, 116, 101, 107, 119, 122, 122, 112, 129, 104, 127, 122, 126, 117, 112, 101, 117, 114, 110, 117, 110, 101, 102, 126, 119, 105, 112, 109, 126, 103, 106, 113, 133, 101, 113, 120, 100, 119, 115, 123, 115, 115, 124, 129, 125, 110, 108, 124, 131, 114, 133, 122, 117, 113, 117, 121, 130, 124, 122, 117, 120, 111, 115, 113, 112, 111, 122, 93, 107, 103, 111, 116, 120, 111, 126, 125, 93, 126, 104, 114, 106, 125, 117, 105, 124, 113, 120, 91, 101, 114, 108, 119, 120, 111, 113, 113, 118, 113, 100, 125, 121, 117, 121, 118, 121, 109, 124, 128, 120, 118, 99, 123, 106, 104, 105, 115, 103, 119, 98, 103, 114, 117, 120, 109, 101, 98, 108, 123, 111, 107, 128, 104, 125, 112, 115, 107, 107, 115, 132, 107, 122, 109, 108, 128, 111, 109, 120, 123, 119, 111, 127, 109, 109, 131, 119, 107, 118, 105, 124, 114, 103, 107, 110, 112, 106, 123, 128, 110, 125, 95, 112, 128, 120, 120, 113, 109, 112, 114, 135, 104, 121, 128, 108, 119, 125, 113, 137, 112, 111, 118, 117, 110, 122, 98, 109, 107, 114, 101, 127, 113, 104, 123, 110, 122, 101, 107, 103, 101, 94, 112, 122, 124, 115, 110, 107, 102, 134, 118, 128, 118, 132, 120, 114, 123, 108, 106, 97, 144, 107, 125, 116, 108, 130, 118, 107, 111, 111, 112, 113, 112, 113, 123, 101, 119, 128, 105, 122, 117, 119, 109, 110, 144, 113, 99, 98, 105, 126, 112, 117, 118, 113, 115, 114, 115, 136, 119, 114, 117, 114, 117, 122, 121, 116, 113, 116, 117, 119, 115, 116, 110, 107, 111, 105, 103, 109, 116, 115, 111, 112, 114, 118, 117, 113, 122, 120, 138, 118, 128, 111, 129, 96, 122, 116, 113, 124, 120, 107, 113, 104, 123, 120, 107, 128, 109, 124, 114, 113, 124, 120, 111, 111, 120, 114, 122, 115, 112, 116, 115, 120, 116, 118, 117, 106, 115, 113, 119, 115, 114, 111, 118, 114, 111, 112, 119, 113, 117, 116, 121, 116, 114, 117, 117, 111, 122, 109, 118, 128, 113, 120, 122, 109, 117, 118, 126, 129, 125, 115, 107, 112, 103, 119, 121, 105, 115, 109, 108, 103, 109, 114, 118, 114, 106, 120, 108, 104, 114, 115, 107, 107, 121, 117, 120, 117, 119, 119, 114, 128, 120, 114, 120, 111, 113, 111, 119, 115, 121, 105, 107, 113, 116, 119, 124, 126, 121, 118, 113, 120, 139, 113, 118, 112, 106, 119, 116, 120, 128, 117, 102, 112, 108, 120, 118, 113, 113, 110, 114, 121, 110, 113, 119, 117, 111, 105, 111, 127, 108, 116, 111, 110, 105, 124, 130, 117, 109, 115, 117, 125, 119, 102, 122, 121, 120, 114, 118, 109, 111, 120, 114, 123, 112, 113, 118, 107, 116, 114, 113, 121, 115, 110, 113, 119, 139, 104, 121, 108, 115, 107, 117, 111, 118, 116, 119, 111, 125, 116, 115, 116, 117, 118, 119, 121, 110, 120, 116, 113, 126, 113, 132, 109, 113, 121, 111, 116, 106, 111, 109, 124, 113, 111, 107, 111, 113, 116, 118, 143, 118, 105, 100, 115, 117, 111, 106, 116, 118, 107, 117, 114, 113, 110, 108, 116, 119, 117, 120, 106, 122, 102, 121, 126, 114, 116, 115, 107, 111, 113, 123, 103, 92, 113, 105, 117, 116, 114, 118, 123, 122, 115, 113, 106, 117, 101, 117, 119, 113, 104, 116, 107, 123, 114, 121, 111, 115, 121, 108, 121, 115, 106, 110, 115, 120, 123, 112, 112, 117, 115, 119, 113, 116, 139, 113, 122, 117, 124, 107, 135, 113, 107, 118, 116, 124, 114, 113, 112, 115, 121, 127, 101, 119, 117, 113, 109, 121, 114, 119, 109, 126, 118, 112, 117, 128, 119, 112, 123, 113, 117, 103, 121, 118, 117, 103, 114, 117, 127, 109, 118, 114, 121, 117, 100, 112, 113, 110, 123, 117, 111, 110, 120, 107, 120, 117, 117, 118, 107, 112, 110, 135, 125, 117, 117, 119, 113, 119, 100, 102, 113, 116, 114, 111, 128, 140, 112, 115, 113, 106, 124, 118, 108, 112, 116, 113, 111, 113, 120, 106, 122, 115, 117, 111, 113, 104, 114, 114, 115, 117, 120, 129, 120, 108, 114, 111, 122, 114, 110, 111, 111, 119, 111, 125, 111, 116, 110, 128, 109, 118, 117, 116, 120, 113, 116, 131, 107, 117, 118, 116, 121, 109, 117, 116, 123, 114, 108, 113, 108, 113, 136, 127, 117, 118, 138, 118, 108, 125, 104, 103, 118, 107, 126, 118, 123, 116, 116, 109, 122, 128, 115, 128, 118, 116, 111, 117, 111, 104, 120, 118, 107, 112, 109, 108, 100, 109, 115, 108, 117, 108, 127, 115, 108, 116, 108, 113, 110, 119, 130, 112, 111, 94, 115, 113, 125, 108, 116, 122, 113, 128, 118, 119, 116, 140, 113, 123, 108, 105, 111, 116, 133, 116, 136, 110, 118, 114, 119, 111, 119, 113, 113, 115, 115, 102, 109, 98, 112, 112, 110, 113, 111, 120, 116, 122, 115, 118, 108, 113, 110, 115, 122, 108, 111, 117, 106, 107, 118, 111, 118, 107, 116, 121, 119, 116, 105, 122, 112, 113, 110, 120, 119, 111, 112, 110, 131, 113, 117, 130, 118, 126, 119, 115, 113, 122, 108, 102, 116, 133, 116, 113, 109, 117, 113, 118, 118, 112, 112, 128, 115, 117, 118, 115, 113, 102, 124, 115, 117, 112, 128, 100, 117, 106, 118, 115, 108, 117, 123, 113, 114, 116, 118, 103, 118, 123, 119, 117, 124, 116, 124, 115, 100, 112, 115, 123, 109, 104, 108, 111, 104, 116, 122, 111, 120, 115, 122, 123, 117, 109, 105, 100, 117, 118, 122, 120, 109, 110, 98, 124, 124, 111, 118, 120, 115, 116, 126, 108, 124, 103, 117, 112, 120, 124, 116, 112, 118, 117, 122, 102, 116, 119, 129, 112, 130, 113, 121, 111, 113, 120, 111, 111, 109, 116, 115, 98, 119, 113, 88, 102, 117, 122, 116, 118, 118, 113, 115, 110, 116, 117, 122, 137, 109, 116, 115, 118, 118, 122, 119, 117, 106, 120, 127, 119, 123, 95, 117, 114, 124, 120, 117, 119, 117, 110, 108, 115, 106, 128, 113, 125, 115, 111, 122, 115, 115, 119, 118, 124, 111, 122, 134, 126, 94, 114, 118, 105, 112, 104, 121, 134, 114, 107, 110, 114, 115, 102, 77, 116, 114, 120, 110, 127, 125, 118, 117, 101, 113, 116, 111, 116, 136, 114, 117, 122, 118, 114, 127, 109, 107, 118, 100, 109, 123, 114, 114, 119, 127, 108, 113, 116, 104, 112, 119, 118, 116, 121, 107, 117, 110, 118, 103, 115, 120, 119, 115, 115, 117, 117, 123, 112, 112, 118, 124, 104, 108, 114, 102, 123, 120, 118, 115, 117, 107, 109, 109, 113, 120, 119, 129, 114, 105, 108, 101, 115, 109, 118, 118, 118, 105, 120, 117, 102, 110, 116, 112, 114, 110, 130, 122, 121, 113, 116, 119, 129, 102, 122, 111, 113, 125, 127, 127, 105, 116, 114, 119, 109, 115, 112, 119, 125, 116, 120, 127, 109, 118, 115, 109, 109, 113, 111, 129, 123, 120, 96, 120, 105, 120, 120, 131, 115, 117, 124, 120, 111, 106, 116, 121, 101, 123, 119, 110, 103, 125, 122, 110, 111, 115, 142, 92, 121, 114, 101, 109, 119, 107, 114, 118, 122, 98, 115, 115, 118, 118, 109, 125, 118, 114, 116, 119, 114, 115, 121, 128, 109, 119, 118, 120, 112, 118, 109, 108, 113, 121, 121, 118, 112, 128, 109, 108, 106, 117, 120, 118, 117, 117, 137, 115, 113, 108, 123, 115, 108, 112, 118, 109, 118, 128, 119, 109, 119, 130, 118, 136, 105, 113, 108, 106, 114, 111, 121, 130, 112, 112, 111, 123, 115, 105, 108, 105, 125, 113, 111, 112, 120, 134, 125, 103, 126, 126, 109, 112, 110, 137, 102, 112, 123, 112, 119, 123, 106, 108, 102, 98, 107, 115, 118, 121, 113, 126, 111, 118, 107, 111, 115, 124, 128, 107, 109, 106, 119, 111, 120, 111, 130, 118, 113, 113, 128, 107, 113, 113, 118, 102, 107, 104, 106, 112, 123, 115, 111, 105, 111, 108, 111, 114, 123, 115, 121, 105, 103, 131, 106, 112, 104, 102, 115, 119, 110, 129, 110, 118, 111, 108, 108, 105, 126, 119, 116, 110, 111, 109, 106, 94, 111, 129, 109, 126, 109, 129, 117, 114, 114, 112, 127, 122, 118, 111, 127, 119, 117, 104, 121, 118, 123, 101, 115, 90, 124, 116, 111, 103, 108, 122, 128, 109, 129, 102, 104, 129, 121, 120, 113, 112, 103, 116, 118, 111, 105, 112, 114, 115, 114, 106, 106, 114, 119, 120, 130, 126, 110, 119, 117, 114, 107, 114, 110, 134, 105, 115, 116, 119, 113, 125, 117, 114, 123, 122, 127, 120, 110, 103, 115, 122, 109, 105, 104, 110, 104, 121, 107, 125, 109, 104, 122, 117, 127, 115, 117, 136, 118, 92, 112, 112, 120, 120, 125, 111, 121, 109, 115, 120, 116, 103, 110, 107, 112, 109, 100, 110, 97, 134, 119, 127, 100, 103, 113, 117, 118, 118, 115, 118, 116, 113, 109, 116, 127, 117, 104, 113, 119, 119, 124, 130, 109, 105, 110, 106, 120, 126, 107, 96, 129, 101, 124, 118, 128, 107, 113, 115, 105, 117, 108, 131, 108, 113, 108, 112, 100, 109, 131, 138, 128, 110, 128, 121, 102, 126, 118, 119, 106, 111, 103, 114, 125, 117, 92, 115, 133, 123, 113, 121, 109, 119, 105, 111, 112, 118, 122, 119, 93, 107, 115, 95, 109, 115, 123, 131, 113, 124, 118, 112, 123, 114, 114, 106, 120, 118, 113, 113, 98, 110, 115, 107, 121, 95, 111, 117, 123, 106, 119, 115, 103, 118, 105, 127, 123, 126, 112, 122, 128, 126, 109, 101, 109, 106, 130, 116, 106, 115, 125, 116, 126, 125, 114, 114, 118, 110, 131, 110, 122, 133, 97, 95, 123, 114, 117, 105, 116, 109, 119, 120, 119, 103, 114, 104, 109, 127, 128, 121, 117, 113, 121, 116, 107, 118, 110, 116, 119, 116, 131, 114, 104, 106, 120, 117, 109, 107, 127, 117, 107, 111, 99, 122, 112, 128, 116, 110, 118, 118, 119, 102, 122, 112, 114, 109, 104, 123, 112, 119, 100, 111, 99, 125, 107, 112, 130, 130, 111, 102, 128, 118, 128, 108, 97, 114, 110, 113, 100, 100, 103, 131, 126, 112, 115, 114, 114, 125, 113, 124, 97, 122, 112, 112, 109, 101, 137, 145, 106, 117, 116, 118, 116, 107, 98, 116, 116, 105, 105, 114, 103, 114, 127, 119, 116, 138, 100, 104, 135, 116, 115, 111, 124, 118, 108, 114, 108, 137, 107, 99, 118, 130, 111, 104, 125, 107, 112, 111, 112, 110, 112, 111, 109, 122, 129, 128, 109, 119, 119, 118, 109, 118, 118, 117, 113, 109, 130, 116, 113, 107, 119, 111, 120, 108, 122, 116, 120, 127, 113, 114, 117, 115, 116, 119, 114, 115, 120, 118, 102, 112, 118, 112, 98, 124, 107, 121, 103, 112, 117, 128, 126, 129, 115, 121, 111, 114, 117, 120, 126, 120, 125, 113, 120, 120, 117, 119, 105, 115, 120, 126, 119, 114, 119, 119, 113, 112, 108, 116, 124, 117, 114, 116, 126, 106, 115, 109, 113, 118, 120, 116, 109, 109, 109, 113, 119, 105, 113, 106, 105, 86, 125, 118, 113, 108, 116, 119, 125, 108, 115, 115, 121, 99, 111, 124, 117, 117, 115, 108, 117, 120, 123, 117, 116, 109, 113, 119, 117, 121, 104, 109, 101, 125, 116, 128, 117, 105, 119, 110, 107, 118, 119, 114, 117, 95, 124, 120, 112, 114, 109, 112, 108, 118, 112, 116, 115, 114, 117, 118, 114, 109, 124, 107, 112, 115, 117, 122, 122, 117, 114, 118, 120, 121, 116, 112, 118, 127, 126, 107, 125, 110, 119, 111, 119, 114, 96, 99, 126, 116, 119, 100, 108, 107, 125, 113, 113, 111, 114, 108, 117, 117, 119, 119, 116, 117, 117, 130, 124, 116, 104, 121, 117, 115, 115, 115, 111, 118, 117, 115, 111, 117, 123, 120, 120, 113, 117, 104, 119, 113, 127, 115, 101, 133, 114, 118, 116, 114, 117, 106, 120, 110, 101, 105, 112, 108, 106, 127, 106, 115, 117, 112, 105, 119, 119, 117, 114, 94, 102, 119, 112, 126, 116, 106, 113, 116, 111, 110, 101, 118, 119, 126, 112, 105, 111, 100, 119, 117, 120, 114, 113, 104, 122, 119, 124, 106, 121, 117, 98, 116, 103, 111, 109, 121, 120, 110, 115, 109, 107, 118, 118, 115, 117, 95, 113, 112, 114, 110, 120, 108, 116, 112, 111, 104, 123, 113, 105, 105, 108, 118, 115, 115, 113, 130, 109, 117, 114, 113, 111, 116, 116, 112, 124, 121, 112, 107, 111, 114, 112, 123, 102, 132, 114, 106, 108, 116, 117, 123, 105, 114, 115, 112, 115, 121, 114, 106, 119, 114, 119, 111, 107, 118, 107, 120, 116, 114, 118, 125, 106, 115, 109, 118, 119, 119, 123, 120, 115, 124, 117, 114, 121, 114, 111, 107, 119, 101, 117, 110, 113, 112, 121, 121, 98, 111, 123, 108, 119, 113, 119, 112, 115, 120, 119, 110, 115, 120, 101, 119, 114, 115, 111, 122, 115, 110, 117, 116, 105, 120, 111, 115, 117, 107, 102, 108, 119, 119, 120, 111, 120, 132, 113, 113, 114, 109, 118, 114, 117, 112, 105, 111, 106, 120, 110, 115, 114, 115, 110, 112, 109, 115, 106, 107, 109, 113, 110, 114, 125, 116, 105, 115, 119, 117, 113, 116, 112, 112, 111, 111, 115, 110, 109, 128, 104, 120, 120, 127, 109, 110, 106, 114, 109, 118, 105, 119, 119, 121, 121, 117, 115, 129, 116, 119, 120, 111, 106, 103, 120, 117, 118, 100, 112, 118, 114, 132, 108, 108, 119, 115, 121, 111, 118, 115, 125, 113, 105, 125, 115, 115, 115, 121, 105, 115, 113, 106, 130, 118, 119, 116, 124, 114, 114, 112, 113, 138, 99, 113, 119, 113, 124, 122, 123, 108, 111, 121, 116, 117, 118, 116, 124, 117, 117, 137, 123, 117, 116, 114, 117, 114, 107, 112, 110, 108, 123, 117, 122, 115, 113, 106, 120, 118, 109, 116, 125, 122, 112, 125, 116, 121, 113, 114, 117, 109, 115, 133, 118, 106, 113, 106, 129, 107, 110, 115, 108, 117, 118, 119, 116, 105, 118, 120, 111, 111, 114, 111, 115, 112, 116, 125, 126, 116, 115, 115, 118, 106, 117, 107, 109, 115, 110, 120, 112, 101, 124, 113, 122, 107, 113, 124, 114, 118, 114, 120, 110, 119, 114, 116, 112, 117, 116, 109, 131, 118, 117, 108, 116, 120, 121, 110, 113, 116, 120, 109, 124, 97, 116, 113, 114, 117, 108, 108, 113, 113, 116, 114, 116, 115, 113, 112, 121, 106, 107, 109, 105, 114, 121, 108, 115, 118, 120, 118, 121, 117, 111, 110, 120, 105, 161, 111, 107, 119, 97, 115, 108, 127, 115, 124, 114, 109, 112, 128, 119, 114, 116, 105, 113, 111, 110, 104, 114, 104, 117, 121, 110, 114, 112, 105, 112, 117, 110, 125, 117, 109, 115, 119, 123, 119, 116, 116, 109, 115, 116, 114, 115, 123, 121, 106, 113, 123, 120, 96, 108, 106, 110, 111, 122, 115, 109, 127, 103, 127, 118, 128, 117, 108, 115, 110, 108, 96, 106, 116, 123, 127, 117, 120, 117, 117, 115, 101, 120, 130, 119, 121, 117, 121, 96, 115, 108, 118, 120, 115, 106, 118, 114, 122, 113, 116, 111, 111, 113, 120, 112, 109, 118, 107, 116, 107, 133, 119, 125, 114, 101, 107, 112, 120, 116, 112, 98, 113, 117, 112, 119, 103, 112, 114, 109, 119, 111, 108, 117, 125, 116, 114, 114, 110, 123, 113, 91, 115, 117, 111, 113, 112, 123, 121, 122, 110, 139, 111, 120, 136, 115, 120, 116, 120, 110, 116, 106, 108, 113, 119, 115, 112, 123, 113, 114, 122, 117, 113, 123, 116, 115, 116, 121, 111, 109, 131, 113, 110, 114, 116, 109, 124, 117, 136, 115, 114, 114, 114, 104, 113, 111, 114, 121, 106, 108, 125, 127, 117, 121, 104, 113, 114, 108, 119, 115, 108, 116, 118, 116, 118, 116, 109, 115, 116, 106, 103, 120, 111, 123, 117, 132, 121, 105, 120, 115, 116, 112, 101, 108, 116, 112, 120, 105, 130, 112, 105, 120, 126, 114, 114, 112, 114, 115, 113, 112, 119, 114, 111, 107, 122, 110, 99, 114, 119, 115, 134, 122, 147, 125, 112, 122, 128, 122, 126, 115, 123, 113, 121, 114, 113, 124, 113, 115, 114, 100, 122, 113, 127, 125, 117, 123, 119, 114, 120, 109, 107, 113, 121, 121, 110, 119, 120, 113, 116, 114, 111, 103, 111, 120, 111, 117, 113, 119, 115, 116, 115, 122, 110, 104, 114, 117, 123, 112, 112, 120, 118, 123, 110, 117, 117, 109, 111, 112, 126, 109, 107, 122, 102, 117, 109, 125, 122, 105, 113, 118, 96, 123, 120, 105, 116, 108, 117, 106, 120, 110, 114, 122, 116, 141, 134, 112, 131, 106, 131, 114, 123, 132, 112, 111, 115, 114, 110, 137, 136, 119, 135, 117, 120, 118, 117, 133, 96, 104, 112, 122, 113, 114, 122, 166, 104, 128, 117, 106, 120, 113, 115, 118, 111, 140, 113, 123, 105, 118, 119, 108, 119, 133, 89, 112, 120, 104, 124, 114, 119, 114, 110, 120, 116, 109, 89, 114, 118, 110, 105, 110, 124, 111, 117, 105, 119, 95, 125, 120, 97, 94, 112, 109, 104, 113, 118, 107, 124, 123, 110, 109, 120, 103, 119, 115, 99, 105, 119, 128, 117, 136, 111, 131, 122, 98, 126, 130, 114, 120, 126, 120, 112, 118, 114, 116, 105, 103, 120, 111, 102, 97, 114, 109, 128, 111, 119, 115, 121, 97, 118, 120, 129, 91, 97, 120, 112, 122, 131, 103, 125, 120, 104, 114, 117, 113, 134, 124, 114, 112, 109, 119, 109, 109, 126, 114, 115, 110, 112, 138, 120, 79, 101, 100, 97, 112, 106, 124, 112, 115, 107, 106, 119, 117, 133, 99, 96, 106, 108, 126, 118, 118, 117, 109, 106, 107, 123, 115, 101, 102, 100, 122, 136, 113, 121, 126, 115, 86, 103, 122, 120, 97, 102, 126, 123, 124, 131, 127, 113, 106, 119, 131, 113, 115, 110, 113, 121, 122, 94, 120, 123, 98, 108, 108, 110, 112, 120, 115, 111, 110, 127, 121, 116, 105, 112, 110, 117, 101, 94, 82, 112, 114, 118, 119, 115, 120, 119, 131, 120, 90, 126, 123, 112, 116, 118, 126, 105, 116, 108, 97, 129, 113, 115, 105, 127, 127, 132, 116, 95, 123, 124, 118, 132, 110, 127, 105, 109, 99, 112, 117, 117, 112, 119, 119, 105, 97, 118, 118, 110, 111, 100, 110, 117, 114, 128, 119, 118, 131, 137, 96, 119, 100, 112, 118, 104, 115, 106, 131, 135, 111, 116, 111, 110, 122, 116, 154, 103, 138, 113, 127, 103, 104, 107, 129, 120, 115, 114, 109, 100, 113, 139, 139, 104, 93, 110, 127, 112, 105, 110, 112, 94, 103, 112, 102, 118, 88, 117, 114, 118, 92, 92, 117, 111, 113, 136, 104, 106, 115, 129, 120, 120, 127, 117, 109, 107, 108, 124, 111, 116, 113, 123, 117, 118, 116, 112, 112, 112, 134, 110, 122, 130, 127, 113, 116, 122, 115, 107, 111, 123, 125, 120, 102, 124, 139, 104, 107, 121, 111, 109, 116, 111, 104, 137, 127, 109, 105, 123, 139, 132, 110, 114, 114, 114, 111, 132, 111, 117, 114, 105, 116, 114, 117, 103, 117, 129, 118, 98, 104, 113, 116, 122, 111, 119, 123, 98, 111, 118, 114, 112, 125, 103, 117, 167, 105, 103, 107, 117, 106, 107, 107, 129, 117, 116, 125, 98, 120, 101, 113, 113, 112, 118, 128, 145, 130, 125, 111, 113, 101, 115, 132, 115, 115, 120, 113, 99, 111, 132, 112, 109, 117, 136, 114, 93, 102, 113, 116, 106, 117, 123, 101, 115, 119, 108, 126, 123, 122, 123, 122, 111, 124, 114, 115, 119, 109, 130, 111, 134, 113, 95, 110, 89, 118, 112, 110, 114, 111, 112, 116, 117, 99, 101, 100, 118, 120, 117, 117, 96, 108, 109, 122, 106, 135, 116, 102, 100, 109, 108, 127, 114, 115, 115, 115, 111, 107, 107, 107, 125, 105, 127, 104, 127, 115, 108, 118, 107, 116, 112, 120, 115, 121, 100, 113, 109, 121, 136, 120, 115, 108, 120, 104, 115, 120, 108, 119, 112, 122, 109, 102, 114, 103, 110, 117, 107, 106, 117, 116, 126, 115, 121, 111, 109, 114, 105, 121, 111, 115, 130, 106, 111, 115, 103, 122, 110, 111, 126, 113, 113, 133, 117, 108, 115, 107, 116, 118, 108, 115, 113, 123, 117, 107, 111, 114, 112, 126, 112, 119, 114, 117, 107, 119, 109, 112, 131, 124, 111, 114, 91, 108, 124, 127, 121, 119, 116, 123, 111, 117, 100, 125, 117, 120, 118, 103, 120, 113, 111, 121, 128, 114, 110, 99, 126, 107, 112, 104, 114, 140, 104, 135, 118, 119, 120, 126, 111, 103, 118, 108, 115, 107, 110, 114, 114, 140, 115, 123, 106, 119, 135, 128, 103, 119, 110, 93, 120, 118, 99, 118, 129, 125, 111, 119, 111, 102, 109, 107, 104, 124, 126, 122, 124, 117, 101, 105, 123, 116, 110, 114, 119, 126, 114, 113, 120, 115, 118, 101, 102, 110, 112, 96, 113, 121, 106, 121, 111, 115, 107, 109, 130, 121, 113, 112, 123, 125, 132, 96, 111, 106, 111, 114, 129, 132, 122, 112, 103, 103, 122, 120, 118, 107, 99, 108, 137, 101, 110, 112, 117, 115, 127, 114, 105, 122, 106, 121, 120, 97, 104, 114, 118, 98, 110, 129, 117, 108, 103, 124, 104, 114, 115, 101, 126, 115, 135, 85, 108, 116, 111, 110, 130, 115, 115, 110, 106, 104, 123, 99, 113, 117, 101, 119, 101, 146, 126, 94, 114, 109, 100, 115, 120, 116, 132, 114, 105, 115, 112, 109, 105, 105, 107, 128, 119, 129, 98, 120, 116, 119, 124, 108, 125, 110, 112, 111, 121, 125, 115, 112, 107, 114, 110, 106, 115, 111, 108, 119, 115, 127, 107, 92, 99, 114, 118, 111, 116, 116, 112, 126, 106, 115, 112, 108, 112, 116, 138, 116, 113, 120, 108, 106, 115, 107, 108, 115, 119, 110, 100, 99, 117, 137, 105, 112, 118, 124, 120, 119, 119, 104, 121, 128, 104, 127, 114, 127, 108, 111, 120, 107, 141, 125, 119, 108, 128, 125, 121, 103, 110, 113, 113, 105, 113, 110, 111, 126, 105, 138, 117, 121, 105, 113, 96, 119, 111, 105, 138, 123, 108, 101, 110, 128, 136, 107, 108, 117, 118, 109, 123, 124, 108, 114, 111, 119, 105, 122, 107, 110, 117, 113, 110, 93, 114, 124, 113, 122, 109, 121, 125, 118, 89, 127, 114, 114, 120, 113, 112, 105, 110, 112, 126, 112, 127, 103, 120, 109, 113, 117, 125, 106, 120, 133, 103, 104, 106, 107, 106, 110, 120, 103, 119, 110, 120, 120, 118, 121, 114, 116, 107, 120, 104, 104, 111, 125, 115, 113, 109, 112, 121, 132, 112, 126, 120, 118, 117, 118, 103, 106, 109, 123, 118, 134, 124, 111, 109, 115, 110, 112, 103, 107, 114, 120, 110, 101, 110, 123, 119, 119, 115, 81, 116, 121, 116, 102, 117, 121, 117, 125, 108, 103, 105, 132, 116, 112, 114, 122, 117, 117, 125, 113, 107, 122, 112, 105, 120, 122, 110, 119, 119, 121, 112, 123, 110, 122, 117, 115, 128, 112, 114, 118, 105, 113, 120, 126, 116, 114, 122, 119, 116, 116, 105, 110, 117, 112, 123, 115, 103, 122, 120, 106, 129, 115, 105, 113, 112, 118, 122, 112, 128, 110, 115, 103, 120, 122, 119, 110, 110, 117, 110, 115, 100, 106, 116, 118, 108, 113, 107, 120, 101, 118, 109, 119, 94, 121, 119, 115, 119, 106, 117, 113, 114, 120, 112, 119, 108, 115, 106, 115, 119, 116, 110, 113, 114, 119, 118, 114, 116, 110, 123, 119, 113, 100, 115, 111, 112, 107, 120, 124, 114, 117, 125, 120, 116, 115, 118, 119, 112, 112, 112, 118, 117, 112, 119, 110, 112, 114, 113, 116, 116, 114, 116, 108, 109, 113, 112, 119, 109, 118, 118, 121, 119, 109, 114, 120, 124, 102, 112, 118, 114, 117, 121, 109, 120, 111, 108, 119, 128, 113, 108, 105, 110, 111, 111, 117, 115, 120, 120, 117, 108, 112, 110, 114, 119, 127, 114, 103, 103, 111, 116, 109, 113, 116, 116, 106, 122, 117, 130, 123, 115, 84, 120, 118, 115, 119, 114, 117, 132, 119, 113, 113, 106, 120, 119, 116, 120, 117, 111, 111, 120, 123, 124, 120, 123, 91, 114, 126, 122, 125, 112, 126, 114, 120, 113, 120, 112, 108, 115, 134, 112, 110, 126, 115, 105, 115, 108, 107, 117, 121, 112, 133, 106, 107, 106, 112, 125, 125, 125, 126, 114, 134, 109, 117, 123, 110, 121, 118, 106, 117, 111, 111, 115, 118, 103, 112, 111, 110, 110, 109, 120, 121, 124, 122, 105, 116, 116, 109, 124, 122, 126, 119, 115, 113, 154, 108, 122, 110, 113, 115, 115, 112, 110, 111, 108, 124, 105, 111, 109, 111, 114, 112, 109, 127, 117, 125, 125, 121, 80, 113, 109, 112, 123, 116, 105, 108, 116, 104, 116, 133, 112, 118, 105, 107, 112, 107, 120, 123, 118, 115, 122, 115, 101, 121, 117, 117, 116, 109, 107, 108, 118, 108, 109, 121, 110, 117, 106, 112, 117, 113, 114, 120, 117, 108, 118, 115, 120, 113, 120, 115, 119, 109, 110, 116, 119, 123, 123, 108, 111, 113, 109, 109, 128, 117, 117, 102, 124, 111, 114, 110, 104, 121, 117, 117, 115, 112, 107, 106, 109, 104, 117, 111, 124, 121, 113, 114, 102, 135, 119, 116, 118, 112, 119, 106, 128, 104, 114, 116, 127, 113, 121, 114, 108, 122, 115, 116, 109, 113, 110, 112, 108, 113, 98, 129, 116, 115, 123, 118, 108, 122, 114, 122, 119, 111, 103, 114, 118, 105, 118, 117, 112, 117, 111, 108, 121, 112, 121, 120, 115, 124, 107, 112, 129, 116, 108, 113, 112, 112, 108, 116, 116, 114, 127, 110, 110, 115, 112, 117, 121, 117, 112, 113, 121, 111, 115, 125, 102, 122, 114, 114, 114, 112, 117, 114, 104, 118, 107, 124, 110, 125, 110, 106, 119, 116, 122, 106, 123, 120, 105, 113, 124, 107, 117, 105, 100, 118, 111, 135, 110, 110, 114, 113, 115, 112, 117, 121, 115, 123, 108, 121, 120, 117, 113, 122, 117, 124, 131, 112, 120, 104, 127, 118, 119, 122, 99, 107, 107, 125, 115, 108, 119, 109, 112, 117, 120, 113, 117, 117, 113, 111, 107, 110, 114, 114, 114, 101, 114, 110, 112, 102, 111, 127, 121, 102, 125, 120, 106, 110, 120, 122, 117, 117, 112, 124, 132, 117, 112, 119, 101, 104, 119, 103, 112, 116, 113, 126, 112, 108, 118, 119, 118, 113, 122, 119, 114, 119, 108, 107, 115, 126, 116, 123, 111, 128, 111, 111, 118, 118, 122, 112, 115, 112, 98, 119, 116, 122, 107, 106, 116, 129, 113, 118, 112, 119, 122, 110, 114, 120, 113, 118, 121, 112, 116, 119, 113, 98, 114, 129, 116, 120, 120, 130, 108, 112, 112, 121, 110, 115, 119, 107, 113, 107, 122, 116, 110, 115, 101, 113, 115, 124, 121, 120, 108, 114, 101, 119, 111, 117, 113, 122, 134, 109, 125, 114, 102, 116, 104, 111, 104, 117, 113, 109, 115, 112, 104, 115, 127, 117, 109, 108, 112, 108, 104, 111, 115, 122, 114, 107, 107, 113, 118, 111, 116, 104, 125, 120, 113, 117, 112, 122, 111, 114, 115, 123, 102, 115, 115, 113, 108, 111, 116, 115, 107, 132, 114, 118, 114, 116, 115, 125, 110, 114, 111, 112, 122, 110, 113, 109, 114, 112, 118, 110, 117, 113, 112, 117, 117, 132, 99, 112, 115, 123, 115, 120, 112, 112, 110, 107, 119, 116, 115, 113, 120, 109, 112, 119, 127, 119, 100, 114, 108, 103, 114, 118, 122, 116, 110, 102, 124, 113, 117, 115, 138, 112, 130, 119, 116, 122, 110, 109, 112, 121, 110, 109, 108, 112, 127, 109, 144, 107, 108, 117, 104, 117, 114, 116, 96, 116, 112, 107, 116, 114, 116, 116, 107, 104, 109, 119, 115, 115, 114, 122, 105, 104, 114, 116, 118, 110, 116, 114, 112, 123, 115, 110, 111, 95, 106, 107, 106, 122, 107, 109, 122, 113, 123, 117, 103, 115, 103, 123, 103, 113, 112, 126, 114, 112, 100, 113, 115, 139, 118, 118, 115, 118, 120, 119, 110, 116, 113, 113, 116, 128, 117, 105, 116, 119, 111, 129, 112, 112, 121, 111, 132, 116, 118, 104, 119, 114, 121, 108, 102, 121, 119, 115, 118, 103, 124, 125, 110, 112, 114, 108, 107, 113, 139, 113, 111, 108, 106, 120, 116, 110, 102, 106, 123, 116, 126, 116, 120, 116, 105, 107, 112, 122, 107, 118, 108, 129, 110, 127, 129, 111, 111, 120, 105, 121, 101, 113, 116, 122, 115, 117, 112, 120, 107, 107, 98, 116, 118, 114, 125, 112, 122, 106, 119, 116, 107, 133, 109, 114, 111, 115, 112, 125, 113, 109, 108, 109, 118, 106, 109, 120, 134, 106, 116, 117, 126, 116, 114, 122, 122, 117, 123, 117, 121, 108, 118, 106, 119, 120, 116, 127, 111, 129, 111, 117, 121, 112, 113, 119, 121, 112, 113, 108, 126, 104, 108, 111, 114, 115, 108, 116, 109, 106, 114, 109, 119, 118, 111, 130, 127, 111, 122, 106, 106, 119, 116, 124, 115, 120, 122, 119, 111, 111, 112, 120, 109, 116, 108, 127, 128, 117, 121, 104, 103, 106, 115, 110, 106, 109, 95, 115, 114, 104, 96, 122, 113, 109, 119, 110, 100, 112, 116, 103, 100, 105, 105, 137, 123, 114, 129, 111, 117, 124, 111, 120, 117, 114, 105, 118, 113, 121, 115, 127, 118, 126, 111, 115, 110, 111, 119, 118, 130, 124, 122, 118, 110, 127, 105, 120, 117, 116, 128, 120, 103, 109, 111, 126, 128, 111, 125, 128, 123, 131, 117, 109, 108, 101, 123, 123, 138, 120, 118, 139, 106, 104, 112, 123, 111, 118, 109, 120, 127, 116, 106, 109, 112, 117, 119, 116, 96, 128, 109, 125, 120, 121, 118, 127, 114, 123, 115, 118, 91, 107, 116, 101, 114, 137, 118, 120, 95, 117, 121, 116, 113, 108, 119, 164, 118, 127, 117, 114, 112, 106, 124, 101, 109, 125, 112, 118, 111, 112, 118, 118, 119, 122, 110, 118, 105, 118, 114, 134, 106, 101, 119, 160, 104, 107, 126, 103, 110, 119, 130, 144, 113, 131, 116, 136, 109, 116, 116, 122, 122, 116, 119, 117, 113, 114, 123, 110, 113, 113, 109, 107, 115, 110, 109, 124, 115, 121, 110, 114, 120, 109, 114, 117, 121, 117, 120, 118, 111, 122, 115, 107, 127, 122, 124, 112, 111, 105, 108, 122, 140, 109, 112, 114, 119, 114, 114, 114, 115, 111, 120, 125, 124, 123, 103, 118, 119, 128, 99, 106, 116, 119, 105, 111, 120, 122, 120, 126, 109, 133, 107, 121, 111, 117, 107, 114, 110, 124, 118, 111, 104, 109, 119, 122, 117, 129, 110, 130, 120, 113, 117, 138, 122, 117, 110, 113, 123, 106, 118, 97, 112, 111, 121, 118, 92, 114, 108, 105, 113, 109, 90, 117, 116, 112, 111, 114, 116, 118, 125, 106, 105, 89, 113, 132, 120, 115, 116, 120, 117, 110, 104, 110, 116, 119, 114, 98, 122, 114, 116, 117, 122, 124, 112, 106, 118, 119, 113, 99, 111, 117, 115, 113, 118, 139, 114, 116, 116, 117, 119, 109, 127, 112, 120, 107, 119, 126, 111, 104, 105, 113, 117, 119, 112, 117, 123, 116, 117, 117, 112, 115, 111, 124, 110, 122, 113, 103, 123, 112, 118, 125, 118, 110, 108, 130, 114, 116, 111, 114, 112, 102, 114, 114, 124, 120, 120, 113, 115, 118, 108, 114, 135, 125, 112, 110, 118, 104, 105, 116, 106, 116, 115, 124, 106, 115, 148, 102, 120, 125, 119, 117, 126, 108, 109, 109, 122, 111, 118, 106, 112, 109, 109, 121, 111, 101, 115, 112, 130, 115, 128, 116, 121, 111, 110, 112, 120, 124, 117, 110, 136, 107, 115, 115, 112, 118, 122, 107, 124, 102, 111, 119, 116, 113, 111, 101, 108, 118, 126, 120, 129, 105, 117, 112, 149, 128, 113, 106, 115, 116, 115, 120, 114, 104, 116, 112, 121, 114, 124, 115, 115, 110, 115, 114, 127, 113, 120, 113, 108, 115, 123, 119, 111, 117, 120, 115, 116, 115, 112, 124, 112, 118, 120, 108, 114, 115, 115, 116, 115, 112, 123, 116, 122, 118, 112, 115, 112, 117, 114, 106, 110, 123, 113, 116, 120, 115, 117, 104, 108, 111, 122, 114, 112, 118, 120, 104, 114, 115, 122, 119, 117, 122, 118, 114, 117, 112, 122, 118, 115, 111, 121, 118, 114, 116, 121, 114, 115, 108, 119, 116, 112, 113, 113, 116, 117, 121, 118, 124, 121, 115, 111, 120, 113, 113, 124, 109, 115, 113, 117, 113, 111, 109, 116, 120, 116, 110, 121, 115, 116, 117, 116, 110, 114, 115, 116, 116, 115, 115, 111, 113, 117, 118, 115, 119, 121, 119, 126, 113, 116, 106, 118, 119, 106, 111, 114, 112, 115, 114, 110, 126, 115, 119, 112, 112, 118, 115, 112, 113, 118, 114, 115, 115, 125, 116, 117, 108, 106, 117, 111, 114, 113, 111, 111, 102, 120, 114, 121, 116, 111, 112, 116, 118, 110, 113, 117, 115, 116, 109, 118, 112, 119, 115, 111, 117, 116, 117, 121, 110, 119, 118, 112, 118, 114, 115, 114, 114, 117, 111, 116, 112, 115, 114, 113, 109, 117, 116, 120, 116, 118, 117, 115, 123, 124, 113, 110, 116, 114, 111, 117, 113, 112, 121, 110, 112, 119, 121, 119, 115, 113, 114, 109, 113, 114, 116, 110, 122, 117, 111, 118, 110, 110, 115, 121, 114, 112, 113, 111, 115, 119, 119, 112, 113, 115, 124, 119, 110, 115, 110, 117, 120, 123, 112, 115, 113, 115, 120, 109, 114, 108, 126, 118, 111, 124, 117, 115, 116, 115, 119, 121, 126, 127, 113, 111, 117, 122, 109, 117, 115, 125, 123, 117, 107, 122, 114, 118, 116, 122, 127, 118, 121, 118, 121, 115, 112, 124, 107, 118, 112, 123, 115, 124, 124, 118, 123, 110, 119, 117, 113, 113, 122, 114, 115, 113, 122, 117, 118, 107, 118, 117, 118, 116, 121, 116, 113, 107, 116, 113, 112, 107, 111, 118, 116, 117, 107, 111, 111, 114, 121, 114, 123, 116, 114, 113, 114, 103, 113, 115, 122, 122, 116, 124, 115, 107, 124, 121, 120, 122, 123, 113, 123, 120, 119, 115, 119, 114, 117, 113, 122, 110, 118, 121, 110, 112, 112, 110, 113, 116, 118, 121, 107, 121, 105, 116, 119, 115, 116, 114, 117, 116, 113, 115, 113, 124, 121, 113, 114, 118, 114, 119, 116, 111, 111, 113, 106, 112, 108, 118, 122, 115, 116, 117, 110, 116, 109, 115, 109, 118, 122, 117, 116, 111, 114, 116, 122, 120, 121, 122, 113, 123, 116, 120, 113, 117, 111, 121, 114, 114, 110, 119, 119, 105, 117, 120, 115, 116, 118, 113, 111, 117, 127, 118, 131, 116, 112, 122, 115, 114, 107, 108, 112, 118, 107, 110, 115, 116, 116, 114, 111, 117, 118, 113, 109, 130, 117, 116, 114, 112, 116, 111, 99, 118, 117, 118, 107, 106, 115, 120, 111, 109, 118, 112, 110, 105, 119, 144, 117, 126, 113, 113, 110, 110, 116, 117, 130, 120, 118, 102, 123, 119, 110, 108, 128, 111, 117, 120, 104, 120, 102, 110, 118, 116, 114, 94, 112, 146, 105, 134, 118, 112, 118, 110, 127, 104, 121, 113, 102, 124, 111, 113, 113, 118, 117, 124, 135, 148, 98, 105, 101, 108, 120, 98, 131, 106, 124, 104, 106, 123, 113, 105, 102, 125, 113, 114, 119, 115, 111, 131, 119, 111, 114, 113, 106, 127, 104, 103, 104, 109, 119, 106, 122, 111, 118, 116, 107, 108, 115, 121, 121, 122, 130, 126, 121, 125, 119, 104, 118, 109, 99, 114, 109, 115, 117, 126, 114, 106, 114, 121, 127, 121, 113, 114, 129, 106, 101, 103, 140, 125, 112, 118, 118, 108, 107, 114, 108, 103, 119, 119, 111, 116, 117, 116, 118, 95, 127, 112, 105, 106, 118, 131, 117, 116, 111, 107, 136, 124, 128, 105, 118, 109, 118, 116, 129, 116, 108, 122, 114, 116, 118, 116, 92, 119, 123, 138, 101, 126, 122, 126, 118, 110, 109, 115, 119, 114, 119, 122, 106, 115, 115, 110, 122, 108, 136, 113, 99, 112, 94, 105, 101, 115, 112, 112, 117, 107, 114, 126, 111, 110, 110, 107, 128, 119, 117, 101, 124, 109, 104, 104, 122, 105, 113, 112, 114, 112, 114, 122, 93, 105, 114, 115, 110, 119, 145, 120, 96, 120, 121, 116, 103, 111, 110, 99, 117, 107, 107, 110, 130, 114, 115, 119, 106, 121, 113, 115, 122, 112, 122, 106, 115, 120, 115, 138, 108, 119, 114, 109, 115, 95, 125, 101, 115, 110, 123, 123, 126, 102, 107, 107, 125, 104, 111, 109, 117, 105, 102, 115, 115, 124, 100, 124, 121, 115, 100, 116, 120, 114, 113, 116, 117, 109, 117, 99, 115, 109, 124, 105, 109, 113, 109, 107, 111, 121, 122, 103, 124, 112, 123, 115, 131, 112, 136, 105, 124, 115, 105, 121, 111, 114, 99, 118, 115, 100, 116, 106, 117, 115, 115, 104, 88, 113, 111, 113, 110, 127, 125, 120, 113, 120, 105, 102, 98, 124, 108, 115, 112, 113, 121, 122, 110, 122, 113, 106, 109, 115, 109, 116, 104, 119, 111, 118, 99, 118, 123, 121, 115, 108, 104, 112, 114, 117, 123, 112, 112, 124, 110, 131, 121, 108, 127, 113, 115, 124, 106, 106, 125, 134, 102, 114, 109, 109, 117, 118, 114, 104, 119, 117, 121, 127, 123, 121, 109, 127, 119, 117, 116, 116, 111, 140, 114, 121, 107, 113, 118, 117, 116, 122, 108, 111, 107, 109, 102, 117, 106, 97, 110, 115, 116, 122, 95, 127, 108, 110, 112, 97, 124, 122, 118, 115, 113, 114, 119, 118, 118, 98, 115, 107, 117, 106, 109, 115, 120, 128, 114, 124, 125, 120, 101, 105, 120, 118, 128, 96, 113, 117, 118, 88, 124, 109, 112, 124, 121, 119, 121, 103, 117, 97, 107, 119, 108, 122, 120, 127, 110, 112, 124, 106, 113, 112, 108, 103, 112, 116, 110, 116, 130, 123, 110, 121, 124, 120, 97, 117, 114, 118, 120, 103, 109, 107, 95, 106, 129, 113, 114, 106, 115, 122, 107, 115, 100, 131, 115, 124, 106, 110, 114, 126, 105, 116, 112, 112, 131, 105, 107, 117, 118, 107, 115, 104, 111, 119, 112, 114, 110, 120, 120, 105, 119, 119, 120, 107, 113, 114, 134, 109, 122, 116, 105, 105, 108, 99, 109, 124, 104, 111, 104, 106, 114, 120, 105, 110, 124, 120, 109, 110, 119, 113, 121, 118, 111, 111, 107, 120, 101, 126, 116, 127, 116, 105, 107, 124, 116, 104, 116, 110, 131, 125, 109, 115, 119, 98, 112, 109, 111, 121, 120, 90, 114, 109, 110, 114, 118, 117, 111, 111, 122, 113, 117, 105, 130, 122, 115, 116, 109, 122, 109, 121, 116, 141, 107, 111, 107, 104, 87, 109, 129, 108, 119, 104, 111, 105, 107, 125, 128, 115, 120, 114, 116, 107, 121, 113, 135, 107, 103, 107, 104, 115, 122, 114, 113, 134, 111, 125, 118, 112, 94, 111, 132, 114, 114, 103, 113, 128, 110, 121, 116, 110, 123, 116, 109, 123, 115, 113, 126, 116, 113, 119, 109, 108, 120, 118, 134, 119, 115, 105, 122, 98, 117, 120, 107, 113, 110, 113, 109, 113, 105, 112, 112, 111, 108, 106, 114, 136, 120, 117, 109, 108, 115, 111, 110, 101, 112, 112, 114, 97, 108, 113, 115, 119, 111, 113, 93, 138, 118, 117, 105, 122, 111, 124, 113, 117, 111, 122, 117, 105, 127, 117, 114, 116, 124, 117, 122, 107, 109, 109, 119, 107, 117, 121, 113, 114, 123, 111, 107, 133, 118, 119, 118, 111, 106, 123, 115, 111, 113, 122, 105, 115, 111, 116, 117, 128, 116, 107, 107, 119, 120, 108, 119, 99, 120, 113, 124, 119, 105, 130, 112, 119, 115, 113, 117, 107, 98, 116, 120, 107, 112, 119, 117, 123, 117, 98, 112, 118, 109, 124, 112, 114, 126, 124, 124, 116, 114, 110, 101, 127, 117, 118, 105, 116, 108, 105, 117, 111, 110, 135, 108, 123, 114, 122, 128, 117, 122, 118, 105, 118, 119, 115, 105, 110, 112, 112, 118, 113, 111, 113, 116, 108, 129, 99, 127, 118, 121, 106, 104, 116, 122, 117, 116, 108, 124, 121, 126, 121, 126, 121, 118, 119, 106, 119, 115, 114, 114, 122, 100, 110, 107, 120, 100, 108, 104, 105, 121, 103, 117, 121, 104, 111, 132, 106, 116, 122, 101, 118, 113, 118, 116, 111, 103, 115, 116, 118, 116, 121, 107, 115, 118, 104, 104, 114, 117, 121, 119, 116, 110, 122, 127, 120, 115, 120, 109, 114, 107, 107, 112, 112, 119, 117, 118, 105, 110, 112, 129, 94, 112, 107, 116, 124, 110, 104, 102, 113, 119, 100, 116, 117, 122, 115, 119, 125, 117, 106, 108, 119, 121, 116, 126, 116, 120, 131, 127, 125, 108, 114, 110, 125, 117, 109, 117, 122, 116, 119, 112, 101, 118, 119, 108, 111, 116, 107, 101, 104, 112, 115, 110, 112, 108, 114, 112, 113, 118, 112, 110, 121, 115, 127, 111, 116, 102, 121, 117, 113, 116, 108, 111, 130, 121, 118, 108, 103, 94, 112, 119, 125, 110, 122, 122, 107, 115, 125, 109, 115, 112, 118, 123, 111, 124, 100, 113, 104, 120, 118, 121, 115, 120, 111, 124, 116, 102, 119, 117, 104, 108, 124, 98, 109, 126, 116, 95, 116, 119, 121, 133, 93, 116, 107, 114, 120, 124, 117, 109, 97, 111, 119, 106, 115, 122, 104, 119, 114, 112, 121, 100, 109, 112, 120, 108, 109, 114, 111, 122, 122, 111, 120, 104, 116, 102, 103, 126, 125, 133, 114, 103, 100, 133, 123, 87, 98, 118, 86, 108, 115, 105, 106, 122, 127, 110, 117, 117, 121, 105, 123, 122, 109, 129, 108, 119, 114, 122, 114, 130, 97, 109, 127, 102, 113, 108, 117, 109, 103, 104, 121, 131, 100, 104, 97, 124, 104, 119, 110, 108, 135, 99, 117, 103, 111, 119, 111, 115, 107, 117, 123, 120, 113, 117, 114, 115, 108, 100, 110, 130, 121, 114, 119, 116, 118, 116, 122, 121, 111, 124, 113, 119, 109, 119, 109, 94, 112, 143, 110, 106, 118, 112, 123, 114, 125, 112, 120, 111, 129, 107, 117, 112, 143, 120, 117, 117, 113, 100, 115, 119, 113, 118, 130, 131, 121, 127, 131, 106, 120, 99, 121, 114, 126, 108, 123, 107, 149, 115, 121, 124, 122, 106, 114, 108, 101, 108, 116, 114, 110, 135, 118, 108, 108, 115, 123, 107, 134, 117, 111, 120, 116, 112, 122, 111, 129, 121, 102, 131, 121, 93, 113, 112, 102, 114, 116, 116, 119, 119, 113, 128, 115, 109, 110, 116, 112, 139, 112, 129, 110, 108, 124, 107, 122, 112, 106, 115, 118, 125, 107, 117, 121, 106, 129, 119, 114, 117, 121, 120, 111, 126, 104, 116, 112, 101, 112, 105, 120, 129, 129, 129, 98, 112, 114, 119, 103, 105, 140, 110, 108, 106, 109, 107, 125, 130, 109, 122, 136, 107, 122, 122, 123, 108, 112, 118, 109, 114, 121, 110, 99, 120, 133, 113, 113, 115, 125, 122, 101, 112, 97, 118, 111, 112, 115, 110, 107, 114, 132, 131, 130, 110, 108, 123, 131, 117, 111, 116, 133, 110, 109, 124, 110, 112, 124, 121, 116, 113, 109, 110, 133, 104, 106, 125, 123, 116, 115, 126, 117, 124, 125, 109, 115, 121, 115, 119, 128, 134, 102, 113, 108, 119, 102, 123, 117, 113, 113, 118, 113, 119, 102, 108, 122, 106, 121, 125, 118, 119, 111, 134, 90, 96, 119, 106, 106, 127, 99, 108, 125, 126, 114, 118, 118, 98, 109, 108, 140, 97, 111, 125, 116, 112, 106, 114, 132, 117, 124, 114, 127, 130, 118, 131, 121, 95, 113, 110, 108, 117, 107, 112, 114, 120, 103, 138, 110, 124, 124, 118, 127, 124, 121, 124, 113, 119, 107, 119, 110, 114, 114, 119, 128, 115, 128, 109, 109, 107, 121, 113, 122, 108, 110, 114, 130, 111, 114, 105, 96, 115, 147, 118, 107, 110, 123, 86, 104, 120, 113, 108, 122, 101, 135, 108, 108, 112, 125, 122, 116, 105, 121, 129, 118, 103, 125, 119, 116, 123, 115, 116, 106, 110, 108, 110, 93, 111, 99, 116, 102, 130, 105, 108, 107, 113, 103, 138, 114, 136, 119, 105, 135, 125, 118, 110, 116, 117, 115, 131, 122, 118, 104, 124, 114, 117, 111, 106, 120, 108, 121, 111, 114, 110, 138, 110, 119, 113, 119, 120, 122, 135, 111, 116, 117, 112, 111, 114, 112, 114, 107, 131, 124, 121, 117, 102, 120, 114, 111, 118, 111, 114, 114, 105, 121, 127, 118, 120, 109, 111, 115, 112, 108, 106, 110, 107, 105, 120, 100, 116, 113, 112, 120, 114, 110, 113, 121, 118, 117, 132, 112, 120, 87, 114, 117, 109, 111, 99, 114, 118, 126, 100, 103, 107, 112, 112, 114, 129, 108, 127, 115, 108, 119, 109, 112, 112, 146, 116, 119, 121, 121, 111, 114, 126, 114, 118, 107, 112, 103, 107, 97, 117, 121, 115, 115, 115, 92, 143, 105, 118, 118, 110, 113, 109, 144, 115, 115, 100, 126, 118, 120, 113, 115, 111, 117, 110, 122, 118, 97, 117, 104, 122, 112, 112, 120, 122, 103, 132, 114, 117, 105, 111, 111, 95, 116, 135, 114, 97, 125, 111, 113, 115, 112, 126, 112, 119, 115, 122, 106, 94, 124, 117, 112, 120, 120, 107, 103, 114, 116, 115, 116, 92, 125, 128, 117, 101, 129, 102, 115, 119, 114, 122, 103, 112, 114, 120, 127, 108, 113, 113, 118, 129, 122, 113, 116, 110, 119, 96, 117, 116, 104, 118, 121, 110, 113, 126, 110, 138, 107, 105, 130, 116, 113, 123, 118, 111, 111, 108, 122, 125, 110, 120, 104, 127, 118, 112, 104, 107, 105, 111, 126, 124, 111, 113, 104, 101, 114, 117, 107, 119, 132, 126, 117, 111, 107, 101, 116, 130, 125, 93, 116, 118, 112, 127, 123, 124, 114, 116, 115, 96, 103, 137, 122, 112, 105, 110, 111, 121, 124, 110, 112, 105, 103, 114, 120, 114, 112, 147, 120, 116, 120, 118, 116, 108, 117, 106, 105, 107, 120, 105, 135, 109, 121, 107, 98, 104, 92, 126, 98, 101, 113, 103, 118, 118, 111, 125, 125, 102, 129, 124, 105, 119, 104, 112, 117, 101, 113, 120, 122, 117, 109, 109, 99, 103, 122, 107, 109, 111, 121, 118, 110, 112, 120, 115, 105, 118, 107, 140, 136, 116, 101, 106, 117, 106, 113, 109, 114, 119, 123, 117, 117, 95, 114, 128, 116, 107, 113, 113, 121, 109, 122, 120, 119, 116, 94, 126, 94, 102, 123, 96, 96, 117, 114, 111, 124, 115, 124, 106, 115, 122, 104, 119, 110, 110, 111, 109, 103, 132, 110, 111, 109, 119, 113, 119, 112, 116, 112, 115, 114, 110, 110, 116, 112, 117, 121, 121, 104, 121, 102, 111, 126, 114, 113, 114, 110, 112, 124, 112, 114, 125, 107, 103, 123, 129, 112, 111, 120, 117, 124, 104, 117, 99, 119, 96, 114, 118, 117, 121, 127, 126, 115, 104, 123, 107, 123, 118, 106, 110, 140, 107, 104, 115, 90, 112, 122, 97, 110, 121, 127, 122, 120, 110, 113, 105, 112, 108, 106, 112, 128, 109, 117, 111, 109, 116, 118, 108, 114, 114, 116, 111, 114, 123, 120, 122, 125, 121, 114, 116, 117, 112, 104, 119, 129, 110, 112, 117, 115, 116, 112, 113, 111, 112, 113, 114, 116, 113, 120, 111, 124, 114, 119, 113, 115, 121, 112, 111, 114, 124, 105, 112, 118, 118, 116, 118, 120, 108, 118, 113, 114, 118, 115, 121, 111, 119, 112, 126, 113, 115, 112, 110, 117, 114, 118, 122, 118, 111, 114, 117, 122, 120, 115, 115, 116, 118, 119, 113, 113, 116, 115, 125, 122, 115, 119, 112, 115, 111, 111, 114, 121, 117, 116, 115, 114, 118, 117, 103, 109, 112, 121, 112, 115, 122, 100, 123, 113, 120, 119, 109, 126, 112, 114, 119, 108, 122, 115, 107, 116, 111, 111, 112, 115, 117, 116, 117, 119, 115, 111, 110, 115, 116, 115, 108, 106, 114, 113, 118, 120, 125, 119, 119, 122, 109, 118, 118, 118, 112, 119, 117, 112, 113, 122, 118, 117, 114, 118, 112, 119, 117, 119, 114, 112, 116, 115, 116, 120, 114, 114, 116, 117, 116, 116, 110, 119, 106, 117, 121, 117, 120, 116, 115, 115, 117, 117, 113, 109, 115, 118, 115, 119, 120, 117, 110, 113, 107, 102, 121, 116, 120, 113, 119, 112, 109, 118, 112, 115, 121, 111, 106, 108, 116, 113, 115, 115, 110, 114, 113, 111, 108, 115, 120, 118, 116, 117, 122, 119, 114, 118, 113, 117, 115, 117, 121, 118, 116, 107, 111, 119, 118, 115, 112, 115, 110, 121, 108, 108, 111, 108, 115, 111, 120, 120, 113, 115, 113, 113, 114, 117, 120, 114, 117, 119, 110, 119, 111, 113, 116, 113, 115, 109, 112, 121, 108, 117, 114, 120, 119, 118, 115, 115, 119, 115, 111, 111, 108, 120, 110, 108, 107, 121, 123, 130, 116, 121, 115, 105, 114, 114, 116, 119, 121, 129, 118, 121, 118, 116, 110, 117, 110, 119, 112, 116, 119, 113, 116, 113, 120, 112, 115, 123, 120, 113, 122, 112, 114, 110, 117, 118, 114, 119, 113, 115, 117, 112, 117, 120, 117, 107, 120, 116, 115, 122, 114, 123, 115, 118, 114, 115, 115, 121, 118, 111, 121, 112, 115, 107, 113, 119, 119, 110, 115, 120, 119, 120, 113, 111, 116, 104, 109, 114, 121, 123, 105, 123, 117, 121, 110, 116, 116, 117, 123, 116, 115, 117, 124, 111, 113, 110, 119, 114, 125, 117, 117, 115, 113, 113, 116, 114, 118, 122, 117, 122, 118, 116, 116, 114, 119, 116, 112, 120, 113, 111, 113, 114, 110, 114, 115, 123, 116, 120, 117, 116, 123, 115, 121, 124, 121, 123, 109, 111, 115, 112, 123, 117, 117, 114, 118, 117, 113, 117, 113, 112, 109, 120, 119, 113, 112, 109, 117, 118, 111, 118, 103, 114, 125, 113, 113, 119, 112, 107, 114, 117, 117, 118, 113, 106, 118, 120, 121, 114, 104, 123, 112, 119, 114, 115, 113, 113, 108, 113, 107, 120, 113, 115, 120, 116, 116, 117, 120, 113, 111, 108, 111, 111, 120, 116, 116, 115, 121, 115, 115, 117, 121, 114, 108, 115, 113, 111, 122, 114, 114, 108, 120, 109, 119, 115, 114, 118, 111, 107, 106, 108, 111, 113, 118, 112, 128, 109, 118, 109, 115, 124, 106, 115, 118, 137, 116, 120, 112, 110, 115, 119, 111, 111, 117, 120, 114, 114, 109, 111, 119, 123, 111, 118, 106, 113, 125, 114, 116, 111, 110, 122, 108, 113, 122, 107, 114, 124, 112, 120, 112, 119, 122, 123, 104, 124, 109, 122, 111, 122, 117, 117, 112, 114, 111, 113, 105, 121, 118, 110, 110, 109, 121, 112, 114, 107, 108, 118, 120, 121, 117, 123, 115, 115, 120, 122, 124, 116, 125, 101, 127, 107, 125, 117, 121, 112, 110, 117, 104, 114, 114, 116, 126, 118, 116, 118, 117, 137, 124, 118, 118, 104, 104, 108, 112, 105, 115, 119, 114, 113, 106, 104, 127, 102, 110, 126, 127, 128, 115, 118, 107, 96, 119, 102, 121, 116, 107, 121, 107, 124, 109, 109, 119, 128, 100, 111, 146, 120, 112, 109, 116, 127, 139, 125, 125, 116, 121, 106, 122, 111, 109, 100, 116, 122, 106, 102, 120, 114, 122, 116, 113, 118, 106, 113, 125, 106, 110, 118, 119, 127, 112, 110, 121, 93, 114, 112, 97, 107, 101, 120, 100, 122, 122, 115, 111, 117, 110, 121, 117, 117, 112, 122, 94, 121, 117, 106, 102, 110, 128, 124, 102, 119, 118, 125, 105, 100, 120, 115, 118, 110, 117, 113, 126, 118, 121, 107, 115, 112, 111, 111, 123, 111, 122, 119, 101, 129, 108, 118, 118, 111, 121, 113, 116, 125, 125, 115, 135, 114, 119, 103, 108, 125, 126, 126, 116, 112, 120, 120, 119, 105, 118, 121, 112, 124, 117, 105, 119, 105, 109, 115, 115, 116, 122, 135, 105, 116, 131, 102, 111, 112, 121, 120, 128, 117, 120, 105, 119, 117, 106, 121, 109, 103, 128, 108, 111, 105, 125, 125, 114, 122, 125, 115, 118, 126, 117, 110, 124, 99, 116, 120, 106, 112, 118, 112, 102, 122, 125, 119, 119, 97, 112, 128, 118, 111, 120, 114, 113, 98, 127, 118, 104, 109, 114, 117, 115, 117, 110, 121, 105, 118, 116, 115, 103, 124, 115, 117, 111, 111, 120, 118, 122, 124, 116, 114, 117, 118, 113, 109, 116, 116, 122, 137, 119, 111, 114, 119, 114, 111, 105, 108, 123, 113, 128, 116, 127, 111, 117, 115, 111, 118, 117, 114, 111, 106, 127, 112, 119, 93, 120, 108, 115, 107, 107, 111, 125, 100, 107, 107, 121, 120, 117, 122, 121, 102, 129, 111, 114, 114, 127, 124, 100, 110, 110, 144, 114, 119, 117, 119, 108, 115, 105, 128, 121, 107, 113, 112, 118, 125, 118, 109, 127, 116, 121, 109, 102, 117, 108, 118, 126, 121, 116, 114, 119, 113, 119, 106, 120, 118, 121, 113, 114, 107, 117, 112, 138, 121, 102, 110, 111, 125, 105, 120, 109, 130, 102, 118, 112, 114, 117, 104, 112, 135, 108, 104, 106, 124, 137, 113, 101, 115, 113, 111, 128, 104, 108, 125, 103, 110, 128, 98, 105, 113, 119, 120, 110, 114, 123, 107, 125, 112, 129, 110, 137, 104, 113, 104, 121, 106, 109, 124, 111, 106, 114, 127, 108, 119, 118, 110, 112, 126, 105, 121, 112, 99, 125, 108, 112, 107, 117, 108, 115, 111, 107, 118, 129, 104, 109, 110, 105, 120, 108, 105, 140, 124, 132, 119, 110, 109, 119, 112, 125, 124, 115, 113, 110, 116, 124, 99, 109, 113, 111, 117, 113, 128, 133, 106, 104, 95, 125, 106, 112, 118, 104, 109, 121, 112, 115, 114, 134, 126, 132, 115, 97, 106, 122, 120, 113, 105, 124, 111, 115, 111, 114, 109, 119, 115, 110, 110, 116, 115, 104, 120, 130, 112, 114, 109, 109, 111, 131, 111, 112, 126, 110, 97, 117, 116, 114, 119, 104, 111, 115, 110, 121, 108, 118, 113, 110, 110, 113, 115, 100, 111, 88, 118, 105, 111, 117, 104, 115, 126, 106, 117, 104, 102, 127, 114, 129, 113, 121, 111, 117, 115, 95, 116, 116, 114, 110, 113, 117, 101, 128, 105, 124, 114, 116, 117, 115, 115, 104, 106, 109, 108, 124, 115, 107, 104, 103, 106, 115, 122, 122, 115, 110, 108, 108, 122, 114, 126, 112, 106, 111, 120, 120, 124, 123, 110, 112, 118, 134, 125, 119, 108, 113, 120, 124, 113, 117, 116, 112, 110, 106, 104, 112, 111, 135, 106, 142, 110, 120, 101, 109, 118, 116, 115, 105, 131, 121, 122, 118, 114, 92, 125, 111, 112, 108, 110, 121, 113, 108, 123, 109, 129, 122, 109, 133, 113, 118, 103, 109, 94, 108, 130, 116, 116, 94, 115, 120, 118, 119, 124, 127, 113, 121, 110, 110, 105, 119, 105, 112, 116, 107, 106, 112, 123, 123, 119, 129, 119, 108, 130, 130, 106, 105, 119, 115, 120, 115, 117, 140, 116, 106, 114, 116, 116, 115, 109, 115, 111, 116, 114, 124, 137, 114, 110, 110, 116, 89, 124, 118, 103, 108, 108, 114, 123, 99, 124, 118, 110, 120, 131, 114, 112, 120, 133, 101, 114, 107, 116, 116, 132, 113, 124, 121, 104, 113, 116, 118, 110, 124, 120, 135, 102, 121, 127, 129, 126, 115, 114, 111, 119, 115, 120, 111, 112, 120, 119, 107, 112, 117, 104, 126, 114, 119, 124, 117, 123, 104, 114, 109, 137, 103, 99, 109, 130, 125, 125, 114, 111, 118, 112, 109, 108, 121, 125, 125, 96, 129, 114, 131, 116, 116, 116, 118, 113, 117, 114, 110, 115, 109, 113, 116, 95, 117, 112, 112, 125, 104, 103, 113, 124, 122, 124, 114, 102, 113, 108, 123, 103, 113, 124, 110, 109, 116, 114, 118, 138, 108, 113, 107, 97, 109, 115, 108, 122, 114, 110, 106, 117, 110, 129, 106, 111, 101, 118, 118, 116, 140, 123, 125, 109, 114, 104, 108, 117, 115, 106, 107, 119, 101, 115, 99, 115, 133, 105, 112, 94, 111, 124, 117, 114, 120, 112, 127, 117, 107, 130, 117, 112, 131, 107, 116, 108, 115, 103, 118, 93, 116, 116, 112, 117, 114, 128, 104, 113, 95, 115, 113, 105, 111, 117, 125, 109, 92, 117, 127, 143, 140, 120, 122, 113, 120, 112, 114, 115, 114, 111, 120, 105, 122, 112, 128, 110, 116, 127, 107, 122, 101, 115, 123, 112, 117, 126, 115, 110, 119, 111, 109, 114, 118, 114, 102, 131, 112, 122, 103, 118, 122, 106, 110, 110, 103, 110, 111, 125, 105, 113, 129, 115, 103, 124, 112, 113, 123, 116, 121, 115, 117, 113, 95, 126, 123, 115, 120, 103, 101, 113, 108, 93, 110, 111, 112, 91, 105, 105, 118, 112, 121, 113, 112, 103, 112, 120, 115, 120, 108, 121, 104, 122, 102, 118, 122, 102, 111, 121, 120, 114, 122, 109, 124, 108, 101, 95, 124, 115, 126, 107, 136, 120, 119, 115, 113, 131, 122, 106, 108, 117, 121, 110, 119, 111, 125, 107, 120, 126, 124, 103, 117, 111, 119, 116, 111, 121, 120, 114, 109, 121, 119, 122, 107, 109, 113, 100, 118, 112, 114, 109, 124, 116, 112, 106, 119, 125, 113, 111, 110, 112, 104, 114, 117, 106, 110, 114, 116, 120, 107, 114, 113, 124, 122, 115, 110, 113, 114, 125, 125, 105, 117, 107, 117, 114, 114, 121, 115, 129, 108, 121, 114, 113, 102, 111, 109, 130, 111, 123, 127, 106, 116, 124, 116, 119, 117, 103, 119, 109, 108, 107, 109, 118, 108, 115, 110, 103, 104, 113, 109, 123, 124, 108, 123, 103, 104, 114, 120, 99, 130, 105, 112, 117, 102, 113, 107, 108, 122, 113, 113, 110, 120, 110, 98, 122, 118, 114, 119, 120, 124, 119, 137, 128, 115, 107, 112, 119, 104, 121, 127, 115, 109, 110, 106, 129, 121, 104, 114, 111, 120, 119, 110, 103, 123, 112, 112, 116, 111, 101, 103, 110, 104, 113, 118, 105, 129, 120, 122, 113, 98, 103, 111, 109, 112, 98, 127, 109, 119, 123, 111, 115, 105, 116, 113, 121, 105, 100, 123, 108, 113, 113, 110, 116, 114, 107, 111, 120, 109, 120, 114, 134, 117, 111, 111, 114, 129, 124, 123, 113, 118, 110, 123, 122, 108, 105, 131, 111, 114, 110, 110, 114, 128, 116, 112, 113, 113, 107, 112, 120, 127, 119, 114, 108, 126, 120, 112, 121, 120, 128, 117, 117, 117, 118, 108, 111, 109, 102, 105, 133, 109, 113, 108, 133, 114, 125, 109, 101, 119, 126, 110, 136, 114, 123, 116, 115, 117, 111, 100, 115, 119, 114, 104, 113, 123, 118, 109, 99, 120, 118, 115, 116, 110, 103, 113, 116, 115, 123, 117, 109, 120, 114, 114, 100, 114, 124, 114, 122, 120, 122, 110, 98, 120, 110, 113, 120, 114, 121, 113, 105, 109, 116, 100, 131, 112, 112, 116, 119, 112, 113, 104, 104, 123, 117, 117, 119, 130, 100, 108, 105, 110, 112, 99, 109, 118, 111, 114, 127, 110, 116, 110, 112, 108, 124, 109, 109, 112, 121, 112, 118, 115, 114, 105, 105, 112, 108, 114, 119, 109, 106, 114, 121, 108, 105, 118, 114, 109, 127, 114, 107, 126, 121, 102, 109, 127, 113, 104, 106, 107, 110, 111, 113, 102, 111, 122, 112, 118, 109, 119, 119, 121, 93, 108, 126, 99, 135, 107, 111, 109, 103, 130, 118, 104, 120, 120, 113, 110, 117, 107, 113, 125, 107, 112, 115, 114, 113, 116, 114, 116, 118, 117, 120, 108, 115, 126, 108, 132, 115, 112, 117, 113, 114, 117, 113, 110, 106, 113, 116, 120, 118, 121, 111, 124, 123, 116, 113, 115, 126, 111, 117, 112, 109, 120, 117, 110, 120, 113, 130, 114, 112, 122, 107, 112, 112, 112, 134, 118, 106, 114, 136, 117, 118, 117, 112, 126, 107, 131, 119, 122, 118, 120, 121, 115, 109, 115, 112, 119, 104, 114, 118, 110, 110, 114, 113, 114, 116, 109, 107, 113, 123, 116, 110, 114, 118, 118, 110, 114, 107, 121, 119, 112, 115, 108, 112, 112, 122, 115, 112, 110, 114, 105, 117, 106, 120, 121, 111, 117, 114, 113, 124, 126, 133, 121, 119, 112, 121, 122, 110, 99, 122, 114, 119, 110, 108, 113, 115, 110, 129, 112, 107, 124, 123, 98, 135, 121, 118, 118, 126, 113, 116, 129, 123, 119, 120, 117, 113, 111, 112, 116, 120, 118, 122, 110, 115, 116, 123, 119, 113, 134, 105, 113, 121, 104, 113, 120, 124, 105, 123, 128, 118, 113, 111, 120, 115, 119, 116, 115, 119, 118, 126, 119, 107, 111, 120, 110, 120, 120, 130, 107, 120, 109, 109, 113, 110, 111, 117, 108, 107, 105, 111, 106, 114, 126, 117, 117, 119, 118, 108, 117, 110, 120, 118, 119, 113, 124, 117, 116, 134, 117, 109, 119, 116, 123, 116, 122, 117, 104, 111, 107, 112, 121, 109, 121, 121, 126, 110, 117, 113, 120, 108, 118, 121, 113, 110, 108, 119, 124, 116, 112, 109, 127, 115, 111, 121, 112, 120, 103, 115, 111, 113, 109, 107, 119, 99, 118, 114, 113, 113, 121, 105, 110, 109, 114, 113, 109, 113, 114, 114, 113, 131, 123, 121, 111, 108, 112, 128, 126, 113, 117, 120, 128, 113, 112, 112, 114, 123, 108, 128, 138, 119, 121, 121, 120, 110, 111, 116, 128, 122, 118, 108, 121, 117, 102, 127, 113, 122, 113, 113, 116, 104, 111, 109, 111, 104, 117, 112, 111, 124, 114, 116, 117, 123, 128, 114, 122, 110, 112, 111, 115, 120, 113, 111, 116, 117, 121, 121, 112, 111, 118, 113, 115, 128, 120, 111, 109, 119, 116, 113, 107, 110, 109, 129, 118, 111, 120, 111, 120, 123, 111, 111, 109, 110, 118, 115, 109, 111, 113, 121, 123, 119, 103, 117, 112, 100, 121, 102, 110, 113, 113, 112, 114, 108, 110, 111, 115, 117, 112, 113, 115, 104, 113, 113, 117, 111, 112, 113, 114, 125, 116, 107, 106, 109, 125, 109, 104, 122, 121, 111, 118, 105, 103, 110, 110, 104, 117, 111, 116, 117, 125, 109, 107, 125, 112, 115, 108, 131, 118, 111, 120, 116, 118, 98, 110, 119, 113, 108, 115, 123, 113, 119, 113, 109, 121, 117, 117, 121, 126, 120, 108, 122, 121, 118, 125, 114, 120, 119, 119, 122, 116, 110, 113, 126, 120, 116, 111, 125, 114, 113, 105, 107, 116, 120, 108, 113, 121, 117, 114, 110, 122, 123, 122, 112, 115, 117, 111, 110, 118, 105, 111, 111, 116, 117, 109, 113, 120, 104, 118, 111, 110, 121, 118, 117, 135, 111, 111, 109, 110, 122, 110, 115, 113, 109, 111, 116, 120, 118, 114, 115, 111, 111, 103, 123, 112, 115, 116, 109, 104, 120, 127, 117, 103, 116, 113, 130, 112, 122, 105, 120, 112, 106, 124, 113, 121, 120, 112, 114, 118, 111, 126, 130, 110, 112, 119, 107, 115, 107, 104, 116, 118, 120, 115, 113, 113, 107, 125, 115, 115, 107, 112, 116, 110, 113, 116, 109, 115, 130, 106, 114, 111, 122, 121, 114, 115, 98, 127, 119, 116, 122, 113, 107, 116, 114, 117, 111, 121, 133, 111, 119, 109, 115, 117, 116, 115, 108, 122, 110, 119, 116, 110, 96, 108, 111, 117, 115, 103, 118, 113, 117, 115, 126, 117, 109, 120, 116, 125, 104, 121, 109, 117, 104, 109, 121, 112, 110, 124, 110, 126, 105, 122, 113, 119, 121, 102, 121, 123, 116, 112, 100, 114, 119, 129, 125, 114, 116, 119, 118, 117, 120, 113, 109, 108, 101, 120, 119, 123, 125, 109, 113, 111, 119, 110, 116, 117, 117, 120, 116, 109, 109, 111, 106, 105, 102, 120, 108, 116, 114, 111, 122, 124, 105, 123, 117, 124, 115, 115, 124, 133, 123, 141, 129, 105, 114, 122, 112, 113, 114, 104, 125, 109, 115, 110, 117, 118, 110, 118, 115, 110, 109, 110, 119, 117, 109, 117, 121, 113, 113, 119, 113, 108, 122, 118, 119, 123, 109, 123, 127, 117, 123, 128, 115, 114, 118, 123, 110, 116, 104, 120, 137, 119, 120, 112, 112, 116, 112, 121, 112, 100, 121, 101, 119, 107, 119, 94, 127, 114, 114, 123, 126, 107, 111, 115, 111, 114, 108, 108, 110, 118, 134, 123, 120, 113, 115, 111, 108, 113, 121, 112, 128, 113, 120, 121, 111, 113, 124, 118, 120, 111, 118, 105, 118, 117, 105, 124, 123, 114, 128, 116, 102, 116, 116, 116, 128, 112, 122, 102, 117, 114, 115, 122, 115, 107, 113, 120, 115, 112, 116, 115, 120, 113, 118, 115, 113, 109, 98, 133, 119, 118, 102, 124, 117, 129, 108, 111, 115, 104, 104, 121, 111, 121, 109, 118, 117, 118, 112, 111, 108, 118, 118, 101, 117, 117, 123, 113, 113, 112, 119, 120, 121, 115, 106, 102, 116, 116, 121, 121, 119, 114, 119, 105, 121, 114, 112, 120, 123, 112, 113, 112, 112, 117, 123, 132, 119, 119, 123, 112, 120, 109, 120, 107, 120, 110, 107, 130, 113, 125, 117, 124, 119, 114, 118, 107, 118, 119, 112, 114, 115, 115, 104, 109, 110, 118, 123, 126, 118, 130, 110, 130, 106, 104, 116, 108, 116, 117, 121, 116, 117, 115, 113, 120, 119, 109, 112, 117, 107, 110, 114, 116, 120, 109, 114, 117, 102, 105, 112, 111, 101, 100, 125, 110, 122, 110, 117, 114, 97, 119, 121, 119, 112, 106, 125, 110, 114, 117, 125, 111, 118, 108, 111, 118, 122, 118, 115, 115, 110, 107, 123, 116, 104, 116, 123, 120, 120, 106, 122, 99, 119, 118, 105, 130, 110, 115, 132, 108, 105, 104, 116, 108, 123, 109, 121, 107, 124, 116, 130, 119, 108, 111, 108, 113, 103, 111, 116, 107, 122, 106, 117, 116, 105, 124, 108, 118, 112, 96, 115, 126, 105, 111, 111, 122, 123, 119, 126, 112, 110, 103, 114, 122, 109, 109, 114, 149, 118, 122, 116, 109, 118, 109, 112, 107, 116, 121, 123, 120, 115, 120, 111, 112, 112, 128, 117, 109, 116, 108, 112, 106, 106, 109, 111, 112, 108, 108, 138, 121, 113, 113, 101, 103, 112, 112, 121, 92, 106, 115, 111, 111, 128, 104, 118, 114, 103, 114, 128, 114, 120, 113, 124, 107, 115, 124, 111, 133, 115, 123, 113, 116, 109, 105, 118, 105, 107, 130, 117, 108, 105, 119, 112, 99, 117, 112, 122, 113, 108, 118, 108, 107, 113, 116, 110, 123, 118, 127, 115, 103, 115, 113, 124, 114, 127, 119, 106, 94, 129, 108, 103, 126, 113, 110, 120, 115, 107, 111, 116, 96, 119, 121, 120, 122, 108, 118, 119, 125, 118, 104, 127, 113, 120, 114, 126, 96, 118, 108, 116, 127, 123, 107, 128, 104, 105, 134, 115, 107, 104, 125, 109, 128, 119, 117, 112, 101, 100, 117, 122, 95, 134, 112, 116, 114, 128, 115, 119, 107, 128, 103, 105, 119, 119, 119, 115, 107, 118, 110, 114, 108, 121, 122, 124, 94, 116, 111, 111, 100, 108, 112, 116, 108, 102, 127, 124, 129, 122, 101, 111, 106, 116, 119, 122, 117, 121, 115, 105, 106, 112, 110, 96, 121, 113, 117, 118, 102, 110, 118, 116, 116, 119, 107, 118, 117, 116, 106, 122, 113, 106, 125, 105, 117, 117, 95, 122, 112, 103, 105, 103, 121, 121, 106, 108, 121, 120, 112, 118, 120, 109, 109, 113, 113, 105, 110, 115, 111, 106, 108, 113, 127, 119, 123, 122, 104, 141, 122, 122, 108, 113, 122, 114, 126, 113, 120, 115, 111, 108, 112, 97, 114, 101, 112, 107, 113, 118, 112, 124, 117, 123, 119, 97, 120, 106, 133, 106, 110, 117, 118, 123, 115, 109, 108, 125, 104, 110, 111, 116, 119, 113, 108, 107, 137, 112, 106, 114, 116, 123, 113, 116, 119, 115, 117, 124, 119, 120, 112, 99, 125, 113, 111, 117, 112, 111, 111, 126, 108, 103, 117, 119, 114, 107, 130, 135, 111, 133, 125, 114, 108, 114, 109, 112, 108, 115, 127, 118, 108, 104, 113, 113, 115, 109, 115, 121, 115, 107, 107, 126, 106, 112, 110, 119, 111, 101, 116, 109, 114, 106, 117, 123, 121, 127, 113, 117, 138, 110, 124, 109, 106, 125, 131, 126, 114, 119, 105, 127, 105, 106, 101, 125, 118, 113, 112, 126, 118, 106, 108, 112, 106, 105, 118, 111, 115, 112, 118, 120, 112, 121, 94, 123, 115, 111, 116, 103, 110, 122, 122, 103, 115, 115, 114, 128, 121, 108, 130, 98, 97, 105, 108, 120, 130, 118, 106, 106, 106, 133, 121, 114, 113, 115, 117, 125, 106, 110, 109, 126, 117, 127, 104, 112, 135, 107, 122, 116, 109, 122, 107, 109, 111, 120, 123, 114, 112, 99, 111, 116, 116, 125, 129, 109, 105, 105, 113, 134, 112, 118, 131, 110, 112, 95, 117, 115, 114, 113, 118, 110, 116, 120, 110, 112, 101, 137, 114, 112, 119, 120, 131, 109, 129, 121, 118, 117, 116, 106, 111, 121, 108, 122, 114, 110, 121, 110, 104, 106, 106, 106, 108, 124, 126, 113, 126, 115, 116, 113, 109, 139, 109, 108, 109, 109, 113, 111, 113, 122, 118, 97, 103, 103, 115, 100, 120, 113, 120, 121, 115, 116, 123, 121, 118, 107, 113, 112, 102, 109, 126, 118, 112, 120, 120, 110, 110, 119, 109, 105, 124, 115, 116, 109, 144, 116, 133, 116, 109, 111, 115, 103, 111, 120, 114, 111, 106, 111, 96, 109, 108, 104, 114, 120, 108, 98, 109, 112, 109, 101, 112, 109, 118, 109, 117, 110, 141, 113, 95, 117, 117, 111, 122, 123, 129, 128, 103, 110, 112, 117, 116, 104, 127, 112, 92, 113, 111, 122, 114, 114, 107, 127, 139, 117, 105, 108, 105, 121, 115, 131, 112, 117, 114, 128, 111, 112, 116, 111, 102, 116, 118, 120, 117, 120, 104, 116, 117, 110, 108, 108, 112, 132, 117, 110, 99, 91, 124, 134, 106, 113, 115, 122, 104, 115, 131, 121, 98, 122, 109, 111, 109, 105, 128, 112, 111, 117, 114, 113, 116, 106, 120, 116, 124, 111, 113, 113, 107, 118, 114, 120, 121, 109, 117, 117, 137, 134, 104, 116, 119, 105, 133, 119, 120, 126, 117, 112, 108, 124, 112, 132, 117, 110, 103, 121, 110, 118, 107, 124, 112, 114, 107, 104, 121, 124, 115, 128, 124, 120, 127, 107, 118, 116, 102, 116, 94, 114, 111, 115, 109, 107, 110, 103, 115, 115, 112, 116, 122, 81, 124, 107, 124, 123, 123, 116, 116, 106, 120, 124, 133, 115, 126, 118, 121, 155, 123, 97, 116, 126, 125, 104, 128, 122, 124, 118, 115, 117, 99, 108, 125, 101, 125, 105, 122, 115, 115, 106, 116, 121, 123, 113, 114, 122, 109, 114, 120, 96, 106, 126, 124, 114, 99, 117, 121, 117, 98, 114, 128, 118, 120, 106, 118, 108, 116, 101, 110, 123, 116, 121, 119, 118, 99, 118, 114, 110, 120, 105, 124, 111, 111, 102, 111, 107, 120, 117, 126, 101, 109, 120, 110, 106, 123, 121, 120, 114, 122, 114, 101, 117, 111, 95, 102, 115, 116, 124, 111, 118, 108, 95, 109, 113, 102, 120, 100, 120, 107, 115, 106, 118, 117, 113, 121, 116, 131, 116, 117, 105, 138, 118, 110, 106, 114, 110, 133, 98, 112, 118, 102, 136, 114, 130, 115, 102, 104, 109, 104, 112, 117, 122, 119, 119, 136, 119, 115, 109, 119, 113, 111, 100, 118, 117, 102, 119, 107, 118, 116, 98, 98, 103, 100, 107, 114, 113, 110, 105, 134, 127, 123, 119, 121, 114, 115, 116, 115, 107, 111, 139, 109, 102, 104, 112, 94, 112, 114, 129, 113, 103, 112, 112, 121, 124, 113, 115, 113, 125, 115, 109, 114, 119, 116, 117, 104, 127, 101, 130, 113, 79, 122, 105, 129, 104, 130, 119, 117, 108, 113, 121, 110, 98, 133, 101, 101, 121, 121, 119, 144, 106, 121, 124, 117, 111, 118, 108, 108, 117, 129, 107, 107, 112, 98, 121, 110, 116, 119, 114, 118, 105, 131, 113, 103, 120, 119, 100, 121, 118, 113, 116, 112, 121, 116, 118, 108, 125, 111, 107, 105, 143, 135, 92, 119, 124, 122, 95, 117, 98, 110, 122, 108, 117, 111, 103, 121, 114, 153, 144, 110, 101, 113, 116, 113, 131, 129, 133, 110, 106, 126, 117, 115, 119, 114, 113, 119, 122, 119, 114, 131, 114, 131, 107, 131, 103, 108, 117, 110, 114, 115, 114, 113, 127, 126, 116, 116, 117, 116, 116, 127, 112, 106, 111, 106, 121, 100, 129, 106, 119, 102, 120, 107, 125, 91, 119, 118, 113, 107, 105, 115, 108, 121, 114, 100, 107, 109, 112, 102, 115, 105, 133, 114, 112, 116, 106, 106, 108, 107, 109, 115, 109, 135, 116, 110, 103, 119, 107, 104, 115, 137, 134, 107, 116, 109, 133, 104, 118, 111, 124, 106, 122, 124, 114, 112, 108, 100, 102, 116, 101, 106, 111, 99, 115, 120, 118, 108, 119, 120, 88, 150, 111, 112, 131, 112, 112, 119, 126, 106, 113, 146, 104, 111, 116, 127, 104, 110, 108, 116, 117, 121, 114, 141, 112, 123, 135, 113, 129, 125, 112, 117, 122, 121, 112, 103, 122, 114, 115, 110, 118, 125, 115, 121, 105, 107, 112, 117, 109, 127, 126, 117, 117, 107, 124, 122, 120, 120, 118, 135, 114, 107, 114, 103, 113, 112, 121, 107, 110, 122, 96, 112, 125, 116, 118, 129, 110, 110, 98, 99, 123, 115, 116, 114, 114, 93, 109, 106, 106, 122, 107, 122, 115, 96, 127, 113, 106, 133, 115, 119, 108, 112, 108, 118, 106, 109, 114, 125, 113, 106, 123, 108, 128, 111, 128, 123, 104, 131, 120, 127, 113, 124, 117, 112, 119, 109, 122, 117, 117, 117, 102, 119, 115, 108, 118, 123, 114, 104, 105, 112, 98, 95, 122, 115, 99, 116, 113, 113, 117, 105, 125, 113, 122, 111, 118, 117, 113, 113, 108, 106, 107, 112, 96, 130, 115, 115, 119, 98, 119, 122, 108, 108, 100, 106, 105, 135, 116, 108, 112, 104, 120, 104, 99, 115, 107, 106, 111, 126, 140, 113, 127, 117, 116, 113, 106, 136, 115, 91, 96, 115, 111, 132, 115, 124, 124, 94, 118, 117, 104, 112, 123, 112, 116, 114, 110, 112, 125, 123, 109, 114, 111, 124, 115, 108, 118, 112, 119, 114, 114, 121, 104, 112, 141, 124, 106, 102, 113, 112, 116, 118, 121, 94, 108, 118, 116, 108, 115, 109, 109, 121, 110, 120, 130, 120, 113, 124, 111, 112, 107, 116, 106, 104, 120, 126, 119, 125, 89, 125, 114, 122, 113, 117, 128, 116, 99, 128, 114, 109, 118, 112, 127, 113, 101, 108, 100, 113, 108, 98, 125, 96, 125, 127, 119, 107, 108, 122, 113, 119, 112, 146, 115, 118, 119, 116, 111, 120, 115, 116, 123, 95, 90, 115, 122, 118, 115, 115, 118, 116, 112, 117, 121, 128, 129, 114, 115, 114, 106, 115, 116, 115, 119, 119, 129, 110, 122, 128, 114, 129, 119, 125, 120, 116, 119, 118, 121, 125, 116, 110, 118, 120, 120, 124, 112, 110, 117, 109, 113, 116, 114, 109, 118, 104, 121, 116, 125, 117, 112, 118, 122, 107, 113, 125, 120, 115, 119, 120, 112, 104, 118, 111, 116, 118, 122, 113, 112, 114, 119, 119, 107, 113, 122, 114, 114, 106, 109, 121, 113, 108, 108, 112, 124, 122, 114, 114, 115, 124, 124, 110, 110, 126, 126, 124, 114, 119, 119, 113, 121, 117, 116, 127, 111, 118, 119, 117, 117, 109, 119, 115, 112, 111, 117, 119, 107, 125, 112, 105, 115, 108, 114, 108, 122, 118, 121, 109, 119, 112, 115, 113, 110, 112, 116, 112, 119, 118, 115, 113, 120, 110, 119, 117, 114, 113, 120, 107, 120, 115, 114, 105, 117, 121, 127, 116, 119, 106, 121, 119, 113, 114, 109, 109, 109, 119, 106, 120, 111, 112, 114, 114, 114, 120, 112, 116, 115, 115, 112, 106, 124, 119, 119, 118, 119, 110, 116, 111, 119, 129, 124, 120, 117, 114, 119, 122, 114, 113, 115, 114, 113, 113, 119, 117, 114, 118, 120, 123, 111, 115, 108, 112, 113, 113, 109, 114, 125, 118, 109, 123, 117, 113, 113, 119, 116, 116, 108, 112, 124, 108, 118, 120, 114, 119, 115, 108, 116, 115, 113, 112, 115, 113, 120, 117, 118, 119, 117, 112, 123, 114, 111, 113, 107, 113, 118, 121, 113, 120, 114, 117, 117, 124, 120, 108, 119, 115, 120, 121, 111, 109, 116, 118, 116, 114, 119, 115, 115, 114, 112, 119, 117, 113, 112, 117, 119, 120, 113, 120, 122, 112, 117, 116, 114, 111, 110, 110, 120, 115, 114, 111, 118, 109, 110, 126, 116, 107, 128, 120, 115, 118, 115, 119, 108, 122, 122, 124, 114, 107, 115, 126, 114, 121, 119, 113, 120, 115, 116, 116, 112, 113, 119, 111, 116, 114, 113, 116, 123, 119, 108, 115, 122, 110, 116, 119, 116, 106, 106, 119, 119, 117, 117, 125, 109, 114, 111, 117, 108, 124, 115, 116, 117, 113, 123, 112, 113, 109, 125, 116, 112, 119, 114, 117, 122, 119, 107, 118, 123, 125, 106, 121, 113, 112, 115, 118, 108, 121, 113, 116, 113, 115, 116, 120, 115, 116, 113, 113, 119, 116, 119, 123, 112, 121, 116, 119, 118, 112, 117, 113, 115, 110, 119, 110, 119, 119, 114, 115, 121, 118, 114, 128, 115, 113, 114, 111, 114, 116, 124, 117, 119, 108, 121, 119, 115, 116, 115, 107, 105, 111, 120, 105, 116, 106, 118, 120, 115, 121, 121, 113, 123, 113, 118, 118, 122, 119, 113, 118, 120, 100, 108, 108, 123, 118, 115, 110, 110, 119, 113, 118, 116, 116, 122, 122, 114, 114, 117, 115, 117, 117, 114, 113, 115, 120, 123, 117, 111, 122, 113, 121, 114, 107, 115, 107, 121, 121, 117, 111, 116, 112, 112, 114, 116, 112, 117, 110, 129, 114, 113, 119, 111, 127, 117, 127, 116, 119, 123, 107, 102, 103, 112, 123, 112, 101, 115, 110, 127, 113, 110, 117, 116, 132, 111, 98, 111, 120, 110, 123, 105, 113, 113, 117, 133, 128, 118, 121, 109, 115, 111, 96, 117, 111, 105, 142, 122, 113, 123, 104, 121, 123, 120, 99, 110, 132, 106, 112, 110, 125, 115, 113, 119, 115, 134, 89, 104, 121, 119, 119, 107, 122, 119, 113, 111, 123, 124, 118, 125, 112, 110, 130, 127, 119, 129, 80, 110, 128, 110, 114, 109, 118, 118, 125, 107, 110, 113, 112, 115, 117, 113, 105, 131, 123, 117, 111, 109, 111, 115, 116, 115, 108, 109, 111, 90, 118, 130, 116, 111, 119, 107, 134, 126, 119, 120, 122, 102, 108, 122, 112, 104, 111, 117, 120, 108, 111, 117, 100, 99, 119, 103, 108, 110, 122, 104, 118, 111, 107, 115, 114, 122, 107, 117, 117, 114, 112, 104, 113, 120, 130, 111, 112, 113, 131, 112, 119, 120, 108, 109, 128, 108, 122, 122, 124, 128, 130, 121, 113, 116, 103, 110, 107, 121, 112, 111, 121, 105, 124, 103, 116, 127, 115, 113, 150, 124, 103, 124, 126, 105, 108, 122, 115, 115, 131, 109, 113, 113, 114, 96, 111, 115, 128, 99, 130, 110, 114, 102, 114, 110, 99, 103, 123, 111, 124, 113, 107, 115, 114, 118, 112, 124, 116, 97, 112, 119, 117, 122, 115, 107, 115, 122, 112, 112, 123, 120, 111, 116, 121, 113, 114, 119, 115, 117, 114, 122, 123, 107, 114, 98, 109, 119, 128, 134, 120, 118, 113, 131, 110, 125, 116, 107, 117, 112, 108, 110, 106, 103, 128, 112, 112, 114, 113, 113, 109, 123, 107, 102, 104, 114, 113, 122, 110, 128, 99, 115, 110, 114, 106, 116, 133, 111, 104, 120, 117, 108, 120, 106, 113, 110, 105, 112, 110, 124, 125, 114, 104, 125, 111, 109, 111, 121, 120, 110, 113, 116, 132, 109, 106, 109, 115, 121, 80, 115, 94, 114, 115, 123, 122, 114, 110, 109, 113, 111, 123, 112, 103, 103, 113, 110, 118, 122, 112, 122, 111, 108, 134, 112, 119, 108, 124, 102, 115, 116, 116, 107, 109, 115, 119, 120, 107, 106, 110, 109, 117, 102, 109, 114, 107, 111, 109, 113, 131, 120, 112, 116, 103, 123, 104, 121, 112, 113, 110, 113, 112, 119, 123, 109, 125, 115, 120, 112, 118, 120, 103, 102, 119, 124, 105, 101, 116, 117, 117, 106, 116, 121, 111, 114, 118, 118, 114, 111, 124, 113, 115, 124, 110, 117, 112, 120, 124, 110, 123, 100, 118, 124, 121, 103, 133, 109, 123, 107, 104, 110, 108, 116, 109, 110, 111, 108, 116, 110, 121, 119, 124, 119, 112, 116, 114, 123, 92, 111, 112, 131, 117, 111, 117, 111, 107, 119, 118, 126, 111, 84, 121, 96, 110, 127, 116, 116, 118, 124, 109, 112, 121, 122, 116, 117, 118, 122, 115, 110, 103, 119, 107, 119, 115, 98, 103, 118, 109, 119, 133, 103, 127, 119, 116, 119, 118, 112, 111, 128, 125, 108, 119, 109, 114, 108, 95, 122, 110, 122, 118, 110, 115, 113, 118, 111, 105, 139, 115, 100, 128, 105, 112, 104, 121, 110, 109, 114, 117, 117, 123, 109, 113, 105, 99, 127, 114, 114, 110, 123, 116, 115, 103, 112, 116, 108, 114, 126, 109, 118, 125, 116, 107, 112, 134, 113, 124, 112, 118, 99, 119, 119, 106, 110, 117, 121, 114, 116, 122, 107, 118, 118, 112, 101, 109, 127, 97, 115, 123, 121, 118, 129, 111, 98, 120, 113, 117, 110, 124, 93, 120, 113, 112, 111, 125, 120, 112, 110, 118, 108, 105, 122, 97, 105, 114, 119, 110, 118, 114, 107, 131, 104, 121, 103, 114, 118, 113, 113, 120, 109, 116, 119, 121, 103, 112, 112, 124, 116, 117, 128, 123, 106, 120, 117, 107, 116, 116, 111, 116, 113, 108, 123, 117, 118, 107, 108, 116, 115, 113, 119, 118, 122, 108, 114, 122, 128, 108, 113, 116, 116, 108, 100, 113, 108, 108, 98, 108, 114, 106, 120, 106, 122, 110, 122, 115, 113, 109, 110, 119, 122, 110, 105, 113, 122, 110, 122, 117, 112, 112, 112, 116, 116, 121, 112, 118, 120, 117, 109, 114, 118, 130, 110, 129, 110, 106, 126, 105, 112, 115, 112, 110, 115, 113, 114, 113, 108, 118, 119, 120, 105, 112, 116, 110, 109, 114, 123, 125, 104, 119, 121, 119, 119, 115, 120, 109, 120, 107, 119, 119, 122, 125, 119, 129, 114, 117, 120, 113, 117, 103, 123, 109, 112, 116, 109, 127, 95, 114, 107, 118, 112, 117, 112, 107, 118, 109, 103, 109, 121, 117, 114, 113, 108, 118, 114, 106, 102, 111, 107, 120, 111, 109, 128, 120, 104, 121, 119, 108, 100, 107, 117, 115, 115, 128, 115, 110, 93, 114, 118, 112, 112, 113, 128, 122, 110, 111, 113, 110, 113, 126, 114, 112, 129, 98, 122, 126, 115, 108, 108, 118, 121, 110, 110, 109, 112, 104, 127, 121, 115, 111, 106, 106, 109, 107, 122, 112, 128, 116, 115, 121, 119, 112, 107, 126, 117, 108, 108, 124, 118, 111, 105, 122, 127, 121, 110, 125, 121, 104, 113, 122, 117, 125, 111, 114, 109, 129, 124, 119, 126, 110, 117, 118, 110, 117, 116, 122, 113, 111, 124, 109, 125, 118, 107, 112, 120, 117, 128, 110, 106, 115, 113, 117, 117, 124, 110, 117, 97, 119, 123, 113, 119, 116, 120, 114, 108, 131, 120, 130, 125, 119, 117, 102, 113, 122, 121, 106, 106, 114, 113, 121, 112, 130, 109, 112, 118, 121, 114, 103, 122, 110, 110, 125, 122, 117, 119, 104, 110, 121, 128, 114, 119, 126, 118, 126, 118, 111, 126, 121, 124, 113, 111, 120, 115, 123, 112, 120, 107, 113, 123, 107, 124, 111, 123, 116, 113, 122, 112, 112, 117, 113, 119, 109, 121, 111, 126, 131, 111, 115, 123, 113, 119, 109, 118, 113, 110, 92, 111, 109, 124, 122, 110, 121, 121, 117, 108, 129, 113, 109, 115, 110, 104, 120, 116, 118, 121, 114, 110, 121, 119, 104, 124, 115, 116, 122, 115, 134, 109, 125, 103, 108, 113, 114, 126, 110, 126, 116, 110, 118, 120, 115, 119, 115, 116, 107, 119, 127, 129, 103, 115, 89, 118, 114, 112, 113, 122, 108, 114, 113, 116, 112, 110, 110, 118, 101, 100, 103, 116, 126, 105, 132, 115, 122, 109, 110, 120, 117, 115, 105, 117, 106, 114, 122, 112, 130, 120, 105, 121, 118, 105, 119, 110, 107, 116, 113, 107, 106, 117, 112, 118, 117, 116, 119, 113, 124, 105, 116, 121, 115, 119, 98, 112, 131, 138, 105, 123, 103, 129, 121, 101, 121, 126, 113, 118, 103, 98, 119, 108, 120, 123, 119, 117, 122, 114, 118, 98, 126, 98, 124, 106, 112, 121, 112, 127, 113, 121, 109, 121, 125, 120, 106, 105, 122, 105, 107, 125, 108, 111, 116, 119, 130, 109, 122, 118, 111, 111, 96, 117, 105, 120, 117, 104, 105, 113, 107, 104, 117, 113, 132, 108, 128, 105, 115, 112, 111, 109, 105, 107, 108, 120, 105, 133, 136, 110, 121, 113, 122, 118, 110, 116, 109, 115, 113, 121, 106, 132, 100, 122, 111, 110, 123, 111, 130, 109, 116, 127, 117, 111, 105, 114, 114, 111, 108, 130, 105, 120, 122, 98, 117, 113, 110, 120, 118, 113, 112, 119, 115, 106, 127, 119, 117, 111, 123, 131, 115, 112, 108, 95, 115, 121, 93, 120, 120, 119, 107, 111, 115, 121, 128, 112, 123, 107, 105, 115, 106, 112, 101, 119, 114, 121, 103, 114, 124, 123, 119, 107, 115, 131, 125, 115, 116, 119, 141, 115, 110, 121, 110, 114, 123, 126, 103, 105, 120, 97, 130, 112, 113, 111, 103, 100, 108, 103, 110, 116, 117, 105, 115, 120, 135, 121, 119, 111, 112, 122, 117, 119, 121, 122, 101, 128, 125, 111, 117, 114, 121, 130, 120, 100, 116, 116, 101, 97, 122, 108, 108, 125, 108, 115, 112, 116, 113, 109, 114, 109, 108, 115, 111, 120, 111, 105, 111, 113, 103, 113, 121, 122, 126, 117, 97, 119, 121, 108, 114, 116, 109, 114, 117, 110, 123, 123, 129, 114, 122, 119, 115, 115, 104, 130, 119, 121, 102, 111, 117, 120, 134, 112, 111, 105, 91, 116, 129, 104, 123, 113, 129, 114, 116, 111, 114, 108, 120, 117, 109, 113, 125, 92, 113, 113, 119, 123, 121, 126, 122, 117, 119, 114, 101, 121, 96, 130, 110, 116, 119, 119, 123, 113, 107, 131, 123, 111, 104, 110, 110, 99, 111, 122, 120, 110, 111, 126, 97, 120, 115, 104, 111, 126, 121, 121, 112, 121, 120, 127, 110, 98, 117, 111, 120, 114, 122, 128, 105, 116, 120, 118, 117, 126, 119, 107, 119, 111, 118, 106, 140, 124, 112, 100, 123, 107, 116, 123, 122, 118, 119, 125, 117, 116, 120, 120, 127, 123, 122, 115, 114, 113, 119, 110, 114, 119, 110, 89, 113, 111, 111, 119, 123, 108, 118, 101, 109, 130, 125, 112, 117, 122, 114, 115, 104, 100, 107, 125, 125, 108, 107, 114, 130, 105, 137, 128, 113, 114, 123, 119, 121, 130, 126, 109, 126, 114, 113, 116, 117, 119, 94, 111, 121, 120, 107, 116, 112, 110, 116, 120, 114, 102, 115, 95, 120, 116, 123, 122, 120, 111, 93, 125, 121, 114, 120, 115, 115, 101, 107, 124, 113, 108, 113, 110, 111, 113, 110, 105, 115, 99, 117, 111, 118, 107, 104, 109, 120, 99, 120, 125, 111, 113, 111, 121, 103, 115, 122, 108, 123, 131, 124, 114, 107, 117, 115, 113, 110, 109, 126, 107, 112, 118, 111, 118, 112, 118, 133, 129, 118, 134, 109, 105, 106, 128, 104, 118, 109, 119, 121, 127, 118, 102, 119, 119, 101, 106, 100, 118, 129, 103, 112, 109, 108, 107, 123, 112, 119, 108, 119, 112, 109, 112, 111, 126, 113, 113, 117, 133, 116, 117, 121, 113, 119, 98, 116, 113, 110, 110, 122, 118, 114, 115, 111, 120, 119, 115, 124, 116, 129, 108, 116, 124, 114, 134, 111, 114, 119, 117, 121, 116, 128, 131, 112, 105, 102, 120, 120, 119, 117, 110, 111, 114, 114, 116, 121, 119, 105, 116, 108, 106, 133, 115, 115, 120, 116, 120, 109, 117, 108, 108, 105, 114, 124, 110, 115, 117, 118, 114, 105, 101, 115, 114, 105, 114, 111, 109, 125, 111, 120, 110, 120, 121, 126, 119, 123, 119, 111, 124, 125, 114, 110, 121, 111, 113, 121, 107, 114, 103, 114, 115, 106, 116, 103, 120, 127, 109, 102, 107, 113, 122, 127, 116, 116, 121, 117, 122, 107, 118, 122, 118, 125, 113, 107, 117, 114, 106, 115, 113, 117, 101, 110, 113, 115, 135, 118, 118, 128, 112, 114, 109, 116, 117, 113, 127, 117, 119, 113, 100, 120, 113, 132, 106, 111, 122, 112, 116, 110, 113, 114, 120, 110, 114, 114, 120, 111, 113, 117, 119, 105, 97, 125, 122, 132, 115, 120, 101, 111, 94, 108, 110, 116, 103, 117, 116, 112, 106, 126, 109, 108, 105, 120, 113, 106, 107, 127, 107, 109, 119, 112, 124, 115, 98, 108, 111, 114, 116, 113, 113, 105, 108, 128, 106, 132, 118, 109, 124, 122, 117, 115, 113, 107, 119, 127, 119, 119, 112, 116, 123, 115, 117, 113, 112, 119, 113, 123, 101, 114, 109, 113, 117, 129, 103, 119, 123, 121, 121, 127, 106, 116, 102, 109, 106, 105, 119, 125, 110, 101, 112, 108, 121, 116, 107, 105, 113, 107, 113, 111, 118, 112, 119, 105, 114, 107, 120, 109, 102, 104, 107, 117, 108, 133, 123, 110, 96, 104, 114, 109, 117, 105, 114, 112, 124, 111, 120, 104, 108, 108, 106, 120, 111, 120, 125, 104, 123, 109, 101, 109, 110, 111, 122, 112, 118, 134, 111, 112, 113, 109, 108, 121, 114, 105, 125, 106, 115, 116, 138, 119, 118, 117, 112, 124, 110, 117, 111, 132, 100, 113, 103, 114, 130, 102, 121, 121, 114, 109, 110, 120, 129, 104, 111, 111, 118, 114, 111, 110, 109, 108, 116, 93, 116, 107, 112, 108, 113, 107, 112, 117, 108, 108, 112, 116, 101, 105, 117, 120, 117, 120, 128, 116, 122, 111, 106, 109, 108, 115, 123, 114, 111, 116, 111, 114, 106, 106, 114, 112, 127, 103, 111, 114, 116, 113, 130, 127, 108, 113, 124, 107, 116, 110, 123, 107, 122, 106, 113, 120, 108, 114, 111, 128, 117, 120, 122, 114, 122, 102, 108, 113, 109, 116, 117, 100, 115, 119, 118, 119, 114, 113, 111, 107, 114, 115, 108, 125, 115, 123, 127, 117, 110, 115, 118, 112, 111, 108, 110, 113, 125, 118, 116, 110, 112, 100, 107, 119, 110, 110, 113, 111, 124, 114, 113, 128, 112, 120, 93, 108, 116, 114, 123, 111, 104, 122, 101, 103, 118, 117, 118, 114, 127, 103, 113, 113, 128, 121, 123, 113, 116, 111, 102, 127, 119, 105, 114, 122, 113, 113, 111, 110, 109, 120, 125, 99, 112, 111, 120, 115, 124, 112, 115, 120, 120, 108, 132, 117, 126, 112, 116, 110, 106, 97, 108, 130, 112, 116, 119, 126, 120, 100, 118, 128, 119, 104, 118, 117, 114, 106, 108, 116, 118, 126, 111, 118, 112, 123, 128, 117, 116, 108, 104, 117, 113, 130, 113, 108, 114, 106, 110, 114, 118, 119, 131, 101, 119, 115, 111, 108, 111, 111, 113, 108, 121, 101, 104, 122, 110, 114, 104, 107, 101, 110, 113, 105, 125, 108, 122, 112, 108, 104, 117, 108, 115, 99, 109, 110, 118, 113, 116, 96, 109, 118, 105, 117, 108, 107, 121, 120, 116, 108, 96, 104, 116, 104, 118, 112, 123, 120, 130, 107, 126, 111, 114, 126, 113, 123, 129, 121, 133, 112, 118, 125, 113, 133, 119, 128, 106, 110, 115, 109, 124, 115, 119, 108, 100, 112, 116, 120, 116, 124, 109, 109, 119, 114, 119, 94, 106, 117, 109, 107, 115, 124, 111, 115, 115, 99, 107, 95, 107, 107, 108, 116, 116, 115, 111, 113, 121, 125, 117, 117, 116, 119, 109, 117, 116, 124, 116, 112, 109, 117, 106, 107, 117, 109, 112, 101, 111, 129, 116, 123, 115, 105, 107, 120, 121, 128, 113, 111, 102, 124, 122, 101, 114, 124, 117, 109, 119, 116, 103, 118, 112, 115, 116, 104, 113, 115, 109, 113, 110, 99, 120, 110, 124, 129, 105, 109, 108, 114, 115, 109, 108, 108, 121, 120, 117, 120, 120, 116, 126, 100, 111, 100, 108, 99, 111, 98, 118, 125, 130, 112, 108, 120, 114, 115, 116, 122, 114, 120, 102, 104, 122, 114, 134, 119, 114, 114, 115, 110, 118, 102, 103, 106, 108, 120, 109, 115, 115, 109, 113, 123, 113, 134, 119, 114, 118, 129, 114, 127, 119, 109, 112, 124, 118, 129, 116, 106, 115, 124, 119, 115, 114, 111, 116, 119, 111, 122, 111, 121, 110, 118, 118, 104, 116, 119, 103, 109, 106, 124, 107, 111, 112, 123, 107, 113, 109, 108, 108, 110, 113, 119, 113, 125, 123, 110, 101, 107, 125, 111, 135, 108, 95, 119, 118, 105, 124, 103, 99, 110, 121, 115, 112, 114, 104, 111, 110, 108, 135, 121, 111, 117, 118, 107, 117, 105, 129, 115, 124, 110, 113, 125, 99, 119, 116, 121, 112, 114, 117, 118, 139, 110, 107, 115, 108, 110, 118, 111, 98, 126, 109, 122, 112, 111, 108, 114, 124, 107, 116, 114, 110, 115, 108, 105, 113, 118, 116, 130, 130, 118, 117, 123, 111, 102, 125, 129, 118, 107, 104, 125, 102, 102, 109, 124, 115, 117, 123, 114, 120, 124, 107, 136, 129, 124, 109, 116, 110, 114, 106, 103, 111, 110, 111, 106, 113, 104, 125, 112, 119, 114, 114, 122, 115, 127, 111, 119, 104, 111, 115, 118, 116, 106, 109, 116, 123, 104, 112, 107, 117, 115, 86, 112, 129, 116, 119, 119, 113, 112, 119, 130, 117, 114, 113, 127, 111, 121, 126, 132, 118, 133, 105, 113, 120, 117, 118, 124, 109, 105, 125, 128, 106, 135, 104, 121, 113, 117, 122, 98, 118, 95, 113, 118, 133, 117, 112, 113, 123, 119, 120, 106, 113, 107, 114, 121, 125, 99, 115, 108, 113, 128, 114, 100, 106, 111, 116, 106, 131, 119, 107, 100, 112, 108, 107, 116, 120, 116, 108, 113, 105, 114, 111, 108, 122, 121, 127, 118, 103, 113, 112, 114, 106, 122, 113, 112, 114, 116, 125, 113, 119, 118, 111, 118, 126, 105, 122, 114, 113, 115, 111, 103, 121, 121, 108, 114, 103, 113, 115, 115, 112, 107, 118, 123, 112, 103, 125, 109, 113, 125, 110, 131, 114, 113, 105, 104, 113, 122, 92, 120, 103, 109, 114, 106, 113, 113, 105, 112, 122, 108, 123, 108, 122, 129, 112, 110, 120, 108, 112, 150, 116, 120, 136, 116, 117, 116, 110, 125, 113, 138, 122, 120, 116, 116, 122, 130, 110, 118, 108, 119, 118, 115, 115, 108, 106, 125, 119, 112, 141, 115, 110, 111, 114, 118, 108, 118, 113, 115, 116, 110, 120, 120, 102, 85, 112, 122, 107, 118, 97, 117, 110, 112, 115, 116, 110, 118, 125, 115, 114, 125, 130, 115, 104, 114, 110, 116, 114, 124, 124, 117, 118, 111, 118, 118, 113, 135, 117, 112, 101, 127, 116, 121, 112, 113, 106, 116, 114, 110, 106, 118, 116, 117, 122, 116, 104, 122, 110, 115, 112, 117, 112, 104, 108, 113, 111, 109, 112, 109, 119, 108, 119, 109, 128, 115, 111, 114, 106, 112, 119, 109, 111, 112, 122, 121, 124, 114, 101, 111, 107, 121, 116, 113, 114, 146, 114, 113, 113, 127, 122, 118, 130, 105, 101, 121, 119, 131, 113, 125, 146, 109, 111, 113, 119, 101, 119, 110, 103, 96, 113, 128, 113, 110, 117, 118, 108, 104, 127, 107, 131, 118, 109, 113, 108, 124, 110, 108, 121, 114, 116, 97, 109, 101, 117, 108, 108, 113, 122, 113, 106, 122, 110, 121, 115, 109, 127, 129, 114, 112, 114, 116, 101, 100, 107, 121, 124, 99, 111, 116, 111, 109, 108, 108, 110, 116, 102, 106, 116, 117, 113, 105, 114, 118, 109, 121, 110, 108, 88, 112, 111, 103, 113, 115, 108, 114, 136, 118, 136, 115, 111, 113, 113, 127, 108, 114, 125, 134, 119, 94, 119, 107, 120, 105, 120, 111, 109, 121, 103, 118, 121, 128, 110, 113, 107, 109, 149, 129, 116, 97, 125, 112, 122, 115, 111, 106, 125, 112, 113, 127, 119, 109, 101, 112, 116, 99, 115, 124, 120, 107, 111, 113, 132, 121, 112, 108, 116, 111, 115, 122, 113, 108, 108, 111, 130, 99, 109, 112, 128, 128, 114, 124, 108, 113, 98, 123, 122, 109, 104, 108, 117, 122, 110, 122, 112, 110, 112, 106, 114, 109, 116, 114, 112, 112, 119, 106, 115, 110, 120, 109, 118, 126, 103, 114, 115, 124, 116, 111, 110, 122, 111, 109, 99, 121, 120, 107, 115, 110, 115, 111, 110, 107, 114, 113, 122, 111, 122, 106, 120, 123, 115, 118, 110, 111, 117, 98, 114, 104, 119, 123, 112, 109, 114, 129, 109, 113, 118, 121, 104, 109, 108, 117, 119, 129, 115, 114, 118, 107, 109, 105, 103, 117, 115, 118, 112, 111, 129, 112, 120, 99, 113, 117, 111, 114, 118, 118, 121, 103, 113, 110, 107, 109, 128, 108, 120, 125, 123, 104, 119, 111, 123, 130, 112, 101, 130, 107, 108, 116, 116, 122, 102, 123, 108, 112, 116, 127, 121, 111, 116, 115, 113, 103, 121, 116, 119, 102, 112, 115, 110, 119, 115, 121, 112, 110, 118, 119, 117, 128, 110, 107, 101, 125, 119, 119, 118, 99, 117, 115, 103, 106, 117, 124, 113, 115, 114, 113, 117, 103, 102, 109, 108, 103, 120, 116, 117, 109, 118, 133, 118, 99, 121, 121, 118, 106, 109, 122, 111, 118, 120, 109, 117, 116, 105, 122, 114, 104, 107, 126, 119, 98, 129, 121, 113, 121, 125, 113, 108, 123, 111, 113, 102, 134, 105, 120, 123, 122, 120, 137, 114, 118, 121, 113, 120, 106, 121, 129, 106, 112, 110, 116, 106, 120, 116, 113, 124, 116, 111, 114, 114, 125, 122, 133, 114, 99, 104, 115, 121, 120, 122, 95, 99, 104, 114, 110, 116, 105, 123, 118, 125, 118, 104, 116, 127, 94, 108, 111, 117, 114, 104, 131, 114, 115, 105, 116, 115, 119, 114, 107, 119, 108, 110, 115, 115, 107, 112, 120, 99, 121, 115, 111, 120, 122, 100, 123, 118, 120, 127, 122, 118, 109, 125, 109, 116, 104, 111, 118, 117, 125, 123, 111, 98, 107, 119, 93, 112, 127, 125, 112, 121, 107, 118, 111, 121, 106, 118, 104, 120, 108, 115, 122, 119, 106, 119, 116, 114, 112, 107, 131, 126, 104, 116, 116, 119, 116, 108, 114, 121, 126, 111, 103, 109, 104, 114, 135, 113, 114, 114, 117, 105, 114, 108, 116, 121, 107, 120, 136, 123, 112, 113, 123, 115, 103, 121, 107, 111, 111, 110, 108, 117, 127, 115, 112, 102, 131, 113, 123, 109, 122, 117, 128, 96, 111, 111, 124, 106, 111, 111, 123, 116, 116, 122, 106, 107, 118, 115, 125, 112, 122, 111, 116, 107, 119, 125, 113, 113, 112, 114, 116, 115, 113, 133, 111, 118, 120, 103, 112, 133, 105, 109, 108, 97, 120, 98, 109, 107, 126, 125, 105, 118, 112, 111, 113, 119, 115, 108, 116, 107, 107, 118, 116, 113, 106, 119, 127, 106, 98, 121, 122, 126, 114, 123, 133, 115, 108, 116, 121, 104, 128, 112, 109, 112, 105, 110, 111, 116, 113, 109, 107, 113, 119, 107, 117, 117, 127, 126, 122, 114, 119, 131, 123, 128, 117, 116, 110, 109, 106, 107, 117, 120, 107, 132, 113, 108, 121, 130, 112, 116, 123, 111, 103, 119, 120, 107, 98, 122, 127, 115, 123, 103, 107, 110, 116, 117, 127, 113, 111, 108, 111, 99, 116, 115, 113, 104, 110, 117, 115, 105, 98, 115, 113, 108, 122, 112, 125, 121, 125, 115, 110, 104, 105, 124, 106, 119, 114, 95, 133, 123, 120, 134, 113, 106, 116, 108, 122, 114, 109, 104, 107, 118, 109, 126, 104, 118, 107, 118, 104, 109, 106, 119, 121, 126, 119, 123, 113, 99, 117, 115, 116, 126, 121, 110, 117, 128, 123, 116, 123, 107, 107, 127, 110, 126, 103, 107, 114, 104, 110, 98, 136, 120, 87, 122, 115, 135, 112, 114, 106, 111, 117, 104, 106, 111, 115, 114, 121, 115, 117, 115, 129, 119, 110, 117, 100, 107, 120, 130, 112, 115, 106, 127, 118, 134, 113, 126, 124, 120, 116, 109, 106, 113, 108, 122, 106, 110, 129, 113, 106, 109, 116, 109, 136, 108, 113, 118, 116, 109, 122, 114, 109, 118, 117, 106, 117, 128, 120, 130, 120, 117, 111, 118, 128, 118, 125, 105, 109, 118, 127, 122, 113, 115, 116, 114, 120, 119, 115, 124, 124, 114, 101, 112, 107, 111, 106, 113, 120, 98, 131, 116, 118, 119, 122, 136, 120, 111, 102, 114, 113, 121, 122, 119, 113, 108, 117, 107, 105, 96, 116, 108, 102, 113, 118, 105, 108, 125, 109, 104, 102, 117, 124, 113, 115, 100, 127, 100, 123, 105, 118, 115, 105, 100, 111, 122, 114, 121, 103, 97, 112, 117, 109, 117, 114, 107, 118, 101, 113, 99, 113, 103, 114, 125, 118, 95, 117, 102, 106, 118, 120, 113, 107, 119, 117, 109, 119, 114, 114, 106, 110, 110, 107, 141, 106, 107, 105, 121, 102, 119, 116, 108, 125, 113, 117, 113, 115, 114, 113, 112, 121, 110, 113, 121, 126, 125, 111, 115, 116, 111, 136, 116, 111, 99, 124, 135, 103, 114, 106, 115, 116, 113, 121, 120, 109, 122, 113, 114, 98, 117, 110, 103, 120, 117, 114, 116, 108, 127, 105, 108, 121, 112, 118, 117, 133, 120, 118, 135, 116, 123, 109, 103, 123, 125, 131, 109, 107, 110, 119, 100, 116, 110, 121, 104, 121, 111, 114, 109, 116, 117, 129, 102, 122, 110, 114, 105, 114, 118, 105, 114, 127, 107, 111, 113, 108, 112, 109, 105, 106, 119, 126, 119, 117, 104, 115, 113, 109, 114, 104, 118, 113, 103, 113, 110, 121, 112, 115, 120, 105, 111, 118, 117, 107, 114, 115, 110, 101, 118, 102, 115, 114, 109, 112, 129, 125, 112, 113, 107, 113, 104, 108, 111, 109, 103, 119, 112, 122, 115, 137, 120, 119, 110, 111, 119, 118, 111, 106, 109, 102, 111, 109, 128, 99, 103, 113, 120, 112, 111, 121, 115, 113, 111, 115, 125, 111, 107, 109, 116, 126, 104, 122, 106, 90, 113, 112, 114, 123, 109, 114, 102, 121, 126, 121, 127, 118, 122, 115, 123, 125, 118, 127, 122, 118, 125, 109, 115, 105, 121, 112, 110, 100, 104, 129, 114, 113, 107, 104, 115, 113, 127, 122, 112, 117, 119, 120, 118, 107, 121, 111, 120, 121, 175, 113, 110, 121, 115, 115, 108, 116, 115, 113, 114, 113, 114, 120, 107, 110, 112, 103, 109, 113, 116, 108, 113, 144, 112, 112, 103, 126, 119, 120, 122, 110, 110, 105, 119, 113, 128, 114, 121, 117, 125, 119, 128, 120, 122, 112, 114, 105, 125, 114, 113, 123, 114, 119, 122, 113, 112, 110, 116, 110, 114, 117, 119, 108, 114, 112, 122, 114, 119, 105, 122, 123, 112, 117, 109, 110, 119, 114, 109, 113, 115, 121, 113, 113, 117, 110, 122, 119, 114, 127, 111, 120, 112, 114, 116, 118, 106, 111, 117, 115, 122, 100, 115, 120, 113, 114, 113, 114, 119, 110, 117, 111, 117, 110, 107, 152, 116, 124, 110, 105, 116, 119, 123, 103, 107, 115, 120, 111, 120, 111, 116, 116, 116, 110, 110, 121, 122, 110, 114, 122, 122, 114, 116, 105, 118, 111, 112, 121, 116, 102, 118, 107, 117, 119, 119, 124, 110, 116, 104, 117, 110, 115, 120, 112, 98, 131, 118, 123, 109, 121, 111, 110, 117, 117, 123, 113, 119, 122, 120, 111, 111, 119, 119, 116, 113, 112, 61, 97, 117, 121, 108, 106, 113, 119, 111, 117, 117, 114, 106, 114, 127, 112, 106, 123, 122, 116, 100, 114, 117, 122, 103, 104, 120, 107, 123, 114, 106, 116, 109, 114, 112, 111, 121, 111, 114, 107, 118, 124, 107, 102, 120, 117, 118, 108, 109, 108, 113, 109, 126, 117, 114, 111, 119, 110, 113, 112, 108, 125, 110, 115, 111, 121, 114, 110, 111, 118, 111, 119, 121, 128, 120, 110, 116, 121, 112, 124, 109, 116, 130, 111, 119, 112, 108, 118, 117, 116, 122, 120, 105, 113, 119, 113, 102, 115, 130, 114, 117, 103, 105, 118, 116, 113, 120, 111, 113, 117, 127, 117, 99, 115, 132, 105, 117, 115, 114, 112, 119, 112, 112, 106, 106, 123, 114, 116, 121, 118, 120, 128, 125, 110, 125, 124, 124, 121, 126, 107, 104, 117, 113, 113, 113, 111, 120, 120, 115, 135, 108, 114, 109, 112, 117, 125, 119, 116, 113, 108, 84, 123, 105, 110, 113, 114, 117, 114, 118, 117, 112, 114, 112, 121, 130, 115, 116, 133, 116, 109, 111, 84, 106, 122, 100, 119, 112, 122, 116, 115, 118, 128, 109, 112, 113, 101, 117, 112, 120, 113, 107, 124, 109, 106, 112, 122, 127, 102, 125, 107, 127, 111, 123, 126, 108, 117, 123, 122, 113, 131, 123, 107, 102, 114, 114, 114, 113, 107, 118, 107, 118, 109, 122, 110, 110, 127, 120, 100, 126, 115, 116, 122, 118, 115, 117, 106, 115, 129, 108, 122, 107, 119, 112, 102, 111, 130, 115, 117, 109, 128, 121, 118, 112, 128, 111, 110, 116, 111, 90, 123, 117, 114, 113, 111, 117, 117, 113, 104, 110, 127, 112, 106, 108, 105, 111, 131, 116, 116, 121, 124, 107, 120, 123, 112, 115, 104, 119, 125, 104, 111, 116, 118, 116, 105, 128, 124, 99, 129, 126, 111, 107, 109, 114, 105, 114, 110, 109, 119, 120, 123, 122, 117, 114, 129, 116, 107, 100, 131, 117, 115, 117, 120, 108, 128, 129, 111, 112, 114, 123, 119, 114, 110, 114, 112, 116, 109, 105, 121, 110, 111, 119, 127, 118, 96, 100, 121, 120, 135, 103, 109, 112, 118, 103, 121, 124, 121, 118, 129, 113, 104, 118, 114, 113, 111, 110, 121, 129, 109, 118, 116, 133, 112, 119, 122, 112, 146, 115, 101, 110, 130, 111, 119, 122, 112, 116, 109, 108, 118, 131, 124, 122, 121, 117, 107, 118, 118, 92, 108, 114, 106, 109, 116, 86, 120, 103, 104, 122, 106, 108, 107, 110, 115, 118, 103, 128, 110, 106, 105, 116, 117, 102, 118, 106, 119, 107, 108, 126, 113, 118, 121, 120, 112, 111, 120, 114, 123, 103, 97, 108, 94, 113, 116, 121, 110, 142, 123, 114, 128, 124, 118, 129, 114, 114, 101, 136, 117, 117, 125, 113, 116, 116, 116, 109, 96, 123, 120, 118, 114, 105, 104, 108, 122, 124, 119, 127, 124, 102, 94, 129, 108, 120, 90, 108, 115, 95, 122, 120, 128, 123, 109, 112, 99, 108, 105, 112, 136, 118, 118, 116, 122, 113, 111, 120, 107, 124, 99, 115, 124, 114, 126, 122, 128, 120, 104, 140, 121, 115, 121, 108, 102, 117, 118, 112, 119, 112, 116, 113, 145, 104, 97, 106, 124, 112, 125, 118, 115, 123, 111, 118, 131, 107, 108, 120, 124, 101, 120, 110, 106, 110, 105, 107, 105, 118, 99, 111, 118, 112, 132, 115, 95, 117, 107, 124, 112, 115, 125, 112, 119, 103, 99, 114, 131, 96, 106, 120, 123, 112, 114, 116, 109, 125, 112, 116, 120, 113, 115, 103, 114, 96, 113, 116, 102, 105, 115, 98, 100, 122, 114, 134, 115, 116, 108, 122, 120, 114, 110, 115, 121, 115, 123, 114, 112, 123, 120, 119, 105, 111, 149, 109, 117, 122, 125, 118, 119, 99, 117, 125, 129, 119, 115, 120, 116, 115, 100, 108, 107, 110, 128, 101, 123, 112, 108, 112, 124, 88, 114, 92, 122, 113, 108, 120, 109, 115, 121, 126, 131, 116, 95, 99, 117, 115, 127, 98, 123, 108, 121, 119, 116, 117, 118, 125, 102, 100, 110, 121, 117, 123, 113, 112, 113, 122, 126, 111, 91, 109, 119, 107, 119, 108, 117, 101, 108, 114, 121, 121, 114, 130, 118, 111, 111, 110, 107, 120, 106, 106, 135, 127, 108, 110, 119, 109, 121, 107, 109, 104, 113, 101, 114, 119, 105, 122, 97, 106, 104, 109, 123, 125, 115, 103, 108, 103, 111, 122, 119, 105, 108, 95, 119, 113, 113, 109, 117, 118, 112, 113, 113, 107, 122, 115, 100, 104, 116, 123, 112, 130, 107, 118, 117, 134, 130, 106, 115, 144, 140, 122, 124, 110, 121, 115, 106, 135, 118, 117, 115, 107, 121, 119, 121, 114, 114, 110, 121, 134, 119, 109, 118, 115, 111, 101, 108, 112, 106, 121, 120, 115, 114, 124, 110, 132, 126, 122, 105, 106, 118, 113, 118, 137, 113, 118, 119, 113, 120, 124, 102, 120, 115, 115, 107, 113, 122, 113, 122, 118, 112, 122, 105, 117, 112, 129, 117, 122, 105, 109, 122, 116, 108, 112, 102, 105, 125, 123, 115, 97, 120, 121, 114, 97, 118, 112, 111, 124, 125, 117, 111, 106, 107, 127, 111, 122, 125, 100, 112, 112, 122, 112, 111, 112, 108, 124, 112, 116, 108, 112, 116, 120, 112, 104, 117, 122, 108, 118, 117, 110, 110, 114, 116, 121, 109, 114, 113, 115, 113, 115, 109, 109, 125, 113, 113, 116, 117, 113, 123, 119, 114, 108, 101, 115, 122, 119, 107, 120, 105, 125, 127, 122, 107, 122, 106, 112, 126, 116, 124, 110, 114, 116, 116, 104, 124, 119, 115, 112, 112, 120, 112, 125, 103, 114, 105, 119, 112, 104, 117, 116, 119, 111, 109, 110, 106, 125, 107, 118, 115, 119, 117, 133, 114, 124, 113, 126, 115, 112, 120, 114, 112, 111, 125, 125, 114, 114, 119, 113, 108, 121, 117, 121, 104, 120, 114, 109, 113, 126, 107, 113, 101, 126, 125, 117, 108, 117, 129, 124, 121, 104, 127, 106, 129, 114, 110, 115, 122, 109, 110, 111, 110, 120, 117, 108, 121, 132, 126, 109, 113, 106, 110, 112, 115, 109, 128, 117, 112, 127, 110, 121, 114, 108, 120, 109, 116, 117, 121, 126, 122, 116, 113, 89, 108, 111, 112, 131, 111, 113, 103, 119, 105, 116, 128, 112, 119, 115, 117, 113, 113, 115, 124, 112, 110, 111, 104, 109, 122, 116, 107, 115, 105, 104, 122, 111, 118, 117, 109, 116, 115, 117, 116, 111, 126, 102, 117, 115, 113, 111, 124, 118, 116, 119, 103, 114, 124, 117, 109, 115, 114, 112, 110, 118, 113, 119, 117, 114, 113, 123, 110, 131, 120, 112, 114, 137, 124, 111, 120, 104, 128, 120, 115, 104, 111, 111, 116, 123, 116, 113, 127, 117, 124, 103, 104, 111, 122, 119, 114, 108, 110, 115, 111, 117, 117, 132, 129, 120, 119, 107, 106, 124, 115, 116, 105, 124, 119, 118, 122, 113, 111, 126, 121, 126, 105, 118, 118, 123, 99, 111, 111, 114, 121, 118, 124, 112, 117, 119, 121, 125, 102, 121, 123, 119, 114, 120, 103, 122, 127, 116, 127, 140, 113, 109, 112, 117, 103, 124, 113, 107, 111, 116, 108, 115, 113, 126, 103, 120, 113, 113, 106, 111, 110, 109, 125, 113, 124, 99, 111, 107, 114, 106, 116, 114, 114, 107, 110, 111, 110, 111, 107, 114, 112, 109, 118, 104, 115, 129, 107, 126, 111, 112, 109, 123, 118, 112, 131, 132, 114, 121, 121, 111, 101, 104, 113, 108, 133, 116, 124, 113, 117, 119, 110, 123, 123, 116, 123, 115, 119, 115, 116, 121, 132, 121, 123, 116, 107, 115, 112, 104, 115, 111, 123, 110, 109, 111, 110, 108, 115, 121, 126, 111, 117, 105, 108, 134, 112, 94, 107, 114, 116, 126, 114, 110, 119, 118, 106, 118, 108, 110, 124, 108, 100, 123, 126, 121, 122, 106, 141, 120, 119, 107, 114, 116, 110, 110, 117, 105, 118, 124, 113, 117, 115, 112, 110, 108, 117, 120, 113, 120, 123, 114, 126, 132, 116, 122, 124, 107, 121, 108, 115, 107, 113, 107, 116, 105, 117, 119, 107, 110, 107, 104, 116, 107, 102, 123, 115, 107, 129, 126, 125, 113, 112, 119, 120, 118, 116, 110, 110, 116, 125, 128, 99, 113, 105, 112, 126, 119, 113, 123, 130, 128, 111, 116, 113, 118, 114, 101, 111, 106, 125, 119, 103, 114, 115, 104, 102, 99, 117, 115, 113, 107, 124, 118, 120, 104, 123, 108, 111, 111, 122, 113, 117, 109, 120, 109, 108, 99, 113, 120, 129, 109, 106, 115, 122, 107, 115, 103, 114, 110, 101, 109, 112, 113, 115, 119, 115, 101, 111, 124, 105, 116, 124, 128, 113, 112, 128, 115, 121, 101, 117, 119, 106, 114, 111, 116, 123, 121, 115, 132, 121, 124, 109, 112, 101, 124, 124, 109, 98, 114, 117, 111, 111, 112, 110, 103, 117, 111, 114, 120, 99, 115, 106, 118, 103, 109, 120, 107, 109, 113, 113, 112, 118, 118, 125, 114, 122, 123, 119, 108, 127, 108, 96, 118, 102, 115, 129, 112, 115, 113, 111, 114, 115, 120, 114, 103, 131, 116, 106, 113, 119, 114, 121, 119, 114, 121, 110, 117, 118, 109, 126, 113, 107, 115, 110, 117, 119, 122, 128, 111, 122, 106, 110, 103, 127, 110, 127, 110, 136, 112, 116, 107, 123, 106, 104, 112, 132, 113, 122, 115, 112, 109, 118, 101, 119, 123, 117, 99, 122, 107, 103, 115, 119, 121, 118, 113, 120, 125, 138, 121, 97, 110, 108, 102, 124, 119, 114, 122, 104, 109, 111, 127, 118, 123, 111, 106, 118, 119, 129, 121, 104, 117, 105, 98, 101, 124, 117, 114, 117, 120, 110, 125, 119, 103, 115, 121, 120, 116, 105, 117, 109, 111, 117, 96, 121, 112, 119, 121, 108, 114, 113, 117, 105, 116, 113, 114, 108, 122, 109, 113, 102, 110, 107, 113, 117, 122, 111, 116, 113, 116, 112, 121, 117, 123, 119, 104, 119, 110, 120, 105, 113, 116, 115, 109, 111, 109, 114, 123, 114, 115, 99, 122, 114, 121, 118, 108, 112, 110, 115, 116, 119, 111, 114, 121, 115, 115, 108, 113, 119, 117, 111, 115, 121, 132, 106, 107, 111, 110, 120, 123, 122, 124, 121, 118, 112, 120, 112, 119, 110, 120, 117, 115, 111, 117, 108, 121, 123, 122, 104, 109, 117, 114, 105, 116, 123, 113, 124, 111, 104, 113, 105, 109, 127, 106, 123, 120, 129, 121, 115, 118, 119, 125, 117, 113, 124, 108, 101, 128, 113, 110, 127, 130, 114, 117, 110, 114, 114, 124, 117, 112, 115, 106, 129, 116, 104, 109, 120, 119, 116, 101, 111, 116, 130, 114, 100, 118, 111, 109, 116, 110, 115, 108, 120, 113, 127, 111, 113, 113, 116, 110, 109, 118, 128, 116, 120, 122, 121, 124, 124, 121, 128, 115, 115, 128, 115, 119, 114, 113, 108, 101, 123, 119, 112, 108, 114, 110, 103, 115, 125, 118, 116, 122, 114, 120, 126, 115, 110, 111, 109, 115, 116, 113, 115, 114, 113, 119, 113, 121, 122, 119, 109, 113, 125, 127, 109, 107, 114, 116, 121, 124, 122, 123, 119, 117, 111, 107, 122, 113, 111, 110, 110, 114, 110, 113, 118, 115, 117, 115, 114, 109, 124, 115, 109, 104, 117, 113, 114, 125, 111, 116, 119, 111, 116, 108, 116, 114, 113, 123, 104, 113, 113, 111, 112, 112, 119, 109, 120, 118, 117, 105, 113, 115, 112, 112, 116, 115, 109, 120, 113, 118, 120, 106, 110, 126, 121, 119, 109, 111, 124, 105, 113, 120, 116, 120, 117, 115, 114, 120, 114, 135, 129, 111, 105, 105, 121, 110, 115, 103, 116, 113, 130, 117, 114, 112, 112, 109, 108, 112, 111, 114, 121, 117, 107, 118, 120, 115, 114, 112, 115, 117, 111, 122, 120, 109, 111, 106, 110, 117, 122, 126, 113, 124, 113, 115, 116, 102, 114, 108, 119, 122, 115, 118, 117, 110, 115, 119, 114, 107, 110, 122, 120, 109, 120, 114, 107, 120, 121, 113, 111, 121, 108, 112, 118, 108, 112, 112, 113, 111, 113, 107, 120, 115, 128, 114, 121, 109, 116, 104, 114, 108, 115, 117, 120, 118, 116, 118, 110, 114, 115, 111, 118, 110, 117, 101, 106, 99, 112, 117, 112, 125, 126, 111, 117, 110, 123, 116, 114, 122, 118, 120, 113, 122, 120, 126, 120, 106, 118, 116, 122, 129, 116, 115, 114, 115, 112, 116, 111, 111, 118, 119, 112, 119, 122, 110, 117, 118, 110, 121, 122, 112, 100, 124, 121, 123, 116, 124, 106, 126, 111, 107, 110, 107, 114, 114, 116, 114, 115, 115, 124, 109, 119, 115, 79, 112, 118, 115, 123, 126, 111, 116, 113, 110, 110, 116, 111, 126, 120, 107, 116, 110, 127, 113, 113, 116, 115, 118, 108, 118, 121, 122, 116, 118, 105, 127, 126, 119, 118, 106, 118, 116, 120, 110, 119, 127, 110, 106, 122, 114, 109, 118, 129, 123, 128, 119, 112, 121, 117, 103, 115, 113, 119, 109, 115, 116, 111, 109, 104, 117, 119, 124, 106, 107, 104, 113, 119, 128, 129, 119, 111, 114, 119, 112, 114, 119, 111, 118, 121, 114, 114, 115, 130, 110, 112, 115, 124, 121, 109, 114, 118, 112, 111, 121, 124, 130, 114, 128, 122, 113, 108, 115, 116, 118, 115, 103, 116, 121, 126, 110, 113, 115, 111, 113, 122, 112, 117, 114, 114, 111, 118, 109, 117, 110, 114, 114, 108, 108, 110, 112, 114, 128, 110, 116, 111, 116, 107, 122, 113, 118, 114, 115, 104, 118, 111, 121, 108, 124, 111, 112, 118, 114, 118, 113, 110, 120, 110, 112, 111, 133, 121, 123, 126, 116, 111, 123, 116, 127, 123, 117, 117, 125, 106, 115, 117, 120, 110, 122, 118, 128, 121, 111, 116, 115, 107, 115, 113, 126, 109, 116, 119, 115, 118, 118, 115, 111, 116, 113, 111, 115, 111, 116, 117, 116, 111, 109, 114, 105, 114, 115, 97, 121, 122, 125, 129, 119, 116, 121, 105, 117, 117, 116, 119, 118, 113, 97, 104, 116, 118, 113, 96, 119, 116, 103, 115, 118, 125, 115, 112, 122, 120, 107, 107, 106, 111, 105, 122, 119, 116, 141, 115, 109, 117, 114, 115, 114, 124, 114, 132, 112, 125, 119, 120, 116, 115, 115, 114, 116, 116, 106, 106, 106, 89, 106, 121, 118, 111, 108, 105, 116, 126, 121, 115, 119, 112, 119, 106, 114, 123, 121, 125, 125, 112, 104, 113, 131, 110, 113, 121, 118, 116, 126, 125, 113, 108, 117, 112, 108, 110, 114, 105, 111, 122, 120, 123, 100, 122, 108, 102, 113, 137, 116, 123, 123, 116, 99, 97, 117, 120, 122, 115, 119, 103, 114, 111, 106, 117, 109, 117, 114, 110, 130, 112, 119, 121, 127, 111, 122, 127, 108, 116, 124, 114, 109, 115, 121, 113, 112, 116, 114, 120, 112, 115, 108, 104, 124, 130, 119, 121, 122, 111, 106, 105, 101, 120, 106, 120, 113, 117, 118, 120, 109, 118, 123, 102, 124, 108, 134, 121, 255, 85, 114, 107, 100, 110, 113, 130, 122, 107, 118, 119, 125, 120, 121, 113, 110, 116, 122, 117, 113, 121, 114, 110, 112, 112, 120, 130, 101, 119, 119, 118, 116, 116, 119, 107, 113, 109, 126, 103, 11, 121, 106, 117, 120, 120, 115, 116, 103, 110, 109, 117, 93, 114, 108, 116, 111, 117, 119, 121, 113, 106, 108, 111, 109, 127, 116, 115, 106, 132, 112, 116, 134, 120, 113, 115, 118, 131, 121, 123, 114, 103, 114, 108, 106, 117, 109, 116, 106, 113, 128, 115, 113, 123, 118, 126, 112, 124, 118, 119, 110, 116, 120, 122, 111, 108, 113, 124, 90, 112, 112, 123, 107, 126, 113, 132, 107, 111, 115, 109, 131, 102, 98, 113, 100, 107, 108, 117, 111, 121, 106, 122, 118, 112, 118, 115, 127, 116, 110, 116, 122, 115, 120, 111, 119, 116, 121, 123, 108, 119, 135, 115, 115, 110, 124, 113, 118, 118, 126, 125, 104, 117, 115, 116, 141, 119, 117, 118, 123, 118, 119, 124, 113, 113, 116, 113, 117, 118, 105, 119, 110, 114, 105, 114, 116, 118, 124, 151, 117, 121, 125, 115, 103, 126, 126, 115, 103, 107, 130, 116, 116, 110, 118, 102, 107, 116, 114, 112, 109, 130, 120, 117, 103, 100, 117, 106, 108, 113, 114, 104, 109, 117, 111, 110, 122, 106, 112, 118, 117, 110, 106, 117, 109, 115, 130, 115, 135, 124, 108, 124, 115, 114, 113, 114, 97, 114, 116, 112, 115, 102, 105, 119, 113, 115, 125, 106, 119, 104, 109, 129, 108, 120, 125, 117, 103, 111, 123, 108, 106, 118, 112, 119, 117, 109, 116, 117, 117, 111, 116, 122, 113, 110, 110, 117, 101, 116, 121, 122, 121, 94, 104, 99, 138, 101, 106, 107, 136, 101, 103, 111, 118, 103, 94, 114, 108, 122, 120, 112, 109, 108, 102, 131, 113, 119, 120, 115, 125, 129, 119, 108, 126, 124, 126, 117, 121, 112, 109, 116, 117, 109, 120, 112, 127, 127, 111, 113, 101, 103, 111, 115, 116, 122, 111, 120, 103, 110, 109, 114, 123, 115, 111, 116, 112, 112, 118, 103, 112, 113, 119, 113, 103, 110, 111, 116, 120, 123, 120, 105, 113, 114, 130, 130, 111, 123, 119, 114, 122, 119, 111, 114, 115, 120, 124, 114, 117, 112, 117, 105, 119, 110, 111, 114, 106, 105, 111, 128, 110, 123, 117, 118, 115, 110, 108, 120, 115, 113, 112, 113, 109, 114, 118, 115, 116, 110, 106, 128, 110, 115, 111, 110, 105, 110, 118, 129, 123, 113, 118, 123, 118, 104, 108, 108, 112, 112, 112, 119, 128, 113, 123, 120, 125, 120, 119, 118, 120, 119, 121, 119, 111, 128, 113, 124, 120, 114, 125, 108, 121, 122, 128, 109, 115, 113, 112, 114, 87, 112, 121, 124, 112, 117, 112, 113, 125, 110, 105, 113, 112, 115, 113, 124, 132, 120, 108, 104, 118, 115, 105, 137, 118, 115, 112, 117, 119, 114, 122, 123, 114, 127, 120, 112, 119, 125, 112, 115, 109, 114, 113, 126, 121, 115, 113, 125, 122, 110, 111, 120, 110, 111, 111, 110, 108, 112, 117, 125, 116, 121, 114, 119, 114, 111, 114, 124, 104, 113, 108, 114, 125, 111, 123, 112, 110, 113, 133, 99, 122, 124, 120, 115, 110, 128, 115, 115, 125, 119, 110, 111, 112, 127, 100, 112, 113, 113, 112, 116, 117, 104, 113, 112, 114, 120, 120, 117, 113, 110, 128, 116, 125, 106, 126, 121, 114, 111, 113, 114, 108, 113, 113, 109, 123, 113, 112, 114, 115, 114, 116, 107, 112, 121, 119, 110, 118, 111, 118, 115, 113, 127, 114, 98, 117, 131, 103, 111, 120, 115, 116, 115, 112, 110, 127, 115, 112, 111, 119, 117, 115, 113, 111, 116, 124, 120, 111, 118, 114, 106, 103, 118, 110, 116, 98, 105, 110, 119, 123, 107, 114, 116, 112, 127, 120, 111, 99, 117, 131, 124, 108, 118, 115, 116, 125, 113, 125, 111, 109, 115, 115, 117, 117, 112, 106, 120, 124, 105, 113, 113, 129, 108, 124, 134, 118, 112, 112, 109, 117, 111, 117, 114, 107, 106, 113, 117, 122, 114, 103, 119, 116, 113, 113, 119, 116, 124, 110, 115, 111, 123, 99, 128, 122, 115, 128, 109, 113, 102, 115, 109, 116, 119, 115, 129, 118, 109, 110, 117, 114, 111, 102, 115, 121, 114, 108, 120, 111, 117, 113, 105, 130, 119, 108, 113, 108, 126, 114, 116, 118, 117, 121, 112, 107, 116, 95, 118, 117, 120, 114, 110, 115, 116, 109, 100, 107, 114, 108, 112, 115, 112, 114, 111, 109, 107, 114, 111, 121, 122, 116, 108, 119, 117, 105, 118, 112, 113, 114, 119, 127, 129, 113, 114, 123, 120, 110, 122, 133, 111, 110, 111, 108, 117, 123, 108, 119, 120, 113, 142, 112, 120, 118, 128, 118, 108, 108, 112, 118, 113, 127, 120, 108, 118, 110, 118, 116, 97, 119, 113, 136, 118, 116, 113, 119, 115, 117, 110, 102, 114, 119, 110, 116, 121, 117, 116, 109, 112, 114, 120, 114, 104, 111, 119, 107, 110, 112, 107, 116, 110, 116, 114, 114, 110, 104, 120, 125, 119, 116, 99, 109, 112, 121, 119, 107, 120, 115, 119, 116, 114, 121, 112, 116, 113, 117, 105, 120, 107, 124, 117, 111, 103, 113, 111, 110, 114, 116, 116, 107, 125, 103, 115, 111, 102, 108, 104, 107, 119, 125, 121, 128, 125, 113, 102, 123, 108, 115, 107, 116, 122, 107, 115, 117, 111, 111, 115, 115, 119, 125, 108, 112, 115, 102, 115, 116, 119, 112, 112, 114, 125, 120, 112, 106, 110, 112, 112, 115, 110, 118, 127, 108, 135, 130, 112, 104, 119, 117, 150, 115, 108, 128, 115, 108, 113, 118, 103, 101, 107, 106, 113, 114, 110, 109, 120, 111, 113, 112, 117, 112, 115, 108, 128, 115, 118, 117, 118, 118, 116, 114, 106, 105, 116, 117, 108, 131, 123, 120, 114, 113, 113, 114, 116, 105, 106, 105, 112, 121, 111, 117, 114, 109, 108, 110, 119, 118, 111, 118, 120, 124, 118, 108, 115, 111, 122, 123, 110, 120, 116, 118, 115, 115, 118, 117, 117, 108, 105, 105, 110, 124, 111, 118, 116, 119, 109, 116, 120, 122, 122, 120, 115, 117, 105, 121, 112, 115, 110, 127, 109, 120, 100, 114, 120, 127, 113, 117, 107, 107, 122, 113, 117, 114, 104, 118, 103, 119, 114, 114, 109, 123, 112, 113, 119, 110, 108, 112, 107, 105, 110, 114, 130, 120, 135, 116, 122, 120, 110, 114, 120, 112, 116, 89, 114, 107, 115, 134, 119, 112, 117, 109, 113, 108, 103, 116, 115, 121, 109, 106, 113, 112, 112, 123, 94, 118, 116, 109, 117, 103, 129, 106, 116, 112, 109, 122, 102, 123, 115, 114, 120, 107, 122, 119, 118, 112, 123, 112, 117, 106, 117, 115, 111, 122, 104, 117, 115, 117, 109, 109, 114, 113, 122, 111, 114, 116, 107, 124, 127, 112, 115, 111, 114, 105, 91, 119, 112, 111, 126, 120, 81, 111, 96, 115, 116, 108, 113, 116, 116, 116, 123, 125, 109, 114, 126, 118, 117, 108, 113, 121, 105, 115, 115, 113, 109, 105, 124, 117, 109, 105, 120, 108, 112, 124, 105, 117, 117, 120, 119, 115, 116, 118, 112, 128, 109, 114, 117, 103, 124, 105, 107, 108, 130, 116, 99, 115, 117, 122, 116, 114, 107, 119, 116, 116, 115, 110, 128, 125, 117, 107, 107, 116, 121, 107, 117, 114, 129, 111, 112, 120, 112, 123, 112, 121, 138, 117, 100, 116, 109, 129, 119, 132, 104, 113, 108, 142, 115, 119, 118, 107, 117, 108, 117, 106, 121, 114, 114, 104, 123, 111, 107, 117, 109, 107, 130, 119, 118, 129, 109, 114, 120, 112, 112, 115, 108, 115, 121, 104, 107, 108, 120, 114, 119, 111, 107, 102, 123, 106, 111, 105, 99, 111, 116, 104, 100, 103, 111, 130, 112, 106, 120, 119, 118, 105, 115, 120, 120, 117, 118, 105, 101, 121, 113, 141, 110, 115, 123, 108, 152, 111, 131, 116, 116, 124, 118, 128, 103, 113, 110, 120, 117, 132, 111, 109, 109, 110, 108, 110, 121, 104, 115, 100, 103, 125, 123, 116, 127, 117, 112, 123, 104, 116, 113, 107, 121, 100, 122, 118, 104, 113, 126, 114, 107, 108, 109, 108, 104, 108, 118, 116, 103, 116, 114, 110, 120, 117, 123, 118, 125, 112, 108, 102, 116, 112, 111, 111, 103, 117, 110, 124, 113, 118, 96, 117, 116, 108, 94, 107, 122, 97, 109, 111, 118, 121, 109, 109, 125, 121, 113, 124, 111, 114, 103, 114, 106, 113, 123, 99, 115, 102, 116, 119, 108, 115, 111, 130, 103, 109, 111, 112, 121, 120, 104, 123, 129, 116, 133, 122, 104, 119, 114, 107, 121, 117, 106, 135, 136, 106, 113, 109, 95, 116, 110, 127, 114, 110, 110, 116, 105, 111, 123, 112, 104, 106, 97, 117, 108, 116, 109, 107, 122, 99, 125, 116, 110, 107, 120, 123, 125, 104, 114, 105, 121, 109, 107, 108, 109, 109, 108, 113, 117, 115, 108, 111, 112, 108, 109, 110, 127, 127, 115, 109, 110, 120, 124, 114, 112, 115, 109, 118, 132, 107, 112, 113, 116, 104, 104, 122, 110, 108, 114, 106, 111, 131, 115, 123, 115, 117, 111, 101, 111, 117, 122, 110, 105, 124, 115, 119, 121, 110, 114, 122, 118, 105, 110, 117, 108, 115, 119, 130, 119, 101, 127, 125, 104, 109, 103, 113, 119, 120, 107, 105, 136, 110, 113, 111, 110, 110, 117, 106, 106, 111, 103, 123, 126, 115, 108, 116, 120, 108, 111, 112, 106, 115, 118, 107, 139, 100, 115, 111, 102, 106, 120, 117, 119, 125, 115, 117, 119, 127, 107, 107, 113, 123, 112, 115, 99, 117, 108, 111, 103, 105, 104, 104, 114, 112, 132, 102, 109, 107, 108, 122, 121, 127, 118, 117, 112, 113, 111, 117, 107, 108, 120, 124, 109, 121, 117, 103, 114, 114, 113, 109, 120, 115, 101, 110, 124, 125, 115, 122, 124, 105, 117, 112, 110, 100, 108, 106, 105, 99, 129, 115, 110, 105, 121, 133, 105, 113, 117, 120, 114, 108, 104, 131, 124, 114, 109, 110, 106, 120, 122, 121, 107, 114, 122, 119, 117, 110, 125, 113, 110, 111, 113, 126, 126, 112, 124, 112, 104, 112, 121, 113, 114, 115, 107, 120, 106, 116, 106, 119, 120, 109, 126, 108, 108, 118, 118, 131, 103, 115, 106, 98, 109, 127, 108, 118, 113, 112, 115, 107, 124, 111, 95, 105, 119, 106, 114, 117, 110, 120, 115, 118, 122, 124, 114, 121, 124, 121, 117, 98, 103, 116, 119, 110, 126, 109, 118, 114, 117, 124, 127, 121, 107, 106, 118, 117, 102, 106, 110, 104, 132, 114, 121, 110, 125, 113, 105, 108, 113, 120, 111, 116, 97, 114, 124, 113, 106, 105, 117, 116, 119, 116, 115, 124, 125, 121, 115, 120, 108, 115, 123, 108, 122, 126, 117, 112, 107, 116, 100, 120, 124, 115, 102, 127, 104, 113, 126, 114, 105, 102, 104, 104, 109, 120, 102, 129, 119, 114, 133, 108, 116, 118, 123, 100, 113, 123, 121, 119, 126, 115, 114, 106, 124, 107, 120, 108, 114, 117, 114, 112, 112, 109, 116, 119, 121, 113, 112, 113, 119, 108, 120, 115, 115, 117, 110, 114, 110, 115, 109, 114, 115, 115, 113, 116, 110, 110, 116, 119, 111, 120, 110, 121, 118, 116, 119, 112, 117, 110, 114, 108, 115, 118, 112, 109, 113, 110, 106, 111, 118, 116, 110, 111, 112, 115, 117, 110, 117, 101, 105, 117, 120, 112, 118, 117, 120, 120, 116, 115, 120, 115, 116, 120, 111, 113, 118, 115, 123, 117, 108, 117, 111, 110, 130, 114, 113, 121, 114, 109, 113, 111, 114, 113, 110, 113, 99, 115, 112, 114, 115, 119, 122, 115, 116, 114, 109, 118, 117, 107, 114, 115, 121, 117, 116, 118, 112, 115, 116, 110, 118, 115, 112, 117, 116, 120, 113, 113, 119, 119, 97, 114, 112, 117, 109, 105, 115, 113, 120, 120, 118, 120, 114, 114, 110, 115, 114, 119, 121, 115, 114, 120, 112, 115, 116, 120, 102, 117, 116, 117, 120, 114, 117, 111, 117, 118, 108, 113, 114, 122, 113, 116, 116, 113, 110, 118, 115, 111, 117, 117, 111, 117, 118, 122, 114, 113, 112, 116, 114, 113, 119, 117, 110, 115, 116, 111, 119, 124, 117, 117, 110, 116, 106, 116, 114, 115, 121, 114, 115, 118, 122, 112, 112, 114, 120, 120, 113, 107, 113, 114, 110, 118, 117, 119, 117, 117, 112, 112, 116, 117, 120, 115, 116, 120, 121, 110, 116, 119, 121, 118, 113, 114, 115, 115, 105, 117, 110, 124, 114, 111, 113, 110, 113, 117, 112, 118, 116, 117, 114, 122, 116, 116, 115, 117, 112, 119, 118, 105, 113, 115, 115, 116, 111, 104, 117, 121, 115, 119, 113, 114, 115, 119, 116, 118, 119, 116, 106, 113, 114, 115, 122, 119, 118, 112, 116, 118, 124, 117, 119, 105, 123, 111, 123, 115, 119, 111, 111, 109, 123, 117, 115, 123, 117, 114, 112, 118, 115, 112, 115, 119, 112, 118, 116, 112, 109, 121, 122, 117, 114, 114, 114, 114, 117, 119, 122, 114, 111, 112, 125, 113, 114, 118, 116, 114, 117, 115, 121, 111, 116, 115, 120, 112, 120, 118, 118, 115, 117, 120, 118, 114, 115, 115, 120, 110, 125, 116, 117, 113, 124, 117, 114, 108, 118, 110, 114, 110, 115, 112, 113, 109, 112, 109, 115, 110, 116, 106, 117, 117, 118, 110, 120, 112, 114, 115, 119, 112, 119, 109, 113, 120, 125, 123, 116, 114, 114, 120, 116, 110, 109, 123, 117, 112, 118, 113, 118, 122, 118, 110, 114, 103, 110, 118, 112, 117, 117, 116, 115, 117, 122, 116, 117, 117, 120, 116, 110, 104, 113, 111, 116, 110, 119, 111, 109, 118, 116, 116, 121, 107, 114, 112, 118, 122, 120, 107, 115, 113, 115, 111, 114, 122, 111, 116, 113, 118, 117, 119, 111, 120, 116, 109, 110, 116, 121, 116, 113, 119, 119, 120, 110, 119, 120, 119, 123, 118, 118, 110, 113, 114, 125, 116, 115, 114, 107, 116, 110, 115, 109, 110, 117, 118, 117, 116, 116, 119, 118, 110, 113, 113, 116, 114, 116, 105, 137, 111, 123, 106, 98, 131, 131, 91, 108, 124, 130, 106, 114, 106, 118, 121, 114, 128, 105, 109, 123, 107, 130, 112, 103, 114, 108, 140, 117, 106, 113, 110, 114, 117, 125, 119, 113, 110, 123, 106, 109, 109, 109, 125, 107, 106, 97, 121, 97, 128, 104, 108, 100, 125, 171, 138, 123, 119, 114, 105, 113, 116, 117, 106, 108, 120, 105, 103, 128, 121, 122, 126, 118, 132, 108, 104, 115, 126, 99, 108, 108, 98, 107, 123, 129, 125, 119, 116, 108, 119, 105, 104, 139, 109, 111, 108, 113, 128, 112, 105, 104, 123, 94, 120, 114, 115, 108, 129, 110, 109, 121, 136, 116, 116, 117, 119, 112, 132, 116, 103, 116, 127, 114, 121, 105, 110, 111, 111, 111, 107, 115, 121, 106, 114, 129, 103, 121, 109, 118, 106, 111, 128, 98, 110, 99, 149, 126, 138, 115, 138, 109, 105, 102, 105, 112, 96, 115, 104, 111, 117, 121, 112, 112, 99, 121, 116, 102, 96, 105, 110, 111, 98, 102, 121, 116, 116, 118, 124, 110, 106, 104, 122, 117, 112, 105, 126, 120, 108, 106, 102, 121, 98, 106, 105, 108, 109, 116, 95, 110, 121, 109, 107, 112, 131, 105, 116, 112, 102, 110, 104, 111, 108, 121, 115, 102, 114, 132, 109, 121, 115, 122, 124, 117, 115, 114, 103, 106, 131, 108, 115, 112, 116, 165, 113, 113, 113, 111, 115, 120, 127, 142, 123, 135, 131, 111, 111, 133, 114, 118, 101, 104, 120, 125, 112, 135, 106, 137, 112, 114, 111, 116, 120, 119, 81, 103, 114, 129, 103, 117, 121, 132, 102, 118, 114, 108, 120, 109, 115, 116, 122, 111, 109, 111, 100, 108, 125, 110, 109, 122, 118, 120, 124, 124, 99, 94, 118, 123, 104, 107, 124, 116, 114, 109, 110, 122, 120, 115, 128, 102, 81, 112, 115, 108, 120, 129, 111, 106, 117, 107, 115, 118, 125, 116, 108, 130, 121, 109, 114, 107, 116, 123, 121, 111, 111, 117, 106, 104, 110, 93, 108, 121, 103, 127, 115, 119, 117, 112, 120, 111, 117, 119, 112, 129, 107, 109, 87, 101, 108, 99, 101, 105, 121, 119, 115, 113, 106, 109, 122, 111, 117, 127, 116, 133, 107, 112, 118, 111, 115, 113, 105, 102, 113, 122, 107, 103, 110, 112, 109, 118, 86, 128, 113, 112, 108, 121, 112, 107, 102, 130, 100, 112, 113, 112, 90, 107, 112, 103, 120, 129, 112, 121, 113, 125, 98, 109, 114, 124, 122, 109, 114, 97, 100, 123, 117, 123, 101, 113, 107, 103, 112, 118, 109, 99, 96, 111, 110, 113, 116, 112, 104, 108, 109, 104, 135, 111, 116, 112, 105, 115, 121, 112, 117, 122, 109, 89, 120, 138, 124, 113, 106, 129, 116, 112, 143, 111, 115, 101, 119, 121, 128, 96, 114, 109, 103, 111, 120, 109, 118, 123, 114, 110, 104, 117, 115, 103, 117, 117, 132, 125, 109, 120, 117, 121, 117, 111, 120, 107, 112, 113, 123, 119, 118, 112, 119, 118, 104, 114, 127, 107, 108, 109, 110, 123, 127, 135, 124, 101, 134, 109, 110, 122, 109, 107, 111, 113, 106, 95, 91, 117, 109, 128, 124, 122, 120, 122, 115, 105, 112, 113, 115, 123, 112, 108, 115, 155, 94, 126, 119, 103, 119, 107, 121, 123, 113, 117, 116, 101, 119, 118, 116, 106, 127, 107, 112, 113, 132, 112, 102, 117, 123, 121, 134, 111, 146, 116, 113, 137, 140, 111, 126, 114, 124, 127, 110, 103, 102, 115, 120, 119, 120, 109, 115, 114, 116, 130, 109, 103, 132, 125, 122, 118, 133, 121, 114, 106, 119, 108, 124, 125, 107, 118, 135, 122, 117, 125, 117, 106, 126, 129, 110, 153, 118, 129, 120, 120, 123, 110, 108, 115, 103, 108, 117, 111, 111, 124, 102, 132, 104, 118, 120, 119, 124, 113, 107, 117, 105, 107, 116, 107, 118, 122, 98, 113, 111, 122, 106, 114, 98, 104, 117, 115, 104, 113, 116, 123, 132, 117, 127, 112, 121, 120, 118, 121, 102, 126, 105, 130, 102, 110, 117, 110, 146, 120, 118, 120, 123, 135, 112, 111, 103, 132, 113, 103, 134, 117, 120, 141, 125, 118, 121, 120, 132, 121, 131, 113, 116, 137, 118, 105, 111, 98, 114, 119, 109, 123, 127, 110, 123, 115, 117, 163, 113, 110, 121, 112, 106, 115, 122, 105, 100, 140, 120, 112, 120, 95, 117, 108, 123, 120, 109, 115, 119, 99, 118, 103, 126, 109, 114, 119, 114, 111, 126, 107, 119, 108, 117, 116, 119, 145, 120, 114, 126, 121, 109, 111, 109, 114, 104, 130, 122, 117, 115, 133, 112, 123, 116, 111, 111, 114, 128, 115, 106, 109, 125, 114, 128, 122, 120, 110, 121, 109, 109, 123, 122, 170, 113, 107, 116, 110, 118, 108, 110, 102, 116, 113, 108, 120, 186, 131, 123, 105, 117, 108, 101, 115, 114, 117, 110, 101, 108, 126, 121, 115, 114, 114, 109, 100, 118, 123, 114, 115, 104, 116, 118, 118, 98, 106, 112, 124, 103, 109, 118, 127, 122, 112, 102, 99, 111, 109, 104, 114, 133, 145, 123, 121, 127, 103, 121, 101, 107, 105, 112, 111, 106, 107, 117, 117, 109, 119, 120, 116, 104, 107, 116, 120, 117, 106, 123, 105, 106, 125, 120, 119, 111, 106, 102, 108, 119, 109, 114, 110, 113, 118, 123, 122, 121, 110, 128, 126, 124, 111, 117, 110, 111, 118, 122, 118, 103, 96, 114, 114, 108, 119, 123, 116, 113, 133, 113, 118, 110, 118, 134, 118, 115, 110, 125, 111, 106, 111, 121, 113, 93, 107, 111, 137, 115, 113, 96, 122, 114, 113, 130, 109, 123, 105, 144, 108, 133, 118, 111, 134, 158, 109, 117, 114, 108, 110, 128, 116, 118, 115, 105, 147, 110, 118, 109, 119, 111, 126, 119, 104, 117, 114, 106, 113, 119, 110, 110, 119, 97, 99, 120, 124, 85, 112, 114, 112, 120, 122, 121, 130, 111, 117, 106, 117, 115, 103, 113, 82, 110, 108, 100, 118, 117, 123, 114, 132, 125, 133, 116, 128, 99, 117, 122, 113, 119, 133, 111, 112, 97, 111, 121, 123, 105, 117, 113, 120, 118, 133, 109, 108, 106, 115, 122, 106, 136, 111, 117, 122, 118, 115, 138, 112, 113, 120, 111, 111, 115, 113, 117, 109, 114, 106, 118, 107, 116, 108, 121, 107, 131, 125, 107, 117, 114, 130, 119, 117, 113, 122, 118, 110, 112, 105, 111, 108, 115, 111, 114, 115, 117, 95, 115, 109, 116, 127, 105, 108, 117, 120, 111, 111, 125, 119, 109, 117, 112, 120, 109, 125, 114, 122, 126, 114, 116, 96, 105, 125, 122, 109, 112, 114, 114, 111, 121, 120, 112, 116, 120, 114, 119, 114, 108, 119, 114, 121, 110, 128, 125, 98, 105, 117, 123, 115, 110, 123, 107, 110, 114, 119, 111, 114, 124, 115, 111, 105, 100, 115, 106, 129, 110, 107, 110, 117, 119, 112, 115, 111, 106, 118, 139, 117, 118, 119, 107, 111, 126, 120, 116, 109, 118, 110, 112, 103, 116, 118, 119, 111, 123, 113, 112, 134, 111, 114, 111, 122, 118, 117, 132, 108, 106, 111, 119, 114, 110, 112, 118, 105, 116, 106, 111, 120, 123, 112, 106, 112, 121, 134, 101, 118, 108, 112, 123, 104, 127, 112, 113, 114, 103, 119, 112, 118, 98, 115, 121, 109, 112, 119, 114, 116, 120, 119, 114, 111, 120, 109, 128, 113, 112, 118, 107, 122, 109, 115, 112, 103, 123, 108, 115, 115, 122, 113, 121, 102, 112, 107, 112, 112, 119, 120, 112, 114, 108, 124, 115, 110, 113, 115, 116, 106, 117, 113, 117, 123, 108, 105, 119, 119, 95, 115, 117, 124, 110, 118, 124, 115, 112, 106, 114, 115, 114, 121, 114, 109, 111, 109, 109, 113, 109, 124, 119, 109, 109, 121, 114, 111, 109, 109, 112, 129, 120, 107, 118, 114, 113, 116, 105, 120, 116, 116, 113, 114, 117, 116, 115, 115, 117, 109, 115, 113, 149, 112, 124, 114, 113, 110, 106, 122, 105, 129, 108, 114, 108, 106, 113, 119, 105, 109, 111, 95, 113, 112, 115, 118, 111, 116, 113, 108, 109, 111, 102, 138, 114, 122, 108, 107, 120, 119, 115, 109, 124, 117, 114, 103, 115, 119, 124, 115, 113, 106, 111, 116, 132, 121, 115, 112, 111, 107, 122, 107, 110, 123, 121, 126, 107, 114, 99, 104, 100, 109, 124, 109, 109, 113, 101, 101, 120, 120, 120, 111, 110, 111, 123, 130, 109, 115, 112, 107, 112, 115, 103, 114, 112, 112, 107, 131, 107, 116, 112, 106, 107, 113, 134, 91, 121, 114, 125, 113, 103, 116, 126, 118, 132, 121, 120, 115, 111, 105, 117, 125, 122, 117, 110, 127, 119, 121, 109, 113, 114, 111, 112, 118, 112, 107, 113, 103, 105, 120, 111, 113, 111, 124, 104, 113, 116, 116, 113, 108, 123, 122, 110, 111, 131, 113, 139, 108, 117, 120, 110, 117, 111, 106, 117, 108, 113, 124, 115, 112, 117, 119, 113, 111, 104, 123, 103, 110, 110, 117, 104, 112, 108, 125, 114, 113, 118, 115, 131, 102, 118, 113, 114, 111, 106, 96, 119, 111, 117, 120, 124, 110, 119, 122, 109, 114, 110, 120, 113, 126, 120, 99, 112, 108, 113, 127, 109, 112, 117, 109, 122, 113, 135, 117, 104, 113, 104, 120, 115, 119, 108, 117, 124, 108, 111, 140, 109, 121, 115, 109, 129, 126, 112, 123, 110, 122, 117, 111, 98, 114, 117, 124, 131, 126, 117, 118, 123, 132, 116, 119, 120, 117, 115, 116, 117, 119, 117, 113, 113, 110, 110, 105, 103, 115, 112, 111, 112, 111, 112, 114, 114, 115, 119, 106, 121, 114, 131, 119, 116, 115, 112, 118, 103, 108, 113, 107, 116, 121, 122, 112, 119, 118, 114, 118, 117, 103, 119, 114, 125, 124, 126, 117, 108, 102, 113, 116, 119, 112, 113, 117, 117, 126, 105, 122, 124, 105, 119, 109, 116, 84, 108, 113, 111, 107, 98, 105, 115, 100, 128, 126, 124, 110, 123, 128, 95, 105, 119, 112, 98, 123, 121, 110, 120, 119, 112, 125, 110, 98, 111, 114, 111, 115, 119, 123, 115, 114, 121, 111, 100, 115, 125, 120, 115, 132, 123, 123, 106, 121, 108, 111, 131, 101, 113, 116, 113, 96, 116, 110, 115, 115, 106, 116, 135, 114, 119, 109, 120, 108, 118, 106, 110, 104, 114, 114, 95, 104, 111, 116, 98, 115, 104, 115, 130, 117, 120, 114, 120, 116, 111, 103, 106, 123, 112, 122, 100, 128, 113, 113, 111, 112, 120, 110, 116, 110, 106, 111, 105, 122, 114, 127, 109, 103, 111, 100, 121, 111, 121, 120, 111, 118, 120, 118, 111, 100, 103, 94, 126, 117, 103, 116, 111, 108, 113, 113, 106, 120, 112, 106, 97, 108, 118, 106, 122, 108, 111, 114, 119, 96, 107, 117, 117, 119, 112, 104, 113, 111, 97, 127, 112, 126, 116, 115, 113, 113, 109, 126, 114, 115, 117, 94, 96, 130, 123, 119, 109, 102, 122, 116, 115, 118, 100, 106, 118, 121, 115, 109, 110, 99, 121, 124, 128, 114, 117, 114, 116, 121, 128, 121, 108, 127, 106, 115, 122, 117, 118, 126, 123, 114, 105, 110, 115, 93, 116, 117, 104, 116, 107, 119, 117, 116, 123, 111, 119, 116, 110, 122, 109, 108, 111, 130, 123, 111, 113, 117, 108, 116, 121, 108, 117, 117, 105, 123, 108, 100, 115, 105, 118, 117, 112, 105, 130, 119, 132, 126, 122, 126, 109, 110, 113, 127, 103, 125, 112, 98, 108, 107, 114, 135, 115, 122, 125, 115, 110, 111, 118, 96, 119, 120, 109, 113, 118, 118, 108, 135, 104, 111, 126, 102, 126, 122, 105, 114, 113, 123, 116, 116, 119, 107, 112, 119, 111, 137, 110, 119, 109, 125, 117, 118, 119, 132, 105, 109, 115, 111, 124, 149, 115, 125, 119, 128, 122, 129, 102, 97, 107, 112, 114, 116, 121, 112, 126, 131, 116, 125, 129, 107, 133, 119, 103, 121, 121, 115, 114, 126, 121, 120, 116, 119, 114, 112, 111, 118, 120, 100, 128, 112, 105, 121, 110, 100, 122, 120, 115, 108, 128, 119, 130, 122, 112, 111, 126, 124, 125, 113, 128, 116, 116, 106, 116, 100, 121, 126, 116, 112, 111, 115, 110, 101, 124, 112, 116, 118, 107, 111, 115, 122, 113, 112, 116, 114, 113, 118, 114, 121, 110, 121, 116, 115, 120, 118, 115, 114, 112, 118, 117, 116, 119, 115, 124, 116, 115, 104, 121, 123, 120, 118, 113, 114, 118, 116, 117, 118, 105, 118, 119, 112, 118, 119, 117, 107, 117, 117, 122, 110, 140, 111, 115, 112, 114, 111, 111, 117, 121, 114, 119, 111, 120, 122, 108, 112, 120, 115, 114, 117, 106, 113, 114, 113, 116, 112, 116, 118, 144, 115, 112, 120, 109, 113, 116, 114, 112, 121, 116, 116, 107, 119, 123, 114, 117, 117, 115, 120, 110, 109, 114, 116, 103, 115, 112, 115, 116, 120, 115, 115, 107, 121, 116, 110, 112, 123, 106, 110, 115, 119, 114, 133, 112, 118, 121, 110, 116, 118, 117, 117, 116, 113, 113, 111, 118, 115, 105, 110, 116, 115, 121, 110, 115, 115, 113, 114, 118, 115, 116, 123, 123, 110, 108, 122, 111, 123, 113, 116, 118, 112, 116, 123, 116, 126, 119, 113, 113, 106, 120, 118, 130, 119, 117, 120, 128, 107, 112, 114, 121, 112, 111, 122, 118, 103, 120, 108, 116, 118, 118, 115, 113, 119, 115, 109, 120, 114, 112, 109, 114, 112, 114, 118, 129, 112, 112, 120, 113, 118, 110, 114, 101, 111, 129, 112, 114, 108, 95, 118, 120, 114, 112, 108, 115, 113, 119, 128, 115, 118, 115, 118, 125, 112, 123, 109, 122, 123, 116, 112, 120, 116, 118, 115, 121, 115, 118, 134, 116, 120, 117, 119, 119, 127, 122, 113, 121, 110, 116, 147, 115, 115, 122, 115, 110, 128, 110, 128, 119, 118, 108, 118, 122, 112, 114, 111, 110, 117, 115, 117, 112, 93, 92, 116, 106, 115, 120, 117, 112, 120, 120, 116, 116, 118, 124, 118, 116, 133, 115, 114, 114, 116, 113, 107, 117, 110, 112, 117, 119, 109, 118, 110, 115, 104, 118, 114, 114, 117, 114, 107, 116, 111, 110, 116, 124, 115, 112, 111, 115, 123, 118, 114, 101, 110, 109, 113, 118, 111, 123, 120, 108, 120, 110, 106, 111, 118, 115, 113, 117, 117, 117, 117, 111, 118, 113, 123, 117, 124, 108, 116, 110, 120, 113, 121, 114, 115, 122, 118, 113, 120, 111, 109, 116, 117, 115, 119, 118, 117, 115, 116, 109, 117, 113, 117, 115, 120, 112, 118, 113, 126, 122, 110, 111, 122, 119, 119, 113, 110, 113, 106, 116, 119, 108, 112, 112, 116, 119, 114, 114, 118, 121, 119, 113, 114, 112, 117, 118, 119, 111, 114, 113, 119, 110, 115, 113, 123, 112, 115, 118, 111, 125, 116, 118, 120, 116, 109, 113, 115, 121, 118, 116, 115, 109, 121, 114, 119, 122, 114, 111, 115, 106, 114, 112, 116, 111, 120, 121, 108, 112, 110, 119, 111, 113, 116, 124, 118, 110, 119, 117, 112, 112, 118, 113, 117, 122, 116, 117, 112, 115, 120, 110, 117, 120, 115, 115, 125, 116, 124, 114, 108, 107, 118, 116, 114, 116, 113, 114, 116, 111, 114, 114, 120, 143, 114, 110, 109, 118, 119, 115, 118, 110, 118, 116, 115, 111, 106, 116, 130, 111, 109, 118, 112, 105, 110, 113, 121, 118, 106, 117, 111, 109, 110, 119, 110, 136, 111, 113, 102, 105, 109, 119, 117, 122, 109, 125, 116, 108, 116, 130, 124, 120, 117, 120, 117, 110, 112, 118, 124, 108, 117, 117, 111, 116, 106, 109, 131, 114, 110, 102, 106, 124, 117, 112, 113, 115, 97, 108, 113, 113, 118, 121, 135, 122, 114, 125, 105, 114, 114, 123, 104, 117, 134, 113, 105, 113, 111, 109, 117, 115, 123, 111, 119, 118, 113, 110, 111, 117, 113, 110, 110, 110, 114, 105, 119, 120, 115, 108, 131, 113, 121, 118, 116, 116, 118, 112, 120, 131, 104, 104, 118, 112, 113, 120, 116, 107, 117, 98, 112, 119, 109, 103, 130, 124, 132, 107, 122, 107, 130, 113, 118, 119, 107, 120, 112, 118, 122, 117, 110, 112, 127, 111, 119, 103, 108, 114, 112, 110, 118, 119, 98, 119, 113, 101, 109, 126, 117, 89, 117, 117, 120, 108, 110, 112, 113, 106, 112, 120, 119, 111, 114, 109, 124, 123, 95, 123, 115, 117, 118, 109, 117, 108, 108, 109, 113, 131, 111, 95, 117, 127, 101, 116, 121, 118, 118, 119, 120, 118, 111, 137, 108, 121, 115, 123, 112, 109, 120, 118, 121, 115, 127, 119, 110, 131, 121, 113, 109, 120, 116, 128, 131, 110, 120, 105, 115, 112, 111, 114, 123, 126, 121, 111, 113, 112, 118, 126, 117, 107, 114, 111, 117, 103, 118, 117, 132, 120, 117, 105, 124, 107, 134, 119, 117, 116, 123, 116, 110, 114, 108, 113, 110, 103, 114, 128, 110, 107, 122, 122, 122, 121, 118, 114, 116, 132, 121, 113, 114, 111, 113, 107, 117, 116, 114, 101, 124, 112, 111, 120, 113, 105, 116, 102, 117, 109, 119, 107, 118, 126, 108, 113, 117, 109, 116, 131, 113, 110, 119, 118, 116, 120, 106, 117, 119, 102, 113, 99, 110, 108, 116, 114, 123, 126, 124, 117, 120, 118, 114, 120, 108, 112, 119, 108, 110, 126, 122, 116, 119, 109, 129, 108, 119, 118, 111, 109, 110, 108, 109, 115, 112, 112, 105, 116, 118, 114, 125, 105, 129, 114, 134, 122, 111, 107, 113, 120, 119, 105, 143, 127, 106, 114, 115, 112, 121, 120, 121, 112, 110, 116, 112, 110, 116, 120, 114, 107, 119, 112, 128, 125, 111, 117, 113, 116, 117, 116, 111, 116, 98, 128, 112, 109, 111, 112, 131, 110, 118, 129, 116, 111, 112, 117, 113, 100, 111, 115, 112, 117, 128, 116, 115, 119, 116, 116, 119, 116, 112, 123, 104, 106, 111, 128, 116, 109, 108, 120, 114, 116, 120, 117, 124, 106, 115, 124, 119, 106, 105, 111, 124, 128, 115, 104, 113, 106, 102, 106, 114, 110, 117, 117, 107, 135, 111, 126, 120, 115, 118, 112, 119, 107, 126, 111, 108, 109, 93, 116, 113, 107, 118, 105, 123, 122, 110, 120, 132, 101, 112, 107, 131, 112, 111, 117, 120, 123, 107, 117, 125, 114, 113, 138, 114, 121, 139, 104, 116, 114, 114, 106, 119, 116, 120, 120, 113, 104, 115, 115, 112, 112, 98, 117, 108, 121, 109, 106, 114, 119, 123, 120, 117, 118, 109, 113, 117, 120, 109, 104, 118, 125, 111, 121, 113, 114, 105, 117, 110, 108, 114, 116, 112, 117, 117, 110, 113, 109, 113, 104, 119, 114, 116, 130, 121, 115, 116, 121, 114, 116, 118, 97, 116, 117, 106, 98, 125, 120, 116, 114, 116, 117, 110, 125, 120, 113, 114, 112, 116, 110, 119, 111, 112, 110, 118, 119, 108, 121, 108, 116, 110, 116, 117, 106, 118, 104, 118, 119, 110, 115, 114, 119, 107, 122, 115, 113, 116, 115, 114, 114, 116, 111, 114, 118, 114, 120, 115, 121, 116, 112, 108, 127, 112, 130, 102, 118, 115, 109, 117, 114, 111, 93, 112, 116, 122, 113, 117, 114, 119, 103, 119, 118, 120, 112, 115, 114, 107, 118, 115, 111, 116, 108, 116, 117, 116, 123, 112, 116, 118, 110, 115, 110, 116, 121, 118, 120, 115, 114, 109, 114, 104, 121, 118, 111, 111, 114, 118, 127, 118, 110, 122, 112, 114, 114, 115, 108, 106, 125, 103, 114, 116, 120, 120, 114, 113, 118, 111, 112, 107, 119, 108, 126, 115, 113, 120, 132, 118, 122, 106, 110, 117, 116, 115, 117, 124, 113, 125, 113, 110, 97, 114, 110, 118, 120, 123, 124, 116, 117, 98, 108, 122, 109, 117, 122, 111, 128, 107, 108, 114, 117, 102, 120, 121, 126, 116, 118, 114, 115, 125, 110, 111, 113, 114, 116, 109, 112, 114, 122, 110, 111, 113, 118, 111, 119, 118, 118, 104, 125, 114, 115, 117, 123, 114, 111, 112, 129, 117, 110, 118, 118, 111, 107, 102, 102, 109, 108, 111, 120, 119, 124, 110, 110, 113, 112, 118, 128, 112, 119, 108, 113, 117, 115, 119, 127, 110, 114, 120, 113, 116, 119, 111, 123, 113, 118, 124, 114, 117, 106, 108, 111, 123, 116, 113, 115, 115, 110, 107, 101, 112, 112, 120, 105, 111, 112, 108, 113, 121, 121, 129, 115, 105, 123, 117, 123, 110, 110, 103, 115, 111, 116, 116, 106, 117, 113, 114, 119, 116, 108, 110, 116, 118, 117, 116, 111, 107, 117, 116, 113, 111, 121, 112, 115, 120, 115, 113, 122, 109, 110, 110, 123, 117, 109, 114, 120, 108, 108, 118, 122, 113, 121, 128, 116, 111, 112, 117, 108, 105, 114, 117, 123, 110, 113, 116, 115, 114, 118, 114, 119, 111, 121, 120, 120, 110, 127, 120, 111, 109, 122, 117, 113, 128, 115, 114, 113, 123, 116, 112, 116, 119, 117, 106, 106, 117, 121, 126, 126, 105, 108, 111, 127, 114, 109, 119, 118, 110, 115, 115, 118, 120, 132, 107, 107, 117, 110, 111, 116, 105, 113, 108, 122, 117, 117, 121, 117, 112, 112, 114, 115, 117, 112, 123, 111, 112, 104, 113, 122, 124, 112, 121, 114, 117, 115, 119, 114, 115, 107, 116, 115, 119, 112, 112, 120, 114, 118, 111, 108, 117, 105, 105, 113, 127, 115, 116, 118, 108, 116, 112, 110, 115, 112, 120, 107, 119, 126, 131, 107, 111, 116, 111, 113, 121, 91, 109, 111, 113, 116, 107, 108, 117, 108, 102, 106, 107, 124, 122, 107, 121, 111, 110, 115, 96, 130, 107, 108, 111, 119, 109, 112, 121, 114, 122, 118, 117, 115, 122, 106, 125, 101, 116, 105, 113, 121, 108, 111, 108, 129, 112, 117, 121, 96, 114, 112, 113, 109, 111, 116, 117, 105, 116, 121, 114, 103, 102, 112, 119, 119, 124, 122, 121, 120, 114, 122, 109, 113, 111, 103, 113, 116, 107, 122, 110, 123, 110, 110, 122, 102, 120, 116, 107, 112, 123, 111, 113, 102, 121, 114, 130, 123, 107, 114, 129, 118, 114, 111, 106, 115, 109, 117, 116, 116, 112, 114, 121, 116, 117, 117, 102, 121, 119, 115, 113, 117, 125, 118, 121, 106, 120, 114, 122, 113, 123, 115, 118, 103, 114, 117, 114, 107, 107, 116, 116, 115, 118, 115, 113, 121, 113, 105, 118, 114, 106, 117, 118, 124, 108, 122, 123, 117, 97, 113, 115, 129, 120, 102, 121, 119, 118, 112, 114, 119, 111, 112, 119, 116, 112, 109, 118, 115, 114, 131, 117, 118, 121, 115, 119, 129, 115, 109, 119, 106, 117, 129, 115, 125, 119, 116, 118, 117, 110, 135, 117, 124, 116, 116, 113, 103, 113, 108, 121, 112, 103, 116, 109, 122, 124, 99, 102, 126, 113, 121, 125, 112, 106, 114, 112, 120, 114, 111, 124, 110, 112, 119, 117, 112, 106, 116, 113, 117, 123, 116, 125, 127, 104, 119, 126, 115, 113, 119, 116, 113, 117, 127, 110, 108, 121, 111, 126, 115, 122, 109, 112, 105, 108, 122, 119, 107, 121, 109, 121, 113, 116, 116, 119, 112, 116, 109, 118, 106, 102, 118, 108, 117, 120, 115, 116, 126, 115, 110, 117, 110, 117, 114, 124, 110, 124, 119, 103, 115, 108, 122, 121, 114, 113, 104, 119, 112, 115, 91, 120, 117, 110, 136, 122, 117, 108, 116, 114, 115, 123, 114, 124, 119, 124, 127, 117, 106, 113, 111, 119, 118, 105, 103, 125, 114, 124, 118, 110, 114, 114, 108, 120, 101, 113, 114, 109, 109, 116, 111, 111, 120, 128, 101, 111, 130, 117, 120, 111, 107, 111, 107, 108, 119, 120, 120, 111, 104, 124, 127, 110, 115, 131, 115, 113, 116, 105, 132, 114, 120, 114, 112, 118, 111, 111, 112, 110, 134, 111, 116, 123, 114, 116, 106, 126, 112, 107, 109, 134, 113, 119, 120, 112, 114, 116, 102, 105, 111, 140, 121, 129, 110, 120, 115, 108, 128, 114, 126, 113, 116, 119, 116, 116, 104, 112, 115, 121, 117, 114, 115, 110, 128, 109, 113, 105, 125, 114, 101, 125, 125, 123, 121, 114, 113, 124, 106, 111, 116, 120, 109, 114, 116, 120, 111, 116, 127, 123, 110, 111, 109, 113, 115, 122, 103, 117, 119, 124, 112, 120, 105, 118, 114, 114, 113, 111, 110, 118, 120, 120, 112, 108, 112, 112, 113, 131, 116, 117, 111, 107, 115, 116, 121, 112, 108, 116, 133, 126, 125, 116, 129, 117, 110, 104, 107, 122, 109, 93, 107, 104, 107, 115, 109, 115, 116, 115, 127, 110, 116, 114, 113, 124, 125, 117, 130, 104, 115, 102, 120, 120, 127, 139, 112, 112, 111, 111, 114, 112, 110, 112, 130, 117, 119, 117, 118, 107, 98, 124, 126, 124, 105, 111, 112, 115, 122, 112, 119, 122, 111, 96, 107, 121, 122, 111, 113, 105, 128, 116, 122, 125, 124, 105, 115, 117, 107, 108, 116, 124, 120, 148, 130, 115, 118, 109, 105, 128, 122, 117, 108, 112, 103, 109, 114, 103, 118, 134, 131, 117, 104, 114, 105, 125, 122, 122, 104, 123, 114, 110, 103, 113, 121, 117, 113, 119, 115, 123, 124, 112, 119, 117, 111, 100, 127, 112, 112, 121, 112, 108, 130, 125, 112, 121, 111, 122, 126, 121, 115, 112, 109, 119, 123, 103, 117, 118, 114, 106, 109, 113, 123, 111, 111, 120, 108, 116, 105, 124, 117, 127, 115, 122, 120, 111, 108, 113, 109, 103, 112, 108, 101, 121, 108, 96, 110, 133, 124, 108, 113, 109, 105, 105, 118, 112, 116, 111, 118, 122, 120, 107, 113, 106, 104, 122, 112, 116, 120, 102, 115, 120, 129, 114, 113, 108, 110, 117, 128, 100, 125, 119, 122, 110, 110, 120, 117, 125, 117, 107, 113, 100, 120, 123, 116, 113, 103, 100, 117, 125, 111, 103, 125, 110, 108, 108, 112, 112, 113, 108, 122, 112, 122, 115, 111, 112, 124, 109, 113, 131, 124, 121, 113, 110, 104, 122, 118, 111, 131, 117, 114, 122, 112, 135, 118, 118, 131, 136, 116, 115, 111, 118, 123, 116, 124, 123, 96, 111, 116, 125, 107, 117, 131, 112, 127, 119, 101, 126, 105, 122, 121, 101, 117, 115, 124, 122, 104, 123, 96, 117, 118, 119, 99, 134, 115, 111, 113, 111, 98, 114, 107, 112, 102, 116, 123, 127, 124, 128, 113, 123, 100, 117, 112, 119, 123, 119, 113, 117, 118, 110, 118, 125, 122, 110, 105, 105, 105, 111, 98, 102, 108, 108, 111, 129, 111, 111, 123, 120, 124, 113, 113, 98, 126, 109, 121, 114, 128, 95, 121, 123, 113, 118, 122, 135, 119, 129, 112, 111, 114, 114, 118, 123, 105, 103, 100, 122, 109, 116, 101, 110, 110, 111, 107, 104, 109, 112, 99, 102, 125, 105, 125, 110, 109, 123, 116, 116, 102, 111, 116, 101, 104, 123, 109, 115, 119, 102, 112, 102, 135, 115, 118, 126, 118, 115, 108, 120, 122, 111, 132, 113, 102, 107, 116, 106, 119, 114, 107, 118, 119, 119, 124, 110, 108, 115, 112, 128, 106, 121, 109, 115, 119, 120, 115, 122, 113, 124, 113, 93, 106, 125, 115, 123, 114, 123, 128, 113, 126, 125, 126, 121, 126, 122, 105, 104, 117, 124, 114, 125, 126, 123, 110, 124, 114, 103, 108, 123, 119, 101, 127, 123, 107, 115, 131, 105, 117, 125, 103, 126, 112, 104, 111, 113, 105, 113, 128, 117, 113, 116, 115, 127, 132, 110, 108, 111, 112, 120, 110, 109, 108, 114, 117, 116, 123, 120, 117, 109, 114, 112, 107, 100, 112, 113, 131, 100, 122, 118, 107, 130, 108, 101, 119, 118, 123, 123, 114, 117, 105, 108, 108, 112, 136, 112, 111, 113, 112, 117, 114, 107, 129, 123, 121, 99, 113, 113, 120, 113, 123, 104, 115, 123, 115, 111, 123, 109, 130, 133, 111, 114, 107, 107, 114, 113, 115, 103, 107, 111, 120, 112, 113, 120, 118, 121, 114, 113, 117, 110, 115, 119, 116, 131, 105, 112, 128, 104, 111, 114, 109, 124, 107, 118, 116, 111, 116, 122, 113, 123, 120, 109, 122, 124, 118, 109, 87, 109, 129, 115, 114, 114, 122, 150, 110, 113, 120, 117, 111, 114, 126, 103, 113, 113, 104, 105, 119, 105, 116, 106, 114, 130, 113, 118, 121, 115, 108, 112, 118, 123, 116, 121, 120, 112, 120, 123, 115, 107, 124, 123, 108, 108, 127, 125, 113, 119, 105, 110, 118, 116, 106, 118, 113, 110, 109, 79, 116, 124, 101, 117, 123, 117, 104, 134, 124, 117, 95, 125, 123, 113, 112, 112, 114, 115, 100, 107, 118, 120, 111, 131, 122, 104, 121, 132, 122, 118, 96, 109, 121, 133, 114, 120, 108, 116, 102, 115, 125, 126, 115, 125, 123, 115, 125, 127, 115, 112, 115, 114, 122, 114, 110, 118, 124, 109, 120, 99, 108, 127, 129, 106, 112, 116, 102, 113, 89, 129, 110, 112, 119, 114, 127, 110, 119, 111, 124, 116, 114, 108, 115, 120, 118, 109, 124, 110, 111, 124, 121, 102, 107, 121, 119, 120, 98, 132, 109, 130, 106, 115, 112, 117, 111, 116, 110, 100, 122, 102, 109, 123, 114, 108, 108, 121, 116, 121, 112, 113, 107, 128, 115, 125, 118, 123, 117, 105, 94, 107, 104, 101, 116, 106, 119, 107, 109, 110, 108, 137, 130, 128, 97, 113, 101, 115, 108, 124, 118, 117, 106, 107, 115, 126, 115, 118, 96, 102, 126, 130, 110, 116, 117, 126, 117, 124, 110, 119, 109, 111, 113, 122, 133, 105, 118, 113, 118, 117, 111, 126, 122, 115, 122, 122, 122, 115, 131, 116, 128, 107, 112, 108, 107, 120, 110, 122, 112, 123, 96, 97, 146, 104, 121, 106, 119, 108, 114, 115, 108, 107, 106, 119, 113, 115, 120, 131, 113, 115, 107, 123, 114, 119, 111, 131, 96, 113, 112, 112, 113, 123, 117, 107, 124, 121, 119, 122, 109, 105, 121, 110, 108, 118, 114, 117, 124, 104, 124, 118, 123, 107, 111, 112, 114, 110, 126, 118, 109, 119, 125, 127, 126, 99, 112, 112, 104, 105, 114, 106, 133, 102, 124, 121, 107, 115, 126, 110, 116, 93, 111, 118, 109, 116, 105, 120, 109, 119, 121, 96, 105, 114, 104, 116, 117, 114, 137, 126, 116, 113, 111, 112, 109, 107, 114, 106, 118, 119, 109, 103, 107, 86, 116, 112, 115, 127, 124, 113, 112, 119, 114, 119, 105, 124, 117, 115, 121, 127, 109, 116, 122, 102, 123, 115, 115, 125, 109, 126, 104, 122, 101, 90, 131, 118, 139, 97, 115, 114, 106, 108, 111, 110, 125, 129, 121, 106, 113, 104, 109, 115, 110, 121, 116, 122, 120, 108, 105, 110, 104, 120, 92, 119, 117, 107, 100, 102, 112, 116, 102, 113, 111, 113, 142, 116, 106, 111, 116, 107, 114, 112, 110, 119, 128, 111, 132, 119, 115, 112, 114, 106, 106, 105, 110, 112, 116, 128, 121, 121, 123, 108, 121, 123, 120, 134, 112, 118, 122, 104, 108, 111, 125, 122, 116, 111, 119, 127, 109, 119, 134, 123, 109, 115, 108, 110, 116, 111, 115, 111, 121, 123, 120, 117, 123, 107, 121, 120, 95, 118, 104, 112, 110, 120, 115, 121, 106, 116, 94, 116, 104, 112, 123, 100, 119, 111, 116, 121, 103, 115, 117, 106, 114, 103, 111, 107, 122, 112, 108, 114, 113, 107, 118, 119, 117, 121, 113, 115, 117, 119, 100, 125, 110, 108, 107, 113, 106, 123, 114, 121, 116, 121, 108, 116, 112, 139, 114, 107, 99, 120, 119, 107, 112, 97, 110, 88, 113, 117, 120, 104, 117, 109, 113, 124, 108, 122, 124, 122, 138, 99, 106, 116, 105, 113, 116, 112, 121, 114, 114, 108, 111, 100, 120, 119, 124, 117, 128, 122, 106, 116, 108, 121, 124, 111, 124, 98, 112, 120, 116, 102, 114, 110, 125, 120, 110, 123, 118, 116, 119, 116, 117, 116, 124, 118, 136, 104, 117, 96, 128, 121, 106, 129, 111, 124, 104, 122, 107, 101, 128, 112, 113, 120, 133, 98, 114, 121, 122, 118, 119, 104, 124, 118, 114, 114, 118, 126, 113, 120, 112, 120, 115, 119, 111, 120, 112, 129, 112, 105, 118, 108, 115, 130, 110, 102, 121, 102, 109, 115, 104, 113, 131, 114, 114, 109, 110, 113, 109, 106, 103, 143, 117, 130, 125, 118, 132, 124, 126, 111, 125, 114, 118, 136, 123, 109, 128, 119, 128, 102, 95, 112, 122, 112, 135, 108, 116, 112, 110, 118, 132, 108, 124, 127, 100, 108, 114, 100, 111, 101, 123, 110, 111, 125, 103, 116, 124, 117, 121, 129, 114, 117, 123, 118, 124, 105, 105, 110, 112, 112, 123, 112, 110, 109, 108, 131, 132, 122, 113, 96, 125, 108, 111, 108, 111, 120, 118, 108, 101, 119, 127, 112, 130, 114, 104, 119, 116, 128, 106, 110, 97, 113, 125, 116, 112, 105, 129, 124, 107, 111, 117, 103, 110, 118, 107, 129, 112, 113, 125, 109, 123, 134, 123, 111, 124, 123, 117, 115, 108, 109, 109, 129, 134, 116, 111, 130, 116, 109, 106, 100, 122, 109, 124, 114, 117, 117, 106, 118, 110, 120, 101, 120, 106, 117, 97, 123, 124, 120, 108, 113, 132, 108, 108, 105, 115, 121, 108, 109, 115, 100, 117, 114, 114, 93, 111, 130, 116, 119, 123, 117, 115, 123, 103, 121, 114, 104, 117, 115, 115, 114, 123, 125, 119, 106, 108, 122, 120, 120, 123, 122, 106, 115, 110, 124, 113, 110, 108, 119, 126, 115, 113, 113, 119, 117, 119, 123, 125, 126, 113, 104, 109, 115, 114, 109, 122, 113, 114, 106, 116, 114, 147, 122, 110, 104, 108, 123, 137, 110, 128, 111, 128, 114, 126, 117, 130, 110, 118, 117, 110, 109, 113, 111, 114, 127, 116, 117, 101, 106, 111, 108, 125, 110, 114, 115, 104, 128, 116, 113, 116, 108, 116, 114, 118, 120, 121, 111, 108, 110, 125, 114, 120, 111, 121, 114, 122, 125, 127, 108, 107, 118, 123, 119, 113, 112, 119, 114, 112, 123, 116, 127, 121, 126, 122, 121, 101, 115, 114, 113, 124, 117, 119, 120, 106, 112, 112, 99, 107, 114, 112, 120, 110, 117, 116, 119, 104, 126, 120, 114, 123, 106, 115, 114, 116, 115, 105, 105, 117, 122, 114, 113, 122, 121, 113, 108, 123, 110, 118, 124, 104, 123, 127, 119, 120, 127, 119, 123, 117, 120, 109, 119, 124, 120, 115, 124, 115, 117, 118, 124, 114, 118, 102, 84, 116, 112, 112, 111, 113, 110, 122, 105, 107, 108, 113, 118, 130, 130, 106, 119, 110, 106, 117, 113, 120, 126, 117, 127, 125, 121, 114, 130, 111, 121, 116, 105, 105, 122, 96, 111, 111, 117, 114, 105, 114, 113, 112, 113, 121, 118, 121, 120, 108, 98, 109, 121, 111, 117, 107, 107, 115, 117, 115, 105, 119, 116, 111, 107, 109, 117, 102, 109, 126, 117, 108, 105, 105, 115, 110, 109, 125, 110, 118, 119, 108, 116, 103, 128, 119, 111, 109, 123, 107, 113, 119, 109, 103, 113, 108, 130, 112, 108, 114, 118, 115, 115, 95, 113, 113, 115, 119, 123, 111, 109, 107, 111, 119, 112, 123, 104, 110, 121, 111, 117, 116, 110, 111, 112, 114, 117, 117, 116, 110, 107, 110, 118, 132, 127, 113, 115, 100, 121, 122, 103, 116, 105, 124, 122, 119, 112, 125, 111, 117, 110, 110, 118, 110, 123, 108, 128, 122, 124, 125, 115, 109, 106, 121, 117, 116, 108, 124, 107, 106, 125, 95, 121, 111, 110, 125, 99, 114, 118, 113, 122, 107, 124, 108, 108, 94, 119, 115, 115, 114, 104, 120, 120, 125, 112, 113, 120, 104, 111, 110, 117, 114, 113, 121, 120, 119, 119, 111, 101, 116, 113, 96, 110, 115, 108, 121, 119, 113, 111, 120, 109, 111, 113, 114, 111, 108, 109, 107, 114, 112, 101, 128, 120, 118, 112, 100, 114, 107, 107, 110, 109, 124, 113, 101, 114, 122, 111, 98, 103, 114, 111, 118, 108, 126, 139, 111, 117, 118, 111, 117, 116, 107, 142, 115, 111, 130, 107, 120, 114, 109, 107, 119, 124, 117, 110, 107, 117, 108, 119, 113, 120, 108, 120, 111, 115, 115, 118, 108, 110, 126, 144, 110, 110, 122, 118, 120, 107, 114, 109, 118, 117, 128, 125, 99, 124, 112, 113, 108, 119, 115, 126, 109, 123, 114, 115, 122, 116, 117, 102, 98, 119, 114, 120, 103, 107, 116, 113, 102, 115, 111, 118, 116, 123, 106, 116, 119, 115, 115, 130, 100, 112, 124, 122, 102, 118, 116, 107, 111, 106, 114, 105, 116, 102, 112, 122, 121, 117, 120, 117, 117, 107, 120, 104, 115, 111, 116, 112, 114, 102, 111, 115, 108, 118, 116, 120, 119, 120, 110, 126, 108, 111, 125, 110, 120, 119, 110, 111, 106, 125, 116, 111, 107, 121, 109, 118, 117, 113, 112, 114, 118, 108, 119, 105, 115, 111, 126, 121, 103, 104, 111, 107, 108, 107, 114, 113, 114, 106, 113, 117, 108, 110, 115, 147, 112, 123, 105, 110, 101, 125, 101, 118, 111, 117, 118, 117, 112, 118, 113, 122, 111, 119, 107, 103, 144, 130, 112, 115, 128, 101, 127, 116, 117, 110, 104, 111, 105, 121, 102, 107, 111, 103, 102, 108, 111, 119, 103, 111, 110, 118, 112, 106, 116, 111, 101, 108, 139, 117, 112, 117, 119, 113, 119, 109, 106, 128, 119, 119, 132, 120, 110, 127, 122, 114, 118, 121, 108, 132, 113, 118, 99, 109, 118, 96, 111, 120, 127, 128, 119, 125, 108, 125, 112, 118, 96, 122, 107, 103, 136, 99, 114, 105, 104, 128, 104, 103, 124, 125, 125, 95, 109, 104, 102, 99, 102, 101, 120, 132, 121, 115, 113, 88, 112, 118, 109, 108, 100, 122, 106, 121, 104, 103, 108, 111, 111, 122, 108, 117, 116, 113, 100, 106, 128, 127, 117, 116, 116, 125, 117, 97, 118, 118, 117, 108, 108, 117, 122, 101, 117, 117, 118, 116, 102, 114, 123, 108, 99, 112, 113, 109, 106, 121, 104, 114, 111, 111, 112, 105, 107, 128, 109, 109, 112, 111, 122, 114, 93, 99, 101, 125, 129, 103, 115, 119, 126, 142, 118, 108, 118, 104, 123, 122, 109, 111, 104, 123, 127, 104, 110, 118, 124, 109, 117, 123, 116, 124, 122, 98, 101, 113, 116, 122, 126, 119, 108, 120, 111, 122, 104, 118, 124, 102, 117, 104, 113, 115, 106, 110, 106, 105, 102, 119, 118, 110, 114, 119, 112, 119, 122, 118, 117, 104, 116, 113, 120, 103, 117, 119, 122, 117, 134, 102, 120, 118, 116, 105, 98, 103, 142, 114, 115, 110, 116, 112, 113, 94, 113, 117, 122, 135, 137, 104, 101, 109, 110, 114, 111, 126, 113, 127, 122, 125, 126, 120, 117, 107, 113, 125, 132, 126, 125, 109, 123, 103, 104, 107, 111, 113, 130, 116, 113, 130, 117, 122, 101, 103, 132, 108, 122, 117, 111, 114, 109, 117, 90, 100, 107, 111, 117, 111, 127, 104, 101, 118, 94, 114, 119, 113, 113, 119, 112, 115, 136, 125, 115, 120, 112, 115, 113, 118, 121, 114, 115, 116, 113, 123, 105, 109, 143, 121, 129, 111, 97, 119, 115, 114, 104, 107, 98, 101, 111, 124, 105, 123, 110, 104, 128, 112, 107, 109, 108, 102, 117, 115, 125, 128, 109, 111, 100, 111, 115, 107, 132, 105, 125, 117, 117, 113, 117, 118, 113, 107, 120, 127, 115, 118, 109, 119, 115, 112, 119, 113, 133, 109, 106, 106, 109, 124, 110, 121, 136, 116, 117, 109, 104, 99, 120, 111, 125, 119, 101, 119, 101, 113, 103, 107, 123, 105, 120, 105, 102, 110, 119, 95, 109, 117, 126, 101, 114, 115, 115, 117, 103, 128, 102, 125, 134, 100, 126, 112, 115, 101, 119, 96, 113, 112, 119, 114, 120, 125, 122, 107, 125, 123, 125, 125, 116, 126, 117, 131, 118, 110, 128, 120, 107, 120, 109, 126, 116, 111, 112, 126, 111, 119, 107, 119, 116, 123, 114, 110, 130, 122, 127, 115, 117, 127, 112, 124, 114, 112, 112, 121, 113, 112, 111, 103, 116, 116, 120, 119, 115, 113, 116, 121, 112, 121, 108, 114, 121, 120, 112, 124, 116, 105, 115, 111, 108, 115, 124, 113, 123, 122, 103, 107, 111, 126, 119, 113, 107, 115, 113, 112, 125, 123, 118, 128, 111, 122, 99, 122, 117, 110, 120, 103, 103, 113, 124, 104, 128, 112, 105, 114, 117, 112, 110, 113, 124, 116, 111, 114, 127, 124, 116, 121, 112, 110, 124, 111, 130, 117, 119, 113, 123, 117, 117, 131, 124, 113, 117, 111, 115, 113, 116, 120, 117, 119, 118, 113, 120, 108, 110, 124, 131, 115, 112, 116, 132, 114, 118, 109, 113, 111, 121, 112, 116, 119, 122, 116, 110, 113, 118, 122, 110, 115, 131, 119, 107, 116, 114, 114, 117, 115, 117, 108, 120, 111, 126, 112, 121, 122, 117, 115, 122, 109, 110, 119, 124, 112, 115, 122, 115, 116, 115, 110, 113, 122, 111, 113, 105, 117, 115, 119, 118, 109, 116, 109, 111, 121, 118, 111, 130, 114, 116, 106, 106, 118, 101, 113, 117, 103, 119, 110, 122, 113, 119, 102, 120, 120, 109, 108, 108, 116, 113, 126, 117, 97, 119, 122, 125, 107, 110, 115, 112, 119, 114, 119, 109, 114, 114, 117, 121, 110, 123, 120, 120, 119, 114, 109, 108, 124, 94, 108, 109, 123, 124, 114, 107, 107, 94, 119, 116, 112, 112, 117, 115, 121, 112, 121, 107, 122, 107, 144, 117, 107, 106, 116, 116, 113, 112, 117, 124, 115, 117, 101, 132, 112, 116, 115, 110, 128, 113, 129, 116, 119, 116, 117, 107, 119, 111, 108, 116, 119, 116, 104, 125, 116, 118, 108, 117, 117, 113, 132, 112, 105, 113, 116, 112, 106, 110, 132, 115, 117, 123, 117, 122, 121, 110, 114, 125, 115, 120, 107, 114, 94, 104, 113, 114, 122, 111, 107, 120, 120, 114, 114, 109, 115, 118, 115, 110, 109, 126, 115, 130, 111, 108, 101, 120, 122, 106, 119, 117, 110, 107, 107, 114, 111, 110, 124, 121, 107, 115, 108, 115, 117, 116, 109, 115, 121, 102, 112, 110, 117, 131, 110, 110, 106, 112, 127, 109, 114, 117, 119, 111, 114, 109, 126, 113, 110, 118, 109, 114, 102, 118, 110, 117, 114, 112, 107, 113, 114, 121, 118, 116, 108, 105, 114, 102, 110, 110, 125, 116, 103, 119, 112, 133, 113, 115, 119, 122, 124, 114, 105, 118, 115, 120, 119, 113, 119, 116, 112, 119, 121, 113, 110, 116, 110, 117, 112, 116, 113, 113, 111, 109, 116, 121, 116, 116, 116, 111, 105, 107, 113, 110, 121, 135, 104, 113, 116, 124, 124, 121, 111, 115, 130, 113, 110, 112, 117, 123, 121, 121, 118, 115, 123, 113, 114, 115, 110, 116, 114, 122, 106, 120, 107, 112, 113, 134, 107, 125, 115, 127, 115, 106, 91, 115, 118, 115, 119, 114, 116, 105, 114, 122, 106, 115, 113, 104, 105, 109, 115, 118, 129, 116, 115, 98, 117, 109, 109, 104, 116, 127, 120, 123, 100, 95, 123, 107, 121, 113, 96, 126, 105, 140, 143, 117, 114, 103, 98, 116, 118, 107, 114, 106, 122, 115, 133, 109, 117, 101, 116, 134, 136, 112, 103, 111, 92, 126, 110, 119, 106, 107, 108, 115, 105, 121, 116, 113, 113, 114, 117, 106, 106, 116, 100, 116, 109, 129, 91, 103, 123, 113, 99, 124, 105, 108, 126, 125, 94, 117, 118, 116, 112, 123, 133, 122, 100, 108, 118, 89, 99, 112, 118, 108, 138, 127, 117, 115, 114, 108, 112, 105, 84, 104, 108, 109, 101, 91, 125, 118, 125, 117, 117, 122, 112, 122, 110, 115, 122, 98, 123, 113, 106, 123, 98, 126, 108, 117, 114, 116, 136, 102, 115, 97, 119, 117, 118, 102, 125, 129, 118, 131, 116, 119, 109, 107, 102, 117, 127, 105, 119, 111, 115, 110, 117, 117, 99, 115, 117, 120, 108, 135, 120, 121, 112, 116, 113, 107, 123, 99, 106, 104, 124, 103, 104, 124, 93, 120, 114, 124, 123, 154, 108, 104, 113, 131, 118, 119, 113, 114, 110, 111, 92, 99, 110, 115, 103, 128, 108, 106, 122, 127, 103, 113, 97, 111, 126, 121, 108, 108, 111, 111, 111, 98, 109, 123, 106, 123, 112, 128, 112, 117, 110, 119, 118, 115, 102, 111, 114, 109, 122, 100, 119, 129, 118, 122, 120, 118, 136, 106, 108, 124, 107, 114, 116, 122, 123, 131, 128, 109, 99, 108, 130, 114, 119, 126, 137, 116, 110, 104, 100, 123, 126, 113, 121, 101, 78, 105, 117, 130, 130, 123, 97, 110, 106, 114, 95, 132, 108, 125, 102, 110, 117, 111, 118, 129, 106, 108, 153, 115, 106, 109, 98, 99, 134, 130, 126, 124, 125, 118, 95, 101, 93, 119, 128, 102, 124, 107, 102, 125, 116, 106, 127, 107, 113, 125, 117, 118, 104, 117, 111, 120, 111, 116, 101, 111, 131, 150, 107, 112, 98, 108, 105, 126, 107, 109, 114, 104, 110, 128, 109, 122, 114, 114, 118, 112, 115, 113, 109, 108, 108, 111, 127, 109, 126, 139, 95, 83, 121, 113, 114, 109, 109, 108, 123, 110, 95, 126, 98, 101, 119, 104, 111, 127, 125, 128, 118, 119, 117, 114, 121, 114, 116, 126, 99, 128, 108, 137, 109, 109, 113, 124, 118, 118, 109, 129, 116, 115, 120, 117, 118, 108, 112, 117, 92, 115, 108, 113, 125, 102, 127, 100, 125, 98, 108, 109, 113, 111, 100, 112, 102, 109, 110, 121, 104, 116, 107, 121, 135, 82, 136, 111, 112, 117, 127, 111, 120, 114, 109, 117, 114, 123, 137, 100, 123, 116, 116, 106, 104, 126, 108, 108, 142, 119, 117, 110, 106, 98, 114, 131, 111, 120, 112, 108, 125, 119, 118, 110, 107, 113, 105, 123, 113, 129, 106, 119, 107, 127, 122, 125, 114, 129, 110, 101, 108, 110, 109, 117, 120, 114, 115, 111, 109, 125, 121, 124, 111, 116, 123, 99, 140, 142, 118, 141, 127, 121, 112, 116, 116, 118, 108, 113, 112, 119, 123, 109, 108, 109, 130, 116, 116, 119, 113, 114, 122, 118, 111, 115, 118, 112, 113, 121, 103, 115, 112, 119, 118, 120, 117, 121, 117, 114, 111, 114, 121, 110, 129, 112, 116, 118, 108, 117, 107, 115, 116, 119, 103, 121, 111, 106, 116, 120, 121, 115, 114, 116, 115, 118, 104, 126, 117, 118, 113, 117, 120, 120, 106, 119, 118, 126, 114, 120, 121, 118, 118, 119, 119, 114, 114, 108, 127, 124, 112, 112, 110, 122, 127, 113, 124, 113, 122, 122, 110, 116, 122, 122, 125, 115, 113, 108, 109, 115, 118, 121, 119, 123, 126, 117, 112, 113, 112, 117, 116, 132, 110, 115, 117, 118, 119, 111, 116, 128, 125, 111, 121, 110, 117, 117, 112, 108, 114, 117, 112, 111, 120, 117, 117, 121, 118, 116, 117, 122, 113, 115, 116, 115, 113, 122, 120, 118, 122, 129, 122, 119, 111, 121, 121, 112, 111, 111, 122, 104, 109, 114, 100, 122, 118, 126, 118, 122, 113, 114, 109, 114, 109, 114, 122, 120, 116, 116, 111, 118, 111, 113, 114, 130, 109, 112, 121, 118, 114, 112, 112, 110, 110, 121, 121, 108, 117, 151, 116, 113, 127, 105, 116, 112, 121, 107, 128, 115, 111, 110, 116, 118, 117, 118, 116, 114, 110, 113, 111, 117, 117, 118, 127, 121, 116, 108, 119, 124, 117, 119, 120, 109, 108, 124, 111, 124, 113, 117, 110, 111, 109, 123, 120, 116, 108, 110, 121, 121, 117, 118, 117, 115, 111, 126, 120, 108, 116, 119, 119, 110, 114, 117, 120, 111, 110, 113, 114, 111, 120, 120, 113, 105, 113, 117, 114, 106, 118, 113, 115, 109, 110, 118, 114, 105, 116, 109, 111, 125, 111, 112, 116, 115, 111, 114, 120, 116, 116, 111, 116, 113, 120, 109, 116, 122, 115, 117, 121, 114, 113, 109, 112, 120, 109, 113, 105, 111, 112, 115, 120, 113, 132, 112, 120, 114, 112, 131, 116, 121, 117, 125, 125, 115, 112, 108, 112, 112, 109, 111, 113, 117, 115, 119, 117, 110, 107, 112, 122, 122, 112, 120, 120, 120, 121, 124, 118, 113, 123, 120, 116, 114, 111, 121, 117, 111, 103, 101, 118, 119, 109, 108, 114, 107, 112, 111, 115, 114, 124, 118, 130, 110, 119, 120, 123, 114, 117, 114, 115, 127, 111, 110, 116, 117, 113, 115, 110, 118, 117, 133, 112, 115, 119, 119, 118, 117, 109, 120, 121, 114, 116, 117, 116, 116, 116, 117, 120, 110, 115, 117, 125, 110, 119, 112, 112, 113, 118, 110, 112, 117, 110, 106, 112, 112, 118, 109, 106, 119, 122, 109, 119, 122, 113, 116, 120, 109, 117, 120, 124, 116, 108, 111, 112, 108, 118, 96, 114, 116, 114, 119, 120, 121, 111, 117, 110, 108, 122, 142, 118, 113, 105, 120, 111, 110, 114, 117, 114, 114, 107, 115, 111, 116, 106, 104, 116, 113, 124, 116, 111, 112, 113, 119, 115, 118, 125, 117, 115, 107, 117, 107, 111, 115, 115, 117, 108, 122, 117, 111, 115, 115, 122, 117, 119, 116, 110, 122, 117, 112, 105, 118, 123, 106, 105, 107, 108, 122, 115, 119, 118, 108, 113, 127, 115, 111, 109, 113, 118, 103, 118, 117, 99, 107, 112, 109, 108, 115, 117, 117, 129, 116, 111, 118, 109, 122, 128, 115, 119, 101, 120, 113, 107, 126, 111, 121, 113, 117, 119, 114, 125, 119, 108, 111, 128, 121, 114, 95, 113, 120, 106, 122, 124, 107, 105, 113, 112, 106, 110, 105, 114, 120, 108, 109, 120, 111, 122, 117, 115, 115, 108, 122, 122, 125, 123, 112, 128, 110, 111, 117, 105, 104, 123, 110, 119, 112, 118, 113, 97, 106, 114, 100, 121, 119, 122, 111, 121, 116, 110, 112, 116, 113, 117, 110, 120, 117, 114, 118, 119, 112, 104, 109, 108, 125, 112, 108, 116, 120, 122, 101, 120, 122, 113, 117, 112, 122, 117, 111, 110, 117, 111, 110, 119, 116, 117, 127, 116, 121, 117, 118, 105, 126, 130, 116, 120, 118, 116, 106, 105, 119, 115, 127, 117, 105, 105, 108, 111, 132, 112, 113, 122, 114, 114, 120, 112, 117, 138, 132, 120, 111, 114, 112, 107, 123, 102, 103, 118, 107, 116, 111, 109, 111, 103, 113, 121, 112, 119, 123, 114, 117, 110, 99, 102, 111, 110, 117, 96, 125, 113, 113, 120, 112, 115, 115, 113, 120, 116, 98, 111, 116, 119, 115, 125, 118, 120, 121, 111, 124, 109, 97, 109, 105, 120, 115, 132, 120, 122, 111, 108, 126, 117, 123, 119, 104, 106, 109, 115, 116, 119, 109, 121, 105, 118, 116, 112, 112, 113, 118, 114, 112, 112, 108, 105, 104, 120, 125, 107, 118, 112, 119, 113, 110, 116, 116, 125, 106, 103, 114, 124, 93, 106, 115, 115, 96, 116, 125, 107, 117, 129, 119, 113, 120, 115, 121, 119, 105, 111, 118, 109, 112, 121, 117, 116, 117, 119, 113, 112, 128, 124, 91, 114, 110, 114, 119, 114, 113, 110, 105, 111, 121, 105, 108, 122, 116, 116, 120, 106, 113, 120, 106, 112, 118, 106, 110, 120, 114, 114, 113, 117, 115, 119, 123, 99, 116, 127, 111, 116, 115, 113, 113, 113, 129, 129, 115, 115, 120, 124, 117, 114, 116, 113, 112, 112, 107, 129, 118, 112, 116, 121, 123, 114, 103, 131, 103, 124, 109, 115, 113, 114, 107, 111, 121, 113, 115, 108, 110, 100, 137, 120, 107, 115, 108, 113, 108, 99, 121, 116, 101, 96, 116, 119, 120, 106, 109, 104, 108, 117, 114, 118, 123, 118, 126, 123, 107, 110, 122, 114, 142, 111, 115, 128, 118, 112, 109, 103, 108, 106, 117, 113, 115, 118, 119, 103, 110, 129, 115, 119, 96, 122, 121, 120, 119, 113, 118, 117, 112, 106, 117, 121, 131, 125, 123, 116, 105, 120, 116, 113, 106, 116, 109, 105, 107, 114, 117, 126, 112, 119, 119, 99, 118, 102, 97, 114, 138, 104, 111, 103, 126, 108, 112, 124, 97, 110, 119, 130, 108, 123, 109, 113, 118, 109, 105, 107, 104, 112, 119, 124, 122, 110, 112, 111, 126, 111, 114, 123, 114, 115, 122, 125, 115, 103, 102, 113, 113, 117, 120, 115, 106, 112, 117, 113, 111, 128, 104, 126, 110, 120, 106, 115, 109, 114, 107, 118, 100, 117, 110, 131, 110, 112, 107, 123, 127, 130, 116, 98, 121, 119, 108, 114, 121, 118, 101, 112, 113, 122, 115, 126, 110, 111, 116, 111, 111, 130, 111, 123, 118, 114, 112, 131, 114, 91, 110, 110, 121, 127, 120, 116, 113, 108, 116, 113, 120, 111, 110, 124, 129, 115, 114, 111, 108, 131, 129, 110, 130, 123, 117, 107, 108, 117, 110, 112, 119, 117, 107, 116, 128, 110, 124, 110, 116, 115, 107, 120, 110, 117, 113, 124, 115, 112, 123, 122, 110, 105, 117, 122, 116, 116, 120, 114, 113, 115, 114, 113, 110, 116, 121, 106, 117, 137, 119, 108, 96, 114, 113, 98, 106, 119, 114, 120, 110, 120, 109, 115, 111, 107, 118, 119, 112, 127, 118, 112, 121, 114, 115, 120, 103, 114, 125, 128, 112, 119, 117, 120, 117, 126, 130, 119, 113, 114, 117, 119, 106, 107, 120, 117, 117, 117, 107, 101, 109, 115, 124, 116, 111, 124, 118, 115, 115, 111, 124, 101, 107, 114, 116, 113, 111, 121, 106, 118, 116, 118, 120, 111, 116, 116, 116, 117, 124, 106, 115, 116, 108, 108, 117, 121, 120, 102, 111, 114, 116, 110, 112, 119, 128, 120, 117, 111, 114, 110, 116, 108, 118, 115, 114, 109, 117, 113, 118, 107, 117, 117, 113, 110, 124, 115, 127, 108, 124, 134, 122, 110, 113, 124, 111, 122, 104, 113, 119, 121, 118, 115, 126, 112, 116, 122, 114, 121, 118, 123, 125, 111, 110, 143, 109, 120, 119, 121, 115, 116, 116, 120, 117, 121, 109, 125, 115, 100, 95, 123, 117, 114, 113, 114, 110, 119, 113, 105, 115, 118, 112, 120, 118, 123, 112, 103, 126, 117, 123, 111, 118, 114, 127, 112, 112, 121, 100, 116, 107, 111, 121, 114, 116, 118, 117, 106, 110, 125, 97, 115, 111, 113, 112, 126, 109, 121, 123, 127, 115, 118, 118, 118, 114, 119, 118, 112, 126, 105, 93, 113, 114, 117, 115, 114, 113, 110, 114, 131, 141, 112, 101, 111, 112, 114, 115, 114, 99, 130, 121, 119, 114, 112, 111, 117, 113, 112, 121, 115, 106, 155, 124, 116, 115, 103, 117, 123, 126, 109, 118, 101, 117, 109, 114, 105, 109, 112, 108, 120, 125, 106, 118, 118, 108, 113, 139, 111, 116, 114, 116, 113, 114, 118, 120, 120, 114, 88, 122, 112, 110, 126, 109, 123, 113, 116, 113, 123, 116, 101, 116, 105, 122, 102, 113, 107, 107, 107, 121, 120, 117, 137, 113, 117, 107, 114, 113, 116, 112, 115, 114, 115, 129, 116, 110, 116, 103, 121, 104, 115, 121, 115, 118, 116, 123, 120, 115, 126, 100, 118, 116, 119, 126, 124, 120, 122, 103, 112, 111, 124, 122, 118, 109, 119, 121, 114, 119, 115, 114, 121, 105, 121, 117, 113, 122, 103, 114, 116, 117, 114, 117, 118, 119, 122, 121, 110, 120, 103, 121, 119, 121, 125, 114, 120, 120, 117, 115, 109, 118, 115, 114, 120, 111, 114, 116, 114, 120, 113, 114, 113, 115, 118, 118, 112, 115, 124, 116, 116, 110, 122, 116, 113, 123, 103, 115, 117, 108, 126, 118, 117, 107, 110, 118, 117, 114, 116, 119, 115, 115, 98, 107, 114, 119, 112, 118, 119, 111, 112, 118, 111, 121, 115, 112, 118, 108, 110, 117, 104, 122, 109, 109, 124, 108, 119, 113, 110, 110, 128, 121, 116, 121, 119, 118, 111, 114, 111, 110, 115, 123, 106, 117, 117, 113, 112, 110, 110, 110, 122, 112, 103, 121, 115, 115, 111, 118, 121, 112, 112, 121, 109, 117, 110, 120, 120, 109, 117, 117, 115, 110, 112, 121, 110, 126, 111, 122, 113, 112, 119, 112, 114, 118, 112, 108, 111, 114, 129, 119, 121, 113, 126, 114, 117, 116, 117, 113, 120, 117, 114, 123, 114, 117, 116, 114, 110, 113, 117, 112, 111, 124, 110, 117, 124, 109, 112, 118, 113, 118, 112, 96, 116, 122, 114, 117, 111, 119, 122, 116, 116, 112, 120, 113, 113, 115, 113, 118, 117, 107, 112, 111, 116, 113, 122, 117, 108, 109, 103, 110, 115, 124, 113, 120, 120, 117, 117, 109, 110, 108, 115, 115, 121, 124, 112, 115, 120, 108, 123, 123, 128, 123, 114, 111, 124, 111, 113, 116, 121, 112, 113, 106, 117, 113, 119, 110, 120, 112, 119, 110, 114, 111, 122, 115, 101, 117, 132, 119, 113, 114, 111, 110, 110, 118, 124, 119, 102, 114, 113, 110, 115, 110, 111, 115, 112, 116, 120, 114, 109, 114, 116, 118, 114, 115, 116, 117, 121, 105, 115, 115, 109, 115, 112, 111, 123, 125, 107, 113, 113, 115, 110, 113, 111, 122, 121, 120, 125, 117, 112, 110, 109, 110, 119, 114, 125, 125, 117, 109, 124, 117, 116, 112, 115, 119, 116, 111, 114, 115, 115, 114, 113, 125, 117, 114, 110, 111, 118, 105, 109, 115, 113, 109, 109, 109, 114, 119, 120, 111, 116, 109, 115, 100, 124, 109, 119, 115, 112, 112, 109, 111, 115, 117, 118, 120, 110, 123, 118, 117, 112, 111, 123, 120, 114, 117, 120, 109, 118, 119, 110, 113, 118, 130, 115, 109, 114, 114, 114, 116, 117, 117, 112, 111, 114, 118, 114, 115, 117, 113, 124, 112, 103, 117, 117, 110, 114, 114, 112, 108, 116, 111, 126, 110, 121, 132, 117, 113, 118, 121, 119, 115, 109, 113, 122, 120, 113, 113, 120, 117, 114, 119, 116, 113, 113, 112, 100, 115, 116, 118, 118, 122, 123, 115, 113, 114, 125, 125, 108, 116, 119, 119, 105, 120, 112, 119, 120, 110, 118, 124, 112, 119, 120, 110, 111, 116, 107, 116, 107, 115, 119, 118, 108, 108, 120, 106, 120, 121, 120, 122, 121, 111, 121, 111, 109, 118, 110, 114, 115, 119, 115, 117, 112, 110, 114, 117, 120, 116, 112, 110, 121, 116, 110, 112, 112, 114, 109, 120, 119, 110, 111, 115, 117, 114, 111, 103, 116, 106, 125, 124, 120, 113, 116, 109, 109, 119, 116, 105, 113, 113, 115, 106, 108, 104, 103, 127, 111, 107, 102, 118, 123, 119, 115, 105, 114, 96, 112, 117, 119, 107, 116, 120, 121, 113, 98, 120, 119, 126, 132, 107, 107, 113, 99, 118, 112, 112, 105, 110, 117, 132, 129, 104, 109, 107, 122, 106, 108, 110, 101, 121, 112, 117, 112, 119, 105, 113, 123, 108, 122, 115, 131, 133, 116, 116, 114, 114, 125, 111, 124, 115, 114, 114, 113, 109, 119, 124, 110, 112, 120, 115, 113, 136, 112, 119, 109, 124, 111, 131, 115, 100, 114, 123, 118, 121, 109, 108, 110, 125, 106, 114, 99, 116, 137, 111, 115, 113, 118, 102, 110, 110, 114, 108, 128, 126, 116, 125, 118, 110, 110, 111, 112, 122, 119, 107, 105, 123, 130, 109, 112, 118, 146, 100, 125, 107, 117, 113, 111, 125, 123, 114, 109, 108, 105, 117, 106, 109, 115, 112, 116, 127, 115, 129, 108, 129, 115, 118, 108, 101, 97, 113, 108, 122, 124, 113, 119, 120, 119, 116, 123, 122, 105, 112, 101, 111, 118, 120, 117, 116, 121, 112, 100, 126, 124, 118, 117, 133, 114, 113, 121, 122, 126, 115, 139, 124, 114, 121, 107, 107, 117, 100, 124, 123, 121, 129, 114, 114, 98, 121, 117, 115, 109, 106, 115, 102, 121, 92, 128, 119, 97, 113, 108, 119, 111, 130, 115, 120, 109, 120, 115, 117, 111, 112, 109, 114, 118, 121, 125, 119, 110, 115, 110, 107, 109, 110, 100, 132, 110, 137, 115, 106, 123, 120, 115, 115, 122, 116, 105, 124, 117, 112, 116, 109, 115, 114, 102, 117, 129, 112, 103, 127, 117, 126, 124, 136, 114, 98, 127, 123, 113, 121, 98, 109, 117, 127, 125, 128, 112, 118, 118, 119, 110, 112, 122, 140, 118, 109, 117, 113, 126, 118, 117, 112, 108, 103, 117, 116, 108, 112, 123, 116, 116, 100, 110, 100, 113, 127, 121, 104, 117, 110, 106, 115, 110, 112, 127, 109, 121, 127, 116, 106, 96, 117, 111, 129, 121, 100, 130, 107, 109, 116, 119, 109, 118, 122, 111, 105, 101, 112, 132, 119, 115, 120, 112, 110, 115, 121, 108, 109, 130, 102, 125, 76, 118, 103, 117, 108, 114, 137, 121, 117, 121, 113, 117, 122, 114, 120, 113, 125, 113, 106, 115, 125, 106, 133, 116, 114, 115, 113, 129, 106, 117, 129, 104, 121, 97, 109, 97, 137, 119, 109, 102, 118, 119, 111, 109, 119, 125, 111, 112, 109, 128, 112, 124, 124, 105, 123, 109, 116, 115, 113, 128, 112, 111, 130, 117, 110, 121, 116, 114, 111, 109, 117, 112, 107, 114, 110, 124, 112, 114, 114, 107, 116, 131, 120, 107, 110, 112, 96, 120, 105, 119, 132, 102, 110, 126, 113, 135, 132, 109, 98, 117, 112, 105, 116, 115, 109, 106, 91, 109, 112, 112, 118, 129, 114, 115, 99, 114, 119, 130, 117, 127, 127, 114, 115, 132, 108, 109, 134, 114, 106, 134, 117, 107, 127, 108, 124, 90, 119, 136, 121, 123, 108, 106, 107, 112, 122, 119, 118, 113, 113, 123, 113, 127, 112, 120, 112, 112, 122, 115, 120, 110, 113, 122, 101, 113, 117, 108, 119, 129, 122, 113, 114, 120, 115, 121, 115, 122, 112, 63, 120, 119, 123, 111, 104, 111, 118, 116, 116, 119, 110, 113, 133, 120, 120, 113, 112, 114, 134, 112, 115, 121, 113, 104, 105, 104, 116, 116, 105, 115, 112, 107, 110, 122, 116, 116, 107, 118, 122, 116, 118, 121, 117, 108, 107, 123, 99, 114, 115, 117, 110, 113, 109, 119, 125, 122, 114, 111, 119, 114, 111, 111, 118, 108, 112, 110, 124, 113, 109, 123, 119, 111, 106, 123, 113, 100, 108, 110, 115, 111, 112, 112, 114, 118, 118, 114, 114, 117, 116, 122, 119, 105, 111, 123, 118, 118, 113, 116, 106, 128, 117, 98, 120, 123, 107, 106, 115, 114, 117, 134, 106, 111, 109, 115, 114, 110, 115, 110, 115, 105, 108, 127, 111, 121, 115, 111, 113, 119, 113, 116, 107, 122, 98, 89, 114, 119, 108, 115, 120, 120, 119, 110, 121, 116, 113, 109, 110, 117, 111, 121, 120, 113, 118, 136, 116, 118, 123, 104, 108, 118, 108, 112, 120, 116, 121, 122, 120, 125, 124, 133, 115, 112, 116, 115, 115, 107, 108, 116, 106, 117, 121, 120, 115, 122, 123, 119, 94, 105, 106, 119, 114, 111, 112, 115, 85, 132, 120, 134, 123, 115, 119, 122, 115, 116, 108, 103, 112, 116, 109, 128, 115, 116, 121, 119, 118, 122, 100, 111, 115, 113, 123, 115, 120, 108, 117, 109, 112, 117, 113, 122, 123, 100, 129, 109, 128, 112, 116, 103, 116, 112, 98, 118, 114, 124, 129, 115, 122, 120, 106, 121, 114, 118, 107, 105, 113, 113, 106, 110, 117, 114, 119, 122, 112, 132, 119, 111, 105, 118, 116, 116, 114, 117, 115, 118, 123, 125, 121, 123, 126, 113, 108, 109, 119, 96, 122, 116, 84, 116, 117, 119, 116, 119, 120, 101, 108, 108, 122, 110, 113, 118, 133, 123, 114, 117, 115, 114, 110, 115, 114, 118, 99, 120, 124, 118, 119, 118, 136, 114, 121, 104, 131, 105, 115, 115, 114, 122, 111, 118, 117, 112, 114, 110, 122, 126, 124, 110, 117, 120, 109, 117, 109, 124, 119, 112, 122, 110, 116, 123, 107, 106, 118, 113, 113, 127, 120, 112, 122, 119, 127, 124, 114, 107, 117, 110, 146, 108, 101, 121, 109, 116, 100, 122, 117, 113, 121, 107, 112, 113, 135, 113, 125, 108, 90, 114, 114, 91, 111, 119, 123, 113, 119, 111, 125, 121, 131, 115, 113, 112, 120, 117, 114, 119, 121, 104, 110, 110, 122, 119, 115, 111, 109, 113, 105, 111, 129, 93, 106, 104, 97, 118, 116, 111, 105, 130, 119, 117, 117, 123, 103, 109, 113, 120, 120, 115, 115, 115, 107, 116, 117, 113, 117, 111, 112, 117, 118, 103, 120, 121, 113, 112, 109, 112, 108, 113, 119, 113, 113, 121, 88, 92, 128, 123, 105, 108, 90, 108, 114, 109, 110, 110, 122, 124, 142, 112, 130, 109, 106, 108, 106, 111, 118, 106, 116, 121, 112, 127, 115, 103, 115, 109, 113, 113, 118, 109, 114, 118, 119, 113, 105, 115, 117, 107, 108, 99, 110, 113, 108, 124, 127, 114, 130, 120, 103, 113, 98, 115, 112, 114, 126, 109, 129, 118, 113, 125, 127, 147, 131, 112, 105, 120, 109, 117, 120, 136, 108, 107, 121, 113, 109, 111, 110, 123, 125, 116, 127, 126, 117, 128, 124, 112, 110, 113, 114, 106, 114, 123, 104, 110, 124, 106, 127, 109, 112, 105, 106, 116, 97, 134, 118, 103, 117, 110, 94, 110, 109, 118, 106, 114, 129, 99, 119, 107, 122, 114, 100, 114, 123, 111, 121, 108, 106, 118, 116, 103, 109, 98, 120, 125, 108, 124, 118, 101, 124, 123, 104, 103, 136, 127, 126, 130, 114, 103, 112, 104, 101, 119, 111, 113, 123, 94, 115, 110, 120, 126, 114, 99, 117, 114, 132, 109, 116, 106, 110, 104, 117, 114, 122, 105, 119, 113, 130, 123, 113, 102, 103, 127, 122, 114, 122, 118, 120, 122, 116, 105, 106, 118, 124, 107, 114, 109, 117, 110, 120, 122, 119, 116, 125, 121, 115, 106, 105, 118, 114, 111, 108, 118, 136, 99, 110, 110, 144, 112, 97, 117, 112, 121, 115, 98, 125, 110, 102, 117, 100, 112, 100, 113, 117, 111, 114, 119, 117, 140, 110, 117, 101, 110, 107, 119, 120, 109, 114, 126, 123, 106, 120, 102, 109, 102, 106, 109, 111, 117, 119, 101, 120, 103, 118, 122, 118, 120, 124, 117, 119, 122, 125, 124, 110, 103, 109, 125, 131, 102, 128, 116, 117, 114, 113, 124, 105, 117, 113, 114, 142, 109, 133, 116, 116, 120, 104, 114, 115, 121, 125, 111, 107, 122, 117, 130, 115, 113, 131, 100, 111, 110, 109, 104, 106, 106, 109, 112, 119, 106, 113, 121, 97, 105, 134, 103, 114, 112, 111, 112, 103, 119, 118, 106, 114, 118, 120, 116, 120, 106, 103, 106, 105, 114, 98, 107, 123, 92, 121, 125, 120, 115, 117, 109, 119, 113, 117, 113, 117, 136, 123, 112, 142, 116, 110, 118, 124, 116, 122, 108, 118, 105, 105, 124, 114, 124, 120, 114, 112, 106, 117, 103, 110, 111, 110, 103, 124, 138, 106, 111, 122, 101, 129, 118, 120, 123, 106, 119, 118, 103, 113, 121, 123, 113, 107, 123, 108, 116, 116, 110, 109, 104, 119, 123, 123, 117, 137, 125, 107, 106, 118, 105, 110, 119, 120, 112, 123, 117, 114, 122, 113, 117, 122, 116, 114, 127, 119, 120, 112, 117, 116, 111, 104, 115, 123, 112, 132, 116, 133, 109, 109, 117, 100, 138, 110, 121, 121, 112, 99, 112, 114, 105, 103, 119, 116, 119, 110, 114, 105, 115, 102, 122, 108, 105, 103, 117, 124, 112, 122, 111, 121, 128, 106, 113, 126, 131, 114, 100, 98, 122, 117, 118, 122, 116, 121, 113, 127, 104, 122, 124, 116, 111, 91, 101, 121, 115, 109, 117, 114, 110, 123, 116, 124, 122, 124, 104, 114, 110, 120, 114, 119, 112, 107, 110, 131, 124, 101, 107, 97, 118, 113, 108, 107, 110, 109, 124, 115, 110, 110, 116, 105, 116, 111, 120, 119, 125, 119, 110, 121, 109, 114, 119, 119, 124, 109, 119, 112, 129, 106, 125, 117, 111, 118, 116, 112, 116, 131, 114, 106, 117, 120, 108, 127, 107, 115, 124, 119, 105, 120, 110, 120, 114, 112, 107, 108, 128, 112, 110, 108, 110, 101, 114, 127, 111, 101, 110, 116, 105, 103, 105, 108, 115, 120, 118, 112, 109, 107, 112, 119, 115, 108, 120, 120, 119, 116, 114, 121, 122, 121, 102, 116, 110, 100, 116, 130, 113, 112, 122, 116, 119, 116, 110, 113, 110, 124, 120, 109, 113, 121, 117, 111, 103, 126, 115, 110, 123, 118, 115, 104, 116, 114, 122, 123, 123, 121, 110, 106, 120, 109, 117, 120, 107, 113, 118, 119, 103, 117, 100, 109, 103, 117, 98, 123, 125, 118, 102, 119, 105, 122, 120, 110, 112, 116, 116, 110, 114, 109, 122, 122, 113, 111, 124, 106, 99, 110, 117, 119, 112, 104, 116, 115, 118, 109, 111, 127, 121, 126, 113, 123, 112, 107, 106, 110, 130, 109, 124, 117, 111, 113, 108, 111, 127, 121, 100, 114, 115, 123, 108, 103, 119, 125, 112, 115, 105, 104, 111, 117, 112, 105, 114, 134, 104, 111, 123, 113, 98, 121, 116, 114, 98, 116, 125, 115, 110, 114, 131, 100, 116, 110, 125, 104, 133, 110, 124, 111, 103, 109, 103, 107, 124, 110, 107, 121, 119, 113, 108, 125, 120, 122, 121, 105, 111, 107, 113, 110, 103, 103, 113, 113, 109, 114, 114, 115, 121, 110, 117, 106, 120, 114, 118, 106, 107, 117, 122, 125, 124, 100, 110, 113, 130, 115, 106, 122, 112, 125, 115, 115, 108, 117, 133, 125, 113, 106, 118, 125, 120, 103, 125, 111, 108, 131, 114, 105, 114, 112, 115, 121, 109, 110, 124, 128, 100, 114, 118, 107, 99, 111, 119, 124, 114, 109, 115, 117, 114, 109, 105, 110, 115, 108, 94, 121, 126, 112, 120, 116, 110, 117, 115, 120, 114, 120, 114, 116, 121, 130, 117, 125, 119, 110, 116, 106, 115, 112, 109, 119, 112, 114, 107, 123, 111, 120, 118, 107, 122, 132, 114, 110, 123, 118, 126, 109, 121, 111, 112, 118, 115, 122, 110, 121, 103, 117, 106, 117, 115, 115, 147, 117, 114, 107, 114, 112, 125, 119, 116, 107, 124, 110, 112, 117, 107, 110, 115, 131, 113, 114, 115, 121, 103, 118, 97, 128, 113, 102, 120, 115, 114, 108, 116, 109, 105, 124, 114, 109, 118, 109, 121, 132, 112, 115, 127, 121, 116, 110, 109, 122, 126, 114, 114, 121, 126, 120, 108, 115, 116, 105, 118, 100, 103, 103, 129, 117, 111, 114, 104, 112, 127, 114, 116, 133, 112, 122, 115, 119, 102, 113, 129, 111, 112, 121, 109, 114, 123, 118, 107, 109, 110, 125, 109, 118, 120, 105, 123, 114, 115, 120, 127, 116, 115, 128, 118, 104, 107, 120, 137, 103, 101, 107, 118, 124, 110, 112, 109, 105, 110, 121, 115, 120, 118, 119, 121, 101, 100, 109, 127, 108, 109, 112, 129, 117, 105, 136, 112, 108, 119, 126, 114, 78, 110, 127, 117, 118, 127, 100, 118, 121, 115, 121, 107, 108, 110, 129, 107, 114, 107, 117, 118, 115, 98, 115, 130, 109, 107, 116, 114, 110, 114, 97, 119, 111, 120, 117, 110, 114, 114, 128, 132, 119, 123, 114, 115, 107, 151, 126, 111, 136, 127, 106, 100, 125, 112, 110, 126, 110, 110, 110, 114, 104, 119, 113, 129, 126, 114, 107, 110, 122, 131, 96, 97, 114, 98, 117, 104, 121, 112, 109, 119, 104, 105, 118, 119, 115, 95, 105, 112, 124, 120, 112, 120, 111, 110, 116, 131, 113, 106, 142, 114, 100, 115, 110, 110, 106, 130, 126, 118, 111, 124, 117, 125, 110, 117, 109, 105, 124, 107, 111, 139, 104, 109, 121, 122, 108, 100, 113, 115, 106, 114, 123, 116, 111, 122, 108, 114, 114, 156, 109, 125, 118, 111, 110, 102, 121, 116, 107, 122, 125, 115, 113, 111, 124, 112, 118, 120, 112, 132, 113, 109, 113, 126, 116, 116, 103, 115, 126, 113, 117, 119, 108, 115, 106, 114, 116, 124, 114, 119, 113, 134, 117, 123, 113, 115, 101, 128, 102, 119, 115, 115, 116, 123, 93, 128, 128, 122, 116, 131, 103, 107, 124, 115, 111, 110, 124, 118, 123, 103, 124, 96, 106, 102, 107, 114, 113, 116, 116, 111, 127, 105, 124, 102, 117, 103, 114, 108, 115, 118, 122, 111, 118, 116, 119, 115, 126, 93, 122, 126, 127, 110, 131, 116, 113, 126, 121, 105, 132, 128, 113, 123, 106, 116, 124, 121, 115, 107, 94, 125, 101, 130, 121, 114, 124, 114, 109, 122, 127, 85, 138, 111, 113, 127, 118, 123, 116, 110, 118, 118, 100, 114, 111, 135, 121, 123, 100, 104, 118, 104, 114, 121, 125, 109, 119, 132, 103, 118, 115, 106, 118, 107, 120, 113, 95, 113, 110, 112, 115, 114, 123, 123, 111, 113, 131, 116, 106, 109, 111, 130, 118, 115, 111, 113, 96, 114, 122, 120, 113, 116, 102, 121, 113, 111, 119, 95, 118, 119, 118, 109, 117, 118, 102, 111, 119, 121, 104, 111, 132, 114, 106, 110, 118, 128, 152, 119, 122, 133, 104, 106, 117, 100, 123, 107, 120, 136, 135, 114, 124, 116, 119, 118, 99, 132, 116, 109, 120, 124, 115, 108, 116, 118, 126, 119, 114, 108, 104, 122, 106, 117, 134, 105, 113, 118, 108, 130, 114, 128, 108, 112, 117, 115, 106, 108, 116, 112, 124, 112, 122, 100, 123, 128, 121, 108, 111, 99, 111, 141, 105, 115, 112, 141, 118, 111, 104, 110, 120, 97, 135, 93, 98, 85, 113, 118, 98, 112, 135, 116, 119, 111, 115, 113, 96, 106, 128, 115, 111, 115, 110, 119, 114, 101, 102, 114, 121, 118, 105, 127, 133, 100, 114, 81, 127, 118, 126, 110, 111, 117, 139, 104, 112, 109, 108, 92, 118, 114, 113, 108, 114, 131, 117, 124, 100, 116, 124, 116, 115, 109, 110, 121, 107, 114, 102, 120, 123, 114, 116, 121, 132, 90, 113, 115, 117, 118, 115, 127, 104, 122, 111, 124, 113, 104, 118, 117, 113, 109, 117, 104, 117, 117, 107, 118, 114, 110, 105, 129, 123, 111, 115, 118, 112, 117, 115, 106, 111, 114, 117, 113, 113, 111, 118, 113, 117, 104, 115, 109, 124, 115, 123, 122, 119, 113, 120, 113, 101, 110, 118, 110, 112, 119, 116, 116, 112, 105, 114, 115, 110, 102, 103, 103, 118, 112, 99, 128, 115, 105, 113, 114, 125, 109, 107, 111, 110, 109, 116, 104, 126, 105, 122, 111, 110, 115, 119, 96, 110, 96, 107, 119, 111, 106, 117, 114, 118, 112, 114, 120, 109, 118, 111, 114, 112, 120, 115, 115, 115, 115, 121, 123, 119, 115, 119, 107, 120, 117, 126, 113, 117, 108, 122, 116, 113, 115, 122, 116, 117, 114, 126, 103, 116, 106, 112, 112, 115, 113, 114, 115, 112, 109, 106, 116, 113, 109, 121, 124, 110, 113, 120, 116, 118, 115, 114, 103, 122, 110, 107, 106, 114, 112, 102, 112, 110, 110, 119, 96, 111, 111, 113, 122, 106, 128, 115, 113, 118, 123, 113, 116, 120, 124, 116, 114, 120, 115, 101, 118, 104, 110, 119, 113, 106, 114, 102, 122, 106, 110, 113, 110, 120, 119, 119, 115, 109, 109, 106, 123, 111, 110, 112, 122, 114, 103, 122, 120, 121, 130, 122, 118, 117, 118, 114, 117, 118, 102, 112, 116, 112, 120, 115, 119, 115, 120, 121, 128, 129, 124, 113, 122, 121, 129, 117, 121, 106, 123, 107, 117, 120, 109, 117, 115, 120, 119, 128, 105, 114, 112, 114, 115, 116, 117, 115, 108, 114, 113, 133, 109, 125, 113, 112, 112, 107, 112, 113, 117, 108, 116, 130, 115, 121, 110, 120, 117, 116, 113, 122, 108, 126, 121, 111, 113, 112, 117, 128, 67, 116, 118, 115, 113, 119, 107, 110, 119, 121, 119, 122, 114, 114, 107, 122, 113, 107, 120, 107, 117, 112, 123, 114, 107, 110, 118, 112, 113, 102, 116, 103, 121, 110, 127, 110, 124, 112, 116, 113, 109, 115, 111, 105, 114, 116, 109, 115, 122, 101, 116, 118, 108, 118, 127, 98, 129, 107, 117, 113, 111, 112, 116, 118, 116, 109, 116, 110, 137, 120, 110, 123, 115, 115, 121, 122, 117, 123, 112, 115, 112, 116, 117, 112, 109, 115, 109, 115, 126, 130, 106, 113, 119, 121, 124, 113, 124, 103, 111, 117, 126, 107, 123, 120, 111, 115, 119, 113, 110, 111, 113, 121, 123, 121, 113, 115, 120, 118, 112, 116, 115, 112, 109, 115, 119, 112, 113, 109, 117, 115, 118, 113, 113, 115, 118, 116, 128, 112, 117, 107, 117, 116, 104, 107, 109, 110, 117, 113, 119, 118, 108, 125, 115, 113, 118, 108, 118, 119, 108, 112, 121, 104, 119, 110, 114, 116, 112, 113, 113, 131, 127, 110, 113, 122, 121, 113, 122, 119, 121, 126, 118, 126, 110, 112, 119, 124, 113, 119, 115, 118, 119, 121, 118, 116, 121, 123, 115, 117, 113, 127, 108, 106, 116, 115, 120, 113, 115, 108, 118, 120, 124, 112, 113, 105, 124, 105, 124, 117, 98, 122, 103, 118, 118, 112, 114, 118, 113, 109, 128, 85, 117, 108, 116, 119, 101, 118, 123, 117, 102, 123, 110, 108, 107, 116, 108, 105, 89, 136, 115, 115, 99, 119, 102, 121, 112, 122, 117, 118, 115, 114, 100, 112, 111, 104, 111, 125, 106, 109, 101, 111, 119, 109, 116, 94, 115, 113, 113, 116, 127, 120, 90, 105, 110, 117, 122, 131, 105, 113, 135, 108, 116, 119, 117, 117, 100, 85, 109, 114, 122, 122, 118, 120, 106, 115, 136, 118, 125, 122, 134, 103, 125, 116, 120, 116, 116, 106, 103, 115, 104, 120, 115, 120, 110, 118, 116, 105, 112, 123, 114, 110, 118, 120, 103, 111, 107, 104, 123, 119, 115, 117, 106, 100, 123, 112, 119, 115, 114, 115, 110, 118, 117, 115, 117, 96, 116, 104, 112, 101, 111, 116, 110, 113, 119, 117, 118, 113, 120, 119, 117, 116, 115, 114, 124, 113, 121, 115, 122, 127, 103, 125, 128, 117, 121, 119, 131, 108, 117, 105, 116, 118, 121, 122, 120, 118, 120, 109, 110, 114, 120, 111, 128, 110, 133, 110, 104, 96, 117, 117, 99, 104, 104, 103, 114, 137, 104, 120, 124, 96, 104, 105, 109, 121, 89, 130, 107, 112, 105, 98, 125, 107, 106, 100, 118, 125, 112, 116, 113, 117, 112, 118, 112, 122, 134, 107, 91, 118, 118, 111, 102, 97, 125, 109, 119, 113, 95, 113, 99, 120, 111, 109, 101, 95, 129, 114, 109, 114, 121, 105, 107, 107, 104, 106, 112, 122, 83, 109, 112, 108, 119, 123, 105, 114, 109, 109, 107, 113, 108, 109, 115, 99, 114, 104, 117, 120, 126, 107, 112, 140, 118, 128, 100, 115, 111, 114, 122, 114, 109, 112, 130, 86, 104, 97, 95, 105, 109, 116, 121, 120, 101, 123, 109, 114, 117, 116, 106, 91, 114, 97, 135, 111, 125, 103, 118, 111, 97, 105, 124, 120, 106, 98, 104, 117, 119, 113, 124, 103, 103, 91, 107, 103, 112, 112, 127, 104, 115, 128, 129, 114, 90, 115, 93, 118, 114, 114, 106, 121, 118, 124, 105, 113, 111, 120, 112, 117, 107, 104, 129, 121, 107, 113, 97, 118, 128, 105, 115, 118, 118, 115, 121, 114, 113, 105, 125, 117, 122, 113, 115, 115, 119, 114, 111, 105, 118, 104, 117, 122, 109, 111, 100, 112, 130, 112, 111, 101, 116, 113, 118, 126, 114, 106, 107, 111, 108, 113, 112, 107, 113, 118, 115, 120, 116, 117, 113, 108, 98, 114, 101, 113, 111, 119, 115, 118, 116, 109, 96, 153, 124, 118, 96, 112, 112, 125, 115, 101, 121, 103, 116, 116, 122, 95, 110, 115, 120, 115, 112, 100, 108, 114, 122, 113, 105, 112, 126, 125, 101, 113, 110, 124, 129, 110, 116, 136, 94, 124, 131, 116, 116, 124, 104, 114, 125, 119, 108, 108, 119, 109, 106, 97, 121, 106, 96, 107, 107, 115, 119, 114, 123, 116, 112, 112, 111, 113, 114, 104, 122, 114, 124, 110, 138, 120, 120, 122, 111, 112, 112, 115, 111, 121, 122, 107, 117, 111, 116, 126, 116, 115, 123, 113, 98, 120, 107, 122, 111, 139, 116, 106, 104, 115, 120, 127, 118, 126, 109, 113, 112, 121, 106, 113, 125, 108, 120, 118, 114, 118, 108, 126, 123, 92, 100, 117, 114, 129, 115, 118, 110, 106, 122, 103, 113, 116, 124, 118, 114, 103, 120, 122, 114, 112, 116, 129, 111, 110, 121, 112, 120, 107, 104, 110, 96, 117, 118, 115, 118, 120, 120, 114, 125, 107, 108, 118, 119, 117, 114, 108, 105, 107, 105, 107, 116, 107, 117, 117, 115, 113, 115, 112, 117, 120, 120, 117, 119, 125, 108, 126, 110, 110, 104, 125, 116, 103, 125, 123, 134, 102, 133, 110, 130, 117, 115, 109, 124, 123, 116, 115, 123, 117, 106, 123, 122, 119, 115, 116, 117, 109, 122, 113, 119, 124, 118, 120, 106, 115, 122, 116, 119, 118, 121, 105, 116, 117, 115, 115, 115, 120, 107, 113, 118, 120, 112, 114, 109, 111, 119, 115, 91, 118, 100, 112, 111, 118, 119, 109, 112, 109, 108, 121, 124, 113, 125, 119, 110, 107, 127, 119, 99, 110, 116, 113, 119, 112, 100, 106, 101, 126, 108, 114, 125, 116, 115, 104, 134, 112, 109, 111, 128, 117, 117, 126, 114, 113, 124, 110, 107, 110, 123, 125, 106, 117, 126, 114, 113, 106, 117, 108, 113, 111, 112, 108, 121, 122, 111, 116, 110, 123, 113, 117, 118, 117, 138, 108, 120, 111, 121, 111, 107, 120, 116, 111, 113, 103, 122, 108, 124, 102, 114, 122, 108, 99, 132, 124, 122, 124, 120, 98, 123, 124, 114, 110, 106, 119, 125, 115, 122, 110, 121, 122, 114, 134, 97, 137, 117, 102, 102, 106, 95, 129, 121, 107, 133, 112, 108, 104, 113, 114, 123, 123, 128, 116, 111, 107, 108, 117, 115, 98, 122, 119, 111, 120, 106, 114, 126, 116, 127, 130, 110, 106, 122, 127, 111, 108, 114, 122, 113, 116, 113, 121, 126, 109, 117, 120, 112, 120, 121, 102, 94, 106, 113, 105, 125, 117, 122, 115, 128, 106, 107, 116, 103, 118, 109, 113, 112, 132, 122, 113, 116, 105, 113, 114, 101, 111, 121, 110, 119, 119, 111, 107, 142, 119, 124, 115, 123, 115, 113, 114, 114, 104, 116, 107, 121, 119, 101, 114, 117, 119, 113, 124, 121, 122, 119, 108, 129, 103, 126, 109, 101, 110, 117, 113, 124, 117, 129, 106, 113, 116, 115, 120, 107, 112, 112, 109, 109, 107, 114, 108, 111, 106, 110, 127, 120, 113, 101, 111, 108, 125, 104, 112, 100, 119, 123, 124, 112, 114, 118, 109, 126, 128, 120, 120, 112, 114, 125, 119, 134, 128, 118, 123, 109, 116, 124, 114, 116, 104, 116, 110, 101, 123, 116, 125, 105, 102, 114, 110, 123, 115, 110, 119, 102, 109, 111, 108, 118, 113, 122, 142, 106, 114, 110, 106, 116, 114, 104, 110, 113, 117, 110, 111, 110, 117, 125, 120, 108, 117, 115, 95, 114, 123, 114, 116, 124, 112, 108, 103, 117, 108, 118, 112, 109, 115, 122, 117, 120, 133, 110, 97, 114, 97, 120, 125, 107, 114, 118, 113, 117, 113, 114, 99, 128, 99, 118, 120, 137, 102, 109, 109, 96, 134, 111, 111, 114, 125, 101, 116, 96, 138, 119, 111, 122, 106, 123, 121, 114, 134, 111, 110, 101, 115, 106, 110, 108, 107, 128, 108, 118, 111, 107, 127, 115, 124, 120, 110, 130, 110, 134, 112, 122, 102, 122, 110, 110, 133, 116, 126, 103, 100, 122, 116, 110, 103, 106, 107, 134, 113, 106, 128, 116, 102, 105, 107, 121, 116, 95, 107, 112, 114, 109, 112, 122, 132, 109, 99, 108, 122, 88, 115, 114, 122, 108, 105, 104, 120, 104, 132, 103, 102, 120, 123, 114, 111, 124, 97, 133, 135, 121, 114, 117, 98, 107, 102, 119, 126, 119, 123, 121, 115, 104, 109, 112, 103, 110, 122, 114, 104, 123, 123, 108, 116, 100, 105, 121, 117, 122, 129, 116, 98, 118, 116, 128, 110, 107, 113, 112, 105, 103, 117, 111, 114, 122, 121, 112, 127, 114, 118, 88, 111, 109, 120, 107, 127, 144, 116, 96, 111, 127, 112, 119, 123, 132, 103, 117, 109, 109, 110, 130, 124, 122, 115, 120, 121, 125, 122, 112, 100, 99, 106, 114, 110, 107, 117, 119, 117, 112, 118, 106, 107, 121, 115, 114, 119, 100, 119, 103, 109, 110, 119, 109, 120, 119, 117, 112, 116, 118, 113, 113, 106, 111, 99, 127, 112, 103, 114, 113, 128, 107, 107, 109, 123, 115, 119, 128, 100, 104, 92, 118, 110, 117, 116, 123, 131, 102, 125, 97, 114, 117, 118, 116, 105, 102, 120, 114, 123, 127, 116, 129, 103, 103, 123, 131, 101, 118, 109, 114, 119, 103, 115, 105, 117, 125, 115, 113, 96, 105, 105, 104, 116, 124, 105, 122, 120, 126, 104, 117, 121, 111, 95, 114, 107, 120, 117, 122, 124, 115, 114, 111, 135, 117, 113, 132, 109, 116, 97, 115, 106, 114, 108, 124, 99, 101, 94, 126, 123, 114, 112, 120, 103, 112, 107, 118, 113, 110, 98, 126, 113, 115, 118, 112, 105, 110, 112, 113, 139, 122, 131, 109, 115, 117, 121, 124, 109, 118, 106, 112, 109, 104, 126, 106, 118, 112, 122, 120, 101, 99, 113, 118, 106, 124, 110, 114, 122, 126, 129, 123, 117, 121, 107, 106, 121, 133, 112, 106, 122, 120, 106, 105, 119, 107, 130, 120, 108, 104, 110, 116, 129, 112, 109, 121, 130, 120, 130, 121, 115, 107, 110, 101, 115, 121, 115, 110, 125, 108, 122, 109, 115, 129, 119, 138, 101, 129, 124, 108, 112, 111, 111, 109, 122, 102, 119, 101, 94, 121, 99, 121, 106, 131, 123, 120, 115, 123, 95, 110, 104, 111, 125, 128, 116, 114, 126, 131, 119, 119, 117, 117, 102, 112, 118, 118, 130, 108, 120, 115, 120, 125, 109, 111, 133, 124, 114, 115, 107, 112, 113, 104, 119, 102, 94, 106, 111, 113, 138, 102, 103, 112, 139, 117, 116, 124, 113, 125, 130, 115, 101, 109, 122, 141, 138, 108, 109, 126, 129, 99, 125, 109, 106, 114, 114, 123, 103, 112, 105, 119, 119, 114, 99, 118, 123, 110, 115, 111, 109, 109, 108, 116, 116, 115, 117, 103, 116, 124, 125, 115, 114, 117, 123, 105, 112, 116, 108, 121, 115, 118, 115, 104, 115, 120, 100, 118, 114, 104, 103, 113, 122, 121, 125, 122, 120, 112, 117, 128, 113, 117, 113, 117, 112, 122, 117, 114, 113, 114, 109, 117, 117, 117, 118, 120, 112, 117, 109, 119, 106, 133, 125, 119, 105, 103, 116, 113, 123, 105, 124, 114, 101, 121, 109, 119, 118, 113, 116, 120, 106, 121, 112, 113, 109, 112, 107, 107, 111, 113, 121, 118, 113, 124, 108, 129, 112, 121, 112, 110, 123, 114, 110, 114, 111, 122, 109, 117, 109, 114, 109, 105, 118, 115, 113, 119, 108, 112, 113, 130, 117, 103, 113, 114, 121, 104, 114, 120, 116, 117, 119, 110, 113, 123, 108, 126, 112, 107, 112, 109, 109, 111, 115, 119, 115, 128, 119, 122, 112, 126, 112, 115, 121, 129, 116, 119, 111, 118, 109, 112, 122, 107, 98, 115, 114, 123, 120, 110, 121, 111, 121, 122, 108, 118, 103, 114, 128, 105, 104, 110, 112, 108, 121, 101, 123, 123, 113, 110, 117, 112, 116, 116, 116, 117, 130, 117, 112, 108, 111, 109, 119, 113, 113, 107, 124, 122, 126, 115, 110, 131, 125, 121, 116, 112, 118, 117, 103, 119, 109, 108, 117, 117, 117, 119, 116, 120, 129, 112, 116, 108, 121, 119, 127, 134, 127, 117, 116, 114, 111, 132, 119, 107, 103, 113, 124, 119, 104, 129, 122, 114, 127, 108, 134, 114, 106, 94, 124, 112, 114, 121, 111, 125, 112, 118, 123, 122, 116, 109, 118, 120, 107, 116, 130, 121, 122, 119, 128, 111, 105, 106, 120, 112, 113, 112, 122, 118, 119, 116, 117, 125, 124, 112, 113, 110, 122, 101, 118, 121, 111, 123, 114, 114, 97, 115, 137, 109, 114, 108, 108, 113, 120, 126, 126, 121, 117, 118, 119, 117, 113, 119, 108, 115, 103, 131, 115, 114, 123, 117, 113, 116, 104, 97, 151, 118, 110, 117, 116, 113, 114, 105, 118, 114, 119, 116, 122, 114, 121, 119, 128, 118, 110, 113, 120, 109, 117, 110, 112, 118, 112, 128, 113, 115, 116, 112, 124, 115, 121, 123, 110, 122, 117, 115, 120, 111, 129, 109, 98, 111, 117, 112, 111, 123, 105, 95, 117, 110, 120, 124, 131, 118, 125, 110, 109, 116, 122, 114, 105, 100, 99, 111, 114, 116, 126, 113, 112, 110, 123, 118, 118, 132, 109, 117, 105, 102, 109, 109, 120, 114, 119, 127, 129, 110, 106, 112, 113, 108, 113, 109, 107, 109, 113, 120, 130, 120, 116, 111, 126, 113, 111, 106, 114, 110, 112, 121, 119, 116, 112, 110, 111, 116, 112, 121, 100, 116, 114, 122, 128, 119, 101, 115, 106, 107, 105, 112, 119, 110, 123, 126, 118, 117, 124, 109, 121, 124, 108, 123, 125, 115, 112, 121, 113, 116, 118, 115, 116, 117, 117, 105, 113, 120, 114, 100, 119, 103, 123, 105, 131, 123, 120, 120, 110, 114, 107, 116, 111, 125, 116, 118, 123, 102, 118, 113, 113, 114, 116, 111, 119, 126, 120, 113, 116, 129, 114, 111, 122, 117, 121, 113, 111, 111, 113, 134, 138, 115, 110, 112, 114, 97, 111, 111, 105, 107, 103, 108, 109, 117, 110, 93, 118, 115, 112, 116, 100, 108, 119, 111, 113, 108, 116, 113, 111, 106, 122, 122, 119, 117, 111, 105, 115, 117, 117, 101, 137, 122, 116, 102, 117, 117, 109, 121, 102, 120, 113, 107, 123, 114, 103, 127, 118, 117, 112, 120, 120, 119, 108, 122, 114, 123, 111, 112, 113, 119, 121, 117, 113, 121, 105, 124, 122, 110, 117, 107, 115, 111, 108, 102, 128, 123, 101, 114, 110, 108, 114, 109, 101, 121, 107, 112, 113, 116, 110, 112, 120, 113, 107, 122, 122, 97, 111, 111, 119, 125, 112, 121, 111, 125, 114, 119, 118, 106, 115, 111, 117, 121, 119, 122, 114, 107, 104, 120, 110, 111, 103, 115, 137, 121, 121, 124, 127, 112, 124, 124, 111, 123, 119, 114, 113, 117, 118, 113, 120, 121, 109, 116, 103, 100, 122, 114, 115, 109, 114, 109, 135, 108, 105, 113, 107, 116, 113, 135, 108, 121, 112, 116, 104, 110, 113, 110, 104, 115, 114, 112, 108, 120, 117, 115, 116, 111, 112, 122, 98, 112, 116, 125, 113, 119, 112, 115, 121, 111, 112, 120, 98, 120, 129, 127, 131, 116, 108, 112, 124, 116, 111, 111, 102, 110, 106, 113, 122, 134, 114, 109, 112, 109, 104, 114, 112, 124, 108, 122, 108, 115, 132, 105, 113, 96, 118, 123, 99, 117, 125, 115, 111, 125, 119, 117, 108, 127, 106, 114, 110, 117, 105, 119, 112, 107, 117, 110, 128, 120, 142, 111, 98, 113, 103, 123, 127, 115, 114, 104, 106, 110, 117, 124, 103, 124, 117, 114, 112, 125, 111, 123, 122, 108, 110, 112, 136, 101, 107, 115, 113, 93, 100, 106, 120, 124, 107, 117, 122, 121, 116, 118, 116, 109, 103, 127, 130, 124, 115, 127, 115, 103, 97, 106, 116, 112, 101, 128, 110, 119, 115, 110, 115, 123, 96, 98, 120, 117, 118, 115, 119, 111, 113, 109, 111, 127, 126, 108, 107, 99, 120, 110, 108, 121, 119, 108, 106, 119, 125, 103, 109, 104, 115, 126, 112, 110, 131, 103, 114, 126, 130, 122, 119, 131, 112, 119, 129, 110, 110, 119, 106, 109, 128, 122, 102, 111, 113, 123, 105, 117, 112, 122, 111, 112, 130, 102, 118, 120, 105, 110, 100, 113, 122, 114, 113, 123, 117, 119, 114, 123, 119, 102, 101, 122, 141, 109, 123, 102, 110, 125, 109, 125, 114, 111, 120, 113, 111, 122, 106, 102, 104, 119, 114, 121, 115, 106, 105, 115, 112, 105, 101, 129, 104, 134, 115, 112, 114, 109, 113, 113, 111, 120, 117, 130, 109, 116, 129, 122, 120, 106, 119, 122, 113, 110, 117, 119, 122, 110, 112, 115, 123, 112, 122, 112, 116, 134, 121, 110, 120, 117, 107, 124, 116, 114, 107, 111, 123, 126, 106, 100, 114, 105, 123, 112, 110, 123, 111, 110, 106, 125, 141, 119, 127, 108, 116, 110, 114, 104, 113, 115, 111, 99, 122, 116, 121, 111, 115, 137, 133, 119, 108, 121, 126, 119, 111, 121, 119, 108, 116, 108, 122, 119, 103, 111, 141, 130, 113, 107, 112, 126, 125, 114, 108, 118, 116, 117, 97, 112, 116, 103, 123, 114, 118, 123, 113, 117, 113, 116, 119, 112, 100, 105, 109, 106, 115, 126, 113, 109, 125, 111, 125, 110, 127, 112, 126, 114, 111, 128, 113, 116, 111, 114, 114, 110, 119, 117, 123, 115, 112, 120, 110, 105, 119, 129, 113, 122, 117, 105, 110, 110, 103, 118, 109, 116, 121, 120, 109, 123, 115, 105, 99, 115, 122, 124, 114, 116, 129, 121, 123, 123, 113, 110, 115, 125, 122, 128, 118, 112, 118, 139, 128, 123, 104, 132, 112, 113, 110, 118, 116, 118, 108, 126, 122, 119, 122, 117, 115, 107, 116, 118, 123, 117, 112, 117, 115, 118, 101, 107, 120, 122, 111, 117, 121, 113, 121, 116, 115, 116, 115, 112, 107, 112, 113, 113, 127, 112, 114, 133, 129, 122, 111, 120, 120, 116, 127, 106, 114, 101, 122, 118, 107, 117, 124, 117, 114, 127, 116, 119, 118, 116, 109, 108, 116, 104, 112, 119, 120, 116, 116, 102, 109, 107, 93, 118, 115, 123, 112, 109, 111, 112, 109, 108, 112, 110, 120, 124, 116, 131, 127, 115, 107, 113, 117, 120, 132, 126, 108, 110, 112, 124, 103, 119, 128, 113, 115, 106, 123, 116, 118, 103, 116, 113, 116, 115, 107, 108, 118, 97, 109, 116, 103, 116, 106, 125, 113, 126, 112, 87, 111, 108, 115, 118, 110, 115, 110, 116, 114, 123, 102, 133, 106, 105, 112, 108, 114, 112, 118, 111, 108, 110, 115, 124, 120, 128, 110, 123, 119, 109, 123, 101, 106, 117, 109, 105, 126, 115, 117, 108, 136, 113, 113, 126, 119, 128, 110, 128, 111, 122, 117, 109, 115, 116, 126, 121, 109, 107, 113, 115, 112, 120, 110, 112, 120, 114, 117, 109, 106, 115, 121, 111, 111, 116, 121, 118, 109, 131, 123, 101, 129, 111, 113, 115, 113, 112, 112, 124, 112, 118, 115, 117, 124, 112, 123, 124, 113, 119, 108, 130, 108, 114, 113, 120, 112, 115, 129, 133, 122, 119, 111, 102, 122, 112, 110, 119, 124, 123, 126, 127, 110, 120, 124, 119, 120, 130, 123, 109, 103, 119, 99, 118, 109, 117, 112, 131, 114, 123, 113, 116, 108, 115, 131, 125, 108, 123, 128, 99, 114, 116, 115, 109, 118, 113, 117, 115, 115, 105, 131, 102, 120, 120, 122, 121, 129, 118, 97, 118, 118, 121, 115, 115, 124, 122, 104, 103, 109, 115, 111, 120, 124, 121, 109, 122, 116, 123, 101, 111, 101, 120, 113, 108, 131, 122, 117, 124, 126, 111, 116, 97, 109, 114, 111, 111, 115, 106, 110, 115, 102, 121, 130, 126, 119, 126, 103, 125, 106, 118, 112, 128, 108, 114, 116, 118, 123, 109, 112, 120, 114, 119, 132, 111, 116, 122, 118, 114, 110, 112, 108, 116, 110, 119, 113, 117, 115, 114, 116, 120, 122, 115, 112, 124, 112, 116, 118, 111, 113, 113, 109, 114, 110, 121, 108, 118, 122, 117, 117, 133, 112, 123, 125, 115, 113, 112, 116, 119, 108, 110, 112, 110, 115, 126, 118, 113, 119, 114, 111, 111, 114, 105, 117, 111, 124, 119, 109, 110, 119, 104, 118, 115, 107, 104, 121, 115, 107, 114, 119, 110, 107, 105, 113, 116, 127, 109, 122, 109, 116, 115, 111, 119, 117, 115, 117, 112, 122, 125, 117, 121, 123, 109, 116, 111, 118, 115, 123, 115, 109, 118, 110, 113, 119, 119, 112, 117, 122, 111, 117, 115, 101, 112, 122, 113, 118, 104, 118, 113, 112, 115, 111, 111, 118, 119, 114, 114, 119, 117, 110, 119, 118, 104, 123, 96, 118, 111, 115, 120, 115, 110, 121, 111, 107, 116, 114, 115, 116, 114, 115, 113, 120, 122, 115, 112, 120, 116, 118, 119, 119, 110, 126, 108, 107, 113, 120, 113, 112, 116, 117, 114, 114, 118, 101, 116, 119, 107, 113, 118, 97, 113, 117, 129, 103, 112, 111, 108, 118, 112, 115, 109, 112, 111, 108, 124, 117, 118, 113, 116, 110, 118, 119, 122, 109, 108, 113, 112, 112, 110, 114, 114, 114, 118, 111, 108, 116, 114, 113, 107, 114, 113, 114, 127, 113, 98, 109, 110, 121, 111, 114, 113, 120, 121, 121, 105, 110, 116, 108, 117, 113, 111, 121, 118, 117, 113, 109, 109, 115, 117, 121, 119, 121, 123, 115, 109, 112, 121, 109, 118, 117, 116, 122, 124, 109, 111, 112, 116, 126, 112, 113, 113, 114, 116, 129, 112, 114, 109, 127, 116, 121, 118, 127, 117, 124, 109, 98, 116, 113, 110, 106, 119, 121, 110, 116, 106, 112, 122, 113, 118, 116, 107, 110, 111, 109, 118, 122, 115, 106, 107, 115, 123, 110, 110, 107, 100, 122, 119, 106, 117, 122, 120, 110, 126, 110, 112, 109, 112, 124, 117, 116, 118, 122, 116, 119, 119, 110, 112, 108, 124, 108, 111, 121, 106, 119, 112, 108, 113, 117, 113, 118, 123, 120, 112, 116, 110, 111, 113, 119, 110, 114, 109, 111, 118, 111, 112, 109, 114, 117, 112, 111, 112, 114, 103, 113, 119, 126, 115, 109, 121, 115, 107, 118, 111, 109, 116, 128, 114, 117, 117, 115, 105, 137, 111, 108, 116, 112, 103, 109, 118, 126, 115, 117, 128, 113, 117, 124, 114, 121, 115, 118, 121, 123, 119, 124, 125, 114, 116, 113, 111, 106, 120, 115, 117, 112, 115, 117, 108, 112, 123, 119, 119, 119, 106, 104, 121, 121, 113, 115, 117, 112, 120, 117, 120, 121, 113, 118, 108, 114, 116, 116, 118, 111, 124, 120, 120, 117, 110, 123, 120, 111, 116, 108, 115, 113, 107, 102, 109, 126, 111, 111, 110, 117, 120, 117, 119, 112, 116, 115, 114, 111, 116, 121, 115, 113, 116, 116, 117, 111, 123, 111, 113, 103, 116, 114, 121, 111, 100, 111, 106, 118, 112, 109, 115, 114, 123, 104, 107, 116, 121, 121, 113, 105, 106, 97, 106, 108, 110, 109, 101, 106, 110, 113, 123, 113, 112, 116, 113, 106, 110, 115, 110, 121, 104, 121, 116, 119, 130, 110, 109, 110, 93, 115, 118, 147, 107, 97, 114, 119, 105, 113, 109, 129, 114, 110, 114, 118, 111, 106, 129, 89, 123, 113, 117, 122, 113, 111, 109, 102, 106, 128, 113, 103, 116, 112, 114, 136, 116, 106, 115, 130, 112, 109, 112, 102, 127, 129, 122, 99, 122, 115, 120, 112, 124, 111, 96, 117, 113, 122, 124, 103, 110, 77, 116, 116, 103, 95, 114, 125, 104, 124, 110, 110, 109, 100, 122, 121, 106, 90, 125, 136, 120, 111, 112, 110, 107, 114, 121, 128, 119, 110, 117, 119, 120, 118, 108, 115, 108, 121, 108, 115, 125, 102, 106, 111, 124, 95, 133, 114, 118, 103, 118, 103, 110, 96, 113, 107, 121, 101, 102, 112, 118, 116, 110, 118, 128, 102, 115, 111, 126, 112, 100, 111, 133, 125, 120, 109, 119, 124, 108, 128, 112, 121, 118, 116, 107, 104, 105, 111, 104, 114, 108, 128, 114, 124, 121, 102, 110, 112, 97, 114, 117, 116, 119, 98, 116, 116, 114, 84, 116, 107, 102, 134, 114, 124, 107, 92, 113, 99, 104, 137, 107, 117, 126, 117, 110, 112, 112, 112, 110, 123, 119, 116, 112, 112, 121, 106, 122, 106, 107, 109, 114, 105, 117, 100, 109, 125, 125, 121, 114, 133, 129, 118, 111, 121, 119, 110, 106, 109, 113, 111, 106, 122, 117, 135, 113, 112, 102, 124, 109, 128, 115, 136, 110, 110, 117, 113, 120, 119, 109, 115, 111, 109, 113, 110, 113, 126, 132, 106, 114, 105, 115, 111, 124, 117, 117, 107, 124, 117, 117, 117, 133, 113, 120, 103, 94, 123, 111, 111, 111, 113, 120, 117, 130, 114, 119, 137, 114, 113, 127, 107, 109, 117, 131, 107, 130, 122, 120, 103, 87, 123, 112, 102, 114, 114, 115, 111, 115, 123, 120, 107, 113, 117, 119, 114, 112, 91, 107, 128, 114, 119, 106, 117, 111, 108, 113, 121, 116, 112, 115, 121, 112, 108, 122, 108, 128, 116, 113, 113, 117, 115, 108, 116, 119, 107, 118, 105, 113, 109, 106, 114, 110, 112, 119, 122, 125, 133, 118, 110, 106, 119, 111, 104, 125, 119, 110, 120, 94, 120, 122, 108, 103, 120, 104, 112, 127, 120, 95, 126, 132, 106, 118, 120, 122, 110, 94, 101, 117, 105, 125, 122, 116, 110, 117, 118, 116, 115, 125, 103, 108, 120, 110, 105, 118, 114, 119, 109, 108, 118, 102, 128, 120, 105, 100, 120, 127, 109, 120, 112, 115, 107, 118, 105, 115, 118, 93, 114, 121, 116, 124, 117, 110, 101, 124, 116, 104, 100, 106, 107, 130, 111, 111, 117, 121, 121, 120, 120, 115, 116, 114, 128, 123, 113, 148, 107, 120, 112, 108, 110, 114, 124, 107, 121, 95, 113, 111, 106, 122, 120, 109, 114, 108, 139, 113, 110, 105, 96, 124, 121, 110, 106, 116, 120, 116, 106, 112, 123, 113, 99, 127, 101, 105, 109, 116, 108, 116, 114, 103, 119, 108, 102, 117, 131, 118, 121, 124, 109, 112, 119, 116, 126, 111, 118, 114, 117, 102, 116, 116, 105, 118, 120, 105, 123, 131, 119, 104, 117, 115, 118, 119, 112, 107, 125, 115, 113, 111, 121, 115, 113, 116, 115, 120, 125, 125, 117, 104, 121, 131, 117, 124, 113, 113, 111, 109, 114, 119, 108, 112, 118, 110, 111, 114, 119, 113, 105, 112, 116, 115, 102, 109, 110, 89, 110, 118, 111, 100, 96, 117, 114, 125, 120, 117, 114, 136, 112, 105, 111, 122, 112, 108, 123, 122, 115, 110, 115, 130, 126, 117, 133, 121, 129, 129, 121, 113, 110, 126, 116, 123, 112, 107, 114, 114, 124, 91, 100, 118, 126, 121, 109, 115, 118, 100, 130, 139, 115, 124, 115, 128, 102, 119, 117, 121, 127, 130, 115, 116, 121, 112, 118, 117, 109, 99, 116, 111, 106, 109, 125, 122, 115, 119, 107, 114, 113, 97, 107, 119, 119, 127, 122, 140, 109, 110, 104, 102, 115, 104, 124, 105, 114, 118, 104, 120, 115, 120, 116, 130, 111, 119, 109, 121, 130, 111, 110, 107, 109, 98, 116, 103, 120, 123, 119, 107, 129, 131, 112, 102, 100, 108, 120, 111, 139, 110, 116, 120, 118, 138, 127, 130, 122, 138, 110, 117, 122, 127, 113, 112, 118, 119, 113, 116, 110, 118, 113, 114, 118, 105, 112, 116, 124, 111, 116, 117, 115, 85, 116, 110, 124, 121, 108, 112, 107, 119, 115, 105, 117, 101, 112, 113, 117, 125, 125, 124, 96, 126, 116, 122, 113, 116, 113, 127, 120, 98, 104, 123, 105, 124, 103, 107, 119, 111, 106, 109, 117, 113, 109, 128, 125, 116, 129, 97, 107, 119, 131, 118, 114, 124, 92, 111, 125, 112, 105, 120, 101, 124, 123, 108, 116, 102, 124, 120, 104, 109, 109, 123, 116, 122, 99, 120, 118, 88, 124, 101, 117, 131, 98, 102, 115, 96, 131, 113, 114, 114, 102, 118, 107, 122, 116, 111, 124, 97, 117, 117, 119, 97, 105, 107, 131, 134, 115, 133, 109, 112, 117, 109, 93, 103, 127, 117, 133, 107, 93, 105, 116, 119, 131, 100, 98, 111, 105, 118, 96, 110, 130, 125, 107, 110, 120, 129, 113, 104, 110, 111, 106, 111, 112, 102, 122, 104, 101, 111, 113, 106, 110, 93, 118, 104, 124, 102, 112, 105, 113, 96, 111, 135, 112, 114, 109, 91, 125, 129, 115, 96, 125, 112, 101, 119, 114, 117, 115, 133, 104, 117, 108, 118, 109, 115, 113, 127, 108, 118, 116, 127, 118, 108, 101, 128, 135, 118, 107, 125, 119, 115, 117, 122, 105, 115, 116, 109, 117, 113, 111, 100, 139, 124, 100, 115, 109, 111, 110, 124, 105, 128, 98, 123, 113, 128, 105, 114, 103, 114, 97, 134, 114, 105, 121, 112, 96, 126, 97, 102, 107, 114, 118, 118, 101, 117, 118, 104, 120, 129, 114, 127, 115, 130, 112, 125, 114, 121, 118, 121, 118, 132, 118, 114, 101, 113, 129, 113, 122, 118, 114, 131, 117, 118, 117, 114, 113, 112, 121, 114, 104, 105, 107, 129, 122, 114, 117, 110, 116, 114, 124, 119, 113, 107, 114, 115, 112, 109, 122, 107, 119, 121, 126, 103, 105, 119, 121, 112, 111, 111, 106, 105, 126, 116, 107, 128, 118, 108, 112, 131, 107, 111, 117, 125, 113, 123, 112, 120, 123, 116, 123, 117, 109, 113, 113, 106, 114, 118, 116, 129, 110, 101, 114, 121, 111, 110, 112, 126, 126, 114, 108, 113, 106, 123, 113, 115, 106, 109, 115, 119, 116, 120, 105, 120, 115, 118, 117, 120, 122, 114, 131, 129, 133, 118, 118, 111, 110, 116, 113, 101, 118, 102, 116, 115, 107, 125, 109, 110, 107, 108, 117, 97, 123, 109, 110, 103, 113, 104, 108, 121, 105, 109, 115, 113, 107, 119, 113, 118, 113, 106, 107, 109, 115, 120, 124, 121, 130, 109, 104, 109, 111, 112, 105, 116, 107, 125, 85, 118, 109, 117, 108, 117, 105, 117, 104, 98, 117, 117, 97, 127, 105, 111, 108, 106, 116, 107, 112, 117, 123, 116, 111, 115, 112, 117, 109, 101, 110, 111, 124, 119, 119, 112, 119, 126, 117, 111, 114, 125, 124, 110, 107, 111, 109, 119, 110, 106, 120, 104, 114, 110, 113, 110, 103, 119, 119, 123, 111, 115, 109, 119, 105, 111, 114, 123, 111, 116, 117, 112, 116, 123, 116, 118, 110, 101, 117, 93, 114, 113, 110, 129, 116, 128, 120, 113, 120, 100, 118, 118, 119, 119, 122, 113, 131, 113, 115, 134, 110, 105, 105, 120, 119, 117, 113, 126, 119, 114, 122, 110, 119, 111, 113, 119, 130, 118, 104, 110, 112, 113, 113, 118, 113, 118, 115, 95, 100, 109, 118, 108, 122, 112, 124, 124, 123, 111, 111, 118, 125, 94, 119, 110, 110, 118, 131, 109, 112, 117, 115, 115, 121, 98, 109, 109, 113, 110, 100, 132, 112, 112, 111, 119, 119, 115, 117, 112, 107, 116, 113, 106, 112, 106, 106, 105, 114, 104, 112, 116, 100, 111, 115, 125, 121, 117, 119, 112, 106, 110, 122, 113, 101, 111, 122, 101, 133, 110, 118, 111, 109, 113, 108, 117, 117, 119, 124, 125, 113, 112, 108, 108, 111, 111, 111, 114, 113, 113, 117, 114, 112, 104, 105, 112, 99, 110, 110, 126, 124, 116, 110, 115, 121, 114, 121, 113, 113, 121, 109, 100, 116, 119, 103, 118, 120, 101, 119, 104, 109, 122, 121, 122, 114, 111, 110, 116, 114, 114, 107, 119, 110, 113, 119, 118, 106, 114, 113, 113, 118, 122, 124, 118, 128, 135, 103, 120, 126, 118, 111, 116, 115, 109, 116, 110, 110, 115, 98, 114, 125, 103, 125, 118, 100, 110, 117, 109, 127, 116, 127, 119, 114, 100, 111, 114, 107, 107, 108, 118, 123, 113, 108, 105, 97, 113, 111, 105, 107, 116, 108, 109, 110, 115, 103, 114, 114, 117, 115, 132, 129, 109, 118, 108, 112, 114, 117, 116, 106, 102, 125, 119, 126, 115, 108, 129, 133, 95, 119, 126, 137, 115, 104, 112, 113, 122, 118, 105, 109, 120, 116, 116, 113, 109, 123, 124, 115, 112, 117, 115, 106, 118, 116, 111, 114, 106, 119, 118, 114, 110, 117, 117, 116, 113, 117, 113, 113, 114, 113, 114, 122, 113, 116, 118, 114, 111, 117, 111, 104, 112, 115, 110, 113, 116, 116, 120, 113, 124, 116, 118, 106, 116, 120, 113, 113, 113, 106, 113, 116, 118, 112, 112, 123, 116, 110, 120, 111, 119, 118, 122, 117, 111, 106, 110, 121, 115, 115, 101, 112, 114, 116, 112, 107, 115, 115, 115, 118, 114, 118, 123, 109, 115, 111, 115, 113, 116, 109, 121, 114, 117, 121, 119, 100, 110, 113, 115, 109, 121, 110, 121, 116, 119, 111, 107, 114, 122, 115, 117, 114, 115, 117, 117, 115, 112, 121, 118, 115, 115, 115, 115, 117, 115, 111, 115, 114, 113, 119, 112, 115, 113, 112, 114, 111, 117, 119, 117, 119, 114, 115, 120, 121, 116, 112, 117, 114, 114, 117, 109, 115, 113, 130, 112, 113, 123, 113, 110, 108, 119, 118, 108, 120, 114, 114, 114, 117, 120, 120, 116, 123, 116, 114, 113, 114, 112, 120, 117, 104, 124, 107, 119, 113, 122, 114, 110, 114, 120, 110, 118, 118, 110, 114, 116, 109, 114, 122, 111, 114, 122, 117, 113, 114, 107, 108, 116, 114, 113, 122, 119, 116, 124, 117, 118, 115, 110, 112, 119, 128, 119, 113, 115, 110, 115, 123, 122, 118, 118, 114, 119, 113, 113, 115, 117, 116, 118, 119, 104, 117, 118, 119, 119, 119, 116, 110, 115, 111, 113, 121, 116, 116, 115, 119, 106, 119, 112, 116, 115, 111, 114, 116, 119, 120, 112, 114, 114, 110, 115, 99, 114, 101, 118, 118, 115, 119, 112, 117, 115, 117, 116, 123, 108, 113, 113, 116, 115, 114, 114, 119, 113, 106, 110, 126, 111, 114, 121, 124, 114, 115, 116, 118, 116, 118, 110, 114, 120, 112, 117, 113, 110, 119, 114, 113, 115, 117, 115, 111, 111, 121, 119, 105, 116, 110, 111, 111, 118, 110, 107, 123, 113, 106, 115, 117, 114, 120, 111, 118, 108, 106, 120, 111, 119, 111, 115, 113, 122, 116, 115, 119, 111, 114, 110, 114, 115, 111, 107, 119, 119, 110, 115, 117, 110, 113, 111, 112, 120, 121, 116, 118, 112, 112, 119, 118, 117, 115, 120, 114, 118, 116, 112, 109, 124, 119, 114, 119, 119, 113, 115, 114, 115, 108, 121, 121, 121, 116, 124, 113, 113, 116, 113, 119, 119, 118, 119, 115, 117, 116, 109, 117, 113, 113, 114, 113, 118, 114, 117, 111, 110, 112, 115, 116, 118, 112, 118, 114, 114, 115, 123, 116, 111, 120, 114, 112, 112, 109, 116, 116, 108, 118, 113, 118, 118, 111, 110, 115, 113, 114, 117, 117, 115, 116, 112, 113, 115, 110, 118, 118, 118, 118, 114, 110, 116, 118, 110, 117, 105, 116, 116, 122, 117, 113, 111, 110, 107, 105, 116, 109, 111, 113, 119, 113, 113, 112, 116, 119, 116, 115, 117, 121, 117, 113, 119, 120, 117, 111, 117, 119, 116, 116, 115, 110, 103, 119, 112, 103, 120, 116, 115, 114, 98, 102, 107, 119, 115, 117, 109, 119, 106, 116, 121, 117, 114, 120, 119, 114, 122, 116, 114, 114, 116, 114, 112, 116, 117, 120, 108, 110, 119, 110, 117, 120, 128, 125, 120, 129, 107, 116, 108, 111, 109, 121, 115, 121, 116, 109, 109, 118, 119, 111, 113, 111, 121, 111, 122, 110, 112, 112, 118, 107, 115, 111, 115, 114, 113, 110, 109, 113, 122, 109, 110, 118, 120, 107, 117, 114, 116, 120, 107, 113, 110, 107, 111, 112, 110, 116, 115, 112, 113, 111, 116, 117, 117, 113, 118, 112, 115, 120, 118, 112, 114, 117, 112, 116, 116, 121, 120, 119, 115, 116, 108, 108, 98, 118, 113, 122, 117, 120, 115, 125, 108, 114, 118, 116, 110, 111, 113, 117, 118, 113, 116, 119, 119, 117, 114, 117, 117, 119, 117, 116, 115, 115, 121, 119, 109, 114, 121, 114, 120, 108, 106, 114, 116, 121, 120, 107, 115, 123, 118, 109, 115, 119, 114, 112, 117, 119, 113, 112, 115, 111, 111, 118, 119, 115, 117, 118, 117, 113, 113, 113, 120, 114, 103, 118, 113, 116, 116, 116, 117, 115, 119, 120, 111, 124, 121, 121, 107, 122, 113, 106, 118, 113, 111, 115, 123, 115, 114, 115, 108, 112, 116, 118, 116, 115, 116, 112, 114, 115, 110, 115, 106, 118, 106, 111, 127, 108, 118, 118, 117, 123, 110, 115, 119, 116, 125, 118, 114, 115, 118, 113, 116, 114, 119, 113, 113, 113, 114, 114, 115, 118, 116, 117, 107, 106, 120, 115, 115, 113, 111, 112, 115, 113, 110, 119, 111, 107, 115, 123, 118, 121, 111, 116, 112, 120, 116, 110, 108, 124, 116, 105, 119, 111, 116, 115, 109, 110, 110, 118, 112, 118, 122, 110, 121, 113, 112, 113, 114, 116, 110, 113, 122, 116, 119, 109, 117, 116, 119, 120, 117, 117, 116, 115, 119, 119, 111, 123, 122, 114, 118, 116, 110, 107, 120, 122, 118, 112, 121, 112, 113, 120, 125, 113, 115, 120, 110, 107, 116, 110, 110, 110, 111, 126, 105, 116, 114, 109, 113, 112, 116, 117, 110, 115, 119, 110, 118, 116, 118, 115, 108, 116, 114, 115, 115, 123, 110, 118, 109, 121, 119, 107, 122, 114, 122, 121, 117, 113, 115, 115, 114, 114, 108, 114, 120, 119, 117, 116, 117, 117, 118, 117, 118, 110, 113, 116, 108, 118, 110, 117, 118, 116, 115, 111, 113, 110, 122, 115, 112, 107, 108, 112, 115, 111, 113, 115, 113, 117, 116, 106, 112, 118, 118, 113, 112, 123, 116, 112, 115, 121, 113, 119, 118, 114, 117, 113, 119, 115, 115, 114, 121, 114, 116, 119, 111, 115, 112, 107, 117, 111, 117, 118, 114, 120, 116, 118, 119, 118, 113, 111, 107, 113, 115, 115, 117, 108, 118, 109, 112, 117, 118, 117, 116, 111, 120, 119, 118, 119, 110, 120, 111, 113, 110, 119, 110, 116, 113, 121, 114, 113, 114, 110, 113, 124, 117, 107, 115, 118, 111, 108, 109, 113, 114, 119, 123, 115, 106, 128, 108, 118, 118, 110, 106, 109, 109, 108, 121, 128, 126, 93, 117, 114, 115, 126, 145, 100, 123, 109, 109, 102, 118, 118, 114, 100, 113, 106, 111, 129, 114, 105, 119, 110, 104, 128, 115, 109, 122, 98, 129, 117, 107, 113, 102, 118, 113, 127, 115, 107, 119, 119, 114, 122, 108, 119, 101, 101, 104, 116, 120, 109, 117, 100, 120, 114, 119, 110, 113, 107, 108, 118, 125, 124, 114, 104, 120, 118, 121, 109, 109, 115, 119, 123, 106, 112, 115, 124, 114, 108, 104, 100, 113, 122, 115, 121, 120, 122, 113, 104, 119, 125, 113, 107, 102, 121, 119, 122, 102, 114, 116, 110, 122, 118, 114, 122, 117, 112, 120, 117, 124, 112, 125, 113, 111, 115, 122, 102, 108, 114, 107, 128, 114, 122, 113, 113, 104, 120, 121, 111, 114, 116, 117, 105, 113, 120, 116, 119, 89, 115, 124, 107, 124, 124, 105, 114, 119, 109, 120, 113, 116, 109, 143, 119, 116, 111, 105, 123, 111, 109, 121, 112, 113, 112, 112, 118, 110, 113, 114, 119, 114, 127, 110, 130, 113, 118, 120, 107, 100, 116, 131, 120, 109, 111, 105, 111, 98, 111, 109, 129, 103, 109, 131, 135, 117, 110, 110, 98, 110, 115, 98, 117, 88, 122, 121, 109, 103, 109, 118, 117, 112, 118, 118, 130, 114, 114, 135, 129, 120, 115, 123, 113, 121, 113, 116, 123, 114, 113, 108, 116, 123, 109, 115, 105, 100, 111, 111, 108, 113, 93, 117, 117, 110, 104, 114, 114, 116, 126, 106, 127, 108, 119, 111, 126, 120, 120, 120, 97, 114, 114, 121, 100, 100, 108, 120, 120, 100, 114, 122, 124, 116, 111, 110, 112, 119, 113, 115, 111, 125, 138, 106, 116, 122, 108, 116, 110, 125, 116, 113, 118, 92, 100, 112, 102, 106, 121, 135, 109, 117, 111, 120, 105, 103, 120, 118, 112, 122, 109, 108, 82, 111, 129, 117, 113, 119, 125, 136, 108, 100, 121, 114, 109, 109, 117, 111, 115, 111, 115, 121, 106, 114, 117, 114, 136, 115, 128, 120, 123, 119, 110, 116, 105, 105, 117, 99, 107, 117, 115, 126, 108, 108, 125, 130, 102, 112, 132, 111, 117, 105, 132, 117, 116, 119, 126, 114, 121, 112, 100, 133, 111, 127, 118, 132, 127, 113, 113, 121, 110, 110, 115, 127, 112, 116, 96, 122, 117, 114, 115, 123, 103, 116, 113, 98, 112, 99, 108, 106, 128, 115, 113, 109, 118, 110, 127, 104, 117, 115, 94, 124, 105, 127, 106, 110, 115, 174, 121, 106, 126, 115, 115, 111, 109, 123, 106, 111, 117, 121, 101, 126, 113, 122, 129, 106, 114, 112, 108, 131, 121, 113, 120, 108, 105, 109, 117, 114, 110, 120, 108, 117, 119, 112, 111, 118, 112, 115, 125, 123, 134, 117, 116, 116, 121, 112, 116, 110, 112, 100, 111, 106, 113, 104, 121, 129, 107, 121, 115, 116, 113, 104, 116, 115, 106, 112, 134, 116, 116, 115, 89, 117, 109, 125, 119, 107, 114, 114, 118, 114, 111, 123, 110, 110, 102, 115, 111, 125, 108, 119, 117, 112, 107, 117, 107, 108, 115, 109, 108, 119, 117, 126, 113, 114, 117, 117, 113, 124, 115, 119, 117, 115, 106, 103, 107, 114, 118, 109, 116, 120, 123, 121, 111, 105, 119, 107, 110, 113, 126, 107, 101, 107, 114, 120, 113, 122, 124, 108, 111, 120, 113, 112, 109, 112, 127, 105, 111, 110, 117, 112, 106, 108, 116, 114, 116, 115, 108, 113, 112, 115, 107, 115, 136, 118, 106, 113, 108, 110, 114, 107, 119, 109, 112, 117, 122, 110, 106, 110, 115, 113, 104, 130, 119, 112, 112, 120, 121, 113, 116, 110, 115, 111, 110, 109, 123, 127, 125, 124, 108, 118, 118, 134, 123, 111, 116, 112, 115, 110, 115, 128, 117, 114, 115, 128, 114, 115, 122, 103, 123, 117, 111, 121, 115, 118, 110, 119, 116, 110, 119, 113, 105, 116, 132, 121, 112, 108, 119, 118, 110, 108, 112, 113, 116, 126, 122, 120, 111, 102, 107, 105, 114, 103, 120, 111, 126, 129, 122, 126, 118, 106, 109, 116, 121, 113, 116, 109, 121, 121, 120, 114, 118, 119, 110, 107, 113, 117, 113, 121, 118, 115, 112, 122, 112, 108, 115, 119, 115, 116, 117, 124, 128, 119, 119, 108, 130, 116, 134, 108, 115, 114, 110, 121, 113, 124, 120, 118, 113, 119, 91, 118, 108, 129, 123, 115, 114, 111, 113, 118, 108, 111, 124, 110, 100, 119, 126, 121, 116, 116, 115, 100, 114, 114, 120, 115, 113, 107, 122, 108, 109, 121, 107, 113, 115, 109, 114, 116, 113, 118, 118, 140, 113, 111, 119, 106, 119, 127, 128, 106, 115, 125, 112, 108, 120, 98, 118, 119, 124, 110, 114, 113, 116, 106, 115, 111, 108, 126, 112, 124, 114, 122, 111, 110, 110, 114, 129, 113, 114, 109, 121, 117, 102, 112, 120, 118, 117, 112, 114, 103, 115, 113, 106, 115, 113, 112, 104, 111, 135, 108, 112, 107, 102, 110, 109, 110, 136, 125, 110, 109, 115, 120, 115, 110, 109, 118, 105, 112, 125, 124, 129, 116, 125, 116, 119, 113, 122, 107, 116, 111, 115, 113, 101, 109, 107, 115, 107, 117, 113, 121, 107, 110, 109, 108, 108, 110, 111, 116, 112, 117, 121, 113, 116, 114, 113, 119, 118, 117, 107, 113, 116, 123, 115, 112, 123, 121, 119, 119, 122, 121, 126, 104, 104, 107, 114, 106, 114, 114, 113, 116, 114, 117, 116, 114, 125, 117, 118, 121, 110, 117, 121, 109, 109, 110, 115, 125, 107, 108, 104, 112, 141, 110, 105, 109, 113, 125, 113, 121, 115, 114, 110, 111, 113, 99, 113, 110, 113, 108, 115, 113, 116, 112, 118, 120, 127, 114, 123, 114, 113, 124, 113, 117, 118, 115, 112, 107, 121, 117, 106, 113, 119, 108, 113, 114, 110, 110, 114, 109, 117, 119, 125, 114, 125, 122, 110, 122, 115, 113, 110, 118, 107, 98, 129, 108, 95, 116, 108, 134, 116, 109, 116, 115, 117, 113, 101, 117, 123, 91, 109, 124, 115, 118, 120, 117, 117, 110, 112, 124, 115, 127, 123, 111, 106, 112, 100, 105, 127, 113, 121, 125, 102, 119, 115, 111, 121, 108, 114, 108, 110, 116, 112, 117, 110, 114, 122, 115, 109, 119, 113, 111, 128, 106, 124, 123, 108, 115, 109, 117, 121, 122, 112, 120, 116, 117, 119, 118, 119, 124, 130, 108, 116, 112, 118, 117, 113, 123, 116, 104, 112, 118, 115, 106, 109, 105, 118, 118, 112, 118, 112, 109, 114, 109, 109, 102, 113, 110, 125, 108, 116, 113, 112, 109, 105, 113, 106, 121, 105, 123, 126, 116, 123, 113, 121, 122, 114, 115, 118, 124, 121, 108, 109, 116, 124, 124, 102, 112, 121, 124, 120, 114, 114, 112, 118, 125, 112, 116, 125, 118, 110, 97, 114, 113, 108, 110, 118, 119, 116, 100, 121, 112, 117, 109, 129, 111, 106, 115, 113, 128, 120, 102, 132, 113, 112, 118, 114, 112, 114, 118, 117, 112, 119, 115, 120, 113, 116, 117, 113, 109, 128, 113, 120, 123, 130, 131, 104, 116, 124, 114, 115, 115, 122, 94, 106, 112, 107, 103, 120, 118, 109, 103, 119, 103, 130, 114, 126, 115, 111, 117, 110, 109, 109, 120, 120, 98, 117, 130, 120, 114, 115, 110, 117, 118, 110, 118, 113, 117, 116, 111, 114, 124, 105, 93, 116, 121, 115, 117, 117, 98, 114, 102, 110, 118, 122, 125, 117, 114, 95, 113, 120, 108, 114, 115, 118, 108, 109, 128, 114, 125, 113, 112, 113, 118, 110, 115, 117, 103, 124, 122, 120, 101, 117, 121, 129, 115, 112, 117, 105, 117, 123, 117, 116, 111, 119, 107, 105, 117, 99, 112, 109, 120, 108, 114, 127, 121, 111, 123, 113, 118, 120, 115, 125, 115, 118, 104, 116, 129, 110, 109, 118, 121, 117, 118, 114, 104, 106, 115, 140, 120, 115, 116, 111, 125, 117, 110, 119, 125, 115, 109, 118, 116, 118, 117, 114, 127, 124, 130, 106, 115, 129, 115, 118, 120, 108, 115, 117, 119, 107, 109, 113, 117, 103, 109, 116, 112, 122, 116, 109, 114, 121, 116, 119, 117, 112, 112, 105, 113, 107, 114, 118, 123, 122, 108, 116, 126, 119, 104, 112, 109, 116, 131, 107, 102, 100, 103, 118, 133, 115, 113, 118, 112, 117, 112, 113, 124, 118, 126, 115, 119, 118, 116, 118, 133, 113, 106, 123, 110, 114, 116, 110, 105, 112, 129, 110, 129, 116, 114, 123, 117, 113, 106, 118, 121, 111, 110, 113, 124, 121, 91, 124, 100, 120, 105, 112, 117, 110, 119, 121, 108, 119, 112, 114, 115, 109, 105, 111, 131, 121, 137, 118, 115, 120, 121, 117, 122, 116, 131, 115, 116, 115, 116, 123, 115, 106, 115, 112, 110, 115, 114, 113, 124, 114, 101, 113, 115, 125, 113, 102, 127, 121, 122, 105, 110, 118, 115, 106, 109, 112, 109, 119, 115, 124, 100, 113, 124, 113, 123, 128, 117, 115, 113, 114, 117, 122, 116, 116, 114, 110, 105, 114, 112, 124, 114, 119, 117, 113, 103, 116, 104, 107, 122, 128, 117, 112, 122, 115, 112, 118, 105, 115, 117, 109, 113, 110, 95, 107, 130, 116, 113, 109, 116, 103, 124, 110, 112, 109, 127, 102, 98, 114, 113, 119, 105, 116, 130, 108, 126, 123, 108, 106, 113, 117, 113, 111, 128, 115, 109, 120, 116, 113, 104, 119, 135, 106, 105, 112, 108, 111, 126, 114, 114, 128, 106, 120, 118, 107, 119, 119, 112, 123, 109, 115, 105, 101, 131, 119, 116, 106, 129, 109, 117, 105, 103, 117, 110, 119, 130, 110, 110, 108, 100, 118, 121, 111, 110, 129, 108, 112, 122, 121, 131, 115, 123, 120, 120, 119, 104, 120, 129, 113, 115, 99, 113, 98, 111, 110, 118, 124, 112, 107, 97, 113, 119, 111, 112, 106, 104, 111, 122, 122, 104, 105, 107, 111, 107, 113, 114, 114, 119, 113, 114, 114, 115, 111, 115, 113, 115, 120, 102, 114, 95, 99, 125, 118, 107, 117, 111, 115, 106, 117, 131, 112, 103, 119, 111, 127, 112, 105, 117, 118, 125, 115, 121, 118, 122, 106, 121, 117, 131, 123, 111, 102, 118, 115, 114, 112, 124, 116, 127, 117, 108, 99, 115, 111, 107, 99, 120, 116, 114, 113, 111, 114, 117, 124, 114, 116, 116, 122, 115, 110, 118, 119, 113, 115, 118, 103, 110, 119, 107, 129, 110, 111, 93, 115, 130, 124, 120, 108, 111, 123, 93, 109, 114, 118, 113, 132, 115, 128, 100, 109, 126, 109, 111, 112, 110, 111, 121, 102, 116, 107, 130, 116, 112, 108, 108, 107, 124, 112, 140, 124, 121, 123, 121, 105, 109, 110, 109, 132, 114, 126, 107, 117, 108, 112, 112, 112, 101, 117, 113, 125, 119, 112, 109, 122, 115, 113, 107, 102, 98, 117, 118, 127, 120, 117, 107, 115, 108, 128, 111, 124, 122, 116, 124, 110, 111, 128, 109, 103, 108, 103, 115, 134, 109, 108, 126, 117, 102, 112, 115, 97, 119, 110, 110, 121, 116, 105, 114, 123, 128, 119, 110, 116, 124, 113, 97, 126, 119, 110, 118, 112, 106, 109, 105, 121, 120, 115, 117, 114, 115, 116, 138, 125, 90, 120, 105, 115, 116, 103, 112, 117, 93, 124, 120, 120, 117, 127, 132, 108, 109, 120, 113, 100, 112, 99, 102, 114, 119, 127, 92, 122, 127, 116, 105, 120, 121, 113, 116, 121, 112, 113, 116, 105, 108, 120, 112, 119, 110, 113, 112, 122, 99, 114, 113, 115, 128, 114, 108, 137, 111, 113, 117, 99, 112, 111, 107, 109, 110, 115, 137, 125, 107, 110, 94, 117, 107, 120, 112, 104, 115, 111, 114, 115, 120, 111, 115, 110, 101, 107, 109, 108, 111, 114, 112, 114, 126, 122, 114, 107, 123, 111, 110, 111, 113, 105, 114, 116, 123, 128, 118, 109, 117, 117, 103, 105, 123, 114, 113, 125, 116, 116, 109, 118, 131, 130, 130, 108, 116, 118, 120, 117, 112, 113, 140, 119, 126, 122, 117, 111, 107, 114, 111, 112, 123, 111, 113, 107, 109, 101, 119, 116, 113, 127, 105, 133, 116, 117, 112, 115, 106, 106, 115, 110, 117, 108, 112, 112, 115, 132, 107, 119, 117, 107, 112, 115, 120, 124, 114, 115, 119, 115, 117, 115, 118, 114, 110, 121, 117, 109, 113, 114, 120, 110, 119, 116, 124, 112, 117, 111, 116, 112, 121, 106, 115, 116, 122, 120, 119, 119, 123, 121, 118, 118, 117, 119, 116, 115, 116, 115, 119, 120, 124, 113, 115, 117, 108, 108, 114, 118, 111, 110, 110, 113, 113, 115, 97, 122, 109, 117, 117, 124, 113, 122, 117, 117, 113, 119, 111, 117, 113, 124, 116, 109, 119, 108, 108, 129, 113, 124, 108, 111, 114, 107, 105, 115, 113, 118, 111, 109, 118, 115, 116, 114, 118, 118, 115, 121, 122, 120, 112, 120, 117, 126, 115, 119, 114, 123, 115, 108, 119, 114, 120, 117, 109, 118, 110, 124, 112, 116, 107, 114, 111, 112, 117, 118, 119, 111, 116, 108, 119, 117, 117, 126, 112, 122, 112, 123, 114, 110, 117, 110, 119, 115, 109, 118, 121, 118, 115, 122, 120, 112, 112, 114, 114, 119, 109, 115, 113, 107, 117, 107, 116, 125, 112, 119, 124, 104, 115, 121, 118, 112, 115, 114, 124, 120, 125, 115, 110, 120, 122, 112, 116, 112, 121, 114, 108, 110, 114, 121, 115, 114, 112, 119, 120, 124, 127, 119, 116, 118, 113, 114, 123, 114, 120, 120, 116, 113, 114, 114, 122, 123, 115, 111, 107, 116, 112, 109, 117, 114, 116, 113, 111, 109, 120, 119, 115, 117, 118, 119, 120, 124, 119, 122, 117, 116, 115, 117, 119, 114, 120, 117, 124, 111, 113, 117, 117, 121, 115, 109, 116, 113, 113, 124, 113, 117, 115, 116, 117, 119, 109, 111, 115, 113, 114, 117, 110, 113, 115, 113, 115, 111, 117, 116, 120, 124, 116, 114, 123, 122, 113, 123, 115, 118, 103, 109, 113, 117, 120, 114, 115, 119, 114, 121, 124, 119, 112, 116, 114, 115, 118, 115, 106, 97, 116, 117, 110, 123, 117, 120, 123, 114, 110, 116, 112, 117, 119, 112, 122, 108, 115, 118, 118, 117, 120, 111, 121, 120, 116, 113, 121, 111, 116, 112, 120, 127, 122, 108, 117, 112, 121, 120, 117, 111, 113, 117, 110, 123, 120, 114, 111, 120, 108, 119, 123, 119, 117, 116, 111, 109, 117, 115, 113, 120, 119, 119, 122, 112, 124, 115, 117, 130, 125, 113, 119, 122, 120, 108, 117, 115, 110, 111, 117, 109, 118, 111, 113, 112, 108, 115, 122, 121, 118, 116, 124, 113, 120, 116, 118, 110, 116, 115, 107, 112, 114, 115, 116, 113, 119, 118, 119, 115, 115, 114, 117, 117, 116, 118, 122, 113, 118, 121, 109, 112, 121, 119, 116, 119, 125, 115, 109, 118, 125, 124, 120, 117, 115, 121, 114, 118, 111, 112, 120, 109, 115, 115, 116, 121, 117, 115, 114, 112, 114, 117, 115, 109, 119, 120, 112, 118, 122, 121, 110, 119, 126, 123, 117, 119, 120, 117, 114, 114, 107, 116, 112, 116, 111, 119, 120, 115, 120, 120, 120, 119, 118, 113, 110, 105, 110, 120, 115, 114, 119, 115, 118, 103, 111, 115, 117, 120, 113, 101, 114, 118, 112, 115, 107, 106, 119, 123, 119, 112, 113, 116, 114, 110, 121, 124, 97, 110, 104, 110, 114, 110, 110, 113, 115, 117, 105, 117, 116, 116, 120, 108, 111, 116, 114, 110, 114, 121, 120, 119, 106, 114, 106, 108, 121, 125, 118, 108, 105, 108, 104, 122, 131, 119, 117, 116, 115, 124, 119, 121, 111, 118, 121, 112, 118, 108, 114, 112, 116, 116, 109, 112, 115, 112, 114, 110, 120, 122, 111, 108, 119, 109, 127, 128, 108, 110, 118, 103, 109, 112, 114, 107, 115, 116, 119, 123, 129, 112, 106, 119, 119, 101, 114, 113, 118, 96, 111, 113, 114, 107, 111, 108, 114, 105, 115, 127, 113, 110, 123, 100, 120, 119, 108, 114, 111, 119, 116, 102, 98, 116, 115, 114, 98, 103, 113, 116, 118, 110, 104, 116, 116, 112, 104, 118, 122, 121, 129, 112, 114, 110, 115, 114, 120, 129, 109, 111, 121, 107, 104, 113, 115, 113, 119, 111, 112, 121, 124, 106, 107, 102, 120, 117, 123, 114, 111, 116, 121, 105, 123, 129, 116, 116, 112, 119, 121, 105, 122, 105, 118, 119, 113, 104, 124, 119, 131, 102, 105, 123, 117, 115, 122, 107, 112, 108, 104, 117, 119, 108, 119, 109, 119, 110, 123, 118, 113, 129, 123, 120, 115, 108, 108, 115, 110, 110, 119, 124, 119, 123, 105, 110, 100, 112, 120, 114, 138, 105, 106, 106, 105, 116, 106, 108, 111, 109, 114, 118, 119, 107, 111, 114, 112, 115, 113, 126, 118, 115, 117, 116, 118, 121, 120, 115, 107, 119, 112, 110, 104, 111, 111, 98, 121, 117, 110, 99, 123, 112, 129, 99, 115, 114, 123, 112, 114, 117, 114, 119, 111, 110, 102, 129, 117, 118, 112, 130, 105, 107, 124, 110, 126, 112, 122, 119, 119, 119, 129, 106, 118, 112, 115, 105, 109, 115, 112, 113, 115, 108, 121, 108, 125, 115, 118, 116, 122, 125, 122, 111, 110, 120, 114, 125, 102, 114, 112, 113, 128, 119, 124, 115, 114, 118, 106, 111, 118, 113, 125, 122, 126, 93, 124, 122, 120, 120, 127, 113, 121, 116, 122, 107, 122, 112, 112, 115, 101, 108, 104, 117, 112, 107, 117, 118, 120, 113, 115, 114, 116, 112, 111, 115, 107, 124, 116, 112, 117, 105, 122, 114, 125, 107, 121, 105, 114, 128, 103, 115, 113, 111, 125, 116, 116, 117, 116, 115, 125, 121, 110, 118, 98, 117, 114, 128, 113, 119, 112, 136, 114, 108, 120, 110, 119, 127, 118, 112, 108, 121, 111, 115, 115, 116, 118, 115, 116, 116, 116, 115, 115, 113, 108, 108, 114, 113, 104, 109, 114, 116, 114, 111, 122, 116, 109, 104, 108, 112, 119, 117, 118, 113, 115, 114, 114, 110, 126, 111, 109, 124, 114, 109, 94, 106, 117, 122, 105, 122, 115, 115, 106, 118, 109, 119, 117, 120, 118, 110, 97, 117, 109, 115, 112, 134, 118, 113, 117, 107, 110, 117, 115, 110, 98, 113, 112, 118, 116, 116, 115, 122, 115, 113, 108, 116, 104, 110, 112, 109, 115, 124, 108, 121, 113, 103, 109, 119, 113, 114, 94, 126, 100, 111, 127, 116, 122, 116, 90, 111, 113, 135, 118, 123, 115, 121, 110, 112, 130, 115, 108, 122, 110, 103, 113, 110, 111, 130, 109, 115, 127, 115, 114, 124, 95, 101, 116, 113, 140, 121, 113, 112, 98, 110, 116, 112, 121, 122, 131, 107, 122, 117, 115, 101, 117, 113, 123, 112, 122, 108, 112, 111, 108, 107, 137, 117, 122, 118, 116, 102, 129, 115, 111, 119, 114, 121, 119, 110, 104, 113, 112, 110, 114, 117, 119, 114, 123, 108, 106, 87, 106, 111, 108, 123, 118, 117, 111, 105, 119, 108, 107, 128, 114, 107, 108, 112, 117, 105, 117, 109, 110, 123, 117, 129, 109, 132, 120, 100, 89, 98, 111, 115, 98, 111, 106, 100, 104, 124, 109, 111, 113, 111, 130, 119, 120, 111, 113, 119, 121, 110, 122, 125, 102, 128, 111, 120, 97, 117, 106, 125, 117, 99, 115, 114, 117, 115, 111, 98, 120, 111, 111, 120, 112, 120, 134, 110, 129, 116, 115, 120, 118, 122, 130, 124, 113, 115, 103, 101, 104, 114, 119, 114, 117, 112, 128, 109, 112, 105, 111, 113, 128, 113, 118, 114, 108, 109, 111, 113, 122, 108, 92, 121, 108, 108, 99, 117, 113, 110, 116, 113, 116, 99, 114, 118, 113, 118, 108, 116, 122, 113, 118, 131, 107, 120, 131, 129, 100, 125, 113, 116, 107, 101, 112, 113, 125, 127, 128, 116, 128, 108, 111, 117, 112, 102, 125, 113, 107, 116, 112, 120, 115, 107, 108, 118, 120, 104, 107, 115, 107, 119, 129, 118, 116, 122, 120, 107, 111, 113, 130, 111, 107, 105, 109, 108, 114, 124, 103, 110, 125, 90, 122, 132, 112, 121, 105, 115, 112, 114, 106, 121, 115, 100, 120, 105, 118, 126, 115, 127, 123, 124, 116, 119, 103, 123, 108, 119, 104, 111, 118, 117, 113, 129, 139, 122, 107, 116, 88, 124, 112, 116, 105, 109, 122, 123, 117, 110, 128, 122, 113, 110, 106, 111, 115, 104, 130, 121, 112, 108, 124, 119, 103, 118, 109, 119, 115, 110, 128, 118, 112, 119, 106, 121, 113, 122, 112, 110, 115, 116, 125, 123, 102, 111, 116, 122, 114, 103, 113, 121, 113, 111, 99, 119, 114, 115, 104, 113, 110, 130, 120, 85, 109, 106, 121, 114, 120, 104, 124, 135, 125, 123, 118, 139, 112, 98, 111, 119, 122, 118, 120, 100, 117, 105, 111, 115, 119, 101, 109, 118, 121, 117, 108, 102, 105, 119, 109, 116, 106, 105, 108, 126, 114, 125, 113, 123, 111, 116, 110, 112, 119, 115, 100, 114, 108, 111, 112, 108, 109, 111, 108, 110, 117, 114, 106, 108, 121, 109, 116, 107, 112, 112, 113, 123, 105, 110, 124, 116, 114, 120, 115, 100, 116, 113, 113, 120, 117, 113, 106, 123, 113, 121, 118, 123, 97, 125, 109, 111, 119, 106, 113, 110, 138, 128, 123, 125, 115, 124, 106, 113, 105, 123, 117, 116, 100, 113, 117, 97, 114, 123, 113, 103, 113, 106, 132, 115, 118, 114, 119, 113, 112, 109, 114, 120, 125, 127, 124, 110, 117, 99, 120, 126, 116, 114, 119, 117, 108, 121, 107, 99, 114, 119, 113, 133, 114, 111, 109, 125, 111, 115, 113, 118, 108, 129, 105, 109, 109, 125, 107, 127, 115, 118, 119, 104, 119, 120, 123, 117, 112, 114, 107, 121, 119, 113, 111, 119, 97, 103, 112, 122, 122, 116, 120, 112, 95, 114, 116, 108, 112, 115, 124, 116, 120, 128, 115, 117, 128, 128, 111, 112, 116, 122, 118, 117, 110, 124, 108, 126, 119, 124, 116, 116, 117, 116, 118, 116, 118, 95, 123, 112, 118, 101, 118, 108, 118, 117, 117, 113, 114, 122, 106, 111, 111, 115, 109, 128, 104, 114, 118, 114, 113, 109, 109, 107, 117, 93, 119, 114, 104, 117, 94, 124, 116, 117, 119, 105, 122, 112, 116, 116, 126, 112, 120, 118, 115, 108, 114, 123, 105, 114, 118, 117, 121, 122, 108, 112, 118, 108, 110, 107, 110, 116, 126, 116, 105, 79, 121, 118, 113, 115, 117, 127, 120, 115, 102, 106, 109, 113, 119, 108, 113, 118, 96, 94, 117, 129, 116, 126, 117, 111, 118, 103, 99, 127, 113, 106, 114, 120, 114, 127, 119, 126, 122, 103, 116, 119, 116, 115, 134, 112, 124, 130, 144, 115, 116, 104, 124, 107, 113, 116, 95, 122, 126, 112, 121, 115, 110, 114, 123, 120, 121, 111, 111, 117, 100, 109, 111, 123, 111, 110, 115, 117, 108, 114, 119, 113, 120, 115, 117, 116, 117, 133, 120, 112, 108, 111, 120, 112, 107, 112, 105, 130, 114, 128, 112, 106, 111, 109, 116, 110, 105, 111, 115, 108, 120, 109, 129, 109, 122, 115, 108, 119, 126, 116, 119, 110, 100, 115, 114, 135, 102, 76, 107, 113, 116, 112, 132, 119, 118, 100, 109, 113, 113, 114, 123, 143, 116, 121, 119, 120, 123, 123, 115, 116, 119, 120, 114, 116, 118, 122, 111, 104, 106, 120, 125, 109, 117, 110, 107, 114, 115, 123, 116, 112, 118, 100, 117, 109, 102, 127, 109, 108, 114, 127, 115, 110, 115, 85, 119, 115, 114, 122, 117, 116, 105, 108, 118, 115, 115, 142, 115, 128, 105, 111, 129, 124, 108, 117, 112, 100, 106, 114, 106, 115, 139, 100, 127, 108, 128, 113, 124, 118, 134, 120, 120, 112, 110, 108, 128, 119, 117, 116, 108, 115, 115, 108, 126, 103, 109, 115, 116, 115, 108, 109, 117, 120, 106, 121, 112, 108, 132, 118, 107, 114, 132, 124, 112, 124, 88, 114, 109, 115, 112, 106, 102, 117, 119, 111, 105, 112, 107, 105, 114, 114, 120, 108, 102, 110, 124, 109, 122, 119, 120, 95, 111, 125, 108, 108, 117, 121, 114, 116, 117, 117, 121, 116, 110, 113, 122, 104, 115, 128, 120, 114, 116, 116, 120, 118, 122, 109, 100, 112, 107, 117, 118, 106, 121, 113, 116, 112, 132, 129, 113, 111, 124, 103, 109, 122, 116, 111, 105, 107, 127, 127, 117, 112, 136, 110, 127, 110, 96, 130, 119, 119, 110, 109, 122, 106, 138, 122, 98, 106, 124, 116, 113, 107, 101, 117, 119, 113, 110, 132, 120, 111, 113, 113, 106, 127, 123, 129, 125, 129, 112, 104, 124, 115, 115, 107, 118, 111, 97, 106, 112, 122, 128, 98, 124, 113, 116, 122, 105, 117, 118, 107, 136, 124, 115, 95, 107, 111, 132, 114, 110, 111, 97, 100, 118, 120, 113, 112, 113, 105, 115, 118, 112, 110, 111, 118, 112, 126, 117, 114, 118, 110, 113, 123, 117, 118, 118, 117, 106, 111, 118, 113, 114, 125, 112, 121, 102, 123, 103, 134, 106, 113, 124, 115, 120, 113, 119, 114, 108, 116, 112, 120, 113, 123, 123, 106, 123, 118, 110, 123, 127, 116, 131, 112, 115, 113, 113, 118, 129, 115, 109, 111, 103, 121, 114, 106, 115, 109, 115, 104, 111, 107, 110, 136, 117, 108, 98, 113, 111, 100, 122, 110, 113, 106, 115, 118, 115, 114, 114, 118, 115, 117, 114, 112, 109, 124, 111, 116, 120, 114, 118, 122, 103, 108, 119, 109, 123, 115, 107, 115, 114, 111, 112, 108, 102, 114, 120, 113, 110, 114, 120, 104, 143, 121, 111, 128, 116, 120, 104, 116, 113, 119, 119, 108, 110, 107, 112, 120, 110, 108, 108, 95, 120, 116, 122, 118, 106, 132, 101, 114, 117, 111, 101, 122, 108, 102, 114, 129, 114, 119, 119, 121, 107, 112, 107, 113, 130, 115, 106, 114, 118, 110, 109, 117, 105, 119, 114, 103, 124, 113, 129, 127, 119, 112, 108, 117, 115, 124, 115, 104, 110, 120, 104, 116, 116, 106, 132, 107, 112, 111, 114, 112, 109, 122, 117, 123, 121, 118, 111, 117, 121, 121, 108, 114, 124, 112, 98, 114, 126, 107, 119, 122, 109, 116, 112, 111, 130, 105, 111, 120, 119, 114, 114, 105, 126, 122, 120, 105, 117, 115, 118, 121, 115, 119, 115, 109, 113, 118, 98, 114, 112, 126, 134, 112, 123, 105, 111, 112, 112, 109, 114, 123, 113, 131, 119, 119, 107, 103, 116, 126, 115, 119, 116, 117, 121, 112, 121, 104, 111, 108, 111, 114, 111, 123, 119, 110, 110, 114, 115, 131, 109, 114, 120, 115, 116, 109, 99, 124, 106, 108, 108, 122, 119, 124, 110, 131, 111, 106, 121, 106, 123, 104, 124, 120, 110, 108, 111, 113, 118, 115, 121, 109, 119, 109, 120, 111, 116, 122, 128, 125, 112, 105, 104, 112, 106, 109, 110, 102, 121, 126, 112, 117, 111, 103, 105, 107, 113, 127, 119, 125, 136, 110, 132, 108, 109, 120, 117, 119, 106, 116, 117, 104, 132, 101, 112, 111, 109, 116, 109, 112, 129, 114, 112, 117, 107, 118, 130, 107, 105, 137, 117, 115, 114, 129, 101, 114, 114, 107, 112, 126, 104, 117, 103, 107, 109, 122, 124, 137, 104, 106, 122, 115, 116, 135, 101, 110, 101, 119, 108, 112, 120, 110, 119, 117, 113, 128, 112, 105, 111, 116, 108, 101, 108, 118, 122, 113, 122, 106, 112, 115, 109, 121, 114, 127, 123, 130, 105, 130, 115, 113, 107, 107, 133, 114, 108, 115, 106, 117, 118, 111, 113, 123, 111, 110, 113, 124, 101, 116, 118, 101, 106, 122, 115, 115, 112, 117, 108, 127, 113, 83, 111, 119, 134, 116, 126, 125, 104, 101, 127, 112, 121, 111, 88, 112, 124, 109, 102, 117, 123, 102, 121, 113, 129, 105, 119, 116, 115, 114, 122, 108, 116, 110, 120, 125, 104, 119, 117, 118, 112, 122, 120, 107, 106, 111, 98, 133, 121, 113, 118, 118, 119, 121, 128, 107, 119, 117, 120, 117, 112, 92, 114, 126, 114, 108, 92, 108, 95, 110, 92, 94, 114, 117, 118, 118, 106, 123, 119, 121, 96, 126, 119, 111, 116, 97, 106, 117, 114, 102, 109, 125, 116, 120, 117, 127, 119, 119, 127, 125, 115, 115, 106, 120, 131, 95, 102, 121, 122, 109, 122, 117, 112, 113, 111, 109, 117, 108, 111, 132, 122, 113, 122, 130, 110, 100, 113, 123, 124, 123, 113, 110, 89, 114, 117, 123, 122, 121, 114, 118, 106, 110, 112, 114, 123, 121, 121, 112, 135, 117, 119, 109, 108, 101, 123, 122, 111, 106, 111, 116, 119, 117, 109, 104, 115, 130, 131, 109, 116, 102, 123, 122, 120, 106, 107, 119, 122, 100, 125, 112, 112, 123, 107, 97, 123, 117, 106, 95, 109, 112, 109, 105, 117, 121, 108, 113, 117, 126, 112, 108, 105, 101, 112, 117, 110, 123, 115, 123, 120, 111, 105, 118, 112, 116, 105, 110, 124, 103, 124, 116, 113, 109, 124, 120, 105, 117, 115, 108, 98, 115, 121, 118, 114, 120, 113, 113, 106, 113, 116, 118, 137, 111, 102, 120, 117, 108, 103, 123, 117, 110, 118, 117, 105, 102, 100, 117, 99, 110, 104, 118, 104, 104, 116, 106, 133, 122, 104, 105, 119, 113, 134, 121, 94, 117, 127, 147, 123, 105, 97, 115, 124, 111, 119, 126, 120, 117, 116, 125, 116, 121, 113, 111, 114, 120, 110, 127, 126, 114, 123, 118, 121, 127, 114, 121, 114, 114, 113, 110, 106, 107, 110, 115, 108, 122, 122, 117, 111, 113, 134, 113, 115, 106, 121, 106, 108, 120, 114, 122, 110, 97, 127, 116, 99, 139, 104, 128, 129, 119, 117, 119, 115, 111, 112, 113, 132, 75, 113, 138, 118, 114, 111, 116, 105, 113, 112, 121, 124, 120, 115, 123, 121, 118, 104, 126, 107, 120, 99, 113, 105, 118, 102, 125, 126, 114, 119, 116, 124, 115, 115, 124, 102, 108, 119, 101, 141, 115, 120, 100, 123, 118, 116, 108, 81, 125, 102, 126, 109, 114, 127, 104, 128, 129, 110, 119, 116, 120, 113, 102, 110, 108, 110, 112, 116, 112, 141, 101, 118, 124, 120, 129, 106, 126, 106, 116, 123, 119, 104, 114, 119, 115, 114, 100, 103, 121, 118, 144, 106, 113, 119, 112, 117, 115, 125, 111, 123, 107, 114, 120, 113, 105, 103, 129, 108, 109, 101, 104, 128, 118, 106, 120, 102, 115, 116, 94, 126, 115, 107, 117, 100, 115, 112, 128, 98, 132, 119, 144, 105, 125, 103, 111, 126, 107, 80, 110, 130, 107, 124, 116, 119, 113, 113, 131, 98, 115, 98, 124, 116, 128, 131, 123, 108, 119, 122, 101, 118, 104, 123, 111, 123, 109, 121, 117, 130, 92, 124, 140, 125, 123, 113, 120, 110, 106, 127, 115, 111, 111, 123, 108, 108, 117, 112, 134, 113, 119, 120, 107, 110, 78, 126, 130, 107, 114, 117, 120, 111, 107, 111, 125, 109, 116, 105, 110, 118, 117, 121, 132, 113, 110, 129, 119, 104, 110, 120, 121, 108, 107, 109, 114, 115, 117, 115, 115, 111, 122, 110, 101, 112, 102, 118, 131, 124, 113, 116, 123, 114, 121, 111, 116, 108, 99, 108, 119, 121, 121, 116, 122, 117, 124, 121, 108, 107, 119, 119, 117, 109, 112, 107, 121, 118, 118, 134, 116, 111, 113, 101, 111, 86, 115, 118, 122, 111, 97, 111, 109, 104, 102, 103, 127, 132, 130, 107, 97, 114, 116, 110, 111, 127, 110, 89, 112, 101, 133, 101, 110, 112, 109, 112, 97, 110, 115, 109, 122, 116, 116, 116, 118, 104, 104, 106, 124, 118, 119, 112, 109, 109, 119, 106, 121, 108, 130, 111, 117, 131, 118, 122, 126, 131, 112, 118, 125, 112, 115, 117, 111, 111, 113, 106, 113, 121, 109, 100, 115, 113, 110, 117, 113, 117, 128, 119, 127, 115, 115, 112, 104, 109, 121, 126, 116, 98, 132, 140, 103, 109, 113, 105, 120, 97, 112, 113, 118, 107, 133, 135, 126, 125, 121, 122, 113, 108, 109, 104, 120, 114, 112, 123, 117, 110, 112, 117, 125, 117, 120, 116, 96, 121, 113, 123, 101, 113, 114, 118, 109, 104, 117, 98, 110, 109, 114, 114, 137, 111, 113, 116, 112, 104, 124, 115, 111, 109, 107, 107, 130, 104, 104, 104, 106, 113, 116, 113, 109, 102, 111, 120, 116, 119, 124, 106, 133, 110, 112, 117, 114, 132, 109, 115, 116, 126, 136, 114, 106, 117, 125, 118, 108, 127, 113, 104, 128, 99, 128, 124, 109, 122, 107, 115, 130, 115, 112, 102, 108, 105, 106, 106, 110, 115, 116, 114, 122, 108, 108, 119, 108, 107, 112, 119, 122, 123, 107, 112, 117, 108, 131, 113, 129, 113, 111, 111, 119, 98, 121, 114, 117, 107, 120, 108, 100, 118, 123, 139, 111, 101, 108, 127, 121, 118, 114, 108, 101, 128, 98, 107, 117, 126, 113, 106, 113, 102, 109, 109, 114, 118, 113, 119, 120, 117, 119, 110, 120, 122, 114, 107, 110, 112, 117, 120, 110, 124, 104, 113, 113, 107, 126, 114, 123, 123, 108, 138, 118, 110, 112, 116, 100, 100, 105, 102, 126, 102, 121, 105, 113, 121, 115, 102, 115, 120, 114, 125, 112, 121, 122, 127, 127, 111, 111, 114, 109, 125, 112, 98, 125, 111, 121, 122, 102, 115, 114, 111, 106, 114, 125, 117, 123, 137, 108, 109, 106, 116, 105, 120, 116, 105, 107, 113, 102, 116, 122, 109, 115, 122, 130, 107, 125, 117, 105, 120, 117, 133, 126, 122, 123, 103, 123, 105, 104, 117, 129, 126, 113, 97, 130, 117, 109, 111, 127, 106, 118, 114, 112, 122, 124, 107, 121, 116, 118, 101, 120, 112, 108, 118, 121, 96, 117, 116, 110, 113, 114, 132, 119, 116, 107, 121, 121, 102, 118, 110, 134, 121, 103, 107, 117, 108, 119, 118, 126, 96, 116, 116, 116, 108, 111, 112, 116, 96, 121, 117, 108, 114, 107, 109, 131, 125, 116, 110, 114, 109, 116, 117, 115, 119, 120, 122, 114, 118, 119, 112, 107, 118, 124, 121, 107, 108, 114, 109, 106, 111, 118, 109, 109, 117, 117, 113, 113, 106, 111, 116, 99, 122, 108, 126, 117, 124, 112, 117, 126, 123, 119, 117, 114, 135, 116, 118, 102, 131, 112, 121, 136, 123, 112, 111, 113, 116, 121, 115, 104, 111, 132, 112, 117, 104, 112, 109, 114, 110, 117, 113, 104, 117, 109, 118, 112, 105, 112, 132, 125, 105, 109, 97, 110, 119, 128, 116, 104, 118, 124, 123, 113, 113, 110, 104, 115, 130, 113, 127, 123, 101, 117, 114, 124, 115, 120, 115, 120, 115, 107, 111, 114, 113, 114, 134, 110, 117, 109, 116, 119, 105, 111, 120, 110, 110, 114, 114, 111, 120, 127, 111, 124, 103, 136, 111, 118, 111, 106, 117, 121, 112, 121, 112, 100, 104, 115, 112, 110, 113, 118, 111, 121, 116, 115, 118, 127, 123, 123, 105, 121, 102, 121, 100, 107, 115, 110, 99, 111, 121, 109, 118, 105, 98, 112, 119, 103, 116, 115, 114, 130, 112, 96, 109, 118, 115, 120, 129, 124, 103, 111, 106, 112, 116, 120, 112, 115, 126, 123, 114, 123, 124, 122, 122, 96, 112, 126, 109, 118, 119, 120, 113, 124, 124, 108, 113, 116, 120, 118, 100, 116, 115, 120, 113, 110, 105, 107, 119, 115, 121, 111, 124, 103, 114, 127, 125, 112, 109, 123, 113, 104, 132, 112, 123, 122, 119, 125, 115, 127, 124, 123, 119, 120, 110, 110, 107, 117, 136, 115, 117, 106, 109, 129, 120, 122, 116, 133, 115, 118, 128, 109, 130, 114, 113, 117, 103, 106, 110, 106, 93, 105, 104, 122, 113, 123, 108, 120, 117, 115, 109, 112, 105, 124, 135, 115, 110, 119, 110, 118, 112, 123, 115, 127, 116, 118, 115, 119, 107, 120, 131, 109, 115, 125, 110, 125, 118, 109, 117, 121, 126, 115, 113, 130, 131, 126, 132, 89, 137, 103, 126, 116, 108, 108, 119, 123, 128, 118, 101, 109, 110, 104, 123, 124, 108, 113, 121, 103, 127, 120, 105, 115, 118, 119, 114, 111, 105, 119, 119, 129, 101, 107, 120, 118, 96, 119, 106, 127, 108, 122, 107, 121, 132, 105, 101, 105, 113, 121, 104, 115, 112, 127, 127, 119, 118, 115, 119, 112, 108, 113, 108, 112, 117, 117, 98, 112, 124, 119, 119, 118, 122, 123, 114, 122, 125, 108, 122, 114, 111, 117, 121, 108, 121, 115, 113, 120, 109, 116, 109, 112, 118, 112, 102, 114, 117, 118, 119, 120, 118, 122, 111, 116, 107, 134, 110, 120, 113, 111, 117, 122, 119, 112, 109, 122, 107, 126, 107, 121, 116, 112, 108, 111, 119, 119, 110, 111, 115, 114, 106, 117, 119, 123, 111, 123, 132, 112, 109, 116, 119, 127, 117, 113, 109, 108, 121, 109, 113, 115, 114, 108, 122, 109, 123, 92, 126, 103, 114, 102, 113, 115, 98, 112, 115, 120, 111, 111, 115, 124, 106, 123, 124, 130, 113, 113, 124, 112, 123, 116, 125, 120, 99, 123, 107, 100, 118, 116, 119, 116, 112, 132, 106, 102, 111, 107, 112, 104, 114, 110, 109, 105, 113, 132, 121, 110, 117, 112, 107, 126, 101, 109, 126, 108, 107, 110, 113, 106, 126, 109, 118, 111, 118, 116, 125, 110, 129, 108, 109, 117, 131, 105, 130, 93, 123, 111, 119, 114, 111, 112, 111, 99, 113, 114, 120, 114, 118, 117, 109, 121, 121, 123, 114, 119, 122, 108, 133, 109, 110, 120, 115, 111, 98, 113, 123, 115, 122, 108, 115, 111, 110, 137, 119, 104, 116, 113, 130, 111, 107, 123, 128, 123, 109, 120, 126, 124, 104, 121, 103, 103, 113, 130, 124, 113, 109, 107, 119, 109, 135, 113, 99, 118, 114, 110, 130, 123, 115, 130, 114, 127, 114, 96, 140, 129, 115, 111, 122, 116, 131, 126, 108, 105, 105, 112, 105, 124, 116, 112, 114, 136, 114, 120, 124, 116, 124, 121, 114, 98, 120, 106, 122, 109, 128, 109, 111, 105, 128, 113, 106, 112, 130, 121, 114, 101, 126, 110, 114, 124, 107, 114, 118, 121, 105, 115, 114, 119, 111, 113, 124, 116, 104, 102, 109, 117, 119, 119, 115, 108, 116, 116, 111, 121, 105, 116, 103, 131, 117, 121, 111, 112, 106, 105, 116, 111, 119, 109, 111, 109, 99, 125, 116, 129, 109, 119, 115, 120, 110, 104, 120, 111, 121, 106, 109, 100, 127, 136, 121, 121, 120, 105, 113, 108, 102, 105, 119, 104, 121, 111, 115, 106, 117, 115, 117, 112, 106, 138, 114, 110, 114, 117, 103, 115, 110, 112, 101, 127, 114, 110, 115, 112, 132, 115, 124, 103, 117, 116, 114, 106, 124, 116, 103, 121, 118, 127, 103, 106, 110, 117, 111, 113, 124, 116, 116, 102, 123, 115, 117, 109, 109, 113, 125, 125, 120, 101, 101, 123, 126, 110, 113, 116, 112, 120, 100, 116, 114, 120, 106, 125, 107, 111, 113, 125, 125, 116, 117, 108, 111, 103, 118, 125, 102, 119, 109, 130, 111, 110, 115, 110, 114, 109, 95, 110, 115, 105, 110, 130, 116, 126, 121, 109, 118, 144, 109, 116, 118, 129, 118, 121, 115, 119, 107, 113, 111, 104, 116, 116, 111, 122, 114, 108, 114, 121, 122, 114, 106, 123, 109, 118, 113, 121, 115, 110, 109, 99, 112, 120, 115, 110, 119, 103, 118, 114, 120, 119, 130, 107, 112, 109, 112, 111, 127, 102, 122, 125, 123, 110, 122, 116, 104, 117, 111, 123, 118, 125, 134, 120, 97, 128, 122, 119, 119, 111, 109, 115, 116, 129, 111, 100, 115, 125, 120, 129, 121, 125, 116, 124, 125, 106, 121, 106, 116, 113, 104, 116, 111, 120, 114, 122, 125, 122, 115, 120, 116, 119, 116, 110, 109, 112, 122, 109, 98, 120, 104, 128, 125, 126, 114, 108, 113, 117, 93, 122, 106, 128, 121, 112, 123, 119, 107, 114, 113, 112, 113, 124, 111, 119, 126, 111, 110, 124, 114, 111, 117, 116, 116, 126, 114, 109, 116, 130, 102, 113, 105, 120, 109, 123, 113, 117, 112, 117, 119, 110, 120, 117, 111, 109, 121, 139, 112, 131, 113, 120, 115, 119, 110, 110, 111, 115, 119, 119, 116, 124, 119, 116, 98, 119, 92, 122, 119, 116, 117, 113, 114, 122, 124, 108, 113, 102, 113, 115, 109, 105, 120, 113, 112, 108, 113, 123, 109, 123, 124, 115, 111, 103, 115, 115, 99, 119, 112, 86, 114, 114, 125, 115, 114, 111, 114, 117, 124, 109, 119, 118, 107, 114, 116, 107, 110, 119, 120, 111, 120, 125, 127, 117, 118, 114, 115, 102, 113, 117, 122, 112, 133, 107, 125, 126, 113, 109, 116, 113, 110, 109, 114, 113, 109, 116, 108, 119, 115, 114, 108, 118, 118, 129, 118, 120, 104, 104, 126, 113, 107, 110, 116, 121, 117, 110, 105, 88, 120, 112, 126, 110, 100, 126, 127, 117, 111, 97, 121, 128, 112, 117, 113, 117, 100, 120, 115, 110, 124, 119, 116, 109, 119, 116, 107, 120, 111, 97, 117, 108, 120, 123, 108, 118, 121, 100, 116, 119, 114, 120, 102, 113, 118, 120, 112, 116, 115, 107, 111, 107, 117, 125, 112, 119, 124, 114, 115, 114, 117, 125, 111, 113, 113, 110, 107, 135, 109, 121, 102, 111, 122, 113, 114, 115, 124, 123, 118, 124, 118, 123, 127, 113, 105, 117, 130, 109, 115, 111, 113, 105, 113, 130, 114, 122, 114, 119, 104, 112, 114, 104, 112, 108, 113, 118, 107, 109, 116, 114, 119, 111, 109, 112, 119, 119, 120, 116, 117, 122, 111, 115, 111, 105, 115, 120, 130, 112, 121, 104, 109, 115, 115, 111, 119, 115, 115, 120, 123, 122, 118, 112, 131, 116, 108, 110, 104, 108, 118, 110, 109, 126, 112, 114, 111, 119, 112, 121, 112, 110, 111, 121, 113, 113, 120, 113, 115, 109, 102, 106, 124, 102, 122, 109, 110, 124, 121, 108, 109, 114, 116, 106, 115, 102, 120, 111, 108, 116, 106, 118, 109, 114, 121, 116, 109, 126, 98, 142, 121, 113, 111, 112, 108, 111, 117, 120, 105, 116, 127, 116, 112, 110, 117, 100, 106, 113, 127, 110, 115, 111, 103, 123, 120, 118, 125, 119, 109, 111, 121, 114, 111, 112, 95, 106, 114, 106, 112, 108, 107, 121, 117, 129, 105, 122, 130, 119, 116, 114, 124, 107, 111, 132, 132, 113, 125, 119, 114, 126, 114, 111, 115, 117, 130, 97, 119, 124, 116, 111, 106, 102, 110, 132, 125, 110, 107, 114, 117, 111, 111, 118, 127, 116, 122, 114, 125, 113, 120, 117, 128, 122, 120, 114, 113, 109, 114, 116, 114, 115, 114, 105, 112, 121, 102, 95, 110, 110, 118, 118, 114, 110, 119, 105, 105, 100, 113, 120, 119, 123, 109, 106, 120, 108, 111, 114, 120, 113, 113, 118, 128, 115, 106, 110, 124, 124, 105, 113, 121, 122, 105, 127, 118, 117, 139, 109, 110, 114, 111, 115, 123, 115, 109, 111, 115, 115, 104, 116, 110, 114, 118, 114, 111, 116, 121, 116, 119, 114, 123, 111, 110, 119, 124, 116, 120, 115, 110, 118, 118, 113, 116, 113, 116, 120, 120, 116, 106, 121, 111, 112, 106, 120, 124, 119, 120, 114, 119, 112, 116, 108, 115, 115, 118, 116, 116, 113, 118, 115, 125, 117, 111, 108, 115, 117, 114, 110, 113, 112, 114, 110, 121, 114, 111, 117, 113, 113, 116, 108, 119, 117, 110, 118, 113, 116, 119, 114, 110, 113, 120, 114, 109, 110, 112, 118, 109, 111, 117, 118, 119, 121, 125, 113, 123, 114, 113, 111, 117, 108, 119, 112, 116, 113, 114, 120, 121, 118, 120, 116, 116, 92, 108, 114, 123, 116, 117, 121, 118, 114, 116, 106, 114, 108, 118, 120, 116, 118, 114, 113, 104, 113, 116, 106, 115, 115, 115, 121, 108, 124, 108, 106, 100, 113, 108, 115, 113, 121, 124, 119, 117, 119, 117, 122, 103, 98, 112, 113, 109, 112, 120, 118, 107, 121, 113, 117, 117, 113, 106, 116, 119, 118, 121, 122, 112, 115, 111, 121, 112, 118, 121, 115, 119, 116, 119, 115, 114, 124, 111, 107, 112, 104, 105, 118, 121, 112, 107, 107, 125, 123, 116, 111, 112, 117, 107, 123, 116, 117, 116, 118, 128, 116, 107, 115, 122, 117, 113, 120, 117, 119, 123, 112, 119, 116, 114, 117, 103, 124, 111, 110, 120, 118, 109, 118, 117, 115, 122, 111, 111, 116, 113, 110, 111, 117, 113, 113, 107, 107, 123, 116, 121, 115, 118, 113, 113, 116, 107, 118, 114, 110, 108, 120, 113, 113, 113, 116, 120, 118, 117, 117, 119, 118, 123, 117, 120, 120, 121, 115, 119, 108, 110, 118, 117, 121, 125, 110, 116, 114, 117, 115, 120, 117, 114, 117, 118, 107, 116, 120, 116, 122, 104, 117, 117, 113, 109, 109, 108, 109, 119, 109, 126, 121, 113, 117, 117, 119, 122, 120, 114, 120, 116, 118, 119, 110, 118, 118, 126, 119, 115, 123, 112, 116, 111, 120, 113, 116, 127, 109, 115, 112, 110, 117, 113, 111, 116, 115, 118, 123, 123, 121, 106, 116, 121, 119, 125, 117, 122, 117, 117, 111, 118, 118, 118, 121, 116, 116, 114, 123, 110, 123, 110, 115, 114, 109, 116, 112, 116, 116, 119, 121, 121, 116, 113, 115, 117, 115, 111, 105, 109, 125, 113, 113, 118, 117, 118, 114, 115, 112, 111, 114, 115, 117, 110, 116, 116, 118, 118, 112, 118, 115, 127, 115, 117, 118, 119, 118, 111, 115, 116, 110, 118, 119, 112, 113, 119, 117, 123, 114, 109, 115, 105, 112, 117, 108, 109, 130, 114, 115, 110, 113, 118, 114, 115, 116, 106, 112, 117, 116, 111, 109, 115, 112, 118, 114, 126, 115, 119, 81, 114, 118, 116, 114, 115, 119, 112, 119, 118, 121, 121, 117, 112, 114, 119, 126, 115, 122, 121, 109, 102, 111, 115, 114, 118, 118, 114, 117, 121, 119, 118, 124, 115, 109, 117, 118, 110, 119, 106, 115, 119, 119, 106, 114, 111, 101, 110, 116, 109, 125, 113, 109, 85, 111, 108, 112, 122, 106, 124, 118, 100, 108, 116, 119, 101, 109, 112, 110, 117, 115, 117, 107, 113, 113, 109, 116, 114, 111, 110, 119, 118, 119, 135, 118, 120, 121, 105, 128, 105, 124, 109, 110, 116, 115, 105, 114, 121, 106, 130, 111, 104, 117, 120, 121, 127, 97, 114, 119, 117, 88, 104, 121, 117, 110, 117, 106, 111, 122, 112, 139, 105, 99, 138, 108, 119, 109, 116, 108, 114, 127, 118, 108, 112, 113, 105, 119, 122, 132, 112, 114, 110, 110, 105, 127, 98, 117, 115, 112, 111, 116, 107, 114, 115, 114, 131, 129, 121, 133, 115, 105, 132, 120, 115, 121, 117, 113, 116, 105, 108, 115, 128, 113, 120, 118, 116, 115, 127, 125, 107, 115, 108, 103, 106, 119, 114, 116, 120, 121, 109, 133, 122, 119, 109, 108, 114, 119, 116, 105, 117, 104, 105, 119, 120, 115, 124, 103, 118, 116, 127, 112, 127, 109, 107, 111, 109, 110, 115, 111, 111, 117, 108, 133, 147, 108, 126, 115, 108, 111, 105, 117, 119, 119, 113, 122, 112, 112, 131, 121, 115, 114, 112, 107, 113, 114, 114, 111, 97, 113, 118, 120, 136, 114, 116, 112, 115, 122, 110, 114, 132, 111, 107, 111, 125, 111, 109, 120, 118, 112, 118, 113, 114, 121, 115, 111, 103, 110, 110, 106, 113, 116, 117, 112, 105, 113, 125, 106, 112, 130, 120, 123, 123, 135, 129, 110, 118, 123, 109, 121, 133, 120, 107, 112, 113, 114, 109, 102, 112, 104, 144, 114, 112, 109, 118, 119, 109, 102, 130, 103, 125, 109, 125, 123, 109, 121, 93, 124, 112, 115, 109, 111, 114, 118, 116, 115, 135, 106, 119, 111, 122, 115, 119, 102, 110, 119, 112, 121, 116, 112, 121, 111, 124, 125, 111, 123, 118, 120, 120, 121, 124, 109, 120, 126, 105, 127, 112, 119, 120, 132, 107, 124, 133, 103, 111, 111, 130, 114, 121, 92, 126, 113, 102, 125, 138, 116, 127, 112, 130, 116, 92, 114, 112, 102, 109, 122, 107, 123, 112, 132, 105, 99, 126, 124, 112, 114, 122, 122, 126, 123, 118, 109, 111, 124, 112, 119, 118, 113, 119, 106, 108, 102, 99, 123, 124, 123, 113, 108, 109, 123, 121, 106, 114, 118, 125, 107, 111, 108, 122, 117, 111, 114, 142, 120, 114, 112, 114, 127, 108, 113, 107, 106, 127, 111, 106, 104, 115, 122, 124, 112, 107, 115, 119, 121, 124, 109, 100, 103, 123, 115, 121, 112, 124, 114, 99, 112, 118, 112, 109, 110, 108, 115, 109, 113, 117, 108, 114, 121, 115, 124, 122, 114, 107, 116, 89, 118, 108, 119, 109, 117, 120, 115, 110, 115, 123, 101, 96, 113, 106, 119, 118, 111, 111, 118, 113, 107, 100, 121, 113, 114, 108, 125, 131, 113, 117, 122, 116, 126, 111, 127, 111, 116, 116, 114, 114, 110, 121, 112, 130, 121, 100, 109, 104, 123, 125, 149, 115, 119, 120, 122, 120, 113, 118, 89, 112, 106, 104, 105, 124, 115, 127, 109, 110, 113, 114, 110, 113, 110, 108, 126, 121, 105, 133, 103, 97, 99, 120, 107, 125, 109, 125, 112, 115, 91, 95, 100, 115, 98, 123, 119, 106, 111, 121, 125, 117, 134, 109, 110, 106, 109, 119, 137, 99, 107, 103, 113, 96, 105, 104, 113, 120, 116, 110, 113, 113, 114, 121, 121, 117, 115, 115, 105, 135, 107, 113, 108, 123, 114, 124, 117, 97, 119, 108, 119, 115, 119, 111, 118, 115, 106, 108, 125, 113, 105, 109, 106, 109, 110, 124, 113, 109, 124, 135, 85, 117, 98, 111, 108, 106, 118, 109, 105, 99, 129, 122, 102, 107, 103, 101, 112, 125, 113, 123, 111, 118, 111, 115, 115, 116, 107, 123, 116, 112, 119, 110, 123, 124, 103, 105, 116, 110, 116, 110, 105, 113, 119, 110, 112, 122, 100, 118, 101, 111, 103, 114, 123, 121, 116, 114, 132, 107, 117, 108, 123, 105, 118, 126, 123, 123, 113, 122, 123, 98, 116, 130, 120, 109, 107, 113, 122, 133, 103, 122, 126, 110, 124, 107, 92, 117, 111, 120, 107, 115, 123, 109, 134, 118, 98, 123, 117, 101, 115, 117, 115, 93, 109, 90, 107, 98, 103, 118, 107, 111, 114, 113, 96, 108, 124, 97, 125, 107, 121, 123, 104, 117, 96, 110, 115, 112, 128, 119, 112, 120, 123, 120, 122, 123, 114, 105, 117, 119, 110, 132, 87, 112, 114, 118, 118, 108, 116, 114, 129, 110, 114, 126, 113, 122, 130, 139, 107, 105, 123, 130, 99, 125, 120, 105, 130, 125, 117, 109, 115, 115, 121, 113, 134, 113, 99, 120, 127, 114, 110, 112, 113, 105, 111, 110, 104, 131, 131, 119, 113, 115, 107, 118, 109, 119, 113, 113, 121, 113, 122, 129, 110, 108, 117, 109, 124, 140, 100, 115, 121, 105, 120, 125, 122, 118, 123, 112, 129, 103, 114, 131, 110, 123, 113, 122, 118, 106, 114, 120, 116, 108, 118, 131, 98, 114, 105, 121, 101, 103, 109, 112, 113, 115, 112, 135, 112, 114, 117, 120, 121, 108, 95, 115, 99, 108, 109, 113, 126, 130, 114, 114, 110, 115, 130, 107, 115, 123, 128, 118, 127, 114, 120, 115, 122, 127, 128, 118, 109, 128, 118, 106, 131, 104, 113, 117, 108, 116, 114, 111, 100, 105, 115, 108, 133, 109, 106, 124, 104, 112, 114, 94, 114, 114, 98, 122, 114, 108, 117, 113, 101, 105, 107, 101, 127, 124, 114, 109, 116, 118, 92, 106, 107, 120, 110, 118, 110, 112, 127, 116, 95, 120, 120, 121, 105, 113, 102, 129, 112, 113, 115, 113, 118, 105, 109, 96, 106, 116, 114, 96, 144, 114, 121, 114, 97, 113, 104, 112, 115, 112, 121, 110, 121, 125, 109, 108, 120, 122, 108, 127, 118, 107, 113, 127, 120, 112, 112, 122, 106, 114, 128, 119, 136, 110, 110, 115, 108, 116, 119, 115, 105, 123, 111, 111, 114, 117, 108, 115, 102, 116, 110, 120, 128, 111, 116, 117, 100, 109, 117, 88, 119, 127, 105, 125, 118, 125, 117, 120, 107, 124, 126, 106, 113, 117, 110, 114, 119, 101, 108, 112, 114, 115, 121, 112, 116, 113, 121, 105, 114, 111, 102, 108, 115, 110, 102, 107, 124, 111, 95, 109, 87, 117, 105, 104, 106, 114, 101, 120, 123, 123, 117, 105, 109, 108, 124, 113, 113, 120, 108, 106, 113, 105, 115, 109, 108, 120, 122, 110, 108, 127, 65, 109, 122, 110, 60, 111, 103, 110, 110, 116, 119, 115, 112, 112, 121, 118, 103, 112, 118, 109, 115, 120, 105, 106, 103, 123, 116, 123, 125, 113, 111, 107, 133, 116, 110, 102, 104, 95, 106, 107, 130, 112, 113, 107, 126, 84, 122, 119, 119, 111, 118, 122, 118, 99, 117, 110, 119, 113, 110, 113, 118, 105, 115, 119, 116, 115, 140, 115, 112, 128, 116, 114, 107, 105, 112, 114, 74, 104, 113, 126, 102, 106, 118, 107, 132, 105, 119, 112, 106, 130, 121, 121, 127, 126, 113, 114, 116, 124, 101, 123, 111, 122, 119, 115, 118, 105, 91, 130, 112, 119, 121, 108, 122, 117, 110, 109, 118, 107, 123, 102, 121, 125, 124, 124, 118, 125, 115, 110, 119, 111, 123, 99, 123, 111, 124, 115, 129, 110, 95, 101, 108, 105, 118, 129, 124, 104, 121, 104, 107, 113, 105, 121, 110, 153, 105, 104, 119, 116, 114, 116, 114, 115, 114, 111, 126, 116, 116, 117, 127, 113, 126, 110, 111, 107, 120, 118, 114, 108, 111, 116, 113, 113, 111, 124, 115, 114, 129, 115, 112, 117, 113, 112, 119, 122, 112, 114, 110, 119, 135, 114, 116, 122, 119, 128, 129, 120, 112, 113, 109, 117, 118, 116, 107, 99, 107, 113, 121, 109, 115, 126, 131, 110, 112, 119, 121, 105, 114, 121, 100, 116, 118, 122, 114, 130, 112, 124, 114, 106, 116, 110, 111, 115, 126, 109, 110, 130, 126, 108, 106, 113, 119, 116, 112, 110, 114, 106, 113, 110, 120, 119, 120, 124, 103, 113, 122, 119, 113, 101, 116, 121, 108, 112, 90, 115, 121, 112, 120, 126, 116, 113, 114, 124, 108, 91, 116, 110, 105, 103, 110, 106, 112, 112, 149, 122, 125, 140, 111, 109, 110, 110, 115, 118, 104, 115, 113, 122, 106, 106, 117, 108, 124, 125, 120, 106, 118, 126, 137, 107, 118, 113, 106, 112, 125, 123, 130, 111, 116, 106, 117, 123, 119, 150, 119, 111, 90, 107, 123, 122, 115, 125, 114, 114, 105, 120, 108, 109, 116, 98, 113, 102, 115, 119, 123, 121, 126, 119, 120, 113, 106, 102, 101, 120, 114, 106, 121, 117, 121, 117, 109, 131, 98, 116, 103, 115, 127, 110, 106, 116, 112, 110, 104, 125, 111, 112, 104, 117, 113, 98, 116, 118, 116, 113, 118, 102, 134, 124, 124, 107, 126, 121, 114, 119, 115, 116, 111, 111, 130, 114, 118, 125, 125, 129, 133, 104, 108, 120, 107, 128, 108, 126, 124, 112, 117, 108, 116, 116, 117, 109, 114, 127, 106, 112, 125, 91, 117, 120, 117, 120, 101, 118, 120, 123, 85, 114, 107, 113, 105, 107, 102, 122, 114, 143, 123, 112, 106, 111, 97, 105, 117, 107, 108, 117, 111, 115, 114, 122, 118, 110, 116, 120, 101, 115, 109, 114, 118, 106, 120, 118, 132, 109, 106, 127, 123, 108, 118, 105, 105, 122, 120, 116, 112, 112, 119, 112, 122, 112, 113, 118, 107, 126, 122, 102, 113, 116, 115, 122, 111, 122, 132, 112, 111, 103, 114, 101, 113, 126, 110, 124, 103, 110, 110, 118, 114, 120, 112, 101, 104, 107, 114, 123, 114, 123, 108, 110, 119, 135, 120, 121, 111, 111, 94, 116, 125, 103, 123, 118, 127, 101, 119, 100, 102, 107, 138, 119, 129, 116, 123, 110, 119, 106, 137, 116, 109, 125, 109, 103, 113, 114, 104, 110, 116, 109, 122, 116, 121, 120, 110, 127, 111, 91, 97, 103, 109, 106, 94, 113, 107, 117, 118, 116, 103, 121, 132, 124, 118, 146, 113, 116, 113, 102, 121, 111, 102, 124, 134, 112, 121, 118, 131, 128, 117, 119, 113, 100, 111, 108, 105, 119, 120, 107, 125, 107, 120, 144, 103, 119, 110, 115, 112, 122, 108, 117, 112, 105, 119, 121, 120, 117, 114, 120, 109, 114, 122, 101, 102, 115, 119, 106, 126, 121, 108, 110, 106, 113, 123, 103, 126, 127, 93, 119, 116, 108, 135, 121, 117, 109, 113, 114, 102, 110, 111, 110, 137, 103, 125, 120, 119, 136, 119, 120, 108, 105, 108, 107, 107, 108, 121, 111, 111, 118, 121, 111, 118, 108, 100, 118, 115, 116, 113, 115, 119, 120, 109, 113, 98, 111, 104, 116, 140, 121, 98, 122, 118, 110, 121, 100, 116, 120, 126, 120, 98, 111, 121, 115, 109, 112, 111, 103, 114, 117, 111, 131, 111, 126, 120, 119, 101, 113, 128, 114, 110, 107, 112, 108, 118, 109, 127, 122, 117, 114, 126, 117, 126, 134, 120, 117, 115, 128, 93, 108, 121, 124, 114, 118, 119, 113, 100, 120, 118, 130, 103, 110, 121, 110, 117, 111, 111, 114, 107, 108, 130, 104, 110, 111, 117, 118, 120, 110, 112, 121, 114, 115, 109, 103, 115, 114, 120, 109, 128, 103, 119, 121, 120, 115, 112, 108, 106, 117, 115, 107, 106, 112, 132, 122, 115, 106, 104, 107, 112, 113, 104, 108, 116, 114, 107, 124, 121, 109, 112, 115, 119, 118, 125, 99, 112, 110, 116, 113, 123, 108, 108, 110, 110, 98, 115, 108, 143, 107, 126, 122, 110, 108, 102, 104, 124, 110, 110, 118, 110, 109, 116, 102, 115, 112, 110, 117, 109, 116, 115, 114, 124, 108, 114, 115, 105, 109, 108, 79, 118, 118, 110, 121, 110, 113, 125, 105, 125, 124, 122, 119, 105, 104, 110, 109, 116, 121, 115, 108, 107, 106, 112, 110, 117, 116, 117, 113, 117, 114, 121, 119, 120, 127, 110, 104, 126, 122, 115, 111, 101, 118, 116, 109, 106, 108, 113, 115, 129, 109, 125, 115, 111, 111, 112, 121, 96, 114, 117, 108, 120, 110, 127, 116, 109, 108, 104, 106, 123, 107, 110, 113, 93, 122, 125, 116, 113, 111, 109, 102, 106, 109, 137, 121, 130, 110, 109, 124, 110, 112, 112, 109, 97, 127, 128, 116, 112, 106, 115, 122, 111, 121, 111, 103, 115, 123, 117, 118, 116, 112, 106, 98, 122, 118, 118, 111, 114, 114, 121, 112, 118, 109, 112, 112, 124, 117, 125, 106, 120, 110, 111, 114, 116, 107, 108, 118, 119, 109, 114, 108, 116, 113, 120, 111, 115, 114, 120, 110, 120, 114, 121, 113, 116, 123, 124, 99, 129, 127, 111, 111, 119, 120, 125, 109, 110, 112, 113, 118, 122, 113, 116, 122, 123, 107, 123, 111, 118, 109, 115, 119, 100, 122, 99, 115, 109, 121, 119, 119, 116, 115, 117, 115, 113, 113, 110, 122, 110, 122, 107, 121, 108, 116, 115, 110, 126, 124, 104, 104, 116, 116, 105, 119, 126, 113, 115, 124, 116, 117, 113, 101, 113, 111, 123, 106, 117, 114, 108, 101, 116, 107, 105, 131, 126, 119, 127, 120, 121, 107, 105, 113, 110, 128, 111, 125, 117, 114, 113, 108, 117, 114, 120, 118, 114, 114, 125, 112, 118, 110, 122, 112, 106, 107, 107, 107, 108, 122, 119, 125, 114, 105, 112, 113, 102, 109, 105, 114, 103, 110, 116, 109, 100, 120, 109, 109, 114, 104, 110, 114, 100, 119, 111, 108, 109, 124, 119, 115, 124, 99, 107, 112, 121, 101, 104, 119, 116, 118, 123, 103, 112, 111, 101, 121, 120, 120, 109, 111, 112, 122, 103, 104, 104, 120, 112, 114, 113, 117, 117, 119, 117, 105, 122, 116, 118, 111, 116, 111, 112, 117, 112, 116, 116, 121, 110, 118, 114, 116, 111, 102, 99, 123, 113, 114, 117, 116, 108, 129, 108, 124, 111, 107, 110, 116, 123, 103, 110, 115, 102, 105, 116, 113, 111, 121, 110, 112, 114, 120, 111, 131, 113, 106, 117, 95, 132, 111, 111, 112, 112, 107, 115, 108, 121, 116, 114, 110, 98, 108, 127, 112, 110, 122, 109, 111, 106, 113, 114, 112, 116, 129, 104, 119, 112, 122, 118, 125, 122, 118, 114, 107, 127, 113, 115, 108, 112, 100, 125, 109, 124, 119, 117, 124, 112, 119, 116, 116, 125, 110, 111, 124, 114, 104, 130, 115, 121, 114, 109, 119, 123, 121, 121, 116, 110, 103, 116, 115, 122, 115, 116, 111, 109, 123, 129, 103, 121, 121, 121, 108, 117, 118, 119, 125, 123, 107, 116, 114, 111, 116, 126, 110, 112, 110, 105, 109, 121, 124, 127, 116, 113, 111, 117, 105, 103, 113, 128, 112, 115, 110, 120, 118, 117, 118, 117, 117, 104, 114, 113, 118, 114, 103, 123, 121, 113, 121, 116, 114, 121, 110, 110, 115, 103, 112, 131, 107, 106, 129, 106, 105, 110, 124, 112, 110, 114, 117, 118, 131, 119, 117, 121, 112, 122, 120, 113, 114, 105, 115, 113, 111, 128, 112, 117, 113, 118, 110, 102, 107, 116, 119, 114, 111, 116, 116, 119, 115, 112, 115, 115, 107, 115, 127, 119, 109, 121, 111, 104, 107, 107, 118, 109, 119, 120, 115, 115, 133, 119, 118, 111, 118, 118, 119, 114, 117, 104, 120, 117, 107, 119, 120, 108, 112, 117, 105, 112, 118, 116, 110, 109, 116, 114, 120, 118, 117, 106, 122, 114, 108, 114, 116, 116, 122, 120, 110, 114, 111, 116, 110, 117, 118, 110, 118, 121, 125, 125, 112, 114, 108, 108, 117, 108, 115, 107, 123, 114, 117, 119, 118, 115, 120, 107, 122, 117, 115, 116, 113, 105, 107, 108, 125, 106, 109, 116, 119, 117, 116, 121, 124, 122, 119, 127, 114, 118, 116, 118, 127, 117, 118, 117, 111, 114, 122, 107, 112, 108, 115, 112, 115, 105, 109, 114, 125, 113, 117, 108, 116, 118, 119, 120, 119, 118, 111, 112, 113, 108, 109, 113, 111, 118, 114, 119, 117, 116, 120, 119, 109, 115, 108, 121, 123, 112, 122, 123, 133, 110, 114, 119, 120, 108, 118, 122, 118, 110, 116, 108, 128, 122, 114, 120, 114, 104, 117, 112, 119, 115, 115, 118, 109, 115, 128, 125, 119, 117, 109, 114, 116, 128, 115, 111, 116, 107, 118, 102, 117, 127, 129, 122, 108, 117, 124, 119, 112, 106, 110, 112, 117, 111, 115, 120, 128, 114, 115, 119, 113, 108, 116, 111, 113, 114, 118, 120, 121, 110, 112, 118, 121, 115, 116, 112, 120, 132, 119, 125, 116, 120, 111, 112, 126, 119, 121, 111, 116, 110, 116, 113, 129, 109, 129, 105, 114, 112, 119, 114, 107, 121, 127, 124, 113, 111, 120, 116, 118, 113, 114, 112, 114, 114, 121, 112, 114, 113, 111, 108, 113, 112, 115, 103, 128, 113, 123, 117, 110, 121, 115, 126, 122, 115, 110, 117, 109, 119, 116, 114, 120, 115, 112, 112, 115, 118, 111, 117, 117, 124, 112, 114, 122, 120, 112, 105, 113, 114, 113, 118, 130, 114, 115, 113, 109, 109, 120, 123, 125, 116, 108, 117, 113, 122, 120, 113, 106, 120, 112, 113, 116, 114, 115, 117, 116, 121, 114, 112, 114, 110, 117, 115, 114, 117, 121, 108, 114, 112, 113, 123, 135, 121, 121, 113, 118, 108, 121, 122, 108, 115, 109, 109, 116, 115, 115, 122, 109, 116, 121, 120, 106, 118, 106, 114, 112, 120, 111, 116, 115, 119, 104, 119, 120, 126, 117, 116, 111, 119, 124, 108, 112, 114, 109, 115, 99, 129, 119, 116, 116, 116, 118, 116, 116, 111, 118, 108, 120, 118, 113, 108, 116, 127, 119, 112, 120, 114, 113, 112, 111, 121, 109, 115, 117, 115, 114, 105, 109, 118, 114, 112, 121, 111, 113, 117, 104, 118, 107, 119, 118, 120, 113, 120, 116, 113, 114, 120, 111, 117, 115, 118, 117, 118, 117, 121, 114, 118, 112, 111, 101, 119, 124, 121, 115, 116, 109, 114, 121, 118, 122, 115, 115, 109, 107, 110, 109, 112, 114, 119, 115, 122, 115, 114, 117, 109, 121, 120, 121, 115, 120, 116, 114, 121, 111, 115, 109, 128, 111, 122, 116, 119, 113, 113, 115, 112, 114, 124, 112, 103, 116, 125, 109, 113, 128, 123, 116, 121, 104, 118, 117, 120, 119, 112, 111, 111, 119, 114, 107, 113, 115, 125, 113, 126, 126, 132, 117, 124, 115, 117, 126, 113, 98, 140, 121, 116, 125, 145, 101, 123, 112, 131, 125, 108, 116, 110, 108, 106, 141, 113, 111, 108, 116, 112, 121, 120, 111, 107, 120, 104, 118, 117, 121, 119, 102, 113, 128, 118, 103, 118, 108, 105, 112, 104, 124, 114, 113, 122, 108, 116, 107, 104, 108, 124, 120, 123, 116, 108, 113, 128, 115, 114, 111, 117, 131, 112, 113, 114, 107, 115, 117, 112, 111, 114, 124, 118, 120, 118, 111, 127, 112, 109, 116, 105, 117, 108, 117, 113, 122, 123, 110, 122, 117, 111, 107, 114, 130, 128, 102, 99, 124, 114, 130, 127, 114, 108, 82, 106, 122, 114, 131, 112, 127, 112, 116, 123, 122, 116, 109, 108, 120, 114, 114, 108, 107, 98, 107, 96, 83, 117, 104, 121, 109, 107, 124, 114, 119, 109, 124, 111, 101, 106, 141, 110, 109, 105, 112, 109, 129, 104, 99, 113, 128, 108, 100, 119, 106, 134, 108, 109, 106, 119, 89, 128, 109, 121, 115, 110, 123, 121, 114, 116, 126, 116, 117, 103, 114, 108, 126, 117, 117, 98, 95, 129, 112, 124, 115, 122, 113, 121, 128, 115, 132, 109, 100, 111, 110, 95, 125, 121, 109, 104, 111, 110, 116, 103, 123, 117, 113, 105, 107, 109, 123, 118, 105, 119, 116, 114, 113, 113, 124, 119, 100, 136, 117, 114, 111, 102, 136, 112, 114, 110, 102, 105, 123, 114, 100, 121, 113, 126, 112, 123, 113, 118, 104, 108, 97, 101, 103, 128, 113, 95, 117, 106, 141, 95, 110, 95, 120, 117, 97, 112, 111, 125, 117, 123, 109, 110, 114, 107, 113, 108, 101, 91, 111, 147, 117, 121, 121, 117, 121, 105, 117, 118, 121, 133, 117, 132, 118, 121, 122, 124, 121, 135, 112, 118, 111, 101, 106, 126, 106, 114, 121, 98, 117, 117, 112, 113, 107, 123, 117, 103, 122, 115, 121, 106, 130, 122, 127, 119, 120, 101, 126, 109, 120, 116, 132, 97, 115, 123, 95, 121, 116, 107, 116, 102, 98, 105, 117, 124, 113, 118, 125, 109, 117, 124, 95, 120, 119, 115, 98, 121, 107, 105, 110, 117, 116, 125, 118, 96, 99, 118, 107, 102, 115, 109, 107, 119, 112, 102, 102, 105, 143, 123, 117, 111, 114, 112, 111, 117, 107, 115, 118, 108, 118, 107, 109, 115, 118, 121, 105, 111, 133, 103, 109, 118, 124, 104, 109, 106, 135, 130, 122, 119, 131, 102, 112, 120, 126, 114, 123, 105, 104, 115, 105, 99, 120, 110, 105, 110, 111, 143, 125, 128, 115, 109, 114, 118, 99, 112, 114, 112, 113, 102, 117, 122, 112, 115, 107, 102, 111, 126, 93, 106, 112, 113, 114, 115, 119, 115, 114, 100, 134, 107, 109, 118, 101, 91, 114, 120, 101, 112, 108, 125, 108, 112, 109, 120, 96, 114, 116, 111, 106, 122, 117, 103, 114, 113, 106, 111, 91, 116, 117, 100, 128, 110, 118, 101, 129, 112, 122, 116, 116, 91, 114, 123, 125, 111, 118, 117, 103, 115, 121, 117, 109, 108, 120, 103, 125, 119, 122, 118, 113, 122, 112, 114, 115, 123, 114, 115, 114, 119, 116, 117, 111, 122, 115, 105, 119, 109, 117, 114, 115, 114, 119, 113, 120, 114, 117, 122, 114, 120, 115, 106, 112, 120, 116, 108, 119, 118, 119, 118, 116, 117, 113, 105, 112, 116, 119, 103, 108, 113, 118, 117, 106, 113, 117, 118, 122, 113, 119, 106, 114, 109, 115, 111, 121, 111, 125, 114, 116, 118, 120, 116, 116, 117, 107, 125, 111, 119, 111, 105, 111, 116, 111, 112, 113, 114, 112, 113, 115, 121, 113, 114, 119, 122, 118, 108, 112, 114, 121, 116, 122, 115, 117, 110, 118, 122, 105, 111, 113, 117, 119, 111, 121, 109, 120, 106, 119, 112, 117, 119, 115, 122, 122, 117, 116, 105, 118, 119, 111, 115, 110, 107, 109, 111, 111, 112, 113, 120, 114, 113, 114, 122, 115, 113, 112, 115, 108, 114, 113, 123, 111, 114, 124, 118, 121, 115, 116, 121, 116, 110, 116, 117, 108, 110, 117, 111, 109, 119, 115, 112, 115, 119, 113, 118, 123, 124, 119, 112, 106, 114, 118, 116, 106, 112, 119, 117, 111, 105, 113, 119, 114, 103, 106, 117, 100, 122, 117, 125, 124, 117, 114, 118, 107, 113, 116, 131, 113, 125, 118, 112, 114, 115, 115, 115, 112, 118, 112, 123, 113, 113, 114, 116, 119, 119, 119, 118, 103, 119, 117, 109, 114, 118, 107, 116, 116, 112, 112, 118, 115, 118, 120, 110, 114, 117, 112, 115, 126, 121, 122, 116, 114, 114, 108, 114, 117, 116, 122, 112, 110, 114, 112, 116, 115, 119, 107, 119, 111, 121, 118, 119, 116, 112, 115, 115, 120, 117, 114, 115, 118, 113, 103, 114, 105, 120, 113, 112, 114, 122, 116, 116, 121, 112, 114, 113, 116, 113, 111, 115, 125, 118, 106, 112, 112, 112, 118, 121, 110, 119, 122, 123, 109, 119, 114, 108, 117, 117, 111, 118, 123, 105, 118, 116, 104, 119, 119, 119, 116, 111, 117, 115, 119, 114, 116, 116, 110, 114, 119, 110, 107, 119, 120, 122, 119, 117, 120, 118, 113, 110, 109, 105, 122, 113, 104, 106, 119, 116, 115, 121, 118, 118, 113, 122, 110, 115, 104, 119, 130, 118, 116, 123, 118, 122, 119, 121, 111, 111, 121, 109, 117, 114, 112, 123, 116, 119, 114, 117, 119, 114, 118, 114, 111, 125, 112, 115, 109, 113, 122, 116, 115, 120, 124, 120, 116, 108, 110, 115, 112, 122, 112, 113, 117, 115, 111, 113, 115, 116, 116, 109, 123, 110, 122, 117, 114, 112, 114, 117, 121, 116, 116, 120, 105, 115, 115, 120, 114, 113, 106, 121, 113, 113, 118, 123, 107, 120, 116, 115, 118, 114, 115, 113, 115, 117, 116, 123, 110, 117, 110, 134, 115, 119, 118, 112, 118, 126, 113, 119, 122, 108, 108, 113, 119, 119, 114, 105, 124, 122, 116, 118, 119, 122, 126, 117, 112, 118, 107, 111, 119, 118, 118, 120, 115, 109, 115, 115, 120, 117, 114, 118, 114, 121, 121, 110, 116, 111, 104, 114, 108, 114, 112, 125, 124, 115, 111, 107, 104, 95, 118, 100, 106, 116, 107, 108, 94, 120, 105, 123, 105, 122, 107, 120, 122, 116, 105, 114, 121, 116, 121, 113, 124, 116, 107, 107, 115, 101, 115, 111, 113, 135, 106, 109, 111, 114, 118, 114, 114, 126, 107, 115, 110, 114, 129, 119, 126, 113, 117, 113, 94, 140, 109, 116, 124, 106, 108, 111, 109, 104, 120, 111, 110, 108, 98, 107, 100, 110, 114, 110, 117, 106, 116, 124, 107, 123, 119, 130, 113, 116, 102, 115, 115, 80, 123, 109, 118, 112, 101, 103, 104, 125, 111, 126, 116, 118, 121, 104, 116, 112, 109, 120, 108, 136, 116, 116, 110, 129, 108, 116, 113, 116, 112, 111, 113, 113, 113, 104, 120, 117, 119, 127, 126, 125, 117, 123, 108, 114, 120, 103, 119, 112, 116, 110, 110, 103, 122, 94, 117, 111, 90, 116, 109, 118, 105, 117, 99, 122, 120, 123, 140, 131, 111, 110, 115, 117, 99, 117, 142, 107, 128, 119, 109, 116, 103, 90, 122, 106, 107, 103, 105, 153, 112, 112, 89, 106, 117, 120, 112, 122, 106, 120, 126, 115, 116, 117, 128, 106, 127, 115, 113, 112, 111, 121, 127, 119, 116, 118, 120, 111, 102, 105, 120, 111, 109, 103, 124, 118, 128, 125, 122, 83, 110, 114, 116, 115, 123, 120, 110, 112, 122, 125, 106, 117, 126, 127, 108, 105, 104, 109, 125, 107, 119, 129, 122, 120, 117, 111, 103, 130, 127, 108, 125, 127, 97, 120, 105, 117, 121, 114, 106, 117, 133, 108, 119, 125, 108, 126, 113, 112, 106, 97, 122, 125, 125, 117, 116, 119, 116, 137, 102, 123, 119, 103, 117, 108, 127, 114, 116, 108, 98, 101, 121, 118, 117, 116, 112, 113, 107, 122, 124, 125, 102, 88, 111, 92, 110, 120, 104, 114, 110, 131, 110, 125, 111, 126, 108, 115, 121, 108, 126, 105, 125, 116, 110, 124, 145, 107, 71, 124, 92, 99, 100, 113, 107, 106, 114, 121, 122, 114, 104, 110, 118, 113, 116, 109, 129, 122, 116, 116, 116, 119, 107, 129, 116, 117, 117, 112, 120, 111, 106, 121, 102, 107, 109, 111, 108, 127, 115, 97, 119, 123, 106, 111, 106, 127, 107, 117, 103, 114, 119, 111, 119, 108, 134, 122, 103, 126, 137, 122, 111, 108, 128, 133, 131, 126, 124, 100, 129, 117, 118, 120, 119, 111, 98, 117, 122, 111, 109, 107, 109, 127, 120, 119, 110, 125, 110, 110, 99, 121, 117, 108, 106, 111, 108, 109, 101, 102, 103, 119, 105, 123, 105, 122, 125, 105, 104, 110, 120, 110, 118, 122, 130, 114, 111, 110, 113, 113, 112, 111, 102, 115, 115, 135, 107, 123, 108, 121, 112, 124, 110, 116, 118, 119, 124, 122, 126, 102, 122, 109, 115, 118, 113, 106, 126, 109, 114, 116, 126, 128, 106, 116, 116, 118, 117, 113, 118, 117, 116, 111, 113, 119, 116, 115, 100, 113, 117, 116, 109, 115, 117, 126, 116, 118, 112, 100, 112, 108, 128, 124, 99, 112, 115, 109, 118, 118, 109, 142, 120, 121, 120, 103, 115, 124, 114, 112, 108, 113, 108, 112, 118, 111, 124, 126, 110, 130, 115, 118, 115, 109, 111, 111, 129, 119, 110, 111, 113, 121, 109, 114, 117, 124, 119, 123, 123, 117, 103, 122, 117, 122, 115, 110, 110, 119, 108, 128, 106, 117, 110, 111, 101, 124, 127, 119, 128, 119, 114, 130, 115, 109, 114, 115, 122, 112, 103, 114, 109, 102, 127, 118, 114, 109, 119, 115, 104, 110, 104, 128, 110, 107, 119, 122, 119, 114, 107, 114, 111, 94, 116, 117, 107, 107, 115, 116, 116, 107, 121, 133, 111, 100, 132, 118, 125, 118, 114, 133, 114, 116, 117, 123, 118, 112, 120, 111, 116, 116, 117, 122, 111, 115, 128, 110, 116, 117, 106, 113, 117, 110, 114, 106, 117, 132, 106, 115, 137, 124, 119, 118, 115, 104, 107, 118, 108, 101, 102, 115, 125, 113, 118, 124, 123, 119, 111, 122, 118, 113, 125, 118, 111, 113, 109, 129, 116, 104, 103, 116, 106, 110, 110, 101, 104, 108, 111, 119, 115, 114, 109, 118, 116, 113, 115, 109, 119, 109, 121, 121, 118, 109, 116, 121, 111, 106, 116, 141, 112, 111, 115, 113, 121, 118, 116, 117, 103, 117, 131, 98, 121, 111, 119, 104, 112, 108, 105, 127, 114, 105, 138, 112, 108, 114, 110, 119, 100, 116, 127, 107, 124, 116, 87, 115, 119, 119, 143, 113, 119, 107, 107, 118, 106, 130, 126, 123, 146, 118, 106, 116, 123, 122, 113, 121, 114, 125, 110, 118, 114, 108, 116, 125, 112, 109, 109, 124, 109, 92, 131, 106, 121, 102, 109, 118, 122, 122, 118, 113, 125, 115, 105, 108, 108, 113, 117, 106, 127, 110, 117, 118, 116, 119, 89, 123, 107, 125, 112, 114, 108, 107, 108, 106, 118, 115, 121, 118, 110, 109, 114, 112, 113, 110, 116, 105, 107, 115, 118, 118, 121, 117, 123, 121, 112, 113, 108, 130, 112, 98, 131, 112, 128, 112, 111, 118, 125, 119, 116, 121, 109, 116, 109, 111, 112, 106, 124, 102, 122, 109, 124, 111, 116, 119, 118, 119, 137, 121, 138, 120, 112, 87, 140, 116, 114, 114, 108, 119, 113, 118, 119, 113, 120, 120, 114, 118, 119, 118, 124, 117, 133, 130, 121, 110, 117, 109, 109, 114, 108, 132, 120, 106, 108, 116, 106, 115, 111, 113, 112, 114, 110, 127, 107, 113, 107, 120, 116, 122, 115, 109, 117, 128, 110, 122, 117, 107, 112, 112, 94, 118, 118, 116, 123, 114, 124, 111, 113, 118, 117, 115, 112, 112, 114, 112, 104, 113, 124, 108, 128, 120, 111, 107, 110, 119, 109, 117, 111, 113, 116, 116, 113, 106, 129, 129, 110, 111, 117, 119, 118, 123, 115, 119, 132, 111, 117, 113, 111, 118, 117, 113, 119, 116, 117, 120, 108, 110, 117, 119, 112, 118, 105, 119, 116, 109, 116, 128, 110, 110, 118, 103, 117, 113, 109, 113, 116, 113, 111, 109, 108, 113, 113, 111, 110, 112, 109, 116, 112, 107, 122, 122, 117, 120, 122, 126, 108, 110, 112, 111, 110, 99, 88, 103, 115, 104, 127, 111, 116, 113, 103, 112, 114, 106, 122, 100, 125, 120, 133, 125, 119, 121, 124, 110, 124, 114, 138, 108, 120, 110, 111, 108, 106, 130, 101, 122, 107, 108, 120, 99, 110, 126, 110, 114, 115, 108, 129, 97, 106, 114, 105, 112, 101, 112, 93, 116, 100, 122, 106, 116, 120, 109, 119, 134, 114, 109, 121, 109, 119, 123, 126, 116, 105, 117, 129, 120, 120, 120, 111, 109, 110, 106, 110, 114, 116, 105, 118, 117, 111, 122, 129, 111, 116, 102, 125, 112, 122, 104, 118, 118, 111, 124, 113, 111, 89, 104, 123, 100, 113, 122, 119, 133, 114, 128, 106, 110, 111, 136, 116, 105, 115, 109, 126, 115, 127, 112, 96, 104, 103, 113, 129, 105, 116, 117, 109, 120, 83, 111, 115, 110, 126, 117, 118, 114, 107, 108, 115, 107, 109, 113, 98, 104, 120, 113, 111, 109, 110, 109, 103, 111, 116, 117, 124, 99, 135, 116, 115, 122, 106, 120, 122, 100, 112, 109, 127, 98, 127, 113, 114, 114, 110, 103, 123, 112, 116, 113, 116, 114, 117, 106, 116, 115, 145, 125, 105, 102, 112, 118, 121, 115, 100, 121, 113, 117, 119, 123, 112, 108, 112, 120, 116, 122, 115, 103, 128, 114, 112, 125, 127, 114, 117, 108, 122, 105, 109, 120, 117, 111, 117, 122, 131, 113, 118, 117, 120, 125, 123, 104, 124, 115, 98, 114, 131, 125, 112, 119, 109, 133, 117, 122, 130, 109, 106, 108, 110, 115, 129, 119, 120, 111, 118, 132, 97, 118, 111, 97, 118, 103, 108, 123, 119, 113, 116, 143, 115, 110, 118, 124, 116, 118, 113, 123, 106, 118, 122, 107, 125, 120, 106, 115, 110, 113, 119, 126, 128, 120, 128, 112, 115, 119, 127, 125, 116, 119, 100, 115, 122, 118, 116, 121, 131, 105, 117, 121, 118, 93, 105, 117, 102, 107, 102, 114, 101, 102, 114, 132, 113, 110, 108, 113, 106, 115, 118, 116, 122, 115, 97, 120, 125, 102, 122, 110, 110, 115, 112, 108, 117, 108, 128, 134, 116, 117, 121, 115, 137, 122, 120, 109, 103, 123, 118, 105, 104, 119, 119, 104, 126, 101, 104, 133, 115, 147, 108, 108, 111, 86, 103, 100, 141, 113, 117, 104, 115, 115, 114, 109, 139, 125, 114, 112, 128, 103, 111, 114, 120, 101, 113, 116, 106, 100, 127, 114, 108, 110, 123, 117, 95, 129, 114, 138, 113, 123, 104, 107, 117, 114, 95, 110, 116, 107, 116, 112, 117, 111, 118, 116, 103, 97, 117, 108, 116, 113, 117, 119, 106, 104, 123, 112, 123, 113, 116, 118, 135, 95, 105, 100, 103, 113, 119, 104, 123, 99, 118, 115, 137, 113, 127, 114, 124, 126, 119, 100, 114, 115, 119, 108, 102, 138, 125, 105, 115, 123, 126, 113, 130, 113, 112, 107, 102, 103, 135, 134, 103, 115, 112, 116, 103, 105, 110, 133, 115, 120, 119, 126, 113, 109, 131, 119, 121, 129, 107, 121, 119, 117, 119, 130, 117, 115, 131, 102, 117, 113, 125, 109, 121, 109, 111, 115, 111, 120, 103, 119, 102, 118, 130, 121, 109, 118, 111, 115, 108, 120, 104, 113, 115, 110, 120, 119, 110, 117, 113, 110, 109, 114, 116, 128, 118, 116, 114, 121, 122, 119, 141, 122, 119, 124, 106, 107, 124, 110, 104, 125, 105, 120, 110, 94, 115, 116, 119, 124, 101, 127, 116, 111, 109, 107, 110, 111, 115, 108, 117, 116, 111, 107, 121, 109, 114, 115, 118, 137, 107, 122, 100, 110, 126, 116, 113, 117, 103, 117, 119, 112, 113, 125, 102, 116, 111, 114, 108, 114, 117, 120, 124, 115, 113, 122, 113, 113, 117, 99, 113, 120, 123, 93, 115, 109, 108, 106, 119, 124, 117, 105, 110, 104, 113, 124, 112, 113, 102, 120, 129, 113, 130, 100, 112, 125, 120, 100, 107, 106, 121, 107, 118, 122, 115, 125, 103, 130, 124, 122, 100, 113, 114, 122, 107, 112, 114, 117, 104, 114, 121, 113, 114, 121, 133, 117, 114, 114, 117, 109, 105, 118, 113, 117, 111, 130, 111, 104, 130, 120, 114, 104, 110, 123, 123, 123, 113, 121, 117, 116, 111, 117, 117, 115, 112, 111, 125, 113, 111, 118, 107, 113, 105, 110, 107, 114, 123, 119, 116, 125, 127, 123, 104, 115, 125, 104, 117, 112, 125, 110, 110, 116, 118, 114, 119, 122, 116, 116, 110, 128, 109, 111, 114, 114, 108, 113, 110, 116, 115, 107, 116, 115, 115, 120, 119, 119, 116, 115, 114, 127, 123, 118, 119, 107, 108, 96, 124, 112, 108, 115, 114, 120, 103, 112, 107, 107, 128, 114, 114, 106, 104, 119, 124, 123, 124, 111, 108, 104, 105, 109, 110, 129, 102, 108, 107, 112, 117, 121, 116, 118, 112, 115, 111, 97, 119, 112, 133, 126, 103, 114, 112, 114, 125, 108, 101, 131, 106, 117, 116, 130, 115, 116, 118, 105, 119, 109, 119, 117, 115, 116, 112, 107, 116, 102, 107, 116, 109, 106, 103, 110, 126, 108, 116, 121, 105, 105, 118, 110, 123, 109, 107, 102, 84, 114, 117, 115, 109, 103, 126, 112, 117, 121, 121, 110, 116, 112, 116, 104, 108, 103, 124, 105, 106, 105, 115, 121, 117, 115, 131, 113, 111, 111, 114, 111, 105, 114, 114, 116, 117, 119, 117, 109, 115, 108, 142, 109, 107, 129, 126, 126, 126, 112, 110, 119, 117, 106, 121, 100, 109, 115, 105, 109, 111, 114, 120, 100, 115, 109, 118, 132, 109, 106, 144, 117, 109, 104, 120, 97, 108, 114, 106, 118, 109, 122, 119, 118, 121, 112, 114, 107, 119, 119, 106, 101, 98, 118, 119, 117, 117, 127, 104, 117, 115, 113, 126, 127, 99, 121, 125, 119, 111, 110, 110, 107, 120, 107, 119, 112, 122, 110, 115, 106, 112, 100, 103, 110, 119, 109, 105, 119, 111, 126, 105, 118, 113, 123, 121, 121, 116, 119, 121, 100, 117, 102, 108, 113, 114, 119, 106, 111, 113, 122, 117, 116, 118, 112, 119, 119, 125, 122, 119, 115, 127, 121, 116, 118, 111, 122, 112, 122, 124, 119, 126, 100, 137, 116, 132, 124, 115, 112, 112, 104, 106, 122, 118, 116, 118, 107, 94, 125, 112, 107, 115, 111, 117, 117, 110, 111, 113, 115, 127, 114, 114, 89, 112, 116, 114, 115, 104, 103, 107, 119, 121, 121, 110, 121, 124, 131, 101, 123, 126, 120, 106, 117, 134, 119, 110, 101, 130, 111, 116, 109, 115, 112, 113, 111, 106, 118, 123, 110, 112, 111, 113, 128, 124, 116, 119, 107, 120, 114, 115, 127, 101, 120, 123, 114, 105, 110, 125, 122, 112, 117, 104, 83, 99, 107, 111, 113, 120, 104, 119, 120, 120, 123, 136, 107, 109, 113, 103, 101, 121, 118, 124, 120, 114, 96, 116, 113, 110, 116, 99, 117, 112, 125, 113, 113, 121, 122, 118, 107, 93, 106, 104, 123, 126, 126, 106, 120, 114, 107, 111, 114, 104, 114, 115, 130, 137, 105, 127, 113, 120, 113, 131, 117, 119, 110, 111, 120, 108, 108, 112, 118, 124, 105, 122, 110, 106, 128, 116, 112, 132, 108, 131, 112, 116, 124, 108, 116, 100, 107, 116, 113, 117, 117, 115, 110, 108, 116, 116, 126, 109, 113, 113, 125, 127, 143, 111, 139, 110, 111, 126, 110, 116, 112, 124, 113, 119, 121, 116, 118, 115, 103, 113, 119, 123, 121, 101, 119, 115, 107, 122, 124, 126, 116, 104, 121, 107, 124, 112, 102, 112, 125, 122, 115, 115, 117, 119, 109, 117, 130, 106, 107, 140, 114, 120, 115, 124, 114, 116, 100, 118, 120, 111, 107, 109, 123, 113, 118, 112, 136, 100, 121, 108, 111, 105, 125, 103, 116, 110, 130, 104, 111, 112, 119, 116, 104, 117, 125, 116, 118, 110, 96, 115, 123, 113, 119, 109, 114, 120, 116, 126, 122, 120, 123, 111, 105, 135, 118, 122, 117, 114, 113, 114, 92, 104, 98, 118, 123, 117, 111, 127, 108, 113, 106, 113, 113, 113, 114, 120, 121, 104, 114, 116, 116, 105, 116, 109, 114, 121, 98, 104, 97, 125, 101, 117, 108, 119, 111, 103, 121, 114, 123, 110, 106, 115, 132, 119, 111, 110, 114, 122, 124, 105, 125, 114, 126, 110, 109, 106, 100, 134, 107, 113, 126, 106, 112, 121, 110, 127, 122, 132, 114, 116, 119, 113, 120, 125, 109, 110, 123, 123, 105, 113, 118, 112, 122, 130, 109, 123, 104, 118, 123, 111, 117, 108, 107, 110, 116, 127, 121, 132, 116, 122, 138, 105, 108, 97, 125, 114, 113, 121, 130, 112, 121, 105, 125, 115, 106, 109, 114, 113, 107, 117, 126, 123, 99, 136, 110, 118, 92, 107, 118, 111, 116, 111, 114, 102, 117, 109, 89, 124, 105, 122, 117, 112, 114, 121, 113, 127, 108, 118, 99, 106, 117, 126, 115, 122, 107, 118, 126, 127, 122, 115, 125, 119, 98, 107, 109, 110, 124, 114, 123, 118, 108, 118, 124, 114, 119, 120, 126, 109, 114, 129, 115, 109, 114, 108, 112, 108, 130, 121, 113, 97, 134, 110, 126, 127, 101, 122, 125, 123, 116, 118, 108, 127, 119, 130, 124, 111, 119, 101, 119, 120, 117, 108, 104, 130, 113, 103, 121, 105, 117, 116, 111, 110, 109, 128, 103, 125, 128, 103, 124, 117, 117, 118, 112, 118, 105, 117, 111, 113, 114, 116, 102, 116, 88, 113, 117, 121, 88, 109, 121, 103, 138, 138, 128, 122, 113, 119, 132, 111, 117, 131, 96, 110, 120, 107, 134, 124, 124, 127, 124, 113, 105, 115, 110, 128, 111, 111, 130, 124, 113, 106, 121, 130, 123, 122, 108, 107, 122, 104, 111, 115, 113, 114, 114, 108, 117, 113, 114, 119, 113, 116, 109, 113, 111, 106, 100, 127, 122, 112, 89, 114, 130, 116, 116, 124, 105, 104, 119, 113, 112, 113, 123, 108, 106, 116, 133, 125, 113, 126, 116, 115, 115, 112, 113, 113, 121, 113, 128, 111, 111, 114, 113, 96, 110, 117, 119, 121, 107, 131, 111, 106, 112, 120, 117, 111, 123, 121, 112, 112, 126, 105, 117, 113, 126, 126, 127, 109, 125, 108, 121, 120, 111, 113, 118, 123, 122, 114, 123, 129, 114, 122, 129, 120, 107, 93, 110, 122, 121, 110, 107, 121, 117, 101, 113, 115, 111, 105, 123, 126, 116, 114, 119, 126, 124, 100, 109, 101, 126, 120, 119, 121, 116, 109, 107, 125, 108, 116, 130, 125, 119, 100, 107, 110, 125, 119, 109, 109, 115, 112, 119, 129, 116, 112, 108, 100, 111, 112, 113, 107, 126, 114, 118, 125, 120, 127, 121, 122, 117, 112, 112, 112, 111, 111, 119, 121, 116, 121, 118, 112, 104, 123, 116, 113, 103, 112, 116, 102, 122, 114, 115, 117, 128, 110, 112, 103, 116, 125, 127, 126, 105, 111, 97, 111, 118, 114, 119, 121, 126, 117, 113, 108, 118, 127, 128, 118, 109, 100, 115, 118, 111, 121, 126, 90, 118, 111, 127, 118, 114, 144, 109, 120, 140, 118, 124, 111, 108, 119, 107, 111, 113, 116, 113, 131, 121, 111, 109, 123, 117, 116, 121, 111, 126, 119, 122, 110, 109, 111, 100, 114, 107, 112, 113, 104, 120, 129, 116, 108, 106, 125, 114, 105, 105, 124, 108, 112, 122, 127, 115, 111, 117, 115, 122, 123, 119, 123, 121, 111, 118, 126, 118, 112, 105, 96, 115, 108, 108, 125, 109, 114, 119, 135, 133, 108, 117, 134, 117, 118, 108, 106, 80, 131, 113, 126, 130, 95, 103, 115, 100, 111, 106, 112, 110, 109, 117, 110, 112, 106, 120, 113, 131, 112, 124, 107, 109, 112, 119, 113, 92, 111, 112, 113, 117, 124, 121, 98, 111, 110, 112, 115, 113, 124, 119, 114, 113, 110, 110, 121, 106, 113, 123, 125, 110, 99, 105, 114, 116, 131, 117, 116, 119, 109, 111, 102, 121, 107, 116, 111, 111, 123, 109, 124, 120, 101, 123, 112, 120, 110, 115, 124, 128, 115, 106, 121, 125, 114, 112, 103, 118, 122, 117, 106, 113, 122, 107, 110, 92, 114, 130, 123, 130, 102, 111, 128, 115, 112, 116, 99, 110, 114, 111, 104, 119, 120, 115, 107, 126, 129, 114, 114, 126, 104, 120, 110, 102, 125, 108, 127, 114, 117, 97, 109, 95, 98, 115, 121, 106, 115, 117, 110, 107, 110, 116, 123, 121, 112, 105, 124, 107, 104, 116, 125, 108, 123, 101, 104, 104, 119, 108, 127, 108, 123, 105, 108, 121, 103, 120, 114, 108, 108, 115, 114, 112, 110, 105, 112, 115, 114, 126, 98, 111, 121, 122, 111, 122, 117, 113, 109, 116, 111, 127, 109, 117, 122, 109, 115, 108, 132, 111, 101, 115, 123, 109, 132, 128, 119, 132, 114, 122, 116, 109, 126, 111, 107, 113, 106, 112, 120, 100, 128, 113, 122, 111, 120, 117, 108, 100, 117, 113, 105, 107, 116, 110, 121, 107, 118, 114, 110, 104, 115, 142, 114, 120, 107, 108, 132, 106, 113, 101, 111, 109, 124, 115, 103, 102, 120, 116, 124, 115, 118, 130, 118, 109, 106, 121, 110, 121, 115, 118, 108, 116, 110, 117, 112, 107, 100, 113, 115, 122, 109, 106, 113, 112, 116, 121, 97, 120, 121, 119, 116, 116, 108, 115, 111, 109, 112, 139, 117, 117, 118, 117, 135, 123, 107, 101, 120, 111, 112, 121, 107, 114, 89, 102, 123, 127, 117, 117, 123, 113, 116, 110, 115, 115, 127, 107, 102, 117, 123, 111, 114, 122, 120, 126, 130, 106, 115, 128, 114, 116, 118, 118, 101, 129, 116, 110, 104, 113, 110, 117, 109, 106, 118, 108, 110, 102, 106, 129, 99, 118, 122, 113, 100, 118, 110, 109, 117, 124, 102, 124, 116, 112, 149, 110, 116, 111, 136, 122, 120, 110, 109, 117, 111, 87, 112, 119, 127, 116, 116, 101, 123, 114, 116, 118, 103, 118, 120, 121, 132, 114, 128, 118, 109, 115, 132, 112, 124, 108, 115, 113, 121, 109, 128, 121, 110, 108, 103, 118, 118, 109, 107, 123, 115, 106, 104, 111, 116, 128, 106, 115, 113, 113, 119, 98, 111, 124, 116, 103, 103, 102, 105, 120, 109, 109, 102, 125, 118, 119, 118, 132, 126, 106, 115, 114, 114, 106, 114, 106, 122, 115, 112, 120, 110, 104, 108, 107, 107, 113, 118, 112, 107, 101, 116, 144, 101, 109, 122, 113, 116, 124, 112, 106, 95, 121, 110, 114, 113, 116, 110, 126, 127, 104, 116, 127, 111, 111, 107, 117, 115, 117, 111, 114, 112, 105, 122, 123, 129, 111, 105, 121, 105, 104, 119, 106, 107, 123, 114, 118, 111, 111, 121, 118, 131, 122, 113, 113, 120, 114, 118, 102, 108, 112, 110, 109, 114, 113, 118, 120, 122, 107, 115, 111, 111, 114, 114, 136, 119, 123, 109, 103, 131, 105, 119, 108, 109, 148, 118, 101, 125, 115, 111, 114, 108, 102, 114, 129, 124, 110, 117, 106, 116, 113, 108, 99, 99, 111, 108, 129, 108, 119, 117, 134, 109, 116, 121, 108, 120, 113, 128, 101, 121, 111, 113, 113, 113, 127, 117, 129, 115, 106, 129, 129, 114, 112, 112, 116, 99, 120, 113, 120, 102, 109, 119, 112, 118, 105, 120, 106, 128, 106, 112, 115, 123, 106, 114, 116, 104, 132, 111, 108, 106, 112, 114, 111, 110, 108, 124, 109, 115, 119, 101, 95, 115, 117, 117, 111, 104, 116, 128, 118, 130, 109, 127, 121, 101, 107, 124, 121, 111, 102, 117, 109, 119, 106, 113, 114, 114, 106, 113, 141, 107, 111, 113, 107, 106, 119, 128, 101, 110, 100, 116, 114, 107, 118, 119, 115, 108, 123, 125, 129, 112, 110, 116, 131, 130, 120, 112, 130, 110, 128, 109, 125, 120, 118, 106, 115, 111, 124, 116, 117, 114, 125, 101, 112, 108, 122, 117, 110, 117, 112, 107, 114, 119, 108, 111, 110, 113, 111, 112, 121, 115, 123, 105, 117, 123, 122, 105, 122, 113, 102, 111, 120, 102, 119, 124, 123, 115, 125, 116, 121, 115, 125, 108, 123, 123, 138, 115, 96, 109, 114, 107, 106, 120, 111, 123, 114, 107, 124, 107, 119, 97, 116, 121, 117, 110, 114, 119, 118, 112, 120, 119, 116, 118, 135, 116, 113, 104, 118, 109, 105, 117, 110, 111, 119, 116, 117, 111, 116, 92, 120, 113, 118, 116, 121, 111, 110, 103, 120, 121, 115, 120, 117, 107, 109, 124, 117, 105, 110, 103, 121, 112, 108, 119, 112, 124, 91, 118, 118, 120, 111, 111, 112, 121, 97, 121, 117, 115, 110, 115, 117, 123, 111, 113, 116, 107, 122, 111, 117, 109, 120, 105, 106, 112, 111, 111, 126, 114, 121, 118, 114, 108, 114, 118, 115, 114, 113, 119, 121, 115, 119, 102, 114, 113, 131, 118, 123, 105, 123, 127, 116, 123, 111, 115, 138, 104, 121, 116, 113, 130, 114, 104, 112, 117, 122, 117, 100, 119, 115, 121, 131, 109, 97, 102, 113, 119, 116, 110, 115, 114, 118, 112, 117, 115, 116, 104, 118, 115, 108, 121, 105, 137, 114, 139, 118, 105, 113, 96, 115, 102, 126, 121, 109, 115, 125, 114, 103, 101, 108, 115, 113, 105, 99, 112, 108, 116, 136, 132, 127, 120, 116, 111, 106, 123, 106, 126, 103, 122, 111, 125, 123, 110, 110, 110, 124, 121, 129, 111, 117, 117, 124, 116, 110, 113, 116, 113, 112, 117, 116, 109, 130, 116, 125, 113, 112, 114, 116, 109, 107, 123, 123, 111, 111, 111, 105, 112, 104, 117, 123, 118, 109, 102, 117, 114, 108, 110, 115, 118, 110, 110, 110, 120, 110, 118, 118, 109, 122, 119, 118, 110, 112, 114, 107, 138, 102, 112, 110, 119, 111, 114, 110, 125, 109, 140, 118, 104, 125, 116, 115, 113, 112, 125, 110, 126, 119, 107, 110, 108, 117, 98, 114, 125, 114, 112, 115, 113, 112, 115, 118, 122, 120, 106, 112, 103, 112, 115, 104, 111, 131, 99, 113, 110, 116, 114, 98, 105, 107, 104, 125, 124, 117, 120, 115, 119, 123, 124, 123, 120, 113, 105, 118, 99, 108, 124, 106, 126, 115, 125, 107, 113, 117, 108, 114, 128, 105, 122, 113, 114, 95, 101, 100, 117, 112, 108, 126, 118, 103, 109, 114, 113, 121, 122, 118, 130, 120, 113, 125, 121, 112, 121, 128, 114, 111, 109, 121, 131, 124, 123, 122, 112, 119, 110, 102, 112, 99, 118, 118, 117, 107, 124, 109, 122, 120, 115, 131, 109, 111, 119, 115, 115, 115, 126, 130, 122, 116, 123, 118, 107, 100, 104, 116, 118, 114, 119, 114, 121, 103, 127, 117, 111, 126, 119, 119, 125, 124, 124, 113, 117, 109, 111, 114, 106, 110, 117, 118, 102, 135, 109, 111, 110, 109, 117, 106, 132, 112, 126, 112, 115, 113, 123, 122, 108, 127, 113, 108, 106, 109, 119, 114, 115, 112, 103, 128, 118, 104, 110, 95, 121, 105, 118, 118, 113, 121, 100, 119, 111, 127, 115, 119, 121, 105, 103, 118, 99, 108, 125, 127, 109, 110, 117, 109, 125, 113, 103, 118, 122, 113, 121, 120, 111, 116, 113, 114, 108, 114, 114, 118, 111, 111, 116, 97, 119, 86, 128, 115, 117, 117, 119, 118, 116, 103, 117, 118, 105, 111, 112, 109, 120, 102, 119, 113, 100, 117, 105, 110, 132, 91, 121, 117, 107, 106, 115, 102, 113, 113, 111, 113, 120, 120, 114, 108, 86, 113, 113, 114, 124, 121, 116, 116, 130, 115, 104, 116, 108, 99, 116, 124, 108, 129, 121, 129, 118, 114, 127, 111, 108, 126, 103, 96, 109, 128, 114, 111, 111, 119, 99, 102, 126, 106, 120, 100, 111, 116, 119, 126, 122, 106, 109, 117, 128, 127, 99, 120, 118, 122, 117, 120, 108, 124, 111, 117, 115, 107, 108, 122, 114, 110, 121, 115, 125, 101, 108, 122, 114, 111, 120, 120, 107, 120, 108, 124, 119, 113, 111, 115, 107, 116, 106, 124, 112, 118, 133, 117, 110, 104, 119, 118, 105, 104, 113, 108, 124, 106, 103, 117, 125, 116, 115, 118, 107, 117, 145, 117, 111, 104, 120, 109, 108, 115, 116, 109, 99, 104, 117, 105, 135, 108, 113, 112, 133, 105, 124, 128, 120, 115, 121, 109, 123, 112, 114, 126, 126, 110, 118, 99, 113, 106, 114, 123, 119, 106, 112, 105, 94, 100, 107, 114, 127, 107, 109, 100, 127, 108, 128, 118, 119, 100, 120, 127, 126, 98, 120, 107, 107, 111, 112, 113, 116, 99, 98, 127, 95, 122, 106, 84, 116, 119, 112, 115, 103, 117, 129, 105, 124, 127, 107, 112, 114, 108, 109, 114, 89, 105, 125, 112, 126, 129, 116, 114, 107, 120, 113, 109, 113, 111, 105, 112, 106, 106, 116, 115, 120, 115, 108, 100, 107, 123, 120, 116, 123, 110, 103, 122, 116, 107, 118, 100, 106, 113, 127, 115, 108, 109, 127, 124, 122, 120, 105, 132, 110, 112, 114, 113, 127, 116, 115, 111, 109, 124, 123, 105, 107, 115, 113, 98, 119, 125, 111, 95, 104, 112, 116, 111, 115, 120, 107, 101, 118, 123, 125, 91, 126, 113, 111, 109, 108, 114, 108, 115, 105, 114, 96, 108, 112, 122, 134, 108, 115, 120, 115, 108, 122, 110, 117, 109, 116, 109, 120, 117, 104, 127, 121, 117, 109, 129, 120, 109, 109, 117, 117, 117, 114, 107, 122, 111, 102, 107, 112, 115, 129, 106, 122, 128, 108, 117, 118, 113, 114, 116, 106, 125, 117, 127, 134, 125, 108, 127, 116, 112, 112, 98, 106, 107, 119, 127, 117, 114, 123, 112, 115, 113, 135, 120, 100, 118, 123, 126, 122, 91, 114, 114, 109, 111, 131, 116, 120, 107, 117, 123, 102, 133, 123, 112, 109, 107, 122, 135, 110, 125, 113, 118, 116, 113, 115, 112, 124, 109, 118, 124, 115, 111, 125, 117, 119, 117, 110, 112, 123, 111, 126, 115, 110, 117, 122, 102, 103, 107, 107, 101, 113, 128, 113, 116, 108, 111, 117, 89, 129, 112, 113, 92, 113, 115, 123, 105, 113, 118, 113, 119, 114, 127, 106, 111, 129, 122, 115, 118, 113, 106, 113, 121, 117, 112, 105, 119, 133, 109, 132, 112, 116, 111, 115, 113, 118, 110, 123, 105, 117, 120, 115, 114, 105, 111, 124, 116, 93, 111, 109, 115, 117, 136, 115, 122, 125, 136, 113, 109, 105, 107, 117, 100, 110, 104, 105, 107, 118, 103, 124, 124, 119, 110, 116, 109, 115, 114, 121, 125, 123, 115, 113, 125, 95, 114, 112, 109, 120, 116, 129, 111, 97, 127, 114, 107, 96, 116, 126, 102, 123, 112, 116, 126, 109, 116, 103, 96, 128, 117, 117, 101, 119, 114, 108, 122, 112, 120, 123, 114, 126, 122, 108, 110, 121, 118, 120, 105, 107, 113, 110, 111, 110, 113, 113, 133, 110, 104, 112, 121, 144, 111, 124, 130, 115, 119, 109, 111, 122, 114, 116, 108, 141, 104, 116, 116, 120, 120, 105, 121, 118, 123, 116, 130, 108, 122, 106, 128, 114, 119, 124, 110, 119, 111, 112, 113, 125, 111, 125, 115, 103, 118, 119, 113, 115, 117, 122, 109, 103, 113, 118, 123, 114, 92, 123, 103, 118, 120, 113, 111, 115, 123, 107, 126, 112, 118, 121, 113, 120, 110, 115, 120, 104, 112, 120, 117, 126, 112, 128, 97, 112, 112, 116, 114, 105, 109, 116, 119, 105, 112, 126, 133, 102, 109, 103, 112, 114, 110, 114, 116, 114, 105, 114, 108, 126, 125, 125, 103, 120, 119, 107, 116, 136, 108, 113, 111, 107, 106, 105, 119, 112, 108, 136, 126, 113, 119, 91, 117, 110, 100, 113, 94, 100, 111, 121, 107, 121, 110, 119, 123, 100, 109, 92, 115, 118, 114, 124, 113, 100, 125, 137, 133, 113, 103, 107, 117, 106, 120, 101, 119, 112, 113, 125, 124, 127, 110, 115, 104, 114, 125, 112, 119, 115, 113, 130, 105, 114, 121, 100, 123, 111, 129, 112, 111, 114, 120, 105, 115, 126, 114, 128, 119, 117, 114, 120, 99, 122, 110, 115, 105, 119, 130, 104, 131, 105, 120, 112, 110, 102, 116, 122, 100, 112, 116, 107, 110, 114, 118, 112, 120, 104, 114, 121, 108, 126, 119, 115, 107, 104, 104, 119, 124, 125, 110, 110, 126, 111, 116, 111, 108, 125, 114, 120, 92, 116, 114, 118, 83, 118, 108, 111, 109, 118, 106, 108, 119, 114, 119, 121, 122, 110, 114, 119, 108, 105, 127, 112, 122, 111, 104, 123, 113, 107, 111, 127, 111, 117, 119, 105, 108, 102, 124, 122, 115, 116, 114, 114, 115, 102, 109, 120, 111, 106, 107, 116, 114, 120, 128, 121, 120, 116, 115, 123, 112, 122, 121, 114, 107, 120, 108, 115, 117, 115, 114, 113, 122, 118, 111, 103, 107, 105, 107, 121, 129, 111, 121, 102, 115, 122, 118, 123, 113, 125, 117, 107, 115, 123, 120, 115, 117, 112, 108, 106, 123, 116, 110, 120, 134, 107, 101, 113, 116, 136, 124, 108, 117, 111, 123, 116, 107, 119, 126, 99, 123, 107, 117, 128, 94, 111, 105, 104, 115, 105, 119, 88, 113, 94, 119, 121, 124, 118, 120, 115, 107, 111, 108, 119, 120, 126, 115, 105, 108, 120, 103, 121, 111, 105, 120, 103, 116, 107, 113, 109, 119, 115, 102, 123, 104, 125, 116, 111, 107, 124, 118, 97, 105, 117, 106, 121, 120, 107, 120, 121, 107, 119, 114, 115, 117, 124, 104, 107, 107, 103, 130, 111, 110, 108, 115, 109, 119, 118, 114, 104, 125, 119, 113, 126, 110, 114, 107, 117, 124, 91, 113, 113, 119, 99, 116, 116, 112, 112, 113, 96, 120, 103, 113, 116, 107, 109, 120, 126, 116, 112, 114, 118, 99, 107, 111, 127, 115, 107, 124, 117, 117, 105, 119, 116, 116, 97, 118, 111, 113, 107, 110, 124, 121, 114, 109, 130, 107, 104, 112, 123, 133, 96, 107, 107, 111, 108, 100, 99, 109, 105, 102, 117, 116, 103, 129, 108, 135, 107, 124, 103, 98, 96, 108, 121, 101, 122, 106, 106, 120, 116, 109, 103, 127, 119, 105, 112, 117, 110, 120, 117, 123, 111, 113, 121, 104, 131, 121, 100, 117, 126, 127, 103, 126, 100, 107, 110, 105, 122, 123, 125, 104, 112, 110, 124, 105, 109, 119, 105, 110, 108, 131, 127, 120, 104, 122, 119, 118, 125, 120, 104, 90, 130, 114, 104, 124, 115, 113, 111, 111, 115, 116, 115, 130, 115, 131, 116, 106, 107, 112, 130, 118, 118, 129, 119, 120, 121, 114, 118, 136, 117, 107, 111, 103, 120, 114, 114, 126, 121, 139, 113, 113, 127, 101, 125, 115, 114, 122, 126, 104, 98, 107, 110, 110, 116, 102, 117, 118, 133, 109, 109, 110, 113, 112, 101, 105, 115, 105, 114, 120, 129, 110, 109, 113, 124, 111, 119, 105, 124, 121, 115, 118, 104, 98, 113, 110, 110, 106, 120, 118, 110, 127, 109, 112, 119, 111, 116, 107, 128, 107, 109, 104, 115, 124, 110, 120, 110, 113, 98, 106, 130, 120, 103, 123, 118, 117, 93, 112, 120, 102, 117, 111, 124, 115, 118, 107, 109, 119, 121, 118, 120, 105, 110, 117, 109, 127, 117, 123, 121, 114, 123, 124, 109, 115, 113, 124, 116, 101, 95, 111, 111, 122, 105, 119, 120, 120, 131, 99, 130, 107, 119, 111, 118, 95, 115, 133, 116, 118, 103, 99, 123, 105, 106, 121, 113, 114, 111, 107, 124, 118, 112, 115, 105, 115, 110, 114, 109, 117, 114, 114, 115, 107, 118, 117, 111, 103, 114, 105, 123, 111, 112, 123, 106, 127, 119, 112, 99, 113, 115, 111, 118, 108, 112, 106, 106, 117, 118, 117, 108, 112, 106, 108, 115, 119, 115, 106, 116, 120, 117, 120, 106, 116, 121, 131, 111, 110, 125, 111, 109, 108, 119, 146, 106, 124, 112, 118, 114, 113, 136, 108, 115, 118, 138, 117, 125, 122, 129, 114, 113, 115, 102, 111, 116, 108, 102, 118, 122, 109, 113, 109, 125, 117, 113, 99, 115, 109, 104, 114, 115, 119, 119, 129, 111, 106, 124, 113, 112, 110, 113, 114, 111, 141, 147, 147, 126, 105, 111, 109, 114, 124, 114, 95, 111, 126, 118, 102, 123, 114, 116, 115, 113, 118, 109, 98, 142, 130, 113, 111, 104, 135, 107, 129, 114, 116, 109, 120, 109, 110, 124, 111, 94, 116, 109, 96, 124, 112, 108, 115, 126, 116, 109, 106, 100, 135, 106, 114, 132, 117, 114, 121, 128, 119, 115, 118, 125, 100, 109, 122, 118, 111, 125, 85, 119, 106, 103, 111, 104, 98, 132, 123, 122, 145, 130, 117, 116, 120, 129, 113, 116, 103, 185, 112, 125, 114, 101, 140, 117, 118, 121, 90, 111, 123, 102, 107, 118, 127, 123, 117, 118, 113, 106, 110, 112, 125, 122, 125, 119, 125, 124, 123, 119, 97, 124, 117, 111, 117, 110, 118, 115, 101, 114, 118, 116, 113, 104, 115, 114, 113, 127, 114, 124, 107, 123, 103, 120, 118, 123, 135, 127, 125, 92, 123, 135, 123, 111, 105, 104, 123, 106, 114, 109, 109, 116, 147, 144, 96, 107, 105, 119, 119, 119, 124, 145, 102, 121, 109, 128, 125, 128, 112, 118, 108, 113, 114, 119, 118, 122, 113, 118, 116, 109, 112, 120, 125, 126, 115, 105, 114, 111, 107, 114, 95, 113, 127, 116, 134, 114, 109, 106, 117, 114, 125, 106, 113, 121, 122, 125, 113, 105, 118, 101, 119, 123, 129, 113, 110, 115, 115, 107, 119, 108, 112, 114, 116, 117, 115, 117, 120, 109, 118, 104, 118, 106, 125, 93, 101, 107, 106, 132, 125, 101, 123, 126, 105, 121, 119, 114, 118, 115, 131, 123, 104, 117, 118, 129, 114, 111, 107, 112, 120, 121, 118, 104, 131, 112, 110, 117, 132, 113, 113, 109, 103, 126, 116, 120, 117, 110, 122, 113, 119, 99, 116, 108, 103, 112, 111, 120, 119, 111, 111, 109, 133, 104, 128, 118, 110, 112, 107, 105, 117, 110, 124, 121, 119, 103, 130, 100, 118, 108, 111, 127, 108, 120, 111, 110, 123, 113, 99, 112, 126, 135, 111, 125, 125, 108, 100, 111, 114, 125, 129, 119, 109, 102, 118, 109, 116, 111, 127, 117, 114, 99, 109, 124, 102, 123, 99, 100, 113, 122, 109, 114, 113, 107, 119, 124, 110, 97, 113, 104, 113, 116, 121, 111, 113, 101, 111, 114, 142, 119, 118, 107, 121, 117, 121, 87, 123, 107, 114, 126, 123, 114, 120, 119, 110, 115, 117, 115, 119, 113, 54, 108, 115, 119, 108, 160, 119, 131, 115, 118, 107, 111, 119, 129, 117, 122, 110, 111, 123, 129, 109, 111, 137, 113, 135, 119, 105, 117, 116, 119, 116, 109, 98, 112, 112, 122, 122, 127, 106, 109, 121, 105, 110, 105, 115, 128, 102, 119, 108, 116, 120, 115, 129, 122, 109, 129, 115, 116, 104, 117, 112, 122, 108, 115, 116, 125, 112, 101, 114, 109, 118, 112, 118, 113, 104, 123, 117, 113, 104, 99, 108, 118, 109, 111, 117, 113, 107, 113, 121, 122, 115, 117, 109, 115, 113, 112, 113, 104, 119, 117, 117, 104, 119, 127, 111, 118, 122, 120, 119, 121, 118, 129, 128, 98, 120, 118, 114, 118, 119, 135, 120, 117, 114, 116, 114, 101, 101, 101, 115, 113, 125, 117, 122, 111, 119, 109, 113, 121, 117, 119, 115, 125, 118, 106, 115, 110, 123, 103, 108, 119, 113, 121, 115, 112, 109, 115, 118, 107, 116, 122, 116, 121, 115, 114, 103, 119, 98, 110, 106, 114, 106, 118, 90, 111, 117, 110, 108, 118, 111, 102, 128, 118, 114, 110, 109, 131, 114, 127, 114, 117, 109, 102, 110, 113, 112, 118, 117, 117, 111, 107, 113, 113, 108, 115, 108, 110, 107, 111, 125, 112, 115, 106, 110, 118, 113, 114, 111, 124, 109, 123, 113, 121, 119, 112, 118, 97, 113, 107, 114, 129, 116, 112, 107, 110, 118, 114, 110, 109, 48, 114, 119, 113, 119, 123, 118, 105, 106, 112, 120, 119, 125, 121, 122, 109, 105, 119, 118, 114, 107, 113, 127, 104, 116, 104, 115, 118, 122, 113, 117, 115, 114, 113, 118, 112, 121, 154, 115, 110, 101, 112, 110, 118, 122, 98, 125, 111, 104, 107, 113, 114, 105, 119, 119, 119, 113, 106, 119, 109, 122, 103, 118, 129, 111, 116, 113, 111, 118, 109, 112, 106, 112, 122, 129, 124, 121, 113, 116, 113, 117, 108, 115, 110, 112, 111, 119, 112, 117, 108, 111, 118, 107, 115, 108, 125, 124, 113, 110, 119, 111, 141, 119, 110, 111, 122, 113, 126, 116, 128, 116, 108, 121, 105, 106, 105, 112, 120, 111, 119, 118, 117, 100, 115, 112, 97, 114, 99, 112, 107, 103, 128, 115, 128, 116, 116, 109, 103, 104, 116, 109, 113, 120, 115, 114, 115, 103, 105, 107, 111, 109, 114, 104, 119, 130, 116, 118, 110, 111, 121, 123, 108, 102, 122, 115, 105, 121, 116, 126, 110, 101, 118, 113, 126, 127, 117, 127, 105, 119, 103, 115, 106, 112, 110, 111, 125, 119, 114, 123, 129, 115, 112, 107, 114, 115, 117, 133, 109, 112, 127, 116, 114, 115, 109, 115, 112, 117, 118, 119, 115, 120, 112, 113, 109, 115, 118, 116, 117, 111, 109, 120, 114, 115, 113, 115, 117, 116, 117, 107, 114, 118, 110, 108, 111, 119, 112, 124, 115, 111, 111, 109, 122, 117, 108, 113, 124, 125, 111, 121, 93, 124, 109, 119, 108, 115, 117, 104, 100, 114, 115, 112, 119, 123, 111, 118, 107, 125, 120, 110, 112, 120, 103, 114, 118, 116, 117, 111, 139, 123, 119, 119, 112, 125, 97, 93, 116, 114, 118, 116, 121, 114, 120, 109, 110, 120, 104, 118, 128, 121, 121, 122, 121, 133, 116, 120, 113, 111, 100, 116, 106, 115, 122, 116, 107, 136, 109, 120, 139, 112, 111, 119, 108, 109, 127, 105, 115, 121, 111, 127, 115, 122, 111, 124, 98, 116, 122, 92, 112, 94, 115, 109, 99, 114, 111, 108, 112, 117, 118, 117, 116, 114, 114, 91, 110, 110, 131, 127, 97, 117, 109, 118, 101, 117, 115, 121, 133, 114, 107, 125, 99, 125, 120, 108, 96, 114, 114, 117, 127, 120, 108, 106, 118, 118, 101, 122, 115, 111, 119, 122, 103, 121, 104, 121, 112, 119, 110, 116, 132, 111, 121, 115, 123, 112, 125, 119, 109, 119, 113, 120, 123, 133, 115, 108, 141, 108, 136, 111, 115, 112, 109, 102, 105, 121, 117, 116, 98, 120, 108, 111, 104, 113, 112, 119, 114, 110, 116, 130, 109, 118, 108, 118, 121, 126, 114, 117, 111, 109, 113, 108, 115, 124, 121, 115, 113, 121, 115, 105, 121, 103, 124, 127, 125, 111, 135, 104, 113, 132, 133, 132, 120, 109, 105, 115, 123, 119, 119, 110, 121, 131, 100, 124, 102, 130, 122, 120, 127, 115, 144, 111, 116, 105, 106, 119, 117, 108, 101, 112, 104, 116, 124, 123, 121, 114, 124, 116, 111, 124, 111, 129, 106, 111, 109, 111, 118, 119, 115, 115, 133, 116, 109, 108, 105, 112, 107, 118, 109, 130, 101, 124, 129, 113, 114, 106, 110, 96, 110, 128, 109, 118, 116, 126, 100, 120, 120, 111, 108, 120, 111, 127, 108, 119, 110, 109, 110, 111, 118, 108, 114, 114, 106, 114, 118, 104, 112, 113, 87, 112, 133, 118, 125, 115, 115, 114, 119, 114, 115, 109, 105, 124, 117, 104, 109, 112, 119, 120, 120, 102, 135, 96, 111, 106, 96, 110, 129, 107, 113, 137, 106, 123, 105, 129, 113, 120, 118, 106, 124, 115, 123, 118, 115, 110, 115, 104, 111, 109, 121, 109, 116, 108, 107, 115, 106, 108, 112, 109, 116, 121, 107, 117, 122, 121, 122, 109, 121, 114, 109, 104, 120, 116, 114, 131, 110, 106, 117, 117, 108, 118, 107, 129, 115, 110, 115, 112, 109, 110, 118, 111, 119, 107, 114, 103, 117, 112, 111, 119, 120, 116, 117, 100, 114, 112, 111, 105, 104, 119, 112, 102, 103, 127, 122, 126, 116, 113, 95, 117, 125, 109, 115, 118, 128, 113, 128, 118, 124, 111, 112, 125, 93, 114, 119, 118, 113, 115, 120, 113, 123, 118, 104, 116, 107, 110, 114, 112, 113, 107, 123, 114, 128, 106, 107, 128, 109, 104, 112, 126, 114, 123, 110, 116, 116, 107, 126, 103, 120, 104, 119, 107, 107, 117, 121, 121, 116, 103, 114, 132, 118, 125, 124, 119, 108, 123, 119, 112, 122, 107, 117, 112, 113, 101, 111, 114, 111, 101, 116, 121, 112, 120, 120, 130, 123, 127, 123, 115, 108, 126, 108, 103, 115, 110, 130, 127, 115, 108, 118, 121, 112, 109, 114, 110, 119, 116, 121, 112, 128, 125, 101, 117, 123, 128, 115, 118, 126, 108, 121, 117, 102, 112, 113, 111, 126, 113, 95, 104, 118, 109, 124, 107, 114, 102, 115, 124, 104, 113, 105, 114, 113, 114, 112, 104, 112, 120, 116, 113, 126, 119, 117, 111, 124, 113, 121, 122, 118, 108, 105, 114, 123, 116, 129, 108, 102, 108, 115, 100, 104, 125, 102, 105, 126, 116, 118, 110, 108, 104, 112, 107, 114, 103, 112, 120, 119, 131, 125, 116, 106, 112, 108, 140, 128, 113, 129, 136, 139, 115, 111, 115, 127, 109, 120, 113, 114, 108, 114, 114, 119, 121, 103, 120, 106, 91, 107, 117, 131, 115, 98, 114, 106, 115, 128, 121, 117, 93, 132, 110, 115, 106, 117, 109, 99, 123, 117, 120, 131, 116, 117, 113, 111, 118, 149, 119, 114, 94, 119, 118, 111, 110, 123, 110, 124, 107, 101, 111, 121, 103, 119, 114, 132, 123, 106, 109, 139, 119, 103, 114, 107, 117, 124, 130, 114, 125, 120, 123, 113, 109, 127, 113, 114, 122, 123, 117, 123, 96, 107, 119, 122, 100, 112, 97, 114, 121, 128, 123, 114, 104, 133, 101, 108, 115, 100, 98, 132, 109, 114, 132, 111, 115, 124, 111, 91, 115, 124, 102, 108, 91, 119, 121, 118, 125, 123, 122, 114, 113, 118, 119, 129, 117, 125, 110, 124, 118, 106, 110, 128, 109, 120, 102, 101, 122, 107, 96, 110, 110, 106, 121, 99, 122, 97, 121, 120, 104, 124, 122, 107, 114, 102, 103, 129, 118, 125, 108, 127, 128, 127, 110, 113, 115, 107, 115, 171, 110, 120, 123, 122, 123, 123, 113, 132, 111, 130, 101, 106, 115, 116, 112, 114, 102, 110, 125, 125, 108, 84, 116, 114, 121, 129, 134, 113, 113, 107, 110, 144, 131, 104, 113, 104, 123, 95, 128, 126, 93, 138, 135, 111, 125, 111, 128, 122, 127, 118, 109, 111, 97, 97, 128, 118, 94, 99, 134, 116, 102, 104, 99, 104, 105, 113, 118, 115, 114, 122, 109, 120, 116, 109, 112, 104, 102, 135, 112, 125, 115, 101, 124, 114, 130, 111, 134, 113, 102, 98, 101, 97, 115, 115, 116, 100, 106, 116, 112, 103, 120, 118, 120, 99, 113, 119, 118, 118, 111, 112, 116, 103, 125, 119, 112, 139, 122, 114, 114, 104, 113, 108, 136, 127, 108, 120, 122, 119, 138, 114, 97, 116, 110, 104, 102, 101, 134, 118, 110, 113, 102, 109, 113, 114, 109, 112, 139, 123, 101, 116, 118, 112, 113, 108, 123, 111, 117, 120, 115, 119, 102, 105, 126, 114, 116, 128, 112, 116, 105, 127, 127, 126, 119, 112, 110, 128, 131, 98, 122, 111, 119, 106, 132, 117, 115, 120, 106, 114, 122, 135, 102, 105, 117, 118, 124, 116, 116, 110, 116, 119, 103, 92, 106, 109, 146, 103, 134, 136, 114, 110, 111, 114, 112, 113, 109, 110, 96, 118, 108, 114, 135, 122, 100, 107, 118, 109, 116, 113, 120, 103, 141, 90, 115, 117, 104, 129, 128, 107, 129, 119, 117, 111, 114, 113, 116, 119, 113, 118, 118, 125, 138, 124, 149, 120, 108, 127, 125, 123, 107, 115, 99, 123, 126, 107, 126, 123, 117, 109, 96, 102, 110, 113, 96, 105, 115, 108, 114, 86, 109, 122, 121, 119, 118, 129, 99, 131, 112, 144, 115, 110, 122, 113, 121, 119, 113, 117, 118, 117, 105, 110, 117, 111, 110, 111, 110, 122, 124, 113, 109, 117, 118, 109, 113, 114, 105, 109, 120, 109, 107, 128, 102, 111, 108, 115, 113, 128, 128, 117, 123, 112, 119, 114, 114, 104, 114, 104, 98, 112, 125, 116, 117, 125, 107, 117, 116, 125, 120, 119, 123, 111, 112, 110, 124, 104, 122, 112, 129, 123, 117, 121, 97, 112, 110, 123, 112, 120, 109, 110, 109, 110, 122, 118, 105, 117, 115, 116, 116, 122, 123, 140, 128, 124, 109, 122, 106, 114, 127, 104, 118, 116, 120, 113, 112, 118, 108, 111, 119, 122, 102, 122, 117, 135, 114, 125, 116, 105, 108, 102, 118, 115, 110, 117, 118, 114, 110, 107, 112, 115, 130, 111, 119, 108, 109, 112, 107, 116, 103, 104, 109, 104, 119, 110, 116, 122, 107, 117, 111, 121, 124, 126, 113, 122, 113, 119, 119, 136, 109, 110, 113, 122, 111, 114, 113, 115, 114, 109, 110, 115, 110, 111, 114, 108, 111, 112, 122, 112, 122, 121, 110, 103, 116, 108, 99, 105, 109, 120, 118, 112, 110, 117, 119, 103, 125, 117, 110, 111, 110, 114, 128, 116, 109, 110, 116, 123, 124, 93, 118, 123, 109, 115, 129, 113, 109, 112, 117, 117, 113, 123, 107, 105, 120, 105, 125, 112, 108, 112, 100, 119, 107, 123, 117, 126, 119, 110, 122, 113, 110, 119, 107, 122, 107, 114, 117, 124, 118, 112, 123, 109, 114, 108, 116, 119, 114, 113, 116, 118, 115, 110, 119, 111, 114, 119, 115, 118, 126, 121, 113, 124, 122, 121, 109, 111, 110, 112, 118, 105, 113, 100, 117, 114, 108, 111, 117, 112, 122, 120, 110, 121, 105, 98, 114, 117, 117, 126, 109, 108, 121, 114, 110, 123, 113, 115, 129, 105, 108, 128, 103, 131, 113, 103, 112, 118, 116, 117, 114, 115, 103, 104, 111, 118, 120, 110, 110, 123, 118, 111, 111, 122, 109, 109, 111, 108, 118, 105, 103, 115, 109, 116, 121, 123, 109, 112, 123, 120, 112, 122, 109, 113, 109, 114, 122, 115, 123, 109, 120, 118, 112, 113, 116, 115, 116, 106, 113, 118, 118, 111, 111, 112, 105, 112, 116, 130, 110, 121, 111, 125, 108, 117, 117, 127, 117, 104, 118, 124, 103, 105, 115, 117, 120, 101, 113, 116, 110, 100, 110, 123, 121, 110, 110, 103, 119, 109, 114, 124, 116, 123, 117, 122, 115, 111, 120, 123, 110, 108, 110, 117, 120, 120, 124, 109, 129, 117, 110, 113, 110, 112, 110, 130, 115, 118, 114, 110, 107, 124, 128, 107, 115, 117, 118, 111, 109, 116, 112, 112, 108, 111, 106, 110, 111, 106, 122, 108, 103, 101, 117, 123, 105, 114, 129, 113, 117, 104, 118, 121, 113, 116, 114, 124, 102, 113, 114, 116, 108, 115, 111, 118, 118, 126, 113, 126, 114, 107, 113, 113, 112, 114, 115, 116, 119, 103, 100, 118, 117, 112, 107, 101, 118, 112, 119, 114, 117, 112, 123, 110, 110, 127, 121, 115, 117, 125, 110, 116, 118, 111, 120, 117, 115, 119, 115, 99, 122, 117, 112, 113, 122, 118, 108, 111, 110, 114, 111, 120, 117, 112, 115, 96, 116, 104, 119, 113, 125, 116, 117, 115, 113, 117, 112, 112, 117, 110, 109, 114, 116, 109, 117, 114, 118, 137, 116, 103, 110, 111, 116, 120, 113, 117, 114, 115, 121, 112, 101, 119, 114, 118, 105, 120, 109, 109, 132, 117, 117, 116, 126, 110, 117, 116, 36, 114, 115, 104, 156, 103, 109, 110, 113, 118, 122, 112, 112, 117, 117, 118, 109, 114, 110, 109, 94, 105, 119, 117, 102, 113, 116, 105, 112, 114, 113, 114, 104, 110, 106, 117, 119, 109, 125, 107, 107, 109, 123, 116, 119, 109, 112, 125, 116, 121, 126, 111, 116, 118, 123, 111, 116, 118, 115, 118, 113, 115, 86, 109, 116, 115, 114, 116, 107, 115, 124, 110, 112, 114, 121, 121, 96, 115, 119, 114, 120, 121, 115, 112, 114, 115, 120, 117, 60, 130, 114, 120, 114, 111, 110, 116, 108, 113, 119, 115, 120, 119, 118, 118, 116, 125, 112, 110, 107, 117, 116, 112, 116, 125, 116, 112, 114, 101, 112, 118, 116, 117, 120, 116, 112, 127, 113, 106, 111, 106, 115, 116, 103, 122, 121, 115, 109, 121, 118, 106, 115, 96, 122, 121, 130, 108, 123, 113, 111, 114, 116, 116, 104, 102, 110, 106, 130, 113, 106, 126, 117, 111, 121, 108, 122, 119, 113, 112, 19, 115, 133, 117, 111, 128, 114, 118, 102, 102, 97, 125, 120, 113, 109, 120, 109, 113, 119, 116, 113, 120, 117, 111, 120, 122, 121, 114, 129, 105, 110, 126, 119, 122, 115, 120, 121, 107, 116, 113, 119, 125, 110, 112, 116, 118, 117, 123, 112, 113, 115, 119, 115, 91, 94, 110, 112, 111, 127, 118, 119, 120, 118, 112, 119, 113, 127, 113, 117, 100, 106, 113, 115, 110, 113, 114, 117, 117, 121, 122, 116, 108, 111, 111, 113, 142, 117, 106, 105, 112, 115, 117, 114, 110, 105, 119, 117, 108, 125, 99, 115, 116, 98, 115, 110, 118, 119, 118, 120, 122, 114, 113, 116, 116, 110, 101, 118, 106, 114, 111, 114, 114, 110, 118, 120, 107, 111, 118, 124, 114, 115, 111, 117, 108, 109, 116, 113, 116, 121, 108, 118, 113, 121, 124, 112, 117, 118, 111, 113, 107, 120, 107, 113, 106, 119, 116, 111, 118, 114, 118, 116, 122, 114, 115, 114, 117, 116, 121, 107, 121, 121, 113, 111, 114, 123, 113, 119, 104, 112, 110, 102, 113, 114, 119, 110, 114, 115, 118, 122, 124, 112, 113, 113, 114, 115, 109, 116, 119, 118, 116, 116, 104, 134, 119, 108, 107, 119, 110, 111, 117, 110, 114, 114, 115, 120, 118, 110, 120, 110, 104, 118, 108, 119, 110, 114, 114, 115, 119, 120, 110, 112, 111, 114, 118, 116, 118, 133, 113, 117, 113, 118, 120, 126, 120, 142, 124, 112, 122, 112, 123, 111, 117, 118, 114, 107, 118, 110, 116, 119, 122, 118, 118, 114, 115, 105, 118, 126, 105, 119, 117, 114, 117, 123, 119, 115, 108, 116, 119, 122, 117, 110, 114, 139, 120, 117, 111, 113, 113, 109, 125, 123, 119, 120, 110, 119, 120, 116, 117, 110, 116, 112, 114, 111, 128, 113, 119, 111, 122, 112, 116, 103, 112, 120, 119, 109, 116, 119, 120, 111, 116, 110, 114, 108, 117, 109, 108, 128, 120, 123, 120, 114, 116, 106, 112, 110, 120, 107, 110, 114, 115, 120, 111, 116, 112, 100, 109, 115, 116, 128, 123, 126, 122, 114, 110, 114, 117, 119, 109, 103, 107, 113, 116, 116, 120, 108, 115, 124, 122, 108, 113, 111, 113, 111, 110, 106, 118, 124, 109, 117, 115, 123, 119, 106, 116, 119, 103, 128, 117, 120, 117, 116, 120, 119, 112, 122, 110, 114, 120, 126, 118, 112, 111, 128, 113, 128, 121, 134, 119, 113, 111, 118, 109, 119, 120, 114, 117, 123, 103, 114, 122, 118, 112, 121, 116, 115, 116, 114, 112, 128, 115, 108, 121, 99, 119, 111, 119, 107, 116, 120, 118, 114, 116, 124, 108, 115, 114, 121, 118, 127, 121, 115, 120, 120, 112, 113, 113, 107, 125, 113, 116, 122, 126, 107, 113, 116, 115, 117, 113, 113, 143, 119, 119, 109, 115, 109, 116, 121, 108, 120, 119, 111, 119, 113, 119, 122, 142, 117, 115, 102, 114, 116, 106, 111, 118, 118, 110, 112, 120, 106, 122, 109, 116, 107, 118, 118, 111, 117, 118, 105, 117, 114, 112, 85, 125, 142, 114, 115, 117, 115, 119, 115, 126, 113, 123, 119, 122, 114, 119, 113, 110, 118, 115, 118, 121, 111, 104, 114, 111, 120, 110, 93, 119, 113, 107, 114, 120, 104, 109, 113, 111, 119, 119, 125, 111, 115, 113, 119, 106, 116, 114, 109, 110, 113, 115, 107, 111, 125, 117, 115, 115, 101, 112, 113, 113, 118, 109, 116, 108, 120, 115, 115, 130, 113, 114, 118, 125, 111, 128, 119, 114, 123, 119, 117, 115, 118, 115, 109, 105, 111, 128, 107, 117, 115, 116, 117, 103, 127, 120, 103, 111, 116, 118, 121, 104, 116, 122, 100, 112, 124, 109, 118, 113, 115, 120, 112, 123, 123, 110, 117, 118, 116, 115, 116, 116, 116, 115, 126, 113, 106, 115, 117, 131, 124, 115, 126, 119, 117, 129, 107, 116, 121, 108, 107, 119, 112, 112, 114, 122, 121, 112, 131, 111, 116, 113, 123, 111, 124, 112, 122, 109, 110, 114, 112, 117, 121, 113, 110, 116, 110, 112, 110, 112, 110, 108, 112, 120, 100, 114, 109, 121, 109, 109, 114, 116, 111, 104, 111, 121, 119, 110, 122, 115, 122, 115, 124, 115, 116, 117, 123, 118, 127, 113, 108, 113, 118, 114, 116, 118, 113, 118, 115, 119, 116, 120, 124, 118, 109, 112, 108, 107, 117, 123, 119, 118, 114, 116, 110, 112, 125, 119, 114, 111, 109, 121, 112, 122, 119, 118, 114, 115, 118, 119, 120, 123, 123, 116, 118, 115, 109, 117, 109, 112, 112, 110, 114, 110, 107, 113, 115, 107, 113, 110, 116, 117, 111, 115, 117, 138, 115, 117, 119, 127, 107, 119, 115, 119, 102, 117, 104, 116, 118, 117, 119, 117, 112, 105, 113, 118, 121, 103, 117, 112, 99, 114, 97, 115, 117, 114, 113, 115, 120, 108, 114, 102, 115, 99, 110, 122, 117, 123, 127, 109, 109, 122, 115, 117, 115, 112, 99, 114, 113, 108, 130, 113, 118, 103, 112, 106, 122, 104, 130, 123, 112, 122, 111, 116, 121, 112, 114, 116, 107, 111, 112, 107, 116, 119, 115, 118, 114, 111, 115, 109, 101, 116, 124, 122, 111, 109, 112, 112, 107, 117, 121, 104, 138, 122, 118, 117, 112, 109, 110, 118, 119, 109, 102, 119, 104, 116, 109, 117, 99, 121, 109, 117, 109, 119, 108, 120, 113, 113, 115, 122, 114, 115, 128, 121, 118, 115, 116, 114, 109, 116, 114, 111, 108, 121, 120, 115, 109, 107, 112, 121, 123, 116, 110, 109, 112, 121, 116, 125, 117, 127, 106, 116, 105, 111, 119, 122, 122, 140, 121, 116, 112, 110, 120, 122, 128, 113, 127, 104, 119, 112, 131, 130, 120, 113, 116, 123, 112, 119, 114, 113, 108, 123, 111, 100, 109, 114, 124, 116, 113, 115, 127, 112, 120, 115, 107, 105, 114, 125, 120, 117, 125, 122, 120, 120, 120, 99, 129, 121, 110, 111, 104, 116, 121, 110, 99, 115, 115, 137, 120, 110, 117, 112, 125, 131, 138, 125, 111, 115, 124, 127, 114, 105, 122, 119, 118, 102, 122, 118, 113, 107, 129, 118, 127, 121, 119, 130, 122, 115, 115, 112, 112, 125, 124, 109, 120, 130, 118, 123, 118, 106, 120, 120, 105, 122, 116, 132, 130, 117, 113, 113, 124, 114, 111, 111, 116, 111, 122, 133, 104, 118, 121, 122, 110, 108, 121, 118, 131, 116, 122, 126, 124, 115, 114, 117, 105, 123, 118, 124, 109, 106, 118, 113, 115, 107, 127, 126, 114, 123, 131, 117, 109, 107, 110, 104, 119, 116, 121, 115, 106, 118, 120, 115, 132, 120, 103, 108, 108, 115, 110, 120, 123, 120, 124, 110, 115, 111, 114, 104, 106, 113, 121, 110, 120, 135, 116, 128, 119, 115, 116, 104, 118, 116, 109, 126, 105, 130, 119, 124, 115, 111, 92, 116, 108, 116, 114, 101, 122, 119, 103, 106, 97, 109, 110, 99, 118, 121, 132, 129, 118, 115, 122, 114, 116, 116, 106, 118, 107, 129, 124, 107, 120, 119, 114, 117, 111, 113, 121, 120, 122, 107, 114, 121, 107, 117, 115, 102, 125, 120, 129, 107, 113, 106, 120, 117, 125, 116, 113, 110, 115, 110, 130, 115, 106, 99, 117, 101, 124, 121, 113, 107, 107, 110, 123, 104, 108, 119, 109, 120, 120, 114, 115, 103, 104, 101, 114, 122, 120, 119, 131, 107, 113, 107, 119, 109, 127, 109, 109, 106, 118, 120, 115, 103, 121, 119, 113, 123, 116, 119, 116, 110, 117, 115, 122, 118, 127, 136, 112, 122, 118, 126, 119, 119, 109, 120, 109, 111, 120, 121, 123, 123, 119, 108, 125, 115, 101, 123, 117, 122, 121, 125, 121, 119, 110, 111, 121, 116, 108, 130, 129, 107, 111, 118, 118, 128, 109, 123, 121, 112, 109, 117, 126, 121, 117, 135, 118, 107, 112, 110, 113, 107, 110, 110, 115, 118, 105, 117, 107, 127, 107, 115, 116, 133, 101, 110, 121, 122, 117, 114, 114, 109, 102, 127, 122, 110, 123, 103, 106, 96, 121, 99, 133, 116, 102, 101, 121, 117, 113, 117, 118, 113, 111, 117, 129, 126, 120, 134, 114, 119, 107, 106, 115, 114, 114, 111, 120, 120, 109, 98, 113, 107, 109, 115, 116, 113, 111, 107, 115, 109, 112, 113, 118, 105, 117, 111, 110, 123, 109, 126, 91, 123, 122, 118, 105, 122, 109, 109, 121, 111, 121, 109, 119, 128, 116, 129, 121, 116, 125, 117, 106, 122, 104, 112, 111, 116, 141, 116, 122, 116, 126, 123, 118, 119, 119, 112, 112, 124, 119, 111, 107, 105, 116, 120, 106, 112, 119, 129, 113, 122, 103, 112, 109, 122, 111, 123, 101, 111, 104, 113, 112, 109, 120, 109, 105, 109, 113, 116, 123, 125, 113, 112, 106, 140, 112, 113, 110, 102, 131, 118, 112, 117, 112, 113, 120, 125, 116, 117, 113, 111, 118, 104, 131, 103, 117, 113, 101, 120, 119, 124, 115, 117, 102, 116, 127, 115, 119, 101, 117, 123, 120, 123, 112, 104, 108, 101, 115, 112, 120, 120, 109, 112, 112, 114, 111, 124, 118, 109, 121, 92, 117, 117, 111, 105, 125, 114, 114, 113, 102, 114, 114, 111, 118, 144, 125, 127, 118, 118, 119, 109, 114, 133, 108, 116, 109, 115, 119, 113, 113, 108, 108, 121, 127, 120, 120, 122, 106, 111, 99, 110, 113, 118, 105, 117, 106, 115, 136, 127, 113, 130, 120, 127, 104, 120, 114, 125, 103, 120, 127, 121, 124, 111, 113, 103, 104, 119, 122, 117, 107, 102, 117, 106, 111, 105, 107, 126, 120, 114, 130, 110, 109, 104, 116, 118, 99, 113, 122, 83, 110, 98, 117, 112, 110, 112, 118, 108, 123, 117, 118, 123, 113, 117, 104, 111, 97, 109, 90, 119, 123, 101, 103, 115, 133, 135, 112, 135, 133, 115, 125, 106, 114, 108, 113, 109, 101, 106, 109, 131, 93, 114, 149, 123, 140, 101, 108, 121, 102, 111, 104, 118, 116, 108, 113, 107, 115, 119, 117, 124, 109, 122, 111, 99, 113, 113, 114, 109, 101, 101, 120, 115, 110, 119, 105, 119, 112, 121, 108, 120, 118, 114, 116, 114, 115, 119, 117, 100, 120, 105, 117, 125, 112, 110, 122, 111, 119, 104, 105, 126, 106, 116, 105, 110, 121, 119, 123, 97, 125, 95, 102, 114, 104, 116, 116, 119, 109, 107, 123, 116, 117, 113, 117, 140, 116, 116, 110, 120, 113, 109, 119, 114, 113, 125, 124, 107, 129, 121, 107, 99, 109, 129, 111, 123, 119, 125, 122, 114, 124, 116, 107, 93, 129, 120, 122, 100, 114, 120, 117, 115, 104, 118, 122, 115, 113, 116, 122, 118, 110, 123, 114, 105, 123, 125, 120, 118, 100, 100, 121, 121, 113, 112, 118, 112, 116, 119, 98, 105, 139, 126, 108, 103, 122, 117, 110, 125, 91, 119, 131, 111, 118, 133, 117, 117, 120, 108, 130, 111, 110, 132, 113, 118, 123, 116, 114, 112, 108, 116, 103, 113, 111, 104, 105, 128, 107, 115, 123, 107, 118, 112, 114, 115, 123, 111, 122, 114, 113, 121, 113, 107, 110, 113, 113, 103, 122, 114, 140, 107, 122, 109, 113, 126, 111, 112, 119, 113, 98, 112, 107, 112, 123, 119, 122, 121, 107, 117, 113, 115, 111, 116, 105, 118, 113, 136, 121, 108, 115, 113, 122, 124, 114, 120, 113, 111, 112, 118, 99, 116, 128, 116, 118, 109, 113, 106, 109, 114, 116, 124, 98, 119, 117, 120, 118, 116, 115, 119, 99, 118, 106, 121, 126, 119, 104, 121, 116, 110, 113, 110, 125, 109, 96, 123, 111, 119, 100, 116, 120, 117, 109, 112, 114, 93, 116, 119, 104, 106, 96, 115, 115, 117, 124, 116, 108, 121, 123, 116, 114, 101, 111, 120, 106, 115, 104, 111, 120, 103, 117, 111, 127, 107, 119, 127, 129, 101, 119, 109, 96, 123, 118, 126, 110, 103, 106, 93, 115, 113, 111, 119, 119, 113, 129, 119, 117, 100, 131, 107, 123, 118, 121, 109, 122, 118, 109, 119, 113, 117, 114, 120, 103, 126, 119, 120, 114, 121, 116, 115, 103, 128, 113, 113, 104, 114, 123, 115, 114, 128, 122, 117, 116, 119, 133, 103, 116, 102, 116, 119, 111, 115, 106, 113, 119, 103, 110, 119, 118, 117, 119, 109, 114, 117, 119, 117, 117, 112, 128, 113, 123, 123, 128, 122, 117, 110, 110, 117, 120, 111, 126, 123, 117, 117, 117, 90, 117, 115, 115, 114, 108, 125, 103, 108, 108, 112, 103, 118, 118, 123, 122, 114, 111, 103, 115, 124, 121, 116, 112, 107, 119, 122, 106, 115, 122, 108, 126, 112, 118, 124, 103, 115, 120, 115, 107, 115, 101, 130, 95, 123, 112, 113, 112, 112, 109, 106, 112, 106, 110, 109, 103, 107, 115, 114, 120, 115, 118, 114, 111, 116, 126, 119, 113, 115, 130, 119, 107, 107, 119, 112, 123, 129, 119, 116, 116, 118, 107, 122, 111, 120, 112, 126, 112, 104, 115, 114, 121, 117, 104, 108, 120, 118, 119, 121, 112, 104, 115, 114, 117, 107, 110, 119, 117, 119, 123, 127, 115, 107, 95, 123, 107, 125, 117, 109, 115, 122, 127, 133, 123, 106, 123, 118, 115, 122, 119, 113, 109, 138, 117, 105, 121, 117, 119, 119, 101, 107, 113, 124, 123, 107, 120, 111, 114, 120, 120, 122, 111, 119, 105, 105, 115, 120, 133, 110, 116, 127, 121, 120, 117, 123, 113, 116, 119, 118, 118, 116, 113, 113, 120, 111, 115, 108, 112, 126, 121, 117, 112, 115, 111, 130, 119, 107, 114, 128, 107, 115, 116, 135, 115, 118, 121, 127, 128, 110, 114, 115, 124, 107, 123, 107, 126, 119, 116, 107, 109, 108, 115, 133, 127, 117, 110, 107, 117, 105, 112, 120, 115, 117, 126, 103, 121, 116, 115, 110, 122, 99, 123, 111, 123, 110, 124, 118, 121, 127, 116, 115, 125, 116, 99, 110, 115, 112, 116, 113, 115, 108, 120, 121, 117, 108, 114, 102, 124, 109, 116, 117, 112, 116, 110, 116, 112, 113, 110, 124, 122, 111, 114, 119, 124, 122, 113, 110, 112, 117, 122, 123, 111, 112, 114, 99, 128, 116, 110, 118, 115, 108, 119, 116, 104, 112, 117, 124, 115, 126, 105, 116, 125, 117, 126, 116, 112, 114, 125, 119, 120, 110, 114, 114, 115, 112, 126, 111, 116, 112, 115, 109, 111, 121, 121, 111, 113, 110, 116, 125, 115, 115, 103, 116, 112, 121, 107, 112, 114, 114, 114, 113, 111, 113, 107, 114, 116, 116, 114, 123, 119, 107, 110, 111, 104, 103, 117, 130, 118, 114, 117, 111, 116, 115, 123, 116, 115, 111, 116, 116, 110, 117, 115, 114, 128, 119, 118, 114, 126, 119, 122, 113, 117, 105, 112, 116, 118, 108, 105, 119, 118, 109, 112, 114, 119, 110, 124, 110, 108, 108, 120, 112, 109, 124, 119, 109, 119, 115, 110, 118, 117, 119, 129, 116, 122, 113, 116, 118, 100, 118, 112, 114, 126, 114, 114, 115, 114, 130, 98, 105, 114, 115, 121, 112, 116, 120, 115, 108, 116, 115, 128, 109, 107, 114, 97, 124, 118, 115, 118, 107, 107, 115, 120, 113, 114, 117, 115, 116, 116, 120, 115, 117, 108, 107, 117, 111, 119, 117, 116, 117, 111, 108, 119, 111, 126, 118, 115, 110, 119, 108, 126, 115, 116, 128, 122, 114, 112, 121, 110, 105, 116, 114, 115, 102, 109, 113, 107, 121, 115, 108, 110, 117, 116, 112, 112, 114, 118, 117, 115, 105, 116, 130, 118, 119, 107, 115, 115, 109, 106, 116, 118, 111, 107, 111, 120, 107, 118, 117, 111, 98, 120, 128, 111, 111, 112, 115, 113, 128, 119, 115, 112, 115, 111, 119, 114, 117, 138, 128, 112, 110, 120, 105, 121, 111, 91, 116, 108, 107, 111, 107, 113, 80, 113, 121, 112, 110, 118, 116, 116, 109, 113, 112, 116, 126, 126, 116, 112, 115, 106, 123, 122, 118, 109, 116, 120, 111, 119, 119, 120, 109, 109, 125, 110, 124, 113, 121, 104, 113, 119, 122, 112, 107, 117, 106, 115, 117, 111, 106, 105, 121, 107, 111, 119, 120, 123, 117, 105, 115, 110, 113, 122, 106, 117, 118, 110, 112, 117, 119, 116, 116, 108, 117, 114, 118, 111, 126, 105, 121, 115, 115, 122, 109, 119, 107, 111, 125, 116, 109, 116, 105, 115, 113, 115, 103, 107, 116, 111, 118, 114, 109, 114, 115, 116, 113, 112, 110, 122, 120, 114, 108, 114, 113, 116, 117, 111, 111, 113, 113, 121, 108, 129, 114, 113, 115, 112, 109, 113, 114, 109, 122, 117, 112, 104, 112, 110, 118, 112, 113, 116, 122, 110, 117, 113, 114, 115, 120, 111, 105, 109, 114, 116, 112, 125, 108, 110, 114, 113, 116, 106, 111, 115, 110, 120, 124, 111, 115, 118, 116, 121, 107, 96, 116, 117, 106, 116, 111, 108, 112, 118, 115, 128, 108, 112, 111, 123, 113, 117, 124, 122, 114, 118, 115, 124, 114, 113, 122, 110, 113, 115, 114, 125, 117, 111, 108, 129, 118, 111, 108, 114, 114, 109, 126, 119, 119, 112, 136, 107, 114, 116, 111, 107, 105, 125, 117, 138, 108, 111, 113, 115, 111, 112, 109, 117, 116, 116, 113, 110, 120, 113, 110, 118, 126, 123, 107, 98, 121, 116, 121, 116, 113, 121, 120, 108, 109, 114, 131, 113, 129, 125, 117, 110, 119, 108, 113, 116, 106, 122, 113, 112, 116, 111, 106, 118, 112, 107, 119, 108, 112, 106, 129, 112, 112, 121, 113, 118, 127, 111, 113, 117, 116, 111, 113, 116, 115, 113, 106, 111, 114, 122, 121, 107, 112, 114, 113, 116, 105, 115, 115, 118, 114, 122, 116, 127, 118, 114, 115, 106, 103, 123, 111, 109, 110, 126, 104, 108, 120, 114, 122, 110, 125, 115, 119, 117, 113, 110, 103, 114, 108, 118, 115, 120, 112, 111, 115, 117, 103, 116, 130, 119, 112, 104, 113, 121, 114, 114, 121, 116, 115, 111, 105, 120, 102, 117, 114, 114, 127, 114, 115, 122, 111, 105, 124, 111, 122, 110, 121, 102, 134, 116, 124, 120, 116, 107, 117, 118, 110, 113, 106, 119, 111, 117, 105, 123, 114, 78, 114, 124, 132, 101, 120, 117, 111, 107, 122, 114, 112, 103, 122, 108, 120, 119, 125, 115, 110, 111, 118, 112, 116, 113, 110, 115, 114, 113, 110, 121, 111, 117, 119, 109, 105, 106, 111, 108, 110, 116, 113, 121, 111, 125, 115, 132, 119, 112, 115, 110, 109, 112, 118, 85, 106, 113, 111, 112, 123, 113, 115, 113, 124, 106, 111, 120, 120, 110, 123, 118, 119, 116, 99, 122, 113, 111, 125, 111, 129, 120, 108, 104, 116, 119, 115, 110, 120, 118, 113, 102, 117, 120, 123, 117, 112, 112, 126, 108, 116, 113, 124, 108, 107, 116, 119, 110, 121, 107, 112, 120, 106, 113, 123, 119, 120, 115, 118, 103, 114, 127, 114, 104, 119, 113, 116, 111, 118, 119, 115, 121, 119, 116, 114, 109, 119, 130, 118, 118, 119, 107, 110, 111, 110, 108, 106, 117, 111, 106, 119, 116, 107, 113, 105, 102, 115, 98, 110, 108, 130, 119, 116, 109, 102, 108, 102, 98, 117, 116, 111, 158, 108, 113, 115, 109, 112, 113, 113, 123, 112, 108, 118, 123, 113, 118, 114, 115, 109, 118, 113, 118, 122, 116, 136, 108, 116, 117, 118, 112, 114, 105, 117, 110, 128, 113, 116, 117, 110, 127, 118, 113, 111, 112, 116, 103, 105, 107, 109, 114, 112, 110, 113, 114, 120, 114, 110, 111, 113, 135, 108, 114, 107, 125, 118, 114, 95, 115, 112, 113, 109, 114, 118, 122, 120, 118, 108, 120, 123, 118, 106, 119, 114, 109, 110, 112, 105, 122, 121, 109, 117, 124, 115, 101, 119, 128, 96, 113, 115, 119, 106, 112, 105, 106, 121, 125, 110, 114, 117, 127, 100, 114, 108, 115, 109, 116, 114, 102, 117, 108, 105, 117, 124, 102, 116, 124, 109, 121, 108, 124, 116, 108, 118, 107, 124, 117, 114, 117, 117, 103, 111, 127, 123, 120, 122, 121, 109, 114, 112, 102, 116, 111, 123, 122, 118, 122, 121, 114, 112, 107, 109, 117, 116, 99, 110, 114, 103, 120, 113, 103, 107, 131, 120, 138, 127, 104, 113, 103, 116, 122, 103, 111, 110, 137, 111, 112, 116, 118, 125, 119, 115, 103, 110, 113, 109, 119, 130, 116, 100, 116, 104, 123, 110, 109, 120, 115, 136, 108, 117, 104, 110, 118, 108, 120, 112, 119, 124, 121, 119, 123, 135, 119, 117, 117, 123, 116, 125, 116, 106, 114, 111, 104, 114, 118, 99, 122, 117, 109, 126, 126, 112, 121, 109, 127, 126, 121, 111, 117, 122, 111, 124, 126, 118, 119, 114, 124, 117, 118, 114, 124, 135, 120, 119, 113, 109, 118, 111, 122, 116, 102, 116, 113, 116, 100, 111, 126, 120, 119, 99, 122, 104, 111, 114, 106, 117, 111, 118, 112, 105, 124, 112, 102, 119, 116, 113, 119, 120, 119, 110, 108, 116, 114, 104, 118, 101, 109, 123, 99, 121, 117, 109, 116, 119, 120, 135, 117, 117, 126, 112, 127, 114, 128, 117, 106, 112, 113, 106, 107, 121, 126, 123, 121, 127, 112, 114, 99, 103, 116, 119, 102, 116, 107, 117, 110, 108, 109, 133, 112, 123, 121, 114, 120, 117, 121, 116, 116, 120, 119, 121, 121, 117, 122, 113, 126, 125, 114, 109, 106, 115, 110, 114, 116, 94, 110, 120, 125, 104, 122, 106, 98, 115, 107, 117, 116, 102, 128, 114, 100, 119, 118, 140, 112, 126, 119, 115, 120, 117, 109, 118, 105, 112, 104, 123, 118, 112, 116, 121, 112, 112, 116, 110, 115, 110, 116, 117, 136, 111, 148, 111, 130, 119, 106, 95, 98, 101, 114, 111, 114, 112, 106, 110, 99, 121, 121, 119, 103, 111, 115, 116, 121, 107, 109, 115, 110, 110, 121, 98, 118, 114, 119, 134, 115, 104, 107, 112, 120, 119, 115, 115, 106, 114, 113, 121, 123, 103, 118, 123, 117, 105, 128, 110, 123, 123, 125, 107, 107, 111, 107, 122, 95, 106, 114, 110, 107, 117, 122, 107, 112, 110, 115, 112, 113, 112, 126, 111, 111, 114, 118, 110, 119, 104, 141, 129, 108, 130, 103, 112, 128, 121, 113, 114, 117, 106, 121, 113, 114, 124, 119, 106, 115, 119, 121, 110, 129, 109, 120, 108, 95, 103, 110, 126, 109, 106, 118, 130, 116, 116, 118, 111, 107, 97, 102, 120, 118, 115, 116, 112, 113, 110, 111, 112, 120, 105, 111, 128, 113, 107, 111, 102, 120, 115, 119, 119, 105, 131, 116, 118, 106, 110, 116, 113, 123, 121, 107, 114, 103, 110, 109, 107, 138, 118, 104, 109, 112, 110, 125, 129, 113, 118, 123, 125, 124, 123, 113, 111, 120, 113, 115, 114, 97, 114, 108, 114, 128, 97, 115, 116, 113, 115, 100, 100, 116, 120, 128, 116, 115, 112, 128, 110, 111, 118, 123, 107, 102, 111, 114, 118, 126, 115, 109, 116, 117, 112, 110, 101, 116, 119, 109, 107, 111, 105, 105, 99, 122, 101, 107, 121, 116, 116, 116, 112, 116, 102, 125, 108, 117, 117, 116, 120, 120, 102, 122, 104, 118, 116, 141, 114, 122, 113, 121, 124, 119, 96, 117, 114, 116, 117, 110, 99, 113, 110, 110, 109, 119, 124, 117, 114, 111, 116, 95, 119, 121, 132, 120, 113, 109, 123, 124, 106, 129, 107, 115, 105, 115, 121, 109, 116, 110, 125, 131, 107, 111, 114, 109, 112, 125, 122, 118, 119, 120, 100, 101, 116, 118, 133, 127, 123, 111, 121, 106, 127, 108, 112, 122, 106, 118, 112, 113, 115, 116, 103, 112, 118, 110, 115, 116, 116, 119, 100, 114, 113, 105, 120, 111, 113, 98, 115, 106, 125, 98, 106, 117, 127, 92, 121, 109, 117, 119, 104, 113, 120, 128, 123, 105, 120, 115, 118, 119, 104, 128, 101, 119, 116, 118, 119, 123, 109, 124, 120, 118, 99, 126, 112, 118, 125, 116, 103, 104, 115, 106, 115, 97, 109, 119, 90, 101, 111, 115, 137, 112, 126, 115, 132, 114, 112, 104, 111, 116, 126, 109, 125, 123, 118, 106, 102, 113, 116, 111, 116, 111, 122, 114, 110, 113, 113, 109, 119, 107, 108, 126, 123, 97, 109, 115, 124, 120, 108, 103, 117, 108, 104, 121, 113, 116, 121, 121, 121, 115, 114, 131, 117, 106, 114, 114, 122, 106, 132, 117, 130, 105, 102, 95, 107, 125, 115, 111, 111, 123, 118, 113, 126, 117, 126, 118, 124, 114, 128, 106, 90, 113, 112, 108, 127, 96, 111, 116, 101, 128, 122, 114, 109, 113, 116, 122, 109, 112, 114, 116, 112, 109, 109, 124, 102, 118, 107, 112, 115, 117, 117, 116, 127, 110, 117, 112, 121, 119, 107, 114, 117, 112, 127, 110, 120, 111, 112, 116, 110, 141, 110, 108, 114, 113, 118, 129, 107, 117, 123, 120, 114, 124, 127, 112, 110, 115, 115, 123, 105, 117, 107, 113, 109, 107, 110, 131, 111, 121, 122, 114, 121, 120, 119, 100, 99, 108, 109, 121, 125, 107, 118, 100, 102, 123, 103, 96, 119, 118, 114, 115, 120, 106, 115, 115, 122, 96, 106, 108, 115, 120, 109, 110, 123, 127, 117, 123, 118, 126, 113, 99, 104, 124, 108, 123, 111, 104, 103, 116, 100, 117, 111, 104, 118, 111, 105, 121, 109, 116, 135, 105, 114, 107, 120, 105, 112, 137, 115, 115, 124, 133, 112, 93, 111, 111, 114, 112, 116, 112, 106, 123, 125, 116, 139, 133, 118, 115, 127, 121, 117, 125, 121, 113, 103, 115, 117, 113, 106, 111, 113, 111, 104, 123, 118, 122, 110, 115, 101, 100, 111, 110, 112, 115, 117, 124, 114, 113, 117, 112, 126, 123, 102, 115, 113, 113, 113, 108, 124, 123, 121, 128, 113, 118, 121, 115, 108, 115, 101, 118, 108, 102, 120, 112, 112, 130, 117, 113, 124, 115, 117, 123, 112, 114, 125, 113, 119, 119, 123, 120, 119, 108, 101, 126, 113, 130, 99, 109, 117, 126, 106, 124, 121, 113, 111, 118, 115, 115, 106, 117, 125, 119, 103, 124, 109, 113, 107, 118, 114, 112, 121, 115, 125, 107, 120, 118, 111, 104, 111, 110, 129, 113, 116, 114, 116, 114, 111, 109, 114, 119, 103, 119, 120, 117, 107, 122, 122, 117, 118, 110, 121, 110, 115, 123, 114, 114, 116, 109, 117, 125, 114, 115, 111, 113, 108, 119, 111, 127, 112, 119, 117, 111, 114, 114, 120, 112, 104, 118, 112, 123, 121, 120, 123, 107, 113, 120, 119, 111, 120, 107, 108, 116, 115, 114, 131, 114, 116, 121, 113, 113, 120, 118, 101, 118, 119, 112, 117, 113, 115, 117, 104, 118, 113, 118, 112, 127, 117, 120, 118, 107, 115, 108, 118, 119, 121, 103, 110, 113, 114, 118, 109, 112, 117, 120, 124, 119, 122, 117, 121, 117, 124, 106, 124, 117, 115, 115, 108, 131, 115, 116, 113, 121, 105, 122, 123, 100, 121, 110, 119, 112, 105, 104, 104, 116, 119, 108, 111, 114, 121, 121, 132, 107, 110, 102, 102, 112, 112, 122, 112, 107, 108, 116, 118, 118, 106, 119, 117, 111, 118, 121, 114, 122, 114, 119, 123, 118, 117, 113, 105, 121, 112, 116, 113, 112, 112, 119, 115, 112, 109, 121, 110, 120, 112, 119, 112, 112, 106, 114, 112, 113, 108, 114, 105, 118, 98, 114, 109, 109, 116, 129, 111, 115, 109, 112, 107, 114, 113, 121, 117, 114, 111, 129, 111, 115, 114, 114, 116, 113, 119, 115, 111, 111, 113, 122, 115, 108, 114, 113, 114, 121, 114, 117, 126, 119, 112, 111, 104, 117, 120, 107, 115, 119, 115, 122, 104, 122, 113, 123, 119, 118, 116, 110, 110, 106, 110, 113, 116, 120, 124, 117, 118, 115, 128, 112, 113, 110, 103, 118, 115, 136, 129, 108, 115, 115, 104, 121, 111, 107, 110, 111, 119, 111, 125, 121, 119, 117, 116, 112, 124, 118, 97, 133, 105, 113, 116, 110, 116, 115, 115, 126, 116, 109, 109, 110, 115, 131, 115, 129, 120, 115, 119, 107, 120, 119, 118, 109, 107, 109, 107, 121, 108, 121, 117, 117, 107, 112, 114, 106, 110, 116, 111, 114, 120, 109, 115, 106, 118, 117, 126, 113, 118, 124, 119, 106, 112, 117, 114, 120, 120, 107, 114, 110, 111, 105, 113, 109, 122, 112, 131, 110, 119, 113, 110, 120, 110, 107, 105, 114, 122, 111, 115, 117, 109, 119, 114, 114, 111, 104, 120, 101, 118, 108, 128, 120, 126, 115, 117, 118, 106, 115, 122, 113, 113, 111, 117, 113, 119, 115, 117, 111, 114, 113, 116, 122, 112, 106, 132, 113, 134, 113, 115, 119, 120, 111, 117, 111, 104, 128, 117, 112, 114, 122, 123, 113, 127, 112, 110, 110, 112, 122, 121, 102, 115, 128, 114, 120, 114, 118, 109, 111, 102, 103, 109, 105, 116, 134, 111, 127, 104, 120, 117, 117, 118, 119, 110, 117, 110, 114, 120, 106, 115, 110, 113, 119, 111, 115, 107, 104, 109, 110, 116, 104, 107, 117, 106, 116, 107, 121, 120, 122, 118, 112, 100, 122, 112, 111, 113, 113, 114, 116, 109, 114, 116, 116, 113, 148, 117, 117, 107, 116, 115, 117, 116, 123, 124, 112, 110, 118, 109, 114, 107, 116, 114, 120, 124, 108, 120, 112, 121, 107, 117, 111, 111, 115, 112, 109, 126, 116, 115, 104, 112, 117, 94, 119, 125, 117, 123, 129, 133, 117, 114, 115, 124, 107, 107, 113, 114, 122, 116, 119, 108, 119, 124, 124, 119, 129, 117, 118, 119, 112, 110, 119, 103, 114, 123, 125, 108, 106, 105, 121, 109, 115, 114, 128, 99, 115, 115, 113, 119, 122, 117, 106, 109, 125, 115, 111, 127, 121, 128, 117, 126, 113, 108, 106, 119, 111, 110, 122, 122, 116, 118, 106, 105, 112, 106, 115, 117, 105, 118, 123, 131, 126, 111, 107, 120, 114, 116, 111, 126, 114, 113, 112, 109, 123, 118, 111, 118, 113, 111, 107, 118, 117, 130, 113, 133, 114, 119, 112, 109, 112, 119, 112, 123, 120, 115, 114, 121, 119, 123, 117, 128, 108, 109, 120, 121, 115, 110, 124, 108, 116, 110, 113, 117, 128, 120, 114, 105, 112, 121, 107, 111, 116, 122, 109, 116, 114, 128, 105, 116, 104, 114, 115, 119, 117, 117, 107, 118, 117, 118, 127, 119, 118, 111, 115, 129, 119, 101, 118, 111, 121, 121, 109, 115, 126, 106, 115, 122, 128, 112, 110, 113, 114, 114, 116, 123, 118, 116, 122, 120, 114, 116, 104, 113, 109, 116, 127, 121, 137, 113, 118, 119, 102, 122, 105, 114, 129, 117, 125, 125, 121, 110, 102, 134, 112, 114, 124, 101, 115, 119, 112, 119, 116, 114, 116, 115, 118, 107, 89, 123, 115, 127, 116, 114, 117, 117, 115, 113, 116, 114, 109, 114, 114, 117, 117, 119, 119, 122, 117, 113, 127, 115, 121, 114, 121, 113, 118, 137, 112, 113, 114, 111, 130, 114, 116, 107, 100, 111, 112, 118, 113, 120, 105, 111, 106, 122, 113, 106, 117, 127, 111, 118, 119, 111, 101, 120, 110, 109, 110, 126, 103, 103, 130, 118, 110, 120, 126, 121, 106, 114, 114, 111, 111, 116, 107, 119, 123, 125, 108, 100, 111, 117, 124, 116, 114, 112, 115, 108, 114, 114, 94, 109, 124, 114, 104, 106, 116, 115, 106, 123, 123, 107, 116, 120, 131, 113, 128, 117, 120, 107, 116, 104, 104, 107, 116, 116, 109, 114, 115, 119, 124, 119, 108, 119, 122, 122, 109, 115, 110, 115, 113, 113, 116, 116, 110, 110, 116, 116, 120, 124, 110, 121, 108, 106, 105, 110, 121, 112, 113, 115, 115, 121, 117, 113, 113, 119, 124, 101, 118, 106, 117, 125, 118, 117, 109, 112, 116, 108, 132, 116, 115, 119, 114, 107, 126, 106, 122, 105, 131, 121, 121, 116, 117, 114, 111, 115, 104, 126, 121, 107, 109, 115, 109, 118, 130, 116, 116, 111, 133, 109, 114, 114, 120, 110, 123, 126, 110, 106, 114, 115, 118, 110, 121, 116, 103, 120, 118, 108, 125, 118, 110, 122, 123, 115, 122, 123, 118, 116, 119, 121, 112, 115, 105, 111, 119, 123, 110, 117, 105, 108, 107, 107, 113, 108, 108, 119, 118, 127, 116, 116, 111, 112, 125, 116, 105, 110, 116, 108, 118, 117, 106, 115, 99, 114, 110, 131, 105, 115, 116, 113, 113, 128, 116, 119, 113, 109, 120, 123, 118, 108, 107, 113, 126, 118, 114, 112, 107, 101, 100, 102, 125, 119, 97, 89, 113, 115, 120, 116, 108, 133, 126, 105, 112, 113, 113, 111, 120, 127, 115, 128, 109, 113, 113, 111, 111, 113, 135, 131, 108, 104, 113, 119, 111, 118, 123, 112, 114, 110, 118, 116, 121, 131, 118, 118, 118, 121, 113, 113, 120, 117, 107, 113, 119, 117, 110, 117, 121, 125, 107, 113, 125, 120, 118, 114, 111, 105, 130, 114, 109, 101, 116, 115, 114, 126, 112, 116, 118, 107, 104, 120, 123, 122, 113, 130, 124, 119, 115, 111, 111, 133, 120, 124, 116, 114, 98, 118, 114, 108, 108, 126, 108, 120, 114, 118, 102, 127, 124, 98, 121, 111, 130, 110, 110, 109, 121, 113, 129, 119, 111, 128, 99, 111, 111, 115, 126, 106, 112, 114, 110, 119, 114, 121, 107, 134, 127, 110, 118, 125, 105, 109, 133, 121, 118, 126, 115, 102, 128, 103, 117, 114, 113, 116, 110, 114, 119, 111, 118, 117, 104, 106, 110, 120, 113, 121, 135, 122, 116, 141, 135, 117, 115, 109, 117, 102, 123, 123, 116, 103, 123, 113, 112, 118, 135, 117, 115, 122, 103, 118, 111, 122, 122, 119, 126, 121, 119, 104, 112, 105, 119, 119, 110, 96, 97, 137, 107, 113, 117, 136, 131, 117, 102, 118, 111, 106, 110, 105, 119, 112, 105, 126, 111, 117, 100, 109, 114, 123, 127, 128, 120, 117, 110, 104, 105, 107, 99, 136, 123, 123, 109, 101, 107, 121, 120, 124, 132, 127, 121, 105, 108, 119, 120, 113, 113, 113, 127, 106, 113, 118, 108, 127, 99, 122, 105, 135, 114, 111, 113, 113, 90, 111, 121, 114, 104, 98, 132, 112, 116, 112, 128, 116, 100, 122, 112, 129, 107, 104, 114, 115, 115, 107, 118, 125, 114, 109, 104, 104, 109, 114, 133, 116, 123, 124, 117, 133, 123, 109, 101, 111, 116, 117, 114, 120, 116, 120, 113, 107, 128, 127, 123, 109, 133, 109, 106, 104, 112, 109, 133, 119, 121, 120, 103, 93, 119, 100, 99, 113, 136, 108, 109, 116, 116, 108, 115, 120, 97, 125, 120, 116, 105, 106, 115, 110, 114, 104, 114, 135, 100, 100, 122, 125, 113, 117, 107, 130, 121, 106, 118, 109, 144, 109, 97, 120, 119, 116, 120, 112, 121, 105, 134, 110, 109, 113, 120, 96, 103, 117, 105, 122, 114, 116, 125, 123, 118, 113, 112, 120, 117, 107, 112, 104, 124, 118, 121, 122, 117, 114, 121, 104, 123, 110, 112, 103, 118, 122, 113, 115, 121, 122, 107, 106, 116, 122, 130, 121, 114, 108, 109, 115, 109, 115, 107, 122, 110, 104, 106, 115, 105, 126, 102, 115, 100, 122, 118, 93, 118, 110, 136, 118, 115, 130, 125, 113, 112, 103, 114, 111, 114, 110, 124, 113, 111, 97, 128, 122, 103, 152, 106, 113, 131, 106, 138, 106, 116, 117, 104, 105, 111, 109, 117, 114, 113, 114, 110, 116, 113, 97, 123, 119, 112, 107, 119, 117, 109, 115, 97, 118, 132, 97, 118, 116, 113, 109, 120, 119, 109, 113, 97, 118, 124, 114, 115, 118, 114, 128, 122, 118, 127, 112, 110, 115, 114, 130, 104, 112, 130, 112, 109, 118, 113, 118, 116, 120, 119, 109, 119, 119, 118, 116, 119, 122, 113, 128, 114, 123, 129, 116, 113, 114, 112, 117, 125, 110, 109, 122, 109, 116, 119, 107, 121, 117, 107, 115, 119, 123, 116, 119, 104, 117, 116, 121, 133, 109, 109, 122, 132, 114, 119, 126, 132, 101, 115, 114, 116, 122, 114, 118, 109, 122, 131, 113, 159, 124, 124, 123, 120, 118, 117, 107, 116, 127, 117, 117, 127, 115, 122, 114, 113, 118, 110, 111, 128, 108, 110, 117, 112, 112, 117, 115, 114, 114, 124, 112, 114, 118, 118, 111, 108, 99, 108, 116, 117, 118, 128, 111, 115, 111, 118, 110, 115, 113, 106, 124, 106, 103, 119, 113, 107, 110, 117, 109, 111, 109, 119, 118, 113, 128, 109, 107, 155, 118, 123, 110, 121, 120, 120, 112, 115, 119, 135, 112, 118, 113, 110, 113, 114, 113, 109, 111, 115, 113, 114, 117, 111, 121, 109, 126, 89, 114, 117, 105, 109, 108, 139, 116, 115, 115, 117, 112, 116, 115, 116, 114, 117, 130, 132, 118, 114, 124, 111, 121, 117, 101, 108, 125, 105, 115, 115, 110, 115, 112, 123, 120, 113, 106, 118, 106, 125, 106, 107, 125, 109, 122, 111, 118, 108, 108, 120, 110, 119, 128, 129, 116, 105, 134, 110, 104, 124, 125, 109, 118, 109, 122, 116, 115, 111, 118, 120, 95, 107, 112, 107, 118, 114, 113, 118, 118, 103, 124, 122, 131, 111, 114, 115, 108, 122, 134, 117, 108, 115, 125, 108, 110, 119, 113, 106, 110, 110, 114, 111, 125, 120, 116, 140, 116, 105, 117, 113, 120, 119, 126, 108, 119, 117, 128, 108, 128, 122, 169, 115, 115, 114, 111, 106, 125, 122, 106, 123, 118, 125, 116, 117, 111, 114, 87, 115, 105, 114, 117, 106, 123, 115, 115, 120, 111, 123, 108, 114, 114, 109, 117, 111, 124, 129, 104, 114, 117, 121, 96, 112, 128, 112, 117, 104, 129, 118, 117, 111, 109, 118, 122, 115, 114, 106, 123, 113, 123, 112, 119, 115, 115, 123, 114, 108, 113, 112, 110, 127, 108, 122, 115, 123, 108, 120, 124, 111, 125, 123, 119, 120, 109, 110, 117, 118, 118, 123, 120, 105, 119, 120, 126, 117, 118, 114, 120, 108, 128, 113, 121, 124, 124, 117, 118, 112, 127, 113, 122, 118, 110, 125, 125, 114, 110, 109, 106, 121, 114, 119, 111, 124, 105, 120, 119, 105, 112, 112, 105, 101, 115, 119, 115, 107, 111, 119, 108, 109, 115, 127, 108, 131, 115, 123, 112, 120, 120, 123, 121, 114, 115, 116, 114, 112, 107, 117, 114, 108, 122, 125, 110, 126, 120, 117, 125, 104, 110, 122, 113, 112, 116, 120, 107, 130, 112, 105, 107, 108, 113, 104, 124, 114, 132, 117, 107, 113, 115, 122, 120, 116, 112, 108, 104, 107, 118, 113, 114, 110, 111, 129, 114, 119, 116, 119, 107, 110, 116, 125, 116, 115, 123, 116, 131, 109, 126, 115, 112, 109, 111, 110, 101, 114, 114, 93, 110, 116, 105, 121, 115, 124, 122, 121, 116, 122, 121, 116, 119, 119, 108, 100, 120, 112, 95, 110, 119, 110, 118, 122, 124, 111, 106, 114, 106, 108, 106, 115, 112, 130, 116, 110, 116, 108, 113, 108, 122, 118, 114, 107, 115, 115, 119, 123, 116, 115, 113, 109, 99, 124, 123, 106, 123, 101, 114, 123, 119, 110, 120, 106, 103, 109, 121, 115, 115, 113, 114, 114, 105, 121, 125, 110, 112, 117, 119, 127, 117, 110, 115, 108, 124, 118, 111, 120, 113, 121, 113, 112, 113, 121, 118, 111, 114, 126, 114, 118, 112, 111, 121, 124, 122, 116, 124, 109, 118, 121, 106, 114, 113, 125, 114, 114, 120, 123, 111, 128, 118, 123, 125, 132, 111, 121, 108, 118, 114, 119, 122, 111, 116, 126, 121, 107, 116, 117, 99, 124, 102, 108, 121, 106, 119, 117, 118, 107, 116, 104, 126, 116, 79, 109, 124, 116, 117, 110, 116, 126, 112, 129, 107, 106, 107, 115, 101, 113, 113, 116, 112, 120, 116, 127, 112, 111, 123, 110, 112, 113, 120, 119, 118, 95, 114, 111, 121, 114, 118, 108, 128, 106, 111, 115, 115, 113, 111, 109, 122, 121, 117, 114, 109, 121, 113, 109, 113, 106, 108, 113, 108, 126, 117, 109, 113, 108, 98, 110, 116, 114, 123, 109, 119, 126, 94, 109, 109, 107, 118, 115, 124, 115, 120, 113, 110, 119, 119, 126, 119, 110, 111, 105, 109, 114, 110, 111, 117, 114, 100, 117, 113, 119, 103, 109, 124, 123, 119, 117, 119, 102, 129, 108, 122, 107, 120, 111, 98, 105, 118, 106, 121, 125, 109, 118, 122, 112, 107, 117, 118, 115, 116, 109, 121, 129, 114, 112, 117, 121, 114, 113, 120, 109, 110, 102, 122, 112, 118, 109, 133, 115, 106, 124, 112, 107, 124, 118, 104, 119, 122, 131, 116, 115, 109, 115, 114, 114, 114, 108, 107, 110, 116, 105, 111, 120, 115, 113, 124, 99, 100, 109, 103, 115, 111, 91, 119, 115, 119, 111, 110, 95, 119, 112, 113, 112, 116, 112, 106, 115, 115, 103, 119, 121, 115, 131, 105, 115, 106, 121, 114, 125, 110, 119, 117, 106, 122, 110, 119, 118, 114, 116, 115, 118, 145, 110, 107, 120, 105, 126, 125, 114, 111, 111, 119, 141, 116, 106, 108, 117, 118, 105, 120, 112, 116, 117, 107, 104, 112, 125, 122, 114, 109, 103, 125, 114, 117, 122, 106, 131, 112, 117, 118, 108, 110, 122, 99, 115, 121, 108, 121, 121, 111, 105, 116, 117, 113, 126, 130, 114, 118, 109, 123, 120, 129, 122, 137, 115, 112, 128, 115, 118, 113, 109, 126, 108, 108, 121, 119, 115, 120, 149, 110, 112, 112, 119, 114, 110, 121, 112, 115, 117, 109, 108, 108, 117, 105, 132, 118, 120, 118, 102, 112, 118, 119, 108, 129, 125, 117, 112, 109, 110, 120, 113, 110, 97, 116, 124, 120, 125, 112, 101, 111, 128, 126, 113, 120, 115, 115, 118, 102, 117, 108, 106, 115, 122, 134, 108, 111, 118, 111, 127, 116, 119, 117, 109, 127, 119, 121, 121, 108, 113, 116, 102, 106, 114, 120, 118, 119, 111, 113, 119, 99, 102, 105, 114, 107, 122, 127, 121, 109, 126, 110, 119, 124, 115, 99, 115, 115, 128, 115, 131, 102, 124, 104, 113, 106, 130, 111, 111, 108, 122, 122, 103, 117, 105, 110, 120, 126, 103, 115, 101, 115, 106, 117, 114, 113, 118, 123, 109, 96, 120, 115, 125, 114, 97, 108, 115, 125, 122, 110, 113, 105, 125, 120, 100, 130, 117, 122, 97, 112, 117, 117, 116, 126, 111, 114, 117, 117, 115, 117, 114, 111, 125, 113, 114, 118, 98, 119, 115, 108, 119, 117, 115, 116, 105, 117, 119, 128, 115, 134, 108, 103, 121, 114, 118, 122, 113, 120, 112, 118, 117, 110, 120, 116, 118, 110, 133, 112, 107, 112, 124, 116, 110, 99, 140, 117, 106, 119, 124, 112, 137, 124, 116, 105, 125, 109, 108, 129, 114, 114, 126, 111, 118, 129, 115, 118, 114, 119, 120, 103, 127, 108, 117, 103, 109, 125, 103, 111, 106, 117, 103, 117, 105, 131, 107, 117, 136, 123, 118, 123, 117, 111, 126, 117, 115, 124, 105, 117, 119, 119, 132, 129, 115, 102, 121, 121, 137, 108, 108, 123, 110, 127, 118, 116, 126, 109, 126, 128, 110, 117, 116, 107, 110, 114, 114, 122, 111, 108, 111, 122, 125, 130, 117, 113, 119, 119, 113, 120, 118, 117, 124, 121, 122, 109, 105, 122, 120, 111, 111, 124, 121, 115, 115, 113, 115, 106, 121, 116, 116, 115, 118, 116, 116, 114, 112, 110, 118, 100, 113, 110, 106, 114, 116, 124, 115, 110, 109, 119, 106, 132, 118, 124, 115, 107, 115, 109, 147, 108, 101, 121, 114, 114, 105, 104, 118, 108, 116, 114, 110, 116, 117, 117, 123, 130, 98, 127, 109, 130, 96, 99, 118, 114, 119, 122, 139, 107, 112, 108, 116, 110, 103, 115, 123, 130, 113, 103, 112, 127, 107, 111, 104, 115, 115, 111, 107, 125, 118, 113, 115, 106, 112, 116, 117, 119, 118, 107, 116, 112, 109, 119, 122, 106, 123, 103, 116, 124, 101, 121, 136, 111, 114, 107, 101, 99, 120, 123, 108, 113, 121, 134, 108, 126, 105, 109, 135, 108, 132, 119, 124, 109, 127, 115, 113, 120, 121, 107, 113, 107, 115, 113, 127, 103, 106, 100, 110, 103, 118, 125, 114, 107, 126, 117, 117, 119, 119, 132, 104, 106, 119, 120, 117, 118, 109, 125, 103, 120, 109, 118, 114, 113, 110, 109, 104, 123, 105, 128, 112, 109, 119, 117, 116, 109, 105, 105, 116, 110, 95, 115, 113, 117, 110, 112, 118, 108, 109, 125, 118, 117, 116, 101, 125, 110, 106, 115, 122, 118, 106, 116, 108, 110, 108, 116, 121, 130, 106, 120, 129, 114, 114, 129, 111, 124, 114, 111, 109, 102, 124, 106, 103, 111, 120, 112, 115, 117, 113, 122, 110, 110, 113, 138, 124, 113, 117, 121, 104, 124, 105, 105, 120, 107, 119, 107, 117, 102, 106, 102, 120, 113, 106, 119, 102, 115, 122, 110, 117, 115, 127, 117, 106, 142, 99, 105, 114, 110, 107, 104, 122, 124, 119, 117, 113, 114, 108, 118, 122, 120, 110, 116, 119, 106, 131, 109, 105, 96, 103, 125, 124, 110, 113, 126, 130, 125, 97, 119, 126, 117, 120, 103, 122, 105, 118, 103, 108, 116, 114, 101, 115, 122, 115, 110, 120, 121, 121, 124, 113, 115, 109, 111, 117, 118, 124, 112, 120, 122, 118, 108, 112, 120, 105, 107, 106, 126, 119, 118, 148, 125, 106, 132, 115, 82, 122, 112, 91, 114, 116, 122, 121, 109, 110, 119, 111, 110, 111, 112, 111, 133, 107, 107, 108, 114, 118, 122, 126, 123, 100, 132, 115, 112, 104, 110, 99, 117, 112, 117, 112, 121, 113, 129, 112, 108, 109, 106, 103, 114, 105, 121, 125, 112, 113, 107, 109, 115, 110, 110, 115, 116, 106, 116, 124, 120, 126, 113, 128, 126, 111, 104, 107, 122, 122, 122, 121, 105, 135, 101, 101, 109, 116, 101, 115, 122, 108, 100, 116, 115, 117, 111, 112, 102, 118, 120, 112, 115, 129, 106, 111, 104, 114, 101, 117, 116, 116, 96, 107, 101, 117, 119, 115, 118, 117, 121, 119, 116, 127, 127, 115, 99, 113, 133, 116, 119, 108, 114, 135, 126, 113, 107, 124, 113, 92, 114, 119, 117, 115, 112, 118, 102, 113, 102, 107, 114, 118, 111, 114, 127, 117, 103, 112, 112, 119, 124, 116, 100, 126, 118, 98, 131, 115, 117, 115, 111, 108, 105, 119, 114, 101, 111, 111, 118, 113, 127, 112, 113, 115, 114, 127, 122, 121, 107, 111, 110, 115, 94, 105, 114, 113, 112, 112, 100, 115, 108, 122, 102, 105, 120, 117, 117, 124, 134, 112, 117, 122, 113, 109, 108, 119, 115, 110, 106, 105, 106, 102, 124, 126, 115, 110, 110, 110, 119, 113, 123, 85, 107, 132, 117, 107, 122, 117, 101, 106, 108, 122, 106, 114, 116, 91, 115, 119, 112, 111, 107, 103, 118, 123, 111, 102, 121, 115, 120, 98, 109, 112, 118, 132, 122, 116, 127, 118, 122, 119, 116, 123, 113, 111, 120, 101, 113, 117, 123, 117, 108, 126, 104, 104, 116, 100, 112, 127, 108, 106, 106, 128, 127, 110, 108, 120, 99, 115, 110, 116, 100, 112, 114, 117, 135, 123, 110, 121, 96, 113, 109, 125, 115, 112, 115, 109, 115, 121, 109, 106, 108, 113, 111, 122, 114, 99, 99, 108, 140, 103, 110, 113, 118, 116, 124, 124, 107, 119, 118, 122, 114, 125, 115, 110, 108, 121, 117, 114, 112, 110, 126, 129, 122, 115, 115, 109, 91, 125, 109, 112, 116, 123, 114, 126, 107, 117, 111, 109, 131, 147, 109, 118, 113, 122, 125, 122, 114, 118, 109, 109, 118, 126, 128, 114, 118, 109, 112, 118, 119, 117, 132, 111, 116, 131, 98, 116, 101, 100, 105, 108, 108, 113, 110, 101, 108, 125, 114, 127, 117, 98, 112, 113, 109, 130, 102, 118, 103, 117, 118, 104, 119, 112, 122, 119, 95, 118, 121, 116, 109, 107, 111, 118, 115, 104, 114, 121, 124, 105, 112, 112, 122, 114, 108, 102, 107, 97, 119, 124, 107, 120, 117, 115, 122, 120, 111, 114, 107, 114, 120, 119, 115, 112, 104, 104, 118, 116, 123, 118, 105, 113, 127, 114, 121, 103, 123, 109, 108, 104, 102, 117, 127, 115, 114, 118, 117, 110, 111, 122, 124, 105, 115, 123, 119, 109, 113, 116, 111, 113, 114, 117, 116, 111, 117, 108, 114, 110, 107, 112, 125, 109, 107, 121, 122, 100, 111, 116, 121, 113, 116, 133, 98, 119, 117, 120, 116, 120, 124, 118, 106, 103, 114, 100, 130, 114, 119, 104, 116, 108, 111, 111, 110, 111, 120, 114, 107, 124, 111, 109, 121, 115, 109, 117, 110, 107, 106, 110, 103, 120, 112, 123, 119, 122, 111, 118, 119, 115, 113, 122, 109, 99, 120, 113, 123, 121, 105, 115, 109, 119, 113, 115, 113, 118, 125, 107, 117, 121, 123, 107, 126, 100, 96, 113, 118, 116, 117, 125, 114, 118, 117, 112, 142, 110, 118, 125, 117, 118, 110, 109, 109, 120, 118, 110, 120, 130, 110, 113, 113, 105, 105, 112, 113, 123, 105, 112, 127, 126, 114, 111, 106, 128, 120, 111, 114, 123, 109, 123, 96, 114, 112, 114, 139, 116, 114, 103, 118, 108, 121, 106, 102, 112, 120, 123, 107, 124, 119, 118, 123, 115, 120, 114, 119, 122, 113, 119, 107, 123, 127, 114, 112, 109, 124, 122, 119, 105, 108, 109, 115, 108, 120, 111, 112, 117, 115, 111, 108, 123, 116, 119, 113, 110, 105, 117, 111, 114, 123, 120, 113, 93, 110, 120, 110, 115, 122, 124, 91, 104, 115, 118, 114, 106, 109, 107, 111, 117, 114, 117, 117, 117, 116, 117, 112, 116, 114, 118, 112, 112, 114, 124, 125, 131, 112, 110, 117, 113, 111, 129, 103, 114, 118, 112, 119, 114, 110, 117, 117, 123, 116, 126, 117, 104, 108, 102, 104, 129, 112, 116, 114, 118, 119, 121, 123, 115, 113, 97, 112, 109, 132, 117, 129, 120, 116, 124, 109, 106, 108, 123, 117, 118, 118, 109, 125, 117, 134, 108, 115, 117, 106, 105, 132, 123, 130, 126, 115, 108, 113, 122, 111, 114, 129, 110, 118, 108, 118, 122, 116, 110, 117, 119, 108, 120, 115, 116, 116, 101, 115, 122, 93, 118, 114, 112, 117, 128, 108, 112, 112, 113, 120, 115, 120, 116, 114, 126, 101, 123, 114, 122, 113, 101, 126, 111, 115, 116, 106, 118, 125, 119, 121, 117, 110, 128, 108, 113, 116, 115, 87, 113, 110, 111, 128, 109, 110, 115, 124, 124, 113, 116, 117, 115, 109, 109, 89, 112, 130, 116, 100, 113, 122, 123, 114, 105, 120, 110, 118, 116, 111, 122, 100, 99, 111, 107, 107, 125, 129, 111, 104, 116, 113, 123, 110, 119, 117, 119, 114, 116, 120, 122, 116, 104, 115, 111, 107, 113, 111, 125, 101, 123, 115, 133, 108, 113, 124, 121, 120, 104, 111, 110, 115, 121, 119, 137, 107, 125, 110, 130, 116, 116, 117, 119, 113, 120, 113, 116, 122, 128, 119, 119, 127, 110, 119, 109, 113, 115, 104, 110, 127, 116, 111, 114, 115, 113, 114, 119, 122, 116, 109, 128, 117, 116, 107, 116, 116, 131, 118, 114, 111, 116, 113, 111, 116, 124, 114, 117, 115, 108, 127, 115, 112, 117, 108, 114, 118, 115, 111, 116, 120, 110, 115, 111, 104, 120, 110, 100, 110, 114, 124, 102, 119, 115, 115, 87, 122, 112, 108, 117, 108, 119, 111, 117, 119, 122, 113, 124, 114, 110, 115, 118, 114, 116, 113, 111, 122, 118, 97, 111, 114, 122, 115, 118, 119, 122, 127, 120, 112, 110, 123, 113, 113, 122, 123, 113, 118, 124, 121, 123, 109, 114, 111, 108, 107, 115, 125, 115, 125, 119, 114, 117, 107, 116, 128, 110, 119, 104, 109, 114, 117, 112, 105, 109, 120, 114, 105, 111, 115, 109, 113, 105, 122, 116, 112, 119, 116, 108, 119, 105, 110, 110, 112, 109, 114, 119, 108, 105, 119, 112, 115, 117, 118, 106, 116, 114, 118, 118, 113, 117, 124, 116, 107, 111, 118, 120, 117, 123, 124, 117, 106, 124, 118, 116, 114, 106, 107, 114, 110, 116, 119, 115, 122, 110, 107, 125, 125, 116, 112, 127, 126, 118, 114, 113, 111, 120, 114, 116, 117, 113, 113, 119, 114, 125, 122, 115, 119, 127, 114, 116, 118, 106, 109, 112, 125, 108, 118, 108, 110, 123, 117, 121, 107, 122, 109, 114, 109, 117, 117, 113, 111, 112, 114, 125, 102, 111, 102, 124, 121, 116, 112, 112, 113, 109, 120, 123, 132, 116, 121, 112, 108, 118, 116, 121, 114, 112, 117, 108, 112, 102, 120, 119, 117, 115, 114, 118, 118, 123, 135, 128, 119, 120, 111, 115, 113, 117, 117, 111, 119, 121, 110, 121, 121, 117, 113, 101, 121, 118, 108, 116, 114, 119, 118, 115, 115, 115, 113, 112, 117, 113, 113, 115, 114, 111, 111, 121, 116, 116, 118, 112, 113, 105, 115, 110, 110, 121, 111, 103, 113, 112, 120, 114, 119, 122, 116, 121, 124, 121, 110, 112, 114, 113, 121, 117, 115, 119, 118, 126, 120, 116, 120, 128, 116, 115, 123, 111, 105, 110, 111, 111, 130, 118, 112, 120, 111, 115, 119, 108, 118, 108, 112, 115, 126, 115, 107, 116, 109, 122, 116, 107, 116, 115, 113, 122, 114, 123, 118, 116, 115, 112, 111, 104, 114, 122, 113, 113, 120, 116, 117, 122, 115, 109, 115, 110, 112, 119, 114, 120, 114, 120, 111, 115, 106, 108, 113, 109, 109, 115, 121, 115, 116, 100, 115, 110, 121, 110, 120, 115, 116, 119, 115, 116, 122, 114, 105, 113, 112, 117, 115, 123, 115, 115, 121, 115, 109, 106, 120, 114, 102, 112, 123, 116, 121, 104, 113, 120, 104, 117, 104, 114, 113, 121, 121, 123, 116, 119, 112, 109, 118, 112, 108, 112, 113, 111, 121, 126, 120, 116, 120, 126, 119, 113, 115, 114, 125, 112, 116, 113, 107, 110, 118, 113, 112, 115, 113, 117, 116, 120, 117, 117, 116, 114, 120, 113, 116, 107, 128, 104, 129, 114, 123, 111, 117, 110, 108, 111, 112, 130, 109, 97, 122, 112, 120, 117, 106, 109, 121, 103, 112, 129, 122, 118, 115, 108, 116, 126, 127, 114, 109, 129, 107, 131, 119, 127, 112, 126, 111, 114, 123, 114, 121, 118, 123, 124, 114, 114, 100, 110, 107, 118, 113, 116, 122, 127, 113, 112, 111, 127, 113, 111, 106, 108, 128, 111, 107, 121, 133, 110, 116, 107, 110, 110, 133, 110, 124, 146, 110, 118, 110, 120, 117, 111, 119, 115, 100, 124, 105, 104, 114, 114, 115, 114, 114, 90, 125, 115, 111, 114, 124, 112, 108, 120, 121, 128, 117, 117, 115, 114, 103, 114, 120, 100, 121, 119, 108, 110, 113, 105, 113, 115, 113, 122, 107, 112, 102, 119, 116, 112, 109, 105, 100, 119, 128, 113, 109, 105, 114, 110, 121, 115, 96, 122, 112, 115, 101, 129, 114, 111, 110, 112, 112, 113, 105, 115, 107, 109, 124, 114, 130, 112, 134, 102, 105, 122, 112, 116, 117, 116, 125, 117, 115, 142, 115, 121, 121, 118, 103, 104, 121, 127, 140, 118, 120, 124, 125, 93, 110, 115, 111, 116, 120, 144, 99, 113, 97, 105, 115, 112, 120, 116, 117, 112, 134, 120, 109, 110, 127, 128, 112, 131, 114, 108, 113, 106, 131, 111, 123, 126, 116, 126, 103, 137, 136, 127, 104, 119, 123, 117, 122, 114, 108, 111, 117, 95, 110, 110, 129, 123, 114, 117, 113, 112, 117, 111, 128, 108, 114, 119, 120, 113, 117, 109, 114, 102, 118, 108, 104, 117, 110, 138, 136, 109, 136, 119, 115, 105, 122, 127, 129, 123, 121, 88, 119, 106, 115, 116, 122, 134, 115, 118, 106, 114, 106, 120, 110, 110, 99, 128, 108, 126, 119, 108, 123, 114, 104, 113, 120, 121, 128, 116, 121, 121, 99, 108, 118, 119, 120, 104, 116, 122, 116, 121, 120, 114, 115, 117, 110, 119, 104, 133, 110, 128, 124, 110, 110, 112, 108, 113, 123, 113, 120, 106, 115, 115, 113, 109, 104, 101, 116, 112, 123, 110, 100, 105, 133, 124, 103, 130, 109, 112, 108, 117, 113, 100, 111, 96, 107, 115, 101, 106, 121, 117, 107, 126, 124, 108, 118, 121, 131, 114, 123, 107, 102, 114, 116, 121, 102, 108, 110, 106, 125, 131, 102, 137, 114, 120, 108, 104, 112, 115, 121, 103, 93, 117, 109, 114, 114, 115, 119, 112, 111, 97, 123, 114, 121, 129, 98, 125, 113, 119, 108, 123, 101, 109, 108, 99, 125, 104, 112, 112, 116, 103, 113, 119, 112, 121, 127, 124, 125, 115, 140, 111, 117, 106, 110, 100, 103, 105, 111, 108, 106, 126, 124, 118, 113, 93, 106, 114, 115, 116, 118, 109, 112, 117, 116, 120, 102, 123, 116, 106, 126, 128, 112, 116, 113, 120, 104, 108, 129, 108, 119, 120, 106, 129, 121, 123, 111, 108, 111, 130, 115, 111, 121, 127, 113, 109, 108, 105, 109, 112, 117, 107, 118, 114, 125, 125, 120, 122, 118, 122, 127, 113, 108, 127, 116, 108, 123, 106, 118, 120, 115, 115, 117, 110, 116, 113, 103, 116, 118, 118, 112, 115, 117, 117, 111, 113, 116, 111, 114, 119, 114, 119, 105, 114, 112, 116, 113, 116, 116, 102, 119, 122, 94, 115, 112, 123, 114, 121, 116, 107, 118, 110, 112, 105, 114, 110, 117, 119, 114, 117, 121, 115, 114, 114, 116, 111, 115, 113, 117, 121, 115, 93, 115, 115, 113, 137, 128, 114, 116, 104, 121, 120, 102, 116, 113, 119, 114, 112, 124, 113, 113, 124, 116, 111, 107, 121, 116, 114, 119, 110, 105, 118, 117, 115, 116, 118, 110, 113, 112, 112, 112, 116, 117, 117, 110, 115, 125, 116, 114, 111, 117, 117, 118, 114, 112, 125, 118, 116, 121, 121, 107, 116, 115, 111, 118, 115, 118, 112, 115, 112, 112, 114, 112, 114, 112, 114, 108, 95, 116, 117, 115, 116, 118, 114, 115, 114, 119, 120, 121, 103, 126, 116, 125, 118, 112, 114, 115, 118, 117, 107, 110, 115, 118, 116, 95, 104, 98, 107, 120, 117, 121, 113, 123, 122, 115, 118, 114, 113, 114, 116, 109, 118, 115, 116, 112, 112, 117, 134, 110, 119, 122, 111, 114, 117, 113, 111, 108, 116, 117, 112, 118, 112, 117, 114, 111, 123, 118, 111, 119, 116, 115, 112, 118, 126, 124, 112, 111, 114, 116, 111, 109, 110, 120, 115, 120, 118, 117, 120, 108, 100, 111, 147, 118, 115, 102, 117, 117, 117, 111, 122, 115, 120, 113, 112, 112, 117, 118, 112, 121, 118, 113, 114, 113, 114, 112, 112, 117, 118, 113, 118, 107, 118, 109, 114, 119, 122, 116, 110, 112, 118, 111, 116, 114, 118, 110, 112, 116, 120, 110, 112, 122, 122, 132, 115, 112, 116, 113, 117, 123, 116, 120, 111, 112, 113, 117, 107, 116, 118, 122, 109, 115, 114, 115, 117, 114, 112, 110, 111, 110, 113, 118, 112, 120, 122, 115, 117, 116, 112, 115, 111, 117, 112, 109, 116, 111, 114, 120, 112, 108, 113, 118, 114, 124, 111, 123, 101, 113, 116, 125, 110, 118, 119, 117, 114, 103, 120, 110, 115, 115, 115, 117, 107, 114, 119, 117, 111, 114, 122, 115, 111, 114, 117, 114, 115, 111, 119, 121, 113, 121, 112, 119, 115, 119, 114, 117, 117, 118, 106, 118, 114, 117, 114, 115, 120, 111, 121, 116, 124, 113, 113, 112, 115, 111, 119, 118, 110, 108, 116, 112, 101, 114, 120, 112, 113, 112, 115, 126, 121, 117, 122, 115, 110, 119, 117, 116, 115, 115, 114, 118, 120, 111, 113, 111, 112, 117, 119, 119, 115, 115, 114, 116, 114, 112, 118, 120, 114, 115, 120, 116, 102, 113, 108, 113, 114, 115, 116, 113, 118, 111, 121, 112, 110, 116, 114, 112, 116, 115, 119, 104, 116, 121, 117, 115, 116, 108, 94, 112, 112, 106, 115, 113, 102, 121, 118, 114, 127, 110, 114, 106, 108, 113, 112, 116, 120, 121, 113, 117, 114, 109, 115, 118, 118, 116, 120, 116, 116, 115, 115, 121, 131, 115, 113, 108, 112, 109, 114, 117, 121, 121, 116, 115, 124, 124, 108, 111, 98, 123, 122, 113, 110, 123, 111, 125, 96, 102, 132, 112, 118, 122, 114, 116, 107, 113, 101, 113, 111, 117, 108, 117, 94, 115, 113, 112, 118, 112, 79, 128, 110, 126, 118, 141, 112, 107, 126, 106, 124, 122, 120, 102, 127, 119, 124, 99, 118, 120, 126, 122, 123, 114, 107, 120, 111, 124, 111, 123, 114, 124, 109, 115, 126, 118, 110, 124, 110, 119, 108, 112, 115, 113, 120, 126, 109, 110, 119, 111, 107, 126, 123, 109, 114, 107, 119, 118, 102, 127, 104, 121, 103, 108, 115, 118, 120, 113, 119, 120, 103, 101, 116, 119, 113, 108, 109, 124, 110, 126, 125, 118, 115, 112, 101, 111, 118, 115, 124, 110, 117, 93, 107, 111, 108, 113, 123, 95, 109, 114, 116, 109, 114, 109, 116, 108, 117, 104, 107, 120, 129, 127, 111, 115, 116, 111, 114, 119, 135, 114, 109, 118, 110, 120, 116, 112, 117, 118, 117, 113, 100, 125, 124, 121, 106, 123, 103, 106, 118, 101, 107, 110, 125, 121, 111, 115, 113, 119, 108, 126, 128, 106, 102, 109, 110, 114, 108, 113, 112, 110, 122, 127, 112, 109, 110, 111, 107, 99, 89, 128, 120, 115, 110, 114, 99, 124, 110, 107, 103, 114, 109, 112, 110, 105, 111, 120, 116, 109, 121, 111, 119, 105, 115, 111, 112, 121, 114, 113, 109, 122, 117, 131, 104, 127, 110, 120, 119, 126, 122, 115, 109, 113, 108, 119, 133, 112, 114, 118, 106, 125, 116, 112, 109, 133, 112, 98, 126, 116, 104, 112, 116, 116, 115, 116, 113, 130, 103, 112, 117, 110, 116, 109, 111, 106, 110, 119, 110, 119, 107, 124, 121, 115, 118, 109, 123, 116, 109, 117, 119, 112, 125, 116, 99, 119, 113, 117, 127, 129, 130, 107, 107, 122, 120, 113, 111, 120, 106, 110, 123, 113, 114, 121, 118, 117, 123, 119, 116, 101, 109, 113, 107, 128, 127, 131, 110, 122, 117, 116, 111, 110, 122, 113, 112, 108, 109, 111, 119, 132, 122, 113, 113, 127, 107, 113, 125, 115, 118, 134, 114, 125, 108, 139, 103, 116, 109, 98, 113, 109, 119, 114, 110, 116, 103, 110, 114, 122, 112, 119, 133, 113, 123, 120, 103, 109, 106, 111, 106, 130, 125, 103, 113, 103, 110, 134, 123, 115, 110, 127, 105, 103, 102, 108, 105, 116, 108, 106, 116, 117, 104, 104, 120, 105, 125, 109, 120, 112, 115, 115, 117, 114, 114, 112, 122, 127, 104, 118, 112, 120, 109, 140, 116, 115, 113, 114, 118, 125, 107, 112, 127, 117, 125, 118, 112, 124, 100, 142, 128, 121, 98, 113, 120, 109, 110, 121, 114, 116, 127, 113, 118, 117, 116, 95, 109, 112, 114, 118, 120, 117, 123, 114, 109, 103, 110, 104, 108, 108, 102, 110, 103, 121, 105, 118, 124, 113, 115, 129, 123, 118, 103, 120, 123, 111, 114, 113, 121, 112, 120, 116, 110, 109, 109, 115, 135, 101, 107, 108, 111, 102, 109, 126, 112, 118, 95, 104, 115, 118, 111, 109, 106, 123, 124, 123, 109, 124, 124, 115, 115, 121, 113, 116, 110, 122, 119, 113, 116, 128, 126, 117, 120, 128, 110, 119, 116, 114, 129, 104, 116, 106, 113, 115, 105, 116, 110, 110, 119, 108, 125, 102, 116, 109, 129, 119, 123, 112, 120, 113, 110, 100, 110, 106, 114, 119, 125, 117, 117, 116, 113, 107, 114, 117, 110, 119, 118, 124, 112, 123, 121, 117, 125, 113, 114, 109, 108, 113, 116, 110, 112, 106, 108, 111, 118, 117, 144, 108, 116, 122, 117, 122, 118, 116, 118, 104, 109, 112, 123, 107, 109, 117, 114, 116, 111, 116, 109, 114, 117, 115, 113, 109, 119, 105, 119, 118, 127, 117, 116, 120, 106, 104, 114, 118, 116, 120, 101, 112, 118, 111, 111, 116, 112, 123, 112, 131, 108, 107, 118, 109, 121, 123, 101, 114, 114, 118, 117, 111, 111, 107, 113, 114, 112, 117, 128, 106, 114, 111, 117, 105, 109, 123, 121, 121, 107, 116, 115, 114, 124, 115, 119, 127, 119, 119, 102, 117, 114, 105, 105, 116, 119, 113, 123, 107, 113, 112, 114, 113, 127, 116, 115, 106, 108, 110, 114, 119, 114, 126, 108, 111, 128, 115, 106, 111, 116, 116, 113, 107, 105, 107, 118, 133, 115, 125, 118, 115, 112, 124, 116, 110, 118, 117, 115, 124, 95, 116, 115, 118, 121, 107, 123, 116, 120, 119, 117, 117, 113, 110, 108, 109, 106, 122, 115, 117, 116, 119, 117, 114, 135, 117, 123, 122, 121, 106, 114, 114, 112, 121, 117, 113, 121, 102, 121, 111, 122, 115, 110, 118, 106, 116, 101, 119, 112, 119, 122, 118, 110, 112, 118, 109, 121, 110, 125, 108, 111, 118, 113, 117, 119, 118, 115, 108, 112, 121, 125, 117, 119, 112, 102, 122, 128, 120, 113, 112, 106, 112, 119, 108, 133, 112, 121, 112, 103, 112, 113, 124, 129, 116, 125, 111, 124, 113, 114, 112, 119, 112, 128, 114, 112, 122, 111, 108, 128, 115, 111, 96, 122, 130, 106, 105, 119, 113, 118, 104, 110, 116, 117, 120, 118, 112, 109, 114, 121, 111, 118, 109, 119, 110, 102, 110, 125, 125, 126, 109, 122, 112, 105, 111, 122, 118, 114, 111, 133, 103, 126, 126, 111, 118, 112, 118, 108, 121, 120, 103, 117, 117, 119, 107, 113, 114, 116, 118, 122, 122, 117, 119, 118, 102, 116, 122, 118, 119, 110, 102, 113, 116, 118, 118, 115, 111, 109, 121, 123, 111, 104, 108, 113, 114, 116, 107, 105, 120, 108, 115, 111, 129, 111, 128, 123, 108, 115, 115, 115, 118, 113, 117, 119, 116, 111, 107, 116, 126, 111, 117, 109, 102, 109, 121, 109, 112, 114, 113, 118, 106, 104, 126, 111, 120, 120, 115, 124, 114, 140, 116, 109, 112, 115, 112, 117, 113, 113, 126, 117, 118, 112, 105, 126, 119, 123, 104, 104, 119, 123, 114, 122, 129, 115, 117, 108, 110, 119, 136, 117, 117, 116, 119, 116, 115, 113, 115, 117, 108, 106, 108, 117, 104, 113, 117, 113, 104, 117, 112, 115, 139, 111, 105, 106, 124, 112, 107, 118, 105, 119, 121, 99, 112, 109, 128, 115, 127, 112, 122, 120, 130, 108, 107, 113, 116, 118, 125, 127, 110, 111, 117, 116, 111, 119, 110, 115, 99, 113, 112, 108, 119, 121, 128, 104, 109, 115, 118, 116, 112, 118, 121, 124, 123, 117, 114, 123, 116, 127, 107, 117, 114, 114, 108, 116, 119, 121, 125, 112, 121, 118, 111, 105, 114, 121, 109, 124, 122, 109, 128, 120, 118, 113, 120, 110, 105, 126, 106, 111, 115, 117, 124, 117, 121, 121, 99, 116, 114, 115, 116, 103, 125, 113, 116, 114, 115, 107, 120, 112, 114, 115, 116, 127, 113, 114, 111, 124, 111, 123, 117, 118, 116, 112, 117, 110, 124, 125, 120, 128, 123, 106, 119, 118, 117, 122, 114, 111, 112, 116, 119, 112, 109, 113, 118, 118, 117, 119, 111, 116, 102, 113, 119, 110, 118, 117, 116, 124, 113, 119, 101, 122, 119, 112, 123, 107, 106, 113, 109, 113, 111, 124, 114, 107, 125, 109, 107, 114, 102, 122, 120, 117, 109, 132, 117, 111, 97, 110, 123, 116, 116, 111, 112, 107, 112, 117, 109, 112, 119, 106, 112, 112, 111, 111, 112, 112, 115, 111, 112, 125, 107, 115, 117, 112, 120, 104, 100, 115, 112, 99, 112, 105, 120, 117, 112, 118, 112, 124, 120, 125, 95, 120, 121, 119, 116, 122, 117, 131, 111, 115, 109, 117, 129, 113, 115, 116, 114, 110, 125, 102, 118, 122, 116, 120, 113, 121, 126, 109, 118, 120, 110, 115, 113, 105, 115, 102, 106, 123, 103, 126, 110, 116, 107, 103, 91, 123, 116, 120, 113, 115, 115, 99, 116, 124, 114, 113, 105, 113, 116, 115, 108, 102, 112, 116, 114, 127, 115, 116, 116, 115, 112, 110, 121, 108, 104, 113, 135, 107, 114, 132, 106, 122, 111, 110, 112, 118, 125, 113, 121, 124, 118, 110, 119, 117, 113, 104, 102, 106, 119, 132, 116, 112, 118, 113, 110, 108, 109, 112, 116, 119, 114, 119, 130, 123, 115, 111, 110, 93, 110, 114, 108, 114, 120, 84, 112, 126, 118, 113, 121, 122, 118, 112, 116, 106, 117, 114, 118, 117, 119, 107, 109, 117, 110, 121, 125, 108, 117, 107, 114, 112, 114, 105, 113, 118, 116, 113, 105, 116, 110, 118, 112, 122, 108, 120, 107, 109, 120, 148, 111, 117, 111, 123, 112, 123, 106, 115, 117, 117, 110, 119, 110, 125, 110, 108, 96, 115, 119, 114, 118, 114, 109, 122, 123, 110, 111, 135, 117, 111, 103, 119, 112, 130, 123, 116, 104, 112, 109, 119, 109, 129, 118, 106, 104, 110, 114, 122, 110, 125, 123, 126, 130, 119, 116, 118, 118, 111, 114, 111, 121, 117, 119, 113, 123, 117, 117, 108, 117, 124, 122, 107, 110, 122, 106, 114, 118, 107, 121, 112, 119, 116, 116, 114, 116, 126, 121, 115, 101, 106, 116, 115, 113, 112, 106, 124, 108, 121, 119, 96, 119, 112, 120, 120, 107, 117, 121, 118, 113, 119, 109, 120, 114, 123, 118, 118, 128, 106, 108, 114, 124, 94, 104, 97, 102, 106, 112, 117, 122, 106, 118, 128, 106, 120, 93, 145, 109, 114, 121, 119, 105, 113, 105, 114, 128, 99, 126, 112, 104, 109, 106, 128, 112, 107, 110, 119, 116, 128, 113, 117, 122, 99, 93, 107, 114, 116, 118, 120, 135, 120, 112, 112, 107, 119, 103, 115, 121, 100, 122, 102, 142, 98, 106, 115, 125, 125, 110, 109, 110, 119, 115, 112, 123, 115, 124, 116, 117, 127, 124, 127, 123, 130, 95, 110, 134, 114, 111, 101, 115, 108, 110, 118, 114, 131, 117, 85, 116, 123, 115, 133, 110, 100, 120, 105, 116, 102, 123, 100, 113, 110, 112, 124, 108, 115, 115, 121, 115, 108, 113, 116, 115, 110, 123, 100, 115, 118, 112, 111, 97, 122, 110, 92, 108, 100, 119, 105, 111, 100, 113, 118, 108, 114, 119, 119, 114, 113, 124, 114, 125, 113, 108, 114, 117, 139, 144, 111, 108, 125, 105, 106, 120, 118, 117, 107, 119, 114, 122, 123, 110, 137, 122, 113, 108, 109, 115, 121, 112, 109, 106, 111, 100, 128, 110, 122, 116, 112, 125, 116, 115, 128, 120, 120, 121, 102, 118, 119, 107, 111, 120, 119, 111, 101, 113, 109, 114, 111, 112, 114, 117, 133, 105, 109, 113, 122, 112, 137, 101, 119, 111, 108, 119, 128, 121, 110, 113, 128, 116, 120, 117, 114, 116, 122, 110, 112, 123, 125, 124, 118, 94, 116, 128, 119, 116, 140, 110, 113, 126, 115, 114, 138, 135, 138, 110, 119, 116, 106, 95, 111, 121, 128, 107, 111, 114, 119, 105, 115, 107, 100, 119, 114, 113, 117, 119, 110, 116, 144, 107, 110, 107, 108, 120, 122, 114, 115, 98, 119, 124, 135, 116, 105, 116, 116, 123, 121, 111, 147, 112, 119, 109, 108, 130, 122, 106, 113, 124, 110, 131, 106, 101, 123, 121, 107, 129, 111, 126, 103, 115, 105, 111, 122, 117, 118, 110, 109, 108, 104, 111, 117, 117, 122, 116, 109, 113, 116, 117, 112, 107, 116, 126, 120, 123, 120, 103, 110, 111, 126, 116, 100, 111, 98, 108, 124, 127, 120, 113, 120, 121, 128, 111, 114, 119, 83, 112, 116, 114, 102, 115, 105, 112, 116, 114, 107, 115, 120, 116, 120, 106, 101, 120, 112, 130, 121, 114, 116, 126, 108, 101, 123, 110, 120, 123, 122, 124, 106, 125, 125, 104, 105, 119, 113, 105, 104, 115, 131, 117, 114, 130, 120, 117, 85, 114, 120, 117, 106, 112, 101, 98, 122, 115, 112, 112, 130, 108, 112, 131, 107, 130, 110, 105, 133, 97, 112, 136, 111, 124, 116, 131, 117, 113, 97, 124, 112, 128, 111, 101, 105, 114, 106, 130, 113, 87, 111, 112, 99, 109, 116, 115, 127, 102, 91, 113, 110, 105, 111, 128, 110, 115, 113, 82, 118, 100, 112, 99, 98, 106, 109, 107, 124, 109, 114, 119, 123, 115, 116, 109, 125, 103, 130, 116, 128, 110, 97, 115, 111, 121, 108, 109, 121, 110, 135, 140, 114, 109, 123, 117, 116, 82, 117, 107, 115, 117, 108, 119, 112, 121, 103, 110, 111, 114, 124, 120, 121, 118, 113, 112, 110, 112, 122, 117, 110, 106, 115, 118, 120, 115, 128, 113, 115, 118, 103, 106, 113, 112, 118, 113, 112, 119, 115, 129, 103, 117, 116, 124, 111, 107, 141, 116, 111, 104, 108, 112, 113, 113, 129, 103, 120, 121, 112, 106, 104, 110, 117, 114, 115, 122, 120, 109, 107, 108, 114, 112, 117, 117, 109, 106, 128, 107, 108, 121, 121, 115, 116, 107, 105, 114, 119, 104, 117, 113, 117, 107, 113, 126, 118, 110, 108, 111, 116, 110, 114, 105, 108, 104, 109, 124, 109, 115, 113, 121, 114, 113, 122, 111, 115, 112, 118, 110, 118, 131, 123, 126, 125, 118, 115, 105, 111, 124, 117, 116, 105, 113, 106, 120, 117, 103, 109, 120, 119, 119, 121, 120, 117, 114, 112, 134, 105, 116, 117, 119, 112, 119, 108, 116, 123, 111, 118, 113, 118, 101, 110, 113, 112, 124, 126, 122, 112, 116, 123, 126, 119, 106, 108, 124, 119, 128, 114, 110, 112, 115, 118, 121, 113, 110, 121, 124, 102, 115, 121, 120, 112, 108, 118, 117, 132, 117, 111, 111, 122, 103, 123, 108, 121, 113, 113, 115, 110, 117, 98, 112, 123, 107, 110, 114, 104, 112, 112, 104, 124, 119, 116, 111, 119, 109, 117, 119, 114, 117, 121, 122, 111, 117, 117, 126, 113, 113, 112, 112, 113, 112, 115, 109, 117, 115, 115, 121, 119, 109, 115, 115, 116, 113, 115, 130, 125, 113, 114, 117, 129, 116, 106, 113, 116, 99, 118, 129, 115, 116, 116, 111, 123, 100, 117, 127, 117, 113, 105, 129, 114, 118, 123, 107, 118, 105, 119, 114, 124, 127, 123, 106, 117, 123, 109, 117, 113, 110, 117, 101, 116, 116, 106, 124, 136, 115, 126, 121, 125, 106, 121, 112, 111, 120, 115, 119, 114, 111, 116, 119, 118, 121, 110, 111, 149, 104, 106, 114, 113, 107, 119, 113, 120, 114, 120, 117, 118, 124, 123, 109, 121, 110, 117, 128, 112, 111, 121, 121, 110, 121, 116, 104, 106, 110, 126, 113, 117, 119, 108, 112, 109, 111, 118, 111, 117, 111, 114, 107, 105, 117, 118, 121, 111, 115, 113, 113, 119, 110, 121, 113, 118, 102, 125, 108, 117, 106, 120, 119, 116, 106, 119, 122, 120, 112, 136, 108, 110, 109, 120, 119, 113, 121, 115, 122, 116, 105, 126, 104, 119, 119, 113, 109, 116, 125, 119, 110, 118, 125, 129, 115, 107, 106, 112, 113, 112, 114, 113, 121, 120, 114, 118, 105, 109, 119, 125, 138, 116, 125, 110, 116, 115, 114, 122, 114, 100, 107, 131, 112, 120, 120, 113, 113, 110, 119, 117, 125, 123, 120, 120, 113, 110, 117, 112, 125, 110, 114, 114, 115, 121, 143, 118, 124, 105, 118, 118, 103, 116, 111, 115, 114, 116, 113, 108, 117, 118, 119, 114, 116, 114, 121, 121, 119, 114, 113, 117, 108, 115, 117, 115, 114, 121, 115, 115, 123, 123, 120, 127, 115, 115, 121, 105, 110, 122, 122, 119, 136, 123, 112, 121, 99, 106, 118, 111, 130, 106, 115, 123, 120, 118, 109, 114, 103, 101, 115, 119, 111, 109, 112, 115, 107, 121, 106, 121, 121, 93, 121, 114, 110, 97, 108, 111, 113, 117, 114, 117, 124, 95, 117, 133, 125, 114, 117, 127, 113, 131, 109, 121, 125, 118, 121, 108, 120, 129, 111, 121, 99, 112, 113, 107, 119, 117, 128, 107, 115, 111, 122, 121, 113, 111, 106, 124, 113, 102, 116, 107, 109, 114, 121, 109, 125, 109, 125, 116, 118, 122, 109, 122, 102, 117, 112, 124, 115, 123, 122, 114, 125, 104, 118, 116, 109, 103, 115, 122, 109, 115, 118, 113, 117, 121, 122, 114, 112, 105, 117, 111, 116, 109, 113, 118, 114, 100, 119, 112, 116, 127, 106, 127, 107, 119, 117, 121, 107, 115, 120, 112, 120, 104, 121, 114, 110, 116, 113, 107, 104, 121, 118, 118, 124, 111, 127, 108, 112, 112, 130, 108, 116, 104, 114, 109, 123, 116, 118, 110, 128, 117, 117, 108, 104, 109, 107, 105, 120, 117, 115, 125, 116, 105, 116, 90, 113, 123, 107, 112, 107, 113, 100, 107, 123, 104, 122, 116, 114, 124, 101, 103, 106, 117, 116, 123, 114, 117, 116, 93, 100, 110, 109, 114, 105, 118, 108, 107, 115, 112, 117, 109, 104, 122, 117, 117, 118, 112, 103, 111, 105, 120, 97, 116, 111, 114, 119, 128, 117, 128, 132, 113, 110, 124, 111, 98, 116, 109, 116, 112, 123, 108, 108, 116, 112, 118, 113, 106, 114, 117, 100, 124, 114, 130, 112, 136, 104, 106, 119, 122, 104, 116, 112, 114, 122, 119, 111, 115, 122, 107, 116, 120, 112, 108, 110, 111, 123, 105, 111, 112, 117, 124, 104, 107, 101, 101, 103, 112, 124, 127, 122, 125, 97, 108, 121, 118, 134, 118, 128, 116, 112, 129, 129, 120, 124, 106, 121, 112, 112, 104, 116, 118, 113, 109, 110, 107, 128, 111, 113, 112, 112, 126, 104, 111, 118, 117, 127, 107, 124, 112, 131, 119, 110, 115, 104, 119, 117, 107, 110, 111, 97, 100, 112, 113, 109, 112, 116, 119, 99, 121, 104, 111, 122, 110, 111, 104, 125, 111, 115, 114, 116, 106, 121, 100, 110, 114, 114, 127, 113, 117, 107, 116, 125, 134, 119, 104, 116, 97, 115, 127, 104, 119, 128, 112, 102, 133, 117, 124, 93, 135, 101, 108, 118, 97, 118, 128, 121, 123, 107, 115, 101, 136, 117, 118, 115, 107, 117, 128, 113, 121, 107, 112, 120, 126, 111, 116, 113, 121, 122, 113, 136, 110, 115, 119, 113, 115, 102, 118, 119, 113, 119, 117, 106, 111, 129, 103, 120, 110, 132, 110, 126, 119, 108, 108, 114, 125, 106, 129, 104, 118, 114, 106, 108, 103, 109, 115, 117, 116, 119, 92, 124, 126, 118, 104, 118, 118, 106, 133, 105, 113, 118, 124, 119, 112, 115, 126, 114, 115, 118, 124, 124, 131, 108, 119, 118, 116, 117, 109, 117, 113, 119, 113, 117, 122, 98, 120, 126, 108, 118, 119, 107, 113, 119, 111, 110, 108, 119, 120, 109, 115, 106, 115, 122, 117, 114, 104, 108, 122, 111, 102, 103, 102, 118, 107, 108, 115, 122, 115, 121, 116, 112, 130, 109, 114, 114, 115, 110, 135, 106, 105, 117, 116, 114, 102, 108, 111, 121, 114, 119, 105, 114, 125, 125, 108, 117, 113, 112, 114, 108, 116, 113, 115, 107, 121, 127, 113, 107, 110, 119, 107, 115, 124, 116, 107, 125, 110, 111, 105, 110, 110, 123, 113, 115, 103, 107, 98, 119, 118, 123, 109, 107, 97, 115, 119, 108, 120, 118, 102, 117, 134, 128, 111, 103, 128, 124, 103, 112, 113, 96, 130, 117, 114, 114, 120, 105, 115, 120, 128, 107, 113, 115, 119, 124, 121, 123, 98, 121, 127, 116, 132, 110, 108, 109, 106, 106, 115, 101, 125, 112, 113, 87, 110, 128, 117, 120, 113, 87, 110, 114, 130, 121, 113, 102, 112, 125, 103, 119, 115, 112, 106, 120, 122, 122, 106, 115, 114, 108, 128, 124, 117, 123, 109, 127, 125, 113, 121, 112, 121, 104, 121, 109, 108, 109, 117, 108, 108, 111, 113, 107, 106, 117, 112, 104, 127, 109, 98, 126, 112, 104, 109, 117, 116, 108, 107, 112, 115, 119, 123, 105, 117, 111, 97, 104, 109, 111, 117, 102, 114, 113, 102, 113, 101, 127, 114, 119, 117, 116, 121, 123, 110, 121, 115, 131, 111, 102, 109, 118, 124, 101, 113, 105, 109, 123, 118, 108, 121, 125, 137, 110, 124, 103, 121, 120, 113, 117, 124, 113, 113, 113, 109, 125, 107, 121, 128, 111, 122, 115, 106, 120, 110, 107, 113, 114, 109, 123, 121, 114, 95, 115, 115, 124, 108, 117, 113, 116, 125, 122, 113, 120, 112, 114, 117, 122, 111, 131, 131, 104, 109, 119, 124, 119, 112, 104, 104, 106, 102, 122, 117, 114, 108, 115, 123, 106, 106, 108, 98, 119, 113, 123, 107, 94, 97, 114, 113, 108, 108, 105, 103, 113, 108, 108, 124, 118, 115, 109, 100, 105, 127, 128, 110, 113, 117, 121, 111, 127, 102, 112, 125, 126, 117, 121, 119, 123, 108, 119, 115, 116, 111, 106, 118, 120, 101, 107, 110, 114, 117, 103, 118, 123, 117, 114, 118, 107, 115, 119, 117, 107, 120, 118, 110, 114, 109, 122, 115, 125, 123, 128, 111, 103, 109, 117, 117, 115, 114, 122, 110, 130, 126, 111, 99, 111, 102, 109, 120, 99, 112, 111, 132, 114, 109, 124, 123, 103, 134, 103, 118, 116, 110, 110, 120, 100, 132, 116, 109, 115, 126, 110, 116, 105, 114, 118, 108, 129, 101, 106, 108, 113, 106, 124, 110, 116, 119, 111, 107, 129, 100, 131, 124, 112, 121, 103, 114, 120, 113, 108, 109, 109, 103, 127, 113, 108, 112, 112, 121, 112, 111, 108, 122, 111, 125, 112, 117, 124, 120, 109, 120, 110, 104, 107, 111, 114, 93, 98, 102, 103, 105, 101, 110, 108, 97, 114, 113, 103, 130, 105, 102, 120, 107, 117, 117, 127, 111, 123, 123, 106, 134, 121, 112, 117, 121, 125, 116, 112, 117, 119, 116, 109, 108, 133, 98, 102, 118, 122, 104, 121, 116, 110, 121, 124, 107, 110, 113, 116, 98, 106, 115, 114, 109, 119, 105, 131, 104, 107, 97, 116, 114, 113, 91, 99, 125, 111, 122, 131, 111, 128, 98, 122, 102, 108, 113, 115, 107, 111, 108, 102, 109, 125, 141, 114, 118, 123, 122, 95, 103, 110, 120, 109, 126, 127, 97, 111, 120, 115, 94, 116, 123, 126, 115, 94, 119, 111, 127, 121, 111, 100, 113, 93, 113, 126, 120, 91, 100, 125, 113, 126, 133, 101, 119, 117, 109, 113, 120, 149, 113, 122, 115, 120, 104, 118, 110, 87, 110, 114, 106, 116, 104, 108, 126, 114, 123, 118, 106, 122, 111, 100, 120, 111, 118, 120, 98, 103, 91, 118, 114, 119, 116, 116, 128, 122, 135, 105, 134, 113, 108, 110, 113, 120, 105, 114, 107, 121, 108, 123, 115, 123, 126, 136, 117, 119, 117, 113, 100, 123, 112, 117, 106, 101, 114, 110, 115, 109, 106, 109, 135, 104, 127, 110, 125, 113, 109, 100, 103, 86, 105, 116, 114, 100, 106, 111, 108, 119, 113, 116, 119, 122, 115, 128, 122, 102, 121, 109, 107, 120, 122, 116, 118, 134, 113, 116, 108, 125, 123, 109, 100, 123, 125, 108, 103, 125, 133, 111, 112, 106, 100, 117, 112, 96, 108, 121, 111, 113, 104, 127, 135, 110, 120, 113, 120, 115, 126, 111, 118, 119, 107, 128, 114, 127, 115, 119, 111, 104, 119, 104, 108, 108, 106, 129, 108, 119, 120, 118, 122, 113, 114, 100, 124, 116, 128, 102, 124, 107, 109, 111, 107, 106, 106, 130, 95, 122, 119, 107, 108, 110, 111, 115, 110, 107, 98, 120, 121, 106, 118, 118, 106, 122, 103, 127, 120, 129, 118, 110, 143, 121, 95, 122, 116, 92, 114, 129, 114, 114, 106, 144, 109, 100, 107, 123, 116, 124, 112, 134, 128, 111, 105, 105, 119, 103, 119, 109, 113, 120, 112, 108, 114, 117, 112, 107, 106, 128, 117, 95, 101, 117, 106, 106, 132, 115, 96, 107, 112, 116, 124, 112, 125, 112, 116, 104, 113, 116, 114, 97, 126, 111, 109, 108, 101, 131, 114, 109, 97, 116, 110, 92, 126, 116, 102, 116, 109, 112, 119, 107, 105, 122, 111, 109, 108, 107, 125, 127, 120, 116, 114, 114, 121, 109, 114, 104, 114, 117, 117, 132, 123, 119, 116, 131, 110, 111, 138, 100, 102, 112, 139, 119, 125, 124, 111, 114, 110, 123, 112, 108, 114, 118, 119, 100, 117, 140, 117, 111, 105, 111, 124, 117, 106, 129, 108, 117, 99, 114, 113, 120, 119, 106, 123, 104, 111, 113, 101, 101, 101, 92, 124, 109, 127, 121, 120, 114, 118, 120, 131, 104, 100, 121, 109, 129, 111, 133, 118, 114, 116, 106, 128, 109, 123, 112, 105, 116, 117, 102, 115, 98, 118, 101, 127, 101, 124, 134, 99, 106, 124, 112, 119, 115, 118, 115, 128, 112, 100, 111, 114, 117, 118, 112, 105, 120, 109, 118, 120, 100, 105, 122, 108, 120, 121, 106, 109, 116, 109, 117, 115, 130, 101, 127, 114, 115, 105, 116, 111, 114, 116, 113, 105, 115, 126, 110, 121, 110, 123, 113, 123, 133, 122, 117, 104, 122, 113, 119, 113, 109, 122, 122, 135, 121, 110, 107, 107, 128, 114, 122, 75, 119, 124, 98, 99, 115, 117, 98, 116, 104, 108, 116, 112, 103, 112, 114, 123, 103, 109, 117, 94, 108, 106, 109, 94, 108, 108, 106, 106, 110, 125, 105, 109, 124, 116, 119, 128, 117, 121, 94, 115, 116, 139, 130, 124, 125, 134, 105, 121, 122, 120, 130, 107, 106, 116, 108, 117, 115, 119, 119, 101, 114, 119, 97, 118, 107, 119, 119, 108, 108, 123, 114, 99, 105, 125, 95, 102, 145, 106, 116, 104, 116, 122, 136, 104, 99, 110, 123, 126, 107, 125, 105, 110, 129, 123, 98, 122, 108, 118, 118, 118, 118, 128, 107, 131, 102, 115, 150, 111, 106, 103, 102, 118, 122, 113, 100, 114, 111, 137, 132, 122, 105, 126, 117, 119, 130, 117, 125, 114, 101, 120, 117, 123, 89, 122, 108, 120, 107, 115, 113, 119, 120, 107, 115, 121, 119, 126, 120, 100, 109, 113, 109, 122, 115, 114, 116, 124, 133, 122, 134, 129, 113, 111, 109, 125, 118, 110, 121, 113, 128, 127, 115, 109, 106, 113, 122, 103, 115, 119, 108, 122, 103, 109, 107, 122, 115, 106, 129, 106, 125, 106, 119, 115, 103, 93, 103, 107, 120, 117, 117, 115, 115, 121, 109, 113, 139, 100, 120, 118, 128, 108, 110, 107, 112, 111, 104, 122, 115, 126, 119, 110, 112, 117, 121, 102, 120, 111, 120, 124, 100, 114, 110, 145, 114, 114, 113, 121, 130, 123, 113, 116, 119, 126, 127, 99, 123, 126, 104, 122, 106, 122, 120, 119, 100, 102, 123, 115, 120, 122, 104, 108, 116, 99, 102, 115, 116, 116, 100, 115, 117, 103, 106, 93, 110, 110, 118, 110, 112, 125, 78, 115, 108, 102, 121, 108, 126, 123, 121, 120, 118, 128, 122, 113, 113, 116, 114, 106, 124, 118, 112, 127, 112, 123, 111, 120, 127, 107, 93, 119, 127, 112, 106, 113, 117, 114, 116, 113, 119, 108, 119, 104, 113, 109, 129, 119, 121, 126, 129, 124, 116, 106, 112, 118, 119, 100, 118, 105, 126, 109, 144, 113, 118, 104, 127, 122, 124, 110, 114, 106, 103, 141, 107, 117, 121, 118, 129, 108, 96, 117, 117, 128, 95, 115, 100, 116, 102, 121, 100, 120, 124, 131, 116, 121, 111, 115, 115, 109, 122, 101, 99, 129, 110, 110, 117, 120, 94, 121, 125, 118, 127, 125, 124, 108, 127, 108, 120, 129, 119, 132, 120, 117, 97, 122, 113, 132, 107, 125, 117, 107, 115, 98, 123, 121, 114, 119, 121, 105, 123, 123, 100, 126, 120, 114, 105, 118, 115, 117, 113, 115, 120, 130, 132, 126, 108, 124, 100, 112, 126, 122, 122, 120, 112, 114, 102, 117, 115, 110, 122, 113, 114, 117, 108, 98, 106, 112, 120, 95, 108, 123, 117, 110, 124, 119, 113, 124, 114, 102, 119, 110, 117, 113, 109, 92, 117, 96, 108, 102, 108, 119, 109, 109, 113, 118, 118, 109, 117, 111, 112, 112, 120, 118, 128, 119, 104, 114, 125, 114, 109, 107, 111, 116, 120, 114, 125, 136, 98, 124, 106, 119, 102, 122, 114, 130, 114, 114, 108, 109, 115, 108, 120, 102, 110, 110, 101, 117, 100, 130, 98, 103, 129, 124, 117, 113, 118, 113, 114, 111, 116, 110, 107, 114, 121, 119, 115, 109, 122, 108, 132, 111, 113, 111, 105, 126, 114, 123, 114, 126, 96, 97, 130, 123, 116, 107, 106, 107, 132, 114, 129, 113, 121, 109, 129, 111, 108, 126, 121, 117, 120, 131, 119, 114, 115, 85, 128, 125, 114, 127, 122, 127, 125, 109, 110, 113, 134, 107, 122, 119, 115, 101, 122, 119, 113, 110, 115, 126, 105, 123, 108, 117, 115, 93, 121, 128, 123, 116, 104, 123, 99, 125, 114, 112, 126, 108, 120, 126, 119, 108, 125, 110, 103, 120, 127, 124, 114, 114, 91, 106, 115, 115, 116, 112, 101, 115, 115, 140, 125, 125, 121, 110, 106, 111, 101, 117, 124, 111, 117, 133, 119, 129, 100, 122, 146, 121, 132, 124, 114, 109, 103, 110, 110, 144, 108, 113, 105, 115, 111, 115, 110, 117, 136, 114, 122, 111, 117, 117, 107, 106, 105, 103, 103, 119, 115, 109, 117, 111, 121, 121, 118, 109, 111, 119, 120, 115, 116, 117, 86, 108, 113, 121, 110, 114, 107, 119, 130, 121, 101, 107, 126, 101, 109, 111, 108, 108, 112, 111, 114, 114, 121, 119, 133, 118, 108, 114, 117, 116, 117, 109, 106, 117, 110, 111, 125, 116, 123, 84, 115, 109, 111, 101, 117, 114, 111, 122, 127, 114, 117, 116, 108, 116, 118, 119, 128, 121, 123, 115, 116, 126, 118, 108, 111, 108, 113, 116, 110, 116, 103, 107, 109, 115, 119, 113, 116, 116, 125, 120, 109, 109, 107, 115, 140, 113, 116, 104, 113, 115, 112, 119, 109, 109, 108, 110, 120, 103, 106, 113, 147, 118, 117, 116, 136, 116, 120, 110, 123, 103, 113, 122, 101, 118, 118, 120, 108, 111, 120, 119, 109, 115, 122, 113, 112, 112, 116, 115, 116, 126, 116, 128, 120, 133, 114, 114, 120, 101, 131, 115, 121, 120, 120, 100, 112, 127, 99, 103, 112, 134, 112, 108, 115, 117, 122, 104, 117, 99, 116, 112, 121, 111, 119, 113, 120, 101, 117, 121, 122, 110, 105, 106, 102, 132, 112, 122, 117, 108, 122, 119, 132, 103, 115, 128, 111, 90, 119, 116, 123, 117, 112, 132, 118, 119, 107, 124, 128, 132, 109, 111, 111, 107, 113, 106, 123, 134, 103, 120, 123, 126, 105, 133, 112, 114, 121, 109, 111, 97, 107, 104, 124, 109, 126, 117, 107, 109, 120, 112, 124, 123, 108, 106, 129, 150, 105, 129, 108, 102, 120, 126, 120, 114, 111, 107, 107, 96, 113, 112, 122, 127, 129, 119, 112, 111, 105, 122, 111, 99, 123, 123, 120, 122, 124, 138, 113, 105, 121, 112, 103, 132, 129, 114, 123, 124, 113, 140, 116, 123, 108, 115, 105, 129, 131, 115, 116, 106, 123, 113, 120, 108, 106, 124, 120, 107, 117, 109, 109, 113, 113, 121, 122, 122, 109, 116, 110, 111, 115, 116, 129, 107, 119, 104, 116, 115, 115, 122, 108, 114, 104, 107, 102, 120, 111, 110, 116, 108, 119, 112, 126, 126, 125, 124, 117, 113, 122, 105, 107, 110, 113, 118, 116, 114, 127, 120, 115, 125, 104, 115, 116, 121, 118, 127, 119, 115, 124, 128, 108, 115, 111, 110, 117, 123, 121, 121, 118, 112, 109, 111, 119, 124, 111, 114, 106, 104, 118, 112, 119, 115, 107, 111, 103, 113, 103, 101, 115, 111, 109, 103, 111, 110, 120, 121, 106, 118, 102, 114, 120, 101, 121, 125, 114, 125, 108, 103, 124, 105, 120, 111, 122, 109, 125, 118, 118, 113, 128, 116, 114, 103, 114, 112, 107, 107, 126, 110, 119, 113, 115, 106, 134, 133, 113, 117, 120, 125, 115, 115, 111, 118, 106, 108, 118, 119, 122, 115, 118, 118, 111, 100, 128, 122, 110, 123, 120, 116, 115, 112, 116, 109, 128, 117, 110, 108, 112, 120, 108, 118, 112, 125, 111, 101, 127, 121, 124, 107, 120, 125, 114, 110, 119, 118, 119, 121, 123, 119, 121, 109, 118, 119, 128, 120, 112, 126, 121, 113, 118, 110, 111, 110, 115, 114, 113, 118, 118, 113, 124, 129, 120, 115, 123, 121, 110, 110, 122, 115, 115, 123, 114, 113, 102, 113, 110, 107, 108, 116, 102, 121, 112, 123, 106, 115, 133, 117, 103, 128, 115, 107, 106, 114, 117, 107, 126, 117, 123, 122, 112, 117, 114, 116, 115, 105, 100, 125, 114, 110, 114, 116, 129, 117, 124, 116, 107, 136, 114, 120, 128, 104, 122, 127, 123, 123, 134, 101, 130, 109, 116, 120, 119, 109, 111, 103, 121, 123, 123, 113, 122, 117, 117, 115, 121, 111, 115, 114, 116, 102, 117, 118, 119, 115, 117, 104, 113, 105, 126, 121, 111, 111, 118, 118, 118, 121, 116, 121, 102, 113, 121, 131, 110, 115, 109, 128, 115, 132, 122, 118, 112, 119, 112, 124, 122, 124, 120, 120, 120, 114, 109, 118, 121, 124, 105, 105, 114, 102, 127, 118, 119, 122, 110, 114, 116, 114, 114, 112, 113, 114, 137, 104, 122, 120, 117, 116, 105, 110, 121, 115, 110, 115, 117, 110, 119, 109, 117, 111, 111, 113, 124, 127, 120, 123, 126, 118, 125, 113, 104, 125, 120, 125, 111, 117, 111, 108, 111, 117, 115, 115, 115, 120, 104, 119, 123, 111, 117, 134, 118, 108, 123, 113, 113, 116, 114, 109, 110, 105, 109, 111, 119, 121, 119, 109, 105, 124, 119, 105, 115, 114, 112, 116, 118, 122, 114, 123, 126, 115, 107, 112, 99, 126, 111, 107, 116, 120, 117, 114, 114, 105, 119, 118, 111, 117, 111, 120, 116, 130, 115, 117, 104, 101, 120, 121, 120, 106, 110, 127, 117, 108, 114, 113, 114, 121, 131, 109, 119, 113, 116, 112, 119, 127, 114, 115, 113, 109, 120, 114, 118, 107, 108, 116, 104, 116, 114, 114, 114, 108, 112, 121, 121, 114, 124, 122, 125, 95, 109, 103, 113, 115, 123, 121, 138, 113, 125, 117, 93, 121, 108, 107, 120, 115, 105, 111, 113, 111, 111, 105, 113, 112, 115, 111, 137, 126, 106, 115, 111, 128, 104, 120, 110, 107, 104, 117, 112, 108, 121, 99, 117, 122, 112, 113, 107, 109, 118, 119, 109, 109, 107, 98, 111, 112, 118, 118, 126, 108, 132, 120, 111, 108, 134, 92, 116, 114, 109, 131, 108, 102, 119, 106, 109, 130, 97, 133, 111, 117, 117, 115, 135, 109, 118, 102, 111, 105, 110, 112, 119, 125, 112, 110, 109, 123, 119, 102, 116, 138, 118, 119, 113, 118, 114, 104, 118, 128, 120, 112, 122, 114, 130, 113, 110, 114, 110, 98, 116, 113, 121, 118, 109, 119, 116, 102, 119, 114, 91, 119, 114, 116, 106, 110, 125, 119, 116, 104, 117, 119, 121, 127, 109, 113, 106, 127, 111, 114, 124, 112, 117, 124, 130, 108, 114, 107, 123, 116, 111, 107, 117, 118, 122, 110, 119, 122, 117, 125, 107, 113, 132, 110, 122, 104, 109, 113, 116, 123, 121, 121, 129, 117, 122, 109, 117, 120, 119, 107, 107, 122, 115, 118, 122, 106, 101, 126, 105, 115, 119, 118, 106, 123, 93, 117, 113, 101, 115, 113, 119, 111, 107, 122, 110, 107, 104, 116, 127, 123, 104, 122, 118, 114, 101, 132, 107, 93, 112, 94, 118, 128, 119, 120, 103, 120, 116, 117, 115, 109, 113, 114, 115, 120, 115, 118, 118, 107, 122, 120, 117, 120, 122, 118, 115, 111, 142, 121, 118, 112, 116, 112, 102, 116, 113, 115, 123, 129, 109, 97, 97, 123, 113, 122, 114, 111, 118, 111, 104, 119, 111, 113, 131, 117, 106, 106, 125, 131, 126, 116, 119, 118, 113, 110, 105, 119, 125, 105, 123, 120, 118, 132, 114, 121, 120, 119, 122, 99, 120, 126, 114, 112, 107, 128, 106, 125, 123, 110, 114, 117, 110, 125, 125, 117, 116, 109, 113, 113, 105, 109, 126, 100, 118, 115, 126, 119, 113, 116, 125, 106, 123, 104, 100, 121, 123, 119, 122, 109, 144, 112, 113, 121, 105, 123, 112, 134, 108, 118, 118, 112, 126, 110, 108, 111, 120, 127, 111, 92, 115, 102, 103, 117, 109, 102, 103, 112, 118, 108, 113, 113, 103, 111, 112, 111, 114, 109, 107, 115, 116, 109, 111, 110, 115, 107, 107, 100, 121, 119, 95, 120, 128, 116, 97, 118, 107, 127, 119, 128, 109, 126, 110, 118, 101, 99, 118, 104, 113, 102, 122, 110, 118, 121, 115, 106, 122, 118, 104, 110, 111, 116, 112, 118, 118, 107, 114, 133, 117, 122, 107, 134, 132, 105, 111, 120, 119, 118, 114, 109, 115, 121, 115, 120, 115, 124, 117, 111, 113, 118, 119, 111, 125, 105, 105, 128, 126, 119, 129, 116, 110, 114, 106, 122, 110, 115, 111, 118, 120, 115, 108, 99, 127, 124, 118, 117, 114, 115, 120, 113, 119, 86, 117, 114, 108, 121, 116, 116, 106, 103, 124, 106, 116, 114, 119, 105, 115, 109, 106, 107, 118, 117, 123, 128, 102, 102, 114, 110, 109, 110, 97, 120, 126, 124, 109, 119, 120, 117, 125, 112, 117, 110, 118, 117, 95, 124, 110, 137, 114, 114, 121, 125, 112, 127, 114, 102, 123, 118, 107, 122, 138, 120, 107, 132, 107, 105, 105, 112, 95, 124, 110, 113, 118, 111, 118, 108, 108, 99, 117, 121, 113, 97, 108, 108, 104, 115, 125, 105, 107, 111, 105, 108, 100, 95, 111, 119, 122, 100, 97, 115, 109, 100, 114, 114, 103, 117, 111, 110, 112, 121, 105, 110, 118, 115, 126, 103, 109, 113, 106, 119, 115, 122, 119, 123, 102, 109, 128, 128, 113, 90, 137, 111, 125, 114, 104, 101, 101, 116, 122, 105, 118, 135, 115, 116, 114, 129, 103, 122, 103, 115, 111, 109, 127, 118, 114, 112, 113, 115, 120, 121, 114, 110, 120, 117, 127, 110, 111, 102, 119, 102, 112, 100, 106, 138, 112, 110, 113, 103, 126, 105, 124, 114, 107, 109, 102, 117, 110, 109, 115, 114, 120, 114, 110, 119, 110, 113, 108, 124, 115, 113, 106, 107, 113, 106, 114, 102, 117, 110, 114, 109, 110, 102, 116, 115, 117, 122, 109, 122, 107, 104, 110, 111, 116, 122, 102, 125, 124, 130, 127, 106, 112, 119, 118, 119, 116, 111, 110, 112, 117, 121, 104, 103, 116, 123, 105, 102, 115, 104, 127, 113, 117, 116, 118, 115, 130, 116, 143, 120, 108, 108, 113, 111, 118, 99, 116, 110, 117, 114, 118, 110, 114, 109, 124, 120, 126, 114, 106, 112, 118, 108, 111, 120, 108, 121, 111, 110, 109, 104, 108, 111, 107, 113, 117, 117, 101, 121, 129, 126, 104, 94, 104, 108, 119, 106, 118, 120, 121, 111, 113, 134, 111, 117, 101, 99, 114, 125, 115, 130, 111, 120, 109, 108, 112, 121, 114, 118, 113, 113, 119, 103, 115, 120, 109, 104, 114, 123, 119, 110, 110, 97, 117, 116, 111, 105, 108, 118, 120, 105, 113, 114, 110, 110, 109, 103, 117, 105, 114, 119, 118, 114, 108, 119, 115, 108, 105, 128, 102, 122, 117, 108, 117, 108, 112, 130, 110, 125, 111, 117, 119, 113, 116, 109, 124, 95, 121, 111, 103, 109, 120, 109, 120, 114, 114, 111, 136, 122, 106, 127, 111, 111, 110, 104, 99, 133, 115, 122, 116, 117, 100, 107, 112, 105, 108, 114, 123, 115, 113, 114, 112, 123, 122, 116, 111, 121, 108, 107, 126, 117, 122, 120, 113, 120, 111, 121, 115, 114, 120, 128, 109, 118, 99, 124, 108, 119, 121, 110, 126, 108, 123, 110, 115, 121, 108, 111, 113, 112, 119, 110, 111, 127, 112, 117, 118, 130, 100, 116, 103, 119, 120, 118, 106, 102, 112, 112, 104, 111, 117, 118, 116, 115, 119, 125, 114, 102, 128, 112, 113, 120, 103, 122, 110, 127, 116, 102, 122, 101, 110, 110, 109, 91, 119, 113, 105, 121, 110, 124, 108, 114, 113, 104, 118, 107, 107, 116, 123, 105, 116, 123, 122, 122, 120, 100, 109, 102, 110, 114, 134, 115, 117, 118, 114, 112, 113, 133, 131, 106, 119, 103, 116, 136, 121, 121, 111, 119, 113, 122, 124, 118, 114, 113, 121, 107, 116, 117, 117, 102, 130, 120, 113, 106, 108, 116, 127, 118, 111, 125, 118, 116, 111, 106, 114, 114, 118, 108, 123, 118, 118, 106, 107, 107, 116, 119, 116, 115, 109, 119, 118, 120, 112, 107, 119, 107, 104, 114, 117, 107, 115, 110, 112, 114, 124, 117, 113, 114, 112, 111, 111, 113, 119, 111, 119, 131, 106, 116, 115, 118, 118, 113, 118, 111, 115, 116, 139, 118, 112, 113, 102, 121, 114, 109, 109, 90, 115, 115, 112, 115, 117, 130, 113, 116, 117, 112, 124, 113, 117, 115, 104, 121, 112, 113, 120, 113, 113, 116, 122, 128, 114, 117, 119, 135, 117, 118, 122, 107, 112, 115, 108, 115, 128, 113, 100, 114, 124, 108, 117, 125, 106, 124, 113, 104, 103, 114, 120, 119, 77, 127, 116, 125, 118, 115, 108, 112, 112, 114, 99, 119, 123, 105, 118, 125, 119, 106, 113, 123, 116, 116, 116, 116, 118, 106, 98, 103, 116, 118, 117, 118, 109, 113, 105, 112, 114, 101, 110, 114, 91, 124, 110, 117, 108, 114, 118, 119, 109, 123, 119, 102, 117, 114, 111, 123, 112, 109, 114, 115, 119, 105, 126, 118, 112, 119, 108, 146, 118, 115, 99, 114, 112, 116, 117, 117, 114, 126, 103, 117, 102, 129, 125, 117, 117, 113, 119, 109, 114, 126, 119, 107, 116, 125, 100, 113, 120, 114, 118, 106, 104, 116, 103, 112, 115, 109, 105, 108, 119, 113, 120, 119, 115, 89, 115, 119, 107, 115, 115, 114, 114, 129, 114, 146, 105, 123, 117, 120, 111, 119, 119, 110, 115, 118, 107, 110, 114, 114, 114, 102, 125, 120, 112, 122, 113, 114, 140, 113, 114, 127, 115, 103, 106, 107, 113, 117, 127, 111, 116, 126, 126, 116, 113, 117, 118, 115, 122, 123, 106, 119, 118, 111, 117, 102, 110, 122, 110, 112, 119, 118, 125, 125, 120, 128, 112, 101, 115, 77, 107, 122, 112, 122, 126, 95, 113, 113, 113, 114, 112, 114, 110, 106, 109, 123, 126, 113, 110, 113, 112, 119, 119, 108, 112, 107, 110, 108, 113, 116, 124, 122, 113, 120, 116, 116, 124, 119, 107, 116, 120, 115, 121, 115, 95, 116, 124, 109, 111, 131, 124, 123, 103, 120, 125, 107, 98, 112, 118, 114, 119, 105, 114, 112, 120, 113, 96, 138, 117, 108, 103, 107, 110, 123, 115, 106, 121, 105, 103, 100, 107, 114, 87, 116, 107, 108, 114, 103, 106, 118, 109, 118, 119, 120, 125, 111, 123, 114, 112, 112, 105, 115, 133, 120, 113, 118, 123, 113, 113, 115, 119, 109, 109, 103, 111, 116, 115, 112, 112, 110, 109, 115, 116, 113, 127, 111, 125, 119, 115, 116, 115, 115, 120, 108, 123, 115, 120, 110, 111, 109, 116, 125, 131, 108, 115, 114, 107, 110, 125, 99, 111, 108, 117, 109, 117, 113, 113, 112, 115, 112, 112, 114, 107, 117, 102, 110, 110, 125, 133, 108, 117, 106, 98, 146, 120, 124, 109, 108, 118, 91, 126, 109, 115, 110, 126, 100, 110, 107, 131, 120, 122, 109, 109, 112, 111, 106, 116, 110, 115, 108, 100, 118, 123, 110, 110, 113, 126, 120, 105, 103, 117, 116, 111, 106, 116, 110, 109, 117, 99, 115, 115, 121, 104, 117, 104, 121, 117, 119, 101, 112, 116, 120, 118, 113, 126, 118, 109, 118, 100, 113, 104, 123, 107, 123, 115, 105, 145, 128, 104, 119, 118, 129, 114, 108, 105, 117, 120, 112, 102, 118, 104, 111, 109, 109, 106, 104, 116, 116, 124, 131, 113, 114, 131, 126, 119, 108, 95, 138, 119, 107, 121, 120, 106, 110, 110, 98, 109, 107, 94, 125, 118, 108, 115, 110, 114, 117, 112, 107, 114, 119, 106, 123, 128, 137, 104, 108, 90, 107, 119, 109, 111, 113, 112, 129, 112, 104, 122, 124, 107, 122, 128, 116, 131, 111, 104, 103, 131, 98, 123, 123, 119, 124, 117, 143, 103, 107, 120, 108, 107, 112, 110, 111, 113, 88, 102, 126, 123, 113, 131, 110, 110, 114, 114, 110, 120, 109, 133, 124, 98, 117, 122, 118, 103, 116, 115, 109, 124, 119, 108, 114, 114, 109, 125, 117, 127, 113, 107, 111, 131, 118, 114, 119, 116, 114, 130, 124, 106, 113, 108, 127, 111, 111, 128, 107, 119, 135, 117, 115, 88, 115, 126, 98, 139, 133, 108, 108, 111, 114, 118, 125, 136, 126, 128, 124, 115, 120, 130, 122, 113, 128, 106, 119, 125, 108, 125, 111, 97, 115, 112, 131, 112, 130, 117, 125, 113, 127, 116, 133, 126, 124, 133, 102, 111, 104, 110, 99, 100, 110, 115, 103, 102, 110, 127, 106, 124, 109, 104, 118, 105, 98, 125, 112, 107, 101, 118, 150, 101, 124, 127, 106, 135, 117, 108, 119, 109, 108, 119, 107, 124, 109, 115, 103, 120, 122, 122, 108, 118, 113, 119, 123, 106, 120, 115, 115, 98, 119, 117, 112, 97, 125, 107, 116, 101, 97, 106, 136, 118, 99, 107, 126, 95, 116, 121, 133, 103, 85, 114, 109, 117, 124, 113, 126, 98, 106, 124, 126, 130, 104, 119, 116, 102, 115, 111, 112, 98, 110, 115, 110, 126, 109, 119, 118, 139, 102, 144, 119, 117, 127, 118, 109, 122, 119, 102, 94, 135, 114, 122, 110, 94, 106, 108, 114, 98, 111, 121, 127, 114, 112, 107, 117, 123, 107, 123, 108, 99, 120, 115, 101, 102, 112, 128, 106, 115, 128, 116, 124, 117, 112, 94, 123, 100, 102, 121, 119, 128, 116, 105, 119, 127, 111, 112, 112, 113, 125, 100, 127, 99, 112, 113, 123, 116, 122, 107, 102, 113, 105, 114, 120, 103, 105, 125, 121, 127, 111, 111, 109, 141, 108, 111, 97, 108, 123, 117, 118, 122, 105, 146, 114, 107, 119, 100, 131, 106, 115, 106, 113, 117, 109, 134, 111, 106, 119, 109, 133, 91, 114, 164, 115, 112, 116, 121, 129, 113, 117, 121, 108, 102, 116, 115, 108, 121, 111, 124, 114, 121, 124, 92, 112, 108, 123, 81, 115, 115, 118, 117, 113, 109, 108, 122, 116, 127, 110, 117, 113, 103, 111, 117, 115, 110, 116, 106, 114, 118, 121, 111, 108, 108, 115, 111, 139, 99, 113, 102, 129, 98, 115, 131, 116, 118, 118, 114, 109, 121, 103, 111, 115, 94, 118, 127, 122, 116, 115, 103, 121, 105, 131, 120, 102, 133, 110, 111, 113, 111, 109, 117, 114, 106, 98, 109, 122, 113, 130, 125, 117, 113, 105, 113, 109, 109, 119, 114, 113, 111, 111, 118, 117, 108, 111, 101, 122, 113, 111, 119, 118, 123, 105, 120, 109, 120, 109, 132, 110, 131, 113, 113, 109, 123, 106, 129, 116, 106, 109, 112, 114, 109, 122, 113, 119, 115, 116, 105, 100, 118, 115, 113, 111, 113, 102, 107, 117, 125, 120, 115, 109, 96, 112, 109, 123, 111, 123, 113, 116, 114, 107, 120, 95, 127, 115, 117, 114, 120, 103, 118, 114, 105, 119, 109, 105, 105, 110, 99, 128, 120, 105, 125, 113, 115, 138, 113, 103, 116, 126, 122, 113, 117, 111, 112, 121, 114, 112, 109, 114, 112, 119, 126, 122, 110, 97, 126, 105, 132, 133, 106, 117, 105, 112, 123, 108, 108, 112, 110, 129, 109, 109, 114, 117, 114, 108, 124, 105, 112, 118, 112, 110, 122, 113, 96, 117, 123, 112, 100, 116, 104, 119, 111, 99, 112, 126, 129, 112, 117, 117, 112, 118, 111, 109, 118, 116, 124, 118, 106, 118, 113, 113, 108, 104, 125, 127, 121, 113, 119, 123, 118, 115, 105, 139, 125, 131, 124, 101, 105, 121, 106, 136, 99, 116, 118, 122, 117, 110, 111, 109, 118, 102, 119, 126, 107, 110, 117, 114, 104, 95, 108, 119, 115, 117, 111, 111, 127, 119, 107, 115, 124, 115, 104, 117, 115, 104, 111, 104, 121, 106, 116, 120, 115, 124, 111, 118, 126, 101, 110, 123, 113, 117, 135, 113, 114, 119, 115, 124, 129, 116, 119, 108, 118, 142, 119, 106, 115, 119, 109, 106, 92, 113, 114, 123, 107, 118, 131, 113, 129, 114, 114, 119, 116, 109, 118, 118, 114, 122, 108, 124, 111, 116, 106, 116, 115, 105, 109, 117, 116, 115, 122, 120, 124, 120, 86, 111, 124, 125, 103, 114, 106, 112, 115, 121, 121, 103, 108, 114, 114, 123, 121, 148, 102, 104, 117, 114, 112, 137, 111, 111, 102, 122, 122, 116, 99, 115, 118, 94, 126, 111, 117, 106, 113, 127, 109, 135, 107, 120, 106, 115, 110, 104, 124, 111, 100, 107, 109, 115, 117, 129, 108, 119, 110, 122, 123, 113, 110, 115, 117, 116, 107, 113, 107, 105, 111, 115, 111, 105, 110, 123, 125, 112, 104, 112, 122, 117, 126, 119, 127, 120, 118, 99, 117, 82, 120, 112, 107, 115, 128, 108, 120, 111, 95, 112, 131, 111, 113, 108, 106, 127, 112, 116, 119, 106, 101, 107, 115, 105, 110, 145, 127, 122, 107, 120, 113, 114, 111, 118, 116, 109, 115, 116, 118, 105, 138, 116, 120, 119, 104, 113, 98, 125, 118, 119, 116, 127, 110, 113, 130, 101, 103, 135, 120, 115, 108, 111, 122, 108, 123, 104, 116, 113, 109, 115, 122, 108, 113, 118, 110, 112, 125, 122, 110, 119, 119, 123, 106, 116, 120, 129, 108, 124, 105, 124, 115, 114, 118, 105, 102, 107, 124, 120, 133, 118, 127, 109, 111, 116, 118, 111, 120, 116, 112, 110, 106, 117, 127, 116, 121, 122, 123, 110, 112, 101, 102, 106, 112, 108, 112, 116, 119, 115, 109, 124, 123, 112, 114, 123, 113, 109, 118, 107, 119, 103, 111, 124, 116, 115, 127, 122, 108, 123, 111, 114, 118, 107, 102, 118, 125, 121, 126, 114, 125, 122, 108, 102, 111, 109, 123, 127, 120, 113, 113, 115, 97, 118, 113, 108, 107, 116, 107, 114, 106, 118, 129, 95, 112, 108, 100, 113, 114, 115, 100, 116, 111, 110, 122, 111, 125, 116, 113, 112, 115, 113, 122, 113, 108, 111, 113, 115, 117, 112, 108, 108, 111, 102, 119, 104, 120, 109, 109, 112, 112, 115, 109, 109, 116, 121, 120, 125, 100, 121, 114, 123, 114, 111, 107, 122, 104, 109, 112, 111, 118, 116, 109, 121, 109, 127, 120, 120, 119, 112, 106, 103, 105, 97, 114, 111, 115, 112, 107, 118, 119, 112, 102, 111, 109, 120, 125, 121, 111, 109, 133, 108, 127, 110, 110, 129, 122, 111, 114, 126, 117, 117, 117, 119, 106, 98, 101, 116, 105, 111, 124, 112, 115, 109, 113, 121, 130, 119, 120, 114, 121, 120, 104, 106, 107, 115, 118, 111, 112, 114, 119, 113, 110, 119, 123, 106, 114, 120, 115, 116, 111, 106, 111, 113, 113, 120, 113, 110, 109, 119, 123, 108, 117, 117, 118, 115, 111, 121, 118, 116, 107, 112, 112, 124, 117, 111, 103, 119, 114, 106, 114, 115, 107, 116, 101, 123, 118, 117, 116, 121, 112, 111, 117, 122, 121, 128, 108, 112, 116, 122, 106, 110, 127, 117, 117, 100, 110, 107, 113, 104, 113, 121, 123, 118, 107, 106, 109, 116, 112, 110, 108, 112, 110, 101, 114, 119, 124, 118, 113, 110, 115, 122, 112, 106, 111, 117, 122, 106, 110, 108, 113, 117, 114, 99, 117, 125, 110, 120, 121, 133, 116, 125, 109, 116, 110, 122, 112, 108, 111, 122, 91, 114, 115, 119, 102, 105, 107, 104, 111, 115, 132, 115, 110, 115, 107, 123, 115, 125, 124, 109, 127, 113, 100, 102, 110, 106, 137, 104, 108, 125, 141, 127, 110, 116, 122, 125, 106, 127, 114, 104, 110, 116, 108, 119, 122, 113, 105, 106, 121, 120, 113, 115, 123, 110, 121, 113, 129, 120, 111, 116, 112, 118, 122, 120, 113, 134, 122, 121, 120, 92, 134, 114, 109, 124, 115, 113, 121, 119, 116, 118, 115, 117, 123, 119, 122, 113, 115, 109, 118, 117, 104, 117, 121, 111, 99, 111, 124, 116, 98, 110, 115, 125, 118, 119, 107, 114, 114, 115, 113, 119, 120, 113, 115, 118, 105, 127, 118, 123, 104, 117, 112, 119, 114, 122, 121, 111, 126, 125, 112, 117, 122, 121, 126, 122, 120, 115, 118, 109, 124, 113, 95, 111, 105, 131, 113, 92, 108, 119, 105, 121, 114, 116, 124, 125, 101, 116, 122, 115, 111, 105, 119, 119, 126, 118, 111, 123, 107, 117, 108, 124, 124, 118, 164, 115, 129, 122, 112, 121, 110, 122, 118, 117, 124, 124, 118, 102, 98, 109, 119, 115, 116, 115, 116, 131, 122, 118, 111, 115, 128, 104, 122, 113, 115, 109, 116, 115, 124, 106, 106, 149, 106, 109, 111, 110, 114, 109, 111, 112, 116, 112, 135, 100, 108, 114, 99, 105, 121, 106, 123, 115, 118, 122, 119, 108, 111, 119, 108, 118, 122, 110, 109, 119, 119, 111, 120, 121, 113, 119, 117, 125, 108, 104, 103, 118, 132, 123, 109, 118, 121, 116, 113, 120, 122, 108, 112, 109, 108, 133, 118, 118, 95, 117, 116, 113, 109, 105, 127, 116, 120, 90, 132, 114, 109, 129, 115, 111, 125, 123, 103, 134, 109, 104, 111, 115, 126, 108, 126, 126, 118, 103, 98, 126, 114, 115, 139, 123, 94, 116, 103, 110, 115, 120, 116, 121, 119, 111, 118, 128, 116, 100, 116, 112, 114, 109, 116, 114, 112, 104, 109, 118, 98, 106, 115, 123, 130, 123, 95, 126, 116, 123, 107, 115, 105, 105, 111, 111, 118, 123, 124, 103, 118, 131, 106, 111, 111, 118, 114, 110, 110, 116, 105, 124, 112, 116, 134, 110, 129, 123, 113, 132, 123, 123, 123, 112, 132, 126, 99, 111, 137, 120, 129, 120, 114, 116, 117, 107, 108, 123, 125, 118, 119, 119, 111, 109, 120, 108, 108, 117, 103, 116, 127, 135, 110, 100, 120, 104, 115, 112, 109, 118, 115, 124, 122, 108, 93, 105, 112, 100, 100, 131, 129, 102, 99, 119, 106, 115, 124, 120, 119, 115, 108, 117, 120, 118, 127, 102, 109, 118, 103, 110, 118, 119, 124, 113, 116, 117, 100, 115, 103, 109, 103, 120, 123, 135, 133, 122, 124, 119, 115, 119, 127, 115, 110, 122, 114, 117, 111, 112, 107, 117, 114, 112, 124, 97, 124, 119, 113, 145, 115, 120, 99, 118, 107, 110, 101, 118, 100, 115, 109, 135, 105, 121, 121, 109, 115, 113, 104, 123, 136, 116, 113, 119, 127, 125, 113, 112, 107, 117, 118, 121, 118, 120, 116, 101, 129, 113, 110, 131, 126, 133, 118, 109, 121, 106, 98, 120, 124, 122, 124, 119, 121, 117, 120, 120, 104, 108, 127, 106, 116, 118, 112, 113, 126, 124, 122, 98, 108, 127, 117, 107, 111, 126, 122, 121, 105, 137, 105, 124, 110, 101, 120, 113, 146, 119, 105, 139, 128, 116, 111, 123, 115, 102, 114, 109, 110, 114, 132, 116, 114, 114, 114, 109, 118, 110, 103, 112, 109, 117, 113, 130, 112, 97, 124, 112, 116, 117, 119, 133, 117, 117, 109, 119, 108, 116, 106, 124, 104, 120, 147, 101, 112, 123, 103, 130, 104, 125, 122, 110, 106, 114, 118, 121, 116, 96, 117, 117, 117, 105, 124, 124, 107, 114, 112, 100, 112, 118, 122, 112, 116, 112, 117, 112, 116, 116, 105, 119, 122, 123, 108, 113, 119, 120, 115, 112, 113, 110, 113, 114, 118, 122, 121, 115, 115, 116, 115, 115, 112, 119, 114, 119, 119, 109, 116, 101, 110, 111, 117, 119, 116, 118, 120, 116, 113, 106, 111, 120, 119, 116, 113, 114, 123, 110, 118, 106, 112, 110, 114, 120, 107, 119, 116, 112, 113, 113, 111, 116, 121, 114, 119, 123, 116, 113, 116, 61, 118, 112, 119, 162, 105, 110, 112, 125, 118, 111, 113, 111, 108, 119, 117, 116, 104, 114, 115, 118, 113, 113, 105, 111, 112, 111, 113, 118, 120, 113, 113, 113, 116, 106, 117, 122, 114, 114, 114, 114, 116, 111, 112, 122, 123, 122, 116, 113, 108, 111, 117, 109, 122, 121, 119, 118, 114, 117, 117, 115, 110, 110, 108, 112, 117, 118, 115, 113, 112, 118, 122, 113, 112, 117, 114, 91, 121, 114, 119, 115, 113, 114, 117, 110, 118, 114, 113, 113, 116, 112, 111, 113, 115, 113, 117, 109, 122, 109, 102, 116, 118, 107, 117, 109, 112, 108, 117, 119, 122, 115, 113, 122, 120, 115, 120, 98, 113, 115, 114, 116, 123, 118, 127, 119, 122, 110, 110, 112, 116, 115, 109, 119, 116, 121, 113, 121, 109, 119, 109, 113, 116, 112, 112, 118, 108, 114, 107, 116, 117, 110, 120, 104, 117, 121, 106, 111, 115, 101, 112, 105, 118, 110, 110, 113, 112, 116, 117, 93, 109, 188, 111, 108, 109, 113, 117, 111, 118, 110, 102, 115, 117, 122, 116, 120, 116, 118, 129, 111, 113, 119, 116, 102, 115, 118, 113, 120, 112, 115, 132, 120, 111, 121, 103, 120, 117, 123, 115, 114, 111, 117, 112, 115, 113, 118, 118, 117, 111, 114, 115, 113, 119, 110, 116, 111, 114, 114, 117, 110, 109, 109, 111, 120, 120, 121, 118, 113, 119, 118, 118, 110, 109, 112, 119, 113, 121, 115, 115, 114, 116, 120, 116, 113, 102, 115, 113, 116, 120, 118, 116, 110, 114, 114, 110, 114, 111, 115, 112, 111, 115, 118, 112, 119, 114, 114, 113, 114, 112, 123, 120, 112, 115, 117, 96, 118, 120, 115, 111, 111, 114, 120, 125, 117, 119, 111, 118, 117, 115, 112, 115, 119, 116, 114, 114, 114, 118, 118, 113, 114, 120, 118, 109, 109, 120, 116, 111, 133, 111, 114, 113, 111, 114, 117, 118, 128, 119, 117, 118, 119, 106, 120, 119, 115, 118, 122, 113, 120, 115, 117, 120, 124, 111, 110, 120, 113, 110, 113, 119, 114, 116, 117, 113, 114, 117, 116, 116, 113, 120, 113, 108, 116, 118, 117, 118, 123, 115, 111, 120, 113, 120, 114, 121, 122, 118, 114, 119, 118, 120, 117, 106, 107, 117, 117, 118, 116, 115, 110, 115, 117, 117, 117, 112, 119, 112, 117, 114, 114, 117, 117, 119, 113, 117, 120, 114, 112, 118, 106, 109, 112, 112, 112, 111, 103, 113, 123, 115, 115, 114, 115, 111, 115, 115, 107, 113, 118, 131, 116, 111, 109, 118, 115, 116, 120, 113, 121, 110, 122, 119, 100, 120, 120, 119, 111, 110, 111, 118, 118, 111, 118, 108, 109, 134, 110, 115, 107, 108, 108, 117, 128, 110, 111, 119, 117, 106, 106, 131, 102, 119, 123, 116, 124, 107, 115, 120, 113, 106, 113, 116, 102, 135, 109, 121, 102, 114, 107, 126, 101, 124, 119, 107, 117, 113, 110, 117, 120, 115, 115, 119, 117, 120, 117, 119, 116, 111, 122, 126, 112, 117, 115, 112, 113, 124, 107, 109, 123, 111, 111, 113, 130, 122, 113, 113, 110, 105, 113, 111, 112, 108, 110, 111, 86, 108, 111, 127, 114, 120, 113, 121, 104, 120, 113, 111, 121, 111, 112, 107, 110, 102, 97, 117, 110, 105, 124, 113, 112, 106, 122, 110, 109, 115, 122, 122, 136, 129, 107, 107, 112, 114, 96, 119, 108, 104, 120, 106, 119, 119, 108, 110, 116, 97, 122, 125, 112, 106, 112, 119, 115, 114, 102, 118, 102, 110, 115, 127, 118, 108, 118, 107, 112, 102, 105, 113, 119, 98, 119, 112, 125, 106, 110, 119, 122, 121, 101, 114, 112, 122, 131, 115, 105, 123, 107, 107, 113, 106, 103, 116, 124, 118, 118, 117, 119, 128, 103, 108, 126, 116, 102, 117, 105, 109, 126, 108, 107, 114, 114, 114, 106, 101, 114, 112, 115, 122, 109, 115, 107, 121, 111, 119, 119, 108, 112, 121, 113, 122, 116, 105, 103, 122, 129, 118, 120, 112, 131, 111, 123, 104, 123, 119, 109, 96, 117, 111, 122, 118, 106, 132, 113, 112, 114, 120, 108, 104, 110, 123, 125, 128, 123, 105, 119, 113, 117, 116, 111, 106, 110, 116, 112, 120, 107, 112, 108, 111, 102, 131, 105, 107, 120, 122, 118, 113, 121, 131, 116, 114, 114, 111, 112, 107, 107, 111, 130, 113, 99, 102, 117, 111, 116, 108, 108, 120, 109, 106, 115, 114, 116, 124, 104, 121, 140, 110, 128, 117, 122, 107, 115, 117, 101, 115, 112, 133, 128, 118, 111, 112, 112, 126, 117, 118, 92, 116, 110, 109, 112, 101, 104, 114, 112, 115, 108, 113, 118, 112, 111, 97, 113, 110, 122, 107, 106, 118, 118, 99, 124, 113, 106, 116, 114, 102, 125, 113, 102, 118, 122, 112, 118, 112, 103, 107, 112, 108, 115, 115, 129, 113, 113, 100, 109, 106, 106, 132, 115, 108, 112, 110, 110, 113, 116, 113, 114, 125, 99, 126, 112, 122, 105, 107, 118, 106, 118, 110, 116, 107, 108, 125, 102, 103, 115, 115, 113, 116, 109, 99, 113, 119, 111, 124, 109, 112, 123, 124, 121, 107, 107, 116, 116, 115, 112, 112, 99, 112, 111, 117, 110, 119, 104, 121, 111, 113, 131, 127, 109, 112, 110, 114, 119, 110, 119, 112, 111, 113, 134, 125, 110, 110, 118, 137, 111, 108, 118, 107, 110, 113, 112, 101, 101, 117, 122, 117, 131, 117, 116, 113, 106, 109, 124, 116, 124, 118, 103, 108, 125, 120, 126, 109, 104, 107, 120, 112, 110, 138, 123, 116, 116, 115, 107, 117, 129, 129, 114, 125, 116, 117, 130, 111, 109, 115, 118, 107, 112, 115, 105, 112, 115, 120, 94, 121, 110, 114, 120, 101, 114, 118, 101, 115, 119, 108, 115, 104, 110, 125, 107, 117, 129, 120, 120, 131, 119, 107, 110, 122, 116, 117, 111, 96, 107, 122, 113, 115, 109, 115, 113, 117, 108, 113, 109, 115, 122, 125, 116, 109, 116, 106, 101, 125, 120, 120, 121, 115, 107, 121, 117, 114, 113, 117, 107, 112, 111, 115, 113, 117, 121, 112, 118, 105, 114, 112, 106, 123, 115, 116, 109, 113, 120, 94, 98, 123, 120, 108, 113, 118, 104, 115, 122, 117, 114, 105, 122, 114, 104, 109, 121, 107, 116, 108, 110, 120, 115, 116, 109, 119, 112, 112, 118, 120, 106, 115, 112, 121, 124, 113, 117, 119, 115, 112, 106, 123, 92, 116, 118, 116, 126, 123, 124, 124, 108, 111, 125, 114, 121, 105, 132, 104, 121, 105, 125, 121, 105, 110, 103, 113, 117, 120, 114, 109, 118, 115, 117, 115, 102, 124, 113, 107, 125, 114, 116, 107, 117, 114, 127, 138, 102, 114, 123, 113, 101, 121, 114, 117, 120, 122, 120, 119, 109, 123, 112, 117, 109, 117, 109, 120, 120, 113, 119, 112, 111, 111, 116, 115, 116, 113, 117, 109, 127, 113, 114, 97, 126, 108, 120, 123, 111, 118, 127, 124, 108, 115, 121, 114, 124, 108, 113, 109, 111, 105, 127, 111, 108, 116, 115, 104, 112, 102, 120, 115, 128, 115, 125, 111, 107, 110, 103, 115, 119, 102, 116, 117, 117, 104, 118, 107, 113, 122, 116, 109, 119, 112, 115, 110, 106, 103, 115, 128, 120, 99, 135, 114, 109, 115, 107, 102, 120, 125, 110, 110, 117, 117, 114, 118, 116, 117, 118, 124, 109, 106, 116, 110, 105, 110, 106, 105, 114, 120, 117, 110, 113, 116, 120, 145, 121, 101, 121, 114, 127, 117, 89, 115, 110, 116, 107, 124, 116, 104, 107, 116, 117, 125, 106, 117, 105, 116, 117, 118, 115, 113, 114, 118, 114, 115, 118, 122, 110, 120, 109, 115, 120, 117, 107, 112, 109, 129, 117, 116, 105, 108, 103, 118, 108, 126, 113, 109, 114, 112, 110, 116, 107, 106, 112, 110, 119, 128, 115, 115, 109, 123, 119, 115, 110, 114, 119, 111, 108, 111, 105, 125, 133, 115, 107, 128, 117, 131, 105, 128, 119, 111, 113, 125, 109, 126, 119, 112, 130, 123, 103, 118, 111, 122, 123, 119, 122, 121, 113, 93, 110, 128, 130, 113, 121, 116, 115, 111, 120, 102, 119, 115, 115, 111, 119, 113, 114, 122, 110, 106, 115, 109, 111, 112, 123, 126, 111, 113, 133, 110, 105, 120, 121, 119, 111, 97, 110, 128, 115, 109, 110, 135, 114, 123, 113, 102, 110, 123, 111, 107, 114, 107, 101, 110, 111, 127, 114, 118, 121, 109, 125, 123, 137, 98, 109, 122, 119, 113, 108, 111, 112, 102, 104, 106, 133, 106, 134, 114, 119, 106, 129, 118, 124, 121, 116, 121, 115, 120, 120, 116, 116, 112, 110, 115, 110, 116, 109, 111, 108, 97, 110, 122, 126, 114, 110, 113, 118, 115, 107, 110, 104, 116, 116, 120, 133, 106, 113, 116, 120, 109, 116, 98, 111, 109, 125, 128, 116, 100, 108, 111, 102, 112, 117, 97, 95, 98, 112, 106, 128, 128, 106, 119, 111, 99, 111, 115, 114, 141, 119, 108, 103, 118, 117, 102, 122, 113, 103, 114, 111, 115, 109, 117, 117, 123, 134, 121, 105, 125, 118, 94, 114, 118, 106, 119, 112, 110, 116, 123, 115, 113, 122, 106, 114, 134, 99, 109, 119, 116, 100, 103, 130, 114, 98, 107, 116, 136, 109, 117, 107, 116, 105, 143, 105, 119, 116, 114, 116, 127, 103, 105, 116, 104, 116, 106, 118, 106, 141, 102, 103, 109, 125, 120, 128, 99, 109, 112, 126, 111, 115, 113, 130, 96, 119, 139, 111, 120, 124, 127, 120, 109, 121, 102, 121, 117, 109, 116, 118, 113, 118, 143, 102, 97, 108, 108, 139, 116, 108, 112, 118, 113, 109, 109, 107, 124, 137, 114, 123, 103, 125, 115, 116, 114, 97, 141, 135, 114, 119, 103, 118, 121, 107, 123, 101, 105, 108, 109, 116, 105, 118, 121, 108, 120, 108, 110, 110, 104, 115, 100, 107, 115, 117, 109, 113, 144, 111, 119, 107, 112, 129, 124, 145, 103, 150, 114, 129, 108, 123, 112, 118, 124, 114, 117, 147, 110, 116, 120, 127, 97, 118, 113, 115, 94, 125, 128, 114, 115, 112, 123, 113, 111, 117, 133, 126, 113, 115, 129, 114, 111, 117, 114, 110, 113, 100, 112, 96, 121, 107, 103, 130, 107, 123, 122, 113, 120, 109, 113, 114, 113, 115, 91, 125, 123, 118, 128, 120, 101, 114, 124, 125, 117, 120, 114, 110, 138, 112, 125, 103, 102, 145, 121, 112, 120, 114, 111, 128, 119, 108, 96, 117, 104, 106, 131, 119, 105, 95, 89, 127, 117, 120, 107, 112, 119, 122, 116, 111, 119, 116, 89, 104, 127, 112, 117, 100, 113, 103, 114, 111, 110, 109, 128, 119, 101, 105, 124, 133, 124, 126, 113, 131, 115, 120, 117, 105, 111, 111, 117, 111, 112, 123, 119, 118, 128, 116, 125, 109, 107, 103, 140, 115, 111, 108, 127, 129, 122, 130, 128, 117, 106, 121, 108, 118, 110, 115, 121, 122, 123, 116, 119, 114, 108, 133, 99, 102, 112, 110, 131, 103, 112, 115, 116, 107, 133, 111, 105, 117, 113, 107, 114, 107, 126, 97, 114, 145, 116, 90, 109, 128, 115, 108, 105, 120, 120, 134, 128, 122, 119, 119, 106, 125, 143, 115, 117, 144, 122, 112, 121, 128, 122, 124, 99, 118, 108, 95, 105, 105, 117, 117, 118, 127, 131, 118, 119, 107, 111, 111, 109, 109, 115, 147, 131, 119, 129, 124, 132, 116, 131, 108, 95, 134, 110, 126, 122, 122, 104, 107, 117, 108, 119, 108, 117, 117, 108, 116, 90, 102, 99, 123, 107, 119, 107, 120, 109, 127, 126, 106, 105, 107, 110, 118, 95, 116, 94, 127, 110, 117, 114, 133, 132, 109, 118, 109, 118, 105, 112, 100, 104, 122, 115, 120, 113, 107, 113, 120, 104, 91, 120, 119, 119, 113, 112, 124, 110, 96, 100, 119, 115, 113, 115, 117, 123, 136, 106, 119, 110, 113, 121, 115, 129, 109, 115, 110, 113, 115, 116, 116, 116, 101, 113, 103, 110, 121, 110, 116, 112, 109, 116, 116, 123, 127, 111, 120, 116, 115, 101, 111, 117, 99, 123, 132, 139, 122, 109, 98, 119, 121, 108, 115, 110, 100, 110, 113, 102, 116, 112, 99, 124, 118, 115, 107, 103, 119, 111, 136, 117, 115, 100, 100, 107, 113, 103, 100, 119, 114, 134, 114, 122, 126, 117, 112, 125, 114, 117, 114, 116, 116, 109, 99, 119, 121, 110, 108, 123, 128, 119, 119, 117, 122, 136, 115, 107, 119, 117, 106, 116, 98, 121, 112, 111, 108, 121, 127, 114, 113, 107, 110, 119, 114, 124, 115, 110, 116, 117, 119, 102, 116, 109, 123, 126, 122, 115, 121, 109, 117, 117, 123, 98, 111, 107, 117, 111, 118, 112, 122, 121, 106, 117, 126, 104, 113, 114, 119, 121, 123, 97, 115, 114, 108, 114, 103, 114, 113, 108, 125, 127, 117, 121, 132, 101, 122, 118, 111, 120, 111, 112, 115, 111, 115, 147, 107, 113, 106, 111, 120, 106, 125, 132, 108, 115, 118, 103, 125, 122, 95, 95, 115, 98, 101, 109, 107, 108, 117, 121, 111, 106, 127, 110, 109, 111, 105, 108, 126, 110, 129, 101, 111, 120, 131, 132, 110, 107, 105, 116, 121, 110, 129, 123, 104, 113, 108, 97, 106, 123, 123, 122, 108, 104, 105, 121, 114, 108, 127, 131, 112, 113, 125, 122, 109, 113, 117, 109, 117, 118, 109, 129, 100, 131, 115, 101, 127, 116, 107, 110, 123, 110, 109, 121, 120, 110, 116, 123, 113, 116, 128, 117, 123, 126, 122, 118, 120, 111, 118, 90, 117, 106, 100, 115, 102, 108, 108, 108, 105, 120, 110, 119, 117, 112, 123, 117, 100, 112, 106, 123, 117, 116, 131, 126, 107, 120, 117, 116, 106, 109, 95, 110, 115, 108, 125, 119, 109, 119, 107, 122, 101, 114, 123, 117, 118, 115, 136, 116, 124, 110, 127, 113, 116, 119, 115, 112, 115, 110, 128, 117, 116, 105, 130, 124, 100, 116, 126, 119, 119, 112, 119, 115, 120, 130, 119, 120, 126, 125, 116, 117, 119, 101, 110, 110, 131, 111, 120, 95, 132, 112, 110, 109, 110, 112, 109, 118, 108, 134, 110, 113, 113, 110, 109, 121, 105, 102, 115, 102, 126, 100, 118, 103, 109, 113, 118, 114, 127, 108, 111, 118, 125, 118, 105, 112, 124, 115, 113, 103, 119, 109, 115, 119, 121, 125, 117, 106, 114, 113, 112, 99, 126, 107, 112, 105, 111, 111, 103, 114, 98, 93, 111, 109, 116, 94, 121, 109, 106, 127, 117, 109, 113, 112, 113, 110, 103, 98, 123, 92, 101, 111, 104, 118, 116, 110, 111, 124, 106, 109, 113, 106, 109, 108, 129, 117, 114, 118, 108, 121, 113, 112, 110, 118, 125, 117, 121, 108, 118, 103, 101, 117, 122, 116, 115, 105, 115, 117, 100, 118, 130, 109, 122, 104, 116, 101, 106, 121, 126, 116, 117, 126, 116, 122, 101, 111, 115, 116, 122, 109, 130, 115, 118, 128, 115, 100, 115, 119, 114, 111, 106, 106, 110, 122, 122, 113, 120, 129, 114, 114, 120, 124, 119, 79, 107, 103, 128, 121, 126, 128, 113, 120, 95, 100, 95, 118, 100, 118, 98, 115, 107, 115, 110, 112, 113, 109, 110, 123, 128, 124, 125, 113, 110, 114, 120, 103, 112, 126, 109, 98, 116, 127, 135, 110, 118, 111, 115, 128, 108, 133, 123, 112, 110, 109, 123, 119, 118, 117, 115, 120, 123, 110, 105, 116, 104, 127, 124, 125, 108, 106, 101, 132, 116, 110, 131, 119, 122, 115, 119, 129, 109, 137, 104, 112, 109, 122, 109, 117, 133, 96, 115, 130, 117, 121, 112, 90, 87, 97, 97, 115, 115, 156, 121, 97, 109, 116, 116, 115, 126, 111, 123, 96, 102, 108, 112, 109, 109, 145, 114, 115, 112, 118, 113, 93, 109, 119, 112, 123, 99, 106, 104, 123, 114, 118, 112, 100, 116, 116, 118, 152, 106, 117, 127, 122, 124, 113, 119, 116, 102, 103, 117, 117, 132, 119, 110, 121, 104, 111, 112, 106, 116, 106, 110, 115, 118, 111, 130, 125, 101, 114, 115, 107, 103, 114, 130, 119, 114, 100, 126, 99, 104, 121, 128, 119, 106, 105, 122, 99, 113, 115, 115, 111, 95, 115, 110, 105, 106, 119, 102, 106, 110, 114, 104, 116, 116, 97, 117, 127, 119, 106, 125, 111, 110, 103, 99, 133, 116, 136, 114, 115, 134, 117, 98, 123, 115, 130, 120, 113, 117, 124, 115, 110, 96, 104, 138, 122, 122, 127, 102, 109, 124, 115, 123, 108, 125, 113, 120, 116, 117, 132, 123, 122, 123, 111, 106, 118, 125, 119, 99, 126, 102, 101, 104, 127, 113, 112, 110, 130, 114, 89, 111, 126, 116, 96, 103, 115, 102, 110, 113, 109, 133, 98, 103, 129, 134, 109, 109, 101, 100, 113, 114, 116, 115, 111, 133, 110, 93, 102, 104, 120, 115, 131, 105, 117, 120, 106, 117, 115, 119, 124, 118, 115, 121, 115, 111, 111, 115, 115, 117, 112, 118, 99, 127, 122, 125, 113, 109, 102, 105, 108, 117, 123, 114, 115, 114, 117, 114, 111, 99, 106, 117, 110, 112, 129, 110, 121, 127, 109, 110, 109, 94, 127, 112, 103, 120, 109, 137, 122, 117, 145, 132, 111, 113, 107, 112, 107, 111, 115, 130, 124, 115, 99, 108, 112, 119, 121, 111, 137, 137, 111, 115, 109, 114, 110, 114, 119, 118, 115, 110, 110, 141, 114, 126, 118, 125, 127, 103, 114, 129, 128, 132, 121, 92, 105, 125, 115, 126, 110, 121, 113, 106, 110, 106, 131, 113, 107, 115, 130, 100, 106, 115, 100, 120, 123, 101, 106, 118, 120, 115, 133, 118, 125, 106, 111, 98, 120, 121, 94, 96, 124, 115, 108, 111, 111, 129, 104, 110, 109, 98, 128, 112, 109, 110, 116, 125, 118, 118, 112, 94, 121, 120, 116, 126, 107, 106, 124, 121, 121, 126, 123, 123, 119, 122, 103, 124, 97, 126, 113, 128, 111, 129, 126, 114, 128, 116, 123, 106, 119, 120, 109, 109, 121, 108, 107, 108, 106, 109, 118, 121, 112, 110, 119, 122, 108, 123, 113, 98, 113, 115, 115, 111, 115, 116, 113, 118, 114, 120, 123, 113, 112, 120, 115, 117, 112, 112, 115, 110, 110, 115, 115, 116, 119, 112, 111, 113, 113, 127, 120, 122, 114, 115, 111, 110, 116, 122, 122, 121, 117, 108, 120, 116, 110, 119, 120, 121, 111, 111, 112, 119, 118, 116, 118, 116, 111, 127, 119, 116, 120, 122, 107, 109, 100, 113, 115, 117, 117, 117, 122, 117, 117, 114, 118, 109, 118, 113, 115, 112, 108, 112, 118, 117, 107, 100, 117, 110, 119, 115, 111, 122, 119, 113, 116, 114, 111, 115, 109, 115, 120, 120, 110, 111, 115, 118, 107, 112, 114, 118, 117, 116, 115, 112, 120, 113, 113, 118, 117, 124, 119, 114, 116, 114, 113, 114, 111, 124, 118, 131, 120, 124, 111, 116, 111, 117, 119, 108, 126, 123, 119, 72, 128, 115, 115, 103, 117, 113, 108, 111, 123, 112, 114, 115, 119, 126, 111, 120, 118, 124, 116, 118, 114, 124, 113, 130, 115, 103, 107, 121, 112, 119, 108, 91, 124, 110, 115, 119, 119, 112, 110, 106, 115, 116, 120, 111, 116, 118, 125, 111, 109, 116, 119, 114, 105, 110, 120, 122, 112, 123, 116, 121, 120, 114, 110, 111, 111, 127, 106, 116, 111, 111, 107, 124, 112, 124, 113, 97, 119, 119, 123, 107, 122, 101, 111, 112, 110, 118, 119, 118, 109, 112, 114, 116, 112, 108, 112, 113, 118, 106, 113, 110, 118, 115, 112, 120, 116, 124, 112, 138, 113, 110, 113, 113, 121, 117, 109, 116, 120, 113, 119, 121, 119, 114, 119, 123, 122, 110, 112, 122, 130, 129, 113, 108, 111, 122, 110, 100, 117, 120, 116, 116, 118, 112, 124, 109, 110, 114, 119, 122, 127, 108, 114, 119, 115, 110, 122, 122, 102, 95, 114, 112, 118, 114, 112, 113, 153, 112, 107, 117, 108, 113, 116, 118, 112, 110, 110, 116, 112, 128, 131, 107, 111, 117, 113, 134, 116, 126, 104, 112, 114, 122, 131, 114, 118, 104, 121, 112, 119, 117, 113, 120, 117, 114, 114, 115, 120, 113, 116, 107, 113, 110, 117, 114, 109, 115, 114, 116, 110, 111, 109, 113, 106, 116, 117, 117, 121, 123, 110, 115, 113, 116, 118, 110, 106, 114, 118, 119, 121, 110, 116, 122, 116, 119, 113, 114, 121, 117, 110, 123, 123, 119, 116, 123, 112, 110, 116, 113, 124, 116, 116, 116, 110, 113, 120, 125, 108, 108, 114, 122, 115, 126, 120, 110, 115, 106, 107, 110, 123, 107, 115, 114, 115, 117, 115, 112, 115, 125, 118, 120, 113, 111, 112, 111, 115, 109, 117, 117, 114, 108, 105, 114, 128, 117, 117, 114, 116, 114, 114, 113, 115, 110, 111, 108, 107, 114, 113, 124, 119, 121, 111, 114, 111, 117, 116, 118, 133, 122, 121, 113, 118, 112, 112, 121, 120, 112, 117, 114, 115, 119, 113, 113, 121, 115, 109, 121, 113, 112, 121, 110, 118, 96, 118, 119, 110, 116, 113, 119, 113, 126, 115, 107, 112, 107, 125, 114, 148, 114, 108, 100, 106, 128, 127, 108, 124, 115, 117, 116, 101, 116, 121, 112, 111, 116, 128, 114, 127, 111, 125, 117, 114, 118, 119, 125, 116, 110, 113, 108, 110, 113, 121, 113, 109, 116, 116, 114, 124, 124, 121, 114, 118, 119, 111, 112, 109, 119, 112, 125, 127, 111, 116, 118, 110, 115, 115, 109, 116, 114, 108, 107, 130, 120, 122, 120, 112, 119, 125, 118, 131, 116, 114, 112, 110, 125, 123, 109, 121, 113, 127, 125, 117, 108, 121, 117, 122, 122, 120, 116, 127, 123, 106, 124, 126, 124, 106, 118, 128, 112, 112, 113, 112, 114, 125, 114, 110, 124, 104, 122, 109, 112, 119, 118, 125, 112, 122, 120, 103, 116, 126, 117, 130, 101, 102, 117, 108, 127, 113, 105, 127, 118, 87, 114, 116, 117, 112, 110, 121, 111, 124, 114, 101, 123, 105, 110, 110, 114, 122, 119, 108, 119, 116, 119, 132, 108, 118, 115, 123, 106, 117, 120, 106, 118, 127, 124, 119, 106, 110, 101, 108, 115, 99, 126, 109, 123, 119, 116, 107, 112, 114, 121, 118, 110, 118, 114, 118, 108, 120, 115, 112, 127, 126, 108, 108, 121, 115, 120, 132, 120, 111, 119, 112, 128, 116, 109, 112, 115, 125, 120, 134, 104, 126, 121, 112, 116, 112, 120, 109, 110, 122, 130, 121, 109, 110, 117, 113, 114, 122, 121, 103, 116, 106, 120, 123, 118, 126, 110, 108, 123, 124, 118, 109, 122, 121, 126, 123, 119, 118, 124, 108, 115, 122, 117, 125, 112, 107, 101, 109, 124, 97, 108, 115, 110, 126, 122, 97, 114, 110, 111, 122, 118, 102, 101, 119, 115, 118, 114, 118, 114, 122, 117, 100, 112, 113, 115, 121, 111, 118, 123, 117, 112, 115, 119, 118, 131, 124, 111, 116, 112, 103, 118, 109, 108, 112, 110, 116, 113, 114, 116, 118, 106, 125, 115, 110, 129, 116, 102, 110, 119, 116, 120, 113, 121, 114, 124, 103, 112, 118, 115, 117, 106, 107, 110, 129, 122, 100, 112, 105, 123, 111, 114, 115, 116, 112, 114, 114, 113, 105, 118, 116, 111, 106, 118, 117, 109, 117, 116, 125, 114, 125, 118, 95, 101, 117, 120, 112, 111, 115, 102, 119, 118, 128, 103, 114, 120, 115, 128, 95, 114, 110, 108, 106, 126, 102, 124, 106, 112, 113, 114, 117, 118, 110, 115, 117, 109, 112, 106, 116, 128, 118, 114, 121, 120, 120, 121, 120, 115, 112, 121, 117, 139, 114, 109, 123, 115, 119, 115, 108, 124, 110, 120, 114, 101, 114, 114, 123, 113, 113, 103, 107, 131, 116, 111, 106, 112, 121, 124, 113, 123, 126, 129, 120, 111, 122, 126, 120, 111, 125, 108, 115, 118, 118, 108, 121, 124, 117, 130, 112, 102, 111, 122, 122, 119, 114, 114, 115, 107, 109, 126, 120, 127, 104, 124, 128, 125, 105, 113, 113, 114, 122, 116, 102, 120, 103, 126, 111, 120, 118, 118, 109, 117, 109, 119, 102, 116, 115, 116, 125, 133, 116, 111, 114, 120, 108, 112, 112, 107, 86, 104, 117, 93, 124, 105, 111, 101, 108, 107, 110, 117, 113, 104, 103, 112, 115, 115, 114, 109, 110, 111, 105, 109, 114, 113, 123, 119, 116, 113, 110, 109, 101, 141, 92, 111, 120, 105, 111, 113, 119, 128, 129, 113, 113, 124, 110, 117, 119, 110, 114, 117, 99, 132, 99, 122, 114, 99, 99, 128, 113, 119, 115, 113, 103, 117, 115, 119, 107, 101, 113, 121, 125, 113, 122, 104, 107, 115, 118, 115, 116, 120, 124, 112, 112, 93, 124, 120, 114, 120, 121, 96, 116, 105, 134, 123, 114, 111, 123, 120, 110, 112, 122, 123, 99, 119, 113, 109, 123, 116, 106, 104, 113, 119, 103, 118, 120, 119, 108, 105, 119, 117, 124, 113, 136, 109, 124, 105, 103, 131, 115, 111, 111, 112, 110, 116, 109, 109, 112, 117, 124, 109, 108, 103, 104, 118, 117, 124, 110, 117, 109, 112, 131, 123, 123, 110, 106, 103, 97, 122, 111, 100, 129, 101, 111, 121, 107, 106, 128, 104, 115, 113, 109, 120, 107, 116, 104, 115, 111, 117, 109, 117, 107, 116, 125, 120, 121, 120, 110, 104, 130, 117, 108, 117, 113, 105, 123, 111, 105, 118, 112, 107, 107, 119, 105, 116, 116, 127, 102, 109, 114, 123, 119, 95, 109, 105, 107, 120, 125, 111, 109, 114, 101, 119, 107, 108, 104, 116, 91, 117, 119, 114, 131, 123, 109, 124, 111, 110, 123, 113, 115, 128, 125, 103, 110, 118, 119, 124, 117, 117, 122, 117, 119, 130, 129, 115, 118, 107, 106, 122, 104, 107, 109, 128, 106, 117, 116, 102, 105, 116, 125, 118, 116, 102, 105, 112, 106, 107, 117, 109, 119, 110, 112, 106, 102, 112, 113, 102, 113, 101, 117, 120, 126, 104, 108, 107, 129, 120, 114, 112, 112, 103, 114, 112, 124, 130, 125, 123, 122, 90, 117, 117, 122, 126, 135, 103, 113, 115, 119, 113, 119, 108, 109, 104, 127, 113, 104, 111, 116, 108, 110, 130, 91, 112, 109, 111, 115, 110, 127, 120, 119, 105, 108, 118, 115, 117, 110, 115, 120, 112, 109, 100, 113, 121, 125, 104, 125, 113, 101, 108, 120, 118, 111, 115, 118, 112, 98, 110, 112, 118, 124, 104, 113, 107, 110, 119, 124, 110, 109, 120, 117, 117, 108, 127, 115, 99, 117, 118, 109, 113, 109, 114, 111, 114, 106, 101, 103, 104, 113, 110, 124, 108, 113, 118, 111, 100, 121, 125, 112, 132, 119, 118, 138, 117, 109, 106, 115, 123, 135, 119, 116, 101, 110, 127, 113, 114, 126, 107, 110, 105, 127, 111, 104, 102, 118, 120, 123, 122, 118, 104, 110, 119, 130, 120, 119, 125, 109, 110, 123, 114, 115, 112, 112, 119, 109, 115, 117, 117, 115, 110, 119, 123, 109, 120, 111, 115, 99, 129, 113, 120, 120, 108, 116, 113, 132, 107, 112, 105, 118, 105, 114, 119, 113, 105, 116, 114, 118, 108, 111, 126, 107, 110, 107, 116, 113, 119, 122, 117, 113, 110, 115, 117, 119, 122, 117, 115, 109, 112, 120, 117, 124, 115, 114, 113, 114, 122, 114, 112, 109, 118, 109, 117, 114, 109, 97, 126, 98, 117, 107, 116, 117, 108, 112, 114, 116, 112, 116, 124, 109, 114, 117, 109, 111, 113, 101, 111, 133, 116, 109, 118, 118, 117, 113, 128, 110, 119, 111, 116, 109, 109, 128, 109, 108, 105, 104, 115, 121, 116, 128, 117, 123, 110, 111, 108, 97, 126, 108, 115, 109, 117, 139, 114, 121, 116, 109, 118, 114, 118, 108, 133, 115, 139, 111, 112, 121, 105, 117, 116, 111, 120, 106, 114, 110, 108, 103, 119, 112, 106, 110, 110, 121, 112, 127, 107, 118, 114, 108, 102, 116, 108, 116, 128, 112, 116, 134, 112, 115, 115, 116, 115, 117, 116, 104, 122, 119, 123, 113, 113, 108, 120, 117, 122, 124, 125, 122, 115, 118, 109, 130, 117, 136, 112, 110, 124, 124, 115, 128, 118, 125, 116, 104, 114, 124, 129, 114, 118, 114, 114, 123, 116, 121, 117, 111, 115, 128, 120, 125, 114, 118, 105, 112, 112, 104, 112, 118, 112, 111, 108, 110, 125, 105, 112, 108, 120, 135, 122, 120, 100, 121, 121, 117, 117, 119, 107, 112, 108, 102, 106, 113, 114, 107, 115, 115, 104, 115, 121, 121, 115, 111, 94, 116, 116, 121, 124, 116, 109, 112, 106, 120, 113, 100, 119, 101, 122, 111, 120, 118, 114, 111, 119, 105, 111, 117, 104, 120, 113, 130, 109, 99, 108, 118, 119, 116, 121, 121, 109, 111, 120, 117, 115, 122, 105, 117, 109, 117, 126, 119, 109, 123, 110, 108, 124, 121, 112, 110, 125, 134, 120, 115, 107, 110, 120, 116, 116, 106, 117, 116, 109, 119, 112, 111, 124, 111, 112, 110, 119, 117, 112, 132, 119, 112, 112, 114, 114, 113, 117, 127, 111, 99, 111, 115, 117, 131, 117, 122, 114, 112, 100, 120, 114, 104, 124, 116, 116, 110, 113, 120, 116, 113, 110, 115, 113, 104, 105, 108, 114, 115, 124, 113, 108, 109, 123, 120, 109, 110, 112, 107, 118, 113, 110, 107, 110, 111, 118, 120, 117, 113, 105, 111, 105, 122, 106, 133, 124, 110, 112, 109, 91, 107, 116, 107, 131, 117, 120, 118, 117, 116, 121, 106, 107, 116, 124, 107, 120, 106, 117, 118, 126, 119, 122, 126, 122, 114, 114, 131, 110, 101, 126, 118, 117, 125, 122, 110, 107, 112, 111, 118, 116, 120, 114, 108, 109, 122, 116, 125, 115, 112, 115, 107, 127, 96, 122, 130, 113, 115, 117, 114, 133, 105, 106, 100, 112, 116, 123, 107, 112, 116, 116, 107, 107, 115, 117, 110, 105, 115, 108, 125, 102, 117, 116, 108, 101, 109, 122, 125, 105, 111, 101, 108, 104, 114, 114, 116, 112, 127, 118, 118, 101, 106, 118, 118, 111, 121, 119, 116, 115, 116, 112, 104, 107, 112, 121, 107, 114, 103, 114, 114, 122, 109, 107, 111, 110, 110, 108, 119, 123, 111, 125, 112, 114, 120, 107, 118, 118, 120, 117, 115, 127, 124, 115, 128, 109, 113, 117, 114, 114, 111, 113, 112, 115, 113, 116, 119, 103, 127, 99, 113, 114, 112, 96, 129, 109, 124, 112, 135, 116, 125, 109, 114, 111, 123, 110, 124, 108, 116, 123, 116, 115, 119, 106, 105, 117, 112, 112, 108, 113, 126, 114, 102, 121, 118, 113, 104, 127, 133, 127, 117, 117, 120, 106, 106, 123, 111, 131, 101, 122, 121, 107, 114, 110, 116, 119, 107, 116, 124, 114, 115, 110, 101, 113, 127, 112, 110, 121, 112, 120, 117, 121, 121, 104, 125, 111, 110, 105, 131, 112, 126, 111, 107, 127, 109, 95, 114, 104, 114, 113, 106, 109, 124, 113, 124, 116, 121, 119, 108, 113, 124, 134, 95, 119, 114, 102, 112, 116, 103, 113, 117, 114, 118, 113, 99, 111, 120, 110, 97, 115, 109, 120, 107, 92, 98, 110, 101, 110, 106, 116, 118, 89, 119, 106, 98, 107, 102, 112, 118, 119, 111, 125, 108, 122, 106, 114, 115, 120, 120, 118, 112, 109, 116, 119, 128, 114, 114, 123, 102, 109, 128, 112, 113, 104, 113, 122, 112, 131, 99, 119, 112, 126, 106, 108, 118, 124, 112, 108, 104, 109, 134, 117, 107, 114, 112, 129, 108, 108, 115, 116, 114, 114, 111, 125, 124, 103, 124, 109, 108, 125, 124, 123, 106, 124, 109, 104, 137, 106, 102, 128, 114, 113, 104, 112, 118, 110, 110, 107, 116, 113, 115, 119, 120, 122, 115, 103, 120, 114, 103, 114, 115, 105, 97, 118, 115, 123, 128, 113, 114, 122, 111, 109, 105, 101, 116, 110, 128, 123, 111, 112, 117, 135, 108, 115, 119, 107, 119, 125, 125, 112, 111, 116, 114, 117, 113, 103, 110, 110, 128, 126, 128, 117, 107, 113, 104, 103, 110, 123, 105, 118, 108, 105, 114, 112, 111, 119, 127, 127, 106, 103, 105, 128, 117, 112, 126, 139, 109, 112, 112, 115, 115, 125, 125, 108, 119, 99, 113, 118, 112, 122, 121, 105, 122, 113, 127, 110, 118, 101, 112, 108, 108, 113, 126, 101, 100, 103, 121, 112, 101, 118, 102, 113, 115, 119, 107, 108, 117, 111, 114, 115, 109, 115, 115, 115, 108, 119, 109, 105, 115, 112, 116, 116, 114, 125, 115, 109, 108, 116, 132, 105, 104, 113, 100, 109, 117, 116, 121, 116, 101, 118, 108, 116, 109, 125, 111, 110, 106, 124, 117, 111, 107, 106, 120, 120, 114, 124, 112, 135, 109, 111, 127, 114, 115, 110, 106, 121, 104, 114, 107, 122, 109, 113, 109, 111, 111, 119, 115, 126, 110, 95, 115, 118, 94, 121, 114, 130, 107, 116, 120, 101, 125, 122, 130, 121, 122, 116, 127, 121, 110, 113, 116, 117, 117, 120, 108, 118, 115, 123, 119, 110, 131, 121, 105, 122, 111, 117, 122, 106, 115, 109, 113, 112, 122, 110, 111, 110, 106, 103, 121, 117, 114, 112, 120, 114, 118, 118, 125, 124, 129, 119, 123, 113, 112, 112, 109, 96, 117, 123, 111, 117, 115, 122, 117, 115, 107, 103, 123, 138, 117, 120, 115, 109, 112, 113, 126, 116, 122, 110, 126, 126, 120, 118, 108, 114, 115, 96, 118, 116, 114, 98, 119, 115, 119, 108, 108, 111, 112, 113, 111, 97, 102, 125, 96, 112, 126, 107, 116, 116, 109, 114, 115, 122, 120, 108, 108, 123, 112, 116, 118, 114, 108, 117, 110, 115, 117, 110, 108, 125, 121, 108, 115, 115, 114, 118, 120, 122, 108, 122, 102, 121, 113, 109, 106, 123, 112, 119, 118, 113, 107, 110, 124, 94, 111, 110, 111, 97, 118, 123, 131, 115, 122, 112, 108, 97, 114, 111, 115, 123, 128, 111, 118, 106, 117, 99, 114, 119, 113, 131, 109, 121, 123, 114, 116, 113, 105, 99, 117, 112, 100, 116, 117, 130, 98, 109, 101, 114, 116, 109, 108, 116, 117, 107, 118, 129, 109, 113, 114, 121, 118, 123, 118, 109, 112, 106, 103, 125, 127, 117, 104, 108, 104, 122, 114, 108, 116, 113, 115, 116, 121, 109, 128, 119, 96, 124, 110, 110, 121, 110, 105, 109, 113, 123, 128, 117, 135, 112, 109, 107, 115, 113, 118, 116, 115, 111, 105, 113, 122, 115, 119, 99, 111, 118, 119, 127, 99, 116, 106, 122, 108, 108, 118, 122, 102, 111, 116, 106, 116, 125, 97, 127, 105, 102, 115, 112, 118, 109, 118, 107, 109, 111, 116, 117, 122, 127, 110, 118, 106, 115, 100, 117, 103, 108, 125, 106, 111, 103, 114, 113, 124, 115, 119, 106, 97, 109, 104, 98, 118, 111, 99, 118, 109, 110, 112, 118, 113, 108, 116, 99, 117, 123, 127, 132, 112, 111, 116, 112, 124, 120, 119, 111, 114, 118, 124, 112, 111, 115, 120, 112, 108, 107, 108, 109, 106, 103, 123, 112, 114, 117, 110, 108, 114, 116, 115, 109, 113, 116, 107, 109, 100, 113, 107, 102, 125, 108, 123, 110, 115, 108, 118, 101, 124, 114, 115, 105, 110, 120, 106, 119, 109, 111, 129, 113, 119, 122, 107, 116, 130, 102, 112, 110, 112, 111, 121, 110, 112, 126, 124, 118, 113, 112, 119, 134, 97, 121, 109, 118, 120, 117, 114, 106, 124, 114, 100, 103, 119, 108, 114, 109, 122, 111, 116, 119, 119, 113, 102, 110, 107, 113, 116, 118, 111, 102, 111, 118, 116, 117, 113, 107, 114, 114, 110, 123, 120, 119, 109, 116, 111, 117, 118, 116, 116, 102, 115, 115, 116, 115, 111, 110, 107, 106, 122, 113, 118, 122, 113, 126, 116, 117, 120, 109, 119, 106, 103, 119, 103, 112, 110, 119, 105, 111, 103, 134, 125, 119, 105, 118, 128, 119, 115, 103, 103, 117, 128, 102, 121, 117, 108, 117, 112, 106, 95, 107, 116, 117, 110, 116, 107, 110, 118, 111, 118, 118, 117, 123, 106, 112, 112, 124, 114, 124, 116, 119, 113, 104, 117, 124, 121, 118, 111, 107, 113, 115, 119, 114, 107, 101, 121, 116, 103, 110, 115, 115, 108, 103, 115, 101, 120, 117, 103, 107, 117, 106, 122, 117, 122, 114, 130, 130, 117, 122, 123, 107, 113, 113, 109, 120, 112, 108, 112, 114, 116, 110, 121, 124, 118, 116, 106, 114, 120, 108, 115, 120, 105, 111, 117, 109, 122, 117, 112, 117, 108, 115, 112, 116, 120, 117, 124, 106, 115, 113, 124, 113, 124, 96, 112, 123, 114, 112, 113, 112, 109, 111, 107, 118, 112, 113, 112, 106, 115, 114, 131, 102, 112, 125, 119, 111, 106, 112, 118, 116, 114, 113, 110, 114, 104, 106, 120, 130, 118, 128, 124, 116, 127, 113, 118, 119, 107, 115, 135, 113, 119, 104, 116, 107, 109, 120, 113, 108, 116, 111, 113, 109, 130, 120, 122, 113, 110, 111, 119, 119, 114, 109, 112, 104, 109, 113, 118, 124, 113, 120, 118, 109, 118, 115, 108, 119, 117, 117, 108, 120, 127, 108, 113, 122, 105, 101, 106, 122, 117, 109, 135, 107, 125, 117, 111, 123, 118, 112, 114, 111, 109, 109, 130, 109, 113, 124, 131, 119, 115, 118, 119, 112, 117, 117, 119, 115, 109, 110, 112, 109, 93, 115, 121, 116, 125, 108, 128, 118, 114, 120, 119, 114, 117, 113, 120, 112, 113, 108, 118, 125, 110, 121, 109, 121, 123, 114, 118, 113, 117, 116, 122, 114, 102, 114, 126, 115, 130, 114, 123, 127, 110, 127, 111, 111, 91, 120, 110, 121, 117, 111, 103, 100, 119, 111, 108, 124, 122, 116, 93, 114, 111, 120, 104, 123, 121, 118, 121, 122, 109, 111, 126, 119, 114, 108, 100, 120, 114, 105, 112, 102, 124, 117, 114, 115, 113, 134, 117, 116, 127, 120, 122, 113, 116, 113, 119, 131, 109, 108, 113, 122, 125, 119, 121, 112, 115, 115, 120, 116, 119, 111, 121, 115, 119, 120, 137, 107, 113, 129, 121, 122, 120, 114, 117, 112, 106, 114, 119, 122, 122, 119, 110, 130, 108, 113, 102, 115, 121, 113, 117, 117, 108, 116, 120, 124, 114, 114, 110, 117, 116, 107, 121, 119, 110, 133, 108, 117, 117, 106, 115, 121, 117, 101, 115, 129, 85, 106, 113, 112, 123, 115, 122, 121, 111, 115, 115, 113, 122, 117, 119, 115, 111, 112, 110, 126, 104, 114, 111, 117, 115, 107, 117, 118, 118, 111, 112, 114, 117, 115, 114, 117, 118, 111, 117, 114, 116, 125, 110, 107, 109, 111, 120, 89, 116, 116, 112, 114, 123, 110, 120, 110, 107, 118, 107, 115, 125, 126, 119, 123, 120, 106, 113, 126, 115, 115, 112, 103, 116, 107, 107, 117, 117, 104, 121, 120, 105, 109, 114, 113, 120, 124, 100, 120, 124, 117, 110, 97, 113, 113, 111, 115, 118, 118, 110, 112, 111, 126, 117, 116, 119, 130, 131, 117, 124, 125, 113, 113, 119, 104, 117, 106, 126, 118, 124, 116, 111, 100, 132, 107, 101, 124, 106, 121, 120, 112, 109, 107, 116, 112, 105, 114, 115, 114, 120, 118, 107, 121, 115, 119, 118, 109, 120, 114, 134, 106, 113, 116, 108, 119, 122, 103, 115, 114, 116, 121, 114, 112, 122, 108, 121, 116, 112, 109, 110, 118, 113, 115, 116, 109, 109, 121, 123, 121, 120, 110, 113, 111, 116, 103, 119, 117, 117, 121, 106, 102, 122, 131, 120, 109, 119, 110, 125, 116, 112, 107, 113, 120, 108, 114, 111, 124, 118, 116, 118, 113, 113, 119, 116, 110, 113, 112, 122, 124, 116, 110, 111, 107, 115, 122, 106, 118, 121, 108, 115, 115, 111, 121, 115, 112, 124, 115, 117, 108, 116, 121, 116, 113, 119, 114, 113, 114, 111, 113, 121, 115, 115, 121, 123, 108, 119, 122, 115, 122, 111, 112, 116, 108, 109, 112, 127, 112, 107, 112, 113, 112, 111, 111, 104, 116, 117, 114, 105, 119, 118, 114, 112, 109, 122, 116, 114, 113, 115, 122, 114, 118, 111, 116, 108, 116, 121, 119, 111, 118, 116, 110, 123, 107, 116, 102, 119, 114, 114, 115, 121, 124, 113, 124, 114, 112, 121, 116, 121, 114, 116, 114, 109, 117, 120, 106, 115, 115, 120, 102, 132, 113, 120, 122, 125, 108, 112, 114, 111, 113, 120, 116, 117, 107, 116, 123, 119, 109, 116, 118, 105, 112, 108, 111, 116, 121, 119, 113, 111, 107, 126, 114, 117, 96, 117, 113, 116, 121, 112, 114, 117, 117, 116, 104, 117, 113, 124, 118, 108, 110, 112, 117, 108, 113, 120, 116, 125, 118, 121, 116, 108, 117, 119, 108, 116, 113, 113, 109, 115, 120, 106, 119, 113, 120, 112, 115, 120, 114, 112, 112, 115, 122, 114, 123, 115, 118, 113, 120, 109, 109, 124, 115, 120, 116, 119, 122, 109, 117, 118, 115, 113, 119, 126, 120, 117, 120, 116, 118, 119, 114, 108, 125, 118, 124, 116, 113, 124, 115, 126, 110, 114, 111, 117, 112, 108, 108, 113, 103, 121, 111, 119, 113, 113, 115, 114, 113, 111, 119, 123, 104, 116, 129, 109, 111, 119, 107, 113, 117, 113, 121, 112, 117, 112, 120, 118, 116, 116, 119, 116, 118, 114, 116, 118, 108, 118, 114, 117, 109, 108, 109, 116, 118, 131, 113, 119, 118, 116, 107, 110, 122, 113, 112, 115, 96, 126, 107, 120, 116, 116, 116, 125, 114, 114, 119, 117, 120, 116, 111, 112, 119, 114, 113, 113, 122, 115, 115, 110, 120, 100, 114, 118, 119, 114, 124, 114, 113, 103, 119, 110, 116, 111, 113, 120, 113, 112, 122, 114, 126, 122, 129, 111, 112, 120, 125, 116, 117, 116, 111, 105, 121, 116, 109, 118, 119, 118, 113, 116, 119, 110, 107, 124, 117, 119, 116, 113, 113, 120, 132, 122, 113, 113, 115, 125, 113, 117, 117, 122, 114, 120, 121, 116, 114, 111, 106, 122, 118, 120, 114, 117, 119, 108, 122, 108, 118, 111, 112, 114, 114, 117, 119, 108, 119, 108, 114, 110, 112, 115, 109, 114, 116, 116, 110, 128, 115, 100, 112, 115, 114, 115, 120, 114, 111, 113, 115, 127, 118, 99, 110, 121, 117, 121, 112, 117, 114, 112, 108, 121, 114, 113, 111, 110, 120, 115, 115, 126, 112, 113, 104, 117, 119, 113, 106, 120, 117, 109, 112, 110, 115, 103, 108, 110, 119, 108, 120, 115, 110, 121, 112, 109, 113, 119, 117, 121, 113, 117, 121, 123, 119, 112, 115, 115, 112, 109, 119, 118, 116, 121, 108, 123, 109, 108, 119, 109, 115, 123, 111, 115, 119, 119, 114, 105, 113, 133, 127, 110, 111, 112, 124, 105, 118, 126, 117, 113, 104, 109, 109, 116, 107, 115, 122, 125, 120, 129, 120, 123, 118, 104, 118, 110, 102, 113, 102, 102, 117, 114, 112, 113, 118, 117, 115, 122, 127, 109, 118, 114, 111, 127, 113, 110, 101, 110, 120, 114, 113, 121, 112, 112, 117, 116, 121, 115, 109, 98, 101, 122, 119, 132, 110, 112, 118, 107, 112, 127, 109, 117, 108, 104, 109, 131, 106, 110, 120, 125, 114, 120, 108, 105, 111, 109, 118, 115, 112, 122, 109, 121, 113, 114, 116, 102, 107, 104, 106, 103, 105, 110, 115, 114, 129, 109, 111, 113, 120, 114, 120, 138, 122, 119, 118, 115, 122, 118, 109, 119, 148, 108, 114, 120, 112, 113, 104, 121, 120, 120, 125, 114, 111, 107, 125, 115, 108, 111, 117, 121, 127, 118, 121, 99, 116, 105, 117, 113, 110, 108, 119, 122, 109, 133, 114, 114, 117, 125, 107, 109, 119, 131, 109, 89, 102, 123, 118, 136, 115, 118, 103, 115, 118, 125, 117, 128, 117, 118, 113, 112, 104, 117, 124, 142, 121, 114, 119, 121, 106, 111, 114, 110, 108, 116, 133, 111, 114, 118, 118, 117, 96, 116, 115, 118, 112, 106, 120, 107, 118, 97, 113, 101, 110, 123, 103, 126, 99, 116, 125, 126, 116, 114, 109, 108, 107, 114, 116, 106, 124, 106, 109, 111, 107, 113, 122, 122, 116, 106, 102, 112, 113, 115, 119, 130, 108, 112, 103, 109, 131, 112, 124, 125, 119, 111, 104, 121, 124, 118, 119, 103, 97, 110, 117, 108, 129, 126, 108, 107, 114, 112, 111, 121, 118, 123, 117, 124, 102, 114, 127, 118, 120, 97, 117, 113, 105, 116, 100, 110, 119, 109, 114, 102, 121, 116, 121, 119, 125, 113, 104, 123, 125, 106, 110, 111, 112, 117, 104, 117, 111, 118, 99, 118, 112, 113, 120, 114, 94, 110, 108, 119, 116, 128, 138, 120, 114, 114, 126, 122, 121, 104, 125, 123, 127, 119, 110, 118, 114, 119, 127, 118, 125, 112, 101, 121, 100, 111, 105, 115, 114, 120, 117, 119, 123, 124, 114, 123, 108, 111, 109, 128, 126, 109, 119, 116, 127, 109, 107, 113, 116, 94, 103, 111, 132, 120, 112, 112, 122, 107, 114, 123, 108, 115, 108, 122, 111, 123, 131, 117, 112, 102, 109, 110, 131, 107, 147, 117, 137, 117, 102, 114, 104, 113, 123, 108, 102, 107, 107, 119, 119, 112, 98, 114, 110, 111, 112, 134, 114, 114, 120, 142, 115, 111, 119, 127, 112, 109, 107, 117, 116, 120, 108, 120, 123, 107, 120, 118, 121, 113, 117, 110, 114, 106, 119, 133, 114, 106, 107, 114, 123, 109, 114, 106, 114, 120, 110, 105, 121, 139, 143, 118, 108, 120, 105, 115, 108, 105, 116, 124, 126, 111, 121, 109, 122, 123, 114, 99, 110, 108, 107, 123, 115, 105, 107, 119, 116, 109, 125, 109, 118, 112, 119, 124, 117, 115, 99, 107, 116, 115, 118, 106, 110, 111, 130, 103, 134, 118, 117, 110, 99, 114, 117, 117, 112, 111, 121, 93, 113, 100, 110, 105, 114, 110, 131, 110, 101, 103, 115, 113, 113, 104, 125, 107, 102, 124, 114, 133, 119, 105, 124, 112, 122, 107, 111, 130, 119, 95, 112, 123, 117, 122, 119, 111, 115, 123, 118, 125, 123, 108, 118, 108, 113, 114, 110, 126, 114, 109, 128, 122, 123, 109, 112, 106, 114, 109, 108, 132, 116, 116, 106, 110, 111, 121, 120, 124, 114, 114, 112, 115, 115, 122, 125, 114, 109, 113, 111, 116, 112, 119, 112, 133, 117, 109, 126, 114, 116, 125, 106, 123, 106, 129, 107, 123, 120, 111, 107, 110, 124, 133, 101, 112, 113, 111, 106, 131, 105, 115, 109, 124, 116, 114, 104, 125, 120, 108, 115, 115, 126, 108, 111, 111, 109, 107, 117, 118, 115, 124, 120, 113, 98, 103, 114, 113, 123, 114, 123, 101, 124, 118, 117, 110, 109, 105, 112, 112, 114, 109, 116, 117, 102, 107, 121, 111, 109, 121, 120, 108, 112, 109, 103, 100, 99, 131, 114, 118, 135, 95, 119, 101, 114, 101, 118, 112, 108, 120, 130, 109, 133, 116, 116, 112, 109, 117, 112, 128, 115, 108, 116, 107, 112, 117, 106, 110, 118, 101, 112, 115, 114, 103, 115, 119, 113, 114, 122, 107, 112, 114, 109, 112, 103, 118, 102, 123, 114, 100, 123, 119, 114, 102, 118, 119, 127, 109, 108, 105, 107, 112, 119, 118, 119, 130, 116, 133, 117, 106, 117, 114, 119, 117, 117, 102, 127, 117, 109, 127, 118, 124, 121, 108, 112, 114, 110, 117, 108, 110, 104, 106, 120, 125, 115, 111, 114, 106, 111, 102, 110, 111, 105, 114, 121, 108, 105, 116, 117, 120, 105, 100, 102, 121, 132, 115, 117, 104, 113, 110, 109, 124, 112, 118, 113, 109, 99, 117, 118, 125, 125, 104, 107, 110, 133, 126, 123, 124, 123, 108, 115, 114, 113, 123, 135, 111, 102, 120, 122, 118, 119, 108, 110, 120, 116, 108, 105, 107, 110, 119, 124, 104, 101, 118, 114, 117, 111, 118, 110, 114, 128, 115, 110, 103, 114, 113, 114, 109, 115, 112, 113, 110, 116, 114, 119, 115, 110, 97, 104, 105, 115, 116, 119, 118, 115, 117, 114, 116, 116, 108, 120, 111, 101, 111, 121, 131, 105, 117, 118, 115, 123, 131, 116, 122, 106, 111, 123, 121, 121, 119, 113, 111, 109, 132, 111, 107, 117, 128, 111, 105, 100, 118, 119, 110, 115, 109, 130, 112, 125, 106, 121, 114, 112, 111, 125, 118, 115, 97, 111, 108, 115, 99, 121, 125, 119, 118, 114, 105, 122, 126, 109, 108, 119, 106, 127, 111, 117, 116, 112, 116, 116, 113, 108, 108, 116, 103, 117, 118, 118, 114, 108, 98, 123, 106, 122, 107, 129, 114, 116, 129, 106, 122, 120, 121, 112, 133, 112, 108, 109, 121, 109, 112, 106, 118, 117, 120, 122, 120, 104, 103, 117, 98, 120, 107, 113, 113, 105, 108, 114, 111, 109, 129, 125, 114, 119, 130, 109, 102, 101, 116, 108, 116, 122, 126, 122, 116, 117, 111, 122, 117, 107, 126, 113, 104, 118, 112, 101, 119, 107, 121, 114, 120, 120, 105, 112, 123, 120, 108, 112, 100, 97, 116, 118, 115, 124, 98, 122, 104, 126, 104, 119, 115, 106, 120, 113, 111, 127, 126, 104, 104, 111, 116, 124, 127, 126, 124, 116, 110, 113, 108, 122, 129, 125, 131, 113, 106, 125, 105, 107, 99, 128, 118, 127, 110, 120, 114, 124, 101, 121, 115, 112, 115, 127, 109, 116, 107, 110, 114, 136, 134, 101, 118, 89, 119, 113, 107, 121, 112, 127, 120, 113, 108, 135, 128, 115, 119, 99, 112, 110, 118, 121, 102, 115, 105, 105, 132, 105, 120, 116, 114, 112, 128, 117, 115, 119, 121, 121, 106, 106, 112, 104, 112, 141, 111, 120, 110, 109, 110, 110, 118, 113, 118, 123, 116, 126, 107, 114, 98, 125, 111, 111, 108, 101, 121, 115, 119, 106, 113, 114, 111, 130, 121, 111, 109, 114, 114, 118, 104, 129, 116, 100, 128, 124, 117, 115, 123, 122, 118, 121, 123, 103, 108, 116, 108, 107, 107, 109, 118, 122, 120, 122, 114, 109, 118, 117, 114, 122, 109, 107, 122, 104, 117, 112, 102, 122, 120, 118, 103, 117, 113, 108, 109, 119, 117, 113, 107, 128, 118, 110, 106, 105, 117, 109, 105, 125, 118, 97, 108, 118, 126, 105, 108, 110, 123, 105, 104, 116, 118, 95, 117, 119, 110, 119, 111, 105, 106, 117, 106, 108, 124, 121, 116, 115, 112, 127, 122, 101, 115, 113, 126, 110, 115, 122, 120, 107, 110, 122, 109, 122, 113, 116, 98, 123, 119, 106, 115, 107, 104, 112, 106, 121, 104, 126, 114, 111, 103, 106, 110, 114, 117, 118, 106, 109, 107, 113, 107, 107, 102, 119, 102, 118, 113, 116, 115, 106, 113, 104, 110, 115, 104, 111, 119, 118, 111, 120, 106, 120, 129, 129, 117, 118, 117, 110, 127, 105, 131, 112, 110, 114, 107, 117, 117, 110, 119, 100, 105, 117, 102, 116, 128, 114, 108, 122, 110, 122, 108, 114, 128, 115, 115, 112, 132, 105, 111, 116, 121, 122, 92, 120, 113, 112, 128, 120, 115, 111, 121, 113, 111, 115, 102, 114, 118, 128, 127, 115, 114, 120, 106, 107, 110, 123, 129, 115, 127, 112, 118, 101, 113, 115, 115, 117, 129, 124, 104, 107, 98, 106, 97, 130, 112, 96, 112, 128, 120, 123, 114, 97, 123, 119, 110, 118, 107, 117, 106, 119, 105, 113, 123, 123, 114, 107, 132, 120, 103, 111, 132, 115, 146, 129, 120, 104, 105, 123, 117, 113, 126, 119, 106, 126, 108, 122, 122, 112, 114, 106, 107, 107, 113, 127, 111, 125, 120, 101, 118, 123, 125, 109, 116, 111, 128, 133, 114, 123, 117, 110, 111, 124, 113, 112, 113, 109, 95, 111, 120, 111, 118, 100, 113, 129, 119, 106, 115, 104, 117, 120, 103, 122, 114, 120, 113, 115, 134, 105, 111, 123, 115, 115, 106, 116, 108, 124, 96, 103, 108, 121, 117, 114, 117, 109, 103, 122, 97, 112, 110, 114, 109, 99, 113, 118, 110, 104, 120, 103, 121, 115, 111, 122, 114, 104, 123, 118, 121, 104, 117, 109, 97, 122, 107, 118, 116, 121, 114, 121, 113, 116, 120, 112, 130, 120, 110, 112, 123, 122, 113, 107, 88, 116, 119, 112, 119, 119, 94, 112, 106, 119, 116, 110, 120, 127, 109, 105, 103, 124, 102, 108, 121, 124, 116, 125, 117, 102, 105, 116, 97, 108, 122, 139, 111, 109, 112, 110, 113, 117, 115, 118, 147, 120, 116, 115, 112, 112, 130, 103, 114, 109, 112, 128, 121, 125, 119, 117, 134, 123, 111, 127, 100, 104, 122, 108, 115, 119, 129, 107, 106, 133, 113, 101, 98, 105, 116, 97, 120, 126, 110, 131, 107, 117, 115, 120, 128, 112, 99, 118, 114, 108, 108, 116, 136, 111, 138, 121, 100, 129, 123, 132, 112, 120, 107, 128, 121, 116, 123, 114, 103, 96, 120, 103, 115, 100, 105, 112, 105, 124, 131, 109, 97, 117, 124, 140, 111, 121, 108, 109, 129, 116, 124, 105, 124, 118, 97, 112, 104, 108, 111, 101, 132, 117, 119, 104, 110, 123, 110, 99, 117, 118, 103, 106, 115, 113, 114, 122, 135, 93, 112, 110, 119, 110, 108, 124, 118, 119, 109, 119, 111, 110, 105, 109, 111, 120, 106, 126, 118, 126, 103, 113, 123, 137, 110, 122, 105, 104, 101, 107, 118, 115, 108, 121, 117, 124, 124, 109, 123, 116, 110, 113, 108, 118, 116, 108, 112, 140, 124, 113, 105, 117, 117, 119, 123, 112, 117, 119, 126, 122, 137, 100, 120, 113, 104, 107, 109, 121, 113, 103, 127, 111, 133, 103, 115, 130, 125, 105, 107, 102, 114, 136, 104, 104, 106, 114, 111, 112, 113, 103, 126, 112, 121, 127, 97, 134, 119, 107, 100, 122, 118, 110, 135, 109, 119, 128, 121, 106, 120, 123, 111, 130, 113, 112, 103, 119, 134, 120, 117, 117, 113, 114, 101, 115, 111, 105, 111, 114, 112, 122, 104, 110, 115, 93, 113, 133, 124, 110, 108, 112, 113, 121, 104, 120, 114, 116, 103, 114, 132, 92, 113, 104, 112, 127, 124, 117, 111, 114, 133, 108, 112, 117, 112, 120, 123, 112, 117, 126, 111, 117, 116, 96, 117, 125, 107, 109, 114, 110, 103, 108, 116, 117, 115, 111, 118, 109, 98, 115, 106, 108, 117, 139, 110, 118, 115, 111, 107, 124, 113, 115, 134, 121, 113, 114, 128, 116, 99, 141, 107, 122, 113, 114, 132, 120, 119, 119, 134, 131, 124, 108, 115, 119, 120, 101, 118, 129, 126, 115, 127, 107, 119, 115, 114, 130, 108, 119, 107, 108, 110, 115, 107, 98, 125, 112, 122, 97, 113, 121, 103, 105, 124, 123, 114, 122, 118, 116, 108, 121, 121, 120, 122, 110, 123, 118, 127, 107, 110, 126, 105, 121, 117, 126, 103, 108, 126, 108, 100, 120, 120, 120, 124, 100, 106, 126, 111, 106, 121, 119, 115, 121, 121, 142, 125, 115, 115, 104, 110, 102, 102, 123, 114, 114, 126, 116, 116, 118, 121, 106, 108, 121, 126, 111, 101, 113, 120, 106, 124, 106, 116, 119, 125, 105, 101, 107, 112, 112, 105, 114, 116, 110, 117, 130, 116, 115, 122, 124, 115, 111, 111, 118, 120, 118, 118, 102, 120, 109, 111, 102, 133, 113, 123, 104, 114, 111, 119, 123, 131, 121, 114, 113, 109, 117, 108, 118, 108, 113, 103, 127, 109, 117, 118, 116, 117, 113, 117, 120, 107, 124, 116, 100, 115, 132, 108, 116, 112, 118, 98, 118, 111, 113, 133, 113, 120, 112, 106, 116, 99, 118, 108, 118, 120, 125, 112, 118, 112, 111, 118, 119, 106, 115, 123, 126, 110, 118, 110, 126, 126, 111, 121, 113, 106, 120, 101, 109, 96, 123, 119, 111, 122, 112, 112, 117, 133, 119, 131, 120, 101, 114, 112, 116, 107, 116, 118, 114, 109, 114, 111, 110, 119, 112, 111, 126, 118, 120, 113, 117, 106, 108, 110, 115, 115, 108, 123, 111, 106, 114, 105, 113, 119, 125, 118, 110, 119, 132, 118, 111, 111, 117, 119, 107, 127, 110, 96, 121, 125, 106, 109, 115, 98, 113, 112, 120, 123, 113, 122, 120, 122, 110, 112, 116, 107, 119, 107, 116, 109, 119, 115, 121, 123, 124, 112, 105, 128, 113, 130, 115, 114, 115, 108, 115, 109, 120, 115, 87, 119, 109, 127, 118, 116, 124, 105, 139, 114, 119, 115, 119, 98, 100, 102, 114, 126, 120, 109, 104, 110, 127, 101, 107, 114, 122, 122, 104, 104, 102, 118, 112, 112, 129, 112, 104, 109, 125, 105, 113, 127, 117, 106, 116, 113, 118, 112, 116, 119, 120, 97, 112, 111, 100, 122, 108, 113, 104, 99, 106, 121, 127, 156, 120, 113, 112, 118, 126, 128, 105, 110, 114, 117, 117, 108, 105, 106, 122, 116, 109, 112, 123, 123, 121, 101, 115, 97, 133, 111, 103, 120, 112, 113, 118, 114, 116, 117, 107, 107, 129, 139, 120, 116, 117, 108, 109, 91, 113, 123, 105, 105, 121, 114, 127, 121, 113, 108, 114, 111, 122, 111, 112, 108, 101, 115, 108, 98, 112, 127, 126, 108, 130, 124, 110, 119, 115, 120, 113, 127, 115, 128, 114, 132, 112, 116, 109, 123, 117, 113, 114, 111, 109, 111, 104, 111, 107, 104, 111, 104, 115, 126, 117, 111, 115, 117, 104, 107, 126, 123, 112, 118, 108, 122, 112, 111, 116, 108, 112, 127, 110, 133, 122, 109, 104, 105, 122, 122, 120, 119, 121, 111, 105, 108, 108, 98, 101, 106, 107, 106, 111, 111, 99, 111, 108, 107, 126, 123, 120, 129, 110, 117, 101, 114, 115, 106, 110, 116, 119, 116, 112, 109, 114, 116, 117, 113, 115, 130, 113, 122, 118, 126, 112, 117, 116, 101, 105, 107, 123, 105, 100, 110, 108, 123, 101, 128, 99, 117, 120, 109, 113, 118, 107, 109, 96, 91, 122, 105, 114, 102, 113, 96, 119, 112, 120, 110, 111, 125, 110, 113, 111, 119, 119, 120, 118, 113, 120, 98, 118, 111, 116, 123, 134, 124, 120, 119, 127, 112, 105, 105, 104, 113, 115, 124, 136, 101, 131, 126, 126, 118, 109, 117, 114, 107, 118, 114, 110, 108, 113, 119, 103, 128, 136, 125, 108, 111, 110, 118, 110, 115, 115, 113, 123, 122, 122, 101, 113, 116, 114, 107, 114, 118, 113, 121, 107, 142, 81, 93, 106, 108, 119, 106, 117, 111, 111, 109, 124, 99, 108, 88, 121, 113, 117, 113, 106, 93, 119, 121, 125, 110, 109, 114, 111, 101, 126, 121, 113, 131, 105, 119, 115, 124, 113, 128, 88, 110, 116, 110, 115, 119, 124, 106, 133, 117, 124, 110, 112, 127, 106, 126, 106, 129, 105, 122, 110, 113, 118, 105, 90, 111, 121, 121, 133, 110, 115, 123, 110, 117, 107, 118, 120, 121, 117, 106, 106, 114, 97, 109, 124, 126, 90, 126, 123, 123, 111, 110, 103, 103, 92, 126, 115, 114, 124, 125, 113, 124, 94, 104, 109, 125, 115, 128, 107, 120, 113, 108, 100, 116, 118, 125, 102, 100, 117, 117, 108, 105, 122, 113, 122, 112, 107, 133, 116, 109, 111, 111, 118, 122, 104, 101, 104, 119, 118, 107, 129, 106, 126, 128, 124, 119, 116, 99, 125, 97, 111, 124, 117, 113, 121, 116, 118, 101, 126, 103, 122, 116, 107, 114, 116, 108, 115, 111, 121, 124, 120, 95, 107, 111, 120, 112, 124, 102, 126, 119, 126, 103, 110, 125, 98, 113, 107, 113, 108, 102, 131, 109, 97, 109, 109, 110, 111, 107, 116, 135, 112, 106, 117, 119, 114, 122, 112, 113, 109, 116, 97, 113, 119, 123, 119, 127, 112, 110, 116, 108, 120, 115, 108, 100, 110, 124, 106, 126, 123, 121, 131, 110, 101, 123, 105, 103, 124, 113, 130, 98, 142, 118, 104, 101, 112, 100, 101, 116, 121, 102, 124, 142, 112, 107, 115, 107, 112, 129, 110, 128, 118, 123, 106, 120, 80, 110, 98, 121, 137, 98, 105, 126, 102, 112, 116, 114, 106, 112, 113, 133, 111, 107, 109, 105, 116, 116, 110, 117, 123, 104, 110, 129, 114, 119, 132, 117, 124, 130, 108, 103, 105, 99, 118, 111, 108, 116, 120, 119, 125, 103, 118, 121, 123, 94, 132, 109, 119, 136, 124, 121, 104, 121, 110, 119, 129, 136, 100, 110, 134, 111, 111, 119, 115, 121, 114, 123, 112, 111, 104, 128, 112, 109, 123, 120, 117, 106, 97, 117, 115, 124, 121, 100, 98, 137, 101, 106, 124, 124, 102, 121, 125, 138, 111, 115, 120, 119, 129, 116, 107, 123, 128, 108, 111, 118, 113, 115, 109, 125, 109, 112, 112, 111, 96, 105, 129, 124, 143, 117, 110, 121, 114, 105, 124, 116, 95, 114, 116, 99, 122, 114, 106, 138, 123, 110, 108, 121, 121, 118, 113, 100, 126, 96, 96, 117, 125, 104, 113, 129, 112, 104, 121, 120, 111, 111, 126, 130, 116, 118, 112, 122, 121, 118, 127, 110, 111, 103, 147, 105, 102, 128, 110, 107, 102, 114, 113, 99, 114, 139, 99, 124, 116, 105, 106, 111, 123, 129, 113, 110, 135, 114, 115, 106, 115, 123, 110, 116, 132, 110, 116, 115, 109, 107, 112, 124, 115, 122, 116, 98, 114, 120, 114, 112, 123, 114, 126, 111, 110, 112, 110, 123, 104, 93, 113, 111, 116, 114, 105, 124, 117, 127, 110, 110, 125, 127, 138, 121, 131, 107, 113, 113, 116, 137, 115, 114, 102, 103, 115, 117, 111, 108, 130, 115, 109, 99, 109, 114, 124, 108, 109, 112, 108, 114, 121, 117, 113, 118, 118, 114, 107, 108, 124, 129, 123, 119, 113, 118, 105, 108, 117, 119, 106, 120, 103, 105, 111, 98, 98, 104, 109, 106, 119, 121, 96, 108, 107, 126, 130, 126, 113, 110, 118, 116, 110, 120, 125, 111, 116, 125, 120, 108, 112, 101, 126, 115, 106, 128, 125, 112, 121, 112, 107, 114, 121, 113, 114, 112, 110, 118, 110, 118, 98, 132, 104, 124, 116, 121, 104, 129, 118, 120, 119, 104, 92, 112, 104, 110, 120, 108, 117, 110, 102, 114, 120, 121, 119, 117, 120, 116, 108, 134, 118, 104, 116, 113, 103, 138, 125, 121, 107, 113, 116, 100, 106, 106, 115, 119, 110, 127, 105, 102, 117, 122, 109, 91, 115, 116, 115, 114, 113, 115, 131, 117, 128, 120, 113, 107, 118, 114, 111, 111, 117, 117, 109, 109, 123, 124, 109, 119, 136, 116, 112, 115, 132, 110, 115, 117, 120, 114, 121, 117, 120, 118, 120, 120, 110, 112, 121, 117, 137, 118, 98, 125, 110, 119, 105, 122, 111, 115, 119, 109, 125, 106, 109, 124, 93, 127, 127, 129, 110, 120, 109, 131, 123, 119, 122, 112, 119, 109, 116, 125, 117, 104, 108, 108, 112, 119, 117, 114, 107, 118, 112, 108, 113, 103, 122, 108, 123, 119, 110, 102, 114, 117, 105, 114, 120, 108, 112, 108, 123, 114, 119, 118, 114, 107, 108, 96, 113, 121, 112, 107, 120, 120, 117, 105, 116, 109, 113, 124, 108, 126, 113, 118, 108, 141, 114, 123, 117, 118, 118, 116, 105, 120, 106, 126, 110, 112, 121, 117, 112, 128, 126, 122, 109, 125, 121, 99, 119, 110, 130, 118, 111, 122, 120, 112, 130, 112, 111, 119, 114, 112, 111, 116, 137, 120, 105, 109, 118, 104, 121, 123, 123, 112, 116, 137, 112, 109, 111, 114, 113, 109, 121, 116, 115, 112, 107, 116, 125, 116, 115, 123, 121, 125, 111, 108, 118, 111, 128, 115, 111, 106, 120, 111, 111, 116, 113, 105, 114, 135, 113, 121, 108, 107, 111, 114, 117, 112, 110, 125, 112, 123, 109, 119, 114, 109, 112, 111, 113, 118, 112, 122, 121, 110, 98, 117, 129, 123, 118, 125, 110, 111, 114, 117, 120, 116, 122, 101, 105, 112, 112, 124, 113, 109, 98, 111, 143, 108, 111, 119, 128, 112, 118, 115, 103, 107, 124, 111, 129, 103, 104, 111, 122, 119, 113, 111, 130, 115, 119, 125, 125, 115, 118, 111, 119, 111, 116, 115, 103, 118, 113, 108, 107, 120, 112, 114, 107, 112, 108, 129, 117, 103, 110, 114, 127, 114, 112, 110, 118, 132, 128, 110, 114, 128, 115, 124, 110, 112, 113, 127, 115, 111, 115, 113, 111, 118, 113, 126, 121, 121, 118, 104, 111, 104, 113, 108, 125, 117, 121, 106, 108, 114, 108, 126, 117, 116, 115, 115, 106, 111, 117, 111, 119, 133, 109, 106, 120, 112, 111, 121, 99, 124, 121, 109, 120, 136, 125, 110, 117, 96, 106, 114, 107, 113, 111, 106, 113, 117, 116, 116, 115, 108, 111, 106, 113, 111, 132, 111, 118, 114, 113, 113, 121, 106, 118, 120, 118, 106, 121, 135, 118, 115, 108, 110, 110, 125, 119, 114, 110, 110, 113, 122, 116, 122, 113, 114, 115, 117, 115, 128, 113, 120, 114, 114, 111, 109, 111, 123, 109, 109, 119, 106, 106, 122, 119, 112, 122, 112, 106, 120, 133, 123, 120, 129, 129, 123, 118, 118, 119, 117, 117, 112, 114, 113, 106, 117, 110, 120, 118, 124, 120, 107, 105, 106, 123, 120, 120, 120, 112, 111, 112, 119, 126, 101, 113, 121, 122, 118, 111, 108, 115, 126, 108, 116, 115, 115, 110, 109, 116, 119, 113, 109, 118, 114, 114, 111, 104, 113, 127, 121, 119, 113, 122, 117, 122, 124, 116, 119, 109, 118, 111, 119, 126, 109, 122, 116, 122, 108, 110, 120, 128, 109, 80, 126, 115, 131, 121, 111, 119, 117, 114, 122, 104, 112, 123, 117, 113, 110, 112, 135, 114, 125, 112, 119, 119, 118, 118, 120, 127, 114, 113, 117, 128, 110, 107, 121, 112, 118, 107, 118, 111, 121, 118, 112, 120, 107, 99, 109, 117, 136, 111, 115, 117, 119, 114, 120, 122, 113, 112, 110, 101, 120, 113, 127, 116, 123, 119, 115, 113, 110, 118, 122, 119, 132, 113, 117, 129, 99, 102, 120, 112, 109, 112, 118, 105, 108, 113, 108, 118, 114, 117, 118, 115, 109, 121, 104, 108, 127, 124, 105, 108, 113, 101, 123, 121, 107, 114, 102, 102, 108, 117, 120, 122, 118, 115, 122, 107, 112, 113, 132, 119, 110, 122, 120, 120, 125, 111, 111, 126, 128, 117, 114, 117, 122, 112, 102, 114, 117, 114, 111, 127, 114, 109, 113, 107, 110, 109, 123, 121, 123, 114, 113, 128, 110, 122, 115, 112, 111, 113, 100, 110, 109, 110, 116, 111, 113, 128, 115, 113, 116, 117, 112, 140, 116, 116, 117, 119, 113, 114, 123, 111, 102, 109, 129, 97, 112, 112, 106, 97, 118, 129, 118, 120, 116, 116, 117, 110, 118, 104, 124, 114, 112, 125, 118, 108, 124, 120, 117, 114, 118, 124, 119, 111, 116, 109, 122, 114, 121, 106, 117, 112, 113, 124, 120, 124, 117, 122, 123, 114, 112, 123, 105, 125, 116, 107, 112, 114, 106, 126, 111, 117, 101, 106, 112, 113, 122, 129, 119, 109, 119, 119, 125, 119, 118, 108, 114, 120, 115, 115, 113, 122, 130, 108, 119, 114, 114, 114, 101, 115, 116, 123, 116, 118, 115, 136, 124, 113, 118, 115, 118, 106, 119, 106, 114, 111, 122, 109, 118, 113, 117, 112, 115, 122, 116, 115, 132, 116, 108, 129, 110, 122, 115, 118, 109, 117, 115, 121, 112, 123, 103, 102, 110, 126, 127, 127, 115, 116, 117, 111, 125, 101, 111, 114, 120, 137, 122, 119, 116, 125, 110, 125, 108, 111, 114, 107, 115, 112, 111, 107, 114, 114, 115, 116, 120, 113, 127, 109, 114, 113, 103, 119, 106, 116, 121, 123, 109, 116, 123, 108, 112, 131, 117, 118, 150, 109, 119, 124, 105, 119, 122, 113, 127, 109, 115, 119, 116, 105, 114, 122, 114, 131, 115, 127, 112, 123, 105, 116, 111, 119, 115, 117, 117, 114, 111, 119, 119, 112, 132, 102, 103, 113, 115, 112, 121, 115, 119, 110, 119, 114, 113, 98, 121, 119, 114, 106, 119, 112, 117, 129, 117, 118, 110, 124, 107, 112, 129, 112, 113, 110, 113, 116, 120, 129, 120, 111, 127, 114, 117, 113, 102, 112, 121, 110, 114, 125, 121, 113, 128, 122, 115, 112, 94, 110, 104, 110, 108, 110, 125, 121, 123, 133, 126, 110, 112, 133, 114, 120, 110, 132, 122, 111, 113, 117, 96, 113, 121, 102, 119, 119, 121, 124, 117, 117, 112, 120, 113, 114, 118, 110, 117, 120, 116, 119, 116, 106, 123, 125, 127, 106, 116, 117, 109, 118, 123, 114, 111, 110, 114, 117, 110, 100, 122, 117, 109, 109, 111, 116, 114, 120, 111, 120, 121, 115, 117, 109, 127, 113, 121, 115, 114, 112, 101, 119, 116, 119, 112, 112, 119, 119, 116, 117, 114, 124, 118, 113, 117, 110, 130, 104, 111, 119, 123, 112, 112, 120, 118, 115, 113, 138, 115, 110, 95, 116, 117, 110, 116, 111, 134, 89, 109, 112, 108, 122, 124, 118, 133, 117, 118, 113, 121, 111, 120, 124, 117, 111, 113, 126, 106, 118, 112, 124, 106, 104, 110, 111, 108, 95, 111, 115, 104, 113, 112, 114, 113, 104, 117, 110, 119, 117, 108, 117, 113, 107, 110, 116, 109, 117, 106, 117, 115, 120, 117, 102, 117, 125, 111, 110, 118, 115, 114, 124, 133, 125, 119, 123, 120, 125, 112, 112, 115, 122, 102, 115, 124, 124, 120, 117, 117, 105, 116, 141, 116, 118, 111, 114, 117, 112, 117, 119, 126, 114, 118, 100, 126, 123, 114, 104, 115, 112, 110, 114, 104, 123, 117, 111, 112, 116, 113, 101, 119, 88, 114, 112, 115, 116, 118, 120, 116, 116, 124, 115, 116, 122, 105, 103, 117, 120, 116, 122, 126, 108, 116, 118, 122, 113, 124, 123, 121, 111, 111, 116, 137, 113, 116, 110, 111, 103, 118, 119, 126, 120, 123, 124, 111, 108, 115, 106, 102, 107, 120, 109, 112, 111, 132, 117, 110, 120, 121, 114, 119, 124, 105, 129, 109, 120, 119, 139, 114, 115, 106, 104, 117, 106, 107, 115, 109, 114, 120, 105, 91, 112, 116, 116, 109, 125, 118, 115, 115, 119, 102, 119, 119, 125, 104, 114, 109, 126, 111, 125, 124, 119, 116, 117, 114, 118, 113, 121, 122, 117, 117, 102, 101, 120, 107, 119, 122, 112, 116, 126, 112, 100, 124, 109, 101, 121, 115, 110, 108, 124, 120, 128, 114, 131, 117, 113, 117, 110, 103, 121, 111, 123, 107, 123, 102, 127, 112, 122, 111, 121, 121, 116, 125, 103, 104, 118, 108, 111, 113, 114, 115, 118, 109, 119, 111, 111, 71, 112, 118, 114, 117, 113, 119, 103, 116, 124, 113, 134, 106, 109, 119, 107, 121, 121, 108, 113, 123, 117, 117, 109, 105, 116, 116, 118, 121, 134, 135, 107, 114, 122, 105, 117, 103, 122, 119, 111, 116, 118, 152, 115, 128, 112, 113, 137, 118, 112, 119, 125, 118, 117, 115, 115, 109, 114, 106, 109, 125, 116, 128, 115, 104, 112, 114, 112, 116, 108, 120, 116, 117, 112, 115, 115, 126, 120, 120, 130, 109, 112, 114, 110, 102, 126, 118, 121, 112, 114, 109, 108, 119, 124, 113, 108, 111, 116, 112, 121, 106, 113, 116, 120, 109, 116, 107, 113, 119, 111, 122, 110, 107, 110, 118, 108, 106, 116, 124, 131, 117, 115, 113, 117, 117, 123, 113, 129, 115, 111, 123, 101, 116, 107, 111, 107, 110, 103, 113, 114, 106, 108, 118, 117, 114, 107, 113, 118, 109, 123, 105, 117, 128, 128, 111, 125, 114, 118, 97, 116, 116, 115, 117, 122, 146, 107, 109, 110, 120, 113, 108, 121, 125, 125, 112, 114, 91, 106, 107, 119, 114, 118, 112, 119, 108, 111, 129, 112, 117, 117, 122, 102, 116, 115, 132, 125, 118, 120, 119, 116, 113, 113, 117, 108, 118, 123, 108, 122, 111, 113, 108, 121, 115, 102, 129, 116, 122, 105, 104, 114, 117, 109, 110, 113, 108, 133, 113, 123, 133, 115, 119, 116, 118, 114, 118, 90, 97, 117, 121, 121, 116, 120, 108, 115, 121, 117, 117, 128, 118, 106, 116, 128, 139, 112, 117, 97, 112, 124, 119, 115, 111, 121, 109, 115, 110, 126, 111, 112, 110, 112, 119, 138, 124, 130, 108, 123, 123, 124, 131, 108, 113, 108, 116, 126, 113, 120, 106, 120, 110, 112, 117, 117, 115, 117, 109, 117, 114, 121, 109, 107, 118, 113, 113, 96, 104, 121, 115, 123, 124, 123, 111, 116, 127, 119, 106, 108, 122, 103, 128, 119, 114, 97, 112, 124, 105, 115, 113, 107, 116, 115, 120, 107, 120, 112, 105, 118, 123, 112, 124, 116, 126, 104, 119, 107, 121, 130, 119, 111, 118, 106, 106, 136, 118, 123, 115, 120, 116, 108, 108, 104, 121, 121, 123, 112, 131, 113, 119, 114, 114, 121, 123, 115, 118, 110, 115, 113, 116, 122, 120, 112, 119, 114, 115, 105, 115, 118, 110, 114, 112, 121, 112, 110, 106, 116, 121, 88, 118, 120, 111, 104, 115, 121, 110, 120, 120, 115, 97, 123, 125, 133, 106, 118, 132, 110, 106, 102, 123, 107, 114, 93, 120, 121, 123, 126, 120, 108, 119, 112, 118, 123, 120, 112, 109, 100, 116, 124, 126, 107, 115, 113, 112, 109, 114, 124, 103, 122, 116, 119, 100, 105, 115, 111, 118, 109, 125, 116, 105, 119, 119, 115, 125, 132, 114, 112, 110, 125, 116, 119, 113, 113, 116, 105, 112, 106, 113, 115, 107, 116, 115, 116, 119, 119, 124, 120, 110, 111, 116, 117, 123, 109, 117, 125, 121, 120, 116, 125, 122, 125, 112, 112, 117, 117, 125, 136, 119, 116, 117, 114, 106, 131, 104, 111, 113, 114, 125, 116, 122, 113, 111, 105, 112, 108, 116, 113, 115, 106, 111, 115, 122, 114, 126, 116, 109, 126, 106, 119, 118, 115, 115, 103, 118, 106, 107, 112, 116, 109, 101, 125, 107, 118, 105, 116, 116, 110, 118, 117, 118, 117, 103, 114, 124, 118, 129, 118, 109, 120, 120, 126, 109, 119, 112, 113, 115, 109, 95, 114, 109, 116, 122, 113, 111, 101, 104, 117, 111, 123, 124, 109, 123, 107, 119, 112, 111, 120, 108, 109, 118, 113, 117, 118, 109, 109, 110, 112, 114, 107, 125, 113, 121, 119, 99, 109, 118, 112, 125, 107, 112, 113, 110, 118, 118, 115, 125, 120, 111, 106, 118, 121, 132, 121, 106, 115, 114, 103, 124, 122, 118, 124, 107, 109, 114, 106, 121, 108, 118, 112, 119, 106, 117, 113, 125, 118, 111, 109, 111, 111, 113, 118, 108, 107, 116, 101, 109, 111, 126, 114, 119, 107, 140, 117, 107, 116, 95, 110, 114, 107, 131, 123, 121, 119, 124, 116, 110, 109, 115, 109, 115, 100, 112, 118, 110, 114, 116, 116, 121, 111, 108, 106, 109, 113, 108, 116, 114, 109, 113, 115, 117, 126, 110, 109, 104, 111, 104, 117, 104, 123, 114, 117, 113, 109, 124, 110, 115, 120, 127, 113, 109, 119, 117, 109, 117, 106, 110, 111, 108, 112, 114, 119, 108, 114, 119, 127, 122, 112, 124, 116, 105, 106, 107, 115, 122, 108, 113, 116, 117, 121, 112, 112, 116, 114, 118, 107, 115, 114, 112, 119, 127, 121, 118, 107, 125, 117, 110, 116, 98, 113, 119, 114, 117, 110, 112, 121, 117, 129, 117, 113, 96, 122, 133, 126, 109, 112, 115, 117, 134, 112, 121, 101, 101, 122, 113, 120, 102, 115, 118, 126, 125, 107, 117, 132, 114, 115, 107, 112, 117, 101, 101, 117, 106, 110, 105, 119, 122, 114, 113, 119, 127, 108, 125, 117, 110, 110, 116, 121, 110, 109, 110, 114, 110, 138, 108, 117, 117, 106, 118, 120, 118, 122, 126, 113, 119, 106, 115, 103, 120, 117, 122, 110, 120, 115, 111, 116, 112, 108, 116, 117, 118, 121, 125, 109, 114, 111, 108, 124, 99, 110, 106, 116, 111, 134, 119, 120, 109, 115, 118, 125, 112, 122, 129, 118, 108, 106, 120, 119, 114, 115, 127, 112, 114, 116, 116, 117, 128, 113, 123, 114, 119, 108, 117, 103, 112, 112, 97, 106, 115, 111, 110, 105, 114, 130, 102, 121, 115, 110, 117, 114, 120, 128, 117, 121, 129, 116, 114, 113, 113, 125, 109, 118, 112, 114, 114, 113, 104, 130, 115, 109, 118, 111, 128, 106, 109, 119, 114, 133, 113, 126, 117, 119, 115, 108, 123, 117, 119, 117, 120, 112, 114, 107, 113, 107, 121, 108, 107, 112, 87, 120, 119, 115, 115, 106, 110, 113, 104, 110, 119, 107, 113, 114, 114, 110, 106, 114, 115, 116, 111, 127, 112, 124, 113, 108, 112, 108, 115, 110, 110, 113, 121, 125, 112, 106, 124, 115, 114, 122, 123, 104, 122, 111, 118, 122, 116, 123, 117, 118, 127, 115, 130, 105, 121, 97, 105, 110, 126, 109, 128, 112, 114, 121, 118, 116, 115, 120, 107, 110, 109, 125, 113, 126, 139, 112, 94, 113, 119, 119, 121, 112, 109, 118, 106, 132, 98, 122, 126, 131, 101, 114, 124, 109, 109, 118, 127, 109, 113, 125, 102, 111, 130, 82, 92, 93, 108, 115, 113, 104, 113, 122, 106, 109, 115, 103, 109, 105, 107, 105, 116, 118, 113, 128, 124, 131, 124, 120, 107, 111, 109, 116, 107, 99, 124, 114, 117, 133, 128, 116, 105, 116, 119, 103, 116, 131, 113, 108, 116, 113, 124, 117, 138, 109, 125, 114, 108, 120, 103, 122, 122, 117, 105, 118, 112, 135, 118, 115, 116, 114, 116, 112, 125, 129, 131, 130, 117, 116, 132, 103, 123, 113, 124, 99, 106, 119, 126, 110, 117, 117, 120, 104, 46, 118, 127, 121, 126, 111, 116, 123, 111, 110, 109, 115, 116, 115, 111, 108, 103, 115, 106, 112, 122, 111, 108, 115, 123, 121, 120, 110, 105, 112, 108, 127, 119, 122, 114, 110, 108, 101, 122, 126, 106, 110, 116, 109, 118, 118, 124, 112, 95, 116, 110, 120, 109, 124, 112, 124, 114, 105, 104, 115, 115, 123, 124, 120, 111, 126, 126, 106, 119, 110, 115, 122, 103, 107, 121, 110, 124, 122, 106, 114, 109, 121, 109, 123, 122, 119, 101, 112, 121, 116, 109, 116, 126, 114, 109, 116, 110, 113, 117, 116, 129, 114, 116, 119, 120, 122, 96, 116, 103, 101, 109, 137, 113, 107, 118, 94, 122, 125, 109, 115, 111, 108, 118, 115, 109, 105, 116, 124, 119, 118, 122, 117, 114, 111, 115, 108, 119, 118, 122, 122, 120, 128, 119, 103, 106, 107, 115, 118, 114, 111, 126, 115, 129, 102, 140, 118, 104, 112, 106, 116, 110, 125, 115, 115, 109, 117, 111, 112, 118, 117, 116, 112, 110, 120, 120, 110, 127, 121, 111, 105, 120, 123, 116, 101, 111, 120, 118, 105, 111, 122, 122, 105, 118, 123, 118, 118, 112, 104, 108, 109, 98, 108, 119, 115, 128, 113, 109, 130, 118, 110, 119, 103, 117, 119, 121, 117, 118, 98, 106, 124, 142, 103, 111, 118, 115, 115, 108, 120, 113, 118, 115, 124, 109, 106, 111, 113, 114, 101, 105, 117, 106, 129, 117, 126, 118, 95, 125, 106, 103, 105, 115, 127, 105, 119, 121, 113, 113, 116, 113, 103, 111, 115, 111, 118, 108, 112, 115, 126, 118, 107, 108, 112, 118, 121, 116, 115, 127, 124, 117, 112, 118, 118, 112, 122, 115, 110, 113, 121, 115, 117, 125, 107, 115, 110, 146, 111, 109, 119, 120, 101, 114, 106, 111, 112, 117, 88, 109, 120, 117, 170, 122, 102, 124, 116, 64, 119, 114, 114, 113, 118, 114, 122, 110, 111, 116, 120, 109, 140, 121, 126, 117, 131, 117, 115, 112, 117, 111, 112, 114, 119, 114, 116, 126, 118, 111, 112, 118, 105, 126, 109, 118, 129, 111, 115, 105, 109, 121, 122, 111, 117, 117, 110, 122, 111, 113, 113, 113, 114, 113, 109, 119, 113, 102, 112, 129, 102, 110, 119, 115, 103, 114, 121, 106, 114, 128, 110, 104, 108, 113, 114, 130, 105, 111, 119, 126, 114, 122, 115, 111, 123, 128, 107, 114, 113, 115, 122, 113, 117, 110, 109, 111, 122, 105, 114, 142, 102, 111, 127, 117, 107, 112, 102, 112, 120, 97, 103, 109, 121, 111, 121, 116, 115, 118, 119, 132, 123, 111, 117, 113, 103, 125, 113, 111, 115, 111, 114, 115, 106, 111, 102, 119, 99, 125, 104, 104, 135, 108, 119, 118, 101, 121, 109, 116, 125, 117, 107, 129, 126, 114, 113, 110, 120, 110, 127, 110, 103, 136, 112, 115, 121, 121, 120, 111, 110, 114, 127, 113, 116, 119, 122, 120, 123, 111, 118, 100, 124, 114, 107, 127, 118, 107, 99, 115, 111, 103, 104, 103, 134, 103, 109, 116, 125, 111, 127, 98, 118, 109, 108, 95, 112, 124, 110, 110, 97, 110, 126, 112, 109, 95, 112, 109, 112, 119, 115, 113, 126, 116, 111, 116, 114, 115, 123, 129, 122, 117, 126, 110, 111, 116, 107, 110, 120, 120, 112, 118, 113, 128, 108, 118, 115, 95, 109, 111, 107, 120, 133, 124, 113, 117, 111, 118, 125, 109, 122, 113, 114, 100, 108, 114, 136, 126, 113, 102, 126, 108, 110, 120, 116, 106, 127, 102, 108, 93, 131, 120, 99, 116, 135, 131, 109, 126, 121, 125, 119, 112, 93, 122, 113, 118, 112, 113, 120, 90, 108, 118, 118, 119, 111, 112, 98, 109, 112, 125, 118, 116, 124, 100, 103, 111, 105, 125, 120, 113, 128, 112, 123, 102, 115, 112, 113, 114, 126, 118, 115, 118, 94, 119, 117, 107, 93, 108, 104, 97, 118, 107, 112, 95, 122, 120, 117, 129, 114, 109, 113, 113, 124, 108, 110, 122, 119, 111, 108, 114, 106, 129, 110, 144, 114, 119, 114, 116, 111, 113, 120, 127, 106, 112, 102, 126, 108, 106, 108, 116, 110, 102, 107, 122, 127, 119, 111, 116, 119, 120, 115, 115, 111, 119, 122, 106, 118, 127, 119, 115, 114, 116, 113, 111, 104, 117, 114, 116, 128, 100, 113, 108, 116, 111, 123, 116, 127, 111, 119, 129, 106, 111, 106, 135, 111, 147, 133, 118, 119, 108, 101, 119, 112, 114, 116, 109, 114, 112, 127, 106, 111, 106, 116, 106, 125, 116, 117, 114, 104, 119, 117, 135, 116, 128, 107, 100, 101, 118, 106, 87, 111, 117, 112, 117, 108, 105, 109, 115, 130, 120, 116, 119, 121, 100, 118, 104, 111, 101, 102, 118, 121, 107, 116, 117, 121, 122, 98, 116, 135, 120, 121, 107, 118, 129, 107, 131, 115, 109, 110, 124, 103, 112, 112, 122, 129, 103, 113, 117, 130, 123, 117, 113, 113, 114, 114, 116, 114, 120, 121, 116, 107, 108, 109, 113, 119, 114, 131, 108, 118, 109, 111, 120, 105, 101, 103, 112, 134, 127, 118, 114, 109, 113, 118, 115, 119, 94, 111, 111, 136, 124, 113, 107, 107, 112, 108, 124, 112, 117, 117, 110, 135, 102, 122, 128, 129, 125, 126, 100, 106, 115, 116, 121, 140, 99, 122, 119, 112, 105, 103, 128, 121, 120, 120, 114, 103, 108, 118, 124, 127, 106, 113, 121, 115, 117, 105, 112, 118, 121, 107, 113, 109, 135, 112, 107, 119, 134, 123, 123, 105, 121, 115, 133, 135, 113, 114, 111, 116, 113, 111, 130, 131, 109, 111, 104, 88, 112, 113, 122, 114, 130, 120, 105, 121, 105, 101, 119, 123, 119, 137, 116, 98, 104, 123, 124, 107, 118, 90, 111, 122, 130, 135, 99, 119, 111, 95, 106, 120, 101, 150, 120, 123, 123, 123, 120, 115, 120, 121, 103, 114, 120, 118, 117, 118, 114, 130, 103, 111, 114, 126, 118, 132, 113, 128, 111, 105, 121, 109, 93, 113, 120, 120, 118, 110, 104, 121, 107, 148, 115, 118, 126, 108, 122, 139, 99, 110, 107, 117, 113, 115, 113, 104, 126, 129, 117, 124, 124, 110, 109, 117, 124, 120, 114, 135, 107, 122, 125, 130, 114, 120, 122, 106, 112, 103, 126, 114, 118, 109, 133, 119, 110, 97, 119, 126, 109, 107, 112, 104, 100, 114, 112, 113, 113, 117, 140, 103, 116, 102, 117, 118, 110, 102, 106, 113, 109, 111, 121, 118, 116, 115, 120, 108, 119, 109, 129, 127, 100, 126, 108, 108, 101, 106, 105, 112, 99, 107, 118, 108, 105, 122, 128, 119, 104, 109, 120, 105, 97, 116, 113, 114, 119, 114, 115, 108, 122, 120, 92, 111, 95, 93, 127, 110, 121, 119, 99, 104, 114, 118, 125, 117, 120, 109, 131, 119, 136, 110, 105, 114, 135, 111, 91, 145, 137, 107, 115, 138, 124, 130, 122, 113, 126, 126, 99, 101, 119, 119, 113, 127, 118, 116, 109, 125, 111, 102, 126, 116, 122, 112, 108, 109, 107, 103, 110, 109, 93, 124, 110, 113, 123, 116, 120, 111, 111, 124, 106, 114, 123, 122, 130, 122, 105, 118, 101, 135, 132, 107, 129, 110, 111, 119, 116, 112, 108, 115, 94, 122, 116, 127, 98, 132, 101, 110, 124, 117, 114, 109, 111, 114, 108, 98, 134, 119, 95, 116, 112, 114, 116, 115, 108, 113, 98, 112, 108, 113, 120, 115, 102, 107, 102, 122, 104, 144, 111, 99, 110, 112, 114, 109, 117, 104, 112, 134, 129, 110, 120, 108, 117, 112, 115, 115, 112, 114, 126, 113, 115, 104, 115, 111, 104, 114, 111, 129, 111, 106, 111, 106, 121, 100, 114, 109, 112, 100, 113, 113, 112, 107, 90, 94, 116, 127, 94, 115, 132, 118, 115, 111, 116, 105, 115, 111, 114, 114, 115, 117, 116, 105, 109, 117, 135, 121, 126, 116, 121, 108, 125, 117, 117, 103, 100, 118, 114, 117, 124, 108, 118, 116, 121, 108, 127, 110, 126, 99, 118, 113, 106, 112, 107, 121, 127, 90, 128, 109, 114, 112, 121, 101, 98, 119, 127, 101, 117, 93, 121, 117, 114, 114, 117, 118, 117, 116, 93, 118, 96, 100, 113, 122, 119, 96, 117, 102, 98, 136, 104, 103, 102, 112, 112, 118, 122, 130, 135, 118, 103, 109, 122, 115, 110, 144, 128, 120, 128, 118, 114, 112, 112, 113, 103, 106, 112, 103, 114, 118, 123, 103, 121, 129, 106, 118, 121, 110, 119, 120, 108, 115, 104, 118, 110, 123, 112, 109, 122, 112, 115, 117, 116, 117, 113, 111, 102, 116, 121, 109, 116, 111, 140, 114, 107, 110, 125, 128, 120, 122, 113, 120, 116, 113, 114, 121, 124, 121, 109, 104, 107, 107, 119, 105, 105, 114, 104, 107, 120, 108, 106, 112, 118, 111, 101, 115, 111, 129, 109, 106, 118, 107, 107, 110, 113, 103, 111, 114, 127, 113, 118, 120, 103, 121, 123, 122, 121, 103, 119, 120, 128, 107, 103, 108, 104, 114, 107, 111, 114, 106, 123, 101, 128, 114, 108, 117, 118, 117, 115, 119, 114, 101, 122, 109, 113, 112, 112, 127, 118, 109, 107, 116, 116, 121, 126, 119, 113, 107, 120, 113, 115, 103, 115, 107, 132, 111, 123, 111, 125, 114, 110, 109, 125, 124, 120, 110, 112, 114, 125, 110, 111, 111, 100, 107, 130, 119, 112, 105, 111, 122, 129, 109, 108, 122, 103, 106, 107, 116, 96, 120, 113, 111, 114, 116, 113, 124, 112, 109, 115, 139, 128, 103, 122, 116, 120, 112, 121, 124, 114, 113, 103, 103, 115, 123, 115, 125, 122, 118, 114, 103, 124, 116, 95, 122, 116, 120, 115, 106, 120, 112, 105, 116, 104, 117, 114, 114, 101, 106, 111, 112, 112, 115, 116, 118, 119, 120, 107, 119, 106, 109, 109, 120, 120, 121, 109, 119, 110, 111, 121, 120, 119, 106, 118, 116, 130, 114, 120, 120, 123, 125, 109, 115, 109, 117, 116, 117, 127, 111, 112, 115, 120, 106, 110, 123, 100, 114, 109, 105, 112, 103, 113, 114, 112, 112, 129, 120, 111, 118, 110, 110, 97, 115, 123, 117, 126, 123, 107, 109, 113, 118, 113, 120, 119, 106, 114, 116, 104, 130, 118, 108, 109, 106, 121, 113, 109, 108, 114, 110, 114, 119, 111, 123, 115, 122, 106, 110, 125, 114, 112, 114, 112, 116, 117, 111, 112, 121, 115, 116, 109, 111, 112, 109, 117, 107, 114, 119, 118, 113, 107, 107, 115, 107, 118, 105, 114, 113, 125, 103, 112, 117, 112, 128, 114, 120, 119, 130, 113, 118, 100, 106, 101, 124, 128, 103, 117, 105, 125, 94, 123, 107, 118, 120, 109, 129, 121, 110, 116, 117, 99, 118, 114, 132, 117, 114, 96, 111, 121, 114, 118, 131, 88, 119, 125, 122, 114, 109, 99, 109, 120, 117, 117, 110, 115, 114, 113, 117, 125, 123, 120, 118, 116, 115, 106, 115, 113, 121, 113, 111, 112, 125, 110, 121, 120, 113, 115, 114, 114, 115, 109, 124, 121, 121, 116, 134, 115, 110, 113, 120, 120, 123, 119, 114, 125, 113, 116, 120, 119, 105, 119, 110, 107, 119, 115, 115, 107, 119, 107, 93, 121, 114, 106, 108, 120, 111, 105, 116, 119, 115, 108, 114, 109, 113, 118, 118, 120, 106, 110, 119, 124, 110, 110, 114, 118, 108, 117, 109, 111, 117, 109, 112, 111, 115, 122, 106, 117, 115, 112, 105, 118, 125, 98, 115, 118, 112, 118, 116, 129, 107, 109, 101, 109, 113, 126, 118, 116, 130, 116, 119, 101, 112, 114, 103, 119, 116, 116, 122, 111, 127, 115, 123, 95, 126, 131, 111, 104, 112, 109, 122, 98, 113, 121, 115, 131, 120, 113, 123, 122, 116, 105, 115, 111, 110, 112, 118, 106, 116, 108, 96, 105, 118, 130, 107, 119, 113, 128, 111, 122, 125, 106, 107, 110, 118, 119, 108, 135, 121, 105, 117, 131, 110, 119, 104, 111, 112, 114, 115, 107, 122, 113, 121, 124, 110, 135, 112, 131, 118, 117, 107, 129, 123, 112, 115, 117, 106, 124, 130, 115, 115, 108, 109, 116, 119, 106, 124, 112, 136, 107, 116, 104, 121, 105, 117, 104, 107, 124, 108, 110, 117, 132, 116, 124, 103, 106, 113, 108, 105, 118, 110, 104, 114, 120, 118, 132, 112, 102, 121, 117, 116, 112, 116, 105, 128, 105, 109, 117, 104, 117, 128, 112, 102, 114, 117, 115, 111, 114, 116, 106, 112, 108, 106, 122, 118, 126, 109, 110, 117, 124, 133, 119, 117, 126, 116, 106, 126, 118, 128, 102, 118, 122, 113, 121, 112, 113, 119, 116, 99, 119, 99, 123, 119, 114, 115, 114, 108, 112, 128, 115, 119, 103, 128, 111, 130, 112, 104, 107, 126, 123, 127, 102, 103, 111, 125, 134, 117, 104, 107, 111, 113, 102, 120, 118, 111, 113, 122, 114, 122, 118, 113, 118, 110, 113, 112, 126, 119, 102, 115, 116, 130, 111, 111, 104, 113, 114, 123, 114, 115, 116, 107, 118, 125, 115, 123, 118, 105, 106, 115, 123, 124, 104, 110, 110, 115, 125, 113, 112, 125, 130, 102, 115, 128, 107, 110, 116, 117, 118, 104, 105, 117, 111, 111, 117, 122, 127, 110, 118, 120, 113, 116, 102, 121, 114, 103, 109, 123, 113, 109, 116, 115, 123, 110, 107, 96, 118, 117, 130, 111, 122, 117, 112, 101, 120, 113, 128, 110, 110, 123, 103, 105, 111, 99, 101, 122, 119, 125, 113, 119, 120, 127, 116, 113, 118, 110, 127, 118, 91, 102, 118, 114, 121, 116, 110, 103, 114, 115, 116, 118, 118, 119, 119, 109, 112, 125, 110, 112, 110, 118, 109, 117, 117, 115, 104, 120, 124, 118, 111, 110, 114, 112, 126, 112, 117, 103, 118, 124, 122, 119, 103, 123, 98, 111, 108, 114, 112, 116, 130, 104, 125, 128, 101, 121, 115, 113, 115, 108, 104, 118, 104, 120, 127, 109, 113, 117, 123, 110, 110, 119, 119, 121, 101, 116, 110, 120, 124, 107, 118, 114, 127, 117, 112, 123, 91, 106, 106, 124, 112, 117, 120, 123, 107, 126, 119, 117, 137, 112, 120, 110, 104, 108, 124, 119, 105, 113, 128, 110, 102, 117, 114, 110, 110, 114, 111, 111, 101, 89, 121, 114, 107, 105, 108, 119, 125, 139, 113, 121, 121, 116, 128, 118, 119, 117, 116, 102, 114, 106, 96, 106, 117, 96, 106, 117, 114, 118, 109, 125, 116, 118, 110, 118, 114, 107, 109, 126, 111, 109, 118, 121, 116, 119, 109, 114, 112, 108, 117, 122, 105, 109, 115, 128, 110, 100, 123, 115, 110, 110, 105, 104, 121, 113, 113, 119, 120, 116, 115, 103, 112, 114, 137, 126, 117, 118, 105, 104, 110, 109, 116, 127, 100, 107, 97, 123, 116, 113, 107, 130, 108, 141, 90, 103, 110, 119, 125, 128, 122, 106, 123, 103, 116, 108, 122, 123, 104, 119, 125, 117, 124, 116, 125, 114, 98, 111, 100, 110, 124, 113, 124, 109, 114, 106, 108, 111, 109, 112, 106, 112, 118, 105, 131, 124, 112, 104, 138, 94, 112, 130, 105, 121, 123, 118, 115, 121, 99, 94, 111, 127, 119, 113, 123, 106, 105, 114, 122, 115, 117, 119, 116, 119, 117, 109, 130, 126, 129, 114, 128, 99, 120, 132, 107, 120, 116, 118, 114, 111, 109, 124, 105, 129, 109, 112, 127, 122, 110, 116, 113, 114, 114, 103, 121, 103, 105, 116, 123, 110, 118, 117, 107, 123, 111, 110, 93, 109, 116, 117, 110, 115, 119, 106, 115, 114, 114, 129, 113, 127, 109, 108, 116, 107, 118, 122, 105, 125, 108, 107, 121, 114, 121, 124, 100, 110, 102, 105, 112, 114, 126, 124, 105, 119, 93, 122, 121, 119, 130, 110, 106, 124, 106, 108, 102, 111, 117, 115, 127, 118, 116, 110, 103, 131, 120, 128, 111, 118, 122, 109, 108, 115, 120, 118, 111, 126, 111, 121, 108, 111, 128, 120, 122, 114, 120, 109, 105, 111, 115, 109, 123, 106, 115, 125, 118, 114, 108, 109, 103, 113, 105, 127, 118, 84, 103, 116, 109, 120, 117, 115, 107, 108, 119, 115, 107, 115, 126, 108, 107, 122, 115, 103, 104, 125, 121, 104, 110, 107, 118, 107, 112, 120, 113, 115, 120, 128, 99, 115, 124, 125, 108, 112, 121, 119, 128, 113, 139, 97, 99, 107, 114, 135, 112, 109, 126, 121, 121, 118, 118, 107, 113, 92, 128, 111, 109, 122, 108, 122, 122, 120, 122, 106, 109, 113, 104, 105, 106, 132, 113, 129, 129, 110, 127, 110, 131, 100, 101, 98, 140, 127, 107, 106, 113, 126, 121, 129, 133, 116, 100, 111, 109, 121, 116, 116, 104, 130, 109, 109, 118, 122, 123, 104, 105, 118, 118, 132, 117, 111, 97, 113, 143, 127, 108, 121, 115, 112, 117, 112, 109, 115, 101, 112, 89, 118, 114, 110, 114, 109, 111, 110, 106, 126, 119, 103, 124, 125, 110, 120, 75, 102, 104, 103, 121, 136, 121, 114, 112, 108, 118, 104, 132, 133, 107, 122, 100, 110, 120, 122, 119, 128, 111, 116, 103, 118, 86, 115, 106, 129, 108, 102, 122, 121, 119, 122, 90, 121, 116, 113, 119, 127, 112, 124, 126, 88, 136, 103, 115, 102, 117, 130, 118, 120, 104, 124, 117, 112, 117, 111, 112, 107, 113, 111, 103, 110, 125, 109, 102, 110, 123, 108, 119, 103, 94, 98, 121, 112, 109, 101, 114, 114, 106, 94, 128, 108, 100, 110, 111, 106, 104, 113, 112, 112, 107, 102, 117, 118, 114, 110, 116, 119, 122, 115, 106, 104, 106, 116, 122, 105, 110, 124, 101, 129, 115, 107, 112, 120, 119, 112, 105, 121, 111, 124, 109, 125, 119, 117, 101, 111, 107, 119, 133, 98, 114, 115, 119, 120, 117, 113, 103, 116, 121, 114, 114, 111, 115, 113, 113, 121, 129, 104, 121, 114, 106, 122, 101, 110, 108, 112, 115, 115, 111, 115, 108, 109, 114, 113, 110, 123, 124, 108, 114, 119, 120, 112, 117, 125, 116, 143, 118, 119, 123, 141, 106, 104, 120, 99, 115, 118, 100, 114, 107, 120, 123, 115, 120, 117, 123, 100, 109, 121, 112, 114, 119, 122, 112, 121, 121, 110, 117, 116, 111, 106, 119, 111, 120, 110, 129, 126, 114, 116, 117, 113, 118, 113, 113, 110, 121, 111, 109, 117, 104, 119, 121, 118, 114, 117, 115, 105, 107, 111, 117, 118, 123, 107, 113, 114, 117, 110, 109, 119, 110, 116, 104, 128, 112, 109, 121, 102, 115, 118, 110, 118, 116, 111, 114, 121, 118, 116, 110, 123, 117, 120, 124, 116, 115, 107, 116, 113, 119, 121, 107, 115, 120, 111, 119, 119, 120, 115, 128, 106, 132, 120, 113, 121, 119, 110, 115, 113, 115, 116, 120, 115, 115, 117, 130, 118, 107, 118, 118, 113, 121, 118, 104, 123, 110, 107, 106, 108, 116, 109, 108, 111, 115, 108, 110, 124, 120, 111, 117, 116, 108, 105, 105, 116, 114, 118, 114, 114, 100, 115, 118, 107, 110, 113, 117, 105, 106, 112, 111, 120, 115, 110, 119, 112, 121, 116, 115, 119, 114, 117, 117, 124, 115, 118, 121, 123, 114, 115, 121, 117, 116, 115, 111, 119, 116, 120, 94, 124, 106, 109, 115, 126, 104, 118, 122, 111, 112, 115, 110, 117, 115, 118, 115, 117, 116, 121, 122, 115, 117, 132, 110, 116, 116, 116, 110, 105, 127, 115, 112, 111, 120, 126, 115, 128, 105, 117, 120, 117, 115, 107, 108, 113, 125, 112, 117, 102, 122, 118, 114, 110, 116, 116, 118, 127, 119, 110, 113, 117, 120, 118, 114, 113, 123, 126, 122, 124, 123, 118, 110, 115, 121, 109, 115, 109, 126, 117, 113, 108, 121, 121, 114, 112, 109, 117, 117, 116, 108, 120, 120, 107, 118, 134, 117, 116, 112, 116, 121, 104, 119, 118, 112, 109, 104, 121, 111, 113, 118, 115, 121, 124, 117, 110, 109, 104, 113, 117, 126, 111, 117, 110, 118, 116, 110, 106, 109, 106, 120, 117, 111, 117, 105, 117, 116, 121, 125, 108, 104, 117, 113, 122, 117, 119, 114, 116, 112, 121, 108, 116, 113, 107, 113, 115, 108, 111, 118, 114, 106, 110, 107, 114, 109, 121, 121, 115, 112, 123, 118, 123, 117, 118, 93, 121, 116, 119, 124, 115, 111, 110, 115, 120, 111, 124, 113, 111, 119, 110, 107, 113, 115, 117, 125, 119, 118, 110, 110, 116, 115, 104, 109, 116, 123, 105, 111, 114, 107, 119, 112, 107, 120, 127, 116, 120, 116, 119, 105, 108, 112, 114, 115, 126, 113, 122, 124, 117, 123, 113, 118, 117, 111, 118, 125, 123, 131, 117, 114, 109, 103, 123, 109, 116, 120, 119, 111, 114, 116, 120, 115, 119, 123, 114, 112, 124, 109, 117, 119, 115, 111, 117, 116, 119, 123, 116, 122, 111, 113, 114, 121, 117, 121, 114, 122, 121, 124, 113, 122, 123, 111, 99, 120, 114, 116, 112, 116, 119, 120, 106, 111, 117, 110, 126, 110, 115, 109, 111, 113, 121, 120, 109, 112, 112, 115, 114, 117, 120, 109, 115, 115, 118, 117, 116, 113, 114, 111, 119, 122, 110, 117, 124, 108, 117, 121, 118, 115, 122, 112, 114, 118, 119, 121, 114, 114, 111, 121, 126, 106, 120, 120, 115, 115, 116, 115, 111, 112, 114, 110, 112, 116, 114, 115, 120, 114, 113, 120, 115, 119, 113, 124, 117, 108, 113, 112, 116, 121, 119, 127, 116, 112, 116, 98, 113, 110, 123, 117, 124, 112, 122, 114, 109, 112, 114, 115, 113, 110, 116, 119, 118, 113, 117, 115, 117, 114, 112, 121, 113, 120, 111, 125, 118, 114, 111, 118, 120, 118, 118, 114, 111, 118, 109, 112, 118, 115, 114, 107, 118, 119, 122, 120, 115, 107, 117, 120, 114, 112, 112, 118, 117, 112, 121, 116, 112, 113, 127, 115, 121, 115, 118, 117, 116, 112, 108, 114, 119, 116, 109, 103, 118, 117, 114, 108, 112, 113, 107, 111, 114, 116, 119, 122, 113, 116, 115, 113, 118, 109, 115, 112, 117, 110, 115, 115, 123, 113, 120, 119, 112, 112, 119, 128, 125, 117, 125, 111, 110, 120, 115, 120, 115, 124, 115, 117, 113, 112, 119, 122, 114, 112, 118, 112, 112, 114, 113, 113, 110, 111, 119, 118, 124, 115, 120, 121, 122, 112, 116, 114, 110, 114, 123, 117, 116, 111, 114, 114, 119, 117, 112, 115, 120, 121, 123, 118, 114, 121, 119, 118, 127, 117, 109, 112, 102, 117, 110, 114, 113, 113, 116, 105, 119, 120, 115, 117, 108, 111, 117, 121, 119, 119, 115, 107, 118, 116, 112, 117, 115, 116, 110, 123, 111, 114, 116, 114, 116, 114, 123, 118, 121, 118, 116, 115, 119, 115, 122, 119, 117, 110, 107, 124, 117, 114, 117, 113, 112, 111, 114, 119, 117, 115, 115, 114, 117, 116, 109, 114, 123, 117, 119, 113, 106, 117, 109, 115, 118, 124, 118, 124, 115, 115, 112, 116, 112, 118, 107, 122, 118, 120, 114, 114, 119, 109, 121, 113, 114, 111, 116, 114, 115, 117, 116, 115, 115, 119, 117, 116, 118, 117, 118, 107, 107, 117, 120, 116, 117, 110, 118, 114, 111, 117, 116, 103, 112, 118, 121, 120, 116, 120, 108, 113, 111, 115, 123, 110, 112, 117, 116, 121, 122, 109, 113, 112, 111, 127, 116, 108, 111, 115, 119, 118, 112, 120, 115, 114, 111, 117, 112, 102, 120, 109, 106, 117, 114, 124, 117, 119, 120, 119, 129, 113, 110, 120, 114, 116, 113, 108, 118, 120, 116, 117, 126, 115, 112, 110, 106, 116, 116, 106, 115, 116, 121, 109, 110, 122, 116, 115, 119, 120, 123, 120, 124, 116, 116, 117, 115, 111, 120, 121, 118, 116, 115, 123, 118, 112, 110, 122, 118, 118, 114, 114, 111, 118, 118, 116, 111, 112, 110, 115, 116, 122, 115, 113, 124, 116, 124, 126, 118, 120, 119, 119, 111, 119, 100, 107, 116, 109, 109, 113, 124, 113, 115, 108, 106, 125, 113, 118, 127, 109, 124, 106, 133, 114, 122, 108, 114, 130, 103, 125, 119, 119, 108, 114, 117, 120, 122, 129, 118, 106, 111, 132, 116, 119, 112, 111, 110, 110, 112, 135, 112, 109, 110, 111, 119, 118, 114, 118, 116, 109, 116, 110, 108, 114, 114, 119, 101, 110, 119, 116, 106, 125, 114, 115, 118, 111, 134, 114, 112, 112, 119, 111, 113, 118, 112, 122, 122, 108, 123, 107, 119, 119, 110, 113, 109, 116, 124, 119, 107, 110, 110, 119, 128, 113, 110, 110, 117, 117, 114, 113, 120, 111, 103, 112, 111, 116, 123, 99, 116, 114, 121, 119, 107, 128, 112, 112, 118, 115, 116, 125, 115, 109, 114, 106, 117, 108, 112, 118, 116, 112, 120, 108, 113, 116, 129, 119, 119, 113, 109, 129, 115, 116, 102, 108, 112, 121, 113, 108, 102, 101, 125, 113, 99, 125, 116, 118, 121, 112, 119, 115, 127, 121, 116, 106, 103, 117, 124, 111, 110, 110, 109, 125, 109, 115, 116, 111, 112, 104, 110, 119, 117, 121, 121, 115, 107, 109, 113, 107, 107, 111, 108, 113, 110, 116, 115, 116, 109, 111, 117, 110, 119, 109, 125, 119, 94, 115, 117, 113, 122, 105, 109, 108, 120, 106, 117, 130, 114, 112, 120, 121, 114, 115, 123, 120, 114, 121, 91, 112, 119, 122, 115, 113, 120, 119, 116, 126, 112, 112, 108, 121, 112, 106, 121, 112, 115, 123, 130, 102, 125, 114, 125, 120, 116, 131, 104, 110, 115, 120, 119, 111, 115, 102, 121, 132, 109, 112, 108, 112, 116, 115, 108, 107, 111, 115, 105, 108, 112, 124, 123, 112, 119, 108, 107, 123, 118, 108, 115, 122, 108, 118, 121, 120, 125, 106, 103, 117, 109, 112, 114, 113, 109, 108, 115, 111, 110, 119, 120, 115, 108, 112, 104, 111, 110, 110, 114, 118, 109, 120, 111, 113, 112, 107, 107, 111, 103, 117, 115, 129, 119, 127, 117, 117, 114, 112, 117, 124, 129, 117, 120, 107, 94, 109, 111, 107, 110, 122, 106, 113, 119, 118, 122, 113, 120, 116, 110, 110, 110, 108, 121, 123, 118, 117, 115, 119, 127, 118, 115, 111, 112, 114, 107, 114, 116, 113, 112, 117, 108, 117, 111, 124, 117, 106, 122, 119, 127, 113, 115, 123, 116, 119, 114, 113, 109, 117, 114, 121, 115, 122, 117, 134, 125, 118, 126, 118, 126, 108, 112, 101, 101, 108, 118, 111, 115, 118, 116, 113, 115, 108, 120, 115, 114, 121, 111, 129, 112, 110, 119, 112, 112, 126, 122, 115, 122, 115, 118, 111, 91, 121, 112, 119, 118, 114, 106, 110, 106, 124, 115, 139, 116, 120, 129, 117, 122, 117, 92, 115, 115, 110, 114, 112, 117, 114, 120, 121, 118, 111, 123, 108, 120, 132, 117, 114, 123, 108, 109, 97, 116, 123, 105, 120, 113, 111, 116, 115, 123, 138, 110, 126, 117, 109, 111, 118, 113, 123, 119, 120, 110, 113, 119, 112, 115, 114, 122, 114, 115, 114, 115, 117, 111, 108, 116, 108, 118, 112, 112, 109, 126, 110, 122, 116, 114, 119, 120, 113, 120, 119, 112, 110, 115, 111, 104, 114, 111, 103, 116, 110, 106, 111, 116, 118, 111, 113, 119, 117, 120, 112, 111, 117, 117, 113, 120, 134, 111, 120, 123, 112, 113, 118, 117, 122, 116, 113, 117, 118, 113, 119, 118, 116, 119, 110, 118, 110, 109, 115, 108, 114, 115, 114, 113, 117, 114, 113, 116, 117, 122, 122, 116, 123, 117, 118, 109, 116, 112, 115, 109, 119, 121, 122, 112, 110, 118, 114, 123, 122, 117, 114, 115, 125, 114, 121, 117, 112, 108, 117, 122, 108, 110, 118, 114, 109, 115, 117, 111, 115, 117, 118, 120, 121, 107, 121, 127, 117, 114, 112, 117, 114, 110, 129, 111, 110, 114, 114, 113, 116, 114, 115, 119, 112, 118, 114, 114, 110, 111, 112, 113, 119, 109, 117, 120, 116, 113, 113, 116, 129, 121, 115, 118, 114, 111, 116, 111, 113, 121, 111, 118, 115, 108, 123, 115, 126, 118, 116, 113, 115, 115, 111, 119, 115, 115, 120, 114, 112, 113, 118, 112, 112, 117, 120, 113, 117, 109, 108, 116, 110, 113, 108, 114, 112, 116, 118, 125, 115, 108, 110, 113, 112, 121, 110, 117, 105, 113, 123, 108, 127, 109, 118, 114, 107, 115, 123, 119, 117, 113, 120, 109, 114, 117, 118, 122, 119, 117, 120, 112, 113, 120, 116, 119, 125, 119, 113, 111, 116, 108, 109, 115, 106, 122, 117, 105, 105, 115, 117, 111, 118, 118, 113, 111, 123, 118, 115, 111, 116, 113, 116, 116, 118, 117, 117, 115, 120, 116, 116, 118, 114, 124, 105, 106, 112, 112, 125, 123, 114, 114, 112, 125, 121, 121, 114, 111, 111, 117, 108, 125, 107, 115, 115, 121, 115, 121, 115, 120, 103, 114, 116, 121, 109, 112, 118, 120, 123, 116, 121, 119, 113, 121, 115, 118, 107, 111, 118, 115, 121, 108, 119, 124, 112, 116, 112, 117, 110, 119, 122, 117, 114, 109, 126, 113, 105, 110, 110, 119, 107, 109, 117, 115, 111, 109, 119, 126, 117, 109, 120, 111, 114, 111, 117, 112, 118, 107, 114, 121, 109, 111, 115, 117, 111, 115, 118, 116, 121, 115, 113, 116, 118, 122, 124, 118, 123, 114, 113, 120, 111, 110, 119, 112, 119, 111, 116, 115, 112, 104, 115, 118, 111, 123, 116, 123, 113, 116, 116, 116, 120, 113, 118, 114, 120, 115, 118, 119, 113, 124, 114, 118, 108, 114, 113, 110, 125, 115, 114, 115, 108, 119, 136, 110, 108, 113, 114, 111, 120, 117, 110, 113, 109, 110, 122, 121, 122, 128, 120, 112, 121, 109, 104, 111, 119, 110, 121, 117, 102, 112, 111, 115, 116, 110, 117, 125, 120, 114, 119, 118, 119, 120, 118, 115, 113, 117, 124, 117, 122, 120, 114, 105, 120, 115, 118, 114, 105, 111, 111, 118, 110, 116, 116, 113, 113, 112, 124, 114, 123, 119, 114, 111, 116, 110, 117, 110, 116, 109, 122, 114, 127, 122, 101, 109, 117, 112, 107, 120, 103, 111, 120, 117, 125, 113, 126, 114, 123, 114, 121, 99, 116, 120, 106, 128, 106, 110, 117, 112, 120, 111, 116, 124, 111, 110, 121, 114, 103, 102, 115, 118, 119, 114, 132, 123, 106, 119, 112, 117, 110, 111, 118, 109, 115, 118, 113, 107, 110, 107, 113, 118, 122, 123, 119, 112, 119, 111, 124, 112, 112, 109, 113, 111, 110, 113, 114, 119, 114, 116, 105, 123, 122, 103, 101, 118, 119, 101, 113, 108, 117, 102, 112, 119, 116, 114, 114, 113, 113, 111, 102, 126, 113, 115, 113, 122, 104, 113, 118, 98, 112, 126, 124, 119, 90, 119, 117, 112, 103, 103, 116, 123, 109, 112, 109, 118, 110, 112, 104, 121, 112, 121, 111, 119, 117, 108, 100, 112, 116, 142, 108, 113, 112, 96, 104, 114, 115, 111, 118, 103, 103, 116, 132, 110, 128, 100, 107, 118, 118, 118, 105, 111, 113, 110, 117, 105, 117, 115, 125, 114, 112, 126, 107, 112, 105, 110, 116, 112, 122, 111, 105, 114, 119, 111, 114, 121, 106, 114, 110, 111, 106, 106, 99, 111, 111, 111, 104, 129, 109, 114, 101, 117, 126, 126, 119, 112, 111, 114, 106, 123, 125, 115, 105, 126, 114, 117, 104, 116, 120, 113, 115, 112, 104, 109, 123, 117, 109, 127, 113, 112, 116, 115, 110, 118, 122, 122, 112, 108, 106, 124, 121, 118, 123, 117, 101, 102, 96, 118, 121, 121, 116, 101, 106, 116, 103, 113, 112, 125, 111, 120, 113, 104, 122, 122, 115, 121, 104, 111, 114, 113, 106, 111, 108, 115, 111, 111, 107, 120, 115, 114, 112, 122, 108, 121, 127, 109, 98, 116, 119, 114, 112, 113, 118, 119, 120, 119, 115, 116, 102, 125, 116, 120, 110, 115, 109, 106, 124, 125, 108, 125, 116, 109, 116, 113, 119, 125, 110, 109, 107, 115, 109, 107, 107, 108, 104, 117, 127, 111, 111, 116, 126, 121, 123, 84, 106, 114, 122, 121, 121, 122, 113, 115, 117, 120, 131, 115, 120, 117, 118, 101, 108, 122, 102, 114, 126, 121, 107, 123, 111, 118, 103, 124, 111, 130, 107, 109, 116, 112, 111, 103, 104, 119, 116, 121, 114, 101, 123, 108, 126, 123, 110, 116, 123, 112, 113, 109, 116, 110, 121, 133, 115, 115, 117, 107, 123, 123, 115, 117, 109, 137, 116, 111, 102, 119, 115, 120, 117, 114, 105, 117, 113, 114, 116, 107, 113, 127, 120, 98, 107, 108, 103, 110, 120, 108, 116, 121, 123, 114, 124, 123, 113, 100, 125, 99, 128, 111, 129, 106, 119, 121, 122, 128, 105, 114, 114, 115, 109, 120, 110, 111, 111, 120, 115, 117, 113, 106, 114, 108, 121, 121, 118, 118, 121, 120, 120, 127, 115, 111, 106, 121, 109, 101, 113, 98, 115, 103, 120, 147, 107, 112, 104, 127, 101, 113, 115, 119, 110, 120, 121, 112, 108, 109, 118, 115, 123, 116, 108, 119, 116, 114, 114, 123, 112, 117, 122, 111, 110, 119, 112, 116, 115, 120, 113, 110, 109, 116, 99, 111, 113, 102, 110, 117, 112, 116, 121, 117, 119, 112, 112, 122, 116, 119, 117, 113, 111, 113, 107, 114, 113, 119, 117, 116, 121, 109, 118, 113, 109, 114, 118, 111, 112, 112, 116, 113, 106, 116, 116, 112, 108, 114, 116, 115, 117, 115, 118, 112, 118, 120, 117, 113, 115, 121, 110, 106, 111, 111, 107, 112, 118, 123, 121, 121, 122, 118, 113, 112, 111, 118, 112, 124, 118, 111, 116, 116, 120, 110, 113, 120, 119, 112, 116, 109, 110, 120, 116, 115, 113, 117, 117, 116, 111, 115, 112, 113, 112, 117, 117, 118, 116, 111, 115, 117, 109, 122, 112, 121, 112, 120, 119, 111, 106, 117, 117, 116, 123, 113, 108, 113, 109, 113, 116, 115, 114, 119, 116, 119, 111, 114, 119, 119, 112, 124, 113, 118, 128, 115, 111, 115, 121, 119, 110, 120, 116, 116, 122, 115, 112, 117, 113, 119, 110, 115, 118, 110, 119, 121, 113, 115, 119, 115, 121, 115, 116, 116, 122, 114, 118, 124, 117, 117, 122, 117, 115, 112, 106, 110, 118, 119, 117, 113, 110, 123, 116, 123, 117, 115, 117, 115, 115, 106, 119, 113, 106, 116, 123, 118, 118, 112, 117, 117, 103, 107, 123, 125, 111, 115, 121, 113, 124, 117, 113, 119, 115, 120, 117, 119, 121, 118, 113, 118, 119, 116, 116, 110, 103, 111, 117, 115, 117, 120, 115, 105, 112, 115, 109, 114, 119, 115, 120, 123, 121, 115, 118, 117, 111, 112, 112, 116, 113, 116, 122, 127, 122, 113, 118, 120, 116, 119, 119, 112, 115, 116, 114, 118, 116, 115, 119, 131, 107, 108, 109, 106, 118, 111, 113, 119, 123, 114, 107, 114, 116, 109, 124, 116, 112, 117, 109, 114, 116, 111, 113, 111, 112, 115, 120, 112, 112, 118, 112, 114, 104, 114, 119, 116, 109, 116, 118, 122, 114, 116, 113, 109, 115, 118, 120, 120, 116, 116, 119, 114, 115, 115, 118, 114, 121, 110, 118, 120, 116, 114, 117, 116, 114, 115, 119, 113, 120, 114, 115, 115, 111, 119, 111, 123, 111, 115, 110, 118, 107, 116, 120, 115, 115, 113, 116, 118, 115, 119, 119, 119, 122, 120, 119, 111, 115, 122, 112, 109, 111, 115, 120, 117, 117, 105, 121, 108, 120, 115, 112, 108, 120, 124, 121, 105, 118, 106, 116, 118, 113, 118, 108, 112, 117, 118, 112, 115, 111, 111, 117, 116, 121, 119, 108, 115, 118, 118, 115, 112, 116, 108, 120, 118, 108, 109, 122, 111, 118, 116, 117, 106, 105, 117, 113, 113, 119, 118, 121, 110, 110, 106, 111, 118, 114, 113, 115, 108, 118, 119, 111, 117, 111, 122, 119, 116, 116, 116, 117, 116, 114, 110, 122, 115, 118, 121, 118, 120, 115, 126, 106, 116, 116, 117, 111, 121, 114, 124, 118, 119, 118, 118, 121, 125, 114, 115, 108, 116, 111, 115, 112, 119, 117, 115, 124, 116, 106, 113, 120, 110, 109, 123, 117, 118, 107, 115, 116, 109, 120, 104, 119, 113, 114, 112, 115, 113, 118, 117, 114, 105, 106, 121, 118, 118, 113, 124, 118, 123, 113, 120, 115, 130, 123, 112, 111, 127, 99, 119, 111, 118, 108, 119, 108, 103, 119, 114, 124, 120, 117, 115, 135, 114, 117, 118, 116, 121, 111, 122, 112, 123, 106, 111, 120, 121, 114, 118, 114, 106, 122, 103, 103, 121, 103, 102, 122, 128, 106, 117, 114, 118, 124, 130, 104, 122, 119, 109, 106, 105, 121, 116, 122, 116, 105, 118, 115, 123, 124, 129, 112, 106, 116, 114, 108, 119, 123, 120, 121, 115, 118, 99, 124, 104, 124, 112, 109, 103, 133, 109, 111, 115, 115, 124, 116, 137, 116, 110, 124, 119, 94, 108, 103, 117, 119, 109, 106, 119, 118, 114, 117, 124, 129, 129, 123, 105, 116, 118, 106, 123, 116, 123, 116, 103, 123, 121, 102, 110, 108, 115, 124, 104, 121, 120, 105, 113, 102, 119, 104, 112, 118, 118, 117, 127, 123, 103, 113, 116, 118, 113, 102, 107, 106, 115, 117, 120, 116, 122, 111, 114, 114, 111, 129, 106, 115, 112, 105, 124, 129, 104, 116, 108, 115, 123, 106, 106, 106, 118, 108, 117, 114, 116, 122, 121, 116, 123, 110, 112, 117, 110, 105, 114, 102, 120, 109, 114, 126, 116, 102, 105, 107, 127, 110, 106, 118, 123, 109, 120, 105, 107, 115, 107, 114, 104, 105, 109, 123, 116, 122, 113, 112, 112, 116, 110, 111, 120, 107, 123, 122, 122, 114, 115, 125, 138, 116, 116, 118, 107, 124, 113, 120, 113, 114, 117, 114, 108, 114, 104, 103, 115, 123, 110, 110, 111, 110, 128, 122, 108, 118, 115, 127, 119, 110, 112, 128, 125, 121, 123, 114, 109, 106, 93, 120, 116, 106, 108, 99, 131, 112, 112, 118, 106, 115, 119, 109, 107, 108, 123, 105, 112, 112, 107, 116, 111, 122, 117, 112, 109, 117, 116, 118, 111, 107, 112, 114, 110, 120, 123, 128, 108, 104, 98, 106, 113, 114, 107, 125, 124, 118, 103, 110, 110, 103, 108, 112, 116, 120, 125, 110, 113, 120, 113, 115, 113, 115, 105, 115, 119, 107, 118, 124, 126, 113, 94, 116, 118, 121, 114, 116, 113, 114, 113, 101, 113, 119, 117, 124, 116, 115, 114, 114, 114, 133, 112, 123, 116, 117, 121, 123, 123, 114, 107, 105, 110, 129, 110, 106, 121, 110, 117, 114, 111, 116, 122, 116, 126, 118, 125, 108, 112, 130, 122, 110, 126, 101, 126, 124, 119, 102, 113, 122, 122, 110, 126, 122, 108, 114, 117, 114, 116, 110, 117, 110, 112, 109, 111, 113, 129, 115, 112, 120, 114, 128, 119, 90, 126, 119, 114, 117, 111, 141, 116, 121, 125, 119, 116, 116, 116, 124, 103, 123, 118, 116, 104, 115, 112, 113, 111, 115, 112, 117, 119, 113, 122, 109, 110, 113, 106, 112, 120, 115, 111, 118, 132, 110, 103, 114, 115, 104, 106, 126, 105, 123, 113, 113, 110, 113, 109, 98, 114, 119, 113, 109, 128, 118, 118, 118, 115, 114, 117, 131, 104, 116, 124, 108, 108, 116, 103, 105, 106, 117, 108, 118, 112, 113, 116, 123, 102, 127, 103, 119, 126, 105, 117, 123, 122, 128, 126, 116, 119, 132, 112, 122, 115, 100, 125, 105, 127, 108, 121, 106, 109, 111, 115, 115, 108, 114, 122, 112, 108, 135, 109, 115, 117, 122, 119, 112, 110, 127, 127, 108, 107, 105, 111, 105, 114, 113, 112, 127, 108, 109, 119, 104, 117, 118, 109, 125, 127, 114, 115, 111, 104, 103, 111, 125, 116, 125, 115, 126, 108, 113, 89, 120, 124, 101, 118, 124, 118, 120, 83, 119, 118, 116, 107, 111, 92, 107, 119, 125, 99, 116, 125, 114, 109, 125, 119, 117, 119, 104, 122, 105, 114, 124, 110, 124, 116, 114, 118, 116, 112, 112, 110, 142, 112, 112, 113, 108, 99, 104, 115, 99, 115, 114, 106, 104, 111, 108, 125, 118, 110, 97, 117, 110, 117, 121, 116, 109, 114, 120, 121, 104, 112, 119, 113, 126, 128, 109, 106, 129, 112, 116, 123, 122, 117, 129, 114, 113, 99, 111, 122, 111, 107, 122, 117, 96, 118, 112, 123, 120, 112, 115, 101, 98, 106, 131, 120, 107, 109, 94, 118, 116, 117, 101, 120, 119, 119, 112, 127, 113, 106, 106, 109, 116, 125, 105, 124, 113, 102, 120, 122, 121, 117, 108, 124, 126, 148, 118, 112, 111, 111, 124, 113, 118, 113, 122, 117, 118, 114, 114, 123, 127, 120, 109, 110, 120, 120, 111, 115, 120, 120, 118, 129, 125, 113, 121, 134, 113, 109, 104, 123, 102, 109, 110, 98, 111, 126, 106, 113, 118, 117, 109, 117, 120, 112, 110, 111, 111, 111, 117, 98, 108, 107, 117, 118, 125, 115, 110, 117, 117, 106, 123, 125, 113, 120, 115, 119, 128, 110, 98, 121, 111, 116, 104, 116, 94, 116, 101, 123, 111, 104, 121, 121, 120, 119, 130, 110, 116, 129, 122, 108, 112, 105, 116, 114, 111, 106, 116, 123, 113, 113, 123, 129, 115, 123, 119, 111, 114, 116, 106, 122, 127, 112, 128, 115, 117, 141, 114, 105, 105, 99, 109, 93, 106, 104, 115, 115, 112, 110, 114, 125, 115, 98, 114, 114, 110, 122, 113, 125, 128, 121, 109, 115, 115, 114, 110, 125, 118, 111, 104, 108, 117, 115, 119, 120, 101, 109, 108, 121, 114, 123, 103, 123, 115, 113, 120, 104, 112, 111, 118, 120, 120, 110, 117, 111, 107, 115, 119, 127, 109, 133, 118, 113, 113, 122, 122, 112, 127, 114, 116, 108, 110, 108, 116, 104, 110, 110, 102, 121, 105, 111, 128, 120, 123, 104, 105, 113, 121, 108, 130, 117, 103, 113, 103, 107, 102, 122, 148, 112, 115, 123, 113, 125, 113, 108, 115, 110, 117, 124, 115, 128, 106, 99, 108, 115, 109, 123, 121, 100, 102, 117, 118, 105, 127, 120, 125, 123, 119, 108, 122, 105, 110, 123, 103, 121, 112, 114, 110, 124, 114, 121, 105, 141, 106, 109, 117, 121, 127, 112, 122, 116, 124, 121, 106, 114, 106, 126, 103, 123, 113, 111, 127, 111, 116, 104, 107, 108, 109, 106, 104, 113, 112, 115, 113, 114, 101, 99, 113, 124, 110, 116, 103, 108, 115, 123, 126, 120, 110, 118, 111, 138, 112, 114, 115, 110, 124, 107, 101, 113, 102, 114, 113, 108, 113, 115, 124, 112, 129, 122, 117, 130, 112, 114, 117, 122, 115, 112, 114, 116, 118, 115, 126, 112, 115, 107, 108, 112, 107, 106, 105, 111, 110, 123, 115, 126, 117, 107, 108, 118, 121, 114, 96, 116, 118, 117, 116, 106, 102, 108, 108, 119, 118, 105, 109, 114, 111, 121, 103, 128, 117, 106, 127, 116, 112, 110, 114, 107, 121, 117, 103, 117, 112, 114, 130, 106, 112, 119, 133, 114, 120, 117, 108, 114, 116, 118, 105, 114, 123, 114, 105, 106, 120, 118, 112, 131, 111, 117, 107, 115, 119, 115, 114, 117, 115, 126, 113, 127, 108, 121, 126, 109, 109, 122, 117, 111, 117, 117, 114, 110, 116, 122, 113, 112, 123, 113, 126, 118, 119, 124, 118, 127, 109, 105, 117, 116, 123, 118, 112, 116, 102, 110, 121, 124, 111, 112, 113, 120, 116, 130, 114, 118, 129, 100, 124, 111, 121, 115, 119, 115, 128, 109, 100, 110, 102, 111, 116, 114, 107, 120, 133, 116, 116, 106, 113, 129, 117, 114, 110, 114, 107, 114, 123, 111, 116, 121, 114, 129, 112, 124, 115, 122, 111, 120, 102, 113, 108, 115, 126, 110, 105, 101, 110, 99, 108, 118, 120, 111, 115, 124, 111, 119, 93, 125, 124, 120, 110, 124, 124, 112, 110, 107, 124, 108, 122, 131, 110, 115, 118, 113, 122, 110, 115, 117, 117, 120, 137, 121, 103, 111, 121, 122, 103, 130, 104, 123, 108, 109, 114, 113, 103, 127, 119, 115, 108, 126, 111, 108, 127, 129, 114, 122, 121, 120, 111, 121, 120, 114, 112, 101, 103, 117, 108, 118, 102, 111, 114, 122, 109, 114, 109, 122, 111, 116, 116, 108, 123, 122, 116, 122, 105, 110, 111, 109, 111, 112, 123, 117, 106, 102, 114, 119, 114, 114, 109, 112, 114, 120, 121, 113, 102, 103, 113, 112, 113, 123, 108, 101, 117, 112, 116, 115, 108, 131, 110, 122, 117, 127, 110, 125, 114, 119, 121, 102, 136, 112, 137, 110, 107, 106, 128, 132, 121, 117, 127, 115, 112, 111, 125, 122, 115, 126, 114, 113, 122, 119, 106, 117, 112, 110, 115, 116, 114, 103, 113, 104, 111, 118, 118, 103, 118, 119, 119, 124, 112, 114, 118, 120, 109, 114, 100, 126, 122, 114, 124, 109, 117, 110, 111, 106, 113, 110, 112, 108, 104, 125, 106, 122, 122, 116, 114, 115, 111, 122, 132, 109, 107, 118, 117, 100, 119, 111, 117, 112, 110, 112, 132, 112, 119, 107, 120, 104, 108, 115, 121, 117, 109, 114, 115, 116, 120, 108, 117, 113, 107, 120, 110, 105, 115, 135, 120, 122, 116, 115, 115, 112, 109, 118, 120, 116, 112, 123, 104, 122, 109, 108, 103, 116, 116, 121, 112, 118, 103, 126, 113, 117, 109, 122, 116, 131, 147, 121, 119, 121, 113, 113, 116, 117, 115, 110, 136, 112, 116, 112, 111, 106, 106, 114, 119, 110, 123, 114, 107, 110, 120, 124, 124, 118, 115, 118, 115, 97, 123, 123, 122, 129, 114, 84, 104, 114, 98, 130, 94, 119, 122, 132, 118, 116, 118, 121, 106, 112, 116, 112, 114, 117, 125, 120, 110, 114, 114, 109, 97, 120, 112, 119, 117, 112, 108, 105, 116, 121, 124, 109, 117, 114, 116, 116, 120, 113, 103, 129, 127, 115, 116, 123, 109, 124, 114, 123, 115, 120, 102, 121, 103, 124, 119, 93, 114, 111, 100, 102, 118, 99, 110, 120, 115, 109, 121, 109, 102, 111, 87, 109, 112, 127, 110, 106, 120, 117, 129, 125, 124, 112, 115, 131, 123, 122, 131, 112, 128, 109, 107, 124, 122, 111, 116, 132, 121, 112, 126, 109, 117, 112, 110, 107, 119, 109, 118, 108, 123, 125, 120, 124, 104, 120, 108, 119, 119, 114, 115, 110, 112, 107, 109, 112, 119, 109, 125, 119, 114, 114, 116, 96, 125, 113, 103, 112, 114, 114, 115, 101, 110, 120, 121, 122, 106, 114, 128, 120, 133, 108, 111, 112, 124, 108, 116, 116, 115, 122, 114, 129, 107, 118, 110, 128, 127, 99, 112, 119, 110, 123, 114, 114, 105, 106, 101, 120, 116, 121, 114, 117, 99, 106, 119, 105, 117, 125, 113, 114, 104, 111, 121, 117, 121, 117, 114, 116, 120, 113, 112, 119, 112, 117, 112, 112, 111, 115, 110, 112, 101, 107, 130, 116, 112, 120, 108, 121, 99, 135, 113, 119, 109, 112, 108, 122, 108, 121, 107, 122, 111, 127, 126, 101, 108, 109, 120, 116, 116, 126, 122, 94, 121, 98, 123, 107, 123, 107, 117, 116, 115, 121, 113, 102, 117, 119, 117, 116, 115, 116, 108, 104, 130, 108, 109, 107, 124, 113, 103, 110, 110, 102, 99, 134, 112, 117, 112, 119, 132, 126, 114, 113, 123, 116, 111, 128, 170, 109, 79, 132, 107, 106, 121, 125, 108, 129, 105, 106, 126, 124, 126, 106, 157, 118, 110, 112, 113, 113, 109, 127, 117, 112, 107, 117, 116, 129, 110, 108, 97, 99, 109, 123, 117, 121, 109, 103, 112, 121, 122, 104, 114, 118, 114, 105, 128, 115, 108, 122, 117, 120, 108, 111, 111, 111, 108, 103, 103, 134, 92, 108, 109, 146, 101, 109, 125, 123, 108, 127, 127, 101, 117, 117, 121, 116, 122, 111, 112, 116, 120, 122, 123, 110, 117, 115, 102, 126, 125, 117, 117, 119, 108, 106, 109, 117, 112, 105, 113, 94, 113, 114, 112, 111, 111, 115, 105, 113, 115, 113, 120, 97, 125, 108, 117, 113, 112, 121, 112, 109, 102, 121, 112, 126, 107, 102, 103, 125, 112, 127, 116, 115, 119, 130, 115, 133, 101, 112, 121, 108, 121, 116, 122, 114, 121, 118, 113, 118, 109, 96, 96, 93, 134, 116, 115, 116, 118, 96, 114, 124, 102, 115, 117, 120, 127, 107, 100, 117, 110, 115, 124, 105, 115, 116, 114, 115, 141, 111, 113, 100, 120, 119, 107, 127, 109, 96, 116, 108, 105, 176, 116, 113, 115, 123, 111, 116, 116, 112, 124, 111, 116, 113, 109, 118, 131, 115, 119, 114, 117, 113, 118, 111, 119, 114, 112, 111, 114, 116, 117, 109, 108, 109, 109, 109, 119, 121, 117, 111, 114, 113, 118, 116, 112, 121, 112, 110, 115, 121, 116, 123, 112, 113, 120, 105, 116, 119, 120, 115, 111, 114, 117, 112, 123, 112, 124, 116, 103, 115, 110, 114, 112, 116, 117, 115, 114, 118, 112, 117, 110, 112, 125, 115, 123, 116, 113, 111, 111, 113, 109, 103, 120, 115, 119, 117, 119, 106, 127, 119, 106, 109, 113, 119, 117, 116, 113, 127, 113, 116, 111, 110, 121, 111, 116, 118, 119, 119, 114, 113, 115, 118, 118, 115, 100, 124, 118, 109, 116, 102, 106, 116, 113, 116, 103, 116, 113, 120, 112, 108, 118, 114, 118, 115, 116, 120, 111, 121, 113, 116, 116, 106, 99, 117, 105, 112, 109, 113, 112, 120, 110, 122, 114, 117, 111, 116, 116, 113, 118, 113, 112, 123, 116, 117, 105, 112, 121, 116, 117, 123, 121, 115, 119, 111, 111, 114, 112, 110, 113, 117, 117, 114, 125, 118, 108, 112, 113, 113, 117, 123, 119, 113, 117, 112, 111, 114, 119, 126, 111, 109, 114, 117, 112, 113, 109, 110, 114, 122, 121, 110, 113, 122, 115, 118, 112, 116, 120, 114, 120, 110, 116, 113, 118, 119, 120, 112, 122, 106, 103, 118, 114, 114, 117, 111, 122, 114, 114, 112, 120, 105, 110, 112, 111, 115, 119, 112, 114, 110, 107, 115, 118, 114, 121, 109, 112, 113, 123, 115, 114, 107, 112, 113, 112, 114, 113, 118, 119, 114, 113, 110, 116, 114, 114, 117, 116, 126, 117, 112, 118, 113, 112, 116, 115, 111, 110, 94, 112, 116, 116, 121, 122, 121, 111, 112, 108, 110, 124, 123, 114, 111, 115, 112, 112, 111, 123, 122, 112, 114, 114, 117, 120, 110, 112, 111, 114, 119, 116, 116, 113, 107, 117, 112, 116, 118, 116, 116, 116, 118, 114, 118, 109, 120, 113, 118, 114, 112, 115, 115, 120, 124, 115, 112, 111, 122, 117, 108, 119, 117, 119, 114, 118, 119, 120, 119, 115, 119, 114, 108, 114, 118, 118, 114, 105, 118, 112, 118, 115, 113, 117, 120, 111, 116, 124, 122, 118, 115, 116, 119, 106, 119, 112, 112, 113, 114, 124, 118, 108, 112, 113, 112, 115, 115, 116, 108, 120, 107, 112, 109, 111, 120, 110, 115, 111, 109, 115, 106, 111, 113, 125, 113, 104, 134, 115, 115, 114, 114, 117, 119, 120, 115, 127, 116, 109, 116, 113, 119, 114, 117, 113, 116, 113, 110, 124, 121, 120, 114, 128, 109, 101, 119, 110, 121, 114, 114, 122, 116, 101, 116, 114, 118, 117, 119, 119, 106, 125, 120, 114, 115, 128, 119, 115, 121, 130, 118, 114, 122, 120, 114, 105, 111, 113, 119, 117, 113, 112, 114, 111, 111, 119, 111, 109, 120, 121, 112, 120, 114, 109, 108, 109, 117, 114, 107, 117, 115, 117, 116, 115, 113, 108, 116, 105, 109, 115, 108, 108, 108, 134, 114, 93, 100, 103, 116, 111, 118, 115, 111, 114, 131, 113, 112, 121, 122, 122, 123, 122, 107, 122, 118, 119, 120, 122, 124, 104, 124, 124, 95, 124, 109, 100, 125, 113, 132, 101, 115, 112, 124, 125, 120, 108, 123, 115, 107, 112, 122, 117, 107, 107, 119, 123, 101, 105, 109, 110, 123, 119, 109, 112, 111, 106, 107, 119, 111, 115, 101, 124, 118, 126, 115, 111, 115, 111, 100, 111, 118, 136, 108, 90, 118, 115, 118, 129, 111, 125, 92, 118, 129, 128, 115, 114, 121, 113, 120, 102, 128, 123, 114, 117, 103, 111, 119, 96, 105, 106, 120, 114, 119, 125, 127, 124, 107, 120, 115, 122, 119, 126, 110, 113, 109, 114, 119, 131, 105, 115, 118, 112, 124, 110, 113, 100, 115, 118, 113, 112, 114, 113, 104, 125, 122, 116, 110, 108, 117, 110, 117, 108, 116, 115, 115, 107, 113, 128, 125, 114, 117, 127, 113, 98, 121, 119, 119, 109, 130, 121, 121, 104, 104, 119, 119, 108, 114, 104, 114, 119, 123, 113, 120, 115, 117, 126, 127, 114, 120, 117, 116, 120, 119, 109, 117, 118, 110, 129, 118, 112, 117, 114, 120, 113, 119, 113, 123, 122, 125, 125, 109, 123, 119, 114, 114, 102, 117, 115, 104, 118, 92, 121, 116, 103, 120, 116, 121, 109, 115, 112, 121, 106, 122, 105, 114, 104, 123, 124, 97, 119, 124, 122, 123, 121, 117, 110, 111, 114, 119, 105, 118, 117, 110, 114, 112, 114, 117, 107, 110, 119, 117, 94, 127, 116, 112, 109, 115, 115, 108, 110, 117, 116, 123, 113, 102, 111, 109, 111, 113, 122, 112, 121, 114, 113, 105, 119, 111, 129, 117, 133, 114, 115, 106, 114, 118, 119, 115, 119, 113, 118, 119, 115, 122, 105, 115, 118, 98, 117, 103, 122, 128, 124, 117, 106, 113, 119, 114, 124, 113, 122, 112, 115, 115, 101, 111, 110, 117, 117, 118, 95, 104, 100, 126, 115, 98, 113, 106, 113, 114, 104, 114, 118, 109, 106, 116, 118, 110, 103, 114, 114, 116, 106, 116, 111, 109, 117, 115, 102, 116, 118, 113, 99, 145, 107, 105, 118, 87, 119, 117, 110, 113, 117, 110, 116, 116, 123, 104, 118, 119, 118, 116, 111, 108, 115, 115, 112, 113, 117, 116, 109, 117, 109, 105, 127, 108, 121, 113, 108, 120, 114, 114, 120, 108, 113, 108, 117, 121, 116, 112, 116, 126, 106, 114, 117, 118, 114, 115, 112, 125, 128, 117, 114, 123, 114, 110, 110, 119, 119, 121, 116, 103, 122, 116, 114, 104, 116, 110, 122, 111, 85, 129, 118, 110, 132, 116, 116, 104, 118, 120, 104, 105, 121, 117, 113, 114, 117, 127, 112, 113, 112, 136, 117, 102, 119, 107, 106, 120, 119, 111, 121, 115, 109, 118, 112, 106, 104, 111, 111, 124, 107, 131, 125, 118, 99, 117, 130, 119, 113, 119, 116, 124, 114, 131, 108, 136, 129, 119, 107, 118, 131, 106, 94, 119, 119, 116, 107, 112, 111, 108, 112, 120, 114, 119, 116, 108, 118, 123, 126, 113, 104, 117, 108, 106, 114, 123, 118, 117, 117, 113, 99, 125, 118, 114, 124, 116, 109, 110, 117, 107, 111, 107, 118, 110, 121, 121, 108, 116, 106, 119, 112, 109, 109, 119, 117, 107, 117, 127, 107, 128, 111, 116, 114, 135, 113, 103, 125, 119, 109, 116, 118, 110, 114, 113, 126, 107, 111, 114, 109, 115, 122, 120, 114, 106, 112, 107, 110, 116, 122, 111, 116, 123, 119, 128, 113, 124, 112, 112, 123, 108, 124, 116, 113, 130, 113, 117, 121, 109, 111, 125, 105, 99, 115, 112, 119, 114, 109, 120, 113, 116, 122, 106, 126, 114, 115, 113, 118, 123, 112, 103, 122, 109, 118, 103, 110, 105, 107, 117, 126, 125, 113, 118, 108, 118, 113, 108, 120, 117, 118, 121, 130, 108, 117, 118, 117, 109, 121, 124, 116, 121, 121, 122, 128, 114, 117, 120, 108, 125, 107, 106, 112, 124, 110, 108, 124, 109, 113, 122, 117, 115, 120, 108, 116, 127, 138, 117, 118, 110, 118, 111, 123, 116, 116, 129, 118, 118, 115, 115, 120, 106, 114, 119, 110, 122, 112, 115, 132, 103, 107, 107, 112, 106, 116, 106, 118, 117, 120, 107, 116, 110, 115, 116, 133, 114, 104, 118, 113, 108, 105, 113, 113, 111, 132, 106, 120, 108, 103, 118, 109, 119, 121, 107, 105, 102, 120, 114, 113, 113, 110, 116, 113, 106, 107, 111, 125, 117, 120, 115, 105, 126, 104, 116, 110, 115, 123, 116, 120, 104, 125, 121, 120, 117, 120, 123, 122, 113, 110, 125, 126, 115, 123, 112, 108, 118, 120, 121, 111, 115, 117, 110, 102, 105, 106, 110, 109, 111, 117, 104, 114, 106, 125, 114, 110, 120, 108, 113, 127, 113, 109, 126, 128, 126, 100, 110, 120, 111, 113, 128, 114, 123, 104, 110, 108, 121, 123, 118, 97, 124, 127, 110, 122, 100, 126, 104, 116, 118, 107, 107, 114, 104, 108, 101, 96, 104, 124, 127, 127, 109, 119, 110, 107, 110, 112, 108, 114, 112, 109, 112, 125, 116, 108, 121, 99, 116, 120, 110, 109, 124, 109, 107, 114, 96, 117, 123, 105, 111, 111, 131, 123, 125, 97, 125, 107, 107, 129, 109, 119, 106, 120, 112, 117, 113, 106, 112, 119, 107, 123, 115, 107, 123, 110, 109, 121, 120, 117, 120, 125, 132, 116, 117, 122, 109, 111, 108, 111, 103, 114, 111, 123, 110, 130, 121, 115, 120, 125, 123, 127, 117, 124, 129, 115, 111, 134, 111, 118, 108, 124, 112, 115, 116, 126, 116, 115, 111, 123, 104, 117, 117, 137, 113, 109, 134, 110, 126, 109, 104, 112, 113, 113, 123, 118, 106, 124, 117, 119, 107, 120, 115, 118, 126, 121, 114, 102, 105, 107, 115, 125, 113, 104, 115, 105, 112, 122, 113, 130, 103, 121, 111, 110, 129, 114, 126, 107, 106, 106, 116, 115, 115, 114, 116, 114, 105, 116, 109, 111, 111, 101, 112, 101, 115, 125, 124, 122, 109, 117, 114, 135, 115, 122, 116, 104, 116, 111, 116, 103, 118, 118, 110, 116, 118, 108, 113, 122, 120, 105, 113, 115, 117, 107, 103, 111, 131, 124, 118, 118, 119, 113, 118, 123, 113, 117, 116, 126, 112, 119, 110, 110, 113, 124, 120, 120, 109, 120, 115, 108, 120, 114, 103, 123, 103, 114, 116, 107, 119, 118, 121, 115, 112, 116, 105, 112, 119, 114, 116, 109, 114, 123, 118, 113, 120, 113, 128, 118, 118, 116, 118, 114, 99, 117, 107, 100, 106, 107, 122, 116, 118, 128, 116, 106, 114, 125, 108, 117, 119, 111, 111, 115, 113, 116, 112, 114, 110, 122, 122, 122, 118, 120, 121, 111, 119, 109, 122, 109, 113, 114, 121, 108, 118, 115, 102, 116, 121, 113, 119, 110, 122, 131, 112, 119, 122, 111, 114, 108, 123, 111, 113, 114, 110, 107, 110, 112, 120, 105, 120, 110, 115, 114, 113, 131, 114, 116, 115, 117, 112, 122, 114, 102, 118, 114, 109, 119, 118, 122, 120, 116, 117, 119, 119, 112, 107, 114, 124, 122, 121, 123, 110, 108, 123, 107, 110, 106, 118, 122, 115, 113, 113, 118, 114, 126, 107, 118, 114, 118, 106, 111, 124, 113, 111, 126, 126, 118, 117, 121, 109, 115, 123, 114, 106, 103, 115, 118, 105, 121, 116, 123, 113, 118, 120, 121, 111, 116, 102, 117, 115, 109, 111, 118, 111, 111, 116, 123, 110, 122, 110, 112, 115, 115, 115, 120, 114, 110, 111, 122, 115, 118, 113, 119, 113, 115, 114, 111, 120, 122, 109, 118, 109, 115, 115, 115, 112, 117, 108, 112, 116, 122, 120, 121, 112, 122, 118, 119, 116, 108, 108, 116, 120, 112, 126, 112, 116, 119, 110, 121, 121, 107, 126, 119, 114, 104, 123, 115, 116, 110, 115, 106, 119, 123, 124, 121, 116, 113, 119, 115, 116, 116, 122, 114, 126, 113, 119, 114, 96, 116, 121, 120, 121, 105, 112, 120, 112, 117, 114, 110, 114, 118, 119, 112, 124, 124, 116, 113, 108, 114, 112, 109, 113, 113, 119, 121, 125, 121, 116, 122, 117, 124, 115, 102, 120, 119, 118, 119, 120, 118, 109, 120, 127, 110, 116, 118, 111, 114, 105, 128, 114, 111, 116, 110, 112, 114, 113, 117, 112, 115, 118, 121, 118, 109, 111, 112, 119, 112, 114, 120, 113, 116, 113, 129, 119, 110, 120, 116, 116, 108, 115, 128, 117, 120, 118, 120, 118, 109, 114, 122, 117, 118, 116, 113, 121, 114, 114, 114, 120, 109, 128, 109, 113, 123, 118, 116, 115, 109, 109, 111, 117, 110, 115, 110, 124, 118, 117, 111, 116, 117, 112, 123, 105, 118, 120, 107, 101, 112, 110, 123, 115, 115, 116, 101, 115, 126, 110, 117, 122, 110, 115, 114, 114, 113, 113, 106, 123, 118, 112, 109, 120, 120, 127, 115, 119, 105, 115, 114, 116, 117, 111, 111, 118, 121, 117, 107, 115, 107, 114, 114, 119, 126, 119, 111, 118, 119, 126, 113, 118, 118, 104, 120, 117, 110, 114, 109, 113, 109, 113, 113, 116, 115, 125, 117, 110, 114, 119, 118, 112, 111, 127, 121, 118, 112, 115, 136, 109, 104, 118, 136, 116, 116, 110, 117, 90, 122, 117, 123, 103, 130, 120, 120, 118, 132, 129, 113, 102, 126, 112, 102, 121, 121, 122, 127, 149, 116, 123, 130, 115, 113, 109, 97, 117, 119, 128, 131, 110, 107, 129, 115, 114, 120, 117, 129, 112, 123, 111, 117, 142, 128, 126, 127, 122, 129, 109, 135, 110, 105, 115, 97, 116, 106, 115, 117, 128, 104, 107, 116, 129, 108, 108, 126, 89, 108, 119, 118, 118, 117, 126, 129, 134, 107, 98, 116, 125, 120, 122, 106, 117, 113, 105, 126, 114, 134, 110, 122, 116, 123, 107, 117, 110, 107, 105, 109, 102, 116, 129, 97, 118, 112, 101, 95, 128, 107, 129, 120, 107, 100, 85, 124, 112, 97, 118, 100, 87, 116, 135, 96, 135, 109, 122, 125, 108, 109, 117, 131, 119, 129, 111, 119, 120, 115, 117, 120, 111, 104, 110, 108, 105, 116, 117, 114, 125, 121, 114, 119, 118, 105, 106, 109, 103, 114, 110, 127, 135, 110, 115, 113, 105, 91, 114, 121, 97, 93, 108, 117, 120, 112, 104, 122, 116, 114, 136, 103, 108, 110, 114, 111, 116, 108, 111, 102, 115, 121, 107, 97, 120, 114, 126, 114, 115, 115, 114, 120, 131, 95, 121, 120, 114, 99, 135, 109, 99, 123, 124, 105, 108, 106, 116, 119, 130, 110, 112, 101, 114, 113, 113, 131, 115, 97, 134, 107, 115, 122, 129, 120, 109, 125, 112, 107, 96, 114, 118, 105, 117, 110, 117, 113, 136, 116, 94, 112, 114, 117, 112, 128, 125, 107, 118, 137, 126, 114, 120, 102, 110, 124, 118, 114, 104, 105, 114, 129, 112, 111, 116, 111, 106, 109, 124, 108, 104, 110, 115, 125, 128, 116, 111, 115, 128, 126, 116, 117, 105, 130, 108, 115, 119, 117, 110, 104, 104, 109, 92, 112, 106, 121, 129, 115, 131, 107, 114, 126, 128, 108, 107, 104, 126, 116, 104, 104, 121, 126, 124, 119, 116, 112, 98, 107, 131, 106, 139, 99, 128, 111, 112, 109, 121, 123, 122, 108, 115, 135, 115, 122, 110, 114, 122, 110, 121, 99, 118, 112, 113, 131, 118, 107, 112, 111, 126, 123, 115, 122, 119, 105, 123, 119, 118, 123, 124, 110, 109, 119, 118, 123, 89, 112, 125, 123, 108, 131, 116, 108, 97, 117, 122, 106, 122, 109, 127, 97, 110, 116, 116, 121, 134, 103, 100, 112, 121, 117, 116, 102, 116, 113, 137, 127, 132, 99, 137, 99, 116, 107, 107, 114, 127, 126, 120, 115, 109, 122, 118, 100, 111, 108, 123, 115, 119, 114, 131, 119, 116, 111, 113, 135, 102, 128, 111, 111, 119, 111, 117, 110, 100, 105, 100, 128, 97, 120, 110, 115, 109, 129, 115, 99, 135, 105, 119, 117, 113, 135, 100, 119, 110, 126, 116, 114, 110, 118, 131, 108, 117, 110, 120, 116, 112, 103, 117, 109, 115, 103, 107, 123, 127, 115, 123, 114, 112, 104, 105, 114, 113, 110, 107, 115, 112, 104, 112, 120, 112, 125, 129, 119, 115, 117, 121, 130, 106, 119, 113, 119, 132, 116, 109, 116, 102, 111, 114, 144, 119, 114, 121, 115, 116, 131, 119, 112, 131, 117, 114, 117, 123, 106, 114, 105, 115, 99, 117, 115, 87, 116, 113, 113, 100, 95, 119, 102, 110, 117, 112, 124, 90, 114, 110, 110, 111, 112, 105, 105, 136, 104, 111, 126, 120, 109, 109, 102, 102, 115, 113, 117, 106, 113, 126, 118, 108, 119, 100, 110, 105, 98, 131, 88, 100, 113, 124, 126, 127, 113, 112, 114, 119, 116, 134, 114, 128, 126, 102, 112, 109, 131, 125, 105, 116, 125, 117, 119, 117, 114, 115, 122, 112, 122, 112, 85, 103, 114, 107, 118, 121, 103, 113, 104, 109, 108, 105, 114, 126, 128, 110, 99, 108, 119, 102, 123, 134, 109, 96, 103, 106, 123, 116, 120, 123, 116, 108, 123, 115, 118, 97, 113, 99, 111, 115, 117, 110, 101, 104, 105, 109, 128, 124, 127, 108, 116, 127, 120, 125, 116, 91, 123, 110, 121, 99, 107, 113, 108, 118, 115, 133, 115, 121, 116, 122, 135, 116, 108, 122, 125, 106, 115, 112, 110, 111, 105, 128, 109, 120, 104, 132, 115, 112, 114, 112, 100, 118, 103, 113, 104, 111, 100, 127, 128, 114, 113, 119, 119, 117, 130, 104, 120, 122, 104, 146, 123, 99, 114, 99, 116, 105, 110, 111, 108, 122, 105, 122, 104, 111, 118, 114, 122, 111, 117, 122, 99, 109, 114, 116, 116, 119, 117, 120, 109, 108, 115, 119, 118, 120, 125, 122, 118, 111, 116, 118, 117, 125, 124, 116, 102, 115, 93, 117, 100, 114, 117, 102, 113, 104, 135, 120, 111, 110, 112, 128, 116, 106, 111, 112, 123, 110, 122, 98, 123, 104, 122, 115, 113, 117, 106, 114, 121, 117, 113, 125, 109, 98, 122, 117, 108, 115, 122, 93, 118, 116, 104, 118, 112, 110, 115, 109, 116, 125, 131, 121, 122, 109, 129, 118, 113, 110, 110, 112, 106, 106, 107, 101, 99, 101, 110, 98, 115, 128, 119, 118, 97, 119, 111, 117, 114, 116, 110, 114, 120, 118, 117, 119, 102, 119, 105, 105, 110, 112, 110, 117, 140, 116, 103, 109, 110, 122, 115, 121, 125, 115, 113, 119, 111, 120, 118, 102, 111, 111, 125, 105, 119, 107, 118, 95, 111, 100, 113, 125, 112, 116, 110, 117, 103, 125, 112, 122, 127, 111, 119, 121, 108, 110, 116, 116, 97, 105, 115, 113, 117, 118, 113, 127, 132, 117, 104, 111, 115, 128, 108, 112, 108, 123, 120, 105, 117, 106, 120, 118, 118, 124, 120, 121, 110, 130, 103, 118, 101, 125, 113, 111, 103, 122, 103, 118, 115, 109, 103, 126, 110, 100, 113, 123, 112, 112, 137, 116, 120, 105, 133, 95, 118, 107, 120, 127, 96, 123, 105, 124, 124, 99, 117, 107, 117, 110, 101, 121, 116, 90, 123, 115, 118, 118, 119, 135, 127, 109, 122, 104, 117, 116, 112, 110, 110, 111, 108, 123, 113, 122, 115, 110, 117, 112, 110, 97, 104, 124, 113, 106, 115, 122, 101, 108, 120, 123, 116, 113, 111, 110, 103, 103, 113, 124, 118, 116, 121, 124, 122, 117, 115, 122, 123, 123, 124, 119, 113, 116, 112, 116, 114, 111, 120, 110, 111, 122, 124, 117, 109, 115, 111, 134, 122, 109, 110, 106, 122, 114, 109, 126, 110, 116, 121, 117, 117, 110, 112, 117, 114, 120, 110, 117, 116, 127, 115, 112, 114, 116, 122, 111, 114, 115, 120, 109, 119, 122, 112, 120, 116, 121, 120, 116, 122, 116, 115, 118, 117, 115, 121, 105, 121, 106, 117, 110, 126, 125, 114, 114, 111, 122, 116, 118, 105, 114, 107, 122, 116, 119, 114, 118, 104, 114, 106, 112, 102, 117, 107, 121, 105, 122, 121, 115, 118, 111, 114, 111, 117, 116, 120, 114, 107, 120, 130, 121, 113, 110, 117, 116, 116, 114, 114, 109, 116, 112, 110, 103, 113, 115, 123, 119, 110, 113, 114, 117, 114, 114, 104, 116, 122, 123, 120, 129, 113, 128, 121, 127, 113, 117, 123, 115, 121, 122, 110, 123, 111, 117, 108, 105, 118, 110, 121, 122, 114, 122, 116, 111, 118, 115, 117, 109, 123, 120, 110, 117, 125, 121, 125, 123, 98, 111, 114, 121, 116, 116, 118, 122, 108, 113, 125, 130, 106, 112, 117, 116, 108, 108, 121, 113, 102, 114, 105, 109, 115, 116, 113, 117, 109, 120, 111, 117, 117, 114, 108, 115, 129, 127, 114, 120, 124, 122, 121, 119, 114, 113, 107, 125, 103, 112, 123, 114, 112, 112, 110, 117, 114, 126, 119, 117, 106, 117, 114, 110, 111, 115, 109, 109, 115, 119, 125, 110, 111, 121, 110, 123, 106, 111, 109, 121, 113, 113, 111, 115, 109, 117, 121, 121, 116, 115, 118, 106, 117, 118, 112, 115, 112, 117, 105, 116, 110, 119, 117, 108, 112, 105, 115, 116, 120, 104, 108, 118, 112, 115, 116, 122, 117, 113, 102, 114, 122, 120, 114, 101, 117, 116, 110, 120, 109, 123, 106, 112, 114, 114, 131, 109, 100, 106, 121, 121, 108, 120, 110, 121, 121, 118, 115, 117, 110, 114, 126, 114, 119, 118, 107, 115, 119, 116, 117, 119, 115, 112, 121, 122, 119, 119, 110, 115, 115, 125, 117, 113, 122, 115, 110, 108, 114, 114, 104, 106, 113, 116, 127, 114, 116, 123, 119, 110, 114, 118, 118, 120, 121, 124, 118, 115, 124, 116, 113, 116, 117, 117, 97, 118, 108, 115, 117, 115, 115, 107, 110, 128, 108, 119, 111, 114, 129, 114, 113, 119, 116, 105, 120, 118, 106, 111, 113, 114, 111, 121, 115, 116, 111, 117, 121, 116, 116, 124, 110, 118, 115, 114, 112, 109, 123, 114, 104, 110, 123, 120, 121, 127, 121, 116, 110, 113, 120, 116, 118, 118, 116, 118, 102, 116, 110, 107, 122, 119, 116, 115, 120, 110, 110, 122, 109, 111, 118, 114, 110, 106, 122, 107, 119, 111, 113, 114, 116, 116, 122, 116, 118, 119, 120, 121, 114, 111, 118, 106, 123, 113, 118, 116, 106, 121, 117, 118, 111, 120, 108, 117, 121, 113, 126, 121, 104, 113, 108, 125, 121, 114, 114, 108, 113, 132, 129, 129, 133, 114, 119, 129, 111, 119, 128, 118, 105, 109, 118, 122, 127, 114, 116, 118, 108, 120, 118, 112, 113, 114, 116, 111, 131, 119, 112, 126, 114, 131, 107, 126, 147, 111, 115, 98, 119, 113, 114, 118, 116, 107, 111, 111, 113, 115, 123, 125, 112, 109, 124, 123, 117, 112, 115, 118, 112, 104, 120, 122, 124, 125, 118, 131, 114, 124, 130, 126, 129, 119, 119, 124, 117, 121, 113, 122, 120, 137, 119, 107, 109, 129, 118, 118, 121, 112, 99, 112, 109, 113, 120, 115, 112, 116, 118, 109, 100, 116, 121, 112, 119, 96, 124, 113, 111, 136, 127, 116, 113, 101, 120, 114, 116, 116, 115, 107, 96, 126, 108, 119, 118, 120, 114, 107, 119, 132, 115, 112, 119, 111, 115, 119, 112, 101, 105, 130, 117, 131, 122, 120, 111, 126, 121, 102, 126, 112, 135, 132, 119, 119, 113, 112, 101, 116, 115, 114, 109, 112, 128, 116, 115, 108, 115, 113, 110, 120, 110, 123, 126, 110, 129, 93, 115, 122, 106, 108, 108, 120, 106, 121, 92, 114, 120, 116, 113, 112, 104, 119, 104, 129, 117, 121, 103, 127, 116, 127, 135, 112, 116, 106, 118, 129, 111, 112, 108, 117, 129, 113, 122, 123, 110, 109, 117, 121, 107, 107, 101, 113, 119, 117, 109, 121, 120, 99, 114, 114, 131, 108, 117, 105, 107, 111, 130, 119, 125, 116, 116, 117, 115, 120, 111, 115, 120, 127, 109, 110, 109, 120, 117, 111, 110, 117, 116, 116, 115, 115, 111, 115, 118, 107, 120, 110, 119, 124, 126, 102, 125, 115, 107, 125, 116, 107, 103, 107, 116, 126, 116, 123, 109, 127, 113, 119, 121, 106, 110, 111, 113, 104, 102, 116, 116, 115, 104, 116, 121, 118, 122, 109, 118, 120, 99, 125, 113, 103, 105, 105, 116, 115, 125, 108, 113, 110, 120, 136, 114, 118, 111, 105, 115, 122, 143, 131, 125, 108, 129, 109, 111, 108, 118, 112, 115, 103, 106, 125, 116, 116, 113, 120, 121, 116, 110, 124, 113, 125, 111, 117, 108, 113, 140, 113, 117, 107, 111, 119, 120, 102, 120, 117, 121, 116, 125, 100, 130, 117, 111, 111, 116, 115, 106, 117, 110, 122, 116, 119, 128, 137, 122, 113, 117, 102, 112, 113, 108, 114, 114, 111, 113, 115, 116, 107, 121, 112, 123, 130, 115, 119, 110, 131, 108, 108, 108, 107, 107, 131, 106, 119, 114, 127, 116, 127, 122, 108, 113, 108, 109, 103, 108, 122, 133, 113, 116, 113, 111, 103, 114, 104, 102, 119, 135, 110, 114, 103, 107, 109, 111, 108, 107, 106, 108, 125, 107, 118, 104, 111, 117, 120, 117, 120, 127, 119, 118, 114, 112, 107, 105, 111, 107, 114, 108, 118, 116, 115, 106, 119, 118, 104, 110, 116, 96, 123, 116, 112, 123, 107, 119, 124, 114, 119, 115, 109, 113, 120, 116, 115, 121, 114, 95, 116, 131, 103, 110, 117, 109, 118, 115, 115, 119, 103, 125, 100, 114, 114, 124, 110, 110, 92, 114, 108, 82, 122, 113, 114, 108, 128, 114, 106, 110, 120, 120, 115, 105, 107, 116, 116, 117, 120, 109, 107, 109, 116, 121, 112, 119, 106, 118, 113, 109, 99, 63, 115, 120, 106, 112, 121, 99, 108, 114, 114, 120, 118, 123, 122, 110, 109, 109, 111, 113, 117, 120, 121, 125, 116, 122, 112, 120, 115, 112, 121, 122, 118, 114, 112, 113, 114, 119, 114, 104, 117, 117, 116, 115, 122, 115, 114, 113, 118, 117, 110, 119, 105, 107, 112, 116, 122, 123, 118, 118, 107, 125, 114, 107, 115, 122, 108, 114, 111, 114, 108, 116, 117, 111, 116, 111, 97, 120, 112, 119, 118, 115, 117, 116, 107, 115, 104, 116, 110, 139, 123, 122, 124, 116, 116, 120, 115, 109, 115, 121, 114, 112, 115, 110, 110, 107, 120, 117, 114, 118, 119, 131, 121, 115, 127, 115, 115, 102, 119, 109, 123, 106, 105, 132, 115, 116, 119, 112, 117, 132, 108, 107, 116, 121, 118, 118, 118, 115, 125, 122, 110, 117, 116, 117, 123, 113, 112, 102, 92, 120, 118, 122, 144, 116, 122, 106, 115, 122, 132, 109, 116, 105, 114, 118, 118, 110, 116, 114, 115, 134, 111, 117, 118, 127, 117, 120, 123, 103, 121, 120, 109, 118, 111, 118, 117, 114, 123, 118, 114, 118, 124, 106, 112, 106, 116, 118, 98, 109, 116, 124, 110, 123, 113, 114, 114, 117, 128, 108, 100, 103, 91, 119, 111, 111, 114, 113, 111, 110, 108, 110, 113, 114, 111, 124, 115, 113, 101, 118, 115, 115, 116, 107, 117, 121, 135, 119, 115, 114, 114, 116, 119, 107, 124, 104, 126, 116, 123, 118, 118, 111, 122, 104, 82, 125, 107, 110, 108, 119, 109, 120, 113, 117, 99, 138, 129, 120, 117, 115, 119, 104, 119, 109, 106, 116, 124, 137, 109, 114, 109, 119, 112, 123, 119, 116, 115, 98, 118, 113, 93, 112, 105, 116, 108, 106, 119, 115, 108, 114, 112, 121, 112, 103, 114, 111, 125, 107, 118, 105, 117, 112, 107, 122, 110, 105, 120, 115, 136, 117, 139, 130, 121, 103, 108, 114, 108, 114, 114, 117, 110, 117, 106, 128, 114, 116, 111, 113, 106, 111, 121, 115, 113, 118, 112, 114, 104, 119, 121, 120, 117, 115, 113, 116, 121, 122, 120, 117, 113, 117, 114, 103, 124, 120, 122, 111, 117, 118, 121, 119, 112, 108, 116, 107, 114, 114, 111, 109, 114, 119, 119, 122, 113, 122, 114, 112, 68, 121, 117, 127, 99, 119, 104, 121, 113, 119, 116, 122, 144, 115, 109, 118, 115, 116, 119, 125, 119, 112, 113, 112, 101, 122, 116, 114, 115, 121, 112, 106, 110, 107, 112, 117, 132, 115, 116, 111, 107, 128, 116, 121, 115, 122, 118, 111, 115, 119, 116, 108, 115, 108, 116, 114, 113, 113, 113, 117, 121, 119, 120, 131, 112, 118, 114, 115, 112, 106, 116, 120, 111, 115, 115, 118, 93, 112, 122, 121, 113, 121, 106, 121, 114, 109, 145, 121, 106, 126, 112, 113, 122, 119, 113, 120, 113, 116, 118, 112, 122, 106, 105, 113, 109, 112, 96, 104, 97, 112, 112, 107, 134, 109, 104, 110, 105, 112, 114, 113, 115, 111, 108, 135, 109, 107, 111, 117, 118, 111, 131, 112, 114, 104, 121, 140, 114, 132, 99, 114, 118, 140, 123, 117, 127, 119, 113, 122, 123, 114, 112, 117, 113, 117, 114, 99, 118, 115, 118, 119, 118, 128, 114, 133, 111, 113, 118, 136, 132, 119, 122, 105, 105, 108, 101, 111, 108, 104, 101, 123, 104, 106, 120, 125, 127, 106, 98, 129, 105, 96, 122, 109, 123, 113, 114, 121, 126, 121, 105, 106, 117, 112, 107, 115, 123, 135, 112, 106, 111, 117, 114, 122, 125, 116, 119, 120, 116, 118, 122, 104, 112, 111, 104, 120, 128, 111, 124, 122, 140, 118, 114, 105, 118, 115, 121, 106, 112, 117, 114, 119, 136, 135, 111, 110, 114, 118, 112, 119, 114, 100, 133, 102, 109, 113, 112, 113, 109, 115, 118, 112, 127, 121, 126, 108, 109, 127, 108, 110, 112, 111, 124, 124, 118, 114, 97, 110, 119, 110, 123, 106, 111, 102, 107, 98, 108, 109, 102, 125, 111, 110, 117, 115, 102, 124, 121, 113, 125, 101, 120, 100, 122, 114, 108, 110, 125, 105, 114, 112, 114, 109, 106, 114, 114, 121, 109, 110, 117, 109, 121, 121, 125, 134, 132, 134, 123, 109, 111, 107, 105, 114, 113, 113, 111, 118, 111, 116, 112, 120, 114, 132, 111, 120, 116, 109, 106, 118, 117, 106, 138, 120, 114, 126, 109, 114, 119, 114, 125, 110, 108, 132, 120, 116, 113, 104, 115, 120, 114, 130, 121, 113, 113, 107, 112, 112, 111, 120, 123, 103, 107, 120, 135, 117, 112, 102, 127, 114, 112, 110, 91, 118, 128, 109, 106, 106, 113, 112, 102, 111, 98, 121, 109, 122, 122, 113, 114, 116, 127, 112, 113, 128, 107, 116, 123, 124, 132, 140, 120, 123, 99, 114, 113, 121, 124, 131, 112, 122, 116, 114, 126, 98, 122, 115, 111, 117, 96, 120, 117, 113, 118, 115, 113, 112, 105, 111, 97, 93, 120, 131, 129, 117, 113, 106, 115, 120, 107, 116, 119, 103, 116, 106, 115, 107, 112, 120, 119, 108, 111, 93, 97, 125, 118, 108, 111, 118, 108, 120, 120, 109, 142, 129, 121, 121, 112, 127, 114, 94, 118, 110, 119, 121, 107, 115, 110, 116, 119, 117, 118, 109, 105, 114, 99, 98, 122, 109, 100, 102, 112, 111, 116, 122, 103, 103, 128, 116, 109, 112, 112, 113, 107, 115, 114, 108, 116, 110, 117, 122, 115, 110, 110, 118, 115, 125, 111, 116, 104, 118, 115, 110, 116, 121, 112, 109, 124, 123, 116, 125, 104, 98, 124, 117, 108, 121, 116, 108, 116, 108, 113, 115, 107, 105, 108, 115, 122, 107, 112, 111, 140, 108, 110, 124, 120, 123, 130, 122, 105, 121, 122, 132, 122, 115, 116, 113, 110, 116, 117, 117, 106, 110, 120, 101, 122, 113, 121, 116, 124, 110, 118, 117, 106, 115, 98, 112, 116, 108, 104, 113, 95, 113, 109, 135, 113, 108, 106, 101, 97, 124, 118, 129, 116, 113, 99, 104, 111, 109, 117, 121, 121, 124, 101, 111, 106, 122, 111, 118, 120, 119, 120, 118, 107, 115, 116, 103, 116, 108, 125, 109, 100, 112, 112, 119, 125, 112, 111, 113, 108, 108, 117, 120, 122, 119, 119, 125, 126, 123, 123, 119, 116, 104, 123, 119, 108, 117, 119, 118, 106, 129, 113, 115, 99, 100, 128, 124, 99, 105, 110, 101, 112, 121, 106, 111, 128, 117, 108, 122, 97, 129, 104, 116, 112, 120, 119, 131, 125, 105, 112, 114, 119, 116, 96, 116, 108, 125, 121, 111, 113, 113, 125, 108, 106, 115, 118, 111, 103, 119, 115, 110, 116, 107, 125, 120, 115, 110, 101, 112, 112, 114, 115, 122, 122, 101, 110, 132, 116, 107, 125, 106, 119, 120, 123, 125, 106, 122, 108, 103, 115, 126, 119, 118, 117, 108, 116, 112, 111, 114, 127, 105, 119, 113, 117, 121, 107, 122, 112, 116, 112, 110, 118, 118, 113, 114, 114, 117, 120, 114, 113, 121, 130, 100, 105, 118, 129, 108, 109, 115, 112, 110, 112, 116, 112, 117, 125, 113, 104, 136, 114, 90, 127, 112, 108, 125, 113, 122, 121, 112, 111, 114, 111, 133, 120, 118, 130, 116, 110, 92, 139, 121, 112, 106, 107, 125, 123, 128, 120, 119, 115, 105, 121, 113, 119, 104, 119, 108, 111, 120, 115, 116, 119, 106, 120, 115, 122, 123, 115, 117, 123, 116, 136, 111, 101, 109, 123, 121, 112, 110, 114, 120, 124, 123, 115, 123, 102, 111, 115, 102, 93, 118, 125, 125, 110, 114, 122, 121, 119, 124, 112, 104, 112, 106, 96, 120, 115, 113, 114, 106, 103, 110, 114, 123, 114, 109, 103, 119, 127, 120, 120, 127, 109, 107, 106, 136, 111, 116, 115, 126, 117, 115, 115, 118, 114, 119, 120, 111, 126, 99, 112, 111, 112, 121, 105, 102, 122, 122, 121, 112, 109, 107, 109, 108, 123, 125, 101, 108, 124, 132, 112, 111, 103, 109, 98, 107, 109, 122, 114, 122, 117, 129, 109, 102, 110, 107, 118, 107, 113, 117, 104, 120, 117, 121, 101, 112, 108, 98, 103, 129, 119, 122, 118, 110, 110, 119, 116, 121, 138, 119, 115, 107, 105, 99, 110, 99, 111, 110, 113, 106, 111, 108, 126, 114, 127, 114, 123, 110, 130, 123, 108, 119, 116, 119, 119, 117, 122, 135, 113, 105, 110, 124, 106, 105, 114, 117, 120, 114, 113, 115, 107, 116, 107, 115, 125, 108, 111, 122, 120, 107, 112, 133, 117, 121, 112, 118, 116, 120, 122, 105, 108, 106, 125, 108, 105, 124, 113, 118, 97, 115, 104, 114, 126, 118, 123, 118, 112, 104, 126, 111, 112, 131, 115, 125, 114, 110, 118, 110, 132, 120, 115, 121, 119, 117, 118, 120, 112, 129, 120, 128, 112, 117, 123, 110, 120, 119, 113, 107, 120, 123, 118, 108, 115, 125, 106, 125, 123, 132, 122, 122, 115, 115, 112, 114, 119, 114, 125, 114, 108, 124, 107, 119, 127, 115, 107, 108, 119, 133, 115, 118, 112, 114, 123, 105, 117, 115, 99, 104, 115, 121, 119, 105, 123, 120, 105, 121, 114, 117, 109, 113, 119, 119, 121, 93, 115, 114, 114, 129, 114, 112, 101, 119, 110, 134, 109, 99, 123, 106, 122, 120, 114, 109, 116, 116, 111, 117, 105, 121, 111, 114, 128, 109, 121, 130, 94, 116, 123, 125, 113, 117, 114, 102, 123, 121, 115, 123, 118, 121, 110, 121, 106, 113, 119, 122, 128, 119, 115, 116, 111, 121, 129, 113, 117, 115, 100, 104, 117, 117, 116, 119, 114, 122, 114, 116, 106, 111, 131, 110, 121, 118, 123, 108, 114, 110, 111, 101, 122, 119, 116, 120, 114, 108, 104, 119, 120, 121, 112, 114, 111, 119, 116, 116, 113, 114, 109, 120, 123, 126, 95, 111, 109, 117, 114, 121, 114, 124, 127, 113, 117, 113, 110, 115, 107, 118, 120, 115, 115, 103, 110, 112, 91, 128, 114, 119, 111, 121, 109, 115, 108, 114, 111, 114, 113, 111, 116, 111, 110, 116, 121, 115, 118, 111, 102, 111, 125, 113, 118, 120, 101, 118, 119, 113, 104, 119, 115, 117, 112, 110, 114, 114, 127, 103, 123, 112, 107, 126, 113, 113, 114, 108, 111, 130, 124, 122, 119, 119, 144, 116, 117, 109, 119, 120, 110, 117, 130, 123, 94, 126, 116, 112, 104, 103, 120, 118, 118, 117, 124, 116, 117, 120, 113, 115, 108, 115, 114, 96, 115, 112, 130, 110, 113, 118, 122, 116, 115, 109, 115, 121, 114, 106, 111, 106, 116, 112, 124, 112, 119, 115, 130, 114, 109, 83, 120, 103, 113, 121, 121, 84, 114, 121, 114, 115, 107, 118, 131, 130, 112, 117, 102, 117, 122, 119, 110, 123, 130, 114, 113, 112, 116, 116, 110, 122, 117, 116, 118, 117, 116, 123, 120, 154, 117, 114, 102, 123, 105, 110, 110, 117, 113, 113, 119, 120, 107, 113, 108, 126, 110, 119, 128, 112, 108, 111, 112, 96, 109, 117, 118, 117, 112, 113, 119, 120, 120, 120, 147, 112, 116, 122, 115, 104, 123, 113, 112, 120, 116, 145, 122, 130, 121, 119, 126, 118, 107, 121, 123, 129, 119, 126, 113, 105, 127, 108, 110, 97, 120, 124, 118, 119, 116, 107, 113, 120, 118, 112, 125, 126, 107, 119, 96, 116, 115, 109, 115, 110, 116, 116, 117, 122, 119, 120, 115, 118, 115, 114, 121, 119, 113, 122, 122, 114, 122, 110, 121, 113, 114, 121, 111, 118, 117, 115, 118, 119, 127, 116, 115, 110, 112, 123, 111, 120, 142, 119, 116, 127, 120, 117, 107, 116, 116, 111, 123, 122, 113, 111, 116, 119, 112, 130, 107, 117, 113, 111, 115, 117, 116, 109, 116, 115, 121, 118, 101, 119, 123, 111, 108, 108, 124, 117, 111, 116, 124, 118, 122, 126, 112, 122, 107, 120, 113, 108, 116, 99, 102, 116, 103, 115, 117, 111, 122, 107, 123, 115, 116, 120, 124, 114, 119, 113, 110, 104, 122, 115, 111, 105, 127, 120, 122, 114, 115, 111, 120, 124, 110, 116, 126, 120, 118, 115, 117, 117, 112, 123, 118, 120, 115, 125, 117, 117, 115, 116, 120, 116, 117, 121, 114, 117, 111, 116, 110, 120, 120, 106, 121, 112, 101, 127, 111, 112, 130, 121, 112, 108, 105, 121, 122, 113, 116, 114, 116, 113, 106, 113, 112, 119, 101, 115, 115, 125, 116, 111, 118, 107, 111, 120, 116, 118, 110, 102, 115, 130, 106, 123, 107, 109, 134, 124, 121, 121, 137, 117, 118, 112, 125, 112, 121, 121, 127, 105, 123, 112, 125, 112, 108, 116, 122, 121, 114, 121, 117, 114, 120, 111, 122, 110, 121, 125, 107, 110, 115, 108, 118, 100, 112, 114, 110, 101, 105, 107, 118, 110, 117, 88, 120, 112, 116, 127, 119, 117, 116, 111, 118, 112, 111, 120, 107, 123, 126, 113, 121, 117, 108, 120, 113, 130, 107, 97, 134, 106, 113, 114, 118, 120, 105, 121, 112, 118, 128, 118, 126, 103, 120, 121, 112, 99, 119, 129, 143, 117, 100, 115, 119, 102, 121, 119, 107, 118, 124, 127, 112, 116, 113, 126, 111, 107, 129, 106, 117, 112, 114, 118, 107, 119, 117, 119, 116, 116, 122, 138, 107, 109, 120, 117, 121, 116, 112, 117, 123, 111, 106, 119, 104, 118, 111, 117, 109, 107, 94, 107, 111, 115, 118, 103, 123, 123, 112, 117, 117, 109, 112, 105, 114, 117, 111, 118, 130, 127, 111, 121, 133, 114, 110, 118, 123, 116, 119, 114, 117, 109, 118, 120, 120, 116, 110, 93, 111, 119, 101, 117, 114, 117, 111, 103, 120, 109, 125, 102, 119, 105, 113, 105, 130, 120, 115, 105, 116, 124, 100, 114, 112, 118, 119, 112, 104, 104, 118, 116, 114, 119, 120, 112, 97, 111, 125, 117, 121, 121, 126, 125, 114, 139, 106, 119, 106, 109, 108, 117, 119, 114, 106, 123, 108, 122, 123, 115, 122, 107, 110, 107, 101, 109, 116, 125, 119, 101, 123, 116, 123, 113, 109, 119, 116, 108, 120, 109, 116, 125, 108, 110, 115, 123, 109, 110, 120, 119, 109, 121, 118, 111, 120, 124, 126, 127, 124, 120, 111, 114, 125, 117, 113, 108, 126, 116, 117, 118, 112, 107, 114, 122, 110, 120, 120, 117, 121, 110, 108, 116, 122, 122, 125, 132, 135, 126, 114, 108, 114, 101, 119, 126, 119, 117, 109, 121, 115, 114, 115, 115, 123, 103, 113, 105, 116, 119, 116, 120, 117, 116, 116, 110, 123, 106, 109, 113, 109, 94, 119, 118, 114, 118, 122, 111, 113, 123, 108, 106, 107, 116, 111, 106, 125, 109, 101, 108, 125, 121, 115, 119, 112, 115, 116, 113, 116, 129, 104, 118, 116, 113, 119, 115, 107, 113, 113, 102, 120, 115, 109, 122, 110, 116, 110, 108, 123, 115, 116, 89, 106, 114, 116, 113, 120, 116, 105, 114, 128, 116, 124, 109, 123, 111, 121, 113, 107, 122, 132, 114, 109, 125, 127, 120, 117, 114, 114, 113, 116, 112, 109, 121, 117, 116, 123, 130, 108, 115, 115, 119, 113, 120, 109, 111, 115, 101, 119, 110, 124, 121, 108, 115, 103, 111, 113, 118, 104, 105, 108, 116, 109, 119, 127, 105, 109, 137, 115, 106, 134, 115, 103, 117, 122, 117, 122, 102, 127, 117, 122, 129, 123, 94, 122, 106, 121, 104, 123, 106, 114, 114, 111, 102, 129, 112, 104, 120, 112, 107, 122, 114, 115, 126, 121, 125, 113, 118, 103, 118, 117, 107, 105, 109, 121, 92, 112, 103, 109, 104, 110, 107, 127, 127, 109, 118, 112, 108, 110, 110, 116, 113, 136, 120, 104, 133, 130, 128, 114, 112, 113, 135, 111, 108, 114, 110, 123, 122, 110, 115, 111, 118, 116, 130, 122, 116, 124, 104, 100, 118, 94, 111, 118, 126, 104, 117, 118, 101, 124, 102, 116, 120, 122, 136, 115, 134, 95, 119, 117, 126, 111, 130, 125, 131, 99, 108, 123, 102, 120, 121, 120, 124, 111, 122, 118, 103, 124, 112, 113, 109, 111, 111, 114, 126, 115, 113, 122, 113, 116, 116, 104, 92, 114, 116, 118, 122, 118, 139, 123, 120, 107, 122, 119, 100, 109, 117, 134, 124, 115, 122, 116, 114, 100, 110, 127, 117, 108, 120, 106, 135, 107, 113, 112, 123, 109, 97, 119, 120, 107, 114, 122, 123, 116, 80, 102, 129, 114, 112, 105, 120, 130, 117, 121, 119, 115, 115, 115, 113, 119, 113, 103, 102, 96, 124, 126, 112, 107, 124, 96, 110, 117, 114, 120, 120, 112, 108, 110, 102, 113, 119, 119, 121, 114, 129, 110, 122, 103, 102, 104, 118, 122, 122, 123, 130, 111, 115, 108, 102, 116, 103, 100, 110, 108, 125, 130, 115, 121, 98, 109, 126, 122, 120, 122, 100, 117, 102, 124, 120, 111, 113, 102, 104, 100, 127, 113, 101, 106, 153, 131, 131, 110, 107, 117, 119, 130, 118, 116, 122, 121, 124, 116, 107, 131, 109, 113, 113, 117, 106, 121, 104, 123, 113, 107, 124, 123, 122, 112, 124, 120, 112, 130, 120, 113, 135, 111, 109, 116, 123, 107, 103, 104, 109, 109, 122, 106, 113, 126, 120, 119, 129, 102, 115, 101, 111, 113, 110, 119, 112, 118, 106, 121, 123, 119, 114, 114, 108, 117, 122, 121, 137, 121, 118, 117, 124, 117, 153, 105, 104, 111, 97, 103, 113, 109, 122, 124, 104, 111, 123, 101, 124, 110, 123, 131, 116, 125, 112, 115, 120, 117, 104, 122, 134, 104, 119, 117, 115, 105, 119, 103, 103, 110, 107, 111, 107, 106, 108, 110, 116, 99, 129, 112, 110, 124, 132, 125, 132, 115, 105, 99, 118, 123, 115, 119, 108, 112, 123, 137, 118, 116, 126, 112, 109, 100, 105, 108, 119, 121, 116, 102, 108, 109, 93, 115, 124, 106, 118, 111, 110, 129, 122, 107, 117, 126, 109, 100, 120, 111, 120, 124, 98, 130, 106, 127, 123, 115, 104, 109, 86, 136, 113, 109, 123, 135, 100, 117, 102, 128, 122, 104, 125, 134, 90, 112, 117, 107, 116, 110, 116, 106, 118, 120, 128, 124, 110, 94, 116, 113, 114, 109, 104, 122, 109, 119, 107, 114, 115, 125, 109, 115, 118, 118, 114, 121, 99, 126, 112, 129, 117, 111, 106, 110, 121, 111, 112, 109, 131, 108, 93, 116, 121, 113, 118, 112, 125, 106, 118, 103, 115, 120, 117, 115, 108, 127, 108, 104, 101, 117, 116, 129, 115, 112, 110, 119, 114, 107, 124, 119, 109, 115, 108, 130, 121, 117, 107, 103, 115, 106, 108, 119, 117, 108, 130, 125, 103, 110, 120, 128, 110, 120, 113, 118, 127, 106, 105, 105, 116, 105, 127, 113, 107, 110, 116, 104, 112, 120, 124, 110, 106, 105, 109, 96, 116, 127, 104, 119, 106, 113, 107, 114, 115, 119, 129, 107, 106, 130, 121, 99, 99, 119, 116, 117, 108, 100, 116, 111, 119, 101, 125, 117, 110, 107, 112, 106, 115, 120, 114, 111, 120, 114, 119, 123, 113, 117, 123, 118, 110, 120, 120, 110, 111, 108, 112, 112, 118, 131, 125, 118, 107, 107, 129, 103, 118, 108, 117, 107, 124, 133, 110, 108, 101, 124, 111, 121, 112, 110, 115, 111, 110, 113, 108, 119, 115, 107, 116, 123, 106, 126, 118, 118, 121, 109, 96, 117, 119, 110, 102, 124, 103, 118, 111, 130, 99, 112, 112, 103, 109, 123, 122, 130, 115, 120, 116, 112, 127, 121, 117, 113, 98, 116, 113, 105, 114, 125, 126, 111, 97, 121, 122, 120, 117, 110, 112, 102, 114, 121, 126, 114, 104, 108, 114, 114, 122, 107, 114, 117, 95, 108, 119, 109, 132, 122, 118, 122, 117, 112, 120, 109, 115, 108, 113, 109, 121, 118, 115, 110, 115, 115, 133, 109, 116, 116, 109, 132, 109, 116, 116, 109, 106, 130, 117, 115, 111, 113, 115, 131, 105, 114, 106, 113, 110, 113, 110, 103, 107, 105, 117, 125, 112, 128, 123, 126, 114, 100, 118, 115, 117, 124, 117, 118, 119, 108, 115, 123, 118, 113, 114, 115, 127, 112, 120, 122, 109, 109, 119, 118, 118, 128, 122, 116, 116, 124, 109, 115, 117, 126, 123, 111, 113, 107, 117, 114, 118, 120, 111, 108, 117, 97, 110, 128, 111, 119, 109, 116, 110, 98, 108, 105, 115, 122, 103, 110, 118, 102, 111, 120, 105, 106, 110, 117, 118, 118, 123, 120, 122, 120, 142, 104, 106, 112, 127, 112, 115, 120, 122, 111, 109, 117, 102, 93, 122, 108, 124, 115, 119, 125, 120, 102, 125, 118, 105, 90, 117, 112, 113, 121, 111, 119, 136, 110, 118, 111, 115, 126, 118, 113, 115, 125, 107, 106, 119, 112, 108, 107, 109, 105, 100, 115, 125, 111, 107, 110, 106, 132, 111, 119, 108, 110, 128, 118, 106, 115, 108, 114, 112, 132, 119, 120, 115, 136, 113, 105, 119, 112, 114, 106, 122, 129, 108, 110, 119, 129, 104, 115, 114, 110, 124, 110, 103, 116, 124, 126, 109, 114, 112, 124, 122, 121, 94, 126, 119, 109, 123, 104, 105, 105, 114, 113, 111, 124, 109, 109, 112, 105, 106, 107, 109, 118, 116, 115, 124, 123, 95, 101, 115, 97, 116, 115, 126, 121, 106, 113, 111, 99, 109, 122, 118, 95, 120, 107, 109, 105, 109, 102, 107, 108, 121, 99, 113, 105, 111, 114, 109, 105, 120, 106, 117, 123, 114, 98, 118, 124, 118, 103, 109, 126, 121, 122, 111, 118, 97, 112, 113, 113, 110, 117, 118, 122, 106, 115, 99, 116, 124, 111, 115, 116, 118, 114, 109, 123, 109, 106, 118, 105, 96, 116, 98, 118, 118, 112, 112, 124, 131, 125, 109, 118, 121, 127, 99, 118, 116, 121, 117, 110, 105, 108, 132, 116, 114, 111, 118, 124, 119, 111, 127, 105, 126, 121, 109, 115, 131, 115, 108, 113, 124, 116, 105, 121, 112, 116, 102, 121, 117, 115, 105, 110, 110, 115, 119, 120, 121, 120, 108, 109, 130, 109, 107, 124, 115, 117, 110, 98, 117, 120, 115, 103, 110, 117, 108, 98, 122, 105, 119, 109, 117, 118, 124, 112, 120, 109, 110, 129, 112, 126, 129, 103, 110, 118, 123, 107, 112, 109, 113, 119, 109, 119, 114, 118, 115, 109, 117, 116, 100, 116, 112, 125, 110, 110, 142, 105, 111, 108, 113, 118, 128, 125, 117, 96, 109, 109, 116, 109, 121, 126, 130, 119, 112, 107, 111, 104, 119, 115, 131, 104, 113, 126, 118, 117, 105, 126, 110, 111, 112, 128, 118, 108, 112, 124, 120, 115, 115, 117, 121, 124, 109, 117, 126, 116, 105, 122, 116, 109, 126, 113, 116, 106, 113, 108, 126, 121, 118, 115, 121, 112, 119, 107, 109, 120, 108, 103, 128, 125, 114, 111, 120, 109, 124, 119, 92, 121, 114, 114, 93, 120, 119, 116, 120, 121, 111, 115, 118, 125, 106, 128, 115, 111, 127, 116, 115, 108, 109, 116, 119, 130, 113, 126, 116, 106, 117, 121, 119, 114, 107, 108, 109, 98, 122, 109, 110, 115, 110, 120, 113, 126, 116, 119, 113, 119, 110, 120, 107, 115, 116, 113, 126, 105, 113, 99, 108, 113, 114, 110, 111, 130, 115, 111, 133, 115, 115, 110, 119, 121, 122, 110, 129, 125, 113, 128, 121, 108, 104, 143, 121, 122, 103, 120, 125, 125, 116, 119, 105, 120, 116, 103, 131, 109, 125, 127, 124, 116, 112, 108, 111, 121, 122, 126, 108, 130, 121, 98, 123, 109, 108, 121, 137, 97, 112, 111, 108, 123, 116, 113, 110, 115, 139, 105, 117, 107, 112, 120, 106, 105, 118, 110, 115, 110, 111, 121, 117, 118, 111, 116, 124, 115, 139, 108, 115, 112, 118, 120, 117, 110, 131, 116, 142, 114, 119, 120, 120, 123, 118, 118, 108, 127, 115, 138, 109, 139, 118, 129, 122, 120, 119, 113, 106, 117, 107, 112, 124, 127, 106, 121, 116, 104, 118, 107, 114, 125, 128, 118, 116, 115, 111, 115, 114, 124, 108, 116, 121, 128, 116, 112, 110, 115, 107, 106, 116, 109, 110, 129, 118, 105, 109, 116, 114, 123, 113, 118, 111, 133, 120, 107, 112, 108, 113, 103, 116, 111, 113, 126, 112, 117, 101, 110, 124, 100, 106, 113, 109, 113, 114, 136, 112, 125, 126, 117, 104, 120, 113, 113, 116, 121, 114, 121, 102, 121, 118, 109, 114, 107, 114, 111, 117, 117, 116, 102, 118, 89, 114, 118, 98, 124, 122, 105, 110, 124, 113, 120, 106, 124, 132, 120, 112, 127, 107, 101, 115, 121, 116, 101, 112, 95, 123, 107, 120, 116, 120, 132, 112, 112, 107, 102, 107, 122, 110, 116, 128, 105, 115, 115, 106, 119, 118, 111, 118, 113, 120, 102, 118, 123, 105, 112, 108, 103, 120, 136, 109, 97, 102, 108, 111, 117, 123, 125, 114, 116, 118, 106, 107, 113, 112, 118, 126, 122, 111, 120, 98, 128, 104, 120, 116, 115, 125, 114, 108, 112, 115, 114, 99, 104, 112, 97, 118, 123, 124, 109, 113, 123, 105, 104, 123, 107, 116, 112, 98, 126, 91, 119, 106, 116, 100, 138, 125, 118, 148, 123, 113, 108, 108, 120, 124, 105, 109, 119, 121, 117, 108, 106, 110, 123, 114, 114, 122, 112, 118, 114, 128, 105, 103, 122, 119, 132, 124, 115, 117, 98, 119, 116, 112, 96, 115, 151, 104, 110, 107, 121, 113, 111, 125, 118, 129, 102, 134, 121, 112, 118, 115, 109, 112, 119, 130, 125, 126, 112, 127, 111, 128, 120, 107, 107, 115, 113, 129, 122, 102, 107, 122, 115, 115, 96, 133, 107, 140, 118, 113, 118, 112, 115, 99, 122, 105, 101, 103, 115, 139, 119, 120, 112, 92, 123, 111, 106, 122, 115, 110, 113, 112, 108, 114, 105, 119, 123, 114, 114, 111, 106, 107, 101, 129, 117, 112, 108, 119, 131, 109, 116, 131, 114, 128, 106, 126, 109, 116, 131, 116, 121, 110, 102, 108, 117, 131, 111, 110, 107, 107, 111, 98, 90, 119, 95, 108, 107, 111, 100, 123, 102, 122, 122, 125, 110, 98, 125, 117, 147, 121, 113, 122, 117, 96, 121, 112, 110, 119, 111, 110, 127, 86, 114, 109, 120, 121, 112, 106, 113, 107, 109, 111, 120, 121, 124, 117, 110, 114, 111, 101, 121, 131, 109, 122, 100, 124, 119, 119, 119, 123, 101, 135, 121, 131, 113, 105, 125, 122, 116, 120, 112, 110, 120, 114, 110, 126, 128, 116, 126, 118, 120, 123, 108, 122, 118, 110, 120, 103, 115, 117, 114, 114, 111, 124, 119, 127, 108, 112, 126, 114, 96, 109, 122, 111, 119, 110, 107, 125, 104, 98, 112, 111, 98, 114, 118, 93, 128, 137, 120, 117, 101, 120, 109, 119, 113, 105, 117, 124, 104, 115, 117, 109, 107, 116, 94, 112, 119, 124, 121, 114, 114, 98, 111, 107, 113, 114, 120, 105, 110, 123, 107, 121, 118, 103, 120, 118, 107, 113, 128, 118, 132, 126, 114, 107, 111, 142, 119, 129, 116, 110, 132, 126, 107, 142, 106, 128, 115, 103, 121, 114, 129, 93, 135, 116, 110, 108, 108, 124, 112, 107, 109, 135, 126, 110, 116, 113, 121, 102, 109, 100, 113, 117, 110, 106, 114, 106, 111, 111, 119, 111, 120, 106, 130, 96, 132, 97, 113, 118, 121, 113, 102, 121, 118, 112, 121, 110, 121, 113, 120, 105, 114, 104, 114, 122, 124, 124, 111, 118, 123, 116, 104, 110, 92, 121, 109, 127, 126, 105, 114, 117, 119, 110, 107, 122, 120, 87, 113, 123, 123, 117, 141, 110, 108, 113, 117, 126, 96, 116, 119, 114, 110, 124, 124, 123, 112, 118, 117, 121, 110, 122, 107, 113, 126, 110, 114, 110, 109, 117, 115, 108, 112, 115, 113, 122, 120, 112, 120, 130, 123, 91, 113, 114, 106, 111, 112, 111, 98, 114, 108, 106, 117, 121, 118, 118, 116, 122, 112, 110, 115, 123, 123, 122, 117, 116, 118, 115, 116, 112, 81, 119, 116, 108, 78, 120, 110, 122, 126, 116, 114, 109, 133, 123, 100, 113, 104, 125, 120, 109, 138, 117, 116, 128, 106, 116, 126, 115, 112, 110, 113, 115, 108, 109, 111, 117, 116, 117, 116, 119, 117, 110, 115, 114, 117, 114, 113, 102, 122, 104, 110, 114, 98, 103, 113, 117, 117, 125, 104, 114, 115, 115, 95, 109, 107, 118, 98, 117, 115, 120, 111, 115, 118, 121, 114, 111, 120, 115, 116, 101, 116, 115, 110, 116, 114, 110, 111, 108, 109, 108, 110, 106, 106, 120, 113, 111, 112, 127, 120, 111, 114, 112, 123, 117, 123, 125, 110, 117, 105, 114, 123, 119, 116, 119, 123, 101, 123, 118, 115, 113, 111, 114, 114, 101, 115, 87, 107, 123, 110, 114, 106, 111, 120, 114, 119, 118, 114, 108, 109, 120, 115, 117, 117, 119, 129, 114, 113, 94, 107, 117, 112, 113, 122, 121, 130, 121, 109, 100, 87, 113, 117, 102, 120, 116, 115, 115, 106, 114, 100, 128, 99, 117, 113, 114, 117, 108, 129, 109, 109, 110, 116, 126, 121, 113, 110, 117, 118, 125, 122, 115, 110, 119, 111, 116, 118, 118, 123, 120, 112, 147, 113, 117, 117, 112, 112, 116, 111, 100, 113, 113, 115, 113, 106, 108, 118, 119, 103, 108, 113, 113, 112, 79, 70, 120, 108, 118, 118, 109, 120, 128, 118, 121, 120, 103, 108, 113, 117, 112, 113, 111, 119, 118, 117, 122, 119, 122, 108, 122, 110, 113, 109, 105, 110, 98, 116, 116, 116, 118, 110, 117, 113, 102, 111, 120, 122, 119, 117, 98, 111, 119, 106, 101, 105, 99, 114, 108, 109, 98, 108, 114, 117, 119, 117, 105, 114, 112, 111, 117, 113, 118, 116, 111, 116, 109, 118, 128, 110, 116, 108, 113, 110, 122, 105, 113, 115, 106, 128, 118, 115, 114, 117, 108, 122, 110, 112, 130, 97, 115, 99, 113, 107, 124, 131, 118, 104, 106, 114, 115, 120, 111, 114, 115, 125, 119, 111, 116, 113, 112, 103, 110, 113, 112, 116, 117, 113, 119, 109, 125, 123, 109, 114, 110, 110, 113, 113, 119, 118, 116, 119, 108, 122, 114, 117, 115, 101, 110, 111, 114, 111, 106, 131, 116, 129, 115, 121, 114, 109, 108, 91, 113, 107, 105, 111, 118, 127, 117, 112, 114, 113, 96, 111, 109, 113, 99, 115, 113, 113, 111, 112, 114, 108, 114, 116, 122, 126, 112, 100, 122, 119, 122, 113, 110, 95, 113, 115, 113, 108, 114, 116, 120, 123, 114, 109, 122, 122, 134, 111, 118, 108, 120, 113, 108, 117, 109, 115, 105, 112, 114, 121, 111, 117, 105, 124, 113, 115, 117, 117, 115, 116, 116, 103, 121, 108, 117, 109, 105, 111, 108, 116, 123, 112, 115, 125, 131, 112, 102, 111, 118, 111, 127, 107, 110, 119, 128, 107, 115, 122, 118, 109, 115, 118, 108, 115, 97, 120, 113, 112, 116, 128, 125, 109, 109, 126, 136, 109, 116, 119, 114, 115, 102, 136, 123, 120, 109, 118, 118, 119, 127, 105, 108, 105, 115, 91, 119, 112, 103, 84, 121, 116, 114, 99, 112, 115, 101, 122, 121, 107, 118, 113, 117, 118, 104, 97, 119, 111, 104, 115, 121, 103, 115, 126, 118, 118, 115, 109, 118, 109, 123, 114, 122, 113, 124, 102, 110, 115, 117, 109, 117, 106, 143, 124, 103, 116, 123, 114, 104, 108, 112, 120, 113, 110, 111, 103, 103, 134, 105, 115, 127, 122, 114, 113, 107, 111, 113, 119, 111, 115, 114, 98, 117, 109, 124, 118, 121, 125, 112, 128, 105, 126, 111, 99, 117, 112, 113, 127, 124, 106, 103, 117, 123, 109, 131, 120, 109, 103, 112, 108, 105, 120, 114, 111, 107, 118, 127, 104, 95, 121, 124, 125, 134, 106, 126, 116, 123, 124, 118, 121, 113, 116, 109, 112, 125, 104, 110, 111, 117, 111, 111, 100, 117, 123, 114, 127, 128, 107, 104, 118, 122, 107, 104, 126, 133, 123, 111, 111, 148, 120, 116, 126, 117, 115, 111, 124, 111, 110, 99, 128, 119, 114, 108, 139, 105, 133, 125, 120, 114, 107, 112, 96, 122, 132, 122, 111, 116, 119, 111, 124, 132, 109, 123, 108, 118, 116, 141, 114, 111, 111, 106, 129, 112, 117, 110, 115, 112, 109, 120, 121, 117, 109, 112, 118, 115, 123, 109, 111, 136, 115, 107, 112, 111, 93, 113, 110, 121, 127, 114, 126, 107, 117, 116, 125, 117, 124, 113, 112, 122, 122, 117, 104, 116, 99, 118, 112, 110, 111, 102, 116, 118, 113, 133, 105, 106, 127, 118, 111, 134, 110, 137, 110, 108, 117, 109, 118, 110, 97, 105, 106, 107, 96, 107, 122, 122, 110, 111, 93, 101, 113, 121, 111, 114, 125, 107, 122, 124, 114, 93, 108, 106, 114, 122, 110, 130, 114, 126, 127, 125, 102, 111, 96, 97, 107, 121, 119, 131, 116, 128, 116, 108, 108, 123, 115, 118, 117, 100, 119, 115, 115, 105, 117, 121, 110, 118, 110, 110, 121, 104, 122, 104, 126, 113, 118, 115, 117, 116, 124, 120, 111, 120, 108, 114, 102, 112, 107, 108, 112, 112, 121, 107, 123, 116, 113, 114, 110, 118, 113, 111, 116, 114, 111, 113, 111, 119, 110, 113, 121, 117, 121, 121, 108, 101, 113, 117, 99, 114, 119, 120, 121, 106, 115, 125, 104, 119, 113, 106, 116, 108, 118, 122, 116, 127, 118, 140, 102, 108, 125, 112, 109, 119, 115, 109, 114, 121, 120, 112, 116, 121, 116, 120, 102, 121, 104, 108, 117, 109, 124, 123, 117, 107, 124, 112, 107, 109, 121, 128, 103, 113, 102, 128, 124, 125, 122, 105, 110, 108, 114, 116, 110, 110, 123, 114, 115, 111, 132, 118, 122, 122, 108, 111, 121, 117, 106, 127, 116, 99, 112, 111, 110, 117, 117, 107, 109, 123, 121, 123, 117, 119, 117, 118, 114, 120, 122, 102, 126, 115, 123, 115, 123, 105, 109, 106, 111, 117, 134, 114, 110, 107, 109, 115, 109, 109, 122, 104, 118, 130, 106, 119, 108, 118, 108, 112, 114, 135, 125, 108, 125, 113, 119, 125, 122, 110, 115, 117, 117, 119, 110, 131, 110, 110, 105, 117, 124, 138, 112, 115, 119, 114, 110, 110, 118, 129, 127, 102, 123, 120, 103, 128, 104, 119, 110, 107, 105, 122, 103, 121, 107, 117, 117, 124, 120, 123, 90, 124, 101, 108, 111, 126, 104, 122, 110, 109, 110, 115, 128, 105, 114, 118, 117, 119, 125, 112, 118, 111, 112, 102, 116, 113, 93, 130, 95, 96, 119, 117, 120, 132, 119, 126, 105, 123, 97, 119, 109, 123, 113, 114, 125, 118, 123, 116, 117, 102, 123, 131, 110, 136, 122, 116, 120, 117, 130, 113, 126, 93, 92, 119, 122, 115, 113, 118, 124, 110, 114, 104, 117, 115, 127, 112, 120, 98, 110, 117, 119, 112, 112, 113, 126, 107, 118, 117, 117, 120, 116, 104, 106, 110, 106, 116, 119, 133, 130, 125, 112, 117, 126, 117, 112, 120, 127, 118, 123, 113, 121, 119, 116, 127, 138, 112, 116, 133, 103, 121, 118, 123, 120, 100, 113, 108, 117, 126, 123, 116, 126, 110, 114, 112, 110, 116, 120, 117, 104, 112, 113, 124, 120, 111, 113, 120, 115, 114, 87, 112, 120, 122, 130, 113, 113, 124, 118, 111, 112, 113, 117, 110, 108, 110, 113, 125, 115, 123, 121, 121, 109, 115, 109, 126, 129, 115, 124, 131, 123, 104, 104, 108, 101, 118, 124, 118, 115, 113, 103, 95, 109, 122, 128, 115, 104, 119, 105, 112, 113, 91, 114, 107, 105, 104, 102, 106, 119, 125, 108, 119, 119, 118, 121, 116, 117, 111, 124, 118, 102, 125, 120, 114, 114, 135, 111, 107, 118, 110, 105, 109, 109, 108, 106, 120, 111, 110, 107, 113, 129, 107, 120, 109, 106, 113, 124, 125, 110, 110, 112, 119, 113, 99, 110, 123, 112, 110, 125, 114, 117, 113, 107, 86, 113, 111, 110, 118, 91, 121, 118, 131, 110, 133, 116, 103, 107, 112, 100, 115, 130, 107, 122, 96, 109, 106, 117, 130, 119, 117, 115, 107, 115, 113, 116, 124, 115, 124, 111, 112, 121, 111, 119, 93, 101, 111, 118, 119, 108, 120, 123, 115, 123, 127, 108, 96, 101, 121, 116, 104, 112, 110, 125, 95, 120, 110, 126, 112, 130, 129, 122, 111, 112, 104, 114, 114, 113, 110, 121, 109, 116, 103, 96, 101, 99, 114, 130, 116, 116, 113, 123, 125, 126, 113, 121, 121, 115, 122, 129, 120, 104, 98, 102, 113, 112, 108, 133, 114, 120, 113, 112, 121, 134, 120, 93, 97, 112, 121, 112, 120, 102, 125, 130, 117, 106, 137, 120, 114, 112, 126, 120, 116, 122, 110, 107, 112, 116, 110, 111, 113, 115, 102, 125, 130, 119, 120, 108, 113, 127, 117, 120, 121, 121, 98, 112, 91, 117, 115, 110, 121, 112, 108, 102, 109, 106, 106, 117, 127, 106, 116, 124, 123, 129, 120, 101, 117, 112, 114, 117, 118, 122, 114, 119, 109, 114, 108, 107, 136, 119, 121, 108, 115, 110, 117, 126, 123, 110, 118, 116, 120, 123, 108, 112, 112, 113, 119, 125, 121, 119, 109, 116, 130, 118, 119, 107, 121, 108, 109, 108, 123, 98, 111, 100, 124, 110, 114, 120, 124, 117, 118, 118, 120, 116, 116, 105, 107, 115, 112, 103, 112, 106, 118, 121, 105, 119, 102, 127, 106, 105, 123, 109, 113, 107, 113, 130, 125, 111, 114, 100, 107, 106, 112, 128, 114, 111, 112, 113, 126, 114, 116, 112, 123, 119, 111, 122, 119, 115, 105, 116, 114, 131, 108, 115, 115, 113, 110, 104, 106, 100, 117, 121, 122, 124, 130, 109, 113, 115, 130, 117, 125, 105, 128, 117, 106, 118, 118, 114, 126, 110, 110, 119, 123, 100, 106, 105, 111, 106, 125, 125, 111, 128, 115, 119, 128, 110, 111, 112, 103, 120, 121, 107, 142, 135, 117, 122, 114, 107, 131, 113, 126, 109, 119, 100, 114, 119, 109, 107, 120, 127, 103, 112, 113, 115, 119, 118, 114, 109, 110, 120, 114, 118, 119, 127, 115, 116, 105, 114, 109, 108, 85, 111, 106, 106, 121, 112, 114, 112, 103, 112, 111, 99, 108, 124, 131, 127, 120, 118, 116, 114, 114, 120, 114, 112, 106, 96, 111, 109, 114, 112, 116, 112, 112, 111, 118, 121, 124, 105, 114, 109, 112, 127, 128, 108, 110, 120, 122, 124, 111, 103, 116, 109, 117, 126, 123, 120, 98, 125, 101, 121, 117, 115, 119, 107, 99, 127, 124, 128, 120, 113, 101, 97, 117, 109, 119, 116, 126, 122, 118, 98, 115, 119, 108, 108, 117, 113, 118, 117, 116, 112, 113, 102, 120, 108, 126, 118, 133, 108, 103, 122, 118, 117, 117, 104, 132, 112, 121, 118, 120, 132, 114, 131, 108, 118, 127, 116, 122, 134, 110, 115, 119, 114, 117, 110, 111, 116, 128, 115, 103, 121, 112, 116, 115, 114, 114, 134, 104, 113, 117, 101, 132, 116, 100, 115, 116, 116, 109, 94, 118, 117, 117, 108, 121, 119, 110, 116, 113, 118, 124, 111, 121, 121, 112, 115, 119, 114, 116, 130, 105, 112, 115, 120, 123, 112, 109, 118, 112, 116, 108, 120, 114, 114, 106, 124, 116, 120, 116, 118, 95, 109, 100, 123, 110, 127, 120, 121, 122, 110, 116, 106, 110, 117, 121, 112, 116, 129, 86, 118, 119, 119, 117, 113, 114, 110, 136, 108, 116, 108, 121, 114, 120, 108, 115, 111, 115, 106, 114, 116, 131, 116, 124, 120, 99, 120, 107, 128, 117, 108, 110, 124, 113, 118, 115, 106, 125, 105, 135, 107, 119, 126, 123, 118, 117, 117, 109, 107, 118, 108, 117, 109, 111, 112, 119, 123, 108, 113, 119, 129, 123, 122, 122, 121, 109, 110, 124, 101, 108, 109, 128, 114, 114, 101, 115, 111, 98, 112, 131, 121, 126, 114, 123, 117, 106, 113, 111, 113, 120, 120, 104, 114, 110, 112, 116, 110, 116, 109, 114, 101, 122, 116, 121, 118, 100, 135, 107, 104, 112, 105, 112, 105, 107, 118, 119, 118, 110, 103, 108, 112, 118, 109, 114, 106, 127, 129, 108, 114, 112, 119, 109, 109, 114, 110, 121, 107, 125, 113, 109, 113, 115, 106, 117, 101, 100, 119, 112, 130, 110, 103, 110, 123, 120, 113, 121, 122, 116, 114, 123, 115, 111, 104, 122, 120, 119, 128, 113, 117, 116, 116, 109, 101, 118, 101, 114, 118, 114, 117, 113, 118, 121, 125, 125, 115, 133, 120, 114, 109, 113, 115, 116, 114, 121, 114, 128, 114, 122, 120, 109, 108, 116, 113, 110, 115, 117, 111, 111, 123, 119, 118, 123, 117, 108, 124, 120, 134, 107, 113, 118, 110, 106, 120, 111, 112, 121, 112, 104, 118, 110, 112, 112, 106, 110, 125, 103, 106, 117, 114, 111, 124, 107, 110, 120, 105, 121, 115, 109, 110, 112, 119, 87, 117, 120, 120, 106, 101, 134, 119, 120, 114, 120, 114, 109, 121, 125, 114, 130, 118, 124, 118, 111, 110, 133, 118, 116, 120, 119, 109, 116, 110, 108, 105, 94, 113, 111, 123, 110, 114, 121, 119, 120, 108, 104, 123, 116, 120, 106, 127, 115, 118, 114, 109, 119, 134, 109, 109, 116, 113, 112, 118, 134, 112, 103, 121, 103, 113, 109, 121, 115, 120, 109, 118, 121, 120, 127, 113, 115, 126, 110, 110, 125, 120, 107, 109, 106, 101, 120, 106, 111, 125, 110, 117, 132, 116, 116, 102, 128, 98, 128, 121, 107, 106, 127, 110, 108, 118, 115, 114, 108, 108, 115, 119, 117, 123, 109, 120, 123, 111, 113, 112, 113, 103, 110, 111, 117, 121, 112, 110, 122, 101, 114, 105, 103, 100, 102, 124, 115, 103, 125, 122, 120, 106, 116, 112, 116, 111, 113, 111, 116, 114, 118, 107, 110, 121, 130, 116, 119, 102, 121, 114, 117, 115, 123, 109, 105, 112, 106, 111, 98, 118, 116, 121, 117, 111, 115, 122, 115, 113, 115, 116, 126, 111, 106, 120, 111, 119, 120, 114, 101, 115, 113, 125, 114, 112, 138, 116, 127, 113, 111, 116, 99, 127, 125, 118, 127, 112, 113, 125, 125, 106, 97, 110, 123, 130, 105, 112, 113, 115, 100, 112, 118, 126, 122, 139, 97, 108, 120, 103, 121, 112, 98, 108, 133, 116, 116, 113, 121, 112, 103, 124, 121, 117, 96, 112, 123, 132, 123, 115, 119, 126, 107, 108, 124, 115, 114, 115, 106, 112, 122, 129, 109, 109, 122, 99, 110, 120, 114, 128, 108, 112, 105, 105, 116, 106, 115, 109, 125, 112, 118, 122, 110, 119, 120, 117, 116, 113, 113, 107, 114, 105, 130, 134, 123, 113, 118, 108, 97, 120, 123, 116, 119, 108, 113, 115, 104, 115, 109, 108, 110, 118, 120, 118, 112, 125, 112, 108, 104, 110, 118, 118, 122, 111, 120, 132, 112, 115, 109, 120, 106, 115, 113, 131, 117, 100, 118, 110, 115, 110, 104, 110, 124, 125, 108, 107, 120, 115, 107, 107, 122, 124, 116, 115, 113, 129, 130, 101, 119, 124, 111, 110, 111, 121, 109, 133, 136, 110, 118, 114, 116, 108, 113, 112, 113, 116, 116, 84, 108, 106, 112, 133, 122, 119, 121, 103, 116, 113, 114, 114, 132, 115, 120, 113, 125, 116, 138, 122, 130, 120, 118, 111, 107, 115, 111, 127, 111, 117, 119, 122, 115, 112, 120, 109, 111, 121, 111, 125, 119, 109, 111, 120, 120, 127, 121, 108, 118, 109, 120, 112, 120, 110, 120, 103, 108, 112, 115, 101, 110, 123, 119, 130, 98, 126, 118, 122, 108, 108, 93, 123, 121, 118, 122, 114, 103, 125, 114, 117, 124, 112, 105, 120, 139, 116, 120, 104, 117, 127, 125, 100, 129, 109, 118, 128, 109, 102, 112, 108, 111, 125, 107, 120, 137, 111, 107, 116, 119, 137, 114, 115, 111, 107, 130, 108, 107, 113, 120, 135, 141, 120, 127, 106, 123, 134, 105, 128, 127, 105, 117, 121, 114, 105, 123, 108, 119, 121, 123, 100, 110, 122, 111, 124, 131, 104, 137, 116, 99, 99, 116, 107, 116, 112, 114, 124, 121, 122, 104, 115, 118, 101, 118, 121, 111, 112, 108, 133, 110, 110, 113, 116, 108, 124, 120, 130, 104, 101, 100, 82, 121, 118, 109, 118, 131, 120, 100, 110, 118, 145, 100, 118, 102, 109, 116, 106, 129, 115, 116, 124, 111, 102, 124, 108, 118, 116, 123, 115, 116, 113, 110, 120, 119, 125, 109, 107, 124, 109, 109, 134, 104, 103, 110, 114, 118, 126, 115, 106, 120, 91, 119, 107, 121, 94, 106, 116, 112, 108, 121, 107, 114, 128, 118, 123, 106, 130, 118, 121, 100, 90, 121, 114, 94, 107, 123, 120, 121, 123, 98, 106, 97, 129, 105, 113, 123, 116, 115, 111, 107, 117, 129, 121, 111, 101, 104, 115, 124, 111, 110, 131, 124, 137, 108, 115, 121, 112, 117, 150, 101, 114, 115, 121, 120, 102, 119, 120, 109, 124, 114, 123, 111, 124, 124, 104, 111, 108, 127, 116, 117, 108, 115, 105, 115, 116, 99, 115, 119, 123, 98, 101, 113, 117, 107, 113, 112, 134, 107, 119, 97, 117, 128, 111, 112, 97, 122, 102, 110, 100, 110, 123, 130, 112, 112, 119, 111, 101, 118, 119, 112, 113, 129, 95, 105, 116, 108, 113, 118, 110, 102, 123, 124, 101, 118, 113, 116, 122, 136, 114, 140, 123, 96, 110, 113, 111, 116, 142, 112, 126, 97, 113, 103, 134, 83, 118, 127, 128, 95, 124, 111, 112, 106, 133, 105, 111, 97, 130, 107, 116, 112, 95, 141, 126, 101, 94, 119, 114, 110, 98, 119, 105, 124, 126, 105, 121, 117, 106, 120, 118, 122, 102, 121, 141, 126, 94, 102, 110, 114, 107, 119, 118, 121, 135, 118, 121, 102, 131, 104, 100, 114, 107, 125, 119, 126, 123, 113, 116, 116, 106, 123, 114, 117, 125, 117, 122, 112, 109, 113, 106, 105, 110, 101, 119, 92, 120, 94, 119, 120, 115, 123, 119, 113, 117, 137, 140, 109, 102, 116, 112, 125, 107, 125, 121, 115, 122, 105, 118, 102, 109, 136, 112, 127, 112, 114, 118, 117, 104, 110, 116, 117, 114, 120, 108, 112, 106, 122, 112, 121, 121, 108, 120, 113, 117, 118, 108, 107, 107, 107, 112, 109, 109, 109, 115, 110, 103, 123, 136, 115, 116, 118, 115, 92, 115, 106, 125, 113, 124, 109, 116, 115, 114, 112, 121, 112, 120, 115, 109, 112, 115, 110, 118, 104, 113, 100, 112, 117, 112, 118, 113, 113, 113, 118, 114, 118, 117, 122, 112, 119, 130, 114, 109, 109, 108, 115, 125, 118, 121, 110, 123, 120, 116, 120, 113, 114, 119, 117, 122, 121, 112, 119, 110, 124, 102, 110, 108, 106, 116, 116, 118, 113, 128, 123, 112, 122, 111, 121, 109, 112, 109, 111, 108, 114, 116, 116, 119, 116, 122, 115, 111, 112, 126, 107, 125, 119, 116, 109, 117, 115, 115, 110, 108, 112, 119, 125, 114, 129, 110, 119, 117, 117, 114, 114, 120, 115, 115, 107, 121, 119, 119, 116, 114, 118, 106, 117, 113, 120, 117, 118, 113, 116, 110, 102, 112, 119, 114, 128, 108, 110, 118, 114, 114, 114, 119, 115, 116, 111, 111, 121, 115, 108, 110, 112, 117, 112, 107, 111, 119, 87, 123, 117, 117, 115, 121, 116, 116, 112, 111, 119, 110, 118, 109, 125, 106, 110, 122, 120, 115, 113, 115, 118, 114, 113, 120, 114, 118, 121, 110, 102, 117, 122, 111, 110, 112, 108, 123, 108, 112, 107, 112, 117, 116, 126, 120, 110, 110, 113, 119, 118, 122, 118, 125, 120, 111, 114, 119, 116, 107, 117, 120, 121, 119, 110, 127, 108, 113, 122, 112, 112, 112, 117, 112, 105, 122, 105, 119, 112, 116, 86, 104, 111, 124, 127, 109, 116, 121, 107, 119, 111, 112, 118, 117, 117, 122, 112, 109, 116, 117, 115, 112, 117, 118, 121, 131, 127, 124, 111, 109, 124, 116, 111, 110, 112, 115, 130, 119, 117, 124, 112, 122, 116, 124, 114, 111, 111, 124, 114, 122, 102, 110, 109, 111, 114, 120, 102, 119, 117, 112, 116, 111, 116, 120, 115, 131, 117, 102, 116, 115, 116, 112, 110, 103, 121, 119, 118, 120, 105, 116, 116, 115, 110, 114, 105, 112, 127, 121, 111, 139, 113, 114, 113, 112, 109, 120, 123, 113, 111, 116, 119, 112, 118, 109, 106, 119, 122, 108, 127, 116, 121, 123, 112, 115, 119, 118, 114, 117, 112, 114, 120, 108, 114, 123, 117, 107, 109, 130, 117, 113, 115, 127, 119, 116, 90, 111, 110, 121, 110, 112, 117, 131, 122, 117, 116, 112, 109, 119, 101, 110, 114, 118, 111, 122, 122, 121, 111, 114, 113, 108, 134, 113, 116, 105, 112, 120, 101, 126, 108, 117, 125, 109, 118, 118, 111, 115, 125, 115, 112, 124, 120, 119, 108, 117, 110, 116, 122, 114, 120, 104, 118, 112, 107, 112, 116, 119, 116, 122, 110, 123, 107, 122, 113, 116, 121, 115, 109, 109, 115, 119, 117, 109, 109, 114, 98, 110, 111, 109, 117, 112, 120, 127, 122, 122, 115, 87, 113, 113, 113, 112, 115, 124, 111, 114, 105, 119, 111, 111, 124, 108, 129, 150, 125, 110, 119, 120, 122, 109, 117, 107, 117, 104, 109, 104, 116, 101, 103, 118, 125, 121, 103, 123, 110, 109, 104, 112, 114, 120, 119, 124, 126, 113, 104, 125, 134, 117, 116, 111, 130, 121, 112, 112, 113, 122, 116, 112, 109, 109, 114, 114, 105, 115, 117, 109, 123, 113, 111, 112, 115, 121, 125, 113, 115, 120, 116, 128, 118, 117, 120, 121, 113, 116, 107, 109, 111, 109, 117, 102, 114, 116, 122, 104, 117, 107, 112, 123, 129, 112, 116, 105, 105, 104, 122, 116, 117, 110, 129, 119, 113, 116, 115, 120, 116, 109, 106, 114, 109, 104, 113, 117, 115, 124, 104, 112, 114, 123, 107, 119, 110, 111, 112, 113, 118, 107, 117, 110, 115, 133, 105, 117, 105, 106, 115, 114, 111, 121, 107, 101, 117, 119, 119, 111, 121, 109, 124, 109, 96, 123, 113, 115, 118, 122, 110, 132, 100, 111, 113, 103, 105, 102, 130, 126, 108, 127, 122, 110, 118, 115, 116, 111, 115, 114, 118, 120, 125, 108, 110, 106, 115, 115, 114, 119, 119, 126, 134, 113, 102, 112, 112, 115, 123, 123, 117, 107, 117, 119, 113, 117, 121, 117, 109, 107, 119, 113, 111, 110, 116, 118, 116, 104, 116, 102, 100, 124, 117, 120, 108, 121, 111, 128, 110, 108, 101, 122, 105, 114, 98, 114, 112, 99, 122, 131, 123, 120, 123, 117, 109, 123, 123, 110, 122, 115, 106, 106, 125, 127, 105, 117, 129, 112, 118, 143, 114, 123, 115, 113, 109, 121, 115, 113, 118, 108, 109, 111, 102, 118, 116, 106, 119, 116, 118, 113, 111, 114, 90, 102, 106, 107, 101, 111, 104, 122, 110, 117, 112, 113, 117, 116, 115, 107, 98, 111, 120, 112, 99, 116, 119, 117, 120, 116, 103, 117, 102, 110, 124, 115, 114, 111, 111, 124, 122, 121, 117, 107, 119, 115, 98, 120, 107, 119, 111, 117, 130, 122, 122, 106, 123, 127, 101, 103, 117, 100, 117, 114, 107, 102, 109, 130, 120, 117, 108, 118, 100, 116, 114, 124, 112, 118, 109, 116, 104, 102, 116, 111, 110, 107, 115, 125, 130, 116, 124, 116, 125, 105, 131, 114, 117, 115, 114, 101, 119, 125, 118, 110, 110, 113, 117, 125, 117, 123, 122, 119, 120, 112, 113, 111, 110, 113, 115, 120, 108, 112, 107, 120, 110, 112, 103, 103, 121, 114, 112, 117, 108, 118, 116, 105, 125, 97, 112, 114, 116, 117, 114, 115, 115, 111, 110, 118, 116, 120, 125, 120, 121, 117, 109, 113, 108, 109, 117, 124, 120, 109, 110, 106, 122, 131, 110, 113, 124, 114, 97, 105, 118, 112, 112, 122, 113, 113, 119, 108, 112, 108, 119, 119, 106, 108, 110, 110, 118, 111, 121, 128, 121, 116, 159, 118, 125, 123, 111, 130, 113, 112, 112, 104, 118, 117, 119, 112, 119, 102, 109, 119, 110, 114, 147, 126, 121, 118, 104, 111, 119, 115, 115, 138, 118, 95, 119, 113, 112, 117, 114, 124, 99, 114, 112, 115, 122, 113, 116, 117, 115, 122, 117, 95, 111, 114, 121, 102, 113, 130, 111, 115, 117, 118, 119, 114, 115, 115, 111, 115, 111, 118, 114, 112, 112, 108, 128, 117, 120, 115, 108, 117, 107, 117, 119, 110, 113, 118, 120, 115, 113, 115, 112, 121, 115, 105, 115, 123, 110, 121, 118, 110, 108, 117, 128, 109, 115, 123, 114, 107, 110, 115, 115, 105, 111, 116, 115, 108, 114, 119, 113, 113, 116, 112, 111, 122, 115, 109, 118, 113, 116, 118, 119, 118, 115, 119, 118, 111, 121, 111, 121, 121, 104, 119, 113, 113, 123, 122, 114, 123, 122, 112, 112, 114, 111, 110, 113, 114, 116, 119, 109, 117, 116, 116, 114, 118, 112, 115, 111, 116, 117, 109, 117, 120, 119, 110, 117, 106, 112, 106, 118, 118, 117, 117, 118, 112, 116, 121, 113, 119, 124, 119, 113, 107, 113, 117, 110, 105, 111, 120, 120, 117, 117, 115, 123, 125, 111, 113, 117, 114, 135, 118, 115, 111, 116, 118, 116, 117, 109, 115, 107, 122, 115, 121, 113, 115, 115, 110, 119, 118, 119, 117, 114, 106, 115, 117, 107, 119, 112, 119, 118, 117, 119, 109, 114, 109, 113, 120, 118, 117, 118, 115, 115, 118, 117, 111, 118, 116, 119, 111, 128, 127, 117, 107, 117, 114, 115, 111, 112, 111, 116, 103, 121, 115, 115, 119, 112, 117, 118, 115, 116, 119, 110, 112, 114, 112, 121, 113, 117, 117, 116, 113, 117, 119, 117, 121, 111, 115, 118, 111, 117, 132, 119, 115, 112, 113, 112, 109, 107, 107, 112, 111, 111, 112, 109, 115, 106, 123, 116, 112, 112, 114, 116, 118, 95, 114, 116, 120, 112, 119, 113, 115, 113, 114, 111, 116, 117, 119, 115, 124, 113, 121, 115, 107, 109, 119, 117, 124, 123, 118, 116, 116, 119, 113, 117, 123, 122, 121, 114, 117, 114, 124, 115, 107, 113, 117, 115, 101, 113, 116, 110, 109, 115, 118, 110, 113, 120, 123, 116, 121, 108, 114, 119, 117, 120, 114, 118, 120, 113, 117, 116, 116, 114, 108, 110, 117, 115, 98, 121, 116, 120, 116, 110, 123, 118, 123, 112, 114, 110, 111, 115, 111, 117, 114, 118, 113, 114, 116, 116, 124, 111, 111, 115, 120, 116, 109, 111, 109, 117, 115, 112, 116, 112, 113, 115, 122, 124, 115, 113, 121, 114, 126, 114, 118, 116, 113, 111, 115, 116, 111, 112, 122, 116, 117, 109, 135, 113, 116, 142, 84, 118, 115, 161, 140, 118, 107, 115, 118, 124, 118, 113, 119, 114, 119, 123, 116, 119, 113, 118, 112, 115, 116, 113, 118, 121, 114, 115, 118, 115, 114, 118, 120, 119, 117, 121, 112, 117, 117, 114, 109, 118, 116, 120, 117, 117, 124, 110, 112, 115, 122, 116, 109, 111, 111, 112, 118, 110, 109, 114, 115, 114, 115, 119, 115, 110, 115, 116, 123, 115, 110, 115, 117, 111, 112, 116, 110, 106, 125, 117, 120, 105, 108, 114, 116, 114, 109, 114, 117, 116, 137, 119, 115, 104, 113, 116, 117, 112, 115, 116, 107, 114, 108, 124, 115, 120, 107, 107, 110, 123, 119, 114, 113, 118, 112, 133, 110, 125, 108, 125, 126, 96, 120, 114, 116, 114, 112, 107, 115, 109, 116, 109, 123, 109, 118, 123, 115, 121, 107, 106, 108, 104, 116, 129, 110, 116, 110, 112, 107, 93, 116, 119, 115, 119, 122, 120, 124, 109, 117, 120, 116, 112, 109, 117, 111, 123, 111, 104, 104, 115, 112, 123, 121, 128, 100, 115, 135, 118, 105, 114, 134, 116, 118, 119, 117, 126, 120, 102, 128, 109, 118, 117, 117, 105, 110, 102, 135, 118, 121, 118, 114, 108, 110, 124, 121, 108, 125, 113, 109, 113, 119, 113, 87, 119, 129, 114, 116, 120, 116, 109, 90, 112, 111, 133, 102, 107, 113, 101, 96, 122, 106, 118, 118, 113, 119, 109, 111, 105, 107, 108, 96, 109, 114, 120, 110, 116, 118, 110, 110, 104, 116, 99, 130, 110, 112, 117, 126, 114, 105, 99, 113, 113, 121, 121, 110, 120, 114, 123, 113, 125, 117, 110, 120, 119, 115, 117, 111, 114, 113, 116, 112, 113, 114, 112, 105, 112, 109, 112, 118, 110, 103, 116, 115, 114, 113, 112, 117, 102, 106, 108, 112, 101, 124, 116, 116, 105, 115, 114, 109, 114, 121, 110, 114, 112, 109, 114, 103, 114, 124, 101, 113, 107, 120, 109, 109, 128, 120, 120, 126, 112, 117, 120, 116, 121, 124, 106, 106, 124, 109, 118, 115, 113, 116, 121, 118, 124, 111, 113, 126, 113, 127, 110, 108, 112, 117, 118, 99, 118, 109, 110, 123, 111, 126, 105, 112, 118, 108, 101, 107, 107, 111, 114, 116, 121, 125, 120, 119, 111, 103, 113, 106, 118, 120, 110, 82, 125, 122, 112, 116, 113, 128, 118, 113, 102, 104, 119, 117, 111, 116, 94, 140, 116, 102, 111, 127, 109, 119, 117, 144, 117, 124, 116, 97, 117, 109, 107, 116, 104, 125, 106, 108, 115, 114, 109, 106, 113, 122, 120, 119, 112, 109, 110, 117, 119, 130, 126, 104, 114, 105, 105, 102, 124, 112, 108, 108, 126, 108, 111, 118, 113, 116, 114, 115, 120, 119, 128, 118, 111, 109, 114, 108, 119, 114, 107, 110, 99, 122, 126, 108, 112, 114, 130, 122, 106, 118, 111, 117, 110, 97, 108, 112, 111, 102, 115, 122, 108, 109, 136, 113, 108, 113, 119, 113, 110, 119, 118, 121, 99, 101, 111, 99, 114, 110, 116, 119, 110, 115, 93, 115, 115, 114, 113, 104, 112, 116, 117, 112, 110, 117, 110, 112, 115, 114, 125, 118, 115, 116, 124, 119, 125, 113, 117, 112, 108, 113, 108, 112, 114, 112, 124, 118, 121, 108, 120, 117, 104, 114, 117, 118, 131, 127, 114, 112, 105, 123, 117, 118, 112, 117, 117, 117, 118, 121, 112, 123, 122, 108, 108, 123, 113, 111, 107, 119, 122, 119, 98, 113, 119, 106, 102, 108, 123, 117, 105, 122, 122, 127, 109, 108, 119, 118, 117, 118, 108, 118, 110, 114, 109, 113, 116, 130, 121, 110, 116, 109, 109, 121, 115, 128, 112, 112, 127, 118, 112, 116, 112, 111, 110, 117, 111, 112, 122, 110, 127, 162, 116, 108, 114, 114, 114, 116, 115, 122, 106, 114, 111, 116, 115, 110, 118, 119, 158, 109, 120, 116, 108, 124, 120, 110, 122, 109, 110, 108, 138, 123, 104, 115, 110, 123, 120, 117, 114, 120, 114, 114, 118, 110, 115, 115, 130, 115, 124, 119, 123, 114, 120, 115, 100, 110, 118, 114, 114, 115, 117, 111, 111, 111, 112, 111, 116, 116, 113, 114, 104, 117, 117, 120, 106, 108, 112, 113, 118, 103, 118, 118, 113, 116, 121, 108, 103, 105, 118, 114, 118, 114, 109, 100, 109, 117, 111, 114, 117, 114, 114, 115, 121, 111, 113, 116, 109, 118, 106, 108, 116, 107, 116, 109, 113, 122, 109, 120, 125, 106, 122, 115, 123, 115, 115, 117, 113, 119, 103, 114, 110, 123, 114, 115, 124, 118, 117, 121, 126, 125, 113, 116, 114, 115, 112, 119, 114, 118, 113, 122, 116, 113, 142, 113, 112, 109, 129, 118, 111, 114, 114, 116, 114, 110, 113, 118, 118, 118, 120, 131, 116, 127, 106, 123, 120, 101, 109, 120, 101, 115, 118, 120, 117, 111, 112, 110, 137, 107, 118, 119, 108, 114, 116, 111, 114, 109, 118, 101, 108, 107, 110, 120, 139, 115, 117, 117, 109, 114, 118, 114, 104, 124, 116, 130, 116, 108, 108, 120, 127, 117, 115, 113, 119, 104, 143, 124, 127, 115, 120, 112, 115, 114, 116, 112, 122, 111, 102, 114, 120, 121, 107, 118, 109, 133, 120, 118, 112, 115, 109, 108, 113, 102, 110, 113, 113, 114, 109, 120, 113, 139, 121, 114, 108, 114, 116, 117, 104, 108, 118, 115, 115, 109, 123, 121, 103, 112, 104, 114, 117, 132, 113, 112, 118, 114, 107, 120, 118, 112, 113, 116, 119, 109, 88, 118, 108, 115, 121, 113, 119, 111, 114, 120, 125, 111, 118, 122, 112, 118, 111, 102, 114, 134, 115, 133, 127, 115, 114, 112, 120, 104, 109, 114, 107, 110, 109, 111, 122, 107, 121, 114, 120, 112, 112, 139, 122, 94, 112, 91, 101, 82, 117, 119, 114, 109, 115, 118, 110, 124, 113, 117, 111, 110, 130, 115, 110, 117, 115, 113, 137, 119, 116, 120, 111, 113, 122, 110, 111, 121, 121, 120, 121, 117, 119, 116, 120, 119, 118, 125, 116, 115, 115, 107, 110, 111, 118, 118, 110, 123, 119, 107, 116, 118, 108, 120, 114, 108, 116, 113, 120, 104, 174, 58, 120, 106, 187, 143, 117, 95, 112, 115, 122, 113, 119, 105, 114, 106, 113, 112, 122, 117, 120, 112, 116, 112, 117, 107, 110, 114, 110, 110, 121, 117, 122, 117, 118, 115, 118, 117, 118, 106, 118, 112, 119, 122, 119, 114, 120, 122, 134, 112, 116, 113, 111, 122, 119, 122, 112, 117, 113, 110, 120, 110, 104, 114, 106, 106, 119, 113, 114, 121, 120, 106, 115, 110, 108, 107, 111, 106, 108, 114, 116, 132, 116, 105, 109, 111, 110, 103, 117, 114, 119, 140, 125, 114, 107, 114, 118, 120, 115, 110, 109, 102, 123, 112, 114, 117, 113, 118, 120, 125, 118, 110, 108, 118, 123, 113, 120, 116, 111, 111, 108, 111, 109, 113, 114, 117, 110, 125, 108, 111, 118, 106, 115, 115, 120, 114, 113, 114, 122, 122, 109, 116, 119, 114, 108, 121, 108, 115, 105, 103, 118, 120, 111, 117, 128, 117, 130, 117, 116, 115, 115, 111, 111, 106, 124, 114, 121, 102, 107, 124, 116, 113, 119, 115, 113, 119, 113, 109, 108, 114, 116, 126, 104, 108, 119, 112, 126, 119, 119, 114, 106, 115, 120, 115, 109, 104, 120, 116, 115, 109, 122, 125, 112, 120, 129, 116, 105, 119, 113, 112, 114, 118, 107, 117, 119, 119, 120, 113, 111, 110, 113, 114, 111, 93, 119, 111, 120, 109, 122, 102, 114, 111, 106, 112, 113, 120, 122, 121, 108, 108, 122, 113, 110, 107, 115, 108, 110, 110, 108, 113, 113, 69, 118, 119, 121, 112, 110, 101, 114, 114, 118, 122, 117, 116, 121, 127, 113, 108, 111, 109, 112, 122, 116, 100, 113, 108, 121, 117, 107, 102, 114, 109, 114, 124, 123, 111, 117, 117, 113, 122, 113, 121, 118, 107, 117, 107, 121, 114, 117, 114, 99, 112, 109, 109, 113, 118, 118, 124, 110, 116, 114, 117, 118, 118, 117, 117, 106, 114, 127, 113, 109, 117, 107, 115, 113, 117, 105, 117, 113, 107, 102, 115, 112, 105, 116, 105, 123, 95, 114, 110, 115, 108, 109, 118, 122, 124, 110, 121, 122, 113, 100, 118, 112, 107, 112, 124, 114, 114, 113, 124, 131, 120, 107, 123, 110, 113, 122, 123, 101, 109, 107, 114, 111, 107, 110, 112, 119, 115, 120, 112, 105, 111, 124, 121, 122, 113, 114, 111, 115, 117, 112, 111, 111, 111, 114, 112, 117, 118, 119, 117, 108, 111, 123, 117, 112, 124, 107, 114, 118, 116, 114, 118, 114, 112, 112, 123, 131, 117, 119, 116, 115, 118, 107, 117, 112, 118, 106, 106, 121, 109, 114, 120, 120, 115, 103, 109, 121, 112, 106, 110, 113, 112, 110, 114, 112, 123, 108, 120, 103, 106, 115, 122, 111, 116, 111, 117, 111, 114, 126, 122, 109, 112, 119, 108, 118, 116, 117, 110, 116, 128, 109, 114, 114, 118, 109, 115, 111, 111, 116, 115, 113, 119, 103, 117, 109, 115, 120, 128, 104, 112, 117, 113, 115, 113, 118, 110, 105, 123, 125, 110, 111, 107, 111, 113, 117, 115, 116, 105, 124, 118, 111, 132, 120, 122, 115, 108, 112, 118, 111, 111, 114, 107, 106, 111, 119, 116, 120, 130, 117, 115, 126, 112, 110, 116, 116, 111, 107, 118, 122, 119, 108, 117, 117, 116, 115, 103, 102, 119, 117, 121, 102, 110, 121, 118, 109, 119, 121, 117, 118, 114, 112, 116, 112, 110, 118, 113, 126, 108, 113, 99, 113, 119, 116, 104, 102, 119, 115, 119, 127, 120, 115, 115, 118, 108, 109, 123, 107, 118, 112, 108, 122, 115, 111, 118, 119, 123, 117, 121, 108, 114, 121, 120, 120, 120, 111, 122, 125, 117, 119, 113, 108, 118, 113, 102, 103, 122, 110, 104, 111, 114, 112, 108, 118, 124, 123, 99, 112, 117, 120, 113, 103, 123, 140, 110, 113, 122, 116, 110, 123, 105, 112, 114, 119, 141, 119, 119, 130, 129, 113, 114, 111, 128, 113, 111, 117, 115, 120, 110, 116, 129, 131, 111, 122, 121, 105, 116, 120, 114, 113, 123, 112, 102, 104, 137, 122, 112, 122, 110, 105, 113, 110, 112, 117, 115, 110, 108, 121, 122, 110, 111, 132, 143, 107, 102, 116, 110, 112, 122, 116, 110, 104, 115, 119, 118, 129, 115, 123, 108, 120, 99, 120, 123, 123, 111, 127, 99, 111, 111, 130, 117, 116, 125, 117, 118, 116, 114, 114, 116, 105, 115, 120, 119, 109, 119, 136, 117, 102, 111, 119, 112, 125, 108, 108, 114, 116, 109, 116, 112, 119, 108, 130, 117, 139, 117, 110, 111, 114, 118, 114, 108, 108, 126, 102, 111, 113, 127, 95, 119, 105, 126, 109, 109, 110, 105, 113, 106, 115, 119, 118, 99, 116, 122, 114, 128, 115, 109, 114, 139, 131, 125, 117, 114, 111, 124, 116, 115, 106, 123, 118, 132, 113, 125, 127, 128, 104, 126, 120, 123, 136, 112, 110, 115, 130, 121, 120, 121, 123, 125, 108, 113, 111, 130, 137, 119, 132, 114, 111, 105, 114, 109, 114, 112, 121, 118, 131, 110, 104, 110, 129, 119, 122, 106, 110, 111, 123, 107, 119, 122, 109, 113, 115, 115, 120, 115, 122, 116, 124, 114, 131, 127, 117, 103, 122, 118, 121, 134, 121, 122, 113, 121, 102, 112, 115, 112, 112, 125, 110, 107, 108, 108, 111, 102, 120, 122, 111, 127, 118, 96, 106, 107, 109, 109, 119, 124, 111, 134, 103, 106, 103, 112, 106, 114, 117, 121, 111, 115, 124, 128, 130, 114, 121, 133, 111, 108, 122, 126, 115, 118, 103, 118, 118, 101, 126, 101, 124, 109, 117, 114, 119, 117, 124, 120, 109, 117, 145, 108, 113, 111, 110, 102, 114, 121, 133, 124, 119, 123, 121, 122, 94, 112, 107, 100, 114, 124, 108, 117, 120, 129, 118, 113, 117, 113, 119, 125, 135, 119, 108, 108, 128, 118, 115, 116, 102, 106, 123, 106, 111, 109, 115, 116, 122, 114, 111, 115, 121, 115, 118, 116, 122, 100, 107, 108, 120, 126, 112, 111, 103, 122, 113, 107, 102, 108, 111, 107, 122, 120, 118, 105, 133, 123, 118, 97, 106, 116, 117, 125, 123, 111, 107, 119, 128, 131, 115, 109, 115, 111, 119, 117, 119, 106, 105, 103, 110, 102, 114, 116, 132, 118, 111, 117, 102, 113, 126, 124, 120, 116, 119, 121, 113, 104, 119, 121, 121, 128, 108, 121, 104, 110, 116, 133, 116, 127, 113, 101, 122, 125, 95, 115, 108, 118, 122, 117, 111, 113, 123, 113, 119, 118, 113, 105, 123, 112, 121, 121, 116, 129, 116, 106, 139, 106, 123, 132, 118, 104, 108, 118, 114, 112, 122, 121, 115, 104, 110, 111, 104, 118, 118, 109, 120, 112, 120, 111, 105, 107, 111, 121, 106, 118, 113, 140, 111, 102, 133, 106, 109, 115, 122, 114, 105, 102, 141, 105, 112, 132, 95, 121, 103, 112, 119, 128, 109, 117, 141, 110, 124, 112, 117, 109, 122, 112, 102, 116, 118, 115, 111, 110, 126, 117, 118, 117, 131, 99, 124, 101, 114, 121, 126, 125, 127, 120, 116, 114, 108, 118, 125, 128, 104, 110, 110, 111, 107, 111, 115, 126, 112, 107, 112, 113, 106, 128, 124, 116, 121, 120, 122, 117, 106, 104, 127, 110, 121, 113, 109, 115, 117, 118, 123, 119, 112, 151, 106, 124, 106, 102, 108, 115, 105, 118, 110, 115, 119, 122, 122, 121, 103, 112, 116, 131, 110, 109, 109, 111, 124, 112, 100, 110, 108, 111, 121, 121, 116, 110, 111, 121, 109, 123, 102, 118, 118, 120, 122, 129, 130, 128, 109, 105, 118, 113, 118, 106, 117, 124, 116, 118, 112, 110, 121, 109, 96, 123, 108, 106, 113, 116, 91, 128, 112, 121, 114, 114, 115, 123, 117, 116, 111, 120, 115, 120, 115, 116, 124, 111, 123, 118, 96, 119, 123, 113, 105, 110, 116, 114, 120, 118, 118, 112, 121, 119, 119, 113, 116, 115, 114, 122, 104, 117, 108, 112, 118, 105, 104, 124, 110, 109, 119, 103, 116, 105, 111, 121, 119, 121, 117, 124, 120, 113, 104, 115, 116, 110, 124, 116, 110, 109, 112, 115, 128, 125, 113, 103, 114, 116, 128, 135, 113, 117, 111, 113, 109, 119, 107, 125, 115, 121, 120, 118, 104, 119, 113, 117, 110, 114, 117, 128, 114, 130, 119, 116, 96, 134, 113, 102, 109, 109, 98, 102, 112, 117, 115, 116, 111, 112, 126, 121, 113, 113, 115, 119, 110, 105, 109, 110, 103, 91, 119, 98, 125, 111, 117, 107, 127, 102, 119, 123, 115, 116, 112, 109, 120, 116, 110, 110, 118, 109, 120, 113, 111, 114, 108, 111, 99, 112, 108, 102, 120, 117, 117, 125, 116, 120, 122, 101, 114, 129, 126, 114, 126, 120, 120, 110, 117, 103, 109, 113, 110, 121, 119, 100, 121, 105, 114, 132, 118, 104, 112, 109, 105, 122, 114, 109, 107, 121, 114, 110, 112, 129, 105, 110, 116, 107, 117, 113, 107, 107, 113, 99, 113, 112, 130, 121, 103, 111, 104, 115, 114, 122, 117, 121, 113, 128, 116, 131, 110, 132, 118, 100, 129, 105, 109, 116, 111, 122, 96, 112, 118, 107, 109, 108, 127, 125, 103, 113, 100, 107, 120, 109, 110, 124, 115, 112, 109, 116, 111, 107, 108, 104, 119, 117, 112, 115, 117, 111, 108, 127, 107, 116, 114, 104, 117, 120, 114, 108, 133, 113, 112, 110, 109, 112, 106, 121, 123, 124, 130, 124, 106, 118, 96, 114, 117, 131, 111, 101, 103, 104, 104, 124, 98, 140, 115, 101, 116, 100, 106, 105, 120, 97, 123, 104, 122, 127, 121, 113, 114, 109, 118, 124, 112, 116, 137, 114, 108, 115, 122, 131, 104, 116, 107, 112, 120, 121, 105, 103, 89, 117, 101, 122, 125, 129, 115, 120, 117, 120, 113, 120, 92, 126, 100, 111, 128, 116, 100, 108, 115, 110, 103, 118, 123, 115, 121, 101, 130, 113, 106, 113, 109, 105, 105, 105, 106, 118, 127, 118, 120, 110, 119, 110, 118, 115, 118, 116, 114, 111, 107, 109, 116, 123, 120, 104, 125, 112, 117, 125, 115, 113, 113, 126, 109, 112, 96, 97, 113, 118, 111, 105, 103, 125, 120, 112, 111, 109, 114, 108, 111, 117, 121, 126, 117, 124, 114, 110, 107, 111, 123, 113, 122, 106, 108, 109, 118, 113, 117, 115, 119, 114, 118, 109, 119, 116, 107, 111, 123, 124, 126, 116, 116, 117, 114, 122, 126, 109, 124, 117, 111, 118, 121, 117, 111, 111, 126, 105, 108, 97, 116, 125, 122, 115, 114, 114, 119, 112, 129, 128, 109, 114, 118, 118, 108, 114, 119, 117, 109, 114, 123, 119, 113, 118, 123, 111, 120, 121, 113, 118, 127, 110, 132, 111, 105, 116, 129, 109, 91, 116, 121, 112, 117, 121, 118, 113, 120, 110, 111, 112, 112, 120, 107, 125, 105, 112, 122, 114, 108, 124, 105, 118, 109, 126, 114, 113, 113, 125, 126, 111, 128, 113, 119, 113, 112, 116, 110, 113, 98, 112, 115, 118, 119, 103, 117, 122, 128, 112, 106, 109, 113, 115, 114, 131, 115, 103, 113, 117, 110, 110, 107, 115, 113, 112, 113, 113, 119, 119, 132, 127, 120, 103, 121, 108, 115, 112, 105, 127, 106, 132, 110, 107, 99, 120, 105, 113, 113, 116, 113, 118, 118, 124, 115, 112, 126, 119, 121, 117, 118, 123, 107, 129, 117, 126, 114, 111, 110, 110, 121, 115, 112, 111, 120, 122, 118, 123, 107, 107, 96, 121, 131, 123, 115, 118, 126, 104, 109, 116, 115, 116, 124, 118, 112, 93, 118, 125, 122, 115, 116, 116, 111, 110, 117, 106, 119, 122, 127, 115, 105, 114, 117, 114, 109, 122, 114, 116, 129, 136, 118, 116, 98, 116, 107, 100, 122, 113, 108, 117, 127, 110, 117, 128, 123, 130, 115, 127, 115, 116, 111, 118, 110, 111, 109, 106, 106, 126, 121, 123, 114, 119, 118, 108, 127, 110, 111, 130, 107, 123, 118, 102, 114, 103, 120, 127, 131, 107, 129, 111, 115, 122, 125, 110, 111, 111, 111, 107, 111, 116, 110, 113, 132, 126, 112, 100, 110, 115, 104, 113, 120, 112, 114, 113, 124, 121, 110, 114, 114, 108, 104, 114, 102, 115, 112, 124, 99, 121, 120, 111, 118, 128, 115, 110, 115, 114, 116, 114, 118, 121, 111, 116, 107, 109, 117, 106, 109, 118, 140, 126, 121, 121, 107, 117, 122, 99, 130, 129, 118, 99, 112, 115, 106, 111, 104, 103, 119, 116, 119, 103, 110, 112, 118, 103, 120, 108, 126, 118, 120, 107, 113, 123, 118, 107, 110, 109, 114, 117, 122, 124, 121, 104, 120, 118, 121, 116, 111, 108, 106, 122, 131, 105, 107, 103, 112, 117, 128, 118, 122, 116, 125, 113, 114, 121, 108, 113, 122, 117, 125, 118, 116, 112, 133, 109, 111, 118, 114, 126, 101, 112, 127, 109, 118, 113, 131, 114, 127, 111, 111, 112, 126, 118, 104, 116, 108, 107, 109, 116, 101, 109, 116, 113, 118, 117, 113, 106, 126, 117, 116, 126, 114, 109, 120, 124, 120, 116, 113, 119, 112, 115, 108, 112, 112, 117, 123, 106, 100, 115, 130, 117, 118, 109, 117, 118, 98, 113, 119, 114, 109, 112, 118, 118, 110, 110, 119, 120, 118, 83, 131, 125, 114, 120, 113, 105, 110, 115, 109, 111, 111, 111, 108, 104, 115, 105, 107, 110, 106, 115, 113, 104, 109, 115, 108, 127, 128, 114, 113, 111, 110, 111, 114, 117, 111, 118, 122, 113, 102, 107, 114, 123, 114, 111, 108, 109, 109, 112, 111, 122, 115, 116, 116, 111, 108, 131, 117, 120, 114, 118, 110, 108, 125, 122, 115, 106, 108, 119, 121, 117, 111, 115, 114, 115, 114, 101, 111, 107, 115, 109, 123, 119, 123, 115, 122, 119, 117, 108, 121, 108, 105, 116, 113, 106, 117, 118, 114, 115, 112, 118, 75, 108, 112, 118, 121, 115, 119, 113, 118, 114, 118, 112, 115, 132, 138, 113, 119, 114, 110, 111, 106, 117, 114, 113, 112, 117, 125, 112, 113, 113, 121, 83, 108, 119, 121, 109, 112, 105, 108, 121, 130, 115, 111, 118, 113, 110, 121, 123, 99, 115, 114, 121, 123, 119, 123, 107, 121, 122, 114, 112, 113, 120, 101, 119, 110, 114, 121, 96, 115, 113, 115, 113, 107, 119, 114, 138, 117, 116, 123, 112, 125, 121, 112, 116, 121, 15, 99, 103, 110, 120, 127, 118, 122, 117, 114, 108, 110, 120, 121, 95, 119, 102, 132, 125, 107, 113, 109, 119, 119, 118, 97, 107, 105, 99, 122, 121, 126, 117, 104, 119, 114, 128, 115, 118, 111, 119, 116, 112, 120, 102, 116, 115, 119, 111, 102, 115, 118, 125, 113, 115, 112, 125, 116, 108, 121, 108, 114, 123, 106, 123, 110, 116, 121, 130, 77, 106, 114, 125, 122, 112, 104, 120, 119, 114, 116, 110, 115, 135, 119, 116, 117, 106, 114, 121, 119, 109, 114, 115, 111, 114, 113, 110, 122, 124, 118, 120, 113, 111, 118, 128, 119, 121, 111, 100, 111, 130, 122, 105, 119, 115, 108, 161, 111, 119, 119, 111, 115, 113, 116, 121, 121, 121, 127, 115, 111, 121, 121, 107, 121, 121, 115, 109, 105, 115, 114, 109, 113, 109, 124, 117, 105, 116, 110, 115, 121, 118, 116, 108, 113, 123, 109, 115, 113, 116, 119, 85, 112, 106, 113, 121, 115, 105, 118, 109, 115, 112, 110, 117, 111, 126, 116, 104, 110, 141, 121, 105, 88, 116, 120, 116, 102, 118, 114, 112, 121, 114, 113, 107, 111, 124, 120, 116, 105, 123, 111, 124, 113, 106, 115, 113, 119, 113, 128, 122, 108, 119, 118, 118, 113, 117, 117, 111, 111, 127, 104, 109, 112, 106, 115, 120, 113, 117, 109, 114, 118, 108, 119, 107, 110, 112, 122, 120, 116, 128, 124, 115, 114, 116, 116, 116, 127, 126, 110, 111, 110, 124, 116, 116, 107, 106, 101, 134, 109, 122, 124, 160, 113, 112, 116, 96, 109, 121, 118, 104, 132, 124, 119, 104, 114, 118, 116, 116, 109, 118, 114, 120, 110, 117, 116, 110, 114, 116, 117, 117, 122, 96, 107, 125, 100, 132, 135, 114, 101, 129, 117, 122, 114, 114, 120, 106, 108, 120, 101, 126, 134, 101, 109, 117, 105, 109, 106, 104, 118, 107, 100, 82, 92, 114, 108, 117, 110, 119, 110, 102, 114, 129, 115, 115, 111, 116, 113, 124, 135, 113, 118, 103, 107, 112, 126, 107, 110, 97, 121, 105, 112, 122, 120, 119, 111, 126, 115, 122, 123, 130, 117, 112, 108, 126, 117, 107, 103, 113, 114, 119, 114, 102, 126, 118, 114, 112, 107, 115, 111, 89, 124, 110, 113, 99, 121, 127, 114, 113, 108, 135, 117, 102, 121, 124, 103, 112, 108, 96, 117, 108, 107, 122, 98, 101, 136, 121, 129, 109, 120, 119, 119, 137, 115, 142, 129, 130, 113, 133, 122, 106, 129, 116, 114, 124, 111, 124, 113, 127, 123, 114, 118, 106, 126, 111, 118, 127, 97, 126, 114, 111, 110, 114, 111, 122, 115, 123, 118, 125, 119, 111, 108, 114, 115, 125, 123, 121, 115, 122, 116, 117, 120, 137, 130, 122, 111, 123, 116, 97, 114, 104, 124, 125, 112, 100, 117, 98, 110, 112, 98, 117, 127, 123, 118, 117, 114, 114, 116, 113, 108, 105, 107, 127, 132, 114, 120, 103, 117, 113, 113, 116, 101, 107, 113, 134, 114, 118, 111, 107, 110, 107, 111, 101, 105, 112, 110, 109, 103, 111, 113, 118, 124, 108, 111, 114, 117, 116, 111, 130, 127, 127, 88, 106, 118, 112, 116, 124, 107, 130, 115, 103, 115, 113, 111, 96, 118, 120, 112, 115, 125, 114, 111, 134, 111, 120, 108, 111, 97, 114, 111, 122, 130, 119, 117, 104, 128, 112, 118, 119, 107, 119, 116, 119, 127, 106, 111, 122, 131, 117, 117, 111, 131, 117, 110, 114, 118, 125, 109, 124, 118, 107, 116, 118, 123, 114, 119, 126, 123, 116, 129, 129, 114, 126, 116, 134, 112, 98, 98, 133, 105, 103, 98, 110, 119, 103, 104, 125, 116, 116, 117, 132, 117, 119, 103, 121, 105, 97, 113, 106, 99, 113, 110, 105, 121, 118, 127, 111, 120, 115, 125, 111, 116, 125, 106, 128, 111, 124, 99, 127, 101, 117, 99, 109, 123, 110, 121, 124, 117, 109, 118, 103, 110, 105, 117, 103, 103, 106, 113, 126, 116, 123, 109, 110, 106, 104, 111, 116, 123, 120, 115, 105, 117, 118, 117, 125, 129, 119, 115, 118, 117, 100, 125, 114, 111, 116, 129, 110, 130, 112, 125, 106, 107, 108, 113, 107, 109, 112, 98, 107, 102, 109, 119, 112, 102, 111, 106, 103, 117, 124, 111, 96, 129, 118, 100, 108, 115, 114, 101, 132, 113, 111, 113, 125, 115, 114, 128, 110, 112, 134, 82, 101, 106, 122, 101, 110, 110, 114, 115, 129, 120, 99, 110, 121, 105, 113, 103, 114, 101, 114, 119, 110, 109, 109, 123, 103, 119, 118, 126, 112, 119, 113, 93, 110, 107, 116, 113, 113, 106, 108, 86, 99, 118, 112, 103, 107, 113, 106, 118, 128, 102, 126, 117, 112, 107, 116, 123, 116, 113, 134, 102, 108, 110, 115, 114, 107, 119, 117, 121, 107, 108, 116, 118, 120, 113, 123, 107, 112, 118, 124, 112, 119, 119, 120, 112, 111, 114, 116, 118, 120, 97, 126, 115, 115, 122, 124, 107, 119, 104, 121, 122, 118, 121, 120, 125, 112, 119, 101, 122, 115, 118, 110, 114, 114, 111, 121, 104, 113, 118, 119, 121, 106, 115, 113, 123, 118, 118, 112, 104, 118, 109, 111, 119, 117, 114, 117, 117, 115, 121, 113, 115, 118, 114, 113, 116, 109, 117, 110, 90, 120, 120, 111, 107, 122, 118, 117, 120, 125, 109, 117, 115, 114, 129, 122, 117, 120, 116, 103, 123, 110, 115, 114, 107, 123, 106, 118, 116, 116, 112, 115, 119, 119, 109, 108, 119, 109, 118, 111, 136, 118, 119, 114, 122, 115, 113, 113, 111, 113, 112, 121, 114, 112, 111, 115, 118, 107, 108, 111, 118, 102, 127, 120, 107, 115, 115, 110, 113, 103, 130, 120, 105, 107, 121, 114, 121, 109, 113, 121, 125, 111, 110, 131, 111, 108, 112, 113, 121, 108, 112, 104, 121, 116, 128, 115, 110, 108, 120, 119, 129, 109, 111, 117, 122, 160, 121, 113, 113, 109, 110, 110, 114, 112, 119, 115, 114, 119, 113, 120, 99, 111, 133, 112, 124, 123, 122, 123, 107, 117, 98, 115, 110, 122, 104, 121, 115, 120, 124, 122, 118, 113, 110, 108, 119, 112, 126, 113, 127, 129, 123, 122, 111, 116, 123, 123, 118, 127, 115, 124, 118, 119, 118, 115, 118, 121, 107, 120, 116, 106, 119, 133, 115, 111, 127, 119, 112, 113, 124, 117, 119, 107, 109, 112, 118, 110, 113, 114, 121, 111, 116, 107, 108, 124, 117, 111, 115, 112, 120, 121, 115, 121, 120, 118, 117, 108, 107, 115, 102, 118, 130, 126, 112, 123, 122, 114, 122, 129, 114, 124, 119, 116, 126, 118, 123, 131, 115, 112, 103, 116, 110, 114, 120, 112, 111, 131, 119, 119, 112, 105, 104, 106, 107, 115, 119, 130, 104, 108, 114, 111, 105, 115, 121, 109, 115, 107, 127, 118, 117, 115, 112, 114, 113, 118, 119, 120, 115, 128, 103, 112, 117, 119, 116, 134, 122, 122, 112, 108, 114, 117, 109, 120, 113, 119, 118, 118, 118, 120, 120, 105, 115, 130, 107, 109, 118, 116, 102, 104, 122, 115, 114, 114, 95, 108, 110, 123, 115, 116, 115, 111, 107, 123, 123, 118, 115, 122, 124, 127, 119, 123, 112, 114, 118, 111, 122, 115, 110, 107, 109, 110, 120, 120, 121, 113, 100, 105, 122, 122, 109, 107, 116, 110, 117, 109, 111, 114, 113, 110, 121, 114, 98, 115, 121, 112, 117, 125, 129, 117, 110, 120, 109, 130, 121, 116, 118, 119, 125, 111, 107, 113, 111, 117, 105, 113, 116, 109, 119, 115, 111, 115, 109, 121, 115, 101, 109, 115, 108, 115, 132, 113, 107, 110, 117, 116, 108, 110, 110, 118, 109, 112, 119, 123, 116, 111, 119, 122, 113, 118, 109, 105, 109, 129, 117, 118, 115, 123, 120, 109, 118, 119, 103, 113, 114, 99, 109, 119, 107, 111, 123, 101, 116, 106, 106, 115, 125, 107, 123, 118, 118, 112, 115, 117, 121, 108, 112, 100, 129, 102, 123, 111, 127, 124, 110, 112, 109, 111, 111, 115, 108, 125, 117, 116, 124, 125, 116, 120, 116, 111, 110, 106, 123, 104, 116, 116, 119, 109, 118, 120, 98, 103, 107, 109, 113, 108, 122, 114, 117, 118, 102, 114, 124, 117, 113, 123, 120, 122, 104, 109, 107, 112, 113, 113, 126, 107, 113, 120, 115, 109, 116, 104, 117, 101, 112, 108, 107, 107, 123, 122, 112, 108, 117, 112, 117, 115, 116, 119, 108, 116, 115, 113, 114, 115, 111, 118, 118, 110, 111, 108, 119, 116, 104, 116, 119, 113, 110, 106, 120, 123, 119, 112, 118, 119, 118, 120, 119, 118, 104, 119, 110, 118, 113, 117, 110, 118, 112, 121, 101, 122, 125, 118, 104, 112, 122, 118, 124, 110, 109, 113, 119, 104, 121, 118, 116, 101, 115, 121, 99, 116, 119, 120, 113, 115, 124, 100, 119, 115, 123, 111, 109, 124, 112, 120, 112, 115, 109, 111, 110, 116, 121, 118, 113, 112, 107, 108, 113, 120, 126, 113, 111, 116, 121, 112, 116, 124, 122, 116, 113, 119, 110, 113, 112, 103, 128, 112, 113, 106, 119, 111, 109, 112, 115, 108, 116, 123, 113, 115, 106, 114, 120, 109, 120, 117, 118, 113, 120, 110, 113, 109, 117, 116, 125, 120, 104, 118, 115, 116, 117, 109, 115, 113, 118, 120, 118, 106, 113, 110, 119, 109, 109, 121, 117, 115, 120, 111, 108, 114, 118, 118, 122, 118, 104, 108, 118, 112, 113, 118, 117, 116, 116, 106, 102, 115, 111, 117, 118, 108, 119, 117, 101, 131, 115, 110, 120, 123, 126, 118, 119, 108, 114, 111, 129, 118, 113, 113, 104, 111, 123, 118, 113, 111, 116, 108, 115, 122, 116, 121, 113, 115, 114, 117, 119, 110, 110, 128, 108, 108, 109, 117, 120, 117, 115, 117, 121, 110, 116, 113, 120, 111, 110, 119, 115, 103, 119, 109, 123, 111, 108, 114, 120, 130, 119, 117, 107, 119, 117, 114, 126, 107, 117, 110, 109, 115, 118, 111, 126, 132, 115, 107, 118, 113, 116, 112, 122, 118, 113, 110, 121, 119, 110, 111, 119, 121, 109, 105, 113, 114, 110, 109, 117, 111, 111, 106, 117, 108, 119, 114, 114, 112, 96, 121, 117, 119, 116, 112, 109, 116, 107, 118, 105, 117, 116, 107, 122, 112, 119, 102, 117, 111, 118, 112, 120, 117, 99, 116, 107, 116, 121, 120, 118, 116, 107, 118, 118, 112, 120, 127, 117, 119, 115, 116, 109, 114, 114, 112, 118, 121, 111, 106, 106, 110, 127, 121, 111, 117, 118, 120, 116, 127, 119, 120, 119, 115, 116, 119, 126, 115, 114, 119, 103, 121, 122, 117, 108, 113, 111, 130, 118, 102, 119, 113, 107, 113, 118, 123, 116, 113, 105, 110, 125, 114, 119, 119, 114, 118, 115, 97, 117, 116, 115, 116, 115, 128, 126, 109, 108, 107, 113, 115, 123, 109, 123, 104, 100, 128, 118, 113, 105, 122, 118, 142, 124, 130, 119, 108, 107, 110, 110, 98, 123, 118, 112, 120, 121, 111, 120, 103, 114, 105, 113, 110, 122, 108, 132, 106, 107, 107, 106, 117, 123, 114, 120, 112, 117, 115, 110, 113, 120, 117, 109, 106, 113, 123, 111, 99, 121, 114, 124, 112, 113, 118, 113, 119, 118, 118, 119, 117, 106, 108, 114, 113, 120, 128, 108, 110, 116, 103, 115, 113, 109, 116, 121, 113, 126, 107, 121, 112, 124, 105, 125, 127, 108, 120, 136, 110, 113, 109, 116, 105, 117, 122, 115, 104, 117, 116, 109, 103, 116, 117, 106, 111, 106, 123, 116, 111, 111, 113, 117, 110, 116, 104, 115, 124, 103, 124, 122, 123, 99, 103, 101, 106, 126, 115, 108, 116, 114, 112, 118, 110, 114, 109, 125, 111, 110, 120, 108, 128, 104, 120, 95, 109, 122, 117, 113, 123, 121, 105, 117, 122, 133, 112, 124, 111, 117, 97, 117, 120, 109, 122, 116, 105, 113, 133, 102, 115, 130, 130, 117, 115, 128, 105, 108, 106, 123, 107, 119, 109, 116, 114, 106, 113, 114, 107, 105, 112, 109, 103, 127, 106, 115, 112, 124, 115, 111, 95, 103, 134, 129, 110, 118, 120, 114, 130, 113, 108, 113, 101, 112, 112, 125, 111, 108, 109, 109, 119, 100, 127, 124, 125, 116, 122, 109, 121, 120, 122, 102, 124, 108, 107, 132, 111, 112, 114, 120, 117, 110, 122, 107, 118, 115, 128, 116, 125, 105, 117, 101, 124, 112, 107, 124, 117, 124, 115, 114, 121, 114, 113, 110, 100, 128, 107, 127, 116, 126, 111, 108, 105, 100, 105, 120, 120, 103, 115, 105, 116, 127, 118, 128, 123, 120, 116, 111, 124, 119, 109, 111, 107, 126, 112, 121, 109, 126, 114, 109, 109, 125, 134, 107, 120, 120, 116, 116, 116, 134, 105, 122, 114, 124, 133, 117, 117, 123, 98, 102, 108, 111, 111, 114, 110, 109, 122, 100, 118, 116, 116, 114, 109, 114, 118, 132, 109, 103, 105, 100, 113, 124, 119, 116, 112, 115, 118, 121, 117, 115, 126, 105, 125, 118, 112, 108, 105, 128, 102, 126, 107, 104, 120, 105, 99, 123, 118, 119, 114, 119, 123, 108, 122, 117, 101, 111, 112, 118, 108, 115, 112, 113, 108, 106, 124, 88, 125, 116, 117, 139, 111, 95, 105, 121, 116, 99, 116, 108, 108, 123, 114, 110, 104, 119, 129, 114, 123, 113, 101, 120, 110, 119, 112, 117, 117, 104, 115, 115, 109, 109, 122, 101, 109, 129, 96, 113, 133, 124, 103, 122, 120, 120, 119, 119, 117, 134, 105, 112, 102, 117, 124, 123, 111, 119, 122, 129, 112, 99, 112, 109, 117, 118, 122, 114, 115, 122, 130, 103, 108, 113, 118, 98, 113, 115, 115, 120, 122, 120, 106, 121, 120, 108, 114, 120, 111, 114, 107, 131, 112, 111, 117, 113, 111, 115, 115, 109, 141, 115, 113, 112, 112, 117, 118, 124, 110, 98, 125, 120, 136, 119, 113, 112, 108, 120, 119, 102, 116, 117, 106, 104, 130, 123, 107, 97, 122, 101, 110, 127, 124, 118, 100, 118, 130, 120, 125, 111, 112, 120, 125, 111, 121, 108, 123, 121, 128, 105, 97, 105, 111, 111, 121, 104, 117, 115, 121, 105, 124, 101, 126, 114, 121, 109, 114, 118, 123, 114, 120, 117, 122, 122, 131, 123, 101, 100, 107, 126, 113, 118, 112, 106, 119, 117, 109, 119, 115, 101, 101, 121, 110, 126, 123, 114, 108, 135, 117, 127, 135, 114, 132, 120, 85, 104, 103, 123, 124, 91, 126, 107, 109, 128, 102, 109, 105, 124, 100, 123, 113, 116, 118, 131, 103, 117, 101, 105, 115, 116, 124, 110, 114, 105, 101, 121, 108, 104, 124, 111, 117, 120, 99, 119, 97, 133, 97, 117, 109, 115, 104, 129, 115, 109, 112, 136, 124, 122, 102, 121, 127, 119, 100, 115, 121, 109, 122, 117, 133, 102, 116, 101, 108, 131, 117, 98, 116, 105, 127, 113, 114, 119, 106, 117, 120, 114, 139, 98, 90, 117, 124, 107, 131, 109, 130, 105, 132, 118, 116, 120, 120, 123, 118, 110, 117, 111, 119, 115, 120, 125, 113, 119, 115, 114, 121, 118, 118, 103, 107, 104, 103, 110, 118, 115, 117, 131, 117, 107, 116, 112, 115, 111, 123, 123, 120, 103, 115, 121, 100, 118, 132, 123, 123, 99, 108, 98, 121, 111, 117, 123, 117, 118, 115, 132, 109, 105, 122, 92, 96, 112, 113, 126, 117, 116, 119, 129, 118, 121, 112, 104, 111, 118, 109, 112, 117, 110, 125, 105, 108, 108, 116, 116, 110, 107, 113, 102, 118, 124, 117, 102, 119, 121, 110, 117, 104, 124, 123, 116, 120, 112, 108, 113, 110, 110, 120, 107, 109, 116, 104, 123, 131, 105, 120, 117, 120, 121, 125, 114, 119, 110, 121, 116, 112, 115, 110, 109, 109, 100, 116, 105, 109, 121, 121, 113, 113, 116, 105, 109, 111, 123, 127, 112, 110, 113, 113, 125, 116, 102, 95, 99, 125, 117, 116, 125, 101, 124, 102, 127, 124, 126, 110, 122, 105, 126, 116, 123, 114, 104, 117, 108, 117, 107, 118, 121, 118, 112, 122, 109, 115, 120, 111, 98, 109, 128, 118, 97, 107, 114, 116, 135, 129, 112, 103, 107, 115, 114, 128, 114, 119, 113, 96, 100, 122, 113, 104, 117, 114, 115, 107, 100, 127, 122, 119, 103, 122, 114, 116, 105, 109, 117, 106, 107, 105, 106, 112, 112, 119, 115, 117, 103, 131, 127, 104, 114, 121, 115, 127, 117, 114, 104, 128, 107, 113, 88, 117, 126, 115, 121, 107, 112, 107, 114, 112, 122, 120, 109, 133, 96, 123, 117, 123, 111, 115, 111, 99, 110, 107, 120, 130, 120, 103, 114, 111, 113, 100, 112, 130, 132, 127, 103, 108, 121, 98, 113, 107, 131, 101, 122, 116, 115, 132, 104, 110, 106, 110, 111, 132, 123, 112, 127, 112, 108, 105, 114, 109, 115, 110, 123, 106, 97, 111, 114, 119, 113, 114, 115, 119, 114, 111, 120, 113, 112, 111, 136, 114, 118, 105, 108, 139, 124, 110, 109, 111, 101, 131, 132, 117, 112, 121, 123, 131, 102, 125, 117, 102, 106, 114, 116, 122, 119, 103, 107, 94, 115, 120, 113, 125, 113, 122, 114, 91, 105, 120, 122, 106, 107, 113, 108, 109, 108, 116, 112, 124, 115, 97, 120, 109, 109, 120, 111, 117, 110, 125, 113, 116, 108, 120, 109, 121, 120, 112, 104, 95, 128, 122, 119, 111, 113, 105, 126, 115, 106, 105, 113, 119, 116, 110, 108, 117, 124, 120, 112, 117, 104, 113, 102, 120, 108, 117, 123, 119, 105, 122, 123, 107, 110, 113, 120, 124, 128, 107, 101, 102, 115, 110, 124, 113, 110, 104, 88, 123, 111, 113, 111, 119, 118, 114, 125, 110, 124, 113, 121, 123, 111, 125, 109, 112, 117, 121, 116, 109, 108, 112, 102, 118, 106, 120, 113, 123, 105, 97, 125, 112, 113, 104, 109, 118, 118, 103, 113, 119, 100, 116, 112, 107, 117, 121, 123, 130, 110, 105, 109, 122, 124, 111, 132, 111, 113, 112, 96, 117, 119, 100, 114, 121, 112, 109, 118, 118, 110, 114, 131, 124, 108, 116, 125, 118, 113, 129, 130, 116, 116, 119, 109, 113, 102, 125, 122, 111, 102, 110, 107, 113, 116, 112, 113, 119, 113, 114, 110, 121, 112, 103, 110, 120, 110, 114, 120, 104, 115, 106, 104, 105, 110, 120, 113, 121, 124, 125, 106, 129, 107, 111, 114, 114, 107, 118, 114, 120, 104, 109, 112, 114, 131, 117, 101, 109, 118, 121, 100, 102, 127, 101, 124, 92, 111, 122, 111, 108, 122, 116, 125, 117, 116, 104, 105, 114, 94, 123, 114, 113, 118, 118, 108, 120, 121, 110, 103, 118, 112, 128, 127, 115, 116, 123, 112, 107, 110, 123, 109, 126, 112, 117, 119, 109, 118, 128, 118, 116, 119, 112, 120, 117, 116, 108, 107, 131, 120, 123, 117, 112, 114, 115, 114, 128, 120, 104, 109, 104, 128, 119, 114, 98, 123, 118, 111, 118, 107, 107, 97, 118, 123, 108, 106, 107, 122, 110, 112, 116, 118, 110, 110, 110, 129, 121, 113, 127, 120, 115, 117, 116, 117, 106, 101, 104, 114, 103, 117, 120, 99, 109, 110, 123, 101, 106, 119, 115, 114, 131, 113, 115, 116, 128, 122, 109, 113, 133, 118, 119, 117, 117, 113, 108, 116, 102, 121, 115, 120, 114, 106, 110, 108, 119, 110, 118, 116, 116, 115, 113, 101, 118, 123, 110, 124, 112, 109, 119, 111, 122, 115, 111, 114, 133, 110, 136, 117, 118, 116, 117, 119, 104, 118, 123, 136, 112, 105, 117, 109, 116, 108, 114, 115, 116, 108, 109, 123, 124, 112, 117, 112, 107, 117, 106, 108, 111, 123, 126, 100, 120, 113, 106, 120, 114, 111, 115, 112, 112, 112, 114, 110, 124, 103, 151, 103, 95, 116, 105, 127, 117, 113, 116, 128, 111, 106, 109, 120, 119, 132, 118, 116, 123, 108, 107, 114, 109, 99, 107, 109, 104, 119, 120, 125, 115, 108, 119, 110, 125, 116, 123, 113, 106, 109, 102, 122, 101, 112, 108, 104, 108, 133, 113, 119, 112, 124, 121, 111, 113, 120, 113, 121, 120, 113, 108, 125, 110, 110, 116, 129, 115, 123, 118, 125, 130, 120, 126, 113, 112, 105, 116, 133, 115, 115, 110, 127, 119, 123, 128, 117, 104, 135, 115, 124, 104, 114, 106, 118, 109, 118, 118, 126, 114, 109, 118, 121, 113, 111, 115, 108, 105, 119, 123, 126, 118, 117, 121, 117, 107, 107, 112, 115, 113, 118, 105, 78, 106, 115, 162, 112, 102, 129, 111, 114, 128, 107, 108, 105, 116, 117, 109, 109, 117, 117, 112, 108, 116, 97, 112, 101, 115, 130, 118, 120, 118, 120, 112, 111, 114, 111, 123, 110, 109, 121, 113, 116, 115, 111, 115, 127, 109, 120, 120, 123, 115, 119, 130, 130, 112, 125, 104, 102, 106, 115, 115, 104, 141, 109, 110, 121, 130, 116, 113, 125, 114, 116, 110, 112, 118, 131, 114, 110, 123, 111, 105, 123, 126, 118, 119, 93, 105, 107, 127, 110, 122, 108, 111, 116, 108, 114, 109, 113, 113, 137, 126, 139, 108, 127, 118, 109, 116, 115, 106, 125, 116, 116, 129, 108, 124, 115, 117, 118, 115, 118, 118, 115, 107, 109, 111, 117, 118, 114, 119, 129, 117, 109, 110, 108, 123, 109, 118, 111, 103, 106, 121, 113, 115, 112, 122, 111, 117, 112, 109, 106, 140, 125, 105, 117, 118, 113, 122, 112, 113, 112, 109, 110, 113, 126, 153, 110, 133, 119, 111, 121, 103, 113, 114, 125, 120, 124, 120, 116, 122, 110, 107, 123, 127, 128, 110, 120, 113, 127, 117, 120, 128, 120, 115, 110, 114, 144, 119, 115, 113, 110, 102, 116, 118, 114, 115, 122, 116, 119, 106, 99, 108, 115, 114, 122, 111, 109, 107, 78, 40, 115, 112, 113, 117, 111, 116, 106, 112, 117, 121, 119, 121, 119, 116, 78, 102, 118, 116, 114, 91, 100, 109, 114, 115, 117, 115, 119, 122, 114, 123, 116, 114, 128, 121, 116, 113, 115, 120, 115, 116, 104, 109, 121, 122, 121, 102, 119, 112, 113, 103, 113, 114, 112, 109, 118, 109, 111, 104, 113, 105, 104, 111, 123, 112, 121, 116, 120, 117, 105, 113, 110, 125, 113, 118, 117, 109, 121, 122, 114, 108, 112, 110, 116, 109, 113, 118, 116, 116, 99, 105, 121, 113, 111, 140, 123, 112, 115, 107, 114, 117, 107, 118, 129, 124, 112, 118, 116, 113, 113, 118, 123, 125, 108, 103, 118, 115, 117, 115, 103, 114, 109, 106, 116, 119, 117, 98, 114, 112, 122, 116, 120, 120, 122, 111, 120, 111, 101, 117, 110, 119, 113, 121, 106, 105, 107, 118, 111, 128, 118, 117, 136, 118, 118, 110, 102, 129, 119, 108, 121, 116, 120, 114, 121, 113, 120, 117, 108, 128, 123, 115, 109, 121, 108, 113, 121, 111, 123, 122, 112, 114, 115, 144, 110, 125, 87, 109, 122, 119, 106, 79, 106, 112, 112, 112, 125, 113, 113, 115, 109, 102, 114, 110, 156, 118, 112, 115, 118, 114, 117, 114, 117, 117, 106, 123, 113, 101, 103, 109, 108, 124, 135, 121, 113, 116, 111, 120, 113, 114, 114, 115, 107, 112, 114, 105, 116, 113, 131, 115, 120, 114, 110, 107, 122, 116, 117, 116, 121, 112, 100, 123, 114, 124, 126, 131, 117, 118, 122, 122, 109, 125, 107, 104, 96, 118, 116, 110, 104, 116, 124, 113, 119, 101, 133, 115, 112, 119, 118, 115, 108, 127, 132, 123, 120, 118, 120, 108, 111, 115, 103, 103, 121, 110, 123, 107, 109, 106, 102, 106, 122, 125, 111, 126, 104, 108, 108, 94, 114, 113, 112, 108, 120, 109, 115, 121, 110, 119, 123, 104, 115, 120, 136, 93, 119, 122, 110, 134, 123, 108, 125, 103, 116, 124, 115, 106, 118, 121, 111, 114, 119, 117, 117, 110, 107, 123, 113, 123, 119, 108, 118, 111, 107, 125, 131, 125, 99, 104, 119, 117, 103, 123, 124, 105, 109, 115, 110, 108, 122, 105, 101, 109, 122, 115, 117, 109, 113, 122, 113, 124, 109, 116, 106, 106, 129, 109, 127, 112, 103, 113, 115, 113, 124, 107, 125, 100, 115, 121, 112, 103, 108, 126, 112, 111, 107, 121, 125, 122, 111, 111, 110, 117, 109, 99, 107, 120, 117, 131, 95, 101, 105, 100, 132, 115, 114, 108, 115, 127, 107, 111, 104, 123, 114, 121, 86, 125, 111, 124, 86, 103, 106, 116, 121, 128, 120, 94, 108, 114, 117, 116, 110, 122, 116, 119, 119, 118, 106, 129, 113, 114, 111, 115, 125, 120, 123, 114, 114, 108, 130, 116, 113, 118, 124, 121, 102, 111, 118, 120, 123, 122, 113, 126, 121, 120, 121, 114, 99, 124, 113, 119, 115, 125, 110, 118, 114, 102, 104, 119, 97, 109, 94, 106, 120, 115, 129, 133, 103, 111, 129, 117, 103, 110, 116, 108, 108, 112, 109, 107, 126, 129, 117, 112, 101, 106, 105, 106, 109, 110, 114, 118, 108, 113, 115, 117, 123, 126, 113, 110, 102, 120, 110, 109, 110, 110, 117, 123, 114, 117, 120, 111, 136, 120, 107, 116, 127, 112, 111, 122, 103, 117, 108, 113, 113, 127, 117, 119, 109, 118, 120, 119, 111, 123, 108, 126, 132, 111, 116, 112, 114, 105, 107, 119, 102, 122, 111, 114, 100, 120, 107, 109, 118, 110, 117, 105, 120, 127, 109, 115, 118, 107, 117, 122, 105, 114, 118, 117, 114, 104, 105, 112, 104, 109, 121, 112, 120, 114, 112, 128, 104, 123, 110, 121, 112, 112, 110, 123, 109, 106, 110, 116, 108, 109, 113, 108, 103, 127, 115, 118, 117, 116, 113, 115, 109, 105, 104, 115, 107, 119, 118, 101, 115, 134, 117, 121, 116, 111, 119, 124, 119, 116, 118, 106, 119, 121, 92, 121, 119, 113, 119, 115, 115, 113, 103, 115, 122, 116, 121, 116, 136, 108, 115, 109, 111, 119, 105, 116, 111, 119, 125, 115, 110, 134, 112, 120, 116, 120, 113, 110, 109, 118, 110, 114, 105, 111, 120, 97, 137, 114, 113, 118, 123, 116, 121, 118, 109, 121, 107, 118, 108, 127, 116, 116, 107, 115, 119, 111, 111, 131, 113, 120, 99, 122, 111, 112, 126, 95, 124, 114, 107, 118, 119, 104, 109, 122, 117, 106, 112, 111, 96, 120, 107, 113, 112, 108, 115, 123, 108, 112, 106, 116, 115, 113, 111, 110, 105, 110, 103, 112, 117, 112, 113, 110, 104, 111, 103, 119, 125, 120, 115, 114, 127, 127, 118, 119, 108, 117, 118, 112, 98, 118, 115, 121, 106, 116, 109, 116, 108, 116, 120, 117, 113, 107, 112, 116, 115, 118, 116, 117, 127, 111, 123, 118, 108, 114, 111, 102, 117, 122, 117, 118, 129, 127, 106, 111, 117, 103, 131, 112, 105, 127, 101, 115, 113, 111, 112, 109, 121, 110, 102, 112, 117, 116, 114, 116, 113, 111, 128, 120, 110, 114, 120, 119, 99, 98, 124, 110, 116, 114, 114, 113, 99, 131, 118, 112, 112, 118, 118, 101, 111, 125, 101, 114, 103, 115, 125, 116, 112, 117, 119, 121, 111, 104, 129, 115, 113, 116, 109, 112, 117, 113, 104, 108, 110, 137, 118, 114, 116, 113, 113, 120, 110, 119, 118, 124, 119, 121, 135, 121, 115, 105, 115, 118, 120, 120, 122, 124, 113, 107, 103, 119, 121, 107, 110, 108, 119, 106, 123, 110, 117, 111, 115, 116, 120, 109, 114, 116, 109, 104, 125, 110, 108, 123, 103, 108, 113, 105, 111, 120, 126, 114, 111, 116, 112, 119, 119, 109, 111, 100, 121, 100, 101, 114, 105, 103, 114, 123, 126, 100, 112, 126, 101, 120, 100, 124, 124, 109, 125, 116, 110, 107, 118, 121, 121, 122, 118, 117, 92, 109, 125, 131, 127, 125, 111, 110, 115, 102, 126, 102, 124, 127, 117, 119, 126, 116, 105, 117, 111, 125, 124, 129, 112, 112, 115, 105, 123, 109, 113, 106, 113, 103, 99, 110, 111, 100, 114, 105, 125, 116, 112, 116, 104, 93, 107, 129, 117, 117, 122, 111, 113, 129, 102, 124, 119, 107, 104, 122, 107, 116, 107, 115, 97, 110, 108, 120, 111, 112, 117, 121, 128, 125, 116, 123, 117, 116, 112, 116, 112, 113, 120, 109, 117, 123, 103, 134, 108, 104, 116, 122, 116, 111, 115, 108, 113, 132, 110, 120, 107, 120, 111, 113, 116, 120, 110, 119, 136, 112, 113, 115, 101, 131, 128, 112, 113, 126, 117, 111, 111, 115, 112, 110, 99, 115, 117, 124, 114, 114, 128, 117, 105, 117, 128, 105, 110, 119, 113, 125, 116, 117, 113, 118, 112, 115, 115, 115, 119, 123, 111, 121, 99, 106, 120, 106, 119, 121, 116, 117, 115, 123, 104, 112, 107, 125, 115, 113, 113, 110, 124, 105, 125, 118, 115, 107, 116, 121, 116, 107, 123, 99, 113, 127, 113, 109, 123, 92, 135, 117, 117, 111, 120, 113, 115, 118, 117, 99, 118, 120, 106, 114, 112, 107, 110, 106, 117, 120, 125, 110, 123, 117, 127, 114, 114, 133, 121, 108, 121, 120, 101, 114, 117, 107, 118, 95, 111, 115, 103, 107, 103, 117, 121, 117, 116, 114, 118, 105, 119, 115, 110, 112, 122, 126, 107, 112, 124, 112, 108, 122, 113, 118, 130, 111, 132, 113, 116, 113, 138, 104, 96, 108, 125, 130, 112, 117, 124, 97, 118, 113, 114, 110, 130, 108, 105, 108, 116, 107, 117, 108, 111, 112, 102, 106, 118, 123, 106, 108, 109, 117, 106, 113, 113, 120, 108, 110, 104, 130, 110, 111, 121, 118, 108, 108, 99, 108, 129, 131, 122, 115, 118, 111, 110, 118, 117, 111, 122, 116, 125, 131, 108, 120, 119, 109, 113, 122, 121, 113, 114, 114, 94, 117, 98, 121, 112, 120, 106, 121, 108, 106, 123, 123, 115, 137, 116, 116, 98, 110, 110, 127, 119, 112, 107, 105, 118, 101, 125, 119, 113, 117, 112, 124, 124, 112, 115, 106, 111, 118, 122, 118, 110, 109, 103, 128, 124, 120, 117, 109, 117, 127, 129, 118, 119, 106, 118, 120, 114, 102, 115, 108, 100, 119, 112, 120, 103, 115, 107, 117, 113, 116, 131, 111, 127, 119, 116, 114, 111, 120, 116, 122, 110, 119, 98, 128, 116, 121, 111, 112, 120, 97, 102, 117, 112, 103, 134, 117, 123, 120, 121, 113, 109, 111, 122, 119, 108, 113, 111, 106, 107, 109, 111, 108, 117, 115, 117, 120, 115, 113, 119, 115, 120, 126, 110, 104, 111, 114, 108, 112, 109, 108, 124, 112, 108, 102, 118, 110, 128, 104, 130, 118, 125, 101, 118, 114, 119, 108, 94, 128, 114, 131, 115, 113, 107, 116, 125, 99, 96, 117, 120, 110, 112, 120, 109, 112, 113, 114, 122, 113, 112, 114, 117, 113, 103, 119, 117, 117, 106, 119, 113, 119, 115, 105, 105, 114, 110, 120, 122, 114, 115, 135, 117, 118, 128, 110, 119, 108, 118, 126, 107, 107, 113, 137, 133, 110, 113, 123, 112, 118, 125, 115, 103, 96, 130, 137, 118, 112, 103, 114, 105, 96, 111, 117, 106, 113, 121, 133, 107, 109, 111, 115, 119, 112, 107, 108, 110, 114, 120, 109, 123, 115, 108, 111, 104, 132, 104, 116, 117, 110, 111, 119, 118, 112, 114, 119, 121, 109, 115, 125, 110, 118, 108, 127, 111, 105, 121, 131, 106, 116, 117, 111, 112, 115, 125, 115, 116, 102, 125, 98, 106, 107, 112, 118, 110, 121, 130, 108, 126, 108, 115, 116, 114, 118, 118, 116, 114, 125, 127, 118, 112, 119, 117, 123, 110, 110, 126, 113, 115, 117, 122, 122, 117, 114, 143, 117, 111, 120, 118, 110, 127, 110, 130, 102, 105, 106, 113, 115, 103, 129, 112, 102, 121, 120, 110, 107, 105, 107, 104, 132, 114, 118, 118, 115, 119, 109, 114, 116, 112, 128, 122, 109, 115, 114, 117, 111, 134, 127, 117, 103, 122, 129, 113, 102, 115, 109, 121, 116, 112, 110, 106, 116, 123, 115, 114, 111, 115, 120, 117, 112, 124, 125, 114, 111, 116, 112, 110, 101, 106, 119, 115, 124, 115, 114, 120, 123, 106, 107, 114, 116, 104, 116, 117, 125, 107, 114, 105, 109, 104, 109, 110, 127, 109, 115, 119, 112, 107, 107, 110, 108, 105, 125, 114, 103, 122, 122, 112, 118, 107, 120, 101, 112, 113, 112, 128, 115, 122, 117, 124, 126, 93, 125, 116, 114, 116, 108, 113, 112, 126, 110, 106, 104, 124, 118, 120, 116, 116, 115, 112, 111, 124, 115, 125, 104, 108, 109, 113, 125, 124, 98, 114, 116, 110, 125, 121, 107, 109, 109, 119, 114, 110, 110, 113, 103, 123, 113, 118, 111, 110, 105, 124, 114, 108, 102, 123, 121, 114, 105, 110, 111, 114, 116, 106, 122, 115, 123, 118, 107, 116, 105, 114, 120, 113, 96, 113, 132, 119, 103, 122, 112, 114, 106, 121, 119, 105, 104, 113, 114, 82, 118, 107, 116, 116, 118, 108, 119, 114, 136, 118, 116, 110, 128, 107, 118, 108, 103, 120, 116, 114, 113, 131, 112, 138, 103, 121, 112, 111, 101, 116, 120, 116, 102, 110, 126, 121, 126, 116, 102, 139, 100, 117, 110, 109, 123, 111, 110, 115, 110, 123, 109, 114, 119, 119, 119, 122, 119, 119, 111, 108, 110, 119, 109, 111, 119, 117, 113, 116, 102, 111, 110, 114, 121, 128, 103, 118, 103, 114, 123, 126, 109, 127, 132, 123, 121, 122, 111, 106, 122, 108, 127, 129, 114, 101, 124, 110, 105, 114, 118, 113, 123, 114, 102, 114, 120, 127, 107, 100, 111, 107, 123, 114, 122, 110, 89, 106, 112, 113, 112, 106, 105, 106, 113, 119, 128, 126, 118, 114, 109, 104, 101, 124, 108, 104, 116, 110, 126, 120, 112, 116, 115, 98, 111, 107, 112, 117, 117, 114, 118, 108, 120, 108, 118, 106, 113, 120, 117, 113, 112, 110, 110, 118, 113, 116, 119, 125, 120, 127, 118, 127, 121, 120, 118, 120, 118, 116, 113, 122, 124, 120, 106, 96, 126, 112, 118, 101, 108, 114, 108, 116, 99, 119, 114, 107, 109, 122, 119, 120, 106, 108, 101, 109, 107, 120, 103, 103, 103, 113, 105, 123, 112, 123, 118, 115, 117, 113, 115, 111, 104, 105, 121, 114, 116, 115, 119, 118, 112, 127, 102, 112, 122, 118, 111, 107, 123, 128, 118, 124, 121, 129, 113, 116, 110, 104, 120, 107, 122, 122, 105, 99, 92, 123, 107, 109, 127, 125, 121, 114, 111, 108, 103, 105, 119, 116, 109, 106, 113, 116, 103, 109, 116, 99, 120, 103, 119, 116, 116, 118, 110, 115, 108, 103, 110, 111, 133, 99, 116, 119, 115, 101, 111, 115, 101, 122, 120, 121, 121, 109, 121, 106, 110, 107, 109, 119, 125, 117, 116, 97, 112, 116, 132, 122, 118, 120, 112, 125, 122, 124, 103, 123, 111, 112, 109, 132, 111, 127, 118, 133, 108, 117, 118, 118, 118, 122, 110, 118, 122, 112, 112, 136, 123, 110, 118, 124, 123, 110, 109, 118, 108, 124, 121, 122, 116, 119, 103, 114, 115, 120, 133, 127, 119, 113, 129, 121, 110, 109, 109, 108, 106, 124, 115, 126, 123, 116, 115, 120, 118, 115, 109, 121, 129, 103, 117, 129, 114, 112, 100, 102, 106, 101, 94, 111, 129, 114, 105, 118, 115, 121, 122, 109, 115, 131, 121, 115, 109, 104, 128, 115, 130, 102, 109, 113, 119, 118, 116, 122, 109, 116, 110, 122, 119, 106, 140, 120, 104, 119, 107, 104, 108, 103, 114, 113, 115, 120, 106, 114, 106, 96, 132, 111, 113, 116, 107, 109, 114, 116, 117, 117, 104, 128, 107, 108, 106, 117, 118, 115, 121, 118, 123, 111, 112, 121, 124, 115, 115, 112, 122, 110, 116, 109, 122, 111, 108, 120, 110, 109, 118, 114, 117, 115, 115, 118, 114, 118, 100, 124, 128, 114, 117, 113, 116, 108, 120, 108, 106, 109, 102, 123, 110, 116, 99, 115, 103, 108, 110, 116, 121, 115, 114, 113, 116, 114, 118, 113, 113, 117, 97, 107, 126, 120, 112, 120, 123, 108, 129, 106, 117, 112, 129, 121, 114, 98, 107, 127, 115, 119, 105, 113, 115, 120, 112, 123, 116, 121, 113, 123, 107, 113, 99, 115, 120, 113, 122, 112, 108, 105, 109, 118, 105, 121, 102, 114, 113, 125, 117, 123, 117, 121, 121, 125, 109, 123, 120, 109, 118, 106, 109, 117, 111, 112, 117, 110, 113, 117, 107, 111, 108, 112, 109, 117, 114, 120, 111, 131, 111, 113, 114, 107, 121, 117, 111, 117, 121, 105, 108, 116, 117, 109, 129, 104, 106, 107, 118, 118, 119, 106, 117, 101, 116, 112, 114, 116, 120, 105, 118, 116, 115, 102, 106, 116, 107, 105, 128, 118, 124, 111, 121, 122, 117, 115, 116, 122, 111, 111, 120, 129, 109, 101, 118, 119, 107, 124, 115, 131, 118, 110, 119, 105, 108, 112, 114, 103, 118, 110, 113, 125, 114, 118, 121, 116, 108, 123, 118, 121, 116, 126, 116, 130, 121, 112, 117, 119, 108, 118, 101, 122, 114, 116, 131, 120, 117, 124, 114, 101, 106, 111, 115, 100, 115, 117, 115, 113, 126, 113, 122, 102, 104, 110, 114, 119, 127, 121, 109, 111, 106, 116, 118, 102, 110, 119, 119, 113, 118, 109, 116, 116, 124, 112, 122, 119, 113, 104, 112, 111, 109, 108, 116, 119, 119, 117, 109, 122, 122, 113, 113, 113, 113, 120, 111, 128, 111, 111, 110, 112, 114, 107, 102, 118, 103, 119, 115, 114, 93, 114, 109, 124, 114, 117, 107, 112, 120, 126, 114, 117, 115, 117, 115, 126, 120, 103, 116, 122, 104, 123, 109, 123, 114, 111, 114, 110, 107, 108, 118, 101, 111, 126, 113, 120, 93, 118, 115, 124, 126, 121, 114, 121, 117, 111, 112, 119, 118, 112, 111, 114, 113, 123, 121, 124, 122, 114, 112, 120, 126, 123, 107, 108, 113, 120, 115, 122, 111, 111, 110, 115, 118, 114, 104, 122, 111, 118, 105, 111, 128, 112, 123, 133, 114, 118, 130, 119, 110, 111, 119, 106, 110, 105, 124, 112, 118, 121, 113, 113, 122, 115, 120, 107, 114, 111, 113, 99, 129, 111, 122, 134, 129, 115, 115, 122, 121, 125, 126, 122, 114, 108, 112, 120, 117, 116, 119, 114, 116, 125, 123, 108, 102, 110, 126, 114, 121, 117, 106, 103, 118, 116, 111, 111, 114, 110, 124, 112, 119, 107, 104, 107, 130, 112, 119, 119, 117, 114, 106, 113, 124, 123, 121, 109, 104, 122, 113, 119, 110, 115, 123, 115, 111, 120, 115, 109, 114, 110, 123, 112, 110, 115, 110, 119, 106, 111, 128, 113, 125, 95, 117, 95, 118, 109, 115, 129, 104, 110, 118, 106, 109, 120, 119, 106, 102, 117, 118, 117, 119, 104, 116, 108, 113, 104, 106, 120, 126, 113, 114, 111, 99, 116, 116, 121, 109, 129, 116, 120, 109, 122, 120, 117, 102, 118, 114, 118, 109, 102, 122, 123, 119, 115, 115, 118, 115, 112, 100, 116, 120, 110, 101, 112, 132, 115, 124, 116, 121, 111, 134, 116, 116, 118, 115, 125, 116, 123, 110, 107, 120, 99, 119, 110, 112, 115, 120, 101, 120, 127, 115, 119, 115, 117, 124, 125, 97, 115, 115, 111, 118, 115, 107, 116, 111, 122, 110, 126, 115, 119, 104, 118, 114, 105, 104, 113, 124, 113, 120, 119, 109, 102, 114, 114, 111, 116, 106, 114, 128, 120, 115, 119, 121, 121, 115, 112, 114, 127, 118, 107, 120, 119, 118, 116, 126, 111, 116, 123, 111, 114, 118, 121, 118, 114, 109, 106, 112, 121, 115, 115, 115, 122, 114, 126, 114, 108, 127, 112, 122, 113, 120, 113, 121, 109, 128, 120, 104, 113, 125, 116, 112, 111, 113, 118, 110, 110, 115, 102, 109, 112, 112, 107, 108, 118, 108, 106, 134, 115, 119, 125, 113, 113, 118, 121, 118, 110, 114, 115, 118, 115, 111, 123, 111, 119, 114, 124, 114, 106, 111, 114, 114, 121, 113, 103, 119, 112, 109, 109, 106, 129, 110, 112, 124, 115, 112, 120, 118, 121, 119, 122, 111, 115, 98, 109, 118, 129, 106, 99, 116, 127, 102, 122, 111, 113, 116, 132, 111, 120, 108, 116, 119, 126, 117, 112, 109, 113, 119, 103, 113, 123, 119, 110, 103, 122, 113, 105, 116, 116, 116, 109, 108, 118, 107, 116, 114, 111, 101, 111, 101, 117, 115, 110, 104, 127, 124, 116, 110, 110, 96, 113, 116, 118, 115, 107, 121, 125, 106, 121, 128, 114, 103, 135, 118, 129, 125, 108, 116, 120, 123, 111, 114, 108, 122, 107, 117, 103, 109, 130, 103, 106, 109, 110, 113, 116, 117, 122, 128, 115, 122, 128, 118, 109, 121, 113, 101, 105, 117, 114, 105, 111, 119, 121, 101, 112, 121, 118, 117, 107, 118, 124, 116, 122, 110, 117, 107, 106, 101, 129, 115, 114, 102, 112, 120, 120, 108, 108, 126, 115, 114, 113, 113, 106, 111, 116, 119, 108, 113, 115, 132, 99, 126, 119, 116, 105, 105, 116, 119, 106, 113, 119, 120, 98, 120, 114, 135, 107, 113, 96, 116, 104, 110, 123, 122, 114, 125, 108, 118, 118, 119, 114, 117, 118, 107, 105, 114, 107, 114, 116, 116, 118, 120, 111, 111, 110, 116, 99, 107, 124, 132, 125, 118, 109, 124, 110, 109, 111, 131, 128, 103, 100, 132, 111, 111, 121, 121, 105, 113, 118, 117, 108, 122, 117, 127, 116, 119, 140, 105, 116, 117, 112, 128, 118, 109, 105, 116, 117, 120, 120, 116, 125, 120, 129, 117, 110, 122, 112, 111, 117, 107, 128, 113, 118, 111, 112, 100, 113, 102, 123, 120, 119, 127, 109, 101, 131, 118, 121, 112, 140, 112, 112, 123, 105, 121, 110, 108, 117, 117, 118, 108, 121, 118, 116, 118, 112, 115, 117, 126, 108, 115, 120, 118, 111, 114, 111, 127, 111, 105, 145, 119, 106, 121, 102, 112, 101, 115, 117, 128, 123, 116, 126, 128, 110, 119, 123, 119, 115, 114, 101, 125, 99, 107, 121, 124, 120, 121, 134, 104, 119, 105, 128, 104, 113, 109, 102, 103, 121, 114, 112, 111, 108, 114, 120, 109, 128, 115, 114, 125, 122, 115, 118, 112, 104, 121, 93, 135, 119, 130, 100, 110, 117, 125, 111, 118, 117, 103, 122, 109, 118, 121, 123, 121, 111, 105, 117, 104, 98, 115, 121, 108, 112, 108, 121, 117, 109, 120, 110, 113, 100, 126, 126, 123, 126, 119, 113, 123, 110, 113, 113, 114, 109, 122, 113, 120, 117, 112, 108, 110, 101, 107, 119, 127, 121, 118, 120, 108, 109, 118, 109, 113, 122, 114, 123, 115, 120, 135, 108, 121, 113, 114, 114, 101, 122, 113, 118, 120, 119, 111, 123, 119, 119, 112, 106, 121, 106, 128, 123, 118, 109, 115, 112, 110, 112, 104, 122, 116, 121, 117, 123, 122, 115, 124, 113, 123, 118, 110, 122, 108, 125, 118, 105, 122, 111, 113, 114, 121, 117, 110, 120, 123, 97, 117, 125, 114, 114, 124, 116, 109, 108, 120, 110, 131, 113, 151, 121, 119, 90, 119, 105, 119, 110, 122, 118, 126, 118, 137, 131, 120, 116, 117, 104, 115, 116, 125, 110, 111, 117, 120, 115, 116, 94, 116, 127, 111, 112, 126, 114, 123, 116, 112, 106, 103, 120, 118, 112, 120, 119, 116, 126, 118, 118, 94, 103, 118, 117, 107, 107, 111, 114, 135, 115, 118, 119, 117, 123, 122, 122, 117, 115, 115, 89, 111, 122, 128, 112, 108, 125, 112, 111, 109, 106, 111, 119, 126, 121, 118, 102, 129, 126, 117, 115, 115, 133, 117, 120, 125, 115, 125, 114, 104, 106, 126, 113, 120, 118, 125, 138, 113, 109, 111, 120, 97, 115, 108, 121, 106, 99, 126, 128, 114, 120, 116, 125, 117, 105, 97, 115, 126, 112, 89, 104, 122, 105, 122, 106, 127, 121, 117, 123, 120, 111, 102, 109, 110, 111, 112, 104, 110, 104, 107, 106, 124, 118, 128, 115, 118, 114, 117, 116, 112, 120, 127, 118, 117, 106, 112, 129, 127, 101, 111, 119, 124, 107, 108, 123, 121, 108, 117, 119, 115, 119, 104, 110, 115, 108, 123, 125, 126, 106, 112, 140, 122, 114, 107, 129, 105, 108, 86, 110, 111, 120, 111, 107, 97, 108, 100, 126, 103, 114, 122, 107, 106, 121, 111, 116, 104, 118, 126, 122, 111, 113, 116, 120, 117, 134, 126, 120, 112, 116, 119, 118, 116, 99, 115, 119, 105, 110, 115, 133, 122, 113, 118, 114, 114, 119, 123, 121, 114, 107, 106, 106, 110, 92, 110, 116, 118, 112, 140, 98, 117, 114, 114, 110, 111, 124, 108, 119, 150, 97, 128, 110, 127, 99, 121, 103, 116, 124, 105, 111, 117, 124, 134, 101, 109, 116, 120, 116, 107, 108, 118, 121, 109, 116, 119, 118, 118, 112, 108, 116, 112, 112, 118, 117, 121, 109, 117, 118, 112, 121, 120, 117, 112, 115, 118, 106, 111, 113, 111, 114, 117, 118, 111, 99, 107, 119, 107, 116, 118, 114, 114, 114, 115, 111, 123, 112, 112, 111, 116, 118, 129, 106, 105, 120, 110, 110, 115, 106, 116, 107, 110, 122, 117, 115, 111, 118, 125, 113, 115, 118, 125, 123, 125, 116, 114, 126, 118, 110, 124, 116, 121, 122, 103, 101, 113, 120, 104, 106, 106, 122, 118, 114, 115, 124, 122, 108, 113, 120, 119, 119, 114, 115, 113, 127, 112, 125, 104, 104, 114, 113, 119, 121, 109, 126, 119, 121, 115, 111, 112, 123, 114, 122, 117, 116, 96, 114, 123, 106, 108, 105, 117, 112, 119, 103, 126, 109, 109, 113, 112, 115, 115, 103, 114, 114, 114, 114, 110, 117, 115, 116, 118, 120, 120, 119, 117, 119, 121, 117, 119, 118, 106, 112, 113, 118, 115, 116, 109, 119, 109, 119, 112, 118, 124, 120, 119, 116, 120, 110, 113, 111, 118, 110, 122, 114, 104, 116, 123, 118, 116, 117, 110, 112, 122, 119, 117, 112, 118, 118, 121, 111, 114, 119, 115, 112, 115, 110, 112, 113, 116, 114, 111, 122, 113, 109, 114, 115, 119, 109, 120, 115, 118, 107, 117, 116, 121, 115, 118, 118, 117, 116, 104, 118, 117, 105, 116, 118, 115, 115, 126, 114, 112, 117, 115, 106, 114, 122, 114, 114, 117, 114, 114, 116, 121, 116, 120, 114, 113, 111, 115, 115, 122, 114, 117, 120, 130, 117, 117, 118, 115, 114, 113, 117, 113, 111, 104, 115, 110, 126, 119, 115, 113, 119, 114, 123, 108, 118, 119, 112, 118, 112, 117, 116, 105, 112, 112, 122, 111, 120, 118, 118, 105, 118, 121, 114, 111, 122, 101, 104, 127, 116, 115, 125, 110, 115, 123, 111, 114, 114, 114, 118, 120, 117, 109, 110, 115, 114, 120, 112, 109, 105, 120, 119, 117, 116, 125, 111, 114, 113, 113, 117, 102, 119, 117, 116, 122, 114, 105, 115, 123, 124, 122, 105, 110, 118, 123, 114, 115, 121, 113, 118, 122, 112, 114, 111, 112, 116, 119, 117, 117, 111, 113, 122, 107, 109, 110, 110, 119, 117, 115, 124, 117, 120, 119, 109, 115, 109, 121, 112, 116, 122, 111, 114, 113, 123, 109, 114, 118, 124, 111, 115, 113, 118, 122, 114, 119, 114, 118, 116, 107, 117, 114, 113, 117, 117, 114, 123, 111, 115, 120, 112, 119, 115, 115, 122, 114, 117, 116, 113, 111, 122, 111, 109, 113, 129, 113, 115, 109, 108, 111, 119, 119, 110, 116, 115, 109, 108, 116, 116, 118, 113, 107, 114, 117, 123, 121, 111, 108, 107, 119, 123, 122, 117, 120, 118, 107, 119, 106, 114, 125, 109, 118, 100, 109, 115, 113, 116, 113, 113, 117, 114, 119, 112, 121, 119, 117, 122, 112, 113, 109, 111, 118, 104, 118, 114, 117, 117, 118, 112, 119, 117, 112, 108, 112, 120, 115, 116, 112, 120, 127, 117, 116, 115, 116, 128, 116, 126, 113, 122, 131, 113, 99, 108, 135, 117, 107, 108, 114, 132, 111, 128, 112, 106, 118, 112, 122, 118, 108, 111, 114, 110, 100, 129, 113, 118, 112, 119, 123, 118, 120, 112, 108, 118, 111, 121, 114, 125, 116, 124, 110, 108, 117, 104, 102, 116, 116, 131, 108, 108, 134, 116, 109, 118, 116, 123, 125, 129, 107, 105, 118, 112, 106, 116, 124, 119, 122, 110, 121, 124, 104, 102, 120, 102, 100, 116, 107, 117, 102, 112, 133, 132, 117, 113, 117, 124, 111, 109, 115, 113, 117, 115, 120, 107, 98, 114, 111, 108, 115, 108, 116, 139, 120, 114, 112, 116, 88, 119, 102, 119, 127, 114, 120, 116, 105, 112, 128, 121, 117, 108, 113, 118, 105, 122, 124, 113, 114, 127, 111, 109, 109, 106, 110, 116, 120, 119, 99, 110, 120, 108, 123, 116, 119, 107, 119, 117, 113, 119, 113, 109, 113, 112, 133, 110, 116, 115, 117, 107, 126, 117, 119, 120, 124, 114, 113, 113, 126, 101, 112, 123, 119, 113, 112, 120, 121, 110, 103, 108, 119, 118, 105, 115, 112, 122, 115, 116, 112, 122, 110, 108, 121, 114, 124, 106, 117, 112, 111, 110, 112, 114, 116, 107, 106, 115, 106, 113, 116, 108, 121, 124, 118, 108, 105, 110, 107, 123, 119, 108, 121, 104, 122, 113, 120, 108, 121, 106, 107, 109, 107, 112, 101, 111, 117, 108, 109, 124, 108, 114, 114, 121, 117, 100, 97, 128, 110, 121, 129, 114, 96, 110, 114, 118, 115, 118, 125, 107, 127, 110, 121, 105, 113, 119, 112, 127, 107, 123, 112, 115, 119, 112, 135, 110, 105, 127, 94, 120, 114, 120, 108, 120, 106, 105, 121, 100, 123, 116, 133, 109, 124, 125, 115, 111, 116, 119, 109, 111, 103, 124, 109, 112, 115, 134, 98, 94, 120, 121, 131, 117, 121, 102, 106, 117, 119, 121, 120, 115, 128, 111, 132, 112, 120, 106, 117, 124, 105, 113, 93, 117, 92, 100, 104, 115, 118, 115, 110, 124, 110, 110, 133, 117, 98, 113, 113, 126, 125, 120, 119, 119, 122, 110, 118, 106, 114, 115, 129, 122, 116, 108, 121, 102, 125, 97, 122, 121, 111, 117, 121, 111, 110, 115, 117, 105, 117, 107, 115, 117, 111, 117, 121, 118, 105, 126, 114, 136, 125, 121, 118, 111, 104, 119, 108, 102, 115, 100, 116, 120, 117, 156, 152, 110, 105, 104, 114, 116, 125, 121, 117, 116, 102, 114, 104, 114, 111, 114, 111, 126, 119, 120, 117, 116, 109, 119, 112, 106, 99, 112, 112, 110, 109, 114, 115, 124, 106, 105, 108, 116, 118, 108, 118, 109, 126, 119, 114, 111, 107, 109, 120, 118, 107, 117, 116, 100, 117, 117, 110, 113, 104, 98, 112, 110, 126, 123, 112, 103, 104, 114, 94, 123, 114, 114, 115, 117, 119, 121, 115, 99, 117, 106, 116, 120, 108, 116, 105, 120, 138, 112, 115, 107, 106, 109, 116, 122, 119, 119, 113, 121, 101, 124, 111, 119, 117, 116, 112, 109, 105, 107, 115, 126, 109, 115, 116, 120, 110, 118, 105, 113, 117, 114, 117, 111, 102, 115, 119, 115, 115, 116, 121, 110, 120, 114, 114, 106, 119, 112, 115, 116, 111, 120, 108, 114, 108, 109, 112, 120, 114, 105, 117, 114, 118, 111, 125, 115, 111, 114, 107, 116, 113, 116, 110, 107, 115, 120, 113, 123, 108, 112, 114, 116, 108, 108, 124, 128, 129, 116, 125, 120, 108, 117, 114, 124, 113, 111, 114, 126, 107, 117, 110, 111, 116, 114, 125, 108, 116, 117, 119, 106, 120, 120, 108, 118, 109, 116, 107, 113, 122, 106, 116, 115, 120, 114, 120, 113, 118, 103, 112, 112, 117, 125, 112, 120, 117, 123, 106, 115, 117, 111, 115, 118, 114, 124, 121, 114, 115, 110, 114, 128, 117, 114, 119, 114, 115, 127, 109, 121, 121, 112, 112, 116, 109, 122, 115, 115, 111, 112, 119, 110, 105, 117, 122, 125, 118, 117, 121, 118, 114, 119, 117, 125, 120, 114, 128, 117, 114, 113, 121, 112, 106, 113, 121, 113, 115, 111, 132, 118, 109, 103, 113, 128, 121, 104, 126, 113, 116, 121, 113, 119, 111, 107, 123, 118, 103, 119, 114, 119, 114, 112, 120, 121, 122, 124, 110, 122, 111, 119, 115, 121, 109, 107, 109, 110, 106, 108, 123, 127, 121, 120, 118, 116, 118, 125, 116, 121, 114, 112, 115, 118, 117, 120, 120, 119, 116, 122, 113, 112, 107, 121, 128, 122, 117, 106, 117, 128, 115, 120, 114, 106, 109, 114, 122, 121, 111, 119, 112, 114, 116, 123, 114, 121, 116, 128, 113, 118, 110, 104, 115, 113, 108, 116, 116, 106, 110, 112, 120, 119, 107, 116, 121, 115, 117, 113, 109, 112, 128, 114, 119, 117, 119, 115, 110, 122, 110, 116, 114, 128, 128, 112, 114, 112, 125, 117, 123, 121, 115, 108, 122, 113, 111, 115, 117, 103, 111, 117, 120, 122, 118, 116, 107, 119, 131, 114, 109, 117, 107, 117, 125, 119, 111, 121, 121, 117, 122, 121, 109, 118, 122, 117, 127, 105, 107, 127, 111, 117, 120, 109, 116, 118, 110, 113, 119, 108, 111, 121, 121, 120, 107, 112, 118, 127, 122, 109, 120, 106, 110, 122, 108, 121, 104, 107, 121, 109, 115, 110, 104, 123, 119, 104, 117, 120, 107, 123, 133, 114, 104, 114, 110, 122, 114, 111, 115, 103, 111, 116, 114, 117, 123, 125, 117, 119, 108, 110, 118, 116, 118, 111, 117, 120, 113, 110, 123, 115, 107, 122, 122, 128, 109, 112, 113, 121, 114, 113, 115, 120, 121, 110, 113, 110, 110, 125, 120, 109, 103, 106, 124, 110, 120, 126, 115, 125, 121, 117, 112, 117, 103, 125, 123, 121, 113, 110, 116, 122, 107, 113, 117, 120, 130, 108, 117, 109, 120, 121, 118, 125, 110, 123, 113, 114, 124, 120, 116, 115, 121, 110, 112, 113, 111, 111, 96, 127, 114, 117, 115, 109, 112, 114, 113, 113, 110, 122, 114, 120, 114, 120, 112, 109, 118, 115, 115, 115, 114, 126, 110, 121, 99, 119, 107, 110, 118, 117, 123, 108, 122, 115, 113, 126, 115, 115, 112, 112, 105, 110, 96, 106, 117, 113, 122, 120, 109, 119, 108, 119, 98, 117, 114, 119, 109, 121, 125, 103, 118, 110, 112, 115, 110, 107, 120, 105, 123, 116, 103, 118, 122, 110, 119, 128, 111, 109, 123, 127, 115, 117, 114, 123, 107, 106, 136, 109, 113, 115, 112, 102, 118, 111, 103, 129, 125, 124, 111, 113, 126, 109, 115, 119, 119, 108, 115, 116, 107, 117, 108, 118, 105, 113, 99, 130, 114, 114, 106, 107, 110, 103, 119, 117, 103, 114, 125, 117, 103, 113, 112, 120, 107, 113, 120, 114, 114, 108, 111, 107, 105, 123, 103, 110, 114, 118, 110, 105, 105, 114, 104, 114, 116, 109, 108, 114, 93, 121, 112, 113, 104, 111, 112, 113, 123, 114, 117, 110, 133, 117, 123, 123, 108, 102, 136, 119, 115, 120, 109, 99, 124, 121, 115, 125, 118, 110, 114, 140, 113, 114, 126, 104, 105, 115, 128, 117, 125, 124, 109, 114, 119, 105, 98, 127, 119, 122, 109, 107, 118, 109, 128, 110, 121, 118, 127, 99, 113, 111, 118, 104, 114, 110, 118, 121, 112, 99, 123, 116, 111, 120, 110, 111, 107, 111, 123, 113, 126, 117, 125, 120, 108, 108, 123, 119, 120, 107, 109, 109, 114, 109, 102, 96, 107, 110, 103, 108, 121, 107, 125, 118, 113, 108, 102, 120, 106, 113, 111, 108, 109, 118, 113, 127, 118, 122, 110, 123, 124, 114, 104, 110, 122, 132, 118, 116, 129, 128, 108, 118, 114, 133, 115, 114, 112, 108, 123, 111, 108, 110, 106, 110, 115, 109, 120, 115, 115, 106, 123, 125, 115, 127, 117, 107, 113, 120, 104, 125, 102, 117, 122, 113, 122, 109, 110, 108, 116, 126, 110, 115, 123, 95, 117, 108, 108, 120, 108, 117, 113, 101, 113, 135, 120, 117, 112, 114, 122, 113, 108, 132, 108, 111, 106, 119, 102, 110, 109, 115, 106, 103, 106, 111, 110, 114, 124, 121, 115, 108, 106, 119, 112, 101, 127, 118, 109, 116, 111, 126, 116, 103, 121, 108, 107, 109, 119, 116, 115, 107, 112, 115, 109, 115, 124, 104, 124, 108, 121, 117, 111, 122, 110, 118, 114, 129, 112, 117, 113, 103, 104, 118, 116, 110, 103, 108, 111, 107, 108, 115, 125, 106, 107, 111, 124, 125, 125, 111, 118, 115, 118, 109, 117, 121, 111, 129, 119, 104, 115, 113, 128, 107, 115, 117, 137, 130, 105, 128, 108, 121, 125, 117, 115, 119, 110, 120, 121, 96, 114, 110, 117, 129, 129, 124, 107, 120, 115, 110, 117, 121, 113, 111, 97, 102, 123, 112, 125, 125, 113, 119, 117, 119, 112, 117, 113, 116, 111, 123, 122, 110, 125, 116, 115, 122, 124, 121, 134, 111, 115, 122, 112, 132, 113, 130, 118, 117, 111, 113, 116, 115, 123, 113, 115, 113, 131, 127, 117, 120, 116, 121, 121, 115, 108, 109, 120, 114, 114, 110, 103, 118, 121, 110, 111, 108, 107, 109, 110, 105, 101, 118, 126, 115, 111, 116, 115, 106, 120, 103, 114, 110, 127, 96, 116, 125, 97, 111, 117, 130, 113, 109, 118, 109, 127, 108, 89, 108, 107, 107, 119, 104, 110, 97, 114, 105, 123, 135, 108, 109, 120, 118, 120, 104, 108, 100, 115, 106, 100, 126, 113, 122, 116, 108, 111, 125, 114, 117, 110, 123, 114, 134, 130, 111, 106, 123, 112, 106, 134, 116, 121, 130, 115, 115, 121, 119, 113, 125, 107, 109, 103, 110, 99, 114, 118, 120, 121, 107, 117, 110, 122, 123, 126, 121, 109, 118, 100, 114, 116, 107, 112, 129, 96, 123, 116, 113, 109, 115, 108, 117, 121, 116, 123, 120, 99, 122, 119, 109, 107, 112, 108, 127, 121, 121, 113, 102, 109, 117, 115, 124, 115, 128, 123, 104, 115, 112, 113, 122, 112, 111, 129, 103, 135, 109, 106, 117, 112, 105, 119, 121, 136, 116, 109, 121, 106, 115, 127, 104, 109, 93, 110, 102, 102, 119, 107, 118, 121, 121, 133, 127, 110, 120, 121, 99, 133, 121, 116, 115, 122, 114, 112, 126, 109, 116, 121, 107, 118, 121, 116, 133, 120, 102, 122, 121, 119, 106, 107, 109, 103, 105, 140, 100, 100, 129, 111, 112, 116, 128, 124, 106, 103, 112, 108, 127, 120, 124, 120, 129, 112, 118, 113, 109, 125, 112, 109, 118, 98, 115, 116, 100, 115, 112, 134, 123, 128, 111, 120, 114, 138, 117, 104, 114, 102, 125, 118, 126, 104, 113, 112, 121, 120, 97, 116, 119, 104, 109, 106, 110, 108, 115, 117, 112, 120, 102, 110, 106, 115, 116, 125, 105, 109, 103, 123, 113, 117, 113, 114, 126, 113, 118, 98, 112, 88, 119, 137, 106, 146, 111, 94, 121, 113, 110, 110, 104, 121, 127, 103, 119, 130, 104, 128, 135, 111, 111, 127, 111, 94, 124, 127, 111, 116, 119, 135, 115, 114, 127, 132, 120, 121, 105, 130, 109, 90, 117, 111, 112, 104, 99, 98, 129, 104, 121, 120, 119, 114, 124, 142, 121, 120, 120, 116, 105, 117, 114, 105, 104, 118, 121, 116, 117, 121, 112, 121, 100, 122, 110, 117, 138, 124, 105, 131, 104, 101, 114, 127, 122, 103, 124, 108, 110, 113, 103, 127, 117, 100, 127, 101, 95, 116, 112, 116, 116, 111, 120, 129, 126, 109, 142, 115, 114, 118, 101, 112, 114, 112, 112, 107, 112, 119, 98, 113, 122, 102, 114, 123, 107, 113, 112, 106, 101, 111, 96, 119, 93, 130, 107, 112, 127, 107, 116, 105, 120, 114, 116, 111, 104, 128, 117, 122, 118, 122, 114, 109, 97, 106, 119, 108, 109, 123, 105, 102, 120, 106, 111, 122, 122, 136, 120, 104, 110, 96, 122, 109, 110, 105, 118, 94, 115, 129, 114, 104, 113, 132, 114, 130, 107, 126, 97, 111, 105, 101, 120, 110, 112, 110, 116, 123, 111, 102, 105, 124, 121, 120, 117, 113, 118, 114, 127, 127, 108, 112, 116, 109, 118, 117, 106, 120, 103, 114, 97, 133, 122, 99, 128, 122, 108, 112, 113, 121, 117, 119, 99, 121, 106, 124, 111, 114, 113, 117, 117, 121, 106, 115, 110, 122, 109, 113, 119, 114, 112, 120, 115, 116, 105, 126, 113, 121, 122, 114, 105, 97, 113, 117, 115, 111, 105, 113, 115, 115, 113, 110, 114, 116, 132, 115, 116, 118, 125, 117, 106, 113, 120, 107, 121, 114, 126, 113, 112, 120, 112, 123, 121, 107, 128, 117, 124, 113, 117, 107, 114, 126, 110, 110, 117, 115, 117, 103, 106, 119, 123, 118, 118, 119, 113, 118, 115, 113, 109, 105, 112, 117, 118, 103, 123, 122, 129, 117, 109, 122, 118, 109, 106, 116, 118, 114, 106, 113, 107, 118, 98, 110, 119, 135, 125, 111, 121, 117, 120, 116, 113, 110, 127, 111, 124, 113, 114, 126, 128, 113, 98, 111, 114, 106, 116, 110, 116, 109, 116, 115, 125, 121, 127, 120, 105, 116, 106, 117, 122, 119, 106, 113, 110, 108, 109, 115, 113, 112, 108, 110, 122, 111, 128, 116, 136, 113, 107, 109, 107, 103, 120, 112, 111, 117, 114, 114, 110, 116, 108, 122, 121, 119, 124, 117, 117, 100, 106, 108, 115, 113, 128, 112, 116, 107, 115, 109, 120, 115, 112, 116, 116, 109, 113, 117, 121, 115, 123, 111, 116, 112, 100, 116, 106, 102, 110, 115, 113, 109, 118, 113, 114, 110, 118, 114, 126, 113, 120, 123, 115, 105, 120, 114, 116, 115, 117, 108, 109, 106, 110, 106, 115, 121, 119, 119, 120, 117, 110, 111, 122, 104, 125, 116, 115, 113, 124, 122, 118, 114, 119, 113, 112, 107, 106, 123, 129, 110, 120, 120, 112, 109, 112, 120, 133, 112, 117, 126, 120, 118, 110, 111, 121, 112, 122, 110, 111, 124, 108, 126, 112, 108, 110, 126, 116, 117, 113, 122, 123, 117, 123, 121, 112, 120, 103, 121, 125, 125, 119, 122, 118, 112, 122, 119, 108, 101, 116, 113, 119, 115, 107, 115, 100, 117, 121, 119, 112, 115, 115, 120, 110, 116, 105, 117, 121, 114, 115, 116, 113, 120, 127, 125, 115, 106, 110, 116, 111, 114, 114, 121, 125, 114, 115, 114, 109, 108, 121, 131, 109, 127, 116, 107, 117, 114, 127, 115, 101, 124, 119, 117, 113, 124, 114, 122, 122, 106, 110, 111, 112, 128, 109, 115, 120, 125, 113, 120, 117, 109, 107, 124, 112, 121, 113, 122, 122, 125, 126, 114, 112, 105, 121, 106, 116, 116, 112, 116, 106, 119, 118, 121, 118, 111, 117, 108, 114, 106, 96, 117, 118, 121, 101, 120, 113, 114, 132, 110, 98, 110, 113, 123, 112, 114, 115, 113, 119, 123, 121, 118, 117, 114, 115, 111, 123, 115, 115, 113, 105, 106, 122, 119, 130, 126, 113, 124, 109, 122, 103, 112, 122, 116, 115, 110, 118, 122, 111, 113, 126, 125, 126, 130, 119, 120, 127, 110, 113, 119, 115, 115, 115, 116, 124, 112, 118, 116, 108, 118, 116, 128, 116, 110, 113, 117, 111, 120, 99, 111, 116, 105, 116, 119, 110, 113, 127, 114, 116, 119, 117, 120, 121, 115, 111, 116, 124, 112, 114, 133, 114, 113, 129, 106, 122, 116, 107, 125, 111, 120, 120, 117, 125, 116, 112, 130, 123, 112, 83, 122, 114, 111, 106, 115, 124, 116, 119, 123, 118, 117, 119, 120, 119, 119, 104, 117, 109, 118, 118, 105, 117, 117, 124, 123, 132, 108, 108, 124, 109, 126, 111, 120, 112, 136, 124, 116, 116, 113, 116, 122, 117, 125, 118, 123, 118, 109, 119, 114, 110, 112, 123, 117, 109, 126, 121, 116, 111, 132, 74, 110, 126, 98, 115, 118, 102, 128, 118, 113, 121, 130, 126, 129, 109, 141, 115, 110, 107, 127, 114, 122, 117, 120, 111, 109, 113, 121, 106, 121, 113, 121, 106, 116, 129, 124, 124, 111, 116, 115, 118, 120, 124, 114, 104, 104, 117, 106, 113, 119, 115, 121, 108, 113, 103, 116, 120, 91, 115, 131, 110, 95, 115, 114, 122, 105, 122, 115, 124, 119, 116, 124, 121, 114, 111, 116, 113, 115, 121, 121, 105, 110, 111, 89, 127, 114, 113, 125, 112, 111, 115, 119, 120, 96, 116, 118, 111, 117, 105, 109, 114, 119, 121, 116, 117, 115, 117, 129, 102, 114, 116, 98, 117, 117, 111, 104, 115, 115, 122, 116, 111, 125, 129, 116, 120, 114, 121, 115, 117, 109, 103, 116, 114, 117, 133, 111, 126, 113, 128, 126, 114, 118, 124, 119, 117, 113, 113, 128, 128, 113, 121, 111, 108, 107, 111, 116, 102, 117, 113, 120, 117, 123, 123, 97, 128, 96, 114, 116, 95, 113, 115, 121, 109, 111, 106, 124, 120, 117, 114, 118, 119, 110, 103, 109, 117, 114, 116, 112, 110, 112, 117, 125, 116, 124, 91, 111, 107, 112, 112, 120, 86, 118, 116, 124, 121, 121, 116, 128, 115, 113, 117, 120, 122, 113, 115, 116, 130, 116, 118, 125, 112, 132, 120, 122, 115, 109, 121, 122, 111, 123, 116, 112, 121, 120, 110, 119, 123, 111, 126, 110, 118, 98, 117, 118, 124, 106, 114, 117, 124, 118, 120, 119, 115, 116, 117, 117, 109, 116, 111, 114, 129, 115, 119, 106, 126, 126, 121, 150, 108, 114, 128, 115, 117, 111, 129, 111, 128, 119, 150, 122, 111, 114, 116, 118, 124, 105, 118, 125, 111, 113, 124, 118, 108, 114, 117, 105, 108, 116, 111, 112, 103, 104, 111, 123, 125, 118, 114, 121, 115, 119, 121, 86, 113, 120, 125, 122, 112, 120, 105, 119, 115, 111, 112, 115, 113, 118, 117, 120, 104, 121, 122, 123, 115, 108, 117, 119, 114, 110, 114, 108, 114, 112, 126, 126, 112, 120, 115, 123, 110, 117, 122, 112, 114, 134, 115, 112, 124, 110, 117, 119, 120, 118, 117, 119, 118, 104, 119, 122, 116, 124, 118, 113, 121, 124, 115, 116, 105, 121, 113, 119, 120, 120, 117, 110, 115, 103, 116, 117, 115, 109, 121, 115, 117, 113, 122, 108, 113, 114, 113, 103, 118, 126, 120, 111, 119, 115, 118, 126, 122, 112, 116, 112, 104, 121, 115, 111, 121, 117, 127, 114, 120, 109, 109, 116, 111, 111, 119, 121, 116, 123, 119, 116, 113, 117, 122, 119, 122, 120, 125, 109, 108, 116, 122, 114, 109, 117, 119, 109, 110, 116, 116, 107, 107, 105, 118, 115, 109, 120, 122, 108, 111, 94, 118, 115, 110, 118, 115, 121, 118, 116, 131, 123, 116, 103, 105, 114, 101, 116, 130, 114, 115, 127, 114, 134, 120, 110, 113, 131, 121, 110, 112, 122, 120, 115, 124, 116, 121, 128, 131, 120, 107, 118, 110, 100, 121, 120, 117, 118, 117, 110, 120, 116, 108, 104, 113, 98, 113, 114, 101, 94, 112, 119, 115, 113, 112, 112, 119, 82, 106, 121, 114, 127, 107, 116, 113, 128, 106, 113, 119, 118, 129, 100, 107, 119, 106, 122, 98, 110, 126, 118, 121, 110, 118, 115, 105, 113, 113, 103, 116, 110, 125, 115, 124, 114, 97, 129, 116, 122, 97, 119, 111, 119, 111, 92, 116, 118, 114, 119, 111, 115, 113, 117, 116, 106, 121, 133, 116, 106, 114, 102, 115, 117, 106, 127, 120, 92, 115, 108, 108, 114, 110, 112, 107, 114, 112, 105, 120, 121, 119, 104, 100, 117, 114, 116, 109, 120, 114, 102, 118, 117, 107, 122, 116, 113, 118, 114, 118, 110, 115, 117, 115, 122, 119, 119, 103, 121, 112, 107, 114, 110, 118, 105, 112, 126, 114, 116, 117, 118, 124, 123, 106, 111, 119, 120, 104, 124, 116, 123, 116, 113, 119, 103, 116, 112, 117, 122, 116, 120, 133, 112, 134, 132, 115, 117, 127, 108, 93, 104, 115, 127, 103, 123, 122, 108, 126, 111, 118, 117, 107, 128, 115, 119, 112, 116, 110, 103, 114, 122, 119, 115, 106, 141, 119, 116, 118, 112, 102, 113, 108, 109, 116, 127, 106, 117, 110, 119, 118, 116, 113, 115, 117, 116, 107, 116, 115, 112, 116, 141, 146, 122, 117, 113, 117, 124, 127, 107, 110, 118, 128, 110, 120, 135, 127, 120, 149, 123, 114, 114, 107, 108, 123, 111, 123, 116, 111, 107, 122, 111, 122, 117, 116, 118, 107, 112, 105, 117, 110, 112, 106, 125, 109, 96, 110, 113, 113, 121, 117, 106, 112, 105, 114, 106, 116, 116, 134, 112, 112, 116, 120, 117, 110, 113, 123, 108, 108, 121, 111, 110, 120, 122, 114, 114, 119, 125, 114, 112, 114, 113, 130, 118, 117, 130, 126, 121, 123, 106, 106, 119, 119, 121, 119, 116, 117, 94, 122, 127, 119, 125, 114, 108, 91, 126, 116, 121, 122, 115, 123, 122, 114, 111, 109, 118, 114, 131, 117, 92, 107, 118, 111, 126, 121, 122, 113, 126, 115, 112, 116, 111, 123, 115, 124, 109, 109, 118, 116, 105, 122, 107, 109, 114, 111, 141, 115, 111, 97, 117, 115, 100, 112, 115, 110, 118, 114, 115, 112, 124, 113, 122, 117, 117, 122, 121, 112, 106, 115, 110, 102, 119, 103, 111, 120, 119, 120, 116, 123, 113, 105, 106, 112, 121, 113, 108, 123, 124, 129, 114, 115, 115, 114, 145, 118, 107, 114, 125, 120, 107, 124, 113, 109, 113, 121, 115, 106, 114, 103, 119, 121, 116, 113, 123, 120, 107, 114, 117, 116, 97, 112, 109, 113, 122, 109, 115, 115, 122, 117, 111, 131, 119, 111, 116, 111, 115, 119, 102, 103, 116, 119, 114, 118, 122, 117, 113, 127, 114, 128, 117, 112, 115, 107, 125, 110, 120, 111, 116, 119, 117, 124, 112, 119, 107, 117, 112, 122, 119, 118, 123, 115, 121, 132, 128, 119, 105, 111, 131, 119, 102, 120, 127, 124, 98, 119, 109, 115, 117, 100, 108, 122, 124, 101, 108, 125, 125, 123, 116, 111, 104, 119, 104, 113, 117, 122, 109, 111, 108, 118, 112, 121, 126, 117, 121, 121, 112, 120, 129, 106, 120, 113, 115, 114, 103, 116, 112, 115, 114, 118, 114, 118, 115, 111, 107, 115, 119, 118, 115, 118, 115, 116, 120, 125, 106, 114, 115, 111, 124, 122, 123, 121, 119, 126, 109, 107, 110, 112, 128, 129, 104, 119, 109, 109, 111, 106, 131, 107, 119, 119, 116, 101, 113, 118, 114, 99, 131, 107, 123, 120, 122, 122, 114, 136, 118, 120, 120, 113, 125, 115, 115, 109, 115, 100, 115, 124, 116, 116, 114, 125, 111, 102, 112, 138, 120, 104, 114, 102, 109, 118, 111, 118, 120, 117, 116, 114, 117, 120, 103, 122, 119, 110, 113, 123, 116, 138, 128, 120, 118, 107, 115, 120, 121, 115, 121, 112, 115, 114, 121, 115, 122, 120, 127, 113, 106, 108, 122, 117, 108, 107, 112, 115, 121, 119, 112, 124, 115, 110, 109, 106, 120, 117, 117, 110, 117, 116, 110, 112, 106, 122, 129, 125, 118, 114, 117, 124, 117, 124, 108, 124, 115, 113, 120, 111, 120, 122, 122, 114, 123, 117, 114, 108, 123, 113, 114, 117, 130, 129, 123, 113, 110, 110, 115, 106, 111, 118, 112, 115, 108, 136, 114, 122, 116, 105, 100, 102, 123, 111, 124, 121, 107, 117, 121, 111, 114, 110, 120, 111, 110, 116, 110, 119, 108, 108, 99, 120, 113, 128, 125, 108, 118, 122, 107, 118, 111, 103, 114, 117, 119, 116, 113, 119, 120, 128, 129, 112, 117, 119, 117, 123, 113, 126, 107, 122, 106, 118, 125, 105, 122, 107, 103, 115, 104, 120, 121, 123, 99, 132, 121, 113, 108, 109, 114, 119, 123, 125, 119, 119, 125, 113, 125, 101, 120, 121, 113, 112, 94, 116, 113, 122, 110, 125, 123, 109, 126, 117, 113, 104, 126, 114, 99, 124, 111, 116, 106, 113, 117, 111, 110, 114, 118, 126, 108, 115, 111, 124, 119, 110, 124, 125, 109, 109, 109, 113, 107, 118, 104, 112, 113, 118, 125, 116, 112, 102, 116, 117, 120, 122, 110, 103, 117, 121, 127, 102, 111, 117, 113, 119, 103, 125, 112, 124, 110, 109, 103, 122, 113, 113, 120, 128, 119, 116, 113, 105, 111, 122, 113, 112, 111, 115, 108, 124, 108, 111, 110, 122, 122, 104, 110, 109, 111, 114, 110, 127, 110, 115, 118, 113, 122, 125, 113, 108, 108, 117, 113, 109, 103, 111, 107, 118, 106, 107, 110, 120, 122, 118, 118, 119, 110, 115, 121, 112, 116, 117, 129, 104, 110, 120, 114, 109, 106, 108, 109, 124, 109, 120, 121, 118, 97, 117, 107, 127, 116, 113, 108, 103, 126, 121, 120, 106, 112, 97, 127, 121, 120, 112, 104, 112, 112, 110, 116, 123, 123, 114, 123, 101, 107, 100, 125, 112, 127, 114, 108, 125, 119, 127, 128, 111, 89, 116, 124, 118, 109, 109, 120, 116, 114, 119, 117, 112, 106, 120, 116, 117, 112, 126, 126, 111, 119, 127, 119, 111, 122, 124, 118, 102, 92, 110, 116, 111, 93, 102, 105, 115, 107, 118, 117, 131, 114, 121, 119, 105, 110, 112, 115, 124, 140, 99, 112, 115, 88, 113, 119, 116, 108, 113, 108, 119, 95, 116, 116, 123, 127, 109, 121, 123, 110, 123, 116, 117, 112, 124, 119, 101, 114, 114, 105, 125, 111, 128, 120, 111, 124, 99, 116, 107, 111, 119, 131, 134, 111, 117, 95, 104, 114, 117, 124, 105, 116, 121, 118, 123, 116, 130, 110, 103, 103, 116, 114, 116, 122, 105, 126, 108, 96, 110, 108, 137, 113, 109, 113, 109, 116, 112, 99, 118, 111, 118, 123, 119, 114, 120, 110, 110, 115, 111, 99, 109, 124, 104, 110, 104, 132, 126, 116, 128, 110, 112, 117, 107, 111, 95, 109, 106, 105, 106, 112, 117, 105, 113, 109, 111, 123, 103, 109, 121, 123, 135, 120, 111, 130, 113, 113, 99, 99, 106, 113, 119, 113, 137, 117, 121, 109, 107, 99, 110, 125, 112, 112, 111, 122, 122, 122, 98, 121, 114, 114, 122, 124, 94, 116, 104, 119, 115, 127, 117, 122, 140, 121, 105, 118, 115, 115, 129, 118, 120, 125, 118, 124, 135, 118, 104, 124, 122, 120, 98, 129, 109, 130, 122, 105, 115, 130, 121, 117, 120, 117, 113, 124, 103, 121, 115, 117, 124, 118, 117, 107, 89, 84, 104, 120, 133, 119, 105, 122, 121, 118, 121, 120, 116, 103, 115, 115, 101, 118, 97, 108, 114, 118, 124, 100, 122, 101, 103, 130, 102, 106, 113, 107, 119, 111, 119, 114, 115, 116, 124, 120, 120, 102, 119, 122, 131, 118, 115, 121, 119, 117, 121, 98, 106, 95, 121, 103, 138, 104, 126, 113, 119, 109, 98, 112, 116, 115, 108, 109, 115, 102, 111, 114, 127, 111, 97, 128, 99, 121, 117, 114, 124, 117, 110, 121, 122, 114, 113, 113, 133, 113, 119, 125, 121, 109, 112, 96, 113, 120, 103, 117, 114, 108, 128, 105, 114, 122, 118, 114, 117, 129, 109, 116, 120, 110, 113, 114, 118, 111, 109, 115, 108, 114, 94, 113, 114, 124, 124, 115, 113, 112, 119, 126, 121, 122, 114, 108, 114, 135, 99, 123, 118, 126, 122, 114, 125, 132, 112, 107, 121, 99, 107, 126, 122, 124, 97, 106, 117, 137, 105, 123, 120, 133, 113, 107, 129, 105, 114, 123, 101, 125, 107, 105, 102, 124, 118, 122, 116, 117, 132, 125, 122, 122, 115, 105, 112, 110, 100, 111, 114, 92, 125, 120, 119, 117, 105, 108, 108, 105, 126, 125, 112, 117, 130, 114, 141, 125, 106, 110, 111, 119, 124, 109, 128, 104, 125, 112, 122, 102, 111, 113, 117, 117, 101, 116, 112, 127, 107, 112, 117, 137, 108, 115, 115, 111, 118, 126, 127, 116, 112, 114, 123, 111, 117, 113, 107, 100, 113, 113, 111, 123, 128, 104, 101, 111, 115, 102, 122, 125, 108, 127, 102, 117, 113, 131, 110, 114, 106, 124, 105, 100, 127, 116, 121, 125, 120, 122, 115, 110, 114, 113, 108, 116, 101, 106, 113, 111, 118, 114, 118, 114, 117, 126, 129, 116, 114, 125, 126, 115, 117, 113, 113, 108, 122, 111, 119, 112, 113, 120, 120, 105, 120, 105, 115, 109, 126, 116, 115, 113, 102, 112, 103, 106, 123, 116, 116, 97, 126, 107, 115, 110, 115, 121, 101, 110, 116, 118, 112, 120, 111, 126, 116, 124, 114, 117, 116, 113, 108, 129, 99, 115, 99, 118, 113, 125, 122, 115, 129, 117, 108, 118, 108, 111, 120, 112, 110, 118, 115, 116, 116, 105, 123, 106, 105, 119, 104, 114, 113, 119, 118, 125, 123, 92, 110, 134, 111, 92, 99, 130, 119, 118, 119, 104, 117, 114, 127, 108, 118, 117, 128, 119, 108, 123, 106, 112, 115, 107, 119, 120, 110, 118, 127, 105, 112, 108, 124, 125, 112, 116, 91, 115, 112, 107, 121, 111, 111, 110, 118, 112, 111, 117, 116, 103, 116, 124, 107, 125, 112, 117, 102, 100, 121, 120, 119, 117, 117, 112, 114, 115, 120, 115, 102, 123, 108, 114, 125, 116, 117, 116, 116, 115, 110, 119, 114, 116, 106, 122, 120, 109, 121, 123, 98, 113, 121, 129, 116, 115, 111, 123, 122, 110, 112, 120, 117, 123, 119, 127, 110, 111, 127, 114, 121, 111, 109, 104, 113, 117, 122, 122, 127, 124, 117, 116, 122, 109, 112, 102, 112, 97, 128, 112, 111, 128, 112, 127, 109, 104, 128, 108, 116, 122, 107, 112, 131, 107, 107, 117, 115, 113, 116, 99, 102, 104, 111, 130, 109, 109, 117, 100, 112, 119, 110, 112, 113, 116, 118, 117, 126, 105, 119, 112, 111, 112, 114, 124, 112, 111, 115, 114, 130, 104, 117, 116, 97, 100, 123, 122, 121, 133, 122, 111, 110, 101, 118, 119, 96, 111, 119, 111, 115, 123, 109, 123, 123, 109, 116, 95, 115, 104, 110, 111, 114, 107, 110, 105, 107, 122, 113, 115, 116, 111, 117, 117, 124, 129, 113, 123, 112, 119, 111, 121, 115, 102, 122, 102, 106, 106, 111, 119, 117, 109, 120, 108, 116, 117, 128, 107, 115, 116, 118, 110, 104, 115, 113, 124, 111, 110, 125, 119, 123, 106, 109, 106, 112, 107, 113, 102, 111, 115, 111, 111, 108, 110, 135, 113, 117, 108, 127, 110, 107, 123, 105, 112, 112, 119, 125, 113, 128, 116, 117, 110, 132, 107, 121, 117, 119, 112, 118, 113, 109, 109, 109, 121, 103, 101, 120, 114, 118, 118, 108, 105, 123, 119, 109, 113, 124, 118, 116, 117, 112, 115, 119, 129, 115, 124, 108, 121, 101, 122, 105, 108, 113, 110, 118, 104, 115, 138, 109, 122, 122, 116, 122, 118, 115, 109, 114, 128, 107, 110, 121, 96, 113, 126, 114, 124, 115, 118, 102, 108, 107, 118, 115, 108, 103, 118, 124, 121, 120, 121, 102, 115, 126, 112, 100, 113, 108, 120, 123, 109, 130, 115, 114, 101, 113, 115, 117, 119, 121, 106, 105, 111, 122, 127, 110, 126, 132, 120, 121, 114, 113, 114, 125, 104, 120, 117, 120, 122, 116, 102, 108, 119, 118, 129, 106, 111, 120, 127, 117, 118, 107, 108, 99, 123, 130, 111, 117, 122, 120, 112, 107, 101, 113, 119, 113, 120, 128, 106, 122, 128, 115, 122, 118, 108, 114, 113, 118, 118, 112, 105, 110, 126, 110, 127, 132, 114, 110, 111, 105, 106, 117, 118, 121, 111, 112, 108, 121, 110, 89, 114, 117, 102, 121, 120, 98, 102, 120, 117, 117, 121, 107, 112, 123, 129, 121, 112, 118, 112, 106, 114, 113, 119, 105, 120, 116, 110, 117, 99, 97, 117, 111, 124, 112, 111, 118, 115, 124, 114, 112, 113, 125, 120, 105, 115, 121, 111, 124, 111, 114, 122, 114, 119, 108, 112, 117, 118, 115, 110, 118, 111, 123, 119, 106, 105, 117, 120, 119, 123, 120, 121, 96, 120, 115, 100, 127, 120, 115, 112, 108, 105, 118, 124, 111, 93, 111, 105, 128, 119, 137, 110, 118, 113, 110, 100, 104, 108, 121, 111, 112, 116, 110, 108, 123, 115, 106, 121, 111, 108, 107, 121, 102, 109, 113, 120, 106, 117, 116, 126, 111, 101, 119, 123, 113, 111, 100, 104, 119, 105, 103, 99, 112, 117, 117, 120, 132, 120, 116, 116, 111, 119, 117, 134, 122, 123, 122, 116, 111, 111, 116, 122, 124, 124, 120, 119, 115, 111, 114, 125, 109, 113, 123, 102, 117, 110, 123, 127, 116, 112, 112, 118, 111, 110, 101, 110, 112, 99, 95, 114, 123, 107, 121, 121, 106, 107, 129, 119, 122, 114, 107, 109, 117, 137, 109, 120, 108, 107, 116, 114, 108, 128, 135, 108, 91, 115, 107, 112, 121, 115, 120, 115, 112, 122, 126, 119, 111, 122, 105, 109, 115, 115, 108, 103, 116, 117, 116, 119, 80, 117, 113, 118, 125, 129, 113, 124, 132, 127, 118, 116, 122, 115, 101, 114, 118, 122, 108, 112, 122, 118, 115, 114, 123, 134, 106, 116, 128, 133, 98, 114, 107, 118, 114, 124, 113, 122, 103, 127, 114, 121, 116, 116, 102, 108, 115, 105, 111, 126, 111, 124, 117, 129, 116, 115, 113, 140, 123, 134, 119, 112, 106, 121, 104, 116, 126, 110, 110, 128, 107, 118, 107, 122, 122, 123, 109, 95, 101, 109, 126, 105, 117, 116, 121, 116, 118, 109, 122, 112, 122, 116, 120, 105, 132, 123, 111, 112, 126, 87, 126, 126, 130, 112, 114, 113, 103, 108, 118, 118, 116, 117, 103, 121, 114, 110, 122, 123, 120, 107, 101, 106, 113, 103, 127, 128, 118, 108, 112, 125, 115, 111, 108, 106, 101, 93, 118, 108, 121, 118, 116, 111, 125, 120, 123, 108, 121, 106, 104, 113, 123, 110, 108, 106, 113, 106, 116, 118, 111, 116, 108, 110, 110, 119, 118, 112, 115, 93, 107, 112, 100, 118, 119, 112, 128, 114, 109, 122, 112, 107, 115, 110, 122, 117, 116, 111, 127, 122, 116, 96, 128, 106, 125, 98, 135, 128, 98, 114, 109, 124, 116, 112, 106, 114, 124, 130, 113, 129, 92, 97, 113, 124, 135, 113, 111, 103, 108, 107, 99, 105, 104, 104, 108, 116, 118, 122, 127, 99, 114, 115, 123, 120, 114, 123, 107, 120, 106, 93, 129, 124, 139, 115, 102, 119, 122, 116, 118, 116, 119, 112, 115, 117, 108, 113, 105, 115, 106, 115, 119, 94, 125, 128, 131, 108, 115, 121, 113, 109, 118, 112, 115, 104, 112, 123, 91, 110, 100, 124, 117, 120, 132, 111, 105, 118, 105, 99, 116, 124, 111, 115, 122, 122, 121, 127, 133, 121, 122, 131, 130, 95, 116, 100, 110, 103, 116, 121, 112, 105, 132, 107, 108, 105, 104, 117, 116, 109, 127, 117, 112, 110, 95, 92, 134, 120, 114, 103, 120, 106, 115, 115, 118, 126, 105, 114, 100, 125, 94, 113, 88, 98, 109, 116, 117, 131, 114, 119, 104, 132, 132, 110, 103, 110, 98, 116, 116, 120, 124, 102, 116, 108, 101, 123, 114, 123, 121, 109, 111, 121, 116, 119, 116, 114, 96, 121, 109, 112, 101, 128, 104, 87, 117, 120, 117, 109, 117, 125, 121, 122, 116, 122, 103, 108, 108, 137, 120, 101, 112, 119, 122, 109, 122, 130, 117, 120, 120, 110, 103, 133, 124, 114, 135, 109, 116, 116, 109, 118, 103, 111, 131, 112, 128, 109, 120, 105, 110, 97, 107, 114, 105, 113, 102, 97, 123, 108, 119, 125, 114, 124, 107, 120, 118, 114, 105, 100, 97, 100, 131, 115, 110, 134, 130, 117, 123, 118, 117, 107, 119, 108, 97, 119, 114, 124, 112, 123, 125, 129, 114, 98, 118, 105, 115, 121, 116, 115, 117, 123, 110, 111, 106, 117, 103, 108, 106, 112, 98, 108, 114, 115, 107, 123, 121, 125, 124, 98, 130, 111, 129, 111, 121, 110, 94, 113, 105, 117, 108, 100, 135, 115, 120, 111, 114, 95, 99, 122, 148, 108, 100, 104, 121, 121, 111, 122, 118, 99, 126, 136, 123, 109, 93, 116, 104, 118, 104, 117, 114, 119, 118, 115, 102, 115, 116, 104, 119, 119, 96, 114, 135, 120, 120, 114, 110, 94, 110, 121, 119, 108, 132, 102, 117, 114, 94, 87, 130, 114, 121, 103, 110, 119, 119, 113, 123, 126, 103, 125, 117, 135, 110, 111, 116, 114, 135, 108, 124, 113, 134, 106, 109, 127, 126, 100, 119, 115, 114, 108, 140, 98, 103, 102, 125, 120, 123, 114, 133, 141, 120, 126, 125, 109, 120, 105, 102, 119, 111, 112, 111, 106, 132, 121, 122, 121, 89, 120, 121, 129, 104, 136, 107, 112, 112, 120, 116, 108, 102, 118, 112, 108, 116, 128, 113, 136, 110, 99, 115, 120, 129, 122, 131, 146, 124, 100, 110, 113, 108, 112, 106, 117, 111, 115, 101, 127, 129, 110, 120, 117, 119, 121, 122, 114, 117, 125, 111, 110, 103, 114, 111, 111, 113, 95, 109, 133, 107, 115, 124, 103, 116, 93, 120, 137, 116, 121, 126, 104, 103, 108, 93, 119, 121, 111, 109, 118, 125, 111, 119, 110, 127, 136, 122, 121, 127, 108, 120, 115, 126, 114, 109, 121, 108, 93, 112, 110, 120, 122, 117, 105, 96, 119, 101, 130, 118, 107, 108, 108, 105, 121, 108, 105, 132, 119, 111, 112, 120, 110, 111, 123, 109, 119, 112, 119, 128, 117, 111, 135, 110, 112, 99, 139, 115, 112, 121, 119, 100, 107, 112, 126, 119, 111, 124, 124, 114, 114, 121, 107, 123, 103, 113, 117, 122, 119, 108, 129, 129, 136, 112, 117, 138, 119, 104, 119, 109, 116, 113, 115, 131, 110, 121, 113, 122, 99, 118, 126, 113, 115, 112, 95, 112, 115, 111, 123, 138, 104, 104, 121, 120, 110, 141, 115, 115, 100, 109, 102, 129, 125, 114, 116, 112, 119, 111, 111, 115, 110, 129, 108, 122, 114, 100, 116, 112, 119, 111, 113, 110, 108, 123, 107, 110, 109, 115, 122, 127, 101, 114, 112, 113, 124, 125, 105, 118, 117, 113, 124, 120, 111, 120, 111, 101, 113, 121, 119, 117, 122, 116, 113, 110, 120, 130, 114, 107, 108, 121, 117, 123, 123, 104, 99, 109, 104, 128, 117, 107, 114, 116, 113, 114, 119, 114, 113, 98, 132, 118, 121, 115, 123, 115, 119, 103, 113, 110, 103, 112, 107, 118, 112, 104, 114, 101, 118, 113, 121, 113, 114, 110, 115, 114, 114, 124, 125, 126, 116, 106, 101, 123, 113, 119, 124, 112, 126, 107, 116, 111, 115, 123, 124, 114, 112, 107, 110, 119, 115, 119, 122, 106, 116, 115, 117, 116, 111, 121, 110, 110, 120, 128, 128, 106, 113, 103, 119, 118, 119, 104, 114, 120, 106, 126, 110, 109, 115, 105, 121, 116, 116, 121, 118, 120, 128, 104, 119, 96, 115, 115, 143, 118, 119, 124, 135, 114, 116, 123, 108, 119, 115, 114, 108, 107, 122, 125, 115, 122, 111, 118, 128, 123, 126, 127, 122, 114, 116, 119, 139, 134, 103, 114, 122, 115, 132, 97, 114, 112, 119, 105, 107, 120, 106, 106, 114, 107, 120, 111, 125, 102, 120, 124, 120, 107, 128, 120, 125, 129, 106, 118, 122, 113, 123, 123, 100, 118, 111, 106, 119, 97, 101, 120, 105, 110, 116, 108, 107, 110, 98, 122, 101, 113, 119, 105, 108, 111, 117, 120, 119, 124, 118, 116, 114, 110, 114, 122, 113, 103, 105, 115, 119, 104, 116, 108, 108, 104, 115, 116, 108, 125, 128, 111, 110, 119, 113, 124, 118, 117, 120, 119, 108, 119, 110, 113, 114, 97, 116, 124, 119, 120, 132, 139, 124, 130, 109, 103, 109, 108, 102, 110, 117, 126, 113, 114, 103, 112, 126, 109, 126, 127, 113, 130, 123, 115, 107, 105, 117, 118, 106, 124, 104, 125, 112, 119, 114, 113, 104, 106, 107, 110, 105, 129, 104, 121, 125, 123, 109, 120, 109, 112, 106, 101, 114, 129, 115, 111, 117, 115, 119, 105, 110, 108, 129, 102, 113, 110, 123, 117, 106, 121, 110, 99, 104, 110, 113, 120, 126, 116, 128, 128, 124, 111, 120, 122, 121, 122, 120, 95, 133, 102, 115, 118, 107, 120, 113, 127, 112, 118, 111, 112, 118, 122, 112, 113, 125, 108, 109, 110, 123, 121, 114, 100, 116, 119, 107, 109, 112, 116, 81, 117, 106, 109, 105, 122, 104, 131, 110, 106, 119, 110, 122, 113, 118, 103, 125, 110, 122, 104, 114, 128, 113, 120, 118, 110, 105, 105, 118, 94, 102, 116, 118, 113, 119, 108, 104, 135, 121, 112, 116, 115, 122, 123, 118, 118, 125, 107, 101, 117, 117, 120, 122, 127, 112, 109, 121, 113, 104, 100, 117, 127, 116, 125, 131, 128, 106, 107, 109, 105, 121, 96, 118, 103, 120, 115, 110, 120, 114, 121, 121, 99, 116, 110, 124, 116, 103, 118, 118, 103, 107, 100, 104, 91, 113, 119, 118, 91, 108, 113, 96, 135, 105, 117, 120, 115, 111, 114, 108, 128, 110, 100, 132, 110, 129, 120, 113, 129, 118, 112, 119, 117, 105, 109, 108, 119, 116, 121, 113, 117, 122, 134, 119, 102, 117, 124, 119, 127, 107, 113, 112, 108, 103, 114, 119, 119, 125, 125, 110, 132, 116, 117, 118, 114, 119, 106, 107, 140, 116, 100, 114, 123, 104, 115, 98, 123, 114, 102, 115, 116, 132, 112, 127, 121, 104, 137, 112, 116, 115, 118, 115, 97, 117, 131, 109, 108, 114, 113, 119, 105, 120, 117, 117, 103, 103, 105, 117, 121, 113, 115, 125, 103, 112, 111, 121, 121, 115, 114, 109, 121, 107, 114, 117, 115, 108, 111, 118, 106, 100, 114, 116, 112, 116, 113, 122, 117, 117, 116, 106, 105, 115, 108, 115, 118, 114, 117, 113, 127, 120, 131, 116, 103, 103, 108, 116, 121, 120, 116, 126, 113, 112, 116, 109, 123, 121, 112, 124, 111, 120, 117, 120, 122, 106, 127, 104, 120, 121, 118, 105, 126, 120, 104, 116, 111, 126, 124, 110, 122, 110, 133, 114, 115, 116, 120, 119, 102, 115, 109, 106, 108, 127, 112, 115, 117, 110, 122, 123, 97, 99, 126, 106, 111, 121, 103, 123, 111, 109, 92, 101, 104, 122, 109, 114, 114, 112, 104, 113, 138, 119, 119, 110, 115, 106, 112, 107, 117, 116, 119, 109, 125, 106, 118, 111, 123, 125, 121, 114, 102, 110, 110, 109, 111, 123, 120, 110, 113, 128, 113, 111, 106, 98, 114, 105, 109, 123, 113, 112, 123, 110, 111, 114, 131, 118, 100, 121, 113, 104, 113, 107, 120, 108, 114, 119, 113, 113, 110, 118, 105, 114, 108, 128, 110, 121, 117, 118, 101, 109, 116, 122, 111, 121, 113, 112, 109, 106, 105, 124, 112, 111, 134, 104, 106, 117, 103, 121, 125, 112, 121, 108, 117, 115, 105, 114, 119, 106, 124, 120, 113, 105, 136, 109, 112, 121, 115, 120, 111, 120, 115, 111, 109, 130, 130, 124, 123, 134, 105, 107, 112, 117, 99, 122, 107, 122, 95, 118, 116, 101, 117, 116, 108, 111, 131, 107, 116, 130, 110, 113, 109, 104, 115, 110, 106, 125, 108, 120, 120, 126, 134, 116, 126, 107, 122, 99, 115, 122, 115, 95, 107, 110, 110, 103, 114, 107, 104, 124, 114, 119, 119, 124, 103, 115, 128, 122, 120, 123, 107, 112, 118, 119, 104, 113, 118, 124, 115, 112, 110, 120, 115, 120, 122, 124, 114, 119, 125, 118, 114, 114, 112, 105, 118, 118, 139, 103, 107, 113, 122, 118, 113, 108, 114, 133, 107, 114, 117, 111, 115, 114, 119, 113, 101, 111, 122, 114, 120, 107, 118, 116, 126, 115, 116, 108, 125, 118, 125, 107, 113, 113, 105, 115, 127, 122, 108, 105, 116, 125, 89, 117, 105, 109, 134, 113, 113, 119, 105, 112, 111, 119, 112, 136, 111, 104, 118, 120, 118, 122, 113, 115, 124, 126, 102, 119, 117, 116, 111, 120, 105, 105, 110, 111, 112, 116, 122, 122, 106, 111, 119, 122, 116, 111, 116, 118, 113, 110, 123, 124, 108, 105, 106, 107, 104, 116, 103, 114, 115, 103, 109, 113, 113, 118, 108, 130, 122, 115, 121, 125, 121, 115, 123, 124, 111, 123, 112, 104, 130, 115, 97, 108, 107, 118, 115, 118, 118, 118, 104, 113, 76, 123, 111, 109, 119, 127, 125, 111, 117, 130, 118, 107, 97, 120, 100, 124, 118, 125, 104, 107, 109, 115, 124, 125, 115, 116, 123, 121, 113, 126, 119, 123, 108, 125, 118, 114, 106, 112, 114, 104, 121, 106, 110, 114, 102, 123, 109, 124, 132, 121, 116, 127, 144, 110, 110, 114, 101, 120, 129, 117, 108, 117, 119, 120, 101, 121, 112, 114, 115, 123, 116, 116, 114, 125, 118, 118, 125, 131, 118, 99, 112, 108, 117, 111, 117, 119, 116, 113, 132, 119, 125, 106, 123, 114, 113, 115, 109, 115, 125, 111, 99, 114, 125, 118, 103, 113, 105, 110, 113, 128, 114, 116, 99, 122, 126, 125, 118, 108, 123, 126, 112, 112, 121, 124, 123, 119, 116, 111, 116, 111, 115, 128, 107, 106, 117, 94, 114, 121, 116, 112, 128, 111, 117, 123, 118, 111, 113, 110, 109, 139, 128, 110, 122, 116, 128, 118, 114, 110, 120, 118, 107, 109, 121, 100, 113, 116, 125, 112, 107, 112, 111, 114, 108, 114, 113, 129, 115, 118, 113, 119, 116, 98, 108, 120, 115, 114, 113, 110, 114, 118, 108, 120, 119, 105, 132, 116, 117, 111, 120, 116, 117, 115, 125, 125, 123, 114, 120, 117, 118, 108, 110, 108, 125, 109, 89, 108, 121, 118, 118, 113, 120, 117, 120, 120, 117, 109, 120, 113, 100, 110, 104, 116, 109, 106, 121, 116, 125, 121, 116, 121, 111, 116, 113, 112, 103, 119, 119, 121, 114, 121, 119, 131, 122, 116, 107, 126, 118, 127, 102, 131, 112, 125, 123, 131, 124, 110, 134, 116, 117, 106, 118, 111, 112, 127, 124, 119, 110, 109, 119, 113, 104, 112, 121, 115, 118, 123, 116, 125, 110, 120, 112, 106, 113, 98, 101, 128, 108, 118, 106, 106, 117, 111, 94, 107, 126, 136, 116, 124, 102, 111, 113, 106, 109, 109, 120, 103, 108, 114, 110, 123, 116, 123, 115, 119, 117, 132, 110, 125, 126, 140, 113, 109, 111, 118, 117, 120, 107, 123, 115, 106, 123, 117, 115, 112, 127, 113, 119, 101, 113, 114, 121, 123, 111, 115, 100, 108, 112, 110, 126, 121, 115, 112, 119, 108, 120, 106, 115, 107, 110, 132, 116, 110, 106, 126, 113, 119, 107, 114, 123, 101, 118, 115, 115, 117, 110, 105, 126, 113, 125, 115, 111, 119, 116, 108, 120, 129, 120, 112, 109, 111, 109, 115, 114, 112, 113, 111, 119, 115, 121, 103, 113, 112, 108, 117, 113, 117, 120, 94, 118, 111, 125, 131, 110, 111, 118, 130, 126, 119, 106, 123, 127, 116, 122, 112, 109, 125, 110, 116, 118, 114, 115, 108, 119, 117, 110, 121, 124, 115, 130, 107, 146, 115, 115, 106, 116, 135, 109, 125, 104, 110, 110, 109, 122, 114, 109, 110, 124, 123, 113, 118, 114, 111, 115, 110, 122, 107, 112, 105, 117, 120, 122, 103, 110, 133, 119, 106, 115, 115, 111, 117, 115, 116, 116, 119, 103, 115, 111, 110, 115, 108, 108, 104, 111, 113, 117, 114, 108, 116, 112, 103, 111, 116, 116, 110, 119, 110, 109, 117, 113, 117, 116, 123, 129, 110, 115, 128, 115, 110, 106, 115, 111, 108, 135, 128, 114, 111, 112, 114, 128, 108, 119, 107, 121, 115, 101, 123, 114, 115, 120, 112, 124, 101, 114, 110, 116, 128, 112, 122, 119, 106, 114, 119, 121, 116, 129, 115, 105, 118, 103, 123, 114, 119, 121, 114, 115, 111, 127, 113, 115, 112, 109, 116, 114, 117, 115, 110, 113, 115, 106, 114, 121, 115, 113, 122, 107, 110, 106, 115, 106, 112, 117, 122, 109, 116, 104, 111, 119, 114, 113, 121, 112, 106, 122, 115, 108, 112, 113, 110, 114, 126, 126, 124, 118, 116, 124, 112, 103, 117, 122, 106, 111, 128, 113, 113, 123, 115, 123, 115, 112, 116, 123, 112, 111, 115, 111, 110, 116, 116, 103, 121, 117, 121, 125, 112, 112, 105, 116, 109, 107, 123, 106, 110, 112, 113, 108, 117, 114, 110, 115, 115, 114, 107, 116, 111, 106, 121, 110, 131, 114, 123, 113, 114, 114, 117, 117, 118, 109, 127, 120, 117, 115, 107, 104, 127, 115, 116, 124, 113, 126, 117, 108, 107, 118, 112, 106, 118, 109, 119, 108, 108, 120, 113, 125, 111, 120, 112, 124, 125, 130, 100, 120, 118, 117, 112, 111, 112, 128, 130, 115, 118, 111, 113, 124, 116, 120, 114, 108, 120, 113, 113, 110, 124, 113, 125, 117, 99, 113, 112, 122, 127, 111, 113, 107, 118, 115, 115, 114, 109, 104, 124, 117, 119, 105, 118, 120, 115, 117, 106, 112, 116, 118, 123, 126, 111, 118, 112, 114, 110, 109, 111, 104, 107, 118, 115, 120, 113, 112, 112, 117, 111, 113, 119, 106, 107, 113, 116, 116, 113, 112, 110, 107, 104, 115, 115, 110, 117, 112, 114, 120, 109, 110, 101, 114, 115, 116, 113, 111, 120, 118, 111, 128, 118, 113, 118, 110, 114, 125, 111, 114, 115, 119, 115, 103, 116, 112, 114, 104, 123, 117, 115, 103, 104, 119, 117, 112, 117, 111, 111, 109, 113, 116, 112, 110, 114, 111, 114, 110, 114, 114, 117, 114, 117, 111, 110, 121, 111, 113, 113, 120, 113, 119, 117, 118, 109, 111, 115, 117, 118, 111, 125, 123, 110, 108, 109, 116, 111, 112, 120, 117, 115, 117, 107, 114, 110, 124, 111, 118, 114, 111, 117, 122, 128, 112, 116, 116, 116, 109, 113, 122, 156, 115, 114, 119, 124, 119, 111, 112, 123, 114, 108, 117, 112, 116, 111, 115, 114, 114, 119, 119, 102, 112, 116, 117, 119, 112, 114, 108, 116, 108, 115, 113, 121, 115, 117, 114, 117, 119, 111, 116, 113, 111, 115, 121, 112, 120, 112, 119, 113, 117, 122, 109, 113, 116, 122, 116, 115, 123, 116, 115, 115, 113, 117, 119, 113, 110, 107, 113, 115, 118, 116, 111, 110, 120, 114, 107, 140, 117, 115, 112, 117, 108, 120, 114, 113, 105, 122, 115, 159, 116, 115, 117, 120, 119, 112, 117, 111, 118, 113, 117, 110, 114, 111, 116, 121, 121, 115, 110, 112, 116, 116, 116, 109, 110, 118, 107, 146, 116, 112, 118, 116, 111, 112, 113, 112, 97, 117, 110, 115, 112, 112, 119, 119, 113, 113, 113, 105, 121, 117, 118, 120, 115, 118, 114, 118, 108, 115, 120, 112, 113, 115, 110, 109, 104, 112, 124, 117, 114, 126, 118, 117, 104, 115, 109, 117, 116, 112, 120, 131, 114, 46, 115, 117, 117, 114, 115, 115, 122, 112, 115, 111, 112, 116, 110, 114, 119, 115, 122, 113, 120, 113, 114, 112, 119, 110, 116, 111, 115, 118, 126, 114, 120, 121, 106, 111, 114, 114, 114, 118, 110, 112, 118, 116, 110, 116, 111, 118, 118, 115, 115, 114, 97, 98, 115, 110, 117, 116, 116, 120, 113, 118, 114, 111, 113, 122, 112, 113, 109, 115, 116, 117, 113, 113, 119, 108, 106, 115, 115, 121, 119, 113, 114, 119, 105, 118, 117, 114, 116, 116, 116, 118, 113, 120, 123, 116, 118, 114, 119, 111, 116, 112, 116, 132, 114, 116, 117, 116, 116, 115, 117, 112, 120, 114, 139, 109, 108, 118, 116, 114, 122, 111, 112, 113, 113, 115, 115, 113, 117, 111, 112, 109, 112, 115, 122, 112, 114, 122, 113, 114, 114, 118, 120, 106, 113, 117, 112, 106, 119, 112, 114, 113, 118, 111, 117, 115, 117, 119, 118, 113, 125, 117, 112, 113, 114, 110, 102, 115, 109, 114, 115, 117, 114, 114, 110, 109, 111, 114, 120, 118, 115, 114, 107, 115, 113, 112, 114, 114, 116, 112, 121, 115, 114, 116, 112, 115, 112, 118, 115, 117, 117, 116, 113, 107, 117, 115, 119, 108, 114, 110, 121, 118, 108, 112, 114, 111, 108, 117, 123, 121, 111, 105, 118, 115, 113, 121, 120, 114, 118, 121, 110, 113, 115, 119, 110, 119, 118, 111, 108, 114, 113, 107, 117, 118, 117, 111, 109, 120, 114, 106, 112, 112, 113, 118, 122, 114, 109, 115, 114, 112, 111, 113, 116, 120, 125, 110, 110, 110, 114, 120, 112, 116, 114, 132, 111, 116, 119, 116, 120, 115, 120, 119, 98, 121, 104, 120, 128, 110, 120, 111, 115, 119, 115, 113, 117, 120, 124, 124, 111, 105, 123, 118, 127, 116, 114, 116, 119, 108, 115, 121, 114, 121, 108, 128, 115, 116, 114, 120, 122, 120, 114, 116, 114, 109, 107, 116, 111, 106, 112, 117, 118, 113, 119, 115, 119, 112, 121, 115, 123, 110, 117, 125, 118, 112, 113, 120, 113, 117, 108, 124, 116, 122, 113, 112, 124, 121, 124, 120, 116, 108, 113, 111, 125, 124, 113, 126, 108, 112, 113, 123, 121, 111, 116, 110, 111, 113, 109, 122, 110, 116, 109, 117, 113, 117, 119, 121, 132, 112, 121, 117, 112, 118, 115, 113, 116, 108, 120, 120, 116, 110, 117, 112, 107, 123, 115, 117, 115, 119, 110, 118, 124, 115, 123, 112, 110, 119, 119, 116, 117, 118, 113, 126, 118, 113, 114, 123, 118, 115, 116, 118, 121, 114, 113, 114, 118, 112, 118, 119, 120, 120, 109, 103, 120, 116, 113, 116, 112, 122, 119, 121, 116, 120, 124, 110, 118, 117, 111, 112, 117, 117, 115, 109, 117, 117, 112, 110, 110, 114, 112, 109, 106, 106, 114, 115, 110, 116, 127, 119, 116, 114, 121, 115, 106, 114, 118, 113, 117, 113, 114, 116, 124, 114, 104, 113, 120, 122, 115, 117, 116, 117, 115, 112, 110, 106, 114, 115, 119, 115, 115, 116, 122, 115, 109, 112, 111, 114, 120, 121, 111, 118, 113, 111, 112, 111, 108, 116, 119, 116, 103, 117, 115, 117, 112, 117, 116, 114, 117, 114, 110, 123, 108, 118, 110, 107, 120, 116, 116, 113, 115, 121, 117, 114, 113, 118, 112, 115, 117, 120, 111, 113, 118, 108, 114, 126, 112, 114, 119, 114, 120, 114, 118, 111, 117, 102, 115, 111, 107, 110, 118, 108, 110, 122, 104, 114, 116, 112, 127, 115, 121, 122, 108, 124, 118, 116, 111, 121, 109, 111, 117, 119, 108, 114, 120, 119, 128, 110, 116, 118, 123, 123, 117, 122, 120, 118, 115, 112, 112, 110, 120, 124, 116, 123, 112, 118, 120, 113, 115, 111, 122, 125, 129, 116, 108, 112, 115, 110, 118, 102, 112, 110, 124, 131, 114, 111, 113, 120, 115, 110, 120, 101, 115, 125, 119, 117, 116, 108, 118, 119, 115, 118, 113, 116, 120, 112, 113, 114, 122, 109, 125, 116, 115, 107, 119, 112, 118, 118, 116, 113, 119, 122, 123, 122, 119, 116, 113, 115, 120, 119, 121, 112, 102, 114, 117, 106, 117, 110, 119, 116, 118, 114, 115, 109, 116, 116, 121, 118, 120, 113, 120, 118, 107, 120, 125, 116, 97, 112, 115, 113, 107, 117, 120, 129, 115, 119, 115, 125, 118, 117, 121, 109, 112, 122, 111, 118, 110, 118, 123, 119, 114, 120, 112, 117, 118, 122, 119, 121, 118, 116, 107, 128, 121, 108, 121, 127, 113, 123, 119, 120, 118, 122, 106, 119, 105, 114, 112, 113, 119, 120, 106, 112, 124, 115, 122, 122, 112, 116, 123, 114, 115, 117, 110, 120, 113, 112, 117, 124, 103, 123, 109, 107, 114, 111, 107, 119, 114, 104, 124, 119, 116, 108, 120, 106, 110, 121, 125, 95, 124, 117, 98, 111, 115, 94, 107, 120, 135, 117, 109, 129, 122, 116, 116, 119, 123, 114, 92, 109, 119, 127, 126, 118, 112, 121, 104, 96, 119, 111, 114, 119, 113, 120, 101, 98, 127, 118, 104, 105, 119, 109, 117, 122, 121, 110, 121, 105, 113, 110, 98, 112, 110, 113, 121, 122, 113, 109, 101, 117, 121, 117, 118, 111, 103, 105, 118, 120, 121, 99, 115, 121, 122, 117, 123, 122, 125, 118, 126, 126, 116, 111, 121, 121, 116, 125, 121, 111, 112, 115, 113, 115, 97, 111, 117, 140, 111, 105, 105, 134, 118, 115, 108, 130, 110, 125, 102, 120, 110, 132, 111, 96, 133, 129, 117, 122, 121, 126, 105, 123, 123, 132, 116, 127, 120, 113, 110, 112, 104, 125, 107, 122, 97, 123, 119, 128, 122, 114, 111, 107, 113, 109, 122, 109, 111, 128, 110, 110, 105, 112, 120, 89, 112, 113, 105, 98, 111, 119, 117, 121, 106, 112, 103, 119, 112, 111, 116, 119, 114, 109, 101, 108, 108, 120, 120, 112, 106, 124, 118, 130, 122, 108, 113, 118, 137, 110, 123, 113, 130, 120, 122, 125, 119, 111, 111, 125, 104, 116, 115, 118, 113, 125, 126, 132, 117, 113, 124, 109, 121, 108, 111, 134, 117, 104, 110, 118, 95, 116, 107, 120, 129, 124, 122, 111, 126, 109, 116, 119, 114, 119, 134, 128, 112, 117, 113, 110, 106, 116, 116, 103, 108, 124, 111, 120, 116, 119, 110, 113, 130, 111, 107, 109, 124, 125, 114, 134, 117, 121, 124, 122, 117, 120, 103, 107, 114, 113, 112, 106, 112, 114, 128, 119, 107, 109, 124, 105, 120, 114, 121, 125, 129, 136, 128, 132, 145, 111, 105, 123, 112, 107, 127, 129, 105, 142, 110, 118, 112, 113, 103, 111, 93, 114, 110, 129, 140, 105, 111, 115, 114, 114, 123, 104, 110, 111, 112, 119, 101, 101, 113, 118, 114, 129, 108, 114, 114, 112, 113, 134, 87, 139, 112, 125, 130, 109, 125, 92, 96, 112, 127, 105, 129, 113, 111, 107, 113, 118, 122, 96, 122, 98, 122, 93, 105, 113, 116, 105, 102, 116, 109, 116, 128, 114, 113, 126, 96, 126, 136, 132, 129, 117, 125, 111, 137, 117, 120, 113, 114, 116, 122, 124, 113, 101, 126, 117, 113, 124, 111, 136, 100, 117, 117, 104, 115, 111, 147, 121, 111, 116, 114, 126, 127, 115, 105, 118, 121, 108, 114, 117, 126, 103, 127, 122, 117, 118, 114, 106, 144, 117, 119, 108, 111, 122, 128, 126, 108, 124, 119, 120, 124, 130, 104, 116, 115, 103, 122, 119, 116, 129, 111, 121, 120, 124, 110, 122, 121, 114, 115, 123, 120, 125, 111, 111, 118, 124, 118, 116, 103, 116, 117, 116, 112, 125, 110, 119, 111, 116, 130, 123, 135, 110, 121, 111, 114, 109, 105, 129, 95, 124, 124, 105, 130, 145, 117, 117, 111, 108, 120, 130, 127, 110, 123, 113, 116, 104, 129, 121, 117, 111, 116, 114, 109, 108, 117, 106, 117, 104, 118, 111, 119, 118, 115, 101, 116, 98, 122, 124, 116, 127, 123, 106, 114, 117, 110, 121, 113, 111, 106, 105, 103, 110, 112, 121, 130, 115, 107, 110, 111, 115, 119, 124, 118, 110, 113, 117, 125, 115, 111, 113, 110, 105, 114, 113, 124, 117, 124, 118, 125, 110, 103, 118, 113, 114, 110, 129, 115, 116, 115, 108, 115, 122, 99, 118, 126, 116, 110, 111, 115, 123, 127, 118, 120, 115, 103, 103, 121, 119, 111, 120, 112, 108, 116, 113, 122, 112, 117, 117, 98, 120, 112, 110, 118, 116, 110, 106, 119, 109, 114, 109, 121, 100, 97, 118, 121, 125, 113, 118, 118, 110, 117, 120, 108, 117, 118, 121, 118, 127, 115, 113, 123, 109, 117, 123, 126, 118, 114, 122, 118, 122, 126, 112, 123, 113, 114, 115, 115, 113, 111, 117, 108, 113, 113, 117, 111, 107, 116, 118, 126, 109, 110, 104, 122, 122, 117, 115, 115, 92, 100, 119, 119, 120, 111, 130, 113, 116, 138, 96, 107, 119, 107, 121, 121, 114, 127, 124, 104, 112, 115, 128, 122, 125, 112, 107, 103, 122, 107, 112, 132, 122, 127, 117, 115, 116, 120, 127, 113, 112, 109, 107, 126, 117, 122, 120, 120, 116, 117, 114, 115, 119, 124, 119, 110, 95, 112, 115, 109, 117, 120, 116, 113, 123, 114, 118, 112, 119, 121, 111, 111, 112, 119, 106, 115, 112, 116, 107, 115, 102, 111, 114, 115, 114, 124, 115, 109, 130, 110, 111, 119, 115, 118, 111, 109, 118, 115, 118, 117, 113, 112, 112, 119, 104, 114, 118, 122, 111, 120, 114, 117, 127, 119, 107, 113, 122, 117, 111, 122, 114, 119, 124, 112, 108, 118, 104, 113, 121, 107, 119, 125, 103, 105, 106, 138, 130, 118, 105, 111, 126, 107, 112, 114, 114, 109, 114, 114, 114, 113, 110, 102, 133, 118, 118, 110, 113, 117, 120, 119, 115, 114, 116, 114, 115, 113, 112, 118, 107, 118, 117, 119, 115, 116, 119, 130, 121, 117, 137, 103, 103, 124, 105, 115, 113, 123, 109, 121, 116, 132, 109, 124, 117, 128, 106, 122, 123, 122, 126, 123, 118, 125, 110, 108, 101, 115, 119, 118, 107, 114, 112, 117, 112, 118, 116, 111, 119, 113, 109, 105, 115, 111, 117, 111, 118, 114, 116, 119, 116, 122, 112, 101, 116, 113, 109, 138, 108, 112, 110, 119, 117, 100, 130, 120, 115, 127, 100, 114, 114, 118, 113, 106, 101, 111, 118, 127, 117, 128, 111, 98, 107, 96, 118, 114, 117, 103, 124, 112, 111, 119, 136, 123, 115, 115, 123, 116, 121, 119, 108, 123, 113, 112, 94, 118, 121, 124, 119, 138, 107, 123, 101, 111, 109, 119, 134, 115, 120, 109, 113, 121, 106, 116, 113, 117, 116, 99, 109, 114, 112, 101, 117, 108, 137, 113, 117, 110, 117, 124, 119, 108, 107, 104, 115, 122, 119, 103, 107, 109, 117, 118, 116, 119, 106, 123, 121, 116, 119, 111, 114, 111, 119, 119, 118, 101, 119, 107, 121, 126, 104, 117, 114, 102, 116, 94, 113, 119, 106, 115, 133, 89, 113, 102, 115, 123, 117, 105, 114, 120, 127, 113, 114, 110, 117, 121, 105, 121, 125, 107, 117, 104, 119, 118, 111, 98, 111, 126, 111, 117, 107, 108, 110, 105, 106, 115, 104, 115, 116, 111, 122, 120, 133, 110, 123, 110, 115, 131, 123, 122, 109, 116, 125, 125, 113, 128, 125, 130, 119, 117, 116, 113, 106, 114, 101, 127, 114, 119, 108, 102, 107, 114, 113, 116, 115, 122, 112, 126, 120, 113, 127, 100, 113, 116, 122, 97, 121, 112, 106, 115, 110, 122, 114, 123, 114, 109, 114, 130, 111, 122, 102, 117, 117, 111, 118, 112, 91, 123, 123, 114, 116, 103, 114, 105, 117, 121, 118, 112, 123, 134, 127, 106, 129, 119, 111, 118, 108, 110, 126, 123, 105, 110, 93, 109, 109, 112, 128, 105, 123, 115, 119, 119, 110, 110, 134, 118, 104, 125, 116, 146, 116, 119, 117, 124, 126, 100, 87, 125, 117, 111, 111, 109, 117, 110, 131, 107, 117, 109, 112, 112, 109, 117, 104, 111, 105, 118, 100, 121, 126, 125, 103, 128, 104, 120, 138, 126, 108, 102, 113, 116, 113, 112, 136, 123, 118, 112, 109, 126, 104, 119, 119, 109, 113, 113, 106, 121, 119, 96, 116, 118, 123, 113, 131, 103, 117, 117, 119, 118, 121, 110, 122, 115, 122, 121, 119, 105, 116, 118, 114, 112, 114, 132, 127, 117, 115, 122, 99, 115, 119, 112, 93, 131, 110, 106, 137, 124, 120, 116, 114, 126, 123, 108, 120, 113, 128, 129, 135, 100, 125, 113, 116, 112, 115, 111, 112, 112, 116, 106, 107, 121, 110, 115, 123, 108, 128, 109, 120, 122, 108, 123, 106, 123, 120, 106, 114, 133, 124, 153, 115, 125, 117, 139, 107, 103, 110, 123, 113, 139, 123, 107, 115, 126, 115, 119, 126, 103, 113, 123, 115, 117, 127, 115, 100, 116, 125, 121, 149, 104, 134, 113, 117, 123, 109, 127, 101, 110, 105, 105, 107, 121, 128, 108, 128, 109, 121, 137, 116, 118, 109, 119, 112, 114, 116, 114, 99, 119, 100, 123, 127, 112, 116, 129, 119, 105, 116, 102, 112, 120, 108, 113, 120, 99, 118, 125, 126, 117, 119, 105, 123, 109, 121, 106, 108, 118, 118, 120, 110, 119, 115, 117, 121, 107, 115, 104, 115, 110, 131, 89, 98, 94, 116, 119, 119, 109, 105, 113, 124, 120, 108, 115, 113, 131, 117, 118, 115, 118, 106, 109, 105, 118, 134, 101, 135, 104, 102, 120, 113, 127, 128, 103, 130, 99, 125, 100, 109, 117, 113, 123, 110, 115, 114, 121, 126, 115, 123, 110, 136, 123, 116, 129, 110, 112, 106, 116, 108, 118, 131, 103, 104, 120, 109, 122, 113, 105, 111, 154, 118, 121, 115, 133, 121, 119, 129, 118, 108, 113, 114, 110, 119, 108, 105, 122, 100, 112, 110, 122, 106, 91, 110, 127, 120, 125, 128, 110, 115, 121, 119, 126, 109, 123, 122, 118, 104, 116, 136, 116, 115, 122, 124, 122, 129, 137, 121, 118, 109, 116, 112, 111, 132, 130, 98, 120, 108, 102, 122, 111, 127, 105, 115, 121, 119, 120, 115, 112, 108, 116, 113, 118, 118, 112, 117, 129, 122, 109, 101, 112, 110, 129, 115, 124, 116, 117, 107, 116, 121, 122, 131, 109, 120, 111, 103, 115, 133, 116, 127, 127, 111, 125, 116, 122, 133, 118, 100, 115, 109, 105, 105, 102, 131, 119, 117, 114, 124, 102, 107, 117, 115, 115, 109, 99, 122, 118, 108, 103, 107, 116, 111, 113, 120, 119, 111, 116, 110, 113, 123, 116, 108, 118, 114, 107, 117, 133, 120, 119, 113, 121, 116, 125, 118, 119, 121, 119, 114, 116, 108, 114, 113, 117, 95, 119, 113, 96, 127, 115, 108, 116, 120, 120, 107, 122, 128, 113, 125, 114, 115, 138, 115, 116, 115, 124, 122, 111, 129, 115, 120, 112, 101, 127, 122, 115, 106, 136, 109, 106, 107, 123, 125, 118, 112, 111, 110, 137, 113, 113, 115, 119, 122, 112, 107, 112, 115, 113, 113, 110, 108, 105, 120, 122, 119, 119, 110, 107, 103, 108, 117, 101, 129, 113, 116, 113, 105, 111, 112, 110, 114, 116, 107, 132, 118, 98, 106, 126, 120, 135, 119, 114, 116, 124, 108, 136, 111, 100, 122, 111, 112, 137, 116, 130, 129, 127, 117, 109, 115, 119, 112, 119, 98, 114, 114, 109, 117, 108, 112, 117, 117, 98, 113, 120, 109, 119, 109, 118, 114, 110, 118, 101, 114, 110, 114, 121, 120, 123, 122, 123, 114, 120, 106, 117, 113, 121, 107, 108, 106, 155, 110, 108, 119, 98, 140, 123, 104, 113, 121, 114, 117, 103, 116, 117, 110, 123, 112, 117, 122, 121, 103, 124, 126, 95, 108, 125, 135, 107, 111, 124, 107, 115, 116, 104, 116, 108, 108, 104, 133, 102, 104, 134, 117, 107, 119, 116, 123, 116, 130, 111, 101, 118, 116, 125, 115, 112, 125, 109, 116, 124, 117, 127, 113, 112, 101, 112, 120, 109, 115, 99, 111, 102, 96, 123, 114, 125, 108, 110, 115, 109, 117, 108, 115, 118, 102, 110, 121, 100, 127, 112, 113, 121, 115, 113, 106, 115, 116, 116, 119, 121, 115, 112, 112, 105, 106, 104, 120, 107, 120, 117, 112, 113, 118, 134, 96, 106, 101, 120, 122, 115, 112, 114, 114, 112, 126, 119, 126, 106, 115, 116, 123, 114, 98, 107, 131, 118, 118, 119, 117, 118, 118, 127, 117, 125, 122, 122, 116, 120, 118, 125, 125, 127, 107, 125, 117, 112, 115, 118, 121, 109, 107, 117, 103, 121, 116, 119, 117, 117, 100, 102, 112, 118, 130, 102, 111, 121, 138, 126, 119, 103, 146, 115, 111, 132, 113, 113, 118, 120, 122, 115, 111, 116, 100, 111, 112, 106, 107, 107, 122, 109, 120, 109, 108, 110, 118, 120, 116, 115, 117, 92, 122, 113, 127, 112, 105, 118, 122, 118, 123, 108, 118, 120, 126, 96, 120, 111, 110, 109, 114, 108, 122, 118, 114, 123, 131, 113, 122, 112, 124, 125, 108, 113, 110, 112, 106, 103, 110, 120, 120, 116, 115, 105, 120, 116, 117, 115, 103, 120, 116, 117, 123, 115, 125, 122, 117, 131, 115, 106, 127, 120, 119, 110, 111, 118, 122, 121, 111, 134, 109, 115, 114, 107, 113, 113, 108, 116, 108, 111, 103, 124, 112, 115, 114, 115, 99, 116, 115, 120, 110, 114, 113, 109, 113, 116, 114, 118, 111, 113, 115, 117, 111, 113, 110, 114, 114, 115, 111, 115, 120, 111, 117, 111, 114, 112, 112, 115, 117, 115, 115, 114, 116, 112, 111, 119, 114, 114, 109, 116, 119, 127, 116, 116, 111, 120, 111, 118, 121, 115, 116, 115, 113, 108, 124, 105, 116, 110, 114, 114, 131, 112, 122, 117, 119, 114, 115, 120, 115, 115, 119, 120, 115, 121, 113, 115, 119, 114, 112, 118, 117, 143, 116, 110, 113, 112, 118, 114, 119, 106, 111, 123, 113, 114, 117, 121, 115, 116, 117, 109, 115, 114, 119, 113, 111, 113, 125, 105, 118, 114, 112, 118, 127, 113, 106, 116, 123, 112, 115, 108, 113, 111, 114, 113, 116, 113, 131, 116, 123, 116, 101, 114, 121, 117, 111, 107, 122, 122, 114, 104, 113, 108, 110, 113, 112, 109, 119, 102, 117, 116, 120, 109, 117, 114, 115, 115, 111, 115, 113, 108, 113, 111, 114, 108, 111, 121, 112, 112, 112, 119, 117, 116, 113, 117, 127, 116, 107, 106, 118, 120, 114, 118, 108, 117, 106, 109, 122, 115, 115, 119, 116, 114, 115, 111, 115, 116, 121, 121, 117, 119, 114, 119, 106, 116, 111, 118, 115, 119, 119, 109, 111, 118, 101, 106, 114, 114, 112, 120, 117, 123, 101, 117, 109, 114, 116, 117, 116, 107, 115, 112, 135, 115, 118, 118, 117, 121, 122, 122, 123, 114, 109, 121, 112, 117, 120, 117, 109, 111, 122, 119, 111, 109, 121, 112, 118, 118, 118, 113, 118, 117, 117, 120, 125, 139, 117, 115, 124, 128, 112, 113, 116, 119, 115, 115, 117, 115, 108, 109, 120, 106, 97, 113, 115, 115, 116, 118, 114, 118, 109, 121, 120, 112, 114, 110, 92, 115, 104, 117, 109, 121, 109, 119, 118, 115, 113, 121, 115, 110, 111, 121, 123, 120, 122, 103, 119, 119, 113, 116, 118, 111, 120, 111, 120, 115, 121, 116, 117, 116, 118, 115, 117, 120, 113, 121, 112, 123, 114, 111, 118, 109, 113, 119, 112, 110, 112, 114, 114, 112, 111, 119, 112, 111, 112, 122, 118, 113, 114, 120, 119, 113, 120, 118, 128, 113, 117, 109, 120, 105, 113, 113, 116, 116, 113, 112, 104, 108, 111, 99, 116, 117, 111, 112, 112, 113, 115, 116, 113, 108, 120, 114, 104, 118, 113, 122, 122, 136, 111, 109, 124, 113, 121, 116, 113, 97, 115, 111, 120, 115, 110, 119, 123, 115, 108, 114, 116, 118, 112, 109, 119, 114, 107, 107, 118, 108, 124, 117, 113, 115, 114, 113, 108, 112, 117, 118, 107, 122, 114, 115, 126, 106, 121, 108, 113, 111, 114, 112, 115, 115, 115, 117, 109, 115, 116, 116, 118, 118, 121, 122, 115, 115, 116, 106, 112, 98, 126, 118, 107, 128, 128, 120, 108, 105, 105, 120, 117, 120, 100, 119, 117, 113, 93, 126, 121, 126, 132, 121, 115, 111, 114, 106, 119, 131, 114, 99, 117, 105, 114, 139, 103, 115, 104, 113, 115, 113, 113, 109, 106, 116, 122, 111, 116, 109, 127, 116, 109, 118, 119, 110, 109, 127, 123, 104, 116, 118, 111, 108, 108, 106, 111, 118, 107, 124, 116, 123, 107, 114, 108, 111, 114, 124, 130, 107, 123, 129, 119, 113, 107, 112, 121, 110, 133, 114, 127, 119, 123, 119, 123, 98, 118, 111, 106, 130, 110, 113, 122, 112, 106, 92, 108, 111, 122, 128, 126, 113, 112, 113, 113, 94, 111, 111, 104, 123, 113, 116, 124, 120, 110, 111, 115, 112, 125, 124, 122, 105, 99, 125, 130, 110, 97, 128, 115, 130, 112, 121, 113, 119, 110, 120, 117, 119, 117, 114, 113, 116, 114, 122, 108, 114, 120, 106, 98, 118, 116, 130, 106, 125, 117, 106, 101, 108, 120, 121, 113, 123, 106, 111, 107, 101, 115, 123, 118, 105, 119, 113, 119, 101, 98, 111, 112, 118, 112, 109, 112, 115, 106, 98, 116, 112, 98, 112, 126, 120, 120, 116, 123, 104, 121, 110, 111, 105, 113, 106, 123, 128, 118, 113, 100, 108, 111, 112, 105, 93, 105, 137, 152, 114, 125, 111, 110, 116, 112, 114, 112, 121, 116, 118, 130, 119, 108, 117, 105, 123, 116, 110, 112, 118, 107, 110, 103, 113, 122, 120, 111, 102, 116, 127, 114, 119, 129, 115, 115, 107, 121, 121, 101, 107, 107, 103, 116, 123, 108, 115, 128, 129, 116, 111, 112, 116, 121, 117, 115, 115, 103, 121, 130, 115, 119, 118, 126, 103, 116, 116, 128, 117, 126, 126, 120, 102, 111, 95, 121, 113, 122, 113, 112, 98, 107, 107, 94, 130, 127, 130, 118, 114, 124, 103, 97, 123, 106, 112, 119, 114, 117, 101, 120, 107, 119, 112, 106, 125, 111, 115, 106, 103, 116, 100, 121, 112, 128, 123, 109, 109, 107, 103, 120, 106, 119, 117, 99, 124, 106, 117, 114, 118, 120, 107, 118, 135, 105, 122, 117, 116, 112, 114, 112, 106, 113, 95, 113, 117, 112, 113, 104, 102, 111, 106, 116, 113, 110, 100, 123, 102, 110, 123, 108, 117, 127, 114, 114, 113, 118, 112, 101, 125, 112, 106, 105, 118, 103, 104, 112, 112, 112, 123, 120, 120, 112, 106, 98, 110, 119, 101, 122, 117, 112, 119, 107, 140, 114, 100, 122, 117, 103, 123, 101, 115, 116, 103, 114, 130, 108, 134, 123, 117, 120, 125, 110, 125, 110, 108, 101, 116, 92, 102, 113, 104, 122, 133, 115, 122, 111, 115, 120, 132, 107, 118, 125, 113, 97, 101, 106, 124, 100, 122, 130, 114, 104, 109, 123, 119, 120, 112, 116, 122, 123, 111, 121, 117, 105, 126, 110, 110, 109, 106, 116, 118, 116, 115, 115, 129, 117, 120, 107, 122, 105, 100, 117, 116, 110, 122, 92, 108, 111, 126, 116, 121, 123, 119, 120, 112, 116, 117, 122, 109, 122, 99, 115, 112, 117, 130, 110, 111, 117, 123, 110, 107, 109, 105, 115, 125, 109, 105, 121, 117, 110, 97, 109, 112, 107, 122, 107, 108, 111, 117, 118, 116, 120, 115, 113, 123, 108, 112, 99, 110, 112, 116, 121, 115, 118, 119, 123, 104, 114, 114, 117, 116, 116, 125, 125, 116, 115, 112, 122, 110, 112, 120, 120, 115, 121, 125, 124, 106, 122, 118, 102, 121, 125, 125, 102, 100, 124, 106, 106, 110, 115, 115, 110, 116, 118, 112, 108, 112, 115, 110, 124, 131, 110, 118, 106, 112, 118, 113, 107, 119, 111, 110, 116, 119, 112, 117, 98, 114, 116, 115, 108, 108, 108, 118, 114, 105, 105, 114, 115, 114, 108, 113, 116, 99, 123, 114, 113, 91, 109, 104, 117, 126, 124, 107, 120, 115, 117, 114, 114, 110, 116, 128, 113, 120, 123, 112, 114, 109, 131, 119, 112, 103, 116, 106, 110, 113, 115, 105, 111, 109, 116, 115, 115, 111, 96, 122, 117, 117, 106, 118, 121, 115, 111, 112, 104, 106, 113, 105, 120, 109, 120, 118, 102, 117, 110, 111, 104, 102, 125, 103, 115, 114, 98, 103, 106, 116, 109, 125, 104, 113, 129, 100, 109, 132, 119, 103, 136, 113, 115, 109, 108, 113, 121, 120, 113, 108, 103, 112, 112, 121, 108, 111, 117, 123, 130, 105, 114, 108, 106, 104, 117, 113, 118, 118, 112, 107, 123, 109, 110, 124, 111, 112, 118, 106, 109, 103, 115, 115, 121, 127, 111, 121, 113, 122, 116, 111, 125, 111, 119, 106, 111, 119, 100, 126, 112, 109, 104, 115, 121, 97, 112, 116, 124, 111, 120, 97, 110, 114, 105, 115, 109, 110, 100, 104, 99, 115, 127, 113, 120, 116, 114, 118, 124, 110, 129, 108, 129, 110, 113, 107, 118, 113, 118, 112, 121, 119, 112, 114, 119, 101, 119, 110, 121, 115, 117, 112, 111, 119, 119, 123, 117, 117, 111, 115, 99, 104, 112, 119, 114, 119, 112, 125, 109, 105, 119, 109, 115, 119, 126, 134, 107, 124, 125, 118, 112, 116, 117, 105, 100, 106, 105, 109, 103, 125, 109, 132, 126, 109, 109, 117, 108, 119, 118, 125, 129, 118, 114, 113, 110, 115, 117, 116, 111, 102, 110, 117, 114, 109, 109, 117, 116, 116, 106, 121, 112, 107, 115, 110, 127, 109, 111, 128, 110, 115, 125, 126, 106, 108, 121, 117, 122, 103, 113, 114, 122, 110, 108, 102, 126, 107, 109, 111, 112, 105, 111, 111, 101, 111, 118, 123, 116, 130, 117, 107, 118, 113, 123, 116, 140, 109, 117, 99, 109, 117, 114, 127, 120, 113, 113, 112, 126, 121, 111, 105, 125, 122, 113, 115, 115, 129, 124, 114, 118, 114, 114, 127, 108, 114, 109, 127, 106, 121, 126, 111, 118, 113, 126, 114, 118, 109, 103, 116, 126, 115, 104, 113, 114, 124, 115, 107, 106, 107, 113, 106, 112, 118, 111, 130, 119, 111, 108, 113, 118, 116, 118, 111, 118, 104, 128, 114, 110, 107, 118, 111, 103, 127, 115, 122, 130, 104, 123, 114, 102, 142, 113, 113, 125, 112, 109, 113, 126, 120, 107, 106, 100, 120, 118, 98, 107, 125, 113, 114, 116, 130, 115, 119, 124, 115, 128, 119, 117, 112, 105, 114, 117, 109, 97, 93, 118, 107, 110, 114, 119, 116, 123, 133, 119, 109, 117, 122, 124, 106, 118, 115, 118, 112, 118, 108, 109, 109, 116, 105, 111, 121, 110, 120, 114, 110, 109, 111, 112, 110, 111, 112, 111, 112, 114, 104, 110, 119, 112, 113, 108, 114, 94, 116, 125, 122, 107, 121, 119, 107, 100, 115, 117, 92, 128, 129, 113, 121, 112, 126, 132, 110, 117, 126, 114, 95, 101, 106, 107, 114, 105, 114, 112, 119, 116, 122, 122, 115, 116, 109, 111, 91, 111, 107, 111, 114, 104, 104, 105, 107, 104, 106, 126, 122, 102, 108, 108, 110, 122, 105, 118, 111, 119, 111, 111, 103, 117, 90, 123, 122, 108, 118, 109, 121, 117, 111, 117, 127, 122, 113, 110, 122, 120, 123, 141, 124, 116, 121, 120, 106, 114, 111, 115, 111, 118, 114, 115, 110, 133, 104, 117, 122, 116, 115, 116, 117, 123, 105, 118, 103, 118, 105, 108, 100, 136, 117, 121, 123, 104, 113, 114, 111, 126, 127, 116, 111, 111, 107, 118, 117, 116, 115, 119, 114, 111, 129, 109, 108, 112, 117, 105, 113, 117, 111, 126, 116, 135, 112, 111, 120, 115, 115, 115, 119, 118, 107, 115, 118, 118, 125, 114, 111, 105, 138, 122, 121, 99, 113, 112, 127, 121, 105, 124, 116, 117, 106, 107, 117, 120, 101, 115, 108, 116, 106, 112, 111, 113, 99, 122, 112, 109, 122, 117, 120, 125, 123, 120, 121, 117, 106, 131, 119, 109, 108, 115, 114, 118, 116, 106, 115, 117, 108, 116, 115, 118, 117, 111, 117, 109, 116, 116, 110, 108, 115, 106, 111, 111, 115, 130, 118, 123, 120, 118, 124, 102, 137, 120, 119, 116, 124, 120, 106, 113, 112, 92, 91, 121, 113, 107, 115, 124, 122, 124, 101, 100, 118, 107, 106, 107, 132, 126, 137, 126, 119, 129, 102, 107, 114, 111, 97, 125, 106, 120, 105, 109, 111, 92, 103, 136, 102, 117, 115, 111, 115, 97, 107, 108, 146, 114, 121, 109, 111, 115, 116, 97, 109, 131, 110, 106, 128, 119, 102, 106, 112, 102, 126, 105, 112, 129, 107, 102, 120, 108, 113, 113, 103, 119, 114, 123, 122, 110, 109, 109, 99, 128, 121, 119, 107, 130, 121, 107, 119, 108, 111, 112, 103, 121, 120, 114, 110, 116, 108, 115, 103, 111, 120, 135, 122, 116, 121, 107, 126, 114, 108, 114, 119, 123, 105, 123, 117, 106, 110, 108, 114, 110, 126, 127, 119, 117, 110, 121, 117, 111, 122, 130, 129, 117, 125, 131, 107, 109, 115, 109, 98, 108, 134, 112, 110, 116, 106, 118, 109, 112, 118, 114, 106, 119, 107, 111, 128, 117, 110, 113, 130, 121, 115, 115, 115, 128, 113, 128, 117, 96, 102, 128, 109, 113, 109, 112, 92, 113, 119, 121, 113, 137, 115, 123, 114, 120, 110, 128, 123, 108, 109, 108, 124, 110, 117, 115, 123, 114, 123, 112, 126, 119, 120, 117, 115, 110, 111, 131, 118, 115, 116, 109, 124, 116, 126, 110, 111, 114, 123, 121, 112, 116, 109, 121, 116, 118, 124, 105, 120, 120, 127, 122, 120, 109, 119, 118, 117, 120, 116, 126, 105, 111, 112, 112, 106, 124, 118, 115, 116, 118, 109, 107, 117, 118, 108, 108, 117, 113, 122, 112, 110, 113, 125, 116, 106, 113, 111, 110, 117, 116, 115, 115, 112, 118, 109, 107, 112, 110, 123, 130, 115, 118, 118, 113, 116, 121, 107, 107, 127, 98, 117, 118, 115, 103, 126, 129, 111, 109, 121, 111, 112, 118, 123, 120, 114, 123, 111, 115, 114, 118, 114, 115, 111, 115, 118, 106, 110, 122, 111, 107, 114, 116, 126, 102, 116, 127, 113, 120, 112, 113, 116, 104, 107, 116, 118, 113, 112, 108, 92, 120, 120, 106, 109, 110, 115, 116, 100, 120, 110, 109, 111, 115, 122, 117, 125, 120, 122, 116, 119, 119, 122, 96, 120, 107, 113, 110, 121, 119, 112, 118, 128, 115, 95, 117, 117, 108, 110, 117, 116, 114, 120, 121, 117, 105, 104, 114, 129, 117, 109, 122, 115, 117, 114, 110, 111, 117, 118, 114, 112, 108, 119, 113, 128, 110, 109, 113, 115, 117, 117, 112, 113, 121, 113, 112, 102, 118, 118, 119, 127, 113, 108, 114, 113, 133, 110, 111, 109, 105, 116, 116, 119, 112, 108, 113, 112, 111, 116, 113, 114, 122, 112, 126, 113, 122, 110, 127, 114, 125, 112, 110, 116, 119, 124, 115, 110, 108, 111, 117, 114, 136, 100, 119, 117, 115, 119, 134, 97, 104, 120, 101, 114, 117, 108, 117, 116, 119, 113, 129, 116, 125, 121, 128, 114, 125, 121, 110, 116, 113, 115, 115, 112, 120, 95, 112, 116, 114, 111, 103, 110, 99, 111, 117, 115, 119, 123, 105, 120, 112, 116, 101, 122, 123, 109, 118, 117, 119, 109, 119, 99, 120, 111, 118, 122, 118, 113, 111, 115, 117, 124, 116, 108, 120, 104, 136, 122, 112, 121, 101, 105, 102, 120, 108, 115, 109, 107, 113, 112, 108, 118, 108, 109, 120, 117, 116, 117, 115, 118, 112, 108, 118, 119, 106, 114, 118, 116, 124, 114, 124, 114, 122, 116, 108, 93, 120, 121, 114, 117, 120, 111, 100, 119, 124, 107, 129, 115, 120, 109, 106, 121, 106, 120, 106, 110, 105, 124, 114, 114, 103, 119, 111, 137, 88, 111, 117, 158, 106, 117, 111, 116, 122, 124, 123, 115, 115, 103, 109, 107, 111, 103, 114, 122, 118, 119, 112, 126, 124, 121, 111, 115, 123, 118, 118, 106, 122, 114, 119, 117, 108, 118, 117, 118, 124, 122, 110, 118, 115, 111, 113, 119, 105, 120, 132, 108, 119, 118, 117, 107, 117, 121, 109, 119, 122, 121, 116, 118, 110, 115, 112, 118, 123, 111, 114, 121, 116, 111, 109, 106, 124, 107, 114, 104, 118, 112, 105, 115, 116, 119, 118, 125, 124, 106, 119, 124, 118, 112, 111, 116, 117, 118, 116, 125, 117, 118, 108, 107, 113, 117, 125, 87, 121, 111, 125, 107, 111, 110, 134, 111, 115, 107, 122, 121, 117, 123, 111, 105, 133, 113, 117, 144, 114, 116, 117, 118, 123, 89, 112, 112, 117, 122, 109, 115, 109, 123, 128, 117, 116, 129, 114, 103, 114, 112, 110, 114, 114, 120, 112, 118, 122, 95, 108, 119, 107, 115, 114, 119, 115, 105, 112, 107, 116, 118, 118, 103, 116, 105, 108, 120, 115, 118, 105, 114, 117, 104, 110, 116, 143, 114, 124, 119, 135, 117, 122, 108, 120, 111, 111, 111, 124, 121, 126, 109, 114, 111, 107, 103, 118, 114, 117, 117, 129, 103, 123, 116, 114, 119, 128, 113, 134, 112, 117, 119, 115, 111, 121, 114, 120, 122, 130, 117, 116, 112, 120, 116, 126, 147, 112, 112, 125, 111, 114, 116, 107, 117, 110, 118, 115, 120, 119, 109, 111, 88, 115, 109, 98, 118, 120, 110, 120, 119, 110, 113, 100, 114, 114, 104, 113, 104, 90, 104, 94, 118, 115, 113, 130, 115, 120, 107, 114, 117, 113, 116, 113, 113, 107, 105, 135, 112, 112, 116, 111, 116, 124, 111, 119, 132, 121, 99, 105, 114, 117, 109, 108, 133, 106, 113, 123, 114, 125, 110, 124, 102, 116, 121, 116, 113, 128, 115, 98, 116, 103, 121, 123, 122, 107, 118, 108, 116, 116, 114, 125, 113, 117, 119, 115, 104, 122, 113, 136, 137, 114, 121, 110, 117, 121, 126, 110, 135, 132, 137, 122, 113, 106, 120, 128, 105, 115, 104, 116, 117, 118, 108, 87, 116, 125, 106, 119, 117, 121, 118, 117, 113, 96, 115, 107, 118, 111, 112, 109, 113, 95, 119, 119, 116, 127, 125, 117, 114, 125, 118, 114, 122, 121, 111, 106, 114, 109, 116, 108, 118, 122, 111, 116, 100, 107, 117, 127, 114, 190, 115, 118, 114, 119, 109, 78, 113, 116, 114, 114, 116, 130, 119, 118, 117, 111, 107, 120, 114, 119, 105, 118, 128, 123, 117, 113, 112, 113, 108, 105, 110, 116, 110, 110, 114, 113, 115, 114, 112, 110, 98, 117, 107, 127, 120, 117, 116, 120, 104, 116, 108, 119, 124, 99, 116, 99, 118, 100, 108, 124, 110, 100, 116, 125, 115, 116, 131, 115, 126, 112, 119, 108, 114, 117, 119, 117, 115, 113, 109, 113, 109, 124, 113, 122, 101, 122, 109, 112, 110, 118, 112, 124, 114, 106, 111, 110, 109, 111, 116, 119, 107, 130, 88, 108, 109, 120, 111, 114, 114, 132, 114, 105, 107, 98, 110, 114, 113, 122, 113, 114, 127, 122, 90, 113, 115, 107, 103, 115, 109, 113, 119, 112, 125, 101, 109, 108, 120, 101, 122, 104, 120, 105, 113, 119, 109, 97, 113, 115, 121, 129, 114, 124, 117, 115, 125, 110, 118, 116, 107, 111, 120, 100, 124, 118, 111, 100, 116, 115, 96, 121, 128, 116, 96, 119, 115, 119, 116, 118, 122, 118, 121, 111, 102, 131, 119, 126, 124, 110, 118, 128, 106, 115, 89, 120, 118, 118, 137, 125, 102, 112, 105, 109, 134, 113, 109, 109, 127, 123, 113, 113, 110, 130, 109, 98, 127, 115, 118, 140, 118, 109, 118, 108, 108, 131, 119, 107, 107, 122, 120, 111, 101, 135, 112, 109, 123, 120, 124, 135, 110, 114, 117, 123, 129, 129, 128, 133, 123, 125, 101, 115, 126, 120, 122, 128, 108, 136, 109, 125, 113, 111, 120, 121, 100, 109, 116, 137, 125, 123, 124, 111, 129, 128, 110, 110, 125, 94, 102, 125, 124, 125, 109, 117, 116, 119, 115, 107, 110, 116, 105, 116, 142, 109, 129, 116, 117, 123, 112, 110, 101, 122, 101, 123, 119, 120, 106, 116, 110, 116, 92, 90, 111, 109, 124, 126, 110, 105, 115, 117, 109, 116, 133, 117, 142, 108, 104, 123, 115, 109, 117, 132, 131, 139, 118, 103, 118, 113, 119, 135, 143, 124, 112, 91, 106, 121, 124, 122, 118, 111, 122, 120, 115, 119, 104, 122, 123, 111, 140, 132, 122, 113, 119, 115, 120, 108, 117, 99, 118, 117, 118, 118, 115, 132, 125, 115, 109, 115, 99, 119, 106, 125, 120, 122, 119, 113, 121, 117, 109, 115, 114, 107, 113, 116, 121, 106, 129, 115, 117, 118, 116, 118, 115, 112, 105, 119, 107, 115, 113, 120, 125, 119, 121, 135, 124, 124, 116, 113, 110, 108, 103, 119, 115, 115, 111, 122, 107, 119, 106, 171, 110, 111, 111, 123, 119, 134, 115, 104, 124, 103, 111, 129, 96, 109, 106, 111, 117, 106, 115, 112, 115, 112, 115, 119, 115, 126, 115, 114, 117, 103, 120, 94, 116, 118, 140, 120, 103, 106, 117, 125, 117, 127, 123, 109, 112, 97, 122, 98, 102, 125, 118, 110, 124, 113, 122, 129, 105, 105, 123, 117, 100, 118, 120, 115, 108, 124, 106, 95, 119, 103, 117, 104, 114, 97, 116, 109, 115, 118, 108, 105, 124, 117, 102, 132, 112, 108, 107, 125, 99, 87, 122, 108, 130, 113, 131, 142, 105, 116, 111, 97, 113, 107, 119, 131, 101, 114, 97, 106, 128, 100, 109, 107, 124, 105, 100, 112, 117, 105, 97, 122, 124, 126, 108, 103, 127, 117, 115, 112, 130, 113, 123, 110, 98, 100, 117, 106, 118, 128, 109, 117, 134, 92, 119, 109, 116, 115, 105, 103, 97, 120, 112, 98, 119, 115, 104, 99, 127, 113, 128, 105, 128, 113, 119, 101, 104, 116, 108, 111, 112, 109, 131, 111, 118, 117, 120, 107, 106, 113, 132, 101, 127, 117, 110, 102, 95, 139, 88, 113, 104, 113, 102, 134, 136, 117, 103, 99, 115, 112, 116, 121, 117, 128, 121, 107, 119, 110, 99, 115, 112, 119, 103, 110, 112, 123, 99, 113, 102, 105, 124, 120, 95, 117, 113, 110, 130, 106, 124, 120, 112, 133, 132, 106, 113, 125, 121, 114, 109, 125, 132, 108, 114, 116, 99, 108, 123, 83, 110, 104, 120, 118, 108, 131, 123, 116, 119, 122, 119, 121, 117, 108, 104, 111, 107, 101, 116, 112, 107, 125, 116, 120, 119, 119, 120, 119, 118, 100, 95, 107, 131, 133, 123, 104, 111, 114, 114, 126, 98, 107, 119, 111, 118, 118, 111, 119, 110, 120, 116, 108, 113, 120, 114, 108, 110, 115, 114, 120, 118, 124, 116, 109, 111, 107, 114, 113, 108, 117, 113, 122, 113, 106, 114, 109, 121, 117, 117, 110, 111, 111, 114, 119, 119, 120, 117, 125, 116, 117, 117, 114, 116, 113, 116, 114, 115, 120, 123, 111, 117, 118, 111, 110, 112, 111, 114, 128, 111, 108, 125, 117, 121, 123, 122, 114, 130, 119, 114, 111, 116, 116, 118, 126, 125, 116, 111, 108, 115, 110, 110, 116, 105, 120, 114, 118, 115, 128, 130, 118, 119, 125, 115, 113, 111, 112, 119, 108, 112, 118, 107, 125, 112, 118, 124, 109, 111, 125, 125, 119, 117, 121, 111, 115, 124, 120, 111, 114, 117, 120, 123, 131, 114, 118, 108, 127, 115, 111, 119, 114, 116, 123, 113, 115, 112, 110, 110, 117, 118, 109, 121, 117, 99, 122, 114, 113, 112, 118, 121, 119, 96, 122, 121, 114, 117, 115, 117, 122, 122, 114, 106, 117, 113, 122, 107, 115, 124, 101, 120, 121, 124, 112, 114, 120, 108, 113, 106, 117, 119, 117, 120, 113, 111, 112, 107, 112, 106, 115, 110, 120, 105, 127, 130, 118, 114, 111, 110, 119, 111, 120, 110, 119, 110, 113, 131, 110, 115, 107, 128, 109, 117, 117, 125, 118, 105, 119, 121, 125, 120, 111, 113, 117, 117, 111, 116, 108, 112, 128, 121, 121, 115, 124, 121, 114, 111, 115, 113, 113, 124, 122, 127, 107, 121, 114, 107, 129, 108, 110, 115, 112, 112, 130, 112, 117, 123, 114, 114, 111, 109, 109, 129, 115, 99, 116, 105, 108, 120, 111, 109, 114, 122, 118, 123, 129, 113, 121, 110, 113, 118, 115, 116, 119, 120, 116, 118, 135, 108, 112, 127, 114, 118, 119, 109, 111, 123, 120, 119, 109, 117, 121, 107, 101, 115, 117, 108, 121, 118, 128, 115, 120, 119, 124, 121, 126, 119, 119, 119, 121, 115, 124, 121, 117, 121, 109, 113, 114, 109, 106, 123, 115, 115, 111, 116, 128, 113, 117, 115, 113, 105, 116, 123, 106, 130, 107, 108, 114, 117, 116, 123, 113, 120, 114, 118, 114, 112, 113, 118, 121, 110, 115, 121, 111, 110, 117, 117, 110, 114, 122, 117, 132, 108, 130, 111, 124, 117, 118, 105, 115, 117, 114, 116, 107, 118, 118, 120, 112, 110, 122, 119, 128, 114, 123, 127, 114, 106, 126, 129, 111, 121, 114, 112, 118, 118, 117, 107, 123, 119, 108, 119, 115, 113, 107, 124, 121, 122, 110, 114, 115, 112, 116, 113, 117, 107, 116, 115, 117, 112, 110, 120, 118, 123, 113, 115, 120, 119, 115, 115, 115, 108, 108, 121, 106, 108, 115, 113, 124, 130, 113, 115, 116, 122, 114, 117, 110, 126, 128, 105, 111, 121, 129, 112, 117, 132, 123, 117, 119, 122, 125, 124, 126, 111, 113, 119, 120, 118, 113, 117, 116, 123, 110, 110, 125, 103, 100, 115, 122, 116, 108, 108, 116, 114, 109, 113, 111, 109, 109, 112, 108, 114, 114, 110, 114, 115, 112, 143, 106, 117, 129, 120, 113, 116, 95, 120, 120, 116, 108, 94, 126, 113, 139, 96, 124, 126, 121, 117, 118, 109, 118, 112, 116, 108, 110, 111, 117, 107, 104, 105, 105, 109, 117, 117, 109, 115, 121, 118, 131, 112, 103, 108, 116, 105, 106, 104, 104, 112, 111, 102, 112, 118, 122, 120, 114, 121, 117, 111, 108, 111, 126, 108, 126, 106, 124, 120, 114, 114, 119, 136, 115, 132, 120, 126, 130, 117, 119, 128, 130, 116, 103, 110, 116, 101, 118, 106, 120, 106, 121, 123, 120, 116, 97, 105, 120, 126, 115, 127, 116, 124, 101, 108, 113, 110, 111, 110, 114, 120, 122, 123, 116, 123, 118, 114, 121, 123, 115, 115, 110, 120, 130, 125, 125, 113, 119, 115, 123, 116, 114, 115, 113, 112, 126, 124, 125, 120, 114, 121, 102, 115, 130, 126, 109, 128, 119, 114, 110, 90, 114, 127, 96, 107, 120, 125, 112, 70, 119, 102, 110, 108, 111, 97, 110, 130, 101, 118, 122, 112, 115, 123, 116, 101, 116, 135, 113, 120, 117, 115, 144, 115, 112, 101, 116, 121, 118, 118, 108, 113, 129, 122, 124, 112, 112, 122, 126, 123, 108, 119, 116, 108, 119, 112, 134, 116, 118, 117, 119, 112, 115, 113, 109, 113, 125, 117, 117, 128, 126, 116, 116, 111, 98, 106, 114, 111, 109, 106, 118, 109, 116, 109, 111, 119, 136, 97, 128, 123, 105, 126, 116, 111, 114, 111, 97, 98, 109, 104, 115, 121, 104, 108, 107, 110, 84, 106, 110, 113, 123, 110, 120, 119, 116, 136, 116, 116, 119, 120, 100, 116, 104, 108, 118, 118, 109, 122, 104, 100, 123, 121, 123, 125, 127, 109, 125, 125, 107, 131, 109, 114, 127, 122, 116, 110, 119, 108, 104, 113, 112, 106, 126, 116, 114, 143, 123, 103, 97, 111, 114, 102, 113, 124, 115, 121, 125, 113, 105, 112, 122, 113, 118, 103, 105, 110, 113, 123, 115, 116, 110, 130, 119, 115, 102, 123, 108, 109, 95, 122, 122, 117, 109, 108, 106, 112, 99, 106, 127, 112, 123, 113, 102, 118, 125, 107, 111, 111, 107, 109, 117, 115, 114, 108, 104, 116, 118, 131, 130, 100, 100, 117, 106, 100, 115, 108, 122, 113, 105, 113, 120, 123, 108, 119, 132, 111, 118, 123, 124, 130, 124, 105, 114, 114, 107, 108, 131, 118, 112, 103, 103, 111, 116, 108, 89, 114, 113, 108, 130, 107, 117, 115, 113, 120, 100, 117, 124, 148, 103, 113, 124, 101, 110, 110, 122, 123, 120, 99, 109, 112, 110, 120, 121, 105, 112, 109, 111, 131, 114, 111, 104, 110, 102, 103, 120, 130, 119, 110, 116, 119, 126, 110, 115, 117, 115, 117, 124, 99, 114, 98, 125, 121, 121, 100, 118, 121, 110, 117, 121, 112, 105, 106, 116, 106, 110, 113, 109, 98, 113, 116, 117, 120, 109, 123, 107, 114, 112, 112, 108, 118, 126, 97, 122, 107, 117, 123, 95, 109, 119, 129, 120, 100, 119, 121, 112, 106, 123, 125, 116, 112, 110, 111, 109, 111, 108, 120, 113, 112, 110, 109, 118, 126, 117, 108, 125, 116, 127, 110, 118, 117, 110, 118, 116, 113, 122, 120, 111, 117, 121, 104, 115, 125, 103, 123, 116, 108, 120, 116, 111, 110, 121, 101, 109, 116, 126, 113, 98, 117, 123, 115, 117, 106, 117, 129, 120, 108, 112, 118, 117, 116, 117, 127, 122, 128, 115, 115, 108, 120, 121, 114, 109, 112, 121, 106, 118, 117, 117, 113, 116, 110, 118, 115, 117, 118, 118, 122, 118, 109, 124, 123, 114, 113, 107, 114, 116, 120, 103, 113, 105, 116, 117, 98, 121, 117, 121, 108, 108, 115, 112, 113, 113, 112, 122, 107, 122, 112, 119, 114, 116, 126, 119, 112, 114, 124, 117, 124, 125, 118, 109, 120, 120, 108, 114, 112, 110, 118, 114, 125, 118, 106, 110, 112, 121, 123, 116, 126, 110, 116, 106, 122, 115, 116, 120, 109, 115, 111, 132, 120, 108, 112, 103, 115, 115, 110, 117, 118, 120, 105, 115, 106, 114, 113, 122, 107, 114, 111, 109, 119, 111, 114, 110, 127, 117, 118, 114, 108, 112, 110, 116, 107, 118, 107, 107, 110, 113, 127, 118, 115, 116, 122, 120, 120, 120, 114, 118, 124, 115, 108, 120, 113, 111, 118, 122, 116, 118, 113, 111, 103, 111, 114, 114, 105, 128, 117, 108, 118, 125, 108, 112, 113, 112, 111, 112, 113, 115, 119, 116, 107, 114, 121, 119, 123, 112, 117, 111, 119, 117, 116, 115, 110, 121, 124, 112, 113, 104, 111, 120, 106, 111, 118, 114, 120, 112, 131, 110, 114, 123, 115, 118, 109, 120, 113, 104, 123, 105, 113, 121, 120, 117, 114, 113, 118, 109, 123, 104, 120, 115, 106, 118, 101, 106, 117, 111, 114, 106, 121, 115, 121, 111, 111, 120, 105, 111, 113, 117, 105, 119, 110, 114, 109, 121, 124, 117, 119, 108, 107, 124, 110, 122, 118, 115, 105, 110, 122, 114, 111, 115, 122, 117, 116, 119, 105, 123, 123, 111, 118, 112, 123, 112, 122, 118, 102, 112, 109, 121, 113, 115, 118, 107, 113, 122, 117, 125, 110, 112, 111, 107, 112, 114, 114, 111, 112, 116, 119, 128, 114, 126, 122, 111, 102, 118, 123, 120, 129, 107, 114, 113, 111, 118, 114, 110, 112, 119, 105, 106, 113, 122, 113, 110, 123, 113, 111, 118, 120, 112, 118, 110, 117, 120, 102, 116, 108, 117, 119, 125, 123, 107, 127, 117, 116, 109, 122, 117, 110, 116, 105, 125, 129, 123, 115, 105, 114, 124, 114, 108, 122, 106, 115, 107, 119, 116, 114, 117, 114, 121, 113, 122, 115, 112, 127, 108, 114, 116, 116, 119, 103, 114, 118, 116, 119, 117, 121, 123, 111, 112, 108, 115, 100, 111, 114, 113, 117, 115, 121, 105, 117, 103, 121, 113, 118, 119, 119, 129, 109, 111, 118, 110, 118, 117, 129, 123, 121, 112, 114, 112, 114, 119, 123, 123, 118, 116, 109, 108, 115, 114, 103, 119, 117, 113, 113, 115, 111, 114, 128, 120, 114, 105, 121, 121, 117, 114, 108, 112, 125, 123, 110, 98, 110, 142, 120, 115, 106, 112, 110, 107, 121, 123, 116, 125, 107, 109, 106, 115, 126, 112, 105, 110, 115, 118, 113, 116, 112, 123, 105, 119, 109, 117, 107, 124, 106, 100, 126, 115, 120, 124, 122, 114, 113, 123, 103, 116, 103, 112, 83, 112, 112, 133, 110, 117, 102, 126, 123, 111, 130, 107, 126, 108, 128, 106, 106, 102, 123, 102, 102, 124, 134, 104, 115, 106, 115, 112, 111, 121, 105, 104, 109, 106, 108, 99, 111, 123, 107, 107, 105, 118, 121, 111, 125, 104, 115, 108, 101, 116, 116, 127, 110, 123, 119, 117, 118, 128, 114, 113, 112, 113, 99, 99, 98, 107, 101, 129, 113, 117, 122, 126, 125, 99, 123, 109, 102, 108, 103, 116, 121, 111, 113, 101, 104, 107, 112, 113, 111, 103, 111, 106, 114, 98, 107, 120, 98, 115, 106, 141, 116, 133, 113, 111, 122, 120, 123, 108, 101, 101, 107, 114, 120, 104, 118, 118, 113, 114, 128, 117, 107, 65, 111, 109, 114, 103, 109, 148, 121, 121, 95, 126, 114, 118, 115, 120, 116, 113, 100, 130, 114, 100, 110, 109, 125, 105, 113, 109, 128, 126, 120, 113, 109, 106, 115, 110, 123, 127, 115, 120, 112, 124, 110, 100, 122, 115, 121, 107, 115, 98, 113, 105, 132, 112, 112, 120, 121, 113, 97, 101, 112, 110, 116, 120, 100, 113, 114, 119, 112, 126, 111, 125, 117, 134, 126, 140, 138, 126, 116, 118, 105, 126, 121, 115, 122, 130, 121, 109, 119, 108, 112, 108, 115, 108, 100, 111, 109, 98, 119, 113, 108, 102, 126, 112, 101, 114, 107, 95, 106, 117, 102, 108, 119, 115, 121, 95, 114, 96, 109, 107, 110, 120, 113, 112, 113, 117, 104, 108, 111, 111, 113, 120, 107, 119, 109, 101, 116, 139, 119, 112, 107, 126, 112, 106, 105, 116, 126, 131, 126, 117, 117, 123, 107, 129, 116, 127, 97, 105, 97, 111, 110, 120, 109, 111, 133, 111, 99, 112, 110, 100, 120, 97, 125, 122, 131, 92, 126, 122, 116, 120, 113, 112, 131, 122, 116, 120, 105, 114, 132, 129, 97, 109, 97, 118, 114, 126, 130, 108, 108, 118, 104, 112, 114, 113, 120, 116, 123, 111, 115, 103, 99, 111, 108, 105, 114, 112, 113, 100, 105, 123, 111, 128, 117, 122, 129, 99, 124, 120, 103, 113, 107, 105, 115, 107, 121, 110, 123, 113, 119, 114, 133, 111, 119, 105, 105, 107, 99, 106, 115, 113, 141, 109, 113, 118, 92, 114, 127, 117, 107, 110, 111, 135, 122, 114, 110, 109, 104, 128, 104, 108, 114, 110, 118, 104, 104, 115, 117, 106, 122, 110, 105, 111, 112, 108, 104, 113, 114, 103, 91, 109, 100, 107, 110, 97, 125, 100, 122, 108, 106, 109, 122, 101, 107, 115, 115, 110, 105, 102, 115, 118, 123, 130, 118, 107, 109, 115, 106, 121, 107, 116, 112, 117, 105, 114, 106, 110, 108, 121, 110, 124, 115, 121, 118, 102, 115, 122, 117, 103, 106, 126, 125, 104, 114, 108, 122, 113, 152, 125, 119, 105, 123, 119, 112, 112, 125, 111, 132, 109, 98, 111, 114, 128, 130, 121, 118, 115, 119, 119, 115, 112, 113, 110, 118, 122, 116, 93, 114, 105, 136, 122, 120, 125, 115, 133, 106, 123, 128, 102, 106, 124, 139, 132, 118, 115, 125, 98, 90, 116, 101, 116, 113, 115, 106, 104, 125, 83, 105, 103, 108, 114, 110, 101, 106, 113, 104, 105, 123, 119, 103, 95, 113, 98, 134, 129, 120, 109, 95, 95, 103, 165, 138, 118, 115, 94, 124, 111, 102, 109, 118, 113, 121, 93, 107, 96, 130, 94, 132, 128, 123, 127, 114, 114, 137, 119, 118, 135, 117, 104, 128, 102, 129, 110, 109, 108, 109, 115, 94, 125, 117, 115, 131, 110, 116, 105, 101, 108, 124, 110, 134, 107, 132, 125, 110, 121, 120, 126, 134, 122, 123, 125, 104, 99, 123, 111, 114, 104, 116, 123, 102, 93, 116, 123, 115, 108, 125, 103, 98, 99, 123, 106, 96, 129, 112, 133, 104, 114, 110, 101, 117, 106, 127, 116, 117, 125, 113, 102, 106, 125, 115, 114, 87, 107, 106, 107, 106, 123, 109, 124, 101, 133, 117, 91, 115, 118, 107, 110, 101, 121, 124, 107, 120, 108, 122, 105, 129, 117, 108, 113, 106, 134, 135, 112, 124, 104, 133, 113, 108, 119, 102, 119, 126, 96, 107, 125, 112, 110, 110, 105, 132, 113, 101, 108, 106, 103, 131, 122, 140, 130, 115, 127, 114, 106, 132, 121, 128, 114, 109, 111, 121, 112, 124, 122, 125, 114, 119, 120, 97, 116, 108, 108, 102, 101, 111, 102, 117, 109, 112, 115, 116, 100, 91, 103, 117, 118, 115, 122, 115, 93, 86, 103, 112, 116, 94, 107, 126, 130, 105, 110, 111, 109, 129, 108, 129, 112, 108, 114, 127, 103, 102, 118, 100, 118, 111, 121, 108, 106, 104, 118, 110, 115, 138, 111, 106, 94, 111, 128, 110, 106, 110, 114, 137, 121, 108, 110, 105, 114, 119, 97, 107, 114, 124, 100, 103, 124, 87, 94, 111, 117, 108, 117, 117, 112, 95, 107, 109, 114, 102, 101, 121, 113, 111, 111, 106, 89, 97, 139, 111, 116, 107, 109, 117, 121, 115, 102, 101, 126, 99, 116, 124, 94, 116, 118, 105, 101, 122, 96, 106, 123, 120, 117, 101, 127, 120, 130, 102, 118, 122, 96, 126, 105, 125, 92, 109, 114, 105, 108, 105, 102, 104, 113, 96, 146, 113, 134, 91, 135, 123, 112, 112, 119, 110, 122, 105, 122, 107, 108, 123, 126, 121, 121, 94, 104, 110, 108, 114, 121, 120, 113, 115, 104, 133, 120, 104, 109, 139, 144, 102, 98, 123, 91, 111, 109, 133, 126, 127, 127, 122, 117, 124, 103, 128, 86, 128, 117, 110, 121, 126, 107, 131, 126, 122, 84, 117, 93, 94, 120, 93, 84, 105, 109, 109, 124, 113, 124, 112, 106, 111, 97, 110, 126, 104, 117, 84, 111, 116, 122, 121, 104, 120, 112, 139, 112, 127, 127, 137, 129, 121, 127, 115, 100, 111, 109, 108, 111, 105, 116, 122, 115, 131, 113, 110, 99, 104, 111, 104, 123, 125, 104, 109, 108, 113, 119, 114, 93, 106, 118, 108, 118, 116, 120, 124, 116, 114, 120, 110, 115, 108, 116, 123, 123, 110, 108, 109, 120, 116, 123, 110, 97, 122, 111, 111, 125, 106, 104, 115, 105, 102, 120, 119, 115, 112, 110, 120, 112, 109, 119, 114, 111, 121, 108, 106, 109, 113, 108, 111, 120, 112, 116, 95, 114, 112, 110, 104, 108, 111, 115, 129, 118, 109, 106, 118, 120, 108, 123, 126, 119, 107, 120, 107, 119, 109, 129, 124, 108, 122, 109, 121, 111, 100, 104, 111, 118, 115, 110, 118, 102, 102, 106, 117, 132, 102, 111, 119, 110, 114, 118, 106, 113, 110, 121, 111, 126, 112, 107, 108, 108, 112, 110, 124, 101, 122, 111, 109, 109, 103, 115, 109, 114, 99, 105, 131, 115, 120, 116, 99, 123, 113, 100, 98, 114, 114, 118, 118, 124, 106, 127, 120, 108, 126, 108, 115, 112, 118, 123, 112, 111, 123, 110, 113, 119, 118, 125, 112, 110, 119, 128, 113, 106, 110, 111, 108, 122, 113, 119, 111, 103, 127, 99, 99, 105, 103, 109, 110, 106, 114, 100, 115, 103, 108, 121, 122, 113, 112, 122, 110, 108, 99, 118, 124, 115, 125, 120, 118, 107, 108, 112, 120, 104, 107, 117, 117, 118, 104, 128, 107, 103, 110, 123, 106, 115, 111, 120, 115, 119, 122, 115, 133, 111, 108, 108, 124, 120, 123, 122, 107, 121, 120, 119, 102, 114, 123, 105, 120, 106, 114, 121, 119, 112, 115, 107, 109, 104, 116, 117, 108, 110, 111, 109, 125, 122, 121, 107, 114, 101, 106, 113, 109, 116, 131, 126, 115, 111, 112, 113, 111, 121, 110, 120, 107, 107, 116, 130, 110, 116, 106, 112, 117, 109, 115, 111, 133, 115, 116, 129, 120, 123, 112, 113, 116, 105, 114, 106, 125, 116, 114, 110, 116, 110, 102, 110, 118, 104, 90, 114, 101, 104, 108, 115, 114, 113, 105, 101, 115, 98, 109, 106, 132, 102, 102, 106, 114, 112, 98, 102, 100, 110, 131, 125, 129, 123, 116, 123, 112, 112, 112, 128, 100, 98, 108, 140, 123, 117, 99, 124, 114, 116, 111, 98, 108, 114, 110, 116, 118, 110, 112, 107, 114, 110, 117, 139, 116, 105, 91, 106, 109, 138, 114, 122, 122, 122, 109, 123, 111, 114, 122, 113, 93, 110, 113, 113, 111, 130, 108, 112, 123, 124, 116, 105, 109, 113, 130, 115, 117, 112, 117, 122, 116, 109, 117, 131, 127, 113, 100, 131, 124, 103, 112, 109, 115, 116, 109, 115, 123, 118, 114, 112, 118, 107, 123, 120, 110, 111, 111, 119, 124, 125, 111, 122, 107, 114, 121, 115, 115, 116, 127, 114, 117, 116, 116, 115, 101, 130, 124, 106, 114, 99, 117, 104, 116, 100, 107, 140, 112, 127, 110, 114, 119, 126, 114, 120, 104, 101, 120, 122, 107, 116, 114, 113, 109, 126, 128, 110, 108, 109, 104, 137, 106, 117, 107, 114, 119, 119, 115, 112, 111, 117, 120, 119, 129, 110, 113, 105, 102, 117, 110, 130, 111, 121, 107, 116, 111, 112, 123, 95, 111, 116, 129, 116, 111, 126, 123, 101, 117, 106, 120, 132, 129, 113, 125, 113, 128, 110, 107, 112, 110, 123, 110, 107, 125, 110, 120, 114, 123, 121, 123, 112, 111, 109, 132, 129, 113, 118, 118, 115, 110, 122, 109, 130, 111, 110, 106, 111, 104, 123, 118, 109, 113, 128, 109, 112, 119, 116, 121, 121, 103, 113, 121, 115, 107, 138, 128, 102, 105, 123, 125, 111, 115, 122, 110, 127, 113, 111, 124, 118, 122, 127, 114, 122, 116, 117, 111, 119, 118, 121, 118, 115, 110, 119, 111, 113, 117, 110, 119, 109, 119, 114, 112, 120, 118, 108, 111, 129, 120, 122, 110, 120, 120, 115, 112, 124, 112, 106, 120, 106, 116, 111, 96, 118, 111, 108, 116, 122, 121, 113, 138, 123, 118, 105, 126, 115, 119, 109, 108, 124, 120, 115, 118, 110, 118, 110, 116, 113, 130, 127, 115, 118, 117, 126, 111, 110, 115, 104, 85, 110, 112, 117, 131, 117, 106, 110, 101, 114, 113, 116, 128, 123, 110, 109, 128, 101, 127, 123, 108, 102, 108, 117, 113, 121, 109, 122, 118, 106, 117, 113, 112, 123, 113, 105, 100, 120, 119, 109, 113, 106, 111, 104, 121, 120, 102, 109, 104, 111, 106, 103, 108, 115, 119, 122, 112, 118, 126, 112, 114, 107, 116, 118, 106, 108, 120, 113, 121, 120, 108, 109, 117, 125, 125, 100, 126, 112, 118, 127, 100, 123, 112, 114, 124, 125, 119, 112, 104, 134, 111, 118, 108, 108, 104, 114, 117, 114, 119, 97, 113, 118, 106, 124, 107, 103, 116, 104, 113, 103, 104, 112, 105, 121, 116, 119, 116, 121, 112, 123, 113, 119, 115, 119, 116, 93, 113, 116, 115, 130, 107, 113, 90, 103, 101, 120, 121, 132, 107, 125, 122, 118, 125, 113, 121, 109, 112, 103, 117, 114, 106, 112, 123, 121, 118, 104, 120, 114, 110, 114, 126, 124, 111, 115, 104, 116, 122, 104, 119, 107, 102, 111, 122, 116, 107, 120, 109, 125, 134, 109, 107, 109, 110, 107, 119, 108, 118, 115, 109, 114, 118, 108, 111, 98, 113, 108, 118, 132, 116, 131, 111, 116, 125, 121, 131, 108, 119, 114, 120, 115, 118, 128, 114, 107, 126, 120, 114, 97, 111, 110, 100, 101, 114, 121, 106, 114, 118, 112, 136, 123, 107, 113, 125, 120, 117, 118, 123, 116, 126, 119, 122, 112, 100, 120, 115, 107, 106, 118, 121, 110, 104, 119, 122, 112, 116, 124, 126, 116, 115, 106, 118, 108, 122, 107, 133, 115, 117, 97, 118, 116, 114, 122, 115, 112, 103, 118, 117, 111, 110, 112, 105, 118, 111, 124, 120, 118, 131, 120, 125, 119, 123, 140, 112, 113, 116, 117, 102, 116, 118, 115, 101, 117, 122, 118, 97, 123, 121, 119, 113, 115, 110, 115, 105, 111, 117, 113, 121, 121, 132, 115, 115, 118, 106, 122, 99, 118, 110, 111, 118, 119, 131, 131, 116, 107, 112, 114, 95, 116, 112, 105, 138, 116, 112, 152, 129, 117, 109, 105, 124, 116, 111, 101, 105, 135, 97, 118, 111, 121, 112, 112, 94, 112, 120, 109, 110, 127, 88, 131, 121, 79, 120, 114, 89, 84, 103, 116, 122, 121, 129, 116, 112, 118, 109, 111, 111, 113, 119, 122, 108, 129, 125, 130, 119, 121, 131, 107, 113, 118, 104, 135, 119, 108, 112, 114, 125, 109, 112, 109, 119, 117, 129, 126, 103, 124, 107, 125, 117, 122, 115, 116, 106, 116, 117, 117, 110, 109, 106, 105, 106, 105, 120, 113, 109, 125, 121, 112, 86, 112, 125, 119, 113, 113, 124, 103, 43, 104, 111, 104, 117, 107, 113, 126, 124, 113, 121, 108, 125, 99, 123, 117, 117, 118, 115, 108, 118, 118, 119, 108, 110, 99, 112, 112, 106, 111, 116, 114, 111, 119, 114, 114, 123, 129, 116, 115, 121, 109, 105, 112, 123, 122, 119, 121, 107, 122, 115, 105, 121, 127, 124, 103, 139, 119, 116, 119, 137, 131, 105, 118, 115, 101, 122, 115, 107, 111, 97, 109, 98, 113, 128, 104, 118, 112, 119, 129, 118, 99, 106, 112, 120, 124, 108, 104, 106, 129, 109, 113, 123, 115, 111, 100, 112, 113, 126, 121, 121, 115, 128, 104, 117, 112, 130, 117, 108, 128, 140, 106, 115, 111, 117, 111, 102, 115, 116, 117, 112, 121, 119, 125, 104, 115, 113, 109, 121, 105, 157, 102, 119, 119, 123, 121, 120, 112, 118, 113, 119, 113, 106, 127, 113, 125, 111, 107, 123, 132, 108, 111, 119, 134, 110, 112, 108, 128, 94, 138, 102, 107, 103, 100, 110, 119, 117, 121, 117, 173, 118, 115, 120, 104, 116, 120, 120, 100, 100, 110, 103, 123, 110, 121, 126, 119, 101, 102, 121, 113, 127, 104, 104, 118, 107, 115, 108, 113, 98, 118, 123, 110, 110, 103, 120, 121, 119, 124, 125, 99, 116, 112, 113, 110, 121, 120, 86, 115, 105, 107, 128, 138, 128, 116, 107, 118, 111, 128, 111, 122, 117, 125, 111, 111, 125, 112, 120, 134, 121, 120, 125, 127, 106, 118, 125, 110, 131, 118, 119, 115, 121, 111, 103, 113, 120, 119, 117, 112, 120, 121, 115, 114, 123, 115, 105, 111, 106, 135, 111, 121, 120, 108, 115, 104, 137, 111, 114, 128, 113, 109, 123, 114, 120, 119, 114, 122, 125, 108, 119, 116, 115, 114, 118, 120, 124, 104, 116, 106, 105, 124, 121, 120, 111, 123, 109, 114, 108, 96, 108, 98, 111, 134, 122, 118, 110, 147, 132, 105, 112, 120, 123, 107, 126, 111, 110, 107, 120, 88, 109, 106, 107, 112, 108, 99, 114, 93, 110, 102, 118, 123, 117, 94, 107, 119, 116, 113, 117, 117, 111, 128, 112, 118, 133, 122, 123, 100, 121, 116, 118, 106, 120, 113, 98, 110, 123, 97, 116, 102, 116, 117, 123, 117, 101, 105, 129, 107, 119, 115, 123, 120, 109, 110, 111, 119, 109, 117, 101, 116, 119, 119, 112, 120, 123, 105, 123, 129, 121, 112, 114, 116, 91, 106, 106, 111, 116, 121, 118, 113, 118, 107, 97, 115, 105, 112, 110, 109, 111, 105, 105, 116, 116, 138, 134, 114, 133, 137, 118, 111, 110, 121, 116, 112, 118, 111, 106, 108, 129, 121, 123, 104, 115, 111, 105, 99, 99, 132, 110, 95, 121, 138, 115, 125, 105, 120, 120, 113, 104, 104, 126, 112, 110, 115, 117, 117, 108, 111, 117, 134, 117, 119, 112, 117, 113, 117, 115, 93, 108, 118, 103, 121, 102, 129, 118, 131, 129, 103, 120, 122, 103, 105, 126, 131, 101, 122, 124, 100, 111, 141, 121, 106, 115, 110, 116, 121, 122, 124, 106, 131, 121, 121, 110, 124, 107, 104, 121, 118, 111, 129, 121, 97, 119, 103, 124, 111, 108, 112, 102, 110, 112, 91, 105, 107, 130, 94, 118, 116, 122, 121, 124, 125, 130, 122, 108, 106, 109, 114, 133, 108, 101, 110, 123, 111, 114, 128, 119, 98, 170, 110, 114, 101, 111, 114, 125, 119, 102, 106, 118, 92, 106, 104, 104, 128, 117, 119, 124, 107, 98, 99, 122, 109, 88, 116, 117, 110, 95, 112, 118, 126, 108, 118, 108, 97, 120, 112, 118, 133, 107, 111, 127, 128, 114, 114, 88, 109, 105, 124, 102, 130, 131, 118, 118, 137, 118, 113, 124, 111, 105, 99, 117, 128, 127, 116, 123, 120, 112, 108, 131, 122, 101, 132, 111, 119, 118, 114, 121, 106, 114, 117, 132, 116, 117, 104, 108, 107, 101, 113, 133, 121, 108, 122, 102, 106, 121, 125, 114, 111, 114, 103, 130, 101, 106, 102, 119, 107, 125, 117, 106, 98, 106, 105, 118, 113, 115, 120, 127, 111, 131, 106, 114, 108, 110, 111, 117, 114, 100, 103, 124, 107, 113, 110, 117, 129, 115, 125, 101, 121, 121, 130, 109, 120, 113, 104, 113, 109, 126, 108, 120, 110, 74, 135, 110, 103, 117, 110, 118, 133, 113, 111, 122, 115, 109, 119, 125, 116, 115, 116, 121, 112, 119, 107, 100, 113, 109, 119, 98, 108, 103, 116, 118, 114, 123, 114, 132, 102, 112, 112, 99, 122, 101, 123, 116, 121, 106, 127, 122, 113, 129, 115, 109, 118, 113, 116, 101, 105, 104, 110, 111, 110, 128, 104, 135, 118, 123, 107, 142, 132, 104, 104, 127, 123, 105, 114, 130, 94, 102, 113, 124, 117, 123, 133, 123, 114, 116, 112, 115, 121, 109, 129, 118, 104, 119, 114, 123, 132, 118, 127, 97, 125, 115, 115, 104, 116, 125, 110, 110, 114, 112, 117, 107, 104, 114, 109, 108, 128, 117, 112, 123, 113, 111, 104, 115, 119, 113, 107, 111, 115, 105, 115, 91, 113, 110, 119, 114, 110, 141, 115, 123, 103, 116, 103, 119, 113, 115, 103, 80, 128, 119, 120, 116, 114, 99, 122, 126, 118, 100, 134, 99, 105, 108, 112, 129, 119, 118, 114, 132, 119, 123, 105, 113, 113, 100, 104, 115, 127, 130, 108, 115, 102, 93, 125, 118, 108, 104, 109, 120, 111, 126, 129, 109, 125, 99, 106, 120, 111, 99, 116, 101, 118, 107, 98, 117, 116, 121, 124, 123, 119, 108, 119, 115, 107, 103, 117, 122, 110, 120, 113, 115, 101, 115, 113, 120, 120, 95, 96, 110, 111, 116, 119, 106, 109, 103, 116, 131, 119, 127, 113, 104, 109, 104, 140, 113, 106, 114, 121, 108, 111, 111, 115, 113, 107, 121, 115, 96, 118, 109, 120, 119, 115, 116, 115, 108, 115, 106, 123, 110, 116, 107, 130, 124, 105, 118, 106, 117, 117, 124, 110, 80, 109, 113, 98, 116, 116, 110, 103, 119, 117, 107, 119, 129, 113, 115, 105, 111, 111, 114, 114, 111, 96, 135, 115, 124, 109, 119, 121, 120, 123, 109, 114, 112, 117, 128, 108, 112, 121, 123, 115, 114, 117, 116, 117, 111, 126, 111, 119, 120, 117, 109, 116, 127, 104, 129, 121, 124, 114, 114, 106, 89, 119, 113, 121, 108, 114, 114, 112, 103, 128, 121, 110, 107, 113, 87, 104, 118, 118, 123, 113, 114, 118, 113, 121, 92, 103, 108, 110, 114, 120, 117, 113, 108, 114, 120, 115, 121, 111, 132, 121, 118, 117, 107, 120, 104, 118, 112, 114, 113, 122, 123, 112, 111, 110, 130, 118, 120, 112, 108, 124, 118, 110, 124, 107, 118, 112, 125, 118, 113, 111, 108, 114, 110, 131, 104, 124, 109, 107, 117, 121, 110, 114, 116, 103, 114, 115, 108, 102, 114, 117, 106, 104, 126, 113, 111, 112, 128, 116, 112, 115, 117, 117, 144, 116, 113, 118, 103, 111, 114, 124, 116, 126, 118, 115, 97, 117, 115, 109, 126, 118, 108, 110, 115, 130, 115, 111, 107, 109, 113, 112, 122, 117, 105, 112, 118, 116, 116, 110, 120, 104, 101, 116, 114, 112, 119, 128, 111, 114, 120, 124, 115, 100, 116, 106, 110, 122, 101, 111, 113, 105, 119, 118, 118, 111, 115, 119, 121, 112, 104, 110, 114, 129, 105, 147, 122, 110, 126, 127, 108, 122, 103, 104, 110, 121, 118, 106, 110, 121, 109, 117, 115, 124, 113, 121, 118, 122, 111, 106, 118, 112, 99, 112, 122, 115, 116, 112, 111, 125, 128, 109, 118, 128, 124, 114, 116, 96, 117, 114, 120, 112, 110, 111, 121, 113, 116, 114, 115, 121, 132, 111, 108, 130, 111, 115, 100, 119, 128, 118, 112, 121, 131, 116, 115, 115, 106, 124, 104, 105, 112, 114, 110, 113, 118, 121, 107, 104, 116, 122, 115, 117, 109, 119, 113, 113, 140, 113, 112, 123, 118, 113, 105, 117, 113, 95, 122, 109, 114, 106, 115, 122, 117, 113, 120, 115, 113, 112, 108, 107, 113, 110, 118, 120, 124, 118, 98, 109, 111, 112, 116, 104, 115, 99, 114, 115, 109, 112, 120, 122, 130, 105, 116, 121, 112, 124, 112, 111, 114, 114, 121, 116, 98, 107, 114, 119, 113, 114, 118, 111, 109, 117, 116, 114, 112, 119, 108, 108, 111, 110, 114, 111, 113, 123, 131, 115, 117, 131, 105, 124, 112, 108, 122, 114, 109, 117, 115, 103, 125, 105, 123, 123, 103, 116, 137, 116, 114, 108, 107, 115, 113, 109, 107, 116, 112, 121, 117, 119, 133, 120, 113, 120, 113, 116, 116, 109, 112, 117, 120, 119, 115, 117, 109, 107, 119, 107, 119, 123, 120, 103, 119, 113, 114, 113, 109, 118, 124, 111, 120, 121, 106, 116, 108, 133, 112, 109, 74, 105, 114, 110, 109, 115, 104, 127, 116, 107, 123, 108, 118, 113, 119, 118, 120, 100, 122, 119, 114, 122, 106, 123, 115, 108, 109, 115, 121, 115, 103, 119, 118, 112, 116, 107, 121, 111, 114, 114, 113, 116, 107, 116, 112, 116, 116, 106, 121, 118, 110, 116, 121, 119, 118, 118, 120, 112, 117, 120, 108, 129, 116, 116, 119, 116, 105, 125, 121, 123, 130, 116, 111, 118, 116, 117, 104, 100, 116, 122, 110, 116, 115, 107, 116, 115, 123, 118, 106, 122, 116, 103, 109, 116, 121, 117, 108, 126, 107, 119, 119, 111, 114, 116, 122, 117, 108, 114, 128, 113, 118, 111, 119, 123, 120, 97, 117, 117, 109, 123, 113, 112, 125, 124, 116, 117, 116, 112, 133, 121, 115, 120, 120, 110, 98, 122, 121, 117, 130, 109, 113, 124, 104, 122, 114, 121, 103, 121, 122, 117, 111, 99, 117, 118, 138, 104, 110, 117, 114, 116, 108, 108, 115, 111, 101, 129, 117, 116, 82, 117, 104, 114, 114, 127, 117, 107, 110, 113, 117, 114, 122, 115, 108, 105, 119, 117, 110, 111, 107, 115, 118, 119, 120, 120, 99, 135, 113, 121, 105, 127, 122, 116, 123, 114, 116, 123, 117, 110, 101, 104, 124, 108, 118, 116, 116, 107, 113, 104, 107, 119, 116, 109, 139, 114, 109, 106, 105, 111, 127, 116, 126, 120, 108, 120, 107, 113, 132, 117, 112, 119, 120, 117, 114, 126, 98, 114, 110, 112, 88, 111, 121, 120, 113, 120, 107, 107, 118, 129, 110, 109, 118, 110, 117, 113, 119, 123, 117, 115, 122, 112, 121, 112, 110, 114, 120, 117, 129, 128, 115, 122, 110, 111, 109, 112, 138, 112, 124, 92, 114, 123, 112, 116, 112, 111, 107, 118, 115, 123, 112, 124, 120, 101, 116, 114, 116, 113, 114, 116, 116, 118, 120, 108, 120, 106, 117, 113, 110, 100, 110, 114, 120, 123, 119, 114, 115, 120, 114, 111, 120, 123, 124, 116, 104, 123, 126, 110, 128, 158, 123, 108, 111, 111, 110, 110, 122, 112, 115, 116, 119, 115, 107, 116, 126, 113, 137, 111, 122, 115, 113, 123, 119, 116, 100, 108, 110, 135, 127, 112, 116, 105, 123, 117, 117, 102, 130, 115, 113, 123, 115, 129, 109, 120, 122, 110, 113, 118, 103, 113, 116, 107, 109, 126, 114, 133, 107, 93, 138, 121, 112, 105, 108, 113, 101, 102, 115, 111, 121, 112, 122, 105, 122, 103, 118, 116, 131, 119, 124, 111, 119, 112, 112, 118, 108, 108, 115, 120, 117, 110, 122, 113, 111, 117, 112, 104, 110, 107, 117, 102, 116, 104, 117, 123, 111, 116, 117, 109, 118, 112, 125, 126, 123, 109, 114, 107, 118, 124, 126, 119, 104, 124, 132, 128, 102, 110, 118, 102, 117, 109, 122, 126, 120, 122, 121, 118, 113, 125, 112, 110, 119, 115, 109, 118, 117, 108, 106, 129, 110, 106, 107, 122, 113, 117, 96, 104, 114, 105, 121, 126, 107, 127, 123, 115, 116, 104, 128, 115, 112, 106, 120, 105, 127, 116, 113, 128, 109, 112, 117, 121, 110, 117, 103, 124, 112, 114, 114, 125, 115, 116, 106, 124, 115, 107, 107, 113, 102, 119, 109, 131, 114, 114, 118, 106, 115, 124, 111, 113, 115, 123, 112, 110, 126, 104, 116, 130, 108, 118, 131, 124, 121, 106, 108, 109, 119, 112, 116, 124, 109, 122, 108, 103, 103, 118, 113, 112, 115, 100, 118, 102, 117, 128, 111, 120, 117, 112, 122, 117, 109, 125, 120, 110, 111, 129, 105, 127, 110, 108, 119, 120, 115, 103, 124, 122, 124, 106, 108, 128, 120, 122, 116, 116, 118, 110, 107, 106, 118, 107, 116, 115, 108, 116, 109, 114, 125, 113, 113, 123, 113, 120, 123, 127, 118, 110, 104, 113, 123, 119, 127, 111, 118, 105, 116, 119, 100, 104, 120, 95, 115, 135, 107, 104, 111, 115, 107, 110, 105, 107, 119, 128, 111, 101, 101, 119, 110, 109, 116, 114, 114, 124, 116, 99, 108, 126, 120, 102, 129, 131, 118, 118, 117, 123, 115, 114, 121, 105, 115, 118, 109, 104, 112, 113, 116, 114, 108, 109, 116, 122, 118, 91, 100, 102, 114, 102, 118, 111, 115, 118, 119, 117, 110, 119, 122, 127, 110, 103, 108, 113, 101, 122, 106, 128, 129, 124, 116, 123, 113, 113, 115, 108, 115, 117, 117, 108, 127, 116, 126, 108, 102, 113, 116, 104, 118, 109, 110, 120, 113, 98, 110, 121, 122, 99, 116, 105, 108, 116, 110, 119, 119, 100, 127, 109, 105, 112, 113, 129, 112, 126, 102, 107, 108, 111, 120, 113, 101, 115, 118, 113, 106, 119, 105, 101, 130, 109, 115, 114, 111, 115, 111, 123, 118, 114, 127, 104, 100, 104, 108, 122, 123, 114, 129, 116, 117, 136, 115, 117, 137, 111, 105, 105, 121, 143, 101, 131, 122, 112, 121, 110, 118, 105, 117, 118, 112, 117, 119, 110, 121, 127, 120, 113, 105, 118, 125, 117, 115, 112, 112, 112, 126, 111, 110, 109, 104, 110, 114, 97, 117, 109, 114, 121, 113, 110, 127, 140, 99, 118, 110, 115, 122, 104, 120, 109, 110, 117, 110, 123, 100, 114, 117, 118, 108, 93, 117, 110, 119, 112, 119, 108, 110, 113, 120, 123, 102, 113, 119, 129, 120, 128, 115, 102, 112, 111, 124, 125, 112, 115, 112, 114, 115, 121, 118, 114, 109, 124, 103, 101, 105, 116, 112, 110, 112, 110, 117, 116, 116, 107, 131, 107, 118, 116, 127, 99, 131, 113, 111, 111, 108, 100, 122, 119, 118, 138, 122, 107, 109, 122, 101, 115, 106, 130, 114, 118, 115, 129, 116, 110, 102, 103, 105, 104, 117, 115, 105, 96, 122, 114, 97, 111, 117, 121, 124, 109, 118, 116, 117, 114, 125, 109, 117, 112, 109, 108, 106, 115, 115, 118, 112, 107, 108, 116, 111, 111, 121, 108, 121, 113, 128, 112, 112, 121, 104, 127, 106, 103, 108, 114, 113, 103, 119, 122, 120, 117, 113, 106, 107, 114, 111, 112, 114, 112, 114, 124, 105, 105, 128, 108, 109, 119, 128, 124, 121, 123, 116, 101, 102, 98, 115, 128, 119, 121, 106, 119, 127, 106, 114, 123, 101, 119, 126, 114, 125, 130, 104, 112, 124, 121, 114, 133, 103, 106, 109, 121, 111, 117, 117, 112, 110, 117, 120, 116, 100, 115, 98, 113, 107, 123, 130, 126, 117, 119, 116, 104, 112, 108, 116, 120, 112, 119, 115, 112, 116, 103, 125, 111, 115, 118, 100, 137, 125, 103, 103, 125, 119, 98, 121, 119, 110, 125, 119, 127, 115, 111, 95, 121, 110, 119, 126, 122, 130, 121, 103, 119, 124, 123, 113, 110, 123, 112, 113, 110, 116, 113, 112, 113, 116, 126, 125, 110, 111, 113, 126, 110, 125, 111, 89, 111, 101, 126, 108, 121, 93, 107, 125, 128, 111, 99, 113, 111, 107, 119, 106, 127, 112, 109, 109, 109, 119, 111, 108, 121, 118, 102, 119, 115, 133, 112, 132, 122, 101, 123, 106, 119, 102, 119, 86, 124, 116, 120, 119, 119, 109, 119, 126, 127, 117, 97, 126, 106, 100, 121, 122, 128, 126, 107, 112, 103, 118, 116, 116, 122, 115, 112, 122, 116, 115, 106, 106, 119, 109, 105, 112, 111, 126, 115, 131, 118, 113, 109, 118, 118, 110, 97, 110, 113, 119, 131, 119, 111, 121, 108, 116, 113, 120, 119, 111, 104, 116, 116, 114, 114, 113, 119, 116, 114, 118, 129, 121, 118, 130, 121, 113, 120, 113, 115, 123, 116, 103, 123, 112, 100, 117, 124, 136, 112, 116, 122, 117, 120, 116, 135, 106, 110, 117, 114, 108, 99, 116, 118, 114, 125, 111, 106, 116, 130, 104, 131, 82, 111, 102, 104, 124, 111, 116, 127, 114, 114, 113, 115, 95, 107, 122, 112, 116, 133, 115, 98, 95, 115, 112, 128, 113, 113, 117, 125, 125, 115, 119, 95, 125, 111, 105, 110, 112, 118, 104, 116, 118, 118, 125, 107, 114, 114, 114, 111, 109, 123, 112, 123, 119, 136, 127, 120, 110, 114, 116, 112, 120, 111, 112, 118, 119, 119, 118, 122, 109, 119, 118, 110, 120, 120, 118, 104, 116, 113, 109, 101, 112, 105, 134, 121, 114, 98, 136, 106, 125, 118, 114, 110, 114, 109, 125, 114, 117, 124, 120, 120, 96, 106, 124, 103, 115, 112, 100, 116, 101, 111, 96, 106, 103, 113, 114, 104, 125, 110, 110, 119, 114, 112, 114, 116, 99, 115, 118, 114, 110, 109, 103, 125, 106, 114, 110, 120, 109, 113, 125, 118, 106, 111, 125, 109, 119, 120, 123, 118, 99, 128, 120, 112, 119, 113, 117, 115, 120, 106, 117, 117, 110, 119, 132, 108, 121, 125, 110, 114, 118, 101, 114, 107, 101, 111, 112, 131, 120, 138, 124, 105, 116, 96, 132, 128, 106, 122, 113, 126, 120, 116, 123, 107, 121, 135, 113, 111, 101, 115, 109, 127, 112, 110, 130, 107, 119, 109, 112, 113, 114, 114, 119, 113, 100, 125, 131, 119, 130, 114, 103, 125, 112, 111, 113, 108, 112, 104, 114, 99, 115, 114, 129, 120, 114, 120, 119, 117, 95, 123, 96, 138, 112, 105, 123, 117, 112, 108, 108, 111, 109, 107, 119, 113, 116, 109, 115, 115, 117, 106, 108, 124, 127, 122, 107, 132, 112, 117, 118, 116, 115, 118, 115, 111, 120, 121, 115, 122, 123, 127, 100, 122, 119, 109, 128, 121, 118, 103, 118, 110, 105, 108, 99, 115, 118, 98, 125, 109, 119, 100, 112, 106, 112, 117, 108, 125, 112, 126, 122, 112, 116, 120, 110, 128, 125, 112, 95, 100, 126, 120, 121, 119, 120, 113, 128, 114, 95, 108, 113, 123, 108, 134, 110, 106, 104, 117, 101, 126, 113, 117, 118, 112, 110, 107, 116, 111, 128, 122, 119, 105, 108, 117, 79, 105, 117, 110, 100, 100, 117, 110, 125, 107, 106, 111, 131, 120, 87, 110, 105, 119, 118, 116, 100, 106, 110, 112, 129, 107, 113, 113, 115, 113, 114, 120, 101, 115, 135, 126, 118, 109, 95, 109, 103, 112, 124, 118, 113, 115, 114, 136, 118, 116, 113, 115, 107, 110, 111, 106, 122, 117, 115, 121, 113, 103, 140, 96, 118, 106, 94, 121, 121, 120, 127, 108, 113, 100, 114, 122, 114, 123, 106, 132, 106, 116, 112, 115, 121, 131, 110, 97, 114, 116, 117, 128, 106, 114, 115, 101, 102, 119, 115, 127, 119, 115, 123, 114, 111, 117, 117, 116, 104, 117, 107, 111, 118, 119, 127, 107, 122, 111, 107, 122, 109, 117, 111, 102, 91, 119, 107, 110, 112, 103, 111, 120, 123, 118, 108, 132, 114, 115, 115, 111, 107, 114, 112, 104, 116, 100, 116, 113, 124, 116, 110, 110, 123, 119, 103, 100, 107, 109, 126, 120, 117, 123, 121, 115, 107, 131, 104, 118, 113, 108, 107, 101, 115, 117, 119, 109, 116, 116, 96, 119, 123, 124, 113, 106, 122, 114, 109, 107, 120, 118, 120, 121, 121, 116, 98, 119, 104, 104, 112, 112, 96, 90, 113, 123, 118, 124, 119, 115, 114, 113, 104, 105, 129, 124, 122, 114, 121, 111, 109, 110, 116, 113, 131, 117, 111, 120, 114, 107, 117, 104, 124, 125, 110, 114, 122, 111, 117, 101, 109, 126, 129, 119, 117, 104, 103, 124, 114, 125, 113, 106, 113, 107, 118, 113, 109, 135, 111, 102, 117, 107, 107, 117, 125, 102, 127, 122, 132, 119, 110, 117, 105, 118, 117, 106, 114, 121, 107, 118, 116, 103, 115, 124, 110, 103, 106, 107, 123, 133, 122, 109, 123, 112, 108, 108, 100, 143, 110, 113, 117, 113, 126, 109, 110, 116, 114, 104, 118, 112, 118, 100, 128, 116, 114, 104, 101, 110, 105, 117, 106, 127, 111, 126, 108, 128, 105, 120, 118, 125, 110, 129, 113, 122, 120, 121, 114, 111, 109, 117, 106, 113, 120, 99, 123, 120, 122, 118, 111, 112, 120, 118, 113, 121, 136, 107, 99, 127, 106, 122, 108, 110, 114, 125, 110, 119, 98, 120, 126, 110, 105, 114, 112, 102, 115, 129, 105, 114, 116, 109, 116, 109, 123, 119, 108, 123, 112, 120, 108, 106, 91, 102, 133, 128, 106, 101, 112, 112, 119, 113, 103, 129, 99, 101, 102, 101, 120, 106, 110, 123, 133, 112, 111, 129, 107, 112, 121, 122, 141, 106, 127, 122, 114, 104, 113, 146, 109, 104, 112, 106, 128, 110, 141, 113, 122, 115, 100, 109, 102, 112, 122, 132, 112, 114, 116, 114, 103, 109, 104, 112, 119, 100, 119, 110, 125, 102, 114, 103, 114, 115, 107, 116, 115, 108, 107, 110, 127, 130, 113, 111, 112, 115, 107, 116, 119, 106, 107, 124, 112, 129, 117, 109, 111, 100, 100, 118, 110, 124, 129, 103, 111, 104, 131, 111, 127, 97, 122, 101, 109, 109, 118, 121, 126, 116, 110, 125, 134, 146, 107, 122, 114, 118, 104, 121, 103, 100, 110, 122, 105, 109, 104, 121, 118, 113, 105, 115, 122, 98, 103, 134, 114, 125, 112, 106, 115, 118, 117, 105, 91, 116, 107, 105, 111, 113, 113, 111, 118, 93, 120, 119, 121, 105, 124, 131, 128, 110, 129, 98, 128, 125, 107, 111, 124, 125, 117, 116, 125, 113, 125, 117, 109, 109, 101, 118, 121, 115, 114, 119, 94, 107, 105, 124, 128, 117, 123, 101, 99, 97, 107, 113, 120, 100, 114, 126, 124, 118, 127, 109, 116, 120, 118, 108, 125, 98, 121, 117, 118, 120, 115, 115, 98, 126, 109, 114, 114, 109, 120, 118, 127, 113, 125, 118, 102, 112, 111, 116, 120, 111, 122, 126, 119, 119, 96, 117, 108, 112, 121, 109, 111, 112, 122, 102, 105, 100, 118, 105, 101, 112, 107, 113, 107, 111, 109, 113, 119, 135, 119, 109, 116, 116, 115, 110, 119, 117, 117, 109, 111, 95, 108, 111, 118, 122, 129, 131, 90, 126, 118, 112, 113, 110, 109, 128, 134, 136, 120, 123, 107, 113, 124, 120, 126, 122, 112, 103, 118, 110, 119, 117, 104, 113, 114, 119, 119, 131, 113, 122, 110, 121, 111, 127, 106, 140, 124, 132, 128, 100, 112, 99, 119, 111, 121, 110, 131, 113, 120, 115, 119, 111, 129, 121, 120, 116, 116, 114, 84, 115, 109, 116, 119, 119, 124, 125, 111, 118, 104, 114, 117, 110, 122, 122, 114, 118, 110, 118, 116, 108, 120, 105, 118, 129, 112, 113, 125, 117, 109, 97, 118, 102, 107, 125, 99, 142, 99, 117, 107, 116, 103, 110, 128, 111, 129, 118, 113, 111, 121, 118, 134, 105, 111, 113, 98, 101, 120, 123, 113, 122, 102, 104, 106, 110, 102, 112, 109, 119, 122, 116, 115, 105, 125, 105, 118, 126, 112, 104, 116, 129, 112, 116, 94, 138, 119, 119, 118, 97, 109, 102, 132, 122, 112, 111, 120, 106, 132, 111, 116, 122, 120, 107, 129, 96, 111, 116, 109, 111, 108, 114, 120, 110, 103, 111, 142, 113, 113, 102, 117, 91, 135, 115, 125, 109, 100, 114, 131, 112, 114, 109, 114, 105, 102, 115, 111, 114, 109, 117, 112, 125, 122, 120, 124, 126, 118, 120, 130, 114, 122, 144, 108, 118, 105, 108, 111, 134, 129, 110, 111, 106, 122, 115, 112, 117, 118, 122, 123, 117, 116, 124, 100, 114, 118, 118, 111, 111, 109, 111, 114, 108, 120, 114, 118, 111, 111, 113, 110, 125, 112, 117, 123, 103, 113, 117, 124, 106, 110, 119, 111, 121, 117, 107, 114, 117, 110, 113, 116, 123, 109, 114, 115, 121, 108, 121, 112, 118, 112, 95, 113, 109, 117, 116, 115, 114, 112, 118, 113, 113, 121, 116, 107, 105, 121, 87, 107, 122, 102, 117, 114, 120, 108, 121, 121, 115, 121, 151, 112, 119, 115, 122, 110, 113, 129, 123, 117, 121, 120, 148, 120, 120, 110, 121, 121, 95, 123, 120, 116, 118, 110, 119, 125, 111, 115, 110, 111, 111, 115, 104, 112, 115, 120, 121, 107, 121, 111, 104, 116, 109, 113, 114, 115, 95, 120, 108, 113, 114, 114, 117, 139, 119, 111, 125, 110, 112, 114, 115, 120, 131, 112, 121, 95, 111, 125, 101, 114, 109, 121, 109, 121, 114, 123, 114, 114, 98, 114, 114, 117, 114, 115, 119, 121, 127, 111, 114, 115, 120, 113, 123, 111, 126, 115, 192, 116, 121, 122, 115, 106, 120, 116, 118, 97, 130, 111, 124, 113, 119, 120, 123, 113, 109, 114, 120, 118, 110, 113, 118, 124, 115, 120, 137, 121, 114, 122, 117, 119, 105, 114, 120, 104, 122, 129, 107, 112, 104, 112, 103, 116, 104, 107, 127, 114, 119, 119, 105, 116, 114, 112, 111, 105, 115, 116, 115, 114, 117, 103, 119, 118, 122, 107, 118, 113, 109, 189, 115, 109, 119, 119, 109, 108, 117, 116, 83, 117, 118, 110, 119, 113, 115, 108, 115, 93, 106, 120, 114, 112, 120, 119, 132, 104, 119, 119, 116, 110, 113, 111, 100, 120, 112, 103, 112, 111, 122, 119, 112, 116, 107, 109, 126, 105, 123, 112, 124, 146, 111, 110, 112, 113, 109, 119, 112, 111, 118, 118, 121, 111, 117, 117, 116, 69, 113, 115, 105, 116, 104, 115, 115, 110, 115, 113, 115, 124, 127, 122, 118, 111, 112, 113, 77, 114, 108, 123, 117, 113, 123, 119, 112, 123, 115, 85, 109, 125, 121, 115, 114, 120, 122, 120, 107, 125, 118, 115, 126, 112, 119, 111, 119, 110, 121, 110, 113, 116, 105, 115, 109, 129, 125, 120, 113, 117, 124, 121, 94, 113, 114, 125, 125, 117, 120, 109, 117, 106, 124, 124, 119, 106, 113, 111, 119, 116, 112, 110, 124, 110, 107, 112, 116, 114, 110, 118, 112, 104, 110, 125, 124, 121, 108, 109, 122, 111, 118, 116, 114, 114, 132, 126, 115, 117, 107, 120, 127, 118, 116, 117, 116, 116, 117, 118, 118, 118, 110, 114, 110, 106, 111, 116, 119, 111, 109, 118, 117, 114, 116, 137, 116, 116, 108, 114, 123, 122, 109, 114, 116, 117, 114, 123, 111, 117, 122, 110, 110, 126, 114, 102, 122, 113, 115, 118, 118, 122, 109, 108, 112, 107, 116, 115, 115, 117, 123, 118, 117, 128, 121, 110, 114, 114, 116, 110, 112, 114, 106, 107, 107, 117, 118, 118, 117, 111, 110, 106, 112, 117, 115, 119, 124, 111, 117, 117, 120, 105, 117, 118, 113, 126, 116, 112, 119, 109, 115, 118, 113, 115, 116, 103, 104, 107, 110, 112, 111, 108, 114, 103, 124, 116, 115, 120, 120, 109, 117, 116, 117, 119, 112, 105, 132, 115, 129, 119, 106, 127, 120, 108, 129, 129, 114, 115, 111, 104, 117, 128, 121, 116, 112, 114, 129, 114, 106, 111, 115, 114, 114, 108, 116, 123, 103, 121, 116, 122, 106, 122, 129, 97, 119, 109, 110, 112, 111, 114, 108, 106, 114, 117, 105, 113, 118, 99, 110, 114, 115, 114, 118, 117, 122, 114, 111, 109, 118, 128, 127, 139, 98, 112, 102, 109, 100, 123, 110, 128, 123, 120, 100, 116, 113, 114, 124, 102, 100, 126, 119, 111, 129, 111, 118, 115, 131, 101, 114, 116, 115, 112, 97, 123, 102, 120, 112, 107, 101, 111, 126, 108, 122, 132, 112, 120, 108, 124, 125, 110, 109, 107, 119, 116, 126, 118, 115, 139, 117, 109, 116, 120, 116, 130, 121, 124, 117, 113, 109, 107, 107, 119, 112, 116, 99, 121, 122, 119, 120, 102, 110, 119, 121, 121, 118, 107, 109, 132, 117, 117, 127, 118, 127, 129, 122, 118, 123, 106, 118, 119, 116, 120, 112, 121, 119, 117, 101, 118, 115, 121, 122, 138, 109, 122, 114, 127, 111, 121, 107, 116, 117, 116, 132, 122, 113, 121, 115, 123, 109, 107, 106, 128, 87, 106, 146, 114, 121, 111, 134, 111, 115, 114, 115, 117, 121, 100, 120, 121, 123, 112, 137, 125, 116, 127, 105, 115, 130, 105, 114, 108, 112, 136, 108, 109, 106, 122, 111, 132, 108, 102, 121, 102, 125, 127, 131, 97, 96, 111, 105, 119, 118, 121, 106, 116, 117, 113, 117, 102, 114, 117, 140, 113, 116, 110, 109, 110, 114, 116, 121, 109, 128, 104, 133, 114, 113, 121, 111, 111, 113, 109, 114, 110, 105, 125, 116, 108, 122, 108, 108, 116, 111, 114, 115, 129, 106, 100, 101, 108, 121, 121, 124, 124, 105, 106, 123, 107, 112, 105, 112, 120, 112, 118, 102, 111, 98, 138, 126, 115, 108, 121, 116, 103, 109, 119, 123, 112, 111, 126, 127, 111, 106, 119, 116, 119, 110, 112, 101, 108, 98, 110, 124, 125, 119, 120, 111, 115, 125, 119, 112, 109, 116, 108, 116, 121, 109, 129, 114, 106, 107, 117, 117, 117, 106, 103, 124, 110, 121, 107, 110, 105, 145, 106, 109, 130, 120, 116, 116, 125, 119, 119, 116, 102, 120, 104, 120, 125, 106, 120, 127, 124, 103, 107, 105, 118, 112, 101, 117, 100, 111, 122, 118, 118, 109, 120, 103, 102, 105, 111, 109, 117, 125, 108, 123, 120, 107, 103, 107, 110, 118, 116, 126, 113, 129, 114, 120, 112, 119, 99, 102, 109, 108, 106, 119, 111, 132, 103, 106, 115, 109, 119, 128, 122, 117, 125, 120, 111, 111, 115, 127, 102, 113, 117, 109, 132, 119, 120, 139, 102, 121, 117, 121, 106, 110, 106, 111, 120, 106, 108, 107, 125, 107, 111, 118, 113, 118, 105, 108, 109, 109, 116, 110, 117, 111, 117, 126, 112, 111, 117, 105, 121, 118, 124, 128, 113, 108, 112, 113, 122, 116, 109, 121, 116, 109, 120, 121, 109, 114, 128, 125, 127, 121, 120, 109, 117, 114, 115, 114, 104, 119, 109, 119, 116, 111, 115, 106, 104, 116, 108, 99, 128, 117, 112, 115, 114, 113, 116, 120, 116, 110, 112, 115, 119, 118, 115, 112, 110, 120, 110, 108, 115, 113, 107, 118, 111, 112, 107, 107, 120, 102, 120, 123, 120, 121, 123, 109, 109, 111, 115, 113, 117, 101, 117, 117, 113, 112, 109, 111, 113, 118, 114, 115, 111, 107, 111, 119, 126, 110, 121, 111, 111, 115, 122, 108, 127, 119, 122, 127, 125, 114, 120, 125, 115, 114, 117, 106, 113, 102, 118, 109, 114, 112, 111, 112, 113, 116, 117, 114, 118, 118, 129, 105, 113, 116, 117, 124, 112, 117, 107, 113, 118, 115, 120, 116, 111, 122, 119, 118, 122, 114, 110, 117, 115, 115, 115, 116, 119, 106, 120, 120, 117, 112, 113, 115, 111, 104, 113, 99, 111, 112, 118, 115, 104, 116, 110, 118, 117, 122, 115, 129, 121, 104, 103, 104, 109, 120, 120, 125, 109, 126, 109, 110, 124, 114, 120, 130, 105, 119, 118, 120, 108, 116, 114, 113, 120, 121, 121, 115, 121, 125, 123, 114, 113, 109, 118, 113, 118, 126, 115, 117, 113, 116, 113, 115, 125, 114, 105, 127, 130, 108, 108, 114, 118, 117, 119, 121, 113, 110, 112, 114, 112, 109, 112, 106, 110, 98, 116, 112, 119, 115, 115, 116, 119, 126, 112, 115, 107, 126, 117, 114, 126, 122, 109, 99, 120, 117, 119, 113, 111, 124, 117, 118, 120, 113, 111, 116, 110, 116, 117, 115, 117, 105, 108, 107, 112, 116, 105, 114, 114, 119, 111, 115, 112, 114, 101, 116, 125, 120, 122, 125, 127, 119, 110, 110, 115, 121, 107, 115, 116, 130, 107, 115, 122, 119, 117, 107, 113, 114, 117, 121, 115, 118, 115, 120, 115, 118, 101, 115, 122, 105, 118, 114, 121, 113, 109, 113, 118, 116, 106, 113, 116, 123, 111, 115, 122, 120, 123, 105, 115, 106, 107, 122, 112, 113, 106, 113, 107, 116, 111, 116, 116, 108, 122, 108, 109, 124, 121, 113, 115, 109, 125, 115, 115, 114, 118, 115, 113, 121, 114, 118, 115, 108, 122, 107, 108, 112, 118, 121, 119, 108, 112, 117, 107, 125, 119, 109, 108, 112, 117, 113, 123, 118, 112, 116, 109, 120, 120, 97, 121, 125, 110, 118, 106, 114, 116, 114, 101, 113, 112, 119, 110, 124, 105, 110, 112, 119, 113, 125, 122, 123, 112, 111, 123, 109, 113, 118, 118, 122, 109, 123, 117, 129, 109, 118, 135, 120, 103, 115, 128, 114, 107, 108, 119, 117, 109, 114, 106, 118, 104, 115, 107, 111, 107, 118, 116, 113, 129, 108, 107, 99, 107, 113, 114, 116, 119, 117, 113, 109, 111, 125, 121, 108, 114, 116, 110, 124, 121, 113, 120, 117, 119, 112, 120, 121, 116, 115, 124, 106, 123, 120, 123, 104, 119, 105, 116, 122, 67, 99, 104, 108, 115, 128, 143, 115, 113, 116, 105, 115, 134, 117, 111, 103, 134, 110, 113, 137, 117, 103, 105, 117, 105, 120, 102, 97, 94, 123, 104, 82, 125, 114, 104, 109, 118, 114, 121, 105, 116, 115, 140, 122, 98, 113, 115, 113, 122, 120, 120, 112, 112, 114, 126, 122, 121, 118, 119, 91, 129, 107, 114, 99, 128, 103, 139, 110, 115, 132, 114, 109, 132, 107, 128, 99, 104, 116, 117, 88, 114, 129, 110, 138, 106, 114, 114, 106, 130, 111, 122, 112, 128, 115, 128, 124, 126, 123, 105, 125, 108, 104, 114, 119, 112, 104, 128, 120, 104, 121, 117, 115, 142, 103, 116, 118, 120, 130, 118, 109, 120, 114, 94, 119, 100, 102, 115, 106, 115, 117, 112, 119, 135, 103, 133, 114, 125, 93, 122, 130, 99, 135, 108, 131, 93, 119, 109, 115, 109, 102, 113, 111, 121, 114, 117, 120, 120, 115, 106, 115, 110, 130, 120, 126, 117, 121, 112, 109, 107, 115, 128, 118, 111, 106, 114, 126, 116, 120, 126, 120, 121, 110, 104, 121, 131, 112, 100, 140, 108, 108, 118, 113, 112, 115, 119, 98, 107, 115, 108, 142, 158, 125, 114, 107, 113, 119, 119, 121, 129, 110, 113, 123, 141, 98, 132, 113, 122, 135, 125, 122, 109, 123, 104, 129, 126, 121, 123, 111, 118, 111, 108, 113, 108, 114, 127, 132, 126, 114, 127, 115, 105, 118, 112, 109, 101, 111, 126, 129, 104, 118, 122, 119, 107, 130, 129, 98, 117, 120, 119, 111, 112, 99, 100, 98, 126, 92, 108, 120, 113, 113, 117, 119, 124, 117, 107, 116, 119, 118, 100, 91, 105, 118, 115, 115, 109, 109, 125, 100, 133, 113, 100, 119, 106, 114, 99, 130, 108, 128, 121, 119, 108, 88, 116, 118, 118, 120, 126, 114, 110, 115, 125, 121, 136, 107, 131, 113, 117, 131, 138, 124, 111, 143, 127, 109, 114, 101, 111, 116, 127, 122, 105, 98, 111, 120, 110, 105, 118, 129, 121, 111, 126, 123, 94, 115, 110, 110, 112, 124, 112, 117, 119, 125, 116, 110, 98, 102, 103, 124, 129, 128, 110, 117, 120, 114, 88, 130, 110, 116, 116, 134, 95, 113, 111, 115, 94, 94, 111, 88, 113, 108, 117, 140, 92, 123, 101, 121, 127, 103, 128, 104, 123, 108, 112, 120, 123, 108, 114, 102, 102, 117, 112, 114, 103, 110, 100, 133, 113, 109, 108, 121, 103, 111, 109, 113, 83, 121, 108, 119, 115, 105, 104, 129, 114, 107, 119, 117, 112, 119, 120, 111, 109, 130, 104, 126, 112, 122, 120, 109, 105, 120, 105, 109, 116, 163, 107, 100, 123, 122, 129, 103, 116, 122, 104, 107, 93, 107, 104, 118, 101, 99, 94, 107, 118, 124, 125, 125, 128, 114, 128, 117, 116, 110, 126, 115, 129, 119, 110, 125, 111, 109, 102, 122, 107, 114, 114, 132, 113, 125, 107, 115, 110, 110, 103, 95, 131, 110, 120, 116, 121, 114, 106, 108, 119, 127, 123, 129, 118, 109, 102, 114, 107, 128, 109, 120, 116, 112, 105, 116, 116, 108, 111, 112, 120, 119, 126, 100, 101, 125, 120, 113, 110, 109, 121, 121, 114, 113, 106, 106, 119, 120, 100, 120, 104, 116, 121, 104, 115, 107, 121, 141, 111, 104, 108, 108, 108, 133, 113, 107, 130, 110, 105, 130, 130, 111, 104, 114, 143, 131, 128, 107, 118, 113, 102, 104, 91, 114, 116, 112, 123, 108, 113, 114, 113, 106, 101, 118, 104, 108, 97, 110, 133, 106, 114, 101, 120, 98, 116, 101, 116, 117, 145, 115, 103, 114, 122, 122, 114, 113, 117, 117, 112, 105, 130, 109, 110, 106, 109, 111, 123, 116, 115, 110, 100, 120, 121, 120, 114, 105, 120, 104, 106, 125, 133, 111, 127, 134, 111, 116, 98, 127, 135, 135, 120, 117, 128, 104, 115, 107, 97, 108, 101, 104, 121, 107, 111, 113, 112, 117, 108, 122, 103, 113, 122, 105, 108, 136, 118, 100, 116, 110, 105, 121, 112, 102, 126, 110, 107, 118, 110, 115, 102, 119, 118, 112, 112, 129, 117, 124, 126, 108, 102, 111, 119, 113, 103, 124, 111, 124, 114, 114, 128, 102, 116, 108, 130, 109, 117, 111, 119, 131, 115, 115, 136, 104, 122, 102, 126, 111, 123, 119, 100, 126, 131, 109, 113, 115, 126, 120, 133, 117, 120, 110, 102, 116, 131, 116, 117, 120, 114, 117, 105, 111, 130, 118, 115, 122, 121, 103, 116, 114, 118, 115, 124, 120, 109, 113, 106, 116, 120, 106, 108, 129, 110, 122, 121, 105, 102, 113, 123, 94, 118, 121, 118, 103, 119, 117, 119, 117, 117, 118, 136, 111, 114, 125, 126, 118, 94, 108, 121, 112, 129, 118, 125, 112, 120, 121, 121, 123, 105, 112, 134, 108, 115, 119, 119, 105, 109, 124, 100, 134, 114, 113, 112, 123, 101, 118, 105, 122, 107, 111, 96, 121, 115, 123, 125, 119, 120, 128, 120, 118, 118, 110, 110, 111, 105, 112, 110, 101, 127, 113, 115, 107, 103, 113, 109, 104, 128, 98, 103, 121, 119, 106, 111, 106, 115, 110, 116, 117, 113, 108, 105, 123, 119, 114, 110, 107, 117, 104, 111, 120, 112, 122, 115, 123, 116, 108, 115, 112, 104, 102, 114, 117, 93, 116, 130, 121, 111, 115, 106, 118, 136, 101, 113, 116, 114, 113, 109, 132, 113, 108, 129, 114, 113, 125, 118, 106, 111, 108, 115, 105, 100, 132, 124, 122, 111, 114, 106, 123, 108, 107, 123, 123, 90, 102, 130, 115, 96, 114, 117, 112, 122, 122, 106, 113, 107, 116, 116, 117, 108, 101, 116, 116, 115, 121, 123, 126, 110, 124, 116, 95, 114, 133, 116, 113, 104, 114, 115, 121, 107, 132, 122, 116, 113, 117, 126, 128, 110, 101, 123, 121, 120, 101, 124, 118, 121, 136, 128, 110, 121, 110, 107, 122, 112, 113, 107, 115, 115, 110, 105, 103, 108, 110, 122, 118, 122, 103, 104, 122, 114, 118, 123, 111, 106, 111, 107, 113, 110, 129, 115, 122, 85, 113, 118, 118, 114, 119, 116, 123, 113, 124, 107, 107, 110, 112, 121, 118, 112, 104, 115, 110, 121, 115, 114, 115, 120, 117, 116, 112, 104, 105, 120, 107, 107, 114, 120, 112, 111, 110, 122, 122, 112, 101, 116, 119, 119, 114, 117, 111, 116, 118, 110, 120, 126, 118, 113, 116, 109, 118, 117, 137, 120, 116, 113, 116, 102, 126, 109, 115, 107, 120, 111, 111, 111, 99, 119, 124, 121, 105, 116, 123, 126, 117, 115, 109, 119, 116, 114, 120, 119, 118, 105, 123, 100, 109, 121, 121, 117, 102, 123, 122, 119, 112, 122, 113, 108, 110, 107, 109, 106, 117, 119, 100, 111, 125, 118, 109, 106, 121, 115, 117, 106, 111, 120, 104, 119, 124, 125, 114, 117, 112, 114, 124, 118, 109, 116, 124, 113, 110, 114, 119, 118, 114, 114, 113, 114, 116, 106, 108, 123, 121, 103, 120, 121, 120, 107, 125, 110, 109, 111, 119, 123, 120, 119, 110, 107, 114, 113, 126, 103, 127, 119, 115, 119, 111, 124, 115, 122, 118, 126, 106, 114, 110, 124, 124, 109, 118, 113, 109, 106, 115, 116, 119, 104, 109, 111, 122, 112, 122, 114, 112, 115, 101, 119, 101, 116, 101, 119, 124, 120, 115, 103, 110, 115, 115, 113, 117, 102, 111, 115, 114, 125, 111, 128, 115, 109, 108, 113, 112, 105, 103, 110, 117, 106, 123, 114, 102, 131, 118, 132, 109, 120, 115, 110, 114, 114, 101, 113, 120, 118, 118, 103, 111, 118, 119, 117, 107, 125, 120, 115, 108, 118, 116, 110, 114, 109, 123, 135, 110, 116, 124, 121, 110, 125, 121, 121, 108, 104, 121, 117, 110, 100, 124, 118, 109, 115, 122, 112, 112, 111, 111, 112, 102, 113, 110, 114, 108, 108, 109, 135, 112, 119, 128, 113, 118, 114, 121, 121, 122, 105, 125, 114, 108, 120, 99, 113, 118, 117, 117, 110, 121, 118, 104, 115, 114, 104, 108, 116, 107, 109, 114, 126, 106, 112, 138, 114, 111, 113, 109, 103, 139, 120, 119, 109, 111, 108, 110, 121, 124, 123, 110, 123, 110, 101, 121, 112, 111, 112, 128, 113, 116, 115, 101, 109, 117, 117, 117, 109, 137, 103, 116, 113, 104, 112, 125, 111, 119, 117, 116, 122, 110, 122, 121, 111, 121, 117, 117, 115, 128, 122, 115, 116, 116, 110, 118, 120, 110, 113, 106, 116, 122, 126, 115, 117, 111, 112, 118, 134, 107, 107, 114, 134, 117, 109, 109, 117, 125, 134, 115, 121, 127, 116, 118, 108, 111, 123, 116, 113, 129, 112, 119, 108, 111, 125, 105, 110, 130, 129, 112, 123, 110, 109, 122, 126, 98, 114, 115, 110, 117, 117, 121, 109, 110, 104, 127, 112, 109, 88, 122, 113, 111, 120, 98, 104, 114, 119, 112, 108, 130, 125, 103, 128, 109, 120, 122, 117, 110, 109, 128, 115, 105, 121, 117, 106, 114, 119, 124, 111, 118, 110, 116, 114, 119, 110, 118, 120, 111, 119, 112, 113, 109, 128, 99, 136, 132, 115, 115, 117, 116, 119, 119, 127, 95, 123, 104, 109, 111, 111, 101, 119, 117, 116, 120, 116, 108, 119, 108, 125, 108, 107, 111, 117, 136, 104, 108, 112, 132, 108, 111, 109, 123, 142, 100, 107, 107, 141, 107, 115, 112, 123, 121, 97, 114, 109, 115, 114, 108, 120, 113, 106, 116, 113, 118, 115, 113, 115, 120, 117, 122, 107, 113, 117, 122, 105, 108, 118, 120, 122, 117, 114, 111, 111, 97, 140, 113, 114, 108, 138, 121, 108, 112, 108, 119, 119, 114, 114, 122, 123, 128, 128, 113, 116, 108, 120, 126, 125, 122, 106, 121, 107, 125, 111, 115, 122, 118, 126, 113, 125, 121, 125, 119, 113, 120, 114, 116, 127, 113, 110, 128, 124, 109, 108, 102, 110, 128, 122, 126, 120, 115, 112, 110, 121, 102, 91, 112, 125, 117, 98, 118, 109, 126, 115, 117, 125, 118, 122, 100, 119, 99, 124, 128, 120, 117, 125, 112, 105, 112, 132, 105, 125, 112, 112, 121, 112, 125, 112, 111, 100, 120, 116, 119, 115, 106, 121, 132, 129, 118, 110, 120, 124, 120, 106, 109, 134, 112, 95, 100, 101, 115, 115, 128, 118, 108, 115, 102, 102, 111, 129, 90, 116, 109, 116, 115, 120, 124, 137, 128, 98, 124, 85, 114, 116, 112, 108, 142, 116, 99, 105, 126, 112, 113, 116, 119, 136, 107, 108, 112, 112, 95, 114, 93, 126, 118, 115, 119, 127, 99, 125, 112, 111, 119, 119, 112, 131, 111, 129, 112, 122, 122, 121, 113, 129, 106, 104, 109, 121, 113, 128, 115, 122, 130, 125, 88, 115, 129, 127, 119, 108, 105, 104, 123, 108, 111, 102, 121, 117, 112, 105, 115, 116, 114, 110, 115, 124, 108, 125, 111, 113, 106, 108, 117, 113, 116, 105, 114, 103, 113, 127, 126, 118, 116, 118, 127, 111, 98, 125, 125, 113, 118, 117, 122, 114, 108, 109, 123, 116, 121, 125, 118, 107, 117, 100, 128, 117, 125, 120, 109, 108, 94, 121, 121, 119, 108, 117, 115, 112, 95, 113, 111, 104, 117, 125, 101, 118, 111, 117, 120, 109, 123, 107, 128, 111, 130, 117, 125, 124, 99, 112, 116, 127, 104, 122, 107, 112, 110, 108, 115, 117, 117, 107, 117, 118, 116, 126, 107, 121, 127, 113, 105, 115, 110, 109, 102, 100, 118, 109, 132, 114, 123, 98, 103, 118, 116, 97, 116, 112, 114, 127, 117, 98, 104, 103, 111, 106, 110, 113, 122, 104, 108, 128, 108, 115, 111, 119, 110, 120, 109, 106, 122, 105, 123, 105, 135, 109, 112, 129, 104, 115, 138, 138, 92, 108, 128, 120, 118, 133, 120, 121, 129, 118, 117, 111, 115, 116, 108, 93, 115, 115, 119, 113, 98, 116, 110, 96, 116, 112, 108, 132, 121, 125, 99, 108, 109, 114, 110, 107, 126, 102, 113, 118, 118, 106, 126, 107, 121, 101, 111, 139, 118, 113, 115, 137, 109, 116, 124, 113, 106, 120, 117, 127, 120, 111, 101, 129, 125, 107, 120, 125, 124, 112, 126, 117, 121, 130, 112, 115, 105, 119, 103, 106, 131, 104, 123, 120, 121, 117, 108, 121, 121, 115, 118, 111, 136, 109, 114, 117, 113, 111, 102, 123, 126, 121, 123, 112, 113, 123, 115, 119, 114, 129, 128, 104, 124, 120, 115, 109, 105, 96, 103, 110, 118, 109, 121, 82, 120, 115, 119, 115, 112, 119, 121, 103, 112, 120, 116, 122, 112, 112, 110, 115, 111, 113, 116, 106, 118, 123, 119, 124, 117, 107, 138, 132, 123, 106, 99, 115, 122, 116, 112, 116, 109, 120, 113, 112, 108, 119, 111, 133, 115, 113, 115, 114, 105, 117, 108, 110, 117, 101, 112, 117, 96, 119, 108, 116, 125, 111, 97, 122, 104, 107, 118, 115, 113, 129, 112, 114, 115, 104, 101, 114, 107, 121, 120, 121, 108, 112, 102, 123, 106, 118, 124, 106, 115, 105, 117, 118, 129, 113, 108, 109, 120, 111, 110, 133, 111, 109, 109, 110, 115, 115, 106, 108, 123, 115, 115, 114, 119, 104, 104, 100, 117, 113, 123, 115, 118, 110, 119, 120, 119, 130, 121, 112, 115, 116, 108, 106, 108, 111, 129, 122, 118, 116, 108, 120, 110, 114, 118, 115, 122, 129, 115, 107, 116, 112, 110, 106, 103, 108, 117, 125, 120, 119, 108, 117, 115, 107, 100, 125, 114, 115, 134, 111, 116, 116, 118, 107, 119, 102, 102, 112, 119, 102, 115, 106, 116, 103, 118, 109, 119, 118, 119, 110, 105, 105, 107, 125, 111, 94, 121, 118, 104, 115, 115, 101, 135, 113, 110, 105, 110, 113, 112, 119, 104, 113, 122, 109, 119, 105, 114, 112, 105, 117, 109, 113, 103, 116, 128, 137, 100, 116, 122, 113, 114, 121, 116, 110, 118, 110, 119, 98, 124, 116, 129, 113, 121, 119, 110, 96, 115, 111, 110, 111, 121, 136, 102, 110, 116, 109, 110, 119, 121, 124, 107, 131, 108, 120, 108, 106, 118, 109, 105, 115, 106, 113, 102, 121, 111, 116, 110, 122, 124, 133, 129, 116, 121, 103, 111, 109, 111, 102, 126, 113, 126, 121, 132, 112, 106, 121, 117, 111, 111, 123, 104, 111, 114, 106, 124, 119, 114, 121, 117, 117, 120, 120, 113, 123, 118, 134, 122, 121, 124, 117, 108, 114, 110, 114, 132, 123, 122, 132, 115, 115, 114, 118, 118, 93, 102, 120, 125, 118, 111, 113, 99, 113, 114, 119, 118, 110, 110, 116, 114, 115, 120, 101, 108, 120, 108, 105, 116, 111, 118, 117, 109, 126, 124, 108, 113, 119, 111, 119, 116, 121, 118, 114, 123, 135, 103, 114, 119, 107, 122, 112, 121, 124, 128, 117, 116, 98, 113, 101, 113, 108, 122, 113, 105, 121, 109, 116, 121, 128, 114, 118, 113, 116, 115, 113, 107, 106, 116, 105, 123, 120, 127, 103, 110, 119, 123, 109, 113, 110, 110, 118, 117, 120, 117, 114, 112, 109, 112, 123, 123, 116, 118, 128, 124, 111, 121, 121, 113, 113, 107, 105, 98, 110, 111, 101, 118, 128, 126, 126, 115, 114, 105, 122, 116, 127, 111, 114, 119, 119, 111, 104, 115, 125, 114, 112, 123, 132, 111, 117, 114, 120, 117, 109, 129, 104, 109, 118, 119, 99, 131, 110, 113, 125, 101, 122, 119, 122, 114, 104, 118, 119, 123, 112, 110, 119, 110, 111, 122, 109, 119, 103, 115, 104, 123, 125, 117, 105, 110, 103, 118, 112, 113, 114, 114, 107, 112, 113, 112, 105, 110, 116, 118, 117, 111, 110, 117, 124, 117, 115, 114, 99, 114, 101, 107, 114, 127, 103, 111, 109, 123, 122, 113, 126, 110, 109, 116, 109, 107, 115, 106, 118, 124, 117, 111, 116, 121, 122, 114, 125, 109, 122, 112, 111, 100, 111, 100, 105, 108, 113, 128, 113, 114, 121, 109, 115, 126, 116, 113, 115, 120, 112, 120, 119, 109, 113, 107, 118, 95, 107, 121, 111, 115, 120, 113, 117, 114, 116, 108, 117, 112, 126, 118, 107, 109, 114, 108, 111, 123, 117, 109, 115, 99, 115, 113, 118, 110, 122, 113, 121, 111, 113, 121, 125, 114, 117, 118, 116, 104, 117, 114, 123, 125, 101, 122, 121, 136, 115, 114, 118, 115, 116, 105, 130, 113, 114, 120, 114, 117, 101, 122, 118, 131, 136, 115, 109, 118, 113, 111, 127, 109, 122, 118, 115, 137, 104, 122, 127, 114, 121, 115, 116, 125, 106, 111, 115, 101, 108, 112, 106, 109, 118, 89, 113, 105, 117, 107, 122, 120, 118, 110, 113, 94, 126, 115, 128, 118, 103, 105, 112, 133, 114, 118, 120, 112, 124, 112, 109, 113, 112, 113, 120, 119, 115, 111, 119, 109, 112, 108, 114, 113, 112, 114, 111, 109, 107, 111, 99, 114, 117, 112, 120, 120, 110, 115, 108, 105, 117, 112, 119, 115, 112, 122, 121, 120, 122, 105, 104, 113, 113, 100, 115, 111, 117, 113, 117, 123, 123, 118, 108, 103, 106, 121, 113, 126, 122, 124, 105, 116, 114, 114, 104, 109, 111, 112, 106, 118, 113, 117, 122, 109, 136, 105, 109, 131, 110, 125, 113, 126, 112, 113, 117, 121, 110, 114, 109, 115, 107, 105, 114, 114, 119, 117, 115, 111, 106, 99, 112, 110, 114, 108, 119, 127, 117, 107, 129, 126, 115, 110, 123, 109, 120, 109, 116, 118, 126, 105, 113, 113, 108, 110, 123, 110, 105, 118, 112, 115, 126, 120, 116, 115, 131, 111, 118, 110, 110, 114, 123, 118, 101, 111, 112, 127, 108, 117, 123, 117, 116, 113, 105, 110, 113, 118, 142, 115, 127, 118, 113, 116, 117, 113, 131, 115, 108, 118, 124, 120, 120, 109, 121, 110, 112, 109, 119, 109, 114, 110, 113, 121, 118, 112, 131, 103, 115, 113, 124, 116, 114, 117, 119, 109, 109, 110, 119, 132, 128, 116, 122, 120, 112, 113, 118, 110, 115, 108, 116, 109, 110, 115, 112, 125, 116, 114, 122, 123, 110, 124, 110, 115, 115, 122, 113, 120, 130, 111, 114, 119, 112, 116, 113, 108, 115, 110, 114, 109, 116, 112, 112, 117, 116, 125, 113, 108, 122, 114, 115, 125, 123, 117, 113, 125, 113, 114, 110, 113, 123, 105, 122, 114, 112, 100, 107, 114, 114, 122, 114, 108, 115, 111, 114, 116, 132, 119, 120, 118, 101, 99, 115, 123, 114, 117, 115, 113, 108, 114, 126, 105, 117, 114, 96, 130, 115, 124, 105, 118, 106, 111, 127, 109, 116, 117, 110, 111, 113, 109, 117, 119, 113, 119, 110, 124, 112, 110, 112, 99, 102, 113, 122, 107, 118, 112, 112, 103, 122, 113, 106, 118, 113, 126, 130, 110, 140, 108, 123, 116, 114, 118, 111, 116, 123, 109, 128, 112, 121, 113, 122, 114, 108, 115, 134, 121, 125, 115, 109, 129, 87, 118, 101, 112, 108, 117, 125, 120, 122, 109, 116, 101, 99, 119, 124, 105, 104, 121, 127, 107, 119, 115, 115, 136, 98, 109, 128, 107, 124, 110, 112, 103, 137, 122, 112, 120, 114, 107, 106, 124, 101, 110, 106, 112, 104, 90, 118, 116, 127, 124, 131, 106, 111, 112, 119, 130, 105, 109, 119, 114, 107, 93, 97, 111, 133, 107, 107, 118, 135, 110, 104, 113, 105, 112, 118, 108, 107, 114, 109, 111, 105, 119, 110, 106, 103, 112, 120, 124, 121, 117, 104, 98, 124, 112, 118, 108, 120, 106, 108, 123, 109, 98, 119, 114, 109, 111, 113, 113, 117, 111, 111, 120, 107, 116, 112, 120, 107, 119, 124, 110, 121, 112, 117, 118, 114, 131, 112, 110, 116, 137, 108, 116, 117, 109, 99, 113, 117, 116, 113, 131, 116, 119, 112, 97, 95, 117, 120, 107, 129, 111, 117, 103, 110, 109, 109, 118, 140, 107, 102, 113, 110, 121, 111, 122, 116, 119, 105, 116, 109, 110, 132, 137, 118, 97, 117, 123, 109, 112, 122, 115, 109, 99, 123, 108, 116, 116, 102, 119, 103, 124, 109, 116, 122, 128, 115, 116, 98, 117, 114, 130, 127, 130, 106, 119, 114, 116, 128, 100, 109, 115, 116, 125, 119, 105, 110, 112, 111, 97, 111, 111, 132, 122, 110, 122, 110, 116, 116, 105, 109, 110, 117, 126, 120, 108, 111, 119, 102, 113, 117, 115, 101, 128, 99, 111, 117, 121, 107, 99, 137, 109, 122, 124, 105, 115, 116, 114, 106, 115, 96, 114, 109, 122, 111, 107, 114, 104, 122, 135, 114, 123, 118, 120, 105, 108, 116, 114, 119, 141, 116, 121, 123, 115, 129, 130, 115, 107, 111, 119, 116, 116, 123, 100, 107, 115, 114, 112, 106, 96, 143, 114, 124, 118, 128, 110, 115, 119, 104, 109, 120, 120, 114, 90, 112, 111, 105, 115, 94, 110, 126, 120, 105, 122, 102, 115, 103, 118, 110, 112, 104, 114, 91, 137, 90, 123, 102, 100, 109, 101, 103, 106, 105, 110, 109, 122, 110, 108, 119, 102, 112, 107, 116, 117, 105, 97, 108, 126, 120, 111, 107, 104, 117, 118, 116, 113, 127, 112, 115, 113, 114, 113, 123, 115, 105, 101, 110, 109, 106, 105, 115, 113, 110, 113, 119, 107, 113, 107, 105, 97, 120, 101, 126, 101, 116, 117, 101, 101, 108, 94, 107, 114, 113, 115, 120, 116, 115, 112, 126, 117, 126, 115, 123, 120, 112, 130, 113, 114, 126, 130, 118, 99, 114, 118, 120, 124, 120, 127, 104, 129, 99, 125, 105, 119, 100, 125, 133, 115, 103, 115, 114, 131, 117, 112, 119, 109, 140, 118, 115, 112, 108, 114, 114, 117, 105, 119, 117, 123, 114, 116, 121, 113, 115, 110, 114, 117, 112, 104, 116, 114, 101, 111, 117, 114, 120, 127, 115, 120, 118, 121, 111, 114, 107, 110, 119, 111, 118, 114, 116, 106, 117, 111, 113, 115, 112, 111, 107, 112, 108, 123, 116, 111, 122, 116, 118, 119, 119, 113, 112, 125, 119, 123, 118, 107, 119, 126, 127, 116, 116, 123, 115, 118, 113, 111, 112, 111, 107, 123, 121, 114, 111, 122, 112, 120, 122, 108, 114, 117, 114, 113, 121, 111, 114, 113, 111, 121, 116, 116, 120, 112, 113, 119, 116, 115, 125, 112, 129, 111, 123, 116, 116, 105, 107, 122, 115, 118, 115, 116, 119, 118, 115, 118, 117, 113, 112, 116, 114, 121, 120, 116, 121, 117, 115, 116, 117, 108, 114, 123, 118, 113, 115, 114, 114, 110, 109, 112, 120, 116, 110, 124, 119, 118, 114, 118, 120, 113, 125, 112, 121, 115, 109, 104, 113, 116, 117, 120, 117, 105, 107, 116, 116, 107, 120, 116, 107, 115, 122, 121, 117, 113, 117, 121, 112, 121, 116, 122, 116, 114, 126, 115, 115, 116, 115, 120, 111, 117, 122, 116, 112, 122, 113, 110, 118, 106, 113, 110, 114, 109, 117, 124, 108, 112, 112, 118, 116, 114, 114, 113, 118, 119, 124, 118, 121, 115, 110, 108, 115, 119, 115, 118, 118, 113, 113, 121, 117, 110, 107, 115, 117, 116, 116, 119, 114, 111, 121, 113, 111, 103, 123, 111, 114, 108, 114, 113, 118, 117, 112, 119, 108, 114, 120, 115, 124, 111, 112, 122, 128, 125, 119, 112, 113, 118, 115, 112, 111, 119, 114, 115, 114, 112, 113, 113, 116, 122, 117, 118, 114, 115, 120, 119, 106, 120, 115, 116, 119, 113, 118, 101, 117, 120, 118, 105, 112, 112, 118, 109, 118, 115, 111, 114, 109, 120, 110, 119, 117, 118, 121, 116, 112, 116, 114, 121, 113, 121, 121, 117, 119, 117, 99, 121, 120, 118, 125, 114, 105, 111, 119, 110, 114, 115, 113, 116, 118, 118, 115, 115, 114, 111, 119, 121, 120, 119, 121, 115, 119, 112, 116, 116, 117, 120, 114, 116, 113, 111, 118, 116, 114, 115, 121, 124, 121, 118, 112, 118, 118, 113, 111, 122, 116, 117, 117, 112, 117, 112, 114, 115, 127, 115, 117, 111, 121, 113, 108, 118, 116, 117, 108, 115, 115, 118, 117, 110, 112, 120, 114, 115, 114, 116, 116, 117, 103, 112, 111, 120, 111, 111, 114, 120, 114, 116, 123, 112, 107, 114, 110, 112, 119, 108, 118, 117, 108, 118, 114, 116, 112, 116, 116, 113, 118, 119, 112, 111, 110, 114, 122, 110, 114, 122, 118, 112, 121, 112, 119, 106, 112, 115, 117, 118, 115, 124, 118, 108, 114, 116, 107, 115, 113, 123, 118, 123, 119, 114, 110, 122, 114, 116, 117, 115, 109, 120, 106, 114, 112, 122, 113, 116, 115, 114, 116, 114, 114, 119, 117, 120, 129, 120, 118, 116, 116, 110, 115, 127, 106, 118, 113, 122, 117, 121, 117, 109, 119, 113, 113, 108, 121, 124, 109, 110, 113, 121, 118, 118, 109, 125, 106, 111, 111, 123, 113, 109, 120, 115, 116, 118, 112, 124, 114, 122, 121, 118, 115, 112, 125, 107, 124, 109, 118, 118, 116, 107, 114, 116, 117, 119, 117, 115, 123, 117, 109, 117, 109, 112, 121, 116, 114, 114, 119, 119, 109, 118, 122, 119, 116, 109, 126, 116, 119, 112, 115, 115, 120, 115, 107, 117, 118, 114, 113, 110, 113, 102, 113, 114, 127, 108, 111, 115, 115, 103, 104, 112, 118, 111, 117, 113, 116, 118, 110, 119, 115, 118, 108, 121, 110, 118, 113, 114, 108, 113, 129, 117, 115, 130, 114, 108, 119, 132, 112, 123, 122, 110, 115, 123, 110, 119, 117, 118, 121, 103, 118, 114, 124, 117, 126, 117, 115, 115, 109, 109, 112, 117, 120, 124, 109, 117, 114, 120, 123, 111, 106, 120, 112, 117, 113, 116, 124, 118, 114, 114, 118, 121, 111, 120, 117, 120, 115, 115, 110, 114, 101, 114, 107, 110, 113, 111, 107, 116, 104, 114, 113, 117, 110, 114, 107, 108, 117, 104, 114, 107, 113, 115, 116, 104, 111, 117, 115, 121, 115, 118, 115, 111, 117, 125, 123, 112, 111, 111, 119, 115, 110, 114, 104, 121, 106, 112, 112, 117, 107, 126, 107, 113, 135, 117, 108, 121, 112, 118, 118, 117, 116, 113, 117, 121, 104, 118, 106, 102, 111, 122, 118, 119, 119, 115, 113, 116, 102, 110, 117, 117, 115, 102, 114, 113, 112, 122, 111, 120, 114, 114, 114, 120, 106, 120, 111, 112, 105, 123, 111, 116, 108, 116, 114, 112, 113, 113, 115, 121, 117, 114, 115, 120, 119, 113, 120, 108, 103, 116, 107, 121, 118, 120, 119, 112, 99, 116, 126, 117, 112, 108, 112, 109, 115, 117, 119, 107, 109, 111, 124, 108, 122, 107, 124, 113, 127, 110, 116, 106, 122, 112, 104, 114, 115, 109, 117, 126, 124, 114, 113, 106, 112, 103, 114, 121, 123, 113, 113, 120, 107, 113, 120, 122, 120, 113, 123, 116, 119, 108, 119, 120, 113, 106, 115, 120, 104, 114, 112, 109, 116, 115, 113, 108, 116, 122, 117, 107, 112, 116, 120, 119, 117, 115, 120, 109, 124, 114, 114, 114, 125, 118, 120, 113, 114, 111, 112, 118, 112, 111, 116, 115, 123, 122, 115, 121, 100, 111, 134, 109, 126, 118, 111, 125, 125, 105, 113, 110, 117, 109, 117, 120, 112, 108, 113, 118, 118, 108, 113, 117, 124, 111, 123, 114, 114, 117, 119, 112, 118, 114, 118, 112, 113, 128, 109, 114, 117, 109, 117, 119, 115, 117, 112, 119, 119, 116, 122, 112, 124, 114, 97, 116, 119, 109, 119, 118, 108, 121, 113, 119, 117, 104, 112, 112, 103, 108, 119, 119, 109, 117, 106, 108, 115, 117, 117, 93, 119, 102, 119, 117, 111, 117, 120, 110, 115, 116, 110, 120, 113, 112, 111, 115, 118, 110, 112, 111, 113, 108, 125, 107, 131, 123, 115, 123, 113, 114, 113, 112, 109, 113, 110, 117, 114, 115, 127, 115, 101, 97, 108, 111, 119, 98, 118, 117, 107, 102, 117, 125, 112, 119, 120, 112, 104, 144, 125, 130, 101, 115, 121, 114, 139, 124, 128, 106, 109, 107, 122, 124, 116, 116, 135, 120, 133, 117, 112, 127, 109, 125, 114, 119, 122, 117, 115, 117, 113, 111, 122, 118, 104, 100, 119, 134, 111, 117, 113, 119, 110, 124, 114, 111, 126, 119, 114, 117, 96, 118, 123, 106, 114, 117, 120, 90, 111, 107, 122, 129, 107, 119, 116, 125, 111, 105, 123, 112, 123, 119, 140, 99, 109, 122, 126, 116, 123, 113, 119, 122, 115, 121, 98, 105, 117, 108, 101, 104, 116, 124, 104, 123, 112, 101, 121, 125, 110, 120, 126, 114, 118, 107, 116, 118, 107, 92, 122, 113, 111, 115, 106, 104, 115, 113, 106, 113, 118, 119, 117, 119, 110, 99, 112, 110, 120, 130, 116, 113, 116, 115, 103, 115, 99, 113, 111, 114, 117, 109, 116, 128, 106, 120, 103, 117, 119, 98, 114, 108, 119, 98, 126, 110, 122, 120, 119, 110, 104, 108, 90, 119, 114, 121, 103, 108, 115, 118, 106, 121, 116, 121, 103, 111, 133, 123, 116, 116, 117, 124, 106, 127, 116, 127, 114, 100, 116, 116, 103, 105, 115, 123, 119, 101, 105, 112, 116, 108, 121, 102, 120, 117, 114, 115, 115, 128, 124, 106, 109, 115, 114, 109, 128, 108, 117, 105, 103, 113, 111, 116, 125, 125, 115, 121, 130, 116, 143, 110, 118, 107, 130, 109, 116, 123, 136, 115, 102, 126, 134, 118, 105, 118, 118, 111, 126, 109, 117, 120, 115, 106, 120, 103, 103, 114, 117, 118, 118, 118, 98, 108, 105, 118, 119, 117, 113, 115, 105, 76, 122, 124, 107, 121, 110, 110, 114, 118, 113, 127, 135, 103, 108, 101, 97, 113, 111, 103, 113, 102, 113, 117, 120, 105, 116, 112, 106, 130, 111, 120, 126, 110, 125, 135, 114, 121, 112, 117, 114, 126, 113, 122, 115, 126, 104, 107, 121, 103, 114, 110, 104, 116, 118, 116, 109, 121, 121, 101, 115, 105, 109, 107, 99, 108, 122, 111, 122, 120, 105, 107, 120, 115, 111, 98, 107, 110, 115, 109, 128, 114, 120, 124, 111, 108, 113, 115, 107, 121, 107, 113, 115, 122, 104, 117, 95, 111, 116, 120, 116, 115, 103, 110, 115, 125, 107, 96, 125, 111, 120, 120, 131, 121, 117, 104, 107, 113, 112, 114, 118, 91, 116, 112, 109, 117, 120, 90, 113, 123, 126, 116, 109, 118, 118, 108, 108, 110, 115, 119, 104, 109, 113, 121, 113, 115, 119, 120, 119, 113, 118, 108, 117, 103, 112, 122, 115, 120, 98, 119, 118, 114, 123, 115, 116, 112, 119, 121, 99, 109, 113, 125, 103, 109, 115, 126, 115, 108, 110, 125, 126, 103, 115, 118, 109, 114, 101, 107, 115, 109, 119, 98, 127, 116, 106, 127, 122, 113, 120, 113, 104, 112, 107, 118, 109, 108, 110, 113, 116, 125, 108, 113, 119, 133, 104, 125, 118, 124, 115, 122, 117, 104, 108, 119, 116, 103, 127, 115, 121, 112, 120, 108, 109, 122, 108, 116, 121, 122, 117, 118, 113, 117, 114, 118, 123, 122, 101, 141, 114, 102, 121, 118, 103, 110, 125, 112, 117, 116, 121, 114, 120, 114, 108, 124, 107, 121, 126, 112, 127, 102, 134, 119, 121, 115, 126, 110, 118, 122, 106, 126, 117, 115, 112, 107, 127, 112, 113, 114, 110, 115, 117, 116, 110, 120, 105, 115, 109, 111, 113, 107, 127, 110, 115, 114, 134, 115, 108, 124, 99, 118, 103, 108, 112, 116, 118, 125, 109, 116, 123, 121, 118, 117, 107, 117, 124, 116, 107, 124, 123, 122, 116, 104, 115, 117, 105, 101, 109, 121, 112, 123, 126, 121, 111, 122, 95, 117, 113, 107, 117, 122, 98, 111, 110, 110, 138, 117, 107, 111, 107, 120, 109, 114, 108, 118, 124, 120, 117, 117, 114, 117, 110, 133, 115, 112, 120, 110, 115, 107, 121, 110, 97, 116, 117, 117, 121, 100, 111, 117, 107, 102, 120, 109, 102, 114, 100, 104, 111, 121, 114, 117, 122, 110, 94, 114, 109, 123, 105, 113, 126, 102, 107, 118, 108, 117, 117, 113, 108, 114, 122, 121, 116, 114, 131, 108, 102, 97, 122, 103, 106, 124, 121, 123, 112, 124, 112, 113, 124, 115, 126, 112, 96, 104, 111, 124, 116, 109, 118, 111, 104, 111, 120, 117, 115, 103, 120, 116, 104, 114, 120, 113, 115, 115, 122, 111, 123, 120, 103, 123, 125, 116, 105, 112, 108, 120, 125, 123, 118, 112, 115, 110, 123, 120, 109, 115, 106, 114, 122, 126, 120, 101, 117, 126, 109, 123, 111, 110, 116, 114, 121, 108, 108, 113, 122, 118, 108, 106, 113, 100, 117, 117, 112, 110, 115, 115, 121, 124, 134, 120, 106, 115, 112, 100, 109, 124, 112, 118, 131, 105, 118, 117, 119, 106, 120, 131, 114, 132, 115, 125, 119, 121, 114, 97, 115, 110, 113, 126, 114, 115, 112, 124, 117, 110, 110, 112, 112, 121, 105, 114, 122, 116, 104, 101, 125, 120, 114, 111, 113, 110, 113, 110, 93, 109, 105, 112, 124, 104, 106, 112, 100, 104, 118, 116, 118, 116, 118, 119, 112, 113, 121, 109, 113, 92, 111, 127, 115, 105, 123, 113, 115, 126, 106, 129, 120, 122, 107, 112, 129, 110, 106, 115, 116, 120, 121, 109, 122, 108, 108, 124, 114, 110, 116, 118, 117, 116, 120, 124, 98, 125, 122, 117, 118, 117, 105, 116, 113, 111, 115, 119, 98, 106, 121, 114, 109, 116, 116, 118, 118, 108, 111, 116, 118, 122, 109, 118, 113, 116, 128, 116, 90, 122, 124, 113, 109, 115, 125, 111, 127, 98, 105, 106, 115, 112, 126, 107, 115, 119, 121, 112, 119, 119, 113, 107, 100, 109, 122, 118, 113, 126, 108, 103, 120, 116, 106, 112, 117, 115, 111, 107, 120, 107, 118, 122, 101, 122, 116, 119, 104, 137, 101, 102, 107, 107, 109, 114, 110, 111, 113, 111, 119, 114, 105, 124, 102, 109, 111, 108, 123, 110, 98, 119, 124, 119, 120, 120, 102, 121, 124, 110, 123, 111, 121, 111, 125, 114, 120, 117, 107, 124, 129, 120, 114, 116, 117, 107, 127, 118, 111, 107, 116, 110, 111, 118, 108, 113, 113, 118, 118, 119, 116, 112, 116, 109, 109, 113, 116, 112, 115, 117, 115, 105, 109, 113, 121, 108, 122, 110, 117, 112, 122, 112, 116, 116, 110, 116, 117, 121, 117, 122, 114, 112, 105, 119, 113, 113, 114, 101, 110, 106, 120, 113, 112, 121, 106, 104, 101, 124, 111, 108, 118, 107, 110, 116, 117, 108, 116, 116, 116, 106, 119, 118, 115, 121, 118, 116, 105, 117, 121, 126, 117, 117, 110, 113, 114, 114, 110, 102, 125, 116, 114, 117, 117, 115, 121, 107, 116, 101, 107, 118, 117, 112, 120, 115, 121, 111, 110, 102, 115, 113, 124, 130, 103, 117, 112, 123, 117, 113, 109, 112, 107, 119, 109, 101, 123, 122, 107, 121, 116, 110, 120, 115, 117, 129, 123, 118, 113, 116, 117, 116, 107, 113, 99, 110, 111, 105, 121, 112, 119, 110, 104, 109, 124, 112, 114, 116, 124, 105, 108, 120, 112, 112, 112, 113, 113, 126, 120, 115, 117, 115, 113, 110, 110, 110, 115, 122, 114, 119, 110, 118, 121, 120, 119, 124, 112, 112, 115, 106, 114, 123, 116, 116, 115, 109, 113, 129, 118, 105, 113, 110, 109, 119, 124, 117, 127, 121, 127, 120, 119, 113, 118, 119, 117, 113, 110, 113, 114, 126, 112, 126, 114, 124, 119, 118, 108, 111, 123, 111, 117, 115, 103, 112, 117, 122, 118, 125, 117, 112, 113, 105, 102, 121, 116, 115, 103, 113, 114, 113, 111, 115, 127, 121, 115, 123, 121, 124, 117, 107, 105, 113, 119, 101, 114, 131, 113, 123, 112, 112, 125, 118, 124, 120, 120, 117, 118, 117, 111, 119, 115, 115, 120, 123, 107, 114, 114, 112, 112, 119, 119, 121, 113, 112, 115, 113, 118, 109, 115, 101, 127, 114, 113, 119, 117, 125, 124, 119, 116, 118, 113, 117, 122, 116, 116, 108, 111, 120, 110, 104, 123, 107, 117, 125, 116, 111, 121, 119, 110, 118, 108, 124, 113, 105, 121, 117, 123, 120, 113, 111, 118, 114, 113, 112, 104, 124, 116, 111, 114, 108, 119, 117, 128, 112, 130, 116, 113, 115, 122, 112, 118, 114, 113, 127, 110, 108, 102, 112, 124, 110, 119, 120, 116, 109, 104, 119, 112, 113, 118, 120, 118, 104, 113, 110, 114, 115, 106, 115, 111, 110, 121, 114, 112, 113, 107, 110, 115, 115, 121, 108, 124, 107, 106, 120, 112, 113, 119, 111, 115, 117, 121, 107, 110, 116, 106, 112, 115, 111, 112, 115, 122, 106, 119, 114, 107, 117, 119, 117, 112, 115, 115, 111, 128, 125, 114, 116, 118, 119, 105, 112, 117, 122, 113, 113, 113, 111, 112, 105, 108, 119, 106, 126, 110, 123, 139, 123, 117, 115, 119, 127, 104, 116, 110, 105, 124, 109, 118, 116, 112, 111, 114, 121, 117, 113, 119, 116, 114, 121, 119, 109, 118, 116, 113, 112, 113, 112, 112, 117, 107, 118, 117, 111, 119, 119, 106, 117, 74, 117, 117, 116, 118, 129, 119, 119, 119, 114, 109, 125, 123, 110, 113, 102, 109, 121, 100, 119, 111, 126, 111, 117, 125, 120, 115, 118, 116, 102, 122, 116, 113, 117, 110, 118, 119, 115, 108, 117, 116, 121, 114, 106, 113, 118, 124, 131, 118, 141, 114, 111, 109, 111, 122, 118, 117, 116, 118, 121, 117, 116, 114, 110, 125, 111, 109, 109, 116, 113, 116, 113, 125, 110, 115, 118, 115, 112, 117, 126, 114, 116, 112, 112, 106, 119, 114, 121, 114, 122, 109, 138, 115, 113, 118, 115, 114, 110, 123, 111, 122, 117, 118, 112, 130, 121, 110, 109, 123, 123, 118, 107, 116, 108, 104, 111, 111, 118, 112, 106, 112, 114, 108, 118, 120, 113, 111, 121, 108, 115, 119, 90, 105, 131, 125, 118, 121, 113, 109, 115, 112, 114, 119, 109, 124, 121, 122, 122, 120, 112, 106, 115, 114, 113, 112, 109, 117, 110, 115, 118, 116, 117, 118, 104, 126, 127, 126, 118, 102, 114, 117, 121, 116, 108, 111, 118, 102, 106, 109, 120, 107, 118, 114, 115, 99, 114, 113, 134, 115, 113, 122, 122, 125, 112, 116, 113, 109, 115, 129, 111, 117, 110, 105, 122, 110, 123, 117, 113, 119, 109, 106, 115, 104, 112, 133, 107, 108, 106, 124, 113, 110, 113, 112, 121, 116, 114, 121, 106, 120, 122, 107, 108, 117, 111, 130, 110, 109, 117, 112, 108, 104, 118, 122, 118, 122, 115, 115, 108, 114, 114, 121, 111, 111, 113, 115, 120, 125, 117, 120, 110, 115, 119, 112, 118, 121, 120, 117, 112, 122, 105, 113, 116, 107, 110, 130, 117, 125, 116, 110, 107, 119, 100, 109, 114, 108, 107, 113, 115, 121, 102, 110, 127, 107, 107, 119, 104, 108, 113, 114, 118, 121, 126, 113, 132, 123, 118, 98, 119, 108, 119, 114, 112, 112, 114, 109, 112, 118, 127, 115, 121, 118, 101, 109, 120, 120, 114, 122, 112, 122, 111, 108, 102, 119, 113, 116, 116, 116, 105, 112, 125, 105, 120, 110, 118, 115, 111, 122, 103, 117, 122, 118, 135, 120, 106, 119, 109, 116, 107, 105, 112, 112, 113, 120, 122, 101, 110, 117, 118, 116, 109, 122, 113, 127, 116, 126, 109, 121, 119, 115, 113, 123, 112, 114, 115, 123, 122, 120, 118, 103, 124, 131, 114, 116, 109, 106, 106, 105, 114, 118, 111, 123, 112, 126, 130, 123, 118, 125, 125, 122, 128, 128, 121, 133, 122, 123, 111, 102, 108, 112, 105, 113, 112, 110, 114, 115, 117, 99, 113, 111, 127, 110, 124, 114, 110, 126, 105, 121, 119, 107, 113, 122, 96, 127, 124, 96, 123, 123, 119, 112, 113, 112, 121, 121, 113, 122, 117, 119, 103, 125, 113, 98, 130, 112, 119, 112, 125, 117, 114, 120, 104, 114, 119, 108, 117, 118, 129, 122, 123, 117, 116, 123, 120, 108, 110, 114, 130, 126, 106, 105, 120, 113, 109, 112, 115, 129, 129, 118, 110, 133, 123, 113, 113, 118, 113, 120, 131, 107, 111, 114, 116, 125, 119, 112, 115, 123, 95, 139, 105, 101, 103, 106, 111, 92, 118, 112, 114, 116, 127, 88, 117, 109, 114, 107, 115, 110, 106, 117, 143, 150, 119, 110, 114, 122, 125, 105, 98, 105, 108, 93, 123, 119, 106, 115, 108, 113, 113, 134, 112, 109, 122, 136, 117, 116, 122, 108, 130, 102, 117, 102, 135, 127, 107, 100, 126, 105, 108, 110, 114, 101, 112, 102, 112, 120, 117, 115, 107, 113, 121, 98, 131, 110, 115, 119, 112, 121, 118, 101, 107, 122, 101, 118, 113, 137, 124, 101, 119, 104, 108, 112, 105, 115, 122, 121, 104, 112, 103, 103, 104, 99, 104, 115, 105, 110, 113, 117, 120, 132, 98, 111, 145, 103, 112, 119, 125, 119, 119, 95, 113, 112, 115, 124, 126, 102, 111, 108, 112, 117, 128, 90, 113, 104, 107, 110, 115, 115, 118, 122, 110, 104, 119, 86, 111, 116, 122, 127, 125, 126, 128, 122, 118, 122, 111, 90, 106, 116, 119, 111, 98, 117, 120, 109, 128, 127, 106, 104, 115, 109, 116, 104, 122, 112, 113, 109, 107, 128, 114, 112, 114, 120, 100, 117, 127, 122, 96, 114, 118, 120, 133, 114, 115, 117, 113, 93, 117, 118, 95, 97, 111, 112, 132, 110, 133, 121, 109, 126, 109, 116, 118, 107, 107, 94, 118, 111, 106, 103, 117, 100, 124, 102, 137, 117, 111, 94, 109, 106, 108, 114, 124, 115, 116, 110, 118, 119, 120, 118, 110, 110, 122, 116, 110, 100, 117, 114, 125, 115, 98, 117, 121, 127, 109, 103, 88, 112, 124, 102, 115, 117, 112, 107, 121, 108, 114, 106, 120, 116, 107, 116, 91, 120, 117, 99, 116, 112, 108, 127, 118, 111, 114, 118, 123, 121, 120, 98, 110, 130, 117, 126, 112, 99, 112, 124, 120, 106, 112, 108, 115, 106, 135, 109, 108, 118, 125, 116, 104, 132, 116, 122, 109, 126, 113, 113, 111, 109, 124, 133, 117, 95, 111, 119, 115, 113, 129, 126, 111, 120, 111, 115, 118, 99, 109, 126, 125, 127, 105, 102, 126, 122, 113, 115, 120, 115, 105, 117, 113, 105, 117, 117, 114, 89, 100, 99, 130, 114, 97, 91, 114, 110, 102, 118, 121, 134, 102, 119, 97, 103, 113, 116, 115, 113, 113, 110, 113, 116, 125, 113, 129, 126, 121, 111, 120, 121, 114, 100, 126, 131, 103, 125, 118, 114, 113, 105, 103, 130, 113, 111, 110, 121, 117, 104, 120, 155, 129, 118, 109, 110, 120, 125, 101, 107, 116, 130, 124, 110, 103, 117, 109, 111, 122, 121, 108, 110, 108, 124, 111, 128, 113, 108, 108, 108, 95, 102, 123, 105, 117, 117, 107, 95, 104, 120, 134, 123, 109, 106, 125, 107, 110, 119, 130, 103, 121, 109, 119, 110, 128, 117, 122, 111, 109, 103, 93, 101, 122, 110, 124, 115, 73, 110, 128, 114, 108, 109, 116, 126, 109, 121, 109, 124, 121, 123, 116, 107, 120, 114, 124, 110, 118, 115, 125, 117, 126, 109, 121, 109, 132, 109, 119, 100, 121, 112, 102, 106, 122, 108, 108, 122, 111, 112, 124, 110, 111, 119, 123, 110, 111, 116, 117, 116, 109, 111, 118, 112, 122, 113, 130, 119, 106, 120, 113, 116, 117, 109, 99, 120, 112, 111, 116, 109, 116, 109, 116, 109, 119, 110, 114, 117, 113, 114, 121, 125, 121, 104, 114, 111, 122, 112, 118, 108, 118, 126, 97, 110, 114, 112, 115, 124, 109, 118, 109, 116, 120, 129, 112, 120, 125, 119, 121, 113, 116, 124, 110, 107, 109, 108, 115, 111, 116, 110, 106, 116, 111, 103, 112, 117, 100, 112, 111, 111, 98, 111, 114, 114, 119, 116, 121, 118, 118, 118, 126, 117, 124, 109, 111, 112, 113, 108, 111, 114, 127, 113, 119, 137, 121, 117, 128, 111, 119, 114, 102, 116, 123, 106, 115, 118, 109, 117, 113, 117, 115, 114, 118, 119, 121, 111, 124, 118, 122, 113, 107, 117, 101, 117, 118, 110, 108, 131, 119, 116, 119, 115, 106, 108, 116, 105, 106, 118, 108, 108, 123, 109, 115, 113, 107, 109, 120, 120, 120, 110, 109, 117, 124, 110, 105, 122, 120, 119, 122, 121, 115, 119, 111, 107, 124, 113, 122, 111, 98, 101, 114, 123, 107, 125, 109, 110, 109, 112, 106, 116, 114, 114, 124, 115, 126, 120, 116, 114, 122, 107, 114, 105, 112, 111, 113, 115, 109, 114, 112, 120, 120, 112, 120, 106, 120, 112, 115, 114, 113, 104, 114, 114, 115, 122, 114, 129, 123, 117, 116, 128, 116, 128, 121, 110, 111, 112, 100, 121, 113, 105, 114, 113, 114, 118, 117, 113, 120, 115, 112, 113, 119, 123, 114, 105, 110, 115, 101, 101, 118, 111, 104, 115, 119, 107, 121, 120, 125, 116, 114, 107, 116, 111, 115, 113, 118, 106, 114, 116, 115, 116, 115, 116, 114, 114, 114, 116, 107, 111, 122, 111, 115, 103, 118, 117, 111, 114, 108, 122, 120, 125, 124, 111, 121, 108, 113, 123, 116, 113, 124, 111, 110, 116, 112, 110, 108, 112, 109, 124, 110, 119, 126, 116, 115, 99, 116, 119, 119, 120, 110, 120, 122, 117, 101, 111, 111, 111, 107, 113, 111, 114, 118, 132, 115, 111, 102, 119, 106, 116, 116, 113, 111, 100, 125, 102, 110, 119, 117, 123, 121, 118, 117, 110, 109, 114, 113, 107, 106, 117, 117, 117, 110, 117, 111, 107, 106, 116, 112, 123, 105, 129, 114, 114, 114, 125, 119, 111, 120, 110, 120, 139, 118, 119, 123, 114, 113, 110, 118, 101, 115, 122, 116, 125, 120, 105, 120, 115, 129, 126, 121, 118, 118, 119, 124, 111, 118, 122, 118, 126, 109, 115, 122, 108, 112, 109, 120, 108, 104, 127, 108, 113, 109, 117, 107, 116, 117, 130, 119, 111, 115, 114, 105, 114, 120, 107, 109, 124, 121, 116, 118, 114, 115, 119, 112, 126, 114, 106, 98, 121, 116, 121, 122, 115, 115, 112, 126, 107, 114, 114, 124, 107, 123, 114, 125, 111, 116, 116, 111, 123, 116, 122, 98, 112, 100, 109, 118, 112, 117, 105, 115, 116, 110, 116, 120, 109, 107, 114, 120, 131, 110, 120, 97, 103, 120, 127, 113, 137, 111, 115, 109, 117, 117, 140, 123, 102, 106, 123, 113, 110, 126, 106, 112, 110, 113, 137, 117, 127, 116, 118, 112, 106, 116, 119, 131, 102, 109, 91, 103, 115, 122, 109, 110, 129, 115, 113, 118, 106, 113, 129, 111, 112, 124, 111, 134, 108, 128, 110, 117, 128, 74, 108, 124, 112, 111, 131, 125, 117, 109, 104, 121, 116, 112, 118, 112, 117, 118, 112, 104, 126, 119, 79, 104, 102, 118, 127, 110, 123, 111, 124, 119, 116, 117, 102, 126, 111, 116, 116, 89, 136, 131, 129, 98, 111, 103, 106, 115, 93, 104, 113, 115, 113, 115, 110, 111, 132, 108, 112, 116, 110, 106, 117, 104, 104, 92, 111, 126, 111, 107, 116, 102, 116, 109, 120, 122, 112, 103, 116, 118, 116, 107, 128, 112, 136, 102, 112, 106, 96, 116, 110, 124, 109, 110, 115, 126, 96, 119, 113, 119, 125, 111, 125, 118, 114, 123, 115, 118, 121, 105, 126, 118, 132, 119, 96, 121, 113, 132, 110, 122, 112, 105, 112, 117, 109, 117, 105, 105, 110, 118, 112, 108, 118, 134, 112, 103, 123, 111, 115, 119, 128, 108, 110, 100, 114, 95, 115, 113, 115, 112, 115, 120, 110, 117, 113, 100, 127, 111, 107, 112, 114, 113, 121, 108, 114, 122, 119, 122, 111, 122, 117, 117, 122, 121, 120, 120, 116, 113, 110, 118, 117, 109, 122, 108, 111, 104, 122, 122, 113, 110, 112, 136, 111, 103, 121, 113, 125, 110, 115, 139, 120, 118, 111, 111, 112, 104, 101, 132, 98, 105, 107, 109, 102, 108, 116, 113, 118, 114, 110, 111, 120, 114, 106, 116, 119, 98, 107, 118, 113, 107, 117, 118, 134, 117, 117, 118, 129, 125, 109, 98, 119, 116, 109, 93, 119, 116, 110, 112, 133, 113, 131, 120, 107, 116, 111, 108, 111, 136, 137, 118, 99, 110, 119, 114, 126, 118, 107, 101, 104, 103, 106, 107, 111, 109, 120, 125, 115, 130, 113, 115, 117, 113, 111, 103, 99, 118, 118, 122, 132, 116, 116, 106, 116, 107, 107, 114, 107, 117, 122, 100, 115, 105, 104, 102, 117, 114, 116, 119, 116, 109, 95, 121, 111, 124, 118, 103, 90, 113, 103, 107, 125, 100, 124, 112, 123, 102, 123, 126, 112, 108, 108, 122, 99, 108, 117, 102, 117, 121, 110, 114, 118, 98, 124, 102, 106, 107, 131, 101, 112, 115, 122, 129, 120, 120, 109, 112, 119, 105, 105, 114, 107, 104, 122, 103, 123, 119, 109, 106, 110, 116, 109, 132, 114, 122, 117, 111, 103, 120, 99, 126, 121, 112, 112, 124, 117, 107, 113, 126, 109, 125, 122, 117, 121, 115, 111, 113, 114, 114, 88, 105, 121, 113, 117, 123, 120, 113, 127, 114, 92, 117, 107, 102, 113, 123, 119, 125, 119, 106, 131, 116, 115, 124, 118, 108, 123, 103, 115, 104, 109, 124, 115, 113, 106, 117, 104, 104, 116, 109, 118, 127, 110, 111, 117, 108, 107, 110, 104, 111, 127, 117, 136, 113, 115, 113, 121, 114, 132, 123, 122, 110, 106, 120, 119, 111, 109, 115, 112, 97, 112, 130, 117, 106, 117, 117, 117, 111, 112, 123, 119, 113, 119, 121, 120, 122, 108, 119, 118, 122, 121, 116, 120, 111, 124, 103, 133, 119, 123, 133, 118, 111, 117, 117, 124, 111, 101, 124, 103, 107, 116, 118, 113, 115, 106, 112, 110, 120, 108, 97, 105, 117, 115, 101, 109, 109, 115, 115, 122, 120, 119, 112, 113, 121, 114, 113, 119, 112, 112, 110, 110, 113, 127, 118, 125, 121, 117, 129, 112, 112, 117, 107, 113, 115, 113, 114, 114, 112, 111, 113, 116, 115, 97, 104, 129, 117, 123, 126, 120, 108, 111, 123, 119, 118, 122, 125, 96, 114, 113, 100, 110, 117, 106, 131, 140, 105, 106, 111, 118, 115, 111, 119, 129, 101, 119, 125, 120, 114, 117, 118, 122, 126, 118, 108, 126, 115, 106, 122, 112, 125, 109, 111, 111, 121, 105, 126, 108, 115, 111, 113, 110, 128, 114, 122, 137, 119, 114, 123, 105, 115, 120, 119, 114, 118, 100, 128, 120, 106, 113, 117, 114, 114, 110, 136, 110, 119, 118, 128, 119, 124, 137, 117, 107, 127, 116, 110, 117, 127, 107, 125, 108, 84, 108, 99, 125, 120, 117, 118, 117, 112, 121, 116, 107, 101, 118, 130, 117, 112, 119, 102, 115, 106, 113, 104, 108, 125, 120, 105, 133, 108, 121, 101, 123, 113, 112, 112, 112, 111, 116, 119, 119, 117, 123, 124, 114, 92, 133, 108, 116, 113, 117, 131, 111, 127, 115, 120, 130, 103, 107, 110, 127, 100, 117, 123, 114, 122, 112, 109, 110, 105, 116, 122, 116, 110, 109, 125, 109, 117, 125, 117, 108, 110, 118, 111, 107, 114, 105, 106, 120, 119, 109, 118, 123, 108, 136, 96, 122, 117, 114, 125, 107, 117, 121, 127, 113, 114, 117, 111, 124, 121, 123, 124, 119, 122, 120, 109, 110, 119, 95, 122, 123, 105, 117, 110, 114, 113, 126, 119, 117, 118, 129, 118, 88, 111, 109, 103, 110, 110, 115, 111, 119, 118, 119, 116, 120, 123, 121, 121, 127, 115, 116, 110, 116, 133, 118, 115, 117, 118, 123, 116, 124, 117, 121, 105, 117, 126, 119, 111, 113, 105, 111, 117, 121, 128, 125, 105, 105, 109, 109, 117, 119, 104, 122, 103, 133, 104, 123, 99, 113, 126, 109, 116, 115, 117, 100, 114, 124, 118, 114, 117, 111, 116, 113, 120, 117, 118, 118, 98, 112, 91, 109, 121, 109, 116, 112, 118, 108, 120, 124, 115, 105, 109, 112, 120, 124, 109, 115, 123, 125, 117, 113, 110, 106, 104, 116, 113, 110, 114, 125, 117, 116, 113, 113, 124, 115, 116, 118, 111, 124, 118, 116, 105, 122, 108, 118, 127, 108, 112, 113, 117, 115, 128, 114, 123, 113, 127, 109, 113, 111, 114, 119, 114, 115, 113, 128, 109, 123, 105, 126, 109, 107, 121, 118, 108, 108, 117, 120, 121, 122, 115, 110, 111, 127, 100, 119, 111, 99, 121, 118, 115, 115, 130, 117, 103, 109, 130, 103, 112, 111, 111, 121, 116, 109, 122, 107, 112, 114, 126, 104, 115, 113, 126, 112, 120, 116, 107, 125, 115, 103, 117, 119, 114, 111, 119, 116, 116, 122, 116, 121, 100, 104, 94, 115, 93, 112, 112, 109, 112, 96, 111, 122, 114, 105, 122, 108, 115, 105, 101, 115, 111, 102, 121, 102, 110, 106, 114, 124, 99, 132, 114, 112, 113, 114, 114, 102, 115, 113, 116, 112, 118, 126, 112, 106, 116, 110, 107, 107, 129, 136, 125, 101, 103, 119, 111, 114, 108, 127, 114, 113, 118, 110, 96, 112, 113, 105, 101, 138, 111, 115, 123, 106, 112, 105, 120, 91, 114, 107, 116, 117, 121, 119, 113, 123, 112, 113, 115, 120, 115, 122, 108, 105, 111, 112, 115, 94, 107, 117, 124, 129, 109, 111, 127, 106, 129, 110, 121, 116, 114, 123, 115, 99, 126, 117, 127, 116, 130, 110, 108, 110, 115, 125, 129, 120, 116, 123, 126, 116, 111, 115, 110, 123, 129, 120, 114, 113, 123, 110, 94, 103, 95, 114, 123, 109, 125, 116, 100, 117, 120, 120, 125, 104, 110, 115, 110, 118, 124, 126, 122, 130, 123, 125, 114, 107, 121, 112, 114, 118, 93, 109, 103, 108, 105, 112, 124, 121, 130, 124, 99, 107, 136, 115, 128, 104, 104, 113, 113, 108, 113, 112, 126, 109, 122, 113, 120, 120, 123, 125, 125, 107, 109, 123, 114, 105, 123, 122, 113, 116, 111, 128, 120, 117, 115, 98, 113, 114, 128, 113, 120, 114, 126, 119, 110, 106, 103, 106, 112, 122, 102, 111, 144, 108, 129, 110, 119, 127, 143, 115, 116, 126, 126, 131, 117, 102, 116, 121, 116, 102, 115, 103, 111, 126, 102, 112, 111, 115, 117, 110, 116, 120, 113, 112, 118, 121, 117, 108, 123, 118, 109, 110, 103, 119, 114, 102, 105, 113, 110, 125, 125, 110, 126, 110, 107, 122, 101, 125, 115, 102, 99, 122, 117, 118, 99, 108, 123, 100, 117, 125, 107, 120, 122, 121, 129, 111, 99, 104, 108, 104, 106, 119, 107, 120, 114, 125, 123, 94, 108, 112, 107, 113, 113, 113, 122, 123, 120, 109, 109, 127, 124, 108, 115, 102, 109, 127, 106, 112, 122, 118, 115, 117, 114, 102, 104, 115, 118, 108, 98, 111, 115, 106, 110, 115, 117, 129, 125, 105, 132, 103, 116, 131, 120, 107, 115, 119, 113, 96, 111, 112, 123, 106, 112, 124, 112, 124, 115, 114, 111, 114, 132, 114, 133, 110, 124, 113, 125, 108, 121, 108, 112, 105, 112, 118, 116, 113, 108, 115, 118, 121, 104, 114, 138, 107, 112, 109, 109, 106, 104, 108, 115, 100, 110, 114, 93, 122, 104, 114, 110, 117, 118, 108, 116, 115, 111, 119, 116, 116, 118, 119, 109, 104, 127, 121, 110, 113, 112, 114, 117, 112, 103, 105, 111, 128, 100, 113, 116, 107, 126, 137, 114, 117, 115, 118, 102, 97, 116, 121, 112, 110, 117, 119, 125, 111, 125, 117, 119, 107, 128, 100, 119, 113, 117, 123, 112, 117, 117, 122, 112, 101, 128, 101, 120, 118, 119, 107, 113, 117, 103, 118, 110, 114, 113, 106, 121, 107, 109, 115, 134, 109, 112, 116, 113, 115, 123, 117, 116, 109, 125, 135, 123, 111, 125, 109, 109, 114, 110, 101, 105, 110, 115, 115, 118, 120, 114, 117, 110, 111, 113, 109, 114, 120, 112, 125, 129, 106, 109, 114, 115, 104, 125, 115, 111, 118, 114, 118, 107, 110, 115, 117, 109, 123, 122, 110, 104, 127, 112, 109, 106, 118, 124, 111, 127, 112, 119, 113, 108, 114, 110, 116, 100, 113, 111, 129, 117, 115, 111, 102, 104, 104, 106, 123, 109, 110, 115, 117, 105, 122, 109, 105, 112, 116, 105, 119, 116, 123, 124, 121, 108, 111, 130, 109, 110, 122, 118, 117, 103, 99, 116, 108, 104, 107, 109, 107, 111, 114, 120, 118, 120, 113, 121, 130, 114, 114, 118, 120, 107, 113, 113, 125, 119, 110, 114, 105, 107, 125, 107, 93, 128, 107, 125, 123, 120, 88, 113, 125, 110, 116, 117, 112, 108, 113, 127, 111, 114, 127, 130, 119, 135, 116, 114, 115, 122, 119, 117, 108, 108, 101, 126, 122, 121, 118, 114, 109, 112, 107, 106, 131, 116, 106, 127, 121, 120, 107, 107, 117, 115, 119, 113, 110, 124, 114, 107, 107, 110, 108, 119, 118, 125, 110, 134, 107, 121, 119, 116, 110, 107, 122, 111, 112, 117, 118, 128, 94, 112, 126, 106, 118, 111, 114, 111, 116, 121, 113, 115, 116, 115, 111, 110, 117, 110, 109, 107, 119, 121, 114, 100, 118, 107, 118, 109, 119, 114, 110, 117, 108, 106, 127, 105, 121, 110, 110, 120, 122, 115, 111, 110, 110, 124, 121, 108, 111, 95, 117, 118, 121, 120, 129, 118, 111, 128, 116, 123, 117, 118, 112, 115, 124, 107, 96, 111, 122, 109, 113, 108, 117, 119, 129, 111, 110, 110, 115, 110, 110, 116, 125, 99, 108, 110, 115, 112, 110, 114, 125, 118, 117, 125, 99, 100, 120, 104, 121, 124, 120, 118, 117, 123, 113, 124, 128, 123, 116, 111, 118, 117, 113, 102, 115, 123, 124, 113, 140, 104, 111, 115, 125, 119, 116, 113, 112, 114, 102, 118, 121, 116, 107, 115, 118, 108, 114, 117, 146, 129, 117, 115, 111, 116, 106, 110, 121, 115, 113, 109, 111, 113, 109, 124, 117, 106, 118, 111, 115, 120, 118, 109, 106, 117, 116, 112, 109, 126, 121, 119, 116, 114, 116, 117, 112, 113, 112, 125, 129, 116, 105, 103, 115, 108, 111, 120, 116, 110, 112, 114, 118, 122, 97, 114, 114, 116, 109, 115, 111, 115, 114, 110, 115, 113, 113, 124, 120, 82, 103, 116, 107, 112, 117, 119, 113, 115, 121, 135, 125, 112, 110, 103, 117, 112, 119, 114, 118, 117, 104, 106, 115, 122, 112, 117, 119, 99, 97, 112, 128, 106, 123, 109, 116, 112, 114, 123, 110, 113, 114, 115, 113, 106, 113, 99, 114, 104, 112, 114, 123, 129, 111, 107, 117, 121, 123, 119, 114, 115, 107, 118, 103, 113, 107, 116, 113, 115, 108, 114, 113, 116, 106, 124, 124, 123, 110, 110, 115, 115, 112, 113, 112, 120, 110, 117, 115, 108, 120, 127, 119, 108, 105, 119, 116, 114, 116, 118, 108, 115, 111, 110, 111, 109, 98, 111, 115, 114, 118, 104, 119, 112, 124, 121, 117, 114, 114, 113, 106, 116, 107, 105, 119, 101, 111, 122, 118, 116, 106, 123, 117, 128, 124, 115, 106, 97, 123, 103, 120, 112, 100, 103, 106, 102, 117, 109, 120, 110, 109, 110, 124, 115, 121, 114, 91, 111, 123, 118, 106, 106, 113, 123, 116, 124, 103, 120, 122, 117, 115, 123, 123, 101, 107, 111, 113, 108, 104, 115, 122, 108, 113, 117, 124, 120, 111, 114, 104, 106, 115, 126, 115, 122, 117, 128, 129, 111, 106, 111, 123, 122, 126, 119, 119, 110, 118, 117, 111, 113, 111, 117, 114, 111, 130, 116, 122, 101, 118, 112, 112, 117, 122, 117, 123, 118, 115, 112, 116, 116, 120, 114, 111, 100, 107, 126, 122, 113, 114, 114, 109, 123, 123, 120, 122, 120, 109, 122, 103, 112, 131, 110, 111, 110, 110, 127, 114, 125, 117, 117, 102, 110, 115, 113, 118, 109, 117, 122, 107, 118, 121, 126, 119, 103, 117, 118, 103, 110, 116, 107, 117, 91, 122, 122, 120, 104, 109, 108, 120, 121, 110, 122, 105, 113, 108, 106, 122, 113, 107, 119, 106, 106, 127, 106, 118, 117, 102, 112, 123, 116, 123, 112, 108, 123, 123, 113, 112, 114, 127, 122, 116, 108, 103, 111, 111, 114, 121, 105, 112, 129, 118, 129, 110, 112, 131, 120, 97, 120, 107, 109, 104, 122, 122, 118, 113, 125, 113, 100, 107, 120, 107, 124, 115, 116, 122, 103, 116, 124, 110, 114, 125, 124, 121, 102, 102, 119, 108, 92, 123, 123, 128, 122, 119, 105, 104, 110, 119, 113, 119, 100, 117, 117, 112, 117, 108, 110, 94, 112, 108, 128, 117, 109, 111, 116, 115, 103, 116, 114, 110, 108, 120, 124, 117, 106, 118, 108, 113, 107, 125, 105, 111, 123, 127, 111, 130, 103, 109, 116, 120, 110, 119, 106, 125, 118, 111, 116, 118, 126, 105, 117, 122, 110, 119, 109, 115, 108, 107, 126, 120, 123, 119, 115, 96, 115, 114, 107, 99, 111, 123, 124, 122, 124, 141, 123, 106, 112, 117, 115, 112, 120, 114, 125, 122, 111, 112, 121, 122, 126, 112, 108, 103, 133, 115, 109, 120, 116, 118, 112, 119, 106, 114, 112, 122, 116, 132, 119, 113, 130, 114, 124, 114, 107, 107, 110, 126, 122, 97, 113, 118, 113, 109, 111, 101, 118, 115, 109, 112, 119, 123, 111, 120, 133, 120, 118, 114, 111, 121, 95, 108, 127, 126, 106, 115, 120, 115, 109, 103, 116, 112, 110, 113, 127, 114, 105, 114, 106, 113, 116, 90, 104, 124, 117, 115, 114, 137, 118, 104, 112, 120, 118, 115, 117, 106, 115, 111, 98, 113, 122, 115, 122, 110, 123, 110, 104, 123, 118, 114, 111, 123, 113, 122, 104, 125, 121, 118, 116, 117, 114, 113, 118, 113, 131, 116, 132, 110, 121, 97, 114, 111, 120, 128, 105, 116, 123, 108, 125, 111, 113, 112, 106, 117, 101, 114, 112, 111, 120, 111, 116, 110, 114, 111, 111, 122, 111, 112, 110, 121, 104, 87, 95, 108, 115, 119, 111, 106, 123, 109, 111, 110, 121, 131, 116, 126, 120, 110, 103, 122, 135, 111, 126, 111, 115, 104, 120, 116, 118, 106, 118, 131, 115, 112, 118, 116, 113, 122, 113, 114, 107, 113, 118, 117, 113, 115, 123, 115, 100, 104, 116, 119, 115, 109, 100, 112, 125, 131, 103, 104, 114, 116, 118, 113, 116, 112, 125, 118, 116, 121, 122, 112, 111, 113, 127, 107, 128, 109, 118, 113, 122, 103, 125, 116, 118, 115, 116, 118, 119, 109, 123, 120, 121, 109, 118, 109, 116, 105, 121, 112, 111, 106, 117, 107, 111, 113, 121, 109, 116, 111, 121, 129, 109, 119, 125, 117, 114, 108, 122, 105, 117, 114, 124, 117, 121, 114, 130, 112, 106, 126, 117, 118, 109, 130, 114, 96, 106, 119, 123, 122, 108, 117, 112, 115, 110, 115, 120, 104, 118, 112, 123, 114, 126, 116, 106, 122, 114, 125, 117, 114, 104, 111, 104, 113, 114, 114, 113, 113, 109, 128, 120, 103, 113, 114, 115, 114, 113, 113, 121, 114, 116, 108, 126, 111, 108, 111, 105, 107, 104, 113, 103, 115, 116, 115, 119, 116, 106, 114, 131, 129, 107, 113, 112, 112, 116, 111, 126, 107, 111, 121, 101, 122, 116, 115, 110, 111, 114, 121, 94, 123, 130, 124, 113, 120, 113, 100, 111, 119, 107, 126, 118, 110, 113, 121, 109, 122, 123, 107, 112, 111, 129, 100, 118, 119, 119, 130, 109, 113, 108, 95, 113, 112, 110, 120, 105, 117, 113, 125, 109, 111, 107, 118, 116, 116, 121, 118, 104, 121, 131, 115, 108, 116, 123, 113, 111, 124, 115, 109, 108, 117, 108, 116, 125, 112, 112, 109, 113, 127, 91, 112, 121, 118, 103, 107, 130, 109, 100, 104, 114, 119, 113, 106, 126, 116, 115, 97, 104, 122, 104, 108, 114, 131, 112, 110, 116, 114, 117, 105, 116, 117, 123, 112, 110, 98, 117, 110, 111, 112, 121, 109, 122, 109, 115, 114, 117, 115, 118, 129, 116, 116, 128, 116, 110, 118, 113, 133, 108, 119, 115, 116, 115, 112, 103, 110, 118, 116, 113, 118, 125, 109, 126, 128, 119, 111, 110, 115, 136, 112, 125, 108, 105, 117, 105, 119, 112, 112, 122, 106, 107, 108, 135, 116, 116, 119, 111, 109, 116, 130, 110, 119, 125, 112, 117, 106, 127, 112, 121, 118, 132, 116, 114, 111, 111, 116, 115, 113, 113, 112, 122, 119, 103, 108, 122, 108, 115, 143, 117, 117, 110, 120, 105, 113, 108, 107, 109, 116, 118, 122, 112, 113, 112, 106, 108, 107, 111, 112, 120, 123, 101, 114, 105, 105, 121, 131, 104, 122, 123, 120, 122, 102, 119, 118, 104, 111, 113, 114, 118, 118, 116, 110, 104, 106, 128, 126, 132, 114, 105, 117, 111, 109, 119, 109, 106, 119, 133, 102, 114, 123, 119, 110, 132, 109, 115, 117, 117, 121, 110, 124, 110, 119, 113, 109, 121, 111, 119, 126, 102, 118, 121, 114, 112, 123, 118, 117, 127, 127, 108, 115, 113, 100, 121, 112, 120, 111, 123, 106, 106, 114, 128, 134, 120, 112, 111, 117, 105, 118, 116, 119, 124, 114, 111, 110, 113, 122, 121, 112, 125, 108, 113, 112, 113, 114, 121, 113, 111, 119, 117, 107, 124, 120, 121, 110, 129, 112, 108, 94, 113, 102, 101, 108, 124, 122, 113, 114, 104, 113, 103, 114, 106, 129, 124, 115, 115, 110, 125, 104, 127, 121, 114, 108, 122, 113, 124, 89, 123, 119, 115, 122, 107, 100, 110, 122, 119, 97, 116, 121, 107, 131, 124, 139, 115, 125, 119, 122, 123, 113, 113, 113, 124, 114, 133, 119, 116, 126, 109, 112, 118, 114, 124, 104, 109, 100, 110, 125, 132, 125, 121, 97, 122, 112, 103, 116, 114, 112, 124, 97, 88, 110, 111, 107, 112, 117, 109, 115, 125, 119, 128, 128, 118, 120, 107, 121, 107, 117, 103, 103, 115, 101, 104, 116, 119, 129, 112, 115, 108, 118, 123, 117, 121, 114, 117, 124, 125, 120, 123, 115, 112, 130, 95, 107, 116, 89, 117, 110, 115, 115, 104, 110, 121, 111, 123, 110, 117, 95, 110, 112, 109, 102, 117, 107, 119, 110, 129, 127, 124, 114, 115, 127, 108, 120, 114, 114, 106, 113, 110, 111, 109, 111, 109, 118, 106, 105, 118, 125, 119, 114, 115, 127, 131, 114, 114, 108, 111, 117, 118, 103, 119, 104, 116, 115, 104, 112, 105, 115, 122, 105, 119, 118, 112, 107, 122, 126, 105, 116, 118, 112, 132, 112, 101, 123, 128, 104, 116, 119, 118, 111, 131, 122, 115, 123, 125, 115, 128, 132, 118, 125, 117, 114, 109, 106, 102, 117, 128, 113, 123, 119, 126, 123, 130, 115, 128, 112, 112, 122, 116, 123, 119, 118, 110, 120, 131, 115, 120, 110, 101, 103, 126, 113, 128, 109, 110, 101, 116, 119, 102, 115, 113, 104, 109, 104, 114, 117, 107, 108, 104, 117, 115, 111, 112, 107, 124, 127, 110, 111, 123, 113, 128, 129, 113, 108, 116, 116, 124, 122, 116, 108, 103, 122, 110, 110, 118, 106, 95, 131, 130, 118, 113, 113, 122, 107, 117, 118, 119, 110, 118, 117, 116, 139, 115, 106, 116, 117, 113, 115, 108, 118, 121, 137, 103, 114, 115, 111, 103, 86, 96, 111, 128, 110, 108, 113, 115, 102, 114, 109, 118, 112, 121, 117, 110, 101, 108, 113, 116, 116, 107, 126, 108, 112, 113, 118, 121, 119, 112, 125, 103, 112, 113, 113, 109, 128, 110, 118, 119, 110, 114, 127, 109, 100, 113, 121, 111, 117, 107, 117, 110, 96, 112, 96, 123, 118, 121, 106, 106, 123, 113, 109, 104, 103, 107, 130, 105, 122, 116, 128, 122, 107, 120, 123, 117, 133, 119, 124, 102, 118, 125, 133, 108, 110, 126, 115, 106, 110, 107, 129, 110, 124, 125, 107, 123, 116, 123, 110, 108, 101, 113, 114, 105, 113, 120, 111, 106, 124, 133, 116, 109, 117, 120, 128, 128, 114, 112, 123, 108, 124, 112, 118, 116, 138, 98, 120, 127, 103, 130, 113, 130, 109, 110, 116, 115, 108, 108, 124, 112, 103, 121, 112, 104, 110, 118, 112, 101, 107, 122, 103, 128, 114, 132, 113, 113, 110, 122, 116, 120, 121, 111, 116, 129, 104, 119, 112, 132, 113, 113, 113, 110, 112, 104, 106, 110, 119, 128, 117, 113, 119, 102, 125, 118, 107, 125, 123, 117, 111, 121, 110, 109, 110, 118, 115, 100, 114, 114, 118, 123, 113, 108, 116, 126, 108, 111, 119, 109, 121, 112, 129, 127, 122, 108, 128, 97, 116, 130, 98, 114, 104, 108, 118, 120, 106, 107, 128, 116, 114, 106, 113, 107, 115, 114, 115, 118, 115, 126, 116, 103, 104, 116, 115, 137, 121, 120, 115, 112, 118, 111, 119, 118, 116, 121, 119, 106, 125, 106, 119, 114, 114, 106, 109, 113, 116, 110, 104, 118, 112, 109, 134, 117, 105, 118, 122, 119, 102, 121, 108, 114, 111, 113, 104, 104, 114, 109, 114, 116, 126, 118, 123, 116, 109, 97, 98, 113, 126, 116, 115, 128, 113, 111, 116, 114, 117, 106, 101, 129, 108, 111, 102, 129, 101, 113, 113, 112, 111, 127, 117, 119, 110, 115, 122, 101, 105, 121, 101, 121, 112, 116, 121, 109, 111, 118, 107, 129, 110, 130, 112, 115, 124, 106, 114, 118, 109, 113, 116, 94, 105, 97, 111, 126, 124, 115, 118, 121, 130, 113, 113, 111, 95, 111, 119, 123, 129, 106, 107, 105, 111, 116, 112, 121, 145, 113, 117, 106, 116, 117, 115, 106, 125, 111, 118, 111, 130, 119, 108, 104, 128, 117, 120, 118, 118, 124, 133, 111, 131, 125, 117, 127, 96, 124, 127, 121, 112, 105, 117, 107, 107, 111, 113, 125, 112, 119, 120, 119, 120, 121, 115, 103, 100, 122, 113, 115, 122, 118, 119, 111, 128, 124, 114, 103, 118, 99, 111, 111, 117, 121, 126, 104, 114, 123, 117, 116, 118, 113, 111, 115, 129, 114, 119, 131, 117, 111, 103, 108, 113, 113, 116, 127, 117, 123, 111, 119, 113, 120, 107, 120, 114, 107, 118, 120, 98, 120, 108, 122, 110, 115, 127, 128, 134, 130, 112, 105, 101, 100, 115, 100, 117, 107, 112, 114, 113, 93, 115, 121, 131, 125, 112, 108, 121, 124, 99, 107, 117, 111, 109, 118, 126, 120, 113, 102, 102, 106, 114, 115, 123, 124, 131, 134, 106, 117, 111, 122, 106, 135, 115, 112, 108, 95, 111, 124, 112, 105, 111, 122, 112, 113, 118, 115, 109, 112, 104, 105, 103, 137, 118, 110, 130, 109, 109, 120, 122, 103, 110, 118, 121, 108, 111, 115, 116, 120, 117, 123, 120, 115, 100, 107, 123, 106, 126, 103, 97, 111, 118, 126, 134, 100, 117, 98, 103, 112, 109, 125, 111, 108, 122, 119, 112, 117, 112, 130, 134, 126, 126, 107, 109, 103, 112, 105, 110, 113, 108, 130, 124, 116, 119, 123, 104, 116, 123, 102, 123, 104, 122, 114, 95, 110, 121, 112, 117, 116, 111, 113, 111, 114, 122, 114, 127, 126, 112, 112, 119, 104, 120, 119, 124, 119, 114, 119, 127, 109, 112, 112, 126, 99, 102, 126, 108, 119, 117, 114, 112, 105, 121, 114, 123, 118, 122, 94, 122, 113, 119, 101, 108, 115, 113, 113, 105, 116, 118, 103, 115, 104, 129, 108, 117, 119, 134, 117, 129, 112, 125, 126, 110, 130, 109, 94, 123, 106, 121, 104, 112, 110, 126, 117, 123, 117, 108, 113, 123, 131, 115, 116, 113, 124, 117, 107, 119, 107, 121, 110, 115, 105, 123, 125, 111, 115, 109, 109, 116, 118, 114, 105, 134, 105, 121, 128, 116, 108, 107, 115, 127, 113, 114, 124, 117, 120, 125, 117, 112, 116, 106, 115, 116, 104, 119, 111, 119, 122, 114, 116, 109, 113, 108, 106, 112, 118, 110, 100, 116, 101, 124, 110, 123, 103, 113, 100, 120, 108, 121, 116, 119, 113, 114, 112, 114, 125, 109, 108, 110, 124, 122, 113, 122, 111, 118, 119, 106, 115, 121, 117, 111, 117, 121, 132, 106, 110, 138, 115, 135, 111, 126, 126, 104, 125, 109, 113, 104, 123, 111, 108, 113, 109, 114, 114, 126, 107, 105, 117, 114, 120, 112, 97, 126, 113, 120, 127, 120, 100, 116, 123, 102, 110, 118, 119, 136, 121, 112, 130, 126, 105, 120, 112, 107, 119, 118, 114, 113, 103, 110, 112, 128, 118, 110, 116, 107, 116, 115, 111, 109, 117, 109, 114, 126, 115, 128, 113, 102, 124, 110, 126, 119, 122, 123, 113, 115, 134, 118, 131, 121, 119, 115, 119, 112, 114, 108, 132, 117, 111, 114, 107, 112, 111, 110, 122, 100, 129, 106, 121, 126, 117, 105, 111, 113, 107, 120, 102, 103, 102, 106, 122, 110, 116, 110, 103, 115, 122, 99, 106, 96, 109, 125, 104, 115, 113, 111, 103, 125, 105, 113, 114, 117, 112, 103, 126, 109, 116, 111, 113, 122, 115, 109, 113, 115, 112, 108, 109, 104, 109, 123, 107, 108, 124, 106, 125, 109, 118, 121, 115, 120, 107, 106, 118, 133, 118, 120, 110, 109, 104, 115, 122, 121, 115, 131, 110, 113, 107, 111, 121, 108, 107, 113, 107, 105, 101, 117, 135, 110, 123, 105, 113, 116, 112, 127, 106, 110, 106, 103, 105, 115, 126, 113, 114, 111, 113, 114, 110, 100, 127, 136, 118, 114, 122, 116, 123, 115, 112, 119, 126, 107, 107, 121, 116, 122, 120, 131, 122, 119, 120, 110, 112, 113, 115, 103, 120, 105, 120, 119, 122, 107, 105, 118, 113, 104, 113, 113, 119, 117, 113, 105, 99, 105, 109, 121, 122, 117, 111, 121, 112, 99, 113, 111, 111, 117, 125, 116, 121, 94, 116, 123, 119, 109, 111, 120, 117, 118, 120, 117, 110, 124, 111, 114, 105, 118, 114, 114, 118, 121, 115, 113, 113, 102, 115, 104, 116, 110, 109, 121, 115, 131, 119, 107, 110, 114, 124, 110, 104, 102, 105, 115, 115, 104, 120, 125, 122, 101, 120, 120, 110, 128, 109, 124, 126, 121, 118, 110, 115, 124, 110, 127, 103, 116, 113, 118, 111, 117, 114, 116, 108, 108, 113, 122, 115, 129, 123, 121, 113, 106, 93, 125, 126, 110, 120, 125, 86, 128, 124, 110, 110, 99, 124, 112, 106, 109, 111, 99, 109, 107, 121, 110, 118, 113, 120, 102, 109, 109, 108, 124, 137, 116, 104, 126, 109, 106, 108, 110, 109, 121, 116, 118, 133, 106, 117, 112, 108, 112, 116, 112, 115, 110, 115, 117, 117, 116, 106, 111, 106, 107, 108, 119, 126, 102, 110, 99, 111, 107, 110, 107, 103, 109, 121, 124, 117, 123, 122, 116, 111, 115, 118, 109, 117, 105, 121, 116, 116, 115, 113, 114, 113, 117, 114, 107, 119, 127, 121, 113, 109, 107, 120, 124, 97, 117, 122, 122, 113, 82, 110, 112, 106, 107, 103, 121, 101, 115, 113, 129, 111, 122, 95, 121, 126, 112, 122, 121, 123, 118, 114, 135, 107, 108, 117, 119, 115, 111, 126, 122, 124, 122, 115, 115, 111, 120, 102, 114, 113, 122, 118, 111, 112, 114, 113, 119, 100, 102, 116, 123, 119, 96, 116, 123, 116, 127, 115, 107, 115, 112, 110, 114, 0, 117, 116, 113, 101, 120, 105, 106, 119, 113, 111, 103, 118, 119, 119, 115, 107, 120, 111, 125, 117, 125, 121, 114, 133, 113, 108, 119, 123, 122, 116, 120, 116, 108, 116, 112, 121, 107, 114, 116, 174, 114, 117, 114, 120, 120, 125, 121, 111, 119, 108, 110, 99, 129, 104, 126, 104, 114, 118, 116, 112, 109, 115, 110, 114, 106, 122, 120, 113, 123, 110, 117, 122, 117, 118, 100, 132, 107, 109, 136, 106, 116, 109, 116, 105, 112, 113, 121, 107, 113, 110, 119, 114, 111, 120, 117, 112, 105, 110, 128, 108, 104, 110, 110, 123, 113, 113, 119, 115, 108, 117, 118, 113, 118, 119, 121, 97, 108, 108, 113, 123, 99, 111, 122, 103, 106, 121, 121, 117, 116, 117, 124, 118, 97, 118, 113, 118, 118, 116, 124, 125, 117, 116, 113, 105, 107, 103, 136, 115, 115, 120, 123, 118, 125, 119, 119, 125, 120, 111, 113, 106, 115, 117, 119, 114, 117, 122, 124, 129, 121, 117, 123, 121, 109, 115, 110, 121, 111, 113, 108, 118, 104, 114, 113, 122, 117, 111, 75, 117, 114, 115, 114, 134, 116, 114, 114, 110, 122, 114, 114, 113, 109, 121, 108, 115, 121, 113, 110, 115, 112, 111, 107, 109, 111, 118, 120, 108, 96, 115, 103, 122, 118, 113, 120, 112, 111, 111, 112, 128, 106, 76, 103, 112, 124, 131, 115, 117, 109, 116, 110, 114, 113, 117, 116, 112, 104, 123, 110, 123, 100, 110, 121, 113, 124, 118, 115, 117, 123, 107, 105, 113, 117, 117, 109, 113, 106, 121, 112, 113, 112, 115, 111, 118, 113, 117, 119, 115, 110, 86, 127, 108, 111, 114, 114, 105, 106, 113, 119, 112, 119, 110, 123, 123, 124, 106, 110, 125, 111, 110, 100, 111, 107, 113, 119, 101, 115, 123, 113, 118, 120, 112, 130, 116, 123, 116, 118, 110, 115, 116, 118, 115, 101, 131, 108, 119, 115, 115, 125, 120, 128, 128, 105, 105, 118, 117, 106, 111, 125, 110, 114, 108, 108, 110, 111, 116, 121, 109, 125, 106, 116, 123, 109, 110, 122, 111, 121, 120, 120, 120, 125, 120, 124, 96, 99, 109, 106, 113, 123, 99, 122, 123, 112, 113, 120, 114, 111, 110, 117, 101, 117, 117, 107, 120, 107, 138, 119, 119, 118, 117, 114, 120, 111, 112, 122, 113, 112, 116, 112, 113, 101, 115, 110, 117, 123, 120, 110, 115, 115, 112, 102, 110, 99, 111, 128, 107, 113, 109, 109, 108, 123, 136, 106, 116, 116, 113, 104, 115, 117, 100, 120, 119, 122, 110, 119, 90, 90, 103, 126, 98, 110, 126, 106, 97, 123, 119, 111, 113, 114, 113, 114, 104, 94, 105, 118, 114, 111, 113, 124, 109, 111, 110, 102, 125, 107, 113, 111, 97, 109, 118, 114, 109, 106, 119, 116, 129, 122, 111, 117, 118, 102, 114, 122, 116, 113, 115, 116, 117, 73, 108, 106, 113, 112, 117, 108, 110, 127, 114, 114, 114, 116, 120, 105, 114, 101, 106, 97, 94, 120, 116, 112, 107, 113, 121, 121, 122, 114, 103, 110, 104, 109, 127, 117, 106, 112, 108, 116, 113, 97, 111, 121, 114, 109, 110, 116, 118, 119, 108, 113, 114, 103, 116, 117, 110, 123, 125, 122, 105, 111, 103, 109, 115, 111, 104, 128, 120, 116, 118, 89, 131, 123, 113, 118, 108, 115, 130, 116, 119, 114, 106, 126, 111, 115, 118, 108, 116, 109, 122, 111, 125, 119, 125, 108, 113, 113, 125, 112, 112, 114, 116, 113, 111, 104, 127, 118, 117, 123, 121, 109, 119, 110, 110, 108, 133, 119, 115, 108, 115, 109, 108, 124, 117, 109, 97, 116, 107, 114, 124, 106, 134, 109, 122, 114, 115, 123, 113, 123, 116, 119, 100, 114, 119, 108, 114, 134, 112, 116, 116, 127, 110, 118, 118, 110, 118, 139, 122, 118, 129, 115, 105, 109, 134, 109, 115, 113, 113, 118, 111, 115, 117, 112, 107, 111, 129, 122, 117, 117, 115, 117, 103, 124, 121, 115, 125, 111, 43, 120, 109, 115, 95, 117, 110, 114, 126, 114, 111, 122, 113, 112, 107, 127, 92, 109, 126, 110, 106, 128, 112, 120, 100, 107, 111, 116, 122, 109, 115, 110, 120, 112, 110, 111, 106, 125, 114, 119, 114, 100, 110, 109, 115, 127, 114, 115, 122, 112, 119, 121, 107, 120, 116, 116, 110, 112, 151, 115, 103, 110, 116, 106, 128, 128, 108, 118, 134, 103, 114, 113, 123, 120, 119, 127, 113, 109, 111, 99, 118, 93, 115, 122, 117, 111, 111, 109, 101, 111, 110, 114, 113, 122, 116, 100, 102, 118, 107, 116, 112, 119, 110, 115, 124, 121, 122, 119, 122, 111, 119, 103, 129, 108, 116, 117, 110, 122, 112, 110, 107, 105, 129, 111, 109, 116, 108, 129, 128, 116, 122, 98, 119, 105, 112, 124, 122, 124, 109, 110, 110, 112, 99, 116, 125, 108, 120, 119, 127, 108, 82, 123, 116, 117, 113, 119, 114, 117, 100, 115, 117, 112, 121, 118, 118, 111, 114, 113, 119, 98, 112, 126, 117, 109, 126, 116, 113, 116, 108, 117, 100, 110, 113, 109, 120, 121, 114, 125, 112, 105, 110, 125, 110, 119, 113, 126, 113, 109, 115, 104, 109, 115, 104, 127, 110, 120, 103, 114, 105, 109, 124, 130, 112, 110, 111, 112, 117, 95, 133, 113, 111, 109, 112, 114, 108, 119, 106, 113, 117, 104, 105, 97, 115, 129, 98, 110, 108, 117, 121, 113, 122, 128, 128, 109, 146, 106, 109, 130, 133, 115, 117, 120, 106, 101, 105, 117, 107, 124, 124, 119, 105, 117, 108, 126, 126, 113, 127, 121, 107, 110, 105, 121, 105, 105, 111, 113, 108, 123, 131, 111, 114, 115, 112, 101, 110, 115, 111, 117, 110, 105, 101, 100, 115, 112, 118, 121, 121, 104, 98, 102, 120, 117, 127, 113, 114, 119, 120, 103, 119, 112, 110, 108, 137, 112, 120, 121, 111, 117, 130, 117, 124, 111, 116, 128, 114, 97, 106, 104, 107, 108, 105, 129, 110, 120, 112, 117, 131, 104, 102, 104, 118, 109, 107, 98, 100, 99, 132, 105, 126, 113, 123, 112, 115, 114, 112, 113, 107, 114, 109, 115, 112, 118, 111, 111, 115, 130, 110, 100, 115, 102, 122, 117, 115, 113, 116, 105, 108, 109, 113, 122, 121, 133, 113, 118, 107, 114, 118, 105, 112, 106, 113, 118, 117, 122, 115, 102, 129, 111, 116, 113, 109, 115, 120, 121, 112, 107, 120, 123, 123, 138, 118, 103, 112, 120, 115, 110, 111, 129, 114, 111, 112, 142, 117, 120, 106, 128, 116, 102, 125, 115, 124, 124, 127, 118, 116, 114, 118, 118, 126, 107, 113, 120, 103, 113, 114, 110, 117, 122, 122, 99, 112, 111, 102, 113, 149, 107, 132, 107, 121, 119, 119, 110, 115, 120, 119, 117, 121, 104, 113, 124, 119, 121, 114, 99, 108, 101, 127, 122, 98, 119, 123, 112, 103, 131, 110, 135, 110, 104, 107, 120, 118, 111, 117, 118, 104, 116, 111, 107, 99, 111, 124, 114, 109, 119, 112, 121, 106, 123, 121, 114, 127, 108, 114, 103, 122, 109, 87, 121, 119, 116, 122, 111, 111, 113, 109, 113, 108, 130, 116, 119, 118, 119, 128, 121, 104, 116, 100, 102, 108, 121, 126, 106, 114, 111, 119, 114, 118, 109, 114, 117, 119, 119, 121, 130, 116, 116, 121, 133, 110, 119, 112, 118, 117, 121, 116, 132, 113, 132, 104, 130, 131, 130, 115, 123, 113, 112, 113, 116, 104, 117, 105, 107, 124, 115, 113, 107, 100, 103, 118, 112, 123, 119, 136, 112, 110, 114, 97, 116, 107, 114, 105, 114, 114, 113, 121, 113, 118, 113, 128, 124, 109, 125, 122, 116, 112, 119, 104, 129, 86, 126, 104, 125, 113, 121, 124, 116, 107, 114, 100, 109, 130, 119, 111, 114, 128, 118, 113, 108, 101, 110, 110, 112, 103, 81, 100, 105, 132, 121, 114, 123, 100, 117, 115, 115, 116, 108, 109, 127, 117, 122, 112, 104, 119, 115, 114, 116, 105, 126, 106, 100, 106, 120, 107, 104, 105, 114, 106, 100, 104, 120, 107, 115, 103, 118, 109, 105, 100, 118, 115, 138, 120, 100, 121, 101, 129, 121, 123, 124, 108, 131, 114, 121, 124, 116, 119, 96, 114, 97, 116, 107, 103, 121, 121, 109, 111, 119, 116, 108, 115, 115, 105, 108, 109, 131, 125, 113, 115, 92, 117, 112, 125, 96, 104, 126, 121, 106, 118, 123, 118, 118, 119, 123, 111, 122, 126, 124, 107, 112, 104, 112, 113, 123, 133, 114, 107, 130, 115, 111, 104, 116, 113, 115, 113, 121, 125, 117, 127, 133, 108, 101, 122, 135, 119, 118, 114, 126, 100, 136, 116, 126, 115, 112, 112, 120, 118, 110, 117, 116, 108, 116, 122, 128, 112, 107, 125, 99, 120, 112, 128, 124, 88, 104, 119, 125, 127, 106, 116, 123, 92, 102, 122, 107, 114, 113, 123, 99, 112, 99, 133, 112, 120, 108, 109, 118, 134, 107, 103, 128, 132, 108, 112, 111, 137, 109, 109, 111, 121, 124, 137, 96, 101, 94, 105, 103, 89, 123, 118, 124, 111, 107, 116, 113, 124, 119, 106, 115, 120, 108, 107, 111, 107, 112, 111, 117, 126, 117, 109, 111, 114, 81, 107, 97, 107, 119, 131, 105, 101, 115, 120, 119, 149, 91, 124, 121, 124, 99, 126, 114, 111, 110, 104, 102, 121, 117, 107, 120, 104, 94, 117, 136, 106, 105, 110, 111, 130, 118, 101, 109, 117, 106, 116, 112, 116, 118, 120, 111, 107, 110, 119, 132, 116, 124, 119, 114, 118, 116, 121, 101, 113, 112, 113, 116, 109, 125, 96, 134, 103, 130, 111, 107, 132, 109, 118, 105, 104, 105, 122, 119, 99, 128, 114, 131, 106, 112, 123, 111, 103, 116, 105, 130, 116, 123, 124, 115, 110, 109, 122, 129, 92, 110, 97, 107, 119, 116, 118, 120, 102, 109, 111, 116, 122, 122, 105, 103, 109, 138, 125, 122, 98, 110, 96, 126, 127, 107, 115, 131, 107, 118, 105, 111, 113, 114, 107, 106, 111, 106, 112, 104, 105, 126, 114, 113, 112, 94, 115, 113, 129, 114, 121, 117, 118, 111, 122, 120, 114, 114, 80, 108, 103, 110, 120, 115, 137, 145, 103, 132, 107, 118, 122, 110, 104, 128, 109, 122, 107, 117, 124, 93, 112, 112, 120, 121, 126, 120, 122, 115, 119, 120, 91, 117, 114, 132, 115, 128, 124, 102, 104, 132, 128, 114, 139, 129, 100, 114, 125, 110, 121, 92, 131, 111, 107, 120, 119, 112, 115, 107, 129, 106, 135, 107, 110, 116, 118, 114, 113, 120, 116, 113, 117, 107, 115, 117, 108, 112, 105, 120, 110, 136, 108, 113, 118, 105, 109, 119, 112, 114, 118, 118, 121, 109, 124, 112, 119, 132, 105, 108, 101, 109, 117, 132, 129, 122, 114, 117, 111, 109, 129, 120, 107, 113, 115, 118, 125, 96, 114, 104, 120, 104, 137, 109, 114, 117, 111, 122, 118, 116, 124, 109, 110, 129, 123, 108, 99, 119, 126, 114, 121, 115, 118, 110, 125, 110, 117, 140, 110, 114, 111, 118, 109, 114, 90, 117, 117, 119, 117, 110, 115, 122, 103, 121, 114, 116, 116, 111, 117, 102, 112, 114, 103, 115, 131, 122, 104, 121, 98, 118, 119, 113, 118, 113, 109, 127, 114, 117, 121, 111, 113, 118, 122, 117, 120, 107, 109, 121, 110, 111, 117, 108, 108, 108, 109, 113, 109, 118, 120, 114, 118, 121, 111, 109, 125, 116, 113, 118, 114, 114, 124, 111, 115, 116, 111, 111, 112, 107, 102, 122, 125, 117, 105, 112, 114, 110, 113, 122, 115, 107, 125, 115, 109, 120, 116, 121, 112, 111, 110, 110, 115, 118, 112, 115, 117, 121, 94, 122, 119, 124, 111, 124, 110, 113, 109, 114, 114, 106, 123, 126, 115, 111, 110, 115, 114, 111, 123, 123, 111, 124, 120, 110, 112, 124, 120, 118, 111, 130, 117, 106, 116, 110, 124, 117, 106, 113, 120, 113, 109, 116, 92, 107, 111, 128, 112, 111, 112, 108, 112, 126, 122, 110, 121, 113, 113, 110, 115, 124, 111, 119, 110, 114, 114, 111, 132, 114, 115, 116, 112, 96, 115, 112, 117, 115, 119, 110, 112, 118, 119, 114, 111, 90, 127, 114, 122, 112, 148, 115, 113, 117, 116, 108, 124, 112, 119, 105, 123, 111, 113, 114, 115, 110, 115, 136, 113, 115, 113, 113, 117, 115, 104, 100, 115, 111, 105, 125, 117, 119, 129, 117, 127, 113, 105, 108, 97, 118, 111, 121, 116, 117, 100, 104, 119, 152, 113, 118, 122, 112, 122, 109, 124, 103, 108, 116, 116, 128, 118, 125, 115, 119, 117, 108, 104, 128, 118, 118, 102, 121, 109, 122, 101, 112, 110, 119, 117, 101, 120, 113, 114, 105, 122, 117, 122, 109, 105, 119, 100, 110, 114, 113, 119, 116, 107, 110, 122, 115, 106, 115, 113, 105, 113, 110, 106, 107, 111, 126, 118, 126, 118, 117, 122, 113, 104, 117, 118, 117, 109, 101, 134, 122, 106, 121, 126, 117, 111, 112, 119, 117, 113, 87, 106, 117, 94, 124, 115, 114, 126, 118, 126, 107, 116, 119, 115, 120, 102, 125, 124, 118, 105, 104, 109, 118, 111, 102, 119, 119, 100, 116, 111, 115, 142, 110, 141, 121, 123, 125, 101, 101, 100, 107, 119, 125, 110, 112, 118, 116, 111, 118, 112, 124, 114, 105, 109, 114, 124, 111, 112, 122, 115, 105, 117, 120, 98, 124, 111, 106, 103, 118, 118, 110, 119, 124, 115, 118, 131, 93, 124, 112, 116, 123, 134, 113, 107, 113, 121, 111, 104, 113, 120, 111, 126, 108, 116, 113, 118, 108, 119, 116, 95, 122, 113, 134, 101, 125, 104, 114, 114, 118, 116, 108, 122, 103, 111, 108, 115, 115, 127, 115, 109, 119, 115, 114, 116, 122, 122, 111, 111, 104, 114, 112, 122, 120, 113, 109, 105, 120, 120, 113, 120, 119, 125, 114, 116, 113, 113, 123, 122, 118, 119, 116, 117, 118, 107, 121, 116, 105, 113, 115, 109, 108, 114, 104, 116, 123, 109, 113, 108, 110, 117, 114, 111, 115, 114, 112, 109, 102, 137, 112, 131, 108, 114, 117, 110, 127, 105, 109, 114, 116, 157, 114, 118, 120, 114, 113, 115, 105, 118, 125, 104, 119, 118, 122, 126, 121, 115, 106, 112, 114, 107, 111, 109, 117, 124, 113, 108, 118, 120, 127, 121, 105, 115, 112, 111, 117, 125, 113, 103, 122, 125, 107, 127, 118, 116, 115, 115, 119, 119, 117, 104, 129, 113, 134, 119, 107, 117, 123, 115, 118, 114, 112, 128, 108, 120, 126, 123, 129, 115, 110, 136, 124, 109, 130, 116, 107, 108, 110, 110, 108, 122, 120, 111, 115, 116, 109, 112, 128, 127, 113, 112, 118, 111, 109, 112, 110, 121, 97, 133, 116, 97, 126, 104, 119, 106, 118, 100, 105, 114, 120, 110, 118, 109, 121, 114, 124, 113, 113, 109, 124, 125, 115, 98, 119, 100, 109, 116, 108, 102, 111, 109, 121, 115, 115, 119, 123, 109, 129, 112, 126, 106, 115, 122, 102, 121, 117, 135, 123, 108, 127, 114, 103, 124, 118, 106, 132, 118, 111, 115, 111, 109, 119, 128, 108, 116, 113, 129, 109, 112, 122, 115, 122, 122, 119, 113, 129, 113, 120, 115, 123, 121, 114, 120, 111, 117, 118, 124, 124, 123, 118, 100, 130, 118, 128, 107, 113, 114, 110, 113, 119, 106, 116, 114, 105, 126, 121, 112, 112, 102, 109, 115, 117, 118, 115, 116, 113, 114, 120, 113, 115, 112, 111, 125, 116, 105, 113, 112, 121, 124, 120, 110, 104, 122, 118, 125, 124, 120, 100, 122, 118, 119, 112, 115, 122, 114, 106, 109, 116, 106, 127, 113, 120, 119, 132, 132, 119, 115, 106, 124, 120, 127, 125, 122, 125, 123, 114, 128, 126, 119, 103, 121, 104, 111, 113, 115, 118, 118, 100, 104, 118, 117, 118, 126, 113, 118, 121, 118, 114, 109, 112, 118, 112, 109, 115, 119, 114, 118, 103, 112, 112, 117, 108, 100, 103, 119, 106, 110, 118, 109, 114, 107, 120, 106, 117, 128, 121, 114, 117, 128, 118, 116, 110, 124, 111, 110, 121, 113, 114, 117, 120, 126, 122, 109, 111, 111, 112, 113, 113, 106, 121, 105, 118, 123, 118, 113, 104, 93, 119, 118, 110, 116, 111, 115, 117, 104, 113, 112, 120, 122, 110, 115, 122, 103, 107, 116, 122, 103, 115, 113, 118, 124, 114, 111, 118, 125, 117, 114, 114, 109, 114, 105, 105, 123, 101, 110, 113, 110, 102, 111, 119, 125, 112, 121, 121, 123, 118, 113, 108, 120, 118, 108, 107, 116, 117, 113, 102, 110, 125, 115, 97, 111, 108, 117, 124, 122, 121, 119, 118, 126, 109, 112, 110, 116, 117, 126, 109, 128, 123, 119, 107, 117, 110, 109, 109, 121, 108, 125, 119, 121, 121, 114, 123, 110, 108, 117, 110, 106, 105, 106, 108, 114, 119, 106, 126, 118, 117, 112, 108, 119, 113, 103, 125, 109, 97, 124, 128, 105, 111, 120, 117, 119, 131, 113, 121, 114, 114, 110, 121, 120, 105, 112, 124, 118, 109, 129, 116, 121, 110, 118, 120, 117, 122, 117, 128, 112, 109, 119, 106, 101, 114, 115, 108, 120, 112, 114, 117, 111, 135, 105, 113, 109, 113, 90, 127, 138, 116, 123, 103, 131, 116, 118, 128, 119, 113, 108, 110, 103, 112, 103, 121, 122, 108, 115, 101, 105, 122, 85, 117, 123, 107, 117, 115, 115, 128, 120, 129, 116, 110, 108, 127, 119, 122, 113, 110, 111, 116, 115, 107, 114, 110, 109, 130, 119, 112, 114, 100, 114, 108, 118, 121, 108, 113, 110, 130, 93, 102, 136, 103, 110, 111, 108, 102, 109, 123, 122, 111, 113, 109, 124, 104, 131, 112, 120, 115, 116, 130, 106, 130, 116, 108, 115, 127, 121, 124, 117, 120, 110, 116, 114, 107, 115, 121, 100, 111, 104, 113, 104, 114, 116, 105, 95, 113, 137, 105, 96, 118, 115, 102, 91, 118, 106, 113, 103, 107, 115, 110, 121, 111, 111, 110, 110, 121, 112, 118, 113, 106, 97, 132, 134, 129, 104, 122, 116, 110, 122, 117, 118, 109, 119, 117, 102, 111, 122, 101, 118, 113, 114, 112, 122, 111, 112, 123, 114, 97, 126, 120, 102, 120, 114, 110, 120, 132, 123, 118, 119, 125, 129, 107, 109, 100, 112, 112, 112, 105, 115, 101, 129, 113, 120, 111, 114, 120, 107, 106, 118, 108, 97, 109, 120, 112, 127, 110, 135, 95, 100, 111, 118, 104, 108, 112, 111, 105, 117, 112, 130, 114, 100, 119, 106, 120, 108, 112, 119, 125, 113, 122, 114, 113, 98, 114, 125, 127, 115, 97, 109, 121, 109, 133, 114, 104, 127, 127, 117, 110, 115, 116, 125, 127, 115, 115, 117, 125, 110, 117, 117, 115, 124, 117, 128, 128, 116, 110, 129, 121, 123, 103, 121, 118, 114, 99, 96, 98, 115, 112, 111, 125, 130, 112, 104, 115, 121, 117, 120, 115, 111, 122, 125, 104, 120, 117, 105, 113, 105, 111, 115, 100, 106, 124, 101, 115, 114, 125, 104, 128, 132, 104, 128, 113, 99, 103, 126, 122, 136, 122, 102, 108, 125, 133, 136, 103, 116, 108, 102, 115, 114, 103, 111, 114, 132, 110, 122, 114, 119, 131, 113, 110, 105, 115, 121, 109, 105, 101, 115, 123, 121, 105, 107, 110, 109, 138, 118, 115, 117, 134, 137, 127, 127, 104, 128, 112, 119, 119, 128, 101, 115, 97, 120, 115, 107, 100, 126, 116, 124, 120, 126, 117, 122, 120, 106, 115, 105, 110, 103, 107, 136, 118, 120, 116, 111, 123, 103, 114, 122, 122, 116, 118, 100, 105, 117, 119, 108, 95, 102, 105, 128, 125, 102, 108, 104, 122, 109, 113, 100, 126, 135, 113, 124, 111, 105, 131, 121, 113, 117, 105, 128, 121, 112, 109, 129, 105, 116, 128, 118, 94, 111, 106, 117, 124, 108, 107, 114, 115, 126, 127, 126, 106, 117, 113, 130, 126, 128, 114, 112, 129, 105, 109, 130, 115, 122, 96, 110, 114, 114, 120, 108, 113, 133, 110, 129, 109, 109, 112, 123, 106, 137, 127, 99, 126, 111, 105, 127, 116, 117, 109, 115, 107, 112, 135, 113, 134, 115, 113, 116, 119, 97, 114, 115, 112, 120, 101, 113, 121, 118, 108, 121, 110, 126, 121, 104, 119, 113, 123, 113, 120, 120, 122, 113, 118, 104, 115, 120, 118, 115, 126, 106, 103, 118, 110, 104, 103, 109, 112, 115, 123, 103, 109, 97, 112, 112, 127, 111, 107, 126, 106, 109, 111, 113, 112, 121, 117, 116, 112, 118, 103, 122, 125, 125, 105, 120, 100, 113, 119, 110, 115, 115, 139, 122, 113, 113, 122, 115, 112, 114, 108, 118, 111, 111, 104, 117, 120, 115, 117, 123, 117, 117, 114, 118, 119, 114, 128, 111, 116, 114, 108, 108, 117, 117, 110, 117, 113, 117, 114, 115, 121, 102, 112, 106, 114, 108, 123, 122, 114, 114, 117, 101, 117, 112, 111, 120, 108, 109, 102, 126, 119, 111, 109, 103, 119, 108, 102, 115, 122, 118, 120, 108, 122, 110, 105, 115, 101, 121, 108, 114, 113, 115, 115, 125, 113, 122, 117, 115, 115, 110, 116, 118, 122, 115, 110, 93, 108, 132, 108, 116, 107, 111, 117, 122, 129, 119, 114, 111, 107, 119, 105, 109, 118, 107, 117, 125, 118, 118, 134, 120, 118, 112, 121, 121, 124, 118, 115, 118, 119, 110, 119, 107, 111, 124, 120, 122, 103, 105, 107, 116, 119, 108, 124, 113, 124, 115, 118, 117, 107, 122, 115, 112, 113, 111, 113, 114, 122, 111, 122, 123, 116, 113, 117, 114, 116, 107, 108, 117, 114, 122, 115, 118, 121, 129, 140, 115, 106, 109, 110, 102, 115, 110, 102, 119, 103, 114, 117, 120, 124, 116, 99, 115, 112, 116, 117, 118, 110, 111, 130, 120, 124, 114, 116, 113, 113, 108, 110, 101, 119, 123, 116, 109, 139, 101, 116, 119, 115, 119, 122, 119, 126, 105, 111, 112, 124, 111, 112, 117, 117, 114, 118, 109, 118, 109, 126, 121, 101, 106, 102, 106, 121, 108, 112, 120, 130, 112, 122, 116, 112, 105, 110, 114, 109, 96, 118, 120, 123, 100, 123, 110, 115, 115, 114, 101, 98, 119, 114, 114, 126, 121, 116, 112, 114, 108, 126, 108, 123, 98, 117, 110, 113, 99, 119, 107, 122, 99, 107, 115, 108, 111, 120, 127, 112, 101, 115, 108, 111, 100, 117, 110, 125, 118, 108, 113, 115, 132, 105, 109, 102, 124, 108, 119, 109, 113, 130, 115, 130, 109, 116, 123, 109, 110, 123, 119, 116, 111, 126, 121, 113, 116, 115, 115, 110, 110, 104, 119, 119, 103, 105, 110, 112, 124, 123, 135, 110, 107, 118, 109, 114, 124, 114, 117, 117, 122, 106, 107, 109, 129, 102, 113, 112, 115, 116, 116, 129, 133, 111, 113, 120, 132, 110, 102, 114, 114, 112, 117, 118, 120, 117, 109, 97, 116, 118, 110, 114, 119, 112, 124, 95, 104, 123, 108, 101, 104, 107, 111, 116, 126, 106, 126, 111, 100, 111, 119, 139, 110, 122, 116, 123, 109, 114, 115, 119, 105, 116, 115, 123, 123, 111, 108, 115, 132, 118, 123, 112, 118, 114, 107, 107, 123, 111, 113, 114, 120, 112, 124, 110, 107, 112, 118, 114, 128, 119, 123, 129, 108, 117, 100, 116, 113, 108, 141, 133, 98, 124, 116, 119, 122, 112, 93, 129, 120, 116, 114, 107, 121, 110, 117, 117, 116, 114, 112, 124, 102, 127, 133, 112, 123, 126, 105, 110, 117, 122, 111, 117, 118, 104, 111, 124, 110, 116, 112, 116, 110, 107, 115, 127, 110, 120, 121, 118, 109, 121, 110, 109, 115, 103, 108, 99, 106, 111, 116, 119, 120, 119, 117, 119, 116, 108, 114, 116, 103, 115, 123, 110, 138, 119, 107, 119, 107, 129, 122, 119, 99, 120, 111, 127, 119, 121, 111, 100, 109, 108, 116, 116, 109, 112, 113, 104, 106, 116, 111, 116, 100, 120, 113, 108, 112, 114, 105, 119, 111, 132, 111, 117, 105, 116, 116, 114, 112, 111, 112, 127, 109, 109, 129, 108, 111, 101, 112, 118, 112, 124, 121, 121, 124, 109, 104, 114, 107, 111, 111, 113, 117, 111, 122, 110, 119, 127, 124, 103, 109, 108, 119, 119, 127, 107, 111, 116, 118, 98, 112, 107, 113, 131, 120, 113, 110, 111, 114, 112, 123, 113, 111, 103, 102, 109, 117, 124, 124, 119, 108, 118, 106, 134, 125, 107, 100, 113, 118, 131, 107, 120, 125, 111, 117, 106, 117, 114, 124, 111, 117, 122, 122, 108, 113, 126, 128, 121, 131, 116, 103, 120, 117, 108, 112, 112, 127, 128, 124, 118, 124, 113, 101, 113, 107, 123, 117, 118, 112, 120, 97, 131, 120, 107, 108, 120, 128, 112, 107, 116, 130, 110, 115, 109, 118, 132, 125, 112, 122, 122, 118, 120, 117, 106, 118, 124, 123, 113, 115, 109, 124, 123, 113, 106, 115, 136, 126, 125, 117, 100, 114, 113, 118, 119, 115, 129, 108, 102, 131, 114, 119, 112, 114, 110, 111, 123, 111, 109, 112, 118, 119, 122, 110, 98, 107, 113, 113, 120, 145, 102, 106, 111, 123, 118, 107, 110, 106, 134, 118, 115, 125, 119, 109, 129, 115, 116, 119, 114, 120, 123, 118, 114, 115, 123, 125, 115, 109, 101, 116, 120, 118, 124, 115, 123, 103, 118, 118, 116, 124, 93, 111, 117, 126, 110, 116, 112, 110, 116, 124, 106, 114, 119, 116, 116, 114, 115, 125, 122, 109, 95, 106, 126, 115, 134, 119, 114, 112, 128, 121, 115, 114, 119, 120, 114, 116, 112, 113, 114, 119, 113, 133, 109, 126, 107, 122, 121, 115, 131, 122, 106, 105, 119, 122, 101, 120, 104, 106, 114, 120, 125, 106, 128, 110, 121, 107, 111, 103, 111, 113, 102, 125, 107, 124, 131, 96, 109, 125, 128, 111, 118, 111, 127, 113, 101, 115, 109, 119, 111, 127, 105, 130, 115, 102, 113, 121, 111, 94, 109, 114, 116, 107, 114, 106, 130, 136, 104, 111, 111, 123, 109, 136, 101, 102, 107, 112, 112, 121, 114, 108, 111, 119, 110, 122, 122, 109, 102, 104, 120, 105, 113, 117, 114, 101, 122, 124, 110, 121, 115, 116, 101, 109, 119, 114, 117, 109, 125, 108, 110, 116, 119, 97, 122, 118, 117, 104, 115, 120, 116, 111, 120, 125, 112, 116, 114, 123, 124, 127, 114, 107, 127, 119, 115, 134, 104, 119, 128, 122, 116, 123, 118, 104, 118, 120, 107, 117, 109, 108, 116, 105, 129, 131, 110, 111, 116, 113, 117, 125, 131, 113, 122, 107, 101, 120, 110, 119, 117, 115, 117, 110, 118, 121, 123, 98, 114, 115, 100, 114, 113, 119, 112, 120, 118, 121, 111, 105, 107, 109, 131, 121, 116, 114, 110, 115, 114, 127, 118, 126, 132, 117, 113, 119, 119, 116, 110, 125, 109, 99, 121, 102, 111, 110, 128, 118, 111, 109, 116, 117, 119, 136, 116, 117, 127, 102, 114, 126, 124, 115, 122, 125, 108, 120, 115, 116, 120, 115, 127, 107, 118, 118, 110, 109, 115, 122, 100, 124, 127, 108, 122, 103, 120, 111, 99, 122, 121, 124, 127, 111, 104, 117, 132, 117, 118, 108, 120, 108, 111, 115, 115, 108, 102, 118, 112, 97, 105, 110, 116, 119, 117, 109, 122, 96, 122, 111, 104, 118, 117, 123, 126, 128, 106, 117, 115, 119, 110, 124, 116, 114, 121, 132, 131, 112, 132, 108, 97, 116, 114, 113, 107, 115, 120, 127, 137, 107, 109, 113, 114, 105, 113, 103, 121, 114, 113, 119, 109, 118, 124, 124, 101, 112, 126, 129, 112, 115, 124, 118, 94, 114, 121, 111, 113, 116, 115, 135, 116, 98, 102, 127, 114, 120, 132, 113, 103, 120, 90, 102, 117, 118, 112, 122, 111, 110, 120, 112, 123, 118, 118, 114, 119, 106, 119, 109, 106, 108, 110, 117, 116, 116, 113, 122, 114, 95, 119, 127, 114, 116, 108, 110, 119, 124, 113, 131, 122, 116, 134, 120, 119, 119, 110, 109, 120, 112, 101, 114, 118, 110, 118, 124, 124, 124, 124, 106, 104, 111, 129, 120, 110, 120, 92, 106, 110, 113, 117, 123, 105, 113, 112, 111, 125, 128, 117, 124, 112, 112, 113, 109, 115, 120, 127, 115, 128, 115, 105, 106, 115, 113, 103, 109, 104, 127, 102, 122, 125, 123, 111, 123, 112, 105, 124, 104, 122, 117, 110, 115, 128, 112, 126, 123, 112, 115, 116, 106, 120, 108, 115, 99, 108, 113, 119, 116, 127, 100, 116, 114, 123, 107, 119, 109, 125, 124, 124, 101, 109, 115, 111, 121, 107, 107, 121, 111, 126, 110, 115, 119, 114, 103, 120, 109, 123, 106, 136, 113, 116, 125, 110, 111, 119, 120, 129, 118, 117, 113, 103, 113, 106, 104, 118, 119, 117, 117, 125, 106, 110, 116, 121, 127, 136, 123, 113, 117, 119, 112, 122, 109, 108, 111, 111, 113, 107, 119, 100, 112, 117, 107, 109, 118, 118, 117, 106, 117, 122, 125, 107, 115, 128, 112, 114, 116, 117, 102, 116, 123, 117, 118, 106, 111, 100, 116, 122, 112, 137, 113, 114, 116, 112, 120, 117, 103, 106, 119, 114, 122, 120, 115, 108, 125, 124, 116, 112, 106, 114, 120, 121, 116, 111, 122, 118, 104, 100, 120, 109, 134, 117, 125, 110, 127, 111, 117, 108, 115, 116, 128, 117, 109, 123, 126, 125, 124, 122, 122, 105, 112, 122, 106, 122, 115, 104, 120, 122, 140, 129, 122, 114, 119, 106, 128, 122, 103, 118, 117, 119, 117, 126, 111, 121, 106, 123, 118, 113, 125, 109, 112, 120, 116, 129, 117, 115, 114, 104, 112, 129, 135, 123, 113, 99, 115, 119, 106, 115, 111, 123, 117, 108, 113, 123, 104, 120, 120, 99, 112, 123, 115, 128, 105, 105, 116, 115, 103, 101, 118, 109, 87, 99, 110, 113, 130, 104, 104, 122, 106, 109, 107, 110, 131, 124, 115, 111, 128, 112, 115, 104, 117, 128, 116, 113, 100, 119, 123, 121, 109, 111, 108, 129, 113, 117, 118, 121, 132, 112, 113, 128, 128, 120, 140, 121, 123, 113, 111, 100, 113, 118, 110, 111, 110, 126, 114, 121, 109, 110, 101, 122, 114, 118, 118, 109, 116, 118, 108, 125, 111, 128, 112, 101, 121, 115, 104, 136, 126, 115, 115, 132, 114, 107, 118, 108, 122, 111, 111, 120, 92, 111, 112, 109, 109, 117, 112, 113, 99, 121, 107, 110, 125, 105, 102, 120, 114, 105, 117, 130, 106, 121, 116, 115, 120, 111, 110, 115, 116, 107, 122, 122, 127, 107, 121, 104, 111, 117, 111, 105, 99, 117, 99, 121, 116, 112, 129, 105, 119, 107, 127, 103, 116, 124, 106, 103, 123, 104, 120, 125, 116, 104, 105, 123, 94, 109, 104, 101, 114, 115, 104, 120, 122, 109, 116, 118, 103, 108, 109, 105, 118, 116, 123, 104, 128, 115, 102, 150, 130, 108, 109, 111, 126, 108, 111, 108, 115, 121, 113, 110, 116, 117, 108, 103, 122, 124, 128, 126, 118, 116, 117, 111, 120, 117, 109, 116, 108, 123, 121, 111, 115, 100, 105, 108, 102, 126, 119, 117, 113, 119, 122, 134, 119, 116, 123, 126, 123, 116, 124, 112, 117, 114, 146, 128, 115, 111, 104, 113, 114, 117, 105, 108, 105, 124, 132, 103, 126, 121, 115, 119, 105, 111, 109, 113, 130, 127, 123, 111, 101, 107, 125, 117, 124, 123, 109, 119, 98, 111, 109, 119, 109, 112, 118, 105, 103, 112, 112, 120, 118, 117, 110, 112, 116, 116, 105, 104, 109, 117, 113, 129, 112, 103, 118, 123, 126, 117, 105, 101, 103, 121, 115, 119, 117, 107, 116, 118, 114, 124, 110, 117, 132, 120, 121, 109, 124, 110, 129, 123, 103, 110, 111, 120, 116, 109, 101, 106, 115, 109, 127, 108, 116, 125, 117, 136, 125, 125, 108, 107, 113, 95, 129, 97, 108, 115, 112, 115, 117, 135, 103, 109, 105, 107, 121, 111, 111, 120, 118, 103, 125, 119, 112, 120, 116, 113, 126, 119, 108, 102, 96, 126, 113, 102, 110, 106, 118, 112, 118, 107, 118, 118, 108, 108, 106, 116, 112, 100, 115, 125, 99, 121, 112, 118, 113, 116, 116, 123, 119, 113, 119, 125, 106, 120, 114, 100, 111, 104, 108, 106, 111, 106, 116, 112, 122, 118, 119, 113, 133, 123, 114, 131, 114, 121, 111, 120, 121, 96, 121, 127, 112, 101, 105, 126, 120, 120, 123, 119, 111, 111, 106, 111, 80, 120, 121, 109, 107, 123, 113, 112, 119, 120, 106, 111, 110, 116, 102, 110, 103, 106, 124, 114, 105, 111, 123, 116, 114, 123, 122, 114, 118, 126, 111, 122, 115, 119, 108, 121, 124, 107, 115, 111, 111, 120, 116, 112, 115, 115, 127, 119, 113, 113, 118, 111, 119, 114, 123, 110, 113, 112, 108, 119, 107, 113, 112, 122, 109, 121, 112, 113, 124, 110, 111, 119, 114, 121, 114, 118, 119, 114, 115, 120, 113, 115, 121, 119, 112, 115, 122, 122, 114, 117, 110, 113, 114, 119, 112, 112, 114, 113, 114, 112, 123, 115, 112, 114, 123, 117, 117, 108, 120, 114, 121, 107, 115, 107, 110, 122, 120, 119, 107, 107, 120, 110, 117, 116, 124, 112, 120, 111, 112, 120, 120, 121, 115, 118, 99, 108, 111, 140, 108, 113, 121, 103, 103, 115, 119, 105, 106, 121, 116, 115, 105, 113, 116, 111, 126, 112, 108, 129, 111, 97, 111, 120, 121, 109, 122, 115, 112, 105, 110, 112, 116, 134, 119, 118, 119, 109, 116, 112, 110, 115, 118, 111, 122, 116, 117, 116, 118, 108, 109, 114, 119, 114, 118, 114, 116, 122, 123, 118, 116, 118, 119, 121, 118, 117, 103, 120, 119, 117, 122, 114, 120, 113, 119, 117, 113, 111, 127, 121, 114, 120, 116, 130, 128, 109, 114, 115, 128, 117, 120, 116, 112, 108, 117, 110, 115, 112, 114, 108, 115, 124, 116, 107, 115, 113, 105, 109, 107, 118, 117, 124, 121, 119, 111, 114, 110, 106, 112, 109, 112, 118, 116, 124, 123, 114, 119, 115, 121, 118, 105, 113, 119, 119, 119, 113, 117, 126, 115, 113, 118, 119, 112, 122, 113, 120, 117, 120, 110, 113, 116, 112, 120, 113, 114, 110, 111, 110, 112, 110, 115, 105, 119, 115, 116, 117, 119, 108, 113, 109, 108, 119, 116, 118, 102, 116, 118, 120, 120, 114, 124, 115, 126, 112, 109, 121, 109, 113, 113, 120, 111, 111, 130, 114, 130, 125, 114, 116, 129, 107, 108, 111, 110, 117, 110, 123, 123, 120, 114, 116, 116, 120, 118, 110, 128, 111, 120, 126, 113, 115, 111, 118, 104, 108, 116, 116, 116, 119, 112, 109, 120, 103, 112, 113, 108, 125, 119, 114, 111, 116, 111, 116, 119, 114, 122, 113, 123, 117, 112, 111, 118, 115, 111, 107, 123, 112, 119, 119, 121, 118, 112, 112, 106, 108, 121, 111, 120, 123, 115, 113, 115, 122, 127, 119, 112, 118, 122, 111, 110, 108, 116, 116, 112, 115, 115, 114, 108, 117, 108, 121, 116, 113, 122, 119, 111, 117, 117, 118, 119, 113, 115, 111, 115, 117, 118, 117, 121, 110, 121, 120, 117, 106, 117, 115, 114, 121, 122, 126, 113, 116, 115, 113, 119, 98, 113, 124, 115, 132, 109, 116, 122, 120, 112, 115, 107, 112, 126, 115, 113, 126, 121, 123, 113, 116, 106, 116, 111, 105, 120, 128, 117, 114, 116, 117, 123, 102, 116, 116, 122, 116, 115, 107, 110, 112, 106, 120, 123, 118, 117, 112, 113, 112, 113, 112, 116, 117, 116, 118, 116, 110, 117, 120, 108, 107, 114, 111, 119, 112, 115, 108, 107, 116, 117, 117, 125, 116, 121, 124, 117, 121, 111, 114, 119, 113, 109, 101, 116, 118, 114, 110, 103, 113, 114, 132, 122, 120, 112, 107, 98, 111, 107, 127, 108, 114, 100, 123, 116, 110, 112, 117, 124, 108, 121, 109, 110, 110, 114, 126, 118, 123, 115, 123, 126, 112, 129, 112, 112, 109, 114, 118, 117, 114, 117, 115, 112, 111, 108, 110, 112, 122, 114, 118, 112, 114, 116, 108, 116, 117, 126, 119, 121, 118, 124, 99, 107, 111, 125, 114, 122, 120, 120, 114, 114, 123, 106, 113, 111, 114, 113, 100, 119, 114, 118, 119, 109, 115, 110, 109, 109, 111, 118, 112, 114, 117, 125, 128, 119, 123, 107, 105, 109, 120, 127, 125, 108, 124, 105, 112, 112, 115, 116, 118, 120, 119, 115, 120, 119, 105, 108, 109, 119, 104, 119, 115, 119, 106, 117, 116, 109, 105, 112, 117, 116, 122, 146, 122, 130, 108, 115, 122, 108, 100, 115, 118, 103, 115, 119, 116, 112, 134, 121, 133, 116, 119, 124, 107, 112, 112, 112, 107, 119, 116, 113, 116, 109, 113, 118, 114, 118, 111, 116, 118, 112, 117, 101, 110, 110, 113, 120, 110, 115, 116, 119, 109, 112, 117, 117, 130, 126, 116, 130, 118, 109, 120, 111, 125, 119, 109, 116, 117, 114, 118, 107, 121, 96, 123, 118, 120, 117, 122, 120, 108, 122, 135, 114, 117, 120, 127, 110, 107, 117, 124, 106, 115, 116, 106, 112, 116, 119, 114, 100, 108, 114, 101, 116, 109, 118, 118, 115, 109, 112, 110, 116, 116, 118, 143, 125, 128, 109, 119, 109, 108, 120, 118, 105, 116, 104, 115, 118, 122, 110, 122, 112, 112, 109, 124, 110, 126, 101, 110, 108, 122, 121, 107, 108, 116, 118, 118, 118, 99, 105, 122, 107, 116, 119, 110, 121, 106, 101, 128, 107, 113, 107, 117, 109, 106, 112, 129, 108, 105, 114, 114, 103, 113, 116, 116, 132, 122, 120, 115, 117, 109, 114, 109, 96, 109, 124, 112, 114, 128, 120, 111, 123, 108, 108, 117, 114, 121, 111, 135, 116, 113, 116, 112, 107, 112, 121, 122, 121, 102, 108, 122, 104, 98, 115, 112, 123, 110, 108, 118, 107, 117, 96, 108, 117, 119, 125, 108, 119, 118, 107, 110, 116, 117, 127, 117, 124, 133, 122, 118, 103, 104, 103, 120, 122, 115, 125, 120, 113, 115, 108, 122, 121, 111, 114, 111, 120, 115, 124, 112, 113, 113, 113, 125, 113, 118, 123, 99, 131, 131, 109, 110, 110, 123, 118, 122, 109, 119, 113, 130, 115, 128, 117, 114, 109, 110, 116, 126, 119, 107, 110, 119, 119, 104, 118, 110, 111, 108, 112, 110, 111, 113, 112, 114, 112, 115, 102, 109, 109, 109, 120, 115, 114, 122, 97, 109, 113, 111, 104, 120, 114, 125, 120, 117, 113, 119, 111, 120, 119, 110, 109, 118, 121, 116, 114, 125, 103, 110, 110, 117, 113, 108, 121, 124, 112, 111, 114, 107, 119, 105, 113, 114, 123, 109, 132, 104, 114, 120, 126, 108, 110, 120, 116, 134, 110, 128, 119, 123, 106, 115, 116, 119, 115, 113, 121, 115, 116, 115, 126, 110, 129, 116, 120, 104, 107, 123, 100, 114, 107, 116, 110, 106, 109, 111, 113, 127, 115, 119, 118, 119, 107, 122, 113, 115, 122, 107, 112, 114, 126, 121, 118, 106, 116, 114, 108, 119, 127, 108, 106, 111, 122, 118, 117, 115, 110, 121, 117, 130, 120, 110, 108, 133, 111, 113, 118, 112, 128, 120, 113, 110, 107, 117, 113, 106, 125, 113, 104, 122, 112, 117, 115, 110, 112, 121, 119, 107, 109, 127, 116, 115, 118, 107, 122, 92, 112, 119, 107, 116, 105, 105, 108, 115, 117, 109, 109, 115, 117, 106, 99, 111, 120, 117, 131, 115, 108, 122, 132, 131, 103, 112, 109, 122, 104, 114, 118, 130, 112, 121, 121, 116, 110, 137, 114, 116, 115, 130, 106, 109, 112, 118, 110, 111, 104, 124, 123, 116, 116, 114, 120, 118, 126, 101, 112, 126, 115, 114, 120, 117, 112, 110, 104, 132, 103, 116, 108, 111, 111, 123, 108, 114, 110, 133, 108, 123, 110, 125, 110, 113, 118, 117, 106, 115, 116, 114, 121, 120, 116, 112, 116, 117, 110, 115, 107, 118, 121, 114, 110, 98, 115, 114, 111, 118, 117, 115, 110, 107, 106, 114, 117, 112, 112, 117, 100, 115, 125, 108, 121, 116, 123, 115, 115, 121, 120, 115, 104, 139, 113, 111, 118, 113, 108, 110, 111, 105, 106, 113, 124, 101, 126, 107, 101, 119, 116, 109, 125, 122, 109, 118, 110, 105, 125, 120, 126, 117, 120, 116, 114, 110, 118, 108, 99, 116, 120, 114, 108, 122, 103, 108, 112, 115, 105, 153, 118, 124, 113, 109, 119, 118, 133, 110, 106, 121, 112, 117, 114, 121, 109, 109, 103, 139, 109, 132, 133, 110, 116, 109, 114, 115, 112, 104, 113, 134, 100, 108, 138, 125, 120, 112, 93, 111, 114, 98, 108, 105, 116, 120, 114, 112, 113, 107, 100, 114, 117, 108, 126, 131, 113, 116, 110, 120, 111, 120, 113, 112, 106, 113, 111, 119, 122, 110, 124, 114, 112, 117, 98, 101, 121, 110, 108, 125, 123, 114, 118, 121, 110, 126, 114, 114, 104, 116, 113, 125, 121, 126, 122, 112, 118, 110, 106, 103, 122, 107, 119, 108, 112, 132, 110, 114, 132, 118, 97, 124, 120, 100, 110, 117, 122, 118, 106, 127, 114, 121, 106, 111, 116, 111, 105, 110, 122, 129, 114, 119, 134, 114, 123, 118, 125, 102, 119, 118, 118, 116, 113, 109, 120, 109, 123, 136, 124, 111, 110, 103, 113, 108, 117, 104, 122, 112, 109, 119, 117, 112, 110, 102, 114, 112, 118, 131, 101, 115, 111, 112, 109, 119, 112, 109, 113, 113, 131, 108, 116, 108, 110, 116, 105, 116, 112, 119, 107, 117, 106, 118, 99, 114, 125, 123, 112, 122, 120, 108, 117, 120, 111, 107, 121, 107, 107, 119, 105, 100, 109, 94, 109, 114, 112, 105, 110, 120, 118, 99, 117, 122, 109, 119, 112, 109, 131, 104, 113, 119, 130, 109, 109, 111, 111, 111, 121, 117, 112, 122, 117, 113, 115, 138, 116, 117, 115, 129, 102, 117, 111, 102, 111, 109, 108, 107, 113, 109, 111, 108, 108, 124, 114, 112, 119, 119, 110, 121, 112, 113, 115, 117, 118, 122, 118, 117, 111, 116, 117, 117, 118, 115, 117, 112, 118, 119, 111, 118, 112, 124, 111, 104, 115, 120, 116, 116, 110, 122, 121, 120, 116, 115, 121, 117, 112, 100, 119, 117, 121, 108, 119, 114, 120, 115, 117, 113, 113, 113, 118, 116, 126, 119, 116, 121, 132, 115, 115, 114, 125, 121, 122, 123, 117, 115, 117, 110, 123, 115, 111, 118, 109, 115, 113, 119, 124, 110, 119, 106, 113, 112, 115, 115, 115, 112, 115, 111, 119, 113, 124, 121, 118, 116, 111, 113, 113, 118, 117, 118, 111, 114, 108, 115, 119, 119, 120, 114, 118, 120, 117, 118, 111, 121, 116, 117, 125, 119, 114, 123, 113, 110, 114, 114, 112, 114, 109, 110, 127, 110, 121, 118, 109, 115, 117, 120, 118, 115, 114, 120, 125, 119, 123, 109, 115, 115, 119, 116, 112, 110, 118, 120, 122, 114, 115, 114, 115, 120, 121, 120, 115, 111, 113, 110, 114, 112, 119, 121, 132, 106, 117, 118, 120, 115, 117, 114, 118, 118, 102, 123, 116, 120, 118, 117, 118, 113, 118, 120, 113, 114, 116, 110, 118, 114, 111, 114, 113, 114, 112, 113, 112, 119, 108, 110, 110, 97, 119, 114, 118, 122, 118, 124, 115, 94, 114, 116, 112, 111, 116, 120, 113, 120, 113, 118, 120, 112, 110, 118, 114, 119, 119, 115, 121, 109, 116, 109, 110, 122, 117, 126, 117, 115, 116, 115, 111, 110, 115, 118, 124, 112, 112, 110, 121, 116, 113, 107, 102, 111, 112, 118, 113, 112, 115, 112, 115, 111, 111, 115, 117, 119, 116, 112, 104, 118, 116, 115, 117, 115, 116, 112, 114, 116, 114, 114, 120, 112, 119, 110, 121, 118, 111, 116, 118, 113, 109, 109, 123, 115, 118, 111, 113, 126, 115, 118, 112, 119, 114, 115, 113, 121, 112, 118, 114, 124, 108, 112, 121, 112, 112, 125, 116, 119, 122, 113, 113, 102, 112, 118, 115, 121, 120, 116, 118, 121, 114, 122, 116, 112, 119, 111, 114, 112, 107, 112, 111, 114, 119, 117, 110, 116, 112, 115, 112, 112, 119, 119, 116, 104, 115, 115, 107, 117, 113, 116, 117, 118, 114, 125, 112, 113, 107, 120, 115, 110, 114, 121, 122, 112, 115, 114, 113, 104, 117, 121, 115, 116, 113, 112, 115, 115, 123, 121, 110, 112, 117, 117, 124, 110, 116, 117, 117, 113, 116, 110, 112, 116, 111, 112, 113, 112, 109, 107, 111, 109, 117, 113, 112, 121, 120, 116, 116, 117, 116, 114, 114, 106, 117, 110, 114, 110, 110, 113, 113, 115, 112, 115, 118, 118, 111, 124, 105, 117, 124, 114, 111, 117, 111, 112, 114, 111, 122, 109, 116, 107, 120, 116, 118, 118, 109, 112, 113, 108, 115, 116, 114, 114, 121, 106, 117, 116, 123, 116, 117, 113, 122, 114, 112, 115, 118, 121, 115, 113, 111, 113, 115, 119, 120, 119, 113, 116, 107, 121, 113, 114, 107, 119, 113, 116, 113, 112, 118, 114, 109, 99, 131, 117, 122, 114, 112, 120, 124, 116, 111, 108, 120, 113, 113, 115, 121, 114, 130, 116, 110, 102, 107, 137, 114, 107, 117, 141, 103, 126, 104, 100, 116, 112, 101, 113, 107, 123, 125, 100, 105, 116, 102, 109, 126, 121, 117, 113, 111, 120, 112, 112, 119, 106, 129, 123, 114, 101, 123, 103, 109, 116, 114, 115, 118, 115, 115, 116, 119, 117, 124, 118, 116, 112, 110, 116, 113, 122, 109, 117, 110, 110, 115, 114, 120, 110, 111, 119, 115, 110, 120, 107, 104, 115, 105, 109, 120, 122, 123, 115, 101, 118, 99, 117, 107, 105, 131, 109, 109, 107, 95, 119, 104, 112, 110, 129, 119, 120, 113, 106, 114, 118, 111, 110, 113, 105, 109, 116, 110, 108, 139, 119, 107, 105, 123, 106, 110, 97, 121, 106, 110, 119, 101, 111, 131, 120, 132, 122, 123, 111, 117, 106, 98, 121, 123, 109, 104, 118, 115, 109, 115, 117, 101, 118, 106, 134, 109, 108, 112, 114, 116, 105, 129, 122, 127, 115, 121, 107, 121, 115, 117, 115, 101, 103, 114, 119, 139, 115, 110, 121, 113, 124, 105, 108, 116, 124, 114, 116, 108, 100, 116, 116, 118, 119, 119, 109, 109, 109, 108, 105, 110, 123, 113, 123, 99, 125, 122, 110, 107, 121, 116, 109, 119, 112, 133, 110, 111, 110, 121, 113, 113, 116, 116, 113, 121, 111, 129, 106, 113, 110, 111, 123, 116, 114, 110, 111, 123, 116, 105, 124, 104, 113, 115, 108, 107, 120, 117, 120, 125, 120, 106, 109, 122, 112, 117, 98, 113, 117, 109, 112, 108, 114, 117, 111, 114, 103, 119, 96, 130, 120, 122, 112, 111, 117, 114, 124, 120, 120, 106, 119, 127, 96, 111, 116, 109, 132, 124, 113, 110, 114, 125, 119, 124, 121, 118, 110, 111, 116, 112, 121, 111, 132, 118, 116, 117, 121, 120, 116, 112, 113, 114, 119, 119, 110, 116, 122, 101, 110, 120, 111, 103, 117, 110, 100, 109, 119, 116, 113, 120, 120, 119, 110, 118, 112, 112, 103, 111, 109, 115, 121, 122, 123, 115, 103, 110, 123, 113, 110, 111, 104, 125, 119, 117, 110, 121, 104, 104, 107, 96, 117, 120, 107, 125, 109, 114, 114, 107, 123, 113, 112, 119, 124, 114, 110, 102, 111, 113, 115, 129, 111, 121, 122, 113, 108, 120, 109, 125, 94, 121, 115, 106, 131, 127, 115, 124, 112, 110, 128, 136, 117, 102, 110, 110, 117, 110, 123, 108, 105, 115, 117, 119, 121, 119, 115, 119, 107, 110, 98, 106, 113, 111, 131, 110, 109, 111, 113, 125, 109, 119, 116, 111, 105, 123, 100, 118, 114, 122, 109, 120, 118, 113, 100, 116, 108, 103, 120, 114, 99, 130, 103, 111, 111, 104, 111, 124, 115, 132, 114, 108, 120, 113, 136, 108, 113, 131, 112, 131, 102, 118, 108, 120, 117, 109, 115, 105, 118, 112, 99, 121, 111, 114, 112, 131, 108, 112, 111, 109, 106, 122, 111, 95, 120, 105, 105, 119, 116, 117, 117, 107, 115, 115, 103, 125, 117, 128, 105, 115, 120, 115, 119, 118, 115, 117, 109, 118, 113, 121, 115, 119, 117, 106, 111, 120, 119, 117, 122, 113, 122, 111, 110, 126, 109, 107, 123, 117, 124, 119, 117, 118, 108, 109, 115, 117, 116, 115, 110, 115, 122, 113, 123, 112, 103, 118, 118, 115, 111, 118, 113, 113, 120, 112, 118, 122, 104, 110, 109, 113, 123, 109, 99, 109, 123, 111, 114, 117, 120, 122, 117, 116, 114, 112, 113, 123, 107, 122, 109, 119, 115, 116, 104, 105, 120, 112, 117, 112, 112, 123, 121, 116, 91, 114, 117, 108, 115, 106, 99, 110, 118, 118, 114, 126, 110, 110, 120, 128, 114, 107, 109, 114, 126, 116, 108, 112, 114, 113, 114, 118, 120, 120, 105, 116, 115, 120, 108, 113, 115, 119, 121, 115, 119, 118, 121, 121, 117, 116, 108, 113, 115, 111, 113, 110, 127, 111, 109, 122, 121, 112, 123, 110, 111, 116, 123, 116, 110, 111, 115, 120, 126, 121, 119, 129, 108, 121, 107, 122, 121, 110, 104, 109, 102, 116, 120, 122, 114, 119, 113, 123, 111, 101, 115, 107, 109, 122, 107, 110, 111, 114, 117, 119, 136, 117, 126, 106, 120, 118, 119, 120, 122, 110, 117, 119, 122, 111, 121, 112, 111, 119, 123, 114, 119, 109, 114, 116, 111, 118, 113, 117, 108, 118, 112, 123, 125, 116, 119, 111, 109, 123, 113, 120, 119, 112, 113, 117, 119, 113, 110, 117, 107, 113, 116, 119, 118, 116, 113, 111, 118, 120, 116, 115, 122, 122, 113, 117, 117, 123, 108, 109, 109, 114, 115, 121, 114, 115, 113, 114, 112, 129, 111, 118, 110, 116, 121, 122, 116, 114, 109, 113, 118, 113, 115, 111, 114, 94, 106, 118, 117, 114, 117, 116, 115, 116, 107, 112, 107, 117, 115, 119, 132, 111, 107, 105, 116, 114, 118, 106, 116, 99, 104, 111, 116, 121, 115, 111, 112, 115, 123, 114, 122, 114, 115, 124, 112, 117, 111, 111, 126, 119, 113, 117, 116, 115, 113, 135, 110, 123, 111, 122, 120, 125, 113, 117, 113, 117, 116, 121, 121, 114, 111, 105, 114, 116, 114, 119, 124, 105, 115, 106, 115, 113, 113, 112, 105, 111, 126, 120, 115, 128, 115, 110, 118, 117, 116, 123, 119, 117, 119, 115, 120, 114, 119, 113, 118, 124, 109, 132, 118, 110, 114, 115, 108, 116, 111, 134, 115, 113, 121, 122, 115, 114, 110, 117, 102, 120, 114, 106, 111, 112, 119, 113, 115, 116, 112, 107, 121, 119, 122, 108, 114, 118, 122, 112, 120, 120, 117, 108, 116, 117, 100, 117, 119, 115, 116, 119, 118, 119, 112, 117, 113, 106, 108, 116, 119, 106, 115, 123, 119, 116, 126, 115, 119, 116, 117, 113, 116, 118, 116, 120, 119, 123, 117, 113, 106, 108, 122, 115, 118, 112, 123, 115, 124, 106, 122, 110, 114, 116, 121, 122, 110, 120, 112, 112, 109, 116, 112, 112, 116, 116, 112, 108, 113, 123, 112, 118, 120, 117, 114, 117, 110, 123, 113, 109, 114, 115, 125, 115, 112, 120, 119, 125, 104, 104, 104, 110, 121, 103, 112, 121, 121, 112, 117, 112, 127, 104, 130, 118, 119, 119, 101, 112, 106, 102, 109, 105, 105, 119, 105, 119, 107, 108, 117, 116, 129, 116, 131, 110, 110, 114, 116, 125, 115, 113, 114, 114, 97, 113, 97, 114, 120, 109, 114, 120, 124, 104, 110, 106, 117, 109, 101, 90, 123, 110, 106, 116, 128, 123, 116, 112, 113, 107, 123, 115, 109, 130, 124, 120, 112, 115, 122, 97, 110, 126, 127, 126, 117, 107, 113, 105, 112, 118, 103, 109, 112, 112, 112, 103, 114, 113, 121, 100, 98, 114, 110, 110, 125, 120, 116, 115, 122, 121, 123, 113, 110, 113, 101, 115, 107, 126, 114, 116, 107, 114, 111, 109, 115, 124, 110, 111, 114, 134, 114, 108, 122, 119, 117, 113, 115, 114, 109, 121, 121, 112, 123, 128, 114, 117, 129, 124, 129, 108, 121, 117, 120, 113, 119, 114, 107, 103, 105, 108, 128, 121, 120, 119, 114, 126, 116, 125, 121, 123, 108, 112, 113, 118, 109, 93, 120, 118, 128, 111, 112, 123, 118, 117, 108, 116, 113, 117, 118, 116, 109, 102, 108, 100, 122, 121, 125, 123, 121, 122, 116, 112, 111, 105, 122, 120, 117, 125, 142, 107, 116, 111, 109, 111, 105, 113, 110, 115, 111, 137, 118, 111, 96, 126, 127, 115, 117, 116, 124, 118, 106, 123, 117, 114, 121, 119, 127, 119, 107, 115, 103, 96, 119, 126, 122, 118, 104, 102, 127, 99, 120, 106, 121, 122, 109, 119, 110, 103, 116, 122, 124, 118, 123, 107, 109, 99, 142, 116, 126, 118, 101, 104, 121, 113, 117, 117, 117, 123, 108, 116, 113, 112, 106, 122, 93, 112, 95, 128, 120, 126, 121, 103, 128, 114, 123, 121, 95, 93, 114, 109, 110, 112, 101, 119, 118, 119, 112, 128, 117, 115, 118, 136, 112, 114, 107, 147, 114, 97, 105, 124, 117, 114, 118, 114, 117, 125, 116, 124, 119, 118, 114, 110, 126, 104, 104, 103, 113, 121, 117, 109, 117, 81, 116, 116, 110, 119, 119, 125, 112, 111, 111, 118, 119, 110, 108, 122, 113, 129, 115, 127, 120, 126, 109, 108, 107, 115, 112, 128, 107, 114, 112, 107, 107, 112, 111, 111, 124, 116, 121, 118, 114, 116, 108, 120, 105, 107, 115, 119, 109, 140, 106, 120, 111, 110, 118, 115, 118, 120, 120, 102, 119, 112, 121, 122, 104, 123, 111, 130, 115, 107, 109, 111, 114, 103, 118, 123, 110, 116, 112, 105, 116, 111, 116, 102, 124, 112, 100, 111, 123, 112, 118, 107, 110, 115, 114, 114, 121, 127, 112, 122, 107, 122, 123, 111, 119, 121, 127, 115, 131, 118, 117, 119, 114, 121, 106, 126, 121, 114, 112, 116, 114, 132, 117, 113, 118, 109, 102, 121, 122, 112, 107, 124, 114, 104, 116, 106, 122, 115, 112, 119, 112, 116, 115, 139, 111, 126, 108, 114, 113, 111, 109, 112, 114, 118, 122, 110, 123, 138, 103, 121, 122, 119, 109, 88, 108, 116, 122, 108, 118, 120, 123, 117, 109, 110, 101, 123, 126, 125, 119, 119, 128, 108, 106, 119, 109, 122, 119, 105, 120, 116, 112, 115, 124, 108, 108, 120, 111, 111, 108, 111, 109, 108, 96, 130, 113, 108, 111, 117, 122, 116, 124, 107, 103, 114, 121, 106, 111, 120, 117, 125, 99, 110, 133, 121, 123, 113, 109, 104, 108, 106, 116, 127, 124, 106, 111, 116, 118, 95, 116, 123, 111, 116, 123, 123, 129, 127, 112, 117, 117, 114, 109, 107, 111, 125, 104, 122, 135, 103, 112, 112, 104, 111, 130, 119, 119, 98, 125, 118, 109, 108, 115, 114, 113, 94, 116, 115, 118, 117, 111, 122, 108, 111, 115, 123, 129, 116, 117, 107, 119, 108, 99, 115, 106, 98, 109, 102, 117, 106, 117, 111, 106, 117, 108, 118, 122, 113, 110, 118, 109, 144, 130, 112, 113, 117, 97, 110, 109, 106, 117, 110, 125, 118, 103, 110, 116, 115, 128, 107, 110, 116, 128, 122, 116, 105, 96, 123, 114, 115, 113, 115, 109, 113, 118, 102, 123, 110, 109, 119, 121, 114, 118, 126, 110, 127, 111, 104, 118, 124, 118, 104, 113, 118, 120, 126, 102, 113, 119, 106, 105, 121, 119, 113, 113, 118, 109, 119, 108, 112, 128, 107, 93, 140, 129, 100, 113, 132, 124, 107, 113, 117, 108, 121, 120, 138, 102, 108, 132, 114, 131, 113, 116, 108, 102, 114, 102, 111, 121, 114, 113, 111, 118, 110, 128, 117, 116, 124, 110, 127, 111, 123, 113, 133, 108, 120, 107, 122, 130, 122, 115, 122, 102, 128, 109, 107, 112, 106, 122, 115, 128, 133, 118, 116, 137, 103, 108, 113, 119, 114, 115, 115, 102, 119, 121, 124, 123, 114, 103, 120, 113, 109, 112, 111, 132, 110, 106, 120, 115, 107, 120, 105, 114, 119, 100, 122, 117, 136, 126, 111, 117, 126, 130, 104, 120, 101, 110, 105, 114, 124, 109, 117, 111, 99, 110, 114, 113, 120, 113, 118, 107, 115, 116, 111, 108, 108, 110, 118, 122, 117, 109, 110, 107, 103, 115, 116, 121, 121, 116, 111, 110, 129, 99, 122, 117, 110, 112, 115, 118, 129, 113, 110, 122, 121, 125, 113, 121, 105, 125, 118, 122, 113, 116, 113, 114, 107, 104, 102, 111, 116, 100, 136, 113, 106, 113, 104, 109, 122, 108, 128, 117, 121, 130, 113, 121, 101, 108, 126, 97, 113, 114, 122, 115, 122, 110, 117, 115, 115, 113, 111, 123, 112, 110, 109, 121, 116, 126, 114, 118, 112, 106, 123, 103, 124, 125, 121, 114, 117, 123, 108, 123, 108, 118, 113, 112, 98, 99, 111, 119, 114, 105, 95, 112, 102, 114, 116, 125, 110, 121, 113, 120, 111, 113, 112, 122, 109, 105, 109, 113, 130, 123, 116, 106, 115, 130, 117, 108, 120, 103, 104, 109, 103, 124, 108, 118, 106, 108, 124, 117, 96, 113, 118, 107, 117, 112, 113, 117, 119, 113, 122, 112, 113, 103, 124, 119, 112, 118, 114, 109, 130, 115, 104, 120, 107, 111, 122, 116, 133, 126, 112, 108, 110, 108, 121, 158, 113, 115, 121, 120, 116, 117, 128, 116, 116, 129, 112, 130, 122, 107, 114, 122, 109, 127, 121, 117, 113, 98, 126, 116, 117, 115, 109, 125, 118, 105, 117, 107, 121, 116, 113, 111, 124, 128, 101, 122, 110, 125, 131, 122, 103, 123, 116, 110, 114, 107, 128, 109, 113, 129, 118, 114, 107, 117, 106, 111, 127, 115, 111, 127, 117, 106, 110, 127, 125, 118, 122, 129, 116, 114, 101, 113, 115, 114, 119, 115, 119, 126, 127, 119, 113, 114, 116, 124, 117, 113, 127, 116, 113, 118, 121, 122, 122, 104, 111, 111, 115, 111, 111, 110, 128, 127, 112, 125, 113, 114, 129, 112, 118, 116, 108, 111, 118, 108, 106, 128, 108, 125, 105, 133, 107, 102, 111, 111, 117, 106, 120, 131, 103, 124, 108, 113, 107, 124, 101, 114, 126, 109, 122, 112, 112, 112, 113, 116, 107, 123, 110, 118, 135, 124, 117, 103, 110, 105, 104, 113, 116, 126, 115, 105, 110, 113, 106, 127, 127, 111, 102, 132, 115, 100, 116, 109, 111, 123, 105, 107, 110, 111, 120, 119, 113, 105, 112, 120, 100, 119, 114, 124, 117, 116, 117, 124, 106, 108, 124, 124, 122, 112, 129, 114, 132, 114, 106, 120, 103, 105, 115, 119, 106, 130, 110, 124, 120, 110, 107, 108, 110, 122, 118, 108, 113, 118, 122, 112, 117, 114, 108, 106, 114, 123, 105, 127, 112, 103, 107, 126, 118, 115, 117, 106, 123, 110, 111, 120, 104, 113, 130, 121, 112, 121, 119, 115, 117, 115, 114, 111, 109, 110, 127, 119, 111, 114, 124, 110, 121, 134, 119, 107, 110, 115, 105, 124, 116, 131, 123, 109, 109, 108, 110, 110, 103, 126, 126, 112, 102, 118, 116, 120, 123, 119, 122, 116, 130, 109, 113, 109, 114, 109, 123, 119, 113, 137, 122, 129, 129, 122, 114, 114, 112, 133, 109, 112, 111, 115, 104, 108, 109, 110, 118, 118, 116, 130, 116, 109, 127, 114, 118, 118, 109, 128, 110, 119, 126, 105, 118, 111, 119, 109, 109, 108, 115, 109, 117, 128, 125, 123, 125, 127, 110, 121, 110, 118, 112, 120, 100, 114, 104, 118, 109, 107, 106, 104, 101, 138, 101, 113, 109, 122, 112, 115, 108, 110, 123, 122, 115, 102, 128, 99, 122, 110, 117, 136, 112, 121, 113, 113, 106, 110, 113, 106, 119, 113, 125, 116, 105, 124, 108, 121, 110, 105, 118, 111, 111, 109, 108, 109, 108, 117, 114, 118, 130, 110, 114, 110, 126, 112, 119, 121, 123, 127, 120, 128, 120, 123, 104, 115, 114, 126, 144, 102, 116, 110, 107, 123, 128, 122, 115, 116, 112, 118, 112, 115, 104, 121, 115, 109, 105, 113, 117, 120, 107, 119, 98, 109, 109, 102, 123, 110, 115, 115, 125, 120, 112, 107, 126, 113, 111, 110, 109, 129, 109, 123, 100, 107, 125, 107, 112, 109, 115, 130, 118, 118, 124, 120, 127, 108, 122, 109, 113, 105, 105, 96, 109, 148, 119, 111, 123, 119, 125, 120, 116, 105, 117, 108, 119, 101, 110, 106, 122, 121, 110, 111, 119, 115, 111, 116, 106, 125, 118, 110, 127, 111, 122, 111, 103, 113, 120, 114, 109, 105, 116, 107, 107, 121, 113, 113, 99, 111, 122, 116, 127, 115, 122, 122, 106, 112, 121, 125, 118, 111, 107, 119, 108, 120, 111, 116, 119, 127, 121, 112, 113, 118, 112, 104, 104, 105, 102, 111, 119, 129, 103, 109, 113, 109, 106, 125, 118, 117, 115, 111, 105, 113, 122, 102, 129, 115, 106, 134, 109, 117, 128, 118, 128, 106, 117, 113, 112, 114, 127, 109, 112, 115, 109, 119, 103, 106, 112, 114, 110, 117, 126, 116, 114, 116, 109, 124, 102, 131, 114, 120, 111, 118, 101, 103, 109, 112, 125, 96, 128, 114, 101, 106, 101, 117, 107, 114, 106, 109, 121, 129, 105, 117, 121, 110, 107, 125, 104, 96, 118, 127, 113, 119, 121, 107, 110, 116, 108, 108, 111, 121, 114, 120, 112, 104, 107, 114, 121, 131, 129, 103, 116, 119, 119, 119, 114, 120, 133, 126, 117, 105, 116, 101, 124, 117, 114, 99, 108, 114, 113, 110, 120, 129, 105, 99, 122, 119, 117, 109, 105, 123, 106, 127, 111, 103, 118, 99, 106, 114, 121, 103, 122, 121, 98, 121, 110, 128, 122, 103, 117, 119, 109, 129, 113, 112, 121, 104, 104, 101, 110, 108, 111, 123, 120, 103, 112, 128, 111, 121, 113, 101, 106, 111, 120, 112, 115, 121, 113, 112, 121, 102, 124, 96, 110, 122, 121, 109, 118, 114, 112, 121, 104, 111, 128, 113, 119, 118, 118, 115, 104, 124, 129, 110, 114, 91, 118, 117, 103, 110, 110, 119, 117, 107, 114, 104, 98, 105, 106, 121, 114, 115, 124, 123, 122, 108, 119, 104, 120, 108, 105, 120, 123, 113, 123, 115, 120, 113, 115, 113, 97, 114, 117, 101, 122, 104, 105, 123, 103, 113, 112, 113, 113, 120, 104, 117, 106, 116, 112, 104, 116, 107, 101, 117, 114, 142, 122, 105, 114, 117, 113, 121, 112, 109, 111, 120, 107, 104, 109, 106, 122, 116, 118, 94, 107, 113, 118, 125, 117, 119, 113, 106, 103, 101, 113, 98, 116, 127, 130, 111, 117, 113, 118, 115, 113, 113, 130, 105, 111, 118, 118, 114, 114, 114, 106, 110, 99, 113, 112, 122, 100, 97, 101, 110, 123, 105, 106, 122, 108, 108, 116, 109, 122, 101, 129, 122, 111, 117, 115, 127, 115, 113, 113, 128, 111, 115, 104, 120, 129, 115, 122, 107, 102, 118, 123, 132, 108, 104, 109, 105, 119, 113, 113, 111, 126, 125, 130, 115, 104, 120, 111, 119, 114, 94, 123, 121, 123, 126, 103, 102, 125, 103, 115, 125, 124, 121, 108, 112, 108, 117, 104, 117, 115, 109, 109, 111, 110, 110, 125, 132, 108, 102, 105, 111, 122, 104, 108, 103, 110, 116, 107, 111, 117, 114, 107, 102, 116, 117, 123, 106, 112, 112, 107, 108, 104, 102, 108, 114, 106, 113, 121, 108, 122, 108, 120, 111, 114, 110, 112, 110, 112, 116, 108, 125, 116, 108, 113, 96, 122, 119, 116, 121, 128, 116, 97, 106, 120, 119, 118, 110, 107, 113, 117, 111, 121, 98, 110, 120, 109, 123, 114, 121, 116, 110, 102, 112, 108, 111, 116, 107, 114, 107, 116, 120, 116, 133, 117, 106, 107, 118, 115, 121, 111, 100, 114, 117, 116, 117, 106, 105, 123, 111, 109, 110, 121, 120, 117, 115, 114, 118, 114, 107, 111, 114, 112, 113, 115, 115, 115, 115, 110, 123, 112, 115, 111, 117, 118, 110, 117, 110, 120, 106, 117, 118, 114, 108, 127, 115, 122, 116, 117, 116, 120, 116, 126, 120, 107, 103, 105, 110, 119, 105, 108, 114, 121, 118, 112, 114, 101, 126, 111, 120, 121, 121, 114, 110, 112, 110, 113, 119, 120, 116, 114, 119, 107, 118, 116, 127, 103, 112, 118, 111, 113, 104, 111, 121, 117, 119, 127, 118, 133, 114, 118, 105, 118, 110, 117, 112, 113, 122, 121, 116, 123, 113, 118, 114, 115, 117, 115, 115, 103, 109, 110, 111, 107, 122, 108, 111, 117, 118, 113, 132, 116, 105, 116, 125, 115, 111, 116, 111, 126, 115, 116, 117, 118, 117, 118, 117, 112, 116, 114, 114, 107, 116, 106, 119, 117, 121, 124, 107, 110, 118, 120, 105, 119, 109, 125, 105, 121, 117, 119, 112, 113, 116, 107, 104, 111, 122, 115, 114, 114, 119, 92, 123, 110, 145, 124, 118, 112, 116, 112, 115, 110, 117, 107, 119, 102, 128, 121, 115, 119, 120, 109, 110, 121, 121, 110, 119, 112, 126, 117, 104, 125, 115, 113, 126, 112, 104, 116, 121, 106, 96, 118, 116, 120, 117, 113, 107, 124, 97, 120, 114, 110, 103, 110, 110, 116, 107, 86, 111, 123, 110, 109, 112, 112, 115, 111, 112, 122, 111, 125, 122, 112, 114, 111, 113, 109, 116, 125, 121, 106, 120, 112, 118, 112, 122, 123, 118, 128, 112, 108, 101, 121, 119, 97, 115, 127, 106, 109, 117, 122, 111, 116, 115, 103, 108, 115, 114, 112, 115, 119, 122, 120, 115, 108, 113, 107, 129, 110, 114, 114, 115, 125, 120, 124, 112, 116, 116, 116, 122, 120, 119, 117, 114, 108, 123, 114, 114, 110, 114, 107, 113, 123, 120, 121, 121, 108, 117, 115, 124, 111, 122, 114, 111, 114, 104, 111, 115, 113, 106, 105, 98, 115, 121, 113, 124, 122, 126, 118, 117, 124, 120, 120, 115, 114, 115, 117, 110, 107, 102, 118, 115, 108, 102, 114, 118, 125, 115, 125, 127, 106, 104, 110, 115, 118, 116, 120, 127, 119, 119, 114, 133, 149, 113, 118, 98, 113, 120, 117, 122, 118, 110, 121, 119, 106, 122, 114, 112, 106, 116, 105, 99, 117, 122, 107, 110, 115, 122, 117, 114, 112, 126, 114, 120, 116, 125, 116, 110, 109, 123, 108, 108, 104, 114, 107, 113, 122, 114, 114, 123, 108, 122, 121, 107, 114, 114, 112, 108, 110, 104, 105, 111, 117, 107, 119, 120, 94, 96, 116, 119, 110, 119, 114, 122, 120, 111, 120, 124, 116, 126, 124, 113, 120, 108, 114, 117, 123, 121, 107, 117, 111, 122, 121, 115, 112, 123, 126, 118, 121, 112, 116, 113, 114, 105, 118, 115, 124, 114, 115, 113, 117, 121, 115, 111, 111, 124, 114, 122, 109, 116, 111, 107, 123, 125, 115, 115, 109, 110, 119, 110, 117, 118, 125, 121, 120, 107, 104, 116, 110, 115, 113, 114, 116, 106, 115, 117, 114, 109, 112, 116, 115, 124, 110, 117, 114, 115, 117, 119, 112, 121, 125, 122, 117, 125, 124, 117, 114, 114, 116, 107, 120, 118, 116, 117, 114, 117, 111, 108, 114, 109, 115, 111, 116, 121, 112, 119, 115, 111, 122, 111, 117, 117, 116, 110, 122, 110, 117, 120, 112, 116, 121, 115, 108, 116, 119, 117, 115, 116, 120, 117, 118, 111, 103, 115, 114, 120, 126, 117, 112, 115, 111, 120, 117, 117, 116, 109, 112, 111, 122, 119, 116, 115, 115, 118, 117, 119, 117, 115, 112, 113, 118, 117, 126, 117, 119, 113, 110, 110, 114, 110, 97, 117, 114, 115, 118, 123, 115, 102, 109, 115, 111, 117, 113, 117, 129, 120, 117, 117, 119, 111, 113, 113, 109, 116, 107, 115, 114, 114, 114, 119, 122, 113, 121, 121, 109, 116, 125, 111, 117, 114, 99, 109, 110, 113, 112, 115, 130, 113, 113, 107, 114, 119, 110, 117, 114, 107, 124, 110, 124, 117, 115, 117, 119, 110, 115, 114, 117, 116, 106, 107, 116, 122, 113, 121, 113, 105, 109, 126, 115, 115, 113, 115, 117, 118, 103, 108, 112, 123, 104, 120, 116, 112, 110, 116, 112, 111, 121, 115, 122, 108, 115, 110, 120, 114, 126, 109, 109, 113, 117, 110, 116, 112, 114, 120, 106, 123, 115, 118, 112, 117, 115, 119, 106, 108, 114, 118, 120, 114, 113, 114, 115, 127, 119, 120, 119, 116, 118, 121, 127, 114, 105, 112, 113, 115, 123, 118, 111, 102, 101, 114, 114, 116, 113, 111, 115, 123, 111, 110, 116, 118, 114, 117, 113, 115, 105, 116, 117, 109, 115, 111, 117, 122, 120, 112, 113, 119, 106, 110, 114, 115, 121, 122, 122, 117, 123, 110, 124, 112, 121, 119, 114, 107, 114, 116, 116, 105, 118, 118, 113, 109, 111, 115, 114, 118, 109, 108, 116, 126, 117, 116, 118, 118, 115, 115, 118, 124, 118, 116, 112, 119, 118, 109, 109, 112, 115, 121, 121, 111, 117, 111, 120, 115, 112, 119, 118, 121, 116, 102, 106, 118, 120, 119, 121, 111, 119, 114, 117, 109, 115, 108, 118, 113, 112, 121, 113, 113, 116, 115, 112, 115, 105, 117, 114, 117, 112, 120, 118, 116, 118, 118, 115, 105, 122, 107, 117, 118, 108, 115, 120, 126, 120, 117, 114, 117, 116, 120, 119, 106, 121, 117, 104, 120, 108, 120, 121, 124, 105, 110, 118, 117, 110, 119, 115, 118, 118, 126, 108, 121, 107, 123, 115, 118, 112, 124, 116, 111, 121, 119, 113, 125, 105, 118, 119, 115, 116, 106, 112, 124, 116, 124, 116, 116, 116, 111, 113, 123, 118, 121, 117, 115, 95, 115, 119, 108, 116, 120, 116, 111, 116, 118, 120, 112, 117, 126, 121, 110, 113, 116, 116, 111, 105, 112, 117, 120, 116, 125, 123, 103, 117, 117, 112, 121, 113, 106, 116, 113, 119, 118, 106, 113, 125, 106, 113, 113, 127, 114, 113, 120, 111, 128, 114, 115, 124, 115, 68, 106, 103, 115, 119, 112, 116, 112, 107, 96, 115, 112, 102, 113, 120, 109, 105, 121, 117, 112, 114, 121, 115, 122, 116, 116, 117, 118, 113, 122, 119, 96, 116, 120, 115, 118, 106, 100, 125, 120, 108, 109, 109, 110, 112, 108, 111, 112, 117, 113, 106, 109, 114, 117, 116, 118, 113, 117, 106, 116, 116, 119, 103, 112, 117, 118, 104, 115, 114, 121, 112, 120, 116, 114, 120, 116, 117, 142, 124, 106, 117, 120, 106, 113, 107, 106, 113, 100, 112, 113, 101, 121, 107, 120, 116, 112, 117, 112, 108, 118, 110, 111, 110, 122, 120, 114, 119, 126, 115, 123, 118, 115, 117, 111, 109, 124, 121, 110, 117, 103, 107, 113, 123, 116, 119, 116, 116, 107, 120, 121, 113, 114, 112, 107, 125, 125, 115, 111, 127, 112, 121, 110, 109, 118, 122, 113, 115, 116, 115, 117, 122, 119, 117, 113, 104, 123, 116, 107, 119, 105, 112, 108, 108, 111, 123, 114, 119, 106, 114, 119, 122, 110, 113, 108, 113, 118, 118, 110, 112, 103, 104, 124, 113, 114, 118, 110, 111, 120, 120, 114, 120, 110, 111, 123, 118, 109, 103, 116, 110, 118, 114, 117, 114, 107, 118, 126, 104, 119, 121, 112, 111, 114, 115, 119, 117, 125, 119, 105, 101, 124, 109, 112, 111, 117, 117, 116, 116, 124, 109, 118, 107, 120, 111, 108, 114, 116, 115, 129, 107, 116, 127, 103, 114, 117, 119, 105, 108, 109, 102, 113, 110, 112, 111, 114, 112, 122, 128, 119, 103, 112, 133, 121, 125, 107, 111, 101, 116, 113, 115, 104, 122, 120, 118, 119, 114, 127, 118, 111, 105, 106, 112, 118, 123, 116, 115, 111, 106, 129, 114, 115, 117, 117, 118, 104, 114, 124, 110, 113, 114, 109, 110, 116, 116, 119, 109, 116, 105, 113, 108, 109, 126, 118, 118, 103, 115, 115, 119, 114, 123, 107, 111, 111, 113, 119, 113, 115, 105, 117, 104, 112, 123, 116, 107, 118, 104, 111, 113, 107, 96, 108, 125, 119, 122, 101, 118, 126, 125, 108, 118, 128, 115, 118, 116, 104, 119, 114, 114, 120, 115, 128, 112, 115, 116, 115, 118, 113, 120, 115, 116, 115, 111, 119, 111, 106, 109, 125, 118, 117, 113, 113, 114, 115, 119, 125, 116, 115, 117, 125, 114, 110, 98, 115, 111, 105, 108, 110, 110, 111, 117, 130, 113, 109, 126, 122, 104, 115, 113, 119, 116, 119, 114, 98, 106, 121, 130, 111, 126, 105, 111, 127, 104, 128, 116, 108, 118, 108, 125, 105, 113, 129, 114, 117, 108, 107, 106, 112, 119, 126, 128, 115, 118, 108, 121, 117, 105, 115, 121, 104, 116, 119, 126, 125, 115, 115, 112, 113, 116, 104, 114, 110, 126, 116, 102, 120, 118, 114, 105, 115, 113, 110, 110, 117, 108, 121, 117, 112, 130, 115, 109, 116, 115, 120, 112, 100, 113, 116, 113, 106, 121, 112, 108, 116, 118, 129, 114, 120, 117, 106, 119, 119, 111, 118, 111, 100, 117, 113, 115, 118, 111, 109, 122, 117, 121, 112, 114, 111, 110, 117, 112, 121, 123, 118, 117, 103, 124, 118, 119, 120, 118, 113, 113, 118, 112, 111, 124, 118, 106, 106, 111, 116, 115, 121, 109, 118, 108, 103, 106, 115, 117, 111, 117, 103, 138, 109, 104, 121, 115, 110, 114, 115, 116, 116, 120, 110, 106, 125, 118, 96, 117, 114, 118, 110, 110, 119, 104, 108, 106, 116, 113, 112, 118, 119, 99, 118, 125, 110, 125, 117, 120, 116, 116, 117, 111, 114, 115, 115, 104, 111, 110, 122, 104, 114, 121, 121, 118, 107, 118, 116, 115, 120, 118, 113, 111, 113, 110, 116, 121, 115, 119, 98, 106, 116, 113, 124, 117, 113, 116, 116, 120, 117, 110, 115, 122, 116, 104, 99, 111, 113, 116, 111, 115, 124, 112, 117, 106, 114, 112, 122, 116, 116, 119, 123, 114, 107, 110, 109, 112, 108, 116, 126, 114, 115, 127, 116, 114, 119, 122, 116, 124, 114, 115, 111, 113, 116, 113, 116, 109, 110, 120, 106, 111, 111, 120, 115, 111, 114, 122, 108, 109, 115, 112, 114, 116, 126, 112, 112, 110, 112, 113, 133, 111, 118, 114, 106, 117, 108, 103, 113, 118, 116, 117, 116, 120, 110, 112, 111, 114, 129, 114, 116, 113, 121, 95, 115, 122, 112, 121, 116, 123, 112, 117, 126, 118, 108, 127, 108, 114, 132, 113, 109, 125, 121, 124, 116, 119, 113, 115, 118, 109, 112, 100, 114, 120, 102, 111, 116, 107, 108, 118, 120, 108, 109, 116, 116, 118, 107, 123, 115, 113, 118, 110, 118, 117, 108, 118, 105, 120, 126, 118, 107, 123, 114, 114, 109, 117, 95, 113, 117, 124, 122, 106, 101, 118, 103, 114, 107, 117, 112, 107, 105, 113, 120, 112, 121, 115, 121, 118, 114, 100, 116, 112, 115, 118, 118, 121, 114, 116, 122, 110, 119, 115, 117, 112, 113, 120, 126, 104, 117, 123, 116, 114, 110, 109, 111, 113, 116, 116, 127, 113, 123, 120, 109, 123, 105, 124, 113, 112, 120, 110, 116, 111, 99, 116, 119, 118, 115, 109, 121, 115, 117, 116, 128, 109, 117, 114, 124, 113, 111, 117, 113, 95, 120, 108, 118, 111, 116, 109, 113, 116, 108, 127, 110, 111, 119, 109, 121, 113, 123, 117, 120, 125, 125, 115, 109, 117, 121, 115, 120, 117, 120, 116, 118, 120, 111, 113, 128, 110, 108, 115, 111, 99, 112, 117, 123, 113, 121, 109, 121, 109, 108, 112, 114, 107, 117, 111, 116, 113, 112, 116, 118, 120, 125, 107, 113, 106, 117, 106, 126, 108, 132, 111, 109, 104, 116, 115, 122, 113, 127, 119, 115, 104, 116, 115, 108, 113, 118, 121, 125, 121, 121, 110, 112, 125, 121, 123, 120, 114, 114, 115, 120, 110, 116, 117, 108, 127, 115, 120, 112, 125, 131, 117, 114, 92, 112, 118, 113, 117, 128, 120, 115, 130, 112, 100, 97, 119, 113, 94, 116, 114, 122, 111, 127, 108, 123, 122, 121, 116, 105, 112, 108, 124, 119, 109, 108, 104, 112, 121, 125, 122, 113, 126, 103, 107, 114, 113, 108, 115, 110, 128, 112, 116, 116, 104, 116, 116, 123, 112, 109, 108, 118, 116, 104, 115, 115, 108, 120, 115, 120, 103, 110, 126, 111, 123, 119, 111, 111, 114, 118, 126, 132, 127, 102, 95, 110, 108, 109, 115, 103, 106, 122, 114, 126, 118, 116, 109, 106, 115, 109, 106, 133, 92, 136, 114, 135, 112, 127, 100, 106, 111, 119, 111, 123, 117, 118, 102, 117, 91, 107, 112, 119, 121, 107, 109, 102, 113, 107, 102, 122, 112, 106, 115, 116, 102, 120, 115, 112, 114, 117, 129, 124, 113, 106, 111, 123, 119, 110, 109, 123, 104, 114, 111, 114, 116, 107, 107, 117, 103, 106, 122, 113, 138, 120, 119, 110, 120, 118, 104, 119, 121, 104, 114, 111, 122, 100, 116, 135, 127, 108, 118, 113, 119, 116, 114, 114, 124, 109, 109, 111, 109, 113, 99, 112, 119, 104, 100, 112, 113, 112, 119, 119, 114, 111, 126, 108, 122, 113, 116, 122, 123, 118, 119, 127, 132, 114, 113, 118, 105, 119, 115, 119, 93, 114, 112, 103, 116, 107, 117, 127, 112, 116, 117, 103, 113, 105, 109, 122, 128, 111, 110, 107, 109, 131, 120, 135, 112, 121, 109, 110, 114, 127, 114, 119, 123, 110, 107, 131, 107, 107, 111, 117, 110, 114, 124, 108, 112, 117, 117, 117, 108, 109, 111, 110, 109, 121, 114, 121, 108, 108, 103, 98, 115, 106, 116, 103, 116, 91, 103, 122, 112, 108, 110, 112, 115, 119, 120, 115, 126, 130, 114, 109, 120, 114, 124, 118, 108, 116, 116, 96, 108, 112, 111, 116, 113, 122, 108, 118, 102, 125, 99, 115, 128, 122, 124, 114, 114, 115, 113, 128, 115, 115, 110, 108, 105, 117, 114, 120, 119, 117, 100, 127, 113, 103, 112, 126, 113, 123, 120, 112, 117, 94, 111, 106, 118, 94, 115, 120, 108, 111, 106, 112, 115, 113, 112, 116, 120, 116, 118, 115, 121, 105, 110, 116, 117, 114, 112, 113, 108, 115, 120, 103, 114, 135, 106, 111, 99, 114, 117, 112, 131, 103, 129, 114, 128, 119, 111, 111, 109, 102, 98, 101, 123, 107, 114, 116, 119, 127, 115, 126, 116, 113, 124, 114, 127, 126, 114, 116, 121, 124, 111, 111, 116, 128, 106, 122, 110, 120, 122, 110, 109, 108, 106, 111, 131, 115, 118, 104, 103, 113, 115, 110, 126, 112, 115, 105, 109, 108, 118, 122, 110, 121, 115, 117, 114, 120, 115, 107, 119, 112, 110, 117, 114, 111, 128, 114, 119, 123, 108, 110, 103, 111, 112, 116, 122, 128, 108, 117, 128, 117, 115, 124, 128, 107, 115, 103, 109, 121, 124, 104, 100, 98, 110, 123, 109, 108, 117, 103, 117, 113, 107, 121, 102, 114, 109, 116, 116, 115, 123, 113, 110, 109, 126, 107, 124, 124, 107, 111, 119, 109, 116, 101, 110, 107, 123, 124, 119, 104, 111, 114, 125, 111, 119, 108, 126, 116, 112, 109, 116, 111, 121, 117, 110, 106, 122, 122, 101, 124, 116, 121, 114, 110, 106, 99, 113, 105, 112, 108, 116, 112, 113, 123, 111, 96, 103, 114, 111, 141, 111, 130, 115, 108, 115, 105, 114, 124, 120, 116, 108, 116, 111, 121, 111, 113, 119, 118, 124, 122, 111, 113, 115, 99, 123, 104, 116, 122, 126, 106, 114, 101, 105, 116, 118, 111, 104, 112, 94, 119, 118, 119, 113, 113, 112, 117, 112, 114, 112, 115, 122, 106, 114, 91, 114, 119, 109, 110, 111, 126, 107, 124, 103, 116, 121, 123, 109, 122, 120, 111, 108, 128, 114, 120, 118, 106, 105, 120, 140, 143, 112, 109, 133, 117, 115, 129, 117, 113, 105, 111, 124, 131, 118, 113, 114, 121, 118, 111, 105, 125, 112, 114, 113, 116, 115, 121, 123, 110, 118, 113, 123, 99, 125, 101, 112, 113, 107, 115, 118, 119, 127, 122, 112, 105, 117, 112, 120, 107, 110, 113, 121, 110, 112, 109, 111, 121, 120, 125, 106, 120, 119, 121, 114, 108, 111, 124, 114, 121, 116, 113, 117, 116, 131, 111, 120, 108, 105, 102, 128, 123, 124, 117, 115, 121, 100, 116, 108, 113, 119, 111, 122, 114, 138, 109, 115, 113, 119, 116, 117, 116, 112, 117, 124, 111, 114, 115, 111, 124, 117, 126, 114, 114, 116, 100, 123, 121, 121, 121, 123, 118, 114, 117, 114, 108, 103, 104, 122, 117, 107, 102, 110, 102, 115, 136, 119, 108, 112, 116, 97, 120, 104, 114, 114, 121, 122, 111, 106, 116, 115, 113, 109, 111, 113, 109, 123, 115, 118, 121, 123, 120, 126, 114, 102, 98, 109, 98, 115, 114, 115, 108, 117, 107, 109, 117, 115, 105, 128, 129, 124, 116, 118, 116, 116, 113, 126, 121, 105, 118, 133, 110, 136, 105, 107, 112, 115, 121, 119, 111, 121, 127, 115, 117, 114, 117, 122, 105, 119, 117, 101, 131, 111, 121, 119, 112, 108, 116, 113, 125, 113, 110, 119, 119, 116, 116, 109, 117, 133, 113, 110, 106, 123, 118, 117, 114, 121, 117, 121, 124, 130, 116, 112, 116, 111, 107, 114, 110, 110, 106, 101, 123, 135, 122, 112, 116, 126, 110, 125, 123, 127, 113, 115, 100, 117, 105, 112, 113, 113, 118, 109, 115, 118, 107, 128, 106, 106, 115, 133, 105, 106, 127, 118, 108, 118, 121, 133, 110, 113, 108, 115, 120, 119, 120, 98, 105, 109, 101, 117, 138, 111, 109, 108, 116, 117, 122, 109, 112, 125, 123, 112, 103, 114, 132, 111, 116, 110, 121, 129, 120, 114, 109, 107, 114, 118, 113, 103, 110, 112, 118, 120, 119, 127, 112, 109, 109, 106, 110, 111, 108, 97, 108, 113, 114, 116, 103, 117, 122, 118, 116, 108, 102, 108, 135, 108, 126, 115, 105, 118, 112, 132, 107, 119, 108, 109, 119, 117, 118, 115, 113, 113, 113, 129, 106, 110, 103, 115, 121, 107, 102, 121, 124, 119, 115, 125, 114, 111, 115, 110, 110, 117, 103, 103, 131, 115, 118, 117, 132, 107, 117, 121, 106, 112, 106, 122, 115, 115, 111, 115, 125, 116, 125, 108, 119, 104, 109, 120, 119, 123, 108, 127, 104, 110, 121, 107, 104, 119, 104, 104, 97, 113, 112, 114, 110, 117, 124, 117, 111, 124, 115, 102, 106, 111, 117, 116, 122, 119, 118, 114, 110, 102, 106, 103, 105, 109, 106, 108, 109, 118, 123, 126, 115, 115, 108, 96, 114, 129, 125, 118, 116, 118, 101, 118, 109, 119, 103, 119, 130, 93, 115, 112, 110, 115, 103, 107, 93, 119, 126, 144, 122, 111, 108, 118, 103, 101, 122, 108, 129, 120, 115, 123, 122, 141, 117, 115, 126, 127, 111, 116, 124, 111, 110, 112, 119, 108, 118, 119, 110, 110, 117, 112, 117, 91, 127, 119, 110, 102, 112, 116, 114, 139, 122, 100, 124, 99, 101, 118, 114, 106, 105, 106, 112, 104, 114, 115, 124, 92, 97, 118, 127, 132, 102, 109, 117, 111, 112, 112, 125, 113, 119, 119, 114, 119, 103, 115, 122, 111, 118, 121, 130, 111, 132, 116, 122, 113, 115, 124, 101, 106, 123, 72, 110, 109, 105, 113, 114, 119, 101, 136, 110, 111, 99, 162, 118, 131, 123, 115, 114, 105, 115, 116, 114, 125, 108, 112, 107, 102, 129, 116, 108, 120, 113, 111, 120, 115, 108, 109, 110, 121, 122, 118, 121, 114, 101, 106, 96, 92, 118, 111, 103, 112, 122, 113, 111, 117, 111, 110, 107, 95, 111, 113, 132, 115, 105, 114, 106, 108, 117, 166, 104, 134, 107, 121, 120, 108, 111, 109, 128, 105, 111, 109, 100, 119, 108, 114, 101, 128, 104, 109, 116, 122, 117, 108, 113, 121, 119, 111, 112, 103, 102, 106, 115, 101, 117, 112, 107, 117, 106, 119, 110, 118, 107, 116, 108, 128, 104, 114, 121, 100, 114, 121, 108, 101, 101, 110, 120, 134, 108, 100, 105, 99, 105, 97, 121, 109, 110, 111, 110, 112, 112, 115, 116, 114, 100, 106, 123, 115, 111, 128, 116, 123, 131, 105, 115, 122, 138, 125, 112, 100, 141, 104, 106, 116, 134, 106, 141, 112, 115, 118, 111, 123, 116, 112, 109, 115, 107, 117, 121, 114, 99, 110, 117, 114, 109, 108, 117, 102, 109, 129, 112, 121, 120, 93, 121, 112, 124, 109, 106, 112, 140, 116, 116, 121, 121, 114, 120, 114, 103, 118, 112, 128, 124, 107, 112, 116, 117, 116, 119, 127, 103, 117, 128, 111, 127, 114, 104, 111, 111, 125, 116, 105, 102, 113, 113, 106, 117, 100, 100, 102, 115, 109, 108, 107, 122, 112, 125, 109, 112, 124, 104, 124, 117, 135, 103, 98, 120, 115, 109, 112, 112, 109, 115, 116, 114, 106, 114, 131, 117, 114, 115, 120, 101, 115, 119, 120, 118, 131, 114, 123, 143, 115, 104, 110, 114, 113, 96, 98, 144, 125, 107, 112, 108, 112, 114, 110, 118, 116, 117, 115, 97, 128, 115, 98, 115, 109, 113, 112, 128, 115, 122, 125, 109, 109, 115, 123, 110, 100, 111, 117, 113, 119, 115, 111, 115, 115, 113, 113, 117, 108, 106, 120, 111, 110, 115, 123, 118, 118, 132, 114, 116, 114, 116, 122, 126, 113, 120, 105, 105, 120, 113, 118, 121, 120, 114, 113, 115, 114, 121, 115, 115, 120, 119, 119, 125, 114, 114, 116, 117, 111, 116, 118, 114, 113, 118, 115, 117, 108, 114, 112, 115, 109, 107, 113, 112, 115, 120, 112, 111, 119, 120, 116, 119, 120, 110, 123, 119, 106, 114, 120, 113, 116, 114, 114, 121, 118, 119, 117, 120, 128, 115, 111, 124, 118, 115, 112, 120, 112, 116, 110, 112, 114, 117, 113, 114, 114, 109, 116, 114, 120, 116, 113, 119, 115, 112, 115, 114, 128, 112, 116, 112, 116, 118, 115, 114, 118, 113, 107, 115, 117, 115, 115, 112, 112, 112, 110, 98, 112, 115, 116, 119, 111, 110, 113, 107, 114, 123, 118, 118, 119, 114, 116, 105, 113, 111, 115, 112, 113, 116, 115, 108, 121, 113, 111, 121, 111, 112, 113, 114, 111, 112, 111, 116, 114, 115, 121, 114, 119, 113, 119, 119, 115, 121, 121, 112, 111, 112, 109, 114, 116, 113, 117, 110, 115, 119, 119, 115, 115, 117, 115, 117, 116, 118, 115, 108, 115, 114, 114, 116, 110, 111, 112, 116, 123, 122, 119, 113, 113, 117, 115, 116, 117, 115, 117, 117, 120, 113, 119, 112, 110, 112, 120, 111, 120, 116, 116, 118, 116, 109, 116, 120, 115, 116, 124, 114, 109, 114, 126, 116, 118, 117, 119, 117, 117, 119, 113, 115, 113, 110, 118, 115, 115, 113, 116, 118, 121, 115, 114, 114, 124, 118, 112, 116, 110, 118, 114, 115, 108, 122, 116, 114, 119, 121, 114, 113, 121, 117, 121, 115, 117, 111, 115, 109, 114, 113, 120, 114, 115, 104, 112, 119, 115, 116, 111, 111, 115, 114, 114, 117, 117, 110, 118, 118, 113, 117, 113, 114, 115, 115, 118, 119, 122, 113, 108, 110, 112, 111, 117, 121, 111, 109, 112, 119, 106, 118, 120, 117, 107, 112, 110, 112, 105, 106, 106, 124, 119, 115, 111, 117, 116, 114, 114, 112, 109, 111, 106, 111, 115, 111, 111, 119, 115, 118, 117, 112, 112, 112, 122, 117, 119, 114, 111, 118, 114, 117, 115, 119, 112, 115, 120, 112, 114, 117, 111, 119, 109, 123, 111, 116, 115, 113, 114, 117, 114, 118, 109, 115, 114, 118, 120, 116, 117, 116, 115, 121, 112, 113, 119, 112, 121, 114, 112, 119, 112, 115, 114, 104, 116, 117, 114, 113, 120, 113, 110, 119, 115, 115, 127, 117, 120, 122, 115, 117, 120, 117, 104, 112, 111, 115, 110, 118, 117, 111, 114, 108, 133, 113, 110, 119, 116, 110, 114, 108, 109, 121, 109, 119, 115, 120, 113, 109, 113, 114, 126, 115, 112, 113, 111, 117, 115, 116, 117, 110, 110, 113, 111, 114, 122, 117, 114, 116, 119, 117, 119, 111, 116, 113, 115, 113, 122, 116, 115, 114, 112, 111, 113, 115, 118, 116, 118, 119, 116, 112, 111, 118, 114, 107, 113, 106, 109, 92, 106, 112, 106, 113, 116, 113, 120, 130, 115, 113, 112, 141, 121, 103, 119, 114, 110, 109, 122, 104, 108, 105, 108, 100, 126, 112, 101, 108, 113, 108, 114, 99, 129, 142, 105, 110, 117, 126, 110, 127, 111, 106, 111, 126, 125, 108, 109, 107, 112, 114, 125, 106, 113, 114, 93, 116, 119, 126, 107, 119, 124, 112, 102, 101, 98, 101, 103, 129, 120, 101, 107, 116, 117, 120, 106, 124, 115, 113, 99, 104, 111, 120, 107, 118, 124, 132, 124, 113, 106, 100, 122, 118, 119, 125, 112, 125, 108, 116, 101, 118, 115, 108, 125, 114, 113, 106, 112, 127, 110, 124, 110, 108, 113, 120, 125, 114, 108, 113, 106, 106, 115, 120, 115, 123, 107, 103, 109, 105, 101, 104, 107, 112, 122, 127, 115, 121, 106, 131, 107, 109, 131, 114, 123, 119, 113, 115, 111, 117, 129, 134, 127, 106, 117, 114, 108, 104, 106, 107, 111, 114, 122, 114, 123, 120, 120, 112, 111, 105, 108, 122, 132, 112, 111, 119, 120, 105, 134, 114, 115, 112, 103, 123, 120, 111, 126, 116, 100, 109, 102, 120, 102, 122, 114, 121, 111, 109, 115, 108, 123, 116, 112, 110, 110, 102, 115, 124, 112, 120, 124, 114, 112, 111, 107, 112, 109, 113, 107, 108, 114, 100, 99, 101, 118, 109, 126, 96, 113, 119, 112, 116, 114, 108, 125, 128, 118, 124, 110, 108, 117, 125, 101, 113, 118, 118, 105, 110, 113, 115, 115, 117, 118, 122, 111, 109, 117, 112, 129, 111, 115, 104, 99, 110, 115, 120, 106, 113, 118, 121, 99, 116, 109, 115, 109, 106, 115, 123, 100, 106, 110, 100, 111, 110, 105, 108, 121, 114, 107, 106, 112, 116, 128, 114, 91, 120, 121, 111, 122, 108, 122, 115, 105, 113, 109, 112, 120, 112, 102, 116, 116, 110, 110, 127, 102, 117, 108, 117, 107, 119, 122, 110, 115, 101, 138, 125, 116, 115, 115, 97, 127, 114, 115, 102, 97, 121, 114, 131, 130, 105, 115, 102, 114, 114, 112, 120, 117, 109, 121, 119, 121, 124, 124, 126, 122, 109, 122, 122, 107, 126, 125, 119, 125, 120, 121, 98, 111, 119, 104, 122, 112, 133, 121, 107, 120, 115, 103, 113, 121, 116, 120, 120, 112, 112, 112, 105, 122, 114, 92, 120, 117, 106, 122, 114, 108, 118, 114, 120, 113, 121, 115, 121, 113, 121, 120, 122, 124, 108, 117, 119, 117, 127, 123, 112, 113, 137, 121, 120, 117, 103, 115, 108, 118, 114, 111, 113, 128, 121, 111, 121, 104, 114, 121, 112, 134, 111, 118, 108, 102, 119, 105, 103, 135, 105, 141, 119, 102, 121, 84, 102, 111, 108, 112, 108, 108, 117, 94, 118, 112, 116, 107, 115, 115, 103, 119, 103, 123, 111, 124, 125, 105, 131, 104, 109, 118, 115, 121, 113, 111, 119, 111, 117, 106, 115, 122, 120, 110, 108, 121, 135, 107, 115, 122, 114, 105, 105, 142, 119, 115, 117, 102, 101, 117, 108, 101, 106, 122, 110, 118, 124, 110, 120, 121, 122, 138, 96, 108, 113, 113, 120, 102, 107, 120, 125, 123, 112, 104, 110, 109, 116, 113, 117, 100, 103, 120, 119, 114, 105, 109, 123, 107, 117, 116, 102, 92, 86, 113, 116, 111, 106, 114, 126, 116, 102, 114, 105, 112, 104, 116, 115, 107, 118, 117, 110, 115, 100, 118, 127, 127, 112, 117, 111, 113, 108, 119, 110, 116, 119, 120, 110, 118, 115, 124, 115, 119, 117, 118, 106, 106, 116, 103, 116, 104, 113, 110, 109, 102, 117, 108, 110, 120, 108, 109, 101, 114, 119, 132, 113, 102, 107, 128, 126, 128, 117, 126, 102, 110, 122, 106, 110, 124, 110, 115, 120, 124, 104, 119, 105, 127, 130, 117, 128, 108, 141, 118, 134, 126, 121, 95, 112, 110, 123, 115, 124, 113, 105, 116, 105, 118, 112, 109, 126, 115, 124, 98, 113, 126, 114, 108, 105, 121, 109, 119, 127, 123, 113, 114, 108, 112, 123, 115, 108, 113, 103, 121, 104, 109, 109, 126, 111, 128, 112, 127, 110, 130, 109, 120, 114, 119, 122, 117, 100, 116, 108, 128, 124, 116, 104, 123, 123, 107, 111, 103, 117, 121, 102, 120, 118, 106, 113, 114, 111, 107, 112, 112, 108, 128, 120, 113, 105, 117, 116, 114, 115, 117, 105, 110, 104, 109, 135, 107, 112, 114, 99, 121, 125, 120, 97, 118, 99, 110, 134, 112, 120, 126, 108, 120, 109, 117, 128, 118, 108, 115, 128, 103, 120, 116, 117, 120, 118, 111, 112, 110, 113, 122, 121, 112, 103, 117, 122, 114, 108, 107, 114, 115, 106, 127, 113, 122, 114, 109, 116, 107, 107, 110, 130, 112, 108, 116, 108, 125, 127, 124, 119, 100, 113, 113, 113, 117, 125, 116, 122, 128, 109, 112, 106, 130, 112, 121, 109, 101, 114, 122, 112, 120, 116, 116, 105, 108, 117, 121, 104, 105, 117, 114, 121, 119, 109, 109, 120, 108, 116, 120, 95, 107, 116, 108, 98, 102, 114, 117, 121, 106, 117, 126, 115, 116, 105, 116, 128, 110, 131, 123, 118, 118, 123, 118, 118, 122, 125, 100, 118, 112, 127, 108, 102, 113, 109, 106, 110, 101, 117, 110, 111, 127, 119, 112, 107, 105, 112, 111, 100, 110, 109, 119, 125, 118, 103, 102, 112, 123, 107, 106, 122, 123, 116, 104, 108, 119, 104, 117, 97, 109, 115, 103, 116, 109, 102, 108, 115, 106, 102, 104, 118, 114, 111, 114, 121, 125, 105, 106, 110, 111, 117, 124, 114, 117, 115, 109, 121, 116, 118, 129, 107, 107, 112, 114, 122, 117, 123, 97, 116, 106, 111, 113, 116, 108, 121, 113, 118, 113, 115, 116, 115, 115, 114, 109, 112, 120, 122, 116, 115, 108, 114, 110, 122, 105, 136, 124, 126, 114, 115, 110, 116, 130, 121, 124, 108, 90, 107, 115, 109, 101, 109, 114, 128, 111, 110, 114, 121, 110, 111, 109, 116, 110, 124, 111, 98, 113, 111, 123, 111, 118, 118, 117, 121, 121, 108, 116, 119, 115, 132, 114, 115, 106, 118, 106, 114, 116, 106, 121, 123, 111, 116, 115, 117, 145, 116, 95, 109, 99, 119, 107, 113, 113, 126, 110, 109, 112, 120, 114, 117, 116, 122, 118, 132, 114, 114, 110, 113, 105, 115, 120, 115, 124, 117, 129, 115, 113, 109, 104, 106, 114, 119, 120, 134, 101, 113, 115, 126, 114, 122, 110, 110, 114, 120, 105, 129, 113, 105, 138, 113, 126, 105, 121, 103, 101, 122, 121, 126, 126, 101, 114, 133, 122, 116, 120, 117, 107, 107, 96, 101, 126, 115, 113, 128, 124, 98, 109, 109, 109, 109, 122, 106, 135, 123, 121, 110, 113, 134, 98, 118, 127, 124, 141, 118, 111, 108, 99, 112, 110, 127, 117, 109, 113, 112, 117, 96, 122, 114, 134, 128, 116, 121, 130, 110, 103, 129, 120, 111, 115, 114, 115, 116, 120, 114, 110, 107, 114, 111, 125, 111, 114, 108, 124, 125, 105, 103, 91, 131, 124, 96, 120, 103, 114, 119, 106, 106, 108, 104, 123, 121, 113, 132, 140, 89, 123, 119, 117, 100, 113, 121, 130, 136, 125, 120, 105, 107, 119, 113, 117, 120, 125, 126, 120, 109, 100, 112, 117, 114, 100, 123, 122, 133, 120, 114, 113, 107, 111, 113, 137, 93, 133, 133, 134, 107, 115, 110, 123, 122, 113, 136, 119, 141, 123, 114, 108, 111, 119, 112, 103, 117, 111, 96, 121, 104, 117, 134, 98, 113, 111, 118, 107, 134, 111, 115, 134, 106, 112, 129, 110, 122, 112, 101, 113, 121, 119, 115, 98, 116, 111, 119, 104, 110, 130, 129, 106, 106, 133, 123, 137, 91, 102, 120, 132, 112, 103, 125, 122, 119, 96, 117, 108, 95, 121, 129, 127, 116, 103, 104, 98, 118, 116, 104, 122, 118, 122, 121, 115, 121, 121, 125, 125, 122, 118, 116, 131, 114, 97, 122, 124, 122, 104, 111, 123, 111, 129, 97, 118, 106, 118, 132, 109, 104, 115, 123, 104, 118, 115, 120, 127, 105, 125, 117, 107, 117, 108, 113, 112, 116, 120, 124, 133, 105, 109, 105, 129, 124, 137, 123, 96, 119, 99, 103, 124, 107, 116, 130, 112, 112, 121, 102, 107, 121, 118, 114, 105, 115, 134, 113, 120, 113, 114, 124, 96, 123, 101, 114, 119, 121, 97, 111, 109, 117, 123, 129, 97, 107, 126, 141, 119, 119, 110, 131, 118, 107, 104, 118, 99, 120, 114, 96, 113, 101, 114, 105, 128, 112, 122, 120, 122, 118, 106, 124, 114, 102, 110, 119, 109, 140, 111, 112, 113, 113, 112, 119, 102, 117, 118, 114, 129, 109, 138, 120, 95, 116, 114, 96, 109, 107, 106, 114, 121, 117, 113, 103, 116, 119, 102, 108, 104, 94, 108, 122, 136, 125, 129, 107, 101, 98, 113, 122, 119, 123, 117, 108, 118, 120, 112, 137, 110, 121, 80, 119, 109, 116, 114, 118, 109, 117, 113, 119, 112, 103, 117, 106, 116, 122, 102, 98, 132, 113, 125, 105, 112, 120, 114, 121, 116, 121, 123, 105, 131, 112, 131, 106, 107, 111, 104, 114, 101, 106, 109, 101, 126, 114, 124, 104, 99, 126, 128, 131, 115, 120, 104, 115, 119, 118, 110, 130, 111, 122, 108, 110, 87, 108, 114, 119, 106, 109, 107, 98, 125, 117, 136, 125, 117, 108, 113, 106, 113, 103, 102, 115, 120, 117, 126, 109, 120, 114, 130, 115, 116, 114, 109, 116, 111, 123, 114, 116, 107, 124, 111, 122, 124, 103, 120, 111, 115, 114, 114, 112, 114, 115, 124, 124, 111, 114, 112, 116, 109, 115, 123, 112, 109, 118, 113, 115, 124, 119, 121, 115, 109, 109, 106, 110, 118, 113, 116, 121, 116, 112, 128, 119, 123, 116, 108, 122, 108, 112, 124, 120, 105, 127, 114, 126, 116, 124, 106, 118, 115, 110, 108, 122, 114, 94, 118, 122, 101, 123, 111, 116, 113, 124, 111, 104, 117, 120, 129, 106, 123, 106, 110, 126, 103, 103, 110, 126, 102, 110, 101, 116, 108, 127, 112, 115, 105, 111, 115, 107, 118, 111, 109, 121, 119, 133, 121, 123, 112, 134, 121, 97, 123, 118, 120, 108, 104, 103, 117, 116, 118, 110, 120, 122, 117, 114, 128, 114, 116, 109, 89, 129, 122, 110, 120, 118, 115, 111, 125, 119, 111, 124, 108, 122, 104, 114, 109, 115, 116, 105, 113, 115, 107, 111, 99, 111, 120, 110, 127, 107, 120, 117, 113, 132, 111, 105, 111, 134, 110, 112, 104, 112, 120, 119, 119, 114, 115, 115, 108, 125, 122, 99, 105, 109, 118, 115, 116, 113, 120, 122, 127, 111, 117, 130, 116, 121, 115, 105, 126, 121, 120, 119, 118, 116, 123, 117, 113, 118, 116, 113, 118, 117, 114, 119, 107, 115, 111, 110, 117, 124, 113, 114, 102, 114, 132, 112, 127, 118, 106, 112, 123, 108, 114, 126, 120, 113, 113, 110, 115, 106, 115, 110, 106, 117, 116, 111, 110, 116, 114, 127, 124, 124, 117, 111, 106, 115, 104, 107, 125, 113, 136, 115, 138, 114, 121, 101, 116, 113, 102, 119, 111, 115, 112, 113, 133, 119, 111, 102, 113, 108, 122, 122, 112, 107, 88, 111, 117, 105, 119, 113, 110, 120, 107, 122, 124, 113, 119, 112, 69, 114, 106, 113, 108, 92, 123, 134, 109, 112, 120, 122, 102, 108, 110, 100, 110, 107, 114, 113, 116, 108, 138, 113, 104, 131, 120, 113, 120, 124, 127, 114, 120, 119, 116, 107, 117, 117, 111, 115, 119, 118, 111, 102, 122, 129, 124, 127, 113, 120, 124, 118, 119, 104, 118, 112, 112, 117, 153, 125, 111, 113, 106, 110, 122, 109, 104, 118, 108, 126, 108, 103, 119, 108, 124, 117, 121, 121, 112, 100, 121, 101, 117, 132, 127, 118, 109, 119, 113, 104, 113, 119, 122, 117, 105, 121, 130, 120, 104, 108, 123, 103, 112, 113, 109, 119, 106, 119, 112, 124, 107, 125, 115, 112, 105, 114, 104, 98, 99, 118, 116, 113, 116, 107, 108, 117, 106, 127, 127, 122, 123, 123, 116, 118, 106, 122, 104, 118, 117, 109, 118, 111, 122, 116, 100, 109, 117, 98, 115, 114, 108, 117, 109, 120, 124, 115, 114, 130, 80, 125, 123, 118, 113, 109, 121, 112, 115, 114, 126, 126, 119, 113, 117, 103, 115, 118, 115, 117, 113, 116, 115, 126, 114, 120, 114, 116, 122, 117, 113, 127, 113, 129, 116, 103, 117, 111, 117, 111, 101, 110, 120, 116, 114, 117, 120, 111, 116, 113, 117, 112, 115, 117, 116, 123, 114, 115, 115, 114, 117, 112, 119, 112, 115, 114, 119, 114, 111, 121, 117, 119, 116, 116, 112, 109, 117, 117, 116, 116, 114, 119, 115, 103, 114, 116, 119, 118, 120, 107, 107, 114, 122, 117, 120, 107, 109, 122, 112, 121, 115, 116, 119, 110, 114, 115, 115, 117, 115, 113, 117, 113, 119, 120, 116, 117, 116, 114, 118, 118, 115, 112, 118, 119, 111, 112, 119, 112, 116, 119, 106, 107, 99, 122, 109, 118, 111, 109, 120, 119, 108, 108, 112, 117, 114, 118, 112, 114, 116, 121, 115, 119, 116, 112, 117, 112, 118, 111, 121, 116, 121, 115, 112, 122, 120, 109, 122, 118, 114, 112, 114, 121, 111, 115, 118, 105, 118, 121, 117, 116, 117, 110, 122, 110, 121, 121, 115, 119, 114, 110, 109, 114, 123, 115, 112, 120, 120, 115, 108, 112, 115, 115, 112, 110, 113, 118, 115, 117, 114, 123, 111, 109, 109, 121, 122, 117, 116, 109, 113, 101, 110, 113, 112, 111, 118, 122, 118, 114, 118, 118, 117, 122, 116, 111, 117, 115, 119, 114, 118, 112, 117, 116, 113, 116, 118, 117, 109, 110, 108, 116, 113, 115, 114, 119, 115, 112, 111, 118, 115, 116, 111, 115, 115, 115, 112, 115, 119, 114, 115, 115, 118, 119, 117, 113, 108, 106, 116, 117, 110, 121, 121, 110, 119, 112, 120, 114, 110, 108, 120, 117, 114, 109, 118, 112, 115, 113, 117, 104, 115, 119, 119, 113, 118, 116, 120, 117, 121, 121, 113, 114, 115, 112, 122, 113, 117, 109, 110, 122, 118, 119, 114, 116, 121, 109, 115, 117, 114, 122, 107, 118, 115, 102, 117, 113, 111, 106, 104, 121, 113, 109, 118, 117, 117, 112, 108, 120, 111, 115, 120, 120, 120, 119, 120, 114, 121, 111, 112, 119, 114, 116, 114, 113, 115, 111, 117, 111, 120, 116, 116, 126, 122, 115, 116, 116, 112, 121, 120, 119, 117, 115, 116, 113, 119, 117, 110, 119, 111, 115, 121, 116, 116, 120, 118, 115, 117, 110, 114, 116, 116, 113, 119, 112, 108, 110, 116, 117, 117, 121, 117, 111, 113, 114, 115, 116, 114, 115, 116, 120, 105, 111, 113, 118, 125, 114, 119, 114, 116, 115, 115, 121, 115, 116, 118, 118, 116, 115, 118, 110, 117, 117, 121, 119, 116, 111, 121, 108, 121, 107, 119, 116, 116, 120, 120, 116, 125, 116, 123, 116, 111, 112, 106, 115, 118, 111, 116, 108, 118, 116, 115, 120, 115, 108, 119, 118, 112, 116, 117, 120, 132, 119, 116, 115, 112, 116, 119, 117, 117, 105, 123, 120, 120, 115, 106, 125, 114, 115, 116, 122, 112, 114, 113, 112, 109, 119, 113, 113, 115, 109, 113, 108, 115, 111, 112, 121, 113, 119, 121, 115, 114, 121, 120, 134, 99, 114, 110, 98, 114, 102, 113, 102, 110, 111, 117, 127, 102, 123, 112, 113, 123, 115, 109, 116, 112, 113, 126, 116, 115, 119, 127, 122, 107, 116, 105, 114, 105, 105, 120, 105, 106, 97, 132, 107, 117, 124, 112, 120, 112, 115, 115, 116, 112, 116, 107, 105, 119, 118, 101, 106, 123, 117, 104, 106, 125, 108, 108, 99, 112, 115, 109, 113, 122, 121, 111, 108, 119, 107, 113, 104, 121, 115, 134, 104, 100, 105, 108, 113, 118, 109, 124, 105, 119, 124, 115, 116, 114, 117, 124, 118, 110, 101, 134, 127, 118, 114, 119, 103, 100, 141, 114, 106, 106, 118, 124, 118, 110, 128, 118, 125, 126, 122, 116, 118, 112, 120, 120, 108, 105, 128, 97, 118, 109, 102, 122, 119, 106, 108, 133, 119, 116, 112, 111, 100, 105, 119, 107, 115, 113, 101, 119, 108, 123, 106, 119, 112, 108, 101, 112, 106, 114, 131, 113, 115, 117, 111, 122, 118, 112, 119, 96, 131, 117, 128, 111, 109, 128, 95, 121, 111, 104, 115, 110, 111, 107, 107, 133, 126, 99, 121, 124, 118, 110, 117, 121, 126, 105, 116, 113, 120, 119, 114, 126, 116, 113, 117, 116, 112, 118, 119, 112, 107, 118, 120, 114, 119, 111, 106, 100, 123, 111, 124, 138, 120, 114, 117, 115, 119, 114, 122, 132, 109, 114, 107, 116, 129, 115, 119, 131, 130, 116, 107, 125, 119, 117, 103, 104, 117, 121, 101, 114, 129, 124, 116, 111, 104, 101, 97, 119, 115, 119, 126, 103, 93, 104, 114, 115, 102, 113, 106, 110, 112, 107, 125, 90, 126, 117, 112, 105, 105, 115, 130, 104, 125, 132, 112, 110, 112, 116, 121, 126, 134, 130, 127, 119, 100, 104, 117, 109, 131, 128, 127, 129, 111, 118, 86, 95, 124, 113, 98, 110, 114, 134, 132, 115, 122, 120, 117, 114, 121, 129, 118, 108, 105, 118, 121, 108, 107, 109, 103, 125, 118, 118, 116, 117, 119, 102, 116, 114, 102, 94, 131, 112, 132, 118, 120, 114, 114, 126, 113, 110, 112, 110, 93, 118, 128, 106, 121, 117, 121, 105, 129, 117, 111, 125, 120, 110, 116, 114, 109, 117, 115, 136, 116, 115, 113, 112, 103, 110, 115, 109, 117, 106, 109, 119, 112, 104, 124, 115, 109, 114, 111, 122, 104, 108, 119, 125, 123, 112, 94, 119, 116, 110, 102, 111, 108, 108, 118, 120, 123, 108, 110, 119, 88, 126, 100, 126, 110, 117, 109, 116, 109, 118, 112, 119, 116, 111, 110, 114, 108, 121, 108, 119, 122, 119, 89, 120, 110, 108, 115, 118, 123, 105, 112, 103, 120, 115, 119, 103, 131, 116, 112, 107, 114, 114, 114, 101, 112, 110, 106, 119, 119, 128, 113, 94, 115, 99, 107, 121, 114, 116, 110, 122, 128, 123, 106, 112, 112, 113, 112, 109, 109, 114, 128, 115, 111, 132, 112, 141, 120, 122, 124, 130, 106, 138, 103, 114, 113, 113, 114, 114, 114, 108, 110, 122, 105, 124, 118, 123, 126, 125, 111, 112, 132, 103, 109, 107, 107, 114, 130, 114, 119, 110, 109, 122, 115, 122, 124, 108, 108, 112, 118, 119, 111, 114, 118, 105, 119, 116, 117, 136, 120, 107, 107, 105, 114, 116, 115, 111, 110, 108, 105, 120, 114, 113, 119, 107, 114, 117, 123, 111, 112, 109, 110, 98, 123, 114, 122, 120, 116, 115, 118, 119, 116, 111, 115, 119, 104, 105, 125, 112, 117, 108, 119, 115, 114, 115, 119, 122, 108, 114, 114, 108, 106, 112, 107, 116, 121, 111, 124, 116, 105, 107, 115, 107, 122, 115, 103, 106, 118, 118, 130, 122, 109, 81, 131, 114, 122, 105, 116, 111, 123, 105, 115, 124, 116, 126, 131, 105, 119, 119, 109, 133, 114, 104, 104, 112, 104, 121, 112, 119, 123, 108, 109, 114, 112, 105, 127, 125, 121, 126, 125, 127, 113, 118, 125, 115, 112, 116, 128, 116, 117, 122, 115, 120, 115, 113, 107, 113, 114, 112, 134, 108, 112, 106, 119, 112, 111, 114, 97, 122, 118, 103, 106, 116, 120, 133, 115, 109, 110, 121, 124, 134, 118, 119, 118, 108, 124, 124, 117, 115, 115, 110, 112, 118, 111, 116, 113, 115, 114, 105, 103, 106, 115, 117, 116, 106, 111, 113, 119, 103, 113, 122, 123, 118, 124, 112, 121, 120, 102, 116, 115, 113, 120, 122, 128, 109, 119, 119, 115, 125, 123, 109, 113, 97, 110, 114, 112, 111, 124, 124, 111, 114, 111, 116, 126, 112, 109, 119, 110, 115, 113, 115, 109, 104, 117, 112, 117, 104, 114, 108, 120, 117, 129, 109, 104, 116, 116, 110, 108, 112, 117, 118, 121, 104, 111, 100, 104, 127, 118, 113, 118, 103, 97, 107, 107, 123, 126, 112, 112, 114, 104, 122, 108, 108, 123, 110, 107, 126, 111, 125, 111, 117, 99, 123, 115, 130, 117, 125, 122, 108, 126, 108, 115, 119, 121, 111, 120, 108, 108, 103, 121, 123, 114, 107, 114, 120, 124, 111, 113, 118, 123, 110, 117, 117, 116, 112, 107, 114, 110, 115, 106, 116, 115, 124, 109, 115, 98, 118, 105, 124, 113, 109, 106, 113, 99, 109, 117, 108, 112, 115, 107, 121, 107, 109, 114, 107, 113, 94, 114, 108, 105, 124, 109, 115, 115, 103, 111, 113, 121, 119, 110, 111, 121, 113, 119, 116, 118, 130, 115, 106, 118, 115, 100, 123, 116, 114, 114, 115, 110, 119, 102, 105, 105, 111, 106, 115, 111, 102, 117, 118, 116, 127, 117, 122, 118, 121, 121, 115, 115, 105, 125, 109, 114, 115, 105, 118, 121, 124, 110, 121, 111, 115, 111, 107, 131, 125, 112, 109, 114, 114, 123, 137, 113, 123, 110, 113, 114, 106, 109, 114, 123, 109, 118, 123, 121, 116, 116, 115, 108, 113, 120, 122, 119, 116, 104, 118, 125, 114, 112, 107, 110, 103, 109, 115, 131, 116, 120, 114, 105, 115, 113, 114, 104, 109, 112, 131, 107, 109, 100, 116, 118, 117, 109, 107, 109, 121, 105, 129, 116, 120, 118, 112, 128, 121, 109, 121, 123, 108, 115, 118, 109, 113, 121, 115, 118, 117, 111, 117, 122, 118, 118, 123, 110, 130, 104, 119, 125, 117, 107, 109, 116, 115, 118, 109, 119, 112, 117, 120, 117, 116, 101, 120, 115, 117, 114, 114, 115, 123, 111, 105, 101, 112, 119, 124, 109, 117, 108, 113, 111, 117, 117, 109, 117, 123, 117, 121, 115, 110, 124, 107, 122, 99, 109, 119, 114, 114, 118, 116, 117, 148, 119, 113, 119, 143, 113, 114, 111, 109, 117, 123, 110, 120, 110, 114, 124, 126, 118, 117, 115, 104, 112, 118, 104, 120, 122, 117, 119, 111, 110, 121, 120, 122, 111, 122, 106, 114, 106, 128, 113, 119, 115, 114, 116, 128, 128, 114, 111, 113, 114, 108, 118, 107, 115, 112, 118, 112, 108, 118, 111, 119, 118, 103, 122, 120, 128, 107, 122, 111, 120, 111, 117, 114, 118, 116, 115, 121, 109, 116, 102, 112, 113, 112, 126, 110, 105, 112, 118, 88, 136, 110, 117, 119, 116, 124, 115, 128, 120, 110, 116, 116, 109, 122, 107, 109, 107, 108, 128, 122, 124, 114, 114, 122, 114, 116, 118, 111, 121, 111, 117, 104, 124, 115, 119, 112, 112, 117, 122, 127, 126, 106, 116, 110, 112, 111, 110, 111, 113, 122, 112, 116, 128, 115, 119, 130, 117, 117, 137, 122, 115, 104, 113, 125, 127, 106, 122, 113, 115, 111, 115, 104, 111, 127, 120, 128, 118, 120, 120, 111, 105, 104, 108, 117, 114, 114, 116, 121, 104, 120, 104, 116, 114, 112, 120, 120, 107, 111, 113, 117, 116, 120, 119, 112, 117, 119, 109, 133, 120, 115, 94, 115, 114, 116, 122, 118, 106, 112, 120, 117, 106, 113, 119, 119, 115, 123, 118, 115, 114, 117, 115, 103, 132, 162, 108, 121, 114, 112, 115, 110, 112, 116, 120, 114, 115, 107, 119, 118, 143, 125, 106, 118, 113, 117, 106, 110, 106, 110, 116, 112, 113, 106, 116, 115, 149, 115, 120, 116, 117, 108, 117, 108, 117, 120, 124, 109, 115, 110, 117, 107, 115, 114, 123, 138, 113, 108, 126, 118, 124, 118, 113, 119, 113, 115, 136, 116, 108, 118, 112, 115, 115, 125, 105, 140, 115, 111, 121, 128, 116, 121, 113, 114, 113, 114, 112, 114, 107, 110, 121, 120, 103, 119, 118, 125, 113, 114, 117, 98, 119, 112, 129, 117, 114, 109, 120, 123, 113, 113, 118, 114, 115, 114, 106, 111, 107, 112, 117, 131, 101, 118, 118, 121, 118, 111, 111, 118, 117, 119, 112, 121, 112, 112, 114, 111, 112, 113, 108, 111, 115, 108, 113, 118, 116, 120, 117, 116, 116, 112, 117, 112, 119, 115, 112, 115, 111, 120, 107, 116, 117, 115, 112, 113, 116, 116, 110, 113, 124, 120, 121, 100, 115, 104, 114, 113, 112, 115, 119, 117, 114, 116, 106, 118, 110, 112, 128, 106, 123, 110, 117, 117, 118, 112, 114, 129, 113, 118, 114, 116, 112, 131, 119, 127, 117, 119, 120, 115, 100, 118, 113, 116, 111, 112, 116, 117, 128, 119, 111, 117, 114, 117, 117, 107, 111, 112, 113, 108, 114, 124, 112, 116, 113, 113, 117, 126, 104, 105, 101, 108, 104, 112, 118, 130, 100, 113, 110, 118, 108, 112, 111, 116, 116, 129, 113, 116, 122, 122, 150, 105, 125, 111, 110, 117, 106, 118, 107, 114, 116, 128, 107, 123, 118, 103, 110, 112, 125, 114, 108, 113, 116, 113, 117, 96, 118, 134, 119, 101, 109, 111, 103, 102, 116, 107, 130, 116, 120, 108, 116, 114, 108, 100, 105, 118, 104, 116, 121, 113, 101, 122, 112, 121, 104, 130, 118, 98, 100, 107, 131, 132, 103, 113, 105, 128, 124, 107, 118, 110, 117, 102, 104, 103, 115, 114, 119, 110, 105, 113, 106, 114, 114, 114, 110, 109, 135, 98, 119, 115, 96, 120, 101, 118, 112, 136, 114, 122, 103, 133, 110, 115, 102, 110, 103, 100, 112, 102, 112, 111, 111, 118, 114, 123, 118, 107, 112, 123, 121, 110, 115, 94, 118, 124, 105, 114, 135, 114, 113, 111, 114, 109, 114, 118, 123, 114, 118, 120, 98, 118, 108, 111, 128, 113, 111, 106, 119, 109, 106, 91, 119, 112, 106, 109, 114, 111, 109, 117, 129, 119, 113, 115, 122, 116, 93, 134, 108, 117, 113, 128, 111, 120, 99, 126, 104, 116, 117, 110, 105, 114, 107, 110, 115, 106, 116, 124, 117, 113, 96, 122, 107, 106, 119, 114, 107, 117, 109, 112, 117, 126, 107, 111, 121, 125, 120, 115, 117, 118, 110, 121, 116, 120, 111, 94, 116, 124, 105, 120, 117, 118, 118, 125, 109, 124, 118, 125, 110, 113, 102, 119, 117, 118, 108, 114, 115, 120, 108, 129, 118, 110, 115, 119, 116, 128, 124, 115, 111, 117, 109, 124, 106, 105, 111, 102, 120, 116, 127, 116, 119, 135, 118, 109, 113, 124, 113, 109, 108, 105, 133, 119, 131, 106, 107, 100, 122, 123, 119, 112, 112, 123, 119, 119, 115, 109, 115, 111, 109, 126, 134, 120, 130, 135, 97, 110, 114, 121, 104, 120, 99, 110, 123, 109, 115, 111, 115, 120, 112, 112, 114, 120, 112, 127, 118, 106, 105, 120, 97, 102, 122, 108, 118, 123, 108, 121, 124, 109, 116, 126, 105, 122, 110, 112, 102, 133, 113, 114, 105, 110, 104, 120, 120, 135, 109, 117, 115, 111, 104, 108, 112, 118, 119, 120, 112, 105, 126, 114, 138, 112, 126, 93, 94, 103, 114, 119, 109, 115, 118, 129, 112, 121, 123, 113, 105, 105, 102, 120, 103, 121, 105, 122, 104, 114, 113, 132, 116, 118, 120, 123, 122, 115, 116, 105, 107, 117, 108, 104, 142, 111, 105, 108, 108, 129, 117, 106, 113, 117, 114, 106, 125, 108, 110, 113, 130, 112, 119, 113, 113, 118, 113, 119, 127, 118, 107, 118, 123, 130, 108, 95, 118, 116, 101, 113, 124, 117, 110, 114, 112, 100, 120, 107, 110, 104, 114, 107, 116, 110, 110, 116, 114, 117, 116, 115, 109, 102, 116, 113, 114, 110, 127, 125, 144, 110, 109, 108, 111, 116, 103, 108, 113, 118, 120, 120, 122, 117, 104, 101, 100, 116, 115, 114, 100, 116, 113, 126, 128, 118, 110, 129, 123, 119, 123, 107, 119, 97, 105, 129, 115, 110, 112, 116, 110, 112, 117, 108, 103, 92, 102, 113, 122, 117, 114, 111, 130, 123, 116, 99, 123, 112, 105, 117, 112, 111, 118, 112, 113, 124, 116, 105, 115, 119, 113, 104, 119, 105, 112, 109, 103, 115, 117, 120, 119, 114, 116, 107, 119, 106, 135, 119, 112, 111, 111, 105, 118, 108, 106, 115, 110, 125, 143, 118, 123, 116, 117, 110, 109, 99, 115, 124, 126, 117, 121, 116, 115, 124, 121, 124, 119, 119, 117, 113, 129, 103, 119, 132, 115, 110, 117, 120, 117, 104, 100, 114, 107, 112, 106, 124, 109, 127, 139, 104, 122, 125, 110, 108, 117, 106, 114, 124, 121, 127, 83, 119, 101, 117, 108, 108, 107, 104, 99, 110, 149, 116, 127, 120, 104, 108, 117, 116, 126, 121, 104, 117, 101, 129, 113, 116, 131, 122, 118, 128, 104, 110, 120, 98, 116, 121, 124, 116, 111, 118, 110, 116, 108, 118, 100, 89, 105, 120, 107, 115, 127, 122, 120, 117, 137, 118, 117, 106, 106, 115, 112, 117, 109, 102, 113, 120, 102, 119, 107, 112, 128, 111, 113, 126, 107, 122, 109, 99, 123, 112, 115, 113, 93, 119, 113, 113, 113, 122, 116, 128, 116, 107, 112, 128, 130, 134, 124, 112, 102, 109, 110, 127, 101, 119, 113, 116, 131, 122, 103, 115, 122, 112, 126, 132, 105, 113, 110, 117, 110, 126, 105, 121, 120, 122, 115, 123, 118, 111, 123, 90, 114, 121, 102, 128, 113, 123, 117, 119, 125, 121, 120, 122, 125, 106, 116, 130, 113, 98, 112, 116, 114, 112, 98, 122, 120, 99, 110, 125, 120, 118, 105, 119, 115, 100, 104, 120, 128, 103, 122, 135, 118, 114, 131, 115, 134, 121, 100, 120, 131, 123, 122, 117, 119, 127, 116, 126, 129, 114, 106, 111, 127, 106, 110, 110, 130, 130, 118, 116, 127, 118, 87, 112, 111, 101, 102, 121, 109, 120, 121, 123, 113, 108, 129, 111, 106, 115, 109, 121, 116, 116, 116, 109, 112, 115, 104, 117, 105, 118, 114, 111, 122, 113, 118, 122, 119, 99, 104, 130, 96, 99, 97, 124, 105, 117, 127, 108, 127, 119, 112, 108, 116, 117, 104, 106, 134, 107, 123, 116, 111, 116, 112, 97, 109, 122, 106, 107, 120, 106, 132, 103, 110, 116, 124, 111, 115, 113, 106, 134, 103, 121, 109, 116, 116, 125, 112, 114, 125, 126, 121, 106, 110, 118, 113, 114, 109, 110, 110, 121, 106, 116, 104, 120, 112, 103, 111, 111, 105, 116, 125, 110, 106, 117, 122, 117, 113, 115, 115, 122, 120, 99, 113, 115, 127, 119, 119, 127, 118, 115, 106, 117, 112, 116, 109, 114, 114, 112, 103, 119, 109, 112, 101, 112, 121, 127, 107, 78, 127, 117, 113, 111, 112, 121, 106, 110, 88, 108, 124, 117, 108, 123, 113, 99, 114, 107, 108, 110, 112, 110, 113, 123, 110, 109, 108, 116, 109, 109, 110, 120, 120, 123, 92, 123, 113, 122, 114, 99, 117, 119, 106, 99, 122, 122, 120, 138, 108, 113, 123, 107, 127, 121, 130, 121, 130, 108, 107, 133, 128, 115, 136, 126, 117, 119, 125, 107, 106, 120, 115, 119, 111, 121, 117, 109, 122, 108, 106, 118, 114, 119, 114, 113, 107, 121, 126, 118, 118, 119, 108, 118, 108, 119, 114, 136, 114, 109, 109, 116, 114, 105, 129, 115, 126, 111, 111, 114, 114, 118, 116, 125, 110, 105, 115, 119, 119, 112, 135, 113, 129, 116, 107, 104, 123, 108, 105, 109, 109, 134, 104, 115, 117, 109, 109, 118, 112, 127, 118, 120, 113, 109, 123, 136, 108, 107, 113, 104, 116, 117, 120, 121, 110, 119, 109, 111, 109, 107, 112, 113, 115, 112, 117, 107, 106, 106, 118, 112, 110, 118, 122, 100, 112, 106, 128, 116, 126, 116, 110, 112, 111, 112, 117, 115, 113, 116, 110, 121, 115, 126, 118, 121, 113, 113, 123, 114, 109, 115, 103, 110, 124, 120, 130, 112, 117, 110, 119, 127, 110, 118, 111, 130, 112, 107, 119, 122, 108, 142, 120, 109, 106, 125, 110, 116, 113, 109, 110, 112, 112, 113, 122, 103, 113, 116, 106, 106, 111, 118, 114, 98, 121, 91, 118, 113, 105, 124, 131, 118, 104, 116, 109, 124, 128, 105, 120, 117, 106, 110, 122, 109, 104, 114, 127, 115, 120, 127, 99, 102, 99, 108, 120, 120, 133, 116, 124, 113, 111, 126, 109, 110, 114, 121, 128, 112, 104, 109, 101, 119, 121, 115, 107, 115, 131, 122, 108, 123, 109, 112, 92, 113, 112, 117, 119, 109, 112, 117, 109, 102, 113, 113, 112, 102, 115, 124, 116, 113, 117, 121, 127, 107, 116, 103, 113, 122, 99, 109, 115, 121, 113, 117, 115, 118, 111, 126, 122, 119, 119, 103, 124, 105, 102, 109, 113, 104, 113, 109, 117, 116, 117, 117, 110, 128, 116, 116, 110, 112, 121, 111, 125, 111, 120, 117, 114, 120, 122, 111, 115, 113, 112, 127, 108, 103, 116, 121, 126, 113, 126, 106, 105, 112, 112, 106, 113, 131, 119, 117, 127, 114, 108, 112, 112, 114, 123, 114, 111, 117, 111, 123, 109, 103, 115, 98, 128, 108, 130, 116, 121, 110, 107, 122, 115, 113, 117, 109, 113, 108, 120, 127, 115, 107, 114, 105, 113, 109, 118, 117, 114, 108, 101, 115, 114, 115, 112, 116, 112, 117, 118, 120, 122, 108, 121, 127, 126, 108, 115, 124, 124, 116, 112, 108, 122, 122, 116, 117, 121, 115, 111, 114, 118, 113, 123, 115, 122, 120, 102, 135, 108, 117, 110, 102, 118, 113, 113, 98, 116, 106, 109, 115, 104, 127, 119, 116, 122, 121, 115, 113, 129, 121, 119, 116, 111, 124, 118, 124, 111, 112, 113, 122, 127, 123, 98, 115, 119, 103, 106, 113, 109, 111, 119, 119, 125, 127, 110, 112, 113, 109, 122, 118, 117, 117, 110, 114, 123, 110, 118, 115, 108, 109, 116, 136, 104, 117, 110, 131, 108, 109, 109, 113, 117, 104, 122, 113, 112, 112, 126, 114, 121, 107, 102, 117, 108, 107, 109, 112, 107, 118, 120, 121, 126, 117, 113, 118, 112, 105, 128, 96, 103, 123, 115, 118, 118, 115, 117, 112, 118, 111, 109, 121, 124, 111, 118, 110, 116, 114, 123, 107, 114, 118, 115, 108, 114, 117, 126, 121, 136, 109, 114, 115, 125, 123, 120, 99, 116, 119, 101, 126, 110, 91, 106, 119, 126, 113, 120, 94, 103, 121, 105, 106, 113, 109, 112, 104, 115, 111, 113, 106, 114, 116, 106, 116, 122, 111, 117, 114, 108, 113, 92, 121, 118, 93, 113, 124, 133, 128, 132, 121, 119, 107, 118, 107, 122, 113, 109, 114, 117, 109, 112, 107, 118, 103, 97, 118, 110, 115, 123, 114, 126, 103, 118, 112, 120, 107, 117, 110, 117, 109, 108, 96, 124, 120, 118, 110, 105, 113, 112, 104, 106, 119, 116, 116, 108, 118, 115, 109, 120, 111, 111, 108, 115, 120, 123, 106, 105, 116, 118, 115, 102, 110, 111, 115, 120, 118, 120, 117, 117, 114, 124, 114, 123, 116, 107, 109, 109, 107, 134, 121, 120, 118, 127, 122, 108, 110, 90, 123, 111, 108, 117, 122, 120, 105, 114, 106, 102, 124, 121, 119, 129, 109, 109, 125, 105, 124, 123, 118, 109, 102, 106, 119, 116, 120, 109, 116, 104, 96, 120, 117, 105, 118, 124, 116, 122, 107, 113, 111, 118, 105, 107, 115, 109, 124, 103, 122, 121, 110, 101, 118, 103, 118, 128, 111, 101, 108, 123, 111, 125, 129, 125, 125, 124, 102, 102, 113, 121, 116, 123, 108, 110, 103, 127, 121, 129, 130, 134, 114, 115, 130, 101, 115, 114, 110, 125, 133, 117, 101, 109, 111, 117, 118, 105, 109, 104, 117, 130, 113, 113, 115, 117, 119, 107, 104, 121, 119, 122, 116, 104, 116, 118, 107, 127, 121, 111, 109, 107, 104, 111, 105, 125, 114, 119, 109, 113, 115, 104, 103, 120, 111, 108, 120, 120, 104, 122, 118, 116, 115, 115, 113, 87, 135, 104, 112, 104, 105, 108, 107, 101, 124, 115, 109, 123, 113, 147, 112, 123, 122, 117, 112, 113, 131, 110, 114, 112, 117, 121, 128, 102, 122, 112, 94, 108, 124, 132, 113, 114, 111, 96, 112, 123, 125, 102, 114, 126, 117, 102, 103, 111, 122, 108, 131, 100, 104, 116, 112, 110, 110, 123, 109, 112, 111, 104, 119, 114, 114, 130, 125, 122, 107, 131, 115, 125, 124, 112, 103, 116, 113, 121, 111, 118, 114, 119, 123, 114, 119, 116, 119, 113, 109, 116, 118, 102, 109, 114, 113, 117, 113, 108, 99, 111, 104, 98, 123, 110, 117, 111, 115, 112, 116, 118, 99, 130, 111, 113, 123, 111, 104, 112, 121, 130, 100, 109, 124, 105, 131, 123, 114, 126, 114, 123, 119, 117, 111, 111, 112, 127, 105, 110, 108, 114, 119, 123, 113, 107, 104, 124, 93, 107, 94, 108, 115, 116, 121, 112, 122, 121, 121, 120, 115, 116, 114, 129, 112, 108, 110, 109, 131, 120, 112, 108, 113, 131, 114, 115, 111, 117, 128, 116, 118, 123, 119, 124, 124, 136, 123, 115, 126, 116, 119, 123, 109, 105, 129, 102, 119, 110, 109, 116, 121, 121, 109, 107, 116, 106, 110, 107, 103, 120, 104, 122, 129, 123, 118, 121, 109, 103, 106, 115, 112, 105, 118, 102, 117, 129, 134, 116, 130, 107, 119, 119, 110, 129, 102, 125, 114, 103, 124, 132, 116, 105, 124, 120, 121, 107, 117, 120, 113, 122, 121, 120, 107, 102, 111, 110, 114, 107, 109, 114, 111, 129, 113, 137, 119, 111, 117, 122, 133, 100, 109, 116, 111, 118, 102, 111, 119, 105, 116, 99, 108, 115, 118, 117, 123, 109, 112, 103, 116, 114, 111, 122, 117, 118, 113, 109, 116, 132, 102, 114, 117, 107, 119, 130, 123, 114, 104, 101, 109, 112, 125, 128, 111, 120, 101, 104, 100, 131, 94, 119, 104, 107, 115, 106, 102, 125, 125, 117, 129, 122, 114, 136, 126, 111, 142, 104, 115, 105, 112, 110, 109, 112, 124, 129, 109, 111, 114, 124, 119, 89, 127, 124, 110, 111, 105, 108, 120, 112, 108, 113, 122, 115, 108, 117, 105, 94, 136, 104, 114, 109, 105, 122, 114, 114, 129, 118, 121, 114, 115, 116, 122, 110, 134, 98, 108, 116, 113, 111, 112, 125, 123, 123, 99, 117, 119, 109, 126, 123, 115, 124, 127, 113, 112, 99, 105, 126, 118, 109, 111, 115, 123, 111, 105, 104, 120, 109, 104, 123, 119, 104, 113, 117, 104, 117, 110, 112, 124, 108, 130, 120, 111, 124, 110, 109, 118, 120, 120, 109, 111, 118, 115, 112, 107, 126, 125, 108, 117, 106, 119, 109, 112, 114, 106, 119, 124, 111, 104, 121, 105, 112, 139, 118, 106, 127, 104, 131, 112, 119, 121, 91, 106, 123, 120, 115, 114, 106, 109, 112, 128, 106, 123, 98, 127, 119, 122, 114, 135, 113, 116, 117, 112, 108, 126, 120, 107, 120, 121, 121, 111, 113, 118, 117, 121, 123, 112, 112, 130, 121, 120, 107, 109, 108, 118, 130, 107, 112, 102, 107, 112, 127, 112, 107, 104, 110, 121, 121, 120, 108, 113, 110, 111, 126, 121, 102, 126, 113, 101, 120, 133, 119, 126, 92, 112, 111, 92, 115, 122, 109, 126, 105, 120, 115, 100, 114, 104, 115, 117, 128, 112, 111, 124, 105, 108, 109, 115, 118, 120, 115, 113, 129, 106, 121, 104, 116, 117, 119, 111, 116, 115, 129, 123, 109, 113, 118, 119, 122, 126, 122, 111, 107, 119, 107, 91, 111, 114, 121, 103, 113, 116, 107, 129, 124, 110, 118, 117, 111, 111, 122, 117, 109, 107, 110, 106, 114, 111, 115, 120, 138, 109, 107, 103, 100, 111, 135, 108, 107, 120, 98, 122, 119, 103, 113, 117, 109, 106, 117, 116, 114, 123, 105, 114, 119, 111, 108, 113, 105, 127, 127, 130, 104, 117, 111, 82, 103, 111, 117, 107, 115, 118, 105, 119, 112, 110, 121, 119, 125, 113, 107, 111, 116, 118, 106, 119, 121, 114, 126, 128, 108, 121, 113, 114, 119, 130, 121, 106, 105, 105, 113, 110, 107, 104, 115, 116, 110, 106, 111, 124, 112, 127, 132, 123, 129, 111, 126, 117, 126, 111, 98, 106, 119, 117, 110, 121, 118, 101, 129, 117, 121, 116, 122, 107, 122, 122, 112, 114, 123, 107, 126, 124, 113, 123, 132, 108, 103, 107, 123, 107, 117, 96, 113, 134, 126, 111, 110, 108, 111, 124, 112, 120, 113, 116, 104, 115, 98, 120, 109, 128, 117, 116, 114, 109, 117, 117, 123, 123, 127, 118, 130, 114, 108, 119, 109, 106, 108, 119, 113, 108, 117, 119, 112, 111, 100, 112, 111, 113, 116, 109, 121, 104, 129, 118, 126, 125, 131, 125, 119, 97, 109, 124, 109, 123, 118, 118, 113, 119, 109, 128, 109, 116, 110, 101, 120, 108, 109, 133, 132, 112, 103, 102, 103, 119, 115, 109, 114, 108, 94, 125, 121, 118, 113, 118, 124, 122, 113, 131, 113, 126, 126, 122, 114, 120, 114, 105, 102, 112, 124, 123, 122, 118, 121, 113, 110, 119, 109, 112, 125, 108, 109, 121, 103, 129, 111, 122, 124, 119, 136, 120, 113, 114, 101, 103, 111, 104, 108, 106, 102, 118, 103, 122, 125, 118, 126, 124, 106, 108, 104, 118, 119, 117, 122, 116, 120, 128, 109, 107, 107, 118, 106, 104, 113, 126, 113, 111, 113, 122, 110, 110, 122, 120, 121, 110, 105, 121, 107, 128, 106, 125, 113, 99, 108, 107, 110, 116, 122, 126, 121, 118, 116, 129, 121, 120, 118, 136, 107, 114, 100, 110, 105, 122, 107, 120, 120, 104, 122, 110, 112, 109, 95, 115, 123, 120, 133, 120, 125, 108, 119, 107, 108, 112, 116, 111, 108, 114, 101, 114, 114, 101, 122, 103, 118, 118, 109, 112, 123, 122, 112, 125, 124, 121, 111, 105, 105, 110, 118, 115, 113, 120, 103, 117, 117, 114, 107, 118, 132, 121, 107, 105, 119, 117, 97, 129, 120, 125, 121, 125, 117, 122, 118, 109, 116, 126, 124, 129, 129, 109, 109, 114, 113, 114, 122, 98, 105, 135, 132, 117, 113, 113, 105, 120, 111, 104, 109, 108, 109, 123, 112, 108, 102, 110, 112, 99, 136, 111, 118, 107, 110, 109, 111, 111, 113, 121, 119, 105, 115, 122, 93, 110, 114, 114, 110, 116, 126, 114, 120, 115, 113, 125, 121, 119, 117, 104, 114, 110, 106, 111, 105, 113, 118, 114, 104, 106, 120, 123, 106, 113, 113, 103, 131, 105, 120, 129, 122, 120, 129, 115, 100, 109, 115, 120, 126, 114, 103, 120, 113, 118, 105, 125, 110, 137, 105, 111, 122, 133, 96, 117, 95, 117, 123, 122, 114, 121, 117, 135, 92, 116, 115, 115, 98, 105, 118, 123, 100, 109, 111, 119, 114, 115, 111, 111, 116, 133, 108, 103, 119, 119, 120, 117, 114, 123, 116, 115, 130, 104, 99, 123, 107, 116, 110, 139, 114, 116, 113, 104, 120, 103, 112, 123, 107, 117, 110, 108, 119, 127, 107, 118, 113, 111, 123, 126, 125, 118, 119, 113, 110, 123, 130, 113, 146, 110, 108, 119, 107, 112, 116, 115, 111, 124, 124, 106, 123, 123, 95, 110, 108, 102, 131, 101, 126, 125, 115, 109, 115, 103, 125, 129, 122, 104, 109, 117, 136, 109, 133, 116, 113, 119, 115, 107, 112, 120, 114, 118, 112, 107, 126, 112, 125, 107, 108, 116, 107, 119, 126, 141, 115, 107, 113, 121, 110, 112, 115, 114, 99, 124, 100, 112, 116, 117, 124, 105, 119, 118, 116, 122, 109, 106, 106, 132, 110, 123, 119, 108, 111, 113, 119, 133, 124, 115, 118, 110, 130, 100, 116, 109, 116, 100, 116, 113, 116, 117, 122, 111, 119, 107, 123, 130, 112, 109, 112, 122, 121, 115, 118, 115, 108, 117, 119, 132, 112, 103, 109, 111, 113, 112, 114, 110, 115, 120, 127, 113, 123, 129, 107, 115, 113, 112, 121, 111, 117, 112, 109, 106, 116, 120, 119, 113, 119, 116, 107, 115, 118, 120, 114, 120, 116, 111, 109, 112, 109, 100, 113, 124, 117, 118, 112, 112, 104, 109, 115, 124, 116, 108, 109, 114, 105, 114, 108, 117, 116, 111, 109, 119, 115, 109, 118, 125, 118, 109, 113, 113, 114, 114, 118, 117, 123, 121, 111, 119, 109, 109, 101, 114, 105, 104, 118, 117, 112, 119, 106, 116, 101, 89, 120, 117, 111, 114, 120, 116, 125, 106, 116, 120, 101, 118, 118, 106, 121, 117, 118, 119, 118, 131, 115, 118, 108, 116, 117, 119, 116, 100, 102, 119, 114, 100, 115, 117, 117, 116, 106, 110, 117, 100, 113, 123, 107, 117, 112, 114, 109, 118, 109, 116, 116, 115, 123, 117, 121, 112, 115, 115, 120, 124, 123, 126, 115, 126, 122, 132, 124, 125, 116, 114, 112, 123, 102, 119, 121, 99, 106, 118, 106, 106, 100, 119, 111, 108, 122, 130, 121, 119, 121, 117, 116, 119, 110, 106, 123, 120, 127, 115, 117, 120, 120, 105, 110, 113, 110, 124, 112, 99, 112, 114, 123, 118, 108, 116, 119, 114, 116, 103, 117, 114, 112, 122, 112, 120, 125, 108, 117, 121, 110, 116, 124, 116, 114, 112, 114, 108, 119, 110, 110, 107, 111, 119, 109, 113, 105, 118, 109, 100, 110, 108, 108, 111, 115, 125, 127, 125, 122, 106, 113, 115, 114, 116, 123, 115, 113, 111, 111, 125, 115, 116, 117, 110, 121, 113, 115, 110, 124, 133, 108, 81, 106, 113, 116, 113, 115, 123, 110, 126, 106, 112, 118, 106, 115, 109, 117, 113, 124, 118, 130, 126, 112, 108, 120, 120, 128, 114, 117, 113, 126, 116, 111, 122, 118, 113, 115, 125, 110, 119, 113, 118, 121, 112, 108, 121, 130, 105, 125, 120, 116, 114, 108, 122, 112, 121, 102, 114, 116, 122, 114, 114, 116, 121, 135, 119, 118, 123, 113, 118, 105, 119, 131, 125, 105, 109, 109, 107, 113, 115, 138, 115, 118, 124, 118, 107, 119, 109, 117, 120, 123, 106, 109, 117, 126, 107, 128, 117, 116, 104, 111, 117, 114, 115, 114, 118, 112, 114, 109, 110, 109, 120, 111, 114, 118, 103, 112, 138, 105, 112, 123, 122, 116, 112, 124, 115, 111, 123, 121, 109, 144, 114, 113, 112, 110, 120, 98, 107, 116, 120, 102, 129, 112, 120, 119, 111, 107, 116, 107, 121, 123, 114, 110, 122, 116, 107, 127, 120, 122, 117, 122, 115, 109, 111, 103, 128, 104, 130, 116, 116, 121, 115, 113, 99, 116, 122, 116, 113, 110, 103, 119, 126, 111, 115, 90, 127, 116, 121, 113, 120, 108, 108, 120, 111, 97, 109, 130, 111, 106, 136, 107, 107, 121, 118, 131, 112, 114, 111, 106, 125, 113, 104, 140, 116, 115, 106, 110, 108, 104, 113, 123, 118, 121, 117, 116, 125, 112, 110, 106, 117, 127, 108, 112, 107, 132, 113, 125, 106, 114, 97, 123, 114, 106, 105, 120, 113, 110, 111, 126, 123, 129, 110, 110, 118, 123, 111, 117, 123, 105, 114, 110, 113, 109, 116, 117, 102, 116, 116, 113, 112, 110, 129, 112, 107, 129, 122, 128, 105, 121, 120, 133, 129, 130, 115, 113, 121, 116, 114, 129, 104, 99, 116, 115, 112, 123, 111, 112, 106, 123, 117, 121, 112, 116, 122, 103, 108, 115, 118, 113, 111, 109, 111, 112, 137, 111, 103, 118, 119, 111, 119, 111, 104, 113, 122, 103, 120, 121, 112, 113, 110, 115, 113, 113, 108, 118, 123, 113, 119, 112, 124, 105, 115, 112, 123, 116, 117, 136, 119, 105, 100, 108, 128, 120, 116, 122, 122, 106, 111, 126, 117, 123, 113, 118, 142, 119, 107, 116, 112, 118, 108, 112, 129, 104, 102, 123, 122, 119, 111, 110, 107, 119, 104, 120, 116, 108, 106, 120, 130, 115, 109, 131, 114, 124, 112, 130, 106, 103, 104, 106, 117, 127, 120, 120, 130, 105, 104, 106, 118, 116, 120, 116, 114, 122, 114, 112, 108, 110, 123, 114, 109, 111, 119, 131, 114, 117, 113, 120, 122, 120, 109, 112, 133, 118, 117, 119, 111, 105, 108, 117, 127, 110, 108, 115, 115, 119, 110, 126, 96, 112, 134, 119, 113, 112, 116, 106, 113, 116, 111, 125, 118, 113, 115, 105, 103, 115, 117, 108, 122, 107, 116, 125, 111, 108, 84, 130, 114, 125, 122, 115, 126, 117, 128, 137, 117, 107, 116, 131, 128, 118, 112, 115, 110, 117, 111, 122, 106, 116, 120, 106, 128, 123, 113, 110, 107, 122, 110, 111, 123, 106, 119, 114, 111, 129, 113, 132, 98, 128, 124, 115, 114, 101, 116, 133, 118, 107, 126, 129, 101, 107, 125, 112, 122, 126, 103, 117, 95, 116, 114, 123, 127, 117, 110, 112, 115, 126, 125, 115, 130, 122, 112, 123, 122, 104, 123, 128, 128, 115, 122, 111, 97, 127, 120, 117, 114, 120, 115, 111, 114, 109, 123, 118, 109, 120, 117, 114, 128, 118, 102, 115, 115, 123, 108, 111, 99, 114, 138, 108, 105, 114, 109, 108, 114, 102, 110, 107, 120, 111, 117, 118, 117, 109, 131, 120, 120, 115, 119, 107, 107, 115, 114, 114, 117, 114, 113, 114, 113, 117, 118, 116, 121, 100, 125, 134, 124, 130, 113, 114, 117, 123, 114, 118, 110, 122, 130, 114, 118, 110, 106, 120, 126, 127, 115, 111, 125, 115, 105, 115, 141, 104, 116, 101, 111, 117, 108, 106, 123, 103, 122, 98, 105, 113, 120, 137, 105, 111, 137, 112, 104, 85, 118, 130, 115, 107, 112, 105, 134, 133, 111, 115, 136, 109, 115, 123, 109, 106, 112, 107, 109, 100, 100, 109, 84, 119, 121, 142, 78, 102, 102, 120, 114, 126, 126, 114, 123, 106, 121, 117, 106, 122, 110, 103, 130, 114, 114, 128, 107, 124, 106, 118, 120, 103, 110, 113, 122, 134, 115, 123, 119, 112, 108, 111, 111, 106, 126, 100, 116, 110, 109, 110, 108, 109, 118, 126, 115, 108, 125, 111, 117, 123, 116, 117, 114, 125, 114, 120, 116, 106, 119, 108, 113, 115, 120, 117, 125, 113, 116, 83, 111, 112, 98, 116, 118, 115, 104, 117, 121, 103, 111, 115, 104, 114, 119, 134, 113, 110, 109, 113, 100, 124, 101, 112, 121, 101, 108, 97, 127, 116, 115, 107, 121, 111, 122, 99, 125, 112, 119, 119, 110, 105, 127, 116, 115, 119, 110, 118, 119, 114, 121, 119, 127, 126, 107, 113, 116, 112, 107, 125, 127, 118, 120, 127, 115, 118, 111, 117, 116, 136, 118, 111, 115, 116, 112, 111, 119, 118, 108, 118, 124, 115, 110, 115, 109, 128, 129, 89, 118, 125, 119, 112, 122, 107, 111, 117, 114, 122, 119, 115, 115, 119, 113, 112, 110, 101, 117, 112, 114, 119, 109, 111, 121, 119, 117, 120, 101, 98, 112, 114, 122, 116, 106, 125, 123, 128, 127, 112, 112, 98, 100, 113, 112, 116, 114, 102, 114, 109, 117, 117, 117, 109, 119, 116, 107, 117, 97, 110, 117, 128, 113, 113, 123, 118, 122, 109, 120, 134, 93, 103, 108, 113, 120, 111, 115, 111, 114, 118, 166, 113, 113, 109, 117, 107, 126, 111, 108, 103, 126, 119, 112, 109, 116, 114, 101, 112, 110, 116, 108, 106, 143, 119, 114, 115, 116, 111, 117, 130, 116, 123, 112, 116, 115, 125, 121, 122, 110, 113, 106, 106, 109, 110, 117, 124, 118, 79, 127, 116, 114, 115, 108, 123, 96, 126, 115, 119, 123, 117, 117, 110, 114, 133, 114, 110, 122, 115, 127, 115, 115, 115, 113, 110, 117, 111, 109, 118, 122, 109, 117, 127, 121, 121, 106, 119, 117, 121, 113, 120, 115, 114, 109, 110, 117, 116, 120, 113, 109, 99, 115, 119, 105, 110, 102, 106, 114, 122, 124, 120, 112, 134, 118, 112, 130, 117, 129, 115, 110, 112, 114, 106, 119, 111, 128, 107, 116, 115, 113, 110, 120, 121, 119, 135, 126, 125, 101, 114, 108, 110, 113, 116, 104, 126, 105, 121, 144, 115, 118, 115, 117, 102, 122, 105, 125, 101, 114, 110, 138, 118, 114, 103, 124, 115, 114, 124, 136, 112, 127, 112, 114, 124, 123, 120, 124, 119, 106, 113, 119, 112, 114, 121, 116, 104, 106, 127, 118, 113, 119, 113, 117, 116, 119, 108, 106, 108, 121, 109, 95, 107, 120, 124, 128, 115, 120, 114, 117, 116, 107, 116, 96, 110, 106, 115, 108, 102, 112, 119, 121, 116, 109, 112, 116, 112, 122, 113, 118, 118, 111, 101, 136, 151, 130, 125, 109, 111, 117, 120, 119, 122, 105, 131, 109, 107, 109, 117, 108, 133, 112, 111, 123, 104, 110, 104, 112, 112, 115, 118, 114, 115, 129, 128, 117, 135, 113, 107, 114, 111, 117, 117, 101, 113, 124, 118, 119, 106, 114, 98, 115, 110, 122, 112, 115, 118, 129, 109, 118, 113, 107, 127, 91, 135, 103, 114, 108, 110, 119, 127, 137, 105, 106, 121, 121, 134, 112, 117, 113, 118, 102, 120, 127, 111, 93, 112, 120, 106, 113, 113, 120, 107, 98, 118, 109, 119, 131, 105, 115, 131, 126, 135, 113, 119, 97, 131, 129, 112, 108, 128, 111, 130, 109, 126, 112, 118, 106, 110, 115, 118, 113, 127, 106, 113, 110, 95, 110, 124, 107, 122, 109, 113, 124, 107, 122, 130, 106, 89, 100, 124, 118, 117, 117, 118, 117, 123, 113, 105, 112, 112, 122, 103, 116, 113, 124, 113, 129, 108, 103, 114, 112, 120, 109, 119, 109, 112, 107, 119, 110, 120, 121, 127, 126, 113, 100, 112, 117, 116, 113, 120, 103, 110, 111, 127, 101, 117, 114, 117, 122, 110, 124, 102, 107, 125, 111, 104, 121, 113, 118, 124, 105, 114, 98, 101, 115, 112, 115, 115, 110, 107, 113, 102, 126, 126, 119, 99, 115, 113, 97, 119, 125, 103, 115, 121, 110, 124, 102, 125, 109, 106, 112, 100, 122, 134, 119, 106, 123, 121, 118, 133, 114, 77, 116, 94, 112, 130, 120, 120, 102, 119, 123, 116, 119, 106, 136, 99, 115, 122, 130, 125, 116, 115, 113, 122, 119, 129, 125, 122, 121, 110, 119, 107, 120, 117, 100, 113, 110, 113, 119, 109, 109, 117, 120, 114, 118, 123, 101, 118, 111, 119, 106, 106, 103, 112, 115, 123, 120, 105, 124, 119, 112, 132, 117, 113, 95, 113, 124, 106, 121, 114, 132, 118, 114, 120, 121, 115, 107, 111, 111, 123, 116, 111, 111, 110, 114, 123, 117, 119, 116, 117, 109, 106, 117, 101, 126, 120, 120, 94, 115, 108, 124, 106, 113, 121, 113, 103, 108, 107, 124, 115, 118, 112, 105, 105, 113, 112, 122, 111, 116, 115, 122, 112, 110, 110, 123, 120, 106, 108, 121, 110, 111, 107, 100, 113, 125, 135, 115, 120, 106, 114, 108, 116, 97, 113, 108, 110, 100, 112, 93, 112, 106, 118, 108, 107, 111, 98, 135, 119, 130, 124, 115, 119, 124, 132, 122, 116, 110, 104, 110, 113, 114, 115, 103, 115, 114, 115, 124, 112, 117, 107, 130, 126, 109, 107, 103, 107, 110, 106, 118, 121, 114, 105, 121, 103, 129, 120, 105, 119, 99, 123, 130, 115, 123, 115, 114, 123, 101, 109, 118, 113, 129, 120, 98, 104, 126, 108, 107, 107, 116, 133, 115, 114, 119, 117, 134, 121, 112, 109, 110, 114, 117, 104, 132, 123, 106, 109, 119, 118, 107, 107, 108, 108, 112, 116, 118, 102, 116, 105, 113, 103, 127, 109, 122, 126, 123, 104, 111, 96, 108, 107, 115, 111, 116, 114, 120, 114, 109, 124, 102, 121, 106, 113, 110, 117, 120, 123, 121, 120, 103, 111, 116, 111, 105, 135, 116, 109, 109, 118, 103, 110, 130, 123, 108, 117, 107, 124, 93, 123, 121, 108, 113, 116, 113, 122, 123, 119, 109, 138, 98, 94, 129, 127, 110, 111, 113, 113, 118, 98, 118, 116, 120, 112, 119, 120, 98, 108, 122, 121, 116, 118, 100, 92, 116, 111, 105, 120, 114, 123, 112, 113, 111, 113, 112, 113, 104, 98, 114, 127, 106, 117, 111, 116, 107, 127, 119, 114, 114, 110, 116, 108, 118, 119, 116, 107, 117, 100, 94, 129, 111, 105, 109, 116, 111, 107, 117, 111, 111, 132, 116, 99, 129, 126, 102, 115, 114, 113, 103, 96, 119, 111, 109, 106, 108, 91, 124, 110, 116, 105, 115, 118, 123, 110, 108, 132, 119, 115, 112, 120, 96, 116, 101, 111, 122, 120, 120, 125, 117, 115, 111, 119, 112, 134, 104, 123, 108, 108, 120, 119, 121, 110, 115, 113, 117, 137, 117, 117, 116, 129, 101, 113, 113, 113, 112, 111, 109, 106, 124, 114, 107, 115, 123, 114, 106, 98, 124, 127, 115, 117, 113, 106, 124, 116, 116, 109, 113, 119, 109, 117, 122, 118, 109, 114, 108, 117, 119, 115, 109, 136, 114, 129, 116, 108, 104, 115, 121, 117, 127, 103, 123, 119, 104, 115, 109, 117, 112, 114, 127, 113, 106, 118, 89, 118, 116, 118, 118, 103, 122, 110, 118, 117, 129, 109, 109, 123, 106, 116, 128, 113, 98, 118, 116, 119, 121, 124, 118, 114, 113, 101, 112, 118, 116, 127, 121, 123, 117, 106, 110, 123, 127, 122, 116, 111, 152, 107, 115, 110, 128, 122, 114, 114, 99, 118, 108, 117, 105, 115, 120, 121, 108, 105, 111, 124, 108, 121, 107, 124, 115, 121, 110, 113, 112, 115, 107, 128, 121, 108, 103, 119, 110, 132, 123, 119, 111, 106, 130, 107, 119, 117, 127, 104, 99, 109, 117, 115, 118, 126, 105, 116, 108, 117, 128, 109, 129, 116, 107, 106, 116, 112, 102, 106, 119, 119, 123, 117, 130, 126, 118, 110, 97, 107, 111, 125, 110, 112, 114, 121, 132, 118, 120, 104, 124, 107, 133, 119, 109, 111, 110, 116, 117, 117, 127, 105, 130, 134, 116, 124, 111, 135, 119, 120, 130, 117, 104, 117, 117, 119, 101, 122, 97, 122, 102, 108, 109, 110, 118, 114, 118, 124, 113, 116, 119, 102, 116, 122, 121, 117, 110, 130, 109, 110, 106, 104, 101, 109, 116, 130, 115, 124, 120, 122, 123, 112, 128, 119, 120, 116, 121, 115, 100, 117, 107, 115, 110, 116, 117, 116, 112, 103, 115, 88, 117, 138, 119, 116, 116, 102, 121, 119, 101, 108, 118, 118, 112, 115, 108, 100, 115, 135, 125, 110, 108, 123, 114, 114, 109, 115, 112, 115, 110, 124, 117, 113, 143, 104, 130, 110, 117, 117, 93, 121, 114, 104, 122, 113, 113, 124, 116, 116, 123, 115, 134, 135, 104, 110, 115, 118, 109, 102, 113, 114, 113, 118, 137, 105, 95, 98, 123, 111, 113, 116, 112, 139, 122, 133, 118, 108, 118, 120, 121, 123, 111, 122, 112, 113, 112, 139, 99, 105, 123, 122, 101, 113, 121, 104, 110, 117, 111, 131, 112, 115, 124, 119, 126, 103, 122, 117, 110, 109, 107, 110, 113, 94, 113, 121, 106, 119, 107, 100, 101, 92, 131, 113, 117, 110, 118, 119, 115, 114, 111, 115, 109, 112, 108, 127, 120, 109, 96, 122, 100, 111, 123, 107, 102, 116, 102, 136, 116, 112, 115, 118, 115, 104, 93, 110, 106, 111, 117, 113, 105, 106, 118, 97, 97, 103, 104, 103, 101, 98, 130, 118, 109, 114, 107, 95, 112, 103, 113, 112, 113, 124, 107, 117, 116, 123, 104, 109, 106, 106, 122, 108, 123, 106, 113, 107, 122, 122, 129, 127, 113, 130, 122, 121, 114, 109, 103, 99, 126, 122, 140, 99, 128, 108, 111, 105, 97, 115, 133, 116, 104, 113, 128, 106, 122, 115, 114, 118, 113, 118, 111, 115, 122, 102, 122, 114, 120, 129, 124, 126, 157, 113, 113, 111, 111, 109, 110, 120, 103, 116, 139, 95, 122, 103, 137, 105, 113, 118, 120, 120, 117, 110, 116, 108, 116, 96, 118, 112, 99, 118, 97, 155, 120, 118, 102, 129, 103, 134, 119, 104, 102, 126, 124, 111, 89, 110, 106, 105, 118, 104, 113, 86, 146, 103, 105, 102, 102, 124, 107, 105, 120, 97, 113, 110, 106, 106, 119, 135, 113, 112, 114, 123, 136, 120, 108, 102, 114, 104, 112, 120, 124, 109, 124, 104, 100, 138, 113, 96, 106, 127, 96, 131, 112, 115, 111, 116, 117, 119, 102, 115, 118, 123, 94, 109, 113, 113, 124, 112, 100, 99, 114, 95, 155, 121, 112, 119, 125, 99, 107, 116, 109, 112, 100, 104, 132, 106, 123, 133, 87, 103, 125, 104, 101, 116, 84, 113, 123, 113, 113, 120, 119, 117, 102, 108, 105, 108, 126, 120, 106, 117, 129, 115, 98, 102, 109, 114, 112, 113, 116, 136, 98, 122, 119, 116, 111, 141, 128, 111, 121, 110, 91, 90, 101, 120, 109, 117, 118, 115, 107, 101, 107, 110, 93, 117, 119, 139, 116, 124, 123, 112, 106, 112, 115, 119, 112, 103, 128, 99, 115, 123, 128, 97, 117, 113, 121, 110, 118, 124, 103, 121, 123, 117, 118, 103, 116, 118, 104, 92, 92, 162, 117, 132, 127, 125, 101, 121, 126, 120, 109, 116, 116, 107, 116, 120, 130, 114, 126, 123, 105, 111, 103, 92, 129, 105, 101, 110, 114, 119, 132, 116, 102, 111, 113, 107, 142, 111, 84, 114, 117, 113, 104, 117, 112, 115, 117, 122, 115, 100, 133, 109, 126, 106, 163, 114, 93, 123, 104, 109, 115, 124, 108, 121, 119, 118, 119, 113, 104, 111, 108, 118, 120, 111, 131, 113, 126, 112, 109, 105, 117, 122, 103, 101, 116, 136, 101, 101, 110, 109, 113, 110, 102, 110, 92, 130, 106, 108, 117, 148, 105, 136, 117, 110, 117, 118, 117, 103, 106, 113, 113, 108, 120, 145, 111, 131, 119, 115, 120, 99, 118, 108, 115, 99, 116, 100, 127, 123, 107, 95, 116, 97, 108, 118, 104, 104, 130, 105, 133};
+ model->setOperandValue(op14, op14_init, sizeof(uint8_t) * 262144);
+ static int32_t op16_init[] = {-373, 18951, -2733, 15414, 20558, 9709, 16138, -3792, 16558, -650, 7012, 20511, -274, -1847, -296, -372, 15068, 17543, 1854, 74, -4582, 9756, -132, 19846, -137, 1657, -3355, 14715, 5999, -109, 1181, -896, 15621, 22768, 18127, -50, 8284, 9109, -4146, 16821, -252, -167, -265, 17612, 17446, -1860, -174, 32085, 10056, 20509, -3583, -567, -1516, -177, 8726, -658, 21203, 7016, 16924, 7913, -327, -213, -147, 5525, -7896, 16433, 5983, 11020, 249, -51, -208, 16425, -472, -540, 19888, 19421, 19490, -251, 16580, 9068, -9075, -1014, -453, -308, 10261, -11969, 12104, -303, -334, -220, 8595, 12251, 11179, 8047, 8653, -665, 21897, 101, 18662, -20520, 14391, 7059, 11269, -226, 11338, -989, -276, -262, -423, -70, 15504, 17173, 12849, -242, 11750, -11968, 17192, 16985, -305, 20467, -92, 13467, 12979, 17623, 20170, 18187, -5626, 19962, -4048, -190, 23006, -320, 7595, 10846, 20, 18355, 15397, 7568, 15015, 14491, 10174, -177, 8623, -914, -778, -693, 22450, 23497, 18379, 9846, -514, 12853, 20087, -308, -87, -255, 23893, -2604, -1064, 17113, -206, 23683, -89, 18467, -803, -7233, 1299, -290, -773, -117, 25412, -172, 9850, 15154, -172, -198, -7326, -265, -214, 9724, 18236, -362, -452, -7554, 9933, -4, -127, -223, 27793, -194, 9869, -428, 11611, 14325, -268, 18914, -118, -1019, 13637, 19062, 13774, 18618, -5808, 16918, 7092, -218, -868, 16691, 14164, 11990, 22363, 22618, 7830, -8205, 11259, -3831, -1406, -236, 102, -348, 2647, -284, 17992, -349, 30338, 18878, 9241, 96, -1265, 22850, 23634, -910, -350, 18553, -566, 12124, 22674, -299, -2035, -86, 25130, -178, -610, -1100, 22637, -153, 12396, 13115, 27149, -57, -304, 15693, 22380, 22082, -662, -6306, -518, 18296, -281, -464, -1263, 3, -140, 11747, 54, 12219, 3128, -155, 20521, -356, -10700, -539, 16197, -151, 17991, -102, -12174, -2030, 23213, -278, -203, -188, 17503, -304, 345, -142, 12505, -83, 19624, -135, -313, 19070, 19043, 10744, 9237, -1029, 17365, -2722, 8900, 9481, -344, -97, -12518, 17213, -3963, -254, 4028, 20124, 18711, -5954, -199, 2229, -258, -1966, -176, -262, 18063, 18465, -403, 18370, 11978, 18498, 19527, -347, -188, -271, 20380, -154, -2272, 20353, 11041, -144, 17950, -205, -375, 23924, -394, 18961, -253, 22110, -163, 21443, -1523, 13, 20507, -174, -256, 14703, 14486, 9154, 16687, 9980, 9810, -5803, 18126, -219, 18072, 19486, 17649, 9061, 15158, 10930, 16784, 26204, -92, -172, -1126, -271, 6833, 1, 8767, 8469, -1538, -2265, -1815, 717, 8828, 14576, 15026, 12379, 18820, 9101, -704, 7009, 19635, 9413, -507, -2955, -16, -1749, 18378, 17066, 8416, 15201, -2713, 13941, 19216, 13617, 9155, 20763, 9344, 1533, 8326, 16614, -120, -188, 1820, -1160, 11339, 13681, 18114, 9511, 9853, 9411, 13324, 16781, -2262, -1990, -350, 8337, 16602, -410, 11323, 18129, -131, -1119, -336, -350, 8603, 15452, 8164, -325, -1780, -363, -1131, 8952, -9907, -1509, 18187, -1339, -439, 21121, 15708, 21219, -65, 16491, 20942, 13862, -8041, -945, -397, -63, -3379, 16563, 67, 14948, -724, 9500, 124, -615, 19791, -1002, -336, 10514, 8578, -1919, 3883, -115, -316, 18782, 23092, -191, 13692, -332, 16282, -105, -475, 22437, -63, 13576, -421, -358, -519, 20581, 16634, 18871, 12517, -146, -189, -156, -3347, 6190, -404, -586, 16365, -86, 37494, 19932, 19, -7693, -1984, 16309, -1494, -312, 20347, -312, -221, -2841, 7908, -354, -687, -9984};
+ model->setOperandValue(op16, op16_init, sizeof(int32_t) * 512);
+ static uint8_t op17_init[] = {144, 73, 143, 88, 88, 99, 98, 156, 84, 157, 95, 87, 162, 47, 152, 149, 88, 90, 153, 161, 161, 83, 152, 92, 141, 166, 162, 79, 164, 150, 39, 165, 98, 87, 97, 169, 92, 73, 163, 125, 149, 153, 186, 72, 88, 143, 147, 50, 99, 83, 150, 144, 149, 155, 85, 158, 84, 64, 87, 88, 147, 166, 147, 155, 168, 95, 159, 77, 151, 172, 152, 54, 146, 148, 90, 68, 88, 155, 66, 90, 79, 147, 145, 162, 60, 117, 72, 157, 160, 145, 80, 90, 60, 79, 84, 164, 79, 142, 83, 180, 97, 91, 85, 186, 88, 150, 153, 156, 163, 165, 83, 83, 90, 152, 79, 61, 67, 94, 157, 68, 151, 55, 66, 87, 77, 88, 146, 91, 167, 148, 90, 151, 86, 161, 172, 78, 80, 84, 93, 88, 71, 148, 96, 166, 143, 151, 79, 84, 87, 91, 181, 93, 91, 147, 152, 148, 75, 150, 137, 90, 156, 56, 150, 90, 156, 178, 147, 169, 188, 179, 60, 143, 77, 87, 157, 164, 171, 151, 149, 72, 84, 156, 148, 146, 101, 149, 154, 147, 64, 187, 144, 142, 86, 53, 156, 63, 155, 153, 87, 91, 83, 88, 178, 94, 63, 164, 154, 70, 86, 77, 87, 82, 86, 55, 64, 142, 143, 144, 147, 151, 71, 142, 91, 137, 53, 66, 93, 150, 153, 80, 56, 167, 134, 87, 161, 95, 84, 149, 158, 142, 66, 146, 141, 152, 84, 152, 85, 99, 48, 147, 168, 92, 79, 84, 148, 157, 150, 85, 152, 153, 140, 144, 146, 91, 169, 168, 111, 155, 89, 145, 139, 154, 84, 151, 119, 161, 170, 131, 85, 157, 149, 153, 107, 165, 160, 151, 86, 150, 94, 163, 145, 82, 93, 101, 75, 154, 83, 157, 85, 90, 152, 147, 151, 139, 151, 158, 96, 85, 93, 70, 149, 146, 146, 146, 159, 150, 75, 86, 146, 83, 85, 82, 88, 156, 149, 149, 81, 152, 137, 92, 97, 151, 85, 138, 46, 73, 155, 68, 152, 65, 148, 83, 152, 144, 75, 155, 150, 94, 93, 83, 77, 87, 84, 153, 73, 57, 87, 90, 90, 82, 95, 63, 99, 86, 147, 164, 169, 158, 78, 168, 79, 90, 40, 142, 136, 148, 86, 93, 86, 82, 85, 87, 148, 85, 74, 74, 141, 153, 155, 167, 91, 71, 78, 88, 146, 84, 102, 33, 78, 79, 70, 121, 81, 94, 143, 142, 158, 162, 118, 75, 95, 92, 94, 76, 82, 90, 161, 171, 165, 78, 96, 172, 97, 92, 149, 151, 155, 147, 88, 92, 74, 159, 151, 157, 139, 90, 172, 159, 89, 144, 166, 75, 95, 80, 155, 86, 66, 76, 143, 150, 206, 147, 147, 83, 150, 88, 145, 82, 151, 163, 87, 143, 147, 99, 86, 158, 144, 146, 153, 91, 77, 156, 93, 147, 89, 181, 176, 65, 152, 61, 145, 148, 147, 82, 85, 55, 89, 158, 179, 145, 152, 45, 147, 146, 94, 153, 41, 85, 151, 44, 146, 113, 160, 139, 86, 142, 151, 141, 81, 148, 136, 153, 153, 62, 147, 89, 83, 99, 92, 156, 77, 164, 89, 72, 183, 177, 162, 155, 86, 87, 165, 181, 164, 74, 164, 86, 156, 178, 164, 78, 180, 155, 110, 164, 97, 81, 92, 195, 90, 69, 168, 126, 157, 170, 197, 63, 81, 141, 162, 38, 98, 77, 156, 157, 153, 172, 88, 172, 79, 68, 80, 89, 166, 184, 164, 161, 177, 89, 112, 75, 159, 189, 161, 53, 153, 152, 83, 67, 85, 174, 70, 87, 79, 154, 160, 174, 79, 121, 74, 162, 174, 162, 89, 88, 59, 82, 81, 173, 68, 150, 77, 179, 93, 90, 85, 197, 83, 156, 162, 169, 177, 185, 85, 81, 83, 165, 73, 54, 74, 91, 157, 63, 162, 51, 56, 79, 67, 77, 147, 82, 177, 163, 83, 157, 86, 166, 183, 76, 72, 87, 87, 79, 67, 156, 94, 185, 157, 162, 71, 68, 82, 89, 187, 95, 81, 162, 161, 165, 63, 154, 145, 84, 175, 49, 170, 84, 164, 170, 160, 185, 211, 194, 40, 154, 81, 78, 174, 177, 182, 157, 160, 64, 78, 163, 161, 129, 97, 166, 181, 163, 44, 203, 148, 153, 81, 47, 160, 58, 171, 166, 83, 85, 77, 84, 183, 90, 61, 176, 163, 73, 82, 70, 84, 74, 84, 73, 65, 149, 149, 154, 158, 161, 57, 149, 85, 147, 58, 55, 83, 166, 160, 71, 46, 182, 143, 75, 182, 86, 79, 158, 152, 157, 52, 153, 150, 163, 75, 160, 83, 99, 46, 155, 188, 90, 76, 74, 152, 173, 160, 80, 154, 166, 139, 148, 155, 91, 190, 114, 181, 177, 79, 161, 132, 169, 79, 163, 117, 176, 170, 118, 75, 167, 163, 163, 110, 179, 112, 165, 84, 167, 91, 171, 156, 77, 83, 99, 84, 168, 72, 169, 83, 91, 163, 165, 155, 111, 151, 159, 93, 80, 89, 200, 161, 159, 162, 156, 168, 157, 66, 77, 159, 73, 83, 78, 82, 171, 164, 161, 73, 167, 142, 85, 92, 160, 73, 147, 33, 66, 171, 62, 168, 66, 158, 74, 165, 154, 71, 156, 160, 92, 87, 81, 78, 88, 88, 153, 67, 140, 88, 84, 85, 91, 90, 65, 102, 82, 150, 178, 185, 173, 75, 178, 80, 85, 157, 152, 139, 169, 80, 93, 79, 78, 72, 88, 154, 78, 64, 81, 143, 157, 162, 181, 90, 68, 88, 81, 167, 87, 101, 81, 88, 73, 88, 128, 88, 93, 148, 150, 174, 176, 95, 75, 89, 93, 95, 87, 82, 86, 162, 185, 184, 75, 91, 184, 93, 86, 163, 155, 166, 150, 89, 88, 74, 177, 151, 172, 148, 88, 21, 165, 83, 153, 168, 66, 91, 72, 174, 83, 62, 79, 151, 150, 229, 171, 144, 76, 164, 82, 153, 88, 160, 180, 80, 150, 161, 95, 88, 160, 153, 157, 168, 86, 70, 161, 94, 155, 84, 199, 177, 64, 164, 61, 163, 147, 159, 75, 71, 57, 85, 169, 204, 157, 164, 53, 147, 152, 86, 158, 25, 80, 160, 15, 157, 114, 168, 150, 79, 146, 160, 141, 89, 158, 144, 146, 138, 83, 127, 99, 91, 105, 101, 149, 88, 139, 98, 94, 146, 54, 140, 137, 92, 98, 144, 146, 150, 90, 143, 96, 132, 154, 149, 96, 157, 138, 159, 146, 103, 96, 101, 154, 103, 80, 137, 123, 140, 145, 168, 88, 97, 137, 140, 77, 102, 92, 137, 134, 137, 140, 96, 144, 92, 73, 91, 98, 140, 150, 143, 142, 156, 98, 87, 89, 141, 149, 135, 70, 140, 139, 97, 94, 94, 154, 82, 98, 90, 139, 139, 142, 76, 162, 78, 142, 153, 141, 85, 98, 74, 85, 94, 152, 94, 133, 96, 104, 100, 94, 88, 152, 89, 143, 140, 139, 147, 145, 99, 92, 95, 146, 88, 81, 90, 99, 143, 82, 140, 74, 81, 97, 91, 94, 132, 96, 150, 140, 93, 138, 93, 145, 151, 84, 85, 87, 100, 94, 85, 140, 98, 156, 133, 138, 92, 89, 96, 100, 162, 98, 93, 140, 140, 142, 97, 140, 130, 95, 138, 84, 149, 98, 144, 127, 141, 153, 162, 155, 80, 136, 87, 94, 144, 151, 168, 142, 143, 90, 92, 144, 142, 135, 103, 136, 153, 134, 90, 159, 135, 133, 97, 76, 144, 78, 140, 131, 96, 96, 88, 91, 138, 99, 76, 146, 136, 91, 94, 88, 90, 93, 94, 80, 74, 135, 134, 134, 144, 144, 80, 133, 96, 139, 78, 93, 100, 138, 145, 88, 67, 148, 125, 89, 149, 99, 93, 144, 151, 131, 94, 140, 132, 144, 92, 142, 95, 103, 88, 140, 159, 98, 93, 95, 133, 146, 140, 93, 147, 140, 133, 132, 138, 96, 154, 91, 187, 145, 91, 134, 138, 144, 92, 139, 119, 145, 139, 132, 90, 145, 140, 140, 107, 149, 37, 142, 95, 140, 96, 145, 138, 90, 96, 102, 83, 141, 86, 150, 99, 96, 138, 139, 140, 81, 137, 144, 100, 94, 98, 34, 140, 144, 142, 135, 153, 140, 94, 94, 135, 93, 97, 92, 94, 139, 137, 141, 90, 144, 127, 96, 100, 135, 91, 133, 57, 90, 145, 92, 132, 81, 141, 92, 144, 137, 93, 140, 138, 98, 94, 93, 86, 93, 93, 144, 91, 57, 93, 98, 95, 97, 97, 78, 106, 95, 137, 151, 146, 145, 89, 145, 85, 97, 31, 133, 127, 138, 95, 97, 93, 91, 91, 91, 136, 88, 78, 85, 130, 146, 142, 148, 99, 92, 89, 94, 142, 88, 106, 39, 88, 89, 79, 117, 88, 101, 133, 134, 146, 154, 65, 85, 99, 99, 102, 86, 87, 98, 147, 165, 148, 90, 101, 133, 105, 98, 145, 138, 145, 138, 97, 100, 83, 142, 137, 146, 133, 98, 163, 144, 98, 138, 143, 86, 102, 88, 145, 94, 85, 83, 135, 137, 152, 139, 132, 94, 137, 96, 134, 87, 138, 152, 95, 137, 141, 105, 95, 140, 138, 136, 143, 98, 88, 140, 100, 138, 98, 159, 156, 81, 146, 77, 143, 142, 138, 90, 91, 82, 96, 146, 157, 135, 140, 63, 144, 141, 99, 142, 83, 94, 140, 35, 129, 115, 144, 132, 98, 134, 145, 128, 87, 136, 131, 139, 157, 64, 150, 85, 80, 95, 93, 163, 79, 165, 121, 70, 189, 71, 164, 157, 87, 83, 167, 164, 160, 73, 166, 87, 153, 158, 166, 83, 181, 165, 55, 169, 89, 83, 89, 192, 90, 128, 147, 101, 159, 166, 213, 91, 87, 145, 166, 49, 97, 83, 146, 156, 153, 160, 89, 160, 71, 109, 81, 89, 159, 179, 160, 108, 162, 93, 172, 110, 160, 193, 162, 111, 157, 151, 79, 83, 82, 168, 104, 91, 200, 144, 151, 167, 86, 126, 70, 168, 175, 158, 76, 90, 104, 80, 84, 168, 67, 155, 80, 180, 91, 116, 85, 170, 121, 158, 161, 172, 178, 186, 85, 79, 82, 164, 67, 175, 74, 94, 162, 102, 160, 106, 118, 79, 74, 77, 142, 85, 164, 165, 76, 157, 82, 119, 184, 80, 72, 84, 87, 90, 111, 158, 89, 186, 153, 157, 71, 61, 82, 87, 183, 92, 84, 169, 160, 149, 66, 158, 150, 88, 168, 58, 168, 81, 158, 131, 163, 160, 194, 210, 65, 151, 89, 82, 167, 173, 181, 161, 154, 59, 87, 160, 160, 233, 97, 173, 162, 153, 55, 205, 111, 156, 84, 100, 167, 106, 173, 157, 87, 84, 77, 84, 134, 96, 106, 170, 165, 78, 78, 76, 80, 75, 87, 220, 113, 151, 149, 163, 149, 160, 113, 158, 84, 154, 54, 71, 84, 182, 163, 74, 65, 182, 151, 74, 163, 91, 85, 157, 158, 153, 69, 152, 150, 154, 72, 155, 85, 92, 53, 157, 175, 86, 74, 74, 158, 162, 162, 80, 158, 168, 136, 143, 148, 95, 189, 160, 78, 171, 80, 158, 220, 162, 79, 165, 96, 177, 142, 113, 76, 165, 162, 162, 86, 186, 169, 163, 91, 161, 87, 183, 153, 83, 86, 94, 77, 160, 78, 161, 88, 95, 166, 159, 147, 148, 150, 160, 126, 79, 89, 55, 161, 166, 164, 163, 175, 166, 81, 81, 167, 82, 83, 80, 84, 165, 161, 150, 75, 163, 137, 83, 94, 161, 78, 149, 122, 60, 164, 79, 180, 69, 157, 76, 168, 152, 75, 155, 158, 87, 89, 87, 80, 87, 90, 153, 70, 161, 91, 87, 84, 91, 89, 110, 87, 79, 164, 170, 178, 175, 118, 188, 115, 81, 94, 146, 148, 167, 83, 90, 93, 86, 80, 84, 147, 120, 65, 78, 154, 158, 163, 181, 88, 79, 79, 86, 159, 85, 92, 91, 83, 72, 88, 144, 86, 89, 150, 150, 149, 183, 115, 84, 86, 89, 96, 79, 73, 86, 171, 173, 178, 72, 92, 176, 91, 87, 156, 151, 164, 160, 90, 87, 110, 176, 155, 166, 151, 89, 151, 164, 86, 151, 169, 68, 93, 76, 172, 82, 71, 72, 137, 148, 164, 161, 147, 92, 164, 93, 157, 84, 157, 174, 79, 155, 161, 97, 83, 160, 151, 150, 161, 86, 69, 167, 92, 161, 85, 194, 187, 59, 164, 111, 160, 156, 159, 73, 73, 77, 95, 106, 213, 157, 149, 104, 160, 156, 88, 165, 20, 81, 160, 255, 149, 97, 164, 147, 79, 150, 157, 140, 87, 151, 145, 156, 165, 46, 153, 82, 83, 97, 89, 168, 75, 184, 118, 70, 210, 190, 184, 166, 84, 81, 175, 183, 156, 72, 185, 83, 158, 166, 174, 69, 193, 174, 113, 181, 88, 72, 83, 220, 91, 129, 155, 97, 168, 180, 214, 83, 79, 134, 176, 43, 95, 74, 151, 162, 154, 173, 106, 173, 61, 110, 74, 93, 171, 199, 171, 105, 168, 88, 111, 110, 169, 216, 178, 111, 159, 151, 72, 77, 78, 186, 108, 97, 221, 152, 164, 191, 120, 126, 91, 172, 182, 170, 87, 91, 109, 100, 97, 201, 56, 170, 74, 186, 87, 114, 105, 185, 117, 169, 170, 190, 203, 188, 84, 78, 84, 177, 70, 188, 74, 93, 166, 98, 185, 106, 111, 76, 71, 74, 139, 86, 153, 178, 64, 167, 91, 113, 192, 80, 75, 94, 87, 85, 108, 164, 89, 203, 164, 173, 54, 49, 79, 86, 213, 95, 79, 189, 173, 162, 54, 156, 150, 79, 179, 49, 185, 73, 168, 150, 167, 169, 203, 229, 62, 165, 95, 75, 190, 196, 200, 171, 168, 56, 82, 174, 169, 224, 91, 184, 186, 170, 47, 227, 107, 167, 87, 92, 179, 104, 189, 164, 80, 77, 72, 80, 168, 91, 108, 195, 191, 77, 81, 67, 76, 64, 94, 203, 116, 152, 152, 178, 162, 171, 115, 158, 80, 160, 36, 62, 75, 196, 176, 63, 50, 191, 158, 73, 181, 87, 77, 164, 150, 163, 50, 160, 160, 164, 68, 167, 84, 91, 41, 156, 199, 83, 62, 62, 164, 171, 177, 73, 154, 181, 133, 155, 157, 99, 204, 112, 140, 185, 77, 171, 217, 180, 72, 167, 95, 197, 148, 127, 63, 180, 178, 178, 86, 213, 116, 175, 88, 179, 86, 198, 165, 75, 80, 95, 97, 173, 75, 175, 78, 100, 177, 176, 155, 101, 145, 170, 125, 74, 88, 194, 178, 172, 183, 179, 191, 179, 78, 71, 183, 81, 83, 66, 81, 173, 176, 160, 60, 179, 137, 79, 91, 175, 78, 157, 120, 54, 172, 70, 194, 62, 170, 69, 177, 163, 67, 159, 169, 82, 88, 95, 84, 81, 99, 163, 64, 188, 93, 81, 76, 96, 87, 114, 81, 71, 170, 175, 202, 204, 118, 212, 112, 72, 209, 146, 156, 178, 85, 87, 89, 88, 69, 93, 152, 118, 55, 88, 160, 164, 174, 193, 82, 71, 86, 80, 172, 84, 92, 133, 100, 66, 103, 151, 95, 88, 160, 154, 163, 183, 96, 89, 90, 89, 98, 99, 75, 83, 173, 197, 203, 88, 88, 181, 87, 77, 165, 156, 174, 172, 101, 84, 110, 198, 151, 180, 155, 93, 55, 165, 82, 154, 172, 60, 89, 62, 183, 82, 57, 79, 141, 157, 153, 180, 154, 84, 177, 88, 165, 88, 166, 188, 67, 161, 172, 95, 87, 167, 165, 173, 181, 84, 62, 181, 87, 168, 79, 212, 202, 59, 172, 110, 177, 156, 168, 64, 62, 75, 95, 103, 245, 178, 155, 105, 167, 165, 81, 174, 0, 76, 170, 188, 154, 96, 176, 157, 74, 168, 165, 143, 102, 154, 151, 149, 152, 78, 146, 93, 89, 99, 98, 155, 88, 150, 120, 81, 169, 68, 158, 143, 90, 91, 156, 145, 146, 79, 155, 93, 149, 143, 155, 91, 173, 156, 159, 147, 94, 83, 95, 175, 95, 124, 141, 102, 149, 157, 187, 94, 95, 141, 154, 72, 100, 88, 143, 139, 137, 151, 90, 152, 85, 118, 88, 93, 148, 146, 150, 111, 147, 96, 78, 114, 144, 170, 154, 113, 154, 147, 89, 91, 89, 160, 106, 93, 195, 137, 146, 161, 84, 152, 75, 154, 160, 149, 78, 94, 110, 81, 89, 160, 81, 145, 89, 118, 93, 116, 87, 156, 118, 147, 156, 162, 164, 171, 89, 88, 90, 151, 83, 158, 75, 101, 157, 104, 154, 107, 118, 94, 86, 84, 137, 92, 154, 153, 86, 147, 90, 114, 165, 87, 79, 88, 97, 98, 115, 144, 92, 167, 144, 159, 80, 78, 92, 91, 175, 97, 90, 152, 146, 141, 76, 144, 141, 95, 155, 77, 159, 89, 141, 138, 150, 151, 176, 190, 82, 144, 89, 88, 160, 165, 179, 148, 148, 71, 89, 154, 147, 184, 102, 148, 153, 148, 78, 187, 109, 144, 88, 99, 160, 107, 160, 143, 95, 89, 81, 87, 101, 98, 109, 155, 154, 86, 89, 81, 88, 80, 92, 148, 115, 143, 136, 147, 144, 151, 112, 146, 85, 148, 73, 87, 91, 168, 148, 84, 79, 163, 136, 80, 152, 97, 87, 149, 147, 145, 74, 145, 143, 148, 87, 146, 90, 97, 78, 143, 161, 91, 85, 84, 151, 154, 146, 89, 158, 149, 133, 138, 144, 96, 178, 75, 154, 153, 87, 146, 171, 150, 85, 152, 103, 163, 134, 113, 82, 161, 153, 149, 90, 160, 46, 151, 97, 149, 93, 167, 143, 86, 93, 96, 86, 154, 84, 154, 89, 97, 154, 152, 136, 57, 141, 142, 125, 88, 97, 67, 156, 153, 152, 151, 168, 150, 93, 89, 151, 88, 87, 85, 88, 153, 147, 141, 84, 160, 134, 93, 95, 154, 86, 139, 115, 77, 155, 88, 169, 83, 148, 84, 152, 143, 91, 145, 151, 96, 94, 89, 90, 91, 89, 134, 78, 145, 95, 95, 93, 91, 95, 113, 95, 84, 148, 160, 172, 162, 118, 168, 115, 90, 94, 138, 141, 154, 89, 95, 99, 94, 81, 87, 140, 112, 75, 88, 144, 149, 154, 172, 93, 92, 86, 95, 157, 87, 98, 99, 86, 82, 85, 139, 89, 95, 142, 143, 142, 160, 69, 87, 94, 97, 99, 77, 82, 93, 163, 171, 161, 81, 99, 156, 95, 98, 148, 145, 152, 148, 91, 95, 112, 159, 142, 152, 144, 93, 142, 147, 97, 145, 158, 75, 99, 83, 158, 89, 86, 76, 135, 146, 126, 146, 144, 97, 151, 100, 144, 89, 147, 157, 90, 143, 151, 105, 90, 151, 144, 144, 152, 91, 77, 158, 98, 147, 91, 177, 176, 77, 147, 111, 149, 146, 147, 79, 83, 93, 102, 106, 189, 145, 143, 109, 148, 141, 95, 155, 50, 87, 150, 243, 138, 102, 154, 136, 86, 143, 146, 136, 90, 142, 136, 148, 147, 83, 141, 85, 83, 90, 100, 153, 97, 142, 155, 82, 164, 66, 153, 142, 96, 92, 141, 145, 148, 89, 152, 91, 143, 120, 152, 91, 156, 152, 35, 138, 91, 90, 92, 160, 95, 167, 145, 70, 141, 140, 160, 99, 95, 131, 150, 77, 89, 95, 143, 140, 137, 131, 88, 138, 83, 158, 92, 88, 141, 153, 138, 83, 147, 99, 159, 163, 141, 154, 143, 155, 144, 143, 87, 87, 96, 142, 117, 91, 15, 131, 134, 145, 67, 116, 81, 147, 149, 143, 82, 94, 145, 82, 85, 148, 83, 135, 89, 111, 93, 157, 85, 144, 178, 142, 141, 152, 151, 153, 92, 94, 94, 146, 82, 143, 83, 101, 156, 125, 140, 135, 154, 90, 91, 89, 140, 92, 145, 147, 93, 137, 89, 79, 153, 100, 88, 89, 90, 105, 158, 141, 91, 156, 144, 149, 84, 80, 94, 88, 146, 94, 94, 147, 139, 127, 80, 150, 140, 99, 156, 83, 147, 92, 129, 151, 142, 126, 149, 164, 80, 142, 89, 91, 144, 159, 172, 141, 142, 83, 96, 142, 140, 100, 102, 144, 147, 137, 87, 162, 87, 138, 93, 126, 154, 134, 161, 139, 95, 89, 84, 93, 115, 104, 163, 145, 152, 90, 89, 94, 93, 82, 90, 41, 143, 146, 136, 148, 134, 142, 161, 150, 91, 150, 77, 83, 93, 166, 142, 88, 76, 161, 150, 88, 145, 95, 95, 144, 137, 137, 82, 145, 145, 140, 88, 141, 83, 93, 69, 138, 140, 97, 84, 86, 145, 143, 144, 92, 142, 147, 122, 130, 132, 93, 157, 158, 61, 148, 90, 143, 114, 130, 92, 144, 74, 153, 145, 139, 93, 146, 144, 137, 75, 158, 158, 143, 98, 136, 97, 165, 131, 97, 92, 93, 80, 144, 91, 145, 89, 99, 154, 143, 150, 127, 139, 144, 147, 92, 97, 89, 154, 141, 145, 148, 150, 147, 96, 94, 143, 83, 88, 87, 91, 144, 137, 134, 90, 156, 141, 97, 95, 143, 86, 139, 161, 86, 153, 95, 174, 75, 141, 90, 155, 140, 82, 138, 145, 83, 97, 90, 89, 86, 88, 142, 77, 7, 101, 98, 94, 84, 97, 149, 77, 89, 146, 138, 159, 154, 160, 155, 162, 93, 44, 144, 139, 145, 94, 94, 100, 103, 91, 84, 132, 155, 82, 79, 142, 146, 149, 156, 95, 99, 83, 94, 149, 93, 87, 41, 85, 87, 94, 153, 85, 90, 143, 138, 126, 151, 116, 86, 92, 92, 91, 80, 73, 94, 155, 151, 152, 84, 99, 122, 94, 96, 143, 135, 138, 153, 91, 98, 164, 150, 136, 143, 149, 91, 164, 133, 96, 134, 146, 83, 100, 94, 154, 93, 80, 78, 139, 139, 94, 140, 138, 108, 144, 109, 140, 93, 136, 139, 86, 143, 142, 104, 89, 145, 134, 140, 136, 91, 81, 144, 97, 134, 95, 150, 140, 86, 138, 150, 141, 139, 136, 84, 86, 87, 98, 56, 173, 139, 142, 180, 143, 137, 94, 148, 67, 91, 138, 25, 137, 83, 156, 131, 89, 136, 138, 131, 86, 135, 131, 153, 157, 75, 151, 82, 81, 88, 95, 165, 90, 156, 158, 76, 181, 169, 164, 150, 89, 88, 165, 149, 149, 74, 166, 87, 150, 129, 154, 82, 176, 166, 116, 151, 89, 91, 89, 180, 88, 174, 150, 67, 154, 153, 190, 103, 89, 129, 160, 59, 83, 81, 143, 148, 146, 145, 89, 149, 76, 151, 87, 90, 152, 161, 151, 76, 160, 95, 108, 168, 146, 175, 154, 152, 155, 149, 77, 76, 87, 157, 126, 89, 28, 138, 146, 157, 74, 122, 79, 152, 162, 153, 83, 87, 145, 80, 83, 165, 69, 144, 88, 126, 91, 157, 86, 148, 186, 153, 151, 168, 171, 170, 87, 87, 91, 160, 76, 141, 71, 99, 165, 126, 153, 137, 158, 88, 82, 82, 145, 92, 153, 159, 77, 153, 83, 77, 170, 93, 78, 85, 86, 104, 157, 148, 89, 170, 144, 152, 71, 75, 86, 87, 173, 92, 86, 156, 148, 143, 62, 152, 141, 90, 163, 76, 162, 82, 146, 140, 159, 140, 161, 202, 72, 152, 85, 89, 156, 176, 194, 150, 151, 69, 90, 150, 153, 104, 101, 158, 154, 146, 78, 192, 86, 153, 80, 122, 159, 132, 167, 146, 91, 81, 76, 85, 135, 98, 165, 160, 162, 79, 79, 86, 85, 77, 90, 26, 150, 156, 143, 158, 145, 153, 163, 162, 86, 164, 58, 77, 85, 183, 149, 78, 75, 170, 158, 84, 154, 91, 86, 152, 155, 142, 72, 151, 145, 151, 78, 148, 84, 89, 63, 143, 162, 89, 75, 73, 151, 147, 151, 86, 150, 156, 125, 141, 141, 94, 182, 116, 106, 160, 86, 150, 91, 142, 84, 158, 71, 163, 148, 126, 79, 159, 153, 148, 68, 172, 111, 145, 93, 148, 90, 178, 147, 88, 90, 92, 79, 146, 84, 166, 78, 94, 157, 150, 156, 95, 142, 152, 150, 81, 93, 162, 165, 155, 152, 157, 169, 156, 87, 89, 159, 84, 92, 82, 87, 150, 148, 147, 79, 166, 134, 88, 88, 156, 86, 145, 172, 79, 164, 83, 183, 65, 153, 82, 168, 149, 79, 153, 156, 83, 94, 92, 88, 86, 87, 146, 64, 94, 98, 92, 83, 86, 94, 148, 76, 82, 153, 148, 174, 174, 161, 173, 159, 87, 136, 148, 145, 150, 85, 91, 98, 101, 83, 82, 142, 164, 78, 76, 155, 160, 164, 170, 90, 100, 90, 89, 159, 84, 83, 74, 89, 80, 82, 158, 84, 88, 154, 148, 140, 156, 103, 82, 88, 90, 92, 75, 70, 92, 164, 181, 166, 82, 96, 130, 90, 89, 147, 137, 149, 162, 89, 91, 159, 167, 144, 156, 151, 89, 64, 145, 91, 137, 161, 75, 93, 84, 158, 92, 79, 73, 149, 150, 87, 152, 149, 104, 155, 107, 151, 91, 143, 161, 85, 150, 157, 102, 85, 158, 139, 150, 148, 85, 71, 164, 95, 146, 86, 170, 175, 69, 145, 149, 159, 145, 148, 75, 74, 83, 97, 59, 200, 154, 149, 178, 161, 155, 92, 153, 43, 85, 153, 67, 141, 78, 163, 138, 85, 144, 150, 138, 86, 137, 138, 169, 138, 94, 131, 97, 89, 98, 101, 133, 104, 131, 144, 89, 147, 79, 144, 127, 100, 97, 135, 116, 131, 91, 141, 99, 131, 115, 133, 105, 142, 141, 150, 126, 96, 98, 99, 141, 100, 154, 132, 81, 134, 131, 151, 108, 103, 129, 138, 102, 97, 94, 131, 129, 132, 128, 95, 128, 92, 143, 101, 89, 134, 125, 131, 89, 137, 104, 96, 150, 129, 144, 131, 145, 134, 137, 93, 97, 98, 136, 116, 97, 14, 126, 128, 126, 86, 164, 97, 134, 142, 141, 95, 103, 136, 86, 95, 129, 92, 127, 103, 101, 99, 142, 93, 130, 162, 134, 133, 140, 137, 147, 103, 103, 101, 136, 89, 134, 98, 107, 142, 125, 130, 129, 150, 95, 98, 101, 134, 97, 139, 131, 96, 137, 98, 92, 137, 105, 101, 97, 103, 111, 145, 131, 97, 137, 134, 131, 90, 92, 99, 94, 130, 98, 94, 138, 126, 127, 106, 139, 133, 102, 146, 109, 137, 96, 117, 129, 131, 128, 141, 142, 104, 128, 101, 98, 137, 137, 143, 130, 130, 99, 99, 132, 137, 61, 107, 129, 133, 130, 109, 129, 92, 133, 92, 128, 139, 130, 139, 135, 104, 97, 96, 95, 98, 106, 152, 133, 136, 100, 92, 100, 93, 94, 102, 40, 134, 132, 130, 138, 130, 136, 149, 142, 97, 140, 98, 99, 100, 155, 130, 97, 99, 160, 139, 99, 133, 102, 96, 129, 131, 129, 102, 138, 133, 136, 93, 133, 96, 97, 100, 126, 134, 98, 96, 91, 136, 134, 135, 98, 135, 136, 119, 122, 123, 99, 145, 79, 111, 137, 98, 131, 78, 120, 98, 131, 84, 135, 141, 139, 96, 131, 130, 130, 90, 144, 43, 132, 105, 122, 100, 148, 123, 101, 99, 99, 94, 137, 100, 131, 95, 102, 135, 132, 139, 60, 131, 134, 137, 97, 101, 78, 137, 131, 131, 139, 146, 138, 105, 101, 133, 93, 97, 92, 97, 147, 128, 128, 99, 137, 135, 96, 103, 140, 94, 133, 144, 104, 133, 111, 158, 98, 131, 96, 143, 129, 102, 132, 135, 100, 101, 98, 100, 90, 98, 126, 92, 17, 105, 104, 99, 94, 104, 142, 95, 97, 130, 133, 143, 144, 146, 139, 149, 104, 41, 129, 133, 136, 100, 99, 107, 110, 95, 91, 124, 140, 95, 83, 135, 133, 131, 142, 101, 109, 90, 100, 138, 98, 99, 61, 94, 89, 99, 131, 94, 98, 129, 128, 125, 142, 91, 98, 99, 102, 99, 87, 86, 100, 147, 144, 128, 95, 102, 127, 102, 105, 129, 125, 131, 135, 96, 103, 150, 138, 128, 134, 138, 98, 149, 126, 102, 127, 133, 90, 102, 97, 142, 98, 99, 90, 131, 132, 72, 128, 132, 108, 133, 110, 129, 99, 127, 134, 95, 131, 130, 106, 98, 134, 130, 126, 131, 97, 88, 136, 105, 130, 100, 141, 123, 91, 125, 143, 130, 133, 129, 91, 92, 102, 104, 65, 152, 135, 133, 159, 132, 131, 99, 130, 102, 98, 126, 25, 132, 93, 147, 124, 94, 126, 126, 127, 97, 124, 124, 141};
+ model->setOperandValue(op17, op17_init, sizeof(uint8_t) * 4608);
+ static int32_t op19_init[] = {2015, 2252, -7158, -8776, 4559, -7675, -5317, 384, 15209, -2835, 2142, 6095, -7565, -12538, -5225, -3422, -8100, -3695, 7238, 2660, 3196, -4916, -156, 9310, -1848, -868, 8351, -13226, -1114, -3035, 10306, 7851, -2385, 6276, -9794, 1480, -7412, 1316, -3618, -9899, -9214, -372, -7151, -14155, 3060, 2623, -2391, -11752, 4557, -10514, -6892, -4725, -11796, -12758, 5265, -2845, -5437, -22236, -328, 7032, -999, -10355, -1750, -1393, -10252, 2409, 9349, -1490, 2425, 12795, -69, -8090, 2001, -4637, -8355, 2454, -3380, -3652, -3898, 4040, 4847, 2189, -14425, -7767, -8404, 498, 8005, -12186, -5052, 11295, 579, 2205, 8087, 17380, 10088, 5745, 4150, -1580, 13249, -1956, -19547, -6181, 2637, 18875, -11469, 2667, -3275, -5412, 8553, 7128, -11776, -1209, -3777, -2727, -10413, -20, -10772, -1840, -920, 7333, -8364, 3736, 7388, -3717, -4159, -7569, 9450, 1077, -1644, -7028, -8182, -2970, -1975, -8735, -2393, -8422, 576, -6755, -6628, -12845, -5175, 325, -6736, -11983, 6939, 7344, 3666, -1544, 6155, 1180, 18175, -11815, -6120, -852, -7652, 126, 7004, 4698, 637, -7, -787, -13464, -2172, -10907, 5264, -20194, -15871, 16337, -3785, 293, 4017, -1324, -2413, -9001, -12499, 303, 2535, 7808, 640, -6284, 4020, -8467, 5640, -8751, -4361, 9996, 4330, -4476, 3733, -9577, 5687, 1471, -6841, 1425, 4722, 5794, -12545, 28, 2502, 3420, -3327, 2330, -2030, -16410, 2811, 3040, -3917, -9085, -2482, -855, -14314, -3228, 8759, 3666, 2128, -5816, -4385, -6046, 4358, 14522, -5141, 4298, -10085, 1313, 5042, -9837, -5176, 4211, -10376, 10274, -1156, 6403, -5828, 530, -3070, 10123, -4485, -10962, -8548, 4519, -3071, -15821, -10075, -11862, -10904, 1195, -3726, -18396, -11586, -1307, -3809, -14013, 3268, -9379, -3719, -10583, 14427, 6777, 4493, -8848, 1861, 10176, 4933, 3939, -7013, -15711, -8088, 1929, 978, -4554, -3565, -4952, 4256, 1025, -14799, 8236, 13091, -8749, 3005, -4785, 1966, 3858, -4514, -1219, -7539, 10947, -9854, -8797, -8780, -559, 5350, -3313, 1490, -19392, -2878, 5595, -563, 3580, 138, -11224, -339, -2436, -4844, 3247, -2452, -155, 2602, -4253, -10425, 673, 973, -1356, 8257, -7715, -9053, 6263, 5693, -2888, -10434, -14476, 8996, 3974, 1697, -950, 10315, -1245, -1053, 13221, 4465, -7740, -8947, 14151, -1464, 7660, -3936, -5436, 6284, -10609, 402, 6692, -10092, -7954, -8152, 3760, 1362, 5695, 2578, 1484, -5728, -9467, -9278, -4715, 3064, -2701, 10140, -7187, -1516, -1093, 6538, -8702, 5540, 288, -2118, 5235, 2736, -7879, 4586, -1225, 324, 12652, -1873, -9351, -3049, 21486, 5615, -12413, -7555, -9166, 5662, -4058, 1662, 123, -4434, 13476, -9030, -3852, 2811, 291, -3347, 8229, -4678, 11540, 2186, 7657, 6897, -12147, -145, -5743, -3953, -4553, -8932, -1971, -9640, -7467, 5326, -6436, -3404, -6487, -1922, 9165, 2379, -434, -10381, -10608, 2033, -727, 4433, -567, -288, -9723, 585, -2541, -9758, -10890, -9931, -8111, 9953, 6454, 4790, 3272, -3882, -2203, -2482, 5380, -6697, 3194, -2475, -2556, -5794, -3945, -4251, 6926, 550, -18434, 4855, -8811, 12996, -9496, -13817, -9020, 8114, -2000, -11235, -1728, -11181, -7940, 6603, 7480, -2211, -269, 1192, -2016, 1352, -4957, -10558, 11818, -6506, -1329, -6263, 19626, -7816, -11878, -3475, 1090, 3447, -12815, -5922, -10138, 20317, -5177, -15506, -6306, 1683, -7149, -8539, -399, 19405, -5711, -5934, 2947, -9027, 6151, 1881, 1362, 2439, 8809, -9878, -14512, -8341, -7307, 13319, -1820, -7324, -5905, -2198, -7313, -10034, 7759, -1103, -7044, 1680, 6374, 413, -5637, -6159, -11429, -13, -2184, -851, -3434, 2923, -2983, 7193, -17795, 2659, -5515, -7116, 18826, 2776, 2131, -6273, -565, 4544, -11131, -9164, -9862, -6126, 1472, 2932, -683, -5630, -7113, 1107, -22390, 5581, -1861, -3289, -570, 3190, -8019, -15193, 3182, -8516, 1248, 4627, 847, 1997, -4343, -17602, 12533, 9275, -3592, 13751, -4753, -1401, 1997, -13854, -11211, -13422, -4810, 5100, -5142, 3930, -2696, 621, -22303, 2815, -12049, -8506, -6054, 3305, -14908, -7766, -9479, 11964, 10788, -7024, -4979, -2886, -15398, -1291, 3512, -7558, -9065, 3090, 4743, 6947, 1278, 2418, 3427, -16355, -1151, 3638, -8226, -510, -11155, -8883, -1178, 4843, -3068, -1674, 3312, -9140, -10707, -10252, 2334, -9146, 14804, -8260, 6643, 4350, 9588, -7330, -3797, -11959, -10415, -858, -6068, -4569, -7252, 5160, 11017, -3204, 2545, -4122, -12560, -9669, -11172, -5157, 8535, 591, -1464, -999, 13185, 2922, -9218, 5085, -4869, 11588, 5864, 13142, 1196, 134, 4274, -8770, 6691, -2992, -7509, 11057, -8046, 7639, 14175, -11756, -17655, -11116, -2081, 119, 4176, -452, -9193, -4134, 3892, -6229, -12621, 4992, -4063, -215, 4338, -2531, -5691, -7096, -7520, -2340, -3829, -3173, -6084, -8242, -1287, -15385, 4300, 2811, 2884, 6979, 327, 14929, -7135, -2547, -1782, 2092, -690, -7156, 12555, -2311, 7337, -5703, -3140, 8919, 17756, -2205, -17317, 3411, 2955, 2683, 2198, 2134, -885, 10004, -6617, 1073, -5433, 6128, 2013, -12654, 2876, -9768, 9206, -2512, -548, 5771, -115, 9395, 347, 1786, -7413, -16482, 492, 1094, 1139, 224, 5815, -2477, 2759, 4768, -494, -2869, 5862, -2120, -7374, -7948, -1195, 2197, 5307, -4387, 2993, -870, -6346, 6157, 14928, 6768, 1662, -8320, 12242, 328, 485, 8818, 4813, 12446, -3103, -408, 5475, 11316, -1681, 7434, 1859, -4472, -6705, -2977, -9611, -6032, 3841, -654, -4748, -6970, -2577, -4102, -6657, -4000, 3063, 3443, -5618, 7825, -4961, 3610, -9006, -9505, 20092, 5560, 2814, -912, -9223, -3918, -156, -3252, 9788, 4010, -4552, 8423, -7618, 14455, 679, 6497, -5419, -11296, -4373, 1843, -1989, 9821, -4905, 396, -4564, -6372, -3179, -8474, -9920, 1186, -3839, 7351, 2731, 1906, 6851, 5864, -5498, -952, -9006, 771, -12541, -4000, 8349, 12848, 681, 3041, -24218, -12361, 8259, -1687, 12058, -8572, -1332, -3764, 5303, 5340, -11955, -5030, -19354, 2981, 8525, 1967, 14051, -2067, -9199, 353, 204, -5343, -5072, 142, -4997, 8884, 5103, 6872, -3078, -4433, 2142, 4166, -2183, 11336, -1848, -9654, -8188, -6697, 3473, 9463, -10157, -11589, 3318, -2878, 918, 4404, -7680, -6912, -694, 4704, 6685, 1458, -7188, -3415, 5149, 7700, -5539, -3851, 11233, 4931, 1676, 1044, 3808, 20480, -2081, -6706, 2301, -3442, -4577, 506, -3648, 4999, -3536, 5024, -10637, -5345, -654, -5961, -6026, 3945, -5708, -4514, 11307, -4489, 19877, -21637, 9481, -418, 725, 2338, -4296, -555, -439, -2610, 3675, -4372, -3780, -8943, 5844, 15973, 6270, 2650, 3198, -7859, -3533, 10754, -7711, -1566, -12184, -13692, -10986, 2511, -6056, 3907, -6377, -611, -2425, -2450, -1582, 2754, -620, 10811, -21355, -4777, -2347, -5633, -1801, 5910, 15548, -19099, 16361, -3143, -576, 2778, -5598, -745, 4320, -3632, 5622, -9353, -7684, 457, -1269, -7526, 19807, -9393, 1842, -4179, 8680, 6087, -7901, -844, 6684, 10195, -2014, 16421, 667, -5906, -10169, -9646, 1487, -3172, -12235, 2234, 2498, 3641, -8389, -502, -8895, -15624, -1820, 2568, -6705, 1715, -6761, -3740, -14603, 4914, -5038, 6961, -17590, 222, 2968};
+ model->setOperandValue(op19, op19_init, sizeof(int32_t) * 1024);
+ static uint8_t op20_init[] = {131, 133, 141, 143, 139, 138, 134, 138, 148, 128, 129, 146, 142, 136, 137, 134, 137, 147, 147, 135, 139, 130, 142, 131, 133, 138, 137, 138, 151, 136, 129, 135, 136, 140, 128, 128, 131, 140, 142, 145, 130, 138, 130, 134, 143, 131, 148, 144, 144, 133, 140, 141, 137, 136, 137, 140, 140, 138, 142, 139, 135, 135, 146, 142, 133, 142, 147, 132, 138, 134, 145, 144, 132, 135, 132, 144, 133, 137, 136, 139, 136, 136, 149, 140, 138, 137, 131, 140, 141, 142, 136, 124, 141, 126, 129, 144, 137, 135, 140, 141, 152, 142, 141, 137, 142, 140, 136, 130, 137, 141, 136, 145, 138, 132, 147, 139, 146, 146, 144, 142, 147, 142, 138, 139, 146, 138, 130, 137, 135, 135, 136, 144, 135, 140, 132, 140, 143, 141, 145, 136, 135, 142, 145, 138, 146, 141, 131, 143, 131, 145, 131, 140, 138, 148, 140, 140, 139, 138, 132, 135, 140, 137, 138, 144, 134, 139, 144, 136, 143, 136, 134, 143, 139, 139, 124, 145, 137, 135, 137, 135, 138, 153, 138, 133, 134, 133, 143, 133, 133, 153, 145, 142, 135, 147, 156, 145, 133, 149, 144, 150, 135, 145, 134, 141, 138, 156, 130, 128, 141, 127, 132, 145, 146, 142, 145, 131, 132, 133, 146, 128, 138, 143, 136, 130, 135, 133, 137, 139, 141, 148, 130, 138, 143, 139, 136, 133, 147, 140, 142, 136, 144, 138, 140, 159, 143, 126, 135, 144, 148, 136, 133, 135, 140, 142, 136, 135, 145, 145, 138, 140, 139, 138, 133, 143, 139, 132, 131, 138, 145, 145, 137, 136, 140, 145, 137, 143, 137, 138, 136, 132, 141, 139, 128, 133, 129, 138, 140, 150, 132, 134, 141, 130, 136, 146, 138, 136, 145, 153, 119, 141, 145, 134, 133, 129, 140, 131, 136, 140, 146, 137, 135, 139, 140, 137, 135, 134, 140, 135, 139, 134, 143, 147, 147, 133, 138, 138, 138, 140, 135, 134, 142, 136, 141, 129, 134, 141, 138, 138, 141, 131, 156, 133, 144, 142, 143, 146, 148, 146, 140, 148, 127, 123, 140, 150, 140, 132, 132, 135, 124, 136, 139, 139, 126, 140, 134, 142, 136, 148, 141, 137, 139, 134, 142, 146, 142, 154, 142, 138, 147, 132, 142, 140, 144, 147, 138, 138, 143, 134, 140, 150, 136, 134, 125, 136, 136, 136, 136, 138, 127, 145, 137, 140, 145, 140, 131, 148, 143, 134, 149, 132, 150, 148, 135, 131, 137, 150, 134, 138, 137, 138, 139, 137, 130, 145, 140, 139, 148, 142, 140, 142, 127, 137, 144, 142, 134, 139, 140, 135, 138, 141, 139, 133, 143, 136, 146, 142, 150, 135, 136, 134, 135, 129, 135, 142, 151, 146, 138, 140, 136, 136, 137, 139, 134, 136, 127, 132, 132, 141, 140, 141, 140, 142, 132, 131, 129, 135, 137, 137, 139, 145, 139, 133, 137, 139, 135, 141, 146, 136, 138, 139, 141, 140, 141, 132, 138, 156, 148, 136, 146, 136, 144, 138, 135, 139, 132, 132, 134, 143, 140, 135, 141, 150, 146, 143, 138, 131, 143, 134, 141, 136, 148, 127, 147, 143, 144, 143, 137, 144, 133, 136, 134, 146, 142, 141, 141, 137, 138, 135, 144, 133, 139, 144, 138, 146, 142, 137, 127, 145, 138, 134, 135, 143, 133, 139, 139, 144, 144, 132, 137, 133, 139, 128, 132, 134, 140, 145, 135, 144, 139, 144, 136, 147, 147, 140, 140, 137, 126, 142, 135, 141, 137, 134, 144, 136, 148, 143, 139, 131, 138, 128, 141, 128, 138, 151, 135, 135, 137, 141, 142, 130, 142, 132, 134, 129, 131, 142, 137, 151, 141, 136, 139, 135, 128, 134, 137, 140, 143, 143, 142, 136, 140, 141, 145, 137, 140, 133, 146, 138, 130, 148, 139, 147, 136, 130, 143, 137, 145, 139, 134, 132, 133, 133, 150, 139, 134, 134, 136, 133, 128, 137, 137, 143, 141, 134, 141, 134, 141, 139, 141, 136, 137, 141, 130, 137, 144, 148, 141, 134, 141, 138, 142, 140, 133, 136, 144, 136, 151, 135, 142, 138, 134, 133, 145, 133, 131, 137, 136, 142, 134, 135, 129, 137, 135, 135, 131, 137, 142, 139, 137, 153, 142, 148, 142, 145, 134, 129, 131, 141, 152, 133, 138, 140, 135, 145, 147, 138, 144, 138, 133, 143, 141, 143, 133, 135, 138, 137, 139, 132, 144, 138, 148, 130, 148, 139, 143, 133, 132, 144, 137, 138, 137, 140, 129, 139, 147, 146, 130, 130, 125, 137, 135, 139, 135, 134, 141, 133, 134, 147, 135, 135, 136, 134, 146, 149, 144, 133, 141, 138, 135, 136, 137, 138, 156, 144, 136, 147, 144, 143, 136, 143, 146, 140, 139, 156, 146, 136, 132, 128, 136, 130, 133, 134, 138, 139, 139, 134, 141, 138, 136, 141, 135, 145, 129, 146, 131, 137, 135, 134, 136, 136, 133, 131, 134, 135, 132, 142, 136, 134, 135, 143, 136, 135, 144, 127, 136, 130, 134, 138, 128, 136, 134, 142, 142, 148, 147, 147, 142, 139, 133, 137, 142, 133, 139, 143, 138, 138, 143, 135, 134, 132, 138, 148, 137, 147, 143, 134, 138, 135, 139, 138, 146, 132, 141, 148, 132, 136, 138, 142, 145, 147, 136, 144, 128, 134, 137, 139, 156, 141, 136, 140, 137, 145, 140, 135, 138, 142, 142, 138, 135, 134, 132, 139, 134, 145, 136, 136, 137, 133, 141, 142, 145, 146, 139, 132, 144, 146, 141, 143, 141, 135, 145, 142, 128, 136, 142, 130, 137, 147, 137, 139, 137, 131, 140, 135, 141, 145, 137, 144, 142, 138, 142, 137, 136, 141, 146, 139, 144, 144, 138, 133, 137, 144, 140, 135, 146, 136, 142, 142, 142, 127, 130, 140, 141, 132, 148, 132, 136, 142, 130, 139, 140, 138, 146, 151, 144, 129, 139, 134, 136, 138, 140, 131, 143, 133, 146, 143, 136, 151, 133, 139, 139, 142, 137, 128, 148, 147, 139, 139, 135, 148, 139, 147, 132, 137, 142, 134, 133, 131, 131, 149, 135, 139, 130, 143, 150, 144, 126, 144, 134, 142, 145, 142, 135, 137, 130, 146, 145, 139, 150, 137, 135, 147, 142, 146, 136, 136, 133, 142, 144, 134, 140, 146, 131, 129, 147, 131, 138, 141, 134, 142, 133, 130, 144, 145, 134, 146, 142, 140, 135, 140, 139, 147, 145, 144, 141, 144, 138, 136, 135, 148, 134, 133, 145, 134, 136, 143, 143, 140, 141, 141, 136, 139, 150, 147, 137, 134, 136, 144, 140, 140, 147, 145, 146, 148, 147, 143, 129, 133, 141, 133, 136, 135, 148, 140, 138, 138, 138, 141, 150, 154, 138, 133, 137, 139, 141, 136, 137, 144, 145, 140, 128, 138, 139, 138, 134, 135, 129, 132, 137, 139, 128, 161, 144, 140, 142, 145, 147, 146, 147, 130, 147, 144, 138, 136, 136, 141, 132, 144, 139, 149, 142, 142, 146, 144, 137, 132, 134, 145, 127, 126, 128, 132, 133, 135, 137, 142, 127, 141, 140, 144, 148, 139, 153, 134, 137, 139, 138, 141, 139, 152, 150, 144, 148, 130, 143, 127, 135, 136, 144, 146, 138, 143, 135, 144, 136, 144, 138, 145, 137, 136, 150, 138, 131, 136, 137, 148, 146, 134, 139, 151, 136, 138, 135, 147, 144, 143, 134, 140, 139, 140, 133, 154, 133, 146, 140, 134, 144, 135, 140, 135, 132, 140, 132, 149, 134, 135, 140, 139, 131, 139, 132, 145, 151, 135, 141, 128, 134, 139, 139, 139, 138, 139, 141, 124, 142, 137, 136, 143, 146, 135, 131, 146, 145, 136, 144, 132, 135, 138, 138, 153, 142, 125, 142, 140, 141, 141, 144, 139, 132, 156, 146, 133, 138, 131, 141, 135, 145, 137, 140, 135, 151, 137, 136, 130, 140, 135, 139, 131, 137, 141, 139, 136, 142, 140, 139, 129, 143, 139, 138, 144, 156, 138, 139, 149, 149, 148, 128, 147, 142, 145, 143, 125, 127, 142, 145, 138, 146, 127, 139, 132, 142, 142, 125, 142, 138, 135, 144, 142, 140, 162, 141, 131, 128, 144, 144, 134, 144, 127, 146, 148, 133, 141, 136, 144, 132, 142, 141, 136, 150, 142, 149, 141, 137, 143, 146, 140, 131, 141, 139, 133, 138, 149, 135, 136, 129, 123, 134, 140, 134, 143, 145, 147, 138, 139, 141, 129, 132, 150, 145, 144, 144, 136, 152, 134, 149, 137, 138, 140, 136, 131, 140, 142, 147, 129, 139, 142, 152, 140, 130, 139, 142, 134, 133, 137, 151, 131, 141, 140, 136, 136, 139, 135, 143, 131, 137, 150, 152, 141, 132, 136, 140, 143, 143, 136, 134, 140, 137, 139, 128, 132, 133, 136, 143, 136, 134, 136, 132, 137, 128, 140, 127, 134, 137, 141, 137, 126, 164, 141, 135, 148, 140, 134, 143, 132, 150, 144, 139, 128, 139, 136, 139, 135, 134, 141, 132, 138, 151, 138, 135, 143, 136, 137, 147, 131, 140, 151, 139, 148, 136, 132, 144, 144, 138, 136, 142, 153, 137, 143, 141, 151, 134, 130, 145, 137, 140, 142, 137, 137, 144, 153, 142, 143, 138, 137, 139, 131, 143, 140, 141, 137, 156, 136, 136, 135, 144, 126, 138, 140, 156, 137, 135, 152, 133, 139, 136, 140, 140, 140, 130, 144, 127, 138, 131, 142, 138, 129, 130, 140, 132, 148, 139, 136, 140, 137, 144, 135, 134, 140, 141, 137, 140, 138, 141, 129, 138, 141, 147, 140, 137, 141, 142, 145, 132, 134, 136, 134, 141, 133, 144, 142, 135, 133, 130, 142, 143, 138, 138, 130, 138, 142, 142, 139, 153, 139, 136, 131, 125, 132, 128, 140, 139, 142, 139, 136, 141, 133, 139, 141, 135, 149, 130, 141, 142, 141, 135, 138, 137, 142, 132, 138, 139, 142, 129, 140, 140, 142, 141, 133, 149, 135, 134, 142, 139, 136, 138, 133, 128, 140, 144, 137, 138, 141, 135, 138, 141, 134, 136, 138, 141, 138, 135, 146, 136, 140, 137, 146, 138, 144, 139, 139, 138, 134, 137, 139, 135, 142, 146, 140, 135, 135, 136, 137, 135, 136, 135, 135, 140, 131, 138, 146, 135, 140, 134, 142, 136, 135, 145, 141, 140, 138, 146, 129, 141, 126, 149, 132, 131, 135, 137, 135, 138, 140, 135, 140, 138, 137, 141, 137, 140, 136, 149, 137, 135, 137, 152, 138, 137, 137, 134, 144, 136, 143, 153, 136, 145, 134, 144, 143, 132, 144, 141, 143, 135, 135, 136, 137, 141, 141, 127, 140, 138, 135, 136, 131, 143, 131, 134, 142, 134, 144, 141, 135, 148, 140, 134, 146, 137, 138, 137, 144, 139, 130, 136, 142, 135, 147, 142, 133, 144, 143, 132, 135, 144, 136, 148, 135, 147, 136, 134, 141, 145, 139, 139, 134, 133, 134, 143, 134, 142, 139, 144, 135, 137, 139, 138, 138, 137, 146, 133, 135, 136, 136, 141, 139, 140, 142, 138, 135, 140, 142, 133, 140, 138, 138, 147, 146, 142, 142, 143, 140, 137, 131, 139, 144, 130, 144, 140, 144, 143, 142, 141, 137, 134, 144, 140, 145, 139, 140, 146, 135, 135, 140, 138, 147, 142, 133, 133, 141, 136, 140, 133, 137, 143, 139, 134, 137, 141, 132, 147, 134, 150, 141, 140, 139, 143, 138, 140, 144, 141, 134, 141, 141, 136, 136, 129, 142, 138, 146, 141, 141, 131, 144, 150, 138, 136, 133, 128, 147, 138, 137, 130, 151, 143, 142, 145, 147, 138, 142, 140, 134, 134, 140, 139, 136, 143, 142, 150, 139, 141, 143, 135, 147, 146, 130, 135, 140, 141, 139, 143, 143, 138, 137, 137, 142, 142, 140, 147, 130, 141, 143, 141, 132, 140, 136, 124, 147, 136, 141, 137, 143, 132, 142, 144, 137, 137, 133, 133, 157, 140, 135, 140, 137, 139, 145, 138, 140, 141, 146, 143, 140, 138, 142, 132, 140, 141, 132, 138, 136, 140, 139, 142, 131, 147, 137, 147, 142, 139, 139, 142, 128, 137, 142, 140, 139, 145, 146, 135, 137, 137, 138, 135, 146, 137, 135, 137, 129, 139, 142, 135, 143, 139, 152, 136, 137, 146, 141, 135, 137, 139, 141, 143, 139, 148, 132, 140, 141, 143, 138, 138, 140, 144, 137, 138, 135, 138, 137, 139, 126, 142, 138, 145, 140, 136, 138, 142, 146, 145, 136, 142, 136, 140, 135, 131, 135, 137, 139, 137, 145, 139, 136, 146, 148, 146, 130, 141, 137, 138, 135, 142, 139, 147, 132, 135, 135, 147, 136, 139, 138, 136, 137, 140, 143, 134, 140, 145, 150, 144, 142, 142, 140, 144, 138, 136, 138, 133, 142, 135, 145, 144, 146, 148, 137, 133, 141, 136, 133, 142, 132, 140, 137, 141, 140, 130, 143, 134, 131, 149, 141, 133, 137, 137, 137, 136, 139, 140, 135, 144, 142, 136, 148, 133, 142, 138, 137, 130, 135, 140, 139, 139, 131, 144, 137, 141, 149, 142, 139, 136, 138, 142, 132, 141, 139, 142, 141, 139, 138, 144, 147, 141, 136, 136, 147, 137, 140, 134, 134, 138, 142, 140, 138, 137, 140, 130, 137, 142, 138, 144, 144, 138, 142, 143, 134, 141, 143, 149, 141, 139, 140, 133, 140, 137, 132, 140, 133, 147, 136, 135, 136, 136, 132, 141, 140, 138, 141, 139, 140, 152, 133, 139, 137, 135, 138, 139, 140, 142, 138, 146, 144, 140, 152, 133, 141, 137, 131, 139, 136, 133, 134, 137, 140, 138, 141, 144, 132, 148, 132, 141, 143, 137, 133, 144, 134, 136, 141, 144, 142, 133, 143, 138, 145, 141, 142, 136, 135, 139, 144, 140, 135, 135, 142, 149, 133, 133, 140, 137, 141, 135, 135, 132, 133, 141, 138, 138, 133, 132, 145, 138, 141, 139, 134, 129, 133, 143, 145, 145, 142, 141, 142, 138, 139, 148, 148, 147, 144, 143, 143, 145, 138, 145, 131, 143, 129, 140, 143, 140, 137, 143, 148, 125, 140, 137, 136, 138, 143, 148, 140, 141, 135, 135, 142, 134, 148, 142, 145, 144, 141, 129, 147, 139, 145, 135, 135, 143, 144, 137, 140, 141, 142, 148, 140, 132, 135, 132, 141, 144, 139, 138, 142, 140, 140, 142, 138, 140, 135, 139, 139, 139, 145, 139, 134, 143, 137, 134, 142, 142, 142, 140, 143, 144, 137, 145, 144, 126, 142, 136, 145, 145, 134, 142, 145, 133, 141, 141, 132, 138, 142, 142, 149, 136, 134, 138, 142, 143, 136, 140, 136, 149, 143, 135, 149, 143, 135, 143, 144, 142, 137, 141, 147, 144, 134, 144, 144, 142, 137, 140, 137, 139, 144, 134, 139, 139, 141, 135, 143, 142, 135, 144, 122, 146, 137, 140, 138, 143, 144, 139, 136, 143, 138, 142, 138, 151, 148, 139, 134, 141, 146, 142, 149, 142, 145, 140, 137, 131, 143, 140, 136, 135, 129, 132, 141, 134, 145, 142, 136, 139, 144, 142, 144, 146, 145, 133, 138, 141, 137, 134, 131, 136, 135, 142, 136, 139, 132, 133, 142, 144, 141, 137, 141, 134, 133, 142, 139, 134, 143, 134, 138, 143, 139, 135, 139, 140, 140, 143, 135, 145, 141, 140, 138, 133, 135, 139, 140, 136, 144, 144, 137, 144, 141, 139, 143, 143, 124, 145, 137, 133, 136, 137, 140, 139, 133, 144, 142, 140, 145, 139, 140, 133, 135, 138, 135, 148, 137, 140, 138, 144, 124, 151, 139, 141, 141, 144, 138, 142, 133, 134, 134, 138, 139, 135, 139, 142, 140, 151, 138, 144, 140, 135, 145, 143, 127, 137, 144, 140, 138, 144, 139, 142, 134, 135, 139, 145, 137, 131, 140, 136, 133, 137, 140, 141, 137, 134, 138, 132, 142, 152, 134, 139, 138, 135, 140, 140, 146, 145, 134, 138, 135, 136, 133, 144, 134, 140, 150, 137, 141, 139, 138, 141, 139, 136, 136, 145, 136, 138, 141, 144, 138, 142, 147, 131, 143, 136, 140, 136, 142, 136, 136, 145, 141, 128, 140, 132, 135, 140, 141, 130, 140, 142, 136, 133, 151, 149, 145, 130, 137, 138, 135, 141, 132, 141, 144, 139, 132, 142, 144, 140, 139, 147, 141, 138, 144, 138, 132, 139, 141, 145, 141, 139, 140, 141, 146, 139, 136, 146, 135, 138, 146, 137, 135, 136, 140, 135, 139, 139, 138, 135, 142, 140, 133, 132, 139, 142, 141, 139, 143, 139, 137, 136, 138, 139, 134, 139, 135, 140, 132, 148, 140, 135, 126, 137, 134, 135, 139, 132, 137, 137, 145, 139, 136, 137, 136, 139, 140, 147, 145, 139, 132, 140, 147, 135, 147, 151, 144, 134, 148, 137, 138, 136, 141, 141, 137, 133, 134, 131, 134, 143, 133, 136, 138, 146, 140, 135, 140, 138, 137, 137, 137, 136, 132, 141, 138, 138, 142, 141, 140, 136, 135, 131, 142, 132, 139, 137, 138, 137, 131, 133, 133, 142, 129, 139, 139, 144, 143, 138, 141, 132, 136, 135, 138, 145, 134, 142, 146, 133, 129, 139, 138, 139, 143, 137, 136, 154, 141, 138, 138, 136, 134, 142, 136, 142, 139, 134, 142, 139, 139, 136, 135, 138, 145, 139, 139, 137, 143, 144, 139, 144, 133, 134, 141, 132, 131, 137, 144, 134, 137, 142, 141, 140, 148, 138, 135, 136, 137, 138, 140, 137, 137, 139, 136, 135, 148, 135, 140, 142, 138, 138, 135, 134, 137, 138, 145, 133, 140, 144, 138, 133, 130, 140, 143, 142, 142, 131, 134, 139, 144, 137, 138, 139, 140, 131, 143, 141, 140, 143, 136, 136, 136, 146, 139, 142, 150, 139, 135, 145, 134, 138, 140, 146, 135, 145, 143, 140, 132, 146, 134, 138, 136, 136, 138, 137, 139, 139, 138, 145, 148, 143, 137, 144, 138, 138, 142, 134, 143, 142, 138, 136, 144, 145, 142, 142, 130, 137, 146, 131, 144, 147, 134, 148, 136, 145, 136, 137, 138, 138, 131, 136, 144, 143, 141, 140, 142, 141, 136, 135, 140, 137, 138, 143, 136, 127, 143, 139, 140, 139, 142, 144, 148, 145, 133, 133, 144, 139, 139, 139, 151, 139, 140, 133, 136, 143, 133, 147, 140, 139, 140, 139, 132, 140, 142, 140, 133, 139, 136, 131, 136, 140, 138, 141, 134, 132, 137, 131, 141, 129, 138, 142, 133, 137, 136, 146, 134, 139, 140, 135, 140, 137, 146, 141, 129, 139, 143, 143, 139, 135, 144, 140, 143, 140, 142, 147, 142, 144, 136, 134, 139, 145, 139, 138, 146, 140, 140, 144, 136, 140, 136, 139, 138, 135, 136, 138, 136, 137, 142, 135, 143, 145, 131, 141, 144, 136, 148, 140, 139, 131, 135, 141, 133, 135, 135, 137, 143, 128, 139, 141, 146, 137, 142, 143, 145, 132, 139, 140, 134, 138, 134, 133, 140, 135, 134, 134, 132, 132, 135, 132, 138, 131, 140, 140, 137, 141, 131, 143, 143, 132, 137, 136, 153, 139, 139, 145, 136, 146, 138, 144, 140, 125, 142, 140, 131, 142, 120, 137, 145, 139, 135, 140, 146, 141, 141, 137, 135, 133, 138, 129, 135, 137, 137, 140, 138, 122, 138, 147, 141, 141, 132, 131, 134, 138, 134, 138, 139, 151, 142, 131, 134, 137, 133, 137, 133, 136, 142, 140, 133, 134, 134, 120, 135, 132, 139, 131, 140, 143, 134, 132, 138, 143, 132, 143, 136, 149, 145, 132, 137, 136, 140, 142, 136, 151, 136, 134, 134, 129, 135, 148, 148, 130, 131, 132, 142, 143, 134, 138, 141, 146, 137, 138, 135, 127, 139, 136, 144, 137, 141, 123, 131, 135, 133, 151, 134, 143, 140, 149, 144, 135, 136, 132, 133, 139, 146, 140, 148, 137, 140, 150, 130, 142, 131, 144, 136, 142, 147, 137, 133, 136, 141, 139, 135, 133, 144, 140, 138, 130, 132, 132, 138, 147, 145, 140, 132, 135, 133, 131, 145, 145, 139, 135, 142, 132, 139, 134, 139, 143, 138, 146, 137, 131, 139, 135, 129, 139, 132, 129, 152, 139, 129, 138, 153, 129, 147, 140, 126, 141, 146, 134, 148, 144, 143, 138, 133, 124, 144, 148, 136, 137, 138, 144, 142, 140, 134, 147, 137, 140, 145, 135, 134, 150, 140, 141, 137, 135, 133, 141, 137, 143, 133, 139, 140, 139, 137, 135, 145, 141, 146, 138, 139, 135, 135, 135, 130, 150, 134, 138, 147, 136, 150, 128, 138, 134, 138, 136, 146, 150, 142, 140, 142, 146, 138, 142, 140, 137, 133, 139, 136, 134, 131, 149, 155, 140, 126, 145, 133, 141, 137, 132, 140, 140, 137, 130, 134, 131, 147, 142, 139, 145, 139, 136, 142, 137, 131, 138, 135, 143, 142, 127, 135, 138, 131, 143, 138, 141, 136, 144, 144, 145, 127, 133, 147, 136, 145, 138, 143, 149, 146, 141, 135, 147, 140, 149, 138, 138, 136, 140, 153, 141, 138, 138, 147, 139, 140, 150, 141, 137, 135, 133, 131, 140, 139, 146, 140, 125, 142, 144, 134, 148, 137, 136, 128, 131, 138, 137, 142, 147, 143, 138, 140, 140, 128, 137, 122, 136, 141, 140, 134, 149, 129, 153, 138, 142, 134, 140, 137, 138, 136, 142, 145, 130, 137, 137, 151, 141, 130, 136, 153, 135, 134, 148, 132, 131, 132, 127, 137, 139, 143, 145, 131, 142, 128, 129, 142, 138, 132, 145, 137, 143, 136, 142, 135, 139, 142, 135, 138, 137, 141, 146, 147, 132, 128, 138, 141, 139, 132, 139, 135, 131, 147, 140, 140, 138, 132, 138, 124, 126, 142, 133, 143, 143, 150, 134, 147, 143, 128, 142, 132, 147, 138, 140, 134, 134, 134, 139, 137, 127, 138, 140, 132, 141, 141, 148, 134, 134, 147, 139, 147, 131, 127, 138, 145, 148, 137, 139, 141, 137, 154, 134, 143, 135, 146, 135, 128, 135, 146, 139, 141, 140, 133, 143, 146, 139, 142, 135, 130, 137, 140, 136, 130, 134, 140, 144, 135, 135, 134, 141, 142, 130, 139, 145, 142, 141, 140, 149, 146, 140, 140, 138, 146, 141, 140, 136, 137, 144, 137, 134, 137, 139, 142, 130, 142, 136, 138, 146, 142, 143, 135, 144, 143, 137, 137, 137, 138, 138, 142, 144, 138, 142, 140, 138, 146, 137, 142, 135, 140, 137, 140, 142, 139, 139, 145, 139, 138, 138, 133, 168, 142, 138, 139, 145, 136, 153, 143, 138, 147, 132, 144, 138, 136, 134, 146, 146, 140, 135, 128, 135, 140, 134, 135, 143, 147, 140, 142, 140, 137, 140, 144, 137, 144, 139, 146, 140, 143, 142, 142, 145, 140, 141, 140, 137, 139, 129, 141, 135, 140, 146, 142, 140, 139, 137, 139, 143, 138, 145, 139, 136, 144, 142, 142, 139, 142, 143, 139, 135, 141, 142, 136, 146, 138, 142, 136, 145, 142, 142, 141, 136, 137, 144, 142, 139, 144, 138, 144, 141, 142, 134, 150, 141, 140, 136, 147, 132, 139, 137, 140, 139, 141, 140, 135, 144, 123, 146, 138, 139, 137, 135, 138, 132, 137, 133, 141, 144, 139, 143, 141, 133, 137, 138, 139, 141, 140, 137, 155, 140, 142, 139, 143, 138, 139, 140, 138, 142, 141, 141, 140, 137, 143, 137, 142, 135, 142, 138, 145, 132, 138, 140, 138, 139, 141, 136, 140, 140, 143, 141, 145, 138, 132, 135, 139, 146, 142, 133, 137, 142, 143, 145, 138, 145, 133, 144, 140, 143, 144, 133, 139, 146, 140, 145, 143, 136, 139, 143, 144, 138, 136, 143, 141, 140, 146, 137, 139, 144, 135, 140, 122, 134, 143, 140, 134, 138, 135, 134, 147, 145, 136, 144, 143, 141, 140, 135, 137, 138, 143, 129, 140, 144, 141, 139, 140, 138, 137, 134, 134, 147, 139, 135, 140, 136, 141, 141, 142, 144, 125, 135, 145, 135, 146, 140, 145, 136, 142, 133, 139, 139, 135, 140, 143, 140, 145, 141, 136, 138, 146, 143, 142, 142, 140, 137, 138, 140, 140, 141, 136, 136, 144, 149, 149, 137, 133, 129, 134, 142, 140, 133, 140, 141, 142, 140, 131, 136, 132, 143, 140, 143, 141, 136, 136, 139, 141, 147, 143, 136, 140, 146, 142, 144, 146, 136, 143, 141, 141, 149, 140, 148, 136, 142, 146, 137, 143, 141, 142, 139, 147, 142, 141, 139, 139, 138, 139, 141, 141, 146, 137, 143, 141, 128, 143, 139, 139, 142, 141, 139, 137, 141, 137, 142, 141, 150, 140, 135, 139, 141, 144, 143, 136, 141, 137, 141, 138, 138, 144, 144, 139, 137, 137, 140, 141, 135, 138, 138, 145, 140, 146, 142, 139, 127, 136, 141, 143, 138, 138, 140, 138, 141, 135, 144, 144, 146, 137, 137, 137, 140, 139, 141, 148, 139, 145, 138, 141, 137, 135, 139, 142, 147, 141, 142, 144, 140, 140, 139, 141, 139, 142, 138, 136, 144, 141, 139, 139, 145, 143, 141, 139, 139, 139, 140, 139, 138, 139, 140, 138, 142, 139, 137, 139, 138, 144, 141, 135, 138, 140, 134, 136, 130, 136, 140, 141, 137, 134, 136, 139, 138, 147, 136, 142, 140, 134, 141, 139, 145, 139, 142, 134, 145, 140, 137, 133, 136, 140, 138, 145, 142, 139, 133, 139, 144, 140, 144, 140, 143, 143, 143, 135, 134, 130, 139, 129, 148, 132, 134, 138, 140, 139, 138, 148, 140, 133, 133, 138, 133, 137, 134, 136, 145, 137, 144, 146, 135, 137, 130, 136, 143, 135, 139, 142, 129, 135, 139, 142, 141, 136, 139, 137, 133, 140, 145, 132, 142, 142, 135, 140, 139, 131, 146, 140, 136, 141, 140, 135, 140, 133, 136, 142, 137, 142, 142, 140, 136, 140, 139, 142, 135, 142, 134, 152, 142, 143, 139, 142, 151, 148, 124, 137, 134, 134, 150, 130, 138, 144, 141, 139, 139, 139, 139, 140, 145, 141, 147, 141, 142, 141, 137, 139, 134, 139, 137, 135, 143, 137, 136, 138, 137, 145, 137, 136, 140, 137, 126, 141, 134, 142, 137, 139, 139, 140, 140, 134, 138, 135, 133, 136, 139, 144, 141, 141, 132, 136, 142, 137, 142, 141, 135, 142, 146, 142, 136, 142, 135, 135, 140, 136, 135, 148, 138, 145, 144, 133, 143, 140, 147, 139, 140, 139, 143, 140, 138, 137, 139, 137, 135, 142, 151, 138, 151, 143, 133, 145, 128, 141, 139, 140, 128, 133, 134, 144, 131, 142, 141, 136, 142, 144, 136, 136, 137, 138, 141, 134, 135, 152, 134, 137, 142, 141, 143, 145, 132, 142, 131, 139, 134, 140, 138, 138, 138, 139, 146, 132, 133, 129, 138, 135, 137, 134, 142, 141, 141, 139, 142, 142, 146, 137, 138, 136, 132, 134, 139, 142, 140, 145, 136, 149, 136, 130, 144, 139, 136, 144, 136, 136, 143, 141, 139, 138, 144, 139, 142, 143, 145, 146, 136, 137, 142, 142, 143, 144, 135, 132, 139, 141, 139, 136, 136, 133, 141, 141, 142, 131, 139, 140, 143, 144, 137, 133, 130, 141, 142, 135, 131, 133, 137, 146, 141, 134, 141, 147, 133, 136, 138, 145, 134, 135, 139, 139, 145, 144, 139, 133, 139, 132, 141, 140, 133, 136, 132, 140, 140, 142, 140, 129, 141, 132, 147, 144, 142, 141, 145, 145, 135, 135, 139, 141, 139, 139, 136, 138, 139, 137, 140, 138, 137, 138, 138, 146, 140, 127, 139, 137, 137, 139, 141, 147, 139, 136, 138, 137, 141, 142, 136, 142, 141, 143, 131, 138, 141, 144, 136, 141, 147, 142, 136, 134, 140, 132, 137, 138, 139, 133, 140, 146, 139, 143, 143, 148, 139, 137, 141, 136, 142, 133, 134, 138, 138, 141, 136, 125, 135, 140, 139, 147, 141, 143, 137, 140, 137, 139, 132, 137, 143, 148, 137, 145, 143, 130, 141, 134, 144, 130, 129, 138, 139, 139, 142, 142, 138, 148, 136, 140, 141, 138, 141, 143, 132, 139, 144, 142, 135, 135, 134, 136, 136, 135, 139, 137, 150, 136, 139, 144, 145, 130, 143, 138, 135, 142, 136, 136, 142, 147, 139, 137, 139, 135, 140, 139, 142, 139, 147, 133, 140, 134, 150, 142, 143, 134, 145, 141, 132, 149, 146, 136, 146, 134, 133, 143, 139, 139, 136, 136, 146, 141, 129, 144, 140, 135, 145, 136, 147, 138, 136, 132, 140, 132, 139, 146, 145, 129, 135, 140, 147, 146, 139, 146, 141, 134, 138, 142, 143, 139, 134, 130, 133, 135, 138, 133, 140, 135, 142, 144, 143, 141, 140, 135, 135, 141, 134, 146, 133, 142, 146, 147, 137, 141, 139, 139, 134, 135, 140, 138, 127, 133, 143, 136, 142, 139, 152, 147, 136, 133, 131, 136, 146, 145, 136, 134, 138, 144, 146, 129, 131, 138, 140, 140, 151, 143, 139, 139, 130, 138, 138, 142, 146, 133, 147, 144, 139, 130, 144, 135, 142, 140, 136, 150, 132, 126, 131, 137, 140, 135, 141, 132, 135, 135, 133, 142, 140, 135, 135, 132, 140, 147, 134, 142, 153, 138, 139, 136, 142, 146, 142, 144, 131, 139, 140, 138, 145, 131, 139, 141, 141, 142, 132, 140, 150, 137, 142, 150, 136, 141, 136, 137, 132, 143, 132, 137, 136, 130, 132, 128, 136, 133, 132, 148, 130, 135, 141, 132, 135, 133, 143, 147, 142, 133, 135, 140, 138, 144, 133, 136, 136, 140, 150, 138, 135, 131, 138, 143, 128, 135, 145, 131, 134, 144, 146, 135, 143, 138, 138, 142, 140, 140, 146, 144, 140, 137, 129, 140, 134, 140, 137, 131, 141, 142, 140, 142, 138, 145, 128, 133, 139, 134, 146, 135, 137, 137, 139, 143, 136, 140, 128, 132, 139, 139, 137, 135, 130, 131, 136, 144, 147, 131, 141, 139, 135, 149, 142, 139, 138, 134, 137, 128, 129, 139, 138, 141, 137, 139, 136, 135, 133, 137, 144, 149, 140, 138, 140, 149, 145, 137, 134, 138, 148, 138, 133, 139, 132, 133, 140, 132, 140, 138, 138, 134, 138, 148, 137, 136, 146, 134, 137, 130, 146, 143, 140, 145, 134, 137, 135, 137, 136, 139, 145, 136, 126, 138, 144, 136, 149, 136, 129, 136, 140, 135, 135, 139, 150, 148, 132, 137, 134, 131, 136, 128, 137, 138, 140, 138, 137, 149, 141, 134, 143, 140, 132, 134, 133, 141, 139, 144, 137, 145, 146, 142, 135, 147, 142, 139, 140, 138, 137, 141, 148, 141, 143, 141, 137, 140, 141, 143, 146, 143, 136, 146, 139, 135, 141, 139, 135, 139, 133, 140, 139, 130, 132, 149, 150, 136, 154, 138, 143, 136, 138, 136, 139, 140, 144, 139, 136, 134, 137, 147, 147, 130, 135, 144, 134, 138, 130, 133, 137, 139, 140, 135, 140, 134, 142, 144, 143, 141, 140, 138, 143, 141, 141, 141, 138, 139, 137, 140, 135, 132, 131, 138, 129, 132, 148, 142, 142, 143, 148, 137, 139, 143, 141, 132, 142, 147, 136, 139, 131, 150, 139, 147, 141, 131, 135, 142, 143, 127, 135, 142, 143, 137, 146, 141, 142, 138, 146, 136, 135, 134, 135, 132, 138, 141, 143, 127, 127, 144, 142, 142, 134, 136, 147, 129, 136, 133, 138, 131, 142, 144, 133, 133, 132, 143, 135, 141, 132, 142, 149, 148, 133, 143, 141, 140, 137, 142, 140, 143, 146, 130, 144, 136, 128, 146, 143, 148, 134, 139, 143, 129, 136, 146, 137, 137, 139, 140, 141, 142, 138, 140, 131, 144, 146, 143, 136, 142, 136, 139, 138, 143, 149, 138, 146, 142, 140, 133, 137, 140, 133, 137, 134, 143, 129, 142, 138, 136, 138, 135, 136, 137, 143, 141, 150, 141, 142, 144, 131, 123, 146, 140, 147, 141, 140, 135, 132, 138, 137, 144, 144, 130, 138, 139, 143, 136, 148, 140, 133, 140, 136, 141, 143, 141, 132, 142, 152, 134, 136, 127, 128, 144, 141, 139, 130, 136, 135, 135, 132, 142, 148, 141, 149, 136, 142, 137, 150, 136, 131, 140, 135, 139, 138, 129, 147, 133, 137, 130, 131, 127, 147, 138, 147, 141, 145, 139, 136, 138, 134, 136, 134, 139, 140, 144, 138, 136, 139, 141, 140, 140, 136, 146, 136, 137, 139, 139, 143, 143, 135, 137, 130, 140, 145, 130, 141, 125, 149, 136, 139, 140, 135, 150, 132, 138, 134, 140, 143, 131, 136, 132, 140, 139, 138, 140, 132, 134, 143, 133, 141, 142, 132, 136, 143, 138, 139, 155, 136, 136, 138, 130, 150, 134, 125, 126, 139, 142, 145, 136, 142, 140, 123, 135, 137, 142, 147, 138, 152, 135, 135, 134, 137, 143, 133, 150, 136, 145, 141, 128, 143, 127, 132, 144, 132, 133, 135, 137, 139, 136, 136, 141, 137, 132, 132, 135, 135, 136, 136, 143, 136, 146, 139, 138, 138, 142, 138, 137, 145, 139, 134, 131, 130, 143, 137, 143, 132, 140, 136, 134, 136, 139, 142, 143, 145, 140, 139, 123, 140, 133, 138, 144, 137, 146, 145, 138, 142, 143, 135, 146, 145, 135, 135, 143, 138, 134, 144, 141, 136, 135, 147, 140, 145, 140, 139, 132, 142, 143, 137, 136, 140, 131, 133, 138, 136, 137, 141, 136, 144, 139, 142, 143, 135, 136, 134, 145, 139, 139, 134, 136, 134, 147, 129, 133, 132, 139, 140, 139, 137, 145, 144, 146, 138, 136, 138, 138, 154, 133, 139, 137, 140, 134, 140, 138, 135, 135, 135, 142, 138, 130, 139, 143, 136, 134, 133, 143, 142, 145, 139, 154, 143, 138, 132, 133, 140, 144, 136, 139, 138, 137, 142, 144, 139, 143, 139, 141, 134, 145, 140, 139, 142, 134, 135, 129, 144, 136, 149, 138, 141, 147, 139, 143, 139, 139, 137, 139, 134, 127, 133, 137, 135, 134, 147, 138, 134, 124, 139, 143, 132, 141, 132, 137, 130, 142, 127, 139, 132, 132, 141, 134, 148, 135, 135, 145, 152, 138, 147, 137, 143, 136, 139, 138, 128, 137, 134, 136, 140, 134, 139, 138, 135, 141, 139, 134, 138, 146, 136, 137, 140, 137, 148, 140, 139, 132, 138, 132, 147, 130, 137, 143, 139, 137, 142, 140, 135, 151, 139, 137, 136, 147, 145, 139, 138, 134, 140, 139, 141, 147, 134, 142, 140, 134, 143, 141, 142, 132, 145, 143, 137, 133, 130, 136, 130, 142, 147, 137, 143, 144, 131, 140, 139, 136, 139, 139, 131, 141, 140, 129, 144, 141, 135, 138, 140, 133, 138, 139, 135, 132, 144, 142, 138, 149, 135, 145, 140, 134, 145, 122, 139, 132, 142, 155, 135, 133, 130, 150, 140, 150, 143, 141, 145, 149, 132, 140, 139, 131, 134, 135, 132, 147, 137, 141, 139, 142, 136, 142, 149, 137, 138, 133, 120, 135, 145, 143, 136, 142, 130, 134, 139, 141, 136, 140, 133, 133, 138, 129, 132, 133, 143, 126, 137, 147, 137, 134, 136, 136, 126, 134, 141, 152, 140, 143, 146, 144, 136, 131, 138, 144, 145, 142, 133, 141, 139, 124, 138, 139, 144, 141, 142, 137, 127, 135, 136, 149, 136, 137, 133, 141, 137, 136, 146, 136, 145, 149, 146, 138, 126, 132, 140, 140, 136, 134, 145, 129, 138, 137, 142, 131, 127, 144, 135, 145, 126, 131, 135, 145, 142, 140, 139, 149, 129, 129, 137, 140, 140, 153, 148, 146, 142, 138, 148, 143, 134, 126, 134, 135, 133, 136, 131, 131, 143, 139, 139, 149, 142, 147, 138, 141, 136, 153, 129, 136, 134, 146, 139, 147, 145, 138, 133, 138, 144, 139, 142, 156, 138, 141, 144, 137, 143, 136, 135, 136, 144, 145, 139, 146, 143, 158, 138, 142, 140, 144, 133, 142, 142, 150, 130, 135, 142, 145, 145, 135, 145, 143, 151, 142, 143, 139, 135, 142, 137, 139, 128, 134, 140, 134, 129, 150, 131, 133, 141, 131, 136, 142, 139, 130, 143, 137, 132, 145, 146, 149, 123, 154, 119, 144, 146, 143, 133, 131, 148, 140, 141, 145, 127, 136, 134, 134, 134, 146, 143, 132, 134, 155, 137, 141, 129, 139, 146, 132, 146, 135, 146, 143, 134, 139, 140, 134, 135, 136, 152, 141, 140, 127, 136, 135, 132, 147, 137, 138, 130, 128, 142, 141, 144, 137, 139, 136, 141, 127, 139, 149, 144, 144, 134, 137, 140, 148, 148, 141, 124, 135, 138, 147, 132, 138, 142, 138, 130, 129, 149, 138, 147, 130, 139, 147, 138, 138, 131, 150, 133, 138, 139, 141, 133, 147, 151, 120, 136, 139, 131, 143, 139, 146, 141, 153, 137, 138, 140, 146, 139, 135, 141, 125, 131, 132, 136, 149, 135, 134, 139, 143, 140, 121, 136, 150, 141, 141, 125, 126, 148, 129, 133, 145, 130, 131, 136, 133, 138, 152, 137, 138, 138, 127, 149, 142, 127, 146, 144, 135, 141, 135, 140, 138, 141, 133, 139, 134, 131, 135, 138, 144, 133, 126, 125, 149, 142, 126, 150, 131, 137, 138, 136, 152, 130, 142, 139, 130, 129, 136, 145, 129, 143, 134, 139, 141, 140, 149, 133, 146, 132, 138, 141, 134, 130, 138, 137, 137, 145, 142, 140, 143, 134, 133, 152, 135, 139, 136, 136, 147, 140, 141, 148, 142, 131, 140, 128, 131, 147, 130, 140, 130, 137, 134, 137, 119, 145, 147, 137, 132, 146, 132, 134, 134, 140, 136, 141, 134, 124, 127, 148, 132, 138, 148, 134, 138, 142, 131, 152, 129, 135, 131, 145, 139, 142, 142, 151, 133, 149, 144, 141, 137, 143, 142, 140, 136, 139, 147, 149, 136, 132, 139, 140, 135, 148, 136, 137, 144, 134, 129, 147, 137, 136, 135, 132, 142, 138, 146, 146, 137, 146, 145, 139, 143, 135, 138, 156, 147, 139, 130, 135, 145, 142, 150, 157, 134, 133, 138, 138, 135, 144, 147, 135, 136, 138, 140, 136, 135, 135, 141, 142, 146, 132, 139, 150, 140, 143, 143, 131, 137, 159, 135, 131, 139, 138, 146, 135, 130, 138, 145, 139, 132, 140, 133, 144, 139, 136, 141, 129, 123, 131, 141, 136, 135, 152, 134, 151, 134, 145, 140, 146, 140, 137, 134, 136, 142, 142, 146, 134, 137, 134, 138, 140, 134, 133, 143, 136, 135, 140, 139, 134, 134, 135, 141, 154, 125, 143, 142, 138, 131, 150, 133, 137, 134, 134, 148, 147, 142, 134, 141, 145, 135, 151, 135, 152, 148, 137, 136, 130, 149, 144, 141, 133, 154, 140, 135, 141, 144, 146, 137, 135, 143, 133, 137, 143, 129, 135, 139, 153, 136, 146, 144, 150, 146, 140, 138, 146, 135, 139, 159, 131, 153, 159, 140, 134, 133, 133, 141, 131, 134, 139, 128, 140, 135, 148, 144, 132, 142, 133, 145, 139, 144, 137, 143, 141, 139, 140, 132, 138, 145, 142, 143, 125, 133, 142, 151, 115, 141, 131, 137, 139, 140, 151, 147, 134, 141, 136, 141, 140, 144, 130, 146, 131, 147, 143, 132, 143, 134, 142, 131, 138, 140, 132, 144, 138, 139, 140, 129, 135, 138, 137, 139, 153, 138, 139, 138, 142, 145, 140, 122, 148, 142, 137, 132, 139, 146, 140, 146, 138, 132, 130, 142, 142, 139, 128, 136, 137, 140, 131, 133, 140, 137, 145, 133, 134, 135, 144, 138, 136, 140, 136, 126, 132, 132, 138, 138, 138, 138, 137, 135, 134, 148, 141, 145, 146, 130, 133, 139, 144, 139, 143, 140, 131, 139, 144, 141, 139, 137, 141, 144, 149, 143, 143, 135, 134, 140, 129, 140, 143, 136, 140, 144, 139, 141, 139, 135, 147, 122, 138, 136, 130, 140, 149, 149, 132, 142, 135, 140, 134, 141, 140, 139, 136, 142, 135, 146, 145, 143, 138, 124, 145, 134, 140, 144, 136, 139, 139, 124, 134, 164, 131, 147, 148, 143, 138, 135, 137, 133, 147, 141, 144, 136, 120, 146, 139, 139, 139, 133, 140, 139, 138, 136, 138, 138, 133, 142, 143, 137, 122, 133, 133, 133, 137, 127, 141, 140, 141, 134, 143, 138, 132, 134, 139, 134, 146, 135, 145, 136, 132, 139, 145, 134, 147, 126, 142, 136, 132, 136, 144, 138, 131, 134, 136, 149, 127, 146, 140, 141, 135, 145, 147, 137, 135, 138, 138, 142, 142, 139, 140, 137, 138, 140, 132, 140, 137, 135, 136, 141, 136, 138, 142, 130, 133, 135, 137, 139, 152, 141, 133, 150, 136, 142, 143, 146, 133, 128, 142, 142, 134, 133, 153, 132, 136, 134, 140, 130, 134, 137, 137, 133, 139, 136, 132, 143, 141, 136, 146, 145, 144, 150, 148, 144, 142, 135, 149, 159, 147, 141, 144, 140, 134, 139, 136, 148, 135, 142, 135, 140, 138, 146, 141, 131, 143, 137, 134, 146, 128, 133, 142, 126, 130, 141, 144, 149, 140, 129, 140, 118, 145, 142, 140, 135, 148, 138, 142, 134, 142, 145, 135, 136, 128, 144, 138, 142, 130, 149, 140, 138, 140, 133, 140, 141, 129, 135, 144, 138, 141, 137, 143, 139, 142, 140, 138, 135, 142, 135, 147, 144, 138, 130, 144, 143, 149, 148, 131, 142, 126, 146, 138, 129, 143, 146, 137, 144, 147, 150, 133, 136, 140, 139, 139, 143, 134, 140, 144, 134, 149, 143, 135, 132, 146, 134, 139, 137, 137, 147, 135, 133, 143, 133, 136, 145, 138, 142, 133, 142, 133, 133, 142, 130, 139, 149, 138, 126, 147, 137, 140, 146, 140, 139, 137, 135, 141, 127, 132, 136, 144, 142, 144, 138, 139, 134, 136, 135, 136, 137, 142, 143, 145, 143, 135, 146, 142, 137, 163, 140, 140, 142, 135, 137, 146, 139, 136, 146, 135, 146, 140, 135, 137, 136, 141, 135, 159, 150, 136, 127, 149, 141, 147, 139, 144, 132, 129, 135, 138, 145, 137, 138, 137, 144, 139, 139, 133, 140, 135, 137, 130, 143, 142, 148, 139, 139, 142, 134, 138, 133, 134, 144, 133, 145, 140, 136, 136, 131, 137, 139, 149, 147, 142, 135, 143, 136, 141, 135, 132, 133, 139, 135, 137, 143, 137, 134, 131, 150, 133, 145, 148, 138, 144, 135, 141, 143, 132, 137, 136, 141, 139, 145, 146, 140, 132, 142, 122, 138, 131, 140, 136, 129, 136, 135, 143, 139, 132, 136, 146, 137, 133, 137, 142, 144, 135, 140, 144, 134, 148, 138, 133, 142, 143, 148, 134, 135, 139, 146, 137, 131, 129, 132, 137, 136, 133, 138, 141, 132, 131, 128, 139, 162, 144, 141, 143, 135, 142, 138, 148, 142, 142, 133, 142, 135, 145, 145, 135, 134, 138, 127, 137, 136, 136, 144, 136, 146, 147, 138, 135, 139, 144, 137, 137, 144, 138, 131, 142, 136, 130, 145, 131, 142, 134, 142, 127, 131, 146, 151, 139, 142, 141, 131, 137, 128, 141, 141, 128, 134, 146, 139, 143, 142, 147, 151, 135, 140, 147, 140, 151, 141, 129, 132, 138, 135, 145, 145, 139, 140, 143, 142, 134, 134, 141, 149, 143, 146, 131, 144, 126, 141, 137, 141, 141, 140, 135, 136, 138, 127, 140, 136, 140, 141, 152, 130, 141, 147, 124, 141, 149, 146, 130, 137, 149, 132, 138, 138, 136, 140, 137, 137, 139, 132, 128, 143, 136, 133, 146, 131, 140, 131, 135, 145, 131, 135, 147, 147, 141, 132, 137, 133, 145, 141, 136, 145, 134, 134, 132, 145, 154, 140, 138, 149, 147, 141, 145, 133, 150, 131, 137, 134, 144, 131, 144, 146, 138, 138, 141, 133, 136, 142, 133, 146, 153, 130, 141, 126, 146, 140, 137, 135, 145, 148, 137, 128, 147, 142, 145, 144, 136, 133, 140, 138, 126, 132, 139, 138, 142, 134, 134, 137, 142, 128, 142, 134, 139, 135, 143, 142, 146, 140, 130, 144, 136, 143, 147, 128, 143, 140, 139, 148, 148, 134, 146, 149, 139, 148, 142, 150, 135, 143, 140, 129, 133, 132, 147, 136, 127, 137, 136, 130, 141, 146, 141, 138, 130, 134, 140, 141, 146, 136, 134, 144, 140, 139, 134, 142, 136, 138, 133, 135, 145, 144, 134, 131, 153, 138, 132, 143, 132, 131, 136, 139, 139, 131, 138, 139, 151, 130, 135, 142, 132, 141, 148, 138, 133, 135, 138, 140, 133, 142, 145, 137, 146, 141, 155, 138, 143, 137, 138, 140, 145, 142, 147, 131, 138, 140, 128, 143, 142, 151, 146, 149, 140, 143, 156, 140, 135, 146, 142, 147, 133, 138, 146, 141, 140, 137, 140, 143, 135, 127, 136, 143, 139, 131, 136, 139, 138, 137, 139, 138, 138, 140, 149, 141, 140, 140, 131, 145, 145, 143, 137, 140, 147, 136, 128, 133, 138, 134, 142, 142, 143, 149, 139, 131, 143, 134, 131, 136, 148, 138, 133, 137, 142, 140, 140, 138, 136, 137, 138, 140, 139, 131, 138, 147, 137, 140, 135, 133, 149, 139, 137, 140, 147, 135, 124, 143, 136, 138, 141, 140, 143, 132, 122, 131, 137, 134, 149, 138, 147, 144, 138, 139, 144, 135, 145, 138, 135, 136, 138, 144, 151, 136, 140, 141, 131, 140, 141, 137, 144, 136, 140, 142, 136, 139, 147, 127, 144, 142, 137, 144, 134, 144, 141, 144, 135, 140, 146, 144, 144, 138, 138, 140, 139, 146, 137, 159, 154, 148, 137, 130, 145, 126, 139, 133, 144, 139, 137, 136, 134, 133, 148, 149, 133, 136, 137, 132, 140, 134, 135, 140, 137, 143, 132, 135, 136, 139, 137, 139, 132, 139, 144, 142, 156, 141, 143, 148, 138, 140, 129, 146, 139, 130, 141, 143, 141, 141, 134, 141, 139, 133, 144, 118, 145, 156, 128, 134, 132, 132, 139, 136, 148, 139, 128, 135, 143, 130, 140, 137, 131, 130, 140, 147, 139, 145, 145, 143, 131, 129, 135, 139, 137, 137, 139, 141, 128, 139, 145, 135, 138, 135, 146, 136, 134, 127, 128, 125, 141, 131, 126, 134, 141, 142, 145, 138, 140, 141, 136, 147, 142, 134, 140, 138, 141, 148, 125, 127, 139, 153, 155, 136, 140, 138, 129, 143, 140, 145, 138, 141, 141, 143, 144, 134, 127, 150, 138, 128, 142, 147, 142, 131, 142, 143, 135, 138, 130, 136, 145, 141, 137, 137, 138, 144, 143, 130, 142, 142, 137, 144, 128, 128, 143, 124, 139, 141, 140, 132, 139, 144, 133, 141, 147, 134, 133, 139, 142, 142, 146, 145, 134, 139, 148, 136, 132, 135, 137, 142, 147, 136, 143, 134, 139, 138, 137, 137, 135, 137, 131, 146, 152, 150, 132, 138, 130, 135, 145, 133, 141, 145, 137, 141, 143, 137, 140, 135, 144, 145, 141, 131, 136, 147, 142, 152, 142, 146, 148, 130, 144, 133, 135, 136, 136, 134, 146, 141, 147, 144, 137, 134, 132, 135, 130, 142, 140, 125, 138, 128, 131, 130, 142, 131, 142, 135, 147, 139, 130, 136, 138, 132, 134, 138, 130, 137, 140, 137, 139, 144, 145, 138, 142, 143, 144, 147, 137, 130, 142, 138, 135, 144, 141, 151, 147, 143, 132, 145, 146, 146, 144, 142, 133, 134, 143, 134, 134, 149, 147, 131, 141, 151, 140, 142, 129, 140, 149, 138, 141, 143, 145, 139, 147, 145, 139, 139, 132, 136, 132, 145, 143, 140, 142, 137, 135, 135, 139, 138, 144, 147, 135, 135, 131, 125, 134, 135, 138, 139, 147, 147, 146, 141, 144, 140, 144, 149, 139, 140, 145, 143, 145, 128, 140, 156, 147, 142, 138, 143, 134, 140, 133, 138, 133, 143, 131, 138, 142, 138, 141, 135, 139, 135, 140, 136, 144, 149, 134, 133, 139, 138, 143, 143, 132, 137, 136, 130, 137, 139, 133, 145, 135, 139, 136, 137, 141, 140, 141, 137, 135, 135, 137, 136, 142, 144, 136, 137, 161, 147, 144, 123, 144, 142, 136, 138, 133, 137, 148, 145, 128, 145, 147, 144, 137, 141, 134, 130, 140, 149, 146, 135, 144, 130, 135, 148, 132, 131, 141, 145, 140, 136, 136, 145, 137, 151, 132, 150, 149, 147, 126, 143, 138, 135, 140, 139, 137, 149, 137, 149, 142, 142, 130, 152, 145, 142, 144, 140, 145, 136, 145, 128, 134, 136, 146, 134, 149, 136, 144, 148, 117, 131, 148, 136, 140, 137, 135, 132, 130, 126, 141, 138, 137, 142, 141, 134, 117, 139, 132, 150, 130, 153, 137, 145, 133, 125, 138, 135, 142, 137, 147, 137, 148, 132, 137, 138, 132, 148, 132, 137, 142, 137, 133, 139, 130, 133, 141, 147, 135, 130, 130, 143, 139, 134, 164, 140, 142, 132, 136, 143, 139, 140, 134, 137, 130, 133, 155, 133, 137, 138, 138, 137, 139, 141, 140, 137, 142, 145, 134, 146, 145, 136, 138, 134, 139, 141, 140, 139, 148, 145, 135, 158, 122, 146, 136, 134, 138, 133, 152, 143, 144, 127, 129, 141, 142, 138, 131, 136, 144, 143, 133, 143, 145, 136, 131, 139, 144, 141, 132, 141, 143, 137, 144, 144, 135, 133, 137, 137, 142, 146, 139, 138, 150, 147, 128, 138, 151, 141, 144, 149, 138, 136, 133, 138, 148, 135, 138, 146, 136, 138, 133, 139, 144, 133, 140, 141, 137, 153, 140, 129, 140, 145, 148, 152, 137, 140, 127, 135, 129, 136, 141, 141, 135, 135, 132, 143, 135, 143, 141, 145, 116, 128, 137, 141, 140, 134, 154, 145, 146, 149, 142, 138, 139, 145, 140, 130, 132, 131, 152, 137, 144, 126, 143, 134, 138, 144, 143, 133, 146, 145, 140, 145, 138, 137, 151, 151, 147, 126, 138, 145, 134, 143, 141, 134, 133, 130, 139, 138, 135, 130, 133, 133, 122, 141, 135, 144, 137, 131, 158, 136, 134, 141, 143, 139, 139, 130, 149, 137, 138, 134, 137, 140, 134, 141, 148, 135, 136, 134, 138, 131, 142, 143, 135, 139, 141, 147, 139, 136, 132, 129, 130, 145, 141, 133, 136, 137, 137, 146, 147, 140, 147, 128, 136, 145, 149, 145, 149, 121, 145, 139, 141, 145, 130, 142, 141, 129, 143, 146, 149, 132, 146, 145, 148, 138, 132, 134, 139, 142, 140, 142, 129, 132, 132, 139, 144, 151, 133, 137, 142, 143, 137, 138, 132, 141, 136, 129, 137, 144, 139, 128, 138, 145, 145, 135, 140, 140, 135, 143, 147, 137, 149, 144, 140, 131, 131, 138, 134, 134, 137, 138, 134, 141, 138, 139, 144, 137, 137, 149, 135, 139, 129, 132, 139, 138, 145, 141, 132, 132, 136, 136, 135, 142, 146, 134, 150, 138, 136, 136, 139, 141, 139, 139, 139, 140, 136, 139, 135, 134, 137, 139, 136, 140, 134, 137, 137, 140, 130, 133, 137, 142, 140, 144, 136, 135, 131, 135, 140, 136, 140, 138, 143, 141, 141, 132, 136, 137, 142, 146, 136, 139, 141, 137, 129, 141, 142, 134, 136, 141, 141, 139, 131, 137, 140, 138, 133, 136, 137, 145, 141, 148, 136, 148, 139, 137, 142, 138, 142, 140, 141, 137, 141, 140, 148, 131, 139, 143, 135, 141, 138, 132, 134, 142, 141, 127, 142, 140, 148, 146, 137, 142, 144, 136, 148, 135, 141, 137, 132, 133, 136, 140, 149, 143, 143, 147, 136, 135, 144, 139, 137, 137, 139, 141, 141, 134, 142, 143, 143, 138, 135, 144, 139, 136, 139, 141, 143, 139, 138, 134, 138, 144, 135, 141, 135, 130, 133, 138, 145, 137, 136, 141, 125, 137, 145, 139, 136, 137, 129, 132, 142, 138, 139, 138, 143, 141, 136, 133, 142, 141, 141, 132, 129, 144, 141, 145, 142, 141, 135, 143, 134, 135, 136, 134, 139, 135, 140, 137, 141, 141, 139, 136, 134, 142, 139, 138, 139, 141, 134, 144, 126, 142, 138, 143, 140, 145, 133, 139, 141, 140, 139, 145, 140, 140, 134, 137, 146, 149, 139, 135, 129, 143, 135, 135, 139, 126, 136, 145, 142, 143, 140, 136, 140, 155, 138, 144, 135, 150, 131, 138, 137, 134, 130, 139, 136, 133, 135, 138, 145, 138, 129, 136, 136, 139, 138, 144, 143, 134, 140, 140, 140, 145, 139, 141, 143, 142, 140, 143, 135, 140, 140, 144, 142, 137, 142, 144, 137, 142, 140, 138, 140, 139, 149, 140, 134, 143, 144, 134, 144, 140, 139, 140, 133, 135, 141, 142, 137, 141, 137, 141, 142, 136, 137, 136, 144, 142, 138, 139, 143, 131, 140, 144, 147, 141, 133, 146, 145, 136, 137, 139, 143, 136, 129, 137, 135, 135, 136, 135, 140, 129, 137, 142, 137, 141, 136, 138, 144, 134, 126, 134, 137, 141, 137, 141, 131, 138, 133, 138, 141, 133, 150, 138, 144, 138, 139, 141, 138, 127, 137, 137, 144, 140, 141, 141, 139, 144, 139, 143, 137, 147, 138, 134, 136, 138, 125, 136, 137, 135, 140, 138, 142, 139, 135, 121, 137, 140, 138, 140, 139, 133, 146, 135, 136, 141, 141, 135, 141, 144, 131, 140, 139, 138, 149, 137, 137, 143, 140, 142, 142, 146, 136, 135, 139, 131, 137, 135, 142, 139, 140, 143, 140, 144, 137, 138, 143, 137, 138, 138, 136, 138, 143, 142, 138, 147, 131, 133, 143, 136, 138, 138, 137, 146, 136, 142, 134, 133, 137, 144, 146, 138, 143, 137, 138, 140, 143, 136, 131, 140, 142, 145, 135, 138, 136, 141, 138, 137, 135, 144, 139, 150, 150, 147, 138, 135, 138, 144, 142, 138, 132, 144, 132, 139, 147, 147, 141, 140, 135, 132, 134, 138, 135, 137, 137, 135, 139, 143, 139, 138, 141, 143, 149, 141, 129, 135, 137, 148, 140, 141, 145, 136, 133, 138, 143, 133, 133, 142, 132, 133, 131, 137, 142, 137, 139, 133, 135, 143, 137, 136, 146, 138, 131, 135, 134, 146, 132, 133, 129, 134, 140, 143, 131, 130, 136, 134, 144, 136, 147, 135, 138, 138, 147, 142, 134, 137, 134, 131, 139, 147, 135, 133, 134, 139, 142, 131, 132, 135, 141, 141, 131, 135, 133, 148, 140, 142, 144, 145, 144, 141, 138, 135, 137, 137, 134, 144, 147, 143, 141, 141, 139, 143, 142, 135, 139, 140, 140, 144, 132, 134, 137, 145, 141, 132, 132, 146, 131, 144, 133, 137, 140, 140, 140, 147, 135, 142, 144, 136, 147, 142, 133, 133, 127, 155, 147, 137, 135, 138, 141, 140, 141, 131, 135, 143, 137, 143, 127, 134, 139, 141, 133, 135, 142, 141, 138, 148, 144, 136, 141, 139, 132, 142, 143, 131, 143, 139, 139, 137, 142, 141, 141, 138, 135, 138, 143, 140, 139, 138, 140, 144, 149, 145, 136, 121, 133, 129, 136, 136, 142, 132, 138, 135, 141, 136, 146, 134, 134, 135, 135, 143, 135, 136, 149, 134, 136, 138, 136, 131, 141, 146, 144, 134, 138, 137, 136, 145, 139, 148, 139, 127, 149, 140, 135, 139, 148, 135, 142, 141, 141, 141, 132, 141, 141, 133, 138, 132, 145, 144, 137, 142, 127, 134, 139, 136, 132, 148, 151, 142, 150, 136, 138, 141, 139, 141, 135, 134, 148, 136, 135, 138, 147, 146, 138, 142, 142, 135, 139, 138, 147, 135, 135, 138, 141, 135, 132, 139, 126, 139, 130, 143, 141, 151, 135, 134, 138, 138, 138, 137, 143, 141, 133, 145, 141, 139, 148, 129, 142, 139, 132, 147, 139, 138, 140, 136, 136, 139, 153, 147, 146, 149, 140, 128, 146, 144, 142, 136, 146, 144, 139, 125, 142, 138, 143, 129, 137, 140, 140, 140, 137, 145, 145, 148, 135, 136, 140, 144, 147, 144, 136, 141, 138, 138, 136, 142, 134, 134, 132, 143, 141, 131, 133, 137, 143, 137, 128, 136, 141, 142, 144, 139, 141, 138, 136, 136, 138, 141, 144, 136, 151, 131, 137, 143, 148, 143, 143, 132, 149, 137, 134, 136, 145, 145, 137, 141, 133, 135, 137, 138, 144, 135, 143, 138, 135, 140, 142, 133, 141, 133, 145, 140, 139, 142, 138, 131, 137, 139, 141, 136, 139, 132, 134, 138, 131, 140, 144, 135, 146, 142, 138, 135, 136, 135, 138, 137, 146, 141, 143, 138, 137, 141, 134, 139, 144, 134, 136, 136, 139, 137, 137, 136, 140, 140, 146, 140, 139, 141, 141, 133, 127, 132, 135, 142, 131, 150, 135, 134, 147, 140, 137, 133, 148, 143, 141, 139, 143, 133, 137, 143, 143, 146, 147, 143, 134, 135, 140, 135, 148, 137, 150, 147, 136, 148, 143, 147, 137, 139, 134, 139, 126, 137, 141, 139, 130, 142, 144, 132, 139, 139, 131, 154, 133, 142, 139, 146, 136, 137, 141, 147, 138, 141, 139, 133, 137, 136, 139, 138, 141, 140, 133, 143, 142, 152, 138, 141, 138, 136, 130, 135, 144, 138, 142, 139, 136, 142, 133, 137, 140, 135, 141, 134, 133, 130, 136, 135, 144, 138, 137, 139, 130, 138, 135, 141, 130, 136, 138, 137, 128, 136, 134, 135, 139, 133, 145, 134, 133, 139, 134, 136, 144, 138, 129, 140, 132, 147, 137, 142, 139, 144, 138, 141, 139, 134, 136, 135, 131, 140, 140, 138, 133, 138, 139, 142, 141, 143, 133, 149, 133, 140, 137, 139, 141, 141, 132, 137, 136, 146, 135, 134, 135, 141, 136, 137, 148, 137, 133, 138, 131, 140, 147, 137, 140, 136, 137, 133, 143, 139, 135, 137, 140, 144, 131, 130, 136, 138, 137, 141, 136, 138, 139, 136, 143, 138, 137, 132, 139, 132, 128, 141, 131, 141, 155, 141, 139, 135, 138, 141, 139, 144, 144, 140, 136, 144, 137, 139, 143, 135, 132, 134, 137, 145, 140, 135, 144, 141, 139, 139, 147, 139, 154, 146, 131, 146, 140, 137, 136, 138, 142, 139, 141, 139, 132, 135, 144, 137, 145, 137, 141, 137, 140, 144, 136, 139, 139, 134, 137, 132, 148, 135, 137, 147, 140, 142, 134, 139, 135, 142, 143, 148, 145, 142, 136, 136, 141, 133, 138, 135, 127, 137, 141, 146, 143, 138, 136, 147, 138, 140, 141, 139, 136, 135, 147, 137, 137, 135, 145, 142, 135, 140, 138, 138, 144, 135, 132, 138, 133, 136, 136, 142, 145, 138, 135, 135, 145, 138, 134, 140, 139, 141, 129, 130, 136, 137, 140, 136, 134, 139, 135, 135, 149, 137, 137, 142, 138, 140, 141, 136, 137, 130, 135, 140, 138, 141, 143, 146, 131, 137, 138, 141, 141, 135, 140, 135, 135, 141, 140, 137, 143, 139, 134, 139, 143, 134, 134, 127, 134, 147, 140, 143, 149, 134, 143, 135, 139, 138, 139, 143, 145, 135, 135, 135, 138, 136, 141, 134, 134, 137, 140, 131, 142, 132, 143, 122, 148, 139, 139, 136, 135, 139, 136, 137, 139, 130, 141, 134, 141, 139, 145, 137, 136, 141, 145, 141, 138, 136, 137, 147, 133, 133, 135, 137, 136, 141, 138, 142, 143, 143, 125, 141, 146, 145, 137, 130, 134, 132, 139, 136, 135, 141, 138, 141, 139, 143, 140, 136, 150, 139, 144, 133, 141, 139, 141, 136, 139, 138, 148, 139, 136, 137, 135, 137, 134, 145, 141, 134, 130, 137, 139, 145, 136, 133, 140, 138, 140, 137, 135, 142, 138, 142, 139, 148, 137, 139, 134, 142, 142, 137, 139, 135, 140, 146, 137, 139, 143, 146, 137, 141, 136, 141, 135, 137, 136, 142, 138, 137, 140, 136, 145, 142, 134, 138, 135, 136, 133, 141, 151, 144, 145, 128, 134, 131, 141, 136, 139, 133, 130, 135, 143, 134, 139, 139, 137, 143, 141, 134, 147, 138, 139, 139, 149, 142, 137, 142, 135, 137, 138, 136, 136, 141, 144, 143, 135, 146, 139, 141, 140, 131, 145, 143, 141, 135, 132, 131, 139, 136, 142, 141, 144, 137, 148, 145, 144, 137, 136, 133, 139, 140, 145, 137, 140, 143, 139, 140, 140, 146, 146, 127, 134, 127, 130, 139, 138, 138, 137, 148, 139, 145, 133, 153, 141, 134, 139, 133, 142, 139, 142, 149, 150, 144, 136, 142, 128, 131, 136, 140, 151, 138, 141, 136, 135, 132, 139, 138, 144, 134, 132, 131, 133, 139, 139, 134, 140, 138, 143, 144, 128, 136, 143, 136, 142, 141, 149, 140, 146, 142, 133, 146, 131, 141, 136, 134, 137, 139, 133, 143, 134, 142, 137, 139, 133, 129, 135, 143, 137, 149, 135, 142, 140, 146, 140, 138, 133, 142, 144, 126, 146, 134, 144, 131, 141, 142, 133, 142, 136, 142, 142, 142, 141, 145, 133, 138, 142, 142, 144, 142, 131, 141, 135, 130, 132, 140, 137, 133, 137, 144, 134, 139, 149, 141, 129, 140, 143, 135, 135, 156, 140, 141, 129, 129, 133, 136, 146, 148, 149, 130, 143, 133, 140, 133, 134, 137, 139, 139, 133, 141, 136, 137, 138, 139, 141, 143, 134, 141, 140, 146, 136, 136, 135, 136, 140, 139, 146, 142, 136, 141, 142, 139, 138, 137, 137, 141, 134, 128, 139, 129, 141, 143, 135, 141, 141, 139, 137, 137, 130, 146, 142, 138, 130, 143, 137, 141, 140, 132, 141, 139, 133, 139, 138, 139, 131, 136, 142, 132, 146, 142, 137, 143, 144, 135, 152, 141, 140, 135, 150, 134, 128, 150, 135, 142, 134, 136, 136, 147, 139, 128, 141, 145, 142, 138, 126, 139, 142, 137, 140, 140, 128, 134, 140, 138, 136, 136, 136, 147, 136, 139, 118, 141, 142, 133, 131, 138, 147, 139, 146, 147, 155, 135, 139, 140, 128, 139, 140, 136, 141, 138, 139, 143, 138, 132, 144, 136, 146, 141, 141, 140, 137, 137, 137, 136, 145, 136, 137, 137, 131, 136, 141, 130, 136, 131, 136, 136, 144, 135, 138, 137, 143, 135, 141, 131, 138, 145, 133, 139, 136, 138, 146, 140, 137, 144, 148, 138, 141, 141, 137, 147, 132, 143, 139, 134, 134, 137, 141, 142, 136, 138, 137, 140, 124, 143, 155, 141, 139, 141, 133, 136, 148, 139, 141, 135, 136, 137, 137, 140, 134, 139, 138, 134, 141, 148, 137, 142, 146, 134, 130, 144, 149, 134, 132, 134, 142, 138, 135, 135, 137, 151, 131, 128, 139, 143, 143, 131, 133, 136, 140, 141, 138, 144, 135, 137, 136, 137, 139, 131, 142, 140, 135, 149, 138, 135, 133, 143, 139, 128, 140, 135, 137, 136, 139, 140, 139, 134, 130, 123, 137, 139, 145, 137, 137, 133, 137, 131, 145, 138, 142, 141, 134, 131, 138, 138, 136, 129, 140, 132, 139, 140, 133, 141, 132, 156, 142, 137, 137, 140, 141, 134, 134, 140, 137, 133, 143, 146, 139, 138, 144, 141, 148, 140, 129, 135, 152, 158, 135, 138, 133, 133, 130, 148, 142, 137, 135, 148, 142, 141, 133, 130, 135, 132, 146, 133, 146, 141, 141, 141, 144, 148, 142, 138, 135, 144, 132, 135, 137, 162, 130, 150, 135, 142, 137, 144, 138, 128, 140, 135, 138, 138, 134, 130, 139, 134, 137, 133, 145, 145, 133, 143, 132, 139, 140, 146, 139, 142, 144, 142, 141, 140, 138, 138, 128, 127, 138, 135, 121, 134, 127, 141, 138, 143, 133, 144, 153, 134, 137, 131, 152, 134, 140, 134, 141, 142, 152, 154, 148, 142, 139, 138, 142, 151, 134, 131, 151, 150, 138, 142, 136, 133, 132, 141, 141, 138, 139, 151, 145, 142, 145, 145, 145, 133, 134, 145, 146, 140, 130, 142, 138, 134, 137, 135, 132, 148, 140, 141, 147, 134, 129, 149, 138, 136, 143, 134, 137, 149, 142, 147, 133, 130, 145, 137, 140, 138, 139, 131, 129, 141, 131, 138, 140, 131, 133, 129, 141, 136, 140, 133, 135, 136, 138, 144, 139, 146, 141, 144, 136, 145, 137, 142, 136, 140, 139, 134, 132, 136, 136, 130, 147, 129, 136, 131, 138, 141, 139, 136, 151, 133, 135, 124, 143, 140, 141, 143, 127, 134, 145, 141, 135, 140, 135, 136, 141, 148, 137, 139, 138, 138, 138, 137, 132, 144, 138, 149, 135, 154, 134, 141, 138, 137, 126, 131, 135, 141, 125, 137, 138, 131, 130, 139, 132, 142, 138, 133, 134, 133, 137, 148, 148, 141, 136, 135, 124, 137, 134, 142, 132, 138, 140, 145, 135, 130, 143, 140, 139, 148, 142, 132, 152, 136, 133, 138, 144, 141, 136, 164, 135, 135, 134, 143, 134, 139, 138, 135, 117, 141, 148, 124, 134, 144, 138, 139, 141, 128, 133, 132, 145, 144, 141, 138, 150, 149, 138, 140, 136, 136, 138, 140, 146, 130, 138, 156, 142, 141, 131, 146, 147, 136, 133, 134, 145, 147, 146, 137, 140, 141, 138, 138, 137, 140, 146, 144, 139, 139, 141, 138, 141, 136, 135, 129, 139, 137, 141, 141, 136, 137, 137, 132, 140, 142, 140, 140, 140, 122, 131, 143, 140, 135, 137, 139, 145, 139, 138, 138, 142, 138, 131, 138, 134, 132, 149, 142, 142, 137, 135, 134, 135, 138, 134, 134, 142, 154, 133, 143, 131, 135, 138, 136, 138, 144, 133, 128, 145, 140, 139, 139, 136, 135, 140, 128, 138, 137, 138, 135, 134, 137, 140, 139, 132, 147, 150, 144, 143, 137, 128, 130, 142, 140, 133, 126, 143, 142, 140, 140, 135, 134, 147, 139, 144, 134, 144, 141, 139, 142, 143, 145, 139, 145, 136, 135, 142, 141, 129, 139, 139, 141, 135, 134, 139, 139, 143, 126, 147, 140, 127, 135, 141, 139, 130, 146, 137, 130, 146, 137, 139, 138, 136, 148, 139, 149, 135, 138, 144, 140, 135, 147, 134, 144, 142, 136, 138, 133, 150, 141, 136, 141, 134, 140, 143, 135, 147, 139, 137, 142, 143, 141, 132, 135, 131, 128, 140, 143, 133, 142, 135, 139, 138, 136, 136, 139, 140, 141, 138, 142, 149, 150, 128, 141, 135, 139, 147, 136, 131, 144, 150, 141, 151, 136, 144, 142, 156, 139, 141, 130, 140, 131, 138, 135, 132, 138, 137, 138, 137, 140, 138, 130, 146, 140, 140, 132, 131, 136, 143, 126, 137, 139, 148, 139, 143, 140, 143, 137, 133, 140, 138, 135, 136, 140, 137, 146, 137, 138, 132, 108, 134, 137, 138, 147, 139, 137, 138, 135, 144, 135, 139, 137, 136, 132, 138, 142, 135, 134, 129, 130, 140, 141, 143, 142, 143, 147, 137, 141, 138, 140, 139, 139, 141, 141, 151, 142, 146, 141, 138, 137, 131, 139, 133, 139, 135, 139, 146, 141, 141, 138, 141, 130, 141, 144, 145, 141, 143, 147, 140, 142, 136, 131, 136, 147, 141, 131, 135, 138, 139, 137, 136, 140, 144, 148, 133, 137, 143, 133, 140, 143, 140, 140, 137, 141, 148, 136, 134, 143, 135, 133, 138, 135, 149, 136, 140, 143, 135, 137, 139, 139, 142, 133, 139, 138, 137, 137, 137, 137, 147, 145, 135, 138, 146, 139, 139, 133, 148, 147, 136, 142, 139, 146, 145, 127, 137, 137, 137, 134, 143, 140, 140, 132, 140, 139, 143, 145, 135, 135, 141, 137, 142, 133, 143, 140, 142, 133, 140, 143, 137, 137, 132, 130, 150, 138, 145, 144, 147, 142, 139, 150, 137, 148, 139, 145, 141, 142, 135, 130, 143, 130, 143, 140, 141, 140, 137, 139, 139, 144, 137, 148, 135, 139, 134, 143, 137, 144, 145, 128, 137, 141, 136, 140, 136, 137, 140, 130, 142, 136, 145, 140, 144, 138, 138, 137, 144, 135, 144, 135, 139, 148, 136, 136, 143, 135, 134, 143, 142, 135, 142, 144, 146, 139, 142, 131, 136, 140, 131, 132, 135, 140, 138, 140, 135, 137, 129, 133, 142, 133, 139, 139, 138, 144, 136, 147, 135, 130, 146, 138, 150, 145, 135, 135, 134, 134, 139, 136, 137, 140, 140, 134, 136, 143, 140, 132, 135, 137, 141, 135, 130, 140, 144, 138, 136, 145, 135, 146, 127, 143, 133, 131, 130, 138, 134, 142, 137, 134, 142, 144, 139, 140, 139, 138, 143, 136, 142, 138, 133, 129, 139, 147, 134, 136, 136, 131, 129, 148, 137, 139, 133, 131, 142, 140, 138, 142, 144, 133, 133, 138, 140, 131, 146, 142, 147, 138, 145, 139, 145, 131, 137, 139, 136, 138, 138, 138, 138, 140, 138, 138, 135, 132, 141, 136, 141, 138, 144, 151, 138, 133, 141, 137, 137, 136, 140, 145, 144, 137, 137, 135, 145, 140, 148, 134, 143, 135, 144, 142, 140, 146, 143, 131, 132, 138, 141, 140, 136, 134, 134, 146, 133, 139, 135, 143, 136, 135, 137, 140, 140, 145, 136, 145, 141, 141, 134, 136, 144, 130, 138, 141, 141, 138, 138, 143, 149, 133, 150, 145, 136, 146, 142, 134, 145, 138, 139, 143, 142, 134, 134, 144, 141, 146, 143, 142, 139, 142, 142, 144, 145, 140, 138, 141, 141, 135, 129, 143, 139, 142, 144, 132, 141, 139, 140, 138, 116, 133, 136, 137, 138, 136, 135, 138, 142, 143, 136, 131, 141, 134, 133, 147, 151, 139, 145, 136, 134, 142, 138, 142, 148, 131, 134, 134, 145, 132, 142, 168, 135, 149, 126, 146, 146, 135, 140, 135, 130, 142, 138, 139, 143, 145, 133, 143, 154, 139, 129, 131, 144, 141, 136, 137, 134, 138, 137, 141, 137, 147, 137, 143, 136, 138, 141, 139, 141, 134, 133, 142, 135, 141, 138, 132, 148, 133, 142, 134, 135, 136, 137, 137, 145, 149, 134, 142, 150, 138, 135, 136, 142, 137, 134, 141, 136, 138, 134, 131, 130, 144, 138, 139, 133, 142, 135, 148, 136, 136, 139, 139, 133, 144, 137, 143, 143, 137, 151, 130, 135, 141, 146, 135, 140, 138, 141, 143, 143, 157, 136, 146, 136, 141, 133, 146, 142, 143, 140, 145, 144, 140, 136, 138, 130, 143, 140, 146, 138, 135, 142, 137, 129, 129, 131, 145, 145, 141, 140, 133, 124, 138, 149, 140, 136, 150, 141, 137, 144, 130, 142, 147, 131, 143, 130, 137, 136, 132, 125, 142, 133, 146, 141, 139, 142, 131, 141, 142, 134, 144, 128, 133, 146, 135, 129, 139, 142, 131, 143, 136, 141, 127, 130, 141, 136, 146, 140, 143, 134, 142, 138, 130, 142, 138, 130, 143, 136, 141, 133, 133, 137, 144, 132, 139, 131, 135, 150, 145, 130, 137, 133, 135, 139, 135, 134, 134, 144, 134, 142, 145, 145, 133, 132, 134, 142, 135, 134, 142, 134, 143, 140, 137, 136, 145, 135, 142, 151, 149, 146, 142, 132, 135, 141, 140, 158, 136, 147, 130, 140, 141, 134, 135, 133, 142, 134, 144, 132, 132, 142, 130, 129, 137, 135, 123, 135, 148, 137, 143, 136, 135, 143, 143, 138, 138, 143, 138, 136, 143, 140, 145, 142, 135, 131, 135, 125, 141, 129, 136, 129, 130, 137, 138, 141, 141, 140, 133, 135, 148, 140, 134, 151, 147, 139, 130, 142, 134, 143, 142, 136, 139, 141, 135, 140, 130, 144, 129, 145, 140, 129, 138, 139, 136, 136, 134, 143, 139, 141, 144, 135, 133, 141, 144, 129, 132, 139, 143, 137, 137, 139, 138, 127, 127, 136, 148, 135, 134, 138, 129, 134, 141, 132, 139, 126, 138, 147, 139, 139, 148, 136, 135, 139, 136, 139, 140, 136, 136, 147, 132, 135, 131, 135, 140, 137, 134, 138, 142, 141, 125, 138, 138, 145, 122, 138, 142, 146, 143, 144, 134, 139, 138, 139, 143, 133, 145, 133, 142, 143, 138, 135, 139, 137, 136, 137, 136, 131, 130, 143, 128, 134, 141, 155, 134, 140, 140, 144, 132, 143, 135, 137, 131, 123, 140, 140, 139, 141, 139, 137, 154, 142, 128, 134, 138, 138, 130, 144, 137, 138, 131, 139, 141, 136, 141, 137, 145, 139, 147, 136, 133, 144, 139, 147, 136, 138, 139, 147, 141, 131, 141, 144, 151, 144, 140, 142, 135, 138, 146, 150, 133, 144, 142, 140, 138, 141, 143, 146, 132, 132, 134, 140, 131, 140, 143, 138, 131, 129, 135, 136, 141, 146, 138, 137, 134, 139, 142, 140, 135, 149, 141, 139, 132, 132, 141, 123, 141, 133, 144, 141, 136, 137, 146, 137, 140, 135, 129, 140, 139, 138, 137, 130, 137, 139, 143, 139, 139, 139, 142, 136, 139, 140, 140, 143, 148, 135, 136, 140, 128, 128, 146, 125, 142, 133, 122, 140, 127, 146, 140, 143, 125, 140, 138, 141, 144, 146, 138, 137, 128, 146, 136, 150, 139, 135, 145, 149, 135, 141, 133, 142, 135, 146, 144, 144, 142, 144, 133, 139, 138, 145, 136, 147, 140, 140, 141, 160, 139, 151, 132, 152, 134, 135, 141, 141, 147, 132, 130, 141, 139, 147, 133, 153, 138, 144, 142, 140, 139, 130, 131, 136, 133, 143, 144, 133, 143, 130, 130, 136, 145, 143, 132, 144, 141, 137, 143, 143, 134, 140, 143, 141, 144, 138, 147, 141, 132, 133, 140, 136, 147, 141, 142, 132, 136, 135, 127, 148, 131, 142, 142, 151, 142, 137, 136, 149, 139, 136, 128, 138, 143, 135, 144, 139, 125, 141, 126, 139, 128, 148, 151, 143, 143, 141, 137, 132, 139, 137, 140, 146, 148, 148, 142, 140, 133, 130, 130, 142, 148, 139, 128, 130, 132, 146, 140, 149, 136, 135, 148, 142, 149, 133, 142, 140, 132, 149, 137, 141, 137, 131, 141, 145, 145, 144, 144, 143, 127, 145, 140, 134, 150, 141, 130, 151, 149, 147, 141, 147, 141, 145, 139, 138, 146, 142, 142, 128, 136, 133, 137, 121, 128, 133, 142, 133, 133, 143, 134, 132, 141, 130, 137, 136, 146, 137, 136, 121, 143, 139, 132, 139, 138, 137, 136, 139, 147, 147, 126, 144, 137, 149, 124, 135, 125, 154, 136, 139, 135, 151, 135, 142, 139, 146, 130, 153, 145, 140, 134, 138, 139, 147, 143, 136, 139, 149, 158, 145, 141, 140, 135, 141, 140, 132, 137, 132, 137, 123, 135, 128, 132, 133, 143, 136, 130, 140, 143, 133, 134, 135, 140, 132, 135, 125, 128, 128, 131, 136, 134, 138, 138, 142, 133, 139, 126, 136, 146, 122, 138, 131, 123, 133, 136, 149, 127, 128, 143, 132, 142, 134, 132, 129, 136, 146, 138, 135, 144, 140, 139, 133, 145, 149, 140, 139, 122, 142, 120, 142, 146, 150, 132, 135, 138, 140, 143, 145, 150, 137, 135, 139, 130, 141, 144, 137, 145, 143, 127, 143, 142, 147, 128, 149, 143, 139, 133, 148, 140, 138, 134, 147, 129, 140, 145, 144, 137, 138, 141, 148, 134, 142, 137, 140, 128, 137, 143, 147, 135, 132, 136, 147, 130, 137, 135, 140, 128, 148, 143, 137, 130, 129, 147, 142, 136, 138, 147, 151, 135, 131, 146, 130, 147, 136, 149, 144, 135, 142, 145, 147, 148, 138, 144, 137, 147, 131, 137, 134, 142, 131, 137, 150, 143, 132, 129, 141, 144, 147, 134, 142, 146, 151, 143, 139, 132, 137, 140, 139, 143, 143, 132, 138, 134, 148, 144, 143, 131, 131, 145, 130, 131, 143, 149, 138, 150, 130, 141, 148, 131, 137, 144, 133, 145, 126, 137, 142, 152, 131, 129, 133, 138, 134, 137, 135, 149, 144, 143, 134, 127, 134, 136, 147, 123, 129, 140, 145, 129, 140, 139, 150, 135, 158, 133, 137, 140, 139, 137, 145, 139, 138, 138, 146, 126, 124, 149, 147, 148, 143, 143, 158, 139, 138, 147, 146, 129, 133, 130, 134, 129, 137, 142, 135, 147, 144, 140, 136, 139, 145, 142, 142, 141, 140, 142, 143, 137, 136, 141, 129, 142, 137, 152, 137, 138, 147, 143, 132, 135, 134, 138, 139, 136, 144, 137, 137, 136, 132, 145, 138, 134, 138, 137, 148, 134, 148, 139, 143, 142, 151, 140, 145, 134, 133, 138, 134, 134, 145, 135, 139, 136, 146, 141, 130, 142, 138, 149, 130, 140, 135, 146, 129, 137, 141, 144, 134, 128, 139, 138, 139, 127, 134, 138, 142, 133, 137, 144, 137, 144, 135, 137, 146, 140, 132, 143, 137, 134, 134, 139, 139, 136, 134, 134, 136, 132, 137, 141, 143, 139, 140, 138, 135, 142, 138, 135, 140, 145, 145, 142, 135, 141, 150, 149, 139, 139, 145, 134, 142, 146, 133, 125, 136, 139, 132, 140, 136, 137, 136, 139, 138, 138, 137, 138, 137, 130, 136, 144, 145, 132, 144, 136, 144, 137, 149, 144, 140, 130, 139, 139, 145, 138, 140, 141, 139, 132, 131, 133, 148, 138, 139, 135, 142, 136, 135, 143, 133, 133, 144, 142, 137, 135, 133, 137, 141, 134, 136, 139, 142, 135, 141, 144, 142, 144, 130, 136, 133, 137, 140, 140, 134, 133, 143, 134, 141, 133, 143, 144, 140, 131, 144, 150, 143, 137, 142, 142, 134, 137, 139, 132, 138, 138, 139, 142, 144, 140, 140, 140, 141, 140, 134, 138, 142, 141, 138, 140, 141, 147, 125, 144, 145, 135, 132, 131, 138, 137, 137, 134, 140, 143, 136, 131, 137, 135, 141, 146, 139, 140, 136, 130, 137, 143, 135, 138, 144, 139, 142, 138, 141, 142, 137, 135, 135, 141, 137, 138, 142, 127, 142, 134, 141, 136, 143, 137, 138, 135, 133, 135, 142, 131, 142, 140, 138, 132, 147, 142, 128, 143, 137, 139, 139, 142, 136, 146, 142, 140, 135, 142, 146, 138, 147, 140, 128, 141, 140, 140, 137, 142, 143, 145, 141, 136, 145, 137, 139, 132, 144, 144, 144, 140, 135, 143, 141, 140, 136, 138, 137, 136, 147, 140, 143, 137, 138, 141, 139, 136, 143, 131, 137, 135, 138, 134, 144, 139, 139, 137, 144, 136, 142, 135, 137, 140, 135, 137, 138, 129, 139, 144, 135, 138, 144, 145, 142, 141, 135, 142, 138, 137, 143, 139, 134, 138, 138, 143, 138, 144, 138, 138, 134, 138, 130, 139, 141, 147, 140, 142, 133, 139, 139, 139, 134, 131, 135, 141, 132, 147, 132, 132, 136, 140, 138, 148, 139, 142, 140, 141, 146, 130, 133, 147, 150, 147, 139, 146, 142, 140, 141, 148, 141, 144, 141, 133, 134, 133, 135, 145, 141, 137, 138, 132, 140, 139, 134, 143, 144, 141, 140, 136, 139, 136, 129, 128, 137, 128, 133, 139, 148, 135, 147, 135, 128, 141, 148, 135, 140, 134, 140, 143, 142, 132, 146, 142, 127, 147, 132, 132, 134, 139, 138, 145, 137, 138, 143, 129, 139, 137, 134, 140, 141, 143, 136, 137, 136, 140, 139, 136, 146, 142, 141, 133, 137, 139, 142, 134, 140, 138, 135, 133, 140, 144, 142, 139, 127, 139, 142, 136, 139, 143, 135, 134, 135, 137, 151, 140, 139, 136, 145, 138, 150, 144, 144, 141, 129, 139, 146, 142, 131, 142, 144, 123, 146, 136, 144, 144, 129, 137, 144, 138, 137, 135, 138, 142, 137, 132, 137, 145, 128, 136, 140, 134, 135, 137, 148, 133, 136, 141, 134, 148, 138, 137, 142, 142, 142, 135, 144, 129, 143, 157, 142, 139, 137, 144, 136, 135, 145, 144, 140, 133, 136, 133, 146, 138, 143, 143, 143, 141, 143, 137, 143, 143, 141, 138, 128, 143, 128, 129, 130, 136, 135, 136, 134, 138, 142, 148, 139, 136, 150, 137, 140, 144, 139, 143, 129, 130, 135, 138, 131, 146, 145, 129, 140, 136, 139, 144, 144, 143, 144, 148, 131, 142, 148, 146, 125, 141, 139, 144, 141, 140, 134, 133, 144, 141, 137, 151, 139, 142, 138, 137, 129, 134, 134, 136, 142, 146, 148, 140, 132, 142, 135, 134, 138, 134, 147, 142, 135, 137, 134, 134, 135, 137, 137, 140, 138, 136, 151, 134, 136, 129, 148, 133, 139, 134, 132, 141, 128, 132, 136, 141, 125, 142, 142, 136, 136, 141, 141, 137, 138, 139, 127, 135, 134, 138, 137, 157, 145, 131, 138, 138, 142, 132, 145, 149, 133, 122, 145, 142, 141, 140, 141, 132, 134, 153, 142, 136, 135, 137, 144, 147, 120, 133, 141, 132, 132, 141, 143, 139, 136, 140, 143, 156, 139, 142, 139, 137, 140, 129, 134, 136, 140, 138, 140, 135, 132, 135, 139, 138, 155, 131, 141, 132, 152, 139, 137, 139, 138, 139, 140, 131, 133, 133, 140, 138, 137, 139, 131, 133, 142, 132, 135, 158, 137, 135, 131, 138, 137, 134, 140, 146, 144, 136, 143, 138, 137, 141, 131, 135, 131, 125, 135, 138, 141, 147, 149, 148, 130, 122, 133, 137, 133, 135, 148, 138, 140, 139, 143, 138, 143, 141, 153, 151, 133, 141, 141, 135, 138, 147, 141, 144, 135, 140, 143, 135, 141, 140, 134, 144, 141, 143, 138, 140, 140, 154, 134, 139, 135, 138, 143, 134, 147, 138, 141, 133, 129, 124, 145, 154, 142, 141, 145, 136, 146, 136, 132, 133, 128, 146, 143, 138, 138, 145, 138, 132, 140, 129, 144, 146, 146, 131, 149, 143, 147, 144, 137, 143, 142, 134, 135, 148, 137, 138, 140, 127, 139, 134, 131, 137, 141, 130, 141, 136, 143, 141, 142, 137, 140, 143, 138, 144, 134, 144, 136, 136, 136, 136, 139, 145, 143, 151, 139, 143, 140, 137, 143, 143, 136, 135, 143, 140, 133, 155, 129, 130, 151, 147, 128, 145, 141, 140, 133, 139, 139, 142, 142, 146, 142, 135, 139, 146, 139, 140, 148, 137, 136, 138, 141, 151, 131, 141, 142, 128, 136, 140, 151, 133, 124, 141, 136, 130, 137, 136, 137, 134, 139, 141, 130, 143, 144, 133, 136, 148, 137, 134, 140, 145, 136, 137, 132, 118, 150, 140, 144, 140, 140, 143, 140, 131, 136, 141, 135, 131, 131, 135, 139, 132, 152, 143, 142, 142, 134, 134, 139, 128, 137, 132, 144, 145, 139, 141, 136, 137, 130, 146, 129, 135, 125, 143, 151, 136, 140, 139, 141, 140, 138, 141, 140, 141, 139, 141, 140, 131, 138, 137, 140, 152, 145, 141, 136, 139, 142, 141, 142, 138, 138, 130, 143, 145, 136, 142, 154, 137, 145, 145, 142, 140, 147, 137, 140, 134, 131, 135, 140, 144, 139, 139, 134, 144, 138, 129, 131, 133, 133, 149, 140, 132, 136, 139, 144, 135, 135, 140, 127, 135, 135, 130, 135, 134, 133, 138, 140, 135, 140, 138, 125, 144, 147, 135, 141, 136, 136, 136, 135, 133, 142, 132, 141, 150, 133, 133, 142, 141, 138, 139, 139, 129, 142, 135, 130, 137, 137, 151, 137, 129, 135, 130, 139, 139, 135, 134, 141, 137, 132, 133, 134, 148, 139, 145, 140, 143, 125, 139, 145, 140, 145, 134, 129, 140, 137, 145, 141, 138, 140, 144, 139, 145, 139, 148, 142, 136, 138, 133, 138, 142, 147, 129, 136, 140, 139, 139, 146, 141, 140, 134, 137, 139, 136, 135, 146, 138, 130, 139, 144, 138, 145, 138, 141, 144, 132, 134, 147, 140, 145, 136, 137, 134, 132, 134, 144, 132, 141, 140, 141, 142, 132, 132, 128, 144, 131, 148, 141, 134, 140, 142, 142, 142, 132, 134, 140, 141, 141, 138, 144, 135, 136, 140, 133, 144, 136, 136, 149, 141, 133, 133, 140, 145, 137, 132, 133, 141, 146, 135, 146, 140, 133, 117, 140, 144, 138, 138, 145, 135, 142, 139, 141, 137, 133, 132, 133, 143, 140, 142, 139, 146, 140, 131, 131, 131, 147, 143, 140, 133, 143, 131, 146, 137, 140, 141, 133, 136, 142, 132, 135, 144, 135, 141, 134, 137, 142, 145, 133, 136, 142, 157, 141, 127, 147, 131, 146, 147, 133, 147, 143, 132, 141, 135, 140, 139, 141, 144, 139, 134, 134, 148, 139, 130, 143, 143, 144, 140, 134, 135, 138, 143, 132, 118, 132, 142, 132, 145, 137, 134, 134, 134, 137, 152, 138, 147, 136, 141, 135, 142, 140, 133, 143, 143, 140, 136, 143, 137, 143, 134, 139, 128, 143, 152, 139, 140, 143, 139, 143, 140, 143, 134, 150, 137, 136, 129, 136, 128, 141, 138, 139, 141, 140, 130, 140, 148, 133, 136, 138, 149, 134, 129, 133, 141, 119, 137, 138, 131, 139, 129, 144, 139, 140, 139, 146, 129, 144, 146, 139, 142, 130, 144, 141, 150, 138, 130, 136, 136, 132, 139, 133, 135, 148, 134, 133, 131, 135, 138, 135, 140, 151, 132, 133, 142, 139, 144, 137, 139, 133, 139, 141, 146, 141, 136, 139, 134, 146, 135, 135, 134, 147, 137, 132, 138, 141, 139, 141, 142, 134, 148, 144, 128, 135, 150, 134, 137, 134, 134, 141, 135, 138, 131, 136, 142, 138, 133, 136, 142, 127, 140, 146, 139, 134, 145, 134, 141, 131, 138, 143, 131, 133, 139, 140, 140, 136, 132, 139, 147, 142, 126, 142, 135, 132, 139, 142, 136, 141, 134, 140, 142, 140, 134, 145, 133, 147, 132, 138, 141, 141, 135, 138, 130, 143, 160, 133, 142, 136, 137, 138, 141, 144, 142, 150, 151, 151, 141, 144, 144, 142, 138, 131, 144, 129, 142, 123, 140, 142, 142, 145, 139, 133, 140, 127, 145, 145, 134, 131, 134, 135, 136, 143, 145, 133, 138, 136, 129, 136, 153, 138, 128, 142, 144, 136, 160, 140, 141, 135, 134, 135, 134, 135, 139, 144, 133, 140, 134, 131, 138, 143, 133, 144, 142, 139, 133, 135, 124, 140, 148, 143, 144, 140, 146, 139, 146, 132, 147, 141, 135, 142, 137, 136, 146, 149, 139, 133, 143, 143, 138, 136, 136, 146, 146, 134, 141, 137, 137, 147, 147, 129, 142, 139, 139, 142, 141, 127, 138, 139, 142, 148, 140, 137, 138, 132, 147, 137, 135, 140, 138, 134, 141, 135, 143, 147, 141, 130, 141, 139, 142, 145, 142, 144, 138, 136, 139, 141, 126, 141, 137, 142, 134, 134, 136, 137, 141, 139, 150, 149, 145, 136, 139, 143, 134, 147, 130, 145, 134, 138, 138, 135, 122, 132, 142, 142, 146, 125, 135, 139, 147, 148, 132, 139, 130, 136, 137, 147, 139, 139, 133, 135, 147, 138, 152, 140, 140, 147, 140, 136, 132, 144, 141, 145, 142, 141, 139, 140, 138, 146, 148, 142, 149, 137, 142, 135, 151, 143, 142, 133, 135, 139, 139, 148, 135, 142, 146, 129, 133, 154, 144, 132, 131, 130, 135, 125, 129, 135, 129, 135, 146, 144, 138, 136, 142, 132, 144, 130, 138, 150, 142, 138, 141, 137, 143, 139, 144, 133, 140, 135, 138, 130, 159, 130, 133, 143, 148, 138, 134, 139, 134, 128, 151, 136, 134, 136, 140, 141, 138, 139, 136, 133, 133, 141, 139, 133, 143, 143, 139, 146, 136, 138, 137, 126, 143, 136, 141, 142, 130, 135, 135, 143, 149, 140, 143, 135, 141, 132, 156, 128, 138, 140, 128, 126, 141, 131, 139, 135, 140, 148, 140, 144, 142, 139, 131, 139, 138, 138, 141, 133, 138, 134, 146, 136, 136, 134, 143, 135, 129, 133, 141, 131, 148, 142, 136, 146, 137, 137, 146, 134, 140, 147, 138, 135, 140, 138, 146, 142, 136, 140, 130, 135, 137, 125, 136, 134, 128, 145, 142, 133, 145, 144, 143, 142, 140, 141, 138, 135, 129, 144, 142, 140, 144, 139, 146, 136, 151, 135, 127, 131, 139, 139, 143, 136, 130, 135, 131, 133, 135, 135, 134, 137, 143, 144, 138, 140, 132, 142, 141, 142, 130, 134, 143, 151, 128, 136, 145, 144, 143, 147, 130, 136, 141, 144, 136, 136, 147, 141, 137, 137, 139, 134, 136, 144, 139, 142, 137, 133, 132, 145, 137, 128, 136, 135, 127, 134, 136, 135, 144, 143, 132, 139, 140, 137, 141, 145, 132, 140, 138, 134, 128, 125, 141, 142, 140, 136, 144, 139, 146, 148, 133, 138, 143, 142, 133, 147, 135, 137, 135, 154, 133, 134, 141, 142, 143, 140, 144, 144, 142, 147, 129, 138, 137, 131, 134, 137, 145, 135, 132, 146, 146, 142, 138, 150, 141, 136, 150, 135, 138, 141, 148, 143, 140, 135, 143, 132, 136, 140, 144, 136, 133, 130, 125, 146, 147, 133, 139, 144, 143, 132, 144, 134, 132, 141, 136, 135, 135, 134, 142, 131, 140, 137, 142, 146, 140, 137, 131, 131, 134, 146, 138, 142, 139, 142, 143, 138, 136, 140, 140, 134, 140, 135, 142, 133, 140, 140, 136, 141, 148, 146, 139, 139, 129, 142, 140, 133, 127, 135, 137, 141, 135, 129, 145, 139, 138, 155, 134, 129, 134, 137, 139, 137, 137, 138, 137, 135, 135, 136, 132, 137, 140, 134, 134, 145, 149, 138, 131, 137, 138, 134, 140, 134, 137, 132, 140, 140, 141, 140, 137, 136, 145, 139, 141, 143, 134, 137, 136, 133, 138, 139, 130, 142, 152, 138, 145, 139, 140, 139, 138, 145, 136, 142, 139, 144, 142, 142, 137, 138, 138, 137, 145, 140, 139, 140, 150, 134, 147, 134, 140, 136, 132, 140, 140, 141, 146, 136, 134, 137, 135, 133, 136, 140, 139, 148, 135, 134, 132, 141, 138, 145, 140, 137, 140, 143, 137, 133, 141, 155, 140, 136, 138, 142, 137, 138, 143, 129, 135, 144, 137, 145, 142, 146, 130, 146, 137, 143, 140, 140, 137, 139, 136, 134, 140, 131, 138, 150, 155, 138, 139, 130, 137, 142, 143, 136, 139, 135, 135, 140, 151, 140, 141, 147, 142, 137, 136, 135, 140, 144, 136, 145, 133, 135, 141, 141, 132, 139, 141, 142, 136, 133, 138, 144, 134, 142, 137, 137, 137, 130, 141, 135, 141, 137, 137, 140, 146, 139, 141, 147, 131, 140, 138, 139, 136, 137, 135, 139, 136, 138, 145, 135, 133, 140, 145, 136, 139, 133, 134, 135, 140, 144, 142, 138, 128, 141, 128, 138, 138, 144, 140, 133, 138, 139, 141, 137, 139, 144, 139, 145, 142, 141, 136, 143, 140, 142, 138, 138, 140, 130, 138, 135, 137, 139, 137, 138, 136, 142, 142, 137, 143, 137, 139, 146, 141, 138, 136, 139, 147, 138, 137, 138, 136, 131, 136, 143, 133, 145, 139, 142, 141, 143, 134, 138, 148, 142, 147, 137, 139, 135, 137, 138, 131, 141, 137, 137, 145, 153, 134, 142, 139, 135, 135, 141, 137, 140, 131, 146, 140, 133, 131, 139, 138, 148, 139, 136, 135, 140, 139, 142, 131, 138, 134, 136, 147, 143, 138, 135, 136, 142, 128, 137, 137, 138, 143, 140, 128, 143, 136, 147, 135, 142, 139, 130, 147, 146, 134, 134, 137, 132, 140, 141, 146, 144, 135, 135, 134, 142, 136, 135, 139, 141, 142, 135, 136, 137, 145, 140, 140, 137, 138, 141, 138, 142, 143, 138, 140, 141, 135, 145, 138, 140, 140, 146, 150, 136, 141, 136, 144, 136, 143, 132, 135, 142, 131, 142, 134, 131, 144, 142, 139, 135, 135, 136, 138, 139, 137, 138, 139, 133, 135, 138, 136, 136, 133, 140, 134, 142, 147, 139, 138, 133, 132, 135, 137, 136, 133, 148, 128, 140, 136, 144, 134, 147, 132, 133, 142, 140, 147, 144, 130, 142, 139, 140, 134, 136, 147, 132, 142, 137, 141, 142, 142, 131, 138, 124, 144, 143, 135, 146, 135, 142, 134, 145, 123, 138, 146, 135, 138, 142, 137, 142, 136, 146, 141, 139, 132, 134, 136, 142, 139, 146, 137, 135, 139, 142, 144, 143, 138, 137, 141, 140, 138, 140, 141, 140, 138, 144, 140, 144, 144, 137, 144, 145, 143, 142, 135, 138, 139, 137, 142, 144, 141, 130, 141, 136, 146, 140, 143, 146, 142, 146, 146, 144, 134, 141, 140, 143, 139, 140, 146, 140, 143, 140, 143, 136, 141, 137, 140, 141, 136, 140, 140, 139, 139, 148, 136, 137, 139, 140, 138, 138, 141, 138, 143, 140, 144, 145, 142, 141, 141, 137, 142, 143, 143, 139, 137, 147, 139, 133, 133, 134, 145, 145, 136, 134, 145, 140, 142, 135, 139, 137, 140, 140, 148, 140, 134, 139, 131, 136, 143, 134, 138, 140, 142, 139, 130, 143, 136, 141, 135, 141, 138, 144, 134, 141, 135, 136, 149, 134, 129, 144, 137, 139, 136, 138, 144, 138, 147, 136, 144, 133, 135, 143, 140, 136, 135, 136, 138, 138, 140, 144, 143, 136, 146, 140, 137, 136, 142, 138, 142, 136, 139, 139, 136, 137, 137, 137, 143, 143, 136, 138, 142, 143, 145, 137, 140, 144, 139, 147, 142, 138, 136, 140, 141, 140, 141, 135, 142, 141, 139, 141, 135, 139, 142, 133, 145, 146, 140, 135, 138, 140, 138, 141, 144, 142, 144, 136, 142, 140, 142, 142, 139, 139, 146, 138, 133, 148, 135, 132, 139, 136, 138, 144, 133, 139, 144, 142, 140, 134, 141, 142, 141, 137, 138, 135, 138, 136, 137, 133, 145, 143, 137, 141, 137, 137, 141, 144, 135, 141, 133, 146, 140, 129, 142, 137, 141, 140, 137, 147, 136, 142, 141, 137, 137, 136, 139, 140, 141, 137, 144, 141, 139, 144, 143, 143, 137, 138, 140, 138, 141, 140, 142, 141, 137, 135, 137, 144, 140, 136, 136, 138, 140, 141, 145, 133, 137, 144, 143, 137, 139, 144, 134, 139, 142, 145, 137, 142, 140, 141, 141, 139, 139, 138, 138, 141, 138, 149, 139, 133, 139, 141, 144, 139, 137, 137, 135, 136, 141, 149, 146, 137, 136, 143, 145, 137, 144, 137, 128, 138, 140, 143, 142, 138, 141, 142, 139, 136, 142, 131, 139, 143, 140, 136, 133, 146, 135, 141, 143, 135, 141, 142, 140, 134, 138, 137, 143, 137, 143, 144, 137, 141, 136, 134, 144, 138, 148, 141, 136, 139, 140, 142, 139, 137, 140, 142, 139, 143, 141, 139, 147, 141, 141, 137, 131, 136, 144, 134, 141, 149, 132, 142, 136, 135, 137, 135, 137, 134, 137, 143, 142, 138, 146, 141, 148, 141, 141, 137, 140, 136, 140, 147, 135, 137, 136, 145, 137, 138, 149, 142, 140, 144, 131, 137, 134, 135, 142, 143, 149, 151, 136, 140, 134, 135, 144, 137, 145, 139, 139, 139, 135, 142, 136, 140, 136, 143, 142, 133, 133, 140, 139, 146, 145, 139, 137, 142, 135, 139, 137, 137, 140, 140, 139, 143, 138, 134, 142, 141, 143, 141, 136, 142, 141, 141, 141, 136, 136, 146, 139, 144, 143, 144, 142, 138, 139, 141, 144, 144, 141, 146, 135, 141, 138, 144, 144, 133, 142, 133, 133, 133, 142, 142, 138, 158, 138, 139, 129, 136, 123, 145, 153, 129, 140, 135, 136, 140, 133, 125, 152, 151, 131, 146, 134, 138, 137, 128, 133, 133, 135, 156, 132, 127, 141, 133, 137, 142, 143, 143, 127, 132, 134, 129, 140, 149, 135, 125, 132, 144, 143, 135, 133, 144, 128, 139, 146, 129, 141, 136, 140, 147, 136, 136, 136, 141, 140, 140, 130, 139, 135, 148, 139, 143, 141, 137, 147, 133, 132, 141, 141, 142, 142, 147, 142, 134, 136, 140, 148, 148, 135, 142, 144, 137, 142, 132, 141, 137, 145, 142, 135, 132, 139, 131, 150, 131, 133, 140, 139, 146, 135, 135, 130, 148, 140, 146, 131, 141, 135, 141, 145, 149, 128, 130, 146, 143, 144, 142, 140, 135, 141, 133, 129, 141, 136, 137, 145, 139, 134, 141, 134, 141, 144, 134, 127, 134, 142, 140, 147, 133, 139, 138, 126, 137, 132, 142, 141, 140, 144, 141, 135, 141, 145, 139, 133, 147, 138, 148, 144, 138, 138, 137, 134, 134, 144, 153, 133, 128, 151, 141, 141, 139, 144, 141, 134, 143, 146, 154, 131, 140, 145, 148, 132, 133, 136, 143, 151, 138, 135, 130, 143, 148, 131, 144, 142, 147, 149, 148, 146, 127, 140, 138, 124, 139, 134, 135, 141, 140, 148, 135, 132, 144, 134, 129, 135, 130, 143, 134, 147, 143, 130, 137, 129, 131, 133, 133, 138, 132, 138, 146, 147, 132, 135, 131, 142, 136, 142, 131, 139, 134, 137, 138, 133, 134, 135, 147, 136, 137, 136, 138, 136, 135, 136, 139, 134, 146, 146, 143, 127, 140, 134, 144, 132, 144, 139, 137, 136, 144, 137, 138, 146, 128, 142, 126, 141, 133, 129, 132, 130, 137, 140, 128, 139, 158, 138, 137, 147, 154, 149, 134, 135, 138, 138, 144, 144, 147, 131, 129, 137, 126, 140, 143, 146, 135, 143, 147, 141, 149, 134, 148, 135, 144, 140, 147, 139, 134, 132, 137, 138, 139, 137, 130, 132, 148, 142, 142, 151, 134, 143, 142, 146, 128, 150, 142, 144, 138, 135, 150, 139, 143, 146, 134, 143, 141, 136, 138, 146, 138, 142, 136, 134, 147, 138, 134, 140, 137, 129, 129, 137, 145, 143, 140, 136, 141, 149, 138, 135, 138, 148, 132, 147, 139, 139, 150, 144, 135, 139, 138, 145, 136, 133, 137, 136, 139, 136, 154, 126, 132, 135, 132, 137, 134, 126, 127, 136, 140, 144, 140, 132, 139, 140, 150, 141, 133, 143, 143, 127, 137, 135, 138, 152, 145, 135, 139, 140, 138, 136, 142, 148, 144, 141, 136, 128, 135, 146, 136, 139, 144, 132, 136, 143, 133, 137, 156, 144, 129, 139, 139, 144, 136, 139, 128, 139, 131, 137, 135, 131, 131, 129, 137, 141, 134, 138, 148, 147, 138, 133, 144, 132, 146, 143, 139, 146, 137, 134, 151, 142, 127, 146, 138, 150, 130, 130, 132, 138, 132, 129, 132, 143, 134, 138, 145, 143, 141, 143, 131, 141, 141, 136, 144, 132, 143, 138, 128, 138, 135, 147, 128, 148, 140, 132, 139, 134, 144, 147, 133, 140, 134, 134, 141, 144, 147, 140, 124, 153, 140, 116, 139, 143, 141, 135, 129, 133, 145, 139, 146, 135, 143, 133, 139, 137, 150, 141, 136, 146, 142, 141, 135, 125, 133, 144, 132, 137, 136, 130, 132, 146, 130, 142, 143, 140, 133, 137, 142, 144, 149, 138, 139, 150, 124, 137, 134, 137, 137, 131, 144, 141, 135, 128, 128, 129, 137, 141, 136, 140, 145, 144, 136, 130, 125, 137, 132, 134, 146, 142, 133, 139, 141, 140, 131, 143, 143, 143, 140, 144, 138, 141, 134, 136, 141, 132, 140, 134, 136, 127, 142, 141, 139, 142, 137, 138, 139, 146, 144, 144, 144, 136, 141, 133, 129, 136, 134, 138, 132, 139, 145, 142, 132, 137, 128, 144, 140, 134, 140, 134, 139, 140, 144, 147, 141, 140, 135, 137, 143, 135, 130, 153, 143, 150, 140, 139, 133, 148, 141, 137, 134, 154, 145, 131, 137, 142, 136, 136, 135, 139, 152, 130, 142, 141, 135, 143, 141, 135, 134, 138, 134, 142, 130, 142, 130, 146, 144, 137, 138, 138, 137, 136, 135, 137, 141, 138, 135, 137, 150, 148, 127, 135, 133, 139, 135, 150, 144, 144, 141, 156, 142, 140, 137, 139, 140, 135, 149, 132, 139, 130, 139, 134, 137, 132, 137, 137, 136, 149, 136, 138, 142, 134, 140, 138, 129, 130, 139, 136, 140, 137, 148, 148, 133, 138, 119, 131, 136, 140, 139, 139, 142, 131, 140, 144, 137, 122, 151, 133, 137, 133, 134, 138, 137, 148, 137, 137, 131, 148, 138, 146, 135, 128, 153, 144, 136, 141, 136, 141, 144, 135, 141, 139, 148, 137, 143, 147, 143, 145, 146, 140, 140, 141, 137, 130, 140, 139, 140, 141, 136, 137, 142, 132, 130, 146, 147, 128, 137, 139, 141, 141, 136, 135, 131, 136, 134, 153, 143, 135, 134, 138, 136, 144, 148, 145, 136, 160, 134, 135, 140, 127, 141, 131, 137, 136, 145, 143, 143, 140, 155, 140, 145, 140, 139, 137, 138, 132, 134, 139, 130, 130, 124, 146, 143, 128, 138, 143, 146, 134, 148, 129, 140, 136, 140, 141, 135, 147, 134, 162, 131, 144, 136, 135, 141, 127, 138, 134, 134, 139, 152, 131, 140, 129, 154, 128, 130, 140, 138, 138, 135, 134, 133, 133, 136, 134, 144, 143, 144, 128, 146, 135, 142, 140, 133, 141, 154, 132, 142, 140, 138, 137, 140, 144, 139, 138, 140, 137, 145, 133, 139, 135, 140, 131, 128, 141, 137, 132, 139, 141, 135, 140, 140, 143, 130, 137, 133, 135, 143, 133, 135, 136, 139, 134, 138, 140, 138, 154, 145, 145, 139, 129, 134, 138, 144, 141, 144, 138, 138, 129, 141, 133, 135, 146, 146, 141, 120, 128, 139, 135, 139, 138, 143, 139, 139, 145, 144, 151, 135, 133, 149, 150, 163, 150, 144, 141, 140, 143, 139, 142, 139, 133, 138, 144, 145, 138, 145, 139, 132, 127, 144, 141, 136, 134, 133, 139, 138, 150, 150, 122, 116, 127, 135, 138, 137, 131, 132, 138, 147, 149, 134, 129, 142, 132, 144, 137, 151, 148, 137, 138, 142, 133, 138, 139, 137, 135, 144, 147, 141, 142, 136, 137, 147, 143, 138, 135, 132, 141, 145, 133, 143, 136, 131, 139, 144, 146, 139, 141, 138, 143, 142, 139, 145, 138, 123, 144, 146, 146, 136, 139, 144, 146, 136, 141, 151, 135, 145, 135, 140, 138, 139, 135, 148, 137, 127, 138, 127, 141, 132, 138, 142, 144, 138, 135, 140, 138, 133, 134, 131, 137, 140, 128, 145, 138, 143, 134, 137, 135, 136, 128, 135, 131, 134, 135, 133, 142, 134, 137, 146, 120, 137, 132, 140, 144, 147, 138, 127, 150, 144, 138, 144, 141, 143, 137, 141, 138, 133, 157, 130, 141, 144, 136, 139, 143, 144, 134, 136, 134, 138, 136, 141, 129, 134, 127, 127, 126, 145, 140, 138, 143, 147, 145, 148, 145, 131, 131, 138, 133, 133, 139, 136, 139, 133, 145, 142, 136, 146, 142, 145, 141, 154, 135, 134, 133, 135, 133, 151, 128, 134, 140, 143, 138, 138, 135, 141, 140, 136, 141, 136, 141, 143, 136, 136, 149, 130, 130, 148, 137, 145, 143, 135, 139, 137, 140, 138, 144, 138, 133, 141, 138, 141, 141, 145, 137, 131, 134, 144, 136, 137, 142, 130, 142, 134, 125, 140, 143, 147, 139, 140, 140, 146, 140, 133, 136, 144, 136, 142, 146, 132, 134, 145, 141, 142, 136, 137, 129, 141, 139, 137, 129, 137, 125, 131, 138, 137, 135, 137, 137, 139, 129, 132, 147, 147, 131, 132, 143, 130, 141, 143, 138, 137, 140, 139, 143, 137, 139, 135, 134, 131, 136, 149, 137, 150, 151, 137, 127, 144, 133, 139, 143, 133, 133, 146, 132, 123, 140, 136, 142, 139, 144, 137, 143, 136, 138, 146, 141, 148, 142, 132, 136, 131, 142, 145, 135, 138, 142, 132, 129, 141, 130, 137, 128, 149, 137, 133, 141, 140, 137, 152, 149, 142, 143, 140, 141, 142, 135, 145, 141, 141, 142, 137, 132, 131, 148, 138, 146, 136, 135, 147, 141, 151, 135, 138, 125, 144, 137, 146, 132, 144, 140, 134, 147, 143, 140, 136, 125, 140, 145, 132, 127, 132, 148, 141, 139, 143, 142, 142, 133, 137, 141, 134, 135, 136, 140, 132, 144, 132, 137, 146, 140, 134, 146, 138, 153, 133, 146, 149, 146, 133, 145, 144, 128, 146, 141, 143, 133, 133, 135, 143, 139, 138, 133, 143, 141, 135, 138, 141, 134, 135, 142, 136, 140, 143, 131, 141, 142, 134, 138, 146, 148, 135, 135, 140, 126, 139, 149, 137, 137, 136, 135, 141, 145, 137, 146, 142, 139, 140, 138, 128, 139, 133, 139, 147, 143, 148, 133, 148, 144, 134, 138, 146, 135, 135, 134, 134, 139, 143, 139, 143, 134, 144, 142, 137, 134, 145, 136, 146, 130, 139, 145, 134, 144, 146, 138, 143, 142, 137, 141, 136, 134, 134, 143, 132, 134, 141, 139, 137, 141, 135, 139, 138, 128, 142, 137, 149, 137, 143, 142, 141, 141, 149, 129, 136, 134, 140, 132, 138, 134, 142, 137, 138, 137, 134, 139, 136, 138, 141, 141, 140, 134, 136, 145, 137, 134, 132, 147, 141, 135, 142, 140, 143, 139, 135, 140, 137, 135, 140, 141, 143, 138, 138, 140, 139, 138, 148, 138, 142, 141, 144, 138, 139, 142, 140, 139, 143, 141, 132, 138, 140, 139, 133, 136, 139, 138, 133, 135, 137, 130, 143, 133, 147, 138, 139, 138, 139, 147, 136, 137, 137, 134, 134, 135, 144, 148, 139, 131, 140, 132, 141, 134, 140, 136, 135, 136, 138, 140, 140, 136, 135, 136, 140, 140, 139, 138, 138, 139, 140, 140, 135, 134, 139, 140, 134, 136, 134, 142, 137, 141, 134, 141, 136, 140, 137, 135, 140, 134, 137, 140, 138, 139, 144, 142, 131, 139, 129, 136, 134, 139, 132, 141, 144, 139, 138, 141, 140, 135, 141, 137, 134, 135, 140, 138, 142, 134, 141, 136, 142, 141, 134, 138, 139, 142, 143, 144, 145, 143, 139, 141, 140, 137, 131, 139, 136, 136, 142, 142, 141, 142, 136, 147, 135, 138, 139, 149, 134, 136, 144, 136, 143, 143, 141, 147, 135, 139, 139, 141, 143, 138, 138, 139, 140, 143, 138, 140, 142, 142, 142, 139, 135, 136, 140, 143, 148, 137, 139, 136, 139, 140, 139, 145, 136, 141, 143, 139, 143, 136, 137, 133, 142, 139, 136, 143, 138, 147, 141, 136, 138, 138, 140, 138, 138, 131, 145, 139, 141, 141, 145, 137, 142, 139, 136, 138, 131, 139, 139, 137, 141, 137, 140, 141, 138, 133, 138, 133, 150, 140, 147, 139, 135, 142, 140, 137, 141, 140, 139, 138, 139, 144, 144, 135, 139, 139, 137, 137, 138, 140, 139, 137, 140, 140, 139, 138, 144, 142, 138, 142, 138, 140, 136, 133, 141, 137, 134, 140, 136, 136, 136, 139, 137, 136, 137, 145, 146, 138, 134, 140, 140, 137, 140, 134, 136, 141, 139, 141, 136, 145, 138, 139, 140, 137, 141, 139, 136, 141, 136, 144, 138, 140, 143, 142, 140, 134, 134, 144, 145, 142, 138, 143, 135, 137, 143, 137, 142, 141, 138, 137, 136, 139, 135, 137, 138, 138, 143, 137, 140, 135, 143, 142, 138, 139, 140, 140, 138, 142, 138, 136, 141, 138, 139, 136, 136, 140, 138, 135, 137, 137, 141, 133, 141, 140, 137, 136, 138, 134, 137, 138, 138, 141, 137, 133, 136, 134, 139, 138, 145, 138, 136, 140, 140, 139, 136, 139, 141, 143, 141, 139, 138, 146, 137, 140, 137, 139, 139, 138, 140, 142, 133, 141, 134, 139, 138, 138, 137, 138, 141, 143, 137, 138, 137, 147, 131, 143, 141, 146, 132, 140, 146, 140, 143, 138, 145, 139, 139, 141, 134, 140, 140, 138, 140, 139, 140, 138, 140, 143, 145, 142, 149, 135, 142, 139, 140, 135, 139, 139, 139, 141, 142, 147, 140, 143, 141, 138, 135, 132, 140, 143, 144, 141, 143, 139, 136, 134, 140, 134, 137, 132, 143, 132, 143, 141, 139, 140, 138, 142, 137, 137, 130, 146, 142, 139, 140, 134, 139, 140, 136, 134, 141, 140, 156, 137, 138, 142, 147, 143, 133, 142, 140, 129, 118, 141, 136, 139, 140, 138, 144, 133, 137, 142, 139, 138, 135, 132, 138, 139, 129, 130, 136, 128, 135, 135, 144, 134, 127, 134, 142, 140, 136, 133, 138, 138, 141, 143, 140, 130, 148, 142, 139, 139, 134, 130, 144, 137, 140, 136, 142, 133, 139, 134, 148, 152, 136, 142, 135, 129, 136, 147, 146, 141, 151, 137, 133, 128, 142, 145, 139, 157, 135, 141, 140, 140, 138, 136, 132, 143, 138, 142, 133, 135, 144, 140, 142, 141, 142, 136, 143, 138, 137, 140, 142, 139, 136, 138, 131, 141, 134, 139, 137, 141, 145, 140, 134, 134, 138, 132, 147, 133, 142, 133, 132, 138, 150, 144, 138, 133, 141, 141, 139, 138, 144, 132, 138, 144, 132, 148, 151, 137, 137, 128, 133, 143, 141, 133, 129, 140, 138, 145, 135, 133, 132, 126, 144, 145, 139, 133, 140, 150, 134, 139, 133, 142, 143, 146, 134, 139, 145, 141, 144, 139, 143, 139, 138, 132, 135, 141, 141, 130, 134, 143, 139, 141, 138, 138, 144, 138, 139, 137, 138, 144, 147, 139, 140, 136, 129, 148, 145, 130, 133, 140, 138, 139, 138, 137, 151, 147, 138, 138, 144, 136, 135, 133, 136, 138, 148, 134, 140, 145, 136, 136, 138, 138, 142, 134, 145, 129, 139, 141, 141, 145, 143, 131, 132, 147, 137, 146, 137, 142, 140, 141, 146, 140, 134, 151, 132, 138, 132, 137, 143, 146, 138, 142, 132, 142, 137, 139, 147, 140, 142, 140, 141, 142, 128, 138, 140, 141, 140, 137, 135, 133, 142, 141, 137, 133, 138, 136, 133, 133, 146, 143, 137, 142, 136, 132, 141, 133, 133, 141, 142, 139, 128, 136, 145, 143, 139, 140, 142, 144, 138, 141, 135, 136, 132, 141, 132, 135, 150, 142, 144, 141, 132, 128, 139, 137, 134, 145, 142, 134, 137, 141, 136, 141, 128, 135, 147, 141, 139, 137, 135, 144, 146, 132, 135, 140, 144, 135, 136, 144, 132, 145, 146, 139, 142, 141, 136, 131, 145, 140, 138, 130, 129, 138, 138, 138, 139, 140, 129, 144, 146, 136, 143, 146, 130, 139, 139, 132, 140, 139, 131, 143, 152, 144, 138, 133, 138, 140, 141, 138, 142, 134, 144, 128, 136, 139, 139, 135, 135, 136, 139, 146, 132, 130, 141, 146, 141, 143, 145, 140, 142, 147, 135, 137, 135, 134, 134, 143, 140, 138, 140, 136, 145, 139, 148, 144, 147, 139, 148, 147, 140, 136, 138, 139, 133, 147, 143, 138, 148, 133, 138, 145, 145, 142, 139, 138, 138, 145, 144, 135, 142, 139, 151, 135, 145, 144, 137, 143, 137, 139, 137, 136, 133, 140, 132, 132, 132, 135, 140, 140, 132, 148, 143, 146, 147, 137, 135, 141, 145, 135, 137, 144, 142, 139, 129, 137, 145, 139, 145, 133, 145, 132, 137, 148, 150, 148, 133, 138, 138, 134, 140, 144, 131, 153, 139, 142, 138, 139, 140, 140, 133, 142, 141, 143, 141, 132, 132, 134, 144, 137, 139, 129, 125, 140, 146, 142, 134, 141, 142, 140, 142, 133, 135, 145, 142, 135, 143, 135, 141, 132, 139, 150, 137, 142, 134, 138, 126, 131, 140, 131, 138, 136, 135, 130, 139, 135, 141, 133, 137, 133, 131, 143, 138, 141, 131, 140, 138, 147, 145, 142, 132, 140, 134, 139, 139, 150, 137, 149, 136, 137, 146, 146, 145, 137, 144, 138, 141, 142, 120, 137, 139, 135, 131, 144, 129, 141, 143, 132, 139, 140, 134, 144, 124, 141, 142, 126, 142, 140, 132, 137, 145, 142, 139, 145, 136, 135, 134, 135, 126, 143, 147, 150, 139, 145, 134, 145, 141, 140, 135, 137, 137, 137, 142, 142, 134, 143, 131, 132, 142, 138, 131, 146, 134, 126, 140, 133, 138, 143, 137, 133, 133, 134, 133, 134, 140, 131, 141, 140, 138, 132, 142, 133, 135, 144, 137, 127, 130, 139, 147, 139, 145, 144, 142, 131, 145, 141, 138, 149, 141, 146, 132, 130, 134, 140, 132, 137, 138, 146, 140, 139, 132, 147, 135, 135, 138, 137, 142, 138, 137, 140, 137, 151, 130, 145, 134, 136, 137, 139, 140, 140, 137, 150, 128, 138, 146, 137, 142, 135, 140, 144, 133, 129, 149, 154, 151, 139, 139, 133, 136, 147, 145, 133, 141, 140, 127, 136, 140, 139, 137, 138, 143, 131, 133, 129, 137, 137, 128, 136, 134, 137, 136, 143, 130, 146, 149, 141, 144, 135, 138, 140, 144, 145, 140, 151, 135, 123, 143, 132, 144, 137, 151, 137, 129, 140, 140, 130, 132, 139, 134, 131, 133, 145, 143, 137, 144, 141, 143, 144, 139, 136, 136, 141, 142, 131, 142, 139, 142, 138, 145, 135, 139, 134, 148, 134, 140, 140, 135, 131, 140, 138, 129, 145, 131, 128, 138, 132, 136, 136, 140, 139, 136, 135, 131, 139, 134, 145, 140, 140, 126, 137, 138, 145, 141, 144, 152, 135, 157, 137, 129, 141, 140, 142, 137, 142, 142, 121, 146, 134, 140, 136, 134, 131, 139, 136, 121, 146, 131, 133, 133, 136, 127, 145, 143, 137, 130, 142, 142, 126, 134, 136, 138, 141, 139, 140, 140, 144, 137, 133, 137, 144, 139, 138, 132, 138, 141, 139, 140, 131, 132, 136, 146, 149, 138, 136, 139, 134, 142, 136, 139, 143, 146, 142, 138, 137, 135, 140, 138, 139, 138, 133, 131, 135, 133, 136, 138, 137, 133, 146, 143, 142, 136, 135, 139, 142, 143, 136, 129, 138, 146, 137, 134, 133, 141, 142, 145, 133, 135, 136, 139, 136, 140, 141, 139, 137, 129, 141, 138, 135, 141, 139, 147, 127, 122, 140, 147, 149, 140, 142, 134, 135, 145, 133, 144, 137, 133, 144, 140, 143, 138, 136, 128, 133, 142, 136, 148, 143, 139, 139, 141, 141, 161, 137, 126, 139, 139, 127, 147, 143, 131, 129, 139, 136, 142, 147, 132, 156, 146, 139, 147, 144, 138, 130, 144, 150, 138, 148, 136, 140, 129, 135, 149, 141, 134, 148, 143, 138, 139, 153, 146, 133, 132, 145, 136, 140, 142, 138, 129, 131, 146, 138, 154, 136, 125, 148, 141, 148, 141, 136, 124, 141, 141, 140, 138, 133, 133, 143, 136, 149, 134, 142, 134, 148, 136, 145, 136, 151, 134, 134, 142, 142, 144, 136, 141, 128, 145, 136, 138, 131, 130, 144, 133, 135, 126, 145, 132, 146, 135, 153, 131, 143, 137, 131, 140, 144, 146, 133, 130, 138, 141, 147, 128, 136, 147, 141, 124, 140, 134, 146, 137, 139, 139, 133, 140, 137, 131, 141, 130, 147, 135, 131, 137, 146, 143, 128, 148, 136, 152, 138, 125, 141, 139, 135, 140, 144, 137, 141, 136, 144, 152, 135, 149, 137, 132, 133, 135, 147, 128, 137, 138, 148, 135, 137, 141, 151, 138, 142, 131, 143, 143, 140, 142, 136, 137, 135, 138, 142, 168, 133, 143, 143, 127, 137, 145, 149, 137, 141, 140, 142, 125, 146, 135, 144, 136, 136, 137, 127, 146, 132, 137, 140, 141, 141, 139, 135, 144, 135, 141, 151, 133, 140, 139, 139, 150, 134, 134, 139, 142, 132, 134, 135, 142, 141, 143, 139, 138, 133, 130, 140, 124, 137, 149, 138, 141, 134, 149, 141, 143, 144, 134, 134, 140, 145, 145, 133, 135, 137, 159, 147, 142, 131, 134, 135, 147, 133, 149, 142, 143, 139, 135, 135, 145, 142, 135, 147, 145, 138, 142, 146, 144, 141, 130, 133, 135, 134, 137, 138, 152, 140, 143, 131, 138, 139, 135, 139, 145, 143, 133, 135, 133, 140, 137, 133, 132, 140, 141, 142, 132, 141, 133, 130, 145, 137, 132, 144, 140, 127, 134, 137, 146, 148, 142, 136, 134, 144, 138, 138, 137, 136, 145, 141, 134, 134, 136, 148, 143, 142, 139, 142, 137, 132, 152, 132, 140, 136, 138, 144, 137, 155, 136, 139, 141, 148, 142, 141, 152, 135, 129, 138, 136, 136, 134, 141, 140, 138, 146, 148, 145, 138, 123, 131, 139, 131, 134, 129, 145, 140, 138, 139, 130, 140, 140, 133, 143, 134, 139, 144, 138, 144, 154, 137, 136, 131, 142, 131, 144, 133, 130, 130, 132, 138, 135, 131, 142, 135, 138, 140, 154, 135, 143, 132, 131, 143, 142, 142, 133, 150, 133, 144, 138, 143, 139, 147, 147, 138, 136, 137, 144, 148, 134, 134, 136, 150, 131, 138, 138, 137, 138, 145, 146, 139, 141, 140, 134, 139, 134, 126, 144, 134, 134, 144, 144, 136, 140, 134, 146, 143, 135, 135, 137, 151, 136, 139, 143, 142, 138, 132, 135, 139, 134, 153, 136, 139, 137, 145, 142, 128, 141, 138, 142, 133, 132, 134, 147, 145, 142, 135, 126, 137, 148, 139, 135, 140, 143, 149, 151, 146, 143, 145, 136, 143, 133, 143, 139, 129, 138, 130, 150, 136, 145, 130, 130, 142, 141, 141, 139, 137, 135, 136, 131, 150, 127, 137, 141, 132, 143, 140, 128, 145, 138, 141, 132, 138, 143, 135, 138, 138, 147, 138, 139, 135, 136, 138, 137, 136, 133, 146, 156, 139, 143, 131, 124, 134, 137, 144, 145, 142, 130, 139, 139, 138, 136, 137, 145, 146, 142, 138, 135, 138, 135, 140, 143, 143, 138, 134, 135, 143, 132, 136, 139, 140, 138, 144, 135, 131, 147, 143, 154, 156, 122, 138, 137, 140, 134, 141, 132, 134, 145, 150, 131, 131, 131, 126, 131, 137, 144, 129, 134, 131, 136, 133, 146, 137, 138, 131, 129, 136, 144, 149, 138, 138, 139, 138, 128, 133, 132, 136, 134, 134, 141, 127, 144, 129, 144, 148, 141, 137, 140, 139, 141, 149, 140, 143, 130, 138, 144, 141, 127, 143, 146, 146, 138, 132, 142, 144, 145, 141, 135, 139, 145, 133, 152, 143, 146, 132, 140, 134, 131, 145, 136, 134, 141, 146, 129, 154, 128, 144, 128, 144, 134, 133, 146, 129, 128, 135, 138, 133, 138, 136, 147, 157, 131, 138, 137, 139, 142, 138, 140, 146, 137, 134, 143, 136, 145, 130, 138, 136, 137, 136, 128, 142, 145, 145, 134, 146, 135, 142, 144, 131, 142, 137, 135, 141, 139, 142, 137, 140, 141, 143, 132, 138, 137, 143, 137, 141, 149, 128, 146, 148, 141, 135, 142, 149, 141, 133, 141, 148, 140, 139, 133, 138, 131, 156, 143, 132, 131, 154, 140, 149, 143, 131, 139, 132, 127, 132, 136, 141, 131, 140, 136, 136, 138, 137, 143, 136, 140, 138, 137, 142, 142, 132, 129, 143, 150, 147, 140, 141, 140, 139, 129, 131, 131, 140, 133, 139, 132, 137, 133, 129, 137, 143, 136, 140, 141, 139, 139, 144, 148, 147, 141, 132, 144, 146, 141, 136, 145, 137, 150, 130, 142, 141, 143, 141, 140, 147, 141, 152, 144, 134, 133, 142, 137, 136, 147, 143, 136, 149, 136, 147, 148, 145, 144, 152, 133, 137, 136, 138, 146, 141, 132, 133, 139, 148, 131, 139, 133, 127, 139, 143, 140, 140, 141, 147, 133, 140, 144, 137, 140, 143, 147, 126, 140, 145, 133, 144, 141, 150, 140, 134, 133, 135, 137, 136, 135, 151, 138, 140, 139, 141, 140, 145, 152, 142, 136, 141, 139, 145, 142, 135, 155, 139, 136, 137, 137, 141, 144, 139, 136, 133, 141, 134, 133, 129, 142, 136, 137, 139, 137, 133, 135, 136, 136, 140, 135, 151, 142, 122, 144, 147, 126, 133, 136, 146, 136, 140, 143, 141, 134, 130, 138, 140, 134, 138, 135, 142, 140, 129, 141, 143, 135, 135, 147, 138, 128, 151, 134, 147, 148, 137, 131, 133, 139, 148, 144, 124, 155, 133, 136, 145, 140, 127, 144, 133, 133, 137, 150, 141, 134, 140, 134, 128, 140, 140, 133, 139, 141, 131, 140, 125, 124, 140, 134, 133, 144, 146, 134, 140, 138, 147, 143, 143, 147, 142, 137, 135, 138, 137, 128, 140, 153, 142, 139, 135, 135, 152, 137, 134, 139, 136, 149, 126, 140, 126, 149, 141, 137, 140, 128, 139, 137, 138, 136, 144, 144, 138, 134, 149, 142, 139, 131, 143, 138, 137, 142, 138, 144, 138, 135, 141, 144, 137, 144, 153, 131, 136, 137, 143, 137, 134, 135, 133, 145, 142, 141, 140, 129, 136, 140, 135, 130, 152, 137, 134, 136, 133, 147, 148, 134, 143, 132, 139, 133, 139, 140, 135, 129, 135, 136, 144, 141, 127, 138, 143, 137, 147, 140, 133, 137, 134, 140, 141, 145, 138, 144, 147, 140, 147, 136, 141, 137, 143, 141, 137, 138, 137, 138, 150, 131, 145, 133, 143, 136, 147, 137, 137, 133, 140, 138, 128, 132, 134, 144, 136, 134, 137, 129, 141, 132, 146, 149, 140, 137, 135, 147, 138, 130, 147, 142, 137, 151, 145, 139, 147, 150, 144, 127, 132, 137, 147, 144, 128, 146, 146, 140, 137, 141, 146, 138, 136, 134, 150, 136, 141, 138, 150, 123, 138, 142, 132, 145, 136, 137, 139, 130, 140, 138, 130, 135, 138, 140, 132, 148, 133, 141, 142, 149, 142, 157, 143, 143, 138, 134, 135, 137, 137, 145, 137, 142, 140, 138, 141, 147, 150, 139, 131, 150, 141, 143, 135, 133, 130, 146, 141, 136, 130, 144, 139, 136, 132, 127, 146, 130, 145, 149, 149, 141, 130, 138, 151, 142, 137, 131, 144, 134, 138, 134, 135, 128, 147, 139, 141, 132, 139, 137, 137, 144, 132, 134, 141, 141, 136, 150, 138, 141, 134, 140, 130, 138, 128, 139, 133, 137, 128, 149, 134, 147, 132, 153, 139, 152, 136, 141, 131, 149, 144, 146, 148, 133, 143, 134, 137, 136, 131, 139, 139, 143, 132, 135, 147, 138, 131, 144, 138, 135, 139, 133, 132, 138, 131, 138, 144, 137, 159, 146, 132, 132, 135, 134, 134, 146, 134, 146, 145, 136, 132, 139, 141, 135, 130, 128, 135, 128, 128, 134, 137, 129, 131, 144, 133, 134, 150, 129, 144, 138, 137, 137, 126, 145, 141, 143, 141, 151, 143, 138, 138, 153, 137, 137, 137, 144, 139, 131, 129, 144, 142, 140, 136, 132, 131, 135, 138, 143, 142, 131, 136, 137, 135, 143, 139, 128, 131, 127, 144, 136, 137, 139, 125, 134, 133, 140, 153, 148, 131, 131, 147, 126, 141, 137, 133, 143, 136, 135, 135, 136, 140, 154, 136, 140, 129, 143, 143, 142, 153, 141, 125, 133, 141, 141, 138, 140, 152, 141, 140, 151, 132, 137, 141, 132, 135, 142, 131, 145, 134, 128, 131, 146, 150, 130, 131, 141, 132, 143, 133, 141, 125, 132, 148, 152, 139, 134, 131, 127, 138, 137, 136, 144, 130, 141, 137, 137, 137, 141, 134, 140, 134, 142, 137, 145, 134, 139, 146, 160, 135, 131, 142, 137, 143, 130, 131, 156, 132, 146, 138, 140, 143, 142, 138, 149, 134, 136, 141, 140, 133, 140, 145, 126, 135, 136, 137, 136, 142, 153, 141, 133, 146, 141, 146, 138, 145, 137, 129, 141, 144, 141, 147, 152, 152, 130, 140, 141, 125, 137, 151, 140, 134, 142, 132, 141, 133, 143, 161, 138, 142, 142, 134, 131, 139, 124, 133, 145, 128, 134, 144, 151, 142, 132, 133, 145, 141, 138, 139, 144, 136, 125, 142, 130, 138, 138, 148, 140, 146, 138, 132, 142, 132, 137, 137, 135, 141, 142, 144, 136, 133, 146, 140, 141, 134, 135, 133, 136, 139, 150, 135, 139, 134, 135, 146, 134, 136, 141, 139, 136, 139, 147, 127, 143, 135, 142, 144, 128, 136, 125, 133, 137, 140, 136, 140, 138, 143, 147, 131, 141, 136, 134, 144, 138, 140, 143, 136, 142, 140, 142, 135, 139, 130, 139, 142, 134, 137, 132, 139, 138, 139, 144, 129, 142, 138, 135, 140, 142, 139, 135, 142, 144, 125, 140, 144, 133, 139, 142, 137, 141, 139, 130, 137, 137, 141, 136, 140, 137, 138, 142, 139, 133, 138, 135, 142, 132, 144, 139, 140, 132, 133, 133, 138, 134, 134, 141, 141, 144, 139, 142, 132, 137, 133, 141, 138, 138, 136, 140, 142, 136, 131, 136, 133, 138, 132, 135, 149, 143, 140, 130, 141, 137, 138, 140, 127, 138, 137, 137, 135, 133, 143, 137, 144, 135, 136, 140, 140, 140, 138, 138, 138, 139, 138, 131, 143, 145, 139, 139, 134, 138, 145, 140, 137, 136, 133, 146, 146, 143, 137, 132, 143, 137, 133, 141, 140, 145, 131, 141, 142, 147, 142, 140, 141, 133, 134, 140, 137, 136, 140, 134, 142, 137, 136, 136, 134, 143, 141, 140, 136, 137, 143, 133, 141, 131, 138, 144, 138, 133, 135, 144, 133, 144, 136, 143, 138, 141, 139, 142, 138, 133, 138, 137, 139, 131, 136, 135, 146, 146, 134, 136, 139, 141, 139, 137, 146, 141, 144, 136, 142, 138, 132, 141, 142, 136, 139, 142, 130, 137, 143, 133, 140, 143, 144, 140, 142, 138, 142, 139, 142, 144, 143, 138, 135, 134, 138, 141, 137, 137, 133, 138, 135, 133, 134, 132, 140, 138, 140, 141, 132, 132, 134, 140, 143, 133, 136, 137, 133, 138, 137, 136, 150, 135, 141, 137, 140, 140, 136, 135, 135, 140, 141, 138, 148, 139, 137, 149, 137, 136, 139, 136, 136, 139, 140, 134, 136, 144, 135, 138, 145, 137, 132, 139, 142, 132, 141, 135, 151, 140, 141, 141, 136, 137, 149, 142, 139, 143, 142, 132, 136, 143, 141, 143, 140, 130, 136, 142, 148, 136, 140, 143, 142, 132, 141, 143, 147, 137, 137, 145, 136, 134, 147, 147, 146, 136, 142, 145, 131, 147, 136, 136, 141, 136, 142, 143, 139, 145, 139, 138, 138, 133, 138, 143, 140, 135, 134, 129, 140, 144, 146, 133, 137, 140, 141, 135, 137, 135, 132, 138, 137, 142, 143, 133, 139, 139, 128, 140, 136, 136, 146, 135, 136, 144, 137, 135, 137, 144, 132, 135, 134, 137, 138, 134, 135, 136, 138, 139, 142, 140, 136, 142, 146, 142, 138, 135, 142, 140, 135, 134, 137, 136, 136, 143, 143, 140, 135, 137, 133, 133, 137, 136, 139, 142, 138, 142, 138, 146, 142, 142, 142, 141, 152, 141, 137, 135, 137, 133, 137, 139, 133, 134, 149, 138, 137, 148, 138, 136, 146, 134, 129, 136, 133, 140, 136, 156, 137, 145, 139, 139, 134, 140, 135, 133, 135, 138, 133, 135, 139, 135, 146, 140, 147, 138, 138, 144, 148, 133, 145, 141, 137, 141, 139, 152, 139, 145, 137, 138, 136, 142, 138, 150, 136, 139, 143, 142, 135, 137, 139, 134, 143, 134, 142, 134, 141, 133, 149, 145, 146, 132, 135, 133, 148, 137, 133, 140, 136, 133, 145, 141, 144, 147, 133, 135, 136, 147, 144, 135, 139, 144, 144, 137, 150, 137, 144, 140, 143, 144, 147, 144, 142, 145, 139, 135, 150, 142, 139, 140, 141, 139, 143, 141, 140, 136, 149, 136, 133, 138, 137, 141, 137, 133, 136, 136, 144, 137, 147, 142, 135, 139, 140, 134, 139, 143, 139, 144, 138, 133, 146, 135, 138, 133, 143, 143, 136, 144, 139, 143, 134, 143, 141, 133, 137, 138, 141, 141, 143, 137, 140, 132, 136, 133, 135, 154, 138, 141, 134, 133, 143, 140, 141, 139, 137, 142, 145, 144, 139, 140, 133, 137, 137, 138, 143, 135, 134, 140, 142, 147, 131, 148, 139, 133, 141, 147, 132, 136, 131, 141, 136, 140, 144, 134, 140, 138, 138, 137, 149, 135, 138, 138, 146, 131, 142, 131, 142, 146, 140, 137, 138, 136, 135, 136, 141, 148, 143, 137, 138, 141, 137, 133, 150, 137, 137, 140, 141, 143, 134, 133, 144, 139, 139, 145, 136, 141, 141, 141, 154, 137, 141, 137, 143, 151, 138, 137, 142, 127, 140, 146, 140, 147, 137, 147, 141, 149, 141, 133, 140, 135, 135, 137, 145, 135, 140, 142, 141, 137, 138, 136, 139, 146, 141, 136, 150, 145, 134, 138, 145, 144, 140, 144, 136, 138, 135, 131, 134, 140, 132, 136, 143, 141, 139, 138, 135, 139, 146, 135, 140, 141, 137, 148, 141, 129, 132, 138, 140, 150, 139, 131, 140, 144, 136, 138, 139, 142, 141, 136, 136, 142, 146, 133, 135, 142, 136, 138, 138, 142, 139, 137, 137, 132, 142, 140, 140, 142, 130, 144, 141, 136, 140, 135, 131, 137, 128, 138, 143, 142, 144, 148, 136, 146, 135, 141, 132, 137, 140, 137, 138, 133, 144, 142, 141, 147, 145, 136, 134, 135, 133, 127, 139, 144, 138, 133, 136, 148, 137, 138, 136, 135, 135, 138, 143, 134, 135, 146, 136, 139, 138, 143, 144, 134, 142, 136, 141, 138, 148, 140, 148, 138, 140, 139, 132, 137, 137, 136, 130, 137, 135, 137, 140, 143, 145, 142, 143, 132, 133, 144, 138, 141, 133, 144, 150, 139, 134, 140, 134, 135, 131, 144, 135, 130, 127, 150, 142, 147, 138, 135, 134, 143, 141, 148, 134, 141, 139, 134, 135, 137, 141, 139, 141, 141, 139, 140, 133, 137, 135, 141, 140, 140, 141, 141, 128, 142, 132, 134, 140, 135, 135, 144, 136, 142, 140, 142, 135, 133, 142, 145, 143, 140, 136, 141, 138, 130, 137, 140, 130, 126, 138, 136, 141, 140, 146, 143, 150, 132, 134, 143, 133, 134, 133, 137, 138, 146, 131, 131, 132, 134, 142, 150, 149, 134, 141, 138, 149, 144, 138, 136, 137, 138, 138, 151, 131, 140, 140, 134, 134, 137, 136, 146, 143, 136, 133, 137, 148, 140, 142, 139, 138, 132, 150, 139, 139, 145, 137, 151, 137, 140, 134, 145, 140, 145, 137, 142, 145, 146, 135, 141, 135, 133, 137, 140, 137, 137, 148, 139, 148, 143, 141, 132, 134, 132, 135, 138, 137, 139, 137, 131, 130, 136, 138, 134, 133, 144, 142, 148, 144, 142, 134, 137, 134, 135, 146, 136, 138, 140, 138, 135, 141, 131, 135, 133, 138, 141, 133, 144, 146, 141, 140, 140, 139, 138, 144, 140, 151, 139, 142, 150, 149, 137, 125, 135, 134, 133, 142, 133, 141, 138, 139, 133, 143, 145, 137, 124, 135, 137, 132, 138, 132, 146, 138, 140, 136, 126, 142, 138, 138, 140, 141, 132, 134, 143, 141, 140, 142, 138, 143, 145, 139, 143, 135, 133, 132, 139, 140, 141, 153, 136, 142, 140, 129, 132, 142, 133, 144, 136, 149, 129, 134, 146, 133, 132, 138, 138, 130, 134, 137, 141, 138, 137, 139, 134, 143, 138, 140, 135, 141, 138, 135, 141, 135, 134, 137, 148, 145, 137, 146, 134, 142, 138, 135, 136, 138, 137, 145, 137, 138, 140, 146, 139, 142, 134, 143, 135, 135, 131, 140, 140, 138, 143, 136, 145, 151, 145, 138, 131, 141, 148, 140, 137, 141, 138, 138, 137, 140, 135, 134, 137, 143, 142, 151, 139, 130, 146, 138, 140, 144, 136, 147, 134, 141, 144, 137, 142, 135, 136, 134, 136, 134, 139, 156, 144, 139, 150, 141, 136, 140, 132, 134, 148, 137, 138, 141, 131, 139, 141, 137, 135, 150, 143, 136, 146, 135, 144, 138, 139, 133, 141, 141, 138, 127, 138, 137, 129, 142, 141, 139, 137, 128, 149, 140, 130, 145, 135, 135, 138, 138, 135, 149, 147, 133, 130, 137, 132, 142, 134, 140, 135, 127, 142, 137, 131, 139, 134, 133, 139, 141, 128, 142, 138, 135, 138, 138, 143, 141, 140, 135, 141, 144, 134, 132, 138, 145, 139, 141, 131, 141, 139, 143, 133, 144, 139, 148, 140, 139, 154, 126, 138, 140, 139, 146, 142, 133, 138, 150, 139, 138, 151, 144, 139, 128, 140, 139, 134, 134, 137, 142, 142, 139, 144, 141, 142, 133, 138, 139, 141, 142, 145, 125, 145, 137, 139, 146, 134, 143, 143, 142, 135, 137, 138, 138, 148, 132, 140, 141, 141, 138, 135, 146, 133, 134, 132, 130, 147, 129, 140, 128, 134, 132, 146, 139, 138, 134, 143, 135, 144, 141, 138, 143, 138, 140, 134, 135, 138, 147, 136, 141, 137, 135, 130, 146, 141, 149, 142, 136, 142, 140, 136, 138, 140, 131, 131, 146, 144, 136, 125, 128, 144, 137, 141, 137, 144, 128, 140, 138, 135, 139, 142, 137, 142, 134, 139, 146, 142, 149, 147, 137, 140, 131, 135, 138, 133, 137, 131, 137, 144, 134, 138, 134, 141, 130, 139, 148, 138, 156, 140, 137, 140, 141, 140, 138, 131, 132, 139, 135, 138, 135, 132, 127, 131, 141, 143, 141, 130, 137, 135, 137, 140, 143, 136, 137, 134, 133, 133, 144, 132, 141, 129, 138, 146, 138, 141, 136, 140, 128, 148, 132, 145, 144, 140, 138, 143, 146, 131, 140, 131, 139, 136, 148, 134, 155, 149, 132, 135, 141, 135, 143, 145, 142, 133, 145, 136, 143, 127, 139, 144, 136, 146, 146, 146, 136, 135, 140, 137, 136, 135, 130, 138, 150, 142, 137, 134, 142, 141, 143, 137, 134, 139, 140, 142, 135, 145, 136, 139, 142, 140, 144, 143, 143, 141, 141, 149, 140, 142, 139, 144, 137, 136, 144, 134, 134, 139, 134, 133, 142, 138, 136, 137, 141, 140, 137, 156, 141, 135, 146, 146, 138, 144, 148, 142, 137, 135, 132, 140, 141, 140, 142, 140, 140, 143, 139, 141, 139, 139, 145, 129, 136, 136, 143, 141, 140, 149, 141, 136, 140, 138, 138, 139, 140, 141, 130, 143, 144, 131, 140, 129, 138, 137, 136, 133, 139, 137, 133, 140, 138, 140, 137, 144, 138, 128, 137, 135, 138, 136, 139, 136, 138, 139, 136, 141, 141, 139, 139, 140, 138, 143, 140, 139, 140, 139, 138, 136, 142, 139, 138, 138, 135, 143, 146, 142, 148, 140, 141, 139, 140, 135, 137, 140, 132, 134, 137, 139, 142, 137, 140, 139, 137, 135, 147, 141, 138, 135, 141, 136, 143, 145, 140, 134, 141, 145, 137, 146, 132, 133, 140, 138, 141, 136, 137, 137, 140, 132, 131, 130, 137, 134, 137, 140, 134, 134, 141, 143, 136, 136, 135, 135, 138, 141, 136, 138, 134, 145, 143, 134, 142, 137, 139, 136, 140, 145, 135, 137, 140, 135, 136, 136, 131, 135, 146, 144, 139, 138, 141, 137, 137, 141, 137, 137, 136, 138, 133, 137, 137, 141, 142, 140, 140, 137, 140, 146, 141, 141, 142, 133, 140, 135, 125, 142, 148, 141, 141, 137, 135, 135, 139, 141, 140, 133, 137, 143, 136, 135, 139, 143, 137, 137, 136, 139, 142, 142, 140, 138, 140, 139, 137, 134, 139, 140, 135, 144, 134, 139, 145, 135, 133, 140, 133, 136, 132, 147, 139, 147, 142, 143, 141, 141, 136, 140, 144, 139, 138, 140, 138, 143, 139, 133, 133, 138, 144, 143, 144, 141, 142, 134, 140, 139, 135, 143, 141, 138, 137, 146, 140, 136, 131, 143, 138, 134, 138, 149, 137, 137, 142, 140, 137, 136, 142, 138, 137, 144, 145, 136, 144, 141, 136, 138, 137, 133, 132, 144, 135, 137, 138, 141, 137, 140, 144, 140, 142, 143, 134, 139, 138, 130, 130, 137, 140, 136, 142, 136, 135, 141, 138, 140, 142, 140, 134, 138, 137, 136, 137, 140, 138, 139, 132, 135, 138, 136, 134, 147, 130, 141, 143, 140, 135, 137, 140, 141, 133, 136, 143, 142, 135, 134, 138, 141, 141, 135, 129, 136, 135, 136, 144, 137, 136, 135, 139, 134, 136, 140, 140, 138, 135, 137, 141, 141, 142, 144, 139, 138, 122, 138, 135, 136, 140, 135, 135, 138, 140, 136, 139, 138, 138, 137, 136, 143, 137, 138, 134, 144, 131, 136, 134, 142, 136, 139, 137, 141, 136, 140, 148, 137, 139, 140, 144, 145, 136, 136, 135, 135, 143, 139, 139, 137, 141, 145, 136, 136, 148, 136, 142, 142, 128, 151, 141, 139, 138, 137, 137, 148, 140, 139, 138, 150, 141, 142, 140, 140, 138, 139, 143, 134, 138, 131, 143, 131, 136, 136, 137, 141, 142, 139, 141, 139, 138, 146, 136, 128, 135, 131, 136, 131, 139, 141, 146, 132, 143, 151, 147, 142, 145, 143, 141, 143, 146, 138, 133, 156, 126, 136, 140, 149, 139, 133, 139, 140, 150, 131, 148, 128, 137, 132, 148, 145, 137, 143, 145, 137, 141, 146, 146, 140, 140, 127, 140, 125, 132, 138, 148, 135, 145, 129, 143, 121, 154, 146, 138, 140, 141, 140, 144, 146, 135, 142, 138, 134, 140, 115, 136, 140, 136, 144, 139, 146, 142, 140, 143, 149, 148, 136, 138, 144, 143, 142, 134, 134, 143, 117, 134, 143, 145, 140, 139, 143, 144, 139, 141, 120, 131, 135, 134, 129, 133, 147, 144, 132, 137, 148, 127, 133, 141, 141, 127, 129, 148, 155, 146, 132, 143, 129, 144, 136, 128, 146, 137, 132, 135, 145, 128, 125, 148, 133, 143, 145, 148, 136, 138, 137, 142, 137, 123, 127, 145, 146, 149, 141, 149, 147, 137, 137, 136, 129, 139, 149, 147, 145, 152, 141, 136, 134, 146, 145, 140, 136, 142, 143, 140, 140, 133, 137, 149, 151, 150, 148, 143, 136, 142, 127, 135, 161, 134, 152, 144, 137, 138, 143, 137, 138, 143, 145, 140, 139, 164, 141, 132, 140, 146, 131, 140, 130, 150, 131, 147, 142, 136, 134, 142, 136, 133, 140, 139, 132, 133, 136, 136, 140, 146, 139, 137, 134, 137, 140, 141, 143, 147, 144, 134, 149, 141, 142, 139, 132, 139, 130, 135, 141, 135, 140, 131, 137, 142, 127, 147, 131, 137, 146, 141, 136, 138, 131, 153, 139, 154, 144, 150, 135, 146, 139, 131, 146, 147, 132, 129, 139, 140, 140, 143, 141, 141, 136, 145, 133, 152, 139, 152, 142, 131, 139, 146, 132, 143, 130, 135, 141, 132, 141, 144, 144, 149, 138, 139, 129, 142, 140, 145, 133, 143, 122, 144, 130, 138, 139, 137, 150, 136, 127, 143, 120, 136, 147, 130, 149, 141, 131, 144, 140, 127, 143, 140, 145, 140, 131, 144, 145, 144, 137, 143, 148, 146, 133, 156, 139, 142, 136, 148, 137, 135, 139, 130, 132, 140, 144, 140, 134, 139, 151, 167, 139, 147, 135, 140, 138, 131, 140, 138, 144, 137, 147, 145, 130, 140, 144, 136, 144, 137, 139, 134, 139, 127, 143, 140, 137, 140, 135, 146, 137, 124, 146, 146, 139, 134, 141, 139, 142, 132, 133, 127, 144, 133, 124, 140, 141, 142, 133, 139, 145, 138, 147, 136, 133, 127, 134, 141, 138, 135, 148, 140, 141, 133, 142, 139, 143, 136, 142, 143, 137, 142, 149, 143, 132, 141, 141, 123, 154, 137, 143, 137, 145, 142, 134, 142, 136, 148, 139, 136, 139, 136, 135, 139, 147, 138, 141, 140, 133, 134, 138, 146, 137, 147, 142, 136, 137, 139, 132, 144, 135, 147, 142, 154, 121, 138, 139, 141, 148, 142, 132, 150, 145, 137, 142, 144, 146, 126, 141, 127, 138, 141, 130, 145, 146, 126, 139, 136, 135, 138, 136, 140, 147, 148, 135, 139, 141, 135, 140, 142, 157, 130, 136, 142, 148, 134, 141, 145, 142, 146, 138, 138, 132, 131, 148, 141, 148, 133, 136, 163, 139, 135, 141, 135, 142, 137, 135, 142, 145, 141, 140, 137, 138, 139, 141, 146, 140, 144, 140, 140, 146, 144, 146, 140, 142, 140, 139, 141, 135, 142, 144, 144, 142, 138, 134, 133, 139, 142, 141, 137, 144, 142, 139, 140, 157, 140, 138, 140, 133, 144, 139, 140, 136, 142, 137, 147, 143, 139, 136, 142, 145, 137, 140, 139, 132, 140, 135, 137, 139, 144, 137, 137, 140, 134, 150, 137, 138, 143, 136, 148, 140, 135, 133, 140, 146, 142, 136, 141, 141, 139, 142, 136, 139, 136, 145, 146, 134, 139, 141, 138, 139, 134, 135, 134, 139, 135, 135, 138, 136, 142, 142, 143, 137, 136, 141, 146, 138, 131, 141, 140, 133, 141, 133, 140, 143, 137, 132, 140, 141, 128, 137, 141, 139, 138, 142, 132, 142, 143, 143, 148, 137, 142, 133, 141, 146, 144, 138, 134, 137, 141, 133, 135, 137, 144, 143, 138, 138, 137, 144, 134, 142, 139, 140, 146, 142, 150, 145, 145, 144, 141, 142, 139, 139, 138, 136, 142, 143, 142, 139, 144, 128, 143, 144, 142, 149, 144, 144, 137, 145, 139, 140, 144, 137, 136, 138, 136, 132, 140, 145, 143, 140, 138, 139, 145, 140, 135, 136, 131, 144, 144, 145, 142, 141, 143, 143, 143, 137, 146, 140, 134, 140, 137, 129, 144, 136, 132, 137, 136, 141, 139, 143, 140, 138, 139, 142, 146, 134, 139, 141, 136, 141, 138, 140, 139, 143, 138, 139, 140, 136, 140, 135, 132, 138, 137, 146, 138, 143, 147, 139, 138, 144, 143, 139, 138, 136, 142, 139, 136, 147, 137, 144, 133, 141, 142, 135, 146, 141, 138, 138, 142, 147, 134, 137, 140, 140, 139, 131, 139, 138, 131, 146, 141, 140, 140, 145, 138, 131, 140, 128, 132, 135, 134, 132, 142, 145, 132, 145, 139, 138, 145, 144, 142, 145, 140, 134, 129, 138, 152, 142, 144, 137, 142, 138, 141, 146, 141, 136, 135, 142, 143, 137, 137, 135, 146, 142, 147, 132, 143, 142, 141, 134, 134, 136, 141, 147, 137, 140, 138, 133, 140, 135, 142, 137, 136, 142, 138, 145, 141, 144, 143, 139, 135, 136, 138, 140, 134, 139, 137, 137, 132, 139, 145, 142, 141, 145, 148, 142, 138, 134, 148, 139, 140, 136, 132, 140, 144, 139, 138, 139, 142, 142, 141, 140, 140, 132, 135, 135, 142, 143, 143, 136, 137, 140, 138, 132, 141, 137, 137, 134, 142, 133, 152, 144, 139, 141, 143, 137, 138, 148, 148, 143, 151, 142, 130, 139, 137, 141, 132, 131, 135, 142, 139, 136, 139, 138, 138, 137, 141, 128, 133, 137, 133, 143, 144, 137, 144, 135, 140, 139, 137, 142, 144, 144, 141, 135, 138, 147, 143, 143, 132, 144, 132, 143, 141, 129, 145, 139, 138, 145, 138, 138, 136, 144, 136, 139, 140, 143, 137, 139, 138, 130, 140, 137, 136, 138, 141, 137, 139, 135, 140, 138, 137, 137, 141, 141, 147, 142, 137, 138, 142, 144, 133, 143, 134, 132, 133, 144, 135, 143, 142, 138, 140, 139, 137, 156, 129, 137, 141, 123, 136, 145, 133, 142, 137, 143, 143, 134, 138, 142, 144, 136, 145, 130, 136, 138, 142, 142, 137, 132, 140, 135, 140, 142, 130, 143, 142, 133, 147, 141, 140, 136, 140, 140, 143, 137, 141, 147, 147, 140, 145, 133, 142, 143, 144, 142, 142, 148, 143, 135, 148, 137, 143, 138, 145, 139, 142, 157, 135, 131, 141, 142, 143, 133, 132, 146, 141, 145, 145, 136, 140, 135, 126, 145, 135, 140, 143, 148, 139, 143, 132, 140, 139, 149, 144, 142, 137, 140, 141, 134, 133, 140, 147, 138, 134, 143, 141, 140, 130, 140, 143, 138, 145, 135, 136, 145, 144, 144, 141, 134, 141, 136, 136, 137, 133, 144, 146, 134, 138, 134, 135, 153, 136, 140, 133, 132, 142, 143, 132, 138, 142, 144, 143, 136, 140, 146, 135, 139, 135, 136, 135, 138, 140, 138, 132, 135, 138, 143, 146, 134, 138, 141, 128, 142, 144, 131, 137, 137, 140, 138, 148, 140, 134, 138, 153, 145, 142, 127, 139, 138, 138, 141, 133, 142, 141, 134, 129, 131, 140, 136, 142, 133, 144, 148, 134, 142, 130, 133, 140, 130, 150, 139, 145, 140, 147, 139, 142, 143, 130, 136, 140, 141, 144, 136, 130, 141, 140, 140, 149, 144, 138, 142, 135, 140, 137, 147, 138, 145, 145, 143, 143, 126, 142, 140, 140, 140, 139, 145, 149, 133, 145, 144, 134, 134, 136, 139, 130, 143, 147, 140, 132, 142, 142, 138, 147, 144, 136, 135, 143, 135, 149, 143, 139, 144, 135, 137, 133, 137, 140, 133, 137, 134, 143, 142, 142, 134, 133, 140, 137, 143, 143, 143, 141, 131, 141, 133, 152, 142, 138, 137, 142, 131, 139, 138, 142, 137, 132, 140, 138, 132, 139, 157, 139, 138, 130, 144, 143, 129, 147, 145, 145, 140, 141, 143, 139, 133, 138, 138, 128, 135, 144, 138, 140, 139, 131, 134, 139, 138, 138, 142, 139, 138, 137, 141, 135, 139, 144, 142, 149, 141, 140, 130, 134, 145, 142, 141, 139, 139, 134, 130, 136, 132, 137, 134, 141, 131, 123, 141, 142, 134, 143, 140, 143, 145, 136, 141, 139, 144, 136, 138, 148, 144, 126, 134, 134, 139, 144, 135, 133, 141, 143, 137, 142, 139, 139, 140, 139, 132, 142, 143, 140, 141, 142, 140, 135, 137, 150, 137, 135, 131, 144, 142, 150, 144, 140, 138, 130, 134, 132, 144, 144, 136, 135, 141, 134, 144, 138, 149, 132, 135, 143, 148, 139, 143, 143, 136, 149, 142, 150, 131, 130, 139, 131, 131, 148, 139, 132, 136, 143, 144, 136, 142, 140, 137, 133, 136, 139, 145, 140, 148, 137, 139, 133, 151, 138, 133, 135, 141, 142, 142, 136, 138, 142, 144, 149, 135, 129, 146, 131, 136, 141, 144, 141, 148, 140, 130, 135, 136, 139, 151, 126, 144, 136, 129, 146, 144, 145, 132, 137, 142, 137, 139, 140, 135, 141, 132, 148, 149, 135, 150, 139, 140, 145, 146, 132, 139, 125, 132, 145, 135, 132, 136, 136, 145, 135, 143, 134, 139, 137, 132, 142, 137, 138, 135, 139, 141, 142, 138, 140, 133, 138, 142, 134, 144, 141, 132, 141, 140, 145, 141, 131, 142, 133, 136, 140, 142, 139, 145, 143, 142, 144, 141, 138, 138, 145, 136, 136, 142, 140, 139, 131, 139, 140, 142, 146, 142, 135, 140, 146, 143, 138, 144, 139, 144, 142, 139, 142, 136, 141, 140, 143, 140, 133, 143, 142, 136, 137, 136, 149, 136, 142, 142, 140, 139, 145, 141, 132, 146, 134, 132, 141, 140, 137, 139, 135, 141, 144, 140, 137, 136, 143, 139, 143, 135, 137, 141, 141, 131, 133, 140, 137, 141, 141, 139, 143, 146, 147, 137, 138, 138, 132, 146, 133, 139, 140, 136, 136, 139, 139, 145, 144, 140, 143, 133, 138, 141, 141, 140, 136, 145, 141, 142, 138, 145, 143, 141, 142, 133, 139, 137, 147, 148, 141, 132, 140, 140, 129, 135, 138, 134, 143, 135, 138, 138, 141, 138, 134, 146, 139, 139, 136, 142, 144, 139, 138, 138, 143, 138, 137, 134, 145, 142, 138, 139, 136, 132, 137, 142, 143, 137, 140, 141, 145, 138, 138, 143, 144, 136, 145, 140, 133, 136, 137, 134, 140, 142, 138, 133, 143, 134, 138, 140, 149, 136, 138, 143, 141, 137, 144, 143, 143, 142, 138, 142, 142, 135, 139, 136, 140, 140, 133, 141, 142, 137, 143, 138, 133, 132, 129, 135, 145, 140, 136, 141, 141, 141, 139, 140, 141, 135, 143, 147, 144, 135, 134, 133, 144, 135, 143, 144, 132, 142, 135, 140, 135, 132, 142, 138, 139, 139, 140, 144, 143, 135, 141, 144, 136, 144, 140, 146, 134, 140, 132, 136, 140, 138, 135, 147, 142, 141, 141, 135, 140, 139, 141, 145, 140, 135, 147, 148, 140, 131, 143, 139, 138, 138, 145, 140, 139, 150, 143, 133, 142, 137, 135, 145, 149, 136, 143, 138, 145, 142, 133, 141, 139, 129, 139, 137, 148, 143, 143, 143, 135, 133, 136, 141, 143, 127, 132, 140, 138, 145, 137, 134, 132, 145, 138, 142, 135, 136, 141, 144, 146, 136, 135, 136, 139, 135, 133, 139, 141, 134, 146, 150, 141, 142, 136, 139, 138, 141, 140, 140, 137, 140, 139, 139, 140, 139, 140, 139, 132, 141, 141, 135, 146, 144, 141, 139, 139, 141, 144, 140, 144, 137, 138, 139, 138, 139, 135, 137, 145, 139, 135, 137, 138, 142, 136, 145, 143, 138, 134, 135, 140, 136, 136, 137, 139, 142, 132, 141, 144, 146, 141, 141, 143, 142, 140, 135, 137, 137, 144, 142, 141, 136, 143, 135, 143, 128, 143, 137, 146, 144, 143, 130, 139, 140, 141, 144, 139, 133, 141, 136, 135, 133, 135, 138, 139, 144, 141, 140, 133, 140, 143, 137, 141, 141, 137, 142, 136, 138, 138, 150, 141, 139, 145, 138, 141, 133, 142, 145, 141, 139, 139, 135, 140, 139, 139, 137, 141, 137, 142, 141, 140, 139, 136, 134, 142, 142, 148, 134, 134, 134, 140, 139, 142, 142, 144, 137, 136, 144, 140, 136, 136, 131, 129, 137, 137, 147, 148, 140, 131, 136, 136, 137, 137, 142, 145, 146, 146, 135, 141, 137, 127, 135, 141, 146, 145, 132, 139, 135, 141, 141, 139, 131, 149, 133, 137, 136, 133, 140, 143, 146, 131, 137, 135, 132, 146, 141, 138, 133, 151, 133, 158, 144, 144, 136, 127, 141, 140, 146, 131, 138, 139, 141, 143, 143, 142, 139, 137, 129, 135, 136, 141, 138, 133, 143, 137, 145, 143, 136, 130, 136, 136, 140, 149, 143, 142, 144, 132, 137, 146, 126, 146, 145, 137, 142, 140, 140, 138, 135, 138, 136, 140, 142, 138, 144, 136, 146, 135, 152, 142, 124, 138, 140, 139, 144, 137, 144, 146, 136, 137, 131, 140, 132, 133, 137, 131, 137, 146, 140, 144, 143, 140, 146, 134, 141, 134, 133, 135, 143, 139, 137, 140, 145, 142, 130, 139, 150, 148, 144, 141, 143, 140, 142, 135, 129, 138, 143, 132, 143, 143, 142, 140, 133, 145, 139, 132, 133, 140, 146, 141, 141, 138, 135, 140, 136, 134, 133, 144, 139, 141, 130, 144, 144, 146, 151, 141, 136, 134, 135, 135, 139, 133, 140, 128, 141, 135, 143, 143, 145, 134, 150, 138, 147, 136, 138, 144, 145, 130, 136, 135, 145, 137, 138, 134, 146, 136, 144, 146, 136, 136, 138, 132, 142, 141, 130, 136, 144, 133, 133, 145, 132, 135, 141, 138, 141, 148, 143, 139, 147, 140, 139, 149, 141, 153, 147, 138, 129, 139, 134, 146, 140, 138, 143, 134, 135, 158, 140, 136, 141, 146, 124, 136, 140, 138, 140, 146, 134, 134, 145, 152, 132, 141, 140, 133, 137, 135, 137, 142, 136, 145, 139, 135, 144, 133, 139, 135, 133, 141, 145, 141, 140, 132, 134, 143, 136, 141, 129, 137, 148, 135, 139, 135, 146, 148, 140, 134, 143, 140, 142, 140, 143, 135, 148, 137, 144, 139, 139, 133, 148, 133, 128, 135, 141, 136, 140, 144, 138, 140, 142, 136, 131, 129, 140, 134, 144, 136, 133, 131, 141, 136, 142, 146, 134, 134, 145, 143, 148, 135, 142, 139, 140, 130, 144, 131, 148, 147, 144, 147, 135, 140, 141, 145, 134, 139, 142, 140, 145, 136, 135, 142, 139, 144, 136, 140, 139, 138, 134, 138, 138, 140, 142, 136, 142, 141, 132, 133, 145, 142, 154, 139, 142, 134, 138, 135, 128, 141, 135, 138, 137, 130, 147, 142, 143, 134, 134, 144, 137, 139, 139, 136, 132, 132, 138, 142, 138, 131, 140, 139, 133, 138, 140, 142, 144, 153, 143, 132, 142, 141, 135, 138, 138, 136, 138, 147, 132, 146, 135, 133, 129, 139, 147, 151, 146, 137, 144, 143, 140, 144, 136, 137, 142, 137, 141, 144, 145, 139, 141, 148, 135, 134, 136, 130, 134, 134, 134, 138, 141, 132, 139, 141, 145, 136, 134, 137, 146, 132, 140, 130, 142, 133, 140, 134, 145, 135, 139, 141, 136, 142, 135, 143, 138, 135, 137, 142, 135, 145, 140, 137, 134, 132, 135, 143, 127, 131, 144, 140, 137, 134, 138, 142, 144, 139, 147, 147, 140, 138, 136, 144, 146, 147, 137, 139, 146, 145, 140, 136, 146, 140, 157, 142, 137, 139, 137, 135, 139, 141, 143, 146, 140, 140, 134, 144, 136, 141, 141, 143, 135, 137, 140, 136, 145, 140, 133, 136, 141, 139, 138, 131, 137, 136, 140, 149, 148, 130, 138, 136, 135, 125, 135, 140, 157, 144, 140, 139, 138, 134, 137, 139, 140, 137, 141, 131, 140, 136, 138, 138, 135, 141, 142, 142, 145, 135, 137, 132, 141, 143, 135, 141, 134, 144, 147, 144, 131, 148, 142, 138, 130, 139, 136, 137, 130, 146, 136, 143, 145, 133, 134, 136, 146, 133, 135, 140, 130, 140, 138, 133, 133, 136, 136, 126, 141, 126, 141, 139, 140, 143, 138, 130, 136, 133, 142, 140, 141, 139, 144, 145, 142, 136, 134, 137, 134, 143, 146, 143, 144, 136, 138, 137, 142, 130, 140, 143, 130, 138, 135, 143, 137, 141, 134, 142, 132, 142, 137, 133, 141, 145, 147, 139, 146, 136, 139, 140, 143, 141, 132, 140, 134, 135, 148, 138, 140, 143, 133, 138, 147, 139, 135, 135, 139, 151, 148, 135, 142, 137, 142, 142, 138, 138, 145, 142, 145, 125, 139, 141, 134, 143, 141, 134, 140, 141, 143, 142, 140, 138, 140, 154, 131, 138, 136, 139, 142, 135, 141, 136, 127, 139, 148, 135, 133, 145, 130, 132, 145, 144, 138, 141, 132, 138, 129, 137, 132, 135, 136, 136, 146, 135, 140, 142, 139, 137, 137, 134, 137, 134, 139, 130, 136, 148, 144, 131, 138, 144, 133, 134, 145, 128, 134, 144, 130, 143, 138, 138, 142, 142, 134, 131, 137, 134, 134, 139, 144, 142, 136, 131, 137, 132, 147, 140, 142, 147, 139, 129, 141, 137, 140, 146, 144, 143, 132, 137, 121, 138, 132, 139, 136, 141, 137, 136, 138, 135, 141, 138, 138, 139, 135, 140, 144, 141, 128, 149, 146, 134, 151, 140, 135, 130, 137, 141, 138, 138, 140, 137, 140, 137, 143, 135, 131, 142, 137, 152, 124, 132, 141, 145, 141, 133, 146, 142, 136, 133, 139, 133, 133, 138, 140, 141, 142, 140, 136, 143, 140, 141, 140, 140, 137, 131, 137, 141, 147, 140, 142, 141, 131, 132, 141, 139, 130, 136, 131, 138, 137, 137, 134, 140, 148, 144, 140, 140, 150, 130, 132, 131, 137, 136, 146, 136, 139, 153, 141, 126, 137, 132, 140, 138, 143, 130, 132, 148, 131, 136, 137, 132, 136, 143, 140, 140, 140, 139, 130, 143, 144, 143, 139, 147, 135, 145, 136, 133, 136, 143, 137, 140, 129, 136, 144, 132, 137, 142, 133, 143, 146, 136, 140, 144, 136, 134, 130, 146, 136, 135, 137, 127, 142, 135, 129, 134, 127, 144, 141, 139, 151, 135, 135, 140, 127, 136, 143, 137, 138, 134, 140, 144, 140, 139, 134, 140, 132, 135, 137, 134, 138, 146, 133, 145, 141, 145, 138, 146, 133, 136, 130, 139, 143, 134, 141, 137, 139, 130, 138, 148, 146, 148, 142, 140, 136, 137, 141, 144, 135, 133, 139, 138, 138, 132, 138, 134, 139, 131, 140, 151, 139, 146, 137, 146, 140, 142, 136, 138, 142, 142, 138, 135, 134, 136, 144, 133, 144, 138, 137, 134, 136, 143, 134, 136, 137, 133, 135, 139, 131, 136, 143, 149, 142, 140, 135, 142, 138, 138, 139, 140, 126, 137, 139, 138, 133, 136, 151, 139, 131, 143, 139, 142, 134, 140, 139, 140, 136, 135, 139, 137, 143, 138, 135, 135, 137, 138, 136, 135, 142, 146, 138, 135, 143, 137, 139, 138, 144, 139, 142, 137, 138, 139, 135, 135, 136, 144, 138, 144, 133, 148, 141, 144, 138, 136, 147, 146, 139, 131, 137, 137, 139, 139, 140, 140, 144, 151, 141, 137, 142, 133, 137, 134, 139, 139, 134, 135, 146, 137, 142, 140, 136, 146, 139, 135, 142, 140, 141, 144, 139, 134, 137, 137, 141, 137, 142, 147, 136, 136, 141, 139, 139, 150, 131, 136, 133, 141, 138, 137, 140, 146, 138, 143, 134, 141, 137, 136, 137, 142, 143, 138, 142, 131, 141, 135, 137, 135, 139, 129, 137, 137, 138, 136, 132, 148, 140, 142, 137, 136, 139, 140, 138, 132, 140, 137, 138, 137, 137, 140, 137, 142, 137, 150, 138, 140, 140, 142, 140, 145, 144, 142, 140, 145, 134, 142, 143, 138, 141, 136, 135, 129, 135, 145, 142, 138, 137, 135, 133, 134, 142, 141, 135, 138, 139, 135, 140, 141, 136, 143, 138, 133, 137, 134, 139, 146, 138, 132, 152, 142, 132, 142, 140, 145, 136, 144, 137, 138, 146, 138, 138, 143, 139, 141, 132, 145, 143, 137, 138, 135, 140, 137, 137, 138, 139, 145, 135, 140, 137, 131, 142, 149, 139, 131, 132, 135, 136, 137, 136, 134, 138, 144, 139, 132, 145, 143, 142, 141, 132, 135, 127, 141, 136, 139, 148, 140, 134, 137, 140, 141, 137, 137, 132, 138, 137, 137, 141, 136, 142, 131, 139, 134, 141, 141, 152, 138, 140, 138, 140, 142, 138, 132, 138, 143, 133, 134, 139, 132, 141, 135, 140, 143, 122, 135, 144, 140, 144, 139, 150, 133, 138, 140, 139, 141, 134, 149, 140, 147, 149, 149, 146, 137, 133, 140, 137, 138, 138, 139, 145, 138, 145, 135, 144, 132, 137, 132, 136, 137, 134, 136, 140, 137, 146, 143, 140, 138, 146, 144, 143, 141, 141, 142, 148, 137, 134, 141, 146, 135, 134, 133, 131, 150, 145, 133, 137, 128, 149, 144, 148, 135, 146, 134, 141, 137, 138, 136, 145, 130, 144, 132, 141, 131, 148, 142, 136, 150, 146, 139, 139, 143, 135, 139, 130, 137, 138, 128, 142, 139, 135, 144, 133, 144, 141, 149, 137, 135, 144, 137, 141, 138, 137, 137, 149, 140, 145, 142, 135, 137, 138, 134, 137, 138, 138, 129, 131, 135, 140, 145, 144, 144, 140, 138, 144, 146, 144, 149, 139, 142, 138, 129, 143, 137, 145, 141, 138, 142, 140, 137, 138, 131, 141, 132, 139, 148, 144, 136, 134, 132, 135, 140, 134, 137, 141, 141, 137, 141, 136, 144, 131, 154, 138, 141, 136, 138, 144, 145, 140, 130, 137, 137, 143, 142, 139, 141, 140, 138, 136, 133, 142, 137, 138, 136, 145, 143, 147, 143, 132, 141, 135, 149, 138, 137, 146, 142, 139, 142, 133, 128, 135, 132, 132, 144, 146, 146, 141, 140, 149, 137, 133, 144, 129, 138, 137, 148, 139, 137, 137, 146, 134, 134, 136, 142, 144, 136, 136, 135, 140, 148, 136, 144, 134, 132, 136, 140, 137, 139, 133, 128, 135, 144, 138, 140, 131, 135, 136, 135, 139, 137, 141, 138, 138, 142, 144, 140, 142, 139, 137, 142, 132, 141, 135, 142, 133, 145, 141, 142, 146, 147, 140, 134, 143, 140, 130, 134, 139, 135, 139, 141, 142, 141, 146, 138, 131, 138, 136, 144, 138, 157, 147, 139, 130, 142, 145, 143, 139, 144, 145, 139, 138, 138, 138, 135, 145, 144, 136, 138, 140, 138, 135, 126, 149, 132, 131, 133, 146, 133, 140, 134, 142, 138, 139, 134, 145, 143, 136, 143, 130, 133, 140, 132, 142, 136, 142, 145, 140, 144, 140, 134, 143, 138, 138, 141, 136, 133, 133, 137, 136, 137, 144, 152, 146, 133, 137, 142, 135, 138, 139, 139, 145, 140, 133, 135, 143, 147, 140, 139, 146, 132, 137, 147, 138, 147, 144, 139, 143, 122, 141, 130, 138, 138, 142, 139, 133, 138, 135, 137, 143, 138, 144, 126, 142, 144, 143, 142, 146, 141, 146, 136, 132, 133, 135, 135, 141, 137, 141, 129, 134, 144, 160, 134, 138, 135, 145, 132, 138, 136, 138, 137, 142, 138, 143, 137, 136, 139, 134, 140, 140, 134, 140, 138, 137, 139, 137, 133, 142, 136, 139, 130, 144, 140, 134, 131, 143, 141, 140, 129, 131, 140, 145, 138, 143, 131, 146, 131, 132, 138, 139, 134, 141, 135, 145, 142, 140, 151, 131, 147, 135, 145, 135, 140, 144, 137, 135, 140, 151, 144, 136, 140, 133, 144, 141, 139, 136, 146, 133, 152, 126, 144, 135, 135, 143, 138, 151, 137, 136, 143, 144, 135, 140, 134, 142, 147, 134, 145, 143, 148, 142, 140, 148, 140, 137, 132, 138, 137, 134, 142, 142, 133, 136, 143, 138, 141, 134, 136, 141, 143, 140, 134, 134, 143, 141, 148, 132, 143, 146, 138, 141, 140, 138, 146, 127, 135, 139, 136, 144, 145, 141, 143, 139, 142, 136, 143, 151, 140, 135, 146, 120, 130, 142, 127, 132, 151, 142, 142, 144, 132, 143, 147, 142, 151, 138, 132, 134, 141, 122, 134, 138, 133, 144, 148, 135, 136, 140, 142, 139, 136, 139, 147, 142, 141, 130, 144, 139, 137, 135, 145, 141, 128, 140, 145, 140, 139, 140, 143, 143, 145, 142, 138, 149, 144, 139, 140, 135, 137, 141, 134, 140, 137, 137, 130, 137, 134, 149, 134, 140, 143, 139, 141, 137, 135, 136, 127, 127, 142, 131, 136, 132, 137, 137, 138, 149, 138, 136, 146, 131, 129, 143, 139, 138, 141, 139, 141, 140, 135, 141, 134, 142, 143, 138, 133, 133, 135, 131, 134, 137, 138, 144, 139, 141, 135, 148, 141, 148, 136, 131, 146, 135, 145, 145, 136, 149, 129, 138, 130, 139, 138, 146, 143, 140, 142, 140, 141, 138, 150, 135, 143, 139, 131, 139, 138, 136, 132, 140, 149, 138, 140, 136, 138, 140, 132, 145, 137, 139, 134, 145, 136, 143, 147, 138, 146, 130, 153, 132, 140, 140, 148, 132, 131, 139, 140, 147, 135, 129, 139, 146, 138, 131, 146, 133, 146, 138, 138, 139, 135, 132, 135, 140, 134, 138, 141, 139, 143, 137, 134, 149, 136, 141, 138, 135, 140, 144, 137, 140, 138, 134, 136, 144, 133, 140, 130, 129, 139, 140, 143, 142, 138, 131, 145, 140, 138, 143, 137, 131, 136, 131, 134, 137, 136, 130, 137, 130, 137, 135, 129, 151, 130, 130, 133, 141, 137, 137, 133, 143, 138, 142, 136, 156, 142, 132, 144, 133, 138, 142, 147, 137, 144, 145, 145, 135, 137, 136, 135, 139, 128, 143, 145, 139, 133, 134, 145, 146, 137, 130, 147, 135, 142, 121, 135, 141, 139, 142, 143, 138, 140, 137, 136, 140, 136, 135, 138, 139, 138, 139, 137, 149, 135, 143, 133, 141, 141, 159, 142, 142, 139, 138, 137, 135, 134, 147, 139, 130, 138, 140, 147, 139, 136, 139, 134, 131, 136, 134, 146, 147, 141, 145, 132, 130, 138, 138, 135, 138, 135, 148, 139, 142, 148, 133, 138, 135, 138, 149, 130, 138, 144, 136, 139, 136, 144, 144, 143, 137, 140, 144, 133, 143, 135, 140, 137, 136, 145, 134, 133, 144, 143, 136, 140, 139, 138, 135, 142, 131, 145, 144, 151, 136, 135, 134, 138, 140, 126, 136, 135, 137, 140, 134, 146, 133, 137, 137, 134, 142, 140, 134, 138, 137, 140, 137, 149, 143, 133, 131, 126, 135, 132, 144, 152, 148, 136, 133, 138, 143, 132, 141, 146, 144, 146, 137, 140, 133, 143, 127, 134, 140, 135, 142, 144, 135, 144, 128, 140, 131, 136, 142, 133, 136, 142, 134, 143, 150, 138, 143, 135, 140, 143, 145, 134, 151, 139, 139, 142, 146, 132, 144, 138, 134, 137, 134, 141, 134, 138, 139, 135, 144, 142, 136, 134, 147, 149, 146, 134, 137, 132, 136, 149, 148, 135, 142, 142, 142, 137, 141, 150, 148, 139, 154, 139, 140, 137, 140, 151, 134, 144, 142, 144, 137, 135, 133, 132, 144, 137, 138, 132, 126, 141, 134, 135, 133, 139, 144, 141, 142, 133, 142, 136, 144, 130, 142, 139, 133, 144, 139, 147, 138, 133, 140, 151, 135, 141, 137, 143, 138, 133, 149, 139, 140, 133, 139, 133, 138, 141, 130, 138, 144, 139, 139, 138, 145, 140, 147, 133, 144, 140, 140, 136, 145, 140, 137, 151, 140, 143, 146, 133, 141, 141, 142, 134, 144, 134, 145, 133, 136, 141, 137, 138, 135, 142, 138, 143, 139, 136, 138, 140, 133, 138, 136, 143, 139, 144, 138, 139, 141, 143, 139, 132, 135, 135, 139, 137, 135, 131, 142, 137, 139, 140, 140, 139, 135, 134, 141, 134, 135, 136, 140, 139, 143, 139, 132, 136, 139, 138, 148, 139, 136, 128, 134, 145, 136, 143, 136, 141, 142, 130, 129, 147, 137, 136, 136, 132, 142, 133, 123, 139, 148, 149, 142, 130, 146, 143, 152, 141, 137, 143, 139, 138, 141, 139, 132, 144, 131, 133, 151, 138, 136, 150, 139, 153, 144, 137, 141, 149, 144, 140, 142, 138, 149, 134, 124, 141, 130, 155, 138, 144, 145, 143, 127, 142, 133, 145, 135, 140, 133, 145, 139, 141, 148, 147, 142, 163, 153, 132, 137, 142, 126, 135, 138, 135, 147, 143, 142, 142, 155, 150, 137, 143, 132, 150, 141, 140, 137, 144, 135, 137, 132, 142, 143, 125, 152, 136, 133, 129, 150, 139, 147, 141, 132, 142, 154, 141, 142, 143, 139, 134, 142, 135, 138, 147, 147, 130, 124, 143, 143, 139, 144, 142, 135, 138, 139, 140, 135, 139, 137, 147, 132, 142, 142, 142, 148, 146, 145, 139, 138, 142, 140, 135, 137, 139, 142, 143, 134, 136, 136, 129, 141, 137, 133, 131, 134, 141, 147, 139, 144, 138, 131, 144, 138, 140, 159, 130, 128, 132, 139, 152, 144, 143, 138, 131, 145, 134, 132, 160, 147, 149, 120, 135, 140, 147, 138, 145, 147, 143, 150, 134, 136, 137, 140, 148, 144, 138, 136, 139, 132, 131, 142, 149, 143, 144, 146, 157, 134, 131, 135, 131, 138, 150, 128, 150, 145, 134, 136, 131, 130, 142, 136, 127, 138, 134, 128, 139, 140, 132, 142, 144, 132, 144, 142, 134, 136, 136, 139, 140, 144, 146, 135, 154, 158, 133, 146, 148, 138, 142, 137, 147, 145, 149, 146, 135, 134, 149, 139, 140, 123, 138, 137, 126, 152, 138, 128, 149, 138, 141, 134, 140, 132, 140, 142, 139, 147, 131, 135, 157, 135, 139, 129, 138, 132, 140, 145, 152, 135, 136, 137, 129, 140, 123, 119, 141, 139, 137, 142, 133, 144, 142, 134, 133, 132, 153, 133, 127, 132, 136, 139, 140, 137, 152, 132, 142, 145, 135, 141, 135, 127, 144, 146, 148, 135, 138, 154, 139, 139, 146, 138, 138, 133, 136, 141, 136, 132, 150, 139, 137, 144, 144, 142, 140, 151, 141, 144, 140, 134, 133, 135, 136, 137, 137, 143, 149, 132, 132, 145, 141, 149, 121, 132, 139, 139, 140, 151, 137, 149, 132, 142, 146, 130, 134, 143, 127, 145, 132, 144, 130, 135, 141, 141, 128, 139, 138, 133, 132, 137, 137, 140, 133, 143, 132, 148, 138, 138, 138, 126, 141, 138, 144, 152, 139, 140, 138, 134, 141, 136, 154, 138, 137, 142, 138, 140, 134, 135, 142, 142, 138, 149, 139, 138, 136, 144, 136, 154, 128, 146, 154, 127, 146, 140, 136, 147, 144, 146, 146, 141, 143, 143, 130, 139, 140, 141, 138, 143, 144, 136, 137, 138, 135, 136, 142, 146, 143, 134, 149, 167, 139, 147, 153, 139, 133, 133, 129, 138, 137, 136, 134, 138, 148, 131, 148, 146, 149, 135, 136, 131, 140, 145, 141, 140, 141, 129, 133, 134, 131, 132, 152, 132, 137, 140, 132, 146, 138, 140, 144, 137, 139, 138, 135, 141, 134, 135, 131, 131, 138, 137, 131, 130, 140, 130, 136, 138, 138, 145, 143, 131, 144, 141, 143, 139, 137, 135, 145, 135, 139, 138, 134, 142, 141, 137, 137, 145, 133, 138, 137, 137, 139, 140, 139, 134, 142, 138, 142, 136, 138, 132, 135, 139, 139, 134, 133, 136, 141, 139, 142, 133, 145, 141, 141, 143, 137, 136, 135, 135, 142, 137, 138, 140, 139, 131, 139, 137, 136, 139, 143, 137, 137, 140, 138, 137, 132, 146, 140, 141, 138, 136, 147, 137, 135, 141, 144, 145, 131, 141, 134, 141, 136, 137, 142, 136, 152, 140, 140, 140, 133, 135, 143, 143, 148, 142, 136, 142, 136, 142, 129, 144, 137, 145, 143, 132, 136, 139, 136, 140, 143, 145, 144, 142, 142, 143, 135, 131, 139, 134, 147, 133, 140, 150, 138, 132, 138, 133, 143, 132, 139, 146, 140, 128, 134, 140, 134, 139, 136, 137, 141, 141, 142, 141, 139, 138, 137, 136, 144, 144, 144, 142, 138, 133, 134, 140, 137, 140, 144, 139, 140, 140, 145, 135, 143, 131, 147, 148, 137, 136, 136, 138, 135, 139, 136, 145, 143, 139, 133, 137, 138, 144, 146, 137, 143, 134, 136, 143, 142, 136, 134, 135, 138, 141, 131, 146, 131, 144, 137, 141, 147, 140, 147, 140, 145, 145, 140, 144, 138, 139, 139, 146, 140, 141, 138, 138, 136, 146, 141, 137, 133, 148, 134, 138, 146, 137, 136, 140, 144, 139, 138, 136, 134, 138, 138, 143, 139, 133, 146, 125, 147, 143, 142, 145, 138, 143, 137, 136, 136, 140, 142, 137, 146, 140, 138, 147, 149, 155, 131, 155, 139, 139, 144, 135, 139, 138, 140, 137, 140, 138, 140, 138, 143, 135, 136, 137, 140, 139, 138, 135, 128, 137, 136, 138, 143, 149, 133, 141, 133, 141, 138, 140, 135, 141, 144, 135, 130, 137, 133, 140, 143, 135, 140, 141, 134, 135, 141, 143, 141, 141, 136, 141, 136, 143, 142, 140, 141, 142, 133, 140, 139, 132, 144, 136, 140, 142, 141, 141, 144, 144, 139, 132, 147, 146, 136, 131, 144, 143, 141, 145, 144, 137, 135, 139, 138, 139, 137, 141, 134, 135, 143, 139, 138, 140, 137, 143, 136, 142, 139, 139, 140, 139, 130, 132, 136, 138, 139, 134, 131, 136, 144, 145, 136, 139, 137, 136, 147, 137, 134, 143, 134, 137, 133, 141, 136, 141, 143, 145, 136, 145, 146, 136, 137, 138, 139, 132, 141, 139, 146, 140, 135, 138, 136, 136, 139, 137, 142, 138, 137, 138, 145, 139, 143, 137, 141, 134, 140, 138, 136, 140, 136, 145, 145, 143, 139, 138, 144, 145, 134, 138, 137, 144, 142, 137, 135, 136, 140, 138, 144, 138, 138, 140, 145, 141, 143, 140, 136, 140, 141, 134, 139, 138, 146, 136, 138, 138, 138, 142, 138, 142, 136, 142, 142, 134, 142, 144, 142, 137, 137, 138, 142, 134, 142, 147, 136, 131, 141, 141, 137, 133, 132, 139, 144, 139, 134, 136, 146, 137, 141, 138, 137, 137, 141, 135, 139, 137, 134, 138, 142, 135, 133, 141, 138, 136, 138, 139, 136, 136, 148, 134, 137, 140, 138, 135, 143, 139, 136, 139, 128, 135, 148, 127, 142, 143, 135, 141, 135, 130, 140, 141, 149, 136, 139, 141, 134, 137, 146, 136, 138, 140, 135, 134, 140, 142, 128, 136, 136, 138, 139, 136, 136, 135, 136, 135, 144, 145, 135, 144, 143, 139, 150, 143, 139, 134, 140, 136, 138, 135, 134, 132, 133, 139, 137, 144, 136, 142, 138, 143, 138, 144, 140, 142, 137, 137, 134, 132, 140, 126, 133, 145, 147, 139, 139, 143, 145, 140, 139, 139, 132, 141, 139, 135, 141, 138, 139, 130, 136, 140, 124, 138, 133, 138, 141, 141, 142, 137, 136, 130, 144, 139, 139, 132, 141, 144, 139, 134, 137, 141, 134, 121, 134, 128, 134, 150, 145, 139, 145, 139, 143, 143, 142, 136, 141, 147, 135, 138, 145, 134, 145, 144, 133, 143, 136, 139, 135, 130, 125, 134, 146, 145, 133, 142, 134, 136, 141, 137, 141, 142, 138, 140, 132, 142, 137, 144, 133, 130, 134, 137, 144, 133, 141, 136, 143, 144, 139, 142, 147, 134, 136, 137, 141, 140, 153, 144, 140, 143, 141, 136, 130, 134, 135, 136, 138, 145, 136, 143, 145, 152, 143, 134, 140, 141, 136, 145, 144, 141, 136, 138, 145, 136, 140, 142, 136, 137, 139, 147, 135, 137, 137, 135, 143, 133, 145, 140, 144, 140, 145, 139, 138, 132, 141, 141, 140, 133, 131, 145, 141, 142, 134, 131, 143, 133, 145, 139, 132, 138, 140, 138, 137, 147, 132, 135, 139, 142, 148, 142, 130, 146, 144, 136, 134, 135, 141, 145, 140, 135, 136, 129, 140, 137, 142, 142, 138, 138, 131, 137, 137, 133, 136, 146, 143, 134, 129, 143, 133, 143, 134, 131, 144, 134, 131, 142, 143, 138, 140, 138, 139, 147, 138, 138, 132, 134, 141, 137, 137, 137, 136, 135, 137, 138, 139, 141, 136, 137, 141, 142, 132, 135, 140, 139, 143, 130, 142, 133, 151, 130, 127, 148, 135, 146, 138, 141, 145, 127, 130, 138, 136, 139, 151, 142, 139, 140, 133, 136, 129, 138, 133, 148, 131, 137, 147, 131, 138, 140, 146, 142, 141, 137, 139, 139, 138, 146, 137, 143, 130, 144, 139, 130, 126, 147, 141, 140, 143, 146, 134, 134, 137, 141, 128, 137, 135, 128, 140, 130, 154, 142, 138, 137, 133, 142, 132, 144, 140, 130, 134, 136, 138, 132, 151, 137, 131, 131, 140, 128, 136, 146, 136, 127, 139, 131, 133, 130, 144, 143, 144, 154, 140, 133, 140, 138, 128, 141, 143, 139, 140, 146, 140, 145, 145, 139, 141, 140, 134, 135, 141, 138, 144, 128, 130, 142, 128, 142, 135, 146, 132, 142, 129, 144, 143, 135, 134, 137, 141, 138, 138, 132, 138, 135, 131, 134, 137, 139, 133, 138, 136, 132, 136, 131, 137, 139, 140, 134, 134, 141, 144, 139, 138, 145, 135, 143, 142, 145, 146, 132, 138, 138, 143, 131, 137, 130, 131, 137, 136, 141, 147, 146, 132, 138, 138, 142, 141, 147, 143, 137, 139, 136, 146, 137, 134, 137, 145, 144, 139, 141, 140, 136, 130, 144, 143, 143, 134, 138, 132, 141, 135, 140, 136, 132, 133, 129, 141, 136, 136, 146, 141, 143, 142, 133, 147, 141, 140, 132, 136, 136, 139, 134, 134, 139, 137, 141, 144, 130, 138, 138, 142, 133, 135, 136, 136, 139, 149, 133, 138, 156, 135, 144, 148, 132, 135, 138, 142, 135, 133, 143, 141, 126, 139, 140, 145, 135, 139, 139, 144, 137, 135, 129, 136, 144, 140, 136, 140, 142, 132, 139, 131, 135, 137, 147, 135, 148, 154, 136, 141, 143, 134, 136, 142, 136, 144, 133, 124, 135, 143, 143, 148, 142, 134, 135, 132, 138, 139, 131, 153, 141, 126, 140, 141, 136, 141, 142, 138, 142, 141, 145, 144, 143, 144, 134, 144, 131, 140, 143, 142, 147, 134, 145, 142, 142, 142, 143, 138, 140, 139, 150, 140, 135, 139, 139, 137, 136, 146, 135, 136, 140, 131, 136, 138, 138, 148, 127, 136, 136, 136, 129, 141, 141, 135, 145, 130, 147, 142, 147, 138, 142, 134, 137, 139, 144, 140, 142, 134, 141, 140, 137, 136, 133, 140, 140, 141, 133, 140, 135, 126, 148, 140, 150, 132, 150, 143, 136, 140, 149, 151, 161, 135, 142, 138, 125, 130, 148, 134, 143, 136, 134, 134, 140, 142, 146, 146, 128, 142, 136, 138, 141, 144, 137, 144, 138, 135, 146, 136, 148, 141, 135, 143, 147, 146, 147, 143, 141, 143, 132, 142, 146, 146, 135, 135, 136, 145, 139, 136, 130, 145, 146, 135, 140, 137, 143, 146, 148, 147, 135, 134, 136, 129, 135, 156, 135, 133, 136, 131, 133, 140, 137, 131, 136, 138, 135, 136, 127, 144, 138, 139, 146, 137, 141, 139, 158, 136, 128, 136, 140, 130, 143, 138, 126, 136, 138, 136, 132, 140, 141, 137, 134, 140, 137, 143, 138, 140, 139, 143, 135, 141, 133, 149, 145, 139, 137, 148, 152, 142, 148, 136, 143, 143, 140, 144, 129, 137, 141, 143, 129, 132, 143, 149, 147, 133, 143, 146, 145, 139, 139, 139, 129, 133, 146, 146, 149, 131, 137, 136, 138, 142, 131, 126, 125, 133, 145, 141, 131, 140, 130, 143, 143, 136, 142, 138, 146, 137, 143, 134, 144, 142, 130, 140, 136, 148, 142, 139, 136, 143, 146, 142, 142, 145, 132, 151, 147, 147, 139, 127, 147, 141, 154, 137, 138, 140, 140, 123, 138, 137, 146, 143, 136, 131, 136, 140, 133, 129, 127, 129, 143, 133, 135, 131, 142, 127, 140, 143, 134, 143, 146, 140, 124, 132, 138, 140, 146, 138, 151, 144, 141, 132, 137, 136, 134, 128, 130, 137, 140, 140, 138, 144, 137, 141, 134, 145, 134, 136, 152, 150, 142, 146, 143, 141, 137, 134, 142, 130, 138, 136, 144, 133, 141, 138, 144, 131, 143, 132, 134, 139, 139, 129, 130, 136, 129, 133, 136, 130, 133, 144, 142, 136, 148, 143, 144, 147, 133, 135, 144, 140, 146, 136, 148, 140, 146, 141, 135, 140, 141, 144, 132, 143, 132, 139, 133, 141, 130, 143, 135, 149, 130, 134, 138, 140, 134, 138, 143, 131, 147, 143, 134, 141, 136, 137, 135, 131, 143, 136, 145, 136, 139, 137, 141, 134, 130, 140, 140, 138, 138, 137, 138, 144, 136, 131, 138, 142, 134, 139, 140, 145, 134, 142, 134, 142, 145, 132, 136, 133, 141, 132, 146, 136, 132, 137, 142, 155, 141, 149, 129, 139, 136, 139, 143, 134, 134, 146, 142, 140, 141, 136, 135, 139, 140, 143, 144, 137, 145, 137, 144, 140, 141, 139, 137, 139, 143, 139, 141, 129, 142, 143, 147, 136, 143, 135, 131, 140, 138, 131, 139, 136, 144, 147, 131, 135, 141, 143, 133, 137, 139, 140, 146, 134, 134, 132, 141, 137, 149, 137, 134, 134, 134, 148, 132, 136, 138, 137, 136, 138, 134, 137, 139, 132, 137, 134, 140, 132, 146, 149, 148, 129, 142, 136, 128, 146, 142, 137, 137, 135, 146, 140, 133, 138, 141, 143, 144, 137, 131, 146, 136, 143, 137, 126, 143, 139, 136, 137, 138, 142, 142, 150, 136, 137, 140, 139, 138, 125, 136, 131, 142, 138, 150, 145, 141, 139, 137, 140, 144, 137, 140, 135, 142, 135, 135, 140, 139, 145, 135, 146, 138, 147, 135, 141, 138, 137, 141, 130, 147, 144, 149, 148, 131, 128, 137, 158, 140, 137, 147, 140, 141, 131, 143, 137, 131, 142, 142, 133, 147, 134, 137, 141, 140, 138, 132, 132, 133, 132, 133, 146, 143, 144, 143, 138, 135, 135, 136, 141, 132, 141, 128, 145, 138, 147, 135, 131, 140, 140, 139, 142, 143, 137, 137, 141, 141, 135, 148, 146, 129, 147, 143, 138, 137, 145, 139, 138, 135, 134, 139, 147, 141, 142, 136, 136, 139, 139, 143, 136, 144, 134, 143, 139, 144, 145, 138, 139, 132, 132, 135, 131, 135, 137, 135, 134, 140, 147, 140, 139, 132, 130, 133, 137, 149, 140, 145, 133, 135, 140, 139, 138, 138, 142, 139, 135, 140, 138, 150, 135, 145, 139, 138, 135, 137, 141, 140, 144, 139, 133, 139, 139, 143, 145, 138, 141, 139, 144, 127, 134, 137, 134, 135, 146, 134, 130, 141, 147, 133, 132, 139, 133, 136, 146, 150, 134, 136, 137, 139, 135, 133, 151, 141, 137, 136, 152, 138, 139, 135, 138, 129, 142, 135, 144, 138, 145, 126, 149, 142, 133, 132, 134, 137, 137, 142, 135, 141, 136, 130, 138, 128, 128, 144, 135, 145, 135, 138, 136, 144, 137, 136, 149, 147, 132, 139, 143, 136, 144, 137, 135, 139, 152, 136, 136, 139, 144, 140, 147, 143, 141, 138, 124, 131, 144, 137, 154, 144, 136, 131, 133, 133, 138, 142, 142, 134, 146, 138, 139, 136, 135, 144, 147, 147, 150, 144, 139, 137, 135, 141, 148, 139, 151, 144, 132, 148, 132, 142, 134, 148, 137, 142, 133, 148, 140, 131, 137, 141, 131, 130, 138, 142, 135, 147, 138, 148, 140, 141, 142, 138, 144, 155, 141, 134, 147, 137, 143, 135, 137, 143, 133, 141, 132, 152, 142, 146, 135, 143, 138, 132, 129, 139, 137, 136, 135, 130, 131, 140, 135, 140, 130, 140, 133, 140, 142, 144, 135, 134, 149, 146, 149, 144, 135, 142, 141, 141, 144, 140, 142, 143, 147, 149, 139, 142, 146, 147, 142, 141, 128, 133, 132, 142, 139, 136, 146, 143, 142, 141, 149, 149, 139, 141, 139, 154, 145, 139, 147, 140, 131, 140, 134, 133, 145, 137, 135, 145, 128, 142, 142, 135, 144, 146, 143, 145, 135, 138, 138, 142, 133, 129, 132, 140, 145, 145, 144, 136, 139, 135, 139, 137, 130, 138, 131, 139, 138, 138, 131, 135, 137, 145, 137, 141, 130, 134, 133, 137, 146, 135, 145, 144, 140, 140, 146, 129, 126, 138, 144, 144, 142, 143, 153, 141, 136, 136, 141, 147, 140, 138, 147, 144, 145, 136, 130, 137, 141, 139, 138, 143, 138, 135, 146, 141, 145, 139, 135, 146, 149, 142, 134, 139, 144, 139, 138, 140, 140, 141, 131, 148, 143, 138, 138, 144, 137, 137, 136, 143, 131, 143, 144, 143, 137, 130, 141, 150, 141, 130, 128, 137, 146, 144, 145, 138, 137, 135, 150, 144, 138, 137, 139, 135, 142, 138, 131, 138, 139, 149, 144, 133, 140, 127, 127, 140, 146, 134, 140, 139, 140, 140, 140, 139, 138, 134, 128, 135, 143, 146, 145, 139, 137, 146, 141, 138, 135, 146, 139, 132, 141, 141, 143, 131, 139, 138, 132, 147, 145, 129, 138, 150, 142, 131, 142, 137, 138, 134, 138, 129, 139, 152, 139, 138, 149, 140, 137, 136, 138, 148, 133, 138, 144, 142, 128, 147, 137, 148, 146, 146, 138, 148, 138, 143, 139, 142, 142, 136, 147, 137, 140, 131, 143, 133, 139, 134, 140, 138, 146, 137, 139, 145, 137, 139, 139, 141, 144, 147, 139, 138, 136, 147, 141, 142, 128, 134, 140, 142, 135, 156, 145, 130, 140, 145, 136, 133, 138, 125, 136, 142, 134, 149, 136, 131, 150, 141, 139, 138, 149, 138, 141, 146, 138, 141, 143, 143, 134, 138, 145, 131, 142, 141, 134, 143, 141, 133, 139, 138, 146, 144, 139, 148, 144, 137, 138, 139, 138, 141, 148, 140, 146, 139, 136, 132, 138, 137, 129, 137, 138, 132, 128, 145, 135, 144, 138, 146, 140, 139, 137, 141, 133, 140, 144, 137, 141, 135, 134, 141, 144, 145, 137, 139, 144, 155, 143, 141, 145, 145, 157, 140, 141, 142, 143, 141, 137, 144, 134, 139, 141, 136, 136, 146, 132, 139, 141, 145, 140, 138, 140, 139, 142, 140, 142, 137, 140, 132, 135, 140, 139, 135, 138, 131, 135, 136, 147, 141, 135, 149, 141, 140, 174, 133, 138, 140, 132, 140, 135, 145, 132, 138, 134, 140, 142, 141, 134, 141, 143, 138, 142, 140, 138, 140, 149, 134, 141, 140, 145, 150, 140, 151, 132, 139, 136, 138, 140, 142, 142, 140, 139, 132, 147, 139, 136, 128, 131, 133, 141, 136, 136, 140, 132, 144, 137, 138, 141, 147, 135, 148, 135, 133, 138, 142, 143, 140, 131, 139, 140, 135, 141, 125, 132, 136, 137, 133, 145, 138, 139, 133, 139, 139, 139, 135, 137, 142, 136, 143, 137, 147, 132, 142, 138, 146, 150, 140, 132, 146, 145, 142, 135, 124, 143, 146, 144, 134, 142, 148, 133, 138, 133, 144, 140, 134, 137, 129, 136, 131, 142, 128, 135, 143, 139, 142, 133, 142, 145, 143, 150, 138, 135, 136, 139, 138, 138, 138, 139, 133, 135, 130, 137, 136, 131, 129, 134, 144, 133, 142, 141, 134, 143, 133, 148, 139, 142, 136, 135, 133, 132, 137, 134, 138, 140, 138, 139, 131, 145, 145, 137, 138, 145, 138, 138, 134, 139, 135, 145, 139, 138, 142, 143, 143, 131, 148, 133, 141, 143, 140, 141, 130, 134, 143, 137, 139, 145, 132, 142, 144, 151, 147, 132, 154, 134, 140, 135, 139, 147, 146, 141, 145, 137, 144, 141, 132, 137, 140, 139, 137, 139, 138, 143, 140, 139, 141, 145, 147, 139, 128, 141, 143, 136, 137, 133, 135, 137, 136, 137, 136, 138, 139, 138, 142, 132, 139, 150, 140, 142, 139, 148, 142, 136, 139, 141, 140, 140, 128, 143, 145, 144, 141, 141, 143, 145, 139, 148, 132, 136, 141, 149, 143, 137, 136, 146, 125, 141, 135, 133, 138, 132, 133, 138, 150, 137, 129, 141, 141, 143, 139, 135, 145, 145, 142, 144, 145, 145, 134, 137, 137, 137, 143, 143, 140, 146, 133, 136, 130, 138, 147, 138, 143, 141, 139, 140, 139, 142, 136, 136, 145, 137, 142, 135, 138, 144, 136, 134, 135, 145, 132, 140, 136, 138, 144, 131, 133, 127, 139, 137, 134, 146, 143, 140, 132, 141, 138, 148, 139, 137, 145, 143, 137, 138, 140, 138, 147, 133, 139, 123, 138, 142, 142, 137, 131, 134, 139, 142, 146, 136, 135, 150, 136, 127, 138, 138, 141, 134, 135, 137, 140, 136, 144, 140, 150, 138, 129, 139, 141, 137, 146, 134, 127, 144, 139, 140, 139, 140, 134, 146, 142, 138, 145, 140, 148, 138, 149, 127, 142, 141, 139, 121, 130, 142, 144, 142, 134, 142, 153, 140, 135, 141, 145, 134, 139, 143, 130, 142, 137, 135, 141, 148, 136, 137, 133, 132, 135, 137, 138, 135, 137, 137, 144, 145, 134, 138, 149, 148, 138, 134, 138, 144, 146, 129, 141, 131, 140, 135, 141, 133, 138, 136, 151, 142, 140, 139, 143, 144, 140, 146, 132, 136, 144, 132, 141, 137, 146, 132, 132, 133, 139, 138, 135, 145, 137, 135, 134, 139, 134, 143, 133, 126, 144, 144, 144, 139, 132, 140, 133, 145, 140, 140, 131, 145, 132, 134, 139, 135, 136, 130, 140, 139, 140, 138, 149, 145, 127, 138, 128, 144, 137, 137, 139, 143, 139, 132, 133, 130, 149, 138, 152, 133, 137, 140, 141, 139, 145, 142, 143, 142, 138, 139, 140, 140, 135, 135, 140, 131, 133, 141, 142, 129, 133, 129, 130, 131, 135, 141, 144, 135, 136, 143, 130, 142, 147, 138, 132, 142, 140, 135, 141, 147, 131, 145, 148, 138, 137, 133, 133, 142, 150, 139, 144, 140, 155, 142, 143, 133, 135, 145, 141, 132, 136, 131, 133, 140, 137, 144, 131, 144, 127, 140, 128, 137, 140, 139, 140, 130, 135, 135, 134, 137, 147, 140, 146, 138, 140, 139, 141, 146, 141, 141, 144, 140, 139, 140, 153, 145, 136, 136, 137, 140, 153, 137, 134, 141, 148, 135, 147, 140, 136, 137, 143, 134, 136, 138, 130, 133, 140, 138, 138, 142, 138, 133, 134, 133, 140, 148, 125, 132, 139, 140, 148, 138, 138, 138, 144, 134, 140, 142, 130, 138, 127, 135, 129, 139, 141, 143, 141, 135, 131, 135, 131, 140, 128, 136, 137, 140, 151, 143, 134, 139, 127, 141, 136, 139, 143, 138, 137, 136, 137, 137, 127, 139, 140, 132, 141, 131, 133, 138, 129, 136, 132, 133, 139, 139, 139, 136, 132, 138, 141, 135, 143, 149, 141, 136, 138, 128, 142, 133, 134, 140, 133, 134, 134, 145, 144, 133, 136, 141, 146, 144, 141, 138, 138, 134, 136, 137, 142, 133, 143, 136, 140, 143, 139, 138, 131, 131, 137, 132, 145, 142, 136, 138, 135, 139, 133, 130, 141, 137, 141, 138, 138, 133, 138, 146, 136, 142, 128, 132, 136, 138, 137, 145, 151, 131, 141, 145, 132, 140, 135, 132, 134, 144, 139, 138, 138, 144, 137, 140, 136, 153, 147, 149, 135, 138, 139, 140, 138, 138, 140, 138, 141, 141, 136, 139, 143, 133, 139, 143, 134, 133, 138, 134, 133, 135, 141, 130, 143, 134, 136, 139, 142, 146, 144, 149, 143, 147, 134, 134, 147, 131, 139, 137, 134, 144, 134, 130, 139, 137, 140, 130, 137, 139, 137, 135, 137, 138, 137, 143, 138, 143, 138, 136, 144, 141, 136, 135, 143, 143, 134, 134, 145, 145, 138, 134, 142, 137, 132, 141, 141, 144, 134, 135, 131, 130, 140, 139, 133, 143, 144, 139, 152, 137, 130, 140, 141, 138, 137, 137, 140, 141, 128, 133, 139, 137, 138, 134, 139, 147, 125, 146, 133, 141, 140, 132, 143, 135, 144, 140, 138, 141, 136, 134, 133, 144, 142, 139, 137, 128, 135, 146, 142, 133, 142, 133, 144, 141, 142, 140, 140, 141, 141, 133, 135, 142, 143, 138, 135, 140, 141, 137, 145, 140, 140, 141, 145, 136, 145, 140, 136, 138, 145, 136, 138, 142, 138, 141, 148, 141, 142, 139, 137, 136, 138, 144, 144, 133, 138, 142, 136, 135, 146, 135, 144, 136, 136, 146, 143, 135, 143, 136, 146, 132, 141, 133, 136, 137, 138, 135, 143, 141, 143, 140, 147, 122, 131, 139, 137, 140, 147, 145, 138, 137, 145, 135, 135, 136, 141, 138, 142, 129, 141, 139, 135, 143, 146, 134, 138, 140, 139, 138, 142, 150, 140, 144, 138, 137, 146, 133, 138, 142, 133, 143, 150, 138, 141, 145, 134, 139, 139, 135, 139, 138, 138, 127, 152, 143, 134, 147, 141, 147, 136, 150, 145, 137, 141, 149, 132, 140, 137, 138, 142, 143, 133, 140, 134, 138, 139, 136, 137, 139, 131, 138, 138, 124, 140, 137, 134, 135, 137, 134, 139, 140, 139, 144, 143, 139, 145, 135, 150, 133, 138, 134, 138, 140, 144, 140, 141, 136, 139, 137, 144, 132, 129, 136, 145, 147, 140, 141, 144, 139, 135, 137, 137, 141, 145, 140, 134, 143, 132, 137, 137, 147, 135, 142, 146, 133, 136, 145, 138, 133, 146, 144, 137, 140, 144, 144, 138, 138, 147, 138, 134, 144, 139, 138, 146, 140, 135, 139, 137, 137, 138, 140, 129, 139, 136, 137, 141, 140, 135, 138, 142, 137, 134, 134, 141, 138, 139, 136, 139, 143, 142, 136, 148, 138, 134, 136, 139, 139, 142, 136, 140, 133, 133, 139, 144, 135, 141, 142, 140, 135, 145, 135, 139, 142, 139, 151, 141, 143, 140, 137, 138, 135, 138, 140, 144, 129, 140, 141, 135, 145, 136, 141, 146, 141, 138, 138, 133, 133, 143, 133, 144, 142, 137, 146, 140, 133, 142, 144, 144, 138, 133, 141, 136, 137, 142, 141, 144, 144, 142, 133, 142, 138, 144, 146, 137, 137, 141, 145, 139, 140, 137, 138, 141, 140, 137, 140, 145, 138, 136, 142, 144, 139, 136, 144, 135, 139, 140, 140, 139, 146, 146, 141, 138, 138, 142, 137, 147, 149, 139, 141, 142, 137, 145, 141, 140, 137, 142, 144, 139, 138, 137, 134, 139, 133, 143, 144, 139, 134, 137, 131, 142, 132, 142, 134, 139, 143, 143, 146, 143, 141, 150, 131, 139, 134, 144, 134, 133, 138, 136, 134, 133, 136, 138, 142, 137, 141, 135, 142, 137, 145, 140, 134, 136, 139, 142, 138, 140, 139, 143, 141, 143, 133, 138, 140, 135, 138, 137, 140, 140, 146, 138, 135, 131, 139, 135, 143, 133, 145, 140, 141, 144, 131, 142, 149, 148, 134, 139, 132, 139, 152, 138, 137, 136, 141, 134, 140, 143, 139, 141, 136, 130, 133, 143, 141, 143, 142, 144, 139, 145, 142, 142, 141, 144, 138, 144, 140, 147, 138, 138, 138, 141, 135, 138, 137, 137, 138, 142, 133, 144, 133, 139, 144, 142, 144, 140, 148, 129, 146, 146, 141, 135, 136, 141, 140, 138, 137, 134, 142, 144, 139, 138, 135, 132, 148, 137, 147, 136, 137, 140, 141, 139, 143, 146, 137, 146, 136, 136, 143, 141, 139, 142, 146, 146, 135, 137, 135, 143, 143, 141, 142, 141, 136, 140, 145, 138, 139, 146, 131, 142, 138, 150, 133, 134, 142, 139, 140, 136, 140, 142, 144, 138, 130, 148, 136, 141, 143, 138, 135, 142, 131, 140, 133, 136, 131, 133, 133, 141, 136, 145, 138, 145, 134, 145, 136, 137, 137, 139, 138, 137, 139, 140, 138, 138, 144, 142, 138, 140, 137, 131, 139, 143, 137, 136, 137, 140, 139, 135, 135, 135, 132, 137, 135, 141, 139, 136, 144, 146, 142, 140, 139, 139, 142, 145, 147, 142, 141, 129, 137, 146, 143, 141, 148, 135, 144, 135, 142, 138, 131, 138, 146, 138, 136, 138, 141, 141, 136, 140, 137, 140, 147, 141, 135, 141, 140, 138, 137, 135, 138, 132, 139, 133, 134, 151, 137, 142, 138, 138, 137, 149, 137, 135, 143, 143, 141, 140, 141, 143, 134, 149, 141, 136, 140, 140, 140, 145, 131, 136, 139, 142, 135, 142, 135, 144, 139, 143, 137, 139, 134, 138, 136, 142, 139, 135, 139, 136, 147, 131, 137, 138, 137, 135, 146, 137, 135, 134, 142, 145, 140, 135, 142, 138, 128, 140, 134, 130, 139, 149, 132, 148, 136, 143, 136, 142, 143, 150, 131, 127, 143, 140, 138, 128, 137, 141, 146, 139, 140, 133, 142, 141, 141, 144, 131, 136, 139, 142, 136, 131, 140, 145, 138, 138, 138, 137, 141, 129, 148, 135, 134, 139, 134, 142, 141, 133, 133, 145, 136, 139, 140, 145, 137, 150, 139, 140, 139, 130, 140, 134, 145, 138, 132, 135, 142, 139, 137, 142, 139, 134, 139, 135, 137, 143, 145, 139, 149, 132, 139, 137, 131, 147, 140, 138, 142, 138, 140, 145, 140, 131, 140, 135, 140, 127, 146, 144, 149, 142, 128, 131, 138, 138, 136, 140, 139, 136, 142, 142, 134, 139, 143, 141, 134, 139, 141, 141, 132, 147, 138, 149, 142, 151, 133, 143, 134, 139, 132, 135, 139, 134, 143, 142, 147, 140, 136, 139, 146, 136, 139, 147, 139, 140, 128, 139, 137, 133, 139, 138, 141, 140, 143, 131, 141, 152, 133, 138, 138, 139, 140, 130, 129, 146, 139, 141, 151, 135, 130, 137, 131, 136, 140, 122, 139, 139, 140, 135, 140, 139, 138, 139, 137, 147, 129, 133, 141, 133, 140, 145, 140, 141, 138, 136, 138, 136, 142, 144, 143, 131, 140, 148, 138, 140, 131, 143, 145, 138, 138, 141, 131, 144, 136, 138, 144, 133, 135, 142, 138, 138, 136, 136, 145, 136, 143, 137, 140, 143, 131, 144, 137, 154, 145, 139, 138, 138, 133, 136, 132, 137, 142, 140, 133, 133, 131, 140, 153, 140, 143, 140, 142, 132, 130, 139, 140, 127, 143, 140, 134, 145, 141, 136, 131, 145, 145, 142, 139, 145, 137, 141, 131, 140, 141, 139, 134, 134, 135, 135, 145, 130, 138, 136, 138, 137, 139, 142, 136, 130, 137, 145, 131, 138, 149, 139, 141, 142, 135, 148, 143, 146, 124, 139, 135, 134, 132, 139, 142, 142, 139, 142, 131, 127, 145, 140, 141, 135, 150, 145, 140, 143, 137, 149, 144, 140, 131, 134, 140, 134, 137, 138, 140, 138, 149, 138, 141, 135, 134, 137, 144, 139, 133, 135, 142, 142, 141, 142, 134, 138, 129, 141, 134, 138, 134, 143, 145, 129, 136, 135, 137, 143, 138, 137, 145, 142, 139, 150, 145, 138, 135, 139, 136, 136, 135, 132, 132, 134, 136, 137, 147, 139, 148, 145, 139, 137, 136, 142, 125, 139, 148, 131, 140, 137, 142, 141, 130, 131, 137, 142, 138, 145, 141, 149, 134, 135, 134, 138, 149, 139, 142, 139, 133, 145, 142, 142, 132, 136, 133, 142, 137, 133, 128, 135, 135, 137, 132, 137, 144, 137, 139, 134, 140, 136, 145, 141, 138, 143, 139, 144, 135, 134, 143, 138, 131, 151, 134, 137, 137, 149, 146, 138, 148, 138, 137, 140, 134, 148, 142, 137, 145, 144, 135, 147, 140, 144, 136, 136, 143, 144, 137, 133, 137, 137, 136, 134, 142, 146, 142, 140, 145, 142, 146, 127, 134, 137, 140, 142, 146, 136, 135, 138, 146, 138, 142, 141, 135, 141, 138, 145, 137, 134, 137, 138, 141, 147, 128, 139, 143, 138, 145, 137, 141, 137, 149, 141, 140, 141, 144, 139, 138, 138, 137, 130, 139, 145, 139, 131, 141, 131, 132, 145, 143, 139, 138, 162, 136, 136, 136, 142, 136, 134, 148, 136, 136, 134, 136, 136, 144, 134, 141, 141, 139, 126, 142, 139, 139, 144, 148, 140, 143, 136, 137, 141, 131, 136, 143, 141, 143, 145, 140, 146, 137, 131, 142, 137, 143, 133, 145, 134, 135, 141, 131, 136, 144, 147, 135, 141, 144, 141, 135, 143, 134, 140, 131, 140, 149, 131, 135, 137, 142, 135, 137, 139, 142, 141, 140, 138, 130, 139, 149, 138, 134, 138, 142, 133, 142, 143, 138, 130, 143, 133, 138, 145, 132, 140, 132, 158, 139, 143, 143, 135, 140, 139, 138, 138, 133, 143, 140, 147, 144, 138, 134, 141, 133, 136, 134, 129, 141, 143, 134, 145, 139, 140, 132, 135, 134, 142, 136, 140, 138, 139, 143, 132, 143, 141, 141, 137, 130, 144, 135, 136, 139, 139, 133, 136, 135, 139, 141, 136, 145, 147, 140, 141, 143, 136, 134, 144, 142, 141, 136, 140, 135, 138, 155, 139, 147, 139, 103, 135, 132, 139, 138, 139, 146, 142, 130, 140, 150, 139, 138, 139, 145, 133, 147, 141, 155, 136, 127, 143, 138, 139, 143, 146, 142, 141, 138, 138, 144, 136, 133, 143, 144, 141, 142, 145, 153, 147, 148, 142, 141, 139, 147, 138, 126, 144, 142, 140, 138, 134, 148, 138, 150, 139, 144, 139, 126, 135, 139, 135, 126, 141, 130, 148, 151, 140, 135, 134, 142, 145, 130, 139, 133, 140, 133, 128, 132, 146, 147, 136, 137, 153, 136, 136, 142, 134, 148, 137, 139, 138, 134, 139, 141, 137, 135, 137, 140, 138, 144, 136, 142, 134, 133, 146, 135, 132, 131, 136, 131, 137, 141, 147, 134, 132, 138, 139, 139, 141, 152, 134, 131, 139, 147, 140, 138, 131, 139, 135, 141, 137, 134, 142, 135, 144, 135, 142, 138, 138, 134, 132, 134, 114, 130, 137, 138, 131, 138, 136, 136, 131, 138, 145, 141, 145, 137, 145, 147, 140, 140, 142, 132, 136, 144, 135, 142, 150, 141, 141, 149, 142, 136, 141, 128, 137, 138, 145, 133, 142, 141, 151, 138, 135, 135, 147, 137, 138, 120, 134, 134, 132, 135, 130, 137, 141, 135, 133, 139, 143, 137, 144, 135, 141, 134, 140, 143, 132, 134, 139, 139, 132, 143, 140, 133, 140, 131, 142, 133, 141, 144, 137, 153, 138, 138, 146, 143, 140, 145, 131, 145, 139, 144, 142, 143, 134, 140, 142, 136, 141, 134, 142, 129, 138, 138, 141, 138, 141, 135, 139, 156, 133, 137, 139, 138, 145, 129, 142, 156, 133, 141, 137, 135, 151, 137, 138, 138, 140, 137, 139, 138, 128, 139, 142, 141, 137, 140, 137, 132, 142, 131, 141, 136, 146, 142, 142, 146, 129, 143, 134, 143, 144, 148, 141, 142, 143, 137, 139, 136, 133, 143, 131, 139, 138, 135, 135, 141, 138, 138, 146, 147, 131, 134, 139, 141, 140, 135, 130, 129, 153, 130, 142, 150, 140, 138, 142, 140, 133, 131, 148, 143, 143, 134, 144, 139, 133, 136, 154, 140, 143, 126, 137, 147, 137, 136, 139, 131, 134, 144, 146, 144, 138, 144, 140, 137, 149, 142, 144, 140, 135, 148, 129, 135, 135, 139, 135, 139, 139, 136, 128, 145, 136, 134, 136, 138, 137, 141, 130, 138, 134, 140, 144, 149, 144, 147, 141, 143, 128, 145, 147, 152, 133, 139, 138, 142, 131, 143, 122, 139, 149, 140, 142, 145, 145, 138, 129, 130, 142, 138, 137, 132, 139, 129, 139, 134, 145, 139, 145, 169, 129, 142, 145, 131, 132, 137, 146, 143, 138, 149, 140, 154, 134, 141, 138, 150, 147, 141, 135, 142, 144, 118, 148, 135, 133, 140, 134, 135, 137, 139, 139, 139, 141, 138, 146, 142, 147, 137, 128, 151, 128, 133, 141, 137, 130, 136, 133, 137, 134, 141, 137, 139, 133, 136, 132, 129, 136, 147, 137, 138, 133, 142, 142, 143, 137, 126, 139, 134, 129, 145, 146, 138, 143, 132, 140, 136, 146, 141, 143, 131, 139, 140, 137, 138, 131, 142, 139, 140, 139, 139, 142, 143, 141, 141, 136, 144, 132, 138, 145, 138, 140, 139, 136, 158, 143, 139, 120, 143, 141, 143, 139, 145, 134, 140, 148, 134, 135, 135, 139, 142, 147, 138, 137, 153, 135, 145, 143, 130, 140, 142, 154, 138, 131, 139, 143, 149, 146, 138, 124, 129, 139, 139, 140, 143, 141, 141, 132, 144, 148, 148, 137, 134, 146, 131, 135, 139, 138, 130, 117, 133, 146, 135, 138, 135, 132, 133, 130, 137, 142, 125, 138, 144, 145, 134, 141, 135, 128, 157, 137, 141, 141, 133, 133, 141, 144, 138, 142, 144, 136, 135, 136, 144, 142, 138, 132, 147, 140, 139, 129, 134, 144, 147, 137, 134, 138, 124, 140, 141, 128, 134, 132, 131, 137, 129, 137, 132, 141, 145, 143, 132, 129, 131, 143, 148, 146, 131, 136, 134, 141, 139, 141, 143, 135, 133, 142, 140, 130, 143, 136, 139, 146, 143, 143, 139, 141, 142, 147, 145, 142, 136, 165, 139, 135, 139, 139, 140, 138, 136, 148, 141, 150, 135, 145, 137, 139, 144, 139, 134, 144, 136, 132, 154, 144, 136, 144, 142, 128, 147, 145, 132, 147, 134, 142, 138, 136, 130, 136, 138, 143, 130, 135, 140, 130, 128, 139, 129, 146, 120, 143, 148, 139, 137, 133, 135, 131, 133, 143, 147, 141, 136, 135, 134, 126, 129, 128, 141, 144, 141, 144, 136, 143, 139, 136, 144, 142, 134, 150, 134, 139, 145, 132, 125, 137, 135, 142, 137, 134, 133, 137, 148, 134, 143, 137, 135, 123, 138, 136, 131, 133, 152, 136, 140, 144, 143, 143, 138, 140, 143, 134, 150, 143, 132, 130, 140, 129, 145, 139, 141, 137, 138, 138, 139, 132, 148, 137, 143, 148, 143, 140, 143, 136, 141, 136, 141, 134, 139, 144, 143, 133, 150, 145, 143, 134, 139, 139, 131, 142, 147, 135, 129, 133, 134, 145, 150, 135, 148, 152, 139, 137, 136, 138, 143, 134, 144, 140, 141, 133, 129, 142, 133, 135, 129, 164, 137, 140, 137, 145, 145, 140, 137, 132, 139, 142, 139, 146, 143, 138, 138, 136, 136, 133, 142, 152, 140, 139, 139, 147, 137, 155, 155, 121, 130, 137, 143, 142, 138, 141, 141, 143, 141, 116, 129, 134, 141, 139, 146, 138, 144, 135, 139, 142, 134, 142, 142, 149, 150, 147, 150, 135, 138, 123, 135, 144, 154, 130, 142, 134, 142, 134, 131, 146, 142, 144, 146, 151, 160, 147, 143, 129, 129, 146, 148, 145, 139, 142, 136, 138, 145, 147, 138, 144, 141, 133, 143, 139, 132, 142, 132, 139, 139, 133, 132, 132, 144, 139, 131, 138, 142, 151, 140, 130, 140, 143, 129, 147, 144, 137, 147, 138, 132, 133, 136, 149, 145, 141, 143, 133, 144, 138, 146, 145, 133, 143, 136, 140, 127, 140, 131, 150, 136, 128, 138, 147, 135, 142, 135, 132, 139, 135, 147, 148, 145, 133, 156, 146, 138, 131, 135, 135, 135, 129, 135, 146, 139, 133, 140, 143, 141, 134, 146, 139, 140, 155, 134, 148, 135, 138, 143, 133, 137, 138, 141, 139, 131, 150, 138, 138, 143, 125, 137, 133, 135, 132, 150, 144, 150, 142, 146, 126, 145, 146, 130, 132, 130, 144, 141, 147, 139, 151, 144, 134, 141, 138, 138, 138, 158, 142, 132, 129, 140, 134, 144, 150, 135, 132, 144, 139, 129, 130, 152, 145, 129, 141, 135, 151, 141, 136, 139, 142, 153, 147, 139, 137, 133, 135, 141, 135, 135, 149, 137, 141, 144, 144, 142, 148, 135, 139, 132, 154, 132, 143, 139, 145, 147, 129, 149, 137, 144, 145, 134, 146, 146, 143, 134, 136, 144, 155, 147, 139, 138, 137, 132, 138, 142, 146, 142, 132, 144, 141, 135, 135, 145, 146, 137, 133, 158, 143, 140, 129, 128, 146, 136, 138, 137, 139, 131, 134, 133, 138, 140, 142, 134, 143, 141, 153, 142, 140, 145, 131, 141, 140, 137, 136, 138, 146, 150, 138, 141, 132, 123, 138, 142, 134, 133, 136, 130, 136, 135, 143, 141, 146, 149, 152, 131, 136, 146, 146, 145, 132, 143, 137, 144, 135, 140, 135, 137, 136, 140, 135, 142, 138, 133, 140, 138, 132, 147, 149, 150, 132, 134, 142, 138, 131, 126, 138, 134, 142, 133, 141, 147, 147, 134, 139, 148, 141, 122, 140, 136, 132, 139, 134, 144, 158, 134, 140, 140, 142, 140, 148, 142, 137, 127, 134, 146, 140, 127, 138, 138, 140, 144, 146, 143, 141, 136, 137, 147, 147, 150, 135, 139, 139, 149, 140, 131, 134, 137, 127, 141, 144, 134, 133, 140, 127, 139, 144, 130, 132, 140, 136, 146, 136, 145, 147, 143, 148, 140, 136, 142, 155, 139, 147, 136, 140, 136, 137, 144, 149, 136, 127, 139, 133, 136, 143, 142, 137, 149, 133, 140, 135, 136, 139, 137, 150, 138, 134, 141, 140, 144, 145, 157, 137, 142, 137, 138, 136, 133, 141, 152, 139, 138, 136, 141, 145, 136, 144, 140, 143, 135, 138, 139, 140, 146, 135, 134, 142, 141, 136, 141, 137, 135, 141, 148, 136, 144, 142, 127, 138, 139, 140, 148, 138, 141, 138, 137, 145, 139, 137, 131, 141, 135, 137, 140, 143, 130, 129, 140, 140, 127, 135, 140, 136, 135, 134, 138, 136, 136, 128, 140, 144, 141, 139, 138, 131, 136, 142, 133, 140, 137, 150, 134, 136, 134, 125, 141, 140, 139, 140, 140, 142, 124, 133, 146, 141, 137, 140, 135, 139, 146, 136, 141, 138, 136, 144, 137, 145, 146, 147, 145, 135, 140, 143, 144, 136, 141, 138, 146, 140, 136, 137, 139, 142, 147, 142, 131, 140, 144, 141, 131, 149, 141, 134, 138, 139, 139, 140, 135, 134, 142, 128, 137, 139, 142, 137, 143, 142, 143, 138, 141, 134, 141, 137, 142, 138, 133, 141, 140, 148, 129, 132, 141, 138, 145, 143, 139, 134, 138, 147, 132, 138, 150, 132, 137, 136, 132, 133, 132, 146, 134, 139, 140, 131, 140, 124, 131, 136, 135, 128, 140, 136, 136, 131, 130, 141, 132, 139, 137, 137, 135, 148, 144, 136, 138, 134, 133, 130, 143, 132, 136, 137, 135, 137, 142, 137, 135, 132, 136, 142, 144, 127, 142, 138, 142, 141, 131, 143, 132, 140, 142, 139, 133, 138, 132, 133, 137, 142, 141, 146, 133, 138, 143, 135, 148, 139, 140, 150, 142, 144, 135, 139, 138, 133, 135, 141, 144, 139, 139, 144, 139, 137, 128, 138, 131, 138, 142, 143, 151, 141, 146, 138, 136, 142, 140, 137, 137, 142, 139, 140, 132, 141, 136, 137, 136, 137, 136, 134, 130, 141, 134, 140, 138, 144, 147, 139, 138, 137, 145, 139, 134, 142, 135, 141, 137, 128, 137, 137, 139, 143, 137, 128, 131, 127, 139, 145, 130, 148, 134, 144, 131, 143, 141, 135, 141, 138, 124, 137, 133, 141, 139, 140, 139, 145, 140, 134, 144, 135, 150, 136, 139, 139, 135, 149, 137, 139, 135, 133, 142, 140, 135, 139, 131, 145, 136, 139, 138, 134, 129, 138, 142, 140, 142, 146, 128, 141, 144, 145, 142, 147, 134, 136, 143, 138, 141, 140, 139, 138, 140, 135, 144, 137, 143, 139, 145, 132, 146, 137, 141, 133, 130, 139, 140, 135, 139, 150, 135, 138, 138, 136, 136, 130, 132, 129, 136, 143, 145, 138, 135, 135, 134, 139, 141, 139, 142, 146, 137, 137, 138, 138, 140, 140, 146, 143, 139, 138, 143, 138, 144, 141, 142, 147, 139, 133, 144, 135, 139, 142, 141, 143, 141, 137, 138, 139, 134, 139, 131, 140, 134, 141, 143, 133, 138, 142, 132, 141, 142, 131, 143, 140, 137, 138, 142, 143, 143, 137, 148, 139, 138, 138, 140, 138, 137, 141, 137, 140, 138, 137, 137, 156, 138, 139, 129, 135, 137, 132, 139, 136, 139, 144, 142, 140, 142, 146, 143, 137, 135, 135, 141, 136, 131, 129, 143, 137, 140, 137, 132, 140, 130, 130, 141, 141, 135, 142, 138, 140, 127, 134, 128, 141, 149, 135, 132, 138, 137, 136, 139, 139, 138, 137, 144, 139, 136, 136, 139, 140, 142, 141, 138, 135, 140, 135, 138, 136, 141, 136, 133, 145, 140, 136, 136, 141, 140, 139, 136, 139, 139, 137, 137, 138, 138, 137, 137, 136, 137, 140, 145, 141, 137, 140, 141, 140, 142, 138, 136, 145, 141, 137, 141, 138, 136, 139, 135, 137, 146, 142, 140, 142, 145, 141, 137, 134, 138, 138, 141, 141, 143, 141, 137, 141, 140, 145, 140, 141, 135, 136, 140, 141, 144, 133, 136, 139, 136, 135, 138, 141, 140, 136, 144, 136, 138, 138, 143, 138, 138, 142, 138, 134, 135, 140, 143, 137, 140, 137, 147, 130, 135, 138, 137, 141, 138, 140, 133, 137, 140, 144, 142, 139, 140, 145, 139, 132, 140, 138, 135, 136, 136, 134, 138, 139, 140, 140, 138, 139, 140, 139, 139, 136, 145, 140, 140, 140, 140, 137, 137, 132, 140, 138, 139, 139, 140, 142, 138, 137, 140, 141, 143, 137, 140, 140, 139, 135, 136, 136, 144, 138, 141, 140, 141, 138, 144, 140, 135, 141, 139, 140, 134, 138, 135, 135, 134, 138, 140, 136, 142, 143, 135, 141, 141, 135, 139, 135, 141, 138, 140, 140, 141, 142, 136, 137, 136, 140, 137, 142, 140, 139, 147, 139, 141, 141, 137, 137, 144, 136, 139, 137, 140, 141, 143, 139, 138, 140, 139, 140, 136, 134, 137, 137, 139, 142, 140, 136, 144, 140, 138, 144, 138, 137, 141, 140, 138, 141, 137, 138, 140, 138, 142, 140, 137, 142, 139, 141, 136, 134, 140, 139, 134, 140, 139, 141, 140, 139, 141, 143, 140, 141, 146, 134, 139, 137, 137, 140, 134, 141, 139, 141, 139, 140, 141, 144, 134, 133, 144, 135, 135, 136, 139, 138, 135, 145, 140, 148, 142, 140, 134, 133, 141, 141, 138, 143, 128, 138, 141, 132, 139, 135, 140, 137, 140, 140, 139, 144, 130, 137, 139, 135, 137, 140, 137, 138, 140, 134, 139, 140, 144, 136, 138, 140, 140, 142, 136, 141, 136, 139, 138, 138, 136, 139, 140, 139, 140, 137, 140, 143, 141, 138, 142, 142, 137, 139, 139, 141, 142, 139, 140, 138, 138, 141, 139, 138, 138, 138, 144, 140, 135, 141, 138, 133, 136, 137, 141, 146, 136, 142, 139, 139, 139, 139, 138, 145, 139, 140, 137, 143, 137, 139, 137, 140, 141, 136, 144, 134, 138, 141, 138, 137, 142, 139, 138, 136, 138, 138, 136, 134, 134, 142, 140, 144, 135, 143, 139, 141, 134, 139, 135, 141, 135, 139, 138, 138, 138, 138, 143, 138, 141, 137, 136, 140, 140, 139, 137, 135, 136, 137, 138, 141, 136, 140, 137, 138, 137, 137, 137, 142, 142, 147, 136, 139, 145, 139, 135, 138, 140, 136, 135, 139, 139, 141, 137, 140, 140, 137, 141, 137, 137, 140, 138, 142, 138, 137, 139, 138, 145, 138, 137, 140, 136, 136, 143, 134, 138, 137, 140, 141, 140, 142, 139, 137, 138, 140, 138, 144, 135, 137, 138, 140, 139, 140, 141, 135, 140, 144, 142, 136, 144, 137, 132, 131, 147, 148, 132, 140, 135, 141, 135, 145, 141, 136, 144, 138, 141, 144, 146, 133, 140, 132, 137, 132, 133, 146, 138, 143, 136, 138, 138, 139, 125, 137, 139, 143, 143, 129, 144, 138, 141, 149, 136, 138, 140, 140, 139, 141, 138, 144, 137, 131, 144, 143, 136, 146, 141, 144, 141, 138, 141, 140, 139, 133, 143, 138, 138, 135, 133, 137, 143, 162, 145, 136, 130, 146, 139, 130, 138, 136, 139, 138, 133, 134, 145, 140, 143, 135, 138, 135, 134, 138, 140, 146, 138, 138, 137, 130, 141, 129, 136, 131, 134, 141, 141, 131, 138, 133, 136, 147, 133, 132, 146, 145, 134, 138, 138, 138, 149, 142, 138, 142, 140, 145, 141, 146, 142, 136, 134, 142, 137, 132, 134, 136, 149, 139, 133, 144, 142, 130, 140, 140, 139, 142, 149, 140, 137, 129, 140, 140, 124, 138, 138, 135, 141, 136, 134, 140, 146, 133, 137, 148, 139, 143, 142, 145, 137, 137, 129, 134, 136, 142, 139, 139, 133, 129, 129, 134, 135, 134, 127, 142, 137, 142, 138, 144, 133, 137, 153, 142, 137, 137, 147, 134, 136, 133, 138, 138, 143, 133, 137, 144, 143, 141, 136, 137, 143, 128, 135, 141, 139, 143, 135, 142, 139, 133, 138, 139, 133, 140, 134, 142, 141, 149, 149, 146, 144, 135, 143, 143, 133, 142, 142, 137, 144, 135, 130, 145, 134, 134, 139, 141, 139, 149, 140, 137, 140, 131, 134, 142, 137, 132, 138, 139, 134, 136, 143, 130, 145, 138, 145, 145, 144, 134, 145, 143, 142, 139, 134, 134, 139, 143, 144, 149, 144, 135, 134, 130, 135, 136, 142, 151, 132, 135, 149, 139, 132, 134, 133, 141, 135, 124, 127, 145, 141, 138, 140, 130, 134, 140, 135, 138, 130, 139, 144, 139, 141, 144, 128, 138, 136, 140, 140, 139, 133, 144, 126, 132, 137, 138, 136, 137, 139, 138, 138, 143, 143, 138, 135, 137, 143, 143, 141, 148, 139, 137, 146, 143, 137, 140, 147, 137, 141, 142, 129, 136, 133, 135, 139, 127, 135, 138, 140, 129, 133, 139, 138, 135, 138, 132, 142, 133, 140, 141, 141, 139, 136, 133, 138, 133, 144, 145, 137, 138, 136, 139, 135, 133, 148, 136, 139, 130, 145, 140, 134, 139, 145, 146, 134, 130, 147, 150, 129, 143, 150, 141, 132, 137, 135, 131, 147, 140, 141, 132, 138, 147, 144, 139, 132, 135, 139, 153, 146, 141, 137, 142, 140, 132, 142, 142, 139, 135, 145, 137, 146, 137, 127, 151, 145, 142, 144, 139, 133, 135, 135, 136, 142, 137, 134, 147, 131, 137, 146, 131, 136, 132, 145, 139, 137, 149, 142, 146, 138, 144, 147, 136, 136, 143, 129, 141, 136, 136, 135, 131, 136, 138, 133, 140, 143, 142, 132, 141, 144, 149, 135, 147, 143, 140, 139, 150, 150, 138, 137, 151, 140, 139, 145, 134, 139, 139, 129, 150, 135, 137, 138, 140, 138, 142, 141, 138, 137, 136, 142, 131, 140, 139, 145, 145, 139, 135, 141, 124, 131, 137, 140, 148, 137, 141, 137, 137, 138, 134, 136, 143, 133, 141, 141, 139, 135, 136, 130, 142, 145, 138, 149, 142, 138, 142, 133, 137, 139, 134, 137, 144, 134, 141, 150, 140, 137, 137, 143, 135, 136, 140, 133, 141, 144, 138, 135, 137, 140, 140, 134, 140, 136, 143, 137, 135, 136, 143, 145, 135, 138, 137, 138, 132, 142, 131, 145, 133, 131, 139, 142, 146, 132, 134, 135, 141, 133, 145, 141, 137, 139, 145, 135, 138, 144, 140, 141, 138, 136, 136, 133, 138, 143, 140, 142, 139, 139, 139, 139, 144, 132, 135, 137, 136, 144, 140, 144, 138, 133, 144, 146, 138, 140, 149, 146, 132, 138, 139, 142, 142, 143, 143, 146, 137, 140, 138, 144, 142, 139, 134, 138, 141, 141, 133, 139, 143, 137, 135, 139, 149, 137, 138, 141, 136, 138, 137, 144, 134, 140, 141, 150, 145, 145, 133, 147, 128, 144, 135, 144, 131, 135, 139, 133, 141, 137, 140, 137, 145, 138, 136, 141, 143, 147, 142, 134, 140, 139, 139, 136, 132, 135, 143, 136, 147, 150, 151, 148, 137, 138, 134, 140, 133, 138, 128, 137, 141, 138, 139, 139, 144, 138, 143, 137, 146, 139, 138, 142, 143, 135, 140, 139, 138, 141, 140, 144, 138, 140, 139, 136, 140, 144, 137, 142, 143, 145, 139, 144, 134, 142, 137, 140, 137, 146, 142, 142, 141, 138, 141, 138, 145, 138, 140, 134, 134, 136, 134, 135, 143, 139, 133, 142, 135, 138, 142, 137, 138, 144, 140, 143, 141, 141, 151, 144, 143, 139, 142, 142, 134, 146, 147, 145, 139, 133, 136, 140, 133, 143, 133, 141, 137, 145, 143, 136, 139, 135, 141, 141, 139, 138, 137, 139, 140, 135, 137, 139, 145, 140, 141, 142, 134, 140, 142, 147, 130, 147, 136, 134, 147, 135, 144, 150, 138, 141, 141, 143, 140, 139, 141, 134, 146, 144, 136, 141, 132, 142, 140, 140, 132, 140, 132, 142, 144, 136, 136, 138, 145, 137, 134, 136, 139, 141, 144, 146, 144, 141, 147, 141, 142, 137, 133, 144, 137, 136, 147, 153, 131, 145, 136, 140, 133, 138, 139, 135, 141, 144, 137, 142, 143, 133, 145, 142, 136, 135, 139, 140, 140, 142, 139, 139, 135, 143, 143, 134, 137, 134, 141, 142, 140, 130, 144, 140, 141, 130, 140, 142, 140, 137, 137, 140, 137, 143, 134, 138, 141, 138, 146, 137, 133, 137, 140, 141, 138, 145, 139, 134, 137, 142, 136, 144, 135, 139, 136, 147, 141, 138, 139, 135, 136, 131, 134, 137, 138, 132, 139, 145, 140, 146, 145, 150, 136, 151, 139, 145, 147, 137, 135, 145, 137, 141, 137, 139, 138, 137, 135, 142, 137, 144, 143, 138, 144, 138, 135, 142, 139, 131, 138, 133, 137, 140, 138, 133, 133, 135, 139, 137, 138, 139, 136, 138, 135, 136, 141, 142, 142, 145, 142, 145, 134, 138, 139, 134, 140, 140, 138, 132, 145, 135, 143, 140, 133, 141, 141, 142, 139, 137, 139, 135, 150, 141, 142, 139, 139, 137, 154, 138, 140, 142, 137, 140, 134, 151, 138, 138, 139, 135, 130, 143, 141, 133, 137, 140, 134, 146, 135, 146, 148, 145, 130, 144, 144, 137, 145, 142, 141, 146, 141, 140, 137, 139, 140, 134, 143, 135, 140, 143, 152, 135, 140, 139, 140, 132, 139, 145, 141, 137, 146, 141, 104, 135, 147, 136, 136, 132, 141, 140, 143, 142, 129, 135, 142, 144, 149, 140, 135, 138, 141, 151, 133, 144, 139, 139, 137, 134, 138, 135, 151, 147, 138, 137, 132, 139, 139, 135, 147, 140, 140, 142, 128, 136, 134, 149, 143, 157, 160, 136, 134, 136, 136, 138, 147, 137, 142, 133, 126, 142, 145, 139, 135, 131, 128, 141, 145, 138, 143, 134, 140, 138, 138, 134, 132, 142, 135, 154, 138, 145, 131, 141, 134, 122, 137, 154, 150, 138, 141, 140, 139, 130, 142, 142, 146, 134, 142, 135, 149, 132, 135, 140, 137, 149, 137, 135, 137, 142, 142, 131, 142, 135, 142, 136, 141, 145, 139, 141, 126, 152, 136, 134, 138, 142, 141, 147, 141, 135, 139, 141, 138, 135, 137, 147, 143, 140, 138, 137, 130, 143, 144, 144, 133, 139, 143, 149, 141, 133, 142, 135, 133, 146, 140, 139, 141, 137, 125, 144, 127, 140, 142, 136, 135, 140, 141, 145, 140, 137, 144, 139, 138, 140, 140, 132, 132, 135, 125, 141, 135, 134, 139, 129, 140, 142, 142, 138, 137, 145, 136, 144, 141, 131, 142, 143, 145, 135, 139, 141, 138, 143, 141, 140, 134, 134, 143, 144, 137, 139, 139, 135, 128, 132, 134, 135, 140, 131, 150, 137, 142, 134, 138, 142, 135, 138, 144, 146, 124, 141, 132, 141, 143, 135, 142, 130, 142, 145, 135, 152, 148, 150, 149, 139, 142, 150, 138, 140, 137, 136, 144, 136, 144, 137, 129, 138, 140, 142, 134, 140, 136, 141, 135, 129, 128, 145, 129, 143, 150, 133, 141, 137, 137, 143, 134, 141, 136, 137, 130, 144, 136, 131, 147, 128, 142, 144, 132, 135, 148, 141, 136, 129, 141, 140, 140, 135, 138, 136, 134, 150, 131, 148, 134, 131, 143, 141, 140, 131, 139, 136, 143, 134, 141, 133, 142, 142, 138, 136, 137, 141, 136, 141, 141, 127, 140, 136, 129, 135, 133, 136, 148, 139, 137, 141, 127, 130, 143, 137, 146, 146, 144, 143, 130, 134, 134, 136, 133, 137, 142, 127, 137, 132, 140, 141, 141, 140, 144, 145, 141, 129, 143, 134, 137, 142, 139, 135, 143, 144, 148, 136, 143, 132, 138, 141, 133, 139, 145, 140, 145, 133, 143, 134, 136, 137, 137, 130, 147, 136, 127, 132, 147, 139, 150, 134, 149, 140, 134, 130, 143, 142, 132, 133, 129, 138, 135, 149, 131, 135, 137, 135, 146, 134, 135, 146, 143, 137, 134, 135, 128, 142, 139, 144, 139, 150, 143, 139, 145, 140, 144, 141, 129, 146, 144, 137, 137, 139, 148, 145, 146, 151, 143, 137, 135, 137, 133, 136, 153, 138, 155, 141, 152, 138, 136, 138, 138, 130, 136, 138, 144, 134, 140, 146, 131, 142, 135, 141, 139, 144, 139, 141, 136, 135, 135, 145, 132, 140, 140, 141, 144, 135, 141, 144, 141, 138, 137, 149, 135, 130, 134, 146, 145, 129, 137, 137, 128, 133, 140, 141, 141, 132, 138, 133, 141, 136, 132, 135, 135, 144, 139, 149, 145, 139, 134, 141, 138, 147, 139, 136, 139, 135, 137, 141, 132, 139, 142, 139, 145, 135, 138, 144, 149, 133, 137, 145, 150, 147, 144, 135, 135, 129, 142, 132, 141, 133, 140, 137, 142, 139, 132, 136, 139, 133, 138, 152, 136, 139, 134, 148, 139, 137, 135, 140, 128, 134, 133, 144, 138, 133, 137, 141, 139, 137, 142, 131, 140, 144, 143, 136, 148, 147, 140, 143, 141, 137, 137, 143, 137, 133, 134, 137, 135, 144, 144, 129, 140, 137, 134, 140, 123, 133, 141, 144, 142, 154, 137, 138, 138, 129, 145, 140, 147, 149, 141, 145, 127, 133, 147, 149, 144, 134, 139, 130, 136, 139, 140, 139, 135, 150, 148, 143, 138, 142, 147, 145, 139, 140, 138, 149, 143, 146, 137, 141, 147, 140, 136, 138, 136, 139, 148, 146, 137, 136, 138, 143, 130, 134, 137, 139, 133, 157, 144, 129, 146, 123, 135, 133, 147, 134, 138, 147, 129, 137, 148, 141, 141, 140, 139, 140, 141, 137, 135, 140, 137, 133, 143, 144, 142, 136, 136, 140, 132, 141, 135, 137, 136, 134, 137, 137, 147, 142, 152, 140, 146, 140, 133, 139, 138, 140, 135, 142, 138, 136, 138, 133, 136, 139, 134, 135, 134, 144, 139, 135, 138, 138, 153, 134, 134, 139, 139, 138, 141, 137, 137, 132, 140, 132, 132, 142, 137, 138, 138, 140, 146, 135, 144, 140, 142, 136, 140, 134, 142, 127, 136, 135, 129, 142, 132, 134, 147, 135, 141, 137, 147, 144, 132, 140, 140, 133, 134, 142, 133, 139, 140, 152, 136, 143, 138, 138, 137, 143, 144, 139, 135, 141, 135, 139, 131, 144, 130, 136, 144, 139, 126, 126, 134, 134, 140, 134, 129, 135, 135, 134, 132, 138, 136, 141, 146, 155, 127, 144, 136, 140, 129, 136, 137, 134, 141, 143, 141, 147, 137, 134, 139, 139, 140, 139, 132, 142, 135, 137, 130, 137, 132, 139, 137, 133, 147, 145, 132, 141, 142, 132, 126, 144, 133, 131, 150, 136, 129, 146, 138, 136, 146, 141, 144, 142, 142, 147, 140, 140, 144, 141, 145, 135, 133, 134, 140, 139, 141, 136, 139, 136, 137, 137, 144, 133, 134, 144, 136, 136, 139, 133, 141, 140, 133, 139, 140, 141, 132, 134, 133, 136, 139, 140, 150, 136, 137, 131, 144, 143, 139, 130, 136, 137, 143, 135, 126, 141, 138, 139, 139, 137, 138, 136, 135, 136, 137, 145, 134, 142, 143, 135, 144, 137, 135, 142, 132, 137, 146, 135, 135, 147, 135, 149, 138, 135, 142, 145, 139, 131, 135, 133, 133, 143, 134, 144, 140, 131, 135, 145, 134, 152, 139, 153, 138, 135, 140, 140, 138, 132, 143, 146, 131, 151, 133, 133, 140, 137, 131, 136, 133, 140, 132, 130, 144, 140, 141, 132, 135, 138, 135, 144, 120, 137, 142, 136, 151, 139, 147, 131, 137, 139, 143, 156, 140, 128, 131, 138, 124, 137, 141, 133, 133, 154, 141, 144, 140, 147, 141, 150, 139, 142, 157, 145, 139, 126, 144, 139, 137, 136, 140, 141, 134, 134, 148, 130, 136, 137, 141, 129, 124, 140, 135, 132, 135, 140, 141, 137, 139, 147, 134, 132, 138, 137, 142, 133, 140, 133, 138, 142, 138, 146, 143, 144, 136, 146, 151, 135, 143, 138, 139, 130, 140, 132, 140, 138, 133, 139, 138, 149, 143, 142, 137, 139, 132, 142, 132, 150, 146, 136, 135, 133, 123, 136, 136, 141, 139, 150, 132, 139, 126, 130, 135, 145, 142, 139, 132, 140, 145, 143, 135, 135, 140, 136, 147, 145, 133, 138, 148, 152, 138, 131, 140, 147, 144, 129, 141, 152, 146, 137, 140, 133, 147, 144, 136, 146, 136, 138, 141, 147, 131, 147, 143, 151, 136, 128, 137, 133, 137, 144, 149, 129, 134, 135, 139, 142, 143, 135, 138, 151, 141, 126, 132, 138, 133, 135, 143, 141, 134, 130, 140, 139, 132, 141, 143, 131, 140, 136, 132, 129, 132, 150, 162, 146, 130, 149, 137, 127, 134, 139, 149, 135, 143, 148, 149, 146, 137, 141, 144, 131, 141, 140, 141, 139, 148, 142, 142, 134, 131, 146, 146, 148, 131, 136, 133, 139, 142, 144, 139, 135, 122, 138, 136, 135, 143, 139, 148, 135, 138, 135, 145, 140, 136, 141, 129, 131, 149, 145, 133, 124, 136, 139, 136, 150, 136, 144, 137, 140, 135, 142, 140, 130, 148, 139, 136, 132, 146, 144, 139, 131, 137, 130, 145, 139, 150, 160, 139, 152, 147, 130, 148, 140, 129, 145, 133, 146, 133, 139, 139, 135, 137, 144, 128, 148, 143, 134, 137, 148, 135, 131, 134, 135, 146, 143, 146, 137, 135, 136, 136, 132, 143, 135, 138, 139, 128, 132, 125, 147, 140, 133, 142, 141, 148, 142, 139, 141, 131, 138, 141, 139, 140, 127, 146, 138, 133, 150, 145, 149, 137, 135, 151, 141, 156, 142, 136, 141, 148, 135, 150, 138, 131, 139, 131, 140, 148, 137, 144, 148, 136, 128, 141, 155, 133, 136, 132, 144, 135, 144, 131, 170, 143, 135, 149, 134, 133, 133, 145, 137, 143, 139, 142, 130, 132, 136, 149, 136, 142, 126, 136, 140, 132, 137, 140, 151, 138, 130, 145, 146, 137, 137, 136, 146, 145, 137, 138, 125, 129, 142, 131, 150, 132, 127, 146, 138, 124, 156, 143, 130, 145, 148, 142, 140, 139, 130, 140, 145, 136, 133, 130, 135, 149, 130, 138, 142, 139, 144, 144, 137, 148, 139, 152, 144, 132, 142, 138, 136, 144, 152, 138, 140, 135, 141, 136, 137, 143, 142, 151, 136, 130, 132, 123, 125, 140, 144, 144, 146, 135, 147, 147, 135, 137, 150, 136, 146, 124, 128, 132, 142, 147, 134, 129, 140, 148, 140, 139, 131, 145, 143, 142, 137, 136, 146, 128, 141, 148, 132, 126, 149, 131, 134, 135, 145, 134, 128, 136, 140, 140, 141, 142, 148, 138, 129, 136, 140, 138, 135, 138, 139, 136, 137, 142, 138, 136, 137, 146, 140, 144, 136, 136, 140, 136, 130, 135, 141, 142, 145, 138, 127, 144, 135, 137, 136, 142, 141, 141, 153, 136, 140, 144, 135, 134, 143, 144, 141, 144, 142, 138, 135, 141, 144, 119, 138, 137, 138, 124, 136, 136, 136, 140, 140, 136, 139, 138, 135, 142, 131, 137, 130, 139, 140, 143, 142, 138, 141, 136, 133, 140, 135, 141, 139, 143, 138, 134, 144, 138, 141, 144, 139, 134, 133, 134, 139, 143, 141, 139, 148, 145, 145, 143, 132, 140, 134, 140, 140, 139, 150, 141, 140, 139, 134, 139, 130, 144, 145, 137, 131, 135, 132, 140, 146, 141, 138, 132, 152, 139, 136, 139, 138, 139, 141, 136, 137, 133, 135, 149, 122, 137, 140, 136, 134, 139, 141, 138, 146, 139, 143, 140, 134, 133, 147, 134, 141, 139, 140, 146, 142, 145, 134, 143, 138, 141, 132, 134, 137, 141, 132, 137, 138, 128, 143, 139, 137, 141, 148, 140, 137, 146, 136, 138, 150, 141, 147, 133, 139, 133, 133, 137, 138, 141, 138, 137, 138, 138, 144, 136, 138, 146, 142, 137, 138, 141, 133, 132, 141, 137, 137, 136, 138, 138, 146, 138, 139, 139, 142, 133, 140, 133, 140, 141, 140, 142, 133, 139, 130, 135, 135, 144, 141, 138, 135, 139, 135, 142, 135, 136, 149, 142, 134, 135, 137, 139, 140, 143, 136, 140, 137, 138, 145, 141, 135, 136, 139, 128, 138, 145, 144, 134, 138, 147, 137, 145, 139, 146, 130, 146, 140, 132, 131, 138, 136, 147, 139, 132, 136, 138, 131, 139, 140, 144, 137, 137, 136, 148, 140, 135, 152, 136, 133, 136, 145, 138, 141, 140, 143, 144, 145, 144, 143, 146, 140, 132, 150, 142, 143, 140, 135, 141, 143, 141, 136, 135, 139, 140, 139, 144, 137, 147, 139, 140, 137, 139, 136, 137, 128, 147, 143, 137, 140, 142, 141, 144, 135, 143, 143, 144, 141, 144, 140, 135, 141, 141, 135, 142, 142, 136, 147, 144, 145, 138, 146, 137, 145, 138, 134, 138, 130, 134, 140, 140, 137, 144, 133, 138, 138, 140, 142, 137, 141, 137, 131, 144, 143, 143, 143, 135, 133, 146, 140, 140, 144, 143, 137, 147, 131, 139, 140, 143, 138, 131, 138, 145, 136, 142, 143, 136, 132, 141, 133, 140, 136, 137, 146, 137, 135, 140, 130, 139, 133, 144, 136, 135, 141, 137, 138, 139, 143, 132, 135, 140, 134, 134, 132, 139, 140, 143, 141, 134, 132, 138, 136, 136, 133, 140, 143, 145, 136, 145, 138, 144, 137, 138, 148, 137, 132, 132, 130, 138, 134, 143, 137, 141, 151, 134, 130, 138, 139, 131, 133, 138, 143, 138, 148, 140, 137, 138, 136, 133, 142, 144, 142, 137, 136, 148, 140, 146, 138, 142, 139, 133, 137, 143, 138, 138, 140, 140, 150, 142, 137, 137, 141, 134, 141, 139, 146, 137, 140, 129, 144, 132, 143, 136, 138, 135, 134, 143, 142, 136, 142, 143, 132, 136, 135, 140, 141, 123, 149, 153, 140, 145, 140, 133, 140, 137, 144, 132, 138, 134, 149, 135, 137, 142, 129, 131, 138, 137, 135, 131, 146, 142, 136, 144, 139, 147, 128, 140, 132, 143, 148, 144, 130, 135, 138, 148, 140, 138, 141, 145, 142, 124, 133, 141, 137, 141, 135, 146, 135, 140, 140, 136, 140, 136, 145, 129, 136, 139, 138, 139, 133, 135, 138, 143, 153, 137, 133, 152, 138, 141, 132, 136, 133, 130, 147, 135, 140, 151, 144, 128, 141, 144, 133, 141, 140, 145, 140, 133, 141, 132, 138, 152, 137, 135, 135, 135, 134, 136, 135, 132, 145, 128, 155, 144, 132, 144, 138, 142, 129, 138, 143, 140, 140, 141, 134, 138, 142, 141, 137, 133, 129, 152, 138, 141, 145, 142, 130, 139, 137, 137, 134, 142, 131, 141, 131, 128, 136, 139, 142, 142, 133, 141, 140, 149, 139, 153, 138, 138, 132, 145, 138, 146, 144, 146, 120, 146, 132, 141, 147, 142, 141, 142, 139, 140, 138, 146, 127, 140, 137, 137, 139, 138, 143, 135, 136, 136, 138, 133, 146, 129, 145, 135, 144, 136, 144, 133, 132, 131, 140, 136, 142, 135, 138, 132, 138, 138, 149, 139, 132, 136, 132, 140, 140, 143, 133, 147, 132, 129, 131, 135, 139, 139, 139, 150, 131, 132, 143, 140, 144, 136, 136, 145, 141, 147, 147, 134, 133, 145, 140, 136, 140, 129, 144, 134, 140, 150, 141, 126, 140, 133, 140, 139, 143, 133, 135, 153, 136, 135, 119, 140, 138, 128, 155, 131, 141, 147, 140, 134, 140, 140, 138, 138, 146, 131, 138, 133, 141, 132, 137, 139, 132, 141, 147, 140, 132, 136, 145, 146, 131, 147, 136, 134, 143, 141, 130, 138, 141, 137, 140, 143, 145, 132, 132, 135, 140, 134, 138, 142, 140, 137, 137, 131, 134, 133, 138, 136, 143, 139, 143, 148, 142, 135, 143, 142, 140, 144, 135, 132, 144, 133, 146, 147, 137, 149, 143, 142, 147, 141, 144, 144, 146, 155, 143, 144, 140, 138, 133, 129, 134, 138, 138, 138, 144, 135, 133, 130, 143, 139, 135, 148, 139, 145, 135, 138, 151, 133, 142, 131, 145, 140, 136, 145, 139, 139, 134, 136, 142, 137, 144, 134, 128, 139, 137, 131, 143, 142, 133, 133, 140, 143, 147, 139, 139, 130, 146, 141, 138, 126, 134, 141, 139, 139, 137, 139, 131, 141, 140, 145, 132, 141, 145, 142, 136, 138, 142, 140, 130, 133, 150, 142, 141, 139, 139, 137, 147, 138, 138, 151, 137, 140, 135, 143, 144, 136, 138, 143, 141, 141, 130, 139, 129, 132, 136, 136, 136, 135, 133, 135, 147, 142, 135, 137, 143, 143, 130, 137, 139, 144, 138, 131, 135, 142, 135, 133, 137, 136, 147, 151, 139, 137, 145, 136, 126, 133, 142, 142, 144, 146, 138, 143, 131, 143, 131, 150, 142, 137, 147, 143, 140, 137, 139, 134, 139, 135, 136, 144, 143, 144, 141, 147, 145, 138, 132, 137, 137, 125, 125, 146, 135, 132, 137, 133, 148, 138, 129, 147, 128, 141, 157, 143, 144, 132, 134, 131, 147, 138, 134, 152, 130, 136, 144, 138, 139, 140, 137, 141, 135, 139, 144, 144, 140, 142, 148, 139, 152, 133, 140, 143, 141, 136, 138, 147, 141, 138, 137, 146, 141, 140, 136, 147, 138, 153, 155, 134, 139, 133, 138, 145, 143, 132, 130, 133, 141, 137, 144, 139, 136, 147, 139, 135, 140, 144, 139, 144, 141, 137, 127, 139, 143, 143, 134, 137, 141, 132, 139, 137, 139, 133, 137, 143, 134, 133, 135, 145, 133, 140, 138, 145, 133, 139, 137, 136, 144, 147, 141, 146, 139, 142, 138, 138, 138, 144, 134, 143, 139, 135, 133, 141, 129, 132, 135, 135, 139, 138, 140, 133, 131, 140, 139, 138, 128, 138, 133, 145, 139, 135, 146, 137, 146, 136, 142, 145, 141, 138, 144, 147, 136, 138, 130, 140, 143, 139, 140, 144, 143, 135, 143, 145, 138, 132, 135, 139, 141, 150, 144, 137, 141, 135, 137, 135, 131, 132, 135, 137, 135, 134, 142, 136, 140, 141, 133, 134, 138, 136, 133, 143, 137, 145, 139, 140, 133, 138, 139, 139, 138, 139, 145, 135, 129, 126, 149, 141, 141, 138, 134, 135, 144, 158, 138, 147, 144, 142, 141, 131, 146, 142, 142, 141, 136, 142, 133, 143, 135, 133, 147, 137, 140, 140, 134, 128, 135, 136, 137, 143, 134, 138, 140, 131, 140, 136, 147, 130, 133, 138, 134, 131, 135, 140, 138, 136, 135, 142, 156, 137, 145, 140, 128, 138, 141, 136, 134, 146, 139, 146, 137, 159, 135, 139, 140, 138, 137, 138, 141, 134, 149, 140, 134, 133, 135, 131, 130, 145, 136, 141, 135, 145, 140, 140, 145, 141, 142, 141, 134, 138, 145, 139, 125, 135, 133, 140, 143, 140, 129, 137, 139, 134, 145, 146, 132, 141, 133, 134, 136, 135, 138, 145, 136, 144, 137, 140, 136, 147, 138, 140, 145, 146, 141, 145, 137, 142, 153, 143, 137, 137, 139, 138, 139, 136, 134, 138, 137, 135, 126, 149, 141, 143, 135, 135, 140, 135, 156, 140, 141, 139, 133, 139, 138, 143, 140, 134, 132, 139, 137, 127, 145, 139, 142, 134, 145, 135, 139, 155, 139, 131, 139, 138, 137, 135, 150, 143, 138, 127, 144, 142, 138, 144, 136, 145, 134, 135, 133, 133, 142, 131, 139, 137, 144, 134, 147, 136, 136, 140, 146, 145, 141, 131, 152, 136, 135, 138, 137, 138, 142, 148, 137, 129, 137, 134, 134, 139, 134, 141, 134, 140, 137, 133, 135, 135, 135, 144, 131, 132, 136, 131, 140, 133, 146, 141, 122, 144, 135, 143, 135, 135, 139, 141, 147, 138, 136, 127, 131, 130, 142, 142, 143, 139, 140, 137, 143, 145, 121, 134, 145, 149, 140, 136, 137, 141, 145, 132, 141, 145, 143, 143, 137, 137, 135, 144, 140, 144, 138, 140, 141, 141, 138, 139, 137, 137, 131, 137, 138, 135, 146, 131, 129, 139, 129, 145, 144, 148, 145, 132, 142, 146, 139, 140, 147, 142, 134, 139, 134, 134, 129, 141, 153, 135, 143, 144, 142, 134, 134, 140, 143, 143, 141, 144, 143, 136, 131, 134, 141, 127, 136, 138, 139, 137, 147, 139, 131, 136, 129, 134, 135, 151, 139, 145, 141, 141, 133, 141, 152, 144, 133, 139, 143, 140, 144, 132, 141, 140, 145, 142, 136, 149, 144, 126, 132, 140, 127, 145, 138, 142, 131, 139, 137, 141, 140, 136, 146, 138, 134, 135, 137, 130, 135, 133, 138, 141, 131, 141, 134, 129, 130, 141, 136, 138, 132, 144, 146, 132, 141, 151, 146, 148, 129, 133, 129, 129, 146, 134, 143, 137, 132, 144, 139, 136, 141, 130, 144, 137, 140, 135, 140, 133, 136, 141, 130, 135, 139, 149, 139, 143, 143, 135, 142, 138, 136, 138, 146, 145, 139, 137, 136, 139, 140, 140, 141, 129, 137, 137, 139, 144, 139, 133, 137, 139, 134, 132, 134, 134, 143, 136, 136, 147, 137, 143, 136, 149, 138, 135, 128, 136, 137, 143, 128, 143, 140, 139, 142, 132, 139, 142, 137, 138, 135, 135, 137, 137, 142, 146, 135, 131, 140, 143, 135, 141, 141, 153, 141, 136, 140, 138, 141, 140, 135, 136, 139, 144, 149, 135, 131, 135, 131, 143, 147, 141, 139, 141, 140, 138, 127, 140, 138, 147, 138, 136, 137, 141, 138, 136, 132, 130, 144, 136, 144, 144, 142, 138, 140, 132, 143, 133, 141, 139, 127, 143, 138, 139, 144, 135, 139, 139, 144, 136, 128, 150, 139, 137, 142, 136, 136, 133, 139, 132, 134, 131, 142, 139, 138, 143, 138, 134, 136, 134, 138, 140, 134, 138, 130, 142, 144, 146, 143, 136, 144, 138, 140, 138, 134, 134, 145, 139, 137, 140, 144, 139, 144, 139, 133, 147, 139, 142, 139, 139, 125, 146, 143, 140, 135, 137, 135, 132, 131, 147, 137, 131, 145, 135, 146, 135, 140, 136, 130, 136, 136, 123, 131, 136, 131, 135, 148, 134, 140, 138, 147, 139, 134, 143, 140, 137, 140, 140, 144, 137, 144, 137, 138, 152, 138, 143, 142, 134, 138, 137, 148, 133, 142, 133, 136, 140, 136, 135, 128, 144, 137, 132, 139, 146, 135, 139, 139, 139, 139, 128, 138, 141, 138, 131, 127, 137, 135, 138, 139, 147, 141, 138, 135, 135, 128, 135, 145, 136, 137, 132, 135, 135, 138, 140, 137, 139, 145, 137, 137, 151, 142, 138, 143, 130, 139, 144, 141, 136, 139, 141, 141, 139, 136, 138, 142, 134, 140, 155, 140, 137, 138, 153, 136, 128, 135, 137, 137, 141, 137, 138, 144, 137, 134, 134, 150, 134, 136, 149, 136, 139, 139, 137, 141, 138, 141, 132, 135, 143, 137, 136, 144, 141, 139, 146, 140, 136, 148, 136, 138, 136, 134, 135, 134, 135, 147, 140, 134, 133, 136, 127, 137, 148, 140, 154, 138, 135, 141, 143, 149, 139, 136, 137, 143, 131, 140, 124, 132, 141, 139, 138, 136, 150, 135, 141, 126, 136, 140, 144, 142, 147, 142, 141, 133, 140, 138, 144, 141, 140, 150, 137, 144, 132, 130, 141, 155, 141, 138, 142, 133, 138, 140, 144, 134, 137, 147, 135, 143, 139, 144, 142, 127, 138, 136, 136, 144, 138, 137, 145, 139, 140, 150, 144, 147, 132, 144, 134, 141, 142, 132, 137, 132, 146, 138, 141, 133, 144, 137, 145, 137, 140, 139, 142, 140, 135, 138, 139, 134, 136, 141, 130, 135, 142, 141, 137, 137, 135, 140, 139, 138, 131, 130, 132, 134, 131, 139, 152, 142, 138, 143, 137, 138, 141, 134, 131, 141, 132, 141, 140, 139, 137, 137, 152, 139, 140, 123, 138, 146, 127, 140, 150, 138, 139, 141, 129, 146, 139, 140, 129, 138, 133, 134, 140, 133, 140, 142, 120, 132, 136, 142, 123, 138, 139, 141, 147, 136, 138, 143, 146, 138, 151, 144, 137, 139, 143, 148, 143, 138, 144, 125, 143, 139, 139, 145, 145, 137, 136, 135, 138, 143, 135, 143, 140, 134, 139, 136, 135, 132, 148, 138, 133, 145, 131, 142, 142, 148, 146, 140, 137, 143, 139, 136, 135, 139, 134, 140, 142, 144, 144, 140, 150, 135, 135, 152, 136, 142, 141, 125, 139, 143, 144, 140, 151, 141, 138, 134, 149, 139, 138, 139, 134, 135, 132, 140, 133, 134, 133, 140, 130, 143, 150, 143, 133, 129, 139, 137, 135, 135, 132, 145, 136, 138, 144, 137, 139, 136, 142, 137, 149, 143, 138, 136, 136, 138, 132, 148, 142, 142, 144, 135, 134, 142, 147, 142, 139, 138, 139, 142, 138, 149, 137, 142, 135, 132, 138, 133, 141, 136, 144, 137, 144, 141, 141, 139, 140, 140, 143, 135, 136, 135, 135, 136, 137, 136, 135, 139, 146, 132, 145, 141, 139, 132, 135, 151, 145, 139, 138, 128, 136, 143, 141, 133, 135, 137, 142, 135, 140, 140, 139, 141, 141, 140, 136, 142, 144, 142, 142, 134, 141, 146, 139, 133, 143, 141, 129, 143, 135, 144, 132, 141, 137, 143, 138, 137, 139, 140, 133, 148, 138, 136, 133, 134, 143, 130, 140, 146, 133, 135, 141, 139, 134, 133, 143, 132, 136, 138, 145, 133, 141, 141, 141, 137, 142, 140, 138, 138, 140, 148, 134, 133, 141, 146, 138, 137, 130, 139, 136, 134, 137, 143, 143, 136, 133, 139, 134, 131, 136, 138, 133, 132, 139, 133, 144, 139, 137, 141, 139, 134, 138, 133, 137, 137, 140, 137, 131, 133, 138, 136, 139, 141, 132, 138, 151, 134, 134, 137, 144, 131, 149, 140, 144, 135, 140, 143, 139, 135, 134, 148, 128, 137, 149, 140, 138, 134, 134, 137, 138, 144, 141, 148, 135, 141, 142, 142, 144, 141, 135, 148, 141, 143, 133, 136, 129, 143, 141, 127, 133, 134, 138, 137, 144, 139, 135, 143, 139, 140, 142, 142, 133, 141, 145, 136, 135, 133, 138, 134, 140, 133, 138, 146, 133, 142, 145, 133, 149, 139, 134, 143, 137, 143, 142, 142, 135, 131, 143, 133, 145, 145, 132, 137, 131, 134, 144, 144, 137, 138, 140, 134, 138, 146, 143, 137, 143, 146, 130, 147, 136, 131, 138, 129, 141, 137, 130, 146, 146, 152, 145, 137, 146, 139, 150, 131, 137, 133, 132, 131, 135, 131, 141, 134, 144, 147, 145, 140, 133, 138, 134, 139, 137, 143, 136, 134, 130, 140, 138, 149, 139, 141, 143, 141, 141, 142, 136, 140, 128, 139, 143, 130, 142, 140, 146, 137, 143, 137, 132, 139, 146, 137, 148, 143, 135, 140, 138, 135, 138, 137, 130, 134, 141, 142, 135, 140, 140, 142, 143, 140, 141, 137, 137, 144, 121, 135, 141, 136, 136, 138, 135, 140, 134, 132, 131, 142, 138, 136, 134, 137, 142, 129, 142, 137, 139, 137, 137, 134, 141, 139, 139, 140, 140, 141, 140, 140, 142, 144, 133, 136, 143, 135, 142, 138, 134, 135, 132, 135, 137, 144, 141, 133, 139, 140, 139, 143, 141, 138, 141, 148, 137, 138, 144, 138, 134, 144, 134, 135, 140, 138, 138, 142, 139, 135, 142, 143, 141, 130, 143, 139, 138, 135, 140, 134, 136, 140, 135, 141, 140, 141, 142, 143, 137, 145, 140, 141, 139, 151, 132, 137, 149, 136, 137, 146, 138, 138, 141, 142, 146, 135, 137, 139, 134, 138, 137, 136, 134, 137, 141, 137, 142, 145, 134, 137, 138, 138, 136, 133, 139, 141, 139, 141, 139, 130, 138, 138, 145, 140, 146, 143, 141, 135, 139, 132, 137, 141, 135, 136, 140, 138, 139, 144, 135, 136, 138, 136, 146, 141, 145, 141, 141, 144, 139, 138, 140, 138, 138, 138, 137, 138, 137, 145, 142, 138, 131, 140, 140, 141, 144, 142, 146, 146, 137, 144, 140, 136, 137, 143, 135, 132, 138, 137, 143, 144, 152, 136, 142, 140, 137, 148, 135, 142, 144, 135, 146, 142, 135, 147, 136, 136, 137, 131, 140, 142, 138, 147, 133, 134, 142, 137, 145, 144, 139, 137, 147, 131, 136, 145, 145, 135, 140, 138, 139, 139, 136, 138, 140, 138, 139, 142, 137, 144, 134, 137, 136, 138, 139, 144, 137, 144, 142, 135, 141, 138, 135, 150, 141, 143, 140, 135, 132, 138, 144, 141, 141, 138, 141, 135, 138, 138, 144, 143, 135, 136, 146, 135, 142, 145, 136, 138, 137, 133, 146, 141, 138, 138, 150, 137, 137, 136, 135, 146, 137, 139, 135, 146, 137, 137, 136, 134, 147, 135, 125, 137, 143, 135, 138, 144, 145, 133, 136, 144, 143, 136, 137, 133, 142, 140, 131, 145, 140, 136, 138, 136, 145, 140, 138, 134, 139, 140, 146, 133, 143, 136, 145, 137, 134, 138, 140, 143, 139, 137, 138, 134, 133, 144, 135, 144, 139, 136, 141, 139, 140, 133, 138, 138, 132, 138, 134, 143, 138, 138, 139, 134, 137, 136, 141, 141, 136, 134, 144, 139, 142, 138, 138, 142, 143, 141, 136, 140, 146, 137, 138, 139, 142, 144, 136, 138, 132, 138, 137, 142, 146, 141, 137, 143, 143, 144, 139, 134, 138, 135, 138, 140, 137, 130, 146, 148, 138, 144, 137, 134, 146, 142, 133, 141, 136, 139, 141, 138, 137, 135, 139, 145, 135, 138, 142, 137, 146, 137, 138, 141, 139, 146, 146, 138, 139, 138, 140, 144, 134, 139, 143, 135, 139, 136, 137, 134, 132, 139, 145, 139, 131, 131, 131, 152, 147, 136, 139, 133, 141, 131, 139, 138, 133, 138, 130, 135, 134, 145, 130, 146, 134, 134, 138, 140, 139, 130, 128, 139, 132, 137, 142, 131, 136, 153, 131, 135, 134, 143, 142, 142, 133, 148, 143, 145, 155, 137, 127, 141, 136, 134, 141, 144, 139, 142, 139, 126, 145, 135, 136, 135, 146, 131, 136, 132, 131, 139, 137, 143, 137, 130, 142, 142, 140, 142, 140, 143, 132, 140, 143, 138, 140, 135, 146, 136, 136, 137, 129, 134, 132, 140, 130, 137, 141, 130, 130, 154, 138, 127, 139, 143, 147, 130, 147, 140, 142, 139, 127, 148, 133, 138, 140, 129, 144, 138, 143, 141, 139, 143, 150, 140, 146, 145, 130, 147, 140, 131, 145, 136, 135, 142, 141, 131, 144, 138, 146, 133, 137, 139, 143, 132, 134, 140, 136, 150, 132, 129, 136, 142, 138, 134, 144, 144, 129, 130, 132, 139, 142, 142, 149, 138, 145, 132, 145, 138, 136, 140, 141, 135, 145, 139, 135, 135, 143, 132, 137, 144, 141, 143, 140, 132, 148, 143, 142, 141, 133, 135, 146, 137, 143, 136, 135, 145, 136, 140, 143, 150, 134, 143, 131, 144, 127, 150, 137, 152, 138, 134, 132, 133, 143, 142, 139, 134, 135, 139, 140, 140, 135, 134, 136, 157, 141, 137, 138, 139, 145, 134, 147, 133, 143, 145, 147, 146, 136, 142, 136, 141, 146, 141, 141, 144, 140, 140, 137, 131, 131, 135, 139, 140, 146, 146, 144, 147, 133, 138, 134, 128, 141, 139, 134, 142, 147, 134, 140, 137, 149, 142, 142, 125, 137, 144, 136, 147, 143, 137, 128, 138, 133, 140, 126, 144, 147, 139, 143, 139, 142, 139, 139, 135, 140, 142, 137, 136, 145, 139, 135, 138, 146, 139, 137, 140, 133, 139, 134, 141, 143, 140, 138, 141, 157, 141, 135, 134, 141, 144, 141, 133, 136, 139, 135, 141, 137, 136, 146, 145, 135, 142, 134, 138, 137, 134, 143, 140, 143, 138, 139, 137, 148, 133, 144, 143, 141, 148, 137, 144, 131, 143, 127, 138, 126, 136, 145, 137, 146, 140, 134, 140, 147, 148, 128, 145, 143, 137, 140, 146, 142, 137, 137, 139, 147, 130, 137, 138, 136, 131, 138, 134, 131, 144, 138, 138, 139, 140, 143, 129, 131, 140, 142, 149, 159, 133, 148, 141, 145, 138, 132, 139, 144, 133, 135, 134, 134, 144, 133, 135, 130, 133, 138, 140, 135, 136, 133, 140, 137, 140, 124, 139, 143, 141, 138, 140, 138, 144, 140, 137, 136, 155, 147, 130, 142, 136, 152, 141, 143, 136, 135, 135, 142, 136, 139, 147, 149, 140, 134, 136, 150, 142, 144, 135, 142, 138, 135, 129, 147, 141, 140, 140, 139, 141, 146, 135, 135, 138, 139, 132, 139, 132, 143, 137, 140, 135, 144, 139, 145, 142, 149, 142, 138, 136, 136, 146, 136, 137, 126, 144, 129, 143, 141, 139, 139, 137, 149, 132, 132, 134, 143, 135, 137, 129, 143, 141, 134, 141, 139, 132, 137, 147, 142, 136, 143, 134, 149, 132, 137, 140, 135, 140, 140, 132, 142, 129, 149, 154, 135, 135, 136, 139, 143, 137, 129, 145, 136, 142, 135, 138, 143, 139, 136, 129, 146, 138, 148, 130, 137, 136, 137, 149, 135, 141, 137, 137, 128, 136, 139, 147, 134, 150, 136, 136, 133, 135, 139, 139, 140, 131, 135, 133, 146, 136, 145, 135, 140, 139, 140, 137, 137, 140, 130, 138, 142, 142, 141, 137, 131, 136, 130, 127, 138, 147, 142, 136, 139, 141, 144, 138, 140, 136, 143, 140, 139, 138, 142, 142, 139, 136, 142, 142, 131, 142, 137, 136, 137, 139, 140, 139, 144, 138, 135, 136, 132, 138, 134, 142, 142, 137, 133, 135, 142, 138, 134, 141, 137, 145, 136, 134, 140, 140, 139, 138, 140, 139, 144, 128, 127, 136, 135, 146, 135, 132, 144, 142, 137, 132, 138, 136, 142, 138, 132, 134, 142, 143, 138, 130, 145, 143, 137, 140, 135, 144, 134, 132, 132, 149, 135, 142, 135, 143, 140, 135, 127, 143, 135, 138, 133, 141, 131, 135, 135, 140, 137, 137, 135, 135, 142, 136, 130, 132, 141, 129, 137, 138, 144, 139, 137, 135, 150, 134, 132, 135, 134, 145, 126, 129, 146, 142, 142, 142, 136, 140, 130, 144, 142, 138, 143, 142, 145, 136, 144, 135, 142, 143, 135, 147, 141, 137, 141, 137, 137, 134, 140, 143, 141, 124, 143, 144, 139, 142, 142, 155, 143, 154, 141, 134, 143, 139, 137, 137, 145, 141, 143, 132, 137, 139, 142, 137, 141, 129, 133, 142, 137, 126, 137, 142, 130, 132, 139, 140, 133, 140, 138, 140, 138, 136, 144, 135, 137, 134, 143, 140, 135, 143, 141, 135, 137, 126, 138, 138, 139, 138, 124, 150, 131, 138, 132, 141, 138, 130, 142, 143, 145, 136, 128, 144, 142, 142, 137, 140, 138, 142, 132, 128, 138, 140, 133, 152, 139, 131, 134, 130, 141, 143, 133, 141, 140, 138, 137, 139, 136, 146, 147, 137, 146, 141, 139, 138, 144, 136, 144, 144, 130, 134, 136, 142, 135, 142, 148, 133, 140, 142, 148, 142, 133, 130, 144, 139, 136, 140, 142, 140, 139, 136, 142, 136, 136, 141, 129, 137, 139, 131, 145, 142, 146, 135, 132, 146, 140, 141, 133, 136, 145, 142, 135, 135, 134, 142, 132, 138, 136, 144, 134, 136, 141, 144, 133, 135, 139, 142, 138, 137, 138, 132, 132, 141, 140, 143, 138, 146, 135, 132, 137, 132, 139, 146, 137, 145, 134, 142, 132, 142, 140, 137, 137, 129, 137, 133, 132, 145, 135, 137, 142, 141, 143, 123, 142, 136, 129, 136, 134, 143, 143, 146, 143, 145, 148, 140, 138, 132, 137, 133, 134, 152, 133, 139, 141, 141, 155, 133, 144, 141, 138, 135, 137, 128, 137, 133, 145, 145, 132, 136, 140, 140, 148, 142, 139, 137, 136, 132, 137, 136, 143, 144, 142, 142, 141, 134, 133, 141, 135, 139, 145, 135, 141, 145, 140, 135, 141, 139, 121, 133, 130, 135, 142, 145, 143, 141, 139, 138, 138, 135, 138, 131, 137, 137, 140, 129, 142, 151, 132, 132, 143, 136, 131, 151, 142, 121, 138, 147, 140, 148, 141, 140, 132, 140, 140, 141, 126, 131, 152, 138, 134, 136, 128, 130, 131, 130, 139, 137, 134, 130, 136, 121, 131, 127, 118, 138, 129, 139, 135, 136, 139, 152, 140, 144, 129, 152, 129, 137, 138, 143, 137, 146, 130, 138, 139, 142, 151, 132, 144, 144, 140, 129, 141, 147, 141, 137, 137, 138, 135, 141, 130, 139, 130, 141, 136, 124, 142, 144, 136, 140, 141, 138, 126, 139, 133, 148, 130, 140, 143, 138, 143, 139, 146, 134, 142, 149, 136, 140, 148, 140, 137, 156, 138, 129, 145, 148, 133, 137, 149, 136, 150, 143, 136, 139, 139, 135, 143, 143, 140, 137, 135, 136, 125, 140, 154, 138, 144, 153, 136, 141, 132, 126, 147, 139, 134, 141, 147, 144, 133, 124, 135, 126, 151, 138, 135, 141, 148, 137, 131, 136, 129, 136, 155, 133, 128, 131, 136, 138, 140, 131, 144, 136, 142, 147, 144, 135, 123, 139, 145, 146, 143, 147, 146, 125, 156, 139, 124, 131, 125, 132, 144, 140, 142, 143, 133, 140, 138, 128, 142, 137, 145, 136, 146, 145, 129, 143, 150, 142, 137, 138, 140, 131, 126, 129, 151, 137, 139, 133, 134, 142, 145, 140, 141, 139, 133, 140, 141, 139, 142, 140, 138, 149, 132, 136, 132, 140, 148, 140, 135, 130, 129, 151, 143, 136, 127, 161, 122, 135, 131, 139, 144, 149, 158, 120, 129, 142, 145, 139, 140, 149, 142, 144, 155, 143, 143, 135, 131, 136, 142, 138, 144, 136, 138, 136, 142, 140, 147, 143, 145, 129, 139, 139, 148, 136, 139, 139, 137, 132, 143, 134, 145, 140, 131, 137, 132, 144, 136, 132, 137, 134, 137, 132, 129, 138, 130, 121, 135, 141, 120, 138, 137, 122, 142, 127, 138, 136, 134, 144, 127, 162, 135, 137, 129, 140, 136, 148, 136, 131, 130, 135, 145, 130, 143, 137, 125, 139, 156, 146, 139, 144, 143, 141, 140, 151, 150, 135, 139, 138, 133, 143, 133, 130, 135, 147, 136, 143, 138, 135, 137, 128, 150, 140, 135, 133, 137, 140, 134, 143, 129, 143, 137, 133, 143, 138, 139, 131, 138, 135, 153, 130, 136, 138, 141, 138, 151, 141, 136, 140, 138, 141, 136, 136, 140, 128, 140, 141, 151, 149, 139, 143, 141, 147, 132, 143, 143, 148, 140, 144, 134, 137, 137, 139, 137, 151, 143, 143, 142, 138, 135, 136, 135, 139, 136, 142, 143, 143, 141, 142, 143, 142, 138, 135, 143, 142, 139, 133, 133, 132, 140, 149, 140, 139, 139, 137, 144, 138, 137, 144, 133, 148, 134, 137, 139, 134, 128, 141, 159, 153, 138, 139, 149, 147, 134, 135, 132, 135, 134, 143, 138, 131, 133, 153, 135, 131, 135, 133, 139, 138, 136, 158, 143, 131, 146, 139, 151, 142, 140, 151, 136, 139, 139, 129, 135, 143, 136, 149, 136, 142, 133, 146, 148, 143, 132, 137, 140, 145, 142, 128, 134, 141, 143, 136, 144, 131, 136, 145, 139, 145, 139, 135, 134, 131, 139, 137, 134, 132, 145, 141, 135, 140, 135, 140, 130, 129, 128, 143, 140, 144, 132, 138, 140, 142, 134, 126, 136, 136, 138, 142, 145, 141, 138, 140, 143, 141, 138, 148, 135, 137, 147, 143, 139, 143, 139, 146, 139, 137, 134, 137, 137, 137, 135, 141, 140, 138, 140, 145, 145, 141, 129, 138, 141, 133, 124, 140, 142, 135, 136, 134, 144, 142, 135, 132, 142, 136, 127, 134, 130, 138, 145, 138, 130, 134, 138, 141, 137, 133, 146, 138, 134, 127, 142, 135, 148, 152, 146, 129, 135, 143, 135, 141, 150, 138, 132, 143, 140, 136, 136, 132, 143, 150, 144, 139, 132, 135, 142, 141, 137, 145, 143, 142, 134, 129, 137, 142, 138, 136, 133, 146, 139, 136, 139, 140, 132, 143, 136, 143, 135, 133, 133, 148, 132, 140, 132, 143, 141, 140, 138, 143, 129, 147, 139, 144, 130, 136, 142, 142, 133, 144, 145, 131, 139, 140, 140, 134, 132, 141, 135, 137, 134, 144, 142, 141, 143, 144, 140, 140, 129, 143, 143, 134, 136, 140, 145, 141, 138, 137, 140, 136, 132, 147, 136, 130, 141, 135, 140, 140, 142, 136, 140, 136, 136, 129, 142, 147, 134, 130, 124, 135, 138, 136, 140, 140, 154, 136, 136, 143, 142, 125, 136, 140, 147, 141, 136, 126, 137, 134, 141, 136, 143, 140, 139, 139, 138, 120, 145, 133, 125, 134, 132, 138, 143, 149, 133, 139, 134, 138, 135, 147, 133, 144, 137, 139, 136, 131, 141, 148, 135, 137, 131, 139, 144, 139, 133, 138, 137, 138, 145, 142, 135, 137, 141, 125, 146, 144, 133, 136, 135, 138, 146, 132, 147, 138, 141, 138, 129, 145, 145, 142, 134, 136, 137, 138, 139, 143, 152, 134, 139, 126, 129, 139, 130, 139, 142, 134, 150, 137, 131, 144, 131, 149, 129, 135, 133, 142, 144, 136, 143, 133, 130, 137, 148, 129, 143, 143, 141, 133, 134, 151, 136, 140, 148, 139, 142, 147, 132, 134, 149, 150, 133, 142, 144, 137, 143, 146, 141, 134, 144, 138, 135, 145, 147, 135, 137, 140, 138, 141, 127, 144, 138, 136, 140, 141, 140, 138, 140, 144, 133, 145, 143, 141, 145, 135, 132, 135, 142, 130, 127, 142, 136, 141, 133, 135, 131, 134, 137, 137, 139, 140, 139, 129, 146, 133, 142, 148, 137, 131, 139, 137, 132, 140, 128, 147, 146, 145, 139, 144, 143, 142, 136, 143, 136, 149, 142, 134, 135, 137, 133, 141, 129, 144, 141, 138, 150, 131, 149, 129, 127, 144, 138, 140, 141, 144, 130, 145, 140, 137, 126, 133, 137, 134, 143, 134, 137, 142, 144, 133, 151, 126, 136, 141, 138, 149, 148, 155, 143, 134, 130, 131, 140, 137, 136, 135, 136, 134, 136, 142, 147, 133, 131, 140, 136, 154, 140, 141, 138, 146, 140, 143, 132, 139, 131, 142, 137, 136, 144, 140, 136, 135, 138, 135, 139, 156, 134, 147, 138, 143, 140, 142, 133, 131, 131, 139, 151, 143, 150, 132, 141, 138, 142, 144, 136, 137, 129, 143, 141, 132, 142, 142, 137, 142, 140, 138, 139, 143, 137, 136, 145, 142, 137, 142, 145, 136, 143, 142, 140, 138, 143, 141, 148, 144, 143, 133, 140, 149, 136, 134, 139, 142, 134, 127, 139, 130, 140, 138, 132, 134, 144, 138, 138, 143, 138, 150, 136, 138, 148, 136, 133, 139, 139, 136, 141, 135, 137, 146, 134, 138, 133, 140, 135, 143, 135, 131, 137, 135, 140, 142, 141, 135, 144, 136, 144, 146, 151, 133, 136, 142, 137, 144, 140, 141, 136, 141, 134, 136, 140, 143, 139, 147, 149, 147, 138, 143, 137, 142, 133, 145, 140, 137, 144, 136, 147, 139, 141, 133, 137, 135, 134, 144, 128, 134, 132, 145, 146, 142, 141, 128, 133, 153, 139, 134, 148, 135, 136, 150, 139, 152, 147, 136, 138, 140, 141, 141, 146, 137, 139, 159, 142, 135, 141, 140, 144, 131, 140, 136, 143, 131, 134, 136, 129, 141, 144, 134, 131, 136, 146, 133, 137, 155, 125, 146, 134, 136, 147, 147, 137, 146, 148, 141, 139, 141, 145, 136, 137, 142, 142, 137, 134, 149, 149, 139, 132, 134, 132, 140, 136, 137, 131, 140, 134, 140, 146, 141, 139, 140, 141, 135, 136, 138, 140, 132, 145, 145, 144, 137, 141, 140, 121, 150, 134, 141, 140, 140, 130, 125, 147, 146, 138, 143, 145, 142, 136, 137, 132, 142, 142, 131, 142, 144, 145, 137, 140, 133, 136, 141, 137, 135, 138, 134, 136, 153, 139, 145, 145, 139, 140, 133, 137, 141, 142, 131, 149, 133, 136, 139, 135, 145, 141, 145, 144, 133, 133, 151, 137, 131, 131, 136, 141, 132, 139, 142, 130, 144, 145, 138, 142, 138, 135, 132, 148, 144, 142, 147, 148, 135, 132, 148, 145, 137, 150, 148, 132, 140, 145, 142, 128, 132, 140, 151, 135, 136, 144, 140, 130, 137, 141, 130, 138, 138, 135, 137, 144, 142, 140, 152, 134, 138, 142, 137, 136, 147, 130, 137, 141, 140, 144, 139, 126, 138, 137, 142, 129, 144, 137, 143, 142, 147, 129, 131, 146, 135, 142, 138, 133, 129, 144, 139, 139, 131, 128, 135, 139, 134, 145, 138, 151, 146, 138, 134, 136, 142, 131, 138, 135, 137, 145, 135, 135, 128, 137, 135, 137, 135, 135, 137, 136, 142, 135, 144, 149, 137, 134, 143, 129, 141, 146, 132, 134, 126, 134, 139, 131, 138, 139, 127, 136, 133, 157, 143, 138, 141, 142, 134, 143, 129, 126, 145, 139, 141, 136, 135, 133, 140, 134, 136, 125, 145, 136, 135, 132, 131, 145, 144, 142, 134, 148, 141, 147, 146, 140, 152, 135, 149, 148, 138, 140, 141, 147, 138, 137, 142, 139, 141, 137, 152, 142, 136, 138, 135, 140, 140, 147, 145, 136, 136, 143, 148, 143, 139, 136, 138, 136, 136, 138, 126, 138, 134, 131, 140, 139, 138, 149, 124, 137, 131, 150, 131, 144, 140, 143, 152, 139, 138, 135, 132, 142, 130, 137, 143, 143, 145, 131, 135, 135, 141, 140, 148, 149, 146, 126, 143, 138, 144, 138, 128, 147, 138, 137, 129, 138, 136, 138, 135, 141, 138, 141, 137, 148, 135, 144, 141, 131, 137, 138, 135, 153, 144, 136, 147, 128, 143, 137, 143, 137, 141, 140, 130, 146, 138, 149, 131, 139, 144, 141, 140, 140, 143, 140, 142, 155, 136, 142, 150, 136, 137, 138, 137, 143, 141, 150, 146, 134, 146, 138, 131, 140, 129, 143, 131, 136, 139, 134, 144, 147, 133, 134, 136, 148, 140, 143, 146, 146, 127, 138, 142, 133, 142, 126, 138, 130, 128, 144, 135, 138, 135, 140, 140, 128, 135, 136, 145, 139, 138, 147, 138, 140, 134, 145, 144, 141, 146, 137, 138, 128, 142, 141, 146, 134, 137, 145, 141, 137, 127, 142, 137, 139, 142, 137, 148, 136, 150, 142, 141, 140, 135, 137, 135, 142, 144, 151, 132, 145, 137, 142, 146, 140, 141, 146, 129, 139, 137, 144, 148, 137, 146, 133, 149, 136, 131, 152, 150, 139, 143, 129, 142, 143, 132, 144, 138, 146, 144, 136, 127, 142, 137, 125, 129, 140, 133, 133, 136, 135, 144, 131, 137, 140, 139, 133, 139, 138, 138, 137, 159, 154, 149, 140, 141, 137, 146, 144, 144, 133, 141, 141, 137, 135, 146, 150, 139, 125, 136, 134, 141, 137, 146, 145, 148, 132, 149, 150, 131, 147, 138, 138, 149, 150, 130, 148, 138, 136, 135, 139, 152, 141, 133, 144, 134, 133, 138, 131, 129, 140, 141, 155, 139, 134, 144, 135, 139, 144, 134, 135, 139, 143, 143, 137, 144, 144, 122, 137, 144, 140, 141, 148, 142, 132, 139, 151, 135, 134, 143, 138, 152, 136, 144, 142, 135, 135, 140, 131, 137, 136, 143, 139, 140, 134, 140, 134, 142, 140, 136, 131, 144, 130, 141, 139, 141, 139, 128, 123, 139, 131, 139, 141, 144, 132, 142, 130, 138, 134, 135, 139, 141, 129, 141, 134, 139, 137, 141, 142, 144, 147, 146, 139, 146, 139, 141, 138, 144, 134, 145, 134, 139, 137, 139, 126, 147, 132, 134, 135, 140, 139, 139, 135, 137, 141, 141, 138, 154, 147, 154, 132, 144, 152, 144, 144, 136, 152, 140, 129, 146, 137, 128, 133, 141, 138, 149, 140, 134, 136, 146, 146, 133, 137, 145, 135, 129, 136, 143, 138, 132, 142, 137, 132, 135, 136, 137, 145, 138, 144, 127, 143, 146, 139, 134, 145, 139, 145, 140, 126, 134, 136, 135, 151, 134, 147, 140, 126, 127, 140, 134, 141, 135, 141, 141, 124, 131, 136, 144, 139, 134, 139, 126, 139, 139, 145, 146, 136, 145, 142, 134, 142, 143, 140, 138, 138, 144, 132, 133, 137, 142, 127, 136, 141, 141, 138, 141, 140, 142, 140, 136, 136, 129, 140, 136, 138, 131, 140, 140, 146, 128, 127, 143, 138, 128, 137, 153, 137, 132, 133, 133, 140, 134, 148, 134, 138, 133, 141, 138, 150, 139, 132, 152, 143, 142, 140, 131, 141, 141, 142, 145, 138, 132, 142, 128, 149, 138, 142, 139, 138, 127, 128, 140, 140, 150, 144, 140, 137, 156, 151, 136, 146, 133, 136, 146, 134, 135, 139, 140, 140, 142, 137, 146, 142, 141, 141, 142, 151, 140, 143, 132, 143, 135, 141, 138, 141, 139, 152, 141, 140, 140, 139, 137, 136, 133, 143, 138, 141, 140, 137, 135, 140, 138, 137, 141, 131, 138, 146, 132, 137, 143, 134, 135, 137, 147, 137, 138, 134, 143, 138, 137, 142, 135, 142, 136, 138, 137, 141, 141, 138, 136, 136, 139, 142, 131, 129, 140, 138, 138, 125, 134, 141, 149, 134, 138, 136, 138, 139, 142, 142, 140, 144, 132, 135, 140, 139, 140, 132, 134, 142, 141, 136, 136, 136, 134, 145, 140, 141, 141, 136, 138, 139, 136, 149, 139, 132, 141, 141, 138, 141, 139, 136, 143, 152, 136, 138, 140, 147, 138, 136, 141, 132, 138, 141, 147, 139, 142, 134, 138, 140, 141, 134, 139, 129, 140, 136, 140, 132, 140, 135, 138, 144, 138, 147, 143, 134, 137, 138, 135, 139, 136, 150, 139, 135, 146, 141, 141, 133, 141, 144, 138, 130, 142, 140, 143, 140, 149, 138, 127, 141, 142, 139, 134, 144, 138, 133, 136, 129, 141, 141, 138, 138, 139, 135, 137, 144, 136, 140, 138, 139, 145, 130, 149, 141, 134, 141, 139, 141, 146, 140, 132, 136, 143, 143, 140, 130, 146, 138, 137, 142, 140, 141, 135, 144, 146, 135, 141, 141, 141, 139, 141, 143, 129, 136, 136, 136, 135, 141, 136, 138, 139, 145, 137, 137, 137, 138, 144, 135, 138, 130, 144, 143, 142, 136, 148, 128, 134, 134, 139, 143, 138, 143, 139, 137, 126, 135, 132, 138, 133, 137, 140, 141, 139, 142, 139, 140, 137, 142, 136, 144, 141, 138, 137, 142, 149, 143, 136, 136, 134, 141, 138, 135, 141, 145, 137, 140, 145, 143, 138, 138, 136, 138, 131, 135, 138, 143, 141, 132, 142, 138, 142, 137, 143, 139, 144, 142, 141, 143, 141, 140, 140, 136, 131, 139, 137, 143, 140, 134, 142, 144, 133, 135, 131, 142, 145, 140, 132, 136, 137, 140, 139, 138, 135, 135, 141, 139, 131, 144, 143, 145, 135, 131, 139, 142, 142, 142, 134, 141, 136, 145, 137, 146, 141, 141, 134, 140, 144, 136, 143, 135, 143, 135, 143, 139, 137, 138, 140, 137, 139, 131, 139, 139, 138, 138, 141, 139, 141, 139, 139, 145, 132, 133, 137, 140, 138, 138, 134, 140, 140, 135, 140, 135, 134, 144, 137, 144, 135, 133, 142, 134, 139, 134, 141, 138, 138, 139, 139, 141, 139, 143, 134, 139, 137, 139, 146, 140, 137, 140, 134, 143, 147, 141, 139, 138, 130, 138, 136, 132, 150, 137, 138, 139, 145, 138, 136, 137, 138, 141, 136, 140, 135, 142, 141, 141, 148, 138, 143, 134, 146, 133, 140, 144, 144, 143, 140, 142, 135, 143, 136, 141, 142, 139, 140, 135, 141, 139, 138, 134, 136, 147, 143, 148, 135, 139, 136, 138, 136, 140, 139, 141, 134, 134, 141, 149, 148, 140, 138, 137, 141, 142, 139, 139, 143, 140, 142, 129, 139, 141, 140, 146, 141, 136, 139, 137, 133, 139, 139, 142, 134, 145, 145, 144, 138, 137, 144, 135, 137, 144, 136, 133, 139, 136, 146, 131, 135, 128, 139, 131, 137, 138, 136, 143, 143, 137, 132, 141, 139, 144, 136, 141, 142, 146, 132, 144, 139, 148, 138, 137, 139, 143, 136, 142, 141, 133, 151, 140, 140, 140, 140, 138, 147, 130, 140, 145, 139, 132, 139, 132, 149, 134, 143, 134, 145, 138, 139, 139, 136, 130, 137, 143, 149, 139, 127, 141, 143, 141, 142, 146, 133, 136, 134, 135, 141, 134, 144, 140, 144, 134, 146, 144, 139, 140, 142, 144, 131, 140, 135, 137, 138, 139, 139, 143, 140, 144, 137, 146, 136, 143, 148, 133, 142, 132, 147, 139, 135, 138, 134, 146, 142, 140, 140, 138, 142, 138, 143, 133, 139, 142, 134, 137, 144, 143, 136, 140, 142, 140, 139, 137, 140, 143, 141, 141, 140, 143, 141, 138, 141, 140, 139, 141, 129, 142, 137, 139, 145, 139, 142, 134, 133, 139, 144, 141, 144, 134, 136, 138, 142, 132, 137, 135, 133, 143, 142, 145, 150, 139, 141, 135, 135, 146, 139, 150, 149, 142, 137, 133, 140, 144, 141, 136, 138, 150, 133, 139, 143, 144, 141, 139, 138, 135, 138, 133, 141, 134, 132, 141, 143, 136, 134, 143, 140, 140, 136, 142, 133, 132, 136, 136, 133, 141, 134, 133, 144, 137, 137, 143, 147, 133, 141, 138, 135, 139, 144, 144, 142, 137, 146, 150, 133, 139, 138, 140, 142, 133, 139, 135, 142, 146, 134, 140, 142, 140, 137, 139, 142, 143, 137, 142, 135, 143, 143, 136, 141, 137, 139, 142, 141, 148, 137, 136, 147, 129, 136, 131, 144, 142, 140, 136, 141, 137, 131, 145, 145, 140, 138, 144, 143, 137, 133, 135, 138, 138, 141, 138, 147, 146, 147, 144, 146, 142, 142, 124, 147, 137, 131, 134, 147, 136, 148, 148, 142, 137, 143, 137, 145, 141, 138, 137, 143, 143, 141, 138, 135, 136, 142, 144, 141, 132, 146, 140, 143, 140, 135, 144, 142, 142, 143, 144, 146, 144, 149, 133, 144, 145, 131, 129, 138, 141, 140, 140, 136, 137, 134, 144, 134, 134, 145, 137, 139, 144, 141, 140, 148, 142, 135, 137, 150, 138, 133, 140, 141, 133, 143, 136, 142, 142, 144, 136, 141, 133, 135, 140, 146, 150, 137, 146, 142, 135, 135, 143, 132, 146, 137, 140, 139, 138, 134, 135, 141, 138, 139, 147, 135, 139, 146, 137, 138, 133, 142, 134, 141, 143, 140, 139, 141, 133, 135, 142, 150, 144, 137, 136, 139, 141, 137, 134, 140, 142, 135, 138, 143, 143, 142, 141, 144, 136, 139, 140, 142, 141, 136, 139, 130, 143, 140, 134, 138, 134, 143, 131, 140, 142, 154, 142, 145, 136, 139, 135, 143, 141, 126, 142, 141, 147, 137, 140, 142, 141, 136, 141, 140, 131, 134, 137, 135, 145, 135, 139, 141, 144, 145, 135, 137, 139, 144, 146, 137, 142, 142, 138, 152, 137, 142, 137, 134, 144, 141, 141, 143, 135, 142, 143, 143, 133, 126, 143, 139, 137, 146, 126, 137, 139, 144, 143, 141, 134, 135, 129, 144, 147, 137, 142, 140, 152, 147, 133, 139, 143, 144, 142, 137, 145, 148, 141, 139, 138, 144, 130, 133, 141, 141, 146, 141, 138, 148, 136, 143, 138, 145, 137, 149, 135, 141, 141, 136, 137, 133, 131, 143, 134, 131, 143, 147, 139, 142, 135, 141, 137, 139, 135, 140, 134, 124, 136, 141, 134, 139, 143, 142, 142, 149, 142, 142, 136, 142, 145, 130, 136, 137, 141, 142, 134, 132, 139, 141, 130, 130, 137, 135, 138, 138, 133, 131, 133, 142, 136, 142, 133, 141, 137, 140, 144, 140, 137, 138, 128, 142, 135, 130, 140, 143, 144, 138, 132, 137, 146, 139, 130, 142, 131, 143, 134, 143, 136, 144, 139, 140, 139, 145, 139, 138, 146, 145, 139, 148, 139, 139, 139, 128, 147, 150, 135, 129, 137, 133, 130, 142, 125, 140, 140, 133, 132, 153, 141, 144, 138, 135, 133, 135, 137, 133, 139, 135, 143, 136, 129, 137, 136, 138, 141, 132, 135, 141, 140, 145, 145, 135, 135, 144, 136, 139, 139, 132, 145, 138, 135, 137, 135, 150, 148, 143, 139, 123, 137, 142, 139, 136, 139, 140, 133, 128, 131, 123, 145, 133, 128, 135, 143, 143, 139, 148, 139, 135, 149, 134, 135, 138, 142, 140, 137, 144, 144, 138, 144, 133, 137, 143, 144, 139, 140, 145, 138, 145, 131, 138, 129, 141, 143, 136, 142, 156, 135, 139, 136, 134, 143, 145, 137, 136, 133, 152, 139, 132, 152, 142, 133, 135, 132, 145, 128, 133, 139, 139, 133, 143, 137, 126, 135, 139, 136, 144, 143, 138, 134, 140, 138, 132, 132, 133, 139, 135, 141, 139, 142, 133, 134, 126, 138, 132, 128, 132, 136, 140, 134, 134, 139, 140, 143, 138, 135, 136, 132, 144, 138, 140, 141, 136, 138, 136, 142, 143, 144, 138, 138, 136, 138, 135, 137, 143, 139, 139, 135, 140, 137, 141, 141, 137, 135, 144, 142, 139, 136, 141, 141, 143, 145, 134, 138, 133, 134, 132, 139, 132, 147, 141, 137, 137, 130, 136, 137, 147, 131, 136, 139, 140, 138, 124, 138, 135, 134, 145, 130, 146, 138, 136, 141, 141, 137, 130, 135, 142, 143, 129, 137, 132, 134, 136, 134, 132, 146, 135, 150, 132, 148, 139, 145, 135, 140, 141, 138, 129, 142, 136, 148, 130, 145, 140, 136, 133, 133, 140, 128, 139, 135, 134, 140, 140, 139, 139, 145, 141, 144, 146, 136, 141, 132, 141, 136, 128, 141, 134, 141, 132, 152, 136, 139, 139, 132, 138, 135, 143, 146, 129, 136, 132, 137, 138, 131, 144, 147, 140, 142, 146, 136, 129, 146, 138, 135, 138, 144, 138, 151, 139, 136, 145, 146, 130, 133, 147, 147, 130, 136, 134, 145, 141, 135, 135, 139, 135, 138, 142, 143, 137, 133, 141, 140, 139, 128, 134, 140, 139, 133, 133, 145, 139, 143, 145, 132, 149, 133, 144, 132, 141, 139, 146, 138, 135, 138, 140, 133, 137, 145, 132, 140, 129, 144, 132, 136, 136, 140, 131, 138, 125, 147, 143, 138, 134, 149, 132, 143, 130, 133, 143, 138, 135, 134, 131, 142, 142, 134, 144, 134, 130, 141, 141, 141, 125, 142, 133, 150, 137, 147, 146, 133, 141, 128, 141, 143, 147, 134, 139, 139, 139, 145, 135, 136, 153, 152, 134, 145, 134, 135, 141, 144, 148, 141, 137, 144, 131, 134, 132, 131, 141, 138, 138, 121, 147, 139, 140, 149, 142, 135, 141, 142, 128, 138, 139, 153, 133, 144, 144, 137, 138, 133, 143, 128, 140, 130, 131, 131, 134, 144, 143, 134, 135, 132, 149, 136, 134, 140, 138, 151, 146, 146, 134, 137, 140, 153, 134, 140, 134, 140, 136, 146, 148, 139, 140, 129, 134, 148, 144, 135, 149, 144, 135, 126, 136, 125, 136, 133, 129, 144, 134, 150, 139, 142, 132, 144, 131, 142, 154, 139, 140, 142, 133, 139, 140, 141, 137, 137, 133, 134, 139, 141, 151, 140, 147, 141, 135, 127, 135, 138, 144, 136, 143, 144, 134, 134, 145, 144, 138, 133, 150, 136, 144, 147, 147, 150, 138, 130, 145, 134, 144, 135, 136, 134, 143, 135, 142, 134, 132, 134, 129, 139, 134, 135, 137, 133, 141, 148, 136, 146, 135, 147, 131, 140, 130, 147, 133, 140, 135, 146, 142, 136, 137, 138, 140, 135, 147, 142, 138, 131, 140, 143, 125, 142, 129, 139, 138, 135, 145, 133, 145, 139, 145, 148, 131, 140, 138, 148, 128, 138, 139, 136, 141, 139, 146, 136, 144, 144, 136, 133, 136, 145, 142, 143, 139, 146, 141, 136, 137, 136, 140, 133, 132, 137, 136, 131, 135, 147, 128, 138, 148, 135, 128, 141, 148, 128, 145, 133, 147, 135, 146, 142, 136, 144, 127, 142, 143, 147, 143, 147, 148, 139, 151, 131, 146, 138, 140, 135, 139, 162, 137, 136, 138, 140, 134, 146, 146, 138, 150, 138, 155, 142, 131, 139, 156, 143, 131, 142, 132, 141, 138, 139, 137, 153, 142, 144, 133, 128, 148, 138, 131, 143, 153, 147, 142, 146, 135, 135, 139, 135, 148, 136, 134, 138, 140, 139, 141, 134, 147, 135, 144, 142, 141, 141, 145, 141, 148, 143, 136, 130, 135, 134, 142, 143, 138, 136, 137, 148, 146, 136, 139, 140, 138, 146, 137, 135, 137, 147, 133, 134, 141, 129, 131, 139, 136, 129, 144, 144, 139, 130, 140, 141, 144, 141, 136, 145, 129, 136, 129, 126, 143, 128, 142, 143, 136, 138, 140, 142, 140, 142, 132, 134, 132, 135, 133, 134, 131, 141, 145, 140, 131, 141, 132, 133, 145, 133, 140, 134, 137, 135, 140, 136, 144, 143, 135, 139, 135, 140, 132, 141, 149, 144, 138, 138, 140, 136, 126, 132, 144, 137, 143, 135, 138, 145, 132, 144, 143, 137, 149, 146, 136, 152, 141, 136, 137, 127, 139, 149, 146, 144, 127, 149, 143, 135, 141, 140, 133, 145, 132, 142, 134, 141, 139, 148, 129, 144, 140, 129, 140, 124, 141, 132, 144, 137, 138, 150, 132, 146, 138, 136, 145, 133, 136, 138, 141, 135, 139, 126, 142, 145, 135, 140, 143, 134, 154, 129, 139, 131, 147, 141, 140, 144, 148, 135, 141, 141, 140, 149, 137, 138, 142, 140, 128, 149, 144, 139, 136, 141, 139, 142, 130, 143, 134, 142, 152, 145, 143, 141, 151, 139, 135, 129, 141, 138, 133, 138, 155, 131, 141, 135, 147, 134, 144, 148, 140, 146, 142, 138, 150, 142, 142, 136, 143, 139, 136, 139, 135, 134, 141, 139, 150, 148, 139, 133, 144, 136, 132, 129, 148, 142, 134, 143, 133, 141, 139, 139, 138, 140, 140, 132, 142, 142, 140, 132, 132, 138, 141, 140, 131, 142, 136, 132, 148, 143, 131, 140, 129, 144, 151, 137, 130, 134, 144, 152, 135, 126, 133, 136, 133, 143, 128, 137, 139, 134, 127, 139, 144, 133, 140, 145, 142, 147, 133, 147, 137, 137, 147, 140, 135, 137, 140, 134, 140, 132, 132, 135, 137, 128, 137, 135, 134, 142, 133, 142, 136, 134, 141, 143, 142, 148, 136, 134, 141, 134, 141, 132, 136, 136, 139, 143, 131, 135, 144, 130, 139, 142, 134, 138, 131, 144, 140, 137, 141, 135, 132, 136, 143, 140, 136, 135, 130, 143, 145, 135, 133, 143, 143, 143, 137, 136, 144, 138, 138, 143, 134, 143, 130, 137, 141, 147, 136, 143, 150, 131, 141, 136, 144, 141, 142, 144, 137, 134, 144, 142, 131, 144, 143, 142, 133, 141, 147, 138, 147, 146, 139, 129, 143, 140, 131, 131, 143, 133, 141, 146, 143, 138, 131, 146, 138, 136, 137, 140, 134, 137, 141, 145, 125, 151, 150, 138, 150, 146, 150, 149, 139, 138, 139, 138, 141, 134, 140, 139, 133, 142, 126, 140, 141, 144, 145, 138, 139, 135, 139, 129, 135, 144, 142, 134, 137, 145, 131, 136, 141, 145, 132, 139, 133, 134, 136, 138, 134, 145, 143, 142, 143, 134, 137, 138, 146, 134, 142, 129, 134, 144, 126, 138, 149, 150, 127, 142, 144, 143, 133, 134, 141, 143, 144, 141, 132, 139, 144, 139, 133, 140, 140, 139, 142, 138, 121, 143, 141, 131, 144, 152, 136, 130, 135, 131, 136, 137, 136, 140, 148, 151, 135, 140, 144, 136, 145, 132, 135, 139, 134, 143, 146, 142, 137, 141, 137, 145, 143, 143, 153, 136, 137, 133, 131, 146, 137, 146, 135, 137, 137, 143, 129, 138, 128, 127, 138, 136, 140, 151, 145, 131, 144, 144, 142, 136, 137, 135, 142, 140, 143, 138, 147, 143, 132, 136, 135, 136, 146, 149, 133, 142, 140, 136, 141, 127, 137, 142, 134, 129, 135, 142, 137, 144, 141, 132, 138, 128, 135, 143, 133, 140, 153, 136, 135, 150, 148, 139, 148, 143, 138, 132, 143, 132, 124, 140, 135, 145, 152, 147, 138, 137, 132, 140, 144, 142, 146, 137, 134, 147, 143, 145, 117, 137, 144, 133, 141, 137, 141, 149, 140, 142, 140, 146, 140, 131, 145, 138, 131, 154, 130, 134, 134, 136, 140, 140, 132, 135, 149, 137, 141, 137, 136, 137, 138, 133, 148, 142, 146, 126, 131, 141, 139, 144, 140, 139, 132, 141, 144, 144, 131, 132, 141, 146, 147, 148, 142, 134, 131, 133, 147, 145, 134, 135, 140, 145, 135, 133, 136, 144, 146, 131, 135, 140, 142, 131, 135, 129, 130, 137, 148, 138, 137, 138, 141, 134, 139, 136, 137, 136, 135, 139, 152, 139, 136, 156, 141, 144, 140, 135, 131, 137, 137, 145, 142, 138, 143, 141, 137, 142, 133, 137, 143, 130, 139, 128, 138, 137, 139, 144, 135, 142, 135, 141, 141, 145, 139, 134, 141, 145, 140, 142, 127, 128, 135, 134, 139, 133, 138, 149, 144, 122, 134, 139, 148, 139, 138, 141, 140, 146, 138, 132, 142, 139, 140, 136, 161, 142, 139, 142, 144, 134, 131, 141, 144, 142, 133, 135, 139, 141, 144, 147, 146, 149, 135, 141, 142, 128, 127, 143, 138, 132, 148, 142, 141, 139, 128, 143, 149, 133, 133, 144, 142, 131, 134, 146, 145, 134, 131, 138, 109, 139, 146, 143, 121, 140, 146, 135, 146, 146, 137, 137, 151, 147, 140, 133, 137, 133, 135, 136, 144, 134, 144, 141, 136, 134, 135, 146, 136, 140, 135, 142, 138, 132, 139, 135, 120, 135, 141, 140, 131, 138, 145, 141, 138, 136, 130, 134, 131, 128, 134, 142, 132, 143, 136, 141, 132, 140, 137, 141, 141, 137, 135, 141, 141, 138, 135, 135, 140, 131, 126, 141, 139, 144, 136, 133, 144, 138, 141, 135, 135, 131, 145, 140, 144, 134, 149, 139, 141, 138, 132, 140, 137, 132, 140, 142, 138, 137, 146, 134, 148, 138, 140, 136, 131, 138, 140, 153, 135, 128, 138, 141, 148, 144, 143, 144, 139, 142, 128, 144, 138, 135, 133, 140, 137, 135, 134, 144, 128, 128, 142, 147, 139, 143, 135, 135, 134, 134, 134, 139, 138, 140, 144, 140, 145, 129, 136, 136, 137, 141, 132, 144, 135, 128, 139, 137, 150, 142, 132, 130, 137, 137, 137, 133, 136, 135, 131, 133, 143, 136, 123, 139, 138, 146, 138, 131, 146, 135, 135, 139, 142, 139, 143, 143, 138, 136, 146, 142, 147, 146, 141, 129, 138, 138, 143, 135, 136, 141, 141, 135, 133, 141, 146, 138, 135, 136, 143, 138, 134, 143, 136, 137, 136, 140, 131, 136, 138, 142, 136, 145, 138, 143, 136, 135, 131, 145, 132, 134, 134, 145, 134, 139, 141, 119, 138, 138, 129, 131, 138, 136, 146, 127, 135, 126, 147, 141, 131, 150, 132, 138, 134, 134, 139, 138, 133, 139, 129, 139, 134, 141, 133, 141, 138, 133, 145, 142, 149, 136, 148, 141, 137, 149, 136, 127, 137, 139, 136, 133, 137, 140, 150, 137, 144, 139, 140, 138, 144, 140, 128, 131, 138, 139, 134, 146, 149, 142, 131, 139, 136, 139, 126, 138, 143, 137, 139, 151, 141, 136, 138, 134, 137, 141, 142, 138, 137, 122, 130, 133, 135, 140, 147, 136, 133, 142, 131, 142, 139, 142, 137, 162, 141, 142, 150, 146, 135, 147, 144, 144, 140, 143, 132, 136, 147, 140, 141, 140, 139, 140, 140, 144, 142, 134, 140, 150, 133, 149, 128, 138, 147, 140, 132, 134, 135, 140, 136, 136, 133, 142, 140, 137, 145, 131, 141, 136, 145, 142, 141, 139, 148, 134, 129, 134, 145, 143, 138, 132, 148, 135, 138, 136, 131, 136, 138, 137, 127, 145, 129, 150, 139, 138, 130, 152, 148, 150, 142, 141, 137, 143, 144, 129, 143, 137, 143, 137, 142, 135, 141, 138, 139, 139, 151, 126, 141, 136, 137, 131, 146, 132, 138, 141, 142, 130, 143, 146, 138, 137, 134, 134, 139, 135, 139, 142, 130, 140, 135, 133, 138, 132, 141, 137, 142, 145, 131, 138, 132, 144, 147, 140, 142, 140, 131, 136, 138, 131, 141, 143, 135, 134, 149, 138, 133, 135, 138, 135, 134, 130, 144, 142, 142, 138, 145, 136, 133, 136, 140, 135, 129, 140, 139, 136, 134, 137, 136, 148, 139, 141, 147, 136, 148, 138, 136, 136, 143, 155, 142, 131, 131, 136, 141, 137, 138, 157, 138, 136, 132, 142, 142, 142, 136, 139, 134, 141, 140, 133, 134, 132, 146, 135, 137, 143, 136, 131, 133, 140, 147, 135, 138, 141, 137, 139, 135, 136, 141, 130, 150, 136, 136, 133, 145, 135, 150, 141, 137, 130, 139, 138, 131, 141, 136, 139, 141, 143, 150, 144, 136, 141, 139, 139, 150, 139, 139, 144, 141, 129, 136, 140, 142, 144, 134, 136, 134, 143, 139, 140, 137, 143, 146, 142, 140, 129, 146, 140, 136, 144, 135, 142, 139, 141, 136, 137, 128, 133, 133, 129, 137, 136, 135, 132, 139, 141, 140, 136, 137, 144, 149, 140, 146, 130, 125, 130, 136, 134, 141, 132, 142, 146, 136, 141, 138, 135, 137, 128, 128, 137, 151, 135, 140, 136, 138, 146, 136, 145, 129, 132, 138, 154, 134, 139, 138, 145, 140, 130, 132, 137, 124, 136, 145, 142, 128, 141, 135, 131, 139, 133, 144, 138, 134, 134, 135, 145, 138, 127, 138, 140, 134, 138, 142, 139, 137, 141, 139, 146, 139, 136, 147, 147, 142, 154, 135, 146, 134, 146, 138, 138, 138, 141, 135, 141, 138, 141, 139, 152, 134, 142, 138, 140, 132, 144, 138, 135, 134, 136, 129, 147, 146, 141, 135, 141, 143, 133, 146, 139, 139, 142, 142, 136, 147, 143, 149, 136, 134, 133, 137, 135, 145, 134, 129, 134, 142, 143, 143, 139, 134, 134, 141, 133, 132, 149, 135, 139, 141, 135, 143, 142, 141, 149, 134, 139, 128, 128, 136, 137, 140, 135, 132, 136, 149, 141, 143, 135, 136, 142, 138, 148, 140, 140, 140, 138, 146, 140, 143, 137, 124, 137, 144, 145, 139, 142, 132, 140, 141, 124, 134, 130, 148, 152, 137, 145, 141, 143, 134, 132, 140, 145, 137, 129, 142, 141, 138, 148, 135, 145, 139, 146, 132, 134, 135, 140, 140, 153, 129, 139, 149, 142, 141, 130, 138, 130, 139, 150, 144, 144, 154, 135, 135, 144, 138, 139, 138, 133, 139, 127, 129, 139, 137, 130, 137, 143, 148, 136, 139, 138, 138, 140, 134, 136, 135, 152, 135, 142, 135, 142, 140, 133, 126, 131, 137, 141, 141, 151, 131, 138, 139, 129, 146, 143, 143, 133, 134, 143, 133, 144, 138, 129, 145, 135, 130, 140, 138, 137, 138, 140, 137, 143, 141, 138, 146, 136, 139, 141, 141, 142, 138, 137, 139, 141, 133, 147, 144, 142, 137, 146, 137, 145, 136, 135, 139, 137, 140, 144, 136, 135, 141, 134, 132, 135, 133, 135, 140, 144, 135, 142, 134, 133, 146, 140, 135, 138, 143, 136, 133, 136, 135, 141, 141, 138, 146, 139, 135, 137, 142, 137, 140, 130, 141, 137, 135, 133, 138, 133, 143, 127, 135, 139, 142, 131, 144, 142, 137, 133, 140, 135, 137, 144, 136, 136, 132, 138, 140, 133, 140, 137, 141, 142, 139, 141, 139, 137, 137, 132, 136, 144, 142, 136, 136, 145, 141, 134, 143, 139, 133, 141, 137, 137, 140, 139, 133, 134, 140, 136, 141, 139, 133, 142, 133, 136, 142, 138, 147, 139, 146, 132, 139, 137, 139, 140, 135, 143, 126, 142, 138, 138, 136, 135, 138, 136, 138, 135, 137, 142, 139, 132, 140, 135, 134, 137, 137, 148, 143, 140, 140, 149, 138, 136, 126, 140, 144, 131, 142, 139, 139, 132, 139, 138, 134, 145, 144, 135, 137, 138, 142, 139, 129, 136, 134, 136, 131, 142, 131, 139, 143, 142, 137, 143, 138, 144, 136, 135, 138, 135, 142, 136, 150, 134, 139, 137, 137, 148, 142, 135, 141, 135, 142, 131, 143, 139, 135, 145, 141, 137, 141, 138, 138, 142, 145, 135, 146, 138, 135, 137, 137, 136, 134, 135, 139, 134, 139, 136, 144, 137, 134, 148, 146, 133, 143, 139, 147, 129, 142, 138, 145, 138, 134, 139, 146, 141, 135, 140, 134, 133, 138, 137, 136, 140, 134, 140, 135, 134, 131, 144, 135, 135, 145, 135, 143, 131, 144, 135, 145, 141, 137, 146, 140, 144, 143, 141, 147, 134, 146, 141, 139, 133, 138, 141, 140, 138, 140, 134, 135, 141, 150, 143, 138, 141, 136, 141, 135, 136, 135, 138, 138, 131, 146, 135, 145, 148, 137, 144, 133, 136, 141, 143, 135, 140, 135, 141, 136, 148, 142, 137, 131, 139, 141, 142, 136, 136, 132, 135, 131, 135, 143, 142, 136, 132, 130, 136, 139, 139, 136, 134, 137, 138, 135, 150, 140, 136, 130, 138, 128, 141, 135, 132, 135, 141, 151, 148, 137, 140, 133, 144, 139, 142, 136, 142, 132, 141, 139, 135, 148, 149, 135, 138, 134, 128, 149, 143, 141, 140, 135, 135, 142, 133, 139, 138, 139, 138, 141, 143, 129, 137, 136, 140, 142, 132, 133, 137, 139, 144, 133, 137, 138, 140, 138, 142, 147, 146, 146, 134, 138, 135, 133, 142, 147, 147, 139, 146, 136, 132, 144, 144, 142, 143, 134, 134, 142, 135, 135, 135, 146, 135, 140, 138, 134, 141, 142, 136, 139, 140, 139, 142, 135, 141, 135, 130, 137, 141, 137, 137, 137, 132, 138, 142, 135, 143, 145, 132, 144, 148, 136, 139, 145, 134, 136, 136, 145, 140, 144, 135, 136, 144, 141, 138, 146, 146, 143, 144, 139, 139, 132, 133, 144, 139, 142, 135, 142, 132, 135, 142, 134, 147, 135, 123, 142, 144, 137, 141, 136, 136, 136, 140, 138, 133, 130, 136, 142, 139, 145, 144, 134, 131, 131, 140, 142, 131, 140, 132, 136, 146, 149, 139, 136, 139, 138, 139, 135, 142, 143, 132, 139, 142, 141, 132, 136, 142, 146, 133, 137, 140, 150, 142, 131, 138, 142, 131, 139, 140, 141, 134, 140, 130, 128, 134, 134, 141, 145, 138, 157, 132, 139, 136, 135, 138, 134, 143, 136, 140, 142, 134, 140, 143, 128, 133, 141, 136, 152, 138, 138, 138, 143, 135, 135, 137, 142, 140, 150, 143, 134, 137, 139, 144, 132, 133, 144, 132, 142, 137, 138, 144, 132, 147, 137, 125, 146, 132, 132, 137, 151, 138, 138, 137, 126, 134, 135, 138, 138, 145, 135, 145, 144, 142, 137, 140, 150, 124, 140, 139, 148, 139, 145, 134, 129, 136, 145, 148, 138, 146, 135, 132, 142, 150, 140, 133, 131, 139, 138, 134, 133, 133, 131, 138, 137, 135, 143, 139, 146, 136, 134, 133, 135, 145, 139, 152, 143, 142, 135, 135, 143, 131, 133, 142, 138, 137, 135, 136, 139, 141, 134, 140, 131, 143, 133, 136, 137, 137, 140, 124, 146, 144, 149, 141, 132, 133, 150, 139, 147, 130, 135, 149, 140, 136, 132, 142, 126, 129, 144, 140, 142, 138, 133, 137, 143, 140, 134, 133, 144, 135, 135, 141, 139, 135, 137, 142, 149, 131, 133, 145, 128, 136, 134, 137, 129, 139, 130, 148, 149, 143, 140, 139, 141, 126, 137, 138, 135, 142, 143, 136, 150, 139, 139, 133, 133, 134, 137, 139, 132, 130, 142, 135, 136, 126, 137, 141, 142, 142, 144, 148, 142, 138, 135, 147, 150, 147, 133, 137, 132, 134, 143, 136, 141, 140, 138, 134, 134, 138, 138, 137, 139, 154, 135, 130, 138, 138, 146, 146, 133, 136, 146, 132, 139, 131, 140, 143, 142, 141, 135, 134, 135, 146, 128, 138, 128, 135, 137, 133, 132, 131, 140, 134, 143, 140, 138, 145, 145, 135, 143, 136, 145, 132, 140, 134, 144, 145, 129, 132, 133, 130, 146, 131, 139, 139, 138, 142, 144, 137, 142, 139, 128, 146, 133, 144, 130, 142, 127, 148, 140, 143, 133, 135, 140, 135, 133, 137, 141, 141, 139, 150, 143, 140, 131, 136, 138, 140, 137, 138, 131, 142, 134, 138, 142, 145, 134, 134, 146, 142, 132, 133, 134, 141, 156, 141, 138, 134, 138, 131, 131, 137, 137, 139, 142, 136, 142, 141, 139, 138, 149, 146, 139, 137, 137, 142, 142, 139, 133, 140, 150, 148, 142, 134, 136, 132, 138, 136, 150, 134, 135, 138, 141, 133, 145, 134, 133, 135, 129, 138, 128, 149, 137, 135, 136, 138, 142, 132, 144, 151, 130, 136, 149, 139, 143, 133, 139, 140, 133, 134, 135, 131, 141, 145, 131, 141, 142, 147, 136, 143, 131, 131, 132, 136, 133, 134, 147, 139, 131, 138, 145, 139, 140, 146, 136, 134, 146, 142, 137, 139, 141, 133, 136, 135, 143, 149, 139, 140, 139, 137, 131, 141, 151, 148, 147, 147, 132, 129, 142, 139, 129, 139, 137, 138, 132, 149, 134, 137, 136, 137, 139, 135, 133, 140, 144, 137, 134, 134, 134, 138, 146, 140, 135, 138, 136, 141, 139, 151, 144, 142, 133, 135, 137, 140, 127, 141, 133, 145, 145, 131, 132, 141, 140, 137, 135, 135, 131, 134, 136, 132, 136, 125, 140, 144, 145, 135, 142, 141, 140, 133, 125, 135, 142, 134, 147, 133, 138, 141, 138, 131, 150, 140, 140, 132, 147, 134, 136, 134, 144, 132, 142, 142, 141, 132, 141, 138, 144, 145, 136, 136, 142, 144, 131, 143, 138, 128, 131, 141, 136, 134, 136, 134, 138, 131, 146, 137, 133, 141, 141, 142, 137, 134, 137, 140, 136, 134, 136, 141, 135, 137, 130, 136, 135, 128, 152, 132, 139, 142, 143, 143, 127, 140, 134, 147, 139, 143, 149, 144, 133, 135, 142, 133, 146, 147, 137, 141, 144, 131, 139, 144, 135, 137, 139, 140, 130, 137, 143, 144, 135, 138, 136, 140, 130, 132, 142, 138, 143, 131, 134, 128, 136, 145, 140, 136, 142, 150, 149, 129, 140, 138, 130, 142, 142, 131, 128, 139, 135, 140, 118, 136, 126, 139, 133, 135, 136, 146, 133, 138, 145, 139, 135, 137, 130, 139, 128, 133, 126, 138, 143, 137, 140, 146, 151, 139, 137, 136, 130, 140, 142, 141, 136, 130, 139, 136, 138, 142, 141, 143, 145, 140, 132, 136, 135, 132, 143, 136, 141, 140, 128, 139, 144, 139, 137, 149, 147, 141, 129, 140, 141, 137, 137, 147, 132, 137, 146, 149, 131, 139, 135, 135, 142, 134, 135, 136, 129, 141, 143, 139, 135, 146, 137, 138, 129, 141, 136, 130, 142, 134, 143, 145, 133, 140, 147, 132, 152, 143, 130, 133, 137, 129, 140, 132, 145, 136, 144, 137, 127, 130, 138, 132, 145, 134, 146, 138, 140, 146, 143, 139, 147, 133, 133, 143, 149, 136, 145, 141, 130, 146, 135, 135, 137, 143, 139, 132, 138, 140, 133, 139, 145, 137, 141, 135, 141, 144, 144, 136, 142, 135, 140, 132, 140, 142, 133, 124, 137, 139, 153, 149, 138, 134, 145, 134, 146, 139, 143, 137, 134, 143, 138, 136, 131, 135, 132, 139, 139, 145, 140, 140, 146, 140, 144, 132, 137, 135, 138, 138, 129, 139, 139, 139, 137, 132, 136, 141, 133, 134, 137, 131, 140, 141, 144, 143, 128, 139, 141, 129, 152, 137, 143, 142, 138, 138, 139, 139, 129, 148, 136, 148, 140, 136, 140, 138, 145, 150, 133, 140, 136, 145, 143, 147, 139, 134, 135, 138, 135, 139, 137, 136, 133, 142, 142, 136, 133, 145, 127, 143, 128, 138, 135, 149, 138, 139, 141, 130, 138, 132, 137, 133, 120, 137, 142, 129, 126, 145, 126, 141, 140, 138, 136, 137, 144, 130, 133, 134, 133, 149, 142, 141, 146, 139, 137, 132, 131, 149, 147, 140, 137, 139, 139, 146, 124, 138, 142, 137, 141, 132, 137, 161, 149, 137, 142, 131, 146, 135, 142, 134, 137, 143, 141, 137, 141, 135, 143, 131, 140, 148, 141, 152, 139, 145, 127, 150, 140, 139, 128, 144, 136, 133, 139, 145, 145, 138, 141, 139, 138, 139, 145, 131, 138, 155, 137, 129, 138, 130, 136, 137, 136, 134, 140, 149, 143, 142, 148, 134, 139, 154, 148, 122, 135, 138, 148, 139, 133, 142, 133, 122, 135, 136, 135, 138, 135, 138, 137, 144, 134, 148, 147, 147, 146, 141, 148, 125, 134, 144, 142, 139, 154, 136, 131, 137, 132, 138, 139, 151, 143, 143, 142, 140, 134, 140, 150, 144, 132, 136, 132, 132, 138, 137, 148, 139, 144, 140, 135, 140, 146, 150, 142, 140, 134, 143, 134, 136, 143, 144, 140, 140, 144, 133, 133, 139, 137, 144, 132, 127, 140, 135, 131, 131, 139, 142, 144, 132, 137, 135, 149, 129, 137, 136, 134, 132, 149, 131, 136, 144, 138, 143, 137, 142, 142, 138, 141, 149, 142, 138, 124, 159, 136, 133, 129, 128, 141, 143, 139, 133, 147, 138, 128, 144, 139, 141, 128, 135, 136, 135, 136, 133, 138, 125, 131, 141, 147, 137, 133, 139, 142, 138, 143, 140, 143, 131, 131, 142, 143, 145, 152, 136, 136, 132, 133, 141, 142, 143, 140, 143, 137, 132, 146, 151, 137, 145, 149, 136, 140, 144, 132, 130, 141, 137, 133, 142, 144, 128, 138, 132, 132, 132, 136, 142, 141, 131, 133, 129, 130, 137, 133, 141, 149, 144, 148, 132, 136, 133, 148, 132, 144, 138, 128, 150, 136, 144, 142, 136, 129, 141, 133, 141, 137, 142, 136, 140, 125, 125, 138, 154, 144, 127, 131, 130, 134, 131, 148, 129, 135, 136, 133, 138, 136, 139, 128, 129, 155, 146, 130, 138, 144, 132, 137, 140, 146, 130, 138, 137, 131, 132, 130, 142, 139, 137, 144, 139, 135, 146, 130, 140, 138, 139, 139, 143, 139, 152, 138, 138, 138, 133, 126, 125, 139, 127, 139, 143, 132, 135, 146, 140, 144, 128, 136, 140, 136, 139, 136, 141, 131, 130, 132, 133, 136, 132, 143, 132, 141, 138, 133, 133, 152, 151, 138, 145, 143, 128, 141, 130, 157, 135, 144, 139, 127, 132, 137, 139, 136, 134, 141, 140, 145, 145, 139, 138, 142, 138, 130, 141, 143, 143, 137, 144, 136, 131, 135, 141, 136, 131, 132, 136, 136, 132, 124, 129, 132, 134, 154, 143, 136, 145, 139, 136, 144, 144, 136, 130, 141, 132, 137, 140, 138, 133, 139, 148, 138, 145, 139, 137, 137, 148, 129, 145, 147, 146, 132, 146, 138, 133, 149, 133, 139, 140, 132, 125, 133, 148, 137, 137, 147, 135, 141, 139, 136, 136, 140, 128, 147, 133, 138, 140, 133, 135, 140, 148, 144, 148, 138, 139, 135, 143, 138, 149, 149, 142, 140, 147, 147, 139, 143, 135, 126, 135, 135, 128, 135, 140, 138, 137, 132, 126, 135, 145, 145, 141, 139, 126, 137, 145, 134, 139, 145, 125, 145, 141, 135, 138, 139, 142, 140, 131, 132, 136, 136, 133, 138, 137, 133, 131, 148, 144, 131, 141, 137, 140, 133, 145, 140, 140, 138, 132, 141, 134, 132, 149, 137, 140, 140, 139, 141, 143, 135, 140, 153, 135, 136, 141, 138, 139, 138, 143, 141, 136, 142, 144, 146, 139, 138, 139, 142, 140, 133, 140, 141, 143, 137, 140, 135, 135, 137, 136, 136, 138, 134, 141, 137, 138, 142, 133, 135, 138, 145, 139, 145, 145, 139, 144, 140, 141, 142, 135, 138, 142, 140, 137, 141, 139, 140, 140, 139, 137, 144, 138, 146, 143, 138, 137, 144, 137, 144, 144, 135, 135, 151, 145, 139, 144, 139, 137, 139, 137, 138, 142, 140, 130, 137, 140, 145, 138, 141, 140, 138, 141, 131, 149, 136, 138, 142, 134, 137, 141, 138, 136, 139, 138, 133, 146, 137, 134, 138, 144, 156, 138, 138, 134, 135, 141, 138, 139, 141, 139, 134, 145, 134, 139, 136, 135, 140, 141, 144, 135, 136, 138, 135, 141, 138, 138, 144, 145, 138, 141, 138, 135, 135, 140, 134, 145, 143, 138, 138, 139, 137, 145, 138, 143, 141, 135, 139, 135, 142, 137, 144, 139, 139, 135, 138, 136, 136, 135, 142, 147, 136, 138, 136, 143, 140, 137, 132, 141, 135, 138, 139, 143, 137, 135, 136, 137, 135, 143, 139, 136, 139, 140, 139, 129, 143, 141, 133, 140, 142, 143, 139, 137, 143, 141, 134, 134, 141, 140, 132, 138, 139, 136, 136, 139, 137, 143, 141, 134, 141, 137, 136, 136, 140, 136, 140, 143, 139, 134, 138, 137, 143, 141, 138, 141, 137, 147, 138, 139, 142, 142, 144, 137, 131, 136, 136, 138, 126, 144, 143, 136, 145, 137, 137, 146, 132, 146, 134, 143, 134, 136, 140, 137, 138, 140, 133, 132, 136, 140, 138, 140, 136, 143, 139, 138, 142, 138, 141, 135, 137, 140, 135, 142, 138, 144, 133, 138, 139, 143, 138, 136, 142, 139, 144, 140, 144, 149, 134, 144, 138, 136, 133, 146, 139, 140, 134, 141, 147, 134, 143, 132, 142, 140, 135, 136, 139, 138, 136, 137, 136, 136, 136, 141, 144, 141, 147, 144, 140, 138, 135, 137, 139, 135, 139, 138, 138, 142, 135, 139, 137, 139, 140, 138, 137, 141, 132, 141, 138, 140, 138, 139, 143, 136, 139, 136, 134, 137, 142, 140, 133, 134, 141, 140, 138, 140, 136, 144, 146, 139, 134, 143, 141, 140, 141, 142, 142, 138, 143, 134, 133, 137, 136, 145, 139, 140, 138, 144, 142, 130, 140, 139, 139, 142, 141, 136, 137, 134, 140, 133, 133, 144, 144, 137, 140, 137, 133, 140, 139, 132, 139, 138, 139, 141, 135, 137, 143, 139, 146, 138, 138, 136, 136, 137, 136, 138, 139, 138, 140, 134, 140, 139, 146, 138, 138, 140, 140, 138, 135, 140, 141, 138, 139, 127, 132, 139, 132, 144, 139, 134, 146, 142, 142, 134, 138, 137, 139, 137, 144, 140, 138, 139, 144, 143, 139, 136, 140, 133, 142, 129, 140, 142, 137, 140, 144, 141, 138, 141, 139, 140, 140, 136, 135, 145, 136, 136, 137, 134, 140, 146, 134, 146, 138, 143, 137, 142, 141, 135, 142, 131, 138, 139, 137, 140, 135, 136, 144, 147, 136, 144, 139, 145, 136, 161, 143, 148, 131, 133, 135, 141, 133, 133, 140, 137, 145, 145, 143, 143, 144, 129, 139, 139, 143, 140, 135, 143, 132, 133, 137, 137, 137, 133, 139, 135, 139, 147, 137, 126, 144, 145, 127, 137, 135, 147, 122, 135, 140, 132, 131, 135, 141, 137, 140, 138, 144, 135, 135, 141, 144, 131, 136, 143, 141, 138, 145, 141, 136, 137, 138, 146, 136, 139, 133, 146, 150, 141, 133, 135, 139, 143, 136, 137, 141, 132, 142, 135, 141, 137, 142, 132, 138, 138, 142, 136, 139, 137, 140, 125, 146, 140, 132, 137, 134, 130, 146, 143, 137, 138, 140, 145, 153, 137, 128, 144, 128, 149, 138, 139, 144, 137, 135, 135, 144, 127, 133, 136, 136, 134, 139, 139, 146, 136, 139, 139, 129, 127, 139, 137, 139, 137, 140, 137, 137, 142, 135, 138, 139, 138, 135, 135, 155, 144, 140, 134, 126, 136, 125, 158, 136, 140, 145, 139, 140, 138, 134, 143, 133, 144, 131, 139, 143, 136, 143, 149, 142, 136, 146, 147, 141, 138, 127, 146, 140, 138, 144, 148, 154, 143, 137, 144, 141, 138, 146, 124, 141, 131, 145, 138, 141, 147, 146, 139, 138, 144, 142, 140, 150, 146, 142, 132, 128, 142, 139, 142, 138, 135, 136, 141, 139, 141, 139, 153, 137, 137, 131, 137, 138, 142, 139, 138, 132, 128, 146, 139, 148, 138, 140, 133, 141, 144, 135, 138, 130, 135, 129, 159, 132, 150, 155, 140, 144, 128, 141, 134, 136, 130, 137, 130, 134, 128, 145, 124, 139, 133, 141, 134, 142, 134, 147, 143, 136, 138, 147, 145, 143, 144, 138, 139, 138, 138, 137, 144, 143, 134, 134, 146, 142, 139, 144, 147, 133, 128, 153, 127, 137, 142, 135, 131, 136, 129, 148, 132, 140, 143, 136, 141, 146, 146, 141, 132, 154, 131, 142, 141, 143, 137, 131, 142, 124, 125, 128, 147, 128, 142, 128, 143, 134, 122, 140, 132, 142, 136, 151, 141, 148, 131, 130, 138, 126, 135, 141, 136, 154, 139, 140, 139, 113, 140, 142, 161, 150, 142, 131, 132, 133, 147, 132, 143, 142, 135, 131, 148, 138, 135, 136, 145, 136, 136, 135, 125, 138, 140, 139, 138, 139, 136, 139, 139, 141, 124, 152, 143, 140, 153, 137, 137, 145, 144, 142, 141, 133, 134, 137, 146, 144, 138, 133, 126, 138, 143, 142, 135, 148, 134, 141, 132, 132, 143, 135, 124, 139, 132, 136, 135, 139, 136, 139, 133, 143, 149, 139, 141, 128, 145, 132, 142, 152, 137, 135, 144, 142, 144, 133, 133, 139, 129, 134, 146, 129, 132, 136, 150, 130, 148, 144, 137, 135, 142, 133, 140, 134, 151, 131, 135, 148, 134, 124, 134, 137, 137, 139, 133, 138, 137, 132, 125, 141, 136, 146, 144, 147, 146, 137, 134, 136, 136, 151, 140, 151, 144, 142, 131, 131, 139, 131, 134, 148, 140, 134, 129, 136, 144, 141, 132, 132, 134, 145, 149, 142, 146, 130, 136, 144, 134, 140, 146, 139, 131, 136, 138, 135, 140, 144, 141, 146, 130, 143, 139, 137, 135, 139, 144, 143, 135, 137, 140, 143, 138, 130, 145, 144, 135, 140, 135, 148, 146, 152, 135, 136, 140, 149, 142, 137, 144, 139, 134, 137, 145, 141, 134, 129, 149, 149, 132, 142, 141, 136, 139, 140, 135, 135, 139, 132, 133, 139, 143, 141, 141, 136, 132, 143, 135, 137, 151, 146, 131, 140, 133, 146, 150, 137, 138, 146, 141, 134, 144, 135, 145, 154, 140, 143, 143, 131, 142, 139, 129, 141, 142, 132, 133, 136, 132, 136, 146, 141, 141, 144, 134, 138, 144, 137, 130, 149, 131, 143, 136, 139, 129, 138, 139, 140, 150, 127, 139, 143, 138, 137, 140, 135, 138, 125, 132, 130, 128, 137, 139, 135, 138, 131, 135, 154, 131, 136, 140, 146, 138, 137, 141, 141, 134, 134, 132, 130, 145, 136, 138, 134, 135, 140, 136, 137, 133, 140, 134, 140, 144, 134, 135, 150, 139, 143, 135, 140, 151, 144, 150, 136, 145, 141, 139, 151, 141, 142, 138, 140, 133, 136, 157, 141, 139, 135, 137, 138, 139, 133, 148, 138, 137, 128, 142, 136, 146, 142, 143, 137, 131, 134, 133, 133, 137, 137, 135, 139, 135, 138, 142, 140, 137, 150, 131, 143, 136, 138, 140, 135, 147, 138, 135, 137, 126, 139, 137, 143, 142, 129, 134, 134, 142, 136, 142, 136, 140, 131, 133, 137, 134, 145, 137, 141, 132, 147, 134, 133, 149, 135, 141, 133, 132, 141, 138, 152, 140, 132, 139, 147, 139, 140, 137, 133, 146, 144, 129, 141, 147, 139, 129, 140, 140, 137, 146, 141, 137, 137, 148, 138, 139, 140, 131, 140, 137, 134, 143, 143, 133, 136, 141, 135, 144, 147, 140, 137, 128, 140, 145, 133, 136, 130, 145, 137, 140, 139, 132, 142, 134, 142, 143, 141, 142, 136, 138, 137, 135, 139, 132, 141, 143, 135, 138, 141, 145, 141, 145, 140, 136, 133, 140, 140, 130, 131, 134, 135, 128, 143, 145, 137, 141, 141, 145, 146, 131, 138, 140, 144, 143, 136, 143, 140, 139, 141, 134, 132, 131, 148, 130, 129, 139, 140, 127, 139, 134, 136, 141, 138, 139, 137, 135, 136, 136, 132, 133, 132, 131, 134, 135, 137, 139, 138, 139, 146, 147, 137, 139, 136, 127, 130, 134, 140, 141, 137, 144, 141, 149, 141, 139, 148, 140, 141, 144, 138, 145, 135, 132, 137, 138, 142, 141, 138, 140, 130, 139, 144, 140, 139, 146, 142, 135, 138, 137, 143, 143, 143, 129, 136, 144, 137, 128, 132, 136, 142, 146, 146, 145, 147, 135, 140, 135, 133, 144, 142, 133, 145, 144, 130, 150, 134, 140, 143, 137, 140, 142, 126, 138, 134, 127, 139, 139, 134, 138, 137, 150, 142, 149, 139, 142, 138, 136, 135, 141, 140, 139, 150, 136, 132, 124, 131, 141, 144, 141, 135, 144, 134, 141, 137, 150, 144, 146, 134, 140, 136, 142, 138, 137, 139, 133, 131, 135, 140, 137, 147, 143, 146, 131, 146, 132, 135, 143, 141, 142, 133, 138, 143, 138, 146, 149, 146, 145, 133, 132, 141, 144, 137, 137, 131, 146, 148, 134, 144, 139, 142, 149, 131, 136, 153, 124, 141, 137, 136, 138, 138, 139, 140, 133, 129, 144, 149, 138, 139, 129, 138, 130, 134, 139, 147, 135, 133, 147, 135, 119, 140, 146, 136, 153, 144, 129, 137, 138, 146, 151, 137, 131, 138, 143, 122, 137, 139, 136, 140, 135, 136, 137, 137, 141, 132, 137, 136, 134, 132, 146, 142, 141, 143, 140, 158, 141, 127, 143, 133, 137, 138, 137, 141, 143, 148, 130, 149, 143, 120, 122, 136, 131, 145, 134, 137, 146, 137, 137, 135, 139, 156, 139, 145, 133, 137, 142, 137, 146, 144, 134, 130, 149, 133, 133, 140, 142, 146, 131, 140, 139, 134, 139, 133, 137, 147, 141, 139, 135, 142, 136, 142, 143, 133, 132, 143, 146, 135, 142, 143, 129, 140, 126, 149, 128, 150, 142, 142, 131, 138, 132, 135, 133, 133, 140, 136, 145, 129, 139, 135, 138, 136, 152, 140, 138, 150, 144, 140, 137, 120, 146, 134, 138, 140, 146, 139, 144, 131, 141, 143, 129, 137, 134, 140, 146, 137, 142, 134, 136, 144, 122, 144, 137, 134, 143, 139, 127, 133, 137, 139, 140, 134, 157, 126, 121, 143, 144, 139, 152, 140, 141, 152, 145, 136, 136, 135, 136, 136, 143, 130, 143, 138, 138, 136, 149, 138, 134, 140, 140, 123, 141, 139, 138, 139, 141, 120, 140, 146, 142, 143, 139, 137, 144, 142, 151, 146, 133, 150, 131, 142, 133, 141, 135, 134, 142, 137, 141, 129, 136, 134, 138, 136, 136, 137, 149, 142, 132, 136, 132, 131, 137, 141, 132, 139, 145, 133, 127, 141, 147, 134, 139, 143, 129, 152, 132, 132, 134, 145, 130, 133, 146, 146, 149, 137, 141, 135, 137, 142, 125, 138, 157, 131, 145, 131, 138, 134, 133, 137, 141, 136, 139, 136, 144, 138, 140, 137, 134, 148, 137, 132, 132, 136, 137, 144, 140, 129, 138, 128, 144, 147, 137, 144, 133, 129, 134, 140, 144, 149, 143, 136, 133, 151, 125, 141, 137, 143, 129, 137, 136, 143, 142, 138, 142, 126, 133, 145, 141, 139, 136, 140, 134, 136, 139, 142, 131, 143, 136, 135, 145, 129, 152, 136, 137, 139, 148, 144, 135, 140, 139, 136, 140, 140, 124, 140, 126, 132, 127, 140, 138, 146, 145, 135, 149, 139, 140, 137, 148, 132, 140, 150, 143, 142, 136, 140, 140, 145, 127, 139, 144, 137, 141, 135, 133, 140, 145, 126, 126, 137, 131, 135, 142, 130, 142, 142, 140, 135, 141, 134, 137, 150, 138, 141, 147, 135, 140, 140, 130, 135, 128, 142, 134, 146, 143, 138, 145, 147, 134, 144, 131, 152, 136, 138, 139, 149, 133, 138, 144, 137, 135, 140, 132, 133, 146, 132, 140, 137, 138, 139, 142, 136, 138, 131, 141, 144, 140, 139, 136, 136, 136, 140, 141, 138, 129, 139, 137, 142, 136, 144, 140, 129, 133, 137, 142, 147, 133, 146, 133, 138, 137, 140, 136, 142, 192, 140, 130, 132, 126, 141, 141, 138, 139, 138, 139, 137, 131, 138, 138, 137, 132, 143, 137, 138, 136, 142, 132, 147, 140, 140, 139, 148, 142, 136, 143, 142, 151, 130, 139, 139, 144, 132, 143, 134, 143, 143, 134, 137, 140, 140, 144, 140, 141, 138, 141, 134, 146, 137, 138, 137, 136, 141, 133, 144, 143, 140, 141, 140, 146, 138, 144, 142, 141, 137, 124, 137, 142, 135, 130, 138, 131, 137, 136, 135, 138, 136, 140, 138, 139, 140, 147, 134, 143, 136, 136, 139, 132, 144, 134, 151, 136, 137, 138, 143, 143, 139, 140, 140, 147, 141, 137, 136, 143, 140, 131, 145, 132, 140, 143, 134, 139, 138, 136, 133, 136, 135, 136, 136, 136, 140, 154, 137, 141, 134, 136, 135, 139, 139, 138, 133, 141, 143, 139, 153, 143, 136, 146, 139, 139, 138, 138, 132, 138, 136, 139, 145, 142, 130, 148, 132, 131, 138, 139, 143, 137, 139, 140, 138, 143, 136, 138, 140, 138, 138, 141, 140, 128, 140, 138, 135, 135, 140, 132, 143, 134, 137, 143, 135, 140, 135, 143, 136, 136, 139, 133, 134, 132, 133, 144, 134, 141, 146, 143, 136, 141, 135, 137, 136, 128, 138, 144, 138, 134, 130, 139, 135, 129, 143, 134, 120, 135, 137, 141, 141, 139, 129, 146, 140, 136, 145, 143, 142, 136, 141, 130, 140, 144, 130, 136, 145, 139, 138, 143, 143, 139, 154, 141, 131, 135, 140, 139, 140, 146, 142, 128, 134, 141, 145, 138, 135, 136, 139, 137, 146, 141, 138, 142, 143, 140, 140, 138, 139, 139, 146, 139, 138, 141, 144, 139, 140, 136, 130, 136, 142, 139, 151, 140, 137, 141, 138, 140, 142, 148, 141, 142, 141, 135, 139, 134, 137, 146, 141, 144, 143, 144, 132, 144, 136, 142, 136, 134, 142, 134, 135, 144, 136, 140, 140, 134, 140, 135, 138, 137, 143, 141, 134, 137, 135, 140, 134, 143, 140, 137, 134, 136, 132, 138, 138, 141, 133, 134, 142, 139, 139, 141, 136, 134, 139, 141, 144, 142, 140, 139, 133, 143, 134, 136, 140, 139, 138, 130, 138, 127, 138, 144, 145, 139, 134, 135, 142, 146, 136, 135, 133, 144, 145, 142, 135, 137, 141, 142, 143, 139, 133, 140, 137, 145, 146, 136, 145, 140, 136, 127, 137, 142, 138, 146, 128, 138, 140, 149, 135, 133, 142, 141, 135, 136, 135, 140, 145, 136, 136, 134, 142, 136, 135, 140, 137, 138, 144, 145, 139, 141, 140, 144, 141, 132, 147, 138, 138, 138, 137, 139, 137, 137, 132, 143, 141, 129, 144, 138, 148, 139, 135, 138, 142, 139, 139, 133, 142, 139, 142, 142, 140, 138, 139, 141, 137, 139, 135, 141, 140, 143, 133, 134, 138, 136, 131, 141, 152, 143, 136, 145, 141, 141, 135, 137, 145, 136, 141, 141, 132, 134, 135, 145, 138, 140, 145, 130, 139, 132, 137, 137, 133, 135, 137, 139, 137, 135, 142, 136, 137, 146, 138, 140, 142, 137, 145, 137, 140, 138, 138, 134, 141, 142, 142, 147, 142, 138, 128, 141, 148, 136, 141, 144, 134, 148, 138, 148, 151, 141, 138, 136, 146, 134, 142, 136, 143, 134, 137, 138, 135, 137, 135, 136, 138, 140, 133, 135, 135, 141, 135, 139, 134, 143, 138, 142, 138, 146, 139, 121, 137, 139, 140, 135, 139, 146, 141, 135, 140, 143, 138, 134, 140, 144, 133, 130, 137, 141, 136, 149, 150, 139, 135, 147, 144, 141, 136, 143, 143, 143, 129, 141, 133, 136, 129, 138, 141, 139, 139, 140, 150, 143, 139, 136, 145, 137, 134, 145, 143, 157, 141, 145, 145, 135, 142, 141, 137, 137, 146, 130, 133, 133, 130, 134, 133, 135, 143, 131, 132, 141, 148, 136, 135, 136, 139, 143, 133, 136, 134, 143, 149, 136, 143, 149, 139, 142, 146, 142, 136, 141, 135, 144, 138, 142, 134, 135, 139, 146, 141, 138, 140, 141, 139, 141, 136, 141, 147, 136, 142, 135, 140, 143, 139, 131, 148, 135, 140, 131, 143, 138, 134, 142, 134, 147, 136, 142, 146, 148, 139, 146, 146, 144, 137, 134, 147, 147, 147, 138, 138, 154, 140, 142, 143, 139, 135, 138, 132, 139, 139, 135, 144, 138, 137, 134, 141, 149, 155, 143, 143, 145, 141, 140, 150, 144, 140, 144, 135, 137, 138, 142, 139, 143, 135, 139, 148, 144, 148, 133, 133, 143, 142, 139, 134, 139, 132, 127, 147, 139, 140, 132, 139, 145, 135, 143, 124, 137, 134, 142, 142, 132, 151, 145, 135, 139, 143, 137, 134, 143, 150, 140, 131, 140, 138, 136, 144, 148, 131, 138, 144, 146, 137, 136, 146, 138, 136, 143, 136, 133, 137, 147, 139, 138, 139, 141, 146, 144, 145, 137, 141, 142, 144, 142, 135, 131, 140, 142, 147, 143, 138, 131, 134, 134, 135, 132, 138, 146, 132, 134, 140, 134, 143, 149, 134, 136, 140, 142, 149, 132, 146, 140, 142, 141, 133, 135, 135, 148, 148, 133, 138, 135, 142, 130, 140, 138, 140, 135, 143, 151, 134, 143, 141, 149, 157, 137, 145, 139, 138, 134, 132, 145, 137, 144, 145, 134, 140, 130, 139, 130, 136, 142, 145, 136, 139, 138, 129, 146, 136, 144, 135, 138, 141, 142, 140, 144, 142, 134, 143, 137, 137, 142, 147, 130, 138, 134, 153, 148, 140, 138, 133, 139, 137, 139, 135, 132, 150, 142, 150, 141, 135, 143, 132, 134, 135, 141, 135, 141, 146, 137, 136, 142, 151, 146, 128, 143, 144, 135, 145, 140, 147, 138, 131, 139, 135, 145, 136, 144, 140, 131, 135, 144, 142, 140, 144, 133, 147, 141, 130, 140, 143, 141, 133, 142, 133, 141, 149, 132, 146, 135, 151, 136, 141, 137, 143, 141, 128, 146, 145, 145, 140, 131, 124, 138, 147, 141, 144, 125, 130, 141, 136, 132, 136, 145, 133, 142, 139, 134, 149, 135, 147, 143, 147, 140, 138, 141, 151, 142, 139, 150, 142, 135, 133, 134, 141, 144, 144, 136, 142, 139, 147, 144, 143, 137, 150, 144, 143, 132, 136, 134, 148, 129, 140, 143, 142, 143, 150, 133, 137, 141, 141, 133, 133, 135, 132, 133, 134, 131, 137, 136, 144, 130, 145, 140, 134, 145, 135, 139, 145, 138, 131, 131, 131, 134, 145, 132, 142, 134, 135, 137, 131, 141, 135, 136, 144, 145, 137, 139, 141, 136, 149, 144, 136, 131, 141, 138, 135, 129, 142, 132, 140, 132, 134, 142, 139, 131, 140, 134, 142, 146, 131, 124, 144, 135, 139, 135, 143, 134, 143, 145, 146, 137, 139, 146, 125, 138, 135, 144, 143, 148, 139, 146, 146, 137, 144, 141, 140, 130, 142, 139, 144, 134, 132, 147, 138, 139, 137, 140, 135, 131, 144, 140, 154, 133, 141, 139, 138, 142, 133, 138, 128, 137, 138, 134, 136, 144, 143, 137, 138, 131, 132, 135, 145, 138, 135, 135, 140, 141, 141, 134, 140, 146, 136, 140, 135, 133, 140, 122, 146, 135, 143, 139, 142, 142, 132, 139, 134, 136, 140, 137, 153, 147, 143, 139, 140, 149, 149, 140, 137, 138, 142, 129, 144, 138, 144, 137, 132, 139, 143, 140, 137, 131, 132, 137, 133, 136, 137, 144, 148, 138, 129, 143, 144, 142, 131, 146, 140, 140, 132, 141, 133, 149, 151, 139, 137, 138, 129, 152, 133, 159, 143, 135, 141, 142, 142, 139, 142, 137, 137, 136, 139, 137, 142, 143, 146, 145, 140, 145, 133, 138, 138, 135, 137, 140, 131, 143, 139, 143, 139, 128, 147, 134, 141, 144, 139, 137, 134, 135, 134, 132, 143, 138, 139, 138, 144, 138, 137, 149, 139, 139, 144, 132, 139, 137, 144, 145, 136, 150, 145, 139, 130, 142, 140, 137, 143, 137, 141, 138, 149, 135, 143, 138, 142, 145, 144, 135, 135, 140, 151, 132, 134, 136, 135, 141, 139, 146, 140, 140, 149, 143, 132, 143, 133, 143, 149, 135, 143, 142, 148, 140, 140, 140, 144, 145, 133, 141, 137, 125, 139, 133, 139, 136, 137, 148, 129, 135, 132, 137, 136, 137, 150, 139, 141, 135, 141, 129, 132, 138, 140, 131, 150, 143, 140, 142, 145, 140, 135, 137, 134, 144, 143, 157, 133, 144, 149, 141, 134, 144, 139, 140, 145, 141, 139, 132, 134, 147, 141, 139, 132, 138, 138, 135, 139, 142, 134, 146, 134, 140, 145, 140, 144, 136, 159, 146, 133, 136, 142, 134, 142, 131, 134, 127, 139, 133, 136, 136, 130, 134, 137, 138, 143, 139, 136, 140, 138, 140, 137, 139, 140, 146, 136, 137, 132, 136, 135, 140, 132, 142, 138, 142, 144, 132, 139, 140, 145, 139, 131, 132, 142, 138, 137, 142, 140, 133, 133, 133, 136, 138, 138, 137, 131, 130, 145, 139, 139, 137, 143, 131, 147, 135, 137, 145, 134, 137, 142, 132, 133, 140, 136, 136, 137, 142, 134, 137, 142, 148, 140, 139, 133, 137, 141, 141, 134, 136, 133, 132, 148, 139, 130, 142, 140, 145, 128, 142, 148, 137, 133, 135, 131, 148, 139, 137, 132, 142, 150, 137, 142, 140, 138, 143, 138, 146, 138, 134, 134, 138, 140, 136, 143, 138, 133, 137, 143, 147, 144, 134, 141, 133, 136, 135, 140, 144, 132, 134, 141, 133, 145, 136, 141, 148, 144, 133, 142, 137, 132, 142, 134, 132, 140, 136, 140, 140, 140, 142, 134, 139, 151, 139, 142, 134, 139, 142, 149, 130, 141, 140, 142, 141, 137, 147, 137, 146, 142, 141, 137, 135, 139, 140, 134, 138, 134, 134, 145, 140, 138, 137, 140, 140, 134, 131, 131, 141, 144, 140, 139, 139, 141, 144, 141, 140, 135, 152, 143, 142, 137, 136, 146, 144, 140, 134, 140, 137, 141, 142, 140, 143, 134, 138, 139, 137, 138, 142, 141, 142, 139, 141, 143, 138, 138, 145, 125, 142, 137, 142, 138, 140, 147, 141, 145, 141, 138, 136, 145, 138, 139, 142, 139, 146, 131, 141, 143, 134, 133, 140, 133, 138, 140, 137, 138, 143, 130, 142, 145, 132, 138, 139, 140, 137, 137, 125, 138, 146, 147, 133, 152, 143, 135, 139, 142, 134, 136, 142, 143, 132, 138, 142, 143, 140, 128, 135, 140, 143, 136, 146, 142, 139, 143, 135, 142, 140, 141, 134, 134, 136, 147, 135, 140, 138, 136, 139, 136, 134, 139, 137, 142, 143, 139, 145, 133, 139, 135, 140, 139, 134, 130, 139, 140, 149, 141, 136, 136, 140, 143, 135, 145, 138, 138, 139, 137, 142, 138, 138, 130, 142, 136, 135, 136, 139, 135, 142, 136, 136, 140, 145, 134, 143, 145, 140, 143, 143, 139, 132, 142, 146, 139, 137, 136, 140, 147, 138, 142, 144, 137, 137, 138, 144, 133, 136, 147, 149, 160, 141, 138, 126, 135, 137, 144, 145, 137, 141, 138, 138, 140, 138, 136, 139, 141, 142, 141, 141, 137, 135, 143, 133, 134, 140, 133, 133, 143, 133, 136, 138, 139, 133, 137, 141, 132, 137, 140, 138, 143, 140, 141, 132, 140, 138, 139, 141, 140, 134, 135, 118, 142, 135, 141, 139, 140, 135, 138, 139, 131, 135, 143, 140, 137, 142, 149, 137, 139, 139, 142, 142, 133, 136, 139, 142, 144, 139, 140, 150, 140, 140, 142, 138, 139, 141, 131, 144, 142, 143, 140, 137, 138, 133, 139, 133, 132, 139, 144, 143, 140, 138, 139, 141, 143, 142, 133, 149, 138, 142, 139, 139, 145, 145, 139, 141, 124, 139, 139, 124, 139, 142, 146, 143, 145, 142, 140, 141, 138, 148, 134, 138, 142, 139, 143, 141, 128, 138, 133, 150, 139, 143, 138, 140, 143, 147, 145, 137, 137, 141, 139, 139, 142, 132, 122, 134, 142, 140, 146, 134, 136, 134, 139, 132, 134, 120, 147, 140, 137, 140, 139, 136, 139, 142, 140, 133, 144, 145, 141, 131, 142, 142, 146, 140, 139, 141, 143, 141, 133, 122, 138, 135, 135, 150, 139, 139, 132, 136, 138, 142, 138, 138, 138, 140, 149, 135, 135, 141, 138, 139, 141, 137, 136, 145, 143, 139, 141, 140, 141, 141, 142, 141, 138, 139, 147, 140, 147, 138, 143, 140, 138, 142, 136, 134, 143, 144, 136, 135, 140, 140, 143, 136, 133, 138, 137, 145, 138, 154, 138, 139, 142, 133, 141, 133, 137, 143, 142, 136, 139, 143, 146, 147, 138, 137, 136, 111, 145, 141, 141, 147, 130, 131, 133, 139, 126, 150, 132, 134, 130, 137, 149, 146, 137, 140, 135, 138, 141, 141, 149, 139, 137, 143, 136, 132, 126, 141, 146, 148, 125, 139, 147, 127, 136, 142, 142, 148, 135, 153, 136, 141, 143, 138, 139, 145, 138, 148, 135, 138, 137, 143, 142, 136, 134, 145, 138, 138, 129, 126, 132, 133, 164, 137, 138, 133, 139, 152, 146, 130, 142, 142, 143, 138, 130, 146, 137, 146, 138, 137, 141, 140, 141, 143, 141, 133, 134, 139, 137, 139, 139, 152, 140, 135, 137, 135, 134, 134, 140, 141, 141, 155, 138, 142, 145, 142, 133, 145, 141, 142, 144, 142, 126, 149, 141, 141, 135, 150, 131, 143, 143, 140, 135, 148, 141, 140, 144, 121, 149, 128, 130, 126, 135, 140, 140, 136, 137, 134, 139, 143, 139, 139, 140, 143, 131, 133, 141, 142, 141, 144, 130, 133, 144, 130, 137, 130, 144, 141, 133, 132, 146, 135, 147, 146, 141, 138, 135, 136, 144, 141, 141, 133, 146, 136, 134, 130, 136, 136, 149, 142, 141, 142, 140, 142, 135, 144, 138, 139, 135, 137, 131, 134, 151, 141, 146, 131, 137, 133, 145, 138, 136, 135, 135, 141, 134, 147, 132, 128, 145, 142, 127, 132, 131, 152, 143, 136, 135, 143, 152, 136, 141, 138, 141, 137, 147, 147, 129, 134, 133, 142, 138, 148, 132, 131, 136, 138, 137, 125, 138, 132, 143, 128, 147, 130, 135, 130, 147, 143, 141, 145, 146, 141, 144, 136, 137, 141, 140, 137, 142, 138, 130, 137, 144, 141, 138, 135, 129, 136, 143, 147, 133, 136, 134, 145, 136, 145, 133, 132, 147, 131, 142, 146, 138, 148, 141, 137, 131, 141, 144, 142, 137, 143, 147, 143, 141, 134, 148, 133, 136, 145, 146, 135, 139, 137, 129, 135, 127, 137, 135, 141, 132, 134, 140, 142, 129, 139, 141, 134, 130, 140, 137, 135, 145, 144, 141, 138, 134, 140, 130, 135, 144, 134, 137, 142, 135, 137, 129, 136, 130, 140, 134, 143, 127, 137, 138, 137, 149, 140, 140, 143, 140, 137, 133, 142, 131, 139, 140, 139, 134, 139, 148, 135, 141, 130, 133, 145, 140, 156, 140, 140, 140, 147, 144, 149, 135, 127, 125, 147, 140, 134, 141, 137, 142, 130, 137, 131, 135, 143, 132, 136, 144, 122, 136, 132, 149, 137, 136, 142, 144, 141, 131, 144, 129, 129, 142, 141, 138, 146, 145, 152, 144, 149, 146, 135, 137, 150, 134, 138, 139, 130, 126, 132, 131, 135, 145, 129, 129, 144, 142, 141, 141, 141, 141, 136, 134, 137, 138, 142, 139, 133, 136, 151, 129, 143, 123, 137, 134, 131, 129, 137, 131, 132, 144, 131, 141, 139, 148, 144, 129, 131, 141, 138, 132, 136, 135, 141, 123, 144, 140, 141, 134, 137, 143, 137, 134, 138, 133, 136, 141, 141, 138, 135, 135, 130, 120, 138, 143, 131, 143, 140, 131, 135, 139, 146, 132, 144, 138, 141, 130, 142, 136, 139, 141, 137, 128, 142, 163, 152, 138, 139, 136, 140, 143, 135, 142, 140, 145, 138, 131, 141, 134, 136, 146, 135, 141, 138, 138, 136, 137, 140, 143, 133, 144, 136, 127, 143, 135, 141, 146, 133, 141, 143, 147, 140, 146, 136, 147, 147, 139, 138, 143, 141, 141, 135, 147, 140, 143, 144, 138, 134, 136, 138, 130, 137, 136, 135, 136, 142, 140, 148, 147, 148, 139, 141, 140, 145, 146, 140, 137, 142, 138, 141, 136, 137, 138, 140, 132, 144, 138, 132, 135, 144, 153, 143, 146, 143, 135, 140, 143, 130, 142, 135, 129, 129, 144, 150, 143, 139, 127, 136, 143, 142, 132, 145, 147, 138, 138, 143, 132, 130, 140, 133, 137, 135, 143, 130, 131, 138, 143, 141, 144, 140, 143, 148, 127, 138, 137, 140, 130, 143, 134, 141, 134, 130, 136, 129, 139, 134, 131, 145, 146, 138, 153, 135, 138, 132, 139, 133, 141, 155, 141, 139, 134, 137, 142, 143, 144, 141, 134, 141, 139, 139, 130, 139, 126, 144, 133, 146, 135, 138, 143, 136, 135, 136, 136, 132, 139, 131, 133, 148, 135, 130, 137, 146, 143, 143, 138, 134, 141, 139, 140, 136, 142, 136, 139, 133, 133, 136, 143, 146, 138, 141, 141, 123, 146, 136, 144, 138, 145, 144, 140, 141, 138, 139, 138, 148, 136, 146, 137, 143, 135, 137, 130, 141, 138, 139, 150, 127, 146, 142, 151, 135, 145, 131, 138, 144, 123, 143, 149, 141, 147, 140, 128, 132, 139, 147, 146, 129, 139, 135, 145, 134, 143, 134, 137, 134, 148, 139, 132, 123, 145, 144, 136, 130, 139, 142, 139, 144, 137, 133, 134, 142, 148, 144, 134, 148, 153, 141, 134, 137, 140, 137, 134, 132, 149, 139, 132, 136, 143, 139, 137, 151, 131, 145, 141, 130, 146, 133, 138, 139, 132, 128, 136, 137, 148, 144, 139, 148, 138, 138, 139, 146, 135, 137, 140, 132, 131, 138, 142, 146, 149, 141, 139, 138, 134, 139, 148, 133, 135, 143, 144, 138, 143, 144, 136, 138, 142, 141, 132, 139, 139, 142, 135, 132, 134, 144, 133, 139, 139, 136, 137, 142, 136, 132, 145, 143, 137, 141, 134, 141, 135, 134, 142, 138, 135, 134, 128, 142, 137, 136, 135, 147, 144, 141, 138, 141, 135, 139, 142, 141, 150, 135, 147, 147, 139, 132, 135, 132, 139, 142, 141, 140, 133, 141, 134, 138, 139, 145, 127, 138, 148, 140, 141, 139, 148, 142, 139, 135, 143, 144, 144, 141, 153, 143, 144, 139, 138, 142, 147, 131, 140, 131, 147, 141, 136, 138, 143, 139, 133, 141, 141, 139, 132, 144, 141, 144, 141, 137, 137, 142, 141, 148, 144, 133, 148, 134, 144, 139, 138, 132, 140, 136, 138, 141, 138, 144, 154, 138, 143, 139, 138, 136, 149, 137, 129, 144, 143, 130, 138, 150, 144, 136, 138, 134, 138, 140, 139, 145, 137, 146, 140, 136, 146, 138, 132, 138, 137, 138, 132, 129, 138, 138, 132, 148, 133, 145, 131, 145, 136, 130, 142, 138, 142, 151, 144, 137, 139, 128, 134, 144, 137, 137, 149, 143, 142, 137, 140, 147, 138, 135, 141, 134, 142, 143, 144, 135, 140, 134, 133, 141, 139, 136, 139, 132, 142, 139, 136, 134, 136, 141, 145, 138, 139, 137, 135, 138, 138, 140, 132, 134, 142, 140, 147, 143, 138, 147, 141, 144, 147, 131, 147, 146, 147, 132, 143, 139, 141, 133, 137, 134, 134, 138, 133, 143, 143, 139, 137, 136, 138, 136, 138, 138, 138, 146, 143, 139, 136, 138, 133, 138, 136, 145, 136, 145, 137, 138, 143, 150, 132, 133, 144, 140, 140, 132, 139, 137, 137, 131, 145, 143, 138, 142, 145, 139, 138, 142, 133, 140, 137, 134, 147, 136, 134, 136, 133, 136, 150, 138, 130, 135, 137, 136, 140, 136, 135, 147, 137, 143, 136, 134, 141, 138, 141, 142, 144, 146, 137, 145, 140, 156, 130, 132, 137, 141, 143, 143, 138, 133, 147, 141, 130, 136, 132, 143, 140, 142, 137, 139, 139, 143, 142, 142, 135, 139, 138, 145, 141, 137, 141, 136, 133, 139, 138, 150, 139, 143, 139, 139, 139, 132, 153, 135, 141, 135, 140, 141, 142, 136, 137, 133, 140, 131, 142, 138, 139, 139, 134, 129, 143, 150, 134, 136, 145, 138, 137, 139, 144, 135, 143, 135, 142, 144, 138, 133, 144, 144, 145, 138, 136, 131, 137, 137, 137, 139, 128, 141, 144, 140, 132, 136, 138, 134, 134, 149, 128, 136, 148, 143, 140, 135, 138, 143, 141, 135, 135, 143, 138, 135, 134, 136, 141, 138, 138, 135, 144, 137, 144, 128, 136, 146, 131, 133, 135, 147, 140, 135, 138, 135, 141, 141, 142, 136, 145, 139, 138, 138, 143, 148, 136, 137, 138, 139, 132, 134, 137, 140, 144, 135, 141, 139, 139, 140, 142, 138, 138, 135, 146, 141, 141, 133, 134, 139, 141, 140, 143, 136, 136, 135, 142, 132, 136, 134, 137, 137, 138, 133, 135, 134, 142, 138, 134, 140, 142, 148, 142, 133, 142, 136, 140, 138, 144, 136, 138, 146, 136, 142, 134, 145, 144, 135, 139, 143, 138, 137, 131, 143, 139, 137, 141, 139, 137, 142, 142, 148, 140, 142, 140, 138, 130, 136, 138, 134, 133, 136, 140, 139, 140, 143, 135, 142, 146, 139, 139, 138, 143, 136, 136, 140, 145, 135, 133, 141, 144, 143, 131, 145, 129, 133, 138, 135, 138, 143, 140, 143, 146, 133, 143, 144, 139, 138, 142, 148, 138, 133, 139, 139, 139, 134, 137, 138, 139, 134, 140, 136, 136, 134, 143, 133, 142, 136, 141, 135, 124, 141, 136, 133, 140, 140, 136, 143, 129, 137, 135, 137, 145, 135, 131, 142, 135, 130, 133, 138, 136, 137, 156, 147, 138, 144, 135, 137, 142, 129, 135, 137, 135, 143, 139, 153, 142, 134, 133, 135, 137, 145, 145, 140, 139, 137, 137, 141, 134, 140, 134, 135, 150, 138, 138, 138, 139, 140, 140, 137, 134, 137, 135, 135, 132, 144, 137, 141, 129, 138, 135, 136, 137, 143, 145, 132, 133, 146, 137, 146, 138, 144, 140, 134, 143, 145, 137, 137, 139, 134, 146, 139, 141, 133, 133, 133, 141, 135, 135, 138, 141, 144, 139, 138, 134, 143, 140, 137, 130, 137, 136, 136, 140, 147, 130, 144, 136, 139, 142, 141, 148, 140, 147, 138, 139, 137, 142, 148, 140, 133, 142, 140, 145, 132, 136, 141, 138, 135, 136, 140, 144, 136, 138, 127, 140, 141, 133, 133, 144, 148, 142, 139, 139, 139, 138, 149, 133, 139, 134, 137, 132, 135, 139, 139, 141, 135, 144, 136, 137, 143, 134, 137, 148, 137, 137, 133, 141, 139, 139, 147, 133, 139, 134, 138, 134, 137, 136, 145, 132, 144, 135, 136, 139, 140, 136, 141, 133, 140, 146, 137, 138, 145, 128, 145, 147, 141, 138, 140, 142, 143, 125, 148, 141, 138, 136, 139, 121, 146, 136, 134, 135, 138, 141, 136, 132, 141, 143, 143, 135, 143, 134, 135, 141, 137, 139, 150, 142, 140, 141, 140, 139, 139, 135, 148, 150, 139, 139, 146, 141, 140, 133, 140, 134, 136, 137, 137, 144, 137, 135, 130, 141, 138, 142, 138, 135, 155, 129, 135, 141, 135, 138, 129, 133, 136, 138, 134, 142, 133, 145, 143, 135, 137, 139, 134, 130, 160, 145, 133, 185, 140, 163, 136, 140, 142, 144, 138, 135, 137, 140, 137, 143, 137, 132, 143, 142, 139, 130, 138, 147, 132, 137, 145, 136, 132, 136, 131, 138, 141, 132, 137, 133, 142, 137, 137, 137, 139, 140, 140, 143, 142, 134, 138, 142, 133, 137, 147, 137, 133, 140, 141, 133, 130, 135, 133, 132, 142, 135, 135, 135, 138, 141, 140, 136, 144, 139, 136, 139, 142, 147, 144, 140, 147, 137, 143, 140, 140, 140, 142, 144, 135, 142, 131, 120, 144, 141, 136, 135, 143, 140, 139, 143, 147, 137, 141, 138, 144, 142, 141, 145, 138, 145, 138, 140, 139, 142, 141, 138, 137, 155, 136, 136, 146, 134, 144, 139, 137, 143, 138, 142, 140, 140, 139, 135, 136, 142, 146, 136, 134, 135, 143, 138, 139, 143, 145, 135, 136, 145, 129, 133, 130, 149, 130, 134, 139, 132, 137, 141, 133, 142, 138, 132, 135, 146, 138, 141, 144, 140, 150, 144, 137, 139, 140, 139, 140, 135, 134, 171, 141, 138, 137, 140, 137, 142, 139, 142, 140, 133, 132, 142, 155, 148, 140, 134, 129, 136, 141, 131, 141, 128, 140, 136, 138, 136, 141, 140, 136, 139, 142, 134, 134, 139, 148, 140, 120, 137, 162, 137, 138, 142, 138, 141, 136, 140, 136, 153, 141, 138, 140, 140, 144, 151, 120, 138, 136, 145, 143, 142, 136, 144, 138, 139, 137, 135, 141, 138, 139, 139, 135, 137, 133, 142, 130, 141, 131, 141, 139, 131, 131, 142, 131, 137, 137, 137, 128, 137, 138, 142, 136, 146, 134, 138, 146, 138, 135, 145, 134, 146, 142, 147, 143, 134, 146, 138, 141, 146, 136, 139, 128, 139, 129, 141, 137, 124, 133, 142, 141, 139, 138, 135, 136, 136, 136, 138, 142, 137, 136, 136, 129, 140, 137, 140, 145, 136, 133, 139, 140, 135, 140, 134, 139, 141, 138, 142, 144, 153, 134, 143, 139, 134, 143, 142, 143, 141, 148, 137, 138, 130, 144, 147, 142, 134, 136, 148, 142, 139, 131, 147, 147, 128, 146, 142, 138, 140, 131, 143, 140, 133, 144, 142, 133, 138, 125, 136, 137, 140, 142, 137, 136, 136, 143, 133, 131, 131, 134, 135, 141, 135, 138, 131, 137, 136, 137, 137, 136, 133, 141, 134, 140, 140, 132, 142, 131, 136, 140, 143, 136, 144, 144, 140, 143, 139, 124, 144, 141, 139, 137, 135, 140, 143, 138, 144, 143, 134, 141, 136, 135, 138, 138, 143, 136, 140, 135, 136, 138, 154, 141, 138, 126, 139, 147, 144, 136, 137, 137, 142, 151, 126, 139, 135, 145, 139, 137, 139, 137, 141, 139, 139, 131, 145, 140, 132, 143, 140, 132, 136, 141, 138, 143, 138, 142, 133, 130, 141, 144, 146, 149, 139, 137, 135, 141, 129, 138, 149, 138, 145, 146, 144, 141, 137, 139, 152, 136, 142, 139, 131, 139, 137, 145, 136, 139, 133, 135, 132, 137, 139, 140, 136, 139, 140, 133, 135, 132, 141, 149, 127, 132, 144, 143, 149, 135, 137, 134, 136, 137, 136, 133, 138, 133, 140, 133, 146, 137, 134, 153, 131, 141, 137, 137, 137, 132, 140, 132, 136, 134, 144, 136, 137, 142, 135, 139, 139, 131, 135, 139, 127, 137, 136, 139, 135, 136, 142, 130, 140, 140, 135, 140, 137, 137, 142, 139, 140, 140, 142, 141, 137, 145, 128, 144, 141, 138, 136, 145, 135, 141, 137, 144, 138, 140, 142, 145, 135, 151, 140, 140, 138, 141, 151, 145, 133, 137, 143, 137, 138, 137, 151, 141, 150, 144, 135, 154, 140, 130, 138, 136, 140, 130, 136, 133, 138, 139, 142, 143, 135, 133, 134, 143, 134, 138, 148, 149, 143, 132, 140, 136, 142, 137, 140, 134, 134, 141, 141, 138, 140, 143, 133, 140, 137, 139, 134, 135, 138, 135, 136, 140, 134, 139, 139, 135, 144, 144, 142, 128, 141, 154, 132, 139, 140, 140, 137, 144, 136, 140, 132, 139, 139, 138, 134, 142, 139, 132, 132, 135, 147, 132, 132, 139, 141, 134, 140, 134, 133, 139, 138, 135, 137, 141, 139, 136, 134, 136, 140, 135, 139, 139, 146, 137, 138, 136, 138, 139, 141, 140, 141, 145, 132, 141, 133, 144, 129, 149, 142, 148, 137, 142, 144, 147, 142, 135, 136, 137, 132, 142, 138, 149, 134, 133, 136, 139, 136, 136, 140, 140, 142, 141, 140, 140, 137, 141, 142, 137, 139, 132, 142, 132, 136, 143, 136, 138, 146, 139, 137, 139, 138, 142, 140, 132, 137, 131, 138, 137, 134, 143, 136, 143, 138, 140, 141, 144, 139, 149, 142, 135, 144, 137, 134, 140, 138, 139, 146, 137, 140, 133, 143, 142, 142, 137, 134, 143, 139, 137, 136, 127, 137, 144, 144, 140, 144, 142, 134, 138, 147, 145, 134, 138, 132, 145, 138, 148, 140, 143, 137, 146, 142, 133, 136, 142, 144, 143, 139, 137, 132, 135, 136, 137, 126, 133, 144, 141, 136, 146, 138, 142, 131, 142, 138, 141, 137, 138, 144, 136, 140, 142, 139, 138, 144, 140, 134, 136, 134, 143, 143, 145, 139, 139, 136, 140, 136, 132, 145, 141, 138, 156, 143, 141, 144, 142, 142, 139, 141, 138, 140, 143, 141, 140, 137, 142, 145, 133, 131, 138, 144, 141, 142, 139, 145, 140, 140, 143, 135, 138, 135, 138, 139, 130, 129, 132, 139, 136, 124, 140, 138, 142, 135, 137, 138, 143, 139, 137, 143, 141, 135, 134, 133, 138, 148, 144, 140, 150, 133, 142, 138, 137, 139, 139, 141, 134, 140, 137, 137, 134, 137, 137, 135, 143, 136, 138, 138, 138, 140, 134, 138, 139, 137, 136, 139, 139, 137, 144, 137, 127, 139, 143, 141, 127, 141, 137, 137, 140, 139, 141, 141, 142, 132, 133, 139, 140, 138, 140, 142, 138, 142, 139, 139, 135, 139, 140, 139, 140, 134, 137, 143, 132, 138, 143, 142, 140, 141, 137, 143, 135, 135, 132, 139, 139, 139, 139, 138, 143, 151, 142, 131, 136, 140, 147, 137, 144, 135, 142, 134, 133, 150, 135, 129, 141, 141, 139, 146, 137, 135, 141, 141, 143, 140, 139, 138, 138, 140, 133, 136, 138, 141, 136, 143, 132, 145, 136, 146, 150, 140, 142, 130, 137, 142, 136, 135, 136, 132, 139, 135, 136, 136, 132, 136, 139, 139, 138, 140, 144, 143, 145, 136, 137, 135, 134, 135, 143, 139, 133, 141, 134, 138, 143, 140, 137, 138, 139, 135, 144, 143, 139, 134, 140, 140, 137, 139, 144, 141, 137, 142, 143, 137, 141, 138, 142, 135, 136, 138, 147, 133, 145, 138, 140, 139, 137, 143, 139, 135, 137, 137, 136, 137, 140, 137, 145, 132, 140, 127, 144, 147, 139, 141, 135, 135, 141, 134, 132, 144, 136, 138, 137, 138, 138, 134, 142, 137, 131, 138, 139, 132, 139, 136, 132, 134, 137, 145, 139, 141, 137, 144, 140, 138, 139, 137, 131, 135, 142, 141, 139, 137, 140, 141, 137, 136, 137, 140, 139, 140, 145, 142, 135, 136, 136, 136, 140, 144, 140, 141, 139, 136, 140, 144, 137, 136, 138, 138, 143, 145, 137, 141, 136, 139, 138, 128, 146, 141, 142, 140, 135, 136, 144, 139, 130, 143, 136, 141, 145, 137, 141, 141, 140, 138, 141, 138, 140, 137, 142, 138, 137, 141, 136, 137, 137, 136, 143, 124, 137, 139, 139, 142, 135, 138, 138, 135, 138, 137, 135, 130, 140, 139, 134, 140, 135, 136, 139, 144, 139, 143, 128, 137, 141, 142, 143, 137, 137, 141, 145, 136, 138, 138, 144, 136, 135, 138, 141, 139, 140, 137, 136, 134, 137, 135, 132, 140, 138, 135, 146, 141, 140, 140, 138, 140, 139, 140, 144, 142, 140, 143, 135, 144, 140, 136, 136, 138, 137, 134, 139, 138, 137, 139, 141, 139, 135, 137, 138, 143, 137, 140, 140, 141, 141, 137, 140, 140, 139, 138, 134, 140, 139, 137, 136, 139, 138, 137, 143, 138, 138, 139, 140, 141, 140, 137, 138, 135, 140, 137, 135, 138, 135, 142, 137, 147, 143, 137, 136, 139, 140, 136, 142, 145, 133, 133, 143, 141, 148, 136, 141, 125, 130, 135, 139, 142, 144, 154, 137, 142, 135, 133, 140, 124, 133, 141, 138, 134, 137, 143, 135, 150, 124, 143, 140, 141, 148, 130, 124, 140, 132, 132, 122, 134, 163, 142, 145, 140, 139, 137, 143, 141, 144, 138, 145, 143, 136, 144, 127, 137, 130, 132, 134, 133, 135, 145, 141, 141, 136, 139, 152, 145, 139, 143, 140, 141, 140, 137, 143, 133, 137, 133, 137, 149, 139, 137, 147, 135, 144, 141, 140, 141, 129, 148, 137, 142, 141, 142, 135, 135, 148, 134, 146, 146, 153, 144, 140, 130, 145, 133, 145, 148, 128, 136, 131, 147, 137, 125, 131, 142, 142, 137, 143, 138, 130, 147, 132, 132, 141, 141, 133, 148, 131, 137, 142, 146, 130, 134, 132, 143, 140, 140, 140, 147, 131, 144, 135, 132, 135, 138, 142, 139, 133, 135, 145, 143, 129, 130, 134, 136, 139, 135, 150, 149, 141, 136, 141, 139, 140, 145, 148, 140, 145, 142, 137, 133, 135, 141, 141, 145, 122, 142, 136, 123, 134, 141, 138, 140, 135, 129, 137, 142, 138, 141, 137, 144, 134, 145, 140, 130, 146, 137, 134, 148, 148, 155, 141, 139, 136, 141, 138, 159, 141, 143, 130, 141, 150, 130, 139, 148, 137, 127, 135, 138, 131, 138, 138, 128, 131, 134, 135, 133, 128, 134, 144, 149, 143, 145, 144, 139, 145, 144, 148, 139, 142, 138, 148, 136, 148, 141, 151, 132, 130, 149, 136, 136, 137, 133, 144, 133, 135, 137, 150, 138, 140, 124, 141, 134, 141, 139, 132, 135, 139, 137, 136, 132, 135, 140, 135, 148, 126, 131, 143, 145, 136, 142, 141, 134, 140, 138, 148, 132, 130, 145, 144, 145, 131, 139, 144, 137, 113, 136, 143, 151, 132, 157, 147, 131, 142, 139, 122, 145, 136, 137, 121, 135, 137, 155, 135, 132, 135, 139, 134, 131, 141, 145, 135, 139, 146, 140, 139, 141, 135, 136, 141, 126, 144, 132, 127, 135, 142, 135, 134, 135, 140, 147, 145, 132, 136, 144, 136, 143, 131, 142, 139, 137, 132, 133, 138, 126, 146, 140, 136, 137, 141, 126, 139, 138, 140, 135, 142, 135, 138, 149, 133, 147, 136, 135, 140, 129, 125, 142, 144, 131, 136, 131, 139, 129, 149, 133, 129, 141, 129, 139, 132, 136, 143, 147, 134, 129, 137, 144, 148, 137, 131, 142, 145, 132, 131, 142, 139, 142, 137, 133, 138, 139, 143, 133, 135, 144, 140, 139, 132, 134, 147, 141, 140, 137, 135, 140, 143, 136, 138, 137, 154, 130, 139, 145, 151, 128, 142, 143, 150, 141, 135, 140, 146, 133, 138, 135, 131, 149, 145, 136, 138, 147, 137, 137, 138, 144, 144, 137, 137, 145, 136, 132, 143, 146, 137, 146, 138, 126, 147, 139, 135, 142, 135, 130, 135, 135, 144, 135, 144, 134, 138, 128, 148, 128, 133, 151, 132, 138, 137, 151, 143, 143, 132, 138, 144, 136, 144, 133, 130, 138, 136, 135, 142, 141, 140, 136, 145, 138, 149, 132, 138, 147, 146, 135, 140, 142, 138, 142, 140, 137, 140, 132, 131, 143, 131, 141, 141, 138, 128, 139, 138, 133, 136, 134, 142, 132, 135, 133, 136, 141, 142, 147, 148, 138, 145, 136, 142, 135, 147, 149, 136, 138, 139, 139, 141, 143, 127, 138, 139, 133, 129, 139, 133, 138, 131, 144, 138, 137, 144, 132, 141, 139, 133, 137, 141, 138, 127, 142, 146, 139, 136, 131, 145, 132, 148, 138, 130, 137, 142, 135, 138, 139, 138, 135, 142, 133, 125, 132, 135, 142, 133, 131, 134, 140, 141, 142, 135, 145, 139, 147, 136, 146, 139, 141, 139, 141, 140, 138, 131, 133, 136, 135, 143, 135, 145, 131, 134, 133, 139, 139, 140, 141, 133, 150, 134, 140, 151, 142, 134, 141, 134, 148, 146, 136, 141, 148, 140, 145, 132, 139, 143, 142, 140, 139, 139, 142, 140, 132, 136, 136, 142, 137, 133, 141, 144, 136, 137, 134, 146, 141, 138, 143, 139, 142, 146, 149, 135, 138, 150, 134, 150, 141, 135, 148, 130, 143, 148, 139, 140, 139, 146, 138, 137, 131, 135, 145, 145, 136, 140, 138, 136, 137, 135, 134, 141, 136, 137, 136, 141, 133, 134, 127, 136, 143, 140, 141, 135, 138, 140, 140, 139, 134, 144, 144, 138, 144, 132, 142, 139, 138, 129, 133, 136, 143, 134, 137, 136, 139, 138, 142, 141, 142, 139, 137, 140, 140, 132, 144, 132, 143, 143, 142, 131, 142, 147, 135, 139, 141, 146, 138, 140, 139, 134, 132, 141, 139, 140, 139, 132, 142, 133, 141, 138, 144, 132, 146, 141, 134, 156, 141, 136, 132, 142, 140, 139, 136, 142, 143, 135, 153, 145, 133, 139, 141, 137, 148, 144, 141, 144, 144, 139, 142, 145, 144, 143, 137, 135, 130, 143, 143, 136, 136, 140, 140, 137, 138, 135, 142, 140, 138, 134, 135, 142, 141, 138, 132, 148, 138, 135, 141, 143, 137, 137, 132, 136, 148, 141, 156, 143, 133, 136, 139, 148, 141, 141, 144, 150, 130, 134, 139, 141, 145, 143, 141, 140, 138, 143, 135, 144, 138, 137, 137, 132, 134, 144, 144, 136, 141, 146, 137, 143, 140, 124, 138, 140, 139, 127, 146, 137, 148, 140, 142, 142, 137, 133, 138, 140, 133, 136, 140, 138, 141, 141, 131, 142, 141, 149, 135, 141, 139, 141, 138, 137, 135, 138, 142, 143, 146, 142, 142, 141, 132, 134, 150, 142, 137, 141, 145, 133, 142, 131, 142, 136, 138, 145, 140, 137, 119, 131, 132, 135, 138, 134, 141, 140, 140, 143, 139, 134, 145, 148, 144, 125, 138, 136, 139, 140, 143, 145, 130, 143, 140, 147, 138, 132, 144, 129, 145, 144, 149, 141, 137, 143, 137, 141, 136, 136, 139, 139, 137, 132, 143, 150, 133, 133, 138, 145, 138, 133, 139, 137, 136, 143, 142, 140, 136, 143, 134, 137, 143, 139, 140, 142, 148, 136, 147, 142, 132, 141, 139, 144, 139, 139, 141, 134, 134, 138, 136, 144, 141, 135, 142, 133, 142, 146, 142, 148, 139, 143, 137, 137, 135, 143, 140, 144, 135, 139, 136, 137, 135, 138, 145, 136, 145, 142, 139, 136, 137, 139, 142, 130, 142, 142, 124, 133, 141, 140, 137, 142, 145, 139, 132, 128, 135, 142, 139, 142, 138, 130, 128, 146, 137, 141, 137, 134, 144, 151, 141, 137, 143, 135, 150, 143, 131, 135, 137, 138, 144, 135, 148, 122, 140, 141, 138, 136, 142, 138, 137, 139, 143, 137, 146, 139, 146, 141, 145, 136, 137, 138, 131, 135, 135, 147, 137, 143, 129, 145, 131, 142, 138, 138, 144, 132, 135, 136, 140, 139, 141, 141, 139, 143, 145, 132, 144, 140, 140, 135, 136, 145, 138, 135, 132, 138, 134, 142, 135, 145, 142, 142, 140, 140, 137, 151, 143, 133, 135, 135, 142, 145, 148, 135, 150, 143, 146, 140, 134, 131, 129, 141, 146, 140, 123, 143, 141, 132, 145, 136, 140, 141, 135, 135, 144, 144, 144, 150, 130, 133, 140, 138, 141, 126, 135, 136, 136, 138, 140, 136, 138, 136, 131, 138, 136, 134, 134, 142, 138, 144, 138, 132, 138, 141, 136, 140, 133, 135, 138, 134, 140, 143, 136, 139, 140, 128, 137, 139, 138, 155, 135, 144, 136, 139, 141, 132, 130, 126, 141, 150, 135, 145, 138, 141, 136, 142, 150, 146, 150, 142, 144, 139, 138, 136, 145, 130, 138, 135, 133, 148, 135, 141, 136, 139, 142, 132, 144, 140, 143, 135, 136, 140, 142, 137, 144, 143, 149, 138, 140, 144, 140, 140, 134, 144, 140, 140, 133, 134, 137, 141, 126, 144, 147, 143, 139, 125, 131, 128, 135, 150, 138, 137, 134, 133, 143, 137, 135, 131, 136, 135, 134, 144, 150, 145, 140, 128, 132, 143, 133, 142, 139, 138, 136, 141, 136, 138, 138, 128, 135, 138, 131, 132, 147, 141, 141, 133, 140, 133, 138, 148, 143, 135, 136, 131, 138, 142, 142, 147, 138, 138, 154, 145, 143, 134, 132, 130, 140, 148, 136, 140, 137, 130, 141, 138, 132, 150, 139, 137, 131, 145, 140, 128, 139, 137, 144, 143, 133, 144, 143, 136, 128, 147, 139, 129, 136, 137, 141, 140, 138, 145, 153, 141, 131, 145, 143, 146, 136, 141, 137, 151, 136, 133, 131, 133, 139, 141, 135, 131, 130, 133, 141, 138, 135, 127, 130, 136, 139, 135, 142, 137, 133, 142, 138, 127, 139, 141, 136, 131, 146, 139, 133, 141, 133, 143, 133, 145, 138, 139, 144, 139, 140, 136, 149, 138, 138, 141, 139, 137, 134, 149, 148, 131, 146, 135, 143, 142, 132, 136, 143, 150, 135, 143, 137, 150, 136, 139, 134, 142, 146, 140, 136, 134, 134, 140, 136, 141, 143, 141, 141, 130, 143, 141, 139, 147, 135, 130, 130, 132, 138, 136, 144, 130, 131, 132, 148, 132, 134, 133, 142, 146, 137, 141, 132, 142, 130, 140, 142, 144, 132, 136, 146, 134, 142, 134, 132, 150, 137, 147, 143, 136, 135, 143, 136, 133, 140, 136, 142, 139, 139, 137, 144, 136, 137, 135, 137, 136, 139, 139, 137, 128, 140, 135, 146, 133, 145, 137, 137, 135, 143, 126, 135, 149, 133, 132, 143, 136, 133, 146, 137, 140, 144, 150, 136, 138, 140, 139, 141, 138, 128, 150, 142, 129, 138, 140, 132, 132, 137, 133, 132, 141, 133, 137, 137, 149, 145, 134, 140, 128, 144, 142, 140, 147, 137, 140, 142, 128, 134, 138, 144, 145, 134, 128, 131, 139, 135, 137, 127, 140, 147, 146, 135, 135, 137, 136, 137, 139, 138, 134, 127, 136, 137, 148, 130, 133, 134, 138, 133, 143, 139, 143, 136, 141, 135, 130, 135, 133, 142, 152, 140, 135, 136, 137, 134, 138, 143, 138, 152, 142, 132, 140, 134, 140, 139, 126, 137, 130, 141, 146, 136, 143, 136, 142, 142, 143, 136, 132, 142, 147, 137, 128, 143, 141, 143, 140, 140, 139, 142, 143, 130, 139, 143, 132, 139, 141, 142, 139, 141, 143, 134, 144, 144, 139, 151, 138, 138, 135, 146, 144, 137, 142, 135, 130, 144, 149, 137, 134, 140, 136, 138, 143, 135, 136, 138, 135, 147, 139, 137, 143, 142, 142, 144, 142, 138, 136, 133, 139, 145, 139, 138, 133, 134, 145, 146, 144, 138, 133, 139, 132, 145, 141, 138, 145, 142, 139, 138, 134, 133, 137, 131, 136, 138, 138, 144, 142, 142, 144, 143, 139, 133, 140, 130, 136, 140, 139, 138, 144, 136, 137, 138, 135, 142, 138, 137, 138, 142, 134, 143, 136, 132, 134, 137, 148, 134, 136, 137, 131, 136, 138, 141, 141, 129, 134, 139, 145, 132, 134, 138, 132, 134, 134, 127, 132, 141, 136, 143, 139, 138, 136, 143, 131, 138, 146, 132, 145, 131, 141, 140, 138, 137, 136, 145, 139, 141, 134, 139, 147, 132, 138, 128, 135, 139, 153, 143, 138, 141, 139, 136, 138, 138, 140, 134, 145, 145, 138, 130, 146, 135, 149, 137, 137, 143, 136, 143, 134, 143, 133, 142, 139, 138, 153, 139, 133, 137, 135, 136, 136, 143, 133, 134, 141, 126, 130, 144, 128, 142, 143, 138, 137, 140, 137, 151, 143, 144, 142, 138, 140, 143, 134, 141, 142, 146, 143, 146, 141, 135, 145, 138, 135, 145, 140, 128, 143, 143, 141, 138, 135, 139, 144, 134, 139, 147, 137, 122, 141, 138, 133, 133, 141, 133, 131, 133, 145, 138, 139, 135, 131, 140, 137, 136, 132, 138, 139, 135, 145, 137, 140, 142, 138, 141, 137, 141, 142, 134, 133, 136, 135, 137, 138, 138, 136, 144, 132, 137, 147, 139, 145, 144, 141, 134, 135, 132, 147, 139, 139, 137, 135, 135, 144, 142, 139, 140, 135, 136, 131, 151, 150, 137, 137, 129, 139, 137, 146, 145, 140, 134, 142, 147, 143, 139, 131, 139, 145, 142, 144, 142, 141, 140, 138, 143, 134, 141, 138, 140, 146, 136, 136, 143, 138, 132, 152, 141, 142, 144, 134, 138, 138, 134, 133, 142, 141, 136, 134, 149, 135, 139, 131, 147, 133, 145, 136, 139, 141, 143, 134, 141, 141, 144, 143, 137, 141, 138, 140, 149, 139, 145, 150, 140, 132, 144, 143, 142, 137, 140, 141, 138, 141, 141, 131, 137, 137, 142, 147, 130, 135, 142, 147, 142, 137, 140, 139, 132, 141, 141, 138, 133, 143, 134, 136, 134, 146, 141, 153, 143, 134, 138, 136, 138, 140, 136, 132, 139, 140, 140, 140, 140, 140, 143, 137, 131, 134, 139, 131, 142, 142, 136, 137, 145, 137, 137, 135, 146, 138, 138, 138, 145, 134, 145, 146, 138, 133, 144, 134, 138, 137, 135, 136, 140, 140, 137, 136, 141, 140, 141, 154, 140, 143, 141, 135, 144, 142, 133, 135, 136, 143, 138, 142, 129, 139, 139, 129, 137, 137, 141, 140, 135, 144, 140, 126, 147, 132, 140, 137, 135, 124, 142, 139, 135, 143, 135, 137, 131, 143, 135, 139, 142, 145, 140, 138, 137, 138, 141, 130, 137, 147, 143, 136, 135, 142, 145, 135, 133, 140, 141, 133, 142, 141, 130, 132, 146, 135, 139, 136, 147, 137, 143, 138, 147, 136, 139, 138, 134, 151, 140, 141, 140, 129, 142, 131, 137, 131, 137, 139, 130, 133, 136, 139, 142, 134, 138, 136, 146, 139, 133, 146, 130, 139, 140, 143, 133, 138, 148, 145, 141, 136, 135, 147, 142, 138, 134, 144, 135, 139, 135, 141, 146, 129, 145, 153, 129, 135, 141, 144, 145, 130, 140, 137, 152, 143, 140, 151, 131, 151, 146, 145, 139, 127, 138, 132, 143, 137, 146, 130, 133, 138, 141, 136, 130, 138, 141, 143, 125, 147, 136, 146, 139, 138, 138, 146, 133, 145, 134, 137, 144, 138, 135, 142, 141, 144, 132, 139, 140, 139, 140, 134, 135, 129, 141, 131, 136, 137, 136, 141, 153, 143, 136, 138, 149, 145, 139, 143, 148, 143, 145, 140, 136, 132, 139, 134, 139, 136, 138, 149, 136, 143, 133, 144, 148, 138, 139, 142, 127, 123, 141, 139, 133, 143, 139, 138, 137, 136, 144, 141, 134, 128, 137, 139, 142, 138, 138, 139, 143, 137, 137, 144, 127, 149, 134, 136, 138, 141, 141, 142, 144, 142, 134, 139, 131, 135, 141, 144, 135, 134, 140, 142, 141, 144, 140, 140, 133, 137, 139, 135, 130, 149, 128, 141, 130, 133, 140, 136, 136, 143, 142, 142, 143, 151, 127, 136, 138, 143, 139, 129, 128, 140, 134, 143, 145, 143, 135, 134, 136, 139, 146, 138, 139, 138, 142, 135, 137, 128, 131, 148, 137, 146, 127, 144, 141, 145, 141, 131, 137, 140, 137, 126, 138, 140, 131, 135, 148, 142, 138, 135, 143, 139, 138, 141, 142, 145, 139, 144, 141, 140, 142, 141, 140, 135, 141, 131, 138, 136, 138, 135, 142, 143, 142, 139, 142, 139, 139, 138, 140, 142, 138, 137, 138, 140, 141, 143, 131, 141, 136, 138, 142, 144, 138, 142, 139, 142, 151, 134, 131, 132, 140, 135, 136, 150, 150, 134, 148, 136, 137, 138, 138, 143, 140, 133, 134, 131, 138, 139, 145, 141, 138, 147, 133, 140, 135, 136, 135, 136, 143, 145, 140, 138, 129, 151, 140, 136, 148, 131, 136, 132, 144, 132, 146, 143, 133, 144, 129, 140, 136, 142, 141, 142, 141, 139, 140, 141, 130, 135, 133, 135, 139, 142, 141, 136, 143, 133, 142, 150, 137, 145, 129, 145, 148, 138, 142, 138, 141, 141, 137, 141, 144, 144, 141, 141, 138, 135, 140, 146, 138, 143, 137, 139, 139, 137, 145, 139, 140, 134, 150, 145, 141, 141, 145, 140, 142, 137, 133, 148, 135, 138, 140, 145, 144, 130, 142, 136, 141, 129, 145, 136, 133, 139, 132, 138, 141, 133, 140, 132, 139, 139, 138, 137, 135, 132, 141, 142, 135, 132, 139, 138, 141, 138, 134, 137, 138, 136, 144, 133, 137, 129, 135, 136, 127, 139, 140, 136, 140, 140, 140, 143, 133, 128, 140, 135, 132, 144, 138, 139, 137, 148, 142, 145, 138, 142, 137, 149, 146, 134, 135, 136, 143, 140, 145, 145, 142, 144, 141, 135, 140, 135, 142, 145, 136, 133, 136, 141, 126, 135, 141, 135, 144, 146, 140, 136, 146, 142, 134, 137, 140, 140, 140, 141, 137, 138, 137, 147, 145, 139, 133, 142, 137, 139, 136, 140, 135, 137, 146, 136, 135, 154, 139, 143, 134, 138, 136, 139, 140, 138, 143, 148, 134, 138, 132, 143, 136, 139, 135, 144, 140, 138, 147, 138, 155, 133, 134, 131, 132, 145, 140, 142, 143, 149, 145, 137, 138, 136, 149, 135, 146, 137, 137, 139, 125, 137, 143, 129, 144, 142, 137, 132, 138, 138, 129, 139, 141, 147, 142, 144, 132, 143, 146, 137, 138, 134, 137, 142, 137, 147, 131, 144, 132, 139, 153, 142, 140, 137, 143, 143, 135, 139, 134, 136, 137, 140, 124, 141, 137, 132, 135, 136, 142, 138, 144, 135, 138, 133, 140, 135, 135, 137, 133, 142, 143, 140, 141, 139, 135, 137, 146, 138, 134, 135, 135, 138, 131, 148, 137, 137, 139, 137, 146, 141, 141, 134, 143, 138, 148, 136, 129, 139, 144, 130, 140, 141, 136, 135, 136, 134, 132, 148, 133, 132, 139, 145, 141, 140, 135, 140, 131, 138, 125, 138, 140, 143, 150, 139, 136, 135, 135, 140, 144, 136, 137, 141, 138, 135, 148, 138, 130, 134, 138, 142, 139, 126, 146, 140, 132, 137, 137, 137, 131, 146, 146, 141, 140, 139, 139, 141, 143, 133, 129, 142, 126, 142, 137, 139, 146, 137, 135, 143, 141, 138, 135, 136, 151, 139, 141, 132, 140, 139, 138, 132, 137, 146, 141, 136, 147, 133, 139, 138, 134, 141, 142, 139, 134, 138, 139, 135, 145, 133, 143, 136, 135, 132, 140, 138, 138, 140, 134, 135, 146, 141, 142, 149, 141, 143, 143, 137, 149, 146, 138, 130, 137, 143, 134, 136, 132, 145, 139, 141, 142, 140, 141, 130, 137, 142, 134, 136, 136, 138, 130, 137, 137, 136, 137, 141, 143, 135, 149, 133, 129, 141, 138, 145, 138, 145, 130, 144, 140, 133, 141, 136, 137, 144, 133, 141, 138, 137, 136, 143, 146, 142, 136, 148, 133, 134, 130, 134, 146, 133, 142, 138, 140, 136, 137, 140, 126, 136, 130, 139, 149, 147, 137, 140, 147, 141, 131, 139, 133, 147, 135, 135, 137, 137, 137, 134, 137, 141, 135, 133, 133, 148, 142, 139, 135, 139, 145, 139, 134, 135, 131, 142, 138, 142, 142, 135, 140, 133, 136, 137, 143, 146, 135, 145, 143, 140, 133, 139, 140, 133, 136, 139, 141, 134, 136, 143, 150, 141, 142, 128, 135, 140, 136, 127, 137, 132, 150, 145, 138, 139, 143, 131, 141, 141, 151, 131, 134, 140, 135, 136, 145, 140, 136, 136, 136, 138, 139, 134, 143, 147, 135, 138, 139, 140, 140, 147, 136, 135, 135, 134, 131, 144, 135, 140, 145, 141, 151, 141, 139, 138, 142, 131, 139, 136, 139, 130, 137, 142, 145, 126, 139, 140, 141, 141, 137, 141, 140, 132, 143, 139, 125, 136, 138, 133, 139, 150, 128, 137, 140, 142, 136, 140, 139, 139, 143, 134, 143, 145, 142, 154, 140, 139, 127, 140, 145, 137, 133, 135, 140, 137, 142, 137, 136, 140, 136, 139, 145, 141, 134, 124, 151, 126, 133, 132, 136, 148, 130, 140, 144, 147, 145, 129, 147, 136, 145, 141, 136, 130, 139, 137, 136, 140, 144, 143, 156, 146, 137, 142, 138, 138, 138, 133, 129, 142, 139, 141, 145, 148, 136, 155, 133, 130, 130, 144, 136, 144, 167, 153, 139, 126, 135, 148, 136, 139, 143, 149, 137, 140, 135, 145, 133, 142, 133, 126, 148, 131, 128, 127, 138, 138, 136, 137, 128, 151, 140, 139, 144, 144, 128, 128, 140, 139, 134, 142, 138, 143, 146, 147, 136, 135, 139, 132, 134, 131, 132, 144, 133, 143, 138, 144, 137, 137, 127, 135, 135, 136, 138, 139, 137, 132, 130, 134, 127, 132, 132, 152, 137, 138, 136, 129, 144, 140, 131, 158, 143, 139, 131, 133, 147, 143, 143, 133, 137, 141, 140, 141, 138, 137, 152, 143, 134, 123, 147, 141, 144, 142, 147, 138, 140, 138, 137, 130, 139, 141, 133, 137, 134, 135, 142, 129, 139, 133, 145, 138, 133, 150, 147, 135, 134, 135, 138, 132, 133, 153, 137, 141, 147, 144, 136, 139, 144, 135, 139, 142, 146, 142, 140, 148, 128, 138, 146, 137, 126, 132, 140, 133, 140, 134, 148, 142, 134, 138, 135, 141, 133, 146, 143, 144, 132, 139, 141, 142, 132, 138, 145, 148, 141, 129, 140, 138, 137, 134, 137, 141, 130, 129, 142, 139, 136, 139, 138, 136, 136, 142, 144, 129, 133, 129, 140, 128, 134, 141, 145, 126, 151, 134, 134, 142, 130, 142, 137, 152, 137, 133, 138, 145, 138, 141, 147, 124, 139, 130, 138, 138, 131, 134, 141, 149, 141, 140, 144, 132, 148, 140, 103, 123, 134, 144, 151, 132, 142, 141, 130, 135, 137, 138, 139, 133, 134, 146, 135, 143, 132, 145, 132, 145, 139, 138, 135, 136, 144, 139, 140, 136, 130, 146, 139, 143, 149, 132, 133, 130, 140, 135, 129, 141, 132, 136, 144, 144, 137, 136, 139, 148, 138, 146, 148, 130, 132, 139, 138, 143, 146, 138, 143, 139, 132, 127, 148, 143, 138, 128, 143, 151, 138, 157, 142, 133, 142, 129, 138, 142, 146, 147, 145, 145, 129, 136, 141, 152, 138, 142, 148, 138, 140, 137, 133, 145, 133, 140, 143, 140, 140, 137, 134, 134, 138, 138, 143, 138, 137, 139, 141, 138, 134, 136, 140, 140, 144, 146, 138, 135, 120, 135, 135, 150, 130, 148, 145, 145, 136, 137, 138, 141, 134, 142, 136, 140, 139, 145, 138, 142, 146, 135, 140, 136, 146, 140, 135, 135, 134, 141, 144, 137, 142, 142, 144, 139, 143, 151, 140, 131, 138, 145, 138, 142, 146, 136, 145, 134, 132, 139, 130, 140, 159, 147, 141, 134, 135, 139, 141, 136, 142, 131, 136, 141, 139, 140, 140, 131, 129, 138, 140, 139, 136, 135, 139, 145, 144, 151, 137, 135, 141, 135, 144, 139, 136, 146, 133, 138, 137, 134, 140, 136, 134, 142, 129, 137, 146, 131, 146, 141, 139, 135, 147, 141, 136, 140, 136, 139, 142, 149, 135, 143, 146, 141, 132, 150, 144, 139, 130, 138, 139, 139, 138, 137, 133, 135, 141, 135, 141, 141, 127, 136, 143, 135, 142, 143, 140, 134, 147, 135, 137, 140, 131, 135, 134, 139, 132, 139, 144, 137, 145, 143, 136, 132, 138, 134, 141, 146, 140, 140, 135, 135, 138, 134, 134, 141, 140, 139, 133, 140, 143, 138, 140, 132, 141, 137, 148, 136, 150, 148, 139, 143, 132, 138, 146, 139, 141, 143, 138, 148, 148, 136, 142, 135, 144, 141, 137, 135, 138, 132, 138, 141, 143, 139, 135, 135, 146, 140, 142, 136, 142, 143, 147, 130, 134, 145, 132, 136, 152, 134, 148, 140, 144, 137, 143, 138, 134, 146, 141, 142, 140, 136, 136, 136, 132, 130, 134, 136, 144, 136, 133, 141, 137, 134, 141, 133, 138, 140, 141, 149, 137, 136, 145, 128, 134, 138, 136, 147, 137, 146, 142, 143, 139, 146, 138, 134, 141, 146, 147, 144, 132, 141, 143, 135, 134, 138, 131, 138, 132, 143, 143, 143, 139, 132, 140, 139, 139, 148, 138, 143, 138, 136, 135, 146, 145, 137, 128, 133, 143, 140, 142, 141, 133, 132, 137, 142, 136, 134, 147, 146, 136, 143, 143, 135, 137, 137, 144, 138, 127, 148, 140, 138, 137, 139, 135, 129, 136, 142, 135, 146, 141, 143, 144, 145, 138, 140, 138, 141, 136, 138, 140, 145, 148, 141, 138, 137, 145, 143, 132, 135, 144, 142, 132, 139, 138, 130, 140, 139, 139, 141, 126, 133, 135, 133, 131, 140, 138, 135, 133, 139, 138, 145, 134, 140, 136, 142, 136, 136, 144, 142, 129, 136, 145, 140, 136, 136, 144, 140, 132, 141, 139, 130, 137, 139, 132, 131, 132, 145, 138, 139, 130, 136, 139, 144, 143, 137, 137, 137, 160, 132, 141, 137, 137, 144, 136, 137, 146, 139, 140, 133, 142, 136, 140, 140, 133, 139, 139, 132, 141, 138, 139, 139, 143, 140, 144, 141, 139, 138, 139, 138, 134, 138, 144, 133, 143, 134, 148, 142, 135, 139, 144, 135, 131, 142, 133, 136, 138, 136, 143, 143, 130, 133, 131, 133, 142, 146, 138, 141, 145, 134, 140, 133, 140, 138, 136, 136, 148, 136, 134, 146, 133, 138, 137, 141, 133, 142, 148, 134, 138, 137, 133, 148, 140, 143, 139, 150, 125, 145, 138, 137, 140, 145, 141, 136, 134, 137, 147, 143, 136, 136, 139, 146, 132, 132, 134, 150, 130, 144, 133, 133, 141, 138, 128, 146, 136, 155, 136, 145, 144, 131, 135, 154, 135, 141, 139, 142, 142, 130, 142, 144, 139, 129, 126, 140, 136, 143, 120, 130, 133, 147, 143, 137, 133, 133, 136, 140, 132, 130, 137, 143, 132, 127, 139, 154, 136, 139, 124, 145, 137, 143, 149, 137, 136, 138, 141, 145, 148, 141, 141, 133, 138, 131, 141, 144, 128, 135, 150, 145, 137, 136, 136, 146, 136, 141, 142, 127, 144, 147, 127, 132, 140, 146, 142, 140, 138, 136, 137, 134, 149, 139, 138, 140, 141, 130, 139, 140, 144, 141, 132, 133, 140, 135, 145, 137, 137, 134, 138, 141, 135, 146, 149, 143, 134, 151, 125, 140, 131, 139, 131, 145, 140, 143, 155, 156, 157, 135, 140, 146, 133, 141, 136, 131, 136, 129, 148, 145, 146, 142, 146, 131, 142, 148, 131, 134, 138, 148, 138, 150, 132, 131, 127, 148, 128, 141, 139, 136, 135, 142, 144, 140, 145, 137, 136, 137, 149, 141, 135, 141, 140, 145, 126, 132, 133, 147, 136, 138, 136, 130, 134, 131, 137, 137, 139, 139, 138, 149, 137, 135, 143, 141, 136, 150, 135, 133, 144, 133, 129, 132, 147, 143, 136, 135, 132, 131, 138, 141, 136, 141, 146, 148, 135, 142, 143, 118, 131, 146, 138, 134, 142, 138, 138, 140, 131, 146, 141, 151, 129, 153, 146, 134, 135, 144, 137, 132, 146, 143, 134, 133, 140, 139, 127, 141, 136, 144, 142, 145, 135, 150, 142, 133, 139, 144, 138, 136, 144, 137, 139, 131, 143, 133, 131, 142, 138, 139, 142, 129, 141, 129, 139, 144, 141, 126, 135, 139, 141, 141, 133, 137, 152, 134, 140, 135, 145, 147, 144, 133, 136, 148, 131, 148, 134, 137, 137, 143, 137, 130, 129, 131, 136, 144, 144, 140, 136, 135, 135, 134, 146, 136, 144, 156, 131, 127, 137, 136, 137, 144, 138, 135, 136, 139, 128, 133, 150, 133, 144, 138, 142, 131, 139, 138, 139, 138, 148, 143, 145, 137, 142, 146, 153, 143, 137, 138, 138, 136, 140, 151, 139, 138, 130, 136, 135, 139, 137, 130, 131, 141, 144, 140, 155, 148, 142, 140, 142, 138, 133, 140, 147, 145, 151, 141, 138, 137, 141, 146, 139, 145, 126, 136, 139, 148, 137, 137, 132, 144, 139, 127, 148, 146, 132, 135, 133, 139, 144, 136, 140, 141, 153, 135, 134, 128, 134, 131, 150, 151, 134, 142, 151, 153, 143, 145, 142, 155, 146, 143, 140, 145, 134, 142, 144, 140, 148, 138, 150, 127, 156, 136, 136, 149, 127, 139, 133, 147, 132, 139, 136, 136, 138, 132, 144, 143, 139, 129, 136, 123, 140, 140, 139, 145, 129, 161, 138, 141, 142, 142, 143, 148, 144, 144, 136, 136, 133, 136, 134, 140, 140, 138, 139, 134, 142, 156, 142, 139, 136, 142, 136, 134, 132, 138, 138, 145, 145, 146, 135, 151, 140, 132, 138, 140, 123, 145, 144, 146, 136, 151, 144, 136, 134, 129, 145, 142, 133, 134, 145, 139, 157, 132, 135, 137, 144, 140, 140, 137, 145, 151, 145, 151, 142, 131, 137, 130, 136, 130, 137, 139, 123, 150, 139, 145, 137, 135, 139, 125, 135, 125, 136, 141, 137, 143, 141, 139, 132, 145, 135, 117, 138, 132, 144, 135, 133, 138, 134, 139, 133, 140, 133, 137, 134, 132, 149, 147, 146, 134, 144, 128, 141, 146, 131, 133, 142, 138, 137, 137, 141, 138, 142, 143, 151, 133, 140, 139, 141, 132, 141, 137, 136, 135, 137, 126, 138, 134, 141, 123, 141, 142, 129, 127, 145, 151, 153, 136, 136, 140, 145, 140, 148, 136, 134, 138, 148, 130, 145, 145, 144, 140, 136, 129, 142, 134, 143, 137, 149, 144, 130, 133, 135, 141, 129, 133, 135, 139, 140, 135, 141, 140, 125, 128, 142, 144, 131, 149, 144, 137, 136, 156, 136, 139, 131, 135, 132, 144, 135, 143, 146, 134, 134, 146, 145, 142, 140, 140, 131, 147, 133, 144, 140, 146, 137, 139, 143, 144, 140, 140, 142, 135, 133, 138, 145, 146, 146, 138, 137, 135, 129, 142, 147, 135, 144, 140, 140, 137, 135, 144, 138, 139, 133, 143, 137, 143, 132, 139, 149, 140, 139, 134, 142, 134, 139, 142, 140, 134, 137, 147, 134, 129, 148, 132, 142, 136, 129, 135, 138, 136, 129, 145, 132, 149, 139, 133, 137, 142, 134, 132, 141, 136, 132, 145, 147, 135, 143, 139, 137, 138, 136, 146, 147, 136, 130, 142, 145, 134, 141, 135, 137, 147, 141, 135, 127, 140, 157, 142, 149, 148, 119, 140, 135, 134, 133, 144, 138, 134, 138, 142, 137, 124, 138, 138, 142, 129, 136, 137, 142, 139, 147, 134, 135, 145, 133, 142, 130, 127, 123, 135, 132, 135, 140, 137, 138, 144, 139, 136, 146, 138, 152, 145, 146, 136, 137, 137, 128, 142, 148, 145, 134, 143, 136, 142, 140, 135, 131, 142, 131, 143, 135, 132, 154, 135, 128, 144, 138, 135, 138, 135, 144, 135, 141, 140, 131, 137, 140, 144, 131, 139, 142, 143, 139, 141, 143, 145, 138, 136, 137, 135, 141, 126, 140, 136, 134, 138, 126, 146, 131, 139, 133, 150, 138, 144, 136, 139, 145, 137, 143, 142, 133, 151, 146, 141, 129, 137, 140, 130, 140, 139, 142, 136, 155, 128, 132, 137, 132, 143, 141, 143, 141, 135, 145, 133, 154, 136, 140, 140, 145, 144, 143, 144, 144, 140, 140, 136, 134, 139, 139, 139, 141, 141, 135, 137, 132, 130, 161, 139, 138, 142, 135, 147, 144, 132, 132, 146, 141, 134, 136, 159, 137, 123, 131, 137, 140, 134, 138, 143, 137, 131, 135, 135, 134, 129, 134, 148, 138, 140, 140, 146, 146, 145, 139, 133, 146, 136, 137, 142, 145, 131, 142, 137, 125, 131, 143, 144, 146, 136, 141, 136, 138, 147, 136, 139, 137, 133, 139, 144, 141, 153, 141, 134, 136, 140, 141, 140, 135, 141, 128, 138, 139, 131, 137, 144, 142, 141, 124, 140, 135, 141, 137, 139, 135, 147, 141, 141, 142, 143, 145, 138, 139, 138, 137, 142, 133, 130, 137, 156, 136, 143, 131, 143, 135, 142, 137, 141, 142, 134, 139, 148, 139, 138, 146, 143, 141, 132, 145, 145, 141, 137, 137, 146, 137, 134, 145, 152, 145, 134, 129, 141, 136, 126, 143, 131, 137, 135, 134, 130, 131, 147, 132, 143, 136, 137, 147, 134, 135, 141, 124, 139, 141, 146, 137, 135, 147, 139, 123, 148, 148, 143, 127, 133, 143, 132, 143, 132, 128, 137, 134, 133, 127, 142, 138, 138, 126, 145, 131, 138, 130, 143, 149, 144, 142, 148, 136, 139, 151, 153, 144, 136, 134, 129, 138, 131, 133, 132, 137, 130, 132, 132, 134, 135, 132, 130, 142, 137, 136, 136, 137, 133, 134, 135, 139, 144, 149, 141, 136, 139, 130, 136, 146, 148, 137, 138, 139, 136, 137, 140, 138, 141, 136, 136, 140, 134, 135, 140, 144, 145, 134, 126, 129, 125, 133, 149, 140, 135, 125, 137, 144, 142, 141, 130, 137, 137, 139, 153, 135, 148, 136, 136, 148, 142, 143, 139, 138, 130, 132, 137, 137, 135, 127, 137, 128, 144, 144, 137, 144, 141, 135, 143, 136, 134, 137, 138, 133, 139, 138, 146, 126, 137, 138, 137, 137, 133, 135, 136, 137, 141, 132, 152, 129, 141, 137, 132, 144, 144, 134, 139, 143, 143, 148, 141, 142, 139, 136, 142, 135, 143, 134, 134, 146, 133, 134, 154, 136, 143, 132, 128, 140, 137, 135, 140, 132, 133, 143, 145, 133, 149, 134, 141, 135, 140, 132, 138, 141, 135, 138, 146, 138, 142, 131, 140, 140, 145, 135, 132, 153, 149, 141, 141, 140, 145, 140, 127, 144, 139, 137, 142, 137, 141, 134, 128, 144, 138, 130, 144, 138, 134, 144, 130, 134, 135, 135, 133, 146, 136, 129, 136, 147, 146, 144, 142, 148, 138, 130, 136, 131, 137, 142, 134, 134, 139, 139, 144, 133, 135, 138, 139, 135, 131, 136, 140, 149, 137, 138, 143, 136, 139, 140, 140, 139, 131, 136, 142, 141, 141, 137, 130, 134, 141, 134, 142, 122, 145, 144, 142, 146, 142, 139, 137, 140, 137, 136, 132, 138, 145, 139, 134, 137, 142, 129, 139, 145, 139, 135, 142, 132, 145, 148, 152, 142, 136, 141, 142, 146, 144, 131, 133, 136, 139, 139, 132, 142, 136, 132, 136, 147, 133, 131, 148, 134, 140, 140, 131, 137, 141, 138, 135, 141, 140, 138, 145, 139, 133, 143, 144, 142, 132, 136, 145, 135, 148, 137, 134, 146, 141, 134, 132, 134, 139, 134, 143, 135, 144, 140, 133, 128, 140, 138, 138, 139, 139, 135, 140, 139, 135, 149, 135, 138, 144, 137, 142, 132, 136, 132, 141, 144, 143, 142, 133, 132, 148, 141, 133, 138, 137, 140, 136, 137, 145, 153, 141, 135, 133, 143, 133, 140, 137, 142, 138, 146, 142, 139, 136, 136, 135, 137, 144, 143, 134, 138, 131, 132, 131, 129, 137, 134, 141, 135, 143, 135, 143, 143, 146, 145, 144, 143, 130, 144, 129, 133, 133, 142, 138, 136, 139, 130, 132, 141, 121, 142, 138, 132, 138, 139, 139, 137, 132, 142, 146, 138, 139, 142, 141, 135, 140, 132, 141, 140, 142, 138, 138, 141, 133, 143, 146, 140, 133, 151, 139, 142, 133, 148, 135, 137, 138, 131, 143, 137, 147, 134, 136, 137, 137, 136, 130, 143, 138, 137, 137, 141, 133, 138, 146, 131, 140, 143, 154, 133, 139, 142, 141, 145, 135, 137, 133, 143, 137, 140, 134, 139, 133, 142, 139, 141, 134, 146, 131, 135, 142, 142, 132, 128, 135, 136, 141, 136, 145, 137, 142, 134, 143, 147, 142, 134, 144, 138, 141, 135, 137, 130, 143, 145, 140, 145, 129, 136, 136, 141, 134, 130, 146, 131, 129, 140, 139, 124, 135, 133, 135, 136, 146, 141, 137, 142, 138, 135, 145, 137, 151, 140, 139, 135, 138, 139, 137, 141, 136, 140, 146, 146, 140, 138, 135, 142, 132, 140, 138, 141, 143, 148, 142, 125, 142, 145, 143, 139, 148, 137, 140, 127, 144, 131, 136, 139, 138, 141, 141, 137, 125, 147, 139, 145, 141, 137, 144, 137, 136, 139, 136, 149, 136, 149, 137, 135, 139, 143, 134, 135, 130, 141, 137, 142, 140, 141, 145, 137, 132, 141, 137, 137, 144, 135, 141, 140, 136, 138, 150, 136, 134, 142, 140, 149, 135, 139, 139, 135, 136, 131, 137, 140, 133, 133, 140, 136, 143, 145, 141, 134, 138, 139, 142, 137, 140, 138, 136, 135, 137, 140, 150, 140, 137, 140, 128, 135, 140, 140, 133, 139, 148, 143, 136, 144, 139, 133, 139, 132, 136, 135, 148, 141, 154, 141, 138, 136, 142, 142, 138, 147, 139, 146, 145, 138, 133, 137, 132, 138, 141, 136, 142, 137, 153, 143, 132, 144, 133, 140, 138, 139, 134, 142, 145, 136, 132, 145, 137, 139, 142, 141, 132, 133, 131, 132, 132, 146, 145, 156, 134, 133, 137, 134, 147, 137, 142, 134, 135, 136, 145, 135, 150, 137, 141, 145, 142, 140, 135, 139, 141, 137, 148, 127, 145, 136, 145, 136, 131, 137, 144, 143, 139, 134, 140, 143, 134, 140, 134, 141, 133, 138, 141, 136, 135, 139, 138, 131, 143, 143, 124, 134, 137, 133, 144, 135, 141, 130, 140, 129, 140, 144, 144, 129, 140, 141, 138, 131, 142, 139, 136, 135, 134, 140, 137, 135, 133, 145, 136, 136, 137, 144, 139, 139, 137, 130, 144, 134, 141, 143, 137, 140, 141, 142, 137, 138, 140, 143, 138, 147, 141, 136, 143, 137, 138, 138, 140, 136, 134, 136, 144, 138, 154, 151, 144, 147, 139, 142, 130, 140, 145, 130, 132, 141, 138, 151, 151, 140, 137, 135, 148, 138, 143, 135, 142, 141, 135, 139, 129, 138, 142, 129, 142, 136, 133, 138, 142, 137, 148, 138, 143, 136, 132, 149, 140, 143, 136, 135, 141, 149, 130, 137, 136, 138, 132, 134, 141, 135, 148, 147, 139, 156, 146, 142, 137, 138, 138, 138, 130, 131, 140, 139, 136, 142, 135, 138, 139, 146, 133, 145, 143, 152, 137, 144, 139, 143, 144, 137, 143, 142, 138, 139, 137, 139, 147, 146, 139, 145, 140, 135, 141, 145, 140, 141, 136, 139, 139, 142, 143, 137, 143, 141, 143, 142, 136, 141, 141, 141, 135, 139, 135, 142, 139, 149, 138, 137, 136, 143, 143, 133, 140, 133, 135, 144, 137, 137, 135, 144, 140, 146, 136, 139, 141, 137, 149, 142, 136, 140, 140, 141, 140, 138, 143, 138, 146, 141, 140, 144, 137, 132, 131, 137, 138, 139, 139, 150, 144, 128, 145, 146, 135, 144, 136, 134, 145, 137, 142, 138, 140, 144, 137, 144, 144, 138, 140, 140, 146, 142, 138, 138, 143, 143, 142, 148, 136, 130, 142, 145, 140, 129, 136, 135, 144, 139, 142, 139, 138, 141, 142, 139, 137, 136, 140, 138, 136, 136, 136, 140, 142, 136, 143, 141, 142, 138, 142, 142, 142, 138, 144, 129, 139, 143, 134, 133, 137, 141, 142, 136, 141, 142, 143, 135, 140, 140, 144, 142, 138, 133, 142, 133, 143, 132, 143, 131, 143, 140, 133, 136, 139, 147, 141, 140, 144, 136, 143, 134, 140, 141, 137, 142, 142, 141, 135, 146, 145, 139, 145, 132, 149, 140, 141, 139, 141, 139, 139, 138, 136, 138, 138, 140, 142, 144, 139, 139, 136, 137, 137, 142, 147, 131, 128, 159, 144, 137, 138, 142, 146, 141, 137, 139, 142, 141, 138, 139, 136, 130, 143, 137, 144, 138, 147, 136, 144, 132, 143, 142, 142, 138, 140, 144, 133, 145, 130, 144, 142, 146, 134, 140, 144, 138, 138, 135, 137, 136, 133, 144, 140, 135, 130, 135, 135, 139, 133, 141, 141, 144, 147, 140, 142, 137, 138, 140, 148, 140, 133, 132, 139, 141, 137, 131, 143, 144, 132, 141, 132, 145, 139, 138, 147, 138, 129, 154, 136, 134, 143, 143, 144, 136, 144, 139, 134, 138, 148, 146, 132, 141, 128, 136, 141, 138, 136, 142, 133, 137, 143, 145, 144, 142, 140, 144, 141, 147, 137, 140, 138, 135, 139, 139, 138, 137, 151, 144, 135, 143, 146, 138, 138, 143, 150, 138, 139, 140, 148, 131, 138, 138, 135, 137, 146, 137, 133, 146, 136, 124, 136, 142, 139, 138, 146, 136, 140, 147, 139, 136, 143, 147, 144, 143, 144, 137, 139, 145, 135, 139, 134, 135, 141, 148, 133, 135, 140, 142, 141, 139, 140, 139, 138, 136, 144, 133, 133, 140, 139, 140, 140, 139, 136, 136, 140, 140, 144, 134, 144, 139, 143, 143, 134, 140, 131, 142, 139, 139, 136, 140, 136, 132, 140, 144, 142, 142, 140, 138, 141, 147, 143, 130, 137, 143, 142, 136, 148, 138, 134, 139, 148, 137, 151, 142, 136, 120, 142, 145, 145, 143, 138, 136, 130, 145, 141, 138, 137, 146, 142, 140, 136, 137, 137, 134, 137, 142, 131, 143, 138, 137, 146, 143, 135, 133, 142, 134, 139, 141, 133, 137, 141, 143, 139, 140, 138, 140, 133, 135, 142, 143, 136, 142, 148, 138, 141, 136, 150, 137, 141, 131, 136, 140, 136, 145, 142, 138, 135, 132, 138, 137, 141, 139, 134, 129, 131, 135, 148, 138, 148, 138, 138, 132, 145, 145, 130, 146, 138, 136, 138, 132, 149, 138, 142, 133, 144, 135, 141, 140, 139, 136, 139, 133, 145, 150, 139, 139, 141, 143, 143, 142, 145, 143, 144, 134, 136, 147, 139, 135, 139, 137, 140, 144, 141, 128, 142, 139, 135, 141, 128, 142, 136, 141, 139, 140, 139, 140, 142, 138, 142, 132, 125, 133, 139, 132, 143, 142, 124, 131, 131, 141, 135, 128, 136, 132, 133, 132, 132, 137, 127, 140, 139, 143, 123, 145, 136, 125, 134, 130, 142, 133, 139, 157, 142, 142, 150, 134, 136, 142, 135, 133, 138, 146, 132, 144, 134, 142, 137, 137, 137, 136, 136, 134, 135, 145, 136, 142, 129, 127, 125, 125, 127, 144, 144, 138, 146, 145, 143, 139, 139, 145, 146, 133, 144, 145, 145, 141, 140, 142, 136, 135, 134, 130, 137, 128, 138, 144, 143, 139, 136, 130, 147, 150, 132, 136, 138, 148, 136, 145, 147, 138, 133, 135, 137, 137, 142, 137, 152, 137, 136, 143, 137, 138, 130, 146, 135, 144, 138, 140, 136, 135, 140, 137, 140, 138, 137, 144, 138, 138, 134, 136, 135, 131, 147, 134, 139, 157, 145, 143, 137, 141, 139, 147, 139, 128, 140, 128, 147, 147, 148, 145, 130, 147, 140, 132, 138, 137, 152, 148, 149, 138, 144, 136, 131, 124, 146, 139, 137, 148, 136, 136, 145, 132, 131, 143, 141, 145, 128, 140, 127, 125, 138, 141, 136, 148, 141, 136, 125, 140, 136, 144, 141, 137, 147, 147, 135, 141, 142, 140, 127, 134, 137, 136, 133, 137, 144, 133, 135, 145, 140, 139, 144, 150, 142, 134, 138, 141, 139, 140, 144, 140, 141, 135, 139, 141, 123, 130, 145, 143, 143, 144, 140, 138, 144, 137, 131, 130, 146, 134, 131, 146, 135, 132, 143, 136, 138, 129, 140, 148, 134, 129, 143, 141, 134, 133, 140, 140, 150, 140, 137, 141, 144, 135, 130, 136, 144, 141, 137, 138, 137, 139, 139, 144, 131, 137, 129, 141, 138, 145, 138, 141, 136, 142, 144, 136, 135, 135, 145, 142, 135, 136, 138, 146, 132, 144, 140, 143, 140, 127, 144, 133, 139, 136, 135, 138, 143, 146, 136, 139, 137, 133, 140, 147, 145, 136, 141, 134, 142, 127, 143, 142, 137, 136, 144, 136, 133, 134, 138, 142, 142, 147, 136, 128, 138, 139, 140, 131, 133, 143, 135, 138, 141, 161, 141, 141, 138, 139, 130, 151, 141, 136, 124, 134, 132, 136, 137, 138, 144, 130, 139, 144, 144, 140, 131, 134, 125, 135, 146, 138, 157, 139, 148, 131, 139, 140, 139, 127, 133, 137, 139, 139, 142, 126, 130, 148, 152, 135, 142, 133, 125, 146, 129, 134, 132, 135, 141, 132, 145, 135, 147, 133, 141, 131, 135, 143, 139, 140, 141, 131, 136, 148, 137, 139, 138, 153, 151, 135, 139, 132, 140, 131, 135, 142, 142, 146, 139, 147, 141, 139, 127, 131, 150, 129, 138, 129, 138, 129, 145, 136, 149, 141, 137, 133, 138, 127, 141, 149, 138, 131, 141, 137, 131, 146, 133, 147, 142, 140, 136, 142, 132, 137, 135, 148, 138, 130, 147, 141, 141, 136, 148, 137, 133, 137, 142, 136, 128, 139, 138, 131, 139, 136, 131, 141, 135, 139, 143, 139, 138, 142, 141, 141, 136, 134, 135, 135, 137, 136, 137, 142, 141, 140, 136, 144, 137, 136, 139, 139, 137, 140, 140, 145, 125, 142, 145, 139, 143, 143, 141, 135, 128, 141, 144, 137, 142, 130, 137, 136, 139, 129, 140, 140, 137, 138, 143, 134, 144, 138, 138, 148, 143, 141, 126, 136, 151, 144, 138, 138, 145, 138, 141, 136, 140, 140, 135, 144, 134, 126, 143, 141, 135, 133, 138, 141, 133, 147, 135, 144, 147, 136, 133, 151, 143, 142, 132, 136, 143, 141, 138, 145, 144, 137, 137, 132, 143, 138, 131, 143, 138, 145, 133, 140, 137, 139, 142, 134, 133, 146, 135, 142, 139, 140, 141, 138, 143, 136, 139, 142, 139, 146, 130, 135, 140, 147, 147, 140, 134, 128, 142, 150, 137, 136, 138, 147, 139, 133, 137, 139, 134, 142, 142, 136, 135, 138, 134, 137, 126, 134, 141, 148, 132, 134, 137, 137, 139, 142, 135, 134, 142, 147, 144, 137, 149, 134, 132, 137, 145, 133, 141, 137, 146, 138, 128, 146, 142, 134, 139, 143, 126, 138, 136, 134, 140, 135, 136, 134, 141, 144, 133, 135, 136, 136, 122, 145, 147, 135, 143, 138, 135, 143, 144, 143, 145, 138, 137, 142, 142, 136, 137, 138, 145, 122, 134, 139, 140, 132, 142, 132, 138, 137, 145, 144, 130, 141, 142, 131, 125, 135, 135, 157, 142, 141, 141, 137, 149, 130, 136, 139, 131, 139, 145, 136, 147, 141, 147, 150, 136, 137, 141, 133, 141, 142, 137, 141, 140, 132, 142, 139, 133, 133, 136, 134, 144, 131, 138, 142, 142, 142, 141, 141, 140, 142, 140, 131, 140, 139, 144, 146, 144, 148, 131, 131, 137, 131, 138, 140, 131, 140, 144, 151, 144, 135, 142, 141, 136, 139, 145, 135, 144, 129, 127, 137, 142, 139, 134, 134, 143, 139, 139, 143, 138, 142, 135, 133, 137, 137, 140, 142, 138, 137, 139, 143, 153, 154, 135, 137, 147, 143, 142, 143, 144, 137, 141, 137, 140, 142, 143, 142, 155, 136, 134, 140, 140, 121, 141, 143, 136, 136, 138, 144, 137, 135, 144, 133, 139, 138, 138, 139, 150, 139, 132, 135, 134, 145, 138, 139, 144, 135, 135, 138, 141, 135, 145, 154, 140, 133, 146, 135, 137, 134, 131, 131, 135, 141, 134, 144, 151, 136, 138, 142, 139, 139, 131, 140, 143, 141, 137, 132, 133, 145, 134, 133, 136, 139, 132, 134, 137, 135, 141, 130, 143, 144, 141, 135, 130, 141, 135, 136, 143, 141, 129, 132, 141, 136, 139, 142, 142, 136, 140, 130, 136, 136, 140, 141, 139, 134, 146, 136, 140, 137, 135, 142, 127, 141, 140, 134, 135, 140, 136, 138, 142, 132, 143, 137, 137, 135, 143, 147, 141, 140, 136, 140, 142, 144, 137, 141, 140, 136, 141, 142, 146, 134, 133, 138, 139, 137, 138, 142, 140, 143, 135, 140, 147, 143, 141, 132, 136, 137, 141, 137, 145, 137, 146, 137, 140, 144, 137, 137, 136, 134, 135, 138, 147, 139, 141, 141, 147, 138, 142, 137, 132, 135, 137, 135, 138, 141, 137, 141, 142, 134, 145, 138, 142, 138, 136, 144, 136, 132, 136, 136, 139, 141, 137, 129, 137, 148, 142, 137, 133, 136, 140, 135, 143, 138, 138, 140, 135, 133, 138, 138, 138, 135, 143, 137, 129, 152, 142, 135, 132, 138, 141, 139, 132, 132, 137, 142, 148, 137, 136, 137, 140, 143, 137, 141, 142, 135, 135, 137, 147, 136, 145, 140, 133, 139, 140, 142, 130, 137, 141, 137, 138, 141, 137, 138, 134, 141, 128, 129, 136, 134, 140, 135, 137, 136, 137, 131, 142, 140, 133, 137, 144, 138, 140, 133, 137, 143, 133, 135, 136, 140, 141, 143, 141, 142, 140, 139, 138, 130, 137, 132, 137, 143, 140, 137, 130, 137, 148, 146, 133, 131, 144, 138, 146, 142, 138, 139, 142, 144, 134, 134, 144, 135, 140, 139, 140, 134, 137, 132, 141, 148, 136, 143, 137, 127, 131, 135, 142, 137, 143, 137, 133, 142, 138, 136, 144, 138, 140, 135, 138, 141, 140, 133, 145, 136, 136, 144, 141, 133, 140, 142, 137, 137, 145, 147, 135, 130, 141, 140, 139, 141, 140, 141, 137, 136, 138, 144, 137, 140, 139, 140, 135, 140, 136, 134, 135, 139, 137, 141, 141, 134, 147, 138, 136, 140, 129, 139, 140, 140, 135, 136, 137, 141, 143, 138, 143, 130, 139, 135, 140, 145, 139, 140, 136, 139, 143, 132, 138, 134, 141, 137, 144, 139, 140, 140, 136, 130, 139, 143, 139, 131, 139, 146, 134, 143, 134, 141, 138, 141, 136, 141, 140, 143, 141, 150, 137, 134, 140, 139, 132, 145, 138, 141, 145, 131, 132, 137, 141, 135, 137, 139, 136, 134, 136, 140, 145, 141, 141, 136, 139, 136, 135, 141, 138, 136, 140, 141, 152, 133, 134, 137, 143, 141, 140, 138, 141, 141, 143, 142, 134, 138, 134, 136, 139, 141, 135, 140, 145, 144, 140, 140, 141, 136, 138, 140, 139, 135, 143, 141, 138, 144, 140, 135, 131, 138, 136, 134, 134, 150, 133, 145, 140, 134, 143, 140, 132, 139, 136, 134, 137, 143, 139, 143, 141, 137, 142, 146, 146, 144, 137, 128, 138, 137, 140, 130, 144, 141, 137, 132, 139, 139, 136, 141, 138, 135, 144, 145, 141, 133, 141, 144, 146, 147, 140, 135, 136, 142, 141, 143, 143, 136, 140, 138, 145, 138, 136, 139, 143, 143, 137, 141, 144, 139, 137, 137, 132, 138, 140, 138, 131, 137, 143, 139, 135, 142, 141, 143, 145, 142, 138, 142, 136, 145, 140, 134, 139, 136, 158, 136, 134, 142, 137, 136, 144, 143, 136, 138, 131, 141, 142, 134, 140, 137, 135, 135, 134, 142, 141, 141, 144, 146, 139, 138, 131, 136, 132, 135, 134, 134, 139, 143, 139, 130, 140, 131, 134, 140, 138, 125, 134, 148, 137, 138, 140, 130, 138, 137, 135, 136, 145, 137, 135, 143, 152, 143, 136, 148, 141, 140, 132, 137, 131, 137, 143, 138, 141, 143, 137, 137, 142, 124, 135, 146, 137, 136, 141, 135, 137, 140, 142, 143, 140, 144, 142, 140, 150, 139, 138, 140, 142, 140, 133, 134, 138, 135, 137, 137, 137, 135, 135, 142, 141, 133, 131, 139, 145, 134, 139, 140, 141, 139, 139, 136, 143, 134, 142, 141, 138, 144, 133, 145, 135, 139, 140, 133, 133, 139, 135, 140, 144, 139, 138, 134, 142, 141, 132, 143, 133, 136, 142, 146, 137, 137, 144, 141, 136, 137, 143, 135, 143, 140, 128, 137, 138, 134, 135, 142, 143, 139, 132, 138, 144, 141, 142, 143, 137, 140, 137, 144, 150, 139, 131, 134, 137, 140, 140, 143, 142, 146, 141, 139, 140, 144, 147, 137, 137, 147, 136, 137, 130, 133, 140, 141, 137, 139, 141, 137, 135, 137, 135, 143, 138, 150, 137, 127, 135, 141, 137, 141, 148, 134, 142, 146, 128, 138, 143, 133, 131, 133, 132, 144, 141, 130, 133, 137, 145, 144, 138, 141, 135, 128, 138, 135, 139, 129, 136, 145, 138, 137, 136, 143, 138, 138, 137, 146, 135, 140, 140, 131, 142, 141, 133, 138, 143, 141, 140, 139, 136, 135, 142, 145, 133, 145, 138, 131, 148, 135, 139, 147, 134, 144, 142, 143, 140, 141, 145, 132, 142, 134, 139, 139, 141, 138, 135, 144, 141, 142, 137, 135, 143, 134, 146, 135, 147, 139, 138, 136, 136, 143, 144, 138, 134, 134, 137, 134, 130, 138, 134, 141, 140, 135, 141, 128, 134, 150, 140, 140, 143, 143, 135, 138, 145, 140, 136, 144, 133, 142, 131, 146, 139, 144, 135, 135, 134, 142, 137, 144, 151, 142, 135, 135, 137, 141, 136, 149, 135, 119, 143, 143, 130, 132, 133, 135, 141, 142, 140, 141, 142, 139, 144, 132, 137, 142, 142, 132, 145, 139, 139, 141, 130, 136, 149, 133, 134, 143, 134, 139, 142, 138, 141, 142, 141, 141, 144, 143, 146, 138, 142, 137, 141, 138, 145, 133, 139, 141, 147, 138, 144, 138, 145, 139, 138, 141, 134, 133, 140, 127, 140, 143, 139, 135, 135, 134, 133, 144, 132, 134, 132, 139, 135, 145, 143, 142, 139, 148, 133, 141, 139, 138, 139, 134, 137, 145, 138, 143, 141, 148, 148, 129, 139, 135, 140, 138, 146, 138, 138, 138, 139, 132, 135, 140, 142, 137, 141, 140, 139, 133, 138, 143, 135, 139, 144, 141, 144, 133, 132, 138, 140, 135, 138, 134, 138, 139, 133, 140, 133, 139, 152, 135, 136, 133, 141, 135, 138, 141, 135, 145, 138, 140, 136, 134, 137, 142, 142, 141, 152, 138, 140, 132, 136, 137, 135, 136, 145, 133, 142, 137, 145, 135, 149, 140, 143, 137, 137, 131, 138, 136, 139, 142, 141, 140, 144, 144, 157, 143, 139, 136, 141, 139, 139, 146, 151, 137, 142, 141, 144, 139, 151, 150, 140, 132, 142, 135, 131, 140, 137, 136, 141, 142, 135, 135, 128, 133, 133, 131, 139, 138, 136, 140, 143, 140, 140, 136, 135, 143, 136, 140, 142, 133, 138, 134, 134, 136, 136, 149, 143, 151, 145, 136, 133, 132, 141, 133, 125, 153, 136, 153, 142, 146, 144, 140, 140, 140, 137, 142, 130, 143, 135, 130, 144, 133, 138, 135, 139, 147, 139, 143, 137, 137, 126, 131, 133, 139, 142, 137, 146, 137, 138, 149, 133, 138, 137, 146, 139, 142, 147, 139, 143, 127, 144, 139, 129, 139, 137, 135, 141, 131, 138, 132, 130, 141, 137, 143, 142, 134, 135, 136, 151, 142, 143, 134, 136, 140, 147, 137, 159, 130, 137, 143, 147, 127, 128, 145, 145, 128, 136, 131, 139, 140, 134, 139, 138, 141, 147, 148, 136, 141, 139, 141, 138, 137, 133, 137, 140, 136, 135, 134, 139, 135, 143, 139, 141, 142, 132, 143, 142, 148, 135, 134, 142, 142, 132, 150, 139, 134, 140, 137, 148, 148, 146, 141, 145, 137, 138, 135, 133, 137, 139, 145, 137, 148, 140, 139, 143, 141, 135, 133, 138, 126, 130, 126, 146, 134, 131, 138, 139, 147, 141, 133, 133, 142, 140, 141, 135, 136, 129, 142, 145, 146, 138, 138, 139, 134, 136, 143, 136, 149, 139, 143, 136, 137, 137, 135, 130, 143, 139, 138, 134, 149, 134, 143, 142, 134, 138, 138, 141, 135, 143, 133, 139, 135, 130, 137, 139, 146, 134, 130, 145, 132, 136, 139, 140, 137, 145, 149, 136, 140, 137, 135, 140, 134, 131, 146, 139, 146, 136, 132, 145, 141, 136, 144, 142, 135, 147, 138, 145, 136, 144, 132, 135, 144, 142, 140, 138, 141, 138, 146, 140, 147, 142, 138, 136, 143, 148, 139, 129, 135, 145, 144, 128, 142, 136, 140, 135, 141, 138, 142, 126, 142, 135, 141, 144, 142, 144, 132, 135, 135, 143, 142, 138, 141, 143, 152, 141, 148, 136, 144, 136, 146, 137, 138, 141, 143, 137, 144, 142, 133, 140, 150, 142, 142, 129, 136, 137, 144, 145, 138, 142, 155, 148, 133, 144, 148, 133, 137, 141, 139, 139, 135, 137, 143, 133, 132, 147, 132, 129, 137, 143, 145, 135, 133, 136, 145, 136, 138, 146, 144, 146, 131, 152, 141, 145, 133, 141, 138, 134, 140, 139, 133, 140, 144, 142, 136, 134, 138, 139, 138, 138, 138, 143, 140, 135, 144, 137, 143, 143, 137, 138, 132, 144, 132, 140, 136, 134, 143, 135, 135, 139, 136, 138, 134, 136, 139, 131, 144, 138, 139, 135, 128, 148, 139, 143, 142, 135, 138, 136, 142, 134, 136, 139, 128, 150, 142, 146, 136, 139, 144, 138, 144, 132, 134, 151, 130, 145, 138, 139, 144, 129, 130, 139, 143, 140, 127, 139, 136, 136, 147, 130, 145, 142, 137, 135, 142, 135, 134, 150, 131, 138, 130, 137, 143, 148, 137, 139, 139, 141, 137, 138, 141, 141, 133, 136, 138, 148, 146, 135, 135, 138, 136, 130, 139, 137, 143, 141, 142, 135, 133, 133, 137, 138, 131, 147, 126, 135, 138, 144, 139, 143, 136, 141, 132, 138, 143, 143, 140, 141, 144, 132, 143, 140, 137, 144, 143, 134, 142, 137, 143, 137, 138, 131, 139, 140, 131, 132, 142, 131, 144, 141, 139, 155, 133, 144, 138, 135, 139, 135, 156, 134, 135, 137, 147, 140, 144, 131, 125, 135, 147, 138, 133, 143, 146, 127, 136, 128, 138, 142, 138, 138, 140, 147, 141, 130, 144, 137, 137, 134, 144, 142, 137, 134, 137, 141, 132, 149, 137, 142, 135, 140, 143, 143, 129, 135, 141, 129, 139, 138, 139, 135, 131, 138, 138, 136, 135, 137, 143, 132, 145, 138, 129, 140, 138, 144, 128, 133, 132, 138, 141, 144, 136, 135, 137, 138, 133, 135, 125, 139, 139, 140, 134, 135, 139, 134, 147, 139, 138, 142, 135, 145, 138, 138, 135, 140, 142, 137, 138, 144, 127, 147, 147, 129, 132, 134, 139, 144, 135, 125, 131, 138, 137, 125, 134, 142, 139, 146, 146, 140, 126, 138, 140, 142, 144, 135, 137, 150, 134, 149, 135, 139, 136, 133, 126, 138, 156, 140, 135, 140, 143, 149, 145, 133, 131, 143, 140, 140, 135, 138, 146, 141, 146, 139, 137, 130, 132, 136, 140, 140, 136, 141, 147, 138, 135, 134, 146, 145, 132, 147, 138, 146, 124, 129, 140, 135, 139, 143, 143, 139, 131, 137, 137, 139, 136, 135, 138, 148, 134, 142, 137, 140, 141, 145, 142, 134, 134, 143, 147, 131, 142, 146, 129, 141, 134, 141, 151, 126, 145, 130, 133, 147, 139, 138, 139, 139, 138, 143, 141, 139, 141, 133, 136, 145, 140, 139, 139, 134, 139, 141, 141, 139, 136, 142, 133, 138, 137, 136, 133, 142, 140, 142, 138, 145, 140, 138, 136, 135, 143, 139, 134, 136, 132, 142, 141, 133, 139, 145, 136, 139, 142, 135, 145, 136, 139, 137, 147, 136, 143, 140, 144, 141, 134, 141, 144, 132, 134, 149, 140, 135, 140, 131, 121, 137, 137, 144, 138, 136, 130, 140, 130, 139, 134, 140, 141, 144, 140, 137, 137, 131, 139, 141, 142, 148, 135, 142, 137, 146, 125, 141, 137, 130, 136, 140, 140, 135, 145, 146, 129, 152, 138, 145, 137, 137, 134, 138, 136, 141, 145, 134, 140, 137, 139, 138, 130, 136, 134, 140, 144, 136, 138, 145, 128, 141, 142, 129, 133, 129, 139, 136, 132, 142, 131, 138, 128, 138, 141, 138, 141, 139, 140, 140, 137, 131, 136, 139, 138, 143, 137, 139, 132, 139, 142, 136, 145, 135, 138, 141, 148, 147, 137, 146, 134, 139, 140, 137, 138, 136, 137, 135, 134, 134, 151, 126, 144, 141, 137, 143, 140, 139, 139, 137, 146, 133, 141, 136, 134, 140, 136, 134, 135, 140, 135, 147, 133, 131, 138, 129, 150, 144, 123, 149, 137, 134, 145, 138, 142, 152, 129, 154, 149, 134, 136, 157, 134, 151, 139, 135, 130, 129, 143, 142, 137, 135, 138, 142, 129, 143, 137, 139, 139, 130, 147, 137, 139, 136, 147, 137, 141, 140, 142, 140, 143, 142, 138, 145, 133, 135, 145, 132, 136, 133, 138, 134, 144, 134, 141, 147, 148, 147, 151, 132, 128, 137, 138, 141, 134, 144, 138, 134, 142, 132, 149, 135, 149, 145, 135, 144, 135, 139, 123, 137, 131, 135, 132, 148, 140, 141, 141, 141, 143, 141, 134, 134, 138, 139, 128, 153, 136, 129, 131, 137, 146, 127, 137, 137, 137, 145, 130, 140, 142, 130, 140, 140, 145, 136, 139, 126, 133, 143, 143, 133, 136, 141, 132, 149, 135, 134, 135, 130, 141, 136, 144, 133, 136, 130, 140, 147, 142, 139, 134, 133, 139, 137, 141, 136, 144, 137, 135, 141, 132, 146, 132, 144, 147, 139, 136, 138, 133, 136, 156, 135, 143, 127, 140, 139, 138, 139, 139, 136, 143, 135, 142, 151, 138, 130, 139, 138, 139, 148, 144, 145, 134, 137, 141, 142, 135, 149, 145, 138, 137, 146, 139, 131, 142, 149, 131, 137, 132, 131, 150, 137, 123, 147, 141, 140, 147, 134, 135, 139, 142, 132, 138, 147, 136, 136, 130, 150, 153, 131, 137, 144, 140, 138, 132, 138, 135, 140, 141, 142, 134, 139, 144, 124, 134, 135, 143, 124, 151, 135, 133, 148, 134, 131, 136, 140, 138, 136, 144, 139, 153, 148, 155, 143, 141, 141, 127, 148, 142, 138, 139, 152, 138, 135, 146, 144, 140, 140, 135, 133, 133, 137, 142, 135, 140, 136, 139, 133, 136, 126, 138, 149, 142, 134, 141, 133, 136, 149, 151, 128, 140, 140, 140, 135, 136, 147, 148, 127, 140, 129, 136, 147, 136, 137, 148, 135, 135, 134, 136, 136, 121, 137, 136, 137, 144, 141, 130, 141, 137, 138, 139, 131, 146, 139, 138, 142, 127, 134, 130, 132, 142, 142, 139, 135, 141, 152, 142, 137, 127, 134, 139, 123, 147, 146, 136, 132, 138, 142, 136, 146, 134, 125, 140, 138, 138, 133, 136, 148, 131, 140, 133, 142, 137, 152, 142, 138, 155, 131, 147, 146, 150, 133, 143, 135, 139, 136, 144, 142, 140, 137, 140, 135, 142, 137, 139, 139, 137, 142, 135, 134, 148, 128, 144, 127, 134, 140, 142, 135, 132, 136, 147, 134, 141, 136, 123, 148, 139, 144, 141, 139, 146, 135, 136, 134, 133, 142, 137, 135, 146, 141, 141, 133, 136, 148, 135, 149, 142, 136, 140, 126, 146, 139, 137, 138, 140, 134, 142, 151, 141, 134, 139, 137, 142, 141, 137, 134, 142, 138, 139, 143, 139, 141, 151, 139, 150, 138, 143, 128, 139, 144, 149, 144, 154, 136, 147, 135, 139, 137, 147, 135, 142, 143, 145, 143, 140, 146, 131, 140, 140, 142, 139, 139, 133, 140, 143, 141, 135, 138, 136, 136, 156, 136, 135, 141, 138, 140, 149, 140, 132, 139, 139, 143, 132, 142, 146, 142, 153, 141, 145, 125, 138, 144, 135, 140, 144, 146, 136, 149, 131, 127, 133, 140, 133, 147, 133, 131, 133, 138, 133, 140, 145, 140, 149, 136, 132, 127, 144, 147, 135, 130, 138, 144, 134, 145, 134, 133, 134, 139, 136, 141, 127, 137, 140, 147, 140, 138, 141, 145, 128, 133, 127, 138, 132, 131, 137, 133, 137, 134, 135, 129, 141, 143, 147, 131, 140, 138, 132, 137, 140, 140, 133, 135, 140, 139, 142, 141, 145, 138, 144, 148, 144, 129, 138, 139, 138, 143, 137, 136, 141, 137, 143, 148, 134, 132, 141, 135, 135, 138, 142, 143, 142, 143, 139, 150, 133, 140, 136, 131, 141, 139, 143, 144, 145, 137, 140, 136, 138, 136, 145, 132, 149, 137, 142, 141, 139, 131, 139, 137, 132, 142, 135, 136, 143, 146, 141, 145, 129, 142, 138, 132, 143, 142, 137, 140, 140, 132, 137, 144, 140, 143, 138, 138, 141, 144, 136, 139, 139, 134, 140, 139, 146, 137, 139, 139, 137, 134, 137, 147, 140, 144, 134, 140, 140, 128, 141, 129, 138, 136, 137, 131, 149, 131, 141, 135, 139, 140, 145, 135, 142, 137, 138, 132, 138, 142, 139, 141, 139, 140, 135, 125, 142, 136, 124, 139, 142, 140, 147, 131, 139, 132, 141, 140, 141, 135, 128, 132, 142, 148, 141, 136, 139, 139, 140, 142, 140, 142, 133, 139, 147, 134, 136, 142, 152, 143, 139, 133, 134, 136, 136, 139, 136, 144, 136, 140, 141, 140, 138, 134, 137, 144, 139, 144, 129, 141, 146, 123, 141, 141, 140, 139, 140, 142, 138, 144, 130, 140, 132, 134, 138, 129, 134, 141, 141, 131, 140, 137, 143, 142, 146, 132, 146, 132, 147, 136, 137, 144, 130, 134, 133, 130, 154, 138, 146, 139, 149, 131, 132, 142, 137, 137, 141, 139, 139, 139, 136, 140, 134, 137, 146, 138, 129, 136, 139, 132, 149, 144, 147, 140, 148, 133, 143, 135, 139, 136, 144, 139, 128, 141, 133, 128, 125, 136, 134, 132, 135, 140, 133, 145, 133, 143, 142, 144, 135, 135, 139, 138, 131, 143, 143, 130, 130, 139, 137, 144, 130, 137, 143, 129, 143, 147, 134, 144, 134, 140, 138, 146, 145, 140, 146, 138, 144, 139, 142, 132, 136, 142, 144, 138, 135, 141, 137, 131, 136, 141, 133, 141, 138, 139, 139, 135, 129, 140, 148, 145, 142, 141, 148, 138, 137, 137, 133, 147, 147, 142, 141, 141, 139, 130, 132, 140, 141, 141, 146, 145, 131, 129, 129, 137, 147, 134, 130, 143, 144, 144, 149, 140, 137, 139, 137, 142, 135, 145, 140, 133, 135, 138, 145, 140, 132, 148, 140, 136, 139, 145, 137, 150, 144, 140, 142, 137, 144, 139, 137, 139, 137, 145, 138, 139, 139, 142, 138, 146, 137, 142, 139, 149, 131, 138, 142, 147, 138, 145, 140, 135, 138, 136, 140, 145, 144, 137, 132, 138, 138, 144, 137, 140, 141, 144, 149, 132, 139, 143, 140, 145, 137, 140, 139, 141, 148, 137, 142, 138, 132, 133, 130, 134, 138, 135, 138, 139, 139, 141, 145, 150, 143, 147, 136, 136, 141, 141, 143, 134, 146, 139, 137, 140, 137, 140, 142, 151, 137, 134, 133, 136, 140, 133, 136, 136, 137, 138, 140, 144, 138, 141, 136, 140, 147, 131, 139, 148, 134, 140, 138, 134, 144, 135, 148, 147, 138, 140, 143, 142, 131, 139, 133, 129, 139, 134, 128, 140, 133, 142, 143, 139, 143, 143, 142, 131, 137, 131, 143, 132, 134, 144, 145, 134, 142, 134, 134, 141, 138, 145, 132, 132, 137, 134, 151, 142, 127, 142, 139, 139, 142, 135, 137, 138, 139, 148, 131, 133, 133, 144, 139, 142, 133, 143, 131, 132, 143, 139, 139, 143, 134, 142, 130, 138, 141, 137, 130, 134, 140, 127, 142, 136, 130, 136, 136, 144, 129, 131, 138, 148, 135, 137, 136, 147, 146, 143, 141, 138, 137, 129, 139, 133, 141, 140, 137, 137, 154, 142, 141, 134, 143, 142, 124, 139, 141, 144, 138, 135, 142, 132, 141, 133, 136, 137, 136, 144, 138, 128, 140, 139, 136, 142, 141, 136, 133, 141, 151, 144, 143, 146, 141, 131, 144, 130, 136, 149, 132, 145, 145, 136, 146, 144, 145, 142, 144, 144, 134, 139, 131, 140, 141, 141, 142, 131, 136, 130, 142, 138, 141, 137, 135, 133, 148, 136, 139, 147, 139, 145, 147, 130, 135, 139, 142, 131, 139, 132, 138, 144, 136, 140, 142, 143, 136, 143, 143, 143, 132, 145, 141, 137, 139, 130, 143, 131, 135, 137, 138, 142, 149, 140, 138, 137, 143, 132, 144, 145, 146, 141, 145, 136, 142, 140, 142, 143, 139, 144, 132, 143, 141, 130, 124, 150, 142, 137, 140, 143, 145, 138, 141, 140, 133, 139, 142, 129, 141, 135, 142, 140, 134, 130, 137, 143, 138, 142, 142, 128, 133, 153, 136, 136, 144, 133, 140, 136, 134, 143, 151, 151, 141, 137, 133, 142, 143, 141, 136, 135, 138, 133, 139, 136, 139, 138, 129, 132, 123, 137, 143, 143, 136, 143, 132, 133, 139, 130, 143, 135, 143, 148, 138, 145, 143, 133, 144, 130, 136, 147, 139, 133, 139, 138, 143, 139, 151, 144, 134, 140, 151, 133, 142, 143, 138, 133, 136, 133, 138, 139, 138, 141, 139, 130, 138, 141, 147, 135, 131, 110, 137, 137, 144, 139, 145, 137, 137, 141, 138, 137, 156, 138, 134, 144, 142, 144, 141, 147, 140, 133, 141, 139, 138, 141, 138, 135, 141, 140, 131, 135, 141, 133, 132, 142, 139, 145, 139, 138, 136, 135, 146, 136, 141, 129, 143, 139, 140, 141, 138, 135, 139, 139, 134, 142, 141, 141, 142, 145, 143, 140, 153, 150, 136, 147, 147, 139, 137, 141, 139, 142, 140, 136, 131, 145, 147, 140, 135, 132, 145, 143, 139, 140, 139, 138, 132, 139, 143, 141, 143, 139, 140, 133, 139, 143, 136, 134, 139, 140, 139, 135, 135, 136, 137, 137, 141, 149, 130, 136, 132, 127, 125, 136, 140, 141, 127, 147, 133, 140, 131, 139, 144, 135, 143, 131, 141, 142, 138, 135, 135, 135, 139, 132, 131, 142, 135, 140, 141, 137, 132, 135, 141, 132, 143, 143, 137, 139, 145, 146, 143, 131, 138, 138, 141, 137, 140, 145, 147, 143, 130, 137, 145, 137, 143, 142, 132, 143, 137, 135, 149, 142, 143, 135, 131, 146, 139, 140, 146, 150, 143, 140, 148, 137, 139, 135, 138, 137, 141, 125, 139, 140, 146, 143, 136, 139, 136, 146, 134, 145, 139, 138, 134, 134, 142, 142, 144, 150, 136, 150, 145, 136, 139, 137, 141, 136, 136, 137, 139, 133, 144, 136, 139, 135, 140, 140, 145, 142, 148, 145, 136, 137, 137, 138, 139, 152, 136, 136, 153, 142, 147, 140, 137, 141, 138, 152, 138, 134, 148, 139, 135, 147, 130, 148, 137, 139, 129, 135, 140, 147, 148, 138, 139, 143, 141, 137, 140, 143, 141, 136, 127, 139, 135, 144, 139, 143, 139, 131, 140, 137, 139, 148, 139, 142, 134, 138, 144, 130, 138, 137, 144, 124, 138, 141, 142, 131, 138, 141, 139, 145, 143, 142, 136, 144, 140, 136, 145, 140, 138, 136, 141, 137, 146, 145, 135, 135, 140, 137, 144, 134, 141, 141, 132, 135, 150, 133, 141, 140, 137, 124, 137, 141, 142, 138, 140, 142, 141, 131, 141, 142, 144, 137, 137, 146, 135, 135, 143, 142, 129, 138, 134, 132, 140, 129, 134, 145, 135, 139, 139, 142, 131, 134, 143, 135, 134, 142, 137, 138, 131, 146, 140, 134, 140, 137, 133, 143, 140, 139, 134, 133, 140, 139, 137, 133, 135, 136, 129, 138, 143, 148, 137, 135, 129, 142, 134, 133, 134, 145, 136, 135, 137, 140, 137, 138, 144, 137, 139, 142, 147, 133, 146, 145, 135, 137, 135, 147, 148, 138, 136, 140, 143, 147, 136, 134, 138, 146, 145, 146, 137, 135, 131, 136, 135, 141, 136, 135, 153, 142, 130, 135, 133, 141, 141, 128, 138, 133, 138, 128, 135, 131, 133, 140, 146, 128, 140, 144, 135, 142, 132, 139, 131, 138, 136, 137, 137, 132, 130, 148, 135, 148, 134, 133, 134, 139, 139, 138, 143, 132, 153, 131, 132, 132, 137, 138, 140, 143, 144, 137, 138, 147, 144, 143, 139, 132, 129, 140, 134, 136, 139, 134, 142, 138, 138, 141, 137, 134, 141, 133, 135, 131, 130, 138, 149, 137, 133, 133, 139, 130, 137, 140, 144, 135, 141, 145, 141, 139, 138, 141, 140, 137, 138, 140, 130, 141, 129, 129, 140, 133, 134, 130, 130, 135, 143, 135, 140, 149, 136, 142, 137, 132, 140, 144, 134, 134, 125, 146, 135, 143, 147, 128, 140, 132, 141, 137, 142, 140, 130, 138, 139, 136, 143, 148, 147, 143, 142, 138, 139, 141, 137, 147, 133, 132, 141, 132, 150, 142, 138, 145, 141, 134, 133, 145, 149, 134, 149, 134, 136, 136, 136, 137, 136, 141, 139, 140, 141, 145, 125, 139, 133, 137, 140, 139, 139, 140, 139, 134, 138, 137, 150, 136, 145, 133, 137, 138, 144, 141, 140, 132, 141, 139, 147, 137, 135, 131, 147, 142, 150, 139, 145, 140, 135, 138, 141, 140, 139, 151, 145, 148, 146, 137, 133, 148, 138, 141, 135, 136, 129, 135, 139, 144, 148, 136, 134, 133, 144, 142, 138, 141, 139, 139, 151, 137, 143, 145, 132, 138, 149, 146, 138, 127, 148, 142, 148, 132, 142, 136, 131, 143, 142, 131, 143, 147, 139, 135, 141, 127, 143, 145, 144, 127, 140, 139, 133, 129, 133, 149, 129, 146, 135, 142, 138, 142, 147, 138, 137, 143, 139, 135, 144, 141, 144, 141, 135, 137, 149, 133, 140, 144, 135, 135, 120, 135, 134, 144, 137, 141, 133, 146, 140, 145, 129, 144, 137, 139, 132, 137, 139, 137, 142, 140, 135, 143, 137, 130, 146, 136, 141, 142, 139, 135, 139, 138, 143, 130, 141, 138, 140, 137, 138, 128, 132, 139, 138, 132, 135, 143, 141, 136, 139, 138, 132, 135, 138, 136, 139, 142, 129, 128, 138, 126, 145, 143, 129, 145, 134, 145, 147, 142, 148, 135, 148, 141, 141, 129, 138, 149, 135, 142, 134, 127, 144, 137, 139, 137, 135, 151, 140, 140, 135, 143, 142, 141, 137, 137, 146, 148, 138, 142, 140, 132, 136, 136, 137, 138, 140, 139, 133, 143, 156, 137, 133, 136, 139, 133, 130, 136, 133, 140, 136, 139, 150, 137, 140, 139, 142, 137, 141, 139, 138, 128, 147, 141, 156, 144, 136, 140, 141, 131, 134, 139, 133, 146, 142, 145, 138, 147, 130, 138, 145, 141, 137, 141, 144, 124, 144, 142, 136, 137, 132, 140, 139, 134, 139, 138, 141, 134, 138, 141, 129, 142, 138, 142, 134, 146, 137, 139, 148, 138, 144, 138, 133, 135, 138, 138, 143, 137, 140, 133, 138, 137, 128, 144, 134, 134, 134, 140, 133, 144, 132, 145, 141, 137, 142, 151, 143, 134, 136, 139, 145, 139, 139, 142, 142, 139, 132, 139, 137, 140, 133, 138, 145, 132, 144, 131, 124, 141, 147, 142, 140, 146, 130, 134, 135, 141, 137, 138, 136, 139, 150, 144, 143, 145, 141, 130, 140, 137, 134, 133, 133, 137, 136, 134, 127, 141, 141, 134, 146, 137, 135, 143, 133, 141, 133, 126, 130, 149, 142, 145, 152, 142, 138, 141, 145, 140, 137, 131, 137, 138, 141, 140, 136, 146, 135, 135, 137, 153, 137, 133, 143, 143, 137, 138, 136, 139, 144, 133, 134, 131, 138, 135, 135, 142, 137, 132, 133, 134, 140, 140, 132, 141, 136, 153, 135, 143, 144, 141, 136, 144, 141, 146, 151, 143, 139, 130, 140, 136, 138, 139, 135, 144, 145, 131, 132, 139, 140, 142, 138, 140, 142, 138, 132, 137, 137, 132, 134, 140, 140, 139, 130, 133, 131, 139, 129, 137, 140, 134, 139, 132, 128, 131, 144, 134, 122, 139, 148, 140, 135, 145, 143, 145, 131, 143, 135, 134, 141, 123, 140, 136, 140, 140, 138, 137, 137, 137, 132, 148, 149, 137, 142, 135, 146, 139, 149, 137, 142, 141, 143, 136, 140, 135, 132, 138, 141, 127, 139, 146, 129, 142, 139, 129, 138, 143, 136, 134, 129, 136, 143, 139, 141, 147, 143, 141, 133, 137, 132, 143, 138, 149, 144, 132, 136, 148, 129, 138, 144, 138, 134, 139, 138, 143, 144, 144, 139, 142, 140, 143, 144, 144, 148, 140, 133, 136, 145, 148, 141, 138, 143, 136, 136, 136, 127, 138, 143, 139, 140, 141, 135, 131, 149, 145, 131, 140, 148, 153, 142, 134, 135, 144, 130, 143, 134, 134, 142, 131, 135, 138, 152, 146, 136, 124, 146, 136, 149, 132, 145, 135, 134, 128, 142, 141, 148, 144, 145, 140, 144, 136, 140, 134, 132, 147, 149, 142, 140, 142, 146, 138, 139, 140, 136, 136, 137, 126, 129, 141, 132, 139, 133, 141, 145, 136, 134, 129, 136, 135, 139, 145, 145, 141, 131, 143, 140, 138, 142, 138, 134, 141, 139, 139, 137, 135, 133, 133, 145, 137, 156, 153, 134, 142, 131, 143, 147, 137, 139, 143, 133, 144, 142, 139, 140, 143, 136, 134, 141, 135, 151, 136, 148, 133, 138, 135, 136, 141, 135, 138, 132, 138, 135, 132, 161, 138, 128, 137, 133, 135, 140, 140, 137, 142, 137, 132, 128, 139, 132, 140, 140, 154, 142, 135, 136, 143, 137, 138, 145, 138, 127, 138, 145, 139, 129, 143, 142, 144, 130, 140, 135, 134, 140, 135, 150, 132, 133, 141, 140, 135, 142, 134, 139, 143, 132, 138, 130, 132, 135, 134, 139, 145, 138, 124, 140, 140, 141, 138, 139, 142, 137, 132, 137, 135, 136, 145, 134, 134, 131, 156, 136, 146, 139, 144, 139, 137, 141, 132, 143, 130, 131, 138, 137, 137, 138, 138, 138, 139, 128, 137, 143, 132, 138, 148, 131, 130, 145, 155, 131, 134, 140, 132, 137, 154, 142, 141, 132, 149, 141, 137, 138, 143, 141, 136, 163, 131, 153, 134, 135, 144, 134, 137, 154, 143, 134, 130, 133, 148, 142, 139, 140, 137, 138, 135, 145, 141, 130, 135, 137, 132, 139, 139, 142, 143, 140, 144, 141, 141, 129, 140, 125, 135, 135, 117, 138, 152, 142, 143, 142, 137, 135, 142, 141, 137, 141, 145, 140, 147, 131, 129, 134, 136, 132, 143, 138, 130, 142, 143, 148, 143, 131, 149, 130, 130, 137, 141, 147, 146, 136, 138, 138, 141, 141, 144, 135, 134, 142, 129, 143, 141, 140, 137, 137, 132, 134, 133, 142, 141, 144, 133, 143, 142, 138, 143, 147, 136, 128, 138, 142, 140, 127, 145, 127, 140, 143, 134, 142, 136, 136, 145, 134, 132, 146, 129, 135, 133, 142, 145, 140, 135, 146, 139, 142, 141, 133, 138, 138, 133, 139, 135, 145, 130, 143, 138, 135, 140, 133, 153, 137, 137, 146, 140, 135, 132, 142, 138, 132, 146, 143, 135, 146, 143, 136, 138, 140, 140, 140, 142, 136, 134, 144, 135, 144, 138, 141, 137, 146, 138, 149, 136, 134, 150, 144, 134, 132, 137, 143, 150, 135, 145, 132, 140, 142, 136, 138, 147, 142, 132, 137, 137, 138, 144, 136, 147, 133, 136, 143, 159, 139, 134, 134, 141, 141, 133, 147, 127, 149, 141, 129, 138, 143, 140, 134, 140, 140, 147, 145, 139, 142, 136, 140, 142, 140, 140, 139, 141, 136, 139, 136, 127, 141, 138, 135, 147, 134, 136, 139, 138, 140, 144, 131, 147, 148, 139, 131, 136, 143, 141, 133, 136, 133, 133, 136, 144, 138, 134, 141, 144, 139, 139, 141, 141, 137, 135, 137, 138, 148, 133, 141, 135, 143, 135, 137, 143, 149, 135, 139, 149, 132, 142, 142, 151, 124, 153, 148, 139, 134, 140, 135, 135, 146, 132, 139, 135, 124, 139, 149, 148, 134, 138, 135, 129, 137, 131, 147, 126, 128, 142, 139, 138, 137, 134, 142, 140, 137, 145, 130, 142, 127, 135, 136, 143, 128, 137, 142, 138, 145, 138, 134, 154, 138, 148, 150, 141, 145, 143, 141, 136, 137, 137, 139, 137, 139, 147, 142, 142, 130, 138, 142, 144, 140, 141, 137, 152, 144, 140, 139, 138, 137, 143, 132, 127, 137, 142, 137, 138, 126, 138, 147, 135, 141, 141, 139, 126, 149, 141, 153, 136, 140, 139, 140, 141, 136, 134, 141, 128, 127, 138, 132, 136, 127, 140, 143, 138, 157, 152, 123, 132, 142, 139, 143, 133, 144, 138, 138, 146, 133, 142, 141, 140, 143, 149, 150, 137, 151, 134, 130, 134, 132, 133, 140, 141, 145, 127, 134, 137, 132, 141, 154, 136, 133, 138, 139, 144, 123, 144, 140, 151, 126, 144, 134, 122, 143, 149, 146, 134, 136, 141, 132, 139, 133, 143, 125, 135, 131, 128, 151, 143, 134, 137, 140, 146, 137, 140, 136, 144, 142, 144, 136, 134, 136, 136, 144, 143, 135, 142, 152, 146, 138, 143, 136, 128, 151, 143, 137, 149, 150, 133, 151, 136, 136, 131, 143, 148, 143, 148, 136, 136, 136, 139, 140, 141, 131, 141, 145, 140, 140, 154, 143, 136, 143, 146, 144, 127, 126, 147, 137, 133, 133, 145, 138, 141, 133, 133, 151, 153, 147, 135, 140, 141, 147, 136, 146, 133, 142, 138, 137, 144, 140, 141, 157, 148, 124, 138, 153, 148, 133, 144, 137, 147, 139, 139, 141, 146, 137, 132, 133, 133, 149, 130, 138, 135, 142, 130, 136, 128, 142, 143, 142, 148, 141, 141, 139, 146, 141, 141, 146, 141, 130, 133, 147, 140, 143, 132, 128, 133, 137, 138, 138, 139, 126, 136, 146, 138, 138, 138, 151, 140, 144, 131, 138, 149, 146, 137, 145, 132, 151, 140, 139, 135, 143, 146, 141, 151, 140, 139, 137, 135, 134, 139, 142, 127, 139, 141, 137, 135, 128, 145, 142, 139, 146, 143, 140, 127, 130, 142, 139, 134, 121, 139, 139, 140, 143, 136, 140, 134, 141, 148, 130, 139, 142, 151, 153, 136, 136, 131, 142, 143, 140, 150, 148, 146, 123, 126, 148, 143, 139, 147, 134, 144, 140, 147, 131, 135, 140, 148, 139, 138, 132, 137, 145, 145, 130, 138, 143, 142, 142, 140, 143, 145, 153, 146, 142, 143, 135, 132, 139, 129, 137, 128, 144, 147, 135, 137, 133, 145, 133, 133, 134, 129, 123, 132, 133, 141, 110, 142, 145, 146, 134, 135, 149, 144, 142, 139, 137, 132, 144, 149, 144, 144, 141, 142, 141, 143, 137, 133, 150, 141, 129, 143, 143, 145, 139, 132, 143, 139, 141, 140, 141, 121, 148, 149, 145, 152, 139, 126, 137, 147, 133, 133, 141, 147, 137, 134, 142, 123, 135, 136, 146, 144, 140, 143, 147, 144, 137, 143, 141, 137, 142, 132, 156, 138, 128, 140, 134, 151, 149, 139, 140, 135, 146, 139, 137, 146, 147, 127, 136, 142, 141, 138, 138, 144, 139, 134, 136, 129, 138, 139, 140, 136, 144, 133, 137, 137, 142, 139, 139, 137, 137, 135, 147, 141, 145, 134, 141, 135, 135, 141, 136, 137, 143, 136, 143, 140, 136, 138, 146, 136, 138, 138, 139, 142, 138, 140, 132, 143, 136, 139, 135, 140, 138, 140, 139, 140, 141, 135, 136, 142, 143, 141, 142, 127, 138, 134, 143, 143, 136, 138, 136, 139, 139, 140, 146, 145, 144, 138, 135, 139, 142, 144, 138, 137, 140, 143, 133, 135, 141, 132, 134, 145, 138, 138, 141, 145, 134, 135, 145, 141, 143, 133, 136, 142, 141, 137, 140, 145, 145, 145, 137, 147, 146, 134, 137, 139, 131, 137, 139, 137, 133, 136, 140, 140, 140, 146, 143, 136, 135, 146, 135, 139, 137, 136, 142, 141, 141, 139, 148, 141, 137, 137, 138, 137, 147, 136, 143, 133, 141, 133, 137, 144, 137, 142, 137, 136, 142, 142, 134, 130, 138, 145, 141, 138, 139, 140, 141, 141, 132, 132, 135, 141, 139, 141, 146, 143, 134, 140, 137, 139, 136, 139, 139, 139, 136, 138, 132, 140, 134, 145, 142, 142, 135, 137, 132, 149, 143, 133, 134, 145, 145, 138, 143, 139, 139, 134, 136, 137, 140, 142, 142, 144, 138, 141, 134, 130, 142, 139, 142, 140, 136, 136, 137, 147, 138, 142, 140, 133, 136, 133, 136, 143, 136, 141, 143, 135, 139, 137, 143, 133, 140, 132, 136, 143, 138, 133, 135, 142, 138, 136, 143, 135, 143, 137, 135, 145, 138, 142, 146, 145, 140, 146, 141, 142, 141, 139, 134, 144, 139, 140, 149, 138, 133, 138, 137, 136, 133, 139, 141, 140, 145, 138, 140, 139, 132, 144, 142, 137, 140, 140, 148, 141, 137, 137, 134, 144, 146, 132, 142, 148, 142, 128, 137, 133, 140, 141, 136, 145, 137, 132, 134, 139, 139, 133, 140, 137, 138, 136, 140, 144, 140, 135, 137, 136, 138, 141, 132, 134, 139, 140, 137, 143, 130, 138, 137, 137, 137, 139, 139, 145, 139, 146, 138, 137, 135, 142, 140, 148, 136, 136, 136, 138, 143, 135, 142, 136, 141, 138, 139, 144, 136, 133, 141, 135, 135, 136, 138, 143, 144, 142, 143, 141, 137, 144, 145, 136, 135, 135, 130, 147, 136, 138, 140, 138, 137, 132, 136, 154, 138, 135, 142, 140, 141, 139, 142, 146, 138, 137, 141, 137, 135, 138, 139, 141, 132, 134, 138, 137, 137, 139, 135, 136, 135, 132, 134, 142, 140, 142, 133, 141, 135, 137, 139, 138, 134, 138, 140, 148, 135, 140, 142, 136, 137, 139, 136, 145, 136, 143, 140, 150, 140, 138, 143, 137, 140, 136, 134, 132, 131, 137, 142, 148, 134, 140, 134, 138, 142, 129, 135, 137, 141, 134, 143, 135, 139, 134, 132, 143, 139, 140, 133, 139, 135, 134, 139, 148, 134, 141, 142, 138, 129, 133, 138, 136, 136, 138, 135, 143, 146, 144, 139, 137, 134, 140, 144, 139, 135, 140, 147, 143, 137, 141, 137, 135, 142, 145, 140, 138, 130, 135, 138, 136, 144, 146, 137, 141, 137, 129, 146, 127, 139, 132, 142, 144, 139, 147, 145, 137, 135, 137, 135, 137, 131, 138, 146, 133, 151, 131, 137, 138, 136, 145, 135, 138, 130, 142, 149, 124, 149, 138, 131, 132, 147, 138, 143, 137, 140, 130, 136, 142, 137, 132, 134, 139, 141, 138, 137, 132, 137, 141, 145, 133, 141, 144, 139, 139, 147, 136, 141, 141, 136, 133, 135, 140, 137, 141, 137, 130, 135, 147, 145, 137, 130, 144, 144, 129, 145, 148, 142, 138, 144, 124, 137, 143, 136, 141, 144, 142, 136, 133, 137, 130, 136, 140, 143, 132, 152, 144, 139, 138, 141, 136, 142, 140, 142, 145, 139, 132, 137, 139, 133, 134, 145, 141, 140, 134, 140, 139, 125, 136, 130, 143, 139, 135, 139, 138, 137, 131, 141, 143, 134, 140, 144, 134, 143, 134, 144, 144, 127, 130, 141, 131, 147, 141, 129, 142, 139, 136, 138, 143, 136, 145, 143, 137, 134, 138, 137, 135, 132, 144, 145, 135, 132, 130, 131, 144, 138, 144, 132, 144, 136, 149, 141, 137, 135, 135, 139, 139, 140, 137, 141, 139, 136, 135, 133, 140, 140, 139, 143, 129, 126, 145, 143, 133, 142, 135, 138, 134, 140, 139, 142, 130, 139, 139, 134, 138, 142, 145, 133, 144, 137, 141, 145, 138, 138, 144, 135, 137, 141, 128, 128, 145, 136, 144, 138, 143, 145, 154, 131, 129, 140, 142, 139, 138, 138, 142, 145, 147, 140, 137, 134, 140, 141, 139, 144, 138, 128, 147, 129, 144, 140, 142, 134, 144, 139, 134, 141, 138, 140, 150, 149, 130, 133, 146, 140, 139, 143, 142, 132, 141, 137, 136, 139, 143, 135, 139, 137, 147, 147, 142, 138, 138, 132, 146, 136, 139, 140, 143, 141, 135, 139, 139, 145, 135, 138, 142, 136, 143, 150, 139, 139, 137, 137, 140, 135, 137, 130, 135, 135, 131, 141, 137, 147, 140, 140, 137, 145, 153, 139, 139, 134, 144, 135, 135, 134, 140, 139, 135, 143, 135, 137, 135, 147, 143, 135, 131, 138, 140, 139, 148, 143, 139, 143, 140, 134, 137, 137, 134, 142, 146, 132, 142, 133, 139, 139, 135, 143, 133, 125, 137, 139, 135, 141, 137, 135, 128, 128, 141, 142, 140, 139, 141, 136, 141, 137, 142, 140, 136, 146, 139, 137, 138, 135, 136, 137, 139, 134, 143, 139, 135, 134, 136, 135, 138, 138, 137, 140, 133, 133, 134, 138, 146, 133, 139, 146, 133, 142, 133, 142, 135, 144, 132, 140, 139, 143, 134, 126, 140, 133, 135, 139, 142, 142, 134, 139, 139, 137, 143, 140, 145, 134, 137, 142, 134, 133, 140, 131, 139, 137, 132, 145, 140, 149, 144, 138, 140, 137, 133, 145, 136, 152, 150, 138, 137, 141, 132, 136, 140, 129, 152, 141, 126, 138, 143, 140, 144, 137, 143, 140, 140, 140, 136, 138, 135, 137, 140, 138, 141, 134, 141, 134, 144, 139, 135, 141, 143, 139, 143, 137, 133, 138, 140, 141, 138, 140, 135, 145, 146, 141, 136, 147, 130, 145, 139, 133, 137, 140, 137, 135, 138, 134, 141, 134, 134, 139, 152, 140, 142, 134, 136, 144, 130, 149, 137, 141, 141, 135, 140, 146, 135, 149, 135, 132, 138, 130, 131, 140, 139, 139, 145, 146, 133, 140, 141, 135, 136, 138, 136, 148, 138, 144, 139, 139, 136, 142, 139, 134, 134, 140, 147, 139, 135, 139, 147, 139, 151, 142, 137, 149, 138, 149, 133, 131, 141, 137, 132, 142, 131, 143, 137, 148, 137, 132, 138, 147, 143, 138, 142, 134, 131, 130, 128, 129, 134, 146, 141, 129, 142, 140, 144, 152, 137, 134, 149, 140, 150, 135, 144, 137, 142, 138, 138, 138, 146, 130, 149, 137, 136, 134, 135, 155, 143, 138, 144, 144, 135, 143, 128, 150, 127, 146, 136, 135, 128, 134, 138, 133, 138, 139, 142, 139, 139, 131, 138, 134, 139, 145, 141, 138, 151, 148, 142, 144, 131, 140, 129, 136, 142, 130, 126, 140, 134, 139, 133, 136, 134, 142, 145, 134, 137, 144, 134, 137, 132, 141, 146, 142, 142, 133, 133, 151, 131, 142, 146, 141, 128, 138, 138, 134, 139, 141, 135, 140, 142, 141, 136, 140, 136, 136, 128, 139, 143, 139, 139, 150, 141, 137, 136, 140, 132, 144, 146, 137, 145, 140, 132, 145, 131, 146, 135, 145, 142, 140, 139, 136, 141, 144, 142, 137, 138, 133, 145, 139, 139, 136, 135, 132, 147, 139, 142, 131, 141, 146, 144, 134, 143, 143, 146, 134, 137, 137, 148, 141, 138, 146, 146, 143, 137, 142, 132, 139, 134, 144, 141, 145, 147, 130, 144, 138, 133, 132, 142, 125, 142, 132, 133, 130, 140, 137, 130, 143, 132, 136, 143, 135, 147, 139, 139, 139, 146, 136, 138, 135, 134, 135, 140, 136, 127, 131, 132, 147, 131, 143, 141, 130, 125, 137, 126, 137, 137, 129, 141, 143, 135, 152, 137, 136, 149, 135, 155, 142, 145, 136, 133, 120, 138, 142, 138, 131, 139, 138, 131, 140, 136, 145, 143, 138, 134, 138, 142, 143, 140, 134, 139, 136, 142, 140, 126, 133, 142, 131, 137, 137, 131, 141, 139, 137, 133, 140, 138, 147, 136, 132, 142, 132, 139, 141, 144, 144, 134, 137, 130, 143, 134, 137, 142, 145, 140, 136, 140, 140, 139, 139, 136, 134, 143, 140, 137, 136, 137, 132, 135, 142, 141, 134, 136, 144, 140, 141, 136, 142, 138, 149, 136, 144, 126, 138, 142, 135, 134, 132, 140, 134, 139, 146, 141, 144, 130, 130, 146, 131, 144, 140, 152, 143, 145, 139, 140, 145, 133, 133, 148, 143, 129, 142, 144, 145, 141, 142, 141, 146, 134, 139, 158, 137, 145, 148, 143, 139, 139, 145, 141, 131, 141, 129, 142, 150, 145, 132, 140, 152, 150, 145, 140, 135, 139, 142, 135, 129, 135, 141, 140, 129, 141, 133, 148, 128, 142, 137, 138, 132, 141, 149, 144, 134, 133, 145, 132, 139, 132, 138, 151, 137, 149, 138, 141, 140, 132, 135, 135, 146, 132, 142, 144, 144, 133, 135, 141, 138, 133, 131, 134, 144, 144, 139, 135, 129, 134, 136, 147, 134, 149, 141, 136, 148, 135, 133, 133, 144, 138, 142, 127, 136, 138, 139, 144, 157, 131, 129, 136, 135, 136, 139, 140, 137, 142, 130, 136, 147, 132, 150, 139, 153, 126, 140, 146, 135, 142, 137, 151, 144, 133, 133, 131, 139, 136, 141, 141, 140, 140, 142, 138, 136, 147, 151, 142, 132, 134, 149, 130, 140, 136, 142, 136, 144, 144, 144, 137, 133, 132, 133, 135, 135, 140, 135, 137, 148, 143, 136, 135, 144, 139, 133, 132, 142, 139, 137, 137, 140, 135, 144, 139, 136, 127, 131, 134, 140, 130, 130, 132, 141, 131, 138, 134, 154, 131, 131, 136, 138, 143, 126, 145, 137, 131, 139, 133, 138, 144, 140, 140, 130, 163, 142, 141, 132, 142, 150, 145, 136, 145, 143, 139, 133, 143, 136, 140, 135, 136, 133, 144, 144, 135, 134, 137, 136, 132, 143, 133, 145, 142, 131, 140, 134, 154, 142, 148, 132, 149, 136, 143, 142, 152, 142, 150, 135, 137, 138, 133, 133, 141, 134, 154, 128, 137, 145, 127, 142, 134, 145, 140, 136, 152, 152, 136, 139, 129, 141, 142, 142, 128, 136, 147, 142, 143, 137, 140, 142, 146, 129, 136, 138, 142, 139, 143, 143, 142, 143, 149, 143, 138, 142, 143, 147, 132, 141, 140, 145, 138, 145, 137, 141, 143, 137, 138, 146, 133, 150, 127, 134, 155, 131, 138, 151, 128, 129, 139, 136, 145, 137, 137, 138, 129, 137, 140, 135, 130, 138, 147, 149, 147, 132, 129, 147, 133, 142, 138, 142, 141, 138, 139, 144, 132, 147, 152, 141, 134, 146, 132, 133, 132, 131, 142, 135, 137, 132, 136, 141, 147, 132, 140, 136, 141, 133, 140, 137, 134, 143, 145, 144, 138, 138, 142, 143, 134, 142, 135, 133, 128, 139, 146, 142, 140, 138, 143, 134, 152, 139, 134, 145, 140, 138, 125, 147, 141, 132, 124, 139, 140, 144, 153, 134, 132, 141, 137, 139, 137, 140, 131, 134, 136, 141, 140, 141, 131, 136, 136, 134, 131, 140, 138, 149, 147, 142, 144, 136, 137, 146, 128, 136, 143, 149, 141, 141, 147, 133, 150, 137, 133, 132, 142, 155, 142, 130, 140, 122, 139, 141, 135, 142, 146, 133, 139, 137, 143, 137, 136, 139, 138, 142, 140, 130, 144, 144, 146, 140, 150, 142, 143, 146, 136, 151, 149, 140, 132, 137, 139, 133, 135, 141, 139, 135, 143, 130, 139, 144, 136, 125, 141, 139, 138, 135, 142, 136, 144, 145, 139, 140, 143, 145, 134, 137, 144, 134, 136, 141, 135, 126, 138, 135, 142, 138, 134, 135, 127, 140, 132, 147, 141, 138, 140, 151, 143, 134, 131, 128, 142, 145, 133, 146, 142, 146, 138, 143, 140, 153, 142, 133, 156, 142, 142, 139, 132, 146, 142, 137, 139, 137, 145, 138, 155, 124, 139, 136, 144, 131, 139, 124, 135, 141, 138, 127, 141, 134, 141, 131, 146, 147, 138, 132, 141, 153, 144, 148, 132, 138, 141, 138, 139, 133, 150, 127, 159, 134, 140, 136, 158, 144, 141, 144, 143, 135, 149, 139, 139, 140, 144, 130, 137, 142, 143, 134, 150, 137, 139, 142, 131, 139, 134, 129, 135, 136, 139, 140, 137, 135, 135, 134, 140, 134, 147, 144, 140, 144, 138, 140, 137, 144, 141, 133, 133, 149, 147, 145, 136, 141, 137, 137, 130, 134, 134, 133, 134, 134, 148, 139, 149, 133, 137, 137, 147, 140, 135, 137, 135, 135, 139, 126, 134, 141, 136, 137, 133, 136, 142, 130, 141, 132, 137, 137, 135, 139, 138, 137, 131, 139, 136, 139, 133, 139, 137, 133, 139, 136, 142, 145, 143, 138, 149, 139, 146, 132, 135, 138, 136, 136, 139, 139, 141, 138, 148, 131, 148, 136, 142, 144, 140, 131, 146, 142, 134, 142, 133, 140, 134, 134, 139, 133, 136, 138, 134, 129, 142, 134, 147, 143, 138, 136, 127, 137, 140, 145, 133, 146, 146, 142, 138, 143, 133, 138, 136, 141, 135, 137, 141, 142, 138, 130, 148, 141, 143, 138, 139, 134, 137, 138, 142, 132, 136, 137, 136, 137, 137, 146, 143, 138, 139, 139, 141, 131, 134, 133, 132, 144, 144, 136, 137, 133, 141, 141, 141, 147, 141, 137, 141, 137, 138, 138, 142, 137, 140, 142, 146, 146, 132, 141, 144, 135, 135, 146, 135, 146, 136, 137, 154, 138, 136, 133, 131, 144, 144, 140, 136, 130, 142, 120, 136, 144, 142, 147, 146, 135, 150, 133, 139, 144, 144, 135, 140, 136, 147, 138, 142, 139, 140, 138, 140, 136, 136, 146, 139, 146, 133, 142, 134, 137, 132, 134, 140, 139, 135, 137, 140, 143, 137, 132, 130, 131, 140, 144, 131, 134, 136, 137, 144, 141, 140, 131, 137, 139, 144, 149, 139, 131, 127, 144, 143, 131, 138, 133, 139, 146, 135, 137, 136, 137, 138, 139, 141, 143, 131, 141, 125, 148, 152, 124, 140, 142, 132, 131, 143, 130, 142, 138, 144, 139, 137, 135, 150, 137, 138, 137, 133, 143, 144, 133, 140, 143, 135, 136, 139, 149, 139, 134, 144, 139, 154, 137, 133, 137, 141, 133, 146, 139, 139, 140, 143, 142, 138, 142, 143, 139, 142, 140, 140, 136, 139, 130, 141, 143, 145, 138, 136, 139, 131, 150, 144, 132, 128, 136, 139, 142, 133, 134, 138, 121, 140, 146, 137, 136, 142, 146, 143, 145, 132, 135, 134, 136, 140, 137, 140, 144, 136, 140, 134, 135, 132, 149, 139, 151, 134, 142, 144, 139, 139, 147, 139, 134, 152, 144, 140, 137, 136, 135, 132, 140, 138, 140, 148, 142, 144, 137, 141, 132, 142, 139, 142, 146, 152, 144, 139, 133, 139, 131, 143, 138, 138, 150, 140, 136, 136, 147, 146, 130, 138, 141, 140, 143, 141, 137, 146, 135, 153, 140, 137, 144, 146, 145, 131, 136, 135, 136, 133, 134, 133, 144, 137, 142, 142, 128, 151, 137, 134, 144, 136, 139, 144, 138, 144, 139, 143, 132, 139, 142, 137, 137, 142, 137, 136, 142, 140, 131, 141, 142, 133, 143, 136, 144, 144, 145, 144, 134, 142, 142, 139, 140, 136, 134, 136, 136, 138, 146, 134, 135, 137, 138, 140, 137, 143, 139, 146, 129, 141, 140, 137, 140, 134, 141, 144, 135, 136, 138, 142, 134, 139, 135, 141, 138, 135, 143, 136, 138, 133, 144, 144, 135, 143, 141, 140, 140, 133, 144, 141, 139, 145, 138, 133, 134, 138, 138, 133, 140, 146, 138, 138, 129, 135, 141, 139, 129, 144, 142, 135, 135, 139, 144, 138, 132, 137, 138, 132, 135, 139, 139, 139, 139, 145, 141, 146, 139, 139, 138, 129, 146, 138, 135, 142, 148, 128, 145, 143, 133, 132, 140, 139, 142, 143, 140, 143, 144, 141, 137, 126, 144, 136, 143, 136, 137, 136, 142, 146, 141, 143, 136, 143, 138, 141, 155, 125, 141, 138, 130, 134, 140, 141, 141, 133, 137, 138, 147, 143, 146, 135, 143, 138, 143, 130, 146, 136, 136, 138, 138, 146, 136, 135, 138, 137, 147, 137, 132, 135, 141, 135, 135, 137, 134, 136, 139, 136, 133, 140, 132, 150, 150, 139, 134, 151, 135, 143, 151, 135, 134, 151, 140, 146, 137, 142, 131, 136, 141, 140, 135, 137, 135, 144, 134, 131, 147, 146, 140, 131, 139, 142, 140, 140, 137, 134, 140, 137, 127, 136, 143, 135, 141, 138, 140, 127, 136, 145, 136, 131, 138, 135, 138, 146, 140, 140, 133, 137, 130, 138, 130, 139, 143, 133, 134, 138, 139, 147, 141, 146, 136, 136, 137, 138, 145, 140, 125, 138, 142, 134, 138, 135, 138, 140, 148, 143, 131, 149, 137, 140, 144, 142, 137, 140, 139, 140, 144, 138, 138, 140, 142, 132, 129, 140, 139, 137, 133, 135, 141, 134, 131, 128, 138, 140, 146, 140, 132, 131, 140, 144, 139, 144, 136, 137, 135, 136, 138, 132, 142, 154, 139, 137, 138, 144, 138, 148, 131, 147, 135, 138, 139, 142, 145, 140, 139, 137, 135, 151, 136, 132, 132, 141, 138, 136, 140, 146, 126, 136, 146, 150, 138, 138, 141, 146, 135, 143, 136, 135, 135, 148, 137, 145, 145, 136, 143, 147, 139, 130, 143, 144, 143, 133, 141, 128, 133, 139, 131, 139, 138, 147, 141, 131, 142, 132, 139, 137, 144, 146, 141, 138, 128, 143, 142, 139, 137, 140, 147, 139, 144, 137, 142, 139, 126, 140, 138, 140, 132, 134, 130, 139, 140, 134, 139, 133, 138, 132, 137, 134, 137, 148, 144, 145, 131, 135, 138, 130, 140, 142, 149, 137, 141, 142, 150, 136, 141, 140, 135, 139, 140, 142, 145, 138, 134, 137, 129, 132, 145, 139, 134, 133, 136, 139, 142, 139, 151, 130, 136, 141, 138, 136, 149, 141, 138, 145, 140, 138, 136, 137, 134, 136, 147, 140, 138, 135, 135, 136, 141, 143, 133, 134, 144, 140, 136, 135, 143, 141, 137, 136, 136, 146, 134, 141, 141, 139, 134, 133, 133, 135, 145, 139, 137, 138, 136, 148, 137, 143, 136, 136, 150, 139, 142, 134, 138, 140, 145, 134, 145, 150, 148, 135, 144, 141, 144, 137, 132, 134, 134, 155, 143, 138, 138, 135, 137, 128, 135, 147, 142, 143, 141, 141, 133, 127, 147, 140, 139, 137, 137, 144, 146, 137, 139, 144, 137, 130, 143, 132, 126, 138, 138, 146, 149, 137, 142, 124, 144, 138, 145, 132, 135, 139, 138, 146, 128, 132, 131, 139, 139, 130, 139, 133, 135, 149, 140, 145, 132, 125, 142, 137, 146, 114, 124, 134, 140, 132, 139, 136, 144, 133, 145, 136, 140, 140, 155, 138, 136, 141, 127, 140, 142, 135, 144, 135, 140, 140, 139, 146, 143, 133, 144, 134, 138, 141, 146, 141, 142, 140, 141, 144, 145, 140, 145, 140, 141, 143, 146, 136, 136, 138, 134, 132, 140, 131, 145, 129, 136, 130, 148, 140, 143, 137, 143, 146, 139, 154, 140, 136, 136, 133, 138, 140, 139, 139, 137, 136, 133, 132, 149, 133, 132, 143, 148, 133, 152, 149, 141, 133, 137, 139, 137, 141, 139, 141, 147, 136, 156, 137, 141, 149, 131, 136, 132, 153, 140, 153, 143, 145, 140, 133, 142, 140, 136, 139, 136, 143, 142, 139, 135, 135, 122, 142, 139, 142, 147, 128, 143, 142, 134, 140, 137, 138, 142, 141, 137, 146, 140, 142, 141, 142, 136, 130, 130, 141, 135, 139, 146, 135, 143, 135, 139, 148, 147, 147, 144, 130, 145, 133, 153, 137, 128, 139, 142, 146, 132, 123, 133, 136, 135, 139, 141, 152, 152, 145, 147, 139, 146, 135, 153, 140, 144, 134, 143, 137, 150, 144, 127, 136, 136, 130, 138, 144, 137, 143, 137, 148, 139, 133, 147, 142, 136, 142, 147, 137, 140, 144, 141, 142, 137, 136, 136, 144, 150, 159, 133, 144, 144, 144, 139, 139, 147, 139, 134, 157, 126, 135, 137, 148, 134, 133, 146, 134, 144, 137, 140, 146, 155, 143, 135, 138, 143, 148, 148, 138, 146, 141, 131, 131, 137, 133, 141, 140, 130, 131, 141, 130, 141, 132, 160, 148, 141, 141, 140, 134, 132, 138, 152, 137, 136, 132, 142, 151, 142, 132, 136, 139, 142, 142, 137, 143, 141, 135, 141, 140, 143, 131, 142, 148, 134, 134, 140, 143, 137, 133, 143, 133, 161, 144, 136, 143, 140, 135, 136, 133, 139, 143, 136, 143, 137, 142, 139, 150, 140, 148, 133, 144, 141, 136, 144, 138, 135, 135, 139, 134, 145, 140, 137, 138, 139, 148, 139, 140, 134, 138, 128, 152, 130, 131, 140, 136, 138, 139, 143, 141, 126, 144, 139, 140, 148, 138, 139, 136, 131, 142, 143, 151, 136, 141, 140, 142, 140, 139, 136, 136, 128, 143, 133, 139, 151, 137, 143, 131, 150, 145, 136, 149, 143, 135, 135, 139, 141, 138, 130, 125, 141, 136, 129, 136, 150, 146, 143, 142, 141, 135, 131, 140, 134, 144, 142, 138, 140, 133, 133, 148, 147, 146, 149, 135, 133, 131, 127, 141, 133, 136, 142, 141, 123, 142, 139, 143, 151, 134, 140, 143, 131, 139, 147, 147, 143, 145, 129, 133, 144, 131, 126, 139, 146, 145, 137, 141, 140, 144, 148, 148, 135, 147, 131, 141, 137, 137, 143, 137, 144, 134, 135, 142, 142, 147, 138, 144, 134, 137, 133, 138, 140, 135, 137, 139, 145, 130, 132, 137, 143, 139, 142, 139, 134, 142, 136, 138, 145, 139, 142, 132, 137, 136, 135, 140, 140, 138, 136, 135, 136, 136, 134, 139, 142, 140, 140, 128, 136, 140, 145, 144, 125, 134, 144, 134, 144, 134, 138, 136, 145, 134, 143, 138, 138, 140, 146, 144, 133, 139, 141, 143, 144, 148, 139, 141, 139, 132, 143, 132, 141, 140, 133, 135, 139, 135, 135, 142, 149, 138, 143, 137, 143, 136, 130, 145, 128, 133, 143, 140, 138, 130, 148, 145, 146, 142, 139, 133, 141, 142, 138, 135, 139, 133, 139, 143, 141, 138, 134, 139, 134, 136, 133, 146, 138, 147, 142, 125, 133, 136, 139, 146, 142, 145, 145, 131, 136, 133, 140, 136, 131, 140, 140, 147, 150, 150, 138, 144, 146, 138, 130, 136, 138, 135, 141, 133, 134, 137, 137, 137, 137, 134, 139, 138, 139, 144, 137, 142, 136, 140, 144, 140, 148, 134, 137, 128, 140, 145, 137, 142, 129, 141, 148, 140, 144, 134, 133, 139, 146, 142, 140, 131, 144, 135, 140, 126, 138, 130, 142, 137, 144, 144, 139, 138, 127, 127, 132, 135, 134, 137, 136, 140, 140, 149, 134, 137, 131, 139, 133, 140, 137, 144, 138, 144, 149, 132, 139, 140, 139, 134, 147, 139, 144, 142, 143, 138, 129, 136, 134, 137, 142, 139, 141, 139, 147, 131, 140, 134, 138, 132, 132, 141, 139, 138, 148, 135, 143, 143, 134, 139, 143, 145, 141, 142, 137, 135, 135, 146, 133, 136, 144, 144, 141, 133, 140, 134, 130, 141, 145, 137, 141, 139, 134, 138, 138, 142, 146, 139, 143, 139, 140, 137, 146, 137, 140, 144, 131, 142, 133, 134, 138, 143, 145, 142, 145, 138, 141, 133, 134, 140, 137, 134, 140, 151, 133, 139, 143, 135, 143, 139, 142, 139, 144, 135, 133, 139, 141, 135, 141, 137, 134, 140, 139, 145, 140, 133, 145, 140, 145, 144, 142, 133, 140, 150, 144, 140, 140, 138, 143, 139, 143, 141, 135, 155, 139, 138, 148, 136, 147, 141, 132, 138, 142, 145, 146, 135, 144, 133, 139, 145, 141, 142, 133, 146, 136, 143, 147, 144, 136, 135, 139, 138, 136, 135, 138, 141, 133, 136, 140, 136, 129, 145, 138, 132, 133, 144, 140, 145, 143, 138, 143, 131, 149, 139, 141, 138, 152, 146, 138, 142, 133, 144, 145, 131, 136, 137, 136, 141, 131, 135, 136, 134, 129, 140, 132, 140, 141, 139, 144, 136, 136, 139, 139, 143, 140, 139, 136, 130, 142, 138, 141, 133, 136, 137, 140, 139, 145, 138, 142, 136, 139, 143, 135, 138, 138, 141, 135, 138, 141, 143, 140, 130, 137, 137, 133, 138, 137, 140, 136, 138, 141, 143, 142, 133, 141, 139, 137, 146, 133, 145, 139, 137, 143, 144, 135, 135, 145, 146, 136, 136, 139, 137, 137, 143, 137, 136, 149, 132, 132, 144, 143, 124, 141, 129, 137, 129, 155, 139, 134, 148, 136, 149, 139, 135, 136, 144, 138, 142, 131, 137, 133, 141, 130, 133, 130, 132, 142, 146, 135, 137, 138, 142, 133, 148, 152, 131, 146, 136, 146, 143, 131, 138, 140, 144, 151, 134, 126, 139, 142, 133, 140, 137, 134, 135, 145, 138, 135, 142, 140, 135, 127, 133, 139, 137, 137, 128, 130, 140, 139, 146, 140, 140, 146, 135, 138, 130, 141, 132, 136, 142, 136, 122, 137, 139, 139, 135, 137, 135, 140, 143, 146, 141, 141, 130, 139, 134, 139, 133, 140, 138, 131, 143, 143, 145, 140, 140, 140, 145, 136, 138, 145, 138, 132, 136, 141, 136, 135, 144, 133, 135, 141, 147, 138, 144, 145, 141, 142, 149, 144, 131, 138, 146, 137, 129, 136, 142, 131, 141, 140, 135, 139, 129, 139, 144, 131, 138, 134, 135, 138, 134, 139, 138, 144, 131, 153, 114, 134, 139, 140, 134, 131, 138, 134, 143, 142, 140, 125, 139, 136, 132, 136, 133, 145, 136, 142, 137, 148, 137, 152, 138, 134, 137, 135, 134, 137, 136, 141, 137, 141, 131, 137, 137, 140, 139, 129, 146, 138, 139, 140, 138, 137, 144, 139, 146, 144, 138, 137, 138, 143, 127, 141, 134, 136, 134, 142, 140, 141, 137, 135, 136, 135, 145, 136, 136, 143, 137, 142, 141, 135, 140, 137, 141, 132, 140, 142, 139, 142, 139, 144, 148, 137, 138, 131, 140, 141, 142, 141, 147, 135, 147, 142, 139, 140, 135, 139, 134, 135, 146, 145, 134, 141, 148, 147, 137, 133, 139, 137, 143, 144, 143, 140, 138, 141, 136, 143, 139, 140, 141, 138, 138, 138, 146, 150, 142, 141, 137, 134, 141, 141, 142, 141, 136, 141, 143, 136, 134, 129, 143, 135, 138, 136, 145, 141, 140, 138, 144, 140, 148, 136, 138, 137, 140, 155, 144, 141, 136, 142, 135, 140, 136, 137, 149, 140, 121, 137, 139, 139, 155, 139, 137, 145, 140, 134, 148, 142, 133, 147, 139, 140, 128, 132, 140, 150, 145, 137, 138, 136, 141, 138, 141, 149, 154, 142, 137, 147, 147, 136, 140, 144, 141, 138, 138, 139, 137, 139, 139, 128, 133, 139, 143, 139, 142, 136, 144, 146, 138, 130, 140, 137, 146, 144, 126, 138, 136, 136, 141, 145, 141, 130, 129, 138, 135, 149, 136, 138, 135, 142, 138, 135, 135, 143, 130, 130, 139, 131, 141, 135, 143, 135, 147, 138, 137, 138, 141, 134, 133, 150, 127, 150, 140, 137, 143, 135, 142, 137, 141, 145, 135, 142, 137, 144, 133, 140, 139, 142, 142, 150, 149, 147, 133, 142, 141, 141, 135, 144, 140, 139, 130, 130, 138, 143, 148, 145, 139, 140, 130, 131, 145, 137, 139, 142, 139, 148, 140, 137, 143, 136, 139, 142, 140, 136, 138, 132, 141, 149, 141, 143, 137, 134, 132, 147, 134, 138, 145, 125, 140, 145, 142, 140, 126, 130, 138, 134, 135, 138, 146, 133, 142, 130, 145, 136, 135, 136, 143, 138, 137, 135, 136, 141, 140, 134, 132, 133, 137, 145, 150, 137, 140, 148, 143, 139, 140, 136, 146, 136, 140, 141, 134, 140, 141, 134, 148, 139, 137, 136, 139, 153, 144, 135, 144, 132, 140, 141, 135, 129, 143, 137, 137, 140, 139, 142, 135, 137, 144, 139, 137, 148, 134, 133, 140, 134, 135, 137, 137, 142, 132, 136, 142, 148, 143, 135, 140, 130, 137, 136, 138, 145, 142, 136, 139, 138, 142, 138, 131, 133, 146, 134, 135, 134, 146, 137, 138, 138, 128, 142, 138, 136, 141, 138, 143, 147, 128, 135, 139, 142, 135, 130, 148, 146, 133, 139, 139, 136, 140, 138, 138, 148, 140, 133, 135, 130, 134, 134, 135, 130, 142, 134, 137, 135, 140, 136, 140, 135, 132, 144, 128, 143, 141, 140, 150, 143, 137, 127, 132, 138, 137, 137, 133, 142, 137, 141, 146, 136, 136, 150, 145, 145, 147, 139, 133, 145, 143, 142, 137, 137, 140, 141, 126, 132, 132, 138, 138, 145, 142, 138, 132, 140, 141, 135, 140, 136, 132, 140, 131, 142, 136, 140, 143, 142, 131, 133, 141, 134, 143, 135, 147, 144, 137, 123, 135, 144, 144, 136, 139, 135, 133, 137, 135, 140, 145, 130, 141, 134, 137, 141, 146, 138, 142, 141, 148, 137, 138, 139, 145, 142, 140, 136, 138, 142, 140, 136, 138, 143, 130, 137, 140, 146, 141, 140, 133, 138, 138, 127, 149, 139, 130, 149, 139, 138, 138, 137, 142, 131, 136, 140, 132, 143, 143, 138, 136, 137, 136, 141, 135, 137, 142, 135, 147, 149, 141, 136, 138, 136, 140, 136, 146, 134, 139, 145, 138, 142, 144, 134, 138, 133, 136, 150, 136, 137, 136, 142, 135, 136, 134, 139, 144, 141, 140, 137, 146, 138, 141, 136, 135, 137, 123, 135, 136, 134, 137, 137, 139, 137, 138, 145, 141, 130, 141, 135, 151, 140, 143, 143, 139, 143, 139, 139, 139, 143, 142, 138, 135, 140, 134, 138, 142, 145, 142, 135, 136, 139, 139, 134, 137, 144, 142, 143, 133, 144, 144, 135, 138, 147, 139, 149, 146, 135, 133, 143, 137, 138, 132, 130, 141, 149, 134, 135, 132, 149, 137, 131, 142, 135, 143, 135, 137, 132, 142, 131, 144, 143, 138, 141, 140, 132, 131, 131, 138, 135, 142, 133, 147, 140, 138, 136, 129, 136, 141, 142, 131, 129, 140, 143, 138, 138, 141, 133, 134, 138, 147, 147, 124, 138, 128, 135, 140, 140, 136, 136, 128, 145, 144, 143, 134, 134, 137, 135, 137, 133, 132, 136, 131, 142, 142, 135, 143, 134, 137, 133, 131, 136, 149, 133, 136, 131, 140, 135, 140, 152, 135, 144, 133, 142, 139, 138, 144, 138, 137, 138, 140, 134, 137, 144, 136, 134, 136, 129, 141, 141, 138, 130, 138, 144, 136, 139, 146, 141, 139, 144, 132, 137, 143, 142, 138, 135, 133, 132, 134, 135, 139, 144, 148, 132, 144, 133, 139, 135, 134, 145, 134, 133, 129, 131, 139, 140, 149, 145, 147, 142, 138, 144, 148, 142, 136, 152, 141, 131, 136, 144, 146, 138, 140, 137, 143, 142, 135, 134, 137, 140, 132, 141, 144, 138, 133, 143, 140, 142, 131, 140, 148, 140, 130, 138, 135, 135, 139, 134, 140, 130, 143, 145, 125, 146, 142, 140, 135, 148, 152, 130, 145, 153, 127, 148, 131, 139, 143, 145, 145, 147, 136, 138, 133, 134, 134, 132, 131, 147, 131, 138, 144, 131, 147, 144, 130, 138, 135, 135, 142, 162, 142, 140, 134, 137, 136, 145, 141, 146, 142, 154, 132, 150, 137, 143, 140, 143, 142, 134, 143, 135, 141, 138, 142, 135, 140, 143, 137, 149, 144, 140, 154, 142, 129, 134, 148, 138, 136, 161, 139, 137, 138, 117, 140, 134, 137, 134, 134, 134, 127, 137, 137, 135, 130, 133, 137, 134, 138, 150, 134, 135, 140, 148, 129, 143, 134, 140, 139, 136, 132, 127, 147, 133, 135, 147, 138, 135, 142, 138, 146, 129, 126, 136, 135, 141, 142, 130, 129, 138, 136, 143, 146, 145, 149, 124, 136, 134, 144, 135, 139, 152, 143, 141, 142, 129, 144, 132, 139, 142, 132, 140, 135, 140, 147, 131, 137, 131, 142, 127, 145, 128, 136, 132, 153, 141, 143, 145, 153, 136, 138, 154, 139, 144, 139, 123, 138, 141, 145, 136, 137, 147, 140, 146, 125, 136, 127, 142, 138, 142, 132, 138, 128, 143, 148, 139, 142, 142, 130, 145, 137, 136, 145, 134, 138, 132, 139, 152, 139, 149, 135, 141, 136, 141, 147, 135, 147, 138, 137, 141, 142, 128, 138, 140, 138, 146, 131, 131, 142, 139, 148, 142, 144, 140, 142, 143, 135, 146, 147, 147, 131, 142, 145, 134, 138, 131, 141, 137, 139, 135, 153, 136, 139, 130, 152, 135, 139, 141, 140, 145, 133, 144, 144, 129, 134, 138, 136, 140, 139, 144, 134, 137, 150, 128, 139, 129, 130, 127, 130, 137, 133, 140, 144, 141, 135, 141, 142, 138, 139, 144, 142, 148, 142, 137, 148, 133, 145, 128, 134, 147, 134, 146, 133, 139, 134, 140, 135, 136, 140, 132, 139, 135, 135, 135, 134, 126, 144, 136, 125, 140, 142, 119, 138, 143, 129, 145, 146, 139, 130, 140, 143, 135, 138, 135, 141, 140, 143, 132, 130, 127, 136, 131, 140, 140, 136, 131, 123, 126, 127, 138, 147, 136, 144, 132, 128, 126, 139, 150, 124, 137, 148, 142, 130, 134, 143, 145, 132, 131, 135, 148, 133, 136, 142, 135, 132, 143, 139, 133, 146, 144, 147, 134, 124, 137, 154, 135, 129, 134, 137, 136, 152, 144, 139, 133, 139, 142, 139, 143, 133, 133, 138, 134, 147, 135, 139, 122, 150, 137, 125, 130, 134, 131, 145, 135, 144, 143, 143, 126, 147, 148, 132, 144, 139, 135, 124, 142, 145, 139, 142, 132, 142, 146, 137, 141, 141, 131, 139, 126, 145, 134, 130, 147, 139, 142, 140, 136, 141, 123, 133, 140, 142, 139, 138, 143, 137, 141, 132, 128, 138, 130, 135, 137, 134, 135, 132, 142, 139, 141, 142, 151, 142, 144, 137, 138, 135, 126, 149, 139, 142, 136, 152, 132, 132, 142, 127, 128, 142, 144, 136, 137, 149, 139, 141, 142, 136, 127, 139, 144, 138, 131, 149, 147, 137, 142, 134, 136, 148, 137, 139, 134, 137, 140, 129, 135, 146, 133, 140, 149, 143, 145, 145, 134, 139, 133, 131, 137, 138, 143, 137, 149, 134, 146, 139, 141, 127, 142, 154, 145, 141, 127, 128, 129, 130, 124, 141, 142, 140, 150, 145, 141, 142, 149, 139, 126, 134, 142, 144, 134, 137, 140, 132, 140, 129, 133, 132, 141, 145, 145, 126, 128, 134, 137, 132, 133, 140, 136, 140, 146, 123, 136, 134, 135, 138, 152, 142, 136, 127, 137, 149, 129, 135, 128, 136, 137, 144, 131, 137, 137, 135, 141, 142, 138, 139, 135, 138, 150, 131, 136, 137, 132, 151, 138, 123, 143, 143, 142, 127, 138, 131, 153, 141, 142, 135, 143, 132, 142, 130, 131, 135, 133, 135, 148, 141, 142, 161, 140, 133, 139, 147, 134, 139, 140, 130, 150, 142, 156, 140, 137, 134, 148, 132, 139, 137, 131, 137, 137, 124, 146, 135, 148, 142, 143, 145, 134, 137, 134, 135, 138, 139, 135, 134, 136, 146, 146, 148, 143, 137, 143, 140, 132, 144, 146, 140, 129, 145, 125, 146, 126, 137, 133, 128, 150, 141, 138, 137, 142, 133, 146, 134, 137, 143, 138, 129, 130, 141, 138, 145, 146, 139, 146, 137, 141, 138, 146, 150, 141, 133, 128, 137, 141, 132, 130, 146, 143, 131, 143, 133, 136, 146, 145, 131, 144, 144, 143, 136, 157, 149, 138, 150, 136, 142, 145, 159, 133, 149, 138, 146, 131, 141, 140, 139, 139, 133, 141, 145, 143, 137, 135, 141, 134, 142, 150, 139, 134, 153, 141, 128, 141, 146, 121, 144, 138, 129, 143, 138, 143, 138, 145, 139, 140, 137, 148, 142, 145, 139, 139, 138, 129, 138, 143, 140, 136, 141, 153, 130, 143, 132, 146, 143, 131, 128, 146, 130, 141, 132, 146, 142, 142, 147, 147, 118, 133, 147, 139, 131, 137, 138, 144, 141, 148, 130, 139, 144, 135, 139, 130, 137, 142, 142, 144, 145, 138, 129, 142, 136, 126, 146, 141, 141, 140, 134, 131, 147, 142, 139, 141, 143, 150, 145, 143, 143, 133, 132, 146, 144, 144, 142, 149, 145, 131, 136, 144, 140, 139, 129, 142, 140, 133, 144, 142, 147, 138, 136, 133, 136, 135, 141, 141, 138, 126, 144, 143, 143, 137, 137, 145, 137, 140, 154, 136, 139, 128, 132, 133, 145, 129, 142, 131, 145, 138, 142, 130, 136, 138, 139, 145, 142, 126, 147, 137, 136, 130, 133, 133, 135, 148, 143, 135, 138, 140, 156, 131, 141, 142, 142, 142, 143, 148, 127, 134, 141, 139, 131, 139, 144, 138, 135, 131, 147, 143, 139, 141, 128, 143, 136, 133, 143, 133, 138, 136, 143, 133, 146, 142, 134, 131, 142, 140, 128, 139, 130, 145, 142, 149, 134, 135, 145, 134, 128, 144, 148, 153, 133, 136, 134, 138, 138, 145, 141, 141, 129, 152, 146, 143, 141, 133, 126, 133, 123, 132, 134, 132, 134, 146, 135, 145, 144, 134, 137, 128, 138, 142, 120, 148, 146, 141, 139, 137, 140, 138, 137, 137, 134, 147, 150, 146, 138, 130, 132, 133, 145, 133, 132, 127, 149, 133, 131, 139, 136, 138, 141, 150, 139, 144, 137, 139, 147, 145, 144, 142, 148, 145, 128, 133, 141, 147, 142, 131, 156, 140, 136, 132, 137, 133, 143, 132, 142, 139, 134, 134, 139, 133, 141, 139, 143, 137, 138, 129, 130, 139, 138, 129, 137, 134, 146, 142, 138, 134, 134, 143, 133, 140, 144, 140, 143, 137, 138, 144, 140, 138, 136, 137, 141, 136, 141, 135, 137, 134, 135, 141, 128, 136, 130, 140, 145, 139, 133, 141, 139, 136, 130, 138, 140, 140, 136, 144, 141, 154, 130, 145, 129, 142, 139, 134, 125, 135, 133, 147, 138, 142, 140, 142, 143, 133, 136, 136, 132, 140, 134, 131, 143, 141, 150, 142, 137, 145, 139, 133, 144, 140, 137, 141, 141, 146, 130, 137, 138, 146, 140, 133, 138, 132, 140, 143, 140, 140, 144, 139, 142, 137, 143, 142, 138, 140, 139, 138, 129, 141, 143, 140, 133, 143, 136, 136, 131, 143, 139, 141, 136, 135, 152, 145, 139, 144, 134, 135, 136, 131, 134, 141, 131, 137, 141, 133, 125, 140, 142, 146, 127, 137, 128, 149, 134, 145, 131, 142, 134, 137, 137, 127, 145, 143, 146, 145, 140, 143, 129, 143, 131, 142, 135, 140, 143, 137, 129, 143, 135, 143, 143, 146, 150, 142, 146, 134, 134, 147, 139, 134, 141, 155, 132, 140, 140, 137, 138, 143, 135, 139, 134, 135, 137, 142, 154, 134, 141, 137, 143, 143, 140, 143, 133, 131, 133, 134, 139, 134, 141, 137, 141, 144, 134, 136, 135, 130, 134, 131, 137, 140, 136, 139, 144, 140, 136, 136, 123, 132, 134, 126, 133, 149, 123, 141, 142, 136, 147, 144, 136, 138, 145, 133, 139, 142, 131, 148, 136, 140, 141, 142, 140, 148, 146, 135, 141, 150, 137, 140, 144, 141, 131, 141, 141, 129, 136, 137, 131, 142, 146, 138, 143, 130, 133, 126, 145, 137, 141, 136, 136, 136, 134, 152, 145, 132, 144, 140, 131, 137, 144, 136, 133, 133, 141, 138, 147, 148, 135, 153, 140, 136, 140, 126, 129, 132, 135, 141, 140, 146, 134, 134, 136, 134, 140, 140, 148, 143, 136, 141, 135, 133, 134, 146, 137, 147, 141, 142, 140, 147, 140, 132, 141, 146, 137, 137, 145, 138, 136, 138, 142, 140, 145, 140, 148, 138, 130, 140, 137, 139, 141, 148, 133, 130, 139, 142, 141, 135, 148, 138, 134, 139, 141, 138, 141, 131, 143, 134, 139, 136, 136, 140, 149, 136, 144, 146, 145, 143, 145, 138, 137, 132, 134, 146, 126, 157, 135, 136, 145, 144, 133, 145, 149, 129, 128, 150, 139, 139, 136, 141, 142, 148, 132, 133, 137, 142, 128, 131, 137, 141, 141, 138, 148, 138, 148, 137, 139, 137, 133, 145, 134, 150, 132, 143, 139, 135, 135, 148, 131, 133, 139, 147, 135, 138, 141, 142, 134, 140, 141, 129, 143, 142, 135, 135, 129, 146, 137, 146, 141, 131, 137, 135, 134, 141, 136, 138, 142, 154, 148, 141, 137, 143, 154, 137, 135, 137, 147, 148, 139, 128, 134, 129, 145, 138, 143, 146, 140, 139, 136, 146, 147, 138, 138, 138, 141, 140, 138, 141, 133, 144, 133, 136, 139, 137, 141, 132, 141, 142, 141, 144, 144, 146, 144, 126, 133, 135, 133, 139, 142, 131, 149, 130, 144, 150, 134, 126, 136, 123, 143, 142, 137, 136, 144, 136, 136, 139, 148, 140, 135, 141, 138, 136, 148, 143, 136, 137, 148, 136, 139, 139, 140, 143, 142, 142, 131, 141, 143, 138, 137, 143, 140, 146, 144, 139, 142, 139, 146, 137, 138, 146, 138, 140, 137, 145, 137, 138, 141, 135, 132, 138, 146, 135, 145, 148, 134, 139, 142, 139, 139, 135, 137, 143, 139, 141, 144, 141, 145, 131, 139, 139, 137, 136, 145, 141, 140, 147, 142, 139, 146, 139, 136, 134, 136, 140, 142, 142, 135, 141, 140, 136, 138, 131, 131, 140, 143, 132, 148, 142, 140, 141, 136, 142, 142, 133, 131, 136, 139, 133, 139, 139, 129, 143, 143, 141, 141, 136, 140, 146, 133, 146, 138, 142, 130, 140, 141, 141, 144, 143, 137, 145, 139, 130, 148, 142, 139, 145, 133, 144, 137, 146, 137, 138, 142, 139, 138, 137, 138, 139, 143, 132, 140, 137, 141, 139, 147, 144, 144, 135, 131, 142, 141, 145, 138, 137, 135, 132, 139, 132, 135, 141, 140, 141, 141, 146, 134, 138, 140, 142, 137, 135, 128, 146, 133, 139, 137, 140, 139, 140, 141, 147, 141, 144, 138, 138, 138, 143, 137, 138, 149, 135, 142, 139, 147, 141, 140, 146, 131, 136, 143, 143, 144, 144, 138, 143, 135, 138, 142, 136, 136, 145, 138, 139, 144, 137, 140, 133, 134, 137, 141, 145, 138, 141, 140, 137, 144, 141, 145, 137, 142, 141, 141, 141, 149, 134, 140, 148, 138, 137, 139, 136, 131, 142, 136, 146, 143, 136, 127, 143, 142, 138, 130, 127, 131, 145, 142, 135, 138, 136, 148, 136, 138, 139, 138, 135, 145, 136, 135, 143, 141, 145, 137, 145, 134, 143, 137, 127, 146, 135, 137, 145, 139, 133, 142, 133, 139, 138, 138, 139, 148, 136, 143, 138, 138, 123, 137, 157, 149, 133, 138, 136, 136, 138, 138, 137, 140, 142, 133, 145, 143, 133, 144, 143, 142, 139, 146, 139, 147, 135, 137, 141, 135, 151, 141, 138, 137, 140, 144, 135, 138, 145, 135, 136, 138, 136, 134, 141, 139, 136, 138, 147, 133, 138, 142, 142, 131, 150, 143, 133, 141, 140, 142, 139, 141, 139, 136, 135, 139, 142, 145, 140, 143, 136, 135, 140, 138, 135, 140, 134, 139, 136, 148, 145, 130, 145, 136, 141, 137, 143, 146, 143, 137, 142, 149, 135, 144, 133, 142, 142, 132, 137, 150, 138, 131, 143, 143, 141, 144, 139, 141, 148, 141, 136, 132, 145, 132, 137, 142, 139, 133, 136, 145, 138, 141, 142, 125, 133, 143, 129, 140, 131, 145, 131, 139, 140, 138, 136, 141, 136, 151, 132, 139, 131, 138, 127, 139, 138, 141, 136, 135, 134, 147, 142, 136, 140, 133, 140, 141, 138, 135, 139, 140, 140, 137, 138, 132, 135, 136, 145, 134, 133, 133, 144, 141, 141, 137, 136, 140, 142, 138, 137, 145, 150, 148, 146, 135, 140, 164, 131, 139, 135, 141, 154, 136, 138, 142, 131, 145, 149, 138, 126, 134, 143, 134, 129, 137, 142, 144, 132, 138, 140, 141, 131, 139, 145, 134, 150, 153, 152, 134, 134, 139, 138, 130, 121, 144, 134, 133, 139, 136, 126, 141, 140, 129, 131, 149, 136, 140, 131, 138, 137, 146, 135, 134, 139, 138, 139, 146, 145, 142, 142, 131, 134, 132, 140, 136, 143, 142, 131, 152, 140, 132, 144, 135, 148, 136, 142, 138, 130, 136, 140, 135, 142, 154, 138, 134, 139, 141, 142, 138, 146, 139, 142, 137, 142, 148, 137, 132, 125, 151, 145, 141, 134, 142, 147, 147, 147, 144, 140, 146, 136, 140, 135, 128, 143, 137, 131, 140, 134, 147, 145, 136, 127, 149, 157, 133, 132, 133, 144, 133, 135, 135, 133, 144, 142, 143, 135, 134, 141, 145, 139, 146, 144, 144, 152, 138, 152, 131, 125, 136, 137, 145, 150, 131, 132, 143, 145, 132, 145, 131, 134, 129, 139, 131, 134, 137, 144, 135, 138, 135, 138, 140, 138, 144, 134, 124, 140, 135, 149, 143, 131, 129, 139, 137, 142, 126, 146, 134, 146, 143, 136, 129, 144, 142, 143, 133, 144, 125, 136, 138, 134, 146, 130, 132, 141, 137, 137, 137, 142, 136, 133, 140, 138, 142, 137, 135, 136, 140, 138, 150, 134, 144, 134, 138, 143, 132, 144, 145, 143, 132, 143, 136, 142, 136, 130, 144, 140, 136, 141, 142, 136, 131, 127, 148, 138, 147, 129, 139, 127, 142, 135, 161, 136, 143, 148, 140, 136, 144, 139, 141, 139, 126, 141, 142, 137, 138, 129, 128, 130, 152, 138, 145, 137, 144, 131, 147, 133, 135, 142, 134, 127, 129, 142, 147, 145, 147, 151, 142, 139, 138, 128, 139, 148, 134, 148, 139, 143, 134, 137, 140, 132, 137, 135, 136, 145, 131, 136, 144, 134, 141, 143, 133, 137, 140, 145, 132, 139, 133, 133, 135, 134, 140, 154, 142, 142, 139, 134, 131, 152, 140, 149, 136, 140, 132, 143, 145, 143, 141, 146, 133, 133, 137, 133, 144, 144, 144, 134, 144, 138, 132, 149, 142, 145, 138, 148, 143, 146, 126, 139, 135, 132, 140, 153, 142, 141, 146, 126, 142, 136, 135, 137, 148, 141, 138, 141, 132, 132, 130, 141, 138, 130, 119, 135, 132, 139, 134, 142, 141, 144, 145, 136, 142, 136, 139, 144, 139, 158, 143, 139, 144, 134, 136, 137, 120, 121, 145, 144, 129, 139, 144, 131, 144, 139, 146, 132, 141, 145, 145, 142, 134, 138, 139, 149, 132, 138, 145, 153, 142, 135, 145, 142, 135, 135, 135, 144, 140, 134, 142, 128, 138, 158, 135, 140, 136, 138, 135, 140, 140, 141, 136, 138, 143, 135, 140, 135, 130, 133, 139, 138, 142, 137, 134, 140, 142, 142, 137, 139, 145, 132, 138, 140, 144, 135, 146, 142, 140, 149, 140, 142, 140, 125, 136, 136, 143, 145, 134, 134, 143, 136, 133, 143, 138, 142, 128, 138, 134, 143, 134, 139, 143, 139, 145, 143, 136, 131, 137, 142, 143, 145, 134, 143, 152, 137, 142, 142, 137, 128, 143, 146, 147, 132, 142, 136, 133, 138, 145, 140, 142, 146, 139, 136, 151, 143, 137, 131, 135, 138, 140, 134, 132, 143, 139, 154, 138, 142, 139, 137, 140, 133, 141, 137, 141, 131, 137, 139, 143, 141, 147, 143, 137, 133, 137, 140, 139, 137, 141, 131, 140, 152, 139, 140, 138, 136, 129, 145, 135, 136, 140, 132, 139, 141, 141, 135, 144, 139, 141, 149, 143, 135, 147, 133, 137, 139, 139, 147, 130, 133, 138, 136, 133, 140, 137, 149, 146, 143, 145, 138, 141, 138, 136, 134, 139, 142, 137, 135, 138, 139, 129, 146, 143, 146, 135, 144, 142, 134, 135, 134, 135, 132, 138, 145, 147, 135, 149, 130, 135, 137, 142, 135, 140, 138, 136, 138, 141, 134, 154, 124, 138, 139, 132, 139, 136, 131, 133, 142, 135, 139, 147, 136, 129, 136, 137, 142, 140, 135, 136, 137, 141, 126, 136, 138, 125, 142, 143, 141, 126, 133, 139, 148, 140, 129, 126, 138, 136, 136, 129, 144, 148, 132, 134, 138, 144, 131, 137, 144, 138, 132, 136, 144, 136, 125, 146, 133, 139, 136, 141, 152, 141, 132, 143, 131, 146, 142, 140, 144, 134, 132, 137, 144, 136, 141, 135, 138, 152, 149, 143, 138, 139, 138, 140, 133, 148, 148, 141, 146, 133, 141, 136, 139, 136, 134, 133, 149, 134, 134, 135, 139, 134, 134, 138, 141, 135, 138, 139, 138, 139, 132, 143, 137, 137, 142, 139, 154, 136, 141, 128, 135, 138, 139, 143, 135, 138, 135, 137, 141, 138, 136, 140, 136, 139, 141, 140, 137, 138, 139, 135, 138, 140, 135, 138, 140, 138, 142, 137, 142, 145, 136, 135, 146, 142, 149, 139, 135, 134, 140, 141, 141, 135, 133, 141, 139, 132, 142, 135, 139, 136, 131, 144, 143, 146, 139, 142, 137, 139, 148, 141, 142, 133, 136, 139, 146, 131, 146, 142, 140, 136, 144, 139, 144, 133, 132, 139, 148, 147, 135, 139, 138, 136, 140, 142, 137, 147, 133, 147, 140, 142, 140, 139, 147, 146, 138, 135, 124, 138, 138, 149, 136, 141, 137, 140, 140, 136, 134, 136, 141, 138, 136, 134, 140, 134, 147, 134, 136, 131, 136, 141, 146, 134, 134, 137, 141, 137, 138, 131, 141, 136, 132, 135, 147, 128, 146, 138, 139, 142, 139, 136, 138, 139, 139, 151, 136, 136, 146, 138, 137, 139, 134, 144, 138, 145, 138, 144, 134, 145, 130, 154, 133, 137, 132, 133, 143, 136, 132, 140, 138, 135, 138, 137, 140, 139, 145, 132, 140, 132, 144, 137, 141, 141, 127, 147, 142, 142, 146, 139, 146, 140, 140, 133, 147, 129, 145, 141, 139, 130, 133, 139, 134, 128, 134, 145, 134, 107, 143, 142, 143, 137, 135, 146, 135, 138, 144, 151, 137, 144, 140, 130, 139, 141, 134, 134, 138, 141, 141, 131, 138, 135, 137, 138, 131, 132, 144, 133, 144, 139, 147, 140, 140, 134, 134, 141, 137, 133, 144, 130, 135, 138, 138, 139, 147, 135, 144, 127, 143, 138, 141, 133, 142, 137, 134, 142, 154, 132, 145, 137, 138, 136, 131, 137, 148, 137, 137, 145, 140, 131, 137, 137, 144, 133, 136, 137, 142, 142, 133, 131, 145, 136, 142, 130, 136, 139, 139, 138, 143, 131, 141, 145, 145, 145, 132, 138, 142, 144, 140, 134, 141, 141, 143, 138, 144, 134, 137, 133, 142, 136, 137, 140, 130, 128, 136, 126, 138, 138, 142, 137, 136, 136, 142, 142, 141, 140, 135, 143, 142, 134, 132, 129, 130, 153, 138, 139, 139, 141, 150, 129, 141, 136, 137, 145, 144, 136, 139, 136, 134, 132, 137, 133, 145, 137, 137, 133, 135, 133, 133, 139, 138, 144, 133, 135, 146, 143, 139, 138, 150, 137, 138, 138, 139, 155, 146, 136, 135, 140, 138, 130, 139, 135, 135, 143, 130, 135, 135, 141, 136, 146, 140, 138, 138, 142, 137, 139, 152, 140, 140, 137, 146, 138, 147, 140, 139, 145, 141, 146, 140, 144, 140, 143, 137, 136, 133, 135, 132, 131, 133, 145, 151, 137, 151, 147, 148, 137, 149, 136, 136, 144, 130, 139, 143, 143, 144, 131, 143, 135, 136, 136, 135, 132, 139, 136, 141, 131, 136, 139, 140, 131, 138, 141, 138, 136, 146, 134, 136, 146, 127, 145, 142, 143, 131, 139, 154, 134, 129, 139, 141, 143, 133, 139, 142, 137, 149, 134, 136, 136, 143, 138, 144, 144, 136, 141, 144, 142, 134, 138, 146, 136, 140, 140, 145, 142, 140, 142, 138, 142, 138, 139, 135, 141, 143, 138, 152, 136, 141, 132, 140, 142, 131, 146, 138, 139, 143, 138, 142, 141, 145, 137, 135, 148, 141, 138, 144, 147, 141, 135, 132, 130, 138, 142, 142, 141, 136, 137, 143, 140, 137, 140, 144, 137, 142, 141, 141, 137, 136, 145, 144, 136, 145, 124, 136, 134, 135, 138, 129, 144, 132, 147, 141, 140, 136, 144, 150, 139, 133, 138, 143, 139, 137, 145, 135, 143, 150, 135, 140, 137, 136, 141, 140, 142, 136, 149, 146, 140, 130, 136, 143, 140, 136, 137, 135, 140, 144, 144, 132, 142, 140, 135, 137, 145, 142, 144, 137, 146, 128, 139, 143, 140, 146, 132, 136, 141, 145, 136, 132, 145, 132, 138, 137, 142, 136, 143, 130, 134, 140, 139, 138, 128, 136, 140, 135, 144, 128, 140, 139, 138, 142, 144, 135, 137, 135, 135, 130, 138, 134, 148, 138, 135, 142, 135, 142, 141, 140, 135, 139, 140, 143, 139, 142, 141, 142, 135, 139, 134, 143, 141, 144, 134, 133, 133, 143, 146, 147, 137, 144, 140, 146, 133, 143, 131, 147, 132, 138, 138, 134, 142, 138, 141, 138, 139, 139, 146, 137, 139, 136, 140, 146, 135, 149, 144, 137, 142, 135, 140, 139, 145, 139, 141, 147, 146, 137, 136, 142, 152, 143, 135, 131, 145, 138, 137, 140, 136, 140, 143, 137, 145, 148, 145, 141, 134, 134, 143, 142, 138, 140, 143, 137, 135, 142, 141, 144, 135, 147, 143, 142, 138, 141, 136, 137, 137, 135, 139, 139, 137, 140, 133, 136, 142, 136, 134, 146, 137, 145, 139, 137, 141, 143, 141, 135, 132, 138, 141, 142, 139, 143, 136, 131, 144, 148, 145, 136, 135, 143, 136, 135, 137, 137, 131, 138, 137, 136, 148, 136, 143, 140, 137, 136, 137, 139, 142, 144, 135, 140, 132, 142, 140, 146, 140, 137, 135, 143, 139, 143, 132, 142, 143, 136, 132, 140, 136, 142, 135, 136, 136, 140, 133, 139, 131, 129, 137, 141, 142, 145, 140, 143, 147, 140, 141, 135, 149, 135, 140, 143, 139, 142, 125, 139, 138, 132, 132, 138, 132, 138, 133, 149, 132, 147, 134, 138, 143, 144, 138, 141, 136, 135, 145, 139, 137, 137, 139, 138, 141, 138, 141, 142, 135, 143, 134, 144, 138, 139, 134, 148, 144, 144, 143, 139, 147, 134, 134, 132, 145, 137, 129, 139, 146, 144, 136, 134, 140, 138, 143, 145, 139, 138, 147, 139, 135, 134, 140, 133, 142, 138, 148, 139, 139, 140, 139, 135, 137, 140, 141, 139, 135, 139, 146, 143, 141, 136, 136, 131, 142, 134, 141, 142, 147, 135, 135, 136, 140, 140, 138, 132, 141, 133, 129, 129, 138, 136, 136, 136, 137, 143, 146, 131, 135, 136, 133, 135, 137, 139, 137, 143, 136, 146, 147, 138, 141, 143, 136, 136, 145, 132, 142, 144, 133, 140, 139, 142, 140, 135, 150, 146, 140, 141, 138, 136, 142, 135, 132, 140, 138, 140, 141, 145, 136, 143, 135, 142, 132, 142, 136, 134, 146, 142, 136, 138, 137, 140, 139, 139, 132, 133, 142, 134, 133, 143, 138, 145, 140, 138, 139, 141, 139, 142, 138, 127, 141, 136, 138, 134, 132, 146, 137, 142, 133, 138, 141, 143, 141, 146, 144, 140, 142, 136, 140, 134, 147, 136, 139, 139, 139, 139, 137, 139, 140, 141, 144, 141, 136, 132, 138, 135, 139, 139, 132, 131, 149, 136, 142, 143, 141, 139, 143, 140, 138, 140, 136, 144, 137, 137, 132, 135, 141, 144, 142, 140, 138, 135, 129, 140, 141, 130, 139, 138, 136, 136, 133, 146, 137, 142, 144, 141, 141, 144, 137, 133, 143, 125, 135, 144, 138, 134, 144, 130, 142, 131, 145, 138, 144, 135, 137, 138, 145, 138, 148, 138, 131, 136, 143, 145, 134, 136, 130, 129, 142, 138, 131, 140, 136, 140, 139, 138, 139, 133, 144, 134, 137, 142, 139, 139, 144, 145, 136, 141, 136, 138, 143, 149, 138, 135, 143, 139, 129, 137, 132, 142, 136, 140, 139, 128, 142, 138, 148, 139, 139, 139, 141, 135, 140, 130, 139, 133, 133, 135, 137, 138, 130, 127, 133, 142, 131, 138, 135, 137, 141, 140, 140, 126, 137, 140, 136, 136, 139, 137, 133, 143, 147, 145, 135, 137, 134, 135, 139, 144, 145, 142, 137, 144, 137, 134, 130, 135, 135, 143, 142, 133, 138, 138, 145, 138, 134, 141, 136, 143, 131, 133, 130, 151, 142, 137, 143, 133, 137, 144, 146, 144, 134, 133, 137, 139, 145, 139, 145, 135, 149, 144, 142, 138, 144, 144, 133, 134, 147, 138, 145, 143, 140, 138, 142, 138, 141, 143, 135, 145, 139, 135, 142, 139, 135, 136, 133, 142, 138, 141, 142, 132, 138, 134, 139, 138, 137, 151, 148, 144, 139, 145, 132, 140, 134, 140, 140, 134, 142, 148, 139, 144, 136, 136, 144, 137, 135, 148, 130, 134, 153, 140, 137, 141, 137, 129, 137, 135, 145, 147, 141, 145, 140, 146, 149, 136, 135, 144, 132, 149, 135, 140, 133, 137, 138, 141, 130, 144, 141, 137, 145, 134, 132, 134, 139, 135, 143, 129, 130, 139, 143, 143, 144, 127, 137, 131, 137, 139, 143, 138, 142, 142, 134, 142, 143, 135, 143, 125, 130, 134, 141, 147, 139, 138, 142, 132, 139, 138, 133, 138, 139, 147, 133, 138, 132, 139, 151, 136, 139, 136, 140, 140, 144, 132, 144, 136, 131, 134, 140, 143, 136, 135, 135, 130, 132, 146, 140, 138, 146, 136, 142, 136, 143, 132, 138, 134, 133, 137, 144, 137, 132, 125, 132, 141, 135, 138, 136, 136, 142, 139, 139, 132, 138, 135, 130, 144, 136, 137, 146, 143, 143, 138, 131, 142, 136, 135, 146, 132, 134, 135, 143, 132, 132, 141, 132, 135, 137, 135, 138, 143, 135, 140, 141, 138, 120, 143, 125, 141, 130, 142, 138, 144, 139, 136, 138, 133, 140, 146, 128, 134, 137, 144, 133, 135, 129, 137, 140, 140, 146, 145, 148, 139, 139, 127, 141, 130, 156, 132, 133, 134, 145, 139, 144, 143, 143, 140, 145, 145, 138, 148, 133, 130, 136, 141, 141, 140, 139, 146, 137, 134, 143, 145, 140, 129, 138, 133, 144, 137, 126, 146, 149, 142, 134, 139, 141, 144, 137, 134, 146, 137, 129, 124, 138, 140, 137, 147, 126, 135, 137, 137, 143, 139, 145, 141, 141, 136, 133, 134, 140, 141, 152, 135, 141, 142, 137, 138, 134, 136, 140, 133, 137, 140, 144, 139, 143, 140, 137, 137, 137, 139, 135, 132, 149, 140, 148, 138, 148, 141, 127, 143, 139, 138, 148, 137, 132, 138, 136, 139, 143, 143, 124, 140, 144, 130, 145, 132, 134, 140, 130, 148, 144, 126, 136, 152, 139, 138, 134, 140, 132, 134, 138, 135, 142, 142, 145, 135, 142, 140, 141, 136, 140, 140, 156, 142, 141, 141, 148, 134, 143, 130, 131, 144, 139, 133, 139, 135, 135, 134, 139, 144, 137, 134, 135, 138, 143, 137, 144, 142, 137, 134, 137, 138, 137, 134, 140, 131, 139, 130, 141, 146, 145, 150, 147, 141, 138, 138, 140, 146, 145, 129, 146, 144, 141, 144, 142, 141, 151, 142, 147, 131, 131, 133, 135, 146, 135, 137, 139, 134, 144, 136, 141, 144, 134, 139, 144, 140, 141, 129, 139, 145, 134, 141, 134, 139, 140, 135, 141, 139, 130, 146, 132, 145, 135, 143, 136, 131, 139, 135, 137, 133, 135, 125, 139, 138, 145, 138, 154, 139, 136, 148, 138, 143, 148, 146, 138, 137, 145, 130, 156, 137, 145, 142, 139, 128, 141, 147, 134, 135, 139, 148, 150, 136, 140, 136, 145, 128, 136, 138, 137, 145, 141, 139, 135, 147, 135, 125, 139, 138, 136, 141, 135, 145, 143, 137, 140, 137, 141, 141, 139, 139, 145, 137, 135, 139, 137, 133, 136, 143, 138, 133, 140, 136, 138, 133, 137, 139, 141, 136, 146, 133, 139, 140, 144, 142, 140, 138, 130, 146, 132, 140, 138, 136, 146, 133, 142, 139, 148, 133, 123, 143, 144, 135, 147, 137, 137, 134, 141, 134, 126, 138, 136, 139, 142, 135, 137, 143, 137, 136, 134, 135, 142, 139, 139, 137, 139, 138, 145, 142, 130, 129, 134, 137, 147, 130, 144, 125, 130, 137, 138, 140, 145, 140, 136, 133, 143, 136, 142, 138, 136, 138, 127, 135, 141, 137, 146, 133, 138, 143, 139, 145, 145, 131, 137, 141, 142, 143, 132, 136, 138, 148, 138, 147, 125, 145, 131, 151, 134, 139, 141, 137, 143, 138, 131, 139, 140, 131, 139, 152, 136, 135, 144, 139, 142, 138, 137, 136, 128, 145, 140, 135, 133, 137, 151, 144, 141, 132, 132, 140, 130, 139, 141, 143, 137, 140, 136, 131, 128, 141, 145, 147, 137, 138, 143, 146, 137, 140, 139, 132, 134, 133, 143, 146, 140, 156, 149, 137, 136, 132, 136, 131, 136, 131, 142, 128, 136, 149, 130, 147, 131, 147, 139, 140, 142, 143, 144, 141, 139, 133, 136, 135, 137, 136, 140, 147, 142, 140, 134, 144, 132, 139, 136, 140, 136, 136, 137, 134, 139, 143, 132, 136, 133, 143, 135, 156, 143, 144, 138, 146, 143, 139, 134, 133, 131, 137, 137, 141, 143, 146, 135, 133, 133, 124, 130, 141, 138, 155, 147, 137, 140, 128, 140, 143, 145, 136, 144, 130, 141, 135, 128, 139, 150, 136, 132, 138, 134, 147, 132, 147, 143, 137, 140, 142, 149, 133, 131, 129, 143, 131, 138, 131, 145, 141, 146, 140, 131, 139, 133, 136, 138, 126, 147, 135, 143, 130, 131, 140, 147, 130, 141, 143, 151, 147, 134, 139, 143, 138, 136, 131, 134, 145, 138, 137, 136, 137, 137, 145, 136, 130, 141, 142, 135, 139, 137, 148, 132, 136, 136, 139, 138, 133, 133, 129, 141, 137, 148, 142, 140, 141, 133, 147, 133, 139, 134, 127, 144, 141, 140, 132, 144, 135, 138, 140, 149, 137, 143, 141, 134, 134, 140, 146, 142, 138, 142, 144, 149, 144, 138, 140, 151, 135, 147, 137, 139, 140, 134, 133, 146, 145, 134, 142, 136, 145, 139, 142, 142, 136, 142, 135, 136, 130, 142, 139, 138, 131, 127, 142, 141, 135, 131, 138, 141, 131, 142, 143, 135, 144, 134, 146, 133, 146, 148, 135, 135, 127, 140, 137, 161, 143, 140, 137, 136, 153, 138, 129, 142, 131, 136, 142, 137, 134, 143, 136, 149, 145, 133, 144, 139, 130, 142, 134, 138, 149, 137, 138, 137, 145, 144, 131, 148, 136, 139, 142, 138, 136, 151, 140, 135, 150, 146, 137, 130, 130, 142, 144, 140, 141, 144, 141, 139, 140, 124, 140, 138, 148, 140, 151, 141, 141, 139, 136, 155, 147, 134, 138, 135, 139, 142, 135, 153, 137, 138, 138, 129, 147, 142, 147, 144, 146, 146, 144, 140, 135, 136, 138, 143, 138, 135, 138, 141, 138, 136, 132, 143, 130, 142, 136, 145, 134, 135, 139, 136, 144, 134, 148, 137, 140, 131, 154, 133, 142, 128, 137, 135, 128, 139, 123, 126, 144, 140, 141, 136, 129, 133, 137, 133, 131, 130, 136, 145, 148, 135, 141, 143, 139, 147, 138, 142, 148, 134, 140, 144, 137, 137, 144, 142, 134, 141, 146, 128, 134, 144, 138, 139, 134, 135, 139, 130, 137, 139, 149, 134, 139, 138, 138, 139, 141, 134, 142, 147, 137, 132, 141, 131, 134, 139, 136, 144, 145, 141, 137, 130, 142, 130, 139, 135, 145, 139, 145, 144, 130, 134, 138, 132, 139, 132, 146, 140, 140, 140, 145, 139, 142, 155, 139, 131, 143, 135, 137, 148, 154, 145, 138, 150, 134, 140, 144, 143, 138, 138, 134, 137, 137, 139, 134, 142, 130, 134, 140, 133, 137, 143, 137, 139, 155, 134, 143, 137, 136, 140, 137, 140, 136, 145, 138, 143, 143, 141, 134, 134, 143, 132, 149, 136, 134, 150, 138, 128, 129, 145, 135, 128, 138, 131, 143, 145, 139, 148, 135, 140, 136, 135, 139, 135, 139, 138, 153, 145, 138, 133, 136, 130, 130, 134, 134, 135, 141, 139, 133, 139, 137, 131, 141, 141, 140, 138, 131, 155, 142, 137, 129, 126, 131, 129, 140, 125, 141, 135, 134, 138, 138, 134, 125, 134, 133, 130, 144, 132, 128, 134, 142, 137, 136, 137, 143, 147, 150, 140, 138, 136, 141, 137, 138, 131, 140, 138, 145, 135, 141, 134, 148, 139, 132, 134, 131, 132, 141, 131, 141, 143, 129, 143, 140, 146, 129, 134, 133, 139, 141, 137, 144, 141, 134, 134, 128, 136, 136, 139, 131, 154, 129, 139, 142, 146, 147, 140, 144, 138, 128, 136, 136, 132, 128, 149, 138, 137, 145, 131, 143, 132, 132, 136, 146, 139, 142, 138, 133, 154, 143, 144, 145, 129, 131, 135, 137, 141, 137, 142, 138, 150, 126, 138, 131, 152, 138, 144, 136, 136, 140, 137, 137, 133, 137, 143, 133, 136, 138, 143, 143, 143, 147, 135, 137, 148, 138, 126, 145, 134, 139, 133, 147, 142, 146, 148, 136, 140, 137, 128, 143, 139, 131, 136, 143, 144, 140, 149, 138, 144, 134, 138, 139, 131, 151, 142, 152, 140, 142, 140, 139, 143, 142, 128, 143, 147, 137, 142, 145, 141, 142, 138, 141, 139, 151, 135, 135, 134, 135, 140, 137, 132, 137, 138, 136, 145, 141, 136, 138, 146, 138, 143, 143, 128, 146, 133, 137, 140, 145, 141, 144, 138, 142, 137, 144, 145, 140, 137, 141, 145, 148, 137, 142, 127, 137, 137, 138, 129, 136, 140, 141, 133, 133, 137, 137, 140, 139, 136, 142, 139, 142, 137, 133, 140, 146, 142, 137, 134, 148, 136, 140, 146, 140, 137, 129, 138, 140, 138, 141, 146, 142, 142, 130, 143, 134, 138, 142, 137, 150, 141, 137, 129, 148, 140, 137, 141, 137, 139, 132, 140, 131, 128, 139, 136, 141, 136, 143, 135, 134, 139, 148, 132, 142, 141, 137, 148, 133, 150, 140, 135, 142, 138, 145, 140, 131, 132, 130, 143, 135, 134, 141, 135, 133, 137, 143, 141, 138, 139, 135, 131, 139, 138, 135, 128, 134, 130, 139, 147, 142, 135, 145, 145, 146, 134, 133, 131, 138, 137, 138, 129, 146, 135, 140, 158, 137, 128, 140, 145, 145, 144, 136, 141, 138, 152, 147, 137, 134, 142, 136, 147, 139, 140, 137, 134, 145, 141, 137, 137, 147, 135, 142, 142, 132, 145, 145, 135, 133, 135, 143, 129, 132, 131, 133, 137, 145, 145, 135, 140, 138, 145, 136, 131, 129, 140, 131, 142, 146, 137, 134, 137, 131, 127, 138, 141, 151, 137, 130, 142, 127, 132, 145, 142, 143, 133, 137, 136, 134, 134, 140, 134, 139, 147, 145, 142, 129, 141, 148, 143, 138, 136, 143, 141, 143, 134, 133, 134, 133, 127, 135, 134, 138, 148, 138, 126, 149, 128, 145, 136, 136, 140, 140, 130, 143, 139, 130, 123, 137, 136, 140, 145, 138, 139, 133, 145, 148, 131, 136, 150, 132, 135, 140, 138, 141, 139, 142, 140, 136, 141, 142, 139, 153, 135, 139, 136, 140, 134, 137, 147, 134, 136, 136, 140, 133, 140, 133, 139, 134, 145, 139, 131, 139, 128, 143, 140, 144, 140, 138, 136, 137, 133, 138, 135, 135, 129, 136, 141, 137, 133, 142, 145, 136, 150, 140, 142, 133, 135, 145, 131, 139, 133, 137, 142, 148, 139, 142, 128, 138, 139, 149, 138, 130, 133, 139, 140, 153, 144, 151, 134, 142, 143, 141, 135, 135, 143, 135, 139, 138, 150, 137, 140, 148, 128, 139, 141, 140, 148, 140, 136, 137, 141, 145, 142, 140, 137, 143, 136, 152, 139, 137, 139, 143, 137, 139, 136, 142, 141, 143, 140, 142, 136, 137, 142, 136, 142, 134, 136, 132, 128, 142, 135, 136, 143, 134, 134, 146, 135, 143, 143, 138, 140, 144, 136, 130, 141, 131, 150, 135, 140, 142, 139, 135, 134, 137, 139, 133, 141, 143, 141, 140, 148, 133, 134, 139, 131, 137, 139, 134, 139, 133, 136, 143, 136, 120, 137, 150, 134, 131, 140, 141, 128, 144, 145, 137, 134, 140, 136, 137, 144, 137, 135, 139, 134, 136, 137, 133, 133, 130, 136, 145, 133, 140, 136, 140, 142, 147, 139, 139, 151, 146, 134, 138, 140, 139, 136, 144, 137, 133, 143, 133, 139, 147, 146, 140, 146, 148, 139, 132, 142, 144, 139, 137, 135, 132, 147, 137, 143, 136, 138, 138, 140, 144, 132, 135, 138, 135, 148, 136, 132, 131, 139, 129, 142, 137, 140, 137, 137, 140, 132, 142, 138, 138, 141, 139, 152, 139, 148, 129, 139, 147, 144, 147, 147, 131, 142, 147, 140, 134, 135, 138, 141, 134, 138, 136, 137, 138, 143, 141, 143, 139, 134, 144, 133, 141, 137, 139, 128, 140, 140, 145, 136, 141, 132, 128, 138, 141, 138, 132, 135, 143, 132, 137, 137, 136, 139, 142, 136, 145, 144, 140, 138, 140, 142, 143, 141, 140, 141, 141, 130, 145, 141, 136, 140, 139, 124, 138, 140, 142, 141, 136, 129, 137, 135, 149, 147, 141, 139, 139, 140, 133, 148, 141, 136, 132, 149, 138, 135, 139, 134, 129, 139, 135, 127, 139, 142, 136, 142, 137, 126, 146, 137, 142, 144, 140, 143, 131, 141, 134, 139, 130, 136, 130, 139, 134, 144, 137, 125, 136, 131, 142, 143, 141, 127, 116, 142, 133, 148, 135, 143, 139, 142, 140, 144, 139, 129, 145, 142, 141, 135, 146, 145, 138, 131, 141, 125, 134, 149, 129, 143, 133, 141, 141, 135, 140, 138, 141, 133, 150, 137, 131, 137, 145, 142, 145, 141, 136, 137, 141, 138, 143, 147, 139, 144, 137, 132, 136, 144, 142, 147, 144, 148, 136, 147, 129, 136, 132, 133, 144, 141, 126, 144, 144, 141, 137, 136, 135, 142, 135, 135, 144, 133, 152, 137, 137, 147, 140, 138, 146, 143, 127, 138, 143, 133, 142, 142, 135, 140, 139, 139, 145, 141, 148, 139, 131, 149, 131, 133, 139, 125, 141, 142, 151, 129, 153, 143, 149, 127, 134, 137, 128, 135, 139, 144, 138, 143, 143, 135, 140, 144, 140, 134, 140, 144, 137, 134, 140, 131, 139, 138, 128, 140, 138, 137, 137, 141, 145, 150, 147, 135, 142, 143, 145, 142, 141, 137, 135, 141, 140, 135, 126, 151, 137, 136, 146, 141, 139, 137, 131, 135, 137, 136, 125, 143, 156, 140, 144, 132, 141, 139, 124, 130, 149, 139, 154, 142, 143, 135, 136, 140, 137, 135, 131, 135, 143, 130, 132, 150, 135, 139, 132, 134, 143, 145, 146, 137, 142, 138, 137, 142, 136, 140, 135, 137, 136, 137, 124, 135, 137, 140, 149, 130, 150, 132, 133, 138, 142, 143, 140, 121, 131, 139, 145, 147, 127, 140, 152, 143, 137, 142, 141, 146, 136, 145, 141, 136, 147, 138, 147, 142, 139, 140, 141, 131, 135, 141, 148, 142, 137, 147, 131, 136, 139, 131, 136, 138, 152, 140, 149, 133, 129, 147, 123, 144, 139, 127, 139, 143, 127, 123, 136, 132, 140, 133, 138, 142, 127, 141, 137, 138, 131, 131, 133, 143, 131, 137, 134, 139, 133, 140, 141, 147, 135, 136, 137, 141, 146, 153, 143, 136, 137, 139, 134, 138, 140, 136, 130, 144, 152, 138, 140, 138, 144, 133, 149, 135, 145, 133, 127, 147, 142, 140, 139, 136, 135, 140, 125, 141, 139, 139, 139, 146, 136, 138, 144, 145, 141, 141, 141, 140, 135, 137, 130, 136, 144, 133, 142, 146, 138, 144, 135, 140, 145, 135, 153, 150, 138, 143, 140, 140, 143, 125, 144, 130, 141, 149, 145, 151, 133, 138, 139, 142, 135, 157, 137, 138, 132, 133, 146, 136, 141, 135, 141, 152, 132, 129, 135, 149, 144, 141, 146, 140, 134, 136, 145, 147, 141, 140, 139, 146, 132, 138, 143, 149, 131, 133, 139, 155, 137, 135, 138, 141, 140, 146, 144, 137, 130, 150, 138, 134, 126, 148, 142, 135, 125, 134, 146, 136, 136, 132, 141, 141, 143, 142, 135, 153, 139, 142, 136, 137, 144, 132, 131, 142, 147, 126, 137, 134, 137, 132, 139, 127, 135, 148, 141, 142, 146, 139, 152, 146, 144, 132, 143, 141, 141, 137, 142, 139, 145, 129, 140, 147, 143, 141, 129, 139, 132, 138, 124, 136, 137, 139, 141, 145, 135, 128, 143, 140, 147, 147, 141, 136, 145, 136, 143, 137, 153, 137, 142, 140, 140, 135, 140, 137, 133, 133, 140, 145, 145, 148, 132, 134, 134, 141, 138, 151, 135, 136, 132, 138, 135, 135, 142, 137, 137, 137, 147, 142, 133, 133, 134, 138, 133, 132, 129, 129, 131, 147, 139, 137, 129, 146, 136, 137, 143, 147, 139, 134, 143, 143, 130, 135, 141, 139, 137, 145, 144, 148, 133, 139, 142, 153, 138, 139, 133, 139, 132, 140, 142, 137, 136, 145, 141, 144, 135, 135, 144, 140, 134, 133, 136, 141, 132, 148, 136, 130, 138, 131, 140, 138, 136, 142, 144, 140, 135, 140, 140, 138, 140, 149, 147, 136, 138, 134, 132, 145, 141, 143, 138, 137, 142, 139, 136, 145, 149, 131, 133, 139, 136, 138, 141, 136, 138, 144, 136, 142, 146, 139, 138, 145, 129, 136, 144, 129, 131, 145, 137, 142, 140, 131, 143, 139, 141, 128, 134, 142, 153, 137, 140, 145, 139, 142, 135, 134, 147, 141, 131, 136, 139, 134, 147, 134, 137, 132, 139, 134, 138, 128, 137, 130, 134, 136, 138, 141, 136, 134, 136, 141, 147, 133, 141, 129, 132, 141, 138, 141, 131, 130, 140, 134, 138, 139, 137, 134, 137, 138, 134, 142, 137, 143, 134, 144, 145, 144, 138, 132, 144, 137, 138, 132, 130, 140, 143, 146, 138, 139, 151, 133, 138, 140, 148, 136, 137, 121, 147, 149, 136, 135, 141, 135, 140, 144, 143, 133, 144, 139, 136, 139, 139, 144, 135, 143, 138, 130, 141, 137, 132, 140, 140, 140, 145, 123, 135, 144, 149, 138, 141, 128, 150, 146, 138, 138, 132, 137, 131, 129, 134, 137, 140, 131, 135, 147, 125, 144, 141, 144, 135, 141, 142, 130, 135, 142, 139, 139, 137, 140, 134, 136, 136, 145, 140, 150, 137, 130, 149, 146, 137, 135, 136, 134, 134, 138, 145, 141, 138, 142, 149, 140, 142, 145, 139, 132, 134, 141, 150, 130, 143, 148, 139, 142, 137, 133, 136, 143, 136, 146, 146, 141, 145, 134, 135, 147, 139, 128, 144, 140, 137, 136, 133, 138, 135, 139, 141, 142, 131, 132, 134, 139, 133, 134, 135, 140, 139, 129, 131, 137, 140, 140, 130, 140, 132, 131, 136, 141, 137, 146, 132, 128, 142, 140, 139, 140, 140, 146, 137, 131, 144, 138, 141, 142, 143, 146, 133, 128, 134, 133, 132, 126, 128, 140, 150, 136, 144, 134, 142, 140, 136, 134, 147, 145, 148, 140, 135, 138, 138, 144, 132, 133, 146, 136, 138, 141, 131, 134, 133, 147, 136, 138, 133, 141, 133, 132, 140, 142, 141, 140, 144, 139, 134, 132, 154, 135, 143, 137, 133, 130, 141, 136, 135, 136, 134, 141, 129, 139, 152, 150, 137, 143, 138, 137, 145, 137, 142, 142, 136, 143, 154, 135, 140, 131, 151, 139, 126, 147, 139, 145, 133, 125, 136, 139, 135, 138, 139, 139, 141, 141, 142, 142, 145, 141, 132, 139, 136, 145, 140, 137, 136, 146, 142, 131, 138, 141, 142, 139, 138, 139, 139, 141, 135, 133, 140, 129, 139, 130, 144, 137, 134, 140, 138, 137, 139, 141, 134, 144, 137, 148, 142, 137, 141, 140, 128, 140, 154, 142, 138, 137, 140, 140, 136, 138, 140, 145, 135, 139, 141, 135, 134, 136, 133, 135, 137, 147, 142, 131, 137, 137, 138, 152, 144, 141, 146, 139, 133, 141, 143, 140, 146, 141, 134, 141, 138, 138, 128, 135, 142, 145, 130, 134, 153, 143, 136, 134, 143, 135, 143, 141, 139, 133, 141, 138, 137, 126, 137, 131, 131, 135, 149, 136, 138, 139, 145, 140, 138, 130, 139, 137, 147, 132, 145, 143, 131, 135, 136, 127, 139, 150, 138, 139, 140, 132, 143, 131, 131, 140, 138, 136, 143, 138, 142, 142, 135, 144, 141, 136, 137, 135, 140, 134, 140, 145, 138, 133, 133, 134, 140, 136, 143, 141, 140, 141, 134, 137, 134, 140, 142, 138, 134, 124, 134, 136, 144, 138, 134, 141, 141, 132, 154, 137, 132, 143, 142, 140, 137, 138, 136, 142, 142, 137, 141, 144, 136, 141, 132, 139, 145, 146, 129, 137, 133, 137, 144, 144, 137, 137, 142, 138, 132, 136, 140, 133, 136, 139, 140, 132, 139, 136, 146, 137, 132, 135, 146, 141, 137, 147, 138, 134, 135, 139, 141, 132, 142, 131, 137, 135, 139, 143, 137, 144, 140, 133, 141, 146, 133, 145, 135, 134, 141, 122, 136, 137, 133, 138, 139, 139, 140, 137, 144, 136, 138, 147, 141, 131, 142, 136, 139, 137, 140, 150, 140, 129, 146, 141, 143, 140, 140, 142, 147, 152, 141, 139, 147, 140, 131, 129, 135, 141, 134, 140, 138, 138, 139, 135, 128, 137, 137, 155, 139, 144, 140, 144, 138, 130, 144, 147, 147, 137, 144, 137, 141, 139, 137, 141, 126, 135, 141, 131, 137, 132, 144, 142, 140, 127, 133, 137, 144, 135, 136, 142, 143, 139, 134, 145, 141, 131, 135, 142, 137, 143, 140, 131, 137, 135, 144, 140, 138, 133, 137, 136, 140, 125, 137, 138, 139, 139, 134, 134, 136, 137, 144, 136, 142, 135, 147, 134, 139, 129, 134, 140, 135, 140, 139, 138, 145, 138, 141, 142, 141, 144, 136, 132, 143, 141, 148, 142, 137, 140, 137, 140, 138, 136, 141, 140, 146, 142, 136, 142, 137, 136, 134, 136, 137, 135, 140, 139, 140, 142, 142, 136, 138, 136, 131, 140, 142, 139, 147, 137, 134, 139, 138, 139, 138, 133, 137, 140, 143, 144, 140, 142, 133, 140, 144, 144, 136, 134, 136, 139, 133, 149, 144, 134, 146, 130, 138, 138, 141, 138, 139, 137, 142, 135, 135, 134, 137, 134, 139, 135, 134, 139, 144, 138, 142, 140, 141, 144, 139, 141, 140, 137, 137, 134, 139, 143, 134, 142, 132, 139, 141, 138, 136, 140, 134, 134, 143, 144, 147, 139, 129, 134, 138, 141, 146, 147, 138, 152, 147, 141, 143, 143, 142, 141, 145, 144, 145, 137, 140, 143, 141, 143, 138, 138, 135, 139, 146, 141, 139, 140, 140, 133, 142, 135, 143, 140, 138, 144, 148, 142, 136, 136, 138, 139, 136, 135, 136, 133, 137, 147, 133, 134, 142, 139, 132, 138, 143, 138, 143, 142, 138, 150, 142, 135, 134, 141, 142, 144, 133, 144, 145, 142, 141, 143, 142, 144, 143, 139, 140, 149, 145, 146, 140, 129, 143, 144, 136, 135, 139, 139, 142, 139, 141, 137, 140, 138, 140, 134, 145, 142, 137, 136, 133, 142, 145, 135, 136, 139, 141, 140, 141, 140, 135, 143, 149, 140, 136, 139, 140, 135, 142, 137, 142, 133, 143, 136, 148, 147, 141, 134, 140, 142, 145, 135, 143, 144, 130, 133, 140, 137, 141, 141, 139, 135, 145, 144, 140, 145, 134, 140, 140, 132, 147, 138, 133, 131, 144, 130, 134, 141, 137, 141, 147, 145, 139, 139, 138, 139, 132, 145, 130, 134, 139, 146, 142, 140, 138, 143, 132, 136, 138, 142, 143, 129, 141, 135, 133, 137, 147, 138, 138, 130, 143, 134, 142, 133, 134, 139, 138, 138, 140, 143, 132, 140, 145, 142, 136, 142, 131, 145, 131, 138, 146, 144, 143, 134, 135, 141, 141, 143, 146, 131, 135, 141, 142, 140, 142, 140, 138, 139, 134, 141, 141, 130, 141, 141, 142, 139, 143, 135, 147, 143, 137, 142, 133, 142, 139, 136, 143, 139, 144, 139, 140, 136, 142, 142, 140, 135, 152, 139, 131, 143, 147, 144, 138, 135, 138, 146, 136, 147, 143, 139, 135, 139, 144, 139, 148, 136, 135, 144, 138, 137, 137, 140, 136, 135, 131, 149, 141, 139, 141, 136, 138, 137, 136, 135, 135, 139, 142, 143, 136, 136, 135, 131, 141, 138, 146, 137, 142, 137, 138, 141, 139, 135, 129, 138, 150, 138, 144, 143, 134, 137, 135, 143, 141, 137, 146, 146, 140, 133, 149, 142, 144, 142, 136, 145, 135, 131, 128, 149, 145, 141, 140, 139, 136, 138, 141, 140, 142, 140, 138, 141, 136, 139, 146, 134, 135, 146, 142, 143, 139, 143, 138, 135, 134, 138, 139, 138, 139, 145, 143, 146, 142, 138, 143, 143, 143, 139, 140, 144, 143, 142, 147, 145, 144, 144, 136, 137, 137, 141, 142, 143, 141, 134, 131, 139, 138, 140, 140, 137, 140, 136, 138, 136, 145, 139, 137, 135, 134, 133, 139, 141, 145, 140, 138, 139, 138, 148, 140, 144, 141, 147, 128, 137, 142, 135, 139, 140, 140, 154, 142, 134, 138, 132, 129, 136, 142, 144, 133, 135, 133, 133, 135, 134, 141, 140, 141, 137, 127, 141, 139, 138, 138, 133, 136, 138, 142, 133, 137, 140, 137, 142, 138, 140, 135, 131, 129, 135, 146, 138, 137, 142, 143, 140, 141, 128, 139, 144, 140, 140, 142, 146, 140, 134, 142, 142, 134, 146, 136, 136, 143, 143, 132, 138, 139, 146, 146, 139, 142, 136, 141, 135, 143, 140, 138, 133, 141, 156, 137, 140, 140, 138, 136, 139, 141, 142, 142, 136, 134, 136, 143, 142, 143, 155, 143, 143, 134, 137, 138, 144, 137, 140, 149, 137, 141, 135, 136, 139, 152, 138, 144, 140, 144, 133, 140, 138, 143, 140, 139, 139, 138, 138, 138, 141, 134, 136, 141, 132, 135, 126, 145, 139, 137, 134, 140, 133, 134, 135, 138, 135, 150, 138, 143, 135, 138, 141, 138, 142, 137, 149, 145, 136, 140, 135, 135, 154, 138, 135, 135, 133, 143, 132, 131, 139, 143, 133, 139, 135, 130, 139, 143, 137, 135, 140, 135, 137, 145, 138, 139, 148, 136, 141, 136, 132, 137, 149, 135, 135, 137, 142, 143, 139, 147, 137, 140, 137, 145, 130, 131, 131, 136, 129, 140, 138, 132, 144, 135, 143, 139, 134, 134, 136, 135, 149, 141, 145, 143, 140, 139, 141, 138, 139, 139, 138, 136, 136, 141, 131, 135, 143, 137, 146, 137, 138, 131, 133, 136, 140, 129, 139, 141, 134, 144, 148, 137, 140, 138, 140, 134, 137, 138, 135, 139, 146, 133, 144, 142, 139, 136, 145, 144, 147, 137, 132, 137, 142, 141, 144, 134, 138, 135, 143, 141, 140, 147, 143, 136, 134, 139, 131, 136, 140, 131, 143, 145, 143, 139, 143, 144, 129, 134, 135, 137, 141, 134, 133, 139, 138, 133, 137, 131, 136, 143, 142, 139, 142, 143, 139, 134, 137, 129, 130, 136, 139, 147, 135, 146, 142, 138, 139, 132, 137, 135, 134, 145, 143, 136, 133, 135, 132, 131, 140, 143, 141, 138, 143, 146, 135, 146, 142, 137, 141, 138, 139, 131, 145, 148, 141, 145, 134, 142, 141, 140, 136, 133, 138, 137, 140, 139, 152, 138, 144, 144, 140, 150, 133, 143, 132, 134, 135, 143, 128, 139, 147, 137, 134, 134, 142, 129, 148, 141, 136, 138, 131, 137, 143, 133, 145, 137, 141, 141, 138, 134, 134, 137, 137, 136, 136, 148, 136, 131, 137, 131, 141, 138, 134, 135, 137, 142, 140, 142, 139, 137, 139, 144, 138, 139, 151, 135, 141, 137, 139, 142, 148, 141, 146, 136, 148, 133, 137, 144, 140, 136, 139, 152, 137, 134, 137, 140, 140, 133, 144, 139, 142, 138, 139, 143, 145, 136, 136, 144, 142, 142, 135, 130, 140, 141, 144, 137, 142, 144, 137, 138, 138, 139, 137, 142, 130, 135, 144, 147, 137, 144, 137, 139, 134, 137, 143, 139, 142, 135, 138, 142, 137, 145, 134, 135, 144, 143, 134, 129, 143, 143, 153, 137, 135, 142, 144, 142, 143, 138, 144, 137, 138, 136, 149, 131, 138, 135, 144, 151, 137, 145, 140, 137, 133, 137, 135, 137, 129, 132, 127, 143, 136, 137, 147, 137, 140, 130, 144, 136, 131, 136, 146, 144, 146, 140, 141, 137, 140, 153, 142, 134, 133, 132, 138, 138, 137, 143, 141, 140, 148, 135, 142, 138, 154, 140, 132, 138, 133, 137, 135, 131, 131, 139, 139, 145, 140, 143, 140, 137, 141, 142, 131, 134, 136, 127, 132, 139, 141, 139, 144, 140, 136, 142, 132, 138, 141, 139, 141, 138, 141, 141, 131, 138, 140, 135, 142, 137, 137, 136, 143, 140, 140, 141, 149, 145, 150, 141, 144, 134, 134, 134, 140, 137, 143, 145, 133, 137, 139, 149, 136, 144, 128, 137, 146, 143, 146, 150, 142, 142, 141, 132, 142, 142, 132, 137, 141, 145, 143, 137, 140, 135, 135, 136, 134, 133, 142, 134, 137, 136, 142, 133, 143, 144, 137, 143, 141, 133, 144, 145, 135, 134, 132, 144, 146, 134, 139, 145, 136, 134, 140, 142, 137, 144, 139, 136, 146, 150, 137, 131, 133, 140, 135, 131, 135, 134, 135, 138, 137, 143, 137, 133, 137, 139, 140, 135, 142, 138, 139, 140, 138, 141, 146, 133, 136, 142, 137, 136, 143, 143, 137, 141, 135, 139, 135, 131, 140, 138, 132, 132, 138, 132, 144, 147, 140, 136, 142, 145, 134, 138, 139, 137, 134, 143, 140, 141, 134, 136, 140, 136, 152, 141, 129, 138, 146, 134, 133, 128, 143, 139, 138, 141, 137, 141, 143, 137, 131, 145, 142, 140, 141, 139, 146, 137, 148, 135, 130, 138, 138, 141, 136, 138, 135, 129, 137, 134, 142, 135, 130, 141, 137, 142, 143, 142, 131, 134, 150, 137, 137, 143, 137, 141, 145, 141, 136, 139, 147, 137, 137, 140, 141, 140, 138, 138, 140, 135, 143, 141, 141, 136, 134, 143, 135, 135, 140, 137, 138, 141, 141, 142, 137, 137, 143, 135, 144, 135, 137, 139, 141, 136, 132, 136, 139, 139, 141, 138, 142, 141, 137, 137, 136, 132, 147, 143, 140, 144, 144, 141, 140, 142, 145, 127, 150, 137, 134, 131, 141, 150, 143, 143, 137, 133, 143, 128, 139, 137, 135, 140, 145, 138, 138, 134, 142, 136, 144, 147, 139, 141, 149, 133, 136, 144, 131, 136, 141, 133, 141, 139, 137, 142, 142, 136, 147, 138, 138, 140, 145, 139, 143, 145, 136, 132, 136, 131, 141, 138, 136, 135, 143, 145, 144, 146, 140, 137, 123, 147, 134, 128, 133, 138, 139, 134, 139, 137, 135, 141, 141, 135, 145, 139, 137, 139, 137, 141, 151, 142, 143, 135, 136, 134, 136, 148, 141, 135, 133, 139, 147, 157, 138, 134, 142, 127, 141, 141, 147, 135, 134, 135, 131, 146, 139, 134, 129, 135, 143, 140, 141, 139, 124, 139, 140, 141, 142, 137, 144, 138, 135, 143, 141, 136, 139, 140, 136, 153, 132, 135, 139, 134, 134, 137, 138, 127, 134, 137, 149, 137, 149, 144, 132, 138, 135, 142, 139, 144, 141, 130, 136, 138, 145, 144, 134, 140, 143, 133, 141, 148, 140, 139, 134, 147, 134, 135, 137, 136, 135, 141, 133, 135, 137, 138, 132, 134, 144, 132, 132, 141, 142, 131, 138, 131, 136, 137, 133, 143, 141, 140, 134, 137, 145, 143, 135, 139, 136, 135, 143, 138, 141, 137, 150, 134, 137, 145, 140, 143, 137, 138, 145, 134, 135, 140, 149, 135, 140, 137, 140, 146, 146, 144, 137, 132, 136, 137, 140, 131, 126, 129, 135, 141, 141, 136, 140, 136, 135, 143, 140, 149, 145, 137, 144, 144, 143, 142, 135, 137, 144, 137, 129, 141, 142, 139, 141, 136, 140, 144, 138, 139, 136, 141, 142, 141, 139, 132, 140, 136, 137, 132, 130, 141, 139, 136, 133, 138, 141, 137, 137, 140, 142, 147, 147, 134, 140, 138, 137, 145, 137, 144, 133, 140, 137, 142, 135, 139, 135, 142, 127, 139, 139, 150, 136, 137, 138, 136, 134, 130, 142, 138, 131, 146, 139, 145, 136, 141, 138, 147, 135, 142, 139, 137, 144, 139, 136, 132, 141, 137, 142, 138, 143, 139, 140, 135, 144, 140, 141, 144, 134, 135, 147, 134, 135, 135, 137, 138, 142, 141, 143, 139, 139, 148, 142, 144, 142, 137, 147, 145, 134, 147, 138, 135, 144, 138, 141, 142, 141, 136, 137, 138, 141, 138, 152, 143, 138, 134, 134, 140, 134, 135, 138, 144, 144, 137, 139, 138, 134, 138, 138, 136, 142, 136, 143, 142, 133, 137, 134, 143, 147, 137, 140, 132, 140, 134, 132, 138, 135, 136, 141, 135, 136, 140, 142, 142, 141, 139, 140, 138, 136, 137, 137, 134, 139, 130, 132, 137, 138, 135, 133, 143, 148, 136, 139, 136, 142, 135, 139, 134, 140, 141, 133, 138, 140, 138, 145, 137, 139, 137, 140, 130, 131, 136, 142, 138, 145, 139, 141, 136, 138, 136, 139, 139, 136, 137, 138, 138, 143, 141, 141, 140, 140, 136, 136, 136, 141, 139, 149, 135, 141, 130, 147, 141, 136, 137, 136, 136, 134, 145, 136, 135, 134, 141, 138, 141, 137, 140, 135, 138, 136, 140, 138, 138, 139, 136, 138, 126, 135, 136, 141, 135, 136, 135, 135, 139, 142, 133, 139, 135, 140, 135, 140, 135, 144, 134, 128, 141, 142, 138, 135, 128, 142, 147, 143, 141, 140, 133, 137, 145, 134, 132, 139, 138, 140, 137, 141, 141, 135, 137, 142, 134, 139, 130, 132, 146, 138, 130, 142, 135, 131, 139, 135, 137, 137, 140, 134, 137, 137, 139, 143, 142, 136, 141, 136, 136, 134, 140, 140, 131, 143, 136, 141, 144, 147, 138, 135, 145, 128, 140, 136, 141, 139, 139, 142, 138, 131, 132, 134, 144, 136, 142, 141, 149, 141, 140, 150, 140, 140, 140, 145, 136, 138, 136, 136, 139, 145, 139, 141, 138, 138, 134, 143, 135, 141, 130, 143, 137, 137, 138, 145, 130, 137, 135, 135, 144, 135, 135, 133, 140, 133, 138, 143, 136, 136, 143, 139, 140, 134, 135, 140, 145, 145, 137, 138, 139, 141, 139, 137, 136, 136, 139, 150, 137, 141, 141, 140, 154, 144, 139, 140, 143, 144, 140, 135, 147, 146, 129, 139, 146, 137, 142, 134, 136, 145, 141, 141, 142, 143, 134, 144, 140, 141, 134, 133, 155, 129, 133, 145, 137, 138, 130, 134, 155, 136, 143, 146, 131, 139, 133, 139, 133, 139, 145, 136, 149, 140, 131, 142, 134, 131, 136, 139, 131, 144, 135, 136, 137, 146, 144, 144, 139, 141, 144, 136, 143, 147, 144, 132, 134, 143, 148, 135, 134, 137, 137, 142, 148, 151, 132, 134, 147, 128, 136, 128, 130, 138, 138, 144, 141, 155, 147, 135, 139, 145, 146, 138, 145, 152, 150, 122, 137, 144, 144, 140, 142, 146, 130, 142, 135, 141, 128, 148, 143, 147, 146, 143, 141, 137, 138, 139, 138, 140, 148, 127, 129, 137, 140, 144, 137, 119, 132, 135, 134, 132, 143, 138, 140, 144, 152, 144, 150, 143, 137, 143, 135, 147, 152, 137, 128, 155, 146, 139, 132, 138, 147, 152, 125, 139, 132, 135, 141, 130, 136, 143, 136, 151, 145, 140, 128, 144, 147, 139, 139, 135, 122, 133, 137, 132, 152, 131, 137, 138, 152, 152, 142, 131, 132, 136, 142, 155, 128, 130, 143, 143, 132, 136, 136, 151, 135, 141, 138, 141, 133, 139, 145, 133, 134, 129, 141, 143, 143, 144, 150, 141, 140, 133, 125, 144, 142, 137, 131, 144, 140, 143, 139, 142, 144, 139, 130, 139, 124, 137, 135, 136, 150, 144, 142, 134, 135, 134, 135, 134, 133, 129, 139, 140, 140, 136, 135, 138, 137, 147, 146, 147, 122, 152, 145, 135, 150, 144, 121, 138, 145, 141, 142, 148, 147, 138, 134, 138, 142, 140, 139, 137, 148, 142, 146, 149, 146, 143, 136, 131, 127, 130, 134, 142, 135, 141, 137, 138, 143, 134, 149, 145, 140, 137, 132, 137, 127, 135, 134, 138, 131, 140, 136, 143, 140, 140, 126, 133, 125, 139, 144, 135, 158, 129, 139, 137, 122, 139, 140, 151, 150, 141, 129, 149, 141, 147, 133, 129, 127, 150, 132, 141, 141, 133, 137, 134, 151, 143, 131, 138, 136, 140, 125, 139, 146, 152, 146, 136, 130, 145, 140, 147, 132, 131, 135, 133, 125, 134, 146, 140, 128, 141, 137, 139, 142, 131, 151, 128, 126, 146, 147, 137, 144, 139, 141, 135, 157, 133, 137, 130, 141, 145, 136, 138, 138, 142, 138, 128, 136, 134, 137, 140, 131, 143, 130, 137, 144, 125, 136, 134, 137, 147, 136, 141, 139, 136, 144, 144, 136, 139, 146, 138, 141, 150, 132, 139, 142, 141, 140, 146, 137, 135, 146, 131, 145, 142, 131, 148, 138, 132, 140, 133, 136, 137, 135, 147, 134, 134, 139, 136, 142, 152, 132, 137, 138, 133, 146, 140, 130, 140, 141, 126, 143, 146, 129, 131, 133, 150, 143, 128, 144, 130, 134, 143, 137, 138, 143, 139, 149, 140, 149, 162, 144, 138, 154, 146, 140, 139, 148, 139, 159, 137, 132, 139, 134, 143, 146, 146, 137, 124, 138, 128, 136, 143, 132, 141, 134, 144, 128, 129, 136, 149, 144, 145, 132, 144, 137, 135, 139, 139, 143, 137, 144, 124, 133, 134, 142, 137, 143, 136, 146, 136, 139, 141, 143, 136, 152, 127, 136, 136, 142, 127, 124, 134, 134, 149, 142, 137, 136, 148, 124, 153, 151, 135, 146, 134, 128, 155, 135, 140, 133, 132, 144, 135, 136, 130, 130, 132, 145, 139, 134, 115, 124, 134, 139, 148, 140, 140, 144, 130, 141, 143, 146, 146, 139, 145, 140, 133, 136, 142, 131, 140, 122, 134, 144, 138, 139, 136, 149, 134, 138, 144, 130, 138, 136, 144, 139, 152, 143, 130, 143, 134, 152, 134, 135, 131, 145, 148, 144, 141, 137, 139, 137, 143, 134, 142, 137, 141, 147, 128, 132, 134, 136, 133, 130, 143, 134, 139, 140, 154, 149, 142, 143, 138, 137, 141, 140, 141, 135, 142, 144, 134, 135, 154, 150, 141, 137, 143, 135, 139, 139, 137, 137, 142, 141, 135, 147, 138, 133, 142, 136, 137, 139, 140, 140, 146, 137, 145, 129, 131, 138, 138, 137, 140, 147, 143, 149, 141, 148, 131, 146, 149, 136, 145, 138, 127, 138, 142, 133, 139, 140, 136, 146, 150, 146, 139, 133, 135, 135, 141, 135, 133, 134, 134, 144, 134, 140, 145, 132, 132, 133, 136, 137, 131, 143, 150, 142, 132, 143, 137, 140, 138, 141, 141, 142, 137, 147, 143, 137, 136, 135, 133, 141, 141, 136, 137, 137, 144, 146, 134, 140, 145, 142, 143, 139, 156, 142, 135, 146, 132, 138, 139, 138, 136, 136, 143, 141, 144, 140, 141, 134, 144, 134, 139, 131, 134, 136, 145, 146, 130, 133, 134, 139, 143, 145, 139, 136, 140, 132, 139, 134, 142, 141, 140, 149, 139, 143, 133, 144, 145, 135, 148, 139, 137, 130, 131, 143, 141, 142, 141, 135, 140, 136, 138, 141, 135, 145, 136, 137, 140, 141, 146, 140, 135, 142, 142, 127, 135, 133, 144, 145, 139, 144, 141, 140, 144, 135, 148, 133, 136, 141, 139, 137, 142, 138, 141, 136, 135, 138, 146, 140, 153, 139, 144, 142, 141, 137, 140, 139, 140, 145, 137, 138, 134, 140, 139, 132, 133, 137, 147, 128, 144, 134, 140, 128, 153, 144, 135, 132, 139, 147, 136, 146, 146, 151, 149, 137, 140, 142, 138, 133, 149, 134, 123, 139, 136, 137, 140, 137, 138, 137, 138, 135, 147, 138, 142, 134, 151, 140, 138, 141, 139, 139, 129, 140, 138, 138, 136, 137, 144, 137, 132, 138, 138, 138, 138, 135, 137, 139, 141, 141, 138, 133, 135, 144, 136, 143, 136, 144, 141, 136, 136, 137, 134, 140, 134, 141, 140, 133, 138, 131, 145, 142, 143, 150, 141, 140, 133, 133, 139, 137, 145, 142, 142, 146, 143, 138, 138, 135, 143, 145, 134, 138, 132, 142, 145, 145, 145, 137, 132, 144, 137, 138, 136, 137, 130, 140, 144, 144, 145, 137, 136, 141, 140, 139, 141, 144, 136, 135, 140, 146, 149, 145, 145, 139, 135, 141, 137, 140, 137, 134, 134, 143, 141, 139, 139, 142, 140, 136, 134, 136, 137, 132, 134, 145, 137, 143, 133, 133, 137, 135, 137, 150, 138, 138, 133, 129, 140, 141, 147, 144, 135, 140, 142, 142, 139, 130, 149, 137, 138, 141, 134, 138, 133, 138, 138, 137, 143, 142, 147, 141, 136, 131, 139, 132, 144, 147, 145, 143, 142, 142, 142, 130, 142, 141, 129, 140, 141, 141, 148, 143, 141, 136, 141, 141, 140, 136, 138, 139, 135, 135, 130, 133, 142, 144, 134, 141, 147, 137, 142, 139, 140, 132, 142, 137, 138, 136, 140, 135, 136, 139, 129, 137, 147, 146, 146, 140, 145, 140, 134, 141, 144, 139, 135, 137, 132, 141, 148, 141, 145, 152, 140, 143, 137, 137, 145, 136, 140, 127, 143, 134, 135, 131, 139, 136, 142, 145, 139, 130, 139, 143, 143, 146, 135, 136, 133, 142, 131, 146, 135, 143, 131, 140, 139, 130, 136, 131, 137, 140, 148, 139, 133, 136, 134, 140, 145, 143, 131, 136, 135, 142, 138, 136, 130, 142, 146, 144, 136, 136, 134, 138, 142, 137, 136, 140, 135, 138, 138, 140, 129, 146, 139, 140, 139, 140, 141, 140, 143, 142, 119, 141, 140, 149, 136, 139, 125, 139, 136, 157, 135, 127, 135, 144, 141, 142, 135, 135, 145, 141, 137, 143, 130, 148, 132, 139, 147, 133, 129, 134, 149, 137, 142, 133, 136, 142, 148, 133, 153, 144, 135, 149, 138, 142, 150, 131, 133, 146, 144, 130, 138, 149, 139, 134, 132, 141, 156, 141, 143, 136, 134, 133, 142, 139, 135, 145, 139, 134, 133, 147, 144, 146, 128, 139, 134, 139, 138, 130, 143, 144, 130, 146, 139, 135, 132, 140, 134, 127, 131, 140, 134, 141, 127, 138, 137, 136, 143, 146, 143, 152, 146, 147, 137, 142, 139, 144, 140, 139, 144, 142, 140, 144, 133, 148, 140, 133, 138, 147, 141, 142, 147, 139, 137, 138, 136, 137, 138, 135, 134, 150, 134, 138, 137, 137, 135, 130, 140, 129, 140, 145, 135, 147, 134, 147, 130, 132, 140, 133, 137, 140, 139, 145, 139, 143, 143, 133, 124, 134, 140, 140, 138, 153, 150, 132, 144, 136, 138, 144, 146, 142, 141, 132, 140, 129, 145, 136, 142, 143, 138, 135, 140, 136, 143, 138, 136, 141, 145, 142, 146, 141, 140, 140, 134, 140, 140, 136, 141, 139, 137, 134, 140, 146, 135, 139, 144, 128, 138, 128, 142, 138, 141, 137, 130, 142, 143, 132, 138, 139, 139, 127, 155, 140, 144, 136, 147, 137, 148, 140, 131, 131, 141, 142, 147, 140, 133, 135, 140, 148, 136, 136, 143, 145, 138, 134, 126, 144, 135, 141, 147, 139, 134, 131, 139, 136, 140, 145, 137, 140, 136, 135, 137, 142, 131, 139, 139, 148, 131, 133, 136, 141, 142, 143, 140, 133, 136, 133, 133, 139, 143, 148, 137, 141, 137, 146, 143, 138, 137, 136, 140, 137, 135, 138, 135, 152, 139, 141, 134, 150, 138, 143, 142, 152, 140, 134, 150, 139, 137, 145, 138, 142, 137, 137, 144, 137, 140, 144, 140, 136, 131, 140, 143, 140, 135, 139, 134, 143, 144, 132, 137, 152, 136, 148, 140, 131, 135, 139, 133, 141, 139, 149, 144, 136, 148, 148, 134, 150, 140, 133, 136, 131, 140, 134, 154, 156, 134, 139, 134, 146, 149, 136, 145, 137, 148, 139, 138, 133, 141, 129, 134, 140, 138, 134, 139, 137, 138, 149, 145, 142, 142, 127, 151, 136, 139, 135, 135, 142, 132, 139, 137, 139, 142, 142, 139, 138, 130, 130, 146, 146, 137, 134, 129, 141, 139, 142, 143, 143, 136, 132, 146, 140, 132, 137, 146, 132, 131, 142, 138, 144, 136, 136, 145, 125, 139, 132, 132, 139, 137, 142, 138, 129, 135, 148, 135, 140, 142, 135, 141, 137, 138, 129, 139, 136, 144, 142, 132, 136, 138, 135, 146, 135, 146, 134, 147, 144, 141, 131, 140, 146, 139, 138, 142, 147, 131, 140, 142, 148, 139, 140, 136, 141, 130, 135, 153, 154, 142, 138, 148, 137, 137, 134, 137, 142, 136, 142, 144, 130, 147, 132, 145, 143, 140, 142, 142, 142, 133, 136, 136, 138, 133, 137, 136, 135, 139, 140, 143, 144, 136, 137, 144, 146, 141, 138, 137, 147, 140, 138, 140, 133, 135, 141, 131, 152, 148, 142, 149, 146, 130, 138, 133, 146, 142, 139, 139, 143, 136, 136, 137, 141, 133, 131, 136, 143, 126, 130, 141, 138, 141, 140, 142, 136, 151, 151, 133, 136, 150, 131, 138, 144, 137, 128, 134, 138, 142, 135, 147, 141, 145, 139, 130, 146, 136, 154, 145, 140, 134, 131, 144, 141, 144, 159, 131, 125, 143, 140, 141, 150, 138, 140, 143, 125, 131, 146, 141, 144, 139, 139, 133, 142, 139, 140, 143, 137, 139, 157, 151, 143, 139, 143, 141, 132, 139, 145, 142, 136, 146, 124, 136, 145, 131, 132, 125, 131, 121, 129, 140, 139, 136, 132, 133, 141, 131, 139, 134, 137, 146, 132, 143, 133, 140, 134, 144, 129, 139, 137, 136, 151, 136, 126, 142, 130, 136, 130, 145, 139, 134, 140, 141, 132, 140, 138, 141, 135, 139, 128, 143, 141, 138, 123, 137, 143, 139, 131, 140, 137, 132, 145, 135, 140, 133, 129, 146, 133, 137, 133, 135, 129, 133, 141, 148, 145, 140, 133, 156, 138, 138, 134, 139, 145, 130, 140, 118, 151, 137, 148, 137, 140, 137, 130, 143, 137, 128, 142, 133, 134, 160, 140, 138, 143, 137, 140, 142, 141, 137, 145, 141, 135, 143, 139, 148, 129, 154, 135, 146, 134, 146, 135, 149, 138, 142, 136, 129, 133, 135, 132, 126, 147, 139, 140, 138, 131, 133, 141, 133, 146, 139, 146, 140, 136, 136, 140, 141, 153, 143, 143, 146, 151, 131, 142, 143, 138, 135, 142, 149, 144, 143, 140, 130, 132, 141, 131, 141, 140, 141, 143, 138, 141, 138, 139, 138, 137, 139, 134, 129, 138, 131, 140, 139, 143, 136, 134, 130, 142, 132, 138, 142, 132, 137, 146, 143, 136, 133, 134, 143, 128, 133, 136, 151, 132, 139, 135, 135, 136, 139, 140, 154, 143, 142, 148, 141, 142, 132, 125, 138, 124, 139, 153, 140, 137, 136, 139, 139, 138, 141, 144, 133, 135, 134, 143, 143, 145, 131, 138, 135, 130, 137, 135, 141, 146, 142, 135, 139, 136, 135, 146, 146, 138, 134, 147, 145, 134, 131, 148, 133, 130, 139, 148, 136, 130, 144, 133, 131, 146, 148, 139, 146, 127, 131, 138, 132, 148, 128, 143, 144, 140, 136, 133, 136, 155, 133, 139, 137, 136, 138, 138, 134, 143, 126, 142, 135, 139, 139, 142, 142, 128, 126, 140, 127, 130, 127, 132, 132, 129, 145, 149, 149, 134, 148, 139, 130, 130, 141, 143, 146, 138, 143, 150, 143, 141, 139, 140, 153, 138, 119, 155, 135, 136, 136, 136, 130, 146, 140, 144, 138, 140, 140, 144, 135, 153, 144, 135, 146, 145, 124, 139, 135, 138, 133, 136, 137, 151, 135, 138, 143, 133, 153, 142, 153, 137, 137, 125, 133, 138, 129, 132, 132, 138, 126, 150, 135, 139, 135, 141, 144, 135, 152, 133, 132, 134, 131, 143, 141, 143, 134, 146, 137, 145, 147, 135, 140, 147, 146, 136, 139, 149, 140, 151, 151, 133, 141, 145, 141, 149, 140, 137, 138, 145, 146, 135, 130, 147, 155, 140, 129, 120, 132, 130, 126, 136, 149, 140, 148, 129, 137, 135, 142, 145, 136, 139, 144, 140, 132, 133, 139, 134, 149, 141, 134, 147, 151, 135, 135, 137, 134, 137, 139, 153, 141, 121, 134, 152, 149, 129, 153, 143, 128, 145, 142, 133, 135, 125, 132, 135, 130, 131, 145, 132, 145, 129, 147, 138, 150, 139, 137, 147, 141, 158, 142, 140, 129, 142, 141, 137, 137, 142, 124, 142, 125, 144, 139, 131, 142, 134, 145, 140, 140, 136, 136, 136, 121, 138, 135, 132, 138, 135, 141, 148, 155, 122, 137, 136, 140, 141, 154, 132, 142, 140, 137, 137, 136, 132, 155, 128, 140, 138, 129, 134, 139, 150, 142, 124, 143, 146, 144, 139, 137, 140, 145, 144, 133, 134, 144, 134, 132, 148, 145, 139, 144, 136, 147, 131, 140, 140, 131, 132, 147, 141, 148, 131, 128, 132, 134, 106, 138, 141, 138, 142, 139, 136, 145, 141, 126, 140, 135, 132, 129, 139, 138, 139, 133, 138, 134, 146, 142, 132, 129, 139, 133, 150, 142, 133, 147, 126, 144, 121, 123, 140, 139, 151, 134, 142, 141, 144, 154, 145, 146, 142, 135, 144, 137, 140, 146, 137, 127, 149, 135, 135, 140, 144, 144, 126, 136, 132, 136, 144, 149, 135, 134, 127, 146, 150, 148, 135, 129, 144, 134, 140, 142, 133, 146, 143, 136, 133, 135, 129, 134, 143, 154, 139, 159, 134, 140, 119, 125, 147, 136, 152, 142, 146, 144, 137, 143, 140, 139, 133, 150, 139, 136, 146, 139, 140, 143, 174, 131, 139, 138, 142, 139, 142, 138, 133, 141, 141, 145, 146, 138, 139, 142, 142, 141, 136, 146, 134, 158, 136, 136, 129, 142, 140, 147, 136, 142, 143, 136, 144, 145, 151, 140, 141, 139, 142, 153, 144, 139, 131, 143, 139, 144, 126, 139, 141, 125, 147, 154, 138, 147, 158, 129, 133, 139, 149, 146, 143, 139, 142, 142, 140, 152, 138, 144, 140, 138, 161, 127, 136, 134, 143, 149, 129, 137, 142, 142, 145, 130, 126, 146, 142, 142, 128, 131, 121, 133, 144, 138, 118, 129, 136, 151, 143, 133, 156, 136, 137, 141, 147, 128, 136, 134, 135, 138, 145, 133, 134, 142, 137, 137, 140, 136, 134, 145, 134, 133, 137, 143, 149, 139, 138, 132, 127, 151, 142, 148, 155, 146, 143, 137, 142, 141, 126, 139, 147, 147, 139, 142, 142, 131, 135, 142, 142, 140, 138, 136, 132, 136, 132, 134, 144, 140, 135, 137, 136, 138, 149, 145, 151, 142, 144, 136, 140, 130, 126, 137, 138, 139, 135, 132, 145, 137, 151, 130, 136, 133, 136, 137, 137, 128, 146, 141, 139, 134, 154, 150, 135, 131, 136, 129, 142, 133, 139, 139, 133, 138, 140, 138, 138, 125, 146, 136, 137, 133, 133, 129, 136, 139, 136, 133, 141, 140, 140, 138, 138, 146, 144, 136, 141, 141, 141, 142, 131, 136, 138, 142, 138, 133, 141, 135, 142, 137, 141, 133, 144, 137, 137, 145, 139, 145, 140, 130, 142, 143, 141, 141, 140, 133, 134, 130, 143, 153, 128, 136, 134, 141, 136, 127, 131, 138, 144, 143, 125, 137, 144, 136, 142, 142, 136, 144, 145, 137, 136, 143, 156, 137, 141, 130, 141, 131, 137, 147, 152, 139, 136, 141, 134, 142, 138, 142, 136, 134, 140, 140, 135, 141, 150, 129, 139, 142, 132, 142, 140, 141, 136, 140, 139, 132, 140, 136, 136, 133, 155, 144, 143, 134, 139, 137, 141, 136, 143, 154, 137, 127, 129, 141, 133, 135, 145, 144, 141, 139, 143, 142, 141, 139, 141, 150, 151, 141, 137, 141, 134, 134, 147, 137, 141, 137, 138, 133, 147, 138, 140, 137, 135, 142, 134, 135, 140, 140, 137, 142, 138, 140, 153, 136, 135, 142, 143, 141, 135, 135, 134, 144, 132, 143, 152, 140, 139, 136, 138, 139, 135, 140, 137, 145, 134, 138, 145, 147, 129, 133, 131, 142, 136, 141, 132, 140, 138, 137, 135, 136, 149, 138, 145, 133, 138, 132, 136, 147, 144, 134, 133, 140, 133, 141, 135, 138, 131, 143, 142, 142, 142, 145, 134, 138, 138, 139, 138, 123, 139, 139, 139, 142, 146, 147, 135, 142, 143, 146, 141, 150, 137, 132, 137, 136, 141, 134, 136, 141, 139, 138, 136, 134, 135, 134, 135, 143, 136, 133, 136, 147, 133, 147, 133, 131, 134, 134, 138, 136, 136, 138, 135, 138, 136, 140, 138, 140, 137, 132, 134, 147, 136, 138, 136, 132, 145, 138, 132, 134, 145, 139, 142, 140, 141, 143, 140, 138, 128, 139, 143, 146, 143, 137, 142, 144, 137, 140, 140, 150, 139, 142, 131, 135, 137, 138, 135, 135, 134, 126, 148, 131, 142, 137, 140, 133, 134, 139, 139, 130, 140, 131, 146, 145, 143, 139, 136, 137, 139, 139, 133, 129, 134, 150, 138, 126, 137, 131, 139, 144, 136, 148, 141, 143, 137, 131, 139, 140, 132, 152, 145, 136, 132, 136, 134, 135, 139, 143, 143, 138, 137, 143, 142, 129, 133, 140, 137, 136, 142, 138, 134, 137, 147, 135, 144, 136, 136, 137, 130, 132, 137, 140, 138, 139, 147, 141, 127, 135, 129, 133, 130, 134, 138, 142, 141, 129, 146, 130, 130, 140, 146, 145, 150, 148, 146, 137, 132, 153, 136, 138, 144, 133, 138, 142, 145, 136, 135, 139, 145, 144, 136, 135, 145, 134, 134, 122, 137, 130, 136, 140, 141, 134, 143, 137, 144, 134, 132, 147, 137, 137, 141, 129, 134, 135, 137, 134, 135, 141, 144, 139, 133, 137, 129, 133, 137, 147, 138, 140, 153, 135, 145, 134, 144, 136, 132, 132, 138, 138, 137, 136, 142, 141, 140, 140, 131, 139, 133, 137, 136, 133, 135, 143, 142, 143, 140, 134, 128, 129, 141, 133, 136, 138, 143, 125, 138, 125, 141, 134, 136, 137, 147, 148, 146, 135, 137, 130, 140, 124, 133, 138, 144, 136, 132, 142, 134, 145, 135, 140, 141, 137, 135, 148, 146, 140, 139, 135, 146, 132, 147, 134, 136, 138, 131, 134, 148, 144, 133, 144, 135, 136, 145, 125, 140, 144, 127, 147, 140, 132, 137, 135, 134, 136, 137, 140, 141, 136, 139, 149, 139, 147, 139, 150, 141, 146, 141, 139, 142, 139, 143, 140, 137, 133, 138, 138, 145, 137, 147, 134, 126, 146, 135, 132, 140, 138, 141, 140, 132, 137, 139, 132, 136, 133, 129, 137, 136, 134, 148, 134, 141, 143, 141, 139, 128, 129, 139, 140, 146, 138, 147, 143, 136, 145, 136, 131, 145, 128, 137, 140, 149, 136, 142, 135, 136, 133, 135, 141, 139, 144, 140, 133, 143, 134, 149, 150, 130, 139, 130, 128, 143, 144, 141, 138, 140, 146, 140, 136, 147, 139, 135, 142, 144, 146, 133, 139, 137, 142, 141, 137, 140, 148, 143, 145, 146, 143, 132, 138, 140, 139, 139, 138, 137, 143, 140, 131, 141, 144, 133, 137, 141, 143, 146, 136, 133, 135, 130, 136, 140, 143, 142, 135, 137, 134, 138, 138, 144, 145, 128, 133, 139, 139, 130, 139, 136, 138, 133, 145, 136, 130, 142, 137, 136, 142, 132, 135, 138, 141, 140, 150, 133, 136, 136, 133, 134, 139, 137, 142, 137, 143, 135, 141, 139, 136, 135, 141, 151, 143, 148, 144, 138, 139, 138, 138, 139, 150, 140, 127, 137, 140, 141, 141, 136, 147, 142, 143, 144, 125, 147, 141, 138, 142, 130, 151, 136, 132, 134, 139, 137, 134, 130, 138, 144, 147, 139, 131, 144, 150, 139, 144, 134, 139, 136, 138, 142, 130, 138, 144, 129, 140, 145, 137, 141, 141, 127, 143, 141, 141, 134, 146, 139, 142, 140, 140, 134, 140, 133, 127, 145, 142, 132, 137, 136, 137, 137, 130, 137, 139, 130, 139, 141, 138, 137, 128, 135, 129, 142, 139, 143, 139, 141, 136, 136, 152, 147, 134, 132, 133, 132, 141, 146, 138, 134, 135, 139, 134, 132, 136, 155, 140, 152, 132, 136, 138, 137, 141, 141, 132, 141, 137, 137, 137, 148, 136, 141, 136, 138, 142, 141, 139, 136, 145, 144, 123, 134, 134, 145, 145, 140, 136, 136, 145, 135, 139, 133, 136, 135, 142, 125, 136, 153, 130, 131, 145, 139, 142, 142, 127, 136, 140, 121, 130, 150, 137, 134, 137, 129, 135, 140, 142, 138, 137, 138, 146, 141, 134, 136, 148, 139, 138, 141, 141, 130, 137, 135, 140, 149, 134, 141, 139, 126, 139, 143, 141, 140, 136, 147, 137, 150, 125, 137, 137, 148, 136, 141, 153, 137, 147, 145, 145, 136, 135, 139, 133, 142, 138, 138, 140, 136, 142, 136, 142, 138, 129, 144, 143, 134, 146, 144, 142, 137, 144, 135, 137, 138, 146, 141, 122, 142, 131, 136, 132, 142, 135, 134, 139, 139, 142, 139, 129, 140, 132, 137, 144, 143, 144, 136, 145, 150, 141, 143, 137, 129, 143, 152, 143, 139, 129, 157, 140, 132, 141, 143, 133, 142, 131, 125, 127, 133, 141, 143, 129, 135, 137, 136, 137, 142, 131, 142, 132, 146, 135, 136, 151, 141, 137, 134, 141, 150, 140, 142, 135, 141, 137, 135, 135, 141, 134, 146, 144, 142, 142, 142, 144, 141, 135, 147, 130, 134, 143, 130, 132, 137, 133, 147, 143, 152, 141, 135, 138, 135, 138, 131, 130, 137, 139, 138, 134, 139, 141, 149, 144, 136, 134, 136, 141, 167, 127, 135, 133, 139, 148, 138, 141, 139, 138, 134, 134, 135, 145, 133, 144, 148, 139, 133, 140, 150, 141, 130, 143, 145, 127, 135, 131, 138, 148, 139, 143, 139, 135, 145, 146, 142, 132, 142, 137, 142, 148, 128, 131, 138, 148, 135, 145, 144, 134, 133, 146, 141, 141, 143, 144, 135, 135, 144, 146, 147, 137, 148, 131, 140, 151, 146, 128, 142, 153, 147, 147, 148, 135, 134, 141, 144, 140, 132, 127, 145, 135, 141, 140, 137, 144, 123, 137, 134, 143, 137, 138, 142, 137, 147, 137, 127, 134, 127, 127, 145, 140, 149, 136, 139, 145, 137, 139, 142, 134, 136, 140, 137, 143, 139, 129, 142, 139, 139, 137, 142, 145, 140, 141, 141, 139, 127, 134, 137, 142, 139, 143, 133, 143, 145, 143, 141, 138, 134, 140, 150, 131, 142, 135, 140, 141, 138, 141, 139, 144, 142, 151, 138, 141, 134, 139, 143, 133, 137, 140, 140, 128, 145, 135, 141, 142, 138, 147, 147, 141, 136, 136, 145, 140, 144, 134, 144, 144, 135, 136, 143, 143, 132, 135, 126, 144, 136, 158, 128, 159, 128, 142, 140, 137, 143, 139, 135, 145, 148, 141, 139, 130, 138, 141, 134, 142, 139, 146, 131, 137, 140, 138, 137, 142, 151, 135, 138, 143, 132, 139, 144, 151, 149, 138, 135, 131, 138, 145, 141, 134, 139, 153, 129, 144, 141, 142, 148, 140, 142, 146, 151, 139, 134, 126, 132, 145, 131, 143, 136, 133, 146, 131, 132, 137, 138, 143, 133, 144, 132, 128, 146, 127, 133, 142, 129, 133, 139, 132, 138, 140, 139, 134, 146, 131, 144, 136, 134, 135, 139, 139, 127, 142, 135, 145, 136, 140, 142, 138, 147, 135, 115, 141, 142, 132, 138, 139, 141, 151, 142, 139, 134, 139, 136, 134, 141, 148, 140, 140, 144, 140, 141, 150, 144, 144, 139, 132, 142, 144, 130, 140, 153, 145, 143, 136, 134, 130, 146, 138, 133, 138, 138, 146, 142, 137, 130, 136, 131, 147, 138, 141, 140, 137, 138, 132, 135, 149, 134, 142, 136, 138, 140, 142, 141, 131, 137, 143, 153, 149, 142, 146, 150, 138, 143, 140, 131, 139, 142, 139, 150, 143, 143, 136, 139, 141, 139, 140, 132, 150, 146, 140, 140, 124, 133, 141, 127, 136, 136, 129, 141, 131, 146, 143, 136, 137, 143, 137, 140, 133, 133, 138, 140, 147, 147, 143, 142, 138, 137, 141, 138, 135, 140, 134, 137, 143, 137, 126, 133, 133, 136, 143, 143, 151, 143, 141, 134, 141, 141, 138, 140, 147, 140, 129, 144, 141, 136, 128, 144, 148, 132, 136, 142, 143, 132, 131, 141, 142, 139, 134, 146, 130, 135, 139, 135, 135, 133, 138, 149, 144, 134, 132, 128, 148, 131, 142, 138, 133, 143, 127, 144, 156, 129, 134, 144, 141, 146, 143, 128, 133, 133, 146, 136, 136, 142, 149, 139, 132, 142, 135, 138, 155, 134, 140, 136, 134, 141, 133, 136, 136, 140, 140, 133, 134, 135, 138, 140, 136, 137, 143, 133, 131, 145, 138, 129, 137, 139, 131, 132, 149, 128, 140, 141, 147, 139, 142, 147, 145, 137, 144, 134, 140, 143, 135, 149, 125, 142, 145, 134, 133, 135, 139, 141, 141, 138, 143, 137, 147, 151, 140, 137, 148, 138, 139, 136, 145, 138, 141, 135, 160, 142, 136, 145, 127, 142, 152, 138, 134, 136, 136, 137, 139, 132, 136, 150, 141, 131, 135, 140, 141, 145, 136, 144, 149, 143, 137, 137, 138, 150, 141, 139, 135, 132, 141, 140, 138, 134, 145, 141, 139, 139, 145, 142, 139, 128, 137, 153, 145, 142, 141, 137, 144, 144, 141, 128, 142, 141, 134, 140, 128, 138, 137, 147, 139, 146, 135, 137, 149, 130, 146, 130, 143, 128, 139, 148, 140, 142, 138, 120, 152, 128, 147, 152, 138, 130, 138, 145, 142, 139, 139, 140, 139, 132, 149, 137, 139, 139, 144, 142, 130, 126, 133, 134, 140, 141, 136, 137, 141, 131, 140, 138, 144, 139, 151, 146, 137, 138, 141, 139, 137, 138, 131, 150, 143, 139, 142, 139, 136, 145, 134, 131, 139, 137, 133, 143, 141, 135, 144, 125, 132, 153, 141, 135, 144, 142, 130, 140, 136, 141, 148, 139, 145, 135, 143, 146, 145, 134, 136, 140, 139, 155, 156, 133, 151, 135, 130, 138, 133, 140, 136, 151, 147, 137, 133, 144, 142, 139, 126, 133, 124, 140, 131, 156, 142, 133, 150, 138, 141, 137, 143, 134, 131, 137, 149, 137, 142, 144, 134, 139, 138, 141, 140, 134, 136, 134, 144, 139, 139, 137, 149, 124, 141, 138, 141, 140, 139, 149, 143, 138, 142, 138, 142, 132, 132, 133, 138, 142, 130, 151, 141, 132, 139, 139, 132, 144, 141, 132, 139, 143, 147, 139, 139, 147, 138, 144, 137, 141, 140, 136, 149, 131, 148, 149, 129, 141, 145, 141, 142, 141, 147, 128, 143, 139, 124, 132, 132, 127, 141, 135, 146, 152, 140, 132, 133, 131, 137, 142, 131, 146, 144, 152, 150, 133, 129, 148, 144, 136, 134, 131, 142, 131, 130, 138, 142, 141, 147, 143, 141, 143, 143, 132, 130, 134, 128, 137, 137, 140, 140, 132, 143, 133, 150, 144, 143, 135, 143, 142, 142, 135, 139, 130, 138, 132, 144, 143, 135, 133, 142, 143, 133, 133, 144, 139, 135, 136, 149, 139, 141, 131, 144, 137, 147, 133, 146, 133, 138, 135, 133, 149, 134, 134, 137, 145, 140, 142, 145, 143, 132, 134, 164, 134, 144, 143, 142, 146, 137, 131, 141, 136, 136, 140, 130, 140, 135, 140, 130, 147, 138, 148, 133, 151, 137, 141, 136, 130, 144, 144, 137, 137, 135, 149, 124, 136, 149, 139, 143, 133, 147, 140, 134, 135, 133, 137, 136, 139, 149, 154, 133, 137, 136, 136, 135, 142, 141, 136, 138, 142, 137, 139, 131, 130, 141, 143, 130, 135, 145, 136, 130, 134, 134, 134, 152, 136, 130, 133, 139, 138, 143, 134, 146, 143, 133, 139, 140, 137, 149, 140, 122, 142, 138, 145, 134, 141, 141, 130, 139, 144, 139, 137, 140, 134, 130, 148, 133, 140, 136, 133, 140, 139, 138, 141, 139, 138, 147, 142, 143, 145, 141, 142, 125, 135, 140, 136, 136, 143, 136, 144, 137, 145, 134, 139, 138, 131, 143, 133, 137, 141, 140, 136, 138, 145, 146, 147, 138, 139, 142, 139, 141, 145, 134, 118, 142, 145, 137, 136, 136, 145, 135, 151, 135, 132, 132, 138, 131, 147, 129, 142, 150, 137, 140, 136, 138, 147, 139, 140, 147, 141, 132, 133, 135, 150, 132, 133, 124, 130, 143, 140, 120, 140, 142, 140, 131, 136, 134, 134, 136, 140, 139, 136, 135, 138, 135, 135, 144, 136, 139, 140, 136, 151, 139, 138, 135, 143, 134, 137, 135, 138, 137, 143, 137, 137, 141, 148, 146, 145, 139, 140, 136, 139, 145, 153, 160, 138, 139, 142, 137, 123, 138, 135, 148, 139, 136, 146, 133, 136, 138, 137, 141, 140, 145, 130, 141, 137, 128, 131, 140, 142, 142, 141, 135, 147, 138, 144, 135, 143, 145, 144, 135, 137, 137, 130, 139, 132, 138, 138, 143, 146, 154, 137, 134, 138, 148, 145, 142, 143, 137, 143, 139, 143, 123, 138, 127, 141, 144, 131, 136, 139, 138, 125, 137, 138, 133, 137, 140, 149, 134, 139, 134, 139, 139, 135, 149, 135, 137, 138, 139, 141, 136, 137, 139, 135, 146, 136, 142, 143, 142, 135, 129, 130, 142, 134, 149, 138, 134, 148, 131, 145, 138, 137, 138, 141, 143, 147, 132, 141, 141, 136, 137, 141, 147, 139, 138, 136, 140, 143, 144, 145, 135, 138, 132, 142, 140, 127, 127, 139, 140, 141, 148, 145, 134, 137, 137, 151, 131, 135, 133, 137, 142, 140, 131, 139, 133, 140, 139, 140, 140, 137, 138, 144, 140, 150, 144, 143, 137, 140, 140, 150, 139, 141, 142, 137, 134, 143, 141, 141, 136, 134, 141, 138, 134, 141, 136, 135, 139, 130, 141, 137, 131, 150, 141, 133, 136, 138, 141, 132, 139, 131, 135, 137, 141, 148, 136, 130, 132, 144, 136, 140, 146, 141, 142, 139, 133, 142, 136, 142, 139, 145, 133, 136, 138, 145, 140, 139, 135, 130, 133, 139, 148, 148, 135, 139, 141, 136, 143, 140, 134, 135, 139, 141, 135, 133, 144, 137, 131, 138, 139, 142, 140, 151, 134, 134, 139, 143, 139, 134, 138, 145, 140, 141, 137, 144, 135, 147, 138, 143, 143, 137, 139, 138, 140, 133, 134, 139, 147, 139, 142, 139, 141, 139, 128, 133, 145, 129, 135, 135, 138, 127, 133, 141, 144, 133, 145, 144, 140, 137, 137, 144, 133, 145, 138, 146, 142, 137, 132, 141, 139, 139, 140, 147, 138, 148, 133, 141, 133, 140, 142, 136, 149, 140, 136, 137, 156, 135, 131, 127, 132, 139, 144, 135, 145, 153, 152, 144, 146, 139, 137, 126, 139, 137, 140, 140, 132, 143, 139, 140, 144, 129, 135, 134, 137, 142, 128, 132, 128, 141, 143, 138, 137, 138, 136, 148, 139, 142, 137, 137, 143, 138, 138, 145, 131, 136, 145, 134, 138, 134, 140, 140, 142, 130, 138, 143, 138, 142, 144, 138, 142, 143, 137, 141, 141, 147, 133, 130, 144, 135, 142, 135, 137, 135, 134, 140, 137, 134, 134, 141, 141, 141, 130, 140, 138, 144, 147, 135, 137, 134, 141, 137, 137, 138, 150, 137, 141, 142, 135, 136, 141, 134, 134, 138, 140, 139, 132, 144, 130, 136, 143, 147, 158, 134, 139, 133, 138, 137, 135, 139, 142, 134, 141, 143, 129, 140, 137, 145, 132, 138, 135, 135, 139, 139, 132, 138, 139, 129, 150, 135, 134, 135, 142, 143, 143, 139, 135, 137, 138, 142, 134, 141, 141, 130, 139, 142, 134, 158, 135, 139, 144, 136, 141, 142, 134, 151, 139, 143, 143, 138, 140, 146, 143, 140, 141, 154, 136, 141, 143, 146, 142, 132, 138, 139, 139, 149, 140, 138, 141, 137, 142, 135, 133, 143, 138, 134, 149, 137, 137, 140, 139, 133, 141, 142, 138, 143, 141, 142, 134, 134, 135, 135, 141, 137, 140, 149, 141, 140, 140, 137, 135, 150, 131, 132, 148, 140, 143, 148, 144, 133, 142, 137, 138, 134, 140, 140, 135, 146, 140, 143, 143, 136, 142, 145, 139, 135, 139, 135, 140, 132, 136, 140, 130, 139, 142, 131, 141, 140, 139, 134, 132, 138, 134, 152, 142, 139, 133, 142, 143, 142, 137, 138, 135, 131, 128, 135, 151, 128, 137, 135, 136, 135, 146, 142, 143, 138, 140, 143, 141, 135, 144, 134, 142, 139, 145, 137, 134, 137, 141, 138, 140, 141, 138, 136, 134, 135, 140, 133, 142, 144, 137, 135, 141, 140, 138, 135, 140, 133, 135, 144, 139, 143, 142, 140, 141, 142, 134, 145, 136, 142, 127, 134, 144, 143, 140, 140, 137, 145, 124, 136, 141, 141, 139, 141, 146, 143, 146, 126, 135, 141, 133, 132, 137, 137, 141, 138, 141, 139, 147, 143, 139, 133, 139, 138, 133, 147, 131, 151, 140, 137, 137, 135, 147, 138, 131, 139, 136, 139, 138, 142, 139, 137, 143, 140, 133, 138, 134, 139, 136, 141, 142, 149, 147, 146, 146, 136, 140, 139, 141, 138, 133, 134, 129, 137, 135, 143, 137, 144, 130, 136, 154, 133, 142, 142, 145, 136, 137, 142, 143, 143, 142, 143, 137, 148, 135, 135, 133, 149, 142, 140, 147, 146, 136, 138, 132, 144, 135, 138, 141, 139, 135, 135, 148, 156, 140, 137, 142, 129, 138, 134, 128, 111, 142, 149, 148, 137, 130, 143, 142, 139, 134, 138, 138, 136, 133, 147, 151, 143, 137, 144, 138, 138, 137, 139, 141, 137, 146, 134, 137, 132, 144, 132, 134, 146, 132, 136, 142, 141, 143, 131, 132, 151, 147, 140, 138, 145, 134, 132, 143, 131, 142, 132, 142, 138, 132, 131, 128, 134, 135, 147, 147, 136, 147, 141, 141, 138, 136, 128, 128, 136, 135, 136, 136, 142, 148, 150, 142, 135, 142, 130, 147, 143, 133, 143, 146, 135, 133, 135, 137, 144, 136, 149, 149, 134, 138, 140, 141, 138, 146, 155, 134, 131, 144, 144, 129, 148, 131, 129, 140, 137, 149, 139, 156, 137, 129, 133, 132, 142, 141, 133, 140, 141, 140, 144, 129, 139, 137, 141, 144, 147, 141, 142, 140, 140, 136, 150, 138, 150, 130, 130, 143, 145, 132, 142, 130, 141, 137, 142, 135, 149, 140, 148, 130, 142, 140, 130, 135, 136, 137, 146, 129, 136, 140, 136, 150, 144, 127, 146, 150, 129, 132, 149, 138, 133, 136, 132, 143, 142, 135, 147, 136, 127, 130, 143, 130, 131, 145, 141, 143, 139, 133, 135, 123, 141, 151, 130, 129, 151, 161, 139, 139, 141, 139, 140, 138, 136, 146, 138, 124, 136, 141, 139, 146, 132, 155, 147, 144, 142, 137, 144, 139, 135, 139, 129, 141, 132, 149, 140, 132, 144, 142, 143, 138, 127, 145, 140, 146, 137, 140, 139, 133, 148, 140, 143, 140, 131, 145, 134, 145, 133, 130, 162, 133, 144, 134, 138, 144, 143, 149, 135, 134, 141, 142, 133, 135, 135, 149, 134, 141, 121, 135, 151, 129, 140, 148, 136, 134, 135, 144, 141, 144, 131, 148, 140, 140, 130, 135, 147, 144, 132, 143, 141, 126, 139, 138, 142, 143, 145, 122, 138, 137, 173, 140, 143, 149, 151, 123, 142, 129, 131, 143, 140, 126, 137, 137, 140, 129, 135, 132, 139, 139, 138, 133, 142, 130, 139, 137, 141, 147, 133, 138, 150, 143, 124, 150, 134, 139, 129, 139, 141, 137, 138, 135, 138, 138, 140, 132, 126, 139, 128, 136, 147, 135, 150, 142, 141, 133, 137, 141, 133, 146, 137, 152, 127, 133, 144, 137, 132, 139, 134, 134, 150, 153, 142, 151, 139, 140, 140, 150, 140, 140, 140, 142, 133, 140, 139, 144, 132, 139, 135, 138, 141, 143, 138, 136, 144, 138, 137, 140, 151, 139, 140, 142, 131, 137, 131, 132, 135, 146, 135, 136, 140, 160, 134, 127, 150, 144, 133, 136, 135, 133, 133, 134, 137, 138, 134, 138, 141, 142, 140, 134, 136, 140, 147, 136, 128, 141, 132, 148, 149, 148, 141, 133, 138, 125, 128, 153, 132, 142, 135, 155, 144, 133, 144, 140, 129, 134, 134, 144, 128, 147, 135, 135, 152, 139, 144, 141, 140, 145, 152, 130, 140, 144, 141, 136, 130, 137, 135, 139, 144, 132, 140, 142, 137, 150, 146, 147, 139, 136, 141, 134, 138, 141, 155, 132, 141, 145, 134, 132, 139, 139, 145, 130, 144, 136, 143, 147, 132, 142, 144, 139, 130, 140, 122, 137, 149, 134, 147, 141, 129, 135, 143, 139, 132, 139, 142, 142, 133, 147, 144, 141, 140, 141, 144, 146, 139, 143, 142, 143, 135, 132, 137, 142, 143, 134, 140, 145, 147, 139, 149, 132, 137, 146, 149, 143, 144, 127, 133, 149, 144, 131, 139, 139, 140, 133, 140, 142, 143, 151, 144, 135, 135, 147, 140, 141, 138, 143, 142, 128, 140, 141, 139, 143, 139, 135, 143, 134, 138, 141, 140, 124, 140, 138, 140, 138, 137, 134, 143, 145, 142, 135, 140, 141, 141, 145, 132, 147, 142, 130, 138, 129, 139, 144, 140, 136, 133, 138, 141, 141, 141, 145, 144, 137, 147, 144, 133, 142, 143, 140, 137, 141, 140, 140, 141, 139, 150, 145, 129, 133, 143, 148, 134, 138, 137, 136, 134, 130, 137, 140, 138, 147, 133, 140, 144, 138, 139, 142, 139, 143, 146, 133, 144, 144, 142, 144, 138, 134, 137, 142, 138, 135, 149, 144, 143, 136, 139, 140, 142, 143, 143, 147, 137, 140, 139, 141, 143, 144, 136, 144, 141, 142, 143, 149, 143, 139, 135, 141, 140, 141, 134, 137, 136, 146, 142, 139, 142, 144, 134, 147, 142, 142, 136, 141, 144, 141, 134, 144, 138, 143, 141, 141, 141, 142, 141, 138, 141, 145, 143, 144, 137, 135, 138, 149, 138, 140, 145, 141, 140, 131, 142, 142, 139, 139, 140, 136, 137, 139, 147, 144, 140, 132, 138, 131, 148, 144, 141, 139, 134, 133, 144, 139, 138, 130, 141, 135, 144, 142, 132, 132, 145, 134, 136, 138, 139, 136, 138, 140, 136, 131, 145, 137, 142, 138, 141, 149, 140, 145, 143, 143, 135, 137, 135, 142, 143, 145, 141, 129, 144, 141, 148, 136, 127, 148, 134, 142, 132, 133, 151, 143, 140, 144, 138, 138, 149, 141, 144, 146, 145, 142, 139, 132, 142, 144, 144, 139, 135, 144, 136, 126, 139, 139, 138, 139, 151, 138, 142, 147, 145, 143, 141, 143, 136, 141, 144, 137, 140, 144, 142, 140, 135, 143, 140, 147, 138, 132, 134, 139, 133, 134, 138, 139, 140, 137, 139, 141, 144, 134, 136, 136, 139, 145, 136, 139, 133, 143, 144, 139, 146, 140, 144, 140, 133, 144, 146, 138, 132, 144, 134, 137, 141, 141, 138, 138, 138, 150, 147, 133, 145, 134, 143, 141, 138, 143, 137, 138, 142, 145, 136, 136, 140, 138, 141, 134, 142, 141, 143, 139, 136, 131, 138, 146, 142, 138, 141, 134, 143, 138, 140, 141, 139, 137, 141, 139, 148, 141, 132, 139, 140, 144, 137, 140, 139, 147, 141, 144, 143, 136, 134, 147, 128, 142, 135, 142, 137, 142, 142, 139, 139, 139, 138, 142, 154, 132, 129, 137, 136, 139, 142, 141, 137, 139, 144, 138, 137, 139, 143, 139, 138, 144, 138, 137, 145, 137, 135, 139, 135, 137, 139, 142, 141, 143, 142, 134, 149, 138, 142, 143, 136, 145, 144, 143, 139, 137, 138, 145, 148, 133, 141, 143, 141, 138, 138, 138, 140, 135, 141, 135, 138, 137, 151, 141, 134, 133, 138, 130, 139, 135, 132, 136, 141, 136, 134, 134, 135, 144, 142, 143, 142, 141, 145, 139, 142, 141, 147, 141, 135, 139, 134, 125, 132, 139, 146, 131, 137, 148, 143, 141, 142, 132, 140, 139, 133, 146, 130, 138, 132, 139, 154, 141, 136, 165, 131, 146, 137, 146, 143, 146, 140, 138, 140, 145, 136, 141, 144, 120, 147, 134, 135, 133, 134, 143, 139, 137, 134, 135, 139, 149, 145, 137, 139, 142, 146, 144, 135, 137, 142, 135, 140, 140, 136, 137, 138, 139, 132, 141, 148, 138, 138, 144, 142, 145, 136, 129, 144, 133, 151, 135, 140, 147, 140, 133, 138, 143, 140, 125, 140, 143, 142, 141, 137, 150, 143, 136, 140, 143, 140, 134, 136, 136, 137, 145, 132, 131, 139, 147, 141, 138, 148, 143, 141, 135, 147, 147, 141, 146, 145, 141, 135, 136, 143, 132, 131, 140, 145, 135, 133, 145, 151, 133, 135, 139, 137, 138, 150, 145, 130, 142, 139, 132, 139, 131, 128, 156, 137, 146, 136, 150, 139, 136, 129, 138, 131, 130, 143, 156, 139, 135, 147, 146, 130, 135, 133, 122, 143, 141, 145, 137, 138, 143, 130, 136, 125, 142, 138, 134, 141, 136, 144, 138, 141, 140, 136, 136, 137, 146, 139, 124, 140, 134, 139, 143, 140, 139, 139, 129, 141, 148, 139, 144, 144, 135, 139, 140, 136, 146, 132, 141, 135, 136, 138, 133, 136, 132, 145, 131, 129, 144, 136, 138, 137, 143, 142, 144, 139, 139, 130, 145, 143, 135, 142, 144, 144, 139, 141, 135, 140, 142, 140, 147, 137, 130, 141, 143, 145, 135, 142, 135, 130, 126, 140, 134, 141, 135, 135, 143, 146, 139, 147, 141, 138, 134, 140, 153, 142, 142, 132, 144, 158, 130, 135, 129, 143, 142, 138, 154, 140, 133, 139, 137, 141, 135, 135, 139, 143, 150, 150, 139, 129, 139, 144, 135, 142, 146, 134, 144, 139, 142, 133, 145, 132, 149, 137, 140, 129, 143, 134, 143, 146, 147, 146, 136, 143, 134, 139, 137, 123, 141, 138, 134, 136, 126, 136, 131, 138, 136, 134, 144, 143, 132, 135, 127, 146, 136, 142, 134, 138, 140, 134, 144, 143, 138, 140, 135, 137, 150, 137, 133, 130, 139, 141, 143, 141, 138, 134, 147, 128, 137, 148, 147, 143, 139, 149, 136, 141, 144, 138, 143, 124, 131, 143, 120, 130, 138, 135, 132, 135, 141, 145, 139, 141, 146, 137, 140, 110, 138, 144, 143, 143, 135, 139, 145, 140, 142, 150, 138, 146, 148, 145, 138, 144, 143, 141, 128, 140, 131, 132, 144, 137, 136, 129, 144, 130, 145, 140, 142, 142, 144, 124, 138, 136, 138, 149, 135, 148, 135, 137, 146, 140, 130, 142, 138, 133, 136, 136, 131, 137, 145, 133, 141, 143, 146, 141, 128, 134, 137, 135, 136, 146, 152, 132, 145, 127, 137, 128, 136, 145, 131, 148, 136, 134, 141, 134, 141, 144, 136, 142, 135, 134, 143, 143, 133, 143, 131, 142, 135, 147, 128, 136, 135, 135, 130, 135, 149, 140, 135, 138, 140, 140, 137, 133, 143, 137, 137, 134, 140, 144, 139, 132, 142, 147, 133, 138, 138, 132, 125, 139, 129, 151, 156, 139, 151, 144, 140, 145, 129, 138, 133, 128, 133, 135, 143, 142, 135, 140, 138, 147, 133, 148, 138, 140, 126, 142, 124, 143, 140, 143, 141, 141, 140, 148, 140, 136, 140, 134, 136, 142, 123, 143, 136, 131, 132, 165, 138, 137, 133, 135, 133, 147, 145, 136, 138, 134, 142, 137, 149, 138, 129, 141, 142, 143, 137, 134, 139, 142, 143, 145, 136, 130, 137, 142, 149, 144, 134, 147, 140, 139, 130, 131, 141, 133, 138, 129, 130, 139, 139, 134, 136, 135, 135, 147, 148, 143, 147, 143, 138, 144, 140, 139, 135, 141, 143, 138, 134, 140, 146, 144, 143, 138, 128, 107, 135, 137, 140, 148, 134, 135, 146, 143, 146, 137, 137, 133, 144, 140, 129, 137, 145, 155, 130, 137, 139, 142, 126, 142, 142, 134, 141, 135, 134, 139, 138, 130, 139, 144, 136, 143, 136, 133, 147, 133, 138, 140, 146, 133, 147, 138, 143, 141, 156, 141, 132, 135, 139, 134, 138, 137, 133, 138, 130, 141, 132, 144, 140, 141, 138, 136, 147, 133, 151, 137, 132, 132, 136, 140, 141, 135, 141, 136, 141, 139, 137, 142, 144, 139, 144, 145, 146, 132, 140, 132, 135, 139, 146, 144, 142, 132, 136, 130, 134, 142, 139, 138, 144, 137, 141, 138, 139, 139, 140, 134, 133, 151, 137, 146, 144, 141, 140, 132, 138, 131, 150, 135, 131, 143, 140, 136, 133, 140, 137, 150, 136, 153, 135, 154, 132, 135, 139, 140, 141, 140, 142, 137, 136, 131, 135, 133, 145, 138, 133, 130, 138, 154, 143, 150, 142, 144, 155, 146, 140, 136, 139, 134, 135, 145, 140, 144, 133, 141, 135, 143, 136, 137, 136, 129, 139, 134, 131, 125, 138, 134, 143, 137, 134, 131, 146, 137, 131, 146, 147, 148, 132, 141, 126, 144, 144, 133, 138, 131, 132, 132, 140, 136, 143, 149, 146, 137, 137, 161, 140, 144, 142, 137, 133, 143, 135, 141, 139, 141, 137, 136, 137, 141, 144, 135, 139, 137, 150, 139, 142, 145, 137, 137, 135, 143, 136, 127, 129, 135, 143, 140, 137, 139, 136, 135, 132, 132, 139, 135, 135, 135, 135, 154, 147, 148, 143, 139, 135, 139, 148, 132, 140, 143, 128, 136, 137, 147, 133, 142, 140, 133, 140, 133, 135, 144, 137, 131, 134, 151, 141, 145, 147, 137, 137, 132, 137, 138, 136, 150, 146, 139, 125, 142, 141, 145, 139, 138, 146, 137, 145, 144, 131, 136, 140, 137, 149, 131, 136, 139, 141, 132, 138, 143, 144, 145, 141, 136, 124, 140, 141, 140, 132, 136, 134, 131, 142, 144, 133, 135, 139, 144, 148, 139, 139, 135, 127, 147, 142, 131, 152, 141, 131, 139, 140, 144, 144, 139, 136, 138, 135, 135, 140, 134, 132, 133, 136, 140, 138, 129, 144, 140, 135, 136, 144, 140, 141, 139, 142, 150, 137, 140, 130, 142, 137, 144, 134, 148, 143, 139, 141, 139, 144, 158, 137, 140, 143, 146, 136, 146, 137, 130, 143, 129, 135, 143, 130, 145, 141, 141, 131, 133, 135, 148, 152, 135, 146, 148, 138, 137, 144, 147, 142, 142, 131, 145, 133, 126, 135, 132, 135, 150, 147, 141, 139, 145, 137, 139, 138, 144, 133, 127, 137, 143, 136, 139, 138, 124, 144, 147, 133, 126, 135, 138, 140, 144, 150, 132, 132, 139, 140, 137, 133, 135, 134, 145, 147, 146, 139, 142, 126, 143, 138, 145, 129, 133, 146, 140, 140, 132, 130, 122, 138, 138, 136, 149, 140, 134, 133, 138, 141, 149, 138, 145, 132, 145, 140, 141, 146, 154, 140, 148, 144, 138, 136, 134, 134, 146, 140, 142, 140, 145, 133, 146, 146, 138, 145, 140, 141, 135, 136, 141, 145, 124, 142, 134, 133, 139, 134, 136, 136, 140, 149, 141, 145, 150, 150, 134, 131, 130, 149, 141, 152, 141, 139, 139, 131, 134, 142, 141, 142, 130, 133, 132, 142, 139, 142, 132, 144, 140, 144, 143, 134, 131, 144, 149, 154, 135, 140, 139, 134, 126, 151, 146, 135, 147, 143, 136, 133, 140, 143, 143, 139, 136, 135, 127, 134, 140, 133, 138, 137, 135, 145, 136, 135, 125, 152, 136, 136, 134, 141, 150, 162, 128, 134, 142, 146, 133, 134, 131, 132, 153, 146, 135, 146, 145, 142, 135, 133, 140, 131, 121, 145, 125, 143, 146, 137, 140, 143, 144, 142, 146, 156, 147, 134, 138, 135, 147, 146, 132, 138, 139, 139, 147, 134, 141, 130, 138, 136, 141, 141, 149, 135, 146, 148, 136, 131, 135, 139, 139, 138, 141, 128, 138, 136, 135, 138, 149, 125, 141, 144, 134, 141, 141, 142, 148, 138, 125, 133, 145, 135, 150, 148, 132, 141, 140, 137, 142, 126, 146, 146, 137, 139, 137, 145, 140, 129, 145, 155, 156, 139, 139, 130, 137, 132, 151, 148, 147, 126, 139, 136, 136, 143, 131, 129, 131, 145, 155, 139, 140, 148, 141, 133, 125, 143, 143, 140, 139, 146, 149, 145, 130, 136, 142, 146, 138, 148, 138, 129, 125, 139, 148, 142, 134, 145, 144, 143, 137, 139, 151, 146, 132, 150, 136, 144, 138, 139, 138, 133, 147, 149, 148, 143, 143, 143, 149, 125, 142, 137, 139, 135, 141, 133, 135, 134, 138, 138, 145, 136, 135, 136, 149, 143, 132, 143, 150, 141, 139, 140, 133, 136, 144, 145, 142, 138, 131, 136, 133, 139, 142, 139, 129, 136, 148, 135, 137, 129, 148, 146, 133, 142, 147, 136, 145, 136, 149, 136, 139, 142, 137, 145, 130, 152, 144, 139, 139, 130, 136, 135, 141, 137, 131, 149, 133, 145, 134, 149, 137, 145, 130, 152, 136, 139, 143, 150, 138, 122, 147, 131, 129, 146, 148, 132, 144, 137, 132, 137, 128, 151, 153, 138, 144, 148, 141, 140, 142, 138, 144, 140, 131, 133, 128, 143, 142, 130, 147, 128, 146, 141, 145, 132, 136, 128, 136, 139, 143, 149, 130, 134, 155, 147, 128, 134, 142, 135, 142, 158, 141, 134, 140, 148, 138, 140, 141, 132, 134, 135, 126, 139, 131, 138, 137, 135, 149, 139, 145, 141, 146, 129, 137, 132, 141, 154, 140, 148, 136, 141, 153, 147, 143, 130, 136, 136, 137, 136, 140, 135, 137, 147, 136, 140, 138, 139, 142, 122, 145, 141, 137, 143, 147, 143, 143, 136, 137, 140, 137, 142, 136, 155, 144, 135, 139, 139, 140, 139, 135, 146, 133, 138, 135, 142, 142, 135, 137, 134, 148, 148, 151, 135, 141, 140, 145, 142, 143, 134, 155, 138, 139, 133, 151, 134, 138, 134, 137, 134, 133, 146, 142, 144, 132, 138, 174, 149, 147, 136, 155, 141, 144, 135, 137, 140, 136, 134, 141, 134, 137, 141, 133, 148, 142, 143, 138, 138, 141, 137, 146, 143, 133, 130, 153, 143, 139, 139, 137, 137, 140, 123, 143, 146, 142, 135, 133, 136, 141, 141, 135, 142, 149, 140, 147, 134, 141, 140, 142, 131, 141, 138, 123, 136, 140, 136, 139, 137, 150, 136, 134, 137, 135, 144, 137, 143, 143, 143, 138, 138, 123, 140, 128, 148, 138, 135, 140, 138, 149, 133, 138, 137, 140, 150, 140, 140, 142, 141, 147, 132, 130, 145, 152, 146, 149, 135, 143, 128, 135, 138, 143, 135, 147, 145, 135, 138, 144, 146, 139, 152, 139, 142, 129, 144, 133, 127, 135, 144, 148, 147, 143, 142, 134, 133, 140, 129, 143, 139, 129, 142, 148, 140, 129, 140, 130, 133, 150, 136, 139, 131, 134, 147, 133, 144, 140, 147, 143, 140, 140, 133, 139, 147, 140, 148, 121, 129, 137, 138, 137, 144, 140, 148, 137, 152, 128, 149, 145, 137, 137, 125, 136, 130, 139, 137, 142, 141, 141, 141, 142, 143, 133, 142, 133, 141, 140, 134, 137, 142, 140, 141, 138, 137, 142, 141, 136, 138, 141, 135, 138, 139, 141, 139, 141, 144, 129, 120, 147, 143, 120, 141, 133, 143, 133, 132, 128, 136, 137, 135, 140, 141, 135, 139, 129, 135, 139, 148, 143, 138, 148, 132, 142, 137, 136, 133, 151, 133, 134, 143, 149, 134, 135, 144, 137, 144, 137, 125, 130, 144, 138, 133, 145, 135, 154, 144, 133, 137, 130, 147, 140, 133, 138, 142, 122, 142, 133, 139, 134, 127, 147, 141, 127, 152, 142, 139, 145, 140, 144, 137, 136, 140, 139, 135, 143, 137, 143, 135, 135, 137, 139, 140, 138, 141, 139, 145, 145, 143, 140, 135, 143, 119, 145, 139, 126, 130, 143, 127, 132, 146, 133, 133, 137, 155, 149, 143, 133, 136, 130, 148, 142, 149, 136, 134, 135, 143, 134, 130, 151, 131, 131, 150, 149, 145, 137, 140, 147, 151, 135, 132, 145, 138, 132, 143, 130, 133, 145, 130, 142, 129, 146, 133, 146, 146, 135, 143, 134, 139, 139, 134, 128, 136, 143, 147, 140, 134, 136, 134, 137, 152, 145, 147, 136, 133, 131, 147, 134, 137, 152, 120, 142, 131, 142, 137, 132, 132, 141, 144, 139, 136, 124, 148, 145, 142, 142, 143, 141, 135, 141, 136, 145, 134, 130, 143, 139, 135, 135, 133, 139, 136, 139, 141, 147, 140, 145, 138, 134, 140, 140, 137, 141, 143, 137, 138, 141, 140, 147, 142, 141, 139, 143, 140, 140, 138, 141, 140, 144, 141, 142, 137, 150, 135, 136, 146, 142, 140, 142, 152, 136, 133, 140, 139, 135, 127, 134, 132, 146, 137, 130, 145, 140, 132, 141, 134, 141, 132, 131, 142, 137, 139, 136, 133, 134, 143, 141, 137, 141, 136, 138, 135, 141, 133, 142, 143, 138, 140, 144, 138, 152, 134, 141, 145, 138, 136, 140, 140, 139, 133, 142, 141, 147, 136, 140, 131, 133, 142, 142, 146, 137, 139, 136, 138, 136, 141, 143, 142, 135, 139, 133, 145, 140, 144, 141, 138, 144, 139, 136, 136, 134, 137, 145, 132, 144, 134, 150, 139, 145, 144, 137, 134, 140, 140, 136, 136, 144, 137, 145, 141, 135, 140, 132, 149, 131, 144, 146, 142, 144, 141, 141, 143, 134, 138, 139, 133, 139, 138, 139, 139, 132, 132, 133, 142, 143, 137, 138, 143, 137, 140, 138, 137, 143, 138, 139, 136, 133, 140, 137, 144, 143, 135, 134, 139, 142, 139, 133, 133, 142, 140, 140, 141, 141, 132, 140, 139, 140, 143, 132, 137, 138, 140, 147, 136, 141, 138, 140, 130, 137, 138, 139, 133, 144, 139, 132, 137, 141, 140, 143, 142, 147, 143, 135, 136, 139, 142, 136, 143, 134, 141, 142, 140, 146, 143, 127, 137, 140, 136, 136, 140, 134, 144, 142, 140, 135, 133, 140, 139, 142, 145, 139, 137, 139, 143, 142, 139, 137, 129, 141, 141, 143, 139, 138, 136, 138, 139, 135, 134, 137, 143, 137, 145, 136, 141, 139, 132, 135, 133, 138, 145, 136, 143, 135, 140, 138, 129, 148, 142, 135, 133, 139, 141, 145, 139, 143, 139, 140, 135, 133, 143, 138, 141, 134, 135, 141, 135, 145, 138, 138, 148, 140, 138, 140, 134, 133, 138, 141, 151, 140, 139, 141, 145, 139, 138, 141, 139, 136, 138, 134, 138, 141, 140, 135, 138, 140, 141, 126, 136, 135, 135, 145, 138, 134, 140, 135, 141, 137, 143, 146, 140, 136, 138, 143, 136, 133, 141, 141, 136, 139, 147, 139, 138, 140, 133, 134, 138, 139, 143, 138, 136, 133, 138, 144, 140, 137, 135, 134, 142, 141, 126, 145, 136, 136, 137, 140, 141, 140, 140, 135, 141, 134, 140, 136, 138, 132, 139, 142, 139, 135, 140, 137, 133, 140, 148, 140, 133, 138, 140, 135, 138, 149, 136, 138, 135, 140, 144, 139, 146, 123, 131, 135, 140, 142, 139, 141, 139, 139, 138, 137, 137, 135, 137, 138, 141, 132, 141, 141, 142, 136, 136, 138, 140, 134, 142, 139, 132, 138, 138, 139, 135, 134, 131, 137, 141, 144, 137, 136, 144, 136, 130, 137, 133, 138, 134, 135, 139, 141, 140, 138, 152, 143, 148, 138, 141, 139, 136, 142, 140, 138, 138, 136, 147, 144, 141, 131, 138, 140, 139, 140, 139, 138, 139, 135, 127, 141, 138, 145, 138, 140, 137, 138, 136, 138, 143, 137, 128, 132, 142, 143, 137, 139, 132, 136, 142, 141, 143, 133, 143, 138, 143, 134, 144, 148, 130, 150, 133, 140, 144, 138, 147, 143, 137, 145, 142, 134, 144, 130, 132, 143, 139, 148, 141, 152, 130, 143, 141, 140, 140, 137, 125, 137, 135, 126, 141, 140, 134, 135, 141, 145, 140, 137, 138, 138, 141, 148, 141, 137, 139, 146, 138, 137, 142, 130, 127, 134, 135, 137, 134, 139, 142, 137, 145, 134, 141, 154, 138, 138, 148, 140, 139, 145, 142, 130, 139, 133, 153, 139, 138, 139, 140, 133, 142, 143, 147, 137, 131, 140, 139, 144, 137, 135, 136, 137, 135, 153, 137, 145, 147, 132, 143, 134, 132, 152, 132, 148, 134, 141, 142, 141, 136, 135, 142, 143, 137, 138, 142, 144, 133, 144, 143, 151, 140, 137, 136, 133, 141, 140, 143, 141, 147, 130, 137, 133, 137, 131, 141, 139, 143, 143, 129, 143, 142, 131, 135, 140, 135, 136, 141, 141, 131, 149, 135, 142, 145, 131, 137, 142, 138, 137, 140, 139, 134, 140, 154, 134, 139, 134, 136, 144, 141, 143, 141, 148, 140, 135, 137, 139, 141, 136, 137, 147, 143, 139, 141, 137, 134, 148, 137, 145, 128, 135, 139, 130, 146, 136, 140, 140, 132, 141, 134, 147, 137, 130, 139, 136, 142, 145, 127, 132, 140, 144, 141, 136, 140, 135, 137, 153, 146, 139, 147, 137, 141, 129, 135, 139, 140, 134, 135, 137, 139, 132, 138, 143, 140, 134, 136, 131, 142, 132, 123, 138, 141, 148, 138, 136, 150, 136, 138, 131, 139, 128, 137, 144, 140, 136, 135, 143, 137, 139, 138, 143, 135, 131, 135, 150, 138, 143, 141, 131, 142, 140, 142, 138, 127, 137, 141, 149, 143, 143, 136, 138, 137, 137, 142, 136, 138, 145, 131, 144, 146, 144, 137, 140, 139, 140, 144, 127, 137, 149, 138, 136, 139, 137, 144, 141, 139, 139, 151, 138, 134, 146, 135, 133, 136, 138, 137, 142, 137, 136, 136, 129, 146, 137, 142, 138, 142, 147, 140, 126, 144, 143, 143, 143, 139, 139, 145, 129, 134, 137, 145, 129, 135, 137, 139, 137, 134, 143, 134, 134, 143, 140, 140, 132, 141, 131, 142, 135, 135, 138, 134, 148, 141, 142, 144, 145, 135, 145, 139, 139, 143, 143, 143, 139, 139, 137, 138, 136, 132, 147, 152, 133, 145, 149, 146, 139, 145, 137, 150, 145, 137, 145, 141, 136, 133, 135, 138, 138, 137, 142, 136, 140, 140, 137, 142, 139, 135, 139, 136, 140, 138, 135, 129, 137, 140, 133, 148, 145, 140, 139, 148, 144, 139, 143, 147, 148, 142, 135, 146, 139, 138, 144, 135, 143, 145, 147, 131, 141, 138, 143, 149, 141, 152, 143, 140, 130, 138, 150, 139, 129, 138, 131, 133, 156, 138, 154, 147, 137, 146, 143, 144, 142, 140, 138, 143, 135, 133, 142, 147, 135, 134, 144, 137, 133, 140, 147, 135, 151, 129, 142, 133, 143, 133, 134, 134, 137, 133, 138, 137, 142, 154, 139, 133, 132, 137, 138, 141, 139, 126, 133, 136, 140, 145, 133, 136, 142, 145, 130, 140, 132, 144, 147, 135, 134, 142, 134, 143, 141, 144, 140, 144, 133, 141, 145, 144, 144, 134, 140, 136, 143, 139, 134, 134, 138, 144, 134, 137, 143, 135, 146, 146, 138, 141, 137, 145, 142, 130, 135, 131, 140, 142, 138, 139, 147, 131, 143, 139, 143, 149, 128, 137, 135, 134, 131, 138, 147, 137, 140, 158, 141, 129, 142, 137, 143, 139, 139, 131, 147, 137, 132, 139, 133, 147, 137, 140, 132, 138, 142, 148, 140, 137, 144, 141, 139, 146, 142, 137, 143, 149, 133, 141, 143, 144, 139, 146, 132, 135, 137, 141, 134, 135, 134, 142, 150, 140, 144, 142, 136, 131, 142, 144, 140, 136, 145, 139, 132, 139, 153, 148, 140, 134, 138, 147, 137, 135, 147, 143, 142, 133, 141, 133, 141, 142, 134, 137, 147, 141, 140, 136, 140, 137, 150, 141, 141, 148, 132, 137, 153, 135, 137, 136, 146, 147, 142, 137, 138, 142, 135, 137, 132, 147, 141, 136, 132, 132, 144, 155, 143, 127, 138, 137, 157, 128, 143, 131, 138, 144, 141, 138, 146, 137, 144, 141, 137, 147, 136, 140, 139, 142, 133, 138, 141, 141, 143, 140, 134, 146, 144, 140, 141, 131, 137, 139, 140, 140, 140, 131, 142, 139, 138, 137, 141, 134, 134, 135, 139, 138, 153, 144, 138, 143, 130, 136, 136, 137, 140, 142, 146, 144, 135, 137, 134, 137, 145, 134, 139, 138, 138, 133, 133, 139, 135, 136, 141, 138, 144, 146, 145, 142, 156, 135, 150, 142, 131, 134, 137, 148, 135, 138, 142, 140, 145, 136, 145, 138, 136, 136, 138, 136, 136, 141, 135, 140, 141, 138, 138, 133, 140, 139, 141, 141, 140, 135, 148, 137, 139, 146, 145, 137, 135, 139, 136, 145, 140, 139, 133, 132, 142, 132, 139, 138, 142, 138, 138, 138, 141, 145, 145, 136, 141, 144, 134, 138, 136, 148, 137, 138, 133, 139, 133, 131, 135, 143, 152, 146, 137, 133, 130, 139, 142, 137, 142, 145, 137, 137, 139, 145, 144, 142, 136, 135, 140, 131, 132, 149, 137, 144, 132, 144, 143, 139, 141, 139, 138, 143, 141, 141, 146, 136, 141, 141, 141, 138, 145, 134, 144, 139, 134, 138, 138, 139, 137, 144, 139, 142, 135, 131, 130, 142, 144, 142, 148, 136, 138, 144, 141, 138, 139, 143, 145, 136, 141, 144, 132, 143, 131, 144, 138, 139, 141, 139, 139, 135, 152, 153, 141, 149, 139, 132, 141, 134, 145, 139, 144, 147, 159, 138, 141, 137, 144, 138, 143, 143, 143, 136, 135, 134, 133, 138, 142, 146, 140, 136, 137, 135, 138, 136, 130, 132, 147, 152, 134, 134, 135, 136, 132, 130, 130, 140, 140, 131, 140, 131, 134, 143, 145, 132, 142, 144, 141, 145, 141, 137, 137, 139, 135, 128, 132, 129, 138, 141, 145, 136, 145, 135, 138, 129, 140, 140, 145, 145, 138, 139, 140, 134, 140, 143, 138, 145, 149, 140, 139, 132, 143, 144, 141, 140, 139, 136, 138, 135, 138, 140, 142, 133, 138, 140, 144, 138, 140, 134, 131, 143, 143, 141, 140, 142, 129, 137, 138, 141, 142, 136, 144, 137, 140, 145, 142, 137, 141, 134, 140, 137, 136, 148, 137, 138, 143, 141, 136, 138, 141, 147, 140, 136, 139, 137, 140, 139, 141, 141, 141, 148, 145, 138, 143, 133, 137, 141, 140, 133, 147, 142, 141, 136, 139, 139, 141, 140, 139, 138, 138, 137, 138, 137, 148, 134, 139, 140, 142, 138, 144, 142, 138, 133, 135, 139, 142, 133, 137, 139, 143, 135, 139, 142, 140, 138, 140, 142, 138, 140, 136, 139, 140, 141, 138, 134, 141, 143, 137, 131, 139, 144, 137, 140, 133, 146, 133, 144, 136, 131, 138, 139, 143, 147, 140, 139, 139, 138, 136, 133, 145, 145, 137, 142, 139, 135, 135, 140, 141, 138, 141, 141, 135, 140, 137, 137, 148, 145, 137, 134, 135, 137, 129, 143, 136, 138, 141, 143, 140, 147, 146, 136, 136, 137, 141, 135, 143, 137, 144, 138, 140, 137, 141, 136, 137, 141, 143, 133, 140, 139, 133, 139, 140, 134, 142, 139, 141, 139, 136, 143, 136, 138, 131, 137, 142, 137, 141, 133, 136, 142, 140, 140, 137, 140, 144, 139, 130, 141, 137, 141, 137, 139, 136, 148, 132, 140, 139, 139, 136, 136, 139, 141, 141, 137, 139, 141, 145, 135, 139, 136, 144, 144, 136, 141, 139, 136, 139, 142, 140, 137, 137, 138, 138, 139, 142, 144, 138, 137, 136, 129, 138, 133, 145, 135, 135, 141, 138, 142, 137, 144, 143, 139, 138, 138, 138, 136, 133, 136, 138, 136, 142, 134, 142, 139, 136, 136, 134, 135, 141, 136, 145, 136, 138, 141, 138, 136, 141, 137, 136, 136, 135, 132, 138, 142, 143, 133, 138, 140, 141, 140, 135, 145, 135, 141, 136, 137, 138, 141, 140, 140, 136, 141, 140, 143, 138, 131, 131, 139, 146, 135, 137, 139, 145, 146, 135, 138, 137, 142, 138, 145, 137, 141, 134, 139, 141, 136, 146, 140, 138, 139, 135, 130, 133, 138, 138, 137, 138, 138, 142, 146, 142, 138, 140, 142, 145, 139, 143, 134, 135, 139, 140, 145, 145, 138, 137, 148, 135, 139, 134, 146, 138, 145, 135, 134, 136, 135, 142, 137, 139, 141, 139, 143, 131, 136, 139, 144, 135, 139, 142, 138, 140, 142, 131, 131, 138, 142, 133, 142, 140, 136, 135, 139, 140, 141, 139, 138, 144, 142, 134, 133, 137, 141, 138, 141, 135, 136, 141, 146, 137, 139, 143, 136, 141, 145, 134, 127, 143, 141, 136, 141, 145, 140, 141, 138, 137, 141, 137, 133, 142, 141, 142, 138, 138, 131, 135, 138, 141, 146, 142, 141, 138, 143, 135, 138, 134, 140, 140, 151, 136, 136, 134, 132, 146, 138, 135, 132, 134, 136, 142, 139, 141, 137, 141, 136, 138, 143, 138, 148, 140, 138, 146, 142, 136, 133, 137, 137, 142, 144, 140, 143, 137, 143, 139, 139, 138, 133, 137, 140, 138, 142, 142, 140, 143, 136, 141, 140, 139, 142, 137, 138, 134, 139, 145, 139, 137, 135, 137, 139, 138, 135, 132, 140, 130, 146, 139, 146, 144, 142, 137, 128, 137, 141, 139, 144, 142, 140, 147, 133, 134, 144, 146, 140, 149, 137, 126, 145, 147, 145, 146, 138, 143, 149, 140, 143, 137, 134, 130, 134, 135, 140, 147, 135, 133, 138, 149, 138, 135, 134, 140, 141, 142, 124, 143, 142, 142, 143, 147, 140, 134, 149, 137, 137, 135, 130, 143, 132, 135, 140, 138, 142, 142, 121, 147, 135, 147, 142, 146, 145, 134, 134, 144, 137, 139, 143, 138, 141, 138, 128, 139, 136, 143, 136, 136, 136, 133, 134, 134, 139, 132, 155, 142, 137, 138, 135, 141, 146, 132, 136, 135, 137, 136, 142, 144, 134, 143, 142, 141, 140, 148, 136, 137, 136, 144, 134, 142, 146, 140, 137, 139, 142, 132, 138, 139, 133, 128, 136, 143, 139, 137, 143, 132, 139, 135, 135, 139, 132, 146, 142, 139, 137, 137, 133, 139, 147, 144, 131, 128, 135, 141, 142, 141, 150, 139, 139, 139, 141, 148, 130, 139, 139, 136, 141, 138, 141, 133, 140, 137, 146, 124, 134, 128, 138, 144, 140, 148, 136, 148, 147, 131, 137, 129, 145, 144, 137, 148, 137, 137, 149, 142, 135, 149, 142, 139, 139, 148, 130, 140, 119, 143, 139, 131, 142, 144, 141, 133, 142, 143, 143, 147, 137, 142, 140, 148, 142, 136, 153, 142, 141, 131, 129, 145, 136, 140, 144, 142, 136, 128, 135, 135, 142, 136, 143, 131, 134, 132, 134, 139, 135, 136, 137, 134, 137, 137, 142, 148, 144, 135, 140, 148, 138, 140, 149, 146, 131, 137, 134, 137, 147, 138, 126, 142, 142, 143, 155, 139, 126, 141, 139, 139, 143, 136, 142, 140, 140, 148, 133, 146, 135, 132, 146, 136, 138, 135, 139, 143, 134, 141, 133, 135, 136, 143, 140, 138, 141, 140, 145, 134, 133, 128, 135, 144, 143, 134, 139, 145, 139, 137, 144, 139, 139, 141, 132, 134, 132, 137, 148, 136, 135, 138, 139, 155, 146, 139, 137, 142, 137, 142, 132, 140, 144, 126, 144, 137, 147, 141, 134, 136, 145, 138, 145, 134, 141, 141, 137, 138, 133, 133, 140, 134, 145, 139, 140, 132, 132, 145, 142, 133, 144, 132, 135, 142, 141, 148, 139, 138, 142, 126, 147, 130, 132, 140, 141, 141, 130, 151, 142, 133, 141, 141, 133, 142, 144, 132, 130, 135, 144, 142, 137, 137, 154, 135, 134, 137, 144, 140, 134, 130, 134, 138, 140, 132, 144, 135, 134, 138, 143, 136, 141, 135, 138, 136, 134, 152, 142, 141, 143, 139, 138, 135, 145, 132, 144, 139, 147, 138, 138, 141, 135, 141, 145, 141, 137, 135, 143, 137, 134, 140, 143, 127, 143, 132, 142, 141, 145, 141, 147, 137, 136, 139, 138, 144, 135, 141, 134, 132, 139, 141, 138, 137, 135, 139, 146, 146, 150, 139, 145, 138, 139, 142, 141, 133, 131, 136, 133, 146, 141, 134, 129, 143, 136, 145, 135, 149, 142, 136, 142, 141, 140, 141, 150, 141, 146, 139, 135, 143, 137, 143, 132, 143, 134, 143, 145, 134, 141, 127, 136, 130, 144, 138, 143, 139, 136, 139, 138, 130, 125, 141, 141, 142, 145, 145, 130, 146, 143, 132, 128, 136, 146, 135, 139, 136, 141, 139, 141, 146, 134, 127, 132, 147, 135, 139, 149, 149, 140, 136, 138, 136, 137, 124, 139, 139, 133, 136, 148, 140, 138, 140, 142, 144, 138, 140, 138, 137, 132, 127, 140, 137, 141, 151, 148, 135, 134, 133, 137, 141, 144, 135, 138, 141, 142, 135, 142, 133, 140, 145, 138, 155, 147, 151, 137, 133, 143, 133, 142, 141, 142, 136, 145, 136, 138, 136, 132, 149, 132, 145, 142, 132, 140, 140, 148, 150, 135, 136, 140, 133, 144, 141, 150, 132, 136, 133, 132, 135, 140, 125, 132, 143, 136, 130, 137, 141, 135, 148, 136, 139, 131, 127, 142, 131, 132, 135, 140, 144, 141, 138, 144, 137, 139, 138, 139, 144, 130, 140, 140, 148, 142, 143, 151, 133, 133, 137, 148, 139, 141, 139, 137, 138, 144, 139, 142, 129, 143, 141, 137, 146, 138, 145, 146, 140, 148, 132, 140, 144, 140, 136, 134, 143, 131, 145, 140, 135, 133, 146, 140, 134, 139, 133, 140, 125, 124, 123, 134, 134, 133, 136, 148, 135, 137, 141, 145, 146, 138, 139, 143, 142, 135, 137, 130, 132, 144, 142, 146, 142, 146, 138, 137, 136, 154, 132, 141, 152, 147, 142, 129, 130, 140, 139, 144, 132, 139, 140, 138, 140, 128, 141, 137, 138, 143, 140, 142, 146, 140, 137, 131, 129, 147, 139, 131, 150, 144, 140, 125, 131, 135, 143, 134, 144, 148, 142, 142, 137, 134, 128, 133, 139, 133, 141, 146, 136, 131, 140, 135, 145, 138, 133, 141, 150, 139, 144, 142, 134, 141, 135, 144, 134, 140, 135, 141, 135, 132, 135, 139, 140, 143, 143, 143, 136, 140, 135, 136, 128, 142, 148, 142, 137, 131, 140, 137, 137, 141, 140, 141, 128, 154, 140, 134, 128, 137, 144, 135, 141, 128, 139, 133, 128, 136, 136, 129, 141, 147, 141, 146, 143, 140, 137, 135, 135, 129, 135, 145, 142, 133, 127, 132, 139, 141, 144, 140, 145, 141, 131, 137, 143, 140, 133, 136, 136, 138, 144, 145, 136, 139, 137, 140, 139, 135, 132, 147, 145, 134, 135, 130, 140, 141, 139, 146, 144, 138, 137, 143, 140, 143, 143, 142, 133, 145, 132, 142, 142, 138, 131, 138, 146, 140, 148, 140, 131, 137, 135, 150, 141, 141, 136, 143, 136, 131, 133, 132, 146, 140, 144, 132, 133, 150, 138, 137, 148, 134, 143, 148, 128, 145, 141, 140, 132, 144, 128, 138, 136, 144, 139, 137, 139, 145, 144, 145, 139, 130, 129, 140, 148, 136, 134, 139, 141, 141, 138, 147, 129, 152, 133, 147, 140, 135, 141, 131, 136, 146, 142, 144, 136, 141, 142, 134, 145, 137, 141, 129, 147, 133, 143, 141, 136, 139, 134, 128, 135, 140, 130, 133, 139, 140, 134, 141, 141, 143, 146, 136, 137, 134, 133, 147, 137, 148, 133, 143, 125, 139, 140, 137, 134, 136, 139, 130, 135, 135, 134, 138, 136, 139, 144, 136, 137, 136, 140, 145, 136, 143, 157, 135, 139, 146, 132, 128, 134, 144, 140, 141, 136, 147, 136, 147, 137, 138, 136, 136, 125, 129, 137, 154, 138, 134, 142, 143, 139, 147, 133, 130, 138, 150, 134, 127, 137, 138, 141, 131, 133, 139, 139, 139, 141, 140, 144, 146, 139, 136, 139, 128, 136, 141, 132, 139, 145, 128, 134, 140, 134, 140, 137, 133, 147, 140, 159, 138, 142, 136, 145, 142, 140, 144, 143, 134, 136, 137, 141, 139, 143, 147, 140, 140, 142, 137, 133, 132, 134, 134, 141, 132, 138, 143, 152, 146, 146, 142, 144, 145, 140, 135, 137, 146, 142, 152, 140, 134, 133, 133, 134, 134, 142, 154, 131, 142, 142, 141, 141, 139, 140, 132, 138, 135, 142, 139, 140, 142, 136, 139, 138, 139, 148, 146, 135, 141, 141, 142, 144, 133, 141, 142, 139, 131, 130, 138, 144, 144, 145, 138, 144, 127, 136, 143, 146, 138, 138, 136, 134, 145, 137, 143, 142, 135, 137, 133, 137, 136, 154, 149, 135, 141, 142, 133, 137, 134, 136, 150, 132, 150, 144, 151, 135, 148, 139, 129, 141, 139, 144, 136, 141, 131, 142, 152, 143, 144, 144, 143, 142, 140, 135, 134, 143, 147, 135, 144, 138, 138, 138, 141, 136, 131, 131, 137, 137, 148, 149, 136, 133, 136, 137, 144, 145, 141, 144, 136, 137, 138, 135, 138, 135, 134, 143, 139, 134, 134, 136, 136, 145, 143, 139, 139, 145, 148, 138, 133, 139, 140, 138, 138, 146, 134, 141, 136, 132, 133, 149, 138, 139, 139, 149, 152, 142, 145, 151, 142, 141, 139, 138, 140, 143, 140, 140, 142, 141, 145, 137, 141, 134, 138, 136, 146, 131, 143, 141, 139, 143, 129, 149, 132, 130, 139, 143, 139, 141, 146, 144, 136, 140, 133, 139, 136, 136, 141, 140, 137, 132, 138, 139, 133, 141, 143, 144, 143, 140, 141, 136, 138, 139, 139, 148, 141, 143, 134, 143, 144, 134, 139, 136, 144, 142, 131, 140, 143, 139, 131, 139, 141, 151, 134, 141, 140, 139, 145, 144, 136, 135, 141, 139, 131, 135, 136, 148, 141, 142, 135, 148, 144, 145, 147, 135, 136, 134, 138, 137, 144, 142, 130, 129, 139, 142, 143, 135, 134, 130, 141, 143, 135, 141, 137, 137, 132, 141, 145, 144, 133, 143, 143, 143, 136, 140, 148, 134, 137, 136, 142, 148, 128, 138, 140, 141, 130, 134, 141, 137, 134, 154, 143, 133, 140, 139, 151, 146, 149, 141, 144, 149, 138, 129, 149, 137, 144, 133, 138, 131, 143, 145, 147, 135, 138, 142, 122, 139, 149, 143, 133, 139, 134, 141, 144, 138, 142, 145, 139, 136, 141, 132, 133, 147, 133, 132, 138, 143, 142, 142, 132, 139, 136, 130, 139, 134, 137, 141, 142, 141, 148, 138, 134, 138, 134, 140, 144, 135, 141, 136, 132, 140, 145, 137, 142, 142, 138, 134, 139, 142, 143, 144, 138, 137, 134, 140, 153, 145, 144, 139, 139, 141, 141, 131, 141, 146, 139, 139, 145, 140, 137, 138, 128, 147, 131, 150, 138, 130, 143, 147, 128, 146, 131, 138, 135, 148, 136, 139, 137, 140, 142, 137, 146, 142, 142, 142, 139, 137, 136, 142, 137, 136, 136, 145, 148, 141, 136, 143, 135, 138, 133, 139, 133, 131, 145, 137, 135, 132, 144, 139, 134, 142, 136, 134, 130, 138, 141, 140, 142, 144, 131, 142, 145, 140, 124, 140, 133, 137, 145, 143, 137, 134, 141, 132, 147, 138, 137, 141, 132, 136, 130, 144, 138, 135, 138, 138, 139, 131, 138, 133, 138, 142, 136, 149, 148, 141, 137, 137, 134, 128, 135, 143, 147, 137, 141, 140, 135, 133, 142, 137, 142, 140, 142, 140, 132, 140, 133, 139, 132, 139, 132, 142, 143, 142, 146, 146, 144, 137, 139, 135, 134, 149, 136, 141, 136, 144, 133, 128, 148, 140, 127, 128, 141, 146, 138, 138, 157, 143, 135, 137, 136, 137, 137, 135, 138, 147, 148, 139, 140, 150, 146, 139, 138, 137, 130, 132, 128, 135, 141, 135, 143, 134, 129, 138, 131, 142, 137, 133, 130, 129, 129, 135, 142, 142, 144, 137, 132, 128, 130, 135, 133, 147, 137, 134, 142, 137, 133, 146, 144, 139, 138, 130, 151, 133, 148, 161, 132, 138, 159, 145, 131, 141, 136, 142, 146, 141, 125, 141, 135, 146, 128, 133, 141, 144, 140, 133, 137, 132, 123, 144, 142, 130, 144, 152, 141, 144, 145, 140, 138, 143, 134, 146, 140, 132, 138, 143, 138, 136, 138, 147, 134, 135, 131, 138, 137, 141, 138, 136, 134, 138, 134, 139, 135, 142, 138, 137, 136, 130, 138, 141, 139, 141, 141, 141, 137, 118, 144, 138, 141, 129, 144, 159, 139, 137, 126, 141, 128, 140, 139, 146, 142, 136, 141, 128, 125, 141, 133, 135, 146, 143, 138, 136, 142, 143, 139, 133, 137, 135, 151, 141, 138, 146, 134, 142, 142, 145, 140, 139, 130, 127, 144, 136, 145, 130, 134, 141, 144, 135, 133, 145, 136, 138, 138, 146, 143, 147, 128, 139, 140, 137, 146, 148, 131, 144, 137, 120, 148, 154, 129, 140, 136, 136, 137, 142, 131, 136, 142, 132, 145, 137, 137, 144, 138, 133, 143, 132, 137, 136, 151, 145, 135, 140, 134, 136, 145, 132, 131, 145, 138, 128, 125, 135, 138, 137, 145, 141, 139, 136, 151, 137, 136, 135, 147, 140, 141, 141, 138, 141, 139, 138, 136, 137, 136, 146, 143, 147, 137, 143, 137, 145, 128, 139, 140, 149, 137, 137, 138, 131, 142, 148, 139, 151, 135, 135, 137, 135, 134, 137, 144, 147, 141, 136, 135, 134, 148, 144, 131, 133, 131, 147, 135, 130, 132, 135, 149, 135, 149, 130, 152, 135, 126, 137, 140, 123, 124, 155, 136, 132, 135, 158, 135, 139, 139, 129, 132, 138, 132, 137, 142, 133, 148, 136, 155, 143, 140, 143, 136, 144, 140, 137, 145, 146, 142, 141, 142, 142, 140, 136, 154, 134, 140, 138, 127, 137, 136, 142, 138, 145, 148, 136, 135, 128, 152, 133, 140, 145, 142, 142, 140, 143, 136, 146, 142, 139, 144, 136, 136, 141, 129, 137, 136, 146, 145, 146, 141, 134, 138, 138, 136, 146, 140, 135, 138, 140, 138, 126, 144, 139, 141, 141, 130, 140, 118, 150, 139, 144, 147, 137, 140, 140, 135, 135, 123, 140, 142, 128, 151, 147, 151, 150, 144, 140, 139, 133, 139, 160, 141, 137, 137, 133, 142, 134, 141, 148, 143, 138, 141, 137, 142, 136, 143, 141, 135, 135, 146, 142, 137, 139, 148, 140, 131, 146, 136, 138, 136, 139, 141, 149, 140, 146, 141, 135, 141, 144, 137, 139, 143, 133, 136, 142, 145, 134, 137, 147, 150, 138, 141, 141, 139, 138, 136, 137, 131, 132, 133, 135, 133, 133, 124, 139, 141, 140, 137, 140, 143, 142, 147, 140, 146, 142, 147, 145, 142, 139, 140, 136, 134, 138, 137, 139, 136, 134, 136, 129, 147, 135, 145, 136, 133, 129, 130, 136, 141, 134, 144, 132, 142, 141, 137, 139, 134, 139, 139, 138, 133, 142, 135, 144, 139, 145, 137, 136, 135, 135, 136, 140, 130, 150, 128, 136, 132, 135, 131, 141, 138, 135, 124, 131, 131, 138, 133, 139, 148, 133, 130, 146, 146, 153, 140, 133, 139, 135, 141, 141, 145, 140, 117, 139, 136, 139, 145, 139, 143, 149, 140, 133, 138, 132, 132, 145, 141, 138, 144, 145, 128, 143, 136, 136, 134, 145, 139, 140, 137, 147, 141, 134, 142, 136, 144, 138, 146, 140, 134, 143, 147, 141, 143, 131, 142, 147, 138, 137, 144, 143, 140, 137, 132, 132, 140, 140, 147, 135, 141, 127, 150, 138, 138, 127, 157, 135, 127, 133, 136, 139, 134, 137, 142, 133, 136, 143, 139, 136, 138, 144, 138, 145, 137, 142, 149, 149, 142, 145, 145, 115, 140, 144, 140, 138, 142, 155, 141, 141, 142, 133, 126, 133, 135, 136, 129, 137, 140, 138, 141, 147, 136, 135, 137, 149, 135, 131, 138, 143, 138, 141, 142, 140, 142, 135, 146, 143, 136, 143, 140, 141, 139, 135, 133, 142, 135, 134, 143, 152, 149, 154, 136, 138, 140, 124, 132, 145, 136, 134, 139, 145, 140, 133, 145, 144, 143, 141, 141, 138, 133, 142, 137, 123, 139, 136, 144, 135, 143, 141, 145, 138, 147, 146, 147, 137, 140, 146, 134, 134, 143, 140, 135, 142, 134, 139, 136, 150, 147, 150, 138, 136, 141, 140, 147, 141, 146, 136, 139, 139, 138, 129, 146, 131, 153, 136, 149, 135, 155, 140, 138, 147, 142, 133, 141, 153, 142, 134, 141, 133, 131, 136, 140, 142, 146, 141, 137, 139, 139, 149, 141, 138, 137, 126, 139, 134, 137, 137, 136, 142, 130, 133, 151, 136, 140, 136, 139, 137, 130, 148, 135, 134, 135, 141, 140, 138, 141, 154, 139, 142, 142, 145, 147, 142, 140, 147, 140, 139, 137, 133, 141, 137, 137, 143, 143, 146, 148, 139, 146, 139, 143, 137, 148, 136, 139, 141, 144, 139, 142, 141, 141, 135, 136, 143, 140, 135, 142, 137, 138, 129, 143, 135, 143, 147, 140, 133, 138, 142, 138, 126, 144, 134, 145, 144, 142, 153, 144, 137, 144, 135, 144, 133, 138, 149, 142, 149, 148, 141, 137, 137, 143, 146, 141, 137, 142, 131, 132, 136, 129, 140, 136, 137, 130, 143, 147, 137, 148, 139, 134, 128, 140, 132, 128, 143, 135, 135, 132, 144, 143, 139, 146, 144, 139, 145, 141, 144, 134, 136, 130, 141, 137, 141, 142, 140, 141, 137, 137, 140, 145, 135, 140, 135, 139, 134, 142, 132, 141, 140, 138, 142, 140, 138, 149, 142, 140, 138, 133, 136, 137, 146, 134, 136, 134, 133, 138, 133, 138, 137, 131, 139, 130, 144, 136, 132, 139, 147, 135, 140, 138, 159, 145, 137, 142, 136, 141, 147, 140, 132, 132, 150, 146, 135, 138, 130, 133, 135, 139, 139, 145, 146, 134, 135, 137, 134, 140, 136, 140, 134, 132, 146, 138, 141, 140, 132, 133, 129, 140, 133, 131, 140, 139, 148, 133, 147, 137, 141, 135, 138, 135, 138, 143, 142, 144, 144, 144, 136, 139, 125, 139, 140, 143, 139, 136, 143, 145, 138, 140, 123, 143, 149, 136, 141, 141, 143, 141, 133, 136, 140, 145, 144, 135, 141, 143, 148, 136, 144, 146, 137, 143, 140, 136, 142, 139, 137, 133, 135, 135, 138, 137, 150, 141, 140, 131, 142, 144, 137, 139, 136, 141, 136, 140, 142, 142, 134, 134, 153, 135, 140, 141, 146, 145, 138, 133, 133, 138, 138, 145, 144, 146, 141, 138, 143, 137, 148, 140, 141, 144, 132, 138, 131, 146, 141, 137, 130, 139, 143, 142, 140, 140, 144, 136, 136, 144, 141, 142, 140, 137, 137, 142, 136, 142, 135, 137, 140, 141, 137, 137, 137, 144, 132, 140, 141, 126, 137, 147, 141, 136, 128, 145, 139, 133, 135, 130, 153, 136, 134, 136, 138, 137, 148, 144, 140, 138, 145, 136, 143, 136, 137, 142, 138, 137, 132, 135, 146, 145, 147, 139, 135, 142, 131, 140, 137, 136, 139, 135, 142, 139, 133, 147, 136, 138, 143, 140, 141, 138, 135, 137, 142, 139, 146, 140, 145, 132, 136, 142, 130, 140, 150, 133, 138, 135, 140, 136, 137, 138, 136, 142, 136, 146, 137, 139, 131, 137, 145, 140, 132, 140, 143, 133, 138, 145, 138, 133, 143, 134, 137, 138, 135, 141, 146, 138, 144, 144, 139, 133, 136, 144, 139, 139, 140, 143, 132, 134, 140, 133, 148, 134, 138, 135, 143, 127, 135, 137, 130, 136, 142, 138, 135, 134, 143, 129, 141, 137, 150, 138, 127, 144, 146, 142, 147, 138, 130, 139, 133, 139, 139, 134, 144, 130, 144, 145, 137, 125, 145, 134, 134, 146, 136, 140, 147, 141, 142, 142, 136, 138, 145, 149, 145, 144, 139, 147, 136, 127, 144, 138, 127, 137, 132, 148, 142, 146, 142, 137, 142, 138, 140, 136, 140, 138, 135, 131, 141, 142, 137, 143, 141, 132, 135, 141, 137, 135, 138, 139, 138, 144, 135, 146, 138, 140, 141, 133, 141, 148, 140, 141, 136, 137, 136, 139, 127, 130, 138, 134, 134, 149, 147, 131, 146, 141, 143, 142, 141, 134, 140, 141, 133, 136, 138, 133, 141, 139, 136, 132, 138, 135, 141, 133, 133, 135, 134, 132, 140, 136, 136, 138, 142, 143, 138, 147, 137, 143, 135, 133, 139, 141, 141, 141, 133, 142, 137, 138, 135, 140, 128, 140, 139, 139, 137, 142, 148, 142, 138, 141, 137, 136, 138, 134, 149, 150, 136, 146, 143, 138, 137, 143, 140, 137, 144, 137, 137, 140, 135, 148, 139, 139, 138, 141, 146, 143, 141, 143, 140, 148, 144, 135, 148, 137, 148, 138, 140, 145, 143, 143, 133, 142, 146, 133, 142, 142, 141, 139, 138, 144, 146, 142, 146, 148, 144, 134, 139, 138, 144, 139, 142, 132, 136, 140, 135, 135, 135, 133, 145, 133, 133, 145, 138, 136, 142, 134, 144, 139, 133, 136, 141, 135, 140, 141, 136, 140, 137, 143, 147, 131, 132, 140, 146, 132, 130, 136, 143, 138, 143, 129, 138, 135, 140, 143, 138, 139, 139, 140, 131, 140, 145, 141, 141, 135, 134, 140, 140, 132, 142, 143, 135, 133, 134, 135, 136, 135, 132, 151, 139, 135, 140, 134, 138, 141, 140, 135, 135, 149, 132, 150, 137, 139, 144, 137, 140, 144, 141, 137, 136, 131, 137, 138, 140, 144, 144, 136, 133, 137, 143, 142, 137, 145, 142, 139, 142, 137, 144, 132, 150, 138, 137, 143, 138, 135, 143, 141, 141, 137, 140, 139, 134, 137, 139, 131, 132, 141, 144, 140, 137, 146, 138, 140, 138, 148, 136, 141, 141, 138, 133, 132, 138, 137, 142, 140, 137, 138, 148, 142, 139, 138, 143, 135, 138, 147, 129, 141, 142, 133, 145, 133, 144, 139, 139, 140, 134, 144, 129, 143, 149, 144, 145, 138, 142, 133, 147, 143, 138, 136, 140, 130, 141, 138, 144, 142, 141, 142, 141, 134, 139, 141, 134, 145, 138, 140, 138, 141, 150, 137, 143, 136, 139, 140, 139, 133, 136, 142, 139, 149, 147, 142, 138, 146, 135, 142, 139, 137, 144, 137, 143, 145, 138, 139, 149, 130, 147, 141, 134, 141, 140, 138, 148, 144, 128, 133, 137, 138, 137, 144, 140, 139, 135, 133, 138, 124, 139, 140, 143, 138, 142, 141, 143, 142, 139, 138, 136, 141, 145, 144, 140, 134, 137, 140, 135, 138, 143, 146, 141, 146, 143, 145, 142, 139, 140, 147, 136, 128, 136, 138, 138, 136, 138, 141, 141, 139, 142, 142, 144, 139, 144, 136, 136, 134, 141, 139, 133, 140, 135, 143, 147, 144, 143, 135, 142, 137, 145, 146, 143, 139, 135, 136, 141, 136, 128, 138, 141, 142, 137, 141, 141, 143, 134, 144, 143, 147, 155, 134, 133, 142, 141, 140, 140, 144, 142, 137, 146, 141, 132, 135, 139, 133, 143, 135, 140, 129, 141, 137, 125, 139, 146, 145, 143, 133, 144, 145, 137, 130, 146, 142, 145, 134, 140, 147, 141, 142, 140, 149, 143, 135, 144, 146, 139, 139, 143, 137, 138, 134, 139, 140, 137, 142, 137, 144, 139, 137, 131, 138, 143, 143, 148, 143, 137, 128, 145, 136, 134, 141, 142, 141, 139, 143, 131, 133, 131, 137, 145, 141, 135, 150, 135, 144, 136, 144, 145, 144, 139, 140, 141, 131, 142, 134, 143, 138, 144, 143, 135, 139, 145, 132, 140, 137, 131, 133, 137, 137, 132, 140, 145, 139, 133, 138, 152, 140, 138, 145, 135, 138, 131, 139, 137, 143, 137, 146, 136, 144, 145, 146, 136, 159, 129, 132, 141, 143, 133, 127, 133, 140, 141, 141, 148, 129, 140, 142, 135, 135, 145, 142, 150, 144, 137, 133, 141, 126, 133, 129, 145, 135, 143, 135, 138, 130, 133, 146, 137, 142, 135, 145, 139, 138, 133, 146, 134, 151, 138, 139, 151, 134, 141, 144, 151, 144, 140, 151, 142, 148, 144, 142, 141, 134, 145, 149, 135, 134, 128, 141, 138, 136, 134, 134, 148, 134, 136, 137, 143, 138, 142, 138, 140, 130, 135, 134, 141, 137, 141, 141, 132, 134, 143, 136, 133, 145, 145, 139, 136, 140, 138, 134, 141, 139, 149, 143, 138, 129, 138, 131, 139, 135, 133, 148, 147, 141, 146, 145, 139, 125, 125, 135, 136, 131, 135, 134, 138, 132, 146, 143, 147, 136, 139, 141, 145, 148, 132, 136, 144, 141, 141, 135, 138, 142, 144, 140, 134, 138, 135, 133, 132, 134, 134, 144, 140, 134, 142, 142, 141, 140, 141, 146, 141, 136, 144, 137, 139, 129, 140, 149, 144, 134, 127, 144, 152, 152, 142, 147, 142, 137, 136, 139, 133, 144, 141, 136, 141, 136, 140, 139, 140, 135, 140, 137, 141, 131, 130, 128, 139, 143, 136, 140, 133, 142, 148, 140, 141, 137, 129, 130, 133, 135, 140, 142, 149, 137, 133, 138, 137, 155, 128, 131, 143, 141, 133, 134, 139, 135, 145, 146, 141, 138, 134, 135, 145, 136, 135, 148, 143, 134, 127, 135, 133, 145, 139, 119, 139, 137, 132, 147, 133, 149, 140, 142, 144, 130, 135, 129, 142, 141, 137, 137, 126, 133, 142, 144, 150, 145, 140, 131, 135, 138, 145, 127, 128, 138, 125, 162, 132, 133, 135, 143, 148, 152, 130, 134, 134, 136, 131, 137, 140, 143, 143, 135, 139, 130, 143, 150, 139, 126, 139, 139, 142, 141, 144, 146, 132, 142, 130, 141, 128, 138, 134, 140, 131, 143, 146, 128, 142, 146, 145, 136, 142, 131, 132, 134, 136, 129, 135, 139, 134, 144, 145, 140, 141, 142, 145, 145, 137, 138, 138, 141, 133, 136, 138, 133, 145, 135, 145, 138, 135, 139, 145, 143, 131, 134, 143, 136, 146, 133, 136, 149, 136, 142, 150, 138, 145, 142, 147, 143, 138, 141, 136, 129, 144, 137, 138, 143, 136, 145, 136, 134, 142, 137, 141, 152, 144, 133, 137, 135, 135, 133, 155, 133, 144, 143, 130, 150, 145, 146, 133, 138, 132, 134, 151, 143, 125, 136, 146, 139, 137, 142, 138, 145, 139, 148, 129, 133, 133, 129, 140, 136, 130, 137, 136, 141, 134, 141, 141, 144, 133, 136, 142, 143, 139, 142, 135, 138, 148, 150, 140, 141, 137, 141, 129, 129, 139, 146, 134, 141, 144, 133, 135, 140, 132, 129, 133, 136, 141, 147, 128, 150, 133, 146, 139, 138, 141, 138, 141, 134, 131, 136, 148, 132, 142, 136, 134, 133, 134, 144, 141, 135, 146, 140, 140, 143, 147, 134, 133, 132, 134, 133, 143, 144, 131, 132, 137, 140, 152, 150, 133, 152, 132, 139, 132, 136, 140, 146, 133, 131, 136, 143, 129, 130, 140, 134, 139, 135, 142, 142, 146, 142, 146, 151, 141, 139, 133, 152, 150, 147, 147, 136, 150, 143, 140, 152, 127, 137, 140, 137, 145, 148, 133, 132, 137, 147, 120, 133, 133, 135, 132, 140, 144, 146, 141, 147, 145, 138, 138, 132, 137, 139, 138, 138, 140, 132, 141, 142, 132, 147, 127, 136, 137, 142, 137, 137, 144, 152, 130, 143, 149, 135, 140, 140, 129, 139, 138, 138, 133, 143, 137, 146, 140, 134, 141, 141, 135, 147, 140, 152, 139, 135, 143, 145, 136, 140, 139, 134, 155, 144, 137, 135, 139, 142, 129, 143, 146, 134, 132, 144, 133, 142, 138, 127, 141, 140, 138, 135, 135, 135, 145, 139, 146, 150, 139, 132, 137, 127, 136, 134, 137, 135, 133, 144, 138, 137, 141, 141, 130, 141, 141, 141, 143, 134, 131, 132, 146, 137, 140, 136, 125, 131, 135, 147, 140, 144, 138, 142, 135, 140, 126, 141, 139, 137, 141, 136, 151, 146, 148, 137, 143, 148, 138, 147, 129, 134, 147, 141, 135, 137, 135, 128, 137, 147, 137, 152, 151, 150, 136, 127, 134, 148, 144, 141, 137, 142, 135, 139, 147, 132, 136, 137, 140, 148, 140, 144, 147, 139, 142, 136, 140, 143, 123, 140, 161, 138, 131, 138, 138, 128, 136, 132, 145, 137, 142, 135, 143, 142, 138, 137, 134, 138, 140, 136, 129, 134, 137, 134, 130, 133, 140, 153, 139, 140, 140, 125, 136, 136, 135, 137, 137, 130, 137, 141, 136, 143, 136, 148, 138, 138, 147, 150, 145, 140, 139, 131, 136, 142, 140, 138, 142, 144, 140, 133, 136, 138, 134, 138, 149, 128, 139, 137, 139, 153, 136, 132, 141, 144, 128, 143, 137, 133, 142, 134, 145, 139, 133, 138, 142, 136, 133, 133, 155, 150, 137, 130, 139, 145, 134, 153, 146, 139, 138, 142, 135, 147, 128, 138, 140, 134, 146, 145, 142, 129, 142, 136, 137, 143, 130, 128, 139, 132, 138, 137, 133, 122, 140, 138, 142, 137, 138, 150, 139, 141, 135, 135, 141, 137, 146, 131, 143, 143, 145, 139, 136, 135, 136, 137, 120, 132, 139, 133, 140, 138, 132, 140, 142, 134, 135, 140, 146, 138, 143, 141, 132, 137, 134, 137, 145, 151, 141, 144, 147, 136, 148, 131, 132, 134, 135, 135, 136, 132, 143, 136, 135, 129, 145, 135, 147, 134, 137, 131, 130, 133, 136, 129, 155, 136, 134, 139, 130, 140, 129, 145, 127, 142, 140, 143, 130, 137, 137, 142, 135, 130, 137, 133, 142, 141, 140, 138, 135, 151, 141, 145, 147, 142, 149, 133, 141, 133, 153, 140, 136, 136, 134, 130, 147, 142, 136, 145, 134, 140, 147, 139, 143, 138, 136, 137, 130, 140, 138, 136, 131, 149, 134, 137, 146, 136, 140, 142, 122, 141, 140, 133, 142, 127, 137, 159, 133, 131, 133, 141, 134, 131, 151, 142, 139, 144, 140, 135, 132, 135, 140, 143, 139, 133, 133, 141, 140, 145, 135, 139, 137, 135, 140, 131, 145, 133, 135, 139, 144, 148, 140, 132, 143, 149, 133, 139, 139, 119, 138, 128, 143, 130, 135, 151, 137, 148, 139, 154, 137, 138, 139, 138, 135, 143, 120, 137, 139, 132, 136, 145, 133, 143, 146, 132, 140, 138, 140, 143, 137, 139, 135, 137, 144, 148, 131, 148, 136, 143, 156, 148, 135, 143, 137, 125, 140, 143, 146, 139, 133, 131, 142, 142, 131, 134, 142, 132, 132, 144, 142, 137, 139, 129, 141, 133, 141, 137, 139, 136, 143, 136, 121, 134, 128, 134, 145, 136, 141, 134, 133, 134, 138, 138, 135, 148, 133, 133, 144, 146, 139, 135, 145, 145, 140, 140, 144, 129, 136, 136, 136, 144, 132, 130, 140, 150, 138, 144, 142, 134, 140, 144, 145, 138, 138, 136, 139, 137, 128, 148, 142, 147, 145, 147, 143, 137, 147, 138, 142, 126, 134, 142, 142, 134, 138, 153, 141, 127, 139, 136, 132, 147, 137, 142, 137, 134, 141, 134, 140, 136, 140, 131, 142, 132, 139, 134, 144, 142, 129, 135, 131, 141, 136, 145, 143, 139, 139, 138, 147, 135, 139, 138, 139, 133, 143, 141, 134, 134, 137, 133, 134, 136, 129, 146, 147, 166, 138, 133, 126, 145, 131, 142, 149, 148, 147, 149, 148, 143, 136, 143, 140, 132, 142, 144, 148, 134, 137, 148, 151, 141, 155, 125, 142, 136, 141, 146, 128, 138, 140, 138, 124, 143, 144, 137, 140, 141, 142, 146, 139, 136, 136, 144, 134, 142, 137, 130, 135, 131, 142, 124, 137, 143, 137, 140, 135, 131, 138, 129, 131, 142, 135, 148, 143, 146, 139, 139, 131, 149, 128, 147, 136, 128, 143, 154, 144, 147, 139, 143, 158, 141, 143, 134, 135, 146, 147, 135, 138, 146, 149, 133, 142, 139, 133, 145, 135, 131, 137, 133, 128, 136, 142, 141, 131, 138, 137, 137, 137, 133, 133, 149, 140, 143, 140, 138, 141, 133, 139, 139, 131, 133, 145, 134, 140, 140, 139, 150, 131, 142, 139, 144, 134, 133, 141, 137, 135, 138, 130, 136, 142, 140, 135, 143, 130, 138, 140, 134, 136, 134, 141, 142, 135, 134, 129, 136, 154, 141, 140, 140, 137, 149, 141, 148, 131, 146, 140, 141, 139, 137, 128, 141, 138, 129, 140, 124, 148, 138, 138, 129, 153, 145, 133, 149, 132, 145, 142, 145, 140, 149, 142, 126, 146, 138, 143, 148, 141, 135, 143, 149, 127, 139, 136, 133, 142, 132, 137, 147, 138, 136, 145, 129, 135, 129, 134, 143, 135, 141, 126, 140, 135, 143, 141, 146, 136, 138, 147, 136, 139, 141, 148, 147, 136, 139, 133, 133, 143, 133, 140, 138, 140, 135, 148, 128, 139, 144, 147, 144, 149, 136, 142, 128, 153, 131, 137, 135, 141, 134, 132, 138, 139, 139, 141, 141, 132, 137, 144, 139, 142, 138, 137, 127, 138, 142, 139, 136, 139, 138, 145, 141, 137, 139, 134, 131, 137, 138, 134, 132, 140, 144, 140, 132, 129, 136, 137, 141, 139, 148, 140, 135, 126, 139, 141, 142, 147, 135, 141, 133, 142, 145, 140, 141, 141, 134, 140, 142, 143, 137, 144, 137, 138, 133, 143, 142, 145, 136, 136, 140, 140, 142, 141, 132, 132, 141, 132, 142, 135, 137, 134, 139, 148, 145, 141, 141, 141, 142, 142, 142, 134, 140, 140, 139, 140, 133, 149, 143, 140, 143, 143, 139, 140, 137, 134, 137, 138, 145, 137, 137, 137, 142, 141, 137, 141, 139, 139, 135, 140, 132, 137, 137, 136, 138, 145, 139, 142, 142, 130, 138, 147, 142, 147, 139, 139, 139, 137, 138, 144, 136, 143, 137, 139, 142, 133, 131, 135, 133, 135, 131, 136, 143, 135, 138, 140, 135, 139, 144, 136, 139, 138, 142, 141, 138, 135, 141, 128, 137, 143, 139, 143, 145, 136, 142, 143, 141, 140, 142, 136, 146, 143, 132, 143, 138, 139, 128, 150, 140, 142, 133, 142, 139, 138, 150, 137, 137, 134, 142, 138, 136, 135, 137, 146, 144, 138, 139, 136, 135, 138, 138, 138, 146, 143, 135, 131, 142, 147, 145, 136, 146, 130, 138, 149, 140, 131, 137, 138, 143, 135, 141, 143, 138, 142, 134, 141, 141, 138, 139, 142, 136, 140, 137, 140, 139, 138, 136, 144, 145, 143, 140, 144, 143, 138, 132, 132, 144, 149, 134, 135, 136, 132, 137, 130, 140, 138, 138, 137, 136, 135, 144, 140, 136, 135, 142, 140, 143, 148, 137, 140, 137, 143, 127, 143, 139, 136, 142, 132, 133, 134, 133, 138, 140, 146, 147, 135, 138, 137, 138, 144, 135, 137, 135, 131, 141, 141, 145, 141, 142, 133, 146, 139, 144, 140, 142, 146, 144, 140, 138, 138, 140, 141, 140, 136, 141, 143, 141, 141, 143, 137, 139, 141, 141, 138, 131, 137, 139, 147, 139, 141, 139, 137, 144, 144, 147, 140, 149, 144, 137, 142, 146, 138, 143, 146, 143, 137, 139, 138, 148, 138, 139, 134, 131, 131, 139, 138, 145, 141, 137, 138, 141, 133, 132, 134, 145, 138, 126, 139, 146, 135, 140, 124, 139, 142, 139, 137, 133, 135, 140, 147, 140, 141, 133, 145, 136, 140, 146, 146, 137, 140, 144, 143, 135, 138, 136, 145, 144, 140, 147, 145, 140, 149, 137, 128, 132, 140, 136, 141, 129, 138, 138, 135, 150, 144, 141, 141, 143, 138, 138, 135, 139, 152, 136, 138, 138, 135, 141, 146, 140, 137, 133, 134, 143, 134, 141, 142, 142, 134, 139, 129, 145, 137, 135, 146, 137, 139, 143, 147, 138, 139, 138, 143, 141, 137, 145, 167, 136, 132, 136, 142, 143, 135, 132, 140, 141, 140, 142, 138, 143, 138, 136, 136, 139, 138, 141, 142, 150, 137, 140, 141, 140, 137, 142, 138, 139, 142, 140, 134, 130, 133, 137, 139, 135, 131, 137, 143, 141, 137, 144, 140, 143, 145, 141, 136, 141, 141, 142, 145, 134, 136, 133, 139, 145, 141, 136, 144, 136, 139, 142, 140, 138, 139, 137, 144, 139, 131, 143, 142, 134, 137, 136, 135, 138, 144, 140, 136, 142, 148, 142, 138, 124, 144, 133, 138, 146, 130, 139, 141, 143, 134, 136, 139, 146, 137, 139, 131, 148, 139, 138, 135, 136, 137, 148, 137, 128, 138, 144, 142, 148, 145, 139, 142, 135, 141, 137, 137, 130, 134, 137, 147, 143, 135, 147, 137, 132, 147, 137, 131, 143, 137, 137, 140, 139, 144, 134, 144, 133, 143, 143, 133, 141, 139, 128, 140, 127, 137, 144, 132, 143, 143, 137, 140, 138, 140, 137, 137, 143, 132, 137, 129, 141, 131, 141, 128, 125, 134, 141, 136, 142, 138, 136, 134, 133, 129, 128, 136, 135, 134, 140, 145, 141, 135, 139, 131, 144, 138, 134, 142, 137, 134, 139, 134, 137, 148, 135, 131, 143, 139, 141, 153, 134, 137, 132, 142, 136, 135, 137, 130, 134, 135, 134, 141, 142, 132, 137, 141, 133, 151, 143, 143, 134, 136, 137, 138, 148, 147, 135, 134, 137, 139, 133, 136, 142, 136, 139, 144, 139, 143, 132, 138, 132, 133, 145, 129, 138, 135, 142, 141, 147, 137, 142, 145, 147, 135, 141, 154, 141, 141, 139, 129, 142, 142, 142, 135, 136, 145, 148, 127, 132, 129, 146, 141, 143, 134, 137, 135, 136, 137, 138, 134, 146, 133, 139, 139, 140, 142, 142, 140, 146, 142, 148, 142, 134, 137, 137, 144, 143, 135, 145, 140, 144, 134, 147, 134, 134, 153, 138, 140, 133, 139, 135, 131, 151, 146, 143, 141, 148, 143, 135, 139, 139, 134, 130, 135, 137, 142, 137, 133, 143, 139, 141, 152, 146, 141, 146, 135, 130, 143, 142, 135, 133, 147, 128, 137, 134, 141, 136, 139, 139, 134, 141, 139, 132, 142, 145, 134, 130, 136, 136, 133, 146, 133, 143, 146, 144, 146, 142, 138, 131, 137, 147, 141, 140, 143, 141, 141, 133, 140, 145, 134, 146, 131, 137, 137, 133, 141, 137, 135, 149, 134, 145, 147, 138, 144, 133, 140, 142, 138, 132, 144, 130, 140, 145, 139, 146, 137, 136, 144, 140, 129, 136, 132, 138, 132, 136, 142, 141, 137, 138, 142, 144, 135, 132, 138, 139, 132, 156, 138, 144, 140, 135, 133, 140, 136, 149, 135, 131, 148, 137, 138, 135, 140, 144, 137, 127, 137, 144, 140, 142, 140, 138, 130, 142, 137, 138, 137, 140, 144, 136, 133, 144, 135, 143, 139, 129, 132, 128, 131, 142, 135, 144, 147, 139, 145, 145, 141, 139, 146, 136, 146, 144, 134, 141, 135, 139, 147, 149, 147, 141, 143, 134, 144, 134, 145, 133, 139, 141, 126, 139, 134, 126, 137, 133, 142, 145, 138, 134, 143, 116, 144, 145, 125, 136, 145, 145, 139, 138, 132, 147, 132, 139, 132, 152, 135, 152, 130, 143, 143, 141, 135, 135, 148, 138, 146, 141, 143, 136, 150, 136, 144, 132, 143, 146, 142, 134, 139, 135, 139, 138, 137, 150, 148, 135, 135, 141, 148, 146, 137, 141, 135, 144, 145, 133, 135, 139, 143, 137, 139, 141, 144, 142, 142, 139, 142, 137, 141, 138, 139, 145, 142, 142, 140, 145, 140, 139, 139, 146, 134, 139, 137, 139, 133, 137, 140, 138, 132, 144, 136, 144, 137, 137, 136, 129, 141, 142, 140, 144, 142, 142, 143, 135, 146, 138, 139, 138, 135, 145, 140, 127, 139, 141, 135, 134, 141, 144, 131, 136, 137, 129, 142, 136, 144, 137, 139, 133, 139, 142, 139, 143, 140, 144, 144, 138, 136, 136, 143, 142, 143, 137, 138, 143, 138, 138, 141, 143, 143, 133, 134, 144, 147, 138, 129, 134, 142, 138, 141, 132, 137, 137, 141, 136, 141, 141, 140, 141, 137, 143, 151, 140, 136, 140, 146, 147, 135, 145, 139, 142, 138, 143, 140, 138, 135, 146, 143, 137, 137, 139, 136, 137, 149, 140, 142, 133, 138, 139, 136, 142, 138, 135, 141, 137, 138, 144, 141, 141, 141, 137, 129, 144, 134, 142, 145, 141, 138, 144, 149, 134, 139, 129, 143, 139, 139, 139, 139, 139, 145, 135, 133, 139, 139, 140, 128, 135, 135, 136, 142, 147, 142, 128, 134, 133, 139, 137, 146, 140, 134, 146, 136, 144, 145, 134, 132, 147, 134, 134, 147, 143, 143, 138, 139, 142, 129, 138, 142, 140, 139, 136, 135, 142, 144, 148, 141, 145, 132, 129, 153, 142, 138, 143, 137, 140, 136, 135, 132, 142, 135, 138, 141, 136, 133, 139, 132, 137, 139, 143, 144, 143, 136, 140, 139, 131, 147, 141, 138, 143, 139, 145, 138, 144, 136, 139, 143, 137, 134, 148, 139, 138, 134, 141, 140, 140, 146, 136, 144, 136, 139, 137, 139, 140, 146, 144, 144, 144, 137, 144, 134, 136, 138, 145, 144, 146, 141, 139, 140, 137, 134, 140, 139, 142, 141, 137, 136, 144, 141, 140, 139, 140, 133, 129, 148, 139, 139, 143, 133, 143, 141, 142, 138, 137, 141, 138, 136, 146, 137, 135, 148, 141, 139, 141, 142, 144, 148, 135, 135, 140, 136, 153, 144, 146, 133, 141, 139, 136, 142, 134, 140, 140, 140, 143, 134, 135, 143, 140, 137, 132, 135, 141, 142, 146, 141, 141, 141, 134, 136, 143, 135, 137, 144, 138, 143, 143, 134, 140, 135, 134, 141, 136, 146, 135, 140, 142, 136, 137, 140, 137, 137, 137, 138, 135, 145, 137, 136, 138, 146, 138, 147, 144, 146, 141, 139, 144, 135, 143, 140, 136, 136, 137, 136, 138, 131, 140, 147, 139, 148, 137, 139, 143, 141, 139, 145, 144, 140, 142, 144, 139, 139, 138, 136, 138, 137, 137, 139, 141, 141, 136, 145, 134, 140, 134, 132, 144, 138, 136, 139, 140, 139, 142, 136, 141, 143, 140, 138, 138, 138, 141, 141, 143, 139, 141, 129, 134, 136, 141, 129, 141, 138, 143, 134, 129, 134, 133, 140, 136, 137, 144, 138, 136, 138, 134, 138, 138, 139, 148, 136, 138, 134, 140, 133, 138, 137, 135, 139, 142, 142, 139, 142, 141, 131, 140, 142, 141, 134, 141, 138, 147, 135, 139, 143, 144, 138, 136, 133, 136, 142, 139, 141, 139, 136, 135, 144, 136, 142, 137, 137, 139, 131, 135, 140, 136, 140, 139, 133, 142, 143, 135, 143, 132, 135, 141, 131, 138, 139, 140, 154, 136, 139, 130, 138, 135, 131, 134, 137, 144, 137, 138, 147, 136, 138, 140, 131, 140, 145, 135, 134, 144, 145, 136, 141, 139, 139, 142, 139, 133, 136, 135, 138, 133, 143, 147, 133, 132, 140, 134, 134, 145, 138, 139, 135, 142, 142, 139, 133, 138, 143, 142, 144, 155, 139, 140, 137, 136, 133, 142, 138, 127, 146, 144, 142, 142, 137, 132, 141, 136, 142, 142, 147, 150, 135, 135, 139, 137, 133, 141, 138, 143, 141, 134, 136, 153, 137, 132, 142, 137, 146, 135, 142, 141, 143, 139, 140, 125, 148, 137, 140, 137, 143, 148, 141, 135, 147, 134, 134, 135, 143, 137, 142, 137, 137, 152, 137, 141, 139, 135, 137, 137, 141, 139, 142, 138, 134, 137, 138, 143, 137, 137, 136, 139, 135, 139, 140, 140, 140, 144, 137, 138, 140, 141, 123, 142, 140, 137, 143, 141, 136, 138, 141, 135, 138, 144, 145, 150, 139, 137, 143, 147, 144, 132, 137, 135, 133, 140, 132, 137, 144, 132, 135, 149, 134, 132, 142, 137, 141, 141, 137, 140, 136, 136, 135, 136, 134, 141, 141, 138, 138, 134, 135, 135, 136, 141, 128, 136, 141, 136, 141, 143, 136, 139, 138, 138, 139, 133, 138, 141, 134, 141, 138, 141, 140, 135, 147, 139, 148, 138, 135, 138, 144, 133, 148, 143, 149, 138, 138, 133, 141, 140, 133, 136, 146, 139, 138, 139, 139, 133, 139, 135, 135, 138, 154, 133, 134, 137, 137, 142, 141, 139, 134, 138, 135, 133, 130, 143, 129, 135, 134, 142, 150, 147, 149, 137, 139, 134, 144, 138, 141, 136, 140, 142, 144, 153, 136, 135, 130, 137, 145, 139, 127, 141, 139, 135, 139, 141, 133, 135, 148, 146, 142, 138, 141, 131, 147, 146, 133, 139, 137, 142, 142, 134, 141, 143, 142, 140, 137, 138, 135, 144, 135, 137, 136, 133, 136, 141, 136, 138, 139, 140, 135, 139, 139, 135, 133, 136, 140, 133, 138, 135, 143, 138, 130, 140, 138, 135, 133, 137, 141, 133, 133, 142, 133, 149, 135, 131, 139, 137, 137, 145, 134, 143, 143, 137, 138, 141, 138, 145, 141, 139, 135, 134, 143, 134, 140, 139, 141, 142, 142, 149, 139, 140, 139, 143, 137, 142, 142, 144, 131, 139, 144, 142, 137, 136, 138, 146, 139, 137, 136, 139, 137, 134, 141, 139, 142, 135, 143, 139, 140, 143, 141, 140, 133, 138, 136, 136, 138, 141, 137, 147, 133, 133, 134, 138, 142, 136, 138, 137, 134, 144, 131, 129, 140, 146, 141, 133, 131, 137, 143, 136, 136, 138, 142, 129, 136, 139, 140, 141, 137, 133, 136, 135, 135, 146, 137, 131, 133, 136, 137, 137, 133, 138, 137, 135, 140, 143, 131, 142, 137, 135, 148, 137, 146, 132, 133, 138, 135, 136, 141, 130, 130, 137, 141, 130, 153, 137, 146, 140, 136, 130, 142, 136, 131, 126, 141, 137, 139, 168, 139, 134, 145, 149, 148, 147, 148, 141, 145, 154, 132, 139, 142, 139, 134, 138, 140, 139, 136, 131, 142, 134, 134, 130, 138, 130, 137, 138, 150, 149, 131, 144, 144, 139, 134, 146, 138, 130, 146, 128, 152, 141, 133, 140, 136, 140, 137, 131, 140, 146, 138, 139, 139, 139, 129, 135, 157, 143, 141, 141, 137, 140, 135, 139, 130, 139, 136, 138, 138, 147, 131, 141, 143, 130, 142, 142, 131, 132, 144, 138, 137, 143, 140, 142, 144, 134, 139, 133, 139, 131, 139, 131, 135, 133, 150, 138, 153, 142, 135, 149, 138, 128, 136, 137, 147, 136, 134, 135, 136, 131, 137, 146, 143, 139, 133, 145, 148, 124, 135, 124, 129, 135, 138, 142, 133, 135, 139, 144, 137, 145, 141, 156, 143, 141, 144, 141, 142, 137, 138, 135, 142, 131, 137, 133, 136, 137, 134, 143, 139, 136, 139, 129, 138, 135, 143, 139, 148, 133, 129, 132, 143, 136, 141, 138, 138, 136, 132, 141, 148, 140, 140, 123, 130, 138, 126, 139, 134, 148, 136, 129, 139, 147, 148, 136, 139, 135, 141, 140, 142, 138, 142, 137, 133, 135, 139, 144, 137, 151, 129, 134, 134, 142, 141, 145, 137, 137, 139, 133, 143, 140, 133, 127, 133, 143, 131, 124, 139, 129, 140, 136, 113, 138, 138, 142, 129, 143, 165, 140, 140, 138, 140, 144, 140, 142, 143, 139, 133, 133, 141, 136, 131, 144, 140, 134, 144, 133, 141, 147, 145, 129, 132, 132, 143, 139, 130, 141, 132, 130, 149, 139, 137, 139, 136, 146, 134, 137, 136, 142, 133, 137, 134, 137, 134, 144, 143, 138, 139, 121, 146, 132, 146, 138, 134, 129, 139, 131, 143, 144, 137, 155, 139, 134, 147, 136, 143, 142, 139, 140, 136, 132, 137, 146, 142, 142, 140, 138, 139, 141, 144, 145, 145, 138, 146, 139, 138, 136, 148, 134, 158, 144, 136, 137, 144, 129, 131, 142, 137, 135, 135, 135, 138, 130, 136, 133, 143, 137, 133, 135, 135, 136, 133, 145, 143, 142, 139, 144, 136, 139, 137, 136, 143, 139, 140, 146, 134, 144, 176, 144, 131, 141, 147, 144, 144, 141, 136, 139, 143, 134, 138, 132, 137, 142, 136, 141, 150, 128, 137, 140, 125, 146, 152, 136, 144, 145, 139, 141, 132, 147, 137, 133, 140, 132, 124, 136, 141, 141, 137, 140, 147, 134, 136, 136, 128, 140, 137, 136, 140, 136, 132, 137, 139, 141, 147, 134, 139, 140, 137, 144, 136, 143, 157, 141, 135, 143, 134, 142, 132, 141, 140, 137, 145, 140, 139, 133, 130, 151, 137, 142, 142, 144, 141, 137, 133, 134, 137, 130, 133, 145, 141, 149, 140, 127, 139, 137, 136, 142, 143, 142, 149, 127, 146, 133, 138, 136, 143, 130, 138, 140, 138, 150, 140, 135, 147, 140, 139, 141, 141, 128, 141, 146, 132, 133, 132, 132, 146, 142, 139, 132, 143, 139, 143, 136, 127, 144, 145, 140, 140, 138, 137, 141, 138, 136, 143, 145, 142, 134, 149, 133, 145, 146, 140, 134, 142, 130, 133, 139, 148, 140, 140, 132, 138, 128, 138, 138, 134, 138, 137, 140, 158, 139, 136, 128, 147, 152, 142, 135, 136, 135, 133, 156, 129, 136, 137, 125, 135, 135, 129, 139, 145, 143, 144, 136, 134, 127, 137, 134, 135, 138, 142, 131, 144, 143, 141, 136, 138, 141, 146, 139, 144, 136, 153, 132, 146, 125, 134, 145, 133, 129, 137, 145, 148, 140, 132, 141, 140, 141, 144, 139, 129, 133, 134, 137, 147, 140, 144, 144, 137, 141, 140, 134, 139, 147, 136, 136, 140, 136, 133, 148, 142, 143, 138, 137, 127, 141, 129, 118, 139, 134, 144, 136, 142, 137, 136, 129, 149, 133, 130, 139, 144, 140, 139, 141, 139, 132, 142, 148, 142, 139, 136, 144, 129, 144, 137, 133, 132, 140, 130, 150, 145, 134, 145, 140, 150, 131, 138, 130, 135, 133, 137, 137, 147, 139, 141, 149, 135, 141, 149, 132, 136, 144, 129, 141, 146, 135, 144, 138, 147, 143, 143, 140, 152, 141, 131, 133, 138, 134, 141, 147, 132, 135, 142, 143, 135, 140, 144, 131, 147, 130, 140, 145, 147, 141, 136, 137, 144, 140, 144, 139, 133, 142, 124, 144, 134, 137, 137, 140, 143, 136, 151, 137, 132, 139, 134, 132, 129, 132, 145, 132, 131, 132, 142, 139, 137, 157, 141, 139, 145, 138, 142, 146, 141, 134, 143, 130, 134, 131, 146, 135, 141, 133, 141, 140, 142, 139, 141, 135, 133, 130, 141, 142, 128, 136, 137, 140, 140, 136, 137, 144, 156, 142, 146, 139, 136, 140, 137, 143, 133, 142, 133, 137, 142, 139, 134, 139, 141, 127, 145, 143, 143, 141, 130, 140, 129, 123, 140, 138, 142, 136, 142, 125, 142, 133, 139, 137, 134, 136, 131, 136, 133, 133, 136, 134, 153, 133, 139, 137, 140, 144, 137, 141, 146, 145, 140, 140, 131, 145, 145, 146, 128, 145, 140, 143, 130, 139, 140, 143, 133, 130, 136, 145, 130, 131, 148, 133, 132, 139, 139, 146, 140, 125, 137, 149, 137, 150, 150, 117, 130, 150, 134, 137, 126, 139, 145, 145, 135, 153, 140, 140, 132, 142, 136, 149, 135, 136, 132, 142, 142, 130, 150, 143, 120, 129, 141, 131, 144, 142, 149, 134, 140, 145, 137, 133, 135, 140, 140, 138, 138, 136, 129, 140, 146, 141, 144, 130, 134, 128, 141, 141, 138, 158, 140, 152, 134, 140, 146, 144, 142, 133, 144, 149, 145, 144, 133, 127, 134, 136, 138, 139, 143, 133, 140, 142, 131, 145, 141, 146, 141, 138, 140, 132, 135, 139, 128, 138, 140, 128, 132, 136, 152, 145, 136, 149, 137, 136, 134, 134, 143, 143, 145, 141, 140, 150, 136, 135, 140, 150, 134, 141, 141, 145, 143, 143, 134, 146, 129, 148, 146, 133, 146, 131, 133, 135, 136, 148, 136, 136, 148, 144, 143, 150, 141, 138, 127, 135, 138, 140, 134, 142, 138, 139, 139, 137, 133, 140, 140, 142, 132, 136, 141, 143, 142, 128, 136, 128, 146, 144, 138, 137, 151, 148, 145, 137, 128, 132, 141, 137, 131, 145, 139, 136, 142, 132, 134, 124, 135, 152, 142, 139, 139, 143, 145, 140, 138, 138, 144, 139, 145, 143, 140, 135, 134, 132, 135, 131, 150, 140, 137, 136, 135, 131, 131, 127, 138, 155, 147, 140, 141, 142, 135, 145, 140, 142, 139, 144, 143, 133, 128, 136, 144, 139, 153, 141, 134, 143, 141, 129, 136, 131, 132, 138, 148, 145, 144, 129, 133, 129, 137, 135, 135, 128, 139, 140, 135, 138, 145, 134, 133, 138, 132, 129, 140, 137, 137, 140, 127, 134, 142, 136, 131, 141, 137, 139, 135, 144, 138, 135, 142, 147, 139, 126, 138, 134, 138, 130, 135, 141, 142, 130, 148, 140, 151, 147, 136, 135, 130, 145, 141, 136, 126, 144, 156, 136, 143, 140, 133, 132, 139, 153, 142, 127, 140, 140, 136, 139, 139, 160, 144, 139, 140, 148, 136, 136, 136, 132, 145, 136, 136, 139, 129, 133, 141, 142, 150, 146, 136, 135, 135, 144, 130, 139, 133, 135, 137, 152, 138, 139, 132, 133, 144, 137, 133, 135, 144, 153, 138, 129, 144, 127, 150, 142, 137, 126, 134, 136, 149, 134, 137, 153, 143, 137, 143, 121, 145, 137, 131, 141, 140, 137, 137, 144, 161, 134, 143, 132, 145, 134, 139, 146, 153, 135, 136, 147, 138, 134, 138, 136, 134, 131, 128, 135, 134, 140, 134, 133, 138, 142, 142, 149, 137, 133, 152, 136, 143, 143, 138, 146, 128, 144, 142, 143, 128, 132, 139, 132, 130, 138, 139, 134, 143, 144, 135, 139, 146, 150, 148, 142, 138, 146, 140, 143, 134, 135, 145, 143, 132, 141, 129, 136, 140, 142, 153, 121, 155, 133, 133, 135, 145, 144, 148, 138, 132, 135, 140, 141, 138, 136, 147, 146, 136, 148, 139, 142, 129, 148, 129, 131, 143, 142, 136, 137, 143, 139, 128, 141, 132, 146, 134, 133, 135, 134, 151, 135, 134, 133, 140, 141, 140, 147, 141, 130, 141, 129, 140, 144, 140, 138, 133, 139, 132, 141, 132, 137, 145, 137, 133, 139, 145, 141, 141, 152, 136, 133, 129, 145, 151, 144, 139, 152, 142, 145, 141, 140, 137, 132, 142, 158, 138, 140, 146, 147, 142, 134, 134, 142, 130, 132, 133, 134, 130, 143, 142, 141, 150, 135, 126, 139, 141, 131, 125, 150, 129, 131, 136, 143, 135, 136, 138, 136, 131, 137, 139, 147, 142, 146, 143, 142, 141, 141, 131, 131, 129, 141, 130, 134, 141, 142, 142, 134, 143, 127, 137, 132, 132, 141, 131, 156, 136, 141, 144, 141, 137, 134, 150, 131, 146, 138, 131, 131, 129, 135, 157, 151, 149, 143, 146, 144, 137, 149, 142, 144, 136, 139, 130, 144, 140, 126, 146, 141, 146, 137, 140, 147, 131, 139, 146, 141, 128, 141, 129, 139, 138, 131, 138, 144, 137, 145, 127, 142, 135, 146, 133, 131, 141, 143, 142, 134, 141, 144, 137, 147, 138, 153, 128, 143, 129, 136, 153, 128, 132, 128, 143, 140, 131, 139, 137, 144, 134, 139, 134, 141, 135, 132, 142, 148, 138, 138, 144, 141, 135, 144, 140, 143, 145, 141, 140, 141, 134, 137, 142, 128, 142, 140, 136, 135, 135, 145, 137, 133, 132, 137, 135, 143, 144, 141, 136, 137, 139, 141, 135, 143, 144, 138, 123, 130, 136, 142, 139, 132, 139, 141, 132, 134, 138, 135, 136, 143, 138, 131, 134, 139, 139, 139, 135, 156, 141, 144, 130, 133, 130, 136, 154, 137, 144, 143, 136, 146, 135, 136, 141, 125, 129, 137, 139, 137, 137, 136, 144, 142, 137, 146, 133, 135, 142, 144, 135, 137, 145, 132, 142, 137, 138, 142, 141, 148, 139, 138, 148, 142, 136, 139, 136, 137, 146, 145, 132, 140, 143, 134, 144, 144, 139, 139, 142, 139, 128, 141, 137, 134, 143, 136, 138, 141, 134, 150, 142, 144, 143, 142, 141, 139, 138, 146, 140, 136, 145, 127, 134, 142, 138, 136, 145, 135, 150, 134, 130, 143, 144, 148, 141, 141, 128, 139, 135, 131, 140, 137, 140, 144, 137, 141, 131, 145, 135, 142, 139, 146, 139, 139, 138, 141, 141, 138, 140, 138, 136, 142, 136, 133, 134, 140, 129, 143, 141, 137, 144, 137, 138, 128, 136, 144, 145, 146, 140, 132, 125, 140, 136, 144, 136, 140, 131, 136, 136, 149, 138, 146, 134, 140, 139, 140, 135, 134, 134, 137, 147, 136, 141, 138, 151, 137, 146, 133, 135, 134, 137, 141, 151, 135, 140, 135, 142, 136, 151, 135, 138, 140, 148, 130, 131, 136, 139, 130, 135, 150, 146, 138, 140, 142, 141, 138, 135, 142, 140, 139, 145, 137, 151, 141, 139, 141, 131, 137, 136, 136, 135, 146, 134, 140, 138, 138, 142, 144, 138, 135, 130, 140, 133, 126, 136, 143, 139, 134, 143, 134, 147, 135, 140, 136, 136, 128, 140, 144, 143, 142, 140, 134, 132, 128, 142, 148, 142, 144, 146, 140, 146, 138, 145, 138, 149, 141, 137, 134, 145, 141, 144, 121, 129, 136, 142, 143, 140, 145, 132, 142, 139, 140, 139, 139, 138, 138, 132, 132, 132, 133, 139, 136, 132, 140, 145, 130, 147, 144, 130, 142, 137, 136, 138, 137, 134, 137, 139, 142, 135, 138, 137, 142, 130, 136, 136, 137, 127, 144, 141, 141, 129, 143, 137, 135, 141, 134, 141, 137, 132, 140, 140, 140, 132, 144, 137, 147, 129, 137, 136, 139, 144, 135, 150, 129, 150, 129, 139, 142, 139, 146, 141, 138, 139, 141, 135, 138, 142, 139, 140, 135, 146, 136, 131, 146, 131, 148, 132, 139, 145, 145, 135, 138, 136, 151, 145, 143, 140, 144, 131, 137, 130, 129, 136, 135, 142, 139, 138, 145, 139, 143, 135, 133, 144, 149, 137, 133, 128, 138, 137, 139, 142, 138, 132, 139, 144, 148, 133, 143, 138, 137, 146, 140, 140, 132, 138, 134, 133, 149, 147, 138, 134, 136, 137, 138, 135, 146, 142, 140, 137, 135, 140, 146, 136, 148, 133, 134, 138, 137, 138, 136, 135, 134, 147, 139, 139, 152, 132, 138, 124, 133, 142, 142, 129, 138, 144, 151, 152, 142, 142, 137, 141, 137, 131, 131, 135, 139, 141, 143, 142, 138, 146, 129, 147, 137, 135, 138, 132, 130, 141, 143, 132, 142, 138, 144, 135, 129, 146, 145, 147, 146, 141, 149, 145, 142, 136, 147, 134, 140, 145, 135, 148, 129, 143, 130, 141, 131, 130, 142, 133, 140, 135, 134, 146, 142, 139, 127, 151, 142, 143, 137, 140, 139, 144, 139, 132, 140, 144, 133, 148, 130, 136, 141, 134, 139, 139, 138, 144, 131, 131, 135, 142, 136, 138, 143, 141, 140, 137, 141, 135, 149, 146, 137, 141, 137, 141, 145, 139, 131, 140, 140, 143, 144, 131, 141, 137, 145, 140, 138, 149, 147, 133, 145, 154, 142, 144, 136, 147, 130, 131, 135, 135, 148, 137, 136, 138, 129, 141, 148, 142, 141, 148, 146, 136, 138, 129, 136, 136, 139, 144, 147, 142, 134, 135, 145, 136, 146, 136, 139, 145, 138, 146, 140, 140, 139, 143, 143, 139, 132, 141, 141, 129, 141, 148, 137, 142, 141, 136, 140, 141, 139, 134, 135, 144, 138, 136, 146, 139, 138, 143, 136, 132, 129, 145, 132, 131, 138, 134, 139, 143, 139, 142, 149, 146, 135, 141, 130, 142, 137, 144, 137, 136, 142, 129, 146, 138, 150, 137, 131, 133, 130, 148, 137, 129, 144, 136, 134, 147, 136, 136, 136, 149, 135, 144, 136, 136, 141, 138, 144, 140, 140, 131, 143, 140, 143, 137, 138, 146, 131, 125, 144, 138, 134, 138, 136, 147, 144, 135, 138, 149, 137, 142, 131, 143, 144, 136, 136, 144, 138, 135, 143, 138, 141, 137, 139, 128, 135, 136, 132, 129, 140, 145, 135, 138, 142, 134, 144, 138, 143, 130, 138, 131, 138, 141, 133, 143, 136, 131, 146, 134, 125, 137, 148, 138, 147, 137, 133, 144, 142, 139, 126, 136, 138, 144, 143, 142, 134, 133, 137, 145, 131, 124, 145, 144, 134, 153, 139, 142, 141, 138, 138, 152, 139, 142, 137, 143, 143, 150, 140, 149, 141, 146, 147, 141, 145, 142, 130, 146, 139, 138, 145, 133, 142, 140, 142, 134, 141, 138, 142, 137, 142, 135, 151, 135, 137, 146, 151, 135, 136, 135, 138, 140, 138, 140, 138, 133, 140, 134, 141, 132, 141, 147, 132, 142, 137, 145, 131, 129, 136, 142, 138, 132, 130, 134, 134, 147, 142, 146, 135, 139, 150, 141, 137, 134, 128, 136, 142, 137, 145, 140, 137, 148, 139, 143, 144, 135, 137, 141, 133, 137, 135, 149, 144, 142, 132, 136, 139, 135, 134, 135, 139, 147, 130, 132, 138, 137, 137, 137, 142, 148, 133, 143, 146, 138, 130, 140, 137, 139, 139, 129, 131, 137, 141, 140, 147, 142, 143, 150, 140, 148, 141, 139, 139, 140, 140, 144, 138, 150, 145, 142, 144, 138, 137, 133, 136, 147, 144, 136, 137, 129, 149, 145, 150, 139, 133, 130, 142, 139, 130, 139, 139, 139, 133, 141, 140, 141, 133, 141, 139, 127, 142, 132, 136, 145, 137, 136, 136, 140, 150, 133, 137, 139, 146, 133, 146, 130, 137, 139, 139, 134, 140, 140, 137, 131, 143, 144, 139, 138, 137, 128, 137, 145, 128, 147, 141, 145, 128, 144, 141, 135, 140, 145, 147, 149, 141, 136, 130, 140, 133, 146, 134, 139, 143, 141, 148, 140, 141, 138, 150, 149, 139, 142, 133, 132, 129, 132, 133, 135, 143, 130, 139, 141, 145, 144, 133, 140, 140, 142, 141, 143, 136, 134, 135, 139, 137, 142, 137, 144, 140, 138, 145, 145, 142, 144, 136, 135, 131, 139, 133, 133, 145, 137, 137, 140, 136, 141, 139, 140, 132, 139, 132, 133, 144, 140, 138, 144, 140, 136, 143, 136, 135, 130, 145, 140, 132, 132, 144, 142, 138, 146, 126, 137, 143, 141, 134, 144, 137, 143, 130, 141, 143, 145, 138, 143, 144, 146, 134, 139, 139, 143, 140, 125, 131, 130, 138, 142, 146, 127, 140, 140, 147, 137, 148, 140, 140, 150, 138, 149, 140, 138, 132, 145, 137, 139, 141, 138, 144, 147, 136, 138, 135, 139, 140, 144, 145, 140, 131, 138, 134, 138, 142, 129, 140, 140, 145, 139, 142, 139, 128, 136, 145, 129, 139, 143, 135, 132, 144, 137, 143, 141, 136, 148, 131, 136, 134, 145, 139, 140, 140, 133, 133, 135, 128, 139, 137, 137, 147, 130, 138, 132, 139, 137, 142, 147, 144, 142, 136, 138, 136, 147, 130, 130, 133, 135, 136, 139, 129, 142, 135, 138, 142, 144, 137, 137, 132, 136, 135, 139, 126, 145, 140, 145, 147, 144, 132, 143, 146, 136, 138, 137, 142, 141, 147, 143, 133, 134, 148, 140, 138, 138, 143, 144, 134, 144, 140, 135, 135, 145, 146, 135, 137, 144, 138, 138, 148, 139, 144, 135, 146, 137, 147, 138, 134, 140, 138, 148, 147, 143, 138, 145, 142, 131, 140, 149, 146, 138, 122, 146, 132, 125, 133, 133, 135, 143, 137, 143, 154, 134, 140, 140, 134, 142, 148, 129, 134, 138, 144, 139, 143, 141, 131, 143, 132, 132, 144, 145, 141, 144, 143, 135, 139, 133, 132, 143, 142, 146, 142, 139, 141, 154, 137, 148, 141, 143, 137, 135, 136, 141, 135, 138, 132, 144, 143, 140, 144, 138, 134, 138, 147, 137, 140, 137, 138, 142, 139, 136, 140, 141, 142, 140, 148, 139, 137, 132, 139, 139, 134, 130, 135, 142, 140, 130, 148, 144, 136, 142, 131, 155, 141, 132, 132, 138, 134, 126, 139, 149, 143, 137, 145, 143, 136, 136, 142, 135, 134, 134, 138, 137, 142, 130, 142, 138, 139, 125, 127, 143, 148, 125, 141, 144, 141, 142, 141, 138, 141, 143, 146, 143, 145, 134, 144, 142, 141, 141, 147, 144, 144, 140, 143, 124, 136, 134, 147, 148, 144, 135, 146, 140, 135, 144, 146, 135, 137, 135, 132, 136, 135, 130, 140, 135, 137, 143, 142, 135, 143, 142, 141, 136, 153, 141, 142, 137, 132, 138, 136, 141, 131, 146, 140, 138, 150, 144, 144, 140, 146, 138, 142, 145, 132, 142, 153, 139, 135, 138, 148, 138, 140, 139, 149, 144, 140, 135, 136, 152, 137, 142, 130, 136, 133, 146, 140, 130, 140, 152, 141, 128, 134, 141, 147, 143, 141, 137, 147, 140, 138, 135, 142, 141, 144, 137, 135, 132, 135, 136, 146, 141, 139, 139, 148, 137, 137, 130, 139, 137, 131, 136, 130, 140, 136, 145, 139, 135, 141, 144, 133, 144, 136, 139, 134, 135, 139, 144, 149, 140, 140, 128, 141, 143, 139, 141, 136, 139, 136, 139, 133, 138, 145, 137, 150, 148, 139, 146, 132, 142, 144, 137, 141, 140, 141, 130, 141, 139, 136, 134, 145, 140, 137, 151, 129, 145, 138, 134, 144, 134, 138, 140, 127, 140, 134, 128, 135, 142, 148, 147, 136, 138, 137, 138, 142, 141, 140, 141, 140, 137, 147, 131, 142, 144, 140, 141, 139, 139, 138, 144, 147, 132, 139, 143, 136, 141, 133, 144, 137, 140, 143, 129, 142, 139, 148, 136, 148, 146, 138, 136, 135, 136, 143, 138, 138, 135, 130, 133, 135, 133, 135, 152, 137, 133, 140, 144, 141, 137, 144, 134, 138, 135, 137, 128, 138, 128, 134, 148, 155, 148, 140, 128, 134, 144, 135, 136, 138, 138, 147, 143, 151, 144, 128, 145, 128, 140, 134, 139, 142, 133, 137, 142, 134, 129, 133, 133, 140, 134, 135, 136, 136, 127, 136, 131, 131, 148, 141, 138, 141, 134, 134, 145, 139, 133, 137, 135, 143, 147, 135, 141, 147, 136, 144, 129, 146, 141, 136, 142, 130, 136, 134, 136, 142, 142, 134, 141, 131, 143, 152, 136, 135, 135, 144, 140, 136, 131, 138, 133, 144, 135, 136, 139, 141, 141, 141, 139, 157, 139, 142, 138, 138, 139, 133, 134, 143, 124, 134, 132, 142, 135, 144, 141, 129, 139, 138, 129, 143, 138, 136, 141, 140, 136, 141, 125, 136, 144, 149, 134, 146, 139, 145, 134, 152, 145, 139, 144, 142, 137, 137, 135, 130, 139, 147, 143, 136, 128, 136, 146, 145, 135, 137, 136, 134, 131, 145, 142, 138, 144, 137, 138, 132, 143, 148, 137, 134, 136, 142, 134, 132, 142, 132, 129, 144, 143, 136, 136, 133, 136, 134, 131, 131, 137, 135, 139, 150, 137, 143, 135, 145, 137, 142, 131, 143, 135, 143, 148, 141, 134, 136, 142, 128, 127, 135, 147, 138, 130, 145, 136, 133, 138, 132, 137, 136, 148, 135, 134, 145, 129, 154, 132, 125, 142, 135, 139, 138, 144, 135, 144, 139, 141, 139, 144, 140, 131, 140, 139, 137, 146, 136, 139, 143, 139, 131, 139, 145, 126, 144, 146, 133, 136, 136, 141, 136, 136, 139, 134, 140, 154, 136, 131, 135, 136, 136, 139, 132, 136, 144, 145, 138, 142, 144, 131, 148, 140, 128, 145, 134, 143, 138, 145, 134, 143, 146, 151, 134, 143, 136, 137, 137, 140, 138, 138, 139, 143, 144, 140, 138, 145, 134, 132, 138, 145, 140, 145, 135, 139, 143, 138, 136, 139, 138, 149, 138, 135, 137, 140, 148, 149, 138, 139, 128, 140, 138, 133, 143, 142, 140, 136, 143, 148, 143, 140, 141, 136, 152, 134, 138, 140, 142, 137, 135, 140, 126, 138, 144, 146, 132, 139, 137, 133, 141, 134, 142, 140, 137, 145, 137, 137, 137, 130, 142, 143, 143, 148, 143, 135, 136, 144, 145, 134, 142, 145, 144, 140, 143, 145, 141, 137, 152, 133, 141, 129, 138, 143, 144, 139, 151, 134, 133, 139, 135, 140, 139, 143, 131, 143, 157, 134, 143, 130, 144, 141, 140, 143, 148, 138, 142, 144, 127, 139, 135, 138, 141, 150, 143, 141, 134, 139, 141, 133, 137, 134, 135, 139, 137, 143, 127, 133, 140, 146, 134, 152, 133, 136, 134, 117, 135, 135, 140, 145, 131, 141, 132, 140, 142, 143, 127, 142, 138, 141, 136, 141, 140, 133, 143, 153, 130, 146, 137, 132, 133, 143, 135, 142, 133, 136, 131, 140, 127, 145, 140, 134, 134, 143, 132, 132, 140, 139, 134, 139, 145, 134, 139, 139, 146, 142, 146, 134, 139, 143, 126, 138, 141, 141, 144, 142, 140, 143, 147, 136, 139, 142, 141, 137, 147, 131, 156, 133, 147, 148, 132, 136, 147, 145, 138, 136, 144, 138, 132, 138, 143, 145, 145, 153, 133, 138, 129, 140, 138, 140, 144, 138, 135, 135, 129, 136, 139, 140, 135, 138, 140, 129, 137, 146, 137, 145, 142, 150, 142, 149, 132, 146, 144, 137, 143, 132, 137, 144, 138, 131, 136, 138, 150, 128, 142, 143, 139, 139, 145, 140, 138, 140, 136, 148, 142, 129, 140, 134, 128, 136, 141, 142, 125, 129, 145, 139, 151, 142, 141, 141, 136, 139, 145, 134, 150, 142, 139, 134, 154, 133, 134, 149, 143, 152, 132, 139, 134, 140, 131, 144, 142, 145, 132, 132, 138, 148, 141, 143, 145, 149, 158, 135, 139, 143, 133, 138, 144, 148, 139, 148, 140, 132, 140, 144, 135, 135, 141, 137, 130, 141, 122, 144, 140, 134, 139, 142, 141, 141, 139, 143, 133, 134, 143, 142, 137, 144, 138, 135, 139, 134, 144, 134, 145, 145, 146, 144, 131, 137, 144, 142, 144, 133, 139, 141, 131, 145, 138, 138, 144, 138, 141, 144, 145, 135, 140, 131, 133, 155, 132, 152, 141, 152, 146, 141, 135, 144, 133, 148, 148, 138, 150, 138, 137, 149, 129, 134, 133, 142, 142, 138, 123, 134, 144, 143, 136, 134, 145, 141, 149, 138, 125, 139, 147, 138, 138, 137, 150, 144, 143, 137, 144, 141, 135, 135, 146, 135, 146, 144, 130, 139, 144, 134, 133, 150, 143, 139, 131, 142, 132, 141, 131, 129, 143, 128, 150, 136, 135, 135, 135, 133, 146, 134, 133, 139, 130, 127, 146, 131, 139, 155, 134, 141, 131, 144, 138, 131, 130, 133, 144, 130, 139, 141, 145, 134, 146, 129, 140, 135, 137, 141, 143, 141, 140, 137, 133, 129, 138, 142, 142, 135, 127, 144, 139, 139, 130, 136, 137, 143, 135, 139, 134, 139, 133, 144, 139, 145, 140, 123, 143, 145, 135, 130, 133, 144, 134, 131, 147, 123, 140, 137, 129, 144, 148, 137, 132, 144, 144, 142, 133, 132, 134, 140, 141, 138, 138, 142, 141, 139, 149, 139, 135, 130, 143, 141, 136, 133, 126, 142, 153, 140, 141, 131, 137, 135, 145, 131, 142, 145, 141, 148, 136, 147, 135, 136, 136, 147, 140, 138, 136, 145, 136, 138, 134, 143, 139, 151, 139, 131, 133, 142, 138, 136, 143, 135, 126, 141, 144, 131, 141, 135, 146, 132, 147, 133, 151, 128, 130, 132, 129, 145, 137, 136, 138, 141, 134, 141, 142, 144, 141, 141, 131, 137, 136, 151, 139, 138, 143, 136, 135, 136, 143, 134, 155, 142, 138, 140, 142, 146, 147, 130, 133, 138, 141, 134, 143, 135, 149, 134, 136, 132, 142, 144, 136, 142, 132, 145, 142, 146, 145, 128, 138, 126, 139, 141, 135, 151, 150, 135, 127, 148, 145, 137, 145, 132, 135, 137, 127, 140, 144, 144, 137, 149, 129, 139, 140, 141, 141, 133, 140, 143, 133, 137, 136, 139, 140, 138, 138, 135, 149, 132, 139, 146, 143, 148, 126, 135, 137, 137, 142, 133, 132, 135, 141, 133, 134, 148, 133, 127, 149, 139, 146, 145, 132, 138, 138, 133, 141, 127, 132, 141, 137, 137, 139, 133, 137, 140, 148, 145, 132, 141, 131, 142, 138, 141, 135, 143, 135, 139, 140, 126, 137, 136, 136, 141, 137, 129, 142, 142, 142, 140, 131, 143, 133, 153, 143, 135, 149, 138, 144, 140, 138, 134, 130, 142, 134, 144, 144, 140, 144, 139, 147, 138, 142, 136, 131, 133, 143, 141, 136, 139, 138, 129, 137, 138, 127, 136, 149, 141, 145, 154, 139, 132, 139, 149, 139, 136, 140, 135, 143, 143, 141, 125, 131, 140, 136, 142, 149, 142, 140, 140, 141, 142, 129, 131, 138, 135, 136, 145, 148, 143, 142, 143, 125, 142, 142, 144, 145, 144, 140, 136, 142, 148, 139, 144, 144, 133, 136, 142, 143, 135, 137, 149, 135, 138, 141, 148, 139, 137, 143, 141, 130, 155, 134, 138, 137, 140, 134, 139, 136, 135, 135, 144, 138, 143, 142, 138, 137, 139, 139, 143, 128, 145, 149, 148, 149, 136, 139, 146, 132, 134, 144, 134, 132, 141, 134, 142, 145, 144, 143, 132, 150, 134, 144, 137, 130, 124, 134, 144, 142, 123, 144, 145, 132, 136, 140, 137, 139, 135, 139, 140, 136, 146, 142, 143, 144, 142, 136, 138, 142, 146, 140, 133, 137, 138, 131, 138, 138, 140, 146, 139, 135, 139, 132, 144, 137, 139, 139, 133, 138, 140, 137, 141, 141, 133, 132, 142, 134, 131, 134, 137, 142, 138, 127, 144, 143, 142, 144, 129, 135, 148, 132, 136, 139, 139, 145, 141, 130, 135, 141, 140, 148, 136, 134, 136, 140, 124, 142, 134, 139, 138, 131, 144, 148, 141, 140, 129, 145, 142, 136, 124, 134, 141, 131, 135, 140, 131, 142, 136, 155, 133, 139, 125, 134, 144, 136, 128, 135, 149, 141, 148, 145, 130, 152, 132, 137, 140, 132, 134, 140, 137, 139, 133, 142, 144, 150, 139, 133, 132, 140, 141, 130, 148, 141, 139, 138, 144, 137, 148, 148, 135, 141, 128, 126, 152, 144, 141, 143, 146, 132, 135, 153, 138, 132, 142, 115, 137, 151, 142, 139, 136, 136, 142, 141, 143, 141, 142, 138, 145, 142, 135, 138, 136, 147, 138, 135, 136, 139, 139, 139, 144, 132, 133, 133, 138, 134, 135, 146, 139, 139, 138, 138, 141, 141, 140, 139, 140, 135, 141, 134, 146, 140, 137, 138, 141, 145, 140, 133, 139, 137, 143, 137, 150, 134, 139, 139, 138, 138, 135, 130, 140, 137, 137, 133, 138, 139, 139, 138, 133, 142, 138, 134, 133, 143, 134, 148, 138, 137, 137, 136, 132, 138, 142, 141, 136, 138, 130, 133, 141, 136, 142, 146, 143, 132, 137, 135, 140, 141, 142, 142, 136, 135, 139, 137, 135, 144, 142, 145, 141, 138, 137, 148, 143, 139, 140, 138, 142, 133, 134, 134, 139, 139, 135, 132, 148, 135, 141, 134, 146, 144, 136, 131, 141, 142, 131, 140, 133, 137, 136, 145, 136, 139, 144, 137, 137, 143, 142, 144, 141, 144, 139, 145, 135, 136, 136, 135, 134, 139, 139, 136, 134, 147, 142, 139, 138, 145, 137, 147, 143, 132, 140, 139, 138, 137, 140, 142, 139, 139, 131, 146, 137, 131, 146, 137, 135, 140, 139, 134, 133, 134, 138, 134, 135, 134, 138, 132, 141, 139, 137, 141, 143, 138, 148, 139, 136, 131, 135, 138, 130, 138, 138, 138, 138, 140, 143, 137, 142, 141, 137, 137, 136, 143, 145, 128, 138, 140, 142, 133, 135, 136, 143, 132, 151, 134, 145, 132, 135, 138, 143, 146, 138, 134, 137, 140, 139, 140, 140, 153, 139, 132, 145, 134, 141, 136, 136, 138, 143, 136, 142, 141, 132, 136, 139, 141, 136, 137, 144, 135, 147, 141, 139, 143, 139, 134, 146, 141, 139, 128, 141, 143, 132, 148, 137, 139, 140, 139, 139, 138, 138, 139, 142, 144, 138, 138, 140, 134, 145, 138, 136, 145, 134, 137, 141, 143, 136, 134, 138, 148, 143, 140, 140, 136, 129, 135, 131, 132, 138, 140, 137, 137, 143, 135, 137, 147, 138, 139, 141, 139, 145, 141, 128, 138, 142, 136, 144, 136, 138, 140, 144, 150, 140, 133, 141, 138, 134, 144, 135, 141, 145, 140, 140, 135, 135, 135, 138, 145, 139, 135, 143, 143, 135, 134, 126, 136, 140, 135, 142, 149, 142, 138, 141, 139, 132, 138, 141, 144, 136, 137, 133, 135, 140, 134, 137, 133, 140, 137, 145, 146, 134, 152, 138, 143, 138, 143, 140, 139, 135, 141, 139, 141, 143, 143, 140, 144, 132, 144, 138, 138, 138, 142, 142, 127, 135, 146, 138, 137, 143, 138, 139, 134, 139, 142, 135, 136, 142, 137, 139, 142, 133, 136, 134, 137, 135, 135, 140, 140, 139, 141, 130, 134, 143, 138, 135, 139, 143, 140, 138, 146, 141, 142, 141, 137, 133, 138, 135, 136, 141, 139, 130, 134, 134, 128, 142, 137, 139, 135, 137, 134, 132, 144, 135, 144, 137, 132, 138, 144, 144, 140, 144, 136, 143, 138, 137, 144, 132, 139, 143, 139, 134, 140, 136, 136, 137, 139, 141, 143, 142, 135, 141, 141, 139, 148, 134, 140, 135, 143, 129, 154, 146, 133, 134, 138, 140, 151, 142, 130, 143, 144, 128, 146, 139, 138, 143, 140, 133, 138, 140, 147, 138, 134, 148, 142, 135, 132, 140, 131, 137, 132, 135, 137, 140, 140, 145, 141, 150, 141, 141, 140, 143, 144, 143, 141, 147, 139, 136, 147, 137, 137, 130, 136, 132, 137, 137, 128, 139, 137, 139, 138, 142, 141, 147, 130, 142, 141, 133, 155, 137, 134, 140, 136, 146, 134, 137, 133, 136, 136, 142, 137, 137, 150, 137, 139, 142, 130, 142, 150, 145, 139, 138, 136, 143, 141, 133, 144, 124, 143, 138, 139, 140, 141, 134, 140, 134, 142, 135, 137, 140, 133, 146, 134, 138, 151, 137, 140, 133, 135, 154, 130, 140, 141, 135, 137, 133, 140, 138, 135, 136, 131, 138, 143, 142, 140, 138, 135, 140, 143, 144, 141, 149, 137, 132, 138, 134, 139, 145, 142, 144, 134, 135, 144, 134, 138, 128, 137, 139, 140, 141, 142, 150, 139, 138, 142, 138, 136, 143, 137, 144, 133, 138, 137, 130, 144, 144, 132, 145, 139, 134, 140, 133, 147, 144, 140, 145, 144, 130, 141, 137, 135, 144, 142, 137, 137, 139, 138, 146, 139, 143, 144, 132, 141, 142, 133, 134, 138, 132, 135, 138, 144, 138, 143, 143, 142, 144, 141, 126, 133, 143, 140, 136, 141, 139, 137, 141, 145, 129, 142, 148, 137, 138, 137, 136, 138, 147, 141, 140, 143, 139, 135, 139, 143, 138, 140, 137, 144, 132, 137, 139, 127, 132, 131, 145, 138, 146, 138, 144, 134, 135, 135, 139, 134, 137, 144, 137, 144, 130, 131, 142, 138, 137, 143, 129, 127, 147, 137, 137, 133, 142, 131, 131, 138, 137, 141, 139, 134, 146, 138, 143, 134, 139, 142, 139, 143, 145, 139, 134, 124, 132, 137, 132, 140, 143, 137, 134, 134, 140, 136, 154, 144, 143, 142, 130, 135, 142, 140, 135, 143, 141, 135, 143, 138, 140, 140, 136, 144, 141, 142, 139, 144, 141, 137, 134, 132, 132, 143, 140, 141, 150, 141, 130, 132, 138, 139, 143, 151, 147, 147, 138, 141, 146, 142, 131, 141, 140, 142, 130, 144, 143, 137, 138, 140, 131, 134, 139, 135, 144, 141, 133, 135, 149, 139, 134, 137, 139, 139, 144, 143, 141, 135, 136, 140, 131, 133, 134, 143, 135, 140, 130, 140, 140, 141, 131, 137, 133, 141, 141, 129, 144, 137, 128, 137, 137, 142, 134, 133, 140, 143, 138, 150, 139, 133, 143, 147, 130, 132, 142, 138, 144, 136, 131, 138, 145, 138, 137, 135, 138, 144, 150, 143, 138, 148, 137, 143, 137, 131, 137, 131, 125, 139, 131, 137, 146, 135, 142, 134, 141, 140, 143, 143, 142, 140, 139, 142, 136, 131, 134, 143, 139, 140, 146, 133, 142, 152, 143, 141, 138, 145, 135, 129, 143, 135, 145, 136, 142, 137, 141, 140, 136, 138, 137, 130, 139, 139, 137, 137, 138, 143, 130, 148, 145, 142, 147, 144, 135, 137, 137, 130, 134, 146, 141, 137, 139, 135, 132, 142, 138, 150, 139, 146, 136, 123, 136, 152, 139, 135, 145, 141, 132, 135, 139, 147, 146, 134, 145, 146, 139, 155, 139, 149, 138, 135, 145, 137, 148, 148, 142, 137, 139, 142, 127, 138, 134, 143, 136, 143, 122, 140, 145, 132, 136, 139, 146, 140, 145, 140, 127, 138, 126, 138, 146, 136, 130, 136, 149, 134, 138, 146, 149, 143, 141, 148, 138, 132, 135, 146, 150, 132, 150, 127, 129, 138, 141, 144, 146, 138, 136, 138, 135, 152, 139, 139, 140, 134, 134, 141, 139, 133, 144, 142, 144, 135, 145, 144, 143, 144, 128, 144, 139, 139, 141, 151, 139, 138, 138, 136, 139, 137, 131, 136, 141, 156, 142, 137, 137, 143, 149, 154, 133, 137, 138, 142, 133, 135, 138, 133, 141, 128, 130, 141, 136, 135, 137, 138, 141, 149, 137, 146, 140, 141, 133, 140, 131, 131, 147, 134, 136, 130, 139, 141, 135, 140, 145, 142, 140, 135, 146, 136, 139, 141, 138, 136, 140, 139, 145, 143, 144, 144, 148, 137, 137, 151, 135, 151, 147, 135, 149, 142, 144, 150, 135, 137, 146, 151, 144, 132, 138, 142, 145, 127, 137, 145, 136, 137, 145, 138, 144, 147, 140, 153, 140, 144, 136, 154, 154, 132, 142, 144, 139, 141, 138, 134, 131, 152, 144, 150, 142, 138, 139, 137, 148, 143, 137, 144, 136, 146, 136, 138, 140, 132, 135, 133, 148, 143, 140, 144, 133, 134, 144, 144, 146, 135, 134, 137, 147, 142, 148, 130, 147, 143, 141, 153, 141, 146, 137, 144, 128, 142, 135, 145, 133, 140, 144, 149, 142, 139, 143, 142, 128, 153, 143, 129, 149, 136, 130, 151, 140, 139, 140, 132, 133, 130, 138, 152, 134, 139, 146, 137, 139, 144, 136, 127, 140, 128, 132, 135, 138, 144, 129, 146, 141, 136, 141, 130, 141, 139, 133, 139, 144, 140, 124, 144, 135, 146, 145, 148, 134, 136, 144, 139, 137, 131, 133, 141, 148, 135, 138, 133, 137, 137, 134, 145, 142, 147, 137, 145, 132, 137, 151, 146, 146, 136, 138, 139, 136, 135, 136, 127, 142, 155, 134, 144, 141, 142, 150, 138, 136, 147, 132, 134, 136, 129, 134, 143, 143, 133, 138, 134, 135, 139, 143, 132, 143, 144, 135, 137, 142, 143, 140, 127, 151, 153, 137, 148, 139, 150, 147, 139, 138, 135, 148, 135, 137, 142, 142, 137, 135, 146, 137, 143, 142, 126, 138, 143, 143, 138, 152, 149, 145, 123, 132, 137, 140, 142, 145, 139, 138, 140, 141, 135, 149, 139, 140, 147, 143, 133, 166, 148, 141, 136, 127, 141, 136, 132, 120, 135, 131, 137, 146, 140, 145, 142, 140, 139, 141, 137, 137, 139, 136, 150, 136, 138, 138, 145, 136, 151, 140, 142, 138, 138, 135, 148, 151, 137, 130, 136, 135, 147, 138, 132, 141, 145, 141, 140, 137, 142, 138, 150, 140, 140, 135, 139, 142, 142, 133, 143, 133, 141, 149, 151, 134, 137, 136, 137, 146, 131, 140, 136, 136, 146, 134, 137, 133, 136, 145, 144, 143, 146, 136, 147, 141, 133, 131, 141, 144, 135, 131, 139, 135, 138, 144, 135, 139, 139, 145, 141, 137, 140, 138, 135, 138, 140, 140, 144, 137, 136, 147, 135, 131, 138, 142, 139, 135, 141, 139, 140, 139, 145, 140, 139, 136, 142, 138, 144, 139, 136, 137, 143, 140, 140, 134, 135, 143, 144, 140, 142, 143, 138, 138, 141, 145, 139, 135, 142, 139, 139, 138, 139, 135, 138, 146, 126, 135, 142, 139, 145, 132, 138, 139, 137, 140, 135, 141, 136, 138, 146, 142, 145, 136, 142, 137, 128, 139, 140, 145, 146, 137, 138, 141, 140, 142, 131, 146, 143, 142, 137, 143, 132, 139, 133, 143, 139, 145, 137, 141, 138, 142, 137, 131, 135, 135, 143, 135, 142, 141, 134, 142, 147, 136, 141, 140, 137, 140, 136, 138, 138, 142, 143, 138, 136, 144, 132, 140, 133, 131, 135, 135, 138, 136, 141, 136, 143, 144, 136, 134, 135, 140, 136, 147, 137, 137, 137, 139, 133, 140, 134, 142, 138, 136, 136, 140, 140, 140, 144, 140, 139, 138, 135, 140, 144, 140, 142, 142, 144, 138, 139, 138, 138, 137, 137, 136, 138, 141, 144, 138, 141, 139, 141, 140, 145, 140, 143, 136, 139, 138, 142, 139, 144, 142, 136, 138, 140, 141, 140, 141, 140, 143, 139, 138, 133, 140, 145, 138, 140, 134, 135, 140, 143, 137, 139, 139, 139, 140, 140, 138, 138, 138, 139, 133, 138, 139, 133, 136, 142, 141, 135, 142, 139, 140, 136, 144, 142, 138, 144, 141, 147, 140, 140, 143, 138, 136, 137, 134, 140, 141, 133, 140, 141, 144, 138, 139, 138, 143, 134, 145, 142, 143, 137, 134, 141, 143, 139, 141, 141, 135, 138, 143, 138, 147, 137, 136, 142, 137, 137, 148, 139, 136, 144, 137, 138, 142, 145, 135, 141, 146, 134, 140, 134, 139, 137, 137, 139, 136, 142, 140, 140, 144, 150, 136, 133, 139, 137, 150, 139, 132, 137, 134, 131, 135, 142, 137, 144, 143, 144, 133, 141, 136, 141, 144, 139, 140, 138, 140, 143, 140, 136, 137, 142, 137, 140, 138, 142, 133, 145, 139, 139, 135, 136, 139, 143, 135, 142, 145, 139, 143, 140, 132, 137, 141, 131, 143, 140, 136, 140, 141, 141, 143, 139, 139, 143, 134, 142, 138, 139, 133, 136, 143, 140, 146, 134, 136, 138, 143, 140, 139, 140, 145, 134, 139, 135, 137, 143, 139, 145, 127, 138, 143, 132, 141, 142, 144, 138, 141, 141, 137, 128, 135, 143, 135, 139, 128, 138, 142, 133, 141, 138, 134, 137, 138, 142, 136, 143, 134, 147, 137, 136, 140, 143, 135, 136, 136, 135, 140, 150, 144, 142, 144, 133, 136, 144, 137, 144, 140, 139, 130, 142, 142, 139, 144, 142, 138, 135, 139, 135, 141, 137, 130, 136, 136, 135, 144, 137, 137, 138, 140, 139, 142, 139, 145, 143, 138, 138, 139, 139, 145, 140, 139, 137, 148, 138, 144, 141, 138, 138, 136, 139, 136, 139, 143, 140, 143, 142, 145, 135, 140, 142, 148, 137, 139, 143, 144, 143, 144, 137, 136, 132, 138, 137, 135, 141, 135, 141, 143, 132, 137, 142, 146, 140, 138, 137, 144, 141, 140, 151, 143, 133, 142, 145, 140, 140, 139, 141, 131, 141, 128, 136, 133, 141, 145, 140, 139, 148, 135, 137, 130, 142, 143, 143, 149, 138, 141, 128, 138, 136, 143, 133, 136, 147, 138, 135, 137, 148, 144, 121, 132, 141, 131, 135, 139, 141, 132, 137, 147, 127, 138, 136, 138, 128, 133, 137, 135, 141, 124, 136, 143, 137, 143, 136, 139, 142, 136, 128, 142, 131, 143, 133, 137, 143, 140, 145, 140, 139, 141, 136, 141, 137, 137, 142, 138, 148, 137, 130, 131, 143, 140, 137, 134, 148, 136, 130, 138, 144, 146, 148, 135, 137, 140, 134, 137, 132, 138, 140, 142, 142, 138, 142, 129, 132, 141, 139, 142, 144, 135, 133, 138, 142, 143, 136, 143, 137, 142, 133, 136, 143, 141, 142, 140, 131, 141, 131, 142, 138, 142, 128, 135, 141, 132, 146, 133, 135, 139, 133, 143, 147, 137, 142, 136, 137, 145, 141, 139, 127, 138, 146, 143, 141, 142, 135, 138, 139, 139, 137, 146, 140, 131, 130, 140, 138, 144, 132, 133, 146, 137, 143, 139, 144, 127, 135, 139, 145, 138, 136, 135, 134, 136, 134, 142, 144, 139, 135, 133, 139, 143, 140, 136, 143, 132, 142, 134, 139, 138, 140, 135, 142, 131, 136, 133, 133, 143, 147, 139, 147, 146, 138, 135, 141, 141, 134, 143, 140, 139, 141, 127, 147, 150, 145, 138, 146, 136, 140, 132, 143, 146, 136, 139, 140, 143, 146, 139, 143, 139, 141, 125, 139, 144, 144, 129, 141, 141, 140, 129, 132, 137, 147, 141, 138, 127, 134, 145, 138, 145, 147, 131, 142, 131, 140, 144, 136, 135, 133, 131, 140, 138, 138, 134, 134, 135, 133, 137, 141, 130, 131, 145, 140, 132, 144, 141, 132, 135, 139, 142, 139, 142, 141, 143, 140, 127, 131, 135, 143, 134, 135, 140, 136, 132, 145, 137, 132, 146, 141, 134, 128, 136, 144, 141, 132, 141, 141, 135, 134, 131, 137, 140, 138, 135, 140, 145, 138, 135, 141, 141, 134, 144, 145, 140, 132, 141, 145, 136, 144, 132, 145, 142, 138, 133, 139, 136, 136, 139, 139, 137, 139, 138, 139, 134, 153, 136, 143, 133, 142, 135, 130, 142, 133, 141, 139, 134, 139, 138, 132, 137, 139, 144, 139, 141, 137, 128, 135, 135, 139, 138, 138, 139, 139, 142, 138, 144, 133, 132, 147, 144, 138, 139, 142, 139, 142, 134, 140, 146, 139, 138, 138, 142, 135, 144, 142, 140, 143, 137, 140, 127, 138, 140, 141, 134, 148, 129, 144, 134, 133, 125, 137, 149, 135, 143, 138, 135, 149, 136, 132, 141, 138, 132, 154, 136, 134, 136, 135, 139, 133, 131, 137, 143, 135, 140, 136, 153, 140, 142, 147, 138, 137, 148, 143, 135, 138, 141, 143, 137, 143, 145, 142, 134, 139, 130, 137, 142, 141, 141, 142, 136, 147, 136, 139, 138, 134, 136, 142, 134, 136, 136, 145, 132, 131, 131, 136, 136, 146, 146, 134, 140, 136, 140, 142, 132, 135, 138, 141, 135, 137, 144, 138, 144, 139, 134, 141, 148, 140, 144, 140, 140, 144, 144, 148, 137, 147, 137, 135, 147, 135, 143, 141, 132, 138, 135, 143, 135, 139, 143, 131, 137, 140, 145, 134, 128, 145, 129, 137, 132, 142, 134, 138, 133, 146, 134, 140, 139, 130, 137, 137, 137, 143, 135, 147, 133, 133, 149, 130, 145, 138, 130, 147, 133, 147, 146, 138, 139, 141, 147, 142, 140, 141, 139, 134, 132, 137, 151, 127, 139, 144, 133, 149, 138, 138, 139, 132, 140, 139, 137, 143, 138, 137, 135, 130, 136, 143, 143, 146, 137, 137, 137, 143, 136, 147, 142, 143, 137, 132, 141, 150, 139, 143, 136, 139, 142, 138, 143, 140, 127, 134, 137, 137, 142, 143, 137, 128, 147, 138, 140, 130, 135, 143, 143, 140, 141, 134, 141, 136, 138, 143, 136, 139, 146, 135, 140, 135, 133, 136, 134, 134, 147, 143, 135, 144, 143, 141, 138, 145, 140, 129, 129, 135, 133, 138, 131, 129, 142, 150, 149, 133, 150, 146, 131, 141, 140, 142, 144, 139, 136, 143, 138, 129, 146, 138, 137, 138, 132, 136, 143, 130, 137, 139, 134, 139, 130, 140, 140, 128, 130, 138, 136, 143, 148, 145, 135, 143, 130, 134, 135, 145, 128, 143, 128, 142, 132, 139, 133, 137, 143, 135, 137, 145, 138, 134, 135, 144, 141, 128, 135, 135, 136, 151, 136, 130, 138, 133, 145, 139, 139, 134, 135, 130, 133, 143, 140, 138, 136, 136, 146, 141, 132, 139, 135, 143, 131, 142, 147, 138, 134, 138, 141, 137, 139, 133, 146, 136, 142, 136, 132, 134, 135, 126, 145, 137, 137, 141, 129, 129, 136, 134, 139, 131, 139, 140, 131, 140, 146, 139, 146, 139, 134, 140, 144, 135, 148, 137, 134, 153, 144, 137, 140, 139, 146, 139, 133, 139, 134, 142, 144, 129, 131, 135, 137, 147, 138, 137, 133, 142, 137, 130, 143, 138, 140, 134, 134, 146, 143, 134, 142, 144, 142, 150, 134, 144, 133, 138, 128, 143, 139, 136, 142, 139, 137, 140, 137, 135, 139, 143, 140, 140, 142, 122, 132, 142, 133, 147, 146, 132, 132, 141, 133, 137, 141, 136, 137, 146, 140, 145, 144, 147, 141, 137, 135, 132, 137, 137, 137, 134, 130, 151, 141, 143, 150, 144, 138, 151, 139, 138, 132, 137, 146, 116, 138, 137, 135, 143, 139, 159, 132, 133, 136, 144, 133, 140, 137, 133, 140, 140, 147, 136, 147, 142, 137, 142, 142, 129, 142, 142, 144, 139, 143, 142, 128, 143, 142, 141, 136, 144, 139, 134, 136, 134, 140, 136, 143, 139, 128, 144, 143, 138, 124, 136, 138, 143, 137, 148, 130, 136, 145, 135, 137, 151, 139, 142, 141, 143, 138, 139, 140, 140, 136, 130, 142, 134, 137, 142, 139, 131, 139, 142, 145, 136, 150, 146, 136, 143, 128, 126, 140, 148, 133, 131, 130, 150, 135, 139, 129, 138, 139, 148, 141, 148, 142, 137, 143, 127, 147, 142, 144, 140, 136, 140, 142, 137, 128, 135, 149, 140, 136, 142, 132, 142, 137, 145, 141, 135, 133, 145, 142, 140, 136, 129, 141, 133, 142, 134, 140, 136, 139, 141, 137, 139, 136, 142, 137, 143, 142, 138, 141, 141, 143, 135, 146, 136, 132, 131, 137, 146, 137, 129, 144, 133, 137, 141, 136, 137, 139, 147, 134, 153, 137, 135, 147, 137, 134, 146, 140, 137, 147, 140, 138, 134, 135, 150, 133, 141, 138, 134, 140, 138, 138, 143, 140, 136, 137, 132, 139, 137, 137, 140, 133, 142, 130, 126, 142, 132, 134, 130, 153, 131, 147, 138, 142, 142, 137, 142, 136, 144, 131, 129, 133, 141, 137, 133, 143, 128, 135, 145, 140, 141, 135, 135, 130, 144, 142, 137, 138, 137, 144, 132, 140, 135, 137, 139, 133, 134, 141, 147, 148, 137, 130, 143, 140, 144, 136, 136, 140, 143, 133, 132, 146, 122, 126, 143, 137, 143, 140, 125, 141, 141, 147, 136, 150, 139, 137, 128, 136, 141, 134, 138, 142, 150, 146, 146, 143, 132, 122, 133, 137, 145, 135, 138, 139, 134, 134, 141, 137, 145, 141, 156, 145, 138, 143, 141, 141, 143, 139, 129, 144, 140, 133, 126, 136, 125, 142, 144, 141, 137, 144, 151, 135, 148, 147, 140, 143, 139, 135, 144, 136, 141, 143, 131, 142, 141, 139, 141, 144, 143, 140, 138, 136, 134, 131, 140, 134, 144, 141, 138, 136, 138, 132, 145, 133, 145, 142, 140, 137, 145, 145, 136, 130, 138, 143, 134, 145, 132, 131, 140, 134, 134, 136, 134, 146, 133, 136, 146, 139, 135, 139, 139, 144, 127, 132, 136, 144, 145, 140, 137, 135, 137, 136, 145, 132, 140, 137, 140, 140, 137, 138, 134, 131, 128, 137, 137, 133, 138, 137, 137, 136, 132, 137, 140, 141, 142, 150, 128, 142, 139, 138, 128, 141, 146, 143, 143, 134, 141, 143, 139, 134, 133, 142, 139, 137, 146, 144, 138, 132, 132, 142, 136, 143, 136, 143, 134, 140, 142, 145, 146, 138, 137, 137, 136, 153, 136, 147, 132, 137, 142, 134, 142, 127, 142, 125, 150, 140, 132, 131, 127, 147, 144, 140, 142, 131, 141, 137, 140, 132, 145, 138, 142, 133, 142, 141, 141, 141, 142, 137, 134, 138, 127, 138, 140, 133, 132, 137, 134, 133, 148, 133, 144, 133, 130, 136, 138, 135, 129, 140, 147, 142, 132, 139, 129, 144, 137, 132, 128, 135, 135, 127, 131, 139, 142, 140, 141, 139, 141, 138, 132, 145, 136, 135, 137, 148, 142, 141, 143, 138, 144, 147, 131, 130, 134, 140, 140, 130, 136, 135, 135, 137, 143, 139, 143, 137, 141, 142, 148, 145, 136, 147, 143, 141, 143, 137, 143, 135, 131, 141, 142, 146, 135, 139, 136, 136, 138, 138, 136, 137, 136, 141, 141, 127, 137, 132, 133, 134, 142, 139, 133, 140, 138, 140, 142, 139, 140, 140, 135, 131, 139, 134, 141, 140, 143, 143, 132, 144, 134, 141, 139, 138, 140, 147, 142, 144, 138, 136, 144, 136, 146, 137, 130, 134, 131, 141, 140, 131, 136, 142, 130, 150, 137, 140, 135, 136, 139, 136, 143, 143, 140, 136, 141, 130, 145, 139, 132, 147, 140, 135, 140, 134, 142, 129, 133, 128, 141, 137, 138, 136, 142, 143, 127, 138, 143, 132, 134, 131, 137, 132, 130, 136, 134, 142, 146, 137, 130, 147, 132, 135, 142, 133, 139, 134, 142, 141, 140, 143, 136, 135, 146, 135, 142, 147, 139, 140, 133, 141, 140, 141, 147, 144, 139, 137, 147, 130, 123, 140, 141, 133, 141, 154, 137, 141, 138, 130, 145, 147, 130, 143, 133, 135, 146, 154, 145, 138, 135, 140, 133, 139, 143, 143, 140, 141, 132, 136, 147, 144, 133, 145, 144, 139, 147, 143, 146, 134, 145, 143, 143, 145, 138, 133, 144, 135, 136, 137, 135, 135, 140, 141, 136, 139, 145, 134, 139, 136, 136, 137, 141, 136, 127, 143, 133, 138, 140, 140, 150, 130, 137, 131, 138, 137, 136, 132, 138, 136, 139, 139, 152, 137, 137, 135, 132, 136, 136, 138, 132, 140, 134, 141, 145, 135, 137, 140, 137, 135, 139, 143, 143, 128, 143, 138, 140, 139, 139, 137, 137, 138, 143, 141, 142, 132, 140, 129, 133, 130, 138, 142, 145, 130, 138, 139, 149, 144, 143, 141, 141, 139, 129, 133, 145, 137, 138, 144, 147, 139, 142, 135, 135, 133, 141, 146, 134, 138, 140, 143, 142, 139, 149, 129, 141, 149, 137, 136, 143, 133, 139, 146, 134, 138, 134, 138, 141, 141, 137, 138, 134, 137, 141, 127, 135, 145, 153, 130, 139, 143, 141, 140, 130, 139, 137, 143, 140, 141, 140, 146, 136, 140, 138, 143, 142, 140, 139, 137, 143, 128, 141, 133, 138, 136, 139, 142, 136, 141, 133, 142, 135, 144, 135, 128, 138, 148, 136, 127, 142, 140, 137, 142, 137, 137, 137, 139, 136, 141, 137, 142, 135, 138, 144, 140, 144, 135, 124, 139, 136, 135, 137, 139, 140, 141, 147, 139, 144, 133, 138, 135, 141, 138, 143, 140, 146, 137, 143, 139, 143, 140, 141, 147, 135, 137, 135, 139, 141, 132, 147, 132, 129, 147, 143, 148, 144, 139, 132, 144, 140, 152, 130, 139, 140, 132, 132, 127, 142, 138, 131, 137, 141, 144, 144, 140, 141, 134, 137, 140, 134, 140, 142, 131, 136, 133, 135, 135, 149, 139, 136, 143, 141, 141, 139, 147, 139, 130, 131, 152, 135, 135, 143, 136, 134, 133, 136, 147, 140, 136, 140, 137, 135, 139, 137, 137, 150, 133, 133, 142, 140, 143, 140, 137, 138, 134, 141, 143, 144, 141, 144, 131, 136, 141, 146, 140, 151, 150, 137, 124, 140, 143, 136, 139, 147, 140, 139, 143, 136, 142, 135, 135, 145, 136, 137, 132, 135, 132, 125, 145, 132, 145, 138, 140, 139, 135, 130, 145, 138, 131, 151, 135, 129, 140, 139, 135, 151, 135, 140, 138, 135, 140, 145, 137, 144, 145, 130, 146, 140, 143, 136, 139, 140, 130, 129, 145, 138, 147, 147, 138, 131, 134, 151, 140, 136, 126, 142, 136, 143, 140, 142, 138, 141, 149, 140, 135, 139, 140, 142, 134, 140, 141, 150, 145, 139, 151, 143, 144, 135, 144, 128, 147, 132, 135, 139, 151, 128, 135, 154, 128, 141, 140, 156, 130, 140, 132, 143, 142, 137, 138, 144, 141, 147, 131, 137, 148, 134, 150, 140, 143, 140, 134, 145, 139, 147, 142, 137, 134, 135, 141, 139, 135, 142, 130, 144, 145, 132, 131, 135, 151, 123, 143, 138, 141, 141, 132, 133, 135, 139, 145, 138, 144, 140, 138, 145, 141, 142, 138, 130, 144, 139, 140, 136, 142, 139, 138, 136, 136, 138, 138, 139, 145, 146, 140, 144, 145, 141, 146, 130, 152, 141, 128, 142, 135, 132, 147, 141, 144, 133, 140, 143, 135, 132, 137, 141, 147, 134, 143, 139, 143, 150, 141, 132, 137, 127, 130, 146, 137, 138, 131, 137, 129, 137, 146, 131, 131, 143, 136, 137, 138, 139, 136, 153, 130, 145, 126, 136, 149, 148, 134, 131, 141, 148, 134, 139, 141, 136, 135, 147, 142, 139, 144, 139, 134, 144, 139, 147, 136, 127, 149, 143, 137, 136, 145, 135, 131, 156, 138, 136, 147, 145, 140, 139, 138, 133, 134, 137, 139, 144, 153, 134, 130, 142, 130, 137, 132, 138, 145, 136, 134, 143, 137, 138, 136, 145, 134, 140, 140, 133, 145, 138, 133, 145, 132, 145, 146, 128, 143, 139, 134, 145, 139, 140, 139, 128, 147, 145, 139, 153, 148, 135, 144, 142, 139, 140, 131, 149, 144, 139, 152, 121, 125, 130, 131, 142, 130, 129, 135, 138, 137, 141, 142, 158, 123, 133, 145, 136, 136, 126, 139, 130, 139, 137, 140, 138, 131, 139, 135, 138, 140, 132, 137, 146, 143, 126, 140, 129, 139, 128, 145, 145, 142, 132, 136, 126, 139, 138, 128, 135, 135, 141, 139, 139, 142, 120, 132, 128, 132, 125, 137, 143, 147, 128, 128, 138, 137, 144, 141, 134, 145, 136, 136, 143, 135, 133, 134, 145, 132, 136, 140, 141, 141, 144, 153, 139, 129, 144, 143, 143, 142, 138, 135, 140, 135, 141, 138, 156, 135, 139, 134, 131, 145, 141, 145, 147, 143, 142, 137, 128, 140, 148, 138, 146, 138, 146, 144, 144, 139, 128, 133, 138, 143, 137, 150, 139, 127, 138, 141, 145, 138, 136, 137, 157, 143, 150, 138, 138, 137, 137, 145, 144, 138, 145, 138, 142, 134, 138, 127, 131, 142, 141, 142, 145, 145, 146, 144, 146, 137, 136, 136, 142, 144, 139, 128, 136, 135, 162, 138, 133, 144, 142, 131, 138, 136, 144, 147, 139, 122, 113, 141, 138, 127, 139, 137, 149, 154, 141, 129, 135, 135, 136, 139, 136, 136, 144, 135, 134, 148, 143, 135, 152, 145, 134, 125, 134, 139, 137, 139, 139, 143, 134, 138, 136, 136, 146, 137, 139, 137, 155, 136, 137, 148, 145, 147, 132, 140, 137, 145, 135, 138, 137, 140, 137, 129, 139, 139, 125, 140, 142, 143, 149, 133, 125, 136, 134, 132, 136, 133, 134, 128, 130, 135, 140, 144, 134, 135, 137, 140, 139, 142, 143, 136, 146, 139, 146, 141, 136, 135, 147, 120, 136, 137, 140, 144, 134, 133, 136, 142, 141, 139, 142, 143, 130, 145, 136, 142, 136, 142, 136, 146, 140, 142, 150, 131, 137, 138, 143, 137, 140, 138, 139, 142, 141, 142, 138, 135, 133, 140, 137, 142, 139, 136, 142, 138, 131, 138, 137, 135, 133, 135, 140, 142, 131, 136, 147, 141, 134, 140, 141, 141, 135, 140, 130, 143, 139, 140, 135, 145, 133, 128, 138, 131, 144, 128, 138, 143, 139, 138, 143, 139, 137, 138, 141, 139, 141, 135, 141, 135, 138, 135, 138, 138, 138, 147, 152, 137, 139, 144, 138, 139, 144, 146, 135, 139, 142, 148, 143, 138, 136, 145, 136, 132, 144, 135, 139, 146, 135, 138, 143, 138, 147, 131, 136, 134, 140, 142, 139, 140, 138, 142, 132, 148, 142, 136, 149, 138, 140, 131, 142, 132, 137, 135, 138, 134, 142, 141, 136, 137, 146, 145, 146, 132, 132, 133, 144, 141, 140, 133, 148, 143, 133, 146, 141, 140, 139, 130, 136, 134, 141, 137, 138, 140, 136, 136, 140, 141, 129, 139, 134, 140, 143, 133, 143, 140, 137, 139, 129, 136, 143, 144, 141, 137, 133, 140, 135, 134, 131, 140, 146, 134, 138, 143, 146, 153, 138, 144, 144, 133, 133, 140, 139, 146, 135, 138, 136, 144, 142, 144, 139, 136, 137, 134, 133, 133, 141, 141, 135, 143, 140, 135, 152, 143, 135, 144, 132, 143, 139, 139, 138, 135, 142, 135, 141, 143, 139, 141, 134, 137, 142, 140, 137, 143, 134, 136, 140, 147, 139, 134, 134, 130, 131, 139, 138, 139, 135, 138, 147, 135, 142, 135, 147, 137, 134, 152, 143, 132, 137, 137, 133, 149, 144, 141, 138, 143, 135, 142, 143, 128, 134, 134, 142, 138, 138, 137, 141, 144, 138, 137, 133, 132, 137, 140, 134, 143, 135, 140, 137, 138, 138, 138, 135, 140, 138, 135, 138, 140, 139, 139, 136, 139, 147, 136, 140, 135, 142, 136, 145, 142, 142, 134, 136, 140, 139, 135, 137, 135, 143, 146, 141, 148, 137, 136, 140, 139, 133, 138, 137, 138, 142, 135, 133, 133, 138, 144, 135, 145, 138, 135, 144, 137, 141, 138, 143, 150, 146, 142, 144, 135, 132, 143, 140, 133, 136, 144, 144, 137, 133, 140, 132, 143, 142, 140, 144, 132, 139, 134, 135, 144, 149, 137, 138, 139, 145, 134, 138, 141, 132, 140, 135, 143, 135, 136, 137, 131, 136, 140, 139, 138, 141, 136, 136, 139, 141, 139, 136, 140, 142, 146, 141, 139, 145, 147, 141, 135, 145, 136, 126, 140, 138, 139, 135, 138, 134, 133, 143, 138, 140, 130, 136, 128, 142, 137, 139, 140, 140, 138, 136, 135, 140, 138, 135, 135, 137, 139, 132, 128, 138, 143, 140, 131, 139, 134, 141, 134, 139, 146, 143, 139, 133, 133, 135, 136, 136, 141, 138, 135, 134, 135, 140, 133, 139, 135, 138, 132, 134, 140, 139, 131, 137, 135, 150, 141, 141, 139, 136, 137, 139, 140, 144, 136, 138, 143, 139, 142, 140, 136, 134, 142, 136, 131, 151, 143, 153, 140, 138, 155, 134, 144, 141, 147, 137, 146, 137, 140, 133, 148, 141, 132, 139, 144, 124, 130, 128, 143, 135, 135, 133, 129, 134, 151, 140, 132, 130, 137, 137, 129, 145, 140, 138, 139, 138, 140, 143, 140, 130, 138, 129, 143, 140, 140, 135, 144, 134, 137, 140, 141, 138, 148, 139, 131, 131, 134, 141, 140, 116, 145, 139, 139, 129, 138, 132, 133, 137, 132, 138, 146, 153, 139, 143, 150, 140, 126, 140, 134, 139, 139, 148, 142, 136, 151, 135, 144, 140, 140, 134, 141, 147, 134, 146, 138, 125, 139, 139, 131, 138, 129, 138, 135, 135, 146, 138, 120, 126, 131, 140, 141, 144, 139, 135, 141, 131, 147, 139, 144, 138, 146, 147, 141, 131, 138, 141, 143, 137, 138, 140, 148, 140, 130, 140, 142, 145, 145, 145, 130, 132, 148, 152, 132, 139, 129, 136, 140, 140, 130, 134, 136, 142, 143, 145, 140, 151, 131, 131, 143, 139, 137, 143, 138, 138, 149, 140, 138, 130, 125, 149, 127, 143, 135, 137, 129, 154, 132, 143, 138, 128, 120, 149, 136, 144, 140, 139, 141, 134, 140, 134, 139, 133, 136, 125, 160, 137, 138, 144, 128, 139, 136, 142, 135, 134, 136, 144, 142, 142, 138, 142, 138, 135, 140, 143, 131, 140, 136, 138, 141, 142, 136, 133, 136, 134, 131, 129, 134, 142, 139, 134, 124, 139, 141, 137, 136, 135, 128, 141, 139, 129, 136, 136, 130, 133, 134, 142, 150, 134, 148, 133, 129, 145, 133, 140, 137, 138, 156, 144, 139, 136, 139, 136, 132, 140, 140, 137, 130, 145, 139, 150, 145, 140, 137, 137, 151, 150, 151, 138, 133, 140, 141, 144, 147, 147, 140, 144, 138, 131, 132, 141, 138, 135, 142, 125, 141, 141, 137, 129, 142, 131, 151, 136, 135, 145, 135, 138, 139, 137, 141, 132, 138, 141, 130, 139, 133, 138, 136, 137, 145, 136, 139, 139, 140, 142, 132, 141, 143, 145, 133, 134, 138, 149, 144, 140, 139, 141, 139, 138, 138, 138, 132, 142, 133, 144, 135, 144, 145, 127, 140, 149, 140, 143, 144, 138, 141, 137, 138, 132, 139, 141, 152, 136, 144, 136, 139, 138, 136, 135, 128, 151, 142, 152, 122, 146, 132, 135, 135, 138, 140, 140, 136, 139, 139, 141, 142, 136, 137, 140, 152, 143, 131, 130, 144, 142, 145, 133, 139, 141, 146, 139, 137, 134, 138, 145, 131, 146, 134, 147, 144, 136, 145, 132, 154, 135, 138, 131, 128, 125, 152, 144, 150, 146, 131, 144, 132, 133, 146, 128, 131, 144, 144, 147, 143, 141, 131, 135, 142, 131, 135, 137, 133, 140, 135, 144, 125, 141, 137, 143, 146, 131, 133, 134, 130, 135, 134, 152, 142, 135, 132, 121, 137, 134, 133, 146, 148, 127, 133, 132, 139, 129, 135, 138, 139, 142, 134, 163, 144, 129, 138, 136, 147, 137, 139, 146, 149, 131, 143, 141, 135, 125, 131, 136, 141, 139, 139, 139, 138, 143, 136, 133, 138, 134, 131, 146, 139, 137, 137, 141, 139, 135, 141, 138, 138, 141, 134, 145, 129, 141, 145, 134, 139, 137, 141, 144, 142, 133, 150, 138, 134, 139, 132, 138, 141, 133, 132, 137, 139, 137, 140, 140, 144, 131, 141, 138, 138, 144, 140, 144, 134, 136, 145, 129, 139, 144, 134, 143, 138, 146, 133, 133, 146, 124, 132, 136, 140, 134, 129, 140, 140, 133, 140, 130, 141, 138, 143, 130, 139, 138, 136, 138, 134, 142, 139, 140, 139, 145, 138, 146, 130, 139, 141, 143, 140, 139, 138, 137, 139, 134, 137, 129, 144, 133, 138, 131, 142, 141, 143, 137, 134, 133, 145, 133, 137, 136, 144, 139, 138, 143, 141, 140, 142, 139, 155, 144, 143, 136, 144, 141, 134, 138, 139, 140, 134, 148, 138, 133, 151, 135, 133, 141, 139, 134, 140, 138, 139, 137, 138, 137, 135, 143, 134, 146, 137, 139, 133, 135, 141, 140, 141, 135, 145, 133, 133, 130, 137, 128, 146, 138, 134, 144, 130, 141, 145, 137, 140, 137, 135, 140, 140, 138, 141, 137, 140, 140, 137, 139, 140, 143, 138, 133, 130, 135, 129, 137, 141, 141, 135, 134, 137, 135, 140, 130, 132, 137, 142, 136, 142, 146, 134, 140, 140, 144, 137, 135, 135, 115, 135, 129, 135, 136, 146, 139, 131, 136, 140, 129, 139, 135, 140, 143, 139, 132, 135, 136, 144, 140, 144, 144, 133, 142, 139, 141, 130, 143, 139, 139, 129, 138, 141, 137, 138, 139, 139, 137, 135, 143, 136, 137, 132, 149, 134, 136, 139, 137, 141, 141, 137, 141, 138, 137, 131, 137, 137, 135, 133, 134, 134, 131, 139, 132, 136, 138, 138, 148, 136, 136, 138, 138, 141, 138, 134, 136, 135, 131, 143, 135, 147, 131, 130, 141, 139, 142, 139, 145, 148, 143, 142, 148, 142, 145, 136, 131, 138, 139, 144, 144, 133, 144, 141, 140, 139, 138, 140, 134, 138, 140, 140, 142, 142, 153, 137, 139, 139, 133, 136, 139, 136, 136, 137, 140, 141, 145, 143, 132, 130, 138, 138, 139, 139, 145, 139, 136, 144, 138, 132, 139, 142, 136, 137, 139, 128, 137, 138, 133, 131, 132, 135, 141, 139, 141, 136, 142, 139, 140, 143, 135, 140, 143, 145, 133, 145, 139, 140, 144, 144, 143, 138, 135, 131, 138, 142, 144, 136, 146, 137, 133, 147, 136, 133, 142, 147, 139, 140, 147, 135, 137, 136, 139, 136, 132, 141, 140, 143, 138, 138, 140, 123, 134, 143, 147, 132, 150, 130, 136, 143, 133, 120, 132, 136, 140, 138, 140, 139, 139, 139, 140, 142, 142, 137, 143, 143, 136, 140, 138, 143, 141, 139, 141, 139, 141, 140, 138, 139, 138, 143, 136, 139, 140, 139, 132, 144, 137, 137, 135, 132, 132, 138, 133, 133, 145, 143, 143, 131, 140, 139, 144, 141, 140, 140, 139, 134, 146, 129, 149, 146, 140, 141, 142, 134, 147, 144, 138, 144, 134, 138, 143, 137, 136, 134, 136, 139, 133, 141, 138, 135, 144, 147, 133, 137, 143, 138, 144, 136, 144, 141, 137, 136, 132, 135, 138, 141, 143, 144, 146, 137, 143, 138, 139, 139, 137, 138, 138, 137, 138, 136, 143, 139, 143, 138, 140, 133, 132, 143, 140, 141, 129, 146, 135, 135, 140, 133, 134, 138, 140, 140, 136, 136, 152, 144, 135, 144, 141, 128, 147, 133, 137, 141, 135, 139, 140, 144, 139, 144, 139, 148, 141, 140, 143, 136, 137, 139, 134, 137, 156, 143, 135, 138, 146, 132, 136, 142, 136, 146, 143, 141, 130, 142, 139, 129, 141, 140, 138, 137, 139, 145, 138, 138, 136, 137, 149, 137, 139, 138, 139, 137, 141, 140, 142, 134, 138, 146, 136, 136, 136, 138, 147, 139, 140, 136, 146, 150, 135, 138, 146, 142, 142, 137, 139, 141, 137, 140, 143, 137, 145, 149, 133, 143, 141, 142, 137, 135, 133, 134, 135, 136, 134, 150, 139, 141, 144, 137, 149, 137, 142, 147, 138, 141, 142, 140, 136, 127, 138, 137, 134, 134, 140, 136, 145, 143, 139, 139, 139, 140, 141, 139, 141, 137, 135, 135, 136, 135, 134, 141, 139, 145, 142, 134, 135, 141, 142, 133, 140, 130, 133, 139, 135, 142, 139, 142, 144, 134, 137, 131, 138, 133, 141, 148, 136, 141, 139, 130, 132, 142, 136, 138, 134, 141, 134, 137, 142, 139, 141, 138, 145, 140, 137, 133, 140, 138, 137, 140, 145, 145, 137, 146, 134, 142, 137, 144, 135, 135, 139, 139, 146, 142, 139, 136, 142, 143, 134, 135, 142, 144, 142, 141, 129, 131, 139, 141, 138, 141, 138, 144, 136, 141, 143, 138, 134, 138, 143, 137, 139, 135, 137, 145, 138, 140, 137, 143, 133, 139, 135, 144, 137, 135, 146, 132, 140, 136, 135, 139, 144, 143, 138, 143, 141, 141, 140, 142, 141, 140, 139, 141, 128, 144, 143, 143, 138, 142, 136, 141, 152, 139, 140, 139, 146, 140, 138, 133, 140, 145, 138, 139, 140, 137, 132, 137, 137, 148, 135, 151, 142, 143, 139, 143, 139, 144, 140, 135, 147, 137, 141, 136, 144, 141, 138, 129, 139, 140, 138, 138, 130, 137, 138, 138, 135, 132, 137, 143, 145, 136, 137, 136, 140, 133, 135, 135, 137, 130, 139, 139, 140, 141, 142, 139, 131, 136, 137, 136, 140, 139, 133, 136, 140, 136, 139, 146, 141, 137, 138, 154, 145, 147, 138, 135, 147, 141, 135, 135, 138, 138, 135, 142, 137, 143, 142, 129, 133, 141, 134, 132, 134, 139, 136, 138, 125, 137, 139, 134, 133, 141, 141, 142, 142, 138, 144, 143, 135, 140, 145, 131, 136, 142, 140, 152, 139, 136, 151, 144, 137, 137, 143, 130, 140, 134, 133, 139, 142, 134, 136, 137, 137, 138, 141, 138, 135, 131, 138, 142, 140, 137, 139, 142, 140, 143, 149, 141, 134, 142, 141, 142, 143, 138, 138, 137, 135, 138, 139, 140, 136, 144, 137, 140, 140, 136, 137, 143, 143, 139, 139, 136, 142, 138, 135, 139, 144, 147, 141, 137, 145, 139, 142, 140, 135, 145, 144, 140, 145, 142, 139, 132, 138, 141, 139, 146, 143, 132, 138, 139, 144, 141, 137, 137, 134, 144, 137, 145, 151, 137, 139, 131, 136, 141, 137, 139, 131, 140, 144, 142, 139, 147, 134, 135, 144, 134, 142, 141, 139, 132, 137, 138, 139, 155, 137, 142, 137, 134, 152, 142, 136, 131, 141, 146, 145, 152, 139, 132, 141, 145, 141, 140, 138, 138, 134, 125, 120, 139, 131, 140, 144, 130, 130, 146, 140, 136, 140, 134, 132, 135, 142, 137, 140, 144, 137, 136, 138, 143, 132, 139, 153, 145, 139, 138, 136, 133, 143, 138, 144, 143, 140, 145, 131, 139, 140, 144, 145, 141, 138, 146, 131, 139, 141, 143, 143, 150, 137, 137, 136, 139, 145, 133, 129, 137, 135, 135, 133, 146, 138, 143, 136, 140, 139, 137, 144, 143, 144, 125, 138, 143, 138, 143, 136, 147, 137, 141, 128, 136, 142, 142, 134, 138, 139, 140, 131, 147, 141, 143, 141, 144, 137, 146, 137, 149, 135, 147, 144, 134, 143, 140, 142, 149, 141, 128, 138, 136, 142, 137, 140, 133, 142, 147, 149, 136, 138, 136, 143, 145, 143, 142, 142, 138, 139, 145, 140, 133, 143, 136, 150, 140, 137, 143, 133, 131, 141, 145, 143, 136, 138, 136, 143, 138, 143, 136, 135, 144, 142, 138, 137, 129, 136, 142, 129, 137, 139, 129, 131, 142, 143, 139, 143, 141, 136, 144, 140, 137, 138, 141, 140, 139, 141, 135, 144, 136, 136, 131, 144, 133, 140, 141, 135, 146, 136, 136, 135, 131, 127, 134, 147, 143, 148, 134, 135, 143, 133, 140, 142, 132, 129, 140, 138, 141, 144, 142, 151, 138, 135, 139, 134, 141, 145, 137, 136, 137, 146, 138, 143, 135, 140, 122, 135, 141, 143, 135, 138, 153, 136, 142, 141, 135, 137, 146, 136, 138, 145, 133, 139, 134, 145, 135, 140, 143, 134, 139, 131, 143, 136, 138, 134, 140, 140, 137, 140, 142, 134, 139, 146, 143, 140, 145, 139, 133, 141, 127, 147, 138, 138, 137, 137, 142, 140, 145, 136, 141, 144, 150, 139, 138, 138, 138, 131, 138, 145, 134, 140, 138, 139, 140, 143, 131, 139, 148, 136, 142, 143, 134, 151, 133, 139, 137, 132, 138, 133, 140, 136, 142, 138, 138, 137, 137, 134, 141, 143, 141, 141, 144, 142, 137, 135, 141, 144, 133, 139, 123, 137, 136, 136, 131, 145, 140, 138, 133, 137, 136, 134, 137, 138, 145, 137, 134, 140, 137, 142, 137, 140, 144, 132, 142, 154, 132, 139, 135, 139, 136, 147, 145, 142, 137, 136, 131, 137, 146, 139, 142, 148, 128, 138, 139, 136, 141, 143, 144, 140, 136, 136, 140, 140, 134, 133, 137, 144, 137, 138, 142, 142, 134, 140, 147, 139, 142, 149, 139, 134, 141, 146, 129, 140, 133, 123, 143, 132, 140, 137, 133, 135, 141, 134, 143, 130, 140, 135, 138, 132, 138, 132, 137, 138, 145, 137, 135, 140, 140, 142, 140, 146, 138, 140, 128, 131, 140, 136, 139, 137, 143, 141, 133, 132, 137, 138, 141, 143, 142, 132, 146, 136, 135, 141, 132, 136, 137, 140, 138, 142, 131, 134, 137, 147, 137, 149, 134, 139, 155, 153, 150, 136, 143, 141, 139, 135, 133, 131, 137, 152, 146, 135, 147, 134, 133, 135, 137, 134, 133, 139, 127, 141, 154, 140, 140, 129, 135, 136, 146, 138, 139, 143, 127, 137, 149, 152, 128, 140, 138, 142, 143, 136, 145, 144, 139, 148, 133, 138, 124, 139, 145, 142, 131, 141, 139, 130, 150, 137, 143, 133, 142, 136, 134, 137, 146, 149, 138, 142, 138, 141, 151, 144, 128, 139, 137, 135, 141, 135, 144, 125, 137, 139, 143, 131, 134, 141, 144, 146, 133, 129, 132, 150, 146, 136, 132, 140, 153, 143, 163, 134, 128, 138, 141, 141, 146, 129, 139, 140, 141, 141, 140, 141, 140, 139, 138, 141, 143, 145, 143, 133, 152, 131, 136, 128, 134, 131, 143, 142, 134, 135, 133, 144, 140, 137, 140, 147, 137, 141, 130, 140, 145, 134, 145, 144, 145, 143, 134, 141, 134, 140, 129, 140, 134, 137, 145, 143, 137, 154, 144, 155, 138, 137, 131, 144, 141, 138, 146, 146, 142, 130, 138, 134, 138, 151, 141, 138, 153, 136, 131, 139, 133, 142, 138, 140, 138, 139, 141, 136, 136, 145, 139, 143, 143, 147, 143, 134, 139, 143, 135, 142, 129, 141, 130, 139, 142, 136, 139, 133, 142, 134, 132, 141, 143, 143, 141, 134, 150, 127, 139, 144, 144, 138, 141, 138, 141, 134, 141, 146, 133, 135, 131, 147, 138, 139, 150, 144, 143, 140, 135, 139, 138, 132, 131, 146, 142, 144, 133, 146, 141, 133, 137, 138, 125, 129, 142, 143, 140, 132, 139, 130, 127, 142, 142, 139, 146, 140, 141, 136, 134, 151, 137, 137, 132, 141, 141, 141, 145, 127, 139, 142, 149, 136, 138, 138, 141, 139, 129, 139, 141, 128, 136, 147, 151, 121, 136, 121, 137, 134, 135, 149, 137, 136, 126, 135, 141, 142, 151, 129, 145, 140, 131, 146, 135, 153, 140, 149, 141, 143, 147, 134, 128, 142, 140, 141, 143, 141, 134, 143, 147, 151, 140, 129, 131, 143, 143, 134, 133, 149, 131, 136, 133, 136, 129, 135, 144, 141, 139, 138, 152, 141, 141, 146, 136, 139, 140, 137, 138, 144, 139, 144, 141, 135, 131, 139, 134, 138, 144, 134, 126, 141, 138, 142, 129, 139, 144, 137, 139, 129, 133, 138, 145, 138, 145, 141, 138, 142, 142, 133, 135, 123, 129, 139, 143, 135, 135, 145, 147, 126, 133, 142, 148, 135, 131, 135, 140, 137, 141, 150, 138, 152, 141, 139, 137, 145, 137, 135, 144, 131, 148, 143, 136, 136, 129, 140, 149, 127, 147, 141, 144, 145, 142, 130, 142, 143, 144, 136, 139, 143, 138, 130, 139, 141, 140, 140, 144, 147, 143, 139, 138, 131, 137, 127, 124, 142, 143, 149, 135, 139, 141, 138, 142, 139, 141, 132, 132, 129, 141, 136, 137, 141, 142, 132, 141, 146, 138, 146, 135, 138, 140, 149, 136, 128, 144, 133, 132, 143, 138, 137, 130, 139, 142, 126, 141, 142, 132, 137, 140, 138, 130, 143, 154, 139, 138, 142, 140, 148, 137, 132, 138, 145, 135, 136, 141, 138, 138, 140, 139, 132, 140, 141, 129, 143, 141, 143, 144, 149, 141, 141, 145, 139, 140, 137, 141, 144, 139, 140, 136, 143, 139, 141, 147, 139, 140, 143, 143, 143, 142, 146, 142, 141, 141, 142, 140, 134, 135, 139, 140, 140, 144, 136, 139, 135, 138, 137, 134, 143, 138, 144, 138, 139, 139, 140, 145, 143, 139, 137, 140, 141, 146, 140, 136, 140, 132, 139, 138, 135, 135, 136, 137, 133, 139, 138, 138, 140, 136, 139, 130, 129, 142, 143, 139, 137, 143, 141, 146, 139, 138, 135, 138, 143, 146, 139, 140, 143, 141, 140, 138, 142, 134, 135, 138, 139, 133, 137, 137, 140, 140, 142, 143, 137, 136, 135, 134, 133, 136, 133, 138, 138, 141, 136, 134, 147, 132, 139, 142, 136, 134, 136, 141, 140, 139, 138, 139, 139, 141, 134, 134, 140, 144, 140, 136, 139, 138, 142, 136, 138, 141, 145, 140, 137, 146, 142, 142, 133, 138, 133, 139, 143, 142, 138, 143, 139, 139, 142, 137, 144, 134, 135, 142, 142, 139, 135, 137, 139, 150, 142, 138, 138, 138, 139, 141, 138, 134, 137, 134, 139, 141, 140, 141, 138, 132, 139, 133, 135, 145, 133, 135, 139, 136, 134, 138, 137, 135, 139, 142, 140, 144, 137, 141, 139, 148, 138, 139, 142, 137, 141, 140, 139, 143, 138, 135, 145, 145, 142, 142, 140, 147, 142, 137, 131, 136, 137, 142, 140, 138, 135, 133, 137, 133, 140, 136, 145, 143, 146, 137, 142, 146, 138, 139, 142, 138, 137, 141, 142, 140, 143, 139, 136, 137, 137, 128, 137, 137, 140, 138, 144, 134, 141, 137, 130, 138, 135, 139, 143, 130, 138, 148, 139, 138, 138, 146, 135, 140, 133, 144, 141, 145, 134, 143, 143, 137, 141, 142, 136, 137, 144, 140, 137, 143, 136, 148, 144, 140, 145, 137, 143, 133, 140, 138, 143, 141, 140, 142, 138, 139, 140, 146, 142, 135, 140, 140, 135, 142, 137, 143, 142, 134, 138, 138, 149, 144, 140, 149, 142, 137, 136, 139, 140, 143, 141, 142, 139, 136, 135, 140, 134, 136, 139, 143, 142, 138, 140, 135, 140, 141, 131, 133, 135, 137, 143, 143, 141, 143, 136, 139, 141, 145, 138, 133, 138, 138, 144, 144, 138, 140, 141, 131, 147, 138, 136, 132, 134, 144, 136, 144, 136, 138, 142, 138, 136, 141, 161, 136, 136, 138, 139, 134, 138, 138, 140, 141, 142, 144, 144, 143, 135, 135, 135, 146, 139, 137, 141, 139, 141, 138, 136, 143, 137, 137, 142, 147, 140, 136, 141, 145, 139, 135, 143, 145, 143, 131, 139, 136, 137, 140, 134, 144, 138, 141, 143, 143, 145, 140, 143, 137, 143, 142, 140, 138, 139, 142, 138, 145, 141, 140, 140, 138, 137, 137, 140, 142, 143, 137, 138, 141, 135, 137, 141, 136, 139, 137, 143, 138, 144, 141, 140, 139, 139, 138, 139, 137, 137, 142, 135, 146, 138, 144, 146, 136, 133, 133, 141, 137, 138, 145, 138, 145, 138, 141, 144, 132, 137, 142, 137, 138, 143, 139, 132, 137, 142, 142, 138, 142, 140, 147, 137, 134, 130, 135, 140, 133, 137, 136, 145, 132, 138, 137, 140, 136, 133, 137, 135, 135, 141, 141, 139, 138, 145, 136, 141, 140, 143, 137, 143, 139, 139, 128, 140, 146, 141, 144, 146, 134, 134, 127, 137, 140, 138, 148, 129, 150, 137, 147, 139, 132, 135, 141, 140, 137, 139, 142, 138, 138, 153, 142, 140, 140, 140, 134, 135, 139, 132, 137, 152, 135, 135, 146, 132, 124, 127, 141, 143, 138, 136, 141, 138, 134, 141, 134, 131, 133, 138, 142, 136, 143, 144, 138, 140, 133, 148, 145, 151, 141, 139, 133, 136, 143, 136, 137, 120, 141, 142, 137, 137, 138, 143, 134, 141, 141, 126, 131, 135, 130, 132, 136, 147, 130, 151, 136, 140, 144, 140, 139, 139, 129, 132, 135, 142, 141, 144, 145, 132, 135, 140, 126, 140, 137, 139, 134, 133, 138, 150, 149, 137, 140, 139, 132, 130, 143, 139, 146, 138, 132, 152, 132, 145, 132, 136, 136, 141, 143, 142, 139, 141, 133, 144, 138, 140, 145, 147, 142, 142, 142, 135, 145, 136, 135, 143, 144, 143, 139, 134, 134, 146, 151, 142, 137, 144, 130, 141, 142, 149, 141, 139, 132, 137, 134, 128, 153, 142, 126, 138, 147, 138, 141, 133, 138, 142, 139, 140, 139, 136, 140, 143, 135, 151, 140, 132, 145, 148, 143, 131, 131, 145, 140, 139, 133, 140, 138, 138, 134, 138, 126, 138, 135, 133, 132, 144, 141, 140, 138, 138, 135, 140, 137, 139, 141, 136, 133, 131, 140, 140, 129, 146, 136, 137, 141, 141, 136, 139, 148, 142, 139, 138, 137, 134, 139, 135, 139, 132, 140, 138, 141, 146, 143, 144, 145, 130, 143, 153, 144, 148, 135, 136, 139, 144, 141, 139, 133, 140, 134, 131, 134, 133, 140, 145, 136, 135, 137, 137, 141, 134, 131, 141, 140, 140, 139, 122, 143, 134, 139, 141, 138, 139, 134, 131, 141, 135, 136, 131, 143, 140, 144, 139, 150, 137, 140, 140, 131, 139, 138, 141, 133, 142, 151, 129, 144, 135, 133, 134, 138, 141, 133, 137, 145, 139, 137, 139, 146, 134, 136, 140, 138, 144, 135, 126, 151, 132, 135, 139, 138, 138, 136, 143, 141, 134, 139, 137, 150, 138, 146, 137, 126, 139, 140, 148, 142, 141, 136, 145, 133, 140, 151, 138, 137, 138, 141, 147, 125, 135, 132, 142, 136, 140, 143, 138, 130, 136, 123, 139, 134, 137, 136, 144, 145, 137, 129, 138, 141, 130, 146, 139, 141, 135, 140, 137, 143, 130, 146, 135, 145, 143, 136, 137, 138, 139, 143, 133, 146, 141, 147, 135, 139, 130, 146, 148, 136, 139, 135, 145, 131, 148, 133, 132, 139, 134, 142, 145, 130, 133, 136, 138, 148, 134, 148, 143, 131, 141, 137, 135, 142, 133, 149, 139, 138, 135, 137, 142, 134, 143, 135, 136, 140, 139, 142, 133, 132, 140, 141, 149, 143, 145, 134, 140, 142, 136, 138, 135, 142, 135, 135, 151, 137, 139, 140, 146, 138, 141, 138, 142, 146, 137, 150, 140, 140, 137, 148, 138, 132, 138, 138, 141, 139, 141, 134, 139, 127, 141, 147, 142, 138, 148, 130, 138, 142, 138, 145, 141, 135, 138, 131, 136, 141, 138, 124, 136, 143, 130, 136, 142, 145, 137, 140, 136, 134, 142, 136, 143, 138, 138, 145, 128, 134, 133, 132, 141, 136, 142, 134, 140, 131, 146, 131, 140, 146, 143, 137, 145, 139, 134, 135, 136, 143, 137, 128, 142, 134, 133, 135, 138, 140, 141, 141, 147, 132, 139, 149, 141, 139, 133, 136, 130, 155, 145, 131, 134, 142, 143, 146, 145, 137, 134, 140, 147, 148, 137, 138, 133, 133, 129, 134, 131, 140, 130, 133, 146, 129, 146, 128, 140, 144, 132, 143, 126, 132, 144, 139, 140, 144, 148, 137, 137, 135, 137, 138, 134, 144, 144, 149, 135, 148, 164, 137, 137, 127, 128, 140, 128, 135, 135, 142, 139, 137, 147, 148, 129, 138, 131, 142, 134, 145, 138, 144, 140, 139, 137, 140, 139, 139, 139, 139, 142, 139, 145, 135, 138, 133, 149, 141, 139, 138, 133, 143, 139, 136, 146, 139, 141, 150, 139, 139, 150, 136, 139, 145, 146, 140, 141, 139, 135, 137, 142, 134, 143, 132, 140, 138, 153, 139, 141, 129, 130, 127, 138, 137, 141, 133, 137, 138, 137, 142, 132, 141, 142, 149, 141, 129, 143, 131, 130, 138, 138, 142, 133, 142, 135, 140, 136, 136, 143, 137, 139, 142, 129, 137, 130, 132, 141, 139, 142, 135, 139, 140, 129, 139, 132, 152, 139, 144, 142, 137, 138, 139, 146, 140, 140, 149, 132, 141, 144, 136, 138, 136, 138, 136, 144, 141, 136, 144, 134, 144, 126, 139, 134, 135, 137, 142, 134, 141, 136, 143, 142, 143, 144, 135, 145, 137, 138, 150, 142, 140, 139, 145, 130, 139, 136, 144, 139, 141, 141, 136, 137, 141, 138, 140, 133, 142, 134, 146, 122, 136, 139, 144, 140, 142, 147, 140, 139, 141, 139, 139, 137, 144, 132, 141, 136, 131, 135, 142, 137, 127, 143, 141, 135, 142, 141, 135, 137, 140, 136, 143, 126, 152, 138, 139, 142, 136, 130, 144, 137, 136, 129, 141, 140, 137, 143, 142, 137, 137, 130, 139, 152, 137, 139, 130, 129, 141, 141, 139, 143, 142, 141, 144, 151, 139, 138, 137, 140, 141, 141, 140, 141, 140, 131, 135, 138, 138, 137, 142, 138, 140, 141, 132, 145, 136, 139, 137, 138, 134, 130, 139, 132, 136, 139, 136, 135, 143, 132, 132, 140, 137, 143, 136, 143, 137, 143, 132, 130, 143, 148, 143, 147, 145, 140, 147, 141, 136, 140, 134, 144, 135, 146, 134, 140, 129, 139, 138, 141, 132, 139, 136, 127, 140, 153, 143, 141, 139, 120, 129, 126, 144, 133, 136, 133, 137, 153, 141, 137, 137, 151, 140, 147, 132, 138, 145, 142, 140, 136, 136, 141, 129, 148, 141, 135, 125, 132, 138, 142, 139, 131, 150, 132, 144, 145, 135, 136, 146, 139, 142, 138, 142, 136, 134, 142, 145, 139, 135, 144, 132, 141, 146, 138, 139, 143, 144, 139, 132, 143, 143, 137, 141, 134, 137, 138, 135, 134, 139, 133, 149, 135, 135, 148, 138, 147, 135, 136, 138, 148, 152, 133, 136, 141, 137, 133, 133, 130, 139, 145, 143, 140, 153, 146, 132, 136, 130, 139, 142, 136, 136, 141, 140, 141, 133, 133, 139, 136, 142, 137, 135, 131, 130, 133, 140, 140, 145, 145, 135, 144, 136, 141, 133, 135, 142, 141, 137, 136, 132, 142, 140, 134, 144, 137, 143, 133, 134, 139, 138, 128, 142, 133, 141, 137, 138, 141, 138, 135, 128, 133, 143, 144, 154, 128, 139, 140, 140, 143, 139, 132, 142, 137, 138, 141, 134, 147, 128, 135, 146, 139, 135, 147, 154, 134, 137, 142, 133, 139, 132, 137, 139, 137, 139, 140, 132, 139, 136, 136, 151, 130, 140, 147, 127, 149, 143, 126, 135, 133, 132, 130, 139, 134, 137, 147, 129, 141, 134, 142, 138, 142, 135, 136, 145, 128, 135, 131, 139, 141, 156, 142, 141, 136, 144, 138, 138, 137, 135, 151, 138, 144, 140, 133, 140, 141, 134, 149, 132, 148, 145, 134, 146, 134, 146, 138, 141, 136, 130, 131, 140, 137, 137, 134, 130, 140, 138, 143, 137, 133, 145, 136, 130, 139, 139, 137, 146, 150, 135, 146, 134, 146, 145, 132, 137, 135, 138, 136, 135, 145, 141, 140, 141, 138, 135, 136, 130, 147, 132, 140, 128, 141, 135, 135, 155, 136, 135, 145, 138, 136, 132, 143, 133, 137, 143, 139, 124, 153, 136, 138, 140, 148, 134, 136, 156, 133, 144, 124, 138, 139, 136, 134, 144, 133, 149, 137, 139, 139, 143, 150, 134, 146, 149, 145, 146, 141, 138, 138, 146, 140, 139, 143, 142, 138, 134, 144, 146, 138, 136, 142, 141, 132, 142, 132, 151, 141, 131, 141, 135, 148, 137, 143, 130, 143, 137, 148, 141, 134, 147, 142, 139, 139, 138, 145, 137, 134, 137, 139, 131, 137, 140, 142, 150, 135, 140, 134, 133, 138, 145, 142, 138, 131, 136, 142, 141, 140, 132, 153, 144, 137, 128, 151, 145, 154, 136, 143, 135, 133, 144, 132, 140, 135, 143, 137, 142, 143, 131, 142, 140, 139, 145, 141, 137, 130, 139, 139, 133, 137, 142, 135, 144, 135, 137, 145, 139, 142, 138, 134, 136, 134, 131, 148, 144, 122, 135, 141, 140, 136, 140, 138, 129, 137, 126, 134, 148, 139, 125, 132, 136, 141, 150, 139, 140, 133, 133, 135, 139, 137, 140, 138, 130, 132, 143, 144, 135, 133, 135, 139, 149, 140, 138, 137, 130, 134, 134, 146, 131, 136, 140, 136, 145, 144, 139, 144, 140, 133, 139, 142, 137, 137, 144, 137, 136, 142, 133, 144, 137, 135, 136, 149, 137, 131, 135, 139, 138, 140, 133, 124, 137, 133, 139, 139, 139, 138, 145, 145, 136, 149, 133, 142, 141, 140, 140, 137, 137, 139, 136, 146, 146, 140, 150, 138, 134, 146, 141, 133, 133, 138, 132, 144, 133, 140, 138, 133, 126, 140, 136, 137, 146, 137, 131, 144, 140, 140, 140, 141, 143, 139, 142, 136, 134, 141, 135, 150, 135, 140, 145, 140, 143, 153, 146, 136, 135, 132, 144, 143, 134, 136, 140, 144, 140, 142, 138, 139, 133, 147, 136, 142, 143, 135, 136, 138, 139, 135, 128, 137, 137, 137, 144, 144, 141, 132, 135, 139, 136, 135, 144, 135, 146, 134, 143, 140, 140, 146, 142, 137, 135, 147, 135, 140, 137, 138, 135, 149, 138, 138, 146, 135, 139, 134, 147, 142, 139, 139, 141, 134, 124, 136, 141, 136, 150, 144, 142, 141, 140, 138, 139, 137, 139, 120, 138, 129, 142, 134, 137, 136, 132, 134, 137, 135, 132, 142, 139, 137, 142, 127, 142, 139, 140, 140, 129, 136, 135, 136, 139, 136, 140, 136, 134, 131, 143, 146, 142, 136, 135, 140, 134, 136, 135, 139, 144, 143, 138, 148, 139, 139, 145, 141, 140, 137, 136, 137, 137, 133, 135, 137, 138, 133, 144, 146, 136, 131, 146, 129, 134, 137, 152, 135, 140, 138, 141, 143, 132, 145, 139, 134, 148, 135, 136, 134, 136, 144, 134, 135, 135, 146, 142, 142, 137, 144, 128, 139, 143, 139, 147, 137, 141, 138, 133, 140, 137, 135, 131, 143, 140, 128, 140, 138, 136, 131, 140, 129, 137, 136, 145, 137, 141, 143, 135, 135, 142, 137, 161, 136, 136, 139, 138, 145, 142, 144, 143, 123, 140, 136, 130, 135, 139, 134, 142, 138, 135, 136, 140, 139, 143, 137, 142, 129, 136, 142, 130, 134, 144, 135, 145, 150, 146, 140, 140, 140, 138, 140, 143, 141, 137, 135, 137, 141, 130, 135, 135, 140, 137, 140, 136, 139, 127, 145, 144, 142, 137, 140, 136, 142, 137, 139, 150, 143, 132, 136, 133, 145, 156, 140, 136, 135, 134, 133, 138, 133, 132, 144, 126, 141, 137, 142, 134, 138, 135, 136, 135, 135, 131, 140, 137, 132, 141, 142, 131, 142, 131, 134, 145, 139, 146, 140, 140, 147, 134, 141, 142, 137, 143, 142, 138, 135, 145, 134, 135, 139, 137, 147, 134, 143, 140, 137, 138, 127, 141, 150, 138, 142, 144, 139, 140, 143, 136, 140, 139, 137, 137, 139, 145, 144, 148, 141, 135, 139, 137, 145, 137, 141, 139, 132, 136, 146, 137, 142, 142, 142, 136, 141, 132, 145, 134, 142, 138, 141, 139, 140, 139, 144, 131, 132, 144, 137, 134, 144, 146, 141, 145, 142, 143, 142, 144, 140, 138, 138, 143, 145, 143, 136, 142, 139, 136, 136, 138, 134, 139, 140, 134, 141, 131, 142, 132, 146, 132, 146, 134, 145, 139, 141, 134, 136, 128, 132, 129, 141, 133, 142, 137, 142, 138, 135, 132, 137, 132, 139, 132, 135, 147, 134, 137, 139, 148, 139, 135, 140, 136, 140, 138, 130, 146, 141, 137, 139, 134, 147, 133, 139, 134, 134, 133, 134, 142, 138, 137, 142, 118, 124, 137, 149, 132, 134, 135, 139, 137, 125, 128, 137, 138, 137, 144, 143, 142, 133, 138, 133, 136, 136, 141, 137, 136, 141, 135, 134, 139, 137, 139, 145, 138, 144, 141, 133, 142, 142, 136, 138, 149, 148, 136, 134, 134, 142, 135, 141, 139, 135, 135, 136, 136, 140, 133, 135, 144, 144, 133, 140, 135, 138, 137, 135, 143, 136, 140, 142, 140, 138, 141, 136, 140, 140, 135, 144, 144, 148, 146, 138, 146, 138, 136, 143, 142, 142, 141, 138, 136, 140, 135, 138, 140, 138, 135, 139, 141, 140, 133, 143, 135, 139, 144, 141, 132, 133, 141, 137, 138, 137, 135, 139, 143, 135, 143, 134, 130, 140, 134, 139, 140, 144, 134, 144, 135, 138, 134, 141, 139, 141, 138, 129, 143, 149, 136, 138, 132, 143, 133, 138, 141, 140, 135, 145, 138, 144, 147, 144, 137, 137, 139, 131, 145, 138, 143, 139, 140, 138, 140, 143, 140, 141, 134, 140, 138, 140, 142, 143, 135, 140, 135, 138, 141, 143, 138, 144, 133, 146, 139, 136, 141, 137, 147, 136, 133, 135, 138, 148, 137, 131, 137, 140, 143, 144, 140, 136, 133, 145, 140, 136, 138, 144, 137, 145, 142, 140, 140, 130, 142, 134, 142, 134, 138, 141, 141, 148, 139, 141, 140, 139, 139, 132, 129, 135, 139, 142, 144, 145, 136, 140, 143, 139, 135, 142, 144, 150, 139, 142, 138, 138, 135, 138, 138, 147, 129, 129, 140, 132, 125, 142, 135, 136, 138, 136, 141, 135, 140, 140, 144, 139, 134, 134, 139, 138, 141, 144, 133, 137, 142, 138, 140, 133, 135, 134, 141, 140, 144, 140, 136, 139, 139, 136, 138, 134, 136, 137, 142, 141, 137, 144, 132, 152, 132, 144, 141, 139, 132, 143, 133, 136, 145, 131, 138, 136, 137, 136, 135, 147, 136, 142, 136, 143, 142, 140, 133, 140, 140, 136, 138, 137, 136, 140, 142, 134, 130, 140, 141, 138, 139, 137, 142, 139, 139, 141, 138, 135, 137, 138, 140, 136, 141, 136, 144, 144, 137, 138, 134, 137, 143, 143, 135, 136, 134, 137, 146, 148, 140, 139, 138, 142, 133, 144, 137, 137, 145, 143, 137, 131, 139, 142, 144, 137, 142, 136, 135, 137, 140, 133, 135, 137, 138, 142, 139, 145, 148, 137, 140, 142, 140, 138, 133, 142, 130, 137, 139, 160, 142, 142, 134, 143, 143, 141, 139, 135, 142, 145, 140, 144, 136, 142, 138, 141, 135, 142, 135, 138, 135, 141, 140, 143, 144, 139, 135, 139, 143, 137, 141, 142, 143, 135, 143, 130, 139, 141, 132, 136, 134, 133, 140, 137, 140, 136, 143, 147, 135, 149, 134, 137, 136, 135, 141, 138, 137, 146, 148, 132, 144, 139, 137, 146, 137, 131, 136, 141, 137, 139, 138, 132, 142, 141, 142, 135, 146, 132, 142, 135, 133, 136, 131, 137, 141, 131, 141, 137, 143, 136, 145, 139, 142, 140, 147, 141, 139, 139, 139, 134, 137, 139, 140, 140, 130, 133, 135, 134, 134, 142, 140, 142, 141, 140, 144, 141, 145, 141, 132, 141, 130, 146, 142, 136, 141, 133, 143, 146, 135, 133, 139, 135, 141, 130, 139, 137, 137, 138, 141, 148, 125, 144, 139, 131, 132, 139, 139, 138, 131, 137, 138, 137, 140, 141, 140, 136, 137, 135, 139, 145, 144, 136, 134, 141, 144, 139, 129, 143, 137, 138, 140, 136, 139, 140, 144, 145, 137, 138, 135, 146, 136, 136, 139, 135, 135, 139, 141, 139, 138, 126, 142, 140, 147, 142, 140, 137, 138, 141, 136, 134, 145, 135, 140, 141, 142, 137, 140, 137, 142, 141, 137, 138, 140, 147, 134, 136, 140, 144, 145, 144, 137, 142, 138, 143, 145, 141, 135, 145, 140, 137, 136, 138, 144, 137, 140, 135, 133, 139, 141, 132, 141, 137, 143, 141, 144, 135, 142, 133, 136, 140, 143, 140, 131, 134, 138, 133, 147, 135, 144, 134, 139, 148, 135, 138, 139, 139, 137, 137, 139, 136, 137, 137, 130, 130, 136, 138, 141, 148, 137, 141, 144, 140, 139, 138, 141, 133, 139, 138, 141, 133, 139, 139, 141, 137, 135, 141, 147, 142, 141, 139, 140, 136, 139, 149, 137, 139, 144, 143, 134, 144, 138, 132, 131, 139, 138, 138, 140, 140, 136, 138, 142, 141, 138, 140, 139, 142, 139, 129, 147, 142, 145, 143, 140, 136, 143, 143, 135, 133, 143, 138, 140, 132, 136, 142, 141, 139, 134, 141, 134, 138, 137, 137, 134, 137, 149, 141, 143, 139, 141, 135, 136, 137, 132, 136, 135, 138, 140, 136, 136, 137, 143, 145, 135, 145, 146, 140, 143, 143, 144, 138, 141, 142, 139, 138, 133, 142, 139, 145, 143, 132, 140, 140, 144, 140, 137, 145, 137, 142, 139, 137, 133, 146, 130, 139, 149, 138, 137, 135, 136, 139, 139, 138, 141, 141, 143, 140, 140, 132, 143, 134, 141, 144, 144, 136, 144, 139, 141, 139, 140, 142, 137, 139, 140, 134, 141, 141, 138, 142, 138, 139, 142, 143, 139, 139, 139, 136, 142, 137, 138, 141, 147, 137, 137, 130, 141, 141, 145, 146, 135, 145, 141, 145, 134, 139, 141, 145, 135, 136, 140, 140, 137, 130, 139, 142, 133, 148, 137, 136, 144, 142, 134, 143, 139, 144, 140, 141, 137, 139, 143, 136, 138, 142, 144, 142, 139, 144, 139, 143, 141, 135, 147, 150, 135, 133, 138, 142, 137, 139, 139, 138, 140, 138, 140, 136, 137, 138, 133, 144, 143, 139, 133, 140, 144, 138, 142, 137, 137, 145, 143, 142, 141, 140, 136, 139, 134, 129, 138, 129, 137, 139, 142, 146, 141, 139, 139, 142, 142, 146, 136, 138, 139, 142, 141, 138, 134, 137, 143, 138, 143, 138, 139, 133, 135, 138, 145, 143, 136, 140, 144, 143, 134, 138, 143, 136, 146, 138, 136, 139, 144, 139, 140, 140, 140, 144, 146, 139, 134, 139, 143, 142, 143, 139, 137, 131, 138, 138, 143, 140, 146, 138, 141, 135, 145, 142, 137, 145, 133, 136, 139, 136, 137, 145, 142, 141, 132, 141, 135, 134, 140, 137, 138, 139, 134, 141, 142, 139, 136, 145, 134, 133, 137, 140, 142, 139, 142, 147, 139, 140, 137, 137, 142, 137, 146, 140, 140, 142, 147, 143, 142, 140, 139, 140, 139, 138, 137, 137, 139, 135, 145, 149, 135, 132, 142, 140, 140, 146, 149, 141, 129, 133, 133, 146, 146, 143, 126, 137, 149, 137, 140, 142, 141, 143, 138, 147, 138, 138, 142, 144, 144, 141, 139, 151, 139, 132, 142, 148, 144, 140, 140, 148, 138, 145, 146, 139, 133, 131, 130, 140, 151, 138, 145, 133, 148, 143, 135, 145, 138, 133, 155, 144, 135, 145, 135, 146, 141, 132, 156, 143, 137, 136, 135, 144, 134, 147, 137, 146, 134, 140, 144, 140, 143, 138, 139, 138, 144, 133, 141, 140, 150, 143, 132, 142, 136, 133, 133, 134, 152, 132, 142, 127, 132, 147, 139, 137, 152, 134, 147, 138, 133, 146, 141, 129, 139, 132, 145, 145, 131, 138, 143, 141, 133, 146, 140, 141, 127, 134, 133, 139, 144, 142, 148, 138, 146, 141, 123, 153, 135, 150, 147, 146, 153, 136, 131, 143, 138, 144, 142, 134, 135, 134, 147, 143, 141, 146, 141, 134, 136, 144, 128, 138, 149, 136, 135, 139, 147, 139, 146, 143, 133, 128, 144, 136, 135, 136, 133, 142, 137, 143, 135, 142, 137, 133, 141, 133, 133, 135, 136, 145, 136, 133, 135, 138, 135, 136, 141, 143, 144, 148, 131, 136, 136, 138, 142, 137, 131, 129, 123, 142, 141, 130, 133, 144, 138, 136, 143, 137, 150, 139, 140, 141, 145, 144, 147, 140, 138, 135, 140, 132, 145, 147, 137, 150, 130, 143, 148, 145, 129, 142, 142, 142, 136, 138, 138, 137, 134, 130, 142, 132, 142, 142, 133, 141, 137, 133, 151, 140, 128, 132, 142, 137, 145, 135, 134, 135, 141, 134, 131, 134, 133, 138, 143, 142, 128, 132, 150, 146, 141, 143, 140, 134, 135, 140, 147, 139, 141, 135, 150, 134, 139, 136, 140, 147, 139, 137, 136, 140, 135, 136, 141, 141, 134, 147, 145, 138, 144, 139, 152, 135, 135, 141, 143, 135, 139, 146, 140, 141, 143, 151, 128, 135, 129, 139, 147, 138, 135, 140, 141, 135, 141, 141, 132, 142, 132, 136, 150, 143, 142, 125, 155, 137, 147, 136, 142, 138, 136, 139, 136, 131, 146, 141, 132, 139, 139, 137, 141, 141, 128, 133, 133, 141, 148, 131, 143, 142, 141, 143, 139, 140, 132, 142, 129, 136, 137, 147, 145, 143, 143, 137, 143, 141, 140, 137, 137, 142, 140, 136, 137, 136, 124, 136, 139, 134, 126, 135, 134, 140, 136, 131, 141, 139, 133, 141, 152, 130, 150, 146, 138, 139, 133, 137, 140, 144, 139, 149, 132, 138, 139, 137, 141, 138, 142, 138, 144, 134, 141, 123, 148, 138, 142, 136, 145, 138, 143, 147, 147, 133, 143, 154, 146, 131, 130, 142, 137, 149, 134, 139, 137, 140, 135, 137, 140, 139, 143, 134, 136, 138, 144, 141, 129, 152, 134, 143, 140, 146, 150, 141, 144, 138, 148, 131, 152, 135, 129, 135, 143, 130, 145, 135, 130, 135, 142, 149, 149, 137, 145, 140, 141, 148, 139, 137, 146, 139, 131, 133, 145, 145, 145, 138, 144, 138, 140, 129, 128, 136, 143, 117, 138, 137, 149, 140, 135, 147, 140, 139, 135, 143, 143, 139, 140, 135, 138, 146, 136, 140, 142, 134, 129, 134, 139, 142, 143, 137, 135, 137, 142, 139, 148, 139, 143, 143, 143, 134, 140, 122, 134, 142, 132, 140, 134, 135, 145, 140, 147, 146, 140, 136, 141, 138, 134, 137, 140, 145, 135, 144, 135, 130, 133, 134, 138, 134, 142, 130, 139, 131, 147, 135, 142, 139, 143, 135, 136, 138, 138, 145, 132, 133, 146, 138, 139, 141, 147, 135, 145, 136, 141, 136, 143, 136, 129, 145, 148, 137, 124, 140, 140, 142, 140, 139, 135, 142, 140, 133, 137, 141, 141, 133, 152, 138, 137, 141, 139, 142, 141, 138, 136, 141, 142, 144, 138, 147, 134, 142, 136, 135, 143, 140, 143, 140, 148, 141, 134, 138, 136, 139, 145, 137, 141, 143, 140, 141, 143, 142, 143, 142, 139, 139, 150, 137, 143, 139, 142, 137, 131, 135, 138, 143, 137, 142, 136, 139, 141, 135, 144, 138, 142, 149, 138, 137, 139, 150, 139, 137, 139, 152, 145, 146, 140, 143, 142, 142, 134, 141, 142, 138, 137, 137, 141, 136, 146, 146, 134, 131, 144, 136, 142, 138, 136, 140, 139, 138, 145, 140, 136, 141, 143, 142, 144, 138, 129, 135, 132, 140, 130, 139, 144, 142, 135, 144, 139, 135, 139, 126, 135, 153, 126, 134, 149, 139, 124, 129, 138, 136, 146, 127, 136, 136, 129, 134, 132, 138, 141, 129, 146, 133, 140, 141, 140, 136, 141, 144, 135, 149, 140, 144, 142, 146, 145, 151, 136, 135, 135, 136, 133, 143, 138, 138, 140, 135, 133, 140, 139, 144, 136, 142, 149, 142, 145, 142, 141, 141, 135, 133, 136, 144, 139, 130, 135, 145, 138, 142, 132, 129, 135, 144, 141, 128, 146, 134, 133, 135, 139, 140, 141, 141, 144, 142, 142, 145, 142, 136, 145, 143, 134, 142, 131, 123, 133, 139, 138, 133, 141, 143, 144, 148, 136, 150, 144, 136, 140, 132, 139, 147, 132, 143, 149, 137, 133, 147, 138, 139, 138, 139, 129, 153, 141, 147, 134, 136, 141, 137, 134, 133, 139, 139, 141, 130, 147, 132, 138, 133, 133, 139, 138, 141, 143, 141, 145, 137, 131, 137, 141, 142, 139, 134, 139, 142, 119, 145, 135, 147, 137, 135, 133, 136, 136, 140, 140, 142, 139, 143, 137, 151, 138, 142, 133, 148, 141, 140, 139, 134, 134, 132, 148, 151, 154, 144, 133, 143, 135, 127, 137, 136, 142, 129, 139, 126, 150, 138, 140, 139, 141, 145, 149, 145, 142, 142, 138, 131, 138, 140, 137, 134, 133, 140, 136, 146, 142, 126, 133, 131, 148, 139, 137, 133, 144, 132, 132, 137, 143, 142, 145, 137, 144, 149, 147, 133, 148, 141, 138, 147, 136, 141, 146, 142, 153, 139, 142, 149, 139, 140, 150, 146, 142, 127, 140, 136, 140, 146, 137, 130, 135, 144, 143, 141, 142, 148, 139, 135, 133, 136, 136, 145, 145, 147, 141, 134, 144, 137, 146, 146, 138, 141, 136, 135, 133, 140, 145, 134, 139, 132, 126, 131, 135, 140, 139, 133, 144, 133, 141, 140, 140, 137, 138, 137, 140, 145, 142, 137, 141, 136, 142, 132, 145, 131, 144, 138, 144, 134, 134, 137, 139, 139, 142, 133, 140, 135, 141, 138, 142, 142, 140, 137, 135, 133, 144, 139, 135, 140, 142, 141, 142, 138, 138, 136, 141, 137, 141, 142, 137, 141, 139, 135, 140, 138, 144, 145, 146, 137, 139, 137, 141, 139, 136, 142, 134, 143, 142, 141, 142, 138, 142, 139, 142, 136, 131, 135, 141, 136, 138, 143, 138, 133, 140, 135, 142, 138, 138, 142, 136, 133, 136, 136, 136, 132, 137, 137, 133, 136, 142, 137, 140, 146, 131, 151, 135, 140, 135, 142, 131, 133, 145, 141, 137, 141, 137, 144, 141, 139, 138, 136, 133, 144, 138, 142, 139, 139, 139, 138, 141, 133, 147, 141, 139, 139, 139, 144, 134, 148, 123, 139, 144, 141, 140, 132, 140, 131, 142, 131, 141, 140, 134, 142, 138, 137, 135, 148, 137, 141, 143, 139, 139, 141, 142, 142, 135, 135, 136, 136, 143, 136, 137, 143, 134, 149, 135, 139, 132, 142, 138, 140, 140, 141, 145, 136, 136, 133, 139, 137, 149, 147, 134, 133, 137, 138, 144, 141, 131, 151, 144, 129, 141, 141, 137, 142, 136, 140, 138, 138, 137, 140, 137, 141, 141, 143, 132, 143, 134, 136, 136, 148, 147, 136, 140, 140, 133, 137, 152, 140, 145, 128, 140, 146, 137, 136, 137, 139, 140, 143, 137, 139, 141, 141, 143, 142, 140, 145, 133, 135, 133, 138, 145, 136, 137, 135, 139, 132, 143, 140, 137, 150, 139, 138, 140, 144, 132, 135, 142, 140, 135, 130, 136, 135, 135, 138, 131, 139, 140, 139, 134, 142, 135, 139, 136, 144, 137, 135, 136, 138, 142, 138, 145, 134, 147, 136, 143, 136, 133, 144, 143, 143, 134, 143, 140, 138, 134, 140, 140, 139, 138, 147, 141, 142, 144, 142, 137, 129, 132, 138, 137, 138, 142, 133, 138, 141, 138, 144, 143, 139, 134, 137, 144, 147, 143, 144, 141, 141, 137, 133, 140, 140, 140, 142, 139, 136, 135, 139, 138, 131, 134, 135, 134, 144, 133, 139, 144, 146, 144, 133, 136, 146, 140, 138, 140, 137, 132, 138, 134, 139, 141, 134, 134, 132, 136, 138, 139, 139, 139, 137, 136, 140, 145, 136, 141, 145, 135, 138, 147, 143, 139, 143, 138, 136, 139, 140, 136, 131, 141, 147, 137, 139, 136, 137, 136, 138, 144, 131, 135, 145, 142, 137, 134, 139, 137, 134, 142, 141, 137, 140, 132, 139, 137, 136, 137, 140, 146, 141, 136, 144, 137, 134, 138, 135, 139, 140, 136, 134, 140, 141, 136, 136, 139, 139, 141, 139, 141, 141, 140, 133, 138, 139, 136, 142, 138, 140, 133, 139, 139, 144, 134, 134, 151, 141, 138, 144, 138, 138, 134, 139, 138, 140, 136, 135, 136, 139, 134, 140, 139, 145, 140, 137, 143, 137, 142, 136, 138, 140, 137, 143, 130, 132, 140, 137, 140, 142, 136, 144, 132, 140, 135, 143, 134, 131, 133, 141, 138, 137, 133, 141, 144, 134, 139, 138, 137, 143, 141, 133, 140, 132, 137, 143, 136, 139, 149, 140, 140, 131, 141, 127, 140, 131, 140, 133, 130, 140, 148, 132, 136, 136, 134, 138, 135, 137, 139, 147, 138, 141, 141, 142, 135, 137, 150, 141, 142, 130, 130, 139, 141, 143, 138, 144, 143, 138, 144, 146, 135, 139, 140, 128, 139, 146, 137, 138, 142, 145, 135, 128, 137, 144, 145, 143, 134, 136, 136, 138, 135, 147, 142, 141, 137, 138, 140, 137, 136, 129, 136, 137, 133, 137, 135, 138, 146, 140, 138, 137, 140, 147, 131, 135, 133, 134, 145, 141, 142, 137, 135, 139, 145, 131, 138, 136, 141, 139, 139, 140, 141, 131, 133, 134, 140, 137, 142, 136, 135, 143, 142, 138, 130, 142, 143, 140, 131, 139, 137, 135, 134, 133, 144, 139, 139, 137, 138, 143, 141, 142, 139, 136, 138, 138, 136, 135, 133, 143, 143, 134, 143, 135, 142, 136, 135, 136, 135, 137, 136, 133, 140, 141, 143, 140, 133, 134, 132, 135, 135, 139, 134, 133, 137, 137, 143, 141, 140, 137, 133, 140, 139, 139, 141, 141, 136, 134, 135, 142, 136, 144, 139, 139, 145, 135, 137, 135, 128, 140, 144, 143, 140, 135, 141, 139, 136, 138, 141, 141, 137, 139, 137, 146, 136, 135, 144, 142, 138, 136, 140, 139, 137, 142, 142, 140, 134, 138, 133, 135, 143, 142, 134, 140, 142, 139, 143, 152, 137, 139, 136, 144, 141, 132, 142, 134, 136, 136, 134, 136, 157, 135, 140, 148, 140, 153, 136, 140, 140, 141, 137, 139, 134, 138, 135, 140, 140, 135, 142, 139, 143, 140, 137, 139, 134, 143, 140, 139, 140, 135, 132, 138, 142, 135, 138, 132, 144, 147, 133, 136, 140, 132, 131, 134, 133, 130, 140, 137, 141, 143, 140, 135, 137, 132, 139, 142, 138, 140, 141, 147, 143, 134, 127, 139, 150, 139, 146, 131, 139, 142, 135, 144, 136, 137, 144, 145, 136, 133, 138, 137, 132, 137, 139, 145, 135, 140, 142, 136, 145, 147, 141, 137, 139, 140, 140, 127, 142, 138, 141, 130, 138, 139, 138, 127, 133, 140, 132, 143, 148, 139, 139, 142, 138, 144, 130, 141, 150, 136, 141, 136, 131, 140, 130, 140, 144, 145, 136, 130, 141, 147, 134, 133, 138, 136, 141, 135, 144, 136, 136, 134, 146, 142, 141, 140, 135, 132, 128, 150, 135, 142, 138, 138, 139, 138, 133, 140, 142, 138, 130, 142, 133, 141, 136, 141, 143, 146, 136, 139, 135, 141, 141, 133, 153, 139, 153, 133, 135, 142, 138, 147, 147, 150, 142, 138, 138, 127, 141, 132, 131, 140, 137, 140, 140, 143, 139, 139, 136, 147, 143, 138, 140, 133, 135, 138, 140, 136, 134, 135, 132, 137, 143, 138, 135, 148, 136, 137, 142, 138, 133, 143, 136, 139, 134, 141, 145, 138, 130, 140, 137, 146, 139, 148, 138, 138, 140, 144, 139, 135, 142, 136, 146, 143, 139, 134, 137, 134, 142, 146, 131, 137, 142, 135, 132, 144, 136, 139, 140, 134, 139, 140, 139, 135, 139, 138, 135, 139, 139, 138, 137, 139, 139, 143, 142, 137, 141, 139, 140, 135, 133, 135, 136, 143, 139, 139, 135, 144, 142, 138, 140, 138, 142, 139, 136, 137, 137, 136, 139, 139, 136, 141, 141, 141, 142, 137, 137, 135, 142, 139, 135, 134, 144, 138, 142, 134, 135, 141, 138, 133, 136, 135, 136, 137, 143, 135, 144, 144, 139, 138, 134, 134, 138, 140, 139, 140, 138, 135, 135, 142, 145, 139, 139, 139, 137, 135, 137, 133, 141, 135, 140, 143, 135, 132, 134, 140, 139, 141, 136, 133, 142, 137, 134, 142, 133, 143, 137, 137, 136, 133, 137, 134, 131, 136, 144, 139, 139, 142, 140, 142, 139, 139, 134, 139, 137, 135, 142, 138, 138, 140, 146, 136, 142, 138, 131, 141, 139, 133, 133, 134, 142, 146, 132, 144, 134, 140, 140, 139, 136, 144, 142, 136, 145, 136, 140, 140, 143, 142, 138, 143, 140, 131, 142, 139, 131, 139, 136, 135, 131, 136, 133, 147, 133, 136, 144, 133, 142, 143, 141, 133, 140, 146, 138, 138, 137, 138, 144, 140, 143, 139, 141, 140, 138, 139, 135, 140, 143, 138, 135, 140, 142, 145, 136, 144, 139, 140, 141, 138, 139, 140, 136, 136, 143, 140, 143, 141, 137, 137, 138, 131, 142, 138, 146, 139, 137, 146, 139, 139, 143, 138, 141, 146, 147, 144, 139, 139, 139, 137, 133, 139, 141, 140, 143, 139, 136, 144, 142, 135, 137, 139, 139, 137, 139, 141, 139, 137, 139, 136, 137, 143, 145, 144, 137, 140, 138, 139, 140, 140, 144, 132, 133, 141, 131, 135, 138, 130, 141, 138, 131, 138, 134, 135, 135, 139, 144, 140, 140, 142, 142, 135, 138, 140, 139, 138, 139, 139, 138, 139, 137, 136, 141, 136, 139, 137, 141, 134, 141, 144, 136, 141, 142, 140, 137, 140, 140, 135, 140, 143, 143, 138, 142, 135, 148, 137, 142, 137, 141, 142, 136, 135, 144, 133, 136, 141, 137, 151, 137, 152, 141, 143, 139, 144, 141, 142, 140, 137, 138, 140, 139, 147, 137, 136, 145, 143, 136, 137, 138, 133, 141, 146, 135, 144, 136, 141, 140, 140, 142, 139, 140, 138, 137, 137, 137, 132, 138, 140, 135, 140, 132, 138, 136, 144, 142, 134, 153, 143, 136, 140, 134, 140, 143, 140, 136, 136, 144, 138, 135, 138, 146, 141, 142, 143, 134, 140, 135, 136, 137, 136, 141, 134, 143, 138, 145, 135, 132, 140, 142, 137, 139, 135, 145, 142, 133, 134, 139, 144, 138, 139, 142, 140, 139, 138, 139, 140, 133, 133, 138, 138, 137, 145, 135, 140, 133, 138, 136, 141, 133, 136, 140, 142, 138, 141, 139, 142, 139, 142, 141, 137, 135, 136, 134, 135, 138, 144, 143, 138, 138, 138, 137, 140, 147, 137, 134, 136, 139, 134, 138, 137, 142, 136, 136, 140, 136, 141, 146, 144, 135, 136, 140, 138, 138, 135, 140, 134, 141, 134, 139, 134, 141, 143, 149, 135, 133, 139, 141, 135, 138, 142, 134, 136, 141, 144, 137, 135, 136, 138, 137, 139, 140, 138, 136, 139, 137, 147, 143, 139, 147, 137, 142, 140, 138, 146, 143, 141, 134, 140, 141, 142, 135, 133, 134, 137, 139, 144, 135, 139, 138, 143, 141, 138, 134, 138, 141, 143, 144, 144, 140, 142, 139, 148, 138, 135, 148, 142, 142, 136, 144, 137, 137, 141, 139, 134, 138, 132, 132, 143, 135, 138, 136, 148, 141, 142, 141, 139, 143, 143, 138, 141, 151, 140, 135, 127, 134, 132, 134, 141, 138, 152, 137, 141, 143, 135, 137, 143, 137, 147, 139, 141, 138, 136, 143, 136, 147, 144, 145, 143, 150, 136, 141, 147, 137, 134, 169, 135, 138, 137, 132, 136, 141, 135, 142, 144, 138, 139, 149, 142, 138, 132, 138, 138, 138, 140, 139, 139, 137, 142, 138, 144, 143, 144, 130, 141, 146, 141, 131, 145, 148, 135, 135, 133, 137, 135, 137, 131, 132, 151, 135, 137, 138, 137, 144, 140, 136, 146, 138, 141, 141, 137, 134, 133, 145, 141, 141, 142, 137, 132, 136, 140, 138, 139, 129, 134, 134, 138, 141, 140, 140, 138, 136, 136, 140, 138, 131, 141, 147, 139, 143, 144, 139, 136, 136, 145, 135, 138, 140, 139, 138, 135, 139, 139, 134, 136, 138, 137, 142, 137, 135, 140, 134, 139, 129, 139, 139, 140, 133, 145, 143, 143, 138, 133, 129, 137, 145, 137, 144, 138, 152, 138, 137, 136, 130, 139, 145, 155, 137, 143, 139, 142, 137, 144, 146, 145, 131, 144, 142, 140, 132, 131, 137, 133, 141, 139, 140, 139, 136, 138, 134, 129, 142, 136, 139, 137, 147, 145, 133, 135, 136, 139, 135, 137, 138, 140, 133, 136, 139, 133, 134, 150, 136, 148, 145, 135, 142, 143, 134, 133, 145, 148, 140, 133, 142, 132, 131, 141, 134, 135, 132, 142, 126, 141, 138, 137, 138, 138, 138, 141, 132, 143, 135, 143, 138, 141, 136, 141, 133, 128, 139, 138, 146, 143, 140, 141, 136, 135, 131, 139, 134, 147, 137, 140, 139, 138, 139, 131, 137, 140, 138, 144, 143, 134, 136, 131, 142, 132, 136, 142, 131, 138, 141, 142, 143, 143, 144, 143, 132, 143, 139, 144, 142, 140, 135, 136, 141, 143, 136, 136, 144, 139, 141, 135, 137, 143, 143, 137, 137, 129, 143, 135, 142, 139, 149, 138, 137, 145, 131, 137, 145, 136, 139, 139, 132, 138, 134, 131, 143, 130, 134, 143, 139, 144, 143, 142, 134, 138, 139, 143, 126, 136, 143, 137, 131, 139, 135, 141, 145, 140, 147, 136, 138, 137, 137, 140, 132, 137, 139, 137, 140, 137, 138, 142, 136, 140, 141, 132, 136, 143, 151, 133, 143, 141, 138, 132, 143, 136, 134, 137, 142, 132, 128, 142, 145, 137, 144, 140, 138, 133, 139, 131, 139, 149, 134, 142, 139, 143, 141, 146, 143, 135, 140, 130, 129, 133, 146, 130, 138, 132, 141, 132, 132, 147, 137, 141, 139, 142, 130, 136, 140, 138, 134, 136, 130, 137, 132, 148, 143, 141, 135, 128, 143, 142, 127, 137, 149, 136, 138, 139, 144, 139, 142, 134, 147, 134, 145, 134, 142, 131, 133, 146, 147, 143, 142, 139, 142, 143, 124, 137, 137, 133, 124, 146, 141, 142, 134, 127, 146, 140, 135, 142, 124, 142, 136, 141, 124, 138, 137, 130, 138, 140, 142, 146, 146, 129, 145, 133, 142, 137, 135, 135, 130, 139, 140, 135, 135, 132, 137, 137, 137, 139, 138, 138, 137, 135, 137, 145, 137, 136, 125, 141, 139, 135, 133, 145, 141, 130, 141, 139, 144, 141, 140, 146, 150, 139, 145, 141, 143, 134, 134, 133, 137, 144, 139, 142, 134, 138, 140, 142, 135, 136, 135, 143, 143, 135, 141, 149, 139, 140, 136, 141, 149, 136, 140, 147, 139, 135, 134, 135, 139, 135, 134, 140, 145, 149, 157, 134, 133, 127, 137, 134, 137, 149, 140, 134, 136, 132, 141, 135, 137, 138, 140, 143, 129, 135, 142, 137, 140, 139, 133, 143, 142, 134, 129, 132, 143, 141, 136, 135, 140, 144, 150, 130, 132, 138, 143, 135, 140, 144, 142, 143, 137, 142, 137, 124, 136, 131, 139, 136, 143, 133, 132, 137, 142, 144, 140, 135, 132, 140, 133, 148, 141, 141, 141, 140, 134, 150, 131, 138, 129, 137, 142, 151, 137, 140, 137, 145, 135, 140, 131, 139, 140, 136, 137, 144, 148, 147, 134, 132, 139, 133, 138, 150, 135, 136, 135, 136, 134, 133, 130, 134, 141, 141, 144, 137, 143, 133, 141, 143, 143, 142, 144, 137, 153, 131, 146, 133, 131, 141, 145, 145, 138, 137, 137, 138, 141, 146, 140, 132, 127, 137, 142, 137, 133, 147, 142, 135, 137, 141, 135, 140, 128, 140, 137, 146, 139, 147, 132, 147, 139, 144, 143, 142, 138, 133, 145, 139, 138, 130, 137, 145, 143, 141, 150, 137, 139, 134, 135, 162, 141, 134, 134, 142, 130, 127, 141, 137, 138, 143, 140, 132, 151, 147, 145, 133, 147, 140, 137, 140, 131, 144, 145, 132, 138, 138, 129, 140, 133, 133, 146, 145, 138, 135, 142, 134, 146, 144, 142, 136, 140, 145, 134, 137, 143, 139, 135, 142, 138, 136, 136, 143, 140, 136, 140, 137, 142, 143, 146, 133, 133, 132, 137, 134, 144, 141, 136, 140, 137, 143, 138, 148, 147, 138, 144, 143, 130, 138, 135, 139, 152, 130, 135, 138, 134, 139, 153, 140, 141, 146, 137, 139, 136, 129, 135, 138, 127, 138, 134, 149, 135, 137, 132, 139, 138, 146, 143, 139, 139, 138, 138, 142, 134, 137, 139, 138, 132, 134, 141, 135, 147, 133, 142, 144, 136, 135, 139, 125, 143, 141, 133, 155, 144, 139, 142, 144, 139, 151, 136, 135, 136, 136, 144, 134, 140, 142, 142, 136, 141, 134, 139, 129, 139, 136, 131, 146, 134, 142, 139, 137, 139, 143, 143, 143, 129, 138, 141, 141, 131, 142, 131, 144, 134, 139, 141, 133, 140, 135, 126, 136, 148, 142, 140, 139, 133, 139, 140, 132, 141, 136, 136, 148, 138, 132, 141, 136, 138, 146, 133, 142, 135, 130, 133, 151, 141, 144, 142, 138, 147, 144, 136, 142, 141, 140, 140, 143, 140, 143, 143, 138, 138, 139, 136, 139, 141, 137, 137, 132, 137, 145, 131, 127, 134, 130, 137, 138, 136, 142, 133, 144, 131, 135, 137, 141, 129, 147, 139, 139, 140, 133, 139, 136, 137, 144, 143, 137, 135, 137, 142, 137, 140, 138, 137, 147, 137, 137, 138, 140, 145, 135, 140, 136, 135, 139, 139, 146, 140, 134, 135, 140, 135, 141, 136, 140, 150, 143, 130, 135, 130, 137, 145, 136, 131, 142, 136, 138, 140, 132, 135, 137, 144, 138, 138, 137, 137, 138, 139, 137, 138, 140, 148, 140, 138, 136, 138, 134, 136, 134, 135, 136, 144, 142, 141, 144, 135, 145, 145, 147, 141, 141, 136, 139, 135, 137, 131, 145, 141, 140, 140, 135, 139, 142, 135, 137, 136, 135, 137, 141, 141, 137, 142, 138, 140, 145, 139, 135, 138, 139, 140, 141, 142, 138, 140, 135, 141, 142, 133, 130, 140, 142, 137, 141, 134, 135, 136, 142, 143, 139, 137, 129, 137, 135, 134, 141, 142, 133, 139, 142, 136, 140, 141, 143, 138, 147, 137, 140, 137, 138, 142, 144, 142, 136, 137, 140, 138, 141, 141, 136, 141, 135, 142, 135, 137, 139, 142, 144, 137, 136, 139, 142, 136, 146, 143, 141, 132, 136, 140, 128, 136, 141, 140, 141, 137, 140, 137, 142, 140, 138, 142, 139, 137, 139, 140, 142, 135, 137, 146, 138, 128, 135, 135, 141, 137, 145, 137, 137, 149, 141, 147, 138, 140, 139, 140, 135, 129, 141, 142, 142, 134, 149, 143, 142, 142, 140, 138, 140, 140, 143, 147, 135, 139, 142, 128, 138, 145, 139, 145, 138, 148, 141, 147, 144, 142, 145, 139, 152, 140, 146, 139, 140, 135, 134, 150, 143, 137, 136, 133, 142, 141, 133, 140, 144, 133, 139, 142, 144, 130, 135, 144, 141, 139, 135, 139, 137, 131, 132, 144, 140, 129, 143, 137, 146, 135, 140, 145, 142, 140, 134, 150, 138, 141, 147, 139, 134, 135, 143, 137, 147, 141, 142, 137, 141, 143, 139, 144, 140, 147, 138, 139, 138, 139, 139, 135, 143, 140, 135, 139, 135, 140, 134, 138, 135, 149, 145, 132, 137, 140, 142, 135, 135, 142, 137, 134, 136, 140, 145, 132, 132, 138, 135, 142, 138, 147, 136, 138, 146, 137, 138, 142, 147, 142, 138, 134, 141, 136, 136, 140, 136, 140, 140, 140, 138, 138, 137, 130, 145, 138, 140, 133, 142, 142, 136, 141, 137, 144, 135, 140, 138, 132, 139, 132, 144, 132, 138, 137, 149, 134, 134, 143, 140, 132, 143, 135, 145, 139, 134, 139, 146, 143, 147, 136, 130, 136, 139, 140, 140, 137, 132, 139, 130, 135, 135, 139, 141, 148, 138, 141, 138, 134, 133, 135, 136, 139, 143, 140, 135, 141, 137, 139, 129, 145, 137, 140, 149, 137, 132, 153, 140, 145, 144, 136, 145, 141, 138, 136, 140, 134, 135, 136, 149, 137, 139, 147, 139, 139, 139, 147, 140, 135, 136, 142, 136, 141, 137, 133, 146, 133, 141, 138, 137, 146, 143, 138, 135, 136, 143, 143, 140, 141, 139, 142, 131, 144, 133, 156, 135, 140, 135, 140, 145, 143, 137, 140, 144, 141, 140, 143, 141, 140, 146, 146, 144, 134, 142, 135, 136, 137, 134, 137, 143, 134, 139, 129, 136, 136, 138, 156, 135, 137, 144, 137, 141, 140, 136, 141, 154, 140, 145, 137, 139, 140, 131, 135, 141, 139, 130, 137, 150, 134, 125, 132, 132, 146, 146, 137, 148, 140, 140, 139, 149, 143, 137, 134, 136, 148, 154, 144, 138, 145, 136, 144, 139, 143, 140, 143, 133, 144, 135, 143, 142, 133, 134, 141, 140, 148, 141, 132, 141, 142, 133, 129, 142, 136, 148, 141, 132, 140, 144, 136, 141, 137, 136, 137, 131, 154, 143, 132, 132, 143, 141, 142, 131, 152, 148, 130, 142, 145, 148, 145, 138, 138, 129, 149, 136, 149, 133, 129, 136, 139, 143, 143, 139, 146, 137, 136, 136, 141, 139, 134, 137, 134, 135, 140, 131, 148, 138, 139, 131, 143, 139, 145, 138, 157, 147, 148, 125, 139, 142, 139, 136, 135, 138, 134, 133, 146, 141, 139, 135, 129, 136, 136, 136, 135, 141, 135, 127, 135, 138, 139, 145, 150, 144, 133, 134, 149, 141, 130, 136, 138, 137, 135, 139, 139, 140, 138, 132, 136, 142, 129, 124, 156, 136, 140, 145, 141, 139, 133, 149, 137, 147, 134, 134, 132, 138, 140, 136, 140, 137, 135, 134, 146, 130, 142, 143, 145, 136, 137, 146, 149, 142, 135, 146, 133, 129, 133, 140, 135, 144, 143, 139, 132, 129, 136, 137, 137, 141, 143, 138, 141, 135, 140, 130, 133, 140, 134, 139, 140, 133, 136, 146, 131, 143, 149, 137, 134, 141, 136, 148, 134, 146, 143, 146, 127, 148, 140, 139, 139, 130, 139, 136, 135, 132, 139, 137, 138, 132, 134, 141, 138, 125, 134, 135, 145, 139, 143, 133, 136, 141, 137, 142, 145, 147, 145, 141, 135, 135, 149, 142, 132, 133, 135, 141, 136, 131, 140, 143, 138, 141, 145, 141, 132, 149, 141, 146, 145, 142, 127, 126, 142, 140, 133, 149, 144, 134, 144, 135, 135, 139, 136, 141, 134, 144, 133, 139, 139, 140, 142, 138, 136, 136, 135, 155, 135, 133, 149, 130, 138, 121, 139, 140, 140, 131, 141, 142, 139, 145, 139, 141, 142, 134, 142, 137, 135, 134, 132, 137, 143, 130, 135, 150, 144, 145, 128, 135, 141, 135, 138, 135, 135, 135, 137, 146, 135, 138, 137, 149, 137, 144, 137, 134, 138, 130, 138, 139, 137, 131, 148, 140, 137, 146, 143, 143, 146, 150, 144, 127, 140, 135, 141, 147, 137, 141, 134, 143, 138, 140, 143, 139, 138, 146, 138, 128, 139, 128, 135, 138, 146, 136, 134, 149, 138, 145, 131, 131, 145, 152, 141, 139, 139, 134, 137, 129, 140, 137, 137, 144, 135, 132, 131, 129, 137, 138, 148, 137, 136, 139, 137, 142, 141, 141, 140, 141, 139, 137, 144, 149, 143, 138, 125, 133, 146, 147, 142, 137, 144, 143, 138, 140, 147, 151, 131, 144, 137, 129, 140, 115, 149, 150, 142, 147, 144, 169, 142, 134, 132, 143, 130, 136, 146, 124, 150, 145, 146, 138, 137, 145, 143, 149, 133, 143, 130, 139, 139, 144, 133, 136, 148, 140, 136, 143, 132, 147, 134, 121, 138, 145, 138, 152, 149, 143, 134, 140, 148, 134, 132, 137, 141, 130, 119, 139, 134, 142, 140, 121, 140, 141, 139, 143, 127, 138, 134, 138, 136, 120, 141, 148, 140, 143, 127, 141, 127, 137, 130, 140, 146, 133, 137, 134, 127, 137, 142, 142, 148, 137, 140, 142, 142, 136, 137, 141, 134, 154, 143, 136, 149, 145, 128, 144, 125, 114, 134, 144, 149, 133, 145, 147, 139, 130, 140, 152, 138, 144, 139, 134, 143, 133, 133, 133, 147, 136, 139, 135, 140, 129, 142, 138, 130, 129, 144, 141, 143, 130, 135, 137, 141, 140, 135, 136, 143, 138, 136, 136, 133, 140, 140, 140, 127, 133, 152, 138, 146, 130, 140, 136, 130, 139, 140, 135, 135, 134, 160, 138, 114, 148, 136, 139, 149, 146, 131, 132, 142, 123, 139, 137, 133, 143, 144, 140, 134, 136, 136, 132, 134, 129, 136, 137, 145, 137, 148, 143, 136, 149, 134, 132, 132, 132, 146, 137, 140, 143, 139, 146, 139, 135, 131, 140, 141, 130, 133, 139, 133, 142, 146, 153, 130, 131, 130, 137, 132, 135, 142, 148, 147, 139, 140, 143, 143, 139, 141, 140, 133, 130, 131, 149, 136, 144, 142, 141, 141, 147, 133, 142, 152, 138, 131, 132, 126, 133, 132, 135, 156, 144, 136, 142, 139, 139, 138, 136, 143, 138, 156, 129, 135, 133, 132, 138, 135, 142, 141, 138, 136, 144, 125, 141, 143, 130, 139, 136, 132, 132, 144, 123, 131, 137, 141, 137, 136, 134, 143, 137, 138, 139, 136, 139, 139, 145, 137, 141, 135, 140, 130, 130, 125, 130, 145, 133, 134, 136, 133, 144, 146, 128, 149, 134, 127, 137, 131, 141, 140, 147, 152, 133, 141, 143, 147, 137, 147, 133, 135, 139, 134, 143, 137, 135, 143, 137, 143, 137, 143, 145, 140, 137, 142, 137, 138, 145, 142, 136, 140, 134, 139, 137, 148, 135, 131, 136, 136, 141, 134, 136, 147, 133, 131, 147, 147, 133, 135, 136, 145, 136, 146, 128, 138, 144, 135, 136, 131, 139, 145, 139, 133, 138, 144, 140, 146, 137, 140, 140, 156, 140, 135, 137, 135, 135, 142, 133, 131, 139, 131, 153, 143, 142, 141, 142, 152, 137, 145, 133, 138, 145, 132, 132, 143, 138, 137, 146, 133, 141, 116, 137, 135, 149, 141, 132, 142, 136, 146, 133, 143, 137, 142, 135, 143, 133, 127, 136, 135, 139, 142, 139, 139, 137, 141, 136, 143, 139, 140, 132, 144, 145, 140, 133, 134, 142, 134, 136, 133, 133, 140, 125, 138, 132, 134, 123, 140, 139, 135, 145, 131, 139, 131, 131, 145, 144, 136, 143, 138, 142, 139, 144, 141, 129, 142, 142, 138, 132, 149, 142, 144, 143, 148, 135, 135, 138, 146, 125, 139, 137, 135, 131, 152, 136, 140, 141, 140, 143, 136, 146, 142, 136, 135, 135, 139, 137, 140, 132, 137, 131, 133, 133, 141, 137, 144, 138, 134, 141, 135, 129, 139, 138, 135, 138, 135, 144, 146, 139, 136, 132, 137, 137, 141, 134, 142, 138, 138, 125, 142, 141, 138, 129, 136, 134, 130, 133, 136, 139, 142, 132, 141, 137, 139, 135, 147, 137, 139, 144, 142, 141, 141, 142, 132, 137, 138, 140, 145, 134, 137, 143, 147, 136, 147, 138, 135, 147, 132, 140, 139, 131, 131, 141, 136, 131, 143, 140, 136, 144, 140, 142, 133, 137, 135, 144, 134, 141, 135, 129, 147, 138, 149, 137, 142, 142, 137, 130, 141, 141, 134, 140, 136, 141, 136, 149, 141, 140, 134, 137, 145, 142, 145, 148, 131, 140, 132, 133, 147, 139, 136, 149, 147, 140, 133, 148, 138, 141, 139, 137, 145, 135, 135, 139, 140, 143, 139, 141, 140, 133, 130, 135, 144, 141, 141, 139, 140, 137, 135, 135, 136, 138, 134, 138, 134, 138, 139, 136, 140, 140, 136, 136, 132, 137, 139, 145, 149, 135, 141, 131, 140, 136, 133, 138, 142, 137, 134, 132, 141, 138, 132, 142, 137, 143, 134, 134, 137, 136, 139, 144, 139, 139, 135, 138, 146, 142, 134, 145, 138, 139, 134, 146, 132, 138, 138, 136, 140, 138, 139, 134, 135, 135, 135, 153, 149, 133, 141, 145, 133, 135, 147, 136, 131, 133, 146, 141, 146, 138, 143, 137, 140, 137, 145, 136, 136, 136, 136, 136, 141, 143, 131, 151, 134, 136, 139, 133, 130, 134, 146, 143, 137, 140, 137, 133, 137, 141, 132, 149, 142, 138, 143, 138, 138, 138, 132, 139, 139, 143, 138, 138, 150, 136, 135, 150, 139, 144, 139, 143, 143, 140, 136, 145, 143, 136, 130, 136, 137, 135, 140, 136, 139, 146, 134, 138, 135, 136, 137, 136, 141, 135, 146, 144, 133, 141, 135, 136, 138, 134, 138, 148, 127, 140, 137, 141, 142, 134, 138, 144, 137, 137, 131, 148, 141, 146, 141, 146, 139, 135, 135, 137, 142, 144, 131, 138, 143, 129, 135, 137, 140, 139, 137, 143, 138, 131, 137, 145, 141, 143, 141, 141, 143, 132, 141, 144, 144, 146, 134, 144, 130, 129, 137, 137, 146, 131, 137, 137, 140, 129, 141, 135, 136, 136, 136, 139, 139, 142, 138, 135, 142, 143, 144, 146, 141, 139, 142, 144, 142, 142, 133, 144, 136, 134, 135, 138, 142, 124, 142, 141, 131, 134, 139, 140, 149, 143, 139, 130, 142, 145, 135, 132, 136, 138, 145, 140, 139, 137, 130, 140, 133, 135, 143, 135, 134, 136, 143, 139, 145, 131, 143, 135, 143, 143, 141, 142, 141, 150, 137, 143, 136, 139, 144, 143, 143, 136, 133, 133, 135, 136, 143, 143, 139, 154, 131, 140, 145, 140, 136, 138, 138, 136, 142, 134, 147, 134, 132, 142, 141, 145, 140, 143, 135, 143, 139, 135, 136, 137, 133, 138, 142, 144, 143, 136, 142, 144, 137, 135, 136, 137, 139, 142, 139, 154, 136, 144, 137, 133, 135, 140, 149, 145, 139, 139, 131, 142, 140, 143, 128, 139, 140, 138, 138, 134, 143, 137, 146, 142, 141, 137, 106, 133, 144, 139, 141, 145, 145, 135, 138, 145, 135, 141, 140, 141, 129, 144, 140, 132, 139, 138, 142, 140, 132, 141, 140, 138, 129, 138, 127, 137, 140, 142, 130, 140, 141, 145, 139, 148, 137, 139, 143, 136, 145, 124, 145, 130, 142, 146, 137, 139, 134, 139, 129, 138, 141, 145, 137, 144, 135, 146, 144, 148, 129, 123, 145, 139, 138, 132, 146, 143, 128, 134, 135, 142, 145, 146, 140, 137, 143, 143, 142, 137, 146, 129, 126, 142, 134, 143, 147, 143, 138, 142, 134, 145, 138, 146, 136, 140, 141, 134, 147, 140, 140, 145, 141, 130, 138, 134, 134, 140, 136, 143, 142, 136, 137, 145, 134, 141, 137, 140, 141, 138, 143, 135, 142, 135, 147, 132, 138, 141, 145, 138, 153, 140, 131, 133, 144, 142, 139, 136, 141, 139, 139, 137, 136, 125, 134, 144, 139, 146, 139, 137, 135, 131, 150, 144, 149, 138, 143, 132, 142, 136, 129, 137, 143, 133, 137, 148, 133, 137, 138, 143, 142, 134, 139, 137, 137, 133, 141, 138, 143, 137, 135, 136, 144, 139, 144, 145, 148, 147, 135, 140, 138, 134, 128, 135, 124, 140, 138, 141, 138, 132, 138, 141, 137, 144, 139, 137, 131, 140, 141, 147, 141, 144, 137, 143, 145, 136, 139, 143, 137, 147, 139, 137, 143, 131, 146, 131, 139, 134, 142, 137, 136, 136, 135, 140, 151, 141, 139, 139, 136, 139, 140, 131, 143, 135, 135, 142, 133, 140, 131, 142, 139, 130, 142, 135, 139, 135, 137, 139, 133, 141, 137, 144, 134, 135, 157, 143, 133, 137, 138, 137, 138, 137, 141, 136, 146, 103, 139, 138, 143, 125, 142, 138, 141, 140, 147, 142, 135, 135, 143, 133, 134, 140, 138, 133, 140, 141, 143, 134, 140, 139, 136, 131, 144, 146, 142, 142, 136, 141, 139, 140, 135, 140, 132, 138, 135, 149, 135, 154, 132, 140, 144, 142, 133, 146, 136, 141, 127, 135, 145, 152, 127, 144, 142, 141, 143, 147, 130, 138, 140, 139, 138, 141, 147, 132, 159, 139, 139, 140, 144, 135, 138, 137, 139, 145, 145, 144, 134, 144, 138, 151, 131, 140, 143, 138, 141, 138, 137, 130, 129, 137, 141, 142, 146, 144, 130, 135, 140, 135, 140, 128, 146, 141, 144, 136, 138, 134, 140, 143, 152, 140, 148, 134, 134, 143, 132, 135, 137, 144, 129, 143, 137, 136, 131, 138, 146, 136, 145, 139, 138, 138, 142, 138, 142, 144, 138, 142, 139, 137, 135, 141, 145, 137, 151, 147, 141, 144, 129, 139, 142, 142, 132, 142, 138, 136, 135, 140, 129, 138, 133, 140, 134, 116, 131, 130, 121, 148, 148, 149, 138, 138, 138, 143, 142, 142, 143, 146, 146, 146, 144, 143, 142, 139, 137, 143, 142, 134, 148, 137, 140, 146, 143, 131, 142, 130, 134, 140, 137, 135, 137, 138, 138, 154, 149, 129, 140, 120, 135, 129, 141, 147, 136, 137, 140, 130, 149, 152, 139, 144, 135, 142, 142, 144, 139, 139, 142, 135, 136, 129, 141, 136, 135, 145, 146, 126, 139, 145, 135, 133, 139, 143, 135, 148, 142, 142, 138, 131, 138, 147, 149, 144, 140, 142, 151, 150, 131, 137, 138, 147, 138, 132, 134, 135, 135, 143, 134, 142, 143, 142, 130, 135, 140, 141, 139, 136, 139, 138, 133, 136, 147, 137, 145, 144, 126, 144, 138, 139, 140, 140, 134, 138, 139, 143, 140, 130, 142, 132, 160, 140, 141, 141, 131, 148, 139, 144, 132, 137, 141, 133, 135, 143, 144, 133, 136, 136, 158, 139, 157, 137, 136, 134, 134, 138, 140, 137, 141, 130, 141, 148, 135, 141, 143, 138, 142, 141, 148, 140, 142, 129, 131, 130, 147, 141, 149, 139, 146, 150, 131, 142, 138, 137, 134, 133, 132, 141, 143, 145, 138, 141, 129, 145, 130, 138, 137, 138, 129, 147, 141, 137, 144, 143, 140, 130, 133, 146, 138, 136, 144, 137, 139, 140, 136, 129, 142, 147, 139, 150, 150, 140, 140, 140, 137, 141, 135, 140, 141, 131, 139, 142, 140, 134, 147, 135, 139, 142, 138, 137, 134, 137, 134, 147, 139, 133, 142, 134, 133, 136, 140, 140, 136, 140, 142, 136, 136, 133, 141, 135, 133, 133, 134, 145, 140, 131, 132, 143, 129, 129, 137, 142, 137, 133, 140, 133, 144, 132, 141, 149, 141, 139, 142, 134, 143, 138, 139, 138, 137, 138, 148, 146, 146, 127, 142, 138, 131, 143, 128, 133, 139, 137, 147, 133, 132, 140, 127, 137, 143, 139, 139, 123, 143, 136, 146, 138, 138, 133, 131, 138, 131, 128, 134, 141, 140, 134, 139, 146, 138, 143, 144, 142, 129, 142, 135, 138, 138, 137, 132, 132, 147, 139, 133, 142, 132, 145, 144, 143, 132, 144, 138, 141, 139, 136, 140, 129, 147, 131, 138, 132, 139, 142, 148, 141, 146, 141, 145, 141, 140, 148, 142, 139, 138, 134, 145, 139, 138, 136, 143, 137, 135, 134, 135, 132, 157, 130, 139, 146, 145, 142, 135, 138, 142, 145, 140, 143, 129, 144, 141, 138, 144, 135, 139, 149, 134, 138, 151, 133, 135, 148, 136, 146, 131, 138, 142, 138, 137, 142, 138, 138, 140, 140, 145, 132, 137, 144, 132, 143, 140, 142, 129, 132, 149, 125, 132, 141, 147, 137, 139, 142, 131, 140, 136, 133, 138, 138, 133, 141, 151, 136, 137, 133, 141, 142, 149, 139, 140, 133, 142, 139, 140, 135, 136, 147, 131, 129, 132, 140, 130, 143, 139, 141, 136, 148, 143, 139, 145, 148, 136, 140, 133, 140, 140, 141, 146, 131, 144, 146, 144, 139, 135, 133, 143, 129, 138, 139, 137, 140, 134, 143, 148, 146, 151, 135, 144, 150, 135, 129, 142, 137, 129, 142, 145, 137, 136, 139, 137, 142, 134, 136, 140, 137, 133, 145, 131, 134, 142, 144, 135, 138, 140, 138, 141, 130, 143, 128, 128, 138, 136, 147, 132, 129, 143, 138, 139, 139, 139, 139, 141, 126, 138, 137, 131, 132, 151, 139, 136, 134, 150, 140, 146, 133, 145, 140, 133, 142, 134, 138, 136, 138, 138, 137, 142, 139, 143, 140, 140, 138, 139, 151, 135, 143, 140, 146, 138, 144, 137, 141, 138, 133, 138, 143, 140, 136, 139, 137, 152, 141, 150, 148, 143, 140, 139, 136, 140, 136, 152, 140, 142, 137, 132, 137, 138, 135, 143, 136, 136, 133, 134, 135, 143, 137, 134, 135, 138, 125, 125, 140, 132, 142, 137, 135, 140, 136, 139, 144, 145, 142, 144, 134, 138, 133, 148, 135, 138, 135, 142, 141, 144, 134, 141, 145, 136, 144, 139, 137, 135, 136, 122, 133, 139, 149, 137, 132, 136, 132, 135, 141, 133, 138, 135, 136, 142, 139, 136, 149, 142, 131, 140, 133, 135, 142, 143, 136, 141, 139, 140, 139, 144, 129, 142, 135, 135, 140, 149, 143, 146, 143, 146, 142, 140, 144, 142, 147, 142, 138, 136, 139, 139, 135, 143, 135, 137, 138, 141, 143, 143, 125, 129, 138, 139, 140, 143, 142, 148, 138, 142, 144, 137, 127, 140, 141, 142, 143, 140, 136, 136, 145, 137, 140, 151, 150, 139, 138, 136, 141, 139, 136, 139, 132, 141, 138, 136, 141, 149, 139, 131, 138, 144, 144, 137, 146, 134, 145, 142, 140, 144, 146, 138, 143, 136, 137, 139, 134, 139, 143, 137, 135, 136, 143, 149, 144, 136, 140, 144, 143, 147, 149, 135, 138, 144, 137, 141, 136, 136, 134, 134, 142, 132, 138, 149, 135, 142, 134, 133, 143, 135, 155, 138, 141, 133, 140, 140, 140, 134, 139, 128, 140, 128, 135, 142, 139, 134, 139, 153, 135, 137, 140, 141, 142, 132, 147, 130, 137, 128, 142, 133, 137, 133, 146, 135, 145, 135, 134, 139, 142, 140, 140, 144, 142, 141, 144, 135, 137, 128, 145, 154, 136, 143, 134, 137, 131, 131, 141, 144, 136, 137, 128, 142, 136, 135, 134, 143, 133, 140, 143, 142, 148, 137, 138, 135, 137, 127, 140, 144, 142, 140, 137, 142, 143, 141, 139, 138, 148, 133, 144, 148, 137, 132, 140, 150, 143, 145, 133, 142, 140, 138, 138, 141, 131, 138, 147, 137, 136, 143, 142, 133, 134, 146, 141, 149, 144, 134, 136, 138, 145, 138, 136, 134, 135, 134, 137, 133, 137, 143, 144, 140, 141, 138, 140, 138, 139, 148, 132, 151, 135, 141, 137, 144, 144, 138, 142, 132, 137, 136, 132, 134, 138, 142, 141, 140, 136, 143, 134, 139, 138, 139, 135, 125, 139, 144, 131, 134, 138, 139, 139, 139, 143, 142, 137, 149, 135, 133, 133, 148, 145, 130, 143, 137, 138, 135, 138, 139, 141, 138, 144, 140, 141, 144, 142, 140, 135, 135, 130, 145, 141, 142, 135, 133, 136, 135, 134, 138, 142, 133, 141, 136, 136, 135, 135, 136, 139, 141, 134, 146, 144, 148, 137, 134, 137, 153, 146, 138, 138, 143, 150, 137, 135, 141, 137, 140, 127, 143, 145, 135, 137, 143, 149, 135, 141, 142, 136, 136, 133, 144, 133, 138, 142, 144, 140, 143, 144, 140, 136, 130, 134, 137, 139, 129, 139, 142, 142, 143, 139, 131, 130, 136, 135, 146, 140, 140, 135, 136, 135, 142, 137, 142, 134, 148, 140, 141, 137, 140, 129, 141, 134, 143, 143, 132, 140, 139, 142, 138, 145, 141, 137, 137, 137, 135, 142, 140, 142, 139, 148, 139, 137, 136, 126, 143, 139, 141, 136, 142, 141, 140, 141, 146, 133, 143, 141, 138, 127, 140, 137, 136, 141, 142, 147, 141, 139, 138, 144, 142, 137, 136, 140, 137, 145, 142, 140, 132, 130, 148, 145, 133, 142, 142, 146, 135, 134, 140, 143, 144, 136, 137, 136, 139, 143, 138, 135, 136, 138, 130, 135, 139, 142, 138, 139, 140, 139, 142, 138, 140, 149, 139, 144, 144, 135, 137, 139, 136, 144, 133, 136, 138, 142, 143, 135, 137, 134, 144, 138, 143, 139, 134, 143, 137, 137, 139, 144, 136, 137, 154, 134, 138, 143, 141, 139, 140, 136, 143, 140, 149, 143, 143, 141, 136, 137, 134, 141, 144, 143, 140, 147, 138, 140, 135, 145, 140, 141, 139, 132, 139, 138, 137, 142, 137, 148, 137, 138, 145, 136, 138, 137, 135, 138, 136, 142, 137, 135, 140, 137, 137, 140, 136, 139, 133, 146, 129, 142, 132, 134, 143, 139, 140, 130, 131, 138, 146, 139, 141, 140, 141, 140, 138, 137, 135, 145, 137, 139, 146, 131, 145, 147, 141, 139, 150, 131, 142, 144, 148, 135, 140, 132, 133, 141, 134, 143, 135, 143, 142, 138, 131, 143, 145, 149, 140, 142, 138, 140, 141, 130, 132, 137, 145, 137, 148, 135, 146, 151, 143, 143, 141, 139, 143, 146, 136, 142, 124, 137, 139, 141, 143, 139, 139, 131, 138, 138, 146, 140, 134, 145, 136, 139, 136, 147, 139, 139, 139, 140, 139, 140, 137, 139, 142, 144, 138, 139, 131, 139, 141, 136, 140, 138, 136, 141, 142, 145, 129, 133, 134, 141, 148, 138, 141, 139, 131, 128, 144, 131, 143, 153, 141, 140, 141, 134, 143, 141, 131, 132, 139, 142, 136, 143, 136, 128, 134, 143, 140, 148, 135, 146, 136, 149, 134, 141, 139, 135, 142, 126, 139, 138, 140, 137, 138, 137, 138, 135, 139, 137, 139, 133, 133, 140, 132, 143, 153, 142, 133, 142, 138, 138, 135, 152, 133, 132, 139, 145, 142, 140, 139, 148, 140, 137, 129, 147, 138, 148, 144, 142, 139, 144, 143, 142, 135, 132, 140, 137, 138, 140, 145, 145, 142, 139, 138, 138, 133, 143, 130, 146, 130, 145, 134, 135, 133, 137, 141, 144, 138, 138, 140, 138, 131, 141, 134, 136, 137, 145, 139, 137, 138, 132, 141, 141, 141, 148, 145, 133, 144, 138, 140, 138, 144, 132, 140, 141, 139, 140, 137, 139, 133, 129, 142, 144, 142, 142, 148, 134, 136, 140, 134, 141, 134, 139, 154, 144, 141, 149, 144, 146, 137, 145, 135, 139, 146, 134, 135, 130, 144, 151, 136, 129, 132, 135, 137, 137, 138, 140, 137, 141, 137, 147, 138, 140, 150, 141, 143, 139, 144, 139, 137, 136, 133, 134, 142, 129, 135, 153, 143, 136, 135, 129, 146, 137, 142, 136, 134, 137, 138, 139, 142, 146, 139, 132, 135, 133, 142, 135, 143, 140, 134, 138, 143, 145, 136, 138, 144, 135, 136, 142, 139, 147, 136, 145, 135, 139, 149, 131, 134, 139, 145, 136, 145, 132, 147, 149, 142, 144, 137, 140, 137, 155, 135, 142, 131, 138, 136, 131, 136, 133, 130, 141, 133, 144, 142, 136, 139, 135, 134, 138, 152, 130, 129, 141, 148, 139, 146, 140, 139, 140, 140, 131, 134, 131, 145, 138, 138, 138, 139, 143, 139, 143, 137, 145, 135, 146, 145, 133, 141, 138, 140, 145, 142, 140, 134, 136, 139, 142, 139, 138, 147, 143, 133, 140, 136, 132, 137, 144, 138, 135, 129, 131, 142, 143, 134, 140, 124, 136, 135, 139, 136, 146, 146, 141, 137, 130, 141, 135, 139, 135, 135, 136, 136, 138, 143, 139, 139, 136, 136, 134, 152, 126, 147, 129, 136, 147, 137, 149, 129, 138, 132, 137, 144, 139, 134, 134, 148, 140, 139, 142, 140, 134, 152, 142, 140, 137, 149, 144, 138, 135, 143, 137, 143, 137, 141, 140, 142, 137, 138, 139, 141, 129, 133, 137, 140, 144, 134, 146, 139, 139, 141, 134, 131, 132, 127, 144, 143, 128, 141, 137, 145, 139, 137, 127, 134, 143, 136, 146, 130, 139, 140, 141, 138, 135, 138, 136, 141, 143, 137, 131, 133, 139, 139, 133, 134, 140, 135, 142, 143, 145, 143, 142, 141, 143, 143, 144, 137, 140, 145, 135, 130, 139, 143, 138, 131, 142, 132, 154, 141, 135, 139, 143, 148, 145, 143, 143, 132, 131, 144, 139, 139, 147, 137, 131, 138, 139, 135, 139, 135, 148, 143, 140, 138, 140, 133, 136, 137, 138, 148, 135, 148, 148, 142, 140, 136, 141, 139, 139, 135, 139, 142, 138, 144, 138, 138, 147, 141, 131, 137, 127, 151, 141, 139, 141, 139, 140, 136, 144, 141, 140, 136, 134, 144, 142, 143, 140, 136, 136, 135, 144, 135, 147, 143, 135, 137, 138, 141, 132, 138, 134, 140, 133, 140, 129, 142, 140, 136, 133, 145, 141, 142, 140, 137, 145, 146, 141, 139, 139, 139, 142, 136, 138, 141, 137, 128, 142, 134, 141, 143, 137, 130, 138, 138, 135, 135, 141, 146, 134, 141, 144, 155, 140, 130, 136, 127, 136, 131, 144, 136, 140, 145, 132, 145, 146, 136, 136, 137, 137, 136, 140, 137, 137, 135, 141, 141, 136, 134, 141, 140, 141, 144, 144, 145, 135, 133, 135, 145, 136, 143, 139, 137, 139, 130, 140, 138, 139, 139, 128, 131, 125, 138, 143, 141, 133, 138, 141, 145, 141, 147, 135, 138, 141, 157, 129, 133, 141, 134, 139, 137, 137, 133, 150, 142, 134, 120, 142, 139, 143, 138, 137, 139, 157, 136, 135, 139, 142, 133, 140, 138, 131, 126, 134, 143, 141, 132, 145, 140, 140, 143, 144, 134, 146, 141, 136, 131, 141, 143, 134, 135, 133, 132, 150, 128, 142, 139, 137, 134, 141, 139, 137, 155, 138, 139, 140, 137, 144, 129, 137, 142, 138, 151, 139, 135, 145, 141, 137, 136, 144, 137, 143, 134, 136, 140, 139, 140, 144, 141, 133, 144, 145, 136, 130, 142, 132, 141, 147, 149, 135, 141, 140, 134, 144, 142, 143, 145, 136, 134, 129, 136, 130, 144, 137, 138, 139, 137, 135, 143, 133, 140, 132, 146, 122, 150, 141, 132, 134, 137, 130, 145, 144, 129, 142, 143, 132, 139, 136, 151, 135, 135, 145, 131, 141, 135, 141, 128, 144, 136, 137, 141, 127, 129, 138, 138, 135, 137, 144, 139, 127, 133, 133, 149, 139, 132, 136, 139, 135, 145, 150, 143, 140, 135, 131, 136, 140, 146, 139, 139, 134, 141, 140, 140, 144, 141, 137, 133, 137, 137, 136, 124, 142, 139, 146, 142, 135, 133, 140, 144, 128, 142, 128, 153, 136, 147, 142, 141, 136, 150, 137, 135, 138, 147, 145, 143, 138, 151, 138, 140, 139, 135, 124, 141, 140, 141, 133, 142, 137, 137, 131, 136, 147, 133, 141, 140, 135, 134, 143, 129, 146, 145, 144, 142, 138, 138, 143, 139, 143, 142, 141, 130, 130, 142, 147, 140, 137, 138, 152, 142, 138, 137, 139, 134, 141, 143, 141, 142, 136, 133, 139, 135, 145, 142, 150, 150, 136, 136, 137, 135, 135, 135, 143, 148, 142, 142, 125, 132, 140, 133, 140, 141, 139, 138, 139, 144, 137, 136, 144, 140, 138, 139, 149, 151, 152, 145, 148, 146, 138, 134, 152, 132, 140, 139, 143, 130, 140, 137, 135, 150, 132, 126, 143, 130, 140, 144, 138, 128, 138, 138, 146, 135, 140, 138, 135, 130, 130, 140, 140, 140, 132, 135, 143, 137, 142, 135, 135, 141, 135, 143, 135, 147, 142, 143, 152, 129, 144, 139, 147, 142, 131, 137, 134, 130, 131, 135, 151, 138, 139, 145, 152, 138, 136, 134, 140, 141, 140, 144, 141, 150, 142, 145, 138, 137, 134, 136, 139, 140, 139, 137, 131, 136, 151, 141, 153, 145, 134, 136, 142, 133, 142, 137, 136, 139, 145, 155, 147, 137, 145, 132, 141, 133, 148, 143, 130, 137, 140, 142, 143, 144, 139, 136, 141, 135, 135, 137, 144, 142, 138, 144, 138, 145, 145, 143, 142, 131, 142, 136, 142, 138, 143, 131, 145, 149, 138, 136, 142, 145, 129, 140, 127, 134, 137, 140, 147, 125, 141, 136, 140, 134, 131, 140, 134, 140, 129, 139, 144, 138, 136, 136, 128, 140, 136, 141, 130, 156, 135, 139, 155, 137, 138, 139, 138, 129, 137, 132, 140, 139, 129, 130, 132, 142, 141, 148, 138, 138, 152, 133, 138, 125, 144, 138, 141, 136, 136, 138, 140, 136, 142, 140, 150, 146, 134, 140, 134, 133, 139, 137, 135, 140, 142, 135, 136, 141, 145, 133, 136, 142, 141, 148, 134, 140, 139, 133, 140, 128, 145, 131, 140, 134, 155, 145, 146, 143, 146, 140, 146, 142, 146, 134, 133, 134, 134, 136, 143, 150, 151, 139, 135, 150, 138, 138, 134, 134, 150, 137, 141, 135, 148, 139, 141, 136, 137, 144, 139, 144, 143, 139, 142, 138, 139, 137, 137, 133, 145, 138, 141, 138, 139, 140, 145, 137, 153, 147, 143, 138, 141, 142, 142, 139, 151, 134, 139, 144, 136, 139, 135, 138, 146, 143, 145, 154, 139, 136, 135, 148, 141, 134, 139, 138, 147, 132, 135, 141, 136, 139, 139, 143, 140, 148, 132, 139, 135, 138, 140, 142, 131, 141, 137, 133, 149, 140, 141, 135, 146, 140, 128, 138, 131, 132, 149, 141, 137, 135, 135, 142, 128, 133, 147, 145, 135, 137, 144, 150, 141, 143, 133, 133, 145, 138, 130, 138, 134, 140, 138, 141, 134, 141, 142, 139, 137, 139, 139, 137, 145, 139, 133, 145, 135, 144, 137, 141, 140, 130, 136, 135, 144, 125, 139, 136, 142, 139, 139, 133, 140, 136, 142, 133, 146, 137, 145, 141, 134, 140, 140, 139, 141, 137, 143, 138, 142, 135, 142, 139, 146, 145, 145, 145, 147, 136, 143, 132, 148, 140, 144, 139, 142, 145, 144, 126, 144, 137, 135, 130, 137, 138, 133, 143, 139, 135, 151, 133, 148, 143, 143, 136, 133, 138, 137, 136, 135, 134, 144, 139, 137, 139, 130, 140, 131, 141, 137, 139, 143, 147, 140, 146, 136, 135, 132, 138, 131, 130, 141, 137, 135, 145, 132, 144, 136, 142, 132, 140, 145, 134, 145, 139, 137, 137, 140, 139, 148, 134, 137, 140, 142, 144, 141, 135, 143, 147, 148, 142, 143, 146, 147, 134, 131, 137, 138, 140, 135, 144, 144, 142, 129, 148, 140, 135, 133, 137, 138, 136, 132, 141, 135, 149, 142, 145, 142, 147, 137, 139, 149, 131, 138, 146, 129, 147, 132, 144, 139, 138, 137, 136, 123, 140, 131, 149, 139, 149, 139, 138, 138, 136, 134, 143, 141, 128, 147, 136, 142, 143, 153, 139, 141, 136, 142, 130, 146, 137, 139, 145, 136, 150, 141, 130, 144, 150, 135, 139, 136, 140, 137, 144, 149, 139, 133, 140, 139, 143, 146, 133, 136, 140, 138, 135, 142, 138, 144, 151, 134, 146, 136, 147, 136, 138, 137, 153, 148, 141, 142, 133, 131, 154, 135, 142, 139, 132, 130, 134, 134, 142, 147, 133, 135, 148, 136, 141, 140, 135, 144, 138, 136, 142, 135, 139, 147, 137, 144, 144, 144, 135, 136, 142, 134, 139, 148, 145, 139, 133, 134, 137, 138, 142, 134, 133, 141, 146, 132, 136, 141, 134, 140, 134, 137, 139, 143, 153, 139, 136, 140, 151, 139, 129, 141, 145, 135, 140, 137, 141, 129, 139, 147, 135, 136, 139, 139, 147, 143, 133, 142, 144, 133, 139, 139, 137, 146, 137, 144, 144, 136, 140, 146, 145, 133, 150, 139, 136, 138, 137, 142, 145, 138, 137, 129, 137, 140, 135, 135, 147, 147, 146, 146, 135, 132, 137, 146, 143, 142, 136, 134, 138, 138, 136, 130, 149, 143, 131, 144, 148, 138, 143, 140, 144, 133, 141, 137, 134, 134, 147, 141, 136, 128, 134, 142, 145, 134, 131, 146, 140, 138, 134, 136, 139, 144, 133, 144, 139, 151, 143, 138, 139, 138, 132, 129, 141, 147, 147, 128, 135, 138, 137, 154, 129, 137, 141, 128, 154, 138, 141, 135, 144, 135, 138, 142, 130, 139, 135, 140, 143, 135, 135, 135, 141, 138, 142, 132, 134, 139, 140, 143, 141, 133, 137, 144, 134, 143, 136, 140, 140, 134, 141, 146, 141, 137, 137, 136, 144, 135, 142, 150, 134, 144, 156, 139, 144, 134, 146, 132, 138, 129, 135, 141, 137, 140, 141, 147, 138, 141, 136, 137, 137, 133, 136, 136, 140, 144, 133, 144, 137, 138, 135, 140, 142, 140, 146, 140, 129, 139, 137, 145, 140, 141, 139, 135, 142, 135, 143, 140, 139, 140, 129, 145, 133, 138, 136, 138, 136, 141, 139, 139, 139, 139, 140, 138, 139, 131, 134, 139, 143, 138, 135, 133, 138, 136, 141, 139, 141, 137, 138, 140, 141, 140, 143, 142, 143, 134, 136, 139, 139, 138, 135, 144, 142, 130, 133, 131, 133, 143, 133, 142, 144, 143, 142, 140, 140, 134, 141, 138, 138, 141, 143, 137, 142, 145, 145, 141, 140, 145, 141, 141, 147, 140, 137, 146, 139, 138, 136, 143, 135, 139, 142, 145, 146, 139, 140, 155, 139, 141, 140, 140, 139, 132, 139, 143, 145, 134, 133, 137, 133, 136, 139, 142, 137, 138, 135, 139, 145, 138, 146, 141, 134, 138, 136, 137, 134, 140, 136, 142, 141, 139, 136, 135, 141, 134, 140, 160, 129, 134, 142, 145, 142, 136, 138, 140, 146, 139, 139, 133, 138, 137, 137, 142, 134, 134, 138, 144, 144, 137, 134, 134, 149, 132, 136, 139, 136, 140, 145, 134, 138, 140, 141, 140, 137, 134, 141, 142, 142, 131, 141, 134, 139, 135, 138, 134, 134, 136, 137, 136, 145, 139, 144, 133, 141, 139, 136, 141, 136, 140, 133, 146, 144, 138, 134, 132, 136, 138, 143, 138, 145, 142, 141, 141, 135, 140, 138, 141, 137, 131, 128, 134, 141, 140, 138, 146, 140, 142, 141, 139, 139, 139, 138, 149, 145, 142, 143, 144, 141, 137, 140, 143, 142, 136, 141, 138, 137, 147, 141, 148, 131, 145, 149, 143, 135, 141, 135, 138, 134, 136, 140, 137, 141, 134, 137, 135, 133, 140, 144, 140, 147, 142, 134, 140, 140, 141, 145, 137, 138, 132, 137, 137, 136, 139, 141, 140, 137, 138, 140, 146, 137, 144, 131, 138, 133, 143, 141, 145, 142, 139, 135, 146, 137, 144, 134, 143, 139, 135, 153, 130, 136, 135, 144, 137, 137, 141, 135, 139, 135, 141, 134, 140, 142, 134, 145, 140, 141, 140, 134, 140, 138, 139, 135, 139, 137, 134, 134, 133, 137, 142, 137, 143, 136, 147, 133, 143, 139, 134, 134, 138, 142, 137, 148, 141, 140, 140, 131, 139, 143, 140, 140, 143, 144, 132, 141, 138, 132, 139, 139, 145, 141, 132, 138, 133, 147, 138, 134, 141, 142, 142, 132, 138, 134, 142, 141, 138, 141, 132, 138, 142, 140, 134, 138, 140, 134, 137, 142, 140, 132, 134, 140, 138, 139, 146, 134, 141, 141, 136, 140, 131, 137, 140, 139, 135, 139, 134, 139, 141, 140, 136, 130, 132, 145, 142, 139, 136, 145, 140, 131, 138, 140, 139, 139, 134, 144, 138, 127, 139, 145, 135, 136, 139, 141, 143, 139, 135, 140, 139, 146, 137, 143, 145, 133, 139, 139, 133, 142, 138, 141, 145, 141, 143, 136, 143, 133, 139, 137, 137, 137, 134, 147, 139, 137, 134, 143, 136, 144, 138, 146, 138, 133, 140, 142, 143, 140, 132, 138, 136, 141, 140, 135, 141, 138, 136, 138, 135, 142, 139, 140, 140, 141, 142, 140, 137, 137, 140, 135, 144, 145, 142, 132, 146, 147, 137, 137, 128, 138, 140, 138, 139, 134, 143, 143, 134, 144, 136, 141, 136, 143, 132, 134, 140, 134, 134, 142, 136, 140, 140, 135, 138, 135, 141, 138, 144, 141, 136, 153, 131, 142, 139, 134, 146, 145, 142, 143, 136, 140, 133, 141, 132, 135, 136, 145, 140, 142, 141, 143, 133, 137, 144, 137, 139, 135, 148, 137, 147, 140, 138, 139, 133, 134, 140, 141, 141, 140, 136, 136, 138, 148, 149, 136, 135, 138, 140, 146, 133, 137, 136, 139, 140, 138, 134, 137, 148, 141, 145, 143, 154, 136, 135, 136, 138, 148, 134, 136, 134, 149, 138, 136, 136, 147, 144, 137, 137, 143, 143, 136, 136, 153, 142, 140, 141, 149, 147, 136, 140, 142, 136, 140, 143, 139, 142, 137, 136, 134, 139, 133, 132, 137, 141, 143, 146, 135, 133, 135, 140, 133, 139, 133, 141, 139, 140, 134, 136, 142, 139, 140, 140, 137, 134, 139, 143, 141, 136, 136, 138, 142, 133, 135, 137, 137, 144, 136, 138, 142, 138, 136, 145, 137, 141, 139, 144, 133, 142, 145, 134, 143, 134, 145, 138, 138, 138, 145, 139, 141, 140, 139, 141, 134, 136, 137, 139, 140, 137, 138, 145, 133, 138, 138, 139, 143, 136, 145, 142, 137, 132, 136, 144, 143, 139, 140, 137, 142, 135, 143, 132, 140, 143, 137, 138, 134, 130, 132, 136, 141, 143, 140, 141, 135, 137, 137, 144, 132, 135, 147, 139, 148, 138, 145, 138, 139, 132, 140, 144, 134, 136, 135, 137, 140, 144, 132, 139, 136, 138, 142, 140, 135, 142, 141, 148, 127, 133, 130, 146, 132, 144, 136, 137, 147, 140, 144, 138, 144, 145, 145, 134, 136, 144, 140, 137, 140, 144, 136, 137, 132, 139, 140, 135, 144, 141, 140, 141, 136, 142, 136, 140, 134, 135, 134, 137, 147, 140, 134, 137, 142, 142, 141, 132, 133, 137, 142, 135, 137, 141, 135, 144, 137, 133, 137, 135, 135, 133, 140, 137, 142, 138, 140, 143, 142, 137, 130, 147, 132, 141, 139, 138, 144, 142, 143, 144, 134, 144, 148, 139, 138, 143, 149, 144, 140, 136, 136, 141, 144, 138, 145, 135, 133, 137, 133, 138, 144, 141, 141, 144, 139, 130, 139, 137, 140, 142, 140, 140, 139, 134, 135, 144, 134, 151, 133, 134, 152, 140, 136, 136, 131, 135, 146, 138, 144, 143, 129, 135, 141, 141, 131, 138, 138, 139, 137, 138, 140, 137, 139, 153, 134, 139, 141, 140, 136, 147, 143, 146, 133, 138, 138, 137, 141, 132, 143, 140, 139, 132, 149, 138, 136, 140, 145, 129, 145, 145, 133, 136, 135, 132, 140, 135, 138, 138, 139, 141, 146, 134, 143, 138, 137, 139, 150, 142, 139, 142, 139, 137, 146, 140, 132, 144, 138, 140, 143, 139, 137, 138, 145, 132, 137, 146, 142, 135, 133, 143, 137, 138, 141, 138, 143, 142, 137, 142, 135, 122, 141, 128, 140, 133, 140, 137, 137, 138, 140, 139, 129, 133, 137, 135, 136, 133, 131, 143, 136, 145, 136, 138, 139, 148, 136, 148, 137, 137, 137, 132, 142, 137, 140, 141, 137, 137, 136, 135, 138, 141, 137, 134, 138, 142, 138, 139, 136, 138, 132, 140, 135, 153, 140, 137, 135, 134, 146, 144, 132, 141, 145, 135, 131, 135, 146, 126, 140, 138, 144, 145, 130, 138, 138, 141, 140, 137, 133, 135, 141, 134, 141, 146, 149, 140, 134, 137, 132, 144, 131, 141, 141, 144, 136, 141, 140, 140, 140, 136, 135, 139, 140, 136, 146, 135, 135, 138, 127, 138, 140, 142, 130, 131, 130, 133, 135, 135, 144, 142, 149, 144, 134, 144, 140, 139, 138, 141, 137, 136, 140, 137, 137, 132, 150, 142, 131, 139, 130, 133, 130, 141, 135, 131, 145, 134, 132, 137, 143, 137, 137, 139, 133, 150, 141, 137, 149, 138, 142, 143, 132, 130, 140, 131, 136, 137, 143, 140, 137, 140, 137, 143, 142, 145, 139, 135, 140, 137, 138, 135, 137, 138, 147, 134, 133, 136, 134, 142, 138, 143, 140, 136, 140, 137, 135, 133, 144, 141, 143, 135, 136, 136, 139, 142, 142, 142, 141, 150, 130, 143, 140, 136, 140, 133, 145, 138, 148, 140, 137, 135, 140, 138, 132, 142, 138, 137, 149, 144, 135, 141, 129, 140, 142, 144, 140, 145, 141, 141, 135, 133, 136, 134, 146, 142, 138, 133, 144, 135, 142, 141, 142, 132, 139, 147, 139, 137, 143, 145, 133, 142, 134, 136, 140, 147, 146, 138, 134, 147, 142, 138, 140, 143, 144, 141, 146, 136, 141, 137, 136, 142, 135, 141, 135, 141, 136, 152, 132, 138, 139, 140, 139, 142, 147, 132, 144, 149, 138, 140, 137, 143, 139, 143, 135, 140, 136, 137, 143, 146, 141, 136, 145, 135, 140, 140, 137, 137, 139, 141, 130, 142, 136, 134, 139, 133, 144, 133, 141, 140, 132, 137, 134, 140, 136, 141, 136, 135, 145, 137, 132, 141, 139, 138, 134, 141, 143, 132, 133, 135, 142, 136, 137, 136, 136, 139, 143, 143, 141, 136, 138, 137, 140, 141, 138, 139, 142, 136, 139, 135, 144, 139, 146, 138, 135, 141, 140, 138, 136, 137, 147, 135, 126, 144, 139, 132, 135, 135, 142, 142, 136, 134, 147, 133, 138, 139, 144, 138, 136, 132, 133, 142, 144, 154, 142, 140, 139, 139, 133, 137, 139, 131, 143, 140, 142, 138, 137, 143, 137, 142, 139, 132, 142, 138, 134, 140, 137, 137, 140, 137, 132, 140, 134, 136, 138, 141, 140, 133, 139, 137, 138, 143, 135, 137, 130, 138, 146, 138, 138, 139, 146, 146, 134, 137, 137, 140, 137, 137, 133, 140, 142, 136, 145, 145, 145, 132, 139, 137, 129, 138, 143, 150, 141, 138, 143, 146, 145, 131, 145, 134, 145, 138, 148, 146, 133, 136, 134, 136, 142, 137, 144, 142, 143, 149, 140, 136, 145, 139, 133, 148, 137, 134, 140, 139, 129, 135, 145, 148, 139, 131, 140, 151, 136, 144, 145, 140, 136, 139, 142, 142, 142, 135, 138, 133, 137, 142, 139, 142, 138, 148, 138, 130, 133, 136, 132, 151, 147, 136, 137, 143, 141, 136, 140, 137, 139, 139, 138, 142, 138, 136, 138, 139, 138, 143, 141, 151, 140, 142, 138, 142, 151, 145, 141, 133, 158, 136, 137, 138, 138, 136, 127, 148, 142, 142, 137, 141, 129, 141, 136, 152, 140, 143, 142, 144, 136, 137, 133, 138, 134, 137, 140, 140, 150, 135, 145, 145, 131, 142, 137, 139, 144, 137, 140, 148, 140, 135, 139, 143, 132, 145, 139, 142, 145, 135, 134, 134, 140, 141, 123, 148, 136, 136, 132, 147, 139, 140, 130, 132, 140, 146, 136, 135, 127, 137, 135, 138, 149, 145, 142, 133, 138, 141, 135, 134, 137, 133, 135, 138, 137, 144, 141, 132, 137, 139, 137, 134, 150, 131, 140, 145, 140, 139, 140, 144, 134, 133, 142, 148, 135, 143, 136, 139, 143, 139, 146, 136, 136, 135, 146, 137, 141, 149, 133, 148, 139, 144, 138, 142, 140, 145, 143, 141, 141, 134, 144, 140, 148, 141, 139, 133, 142, 136, 138, 136, 136, 138, 140, 132, 132, 136, 131, 144, 130, 139, 135, 131, 132, 136, 139, 142, 145, 138, 133, 141, 136, 141, 143, 145, 141, 139, 151, 140, 128, 137, 137, 148, 143, 138, 133, 155, 136, 139, 135, 140, 132, 136, 128, 144, 132, 134, 139, 140, 139, 140, 140, 147, 135, 146, 147, 135, 139, 132, 135, 139, 138, 139, 140, 133, 141, 138, 143, 136, 141, 138, 137, 139, 136, 130, 136, 138, 140, 138, 143, 141, 137, 142, 129, 145, 133, 137, 151, 144, 135, 145, 133, 130, 141, 139, 138, 141, 144, 138, 140, 129, 140, 140, 133, 133, 136, 139, 138, 140, 135, 138, 146, 139, 142, 152, 132, 145, 144, 146, 148, 138, 144, 140, 138, 135, 137, 139, 149, 142, 135, 141, 138, 136, 136, 132, 142, 143, 139, 129, 141, 138, 140, 136, 127, 136, 145, 131, 135, 142, 138, 137, 139, 139, 132, 138, 143, 134, 145, 136, 126, 152, 139, 134, 137, 142, 135, 148, 139, 134, 140, 129, 142, 146, 140, 135, 130, 141, 141, 138, 145, 138, 134, 141, 138, 144, 129, 137, 135, 146, 141, 137, 143, 141, 140, 131, 135, 139, 140, 147, 146, 137, 138, 141, 131, 145, 139, 139, 138, 138, 135, 142, 135, 135, 133, 134, 132, 138, 130, 145, 142, 140, 136, 139, 133, 149, 140, 134, 139, 129, 137, 142, 141, 140, 148, 153, 142, 142, 140, 143, 141, 138, 140, 144, 138, 135, 138, 140, 138, 145, 140, 143, 135, 135, 130, 138, 138, 132, 148, 144, 133, 144, 132, 131, 140, 136, 135, 129, 135, 139, 141, 137, 141, 134, 138, 136, 140, 136, 147, 140, 136, 138, 135, 135, 149, 122, 140, 129, 144, 134, 133, 135, 138, 139, 132, 140, 135, 141, 131, 139, 131, 142, 128, 135, 134, 137, 134, 134, 150, 141, 136, 138, 136, 142, 141, 141, 145, 148, 135, 134, 140, 136, 150, 122, 140, 145, 130, 138, 146, 141, 139, 144, 145, 128, 143, 135, 140, 147, 140, 141, 138, 140, 141, 142, 135, 147, 142, 128, 137, 136, 136, 137, 150, 132, 132, 135, 140, 134, 150, 144, 146, 133, 141, 131, 137, 135, 139, 138, 141, 139, 145, 138, 134, 136, 131, 141, 140, 143, 148, 141, 153, 139, 146, 141, 135, 141, 135, 136, 138, 143, 139, 137, 136, 136, 142, 149, 139, 138, 139, 142, 136, 133, 141, 132, 130, 149, 125, 139, 138, 142, 138, 140, 132, 135, 136, 141, 132, 143, 143, 134, 142, 138, 141, 146, 128, 139, 135, 143, 134, 132, 138, 142, 146, 143, 142, 143, 137, 144, 138, 139, 133, 127, 144, 148, 134, 137, 130, 134, 142, 131, 143, 140, 150, 139, 137, 148, 135, 134, 134, 145, 134, 140, 141, 146, 136, 142, 144, 133, 140, 140, 146, 139, 131, 140, 134, 133, 144, 134, 143, 144, 145, 138, 144, 140, 139, 135, 136, 132, 143, 133, 148, 137, 132, 136, 135, 135, 139, 140, 141, 146, 144, 145, 136, 135, 145, 134, 143, 143, 147, 140, 135, 136, 140, 130, 145, 147, 143, 139, 135, 132, 132, 144, 142, 139, 129, 141, 141, 146, 143, 134, 135, 132, 139, 140, 135, 147, 145, 143, 138, 151, 134, 141, 141, 141, 142, 133, 135, 136, 134, 141, 148, 145, 137, 134, 142, 138, 148, 133, 143, 130, 140, 138, 139, 142, 136, 132, 141, 134, 146, 152, 131, 141, 144, 137, 141, 136, 138, 138, 137, 142, 144, 145, 138, 139, 139, 138, 143, 142, 145, 140, 136, 146, 136, 144, 135, 144, 137, 133, 138, 146, 138, 129, 136, 143, 128, 139, 138, 145, 144, 143, 139, 139, 137, 143, 137, 143, 133, 133, 141, 153, 143, 138, 141, 136, 154, 134, 141, 138, 135, 140, 139, 146, 136, 135, 142, 140, 139, 138, 142, 142, 137, 140, 140, 138, 142, 141, 141, 134, 139, 145, 138, 133, 139, 144, 145, 145, 126, 140, 134, 140, 137, 141, 146, 139, 139, 148, 132, 132, 132, 134, 140, 140, 139, 138, 136, 133, 138, 140, 129, 140, 135, 135, 146, 145, 136, 136, 135, 142, 131, 137, 132, 147, 130, 139, 132, 135, 141, 147, 142, 139, 137, 134, 145, 134, 139, 136, 138, 145, 140, 138, 141, 145, 142, 138, 136, 134, 127, 139, 138, 135, 143, 142, 144, 137, 136, 136, 133, 140, 134, 127, 133, 144, 143, 133, 143, 141, 138, 140, 147, 136, 129, 130, 146, 144, 141, 137, 142, 141, 143, 136, 143, 133, 147, 129, 142, 142, 151, 137, 140, 140, 137, 142, 139, 143, 139, 139, 139, 147, 141, 135, 148, 134, 145, 138, 139, 141, 134, 134, 138, 137, 138, 128, 151, 137, 150, 139, 143, 130, 141, 142, 147, 139, 142, 148, 142, 138, 135, 121, 141, 140, 137, 140, 137, 134, 143, 145, 133, 142, 130, 139, 139, 140, 133, 148, 136, 145, 141, 140, 138, 142, 140, 137, 135, 153, 134, 139, 141, 148, 128, 148, 134, 133, 134, 139, 141, 138, 144, 138, 136, 138, 137, 139, 142, 133, 134, 135, 140, 137, 143, 143, 139, 137, 138, 142, 145, 146, 136, 137, 135, 144, 145, 142, 138, 140, 148, 131, 141, 146, 130, 137, 145, 134, 138, 143, 134, 139, 138, 137, 129, 141, 140, 138, 141, 133, 135, 134, 149, 143, 131, 139, 144, 134, 139, 149, 140, 139, 139, 143, 135, 141, 138, 141, 144, 143, 130, 134, 139, 143, 145, 139, 131, 137, 141, 137, 147, 135, 140, 141, 139, 135, 138, 146, 140, 137, 127, 137, 141, 134, 135, 136, 135, 139, 130, 140, 144, 134, 145, 139, 145, 129, 135, 138, 139, 139, 144, 139, 136, 145, 137, 132, 134, 143, 133, 143, 141, 139, 148, 148, 137, 143, 144, 132, 133, 130, 137, 140, 139, 145, 149, 144, 133, 144, 137, 136, 133, 135, 136, 149, 137, 144, 138, 134, 134, 138, 138, 141, 138, 131, 140, 141, 146, 143, 148, 132, 142, 142, 131, 142, 141, 141, 134, 141, 133, 140, 130, 130, 138, 141, 136, 146, 142, 138, 138, 141, 136, 141, 142, 141, 134, 141, 134, 153, 137, 141, 138, 150, 137, 126, 140, 143, 142, 149, 136, 138, 138, 141, 135, 143, 125, 144, 130, 145, 138, 139, 128, 124, 140, 147, 151, 142, 130, 139, 145, 141, 138, 141, 136, 136, 139, 141, 135, 146, 142, 141, 130, 141, 138, 145, 142, 151, 147, 142, 144, 139, 144, 134, 133, 132, 148, 143, 124, 141, 130, 135, 140, 130, 142, 143, 140, 131, 137, 136, 149, 140, 131, 127, 144, 138, 139, 144, 144, 144, 148, 153, 139, 143, 138, 141, 136, 143, 138, 145, 131, 135, 136, 134, 143, 139, 137, 140, 135, 142, 138, 143, 137, 143, 136, 139, 144, 141, 142, 135, 145, 139, 136, 142, 142, 151, 135, 145, 130, 137, 141, 127, 135, 135, 138, 141, 144, 134, 135, 134, 140, 143, 131, 137, 132, 138, 137, 133, 145, 150, 131, 146, 135, 137, 133, 147, 141, 145, 137, 135, 139, 131, 141, 138, 141, 143, 135, 134, 137, 127, 137, 139, 142, 130, 127, 137, 138, 135, 145, 145, 134, 132, 136, 141, 139, 139, 143, 145, 142, 141, 133, 136, 146, 144, 134, 147, 148, 149, 143, 132, 145, 130, 140, 136, 141, 140, 138, 135, 140, 141, 134, 143, 132, 135, 144, 134, 134, 138, 141, 139, 135, 128, 140, 135, 132, 142, 146, 128, 141, 139, 144, 144, 139, 140, 141, 141, 140, 136, 128, 137, 141, 139, 133, 144, 137, 140, 145, 145, 142, 141, 129, 139, 148, 140, 133, 144, 138, 136, 143, 142, 141, 139, 136, 150, 139, 139, 133, 128, 141, 136, 135, 134, 142, 146, 150, 141, 131, 142, 146, 130, 151, 150, 126, 133, 130, 139, 141, 145, 139, 136, 146, 131, 146, 137, 133, 148, 144, 127, 144, 135, 135, 132, 140, 145, 144, 137, 140, 139, 137, 136, 133, 144, 134, 143, 144, 137, 144, 142, 138, 140, 144, 135, 142, 143, 149, 137, 127, 138, 144, 146, 142, 135, 136, 131, 145, 141, 134, 142, 135, 143, 134, 134, 137, 137, 138, 141, 130, 143, 135, 133, 135, 143, 139, 139, 134, 141, 135, 143, 141, 138, 131, 138, 139, 126, 147, 139, 138, 134, 135, 137, 142, 140, 145, 138, 144, 134, 131, 141, 142, 133, 131, 137, 137, 148, 138, 135, 150, 146, 140, 137, 148, 133, 144, 144, 150, 133, 137, 127, 144, 138, 140, 142, 134, 141, 143, 136, 143, 144, 142, 146, 135, 140, 139, 141, 137, 140, 138, 142, 138, 147, 150, 141, 140, 143, 139, 132, 133, 137, 142, 142, 141, 142, 137, 149, 139, 150, 130, 142, 160, 144, 150, 148, 153, 136, 143, 145, 137, 135, 141, 135, 138, 135, 135, 139, 143, 141, 134, 138, 138, 138, 130, 131, 136, 140, 136, 142, 138, 136, 140, 141, 136, 134, 147, 135, 136, 142, 141, 140, 136, 143, 134, 142, 138, 135, 144, 138, 133, 133, 134, 140, 143, 137, 137, 138, 139, 135, 135, 143, 132, 144, 149, 145, 141, 135, 134, 138, 140, 135, 139, 138, 144, 138, 150, 129, 132, 144, 136, 136, 136, 137, 132, 143, 137, 131, 134, 132, 134, 149, 144, 146, 145, 143, 143, 135, 123, 139, 134, 136, 137, 132, 145, 130, 140, 140, 139, 153, 134, 135, 144, 138, 140, 138, 146, 145, 144, 137, 147, 145, 136, 136, 139, 141, 142, 146, 143, 143, 142, 149, 143, 134, 144, 134, 140, 129, 137, 144, 142, 142, 130, 137, 136, 139, 135, 134, 137, 133, 129, 130, 136, 130, 145, 140, 122, 134, 136, 132, 138, 134, 140, 141, 133, 149, 143, 143, 140, 140, 144, 147, 139, 138, 140, 146, 137, 139, 135, 138, 145, 142, 137, 144, 135, 137, 130, 136, 132, 140, 141, 136, 140, 139, 145, 139, 129, 136, 140, 145, 142, 132, 132, 131, 138, 140, 142, 143, 145, 137, 142, 136, 143, 147, 146, 128, 140, 131, 132, 137, 142, 134, 130, 142, 138, 141, 135, 138, 143, 149, 134, 146, 137, 142, 139, 143, 138, 138, 139, 141, 148, 146, 131, 137, 146, 152, 134, 137, 139, 132, 134, 139, 133, 138, 127, 145, 131, 138, 125, 139, 135, 134, 141, 139, 136, 139, 138, 135, 145, 129, 132, 135, 141, 129, 139, 136, 138, 139, 138, 145, 142, 129, 141, 144, 143, 133, 133, 134, 147, 134, 143, 141, 132, 139, 138, 139, 141, 142, 139, 140, 143, 144, 126, 135, 140, 137, 142, 129, 136, 139, 145, 130, 141, 138, 142, 146, 148, 127, 130, 139, 142, 145, 133, 145, 141, 134, 130, 140, 136, 144, 132, 138, 144, 133, 132, 144, 135, 138, 129, 140, 137, 139, 134, 142, 137, 136, 139, 149, 135, 142, 141, 137, 135, 139, 129, 137, 130, 141, 142, 141, 138, 147, 141, 139, 146, 140, 136, 141, 146, 140, 138, 138, 141, 142, 135, 150, 142, 142, 134, 135, 138, 145, 130, 135, 140, 144, 137, 142, 145, 140, 136, 135, 140, 144, 136, 138, 144, 135, 133, 138, 137, 142, 132, 144, 133, 143, 137, 137, 126, 143, 132, 127, 144, 142, 151, 134, 140, 143, 142, 141, 143, 131, 141, 137, 138, 136, 135, 141, 141, 147, 142, 134, 131, 144, 139, 138, 144, 136, 143, 149, 146, 132, 136, 150, 144, 139, 136, 132, 136, 144, 136, 137, 140, 135, 139, 138, 146, 142, 140, 131, 140, 143, 136, 138, 146, 155, 138, 141, 133, 142, 143, 136, 137, 143, 139, 138, 141, 141, 138, 143, 147, 128, 133, 143, 136, 142, 155, 128, 137, 141, 138, 140, 142, 144, 138, 138, 140, 142, 140, 134, 132, 129, 134, 136, 139, 140, 139, 136, 141, 140, 140, 141, 135, 135, 134, 128, 130, 135, 137, 132, 144, 147, 139, 140, 132, 140, 152, 137, 137, 141, 144, 136, 141, 145, 136, 147, 138, 144, 136, 144, 139, 140, 138, 149, 140, 139, 137, 144, 146, 135, 141, 131, 133, 140, 129, 147, 135, 139, 152, 134, 147, 132, 147, 143, 141, 144, 137, 140, 139, 137, 139, 141, 134, 135, 140, 138, 141, 133, 140, 123, 130, 134, 132, 137, 136, 141, 145, 142, 138, 139, 142, 142, 138, 135, 138, 130, 131, 144, 134, 137, 137, 142, 137, 143, 141, 132, 144, 136, 142, 142, 140, 135, 136, 137, 140, 136, 144, 127, 142, 151, 124, 149, 142, 145, 136, 146, 132, 139, 130, 142, 137, 139, 138, 141, 134, 142, 143, 136, 137, 142, 146, 144, 130, 141, 140, 137, 134, 139, 137, 140, 135, 128, 134, 144, 139, 141, 135, 133, 138, 136, 144, 133, 142, 138, 141, 145, 134, 151, 143, 140, 137, 142, 138, 136, 137, 145, 150, 139, 143, 135, 131, 140, 143, 136, 139, 140, 128, 136, 134, 135, 136, 138, 143, 144, 144, 131, 142, 139, 138, 142, 139, 135, 144, 145, 137, 136, 132, 135, 138, 143, 137, 134, 142, 141, 141, 148, 136, 140, 139, 135, 136, 140, 140, 128, 135, 140, 134, 134, 139, 136, 139, 129, 142, 139, 135, 134, 134, 141, 123, 139, 137, 143, 143, 131, 155, 146, 145, 134, 135, 142, 133, 138, 143, 150, 137, 137, 133, 139, 134, 134, 143, 150, 136, 143, 139, 135, 131, 141, 133, 140, 141, 145, 147, 140, 131, 135, 137, 130, 139, 142, 145, 142, 135, 134, 137, 143, 135, 145, 143, 127, 136, 139, 138, 143, 134, 136, 142, 142, 138, 141, 137, 137, 148, 143, 139, 134, 129, 141, 139, 138, 141, 139, 131, 135, 140, 134, 139, 141, 141, 143, 140, 143, 141, 154, 137, 146, 132, 144, 123, 137, 146, 140, 136, 138, 129, 137, 139, 141, 144, 147, 137, 146, 139, 144, 134, 141, 134, 138, 149, 132, 135, 145, 132, 123, 132, 147, 143, 133, 137, 141, 140, 153, 131, 140, 138, 131, 137, 131, 132, 140, 144, 146, 143, 141, 134, 145, 142, 141, 148, 132, 136, 144, 139, 139, 148, 133, 146, 139, 138, 141, 136, 142, 137, 140, 142, 135, 138, 141, 140, 143, 149, 134, 141, 142, 142, 148, 137, 145, 144, 141, 145, 131, 137, 140, 138, 139, 141, 141, 144, 141, 150, 131, 146, 138, 151, 145, 141, 138, 149, 142, 143, 139, 135, 150, 139, 137, 137, 142, 132, 135, 145, 137, 137, 140, 139, 137, 131, 142, 145, 143, 130, 144, 147, 142, 137, 143, 136, 139, 140, 144, 141, 139, 134, 146, 135, 131, 134, 139, 140, 135, 135, 145, 154, 135, 146, 141, 147, 144, 141, 137, 139, 144, 142, 137, 133, 142, 138, 132, 140, 138, 141, 141, 136, 142, 139, 139, 143, 141, 139, 137, 140, 137, 137, 144, 133, 134, 133, 149, 129, 136, 137, 138, 146, 139, 139, 142, 142, 132, 144, 145, 132, 143, 138, 145, 133, 149, 134, 130, 131, 131, 140, 132, 135, 138, 142, 136, 139, 139, 141, 138, 140, 139, 135, 134, 139, 141, 139, 131, 137, 142, 135, 138, 137, 138, 144, 136, 132, 136, 143, 143, 145, 131, 132, 129, 138, 136, 133, 140, 137, 137, 133, 142, 145, 138, 143, 146, 137, 133, 140, 143, 138, 143, 141, 134, 150, 135, 140, 137, 142, 142, 135, 134, 137, 140, 139, 141, 138, 142, 137, 138, 132, 133, 142, 144, 136, 133, 138, 137, 132, 139, 137, 129, 136, 134, 142, 131, 133, 139, 141, 140, 141, 136, 135, 143, 135, 138, 145, 131, 145, 138, 146, 135, 138, 138, 140, 134, 139, 132, 134, 138, 145, 143, 125, 139, 138, 124, 141, 131, 136, 134, 138, 140, 143, 136, 145, 134, 144, 143, 132, 131, 143, 134, 140, 135, 139, 142, 136, 138, 148, 143, 139, 129, 141, 133, 128, 139, 129, 144, 138, 136, 143, 141, 131, 139, 143, 142, 136, 138, 143, 146, 144, 134, 137, 140, 141, 138, 137, 139, 134, 137, 143, 138, 150, 138, 139, 140, 133, 135, 137, 138, 149, 144, 143, 141, 149, 133, 137, 134, 135, 134, 133, 129, 136, 137, 145, 146, 143, 134, 130, 139, 139, 133, 129, 139, 134, 143, 138, 140, 132, 139, 136, 136, 147, 135, 143, 139, 134, 130, 141, 136, 139, 133, 135, 141, 138, 134, 144, 140, 137, 133, 135, 145, 147, 135, 140, 149, 142, 133, 145, 134, 134, 138, 143, 140, 129, 144, 140, 136, 129, 136, 135, 133, 143, 143, 143, 144, 136, 163, 136, 145, 136, 130, 141, 138, 153, 140, 138, 142, 130, 143, 137, 146, 137, 139, 134, 139, 148, 141, 141, 142, 144, 137, 132, 134, 144, 148, 135, 143, 148, 140, 140, 140, 138, 140, 137, 140, 129, 142, 142, 141, 146, 139, 147, 145, 128, 138, 131, 141, 142, 142, 140, 151, 136, 140, 135, 137, 133, 135, 135, 135, 141, 149, 135, 138, 136, 131, 143, 138, 143, 135, 133, 136, 132, 139, 126, 141, 136, 134, 140, 144, 135, 139, 136, 125, 142, 135, 133, 139, 141, 145, 141, 145, 146, 143, 144, 138, 133, 138, 138, 137, 138, 135, 138, 133, 143, 132, 140, 143, 147, 127, 145, 137, 139, 137, 138, 141, 132, 143, 140, 146, 140, 138, 134, 137, 154, 137, 140, 130, 135, 136, 133, 140, 146, 142, 142, 140, 134, 137, 138, 142, 141, 132, 142, 139, 140, 137, 136, 134, 133, 143, 136, 141, 150, 141, 140, 135, 144, 142, 138, 132, 138, 132, 142, 140, 138, 138, 144, 133, 127, 126, 133, 146, 138, 132, 137, 141, 143, 133, 143, 141, 136, 134, 141, 133, 135, 134, 137, 146, 137, 142, 146, 138, 125, 145, 139, 136, 132, 134, 142, 141, 138, 150, 151, 146, 148, 137, 136, 137, 138, 146, 143, 124, 138, 140, 137, 140, 146, 129, 142, 150, 139, 138, 138, 130, 139, 136, 137, 145, 139, 139, 143, 141, 137, 137, 139, 130, 135, 150, 139, 143, 146, 133, 140, 133, 131, 137, 138, 132, 143, 144, 135, 134, 138, 135, 128, 140, 135, 146, 131, 138, 133, 142, 134, 136, 131, 139, 140, 137, 136, 136, 142, 140, 142, 134, 138, 138, 145, 145, 135, 138, 139, 138, 150, 140, 137, 141, 145, 144, 145, 138, 123, 125, 133, 140, 138, 142, 145, 142, 145, 125, 145, 134, 135, 135, 147, 136, 147, 145, 149, 141, 145, 140, 141, 133, 143, 132, 136, 136, 136, 142, 148, 144, 142, 140, 133, 133, 138, 144, 138, 140, 142, 141, 131, 132, 142, 148, 138, 140, 134, 139, 129, 142, 135, 128, 131, 145, 144, 137, 136, 142, 138, 143, 132, 133, 147, 148, 136, 132, 147, 139, 135, 148, 132, 149, 125, 144, 139, 135, 135, 131, 141, 130, 131, 131, 129, 136, 134, 147, 145, 133, 136, 140, 135, 143, 140, 141, 137, 139, 133, 143, 142, 141, 133, 137, 134, 142, 136, 136, 145, 139, 142, 147, 139, 150, 146, 141, 143, 141, 136, 137, 135, 150, 147, 141, 141, 129, 137, 147, 145, 130, 141, 134, 144, 147, 138, 138, 141, 147, 129, 142, 148, 137, 141, 137, 135, 138, 132, 137, 139, 126, 135, 146, 132, 139, 142, 139, 137, 146, 149, 130, 141, 149, 137, 133, 132, 136, 138, 138, 147, 141, 142, 135, 126, 140, 130, 132, 131, 144, 136, 140, 149, 141, 135, 127, 142, 148, 134, 140, 131, 136, 142, 134, 141, 142, 136, 144, 132, 131, 141, 139, 136, 138, 136, 138, 131, 136, 144, 144, 141, 137, 138, 141, 138, 136, 132, 132, 133, 138, 138, 145, 141, 129, 135, 119, 152, 140, 138, 141, 131, 135, 143, 140, 145, 140, 141, 129, 142, 140, 138, 141, 132, 147, 146, 132, 135, 137, 134, 132, 136, 134, 149, 138, 132, 139, 139, 134, 135, 137, 140, 145, 132, 141, 138, 132, 138, 132, 135, 141, 140, 145, 145, 143, 138, 136, 140, 142, 149, 149, 134, 139, 135, 145, 146, 136, 139, 140, 137, 141, 141, 139, 141, 134, 138, 132, 143, 137, 140, 140, 145, 139, 137, 133, 141, 144, 132, 137, 141, 144, 147, 132, 138, 141, 130, 135, 148, 140, 141, 140, 134, 146, 124, 154, 132, 141, 135, 139, 138, 135, 148, 146, 146, 133, 143, 134, 130, 149, 135, 149, 139, 141, 141, 149, 150, 137, 155, 131, 137, 141, 141, 137, 147, 119, 132, 142, 147, 162, 141, 144, 127, 136, 142, 139, 133, 133, 141, 148, 141, 118, 143, 141, 136, 139, 135, 141, 139, 142, 149, 134, 152, 139, 138, 143, 130, 137, 138, 138, 127, 147, 133, 134, 131, 134, 144, 140, 135, 134, 134, 140, 144, 131, 144, 138, 143, 133, 134, 143, 134, 141, 140, 139, 152, 141, 142, 140, 131, 136, 138, 131, 145, 139, 143, 154, 135, 123, 133, 146, 144, 137, 134, 134, 142, 154, 147, 132, 141, 126, 134, 133, 138, 121, 138, 134, 139, 135, 149, 142, 145, 127, 134, 139, 139, 132, 148, 136, 136, 134, 150, 143, 140, 139, 135, 141, 131, 131, 143, 137, 140, 138, 140, 140, 134, 147, 137, 136, 127, 131, 138, 147, 135, 144, 142, 141, 138, 137, 156, 131, 131, 144, 143, 145, 158, 138, 136, 140, 136, 140, 139, 137, 133, 138, 147, 144, 141, 144, 136, 143, 147, 148, 147, 141, 137, 145, 137, 133, 133, 132, 143, 143, 138, 128, 130, 145, 133, 137, 135, 130, 148, 137, 139, 138, 141, 136, 146, 138, 142, 138, 135, 128, 133, 138, 138, 148, 136, 133, 143, 131, 141, 141, 130, 144, 134, 124, 140, 144, 134, 130, 144, 127, 141, 142, 137, 145, 136, 149, 143, 139, 140, 129, 135, 136, 136, 138, 143, 140, 130, 139, 141, 141, 135, 140, 141, 146, 123, 141, 136, 136, 148, 138, 131, 141, 140, 139, 154, 138, 141, 128, 139, 139, 131, 138, 148, 142, 146, 151, 138, 137, 141, 136, 138, 151, 144, 142, 132, 129, 131, 126, 143, 132, 145, 143, 137, 150, 142, 139, 135, 133, 134, 132, 137, 141, 139, 149, 125, 140, 131, 146, 144, 146, 143, 136, 139, 142, 141, 133, 139, 144, 138, 140, 143, 139, 136, 133, 141, 140, 137, 134, 127, 141, 132, 142, 137, 137, 141, 140, 143, 142, 131, 149, 139, 143, 132, 129, 139, 135, 133, 140, 131, 131, 138, 140, 145, 138, 135, 133, 144, 139, 151, 141, 138, 131, 134, 134, 139, 140, 139, 129, 140, 132, 132, 132, 139, 145, 140, 142, 140, 139, 141, 144, 140, 144, 133, 134, 135, 142, 142, 143, 145, 143, 133, 171, 131, 140, 134, 149, 140, 151, 139, 137, 141, 128, 137, 129, 137, 135, 139, 143, 142, 138, 137, 147, 144, 149, 135, 141, 137, 137, 131, 142, 133, 141, 143, 141, 143, 132, 140, 149, 132, 142, 145, 137, 143, 146, 144, 140, 142, 140, 147, 132, 139, 124, 149, 151, 130, 142, 138, 137, 141, 130, 131, 139, 130, 145, 146, 133, 134, 134, 122, 144, 145, 142, 140, 142, 138, 138, 132, 144, 133, 135, 136, 131, 142, 138, 131, 139, 143, 138, 138, 133, 143, 141, 132, 139, 146, 132, 140, 136, 133, 135, 145, 140, 150, 140, 138, 126, 134, 149, 144, 137, 132, 145, 147, 145, 153, 138, 138, 147, 139, 146, 142, 130, 138, 138, 146, 142, 141, 140, 140, 141, 142, 148, 142, 137, 139, 137, 135, 144, 137, 133, 138, 141, 144, 141, 137, 133, 140, 142, 137, 136, 137, 137, 139, 144, 146, 142, 144, 142, 148, 146, 136, 130, 138, 135, 136, 142, 140, 132, 137, 150, 138, 143, 139, 128, 143, 147, 137, 136, 140, 134, 158, 141, 141, 133, 144, 139, 138, 144, 135, 133, 148, 129, 147, 131, 140, 128, 135, 138, 142, 146, 149, 125, 140, 141, 130, 146, 135, 141, 138, 133, 133, 139, 130, 149, 135, 139, 153, 142, 139, 132, 134, 152, 143, 146, 135, 146, 135, 134, 146, 133, 148, 149, 143, 144, 138, 137, 146, 137, 139, 125, 137, 137, 144, 146, 145, 145, 139, 136, 147, 149, 138, 145, 143, 137, 150, 141, 143, 152, 119, 140, 138, 129, 142, 138, 136, 141, 136, 136, 131, 148, 138, 144, 138, 132, 143, 139, 144, 130, 141, 131, 138, 146, 139, 145, 141, 142, 131, 142, 142, 133, 137, 142, 137, 146, 145, 147, 139, 137, 144, 135, 140, 146, 136, 138, 141, 142, 138, 136, 138, 139, 147, 140, 147, 127, 141, 141, 144, 141, 138, 135, 133, 153, 136, 138, 143, 152, 143, 140, 132, 146, 158, 137, 139, 135, 143, 132, 141, 134, 138, 140, 141, 144, 149, 139, 139, 134, 145, 144, 137, 140, 138, 140, 139, 138, 134, 135, 140, 139, 137, 137, 145, 143, 138, 134, 136, 136, 132, 151, 138, 140, 130, 139, 143, 140, 143, 136, 136, 129, 146, 137, 152, 135, 141, 137, 138, 148, 141, 138, 137, 138, 144, 142, 131, 139, 139, 137, 140, 136, 137, 140, 139, 136, 140, 134, 140, 137, 145, 142, 147, 136, 142, 136, 144, 145, 145, 143, 139, 127, 134, 135, 140, 130, 143, 146, 139, 136, 131, 140, 143, 142, 140, 142, 138, 137, 146, 136, 141, 138, 135, 138, 131, 146, 143, 139, 132, 141, 137, 143, 126, 140, 138, 132, 132, 138, 146, 142, 139, 145, 135, 142, 146, 131, 139, 130, 137, 141, 149, 137, 131, 135, 142, 136, 121, 139, 133, 140, 141, 138, 138, 134, 149, 138, 142, 133, 150, 133, 142, 143, 146, 147, 138, 143, 142, 142, 146, 147, 141, 138, 146, 132, 140, 146, 140, 140, 126, 142, 147, 127, 137, 144, 140, 132, 140, 130, 139, 138, 124, 142, 139, 139, 126, 137, 142, 141, 150, 144, 134, 145, 137, 138, 138, 140, 153, 140, 130, 138, 136, 143, 138, 134, 143, 138, 136, 147, 133, 139, 139, 140, 140, 143, 146, 145, 137, 134, 122, 139, 147, 136, 135, 149, 139, 140, 139, 137, 142, 133, 144, 135, 136, 151, 127, 134, 141, 133, 141, 135, 138, 137, 141, 144, 143, 128, 132, 148, 141, 141, 137, 140, 141, 145, 142, 138, 140, 141, 146, 143, 141, 138, 146, 132, 152, 140, 138, 131, 144, 150, 146, 140, 145, 138, 135, 133, 138, 125, 131, 133, 137, 138, 135, 143, 139, 134, 139, 143, 133, 140, 143, 146, 140, 140, 138, 137, 139, 141, 141, 136, 135, 144, 134, 136, 127, 137, 139, 143, 154, 137, 142, 134, 144, 147, 134, 136, 141, 134, 139, 133, 140, 142, 154, 129, 149, 136, 131, 138, 127, 133, 137, 132, 133, 134, 138, 142, 132, 137, 136, 144, 130, 145, 143, 145, 133, 140, 135, 143, 136, 140, 135, 142, 136, 138, 130, 135, 139, 148, 142, 137, 139, 142, 137, 143, 145, 136, 139, 136, 146, 132, 142, 136, 143, 136, 130, 145, 142, 124, 145, 135, 132, 136, 133, 146, 143, 129, 138, 146, 144, 141, 141, 138, 145, 136, 140, 149, 142, 140, 130, 147, 150, 137, 135, 142, 134, 140, 138, 131, 129, 136, 147, 136, 137, 136, 142, 146, 140, 142, 133, 141, 137, 140, 151, 142, 145, 135, 133, 146, 147, 134, 144, 136, 134, 143, 139, 142, 134, 133, 132, 128, 141, 138, 145, 141, 134, 149, 141, 134, 133, 137, 139, 142, 146, 138, 145, 141, 136, 139, 145, 154, 133, 141, 143, 138, 130, 129, 137, 131, 146, 143, 137, 142, 145, 135, 131, 141, 137, 142, 132, 141, 148, 138, 140, 137, 142, 131, 140, 138, 138, 140, 140, 130, 134, 137, 150, 135, 145, 136, 143, 135, 139, 142, 130, 130, 139, 137, 147, 147, 139, 143, 144, 141, 143, 133, 145, 138, 136, 139, 136, 139, 145, 135, 139, 134, 136, 145, 140, 143, 137, 141, 143, 139, 138, 140, 129, 140, 131, 145, 133, 140, 139, 136, 140, 132, 136, 138, 135, 139, 144, 136, 134, 141, 142, 149, 146, 141, 138, 145, 148, 139, 127, 143, 144, 137, 140, 144, 140, 148, 133, 133, 151, 134, 141, 135, 145, 136, 143, 129, 135, 142, 140, 137, 140, 135, 146, 133, 140, 125, 145, 131, 149, 133, 133, 128, 140, 127, 132, 146, 128, 134, 139, 140, 139, 143, 137, 144, 131, 143, 144, 143, 140, 145, 139, 148, 143, 136, 137, 138, 140, 136, 129, 138, 133, 135, 142, 137, 139, 146, 136, 136, 147, 150, 144, 141, 131, 136, 145, 140, 135, 139, 138, 141, 130, 133, 129, 133, 143, 138, 129, 138, 137, 134, 139, 143, 140, 131, 127, 145, 147, 145, 141, 142, 136, 136, 146, 148, 136, 141, 144, 135, 140, 145, 132, 135, 137, 142, 136, 142, 137, 134, 124, 135, 148, 123, 144, 149, 149, 142, 141, 133, 133, 140, 138, 141, 145, 136, 130, 145, 143, 136, 147, 134, 131, 143, 138, 135, 146, 141, 150, 143, 141, 142, 136, 137, 147, 143, 133, 143, 142, 152, 143, 137, 137, 130, 138, 142, 143, 137, 135, 134, 133, 135, 136, 139, 138, 135, 132, 140, 153, 145, 140, 140, 145, 140, 139, 136, 138, 136, 132, 134, 131, 136, 139, 140, 132, 142, 141, 131, 139, 141, 138, 138, 137, 138, 135, 132, 138, 135, 148, 134, 146, 140, 141, 139, 133, 147, 145, 142, 144, 141, 138, 144, 152, 144, 140, 144, 137, 137, 146, 137, 137, 144, 135, 130, 153, 136, 138, 133, 128, 140, 139, 143, 144, 141, 143, 140, 137, 138, 132, 134, 136, 145, 135, 145, 138, 134, 136, 145, 122, 134, 144, 130, 143, 132, 143, 141, 140, 129, 135, 141, 147, 139, 140, 155, 142, 134, 146, 132, 136, 148, 138, 158, 138, 136, 128, 143, 145, 135, 141, 146, 140, 132, 135, 144, 141, 133, 136, 144, 137, 153, 135, 138, 137, 153, 148, 146, 133, 140, 141, 143, 133, 126, 147, 144, 139, 150, 139, 135, 148, 150, 133, 131, 140, 129, 136, 138, 150, 132, 142, 140, 135, 146, 129, 128, 139, 133, 132, 129, 131, 143, 139, 137, 138, 137, 154, 134, 144, 142, 138, 132, 134, 150, 132, 132, 143, 143, 137, 133, 137, 130, 143, 147, 146, 136, 145, 140, 141, 140, 142, 145, 139, 138, 134, 137, 146, 136, 140, 146, 130, 139, 146, 137, 144, 144, 131, 141, 130, 138, 142, 128, 134, 148, 135, 143, 141, 136, 135, 151, 139, 146, 139, 146, 141, 137, 136, 143, 141, 137, 139, 144, 146, 141, 132, 139, 130, 147, 130, 145, 130, 136, 149, 137, 140, 131, 137, 138, 142, 129, 144, 130, 138, 135, 140, 152, 141, 141, 137, 140, 138, 134, 138, 136, 140, 131, 135, 144, 136, 133, 145, 143, 133, 137, 139, 145, 134, 138, 138, 141, 140, 143, 147, 141, 136, 128, 150, 136, 152, 149, 134, 146, 136, 145, 139, 146, 136, 135, 142, 143, 140, 142, 146, 137, 134, 136, 132, 144, 142, 141, 133, 143, 127, 141, 144, 126, 139, 129, 176, 136, 150, 134, 139, 134, 137, 142, 141, 138, 153, 133, 134, 134, 142, 145, 140, 147, 141, 144, 146, 138, 151, 142, 131, 140, 140, 136, 136, 150, 137, 135, 136, 144, 134, 134, 137, 141, 143, 133, 156, 136, 146, 127, 152, 144, 136, 139, 137, 133, 129, 145, 133, 148, 139, 141, 147, 136, 137, 138, 135, 142, 141, 139, 149, 138, 143, 147, 143, 146, 143, 137, 141, 139, 132, 128, 128, 144, 144, 137, 125, 145, 145, 130, 142, 141, 146, 137, 142, 134, 123, 133, 133, 145, 128, 143, 125, 139, 124, 135, 135, 140, 136, 136, 133, 142, 149, 126, 136, 141, 147, 127, 147, 141, 141, 143, 136, 141, 138, 150, 138, 160, 145, 144, 135, 147, 147, 136, 131, 142, 137, 129, 141, 136, 130, 142, 139, 128, 137, 137, 127, 147, 139, 128, 143, 147, 143, 137, 133, 132, 139, 143, 135, 139, 136, 141, 134, 135, 129, 135, 131, 139, 133, 145, 152, 133, 131, 139, 140, 134, 142, 139, 133, 142, 145, 144, 153, 128, 130, 137, 138, 156, 143, 126, 135, 140, 147, 136, 147, 143, 139, 138, 147, 139, 145, 139, 146, 139, 141, 138, 139, 143, 131, 140, 140, 134, 141, 140, 140, 131, 140, 139, 148, 132, 147, 146, 137, 150, 140, 135, 138, 139, 142, 137, 142, 137, 140, 141, 141, 143, 136, 134, 140, 135, 153, 144, 135, 131, 142, 145, 139, 136, 150, 135, 141, 138, 139, 141, 137, 137, 145, 148, 125, 134, 140, 143, 140, 145, 151, 137, 137, 143, 135, 137, 138, 137, 143, 132, 140, 142, 141, 134, 144, 141, 144, 137, 143, 144, 141, 140, 142, 141, 133, 142, 136, 140, 141, 137, 133, 138, 138, 148, 130, 139, 135, 131, 138, 131, 141, 142, 137, 135, 138, 141, 143, 135, 137, 133, 142, 145, 138, 135, 134, 133, 136, 126, 134, 141, 139, 147, 139, 142, 140, 139, 147, 146, 144, 144, 139, 139, 138, 147, 147, 134, 138, 128, 144, 135, 136, 143, 142, 134, 136, 137, 141, 135, 148, 129, 159, 136, 139, 139, 136, 136, 141, 134, 139, 137, 139, 140, 141, 141, 143, 142, 138, 151, 134, 146, 128, 141, 141, 142, 141, 139, 154, 134, 141, 147, 134, 139, 140, 134, 143, 143, 138, 132, 140, 136, 131, 139, 143, 144, 142, 151, 137, 131, 146, 135, 139, 128, 144, 155, 139, 139, 144, 150, 133, 134, 137, 143, 139, 144, 136, 135, 140, 141, 133, 145, 143, 150, 144, 138, 135, 148, 139, 132, 137, 147, 143, 142, 130, 134, 135, 138, 136, 139, 131, 137, 147, 140, 137, 132, 130, 150, 135, 147, 136, 137, 139, 144, 140, 138, 140, 134, 140, 145, 143, 138, 143, 140, 148, 145, 134, 138, 134, 138, 139, 139, 154, 136, 132, 138, 137, 142, 142, 140, 136, 135, 139, 135, 144, 140, 149, 140, 132, 137, 136, 141, 137, 133, 136, 141, 141, 142, 135, 130, 142, 135, 141, 138, 140, 139, 139, 140, 141, 142, 132, 140, 139, 136, 139, 143, 148, 142, 140, 142, 140, 139, 138, 139, 136, 135, 160, 132, 135, 134, 142, 139, 128, 139, 138, 143, 135, 142, 135, 147, 138, 139, 137, 136, 140, 131, 133, 146, 133, 132, 136, 137, 147, 136, 139, 141, 139, 143, 138, 123, 137, 146, 134, 144, 135, 152, 140, 134, 135, 144, 125, 143, 139, 138, 144, 140, 147, 142, 137, 143, 143, 116, 138, 135, 141, 134, 132, 142, 138, 139, 137, 150, 141, 141, 138, 136, 145, 148, 150, 141, 139, 142, 138, 135, 134, 131, 130, 143, 136, 139, 139, 134, 131, 145, 144, 143, 132, 135, 145, 132, 145, 147, 132, 139, 112, 146, 150, 138, 143, 135, 138, 98, 140, 141, 132, 137, 138, 139, 131, 139, 142, 142, 137, 133, 136, 145, 148, 143, 137, 137, 146, 135, 129, 141, 139, 131, 144, 134, 141, 146, 134, 142, 140, 140, 137, 138, 136, 143, 139, 127, 130, 136, 147, 136, 130, 140, 141, 154, 140, 137, 136, 145, 150, 139, 137, 136, 146, 143, 140, 141, 144, 142, 140, 126, 134, 143, 146, 138, 143, 134, 141, 144, 130, 136, 139, 139, 144, 144, 131, 135, 135, 136, 147, 133, 119, 135, 135, 140, 129, 138, 136, 135, 119, 139, 136, 127, 137, 146, 135, 147, 132, 135, 134, 136, 136, 141, 141, 135, 143, 137, 140, 147, 144, 139, 132, 139, 137, 142, 132, 138, 140, 135, 138, 137, 144, 138, 146, 138, 145, 144, 140, 142, 150, 141, 133, 145, 145, 136, 134, 133, 146, 133, 141, 138, 145, 123, 137, 138, 138, 139, 132, 138, 147, 139, 137, 126, 144, 134, 134, 147, 145, 132, 147, 146, 146, 139, 146, 143, 134, 137, 144, 144, 131, 133, 133, 138, 127, 134, 131, 141, 133, 138, 137, 155, 146, 137, 133, 157, 132, 130, 142, 134, 142, 137, 150, 137, 134, 140, 134, 136, 140, 128, 142, 138, 148, 133, 137, 147, 141, 142, 141, 147, 133, 159, 135, 149, 129, 144, 143, 137, 142, 132, 133, 135, 140, 135, 134, 139, 157, 132, 143, 142, 141, 145, 141, 141, 145, 144, 143, 148, 141, 139, 156, 132, 157, 134, 137, 140, 136, 154, 138, 136, 146, 138, 141, 149, 139, 149, 140, 134, 134, 146, 129, 143, 140, 135, 129, 137, 139, 147, 144, 138, 133, 142, 137, 135, 145, 141, 140, 140, 128, 145, 131, 146, 130, 128, 143, 136, 145, 140, 137, 145, 136, 138, 140, 133, 129, 147, 147, 137, 132, 130, 135, 139, 134, 141, 137, 142, 136, 138, 152, 148, 143, 151, 143, 137, 142, 138, 140, 138, 141, 127, 134, 136, 133, 134, 137, 132, 141, 117, 148, 140, 132, 137, 128, 156, 147, 135, 135, 128, 135, 140, 145, 136, 138, 145, 139, 135, 125, 141, 137, 134, 130, 135, 131, 138, 152, 141, 145, 137, 134, 140, 140, 137, 144, 127, 138, 139, 135, 152, 146, 155, 130, 136, 146, 130, 148, 147, 135, 124, 144, 147, 135, 146, 148, 141, 129, 140, 132, 134, 126, 145, 128, 149, 144, 142, 151, 132, 145, 142, 138, 129, 141, 138, 145, 133, 136, 135, 147, 140, 136, 137, 143, 131, 136, 121, 131, 131, 135, 135, 143, 145, 139, 143, 135, 134, 138, 150, 141, 151, 145, 134, 132, 143, 148, 139, 133, 138, 127, 141, 142, 135, 126, 132, 133, 132, 140, 142, 135, 129, 132, 139, 139, 128, 133, 134, 139, 140, 132, 133, 143, 137, 143, 146, 144, 138, 132, 140, 142, 150, 134, 136, 139, 141, 139, 139, 139, 135, 143, 134, 142, 139, 124, 134, 129, 140, 142, 137, 135, 137, 140, 133, 135, 141, 140, 149, 141, 141, 141, 140, 144, 142, 138, 155, 139, 144, 140, 149, 135, 139, 145, 134, 131, 141, 142, 139, 139, 138, 143, 140, 136, 143, 138, 136, 140, 138, 151, 141, 141, 131, 141, 137, 142, 132, 132, 136, 145, 138, 142, 147, 136, 149, 126, 134, 147, 138, 141, 140, 146, 134, 137, 127, 135, 133, 140, 147, 125, 136, 156, 145, 130, 130, 132, 140, 150, 135, 138, 143, 137, 145, 135, 142, 138, 141, 126, 131, 134, 142, 121, 134, 163, 134, 129, 139, 140, 133, 133, 145, 137, 140, 131, 136, 130, 140, 140, 134, 139, 126, 127, 126, 138, 135, 140, 143, 150, 148, 145, 149, 133, 134, 131, 130, 144, 150, 133, 152, 135, 143, 137, 141, 147, 142, 134, 145, 139, 138, 145, 142, 136, 142, 137, 146, 137, 124, 146, 147, 139, 146, 146, 130, 138, 141, 132, 161, 128, 138, 130, 125, 139, 138, 132, 136, 136, 147, 124, 144, 142, 138, 134, 147, 147, 133, 137, 133, 133, 143, 158, 136, 149, 149, 137, 137, 149, 128, 143, 142, 144, 138, 139, 138, 139, 140, 149, 128, 138, 134, 138, 124, 136, 132, 139, 129, 133, 136, 135, 132, 144, 143, 136, 129, 137, 152, 136, 141, 135, 145, 135, 133, 144, 138, 144, 137, 150, 142, 131, 141, 140, 126, 131, 142, 141, 136, 139, 143, 139, 143, 136, 143, 136, 139, 130, 146, 143, 150, 137, 132, 149, 132, 140, 132, 134, 132, 138, 146, 140, 130, 134, 142, 139, 150, 151, 147, 140, 137, 143, 142, 128, 144, 139, 137, 136, 129, 137, 130, 133, 136, 138, 134, 131, 132, 141, 140, 128, 132, 144, 137, 146, 142, 136, 149, 133, 129, 134, 141, 137, 146, 147, 135, 134, 136, 136, 129, 139, 145, 144, 132, 132, 147, 146, 143, 141, 154, 137, 133, 132, 146, 141, 137, 146, 147, 135, 138, 146, 145, 141, 136, 134, 141, 133, 136, 145, 130, 136, 131, 132, 142, 155, 136, 138, 134, 142, 137, 134, 138, 145, 136, 146, 134, 138, 137, 137, 135, 129, 133, 141, 140, 138, 139, 136, 137, 142, 140, 138, 137, 144, 146, 148, 148, 150, 127, 139, 141, 141, 123, 143, 129, 137, 132, 139, 134, 135, 133, 138, 128, 135, 144, 132, 139, 134, 130, 126, 156, 133, 131, 135, 141, 130, 142, 138, 145, 141, 153, 138, 137, 133, 139, 146, 127, 136, 138, 143, 143, 152, 136, 139, 148, 138, 137, 132, 149, 133, 130, 140, 138, 139, 142, 145, 134, 141, 144, 133, 140, 140, 129, 135, 136, 131, 145, 140, 141, 137, 134, 132, 142, 150, 135, 134, 145, 149, 132, 154, 140, 124, 145, 140, 146, 137, 147, 137, 136, 134, 135, 134, 134, 149, 133, 140, 131, 144, 133, 135, 137, 140, 139, 137, 152, 134, 139, 144, 145, 140, 138, 143, 128, 131, 138, 136, 130, 133, 144, 131, 143, 150, 136, 130, 139, 136, 142, 142, 133, 131, 137, 133, 137, 133, 135, 139, 141, 132, 134, 136, 136, 151, 137, 141, 133, 142, 138, 131, 142, 137, 141, 138, 138, 141, 129, 151, 150, 142, 135, 138, 147, 126, 153, 144, 140, 136, 126, 135, 130, 148, 140, 139, 134, 135, 128, 144, 136, 137, 146, 143, 138, 138, 136, 139, 152, 141, 121, 145, 140, 151, 132, 130, 137, 133, 141, 147, 140, 134, 151, 141, 143, 141, 145, 144, 140, 138, 142, 141, 135, 138, 134, 141, 133, 139, 142, 135, 140, 135, 136, 135, 135, 149, 135, 131, 137, 131, 145, 155, 132, 133, 133, 147, 135, 134, 132, 136, 136, 134, 136, 142, 134, 138, 139, 138, 143, 132, 135, 139, 133, 142, 138, 136, 139, 135, 146, 145, 137, 134, 150, 133, 124, 131, 137, 135, 139, 135, 149, 140, 134, 133, 132, 143, 154, 138, 139, 141, 140, 139, 135, 133, 132, 129, 143, 136, 138, 145, 142, 144, 150, 145, 136, 139, 129, 145, 147, 136, 135, 138, 141, 138, 142, 145, 135, 134, 144, 143, 134, 139, 129, 134, 137, 142, 143, 139, 135, 147, 132, 138, 136, 141, 138, 133, 144, 129, 135, 143, 139, 142, 142, 137, 140, 141, 141, 144, 135, 141, 133, 141, 145, 143, 147, 135, 135, 136, 141, 134, 138, 138, 145, 144, 133, 137, 149, 136, 142, 129, 138, 146, 142, 134, 135, 137, 142, 143, 136, 141, 134, 144, 142, 134, 139, 127, 144, 138, 137, 141, 132, 135, 138, 137, 136, 133, 134, 134, 140, 138, 140, 137, 140, 141, 138, 138, 136, 134, 137, 145, 145, 140, 136, 138, 148, 141, 135, 139, 138, 144, 144, 140, 135, 140, 134, 149, 142, 131, 142, 141, 136, 142, 136, 146, 139, 133, 141, 146, 143, 139, 139, 136, 135, 134, 135, 141, 134, 134, 145, 142, 140, 143, 139, 139, 141, 137, 135, 140, 141, 148, 143, 138, 146, 144, 137, 144, 133, 136, 136, 141, 143, 144, 139, 138, 147, 135, 140, 151, 134, 142, 145, 147, 136, 135, 146, 132, 138, 134, 138, 142, 135, 142, 136, 140, 143, 144, 137, 136, 144, 136, 132, 144, 137, 135, 137, 140, 141, 135, 137, 135, 141, 139, 143, 143, 140, 136, 141, 143, 141, 134, 139, 143, 139, 140, 138, 140, 142, 136, 145, 136, 135, 136, 137, 137, 147, 143, 136, 141, 136, 135, 140, 145, 141, 140, 135, 131, 139, 141, 141, 139, 138, 139, 141, 137, 150, 137, 139, 137, 143, 137, 134, 140, 136, 139, 142, 138, 143, 140, 139, 137, 134, 142, 134, 136, 149, 132, 137, 141, 140, 140, 135, 145, 139, 136, 138, 137, 139, 132, 141, 140, 134, 132, 147, 137, 134, 133, 143, 134, 141, 133, 135, 134, 142, 134, 137, 142, 137, 141, 140, 140, 139, 138, 131, 138, 132, 144, 138, 139, 138, 140, 136, 138, 138, 138, 149, 135, 140, 137, 133, 136, 139, 145, 138, 142, 133, 135, 142, 133, 143, 136, 144, 142, 142, 137, 143, 138, 135, 137, 138, 138, 148, 140, 129, 139, 137, 139, 138, 140, 137, 134, 134, 143, 137, 132, 145, 136, 142, 140, 140, 140, 142, 135, 137, 136, 153, 139, 140, 140, 135, 139, 136, 141, 141, 142, 141, 143, 139, 137, 141, 147, 136, 132, 137, 138, 143, 143, 141, 145, 146, 131, 137, 144, 139, 139, 136, 142, 136, 137, 137, 140, 140, 135, 136, 144, 137, 139, 133, 140, 141, 138, 130, 142, 138, 139, 134, 144, 141, 137, 139, 143, 141, 141, 133, 135, 142, 144, 139, 141, 134, 135, 143, 131, 137, 143, 136, 143, 134, 137, 139, 139, 139, 147, 136, 137, 153, 141, 147, 144, 142, 139, 146, 144, 144, 135, 138, 146, 139, 140, 153, 129, 141, 131, 146, 144, 133, 141, 144, 130, 135, 145, 139, 140, 141, 142, 144, 143, 135, 134, 136, 135, 138, 143, 149, 141, 137, 142, 137, 143, 142, 136, 142, 139, 142, 132, 143, 145, 141, 134, 139, 147, 137, 138, 143, 141, 142, 139, 140, 141, 140, 136, 134, 135, 139, 135, 138, 141, 131, 132, 134, 130, 150, 140, 140, 156, 138, 136, 134, 147, 138, 145, 138, 137, 139, 135, 134, 141, 135, 136, 142, 137, 137, 137, 132, 137, 135, 138, 141, 137, 135, 146, 145, 133, 130, 152, 140, 148, 140, 139, 138, 145, 140, 140, 147, 132, 142, 139, 140, 140, 147, 141, 134, 147, 147, 143, 134, 137, 138, 138, 138, 143, 133, 132, 139, 148, 131, 141, 142, 129, 141, 139, 148, 141, 142, 139, 146, 139, 138, 140, 138, 136, 133, 141, 137, 132, 141, 140, 140, 137, 138, 143, 138, 139, 139, 141, 135, 138, 141, 140, 140, 137, 128, 148, 143, 141, 135, 135, 132, 149, 143, 131, 141, 138, 135, 140, 131, 143, 138, 143, 145, 135, 130, 144, 135, 138, 139, 139, 146, 142, 140, 129, 141, 140, 143, 132, 146, 154, 140, 133, 151, 133, 141, 142, 140, 145, 145, 135, 148, 130, 144, 135, 137, 137, 139, 149, 145, 142, 135, 130, 141, 140, 138, 141, 138, 136, 145, 137, 142, 145, 137, 141, 133, 140, 141, 133, 133, 141, 142, 147, 142, 144, 131, 141, 137, 144, 134, 140, 130, 139, 137, 135, 142, 140, 134, 144, 142, 139, 135, 142, 144, 136, 134, 132, 137, 139, 137, 136, 142, 142, 142, 140, 132, 131, 138, 134, 132, 135, 146, 147, 138, 134, 142, 140, 141, 131, 140, 134, 132, 134, 134, 136, 141, 140, 142, 145, 137, 141, 153, 141, 133, 146, 140, 141, 143, 141, 128, 134, 140, 140, 142, 127, 144, 136, 142, 144, 140, 138, 142, 144, 149, 142, 139, 140, 137, 138, 135, 133, 138, 140, 136, 142, 139, 134, 135, 133, 139, 135, 139, 140, 143, 137, 143, 139, 139, 137, 138, 151, 141, 144, 133, 136, 137, 139, 141, 138, 140, 138, 146, 140, 129, 140, 136, 144, 139, 140, 126, 143, 139, 134, 134, 134, 146, 130, 142, 144, 138, 129, 145, 144, 135, 134, 138, 143, 137, 137, 127, 140, 144, 134, 127, 138, 137, 133, 145, 134, 144, 131, 135, 140, 137, 141, 135, 130, 145, 148, 127, 135, 139, 133, 142, 135, 145, 147, 134, 140, 144, 124, 148, 134, 144, 145, 133, 139, 147, 137, 152, 139, 130, 142, 137, 136, 139, 142, 135, 137, 146, 140, 118, 140, 131, 150, 144, 137, 133, 137, 134, 147, 139, 133, 136, 138, 145, 142, 139, 139, 123, 139, 138, 139, 134, 126, 145, 140, 134, 147, 144, 134, 146, 145, 126, 137, 141, 142, 143, 139, 143, 141, 142, 141, 139, 135, 136, 134, 139, 136, 134, 142, 132, 147, 136, 136, 139, 140, 140, 133, 133, 141, 129, 141, 136, 141, 134, 137, 133, 133, 137, 135, 138, 143, 141, 145, 150, 133, 137, 138, 138, 143, 140, 145, 146, 142, 126, 141, 141, 143, 141, 150, 145, 141, 143, 144, 130, 133, 133, 138, 144, 133, 140, 147, 143, 142, 142, 133, 136, 144, 140, 131, 129, 142, 132, 131, 137, 132, 139, 140, 136, 137, 149, 146, 145, 144, 130, 137, 142, 141, 133, 133, 133, 144, 137, 137, 148, 141, 135, 130, 143, 145, 135, 138, 147, 144, 134, 141, 140, 137, 136, 138, 133, 153, 143, 142, 139, 137, 144, 138, 133, 142, 132, 135, 136, 138, 142, 161, 145, 134, 156, 137, 157, 137, 137, 143, 133, 133, 127, 134, 130, 141, 138, 137, 128, 143, 130, 140, 141, 131, 139, 136, 139, 135, 140, 133, 137, 142, 146, 139, 138, 140, 151, 132, 143, 143, 146, 150, 141, 145, 141, 134, 139, 146, 146, 142, 138, 133, 130, 139, 134, 143, 142, 140, 143, 133, 138, 145, 134, 134, 130, 142, 149, 148, 148, 139, 134, 147, 138, 129, 144, 137, 134, 147, 136, 150, 150, 138, 138, 140, 135, 132, 144, 141, 130, 136, 136, 134, 145, 145, 138, 143, 136, 129, 138, 131, 108, 146, 136, 138, 131, 142, 146, 147, 145, 136, 142, 134, 134, 136, 134, 135, 144, 157, 133, 135, 131, 152, 135, 138, 135, 139, 134, 143, 130, 149, 131, 146, 132, 142, 144, 135, 147, 132, 150, 143, 136, 139, 138, 140, 141, 135, 136, 113, 140, 143, 141, 133, 129, 146, 149, 144, 143, 141, 149, 154, 135, 133, 136, 140, 135, 145, 147, 136, 133, 139, 130, 136, 133, 152, 140, 140, 136, 147, 137, 133, 150, 133, 143, 148, 139, 132, 129, 147, 138, 136, 133, 130, 139, 139, 125, 143, 145, 145, 131, 136, 141, 130, 137, 142, 142, 137, 139, 173, 137, 133, 142, 141, 141, 138, 128, 147, 135, 136, 135, 143, 142, 145, 131, 146, 134, 133, 150, 139, 146, 144, 147, 136, 144, 139, 137, 144, 134, 137, 127, 127, 139, 145, 136, 132, 140, 141, 132, 140, 154, 146, 145, 138, 143, 155, 129, 143, 138, 153, 137, 139, 132, 140, 145, 137, 137, 142, 135, 142, 133, 142, 138, 141, 143, 128, 146, 133, 132, 138, 145, 142, 138, 130, 147, 169, 142, 141, 144, 131, 133, 144, 135, 131, 137, 138, 115, 139, 141, 140, 141, 143, 144, 135, 134, 133, 151, 135, 138, 139, 140, 123, 138, 142, 153, 141, 143, 137, 149, 145, 143, 140, 142, 140, 134, 140, 135, 136, 140, 131, 140, 138, 133, 155, 153, 138, 138, 136, 141, 163, 138, 108, 138, 136, 133, 143, 132, 146, 130, 137, 141, 141, 137, 140, 138, 135, 142, 139, 150, 137, 127, 131, 140, 139, 147, 131, 132, 144, 142, 139, 146, 138, 145, 138, 128, 138, 142, 137, 143, 134, 144, 142, 143, 145, 141, 138, 137, 136, 124, 136, 133, 132, 143, 135, 131, 148, 138, 144, 131, 148, 137, 139, 124, 141, 142, 144, 145, 135, 137, 137, 143, 137, 147, 144, 143, 140, 140, 136, 148, 128, 130, 142, 147, 135, 148, 142, 143, 144, 132, 143, 140, 130, 143, 144, 139, 144, 145, 135, 135, 141, 146, 145, 135, 141, 154, 138, 142, 140, 143, 145, 148, 142, 140, 144, 138, 145, 130, 141, 137, 129, 137, 142, 143, 145, 142, 134, 135, 147, 135, 143, 134, 150, 139, 139, 140, 139, 135, 133, 132, 139, 150, 136, 121, 135, 140, 136, 124, 147, 147, 152, 139, 130, 130, 143, 139, 146, 134, 146, 129, 139, 136, 139, 142, 147, 162, 140, 130, 142, 134, 141, 145, 138, 143, 126, 123, 133, 137, 148, 133, 141, 141, 152, 134, 136, 136, 150, 139, 129, 135, 143, 137, 139, 130, 140, 132, 137, 134, 138, 140, 142, 147, 130, 142, 129, 133, 144, 137, 151, 144, 138, 130, 136, 126, 142, 136, 127, 135, 136, 146, 137, 144, 134, 135, 138, 137, 134, 138, 139, 135, 143, 133, 151, 137, 139, 145, 140, 144, 136, 140, 132, 130, 141, 132, 132, 141, 138, 128, 143, 134, 130, 135, 138, 127, 135, 133, 151, 137, 129, 141, 137, 137, 139, 137, 136, 137, 139, 138, 153, 133, 136, 132, 138, 143, 130, 137, 149, 138, 131, 143, 132, 142, 140, 137, 139, 146, 132, 132, 140, 137, 146, 143, 134, 138, 142, 150, 139, 142, 138, 141, 142, 125, 140, 134, 132, 134, 145, 141, 142, 136, 144, 140, 139, 129, 131, 129, 140, 144, 133, 136, 141, 137, 134, 136, 145, 131, 141, 143, 128, 137, 138, 141, 138, 148, 141, 143, 141, 134, 136, 142, 151, 141, 130, 140, 141, 137, 128, 146, 142, 140, 138, 147, 139, 137, 142, 141, 138, 134, 136, 135, 138, 146, 149, 146, 151, 143, 131, 129, 137, 140, 142, 147, 137, 156, 144, 124, 137, 132, 147, 135, 144, 139, 139, 141, 140, 130, 138, 140, 135, 134, 154, 140, 151, 132, 139, 129, 142, 135, 135, 127, 143, 122, 143, 133, 139, 137, 134, 138, 141, 140, 135, 133, 130, 143, 137, 134, 143, 141, 143, 138, 134, 143, 138, 140, 135, 141, 133, 139, 131, 145, 144, 128, 142, 130, 127, 140, 141, 132, 130, 142, 133, 135, 139, 139, 142, 125, 137, 143, 143, 139, 140, 147, 137, 144, 144, 148, 141, 131, 133, 153, 142, 144, 146, 140, 136, 145, 132, 145, 148, 136, 139, 133, 126, 136, 134, 133, 133, 137, 148, 144, 142, 151, 134, 133, 129, 141, 153, 141, 146, 124, 140, 146, 132, 123, 140, 142, 127, 143, 145, 149, 154, 136, 145, 140, 141, 139, 137, 140, 136, 136, 136, 145, 140, 128, 139, 136, 141, 143, 128, 144, 144, 135, 146, 141, 123, 147, 142, 151, 138, 139, 136, 133, 140, 120, 128, 141, 139, 137, 139, 147, 134, 139, 138, 143, 144, 141, 141, 133, 136, 139, 131, 139, 131, 141, 132, 132, 139, 137, 139, 145, 139, 137, 128, 131, 138, 142, 134, 132, 133, 133, 139, 137, 128, 133, 157, 146, 136, 145, 147, 143, 141, 140, 146, 138, 141, 137, 137, 141, 139, 141, 138, 131, 153, 138, 134, 148, 142, 144, 146, 143, 129, 140, 138, 147, 142, 134, 131, 133, 129, 156, 139, 138, 141, 132, 128, 145, 136, 135, 132, 140, 135, 137, 142, 121, 123, 130, 139, 134, 139, 146, 146, 140, 144, 143, 147, 149, 140, 137, 141, 144, 145, 142, 138, 128, 135, 130, 148, 137, 156, 140, 139, 134, 143, 149, 135, 143, 135, 146, 138, 136, 139, 132, 133, 136, 140, 132, 142, 140, 141, 137, 147, 130, 140, 142, 142, 139, 130, 139, 138, 132, 145, 135, 127, 138, 131, 139, 131, 133, 145, 139, 140, 139, 153, 131, 129, 135, 126, 144, 159, 135, 139, 131, 143, 133, 143, 131, 129, 133, 138, 130, 139, 144, 139, 137, 140, 135, 137, 136, 144, 126, 138, 134, 141, 129, 140, 131, 141, 135, 140, 140, 138, 140, 156, 148, 131, 140, 145, 136, 133, 133, 137, 139, 140, 136, 138, 128, 144, 143, 135, 145, 141, 149, 159, 131, 141, 133, 144, 139, 134, 136, 139, 125, 131, 133, 147, 148, 158, 139, 135, 138, 137, 143, 140, 136, 140, 142, 152, 148, 134, 134, 137, 141, 138, 135, 145, 148, 144, 139, 153, 144, 147, 137, 141, 144, 142, 130, 124, 153, 138, 129, 136, 149, 140, 149, 138, 136, 134, 143, 134, 137, 147, 135, 131, 145, 139, 147, 136, 137, 149, 130, 134, 145, 128, 133, 136, 140, 142, 131, 123, 143, 139, 135, 143, 143, 139, 138, 139, 131, 139, 130, 135, 137, 137, 137, 137, 138, 141, 138, 147, 144, 133, 135, 128, 129, 149, 137, 141, 140, 140, 135, 141, 130, 138, 139, 132, 136, 144, 142, 145, 126, 129, 145, 135, 138, 136, 131, 132, 148, 137, 130, 135, 142, 142, 131, 139, 143, 142, 129, 141, 137, 130, 134, 141, 130, 137, 149, 148, 135, 143, 142, 147, 137, 141, 133, 139, 138, 128, 134, 143, 143, 140, 137, 148, 135, 145, 145, 135, 131, 135, 136, 135, 136, 136, 141, 147, 135, 138, 134, 139, 144, 147, 139, 138, 134, 142, 140, 149, 140, 136, 142, 146, 137, 144, 131, 138, 148, 133, 135, 132, 137, 144, 139, 145, 141, 143, 136, 140, 130, 139, 136, 138, 137, 141, 146, 137, 137, 142, 136, 140, 135, 141, 150, 138, 134, 137, 126, 139, 131, 133, 139, 138, 142, 147, 134, 137, 153, 142, 140, 131, 133, 134, 146, 137, 148, 132, 136, 125, 144, 140, 137, 137, 134, 130, 141, 136, 138, 137, 138, 131, 136, 141, 128, 143, 131, 133, 149, 146, 145, 141, 139, 127, 137, 130, 153, 141, 138, 135, 143, 146, 147, 140, 142, 140, 145, 148, 147, 139, 146, 136, 134, 149, 141, 140, 136, 133, 131, 134, 134, 144, 140, 154, 138, 140, 122, 145, 138, 145, 145, 137, 133, 134, 136, 135, 139, 141, 142, 136, 128, 136, 138, 137, 141, 136, 140, 135, 130, 133, 132, 139, 140, 150, 139, 140, 130, 139, 128, 131, 134, 134, 133, 141, 138, 127, 131, 134, 136, 140, 149, 138, 139, 146, 130, 137, 134, 147, 133, 140, 132, 144, 145, 143, 139, 127, 145, 144, 141, 155, 138, 135, 132, 133, 135, 140, 140, 142, 136, 151, 144, 143, 140, 135, 141, 136, 134, 142, 130, 136, 145, 149, 137, 139, 146, 147, 136, 144, 131, 140, 136, 125, 141, 149, 140, 132, 135, 146, 139, 144, 129, 150, 140, 139, 147, 126, 141, 146, 136, 129, 150, 142, 151, 146, 145, 141, 148, 136, 138, 131, 141, 131, 134, 150, 135, 140, 144, 144, 150, 147, 145, 147, 129, 141, 139, 137, 146, 138, 133, 142, 141, 131, 130, 143, 127, 142, 153, 140, 124, 134, 132, 122, 151, 138, 137, 136, 127, 151, 137, 136, 145, 134, 129, 145, 132, 131, 140, 150, 127, 134, 136, 130, 141, 147, 136, 132, 140, 133, 130, 135, 123, 134, 135, 135, 131, 141, 141, 133, 134, 133, 131, 134, 131, 150, 145, 142, 142, 131, 142, 135, 137, 138, 143, 131, 139, 142, 141, 126, 143, 137, 137, 149, 138, 122, 136, 136, 133, 130, 132, 144, 136, 144, 143, 130, 151, 139, 140, 137, 130, 138, 149, 143, 137, 140, 142, 144, 141, 138, 146, 132, 148, 141, 149, 133, 134, 141, 142, 137, 147, 128, 131, 122, 143, 136, 136, 148, 133, 137, 149, 148, 130, 142, 143, 142, 137, 132, 138, 141, 142, 142, 144, 140, 140, 133, 144, 143, 126, 140, 137, 158, 143, 137, 139, 134, 138, 149, 151, 149, 148, 132, 125, 145, 148, 138, 135, 145, 149, 139, 136, 140, 135, 130, 125, 140, 140, 142, 145, 130, 144, 149, 146, 147, 148, 130, 142, 135, 142, 141, 150, 150, 137, 141, 149, 135, 134, 145, 140, 145, 139, 150, 133, 138, 123, 149, 141, 139, 134, 139, 151, 129, 132, 138, 153, 141, 134, 132, 141, 134, 137, 129, 143, 131, 139, 138, 142, 140, 144, 137, 134, 133, 138, 137, 126, 140, 134, 126, 135, 138, 130, 126, 138, 130, 142, 132, 140, 140, 136, 130, 132, 142, 132, 141, 136, 141, 141, 151, 135, 143, 158, 142, 151, 142, 134, 142, 143, 134, 138, 152, 134, 138, 146, 132, 139, 132, 141, 147, 143, 143, 135, 145, 151, 140, 125, 145, 144, 148, 132, 134, 140, 135, 131, 141, 140, 149, 133, 123, 142, 136, 135, 146, 150, 139, 142, 147, 155, 141, 144, 135, 136, 134, 138, 129, 140, 117, 137, 140, 143, 152, 144, 145, 137, 129, 140, 149, 136, 128, 128, 146, 145, 142, 130, 140, 147, 124, 130, 150, 134, 141, 133, 141, 138, 135, 143, 143, 130, 135, 144, 127, 137, 134, 134, 130, 145, 139, 148, 142, 125, 149, 141, 136, 144, 134, 144, 145, 146, 140, 134, 140, 136, 138, 143, 144, 139, 138, 134, 141, 141, 139, 145, 132, 135, 141, 141, 142, 127, 131, 131, 142, 135, 128, 129, 140, 139, 140, 123, 129, 159, 138, 156, 148, 139, 144, 152, 140, 143, 161, 128, 147, 141, 144, 135, 126, 140, 139, 136, 146, 141, 145, 147, 139, 143, 140, 142, 144, 137, 146, 141, 146, 133, 134, 163, 147, 145, 155, 151, 142, 125, 147, 140, 127, 143, 135, 132, 132, 139, 134, 135, 138, 138, 129, 144, 132, 140, 140, 145, 133, 136, 137, 140, 134, 147, 123, 143, 135, 144, 129, 142, 144, 150, 137, 142, 141, 132, 136, 137, 140, 127, 142, 134, 141, 144, 141, 142, 136, 146, 126, 136, 149, 146, 146, 160, 129, 133, 135, 134, 135, 140, 139, 141, 141, 145, 135, 137, 138, 138, 137, 138, 139, 137, 144, 133, 145, 135, 142, 130, 141, 143, 132, 134, 141, 144, 141, 145, 141, 135, 140, 138, 138, 138, 137, 132, 137, 144, 134, 139, 146, 143, 137, 135, 140, 141, 145, 134, 135, 133, 142, 137, 140, 140, 136, 141, 136, 138, 142, 138, 141, 127, 132, 137, 138, 137, 160, 133, 139, 142, 136, 127, 140, 133, 137, 140, 133, 141, 134, 138, 128, 147, 140, 138, 133, 137, 135, 130, 138, 141, 137, 140, 146, 143, 142, 130, 135, 137, 140, 143, 141, 141, 137, 137, 138, 135, 133, 135, 136, 145, 138, 131, 140, 142, 141, 137, 142, 137, 138, 131, 141, 135, 135, 130, 136, 138, 155, 133, 149, 139, 144, 149, 143, 144, 128, 139, 139, 145, 127, 138, 140, 135, 132, 136, 148, 139, 139, 137, 136, 134, 141, 151, 133, 134, 137, 137, 143, 137, 138, 137, 134, 136, 140, 136, 142, 141, 136, 140, 148, 135, 138, 129, 141, 136, 136, 132, 141, 138, 137, 126, 135, 142, 138, 132, 138, 137, 130, 138, 146, 132, 134, 139, 139, 128, 142, 136, 137, 138, 145, 134, 138, 137, 140, 137, 132, 133, 134, 132, 140, 139, 139, 145, 137, 134, 146, 135, 133, 129, 144, 135, 155, 138, 134, 140, 138, 141, 137, 137, 140, 145, 140, 136, 134, 142, 133, 135, 143, 136, 132, 143, 132, 143, 142, 144, 145, 138, 153, 153, 139, 129, 139, 148, 135, 139, 135, 139, 134, 144, 142, 146, 148, 129, 140, 142, 144, 145, 136, 130, 137, 140, 142, 145, 141, 140, 134, 136, 133, 147, 144, 144, 136, 143, 138, 134, 140, 138, 144, 138, 141, 142, 132, 142, 139, 140, 143, 142, 132, 139, 143, 129, 140, 138, 144, 138, 140, 137, 143, 154, 128, 136, 140, 144, 141, 139, 135, 149, 140, 146, 137, 141, 145, 134, 134, 138, 138, 141, 147, 134, 140, 145, 144, 140, 132, 133, 138, 132, 139, 137, 137, 144, 145, 139, 129, 132, 146, 150, 146, 141, 135, 143, 132, 145, 146, 147, 142, 143, 140, 146, 138, 131, 143, 145, 137, 132, 144, 131, 137, 139, 142, 142, 134, 142, 137, 146, 137, 135, 139, 140, 134, 140, 143, 136, 134, 142, 142, 139, 147, 143, 137, 139, 140, 139, 145, 136, 140, 149, 139, 133, 137, 134, 133, 134, 134, 146, 138, 137, 141, 141, 143, 138, 138, 140, 136, 137, 134, 138, 133, 149, 137, 131, 151, 129, 135, 136, 131, 130, 141, 144, 135, 134, 146, 137, 141, 139, 150, 140, 138, 141, 137, 131, 147, 133, 136, 146, 140, 137, 153, 139, 136, 132, 138, 131, 134, 132, 137, 141, 140, 142, 135, 137, 139, 139, 143, 134, 137, 138, 140, 142, 135, 133, 138, 128, 137, 138, 131, 132, 139, 131, 130, 144, 137, 137, 128, 145, 139, 135, 146, 140, 137, 140, 137, 138, 139, 137, 146, 137, 141, 134, 131, 133, 152, 140, 147, 141, 135, 136, 135, 132, 148, 134, 137, 139, 135, 132, 142, 145, 142, 133, 135, 141, 135, 136, 141, 142, 134, 140, 144, 136, 143, 141, 134, 140, 137, 142, 145, 137, 141, 145, 138, 138, 147, 148, 137, 135, 140, 133, 141, 142, 155, 136, 141, 144, 135, 144, 136, 142, 141, 136, 137, 129, 137, 135, 143, 138, 136, 136, 129, 143, 142, 137, 144, 141, 140, 148, 143, 137, 132, 144, 142, 142, 139, 136, 133, 130, 139, 131, 140, 143, 138, 133, 140, 138, 137, 139, 134, 143, 144, 137, 145, 137, 135, 133, 137, 139, 141, 146, 145, 140, 139, 143, 142, 142, 133, 143, 136, 139, 145, 139, 139, 140, 137, 137, 134, 137, 138, 132, 134, 133, 141, 135, 145, 139, 142, 136, 145, 130, 140, 135, 139, 135, 144, 135, 136, 145, 136, 140, 134, 147, 134, 138, 139, 138, 138, 145, 140, 134, 137, 135, 137, 137, 138, 138, 145, 147, 132, 136, 139, 147, 140, 139, 133, 137, 133, 142, 134, 134, 133, 139, 138, 140, 136, 129, 134, 138, 140, 140, 137, 140, 142, 139, 138, 134, 147, 141, 142, 135, 133, 131, 136, 138, 143, 140, 136, 145, 140, 137, 142, 133, 137, 137, 145, 136, 144, 136, 147, 137, 127, 145, 142, 140, 143, 138, 142, 140, 137, 135, 133, 135, 143, 139, 142, 140, 149, 134, 138, 145, 140, 141, 141, 141, 136, 141, 138, 142, 142, 142, 132, 140, 135, 142, 135, 143, 136, 141, 134, 142, 147, 144, 137, 141, 142, 144, 134, 149, 135, 138, 137, 141, 133, 134, 137, 135, 137, 145, 137, 142, 148, 140, 135, 143, 137, 135, 136, 139, 143, 138, 134, 130, 143, 140, 140, 147, 137, 140, 141, 142, 146, 140, 147, 135, 140, 141, 141, 138, 139, 138, 140, 136, 137, 133, 143, 146, 138, 137, 136, 137, 143, 137, 138, 144, 133, 145, 140, 138, 135, 144, 142, 139, 140, 138, 138, 141, 143, 144, 132, 138, 135, 135, 131, 142, 138, 147, 135, 141, 140, 138, 130, 135, 133, 135, 147, 135, 143, 139, 138, 145, 142, 145, 145, 142, 140, 135, 144, 136, 138, 135, 141, 148, 134, 137, 142, 140, 136, 139, 144, 140, 140, 141, 137, 137, 136, 135, 135, 136, 140, 144, 135, 138, 145, 138, 142, 140, 138, 142, 135, 141, 133, 131, 138, 139, 139, 134, 142, 140, 136, 143, 139, 143, 143, 133, 142, 143, 133, 138, 141, 138, 138, 139, 138, 137, 136, 136, 131, 134, 136, 140, 137, 132, 142, 131, 138, 143, 136, 138, 135, 140, 144, 139, 135, 146, 136, 139, 133, 141, 136, 140, 143, 138, 139, 138, 142, 144, 144, 142, 144, 140, 138, 139, 135, 139, 139, 136, 133, 137, 143, 139, 140, 141, 139, 137, 134, 147, 143, 135, 147, 134, 149, 137, 135, 137, 142, 142, 139, 144, 141, 142, 133, 135, 139, 139, 142, 134, 137, 141, 138, 141, 144, 138, 144, 135, 139, 138, 138, 135, 137, 134, 140, 136, 143, 134, 141, 135, 147, 143, 140, 139, 138, 135, 140, 138, 140, 128, 134, 136, 134, 130, 137, 150, 136, 145, 129, 136, 139, 133, 144, 136, 142, 134, 138, 133, 132, 144, 139, 137, 133, 144, 130, 139, 135, 134, 133, 136, 148, 140, 141, 137, 139, 138, 134, 144, 142, 136, 148, 151, 129, 152, 132, 134, 133, 143, 123, 133, 138, 133, 143, 108, 133, 148, 131, 141, 137, 136, 139, 135, 137, 135, 150, 135, 135, 128, 135, 140, 133, 145, 127, 141, 139, 129, 146, 143, 151, 149, 144, 133, 134, 137, 138, 139, 140, 142, 145, 135, 142, 138, 143, 145, 134, 140, 144, 140, 146, 138, 136, 140, 137, 149, 147, 129, 139, 131, 138, 142, 153, 138, 137, 135, 134, 140, 134, 136, 155, 146, 132, 144, 127, 138, 126, 142, 148, 148, 128, 138, 150, 134, 146, 134, 126, 126, 144, 138, 138, 134, 147, 122, 139, 126, 146, 136, 139, 139, 137, 135, 148, 149, 157, 140, 124, 141, 133, 135, 130, 140, 132, 140, 131, 139, 136, 139, 135, 141, 131, 143, 146, 135, 135, 125, 146, 135, 140, 144, 140, 135, 136, 138, 138, 137, 139, 129, 141, 136, 137, 140, 138, 144, 141, 148, 127, 159, 142, 130, 141, 138, 134, 139, 139, 133, 135, 133, 143, 147, 137, 153, 138, 143, 158, 136, 139, 133, 139, 143, 146, 134, 142, 138, 126, 143, 139, 143, 137, 132, 132, 133, 143, 136, 134, 143, 136, 146, 138, 137, 145, 142, 140, 139, 140, 145, 148, 137, 148, 140, 127, 139, 122, 135, 142, 137, 132, 142, 141, 126, 133, 137, 139, 141, 151, 133, 142, 132, 131, 134, 135, 137, 145, 142, 141, 147, 137, 128, 129, 142, 139, 140, 141, 147, 134, 132, 136, 146, 137, 147, 138, 137, 140, 137, 142, 131, 137, 122, 137, 136, 139, 146, 142, 129, 150, 140, 136, 136, 147, 131, 142, 140, 145, 136, 139, 134, 137, 141, 137, 138, 146, 148, 131, 151, 135, 140, 141, 142, 149, 137, 140, 151, 133, 133, 138, 146, 141, 137, 133, 138, 142, 131, 139, 144, 130, 121, 140, 135, 128, 134, 138, 152, 145, 132, 135, 146, 151, 130, 137, 146, 139, 147, 146, 143, 144, 142, 145, 138, 144, 146, 142, 141, 132, 136, 134, 138, 140, 142, 136, 146, 141, 133, 144, 130, 133, 138, 132, 134, 132, 142, 140, 147, 138, 149, 145, 135, 135, 132, 140, 129, 134, 128, 140, 153, 146, 134, 151, 130, 145, 138, 136, 137, 136, 138, 145, 140, 142, 150, 134, 149, 144, 133, 138, 138, 139, 133, 135, 148, 150, 144, 146, 142, 139, 148, 135, 129, 135, 143, 137, 143, 139, 142, 143, 139, 133, 146, 143, 130, 143, 129, 148, 141, 146, 134, 129, 137, 138, 137, 137, 134, 131, 138, 136, 137, 131, 136, 149, 139, 138, 134, 145, 142, 137, 132, 133, 149, 140, 140, 160, 129, 142, 139, 134, 135, 141, 139, 142, 121, 154, 138, 137, 141, 132, 152, 136, 132, 128, 139, 144, 141, 134, 136, 150, 127, 137, 141, 139, 136, 139, 141, 151, 139, 145, 141, 139, 146, 143, 142, 144, 139, 141, 141, 135, 133, 140, 129, 124, 134, 137, 138, 137, 140, 149, 143, 142, 137, 137, 137, 133, 138, 144, 142, 147, 140, 150, 134, 134, 135, 140, 140, 144, 138, 134, 144, 140, 136, 141, 146, 145, 139, 137, 147, 142, 137, 135, 137, 135, 131, 138, 123, 137, 154, 133, 142, 139, 143, 135, 133, 146, 140, 137, 140, 141, 143, 141, 139, 142, 142, 141, 136, 137, 144, 144, 139, 134, 143, 137, 150, 133, 132, 136, 138, 145, 131, 152, 134, 137, 145, 136, 135, 147, 132, 144, 137, 151, 139, 139, 139, 139, 137, 139, 137, 142, 142, 130, 137, 138, 137, 137, 134, 138, 141, 141, 133, 147, 140, 134, 136, 153, 139, 144, 138, 131, 139, 136, 137, 135, 147, 132, 140, 141, 134, 137, 150, 140, 136, 137, 147, 146, 133, 139, 133, 137, 138, 136, 137, 139, 141, 139, 136, 137, 135, 134, 137, 140, 137, 143, 133, 152, 138, 136, 136, 140, 125, 138, 136, 142, 141, 137, 136, 149, 129, 147, 146, 134, 135, 136, 140, 139, 136, 139, 135, 142, 137, 141, 144, 141, 143, 150, 141, 131, 128, 143, 146, 146, 138, 139, 137, 142, 145, 138, 140, 131, 134, 135, 131, 140, 137, 135, 141, 144, 133, 139, 133, 135, 145, 133, 131, 135, 146, 134, 136, 146, 142, 140, 138, 137, 138, 133, 140, 131, 141, 153, 154, 137, 144, 133, 149, 146, 137, 150, 142, 137, 137, 138, 144, 142, 137, 141, 139, 136, 137, 133, 142, 144, 138, 147, 141, 138, 134, 140, 142, 143, 139, 140, 143, 138, 140, 131, 133, 142, 141, 139, 136, 143, 142, 133, 145, 140, 142, 132, 142, 139, 133, 137, 137, 144, 136, 133, 135, 141, 143, 141, 141, 132, 129, 135, 137, 145, 134, 143, 138, 155, 134, 135, 134, 139, 133, 142, 153, 141, 142, 139, 145, 137, 133, 141, 139, 142, 137, 136, 142, 140, 142, 134, 142, 140, 140, 140, 145, 149, 132, 139, 138, 136, 138, 141, 135, 139, 138, 139, 138, 141, 135, 135, 145, 137, 134, 144, 149, 136, 140, 143, 140, 146, 135, 144, 132, 139, 146, 140, 140, 139, 139, 147, 151, 139, 139, 140, 131, 141, 141, 132, 144, 126, 141, 139, 141, 141, 135, 134, 140, 139, 146, 143, 138, 132, 132, 142, 136, 145, 149, 145, 144, 140, 143, 140, 135, 136, 152, 141, 138, 141, 143, 137, 147, 143, 148, 139, 132, 138, 145, 143, 142, 129, 138, 139, 146, 137, 139, 139, 145, 137, 141, 138, 139, 142, 140, 143, 137, 138, 139, 149, 140, 140, 141, 142, 141, 133, 135, 141, 130, 138, 139, 139, 139, 141, 136, 131, 145, 147, 151, 136, 143, 140, 136, 133, 140, 142, 143, 137, 135, 135, 141, 133, 136, 140, 141, 135, 145, 139, 137, 138, 141, 138, 140, 140, 139, 138, 138, 141, 141, 143, 129, 144, 137, 143, 129, 141, 138, 144, 136, 134, 143, 145, 153, 132, 139, 137, 139, 138, 140, 133, 141, 143, 149, 137, 145, 134, 136, 137, 133, 147, 144, 152, 144, 139, 134, 136, 138, 150, 140, 137, 130, 147, 138, 139, 139, 142, 136, 130, 142, 140, 135, 142, 145, 154, 134, 142, 144, 142, 135, 139, 131, 133, 135, 144, 136, 143, 144, 160, 138, 147, 153, 142, 148, 139, 135, 142, 142, 130, 137, 130, 138, 148, 141, 135, 138, 142, 140, 134, 128, 140, 145, 128, 133, 141, 140, 146, 148, 139, 134, 141, 141, 137, 136, 136, 140, 128, 129, 142, 140, 141, 131, 139, 135, 151, 143, 145, 141, 138, 142, 131, 140, 141, 138, 131, 133, 144, 141, 143, 134, 138, 135, 133, 154, 140, 134, 142, 141, 132, 148, 143, 136, 140, 135, 143, 139, 132, 145, 142, 131, 137, 136, 141, 137, 141, 147, 139, 138, 140, 137, 132, 138, 136, 141, 146, 137, 121, 138, 130, 142, 138, 138, 144, 148, 135, 140, 139, 132, 142, 135, 130, 138, 138, 143, 138, 138, 134, 148, 138, 141, 156, 143, 141, 146, 134, 148, 133, 138, 138, 146, 128, 142, 140, 136, 137, 132, 137, 123, 142, 128, 155, 148, 132, 136, 135, 137, 138, 135, 132, 130, 134, 143, 137, 136, 133, 143, 141, 138, 141, 137, 158, 128, 144, 131, 133, 142, 138, 144, 140, 153, 140, 138, 140, 146, 146, 138, 143, 137, 149, 139, 131, 134, 134, 142, 139, 130, 144, 141, 143, 139, 142, 136, 140, 138, 133, 146, 138, 141, 145, 141, 142, 132, 151, 140, 142, 138, 145, 135, 146, 143, 139, 147, 134, 149, 143, 138, 140, 131, 141, 137, 135, 131, 141, 133, 136, 139, 140, 142, 139, 135, 141, 134, 139, 133, 145, 140, 128, 141, 147, 148, 139, 139, 134, 152, 139, 133, 136, 139, 140, 138, 138, 149, 145, 133, 133, 129, 145, 132, 142, 139, 128, 141, 144, 145, 140, 128, 148, 140, 141, 143, 137, 133, 147, 130, 137, 133, 145, 140, 139, 138, 140, 140, 153, 146, 132, 132, 142, 140, 136, 139, 131, 144, 132, 136, 133, 136, 136, 137, 142, 129, 143, 130, 127, 142, 140, 132, 124, 146, 140, 152, 142, 136, 130, 140, 135, 150, 143, 146, 142, 144, 137, 141, 148, 134, 139, 135, 132, 130, 141, 142, 135, 146, 148, 139, 134, 138, 133, 139, 145, 133, 150, 138, 132, 148, 141, 130, 131, 139, 139, 134, 126, 143, 132, 142, 133, 128, 134, 137, 137, 140, 148, 134, 130, 131, 141, 141, 152, 137, 142, 141, 145, 135, 147, 151, 143, 135, 138, 135, 144, 143, 125, 121, 145, 143, 136, 137, 133, 141, 142, 145, 139, 142, 133, 136, 135, 143, 112, 147, 141, 135, 129, 132, 141, 137, 135, 145, 132, 132, 133, 129, 137, 141, 142, 146, 141, 138, 142, 144, 146, 148, 147, 126, 143, 142, 134, 141, 146, 135, 134, 146, 143, 151, 137, 138, 148, 137, 136, 141, 140, 131, 147, 141, 138, 146, 146, 138, 153, 136, 138, 136, 141, 139, 142, 137, 138, 145, 128, 142, 134, 150, 136, 118, 137, 142, 148, 145, 134, 133, 139, 137, 140, 140, 132, 137, 142, 138, 135, 138, 139, 134, 145, 141, 125, 141, 144, 138, 138, 139, 134, 132, 143, 138, 142, 137, 134, 138, 136, 147, 142, 141, 142, 147, 142, 138, 134, 133, 132, 135, 140, 148, 138, 136, 132, 143, 134, 149, 137, 141, 133, 145, 132, 141, 143, 136, 137, 139, 133, 136, 137, 154, 138, 137, 141, 138, 140, 140, 140, 136, 138, 138, 144, 145, 138, 139, 142, 137, 136, 134, 137, 145, 141, 137, 135, 139, 142, 141, 143, 137, 132, 137, 146, 140, 140, 134, 137, 144, 139, 140, 136, 133, 136, 142, 140, 136, 140, 148, 144, 135, 136, 136, 154, 145, 141, 142, 137, 142, 138, 138, 138, 144, 140, 135, 140, 135, 139, 142, 144, 129, 138, 142, 138, 133, 143, 140, 136, 137, 139, 144, 135, 140, 142, 144, 144, 138, 142, 139, 136, 134, 139, 127, 144, 136, 146, 145, 143, 139, 138, 141, 145, 139, 136, 142, 149, 139, 140, 138, 135, 139, 136, 138, 134, 138, 146, 139, 137, 138, 132, 141, 132, 138, 137, 139, 142, 136, 139, 143, 137, 137, 131, 138, 138, 137, 144, 144, 142, 142, 136, 134, 135, 133, 138, 138, 133, 134, 141, 135, 137, 145, 136, 140, 138, 139, 138, 137, 140, 143, 132, 140, 142, 146, 144, 139, 142, 139, 142, 141, 139, 129, 141, 150, 139, 143, 136, 144, 140, 141, 142, 139, 140, 139, 139, 135, 136, 138, 144, 141, 137, 135, 138, 136, 131, 138, 143, 141, 140, 135, 138, 146, 132, 139, 142, 137, 133, 138, 136, 132, 145, 137, 140, 132, 140, 146, 133, 141, 132, 142, 141, 140, 139, 138, 135, 140, 138, 139, 139, 141, 141, 140, 144, 140, 136, 133, 142, 133, 137, 135, 153, 138, 141, 138, 135, 137, 145, 143, 138, 130, 134, 137, 140, 143, 134, 140, 138, 131, 144, 133, 134, 138, 138, 140, 137, 131, 138, 133, 134, 140, 140, 140, 135, 139, 139, 139, 143, 137, 134, 142, 138, 143, 133, 144, 135, 138, 143, 135, 141, 137, 140, 140, 136, 138, 136, 136, 137, 131, 138, 138, 144, 132, 140, 134, 134, 139, 139, 135, 140, 139, 135, 133, 133, 145, 144, 136, 139, 147, 137, 141, 143, 135, 138, 144, 137, 137, 140, 142, 133, 134, 134, 136, 145, 137, 138, 133, 134, 135, 140, 131, 143, 140, 129, 137, 136, 137, 139, 137, 147, 132, 142, 141, 128, 137, 135, 137, 138, 144, 147, 133, 143, 134, 139, 132, 140, 142, 136, 137, 137, 134, 139, 133, 145, 143, 142, 133, 149, 136, 133, 134, 142, 140, 139, 146, 137, 140, 135, 138, 134, 142, 143, 141, 139, 139, 142, 152, 140, 139, 136, 141, 134, 141, 138, 132, 143, 145, 132, 138, 141, 141, 134, 138, 137, 131, 143, 141, 145, 139, 137, 138, 133, 137, 146, 137, 131, 137, 142, 137, 137, 136, 138, 135, 144, 135, 144, 143, 138, 137, 139, 132, 138, 135, 139, 136, 139, 137, 134, 130, 136, 141, 144, 136, 141, 137, 135, 133, 142, 138, 145, 142, 135, 145, 138, 136, 140, 141, 136, 142, 140, 147, 134, 138, 137, 130, 139, 149, 137, 147, 135, 139, 134, 136, 135, 132, 134, 121, 134, 133, 136, 135, 151, 136, 147, 137, 145, 137, 140, 140, 142, 144, 136, 135, 135, 134, 135, 146, 138, 143, 139, 131, 145, 135, 143, 141, 148, 127, 150, 136, 137, 135, 138, 141, 136, 136, 146, 150, 139, 128, 128, 139, 143, 139, 130, 134, 144, 134, 137, 134, 127, 138, 135, 131, 148, 142, 138, 137, 144, 147, 143, 136, 133, 126, 135, 140, 138, 139, 131, 136, 141, 136, 153, 140, 135, 136, 134, 142, 134, 140, 140, 151, 136, 138, 145, 140, 134, 142, 144, 142, 142, 146, 140, 127, 137, 136, 141, 140, 142, 139, 144, 149, 131, 135, 133, 141, 135, 133, 144, 140, 141, 151, 131, 144, 135, 139, 143, 139, 142, 134, 137, 141, 133, 138, 135, 138, 141, 142, 134, 128, 140, 141, 140, 132, 140, 139, 147, 136, 144, 138, 131, 144, 131, 141, 138, 150, 142, 131, 132, 135, 145, 136, 136, 136, 135, 124, 145, 145, 135, 139, 135, 139, 138, 133, 133, 141, 145, 135, 138, 146, 134, 145, 145, 143, 144, 139, 134, 134, 136, 139, 138, 137, 149, 140, 141, 132, 130, 143, 149, 134, 144, 144, 143, 143, 141, 133, 131, 138, 136, 148, 146, 132, 141, 141, 143, 139, 135, 140, 135, 131, 138, 134, 137, 139, 137, 132, 142, 146, 129, 157, 135, 132, 141, 135, 150, 134, 131, 139, 137, 139, 131, 137, 136, 141, 137, 141, 144, 143, 135, 136, 141, 145, 143, 144, 130, 130, 136, 135, 130, 146, 142, 140, 143, 142, 135, 143, 146, 134, 144, 139, 141, 139, 138, 137, 137, 132, 143, 144, 137, 139, 149, 146, 138, 130, 146, 133, 141, 140, 139, 137, 133, 146, 144, 136, 140, 135, 134, 152, 143, 133, 137, 136, 141, 135, 143, 141, 137, 136, 137, 139, 143, 136, 139, 142, 133, 137, 140, 130, 154, 141, 143, 142, 142, 136, 156, 133, 139, 137, 142, 136, 136, 148, 143, 135, 136, 140, 150, 138, 143, 141, 133, 140, 139, 144, 131, 141, 132, 147, 133, 137, 142, 137, 139, 146, 142, 130, 139, 143, 141, 143, 136, 146, 135, 136, 135, 135, 142, 140, 139, 138, 139, 141, 141, 139, 146, 152, 141, 136, 145, 129, 142, 139, 138, 137, 137, 139, 139, 135, 139, 140, 137, 145, 136, 141, 131, 136, 151, 143, 137, 141, 147, 140, 147, 154, 133, 135, 144, 143, 140, 140, 139, 139, 134, 136, 137, 149, 137, 142, 137, 138, 132, 137, 150, 138, 137, 130, 143, 142, 146, 138, 141, 137, 138, 145, 137, 140, 134, 137, 135, 142, 135, 136, 144, 141, 134, 153, 133, 141, 132, 141, 134, 134, 146, 139, 135, 138, 142, 144, 144, 141, 132, 136, 133, 137, 144, 134, 132, 139, 136, 137, 132, 137, 137, 139, 131, 134, 132, 137, 136, 127, 130, 148, 136, 129, 137, 134, 145, 126, 148, 132, 136, 136, 139, 140, 134, 140, 145, 142, 145, 140, 133, 134, 141, 147, 143, 126, 132, 141, 146, 142, 139, 146, 136, 135, 142, 141, 142, 133, 141, 135, 123, 138, 134, 148, 137, 132, 145, 133, 140, 133, 140, 132, 137, 131, 128, 137, 143, 138, 147, 136, 146, 136, 133, 127, 131, 143, 153, 131, 145, 142, 135, 148, 149, 141, 148, 133, 142, 135, 149, 127, 139, 154, 137, 130, 130, 136, 128, 153, 141, 147, 134, 134, 135, 135, 142, 138, 130, 131, 139, 135, 138, 133, 143, 143, 139, 139, 141, 139, 138, 145, 135, 147, 132, 137, 135, 147, 130, 147, 144, 123, 136, 140, 142, 141, 144, 139, 145, 141, 122, 139, 141, 137, 151, 137, 136, 152, 134, 144, 141, 144, 144, 137, 135, 140, 129, 133, 146, 144, 148, 143, 139, 148, 144, 146, 138, 140, 137, 142, 130, 154, 132, 143, 141, 130, 147, 136, 148, 132, 144, 141, 143, 135, 135, 137, 138, 147, 135, 135, 139, 128, 134, 134, 148, 142, 146, 140, 143, 129, 141, 141, 125, 133, 134, 135, 129, 143, 130, 146, 141, 142, 133, 132, 145, 142, 132, 132, 131, 145, 133, 138, 144, 134, 137, 134, 143, 149, 132, 140, 136, 142, 142, 131, 117, 145, 140, 138, 122, 142, 130, 127, 142, 136, 137, 124, 138, 140, 129, 155, 156, 125, 145, 142, 138, 140, 136, 133, 140, 127, 153, 133, 140, 135, 143, 155, 124, 138, 138, 136, 127, 131, 136, 147, 139, 138, 146, 140, 136, 150, 144, 133, 135, 141, 141, 127, 141, 150, 132, 144, 132, 140, 145, 148, 141, 140, 145, 146, 137, 139, 132, 136, 137, 147, 131, 138, 135, 137, 143, 128, 136, 140, 144, 129, 142, 127, 153, 146, 129, 125, 136, 133, 140, 133, 130, 128, 136, 135, 136, 129, 131, 146, 145, 144, 126, 127, 133, 143, 145, 126, 147, 131, 136, 140, 142, 142, 139, 133, 133, 149, 146, 140, 134, 134, 145, 139, 148, 142, 143, 123, 134, 136, 133, 133, 138, 148, 145, 143, 126, 133, 141, 141, 144, 142, 145, 138, 138, 137, 147, 132, 123, 145, 148, 140, 144, 130, 131, 138, 138, 149, 150, 138, 158, 157, 147, 139, 146, 143, 137, 144, 138, 129, 144, 132, 138, 130, 139, 139, 146, 145, 152, 134, 141, 142, 141, 138, 126, 134, 133, 133, 136, 139, 136, 135, 141, 143, 144, 141, 147, 137, 142, 144, 139, 133, 132, 134, 144, 141, 126, 130, 145, 144, 136, 133, 135, 144, 144, 138, 123, 141, 139, 138, 148, 137, 134, 146, 147, 136, 146, 139, 147, 135, 133, 146, 137, 140, 139, 136, 135, 128, 138, 138, 145, 137, 143, 140, 140, 143, 136, 133, 134, 142, 131, 129, 138, 144, 142, 138, 142, 128, 146, 136, 146, 145, 138, 127, 129, 129, 140, 136, 140, 149, 135, 144, 132, 149, 145, 155, 138, 134, 131, 140, 137, 138, 134, 148, 136, 136, 156, 129, 136, 140, 136, 131, 144, 139, 136, 128, 139, 142, 143, 136, 139, 143, 138, 141, 134, 138, 140, 136, 142, 140, 139, 136, 133, 133, 144, 139, 140, 138, 141, 142, 142, 133, 145, 140, 140, 133, 134, 140, 141, 134, 142, 141, 141, 138, 140, 136, 144, 147, 134, 144, 144, 136, 140, 144, 142, 134, 145, 139, 139, 138, 134, 146, 141, 139, 137, 142, 136, 134, 137, 138, 140, 135, 145, 137, 139, 139, 136, 128, 143, 139, 141, 150, 146, 146, 134, 134, 140, 142, 141, 145, 131, 139, 141, 136, 142, 137, 130, 139, 140, 147, 137, 137, 145, 139, 132, 130, 143, 141, 138, 144, 137, 141, 138, 138, 141, 136, 135, 149, 136, 143, 132, 132, 137, 137, 140, 140, 132, 139, 138, 136, 143, 138, 141, 139, 132, 141, 137, 135, 137, 133, 136, 158, 132, 138, 135, 135, 138, 141, 136, 140, 138, 138, 142, 139, 138, 133, 136, 143, 140, 135, 136, 138, 138, 135, 135, 133, 140, 145, 137, 137, 137, 135, 138, 137, 140, 140, 139, 137, 135, 132, 141, 136, 138, 141, 143, 137, 140, 145, 141, 131, 139, 139, 141, 134, 140, 143, 137, 138, 139, 142, 132, 140, 138, 141, 140, 138, 139, 138, 136, 139, 137, 144, 133, 138, 143, 130, 136, 145, 141, 138, 137, 140, 136, 141, 135, 136, 139, 137, 140, 142, 140, 136, 140, 142, 138, 142, 142, 140, 134, 137, 135, 142, 138, 133, 142, 140, 136, 138, 139, 141, 140, 144, 138, 138, 136, 133, 141, 140, 135, 136, 141, 136, 137, 134, 144, 139, 139, 138, 139, 137, 146, 136, 142, 136, 136, 137, 138, 138, 139, 147, 146, 132, 137, 134, 135, 138, 132, 145, 141, 141, 136, 141, 136, 135, 136, 134, 138, 143, 142, 134, 137, 138, 138, 140, 139, 143, 139, 135, 136, 140, 141, 138, 145, 147, 136, 142, 140, 136, 140, 134, 133, 139, 134, 149, 139, 138, 137, 137, 139, 139, 145, 139, 134, 145, 137, 134, 139, 138, 139, 144, 140, 141, 131, 138, 138, 138, 139, 139, 143, 141, 142, 145, 143, 133, 139, 137, 142, 145, 141, 142, 137, 138, 141, 134, 139, 129, 143, 140, 133, 138, 136, 142, 141, 141, 141, 138, 142, 139, 139, 138, 132, 134, 137, 141, 141, 137, 141, 137, 133, 130, 139, 139, 135, 142, 137, 148, 147, 144, 137, 140, 136, 145, 135, 135, 136, 136, 137, 140, 145, 137, 138, 145, 132, 137, 142, 138, 146, 135, 134, 145, 137, 145, 136, 139, 146, 135, 139, 145, 138, 140, 139, 137, 134, 137, 145, 140, 142, 136, 137, 134, 146, 133, 143, 140, 133, 132, 146, 141, 143, 147, 144, 140, 137, 146, 133, 135, 140, 139, 136, 156, 135, 138, 143, 141, 136, 142, 138, 145, 137, 137, 137, 138, 135, 137, 141, 146, 133, 131, 140, 139, 135, 135, 144, 142, 138, 138, 139, 136, 137, 146, 139, 145, 140, 135, 137, 140, 136, 131, 139, 148, 130, 138, 135, 136, 146, 136, 141, 137, 135, 139, 136, 133, 149, 136, 137, 136, 134, 145, 142, 136, 144, 133, 141, 136, 135, 142, 140, 142, 142, 152, 142, 133, 139, 132, 129, 140, 134, 130, 136, 156, 132, 131, 138, 138, 134, 144, 148, 141, 135, 139, 134, 148, 145, 143, 135, 127, 137, 143, 146, 126, 132, 135, 139, 126, 147, 137, 142, 142, 139, 138, 131, 143, 140, 144, 145, 136, 132, 134, 141, 134, 150, 133, 138, 128, 129, 139, 137, 132, 136, 135, 130, 132, 142, 139, 137, 151, 142, 148, 143, 142, 145, 132, 144, 136, 140, 130, 145, 132, 138, 140, 140, 137, 139, 138, 151, 152, 140, 149, 136, 134, 126, 130, 148, 134, 128, 151, 130, 139, 148, 132, 146, 131, 136, 146, 128, 139, 129, 127, 142, 147, 128, 143, 135, 151, 131, 132, 146, 140, 147, 138, 145, 143, 137, 151, 135, 148, 142, 150, 135, 144, 134, 143, 138, 147, 144, 140, 142, 147, 140, 136, 142, 140, 147, 137, 142, 130, 137, 142, 139, 141, 139, 146, 142, 131, 137, 130, 138, 129, 144, 143, 146, 134, 117, 137, 129, 141, 136, 137, 142, 128, 138, 149, 132, 137, 133, 140, 148, 116, 136, 134, 137, 137, 136, 142, 129, 137, 129, 146, 134, 117, 147, 141, 131, 134, 137, 127, 149, 136, 144, 137, 143, 140, 141, 134, 150, 140, 145, 139, 145, 141, 135, 147, 137, 135, 134, 133, 137, 152, 133, 139, 133, 135, 148, 135, 145, 134, 154, 127, 139, 135, 140, 143, 144, 146, 151, 142, 143, 145, 151, 134, 149, 150, 137, 129, 144, 126, 129, 143, 136, 131, 133, 130, 136, 145, 137, 140, 137, 137, 137, 144, 143, 149, 146, 132, 134, 137, 133, 136, 132, 135, 138, 132, 140, 137, 138, 147, 148, 150, 132, 149, 122, 136, 122, 143, 133, 142, 148, 142, 143, 136, 138, 134, 139, 125, 127, 137, 144, 135, 139, 146, 146, 136, 144, 134, 133, 137, 144, 134, 145, 144, 140, 148, 137, 147, 134, 136, 136, 138, 130, 134, 132, 137, 141, 137, 134, 128, 152, 145, 145, 144, 137, 130, 132, 134, 140, 143, 144, 137, 144, 144, 138, 150, 126, 139, 135, 146, 139, 141, 141, 130, 134, 136, 143, 150, 137, 143, 142, 129, 137, 137, 138, 150, 150, 137, 134, 145, 133, 132, 143, 135, 136, 133, 138, 137, 128, 145, 141, 152, 134, 141, 141, 143, 143, 136, 149, 146, 138, 136, 143, 134, 150, 139, 145, 130, 153, 139, 142, 138, 136, 125, 146, 139, 137, 133, 142, 139, 148, 140, 134, 123, 129, 140, 142, 133, 146, 137, 138, 136, 133, 135, 140, 147, 146, 139, 142, 141, 136, 132, 136, 136, 131, 146, 142, 148, 148, 141, 136, 129, 128, 147, 137, 146, 135, 135, 136, 134, 139, 139, 138, 141, 127, 142, 142, 143, 140, 132, 132, 143, 150, 135, 133, 143, 130, 138, 131, 139, 147, 136, 132, 140, 137, 133, 135, 144, 139, 137, 136, 128, 131, 143, 147, 150, 137, 145, 135, 149, 124, 138, 141, 130, 136, 141, 148, 148, 137, 144, 138, 151, 136, 146, 140, 140, 136, 145, 137, 136, 141, 142, 147, 140, 139, 149, 141, 138, 140, 141, 152, 144, 146, 147, 139, 143, 141, 135, 135, 150, 145, 144, 131, 137, 142, 145, 131, 138, 133, 130, 132, 130, 145, 141, 131, 132, 131, 136, 142, 136, 133, 144, 139, 134, 142, 119, 133, 150, 138, 146, 147, 130, 140, 141, 144, 139, 133, 128, 137, 130, 130, 132, 143, 133, 132, 131, 132, 134, 146, 149, 138, 135, 140, 138, 144, 141, 126, 144, 139, 121, 138, 140, 150, 141, 147, 140, 145, 130, 141, 138, 147, 145, 133, 142, 139, 135, 133, 137, 138, 139, 161, 146, 142, 135, 140, 139, 129, 141, 137, 132, 139, 144, 134, 138, 138, 147, 144, 141, 142, 137, 142, 142, 139, 139, 139, 147, 144, 141, 147, 140, 144, 124, 138, 145, 145, 143, 134, 132, 141, 127, 140, 132, 131, 134, 131, 140, 149, 139, 137, 138, 138, 138, 146, 149, 136, 137, 153, 140, 137, 141, 133, 131, 130, 142, 139, 142, 131, 141, 137, 131, 148, 138, 131, 142, 136, 129, 146, 152, 136, 142, 140, 146, 139, 141, 133, 142, 147, 142, 147, 132, 128, 144, 135, 130, 138, 143, 147, 134, 139, 142, 136, 161, 143, 138, 131, 132, 139, 149, 137, 132, 129, 137, 136, 133, 136, 137, 139, 140, 133, 134, 137, 130, 133, 139, 137, 140, 139, 146, 136, 135, 144, 132, 142, 135, 123, 139, 140, 138, 131, 141, 136, 136, 132, 138, 132, 133, 138, 144, 136, 141, 130, 127, 142, 136, 138, 137, 131, 141, 135, 144, 139, 139, 132, 144, 146, 134, 146, 128, 143, 139, 144, 137, 139, 147, 138, 144, 130, 143, 139, 143, 129, 133, 126, 135, 135, 132, 142, 145, 137, 136, 142, 152, 139, 140, 132, 147, 138, 151, 141, 129, 129, 141, 140, 138, 139, 142, 136, 142, 136, 145, 126, 141, 140, 138, 143, 140, 133, 142, 137, 126, 124, 126, 137, 145, 139, 141, 143, 137, 135, 138, 142, 143, 143, 145, 144, 141, 148, 157, 134, 127, 146, 132, 135, 150, 137, 136, 138, 140, 125, 143, 137, 138, 139, 139, 137, 144, 134, 143, 136, 142, 138, 129, 141, 135, 133, 144, 147, 134, 135, 137, 135, 128, 139, 134, 144, 131, 143, 140, 140, 141, 140, 140, 130, 138, 153, 140, 136, 136, 134, 147, 136, 142, 124, 133, 135, 136, 133, 136, 142, 133, 137, 129, 136, 139, 136, 133, 137, 129, 135, 140, 153, 146, 143, 143, 135, 132, 145, 141, 135, 143, 141, 145, 147, 136, 145, 137, 136, 136, 142, 138, 136, 140, 139, 143, 138, 132, 136, 145, 144, 137, 132, 138, 131, 138, 137, 142, 153, 133, 140, 141, 143, 149, 136, 137, 136, 137, 128, 141, 147, 153, 136, 142, 137, 137, 139, 135, 138, 137, 137, 130, 137, 151, 133, 143, 144, 132, 138, 144, 143, 135, 143, 146, 145, 141, 141, 136, 144, 144, 135, 129, 133, 134, 146, 141, 142, 139, 143, 139, 143, 147, 140, 152, 144, 140, 141, 128, 135, 141, 138, 138, 150, 140, 132, 138, 145, 139, 147, 136, 143, 145, 137, 140, 135, 142, 143, 138, 143, 134, 137, 131, 148, 144, 144, 137, 147, 142, 137, 140, 135, 145, 138, 127, 140, 145, 142, 130, 143, 134, 139, 140, 147, 142, 138, 138, 142, 150, 135, 134, 143, 143, 142, 130, 137, 142, 138, 132, 137, 137, 140, 141, 140, 136, 147, 139, 138, 134, 142, 142, 130, 148, 133, 139, 145, 139, 143, 139, 138, 137, 139, 138, 134, 137, 138, 130, 137, 138, 147, 134, 142, 134, 135, 140, 136, 136, 143, 140, 138, 136, 137, 143, 138, 148, 137, 135, 139, 140, 138, 134, 137, 140, 146, 130, 132, 147, 146, 143, 141, 145, 134, 139, 141, 141, 149, 140, 140, 134, 135, 144, 147, 142, 149, 136, 147, 143, 136, 135, 145, 138, 148, 135, 135, 143, 142, 137, 143, 142, 133, 139, 139, 143, 138, 142, 139, 148, 141, 153, 137, 137, 136, 135, 139, 134, 141, 141, 131, 138, 133, 142, 152, 131, 129, 140, 138, 145, 153, 135, 135, 140, 138, 145, 139, 137, 142, 137, 140, 138, 138, 136, 141, 135, 139, 141, 144, 140, 148, 143, 143, 142, 136, 135, 145, 140, 132, 143, 141, 139, 139, 137, 137, 145, 143, 137, 141, 139, 141, 131, 139, 131, 130, 132, 142, 137, 136, 140, 137, 132, 138, 141, 139, 141, 135, 142, 138, 140, 142, 137, 136, 137, 145, 143, 137, 139, 146, 146, 137, 150, 136, 138, 123, 138, 134, 133, 135, 136, 136, 141, 133, 146, 144, 153, 138, 139, 137, 145, 137, 140, 141, 137, 139, 136, 138, 151, 133, 143, 134, 138, 140, 144, 136, 139, 135, 138, 141, 143, 142, 142, 138, 137, 134, 140, 141, 138, 139, 139, 138, 143, 137, 141, 140, 143, 140, 134, 137, 141, 139, 127, 136, 134, 136, 139, 135, 136, 134, 138, 144, 143, 139, 141, 138, 134, 134, 136, 140, 140, 138, 138, 142, 125, 138, 144, 136, 138, 139, 137, 139, 137, 131, 131, 139, 137, 135, 133, 138, 139, 138, 139, 140, 150, 139, 128, 139, 143, 137, 135, 137, 143, 141, 138, 138, 145, 142, 142, 139, 144, 141, 139, 138, 137, 136, 140, 140, 148, 136, 140, 144, 138, 139, 139, 143, 139, 132, 136, 131, 134, 136, 135, 146, 140, 135, 141, 140, 137, 142, 143, 138, 140, 145, 137, 137, 143, 141, 141, 140, 134, 138, 141, 135, 147, 143, 144, 142, 141, 146, 138, 140, 143, 135, 136, 137, 130, 127, 141, 133, 137, 141, 137, 135, 139, 140, 137, 139, 137, 135, 138, 135, 140, 138, 135, 139, 138, 144, 139, 134, 134, 141, 131, 136, 136, 138, 136, 132, 138, 141, 135, 138, 140, 140, 139, 138, 133, 141, 143, 139, 145, 144, 136, 150, 140, 137, 138, 140, 142, 141, 135, 143, 144, 140, 137, 141, 132, 144, 135, 142, 137, 144, 134, 139, 139, 136, 140, 136, 140, 136, 140, 144, 141, 143, 144, 147, 128, 136, 137, 145, 136, 136, 147, 134, 135, 137, 138, 143, 136, 138, 135, 135, 148, 138, 133, 145, 142, 140, 137, 137, 144, 138, 144, 137, 132, 142, 135, 135, 134, 132, 126, 137, 137, 143, 143, 136, 144, 138, 139, 135, 146, 141, 137, 137, 137, 140, 134, 134, 135, 136, 137, 138, 133, 139, 138, 140, 131, 136, 136, 132, 141, 133, 142, 143, 134, 147, 137, 136, 137, 134, 143, 143, 136, 143, 142, 136, 134, 135, 143, 147, 139, 138, 140, 142, 147, 137, 140, 135, 143, 139, 135, 140, 132, 146, 148, 139, 143, 138, 142, 144, 137, 138, 138, 144, 143, 135, 137, 144, 132, 136, 135, 126, 139, 144, 137, 137, 136, 141, 134, 139, 135, 136, 146, 129, 132, 140, 137, 142, 135, 137, 139, 130, 139, 134, 137, 152, 146, 140, 140, 143, 145, 142, 138, 137, 139, 141, 139, 137, 137, 130, 141, 137, 139, 141, 151, 133, 132, 141, 142, 143, 139, 139, 141, 142, 138, 142, 138, 129, 139, 135, 148, 135, 143, 136, 141, 138, 138, 137, 137, 151, 136, 129, 139, 133, 146, 141, 147, 134, 140, 136, 132, 141, 147, 145, 131, 132, 134, 131, 136, 133, 133, 138, 134, 132, 135, 141, 135, 139, 138, 133, 143, 141, 143, 138, 140, 125, 146, 139, 138, 138, 132, 139, 140, 140, 137, 140, 137, 137, 143, 149, 131, 146, 151, 140, 142, 143, 140, 140, 145, 136, 134, 144, 126, 133, 145, 140, 143, 144, 143, 135, 135, 138, 142, 138, 139, 134, 140, 140, 140, 129, 145, 132, 141, 139, 133, 144, 147, 147, 135, 134, 143, 141, 140, 143, 141, 138, 135, 147, 135, 131, 138, 137, 138, 143, 143, 142, 143, 157, 144, 139, 143, 136, 141, 141, 138, 140, 141, 140, 137, 132, 128, 134, 139, 138, 143, 139, 141, 139, 135, 144, 132, 138, 141, 141, 136, 139, 137, 136, 139, 143, 146, 127, 135, 138, 139, 144, 141, 141, 128, 141, 157, 130, 145, 140, 135, 135, 141, 139, 141, 136, 138, 142, 141, 134, 137, 146, 132, 139, 142, 134, 134, 132, 135, 146, 144, 140, 134, 139, 130, 140, 137, 139, 136, 131, 129, 132, 139, 130, 140, 129, 142, 132, 140, 136, 138, 141, 139, 140, 133, 134, 134, 131, 115, 137, 145, 133, 131, 141, 151, 132, 146, 136, 143, 144, 142, 139, 147, 148, 138, 129, 145, 137, 142, 132, 140, 136, 134, 139, 138, 148, 133, 130, 142, 136, 140, 136, 139, 134, 143, 132, 143, 143, 131, 146, 143, 137, 138, 141, 140, 139, 134, 144, 147, 137, 140, 152, 139, 139, 133, 140, 133, 139, 144, 137, 139, 141, 133, 140, 139, 131, 135, 140, 145, 133, 139, 137, 140, 137, 142, 137, 143, 142, 142, 141, 141, 128, 140, 141, 142, 138, 140, 134, 141, 136, 134, 136, 139, 143, 155, 133, 143, 137, 139, 136, 133, 141, 139, 144, 142, 133, 145, 143, 132, 137, 134, 151, 134, 141, 142, 146, 139, 151, 135, 145, 139, 143, 138, 137, 131, 135, 153, 134, 147, 144, 137, 142, 148, 140, 145, 135, 154, 137, 141, 152, 140, 142, 133, 134, 129, 140, 139, 137, 136, 138, 129, 139, 142, 135, 136, 133, 138, 134, 132, 143, 138, 136, 148, 140, 139, 134, 143, 142, 143, 138, 145, 135, 135, 144, 146, 136, 149, 140, 142, 141, 147, 140, 134, 135, 136, 143, 144, 135, 132, 139, 140, 147, 140, 135, 133, 135, 136, 144, 141, 143, 141, 144, 133, 138, 135, 144, 142, 146, 142, 135, 148, 133, 133, 137, 138, 138, 132, 134, 134, 140, 141, 133, 149, 140, 137, 134, 136, 139, 141, 141, 130, 130, 137, 149, 143, 137, 139, 141, 132, 132, 138, 141, 136, 132, 139, 144, 148, 134, 143, 140, 135, 141, 136, 136, 137, 131, 153, 138, 142, 126, 142, 137, 139, 135, 142, 139, 138, 139, 138, 140, 128, 136, 135, 135, 139, 131, 136, 136, 141, 147, 138, 146, 143, 140, 138, 142, 134, 138, 139, 145, 141, 139, 127, 139, 141, 135, 139, 141, 137, 137, 138, 138, 139, 142, 145, 149, 139, 135, 145, 138, 144, 146, 143, 139, 139, 144, 143, 138, 136, 137, 144, 131, 141, 139, 140, 137, 140, 138, 148, 126, 134, 143, 135, 145, 148, 147, 137, 140, 135, 131, 145, 136, 134, 139, 138, 137, 137, 141, 135, 147, 143, 141, 142, 138, 138, 138, 145, 134, 137, 131, 129, 137, 137, 148, 137, 143, 135, 142, 150, 136, 137, 134, 134, 141, 140, 140, 135, 141, 141, 140, 132, 133, 136, 142, 135, 153, 140, 135, 135, 145, 137, 138, 138, 134, 138, 139, 150, 150, 135, 142, 139, 135, 137, 134, 140, 134, 141, 141, 143, 134, 142, 141, 145, 141, 139, 143, 135, 151, 141, 140, 139, 141, 144, 136, 141, 145, 146, 143, 134, 153, 147, 135, 144, 147, 136, 130, 131, 139, 140, 144, 142, 138, 133, 131, 137, 143, 146, 137, 132, 135, 141, 139, 146, 131, 143, 142, 139, 133, 149, 136, 135, 134, 157, 137, 138, 132, 146, 132, 131, 144, 145, 134, 144, 138, 141, 135, 135, 137, 143, 136, 145, 143, 153, 146, 127, 136, 136, 132, 140, 140, 143, 132, 140, 138, 144, 144, 131, 144, 149, 150, 142, 132, 128, 143, 129, 135, 137, 134, 148, 134, 143, 136, 142, 134, 134, 140, 132, 136, 142, 136, 132, 139, 138, 141, 136, 135, 139, 141, 144, 131, 142, 137, 139, 134, 138, 134, 139, 145, 141, 157, 138, 145, 137, 146, 140, 136, 141, 147, 131, 135, 135, 138, 144, 140, 133, 136, 136, 140, 135, 136, 136, 140, 135, 145, 133, 143, 130, 137, 135, 146, 139, 134, 144, 142, 140, 142, 139, 126, 141, 136, 130, 137, 133, 133, 140, 138, 145, 144, 139, 145, 140, 156, 127, 135, 144, 131, 132, 134, 135, 129, 153, 138, 134, 145, 135, 133, 147, 136, 131, 132, 134, 143, 134, 148, 140, 138, 137, 138, 132, 143, 146, 139, 135, 136, 155, 132, 133, 129, 141, 138, 133, 137, 139, 145, 142, 146, 146, 145, 143, 145, 132, 138, 140, 121, 141, 135, 142, 134, 132, 137, 141, 135, 135, 140, 140, 142, 146, 143, 134, 138, 148, 164, 139, 141, 135, 137, 135, 145, 137, 133, 143, 141, 155, 139, 125, 137, 139, 138, 153, 139, 136, 139, 138, 137, 141, 143, 145, 134, 145, 136, 142, 132, 134, 143, 147, 142, 135, 128, 127, 143, 145, 129, 141, 133, 151, 142, 138, 145, 133, 139, 111, 136, 136, 140, 135, 137, 141, 137, 131, 130, 140, 143, 135, 144, 139, 144, 145, 143, 146, 134, 132, 137, 139, 135, 148, 136, 135, 147, 135, 142, 142, 134, 139, 143, 135, 140, 143, 144, 129, 140, 140, 139, 137, 151, 134, 143, 142, 129, 132, 145, 136, 144, 148, 148, 144, 144, 149, 131, 141, 136, 152, 147, 138, 139, 147, 137, 139, 145, 140, 143, 145, 136, 134, 123, 138, 131, 142, 149, 141, 141, 141, 143, 132, 136, 137, 144, 142, 138, 139, 142, 140, 145, 149, 140, 141, 138, 147, 134, 155, 144, 148, 138, 152, 143, 137, 142, 142, 143, 140, 136, 142, 143, 138, 137, 145, 135, 136, 141, 132, 139, 130, 132, 136, 139, 149, 134, 130, 134, 136, 140, 138, 139, 135, 140, 143, 143, 153, 142, 143, 136, 134, 141, 140, 144, 141, 139, 137, 146, 138, 134, 139, 132, 134, 145, 136, 137, 143, 138, 127, 137, 137, 132, 140, 136, 145, 139, 139, 140, 144, 137, 137, 144, 144, 141, 140, 135, 146, 139, 131, 143, 138, 130, 144, 134, 150, 137, 135, 135, 139, 130, 155, 127, 139, 137, 143, 136, 131, 137, 132, 138, 144, 142, 139, 145, 140, 131, 137, 132, 134, 130, 140, 146, 134, 148, 136, 148, 127, 139, 135, 139, 142, 147, 143, 132, 147, 131, 134, 140, 145, 134, 153, 146, 133, 143, 138, 140, 128, 137, 133, 145, 138, 140, 136, 137, 140, 140, 143, 135, 141, 139, 138, 145, 144, 125, 149, 135, 129, 138, 151, 150, 155, 142, 132, 136, 134, 144, 143, 128, 132, 126, 135, 143, 141, 134, 153, 140, 153, 137, 145, 136, 132, 145, 126, 134, 134, 117, 132, 134, 133, 136, 138, 136, 131, 133, 131, 126, 146, 135, 143, 142, 132, 138, 134, 148, 147, 141, 140, 136, 136, 132, 148, 145, 141, 131, 132, 146, 142, 137, 134, 133, 147, 139, 134, 125, 138, 140, 141, 141, 137, 129, 139, 129, 126, 123, 145, 136, 127, 128, 140, 145, 141, 151, 138, 149, 139, 132, 137, 141, 141, 139, 135, 130, 148, 144, 137, 129, 137, 135, 140, 146, 152, 144, 136, 139, 109, 141, 139, 141, 138, 135, 138, 142, 135, 134, 134, 146, 149, 138, 146, 138, 145, 144, 140, 139, 139, 141, 140, 130, 138, 148, 135, 132, 137, 128, 134, 130, 131, 132, 132, 137, 140, 142, 145, 140, 146, 132, 133, 146, 141, 141, 143, 125, 134, 140, 132, 142, 140, 137, 138, 142, 131, 143, 141, 141, 146, 151, 138, 139, 129, 143, 126, 137, 134, 137, 142, 142, 149, 136, 140, 139, 144, 141, 142, 143, 106, 128, 135, 127, 142, 131, 133, 143, 142, 145, 137, 149, 140, 133, 136, 131, 137, 138, 134, 128, 130, 134, 138, 143, 138, 135, 141, 134, 136, 141, 128, 144, 142, 132, 143, 130, 138, 139, 136, 136, 139, 145, 140, 141, 151, 134, 134, 138, 142, 148, 153, 139, 146, 139, 141, 144, 138, 136, 140, 136, 137, 137, 131, 142, 140, 142, 126, 146, 141, 136, 136, 142, 144, 143, 140, 144, 136, 132, 145, 131, 133, 140, 145, 148, 147, 134, 142, 140, 128, 138, 133, 140, 135, 145, 135, 141, 140, 138, 142, 145, 139, 134, 141, 141, 139, 143, 141, 148, 146, 137, 145, 136, 136, 137, 140, 128, 137, 140, 144, 143, 137, 144, 140, 138, 139, 138, 148, 139, 136, 141, 135, 126, 130, 137, 149, 146, 135, 146, 130, 131, 147, 131, 138, 149, 138, 128, 147, 134, 145, 137, 133, 141, 149, 134, 149, 132, 133, 138, 130, 132, 144, 139, 150, 134, 138, 137, 135, 142, 142, 136, 136, 130, 140, 143, 141, 135, 139, 147, 134, 137, 131, 143, 138, 146, 145, 136, 135, 143, 137, 138, 131, 130, 138, 131, 138, 143, 136, 129, 149, 138, 144, 139, 140, 141, 139, 146, 141, 135, 140, 151, 137, 150, 135, 142, 142, 139, 135, 140, 130, 137, 139, 130, 138, 141, 139, 137, 132, 142, 140, 146, 140, 139, 134, 139, 139, 128, 129, 133, 136, 148, 137, 141, 143, 141, 150, 139, 149, 139, 141, 147, 143, 142, 132, 139, 131, 134, 145, 147, 140, 145, 140, 140, 133, 137, 134, 142, 138, 141, 142, 142, 139, 127, 154, 134, 135, 122, 141, 126, 131, 146, 135, 143, 145, 136, 157, 139, 136, 141, 142, 131, 138, 148, 142, 131, 134, 138, 146, 142, 136, 141, 140, 141, 148, 144, 143, 135, 129, 144, 143, 133, 131, 143, 137, 144, 127, 143, 136, 138, 137, 140, 143, 133, 138, 128, 140, 141, 141, 140, 134, 134, 145, 124, 139, 143, 140, 141, 140, 142, 149, 138, 144, 136, 139, 133, 141, 141, 135, 137, 146, 148, 131, 136, 139, 133, 130, 134, 129, 142, 129, 135, 135, 146, 140, 133, 141, 132, 140, 128, 139, 139, 148, 151, 136, 140, 146, 136, 135, 138, 136, 138, 146, 138, 148, 137, 137, 143, 148, 130, 130, 139, 139, 143, 139, 137, 136, 141, 136, 145, 156, 143, 148, 134, 136, 139, 146, 144, 124, 124, 149, 131, 137, 123, 138, 138, 146, 143, 138, 139, 139, 138, 143, 134, 136, 141, 135, 142, 141, 144, 132, 133, 147, 137, 140, 131, 142, 153, 133, 137, 144, 133, 138, 137, 139, 135, 138, 134, 148, 144, 127, 146, 140, 137, 132, 142, 138, 136, 134, 146, 136, 138, 135, 136, 132, 133, 142, 133, 138, 136, 135, 141, 142, 137, 132, 146, 143, 147, 131, 136, 124, 142, 137, 133, 146, 134, 142, 156, 137, 143, 139, 132, 134, 141, 134, 141, 140, 140, 152, 134, 145, 146, 135, 148, 144, 136, 140, 145, 141, 131, 135, 141, 140, 140, 128, 134, 142, 143, 145, 138, 131, 148, 141, 135, 134, 137, 135, 148, 134, 142, 147, 142, 139, 146, 140, 145, 133, 141, 143, 135, 136, 142, 139, 139, 134, 131, 141, 153, 142, 133, 141, 139, 140, 136, 147, 155, 135, 128, 127, 140, 143, 134, 143, 135, 132, 143, 132, 146, 132, 138, 132, 161, 140, 138, 138, 134, 148, 142, 132, 135, 141, 137, 130, 143, 138, 134, 134, 152, 142, 144, 132, 139, 138, 140, 140, 139, 133, 132, 142, 144, 136, 139, 140, 140, 138, 141, 131, 138, 139, 144, 135, 138, 141, 137, 142, 142, 141, 130, 135, 148, 140, 145, 138, 135, 139, 139, 146, 140, 145, 138, 141, 135, 147, 138, 140, 140, 142, 140, 146, 137, 122, 145, 140, 134, 140, 140, 130, 130, 143, 132, 146, 129, 130, 139, 137, 136, 152, 138, 134, 133, 142, 134, 138, 151, 147, 143, 150, 127, 143, 141, 142, 129, 138, 133, 130, 140, 143, 142, 151, 146, 140, 141, 143, 145, 137, 141, 133, 133, 135, 127, 136, 137, 151, 140, 148, 139, 139, 143, 140, 135, 141, 149, 125, 144, 143, 137, 130, 135, 131, 141, 145, 136, 133, 130, 137, 140, 134, 129, 147, 144, 148, 137, 138, 133, 141, 134, 144, 146, 133, 138, 146, 143, 132, 144, 133, 141, 135, 140, 138, 139, 141, 139, 140, 130, 144, 129, 133, 130, 135, 128, 138, 131, 136, 134, 148, 148, 142, 141, 132, 136, 139, 149, 130, 130, 135, 141, 133, 137, 135, 139, 138, 125, 137, 134, 138, 147, 141, 136, 131, 132, 147, 143, 138, 137, 134, 136, 145, 145, 137, 142, 147, 138, 134, 130, 150, 140, 131, 147, 130, 137, 143, 159, 141, 146, 129, 132, 151, 126, 128, 143, 140, 139, 148, 137, 141, 144, 147, 142, 135, 134, 143, 143, 141, 136, 126, 133, 140, 147, 129, 142, 144, 139, 136, 129, 138, 132, 131, 138, 143, 138, 135, 141, 129, 144, 141, 138, 142, 146, 131, 135, 138, 149, 142, 138, 130, 144, 139, 150, 141, 142, 139, 143, 133, 132, 131, 136, 137, 135, 134, 130, 150, 142, 136, 148, 134, 144, 136, 144, 145, 143, 146, 138, 131, 140, 139, 134, 135, 146, 150, 139, 143, 138, 150, 134, 140, 138, 143, 131, 138, 139, 146, 133, 140, 137, 134, 132, 140, 136, 135, 136, 143, 148, 137, 148, 157, 143, 129, 135, 148, 142, 135, 146, 133, 138, 138, 125, 135, 134, 137, 132, 135, 141, 131, 140, 141, 147, 137, 138, 142, 149, 138, 139, 140, 141, 135, 138, 135, 137, 131, 146, 146, 142, 145, 144, 144, 138, 145, 135, 135, 148, 140, 144, 139, 123, 142, 131, 144, 139, 139, 142, 137, 141, 128, 147, 147, 143, 137, 146, 127, 145, 133, 135, 129, 145, 147, 136, 134, 144, 136, 131, 143, 150, 136, 136, 138, 146, 134, 140, 143, 141, 134, 141, 139, 132, 134, 134, 143, 153, 145, 132, 136, 127, 146, 143, 132, 136, 137, 143, 140, 140, 132, 144, 148, 136, 138, 131, 146, 140, 139, 154, 141, 136, 133, 135, 133, 141, 135, 144, 140, 141, 137, 141, 138, 140, 142, 137, 135, 140, 138, 143, 138, 142, 143, 142, 135, 133, 127, 137, 127, 137, 140, 131, 142, 137, 140, 132, 137, 139, 141, 141, 143, 140, 141, 145, 144, 140, 141, 135, 137, 134, 136, 139, 133, 151, 137, 138, 138, 142, 138, 139, 148, 140, 140, 130, 141, 139, 140, 138, 145, 151, 138, 145, 135, 137, 146, 136, 141, 141, 138, 141, 146, 142, 139, 130, 145, 142, 135, 141, 133, 139, 136, 143, 145, 136, 132, 142, 141, 139, 135, 136, 138, 141, 140, 134, 140, 139, 140, 139, 138, 138, 135, 142, 143, 136, 132, 137, 135, 131, 132, 140, 147, 139, 131, 131, 135, 140, 129, 143, 136, 141, 142, 139, 138, 137, 140, 145, 130, 141, 142, 146, 139, 138, 131, 139, 136, 133, 137, 141, 147, 138, 142, 139, 141, 141, 142, 137, 142, 134, 136, 141, 136, 139, 134, 134, 139, 135, 136, 136, 142, 138, 145, 146, 143, 142, 140, 143, 140, 140, 127, 141, 137, 141, 127, 136, 140, 139, 131, 141, 137, 131, 142, 136, 135, 141, 139, 143, 140, 131, 137, 140, 145, 140, 141, 127, 137, 132, 140, 132, 139, 141, 147, 145, 133, 142, 138, 144, 137, 134, 135, 137, 139, 141, 134, 134, 134, 139, 134, 138, 134, 139, 135, 136, 137, 139, 134, 131, 141, 139, 145, 139, 135, 128, 137, 137, 143, 140, 138, 141, 135, 146, 134, 137, 142, 136, 131, 134, 137, 140, 134, 143, 143, 137, 140, 139, 138, 138, 142, 133, 142, 142, 144, 139, 147, 144, 142, 132, 136, 132, 139, 146, 140, 138, 143, 134, 139, 132, 144, 140, 138, 138, 133, 139, 140, 136, 134, 129, 141, 145, 141, 136, 141, 137, 139, 136, 134, 142, 138, 135, 144, 142, 140, 135, 145, 135, 134, 130, 139, 148, 145, 145, 140, 126, 143, 136, 138, 139, 136, 143, 145, 142, 132, 144, 139, 132, 139, 149, 140, 135, 138, 138, 136, 138, 142, 148, 140, 140, 145, 137, 138, 147, 135, 135, 141, 141, 136, 138, 144, 141, 143, 137, 141, 137, 136, 138, 139, 140, 138, 132, 140, 135, 147, 143, 137, 129, 139, 141, 138, 138, 140, 136, 141, 134, 145, 141, 143, 137, 145, 133, 139, 140, 137, 133, 141, 145, 130, 144, 140, 132, 137, 135, 143, 135, 133, 142, 135, 144, 130, 134, 139, 144, 142, 138, 134, 143, 141, 135, 139, 134, 138, 140, 143, 136, 133, 140, 136, 138, 138, 141, 137, 138, 137, 132, 141, 147, 135, 142, 143, 140, 146, 133, 134, 143, 131, 142, 130, 135, 133, 134, 143, 139, 139, 144, 144, 136, 136, 143, 150, 138, 138, 138, 135, 137, 131, 138, 140, 143, 137, 143, 140, 147, 141, 134, 144, 145, 141, 136, 134, 136, 131, 143, 138, 133, 137, 136, 140, 134, 138, 138, 145, 142, 142, 139, 142, 137, 137, 145, 137, 143, 140, 142, 142, 143, 136, 150, 147, 137, 143, 136, 146, 147, 134, 148, 145, 135, 136, 143, 136, 138, 143, 133, 140, 142, 135, 143, 131, 134, 135, 135, 134, 145, 148, 143, 130, 131, 140, 141, 136, 142, 129, 146, 138, 138, 139, 131, 147, 142, 149, 132, 135, 136, 140, 143, 131, 146, 142, 147, 141, 137, 124, 143, 139, 147, 124, 128, 143, 138, 131, 134, 141, 148, 131, 137, 136, 139, 150, 132, 146, 144, 142, 133, 140, 137, 139, 136, 136, 143, 144, 134, 144, 139, 138, 139, 139, 148, 142, 140, 131, 146, 129, 142, 135, 139, 128, 140, 135, 130, 129, 130, 126, 139, 144, 138, 147, 147, 146, 140, 136, 137, 137, 136, 148, 134, 143, 133, 141, 141, 135, 139, 143, 136, 141, 138, 129, 137, 140, 143, 136, 141, 126, 132, 136, 132, 148, 137, 138, 131, 141, 141, 135, 136, 143, 141, 142, 138, 135, 138, 145, 144, 142, 143, 139, 141, 133, 140, 136, 140, 138, 133, 135, 145, 130, 136, 144, 128, 139, 141, 139, 134, 127, 151, 145, 146, 144, 143, 132, 129, 135, 134, 146, 134, 141, 152, 141, 135, 127, 139, 140, 139, 146, 145, 133, 151, 139, 142, 137, 141, 131, 144, 142, 137, 135, 143, 133, 143, 139, 138, 139, 150, 151, 142, 140, 130, 132, 140, 141, 135, 143, 148, 142, 132, 138, 130, 134, 139, 132, 146, 136, 144, 136, 139, 128, 140, 138, 141, 138, 134, 135, 145, 138, 134, 143, 143, 152, 129, 138, 146, 144, 131, 144, 138, 149, 140, 156, 147, 152, 140, 147, 126, 137, 131, 143, 136, 145, 125, 131, 142, 138, 137, 136, 137, 133, 153, 132, 142, 143, 129, 129, 133, 133, 134, 133, 143, 140, 135, 133, 133, 142, 131, 135, 143, 126, 134, 142, 122, 124, 146, 129, 139, 138, 142, 142, 139, 138, 154, 133, 139, 130, 132, 133, 140, 145, 144, 135, 139, 136, 142, 129, 142, 146, 134, 143, 141, 140, 139, 132, 145, 142, 121, 158, 139, 128, 139, 136, 134, 150, 142, 142, 130, 142, 135, 144, 138, 153, 143, 134, 140, 131, 144, 132, 141, 141, 147, 141, 134, 129, 137, 141, 150, 132, 136, 124, 139, 148, 143, 134, 139, 139, 139, 134, 135, 138, 130, 140, 141, 136, 141, 142, 131, 134, 139, 125, 144, 134, 137, 139, 132, 143, 131, 148, 127, 136, 158, 154, 143, 141, 141, 147, 145, 143, 132, 136, 139, 143, 136, 138, 135, 127, 138, 139, 139, 141, 137, 138, 141, 149, 133, 133, 146, 131, 141, 143, 139, 132, 141, 137, 124, 134, 145, 145, 138, 136, 143, 139, 138, 144, 137, 141, 148, 138, 137, 143, 135, 148, 141, 142, 141, 139, 140, 143, 135, 139, 125, 137, 149, 136, 142, 134, 137, 143, 143, 136, 137, 144, 139, 132, 140, 134, 130, 149, 135, 140, 139, 125, 140, 129, 144, 129, 132, 137, 134, 139, 135, 141, 138, 152, 141, 142, 136, 139, 141, 133, 146, 143, 141, 137, 151, 146, 128, 140, 139, 132, 143, 136, 143, 143, 133, 144, 147, 137, 143, 139, 139, 137, 131, 141, 136, 138, 143, 138, 138, 140, 139, 137, 141, 137, 141, 138, 129, 133, 141, 139, 136, 137, 141, 142, 136, 142, 135, 139, 139, 142, 139, 140, 142, 124, 138, 137, 138, 137, 141, 144, 143, 141, 136, 136, 141, 144, 141, 136, 139, 137, 134, 132, 143, 143, 137, 138, 143, 139, 140, 138, 137, 141, 141, 137, 137, 140, 137, 140, 133, 106, 136, 141, 143, 135, 132, 139, 134, 139, 139, 142, 145, 141, 140, 139, 140, 140, 144, 142, 92, 137, 141, 141, 139, 142, 140, 141, 137, 138, 141, 136, 137, 137, 139, 136, 133, 135, 138, 138, 143, 139, 139, 139, 142, 137, 142, 139, 137, 135, 131, 137, 140, 135, 138, 141, 143, 143, 139, 142, 144, 138, 144, 141, 137, 140, 139, 145, 137, 138, 138, 140, 139, 137, 144, 144, 134, 141, 142, 136, 139, 143, 140, 141, 140, 137, 135, 137, 142, 141, 133, 137, 141, 137, 140, 137, 144, 143, 137, 133, 132, 142, 140, 138, 138, 141, 140, 142, 136, 138, 137, 141, 138, 136, 144, 137, 143, 140, 136, 135, 137, 144, 137, 142, 142, 143, 142, 141, 145, 143, 139, 140, 135, 140, 141, 138, 140, 135, 138, 142, 142, 141, 139, 144, 142, 142, 139, 138, 137, 139, 144, 142, 141, 140, 143, 142, 141, 134, 141, 136, 140, 137, 139, 136, 141, 138, 139, 140, 142, 139, 138, 138, 138, 135, 139, 143, 139, 137, 146, 138, 139, 142, 142, 143, 137, 138, 141, 139, 140, 138, 140, 136, 138, 140, 138, 138, 138, 136, 136, 133, 203, 155, 137, 134, 138, 132, 142, 137, 141, 135, 139, 141, 133, 138, 140, 137, 138, 134, 139, 150, 145, 138, 142, 134, 142, 141, 141, 138, 139, 140, 136, 141, 137, 142, 141, 139, 135, 139, 94, 136, 143, 135, 141, 139, 134, 136, 138, 136, 141, 141, 138, 140, 137, 136, 140, 140, 143, 135, 139, 135, 143, 139, 140, 137, 136, 144, 142, 136, 140, 137, 145, 138, 143, 138, 137, 139, 136, 140, 135, 140, 137, 142, 143, 141, 140, 137, 136, 141, 139, 138, 138, 136, 134, 137, 141, 133, 141, 141, 141, 140, 138, 141, 140, 140, 139, 139, 137, 141, 138, 137, 146, 138, 138, 144, 144, 139, 137, 141, 130, 137, 140, 138, 139, 141, 139, 136, 140, 142, 144, 140, 140, 142, 137, 140, 137, 143, 139, 141, 142, 140, 139, 136, 138, 204, 142, 135, 140, 143, 136, 143, 139, 137, 136, 142, 145, 143, 142, 138, 140, 136, 139, 135, 140, 140, 134, 139, 140, 139, 140, 139, 139, 128, 139, 133, 137, 140, 140, 136, 142, 139, 134, 143, 136, 136, 138, 137, 142, 143, 140, 138, 135, 140, 144, 143, 142, 137, 137, 141, 139, 137, 139, 144, 143, 135, 138, 138, 135, 143, 139, 135, 140, 143, 132, 140, 140, 139, 135, 135, 139, 142, 138, 141, 136, 137, 141, 140, 141, 140, 139, 137, 138, 141, 142, 143, 131, 138, 140, 138, 138, 137, 137, 137, 140, 139, 142, 144, 141, 142, 141, 135, 138, 134, 137, 131, 134, 138, 140, 146, 145, 143, 139, 143, 137, 144, 144, 146, 149, 137, 140, 134, 139, 151, 134, 135, 133, 136, 140, 143, 141, 136, 127, 146, 133, 142, 138, 134, 140, 137, 143, 153, 136, 135, 149, 138, 135, 133, 139, 137, 147, 139, 134, 136, 138, 129, 143, 139, 134, 139, 146, 135, 137, 132, 143, 142, 131, 128, 130, 148, 146, 148, 122, 137, 141, 146, 149, 142, 143, 137, 124, 147, 136, 145, 136, 137, 130, 131, 142, 146, 135, 133, 139, 142, 147, 142, 138, 137, 136, 141, 134, 140, 132, 141, 146, 141, 152, 155, 133, 141, 134, 139, 138, 135, 145, 140, 141, 136, 137, 144, 136, 137, 139, 133, 138, 141, 139, 146, 137, 124, 132, 141, 128, 149, 145, 148, 145, 121, 141, 142, 135, 135, 136, 153, 148, 143, 151, 142, 141, 134, 141, 134, 134, 130, 139, 148, 154, 144, 143, 137, 141, 147, 146, 128, 141, 135, 140, 140, 137, 140, 137, 138, 135, 140, 140, 134, 142, 146, 135, 141, 139, 128, 142, 141, 136, 132, 142, 132, 140, 144, 128, 124, 145, 134, 145, 150, 137, 145, 129, 140, 133, 149, 145, 140, 139, 149, 150, 135, 143, 137, 146, 134, 135, 139, 129, 142, 134, 128, 136, 139, 140, 143, 133, 135, 136, 148, 137, 152, 120, 139, 134, 139, 149, 141, 135, 144, 129, 133, 132, 145, 139, 144, 153, 137, 130, 146, 142, 143, 128, 134, 138, 131, 142, 139, 133, 138, 143, 148, 128, 138, 131, 149, 139, 134, 139, 148, 141, 144, 137, 144, 141, 141, 150, 137, 137, 135, 135, 148, 142, 129, 146, 130, 130, 136, 134, 143, 131, 134, 136, 129, 145, 154, 146, 141, 136, 141, 136, 135, 140, 138, 142, 133, 137, 142, 139, 144, 124, 146, 135, 137, 136, 145, 131, 141, 146, 142, 132, 135, 147, 128, 139, 134, 133, 139, 150, 139, 141, 132, 130, 138, 131, 133, 139, 139, 131, 140, 146, 137, 138, 137, 128, 144, 144, 137, 131, 143, 144, 148, 150, 136, 136, 150, 140, 144, 139, 150, 140, 141, 141, 135, 137, 135, 139, 144, 136, 147, 136, 135, 145, 143, 126, 152, 142, 142, 135, 138, 133, 148, 128, 145, 142, 133, 137, 136, 127, 136, 133, 143, 136, 125, 136, 137, 134, 139, 139, 133, 138, 135, 147, 142, 142, 143, 143, 132, 138, 142, 132, 138, 140, 141, 131, 127, 138, 147, 144, 141, 144, 147, 150, 134, 149, 146, 151, 140, 134, 144, 132, 147, 143, 138, 130, 145, 145, 132, 134, 138, 127, 142, 150, 140, 150, 137, 140, 151, 144, 140, 138, 142, 155, 138, 139, 144, 143, 138, 134, 138, 132, 136, 136, 141, 128, 148, 142, 139, 142, 142, 140, 145, 144, 147, 133, 140, 140, 143, 137, 143, 142, 130, 138, 142, 139, 149, 135, 129, 130, 134, 145, 136, 139, 132, 134, 137, 130, 150, 138, 148, 138, 140, 134, 139, 140, 147, 134, 134, 144, 129, 131, 143, 139, 130, 136, 137, 140, 145, 137, 137, 129, 137, 146, 142, 140, 149, 143, 135, 138, 137, 145, 143, 134, 142, 142, 145, 135, 139, 137, 141, 139, 134, 145, 149, 135, 139, 137, 148, 139, 132, 130, 143, 144, 139, 140, 136, 144, 141, 137, 145, 132, 138, 145, 133, 141, 140, 140, 137, 138, 149, 133, 144, 135, 140, 138, 141, 135, 142, 147, 127, 132, 131, 134, 146, 143, 134, 135, 141, 135, 131, 140, 141, 150, 136, 141, 141, 133, 135, 141, 140, 141, 140, 135, 134, 141, 145, 140, 143, 136, 134, 137, 137, 131, 143, 131, 140, 126, 138, 137, 139, 151, 144, 140, 144, 139, 133, 137, 144, 149, 133, 136, 134, 129, 139, 125, 136, 140, 147, 139, 136, 137, 142, 139, 132, 139, 133, 134, 139, 147, 145, 137, 134, 135, 145, 138, 137, 138, 143, 138, 140, 138, 146, 133, 143, 134, 139, 141, 130, 138, 140, 141, 147, 138, 135, 142, 141, 149, 145, 137, 131, 136, 134, 143, 131, 146, 145, 127, 141, 132, 132, 151, 134, 138, 136, 139, 136, 132, 142, 134, 135, 139, 142, 140, 147, 135, 134, 131, 136, 142, 142, 139, 136, 133, 137, 146, 141, 128, 138, 143, 123, 137, 142, 135, 137, 134, 127, 136, 136, 138, 121, 136, 138, 135, 130, 133, 128, 130, 149, 130, 139, 138, 144, 139, 138, 139, 140, 154, 133, 135, 139, 145, 135, 145, 137, 142, 134, 142, 141, 135, 144, 136, 146, 134, 137, 137, 139, 129, 139, 146, 143, 142, 144, 151, 142, 140, 153, 137, 134, 133, 132, 142, 138, 135, 136, 147, 142, 135, 143, 144, 145, 133, 140, 132, 140, 128, 133, 135, 137, 152, 144, 135, 140, 134, 133, 142, 132, 131, 147, 133, 136, 134, 138, 128, 140, 140, 139, 138, 130, 147, 137, 138, 141, 126, 144, 140, 132, 142, 141, 142, 134, 141, 143, 141, 136, 144, 142, 136, 134, 129, 142, 142, 136, 138, 131, 130, 141, 140, 135, 135, 136, 138, 138, 135, 136, 139, 136, 137, 133, 139, 136, 138, 133, 134, 133, 141, 141, 147, 138, 132, 139, 141, 138, 145, 148, 135, 142, 143, 143, 134, 143, 135, 129, 139, 133, 135, 143, 135, 135, 139, 136, 139, 138, 142, 137, 147, 142, 131, 136, 133, 136, 139, 138, 131, 138, 137, 135, 141, 139, 139, 135, 137, 134, 136, 117, 147, 146, 137, 135, 144, 133, 140, 132, 125, 138, 126, 144, 135, 140, 143, 136, 146, 148, 136, 139, 141, 140, 135, 141, 143, 145, 135, 138, 135, 138, 140, 149, 150, 139, 152, 140, 148, 146, 132, 141, 126, 145, 145, 140, 140, 143, 131, 142, 140, 134, 133, 134, 135, 136, 135, 133, 139, 142, 141, 134, 144, 145, 131, 133, 140, 140, 148, 143, 146, 137, 134, 143, 144, 142, 137, 140, 137, 130, 123, 136, 145, 141, 143, 138, 145, 143, 135, 139, 133, 144, 142, 151, 145, 134, 140, 144, 142, 146, 148, 139, 145, 139, 126, 136, 135, 143, 134, 133, 130, 147, 154, 135, 138, 149, 138, 130, 139, 138, 134, 137, 143, 143, 143, 139, 143, 141, 139, 144, 153, 146, 147, 139, 139, 138, 137, 137, 151, 141, 140, 150, 138, 133, 134, 140, 140, 131, 142, 136, 135, 137, 140, 146, 137, 136, 147, 143, 139, 137, 140, 135, 142, 144, 144, 125, 136, 141, 139, 145, 135, 138, 141, 148, 142, 147, 137, 143, 131, 125, 133, 140, 141, 137, 136, 138, 137, 134, 143, 126, 138, 135, 135, 144, 144, 143, 135, 141, 144, 135, 145, 128, 152, 131, 138, 132, 146, 142, 138, 139, 141, 141, 134, 143, 144, 135, 134, 139, 138, 139, 137, 135, 140, 141, 135, 145, 131, 144, 146, 131, 136, 141, 144, 135, 144, 139, 146, 142, 144, 134, 132, 139, 143, 144, 140, 136, 146, 147, 149, 137, 148, 130, 138, 134, 146, 142, 151, 131, 133, 139, 130, 146, 141, 131, 149, 133, 142, 143, 138, 133, 133, 141, 145, 137, 136, 139, 134, 133, 142, 142, 137, 140, 138, 140, 138, 128, 142, 136, 143, 130, 140, 137, 132, 138, 140, 142, 130, 142, 140, 145, 140, 129, 142, 130, 137, 138, 147, 133, 136, 134, 138, 130, 136, 148, 136, 137, 141, 138, 145, 147, 150, 138, 140, 140, 141, 141, 139, 137, 135, 137, 134, 152, 146, 141, 143, 141, 143, 132, 138, 136, 143, 143, 133, 136, 138, 142, 137, 136, 141, 136, 131, 146, 152, 139, 139, 135, 141, 145, 141, 148, 135, 137, 144, 137, 142, 135, 138, 141, 132, 140, 129, 140, 142, 136, 133, 141, 138, 138, 140, 149, 140, 142, 126, 142, 139, 139, 150, 128, 136, 142, 139, 138, 137, 139, 141, 138, 127, 142, 136, 141, 145, 135, 144, 139, 145, 152, 143, 150, 139, 138, 139, 139, 140, 140, 138, 141, 142, 136, 139, 137, 139, 135, 135, 138, 136, 130, 151, 146, 134, 143, 137, 135, 132, 138, 146, 141, 140, 133, 136, 139, 129, 142, 140, 138, 137, 129, 131, 138, 137, 145, 138, 146, 144, 140, 142, 144, 145, 138, 140, 135, 141, 132, 145, 135, 142, 130, 141, 136, 136, 145, 145, 134, 138, 139, 140, 140, 140, 142, 148, 138, 143, 139, 131, 137, 128, 152, 145, 138, 131, 142, 139, 130, 138, 132, 138, 139, 142, 143, 131, 142, 129, 142, 136, 139, 145, 142, 136, 134, 135, 145, 143, 147, 136, 137, 137, 129, 140, 130, 148, 137, 143, 131, 133, 141, 132, 145, 144, 141, 144, 136, 133, 147, 142, 140, 143, 138, 138, 141, 132, 143, 132, 147, 134, 125, 143, 141, 138, 137, 135, 135, 142, 141, 141, 142, 136, 140, 135, 138, 143, 139, 153, 133, 131, 144, 134, 145, 137, 131, 133, 139, 142, 142, 143, 146, 145, 146, 139, 135, 132, 131, 139, 145, 138, 141, 134, 144, 136, 141, 140, 141, 133, 146, 142, 132, 134, 142, 152, 146, 140, 135, 129, 137, 143, 132, 139, 136, 142, 136, 137, 139, 134, 135, 135, 142, 139, 138, 139, 145, 138, 146, 139, 147, 133, 130, 131, 146, 141, 144, 141, 136, 148, 135, 131, 133, 135, 136, 144, 139, 130, 137, 136, 142, 152, 125, 137, 139, 144, 139, 149, 137, 134, 135, 157, 132, 131, 137, 158, 137, 140, 144, 139, 130, 148, 140, 141, 134, 128, 145, 138, 143, 144, 142, 130, 143, 143, 128, 143, 127, 141, 130, 140, 134, 139, 142, 140, 134, 137, 131, 133, 147, 142, 125, 137, 137, 138, 133, 147, 140, 127, 138, 130, 143, 127, 139, 154, 138, 140, 138, 136, 136, 136, 137, 140, 142, 138, 151, 145, 138, 136, 143, 135, 140, 135, 132, 128, 147, 141, 138, 136, 143, 138, 135, 144, 141, 144, 141, 135, 139, 140, 142, 137, 145, 133, 136, 140, 134, 142, 128, 140, 142, 145, 137, 141, 134, 144, 148, 138, 131, 141, 146, 141, 144, 137, 126, 135, 147, 132, 138, 133, 138, 138, 146, 129, 144, 143, 143, 133, 140, 144, 135, 145, 142, 133, 133, 143, 147, 143, 132, 140, 133, 133, 149, 130, 136, 132, 137, 135, 137, 134, 129, 145, 135, 133, 143, 139, 141, 132, 144, 148, 145, 128, 141, 140, 148, 141, 141, 135, 136, 137, 142, 145, 143, 130, 142, 135, 140, 142, 140, 138, 136, 134, 146, 129, 140, 148, 137, 140, 144, 138, 134, 135, 146, 138, 132, 137, 130, 134, 142, 153, 134, 131, 139, 141, 141, 136, 134, 132, 142, 142, 135, 143, 139, 133, 140, 142, 131, 137, 144, 134, 135, 139, 134, 130, 140, 135, 138, 138, 140, 134, 146, 131, 140, 142, 143, 141, 144, 147, 143, 135, 137, 134, 130, 141, 140, 133, 146, 144, 141, 137, 131, 133, 137, 129, 139, 129, 138, 149, 143, 138, 139, 134, 135, 137, 143, 133, 139, 135, 128, 139, 144, 139, 138, 142, 140, 146, 144, 141, 138, 147, 132, 143, 133, 127, 135, 137, 134, 128, 150, 141, 140, 136, 143, 147, 136, 143, 148, 141, 139, 151, 142, 133, 146, 137, 141, 137, 136, 154, 133, 136, 134, 154, 141, 138, 140, 141, 139, 139, 138, 138, 135, 140, 143, 142, 150, 143, 146, 143, 145, 137, 140, 143, 146, 147, 144, 130, 139, 126, 137, 140, 141, 143, 151, 140, 142, 140, 138, 141, 136, 142, 140, 146, 132, 129, 133, 126, 132, 143, 146, 133, 127, 141, 138, 125, 132, 135, 139, 137, 133, 133, 136, 142, 135, 141, 134, 132, 134, 151, 140, 145, 127, 137, 141, 136, 138, 136, 140, 134, 138, 141, 141, 142, 144, 128, 137, 135, 139, 144, 137, 134, 132, 133, 150, 135, 144, 143, 133, 145, 137, 135, 144, 139, 129, 141, 140, 136, 137, 128, 138, 145, 139, 142, 129, 135, 147, 140, 140, 135, 138, 139, 143, 141, 139, 138, 133, 131, 140, 136, 145, 134, 146, 138, 144, 139, 137, 127, 139, 147, 138, 147, 133, 131, 147, 127, 137, 135, 134, 143, 134, 133, 133, 137, 139, 130, 143, 140, 146, 148, 137, 133, 134, 140, 141, 127, 140, 145, 132, 138, 143, 140, 137, 130, 151, 139, 138, 137, 136, 138, 136, 142, 127, 143, 140, 140, 146, 132, 149, 137, 140, 161, 142, 136, 141, 138, 128, 154, 128, 144, 136, 147, 127, 139, 137, 144, 142, 132, 145, 139, 140, 137, 137, 146, 143, 143, 126, 146, 131, 138, 126, 139, 143, 137, 133, 142, 148, 132, 123, 138, 134, 141, 127, 133, 136, 143, 140, 146, 136, 139, 142, 136, 151, 135, 136, 135, 128, 145, 136, 139, 128, 122, 138, 135, 133, 142, 147, 148, 141, 146, 131, 146, 145, 132, 138, 133, 132, 144, 143, 133, 142, 146, 133, 139, 142, 139, 140, 145, 144, 134, 144, 136, 127, 133, 136, 138, 136, 141, 132, 137, 140, 160, 135, 141, 156, 149, 155, 139, 123, 140, 142, 136, 142, 136, 137, 135, 135, 145, 122, 121, 133, 145, 142, 142, 138, 142, 133, 144, 139, 121, 142, 157, 134, 140, 143, 143, 146, 144, 135, 144, 136, 139, 146, 145, 130, 140, 140, 135, 142, 152, 138, 126, 134, 132, 131, 137, 134, 137, 143, 141, 139, 142, 135, 132, 131, 131, 143, 139, 144, 134, 137, 144, 141, 139, 133, 137, 138, 138, 139, 128, 136, 145, 132, 135, 126, 133, 130, 140, 130, 133, 135, 136, 131, 135, 135, 140, 140, 140, 142, 133, 135, 137, 141, 139, 133, 139, 140, 137, 133, 141, 141, 132, 137, 138, 144, 127, 129, 131, 133, 140, 153, 145, 140, 141, 142, 143, 134, 136, 146, 140, 144, 135, 148, 140, 137, 156, 129, 135, 132, 128, 140, 140, 137, 123, 138, 135, 137, 134, 136, 154, 134, 128, 144, 141, 144, 139, 132, 144, 135, 136, 140, 148, 137, 139, 139, 150, 143, 149, 127, 133, 133, 144, 134, 144, 149, 136, 138, 143, 147, 141, 130, 139, 124, 141, 145, 133, 138, 138, 147, 142, 135, 133, 133, 142, 137, 145, 137, 139, 134, 141, 138, 133, 144, 142, 138, 134, 132, 143, 140, 132, 143, 146, 153, 148, 140, 136, 150, 147, 140, 139, 152, 152, 147, 135, 138, 143, 141, 135, 137, 139, 155, 135, 133, 144, 137, 158, 135, 137, 137, 136, 143, 132, 136, 131, 141, 129, 141, 140, 143, 142, 120, 130, 146, 138, 138, 131, 142, 154, 128, 130, 141, 148, 146, 134, 135, 140, 141, 146, 141, 145, 135, 128, 137, 132, 130, 135, 158, 133, 136, 124, 142, 150, 135, 132, 146, 137, 142, 138, 118, 129, 140, 131, 130, 136, 140, 137, 145, 135, 149, 136, 140, 133, 139, 133, 140, 138, 139, 129, 137, 132, 136, 146, 135, 149, 130, 131, 134, 144, 142, 144, 122, 148, 138, 144, 128, 137, 136, 142, 136, 141, 127, 138, 159, 129, 138, 139, 140, 143, 137, 139, 136, 135, 132, 136, 133, 136, 140, 145, 132, 137, 123, 132, 145, 133, 140, 140, 136, 128, 152, 135, 141, 139, 134, 141, 136, 132, 143, 136, 135, 130, 132, 136, 138, 134, 149, 141, 141, 135, 143, 143, 144, 150, 130, 138, 140, 140, 135, 146, 135, 136, 135, 139, 146, 147, 141, 151, 130, 135, 146, 139, 138, 145, 141, 131, 139, 140, 140, 143, 143, 125, 139, 147, 138, 140, 138, 142, 136, 145, 146, 162, 141, 137, 150, 142, 134, 139, 135, 141, 139, 140, 151, 136, 141, 140, 141, 130, 123, 127, 142, 138, 130, 141, 144, 141, 147, 150, 140, 139, 147, 141, 138, 141, 155, 139, 135, 134, 136, 149, 141, 144, 139, 135, 148, 135, 137, 156, 142, 135, 125, 130, 135, 147, 139, 131, 146, 137, 138, 135, 145, 134, 141, 149, 135, 140, 143, 147, 130, 147, 139, 144, 138, 143, 144, 147, 140, 126, 127, 140, 133, 141, 128, 143, 128, 136, 131, 135, 136, 137, 142, 136, 144, 141, 141, 137, 133, 135, 132, 138, 142, 137, 133, 139, 142, 148, 136, 143, 143, 141, 145, 146, 126, 124, 140, 138, 153, 149, 140, 137, 144, 140, 139, 132, 141, 138, 134, 142, 144, 139, 144, 150, 148, 129, 139, 125, 137, 141, 146, 138, 145, 127, 150, 141, 149, 143, 139, 137, 143, 153, 145, 147, 155, 143, 151, 137, 143, 137, 139, 145, 141, 127, 138, 141, 150, 129, 147, 144, 133, 137, 135, 137, 132, 133, 151, 148, 132, 140, 152, 137, 136, 135, 137, 127, 146, 151, 135, 142, 147, 134, 142, 141, 150, 141, 137, 141, 139, 130, 127, 134, 139, 143, 141, 138, 143, 139, 139, 141, 141, 130, 145, 136, 155, 141, 138, 129, 137, 133, 144, 136, 136, 142, 140, 140, 141, 143, 137, 136, 133, 138, 121, 140, 138, 129, 151, 131, 137, 142, 144, 146, 148, 124, 147, 136, 145, 137, 132, 148, 134, 139, 147, 142, 134, 140, 147, 144, 142, 135, 140, 139, 137, 139, 143, 141, 148, 144, 155, 144, 144, 140, 139, 151, 137, 134, 138, 137, 140, 146, 143, 141, 147, 128, 135, 139, 138, 141, 129, 144, 130, 146, 148, 124, 140, 140, 134, 137, 147, 143, 123, 145, 154, 141, 139, 138, 145, 147, 127, 127, 145, 129, 128, 137, 136, 137, 147, 142, 154, 138, 132, 148, 144, 138, 130, 150, 148, 133, 144, 138, 132, 137, 145, 140, 135, 133, 149, 127, 140, 136, 131, 122, 137, 139, 127, 140, 140, 128, 139, 135, 137, 131, 144, 145, 132, 134, 148, 141, 139, 146, 135, 132, 128, 128, 136, 140, 138, 147, 146, 130, 131, 134, 140, 136, 130, 137, 131, 143, 131, 135, 152, 138, 148, 144, 129, 133, 138, 146, 150, 137, 137, 146, 143, 148, 131, 140, 140, 139, 144, 133, 133, 138, 138, 138, 144, 129, 146, 142, 146, 133, 129, 136, 133, 131, 131, 131, 144, 146, 132, 133, 133, 154, 136, 144, 139, 136, 128, 142, 152, 140, 144, 130, 137, 134, 141, 133, 149, 136, 132, 155, 137, 132, 140, 130, 140, 129, 142, 133, 134, 136, 138, 146, 143, 139, 151, 140, 135, 145, 126, 143, 131, 132, 141, 130, 135, 126, 131, 146, 146, 138, 136, 148, 139, 146, 141, 141, 142, 127, 138, 132, 146, 131, 143, 144, 137, 143, 134, 136, 140, 140, 130, 147, 130, 134, 129, 145, 138, 140, 147, 153, 141, 135, 132, 140, 143, 137, 138, 131, 142, 132, 137, 131, 136, 140, 148, 143, 142, 142, 149, 147, 132, 136, 141, 139, 140, 143, 132, 145, 135, 142, 138, 133, 127, 144, 132, 144, 134, 121, 144, 140, 149, 139, 135, 146, 142, 144, 146, 144, 133, 133, 127, 141, 138, 139, 132, 142, 141, 144, 139, 139, 147, 146, 145, 147, 130, 140, 142, 139, 149, 132, 141, 132, 143, 141, 135, 143, 136, 139, 139, 135, 139, 136, 151, 132, 138, 138, 128, 130, 138, 135, 132, 140, 135, 135, 130, 134, 136, 136, 140, 140, 138, 132, 129, 134, 144, 136, 129, 139, 132, 144, 139, 131, 144, 138, 147, 134, 136, 140, 137, 138, 135, 131, 134, 149, 135, 139, 137, 134, 139, 130, 138, 144, 129, 135, 136, 144, 144, 143, 134, 145, 142, 147, 143, 130, 134, 136, 137, 134, 138, 150, 130, 137, 131, 133, 136, 130, 133, 140, 134, 130, 141, 136, 144, 138, 132, 136, 141, 143, 135, 136, 133, 136, 152, 138, 128, 147, 146, 139, 144, 127, 144, 144, 140, 139, 142, 137, 135, 140, 133, 152, 143, 141, 137, 136, 136, 141, 133, 141, 133, 141, 142, 137, 134, 136, 134, 129, 122, 135, 141, 139, 140, 138, 138, 139, 148, 139, 122, 131, 138, 143, 142, 137, 135, 136, 142, 135, 134, 135, 140, 137, 133, 135, 132, 135, 138, 143, 135, 142, 133, 145, 139, 134, 135, 149, 144, 139, 131, 135, 138, 138, 141, 132, 128, 140, 147, 130, 140, 139, 133, 140, 128, 147, 136, 143, 134, 140, 137, 123, 142, 142, 138, 138, 151, 145, 138, 132, 145, 133, 145, 138, 129, 139, 137, 139, 142, 142, 142, 137, 128, 145, 132, 149, 146, 136, 130, 140, 150, 139, 137, 137, 139, 141, 147, 135, 144, 133, 134, 145, 141, 132, 135, 149, 147, 133, 143, 149, 141, 142, 138, 146, 141, 140, 144, 152, 138, 148, 143, 153, 154, 136, 140, 140, 144, 135, 135, 134, 143, 135, 138, 151, 141, 140, 151, 141, 132, 145, 136, 145, 147, 139, 143, 150, 135, 134, 140, 146, 141, 138, 128, 148, 134, 136, 131, 139, 140, 141, 139, 134, 136, 155, 138, 137, 141, 128, 134, 152, 133, 144, 126, 137, 137, 133, 138, 145, 138, 132, 132, 139, 145, 151, 140, 142, 140, 124, 139, 151, 132, 138, 142, 133, 141, 141, 142, 132, 143, 138, 144, 144, 144, 142, 149, 142, 137, 138, 140, 118, 135, 132, 135, 140, 151, 132, 150, 148, 144, 139, 139, 133, 144, 137, 137, 143, 138, 133, 141, 144, 144, 127, 143, 142, 143, 123, 154, 149, 135, 140, 144, 138, 137, 146, 153, 143, 133, 137, 140, 149, 131, 139, 127, 139, 139, 139, 141, 144, 137, 144, 146, 139, 145, 143, 129, 137, 137, 138, 140, 128, 134, 134, 132, 148, 140, 137, 132, 132, 143, 142, 134, 138, 145, 138, 135, 130, 132, 138, 144, 140, 130, 132, 135, 141, 140, 142, 144, 140, 131, 137, 128, 133, 142, 128, 141, 143, 133, 140, 142, 141, 129, 134, 142, 141, 142, 136, 134, 136, 134, 141, 154, 141, 140, 136, 138, 142, 135, 145, 136, 142, 135, 141, 139, 138, 148, 129, 141, 141, 143, 146, 135, 144, 137, 146, 138, 140, 145, 137, 136, 137, 138, 135, 132, 139, 139, 134, 137, 129, 143, 140, 138, 143, 135, 137, 136, 144, 150, 137, 140, 142, 130, 136, 137, 136, 142, 135, 137, 134, 143, 146, 134, 137, 135, 134, 146, 137, 139, 131, 138, 139, 132, 139, 140, 135, 136, 145, 140, 130, 140, 142, 132, 136, 147, 137, 144, 138, 140, 143, 134, 137, 140, 139, 132, 143, 136, 141, 144, 137, 142, 136, 143, 143, 130, 138, 131, 151, 133, 144, 137, 135, 142, 142, 135, 138, 136, 135, 138, 133, 133, 138, 136, 146, 125, 138, 135, 139, 136, 136, 141, 140, 137, 136, 143, 145, 135, 140, 145, 136, 140, 135, 147, 140, 132, 137, 146, 135, 134, 133, 140, 138, 148, 137, 152, 143, 130, 139, 132, 133, 145, 141, 144, 139, 144, 135, 138, 144, 141, 134, 129, 138, 140, 139, 144, 138, 141, 131, 131, 138, 137, 132, 135, 138, 138, 132, 145, 136, 130, 147, 136, 141, 139, 138, 137, 135, 142, 138, 135, 144, 141, 139, 147, 134, 134, 137, 136, 147, 139, 151, 143, 138, 134, 137, 133, 133, 143, 140, 135, 133, 143, 143, 139, 136, 130, 135, 140, 137, 139, 128, 140, 139, 141, 140, 143, 135, 130, 139, 130, 145, 139, 133, 133, 139, 139, 141, 149, 142, 136, 139, 140, 127, 138, 140, 138, 141, 131, 141, 138, 146, 141, 140, 138, 141, 137, 136, 133, 130, 132, 136, 148, 139, 142, 134, 139, 133, 135, 139, 140, 143, 143, 133, 134, 133, 135, 142, 139, 142, 137, 144, 136, 141, 149, 140, 135, 139, 141, 138, 131, 145, 138, 144, 138, 141, 133, 147, 139, 143, 139, 142, 134, 142, 145, 136, 129, 136, 140, 138, 142, 131, 139, 145, 138, 144, 138, 140, 135, 138, 140, 136, 139, 142, 142, 142, 152, 145, 123, 138, 142, 148, 142, 137, 136, 142, 146, 146, 133, 146, 133, 132, 143, 144, 144, 139, 149, 139, 141, 143, 143, 138, 140, 134, 134, 145, 138, 136, 135, 143, 147, 135, 144, 134, 150, 135, 149, 150, 149, 140, 142, 142, 140, 141, 131, 143, 132, 136, 136, 140, 132, 141, 137, 132, 142, 142, 141, 135, 139, 139, 136, 140, 142, 131, 136, 130, 126, 140, 145, 148, 140, 137, 134, 141, 139, 146, 141, 145, 132, 135, 141, 137, 142, 132, 144, 142, 140, 138, 125, 133, 133, 142, 134, 134, 139, 139, 143, 132, 142, 131, 140, 136, 141, 141, 138, 136, 144, 145, 138, 130, 141, 132, 142, 136, 135, 144, 138, 139, 142, 140, 144, 131, 138, 151, 131, 139, 133, 137, 131, 137, 138, 139, 139, 136, 139, 135, 138, 139, 147, 138, 135, 130, 141, 144, 141, 134, 134, 140, 139, 142, 134, 140, 145, 130, 139, 138, 134, 130, 143, 131, 138, 138, 133, 144, 137, 131, 137, 156, 139, 149, 142, 138, 142, 137, 136, 136, 141, 140, 136, 141, 136, 139, 135, 144, 129, 138, 139, 142, 142, 137, 133, 134, 141, 132, 131, 140, 140, 139, 134, 136, 130, 142, 136, 128, 145, 132, 126, 142, 139, 140, 139, 138, 129, 141, 142, 137, 134, 137, 146, 139, 144, 130, 136, 145, 139, 142, 131, 140, 135, 142, 136, 145, 135, 149, 128, 142, 134, 141, 150, 145, 135, 145, 138, 140, 138, 134, 141, 138, 136, 143, 139, 137, 136, 135, 134, 130, 137, 139, 141, 142, 140, 140, 145, 138, 138, 141, 135, 132, 126, 147, 134, 142, 144, 127, 146, 137, 139, 141, 134, 139, 130, 137, 138, 143, 141, 132, 143, 139, 141, 139, 135, 144, 147, 140, 137, 139, 144, 137, 140, 132, 143, 143, 146, 134, 140, 141, 141, 141, 134, 140, 138, 136, 146, 140, 136, 148, 141, 140, 143, 134, 134, 130, 138, 143, 131, 137, 133, 145, 140, 133, 133, 135, 132, 135, 141, 140, 143, 140, 137, 145, 139, 136, 143, 136, 140, 136, 139, 133, 150, 129, 145, 136, 144, 141, 145, 138, 139, 142, 144, 144, 138, 145, 143, 139, 140, 130, 132, 136, 136, 143, 130, 138, 146, 148, 133, 132, 133, 134, 139, 153, 139, 134, 135, 132, 137, 135, 140, 134, 138, 138, 129, 145, 135, 147, 157, 131, 137, 146, 140, 141, 138, 142, 148, 128, 139, 135, 151, 135, 133, 134, 143, 140, 135, 139, 152, 145, 135, 146, 138, 141, 142, 145, 140, 136, 146, 135, 134, 137, 137, 136, 144, 134, 143, 135, 138, 136, 136, 134, 137, 140, 141, 152, 139, 147, 138, 135, 143, 133, 139, 140, 135, 138, 143, 138, 150, 142, 133, 138, 136, 142, 147, 136, 147, 135, 131, 141, 140, 138, 141, 144, 133, 142, 146, 138, 141, 138, 135, 137, 134, 134, 132, 146, 138, 131, 141, 136, 131, 131, 147, 143, 144, 135, 133, 139, 140, 139, 137, 136, 143, 131, 131, 142, 141, 136, 136, 136, 142, 138, 143, 139, 141, 140, 129, 143, 127, 134, 132, 142, 141, 132, 136, 141, 145, 140, 133, 137, 140, 137, 138, 132, 133, 138, 135, 137, 140, 129, 137, 137, 148, 142, 132, 154, 141, 128, 141, 144, 138, 133, 141, 140, 136, 144, 137, 134, 137, 134, 133, 145, 139, 141, 143, 128, 139, 137, 134, 152, 147, 135, 150, 145, 136, 135, 140, 132, 141, 138, 136, 140, 135, 141, 133, 139, 142, 142, 145, 148, 135, 135, 136, 141, 139, 145, 138, 140, 134, 131, 136, 137, 141, 139, 146, 144, 142, 145, 139, 142, 139, 130, 133, 135, 136, 142, 137, 143, 132, 132, 131, 142, 135, 144, 137, 138, 143, 138, 134, 143, 149, 143, 151, 144, 140, 131, 135, 145, 134, 134, 137, 143, 139, 131, 136, 137, 137, 134, 147, 145, 141, 145, 146, 135, 138, 149, 137, 134, 138, 135, 136, 137, 140, 151, 137, 144, 135, 140, 143, 136, 144, 133, 136, 141, 137, 150, 135, 137, 133, 146, 139, 140, 145, 137, 144, 136, 134, 134, 141, 142, 128, 137, 140, 138, 140, 144, 140, 145, 142, 135, 150, 134, 137, 142, 141, 136, 150, 147, 141, 139, 136, 140, 139, 134, 138, 142, 132, 147, 132, 139, 143, 145, 133, 130, 138, 133, 136, 128, 142, 138, 137, 137, 139, 140, 132, 138, 143, 139, 147, 138, 141, 131, 125, 133, 143, 145, 139, 146, 134, 136, 139, 133, 138, 134, 137, 137, 149, 138, 138, 142, 131, 132, 139, 141, 132, 134, 132, 140, 140, 140, 130, 144, 139, 137, 140, 132, 132, 144, 129, 132, 139, 136, 129, 131, 136, 144, 121, 137, 134, 136, 126, 131, 136, 137, 145, 142, 139, 141, 133, 147, 138, 138, 131, 137, 146, 147, 135, 136, 136, 135, 141, 128, 139, 126, 147, 129, 143, 150, 144, 129, 144, 144, 133, 136, 139, 131, 134, 136, 138, 133, 129, 135, 134, 134, 144, 144, 129, 137, 127, 140, 137, 153, 140, 142, 140, 138, 142, 140, 134, 146, 136, 139, 129, 141, 137, 136, 146, 138, 149, 153, 136, 138, 144, 137, 136, 135, 144, 139, 137, 135, 147, 134, 140, 139, 138, 140, 139, 143, 144, 137, 138, 137, 139, 138, 144, 143, 145, 138, 132, 128, 142, 144, 133, 140, 139, 134, 139, 136, 140, 132, 144, 140, 140, 147, 141, 127, 144, 150, 133, 138, 136, 139, 139, 138, 127, 142, 137, 135, 148, 133, 132, 130, 141, 141, 137, 134, 138, 132, 128, 140, 149, 153, 152, 137, 145, 136, 137, 128, 146, 141, 133, 144, 134, 138, 140, 140, 135, 139, 138, 133, 131, 132, 141, 135, 130, 140, 140, 135, 140, 155, 142, 142, 143, 141, 147, 135, 141, 143, 139, 140, 141, 143, 144, 138, 142, 138, 143, 139, 135, 135, 142, 136, 138, 146, 129, 135, 149, 144, 134, 133, 141, 138, 137, 133, 139, 134, 130, 140, 147, 138, 137, 143, 137, 140, 137, 144, 131, 138, 138, 136, 151, 139, 148, 130, 140, 138, 143, 140, 133, 141, 137, 134, 140, 135, 135, 130, 139, 136, 126, 143, 142, 134, 147, 147, 139, 134, 146, 134, 124, 132, 141, 135, 132, 141, 137, 136, 146, 137, 145, 139, 140, 139, 136, 138, 137, 135, 143, 141, 128, 145, 140, 142, 132, 142, 142, 141, 131, 131, 134, 137, 132, 134, 133, 135, 150, 125, 144, 140, 134, 140, 144, 142, 131, 141, 135, 139, 137, 136, 143, 141, 138, 143, 143, 143, 139, 138, 144, 140, 134, 141, 141, 140, 142, 137, 138, 151, 141, 133, 133, 140, 141, 160, 133, 151, 141, 138, 142, 139, 126, 145, 136, 136, 138, 133, 131, 143, 145, 142, 138, 136, 128, 133, 137, 131, 141, 134, 135, 143, 136, 130, 141, 142, 140, 141, 164, 137, 126, 144, 140, 140, 141, 151, 129, 137, 147, 128, 149, 140, 149, 131, 144, 135, 138, 141, 133, 137, 140, 144, 135, 133, 144, 143, 143, 128, 134, 148, 145, 134, 133, 148, 142, 140, 140, 134, 147, 134, 139, 135, 136, 135, 140, 137, 141, 129, 145, 134, 140, 135, 143, 137, 141, 147, 143, 148, 135, 145, 133, 146, 132, 147, 149, 149, 135, 154, 139, 136, 149, 141, 135, 138, 141, 142, 118, 144, 138, 130, 134, 139, 129, 139, 143, 128, 136, 155, 142, 134, 141, 146, 145, 145, 130, 143, 135, 135, 144, 128, 131, 140, 129, 129, 137, 139, 127, 140, 135, 147, 138, 146, 134, 140, 150, 140, 148, 141, 130, 134, 138, 137, 142, 151, 138, 141, 142, 141, 144, 143, 129, 136, 143, 134, 139, 144, 142, 143, 137, 139, 139, 134, 159, 126, 146, 137, 154, 175, 141, 139, 144, 138, 134, 133, 127, 141, 131, 141, 136, 139, 146, 140, 146, 134, 132, 145, 140, 141, 133, 145, 139, 146, 141, 141, 139, 137, 129, 132, 138, 132, 139, 134, 135, 113, 140, 139, 138, 135, 131, 149, 137, 139, 140, 153, 138, 138, 136, 142, 138, 139, 150, 140, 138, 138, 134, 142, 136, 133, 144, 137, 135, 139, 136, 133, 129, 137, 151, 133, 141, 133, 143, 132, 146, 145, 145, 139, 133, 139, 155, 146, 138, 142, 134, 132, 130, 145, 140, 138, 135, 147, 139, 138, 142, 138, 143, 131, 148, 134, 135, 136, 141, 144, 152, 135, 144, 133, 127, 139, 137, 152, 134, 136, 134, 136, 148, 143, 145, 136, 140, 159, 142, 142, 141, 128, 143, 142, 133, 146, 141, 131, 136, 138, 137, 141, 139, 141, 143, 138, 145, 131, 130, 135, 135, 137, 143, 142, 134, 141, 137, 143, 127, 138, 134, 143, 130, 144, 133, 137, 136, 142, 140, 139, 137, 138, 132, 137, 138, 156, 136, 140, 129, 127, 137, 137, 130, 127, 147, 131, 143, 134, 153, 144, 144, 139, 133, 143, 145, 115, 143, 140, 144, 141, 149, 137, 138, 138, 148, 136, 143, 135, 136, 137, 143, 139, 142, 136, 136, 140, 136, 125, 130, 131, 137, 149, 150, 136, 142, 138, 134, 145, 143, 142, 133, 135, 143, 137, 143, 138, 139, 150, 137, 117, 135, 137, 136, 141, 142, 138, 158, 128, 136, 116, 138, 123, 136, 141, 139, 139, 142, 133, 125, 143, 138, 142, 139, 142, 140, 138, 138, 138, 136, 138, 137, 153, 133, 137, 147, 140, 144, 136, 137, 122, 141, 161, 139, 136, 136, 134, 134, 142, 149, 140, 137, 134, 150, 144, 137, 135, 147, 141, 139, 151, 156, 137, 144, 135, 131, 133, 140, 135, 135, 139, 139, 140, 148, 142, 136, 140, 144, 131, 132, 140, 139, 135, 141, 120, 138, 124, 142, 140, 139, 139, 138, 138, 140, 135, 138, 138, 139, 129, 140, 140, 141, 140, 139, 134, 157, 137, 137, 132, 129, 139, 133, 135, 139, 138, 138, 143, 139, 156, 143, 138, 140, 144, 131, 160, 137, 169, 147, 138, 145, 136, 135, 137, 134, 134, 151, 146, 147, 138, 139, 135, 144, 141, 141, 137, 140, 140, 140, 140, 104, 132, 139, 143, 138, 143, 141, 137, 135, 138, 132, 142, 129, 136, 139, 148, 145, 141, 131, 132, 136, 127, 143, 131, 132, 143, 141, 138, 134, 143, 136, 140, 128, 139, 140, 136, 132, 139, 132, 138, 140, 134, 140, 147, 149, 144, 133, 140, 137, 130, 140, 132, 139, 131, 140, 148, 140, 133, 143, 144, 136, 148, 140, 136, 141, 137, 132, 144, 140, 154, 146, 142, 140, 134, 137, 145, 134, 137, 131, 129, 145, 133, 137, 135, 141, 141, 134, 134, 140, 137, 136, 146, 137, 133, 144, 142, 140, 135, 128, 128, 140, 137, 138, 139, 139, 127, 142, 143, 144, 140, 143, 143, 131, 137, 140, 140, 139, 144, 121, 130, 129, 145, 136, 137, 134, 137, 137, 139, 142, 135, 148, 144, 128, 138, 140, 144, 143, 142, 138, 129, 139, 132, 138, 142, 139, 147, 145, 136, 144, 134, 141, 138, 145, 144, 139, 140, 149, 139, 142, 143, 152, 143, 116, 140, 139, 138, 137, 138, 131, 151, 141, 135, 141, 141, 140, 139, 140, 138, 136, 137, 130, 131, 140, 147, 130, 147, 138, 139, 141, 141, 139, 137, 139, 138, 146, 148, 143, 128, 146, 139, 137, 132, 142, 128, 145, 132, 131, 145, 145, 135, 142, 142, 140, 132, 130, 142, 128, 144, 132, 142, 145, 135, 141, 144, 143, 137, 134, 135, 139, 129, 138, 137, 149, 137, 132, 141, 132, 136, 139, 137, 142, 145, 146, 133, 152, 142, 144, 147, 132, 142, 145, 137, 135, 140, 137, 142, 142, 140, 137, 138, 141, 133, 142, 139, 144, 148, 136, 135, 137, 134, 145, 146, 140, 132, 134, 136, 147, 148, 130, 132, 129, 130, 138, 134, 150, 134, 139, 137, 142, 132, 148, 141, 137, 132, 133, 119, 133, 141, 144, 128, 136, 146, 141, 132, 151, 134, 147, 149, 147, 139, 138, 145, 143, 142, 145, 137, 132, 146, 140, 136, 139, 133, 135, 137, 150, 136, 136, 130, 139, 143, 144, 147, 142, 140, 138, 137, 140, 137, 149, 135, 148, 130, 138, 139, 140, 153, 147, 125, 143, 135, 145, 142, 151, 144, 136, 149, 144, 141, 145, 142, 144, 140, 134, 132, 143, 137, 144, 147, 148, 146, 145, 136, 127, 144, 133, 138, 133, 136, 136, 139, 137, 136, 144, 139, 133, 129, 135, 136, 148, 136, 137, 144, 139, 142, 137, 128, 144, 138, 137, 132, 145, 137, 138, 138, 149, 137, 142, 133, 134, 140, 131, 126, 149, 144, 135, 157, 146, 134, 136, 145, 141, 142, 144, 126, 149, 147, 138, 141, 130, 143, 136, 134, 145, 146, 133, 133, 144, 134, 143, 135, 140, 137, 132, 135, 150, 138, 133, 141, 133, 140, 139, 140, 136, 138, 133, 143, 132, 136, 143, 133, 149, 143, 137, 140, 136, 136, 129, 137, 138, 138, 140, 131, 134, 132, 132, 136, 143, 139, 131, 124, 147, 137, 144, 133, 133, 130, 145, 134, 136, 139, 142, 146, 139, 136, 138, 140, 140, 135, 132, 133, 139, 131, 151, 142, 146, 140, 132, 137, 141, 138, 135, 141, 145, 138, 132, 137, 137, 139, 144, 141, 147, 136, 145, 139, 141, 139, 135, 138, 130, 143, 144, 144, 137, 131, 135, 143, 143, 131, 137, 138, 127, 141, 147, 136, 143, 156, 136, 138, 142, 147, 128, 138, 141, 136, 137, 140, 134, 151, 141, 135, 137, 142, 138, 148, 137, 136, 142, 149, 138, 141, 139, 139, 132, 138, 153, 133, 146, 132, 140, 142, 139, 146, 142, 132, 139, 140, 155, 140, 133, 136, 135, 134, 139, 140, 147, 134, 137, 140, 144, 132, 140, 139, 133, 131, 139, 149, 137, 141, 146, 145, 135, 138, 133, 141, 146, 147, 142, 141, 144, 130, 142, 136, 133, 139, 137, 132, 138, 137, 136, 141, 143, 128, 144, 142, 140, 139, 132, 136, 137, 139, 148, 145, 141, 140, 135, 136, 135, 135, 146, 141, 138, 137, 142, 141, 136, 140, 145, 135, 139, 143, 141, 138, 142, 141, 139, 141, 138, 137, 142, 137, 141, 139, 141, 139, 146, 141, 136, 139, 138, 142, 142, 142, 140, 131, 139, 138, 141, 137, 138, 145, 137, 135, 140, 136, 148, 139, 139, 136, 133, 149, 137, 137, 144, 139, 141, 136, 138, 127, 142, 139, 132, 140, 142, 139, 146, 142, 135, 142, 143, 142, 138, 130, 144, 135, 135, 138, 139, 140, 140, 140, 141, 136, 134, 139, 140, 143, 141, 137, 137, 134, 140, 139, 138, 143, 133, 153, 140, 138, 134, 137, 136, 134, 136, 138, 142, 142, 132, 140, 141, 137, 132, 143, 136, 131, 143, 142, 143, 136, 145, 128, 130, 141, 131, 141, 142, 138, 139, 137, 140, 141, 137, 137, 137, 140, 135, 132, 139, 150, 140, 141, 136, 139, 134, 135, 142, 132, 134, 141, 141, 145, 148, 141, 146, 140, 136, 139, 138, 139, 129, 139, 143, 137, 143, 140, 131, 127, 129, 135, 137, 137, 136, 134, 138, 142, 142, 136, 138, 137, 141, 128, 146, 140, 132, 134, 143, 143, 140, 132, 135, 134, 140, 140, 138, 132, 138, 137, 126, 137, 135, 145, 138, 133, 147, 138, 137, 145, 143, 141, 144, 139, 140, 138, 132, 142, 143, 148, 151, 133, 137, 143, 142, 138, 144, 142, 139, 139, 134, 132, 133, 136, 138, 136, 140, 145, 140, 133, 137, 142, 141, 137, 140, 132, 143, 145, 137, 138, 142, 135, 139, 137, 141, 138, 141, 143, 133, 143, 131, 140, 143, 133, 141, 130, 138, 139, 145, 141, 140, 137, 140, 138, 143, 137, 136, 123, 134, 136, 140, 141, 134, 132, 138, 139, 140, 139, 135, 137, 147, 141, 135, 136, 129, 148, 131, 132, 142, 137, 138, 143, 141, 146, 136, 145, 139, 131, 137, 140, 141, 134, 139, 140, 127, 138, 147, 136, 139, 139, 147, 140, 138, 135, 138, 139, 144, 139, 138, 137, 144, 141, 140, 137, 139, 143, 141, 135, 133, 138, 142, 142, 138, 146, 151, 147, 140, 138, 142, 141, 139, 145, 140, 133, 139, 133, 139, 140, 144, 144, 139, 139, 139, 134, 143, 137, 145, 139, 142, 135, 138, 148, 142, 136, 139, 137, 139, 133, 138, 135, 145, 142, 129, 142, 136, 138, 137, 140, 144, 130, 137, 137, 139, 134, 131, 142, 142, 137, 141, 134, 142, 136, 131, 142, 141, 136, 140, 140, 140, 147, 141, 131, 144, 138, 150, 147, 141, 140, 141, 137, 140, 143, 150, 141, 142, 138, 133, 132, 138, 135, 140, 137, 154, 141, 140, 140, 140, 139, 139, 143, 135, 131, 140, 132, 138, 138, 142, 136, 131, 138, 131, 140, 146, 138, 137, 132, 131, 143, 145, 146, 142, 137, 141, 131, 127, 142, 144, 142, 125, 141, 134, 137, 136, 137, 148, 133, 137, 122, 140, 140, 147, 137, 139, 142, 137, 147, 137, 140, 141, 142, 142, 136, 143, 152, 142, 132, 136, 135, 142, 136, 129, 140, 133, 137, 138, 138, 141, 138, 144, 144, 148, 132, 143, 138, 139, 139, 136, 140, 142, 141, 133, 143, 141, 147, 143, 137, 143, 141, 138, 143, 133, 133, 136, 135, 134, 135, 139, 134, 142, 137, 138, 132, 135, 134, 136, 133, 147, 138, 136, 134, 138, 135, 139, 139, 143, 138, 133, 141, 143, 142, 146, 135, 131, 138, 142, 140, 137, 141, 139, 136, 140, 140, 138, 133, 135, 134, 137, 136, 131, 138, 142, 142, 149, 142, 138, 133, 131, 138, 132, 135, 140, 134, 146, 149, 134, 142, 147, 133, 144, 140, 133, 136, 132, 138, 148, 134, 137, 138, 140, 132, 134, 135, 138, 140, 144, 133, 140, 137, 142, 128, 137, 136, 149, 144, 138, 131, 146, 148, 136, 134, 139, 135, 140, 132, 144, 136, 135, 139, 151, 140, 137, 140, 140, 138, 140, 135, 146, 132, 135, 135, 136, 135, 139, 135, 137, 145, 137, 134, 146, 139, 139, 135, 140, 140, 131, 135, 133, 144, 141, 139, 136, 145, 140, 135, 140, 124, 138, 141, 144, 143, 133, 141, 142, 139, 139, 139, 146, 148, 139, 143, 135, 139, 141, 136, 129, 138, 147, 136, 132, 135, 141, 140, 140, 141, 134, 140, 140, 141, 138, 142, 132, 139, 131, 142, 146, 138, 132, 137, 137, 147, 136, 137, 145, 136, 141, 142, 132, 131, 139, 135, 142, 138, 139, 146, 142, 127, 141, 138, 147, 144, 133, 139, 140, 144, 136, 138, 141, 136, 140, 135, 147, 137, 148, 136, 140, 145, 140, 139, 141, 139, 137, 141, 141, 142, 134, 135, 133, 143, 145, 141, 138, 143, 143, 138, 138, 143, 143, 137, 138, 132, 138, 139, 140, 144, 133, 142, 136, 137, 138, 136, 127, 137, 134, 135, 149, 140, 131, 136, 139, 140, 142, 135, 140, 146, 133, 142, 139, 147, 135, 137, 136, 136, 139, 131, 141, 138, 142, 121, 136, 140, 135, 129, 135, 145, 139, 137, 140, 139, 149, 136, 135, 136, 135, 138, 138, 141, 135, 138, 154, 136, 140, 140, 145, 139, 133, 146, 134, 136, 129, 138, 133, 136, 142, 135, 138, 151, 137, 139, 142, 140, 134, 140, 133, 145, 136, 137, 152, 146, 142, 141, 128, 142, 143, 138, 137, 145, 134, 129, 132, 143, 134, 131, 138, 143, 138, 139, 137, 135, 142, 130, 129, 143, 141, 146, 134, 141, 131, 136, 139, 136, 132, 135, 150, 139, 132, 139, 144, 147, 139, 140, 140, 143, 139, 138, 145, 130, 141, 145, 129, 141, 138, 134, 131, 146, 142, 141, 136, 144, 148, 147, 138, 139, 153, 140, 134, 143, 137, 127, 143, 144, 127, 150, 147, 137, 138, 147, 144, 150, 136, 133, 155, 145, 147, 138, 137, 140, 141, 146, 148, 134, 136, 153, 141, 146, 146, 147, 133, 135, 145, 147, 136, 137, 128, 142, 138, 151, 141, 136, 154, 138, 135, 126, 135, 144, 146, 145, 138, 132, 138, 142, 135, 135, 145, 144, 132, 143, 138, 131, 136, 140, 133, 138, 152, 142, 140, 138, 148, 124, 139, 138, 144, 139, 135, 154, 137, 144, 149, 142, 140, 140, 132, 148, 141, 139, 139, 137, 140, 149, 151, 140, 134, 142, 140, 142, 134, 133, 141, 131, 137, 152, 130, 147, 127, 144, 128, 131, 132, 133, 139, 134, 140, 139, 134, 132, 130, 140, 139, 150, 143, 144, 135, 138, 141, 138, 135, 144, 139, 145, 139, 136, 141, 137, 136, 138, 152, 147, 139, 146, 143, 143, 152, 140, 157, 123, 137, 126, 141, 136, 133, 133, 131, 146, 138, 149, 144, 140, 128, 138, 139, 129, 140, 133, 145, 145, 140, 138, 137, 138, 149, 133, 140, 142, 138, 139, 134, 129, 137, 140, 141, 146, 144, 141, 126, 144, 147, 141, 147, 130, 138, 139, 144, 132, 133, 141, 142, 147, 139, 136, 139, 144, 133, 144, 151, 132, 148, 143, 146, 126, 142, 137, 131, 146, 146, 132, 129, 150, 142, 146, 136, 144, 139, 135, 157, 148, 145, 142, 128, 140, 141, 140, 152, 131, 128, 141, 129, 147, 132, 141, 138, 149, 140, 143, 137, 150, 138, 139, 127, 135, 141, 137, 138, 140, 153, 148, 136, 151, 137, 127, 138, 139, 139, 131, 135, 139, 134, 139, 148, 137, 140, 148, 135, 154, 136, 137, 148, 132, 141, 136, 126, 138, 127, 131, 134, 138, 147, 136, 134, 133, 135, 137, 137, 146, 151, 143, 141, 126, 127, 149, 135, 152, 136, 133, 138, 136, 136, 132, 146, 135, 157, 144, 141, 138, 140, 137, 143, 136, 139, 141, 141, 130, 137, 142, 147, 129, 136, 146, 145, 138, 134, 131, 147, 139, 134, 137, 140, 124, 127, 137, 142, 138, 148, 150, 149, 133, 134, 140, 148, 132, 136, 138, 137, 148, 140, 126, 132, 144, 146, 143, 139, 147, 141, 145, 145, 133, 139, 136, 144, 150, 142, 136, 145, 131, 143, 131, 131, 149, 146, 139, 135, 144, 144, 145, 136, 137, 140, 133, 133, 132, 140, 139, 140, 138, 146, 142, 142, 137, 139, 130, 132, 150, 142, 128, 141, 129, 133, 135, 137, 140, 130, 142, 139, 128, 140, 142, 140, 147, 129, 139, 145, 138, 140, 141, 139, 136, 139, 135, 136, 141, 147, 154, 128, 132, 139, 121, 138, 140, 121, 136, 136, 139, 142, 149, 139, 136, 148, 136, 138, 149, 144, 146, 134, 142, 136, 143, 145, 141, 137, 145, 124, 129, 134, 131, 130, 144, 147, 144, 136, 153, 137, 151, 130, 133, 143, 137, 137, 144, 147, 140, 134, 129, 141, 143, 145, 144, 132, 139, 133, 132, 136, 140, 142, 139, 144, 133, 141, 133, 136, 146, 138, 147, 136, 149, 134, 144, 133, 143, 141, 140, 139, 141, 135, 135, 136, 146, 136, 129, 141, 139, 137, 132, 145, 137, 138, 136, 138, 139, 156, 152, 136, 142, 145, 138, 149, 137, 137, 138, 149, 132, 135, 145, 139, 135, 135, 143, 130, 131, 128, 132, 138, 131, 143, 137, 140, 136, 136, 149, 129, 139, 137, 140, 131, 127, 135, 140, 141, 148, 136, 136, 147, 136, 142, 147, 133, 136, 132, 137, 137, 133, 153, 142, 138, 142, 144, 144, 148, 137, 132, 142, 142, 137, 150, 130, 141, 135, 138, 141, 138, 144, 132, 145, 135, 136, 136, 128, 129, 127, 136, 146, 145, 136, 139, 134, 132, 142, 136, 140, 140, 137, 132, 143, 134, 154, 143, 146, 137, 134, 130, 134, 143, 141, 143, 135, 137, 144, 152, 136, 132, 136, 136, 134, 128, 132, 134, 144, 139, 136, 151, 147, 137, 130, 138, 141, 137, 129, 146, 140, 131, 130, 138, 135, 139, 137, 136, 136, 141, 135, 132, 134, 139, 138, 143, 136, 147, 129, 142, 139, 141, 131, 138, 133, 137, 120, 143, 127, 133, 146, 147, 141, 134, 133, 145, 148, 127, 132, 143, 133, 131, 139, 141, 145, 136, 135, 141, 142, 140, 143, 155, 136, 139, 147, 136, 128, 141, 129, 140, 137, 147, 149, 141, 134, 139, 141, 147, 132, 130, 134, 134, 146, 150, 142, 140, 144, 143, 137, 137, 136, 147, 144, 140, 141, 145, 134, 140, 137, 138, 145, 138, 135, 134, 128, 138, 125, 135, 131, 148, 145, 136, 139, 131, 136, 138, 138, 145, 143, 135, 123, 143, 135, 137, 151, 128, 139, 141, 135, 141, 148, 142, 141, 133, 140, 135, 134, 134, 134, 140, 142, 138, 144, 140, 142, 127, 140, 143, 139, 140, 134, 126, 133, 136, 148, 135, 133, 131, 148, 148, 140, 139, 144, 131, 138, 141, 133, 142, 139, 142, 144, 145, 134, 134, 135, 135, 140, 133, 141, 131, 139, 142, 147, 143, 133, 148, 142, 138, 135, 144, 134, 139, 146, 142, 147, 135, 130, 146, 145, 129, 132, 142, 136, 136, 144, 142, 143, 147, 134, 140, 133, 132, 132, 140, 147, 144, 138, 139, 130, 145, 138, 152, 140, 133, 143, 145, 129, 141, 138, 141, 129, 137, 139, 137, 138, 137, 140, 135, 150, 138, 134, 141, 146, 121, 131, 144, 146, 143, 130, 151, 142, 145, 121, 140, 140, 143, 132, 137, 142, 145, 132, 134, 140, 134, 140, 137, 125, 132, 141, 143, 141, 143, 144, 141, 142, 133, 136, 135, 142, 141, 133, 145, 136, 151, 134, 144, 150, 148, 135, 138, 138, 148, 134, 136, 136, 140, 141, 136, 127, 140, 138, 129, 140, 139, 144, 146, 147, 140, 142, 137, 134, 144, 134, 144, 137, 130, 144, 133, 132, 141, 147, 143, 135, 142, 139, 146, 138, 141, 150, 149, 134, 127, 129, 127, 134, 144, 136, 148, 140, 139, 135, 136, 137, 139, 149, 137, 136, 141, 141, 131, 147, 137, 128, 134, 133, 139, 146, 147, 137, 133, 138, 136, 142, 138, 135, 143, 139, 137, 136, 131, 143, 144, 135, 138, 135, 138, 139, 146, 138, 141, 139, 128, 144, 136, 138, 135, 126, 134, 137, 131, 135, 134, 145, 153, 134, 141, 142, 136, 136, 143, 151, 137, 136, 128, 130, 143, 145, 142, 147, 133, 138, 138, 140, 138, 132, 138, 141, 140, 141, 164, 145, 138, 142, 137, 140, 134, 142, 134, 142, 138, 142, 144, 137, 135, 127, 142, 135, 142, 144, 158, 142, 130, 145, 134, 143, 135, 136, 143, 138, 135, 140, 141, 139, 137, 144, 137, 146, 138, 132, 137, 137, 139, 140, 134, 143, 145, 140, 128, 136, 140, 141, 145, 132, 135, 140, 130, 138, 142, 139, 142, 145, 136, 139, 146, 140, 142, 145, 135, 145, 142, 142, 134, 149, 141, 143, 142, 143, 145, 139, 143, 136, 141, 137, 135, 132, 142, 128, 135, 141, 137, 141, 134, 138, 142, 140, 133, 135, 134, 140, 136, 135, 134, 133, 140, 137, 142, 138, 132, 140, 136, 136, 139, 140, 136, 128, 138, 136, 141, 137, 118, 135, 135, 135, 133, 139, 143, 142, 133, 132, 134, 132, 138, 137, 142, 138, 133, 142, 130, 143, 142, 137, 142, 128, 132, 140, 138, 137, 142, 134, 144, 140, 133, 139, 144, 140, 140, 132, 145, 136, 139, 150, 142, 138, 130, 146, 136, 143, 146, 135, 143, 142, 146, 133, 142, 147, 140, 154, 138, 133, 138, 147, 128, 135, 143, 132, 134, 142, 142, 135, 137, 146, 138, 143, 139, 141, 154, 135, 144, 136, 137, 137, 141, 136, 145, 131, 138, 141, 134, 135, 138, 137, 145, 148, 140, 139, 140, 143, 145, 136, 140, 148, 136, 137, 146, 140, 141, 135, 143, 143, 138, 137, 137, 143, 139, 129, 132, 141, 155, 138, 148, 153, 136, 141, 145, 141, 130, 144, 137, 140, 140, 135, 138, 139, 137, 138, 140, 124, 147, 138, 137, 143, 138, 138, 140, 141, 145, 135, 144, 131, 143, 139, 143, 140, 140, 145, 146, 137, 147, 141, 135, 139, 142, 147, 138, 148, 126, 134, 138, 135, 134, 134, 142, 137, 135, 132, 136, 141, 137, 144, 141, 139, 136, 140, 146, 139, 140, 133, 139, 139, 144, 138, 142, 146, 142, 129, 139, 141, 146, 140, 143, 138, 144, 150, 141, 142, 141, 137, 133, 138, 141, 140, 144, 135, 140, 137, 140, 143, 142, 135, 137, 144, 146, 133, 138, 123, 136, 138, 155, 133, 143, 141, 152, 133, 138, 147, 146, 143, 142, 147, 138, 146, 140, 136, 145, 139, 137, 138, 137, 146, 134, 135, 139, 145, 142, 137, 139, 138, 138, 140, 149, 143, 144, 143, 133, 140, 145, 138, 134, 140, 140, 137, 134, 150, 139, 143, 143, 135, 145, 135, 133, 143, 131, 138, 138, 141, 138, 138, 135, 139, 136, 137, 132, 144, 141, 135, 139, 137, 139, 138, 139, 134, 156, 143, 143, 137, 150, 139, 136, 136, 134, 140, 146, 140, 141, 133, 130, 141, 132, 138, 141, 142, 141, 138, 138, 140, 132, 135, 139, 138, 132, 139, 136, 139, 137, 144, 143, 133, 151, 145, 136, 136, 135, 140, 139, 135, 137, 144, 134, 138, 137, 142, 141, 132, 136, 140, 136, 134, 144, 143, 142, 139, 140, 138, 139, 125, 136, 140, 137, 135, 135, 140, 140, 133, 142, 134, 146, 135, 133, 136, 134, 141, 136, 134, 137, 135, 140, 135, 138, 140, 137, 133, 131, 139, 139, 146, 137, 143, 140, 133, 136, 137, 144, 136, 141, 148, 142, 141, 144, 141, 138, 140, 135, 144, 136, 146, 142, 136, 130, 134, 134, 130, 141, 149, 135, 136, 131, 137, 143, 140, 142, 142, 144, 137, 141, 137, 141, 145, 136, 138, 143, 145, 140, 142, 137, 140, 136, 149, 141, 148, 139, 134, 140, 137, 134, 141, 141, 137, 140, 137, 145, 150, 140, 141, 142, 138, 143, 135, 142, 141, 140, 141, 140, 137, 142, 141, 141, 140, 140, 142, 136, 141, 139, 143, 141, 150, 138, 135, 134, 146, 140, 139, 135, 137, 145, 137, 137, 139, 139, 136, 141, 141, 140, 139, 137, 135, 142, 138, 148, 138, 132, 138, 136, 138, 136, 141, 134, 147, 137, 141, 138, 136, 135, 142, 138, 135, 139, 139, 131, 137, 139, 139, 141, 132, 139, 133, 144, 144, 136, 146, 143, 140, 133, 138, 134, 143, 143, 134, 146, 138, 140, 137, 136, 131, 144, 142, 139, 133, 137, 143, 149, 137, 139, 129, 147, 141, 143, 141, 146, 137, 137, 135, 139, 136, 132, 139, 135, 141, 145, 144, 142, 142, 136, 143, 142, 139, 138, 137, 150, 136, 135, 138, 138, 141, 135, 132, 136, 133, 136, 142, 142, 138, 140, 137, 140, 139, 140, 138, 142, 137, 141, 139, 145, 134, 139, 142, 136, 131, 135, 133, 142, 143, 139, 141, 137, 139, 141, 141, 137, 136, 137, 142, 138, 138, 146, 131, 130, 140, 138, 141, 142, 132, 141, 140, 140, 142, 142, 145, 138, 134, 141, 129, 134, 135, 145, 140, 130, 144, 135, 138, 140, 137, 138, 144, 140, 137, 142, 142, 139, 141, 134, 139, 138, 138, 142, 143, 142, 146, 139, 134, 138, 138, 138, 140, 141, 142, 143, 141, 139, 140, 133, 136, 142, 137, 138, 139, 141, 141, 138, 144, 140, 133, 145, 138, 140, 134, 135, 141, 140, 128, 140, 138, 140, 137, 140, 138, 139, 142, 142, 139, 141, 140, 137, 141, 138, 135, 138, 138, 131, 144, 136, 142, 137, 140, 143, 144, 143, 131, 148, 141, 135, 143, 136, 134, 135, 141, 139, 141, 140, 134, 139, 137, 157, 134, 144, 132, 137, 143, 135, 140, 138, 134, 135, 151, 140, 136, 141, 137, 138, 137, 136, 135, 142, 138, 139, 138, 133, 141, 134, 134, 141, 135, 134, 133, 137, 145, 134, 143, 140, 137, 145, 136, 146, 141, 140, 135, 137, 132, 141, 141, 141, 139, 137, 132, 140, 140, 137, 142, 137, 135, 135, 139, 139, 131, 137, 134, 139, 148, 134, 142, 133, 128, 146, 136, 136, 136, 138, 138, 138, 135, 129, 136, 140, 133, 138, 137, 144, 138, 139, 143, 134, 129, 139, 137, 146, 132, 128, 140, 140, 139, 144, 137, 126, 145, 150, 137, 151, 141, 132, 140, 126, 143, 137, 145, 143, 149, 138, 141, 138, 144, 142, 136, 135, 128, 133, 126, 123, 141, 139, 138, 140, 143, 145, 146, 144, 149, 129, 136, 139, 136, 142, 137, 153, 134, 135, 133, 134, 138, 139, 135, 141, 143, 140, 133, 124, 140, 133, 139, 141, 142, 140, 138, 135, 150, 148, 141, 127, 144, 136, 142, 148, 140, 136, 136, 136, 145, 135, 134, 137, 138, 127, 147, 136, 140, 137, 138, 142, 137, 143, 139, 134, 131, 141, 135, 140, 147, 135, 134, 140, 130, 142, 129, 132, 138, 137, 131, 140, 134, 136, 142, 143, 143, 134, 142, 135, 141, 133, 135, 135, 141, 132, 134, 146, 143, 154, 141, 141, 135, 137, 136, 138, 149, 135, 143, 151, 142, 132, 144, 129, 124, 139, 140, 134, 127, 147, 144, 143, 139, 146, 138, 143, 139, 136, 138, 136, 128, 140, 141, 145, 135, 131, 138, 145, 137, 137, 144, 141, 136, 141, 146, 149, 140, 138, 136, 143, 121, 142, 142, 144, 126, 142, 137, 155, 140, 144, 129, 135, 141, 116, 141, 142, 138, 142, 135, 142, 141, 136, 137, 133, 133, 137, 137, 134, 140, 149, 144, 141, 151, 137, 150, 144, 141, 146, 138, 138, 136, 142, 140, 148, 137, 134, 131, 146, 149, 123, 139, 140, 140, 144, 137, 136, 145, 140, 137, 128, 144, 140, 129, 140, 144, 133, 141, 147, 141, 129, 143, 156, 129, 151, 144, 138, 149, 143, 144, 131, 147, 137, 133, 151, 135, 145, 122, 131, 137, 138, 136, 135, 134, 138, 147, 135, 136, 136, 136, 146, 134, 144, 139, 148, 144, 138, 143, 147, 142, 127, 147, 138, 149, 145, 139, 146, 137, 144, 147, 135, 154, 137, 137, 131, 137, 143, 134, 136, 139, 145, 126, 141, 140, 142, 139, 129, 142, 150, 143, 139, 143, 139, 139, 139, 139, 125, 141, 142, 144, 140, 141, 134, 142, 144, 138, 137, 150, 143, 134, 128, 132, 141, 133, 133, 130, 133, 149, 126, 142, 147, 146, 148, 138, 141, 139, 126, 145, 142, 127, 144, 142, 150, 139, 141, 134, 144, 157, 141, 134, 140, 131, 118, 134, 143, 134, 136, 131, 129, 129, 140, 136, 134, 138, 135, 145, 158, 149, 139, 137, 147, 131, 143, 135, 139, 144, 137, 138, 131, 135, 141, 139, 134, 153, 139, 142, 124, 137, 137, 136, 137, 148, 138, 137, 135, 137, 137, 142, 143, 134, 141, 141, 139, 134, 148, 146, 136, 134, 147, 128, 135, 124, 151, 134, 137, 146, 143, 140, 138, 140, 131, 149, 142, 138, 142, 142, 139, 140, 143, 149, 142, 142, 143, 132, 139, 129, 143, 156, 134, 141, 149, 138, 143, 137, 141, 145, 139, 131, 145, 141, 140, 134, 140, 147, 139, 131, 129, 146, 133, 128, 137, 142, 152, 137, 147, 139, 126, 139, 123, 148, 140, 144, 133, 144, 144, 143, 136, 142, 143, 135, 144, 147, 126, 144, 140, 148, 136, 134, 138, 150, 129, 144, 134, 138, 149, 131, 147, 152, 132, 137, 140, 141, 140, 143, 144, 151, 139, 138, 133, 135, 133, 143, 145, 135, 137, 146, 133, 133, 141, 146, 137, 135, 143, 143, 133, 138, 134, 152, 148, 135, 141, 145, 139, 144, 138, 137, 141, 145, 141, 140, 138, 139, 142, 132, 137, 139, 142, 134, 140, 136, 137, 145, 128, 139, 146, 136, 132, 146, 138, 132, 128, 134, 139, 140, 130, 138, 138, 133, 139, 145, 135, 133, 142, 140, 145, 135, 145, 140, 136, 131, 127, 129, 139, 140, 143, 138, 138, 142, 148, 137, 137, 143, 141, 140, 137, 145, 146, 142, 142, 145, 143, 130, 144, 142, 136, 135, 142, 135, 139, 131, 139, 132, 143, 148, 134, 135, 132, 144, 132, 141, 141, 130, 141, 135, 132, 135, 136, 136, 132, 139, 134, 139, 138, 135, 141, 144, 140, 138, 139, 134, 141, 142, 132, 140, 142, 130, 143, 143, 147, 137, 143, 139, 146, 141, 137, 145, 134, 136, 132, 149, 139, 144, 137, 138, 137, 136, 132, 138, 142, 135, 144, 138, 139, 133, 135, 140, 135, 138, 129, 145, 142, 145, 137, 140, 137, 135, 146, 139, 140, 129, 132, 133, 136, 140, 138, 146, 134, 134, 141, 139, 136, 136, 147, 137, 137, 141, 141, 141, 143, 135, 136, 146, 142, 140, 141, 138, 138, 134, 138, 133, 147, 145, 146, 133, 140, 135, 132, 132, 135, 132, 140, 139, 144, 132, 132, 122, 135, 132, 143, 135, 138, 144, 137, 142, 137, 138, 136, 137, 145, 136, 130, 144, 136, 137, 140, 137, 139, 139, 135, 134, 125, 138, 133, 133, 151, 143, 140, 136, 130, 137, 147, 139, 142, 143, 133, 135, 142, 127, 137, 139, 133, 142, 141, 135, 143, 141, 141, 137, 143, 142, 132, 137, 137, 138, 140, 141, 138, 139, 137, 136, 144, 136, 142, 144, 141, 139, 143, 149, 141, 139, 142, 144, 140, 133, 147, 142, 145, 141, 127, 134, 139, 136, 146, 140, 138, 133, 137, 149, 131, 135, 135, 131, 140, 140, 146, 135, 141, 149, 143, 138, 136, 134, 144, 140, 132, 140, 136, 143, 142, 135, 140, 133, 147, 134, 132, 134, 142, 134, 150, 141, 146, 138, 134, 141, 139, 142, 140, 136, 133, 146, 137, 145, 143, 133, 135, 140, 137, 136, 147, 128, 138, 130, 135, 137, 122, 132, 147, 131, 138, 135, 135, 136, 142, 142, 154, 138, 141, 139, 141, 139, 140, 136, 143, 136, 135, 137, 131, 143, 148, 137, 149, 134, 143, 141, 140, 141, 135, 144, 147, 132, 130, 139, 135, 136, 143, 138, 140, 139, 134, 130, 141, 136, 139, 139, 136, 129, 137, 136, 136, 140, 134, 137, 146, 132, 136, 134, 138, 138, 150, 133, 144, 137, 135, 143, 145, 144, 144, 145, 135, 142, 140, 145, 140, 134, 137, 149, 133, 143, 136, 138, 142, 127, 128, 148, 129, 143, 140, 137, 135, 139, 138, 141, 141, 137, 133, 133, 140, 139, 136, 142, 144, 139, 147, 142, 131, 135, 136, 141, 135, 137, 134, 135, 135, 132, 130, 136, 145, 130, 138, 130, 149, 143, 137, 143, 137, 162, 131, 132, 137, 138, 143, 137, 144, 138, 134, 134, 136, 137, 137, 131, 141, 136, 143, 137, 140, 132, 136, 141, 132, 138, 133, 126, 137, 139, 140, 139, 129, 136, 138, 127, 130, 140, 141, 140, 136, 139, 136, 133, 141, 136, 137, 138, 140, 130, 135, 142, 139, 129, 137, 138, 154, 142, 135, 137, 151, 141, 133, 147, 151, 134, 146, 135, 133, 128, 135, 137, 145, 141, 134, 146, 136, 141, 135, 136, 143, 141, 136, 140, 139, 139, 135, 140, 135, 136, 139, 138, 143, 135, 136, 137, 141, 135, 137, 127, 138, 138, 139, 138, 136, 137, 135, 131, 136, 145, 140, 136, 132, 142, 134, 133, 139, 141, 139, 149, 141, 142, 137, 144, 137, 136, 143, 139, 138, 135, 147, 135, 138, 140, 137, 130, 144, 148, 134, 139, 141, 136, 146, 136, 154, 133, 140, 134, 141, 146, 141, 141, 144, 138, 133, 131, 137, 137, 138, 144, 134, 142, 138, 150, 134, 142, 141, 137, 148, 136, 136, 139, 141, 142, 142, 137, 138, 147, 147, 135, 140, 147, 137, 141, 136, 138, 141, 141, 143, 143, 136, 148, 135, 143, 148, 137, 142, 137, 134, 134, 127, 127, 132, 138, 139, 138, 145, 135, 141, 145, 136, 144, 140, 138, 142, 127, 146, 136, 143, 136, 145, 143, 143, 140, 137, 152, 142, 131, 134, 141, 139, 145, 138, 140, 144, 129, 137, 144, 145, 145, 137, 130, 140, 136, 148, 140, 132, 142, 139, 145, 151, 142, 139, 134, 141, 138, 143, 134, 133, 135, 141, 142, 135, 127, 138, 136, 135, 150, 143, 140, 140, 148, 143, 132, 139, 138, 129, 131, 141, 139, 141, 132, 136, 138, 140, 149, 141, 142, 140, 142, 133, 132, 138, 138, 139, 140, 132, 135, 137, 135, 133, 141, 135, 139, 131, 148, 135, 137, 136, 132, 144, 132, 131, 137, 144, 136, 138, 139, 141, 136, 139, 138, 135, 132, 143, 137, 151, 148, 144, 128, 132, 136, 129, 145, 141, 129, 148, 142, 133, 139, 138, 139, 139, 132, 134, 141, 141, 139, 136, 136, 130, 140, 139, 146, 133, 141, 141, 139, 139, 125, 134, 141, 126, 133, 137, 135, 142, 142, 138, 131, 150, 130, 135, 130, 132, 140, 145, 137, 139, 139, 152, 142, 149, 134, 145, 143, 139, 150, 141, 137, 145, 140, 139, 137, 140, 135, 138, 136, 139, 135, 143, 130, 141, 149, 138, 141, 141, 140, 140, 145, 134, 133, 148, 139, 140, 137, 140, 138, 142, 139, 149, 141, 139, 146, 138, 141, 140, 144, 129, 133, 132, 144, 137, 136, 138, 137, 138, 139, 141, 136, 135, 131, 138, 130, 137, 141, 141, 139, 131, 137, 146, 138, 133, 138, 144, 145, 140, 129, 143, 132, 137, 141, 138, 151, 132, 146, 133, 152, 123, 141, 136, 140, 131, 143, 144, 141, 135, 136, 139, 134, 148, 140, 146, 136, 143, 138, 144, 140, 140, 139, 138, 134, 138, 134, 137, 145, 140, 159, 137, 146, 135, 135, 141, 135, 140, 139, 136, 144, 140, 134, 139, 134, 136, 144, 127, 138, 136, 148, 141, 135, 137, 135, 141, 144, 151, 141, 132, 146, 141, 134, 133, 118, 132, 131, 119, 138, 120, 141, 135, 143, 145, 137, 147, 145, 131, 133, 136, 139, 136, 137, 141, 139, 139, 143, 138, 140, 142, 140, 135, 162, 132, 141, 132, 133, 139, 143, 139, 138, 145, 133, 142, 142, 147, 130, 131, 139, 138, 152, 143, 138, 148, 149, 139, 144, 132, 145, 125, 141, 123, 143, 139, 146, 136, 139, 152, 140, 138, 138, 131, 135, 135, 134, 140, 132, 134, 136, 141, 131, 140, 140, 135, 139, 138, 138, 142, 133, 145, 130, 149, 142, 140, 129, 127, 142, 147, 135, 146, 133, 134, 141, 144, 136, 138, 135, 145, 138, 138, 138, 133, 142, 138, 150, 131, 140, 141, 129, 145, 124, 137, 130, 148, 134, 132, 143, 136, 134, 141, 139, 143, 126, 129, 138, 139, 140, 131, 144, 129, 134, 129, 133, 150, 135, 147, 137, 140, 128, 135, 127, 136, 133, 146, 135, 110, 124, 140, 151, 145, 143, 141, 137, 127, 143, 139, 142, 148, 143, 137, 137, 120, 145, 150, 138, 136, 131, 148, 134, 143, 139, 149, 141, 113, 138, 136, 132, 139, 144, 143, 139, 145, 134, 138, 134, 142, 141, 143, 139, 136, 135, 131, 146, 143, 134, 125, 149, 139, 133, 145, 120, 132, 150, 134, 133, 136, 136, 144, 142, 133, 138, 152, 145, 138, 133, 132, 142, 145, 131, 137, 131, 130, 160, 140, 138, 143, 139, 136, 132, 141, 136, 147, 131, 142, 144, 138, 135, 133, 149, 153, 140, 140, 143, 142, 133, 143, 144, 150, 135, 137, 133, 136, 149, 143, 137, 141, 136, 141, 141, 138, 117, 146, 143, 150, 142, 156, 158, 147, 142, 136, 140, 137, 145, 144, 148, 140, 136, 137, 138, 140, 140, 140, 136, 143, 145, 142, 141, 144, 141, 135, 137, 138, 133, 141, 132, 141, 140, 127, 127, 130, 138, 135, 139, 146, 139, 126, 144, 134, 133, 144, 137, 127, 141, 138, 122, 142, 147, 128, 140, 140, 142, 140, 137, 140, 127, 140, 140, 140, 144, 142, 137, 136, 133, 143, 138, 142, 150, 132, 138, 149, 149, 155, 142, 134, 139, 136, 141, 137, 140, 133, 134, 154, 146, 140, 127, 136, 139, 151, 137, 138, 137, 143, 145, 142, 149, 145, 140, 138, 147, 137, 150, 135, 140, 151, 141, 140, 153, 137, 151, 135, 147, 153, 142, 130, 144, 133, 125, 131, 146, 129, 126, 129, 148, 142, 141, 134, 136, 152, 140, 134, 136, 140, 139, 150, 131, 135, 139, 147, 132, 134, 134, 159, 144, 143, 138, 138, 139, 138, 130, 141, 128, 145, 140, 133, 140, 130, 153, 138, 141, 139, 145, 144, 136, 146, 144, 146, 141, 140, 140, 144, 141, 132, 139, 144, 140, 138, 148, 137, 146, 146, 137, 140, 142, 141, 138, 134, 136, 137, 135, 140, 139, 143, 143, 131, 146, 142, 125, 138, 138, 146, 140, 130, 140, 139, 132, 137, 138, 138, 144, 154, 131, 142, 139, 144, 144, 140, 141, 140, 140, 138, 127, 136, 150, 141, 148, 142, 138, 139, 139, 144, 137, 143, 140, 137, 134, 142, 140, 131, 141, 148, 148, 134, 133, 133, 137, 137, 149, 133, 131, 142, 142, 137, 140, 142, 132, 136, 137, 143, 136, 145, 144, 141, 143, 138, 137, 140, 127, 137, 142, 131, 141, 142, 147, 145, 142, 133, 139, 143, 141, 138, 140, 150, 141, 134, 139, 142, 132, 131, 141, 145, 140, 143, 135, 138, 141, 139, 133, 136, 145, 135, 137, 132, 136, 125, 130, 142, 132, 136, 135, 135, 137, 136, 136, 135, 140, 137, 144, 133, 152, 134, 135, 141, 134, 135, 141, 142, 145, 142, 137, 145, 139, 139, 135, 145, 135, 138, 139, 149, 139, 140, 138, 144, 129, 137, 142, 137, 138, 138, 138, 150, 146, 138, 138, 139, 134, 144, 138, 143, 137, 139, 138, 127, 141, 142, 136, 136, 140, 141, 138, 135, 134, 138, 141, 139, 138, 135, 140, 138, 135, 144, 145, 137, 138, 139, 142, 142, 127, 135, 143, 144, 134, 137, 143, 139, 137, 138, 148, 134, 140, 141, 140, 139, 141, 141, 135, 155, 142, 144, 147, 146, 137, 143, 136, 143, 143, 143, 131, 142, 135, 140, 143, 139, 141, 142, 133, 132, 143, 136, 145, 139, 147, 136, 135, 139, 138, 139, 142, 132, 143, 141, 138, 144, 143, 142, 142, 141, 134, 136, 137, 134, 140, 134, 138, 137, 143, 144, 137, 136, 134, 140, 136, 135, 141, 136, 136, 134, 135, 141, 143, 138, 141, 139, 134, 131, 139, 138, 144, 136, 131, 140, 125, 139, 144, 133, 135, 132, 137, 139, 139, 134, 130, 137, 134, 139, 133, 143, 141, 153, 133, 133, 140, 132, 141, 136, 146, 140, 141, 144, 136, 130, 141, 139, 137, 144, 138, 141, 131, 135, 134, 140, 135, 140, 140, 140, 142, 130, 138, 137, 136, 137, 139, 142, 146, 134, 137, 135, 140, 138, 140, 140, 143, 138, 146, 144, 146, 142, 146, 135, 144, 141, 149, 136, 147, 137, 147, 141, 132, 144, 139, 132, 137, 136, 152, 143, 146, 139, 137, 136, 137, 139, 140, 137, 139, 140, 141, 140, 142, 141, 129, 138, 147, 140, 137, 134, 134, 134, 136, 138, 141, 139, 133, 150, 145, 143, 138, 141, 151, 148, 135, 138, 132, 149, 142, 134, 136, 140, 143, 138, 132, 143, 138, 132, 141, 135, 136, 153, 138, 135, 143, 146, 137, 139, 143, 137, 136, 137, 136, 142, 133, 140, 138, 138, 146, 142, 134, 138, 143, 140, 147, 137, 141, 140, 140, 143, 144, 124, 139, 135, 137, 144, 143, 139, 135, 149, 136, 132, 142, 132, 134, 135, 139, 135, 139, 145, 133, 142, 134, 139, 138, 143, 137, 136, 136, 148, 137, 133, 137, 135, 137, 137, 135, 130, 144, 132, 132, 136, 142, 146, 136, 143, 140, 144, 139, 136, 142, 132, 140, 138, 133, 141, 150, 141, 136, 137, 141, 136, 138, 143, 135, 135, 140, 146, 135, 136, 140, 140, 130, 125, 131, 136, 141, 143, 157, 139, 137, 146, 144, 142, 134, 142, 147, 143, 139, 132, 131, 135, 144, 141, 143, 130, 144, 145, 139, 141, 131, 131, 136, 129, 144, 140, 154, 143, 141, 136, 145, 138, 135, 131, 131, 134, 136, 144, 146, 133, 138, 138, 138, 132, 142, 141, 138, 145, 148, 141, 141, 144, 137, 136, 143, 119, 135, 154, 141, 144, 147, 134, 149, 137, 129, 135, 145, 141, 140, 133, 138, 145, 137, 134, 134, 129, 136, 145, 130, 136, 144, 139, 148, 136, 140, 131, 147, 133, 134, 135, 140, 147, 142, 137, 140, 145, 149, 134, 141, 143, 139, 136, 135, 142, 136, 140, 135, 137, 139, 142, 132, 140, 135, 142, 141, 142, 137, 139, 145, 136, 136, 143, 143, 150, 139, 145, 134, 144, 140, 139, 144, 146, 139, 154, 135, 142, 137, 132, 138, 135, 141, 153, 144, 142, 139, 137, 148, 131, 136, 143, 140, 150, 143, 147, 145, 136, 135, 140, 139, 143, 151, 134, 165, 144, 135, 144, 138, 131, 140, 162, 136, 139, 144, 133, 130, 142, 136, 134, 146, 145, 134, 157, 131, 140, 151, 140, 148, 140, 136, 145, 151, 139, 143, 137, 148, 134, 142, 151, 132, 133, 142, 130, 135, 135, 141, 132, 137, 143, 136, 134, 133, 140, 139, 138, 133, 141, 138, 142, 138, 142, 143, 138, 141, 134, 144, 141, 136, 144, 140, 144, 145, 137, 138, 143, 158, 136, 147, 143, 142, 138, 133, 137, 143, 149, 135, 145, 136, 143, 134, 149, 139, 125, 137, 141, 143, 139, 129, 137, 136, 135, 147, 138, 138, 148, 125, 137, 144, 144, 151, 133, 140, 137, 147, 131, 147, 133, 144, 144, 137, 137, 125, 144, 131, 126, 139, 162, 136, 145, 143, 132, 143, 128, 133, 136, 127, 145, 143, 142, 135, 140, 141, 147, 130, 140, 133, 146, 135, 135, 140, 137, 134, 139, 145, 127, 142, 144, 152, 132, 137, 133, 132, 132, 144, 137, 139, 134, 146, 144, 138, 146, 130, 131, 137, 141, 139, 141, 140, 142, 141, 142, 139, 133, 128, 142, 138, 147, 139, 140, 139, 139, 141, 144, 153, 144, 142, 138, 131, 150, 139, 132, 132, 136, 138, 131, 136, 138, 141, 149, 139, 137, 143, 137, 142, 146, 148, 140, 131, 139, 139, 132, 136, 136, 131, 138, 136, 144, 135, 143, 138, 140, 137, 136, 145, 134, 144, 146, 137, 142, 155, 148, 136, 143, 140, 142, 131, 144, 143, 132, 143, 134, 140, 136, 139, 137, 157, 139, 129, 142, 131, 131, 141, 132, 139, 136, 137, 134, 145, 138, 144, 137, 139, 138, 133, 143, 137, 142, 144, 141, 135, 138, 126, 139, 139, 138, 146, 140, 143, 137, 135, 145, 135, 149, 139, 141, 141, 144, 150, 136, 141, 137, 143, 141, 150, 134, 146, 138, 138, 148, 131, 141, 131, 134, 150, 138, 136, 144, 130, 131, 130, 146, 138, 146, 138, 147, 145, 139, 139, 137, 138, 145, 133, 138, 144, 134, 138, 149, 138, 133, 133, 143, 142, 148, 150, 143, 141, 135, 137, 131, 139, 148, 133, 141, 137, 141, 141, 134, 139, 135, 137, 147, 141, 142, 139, 134, 125, 139, 143, 136, 146, 139, 145, 136, 136, 141, 139, 138, 132, 142, 133, 139, 139, 135, 136, 146, 138, 141, 135, 136, 143, 139, 135, 140, 136, 139, 136, 132, 139, 142, 127, 150, 147, 139, 139, 138, 136, 139, 147, 140, 141, 137, 140, 144, 145, 145, 141, 133, 132, 144, 142, 134, 137, 140, 138, 142, 136, 145, 141, 132, 145, 133, 146, 137, 137, 136, 145, 132, 137, 136, 139, 141, 130, 143, 132, 135, 143, 138, 135, 135, 134, 133, 137, 138, 141, 142, 136, 142, 139, 134, 134, 142, 139, 137, 140, 127, 139, 139, 141, 150, 142, 140, 131, 144, 137, 148, 138, 141, 133, 141, 141, 137, 137, 137, 134, 137, 137, 136, 136, 132, 138, 151, 142, 142, 137, 146, 149, 146, 129, 142, 134, 141, 136, 133, 147, 139, 130, 141, 138, 145, 135, 137, 140, 138, 134, 135, 137, 129, 139, 136, 137, 140, 127, 135, 142, 146, 137, 134, 139, 139, 138, 132, 130, 141, 140, 146, 136, 138, 142, 132, 136, 141, 142, 134, 139, 133, 139, 138, 139, 137, 142, 135, 141, 130, 131, 145, 137, 138, 136, 135, 133, 133, 131, 138, 138, 142, 139, 136, 137, 141, 146, 144, 136, 137, 132, 144, 146, 140, 131, 137, 141, 137, 135, 132, 132, 143, 140, 138, 141, 135, 139, 137, 137, 143, 134, 136, 149, 136, 143, 139, 131, 150, 139, 138, 140, 139, 142, 143, 146, 148, 140, 139, 135, 145, 136, 135, 134, 137, 136, 135, 139, 147, 135, 132, 140, 134, 135, 140, 134, 146, 138, 135, 143, 134, 133, 142, 134, 143, 122, 137, 136, 135, 142, 133, 135, 142, 141, 141, 140, 138, 134, 136, 137, 135, 135, 139, 143, 134, 133, 141, 133, 134, 136, 138, 140, 135, 143, 148, 136, 143, 125, 139, 140, 144, 142, 140, 140, 138, 139, 136, 136, 132, 138, 142, 140, 133, 145, 138, 141, 131, 143, 132, 133, 129, 140, 129, 148, 135, 133, 134, 140, 125, 141, 138, 141, 142, 138, 135, 138, 139, 136, 139, 136, 140, 140, 142, 131, 138, 134, 134, 146, 155, 130, 141, 140, 130, 131, 141, 142, 138, 139, 139, 126, 137, 144, 137, 143, 137, 143, 140, 137, 148, 138, 131, 140, 141, 137, 139, 133, 144, 140, 136, 134, 142, 144, 138, 138, 143, 137, 132, 136, 137, 142, 137, 132, 139, 141, 118, 142, 137, 139, 150, 134, 145, 136, 145, 142, 136, 133, 140, 139, 139, 136, 132, 144, 136, 145, 131, 137, 142, 142, 135, 136, 135, 141, 141, 139, 137, 142, 134, 140, 143, 136, 136, 145, 146, 131, 132, 138, 132, 139, 143, 143, 133, 129, 130, 129, 139, 142, 140, 138, 138, 141, 134, 137, 143, 135, 149, 146, 151, 137, 136, 145, 138, 147, 149, 142, 129, 136, 130, 143, 140, 131, 142, 138, 143, 129, 133, 137, 125, 145, 141, 132, 134, 143, 137, 140, 137, 141, 138, 145, 136, 145, 147, 141, 139, 141, 132, 143, 138, 139, 142, 143, 131, 140, 134, 151, 140, 142, 135, 142, 139, 136, 134, 146, 138, 140, 142, 154, 145, 136, 149, 135, 135, 144, 138, 140, 135, 138, 143, 149, 138, 145, 137, 142, 152, 130, 131, 139, 135, 139, 120, 135, 137, 137, 142, 136, 133, 138, 139, 136, 124, 136, 137, 142, 135, 137, 145, 138, 143, 135, 142, 142, 136, 139, 141, 141, 141, 133, 145, 144, 137, 141, 148, 137, 138, 138, 138, 140, 133, 139, 137, 137, 139, 147, 139, 140, 144, 139, 139, 141, 142, 137, 133, 135, 135, 135, 134, 129, 139, 141, 133, 136, 135, 141, 142, 137, 143, 144, 141, 139, 138, 132, 138, 142, 137, 130, 141, 140, 137, 142, 145, 135, 141, 145, 143, 137, 140, 141, 132, 142, 139, 139, 141, 143, 143, 135, 143, 143, 143, 134, 140, 147, 139, 140, 139, 137, 149, 144, 136, 146, 144, 143, 134, 136, 146, 140, 137, 139, 134, 141, 140, 140, 139, 142, 134, 140, 136, 152, 136, 134, 142, 136, 147, 133, 134, 140, 137, 141, 135, 138, 141, 140, 144, 135, 132, 134, 135, 140, 140, 136, 139, 138, 142, 132, 144, 133, 137, 139, 140, 138, 134, 138, 147, 146, 137, 136, 139, 140, 141, 138, 138, 137, 134, 136, 144, 131, 140, 145, 142, 138, 140, 141, 133, 137, 140, 133, 151, 132, 136, 134, 135, 137, 131, 139, 140, 135, 143, 142, 136, 138, 130, 145, 137, 138, 141, 143, 145, 140, 142, 147, 140, 138, 142, 141, 142, 130, 143, 145, 142, 139, 137, 139, 127, 130, 131, 147, 142, 137, 141, 145, 142, 137, 141, 136, 146, 135, 134, 136, 140, 133, 130, 135, 131, 140, 144, 142, 141, 142, 127, 144, 137, 143, 136, 137, 137, 144, 137, 137, 142, 140, 139, 143, 142, 141, 140, 134, 142, 138, 140, 136, 147, 141, 137, 138, 146, 144, 145, 135, 140, 143, 138, 143, 143, 139, 138, 141, 140, 139, 149, 128, 144, 143, 146, 143, 145, 138, 128, 137, 140, 137, 137, 143, 149, 138, 136, 138, 137, 137, 132, 140, 142, 142, 143, 136, 142, 139, 140, 142, 136, 146, 140, 142, 130, 135, 138, 137, 139, 116, 140, 136, 138, 138, 136, 136, 146, 138, 149, 143, 142, 130, 138, 137, 136, 134, 143, 145, 137, 141, 143, 144, 137, 143, 155, 142, 160, 137, 148, 137, 133, 140, 136, 139, 132, 139, 139, 142, 140, 135, 135, 145, 137, 132, 138, 138, 144, 136, 135, 135, 141, 139, 137, 140, 139, 135, 138, 152, 138, 135, 138, 135, 140, 137, 132, 133, 136, 137, 138, 140, 140, 132, 143, 143, 137, 145, 136, 134, 143, 145, 137, 147, 145, 142, 144, 145, 139, 135, 139, 141, 136, 130, 137, 138, 138, 131, 136, 140, 138, 138, 138, 134, 140, 133, 142, 133, 134, 137, 135, 142, 140, 137, 139, 135, 136, 137, 136, 142, 131, 142, 137, 134, 144, 137, 138, 141, 141, 142, 141, 139, 136, 134, 142, 136, 141, 137, 140, 144, 138, 137, 141, 143, 136, 142, 143, 146, 135, 136, 138, 152, 146, 133, 139, 147, 138, 137, 141, 135, 141, 144, 136, 142, 136, 139, 142, 136, 143, 143, 136, 143, 139, 140, 139, 131, 142, 147, 133, 144, 142, 141, 133, 150, 141, 144, 144, 139, 141, 132, 134, 145, 145, 141, 137, 142, 141, 138, 128, 143, 143, 132, 135, 135, 133, 139, 139, 144, 142, 139, 132, 147, 143, 145, 139, 138, 131, 136, 158, 142, 150, 143, 138, 135, 138, 136, 145, 134, 144, 141, 147, 138, 141, 146, 135, 148, 139, 142, 137, 136, 135, 134, 144, 141, 139, 136, 144, 134, 145, 147, 140, 134, 143, 135, 144, 144, 141, 136, 132, 138, 134, 140, 140, 139, 143, 139, 139, 142, 138, 135, 129, 143, 139, 143, 140, 135, 139, 143, 138, 141, 141, 139, 141, 143, 144, 139, 141, 143, 145, 134, 142, 137, 134, 143, 144, 131, 137, 140, 134, 134, 131, 138, 144, 137, 146, 132, 142, 138, 144, 129, 139, 144, 132, 150, 138, 143, 152, 146, 147, 136, 144, 138, 141, 137, 143, 139, 134, 140, 136, 127, 136, 141, 135, 141, 146, 132, 137, 131, 134, 156, 136, 141, 147, 140, 148, 150, 142, 143, 133, 141, 140, 134, 133, 138, 147, 140, 136, 146, 135, 135, 142, 144, 143, 141, 127, 143, 134, 138, 141, 131, 140, 136, 143, 140, 138, 135, 142, 140, 143, 141, 140, 136, 141, 134, 137, 145, 139, 143, 132, 137, 142, 131, 140, 142, 140, 131, 130, 141, 148, 137, 133, 140, 145, 140, 136, 142, 146, 139, 135, 146, 135, 140, 137, 142, 146, 138, 134, 150, 139, 136, 140, 143, 134, 145, 145, 136, 134, 141, 137, 132, 144, 146, 139, 134, 129, 148, 133, 128, 139, 135, 131, 127, 140, 128, 131, 144, 145, 143, 147, 137, 143, 142, 132, 137, 134, 142, 129, 137, 143, 144, 138, 138, 138, 140, 143, 139, 137, 145, 127, 147, 138, 138, 137, 140, 132, 147, 142, 136, 132, 143, 137, 123, 150, 145, 136, 133, 146, 150, 147, 136, 140, 142, 139, 133, 141, 135, 137, 146, 135, 139, 136, 136, 139, 142, 142, 143, 135, 135, 139, 143, 145, 134, 142, 137, 128, 141, 131, 146, 134, 149, 129, 136, 145, 139, 135, 148, 136, 142, 148, 146, 142, 136, 142, 132, 139, 135, 136, 137, 139, 140, 131, 143, 144, 140, 132, 141, 132, 133, 134, 131, 141, 133, 137, 135, 138, 136, 137, 137, 136, 132, 135, 140, 138, 139, 139, 136, 141, 138, 140, 141, 138, 150, 140, 135, 137, 137, 137, 144, 139, 141, 148, 133, 130, 137, 142, 132, 137, 137, 132, 133, 136, 136, 139, 145, 140, 147, 137, 133, 142, 144, 133, 142, 139, 139, 127, 142, 142, 137, 144, 153, 139, 139, 147, 142, 136, 145, 138, 144, 141, 152, 130, 147, 137, 139, 137, 144, 135, 139, 139, 138, 138, 145, 138, 136, 140, 139, 140, 138, 133, 142, 135, 146, 142, 135, 135, 144, 136, 141, 147, 138, 138, 133, 140, 129, 133, 142, 134, 136, 144, 132, 145, 136, 139, 149, 133, 138, 137, 131, 137, 134, 130, 136, 140, 136, 139, 133, 130, 148, 142, 142, 143, 136, 140, 141, 139, 137, 152, 135, 143, 133, 134, 156, 130, 136, 149, 134, 134, 144, 130, 146, 141, 143, 141, 140, 133, 133, 136, 146, 136, 144, 142, 152, 135, 136, 134, 140, 141, 130, 135, 128, 141, 141, 149, 147, 137, 142, 141, 141, 147, 141, 139, 134, 140, 143, 136, 138, 133, 145, 137, 147, 139, 142, 124, 139, 120, 126, 145, 132, 135, 134, 136, 138, 137, 162, 140, 130, 133, 144, 140, 168, 125, 141, 131, 141, 144, 143, 150, 146, 134, 139, 133, 150, 146, 135, 141, 143, 145, 137, 147, 145, 148, 141, 135, 146, 146, 137, 148, 136, 141, 131, 144, 140, 140, 133, 142, 140, 140, 143, 133, 138, 147, 139, 153, 142, 142, 127, 132, 131, 141, 156, 128, 144, 136, 146, 131, 148, 132, 136, 143, 140, 136, 137, 146, 141, 138, 142, 134, 132, 136, 147, 144, 143, 136, 148, 136, 134, 125, 132, 138, 143, 133, 140, 135, 125, 141, 144, 142, 127, 131, 144, 139, 136, 153, 140, 146, 146, 141, 138, 140, 149, 140, 145, 143, 138, 143, 138, 138, 141, 129, 140, 138, 129, 143, 139, 133, 155, 140, 133, 144, 113, 142, 134, 135, 139, 149, 142, 143, 146, 134, 132, 138, 142, 131, 137, 135, 133, 134, 139, 145, 127, 141, 141, 140, 143, 140, 146, 141, 139, 137, 137, 136, 135, 146, 132, 138, 143, 142, 138, 143, 141, 142, 133, 140, 139, 136, 140, 133, 141, 136, 137, 151, 140, 150, 143, 143, 145, 135, 145, 143, 133, 136, 140, 146, 143, 142, 136, 142, 140, 137, 163, 136, 138, 137, 133, 130, 131, 144, 131, 135, 142, 140, 127, 140, 139, 132, 136, 142, 136, 147, 140, 143, 141, 136, 140, 139, 138, 141, 136, 143, 136, 141, 149, 144, 140, 142, 137, 134, 143, 127, 139, 144, 129, 132, 144, 150, 150, 136, 132, 146, 145, 144, 146, 142, 128, 134, 132, 143, 146, 138, 142, 138, 138, 135, 134, 136, 135, 134, 140, 162, 141, 137, 129, 139, 135, 141, 137, 142, 142, 144, 131, 143, 135, 135, 141, 141, 132, 139, 135, 143, 137, 144, 137, 128, 147, 133, 140, 143, 135, 122, 140, 142, 152, 137, 130, 140, 123, 139, 138, 134, 145, 137, 140, 156, 139, 137, 146, 131, 137, 142, 141, 139, 137, 135, 141, 129, 130, 134, 142, 139, 149, 135, 145, 134, 135, 141, 138, 140, 145, 136, 143, 145, 133, 132, 145, 146, 141, 141, 149, 147, 135, 136, 135, 137, 138, 144, 136, 143, 149, 133, 134, 144, 147, 135, 144, 141, 129, 136, 138, 142, 141, 135, 142, 145, 142, 135, 139, 138, 144, 146, 146, 132, 139, 141, 136, 141, 148, 134, 138, 138, 138, 136, 138, 135, 150, 133, 150, 136, 143, 137, 137, 141, 148, 141, 143, 134, 134, 134, 135, 139, 145, 132, 139, 137, 142, 134, 149, 136, 142, 135, 140, 135, 128, 149, 143, 139, 139, 137, 136, 141, 141, 131, 140, 138, 136, 144, 136, 142, 132, 143, 141, 137, 136, 124, 139, 136, 138, 131, 140, 140, 135, 144, 135, 135, 135, 136, 138, 132, 141, 141, 141, 143, 140, 134, 136, 143, 141, 132, 136, 137, 137, 138, 147, 136, 142, 137, 137, 138, 141, 142, 147, 145, 141, 137, 137, 139, 144, 140, 145, 140, 131, 132, 141, 134, 130, 136, 135, 130, 145, 142, 131, 141, 144, 140, 134, 148, 138, 146, 144, 138, 145, 138, 148, 138, 137, 140, 144, 136, 140, 142, 134, 139, 144, 139, 150, 136, 141, 143, 139, 141, 136, 140, 133, 137, 138, 137, 140, 142, 153, 144, 139, 135, 138, 140, 140, 144, 140, 140, 136, 134, 132, 131, 146, 139, 119, 143, 138, 142, 142, 123, 145, 134, 141, 134, 140, 140, 123, 134, 137, 139, 136, 143, 137, 141, 138, 144, 139, 139, 138, 144, 144, 137, 136, 144, 136, 134, 143, 154, 139, 138, 138, 142, 139, 152, 142, 133, 134, 138, 143, 141, 134, 139, 140, 141, 135, 141, 154, 144, 137, 138, 131, 143, 134, 138, 136, 135, 138, 142, 142, 139, 140, 143, 141, 141, 143, 135, 142, 135, 131, 132, 142, 135, 140, 138, 130, 139, 149, 129, 137, 134, 150, 139, 146, 145, 143, 137, 131, 140, 138, 150, 144, 138, 135, 135, 140, 137, 135, 139, 143, 140, 142, 140, 139, 139, 139, 135, 137, 136, 128, 133, 139, 139, 141, 137, 139, 136, 132, 139, 149, 134, 135, 140, 136, 141, 142, 136, 135, 141, 133, 138, 148, 141, 133, 139, 139, 134, 135, 144, 143, 147, 137, 143, 143, 143, 144, 144, 134, 142, 145, 138, 141, 140, 140, 142, 137, 142, 140, 148, 134, 142, 145, 144, 135, 134, 141, 138, 136, 143, 139, 141, 138, 141, 133, 143, 137, 132, 138, 135, 141, 144, 139, 143, 141, 131, 130, 140, 134, 133, 146, 142, 133, 139, 139, 135, 137, 144, 129, 141, 138, 142, 134, 133, 146, 127, 143, 134, 138, 133, 134, 142, 147, 146, 136, 133, 138, 139, 148, 151, 137, 141, 136, 145, 144, 134, 141, 143, 145, 137, 143, 129, 131, 137, 136, 138, 134, 147, 145, 136, 144, 140, 139, 140, 142, 145, 134, 142, 140, 135, 135, 134, 143, 141, 132, 145, 132, 141, 139, 142, 142, 145, 139, 131, 141, 128, 145, 135, 135, 139, 145, 146, 141, 131, 143, 142, 136, 138, 142, 142, 157, 148, 134, 125, 136, 141, 142, 149, 140, 138, 127, 143, 144, 140, 142, 150, 135, 140, 139, 140, 139, 134, 140, 139, 138, 145, 139, 137, 147, 145, 131, 135, 137, 136, 134, 141, 126, 141, 143, 126, 135, 135, 133, 139, 135, 138, 136, 127, 142, 139, 140, 141, 144, 138, 144, 144, 143, 142, 140, 145, 142, 147, 142, 136, 140, 137, 145, 135, 147, 140, 140, 140, 137, 133, 141, 141, 136, 136, 143, 139, 147, 142, 139, 134, 140, 131, 143, 142, 149, 141, 142, 138, 136, 139, 132, 141, 132, 138, 141, 136, 137, 138, 137, 136, 136, 137, 141, 136, 141, 135, 139, 138, 140, 140, 143, 134, 138, 138, 134, 131, 141, 136, 138, 143, 133, 151, 143, 140, 142, 138, 134, 136, 141, 133, 132, 147, 131, 139, 136, 141, 145, 142, 134, 139, 143, 137, 134, 139, 139, 146, 135, 143, 135, 134, 136, 138, 140, 133, 132, 141, 144, 137, 144, 139, 134, 137, 137, 141, 133, 147, 139, 133, 140, 143, 135, 141, 137, 145, 138, 140, 141, 146, 139, 135, 133, 139, 141, 144, 140, 137, 139, 151, 143, 135, 145, 143, 132, 142, 147, 137, 138, 135, 136, 140, 137, 135, 137, 134, 142, 146, 147, 140, 141, 147, 142, 137, 142, 134, 141, 135, 134, 138, 138, 138, 140, 136, 133, 138, 141, 139, 140, 143, 143, 129, 136, 146, 147, 138, 136, 135, 143, 141, 142, 139, 143, 146, 137, 139, 145, 135, 140, 151, 131, 136, 141, 140, 140, 141, 139, 144, 137, 144, 136, 137, 146, 137, 128, 140, 144, 136, 140, 140, 143, 141, 140, 135, 141, 137, 135, 131, 140, 138, 138, 138, 144, 137, 137, 135, 141, 145, 137, 135, 143, 145, 141, 133, 135, 141, 134, 139, 140, 139, 139, 141, 141, 143, 143, 135, 140, 141, 140, 146, 131, 140, 138, 137, 136, 138, 137, 141, 138, 138, 137, 135, 138, 137, 140, 148, 142, 138, 156, 149, 138, 136, 134, 139, 139, 141, 135, 148, 136, 144, 142, 142, 139, 138, 136, 141, 139, 140, 136, 144, 134, 140, 129, 150, 141, 134, 128, 134, 138, 140, 133, 147, 142, 137, 141, 146, 143, 139, 135, 143, 137, 138, 132, 133, 138, 143, 135, 137, 132, 139, 141, 130, 140, 133, 133, 137, 139, 140, 137, 138, 140, 139, 136, 142, 138, 141, 141, 143, 136, 131, 138, 144, 139, 141, 138, 134, 143, 142, 145, 141, 137, 136, 139, 141, 140, 139, 137, 141, 138, 140, 140, 138, 135, 141, 142, 137, 151, 145, 132, 152, 145, 140, 143, 138, 146, 143, 128, 142, 125, 140, 137, 135, 136, 143, 136, 141, 140, 134, 143, 136, 136, 137, 139, 138, 147, 140, 138, 131, 132, 139, 141, 143, 138, 139, 139, 138, 140, 136, 138, 136, 138, 138, 136, 139, 135, 138, 137, 142, 140, 136, 141, 132, 145, 141, 140, 143, 143, 141, 139, 137, 141, 140, 143, 134, 136, 138, 142, 138, 142, 141, 136, 133, 146, 135, 132, 138, 136, 132, 137, 133, 136, 134, 138, 138, 147, 139, 136, 153, 138, 137, 128, 143, 139, 140, 133, 141, 133, 128, 140, 144, 136, 143, 130, 136, 142, 141, 133, 136, 136, 135, 141, 139, 142, 138, 142, 136, 138, 140, 137, 145, 132, 139, 142, 143, 134, 135, 139, 142, 140, 143, 144, 133, 133, 139, 134, 141, 146, 140, 146, 140, 137, 140, 150, 134, 134, 135, 138, 133, 137, 143, 144, 139, 143, 138, 140, 146, 140, 135, 133, 139, 140, 139, 140, 147, 151, 134, 140, 144, 141, 137, 141, 131, 139, 148, 142, 139, 142, 135, 138, 133, 146, 143, 142, 149, 143, 136, 135, 137, 142, 137, 133, 139, 148, 140, 135, 145, 134, 138, 140, 133, 146, 137, 139, 147, 142, 144, 141, 141, 133, 144, 138, 130, 134, 130, 142, 120, 136, 140, 137, 136, 133, 135, 139, 140, 140, 126, 137, 137, 143, 136, 144, 143, 131, 138, 138, 131, 149, 146, 138, 145, 141, 135, 136, 135, 143, 142, 139, 136, 128, 136, 135, 138, 141, 132, 140, 142, 140, 136, 142, 132, 149, 148, 137, 143, 134, 137, 132, 136, 138, 145, 139, 132, 137, 145, 137, 141, 138, 137, 142, 148, 138, 148, 134, 138, 135, 139, 131, 131, 141, 135, 139, 136, 146, 143, 140, 140, 130, 139, 140, 143, 137, 137, 146, 123, 141, 135, 134, 140, 137, 140, 128, 141, 143, 137, 137, 145, 143, 140, 132, 138, 142, 139, 130, 138, 135, 139, 141, 143, 133, 139, 136, 137, 133, 140, 134, 141, 140, 138, 138, 136, 142, 140, 138, 137, 133, 140, 143, 143, 139, 139, 146, 137, 139, 141, 145, 135, 145, 143, 146, 143, 138, 147, 138, 150, 149, 138, 137, 140, 141, 140, 139, 137, 143, 137, 143, 135, 142, 136, 138, 141, 141, 138, 131, 138, 137, 145, 132, 139, 140, 135, 137, 141, 140, 136, 138, 145, 143, 138, 135, 143, 139, 146, 140, 136, 138, 137, 138, 143, 133, 148, 131, 143, 139, 142, 138, 138, 140, 137, 145, 145, 132, 140, 135, 136, 140, 138, 141, 136, 135, 137, 139, 136, 139, 133, 136, 142, 138, 132, 143, 137, 141, 134, 138, 143, 138, 140, 137, 140, 137, 139, 138, 136, 137, 144, 137, 146, 138, 126, 141, 138, 137, 142, 135, 133, 142, 134, 140, 141, 137, 139, 135, 141, 132, 135, 139, 139, 135, 136, 138, 138, 142, 137, 139, 134, 138, 132, 137, 142, 142, 133, 143, 138, 134, 137, 145, 145, 149, 138, 138, 136, 144, 140, 140, 141, 138, 144, 142, 138, 142, 135, 146, 141, 138, 138, 133, 145, 148, 143, 131, 140, 138, 136, 143, 131, 140, 142, 138, 142, 138, 139, 131, 139, 136, 136, 143, 137, 136, 139, 137, 137, 135, 146, 139, 139, 140, 138, 134, 132, 131, 140, 142, 143, 134, 138, 147, 141, 143, 143, 142, 139, 133, 133, 136, 143, 129, 139, 137, 147, 134, 138, 135, 148, 142, 140, 143, 135, 146, 141, 140, 140, 148, 141, 134, 146, 142, 139, 139, 141, 139, 140, 132, 132, 146, 135, 145, 136, 138, 138, 142, 135, 139, 137, 138, 133, 138, 143, 141, 140, 143, 142, 136, 136, 135, 135, 135, 143, 135, 133, 137, 138, 137, 142, 139, 137, 135, 146, 134, 142, 140, 139, 151, 137, 138, 139, 139, 140, 137, 137, 139, 135, 134, 135, 138, 136, 136, 136, 137, 140, 146, 137, 141, 148, 134, 138, 143, 138, 138, 149, 140, 135, 131, 137, 141, 133, 138, 139, 138, 144, 133, 141, 143, 138, 137, 134, 153, 146, 140, 144, 135, 130, 142, 136, 142, 140, 135, 145, 140, 146, 143, 136, 131, 140, 143, 138, 141, 143, 147, 142, 133, 148, 145, 144, 138, 136, 142, 147, 117, 148, 143, 135, 145, 130, 140, 131, 144, 137, 136, 153, 140, 134, 133, 142, 141, 136, 130, 144, 144, 131, 156, 137, 138, 141, 130, 137, 137, 145, 141, 127, 143, 137, 134, 141, 141, 133, 136, 152, 151, 123, 132, 147, 141, 144, 137, 139, 137, 144, 143, 150, 139, 136, 153, 139, 131, 137, 139, 145, 145, 138, 136, 136, 135, 136, 140, 149, 140, 137, 143, 136, 139, 139, 134, 140, 148, 139, 136, 138, 138, 139, 140, 144, 140, 139, 140, 134, 137, 140, 132, 144, 148, 142, 141, 133, 128, 133, 140, 133, 136, 129, 136, 133, 138, 129, 132, 137, 142, 144, 143, 135, 130, 136, 138, 130, 136, 150, 126, 130, 137, 145, 139, 141, 148, 129, 138, 142, 132, 141, 140, 138, 146, 124, 138, 142, 141, 127, 140, 138, 137, 127, 141, 136, 135, 139, 132, 141, 139, 149, 141, 132, 140, 145, 133, 136, 133, 137, 151, 142, 138, 130, 135, 144, 135, 135, 142, 145, 141, 147, 134, 139, 140, 134, 146, 135, 137, 142, 136, 139, 146, 140, 131, 133, 136, 133, 147, 141, 133, 138, 132, 135, 138, 140, 133, 130, 146, 132, 150, 139, 132, 138, 150, 135, 131, 136, 156, 140, 134, 133, 134, 131, 131, 133, 141, 136, 130, 140, 144, 139, 144, 146, 139, 141, 135, 138, 135, 144, 118, 147, 131, 134, 139, 139, 140, 139, 140, 134, 138, 154, 145, 142, 143, 140, 132, 137, 131, 145, 134, 138, 142, 133, 136, 131, 144, 136, 150, 136, 140, 152, 132, 136, 132, 134, 141, 131, 145, 132, 137, 137, 141, 136, 141, 141, 126, 144, 144, 135, 143, 137, 149, 131, 146, 135, 136, 141, 144, 135, 140, 151, 136, 150, 128, 137, 134, 143, 134, 130, 140, 130, 133, 141, 138, 153, 145, 142, 137, 149, 129, 142, 136, 135, 136, 143, 134, 139, 132, 149, 127, 136, 152, 139, 139, 144, 134, 138, 133, 127, 147, 127, 139, 130, 149, 138, 133, 138, 141, 137, 133, 138, 143, 138, 127, 143, 143, 141, 152, 142, 140, 133, 144, 138, 136, 132, 142, 136, 148, 139, 129, 144, 138, 129, 140, 146, 150, 146, 137, 138, 137, 135, 138, 131, 149, 137, 131, 145, 137, 150, 144, 135, 142, 132, 141, 146, 137, 152, 137, 136, 133, 130, 138, 139, 155, 129, 138, 136, 130, 136, 147, 141, 138, 137, 143, 137, 130, 129, 148, 141, 149, 140, 152, 136, 143, 138, 142, 135, 151, 154, 138, 138, 139, 131, 135, 135, 139, 131, 138, 154, 136, 133, 141, 137, 134, 142, 139, 143, 155, 136, 142, 133, 137, 139, 144, 146, 136, 134, 139, 134, 138, 129, 141, 133, 140, 150, 143, 149, 133, 132, 142, 136, 137, 132, 141, 131, 143, 141, 137, 138, 141, 136, 143, 145, 137, 134, 144, 143, 139, 141, 144, 140, 133, 141, 146, 144, 148, 148, 137, 143, 132, 143, 136, 144, 142, 135, 137, 148, 148, 147, 140, 140, 140, 139, 146, 144, 131, 142, 140, 131, 143, 142, 125, 142, 137, 133, 132, 145, 156, 131, 126, 141, 144, 130, 133, 140, 139, 137, 143, 142, 140, 143, 141, 152, 144, 133, 133, 137, 142, 140, 133, 141, 140, 145, 140, 132, 137, 136, 138, 142, 147, 141, 133, 127, 129, 143, 139, 143, 136, 128, 144, 138, 137, 136, 143, 144, 140, 152, 136, 144, 137, 137, 143, 144, 144, 137, 140, 141, 140, 142, 129, 142, 153, 137, 149, 131, 144, 145, 145, 135, 143, 140, 146, 141, 141, 139, 143, 134, 142, 141, 132, 131, 129, 134, 138, 136, 135, 138, 126, 144, 139, 142, 145, 135, 135, 135, 138, 118, 137, 150, 144, 136, 139, 143, 138, 141, 141, 131, 150, 143, 133, 145, 146, 139, 135, 149, 141, 142, 144, 138, 136, 150, 139, 136, 141, 138, 144, 142, 133, 143, 140, 149, 142, 138, 139, 139, 131, 139, 147, 135, 135, 138, 132, 138, 138, 136, 136, 141, 144, 140, 140, 140, 141, 138, 151, 132, 141, 144, 141, 140, 136, 151, 129, 138, 131, 150, 134, 137, 142, 139, 139, 132, 145, 138, 128, 143, 131, 135, 141, 136, 139, 143, 144, 141, 147, 138, 132, 147, 150, 153, 132, 136, 138, 138, 143, 139, 127, 131, 139, 135, 137, 147, 138, 146, 134, 144, 143, 133, 134, 128, 138, 131, 137, 140, 137, 145, 136, 147, 134, 147, 137, 140, 126, 155, 146, 142, 138, 137, 142, 143, 134, 135, 139, 140, 139, 134, 134, 147, 146, 135, 138, 136, 139, 152, 134, 133, 144, 132, 133, 131, 154, 131, 147, 145, 151, 132, 145, 142, 143, 143, 123, 147, 138, 142, 143, 136, 132, 142, 138, 145, 139, 127, 154, 137, 146, 131, 137, 132, 133, 136, 146, 152, 140, 140, 146, 138, 138, 143, 136, 135, 143, 139, 139, 140, 142, 146, 143, 137, 130, 142, 134, 147, 145, 152, 148, 129, 136, 138, 139, 141, 129, 146, 144, 144, 136, 140, 136, 124, 146, 142, 143, 144, 132, 140, 133, 134, 151, 135, 142, 155, 135, 141, 133, 140, 133, 153, 149, 132, 148, 144, 141, 135, 139, 142, 131, 144, 135, 148, 134, 133, 141, 138, 153, 139, 146, 146, 145, 137, 137, 138, 137, 144, 139, 131, 139, 142, 143, 124, 138, 141, 140, 142, 137, 142, 144, 139, 140, 134, 135, 147, 137, 147, 146, 127, 128, 135, 141, 139, 153, 136, 143, 133, 135, 143, 137, 135, 125, 142, 140, 142, 136, 147, 135, 138, 140, 147, 128, 145, 138, 143, 148, 153, 142, 137, 144, 142, 145, 139, 125, 147, 130, 132, 137, 138, 132, 149, 138, 135, 131, 135, 142, 138, 143, 146, 143, 140, 142, 126, 145, 129, 143, 134, 127, 146, 139, 147, 134, 138, 147, 144, 136, 133, 143, 130, 142, 130, 132, 131, 136, 141, 139, 142, 143, 128, 137, 143, 131, 129, 139, 133, 138, 135, 139, 135, 135, 126, 136, 142, 146, 147, 138, 132, 130, 142, 139, 133, 139, 137, 137, 143, 127, 143, 144, 139, 140, 138, 141, 144, 143, 136, 138, 142, 142, 148, 135, 133, 134, 143, 134, 139, 136, 127, 133, 135, 148, 145, 147, 138, 138, 139, 135, 127, 150, 129, 143, 149, 140, 138, 134, 136, 136, 148, 137, 137, 133, 133, 139, 126, 148, 131, 142, 139, 136, 139, 132, 146, 136, 133, 139, 140, 130, 127, 140, 145, 137, 139, 135, 130, 145, 135, 132, 135, 137, 125, 131, 138, 139, 135, 139, 137, 136, 130, 139, 135, 136, 139, 140, 142, 137, 133, 132, 143, 139, 133, 133, 133, 149, 147, 133, 128, 145, 141, 135, 136, 142, 138, 146, 133, 148, 135, 142, 147, 139, 138, 148, 135, 133, 138, 141, 133, 127, 125, 142, 141, 129, 147, 140, 140, 136, 141, 139, 132, 124, 140, 132, 141, 138, 147, 145, 134, 137, 128, 143, 147, 134, 135, 133, 141, 141, 138, 139, 142, 140, 137, 147, 136, 140, 140, 141, 134, 135, 142, 132, 140, 133, 129, 132, 146, 144, 144, 141, 140, 136, 141, 126, 139, 140, 138, 142, 142, 137, 138, 129, 150, 133, 139, 148, 140, 140, 142, 137, 141, 137, 141, 130, 140, 132, 133, 134, 144, 134, 138, 146, 143, 150, 139, 148, 137, 139, 136, 139, 145, 142, 136, 149, 147, 133, 137, 153, 136, 133, 143, 135, 140, 143, 134, 134, 145, 131, 128, 140, 129, 148, 131, 143, 133, 137, 129, 120, 144, 150, 133, 139, 146, 144, 146, 147, 141, 149, 135, 141, 135, 137, 136, 129, 147, 138, 140, 136, 149, 139, 136, 140, 145, 140, 139, 146, 143, 141, 140, 145, 143, 132, 136, 134, 130, 138, 128, 138, 138, 134, 143, 137, 133, 139, 135, 148, 130, 140, 151, 132, 136, 134, 151, 146, 133, 137, 133, 130, 138, 146, 145, 132, 150, 140, 141, 145, 135, 137, 127, 144, 138, 137, 139, 145, 147, 153, 140, 136, 138, 148, 132, 147, 136, 143, 150, 140, 141, 136, 138, 141, 138, 133, 144, 135, 133, 130, 141, 140, 134, 141, 134, 139, 138, 131, 134, 138, 143, 139, 141, 139, 137, 132, 136, 145, 126, 127, 142, 142, 146, 136, 132, 139, 138, 133, 141, 127, 145, 132, 134, 134, 147, 150, 138, 142, 145, 143, 143, 133, 129, 115, 135, 146, 146, 149, 147, 139, 142, 140, 135, 138, 134, 141, 137, 142, 141, 135, 140, 138, 129, 143, 129, 134, 141, 136, 138, 148, 144, 140, 143, 141, 135, 136, 132, 137, 136, 133, 139, 139, 146, 143, 139, 136, 138, 137, 139, 153, 133, 137, 136, 142, 137, 134, 137, 144, 153, 142, 142, 141, 145, 149, 134, 138, 149, 129, 133, 136, 139, 137, 137, 144, 139, 138, 140, 134, 136, 141, 135, 138, 135, 142, 139, 138, 147, 131, 149, 131, 134, 141, 139, 140, 144, 141, 149, 145, 139, 143, 121, 139, 136, 147, 140, 145, 141, 142, 148, 136, 142, 135, 135, 137, 129, 143, 138, 148, 138, 139, 136, 144, 140, 137, 141, 134, 137, 139, 142, 137, 137, 137, 139, 136, 142, 146, 129, 141, 137, 138, 132, 138, 142, 137, 131, 139, 138, 134, 140, 133, 141, 138, 146, 135, 141, 143, 136, 137, 139, 137, 140, 138, 138, 142, 140, 137, 144, 143, 134, 130, 135, 135, 137, 136, 147, 142, 138, 145, 146, 139, 148, 134, 132, 139, 140, 139, 137, 134, 135, 140, 145, 142, 135, 131, 129, 133, 141, 138, 140, 140, 136, 141, 133, 135, 133, 142, 135, 134, 139, 135, 137, 140, 129, 135, 137, 140, 141, 137, 137, 141, 127, 139, 132, 134, 152, 139, 144, 145, 137, 137, 138, 137, 144, 135, 143, 143, 138, 140, 145, 140, 134, 143, 137, 141, 134, 138, 140, 133, 135, 141, 133, 135, 132, 139, 134, 138, 140, 138, 137, 138, 137, 142, 144, 132, 136, 131, 138, 138, 130, 132, 142, 144, 138, 140, 136, 150, 142, 132, 138, 142, 133, 134, 137, 139, 135, 136, 132, 145, 142, 134, 146, 135, 146, 143, 142, 140, 137, 129, 135, 138, 137, 135, 138, 141, 143, 140, 136, 133, 135, 134, 144, 143, 138, 138, 133, 153, 139, 139, 146, 144, 138, 142, 137, 138, 135, 141, 139, 138, 144, 143, 139, 139, 148, 143, 135, 142, 137, 138, 142, 139, 129, 133, 139, 137, 139, 135, 135, 141, 143, 146, 134, 131, 140, 147, 130, 140, 138, 136, 143, 146, 142, 133, 133, 129, 133, 134, 134, 138, 139, 140, 143, 141, 132, 137, 136, 141, 136, 138, 136, 136, 145, 128, 139, 141, 141, 142, 140, 127, 135, 135, 135, 132, 142, 127, 140, 138, 144, 139, 139, 141, 139, 143, 140, 136, 143, 147, 138, 138, 139, 144, 139, 142, 135, 139, 142, 139, 145, 135, 132, 137, 138, 143, 135, 140, 141, 132, 136, 141, 136, 147, 145, 143, 138, 138, 133, 136, 133, 140, 140, 142, 147, 145, 145, 144, 147, 139, 136, 141, 135, 153, 144, 140, 137, 138, 133, 133, 136, 136, 132, 145, 138, 135, 141, 132, 142, 131, 132, 135, 144, 140, 144, 142, 133, 138, 148, 138, 137, 140, 130, 137, 143, 139, 141, 139, 138, 141, 138, 133, 131, 138, 139, 136, 140, 132, 133, 140, 135, 136, 149, 140, 139, 140, 138, 135, 145, 145, 130, 143, 135, 144, 143, 138, 132, 136, 135, 137, 141, 140, 140, 142, 141, 136, 141, 130, 140, 136, 136, 135, 142, 137, 133, 134, 134, 136, 137, 132, 137, 138, 137, 139, 149, 148, 143, 152, 135, 134, 143, 139, 139, 143, 138, 138, 143, 133, 143, 144, 139, 139, 138, 143, 147, 140, 146, 138, 132, 138, 142, 141, 141, 148, 137, 139, 140, 141, 136, 140, 136, 146, 142, 133, 137, 141, 140, 138, 138, 137, 145, 131, 135, 145, 142, 139, 141, 135, 136, 141, 140, 142, 144, 136, 136, 141, 133, 139, 141, 139, 146, 139, 137, 139, 135, 137, 144, 140, 134, 138, 129, 142, 134, 145, 131, 136, 145, 135, 130, 138, 134, 130, 141, 137, 138, 140, 129, 142, 144, 151, 142, 141, 144, 144, 147, 142, 134, 141, 148, 123, 133, 139, 133, 136, 132, 144, 142, 137, 145, 131, 131, 146, 135, 144, 138, 133, 140, 137, 138, 144, 149, 146, 133, 143, 134, 132, 137, 132, 141, 143, 141, 131, 146, 134, 127, 138, 151, 136, 133, 138, 142, 147, 135, 133, 139, 139, 143, 141, 136, 138, 144, 148, 139, 134, 152, 139, 149, 148, 142, 143, 146, 144, 141, 144, 138, 135, 144, 145, 124, 133, 140, 135, 145, 136, 137, 141, 142, 127, 131, 143, 130, 137, 134, 128, 149, 147, 135, 144, 150, 132, 133, 143, 133, 136, 136, 143, 141, 140, 143, 144, 139, 149, 146, 128, 145, 139, 134, 142, 153, 146, 131, 141, 149, 129, 134, 139, 130, 140, 138, 138, 138, 141, 148, 141, 134, 141, 146, 137, 142, 136, 145, 139, 130, 142, 151, 143, 139, 143, 136, 140, 144, 135, 122, 137, 134, 132, 144, 144, 137, 140, 143, 138, 147, 138, 143, 140, 141, 137, 133, 143, 143, 140, 136, 129, 143, 138, 138, 138, 139, 142, 139, 142, 143, 148, 135, 122, 138, 149, 145, 140, 145, 156, 142, 135, 147, 132, 136, 138, 131, 151, 137, 137, 130, 143, 141, 140, 143, 140, 131, 131, 137, 138, 142, 137, 139, 139, 139, 136, 141, 151, 133, 140, 137, 134, 140, 135, 139, 131, 127, 140, 142, 135, 141, 147, 144, 145, 142, 142, 139, 133, 132, 135, 141, 144, 146, 143, 144, 135, 141, 127, 131, 152, 143, 138, 147, 130, 140, 138, 133, 134, 133, 137, 138, 128, 138, 133, 141, 138, 132, 136, 141, 141, 132, 130, 155, 128, 139, 141, 135, 154, 140, 143, 135, 137, 133, 137, 138, 136, 136, 149, 133, 134, 139, 138, 131, 138, 133, 141, 151, 145, 135, 142, 138, 139, 138, 137, 136, 135, 148, 141, 138, 132, 139, 135, 141, 144, 145, 135, 134, 142, 132, 143, 135, 139, 140, 143, 139, 143, 135, 136, 137, 140, 128, 142, 138, 138, 137, 133, 153, 137, 132, 142, 128, 134, 132, 138, 136, 129, 147, 138, 124, 137, 135, 151, 135, 139, 132, 142, 136, 129, 138, 135, 149, 142, 144, 133, 141, 131, 143, 138, 139, 144, 146, 141, 136, 140, 149, 146, 134, 137, 143, 137, 140, 146, 130, 140, 139, 137, 144, 144, 130, 143, 134, 136, 142, 138, 138, 134, 141, 145, 140, 148, 147, 144, 142, 146, 140, 142, 140, 130, 148, 134, 138, 136, 147, 140, 139, 148, 140, 135, 137, 144, 134, 139, 141, 143, 143, 135, 138, 135, 142, 139, 129, 131, 135, 143, 145, 146, 139, 137, 139, 145, 139, 133, 142, 133, 144, 139, 151, 139, 151, 148, 149, 134, 130, 137, 131, 137, 134, 136, 146, 144, 139, 129, 150, 144, 129, 138, 133, 140, 136, 139, 139, 135, 132, 146, 138, 145, 135, 138, 146, 137, 149, 130, 141, 144, 147, 145, 134, 137, 135, 141, 148, 137, 137, 142, 124, 142, 133, 133, 138, 141, 138, 139, 140, 136, 140, 134, 135, 134, 143, 137, 144, 139, 147, 139, 142, 133, 143, 139, 138, 152, 135, 135, 145, 149, 135, 126, 151, 144, 144, 150, 135, 135, 134, 149, 138, 127, 144, 148, 142, 138, 145, 138, 137, 121, 134, 141, 124, 131, 130, 131, 144, 137, 129, 134, 136, 143, 134, 135, 135, 132, 148, 142, 140, 129, 137, 137, 131, 145, 136, 138, 136, 138, 135, 141, 136, 136, 135, 134, 130, 147, 145, 137, 139, 136, 135, 121, 147, 137, 135, 141, 154, 136, 140, 147, 141, 133, 140, 131, 132, 144, 143, 139, 131, 135, 144, 146, 138, 142, 131, 146, 139, 142, 144, 155, 132, 147, 144, 134, 134, 127, 150, 142, 140, 145, 158, 153, 135, 134, 133, 142, 134, 144, 135, 126, 141, 132, 146, 146, 140, 133, 139, 142, 144, 130, 141, 145, 147, 136, 146, 140, 135, 139, 136, 138, 131, 134, 135, 147, 131, 123, 123, 148, 143, 139, 147, 154, 150, 125, 130, 137, 137, 141, 137, 134, 135, 128, 149, 135, 132, 137, 139, 134, 139, 145, 134, 123, 136, 138, 122, 145, 129, 138, 140, 142, 141, 134, 130, 141, 141, 134, 131, 147, 143, 138, 148, 140, 134, 131, 139, 152, 137, 134, 138, 136, 127, 133, 155, 142, 141, 139, 131, 139, 144, 133, 137, 138, 144, 146, 129, 139, 144, 150, 142, 144, 141, 134, 139, 139, 132, 141, 145, 135, 132, 135, 137, 146, 139, 161, 140, 134, 138, 145, 142, 140, 140, 149, 150, 142, 137, 125, 151, 154, 136, 126, 150, 133, 143, 134, 144, 140, 131, 136, 121, 134, 151, 140, 126, 131, 140, 139, 143, 139, 131, 143, 150, 141, 132, 143, 136, 150, 145, 130, 139, 144, 128, 134, 149, 148, 138, 143, 138, 144, 148, 141, 125, 134, 131, 145, 140, 132, 144, 145, 133, 127, 134, 128, 130, 135, 142, 146, 145, 136, 137, 147, 140, 143, 145, 134, 136, 140, 143, 138, 133, 131, 143, 139, 147, 137, 137, 141, 135, 147, 140, 140, 145, 128, 142, 139, 135, 139, 132, 123, 143, 148, 133, 148, 137, 126, 130, 148, 128, 126, 136, 138, 136, 141, 144, 128, 137, 149, 137, 137, 137, 142, 146, 144, 138, 137, 136, 145, 136, 146, 149, 135, 137, 151, 126, 130, 138, 140, 133, 140, 140, 146, 136, 135, 134, 149, 139, 144, 134, 125, 122, 134, 126, 150, 144, 123, 133, 143, 131, 147, 141, 127, 136, 142, 139, 127, 125, 135, 141, 142, 134, 143, 142, 145, 139, 140, 145, 133, 146, 140, 144, 141, 134, 146, 148, 142, 140, 144, 138, 135, 125, 140, 149, 144, 129, 137, 157, 148, 144, 147, 132, 130, 132, 145, 137, 145, 134, 138, 131, 141, 134, 135, 133, 123, 134, 134, 147, 141, 144, 141, 145, 136, 137, 133, 132, 135, 148, 127, 142, 169, 132, 139, 135, 129, 134, 163, 126, 141, 120, 151, 130, 137, 135, 144, 133, 142, 136, 142, 152, 120, 141, 146, 147, 135, 133, 149, 140, 152, 136, 136, 139, 132, 120, 150, 137, 137, 150, 141, 142, 134, 136, 148, 138, 134, 135, 144, 135, 145, 141, 137, 147, 140, 137, 153, 148, 139, 136, 135, 144, 137, 138, 143, 139, 144, 136, 134, 136, 137, 137, 143, 145, 138, 139, 141, 139, 146, 143, 135, 133, 146, 144, 137, 143, 135, 137, 136, 136, 136, 131, 141, 136, 138, 128, 136, 139, 140, 139, 142, 145, 135, 136, 139, 129, 139, 135, 137, 136, 135, 142, 130, 142, 137, 146, 142, 135, 141, 143, 137, 134, 135, 142, 143, 132, 139, 147, 143, 139, 139, 140, 138, 134, 140, 147, 142, 147, 130, 139, 138, 139, 130, 141, 134, 140, 146, 133, 144, 144, 132, 131, 163, 127, 142, 135, 140, 141, 142, 140, 130, 143, 137, 141, 132, 139, 136, 139, 131, 132, 143, 136, 139, 139, 143, 153, 139, 137, 137, 143, 137, 137, 140, 139, 138, 141, 146, 143, 151, 137, 147, 139, 138, 147, 136, 140, 143, 133, 130, 137, 133, 143, 145, 137, 136, 139, 140, 143, 153, 123, 132, 141, 145, 139, 143, 131, 136, 134, 142, 143, 128, 138, 140, 144, 134, 136, 139, 136, 145, 139, 137, 148, 135, 147, 148, 153, 142, 136, 137, 134, 138, 141, 141, 136, 143, 140, 144, 143, 135, 142, 135, 131, 132, 145, 133, 140, 136, 141, 135, 138, 139, 128, 140, 129, 139, 135, 134, 132, 135, 143, 136, 132, 128, 139, 134, 140, 141, 147, 136, 151, 137, 147, 142, 150, 142, 142, 141, 135, 129, 143, 147, 136, 138, 133, 139, 140, 135, 144, 139, 144, 142, 138, 142, 137, 132, 137, 135, 142, 138, 130, 136, 136, 139, 148, 142, 138, 140, 141, 145, 134, 135, 140, 138, 140, 134, 139, 137, 135, 143, 139, 125, 132, 132, 140, 145, 136, 138, 146, 141, 132, 140, 143, 126, 139, 142, 140, 135, 139, 140, 141, 136, 140, 145, 136, 136, 136, 153, 141, 144, 144, 139, 141, 142, 139, 140, 138, 145, 135, 136, 137, 135, 146, 138, 131, 136, 142, 136, 143, 133, 132, 141, 143, 135, 139, 145, 140, 149, 144, 144, 139, 138, 142, 140, 135, 128, 136, 144, 143, 143, 140, 148, 140, 141, 143, 137, 139, 137, 142, 137, 140, 136, 133, 138, 139, 145, 147, 141, 145, 139, 140, 134, 133, 138, 140, 139, 137, 134, 142, 132, 139, 142, 137, 137, 141, 143, 133, 141, 146, 133, 139, 132, 134, 140, 135, 132, 140, 129, 143, 146, 128, 148, 138, 133, 144, 138, 147, 144, 135, 135, 144, 127, 134, 129, 141, 138, 142, 133, 141, 133, 137, 138, 138, 137, 138, 141, 142, 132, 136, 142, 137, 138, 139, 140, 138, 136, 147, 145, 129, 137, 133, 143, 141, 137, 141, 140, 138, 136, 133, 135, 136, 130, 138, 143, 145, 138, 144, 133, 140, 146, 143, 134, 140, 142, 146, 146, 135, 141, 139, 137, 143, 146, 140, 135, 145, 139, 135, 138, 131, 139, 147, 132, 136, 141, 144, 134, 140, 142, 138, 142, 132, 144, 131, 141, 135, 133, 140, 152, 141, 135, 135, 146, 139, 138, 148, 145, 139, 134, 140, 150, 138, 128, 136, 145, 144, 148, 130, 133, 141, 142, 142, 139, 141, 148, 129, 136, 148, 131, 139, 138, 140, 144, 141, 152, 147, 136, 136, 133, 138, 136, 135, 142, 140, 138, 136, 149, 124, 134, 135, 143, 137, 133, 141, 140, 147, 140, 129, 143, 144, 128, 136, 140, 142, 133, 132, 130, 148, 137, 153, 139, 138, 132, 139, 134, 148, 154, 144, 137, 143, 140, 141, 141, 137, 139, 145, 140, 144, 153, 138, 143, 132, 138, 140, 141, 141, 145, 138, 137, 142, 138, 141, 138, 141, 143, 137, 143, 132, 137, 132, 137, 145, 124, 143, 131, 143, 137, 143, 131, 137, 135, 148, 130, 136, 131, 132, 132, 144, 138, 143, 125, 137, 145, 153, 156, 133, 139, 132, 138, 130, 135, 136, 132, 142, 141, 133, 141, 154, 138, 138, 132, 145, 146, 147, 144, 137, 146, 139, 144, 137, 138, 144, 131, 131, 134, 138, 137, 137, 143, 138, 146, 140, 142, 135, 128, 143, 140, 145, 135, 139, 153, 142, 133, 128, 135, 146, 136, 140, 138, 139, 132, 134, 134, 132, 140, 128, 131, 142, 140, 134, 132, 144, 138, 142, 150, 136, 137, 147, 141, 142, 151, 145, 144, 138, 137, 136, 130, 133, 146, 150, 135, 136, 137, 131, 143, 146, 144, 140, 134, 145, 148, 144, 138, 147, 141, 127, 137, 142, 150, 133, 127, 137, 145, 137, 134, 139, 139, 128, 137, 138, 141, 140, 134, 136, 138, 131, 139, 132, 129, 137, 138, 144, 141, 143, 135, 139, 136, 145, 128, 143, 140, 131, 139, 136, 133, 129, 134, 143, 137, 135, 137, 137, 141, 144, 142, 138, 144, 133, 138, 124, 137, 143, 141, 131, 142, 146, 143, 145, 137, 145, 120, 136, 145, 140, 136, 135, 131, 141, 142, 145, 129, 149, 139, 137, 136, 135, 138, 147, 144, 137, 135, 134, 133, 147, 133, 139, 157, 149, 133, 150, 137, 136, 126, 148, 142, 138, 150, 139, 139, 154, 146, 131, 135, 138, 143, 144, 152, 129, 141, 141, 143, 137, 145, 151, 138, 149, 146, 131, 142, 136, 144, 154, 135, 141, 146, 133, 139, 140, 138, 132, 134, 148, 141, 141, 131, 130, 140, 128, 133, 146, 131, 143, 142, 135, 142, 139, 133, 133, 137, 141, 138, 138, 141, 135, 142, 135, 134, 143, 139, 145, 145, 137, 143, 144, 141, 129, 132, 133, 141, 139, 135, 136, 137, 136, 143, 128, 133, 140, 141, 156, 137, 145, 134, 134, 145, 140, 130, 141, 148, 126, 127, 143, 131, 136, 135, 148, 138, 143, 132, 129, 129, 133, 147, 135, 143, 138, 140, 138, 133, 135, 140, 140, 131, 133, 142, 131, 149, 133, 135, 146, 129, 137, 123, 133, 130, 133, 134, 145, 132, 140, 142, 135, 139, 136, 128, 149, 147, 145, 141, 151, 146, 131, 138, 147, 148, 143, 142, 140, 143, 139, 137, 144, 135, 140, 140, 137, 130, 131, 127, 131, 142, 140, 142, 135, 140, 135, 132, 136, 133, 143, 151, 133, 145, 135, 136, 134, 141, 134, 142, 133, 136, 138, 140, 136, 146, 139, 144, 132, 131, 130, 141, 135, 140, 131, 153, 139, 144, 145, 147, 129, 143, 139, 140, 139, 136, 137, 149, 139, 141, 136, 141, 152, 145, 135, 132, 141, 133, 142, 156, 134, 139, 141, 140, 131, 141, 141, 141, 139, 141, 148, 136, 134, 144, 135, 138, 132, 151, 143, 147, 133, 139, 142, 135, 131, 138, 133, 137, 140, 129, 134, 137, 141, 130, 147, 130, 136, 128, 139, 145, 136, 138, 141, 134, 146, 135, 142, 136, 137, 139, 139, 140, 136, 134, 144, 136, 129, 133, 135, 147, 139, 146, 135, 131, 139, 130, 141, 141, 144, 137, 136, 145, 136, 138, 131, 145, 137, 141, 138, 140, 138, 135, 145, 152, 144, 134, 134, 139, 140, 139, 149, 137, 146, 137, 136, 138, 139, 130, 140, 145, 135, 141, 143, 139, 146, 138, 124, 135, 143, 136, 142, 147, 138, 138, 143, 140, 137, 137, 140, 131, 132, 133, 135, 139, 138, 134, 132, 136, 140, 136, 141, 141, 142, 136, 130, 136, 132, 139, 142, 134, 147, 136, 146, 136, 140, 154, 146, 144, 140, 141, 131, 141, 136, 139, 144, 145, 139, 144, 133, 144, 140, 137, 134, 141, 140, 137, 142, 137, 133, 139, 124, 137, 137, 139, 140, 137, 143, 135, 140, 140, 135, 135, 138, 144, 140, 138, 143, 146, 143, 137, 134, 133, 131, 141, 132, 128, 157, 136, 139, 137, 141, 136, 140, 136, 135, 140, 145, 150, 128, 132, 136, 146, 131, 135, 127, 143, 132, 140, 137, 143, 134, 142, 142, 149, 137, 130, 144, 134, 141, 149, 135, 138, 146, 135, 150, 132, 133, 142, 141, 135, 136, 149, 134, 132, 136, 140, 138, 132, 134, 133, 143, 138, 142, 141, 138, 140, 143, 142, 140, 139, 137, 132, 144, 137, 139, 138, 144, 141, 132, 143, 141, 136, 134, 134, 130, 140, 138, 150, 140, 139, 141, 136, 137, 124, 134, 136, 124, 134, 140, 147, 151, 140, 138, 140, 128, 146, 142, 138, 145, 146, 136, 143, 142, 136, 130, 141, 130, 140, 140, 137, 143, 142, 142, 144, 150, 144, 137, 143, 137, 139, 134, 146, 136, 144, 130, 141, 136, 131, 148, 132, 143, 137, 141, 146, 142, 143, 137, 150, 139, 143, 140, 134, 137, 137, 148, 142, 138, 137, 151, 138, 137, 139, 134, 127, 140, 136, 136, 146, 144, 134, 134, 159, 136, 153, 139, 143, 137, 143, 142, 145, 136, 139, 135, 124, 138, 133, 130, 143, 136, 140, 139, 139, 141, 139, 144, 134, 139, 133, 135, 141, 143, 143, 137, 138, 144, 138, 145, 149, 137, 136, 143, 137, 135, 137, 140, 141, 135, 142, 141, 144, 131, 137, 142, 137, 142, 141, 138, 138, 143, 142, 143, 150, 135, 151, 144, 140, 134, 136, 141, 137, 146, 133, 141, 137, 136, 132, 148, 138, 133, 149, 132, 139, 136, 145, 136, 139, 129, 131, 126, 126, 141, 145, 146, 142, 143, 136, 129, 129, 123, 133, 154, 140, 137, 142, 142, 137, 135, 122, 144, 143, 142, 141, 145, 148, 140, 143, 139, 146, 137, 145, 136, 136, 148, 125, 142, 146, 147, 129, 132, 131, 138, 142, 134, 141, 148, 135, 145, 153, 146, 123, 132, 136, 131, 138, 150, 134, 143, 127, 141, 139, 138, 143, 134, 140, 137, 145, 126, 136, 141, 137, 134, 135, 125, 136, 137, 130, 138, 135, 136, 136, 127, 143, 140, 134, 142, 135, 138, 138, 123, 132, 140, 133, 126, 139, 142, 134, 140, 131, 133, 133, 134, 144, 160, 145, 135, 147, 138, 148, 136, 144, 145, 139, 138, 144, 148, 147, 140, 136, 135, 132, 135, 135, 140, 140, 149, 127, 121, 132, 135, 139, 139, 140, 138, 146, 140, 142, 139, 131, 140, 134, 146, 141, 138, 132, 121, 134, 136, 144, 136, 135, 141, 142, 136, 143, 135, 141, 142, 152, 138, 145, 146, 136, 143, 147, 142, 114, 135, 131, 148, 139, 150, 143, 124, 144, 131, 137, 138, 127, 134, 133, 135, 132, 127, 144, 144, 144, 135, 148, 141, 128, 132, 143, 145, 136, 134, 142, 147, 148, 135, 142, 128, 126, 138, 141, 144, 139, 137, 139, 148, 134, 144, 133, 128, 134, 124, 147, 137, 138, 147, 140, 136, 139, 139, 133, 132, 140, 137, 140, 133, 142, 140, 146, 145, 151, 139, 130, 145, 142, 140, 132, 134, 132, 138, 125, 136, 131, 138, 142, 133, 143, 134, 126, 138, 141, 130, 139, 140, 133, 142, 138, 138, 140, 136, 130, 136, 143, 132, 144, 146, 137, 143, 153, 133, 135, 139, 145, 150, 141, 138, 139, 141, 143, 137, 142, 130, 133, 134, 129, 148, 127, 146, 137, 134, 150, 140, 140, 133, 152, 140, 137, 143, 135, 147, 140, 144, 143, 135, 138, 136, 134, 138, 132, 136, 143, 139, 133, 142, 135, 136, 139, 140, 128, 144, 133, 135, 139, 136, 130, 149, 145, 141, 132, 142, 149, 137, 143, 140, 147, 144, 149, 153, 132, 133, 133, 142, 133, 146, 139, 133, 149, 141, 140, 135, 135, 134, 145, 137, 137, 141, 141, 133, 137, 139, 135, 135, 135, 154, 139, 142, 135, 144, 138, 143, 147, 145, 141, 138, 132, 144, 128, 139, 144, 136, 134, 141, 137, 139, 143, 133, 138, 140, 131, 133, 139, 142, 141, 137, 130, 136, 132, 137, 142, 138, 134, 133, 148, 151, 139, 136, 152, 134, 130, 136, 136, 136, 138, 139, 129, 135, 141, 153, 145, 149, 137, 137, 148, 143, 143, 138, 134, 128, 139, 134, 151, 140, 148, 151, 142, 144, 147, 138, 142, 132, 137, 137, 138, 135, 144, 138, 145, 128, 149, 148, 132, 131, 144, 140, 138, 135, 136, 143, 143, 131, 147, 133, 138, 142, 146, 150, 142, 134, 149, 131, 143, 137, 137, 140, 149, 139, 133, 139, 145, 131, 137, 144, 138, 126, 144, 138, 140, 139, 147, 145, 137, 139, 139, 141, 140, 140, 139, 145, 139, 142, 143, 144, 147, 139, 141, 138, 148, 138, 134, 127, 132, 143, 143, 137, 129, 144, 136, 137, 141, 134, 148, 139, 148, 142, 151, 145, 140, 133, 139, 146, 136, 144, 139, 139, 137, 135, 142, 138, 147, 149, 140, 137, 133, 148, 140, 136, 147, 135, 140, 140, 135, 129, 125, 140, 140, 141, 144, 139, 140, 143, 130, 139, 136, 143, 143, 147, 133, 141, 130, 131, 138, 144, 142, 144, 144, 138, 136, 141, 149, 128, 132, 134, 138, 137, 135, 139, 139, 137, 143, 131, 137, 142, 138, 131, 137, 125, 149, 132, 136, 139, 133, 142, 138, 138, 132, 140, 155, 141, 137, 139, 140, 138, 139, 137, 139, 139, 136, 136, 141, 143, 141, 142, 138, 142, 135, 135, 140, 139, 140, 132, 144, 146, 149, 136, 137, 144, 130, 134, 138, 134, 129, 137, 134, 138, 139, 144, 135, 142, 145, 136, 150, 139, 138, 141, 140, 139, 129, 143, 138, 138, 135, 133, 137, 130, 137, 137, 140, 145, 132, 143, 136, 135, 127, 129, 130, 134, 138, 140, 134, 142, 135, 131, 144, 142, 146, 135, 138, 142, 146, 141, 131, 147, 141, 137, 135, 144, 134, 133, 135, 144, 142, 145, 136, 134, 141, 141, 146, 137, 137, 139, 131, 136, 137, 149, 138, 140, 151, 149, 142, 134, 139, 140, 137, 129, 138, 146, 146, 137, 132, 136, 135, 129, 137, 131, 138, 139, 144, 138, 135, 137, 135, 143, 132, 133, 139, 142, 140, 144, 146, 143, 138, 135, 143, 138, 137, 145, 132, 149, 147, 139, 135, 146, 140, 138, 143, 152, 137, 134, 132, 139, 138, 138, 131, 138, 142, 140, 138, 138, 141, 135, 144, 148, 137, 138, 147, 137, 134, 135, 139, 142, 140, 139, 141, 141, 136, 138, 126, 131, 134, 139, 141, 133, 134, 140, 141, 146, 136, 146, 137, 142, 136, 136, 136, 140, 139, 141, 143, 141, 140, 134, 132, 148, 141, 130, 138, 140, 130, 150, 133, 141, 144, 152, 143, 142, 136, 132, 147, 141, 138, 142, 134, 136, 148, 141, 142, 128, 137, 143, 138, 138, 149, 141, 140, 138, 130, 135, 135, 152, 142, 138, 139, 133, 146, 139, 145, 132, 139, 144, 133, 136, 128, 140, 139, 145, 143, 140, 142, 139, 141, 140, 138, 135, 131, 147, 130, 147, 135, 146, 135, 140, 139, 142, 139, 129, 136, 141, 144, 141, 150, 141, 137, 133, 137, 135, 135, 135, 138, 132, 138, 137, 139, 137, 140, 134, 139, 132, 135, 137, 139, 139, 144, 132, 139, 134, 142, 136, 138, 137, 134, 138, 131, 142, 137, 141, 140, 138, 148, 139, 139, 134, 141, 136, 143, 137, 132, 141, 135, 145, 143, 139, 137, 139, 130, 146, 137, 134, 144, 136, 129, 137, 143, 139, 138, 131, 146, 136, 137, 139, 131, 143, 145, 137, 128, 144, 132, 138, 135, 148, 136, 131, 133, 142, 141, 141, 131, 133, 137, 137, 137, 143, 136, 144, 145, 143, 137, 132, 135, 139, 132, 136, 140, 136, 136, 136, 143, 137, 136, 135, 141, 133, 136, 148, 141, 139, 145, 140, 131, 146, 143, 145, 127, 131, 140, 132, 140, 139, 143, 138, 134, 149, 141, 153, 138, 132, 136, 131, 146, 141, 143, 134, 136, 138, 142, 135, 135, 129, 131, 137, 137, 146, 139, 140, 137, 150, 141, 132, 143, 133, 142, 143, 136, 135, 137, 136, 145, 140, 146, 143, 139, 147, 140, 141, 138, 136, 138, 147, 140, 137, 143, 131, 145, 140, 136, 138, 137, 133, 140, 142, 139, 140, 139, 144, 144, 139, 135, 135, 131, 141, 146, 144, 137, 137, 133, 136, 138, 142, 134, 144, 139, 138, 140, 136, 139, 137, 145, 134, 136, 143, 139, 139, 138, 142, 140, 137, 132, 141, 139, 139, 137, 133, 139, 139, 143, 142, 138, 134, 140, 137, 136, 143, 147, 137, 144, 141, 142, 142, 141, 143, 139, 128, 141, 138, 137, 141, 133, 139, 143, 144, 131, 138, 140, 140, 137, 138, 146, 142, 134, 144, 133, 132, 136, 138, 142, 135, 140, 131, 132, 139, 142, 137, 143, 142, 142, 135, 141, 146, 150, 137, 142, 132, 143, 142, 140, 141, 145, 136, 135, 141, 139, 136, 140, 142, 147, 143, 140, 138, 135, 138, 137, 132, 138, 142, 142, 140, 138, 140, 140, 144, 134, 133, 140, 139, 138, 133, 135, 141, 137, 145, 133, 140, 137, 142, 139, 139, 140, 135, 133, 131, 129, 132, 148, 137, 135, 133, 144, 135, 138, 141, 140, 146, 144, 142, 140, 141, 138, 136, 137, 144, 142, 139, 133, 135, 138, 136, 136, 143, 139, 135, 136, 141, 138, 142, 129, 136, 140, 142, 134, 136, 135, 135, 141, 138, 141, 139, 130, 137, 130, 139, 145, 147, 137, 135, 142, 133, 131, 142, 140, 140, 134, 135, 139, 139, 140, 140, 135, 137, 141, 146, 141, 140, 134, 138, 138, 142, 137, 140, 147, 129, 148, 138, 142, 139, 138, 141, 132, 145, 138, 139, 140, 137, 145, 136, 138, 142, 141, 153, 148, 141, 133, 137, 140, 136, 135, 135, 136, 134, 137, 139, 138, 131, 142, 138, 142, 143, 135, 139, 138, 135, 138, 145, 144, 141, 145, 146, 139, 143, 147, 138, 146, 135, 139, 138, 142, 129, 144, 139, 139, 140, 141, 145, 140, 136, 136, 146, 142, 132, 129, 140, 140, 136, 137, 144, 149, 142, 141, 143, 137, 147, 139, 133, 137, 136, 141, 137, 143, 139, 130, 139, 139, 150, 143, 139, 137, 142, 139, 142, 141, 140, 137, 140, 142, 132, 129, 139, 135, 131, 147, 135, 135, 136, 140, 139, 135, 143, 141, 135, 137, 141, 135, 139, 146, 137, 141, 136, 141, 135, 133, 144, 137, 133, 133, 146, 133, 139, 142, 149, 132, 135, 141, 141, 142, 141, 143, 142, 138, 138, 139, 141, 137, 137, 141, 141, 135, 142, 136, 146, 140, 143, 136, 137, 142, 141, 133, 136, 146, 143, 135, 135, 136, 140, 146, 136, 134, 135, 137, 139, 139, 144, 142, 140, 130, 147, 143, 139, 143, 139, 139, 146, 142, 132, 148, 141, 140, 142, 138, 148, 136, 150, 138, 140, 142, 139, 136, 135, 143, 146, 132, 138, 135, 137, 137, 140, 140, 138, 140, 141, 144, 138, 144, 141, 143, 141, 139, 139, 135, 138, 143, 149, 144, 135, 139, 135, 138, 142, 141, 147, 138, 134, 138, 149, 136, 139, 141, 142, 126, 141, 155, 138, 146, 137, 143, 132, 139, 139, 135, 129, 137, 138, 140, 139, 135, 146, 142, 131, 135, 144, 144, 134, 130, 133, 138, 135, 137, 142, 152, 132, 137, 150, 138, 132, 146, 132, 143, 137, 132, 144, 133, 134, 144, 146, 136, 146, 132, 132, 144, 132, 149, 144, 138, 135, 148, 150, 128, 136, 140, 127, 128, 139, 137, 143, 134, 140, 139, 135, 142, 129, 143, 140, 145, 131, 143, 137, 130, 139, 141, 135, 139, 140, 138, 144, 138, 144, 144, 145, 137, 144, 139, 140, 137, 136, 139, 138, 143, 138, 139, 144, 136, 130, 150, 144, 135, 142, 133, 134, 139, 136, 138, 143, 148, 135, 142, 136, 143, 137, 142, 134, 139, 126, 131, 141, 142, 126, 134, 131, 141, 140, 139, 131, 132, 138, 140, 142, 139, 128, 140, 144, 143, 133, 137, 136, 133, 139, 135, 149, 140, 142, 132, 132, 131, 138, 132, 132, 130, 135, 129, 141, 138, 145, 137, 134, 136, 136, 135, 140, 138, 133, 139, 141, 141, 133, 151, 139, 131, 131, 145, 134, 150, 133, 137, 137, 130, 137, 141, 144, 139, 139, 130, 150, 131, 139, 136, 142, 142, 140, 135, 139, 139, 135, 138, 146, 132, 133, 151, 136, 148, 142, 138, 137, 143, 143, 131, 143, 141, 132, 140, 145, 136, 136, 132, 134, 138, 143, 135, 142, 131, 134, 139, 131, 141, 141, 147, 135, 148, 136, 131, 138, 139, 137, 140, 134, 142, 138, 146, 128, 145, 140, 131, 136, 141, 137, 143, 146, 140, 141, 137, 143, 134, 139, 146, 139, 135, 140, 144, 139, 151, 142, 149, 131, 142, 139, 141, 145, 140, 131, 134, 136, 143, 140, 134, 133, 145, 138, 145, 134, 141, 138, 135, 144, 138, 139, 153, 145, 139, 133, 135, 130, 128, 135, 137, 139, 140, 145, 131, 144, 136, 140, 132, 157, 144, 143, 134, 131, 140, 140, 144, 134, 133, 137, 143, 140, 138, 149, 141, 135, 130, 142, 144, 138, 138, 142, 140, 145, 139, 141, 147, 145, 137, 142, 136, 140, 135, 137, 134, 137, 135, 134, 146, 134, 136, 146, 139, 142, 132, 141, 141, 134, 138, 128, 138, 140, 136, 150, 131, 135, 137, 139, 142, 132, 141, 135, 147, 139, 140, 145, 138, 145, 135, 149, 142, 132, 140, 132, 146, 142, 130, 133, 130, 134, 142, 139, 146, 142, 142, 135, 132, 132, 139, 139, 135, 143, 138, 140, 139, 150, 145, 139, 128, 144, 140, 138, 135, 145, 133, 141, 136, 144, 144, 138, 130, 138, 138, 139, 145, 134, 149, 137, 130, 134, 141, 141, 135, 123, 133, 141, 143, 150, 136, 135, 150, 139, 139, 135, 140, 138, 137, 133, 145, 138, 132, 136, 139, 142, 136, 146, 134, 147, 132, 136, 149, 140, 138, 139, 139, 144, 130, 141, 143, 142, 135, 135, 133, 138, 135, 138, 141, 133, 144, 137, 139, 135, 145, 142, 139, 134, 134, 144, 135, 142, 128, 145, 129, 150, 138, 142, 137, 142, 140, 138, 141, 139, 138, 143, 142, 132, 136, 132, 148, 141, 142, 141, 142, 136, 142, 145, 134, 141, 139, 143, 143, 140, 139, 145, 131, 142, 139, 136, 139, 139, 138, 144, 135, 141, 137, 146, 137, 134, 143, 143, 136, 138, 141, 139, 140, 143, 140, 141, 146, 141, 135, 138, 142, 140, 139, 143, 142, 146, 137, 137, 139, 142, 145, 136, 136, 141, 144, 141, 141, 140, 139, 132, 132, 138, 137, 142, 138, 137, 141, 144, 138, 146, 135, 140, 142, 135, 145, 143, 138, 142, 133, 145, 141, 132, 136, 135, 149, 136, 147, 135, 139, 145, 134, 133, 134, 139, 135, 137, 137, 134, 146, 138, 142, 143, 133, 142, 143, 141, 143, 138, 134, 136, 148, 144, 142, 141, 145, 138, 139, 137, 138, 142, 140, 142, 135, 142, 135, 136, 140, 141, 136, 136, 143, 144, 142, 135, 145, 135, 140, 139, 131, 146, 139, 140, 138, 140, 140, 142, 139, 139, 137, 143, 146, 138, 137, 139, 138, 138, 142, 137, 152, 141, 139, 139, 148, 137, 144, 142, 147, 138, 138, 148, 139, 144, 148, 142, 138, 139, 133, 137, 141, 135, 140, 142, 147, 137, 144, 135, 127, 140, 148, 138, 143, 142, 137, 136, 139, 138, 139, 134, 137, 141, 140, 145, 137, 135, 142, 150, 138, 139, 139, 152, 150, 132, 145, 138, 152, 129, 142, 143, 139, 139, 136, 137, 142, 141, 141, 135, 147, 129, 135, 138, 138, 147, 140, 142, 139, 144, 140, 139, 136, 144, 137, 138, 137, 139, 136, 144, 138, 139, 143, 140, 148, 136, 142, 134, 149, 141, 136, 143, 143, 148, 139, 134, 143, 138, 141, 144, 136, 138, 137, 139, 152, 136, 141, 146, 137, 147, 144, 144, 139, 143, 142, 140, 144, 145, 142, 144, 143, 142, 128, 131, 144, 139, 135, 134, 149, 141, 140, 137, 144, 139, 141, 136, 137, 143, 145, 143, 141, 138, 142, 141, 145, 139, 132, 132, 133, 138, 142, 149, 147, 141, 135, 142, 139, 138, 131, 140, 134, 139, 135, 132, 142, 135, 137, 145, 143, 137, 141, 148, 138, 143, 136, 140, 138, 147, 143, 133, 143, 137, 141, 137, 141, 139, 141, 137, 135, 143, 143, 141, 140, 134, 146, 139, 142, 148, 133, 135, 141, 139, 134, 141, 136, 136, 144, 137, 137, 137, 141, 145, 134, 137, 129, 135, 139, 135, 148, 137, 146, 136, 137, 138, 141, 138, 137, 143, 136, 142, 144, 138, 134, 139, 137, 144, 131, 139, 136, 140, 136, 141, 137, 139, 137, 141, 136, 138, 141, 144, 140, 143, 146, 140, 136, 142, 135, 132, 137, 135, 142, 136, 142, 142, 150, 138, 137, 144, 128, 129, 138, 140, 133, 146, 143, 135, 145, 139, 142, 146, 140, 145, 140, 133, 144, 134, 139, 141, 145, 146, 137, 135, 135, 142, 135, 149, 141, 145, 143, 141, 137, 144, 139, 139, 140, 144, 136, 139, 146, 144, 143, 149, 135, 141, 142, 137, 139, 139, 133, 142, 144, 132, 141, 138, 132, 144, 146, 138, 131, 137, 140, 149, 128, 134, 132, 137, 135, 124, 134, 132, 135, 142, 136, 144, 138, 142, 142, 136, 135, 135, 138, 143, 132, 136, 134, 135, 146, 143, 129, 134, 132, 142, 144, 147, 132, 144, 135, 150, 145, 141, 148, 136, 143, 143, 140, 128, 151, 134, 149, 145, 130, 143, 143, 129, 144, 132, 133, 142, 127, 122, 140, 130, 137, 135, 143, 144, 131, 144, 130, 143, 133, 135, 131, 144, 135, 139, 143, 130, 144, 150, 136, 141, 144, 141, 140, 137, 136, 133, 126, 137, 147, 148, 138, 141, 127, 151, 145, 134, 143, 144, 130, 135, 137, 129, 135, 130, 133, 139, 139, 139, 127, 151, 137, 127, 134, 139, 135, 130, 138, 142, 146, 137, 147, 133, 139, 134, 129, 134, 144, 143, 125, 134, 142, 140, 124, 137, 140, 131, 136, 137, 140, 134, 151, 139, 129, 145, 134, 153, 153, 142, 146, 149, 136, 129, 132, 126, 133, 140, 139, 135, 124, 135, 140, 141, 148, 143, 144, 139, 142, 143, 133, 138, 147, 141, 130, 134, 142, 143, 139, 138, 144, 135, 153, 141, 137, 143, 142, 132, 132, 138, 138, 141, 132, 135, 150, 129, 133, 148, 143, 135, 145, 133, 139, 147, 138, 140, 136, 143, 151, 138, 141, 139, 135, 137, 135, 135, 155, 133, 146, 131, 134, 129, 133, 135, 145, 137, 146, 144, 140, 145, 137, 132, 150, 138, 133, 128, 142, 139, 140, 144, 135, 133, 148, 147, 136, 136, 133, 139, 152, 145, 137, 140, 140, 127, 140, 142, 137, 141, 138, 134, 138, 158, 142, 140, 133, 141, 126, 141, 133, 141, 133, 135, 139, 147, 141, 140, 131, 128, 135, 150, 146, 144, 129, 145, 140, 140, 129, 137, 138, 147, 147, 126, 138, 157, 135, 142, 141, 136, 142, 139, 142, 147, 136, 135, 130, 131, 144, 134, 149, 145, 137, 139, 140, 146, 146, 143, 143, 142, 144, 145, 151, 136, 131, 142, 140, 137, 156, 136, 123, 141, 154, 141, 142, 135, 137, 152, 133, 152, 141, 141, 154, 142, 143, 126, 143, 143, 142, 136, 132, 139, 137, 140, 135, 151, 139, 143, 134, 136, 146, 146, 139, 150, 149, 160, 144, 141, 141, 127, 145, 141, 127, 149, 149, 140, 141, 145, 133, 132, 130, 140, 137, 142, 141, 127, 131, 138, 142, 140, 140, 131, 139, 139, 135, 149, 142, 123, 135, 149, 137, 140, 139, 132, 133, 133, 138, 134, 133, 133, 131, 123, 136, 136, 134, 136, 141, 141, 134, 144, 142, 135, 140, 130, 148, 135, 137, 133, 137, 129, 143, 137, 144, 134, 132, 141, 149, 141, 141, 143, 124, 132, 133, 133, 135, 147, 146, 137, 130, 133, 156, 135, 145, 151, 152, 132, 137, 140, 139, 144, 142, 139, 138, 136, 142, 130, 145, 136, 139, 135, 123, 139, 133, 144, 132, 139, 137, 147, 134, 134, 133, 142, 124, 118, 133, 144, 137, 140, 129, 146, 141, 146, 136, 140, 132, 139, 132, 140, 135, 141, 140, 139, 142, 131, 135, 134, 136, 134, 132, 138, 135, 136, 139, 132, 139, 143, 150, 146, 135, 126, 138, 138, 150, 138, 139, 142, 151, 139, 137, 138, 143, 133, 144, 141, 145, 141, 138, 135, 140, 136, 140, 144, 130, 130, 139, 139, 139, 143, 143, 139, 137, 144, 130, 134, 134, 136, 138, 142, 146, 145, 145, 136, 137, 141, 136, 140, 145, 138, 145, 140, 141, 142, 141, 143, 131, 138, 138, 138, 138, 135, 138, 142, 129, 149, 127, 141, 135, 137, 139, 131, 134, 137, 132, 139, 137, 136, 138, 138, 137, 141, 133, 124, 143, 141, 130, 137, 141, 133, 138, 141, 136, 141, 148, 141, 138, 142, 135, 129, 136, 143, 137, 137, 137, 137, 145, 143, 141, 136, 140, 142, 141, 146, 139, 138, 140, 135, 145, 132, 141, 135, 142, 132, 144, 136, 141, 136, 147, 131, 142, 152, 136, 132, 134, 136, 135, 149, 125, 140, 133, 137, 141, 143, 143, 143, 139, 139, 144, 140, 140, 137, 135, 140, 140, 131, 140, 145, 138, 138, 138, 146, 135, 138, 139, 139, 140, 144, 139, 144, 144, 136, 136, 131, 145, 141, 139, 139, 141, 142, 137, 141, 147, 142, 136, 135, 135, 134, 132, 140, 140, 144, 135, 142, 141, 139, 149, 146, 141, 138, 136, 139, 133, 148, 142, 139, 137, 152, 129, 138, 138, 140, 137, 136, 140, 137, 142, 140, 126, 134, 135, 138, 138, 137, 135, 138, 142, 153, 140, 147, 135, 137, 141, 145, 135, 139, 140, 136, 140, 133, 141, 135, 140, 136, 139, 141, 135, 144, 133, 139, 140, 137, 140, 127, 137, 143, 150, 144, 138, 136, 130, 143, 138, 141, 142, 135, 143, 143, 150, 145, 135, 144, 147, 137, 138, 153, 134, 142, 146, 133, 130, 131, 140, 127, 147, 132, 145, 131, 137, 138, 138, 137, 130, 145, 139, 135, 136, 149, 138, 136, 136, 132, 139, 137, 137, 143, 133, 140, 134, 141, 145, 153, 152, 141, 130, 141, 138, 138, 145, 139, 144, 145, 139, 150, 127, 137, 139, 145, 133, 144, 142, 129, 138, 137, 144, 137, 139, 136, 134, 133, 138, 152, 138, 135, 135, 134, 138, 132, 141, 131, 143, 145, 146, 137, 134, 143, 136, 141, 147, 141, 129, 140, 135, 142, 136, 140, 134, 138, 138, 138, 137, 144, 135, 143, 139, 140, 136, 147, 137, 132, 137, 139, 136, 139, 139, 140, 140, 141, 140, 150, 134, 146, 141, 140, 138, 132, 137, 137, 136, 134, 134, 140, 138, 135, 140, 136, 136, 146, 133, 137, 138, 141, 138, 142, 135, 137, 135, 143, 132, 143, 132, 128, 148, 133, 133, 144, 143, 141, 123, 139, 140, 136, 143, 142, 139, 138, 147, 131, 139, 138, 133, 140, 141, 135, 154, 133, 139, 138, 144, 142, 133, 137, 135, 137, 138, 138, 135, 142, 144, 149, 143, 141, 142, 138, 138, 131, 129, 143, 144, 142, 136, 143, 141, 134, 136, 142, 142, 143, 133, 137, 139, 137, 136, 135, 146, 137, 142, 139, 143, 140, 137, 133, 139, 141, 140, 139, 143, 137, 131, 139, 137, 144, 140, 138, 134, 133, 139, 138, 146, 139, 136, 142, 138, 147, 138, 138, 134, 132, 144, 138, 132, 141, 145, 135, 143, 134, 132, 136, 141, 138, 139, 131, 133, 137, 143, 143, 134, 143, 145, 141, 135, 148, 140, 132, 141, 131, 137, 141, 149, 151, 141, 145, 139, 138, 143, 133, 137, 139, 144, 134, 139, 141, 144, 137, 139, 137, 132, 137, 145, 129, 132, 137, 136, 138, 139, 138, 133, 140, 133, 131, 139, 142, 143, 144, 136, 145, 152, 136, 136, 126, 134, 133, 131, 139, 133, 140, 134, 137, 139, 139, 143, 143, 144, 130, 137, 132, 140, 133, 135, 137, 139, 134, 140, 132, 152, 127, 140, 144, 144, 142, 132, 132, 131, 136, 138, 142, 137, 133, 153, 136, 136, 130, 146, 142, 151, 148, 138, 133, 136, 140, 134, 148, 132, 138, 136, 141, 140, 145, 133, 134, 136, 146, 120, 135, 134, 139, 143, 137, 127, 153, 141, 135, 145, 148, 136, 141, 158, 137, 143, 141, 146, 142, 145, 140, 140, 131, 133, 140, 136, 140, 146, 150, 140, 138, 138, 134, 143, 138, 132, 151, 131, 145, 135, 141, 137, 136, 161, 146, 141, 128, 134, 136, 136, 129, 127, 136, 132, 138, 143, 131, 137, 130, 143, 152, 136, 135, 138, 135, 142, 135, 142, 130, 128, 136, 135, 142, 144, 145, 143, 138, 146, 139, 140, 135, 135, 149, 139, 144, 143, 130, 139, 134, 137, 133, 129, 137, 140, 128, 139, 140, 135, 131, 146, 135, 141, 143, 136, 143, 145, 143, 130, 141, 144, 136, 137, 139, 142, 142, 133, 134, 138, 134, 140, 131, 137, 136, 147, 144, 138, 148, 133, 135, 135, 132, 133, 137, 134, 147, 139, 138, 136, 136, 142, 144, 143, 141, 146, 140, 140, 136, 137, 136, 129, 139, 130, 136, 135, 129, 142, 134, 152, 139, 129, 135, 142, 133, 142, 136, 139, 138, 152, 134, 135, 149, 135, 134, 137, 141, 138, 143, 146, 142, 142, 142, 133, 138, 147, 149, 129, 136, 137, 135, 144, 131, 148, 136, 139, 138, 143, 146, 141, 137, 133, 135, 123, 141, 144, 143, 123, 148, 142, 128, 132, 136, 134, 136, 133, 144, 148, 136, 139, 138, 148, 136, 136, 136, 141, 139, 128, 156, 133, 137, 141, 145, 135, 139, 143, 123, 132, 135, 138, 137, 128, 141, 133, 138, 149, 146, 143, 140, 139, 127, 129, 138, 142, 136, 131, 143, 132, 137, 143, 141, 142, 137, 140, 143, 126, 141, 148, 138, 152, 147, 133, 151, 116, 129, 144, 137, 138, 129, 139, 134, 131, 145, 147, 145, 149, 147, 128, 140, 139, 142, 139, 141, 138, 143, 139, 144, 144, 149, 121, 136, 134, 136, 139, 143, 135, 135, 154, 146, 136, 143, 136, 139, 151, 141, 142, 137, 139, 133, 139, 133, 140, 137, 139, 134, 136, 155, 133, 143, 139, 144, 139, 148, 145, 142, 133, 135, 141, 150, 143, 141, 133, 134, 139, 149, 145, 134, 138, 142, 140, 146, 141, 142, 146, 136, 146, 143, 135, 143, 144, 136, 140, 135, 138, 123, 141, 147, 144, 150, 126, 149, 141, 144, 145, 137, 131, 142, 135, 137, 148, 143, 138, 144, 134, 135, 140, 134, 140, 140, 137, 137, 130, 141, 134, 131, 131, 142, 136, 147, 145, 145, 137, 143, 140, 163, 135, 137, 133, 134, 140, 144, 136, 155, 132, 139, 132, 144, 138, 139, 137, 134, 134, 143, 144, 144, 139, 137, 133, 136, 143, 137, 140, 138, 131, 140, 141, 140, 145, 155, 132, 139, 145, 141, 136, 145, 139, 142, 135, 136, 150, 136, 135, 135, 138, 142, 130, 137, 139, 141, 134, 139, 133, 139, 125, 142, 138, 132, 147, 143, 138, 140, 129, 143, 137, 136, 136, 142, 146, 128, 137, 146, 138, 142, 124, 129, 129, 129, 139, 143, 133, 139, 143, 130, 136, 149, 131, 132, 144, 125, 140, 137, 146, 148, 138, 138, 138, 146, 141, 141, 136, 134, 138, 131, 135, 139, 130, 139, 134, 133, 146, 148, 145, 144, 144, 136, 137, 133, 152, 128, 134, 136, 145, 143, 136, 147, 131, 127, 130, 146, 140, 135, 136, 132, 125, 136, 146, 145, 128, 144, 143, 145, 150, 132, 140, 152, 133, 147, 141, 135, 143, 126, 130, 144, 142, 132, 143, 142, 143, 155, 139, 138, 146, 133, 136, 129, 124, 144, 145, 150, 131, 142, 145, 141, 138, 137, 134, 146, 138, 139, 133, 142, 137, 131, 142, 140, 141, 127, 147, 131, 147, 134, 139, 139, 141, 141, 129, 150, 136, 131, 132, 136, 139, 140, 141, 138, 143, 139, 139, 144, 136, 140, 147, 125, 133, 138, 137, 138, 140, 144, 131, 140, 139, 129, 130, 135, 131, 139, 133, 140, 150, 142, 133, 143, 137, 129, 139, 135, 136, 140, 142, 141, 131, 129, 137, 135, 136, 149, 139, 141, 139, 140, 143, 139, 131, 129, 139, 150, 128, 142, 134, 144, 134, 149, 137, 142, 143, 140, 146, 130, 146, 136, 145, 150, 135, 142, 145, 140, 144, 142, 129, 132, 124, 130, 137, 155, 150, 136, 138, 137, 138, 143, 140, 136, 141, 136, 134, 145, 134, 142, 150, 152, 142, 131, 147, 127, 135, 145, 140, 132, 151, 140, 135, 137, 138, 140, 142, 130, 137, 137, 134, 144, 144, 146, 132, 151, 140, 134, 135, 132, 131, 152, 139, 138, 126, 141, 144, 128, 143, 141, 143, 140, 131, 140, 128, 137, 140, 139, 138, 131, 135, 131, 135, 139, 140, 138, 144, 137, 140, 141, 136, 132, 152, 138, 137, 139, 134, 132, 141, 134, 136, 144, 155, 135, 139, 147, 134, 138, 149, 132, 154, 132, 132, 155, 136, 142, 138, 136, 137, 142, 138, 140, 140, 137, 132, 135, 135, 137, 142, 139, 136, 133, 138, 137, 138, 148, 132, 138, 133, 135, 145, 148, 149, 139, 133, 136, 156, 132, 129, 135, 151, 140, 136, 147, 134, 133, 132, 127, 138, 138, 145, 137, 136, 146, 139, 138, 144, 140, 136, 141, 141, 151, 137, 143, 140, 137, 130, 131, 139, 152, 133, 133, 144, 129, 147, 139, 140, 142, 136, 135, 139, 132, 141, 147, 142, 141, 134, 160, 143, 146, 131, 140, 152, 140, 145, 131, 137, 143, 149, 129, 134, 137, 142, 133, 140, 136, 134, 137, 146, 127, 145, 131, 141, 126, 152, 120, 150, 140, 142, 141, 138, 143, 142, 130, 148, 148, 134, 138, 145, 142, 125, 139, 146, 152, 139, 156, 133, 142, 142, 128, 147, 148, 143, 133, 141, 145, 144, 145, 134, 135, 144, 146, 143, 128, 140, 137, 139, 133, 146, 132, 141, 148, 143, 139, 136, 136, 137, 135, 142, 146, 135, 133, 135, 133, 148, 142, 144, 128, 137, 144, 148, 147, 141, 135, 143, 139, 153, 124, 134, 140, 136, 140, 137, 134, 148, 140, 137, 128, 139, 142, 141, 135, 133, 142, 142, 130, 140, 142, 148, 148, 126, 147, 133, 145, 141, 157, 140, 132, 147, 147, 133, 139, 145, 143, 141, 139, 138, 137, 151, 144, 152, 135, 148, 150, 135, 149, 137, 130, 142, 132, 137, 137, 140, 133, 139, 150, 161, 143, 146, 136, 143, 137, 144, 142, 131, 136, 141, 141, 138, 143, 153, 137, 146, 141, 129, 141, 144, 134, 142, 141, 137, 152, 134, 146, 134, 147, 152, 136, 145, 137, 128, 135, 133, 123, 141, 157, 140, 137, 132, 146, 134, 140, 142, 138, 138, 131, 129, 132, 144, 142, 142, 135, 137, 136, 139, 152, 136, 152, 143, 145, 133, 138, 144, 128, 141, 133, 143, 130, 139, 130, 141, 139, 153, 135, 150, 145, 156, 141, 139, 135, 141, 137, 135, 135, 135, 150, 141, 146, 130, 135, 140, 144, 146, 132, 132, 135, 138, 136, 139, 142, 158, 138, 138, 140, 143, 135, 137, 141, 142, 135, 146, 130, 145, 134, 127, 144, 131, 144, 135, 130, 138, 136, 144, 141, 137, 126, 143, 144, 148, 139, 138, 145, 137, 139, 134, 136, 136, 137, 134, 139, 138, 153, 137, 144, 133, 134, 144, 137, 135, 130, 140, 145, 130, 133, 140, 143, 145, 135, 145, 134, 143, 133, 146, 128, 146, 144, 147, 133, 137, 133, 141, 133, 129, 142, 146, 139, 142, 144, 139, 131, 132, 138, 143, 140, 143, 139, 135, 137, 137, 129, 150, 137, 136, 143, 142, 137, 137, 139, 137, 137, 128, 140, 145, 147, 132, 129, 135, 136, 141, 128, 140, 137, 139, 134, 134, 150, 139, 136, 135, 142, 135, 138, 129, 131, 147, 140, 138, 138, 144, 137, 136, 140, 127, 150, 145, 147, 142, 146, 124, 129, 133, 135, 142, 133, 140, 133, 133, 136, 144, 150, 134, 143, 149, 138, 140, 136, 135, 142, 146, 136, 130, 144, 135, 135, 134, 141, 134, 136, 135, 135, 147, 141, 139, 147, 137, 139, 126, 139, 137, 133, 148, 139, 134, 131, 133, 133, 141, 140, 137, 142, 141, 143, 146, 132, 142, 133, 146, 137, 148, 143, 144, 122, 138, 141, 136, 136, 141, 151, 147, 127, 131, 145, 138, 127, 152, 141, 141, 135, 139, 136, 146, 148, 132, 141, 139, 138, 135, 134, 133, 135, 152, 140, 134, 155, 139, 139, 135, 140, 140, 133, 144, 144, 142, 141, 132, 146, 143, 134, 132, 147, 127, 141, 143, 137, 140, 133, 138, 141, 141, 133, 137, 149, 134, 138, 139, 137, 145, 142, 134, 140, 139, 139, 139, 154, 135, 137, 136, 139, 137, 146, 134, 141, 147, 143, 138, 137, 140, 140, 128, 138, 138, 131, 138, 148, 146, 135, 143, 151, 140, 142, 146, 131, 131, 139, 137, 141, 134, 142, 141, 137, 137, 147, 138, 134, 139, 131, 143, 137, 139, 135, 130, 144, 140, 145, 140, 142, 141, 137, 140, 144, 141, 140, 137, 136, 148, 144, 137, 135, 144, 132, 146, 137, 135, 132, 141, 139, 145, 147, 153, 139, 133, 137, 127, 138, 137, 139, 138, 137, 136, 142, 136, 129, 140, 136, 143, 131, 144, 139, 140, 133, 136, 136, 142, 140, 142, 146, 138, 137, 140, 134, 137, 136, 138, 127, 142, 135, 146, 143, 142, 135, 146, 131, 134, 136, 141, 141, 136, 143, 147, 143, 140, 141, 137, 143, 143, 132, 145, 140, 143, 139, 139, 148, 136, 131, 141, 136, 138, 139, 137, 135, 133, 134, 138, 136, 138, 133, 138, 138, 131, 135, 127, 146, 142, 133, 141, 133, 134, 135, 140, 140, 136, 145, 137, 137, 146, 141, 135, 132, 143, 136, 139, 142, 135, 137, 143, 135, 138, 137, 129, 137, 141, 143, 142, 137, 134, 141, 139, 141, 132, 132, 137, 144, 137, 130, 141, 134, 142, 135, 133, 138, 137, 134, 140, 141, 138, 133, 134, 145, 143, 133, 148, 140, 134, 136, 141, 142, 144, 135, 133, 148, 131, 155, 137, 131, 141, 131, 136, 142, 143, 137, 133, 136, 140, 137, 142, 141, 136, 142, 145, 134, 127, 146, 137, 143, 131, 140, 142, 138, 133, 140, 153, 138, 142, 138, 153, 142, 134, 136, 135, 141, 137, 148, 137, 143, 141, 138, 134, 148, 136, 140, 142, 134, 133, 136, 137, 137, 138, 142, 145, 137, 143, 139, 136, 135, 138, 147, 135, 129, 147, 135, 141, 136, 124, 145, 139, 138, 148, 131, 140, 136, 134, 144, 135, 135, 152, 142, 134, 132, 137, 134, 134, 137, 141, 150, 138, 147, 144, 146, 146, 143, 146, 137, 142, 140, 133, 138, 136, 147, 143, 141, 133, 129, 146, 135, 134, 144, 143, 142, 134, 140, 143, 140, 135, 137, 139, 139, 142, 139, 143, 136, 136, 140, 145, 134, 137, 142, 130, 140, 136, 134, 138, 136, 140, 130, 140, 139, 136, 133, 134, 137, 136, 146, 140, 143, 134, 137, 137, 142, 145, 136, 137, 143, 149, 139, 134, 140, 135, 132, 134, 138, 144, 146, 145, 146, 135, 141, 141, 144, 131, 141, 138, 139, 137, 134, 136, 142, 144, 145, 148, 139, 136, 147, 138, 143, 142, 133, 143, 148, 137, 131, 139, 137, 153, 136, 133, 138, 140, 134, 148, 129, 142, 145, 136, 145, 142, 138, 141, 136, 142, 138, 148, 139, 139, 140, 138, 133, 125, 137, 143, 145, 144, 132, 139, 143, 133, 131, 140, 139, 140, 146, 138, 135, 139, 133, 142, 140, 142, 132, 133, 139, 138, 140, 144, 133, 137, 139, 139, 136, 132, 141, 143, 140, 140, 140, 130, 150, 154, 150, 127, 148, 139, 133, 149, 134, 141, 147, 132, 134, 133, 144, 135, 135, 149, 150, 145, 140, 150, 142, 136, 145, 148, 154, 146, 137, 129, 145, 143, 148, 147, 132, 138, 157, 142, 139, 136, 143, 117, 130, 138, 131, 141, 129, 127, 131, 141, 132, 141, 126, 130, 129, 140, 135, 138, 136, 134, 140, 134, 154, 132, 150, 139, 129, 135, 138, 134, 128, 148, 138, 137, 151, 138, 148, 124, 145, 134, 135, 139, 147, 142, 140, 137, 140, 145, 145, 144, 139, 133, 145, 127, 143, 137, 147, 154, 138, 143, 143, 131, 141, 147, 138, 144, 142, 151, 147, 144, 144, 133, 134, 141, 130, 133, 127, 139, 139, 125, 133, 137, 134, 145, 147, 137, 128, 145, 143, 133, 134, 151, 142, 149, 140, 148, 132, 144, 146, 136, 139, 141, 150, 143, 133, 139, 150, 137, 138, 131, 140, 143, 138, 135, 129, 136, 153, 148, 140, 151, 145, 150, 139, 137, 140, 147, 136, 135, 140, 141, 114, 134, 142, 140, 142, 134, 138, 125, 141, 136, 149, 150, 128, 159, 139, 130, 125, 139, 140, 133, 129, 142, 136, 146, 146, 142, 135, 155, 126, 139, 131, 140, 126, 138, 158, 148, 134, 134, 139, 137, 145, 143, 141, 142, 139, 138, 146, 136, 135, 142, 150, 136, 137, 138, 136, 138, 136, 134, 129, 141, 142, 129, 137, 126, 138, 134, 149, 155, 155, 133, 145, 151, 127, 134, 125, 145, 135, 136, 129, 147, 148, 132, 135, 154, 136, 141, 144, 132, 133, 140, 139, 138, 130, 139, 146, 145, 134, 135, 119, 138, 141, 133, 142, 125, 151, 136, 151, 133, 143, 131, 143, 135, 137, 141, 152, 144, 145, 141, 148, 145, 118, 137, 129, 140, 139, 135, 129, 142, 135, 135, 149, 127, 146, 161, 143, 140, 134, 153, 138, 128, 134, 136, 144, 142, 138, 135, 139, 136, 144, 143, 139, 137, 128, 137, 138, 140, 136, 131, 142, 141, 134, 134, 132, 132, 127, 128, 148, 139, 154, 141, 138, 138, 129, 134, 133, 155, 142, 146, 140, 135, 143, 150, 146, 136, 156, 140, 140, 125, 151, 153, 134, 145, 144, 143, 137, 143, 133, 155, 138, 128, 136, 136, 138, 146, 130, 149, 147, 136, 137, 142, 139, 143, 136, 133, 149, 135, 140, 137, 150, 128, 133, 133, 125, 134, 137, 142, 130, 138, 131, 133, 141, 140, 137, 134, 140, 130, 142, 124, 139, 147, 136, 142, 141, 129, 140, 131, 128, 151, 145, 134, 138, 135, 142, 156, 134, 136, 151, 143, 145, 130, 133, 146, 126, 129, 142, 142, 131, 136, 135, 127, 141, 148, 149, 136, 142, 141, 138, 137, 148, 138, 136, 153, 136, 142, 144, 139, 139, 143, 142, 147, 138, 126, 135, 145, 140, 154, 137, 139, 149, 124, 154, 132, 141, 138, 135, 140, 133, 138, 130, 137, 136, 153, 137, 124, 132, 143, 141, 144, 134, 143, 141, 143, 121, 132, 134, 142, 126, 134, 133, 151, 137, 141, 140, 141, 146, 128, 129, 140, 157, 148, 135, 144, 151, 142, 142, 145, 140, 148, 146, 133, 144, 136, 134, 134, 137, 139, 132, 137, 137, 140, 138, 136, 139, 145, 135, 137, 151, 134, 144, 138, 143, 137, 139, 142, 134, 136, 142, 137, 140, 140, 135, 131, 147, 134, 134, 133, 131, 142, 138, 143, 140, 138, 134, 141, 135, 149, 139, 139, 147, 147, 142, 148, 142, 138, 133, 136, 135, 142, 137, 136, 141, 138, 139, 142, 135, 139, 136, 139, 137, 137, 137, 138, 145, 135, 127, 135, 139, 143, 144, 137, 139, 155, 139, 141, 140, 133, 145, 137, 136, 144, 134, 142, 136, 142, 141, 133, 144, 150, 138, 143, 139, 148, 144, 134, 137, 145, 140, 146, 140, 143, 136, 135, 141, 137, 144, 143, 140, 140, 138, 136, 129, 136, 143, 143, 136, 139, 139, 126, 153, 143, 136, 144, 134, 149, 133, 133, 141, 140, 147, 138, 146, 130, 141, 130, 137, 138, 146, 137, 140, 138, 138, 137, 142, 137, 140, 141, 142, 137, 142, 140, 140, 141, 141, 141, 138, 148, 138, 144, 146, 130, 139, 138, 148, 136, 146, 144, 141, 140, 134, 138, 139, 145, 141, 145, 146, 128, 144, 140, 140, 138, 146, 136, 142, 139, 139, 139, 144, 148, 136, 141, 139, 139, 137, 136, 140, 135, 143, 130, 144, 140, 141, 146, 130, 143, 151, 139, 129, 142, 146, 131, 133, 146, 133, 126, 130, 138, 132, 136, 143, 156, 137, 136, 139, 135, 125, 138, 155, 128, 140, 144, 135, 139, 141, 136, 142, 144, 144, 134, 139, 139, 136, 134, 136, 135, 140, 137, 136, 141, 131, 142, 132, 130, 151, 145, 149, 147, 137, 145, 144, 132, 142, 133, 132, 133, 143, 139, 135, 132, 146, 131, 138, 142, 138, 140, 140, 138, 137, 139, 139, 142, 132, 152, 140, 143, 139, 145, 136, 135, 136, 142, 131, 135, 136, 136, 144, 141, 145, 137, 140, 142, 142, 142, 137, 142, 137, 139, 146, 132, 135, 140, 130, 148, 132, 148, 145, 133, 146, 135, 139, 136, 141, 143, 134, 132, 141, 147, 138, 146, 136, 143, 131, 139, 129, 137, 135, 144, 133, 141, 142, 146, 140, 143, 142, 146, 138, 134, 138, 137, 141, 146, 137, 128, 136, 132, 138, 129, 132, 152, 136, 136, 145, 146, 137, 133, 138, 140, 137, 135, 141, 142, 138, 133, 138, 145, 136, 145, 147, 139, 136, 146, 140, 131, 137, 143, 147, 140, 138, 138, 140, 134, 135, 139, 149, 137, 136, 140, 140, 137, 148, 135, 123, 136, 148, 129, 143, 129, 127, 139, 138, 136, 139, 140, 145, 142, 140, 144, 143, 143, 133, 154, 151, 143, 140, 142, 136, 140, 132, 130, 133, 148, 140, 146, 137, 140, 136, 136, 144, 132, 143, 137, 126, 151, 138, 128, 141, 138, 140, 141, 140, 136, 136, 133, 144, 140, 130, 148, 137, 140, 139, 135, 140, 141, 136, 145, 140, 141, 142, 142, 138, 141, 135, 138, 142, 137, 149, 139, 144, 133, 140, 140, 140, 135, 138, 132, 137, 148, 130, 136, 135, 137, 133, 138, 143, 142, 142, 147, 132, 125, 141, 129, 142, 144, 134, 142, 134, 143, 138, 134, 142, 148, 154, 142, 131, 139, 134, 134, 137, 133, 138, 137, 145, 143, 140, 143, 139, 130, 142, 136, 137, 138, 135, 128, 141, 153, 147, 145, 135, 138, 129, 147, 129, 140, 138, 139, 131, 139, 133, 141, 140, 132, 138, 152, 140, 157, 138, 143, 128, 142, 139, 142, 138, 136, 139, 141, 136, 135, 144, 139, 123, 141, 143, 144, 143, 136, 132, 145, 143, 139, 136, 138, 133, 135, 142, 143, 140, 142, 142, 139, 130, 146, 140, 139, 147, 129, 146, 137, 134, 137, 144, 138, 140, 136, 141, 137, 143, 138, 142, 135, 146, 142, 136, 135, 137, 134, 134, 139, 130, 141, 134, 147, 138, 134, 131, 139, 137, 151, 137, 142, 140, 145, 138, 132, 136, 142, 134, 134, 138, 142, 151, 137, 141, 131, 138, 144, 134, 140, 135, 137, 135, 132, 144, 135, 130, 144, 137, 139, 143, 140, 137, 139, 137, 139, 135, 133, 134, 142, 139, 141, 131, 140, 135, 138, 142, 147, 134, 135, 139, 143, 136, 137, 134, 141, 140, 140, 136, 136, 130, 140, 135, 136, 144, 130, 134, 136, 135, 148, 140, 136, 135, 143, 138, 138, 136, 147, 146, 146, 133, 143, 140, 136, 133, 136, 134, 136, 143, 141, 138, 141, 138, 131, 143, 138, 138, 145, 135, 135, 135, 143, 145, 137, 136, 146, 134, 135, 139, 139, 141, 141, 139, 138, 142, 144, 144, 131, 134, 146, 139, 136, 143, 132, 133, 145, 141, 142, 143, 141, 146, 141, 139, 137, 143, 138, 138, 145, 140, 138, 139, 128, 136, 135, 145, 136, 141, 137, 144, 137, 143, 132, 139, 131, 138, 147, 147, 138, 137, 136, 136, 143, 136, 132, 141, 135, 142, 139, 138, 139, 136, 135, 142, 139, 133, 135, 137, 140, 138, 139, 145, 143, 137, 137, 136, 139, 136, 143, 138, 138, 139, 137, 132, 138, 135, 143, 135, 134, 141, 139, 137, 138, 138, 139, 135, 133, 141, 141, 139, 132, 138, 140, 142, 135, 143, 141, 136, 134, 138, 138, 142, 134, 138, 130, 138, 133, 139, 138, 135, 137, 143, 145, 140, 138, 135, 141, 127, 125, 145, 141, 131, 133, 131, 132, 123, 135, 136, 142, 138, 139, 132, 135, 143, 138, 137, 137, 136, 132, 128, 145, 138, 132, 148, 144, 136, 137, 138, 150, 131, 143, 134, 141, 139, 130, 138, 135, 136, 139, 139, 140, 131, 132, 137, 137, 148, 147, 140, 138, 135, 146, 136, 136, 135, 135, 144, 146, 135, 135, 136, 139, 135, 139, 144, 134, 140, 136, 135, 148, 145, 138, 145, 147, 129, 129, 139, 135, 139, 139, 139, 146, 147, 139, 142, 134, 138, 140, 127, 141, 138, 139, 133, 132, 132, 137, 138, 147, 132, 144, 148, 139, 139, 136, 141, 129, 152, 150, 136, 138, 134, 139, 145, 133, 143, 149, 139, 137, 134, 133, 135, 130, 140, 134, 141, 144, 135, 134, 137, 144, 138, 140, 137, 134, 152, 137, 135, 146, 144, 135, 137, 132, 136, 136, 138, 134, 141, 134, 128, 135, 142, 139, 134, 138, 135, 144, 126, 147, 134, 142, 135, 134, 138, 131, 135, 143, 146, 149, 138, 135, 141, 149, 150, 136, 136, 138, 141, 139, 135, 139, 133, 132, 155, 132, 135, 133, 141, 140, 144, 139, 149, 129, 139, 132, 129, 143, 140, 148, 146, 141, 146, 138, 133, 143, 130, 137, 137, 145, 130, 143, 154, 141, 138, 142, 144, 140, 147, 134, 140, 138, 144, 128, 144, 139, 127, 131, 127, 140, 145, 131, 124, 160, 147, 137, 134, 143, 135, 137, 138, 142, 139, 141, 131, 144, 142, 135, 146, 137, 130, 144, 139, 140, 137, 142, 131, 139, 136, 141, 138, 136, 144, 139, 130, 150, 136, 136, 146, 150, 132, 135, 137, 143, 142, 141, 147, 144, 135, 140, 137, 133, 145, 136, 135, 131, 135, 143, 140, 135, 148, 152, 132, 125, 143, 141, 144, 135, 134, 137, 138, 135, 136, 129, 143, 141, 135, 140, 144, 137, 149, 138, 138, 144, 134, 143, 135, 149, 156, 136, 138, 134, 126, 138, 135, 139, 135, 144, 140, 137, 148, 139, 139, 136, 114, 144, 165, 131, 143, 140, 149, 141, 150, 134, 140, 125, 134, 135, 161, 126, 134, 140, 138, 127, 143, 138, 136, 138, 126, 141, 133, 134, 141, 136, 137, 145, 144, 138, 139, 133, 139, 134, 132, 139, 135, 124, 143, 139, 139, 145, 137, 129, 134, 136, 110, 144, 130, 138, 140, 138, 139, 139, 128, 135, 139, 139, 142, 133, 137, 142, 138, 136, 136, 133, 137, 141, 133, 139, 140, 136, 138, 138, 135, 136, 144, 148, 140, 142, 135, 138, 132, 136, 137, 138, 147, 136, 148, 138, 147, 143, 127, 132, 133, 139, 145, 137, 141, 137, 145, 132, 136, 133, 136, 138, 117, 144, 126, 137, 132, 136, 133, 141, 146, 141, 140, 140, 139, 139, 135, 141, 133, 137, 142, 134, 147, 137, 142, 139, 151, 145, 138, 139, 145, 142, 131, 145, 135, 138, 143, 142, 135, 138, 143, 131, 146, 140, 132, 119, 145, 135, 143, 146, 145, 142, 152, 140, 142, 146, 146, 146, 133, 149, 145, 138, 143, 138, 135, 139, 146, 135, 135, 140, 142, 144, 144, 146, 144, 133, 139, 137, 141, 128, 147, 128, 154, 127, 143, 141, 135, 140, 147, 137, 143, 134, 141, 143, 135, 137, 144, 129, 133, 134, 135, 141, 133, 142, 136, 135, 145, 146, 138, 142, 140, 137, 137, 146, 148, 142, 126, 142, 140, 87, 144, 133, 142, 122, 132, 134, 133, 140, 144, 133, 138, 134, 148, 148, 145, 136, 143, 132, 126, 136, 135, 136, 148, 147, 128, 135, 137, 137, 144, 146, 134, 142, 143, 150, 129, 139, 131, 143, 139, 141, 133, 139, 136, 136, 131, 140, 130, 142, 141, 140, 146, 132, 136, 136, 147, 137, 132, 144, 144, 140, 136, 141, 137, 143, 143, 135, 146, 138, 141, 143, 144, 129, 131, 142, 144, 140, 147, 133, 133, 142, 145, 135, 141, 141, 135, 132, 141, 143, 134, 131, 121, 142, 143, 137, 141, 153, 143, 146, 135, 137, 152, 131, 134, 135, 129, 136, 141, 132, 140, 142, 135, 133, 151, 149, 139, 130, 133, 139, 146, 148, 138, 143, 137, 136, 145, 127, 140, 137, 142, 139, 140, 139, 135, 132, 142, 134, 151, 144, 132, 130, 138, 145, 132, 139, 138, 143, 142, 139, 142, 134, 139, 138, 134, 137, 126, 127, 139, 138, 136, 144, 131, 143, 152, 138, 151, 145, 137, 142, 146, 137, 140, 137, 146, 141, 133, 140, 135, 137, 135, 147, 137, 134, 131, 151, 136, 141, 146, 137, 130, 136, 137, 141, 131, 141, 139, 131, 142, 133, 132, 136, 137, 131, 133, 134, 144, 140, 145, 138, 144, 136, 146, 140, 141, 134, 147, 142, 137, 142, 145, 134, 140, 135, 135, 139, 149, 142, 133, 143, 131, 133, 141, 138, 142, 142, 137, 135, 142, 138, 136, 152, 145, 137, 135, 142, 150, 138, 140, 138, 144, 136, 135, 135, 131, 140, 139, 146, 130, 131, 145, 141, 145, 142, 138, 145, 137, 135, 133, 148, 153, 141, 139, 141, 134, 138, 146, 132, 129, 136, 134, 150, 131, 146, 129, 137, 140, 148, 140, 131, 128, 143, 128, 140, 139, 138, 129, 150, 134, 134, 130, 139, 148, 134, 133, 137, 136, 137, 136, 136, 145, 148, 141, 130, 134, 135, 136, 134, 147, 138, 139, 127, 140, 146, 143, 139, 136, 141, 133, 122, 130, 137, 135, 135, 145, 144, 137, 148, 146, 146, 146, 135, 139, 140, 139, 133, 141, 136, 130, 141, 127, 140, 140, 130, 143, 142, 138, 134, 134, 136, 140, 136, 136, 140, 135, 144, 132, 143, 137, 136, 136, 137, 142, 135, 135, 146, 134, 140, 135, 138, 146, 126, 145, 135, 146, 126, 129, 136, 130, 144, 138, 136, 151, 135, 137, 134, 136, 142, 134, 136, 142, 142, 133, 135, 135, 138, 153, 147, 139, 133, 141, 138, 132, 134, 139, 146, 134, 141, 144, 140, 132, 140, 134, 134, 138, 136, 138, 131, 141, 130, 139, 148, 134, 131, 141, 139, 132, 140, 145, 142, 137, 143, 129, 143, 136, 140, 135, 134, 145, 141, 142, 140, 143, 132, 147, 133, 139, 140, 136, 137, 141, 138, 137, 136, 142, 145, 140, 136, 135, 131, 133, 148, 140, 132, 144, 133, 134, 128, 129, 137, 148, 137, 154, 149, 153, 140, 139, 129, 135, 131, 142, 132, 142, 145, 136, 133, 142, 135, 146, 145, 135, 138, 139, 135, 139, 139, 136, 143, 151, 140, 134, 139, 137, 150, 149, 138, 151, 144, 134, 137, 137, 144, 137, 131, 141, 128, 145, 134, 147, 131, 146, 135, 132, 134, 135, 132, 140, 133, 131, 140, 138, 134, 138, 134, 148, 146, 130, 127, 136, 140, 139, 132, 135, 138, 147, 131, 138, 134, 144, 142, 143, 136, 135, 133, 152, 136, 140, 138, 134, 132, 143, 143, 143, 140, 128, 136, 146, 134, 135, 138, 135, 141, 147, 131, 136, 132, 138, 141, 140, 137, 129, 138, 146, 140, 142, 143, 138, 133, 142, 133, 128, 143, 138, 145, 138, 136, 144, 132, 135, 138, 135, 129, 135, 154, 142, 133, 139, 146, 140, 140, 151, 138, 145, 130, 137, 140, 136, 144, 129, 142, 140, 147, 140, 139, 133, 138, 140, 137, 147, 138, 146, 144, 138, 146, 133, 132, 143, 136, 138, 148, 143, 137, 135, 148, 132, 135, 137, 136, 134, 133, 139, 140, 141, 137, 147, 141, 138, 133, 137, 140, 136, 141, 140, 139, 138, 133, 136, 138, 146, 139, 131, 131, 127, 135, 133, 136, 137, 136, 135, 134, 132, 136, 136, 139, 133, 130, 130, 138, 137, 130, 128, 127, 144, 141, 132, 141, 144, 139, 132, 138, 141, 139, 136, 136, 139, 140, 136, 131, 134, 141, 131, 142, 133, 143, 133, 141, 136, 133, 135, 142, 134, 141, 127, 138, 140, 137, 138, 133, 137, 133, 138, 137, 136, 139, 142, 142, 136, 143, 127, 138, 137, 138, 130, 144, 137, 134, 143, 144, 147, 133, 143, 142, 137, 141, 136, 136, 135, 143, 132, 143, 140, 132, 141, 144, 135, 138, 143, 132, 136, 135, 139, 149, 138, 143, 137, 145, 134, 138, 132, 133, 146, 136, 133, 137, 132, 140, 136, 148, 136, 145, 135, 139, 135, 150, 144, 147, 129, 140, 140, 144, 137, 136, 138, 131, 138, 135, 145, 142, 134, 135, 131, 137, 136, 137, 138, 131, 142, 135, 139, 133, 135, 145, 140, 157, 147, 129, 138, 130, 144, 141, 142, 135, 139, 142, 146, 146, 145, 139, 140, 138, 140, 141, 132, 141, 140, 139, 135, 143, 144, 138, 132, 137, 134, 142, 134, 139, 132, 140, 124, 148, 128, 139, 134, 127, 140, 149, 137, 140, 133, 152, 144, 132, 141, 127, 127, 131, 138, 137, 132, 133, 140, 134, 142, 129, 142, 136, 135, 135, 139, 148, 136, 134, 134, 139, 139, 133, 129, 131, 131, 141, 141, 144, 129, 125, 147, 142, 132, 138, 154, 137, 137, 142, 140, 136, 135, 138, 138, 130, 144, 131, 141, 135, 139, 138, 150, 136, 157, 137, 137, 143, 143, 131, 136, 138, 134, 134, 135, 138, 149, 138, 138, 141, 147, 135, 141, 141, 141, 149, 137, 140, 134, 140, 138, 138, 144, 140, 147, 146, 138, 139, 141, 143, 139, 137, 133, 143, 137, 145, 141, 127, 136, 136, 138, 142, 135, 145, 151, 134, 142, 134, 137, 129, 148, 138, 137, 136, 147, 137, 136, 139, 140, 144, 139, 135, 135, 142, 134, 138, 136, 131, 137, 136, 132, 133, 142, 137, 139, 137, 141, 134, 142, 141, 140, 151, 145, 144, 142, 140, 131, 141, 137, 132, 140, 138, 143, 139, 147, 138, 132, 139, 138, 139, 144, 130, 143, 140, 143, 152, 137, 134, 153, 136, 140, 132, 137, 136, 139, 131, 135, 131, 132, 146, 149, 144, 150, 144, 140, 140, 142, 145, 145, 139, 137, 137, 135, 132, 135, 131, 144, 133, 142, 142, 134, 142, 132, 144, 134, 133, 133, 141, 142, 139, 137, 140, 136, 170, 144, 139, 135, 134, 136, 139, 142, 147, 139, 149, 131, 142, 137, 133, 135, 145, 140, 135, 142, 140, 130, 133, 143, 134, 144, 135, 143, 143, 141, 142, 148, 148, 139, 146, 134, 135, 143, 139, 149, 136, 137, 149, 137, 133, 133, 143, 131, 142, 135, 141, 147, 139, 144, 142, 141, 140, 138, 136, 134, 138, 154, 139, 131, 134, 146, 134, 138, 142, 147, 139, 140, 136, 135, 136, 134, 140, 130, 141, 142, 139, 143, 152, 140, 128, 147, 141, 121, 131, 139, 132, 135, 146, 136, 143, 135, 150, 141, 138, 146, 148, 138, 147, 141, 144, 144, 134, 134, 138, 133, 141, 143, 139, 134, 140, 146, 136, 130, 142, 137, 136, 147, 144, 145, 142, 133, 146, 136, 131, 146, 140, 144, 151, 129, 139, 145, 144, 137, 141, 135, 135, 138, 140, 135, 139, 137, 147, 140, 129, 148, 136, 130, 144, 142, 136, 133, 139, 138, 131, 142, 130, 149, 141, 134, 143, 135, 142, 140, 131, 141, 145, 139, 140, 141, 143, 142, 141, 136, 140, 142, 139, 136, 136, 141, 128, 140, 144, 142, 136, 149, 130, 139, 131, 140, 136, 130, 136, 148, 145, 140, 121, 141, 142, 139, 130, 141, 144, 141, 155, 150, 131, 141, 130, 140, 135, 139, 143, 137, 144, 144, 136, 143, 144, 144, 140, 135, 139, 134, 153, 136, 142, 139, 144, 147, 133, 139, 141, 148, 138, 135, 133, 138, 142, 142, 147, 126, 143, 133, 129, 132, 136, 138, 149, 137, 146, 138, 137, 133, 132, 138, 144, 146, 146, 134, 139, 143, 137, 142, 129, 137, 151, 130, 142, 137, 135, 142, 138, 147, 132, 128, 137, 137, 135, 128, 138, 141, 135, 145, 137, 135, 143, 150, 134, 137, 128, 137, 143, 138, 141, 141, 148, 144, 144, 136, 148, 125, 148, 144, 145, 123, 145, 142, 145, 139, 140, 135, 145, 135, 149, 134, 133, 121, 134, 146, 137, 152, 145, 132, 135, 135, 136, 137, 147, 137, 135, 142, 131, 143, 136, 146, 140, 134, 139, 139, 143, 133, 143, 146, 132, 142, 139, 134, 130, 144, 133, 142, 144, 147, 140, 138, 144, 142, 141, 145, 142, 139, 142, 149, 134, 132, 139, 133, 139, 134, 124, 141, 144, 135, 139, 140, 140, 146, 138, 141, 138, 139, 149, 133, 140, 137, 133, 144, 142, 140, 145, 142, 153, 136, 147, 150, 134, 133, 137, 139, 134, 142, 137, 139, 134, 138, 139, 145, 134, 143, 146, 142, 143, 143, 141, 139, 138, 130, 141, 140, 148, 137, 141, 137, 146, 141, 133, 140, 148, 133, 139, 137, 142, 143, 138, 130, 141, 152, 134, 126, 157, 138, 140, 139, 143, 144, 146, 141, 135, 134, 135, 141, 133, 147, 139, 144, 136, 151, 140, 150, 128, 134, 138, 139, 146, 136, 129, 148, 145, 137, 138, 135, 140, 133, 133, 140, 140, 146, 139, 139, 136, 137, 129, 126, 141, 142, 139, 132, 147, 139, 140, 131, 146, 141, 135, 149, 147, 130, 143, 149, 145, 137, 148, 144, 134, 141, 144, 140, 148, 137, 138, 138, 140, 138, 135, 144, 133, 141, 144, 147, 141, 135, 139, 130, 123, 144, 137, 139, 138, 147, 140, 141, 145, 147, 127, 137, 138, 151, 145, 140, 154, 136, 139, 132, 139, 137, 140, 140, 134, 133, 146, 132, 116, 132, 139, 132, 139, 137, 141, 139, 145, 142, 153, 142, 147, 150, 149, 132, 137, 143, 137, 133, 144, 138, 146, 144, 141, 139, 143, 139, 138, 143, 137, 136, 136, 136, 126, 137, 132, 139, 146, 137, 133, 134, 137, 126, 127, 136, 139, 141, 143, 132, 133, 138, 135, 138, 144, 140, 143, 145, 148, 144, 129, 129, 148, 133, 147, 133, 148, 138, 149, 136, 147, 137, 140, 146, 135, 147, 146, 134, 143, 137, 128, 135, 139, 136, 139, 136, 135, 134, 136, 146, 140, 138, 139, 143, 132, 131, 144, 144, 145, 139, 141, 145, 138, 139, 139, 139, 142, 140, 139, 138, 144, 139, 142, 139, 123, 136, 136, 145, 148, 144, 147, 140, 146, 146, 140, 143, 131, 133, 143, 140, 140, 135, 151, 147, 142, 134, 140, 145, 146, 133, 142, 143, 135, 141, 138, 140, 138, 140, 128, 132, 143, 130, 145, 141, 137, 138, 133, 146, 137, 146, 138, 135, 135, 137, 143, 142, 137, 140, 148, 139, 140, 134, 127, 139, 144, 141, 128, 137, 140, 135, 128, 141, 141, 141, 146, 135, 139, 138, 133, 147, 136, 133, 145, 142, 137, 139, 138, 135, 145, 139, 140, 140, 137, 144, 139, 139, 143, 143, 147, 140, 145, 136, 142, 136, 136, 145, 138, 128, 142, 147, 136, 137, 139, 148, 130, 142, 134, 136, 139, 151, 136, 142, 149, 135, 133, 144, 138, 145, 136, 140, 145, 141, 143, 143, 141, 133, 141, 131, 146, 136, 138, 143, 134, 142, 132, 142, 137, 138, 145, 136, 135, 136, 136, 143, 143, 144, 142, 138, 145, 144, 127, 135, 140, 134, 129, 141, 137, 141, 141, 140, 134, 131, 142, 136, 140, 133, 152, 140, 138, 135, 136, 140, 133, 134, 155, 155, 132, 132, 140, 137, 139, 138, 131, 128, 135, 144, 144, 138, 137, 141, 142, 151, 141, 143, 135, 135, 140, 146, 138, 132, 141, 139, 138, 130, 130, 138, 137, 145, 143, 141, 148, 138, 139, 140, 143, 130, 130, 142, 139, 145, 132, 135, 139, 138, 144, 135, 135, 135, 134, 137, 139, 143, 133, 146, 137, 146, 142, 144, 136, 134, 137, 139, 138, 139, 135, 140, 138, 150, 143, 138, 141, 132, 138, 143, 145, 136, 136, 136, 146, 133, 142, 140, 136, 128, 138, 140, 134, 138, 132, 143, 133, 149, 141, 135, 142, 131, 143, 141, 140, 134, 133, 131, 133, 138, 139, 136, 140, 127, 137, 138, 152, 144, 141, 146, 149, 144, 138, 131, 147, 135, 147, 138, 137, 146, 146, 140, 135, 136, 134, 135, 142, 138, 130, 129, 139, 133, 138, 148, 153, 139, 132, 132, 129, 136, 153, 137, 136, 145, 138, 131, 131, 138, 147, 150, 127, 135, 141, 142, 142, 144, 137, 143, 142, 145, 129, 138, 137, 134, 151, 132, 141, 146, 139, 141, 140, 135, 145, 134, 142, 135, 147, 144, 142, 138, 142, 138, 136, 137, 139, 137, 150, 140, 144, 134, 144, 146, 145, 151, 145, 138, 138, 147, 137, 138, 137, 141, 137, 146, 142, 121, 142, 138, 134, 144, 145, 146, 133, 145, 137, 141, 145, 143, 141, 141, 142, 136, 132, 135, 146, 138, 138, 135, 146, 137, 136, 146, 140, 125, 131, 139, 136, 136, 131, 141, 138, 139, 134, 143, 134, 131, 135, 135, 132, 132, 135, 134, 145, 136, 134, 134, 135, 132, 136, 139, 136, 143, 140, 137, 138, 136, 141, 140, 132, 140, 146, 136, 144, 140, 143, 153, 129, 139, 138, 140, 139, 130, 137, 136, 139, 139, 142, 144, 141, 134, 140, 138, 142, 141, 144, 140, 132, 139, 138, 134, 139, 147, 136, 138, 143, 130, 139, 146, 141, 143, 140, 137, 138, 141, 143, 132, 141, 141, 142, 138, 144, 137, 139, 135, 132, 134, 132, 137, 134, 143, 132, 139, 145, 136, 139, 136, 131, 141, 136, 146, 135, 138, 137, 139, 138, 135, 137, 138, 141, 141, 138, 138, 140, 149, 139, 140, 146, 139, 129, 146, 136, 128, 137, 148, 139, 141, 142, 134, 135, 132, 138, 136, 141, 135, 139, 144, 142, 139, 131, 149, 138, 140, 140, 138, 134, 129, 150, 142, 142, 135, 140, 139, 145, 147, 132, 141, 137, 142, 134, 138, 140, 142, 142, 142, 137, 136, 133, 136, 137, 141, 139, 144, 136, 139, 140, 128, 141, 141, 137, 134, 139, 140, 148, 134, 142, 140, 138, 141, 134, 134, 137, 140, 148, 141, 136, 133, 142, 145, 146, 149, 131, 137, 138, 138, 147, 141, 137, 136, 132, 128, 134, 138, 141, 138, 142, 136, 126, 138, 147, 147, 150, 133, 131, 138, 135, 137, 139, 139, 133, 141, 146, 140, 132, 136, 139, 139, 131, 149, 139, 136, 143, 140, 134, 137, 144, 135, 141, 136, 140, 141, 143, 136, 140, 142, 134, 137, 140, 141, 147, 128, 143, 140, 138, 140, 144, 139, 137, 140, 144, 142, 147, 133, 145, 139, 138, 141, 138, 141, 139, 146, 148, 137, 148, 139, 138, 133, 138, 137, 139, 137, 134, 134, 129, 140, 145, 137, 141, 147, 137, 146, 138, 139, 136, 146, 135, 136, 142, 134, 135, 135, 138, 142, 139, 143, 142, 142, 131, 136, 142, 139, 136, 132, 139, 137, 139, 135, 140, 131, 137, 137, 133, 137, 145, 137, 143, 141, 141, 135, 135, 140, 141, 146, 142, 137, 142, 141, 141, 134, 145, 142, 142, 139, 130, 142, 136, 135, 139, 141, 140, 136, 124, 132, 136, 133, 139, 140, 141, 138, 138, 130, 140, 141, 145, 147, 140, 141, 138, 138, 138, 134, 139, 146, 139, 142, 144, 139, 134, 136, 140, 139, 142, 134, 139, 138, 133, 141, 132, 138, 139, 132, 141, 138, 138, 140, 142, 135, 139, 140, 141, 144, 141, 133, 132, 143, 133, 139, 135, 139, 142, 135, 139, 144, 147, 142, 133, 140, 139, 139, 136, 133, 141, 138, 141, 132, 137, 150, 136, 141, 137, 144, 139, 134, 127, 146, 144, 142, 142, 146, 142, 136, 131, 148, 149, 140, 146, 137, 138, 137, 130, 141, 143, 139, 136, 143, 138, 142, 135, 142, 135, 141, 140, 143, 135, 144, 153, 138, 143, 150, 136, 139, 136, 141, 140, 138, 132, 148, 138, 140, 135, 137, 151, 141, 137, 142, 135, 143, 143, 143, 143, 140, 147, 136, 135, 134, 134, 140, 141, 143, 130, 131, 134, 135, 143, 137, 143, 134, 135, 145, 138, 131, 136, 142, 142, 129, 144, 134, 145, 142, 146, 142, 143, 136, 143, 139, 131, 141, 132, 140, 140, 138, 151, 146, 141, 129, 139, 138, 137, 143, 133, 141, 140, 144, 138, 138, 139, 138, 148, 139, 139, 142, 139, 135, 148, 139, 133, 150, 131, 135, 141, 136, 144, 146, 143, 134, 136, 144, 131, 147, 133, 137, 142, 143, 132, 143, 139, 135, 136, 141, 136, 145, 139, 147, 148, 138, 142, 132, 130, 136, 142, 136, 151, 137, 140, 136, 134, 145, 145, 127, 145, 140, 146, 138, 136, 148, 146, 146, 137, 142, 134, 145, 138, 137, 142, 133, 135, 144, 136, 137, 137, 138, 149, 143, 146, 139, 141, 136, 159, 145, 140, 138, 144, 140, 135, 129, 135, 153, 135, 142, 138, 144, 132, 132, 145, 145, 141, 142, 131, 145, 135, 137, 144, 134, 142, 129, 137, 140, 139, 146, 143, 134, 140, 122, 139, 149, 135, 133, 139, 138, 138, 139, 148, 142, 141, 133, 135, 139, 141, 142, 127, 147, 146, 149, 149, 132, 134, 136, 139, 148, 140, 149, 138, 130, 136, 137, 139, 134, 137, 141, 138, 132, 142, 147, 129, 147, 128, 133, 141, 140, 135, 150, 137, 143, 137, 133, 141, 139, 143, 141, 139, 138, 134, 140, 129, 147, 142, 137, 130, 135, 142, 143, 138, 140, 134, 140, 142, 139, 135, 146, 154, 138, 138, 138, 137, 145, 140, 135, 131, 140, 136, 136, 148, 130, 143, 136, 141, 135, 133, 150, 135, 136, 136, 139, 134, 140, 137, 136, 151, 137, 138, 138, 142, 136, 136, 133, 141, 129, 145, 124, 132, 131, 147, 136, 149, 139, 137, 130, 142, 128, 136, 142, 138, 139, 135, 138, 133, 151, 132, 138, 137, 140, 143, 129, 136, 133, 136, 129, 143, 149, 135, 142, 141, 144, 140, 142, 141, 135, 140, 142, 136, 141, 137, 135, 145, 144, 131, 133, 130, 143, 144, 143, 139, 136, 137, 147, 138, 143, 144, 142, 143, 141, 146, 141, 132, 142, 130, 141, 133, 137, 134, 142, 145, 133, 146, 137, 147, 133, 135, 141, 129, 137, 139, 141, 135, 132, 137, 136, 137, 134, 146, 144, 136, 137, 138, 143, 140, 136, 141, 146, 132, 143, 138, 141, 131, 139, 131, 142, 131, 148, 149, 144, 146, 134, 127, 145, 147, 140, 141, 126, 151, 136, 136, 148, 135, 140, 136, 138, 139, 142, 130, 135, 143, 139, 145, 135, 135, 139, 131, 149, 130, 142, 156, 143, 145, 134, 137, 143, 143, 135, 131, 132, 146, 141, 129, 137, 135, 137, 140, 138, 150, 139, 138, 137, 135, 139, 136, 146, 148, 146, 137, 142, 151, 140, 138, 137, 137, 136, 151, 133, 132, 139, 130, 138, 143, 138, 145, 139, 137, 153, 132, 141, 132, 150, 135, 143, 147, 138, 136, 130, 133, 137, 141, 147, 134, 136, 133, 133, 143, 140, 144, 139, 141, 135, 133, 128, 145, 138, 139, 138, 139, 140, 142, 135, 143, 139, 135, 134, 147, 137, 139, 130, 138, 145, 144, 146, 142, 147, 137, 143, 138, 131, 137, 131, 142, 148, 140, 137, 137, 139, 143, 141, 139, 145, 143, 140, 136, 132, 140, 141, 141, 136, 141, 131, 136, 140, 138, 137, 128, 139, 140, 139, 149, 141, 132, 131, 126, 131, 133, 147, 140, 131, 141, 139, 140, 138, 134, 139, 138, 140, 141, 140, 144, 133, 140, 128, 141, 133, 150, 130, 142, 134, 140, 129, 149, 139, 149, 131, 148, 137, 142, 135, 136, 146, 147, 148, 137, 137, 130, 135, 137, 133, 132, 141, 148, 140, 142, 130, 136, 144, 148, 135, 134, 133, 133, 143, 134, 132, 135, 132, 128, 143, 130, 133, 125, 141, 134, 140, 127, 135, 133, 143, 133, 143, 142, 129, 133, 146, 139, 138, 139, 138, 140, 154, 146, 134, 142, 255, 145, 136, 136, 139, 140, 136, 131, 135, 151, 146, 143, 139, 137, 143, 132, 146, 138, 137, 140, 134, 140, 131, 132, 139, 138, 147, 132, 137, 147, 133, 134, 145, 141, 144, 143, 134, 146, 133, 139, 136, 134, 140, 134, 129, 134, 135, 141, 149, 138, 142, 142, 133, 136, 144, 136, 142, 135, 146, 140, 132, 134, 147, 149, 139, 133, 142, 134, 137, 132, 138, 143, 137, 154, 139, 138, 139, 134, 147, 139, 142, 133, 131, 138, 139, 142, 154, 134, 141, 132, 131, 142, 141, 146, 151, 141, 139, 140, 143, 132, 140, 140, 145, 139, 131, 147, 141, 140, 128, 156, 139, 128, 138, 132, 128, 138, 140, 142, 132, 142, 137, 135, 146, 119, 134, 158, 139, 141, 137, 146, 141, 143, 124, 146, 129, 139, 135, 140, 142, 143, 145, 133, 137, 139, 138, 135, 146, 136, 150, 146, 139, 143, 130, 132, 146, 135, 146, 135, 139, 133, 137, 142, 136, 131, 134, 140, 151, 139, 131, 144, 151, 138, 141, 137, 139, 143, 139, 137, 128, 142, 131, 138, 139, 137, 136, 129, 140, 142, 148, 145, 129, 136, 141, 153, 150, 141, 140, 140, 131, 132, 140, 127, 138, 144, 142, 134, 137, 125, 141, 154, 130, 141, 128, 132, 132, 143, 135, 150, 141, 144, 137, 140, 136, 135, 143, 138, 133, 139, 132, 127, 143, 131, 142, 149, 146, 140, 144, 151, 146, 147, 138, 138, 138, 136, 137, 144, 136, 137, 134, 136, 136, 147, 139, 141, 141, 133, 141, 131, 140, 135, 140, 131, 143, 127, 144, 138, 136, 141, 145, 144, 146, 143, 142, 131, 147, 136, 139, 146, 137, 10, 143, 142, 140, 139, 139, 144, 143, 137, 132, 135, 152, 139, 140, 143, 145, 135, 142, 137, 140, 129, 140, 135, 167, 142, 133, 133, 141, 139, 137, 139, 138, 141, 141, 144, 134, 146, 132, 153, 140, 131, 149, 137, 134, 153, 134, 148, 143, 137, 130, 134, 129, 146, 140, 142, 136, 142, 138, 141, 143, 138, 143, 134, 133, 138, 140, 147, 143, 141, 138, 138, 130, 135, 143, 128, 136, 132, 137, 140, 136, 133, 142, 143, 133, 141, 139, 134, 140, 136, 136, 139, 133, 138, 147, 137, 156, 139, 141, 140, 132, 145, 143, 140, 149, 143, 137, 138, 135, 142, 141, 137, 141, 138, 136, 138, 134, 131, 135, 140, 141, 141, 135, 133, 143, 134, 142, 135, 133, 130, 137, 132, 144, 144, 132, 142, 135, 136, 145, 139, 140, 140, 141, 141, 133, 146, 149, 140, 132, 141, 142, 139, 136, 140, 139, 136, 150, 142, 142, 147, 134, 146, 140, 139, 136, 140, 144, 140, 133, 136, 132, 147, 136, 140, 139, 139, 142, 138, 142, 149, 131, 137, 146, 141, 136, 142, 139, 134, 135, 141, 142, 138, 135, 135, 133, 148, 141, 147, 150, 136, 136, 127, 136, 150, 136, 140, 135, 138, 133, 141, 140, 134, 137, 140, 136, 139, 140, 134, 137, 134, 136, 135, 144, 142, 137, 143, 144, 135, 140, 142, 138, 134, 140, 137, 146, 140, 134, 149, 146, 138, 145, 135, 133, 134, 141, 140, 136, 132, 146, 133, 140, 138, 139, 143, 137, 144, 141, 141, 140, 135, 142, 141, 137, 135, 140, 138, 132, 132, 143, 143, 142, 140, 129, 131, 137, 137, 134, 135, 138, 132, 142, 135, 136, 140, 137, 141, 140, 130, 132, 140, 136, 136, 138, 141, 140, 135, 139, 140, 133, 137, 141, 141, 141, 128, 140, 137, 131, 140, 144, 140, 137, 135, 142, 129, 138, 139, 141, 136, 143, 146, 138, 133, 147, 141, 141, 144, 138, 135, 137, 141, 133, 134, 131, 132, 142, 137, 139, 143, 139, 138, 145, 136, 138, 142, 143, 149, 139, 136, 136, 137, 138, 136, 138, 143, 142, 137, 131, 142, 139, 140, 131, 143, 150, 135, 136, 149, 133, 135, 144, 141, 144, 146, 137, 135, 145, 141, 147, 131, 135, 136, 144, 146, 135, 141, 135, 141, 137, 137, 134, 138, 140, 147, 131, 134, 140, 148, 144, 137, 134, 138, 145, 137, 139, 139, 142, 140, 151, 132, 132, 136, 140, 135, 140, 128, 129, 130, 132, 137, 146, 131, 134, 143, 142, 141, 135, 136, 147, 133, 135, 136, 138, 138, 137, 137, 141, 144, 134, 145, 144, 142, 141, 144, 135, 134, 140, 141, 146, 140, 133, 128, 136, 141, 138, 141, 140, 144, 135, 136, 132, 138, 141, 136, 145, 133, 142, 141, 137, 133, 133, 142, 141, 142, 134, 139, 138, 148, 137, 137, 138, 142, 142, 129, 134, 135, 140, 140, 142, 137, 133, 142, 132, 136, 145, 137, 133, 140, 142, 133, 133, 136, 146, 132, 138, 141, 133, 134, 140, 138, 134, 135, 138, 139, 141, 135, 136, 141, 144, 148, 139, 137, 149, 133, 136, 138, 134, 139, 137, 145, 149, 132, 132, 140, 131, 139, 144, 132, 138, 139, 127, 144, 138, 144, 135, 136, 147, 132, 141, 138, 142, 144, 139, 138, 131, 141, 141, 148, 130, 134, 141, 137, 132, 134, 133, 141, 139, 127, 133, 136, 135, 144, 131, 139, 135, 136, 141, 139, 141, 149, 139, 135, 132, 141, 134, 131, 134, 137, 134, 145, 144, 132, 148, 143, 141, 129, 148, 141, 127, 144, 146, 141, 127, 129, 145, 137, 133, 134, 140, 143, 139, 135, 138, 139, 146, 140, 132, 138, 131, 129, 145, 135, 127, 143, 137, 141, 136, 139, 134, 145, 137, 148, 133, 140, 134, 134, 129, 134, 148, 138, 135, 144, 136, 135, 144, 137, 141, 139, 128, 148, 138, 140, 128, 136, 129, 142, 145, 143, 142, 137, 135, 140, 139, 134, 138, 133, 129, 137, 136, 131, 134, 144, 141, 136, 139, 150, 123, 132, 131, 134, 141, 145, 133, 133, 145, 144, 145, 146, 139, 136, 136, 126, 138, 132, 130, 148, 139, 137, 143, 139, 147, 142, 144, 146, 132, 147, 143, 134, 141, 148, 154, 126, 149, 132, 137, 138, 132, 133, 144, 138, 132, 139, 138, 137, 138, 141, 133, 144, 142, 136, 135, 132, 144, 140, 151, 132, 142, 135, 131, 142, 135, 137, 144, 141, 149, 132, 142, 135, 140, 142, 136, 153, 138, 148, 143, 144, 130, 136, 139, 134, 144, 129, 131, 138, 144, 136, 136, 135, 133, 134, 137, 139, 142, 142, 144, 133, 138, 136, 141, 146, 142, 145, 143, 134, 142, 143, 133, 139, 145, 129, 130, 136, 137, 139, 134, 142, 130, 139, 138, 148, 132, 131, 153, 138, 147, 127, 134, 138, 143, 135, 149, 130, 137, 142, 138, 139, 142, 143, 137, 124, 137, 135, 141, 140, 151, 146, 134, 137, 148, 146, 136, 144, 122, 123, 135, 135, 139, 130, 153, 139, 132, 135, 148, 131, 143, 141, 133, 138, 143, 146, 134, 129, 128, 146, 149, 146, 129, 140, 135, 139, 137, 141, 130, 136, 124, 136, 154, 146, 145, 138, 144, 138, 138, 133, 134, 144, 126, 138, 140, 127, 137, 140, 141, 134, 151, 129, 140, 138, 140, 151, 147, 137, 137, 143, 137, 139, 146, 137, 141, 145, 134, 138, 145, 132, 138, 114, 141, 140, 124, 126, 136, 145, 136, 134, 142, 145, 138, 135, 131, 145, 147, 133, 149, 144, 142, 134, 137, 127, 150, 149, 147, 143, 144, 141, 137, 138, 134, 151, 132, 141, 131, 147, 146, 138, 135, 141, 148, 133, 134, 134, 133, 134, 137, 136, 142, 149, 142, 149, 143, 141, 146, 132, 128, 145, 137, 139, 139, 135, 133, 136, 142, 133, 137, 138, 139, 147, 155, 130, 136, 143, 144, 146, 132, 137, 146, 136, 144, 149, 159, 141, 145, 140, 136, 141, 142, 144, 140, 131, 139, 126, 142, 136, 138, 150, 148, 144, 155, 129, 132, 139, 135, 144, 131, 137, 139, 135, 147, 140, 141, 138, 127, 137, 133, 131, 136, 135, 135, 146, 129, 150, 135, 141, 134, 140, 150, 127, 140, 143, 136, 154, 132, 138, 144, 135, 151, 135, 131, 138, 140, 133, 140, 133, 135, 135, 137, 140, 140, 133, 142, 139, 132, 137, 140, 142, 137, 136, 134, 151, 136, 148, 131, 137, 146, 132, 140, 129, 133, 139, 134, 152, 142, 140, 143, 142, 137, 141, 147, 143, 138, 141, 150, 142, 147, 148, 135, 139, 138, 140, 140, 139, 144, 134, 137, 136, 142, 137, 139, 141, 141, 137, 139, 133, 138, 140, 138, 142, 142, 138, 135, 133, 134, 138, 138, 142, 139, 141, 141, 131, 132, 141, 134, 140, 143, 135, 143, 143, 136, 137, 157, 141, 132, 145, 138, 130, 142, 133, 133, 142, 133, 124, 137, 133, 140, 147, 142, 144, 138, 139, 140, 133, 135, 139, 132, 135, 131, 139, 135, 142, 137, 140, 130, 134, 138, 136, 138, 143, 141, 149, 133, 131, 137, 138, 136, 133, 134, 143, 140, 141, 131, 149, 138, 140, 136, 136, 142, 143, 146, 142, 133, 145, 137, 131, 143, 140, 136, 135, 137, 144, 138, 135, 131, 134, 136, 141, 141, 135, 137, 135, 142, 140, 152, 138, 139, 133, 140, 134, 132, 132, 142, 141, 128, 140, 144, 143, 136, 149, 133, 139, 127, 131, 146, 137, 135, 143, 138, 154, 134, 142, 139, 137, 136, 139, 143, 136, 136, 128, 137, 145, 137, 142, 138, 141, 145, 137, 141, 133, 133, 134, 139, 140, 146, 140, 135, 138, 137, 138, 142, 142, 133, 144, 134, 140, 144, 155, 145, 132, 144, 146, 137, 138, 138, 133, 136, 139, 144, 145, 136, 150, 144, 135, 138, 139, 144, 138, 141, 131, 138, 144, 146, 137, 140, 144, 142, 152, 135, 135, 138, 137, 140, 141, 143, 136, 141, 132, 140, 137, 133, 132, 151, 143, 131, 138, 140, 136, 129, 134, 150, 132, 146, 131, 131, 139, 138, 143, 144, 129, 138, 138, 137, 144, 136, 129, 140, 139, 139, 143, 138, 144, 134, 137, 137, 133, 144, 145, 143, 136, 137, 142, 134, 138, 135, 133, 135, 136, 137, 149, 143, 135, 144, 140, 137, 133, 139, 134, 138, 141, 137, 134, 136, 143, 140, 130, 142, 140, 145, 141, 141, 149, 144, 144, 143, 144, 141, 134, 139, 131, 139, 131, 132, 134, 139, 133, 137, 133, 143, 138, 135, 139, 136, 142, 144, 137, 137, 133, 139, 134, 141, 141, 140, 134, 146, 142, 136, 136, 138, 134, 143, 137, 144, 141, 136, 135, 134, 148, 146, 132, 136, 143, 140, 137, 138, 140, 138, 131, 141, 135, 133, 133, 142, 141, 141, 146, 136, 135, 120, 136, 139, 136, 135, 144, 142, 141, 140, 136, 132, 139, 145, 140, 136, 139, 129, 138, 135, 142, 137, 136, 140, 129, 139, 146, 133, 139, 139, 135, 139, 136, 141, 141, 145, 139, 145, 136, 135, 139, 139, 141, 139, 144, 143, 136, 134, 140, 142, 137, 151, 146, 138, 140, 139, 141, 142, 140, 135, 143, 139, 145, 141, 136, 139, 143, 146, 132, 139, 139, 139, 141, 145, 136, 142, 135, 142, 143, 138, 146, 150, 141, 137, 140, 136, 136, 132, 138, 128, 136, 140, 140, 135, 139, 132, 142, 135, 129, 138, 141, 146, 138, 133, 141, 136, 135, 135, 143, 144, 132, 133, 138, 147, 140, 143, 138, 133, 136, 133, 141, 141, 131, 145, 125, 135, 139, 133, 140, 146, 155, 144, 136, 140, 138, 144, 143, 143, 145, 133, 138, 145, 145, 132, 145, 139, 142, 137, 147, 163, 152, 133, 141, 139, 139, 142, 135, 146, 133, 132, 139, 142, 142, 144, 142, 144, 144, 139, 139, 131, 123, 151, 133, 144, 140, 133, 139, 135, 137, 135, 136, 134, 135, 132, 128, 133, 137, 139, 148, 147, 139, 137, 139, 147, 142, 134, 139, 141, 126, 142, 139, 145, 144, 146, 135, 136, 135, 140, 141, 132, 139, 142, 135, 137, 134, 137, 135, 128, 138, 143, 147, 151, 142, 141, 135, 138, 137, 134, 146, 137, 140, 140, 138, 146, 142, 135, 134, 139, 138, 138, 140, 133, 149, 127, 142, 136, 143, 137, 131, 135, 134, 139, 125, 139, 139, 134, 133, 139, 141, 135, 147, 145, 139, 130, 138, 141, 128, 139, 138, 141, 144, 142, 137, 136, 134, 156, 134, 141, 136, 130, 138, 138, 143, 139, 136, 136, 130, 136, 139, 137, 132, 132, 139, 139, 157, 141, 150, 141, 135, 148, 150, 145, 152, 145, 136, 136, 143, 139, 139, 142, 137, 132, 145, 133, 140, 137, 139, 147, 141, 139, 143, 137, 127, 136, 143, 139, 139, 136, 138, 132, 135, 135, 149, 141, 140, 139, 124, 131, 143, 135, 132, 132, 138, 140, 137, 130, 133, 135, 143, 137, 141, 137, 156, 147, 141, 140, 137, 143, 135, 134, 140, 149, 136, 142, 142, 141, 138, 145, 135, 143, 135, 143, 134, 139, 135, 133, 142, 141, 129, 140, 140, 140, 138, 140, 139, 141, 138, 131, 134, 134, 140, 137, 135, 140, 145, 139, 139, 148, 136, 126, 138, 136, 129, 140, 148, 145, 143, 141, 148, 141, 139, 136, 142, 140, 134, 128, 144, 142, 137, 138, 138, 140, 145, 144, 149, 134, 137, 136, 140, 133, 136, 147, 141, 132, 138, 134, 143, 139, 144, 140, 135, 146, 142, 144, 144, 134, 135, 141, 142, 145, 149, 142, 134, 128, 141, 144, 136, 132, 141, 143, 141, 134, 131, 131, 139, 134, 135, 134, 141, 124, 140, 141, 142, 140, 128, 138, 136, 130, 137, 130, 134, 138, 148, 140, 142, 132, 138, 138, 138, 140, 132, 138, 137, 148, 148, 135, 143, 136, 132, 135, 142, 143, 140, 143, 137, 136, 128, 139, 140, 133, 138, 134, 138, 136, 139, 140, 127, 140, 139, 141, 143, 142, 134, 131, 144, 141, 135, 135, 133, 136, 132, 145, 157, 141, 128, 138, 143, 131, 144, 144, 143, 142, 145, 140, 138, 146, 141, 139, 142, 138, 143, 133, 140, 131, 142, 133, 130, 141, 136, 133, 145, 140, 136, 141, 145, 157, 132, 138, 143, 138, 133, 137, 140, 138, 149, 141, 131, 145, 126, 143, 138, 138, 145, 141, 134, 139, 142, 134, 133, 139, 131, 139, 142, 141, 130, 143, 139, 137, 144, 137, 136, 132, 134, 137, 149, 139, 134, 139, 145, 136, 134, 142, 137, 146, 137, 134, 126, 144, 138, 137, 135, 140, 138, 134, 143, 128, 139, 140, 132, 131, 137, 135, 152, 133, 137, 137, 131, 137, 144, 146, 147, 137, 125, 131, 139, 141, 156, 141, 148, 138, 134, 138, 147, 148, 143, 141, 146, 141, 141, 135, 142, 136, 138, 140, 144, 138, 137, 136, 144, 129, 140, 143, 140, 140, 136, 142, 147, 142, 143, 140, 140, 138, 131, 152, 148, 136, 127, 145, 141, 140, 135, 138, 151, 142, 142, 140, 145, 142, 138, 146, 138, 130, 137, 140, 137, 144, 140, 146, 140, 131, 134, 143, 137, 141, 148, 139, 144, 142, 140, 139, 140, 132, 137, 140, 138, 150, 133, 142, 132, 138, 134, 138, 137, 137, 142, 146, 141, 134, 138, 130, 137, 139, 144, 139, 142, 137, 144, 147, 133, 141, 141, 139, 160, 133, 137, 143, 129, 140, 144, 144, 146, 141, 135, 139, 140, 131, 145, 134, 139, 136, 135, 142, 139, 144, 128, 141, 139, 137, 141, 145, 134, 143, 132, 141, 130, 139, 142, 142, 145, 134, 144, 136, 134, 148, 141, 148, 145, 135, 139, 139, 142, 140, 137, 138, 135, 140, 146, 140, 140, 140, 143, 131, 132, 140, 137, 147, 141, 140, 137, 138, 131, 143, 137, 138, 142, 142, 140, 137, 144, 136, 133, 138, 139, 141, 128, 137, 141, 140, 143, 144, 138, 149, 137, 139, 151, 139, 138, 145, 134, 135, 131, 135, 142, 139, 141, 140, 136, 142, 139, 139, 141, 133, 144, 133, 136, 130, 144, 140, 148, 142, 143, 140, 140, 136, 148, 144, 136, 139, 139, 139, 146, 133, 139, 137, 134, 137, 130, 136, 140, 138, 143, 133, 135, 136, 145, 147, 133, 152, 140, 143, 137, 140, 141, 134, 130, 143, 138, 131, 136, 142, 144, 136, 138, 142, 134, 146, 139, 149, 142, 131, 140, 135, 144, 140, 138, 147, 131, 132, 139, 147, 142, 141, 131, 137, 140, 136, 140, 138, 146, 144, 136, 134, 142, 140, 135, 138, 131, 139, 131, 143, 143, 144, 144, 141, 142, 138, 146, 137, 144, 138, 129, 137, 140, 146, 134, 131, 143, 133, 138, 135, 136, 139, 135, 145, 140, 145, 144, 144, 142, 136, 140, 142, 136, 138, 138, 141, 137, 137, 140, 149, 148, 138, 139, 129, 133, 135, 132, 137, 145, 139, 146, 137, 131, 136, 139, 136, 134, 139, 143, 135, 139, 137, 138, 136, 133, 146, 138, 145, 135, 129, 135, 134, 131, 134, 142, 137, 131, 136, 137, 137, 142, 134, 125, 142, 138, 142, 135, 143, 130, 133, 141, 133, 137, 139, 138, 142, 140, 152, 139, 136, 139, 134, 134, 140, 137, 135, 139, 131, 149, 136, 139, 139, 136, 141, 134, 139, 145, 147, 143, 135, 139, 134, 140, 134, 138, 139, 151, 153, 134, 133, 141, 140, 141, 136, 136, 144, 130, 142, 141, 140, 150, 140, 141, 142, 131, 134, 133, 140, 139, 134, 132, 127, 143, 147, 137, 140, 142, 133, 146, 140, 134, 133, 137, 151, 139, 135, 144, 145, 136, 143, 137, 137, 151, 137, 137, 141, 145, 145, 134, 138, 139, 141, 136, 147, 140, 136, 140, 128, 139, 145, 140, 135, 137, 143, 133, 139, 133, 133, 134, 142, 137, 148, 140, 136, 136, 136, 137, 142, 140, 133, 145, 139, 139, 140, 137, 136, 145, 137, 133, 140, 143, 137, 138, 145, 141, 145, 146, 140, 135, 139, 133, 140, 139, 139, 134, 139, 138, 130, 136, 138, 141, 146, 136, 143, 142, 142, 135, 143, 138, 143, 136, 141, 139, 138, 138, 133, 134, 141, 141, 145, 134, 140, 140, 140, 137, 142, 137, 144, 142, 142, 141, 142, 141, 142, 141, 137, 141, 133, 143, 140, 137, 134, 139, 134, 144, 136, 139, 140, 144, 137, 143, 144, 134, 134, 142, 140, 137, 138, 139, 136, 145, 135, 143, 142, 136, 140, 143, 142, 137, 136, 138, 137, 143, 137, 139, 142, 142, 141, 140, 138, 137, 134, 135, 137, 137, 132, 137, 143, 135, 137, 137, 138, 139, 138, 139, 137, 136, 132, 141, 138, 135, 138, 136, 140, 139, 134, 143, 140, 138, 136, 139, 135, 142, 138, 140, 138, 141, 147, 139, 137, 135, 144, 136, 140, 138, 145, 149, 144, 137, 138, 143, 135, 137, 143, 144, 140, 138, 139, 135, 141, 137, 143, 145, 137, 139, 142, 138, 141, 136, 139, 145, 144, 139, 144, 141, 144, 140, 142, 144, 134, 136, 135, 137, 141, 138, 142, 136, 138, 138, 137, 140, 135, 138, 140, 137, 132, 137, 144, 143, 136, 139, 147, 136, 136, 142, 138, 136, 139, 136, 141, 137, 138, 134, 139, 141, 136, 138, 137, 148, 136, 142, 138, 145, 140, 144, 145, 141, 140, 138, 137, 138, 135, 136, 140, 134, 143, 139, 140, 144, 141, 136, 135, 141, 143, 140, 138, 135, 145, 138, 144, 136, 136, 136, 141, 143, 137, 140, 135, 134, 142, 142, 134, 140, 137, 140, 140, 139, 141, 141, 140, 139, 141, 144, 137, 136, 135, 139, 139, 136, 138, 141, 132, 140, 137, 145, 141, 144, 136, 137, 141, 141, 135, 137, 140, 141, 134, 140, 142, 134, 142, 141, 144, 132, 140, 134, 141, 147, 141, 145, 136, 141, 139, 141, 144, 135, 145, 133, 141, 136, 139, 140, 135, 142, 142, 141, 139, 136, 137, 136, 141, 138, 131, 138, 138, 136, 137, 139, 137, 136, 138, 137, 142, 139, 139, 138, 141, 142, 140, 138, 133, 140, 137, 135, 138, 140, 134, 138, 138, 144, 144, 140, 139, 142, 145, 139, 145, 137, 140, 139, 139, 138, 142, 137, 140, 133, 139, 135, 133, 137, 133, 140, 142, 143, 136, 139, 139, 140, 143, 141, 139, 141, 139, 136, 141, 136, 142, 136, 145, 137, 133, 138, 143, 134, 142, 132, 142, 139, 145, 138, 142, 137, 135, 146, 138, 139, 137, 145, 137, 135, 140, 141, 143, 138, 141, 141, 138, 139, 138, 144, 136, 140, 136, 136, 145, 141, 138, 138, 141, 135, 136, 138, 144, 137, 137, 145, 136, 138, 141, 143, 138, 138, 141, 142, 141, 132, 136, 140, 139, 139, 133, 138, 133, 140, 135, 139, 139, 138, 138, 140, 136, 138, 143, 138, 144, 143, 140, 133, 137, 136, 142, 137, 134, 147, 143, 137, 141, 139, 138, 140, 137, 145, 148, 143, 135, 141, 140, 140, 139, 132, 139, 140, 141, 136, 141, 137, 145, 137, 137, 142, 142, 143, 135, 138, 139, 140, 133, 137, 140, 138, 138, 135, 140, 137, 135, 142, 143, 135, 140, 140, 143, 134, 141, 143, 139, 137, 145, 127, 135, 139, 147, 147, 139, 133, 145, 139, 142, 139, 131, 137, 138, 134, 133, 142, 143, 134, 136, 141, 134, 141, 146, 135, 132, 138, 138, 135, 140, 129, 137, 136, 137, 135, 144, 141, 141, 138, 138, 141, 135, 129, 137, 140, 142, 143, 148, 151, 137, 145, 132, 143, 138, 141, 149, 138, 142, 136, 134, 146, 141, 134, 137, 140, 143, 142, 136, 131, 141, 135, 140, 142, 140, 154, 132, 133, 135, 148, 131, 139, 133, 142, 136, 136, 134, 140, 139, 152, 138, 127, 116, 139, 137, 146, 136, 143, 144, 134, 136, 139, 138, 143, 132, 143, 136, 134, 142, 139, 133, 147, 137, 132, 149, 131, 135, 147, 140, 145, 142, 134, 145, 144, 143, 146, 138, 138, 140, 144, 139, 139, 140, 139, 131, 140, 144, 129, 133, 138, 133, 141, 140, 137, 139, 136, 136, 146, 142, 125, 146, 129, 141, 155, 142, 134, 145, 145, 138, 149, 139, 146, 141, 140, 147, 139, 147, 143, 139, 135, 141, 142, 140, 142, 134, 140, 135, 160, 131, 147, 137, 129, 139, 132, 138, 139, 142, 140, 138, 140, 134, 143, 146, 135, 141, 141, 143, 139, 136, 143, 142, 138, 137, 137, 144, 131, 136, 139, 138, 143, 136, 139, 141, 138, 142, 141, 138, 143, 146, 138, 139, 143, 137, 134, 139, 139, 138, 137, 147, 131, 141, 146, 130, 135, 133, 134, 154, 137, 141, 137, 140, 132, 145, 147, 136, 137, 150, 143, 131, 145, 135, 131, 141, 137, 138, 137, 141, 135, 130, 144, 130, 136, 143, 131, 142, 142, 134, 141, 135, 145, 126, 140, 145, 134, 147, 144, 144, 142, 139, 140, 141, 135, 142, 138, 137, 144, 150, 144, 146, 134, 141, 133, 134, 138, 133, 143, 141, 126, 136, 142, 130, 138, 147, 141, 132, 139, 128, 138, 137, 140, 138, 140, 138, 137, 143, 136, 140, 132, 140, 141, 139, 136, 134, 134, 136, 137, 133, 138, 141, 137, 134, 143, 138, 144, 151, 134, 137, 141, 142, 135, 134, 135, 140, 147, 134, 140, 138, 138, 136, 135, 149, 129, 132, 139, 147, 145, 132, 132, 134, 144, 138, 142, 140, 129, 134, 135, 151, 139, 145, 144, 139, 144, 142, 144, 137, 136, 138, 132, 135, 134, 131, 132, 140, 139, 139, 135, 131, 130, 146, 135, 138, 136, 139, 140, 143, 140, 138, 143, 142, 140, 146, 137, 143, 134, 138, 142, 142, 133, 144, 133, 130, 136, 148, 136, 133, 141, 141, 135, 130, 143, 133, 129, 137, 135, 131, 126, 136, 143, 136, 131, 132, 138, 141, 144, 145, 146, 131, 143, 136, 138, 140, 133, 142, 144, 140, 147, 142, 134, 136, 152, 142, 133, 134, 143, 136, 138, 139, 136, 141, 140, 137, 137, 143, 134, 139, 137, 131, 143, 141, 137, 139, 143, 141, 146, 134, 142, 143, 140, 138, 137, 143, 144, 136, 140, 137, 143, 135, 147, 133, 148, 132, 144, 149, 137, 134, 139, 140, 142, 142, 146, 146, 138, 140, 145, 143, 132, 138, 141, 139, 143, 141, 151, 142, 148, 141, 140, 141, 146, 142, 137, 136, 135, 136, 150, 136, 145, 139, 141, 136, 133, 139, 141, 135, 134, 135, 139, 139, 135, 145, 140, 146, 134, 142, 137, 138, 140, 141, 138, 140, 134, 132, 143, 135, 142, 141, 138, 134, 135, 142, 131, 145, 131, 140, 136, 136, 140, 133, 136, 136, 135, 143, 138, 139, 147, 135, 143, 144, 138, 142, 139, 136, 139, 131, 144, 135, 143, 135, 139, 138, 138, 140, 136, 145, 139, 138, 141, 139, 134, 136, 141, 143, 138, 137, 145, 142, 143, 140, 137, 138, 151, 134, 142, 137, 136, 139, 135, 144, 144, 137, 145, 141, 134, 142, 136, 141, 138, 146, 133, 135, 136, 133, 139, 134, 143, 139, 136, 142, 142, 138, 134, 141, 150, 135, 136, 140, 145, 135, 138, 135, 140, 143, 132, 140, 131, 133, 139, 138, 140, 137, 138, 136, 149, 143, 140, 140, 140, 139, 142, 142, 131, 133, 131, 145, 139, 138, 141, 136, 130, 138, 142, 140, 130, 140, 136, 137, 141, 132, 138, 137, 140, 141, 138, 139, 141, 140, 146, 138, 134, 144, 137, 142, 141, 143, 144, 134, 139, 132, 136, 140, 144, 140, 139, 143, 139, 141, 138, 138, 139, 130, 134, 139, 135, 134, 137, 141, 137, 135, 143, 126, 146, 143, 144, 138, 145, 135, 138, 136, 136, 136, 143, 134, 141, 143, 142, 133, 132, 142, 137, 142, 146, 143, 137, 141, 141, 135, 136, 140, 138, 138, 138, 145, 137, 133, 138, 139, 137, 136, 132, 143, 137, 134, 140, 140, 135, 144, 130, 136, 138, 135, 142, 137, 143, 140, 138, 130, 140, 139, 135, 140, 140, 130, 136, 143, 143, 133, 146, 145, 143, 142, 136, 144, 139, 144, 131, 138, 141, 138, 135, 142, 143, 136, 134, 138, 134, 139, 133, 139, 139, 135, 136, 135, 134, 138, 140, 139, 137, 142, 141, 139, 144, 135, 139, 140, 141, 140, 142, 139, 133, 142, 140, 141, 144, 132, 138, 137, 141, 133, 140, 139, 128, 141, 134, 141, 141, 149, 139, 136, 137, 139, 142, 142, 144, 144, 141, 138, 126, 139, 142, 139, 144, 140, 133, 144, 138, 138, 136, 137, 130, 141, 143, 139, 142, 146, 137, 140, 140, 146, 141, 141, 143, 140, 138, 142, 135, 137, 133, 146, 135, 136, 136, 131, 139, 142, 131, 138, 142, 136, 136, 141, 143, 134, 144, 142, 139, 144, 140, 141, 130, 137, 137, 146, 143, 136, 137, 141, 138, 137, 135, 140, 139, 141, 145, 142, 138, 138, 142, 139, 139, 136, 144, 140, 135, 141, 134, 139, 139, 138, 141, 134, 142, 141, 135, 135, 129, 133, 132, 141, 137, 146, 147, 133, 139, 138, 141, 138, 137, 137, 140, 136, 142, 149, 137, 144, 137, 136, 140, 140, 138, 132, 129, 137, 135, 136, 147, 141, 145, 148, 140, 133, 144, 125, 151, 133, 134, 132, 138, 140, 143, 136, 136, 139, 148, 140, 140, 138, 134, 135, 137, 126, 137, 140, 133, 146, 140, 142, 136, 140, 137, 139, 140, 141, 151, 138, 142, 140, 139, 131, 137, 138, 146, 133, 132, 138, 142, 146, 145, 141, 135, 142, 147, 145, 137, 142, 133, 146, 139, 134, 139, 136, 143, 140, 136, 132, 141, 143, 144, 143, 141, 144, 142, 140, 140, 150, 139, 136, 135, 124, 144, 139, 140, 139, 139, 147, 137, 133, 133, 143, 132, 130, 141, 138, 142, 133, 138, 136, 131, 143, 131, 140, 136, 138, 136, 134, 144, 146, 137, 145, 136, 138, 130, 140, 141, 139, 146, 142, 135, 137, 144, 138, 142, 138, 140, 137, 148, 128, 143, 140, 136, 138, 133, 140, 140, 138, 137, 136, 138, 138, 142, 128, 139, 129, 140, 139, 133, 140, 140, 133, 132, 133, 141, 140, 134, 142, 142, 142, 134, 144, 133, 138, 147, 139, 144, 140, 142, 138, 137, 139, 132, 137, 138, 142, 136, 128, 135, 143, 140, 144, 150, 137, 144, 142, 140, 143, 136, 144, 136, 131, 133, 136, 139, 130, 138, 137, 139, 140, 134, 138, 141, 143, 134, 142, 137, 140, 137, 145, 145, 148, 132, 148, 132, 142, 143, 139, 143, 145, 137, 141, 140, 143, 143, 141, 140, 134, 122, 145, 140, 138, 131, 136, 139, 135, 141, 137, 140, 149, 129, 136, 123, 138, 138, 143, 142, 146, 137, 140, 139, 140, 133, 142, 146, 142, 133, 133, 132, 129, 138, 143, 141, 147, 144, 137, 143, 137, 147, 139, 130, 135, 137, 140, 135, 137, 144, 141, 146, 141, 136, 139, 136, 134, 136, 140, 138, 134, 133, 137, 141, 139, 140, 138, 147, 131, 146, 136, 143, 139, 142, 137, 137, 141, 137, 134, 132, 142, 142, 139, 138, 143, 140, 138, 136, 140, 139, 145, 139, 138, 134, 133, 145, 134, 137, 138, 140, 132, 139, 140, 135, 141, 141, 139, 134, 146, 128, 132, 137, 140, 147, 136, 139, 143, 129, 142, 142, 142, 128, 139, 139, 143, 132, 128, 133, 131, 142, 145, 142, 143, 139, 137, 138, 135, 139, 130, 139, 140, 131, 136, 139, 138, 140, 147, 133, 139, 135, 145, 137, 139, 136, 140, 131, 146, 141, 127, 147, 138, 135, 134, 134, 138, 135, 141, 137, 132, 135, 139, 142, 133, 136, 134, 146, 134, 135, 148, 143, 148, 135, 139, 138, 133, 136, 138, 130, 141, 139, 130, 129, 130, 155, 148, 139, 136, 136, 142, 150, 140, 131, 141, 137, 145, 136, 134, 145, 135, 142, 145, 138, 142, 145, 138, 130, 141, 133, 134, 143, 149, 143, 132, 131, 138, 133, 133, 137, 139, 148, 147, 139, 142, 134, 139, 133, 153, 138, 130, 137, 139, 146, 133, 132, 142, 143, 133, 140, 143, 132, 142, 141, 138, 141, 134, 139, 134, 141, 137, 140, 135, 147, 135, 136, 140, 143, 152, 140, 137, 138, 132, 136, 139, 136, 131, 122, 135, 132, 146, 130, 133, 138, 135, 152, 141, 139, 140, 135, 128, 135, 141, 142, 137, 138, 132, 139, 139, 145, 148, 144, 141, 150, 138, 145, 141, 147, 142, 139, 143, 147, 141, 137, 140, 142, 143, 140, 139, 141, 138, 133, 137, 136, 138, 140, 147, 138, 134, 142, 142, 141, 133, 132, 139, 140, 141, 136, 130, 142, 141, 142, 141, 142, 141, 133, 134, 139, 132, 138, 139, 136, 147, 143, 132, 143, 141, 144, 133, 138, 133, 138, 140, 136, 136, 135, 136, 141, 137, 145, 143, 141, 133, 141, 138, 140, 134, 144, 149, 134, 136, 136, 138, 137, 136, 146, 138, 141, 135, 144, 139, 142, 140, 133, 142, 140, 130, 138, 140, 141, 143, 150, 141, 141, 133, 139, 138, 138, 137, 138, 141, 136, 140, 142, 136, 141, 140, 130, 139, 141, 140, 143, 134, 142, 142, 142, 135, 137, 128, 140, 136, 135, 145, 139, 140, 133, 139, 137, 134, 136, 139, 140, 138, 140, 141, 142, 141, 139, 143, 141, 132, 144, 140, 142, 135, 140, 135, 139, 150, 138, 138, 141, 140, 145, 137, 139, 142, 137, 132, 140, 142, 135, 139, 139, 130, 136, 138, 139, 145, 140, 140, 135, 140, 141, 137, 139, 132, 140, 140, 137, 142, 147, 139, 137, 137, 137, 141, 139, 138, 135, 141, 141, 134, 146, 143, 141, 143, 145, 141, 140, 138, 136, 136, 141, 142, 136, 130, 141, 137, 135, 140, 143, 139, 133, 136, 141, 135, 139, 141, 143, 136, 139, 135, 133, 133, 137, 136, 136, 139, 139, 135, 138, 144, 135, 146, 128, 142, 142, 138, 141, 135, 138, 137, 146, 148, 136, 136, 134, 144, 131, 136, 139, 134, 132, 143, 133, 139, 137, 129, 130, 145, 139, 131, 137, 143, 145, 132, 135, 141, 143, 140, 134, 138, 141, 138, 140, 135, 138, 141, 141, 133, 139, 142, 138, 134, 134, 142, 135, 138, 144, 145, 141, 135, 140, 139, 156, 147, 139, 143, 134, 131, 142, 143, 146, 141, 139, 138, 137, 139, 139, 135, 143, 132, 141, 134, 137, 130, 140, 142, 139, 135, 139, 142, 145, 135, 136, 135, 139, 144, 141, 145, 137, 138, 132, 142, 141, 134, 136, 137, 124, 141, 163, 141, 131, 137, 136, 139, 133, 135, 139, 139, 141, 137, 136, 135, 131, 137, 136, 141, 145, 146, 143, 144, 138, 146, 138, 138, 138, 140, 132, 137, 139, 135, 142, 135, 137, 142, 136, 140, 136, 135, 140, 141, 134, 139, 137, 133, 143, 135, 138, 142, 133, 136, 145, 135, 136, 143, 137, 136, 132, 143, 142, 135, 133, 140, 142, 138, 140, 144, 139, 145, 145, 141, 138, 134, 135, 147, 139, 136, 133, 141, 141, 142, 137, 139, 140, 136, 133, 138, 137, 134, 145, 145, 134, 128, 135, 142, 137, 138, 136, 141, 139, 142, 137, 136, 137, 144, 132, 141, 141, 138, 135, 141, 136, 137, 142, 140, 135, 140, 144, 151, 137, 133, 133, 133, 142, 132, 130, 142, 138, 145, 143, 136, 148, 137, 138, 136, 134, 135, 140, 142, 128, 130, 131, 139, 132, 141, 129, 139, 136, 135, 138, 142, 143, 139, 130, 136, 133, 137, 140, 140, 139, 142, 148, 134, 137, 139, 142, 140, 129, 154, 143, 138, 139, 137, 145, 131, 142, 140, 139, 141, 137, 138, 145, 139, 135, 141, 137, 140, 138, 141, 142, 133, 138, 137, 143, 135, 140, 157, 142, 136, 146, 140, 141, 138, 137, 134, 141, 131, 140, 131, 139, 137, 141, 138, 139, 138, 134, 131, 141, 137, 137, 146, 138, 145, 142, 134, 133, 122, 135, 150, 144, 142, 144, 135, 129, 141, 137, 147, 140, 140, 139, 148, 146, 134, 138, 131, 144, 135, 139, 139, 136, 132, 129, 149, 139, 137, 132, 134, 163, 137, 143, 136, 139, 143, 141, 142, 140, 143, 143, 137, 144, 135, 138, 138, 144, 138, 137, 134, 143, 136, 119, 145, 136, 137, 143, 149, 136, 138, 136, 138, 140, 134, 140, 141, 143, 144, 144, 148, 138, 138, 138, 146, 142, 138, 137, 141, 136, 144, 140, 134, 139, 139, 142, 143, 131, 142, 138, 136, 138, 138, 136, 148, 138, 136, 138, 138, 137, 140, 137, 131, 144, 145, 145, 139, 137, 139, 140, 143, 139, 133, 134, 137, 142, 141, 134, 148, 136, 137, 143, 141, 144, 143, 137, 142, 142, 134, 137, 141, 140, 143, 137, 132, 144, 150, 138, 138, 137, 142, 138, 144, 134, 131, 136, 145, 141, 134, 145, 129, 137, 142, 137, 137, 139, 142, 140, 138, 133, 141, 136, 155, 132, 136, 145, 144, 135, 135, 142, 134, 132, 142, 137, 143, 138, 143, 142, 137, 142, 133, 139, 136, 146, 139, 132, 133, 136, 138, 137, 141, 142, 135, 138, 142, 141, 139, 137, 139, 136, 141, 142, 142, 138, 138, 150, 134, 147, 143, 120, 153, 135, 138, 138, 133, 140, 129, 140, 137, 142, 140, 136, 139, 140, 134, 139, 138, 134, 146, 140, 135, 149, 137, 129, 133, 142, 144, 133, 134, 139, 141, 135, 134, 137, 144, 140, 135, 133, 141, 138, 136, 135, 134, 146, 142, 136, 139, 141, 137, 135, 140, 137, 134, 138, 144, 135, 152, 146, 139, 131, 139, 146, 133, 140, 131, 141, 140, 142, 144, 137, 139, 144, 132, 139, 142, 135, 141, 142, 134, 135, 142, 136, 139, 140, 140, 140, 143, 137, 139, 137, 139, 134, 131, 146, 137, 136, 139, 144, 128, 138, 137, 136, 131, 130, 142, 140, 135, 135, 140, 140, 136, 143, 138, 136, 137, 143, 144, 141, 139, 135, 133, 134, 145, 137, 146, 140, 129, 140, 139, 133, 139, 135, 141, 140, 116, 144, 137, 142, 133, 133, 151, 144, 144, 132, 137, 137, 141, 138, 140, 141, 134, 135, 143, 133, 148, 135, 140, 133, 140, 139, 134, 142, 134, 133, 140, 133, 142, 138, 139, 138, 137, 134, 137, 138, 143, 143, 147, 139, 131, 136, 140, 141, 141, 147, 136, 139, 138, 130, 144, 136, 137, 141, 141, 140, 135, 142, 134, 139, 137, 140, 135, 139, 132, 140, 137, 145, 140, 141, 142, 143, 137, 137, 138, 134, 124, 151, 143, 131, 148, 129, 131, 145, 146, 136, 149, 135, 139, 131, 136, 144, 152, 144, 133, 146, 136, 127, 134, 148, 129, 137, 141, 145, 151, 133, 138, 142, 154, 141, 142, 134, 142, 150, 143, 130, 154, 143, 135, 137, 134, 139, 136, 141, 148, 136, 128, 136, 140, 140, 140, 138, 135, 134, 145, 132, 131, 136, 140, 139, 141, 143, 135, 136, 135, 140, 136, 137, 139, 129, 141, 141, 149, 143, 135, 142, 140, 143, 134, 130, 139, 140, 135, 136, 127, 147, 138, 139, 137, 138, 147, 131, 142, 134, 124, 143, 139, 137, 136, 140, 142, 137, 139, 133, 145, 143, 149, 136, 141, 143, 144, 146, 137, 142, 143, 135, 138, 160, 157, 148, 128, 144, 141, 148, 131, 142, 135, 125, 142, 124, 148, 140, 134, 151, 127, 137, 133, 139, 141, 136, 148, 137, 145, 148, 135, 139, 134, 143, 142, 132, 132, 141, 141, 135, 150, 141, 132, 138, 127, 135, 140, 125, 137, 133, 140, 136, 137, 140, 132, 135, 138, 138, 140, 137, 131, 141, 142, 131, 130, 146, 136, 143, 138, 136, 142, 137, 142, 145, 131, 148, 142, 137, 136, 124, 144, 138, 131, 136, 134, 142, 140, 126, 133, 131, 136, 137, 141, 133, 145, 143, 134, 140, 146, 140, 141, 134, 144, 154, 145, 151, 145, 149, 139, 132, 140, 146, 133, 136, 145, 138, 136, 137, 131, 131, 135, 144, 136, 136, 147, 140, 139, 147, 132, 140, 132, 131, 143, 141, 131, 133, 142, 140, 148, 127, 133, 140, 139, 126, 131, 138, 134, 130, 139, 121, 137, 143, 135, 136, 133, 137, 142, 127, 136, 141, 147, 136, 150, 147, 131, 145, 146, 128, 140, 138, 144, 146, 134, 133, 132, 153, 131, 131, 133, 129, 136, 141, 143, 148, 150, 130, 141, 129, 141, 147, 135, 138, 135, 131, 135, 141, 133, 135, 143, 136, 132, 135, 141, 144, 133, 143, 144, 133, 145, 130, 135, 138, 141, 136, 141, 133, 141, 141, 155, 130, 143, 145, 139, 136, 152, 137, 147, 146, 152, 131, 142, 132, 142, 136, 123, 132, 134, 142, 137, 139, 142, 141, 131, 149, 133, 136, 141, 131, 144, 143, 146, 133, 136, 148, 142, 144, 136, 140, 140, 132, 145, 132, 151, 141, 143, 129, 131, 141, 141, 134, 131, 137, 136, 126, 134, 144, 137, 138, 147, 133, 139, 144, 137, 128, 145, 138, 137, 134, 141, 141, 126, 142, 139, 142, 139, 137, 136, 134, 143, 131, 136, 132, 131, 146, 136, 131, 138, 139, 141, 136, 138, 140, 130, 141, 135, 140, 134, 147, 141, 138, 134, 145, 141, 138, 144, 128, 143, 146, 136, 149, 154, 142, 143, 142, 139, 142, 147, 135, 128, 131, 136, 136, 131, 132, 136, 137, 142, 141, 140, 142, 137, 137, 135, 154, 136, 138, 133, 146, 137, 127, 154, 135, 129, 148, 132, 142, 141, 142, 150, 136, 143, 134, 145, 144, 142, 145, 127, 141, 139, 138, 145, 144, 144, 141, 135, 140, 131, 137, 147, 139, 145, 141, 158, 137, 134, 126, 155, 143, 139, 140, 140, 142, 139, 141, 138, 142, 139, 135, 133, 143, 140, 139, 151, 134, 133, 142, 131, 138, 134, 140, 141, 142, 140, 134, 125, 139, 151, 138, 140, 132, 132, 138, 141, 138, 141, 131, 141, 133, 141, 135, 137, 137, 144, 136, 137, 137, 142, 140, 134, 135, 138, 148, 139, 141, 138, 131, 134, 132, 141, 139, 137, 138, 139, 142, 140, 136, 133, 148, 133, 143, 142, 139, 137, 139, 143, 138, 139, 137, 137, 137, 147, 135, 140, 136, 133, 134, 136, 148, 133, 131, 138, 134, 134, 141, 133, 139, 138, 135, 137, 141, 133, 139, 153, 141, 136, 139, 145, 138, 128, 143, 138, 148, 137, 142, 131, 138, 143, 145, 135, 153, 137, 140, 140, 142, 139, 143, 140, 131, 143, 136, 143, 134, 135, 143, 138, 125, 135, 140, 141, 137, 141, 133, 137, 137, 139, 141, 138, 144, 138, 141, 140, 147, 138, 128, 141, 139, 138, 143, 137, 132, 134, 140, 144, 140, 128, 140, 139, 136, 137, 136, 139, 140, 152, 137, 140, 135, 131, 140, 140, 132, 139, 143, 133, 140, 134, 136, 135, 142, 136, 144, 145, 137, 137, 137, 127, 142, 135, 143, 123, 139, 138, 133, 145, 144, 138, 140, 131, 136, 142, 140, 142, 141, 141, 146, 140, 134, 142, 143, 133, 132, 141, 140, 138, 135, 135, 135, 140, 140, 137, 141, 132, 152, 138, 137, 142, 140, 138, 134, 136, 139, 138, 143, 146, 148, 142, 137, 141, 143, 142, 142, 143, 145, 131, 133, 141, 135, 141, 135, 147, 139, 140, 145, 140, 139, 136, 151, 137, 137, 139, 143, 140, 139, 141, 134, 136, 139, 133, 140, 137, 144, 141, 135, 137, 143, 136, 140, 143, 145, 140, 139, 135, 140, 135, 138, 141, 144, 142, 143, 129, 135, 134, 140, 134, 138, 141, 140, 137, 140, 142, 137, 150, 138, 141, 137, 129, 148, 136, 142, 131, 138, 142, 139, 139, 130, 138, 138, 137, 138, 128, 149, 139, 141, 144, 134, 137, 138, 142, 139, 137, 137, 138, 134, 138, 127, 139, 138, 140, 142, 143, 142, 140, 142, 143, 141, 145, 139, 135, 134, 145, 143, 134, 140, 135, 145, 135, 139, 140, 138, 148, 139, 141, 130, 142, 134, 142, 138, 139, 139, 141, 136, 139, 137, 134, 134, 142, 138, 136, 141, 139, 138, 144, 142, 141, 139, 144, 136, 144, 145, 131, 135, 138, 135, 133, 128, 134, 141, 136, 139, 143, 139, 148, 146, 141, 130, 135, 140, 137, 140, 138, 140, 140, 136, 135, 141, 135, 135, 137, 141, 141, 141, 143, 142, 139, 134, 141, 137, 141, 142, 133, 142, 140, 137, 140, 144, 132, 135, 136, 139, 146, 142, 144, 141, 138, 134, 139, 131, 157, 137, 140, 131, 147, 139, 141, 142, 134, 138, 136, 147, 143, 143, 135, 135, 146, 130, 136, 142, 123, 133, 141, 137, 140, 133, 141, 136, 134, 142, 136, 146, 137, 133, 138, 138, 143, 135, 139, 132, 145, 136, 141, 139, 136, 142, 140, 135, 140, 137, 140, 132, 136, 135, 149, 146, 145, 144, 139, 141, 138, 137, 140, 132, 150, 141, 137, 136, 152, 149, 140, 134, 142, 142, 145, 138, 140, 134, 136, 146, 123, 137, 135, 125, 145, 140, 140, 127, 122, 139, 140, 143, 137, 129, 127, 137, 134, 131, 132, 141, 145, 138, 143, 135, 140, 138, 129, 137, 140, 128, 142, 138, 129, 136, 140, 137, 137, 143, 123, 136, 137, 137, 137, 142, 139, 135, 140, 129, 143, 144, 130, 130, 144, 134, 141, 136, 140, 139, 130, 142, 145, 138, 140, 140, 143, 148, 140, 143, 140, 141, 144, 136, 143, 142, 148, 142, 143, 135, 134, 131, 142, 131, 131, 138, 139, 142, 143, 141, 141, 136, 150, 137, 135, 144, 140, 136, 138, 134, 143, 139, 138, 146, 137, 145, 144, 135, 141, 149, 140, 137, 144, 145, 143, 138, 140, 144, 143, 133, 133, 135, 133, 131, 134, 139, 136, 144, 146, 141, 136, 141, 129, 135, 131, 132, 142, 131, 140, 141, 141, 127, 144, 132, 136, 131, 141, 133, 133, 151, 126, 138, 147, 136, 129, 142, 148, 126, 146, 130, 121, 138, 142, 146, 138, 140, 134, 129, 147, 137, 138, 134, 134, 139, 133, 156, 143, 134, 129, 135, 142, 140, 146, 135, 146, 137, 144, 143, 138, 135, 140, 130, 148, 135, 134, 133, 137, 137, 137, 129, 136, 138, 127, 140, 128, 123, 139, 145, 153, 132, 118, 125, 137, 139, 139, 139, 146, 136, 141, 136, 151, 141, 134, 139, 148, 144, 134, 145, 144, 135, 141, 141, 151, 151, 135, 129, 148, 131, 138, 139, 149, 145, 141, 126, 138, 136, 139, 145, 134, 133, 140, 139, 135, 129, 127, 141, 128, 166, 142, 141, 142, 146, 143, 136, 143, 139, 148, 135, 135, 126, 125, 125, 139, 151, 145, 140, 141, 139, 140, 142, 132, 149, 146, 142, 130, 137, 155, 141, 129, 130, 149, 138, 147, 134, 139, 136, 140, 137, 148, 133, 145, 136, 137, 141, 132, 143, 143, 144, 127, 133, 142, 139, 141, 139, 135, 142, 118, 137, 144, 142, 130, 132, 150, 144, 143, 134, 136, 141, 130, 143, 140, 142, 124, 139, 143, 135, 138, 129, 143, 135, 138, 145, 136, 136, 138, 134, 143, 143, 132, 124, 140, 137, 150, 129, 137, 132, 134, 142, 152, 133, 143, 139, 133, 130, 140, 141, 132, 138, 137, 131, 142, 142, 137, 136, 138, 145, 128, 148, 149, 143, 138, 140, 136, 145, 139, 150, 132, 145, 135, 130, 145, 137, 136, 148, 131, 138, 129, 133, 136, 140, 133, 131, 139, 149, 140, 149, 141, 134, 135, 158, 141, 139, 151, 136, 146, 141, 134, 138, 133, 143, 141, 136, 135, 132, 137, 138, 141, 135, 142, 143, 139, 137, 136, 131, 142, 140, 154, 134, 126, 135, 147, 136, 135, 139, 142, 137, 130, 145, 138, 148, 140, 130, 141, 133, 141, 134, 147, 151, 140, 145, 148, 139, 136, 140, 138, 131, 135, 140, 142, 144, 147, 133, 132, 146, 137, 138, 142, 135, 143, 142, 133, 131, 137, 146, 137, 139, 163, 145, 143, 142, 127, 146, 144, 143, 127, 151, 141, 138, 138, 146, 128, 140, 143, 139, 141, 139, 131, 142, 137, 141, 141, 140, 140, 137, 141, 134, 146, 138, 137, 140, 134, 139, 147, 140, 142, 143, 134, 147, 147, 136, 146, 137, 139, 135, 143, 149, 142, 142, 139, 134, 146, 136, 129, 141, 144, 145, 129, 141, 139, 137, 138, 131, 137, 143, 138, 132, 136, 143, 142, 148, 140, 142, 137, 138, 141, 139, 138, 128, 139, 139, 131, 141, 140, 142, 144, 140, 146, 137, 137, 138, 139, 135, 134, 136, 131, 134, 140, 138, 138, 137, 146, 137, 141, 139, 135, 131, 148, 132, 135, 143, 141, 132, 132, 137, 146, 141, 137, 144, 139, 142, 140, 143, 136, 140, 136, 138, 132, 154, 140, 142, 137, 142, 143, 144, 144, 138, 145, 133, 138, 145, 133, 134, 131, 138, 141, 133, 145, 134, 143, 145, 140, 135, 132, 133, 132, 151, 145, 145, 133, 134, 135, 138, 142, 135, 131, 133, 142, 149, 144, 137, 133, 128, 138, 135, 144, 139, 140, 133, 142, 143, 132, 135, 141, 136, 133, 137, 138, 144, 145, 145, 137, 139, 133, 136, 137, 138, 141, 145, 135, 135, 141, 144, 144, 139, 134, 140, 128, 133, 145, 134, 139, 137, 138, 135, 136, 143, 142, 136, 146, 133, 136, 146, 143, 140, 143, 135, 131, 139, 137, 131, 133, 142, 139, 139, 149, 134, 138, 137, 136, 134, 142, 134, 131, 135, 137, 146, 139, 131, 141, 142, 141, 148, 134, 137, 144, 141, 142, 152, 144, 149, 144, 137, 135, 141, 140, 130, 135, 129, 135, 134, 129, 148, 142, 132, 129, 132, 146, 142, 144, 134, 143, 135, 140, 140, 135, 144, 136, 139, 147, 137, 147, 137, 138, 132, 139, 137, 137, 139, 132, 144, 134, 140, 144, 143, 139, 138, 140, 138, 146, 136, 137, 134, 142, 145, 138, 135, 159, 132, 137, 138, 142, 136, 133, 139, 137, 141, 135, 129, 141, 130, 140, 146, 141, 138, 135, 134, 139, 139, 142, 140, 138, 138, 137, 133, 141, 143, 136, 138, 143, 144, 138, 131, 140, 141, 140, 128, 141, 146, 139, 138, 133, 146, 140, 132, 140, 145, 138, 135, 146, 140, 142, 140, 140, 137, 136, 140, 144, 139, 144, 134, 141, 134, 135, 129, 149, 139, 136, 143, 140, 142, 139, 138, 144, 140, 127, 135, 138, 132, 139, 137, 132, 137, 141, 139, 151, 140, 138, 131, 147, 141, 142, 141, 144, 148, 136, 148, 136, 128, 142, 136, 133, 140, 146, 135, 142, 135, 136, 140, 131, 142, 131, 146, 143, 127, 140, 141, 143, 141, 138, 143, 133, 133, 138, 143, 142, 138, 134, 129, 134, 133, 132, 140, 137, 140, 130, 138, 143, 138, 138, 134, 141, 135, 139, 143, 135, 134, 134, 134, 141, 140, 134, 142, 140, 139, 136, 140, 147, 135, 134, 137, 142, 130, 135, 142, 137, 140, 129, 142, 134, 142, 135, 142, 146, 136, 134, 127, 139, 140, 134, 146, 143, 134, 132, 148, 144, 131, 137, 139, 136, 137, 140, 140, 142, 144, 136, 135, 131, 149, 144, 137, 135, 141, 134, 139, 138, 137, 138, 140, 145, 140, 130, 137, 138, 142, 136, 149, 139, 136, 139, 141, 146, 133, 139, 144, 139, 138, 142, 139, 144, 147, 133, 137, 136, 148, 148, 136, 134, 136, 140, 136, 132, 132, 152, 137, 132, 141, 149, 138, 130, 133, 137, 139, 135, 137, 132, 144, 132, 139, 137, 136, 139, 133, 133, 134, 135, 131, 134, 137, 140, 144, 144, 133, 136, 145, 125, 148, 139, 133, 149, 133, 136, 137, 144, 141, 133, 138, 126, 130, 135, 148, 144, 141, 131, 139, 134, 140, 131, 138, 141, 138, 141, 146, 136, 144, 142, 142, 138, 143, 135, 141, 139, 143, 142, 146, 135, 140, 140, 142, 133, 141, 134, 142, 149, 140, 139, 143, 136, 134, 142, 137, 151, 143, 139, 128, 137, 141, 142, 127, 126, 141, 142, 131, 143, 137, 134, 137, 139, 142, 146, 129, 137, 139, 147, 134, 144, 140, 137, 148, 136, 138, 140, 134, 144, 137, 146, 135, 148, 142, 143, 139, 137, 137, 136, 140, 143, 134, 146, 151, 131, 144, 138, 135, 138, 129, 139, 138, 130, 148, 139, 125, 136, 141, 135, 149, 132, 136, 137, 131, 142, 136, 138, 148, 138, 136, 138, 144, 134, 139, 128, 139, 138, 146, 138, 143, 141, 138, 143, 133, 143, 146, 143, 134, 138, 137, 140, 145, 146, 143, 133, 137, 139, 140, 135, 141, 131, 149, 134, 140, 134, 146, 134, 148, 142, 143, 139, 137, 137, 126, 143, 137, 134, 135, 138, 140, 134, 146, 135, 134, 142, 139, 140, 139, 144, 140, 136, 134, 134, 130, 134, 137, 135, 138, 131, 137, 144, 140, 140, 146, 135, 135, 138, 136, 147, 146, 133, 136, 143, 142, 145, 142, 145, 146, 141, 147, 131, 135, 138, 141, 141, 138, 135, 148, 146, 137, 136, 139, 144, 140, 135, 143, 143, 142, 132, 138, 136, 133, 138, 147, 126, 121, 132, 135, 138, 143, 138, 138, 135, 132, 138, 140, 140, 139, 141, 141, 142, 132, 140, 138, 139, 136, 141, 143, 140, 137, 138, 146, 136, 134, 146, 146, 140, 131, 138, 138, 138, 150, 140, 136, 142, 138, 136, 142, 136, 136, 137, 136, 140, 135, 143, 128, 128, 143, 136, 131, 136, 135, 143, 146, 141, 144, 144, 143, 137, 138, 149, 138, 140, 133, 142, 142, 134, 138, 144, 139, 140, 138, 139, 132, 134, 137, 148, 141, 137, 127, 137, 138, 140, 144, 136, 140, 142, 141, 143, 143, 139, 147, 141, 127, 139, 149, 140, 142, 141, 135, 143, 138, 142, 137, 137, 139, 138, 138, 136, 134, 144, 140, 133, 136, 139, 137, 136, 142, 141, 144, 140, 140, 122, 144, 140, 148, 145, 135, 133, 133, 136, 144, 138, 143, 141, 139, 130, 136, 136, 127, 141, 143, 134, 147, 131, 144, 139, 146, 134, 139, 141, 144, 127, 137, 139, 131, 140, 145, 139, 144, 147, 134, 137, 138, 133, 146, 138, 135, 149, 140, 139, 133, 135, 131, 142, 139, 144, 147, 141, 145, 143, 139, 139, 135, 142, 140, 139, 134, 137, 144, 133, 143, 135, 151, 135, 138, 143, 148, 142, 135, 148, 133, 135, 138, 137, 141, 137, 139, 144, 133, 142, 134, 132, 133, 136, 145, 139, 140, 142, 124, 139, 137, 132, 138, 141, 148, 135, 143, 127, 148, 136, 140, 141, 131, 129, 138, 134, 139, 150, 135, 139, 141, 138, 140, 133, 135, 130, 132, 142, 132, 135, 138, 136, 135, 131, 132, 138, 136, 144, 149, 141, 131, 135, 136, 141, 130, 141, 145, 146, 143, 135, 142, 146, 141, 128, 138, 157, 151, 136, 143, 140, 137, 139, 147, 135, 146, 146, 131, 144, 136, 141, 140, 140, 141, 133, 131, 146, 141, 146, 136, 135, 146, 135, 145, 145, 138, 135, 137, 132, 147, 141, 129, 144, 144, 137, 132, 147, 139, 137, 133, 137, 145, 147, 130, 119, 146, 134, 141, 145, 138, 134, 150, 129, 132, 144, 146, 144, 149, 144, 132, 139, 134, 138, 139, 138, 134, 135, 136, 147, 152, 132, 139, 143, 137, 135, 139, 141, 139, 144, 142, 133, 139, 140, 155, 134, 128, 140, 147, 132, 138, 139, 143, 143, 143, 142, 133, 138, 147, 136, 146, 145, 137, 143, 136, 135, 137, 137, 141, 138, 136, 131, 142, 137, 144, 142, 138, 136, 145, 139, 136, 139, 128, 138, 137, 141, 141, 145, 139, 143, 129, 142, 138, 141, 138, 139, 140, 150, 144, 138, 140, 134, 140, 134, 142, 141, 141, 139, 134, 138, 142, 134, 139, 144, 131, 148, 154, 138, 138, 140, 138, 138, 138, 136, 141, 132, 133, 137, 135, 136, 142, 151, 138, 138, 144, 141, 142, 141, 141, 143, 141, 144, 147, 139, 136, 136, 146, 142, 141, 133, 138, 144, 129, 141, 134, 135, 134, 152, 143, 136, 139, 130, 149, 151, 129, 142, 132, 142, 146, 138, 138, 139, 142, 139, 128, 141, 142, 138, 135, 144, 140, 138, 140, 129, 136, 153, 147, 149, 133, 144, 142, 143, 140, 141, 138, 142, 135, 143, 144, 142, 134, 138, 141, 139, 135, 136, 143, 135, 133, 149, 134, 134, 142, 139, 147, 140, 133, 138, 142, 136, 142, 135, 145, 134, 136, 136, 145, 148, 131, 137, 138, 142, 133, 140, 143, 132, 142, 147, 145, 136, 133, 145, 131, 143, 132, 141, 140, 143, 140, 144, 135, 138, 139, 126, 139, 129, 136, 135, 132, 145, 145, 141, 134, 140, 139, 128, 136, 139, 133, 136, 136, 140, 141, 145, 135, 136, 132, 140, 131, 138, 125, 146, 128, 140, 144, 135, 138, 134, 135, 142, 146, 130, 136, 143, 134, 145, 149, 144, 141, 132, 130, 143, 144, 136, 136, 146, 142, 134, 140, 142, 134, 139, 139, 139, 134, 134, 133, 140, 142, 136, 141, 124, 126, 151, 143, 143, 147, 141, 139, 141, 137, 136, 138, 143, 141, 145, 144, 142, 134, 141, 149, 130, 128, 138, 141, 136, 142, 136, 139, 137, 142, 133, 137, 135, 144, 142, 146, 135, 141, 135, 132, 138, 135, 137, 138, 135, 144, 136, 135, 142, 141, 152, 140, 143, 132, 134, 139, 145, 141, 141, 143, 137, 147, 138, 139, 151, 132, 128, 136, 142, 144, 139, 135, 137, 137, 138, 130, 135, 143, 137, 140, 142, 132, 142, 144, 134, 144, 141, 149, 143, 148, 149, 131, 148, 146, 135, 148, 134, 141, 135, 143, 135, 144, 133, 137, 140, 140, 137, 141, 135, 137, 140, 140, 136, 133, 137, 144, 141, 137, 132, 132, 142, 143, 138, 135, 134, 140, 138, 140, 141, 138, 143, 121, 139, 135, 140, 139, 134, 137, 138, 139, 139, 142, 146, 133, 131, 133, 136, 143, 136, 139, 136, 135, 140, 141, 134, 135, 130, 132, 139, 130, 144, 137, 138, 140, 138, 133, 134, 144, 139, 142, 137, 139, 147, 136, 139, 143, 134, 134, 143, 148, 144, 136, 138, 137, 137, 136, 140, 135, 141, 130, 150, 152, 138, 133, 137, 134, 137, 138, 137, 142, 134, 135, 136, 157, 147, 136, 139, 140, 137, 131, 137, 137, 139, 139, 143, 140, 139, 134, 138, 138, 135, 139, 137, 147, 136, 146, 144, 134, 144, 144, 137, 135, 136, 139, 141, 138, 135, 134, 133, 146, 142, 135, 144, 131, 137, 139, 139, 143, 136, 144, 143, 136, 133, 128, 141, 132, 138, 138, 131, 134, 140, 142, 140, 145, 139, 133, 139, 137, 139, 138, 133, 137, 142, 140, 133, 134, 135, 145, 155, 146, 135, 139, 147, 143, 134, 136, 130, 137, 136, 140, 146, 140, 142, 138, 144, 143, 146, 131, 143, 138, 135, 141, 145, 147, 133, 141, 137, 140, 136, 153, 138, 138, 142, 144, 135, 141, 136, 133, 132, 135, 142, 136, 140, 133, 135, 135, 135, 139, 141, 136, 136, 145, 139, 134, 145, 136, 132, 143, 136, 142, 134, 142, 140, 143, 138, 138, 142, 138, 137, 140, 139, 136, 141, 141, 133, 138, 138, 140, 136, 139, 134, 127, 132, 144, 139, 136, 139, 144, 142, 145, 135, 142, 134, 143, 138, 125, 143, 132, 141, 140, 153, 137, 146, 140, 142, 137, 131, 134, 140, 138, 138, 136, 138, 129, 137, 128, 134, 137, 140, 140, 130, 133, 142, 139, 135, 140, 132, 144, 133, 140, 138, 145, 137, 126, 136, 143, 137, 137, 139, 136, 136, 143, 138, 142, 130, 129, 151, 138, 144, 137, 143, 137, 151, 142, 133, 139, 139, 136, 135, 143, 127, 127, 140, 141, 143, 143, 142, 144, 136, 143, 139, 137, 139, 133, 139, 139, 133, 147, 140, 136, 131, 139, 140, 139, 138, 137, 132, 161, 143, 137, 137, 146, 135, 138, 142, 133, 136, 137, 137, 145, 134, 147, 144, 137, 145, 150, 141, 142, 127, 146, 142, 138, 153, 144, 135, 136, 140, 146, 137, 149, 139, 143, 141, 137, 135, 132, 137, 132, 139, 143, 141, 132, 143, 142, 134, 138, 149, 136, 146, 137, 130, 138, 136, 132, 147, 138, 132, 143, 134, 132, 143, 137, 144, 139, 143, 144, 135, 139, 136, 142, 142, 144, 139, 141, 137, 148, 144, 139, 144, 139, 131, 139, 134, 134, 134, 143, 134, 137, 145, 139, 137, 140, 138, 142, 134, 144, 139, 138, 143, 134, 142, 135, 136, 146, 138, 141, 137, 136, 135, 144, 137, 144, 148, 137, 136, 140, 140, 135, 129, 148, 144, 139, 138, 139, 137, 133, 140, 145, 141, 137, 132, 142, 139, 149, 137, 147, 146, 144, 145, 135, 137, 143, 133, 138, 137, 137, 137, 139, 145, 147, 134, 128, 141, 133, 143, 146, 132, 139, 136, 141, 131, 144, 146, 143, 133, 141, 142, 143, 139, 132, 141, 138, 140, 132, 141, 136, 132, 140, 140, 137, 137, 143, 137, 140, 142, 135, 142, 143, 136, 130, 130, 141, 145, 136, 136, 143, 135, 142, 135, 140, 138, 133, 145, 141, 144, 133, 146, 136, 135, 154, 143, 134, 137, 134, 133, 147, 135, 142, 146, 144, 133, 138, 139, 140, 142, 144, 137, 137, 147, 137, 137, 130, 135, 142, 137, 134, 135, 134, 145, 139, 140, 134, 130, 132, 128, 140, 130, 136, 139, 144, 141, 133, 138, 145, 134, 141, 134, 141, 142, 140, 138, 144, 134, 132, 140, 138, 150, 138, 134, 143, 135, 148, 148, 141, 140, 133, 145, 139, 128, 136, 140, 139, 141, 147, 143, 140, 141, 153, 140, 149, 133, 140, 140, 137, 140, 146, 140, 139, 139, 138, 137, 139, 141, 140, 137, 137, 147, 133, 138, 139, 137, 134, 138, 140, 145, 134, 138, 143, 142, 143, 144, 143, 152, 136, 131, 138, 131, 142, 143, 137, 138, 145, 137, 135, 141, 137, 134, 133, 144, 131, 134, 139, 139, 139, 158, 144, 141, 137, 137, 142, 146, 152, 138, 132, 139, 142, 141, 145, 136, 134, 124, 132, 139, 129, 137, 142, 147, 136, 141, 130, 137, 136, 138, 136, 141, 137, 140, 136, 135, 157, 130, 136, 133, 140, 140, 147, 138, 146, 134, 136, 142, 138, 133, 154, 129, 144, 140, 140, 145, 142, 147, 140, 136, 139, 137, 137, 135, 137, 133, 139, 142, 140, 137, 135, 138, 139, 134, 135, 145, 142, 141, 135, 131, 143, 148, 142, 140, 141, 136, 138, 136, 138, 149, 132, 138, 139, 128, 142, 136, 142, 139, 132, 140, 143, 132, 140, 141, 141, 143, 138, 145, 140, 140, 132, 138, 127, 137, 132, 140, 149, 144, 139, 132, 140, 140, 143, 143, 141, 145, 137, 134, 133, 141, 144, 143, 138, 136, 142, 139, 146, 142, 142, 142, 134, 138, 135, 154, 144, 127, 137, 141, 128, 139, 147, 136, 134, 145, 134, 134, 142, 141, 133, 148, 133, 136, 141, 139, 138, 132, 145, 128, 134, 141, 138, 128, 135, 144, 138, 146, 139, 139, 132, 127, 143, 143, 140, 141, 136, 144, 135, 132, 143, 133, 138, 131, 142, 132, 143, 145, 139, 140, 129, 136, 135, 144, 134, 134, 141, 136, 132, 140, 139, 137, 135, 131, 135, 136, 139, 135, 145, 145, 145, 138, 133, 137, 143, 143, 139, 142, 138, 138, 132, 138, 140, 131, 141, 147, 137, 142, 136, 140, 147, 133, 140, 142, 137, 134, 141, 143, 129, 140, 142, 137, 141, 140, 140, 141, 145, 142, 132, 138, 143, 137, 152, 134, 141, 134, 153, 150, 143, 134, 143, 143, 139, 134, 139, 138, 138, 148, 140, 141, 134, 149, 145, 132, 134, 137, 141, 138, 134, 136, 139, 140, 141, 138, 137, 137, 136, 136, 147, 135, 141, 140, 140, 132, 135, 137, 135, 148, 138, 134, 147, 142, 140, 137, 144, 143, 144, 130, 138, 134, 141, 137, 147, 139, 141, 149, 135, 133, 144, 134, 133, 144, 140, 137, 137, 131, 130, 138, 135, 130, 139, 139, 139, 138, 132, 144, 134, 134, 141, 139, 144, 146, 133, 138, 140, 142, 126, 135, 139, 140, 137, 135, 143, 131, 137, 138, 141, 136, 146, 133, 143, 139, 141, 140, 133, 137, 139, 150, 137, 139, 135, 131, 129, 142, 143, 132, 145, 132, 145, 138, 136, 136, 137, 137, 140, 141, 140, 146, 132, 133, 131, 139, 136, 140, 134, 137, 140, 135, 135, 142, 137, 140, 138, 137, 136, 144, 152, 134, 138, 147, 139, 136, 134, 138, 137, 140, 141, 144, 135, 138, 138, 131, 139, 136, 127, 130, 143, 135, 144, 135, 134, 151, 140, 138, 139, 146, 140, 138, 142, 142, 139, 139, 138, 139, 135, 137, 129, 138, 144, 140, 147, 135, 138, 143, 139, 137, 129, 132, 139, 139, 142, 142, 137, 139, 143, 136, 136, 140, 137, 133, 140, 143, 134, 144, 153, 145, 136, 138, 143, 137, 138, 136, 146, 145, 135, 133, 144, 135, 144, 139, 145, 138, 132, 142, 143, 143, 131, 136, 131, 138, 144, 128, 143, 125, 151, 140, 147, 139, 136, 134, 142, 136, 137, 136, 142, 135, 142, 142, 145, 134, 149, 136, 136, 137, 139, 148, 133, 150, 134, 141, 136, 131, 132, 134, 142, 128, 128, 138, 149, 140, 138, 135, 137, 129, 135, 141, 137, 128, 132, 146, 137, 140, 144, 133, 142, 139, 144, 139, 137, 143, 140, 133, 142, 137, 148, 151, 145, 146, 143, 137, 139, 136, 134, 133, 129, 140, 135, 136, 133, 133, 141, 135, 132, 131, 147, 142, 141, 140, 140, 137, 133, 133, 143, 135, 136, 134, 131, 143, 135, 148, 129, 152, 137, 138, 138, 138, 140, 134, 141, 149, 136, 139, 137, 143, 138, 136, 140, 142, 141, 131, 143, 138, 135, 129, 144, 141, 131, 137, 143, 141, 136, 135, 143, 135, 141, 142, 137, 135, 132, 139, 142, 148, 140, 141, 139, 130, 134, 148, 147, 149, 132, 133, 142, 136, 143, 132, 142, 143, 145, 136, 137, 137, 142, 143, 137, 140, 138, 140, 138, 139, 139, 132, 142, 139, 142, 141, 139, 141, 145, 140, 142, 140, 132, 138, 139, 144, 132, 131, 137, 142, 138, 142, 143, 131, 144, 137, 136, 133, 145, 136, 135, 137, 135, 144, 135, 141, 146, 136, 138, 147, 137, 124, 129, 141, 149, 136, 137, 141, 142, 145, 142, 131, 136, 139, 139, 139, 137, 140, 135, 155, 134, 136, 141, 141, 141, 142, 139, 143, 137, 135, 136, 143, 144, 140, 148, 137, 139, 143, 145, 137, 142, 134, 140, 140, 133, 150, 145, 141, 144, 140, 131, 136, 146, 144, 127, 140, 138, 138, 144, 129, 133, 140, 142, 137, 136, 145, 138, 134, 147, 135, 138, 137, 144, 128, 155, 136, 135, 133, 143, 129, 139, 129, 148, 133, 141, 137, 130, 134, 141, 133, 144, 141, 146, 136, 135, 132, 147, 137, 136, 130, 148, 142, 130, 135, 131, 127, 147, 147, 149, 145, 149, 133, 142, 134, 131, 144, 147, 142, 137, 131, 144, 139, 145, 142, 133, 137, 140, 135, 137, 153, 141, 133, 139, 152, 134, 146, 136, 139, 137, 134, 139, 137, 136, 139, 144, 136, 138, 150, 132, 142, 138, 133, 142, 130, 147, 144, 152, 145, 141, 133, 136, 145, 132, 134, 140, 144, 148, 151, 138, 145, 134, 149, 140, 131, 132, 134, 143, 131, 139, 151, 132, 127, 155, 127, 144, 130, 139, 123, 140, 140, 133, 128, 143, 145, 121, 138, 137, 144, 124, 141, 144, 137, 148, 137, 141, 136, 141, 137, 136, 149, 129, 147, 146, 134, 143, 145, 130, 141, 138, 143, 133, 140, 130, 136, 140, 136, 146, 130, 134, 143, 136, 137, 146, 142, 135, 155, 147, 141, 131, 126, 141, 143, 144, 135, 139, 136, 149, 147, 137, 133, 134, 132, 142, 142, 132, 138, 130, 135, 142, 140, 144, 127, 131, 140, 126, 125, 133, 142, 146, 136, 139, 142, 143, 137, 129, 139, 133, 141, 158, 146, 153, 137, 140, 132, 140, 146, 123, 139, 138, 136, 140, 135, 135, 133, 135, 138, 129, 136, 133, 142, 141, 145, 127, 136, 140, 128, 137, 132, 135, 135, 127, 129, 140, 133, 141, 150, 148, 148, 134, 143, 137, 130, 130, 149, 133, 146, 122, 137, 128, 137, 144, 145, 134, 134, 135, 148, 136, 140, 134, 135, 133, 133, 139, 134, 149, 130, 133, 133, 140, 134, 140, 143, 135, 145, 136, 139, 143, 135, 137, 131, 129, 142, 134, 142, 126, 138, 135, 136, 146, 141, 140, 142, 138, 141, 133, 131, 138, 140, 132, 135, 129, 125, 132, 124, 138, 131, 132, 134, 139, 139, 131, 146, 134, 135, 142, 140, 136, 140, 146, 137, 129, 138, 129, 136, 148, 135, 153, 120, 133, 144, 151, 133, 129, 147, 137, 132, 143, 131, 137, 127, 150, 146, 149, 136, 145, 142, 133, 151, 126, 136, 132, 126, 155, 145, 141, 144, 146, 139, 137, 135, 124, 142, 129, 145, 143, 144, 133, 134, 136, 141, 139, 144, 140, 133, 137, 140, 140, 133, 138, 149, 133, 129, 143, 144, 125, 157, 134, 144, 141, 143, 134, 141, 143, 141, 131, 138, 127, 141, 141, 132, 140, 142, 133, 133, 127, 134, 144, 136, 125, 143, 133, 141, 141, 142, 129, 134, 137, 144, 147, 131, 133, 136, 129, 136, 141, 134, 137, 126, 143, 144, 150, 149, 131, 146, 133, 137, 141, 141, 143, 126, 140, 136, 141, 135, 133, 132, 140, 144, 146, 148, 136, 144, 138, 142, 135, 128, 138, 133, 137, 133, 143, 143, 150, 146, 124, 130, 143, 143, 135, 132, 149, 136, 143, 151, 141, 137, 139, 142, 148, 138, 152, 137, 133, 133, 137, 126, 142, 143, 136, 127, 141, 140, 134, 126, 134, 133, 140, 137, 152, 144, 140, 135, 139, 134, 149, 142, 141, 135, 129, 139, 144, 137, 133, 149, 131, 128, 136, 138, 139, 134, 150, 144, 142, 139, 135, 133, 129, 134, 150, 139, 132, 138, 134, 130, 143, 138, 132, 135, 139, 138, 133, 146, 135, 139, 139, 145, 146, 138, 135, 147, 131, 131, 126, 134, 148, 136, 133, 141, 135, 134, 133, 136, 139, 141, 145, 136, 141, 141, 135, 135, 139, 127, 137, 129, 142, 144, 131, 136, 141, 149, 135, 131, 141, 135, 129, 139, 139, 139, 132, 139, 138, 145, 144, 143, 142, 134, 132, 133, 144, 141, 149, 143, 139, 143, 137, 133, 142, 134, 143, 124, 146, 129, 140, 140, 142, 134, 141, 129, 142, 135, 146, 131, 148, 143, 137, 132, 134, 147, 155, 139, 140, 134, 135, 132, 131, 144, 137, 130, 147, 135, 135, 138, 145, 136, 132, 139, 142, 143, 140, 135, 134, 137, 136, 139, 134, 132, 136, 143, 136, 133, 139, 142, 145, 142, 143, 140, 138, 149, 132, 141, 136, 142, 132, 140, 153, 132, 149, 145, 140, 140, 129, 133, 137, 134, 137, 133, 132, 136, 135, 138, 148, 141, 142, 143, 141, 142, 135, 129, 137, 137, 137, 139, 143, 130, 137, 144, 129, 144, 145, 131, 135, 148, 147, 147, 128, 141, 140, 147, 142, 129, 135, 140, 139, 133, 141, 153, 131, 141, 140, 134, 136, 143, 132, 140, 146, 144, 144, 130, 128, 143, 139, 137, 135, 139, 135, 144, 141, 133, 141, 148, 139, 137, 145, 139, 139, 140, 134, 146, 137, 149, 134, 146, 144, 136, 126, 139, 142, 145, 141, 143, 137, 140, 138, 139, 142, 139, 140, 142, 128, 146, 139, 137, 135, 136, 144, 138, 131, 132, 139, 133, 142, 137, 141, 127, 136, 145, 138, 139, 145, 136, 138, 139, 141, 142, 140, 139, 145, 140, 133, 143, 137, 150, 130, 138, 146, 133, 133, 135, 141, 128, 144, 138, 149, 141, 141, 145, 127, 145, 134, 127, 139, 136, 138, 133, 144, 140, 145, 155, 142, 139, 138, 139, 143, 136, 139, 132, 147, 137, 133, 137, 136, 138, 137, 135, 140, 129, 141, 133, 135, 141, 135, 140, 146, 136, 131, 138, 127, 139, 139, 134, 135, 140, 129, 140, 141, 140, 139, 146, 143, 138, 133, 146, 127, 145, 135, 143, 142, 133, 137, 137, 146, 134, 133, 136, 132, 134, 135, 141, 136, 146, 133, 146, 136, 132, 137, 138, 138, 136, 138, 138, 139, 136, 139, 139, 143, 136, 131, 146, 145, 143, 138, 139, 141, 141, 132, 140, 133, 140, 136, 142, 147, 141, 133, 145, 136, 138, 142, 140, 143, 143, 143, 131, 142, 131, 128, 140, 148, 143, 143, 128, 148, 142, 137, 126, 143, 141, 137, 144, 148, 133, 133, 133, 143, 147, 146, 146, 143, 143, 133, 140, 143, 141, 128, 135, 142, 134, 135, 134, 141, 132, 148, 146, 144, 142, 138, 141, 136, 125, 136, 142, 140, 143, 136, 130, 139, 139, 135, 137, 136, 139, 139, 144, 140, 137, 138, 138, 142, 140, 150, 136, 141, 146, 143, 137, 132, 153, 128, 131, 149, 134, 142, 134, 138, 142, 135, 134, 129, 147, 144, 141, 146, 144, 142, 139, 141, 137, 140, 153, 141, 132, 130, 141, 138, 137, 132, 142, 142, 143, 147, 135, 139, 133, 137, 149, 137, 137, 140, 139, 137, 131, 157, 138, 135, 133, 126, 143, 142, 145, 144, 138, 140, 142, 143, 135, 146, 151, 135, 140, 149, 137, 138, 136, 150, 150, 135, 144, 135, 144, 145, 133, 148, 143, 139, 142, 137, 134, 139, 138, 143, 148, 148, 136, 148, 139, 135, 138, 136, 132, 130, 138, 141, 148, 144, 139, 138, 135, 149, 135, 139, 127, 134, 139, 146, 140, 131, 143, 142, 136, 139, 140, 135, 139, 138, 136, 145, 134, 139, 129, 130, 142, 136, 138, 147, 148, 136, 143, 136, 138, 147, 139, 131, 142, 149, 146, 133, 130, 135, 132, 140, 143, 129, 155, 132, 136, 129, 143, 132, 136, 144, 133, 143, 135, 140, 133, 134, 139, 141, 148, 135, 144, 151, 140, 131, 147, 139, 144, 132, 141, 135, 134, 147, 144, 137, 141, 143, 137, 138, 146, 147, 118, 144, 142, 141, 142, 142, 131, 137, 139, 140, 133, 131, 136, 136, 144, 144, 149, 140, 133, 137, 144, 139, 139, 129, 150, 144, 143, 134, 141, 149, 130, 142, 139, 127, 142, 152, 135, 140, 141, 121, 135, 133, 143, 143, 154, 133, 152, 130, 129, 141, 133, 140, 140, 146, 148, 142, 132, 122, 148, 143, 147, 143, 135, 130, 140, 136, 143, 146, 143, 129, 137, 134, 148, 145, 127, 143, 142, 128, 141, 134, 127, 146, 141, 143, 141, 141, 137, 142, 134, 142, 137, 136, 128, 136, 139, 131, 131, 136, 135, 145, 133, 146, 141, 140, 134, 142, 132, 143, 146, 134, 138, 137, 144, 130, 136, 143, 150, 147, 145, 135, 151, 142, 149, 145, 127, 140, 148, 137, 141, 122, 134, 137, 136, 134, 142, 138, 139, 134, 143, 145, 142, 142, 142, 149, 140, 137, 136, 129, 133, 145, 137, 132, 137, 141, 139, 132, 144, 127, 144, 139, 152, 139, 130, 142, 140, 137, 131, 137, 142, 153, 139, 138, 145, 140, 135, 146, 143, 141, 146, 148, 136, 137, 142, 138, 135, 140, 146, 132, 139, 136, 141, 137, 137, 154, 138, 141, 137, 142, 141, 145, 142, 139, 142, 141, 128, 130, 123, 148, 136, 149, 140, 148, 137, 138, 142, 134, 134, 136, 140, 142, 132, 133, 137, 134, 137, 144, 136, 138, 145, 134, 143, 138, 138, 138, 139, 140, 144, 153, 127, 132, 147, 134, 141, 132, 139, 152, 140, 140, 147, 134, 129, 137, 143, 145, 140, 150, 139, 139, 128, 136, 131, 133, 135, 136, 131, 141, 137, 137, 137, 140, 142, 134, 131, 140, 142, 133, 143, 143, 140, 140, 138, 138, 139, 147, 149, 144, 139, 140, 143, 144, 134, 137, 132, 136, 136, 134, 135, 150, 147, 140, 136, 151, 144, 135, 135, 135, 152, 140, 139, 144, 130, 132, 144, 143, 135, 134, 137, 143, 139, 137, 133, 130, 148, 140, 141, 148, 141, 139, 136, 134, 138, 145, 129, 135, 133, 145, 152, 134, 136, 147, 135, 134, 139, 136, 141, 133, 125, 138, 133, 140, 136, 132, 136, 138, 133, 142, 137, 142, 138, 136, 130, 143, 127, 138, 145, 127, 136, 142, 137, 138, 145, 142, 132, 143, 131, 142, 121, 145, 138, 140, 141, 132, 148, 134, 135, 148, 148, 141, 146, 139, 141, 141, 145, 131, 138, 132, 129, 140, 137, 133, 133, 147, 136, 140, 128, 133, 133, 143, 139, 141, 133, 138, 144, 139, 138, 145, 138, 147, 141, 134, 139, 137, 131, 146, 136, 129, 146, 139, 146, 132, 140, 143, 147, 144, 135, 144, 142, 137, 135, 143, 139, 141, 136, 136, 139, 145, 135, 144, 141, 140, 142, 140, 146, 146, 135, 132, 139, 149, 143, 139, 142, 137, 140, 150, 136, 134, 144, 145, 147, 142, 131, 138, 136, 143, 133, 140, 145, 136, 134, 139, 137, 132, 147, 135, 135, 124, 134, 145, 138, 141, 142, 147, 136, 143, 132, 131, 135, 136, 138, 134, 134, 143, 141, 122, 146, 140, 138, 143, 141, 130, 128, 142, 141, 143, 138, 133, 144, 139, 141, 150, 136, 137, 139, 140, 145, 138, 139, 135, 144, 140, 129, 131, 130, 140, 142, 139, 131, 133, 135, 141, 155, 138, 138, 144, 129, 152, 138, 154, 136, 136, 136, 147, 137, 144, 135, 139, 131, 136, 144, 135, 141, 138, 142, 136, 144, 144, 140, 134, 141, 137, 132, 128, 144, 139, 129, 143, 136, 139, 135, 147, 141, 139, 139, 158, 142, 146, 132, 136, 141, 133, 144, 138, 144, 139, 141, 130, 139, 140, 149, 137, 135, 137, 140, 140, 143, 144, 145, 135, 140, 135, 139, 145, 140, 127, 132, 143, 129, 136, 134, 138, 137, 136, 140, 142, 136, 137, 138, 143, 131, 147, 149, 136, 127, 141, 136, 138, 131, 138, 135, 138, 124, 141, 136, 167, 141, 140, 143, 134, 139, 140, 136, 129, 146, 136, 139, 139, 132, 134, 136, 146, 133, 123, 140, 152, 140, 135, 140, 148, 143, 135, 139, 137, 135, 134, 128, 134, 134, 136, 135, 134, 136, 136, 139, 132, 145, 126, 132, 132, 137, 135, 140, 146, 144, 138, 130, 129, 134, 140, 141, 131, 137, 139, 141, 138, 130, 135, 142, 131, 139, 133, 145, 145, 132, 135, 137, 133, 130, 143, 138, 149, 139, 143, 130, 129, 132, 154, 141, 142, 133, 141, 134, 140, 138, 134, 143, 140, 144, 138, 144, 131, 123, 142, 146, 131, 137, 138, 129, 146, 145, 140, 134, 131, 144, 144, 145, 149, 139, 137, 138, 137, 138, 129, 140, 134, 123, 132, 124, 150, 135, 144, 145, 138, 143, 144, 144, 147, 133, 128, 149, 144, 142, 143, 132, 149, 143, 149, 148, 135, 149, 135, 152, 135, 134, 147, 140, 146, 133, 133, 152, 138, 133, 142, 136, 146, 138, 149, 141, 140, 138, 145, 151, 139, 128, 145, 135, 141, 139, 135, 133, 133, 133, 140, 148, 154, 140, 145, 135, 144, 133, 144, 131, 130, 139, 140, 143, 142, 139, 144, 139, 144, 132, 139, 140, 141, 137, 133, 139, 148, 138, 140, 135, 134, 145, 137, 142, 141, 140, 144, 136, 141, 139, 136, 137, 141, 135, 136, 133, 134, 138, 135, 135, 143, 141, 139, 135, 139, 143, 138, 144, 135, 126, 138, 137, 137, 140, 140, 153, 138, 136, 131, 135, 136, 150, 145, 135, 142, 145, 140, 130, 143, 140, 137, 137, 135, 135, 139, 143, 137, 132, 142, 143, 138, 142, 140, 139, 135, 139, 139, 131, 143, 141, 144, 140, 135, 140, 143, 136, 141, 138, 140, 138, 136, 139, 135, 140, 144, 139, 142, 136, 139, 132, 142, 145, 146, 149, 142, 132, 139, 134, 135, 136, 144, 143, 137, 136, 148, 135, 139, 138, 133, 140, 137, 133, 139, 142, 138, 141, 136, 142, 141, 136, 139, 135, 141, 140, 135, 144, 136, 138, 132, 141, 146, 146, 133, 138, 135, 130, 147, 143, 139, 127, 134, 139, 139, 139, 134, 142, 138, 135, 146, 150, 140, 136, 134, 138, 136, 140, 140, 135, 140, 130, 137, 140, 139, 133, 135, 140, 131, 144, 141, 141, 143, 140, 134, 140, 140, 141, 135, 140, 132, 131, 139, 136, 146, 142, 140, 138, 137, 143, 135, 128, 136, 140, 134, 137, 146, 130, 138, 135, 138, 141, 142, 139, 141, 140, 142, 143, 143, 136, 145, 136, 136, 136, 141, 136, 128, 140, 138, 141, 135, 138, 130, 138, 142, 131, 152, 140, 138, 137, 137, 141, 138, 143, 144, 139, 141, 139, 137, 141, 139, 138, 142, 149, 129, 138, 130, 144, 136, 134, 138, 139, 137, 141, 140, 138, 142, 140, 136, 141, 134, 143, 142, 142, 146, 134, 143, 142, 141, 139, 141, 135, 145, 137, 141, 140, 138, 136, 141, 140, 141, 138, 144, 141, 143, 129, 136, 143, 134, 143, 148, 143, 141, 144, 141, 136, 140, 143, 142, 134, 146, 146, 133, 133, 146, 134, 141, 139, 134, 144, 133, 147, 139, 142, 141, 147, 137, 136, 133, 140, 136, 137, 144, 143, 140, 138, 145, 146, 139, 138, 139, 142, 146, 133, 141, 143, 133, 145, 139, 136, 133, 137, 146, 136, 138, 143, 133, 135, 136, 142, 142, 129, 140, 145, 133, 141, 130, 138, 139, 129, 136, 133, 144, 136, 132, 138, 144, 138, 139, 143, 141, 146, 136, 146, 141, 133, 137, 142, 136, 139, 140, 140, 134, 136, 139, 140, 134, 146, 137, 130, 137, 139, 135, 139, 134, 140, 140, 146, 139, 138, 143, 133, 132, 145, 140, 143, 136, 129, 137, 139, 136, 138, 136, 145, 139, 136, 141, 136, 145, 134, 138, 143, 135, 141, 141, 138, 145, 137, 140, 141, 138, 138, 135, 133, 139, 140, 135, 128, 141, 135, 138, 137, 130, 144, 134, 145, 134, 140, 144, 135, 141, 137, 136, 146, 149, 138, 143, 136, 136, 140, 133, 134, 137, 146, 144, 140, 131, 140, 145, 144, 137, 133, 142, 142, 144, 133, 138, 141, 134, 143, 137, 138, 137, 133, 137, 137, 137, 132, 140, 134, 152, 150, 146, 150, 128, 144, 133, 137, 141, 139, 144, 140, 139, 140, 142, 136, 137, 136, 133, 142, 143, 129, 131, 154, 137, 134, 132, 141, 128, 130, 128, 146, 144, 146, 141, 135, 151, 146, 141, 146, 132, 143, 138, 139, 129, 137, 143, 136, 129, 134, 143, 151, 145, 145, 136, 135, 147, 141, 131, 156, 139, 133, 139, 138, 134, 140, 135, 148, 144, 144, 118, 154, 153, 141, 126, 136, 130, 139, 137, 136, 149, 128, 143, 126, 140, 135, 139, 142, 131, 141, 143, 121, 138, 142, 150, 135, 137, 138, 137, 134, 138, 144, 139, 138, 140, 139, 144, 140, 146, 139, 134, 129, 138, 133, 131, 145, 139, 133, 139, 132, 137, 144, 137, 133, 143, 140, 138, 140, 137, 130, 142, 139, 133, 139, 143, 138, 138, 136, 136, 142, 138, 140, 138, 143, 132, 139, 137, 136, 135, 139, 139, 127, 150, 134, 134, 142, 138, 131, 138, 144, 136, 137, 137, 132, 135, 136, 138, 131, 146, 146, 140, 139, 144, 140, 141, 135, 142, 142, 138, 124, 139, 134, 139, 140, 145, 137, 133, 138, 135, 140, 135, 155, 137, 155, 143, 140, 140, 140, 134, 132, 139, 137, 130, 130, 145, 136, 144, 147, 146, 135, 143, 141, 146, 141, 143, 132, 136, 138, 137, 135, 134, 137, 140, 145, 133, 151, 140, 146, 140, 136, 119, 149, 144, 143, 132, 139, 162, 138, 128, 137, 136, 144, 142, 137, 135, 152, 126, 135, 139, 148, 141, 132, 130, 131, 148, 130, 150, 137, 127, 133, 142, 144, 141, 136, 143, 135, 140, 138, 146, 133, 138, 133, 132, 124, 137, 149, 155, 140, 144, 141, 137, 145, 138, 141, 143, 119, 147, 135, 149, 145, 138, 141, 142, 128, 137, 137, 138, 136, 128, 131, 139, 135, 136, 137, 137, 135, 138, 147, 156, 137, 128, 130, 129, 131, 146, 150, 122, 137, 141, 144, 136, 132, 147, 146, 136, 138, 135, 143, 144, 138, 132, 135, 149, 129, 128, 137, 136, 140, 137, 136, 134, 143, 144, 139, 140, 129, 140, 139, 144, 142, 130, 134, 140, 141, 127, 132, 145, 150, 140, 134, 146, 128, 140, 136, 143, 144, 132, 143, 142, 134, 138, 127, 135, 138, 137, 138, 130, 120, 139, 150, 133, 137, 145, 145, 152, 139, 140, 136, 140, 146, 139, 145, 123, 134, 132, 142, 149, 134, 143, 144, 142, 142, 136, 140, 143, 137, 139, 144, 135, 138, 134, 139, 133, 136, 127, 141, 129, 142, 138, 136, 140, 133, 136, 137, 156, 135, 140, 137, 140, 136, 126, 139, 127, 142, 135, 148, 142, 137, 145, 133, 137, 140, 143, 140, 139, 135, 130, 129, 141, 130, 147, 144, 138, 146, 141, 140, 136, 142, 129, 134, 136, 137, 126, 136, 135, 142, 135, 136, 146, 142, 136, 138, 145, 153, 133, 132, 151, 142, 140, 141, 134, 142, 135, 135, 141, 140, 139, 129, 142, 144, 139, 141, 141, 146, 127, 134, 141, 141, 132, 130, 141, 129, 131, 145, 134, 152, 132, 131, 124, 139, 139, 133, 149, 136, 139, 131, 136, 134, 132, 136, 141, 145, 139, 134, 141, 137, 148, 147, 139, 136, 112, 146, 140, 136, 146, 137, 137, 137, 144, 144, 133, 140, 143, 141, 129, 142, 142, 135, 143, 146, 137, 143, 142, 129, 135, 139, 135, 123, 137, 137, 138, 147, 147, 144, 126, 142, 131, 153, 136, 139, 143, 136, 147, 123, 125, 139, 136, 144, 128, 137, 134, 148, 141, 139, 144, 150, 135, 146, 142, 146, 137, 135, 138, 127, 141, 141, 132, 141, 142, 135, 130, 140, 137, 125, 146, 134, 145, 138, 136, 142, 151, 131, 136, 135, 141, 143, 138, 143, 135, 132, 137, 141, 137, 138, 136, 140, 149, 145, 136, 145, 139, 135, 142, 149, 138, 148, 144, 148, 150, 161, 137, 144, 138, 148, 141, 134, 130, 139, 145, 137, 140, 141, 140, 145, 140, 135, 148, 138, 138, 142, 141, 132, 135, 139, 133, 141, 136, 131, 150, 141, 140, 135, 137, 137, 140, 142, 136, 137, 144, 139, 134, 144, 147, 148, 147, 151, 137, 132, 139, 139, 143, 146, 139, 136, 142, 145, 137, 143, 148, 144, 135, 143, 145, 143, 139, 144, 140, 141, 139, 143, 141, 137, 141, 140, 144, 138, 148, 129, 149, 136, 142, 142, 135, 136, 138, 128, 136, 154, 143, 142, 142, 139, 136, 145, 135, 140, 131, 132, 133, 131, 150, 141, 151, 133, 142, 146, 141, 132, 129, 136, 133, 144, 145, 140, 138, 139, 139, 143, 136, 138, 144, 133, 143, 141, 126, 151, 136, 146, 137, 139, 136, 132, 140, 141, 139, 135, 134, 143, 141, 139, 139, 130, 142, 133, 149, 140, 135, 131, 141, 143, 136, 126, 152, 145, 129, 134, 137, 145, 141, 137, 135, 143, 140, 135, 144, 144, 150, 142, 141, 143, 141, 128, 143, 136, 141, 136, 140, 133, 140, 137, 129, 123, 135, 143, 130, 136, 141, 141, 138, 138, 135, 141, 146, 128, 156, 136, 128, 142, 142, 135, 133, 141, 133, 139, 143, 153, 143, 133, 139, 143, 126, 138, 142, 150, 131, 132, 139, 143, 130, 140, 133, 138, 128, 149, 147, 132, 141, 138, 134, 140, 133, 148, 138, 139, 131, 135, 156, 136, 142, 141, 140, 139, 135, 139, 143, 135, 135, 137, 137, 138, 136, 136, 129, 146, 140, 151, 143, 149, 147, 134, 143, 135, 133, 135, 135, 142, 120, 131, 130, 137, 144, 145, 129, 136, 138, 143, 136, 139, 144, 136, 136, 136, 135, 124, 140, 127, 136, 149, 129, 135, 132, 148, 144, 135, 132, 151, 138, 135, 137, 138, 146, 139, 138, 131, 147, 142, 134, 138, 129, 136, 140, 143, 142, 137, 133, 140, 132, 152, 131, 137, 144, 149, 138, 138, 141, 133, 143, 131, 133, 140, 139, 136, 139, 118, 137, 149, 137, 127, 146, 143, 137, 144, 142, 151, 140, 133, 151, 143, 137, 141, 137, 145, 137, 143, 145, 144, 140, 141, 148, 143, 147, 138, 140, 137, 148, 139, 136, 145, 142, 144, 140, 140, 143, 129, 143, 135, 135, 142, 143, 128, 146, 141, 136, 141, 147, 138, 149, 134, 136, 141, 140, 130, 134, 143, 143, 139, 142, 133, 139, 131, 136, 128, 132, 140, 142, 147, 134, 146, 145, 141, 137, 145, 141, 137, 138, 144, 141, 142, 135, 135, 133, 139, 142, 133, 142, 136, 140, 132, 141, 136, 131, 137, 141, 137, 135, 138, 143, 141, 138, 131, 142, 134, 146, 145, 133, 137, 144, 135, 139, 146, 137, 135, 135, 137, 140, 128, 134, 143, 139, 150, 138, 138, 138, 140, 136, 140, 141, 143, 140, 140, 139, 139, 134, 137, 135, 141, 145, 139, 149, 135, 129, 138, 145, 139, 146, 135, 129, 140, 146, 135, 138, 132, 148, 147, 140, 141, 134, 142, 148, 145, 144, 139, 146, 135, 143, 142, 137, 140, 144, 142, 140, 138, 138, 138, 140, 134, 142, 139, 136, 132, 128, 134, 141, 134, 140, 136, 143, 137, 135, 146, 149, 133, 140, 140, 144, 140, 140, 134, 145, 128, 133, 136, 137, 136, 145, 140, 142, 135, 143, 137, 140, 138, 131, 145, 131, 139, 145, 145, 136, 143, 142, 141, 138, 141, 146, 171, 132, 137, 131, 140, 138, 138, 141, 141, 134, 138, 140, 135, 138, 135, 145, 140, 132, 138, 139, 138, 136, 148, 135, 147, 145, 149, 146, 137, 144, 140, 142, 142, 140, 140, 139, 137, 140, 142, 134, 135, 150, 141, 132, 142, 129, 142, 139, 137, 136, 139, 143, 124, 137, 150, 130, 144, 138, 141, 133, 141, 137, 140, 130, 138, 141, 134, 137, 143, 140, 142, 133, 141, 147, 140, 142, 140, 138, 138, 135, 139, 140, 141, 144, 138, 139, 141, 132, 139, 141, 128, 134, 141, 133, 147, 134, 134, 140, 137, 132, 141, 135, 151, 139, 145, 138, 139, 132, 135, 124, 141, 141, 143, 136, 128, 138, 141, 135, 139, 142, 134, 139, 136, 142, 146, 144, 134, 140, 133, 135, 144, 147, 137, 132, 138, 140, 138, 142, 145, 133, 144, 141, 146, 135, 145, 138, 141, 141, 139, 134, 142, 142, 140, 146, 137, 146, 143, 145, 140, 139, 152, 137, 138, 135, 140, 134, 141, 144, 145, 139, 134, 144, 136, 140, 142, 137, 145, 141, 136, 138, 140, 141, 137, 138, 142, 137, 141, 154, 145, 131, 146, 143, 140, 142, 146, 145, 136, 137, 132, 140, 141, 141, 142, 126, 142, 140, 151, 139, 143, 132, 134, 136, 142, 139, 141, 146, 133, 141, 140, 143, 142, 143, 138, 141, 138, 148, 141, 147, 138, 140, 140, 129, 135, 143, 138, 135, 135, 145, 144, 131, 143, 135, 131, 137, 144, 149, 136, 138, 143, 146, 140, 139, 149, 136, 140, 143, 133, 138, 141, 142, 141, 143, 136, 134, 136, 140, 146, 133, 137, 141, 137, 146, 143, 140, 144, 148, 146, 143, 144, 118, 139, 140, 135, 144, 141, 137, 133, 140, 130, 142, 146, 135, 139, 139, 139, 136, 140, 134, 137, 131, 135, 143, 136, 142, 137, 135, 141, 133, 141, 136, 148, 131, 133, 141, 140, 140, 134, 146, 137, 138, 132, 141, 131, 139, 144, 136, 141, 137, 140, 149, 142, 137, 138, 146, 139, 137, 128, 132, 144, 143, 144, 139, 142, 140, 135, 142, 139, 146, 136, 137, 135, 143, 145, 134, 146, 131, 141, 134, 141, 140, 140, 141, 134, 145, 126, 140, 135, 135, 131, 138, 145, 141, 133, 135, 141, 136, 140, 147, 139, 147, 143, 140, 144, 137, 127, 140, 148, 138, 143, 136, 138, 134, 139, 137, 143, 131, 139, 138, 132, 143, 144, 134, 140, 140, 141, 134, 135, 145, 138, 135, 137, 133, 138, 139, 139, 135, 136, 141, 135, 142, 136, 141, 142, 137, 146, 137, 140, 138, 135, 138, 142, 136, 144, 144, 137, 140, 135, 132, 133, 143, 137, 134, 125, 141, 138, 143, 146, 137, 132, 149, 132, 138, 140, 147, 139, 133, 147, 135, 137, 144, 131, 137, 149, 137, 134, 142, 135, 136, 137, 133, 137, 142, 142, 136, 147, 141, 137, 137, 144, 130, 136, 143, 135, 146, 140, 141, 135, 143, 142, 142, 133, 139, 138, 137, 132, 137, 135, 140, 140, 141, 148, 133, 135, 136, 132, 140, 142, 131, 145, 145, 127, 137, 145, 140, 134, 135, 137, 132, 139, 128, 137, 138, 135, 133, 136, 129, 139, 129, 140, 137, 138, 130, 142, 136, 134, 140, 127, 142, 135, 144, 142, 135, 135, 145, 143, 133, 148, 140, 137, 141, 142, 134, 131, 135, 143, 134, 149, 141, 137, 131, 136, 140, 140, 143, 133, 134, 154, 134, 135, 141, 144, 136, 142, 140, 137, 146, 137, 139, 142, 142, 131, 144, 147, 141, 147, 139, 142, 141, 135, 139, 133, 144, 143, 138, 139, 141, 149, 140, 139, 139, 145, 138, 141, 135, 128, 139, 147, 144, 139, 141, 142, 138, 137, 140, 138, 138, 143, 142, 146, 142, 136, 135, 142, 135, 145, 142, 138, 144, 137, 138, 134, 140, 136, 144, 140, 137, 143, 140, 144, 139, 137, 138, 149, 133, 138, 143, 144, 135, 140, 140, 141, 134, 132, 146, 132, 136, 132, 135, 150, 148, 142, 138, 140, 144, 141, 145, 140, 141, 132, 139, 135, 147, 137, 136, 139, 137, 134, 140, 134, 140, 143, 139, 136, 141, 146, 133, 131, 137, 140, 140, 136, 133, 145, 137, 133, 131, 147, 141, 141, 131, 138, 135, 144, 145, 140, 135, 138, 140, 134, 140, 144, 134, 134, 138, 143, 138, 137, 132, 122, 142, 134, 141, 133, 136, 140, 130, 141, 139, 136, 137, 138, 142, 129, 141, 133, 136, 139, 141, 141, 131, 136, 141, 138, 149, 137, 141, 134, 139, 128, 130, 136, 147, 138, 138, 144, 139, 130, 132, 141, 144, 133, 141, 132, 128, 140, 145, 143, 141, 143, 138, 137, 140, 136, 136, 139, 139, 138, 142, 136, 150, 141, 144, 123, 134, 135, 139, 131, 131, 143, 137, 136, 144, 128, 135, 138, 138, 135, 139, 144, 140, 141, 143, 130, 133, 125, 138, 158, 141, 150, 133, 137, 135, 144, 141, 138, 138, 134, 144, 139, 130, 143, 136, 142, 149, 143, 143, 134, 138, 138, 136, 141, 144, 142, 141, 136, 136, 131, 132, 135, 140, 140, 129, 135, 145, 138, 149, 141, 141, 140, 137, 136, 149, 136, 138, 143, 135, 128, 137, 152, 138, 136, 140, 137, 141, 132, 157, 131, 144, 137, 143, 145, 136, 137, 136, 148, 143, 144, 136, 134, 133, 137, 145, 136, 137, 139, 136, 135, 131, 137, 137, 119, 129, 133, 135, 147, 140, 140, 143, 144, 138, 134, 130, 141, 138, 121, 145, 135, 134, 135, 142, 137, 145, 139, 150, 145, 145, 142, 140, 146, 145, 142, 142, 139, 147, 127, 146, 139, 141, 138, 141, 139, 136, 138, 140, 125, 149, 142, 140, 136, 138, 138, 145, 134, 140, 140, 130, 137, 138, 137, 147, 134, 144, 138, 136, 144, 135, 135, 138, 136, 138, 138, 141, 134, 145, 135, 135, 142, 152, 136, 139, 133, 143, 140, 145, 139, 134, 135, 138, 135, 142, 143, 138, 139, 134, 152, 151, 134, 144, 143, 132, 142, 136, 135, 137, 131, 130, 136, 134, 139, 135, 138, 133, 141, 138, 146, 134, 131, 147, 145, 149, 128, 135, 147, 137, 126, 141, 150, 132, 147, 140, 141, 139, 131, 134, 133, 136, 138, 140, 131, 147, 128, 129, 153, 130, 176, 141, 146, 146, 138, 146, 140, 137, 134, 127, 136, 138, 136, 139, 140, 134, 138, 145, 145, 145, 139, 146, 135, 133, 140, 133, 140, 142, 142, 145, 144, 137, 131, 140, 131, 136, 126, 132, 139, 128, 136, 140, 131, 145, 131, 146, 130, 134, 153, 134, 140, 140, 139, 143, 126, 144, 142, 139, 145, 144, 138, 127, 132, 142, 137, 133, 133, 145, 147, 141, 143, 142, 140, 138, 135, 151, 139, 157, 148, 146, 141, 143, 140, 136, 140, 148, 139, 145, 136, 143, 147, 133, 133, 147, 146, 134, 135, 139, 140, 137, 129, 130, 139, 153, 139, 134, 144, 142, 125, 141, 119, 137, 142, 139, 151, 130, 138, 139, 141, 133, 139, 133, 141, 142, 134, 133, 137, 139, 143, 149, 140, 134, 145, 144, 131, 145, 134, 138, 128, 127, 144, 130, 147, 135, 140, 139, 136, 138, 133, 142, 141, 141, 130, 146, 136, 138, 138, 135, 142, 147, 138, 139, 141, 141, 138, 143, 143, 133, 147, 149, 133, 130, 140, 147, 137, 138, 135, 144, 133, 144, 138, 137, 139, 139, 140, 137, 142, 137, 142, 129, 150, 141, 141, 135, 128, 142, 136, 138, 140, 143, 137, 129, 140, 130, 132, 137, 126, 140, 140, 144, 133, 137, 138, 138, 133, 141, 143, 145, 137, 136, 145, 131, 128, 146, 140, 110, 136, 137, 138, 134, 150, 145, 146, 141, 137, 149, 139, 144, 136, 136, 137, 139, 141, 138, 137, 137, 134, 130, 144, 143, 136, 130, 134, 132, 136, 150, 135, 133, 145, 131, 131, 148, 138, 135, 141, 156, 140, 130, 130, 137, 142, 143, 139, 142, 141, 141, 138, 140, 140, 139, 127, 143, 148, 139, 138, 141, 142, 142, 142, 134, 135, 144, 132, 137, 146, 139, 145, 139, 145, 135, 137, 141, 127, 139, 137, 146, 141, 144, 143, 132, 134, 143, 140, 140, 149, 138, 140, 153, 139, 133, 132, 150, 138, 123, 133, 136, 139, 139, 132, 149, 133, 149, 139, 138, 145, 136, 142, 153, 135, 136, 135, 142, 139, 139, 149, 146, 136, 144, 140, 143, 134, 133, 136, 139, 143, 133, 136, 146, 137, 131, 141, 142, 140, 137, 139, 140, 136, 144, 137, 128, 133, 142, 147, 137, 141, 140, 133, 145, 138, 142, 141, 138, 140, 142, 136, 143, 141, 137, 141, 146, 133, 132, 133, 134, 131, 142, 151, 142, 139, 136, 139, 139, 134, 145, 143, 137, 139, 135, 143, 141, 133, 132, 143, 140, 140, 133, 138, 136, 134, 131, 135, 137, 132, 151, 144, 142, 146, 133, 147, 135, 131, 136, 147, 160, 135, 141, 133, 139, 144, 135, 137, 139, 140, 141, 139, 147, 134, 132, 135, 143, 140, 138, 140, 138, 139, 147, 134, 135, 136, 134, 137, 135, 138, 140, 137, 130, 139, 140, 140, 137, 136, 143, 139, 133, 133, 146, 134, 141, 136, 143, 145, 138, 136, 143, 142, 137, 138, 139, 136, 139, 150, 132, 146, 138, 154, 141, 140, 143, 133, 140, 133, 137, 147, 146, 137, 135, 145, 144, 132, 137, 146, 144, 143, 136, 148, 142, 144, 141, 144, 138, 149, 145, 140, 136, 145, 133, 137, 136, 131, 134, 145, 140, 136, 149, 137, 131, 142, 135, 144, 139, 146, 138, 132, 148, 137, 142, 139, 144, 140, 134, 133, 141, 135, 137, 138, 133, 130, 134, 133, 137, 130, 136, 137, 136, 147, 133, 146, 141, 140, 142, 144, 140, 137, 132, 140, 138, 138, 143, 136, 141, 143, 138, 141, 142, 131, 143, 139, 141, 129, 140, 142, 146, 137, 143, 143, 131, 132, 135, 136, 138, 136, 134, 140, 144, 147, 138, 130, 139, 139, 138, 139, 134, 141, 143, 130, 140, 139, 137, 148, 136, 136, 139, 140, 131, 139, 137, 142, 145, 147, 137, 132, 142, 142, 140, 134, 131, 140, 142, 121, 143, 142, 138, 138, 146, 142, 140, 133, 141, 139, 139, 139, 137, 143, 144, 133, 141, 151, 131, 137, 142, 143, 145, 151, 140, 135, 132, 133, 134, 140, 140, 144, 136, 140, 140, 142, 139, 140, 137, 133, 149, 131, 141, 140, 138, 127, 139, 137, 144, 141, 145, 133, 139, 139, 140, 136, 134, 144, 139, 142, 139, 133, 133, 139, 142, 145, 133, 141, 142, 138, 151, 138, 134, 140, 145, 143, 137, 133, 137, 136, 144, 130, 140, 136, 146, 136, 134, 140, 137, 146, 136, 136, 126, 135, 136, 139, 140, 142, 138, 128, 139, 146, 140, 137, 134, 145, 136, 149, 136, 134, 138, 132, 142, 138, 134, 143, 139, 142, 136, 127, 142, 138, 138, 136, 144, 137, 134, 147, 132, 138, 142, 136, 133, 142, 140, 152, 131, 131, 135, 123, 146, 140, 149, 144, 133, 138, 139, 141, 143, 133, 136, 139, 136, 140, 130, 140, 131, 137, 139, 139, 146, 135, 138, 142, 132, 140, 138, 139, 136, 137, 133, 138, 133, 130, 135, 137, 138, 140, 143, 149, 137, 137, 136, 147, 143, 140, 131, 134, 136, 142, 134, 144, 133, 135, 144, 135, 133, 133, 137, 142, 135, 144, 142, 141, 141, 135, 133, 140, 136, 136, 143, 142, 134, 151, 137, 135, 138, 142, 140, 155, 141, 138, 139, 128, 149, 133, 144, 140, 143, 137, 129, 140, 131, 150, 132, 146, 142, 135, 136, 136, 127, 135, 136, 153, 144, 145, 137, 141, 134, 147, 141, 134, 135, 140, 141, 132, 129, 138, 135, 148, 142, 136, 147, 141, 130, 143, 135, 145, 143, 135, 145, 133, 130, 139, 148, 145, 136, 127, 132, 144, 143, 135, 135, 141, 133, 134, 141, 145, 137, 143, 135, 140, 142, 140, 137, 148, 141, 150, 139, 140, 140, 132, 138, 131, 137, 147, 141, 143, 137, 138, 127, 129, 138, 129, 143, 147, 147, 139, 137, 134, 133, 149, 148, 135, 136, 144, 143, 143, 137, 129, 143, 141, 148, 137, 134, 142, 135, 135, 135, 135, 137, 146, 134, 139, 140, 144, 145, 146, 145, 138, 143, 157, 144, 137, 135, 141, 141, 138, 134, 135, 135, 146, 143, 140, 133, 141, 137, 139, 137, 142, 131, 127, 136, 138, 138, 137, 138, 142, 141, 155, 145, 146, 141, 149, 132, 137, 138, 141, 132, 141, 132, 133, 142, 138, 139, 148, 138, 147, 131, 136, 144, 145, 137, 136, 133, 139, 140, 129, 134, 154, 159, 138, 128, 137, 147, 139, 136, 137, 134, 135, 147, 128, 130, 135, 149, 135, 139, 133, 138, 145, 131, 135, 156, 133, 136, 136, 141, 143, 138, 138, 139, 131, 134, 132, 135, 138, 131, 151, 147, 140, 134, 140, 139, 129, 125, 136, 138, 140, 130, 140, 136, 144, 147, 145, 141, 148, 133, 148, 133, 141, 136, 142, 136, 131, 138, 143, 131, 145, 130, 133, 139, 143, 135, 138, 144, 144, 142, 129, 143, 136, 134, 138, 134, 129, 143, 139, 133, 136, 148, 147, 137, 143, 145, 138, 140, 141, 149, 138, 140, 131, 142, 142, 142, 146, 136, 128, 139, 138, 135, 141, 145, 128, 143, 144, 136, 141, 149, 141, 140, 133, 136, 141, 151, 126, 141, 135, 136, 144, 136, 144, 139, 141, 136, 145, 129, 139, 144, 143, 147, 146, 139, 140, 132, 128, 142, 141, 135, 149, 142, 140, 142, 138, 145, 141, 135, 143, 139, 134, 141, 127, 134, 146, 138, 130, 132, 141, 134, 138, 151, 141, 147, 137, 145, 144, 135, 129, 136, 156, 138, 135, 146, 127, 141, 137, 142, 132, 135, 131, 141, 142, 149, 142, 127, 146, 135, 136, 141, 137, 137, 138, 135, 129, 135, 143, 136, 144, 149, 136, 137, 139, 142, 137, 128, 135, 143, 137, 135, 144, 142, 139, 146, 133, 143, 147, 143, 140, 134, 143, 140, 132, 140, 138, 141, 138, 140, 145, 151, 142, 142, 138, 143, 134, 136, 143, 137, 139, 133, 132, 131, 130, 147, 140, 136, 134, 132, 138, 140, 148, 136, 137, 137, 147, 143, 130, 143, 142, 138, 137, 139, 144, 144, 131, 136, 134, 138, 132, 147, 133, 136, 139, 137, 136, 130, 138, 138, 143, 146, 140, 143, 138, 131, 135, 132, 138, 136, 135, 139, 131, 146, 140, 139, 136, 138, 146, 138, 134, 139, 133, 146, 147, 144, 138, 140, 134, 139, 148, 143, 142, 131, 142, 137, 140, 135, 139, 137, 137, 136, 156, 133, 131, 144, 135, 142, 135, 133, 140, 127, 137, 139, 146, 141, 148, 140, 133, 137, 146, 139, 134, 138, 137, 146, 132, 138, 140, 140, 140, 142, 125, 138, 138, 143, 139, 136, 135, 137, 140, 141, 141, 143, 130, 132, 139, 142, 140, 134, 137, 145, 134, 145, 138, 139, 144, 135, 141, 137, 140, 137, 145, 145, 141, 130, 134, 135, 136, 139, 136, 136, 133, 147, 133, 132, 134, 136, 135, 140, 147, 131, 143, 137, 133, 136, 139, 149, 138, 140, 141, 141, 136, 136, 136, 139, 143, 137, 147, 148, 146, 154, 137, 137, 146, 136, 135, 141, 144, 129, 140, 136, 142, 143, 137, 143, 143, 139, 142, 139, 133, 135, 145, 148, 142, 133, 134, 142, 134, 132, 143, 136, 138, 137, 133, 136, 142, 140, 136, 141, 133, 136, 134, 138, 144, 139, 134, 135, 134, 143, 145, 137, 143, 137, 135, 145, 133, 130, 133, 134, 141, 141, 139, 140, 136, 135, 143, 141, 138, 130, 139, 132, 139, 147, 138, 139, 143, 133, 137, 133, 140, 139, 140, 133, 128, 137, 138, 136, 136, 129, 139, 139, 138, 138, 135, 139, 143, 147, 133, 137, 138, 134, 134, 146, 140, 145, 138, 140, 137, 145, 138, 134, 141, 143, 137, 142, 134, 130, 138, 135, 137, 143, 136, 136, 137, 133, 141, 128, 132, 141, 137, 139, 146, 141, 140, 130, 138, 126, 137, 151, 135, 133, 134, 142, 138, 136, 144, 134, 132, 144, 137, 138, 142, 144, 137, 136, 139, 133, 144, 146, 135, 132, 140, 139, 133, 148, 142, 132, 135, 139, 134, 143, 139, 141, 145, 146, 144, 137, 136, 140, 137, 150, 140, 141, 141, 146, 131, 139, 143, 140, 131, 134, 135, 138, 136, 142, 127, 130, 134, 136, 136, 137, 146, 139, 135, 146, 144, 146, 146, 147, 145, 133, 140, 135, 138, 145, 126, 137, 131, 142, 128, 134, 136, 140, 139, 137, 138, 137, 131, 132, 140, 142, 148, 136, 143, 131, 131, 138, 145, 137, 140, 138, 138, 144, 135, 145, 139, 138, 135, 143, 139, 132, 128, 136, 146, 140, 142, 149, 150, 135, 139, 143, 142, 131, 143, 136, 140, 145, 134, 138, 136, 130, 146, 142, 131, 137, 136, 133, 151, 136, 143, 137, 149, 141, 143, 150, 144, 139, 147, 137, 146, 143, 134, 140, 140, 140, 132, 136, 143, 138, 134, 146, 144, 141, 143, 140, 132, 128, 137, 140, 134, 141, 138, 134, 139, 141, 136, 148, 140, 140, 125, 138, 145, 136, 133, 141, 136, 137, 145, 136, 145, 130, 138, 145, 140, 137, 137, 145, 143, 141, 140, 141, 134, 131, 145, 144, 141, 139, 140, 142, 136, 136, 136, 142, 145, 137, 137, 137, 134, 140, 130, 140, 143, 142, 141, 139, 131, 141, 141, 143, 134, 135, 136, 135, 135, 133, 141, 141, 147, 141, 134, 143, 138, 150, 145, 134, 128, 140, 142, 132, 134, 132, 134, 141, 159, 143, 131, 150, 141, 141, 133, 135, 139, 137, 137, 138, 142, 140, 129, 138, 141, 136, 138, 129, 135, 132, 134, 131, 132, 133, 148, 136, 142, 139, 138, 137, 138, 133, 139, 131, 134, 139, 129, 137, 133, 131, 139, 138, 140, 140, 149, 139, 148, 139, 132, 136, 143, 133, 141, 135, 152, 131, 142, 127, 139, 140, 128, 142, 144, 144, 139, 136, 142, 151, 127, 143, 133, 127, 134, 136, 142, 131, 143, 144, 131, 136, 141, 142, 143, 142, 127, 136, 149, 136, 134, 136, 139, 143, 131, 142, 138, 137, 133, 149, 151, 141, 137, 153, 142, 137, 135, 143, 142, 131, 139, 148, 137, 136, 133, 136, 140, 136, 145, 138, 141, 141, 148, 135, 143, 134, 133, 134, 137, 136, 135, 137, 144, 141, 149, 137, 141, 131, 128, 137, 146, 148, 141, 147, 134, 148, 138, 137, 135, 130, 151, 138, 138, 135, 132, 131, 140, 135, 151, 146, 135, 141, 138, 141, 143, 136, 134, 139, 132, 140, 143, 137, 137, 128, 135, 136, 136, 136, 141, 138, 136, 134, 142, 131, 134, 139, 139, 132, 138, 142, 144, 131, 135, 130, 140, 140, 143, 141, 133, 138, 137, 139, 133, 126, 141, 134, 138, 143, 140, 135, 137, 133, 144, 139, 140, 135, 134, 154, 138, 139, 136, 141, 138, 131, 138, 134, 135, 143, 133, 140, 139, 137, 135, 141, 131, 140, 143, 138, 132, 136, 140, 136, 136, 145, 129, 129, 147, 139, 146, 143, 133, 135, 134, 126, 147, 141, 142, 144, 141, 141, 138, 134, 140, 142, 140, 140, 142, 150, 154, 131, 140, 134, 151, 132, 143, 136, 134, 140, 129, 135, 132, 138, 145, 140, 136, 147, 147, 132, 137, 138, 131, 144, 134, 137, 129, 146, 137, 142, 128, 140, 139, 142, 135, 134, 142, 143, 134, 148, 135, 141, 136, 141, 130, 134, 155, 146, 141, 142, 138, 133, 139, 145, 142, 141, 140, 131, 141, 141, 141, 135, 152, 142, 131, 133, 150, 136, 144, 139, 135, 136, 148, 138, 135, 141, 131, 132, 134, 141, 134, 137, 139, 150, 131, 147, 141, 142, 134, 142, 140, 143, 134, 136, 142, 138, 126, 131, 135, 129, 133, 138, 148, 140, 139, 131, 145, 147, 142, 131, 136, 134, 139, 134, 151, 130, 134, 151, 131, 140, 136, 147, 139, 145, 132, 128, 139, 147, 137, 139, 136, 146, 135, 150, 133, 138, 141, 139, 131, 134, 133, 138, 128, 139, 150, 145, 131, 145, 135, 143, 136, 133, 142, 138, 142, 124, 141, 138, 134, 140, 136, 141, 136, 142, 141, 141, 143, 134, 138, 135, 148, 139, 151, 134, 138, 130, 146, 135, 136, 136, 132, 135, 143, 137, 135, 139, 137, 154, 142, 147, 140, 132, 146, 137, 138, 135, 147, 140, 134, 131, 143, 142, 145, 137, 142, 143, 134, 137, 140, 133, 134, 145, 128, 149, 134, 134, 140, 139, 150, 133, 132, 148, 140, 123, 143, 145, 135, 134, 145, 131, 143, 124, 132, 138, 133, 141, 144, 138, 141, 137, 141, 137, 143, 142, 139, 147, 139, 146, 137, 148, 149, 142, 142, 140, 142, 136, 140, 152, 137, 134, 143, 139, 140, 135, 138, 136, 137, 148, 132, 135, 140, 132, 135, 128, 144, 153, 133, 133, 135, 145, 139, 147, 148, 146, 141, 134, 139, 151, 138, 132, 150, 128, 132, 147, 148, 147, 133, 144, 137, 130, 139, 138, 136, 137, 141, 138, 131, 138, 141, 139, 141, 151, 151, 145, 146, 147, 131, 145, 144, 135, 138, 147, 137, 141, 140, 142, 146, 150, 135, 136, 128, 149, 148, 144, 136, 138, 143, 139, 135, 138, 143, 128, 130, 140, 137, 143, 139, 130, 140, 139, 140, 140, 134, 138, 147, 141, 146, 149, 124, 139, 144, 144, 142, 142, 149, 133, 135, 143, 129, 138, 138, 147, 126, 131, 132, 146, 140, 147, 126, 141, 135, 123, 139, 141, 141, 144, 144, 129, 134, 138, 134, 139, 126, 144, 144, 140, 144, 154, 145, 126, 128, 136, 143, 137, 139, 143, 141, 145, 133, 137, 129, 139, 133, 127, 138, 136, 138, 142, 142, 137, 142, 141, 138, 143, 146, 127, 140, 145, 155, 140, 137, 141, 141, 141, 133, 137, 140, 121, 142, 139, 149, 155, 137, 129, 151, 133, 137, 134, 135, 145, 140, 136, 134, 140, 145, 143, 135, 140, 136, 141, 141, 136, 132, 143, 143, 143, 143, 142, 143, 148, 131, 139, 146, 137, 133, 140, 135, 152, 135, 137, 144, 133, 136, 135, 131, 137, 141, 134, 135, 143, 116, 136, 142, 139, 148, 144, 138, 134, 147, 143, 135, 135, 145, 137, 141, 140, 135, 145, 145, 136, 141, 148, 145, 138, 142, 143, 141, 136, 144, 128, 139, 146, 133, 149, 132, 144, 135, 136, 132, 146, 145, 135, 133, 143, 138, 140, 145, 144, 139, 138, 133, 140, 134, 140, 142, 135, 135, 138, 139, 143, 144, 136, 138, 136, 138, 128, 135, 141, 148, 141, 143, 138, 132, 126, 143, 146, 133, 135, 137, 146, 140, 144, 145, 139, 143, 135, 140, 135, 144, 140, 139, 138, 137, 134, 150, 149, 134, 139, 142, 143, 136, 134, 133, 139, 155, 146, 145, 140, 127, 138, 142, 139, 140, 144, 137, 139, 142, 145, 135, 129, 133, 141, 142, 132, 140, 142, 133, 129, 143, 138, 131, 143, 141, 151, 137, 133, 138, 126, 144, 137, 126, 139, 140, 135, 149, 137, 143, 141, 132, 143, 131, 144, 147, 136, 134, 139, 137, 145, 136, 144, 142, 131, 138, 134, 140, 146, 136, 142, 136, 138, 134, 137, 140, 143, 135, 138, 147, 143, 129, 134, 138, 140, 140, 129, 140, 128, 142, 146, 138, 149, 148, 133, 141, 151, 131, 136, 146, 144, 143, 141, 134, 143, 135, 133, 142, 136, 148, 144, 141, 148, 135, 135, 140, 140, 131, 131, 139, 142, 142, 136, 143, 144, 137, 137, 136, 141, 152, 135, 138, 134, 145, 141, 136, 143, 134, 134, 145, 146, 131, 144, 147, 128, 134, 132, 143, 147, 127, 141, 130, 139, 132, 145, 134, 140, 128, 144, 134, 140, 140, 152, 145, 134, 137, 151, 134, 139, 144, 146, 136, 138, 135, 139, 132, 140, 139, 130, 140, 133, 142, 151, 142, 142, 144, 141, 142, 134, 139, 144, 142, 137, 133, 148, 142, 136, 138, 138, 134, 138, 137, 140, 139, 144, 136, 142, 143, 137, 154, 137, 141, 137, 144, 139, 147, 134, 141, 140, 132, 132, 136, 146, 133, 133, 151, 137, 148, 135, 135, 142, 135, 141, 142, 137, 140, 135, 147, 137, 135, 135, 143, 150, 138, 143, 147, 138, 132, 130, 137, 137, 132, 140, 139, 138, 130, 143, 134, 142, 145, 133, 141, 136, 137, 130, 143, 144, 138, 138, 144, 138, 135, 143, 130, 139, 140, 130, 138, 138, 140, 144, 131, 144, 142, 147, 131, 142, 137, 138, 137, 147, 134, 140, 142, 140, 139, 141, 132, 137, 138, 137, 144, 135, 140, 138, 143, 144, 142, 129, 145, 148, 136, 141, 140, 130, 135, 131, 141, 141, 145, 138, 130, 141, 133, 143, 135, 136, 144, 144, 142, 149, 138, 141, 147, 133, 141, 144, 134, 140, 144, 138, 143, 136, 130, 145, 136, 148, 137, 139, 136, 135, 139, 135, 149, 137, 144, 127, 137, 131, 149, 140, 149, 144, 139, 139, 142, 142, 133, 140, 142, 128, 134, 143, 142, 146, 144, 137, 136, 133, 144, 138, 135, 136, 143, 134, 137, 138, 138, 137, 132, 128, 127, 137, 135, 141, 144, 149, 135, 135, 138, 137, 135, 135, 141, 137, 137, 140, 131, 138, 140, 137, 140, 142, 142, 136, 145, 144, 134, 143, 133, 139, 137, 138, 140, 136, 140, 136, 144, 137, 138, 133, 138, 144, 141, 133, 137, 144, 140, 147, 146, 139, 134, 133, 141, 136, 145, 146, 143, 135, 138, 143, 143, 133, 143, 136, 145, 143, 135, 147, 137, 138, 139, 136, 141, 139, 137, 139, 145, 133, 136, 142, 135, 138, 144, 138, 148, 140, 145, 136, 140, 148, 140, 145, 146, 141, 139, 137, 141, 139, 142, 132, 133, 143, 134, 129, 133, 137, 136, 133, 145, 142, 130, 126, 143, 131, 131, 133, 145, 134, 147, 139, 142, 144, 130, 144, 131, 139, 138, 130, 145, 135, 129, 139, 142, 136, 146, 138, 138, 135, 133, 140, 135, 129, 136, 135, 146, 136, 150, 136, 132, 136, 136, 137, 137, 136, 144, 143, 135, 137, 138, 135, 146, 136, 148, 142, 134, 136, 142, 136, 150, 149, 142, 135, 140, 141, 149, 132, 142, 145, 135, 144, 144, 145, 141, 133, 141, 132, 143, 135, 137, 149, 142, 139, 129, 143, 145, 147, 134, 141, 139, 135, 145, 140, 132, 131, 134, 139, 141, 140, 138, 143, 151, 143, 144, 133, 142, 143, 143, 136, 137, 137, 139, 136, 136, 138, 144, 150, 138, 139, 138, 147, 139, 141, 137, 139, 139, 146, 135, 141, 138, 138, 140, 134, 141, 138, 138, 136, 147, 135, 141, 142, 132, 141, 135, 138, 131, 150, 137, 137, 136, 136, 131, 127, 143, 141, 137, 129, 143, 145, 141, 133, 136, 130, 142, 139, 148, 133, 134, 135, 140, 126, 140, 147, 140, 129, 142, 138, 131, 141, 136, 142, 138, 141, 142, 143, 142, 138, 133, 141, 131, 146, 141, 130, 136, 133, 149, 156, 141, 141, 126, 141, 141, 135, 138, 133, 134, 145, 143, 134, 148, 145, 134, 135, 134, 126, 139, 145, 137, 146, 140, 147, 131, 134, 137, 133, 138, 134, 135, 135, 135, 137, 137, 144, 136, 140, 144, 132, 142, 140, 139, 137, 139, 147, 134, 134, 145, 146, 147, 141, 144, 140, 131, 144, 140, 135, 139, 137, 126, 137, 134, 136, 133, 140, 140, 142, 136, 141, 134, 134, 138, 139, 128, 146, 150, 138, 140, 136, 142, 130, 135, 138, 146, 138, 135, 144, 139, 136, 134, 139, 132, 140, 138, 137, 130, 130, 130, 141, 140, 137, 143, 147, 134, 145, 143, 141, 140, 137, 128, 136, 122, 132, 136, 147, 126, 132, 133, 137, 128, 144, 130, 147, 143, 141, 138, 137, 142, 134, 135, 142, 145, 146, 132, 138, 139, 134, 134, 141, 134, 143, 137, 133, 143, 130, 138, 160, 142, 139, 144, 138, 141, 143, 137, 137, 147, 141, 143, 139, 138, 144, 145, 154, 140, 135, 134, 133, 139, 147, 138, 139, 132, 146, 139, 134, 146, 146, 147, 141, 139, 140, 139, 144, 130, 141, 135, 136, 138, 138, 147, 140, 141, 138, 135, 148, 141, 142, 131, 134, 139, 140, 132, 139, 138, 140, 146, 137, 134, 133, 135, 140, 145, 139, 137, 132, 146, 142, 136, 130, 139, 135, 126, 126, 129, 142, 137, 136, 137, 139, 127, 138, 141, 139, 140, 142, 130, 135, 150, 148, 138, 134, 139, 141, 148, 132, 142, 145, 146, 133, 131, 139, 146, 142, 141, 135, 138, 129, 145, 138, 144, 134, 136, 147, 142, 138, 133, 141, 133, 140, 148, 140, 129, 143, 137, 139, 132, 146, 135, 147, 144, 142, 138, 139, 132, 144, 138, 143, 141, 133, 134, 134, 141, 136, 139, 140, 129, 132, 144, 130, 136, 145, 138, 136, 143, 137, 139, 136, 147, 129, 134, 138, 124, 145, 130, 131, 138, 143, 143, 138, 140, 139, 139, 132, 143, 139, 140, 135, 143, 126, 143, 141, 133, 140, 139, 136, 137, 133, 148, 139, 128, 141, 137, 145, 133, 143, 138, 137, 146, 131, 133, 139, 141, 135, 145, 147, 148, 139, 138, 140, 134, 135, 141, 143, 144, 132, 146, 133, 122, 138, 141, 161, 141, 152, 139, 133, 131, 136, 136, 136, 140, 142, 137, 131, 136, 143, 145, 135, 134, 144, 133, 150, 141, 151, 138, 139, 135, 138, 136, 141, 129, 129, 135, 141, 131, 127, 140, 138, 133, 141, 134, 133, 129, 128, 142, 139, 135, 144, 134, 142, 135, 144, 139, 139, 144, 143, 140, 139, 146, 137, 145, 140, 137, 140, 140, 138, 150, 145, 146, 147, 138, 143, 143, 142, 138, 137, 134, 142, 142, 132, 131, 132, 134, 133, 149, 142, 127, 137, 137, 141, 143, 138, 132, 136, 134, 132, 146, 133, 134, 141, 142, 135, 142, 149, 137, 135, 141, 144, 143, 141, 140, 138, 136, 139, 134, 145, 143, 127, 145, 142, 147, 136, 137, 142, 144, 145, 150, 141, 134, 132, 145, 134, 134, 142, 135, 133, 141, 144, 139, 149, 141, 140, 148, 138, 138, 128, 138, 146, 142, 148, 136, 138, 139, 146, 140, 141, 143, 135, 128, 145, 127, 145, 138, 130, 140, 146, 150, 149, 130, 148, 139, 142, 137, 146, 139, 142, 140, 130, 133, 141, 132, 138, 142, 137, 140, 144, 154, 134, 140, 132, 141, 136, 143, 141, 141, 134, 142, 139, 145, 135, 143, 141, 138, 139, 133, 141, 139, 137, 136, 140, 144, 131, 127, 138, 135, 131, 134, 135, 141, 138, 142, 138, 141, 140, 140, 146, 143, 130, 137, 129, 142, 133, 137, 137, 138, 134, 144, 143, 130, 141, 156, 141, 135, 141, 144, 139, 145, 140, 141, 136, 139, 129, 132, 131, 148, 132, 138, 146, 139, 146, 140, 143, 147, 150, 146, 149, 131, 139, 138, 133, 133, 138, 135, 140, 136, 144, 134, 144, 135, 138, 138, 144, 137, 149, 141, 142, 143, 136, 142, 141, 137, 136, 139, 148, 141, 145, 130, 112, 142, 135, 137, 147, 139, 142, 133, 137, 139, 144, 144, 130, 139, 138, 137, 132, 152, 133, 141, 141, 143, 140, 143, 148, 136, 143, 136, 141, 140, 154, 139, 140, 133, 146, 137, 139, 130, 140, 125, 144, 130, 131, 143, 138, 140, 132, 141, 151, 135, 148, 138, 142, 138, 145, 135, 128, 130, 137, 137, 130, 135, 136, 139, 137, 141, 143, 153, 146, 149, 134, 144, 136, 142, 143, 144, 137, 137, 140, 138, 141, 134, 140, 142, 146, 145, 136, 145, 135, 128, 133, 130, 146, 139, 140, 139, 141, 136, 138, 141, 146, 138, 127, 131, 140, 129, 145, 134, 133, 138, 146, 140, 147, 133, 144, 141, 133, 124, 144, 141, 144, 135, 143, 140, 147, 134, 139, 139, 138, 139, 138, 131, 144, 145, 140, 132, 136, 140, 131, 134, 141, 145, 150, 145, 138, 143, 140, 154, 140, 142, 143, 138, 145, 132, 147, 135, 138, 140, 139, 135, 138, 145, 135, 141, 134, 141, 132, 133, 155, 143, 131, 137, 144, 136, 146, 135, 134, 143, 143, 144, 154, 135, 127, 141, 143, 143, 144, 139, 132, 152, 135, 147, 134, 146, 136, 140, 135, 138, 138, 140, 138, 142, 135, 141, 137, 143, 139, 137, 136, 142, 137, 136, 136, 134, 143, 138, 145, 146, 134, 138, 136, 136, 147, 137, 136, 134, 138, 141, 139, 143, 143, 146, 140, 154, 139, 143, 144, 132, 150, 133, 126, 132, 144, 139, 136, 144, 140, 140, 134, 142, 140, 144, 129, 149, 138, 129, 145, 139, 148, 139, 145, 146, 145, 142, 133, 150, 139, 135, 140, 131, 131, 145, 131, 145, 133, 137, 136, 140, 130, 131, 128, 134, 134, 136, 145, 142, 137, 138, 129, 138, 134, 132, 133, 142, 136, 139, 132, 139, 128, 145, 145, 154, 138, 138, 146, 139, 142, 141, 142, 142, 130, 143, 143, 147, 141, 142, 145, 136, 137, 134, 139, 132, 146, 135, 146, 140, 133, 135, 132, 142, 124, 134, 134, 146, 132, 136, 142, 138, 133, 127, 136, 137, 140, 138, 132, 141, 144, 129, 138, 135, 144, 137, 139, 141, 138, 143, 136, 136, 141, 143, 146, 137, 133, 127, 136, 144, 135, 141, 140, 141, 138, 141, 144, 150, 135, 138, 138, 140, 135, 140, 134, 146, 139, 137, 138, 141, 123, 142, 158, 145, 135, 140, 137, 141, 143, 146, 148, 136, 139, 132, 134, 141, 141, 144, 136, 138, 136, 144, 137, 132, 143, 155, 138, 121, 130, 141, 136, 132, 142, 141, 139, 145, 133, 134, 133, 136, 146, 141, 137, 140, 142, 140, 148, 130, 142, 137, 136, 152, 144, 135, 136, 142, 135, 136, 145, 139, 147, 135, 137, 141, 133, 147, 149, 138, 144, 138, 128, 141, 137, 137, 142, 139, 138, 138, 138, 138, 142, 143, 129, 137, 140, 139, 134, 137, 125, 129, 129, 149, 135, 132, 142, 150, 150, 140, 145, 142, 142, 153, 129, 135, 138, 142, 126, 128, 142, 142, 138, 134, 148, 135, 139, 143, 135, 144, 160, 139, 139, 142, 134, 143, 137, 129, 136, 137, 141, 143, 138, 136, 144, 135, 142, 124, 126, 145, 140, 135, 148, 130, 135, 136, 153, 136, 134, 149, 130, 141, 132, 137, 127, 136, 147, 135, 141, 135, 125, 136, 135, 141, 140, 136, 143, 134, 136, 140, 143, 149, 145, 136, 142, 143, 156, 135, 135, 140, 137, 145, 139, 138, 142, 134, 144, 128, 144, 137, 138, 147, 141, 134, 141, 137, 130, 148, 144, 132, 142, 137, 134, 135, 130, 130, 135, 139, 137, 136, 135, 113, 138, 141, 135, 135, 133, 138, 146, 135, 130, 124, 137, 148, 132, 138, 136, 137, 132, 155, 137, 150, 140, 142, 129, 138, 145, 129, 133, 140, 142, 140, 132, 144, 146, 126, 136, 125, 129, 141, 144, 137, 130, 134, 140, 134, 151, 132, 138, 139, 132, 144, 137, 139, 139, 147, 133, 141, 131, 139, 135, 135, 147, 140, 132, 144, 156, 138, 137, 139, 136, 142, 136, 144, 143, 138, 136, 135, 141, 139, 137, 135, 137, 142, 148, 127, 141, 138, 138, 149, 132, 147, 132, 140, 140, 139, 137, 144, 141, 138, 130, 139, 137, 142, 138, 149, 139, 141, 133, 140, 146, 137, 144, 136, 138, 133, 136, 138, 135, 140, 142, 134, 140, 147, 138, 135, 151, 131, 136, 150, 145, 140, 137, 133, 144, 127, 127, 139, 133, 139, 144, 142, 137, 142, 154, 143, 137, 135, 129, 140, 137, 140, 143, 137, 136, 140, 137, 135, 148, 137, 150, 141, 136, 134, 133, 144, 138, 134, 142, 140, 137, 133, 133, 143, 136, 129, 152, 132, 147, 149, 132, 132, 141, 129, 139, 132, 131, 150, 144, 140, 143, 131, 149, 129, 136, 134, 136, 141, 138, 138, 150, 131, 146, 140, 135, 143, 145, 124, 129, 138, 143, 140, 138, 132, 141, 143, 138, 151, 131, 150, 146, 142, 147, 142, 134, 129, 148, 135, 144, 140, 150, 134, 139, 134, 143, 133, 132, 135, 137, 149, 130, 139, 127, 139, 135, 144, 142, 129, 132, 137, 136, 128, 135, 140, 152, 147, 132, 132, 134, 152, 150, 125, 146, 139, 141, 132, 132, 142, 136, 135, 142, 158, 128, 138, 139, 140, 142, 137, 138, 127, 142, 142, 145, 116, 137, 145, 143, 132, 143, 145, 147, 136, 145, 139, 140, 125, 137, 133, 152, 125, 134, 143, 135, 131, 136, 143, 136, 145, 149, 103, 150, 133, 143, 141, 130, 147, 137, 154, 143, 137, 135, 135, 143, 142, 145, 139, 146, 135, 150, 123, 143, 133, 133, 145, 140, 137, 139, 148, 135, 153, 141, 138, 146, 143, 136, 134, 127, 139, 131, 131, 131, 146, 142, 134, 144, 136, 141, 147, 139, 149, 139, 132, 142, 137, 132, 148, 138, 141, 127, 136, 141, 146, 149, 130, 139, 131, 132, 138, 147, 145, 133, 148, 128, 140, 138, 135, 140, 142, 133, 140, 135, 134, 137, 135, 137, 138, 142, 145, 141, 144, 144, 135, 140, 134, 131, 155, 146, 140, 133, 142, 139, 137, 134, 142, 133, 135, 141, 133, 146, 137, 141, 145, 146, 140, 144, 136, 132, 124, 135, 138, 133, 139, 146, 131, 141, 135, 127, 140, 144, 144, 137, 136, 152, 147, 144, 118, 141, 133, 140, 143, 137, 136, 141, 146, 137, 144, 146, 147, 148, 136, 138, 131, 136, 147, 132, 145, 133, 140, 132, 141, 133, 137, 142, 147, 136, 133, 134, 142, 138, 123, 144, 132, 142, 143, 142, 147, 136, 133, 140, 128, 143, 136, 134, 127, 133, 133, 138, 140, 143, 150, 131, 134, 147, 144, 136, 138, 138, 136, 143, 120, 138, 133, 137, 129, 147, 138, 149, 138, 143, 139, 149, 121, 143, 149, 143, 131, 147, 146, 136, 141, 139, 138, 139, 139, 132, 134, 148, 138, 135, 145, 131, 134, 146, 137, 139, 164, 130, 118, 145, 161, 129, 130, 147, 137, 154, 133, 169, 128, 136, 134, 143, 146, 134, 133, 144, 146, 137, 133, 146, 141, 139, 134, 139, 141, 148, 131, 122, 133, 129, 138, 150, 136, 137, 154, 138, 134, 143, 141, 137, 135, 142, 144, 144, 144, 147, 144, 142, 138, 136, 148, 138, 141, 141, 133, 139, 154, 141, 146, 144, 143, 142, 138, 140, 136, 141, 138, 135, 136, 134, 133, 147, 137, 145, 142, 139, 133, 143, 140, 133, 134, 144, 146, 126, 132, 142, 140, 137, 146, 142, 139, 140, 135, 119, 136, 145, 129, 138, 131, 137, 141, 134, 143, 151, 136, 130, 132, 147, 138, 133, 140, 133, 148, 142, 144, 142, 145, 137, 141, 138, 143, 148, 140, 137, 128, 151, 143, 139, 132, 144, 135, 149, 136, 137, 142, 127, 134, 127, 138, 128, 141, 131, 141, 128, 145, 145, 126, 142, 126, 141, 155, 141, 134, 137, 139, 139, 140, 134, 132, 140, 137, 138, 140, 137, 141, 137, 137, 152, 153, 136, 151, 127, 138, 139, 137, 144, 147, 133, 135, 144, 147, 142, 137, 151, 145, 138, 144, 150, 132, 144, 130, 145, 142, 144, 139, 140, 149, 133, 143, 144, 128, 145, 143, 143, 143, 140, 138, 137, 153, 143, 144, 131, 145, 134, 137, 134, 135, 134, 125, 133, 139, 144, 138, 131, 136, 137, 142, 140, 132, 142, 136, 132, 141, 134, 131, 137, 138, 142, 141, 140, 135, 140, 133, 136, 137, 131, 132, 136, 135, 142, 136, 147, 133, 134, 137, 136, 142, 140, 126, 135, 136, 141, 135, 133, 133, 138, 138, 137, 134, 137, 147, 135, 132, 137, 140, 129, 128, 146, 136, 135, 135, 139, 142, 148, 141, 146, 139, 148, 140, 134, 141, 140, 136, 144, 137, 139, 134, 133, 140, 142, 136, 134, 141, 147, 143, 147, 141, 141, 141, 137, 137, 135, 135, 134, 129, 134, 137, 139, 140, 135, 134, 138, 145, 137, 132, 139, 140, 122, 142, 133, 146, 148, 140, 131, 134, 141, 139, 140, 138, 149, 138, 143, 135, 138, 143, 133, 148, 133, 141, 137, 144, 128, 138, 131, 140, 142, 139, 138, 142, 147, 131, 147, 140, 138, 139, 135, 141, 132, 134, 140, 134, 134, 133, 137, 142, 138, 137, 142, 143, 144, 137, 131, 140, 143, 136, 142, 132, 136, 139, 141, 136, 134, 137, 153, 144, 138, 134, 137, 135, 141, 146, 141, 143, 145, 138, 143, 136, 139, 140, 142, 136, 137, 121, 136, 134, 135, 144, 141, 140, 134, 143, 144, 137, 144, 136, 145, 131, 142, 140, 136, 137, 142, 141, 137, 139, 135, 131, 138, 133, 153, 128, 142, 136, 135, 135, 143, 136, 142, 140, 138, 137, 135, 143, 146, 144, 134, 133, 140, 146, 135, 133, 133, 138, 143, 139, 140, 133, 132, 141, 140, 133, 133, 130, 140, 138, 134, 142, 129, 138, 144, 142, 137, 154, 152, 138, 137, 145, 137, 137, 140, 144, 137, 139, 127, 152, 139, 141, 135, 130, 144, 133, 130, 146, 140, 137, 137, 137, 142, 142, 141, 137, 138, 131, 139, 138, 142, 143, 139, 136, 132, 145, 135, 137, 143, 129, 139, 134, 147, 133, 137, 141, 140, 142, 131, 140, 140, 138, 141, 138, 136, 140, 138, 136, 144, 136, 142, 146, 136, 140, 139, 130, 140, 134, 137, 139, 144, 134, 136, 137, 138, 130, 142, 146, 138, 144, 143, 142, 140, 139, 138, 137, 148, 139, 134, 136, 136, 144, 141, 136, 138, 141, 132, 142, 138, 141, 142, 132, 139, 129, 137, 137, 140, 139, 138, 139, 147, 145, 138, 141, 135, 132, 137, 146, 135, 138, 137, 126, 138, 144, 140, 141, 141, 139, 147, 138, 137, 141, 139, 146, 139, 132, 130, 137, 135, 146, 139, 140, 141, 136, 136, 141, 141, 143, 148, 135, 140, 123, 140, 135, 147, 133, 140, 126, 138, 141, 141, 136, 132, 135, 138, 142, 141, 139, 140, 136, 138, 137, 140, 134, 139, 130, 139, 138, 129, 140, 128, 128, 140, 138, 150, 136, 142, 136, 136, 129, 135, 133, 142, 140, 148, 140, 136, 134, 147, 141, 129, 134, 141, 136, 132, 133, 136, 140, 137, 142, 139, 146, 140, 133, 132, 135, 140, 137, 143, 136, 141, 135, 139, 148, 138, 131, 137, 125, 137, 140, 139, 127, 136, 141, 133, 134, 143, 140, 135, 135, 139, 132, 137, 138, 136, 151, 139, 152, 137, 141, 141, 139, 143, 137, 150, 133, 140, 140, 140, 144, 131, 140, 136, 132, 136, 139, 145, 145, 148, 134, 130, 145, 135, 128, 140, 140, 140, 142, 139, 139, 149, 136, 140, 147, 145, 139, 137, 128, 145, 141, 144, 134, 140, 142, 143, 137, 132, 145, 142, 130, 143, 129, 131, 134, 137, 130, 131, 143, 148, 142, 139, 136, 151, 144, 136, 153, 137, 140, 145, 115, 143, 143, 140, 142, 141, 140, 145, 144, 138, 148, 136, 139, 139, 145, 127, 134, 138, 131, 145, 136, 138, 135, 134, 133, 136, 136, 132, 133, 134, 150, 155, 135, 141, 149, 130, 145, 138, 138, 139, 141, 145, 146, 143, 136, 137, 133, 140, 146, 145, 141, 144, 145, 131, 146, 136, 141, 129, 146, 132, 135, 130, 136, 136, 142, 139, 141, 141, 139, 145, 140, 151, 142, 142, 138, 138, 148, 142, 137, 134, 133, 150, 138, 127, 136, 139, 135, 134, 144, 140, 136, 139, 140, 134, 142, 141, 134, 144, 136, 128, 139, 146, 139, 147, 141, 144, 131, 138, 129, 146, 147, 127, 143, 130, 135, 138, 146, 136, 139, 139, 139, 139, 136, 150, 137, 136, 126, 135, 144, 128, 142, 136, 137, 138, 138, 138, 153, 124, 138, 141, 147, 141, 134, 139, 144, 141, 144, 139, 131, 142, 137, 137, 141, 145, 135, 142, 143, 136, 126, 126, 142, 148, 138, 136, 143, 131, 137, 135, 142, 147, 136, 133, 137, 148, 152, 143, 133, 140, 142, 133, 132, 143, 135, 137, 138, 133, 136, 144, 141, 144, 141, 140, 142, 128, 138, 139, 139, 144, 138, 138, 144, 151, 144, 134, 142, 141, 142, 135, 134, 129, 149, 134, 146, 133, 144, 136, 142, 139, 131, 145, 140, 135, 136, 140, 133, 137, 147, 139, 139, 137, 141, 135, 134, 134, 131, 136, 145, 137, 139, 141, 140, 135, 137, 148, 149, 140, 135, 136, 129, 139, 147, 143, 141, 130, 146, 131, 140, 140, 137, 137, 139, 149, 130, 140, 132, 127, 133, 148, 141, 128, 139, 137, 137, 135, 141, 149, 140, 141, 134, 136, 140, 148, 130, 144, 139, 141, 141, 143, 139, 140, 143, 140, 139, 140, 141, 135, 133, 143, 143, 131, 129, 138, 139, 143, 134, 141, 132, 143, 140, 152, 135, 143, 137, 121, 137, 137, 144, 139, 139, 141, 138, 145, 137, 140, 130, 141, 139, 149, 149, 141, 150, 143, 137, 142, 135, 124, 137, 136, 146, 143, 138, 139, 147, 139, 132, 141, 143, 144, 133, 139, 145, 140, 144, 138, 140, 140, 143, 138, 130, 147, 145, 134, 147, 136, 144, 144, 139, 137, 132, 140, 142, 146, 136, 129, 138, 142, 138, 131, 135, 137, 149, 139, 148, 136, 139, 146, 143, 145, 140, 134, 142, 142, 144, 143, 147, 145, 141, 149, 130, 140, 128, 138, 141, 137, 132, 130, 133, 136, 135, 141, 145, 134, 136, 137, 136, 149, 140, 137, 136, 135, 136, 136, 134, 134, 136, 138, 140, 139, 150, 146, 132, 147, 140, 138, 140, 130, 152, 136, 145, 147, 127, 138, 135, 142, 141, 155, 143, 143, 126, 138, 140, 140, 141, 145, 146, 144, 124, 138, 145, 137, 141, 150, 136, 131, 139, 142, 131, 136, 159, 139, 130, 135, 134, 131, 149, 144, 128, 146, 139, 149, 138, 145, 138, 133, 142, 145, 144, 150, 136, 136, 137, 145, 147, 134, 134, 144, 137, 137, 140, 140, 139, 138, 137, 138, 142, 147, 140, 138, 146, 127, 143, 140, 138, 141, 132, 143, 149, 130, 139, 148, 148, 132, 144, 144, 130, 134, 144, 138, 138, 139, 143, 136, 145, 133, 129, 132, 138, 130, 139, 135, 138, 139, 136, 134, 144, 143, 129, 141, 139, 139, 135, 147, 141, 146, 145, 137, 132, 161, 142, 139, 143, 140, 143, 139, 140, 133, 139, 145, 139, 148, 142, 131, 147, 132, 148, 143, 145, 138, 139, 128, 130, 137, 131, 131, 133, 130, 137, 145, 135, 135, 141, 129, 136, 142, 141, 149, 143, 141, 142, 138, 132, 149, 143, 135, 148, 121, 134, 137, 144, 127, 129, 135, 136, 135, 136, 136, 130, 132, 140, 134, 132, 130, 132, 140, 146, 134, 148, 139, 150, 135, 139, 151, 136, 149, 140, 146, 123, 140, 136, 136, 135, 133, 142, 133, 138, 154, 133, 138, 137, 147, 141, 142, 139, 145, 142, 131, 133, 142, 140, 136, 131, 145, 142, 125, 140, 142, 139, 140, 137, 142, 136, 147, 138, 135, 142, 130, 140, 141, 133, 141, 134, 142, 144, 135, 141, 144, 131, 141, 133, 133, 133, 139, 144, 148, 135, 125, 134, 137, 137, 146, 134, 132, 141, 140, 140, 141, 145, 139, 145, 144, 136, 133, 146, 144, 141, 136, 142, 143, 151, 149, 142, 138, 141, 146, 137, 140, 141, 142, 148, 150, 137, 141, 147, 136, 139, 146, 131, 135, 142, 143, 126, 140, 136, 141, 144, 132, 134, 142, 137, 133, 136, 141, 137, 145, 142, 140, 143, 143, 129, 157, 142, 138, 144, 131, 150, 148, 142, 142, 134, 146, 133, 146, 127, 150, 141, 145, 134, 136, 148, 132, 134, 129, 139, 143, 135, 142, 128, 143, 131, 136, 143, 130, 138, 129, 138, 139, 141, 141, 142, 134, 143, 142, 126, 130, 142, 139, 133, 138, 148, 128, 154, 135, 135, 128, 132, 145, 142, 145, 137, 146, 137, 144, 148, 134, 146, 124, 136, 137, 136, 141, 130, 134, 141, 129, 146, 131, 136, 135, 142, 143, 136, 146, 145, 140, 144, 133, 143, 132, 136, 130, 143, 137, 137, 137, 135, 141, 142, 138, 145, 138, 141, 135, 133, 133, 146, 135, 133, 154, 143, 139, 144, 146, 137, 153, 134, 138, 132, 137, 135, 129, 155, 139, 134, 133, 129, 134, 133, 147, 143, 135, 146, 145, 138, 127, 138, 142, 136, 143, 134, 137, 130, 134, 142, 139, 136, 143, 141, 139, 125, 136, 148, 144, 138, 141, 132, 142, 141, 138, 134, 142, 143, 140, 132, 139, 138, 130, 141, 138, 150, 137, 140, 144, 137, 147, 127, 144, 125, 145, 138, 143, 139, 137, 140, 136, 157, 140, 137, 136, 139, 136, 143, 134, 133, 138, 138, 130, 139, 140, 137, 142, 139, 134, 140, 138, 137, 139, 142, 141, 143, 151, 137, 137, 144, 145, 137, 143, 141, 138, 142, 143, 138, 145, 135, 134, 139, 146, 138, 132, 139, 141, 140, 138, 140, 135, 138, 133, 143, 135, 135, 148, 139, 140, 143, 142, 138, 139, 138, 138, 143, 139, 147, 137, 150, 141, 146, 138, 138, 137, 133, 147, 138, 138, 136, 136, 133, 137, 147, 147, 141, 135, 138, 138, 136, 138, 134, 137, 142, 133, 134, 148, 138, 141, 135, 130, 143, 142, 140, 135, 138, 145, 140, 140, 138, 140, 144, 131, 149, 142, 138, 139, 138, 147, 142, 137, 138, 140, 139, 142, 141, 139, 137, 134, 137, 136, 136, 141, 140, 137, 138, 136, 137, 143, 146, 139, 135, 139, 144, 137, 137, 137, 134, 144, 136, 137, 133, 146, 135, 136, 135, 128, 141, 142, 143, 133, 136, 141, 147, 134, 146, 132, 137, 142, 143, 142, 141, 133, 140, 141, 140, 142, 138, 136, 144, 147, 140, 136, 145, 138, 142, 135, 142, 136, 141, 137, 145, 135, 129, 147, 141, 137, 136, 142, 136, 141, 134, 140, 132, 137, 136, 136, 134, 138, 143, 150, 141, 142, 142, 136, 142, 137, 136, 138, 146, 141, 139, 137, 140, 143, 144, 141, 136, 140, 151, 131, 135, 133, 136, 137, 139, 140, 132, 147, 138, 140, 139, 134, 147, 140, 138, 140, 140, 147, 136, 135, 136, 143, 139, 141, 143, 133, 137, 144, 141, 143, 143, 139, 140, 137, 142, 143, 146, 137, 145, 141, 141, 136, 139, 125, 141, 144, 138, 135, 144, 138, 135, 140, 140, 135, 135, 136, 133, 140, 143, 137, 137, 141, 139, 143, 138, 146, 142, 144, 128, 142, 139, 139, 140, 138, 136, 139, 145, 134, 142, 140, 135, 132, 131, 136, 136, 141, 139, 142, 140, 135, 140, 139, 142, 134, 151, 137, 146, 130, 136, 136, 142, 139, 140, 140, 143, 139, 137, 140, 138, 131, 138, 136, 138, 146, 137, 139, 148, 140, 139, 137, 143, 142, 140, 142, 140, 143, 131, 134, 140, 134, 137, 136, 141, 142, 135, 140, 136, 139, 140, 137, 132, 142, 136, 142, 148, 129, 144, 141, 134, 141, 141, 143, 135, 142, 141, 140, 139, 140, 135, 140, 133, 145, 143, 140, 140, 137, 140, 138, 143, 134, 135, 142, 139, 147, 141, 139, 137, 137, 143, 139, 138, 136, 132, 135, 141, 139, 134, 140, 140, 145, 142, 133, 136, 137, 138, 135, 140, 136, 142, 135, 139, 138, 137, 139, 135, 134, 136, 137, 135, 144, 144, 142, 138, 138, 142, 137, 145, 140, 140, 136, 141, 134, 131, 138, 140, 134, 133, 131, 136, 148, 138, 141, 138, 142, 136, 134, 136, 136, 138, 138, 146, 137, 141, 146, 140, 135, 135, 143, 142, 150, 139, 145, 137, 146, 136, 132, 135, 139, 131, 134, 135, 140, 137, 140, 145, 140, 138, 137, 141, 144, 139, 137, 139, 153, 139, 138, 145, 137, 134, 144, 140, 148, 133, 142, 136, 143, 138, 131, 129, 145, 139, 139, 127, 130, 136, 137, 137, 142, 136, 141, 137, 132, 143, 135, 138, 134, 133, 123, 142, 133, 152, 136, 133, 129, 139, 130, 150, 136, 144, 137, 134, 139, 141, 140, 147, 138, 140, 137, 135, 137, 140, 134, 137, 138, 141, 132, 141, 132, 140, 136, 134, 150, 143, 134, 138, 130, 136, 131, 136, 137, 134, 135, 142, 133, 147, 138, 138, 147, 139, 135, 136, 133, 132, 138, 138, 137, 135, 137, 136, 137, 142, 143, 139, 143, 137, 136, 143, 139, 145, 134, 135, 143, 146, 143, 136, 139, 135, 134, 137, 139, 132, 147, 139, 137, 142, 140, 134, 143, 135, 144, 138, 136, 134, 143, 146, 146, 136, 141, 138, 131, 141, 150, 136, 136, 134, 133, 131, 140, 145, 135, 149, 141, 148, 134, 145, 137, 146, 137, 142, 139, 129, 141, 131, 137, 134, 131, 142, 131, 133, 131, 137, 136, 144, 142, 142, 150, 156, 143, 138, 143, 146, 139, 141, 158, 148, 135, 134, 138, 149, 140, 144, 138, 144, 139, 138, 143, 143, 133, 149, 138, 136, 137, 136, 138, 140, 133, 139, 145, 143, 131, 135, 135, 143, 133, 143, 145, 135, 140, 138, 133, 144, 141, 149, 127, 142, 141, 137, 140, 133, 142, 141, 141, 134, 136, 143, 136, 142, 137, 137, 134, 137, 138, 113, 141, 144, 135, 132, 144, 135, 136, 132, 137, 137, 146, 135, 135, 135, 146, 138, 144, 136, 141, 143, 139, 143, 135, 140, 135, 142, 138, 140, 140, 134, 139, 137, 134, 139, 135, 133, 142, 140, 138, 136, 136, 143, 131, 142, 141, 133, 137, 140, 139, 146, 127, 136, 137, 142, 140, 152, 138, 140, 140, 131, 135, 144, 142, 137, 141, 135, 149, 130, 142, 135, 135, 140, 138, 138, 138, 133, 138, 133, 139, 143, 131, 146, 140, 142, 130, 133, 136, 146, 140, 148, 145, 137, 129, 136, 152, 141, 141, 138, 132, 134, 134, 146, 133, 140, 152, 147, 140, 135, 141, 143, 140, 144, 142, 128, 131, 136, 143, 138, 137, 140, 154, 134, 147, 135, 136, 141, 138, 145, 130, 127, 147, 156, 138, 141, 135, 149, 141, 147, 131, 136, 137, 140, 140, 146, 135, 141, 131, 131, 136, 135, 136, 136, 132, 137, 134, 139, 134, 139, 137, 142, 146, 135, 135, 149, 138, 133, 147, 143, 141, 143, 139, 138, 135, 139, 143, 142, 134, 142, 142, 144, 136, 141, 137, 142, 136, 133, 144, 146, 143, 144, 137, 139, 137, 125, 139, 147, 132, 137, 131, 136, 141, 145, 136, 139, 136, 138, 139, 137, 129, 133, 142, 143, 132, 138, 144, 138, 146, 141, 132, 132, 145, 132, 136, 129, 137, 140, 137, 145, 144, 138, 140, 135, 135, 133, 145, 134, 137, 138, 147, 137, 133, 135, 131, 142, 135, 140, 145, 134, 137, 139, 137, 146, 140, 143, 146, 126, 138, 143, 151, 146, 147, 135, 149, 134, 147, 134, 149, 138, 138, 142, 130, 145, 141, 129, 139, 143, 120, 145, 144, 135, 131, 135, 144, 144, 136, 134, 134, 144, 127, 141, 140, 141, 143, 140, 143, 134, 140, 136, 143, 135, 136, 139, 140, 142, 132, 134, 135, 138, 131, 138, 145, 141, 142, 137, 145, 135, 136, 134, 137, 138, 143, 142, 139, 153, 141, 143, 130, 141, 143, 141, 137, 136, 143, 134, 138, 137, 136, 138, 140, 140, 130, 145, 151, 134, 132, 140, 136, 140, 140, 135, 137, 144, 138, 151, 140, 144, 142, 131, 151, 146, 139, 133, 140, 131, 130, 134, 130, 135, 141, 140, 137, 138, 142, 141, 131, 145, 141, 131, 141, 128, 148, 134, 148, 136, 144, 136, 137, 141, 130, 150, 140, 135, 143, 133, 139, 137, 135, 135, 142, 145, 138, 135, 147, 138, 136, 134, 135, 142, 141, 136, 151, 141, 140, 145, 144, 142, 133, 139, 146, 141, 132, 141, 138, 147, 142, 145, 139, 144, 138, 134, 139, 137, 141, 134, 138, 134, 150, 138, 141, 140, 132, 131, 136, 137, 127, 134, 146, 136, 141, 135, 137, 133, 149, 140, 147, 137, 141, 144, 130, 138, 136, 141, 137, 131, 134, 142, 141, 135, 140, 130, 130, 134, 134, 145, 134, 152, 124, 136, 131, 138, 128, 130, 130, 133, 139, 134, 141, 140, 139, 140, 129, 142, 134, 132, 142, 133, 133, 141, 136, 147, 149, 139, 127, 141, 138, 140, 141, 135, 140, 138, 145, 136, 145, 155, 136, 142, 133, 150, 137, 131, 144, 135, 138, 135, 149, 152, 139, 147, 129, 144, 133, 145, 135, 140, 142, 138, 145, 146, 144, 137, 141, 135, 139, 134, 133, 145, 138, 142, 151, 138, 136, 140, 136, 131, 136, 127, 139, 142, 136, 141, 141, 138, 135, 139, 143, 141, 132, 131, 132, 148, 140, 136, 144, 147, 150, 144, 136, 137, 140, 139, 141, 132, 133, 145, 142, 133, 140, 143, 142, 140, 144, 133, 142, 136, 139, 141, 134, 138, 140, 134, 137, 129, 149, 136, 136, 138, 143, 139, 132, 142, 142, 145, 138, 137, 140, 141, 141, 146, 138, 132, 136, 138, 132, 139, 135, 132, 146, 126, 133, 133, 131, 135, 133, 132, 132, 136, 138, 145, 137, 141, 139, 141, 139, 139, 135, 137, 138, 147, 133, 135, 135, 141, 142, 143, 146, 138, 132, 134, 127, 132, 135, 130, 133, 137, 143, 137, 139, 136, 137, 141, 137, 142, 139, 135, 133, 139, 134, 135, 144, 137, 148, 137, 141, 149, 137, 138, 132, 144, 128, 146, 135, 140, 136, 134, 137, 137, 138, 138, 136, 133, 139, 133, 134, 147, 142, 141, 148, 137, 141, 144, 141, 140, 144, 135, 137, 133, 132, 148, 140, 142, 150, 131, 131, 151, 143, 145, 140, 135, 137, 139, 143, 137, 140, 134, 148, 138, 149, 139, 137, 136, 137, 134, 135, 146, 126, 142, 140, 143, 139, 139, 135, 145, 145, 143, 142, 136, 135, 137, 137, 137, 137, 145, 140, 149, 140, 130, 148, 153, 138, 129, 142, 144, 138, 147, 144, 133, 140, 148, 142, 142, 137, 136, 131, 154, 134, 140, 135, 129, 141, 138, 149, 133, 137, 143, 146, 137, 149, 147, 135, 142, 134, 137, 146, 143, 129, 140, 146, 140, 142, 138, 140, 143, 139, 129, 134, 133, 139, 144, 135, 141, 137, 143, 134, 132, 143, 139, 136, 132, 152, 149, 147, 145, 153, 156, 147, 132, 137, 131, 145, 129, 146, 135, 139, 145, 138, 148, 138, 141, 142, 142, 143, 126, 152, 148, 131, 140, 135, 135, 149, 140, 140, 138, 146, 135, 133, 139, 137, 132, 136, 139, 140, 135, 145, 135, 137, 122, 137, 153, 136, 135, 134, 133, 143, 138, 137, 134, 146, 129, 137, 135, 132, 133, 134, 129, 149, 145, 134, 140, 144, 134, 147, 134, 141, 131, 133, 146, 143, 133, 132, 146, 137, 145, 134, 140, 151, 137, 146, 145, 136, 144, 134, 136, 132, 130, 129, 139, 145, 148, 150, 143, 133, 142, 137, 131, 131, 140, 136, 139, 133, 143, 133, 137, 134, 140, 131, 131, 135, 139, 141, 137, 138, 135, 143, 137, 142, 131, 145, 139, 144, 137, 137, 144, 140, 134, 141, 143, 136, 131, 140, 148, 141, 139, 130, 147, 131, 135, 147, 135, 139, 142, 135, 142, 155, 135, 136, 140, 143, 146, 134, 137, 138, 133, 139, 144, 136, 132, 144, 129, 144, 137, 130, 134, 131, 148, 138, 147, 138, 148, 136, 143, 142, 129, 135, 136, 140, 143, 157, 152, 128, 129, 134, 130, 139, 142, 132, 149, 140, 130, 142, 142, 135, 130, 140, 138, 135, 141, 148, 145, 133, 140, 139, 133, 140, 131, 136, 127, 131, 131, 144, 125, 147, 135, 142, 131, 135, 132, 136, 143, 146, 136, 136, 139, 138, 133, 137, 132, 135, 146, 139, 145, 138, 132, 142, 138, 136, 139, 143, 131, 131, 154, 139, 139, 139, 140, 130, 137, 139, 133, 134, 142, 131, 131, 140, 138, 130, 141, 143, 138, 135, 141, 126, 132, 140, 136, 133, 138, 144, 130, 130, 125, 144, 143, 143, 132, 139, 133, 157, 137, 142, 140, 147, 143, 134, 140, 139, 141, 145, 140, 142, 143, 132, 140, 141, 146, 133, 143, 140, 141, 140, 138, 139, 129, 128, 146, 142, 148, 139, 144, 142, 147, 144, 144, 141, 146, 140, 131, 145, 130, 136, 143, 137, 138, 138, 140, 145, 141, 130, 131, 128, 143, 136, 131, 141, 134, 136, 134, 134, 130, 131, 139, 143, 140, 142, 137, 153, 127, 134, 141, 137, 144, 135, 147, 132, 134, 141, 134, 142, 139, 141, 137, 138, 136, 147, 132, 144, 154, 138, 147, 140, 139, 132, 128, 143, 130, 135, 143, 140, 134, 129, 144, 136, 130, 145, 141, 138, 146, 133, 138, 133, 137, 139, 143, 144, 137, 136, 144, 145, 135, 138, 149, 138, 134, 145, 138, 144, 135, 138, 138, 136, 141, 139, 147, 144, 132, 138, 143, 141, 139, 144, 141, 134, 150, 143, 137, 135, 150, 138, 147, 142, 132, 144, 150, 132, 152, 139, 145, 141, 142, 139, 131, 143, 139, 151, 139, 147, 143, 139, 153, 144, 143, 134, 134, 144, 141, 133, 142, 129, 136, 141, 130, 129, 127, 137, 137, 143, 137, 135, 143, 138, 139, 148, 138, 140, 136, 131, 139, 136, 146, 135, 141, 132, 137, 134, 130, 138, 141, 136, 155, 137, 136, 140, 137, 140, 139, 139, 140, 138, 145, 137, 128, 134, 149, 147, 134, 143, 135, 144, 145, 136, 141, 134, 132, 129, 155, 145, 148, 132, 137, 138, 135, 146, 144, 140, 134, 146, 133, 138, 143, 139, 135, 135, 146, 141, 145, 145, 137, 144, 147, 151, 143, 147, 137, 137, 146, 143, 124, 132, 144, 149, 143, 145, 136, 143, 145, 143, 151, 142, 140, 145, 142, 137, 132, 144, 128, 138, 150, 132, 143, 131, 133, 140, 136, 143, 133, 147, 147, 137, 137, 140, 141, 143, 140, 142, 147, 136, 136, 143, 139, 132, 144, 132, 138, 149, 152, 150, 139, 142, 138, 134, 139, 151, 140, 137, 144, 141, 145, 140, 136, 138, 140, 133, 140, 136, 137, 144, 149, 131, 148, 142, 129, 130, 148, 130, 152, 137, 142, 144, 135, 131, 152, 151, 138, 143, 135, 130, 143, 136, 142, 131, 138, 142, 136, 145, 134, 143, 131, 138, 143, 142, 127, 155, 130, 144, 145, 142, 140, 143, 146, 139, 138, 141, 143, 148, 135, 140, 127, 136, 145, 139, 140, 138, 126, 134, 135, 141, 134, 140, 144, 140, 150, 143, 137, 137, 150, 132, 139, 140, 136, 130, 141, 136, 136, 147, 144, 139, 142, 134, 142, 143, 147, 135, 142, 132, 131, 147, 137, 131, 141, 138, 143, 133, 136, 140, 138, 135, 141, 139, 139, 145, 147, 129, 148, 135, 148, 138, 129, 134, 132, 145, 142, 132, 136, 129, 140, 140, 143, 146, 143, 151, 145, 139, 132, 134, 142, 136, 137, 157, 145, 139, 150, 136, 141, 133, 145, 138, 142, 134, 150, 137, 143, 133, 152, 140, 137, 146, 137, 138, 135, 141, 140, 152, 137, 135, 134, 136, 141, 140, 134, 139, 139, 144, 144, 140, 137, 140, 139, 134, 135, 147, 145, 137, 140, 137, 135, 137, 136, 138, 153, 144, 143, 138, 142, 135, 141, 133, 132, 134, 129, 132, 134, 144, 138, 124, 139, 134, 139, 132, 136, 141, 132, 141, 138, 140, 158, 139, 144, 151, 135, 133, 147, 136, 146, 136, 135, 137, 146, 146, 138, 139, 140, 139, 142, 148, 131, 145, 134, 142, 144, 146, 142, 150, 143, 138, 140, 140, 140, 142, 141, 130, 139, 138, 135, 146, 140, 139, 129, 135, 129, 144, 143, 127, 133, 138, 141, 144, 140, 143, 144, 132, 143, 141, 144, 141, 146, 142, 142, 142, 136, 142, 154, 146, 141, 144, 141, 134, 142, 143, 135, 136, 136, 146, 147, 144, 136, 127, 132, 135, 140, 146, 139, 143, 136, 136, 135, 128, 154, 136, 138, 142, 137, 129, 129, 131, 145, 141, 140, 137, 147, 137, 138, 144, 143, 143, 142, 134, 140, 141, 150, 139, 134, 143, 144, 144, 143, 141, 138, 141, 133, 152, 150, 136, 130, 140, 140, 136, 132, 138, 149, 131, 135, 137, 142, 144, 150, 147, 143, 138, 138, 141, 147, 147, 141, 132, 141, 138, 133, 148, 140, 137, 148, 142, 141, 141, 143, 134, 139, 142, 139, 138, 138, 138, 135, 142, 129, 140, 137, 144, 147, 145, 138, 133, 146, 142, 141, 144, 136, 142, 146, 143, 144, 132, 132, 127, 136, 133, 131, 146, 142, 134, 139, 132, 136, 144, 141, 131, 129, 135, 129, 136, 132, 142, 144, 136, 141, 138, 132, 136, 144, 133, 144, 132, 127, 144, 147, 138, 136, 145, 145, 134, 147, 140, 130, 142, 137, 139, 146, 134, 131, 142, 138, 128, 146, 148, 133, 139, 145, 149, 138, 134, 146, 140, 141, 135, 143, 135, 142, 133, 143, 137, 138, 141, 135, 135, 142, 133, 140, 133, 132, 135, 133, 142, 145, 137, 139, 135, 136, 133, 150, 138, 132, 138, 140, 148, 132, 129, 132, 140, 138, 143, 136, 141, 138, 146, 140, 143, 131, 132, 137, 136, 132, 140, 149, 136, 142, 137, 139, 136, 143, 127, 135, 146, 138, 136, 133, 139, 143, 140, 139, 142, 134, 135, 131, 139, 153, 139, 133, 139, 131, 132, 136, 152, 131, 145, 147, 139, 145, 136, 139, 140, 133, 145, 148, 141, 150, 142, 128, 135, 144, 131, 142, 130, 143, 144, 144, 138, 134, 138, 130, 129, 153, 140, 135, 137, 134, 140, 142, 139, 140, 131, 140, 145, 132, 136, 141, 147, 130, 133, 145, 143, 136, 139, 131, 134, 136, 136, 132, 134, 144, 130, 138, 132, 135, 139, 129, 130, 129, 143, 137, 135, 134, 140, 136, 145, 142, 135, 133, 125, 141, 141, 138, 149, 138, 131, 146, 136, 149, 139, 135, 142, 137, 144, 131, 146, 139, 135, 139, 136, 144, 147, 142, 126, 133, 144, 144, 139, 146, 134, 139, 143, 142, 140, 131, 137, 143, 147, 138, 138, 132, 138, 146, 143, 135, 135, 136, 136, 139, 136, 134, 137, 134, 141, 143, 134, 133, 132, 134, 135, 141, 136, 139, 139, 141, 151, 141, 146, 145, 133, 140, 138, 131, 146, 130, 139, 138, 139, 151, 135, 140, 144, 141, 134, 142, 138, 134, 143, 145, 150, 144, 135, 148, 139, 141, 143, 133, 141, 134, 135, 132, 141, 137, 144, 146, 134, 137, 135, 140, 141, 151, 133, 153, 138, 133, 134, 142, 143, 139, 134, 139, 135, 140, 139, 140, 134, 140, 131, 143, 135, 131, 132, 137, 129, 136, 142, 136, 132, 141, 130, 147, 137, 138, 138, 150, 137, 126, 139, 142, 138, 152, 150, 143, 141, 140, 135, 136, 148, 133, 143, 139, 145, 150, 137, 131, 125, 134, 142, 137, 129, 130, 136, 130, 141, 134, 138, 148, 140, 142, 142, 150, 137, 140, 131, 144, 140, 140, 141, 141, 134, 133, 138, 139, 131, 142, 146, 138, 135, 143, 142, 133, 144, 146, 141, 140, 147, 144, 143, 137, 142, 142, 140, 139, 129, 143, 136, 151, 137, 147, 139, 136, 140, 130, 132, 139, 139, 141, 133, 146, 143, 137, 131, 147, 134, 146, 141, 127, 143, 131, 156, 137, 141, 138, 147, 139, 142, 138, 135, 140, 141, 139, 145, 137, 149, 135, 142, 131, 135, 140, 133, 144, 139, 142, 135, 139, 144, 136, 143, 138, 129, 141, 142, 133, 135, 133, 146, 138, 142, 129, 131, 129, 131, 135, 136, 157, 135, 142, 148, 139, 138, 139, 141, 156, 144, 137, 139, 133, 136, 140, 138, 143, 137, 130, 132, 136, 126, 134, 151, 139, 143, 131, 128, 136, 142, 138, 128, 139, 136, 134, 139, 136, 133, 141, 132, 131, 135, 136, 152, 138, 143, 137, 135, 130, 140, 150, 139, 137, 146, 141, 137, 134, 137, 148, 141, 137, 135, 133, 132, 139, 139, 135, 141, 138, 137, 139, 130, 139, 157, 140, 142, 150, 133, 138, 140, 137, 143, 141, 136, 137, 134, 138, 145, 134, 143, 127, 145, 140, 142, 143, 139, 145, 142, 131, 135, 127, 128, 137, 136, 150, 143, 137, 139, 137, 136, 145, 139, 142, 152, 140, 143, 134, 146, 146, 137, 148, 145, 139, 137, 140, 140, 129, 141, 144, 140, 148, 141, 140, 135, 138, 131, 145, 142, 143, 129, 139, 137, 138, 140, 140, 147, 134, 137, 132, 141, 134, 140, 138, 134, 148, 141, 151, 136, 151, 144, 139, 133, 133, 136, 139, 140, 131, 137, 138, 134, 136, 129, 138, 136, 135, 144, 151, 150, 142, 136, 136, 138, 134, 145, 142, 138, 129, 146, 133, 140, 140, 139, 131, 148, 144, 140, 143, 134, 115, 139, 134, 151, 143, 149, 129, 138, 136, 149, 144, 144, 143, 137, 139, 150, 135, 131, 145, 142, 128, 137, 146, 131, 140, 136, 133, 137, 136, 141, 142, 137, 128, 127, 139, 141, 137, 143, 127, 131, 136, 144, 138, 125, 144, 148, 142, 145, 151, 127, 136, 138, 135, 133, 133, 135, 145, 142, 145, 135, 144, 138, 137, 138, 139, 142, 134, 136, 139, 148, 139, 144, 142, 146, 115, 141, 133, 141, 143, 141, 141, 152, 138, 142, 143, 144, 137, 135, 138, 136, 131, 134, 144, 137, 139, 140, 144, 134, 140, 131, 146, 140, 146, 134, 136, 149, 141, 141, 135, 149, 135, 138, 132, 149, 136, 133, 137, 148, 131, 132, 136, 146, 137, 145, 138, 141, 142, 136, 131, 136, 141, 137, 135, 129, 138, 131, 135, 142, 151, 134, 141, 133, 153, 144, 134, 135, 131, 145, 131, 134, 126, 133, 144, 131, 142, 140, 144, 144, 140, 144, 138, 134, 129, 135, 136, 135, 139, 135, 132, 134, 143, 131, 154, 143, 136, 141, 145, 137, 147, 143, 135, 137, 140, 135, 138, 130, 151, 132, 140, 138, 127, 140, 137, 136, 135, 147, 137, 128, 124, 129, 136, 136, 141, 143, 148, 144, 143, 145, 148, 131, 146, 142, 140, 152, 144, 144, 141, 141, 140, 143, 138, 143, 133, 141, 139, 145, 131, 136, 138, 137, 142, 142, 143, 140, 144, 129, 146, 131, 129, 148, 143, 143, 141, 146, 138, 142, 142, 138, 142, 140, 138, 143, 138, 143, 144, 135, 138, 139, 142, 137, 143, 146, 134, 132, 145, 134, 139, 128, 148, 135, 134, 144, 133, 147, 140, 143, 141, 141, 137, 136, 128, 136, 131, 136, 146, 131, 136, 139, 135, 147, 136, 139, 136, 144, 139, 130, 140, 139, 139, 141, 137, 136, 141, 137, 141, 140, 142, 143, 135, 140, 139, 146, 138, 130, 136, 139, 143, 145, 141, 137, 139, 138, 139, 138, 137, 141, 138, 143, 136, 136, 139, 137, 139, 138, 136, 137, 139, 137, 136, 137, 136, 141, 140, 138, 141, 137, 147, 142, 138, 143, 144, 125, 137, 140, 140, 141, 135, 133, 136, 142, 137, 129, 140, 138, 135, 145, 140, 138, 141, 140, 140, 139, 134, 140, 137, 137, 135, 142, 138, 134, 146, 134, 133, 137, 139, 136, 139, 139, 142, 137, 136, 138, 149, 137, 132, 140, 140, 138, 135, 143, 137, 141, 138, 138, 140, 143, 134, 142, 143, 142, 142, 137, 138, 138, 137, 139, 138, 138, 142, 142, 137, 136, 138, 136, 148, 142, 140, 134, 141, 144, 139, 135, 139, 138, 139, 138, 133, 137, 140, 139, 146, 140, 139, 137, 139, 136, 138, 141, 141, 134, 150, 141, 134, 138, 141, 132, 124, 135, 135, 138, 141, 138, 138, 142, 140, 137, 137, 138, 132, 134, 139, 133, 140, 139, 143, 139, 137, 159, 139, 139, 146, 139, 141, 138, 137, 138, 138, 137, 138, 137, 138, 140, 142, 139, 134, 130, 140, 142, 142, 142, 142, 134, 144, 141, 141, 136, 138, 135, 145, 151, 140, 138, 142, 138, 139, 139, 139, 143, 138, 138, 131, 140, 143, 135, 139, 145, 140, 135, 136, 133, 139, 139, 140, 143, 136, 140, 134, 131, 137, 136, 140, 140, 133, 135, 139, 142, 141, 139, 132, 141, 143, 145, 141, 141, 138, 136, 138, 144, 139, 143, 142, 139, 137, 137, 140, 133, 139, 139, 138, 141, 136, 135, 140, 141, 142, 142, 139, 138, 134, 137, 137, 139, 136, 140, 140, 137, 141, 135, 132, 143, 137, 140, 134, 143, 135, 139, 135, 139, 137, 140, 132, 139, 143, 134, 139, 141, 141, 138, 137, 136, 140, 147, 144, 144, 141, 138, 142, 138, 136, 139, 135, 135, 147, 142, 139, 133, 136, 135, 135, 135, 136, 132, 137, 142, 141, 141, 144, 139, 143, 142, 142, 134, 142, 140, 142, 134, 142, 139, 137, 134, 135, 142, 135, 139, 133, 141, 141, 141, 143, 139, 139, 136, 143, 141, 140, 141, 137, 137, 134, 143, 140, 135, 136, 138, 136, 138, 142, 134, 139, 140, 141, 140, 138, 141, 142, 132, 143, 135, 131, 136, 139, 140, 141, 139, 135, 138, 140, 135, 139, 140, 141, 135, 136, 142, 136, 138, 135, 141, 139, 138, 143, 137, 141, 141, 133, 139, 137, 143, 135, 139, 137, 138, 135, 139, 143, 135, 130, 134, 134, 136, 142, 140, 133, 139, 141, 137, 141, 144, 139, 141, 136, 136, 142, 139, 137, 143, 142, 139, 139, 136, 138, 141, 136, 138, 142, 141, 139, 133, 146, 135, 141, 142, 140, 137, 133, 130, 139, 144, 140, 144, 137, 137, 140, 135, 136, 133, 140, 132, 137, 141, 142, 141, 136, 142, 138, 136, 137, 136, 141, 136, 143, 137, 139, 136, 139, 135, 140, 133, 138, 125, 143, 130, 140, 135, 134, 139, 148, 141, 136, 149, 140, 135, 153, 137, 145, 128, 145, 133, 148, 138, 132, 143, 143, 140, 123, 141, 138, 146, 132, 137, 144, 136, 138, 134, 147, 142, 139, 137, 132, 131, 137, 142, 143, 136, 138, 137, 145, 132, 134, 138, 137, 133, 142, 142, 144, 149, 138, 150, 131, 140, 137, 139, 144, 140, 132, 148, 135, 136, 134, 134, 132, 133, 132, 140, 139, 142, 139, 143, 143, 143, 139, 149, 147, 137, 131, 142, 140, 135, 145, 135, 141, 131, 148, 140, 136, 146, 133, 136, 129, 137, 129, 126, 136, 132, 136, 139, 135, 135, 140, 131, 132, 133, 133, 144, 139, 139, 148, 153, 140, 141, 128, 134, 137, 149, 136, 135, 135, 138, 138, 142, 138, 143, 131, 142, 137, 136, 137, 141, 140, 137, 142, 137, 136, 134, 137, 144, 124, 138, 151, 144, 137, 126, 147, 143, 131, 134, 131, 149, 147, 135, 138, 141, 150, 134, 147, 141, 142, 131, 127, 126, 139, 131, 138, 140, 138, 140, 139, 141, 140, 134, 148, 137, 134, 136, 133, 140, 135, 151, 144, 138, 137, 132, 139, 145, 139, 135, 143, 151, 130, 135, 153, 136, 140, 132, 131, 150, 135, 132, 141, 143, 138, 143, 145, 138, 133, 136, 139, 130, 139, 132, 136, 134, 132, 140, 137, 139, 147, 136, 134, 124, 139, 151, 138, 146, 139, 136, 145, 137, 140, 128, 136, 134, 138, 145, 136, 131, 137, 136, 151, 132, 141, 137, 142, 136, 138, 145, 129, 126, 132, 137, 143, 134, 144, 136, 141, 140, 140, 132, 145, 137, 138, 139, 137, 139, 135, 139, 135, 135, 144, 144, 143, 135, 144, 139, 140, 142, 141, 132, 131, 138, 142, 149, 152, 154, 133, 132, 136, 147, 133, 133, 140, 130, 141, 140, 139, 134, 135, 136, 129, 138, 144, 133, 144, 148, 142, 136, 137, 141, 146, 138, 132, 131, 142, 136, 138, 140, 152, 144, 126, 137, 145, 132, 134, 143, 145, 130, 140, 136, 139, 144, 142, 135, 143, 133, 143, 148, 140, 137, 146, 149, 131, 148, 138, 142, 146, 138, 152, 146, 133, 141, 144, 135, 136, 134, 151, 142, 135, 134, 134, 136, 143, 144, 136, 140, 139, 144, 135, 133, 146, 131, 135, 139, 136, 135, 139, 136, 130, 137, 121, 146, 143, 131, 143, 136, 136, 126, 138, 130, 135, 135, 134, 132, 140, 149, 136, 141, 146, 146, 136, 130, 143, 129, 135, 126, 134, 148, 137, 152, 151, 134, 128, 139, 149, 148, 132, 147, 145, 135, 146, 157, 148, 136, 138, 137, 149, 142, 145, 134, 141, 133, 151, 139, 142, 143, 129, 139, 132, 142, 138, 152, 141, 145, 137, 133, 135, 133, 140, 134, 128, 146, 144, 138, 147, 142, 134, 135, 130, 129, 142, 145, 131, 147, 144, 136, 140, 144, 129, 149, 138, 138, 145, 146, 132, 146, 143, 136, 139, 140, 140, 134, 131, 134, 147, 136, 142, 138, 153, 145, 138, 146, 148, 130, 133, 145, 135, 148, 143, 146, 130, 134, 134, 132, 133, 142, 134, 140, 146, 145, 146, 140, 142, 131, 139, 148, 139, 144, 141, 141, 138, 139, 139, 141, 134, 139, 135, 133, 135, 130, 142, 134, 138, 131, 144, 142, 137, 145, 140, 140, 134, 136, 139, 142, 140, 136, 137, 141, 145, 138, 144, 134, 139, 136, 132, 139, 137, 141, 143, 138, 142, 141, 146, 135, 132, 140, 141, 143, 127, 138, 139, 139, 140, 140, 145, 131, 135, 139, 135, 141, 135, 134, 148, 143, 144, 142, 140, 143, 135, 139, 143, 145, 145, 138, 139, 135, 140, 133, 145, 145, 143, 142, 139, 141, 147, 132, 141, 140, 133, 147, 138, 132, 141, 139, 143, 137, 133, 132, 143, 133, 145, 134, 133, 147, 134, 141, 143, 139, 139, 134, 137, 153, 141, 141, 148, 143, 137, 138, 141, 131, 137, 136, 137, 140, 143, 135, 145, 136, 134, 143, 136, 131, 146, 132, 139, 134, 140, 140, 133, 130, 135, 140, 139, 137, 135, 132, 137, 133, 137, 132, 135, 143, 147, 140, 138, 137, 142, 137, 133, 137, 141, 145, 137, 141, 153, 140, 135, 136, 138, 139, 140, 146, 140, 136, 138, 141, 146, 138, 137, 137, 151, 143, 138, 143, 142, 136, 139, 139, 139, 138, 136, 139, 128, 132, 149, 140, 142, 142, 139, 143, 134, 140, 139, 143, 138, 132, 133, 144, 140, 138, 134, 142, 139, 136, 141, 139, 146, 143, 131, 146, 144, 139, 135, 139, 144, 139, 141, 134, 126, 139, 132, 138, 137, 136, 146, 148, 139, 136, 136, 135, 138, 129, 137, 136, 133, 140, 139, 146, 140, 141, 133, 142, 148, 128, 139, 142, 134, 134, 141, 143, 137, 136, 138, 133, 142, 137, 139, 142, 141, 134, 130, 150, 143, 145, 145, 143, 142, 135, 132, 133, 135, 140, 150, 143, 140, 138, 134, 138, 134, 135, 144, 141, 135, 138, 154, 139, 143, 136, 143, 132, 136, 142, 133, 137, 144, 136, 145, 137, 135, 136, 139, 145, 146, 140, 134, 137, 133, 138, 142, 145, 129, 126, 139, 135, 133, 141, 144, 138, 139, 129, 142, 138, 142, 138, 139, 140, 131, 131, 130, 144, 133, 138, 142, 138, 134, 141, 138, 138, 144, 143, 154, 137, 143, 133, 138, 140, 137, 132, 140, 137, 143, 140, 136, 142, 136, 138, 138, 135, 141, 139, 139, 130, 140, 142, 142, 131, 128, 139, 141, 143, 135, 136, 139, 138, 144, 138, 136, 136, 140, 143, 135, 132, 135, 141, 136, 133, 135, 136, 139, 137, 136, 137, 138, 139, 138, 134, 135, 146, 139, 131, 139, 142, 133, 140, 141, 148, 133, 140, 140, 144, 141, 135, 142, 139, 137, 140, 132, 132, 136, 141, 132, 134, 137, 145, 141, 144, 142, 142, 132, 137, 134, 137, 137, 148, 135, 136, 138, 141, 145, 138, 130, 150, 138, 144, 126, 146, 144, 136, 144, 138, 135, 132, 138, 140, 141, 136, 132, 150, 135, 134, 142, 139, 142, 139, 134, 137, 143, 138, 143, 137, 143, 145, 138, 143, 139, 137, 139, 138, 148, 140, 133, 135, 131, 144, 138, 142, 134, 142, 132, 138, 144, 130, 141, 142, 144, 133, 144, 146, 136, 138, 138, 139, 142, 138, 139, 141, 134, 141, 143, 138, 138, 137, 135, 129, 139, 135, 138, 134, 131, 136, 142, 145, 142, 131, 131, 149, 137, 141, 144, 137, 138, 146, 137, 142, 149, 149, 139, 145, 141, 138, 139, 134, 143, 143, 132, 146, 141, 131, 143, 130, 135, 137, 136, 141, 134, 141, 135, 143, 131, 133, 129, 144, 133, 137, 141, 138, 142, 139, 127, 139, 136, 138, 143, 124, 134, 133, 133, 139, 138, 141, 128, 143, 135, 130, 133, 135, 136, 138, 139, 141, 138, 136, 134, 143, 152, 137, 132, 133, 142, 134, 135, 134, 144, 144, 143, 142, 146, 139, 145, 142, 136, 146, 130, 137, 140, 141, 143, 151, 137, 151, 139, 144, 146, 138, 135, 137, 137, 133, 134, 141, 148, 140, 132, 141, 139, 130, 142, 142, 136, 153, 137, 134, 136, 145, 140, 141, 138, 143, 146, 130, 137, 137, 147, 141, 135, 157, 137, 148, 136, 137, 152, 138, 139, 133, 145, 140, 128, 138, 139, 139, 136, 143, 144, 142, 143, 131, 131, 136, 140, 146, 134, 132, 133, 133, 139, 141, 130, 138, 136, 146, 140, 135, 141, 137, 139, 147, 139, 144, 132, 141, 134, 136, 136, 138, 146, 139, 142, 138, 128, 140, 131, 140, 142, 129, 143, 137, 131, 151, 148, 132, 132, 137, 147, 137, 142, 134, 147, 141, 135, 134, 147, 135, 138, 133, 146, 146, 136, 132, 136, 135, 141, 136, 137, 135, 142, 132, 142, 134, 128, 129, 134, 144, 146, 148, 142, 140, 141, 133, 136, 134, 130, 140, 140, 135, 133, 143, 141, 141, 139, 147, 138, 137, 140, 138, 143, 138, 139, 137, 149, 142, 135, 141, 126, 138, 139, 135, 134, 129, 135, 144, 136, 145, 140, 135, 135, 140, 138, 132, 132, 140, 136, 153, 137, 145, 140, 132, 137, 134, 146, 138, 140, 134, 139, 143, 140, 141, 142, 130, 145, 146, 135, 138, 140, 141, 131, 136, 128, 143, 132, 137, 140, 136, 143, 141, 144, 136, 137, 146, 129, 128, 144, 142, 139, 141, 146, 134, 141, 135, 133, 144, 134, 138, 144, 142, 140, 142, 132, 138, 139, 128, 145, 135, 144, 136, 149, 128, 134, 130, 133, 139, 137, 134, 158, 139, 133, 138, 140, 134, 144, 139, 142, 149, 146, 135, 137, 140, 141, 138, 141, 139, 133, 135, 142, 144, 131, 138, 144, 141, 138, 130, 140, 135, 133, 136, 143, 141, 135, 138, 146, 141, 131, 141, 140, 131, 134, 137, 139, 136, 138, 140, 143, 144, 138, 145, 140, 146, 142, 137, 142, 143, 140, 143, 137, 131, 149, 139, 137, 135, 135, 145, 137, 123, 137, 141, 146, 135, 146, 136, 137, 137, 137, 133, 141, 141, 133, 143, 140, 136, 140, 137, 145, 143, 142, 142, 139, 138, 145, 144, 141, 137, 138, 141, 127, 140, 147, 139, 133, 130, 137, 140, 146, 146, 138, 132, 133, 143, 135, 140, 138, 127, 145, 145, 135, 134, 139, 137, 134, 136, 143, 142, 135, 138, 145, 141, 140, 136, 142, 133, 140, 142, 140, 134, 159, 124, 133, 140, 135, 140, 136, 137, 133, 137, 133, 134, 128, 136, 136, 146, 142, 138, 139, 143, 133, 138, 136, 144, 135, 138, 137, 141, 134, 144, 146, 121, 139, 134, 141, 140, 130, 131, 137, 138, 144, 139, 135, 138, 135, 138, 137, 137, 136, 130, 130, 148, 140, 139, 141, 138, 140, 142, 140, 127, 140, 126, 132, 137, 138, 138, 143, 133, 145, 134, 141, 138, 131, 129, 136, 145, 137, 140, 137, 129, 133, 133, 138, 145, 143, 138, 137, 139, 142, 138, 152, 139, 140, 134, 128, 141, 130, 143, 134, 144, 147, 138, 136, 139, 145, 140, 139, 141, 138, 132, 128, 138, 140, 137, 138, 138, 135, 145, 135, 134, 136, 146, 144, 122, 143, 143, 142, 138, 149, 146, 138, 138, 135, 142, 140, 138, 130, 137, 142, 141, 153, 135, 144, 142, 144, 145, 134, 131, 138, 129, 137, 136, 133, 138, 138, 146, 136, 132, 140, 141, 134, 145, 145, 139, 147, 139, 137, 131, 131, 135, 139, 140, 137, 138, 135, 137, 139, 132, 146, 135, 137, 133, 141, 138, 134, 137, 137, 131, 136, 126, 134, 134, 136, 132, 145, 146, 140, 146, 138, 137, 139, 133, 135, 144, 143, 137, 148, 135, 137, 135, 139, 134, 138, 143, 138, 139, 140, 147, 132, 148, 131, 133, 148, 129, 132, 141, 139, 136, 140, 130, 148, 143, 140, 135, 142, 164, 145, 143, 143, 137, 133, 138, 142, 139, 130, 137, 138, 142, 133, 141, 128, 142, 139, 151, 139, 133, 142, 138, 140, 146, 142, 148, 136, 136, 135, 143, 140, 139, 148, 136, 137, 133, 141, 140, 138, 139, 139, 139, 139, 132, 131, 136, 146, 140, 143, 134, 137, 143, 136, 142, 130, 138, 129, 135, 140, 143, 138, 141, 137, 139, 137, 145, 135, 141, 135, 133, 138, 146, 141, 142, 141, 137, 140, 135, 147, 146, 145, 138, 141, 141, 140, 140, 141, 135, 141, 136, 136, 132, 140, 140, 133, 139, 133, 144, 157, 136, 148, 137, 139, 136, 139, 136, 152, 143, 148, 128, 137, 139, 144, 142, 140, 140, 137, 138, 138, 137, 142, 143, 137, 129, 142, 141, 134, 127, 131, 146, 134, 142, 140, 131, 140, 141, 137, 149, 137, 140, 138, 136, 131, 134, 150, 140, 139, 136, 140, 149, 136, 139, 130, 134, 138, 132, 146, 130, 138, 138, 138, 135, 132, 130, 142, 131, 133, 144, 137, 140, 133, 139, 142, 135, 138, 138, 139, 141, 133, 135, 137, 143, 131, 133, 152, 141, 134, 134, 139, 141, 135, 145, 136, 144, 130, 143, 153, 135, 139, 142, 139, 144, 133, 142, 141, 141, 124, 134, 134, 137, 138, 136, 151, 137, 140, 133, 128, 138, 143, 141, 137, 142, 134, 135, 147, 144, 142, 131, 145, 145, 139, 131, 143, 131, 144, 134, 138, 145, 149, 143, 135, 138, 134, 136, 136, 146, 138, 146, 140, 139, 139, 148, 133, 144, 133, 129, 140, 141, 134, 136, 144, 122, 123, 144, 134, 139, 130, 143, 131, 141, 135, 138, 139, 144, 136, 141, 147, 151, 139, 130, 141, 139, 133, 140, 138, 139, 130, 146, 131, 122, 133, 136, 140, 129, 139, 134, 136, 139, 142, 147, 132, 143, 133, 145, 133, 147, 142, 146, 141, 138, 123, 128, 134, 131, 141, 136, 143, 130, 144, 145, 134, 147, 139, 142, 145, 145, 138, 133, 126, 139, 136, 128, 138, 134, 141, 132, 140, 138, 134, 150, 140, 133, 137, 136, 137, 134, 137, 144, 141, 137, 136, 138, 132, 131, 136, 134, 140, 139, 144, 131, 130, 142, 143, 148, 134, 137, 137, 144, 135, 134, 134, 139, 137, 136, 132, 133, 149, 136, 139, 146, 137, 141, 143, 136, 137, 137, 137, 145, 126, 134, 145, 150, 136, 128, 143, 139, 141, 137, 140, 132, 139, 139, 147, 145, 128, 129, 149, 147, 134, 143, 139, 132, 145, 141, 145, 147, 139, 135, 135, 145, 127, 139, 147, 149, 141, 132, 143, 133, 139, 133, 136, 134, 141, 141, 133, 151, 143, 123, 135, 142, 156, 139, 131, 142, 138, 138, 143, 150, 149, 134, 138, 145, 144, 143, 148, 136, 136, 132, 140, 135, 139, 145, 144, 148, 142, 137, 138, 138, 146, 146, 145, 144, 125, 147, 138, 137, 139, 135, 138, 144, 137, 125, 140, 147, 147, 138, 131, 141, 142, 140, 139, 144, 140, 124, 143, 138, 141, 140, 140, 139, 146, 145, 131, 138, 139, 128, 140, 139, 151, 150, 133, 152, 132, 139, 130, 143, 130, 142, 143, 128, 138, 150, 139, 142, 132, 136, 133, 144, 134, 127, 135, 134, 138, 138, 129, 144, 140, 137, 133, 135, 128, 145, 148, 134, 137, 136, 140, 123, 131, 146, 139, 130, 148, 140, 146, 142, 127, 134, 144, 138, 135, 127, 129, 132, 135, 147, 145, 138, 136, 146, 146, 136, 131, 134, 143, 142, 144, 150, 132, 144, 146, 149, 141, 133, 133, 149, 136, 138, 137, 138, 144, 142, 145, 130, 136, 144, 138, 134, 143, 139, 147, 141, 134, 141, 146, 149, 146, 139, 137, 132, 143, 133, 143, 141, 143, 130, 135, 142, 137, 138, 140, 136, 148, 138, 133, 132, 140, 129, 142, 135, 141, 145, 138, 141, 138, 133, 137, 146, 139, 139, 135, 131, 132, 138, 138, 128, 138, 134, 147, 133, 140, 145, 144, 137, 127, 138, 150, 142, 139, 135, 126, 146, 139, 134, 127, 132, 139, 136, 138, 119, 140, 137, 149, 136, 135, 145, 134, 140, 140, 144, 140, 139, 135, 139, 136, 140, 156, 141, 151, 130, 133, 138, 142, 142, 135, 142, 144, 141, 143, 144, 138, 139, 130, 134, 146, 143, 140, 134, 144, 139, 137, 136, 140, 143, 137, 135, 142, 144, 142, 131, 135, 138, 140, 143, 137, 134, 139, 134, 134, 150, 141, 134, 145, 138, 145, 154, 145, 138, 138, 136, 145, 143, 135, 142, 138, 141, 144, 130, 150, 137, 137, 152, 142, 141, 134, 135, 145, 136, 127, 144, 129, 143, 136, 130, 135, 150, 147, 145, 139, 132, 138, 137, 134, 140, 152, 136, 148, 135, 137, 134, 142, 138, 141, 146, 141, 137, 134, 145, 129, 138, 142, 133, 137, 142, 130, 140, 136, 144, 138, 134, 138, 133, 142, 135, 140, 142, 139, 141, 145, 135, 143, 138, 140, 142, 138, 147, 145, 148, 142, 138, 138, 144, 143, 142, 122, 127, 139, 135, 141, 129, 143, 140, 140, 136, 135, 134, 139, 143, 143, 140, 135, 132, 135, 139, 131, 143, 138, 153, 140, 140, 140, 147, 132, 144, 141, 134, 132, 139, 128, 143, 131, 146, 140, 137, 137, 136, 138, 145, 129, 138, 138, 131, 133, 136, 137, 139, 135, 144, 137, 140, 136, 143, 140, 153, 149, 143, 135, 138, 139, 137, 141, 138, 143, 140, 134, 142, 139, 146, 144, 145, 138, 133, 139, 133, 135, 141, 137, 133, 142, 142, 137, 137, 143, 132, 143, 141, 146, 129, 144, 140, 140, 114, 135, 146, 147, 137, 135, 138, 148, 139, 132, 137, 140, 132, 141, 142, 142, 143, 149, 135, 135, 136, 134, 149, 140, 136, 141, 131, 135, 142, 141, 136, 138, 138, 141, 147, 145, 135, 141, 136, 142, 136, 139, 138, 137, 155, 143, 134, 157, 135, 138, 145, 141, 141, 143, 141, 132, 137, 132, 130, 151, 137, 134, 137, 138, 139, 148, 138, 137, 144, 139, 138, 139, 144, 136, 141, 140, 137, 144, 138, 139, 136, 138, 146, 142, 141, 136, 115, 139, 146, 128, 140, 146, 145, 130, 139, 136, 141, 132, 143, 142, 140, 134, 140, 139, 142, 143, 141, 141, 131, 137, 139, 138, 141, 135, 135, 139, 132, 140, 144, 139, 141, 141, 135, 135, 138, 136, 141, 138, 142, 138, 139, 143, 138, 148, 138, 133, 136, 142, 133, 136, 144, 143, 138, 136, 139, 136, 139, 137, 142, 140, 142, 141, 143, 142, 143, 131, 144, 134, 138, 144, 135, 139, 138, 140, 137, 139, 137, 140, 136, 140, 140, 152, 140, 133, 142, 140, 142, 135, 137, 141, 137, 142, 148, 139, 147, 143, 138, 139, 135, 150, 131, 139, 146, 139, 136, 137, 146, 138, 143, 139, 139, 134, 131, 142, 139, 139, 135, 134, 138, 137, 137, 145, 142, 144, 138, 139, 149, 142, 144, 135, 134, 140, 139, 138, 138, 133, 141, 138, 148, 139, 143, 138, 149, 140, 136, 124, 134, 133, 143, 141, 137, 137, 146, 135, 139, 143, 135, 140, 140, 141, 130, 139, 139, 138, 137, 139, 133, 132, 132, 142, 139, 140, 126, 132, 134, 140, 138, 135, 141, 147, 144, 139, 111, 133, 139, 134, 135, 139, 152, 143, 136, 140, 147, 135, 139, 142, 146, 146, 132, 140, 139, 136, 142, 136, 138, 134, 143, 136, 135, 138, 135, 138, 136, 142, 142, 137, 134, 143, 144, 140, 135, 138, 126, 136, 130, 136, 139, 131, 134, 143, 135, 145, 137, 141, 141, 128, 128, 141, 136, 145, 138, 140, 137, 135, 143, 139, 143, 143, 140, 141, 141, 139, 147, 137, 141, 141, 142, 137, 136, 143, 133, 133, 144, 141, 135, 145, 140, 139, 145, 148, 140, 138, 144, 139, 131, 138, 137, 139, 137, 139, 144, 137, 140, 131, 139, 138, 139, 137, 141, 136, 142, 137, 136, 142, 141, 143, 138, 139, 145, 142, 138, 146, 134, 137, 138, 142, 138, 139, 135, 142, 137, 138, 136, 136, 138, 147, 139, 142, 139, 139, 141, 136, 148, 143, 138, 131, 139, 134, 140, 134, 139, 139, 139, 139, 141, 140, 135, 141, 146, 124, 136, 135, 138, 141, 140, 135, 139, 139, 138, 135, 140, 136, 139, 141, 138, 146, 135, 137, 136, 129, 130, 139, 143, 141, 140, 142, 135, 140, 140, 141, 142, 142, 140, 144, 145, 133, 142, 132, 141, 138, 134, 141, 134, 137, 147, 144, 132, 143, 142, 138, 137, 143, 141, 137, 138, 141, 143, 134, 140, 138, 141, 136, 136, 137, 141, 138, 146, 140, 138, 140, 141, 138, 120, 144, 143, 140, 136, 144, 134, 139, 138, 137, 142, 138, 142, 140, 148, 140, 142, 140, 139, 139, 144, 134, 140, 146, 132, 134, 141, 144, 140, 137, 135, 138, 140, 139, 133, 131, 142, 142, 143, 141, 140, 143, 141, 136, 138, 142, 140, 138, 137, 147, 141, 144, 139, 139, 138, 145, 134, 140, 141, 142, 136, 141, 138, 144, 141, 138, 138, 139, 140, 140, 139, 144, 136, 139, 143, 129, 141, 139, 132, 141, 141, 136, 145, 142, 141, 141, 134, 139, 136, 142, 137, 142, 136, 144, 139, 148, 136, 134, 142, 138, 145, 141, 145, 142, 143, 142, 141, 141, 139, 142, 138, 131, 140, 140, 136, 137, 139, 140, 133, 133, 140, 141, 145, 139, 140, 142, 141, 143, 140, 147, 146, 141, 134, 137, 133, 142, 136, 136, 144, 132, 127, 135, 138, 140, 147, 139, 139, 136, 134, 139, 145, 138, 137, 138, 142, 137, 143, 139, 141, 142, 135, 138, 142, 141, 139, 131, 138, 130, 136, 138, 138, 136, 149, 138, 145, 142, 140, 137, 144, 139, 142, 140, 138, 142, 141, 138, 139, 137, 136, 140, 134, 137, 136, 146, 138, 135, 141, 144, 137, 132, 146, 136, 141, 140, 135, 145, 145, 143, 136, 139, 138, 143, 129, 138, 139, 135, 136, 137, 141, 142, 140, 142, 137, 139, 137, 137, 136, 138, 142, 142, 139, 140, 137, 136, 143, 139, 134, 144, 137, 140, 137, 134, 146, 139, 136, 138, 135, 143, 141, 133, 144, 138, 139, 142, 140, 134, 135, 141, 132, 137, 131, 141, 147, 134, 142, 137, 142, 138, 144, 136, 145, 160, 132, 141, 134, 138, 132, 137, 141, 138, 132, 138, 144, 138, 143, 142, 132, 144, 132, 141, 139, 134, 137, 137, 143, 138, 138, 144, 142, 145, 135, 139, 146, 139, 136, 144, 138, 144, 143, 138, 127, 143, 142, 136, 140, 140, 136, 140, 146, 136, 138, 141, 136, 133, 136, 140, 141, 137, 139, 141, 143, 144, 144, 139, 136, 143, 144, 140, 136, 141, 131, 137, 139, 139, 141, 140, 138, 140, 140, 139, 139, 144, 142, 133, 144, 143, 143, 143, 138, 133, 139, 139, 147, 140, 144, 145, 143, 143, 136, 136, 138, 128, 142, 145, 135, 138, 142, 143, 147, 143, 140, 139, 138, 141, 135, 142, 143, 140, 141, 135, 144, 133, 140, 125, 144, 149, 137, 132, 133, 138, 135, 138, 142, 147, 134, 140, 148, 132, 141, 146, 134, 136, 138, 135, 139, 134, 133, 131, 147, 135, 137, 138, 140, 142, 129, 129, 143, 132, 131, 147, 135, 141, 137, 137, 141, 140, 137, 131, 135, 125, 135, 132, 125, 129, 138, 142, 132, 147, 144, 143, 139, 138, 131, 141, 152, 139, 140, 135, 146, 138, 143, 138, 139, 141, 129, 131, 143, 141, 145, 132, 128, 139, 150, 138, 138, 144, 134, 138, 142, 136, 136, 134, 140, 130, 149, 143, 151, 129, 138, 128, 135, 134, 136, 133, 139, 138, 136, 137, 141, 144, 145, 140, 140, 145, 128, 143, 146, 140, 129, 145, 128, 137, 143, 135, 135, 132, 141, 131, 145, 147, 140, 133, 148, 135, 130, 136, 136, 148, 149, 135, 126, 132, 151, 134, 144, 141, 140, 142, 137, 141, 137, 132, 147, 134, 155, 143, 139, 141, 151, 141, 124, 140, 128, 137, 142, 141, 137, 151, 143, 143, 133, 139, 152, 138, 129, 138, 144, 148, 141, 136, 137, 144, 138, 139, 141, 138, 141, 141, 131, 143, 132, 145, 129, 141, 138, 142, 136, 143, 139, 138, 144, 137, 138, 135, 139, 145, 140, 128, 149, 138, 141, 138, 138, 135, 137, 143, 148, 139, 129, 143, 139, 138, 147, 142, 147, 133, 137, 152, 137, 141, 138, 140, 142, 142, 132, 134, 140, 128, 138, 139, 137, 141, 141, 134, 147, 140, 131, 149, 133, 146, 141, 138, 144, 147, 150, 140, 138, 151, 148, 137, 142, 136, 129, 143, 127, 145, 146, 139, 153, 141, 129, 140, 137, 139, 131, 124, 145, 145, 133, 125, 132, 140, 128, 150, 140, 145, 133, 131, 146, 136, 138, 141, 135, 146, 138, 126, 137, 149, 147, 134, 133, 144, 140, 135, 141, 147, 130, 150, 127, 145, 140, 141, 134, 126, 134, 142, 140, 143, 140, 139, 145, 143, 138, 129, 141, 140, 147, 148, 143, 138, 127, 135, 142, 141, 139, 143, 141, 136, 132, 125, 140, 141, 140, 145, 129, 138, 133, 135, 127, 144, 131, 141, 131, 145, 134, 145, 137, 136, 138, 135, 134, 132, 137, 128, 130, 136, 126, 132, 136, 146, 141, 149, 148, 143, 145, 145, 139, 136, 142, 148, 147, 142, 132, 133, 141, 139, 133, 148, 141, 125, 140, 131, 141, 134, 142, 141, 136, 145, 142, 140, 131, 141, 154, 140, 142, 152, 139, 137, 136, 127, 145, 142, 130, 136, 139, 141, 133, 140, 135, 158, 144, 147, 147, 123, 145, 137, 139, 137, 137, 138, 143, 139, 134, 134, 150, 140, 136, 153, 129, 147, 140, 145, 139, 138, 140, 139, 138, 134, 141, 130, 124, 143, 139, 147, 146, 134, 129, 135, 117, 140, 131, 137, 142, 140, 141, 147, 145, 144, 138, 139, 141, 138, 140, 129, 139, 134, 135, 141, 136, 137, 145, 138, 135, 135, 140, 141, 143, 145, 143, 139, 139, 133, 137, 134, 138, 137, 141, 133, 136, 134, 130, 137, 139, 144, 138, 146, 137, 136, 138, 135, 145, 143, 149, 131, 136, 134, 139, 131, 138, 136, 144, 137, 145, 143, 142, 138, 135, 139, 143, 137, 126, 136, 134, 136, 147, 131, 136, 148, 132, 138, 144, 141, 138, 144, 139, 144, 139, 128, 134, 131, 144, 140, 136, 143, 143, 147, 146, 139, 139, 138, 148, 130, 146, 140, 147, 135, 137, 142, 141, 132, 136, 133, 133, 145, 137, 144, 135, 141, 147, 147, 140, 131, 142, 137, 142, 132, 149, 140, 133, 143, 138, 133, 144, 137, 135, 138, 144, 136, 137, 137, 139, 137, 139, 141, 136, 135, 147, 137, 137, 147, 131, 150, 140, 140, 135, 134, 141, 144, 141, 138, 138, 135, 138, 133, 138, 138, 149, 135, 135, 130, 146, 138, 146, 134, 135, 147, 146, 144, 150, 134, 135, 140, 134, 133, 142, 139, 139, 136, 145, 137, 150, 146, 135, 135, 134, 138, 128, 142, 136, 141, 137, 143, 139, 144, 139, 146, 139, 136, 136, 133, 148, 137, 140, 134, 138, 133, 137, 132, 139, 138, 134, 135, 136, 136, 139, 131, 142, 142, 147, 143, 133, 133, 138, 144, 142, 136, 140, 140, 147, 143, 142, 138, 144, 135, 152, 134, 139, 142, 145, 132, 138, 143, 134, 133, 154, 130, 147, 142, 136, 140, 135, 131, 138, 136, 139, 136, 134, 144, 140, 141, 137, 140, 138, 141, 141, 130, 146, 138, 135, 151, 140, 141, 146, 135, 134, 136, 144, 139, 144, 143, 136, 135, 135, 141, 139, 136, 142, 137, 133, 141, 140, 134, 144, 135, 138, 140, 137, 140, 138, 137, 141, 144, 133, 138, 139, 133, 143, 138, 139, 142, 139, 142, 139, 136, 146, 130, 138, 135, 151, 136, 143, 143, 139, 138, 139, 136, 146, 142, 138, 130, 140, 133, 141, 138, 141, 143, 134, 137, 144, 134, 135, 141, 152, 143, 149, 140, 139, 139, 133, 148, 142, 141, 139, 136, 138, 140, 146, 138, 143, 143, 142, 144, 131, 146, 144, 137, 141, 141, 143, 142, 139, 135, 133, 140, 146, 143, 130, 137, 141, 142, 136, 138, 144, 142, 140, 140, 141, 138, 143, 138, 139, 146, 146, 135, 137, 138, 143, 143, 134, 136, 133, 136, 141, 146, 140, 136, 143, 143, 135, 137, 142, 134, 140, 135, 137, 132, 141, 131, 138, 139, 138, 145, 140, 139, 139, 130, 138, 136, 138, 139, 132, 148, 137, 144, 143, 137, 139, 140, 139, 142, 142, 139, 135, 144, 140, 143, 132, 144, 135, 142, 136, 141, 132, 133, 147, 135, 151, 134, 131, 136, 140, 145, 141, 138, 140, 139, 141, 140, 133, 151, 138, 136, 141, 140, 134, 133, 138, 137, 143, 141, 129, 141, 141, 137, 138, 142, 143, 144, 136, 132, 142, 139, 138, 134, 143, 140, 143, 137, 133, 136, 131, 137, 137, 140, 133, 139, 139, 135, 145, 143, 140, 133, 145, 140, 141, 140, 147, 139, 140, 144, 135, 137, 146, 140, 139, 135, 137, 149, 143, 142, 131, 142, 143, 140, 137, 134, 144, 139, 153, 134, 140, 145, 143, 140, 134, 133, 139, 136, 133, 136, 144, 138, 137, 135, 140, 133, 126, 140, 138, 134, 133, 144, 148, 131, 147, 135, 129, 139, 148, 138, 136, 137, 143, 146, 147, 139, 136, 127, 136, 148, 131, 136, 140, 137, 137, 137, 140, 132, 140, 139, 136, 136, 134, 141, 134, 134, 138, 141, 135, 142, 139, 140, 137, 133, 141, 138, 139, 152, 148, 144, 136, 141, 137, 134, 142, 146, 138, 139, 142, 140, 143, 140, 135, 135, 145, 139, 136, 139, 139, 143, 135, 142, 144, 145, 136, 137, 149, 134, 147, 137, 135, 134, 135, 130, 136, 142, 131, 141, 146, 141, 141, 138, 143, 140, 140, 146, 135, 144, 135, 141, 146, 145, 141, 137, 137, 136, 139, 137, 139, 140, 129, 137, 137, 133, 135, 142, 141, 134, 139, 147, 139, 140, 137, 136, 138, 145, 141, 136, 138, 138, 145, 136, 132, 135, 134, 127, 144, 134, 149, 131, 133, 138, 136, 140, 135, 138, 136, 144, 133, 136, 140, 142, 142, 134, 153, 152, 134, 136, 135, 144, 142, 142, 140, 141, 136, 138, 144, 143, 139, 138, 134, 141, 141, 130, 131, 137, 128, 139, 152, 138, 134, 134, 145, 135, 133, 140, 133, 140, 147, 140, 145, 135, 136, 134, 135, 134, 142, 139, 137, 140, 145, 144, 140, 139, 141, 138, 146, 134, 141, 132, 143, 138, 142, 141, 134, 145, 143, 137, 139, 137, 141, 133, 145, 142, 134, 134, 137, 138, 148, 136, 147, 138, 144, 144, 134, 146, 144, 141, 145, 139, 149, 145, 131, 142, 140, 138, 139, 140, 132, 132, 135, 137, 138, 144, 134, 137, 135, 142, 143, 143, 148, 130, 138, 139, 136, 137, 133, 141, 140, 130, 131, 140, 137, 141, 137, 144, 136, 139, 132, 133, 138, 132, 144, 140, 139, 151, 141, 138, 134, 156, 134, 144, 137, 140, 144, 140, 142, 141, 134, 126, 141, 144, 142, 142, 142, 145, 136, 148, 144, 147, 144, 127, 142, 137, 144, 144, 148, 145, 138, 138, 132, 141, 141, 146, 135, 142, 139, 137, 140, 127, 139, 138, 135, 138, 139, 138, 144, 133, 134, 150, 140, 135, 143, 135, 141, 133, 141, 145, 145, 132, 141, 137, 145, 135, 138, 138, 127, 136, 137, 139, 132, 138, 133, 143, 141, 133, 138, 140, 136, 136, 141, 145, 127, 141, 144, 146, 135, 130, 140, 145, 137, 138, 142, 135, 138, 145, 139, 139, 141, 142, 137, 141, 141, 134, 143, 140, 137, 140, 143, 140, 138, 140, 138, 142, 140, 134, 131, 139, 134, 138, 135, 139, 134, 131, 146, 139, 140, 134, 138, 135, 139, 141, 142, 144, 142, 146, 138, 138, 140, 142, 138, 143, 149, 128, 129, 130, 145, 149, 135, 134, 137, 139, 137, 138, 139, 143, 140, 140, 136, 137, 141, 142, 143, 141, 134, 140, 136, 139, 138, 141, 142, 142, 149, 140, 145, 147, 139, 140, 137, 137, 143, 132, 140, 129, 137, 143, 143, 136, 145, 145, 135, 136, 141, 138, 140, 131, 143, 146, 139, 132, 141, 143, 143, 124, 146, 144, 136, 136, 146, 135, 140, 140, 130, 140, 142, 140, 142, 142, 139, 130, 146, 135, 150, 137, 133, 136, 134, 143, 136, 143, 141, 140, 147, 132, 136, 144, 129, 140, 139, 143, 136, 139, 129, 138, 136, 136, 140, 136, 138, 142, 139, 134, 140, 140, 146, 126, 130, 129, 138, 132, 141, 148, 150, 146, 130, 131, 145, 140, 136, 136, 140, 134, 144, 146, 132, 147, 138, 140, 134, 142, 126, 140, 126, 140, 145, 147, 138, 137, 143, 133, 138, 133, 139, 142, 141, 134, 134, 140, 147, 142, 146, 136, 137, 143, 138, 139, 136, 140, 144, 131, 132, 139, 141, 137, 141, 142, 139, 138, 129, 139, 144, 159, 137, 142, 141, 138, 145, 129, 139, 146, 137, 129, 138, 131, 141, 138, 136, 138, 137, 146, 143, 137, 136, 139, 149, 144, 136, 124, 148, 147, 131, 152, 135, 144, 134, 138, 136, 130, 136, 138, 134, 139, 147, 137, 134, 137, 130, 128, 129, 139, 146, 140, 139, 142, 131, 128, 132, 138, 143, 146, 129, 143, 145, 144, 133, 137, 145, 138, 139, 135, 130, 138, 142, 137, 135, 145, 138, 128, 140, 137, 138, 140, 137, 135, 142, 133, 137, 144, 144, 138, 147, 137, 139, 136, 150, 137, 142, 133, 142, 139, 143, 141, 138, 138, 136, 140, 140, 133, 139, 137, 144, 139, 140, 140, 143, 135, 145, 141, 136, 135, 142, 141, 146, 130, 131, 142, 146, 141, 134, 143, 140, 131, 142, 134, 131, 128, 134, 131, 136, 134, 145, 140, 144, 134, 141, 135, 139, 136, 140, 135, 132, 144, 132, 145, 142, 137, 139, 143, 136, 149, 141, 141, 136, 141, 139, 140, 140, 139, 134, 139, 134, 139, 139, 142, 142, 134, 149, 135, 138, 139, 143, 144, 141, 139, 140, 130, 135, 140, 143, 142, 141, 135, 147, 134, 139, 137, 139, 138, 144, 138, 144, 139, 139, 132, 142, 134, 154, 135, 139, 138, 128, 143, 137, 144, 141, 141, 142, 144, 136, 137, 143, 151, 134, 141, 132, 130, 141, 132, 136, 143, 140, 137, 136, 154, 136, 129, 136, 139, 134, 140, 133, 143, 138, 148, 136, 140, 139, 143, 132, 141, 141, 137, 132, 142, 140, 137, 138, 124, 149, 143, 139, 146, 138, 136, 143, 140, 136, 133, 143, 139, 142, 132, 138, 131, 143, 141, 145, 139, 144, 144, 131, 146, 143, 140, 129, 139, 133, 140, 138, 138, 134, 134, 143, 139, 136, 130, 131, 146, 133, 139, 143, 138, 150, 148, 150, 140, 148, 128, 144, 137, 142, 138, 143, 138, 133, 145, 139, 142, 124, 138, 139, 137, 142, 139, 131, 139, 142, 130, 137, 134, 139, 149, 145, 135, 135, 139, 141, 129, 138, 129, 140, 144, 143, 129, 132, 141, 131, 138, 136, 141, 137, 142, 140, 139, 137, 136, 143, 146, 146, 138, 150, 134, 128, 142, 135, 146, 141, 143, 147, 142, 138, 132, 128, 140, 140, 143, 132, 145, 149, 133, 138, 137, 130, 143, 138, 143, 133, 138, 142, 137, 137, 135, 133, 144, 142, 128, 139, 136, 139, 129, 127, 142, 138, 135, 142, 145, 150, 140, 129, 135, 133, 132, 147, 126, 151, 128, 132, 137, 127, 143, 139, 132, 140, 142, 145, 129, 147, 135, 147, 143, 136, 148, 155, 120, 136, 144, 142, 141, 135, 140, 142, 132, 146, 147, 142, 134, 139, 133, 115, 134, 143, 134, 147, 141, 130, 142, 143, 143, 141, 143, 139, 127, 135, 142, 144, 138, 133, 152, 133, 129, 137, 137, 125, 139, 137, 141, 138, 139, 141, 139, 135, 140, 132, 134, 133, 138, 134, 140, 135, 147, 139, 146, 134, 156, 145, 143, 143, 138, 156, 129, 142, 142, 133, 149, 156, 134, 128, 149, 137, 141, 142, 140, 144, 128, 143, 135, 126, 141, 132, 124, 143, 136, 144, 151, 142, 136, 143, 136, 139, 141, 137, 135, 152, 134, 136, 136, 132, 123, 135, 144, 139, 142, 137, 136, 136, 141, 130, 134, 129, 147, 135, 151, 144, 139, 145, 131, 146, 147, 140, 134, 147, 137, 145, 145, 134, 141, 132, 153, 138, 142, 129, 139, 143, 140, 138, 133, 122, 146, 139, 140, 142, 150, 139, 126, 139, 131, 150, 140, 132, 133, 134, 136, 150, 132, 136, 159, 139, 134, 147, 143, 135, 138, 136, 133, 129, 150, 123, 134, 130, 141, 143, 141, 136, 144, 138, 128, 133, 138, 147, 141, 143, 137, 141, 145, 144, 151, 141, 142, 140, 142, 128, 131, 147, 145, 143, 134, 138, 131, 125, 136, 139, 145, 132, 138, 147, 140, 133, 130, 134, 134, 133, 142, 137, 123, 133, 133, 134, 125, 137, 134, 133, 135, 131, 132, 138, 136, 141, 139, 138, 133, 140, 127, 142, 147, 147, 146, 138, 140, 132, 147, 140, 136, 147, 148, 136, 126, 135, 146, 139, 137, 141, 133, 142, 134, 144, 135, 138, 132, 148, 135, 141, 136, 142, 138, 148, 134, 140, 127, 135, 145, 145, 134, 128, 129, 140, 151, 130, 134, 141, 133, 139, 140, 130, 132, 135, 146, 136, 139, 142, 138, 131, 142, 146, 132, 148, 140, 143, 146, 135, 129, 142, 137, 141, 127, 148, 134, 149, 134, 143, 130, 144, 147, 148, 134, 134, 142, 139, 151, 134, 130, 138, 136, 139, 140, 127, 138, 123, 129, 140, 152, 149, 145, 140, 130, 148, 151, 141, 133, 132, 151, 131, 137, 136, 146, 141, 151, 147, 130, 147, 144, 143, 138, 145, 135, 136, 149, 136, 133, 149, 147, 135, 136, 133, 142, 135, 143, 145, 141, 148, 129, 143, 128, 140, 145, 146, 137, 153, 138, 131, 152, 145, 148, 144, 136, 131, 131, 133, 143, 135, 140, 150, 136, 132, 145, 155, 142, 144, 144, 141, 147, 129, 144, 138, 149, 137, 147, 139, 139, 140, 123, 132, 156, 140, 141, 144, 137, 140, 131, 137, 138, 143, 130, 135, 135, 132, 136, 140, 154, 141, 138, 141, 139, 152, 148, 141, 141, 129, 138, 141, 136, 131, 136, 137, 133, 137, 137, 122, 139, 144, 134, 140, 143, 134, 134, 135, 148, 132, 142, 139, 141, 131, 138, 125, 131, 143, 143, 144, 140, 134, 141, 131, 143, 140, 141, 142, 137, 143, 137, 137, 141, 137, 140, 135, 143, 136, 135, 130, 140, 144, 140, 138, 136, 138, 132, 136, 145, 138, 137, 128, 131, 141, 134, 132, 136, 140, 141, 144, 144, 140, 139, 138, 134, 138, 136, 140, 128, 132, 140, 140, 145, 131, 145, 136, 140, 138, 140, 138, 140, 140, 132, 133, 137, 137, 133, 140, 135, 139, 137, 135, 138, 141, 127, 137, 143, 140, 140, 142, 144, 134, 137, 141, 132, 132, 147, 145, 132, 142, 128, 138, 140, 142, 137, 136, 137, 135, 138, 139, 138, 134, 134, 140, 135, 144, 140, 130, 141, 142, 142, 138, 139, 135, 136, 146, 136, 142, 146, 135, 136, 145, 150, 130, 131, 143, 148, 136, 139, 141, 139, 148, 142, 143, 141, 141, 138, 144, 139, 141, 140, 152, 132, 141, 142, 141, 138, 128, 137, 137, 138, 145, 136, 136, 135, 145, 149, 150, 144, 139, 131, 144, 139, 137, 137, 137, 140, 147, 137, 137, 140, 139, 138, 138, 151, 138, 138, 146, 141, 136, 138, 138, 140, 145, 143, 140, 139, 134, 138, 138, 149, 136, 139, 134, 134, 137, 139, 138, 138, 136, 138, 144, 139, 140, 142, 134, 139, 147, 139, 142, 139, 139, 135, 137, 139, 135, 138, 131, 141, 132, 144, 147, 137, 140, 146, 128, 136, 135, 137, 133, 143, 134, 141, 137, 128, 141, 136, 139, 136, 134, 138, 137, 137, 136, 138, 140, 140, 140, 138, 140, 134, 141, 132, 135, 150, 138, 137, 143, 138, 132, 139, 139, 139, 138, 138, 140, 140, 149, 136, 136, 139, 137, 135, 139, 135, 135, 121, 136, 141, 130, 133, 145, 146, 126, 136, 146, 134, 142, 144, 144, 135, 133, 139, 138, 141, 133, 133, 142, 133, 139, 135, 143, 150, 140, 133, 137, 149, 140, 144, 142, 133, 140, 133, 132, 150, 138, 140, 138, 134, 131, 138, 133, 131, 145, 137, 134, 136, 135, 140, 135, 147, 138, 138, 134, 136, 143, 141, 135, 128, 132, 140, 137, 133, 134, 139, 145, 132, 136, 139, 136, 142, 131, 138, 141, 141, 138, 128, 128, 139, 144, 139, 134, 138, 137, 133, 143, 142, 143, 142, 132, 138, 138, 132, 137, 134, 127, 144, 140, 140, 147, 133, 135, 140, 136, 148, 139, 140, 142, 141, 135, 128, 141, 139, 143, 142, 141, 137, 141, 134, 142, 138, 138, 127, 137, 139, 136, 140, 142, 140, 149, 138, 134, 137, 133, 129, 137, 143, 142, 142, 133, 148, 142, 134, 140, 151, 139, 138, 133, 145, 134, 136, 137, 131, 140, 142, 144, 137, 140, 135, 143, 132, 140, 128, 145, 130, 133, 135, 140, 140, 131, 145, 135, 142, 143, 139, 139, 140, 133, 139, 139, 144, 147, 124, 140, 137, 134, 146, 143, 140, 130, 142, 138, 143, 141, 133, 134, 143, 145, 144, 135, 135, 138, 140, 140, 126, 136, 149, 142, 144, 141, 143, 133, 139, 139, 135, 137, 145, 139, 131, 138, 138, 139, 138, 143, 142, 139, 136, 138, 136, 140, 139, 138, 131, 140, 140, 139, 139, 137, 134, 139, 147, 149, 145, 135, 145, 137, 144, 129, 139, 140, 136, 138, 138, 132, 136, 145, 135, 136, 144, 143, 143, 135, 128, 137, 147, 134, 144, 138, 144, 144, 132, 141, 147, 139, 140, 140, 137, 133, 142, 135, 138, 138, 144, 144, 134, 146, 142, 143, 136, 140, 137, 133, 138, 141, 153, 143, 129, 132, 136, 139, 133, 137, 142, 140, 146, 137, 134, 144, 136, 141, 143, 136, 145, 140, 130, 146, 136, 148, 151, 142, 133, 133, 145, 136, 130, 146, 148, 136, 140, 138, 142, 135, 132, 140, 148, 142, 147, 139, 141, 148, 140, 137, 142, 149, 131, 142, 135, 138, 141, 148, 142, 139, 133, 141, 147, 154, 140, 128, 133, 138, 139, 141, 143, 147, 145, 140, 141, 135, 147, 149, 142, 134, 148, 134, 149, 142, 137, 131, 139, 126, 148, 144, 142, 138, 131, 148, 133, 146, 137, 133, 134, 140, 130, 130, 145, 128, 139, 147, 139, 132, 146, 131, 151, 143, 131, 134, 141, 140, 140, 144, 141, 140, 141, 134, 138, 137, 141, 140, 136, 133, 139, 144, 143, 135, 143, 127, 137, 151, 143, 142, 147, 150, 141, 140, 136, 141, 139, 135, 142, 146, 143, 138, 142, 131, 143, 137, 133, 149, 138, 120, 138, 136, 141, 145, 137, 139, 143, 145, 138, 138, 139, 130, 141, 141, 137, 140, 141, 136, 144, 144, 149, 149, 138, 153, 140, 134, 142, 153, 145, 142, 150, 145, 151, 140, 143, 140, 140, 137, 143, 145, 138, 130, 140, 140, 137, 140, 130, 136, 144, 140, 133, 134, 137, 136, 134, 145, 143, 141, 130, 154, 136, 129, 129, 138, 144, 145, 144, 146, 140, 139, 144, 139, 144, 147, 140, 134, 140, 151, 136, 134, 138, 132, 145, 153, 146, 135, 141, 140, 144, 140, 147, 145, 144, 131, 142, 148, 138, 139, 139, 137, 136, 140, 138, 140, 134, 132, 138, 136, 127, 129, 141, 137, 148, 136, 140, 146, 136, 143, 153, 135, 141, 134, 143, 136, 138, 150, 138, 138, 129, 138, 137, 133, 131, 131, 131, 132, 128, 135, 143, 144, 138, 124, 138, 144, 138, 138, 140, 135, 147, 129, 140, 140, 133, 127, 142, 138, 141, 134, 146, 147, 133, 144, 131, 138, 138, 140, 136, 133, 137, 145, 134, 142, 130, 139, 141, 145, 142, 132, 136, 137, 123, 143, 139, 138, 145, 135, 132, 145, 135, 124, 139, 141, 144, 109, 132, 144, 147, 142, 134, 137, 127, 141, 128, 148, 136, 137, 148, 144, 138, 148, 135, 139, 141, 144, 146, 144, 139, 149, 143, 138, 144, 146, 138, 136, 134, 145, 147, 135, 140, 143, 138, 150, 144, 132, 145, 140, 146, 131, 131, 140, 134, 128, 150, 140, 134, 146, 147, 137, 137, 140, 130, 143, 139, 136, 142, 138, 135, 139, 142, 133, 145, 142, 147, 141, 150, 139, 143, 137, 146, 144, 139, 143, 144, 146, 140, 135, 152, 140, 132, 134, 144, 135, 126, 143, 134, 132, 126, 144, 147, 138, 148, 145, 142, 142, 141, 142, 141, 134, 138, 132, 141, 137, 132, 146, 141, 139, 134, 134, 141, 140, 137, 141, 138, 143, 144, 135, 137, 143, 136, 136, 137, 143, 138, 141, 136, 140, 133, 139, 140, 146, 138, 120, 139, 133, 149, 145, 139, 144, 145, 140, 137, 136, 137, 135, 133, 126, 140, 138, 135, 140, 147, 140, 136, 142, 141, 149, 137, 134, 133, 135, 134, 140, 132, 142, 138, 141, 135, 139, 140, 136, 134, 145, 136, 132, 143, 140, 138, 144, 133, 137, 134, 143, 134, 140, 144, 134, 140, 147, 139, 136, 134, 140, 144, 144, 149, 143, 132, 134, 131, 133, 142, 141, 138, 135, 143, 131, 142, 138, 135, 140, 145, 137, 138, 144, 142, 141, 136, 139, 138, 138, 137, 132, 137, 138, 136, 133, 144, 138, 144, 138, 133, 137, 127, 138, 139, 136, 145, 139, 138, 136, 142, 140, 142, 137, 129, 141, 134, 142, 137, 135, 139, 146, 146, 138, 136, 141, 142, 141, 146, 138, 139, 136, 148, 141, 139, 143, 135, 139, 140, 135, 143, 143, 137, 143, 140, 140, 143, 141, 139, 140, 144, 135, 139, 147, 138, 137, 137, 131, 137, 150, 138, 135, 135, 145, 139, 142, 137, 139, 135, 143, 134, 140, 139, 138, 134, 139, 146, 139, 140, 143, 140, 136, 134, 131, 136, 136, 135, 135, 141, 132, 139, 144, 140, 140, 131, 142, 147, 135, 138, 132, 139, 144, 132, 138, 140, 142, 139, 142, 141, 137, 134, 137, 134, 138, 130, 132, 142, 144, 151, 145, 146, 136, 135, 143, 134, 137, 144, 143, 140, 143, 137, 138, 142, 141, 139, 134, 162, 151, 143, 138, 131, 139, 147, 134, 129, 142, 140, 143, 141, 142, 139, 137, 132, 126, 130, 137, 144, 134, 141, 142, 140, 138, 131, 140, 139, 142, 133, 144, 142, 138, 136, 138, 138, 139, 147, 138, 144, 141, 135, 134, 144, 132, 146, 138, 152, 135, 140, 142, 144, 141, 150, 143, 133, 144, 150, 145, 134, 142, 143, 142, 138, 136, 145, 139, 146, 136, 139, 133, 137, 132, 145, 137, 135, 141, 134, 135, 137, 139, 129, 148, 134, 131, 131, 140, 132, 140, 151, 141, 138, 137, 133, 142, 130, 144, 137, 132, 133, 141, 133, 137, 140, 142, 143, 138, 137, 139, 141, 131, 140, 139, 143, 136, 133, 140, 140, 146, 136, 145, 144, 142, 128, 145, 148, 142, 128, 140, 141, 132, 136, 146, 137, 141, 141, 139, 144, 137, 135, 147, 134, 140, 141, 140, 142, 138, 140, 136, 131, 134, 144, 137, 142, 139, 133, 144, 138, 133, 142, 133, 140, 145, 140, 150, 135, 138, 145, 146, 134, 131, 137, 136, 138, 138, 135, 139, 139, 134, 135, 147, 144, 142, 137, 135, 132, 139, 133, 139, 142, 143, 141, 136, 137, 143, 141, 139, 137, 138, 144, 132, 138, 144, 147, 136, 136, 138, 137, 135, 141, 136, 138, 137, 132, 144, 143, 132, 137, 144, 146, 136, 140, 133, 136, 143, 142, 136, 135, 140, 145, 137, 128, 137, 137, 136, 143, 146, 132, 138, 128, 140, 137, 145, 135, 137, 136, 138, 138, 138, 136, 139, 150, 137, 138, 139, 150, 143, 135, 140, 139, 148, 136, 138, 142, 137, 139, 135, 139, 135, 126, 139, 140, 135, 135, 140, 141, 140, 141, 137, 140, 131, 141, 129, 137, 137, 145, 145, 134, 139, 138, 146, 140, 138, 142, 143, 137, 134, 135, 137, 135, 140, 131, 144, 138, 147, 134, 140, 143, 133, 130, 127, 138, 136, 138, 124, 142, 130, 142, 142, 142, 134, 138, 143, 134, 140, 136, 149, 134, 138, 143, 132, 141, 142, 141, 133, 140, 138, 140, 142, 125, 140, 145, 132, 139, 134, 141, 142, 130, 145, 140, 148, 132, 135, 141, 143, 140, 150, 144, 134, 136, 137, 135, 135, 140, 137, 131, 138, 137, 145, 135, 131, 140, 129, 128, 134, 143, 144, 143, 139, 127, 141, 140, 142, 134, 140, 128, 143, 143, 141, 147, 142, 139, 145, 144, 134, 130, 149, 134, 135, 140, 134, 142, 140, 135, 141, 153, 135, 139, 140, 141, 134, 135, 139, 148, 144, 131, 141, 131, 137, 142, 138, 139, 141, 144, 139, 133, 125, 142, 139, 142, 137, 139, 143, 132, 136, 138, 135, 138, 141, 140, 131, 138, 137, 134, 138, 141, 135, 138, 141, 147, 138, 147, 137, 138, 141, 147, 128, 135, 148, 143, 139, 141, 137, 134, 140, 137, 146, 136, 133, 135, 142, 155, 135, 141, 136, 146, 136, 140, 138, 143, 126, 137, 135, 135, 136, 137, 146, 135, 135, 143, 143, 135, 137, 141, 142, 141, 129, 136, 140, 139, 148, 148, 142, 138, 131, 133, 144, 138, 142, 146, 147, 140, 122, 141, 133, 142, 142, 138, 140, 151, 129, 142, 145, 140, 141, 144, 137, 141, 148, 131, 145, 129, 132, 129, 144, 139, 136, 130, 139, 137, 140, 136, 138, 141, 140, 134, 136, 136, 149, 127, 136, 142, 140, 136, 131, 141, 148, 149, 133, 136, 143, 136, 143, 140, 140, 141, 143, 136, 140, 134, 132, 142, 146, 136, 137, 143, 141, 132, 138, 146, 144, 134, 138, 134, 143, 137, 140, 136, 136, 140, 139, 137, 149, 150, 144, 132, 144, 139, 142, 133, 144, 135, 139, 135, 135, 138, 135, 144, 143, 140, 140, 135, 140, 145, 147, 134, 140, 130, 143, 138, 134, 140, 129, 135, 135, 136, 132, 138, 140, 141, 137, 140, 134, 142, 131, 150, 142, 126, 130, 131, 144, 136, 139, 139, 134, 136, 144, 140, 140, 144, 142, 137, 142, 132, 136, 139, 137, 146, 140, 143, 136, 123, 153, 139, 138, 137, 138, 133, 133, 149, 147, 129, 137, 139, 135, 143, 144, 138, 137, 147, 145, 125, 137, 133, 134, 128, 141, 139, 135, 125, 137, 153, 148, 133, 142, 143, 140, 145, 141, 138, 138, 138, 136, 144, 136, 138, 139, 140, 137, 139, 149, 137, 138, 140, 137, 141, 142, 147, 141, 143, 137, 140, 138, 147, 143, 140, 132, 133, 147, 142, 143, 148, 138, 140, 145, 134, 136, 135, 143, 135, 150, 141, 136, 136, 134, 143, 140, 135, 121, 141, 138, 137, 141, 140, 140, 134, 134, 141, 135, 137, 145, 138, 139, 134, 134, 139, 143, 138, 141, 134, 136, 141, 139, 134, 145, 137, 138, 136, 143, 136, 134, 139, 137, 141, 125, 141, 138, 147, 150, 142, 148, 139, 138, 132, 138, 134, 144, 144, 135, 143, 145, 139, 140, 132, 138, 139, 137, 142, 137, 144, 145, 131, 142, 135, 137, 134, 136, 138, 136, 135, 138, 136, 137, 146, 139, 132, 140, 142, 143, 141, 135, 148, 145, 136, 140, 137, 139, 134, 136, 139, 136, 140, 139, 139, 148, 131, 135, 143, 136, 139, 138, 131, 141, 139, 135, 134, 136, 138, 140, 138, 133, 147, 137, 135, 139, 135, 132, 137, 128, 142, 137, 137, 143, 137, 146, 141, 142, 132, 137, 148, 144, 149, 138, 136, 138, 147, 136, 144, 149, 140, 139, 142, 137, 145, 138, 140, 144, 137, 141, 145, 134, 148, 137, 141, 138, 134, 135, 146, 141, 134, 142, 141, 140, 141, 138, 139, 137, 135, 137, 142, 133, 136, 133, 142, 147, 144, 149, 137, 141, 140, 137, 132, 139, 130, 139, 143, 134, 143, 138, 137, 137, 139, 135, 137, 135, 137, 146, 130, 142, 139, 141, 138, 138, 142, 141, 134, 140, 129, 139, 144, 139, 144, 136, 140, 135, 136, 131, 140, 136, 139, 140, 142, 144, 132, 136, 141, 136, 135, 143, 148, 143, 137, 131, 137, 150, 143, 133, 134, 135, 147, 139, 137, 144, 139, 143, 142, 140, 145, 143, 144, 135, 134, 137, 138, 135, 138, 138, 131, 139, 139, 136, 139, 142, 139, 139, 136, 136, 138, 139, 138, 144, 143, 139, 131, 132, 136, 139, 139, 143, 135, 140, 139, 138, 139, 147, 138, 129, 135, 139, 147, 130, 146, 134, 140, 139, 140, 139, 136, 140, 142, 137, 136, 140, 139, 136, 138, 137, 142, 138, 131, 137, 144, 140, 138, 134, 135, 141, 141, 134, 145, 134, 145, 141, 134, 139, 137, 134, 137, 137, 145, 141, 130, 141, 141, 141, 144, 140, 136, 137, 147, 143, 133, 143, 141, 143, 133, 136, 141, 137, 142, 137, 140, 138, 135, 138, 141, 141, 140, 143, 142, 138, 139, 134, 139, 135, 141, 128, 140, 139, 139, 138, 135, 142, 145, 141, 141, 140, 140, 134, 126, 133, 137, 143, 137, 132, 137, 142, 144, 138, 138, 143, 139, 141, 138, 139, 137, 132, 146, 130, 141, 142, 142, 145, 143, 140, 140, 131, 135, 141, 142, 141, 140, 140, 140, 143, 139, 137, 139, 139, 141, 141, 134, 141, 135, 152, 136, 137, 142, 134, 143, 135, 138, 143, 139, 129, 143, 134, 137, 140, 135, 141, 151, 136, 134, 140, 141, 143, 136, 133, 137, 143, 137, 141, 142, 136, 141, 133, 139, 137, 145, 142, 129, 134, 137, 138, 141, 144, 132, 144, 144, 138, 133, 139, 137, 134, 139, 136, 140, 134, 139, 143, 127, 127, 139, 128, 140, 137, 141, 147, 133, 138, 138, 137, 133, 138, 143, 135, 142, 140, 143, 142, 134, 143, 142, 134, 138, 142, 140, 131, 148, 136, 143, 135, 135, 134, 135, 142, 137, 139, 124, 130, 132, 136, 131, 148, 139, 142, 134, 143, 142, 150, 152, 150, 131, 142, 140, 130, 142, 139, 144, 151, 142, 139, 140, 133, 137, 141, 142, 139, 156, 133, 149, 133, 141, 148, 147, 135, 144, 137, 132, 136, 137, 129, 131, 144, 132, 140, 144, 134, 143, 134, 138, 133, 143, 142, 119, 144, 135, 140, 135, 135, 145, 141, 150, 129, 136, 134, 148, 137, 138, 141, 142, 146, 146, 137, 137, 142, 138, 129, 144, 144, 131, 135, 134, 137, 134, 139, 119, 130, 139, 139, 126, 143, 135, 155, 130, 143, 143, 142, 145, 151, 143, 135, 142, 136, 149, 138, 142, 136, 136, 139, 144, 140, 141, 135, 141, 144, 148, 147, 147, 138, 128, 145, 131, 140, 136, 144, 139, 135, 140, 144, 141, 139, 142, 138, 145, 138, 114, 143, 144, 133, 135, 144, 141, 143, 137, 137, 140, 136, 131, 142, 140, 133, 145, 145, 139, 148, 151, 138, 140, 127, 139, 139, 133, 135, 135, 145, 133, 141, 139, 142, 124, 132, 131, 139, 137, 136, 146, 130, 136, 127, 140, 141, 144, 144, 131, 139, 138, 144, 133, 148, 126, 137, 133, 132, 143, 143, 134, 142, 140, 141, 151, 145, 153, 140, 141, 134, 136, 132, 143, 133, 137, 141, 140, 137, 145, 129, 136, 137, 139, 140, 140, 129, 132, 135, 144, 132, 134, 144, 141, 135, 132, 137, 130, 130, 140, 142, 129, 138, 135, 131, 145, 142, 137, 139, 140, 134, 133, 141, 140, 138, 134, 135, 150, 139, 132, 143, 136, 136, 133, 133, 139, 124, 147, 146, 142, 134, 155, 143, 152, 142, 126, 145, 142, 131, 137, 139, 145, 138, 137, 125, 129, 137, 137, 149, 142, 137, 139, 138, 143, 149, 146, 139, 131, 145, 149, 149, 134, 137, 123, 138, 132, 133, 134, 129, 137, 126, 145, 148, 143, 132, 135, 143, 138, 134, 141, 137, 157, 137, 131, 142, 134, 129, 142, 139, 143, 143, 129, 140, 140, 133, 138, 132, 147, 139, 136, 145, 141, 139, 146, 141, 131, 130, 142, 146, 150, 148, 144, 141, 139, 137, 137, 143, 136, 145, 154, 147, 137, 133, 144, 143, 127, 144, 140, 145, 139, 146, 131, 134, 119, 150, 142, 146, 126, 144, 138, 138, 141, 146, 138, 142, 133, 138, 144, 151, 143, 129, 142, 136, 146, 142, 142, 131, 143, 142, 145, 127, 133, 139, 135, 128, 129, 142, 126, 145, 135, 144, 132, 135, 122, 152, 144, 134, 167, 151, 134, 136, 135, 137, 133, 141, 144, 135, 133, 141, 143, 141, 142, 146, 147, 141, 134, 142, 143, 148, 145, 150, 133, 139, 134, 118, 143, 138, 137, 147, 145, 144, 142, 144, 134, 135, 141, 142, 138, 143, 135, 143, 137, 128, 139, 134, 142, 142, 130, 136, 127, 142, 139, 138, 141, 141, 145, 137, 135, 135, 131, 141, 137, 143, 134, 127, 137, 136, 139, 130, 139, 136, 147, 156, 144, 140, 144, 128, 139, 136, 145, 146, 144, 140, 140, 142, 143, 125, 146, 134, 136, 136, 132, 133, 145, 139, 146, 139, 146, 134, 145, 141, 151, 146, 136, 145, 132, 143, 137, 141, 141, 144, 131, 136, 134, 141, 138, 136, 139, 140, 135, 143, 134, 135, 135, 142, 130, 138, 139, 136, 148, 138, 140, 137, 135, 137, 143, 142, 128, 136, 149, 142, 136, 131, 139, 128, 152, 140, 146, 140, 134, 138, 131, 141, 139, 141, 142, 132, 154, 134, 133, 146, 141, 136, 130, 143, 140, 137, 134, 133, 136, 138, 137, 137, 147, 140, 132, 142, 145, 134, 134, 131, 133, 145, 141, 150, 142, 139, 138, 139, 140, 136, 148, 134, 140, 134, 137, 141, 138, 144, 139, 130, 148, 143, 138, 138, 139, 142, 138, 138, 139, 142, 135, 134, 136, 135, 145, 143, 147, 135, 134, 130, 141, 132, 133, 137, 142, 143, 138, 138, 138, 146, 142, 135, 140, 142, 127, 135, 133, 136, 146, 134, 146, 134, 146, 138, 135, 142, 149, 132, 142, 148, 144, 135, 140, 142, 147, 133, 127, 138, 148, 138, 142, 146, 137, 146, 134, 137, 130, 135, 140, 140, 134, 140, 141, 133, 140, 158, 136, 143, 143, 128, 137, 142, 143, 130, 138, 132, 140, 140, 136, 136, 132, 142, 133, 139, 140, 146, 143, 145, 141, 139, 152, 138, 131, 141, 140, 137, 140, 142, 129, 142, 138, 139, 128, 141, 141, 136, 147, 138, 134, 141, 141, 139, 136, 136, 140, 138, 145, 131, 141, 136, 136, 136, 137, 131, 137, 134, 145, 142, 143, 141, 132, 136, 140, 136, 142, 140, 135, 140, 129, 141, 145, 142, 137, 141, 135, 136, 138, 139, 135, 132, 152, 138, 136, 138, 138, 140, 131, 141, 146, 143, 138, 137, 138, 136, 144, 148, 130, 144, 138, 138, 128, 137, 145, 140, 143, 139, 146, 139, 130, 136, 131, 143, 140, 133, 143, 142, 137, 137, 136, 136, 135, 147, 138, 143, 130, 131, 137, 138, 142, 141, 137, 145, 130, 134, 135, 146, 138, 136, 132, 140, 150, 139, 145, 133, 136, 133, 133, 144, 143, 138, 135, 136, 144, 140, 136, 134, 142, 145, 142, 138, 134, 142, 146, 141, 151, 136, 128, 130, 138, 143, 137, 132, 140, 136, 140, 137, 138, 135, 141, 138, 139, 138, 136, 130, 137, 138, 148, 146, 132, 142, 139, 140, 136, 135, 132, 145, 138, 139, 136, 132, 141, 138, 137, 132, 148, 143, 128, 134, 131, 141, 142, 133, 139, 128, 137, 133, 143, 135, 139, 140, 144, 138, 144, 133, 136, 142, 139, 134, 139, 133, 152, 140, 134, 134, 136, 146, 142, 131, 131, 141, 137, 142, 144, 142, 132, 142, 149, 141, 135, 140, 135, 142, 137, 133, 137, 137, 137, 142, 138, 139, 150, 149, 139, 126, 138, 139, 141, 139, 131, 146, 147, 136, 129, 145, 144, 142, 145, 146, 137, 140, 143, 124, 141, 137, 142, 147, 137, 141, 143, 145, 136, 136, 137, 142, 145, 137, 135, 141, 132, 136, 139, 139, 140, 147, 135, 139, 142, 142, 139, 139, 139, 146, 134, 142, 137, 135, 149, 130, 135, 137, 134, 137, 148, 139, 134, 135, 139, 135, 123, 144, 135, 140, 125, 144, 144, 142, 128, 143, 142, 137, 136, 133, 145, 139, 138, 143, 138, 128, 144, 139, 130, 139, 144, 138, 134, 146, 143, 132, 134, 146, 139, 143, 133, 144, 137, 143, 132, 140, 141, 139, 135, 138, 140, 139, 147, 129, 153, 133, 149, 141, 133, 144, 128, 145, 134, 143, 134, 144, 138, 142, 150, 138, 141, 133, 141, 137, 135, 143, 144, 131, 135, 138, 130, 137, 136, 142, 126, 131, 130, 146, 137, 139, 138, 139, 143, 138, 144, 144, 145, 134, 144, 135, 139, 137, 137, 143, 131, 145, 140, 144, 141, 131, 142, 140, 136, 140, 137, 131, 142, 144, 145, 144, 152, 148, 133, 145, 132, 139, 142, 136, 140, 139, 138, 149, 134, 149, 141, 144, 135, 131, 136, 137, 140, 134, 128, 155, 132, 140, 139, 140, 147, 151, 139, 130, 143, 132, 132, 143, 139, 140, 139, 144, 131, 144, 136, 131, 145, 136, 140, 135, 143, 138, 144, 139, 136, 135, 132, 139, 134, 137, 145, 142, 134, 145, 132, 147, 137, 137, 144, 146, 142, 136, 135, 129, 134, 138, 135, 143, 145, 138, 135, 136, 135, 142, 153, 145, 137, 136, 142, 131, 138, 140, 132, 142, 137, 139, 133, 146, 135, 132, 151, 138, 140, 142, 136, 135, 140, 137, 139, 135, 130, 147, 135, 133, 133, 133, 141, 141, 137, 146, 137, 141, 140, 152, 139, 140, 138, 134, 135, 143, 142, 136, 134, 139, 148, 140, 145, 142, 133, 126, 143, 135, 131, 140, 133, 134, 134, 143, 142, 143, 142, 137, 141, 141, 135, 129, 137, 137, 130, 138, 140, 137, 139, 152, 135, 135, 142, 128, 139, 142, 148, 138, 139, 140, 134, 140, 142, 145, 138, 133, 131, 141, 130, 136, 136, 144, 138, 143, 145, 132, 149, 148, 143, 141, 151, 140, 134, 134, 140, 143, 126, 131, 146, 124, 140, 134, 130, 138, 136, 138, 145, 154, 140, 138, 136, 154, 144, 143, 148, 139, 130, 133, 135, 138, 142, 125, 132, 130, 139, 134, 137, 134, 138, 137, 140, 134, 134, 135, 135, 138, 145, 147, 141, 134, 137, 140, 146, 136, 137, 138, 142, 130, 147, 136, 142, 145, 149, 142, 142, 138, 146, 138, 128, 131, 147, 136, 133, 142, 142, 145, 131, 133, 150, 131, 142, 134, 137, 140, 137, 147, 124, 136, 146, 136, 134, 139, 136, 144, 146, 138, 143, 149, 144, 141, 143, 142, 143, 142, 134, 136, 146, 139, 147, 139, 140, 134, 126, 138, 134, 139, 138, 140, 142, 132, 143, 140, 149, 138, 129, 135, 125, 143, 128, 135, 137, 137, 135, 131, 135, 135, 135, 133, 142, 149, 151, 137, 152, 141, 138, 137, 142, 148, 136, 137, 151, 134, 139, 135, 150, 132, 141, 138, 140, 135, 132, 134, 133, 134, 139, 133, 142, 145, 137, 131, 135, 142, 135, 144, 142, 130, 141, 140, 138, 133, 139, 141, 146, 140, 144, 146, 140, 136, 139, 137, 138, 134, 140, 148, 133, 137, 139, 140, 135, 145, 133, 142, 141, 146, 134, 145, 137, 145, 147, 139, 132, 143, 139, 145, 139, 141, 141, 135, 138, 143, 139, 129, 136, 139, 138, 144, 138, 135, 140, 147, 127, 135, 139, 137, 144, 146, 138, 144, 134, 143, 146, 137, 147, 137, 146, 143, 136, 128, 136, 145, 140, 142, 140, 138, 137, 140, 136, 138, 150, 140, 139, 143, 131, 133, 136, 134, 138, 143, 141, 138, 139, 133, 146, 138, 138, 135, 141, 130, 147, 138, 137, 146, 134, 145, 138, 134, 137, 141, 135, 135, 137, 148, 143, 142, 133, 137, 145, 141, 140, 141, 140, 138, 135, 135, 136, 136, 129, 147, 142, 138, 137, 142, 137, 134, 149, 142, 141, 153, 140, 143, 139, 137, 133, 142, 144, 136, 136, 138, 136, 131, 136, 136, 142, 144, 139, 140, 137, 137, 139, 132, 134, 134, 138, 134, 147, 138, 137, 140, 132, 144, 137, 140, 141, 134, 146, 139, 139, 131, 130, 145, 139, 138, 146, 142, 142, 151, 133, 136, 133, 145, 140, 147, 138, 142, 135, 141, 141, 137, 142, 138, 135, 141, 133, 145, 147, 135, 138, 149, 129, 137, 136, 140, 135, 131, 142, 130, 131, 137, 140, 138, 142, 142, 135, 140, 142, 138, 141, 138, 132, 137, 141, 132, 140, 138, 133, 137, 144, 141, 132, 150, 132, 140, 137, 139, 138, 143, 138, 140, 141, 145, 137, 136, 140, 136, 136, 141, 135, 140, 134, 136, 140, 138, 134, 142, 134, 139, 139, 145, 141, 133, 138, 138, 134, 133, 137, 140, 136, 133, 142, 137, 137, 144, 140, 135, 135, 147, 138, 143, 150, 141, 133, 134, 137, 137, 130, 136, 131, 138, 138, 134, 138, 138, 142, 138, 132, 134, 134, 136, 138, 138, 145, 131, 140, 137, 139, 133, 136, 151, 135, 144, 130, 139, 141, 143, 145, 141, 135, 142, 143, 140, 134, 136, 139, 137, 141, 139, 140, 142, 142, 143, 148, 141, 139, 139, 135, 137, 142, 134, 136, 133, 139, 141, 134, 134, 142, 145, 149, 130, 140, 130, 134, 140, 146, 131, 141, 144, 134, 139, 140, 139, 144, 137, 148, 146, 143, 141, 138, 137, 146, 143, 133, 138, 132, 145, 137, 140, 146, 136, 141, 136, 141, 133, 139, 140, 136, 143, 143, 138, 141, 130, 138, 133, 147, 152, 151, 136, 141, 138, 138, 140, 151, 140, 142, 137, 144, 140, 138, 130, 134, 130, 140, 137, 132, 139, 137, 136, 145, 139, 137, 134, 138, 143, 138, 147, 138, 142, 141, 141, 137, 142, 137, 133, 134, 127, 139, 135, 137, 147, 138, 139, 144, 138, 141, 142, 139, 144, 147, 139, 140, 142, 152, 140, 139, 129, 145, 138, 142, 141, 143, 140, 142, 129, 141, 134, 141, 135, 143, 144, 139, 137, 138, 147, 146, 140, 138, 142, 141, 139, 133, 135, 145, 132, 135, 139, 135, 131, 142, 131, 139, 125, 145, 135, 141, 139, 139, 139, 133, 140, 137, 136, 144, 136, 139, 134, 145, 139, 129, 141, 139, 143, 144, 134, 130, 139, 142, 139, 134, 133, 141, 150, 130, 138, 147, 139, 140, 132, 138, 141, 148, 139, 135, 142, 134, 136, 136, 139, 150, 144, 137, 141, 144, 152, 133, 131, 135, 132, 143, 150, 137, 140, 146, 144, 137, 134, 134, 138, 138, 146, 159, 132, 149, 143, 138, 136, 147, 136, 140, 137, 143, 139, 141, 144, 142, 139, 131, 139, 133, 139, 139, 137, 135, 132, 138, 141, 135, 135, 138, 137, 138, 137, 138, 127, 145, 134, 147, 142, 140, 145, 142, 148, 142, 145, 134, 141, 144, 138, 142, 137, 133, 135, 144, 127, 136, 144, 148, 140, 140, 137, 137, 145, 130, 147, 140, 140, 141, 139, 135, 131, 142, 146, 139, 131, 130, 139, 143, 150, 135, 125, 131, 145, 139, 137, 132, 136, 136, 132, 138, 145, 143, 157, 141, 137, 137, 132, 149, 142, 137, 127, 138, 142, 140, 135, 144, 136, 137, 138, 139, 132, 136, 141, 149, 137, 138, 132, 133, 141, 128, 146, 138, 134, 135, 139, 139, 136, 136, 137, 132, 149, 131, 143, 144, 139, 134, 146, 148, 142, 131, 144, 137, 137, 134, 135, 144, 136, 139, 140, 133, 142, 138, 149, 134, 135, 133, 143, 144, 131, 141, 133, 144, 137, 136, 138, 139, 133, 128, 141, 138, 143, 143, 137, 142, 139, 140, 143, 143, 139, 134, 137, 139, 151, 136, 135, 151, 145, 142, 134, 142, 139, 136, 130, 134, 140, 132, 132, 144, 146, 137, 142, 137, 133, 139, 138, 139, 138, 137, 141, 132, 143, 140, 140, 132, 141, 135, 136, 140, 137, 135, 139, 137, 135, 139, 136, 139, 139, 137, 138, 135, 141, 137, 147, 145, 127, 136, 140, 135, 131, 130, 138, 143, 138, 131, 135, 139, 136, 138, 140, 148, 137, 134, 136, 147, 131, 133, 130, 139, 130, 142, 137, 136, 147, 131, 140, 138, 139, 143, 143, 128, 137, 133, 143, 139, 138, 147, 142, 138, 141, 150, 136, 138, 134, 150, 142, 150, 145, 135, 132, 135, 134, 139, 140, 133, 142, 143, 141, 133, 136, 141, 136, 134, 142, 144, 132, 137, 143, 145, 138, 146, 132, 139, 144, 145, 130, 146, 139, 134, 142, 136, 136, 140, 133, 135, 153, 138, 131, 133, 141, 140, 132, 141, 145, 141, 138, 140, 135, 136, 135, 133, 137, 136, 136, 139, 133, 133, 142, 143, 141, 135, 142, 138, 133, 138, 138, 138, 142, 139, 137, 133, 138, 138, 137, 133, 142, 139, 130, 142, 137, 139, 135, 141, 138, 138, 133, 136, 139, 144, 153, 139, 131, 144, 136, 144, 137, 143, 143, 143, 128, 138, 147, 135, 135, 135, 145, 135, 143, 138, 138, 131, 152, 147, 137, 144, 139, 143, 141, 143, 140, 144, 125, 140, 136, 154, 136, 140, 136, 131, 137, 138, 148, 133, 140, 139, 144, 136, 137, 135, 143, 136, 142, 144, 134, 131, 137, 130, 135, 141, 133, 143, 135, 140, 150, 140, 141, 149, 134, 139, 134, 130, 146, 132, 138, 139, 141, 141, 136, 142, 136, 138, 146, 135, 137, 133, 139, 146, 133, 135, 143, 140, 137, 130, 136, 137, 147, 131, 145, 131, 142, 137, 146, 142, 160, 139, 135, 126, 140, 130, 144, 144, 119, 133, 146, 126, 143, 136, 139, 133, 129, 147, 138, 131, 132, 142, 142, 129, 131, 136, 135, 148, 134, 142, 133, 134, 142, 136, 143, 151, 140, 134, 143, 139, 145, 148, 146, 154, 151, 143, 137, 136, 141, 142, 140, 140, 151, 139, 139, 128, 133, 135, 135, 142, 136, 138, 130, 142, 148, 136, 144, 145, 138, 153, 148, 139, 149, 141, 135, 143, 136, 146, 148, 140, 149, 127, 148, 141, 136, 139, 135, 141, 145, 136, 141, 113, 132, 139, 150, 132, 134, 136, 147, 145, 121, 144, 135, 146, 141, 143, 130, 141, 149, 147, 133, 134, 138, 136, 127, 133, 132, 138, 144, 136, 148, 147, 138, 139, 144, 133, 134, 150, 140, 140, 134, 136, 144, 139, 138, 139, 149, 132, 144, 140, 136, 147, 129, 145, 143, 137, 141, 147, 128, 128, 136, 136, 134, 137, 135, 134, 146, 137, 138, 140, 137, 141, 135, 138, 135, 140, 133, 143, 135, 134, 137, 142, 137, 126, 143, 132, 126, 135, 144, 136, 142, 141, 141, 129, 134, 129, 139, 145, 125, 151, 144, 138, 132, 140, 144, 143, 142, 131, 135, 145, 146, 137, 143, 132, 141, 138, 130, 130, 139, 141, 144, 136, 140, 135, 141, 134, 129, 140, 138, 140, 138, 135, 146, 133, 134, 139, 142, 140, 133, 138, 143, 135, 136, 133, 144, 134, 131, 144, 132, 140, 139, 140, 139, 129, 132, 134, 131, 164, 130, 135, 141, 135, 164, 144, 142, 134, 143, 135, 140, 145, 144, 142, 131, 134, 142, 143, 137, 128, 135, 146, 130, 137, 141, 128, 132, 139, 147, 135, 137, 142, 137, 143, 148, 137, 142, 146, 138, 131, 135, 141, 135, 147, 150, 137, 143, 140, 129, 132, 132, 130, 145, 135, 145, 137, 142, 136, 160, 140, 132, 135, 147, 152, 143, 140, 135, 141, 145, 138, 138, 128, 141, 136, 129, 141, 135, 138, 137, 130, 150, 131, 135, 137, 142, 148, 141, 139, 138, 133, 146, 136, 148, 139, 135, 149, 135, 140, 137, 127, 145, 145, 145, 137, 142, 136, 142, 135, 139, 143, 143, 142, 125, 137, 126, 140, 149, 144, 156, 137, 144, 130, 133, 134, 137, 125, 135, 134, 137, 140, 133, 137, 137, 125, 142, 142, 147, 130, 143, 135, 140, 142, 135, 149, 141, 145, 143, 140, 133, 138, 137, 139, 133, 139, 125, 150, 143, 130, 132, 135, 141, 147, 143, 136, 132, 138, 146, 138, 144, 136, 146, 137, 152, 137, 140, 137, 134, 134, 137, 141, 138, 123, 137, 147, 152, 132, 130, 144, 130, 128, 145, 130, 127, 139, 140, 143, 147, 135, 132, 139, 142, 141, 134, 144, 133, 137, 133, 139, 125, 142, 133, 144, 134, 134, 139, 139, 130, 140, 136, 135, 131, 133, 131, 156, 129, 134, 139, 141, 137, 143, 149, 142, 135, 134, 143, 129, 138, 133, 143, 144, 145, 142, 139, 150, 139, 130, 139, 143, 140, 140, 136, 142, 131, 137, 144, 136, 138, 137, 145, 140, 138, 137, 138, 141, 138, 137, 135, 141, 138, 138, 144, 136, 137, 142, 139, 138, 136, 140, 138, 134, 136, 138, 137, 143, 139, 140, 137, 136, 141, 141, 139, 144, 140, 133, 153, 138, 136, 138, 141, 131, 138, 142, 137, 131, 131, 141, 139, 137, 144, 144, 136, 131, 140, 136, 137, 140, 138, 141, 140, 135, 135, 139, 139, 141, 142, 137, 138, 139, 139, 134, 143, 148, 146, 137, 136, 138, 135, 143, 139, 141, 140, 132, 138, 139, 140, 138, 138, 136, 136, 133, 145, 139, 138, 140, 136, 141, 144, 142, 138, 146, 141, 140, 134, 145, 140, 150, 135, 143, 142, 136, 133, 144, 141, 137, 140, 137, 142, 140, 143, 134, 140, 141, 140, 134, 135, 141, 136, 130, 143, 141, 138, 142, 140, 143, 143, 142, 138, 141, 133, 136, 142, 137, 139, 142, 139, 140, 133, 141, 143, 144, 135, 140, 145, 141, 135, 143, 139, 143, 146, 145, 140, 139, 142, 136, 135, 135, 135, 142, 141, 135, 136, 145, 136, 139, 135, 149, 138, 139, 148, 144, 143, 140, 140, 137, 136, 136, 142, 139, 133, 137, 134, 145, 144, 139, 139, 137, 144, 137, 137, 140, 141, 142, 132, 139, 137, 135, 141, 136, 139, 138, 144, 135, 135, 134, 135, 136, 140, 144, 146, 139, 146, 143, 140, 133, 137, 142, 138, 134, 142, 139, 136, 134, 143, 132, 136, 132, 138, 140, 140, 136, 141, 136, 129, 143, 141, 133, 136, 135, 141, 132, 133, 141, 142, 139, 142, 134, 141, 140, 144, 136, 141, 138, 130, 143, 139, 141, 139, 135, 139, 143, 135, 138, 134, 137, 138, 142, 135, 145, 147, 138, 141, 137, 136, 137, 137, 135, 141, 145, 141, 133, 140, 140, 138, 141, 136, 134, 137, 143, 139, 143, 138, 135, 141, 142, 137, 138, 142, 139, 133, 141, 142, 137, 136, 140, 143, 140, 133, 134, 139, 140, 145, 137, 138, 135, 138, 141, 137, 142, 148, 144, 136, 143, 135, 140, 143, 147, 136, 143, 140, 142, 140, 138, 138, 138, 134, 146, 138, 142, 137, 143, 144, 141, 142, 137, 145, 139, 134, 135, 143, 140, 140, 141, 144, 135, 141, 144, 142, 141, 130, 143, 137, 132, 137, 139, 140, 138, 135, 143, 139, 143, 136, 139, 139, 138, 141, 141, 138, 135, 139, 141, 138, 142, 133, 145, 141, 135, 147, 142, 131, 144, 131, 141, 138, 138, 139, 141, 136, 140, 133, 137, 133, 140, 145, 139, 141, 134, 133, 136, 137, 136, 140, 137, 138, 144, 137, 140, 138, 143, 138, 134, 141, 140, 142, 146, 136, 132, 142, 140, 143, 137, 139, 148, 132, 142, 136, 137, 141, 137, 133, 141, 135, 141, 142, 142, 137, 137, 141, 136, 134, 138, 138, 136, 137, 139, 136, 139, 130, 139, 138, 142, 139, 140, 134, 142, 137, 139, 142, 136, 139, 145, 134, 134, 142, 146, 141, 133, 138, 135, 138, 135, 139, 137, 136, 140, 140, 134, 137, 135, 144, 138, 137, 138, 138, 135, 142, 141, 141, 145, 125, 129, 141, 149, 143, 149, 147, 133, 136, 145, 140, 138, 139, 144, 144, 132, 143, 153, 139, 137, 134, 134, 138, 134, 133, 142, 143, 135, 142, 141, 129, 138, 146, 143, 140, 138, 146, 142, 134, 134, 136, 139, 129, 144, 135, 120, 140, 132, 137, 136, 135, 149, 146, 145, 134, 133, 144, 134, 130, 130, 143, 132, 142, 122, 141, 141, 134, 137, 137, 143, 138, 137, 139, 150, 137, 124, 137, 135, 139, 142, 134, 140, 152, 134, 141, 140, 140, 138, 136, 130, 137, 137, 142, 126, 139, 145, 140, 143, 138, 141, 146, 139, 138, 138, 144, 149, 139, 137, 143, 136, 139, 133, 137, 147, 140, 140, 140, 131, 143, 135, 135, 140, 146, 141, 135, 131, 141, 149, 136, 137, 138, 143, 141, 145, 130, 133, 129, 131, 136, 144, 135, 135, 145, 143, 139, 138, 143, 143, 128, 142, 139, 151, 136, 147, 138, 136, 158, 147, 144, 155, 138, 144, 152, 146, 134, 139, 139, 146, 151, 142, 138, 144, 144, 136, 137, 149, 148, 145, 143, 131, 139, 131, 128, 131, 131, 131, 131, 130, 140, 135, 126, 147, 142, 146, 131, 140, 140, 125, 144, 137, 139, 140, 136, 137, 141, 142, 134, 147, 131, 127, 132, 139, 141, 137, 152, 142, 153, 148, 142, 140, 140, 136, 138, 138, 136, 135, 148, 133, 137, 138, 144, 141, 136, 140, 144, 141, 137, 133, 132, 137, 137, 146, 135, 130, 148, 137, 141, 134, 149, 138, 142, 136, 135, 144, 136, 132, 141, 136, 139, 139, 132, 133, 142, 141, 137, 139, 142, 141, 139, 136, 141, 140, 139, 142, 139, 152, 134, 141, 141, 126, 144, 141, 145, 145, 129, 131, 152, 138, 141, 140, 141, 131, 127, 142, 136, 139, 141, 135, 142, 137, 138, 140, 140, 139, 139, 134, 139, 134, 144, 131, 134, 134, 142, 139, 130, 140, 141, 131, 139, 141, 145, 126, 140, 147, 132, 134, 133, 138, 152, 143, 133, 145, 134, 141, 145, 134, 145, 138, 138, 131, 144, 143, 157, 145, 128, 136, 143, 142, 140, 135, 137, 136, 143, 137, 140, 136, 144, 129, 139, 148, 148, 141, 134, 145, 132, 131, 139, 138, 123, 141, 143, 143, 133, 137, 139, 142, 132, 149, 134, 137, 133, 140, 131, 142, 143, 141, 135, 140, 140, 141, 141, 126, 143, 141, 137, 137, 137, 133, 146, 141, 128, 137, 139, 139, 139, 139, 140, 146, 140, 125, 135, 137, 141, 142, 138, 125, 139, 137, 141, 139, 143, 141, 155, 142, 146, 144, 134, 131, 147, 139, 140, 137, 132, 146, 141, 138, 134, 144, 138, 138, 132, 139, 126, 150, 135, 143, 129, 132, 127, 143, 144, 132, 144, 139, 141, 131, 137, 148, 133, 141, 146, 145, 137, 138, 137, 128, 139, 143, 137, 140, 147, 138, 128, 128, 139, 147, 136, 134, 137, 145, 133, 134, 141, 138, 129, 144, 138, 154, 144, 142, 135, 147, 132, 130, 140, 142, 147, 140, 138, 147, 133, 136, 133, 143, 129, 137, 143, 131, 139, 144, 146, 146, 133, 145, 131, 138, 141, 135, 140, 144, 144, 147, 137, 138, 140, 151, 141, 139, 140, 144, 140, 134, 141, 137, 136, 131, 135, 137, 137, 143, 151, 141, 143, 136, 140, 141, 148, 131, 134, 142, 136, 145, 145, 132, 130, 144, 139, 139, 128, 131, 144, 125, 138, 142, 146, 136, 135, 131, 143, 138, 141, 148, 139, 141, 135, 132, 136, 136, 142, 149, 143, 140, 136, 134, 140, 143, 135, 137, 142, 128, 131, 137, 135, 143, 139, 135, 130, 129, 134, 133, 154, 144, 135, 140, 141, 131, 145, 143, 142, 139, 138, 136, 130, 134, 137, 145, 136, 133, 134, 150, 135, 137, 143, 133, 140, 137, 141, 133, 136, 143, 148, 135, 145, 133, 143, 136, 144, 134, 138, 142, 139, 140, 150, 145, 140, 144, 133, 137, 142, 145, 152, 148, 141, 129, 136, 149, 131, 138, 139, 137, 137, 143, 135, 118, 135, 141, 138, 140, 136, 142, 150, 138, 139, 139, 140, 141, 135, 136, 136, 155, 131, 148, 137, 150, 141, 132, 146, 137, 143, 139, 144, 143, 137, 129, 138, 140, 133, 125, 131, 137, 138, 136, 141, 145, 135, 139, 137, 142, 135, 142, 135, 151, 131, 140, 136, 144, 150, 140, 139, 132, 139, 147, 137, 134, 141, 137, 141, 139, 143, 136, 143, 131, 137, 140, 126, 136, 137, 140, 140, 134, 133, 133, 133, 144, 145, 147, 139, 139, 143, 136, 144, 132, 133, 144, 134, 142, 139, 142, 140, 143, 139, 141, 143, 146, 130, 151, 141, 138, 144, 137, 134, 127, 138, 136, 152, 133, 136, 140, 134, 136, 134, 137, 136, 146, 137, 147, 144, 139, 138, 137, 139, 135, 141, 152, 134, 142, 135, 143, 139, 139, 131, 136, 140, 135, 144, 137, 138, 139, 138, 130, 132, 134, 140, 134, 140, 129, 134, 131, 145, 135, 146, 143, 142, 146, 136, 133, 133, 140, 138, 140, 137, 144, 137, 137, 139, 133, 138, 140, 138, 131, 140, 131, 140, 140, 137, 140, 137, 127, 138, 139, 138, 147, 134, 135, 125, 140, 136, 139, 137, 130, 139, 147, 144, 130, 138, 137, 143, 137, 138, 129, 140, 138, 140, 139, 130, 140, 142, 135, 129, 134, 133, 142, 145, 142, 138, 141, 141, 144, 139, 131, 143, 133, 139, 137, 135, 129, 126, 141, 144, 138, 138, 142, 134, 142, 144, 131, 139, 147, 135, 140, 140, 125, 128, 132, 140, 143, 141, 133, 138, 139, 141, 139, 142, 134, 151, 134, 147, 137, 145, 144, 144, 144, 143, 147, 135, 135, 140, 131, 141, 130, 137, 141, 132, 132, 138, 137, 145, 139, 137, 136, 138, 140, 138, 135, 141, 137, 139, 135, 145, 133, 145, 140, 129, 145, 138, 140, 141, 150, 133, 154, 131, 141, 134, 133, 141, 139, 129, 140, 138, 131, 134, 144, 129, 148, 148, 135, 133, 133, 139, 132, 145, 140, 143, 137, 137, 133, 130, 138, 134, 137, 147, 137, 145, 139, 139, 130, 127, 148, 136, 140, 137, 130, 142, 137, 131, 140, 131, 135, 136, 140, 129, 137, 124, 133, 143, 138, 143, 141, 142, 143, 133, 136, 139, 138, 142, 141, 138, 146, 141, 142, 139, 134, 145, 133, 134, 146, 133, 145, 136, 135, 139, 140, 142, 136, 134, 122, 144, 137, 141, 141, 140, 134, 128, 139, 137, 131, 142, 141, 136, 140, 141, 149, 139, 139, 139, 145, 146, 122, 130, 134, 142, 143, 121, 143, 137, 137, 140, 129, 148, 133, 137, 137, 144, 140, 140, 141, 139, 134, 143, 140, 135, 151, 131, 147, 132, 137, 130, 139, 141, 140, 139, 136, 138, 140, 137, 140, 143, 142, 137, 137, 145, 145, 145, 141, 137, 145, 141, 135, 136, 135, 137, 135, 139, 142, 128, 134, 138, 146, 152, 138, 140, 140, 142, 139, 139, 138, 143, 133, 136, 137, 139, 141, 140, 148, 133, 143, 140, 139, 124, 139, 141, 126, 138, 136, 136, 137, 140, 140, 139, 143, 128, 141, 134, 136, 142, 148, 144, 140, 141, 142, 139, 140, 139, 130, 144, 134, 142, 147, 143, 139, 133, 143, 130, 142, 130, 132, 147, 139, 140, 145, 140, 132, 137, 142, 147, 138, 135, 141, 131, 138, 142, 137, 137, 143, 134, 147, 144, 136, 132, 146, 145, 137, 137, 147, 141, 140, 133, 147, 149, 139, 138, 136, 142, 149, 145, 138, 139, 139, 134, 147, 141, 133, 141, 136, 141, 143, 142, 138, 129, 130, 139, 136, 135, 140, 134, 137, 137, 138, 145, 140, 141, 136, 140, 159, 147, 135, 140, 144, 138, 125, 148, 135, 136, 142, 138, 136, 140, 131, 135, 141, 134, 134, 137, 137, 139, 153, 141, 140, 142, 135, 140, 137, 135, 141, 135, 136, 136, 143, 143, 140, 132, 141, 142, 138, 143, 135, 142, 135, 131, 134, 140, 138, 139, 138, 145, 128, 138, 124, 134, 137, 142, 135, 137, 144, 136, 126, 145, 136, 136, 139, 140, 138, 138, 136, 138, 136, 141, 133, 139, 134, 143, 136, 139, 141, 136, 136, 138, 141, 140, 142, 136, 146, 139, 143, 139, 139, 141, 139, 144, 139, 142, 140, 138, 140, 138, 142, 136, 145, 137, 148, 145, 140, 144, 121, 139, 140, 136, 139, 137, 145, 140, 140, 142, 135, 143, 144, 136, 141, 141, 134, 141, 144, 142, 140, 138, 139, 140, 132, 133, 141, 139, 140, 142, 131, 125, 139, 129, 137, 130, 139, 135, 142, 138, 135, 148, 140, 132, 140, 139, 144, 135, 142, 141, 145, 142, 150, 139, 138, 145, 159, 146, 135, 130, 141, 141, 135, 140, 136, 141, 131, 139, 135, 137, 140, 138, 144, 133, 140, 137, 139, 141, 146, 143, 145, 142, 134, 140, 140, 140, 141, 136, 135, 140, 137, 146, 139, 140, 139, 144, 137, 131, 137, 140, 134, 145, 133, 147, 137, 131, 139, 149, 144, 137, 135, 136, 136, 132, 144, 137, 153, 133, 144, 144, 135, 141, 140, 133, 139, 136, 142, 141, 133, 140, 138, 140, 132, 134, 135, 141, 141, 143, 141, 142, 138, 144, 136, 144, 127, 143, 145, 142, 134, 150, 135, 145, 148, 139, 140, 137, 140, 132, 140, 138, 138, 139, 138, 137, 136, 140, 137, 142, 141, 148, 135, 140, 135, 140, 139, 136, 139, 146, 138, 142, 138, 142, 139, 136, 136, 144, 143, 140, 140, 135, 136, 143, 141, 136, 140, 141, 137, 139, 137, 139, 148, 149, 141, 134, 146, 137, 145, 135, 140, 144, 143, 142, 139, 134, 137, 141, 128, 137, 142, 136, 140, 141, 141, 129, 139, 143, 128, 146, 137, 135, 133, 146, 141, 133, 134, 142, 139, 142, 141, 139, 130, 140, 136, 141, 140, 140, 140, 137, 140, 143, 141, 148, 138, 145, 142, 138, 132, 139, 137, 137, 137, 141, 129, 142, 133, 134, 135, 134, 138, 140, 136, 145, 140, 146, 143, 140, 139, 133, 138, 141, 139, 135, 139, 138, 133, 135, 141, 140, 138, 134, 145, 137, 143, 142, 139, 136, 142, 139, 137, 133, 152, 144, 136, 141, 138, 138, 138, 140, 140, 140, 134, 142, 141, 146, 142, 133, 137, 145, 140, 135, 133, 132, 141, 135, 140, 141, 140, 147, 142, 133, 140, 142, 138, 139, 129, 138, 139, 137, 137, 151, 135, 140, 137, 137, 143, 151, 137, 144, 139, 135, 136, 136, 140, 138, 139, 138, 137, 137, 139, 135, 141, 144, 131, 137, 136, 136, 139, 140, 136, 135, 144, 137, 138, 142, 137, 150, 141, 146, 141, 139, 133, 142, 132, 136, 139, 139, 142, 138, 136, 141, 131, 141, 135, 140, 141, 135, 139, 136, 141, 140, 138, 139, 142, 136, 142, 135, 139, 141, 136, 130, 144, 147, 141, 137, 144, 142, 135, 134, 143, 147, 144, 146, 138, 139, 143, 141, 139, 139, 144, 135, 138, 140, 144, 135, 139, 147, 147, 146, 140, 140, 137, 145, 136, 145, 149, 137, 141, 142, 132, 131, 135, 142, 134, 138, 146, 138, 144, 139, 138, 140, 129, 138, 138, 143, 145, 143, 146, 139, 140, 139, 148, 138, 144, 136, 140, 133, 137, 135, 134, 138, 136, 140, 141, 139, 134, 137, 138, 130, 148, 140, 137, 140, 133, 136, 135, 142, 137, 141, 140, 146, 140, 133, 134, 143, 140, 139, 140, 131, 142, 131, 140, 142, 132, 132, 140, 139, 138, 145, 129, 144, 137, 140, 139, 133, 144, 137, 142, 144, 138, 137, 133, 144, 144, 142, 134, 144, 143, 139, 146, 138, 137, 145, 144, 134, 139, 138, 146, 140, 146, 137, 131, 141, 141, 137, 140, 145, 138, 140, 144, 139, 139, 137, 133, 135, 141, 144, 146, 137, 138, 137, 135, 143, 135, 133, 137, 133, 129, 140, 141, 139, 137, 137, 147, 156, 140, 140, 138, 127, 138, 137, 139, 142, 137, 143, 141, 140, 139, 145, 142, 152, 137, 139, 141, 148, 146, 137, 147, 139, 138, 133, 143, 137, 141, 147, 136, 137, 141, 144, 140, 141, 145, 138, 140, 134, 134, 138, 135, 142, 139, 138, 140, 139, 136, 145, 136, 143, 138, 142, 140, 135, 147, 134, 138, 142, 150, 139, 142, 149, 144, 140, 139, 132, 145, 134, 140, 140, 144, 136, 141, 137, 142, 141, 145, 141, 141, 142, 137, 138, 133, 135, 148, 144, 139, 145, 141, 146, 143, 151, 138, 133, 138, 141, 145, 151, 138, 139, 135, 140, 138, 135, 140, 141, 137, 146, 146, 151, 152, 130, 128, 130, 132, 144, 137, 143, 140, 133, 134, 143, 141, 138, 147, 142, 141, 137, 156, 151, 143, 136, 139, 149, 137, 142, 135, 135, 128, 130, 145, 135, 130, 137, 140, 142, 134, 144, 139, 139, 145, 137, 136, 139, 140, 145, 143, 143, 155, 137, 138, 141, 149, 137, 137, 136, 137, 142, 139, 149, 134, 138, 144, 144, 133, 136, 144, 139, 130, 128, 145, 146, 135, 135, 142, 133, 135, 139, 144, 133, 147, 145, 143, 134, 139, 127, 126, 143, 138, 121, 147, 142, 145, 136, 141, 151, 151, 140, 141, 138, 144, 145, 136, 150, 129, 140, 138, 152, 149, 143, 135, 138, 134, 135, 141, 139, 136, 137, 136, 130, 134, 130, 139, 135, 136, 133, 145, 135, 141, 145, 148, 143, 137, 146, 128, 136, 140, 137, 138, 159, 141, 135, 135, 137, 148, 143, 145, 134, 145, 130, 141, 144, 138, 140, 140, 125, 140, 141, 142, 142, 136, 138, 141, 136, 148, 132, 136, 143, 139, 150, 136, 135, 133, 139, 141, 130, 139, 123, 140, 141, 136, 143, 138, 137, 132, 137, 138, 145, 141, 145, 146, 129, 145, 136, 138, 145, 146, 137, 141, 138, 137, 140, 142, 148, 136, 139, 135, 135, 141, 143, 138, 141, 143, 116, 131, 133, 140, 138, 134, 138, 140, 135, 138, 146, 139, 136, 129, 140, 140, 135, 141, 133, 143, 130, 135, 144, 136, 135, 141, 135, 150, 133, 139, 143, 134, 143, 146, 147, 147, 138, 134, 142, 140, 133, 136, 147, 135, 144, 143, 138, 138, 137, 142, 143, 131, 134, 135, 139, 152, 137, 145, 141, 134, 133, 147, 133, 141, 128, 145, 140, 143, 139, 138, 151, 136, 142, 134, 135, 135, 132, 137, 141, 137, 135, 141, 145, 152, 142, 135, 133, 138, 136, 149, 130, 132, 138, 146, 140, 146, 145, 142, 139, 140, 133, 138, 139, 142, 136, 132, 128, 142, 146, 145, 160, 129, 141, 151, 139, 137, 143, 140, 131, 143, 142, 139, 135, 135, 141, 142, 135, 138, 148, 146, 139, 143, 136, 135, 129, 145, 142, 145, 135, 142, 140, 135, 144, 129, 138, 133, 144, 145, 145, 144, 135, 143, 145, 150, 142, 138, 135, 140, 143, 139, 134, 140, 136, 139, 128, 133, 125, 130, 139, 136, 143, 135, 131, 138, 137, 146, 138, 143, 146, 130, 149, 132, 136, 138, 128, 139, 146, 132, 136, 130, 142, 146, 141, 138, 136, 138, 140, 138, 140, 138, 137, 144, 148, 146, 141, 135, 146, 144, 137, 133, 139, 139, 139, 144, 151, 141, 142, 141, 141, 141, 145, 132, 140, 146, 140, 137, 130, 137, 135, 140, 131, 146, 138, 138, 138, 143, 143, 136, 137, 128, 136, 143, 137, 144, 137, 129, 151, 145, 143, 146, 137, 135, 146, 138, 134, 126, 136, 146, 145, 139, 151, 136, 140, 138, 141, 139, 127, 139, 138, 135, 134, 133, 143, 143, 142, 134, 133, 145, 141, 142, 143, 138, 141, 137, 135, 144, 141, 140, 140, 140, 141, 140, 141, 137, 137, 137, 136, 135, 133, 141, 142, 140, 130, 145, 150, 141, 138, 140, 143, 129, 140, 150, 135, 135, 134, 136, 140, 139, 136, 141, 137, 137, 147, 136, 147, 138, 140, 135, 131, 142, 143, 137, 134, 140, 140, 136, 137, 141, 133, 135, 144, 123, 142, 137, 135, 140, 133, 141, 138, 147, 129, 135, 145, 137, 141, 151, 141, 142, 135, 146, 135, 123, 137, 142, 138, 135, 139, 142, 136, 136, 145, 145, 143, 143, 138, 143, 141, 137, 132, 133, 143, 141, 140, 138, 138, 137, 137, 140, 148, 133, 141, 141, 135, 141, 146, 139, 147, 145, 137, 140, 141, 135, 135, 134, 143, 150, 135, 140, 147, 143, 146, 133, 141, 135, 122, 138, 137, 136, 141, 136, 134, 139, 138, 141, 145, 141, 133, 136, 135, 141, 141, 136, 147, 142, 135, 143, 138, 140, 143, 135, 133, 139, 152, 137, 137, 141, 135, 140, 143, 140, 142, 139, 139, 145, 143, 138, 136, 144, 145, 143, 141, 138, 141, 141, 144, 142, 142, 142, 135, 142, 143, 136, 133, 141, 138, 135, 139, 140, 132, 139, 145, 146, 138, 144, 154, 142, 134, 138, 140, 136, 144, 139, 138, 137, 140, 133, 137, 141, 137, 141, 139, 142, 144, 139, 137, 142, 135, 135, 140, 137, 141, 139, 143, 132, 137, 136, 141, 139, 142, 135, 138, 139, 140, 147, 136, 135, 138, 136, 133, 138, 141, 138, 135, 143, 138, 155, 135, 139, 141, 134, 141, 135, 132, 141, 135, 130, 142, 132, 137, 140, 138, 144, 146, 132, 129, 143, 136, 141, 140, 141, 138, 141, 143, 139, 136, 139, 137, 147, 138, 142, 142, 143, 140, 137, 138, 139, 137, 135, 139, 132, 143, 136, 135, 138, 136, 140, 149, 142, 142, 135, 138, 140, 143, 141, 136, 137, 143, 137, 134, 135, 136, 135, 136, 143, 138, 133, 137, 136, 137, 136, 137, 135, 139, 132, 145, 145, 141, 139, 133, 136, 134, 138, 139, 141, 129, 142, 131, 143, 137, 132, 136, 147, 140, 142, 143, 133, 129, 144, 133, 135, 139, 141, 142, 136, 139, 138, 140, 138, 139, 136, 138, 138, 143, 137, 132, 135, 142, 143, 145, 137, 136, 137, 135, 139, 137, 137, 145, 137, 144, 134, 136, 135, 129, 138, 131, 132, 139, 128, 134, 142, 136, 139, 142, 134, 138, 163, 132, 138, 131, 131, 143, 142, 143, 146, 146, 141, 141, 140, 135, 139, 142, 143, 141, 150, 141, 135, 137, 141, 137, 143, 137, 136, 136, 147, 133, 138, 129, 135, 142, 143, 136, 141, 137, 137, 137, 141, 144, 135, 142, 143, 150, 139, 139, 133, 122, 139, 136, 137, 136, 140, 138, 140, 135, 139, 140, 142, 140, 136, 141, 139, 140, 145, 132, 139, 159, 143, 142, 136, 141, 133, 143, 142, 145, 138, 141, 143, 136, 137, 139, 148, 136, 141, 148, 138, 143, 137, 142, 146, 136, 132, 139, 140, 138, 136, 143, 138, 149, 135, 139, 140, 140, 136, 133, 130, 146, 140, 133, 141, 143, 135, 132, 135, 140, 134, 143, 149, 139, 131, 147, 148, 136, 139, 132, 130, 130, 137, 149, 133, 135, 142, 153, 133, 139, 148, 142, 116, 135, 143, 141, 138, 136, 145, 131, 139, 134, 132, 142, 149, 142, 131, 140, 136, 137, 140, 130, 147, 136, 134, 123, 140, 153, 132, 150, 130, 138, 140, 142, 144, 137, 145, 136, 133, 136, 136, 146, 139, 139, 141, 146, 141, 133, 139, 136, 148, 134, 144, 142, 143, 141, 141, 144, 136, 133, 149, 137, 132, 142, 134, 137, 155, 144, 139, 145, 143, 147, 136, 147, 142, 129, 146, 130, 148, 137, 144, 134, 141, 139, 145, 135, 150, 134, 141, 146, 136, 139, 149, 147, 134, 143, 148, 137, 142, 138, 135, 126, 144, 138, 139, 138, 139, 139, 136, 143, 146, 142, 141, 132, 130, 140, 133, 145, 139, 146, 143, 142, 141, 136, 144, 135, 140, 126, 135, 146, 132, 142, 145, 135, 147, 138, 137, 133, 145, 137, 139, 137, 135, 141, 140, 142, 146, 136, 144, 146, 138, 137, 131, 135, 144, 134, 142, 139, 147, 140, 132, 132, 146, 143, 129, 139, 149, 140, 137, 145, 144, 142, 139, 130, 139, 138, 140, 132, 135, 147, 138, 145, 137, 133, 133, 137, 133, 134, 141, 138, 148, 135, 136, 134, 132, 143, 148, 137, 131, 153, 134, 138, 129, 130, 142, 136, 138, 135, 137, 142, 139, 146, 151, 142, 148, 136, 135, 135, 143, 148, 131, 160, 132, 134, 138, 142, 130, 139, 132, 144, 135, 137, 143, 140, 139, 133, 147, 136, 147, 141, 142, 142, 139, 144, 139, 131, 130, 155, 137, 130, 138, 137, 138, 138, 145, 135, 135, 137, 141, 137, 143, 127, 126, 139, 137, 128, 138, 136, 139, 138, 150, 137, 140, 140, 137, 145, 139, 141, 138, 156, 136, 135, 135, 140, 131, 133, 135, 143, 130, 128, 136, 133, 144, 139, 137, 131, 137, 131, 138, 137, 139, 140, 137, 148, 137, 140, 142, 148, 137, 138, 134, 139, 132, 134, 132, 145, 148, 133, 136, 152, 146, 143, 143, 142, 141, 146, 144, 143, 135, 151, 133, 136, 136, 128, 144, 134, 145, 147, 150, 141, 145, 147, 138, 133, 144, 134, 122, 137, 130, 142, 141, 131, 143, 141, 132, 141, 141, 144, 137, 135, 138, 142, 140, 137, 140, 141, 140, 139, 134, 141, 134, 138, 140, 134, 140, 157, 142, 129, 142, 129, 125, 134, 140, 142, 128, 142, 140, 151, 142, 141, 141, 135, 146, 137, 142, 140, 142, 137, 137, 138, 135, 138, 140, 130, 137, 135, 127, 145, 125, 142, 137, 147, 142, 141, 130, 140, 137, 137, 136, 146, 142, 137, 139, 138, 132, 140, 124, 142, 129, 134, 134, 140, 138, 137, 134, 140, 141, 143, 129, 131, 142, 141, 141, 143, 144, 141, 139, 134, 148, 135, 146, 135, 137, 135, 136, 134, 132, 138, 137, 137, 138, 142, 141, 141, 144, 140, 137, 147, 141, 139, 137, 140, 137, 132, 137, 135, 139, 134, 139, 125, 139, 142, 144, 143, 135, 139, 140, 157, 137, 141, 145, 143, 142, 142, 142, 132, 155, 146, 137, 148, 138, 147, 136, 140, 142, 140, 139, 145, 141, 140, 141, 137, 144, 143, 138, 141, 145, 135, 141, 143, 137, 136, 148, 138, 147, 136, 136, 140, 136, 132, 138, 143, 141, 138, 141, 140, 138, 139, 143, 127, 138, 137, 133, 145, 143, 137, 132, 147, 147, 137, 136, 134, 143, 142, 137, 143, 136, 136, 136, 140, 143, 143, 135, 140, 138, 132, 134, 138, 147, 144, 138, 137, 138, 134, 139, 130, 147, 141, 141, 143, 131, 136, 137, 144, 134, 138, 134, 146, 137, 144, 139, 138, 141, 141, 139, 132, 147, 138, 138, 140, 136, 138, 139, 143, 133, 134, 136, 136, 121, 143, 141, 142, 134, 136, 143, 138, 140, 139, 139, 136, 135, 130, 135, 131, 137, 140, 143, 144, 144, 148, 135, 135, 141, 139, 132, 136, 139, 138, 140, 141, 143, 146, 139, 138, 142, 132, 135, 146, 142, 136, 133, 125, 141, 140, 137, 140, 152, 146, 126, 135, 140, 142, 143, 134, 143, 141, 134, 144, 138, 140, 142, 140, 137, 142, 136, 143, 139, 135, 141, 139, 142, 143, 140, 139, 136, 141, 140, 134, 138, 138, 143, 127, 141, 140, 139, 151, 140, 146, 138, 140, 135, 129, 136, 138, 141, 150, 142, 144, 127, 141, 141, 149, 146, 142, 143, 130, 143, 140, 137, 148, 136, 139, 140, 142, 137, 140, 140, 144, 144, 139, 136, 143, 132, 140, 144, 138, 139, 141, 137, 142, 142, 135, 134, 141, 135, 145, 144, 140, 138, 137, 135, 145, 133, 138, 134, 139, 144, 143, 136, 131, 136, 139, 138, 136, 141, 139, 139, 142, 143, 138, 141, 139, 135, 141, 128, 134, 90, 140, 143, 142, 134, 138, 144, 140, 135, 137, 137, 141, 125, 141, 140, 139, 140, 132, 124, 139, 137, 133, 134, 138, 140, 139, 146, 139, 139, 142, 145, 140, 139, 137, 143, 136, 140, 130, 141, 139, 135, 138, 148, 140, 149, 144, 137, 144, 137, 138, 141, 130, 142, 142, 159, 148, 141, 145, 145, 138, 138, 142, 143, 138, 140, 141, 141, 136, 141, 128, 143, 140, 140, 159, 140, 142, 140, 147, 142, 144, 138, 137, 138, 138, 131, 137, 141, 137, 134, 136, 134, 141, 133, 134, 143, 136, 141, 144, 148, 138, 140, 128, 136, 135, 138, 137, 135, 138, 140, 135, 138, 143, 144, 144, 133, 148, 136, 144, 136, 140, 138, 136, 140, 158, 126, 132, 144, 147, 142, 145, 141, 142, 140, 138, 139, 147, 134, 140, 144, 135, 135, 143, 141, 132, 142, 142, 145, 147, 137, 136, 142, 139, 152, 151, 132, 127, 134, 146, 144, 137, 141, 129, 141, 139, 139, 143, 126, 137, 133, 147, 141, 146, 140, 133, 136, 135, 139, 138, 133, 139, 139, 145, 135, 146, 142, 144, 147, 138, 139, 132, 136, 129, 135, 136, 140, 137, 144, 131, 143, 139, 133, 142, 146, 145, 143, 142, 141, 135, 138, 135, 144, 139, 134, 140, 142, 136, 135, 136, 133, 150, 134, 130, 126, 128, 136, 133, 138, 138, 134, 141, 135, 145, 135, 150, 140, 132, 132, 143, 137, 142, 146, 142, 140, 147, 140, 135, 141, 143, 130, 143, 149, 143, 133, 141, 147, 141, 133, 141, 144, 136, 134, 134, 143, 144, 143, 128, 137, 137, 134, 138, 136, 138, 142, 145, 136, 131, 139, 142, 125, 140, 133, 143, 146, 139, 148, 130, 146, 133, 144, 139, 140, 139, 144, 135, 145, 138, 137, 140, 130, 142, 140, 140, 138, 139, 143, 141, 141, 137, 139, 135, 134, 135, 129, 147, 131, 139, 139, 134, 142, 133, 139, 141, 138, 146, 138, 145, 144, 140, 136, 138, 139, 139, 138, 144, 143, 135, 140, 146, 137, 132, 146, 139, 145, 138, 146, 144, 135, 139, 135, 146, 135, 134, 145, 145, 146, 138, 137, 135, 139, 141, 145, 131, 143, 143, 139, 141, 134, 126, 126, 139, 151, 138, 142, 140, 143, 126, 135, 139, 131, 136, 155, 138, 138, 128, 126, 145, 135, 138, 148, 143, 142, 138, 146, 145, 129, 144, 130, 134, 128, 138, 141, 138, 124, 142, 137, 135, 122, 138, 135, 136, 139, 139, 158, 147, 140, 146, 137, 137, 132, 141, 142, 145, 147, 142, 137, 137, 139, 135, 147, 130, 125, 147, 142, 133, 143, 136, 138, 146, 138, 133, 135, 143, 124, 141, 147, 139, 136, 139, 148, 133, 129, 129, 131, 139, 133, 138, 124, 139, 140, 140, 146, 135, 136, 143, 137, 141, 143, 143, 139, 136, 144, 135, 140, 142, 144, 140, 146, 145, 143, 142, 135, 133, 144, 148, 135, 138, 143, 142, 143, 140, 139, 127, 136, 133, 142, 151, 146, 137, 144, 136, 143, 132, 133, 133, 135, 145, 147, 142, 140, 137, 145, 141, 139, 145, 144, 139, 127, 144, 130, 132, 148, 139, 136, 139, 143, 141, 135, 136, 137, 140, 134, 128, 142, 139, 133, 137, 134, 134, 133, 134, 141, 136, 139, 150, 140, 135, 135, 140, 137, 139, 148, 145, 141, 139, 134, 144, 148, 139, 137, 130, 137, 138, 130, 140, 141, 141, 141, 134, 131, 142, 136, 142, 143, 142, 132, 133, 140, 143, 144, 142, 141, 141, 146, 140, 137, 138, 141, 138, 134, 135, 137, 123, 139, 139, 132, 138, 147, 134, 140, 137, 138, 128, 141, 142, 143, 142, 138, 147, 140, 131, 139, 133, 140, 146, 140, 140, 145, 144, 141, 138, 138, 145, 138, 132, 141, 137, 134, 141, 125, 145, 137, 142, 131, 126, 140, 133, 141, 138, 143, 126, 143, 139, 143, 124, 132, 148, 147, 132, 145, 143, 141, 149, 135, 139, 143, 152, 137, 129, 131, 133, 135, 140, 141, 138, 140, 145, 137, 139, 148, 134, 141, 138, 135, 137, 142, 130, 147, 129, 125, 138, 138, 130, 137, 145, 147, 137, 126, 138, 132, 141, 145, 137, 140, 135, 165, 132, 141, 139, 143, 139, 139, 140, 133, 136, 140, 144, 140, 142, 143, 144, 143, 140, 145, 141, 144, 132, 136, 151, 128, 136, 141, 132, 140, 137, 132, 146, 150, 133, 153, 132, 145, 154, 150, 145, 136, 135, 135, 142, 138, 141, 145, 137, 134, 144, 141, 145, 128, 149, 134, 143, 144, 146, 143, 126, 146, 142, 133, 144, 135, 140, 139, 137, 139, 134, 130, 146, 146, 145, 128, 127, 132, 142, 128, 133, 130, 136, 138, 145, 132, 139, 135, 134, 145, 140, 143, 134, 147, 139, 139, 143, 130, 140, 142, 137, 136, 152, 158, 144, 141, 146, 132, 143, 140, 130, 145, 140, 136, 136, 139, 147, 135, 135, 141, 148, 137, 130, 132, 145, 137, 140, 137, 147, 128, 133, 134, 134, 134, 133, 144, 134, 147, 135, 138, 141, 134, 137, 126, 141, 133, 140, 133, 134, 134, 136, 146, 142, 147, 153, 133, 139, 129, 136, 142, 140, 132, 131, 146, 138, 141, 138, 151, 147, 152, 135, 132, 130, 139, 137, 135, 137, 144, 133, 140, 131, 143, 139, 139, 132, 142, 128, 133, 132, 141, 128, 134, 133, 144, 135, 135, 130, 139, 136, 138, 135, 139, 141, 137, 138, 143, 140, 128, 129, 145, 127, 137, 140, 140, 145, 131, 131, 139, 136, 132, 146, 132, 138, 136, 126, 135, 142, 139, 135, 152, 142, 143, 141, 144, 136, 134, 146, 132, 137, 135, 136, 139, 142, 148, 138, 139, 134, 145, 137, 149, 149, 125, 144, 134, 140, 146, 132, 141, 140, 133, 141, 142, 142, 137, 142, 153, 145, 133, 137, 139, 137, 140, 136, 149, 136, 137, 135, 138, 139, 139, 150, 136, 150, 149, 141, 148, 134, 138, 131, 136, 133, 130, 154, 118, 137, 131, 125, 150, 137, 136, 146, 141, 136, 133, 129, 137, 136, 135, 134, 142, 130, 142, 141, 130, 136, 139, 140, 134, 149, 140, 139, 143, 141, 130, 136, 147, 135, 137, 138, 139, 142, 142, 134, 145, 142, 138, 140, 143, 138, 140, 144, 142, 138, 135, 129, 143, 141, 150, 150, 133, 137, 144, 142, 128, 135, 134, 128, 139, 139, 152, 135, 152, 133, 143, 132, 138, 141, 143, 138, 146, 133, 150, 138, 134, 143, 150, 133, 135, 128, 131, 146, 144, 144, 138, 141, 129, 134, 130, 144, 134, 140, 134, 146, 146, 146, 137, 138, 133, 153, 129, 135, 144, 139, 133, 144, 141, 128, 133, 132, 132, 152, 138, 130, 132, 133, 143, 137, 140, 142, 143, 143, 152, 140, 136, 132, 139, 144, 142, 149, 135, 138, 140, 146, 139, 140, 142, 139, 140, 138, 153, 138, 141, 135, 128, 142, 125, 124, 141, 135, 131, 132, 138, 133, 130, 134, 143, 140, 137, 146, 129, 126, 135, 137, 144, 131, 126, 141, 136, 125, 142, 135, 146, 139, 137, 136, 139, 142, 139, 140, 140, 134, 143, 137, 133, 150, 146, 136, 133, 135, 136, 141, 131, 129, 133, 141, 140, 143, 142, 134, 148, 137, 137, 147, 139, 121, 134, 126, 133, 137, 139, 137, 144, 130, 144, 141, 136, 136, 141, 148, 137, 135, 139, 138, 138, 132, 131, 136, 138, 138, 143, 141, 149, 138, 150, 140, 135, 137, 143, 136, 143, 140, 139, 145, 138, 134, 145, 135, 130, 144, 141, 136, 145, 138, 143, 143, 138, 142, 136, 138, 134, 138, 140, 148, 137, 144, 130, 134, 136, 137, 144, 138, 131, 135, 140, 139, 143, 135, 142, 141, 140, 136, 136, 141, 139, 136, 135, 136, 133, 136, 135, 142, 145, 133, 124, 133, 133, 137, 138, 133, 150, 138, 140, 138, 135, 139, 137, 137, 143, 140, 136, 138, 139, 134, 136, 142, 137, 139, 139, 135, 130, 138, 145, 142, 137, 147, 137, 135, 144, 132, 135, 139, 141, 131, 138, 147, 130, 131, 138, 142, 144, 144, 140, 145, 142, 134, 147, 137, 142, 137, 139, 134, 127, 138, 137, 141, 149, 143, 135, 145, 142, 141, 143, 144, 139, 135, 151, 134, 132, 140, 144, 134, 132, 142, 141, 135, 134, 133, 141, 142, 143, 152, 142, 139, 135, 139, 138, 137, 129, 140, 133, 141, 138, 133, 136, 130, 136, 142, 138, 141, 150, 135, 132, 144, 140, 139, 139, 136, 130, 144, 131, 135, 134, 133, 137, 146, 141, 126, 152, 138, 135, 131, 138, 132, 139, 138, 139, 134, 138, 140, 137, 140, 138, 134, 132, 137, 144, 141, 135, 139, 135, 131, 134, 129, 126, 144, 146, 138, 137, 144, 142, 134, 133, 125, 136, 139, 143, 148, 131, 136, 140, 134, 136, 138, 141, 137, 138, 140, 126, 143, 141, 142, 137, 137, 149, 144, 150, 140, 143, 137, 136, 132, 142, 138, 132, 140, 144, 136, 135, 143, 141, 135, 137, 146, 139, 136, 136, 132, 128, 139, 136, 131, 146, 147, 138, 138, 136, 132, 135, 143, 138, 141, 141, 142, 137, 149, 139, 143, 145, 126, 135, 146, 138, 133, 134, 141, 135, 136, 141, 144, 143, 142, 141, 141, 143, 132, 138, 135, 143, 134, 136, 137, 137, 145, 145, 142, 134, 135, 137, 142, 134, 141, 137, 144, 142, 139, 134, 138, 146, 139, 135, 147, 137, 142, 134, 139, 141, 140, 146, 139, 142, 134, 141, 145, 138, 135, 139, 137, 147, 135, 143, 130, 137, 140, 134, 144, 137, 135, 138, 142, 136, 139, 142, 135, 138, 137, 140, 137, 143, 139, 137, 141, 133, 136, 122, 135, 142, 148, 140, 132, 141, 137, 132, 141, 140, 136, 147, 138, 142, 132, 143, 126, 143, 142, 136, 133, 137, 131, 141, 140, 144, 135, 145, 130, 138, 137, 141, 131, 136, 139, 142, 139, 148, 131, 136, 144, 134, 132, 144, 134, 149, 143, 128, 135, 138, 138, 128, 135, 138, 138, 138, 142, 144, 133, 141, 146, 146, 139, 144, 132, 138, 150, 139, 145, 127, 148, 144, 138, 135, 136, 140, 139, 139, 139, 146, 133, 140, 138, 130, 154, 138, 143, 137, 142, 136, 136, 136, 136, 141, 135, 132, 136, 147, 145, 132, 150, 136, 144, 134, 138, 142, 135, 138, 138, 149, 146, 144, 135, 144, 137, 136, 135, 134, 136, 137, 136, 141, 148, 148, 137, 141, 132, 131, 137, 144, 137, 139, 147, 132, 142, 142, 145, 135, 136, 152, 142, 147, 146, 139, 133, 140, 133, 137, 134, 134, 150, 140, 141, 136, 138, 140, 137, 137, 132, 146, 137, 135, 138, 142, 141, 140, 138, 136, 141, 141, 131, 133, 139, 136, 148, 152, 141, 140, 143, 136, 141, 141, 142, 139, 145, 131, 138, 151, 132, 149, 148, 127, 137, 155, 133, 155, 137, 139, 132, 144, 150, 139, 140, 143, 133, 130, 145, 124, 136, 149, 138, 135, 142, 138, 128, 143, 140, 128, 146, 134, 131, 138, 143, 144, 145, 131, 133, 143, 145, 137, 145, 130, 138, 142, 130, 134, 132, 139, 149, 140, 138, 137, 141, 130, 144, 143, 130, 132, 143, 146, 145, 139, 136, 129, 130, 130, 135, 139, 145, 126, 138, 153, 138, 126, 147, 140, 131, 123, 136, 141, 135, 146, 135, 134, 138, 128, 136, 146, 144, 130, 136, 143, 140, 138, 140, 143, 133, 144, 138, 143, 138, 142, 144, 138, 134, 132, 151, 137, 134, 140, 147, 131, 149, 132, 150, 140, 139, 141, 136, 141, 153, 136, 152, 155, 133, 137, 147, 145, 137, 143, 139, 133, 146, 142, 139, 137, 137, 145, 139, 138, 132, 139, 142, 128, 136, 151, 145, 140, 139, 138, 144, 138, 134, 135, 140, 127, 135, 136, 140, 148, 129, 148, 135, 145, 138, 138, 135, 134, 137, 126, 127, 137, 137, 139, 143, 129, 134, 132, 141, 134, 131, 140, 138, 137, 130, 138, 159, 142, 138, 145, 139, 145, 135, 135, 140, 141, 146, 133, 129, 140, 144, 145, 144, 134, 143, 131, 132, 129, 134, 143, 144, 150, 132, 144, 141, 136, 151, 135, 135, 142, 139, 139, 146, 135, 137, 157, 138, 145, 147, 137, 135, 141, 145, 143, 143, 147, 135, 143, 138, 132, 129, 140, 146, 140, 127, 140, 148, 138, 127, 137, 137, 147, 141, 143, 142, 156, 142, 130, 130, 149, 156, 144, 134, 123, 143, 136, 146, 138, 139, 140, 139, 139, 142, 141, 130, 137, 139, 154, 139, 137, 152, 139, 131, 128, 124, 145, 144, 144, 130, 141, 138, 140, 137, 137, 145, 140, 141, 151, 139, 137, 137, 138, 134, 134, 140, 146, 135, 135, 131, 147, 133, 133, 134, 131, 136, 135, 130, 135, 140, 134, 145, 137, 136, 128, 133, 135, 137, 138, 143, 145, 138, 149, 144, 135, 140, 136, 148, 152, 135, 140, 144, 141, 138, 139, 140, 131, 126, 145, 132, 143, 135, 127, 140, 136, 143, 136, 132, 143, 136, 137, 128, 133, 137, 136, 140, 130, 139, 150, 136, 156, 141, 139, 138, 143, 137, 148, 134, 140, 137, 132, 134, 137, 127, 134, 149, 143, 130, 148, 146, 151, 147, 142, 144, 136, 134, 135, 146, 142, 129, 138, 135, 148, 146, 147, 146, 146, 139, 134, 149, 137, 130, 139, 135, 138, 135, 154, 136, 136, 131, 138, 146, 158, 139, 143, 137, 134, 141, 137, 140, 129, 142, 129, 140, 138, 140, 147, 137, 131, 140, 128, 135, 137, 140, 140, 140, 137, 138, 149, 128, 139, 138, 144, 143, 132, 135, 140, 136, 141, 145, 125, 133, 137, 145, 143, 142, 130, 141, 138, 135, 143, 134, 143, 136, 137, 134, 138, 139, 133, 135, 141, 146, 137, 136, 154, 133, 151, 139, 140, 138, 137, 135, 135, 149, 134, 145, 135, 141, 140, 138, 141, 138, 145, 142, 137, 136, 145, 136, 127, 155, 130, 135, 153, 136, 127, 136, 148, 141, 149, 137, 153, 146, 151, 140, 133, 140, 137, 143, 133, 136, 138, 128, 142, 141, 143, 146, 132, 131, 142, 134, 130, 131, 132, 131, 142, 143, 132, 142, 137, 145, 143, 133, 134, 140, 151, 145, 144, 154, 146, 135, 139, 133, 141, 135, 132, 147, 148, 141, 142, 144, 139, 137, 137, 127, 134, 132, 128, 140, 127, 131, 139, 135, 139, 133, 142, 157, 143, 141, 144, 147, 142, 138, 130, 139, 137, 142, 146, 139, 131, 138, 142, 141, 159, 143, 142, 142, 145, 135, 143, 139, 141, 136, 143, 139, 144, 137, 129, 138, 138, 139, 142, 145, 142, 139, 115, 132, 129, 139, 141, 136, 124, 146, 137, 146, 135, 135, 144, 131, 152, 134, 139, 140, 130, 138, 138, 133, 140, 126, 135, 140, 138, 146, 138, 128, 134, 140, 131, 134, 138, 127, 129, 138, 155, 139, 142, 137, 143, 138, 127, 141, 148, 134, 136, 138, 141, 138, 148, 140, 134, 134, 133, 152, 129, 146, 144, 141, 133, 147, 135, 145, 144, 136, 143, 136, 146, 137, 142, 139, 130, 132, 139, 147, 129, 150, 132, 147, 144, 145, 149, 134, 142, 137, 143, 152, 138, 134, 141, 144, 146, 137, 143, 133, 138, 136, 136, 140, 149, 140, 136, 146, 139, 132, 140, 142, 138, 140, 136, 162, 144, 139, 134, 140, 137, 143, 137, 137, 151, 146, 147, 141, 143, 136, 127, 138, 142, 153, 133, 132, 141, 134, 140, 135, 131, 132, 142, 134, 136, 144, 141, 142, 141, 144, 121, 144, 124, 138, 140, 133, 119, 144, 133, 149, 140, 129, 135, 140, 146, 136, 134, 125, 144, 156, 133, 142, 135, 140, 145, 147, 140, 147, 159, 140, 147, 144, 139, 137, 135, 134, 130, 129, 145, 144, 133, 133, 127, 137, 132, 125, 136, 144, 135, 167, 141, 138, 145, 142, 142, 137, 137, 127, 147, 144, 135, 135, 143, 135, 131, 137, 132, 134, 161, 154, 125, 142, 145, 129, 140, 117, 132, 150, 150, 138, 145, 140, 134, 143, 134, 140, 148, 129, 141, 142, 132, 139, 125, 133, 138, 146, 150, 136, 137, 141, 132, 138, 133, 135, 134, 150, 132, 148, 142, 133, 127, 145, 138, 137, 136, 144, 144, 140, 141, 135, 133, 138, 176, 131, 137, 131, 138, 143, 134, 148, 140, 137, 141, 153, 140, 144, 131, 149, 147, 137, 137, 147, 141, 138, 143, 141, 140, 129, 132, 149, 136, 148, 139, 127, 161, 143, 141, 143, 139, 140, 136, 130, 135, 141, 146, 139, 146, 140, 140, 136, 135, 130, 135, 155, 143, 146, 141, 133, 144, 140, 143, 129, 137, 138, 142, 147, 148, 140, 148, 138, 145, 140, 145, 137, 156, 136, 132, 140, 134, 133, 140, 129, 142, 144, 137, 141, 133, 133, 154, 154, 136, 141, 142, 134, 138, 129, 144, 147, 132, 132, 134, 137, 146, 130, 127, 131, 145, 144, 144, 146, 137, 146, 137, 137, 140, 146, 124, 144, 136, 138, 137, 143, 151, 151, 141, 146, 142, 142, 137, 136, 133, 149, 139, 142, 133, 144, 137, 129, 133, 137, 129, 137, 136, 141, 138, 135, 146, 137, 138, 144, 139, 138, 144, 146, 138, 142, 130, 141, 129, 140, 149, 139, 141, 123, 127, 160, 143, 141, 131, 138, 144, 140, 141, 134, 136, 134, 141, 155, 127, 152, 125, 142, 126, 137, 143, 128, 147, 142, 142, 142, 136, 138, 144, 144, 140, 141, 139, 137, 145, 144, 130, 135, 137, 137, 134, 140, 145, 141, 139, 129, 139, 136, 139, 135, 125, 132, 142, 139, 136, 140, 141, 135, 140, 147, 147, 137, 146, 149, 144, 132, 144, 134, 139, 144, 141, 136, 140, 133, 138, 137, 127, 137, 149, 135, 133, 138, 140, 149, 141, 137, 136, 140, 146, 117, 138, 131, 144, 128, 134, 145, 143, 131, 133, 153, 135, 132, 134, 139, 138, 125, 127, 135, 140, 140, 136, 146, 139, 150, 147, 142, 139, 139, 129, 130, 143, 141, 143, 150, 123, 137, 128, 131, 155, 140, 127, 143, 141, 137, 133, 136, 142, 155, 135, 144, 139, 137, 146, 149, 144, 130, 137, 133, 135, 137, 152, 134, 138, 138, 128, 129, 141, 135, 130, 138, 138, 143, 142, 142, 152, 149, 146, 144, 136, 141, 145, 142, 147, 141, 119, 137, 133, 127, 138, 139, 132, 129, 137, 140, 128, 139, 138, 147, 144, 130, 136, 130, 136, 148, 147, 138, 137, 142, 135, 147, 132, 142, 135, 129, 134, 129, 144, 150, 133, 131, 129, 133, 133, 142, 139, 135, 141, 130, 145, 154, 133, 138, 136, 119, 132, 132, 139, 141, 143, 132, 150, 153, 151, 137, 130, 137, 140, 129, 140, 136, 148, 145, 148, 143, 141, 137, 129, 139, 139, 132, 144, 144, 143, 131, 140, 139, 141, 132, 137, 146, 137, 148, 131, 137, 141, 133, 136, 155, 139, 140, 130, 134, 134, 129, 132, 133, 133, 126, 136, 134, 127, 136, 134, 154, 142, 139, 135, 151, 138, 146, 147, 137, 140, 138, 134, 139, 147, 133, 140, 131, 143, 146, 133, 141, 141, 142, 142, 146, 141, 129, 134, 134, 150, 139, 147, 131, 145, 128, 137, 137, 140, 144, 137, 130, 143, 132, 143, 136, 137, 130, 131, 126, 133, 150, 144, 142, 134, 134, 140, 142, 140, 145, 127, 142, 131, 145, 136, 150, 149, 144, 137, 131, 150, 146, 130, 140, 139, 127, 132, 151, 144, 135, 135, 132, 134, 132, 136, 147, 145, 156, 132, 140, 137, 151, 134, 139, 137, 146, 132, 137, 142, 123, 143, 134, 125, 133, 149, 134, 135, 128, 128, 132, 136, 134, 137, 136, 129, 145, 143, 144, 140, 140, 154, 146, 143, 133, 142, 153, 132, 140, 143, 140, 133, 130, 133, 139, 142, 135, 140, 132, 132, 136, 143, 141, 141, 148, 141, 146, 132, 138, 139, 147, 146, 139, 135, 137, 147, 135, 138, 131, 146, 146, 136, 135, 134, 139, 138, 136, 136, 134, 127, 128, 140, 135, 137, 145, 147, 144, 134, 145, 135, 146, 149, 142, 138, 137, 144, 141, 154, 136, 146, 129, 130, 134, 138, 141, 134, 140, 139, 137, 139, 135, 132, 139, 145, 129, 137, 138, 138, 139, 140, 140, 140, 141, 143, 128, 149, 149, 138, 136, 139, 138, 132, 133, 139, 135, 137, 145, 134, 142, 138, 128, 144, 133, 131, 137, 139, 138, 141, 139, 149, 149, 137, 134, 137, 136, 135, 134, 130, 142, 146, 138, 136, 144, 144, 138, 141, 143, 141, 145, 144, 134, 136, 139, 138, 137, 136, 140, 139, 137, 146, 140, 142, 144, 134, 134, 139, 141, 130, 143, 143, 140, 139, 137, 130, 148, 137, 138, 134, 143, 132, 143, 141, 146, 145, 135, 139, 133, 137, 135, 139, 137, 139, 150, 136, 140, 138, 136, 133, 142, 129, 133, 132, 138, 134, 141, 138, 145, 135, 139, 131, 135, 140, 150, 150, 129, 146, 140, 131, 134, 143, 137, 137, 136, 142, 141, 136, 131, 148, 141, 137, 139, 141, 139, 143, 138, 130, 136, 142, 142, 136, 145, 142, 139, 135, 129, 144, 147, 137, 148, 149, 150, 142, 136, 137, 135, 142, 133, 137, 142, 135, 143, 141, 138, 141, 147, 140, 138, 140, 140, 139, 136, 137, 133, 142, 145, 146, 135, 137, 136, 137, 135, 137, 137, 137, 136, 143, 129, 135, 135, 134, 128, 143, 141, 132, 136, 141, 140, 133, 142, 141, 144, 138, 145, 141, 139, 141, 138, 141, 143, 143, 141, 143, 142, 139, 139, 131, 139, 155, 140, 135, 134, 145, 146, 143, 134, 141, 139, 147, 138, 139, 131, 147, 141, 146, 144, 147, 141, 139, 133, 133, 131, 133, 132, 134, 144, 136, 134, 142, 137, 145, 138, 142, 138, 136, 142, 133, 141, 131, 138, 144, 135, 143, 138, 132, 139, 138, 138, 138, 137, 144, 144, 140, 144, 139, 138, 142, 143, 135, 137, 145, 139, 137, 133, 143, 136, 131, 147, 138, 142, 132, 136, 140, 136, 141, 137, 135, 137, 134, 128, 133, 144, 140, 140, 140, 141, 138, 137, 139, 138, 151, 146, 135, 134, 144, 137, 142, 139, 139, 137, 140, 139, 134, 136, 133, 133, 139, 142, 136, 147, 141, 137, 138, 137, 152, 136, 146, 144, 137, 138, 133, 132, 143, 147, 115, 138, 138, 130, 135, 132, 135, 140, 137, 138, 138, 147, 142, 148, 133, 146, 136, 145, 143, 131, 126, 137, 136, 145, 143, 144, 152, 132, 142, 129, 148, 135, 142, 134, 156, 134, 141, 142, 142, 131, 136, 135, 136, 132, 139, 140, 138, 140, 131, 148, 150, 135, 145, 145, 137, 144, 145, 141, 140, 140, 136, 143, 144, 127, 137, 151, 136, 131, 141, 132, 144, 141, 137, 126, 146, 126, 140, 135, 141, 139, 132, 142, 137, 135, 143, 135, 141, 145, 138, 145, 142, 138, 141, 139, 137, 142, 136, 135, 145, 146, 139, 142, 136, 140, 136, 134, 135, 136, 136, 143, 138, 144, 147, 134, 123, 140, 137, 140, 144, 135, 141, 144, 133, 144, 138, 139, 142, 130, 139, 136, 126, 135, 139, 138, 135, 139, 139, 136, 142, 140, 137, 147, 134, 139, 144, 143, 137, 141, 128, 145, 135, 143, 141, 138, 142, 140, 141, 144, 137, 140, 138, 141, 146, 133, 136, 139, 135, 142, 139, 135, 138, 140, 136, 139, 133, 136, 142, 141, 139, 136, 143, 138, 136, 145, 131, 139, 124, 136, 141, 155, 142, 139, 146, 141, 135, 140, 150, 140, 131, 147, 138, 141, 139, 134, 137, 139, 135, 141, 140, 135, 133, 138, 135, 139, 139, 140, 139, 139, 137, 132, 146, 136, 142, 132, 145, 145, 143, 141, 138, 145, 142, 145, 134, 142, 134, 138, 141, 144, 144, 136, 141, 138, 150, 140, 139, 141, 146, 140, 134, 146, 140, 140, 140, 137, 141, 138, 137, 138, 140, 147, 143, 143, 138, 138, 140, 133, 148, 128, 144, 145, 151, 132, 133, 137, 136, 136, 153, 136, 134, 146, 141, 146, 133, 133, 139, 134, 145, 142, 129, 137, 143, 135, 138, 141, 138, 143, 138, 145, 140, 134, 138, 139, 141, 135, 136, 137, 140, 143, 133, 130, 134, 143, 136, 136, 126, 140, 143, 143, 137, 134, 146, 133, 138, 136, 135, 140, 143, 142, 145, 144, 142, 143, 145, 140, 146, 140, 135, 139, 140, 136, 136, 150, 138, 138, 139, 141, 136, 133, 140, 135, 143, 141, 139, 136, 138, 142, 130, 146, 150, 134, 145, 145, 133, 135, 136, 141, 140, 141, 137, 135, 140, 141, 140, 140, 133, 137, 142, 142, 137, 130, 138, 134, 142, 165, 139, 136, 141, 139, 140, 139, 143, 141, 134, 143, 148, 139, 141, 138, 139, 145, 132, 144, 140, 145, 143, 138, 139, 141, 148, 143, 145, 137, 151, 135, 136, 141, 137, 138, 138, 152, 143, 146, 145, 154, 134, 140, 140, 133, 134, 139, 133, 140, 134, 145, 140, 140, 138, 127, 128, 140, 145, 134, 136, 144, 145, 141, 138, 145, 137, 133, 136, 146, 141, 138, 143, 140, 144, 140, 140, 148, 150, 141, 140, 131, 138, 137, 135, 133, 135, 145, 137, 141, 141, 141, 138, 136, 139, 141, 139, 142, 139, 135, 140, 134, 145, 144, 137, 137, 140, 134, 144, 144, 143, 135, 144, 133, 135, 132, 140, 142, 141, 130, 140, 143, 151, 141, 132, 138, 139, 137, 150, 149, 145, 142, 131, 138, 137, 141, 141, 143, 141, 143, 130, 146, 141, 138, 139, 141, 131, 147, 138, 144, 146, 140, 135, 141, 139, 135, 138, 144, 137, 143, 144, 139, 141, 147, 138, 141, 148, 129, 142, 144, 143, 142, 136, 138, 138, 129, 142, 133, 135, 139, 143, 145, 144, 136, 132, 141, 135, 134, 139, 133, 135, 136, 138, 132, 140, 137, 139, 134, 132, 134, 142, 135, 134, 136, 129, 136, 148, 131, 136, 142, 146, 132, 140, 133, 129, 143, 135, 137, 144, 136, 152, 140, 141, 138, 140, 140, 137, 136, 136, 143, 138, 137, 133, 140, 139, 143, 135, 129, 139, 140, 139, 148, 137, 137, 139, 136, 131, 135, 138, 138, 133, 141, 142, 137, 140, 141, 139, 129, 136, 136, 135, 140, 141, 144, 145, 138, 138, 137, 139, 142, 128, 141, 142, 141, 134, 139, 137, 137, 144, 129, 139, 145, 145, 128, 134, 141, 134, 144, 138, 141, 144, 135, 139, 139, 134, 136, 131, 139, 139, 147, 138, 140, 138, 142, 144, 136, 146, 142, 142, 141, 132, 140, 140, 141, 135, 136, 133, 146, 132, 135, 134, 134, 140, 145, 139, 135, 139, 140, 139, 138, 131, 142, 140, 137, 138, 143, 140, 145, 136, 138, 138, 144, 144, 135, 140, 148, 139, 146, 136, 134, 145, 136, 137, 140, 138, 140, 137, 141, 136, 142, 137, 138, 134, 140, 139, 147, 139, 141, 136, 135, 142, 141, 144, 139, 139, 141, 139, 144, 140, 134, 144, 138, 145, 142, 147, 137, 143, 141, 142, 147, 138, 143, 137, 134, 143, 139, 137, 145, 139, 139, 141, 133, 139, 142, 135, 146, 130, 135, 136, 144, 145, 137, 143, 139, 131, 144, 144, 138, 140, 143, 142, 143, 142, 142, 147, 143, 137, 141, 140, 137, 136, 139, 140, 137, 136, 144, 140, 140, 141, 143, 147, 138, 141, 140, 137, 135, 136, 128, 134, 137, 128, 142, 135, 143, 144, 141, 138, 134, 139, 131, 143, 143, 147, 136, 144, 138, 136, 134, 143, 138, 140, 139, 144, 132, 138, 141, 142, 133, 142, 142, 140, 146, 140, 148, 134, 137, 134, 139, 138, 137, 142, 149, 134, 140, 146, 139, 132, 139, 150, 145, 136, 138, 146, 133, 139, 135, 142, 139, 146, 142, 139, 140, 135, 136, 135, 142, 142, 142, 135, 141, 144, 145, 144, 134, 141, 136, 142, 140, 141, 143, 138, 142, 134, 138, 137, 136, 147, 143, 130, 137, 136, 136, 135, 135, 140, 140, 145, 142, 139, 138, 142, 138, 137, 140, 143, 148, 139, 134, 136, 138, 139, 143, 133, 145, 138, 139, 138, 135, 145, 136, 143, 144, 138, 139, 133, 138, 143, 140, 141, 134, 148, 142, 142, 143, 142, 132, 142, 144, 135, 138, 149, 139, 142, 150, 136, 142, 141, 144, 137, 137, 144, 138, 136, 145, 138, 139, 138, 138, 137, 138, 132, 142, 135, 137, 145, 140, 137, 140, 149, 139, 140, 145, 136, 144, 140, 139, 138, 144, 144, 145, 132, 138, 138, 142, 140, 129, 141, 143, 145, 143, 140, 144, 133, 141, 140, 142, 144, 137, 140, 138, 136, 145, 142, 146, 140, 142, 145, 129, 144, 145, 138, 143, 140, 141, 141, 139, 135, 142, 142, 138, 136, 136, 137, 144, 140, 142, 139, 136, 142, 140, 130, 136, 130, 143, 135, 140, 144, 143, 146, 137, 132, 139, 146, 132, 137, 135, 139, 136, 146, 142, 144, 138, 141, 143, 137, 143, 140, 138, 135, 145, 140, 138, 134, 138, 140, 137, 138, 135, 139, 139, 138, 139, 138, 137, 135, 133, 133, 131, 140, 133, 140, 144, 140, 141, 149, 138, 133, 141, 137, 135, 138, 146, 141, 135, 136, 136, 136, 141, 141, 141, 135, 143, 142, 132, 137, 143, 139, 132, 135, 139, 144, 138, 138, 144, 139, 143, 140, 142, 140, 142, 141, 143, 144, 138, 145, 141, 139, 138, 138, 139, 143, 144, 138, 145, 141, 136, 142, 136, 140, 134, 143, 136, 136, 139, 142, 137, 143, 150, 128, 139, 140, 142, 136, 140, 135, 144, 135, 140, 136, 136, 136, 144, 135, 134, 140, 141, 131, 139, 153, 132, 144, 137, 140, 136, 135, 139, 139, 147, 137, 134, 137, 141, 131, 140, 136, 136, 141, 139, 145, 141, 145, 140, 141, 142, 141, 135, 140, 131, 133, 140, 138, 133, 136, 136, 140, 142, 138, 135, 127, 142, 132, 137, 140, 140, 142, 142, 132, 140, 142, 141, 129, 138, 141, 135, 134, 140, 138, 142, 138, 137, 135, 145, 147, 140, 145, 142, 131, 134, 143, 130, 146, 139, 138, 149, 143, 140, 140, 137, 136, 140, 139, 133, 138, 141, 135, 140, 140, 136, 131, 134, 142, 138, 132, 142, 147, 140, 134, 142, 136, 141, 137, 138, 135, 137, 137, 133, 131, 141, 137, 136, 143, 137, 144, 147, 137, 143, 139, 150, 134, 136, 149, 132, 143, 140, 138, 137, 147, 137, 141, 139, 137, 148, 138, 138, 132, 130, 142, 141, 132, 143, 141, 131, 141, 146, 137, 127, 137, 133, 139, 137, 143, 136, 130, 147, 137, 135, 134, 137, 139, 134, 142, 142, 141, 147, 143, 139, 138, 148, 134, 141, 143, 139, 137, 142, 136, 145, 134, 162, 137, 140, 140, 144, 136, 136, 133, 139, 138, 134, 140, 139, 140, 142, 137, 141, 139, 137, 139, 131, 140, 136, 133, 136, 140, 138, 137, 138, 137, 138, 143, 141, 141, 128, 140, 135, 142, 136, 134, 139, 135, 140, 142, 139, 133, 141, 139, 143, 144, 146, 141, 135, 134, 142, 141, 139, 143, 140, 137, 139, 139, 142, 135, 139, 135, 131, 134, 128, 145, 142, 137, 143, 146, 143, 140, 139, 138, 139, 139, 130, 138, 139, 129, 143, 134, 138, 144, 141, 131, 141, 125, 136, 137, 139, 140, 148, 134, 134, 141, 137, 143, 142, 149, 134, 132, 141, 137, 123, 140, 141, 148, 142, 140, 145, 143, 134, 140, 139, 135, 133, 149, 139, 137, 139, 136, 141, 137, 132, 147, 137, 141, 142, 148, 141, 146, 136, 137, 138, 138, 134, 140, 153, 139, 137, 143, 144, 132, 140, 131, 134, 142, 138, 138, 136, 144, 143, 145, 144, 134, 137, 147, 135, 139, 132, 137, 142, 137, 144, 142, 139, 138, 145, 140, 138, 139, 145, 143, 138, 145, 136, 133, 140, 135, 136, 134, 143, 140, 139, 136, 136, 137, 145, 135, 144, 134, 139, 136, 138, 132, 139, 137, 140, 146, 138, 145, 134, 139, 135, 134, 141, 136, 139, 139, 137, 140, 135, 137, 135, 133, 141, 138, 143, 143, 136, 143, 139, 139, 139, 144, 142, 137, 143, 138, 133, 139, 136, 142, 138, 142, 135, 135, 143, 146, 136, 138, 138, 130, 135, 145, 145, 142, 146, 132, 138, 156, 152, 140, 138, 133, 132, 133, 134, 139, 144, 149, 142, 135, 146, 143, 134, 145, 130, 141, 136, 137, 145, 140, 134, 137, 134, 136, 139, 136, 140, 138, 132, 139, 144, 134, 141, 145, 145, 146, 131, 139, 144, 134, 147, 149, 163, 139, 136, 135, 141, 144, 130, 143, 135, 137, 137, 139, 136, 141, 165, 149, 138, 143, 133, 138, 131, 135, 144, 143, 143, 136, 137, 144, 140, 137, 151, 139, 144, 140, 137, 134, 136, 131, 143, 132, 133, 144, 131, 134, 140, 133, 137, 140, 138, 139, 138, 142, 133, 152, 136, 144, 137, 133, 141, 140, 139, 143, 138, 139, 146, 140, 139, 144, 138, 136, 142, 141, 134, 137, 145, 132, 138, 134, 138, 132, 137, 138, 136, 142, 138, 137, 145, 136, 134, 139, 142, 143, 138, 139, 138, 137, 135, 140, 142, 149, 137, 138, 135, 137, 143, 128, 146, 135, 137, 141, 144, 128, 138, 136, 141, 144, 141, 140, 143, 140, 137, 137, 138, 142, 149, 133, 138, 142, 130, 151, 139, 137, 128, 134, 134, 140, 135, 134, 142, 138, 134, 145, 146, 141, 139, 136, 134, 143, 136, 138, 139, 137, 142, 137, 134, 144, 141, 139, 83, 134, 135, 146, 138, 142, 136, 150, 141, 140, 147, 141, 136, 139, 136, 134, 140, 135, 138, 146, 144, 136, 137, 142, 129, 140, 140, 140, 132, 139, 146, 141, 134, 152, 146, 140, 138, 139, 150, 141, 144, 139, 134, 141, 141, 139, 140, 118, 135, 140, 133, 137, 139, 138, 140, 139, 131, 141, 135, 135, 130, 135, 144, 136, 138, 148, 137, 139, 140, 143, 142, 139, 139, 145, 144, 138, 132, 139, 148, 138, 131, 133, 147, 140, 149, 136, 143, 134, 137, 134, 127, 132, 143, 139, 149, 140, 140, 136, 141, 137, 140, 139, 134, 136, 149, 137, 142, 141, 135, 141, 138, 140, 140, 145, 143, 145, 138, 139, 137, 146, 135, 146, 141, 140, 136, 149, 133, 140, 136, 138, 139, 136, 136, 144, 141, 138, 148, 139, 136, 143, 136, 137, 130, 134, 143, 134, 154, 118, 145, 143, 140, 142, 137, 138, 134, 138, 132, 138, 148, 142, 139, 139, 137, 148, 137, 135, 138, 141, 132, 144, 142, 143, 137, 141, 135, 140, 143, 142, 140, 134, 141, 143, 135, 147, 149, 133, 137, 134, 136, 140, 129, 133, 127, 143, 143, 135, 136, 78, 128, 140, 136, 145, 133, 134, 139, 133, 144, 135, 134, 138, 139, 139, 137, 132, 135, 149, 139, 136, 136, 145, 140, 135, 138, 140, 140, 139, 135, 137, 137, 141, 143, 134, 140, 139, 142, 139, 145, 148, 134, 133, 141, 141, 136, 142, 142, 140, 142, 131, 134, 134, 145, 137, 141, 134, 138, 135, 142, 142, 139, 142, 134, 136, 138, 141, 144, 142, 126, 138, 142, 135, 138, 130, 151, 134, 137, 137, 129, 141, 137, 134, 132, 133, 133, 142, 142, 149, 135, 138, 132, 136, 131, 138, 134, 129, 135, 137, 131, 136, 140, 145, 142, 134, 139, 144, 130, 135, 140, 137, 146, 139, 133, 136, 140, 143, 140, 131, 141, 140, 135, 138, 139, 140, 139, 132, 150, 139, 140, 135, 140, 142, 134, 135, 133, 143, 149, 137, 140, 139, 140, 143, 137, 144, 134, 137, 134, 138, 139, 144, 152, 141, 136, 132, 145, 140, 126, 138, 133, 138, 138, 149, 142, 138, 144, 141, 135, 138, 143, 141, 126, 137, 137, 136, 132, 144, 141, 135, 135, 131, 136, 137, 138, 141, 137, 128, 141, 137, 143, 137, 135, 143, 145, 140, 141, 141, 141, 137, 146, 131, 137, 139, 143, 143, 135, 136, 139, 133, 129, 136, 133, 138, 141, 133, 135, 138, 138, 141, 136, 135, 143, 134, 133, 144, 129, 140, 137, 144, 140, 140, 139, 136, 137, 138, 138, 136, 138, 133, 140, 138, 134, 141, 141, 145, 143, 139, 138, 142, 138, 143, 144, 140, 135, 138, 141, 128, 139, 142, 142, 141, 141, 131, 141, 138, 139, 141, 132, 139, 138, 133, 136, 139, 131, 140, 140, 135, 145, 134, 139, 134, 136, 142, 138, 143, 139, 138, 144, 149, 145, 142, 134, 137, 136, 142, 140, 134, 134, 144, 137, 135, 138, 145, 136, 140, 137, 136, 134, 132, 141, 131, 137, 141, 140, 135, 140, 136, 137, 140, 135, 135, 137, 133, 135, 136, 134, 140, 140, 142, 135, 142, 139, 136, 133, 143, 143, 149, 141, 138, 140, 142, 135, 139, 140, 138, 141, 141, 134, 137, 138, 142, 137, 142, 142, 137, 142, 141, 137, 137, 137, 139, 141, 139, 138, 134, 137, 142, 138, 139, 132, 140, 139, 140, 141, 141, 142, 142, 137, 137, 135, 137, 139, 140, 139, 146, 134, 139, 142, 139, 140, 131, 140, 137, 144, 137, 146, 141, 141, 141, 136, 138, 144, 142, 143, 141, 129, 139, 138, 141, 139, 146, 132, 136, 139, 138, 140, 140, 136, 140, 142, 140, 139, 137, 154, 143, 141, 141, 138, 146, 134, 137, 138, 137, 147, 121, 136, 143, 140, 136, 139, 136, 140, 139, 134, 135, 139, 142, 139, 135, 138, 137, 146, 139, 139, 140, 138, 133, 142, 138, 141, 135, 146, 138, 139, 136, 139, 141, 142, 141, 141, 141, 141, 140, 134, 140, 136, 144, 140, 148, 139, 133, 138, 137, 142, 136, 137, 139, 139, 148, 133, 145, 148, 144, 143, 138, 132, 142, 134, 132, 140, 136, 138, 137, 153, 141, 137, 142, 138, 141, 142, 140, 134, 145, 136, 138, 139, 143, 137, 146, 137, 137, 137, 142, 134, 137, 143, 135, 139, 139, 136, 140, 138, 136, 135, 134, 137, 139, 147, 134, 143, 146, 137, 136, 139, 140, 140, 143, 142, 133, 137, 139, 131, 144, 140, 135, 135, 141, 137, 138, 136, 147, 143, 152, 138, 136, 138, 139, 134, 140, 139, 138, 134, 142, 138, 144, 144, 148, 139, 141, 138, 143, 144, 144, 132, 140, 144, 139, 129, 146, 136, 138, 132, 135, 139, 133, 141, 140, 136, 139, 140, 134, 135, 136, 135, 139, 134, 155, 139, 143, 133, 143, 146, 136, 140, 145, 145, 142, 137, 138, 138, 142, 142, 140, 140, 140, 134, 139, 139, 136, 138, 131, 136, 139, 144, 134, 140, 135, 141, 137, 140, 143, 146, 139, 135, 135, 132, 134, 138, 130, 138, 144, 144, 141, 140, 139, 138, 147, 139, 137, 148, 143, 135, 141, 135, 142, 136, 139, 136, 137, 141, 138, 148, 146, 144, 132, 142, 143, 145, 139, 139, 137, 134, 138, 131, 142, 135, 140, 143, 129, 145, 140, 136, 136, 144, 133, 141, 137, 147, 133, 149, 134, 135, 148, 140, 145, 141, 145, 148, 128, 141, 144, 135, 149, 138, 134, 132, 141, 133, 134, 142, 135, 138, 130, 133, 136, 138, 138, 136, 138, 137, 139, 141, 136, 143, 136, 134, 132, 134, 142, 137, 138, 135, 135, 138, 143, 135, 140, 135, 140, 143, 135, 132, 140, 138, 134, 139, 131, 140, 140, 141, 142, 143, 143, 140, 135, 138, 141, 135, 144, 143, 140, 145, 133, 141, 133, 139, 141, 138, 133, 140, 136, 132, 141, 136, 147, 143, 142, 137, 139, 141, 139, 144, 144, 135, 135, 134, 147, 138, 134, 138, 135, 139, 133, 141, 128, 140, 142, 137, 129, 148, 147, 132, 142, 136, 148, 140, 137, 147, 138, 133, 142, 138, 144, 144, 141, 137, 146, 137, 139, 140, 132, 137, 139, 139, 140, 145, 136, 141, 139, 136, 139, 136, 145, 148, 144, 145, 135, 131, 133, 136, 141, 145, 142, 139, 139, 132, 138, 144, 142, 140, 145, 136, 144, 142, 139, 146, 139, 132, 147, 143, 147, 132, 141, 138, 135, 137, 135, 136, 137, 146, 142, 137, 137, 134, 144, 142, 142, 138, 143, 131, 136, 135, 136, 146, 141, 138, 137, 137, 135, 140, 142, 139, 135, 143, 135, 137, 148, 127, 140, 142, 127, 128, 158, 143, 135, 128, 146, 143, 142, 137, 134, 147, 138, 137, 137, 134, 133, 144, 138, 136, 140, 138, 141, 139, 145, 137, 139, 143, 129, 142, 135, 132, 139, 141, 144, 148, 133, 137, 135, 131, 134, 146, 137, 141, 141, 136, 145, 141, 136, 141, 138, 135, 148, 138, 142, 132, 145, 136, 139, 148, 140, 150, 147, 143, 141, 146, 139, 142, 148, 136, 138, 135, 139, 134, 142, 131, 132, 133, 138, 140, 139, 139, 141, 141, 131, 139, 143, 140, 145, 137, 143, 136, 141, 141, 148, 140, 138, 137, 133, 138, 142, 141, 145, 140, 138, 137, 146, 134, 132, 139, 138, 131, 142, 138, 138, 137, 144, 136, 149, 142, 132, 136, 141, 143, 133, 137, 148, 140, 134, 136, 139, 138, 147, 143, 142, 137, 142, 138, 132, 136, 136, 147, 133, 132, 136, 142, 134, 139, 138, 137, 138, 132, 140, 144, 132, 135, 142, 141, 145, 137, 144, 135, 146, 145, 135, 141, 138, 136, 141, 136, 138, 133, 133, 134, 141, 143, 141, 131, 134, 137, 139, 141, 148, 141, 139, 138, 141, 143, 137, 143, 134, 137, 139, 143, 146, 141, 143, 141, 143, 141, 138, 147, 137, 143, 130, 140, 130, 146, 142, 139, 136, 143, 147, 133, 137, 137, 135, 139, 145, 139, 142, 141, 140, 138, 129, 138, 143, 143, 134, 141, 148, 136, 142, 135, 137, 132, 140, 139, 142, 147, 136, 139, 144, 148, 139, 132, 135, 148, 146, 135, 143, 139, 134, 145, 140, 138, 142, 143, 142, 140, 140, 147, 141, 135, 133, 137, 143, 138, 150, 137, 141, 141, 136, 145, 135, 136, 138, 145, 133, 142, 143, 135, 141, 136, 133, 135, 136, 140, 140, 141, 135, 132, 144, 134, 141, 138, 145, 137, 140, 144, 133, 135, 142, 140, 137, 145, 136, 140, 140, 144, 134, 136, 132, 134, 139, 145, 133, 138, 139, 139, 136, 139, 132, 137, 135, 141, 136, 145, 144, 140, 144, 133, 139, 144, 137, 136, 137, 138, 137, 138, 134, 140, 141, 137, 131, 138, 146, 144, 141, 138, 135, 142, 136, 135, 145, 134, 137, 139, 139, 141, 143, 139, 138, 142, 139, 139, 144, 140, 147, 141, 135, 140, 135, 138, 143, 136, 138, 145, 137, 135, 136, 141, 135, 134, 137, 139, 132, 133, 143, 135, 142, 136, 136, 137, 142, 134, 141, 138, 144, 140, 132, 137, 136, 145, 135, 136, 148, 148, 138, 142, 136, 134, 141, 143, 143, 140, 136, 139, 143, 145, 136, 132, 131, 145, 139, 144, 148, 137, 142, 139, 143, 136, 134, 141, 137, 140, 150, 138, 134, 146, 136, 133, 141, 134, 132, 140, 128, 136, 140, 135, 127, 133, 139, 134, 141, 145, 144, 141, 146, 119, 139, 138, 135, 141, 146, 132, 135, 143, 140, 135, 147, 139, 144, 145, 130, 139, 142, 148, 136, 137, 143, 139, 136, 133, 140, 139, 133, 142, 137, 148, 138, 143, 145, 130, 142, 142, 137, 137, 133, 139, 143, 141, 151, 136, 133, 135, 135, 136, 137, 136, 138, 142, 135, 138, 136, 139, 140, 140, 149, 141, 140, 131, 148, 137, 140, 133, 142, 140, 134, 149, 137, 139, 138, 141, 140, 129, 136, 138, 138, 136, 148, 132, 137, 143, 137, 136, 140, 141, 144, 135, 133, 141, 135, 143, 139, 141, 142, 135, 133, 137, 136, 142, 141, 141, 138, 140, 141, 135, 132, 138, 137, 138, 143, 142, 143, 115, 137, 138, 137, 131, 139, 137, 138, 134, 142, 134, 135, 138, 136, 148, 138, 148, 141, 141, 137, 138, 152, 136, 142, 135, 138, 140, 127, 139, 141, 144, 147, 140, 146, 133, 142, 134, 140, 140, 141, 139, 140, 146, 140, 138, 141, 138, 140, 136, 149, 133, 150, 142, 136, 141, 141, 140, 137, 131, 145, 131, 143, 145, 140, 138, 140, 135, 137, 144, 144, 135, 139, 133, 141, 140, 134, 137, 140, 141, 132, 130, 138, 137, 141, 139, 140, 142, 144, 133, 146, 137, 135, 140, 140, 143, 137, 141, 139, 136, 144, 144, 142, 133, 137, 141, 138, 143, 141, 135, 137, 142, 141, 140, 140, 139, 139, 135, 144, 144, 139, 140, 140, 137, 140, 140, 137, 145, 137, 133, 132, 136, 134, 144, 136, 132, 137, 131, 149, 139, 142, 142, 137, 143, 132, 136, 144, 138, 133, 138, 132, 133, 135, 137, 132, 132, 135, 138, 141, 142, 133, 137, 138, 138, 142, 129, 137, 137, 136, 140, 143, 145, 137, 144, 136, 142, 141, 140, 138, 138, 143, 135, 141, 141, 136, 138, 147, 138, 133, 135, 140, 140, 136, 138, 144, 129, 130, 132, 134, 140, 130, 140, 156, 132, 143, 142, 144, 141, 129, 135, 147, 131, 150, 136, 134, 132, 140, 138, 144, 141, 142, 143, 126, 132, 140, 142, 123, 140, 130, 140, 138, 143, 129, 137, 133, 140, 142, 136, 133, 141, 132, 148, 129, 143, 142, 144, 138, 143, 142, 134, 140, 144, 134, 133, 136, 135, 137, 133, 132, 132, 144, 142, 144, 135, 145, 145, 137, 143, 149, 136, 138, 137, 127, 143, 138, 130, 141, 139, 128, 142, 149, 146, 125, 133, 139, 140, 127, 140, 139, 133, 147, 140, 138, 147, 130, 138, 141, 143, 140, 137, 138, 155, 138, 136, 145, 149, 126, 141, 143, 144, 134, 138, 129, 145, 138, 131, 140, 139, 135, 136, 118, 138, 145, 132, 135, 130, 136, 137, 135, 142, 138, 137, 134, 135, 138, 150, 145, 139, 140, 139, 142, 143, 127, 140, 136, 136, 129, 132, 133, 152, 135, 136, 145, 136, 148, 146, 138, 138, 141, 141, 125, 141, 143, 139, 142, 129, 135, 125, 136, 140, 142, 138, 138, 136, 146, 149, 126, 140, 140, 136, 128, 144, 140, 138, 129, 131, 137, 140, 141, 141, 139, 141, 133, 137, 145, 139, 127, 140, 133, 136, 153, 133, 138, 136, 147, 134, 140, 135, 145, 146, 141, 135, 129, 147, 141, 133, 130, 134, 137, 139, 138, 130, 155, 152, 128, 139, 144, 127, 137, 140, 128, 137, 134, 136, 140, 138, 143, 134, 135, 138, 142, 144, 128, 139, 135, 129, 141, 146, 135, 131, 132, 133, 142, 141, 137, 132, 143, 144, 148, 140, 144, 163, 132, 153, 136, 136, 137, 128, 160, 138, 145, 132, 138, 132, 145, 140, 129, 139, 129, 151, 132, 137, 139, 148, 132, 137, 139, 138, 142, 148, 123, 142, 139, 141, 135, 140, 143, 138, 132, 148, 128, 142, 136, 136, 150, 136, 147, 141, 139, 139, 133, 142, 133, 137, 131, 140, 145, 144, 138, 137, 141, 135, 146, 138, 159, 137, 144, 145, 137, 138, 130, 142, 140, 144, 131, 142, 139, 146, 131, 146, 130, 136, 142, 143, 139, 135, 132, 141, 138, 140, 141, 125, 139, 143, 134, 140, 131, 142, 140, 126, 139, 124, 133, 140, 135, 145, 138, 145, 140, 127, 129, 134, 136, 146, 135, 133, 139, 136, 148, 128, 146, 136, 147, 139, 144, 134, 139, 130, 139, 139, 143, 132, 139, 131, 137, 136, 135, 128, 151, 151, 142, 141, 140, 147, 132, 136, 136, 136, 136, 140, 138, 133, 135, 127, 146, 142, 142, 138, 142, 141, 136, 137, 137, 143, 137, 141, 140, 140, 135, 145, 143, 136, 128, 141, 138, 136, 141, 139, 138, 142, 137, 140, 147, 141, 140, 130, 142, 136, 139, 134, 146, 143, 125, 134, 147, 141, 129, 136, 141, 142, 138, 137, 142, 150, 141, 142, 136, 138, 134, 145, 141, 135, 148, 154, 138, 144, 130, 147, 147, 130, 146, 139, 143, 140, 140, 155, 143, 148, 150, 133, 132, 139, 141, 146, 146, 142, 133, 144, 130, 142, 135, 137, 136, 128, 142, 145, 140, 134, 127, 133, 136, 150, 136, 146, 138, 139, 141, 146, 136, 144, 130, 141, 146, 131, 130, 143, 135, 137, 135, 137, 138, 135, 139, 138, 137, 133, 133, 131, 136, 137, 140, 136, 138, 146, 143, 141, 135, 127, 132, 141, 130, 137, 143, 145, 148, 146, 141, 138, 150, 141, 144, 133, 144, 134, 132, 138, 135, 144, 152, 136, 133, 139, 136, 137, 142, 131, 135, 142, 141, 146, 145, 146, 142, 132, 134, 143, 130, 138, 133, 139, 137, 144, 138, 145, 143, 145, 140, 132, 136, 141, 131, 142, 140, 141, 140, 140, 133, 139, 137, 144, 144, 137, 129, 135, 142, 136, 139, 133, 140, 141, 135, 137, 145, 142, 144, 137, 138, 134, 137, 138, 142, 144, 134, 148, 141, 139, 150, 137, 133, 132, 139, 131, 138, 139, 142, 146, 145, 127, 134, 135, 139, 134, 140, 140, 136, 133, 139, 140, 134, 147, 132, 142, 138, 133, 142, 136, 150, 141, 139, 136, 138, 136, 138, 135, 133, 134, 139, 137, 140, 142, 136, 142, 132, 135, 140, 131, 141, 142, 140, 140, 142, 153, 142, 136, 141, 138, 141, 137, 135, 135, 143, 141, 143, 147, 133, 139, 139, 143, 133, 137, 131, 139, 137, 139, 132, 145, 132, 141, 135, 138, 141, 134, 143, 152, 132, 138, 141, 142, 144, 151, 134, 142, 132, 139, 135, 144, 133, 135, 136, 135, 134, 144, 136, 135, 133, 139, 139, 137, 140, 140, 133, 136, 139, 147, 136, 132, 132, 139, 148, 137, 143, 133, 134, 147, 138, 144, 136, 138, 137, 131, 138, 138, 136, 145, 135, 140, 143, 131, 142, 141, 133, 156, 148, 138, 142, 140, 124, 144, 128, 136, 137, 139, 145, 140, 144, 133, 144, 135, 138, 135, 132, 153, 126, 141, 130, 133, 138, 140, 146, 139, 143, 136, 140, 135, 136, 138, 142, 142, 145, 139, 128, 136, 144, 140, 138, 139, 138, 142, 129, 142, 137, 141, 135, 141, 141, 129, 130, 138, 144, 133, 138, 138, 143, 136, 136, 147, 134, 132, 138, 125, 139, 143, 143, 135, 146, 147, 132, 133, 137, 141, 142, 135, 132, 135, 134, 141, 138, 135, 139, 143, 146, 141, 140, 130, 141, 141, 145, 132, 142, 145, 136, 135, 140, 134, 134, 141, 135, 137, 139, 144, 135, 142, 141, 139, 146, 137, 140, 133, 143, 140, 139, 134, 132, 136, 133, 135, 141, 139, 136, 137, 142, 132, 148, 141, 132, 144, 144, 141, 141, 130, 138, 139, 137, 136, 136, 137, 147, 134, 132, 127, 141, 141, 138, 134, 141, 143, 142, 133, 146, 144, 133, 144, 144, 143, 134, 141, 146, 142, 137, 140, 143, 140, 142, 138, 132, 137, 128, 135, 139, 143, 139, 141, 149, 144, 136, 142, 142, 138, 140, 142, 144, 142, 136, 145, 135, 133, 137, 141, 141, 141, 134, 142, 133, 140, 141, 132, 138, 143, 136, 136, 137, 139, 140, 144, 138, 143, 135, 139, 145, 138, 144, 146, 140, 142, 142, 133, 145, 136, 137, 138, 142, 132, 145, 140, 133, 141, 146, 131, 133, 137, 139, 141, 141, 140, 141, 142, 142, 134, 138, 140, 139, 140, 135, 143, 136, 139, 150, 142, 137, 136, 151, 149, 143, 142, 137, 138, 143, 136, 147, 139, 131, 130, 145, 139, 139, 145, 139, 140, 139, 145, 134, 138, 133, 135, 131, 136, 131, 135, 134, 146, 137, 145, 148, 133, 139, 140, 131, 132, 129, 133, 141, 140, 145, 139, 141, 117, 137, 131, 139, 133, 132, 140, 139, 152, 135, 149, 132, 151, 140, 135, 138, 145, 139, 138, 139, 150, 144, 146, 144, 128, 139, 139, 130, 130, 135, 144, 134, 139, 144, 136, 137, 139, 138, 135, 141, 143, 137, 139, 129, 140, 151, 141, 143, 135, 133, 138, 130, 137, 132, 138, 137, 135, 141, 141, 143, 140, 144, 130, 147, 134, 129, 152, 138, 142, 139, 137, 135, 143, 147, 132, 148, 128, 141, 143, 142, 132, 143, 148, 135, 134, 137, 137, 135, 144, 133, 134, 144, 133, 143, 137, 143, 130, 137, 129, 141, 124, 147, 136, 150, 128, 135, 143, 127, 152, 133, 140, 150, 137, 153, 137, 146, 135, 135, 139, 141, 129, 141, 137, 143, 135, 142, 137, 139, 139, 149, 137, 131, 138, 144, 140, 152, 152, 143, 143, 135, 138, 142, 133, 130, 140, 135, 136, 139, 143, 141, 128, 138, 136, 137, 143, 136, 136, 139, 139, 136, 146, 133, 140, 132, 138, 129, 142, 145, 142, 135, 132, 140, 140, 141, 136, 132, 142, 137, 138, 141, 143, 154, 131, 145, 131, 139, 141, 131, 141, 139, 135, 139, 148, 139, 150, 138, 145, 139, 144, 145, 135, 145, 138, 138, 130, 146, 146, 137, 138, 132, 140, 144, 130, 137, 142, 141, 140, 140, 147, 142, 140, 142, 132, 140, 144, 133, 140, 147, 133, 137, 144, 136, 152, 141, 125, 148, 144, 135, 147, 140, 135, 150, 138, 143, 140, 134, 146, 139, 140, 146, 146, 142, 148, 136, 147, 134, 146, 149, 138, 133, 147, 144, 151, 131, 147, 149, 143, 134, 136, 141, 147, 144, 138, 132, 133, 129, 136, 142, 137, 141, 135, 136, 133, 154, 152, 147, 136, 136, 130, 149, 130, 136, 133, 130, 136, 146, 137, 131, 143, 136, 133, 145, 145, 145, 131, 137, 141, 140, 135, 133, 127, 138, 149, 134, 132, 139, 140, 140, 142, 138, 144, 140, 140, 149, 135, 134, 145, 127, 131, 144, 143, 129, 136, 138, 140, 131, 133, 140, 144, 141, 144, 138, 149, 137, 142, 133, 143, 135, 140, 149, 140, 141, 147, 130, 140, 141, 143, 137, 140, 139, 134, 145, 141, 132, 137, 129, 145, 145, 142, 150, 140, 153, 136, 139, 141, 149, 132, 133, 140, 143, 134, 137, 135, 129, 139, 146, 145, 148, 137, 134, 139, 145, 135, 134, 145, 141, 137, 138, 138, 144, 147, 148, 134, 136, 135, 137, 145, 133, 137, 144, 136, 142, 135, 138, 142, 142, 147, 134, 143, 144, 142, 144, 153, 134, 135, 129, 137, 151, 132, 139, 135, 141, 134, 141, 145, 145, 137, 144, 150, 131, 137, 143, 139, 123, 132, 135, 142, 136, 145, 135, 145, 137, 137, 140, 143, 131, 133, 138, 139, 141, 145, 129, 133, 138, 126, 132, 135, 146, 136, 136, 133, 139, 143, 145, 139, 140, 137, 137, 140, 147, 142, 137, 129, 138, 134, 143, 142, 142, 136, 130, 133, 136, 138, 132, 135, 146, 143, 134, 135, 137, 134, 145, 146, 130, 136, 135, 146, 129, 138, 138, 139, 141, 145, 140, 141, 133, 149, 149, 144, 143, 133, 154, 141, 125, 140, 131, 143, 140, 140, 137, 145, 149, 142, 137, 145, 133, 132, 140, 141, 136, 139, 128, 136, 138, 141, 141, 140, 136, 147, 142, 138, 144, 144, 135, 133, 149, 138, 138, 145, 147, 133, 139, 139, 147, 136, 140, 142, 140, 129, 140, 145, 134, 144, 144, 139, 146, 147, 135, 143, 142, 141, 138, 137, 139, 137, 142, 135, 139, 139, 138, 140, 141, 141, 135, 142, 144, 134, 134, 141, 139, 139, 129, 139, 139, 135, 134, 139, 140, 150, 135, 131, 144, 137, 135, 134, 138, 136, 145, 135, 139, 133, 133, 137, 134, 133, 137, 142, 142, 141, 129, 139, 132, 135, 140, 135, 138, 129, 140, 133, 147, 142, 136, 141, 139, 146, 138, 139, 143, 131, 140, 140, 142, 137, 142, 136, 126, 135, 137, 130, 136, 133, 135, 144, 141, 144, 135, 142, 138, 124, 140, 133, 129, 136, 134, 137, 140, 148, 131, 136, 137, 132, 144, 152, 143, 139, 139, 140, 139, 129, 135, 138, 148, 144, 140, 136, 140, 141, 148, 137, 141, 139, 139, 130, 137, 136, 132, 133, 138, 139, 133, 135, 145, 138, 139, 139, 133, 130, 148, 135, 135, 142, 135, 137, 134, 141, 138, 151, 139, 138, 134, 136, 139, 145, 141, 140, 140, 145, 134, 137, 142, 136, 138, 142, 144, 132, 132, 139, 139, 136, 137, 144, 132, 134, 139, 136, 137, 135, 141, 142, 141, 146, 145, 139, 138, 154, 139, 132, 127, 133, 136, 134, 132, 134, 134, 138, 133, 148, 148, 141, 138, 147, 137, 138, 136, 133, 133, 148, 125, 139, 138, 141, 136, 144, 145, 143, 142, 129, 131, 146, 138, 139, 134, 137, 132, 142, 132, 143, 144, 142, 128, 143, 137, 141, 141, 135, 143, 140, 140, 139, 130, 144, 150, 129, 140, 143, 145, 137, 142, 129, 132, 132, 141, 146, 142, 129, 139, 129, 139, 140, 132, 142, 141, 143, 137, 132, 137, 132, 136, 135, 149, 139, 147, 135, 137, 141, 137, 142, 142, 142, 138, 138, 144, 139, 129, 134, 141, 127, 130, 146, 139, 134, 137, 144, 134, 137, 142, 140, 150, 143, 134, 141, 137, 146, 139, 145, 145, 140, 134, 137, 138, 143, 141, 150, 156, 140, 139, 131, 137, 140, 138, 142, 144, 140, 139, 141, 133, 149, 146, 134, 148, 144, 151, 147, 126, 139, 136, 137, 144, 152, 136, 147, 134, 140, 136, 133, 145, 144, 135, 133, 132, 154, 149, 130, 150, 147, 134, 130, 143, 142, 136, 135, 144, 147, 137, 140, 145, 132, 138, 130, 137, 129, 145, 149, 137, 140, 142, 145, 133, 140, 141, 134, 134, 139, 142, 136, 137, 140, 137, 140, 140, 149, 134, 142, 135, 146, 140, 139, 134, 135, 149, 135, 139, 142, 138, 144, 138, 145, 139, 139, 136, 133, 129, 135, 140, 150, 145, 129, 137, 141, 144, 137, 132, 130, 146, 148, 141, 145, 133, 141, 148, 146, 140, 131, 136, 138, 141, 131, 133, 139, 140, 146, 135, 135, 144, 139, 147, 139, 145, 139, 147, 140, 146, 145, 137, 140, 130, 146, 139, 149, 135, 149, 130, 144, 141, 142, 129, 144, 134, 133, 134, 137, 133, 126, 136, 132, 140, 144, 140, 142, 139, 131, 139, 144, 139, 137, 136, 131, 138, 148, 142, 140, 138, 143, 130, 145, 142, 142, 149, 140, 136, 138, 130, 146, 134, 145, 149, 146, 139, 129, 140, 144, 143, 141, 130, 135, 126, 133, 137, 144, 133, 145, 133, 133, 140, 143, 134, 135, 133, 149, 139, 136, 139, 133, 132, 139, 137, 142, 144, 129, 141, 128, 143, 141, 141, 139, 139, 151, 132, 136, 135, 146, 136, 136, 137, 138, 137, 141, 138, 143, 132, 139, 142, 137, 133, 130, 151, 143, 147, 127, 139, 138, 140, 134, 133, 136, 140, 132, 141, 143, 135, 141, 143, 143, 142, 133, 144, 130, 141, 141, 133, 141, 147, 132, 138, 141, 147, 133, 135, 139, 131, 137, 141, 141, 131, 146, 138, 135, 137, 136, 139, 150, 143, 132, 131, 135, 145, 138, 147, 137, 128, 130, 136, 137, 139, 148, 134, 137, 132, 142, 134, 153, 131, 131, 145, 133, 136, 144, 133, 150, 136, 133, 134, 147, 142, 148, 143, 128, 130, 134, 144, 137, 139, 132, 141, 126, 139, 148, 138, 147, 136, 147, 142, 144, 131, 140, 136, 135, 144, 141, 150, 132, 146, 136, 122, 140, 134, 137, 138, 143, 141, 141, 140, 140, 133, 134, 134, 144, 135, 138, 136, 142, 142, 139, 134, 141, 139, 134, 148, 145, 139, 142, 138, 141, 134, 137, 143, 152, 142, 137, 136, 133, 131, 139, 147, 135, 137, 137, 145, 137, 126, 131, 135, 141, 138, 139, 138, 142, 143, 151, 148, 145, 140, 130, 137, 138, 140, 131, 143, 141, 138, 134, 141, 136, 136, 135, 141, 135, 143, 138, 136, 137, 141, 132, 145, 141, 137, 131, 148, 142, 141, 138, 131, 136, 142, 140, 145, 138, 138, 130, 141, 137, 130, 135, 136, 136, 138, 155, 138, 135, 133, 139, 138, 148, 144, 136, 149, 150, 138, 137, 133, 137, 137, 134, 135, 138, 129, 134, 149, 139, 137, 138, 146, 141, 151, 149, 149, 144, 144, 141, 137, 135, 134, 142, 137, 136, 129, 131, 134, 133, 136, 136, 135, 140, 144, 132, 130, 145, 141, 136, 136, 146, 142, 136, 135, 142, 139, 149, 157, 142, 139, 149, 142, 132, 142, 145, 129, 135, 143, 140, 140, 139, 143, 150, 135, 137, 138, 139, 133, 141, 143, 142, 131, 156, 140, 140, 143, 137, 135, 157, 144, 146, 134, 136, 148, 138, 140, 142, 129, 142, 127, 141, 131, 137, 131, 140, 139, 144, 135, 141, 137, 139, 136, 138, 142, 142, 137, 137, 136, 144, 138, 145, 140, 136, 138, 139, 135, 142, 134, 134, 146, 139, 153, 140, 139, 136, 139, 138, 140, 130, 142, 134, 138, 136, 132, 134, 140, 132, 138, 141, 142, 140, 136, 134, 130, 145, 133, 136, 142, 144, 138, 141, 139, 144, 139, 138, 140, 140, 134, 138, 136, 132, 145, 134, 140, 132, 140, 128, 142, 140, 143, 137, 142, 140, 143, 141, 143, 141, 138, 139, 138, 147, 145, 147, 141, 127, 146, 144, 139, 141, 124, 135, 147, 142, 135, 137, 135, 136, 140, 138, 138, 132, 135, 139, 145, 142, 141, 140, 142, 136, 137, 151, 139, 145, 139, 136, 143, 137, 144, 134, 135, 135, 140, 145, 130, 140, 137, 141, 138, 146, 140, 132, 140, 141, 139, 139, 143, 134, 141, 142, 141, 133, 144, 135, 142, 138, 144, 144, 144, 145, 135, 135, 136, 138, 141, 141, 134, 138, 140, 139, 135, 134, 143, 135, 132, 135, 149, 146, 139, 143, 139, 137, 140, 140, 143, 134, 137, 136, 141, 138, 154, 148, 142, 140, 139, 137, 136, 140, 140, 130, 125, 148, 141, 138, 139, 144, 139, 145, 135, 140, 134, 134, 136, 139, 142, 137, 138, 136, 140, 133, 131, 137, 138, 135, 135, 139, 136, 134, 128, 139, 136, 136, 143, 146, 140, 137, 144, 137, 140, 136, 138, 149, 137, 148, 135, 137, 138, 143, 144, 139, 136, 138, 142, 132, 138, 144, 142, 135, 133, 138, 140, 145, 138, 135, 134, 143, 144, 136, 134, 139, 138, 141, 136, 134, 137, 138, 133, 132, 140, 140, 141, 135, 141, 143, 142, 136, 134, 132, 140, 135, 139, 144, 143, 138, 139, 137, 140, 134, 140, 140, 142, 140, 141, 135, 139, 133, 139, 141, 134, 140, 138, 140, 129, 140, 150, 153, 141, 133, 141, 144, 145, 135, 141, 133, 142, 139, 139, 129, 144, 146, 138, 137, 139, 145, 135, 126, 138, 136, 139, 135, 143, 147, 139, 132, 137, 138, 140, 131, 140, 135, 139, 142, 145, 141, 136, 140, 139, 138, 142, 137, 140, 139, 137, 142, 139, 135, 135, 142, 129, 139, 138, 138, 143, 139, 139, 144, 138, 141, 135, 137, 142, 139, 135, 135, 141, 139, 140, 137, 145, 140, 137, 149, 140, 133, 143, 135, 138, 147, 141, 136, 139, 133, 137, 139, 138, 137, 139, 137, 137, 146, 138, 137, 137, 137, 142, 138, 141, 130, 139, 136, 134, 139, 132, 137, 139, 132, 135, 143, 132, 141, 147, 151, 141, 144, 141, 141, 138, 139, 149, 144, 139, 137, 130, 136, 141, 145, 141, 149, 136, 139, 142, 142, 130, 131, 137, 151, 144, 133, 142, 141, 137, 140, 136, 140, 134, 141, 135, 141, 139, 136, 137, 136, 143, 131, 143, 139, 144, 136, 141, 142, 139, 141, 134, 140, 136, 140, 147, 139, 138, 144, 142, 138, 129, 142, 137, 138, 143, 140, 138, 149, 141, 149, 140, 138, 147, 133, 138, 138, 146, 141, 135, 142, 140, 147, 133, 151, 143, 144, 142, 132, 139, 139, 147, 143, 132, 140, 143, 138, 138, 140, 148, 147, 141, 145, 139, 147, 134, 138, 151, 145, 131, 137, 139, 144, 138, 136, 147, 132, 134, 134, 141, 142, 134, 142, 151, 137, 142, 135, 125, 137, 143, 141, 132, 146, 141, 141, 135, 155, 140, 135, 133, 133, 137, 139, 141, 139, 149, 146, 134, 135, 134, 141, 132, 134, 136, 145, 135, 134, 130, 127, 135, 132, 142, 140, 140, 131, 143, 155, 150, 141, 125, 133, 137, 139, 140, 143, 130, 147, 133, 144, 135, 135, 136, 143, 136, 143, 142, 144, 135, 144, 140, 134, 134, 137, 141, 133, 144, 130, 142, 142, 142, 143, 144, 140, 140, 139, 134, 135, 133, 142, 137, 135, 149, 132, 131, 137, 148, 144, 143, 138, 138, 146, 133, 136, 135, 141, 141, 145, 143, 144, 139, 142, 128, 139, 139, 135, 139, 137, 138, 132, 140, 145, 132, 153, 139, 141, 149, 139, 136, 151, 148, 132, 138, 141, 148, 145, 145, 137, 136, 142, 141, 140, 147, 135, 135, 144, 145, 142, 133, 136, 131, 128, 147, 142, 135, 147, 141, 140, 141, 142, 146, 142, 141, 149, 139, 133, 137, 141, 135, 140, 135, 138, 138, 140, 138, 140, 144, 143, 135, 136, 140, 132, 142, 146, 147, 144, 141, 147, 142, 134, 146, 136, 140, 139, 134, 139, 149, 142, 142, 132, 138, 136, 142, 137, 138, 142, 152, 139, 135, 149, 147, 137, 134, 137, 148, 139, 146, 131, 137, 141, 141, 143, 138, 150, 139, 138, 146, 137, 143, 141, 134, 139, 135, 140, 130, 132, 143, 135, 137, 129, 137, 149, 139, 143, 140, 143, 132, 137, 141, 135, 144, 134, 133, 136, 132, 137, 144, 145, 142, 140, 139, 135, 133, 139, 137, 138, 144, 136, 143, 144, 139, 134, 132, 146, 142, 139, 143, 133, 145, 134, 135, 133, 155, 130, 134, 137, 137, 133, 132, 136, 137, 141, 135, 139, 141, 139, 143, 140, 144, 144, 140, 130, 136, 130, 135, 132, 130, 133, 148, 127, 127, 142, 139, 140, 152, 137, 133, 134, 148, 137, 137, 143, 142, 143, 139, 133, 144, 133, 144, 133, 137, 136, 138, 143, 143, 133, 142, 121, 144, 139, 138, 139, 136, 134, 141, 138, 137, 131, 136, 133, 136, 138, 128, 141, 134, 140, 136, 144, 143, 134, 141, 137, 133, 139, 141, 137, 137, 137, 136, 137, 148, 138, 155, 134, 139, 136, 137, 132, 141, 140, 139, 139, 129, 142, 141, 132, 134, 148, 132, 144, 138, 135, 137, 135, 139, 140, 143, 140, 137, 143, 139, 139, 143, 133, 133, 147, 136, 141, 136, 133, 139, 143, 140, 130, 137, 141, 138, 137, 142, 134, 141, 130, 140, 142, 145, 137, 142, 133, 135, 139, 137, 144, 145, 135, 141, 141, 140, 145, 151, 133, 141, 146, 143, 138, 142, 132, 141, 138, 132, 136, 145, 141, 142, 138, 139, 131, 135, 144, 146, 141, 145, 136, 147, 145, 135, 144, 142, 138, 137, 132, 140, 137, 139, 138, 136, 146, 134, 143, 141, 138, 143, 140, 135, 141, 142, 141, 138, 141, 136, 133, 136, 144, 139, 142, 139, 129, 142, 143, 144, 143, 143, 139, 142, 142, 137, 135, 142, 139, 142, 134, 143, 137, 141, 137, 143, 141, 140, 140, 144, 141, 144, 139, 140, 138, 145, 142, 137, 142, 133, 136, 138, 137, 132, 145, 135, 140, 137, 143, 141, 133, 140, 141, 130, 140, 145, 134, 140, 142, 140, 143, 138, 135, 140, 142, 138, 137, 143, 131, 141, 137, 138, 136, 128, 143, 135, 143, 133, 141, 143, 130, 139, 134, 131, 144, 142, 139, 137, 144, 140, 147, 131, 138, 139, 136, 145, 143, 138, 137, 143, 140, 143, 139, 140, 135, 131, 138, 134, 132, 140, 134, 132, 139, 138, 138, 131, 137, 139, 139, 133, 137, 135, 140, 134, 139, 138, 128, 151, 137, 137, 141, 140, 133, 142, 140, 141, 139, 140, 137, 143, 142, 134, 139, 138, 139, 139, 137, 138, 140, 139, 136, 139, 138, 145, 137, 138, 145, 139, 141, 131, 137, 132, 141, 143, 144, 143, 140, 140, 139, 137, 140, 138, 137, 142, 135, 142, 135, 135, 138, 137, 145, 139, 140, 137, 140, 137, 139, 135, 136, 144, 139, 141, 138, 139, 142, 136, 132, 145, 131, 136, 145, 130, 137, 139, 132, 131, 141, 135, 135, 138, 142, 140, 140, 139, 140, 139, 147, 141, 138, 143, 135, 148, 142, 137, 141, 137, 143, 136, 146, 137, 139, 142, 139, 138, 139, 135, 133, 133, 141, 140, 139, 139, 137, 134, 132, 135, 136, 144, 149, 141, 138, 138, 143, 137, 142, 135, 139, 138, 141, 139, 140, 140, 138, 138, 138, 138, 131, 136, 138, 141, 140, 140, 139, 143, 135, 132, 138, 137, 138, 146, 136, 139, 151, 135, 138, 143, 145, 134, 139, 134, 140, 139, 136, 135, 138, 139, 144, 138, 143, 135, 144, 140, 136, 138, 140, 132, 143, 144, 143, 144, 139, 140, 138, 138, 140, 136, 140, 139, 141, 141, 138, 140, 137, 140, 138, 137, 144, 136, 142, 134, 138, 145, 139, 140, 143, 149, 142, 143, 138, 144, 140, 137, 139, 137, 140, 138, 145, 141, 138, 137, 140, 133, 141, 138, 144, 138, 137, 139, 138, 139, 141, 137, 130, 138, 140, 144, 140, 135, 145, 136, 141, 139, 138, 141, 131, 142, 138, 140, 141, 134, 138, 138, 128, 147, 139, 136, 128, 137, 143, 131, 142, 138, 139, 139, 138, 140, 140, 130, 134, 136, 135, 137, 129, 141, 139, 141, 140, 138, 141, 140, 135, 139, 136, 142, 140, 138, 140, 140, 138, 138, 141, 134, 142, 141, 139, 146, 144, 138, 137, 145, 138, 141, 141, 142, 142, 138, 133, 143, 133, 135, 141, 135, 140, 142, 145, 141, 136, 142, 141, 138, 135, 142, 141, 137, 140, 138, 145, 135, 140, 136, 140, 142, 139, 136, 139, 136, 136, 139, 138, 136, 136, 137, 133, 142, 139, 138, 134, 145, 139, 138, 142, 142, 140, 137, 138, 138, 140, 137, 144, 143, 145, 137, 138, 143, 141, 128, 133, 141, 143, 137, 142, 129, 142, 137, 150, 140, 139, 145, 142, 119, 143, 138, 143, 132, 136, 139, 140, 133, 135, 143, 145, 131, 146, 138, 141, 135, 144, 132, 132, 145, 134, 139, 151, 137, 140, 139, 151, 142, 134, 126, 136, 150, 146, 134, 141, 146, 137, 136, 136, 139, 141, 142, 141, 137, 136, 142, 137, 134, 144, 129, 138, 136, 145, 134, 141, 131, 135, 141, 151, 139, 132, 153, 139, 146, 138, 124, 144, 129, 145, 137, 137, 134, 139, 138, 132, 148, 137, 144, 144, 134, 141, 145, 148, 140, 142, 142, 135, 142, 131, 154, 133, 125, 145, 145, 135, 134, 133, 130, 142, 133, 141, 143, 123, 138, 133, 145, 142, 150, 142, 140, 138, 138, 134, 133, 143, 135, 155, 145, 137, 135, 140, 138, 148, 134, 140, 137, 145, 136, 139, 143, 129, 140, 135, 149, 134, 132, 136, 136, 134, 148, 141, 140, 128, 142, 137, 136, 144, 136, 134, 124, 143, 144, 137, 144, 145, 136, 131, 137, 138, 142, 141, 141, 145, 135, 151, 140, 147, 142, 137, 152, 148, 149, 142, 139, 132, 146, 133, 138, 134, 129, 131, 134, 143, 136, 143, 147, 147, 140, 146, 141, 147, 139, 134, 135, 139, 135, 144, 137, 145, 136, 135, 125, 148, 146, 147, 134, 148, 127, 132, 138, 139, 139, 137, 134, 135, 145, 120, 141, 140, 123, 131, 136, 135, 138, 132, 139, 136, 144, 138, 139, 132, 141, 145, 136, 137, 134, 138, 124, 147, 137, 136, 136, 130, 131, 142, 134, 147, 135, 136, 139, 131, 136, 136, 145, 151, 132, 134, 137, 134, 144, 145, 158, 146, 144, 131, 133, 139, 144, 142, 131, 144, 140, 143, 140, 135, 138, 139, 135, 142, 148, 139, 135, 126, 141, 130, 135, 133, 138, 140, 137, 140, 136, 134, 142, 139, 150, 135, 144, 141, 141, 141, 139, 130, 132, 142, 140, 138, 140, 145, 136, 135, 142, 149, 134, 138, 140, 141, 143, 140, 140, 138, 136, 136, 133, 139, 131, 132, 139, 148, 137, 135, 134, 132, 142, 146, 143, 140, 136, 141, 142, 142, 138, 139, 145, 145, 141, 141, 144, 150, 140, 148, 148, 141, 132, 147, 138, 131, 145, 133, 142, 132, 141, 125, 143, 141, 129, 133, 147, 138, 134, 148, 140, 152, 128, 147, 142, 133, 142, 139, 136, 138, 124, 132, 139, 149, 137, 128, 143, 143, 142, 140, 141, 142, 139, 136, 131, 139, 147, 132, 139, 142, 144, 139, 122, 141, 130, 139, 133, 142, 148, 134, 143, 134, 122, 159, 127, 148, 143, 142, 136, 139, 153, 139, 129, 141, 141, 130, 134, 145, 136, 135, 146, 146, 161, 139, 139, 135, 146, 139, 149, 131, 141, 138, 138, 135, 136, 144, 136, 135, 139, 146, 137, 140, 141, 137, 136, 139, 133, 140, 130, 147, 142, 138, 131, 136, 134, 141, 140, 139, 144, 134, 138, 146, 149, 141, 134, 140, 136, 144, 139, 138, 131, 144, 139, 132, 140, 130, 136, 142, 131, 136, 137, 139, 131, 139, 127, 132, 128, 131, 130, 139, 137, 133, 145, 139, 138, 143, 135, 142, 146, 132, 136, 141, 135, 133, 133, 138, 139, 142, 136, 137, 146, 145, 137, 135, 140, 141, 143, 136, 136, 142, 133, 145, 140, 140, 133, 143, 142, 140, 138, 140, 141, 140, 135, 139, 135, 133, 146, 141, 135, 138, 133, 138, 136, 137, 140, 139, 137, 130, 143, 142, 138, 140, 134, 138, 139, 142, 136, 135, 134, 145, 146, 130, 139, 145, 138, 145, 141, 133, 137, 132, 142, 135, 139, 142, 135, 135, 129, 140, 140, 143, 133, 142, 142, 137, 132, 134, 138, 136, 144, 144, 142, 141, 131, 146, 131, 139, 139, 141, 142, 136, 134, 137, 139, 139, 139, 135, 144, 137, 135, 138, 145, 136, 136, 136, 141, 134, 142, 141, 135, 144, 137, 134, 145, 141, 139, 143, 141, 144, 134, 134, 137, 142, 136, 140, 142, 135, 139, 144, 134, 137, 139, 136, 138, 139, 138, 141, 145, 140, 140, 138, 142, 137, 148, 135, 136, 138, 140, 141, 136, 141, 132, 148, 133, 141, 138, 144, 143, 142, 138, 138, 145, 141, 127, 135, 142, 139, 142, 137, 137, 139, 139, 138, 126, 140, 134, 140, 135, 136, 141, 140, 141, 133, 137, 135, 136, 140, 139, 135, 133, 142, 141, 142, 133, 139, 141, 139, 144, 138, 127, 134, 135, 143, 134, 138, 140, 135, 143, 139, 139, 138, 142, 140, 144, 145, 141, 137, 136, 144, 140, 138, 135, 137, 137, 133, 136, 140, 136, 138, 138, 137, 141, 138, 141, 146, 138, 141, 136, 137, 142, 134, 143, 137, 134, 141, 136, 129, 137, 137, 142, 140, 147, 143, 140, 136, 138, 134, 134, 142, 141, 138, 133, 136, 136, 132, 149, 139, 141, 144, 141, 141, 143, 133, 142, 143, 138, 138, 134, 138, 140, 142, 141, 141, 146, 139, 133, 142, 143, 140, 138, 131, 131, 140, 134, 130, 136, 140, 140, 139, 142, 138, 141, 144, 135, 144, 145, 141, 141, 143, 139, 142, 148, 141, 138, 136, 143, 140, 142, 139, 146, 136, 145, 143, 133, 140, 141, 138, 132, 144, 136, 141, 139, 133, 140, 144, 140, 134, 141, 136, 138, 138, 142, 139, 136, 133, 136, 141, 143, 152, 147, 140, 136, 142, 132, 139, 139, 136, 143, 141, 137, 141, 136, 133, 147, 139, 142, 138, 132, 137, 136, 136, 139, 147, 142, 140, 137, 142, 142, 140, 140, 135, 142, 142, 129, 144, 138, 138, 152, 140, 143, 139, 133, 139, 142, 136, 147, 139, 139, 141, 132, 142, 138, 137, 141, 135, 140, 143, 134, 148, 137, 137, 137, 144, 133, 132, 136, 136, 135, 130, 140, 137, 134, 147, 135, 143, 138, 138, 138, 143, 138, 137, 152, 138, 139, 142, 140, 141, 139, 130, 135, 138, 140, 135, 144, 138, 128, 138, 137, 137, 130, 139, 144, 142, 131, 142, 138, 137, 135, 139, 134, 131, 141, 142, 138, 133, 133, 138, 136, 135, 134, 137, 149, 139, 142, 135, 137, 135, 144, 136, 137, 137, 139, 139, 138, 140, 126, 140, 139, 136, 133, 137, 142, 129, 138, 138, 136, 138, 141, 134, 142, 140, 140, 143, 139, 141, 137, 137, 136, 137, 133, 143, 138, 138, 140, 144, 141, 139, 139, 142, 140, 139, 141, 132, 137, 142, 138, 141, 135, 141, 143, 139, 139, 135, 145, 139, 140, 142, 136, 140, 142, 139, 140, 134, 135, 141, 141, 141, 144, 139, 138, 138, 143, 140, 144, 138, 141, 143, 138, 138, 139, 143, 138, 138, 141, 142, 139, 140, 137, 142, 144, 135, 139, 135, 143, 138, 141, 141, 134, 139, 136, 139, 145, 140, 139, 141, 143, 137, 137, 143, 140, 136, 140, 141, 142, 142, 136, 136, 134, 138, 134, 141, 144, 141, 138, 141, 139, 141, 137, 140, 142, 152, 135, 137, 141, 140, 138, 140, 140, 135, 147, 141, 142, 142, 138, 143, 144, 140, 141, 137, 144, 139, 143, 137, 138, 139, 140, 140, 143, 139, 139, 134, 140, 142, 139, 142, 139, 139, 134, 141, 140, 141, 140, 140, 137, 138, 144, 144, 138, 145, 139, 141, 140, 140, 146, 142, 136, 137, 142, 141, 140, 136, 139, 141, 137, 141, 142, 137, 141, 135, 139, 138, 137, 138, 141, 142, 140, 136, 136, 143, 134, 135, 138, 138, 135, 140, 137, 138, 143, 142, 143, 139, 144, 142, 137, 136, 141, 140, 144, 137, 137, 143, 144, 139, 137, 137, 140, 137, 142, 142, 137, 138, 137, 141, 136, 140, 138, 135, 140, 139, 141, 136, 138, 139, 137, 138, 137, 139, 138, 137, 135, 139, 137, 139, 136, 134, 137, 142, 140, 141, 142, 136, 137, 136, 142, 139, 137, 138, 137, 137, 140, 140, 136, 134, 138, 143, 136, 138, 142, 139, 138, 138, 139, 143, 135, 144, 140, 136, 141, 140, 140, 143, 139, 139, 141, 134, 142, 143, 131, 140, 139, 139, 142, 141, 137, 140, 143, 138, 133, 139, 144, 138, 142, 139, 132, 138, 140, 135, 140, 138, 141, 140, 145, 143, 140, 141, 135, 137, 141, 140, 142, 136, 141, 137, 142, 140, 143, 136, 133, 135, 140, 138, 138, 139, 141, 140, 143, 141, 138, 137, 140, 144, 140, 141, 139, 138, 140, 137, 136, 134, 137, 140, 134, 144, 138, 139, 146, 142, 140, 138, 139, 144, 138, 139, 139, 138, 140, 142, 140, 141, 140, 140, 143, 138, 138, 139, 135, 141, 136, 138, 143, 145, 138, 139, 138, 137, 140, 136, 140, 145, 140, 138, 149, 135, 137, 136, 141, 135, 139, 138, 137, 137, 140, 137, 137, 141, 139, 140, 138, 136, 136, 135, 132, 137, 141, 139, 142, 143, 132, 143, 141, 143, 143, 137, 141, 143, 136, 141, 140, 138, 140, 141, 142, 134, 139, 133, 136, 138, 137, 139, 140, 143, 141, 135, 141, 134, 138, 139, 147, 142, 138, 137, 140, 141, 139, 140, 140, 142, 137, 140, 135, 142, 142, 139, 138, 141, 136, 135, 143, 138, 133, 141, 142, 139, 139, 137, 138, 141, 142, 143, 132, 141, 138, 138, 138, 134, 139, 140, 138, 136, 135, 140, 137, 138, 137, 142, 147, 135, 142, 135, 134, 139, 143, 142, 137, 140, 140, 141, 137, 142, 152, 147, 123, 139, 144, 147, 137, 138, 142, 152, 145, 143, 138, 146, 135, 141, 144, 140, 134, 141, 138, 139, 151, 148, 142, 137, 136, 143, 139, 138, 143, 140, 147, 143, 145, 141, 132, 135, 158, 131, 142, 145, 141, 146, 144, 140, 128, 135, 133, 134, 134, 133, 145, 143, 141, 141, 145, 138, 134, 137, 132, 137, 139, 137, 134, 130, 138, 137, 139, 144, 132, 131, 134, 135, 141, 149, 145, 145, 143, 136, 147, 142, 127, 143, 138, 139, 138, 129, 145, 145, 145, 138, 146, 144, 145, 135, 137, 145, 126, 137, 126, 138, 129, 136, 135, 139, 140, 137, 138, 132, 139, 142, 146, 137, 140, 133, 150, 132, 135, 138, 139, 144, 134, 142, 137, 143, 137, 145, 139, 131, 141, 138, 140, 139, 135, 137, 137, 131, 147, 143, 137, 132, 149, 140, 146, 152, 151, 146, 132, 131, 127, 140, 134, 140, 137, 141, 137, 140, 137, 144, 137, 142, 130, 134, 142, 130, 137, 151, 134, 139, 136, 139, 128, 137, 138, 140, 146, 144, 140, 138, 135, 140, 134, 138, 130, 134, 127, 137, 147, 127, 135, 146, 142, 133, 137, 136, 138, 136, 136, 138, 139, 151, 134, 131, 139, 145, 137, 134, 136, 146, 138, 133, 129, 146, 139, 132, 134, 138, 141, 127, 137, 134, 133, 143, 139, 130, 132, 146, 141, 135, 139, 123, 136, 135, 140, 144, 140, 151, 135, 139, 149, 140, 131, 139, 140, 138, 136, 138, 140, 136, 137, 145, 142, 140, 146, 131, 141, 131, 144, 138, 132, 134, 143, 139, 138, 155, 134, 134, 142, 135, 137, 145, 142, 149, 140, 136, 144, 136, 140, 136, 136, 132, 139, 137, 138, 133, 144, 132, 138, 132, 147, 136, 146, 147, 138, 142, 143, 138, 140, 147, 138, 146, 142, 129, 131, 147, 140, 140, 146, 126, 140, 139, 129, 140, 146, 137, 138, 128, 132, 140, 144, 137, 149, 134, 140, 135, 129, 134, 133, 135, 129, 132, 140, 136, 143, 136, 142, 135, 140, 148, 140, 148, 137, 136, 142, 137, 135, 134, 130, 142, 136, 132, 141, 141, 139, 141, 132, 142, 140, 144, 142, 137, 134, 135, 131, 139, 142, 141, 134, 138, 137, 136, 140, 135, 150, 131, 143, 133, 135, 138, 142, 136, 130, 141, 147, 143, 134, 132, 138, 136, 142, 136, 144, 127, 141, 133, 136, 136, 139, 145, 142, 138, 145, 143, 135, 137, 138, 141, 132, 135, 137, 138, 135, 139, 136, 134, 136, 132, 136, 141, 142, 139, 142, 138, 151, 150, 132, 137, 134, 141, 137, 141, 145, 139, 148, 141, 134, 141, 131, 144, 141, 143, 145, 145, 143, 145, 135, 132, 136, 141, 136, 141, 140, 143, 135, 137, 141, 136, 140, 134, 133, 137, 135, 142, 132, 148, 140, 147, 146, 152, 146, 136, 143, 137, 135, 137, 133, 145, 138, 136, 137, 139, 148, 149, 134, 138, 141, 132, 134, 134, 138, 142, 134, 139, 142, 137, 135, 148, 136, 138, 139, 129, 148, 135, 128, 129, 139, 141, 146, 138, 145, 143, 134, 136, 138, 151, 146, 131, 138, 133, 141, 141, 145, 142, 144, 139, 130, 138, 139, 146, 134, 133, 136, 142, 138, 143, 144, 136, 144, 138, 140, 157, 143, 145, 141, 135, 134, 141, 122, 135, 148, 141, 144, 139, 120, 135, 141, 136, 137, 139, 131, 141, 142, 140, 138, 134, 149, 143, 137, 124, 132, 148, 138, 138, 135, 143, 138, 139, 135, 142, 133, 141, 136, 131, 139, 135, 154, 135, 134, 141, 140, 146, 141, 143, 139, 140, 136, 143, 151, 136, 126, 135, 137, 145, 144, 142, 139, 142, 142, 135, 146, 134, 138, 146, 136, 147, 151, 142, 138, 142, 139, 136, 147, 135, 138, 133, 134, 136, 132, 146, 137, 140, 136, 146, 124, 145, 150, 145, 142, 148, 130, 145, 131, 142, 141, 142, 141, 141, 135, 139, 142, 134, 130, 138, 134, 136, 141, 125, 135, 147, 140, 141, 133, 149, 146, 139, 132, 137, 138, 146, 144, 139, 137, 130, 132, 133, 138, 130, 138, 136, 144, 145, 125, 126, 136, 137, 139, 154, 138, 143, 143, 138, 139, 130, 127, 129, 141, 145, 138, 140, 143, 138, 143, 138, 139, 143, 140, 135, 136, 141, 138, 142, 143, 138, 140, 127, 138, 138, 146, 139, 145, 133, 141, 141, 135, 138, 139, 140, 131, 140, 136, 144, 144, 141, 132, 140, 144, 134, 148, 138, 135, 136, 137, 146, 137, 141, 141, 150, 133, 125, 143, 140, 149, 131, 136, 148, 143, 141, 132, 131, 138, 140, 148, 137, 139, 149, 143, 142, 142, 133, 138, 135, 140, 135, 141, 136, 136, 138, 135, 141, 149, 144, 135, 133, 144, 142, 135, 145, 134, 136, 149, 139, 145, 147, 137, 142, 135, 148, 140, 141, 137, 135, 134, 142, 145, 140, 144, 143, 150, 135, 133, 135, 137, 139, 142, 133, 137, 137, 134, 138, 147, 146, 138, 139, 142, 135, 142, 147, 141, 143, 139, 135, 139, 147, 147, 145, 138, 140, 141, 138, 140, 136, 143, 147, 139, 141, 136, 131, 143, 139, 130, 146, 138, 137, 143, 136, 140, 133, 140, 149, 143, 137, 140, 133, 141, 145, 144, 133, 150, 141, 144, 136, 141, 134, 142, 142, 138, 141, 140, 139, 135, 134, 146, 145, 140, 137, 136, 140, 142, 142, 140, 139, 149, 135, 132, 130, 144, 130, 133, 140, 136, 141, 145, 138, 138, 131, 129, 146, 133, 132, 134, 145, 132, 151, 139, 137, 142, 140, 141, 129, 137, 137, 141, 138, 141, 141, 138, 140, 143, 128, 134, 139, 142, 137, 150, 137, 133, 142, 143, 132, 137, 139, 137, 140, 137, 143, 141, 137, 137, 143, 141, 132, 143, 142, 138, 135, 135, 137, 145, 136, 134, 142, 146, 137, 144, 135, 132, 141, 138, 135, 145, 136, 140, 140, 143, 133, 137, 155, 140, 133, 128, 136, 143, 142, 138, 134, 129, 136, 151, 130, 140, 134, 136, 134, 147, 140, 148, 133, 137, 141, 142, 137, 140, 139, 135, 142, 146, 144, 135, 145, 137, 142, 137, 137, 146, 143, 142, 143, 148, 135, 151, 135, 134, 134, 142, 140, 135, 141, 150, 143, 123, 140, 143, 138, 138, 139, 141, 136, 144, 137, 132, 147, 141, 146, 137, 138, 137, 142, 144, 133, 131, 135, 136, 138, 139, 139, 156, 144, 146, 140, 133, 134, 139, 147, 135, 140, 128, 144, 133, 134, 129, 148, 140, 153, 142, 151, 134, 142, 143, 146, 143, 131, 140, 136, 151, 135, 132, 133, 135, 141, 132, 139, 131, 138, 161, 140, 137, 135, 143, 135, 137, 138, 139, 137, 140, 138, 124, 144, 142, 137, 140, 134, 130, 138, 142, 137, 138, 141, 144, 135, 139, 143, 135, 133, 143, 132, 140, 143, 135, 147, 141, 145, 138, 148, 147, 134, 131, 137, 143, 150, 137, 135, 131, 149, 138, 139, 149, 148, 145, 145, 140, 136, 139, 137, 121, 137, 138, 131, 138, 137, 142, 139, 142, 149, 143, 136, 140, 137, 140, 145, 131, 147, 145, 139, 146, 129, 142, 144, 139, 131, 132, 137, 146, 143, 136, 137, 140, 138, 133, 140, 141, 127, 134, 140, 140, 139, 137, 139, 144, 140, 145, 96, 144, 144, 137, 140, 136, 136, 128, 147, 149, 143, 139, 141, 133, 138, 140, 148, 139, 133, 139, 143, 146, 136, 136, 142, 140, 142, 131, 141, 143, 130, 140, 136, 141, 138, 141, 143, 139, 130, 136, 139, 138, 141, 144, 142, 138, 128, 130, 134, 140, 143, 142, 140, 141, 139, 130, 140, 144, 139, 136, 157, 140, 137, 141, 138, 141, 133, 144, 142, 141, 142, 136, 146, 136, 146, 133, 138, 143, 142, 140, 143, 138, 141, 135, 150, 137, 143, 132, 134, 136, 135, 140, 122, 143, 137, 138, 139, 135, 138, 130, 144, 150, 138, 135, 135, 140, 135, 143, 137, 147, 140, 140, 135, 147, 146, 142, 138, 143, 147, 141, 143, 136, 143, 134, 141, 140, 144, 138, 146, 140, 136, 137, 140, 134, 135, 143, 157, 132, 138, 141, 139, 137, 137, 143, 141, 130, 151, 116, 142, 140, 135, 136, 144, 131, 136, 142, 126, 147, 144, 140, 146, 141, 137, 140, 139, 139, 136, 142, 138, 142, 144, 132, 136, 150, 136, 137, 139, 147, 138, 144, 136, 139, 138, 136, 133, 142, 146, 142, 129, 145, 127, 144, 110, 138, 135, 141, 136, 129, 140, 137, 144, 133, 143, 144, 136, 136, 137, 134, 137, 137, 134, 131, 137, 137, 149, 141, 139, 133, 129, 136, 141, 142, 135, 138, 143, 134, 133, 140, 134, 136, 136, 147, 143, 142, 130, 135, 139, 130, 140, 124, 137, 126, 136, 144, 137, 149, 142, 140, 138, 140, 136, 138, 130, 140, 135, 141, 135, 141, 139, 136, 138, 137, 133, 139, 140, 135, 137, 145, 140, 136, 146, 138, 157, 142, 139, 138, 150, 129, 137, 132, 140, 135, 136, 134, 143, 140, 135, 143, 132, 133, 147, 140, 140, 142, 137, 139, 131, 141, 140, 135, 144, 146, 137, 137, 144, 141, 141, 141, 140, 147, 140, 137, 135, 134, 141, 134, 140, 134, 141, 134, 142, 136, 141, 132, 140, 138, 140, 137, 135, 141, 145, 131, 138, 144, 144, 147, 144, 135, 145, 138, 140, 141, 135, 143, 155, 136, 143, 141, 129, 143, 138, 142, 141, 138, 134, 139, 147, 140, 136, 148, 139, 144, 135, 142, 137, 139, 139, 144, 151, 143, 140, 143, 138, 137, 129, 141, 143, 137, 140, 131, 144, 135, 138, 139, 138, 141, 138, 134, 141, 147, 138, 135, 132, 130, 135, 136, 152, 140, 133, 134, 132, 138, 134, 131, 133, 142, 147, 137, 140, 141, 143, 139, 138, 144, 138, 134, 135, 135, 142, 141, 138, 133, 137, 137, 138, 147, 149, 131, 142, 128, 132, 139, 147, 139, 129, 136, 136, 139, 135, 137, 143, 134, 141, 134, 141, 131, 138, 139, 136, 134, 146, 134, 134, 145, 144, 143, 145, 137, 136, 136, 149, 137, 138, 134, 140, 133, 137, 135, 148, 141, 138, 134, 139, 137, 131, 136, 142, 145, 127, 138, 146, 136, 141, 135, 143, 131, 131, 136, 140, 140, 144, 136, 137, 137, 134, 142, 133, 145, 139, 134, 138, 136, 156, 131, 138, 132, 133, 135, 141, 136, 140, 141, 135, 142, 143, 144, 139, 140, 140, 153, 145, 142, 138, 135, 147, 140, 137, 136, 136, 143, 135, 140, 131, 131, 141, 136, 137, 139, 142, 140, 147, 142, 143, 139, 142, 139, 141, 148, 134, 145, 146, 136, 134, 145, 135, 143, 133, 146, 137, 139, 142, 135, 141, 145, 135, 137, 136, 143, 138, 137, 138, 136, 141, 142, 129, 145, 137, 143, 137, 143, 127, 132, 141, 138, 143, 135, 134, 139, 136, 144, 143, 142, 137, 136, 135, 136, 119, 142, 141, 137, 136, 147, 141, 143, 128, 139, 135, 137, 133, 142, 132, 148, 136, 138, 135, 142, 147, 145, 130, 139, 142, 137, 139, 138, 146, 145, 134, 141, 149, 137, 145, 132, 138, 150, 148, 132, 145, 137, 134, 132, 132, 146, 138, 142, 134, 138, 137, 141, 140, 137, 130, 138, 139, 131, 142, 136, 139, 131, 143, 135, 135, 135, 145, 133, 132, 142, 134, 138, 130, 132, 138, 138, 140, 152, 137, 136, 141, 135, 134, 146, 151, 143, 134, 143, 146, 146, 148, 138, 138, 141, 136, 136, 147, 143, 140, 135, 143, 144, 132, 141, 135, 142, 141, 142, 136, 140, 126, 137, 135, 136, 136, 139, 148, 148, 134, 141, 129, 140, 135, 134, 148, 150, 147, 136, 135, 129, 136, 142, 140, 141, 135, 141, 142, 139, 142, 139, 137, 139, 130, 139, 135, 137, 127, 139, 136, 138, 137, 129, 142, 136, 139, 141, 135, 142, 140, 137, 144, 134, 144, 133, 133, 136, 148, 155, 149, 141, 143, 138, 139, 149, 140, 133, 135, 138, 142, 138, 151, 143, 138, 141, 134, 140, 131, 138, 138, 137, 133, 142, 145, 130, 139, 139, 141, 141, 144, 141, 137, 132, 137, 137, 134, 148, 135, 140, 145, 141, 141, 142, 143, 146, 139, 138, 137, 137, 142, 136, 143, 136, 146, 129, 139, 140, 143, 136, 137, 140, 140, 146, 148, 134, 147, 136, 149, 133, 147, 139, 139, 133, 142, 140, 139, 136, 147, 136, 132, 143, 141, 143, 147, 137, 123, 134, 157, 126, 151, 134, 141, 141, 137, 132, 138, 143, 144, 139, 149, 138, 139, 134, 137, 134, 132, 132, 135, 140, 130, 134, 143, 136, 145, 141, 153, 135, 132, 146, 147, 146, 133, 133, 143, 136, 141, 135, 146, 131, 138, 139, 136, 138, 142, 135, 141, 144, 140, 135, 137, 137, 138, 144, 137, 132, 132, 142, 135, 136, 135, 136, 139, 134, 124, 134, 142, 138, 128, 141, 131, 137, 146, 142, 130, 134, 135, 131, 133, 135, 149, 140, 139, 141, 132, 145, 137, 139, 142, 128, 139, 152, 133, 142, 138, 133, 138, 151, 138, 138, 133, 145, 138, 136, 144, 140, 130, 148, 134, 147, 151, 134, 138, 138, 139, 141, 143, 129, 147, 133, 140, 136, 141, 137, 137, 133, 128, 134, 132, 138, 132, 141, 145, 138, 130, 139, 131, 132, 142, 141, 146, 139, 132, 139, 133, 142, 136, 132, 135, 145, 142, 137, 147, 125, 148, 131, 135, 136, 141, 138, 140, 133, 132, 139, 134, 131, 132, 137, 132, 138, 144, 131, 139, 134, 135, 148, 145, 135, 145, 145, 132, 134, 143, 140, 135, 136, 137, 138, 129, 131, 141, 138, 122, 135, 136, 147, 135, 141, 138, 145, 134, 133, 132, 151, 131, 144, 139, 136, 130, 135, 145, 141, 132, 140, 141, 143, 151, 134, 138, 139, 137, 138, 129, 133, 143, 129, 139, 141, 138, 130, 135, 133, 138, 135, 136, 137, 146, 145, 137, 132, 143, 130, 135, 134, 136, 130, 131, 142, 137, 141, 147, 133, 131, 138, 142, 140, 134, 139, 135, 137, 152, 132, 143, 143, 128, 134, 148, 133, 139, 130, 144, 136, 140, 137, 142, 136, 142, 139, 133, 142, 135, 148, 138, 129, 133, 129, 139, 136, 132, 138, 140, 143, 130, 144, 133, 139, 131, 129, 136, 140, 136, 147, 141, 141, 133, 136, 140, 144, 144, 138, 141, 124, 140, 129, 131, 137, 138, 138, 129, 146, 137, 136, 141, 132, 134, 136, 129, 135, 135, 155, 140, 137, 143, 146, 140, 148, 136, 134, 136, 143, 138, 139, 143, 138, 140, 137, 154, 149, 133, 142, 132, 143, 140, 141, 150, 140, 142, 134, 133, 130, 134, 140, 139, 146, 130, 131, 136, 134, 138, 135, 142, 139, 149, 142, 149, 139, 133, 148, 144, 134, 138, 141, 139, 143, 135, 141, 132, 159, 139, 143, 136, 134, 129, 127, 137, 136, 137, 130, 135, 142, 146, 146, 139, 130, 140, 143, 140, 133, 141, 133, 142, 137, 139, 143, 143, 140, 153, 132, 135, 129, 133, 143, 135, 135, 134, 140, 139, 140, 134, 150, 136, 146, 147, 140, 137, 143, 144, 132, 124, 142, 139, 138, 137, 137, 143, 140, 145, 144, 129, 139, 140, 140, 139, 143, 154, 138, 158, 142, 138, 144, 138, 133, 136, 140, 153, 148, 145, 141, 139, 140, 148, 146, 146, 125, 145, 139, 128, 138, 138, 137, 141, 130, 141, 136, 131, 138, 139, 133, 140, 138, 135, 135, 132, 135, 141, 142, 137, 149, 148, 142, 132, 141, 119, 140, 139, 145, 148, 139, 128, 139, 151, 149, 130, 130, 133, 143, 142, 147, 145, 141, 148, 142, 143, 139, 135, 139, 150, 136, 134, 135, 143, 138, 157, 145, 145, 148, 143, 135, 126, 143, 132, 136, 139, 137, 129, 139, 142, 150, 141, 133, 135, 136, 154, 128, 136, 143, 130, 146, 146, 132, 139, 141, 127, 133, 139, 137, 149, 128, 141, 142, 137, 132, 142, 130, 136, 136, 131, 120, 149, 142, 140, 142, 137, 146, 149, 150, 128, 138, 138, 135, 152, 142, 138, 134, 145, 141, 134, 134, 136, 139, 141, 150, 137, 138, 134, 133, 135, 134, 130, 135, 136, 143, 135, 144, 132, 141, 135, 140, 137, 140, 138, 141, 138, 148, 141, 132, 138, 130, 132, 128, 144, 145, 143, 141, 138, 146, 138, 149, 143, 136, 139, 147, 134, 139, 152, 140, 147, 141, 133, 141, 146, 140, 141, 132, 131, 147, 130, 148, 133, 134, 134, 132, 140, 133, 126, 142, 130, 129, 141, 140, 140, 137, 140, 132, 139, 144, 135, 137, 145, 154, 124, 154, 141, 137, 146, 133, 139, 149, 148, 150, 133, 136, 135, 134, 138, 140, 143, 142, 146, 141, 142, 139, 128, 147, 136, 139, 133, 142, 137, 127, 131, 145, 132, 135, 133, 143, 135, 138, 141, 128, 154, 142, 124, 143, 132, 141, 145, 128, 131, 139, 141, 137, 145, 138, 142, 135, 142, 135, 127, 135, 135, 137, 131, 132, 137, 151, 153, 148, 163, 141, 144, 145, 141, 133, 139, 138, 145, 133, 146, 132, 140, 135, 132, 141, 131, 140, 147, 134, 136, 137, 142, 137, 143, 139, 136, 149, 130, 134, 134, 135, 143, 132, 143, 137, 138, 134, 144, 146, 140, 134, 143, 145, 145, 145, 142, 137, 136, 140, 135, 143, 135, 143, 138, 144, 147, 136, 140, 131, 148, 127, 142, 127, 135, 139, 147, 138, 145, 149, 138, 133, 129, 150, 134, 144, 136, 131, 145, 156, 137, 151, 128, 147, 132, 136, 140, 144, 142, 133, 139, 136, 142, 143, 130, 134, 135, 143, 137, 136, 137, 136, 139, 142, 144, 139, 133, 137, 135, 151, 144, 138, 139, 131, 144, 131, 139, 143, 140, 133, 141, 131, 131, 133, 142, 138, 140, 140, 142, 144, 132, 137, 138, 150, 131, 141, 140, 134, 132, 131, 138, 145, 148, 145, 141, 142, 145, 134, 144, 131, 131, 142, 135, 142, 135, 135, 145, 137, 147, 146, 132, 147, 138, 139, 143, 131, 147, 139, 142, 137, 141, 135, 136, 137, 140, 135, 141, 138, 134, 129, 138, 136, 136, 136, 144, 145, 148, 145, 144, 139, 143, 143, 128, 140, 137, 136, 135, 153, 140, 139, 143, 146, 145, 140, 160, 133, 140, 142, 135, 147, 142, 135, 138, 138, 141, 138, 131, 140, 146, 136, 151, 143, 134, 136, 151, 144, 144, 133, 137, 153, 127, 138, 134, 138, 135, 142, 135, 133, 138, 141, 140, 137, 139, 127, 143, 144, 140, 135, 140, 143, 136, 137, 138, 147, 140, 145, 149, 144, 142, 142, 132, 132, 136, 133, 142, 135, 132, 139, 142, 138, 144, 136, 144, 142, 137, 136, 138, 139, 140, 136, 135, 131, 137, 128, 142, 135, 141, 135, 139, 129, 147, 137, 134, 143, 144, 145, 149, 142, 134, 141, 141, 139, 137, 136, 139, 137, 146, 145, 136, 138, 137, 142, 145, 141, 134, 145, 139, 139, 138, 130, 142, 137, 141, 137, 137, 140, 136, 137, 145, 137, 136, 135, 139, 141, 139, 136, 145, 140, 141, 147, 133, 144, 139, 140, 135, 140, 139, 144, 136, 136, 141, 137, 140, 136, 135, 140, 139, 133, 137, 139, 131, 138, 148, 144, 137, 135, 136, 138, 140, 139, 139, 149, 141, 134, 142, 137, 137, 135, 139, 135, 126, 135, 138, 137, 142, 140, 142, 138, 144, 136, 135, 138, 141, 136, 142, 144, 142, 139, 136, 138, 138, 140, 139, 140, 142, 139, 138, 141, 140, 138, 138, 139, 135, 141, 140, 134, 137, 136, 140, 138, 135, 147, 142, 141, 143, 144, 139, 145, 141, 143, 139, 139, 137, 137, 134, 132, 139, 143, 141, 141, 139, 138, 140, 142, 134, 146, 138, 139, 134, 143, 137, 141, 140, 138, 134, 142, 150, 137, 140, 141, 133, 134, 140, 139, 137, 139, 140, 137, 138, 140, 137, 142, 144, 138, 136, 136, 139, 146, 146, 144, 137, 143, 130, 142, 141, 135, 136, 138, 137, 136, 147, 138, 139, 138, 145, 136, 138, 134, 129, 142, 135, 139, 138, 134, 137, 132, 135, 141, 144, 141, 139, 138, 141, 141, 137, 135, 139, 147, 141, 134, 136, 138, 134, 136, 139, 139, 135, 140, 136, 141, 141, 140, 141, 139, 132, 141, 142, 137, 136, 135, 145, 138, 139, 135, 135, 140, 135, 140, 138, 136, 148, 140, 142, 141, 136, 138, 133, 137, 136, 135, 136, 138, 134, 139, 139, 141, 136, 141, 135, 137, 138, 139, 140, 141, 142, 135, 139, 139, 125, 140, 139, 139, 136, 140, 142, 142, 137, 145, 139, 139, 137, 143, 135, 132, 139, 140, 144, 133, 138, 144, 134, 144, 141, 137, 134, 141, 140, 137, 137, 140, 135, 136, 136, 142, 139, 144, 142, 138, 146, 142, 139, 135, 140, 143, 131, 139, 135, 143, 134, 131, 141, 147, 140, 139, 137, 143, 135, 136, 139, 142, 141, 144, 140, 138, 135, 135, 132, 140, 136, 139, 139, 139, 135, 142, 132, 139, 140, 139, 141, 137, 144, 146, 143, 139, 133, 142, 141, 128, 145, 141, 135, 134, 142, 131, 138, 139, 139, 139, 138, 139, 139, 141, 142, 136, 140, 139, 136, 137, 137, 139, 143, 153, 140, 139, 137, 138, 137, 140, 140, 136, 143, 136, 136, 140, 137, 131, 142, 140, 140, 137, 140, 140, 137, 139, 142, 139, 134, 142, 137, 137, 132, 140, 141, 136, 139, 137, 139, 138, 138, 137, 136, 139, 139, 141, 138, 136, 142, 143, 143, 136, 140, 136, 130, 140, 137, 134, 131, 136, 138, 133, 137, 137, 139, 140, 137, 139, 138, 134, 143, 137, 132, 142, 138, 138, 135, 127, 138, 136, 139, 135, 137, 137, 140, 142, 137, 137, 134, 137, 137, 121, 123, 146, 136, 139, 140, 151, 135, 142, 133, 149, 136, 147, 137, 131, 133, 143, 135, 144, 138, 139, 140, 138, 137, 129, 136, 130, 149, 147, 136, 139, 144, 138, 144, 143, 134, 132, 151, 137, 141, 147, 147, 129, 153, 145, 137, 136, 141, 133, 141, 143, 134, 146, 140, 152, 140, 141, 132, 144, 139, 125, 136, 136, 142, 136, 136, 136, 133, 140, 143, 137, 139, 130, 133, 148, 147, 134, 138, 140, 145, 141, 134, 132, 138, 135, 134, 138, 141, 133, 136, 143, 134, 133, 128, 131, 133, 138, 138, 138, 132, 146, 136, 140, 140, 142, 135, 147, 134, 145, 144, 133, 129, 144, 137, 139, 135, 133, 137, 139, 131, 147, 145, 139, 135, 136, 146, 131, 133, 140, 136, 136, 142, 144, 130, 146, 133, 139, 125, 145, 136, 129, 133, 137, 134, 143, 136, 144, 142, 135, 146, 135, 137, 141, 135, 140, 133, 143, 147, 133, 145, 148, 143, 148, 138, 137, 137, 145, 139, 133, 135, 137, 138, 148, 141, 137, 135, 129, 138, 140, 146, 144, 133, 144, 137, 136, 138, 125, 139, 142, 132, 131, 133, 130, 141, 132, 139, 139, 131, 145, 139, 147, 138, 138, 127, 139, 134, 146, 138, 133, 137, 149, 140, 135, 139, 140, 140, 142, 148, 131, 130, 145, 138, 130, 143, 131, 142, 145, 147, 137, 139, 148, 137, 131, 142, 150, 133, 136, 136, 140, 134, 138, 141, 142, 146, 149, 150, 134, 144, 136, 145, 133, 146, 145, 143, 126, 137, 139, 144, 141, 137, 130, 137, 127, 142, 136, 139, 137, 134, 128, 154, 140, 140, 145, 140, 137, 149, 135, 137, 141, 138, 138, 143, 135, 135, 141, 133, 137, 145, 139, 141, 138, 142, 146, 138, 137, 142, 134, 143, 137, 139, 140, 133, 132, 139, 127, 140, 140, 147, 136, 134, 149, 134, 137, 138, 135, 135, 147, 144, 144, 142, 141, 144, 141, 134, 138, 143, 132, 137, 135, 150, 132, 143, 144, 147, 138, 133, 137, 142, 139, 135, 142, 138, 124, 147, 143, 136, 141, 141, 138, 135, 140, 139, 131, 134, 128, 141, 135, 135, 126, 142, 144, 140, 137, 136, 141, 135, 135, 145, 145, 146, 135, 133, 138, 140, 129, 138, 138, 133, 143, 140, 138, 133, 134, 141, 143, 139, 134, 138, 134, 138, 131, 133, 142, 149, 148, 141, 138, 140, 135, 142, 146, 140, 145, 122, 140, 142, 131, 144, 141, 133, 141, 141, 142, 122, 135, 144, 128, 145, 136, 138, 136, 136, 135, 142, 140, 144, 142, 133, 131, 133, 148, 142, 135, 138, 142, 138, 141, 132, 137, 144, 140, 144, 141, 140, 128, 132, 144, 137, 141, 135, 136, 139, 141, 148, 134, 144, 149, 141, 135, 138, 137, 128, 131, 139, 133, 132, 143, 150, 137, 142, 146, 132, 139, 138, 142, 139, 136, 134, 133, 139, 144, 133, 143, 147, 149, 141, 138, 135, 144, 146, 137, 129, 137, 137, 139, 123, 136, 143, 136, 138, 135, 147, 148, 137, 144, 136, 123, 130, 136, 150, 146, 136, 143, 133, 137, 137, 133, 143, 144, 149, 131, 132, 136, 133, 134, 136, 136, 134, 128, 139, 136, 143, 125, 141, 136, 145, 139, 133, 142, 140, 156, 139, 146, 135, 138, 136, 141, 139, 140, 147, 131, 136, 148, 142, 131, 146, 127, 143, 143, 134, 138, 145, 138, 140, 135, 138, 128, 140, 136, 139, 134, 140, 133, 133, 138, 134, 129, 141, 137, 133, 136, 145, 128, 135, 134, 143, 134, 126, 124, 129, 132, 149, 145, 141, 128, 153, 127, 139, 131, 145, 130, 138, 144, 141, 138, 139, 128, 138, 141, 151, 136, 134, 139, 149, 130, 141, 130, 132, 136, 133, 150, 160, 133, 143, 125, 138, 140, 138, 133, 133, 140, 141, 143, 140, 136, 131, 138, 142, 144, 139, 129, 136, 139, 130, 135, 135, 141, 132, 141, 130, 152, 129, 138, 144, 120, 142, 139, 155, 142, 139, 139, 140, 144, 133, 141, 148, 140, 134, 129, 139, 147, 134, 143, 131, 143, 140, 145, 139, 136, 144, 137, 151, 131, 142, 147, 142, 146, 135, 143, 130, 141, 142, 135, 145, 144, 133, 136, 132, 128, 139, 137, 136, 144, 149, 139, 139, 141, 128, 133, 145, 137, 136, 136, 146, 139, 143, 138, 136, 142, 134, 142, 140, 138, 142, 145, 133, 137, 136, 128, 141, 137, 140, 134, 138, 131, 131, 136, 141, 129, 140, 143, 143, 132, 130, 150, 129, 136, 129, 142, 141, 148, 145, 143, 122, 147, 142, 129, 140, 134, 141, 140, 144, 147, 144, 143, 134, 138, 123, 133, 131, 146, 133, 141, 143, 133, 139, 141, 141, 144, 143, 142, 143, 130, 131, 144, 157, 141, 134, 140, 139, 134, 134, 134, 144, 140, 149, 142, 131, 132, 144, 139, 131, 147, 132, 137, 140, 136, 128, 132, 138, 136, 139, 135, 143, 126, 142, 139, 135, 137, 136, 133, 139, 138, 149, 140, 141, 146, 132, 135, 146, 137, 145, 143, 126, 143, 143, 147, 135, 141, 135, 136, 130, 137, 151, 132, 142, 143, 136, 150, 140, 128, 141, 150, 130, 130, 133, 131, 139, 142, 150, 128, 136, 142, 143, 132, 143, 137, 145, 141, 143, 137, 133, 138, 138, 133, 142, 127, 141, 150, 125, 152, 129, 140, 140, 132, 135, 143, 140, 139, 133, 139, 140, 156, 133, 132, 133, 138, 141, 138, 142, 143, 141, 148, 141, 137, 143, 137, 141, 143, 130, 130, 134, 131, 137, 149, 133, 135, 144, 139, 136, 140, 134, 149, 131, 135, 133, 140, 131, 144, 145, 137, 144, 149, 132, 146, 136, 138, 136, 131, 136, 135, 131, 141, 132, 142, 122, 143, 142, 142, 142, 131, 144, 129, 145, 139, 135, 137, 135, 131, 126, 134, 142, 132, 138, 137, 132, 141, 134, 140, 142, 144, 134, 141, 137, 141, 151, 137, 141, 137, 132, 140, 144, 140, 134, 135, 127, 139, 140, 155, 144, 138, 136, 137, 132, 130, 137, 146, 132, 137, 133, 143, 142, 149, 138, 148, 134, 140, 140, 134, 139, 138, 143, 139, 149, 134, 144, 137, 133, 120, 128, 137, 143, 149, 146, 152, 153, 127, 157, 137, 145, 130, 137, 139, 132, 135, 135, 140, 141, 136, 134, 146, 139, 136, 138, 136, 129, 137, 128, 141, 145, 134, 137, 135, 134, 141, 130, 142, 135, 136, 133, 138, 144, 140, 143, 136, 137, 136, 145, 139, 148, 138, 132, 143, 136, 139, 134, 143, 137, 144, 139, 128, 140, 143, 133, 130, 148, 138, 145, 143, 150, 138, 138, 148, 137, 145, 133, 133, 134, 133, 140, 136, 140, 138, 142, 138, 134, 142, 130, 123, 140, 141, 139, 136, 136, 140, 151, 134, 131, 142, 136, 148, 130, 150, 137, 137, 144, 142, 139, 137, 139, 134, 149, 140, 131, 141, 131, 145, 137, 135, 138, 136, 149, 142, 137, 143, 133, 146, 127, 141, 148, 130, 136, 142, 133, 137, 131, 137, 135, 135, 139, 148, 151, 138, 150, 142, 133, 143, 128, 137, 145, 127, 145, 143, 131, 136, 144, 133, 149, 131, 137, 131, 144, 134, 138, 139, 138, 140, 132, 136, 136, 136, 144, 141, 133, 129, 146, 145, 131, 139, 141, 138, 139, 137, 125, 155, 139, 145, 134, 146, 133, 135, 130, 140, 139, 148, 147, 135, 136, 137, 137, 143, 146, 130, 141, 149, 132, 134, 132, 134, 137, 132, 133, 134, 136, 151, 142, 152, 138, 136, 147, 149, 130, 146, 131, 137, 136, 144, 125, 145, 138, 142, 138, 129, 130, 141, 137, 141, 127, 136, 147, 145, 133, 135, 136, 130, 141, 142, 136, 153, 137, 142, 146, 136, 135, 138, 142, 124, 142, 136, 137, 134, 134, 138, 132, 145, 155, 142, 142, 131, 139, 135, 131, 150, 147, 136, 148, 134, 128, 127, 138, 140, 131, 135, 145, 144, 136, 139, 142, 141, 146, 154, 138, 137, 133, 135, 141, 135, 136, 137, 147, 131, 141, 153, 149, 140, 147, 133, 137, 134, 138, 137, 141, 144, 139, 143, 147, 129, 137, 129, 136, 144, 138, 133, 146, 128, 135, 141, 151, 145, 150, 149, 135, 142, 140, 137, 137, 136, 130, 138, 153, 137, 134, 134, 150, 142, 139, 141, 145, 140, 135, 139, 132, 135, 133, 128, 146, 137, 132, 131, 139, 124, 148, 141, 137, 140, 141, 138, 145, 145, 137, 138, 140, 136, 143, 147, 128, 138, 142, 146, 142, 136, 145, 140, 141, 135, 139, 148, 143, 128, 139, 137, 133, 134, 144, 137, 132, 134, 140, 138, 149, 154, 134, 144, 145, 133, 132, 142, 154, 141, 137, 133, 133, 141, 139, 143, 137, 129, 144, 136, 141, 154, 147, 153, 139, 137, 144, 143, 150, 143, 137, 132, 143, 137, 139, 141, 134, 149, 136, 155, 132, 141, 138, 147, 134, 140, 146, 135, 144, 135, 133, 139, 137, 138, 139, 129, 145, 144, 130, 154, 132, 140, 134, 139, 143, 149, 139, 138, 140, 136, 144, 140, 135, 134, 142, 140, 135, 137, 133, 131, 130, 136, 136, 136, 140, 138, 139, 139, 138, 144, 133, 146, 138, 136, 143, 133, 146, 141, 142, 150, 125, 140, 136, 137, 143, 128, 131, 130, 133, 134, 138, 143, 138, 133, 152, 149, 142, 138, 136, 131, 140, 145, 147, 140, 140, 136, 134, 142, 146, 133, 137, 132, 132, 139, 140, 135, 145, 138, 137, 129, 139, 138, 135, 135, 143, 141, 136, 144, 134, 143, 140, 132, 141, 136, 137, 135, 141, 134, 144, 133, 140, 134, 137, 135, 139, 149, 143, 135, 135, 136, 145, 145, 133, 142, 136, 143, 138, 139, 137, 140, 146, 137, 131, 140, 143, 143, 143, 133, 136, 134, 131, 140, 133, 132, 130, 138, 141, 135, 127, 133, 152, 139, 140, 139, 129, 133, 135, 136, 137, 141, 144, 137, 129, 142, 139, 135, 138, 140, 142, 139, 137, 146, 135, 139, 136, 136, 134, 135, 137, 143, 144, 140, 145, 137, 139, 131, 149, 137, 139, 144, 140, 135, 143, 141, 141, 137, 141, 145, 141, 144, 133, 135, 136, 149, 140, 145, 141, 145, 140, 141, 133, 129, 138, 139, 138, 144, 137, 142, 133, 139, 139, 143, 134, 141, 143, 139, 141, 139, 147, 133, 135, 150, 137, 135, 132, 137, 132, 140, 139, 140, 128, 136, 135, 138, 133, 137, 143, 134, 143, 146, 142, 138, 137, 143, 138, 140, 141, 139, 138, 139, 136, 145, 142, 138, 139, 138, 145, 135, 140, 139, 136, 138, 145, 132, 142, 143, 145, 144, 141, 141, 139, 147, 132, 141, 139, 134, 135, 138, 132, 138, 144, 136, 135, 133, 139, 136, 142, 140, 142, 146, 127, 129, 142, 141, 144, 135, 143, 137, 140, 139, 139, 142, 135, 141, 134, 135, 129, 147, 138, 137, 130, 136, 142, 132, 138, 137, 136, 150, 144, 139, 140, 145, 139, 138, 147, 138, 137, 140, 137, 136, 137, 136, 138, 140, 133, 139, 138, 138, 135, 136, 135, 142, 139, 137, 139, 142, 138, 137, 139, 143, 137, 132, 139, 139, 139, 132, 147, 148, 136, 144, 137, 131, 139, 138, 138, 140, 147, 137, 136, 145, 141, 142, 142, 138, 140, 138, 136, 142, 142, 128, 139, 137, 140, 139, 144, 134, 139, 139, 137, 139, 134, 144, 142, 139, 136, 136, 146, 144, 140, 138, 136, 135, 141, 135, 146, 133, 139, 141, 140, 138, 136, 139, 143, 135, 141, 144, 141, 139, 130, 134, 137, 134, 140, 135, 132, 148, 142, 147, 137, 142, 139, 138, 138, 141, 146, 140, 135, 139, 138, 135, 135, 134, 143, 144, 140, 146, 139, 143, 134, 137, 139, 139, 145, 141, 136, 147, 143, 132, 143, 135, 142, 139, 143, 142, 137, 138, 137, 143, 138, 133, 134, 138, 144, 151, 135, 135, 141, 142, 142, 134, 137, 149, 150, 138, 136, 129, 137, 142, 135, 148, 136, 132, 138, 139, 133, 138, 140, 139, 136, 133, 143, 142, 139, 135, 129, 139, 136, 140, 142, 139, 137, 130, 146, 135, 138, 138, 135, 140, 142, 142, 136, 134, 138, 136, 141, 148, 138, 144, 158, 134, 137, 135, 141, 135, 138, 146, 138, 139, 136, 138, 140, 136, 131, 139, 134, 132, 141, 135, 138, 139, 144, 140, 139, 136, 138, 133, 138, 143, 145, 136, 143, 145, 128, 140, 130, 139, 141, 136, 134, 136, 142, 137, 141, 138, 137, 144, 135, 135, 137, 142, 143, 140, 138, 137, 136, 131, 133, 138, 142, 141, 136, 143, 138, 130, 149, 136, 134, 139, 136, 139, 134, 139, 134, 142, 136, 144, 143, 138, 142, 127, 131, 143, 140, 135, 140, 141, 136, 146, 137, 135, 134, 130, 139, 142, 135, 136, 138, 137, 136, 140, 134, 139, 136, 143, 147, 134, 141, 147, 136, 137, 137, 131, 130, 140, 142, 137, 144, 142, 145, 142, 141, 142, 142, 134, 141, 143, 131, 138, 138, 136, 140, 139, 137, 145, 143, 134, 141, 137, 138, 143, 137, 143, 133, 136, 138, 138, 138, 140, 133, 139, 137, 139, 138, 142, 137, 139, 139, 139, 135, 144, 139, 136, 141, 138, 133, 139, 134, 135, 142, 131, 144, 128, 138, 139, 136, 141, 145, 137, 143, 151, 138, 144, 137, 136, 142, 144, 136, 139, 137, 143, 136, 142, 137, 135, 138, 145, 141, 135, 145, 131, 136, 142, 140, 140, 140, 135, 143, 135, 139, 138, 137, 138, 138, 134, 137, 142, 136, 143, 142, 143, 142, 148, 140, 134, 140, 137, 139, 136, 139, 146, 139, 138, 130, 137, 130, 144, 136, 139, 143, 141, 136, 140, 144, 137, 140, 140, 150, 135, 148, 137, 143, 136, 138, 142, 137, 133, 142, 136, 138, 135, 139, 142, 145, 130, 135, 147, 135, 139, 130, 133, 141, 140, 140, 140, 136, 135, 131, 143, 137, 149, 134, 143, 142, 134, 140, 135, 139, 136, 140, 138, 135, 142, 147, 133, 134, 140, 151, 138, 136, 137, 134, 129, 140, 142, 141, 139, 132, 144, 137, 142, 142, 141, 134, 139, 143, 140, 136, 141, 141, 144, 142, 144, 132, 144, 138, 141, 139, 138, 136, 130, 141, 139, 138, 138, 136, 134, 148, 140, 135, 134, 136, 132, 140, 142, 136, 139, 127, 142, 138, 134, 137, 136, 137, 138, 131, 135, 140, 141, 145, 136, 136, 143, 133, 143, 144, 143, 141, 133, 142, 133, 151, 140, 139, 139, 139, 136, 133, 142, 140, 136, 134, 137, 136, 143, 139, 138, 130, 136, 129, 130, 141, 146, 133, 139, 148, 137, 142, 140, 138, 143, 142, 136, 140, 131, 138, 144, 138, 136, 142, 145, 140, 141, 131, 141, 144, 128, 134, 143, 131, 133, 137, 144, 135, 143, 130, 135, 135, 140, 138, 146, 134, 134, 139, 133, 146, 144, 135, 136, 141, 138, 140, 135, 148, 135, 133, 136, 139, 137, 138, 139, 127, 139, 139, 125, 141, 129, 140, 135, 138, 137, 139, 145, 139, 139, 136, 143, 143, 140, 139, 137, 134, 136, 144, 139, 139, 143, 131, 133, 143, 141, 141, 140, 142, 135, 141, 143, 140, 140, 135, 139, 139, 141, 143, 135, 147, 141, 137, 138, 128, 138, 138, 148, 137, 138, 138, 135, 128, 140, 139, 134, 140, 132, 137, 134, 135, 138, 141, 146, 138, 133, 138, 139, 140, 140, 133, 140, 134, 140, 135, 137, 131, 143, 137, 146, 137, 135, 141, 139, 144, 136, 135, 135, 141, 143, 143, 140, 137, 137, 138, 140, 142, 136, 139, 136, 129, 136, 143, 132, 140, 146, 138, 146, 136, 136, 142, 155, 139, 140, 139, 133, 132, 132, 142, 136, 138, 142, 139, 143, 145, 138, 139, 141, 138, 138, 129, 133, 137, 138, 138, 137, 145, 137, 138, 139, 142, 137, 135, 138, 136, 143, 147, 136, 139, 138, 136, 137, 143, 135, 139, 135, 143, 140, 136, 131, 143, 131, 134, 140, 139, 140, 131, 136, 139, 143, 133, 142, 134, 142, 135, 135, 135, 143, 143, 135, 144, 133, 143, 138, 139, 139, 141, 142, 134, 139, 142, 136, 135, 147, 140, 139, 140, 138, 132, 132, 138, 139, 144, 142, 147, 140, 135, 143, 137, 145, 142, 130, 134, 137, 142, 137, 140, 140, 133, 133, 143, 136, 146, 131, 134, 140, 134, 141, 144, 136, 138, 139, 142, 136, 147, 138, 148, 137, 148, 138, 135, 139, 137, 136, 134, 140, 129, 141, 128, 139, 137, 138, 145, 138, 140, 148, 136, 140, 145, 145, 143, 140, 136, 136, 136, 133, 139, 138, 140, 142, 141, 141, 135, 139, 139, 141, 144, 140, 131, 135, 136, 140, 137, 138, 147, 145, 137, 142, 144, 136, 140, 139, 135, 138, 135, 137, 139, 143, 137, 137, 132, 138, 142, 142, 142, 146, 141, 144, 140, 135, 137, 139, 127, 135, 141, 136, 134, 142, 139, 142, 131, 131, 138, 133, 141, 140, 136, 143, 140, 138, 140, 140, 143, 140, 138, 134, 132, 137, 140, 143, 145, 143, 132, 133, 131, 138, 146, 141, 137, 140, 137, 140, 138, 135, 134, 138, 144, 137, 139, 140, 134, 146, 142, 138, 142, 149, 144, 136, 140, 138, 147, 143, 139, 135, 133, 140, 136, 147, 132, 131, 134, 138, 135, 134, 135, 137, 137, 134, 143, 137, 140, 134, 136, 143, 137, 132, 131, 131, 133, 136, 138, 145, 142, 140, 140, 143, 137, 143, 135, 140, 136, 131, 141, 144, 140, 146, 142, 141, 137, 139, 134, 145, 136, 141, 135, 137, 134, 141, 140, 145, 144, 136, 151, 139, 142, 141, 141, 137, 141, 141, 132, 137, 132, 139, 138, 139, 143, 146, 139, 134, 138, 129, 140, 145, 135, 140, 143, 139, 132, 136, 136, 144, 143, 135, 133, 136, 138, 141, 134, 139, 133, 135, 136, 136, 128, 133, 136, 133, 137, 147, 141, 142, 141, 130, 129, 137, 141, 136, 132, 136, 144, 145, 138, 137, 136, 141, 142, 136, 137, 143, 138, 136, 145, 132, 135, 138, 145, 135, 141, 128, 140, 137, 143, 133, 140, 142, 141, 136, 134, 146, 148, 141, 135, 138, 143, 136, 142, 143, 141, 134, 138, 138, 143, 141, 136, 135, 138, 134, 135, 135, 138, 137, 139, 144, 143, 136, 137, 137, 147, 143, 142, 140, 149, 142, 133, 133, 141, 151, 142, 140, 135, 141, 140, 138, 141, 140, 145, 142, 133, 133, 142, 141, 135, 141, 147, 137, 140, 139, 133, 135, 135, 135, 140, 132, 139, 133, 141, 141, 143, 142, 138, 134, 134, 133, 145, 145, 143, 131, 127, 137, 138, 132, 136, 140, 136, 145, 145, 131, 138, 134, 142, 153, 143, 137, 127, 131, 128, 140, 137, 142, 130, 130, 142, 138, 138, 136, 133, 139, 141, 130, 133, 147, 140, 137, 133, 152, 137, 142, 147, 136, 138, 138, 130, 154, 134, 145, 136, 134, 137, 140, 137, 136, 150, 140, 140, 139, 135, 141, 130, 136, 140, 139, 134, 138, 138, 145, 132, 139, 148, 141, 134, 136, 134, 133, 142, 136, 135, 139, 140, 132, 129, 148, 140, 146, 146, 144, 133, 143, 131, 140, 130, 131, 139, 138, 136, 128, 137, 135, 137, 139, 151, 132, 146, 124, 134, 143, 134, 127, 140, 132, 137, 138, 136, 137, 138, 148, 142, 147, 130, 142, 132, 134, 133, 138, 130, 150, 138, 141, 136, 143, 137, 141, 145, 125, 130, 139, 142, 146, 136, 130, 135, 142, 143, 139, 140, 135, 141, 135, 140, 139, 133, 139, 142, 146, 130, 130, 134, 139, 143, 141, 135, 139, 147, 144, 147, 141, 135, 131, 144, 137, 138, 137, 145, 134, 138, 134, 133, 142, 130, 143, 150, 153, 144, 139, 129, 134, 141, 131, 141, 145, 143, 128, 131, 137, 127, 132, 150, 129, 140, 136, 137, 129, 139, 135, 138, 141, 137, 137, 144, 132, 138, 139, 128, 142, 136, 139, 133, 150, 141, 140, 144, 139, 137, 143, 139, 145, 130, 145, 136, 137, 138, 141, 139, 136, 134, 142, 146, 141, 133, 130, 144, 135, 137, 137, 152, 136, 134, 134, 127, 135, 137, 133, 145, 138, 138, 131, 131, 144, 138, 147, 141, 146, 135, 135, 136, 137, 138, 138, 138, 149, 144, 136, 137, 135, 136, 137, 136, 151, 144, 143, 138, 140, 138, 129, 138, 134, 133, 142, 146, 135, 128, 130, 138, 139, 138, 146, 133, 130, 134, 139, 139, 130, 136, 140, 136, 141, 135, 145, 143, 137, 134, 135, 142, 136, 141, 136, 139, 143, 145, 139, 141, 139, 133, 141, 146, 135, 145, 142, 136, 147, 137, 143, 132, 134, 154, 137, 148, 142, 148, 146, 145, 145, 141, 137, 144, 143, 138, 136, 142, 131, 138, 140, 135, 148, 124, 136, 133, 138, 141, 137, 139, 144, 131, 138, 150, 144, 139, 138, 131, 126, 136, 141, 142, 146, 138, 137, 146, 138, 144, 141, 133, 140, 142, 138, 147, 140, 127, 133, 131, 134, 134, 135, 138, 139, 141, 149, 131, 139, 139, 131, 129, 142, 139, 139, 138, 139, 135, 144, 134, 140, 135, 144, 141, 131, 147, 143, 137, 135, 144, 140, 132, 146, 143, 135, 137, 132, 144, 137, 143, 146, 138, 144, 139, 141, 144, 138, 148, 135, 138, 137, 142, 141, 132, 136, 138, 146, 147, 138, 135, 137, 149, 147, 141, 146, 141, 136, 125, 137, 140, 143, 143, 135, 140, 136, 138, 130, 141, 140, 133, 155, 136, 135, 133, 142, 129, 130, 140, 139, 144, 142, 137, 137, 132, 136, 135, 140, 140, 135, 136, 138, 133, 132, 139, 134, 148, 142, 140, 132, 128, 147, 141, 131, 143, 128, 131, 145, 130, 155, 142, 143, 137, 148, 149, 139, 136, 131, 140, 147, 134, 135, 137, 139, 133, 134, 136, 140, 140, 147, 137, 138, 139, 136, 142, 141, 137, 134, 139, 139, 146, 143, 150, 146, 142, 138, 135, 138, 134, 136, 140, 136, 132, 136, 136, 141, 128, 134, 134, 137, 148, 151, 131, 142, 135, 135, 139, 137, 134, 141, 130, 141, 140, 141, 143, 137, 146, 142, 143, 140, 139, 136, 134, 133, 139, 140, 132, 129, 140, 146, 132, 138, 143, 137, 143, 137, 135, 148, 135, 132, 136, 150, 144, 134, 140, 139, 150, 138, 142, 137, 144, 140, 130, 134, 139, 142, 144, 138, 145, 130, 145, 135, 145, 136, 139, 137, 146, 127, 137, 135, 127, 137, 135, 139, 140, 148, 139, 142, 137, 145, 132, 134, 143, 134, 138, 129, 134, 141, 142, 140, 133, 132, 155, 149, 135, 143, 147, 138, 138, 139, 135, 135, 137, 151, 129, 130, 133, 139, 141, 138, 148, 138, 137, 139, 144, 148, 149, 141, 134, 134, 144, 136, 142, 139, 135, 135, 145, 138, 140, 145, 137, 139, 135, 131, 133, 140, 144, 129, 142, 147, 142, 136, 144, 145, 140, 146, 134, 131, 140, 135, 136, 132, 136, 140, 138, 148, 135, 131, 133, 134, 159, 145, 145, 136, 139, 131, 129, 139, 146, 136, 129, 139, 139, 148, 150, 134, 141, 133, 137, 134, 151, 140, 139, 142, 130, 128, 143, 141, 132, 131, 143, 131, 144, 144, 134, 147, 143, 134, 136, 143, 148, 143, 138, 141, 144, 147, 144, 141, 142, 135, 139, 135, 132, 143, 145, 145, 139, 143, 141, 139, 146, 143, 130, 131, 137, 146, 143, 145, 138, 142, 140, 146, 138, 136, 137, 131, 139, 144, 140, 139, 137, 140, 139, 133, 135, 138, 134, 141, 135, 130, 142, 132, 143, 139, 139, 139, 147, 135, 134, 140, 134, 141, 144, 133, 135, 137, 135, 137, 142, 141, 144, 140, 137, 147, 144, 133, 137, 136, 137, 131, 144, 138, 145, 132, 131, 145, 141, 137, 136, 144, 140, 138, 137, 137, 136, 141, 137, 138, 135, 148, 135, 134, 134, 129, 145, 136, 133, 141, 136, 142, 141, 142, 141, 131, 130, 133, 133, 139, 139, 133, 146, 142, 132, 132, 147, 135, 136, 144, 133, 145, 135, 133, 141, 141, 147, 144, 139, 137, 133, 145, 149, 143, 136, 137, 138, 131, 139, 144, 132, 148, 128, 140, 131, 134, 132, 135, 136, 147, 133, 142, 143, 138, 136, 136, 131, 135, 144, 145, 135, 130, 133, 142, 132, 134, 142, 138, 132, 141, 140, 144, 145, 137, 141, 142, 150, 137, 135, 145, 139, 142, 141, 142, 136, 133, 143, 134, 146, 139, 147, 138, 134, 140, 133, 140, 132, 139, 135, 131, 141, 131, 131, 151, 131, 134, 134, 129, 145, 137, 140, 141, 140, 137, 142, 144, 133, 142, 136, 136, 137, 138, 145, 138, 154, 139, 144, 147, 135, 145, 138, 140, 138, 142, 140, 143, 155, 138, 135, 133, 139, 142, 132, 138, 137, 140, 138, 137, 133, 147, 133, 133, 135, 136, 133, 150, 139, 132, 143, 146, 139, 129, 147, 139, 139, 149, 152, 141, 134, 132, 129, 139, 132, 145, 144, 144, 136, 140, 136, 144, 145, 138, 140, 143, 134, 145, 141, 137, 141, 135, 140, 134, 132, 141, 144, 138, 136, 141, 134, 130, 141, 134, 128, 113, 139, 137, 147, 146, 156, 141, 152, 144, 136, 141, 141, 134, 138, 129, 143, 133, 137, 137, 135, 138, 147, 137, 143, 149, 147, 133, 142, 126, 126, 136, 136, 135, 144, 136, 135, 138, 133, 140, 135, 127, 135, 139, 143, 139, 134, 137, 137, 141, 142, 124, 133, 140, 136, 126, 143, 145, 136, 133, 131, 138, 138, 141, 127, 129, 133, 135, 139, 133, 140, 136, 137, 131, 136, 143, 141, 145, 147, 134, 138, 148, 145, 142, 147, 155, 140, 143, 144, 133, 143, 134, 136, 157, 135, 131, 141, 149, 139, 141, 133, 140, 146, 139, 133, 144, 140, 141, 139, 137, 136, 136, 136, 139, 128, 152, 152, 147, 136, 145, 146, 125, 141, 140, 148, 132, 133, 135, 141, 149, 141, 135, 146, 143, 137, 138, 135, 150, 138, 132, 134, 137, 138, 134, 142, 139, 137, 127, 134, 147, 131, 140, 135, 144, 137, 136, 141, 139, 140, 138, 137, 135, 136, 138, 138, 141, 141, 143, 129, 136, 137, 142, 129, 143, 136, 140, 143, 139, 136, 139, 134, 144, 144, 138, 148, 143, 146, 136, 148, 143, 159, 138, 141, 144, 141, 137, 138, 134, 143, 135, 141, 143, 136, 139, 130, 141, 154, 132, 140, 138, 140, 146, 144, 144, 141, 145, 140, 125, 138, 142, 144, 136, 129, 132, 138, 137, 137, 137, 147, 146, 139, 133, 142, 146, 142, 142, 137, 144, 142, 141, 137, 136, 138, 140, 137, 139, 127, 142, 132, 144, 135, 136, 137, 139, 142, 142, 132, 142, 132, 123, 140, 140, 139, 133, 126, 133, 135, 135, 135, 135, 149, 138, 136, 140, 136, 139, 140, 138, 154, 140, 138, 135, 133, 146, 139, 134, 134, 138, 142, 139, 148, 141, 148, 144, 145, 138, 137, 151, 135, 138, 134, 135, 149, 136, 139, 151, 143, 152, 151, 125, 139, 137, 136, 138, 144, 131, 144, 146, 129, 142, 140, 137, 136, 142, 145, 137, 131, 143, 138, 141, 144, 134, 134, 138, 132, 136, 147, 144, 132, 140, 146, 125, 141, 148, 140, 136, 141, 132, 137, 139, 133, 143, 145, 137, 147, 153, 139, 143, 131, 147, 148, 139, 137, 139, 135, 139, 131, 131, 134, 131, 140, 143, 135, 142, 151, 154, 145, 140, 139, 138, 143, 133, 151, 152, 139, 134, 142, 140, 141, 135, 137, 138, 135, 133, 135, 133, 150, 142, 132, 142, 142, 139, 130, 140, 137, 135, 152, 142, 142, 143, 140, 150, 135, 132, 133, 156, 137, 151, 147, 143, 143, 144, 136, 130, 136, 132, 154, 132, 134, 134, 133, 134, 138, 144, 149, 135, 137, 138, 137, 145, 126, 126, 144, 138, 149, 134, 136, 135, 137, 144, 140, 138, 141, 129, 141, 136, 139, 131, 138, 138, 139, 131, 144, 134, 141, 138, 143, 133, 137, 146, 140, 145, 136, 145, 131, 127, 136, 133, 138, 145, 130, 135, 132, 149, 151, 148, 142, 143, 136, 142, 139, 146, 135, 140, 132, 142, 144, 135, 145, 137, 145, 140, 132, 131, 139, 140, 134, 145, 149, 143, 140, 144, 138, 140, 144, 148, 140, 144, 132, 148, 136, 140, 138, 136, 131, 137, 138, 134, 131, 147, 138, 129, 143, 140, 142, 139, 136, 139, 131, 149, 133, 135, 129, 131, 145, 134, 156, 147, 136, 130, 133, 126, 151, 140, 133, 141, 138, 140, 136, 138, 142, 146, 141, 126, 130, 131, 139, 144, 145, 139, 145, 114, 148, 138, 138, 130, 142, 130, 134, 146, 139, 137, 143, 131, 135, 143, 131, 135, 140, 149, 145, 121, 147, 135, 142, 150, 139, 147, 140, 139, 138, 140, 147, 129, 141, 144, 126, 142, 140, 134, 147, 142, 142, 135, 147, 148, 138, 139, 147, 137, 144, 145, 137, 142, 137, 148, 139, 139, 140, 140, 143, 149, 142, 138, 145, 147, 141, 144, 152, 139, 134, 128, 136, 155, 136, 134, 135, 145, 135, 139, 145, 128, 138, 138, 144, 143, 138, 138, 136, 139, 141, 145, 138, 143, 144, 135, 157, 135, 141, 134, 126, 148, 140, 147, 146, 139, 142, 151, 144, 133, 147, 142, 141, 146, 128, 129, 137, 142, 138, 130, 138, 135, 137, 145, 147, 150, 140, 145, 131, 143, 146, 127, 143, 141, 153, 136, 139, 134, 144, 145, 143, 142, 136, 143, 136, 152, 140, 131, 137, 137, 127, 136, 151, 139, 143, 160, 136, 142, 141, 138, 131, 139, 135, 140, 150, 139, 157, 141, 140, 146, 139, 158, 139, 135, 153, 139, 139, 134, 137, 139, 134, 139, 147, 143, 145, 136, 144, 139, 147, 144, 150, 145, 142, 141, 142, 127, 146, 140, 140, 149, 140, 136, 133, 137, 147, 134, 125, 139, 137, 150, 142, 139, 136, 147, 142, 137, 139, 134, 131, 145, 149, 137, 136, 122, 144, 147, 141, 131, 117, 142, 150, 146, 127, 141, 136, 136, 133, 142, 136, 135, 143, 143, 131, 137, 146, 138, 129, 135, 142, 147, 141, 137, 135, 147, 135, 144, 151, 138, 144, 134, 135, 150, 142, 132, 142, 150, 148, 131, 138, 134, 138, 133, 143, 131, 132, 141, 133, 131, 132, 138, 134, 140, 146, 133, 151, 141, 141, 143, 132, 137, 141, 139, 126, 145, 140, 137, 147, 134, 148, 136, 144, 141, 137, 140, 135, 143, 135, 134, 140, 149, 150, 133, 144, 146, 139, 140, 131, 143, 146, 136, 136, 135, 142, 139, 143, 146, 146, 141, 137, 148, 132, 137, 143, 144, 138, 142, 143, 133, 133, 141, 139, 139, 135, 141, 148, 135, 130, 134, 142, 139, 143, 160, 142, 140, 136, 136, 128, 140, 139, 133, 133, 146, 133, 151, 130, 150, 134, 135, 137, 143, 144, 136, 143, 130, 136, 141, 141, 145, 147, 135, 130, 132, 153, 142, 141, 129, 141, 136, 137, 140, 148, 135, 135, 137, 148, 146, 137, 154, 140, 132, 136, 143, 128, 142, 138, 132, 140, 134, 153, 127, 140, 154, 145, 143, 127, 140, 131, 136, 141, 145, 132, 132, 129, 136, 145, 137, 140, 143, 140, 143, 134, 136, 142, 143, 140, 145, 130, 132, 139, 130, 141, 143, 135, 145, 137, 149, 147, 134, 143, 142, 150, 130, 124, 142, 142, 140, 143, 138, 140, 141, 139, 136, 141, 144, 137, 131, 137, 141, 133, 133, 133, 144, 130, 144, 138, 146, 141, 129, 134, 142, 139, 134, 143, 127, 131, 134, 138, 139, 139, 145, 137, 131, 136, 142, 136, 124, 138, 138, 149, 142, 119, 140, 134, 130, 138, 140, 140, 124, 136, 124, 141, 133, 129, 133, 140, 135, 144, 133, 129, 136, 137, 130, 141, 133, 127, 133, 144, 137, 131, 133, 138, 118, 135, 148, 138, 143, 136, 141, 136, 152, 133, 141, 139, 134, 140, 138, 138, 129, 138, 149, 145, 146, 145, 146, 143, 140, 131, 135, 134, 137, 146, 144, 149, 143, 128, 141, 133, 136, 127, 139, 140, 143, 128, 146, 134, 142, 141, 136, 138, 144, 130, 134, 138, 147, 141, 139, 136, 145, 148, 135, 142, 154, 138, 134, 146, 137, 156, 142, 134, 147, 135, 143, 141, 138, 144, 138, 140, 128, 138, 144, 133, 146, 143, 134, 137, 133, 122, 133, 141, 143, 137, 137, 146, 138, 139, 147, 135, 134, 139, 140, 141, 132, 148, 138, 138, 136, 146, 139, 134, 146, 136, 131, 151, 141, 139, 139, 127, 141, 146, 137, 147, 144, 148, 129, 141, 133, 135, 134, 126, 145, 141, 141, 139, 135, 145, 140, 129, 151, 132, 138, 131, 133, 141, 137, 134, 127, 139, 148, 149, 133, 164, 131, 137, 141, 138, 134, 134, 149, 134, 134, 124, 119, 140, 138, 125, 145, 143, 138, 142, 142, 139, 143, 131, 143, 141, 130, 140, 135, 126, 140, 129, 138, 134, 141, 139, 137, 133, 140, 136, 141, 141, 127, 146, 133, 136, 129, 139, 140, 141, 146, 137, 140, 130, 140, 128, 140, 135, 149, 141, 138, 145, 138, 142, 144, 138, 138, 135, 140, 142, 143, 140, 140, 138, 141, 141, 151, 146, 132, 148, 152, 129, 143, 142, 130, 138, 137, 129, 133, 135, 153, 135, 135, 133, 146, 138, 138, 141, 141, 140, 141, 137, 139, 124, 140, 140, 143, 139, 146, 147, 136, 140, 144, 138, 133, 144, 127, 132, 140, 135, 147, 138, 140, 133, 143, 134, 136, 143, 137, 141, 132, 143, 139, 142, 143, 138, 139, 135, 134, 151, 132, 135, 129, 143, 140, 141, 137, 137, 147, 153, 133, 130, 136, 130, 143, 141, 136, 143, 139, 144, 142, 139, 144, 148, 138, 138, 149, 134, 134, 146, 136, 147, 146, 157, 131, 133, 144, 146, 141, 144, 130, 146, 136, 133, 134, 134, 142, 138, 137, 131, 127, 140, 135, 146, 137, 135, 134, 134, 154, 142, 131, 138, 131, 136, 131, 141, 136, 132, 150, 145, 131, 134, 138, 139, 143, 138, 142, 136, 132, 139, 160, 142, 138, 133, 138, 135, 136, 139, 145, 136, 138, 142, 139, 148, 137, 145, 133, 133, 139, 143, 142, 143, 139, 146, 136, 147, 140, 146, 143, 142, 132, 126, 143, 138, 130, 140, 127, 129, 141, 148, 138, 133, 136, 127, 127, 138, 137, 149, 139, 143, 130, 147, 145, 142, 136, 137, 135, 142, 154, 142, 138, 139, 138, 128, 148, 147, 143, 121, 146, 136, 147, 145, 141, 154, 141, 135, 145, 141, 128, 133, 131, 138, 130, 143, 137, 131, 143, 134, 142, 134, 136, 142, 136, 151, 135, 138, 131, 138, 136, 136, 149, 142, 156, 132, 150, 149, 148, 137, 141, 141, 144, 142, 146, 130, 148, 142, 134, 138, 140, 147, 144, 131, 136, 144, 148, 139, 153, 132, 137, 148, 144, 137, 140, 140, 152, 150, 141, 133, 129, 141, 140, 138, 145, 145, 136, 146, 144, 125, 135, 135, 133, 134, 133, 144, 145, 143, 147, 117, 146, 138, 141, 139, 134, 134, 137, 137, 151, 136, 145, 137, 144, 141, 143, 128, 143, 140, 143, 142, 148, 147, 140, 140, 140, 137, 145, 142, 138, 138, 138, 135, 134, 141, 143, 126, 135, 130, 140, 146, 122, 140, 140, 137, 127, 138, 137, 158, 130, 136, 146, 151, 140, 139, 143, 133, 137, 130, 145, 133, 125, 143, 144, 143, 137, 151, 137, 137, 127, 132, 127, 151, 136, 128, 147, 131, 137, 143, 143, 137, 139, 132, 151, 142, 140, 138, 143, 137, 140, 135, 138, 138, 140, 138, 138, 145, 141, 145, 130, 132, 143, 138, 143, 139, 137, 138, 142, 152, 140, 141, 130, 141, 135, 136, 135, 135, 140, 138, 140, 139, 123, 143, 141, 141, 143, 131, 135, 122, 137, 131, 144, 138, 136, 132, 142, 144, 137, 132, 133, 139, 135, 144, 142, 147, 147, 128, 140, 135, 134, 138, 136, 135, 135, 138, 138, 138, 137, 142, 139, 128, 145, 128, 141, 159, 137, 127, 148, 139, 139, 136, 133, 132, 142, 141, 132, 139, 133, 136, 133, 131, 140, 140, 137, 132, 154, 137, 132, 149, 153, 144, 141, 144, 143, 134, 143, 134, 133, 128, 130, 136, 138, 135, 131, 135, 137, 145, 141, 134, 147, 144, 144, 130, 139, 134, 146, 148, 134, 129, 143, 127, 140, 135, 126, 144, 133, 153, 144, 135, 138, 148, 141, 135, 145, 141, 148, 138, 142, 148, 144, 135, 141, 142, 136, 135, 132, 148, 138, 141, 133, 140, 130, 149, 135, 141, 131, 141, 136, 145, 144, 147, 131, 130, 142, 146, 132, 129, 144, 131, 134, 140, 133, 141, 140, 140, 134, 153, 146, 146, 147, 125, 135, 140, 137, 135, 144, 144, 137, 138, 135, 138, 140, 127, 135, 134, 160, 125, 137, 129, 137, 148, 138, 149, 139, 146, 140, 139, 140, 129, 148, 141, 141, 143, 147, 152, 129, 131, 132, 145, 127, 136, 147, 142, 136, 166, 136, 131, 142, 139, 135, 147, 139, 142, 136, 144, 135, 135, 143, 150, 131, 143, 146, 145, 142, 146, 138, 149, 137, 136, 132, 138, 140, 148, 136, 136, 128, 137, 155, 141, 149, 141, 147, 140, 133, 143, 146, 145, 146, 132, 137, 155, 135, 151, 140, 139, 137, 138, 139, 139, 129, 145, 139, 135, 135, 141, 139, 137, 140, 141, 138, 141, 151, 149, 141, 141, 146, 143, 137, 138, 137, 145, 141, 148, 144, 134, 141, 140, 135, 143, 131, 146, 134, 142, 135, 135, 139, 143, 136, 144, 143, 146, 144, 142, 133, 144, 142, 140, 137, 132, 142, 133, 144, 132, 136, 128, 132, 139, 140, 148, 140, 142, 125, 135, 139, 130, 146, 133, 136, 139, 134, 143, 138, 138, 143, 137, 140, 138, 137, 133, 141, 137, 135, 137, 131, 137, 142, 131, 141, 130, 136, 142, 143, 135, 154, 134, 133, 137, 145, 139, 143, 144, 142, 139, 154, 145, 137, 151, 132, 129, 131, 144, 142, 134, 131, 147, 134, 144, 137, 143, 142, 139, 153, 135, 137, 142, 142, 138, 140, 131, 141, 139, 138, 149, 134, 141, 144, 146, 138, 152, 137, 144, 139, 147, 129, 143, 141, 133, 141, 129, 141, 138, 141, 137, 140, 147, 144, 140, 142, 135, 130, 150, 133, 150, 133, 141, 153, 141, 150, 132, 135, 142, 147, 136, 138, 143, 137, 136, 134, 130, 129, 152, 140, 140, 140, 149, 140, 137, 137, 133, 136, 135, 137, 140, 132, 135, 130, 134, 135, 140, 136, 139, 137, 140, 140, 154, 133, 140, 144, 149, 133, 140, 135, 134, 134, 138, 131, 132, 139, 149, 135, 137, 132, 138, 136, 145, 144, 144, 143, 130, 146, 131, 144, 142, 136, 141, 135, 137, 141, 138, 147, 133, 142, 146, 140, 141, 144, 136, 145, 154, 143, 139, 142, 136, 133, 138, 149, 137, 137, 139, 131, 144, 137, 146, 132, 143, 135, 135, 125, 138, 137, 140, 133, 134, 138, 140, 144, 130, 135, 141, 130, 133, 141, 137, 137, 132, 145, 135, 139, 143, 133, 138, 137, 137, 143, 140, 140, 149, 135, 141, 137, 151, 136, 140, 137, 139, 141, 137, 139, 135, 131, 137, 136, 149, 136, 145, 145, 137, 133, 141, 136, 140, 137, 138, 139, 142, 146, 140, 133, 139, 134, 145, 139, 137, 139, 128, 137, 137, 145, 137, 151, 138, 143, 130, 133, 132, 140, 142, 149, 141, 135, 151, 132, 136, 137, 135, 139, 140, 130, 136, 138, 137, 143, 140, 144, 137, 131, 137, 147, 135, 142, 126, 136, 132, 136, 134, 123, 139, 152, 135, 133, 138, 141, 131, 155, 141, 143, 142, 146, 132, 139, 145, 140, 129, 139, 141, 137, 132, 135, 134, 139, 145, 136, 140, 135, 142, 136, 132, 137, 133, 147, 137, 143, 143, 144, 136, 140, 131, 146, 135, 147, 145, 137, 134, 124, 140, 143, 138, 149, 138, 131, 146, 139, 141, 141, 140, 147, 137, 134, 143, 133, 134, 144, 138, 136, 132, 136, 141, 148, 140, 142, 141, 140, 139, 138, 134, 141, 136, 145, 134, 149, 142, 132, 145, 135, 136, 135, 139, 137, 138, 142, 143, 139, 141, 140, 139, 135, 139, 139, 137, 135, 138, 141, 142, 137, 146, 139, 155, 142, 135, 131, 139, 134, 145, 133, 140, 138, 139, 141, 145, 133, 139, 132, 139, 140, 137, 140, 134, 134, 143, 141, 132, 134, 138, 135, 139, 137, 128, 140, 137, 141, 145, 138, 134, 146, 136, 143, 140, 140, 137, 139, 145, 136, 135, 146, 140, 143, 141, 141, 142, 130, 144, 130, 145, 140, 148, 138, 135, 138, 137, 141, 136, 132, 139, 140, 135, 137, 135, 137, 143, 132, 135, 142, 146, 136, 136, 135, 135, 145, 139, 132, 130, 132, 141, 140, 139, 138, 146, 136, 138, 136, 135, 135, 143, 137, 143, 136, 135, 137, 141, 144, 140, 141, 135, 147, 136, 139, 132, 144, 141, 136, 130, 135, 143, 130, 140, 133, 133, 135, 136, 132, 141, 140, 146, 136, 140, 133, 130, 138, 136, 133, 134, 140, 137, 128, 134, 139, 143, 151, 136, 141, 132, 143, 139, 141, 140, 140, 143, 136, 141, 143, 139, 136, 141, 134, 141, 136, 143, 135, 135, 136, 135, 142, 142, 134, 142, 142, 136, 134, 137, 145, 135, 138, 136, 139, 141, 139, 130, 145, 141, 135, 144, 136, 132, 136, 135, 140, 147, 150, 143, 138, 133, 137, 138, 146, 139, 141, 137, 136, 137, 140, 136, 131, 127, 146, 140, 141, 145, 138, 138, 142, 136, 140, 139, 136, 146, 138, 136, 144, 140, 138, 147, 136, 133, 136, 138, 135, 139, 148, 134, 141, 147, 137, 143, 141, 147, 140, 140, 138, 139, 133, 143, 134, 138, 134, 134, 144, 144, 139, 131, 140, 146, 142, 144, 133, 136, 132, 138, 135, 142, 134, 141, 145, 136, 142, 137, 142, 129, 140, 137, 140, 142, 137, 139, 135, 134, 137, 135, 135, 135, 143, 138, 133, 131, 141, 137, 137, 133, 136, 139, 141, 136, 151, 146, 140, 139, 133, 138, 135, 135, 136, 138, 140, 136, 137, 133, 137, 137, 143, 139, 141, 138, 148, 135, 144, 140, 134, 141, 149, 141, 135, 143, 145, 141, 134, 143, 137, 138, 142, 145, 139, 142, 138, 143, 137, 141, 138, 139, 151, 142, 133, 140, 137, 133, 129, 142, 142, 124, 140, 143, 142, 144, 136, 135, 140, 136, 140, 141, 137, 138, 139, 135, 145, 139, 142, 134, 138, 137, 138, 139, 145, 139, 144, 136, 140, 144, 135, 139, 138, 142, 141, 139, 142, 136, 134, 138, 129, 146, 135, 143, 136, 137, 135, 141, 133, 146, 138, 138, 141, 140, 133, 138, 139, 137, 141, 137, 139, 134, 137, 135, 140, 136, 147, 139, 138, 137, 138, 135, 146, 144, 135, 136, 146, 135, 139, 143, 148, 132, 136, 142, 133, 144, 138, 143, 132, 142, 141, 135, 138, 126, 143, 143, 142, 140, 140, 144, 136, 143, 133, 136, 140, 142, 136, 143, 136, 137, 139, 139, 138, 132, 141, 140, 143, 137, 149, 141, 142, 136, 140, 141, 150, 136, 137, 134, 143, 135, 134, 138, 149, 142, 140, 139, 146, 137, 138, 135, 141, 141, 136, 140, 145, 142, 140, 139, 137, 137, 138, 134, 141, 145, 134, 136, 142, 141, 134, 135, 137, 138, 131, 140, 142, 129, 138, 140, 145, 136, 136, 137, 139, 135, 144, 145, 144, 131, 144, 138, 139, 126, 139, 144, 138, 144, 147, 141, 134, 140, 141, 135, 142, 142, 141, 135, 142, 138, 146, 139, 141, 141, 143, 134, 141, 133, 142, 146, 135, 139, 136, 144, 136, 135, 140, 146, 136, 146, 147, 142, 134, 138, 139, 137, 132, 137, 143, 136, 134, 143, 136, 150, 138, 141, 137, 137, 133, 141, 135, 148, 147, 132, 133, 139, 141, 136, 143, 135, 139, 134, 145, 143, 142, 138, 132, 133, 141, 134, 138, 143, 132, 143, 138, 141, 136, 146, 133, 133, 124, 141, 136, 150, 129, 138, 143, 139, 141, 141, 147, 134, 139, 142, 140, 126, 139, 141, 143, 141, 147, 138, 138, 130, 146, 144, 131, 136, 143, 137, 138, 139, 139, 144, 132, 162, 131, 137, 132, 143, 133, 132, 142, 135, 141, 149, 136, 140, 138, 136, 136, 135, 134, 143, 135, 137, 138, 132, 133, 139, 140, 141, 152, 134, 139, 141, 142, 129, 139, 131, 139, 151, 136, 145, 128, 146, 137, 131, 133, 136, 134, 141, 131, 137, 146, 134, 137, 138, 139, 143, 136, 144, 137, 135, 129, 133, 138, 138, 143, 133, 142, 146, 133, 136, 137, 145, 134, 152, 139, 144, 136, 137, 136, 142, 140, 131, 140, 140, 139, 136, 139, 138, 132, 133, 144, 133, 128, 138, 139, 141, 141, 138, 139, 143, 126, 141, 140, 143, 129, 143, 141, 137, 135, 144, 135, 136, 138, 143, 141, 133, 141, 136, 131, 137, 134, 138, 133, 136, 136, 140, 137, 132, 145, 148, 137, 136, 138, 134, 141, 133, 138, 133, 136, 138, 133, 145, 136, 141, 142, 136, 147, 143, 137, 135, 141, 146, 133, 133, 136, 139, 140, 137, 140, 141, 141, 147, 141, 132, 140, 130, 133, 138, 136, 135, 134, 139, 144, 140, 147, 137, 141, 139, 141, 137, 125, 147, 142, 140, 150, 141, 142, 139, 143, 139, 138, 140, 132, 131, 135, 141, 135, 141, 137, 137, 134, 134, 136, 136, 150, 133, 139, 141, 138, 139, 139, 142, 140, 135, 134, 136, 142, 141, 139, 133, 129, 141, 139, 140, 155, 132, 142, 132, 137, 144, 133, 137, 137, 134, 135, 141, 137, 136, 133, 137, 131, 139, 143, 131, 134, 138, 147, 131, 139, 138, 136, 136, 144, 133, 139, 134, 145, 134, 136, 144, 133, 135, 141, 133, 137, 137, 140, 150, 139, 129, 139, 143, 135, 135, 133, 142, 136, 142, 134, 142, 143, 150, 140, 139, 138, 136, 138, 134, 144, 133, 142, 140, 133, 143, 134, 136, 140, 142, 136, 135, 158, 137, 141, 135, 127, 145, 140, 144, 131, 141, 140, 146, 133, 129, 135, 141, 143, 141, 137, 140, 153, 136, 140, 147, 143, 135, 138, 138, 136, 141, 141, 139, 144, 147, 147, 140, 141, 148, 140, 147, 142, 136, 141, 132, 144, 136, 141, 146, 138, 142, 140, 138, 149, 137, 129, 147, 135, 140, 148, 134, 146, 139, 142, 137, 136, 138, 132, 132, 133, 142, 134, 137, 142, 135, 138, 134, 137, 135, 144, 142, 129, 138, 137, 135, 132, 141, 138, 146, 136, 137, 148, 140, 135, 137, 138, 138, 131, 135, 134, 143, 139, 139, 134, 133, 139, 142, 132, 137, 136, 140, 148, 150, 150, 155, 141, 121, 143, 147, 135, 141, 138, 143, 132, 148, 153, 141, 140, 136, 133, 139, 136, 126, 124, 139, 140, 134, 138, 134, 148, 141, 139, 142, 142, 142, 126, 142, 139, 147, 139, 142, 135, 142, 144, 138, 140, 145, 137, 138, 136, 130, 137, 148, 146, 143, 152, 137, 133, 134, 143, 142, 117, 149, 127, 147, 151, 138, 142, 136, 140, 134, 142, 138, 140, 132, 140, 141, 146, 139, 146, 123, 128, 138, 134, 119, 133, 147, 133, 139, 137, 137, 137, 139, 144, 145, 133, 138, 135, 127, 133, 140, 141, 145, 141, 138, 141, 136, 130, 131, 137, 135, 135, 130, 152, 138, 135, 143, 133, 145, 138, 134, 140, 141, 147, 148, 137, 129, 137, 135, 138, 139, 140, 140, 136, 134, 134, 137, 141, 135, 144, 134, 138, 143, 139, 147, 138, 137, 136, 147, 138, 138, 145, 137, 138, 140, 141, 137, 141, 132, 138, 140, 138, 138, 148, 137, 140, 135, 136, 134, 136, 131, 143, 142, 140, 138, 135, 140, 143, 136, 131, 139, 135, 145, 144, 140, 140, 143, 131, 130, 139, 136, 142, 139, 137, 143, 137, 136, 138, 135, 142, 130, 136, 136, 130, 148, 144, 138, 144, 139, 146, 137, 146, 143, 139, 140, 132, 140, 142, 144, 150, 153, 143, 147, 142, 128, 136, 133, 156, 142, 137, 141, 142, 135, 139, 141, 134, 133, 145, 149, 134, 148, 141, 151, 133, 139, 136, 128, 140, 131, 145, 149, 150, 130, 133, 141, 126, 146, 139, 137, 137, 147, 147, 142, 135, 149, 136, 140, 139, 140, 131, 144, 139, 139, 129, 146, 132, 135, 144, 155, 141, 137, 139, 138, 139, 141, 133, 138, 155, 138, 151, 143, 131, 133, 136, 137, 138, 141, 148, 148, 124, 145, 141, 145, 136, 135, 138, 142, 140, 147, 133, 142, 138, 139, 134, 138, 139, 134, 121, 137, 131, 145, 142, 131, 139, 144, 147, 145, 150, 146, 133, 141, 145, 145, 142, 134, 149, 135, 135, 131, 134, 142, 130, 138, 140, 129, 134, 116, 132, 141, 141, 127, 138, 142, 144, 142, 140, 137, 137, 128, 139, 137, 133, 151, 134, 137, 133, 148, 148, 133, 133, 143, 130, 130, 134, 138, 130, 149, 146, 137, 135, 130, 143, 132, 145, 146, 140, 130, 134, 133, 140, 132, 140, 142, 140, 131, 143, 138, 134, 140, 132, 141, 143, 141, 147, 139, 136, 130, 145, 138, 150, 134, 135, 147, 138, 135, 136, 145, 137, 151, 142, 145, 142, 151, 136, 133, 131, 132, 134, 135, 151, 138, 129, 138, 136, 146, 140, 150, 151, 142, 137, 143, 134, 134, 132, 140, 136, 134, 146, 141, 154, 131, 139, 134, 140, 140, 137, 149, 140, 135, 138, 138, 131, 137, 168, 138, 142, 146, 127, 148, 134, 141, 142, 134, 143, 137, 138, 140, 141, 145, 145, 144, 143, 142, 123, 140, 143, 140, 136, 142, 143, 134, 147, 134, 137, 146, 146, 139, 136, 134, 137, 143, 135, 149, 139, 133, 128, 137, 136, 129, 137, 140, 137, 148, 139, 133, 138, 135, 145, 143, 147, 133, 143, 138, 144, 132, 145, 143, 153, 144, 143, 130, 141, 145, 146, 132, 154, 131, 147, 135, 143, 140, 144, 142, 136, 131, 135, 139, 143, 148, 146, 130, 140, 129, 138, 128, 150, 136, 133, 137, 127, 139, 130, 143, 137, 146, 147, 139, 134, 132, 145, 150, 129, 133, 130, 128, 137, 137, 131, 135, 139, 134, 145, 133, 142, 144, 132, 137, 136, 138, 141, 136, 132, 137, 150, 137, 127, 142, 139, 152, 146, 140, 146, 142, 136, 139, 136, 135, 144, 151, 135, 138, 146, 134, 134, 131, 141, 144, 148, 129, 136, 133, 146, 139, 133, 142, 138, 137, 140, 134, 142, 132, 138, 137, 135, 135, 138, 139, 137, 136, 145, 151, 136, 140, 142, 140, 148, 146, 145, 140, 139, 140, 137, 138, 144, 141, 131, 143, 132, 141, 146, 131, 138, 142, 136, 153, 132, 137, 130, 148, 135, 141, 143, 146, 135, 134, 137, 135, 134, 141, 139, 140, 142, 122, 135, 138, 137, 129, 138, 143, 148, 142, 129, 134, 147, 148, 131, 135, 131, 141, 134, 127, 142, 142, 140, 144, 142, 143, 141, 140, 132, 144, 132, 136, 139, 141, 127, 135, 140, 143, 138, 150, 129, 131, 134, 143, 143, 132, 132, 136, 140, 139, 137, 137, 146, 141, 147, 146, 137, 137, 140, 139, 145, 143, 138, 145, 147, 138, 144, 140, 137, 139, 146, 134, 144, 141, 141, 137, 154, 138, 149, 133, 141, 145, 142, 133, 143, 142, 134, 140, 144, 134, 134, 139, 134, 141, 134, 141, 137, 132, 142, 133, 138, 142, 135, 143, 139, 133, 143, 146, 139, 140, 137, 152, 143, 135, 127, 135, 137, 143, 139, 150, 143, 135, 146, 134, 134, 142, 139, 137, 135, 124, 149, 143, 137, 166, 143, 148, 145, 147, 127, 139, 133, 130, 135, 137, 128, 141, 141, 136, 143, 132, 142, 138, 139, 133, 143, 137, 133, 136, 138, 138, 139, 135, 142, 140, 136, 138, 140, 144, 148, 143, 137, 137, 145, 140, 138, 148, 133, 138, 132, 134, 137, 138, 148, 130, 138, 131, 133, 141, 139, 132, 148, 140, 142, 133, 135, 138, 135, 134, 143, 142, 142, 139, 136, 129, 142, 136, 129, 147, 141, 147, 141, 141, 142, 149, 149, 143, 129, 144, 129, 137, 149, 147, 139, 132, 137, 140, 150, 146, 140, 148, 149, 139, 136, 138, 139, 135, 136, 124, 141, 144, 147, 130, 138, 144, 139, 136, 137, 150, 140, 159, 138, 128, 141, 134, 139, 152, 144, 128, 139, 150, 142, 133, 133, 143, 139, 152, 144, 132, 137, 125, 139, 142, 155, 137, 141, 141, 145, 139, 144, 134, 135, 139, 137, 139, 138, 133, 120, 133, 136, 138, 142, 141, 141, 135, 134, 138, 137, 148, 147, 144, 148, 134, 142, 137, 145, 130, 138, 139, 135, 145, 132, 137, 146, 138, 140, 140, 132, 141, 138, 137, 134, 149, 139, 136, 139, 140, 140, 141, 128, 146, 135, 129, 128, 135, 146, 132, 141, 138, 138, 138, 131, 138, 142, 142, 140, 145, 130, 160, 143, 136, 133, 135, 137, 140, 147, 131, 136, 134, 144, 142, 140, 137, 136, 132, 137, 145, 134, 134, 135, 131, 143, 141, 137, 129, 147, 138, 137, 151, 142, 128, 135, 136, 142, 146, 135, 146, 129, 135, 136, 147, 133, 135, 134, 145, 139, 133, 136, 134, 144, 132, 125, 131, 148, 133, 134, 133, 133, 137, 134, 143, 135, 147, 129, 133, 146, 143, 141, 131, 142, 145, 137, 136, 127, 134, 139, 143, 128, 134, 144, 145, 138, 144, 133, 142, 139, 139, 136, 136, 129, 140, 146, 140, 143, 131, 138, 143, 140, 144, 135, 138, 152, 142, 133, 135, 127, 138, 132, 131, 134, 138, 139, 143, 139, 141, 139, 142, 137, 136, 134, 134, 142, 133, 136, 143, 139, 129, 135, 142, 131, 130, 137, 139, 130, 144, 141, 138, 146, 134, 134, 130, 143, 145, 135, 147, 147, 139, 138, 144, 131, 144, 149, 142, 135, 143, 137, 135, 137, 143, 134, 141, 139, 139, 137, 135, 139, 146, 133, 133, 144, 135, 142, 147, 148, 133, 130, 143, 139, 143, 138, 141, 140, 154, 149, 142, 153, 124, 137, 141, 132, 142, 142, 141, 134, 144, 149, 132, 152, 133, 138, 131, 143, 126, 134, 142, 134, 136, 155, 137, 135, 128, 133, 141, 145, 140, 134, 149, 138, 130, 134, 131, 144, 132, 132, 138, 133, 137, 135, 140, 126, 153, 148, 148, 130, 142, 132, 143, 144, 139, 141, 144, 135, 144, 144, 141, 143, 138, 144, 141, 137, 143, 131, 134, 149, 142, 135, 146, 140, 136, 134, 144, 139, 147, 139, 138, 136, 136, 132, 133, 145, 133, 152, 143, 134, 138, 144, 138, 135, 137, 146, 138, 136, 137, 134, 145, 133, 130, 132, 151, 145, 135, 134, 134, 131, 146, 141, 141, 137, 140, 136, 137, 146, 135, 131, 141, 138, 131, 139, 141, 158, 139, 132, 136, 125, 132, 134, 144, 149, 135, 139, 136, 150, 129, 135, 145, 133, 144, 141, 145, 140, 139, 143, 138, 146, 143, 137, 132, 139, 144, 139, 144, 134, 148, 142, 138, 136, 143, 133, 140, 138, 141, 139, 134, 138, 138, 145, 136, 130, 138, 142, 140, 138, 138, 136, 137, 137, 137, 137, 141, 135, 132, 147, 126, 135, 134, 144, 137, 137, 138, 142, 140, 144, 141, 137, 135, 139, 152, 132, 136, 138, 141, 142, 145, 139, 149, 134, 140, 142, 127, 134, 143, 145, 133, 152, 137, 146, 137, 138, 139, 140, 143, 144, 132, 140, 141, 133, 125, 135, 138, 135, 137, 129, 143, 133, 150, 141, 144, 136, 141, 153, 148, 137, 148, 137, 153, 138, 135, 144, 131, 135, 131, 136, 137, 149, 134, 140, 140, 143, 155, 142, 136, 140, 140, 141, 137, 142, 151, 131, 141, 145, 130, 134, 133, 144, 154, 130, 137, 137, 140, 138, 129, 141, 140, 141, 142, 142, 134, 145, 144, 139, 147, 129, 133, 137, 126, 144, 129, 133, 149, 137, 140, 130, 150, 145, 136, 139, 147, 137, 132, 142, 141, 137, 136, 144, 133, 134, 147, 131, 134, 125, 132, 138, 141, 140, 141, 150, 137, 132, 143, 144, 131, 146, 141, 125, 137, 161, 148, 138, 143, 131, 138, 140, 140, 140, 134, 141, 140, 132, 137, 141, 140, 133, 140, 135, 131, 141, 131, 147, 144, 136, 139, 138, 141, 132, 139, 148, 152, 138, 129, 127, 139, 133, 126, 148, 140, 143, 141, 125, 133, 144, 140, 156, 134, 139, 133, 124, 137, 126, 131, 131, 151, 141, 129, 135, 131, 136, 137, 143, 143, 131, 148, 145, 142, 141, 134, 131, 146, 136, 143, 143, 146, 139, 132, 140, 133, 141, 136, 138, 128, 149, 140, 131, 144, 125, 138, 140, 153, 133, 135, 135, 146, 143, 141, 147, 137, 138, 135, 135, 151, 137, 139, 142, 141, 135, 136, 149, 139, 131, 133, 148, 126, 137, 149, 142, 131, 142, 139, 138, 142, 149, 138, 133, 130, 146, 143, 142, 135, 133, 134, 140, 141, 145, 138, 132, 139, 133, 136, 142, 133, 139, 138, 136, 137, 143, 148, 141, 129, 139, 140, 138, 135, 134, 142, 146, 138, 143, 133, 125, 137, 133, 134, 150, 142, 143, 125, 136, 142, 150, 142, 138, 129, 150, 140, 135, 125, 146, 141, 135, 135, 150, 141, 143, 154, 136, 127, 124, 142, 136, 138, 149, 147, 131, 129, 143, 147, 133, 134, 139, 130, 136, 138, 139, 136, 139, 138, 142, 133, 145, 142, 131, 133, 134, 138, 141, 138, 133, 132, 129, 147, 142, 148, 128, 139, 136, 143, 145, 144, 136, 139, 128, 136, 140, 148, 135, 133, 137, 132, 149, 138, 140, 132, 138, 139, 146, 149, 139, 130, 134, 149, 129, 132, 143, 137, 144, 135, 138, 142, 143, 140, 137, 148, 147, 121, 134, 145, 122, 128, 138, 152, 139, 136, 136, 125, 134, 136, 149, 137, 121, 131, 136, 136, 145, 140, 138, 131, 120, 137, 139, 145, 139, 148, 140, 141, 143, 141, 138, 138, 140, 131, 129, 137, 136, 134, 136, 147, 140, 151, 139, 132, 136, 144, 143, 136, 137, 135, 137, 137, 142, 130, 133, 147, 139, 142, 134, 135, 150, 147, 138, 137, 134, 136, 132, 143, 146, 134, 132, 140, 145, 135, 140, 146, 135, 132, 136, 130, 149, 139, 141, 141, 146, 136, 137, 146, 138, 139, 136, 130, 139, 138, 144, 140, 143, 149, 128, 137, 146, 137, 141, 147, 152, 144, 136, 146, 140, 145, 128, 140, 143, 136, 142, 150, 141, 143, 132, 142, 140, 133, 140, 149, 142, 138, 142, 143, 141, 130, 136, 139, 142, 133, 129, 142, 134, 125, 129, 146, 138, 156, 138, 153, 145, 130, 134, 146, 150, 136, 137, 150, 141, 133, 149, 141, 143, 141, 140, 141, 154, 148, 130, 137, 140, 153, 142, 132, 132, 125, 137, 129, 140, 129, 137, 141, 139, 136, 145, 138, 141, 143, 129, 144, 146, 139, 136, 135, 138, 128, 148, 135, 141, 133, 149, 142, 141, 140, 142, 142, 145, 142, 140, 134, 143, 137, 140, 142, 124, 144, 142, 133, 137, 142, 149, 140, 144, 146, 156, 133, 139, 144, 129, 144, 141, 134, 149, 147, 122, 148, 133, 140, 153, 132, 133, 131, 126, 144, 142, 146, 151, 130, 136, 135, 126, 145, 135, 137, 148, 151, 141, 137, 142, 140, 144, 132, 131, 133, 151, 145, 131, 156, 143, 132, 135, 131, 126, 142, 132, 137, 135, 140, 138, 129, 138, 147, 138, 138, 138, 138, 137, 152, 133, 146, 119, 136, 138, 136, 137, 132, 143, 131, 136, 143, 137, 131, 147, 139, 139, 118, 131, 139, 139, 141, 123, 137, 148, 151, 131, 146, 148, 143, 134, 142, 139, 143, 142, 139, 127, 138, 155, 139, 139, 132, 148, 134, 143, 141, 157, 136, 139, 133, 165, 139, 146, 135, 134, 130, 134, 136, 141, 131, 147, 140, 132, 139, 145, 142, 126, 138, 147, 149, 143, 135, 139, 124, 140, 125, 142, 138, 148, 140, 138, 145, 149, 141, 120, 135, 143, 128, 149, 146, 139, 136, 131, 130, 141, 139, 135, 151, 149, 152, 152, 145, 134, 139, 137, 145, 150, 153, 147, 130, 133, 128, 152, 145, 155, 124, 135, 143, 146, 142, 121, 141, 138, 141, 135, 139, 139, 153, 136, 138, 133, 142, 130, 141, 138, 138, 133, 147, 127, 148, 145, 143, 135, 144, 130, 141, 135, 137, 149, 146, 143, 147, 140, 137, 148, 149, 143, 140, 132, 138, 138, 135, 157, 134, 143, 145, 137, 141, 139, 133, 136, 142, 140, 145, 131, 134, 131, 135, 143, 141, 139, 136, 141, 133, 136, 137, 132, 141, 145, 133, 158, 133, 139, 128, 138, 151, 134, 136, 136, 135, 132, 132, 141, 141, 141, 130, 135, 148, 147, 156, 146, 145, 132, 145, 128, 145, 134, 136, 145, 140, 130, 151, 140, 148, 143, 133, 140, 129, 131, 141, 130, 131, 130, 134, 140, 139, 143, 134, 133, 135, 142, 139, 154, 126, 131, 141, 154, 143, 127, 138, 140, 137, 142, 149, 153, 134, 140, 145, 141, 142, 132, 138, 144, 140, 136, 142, 142, 140, 130, 139, 139, 133, 142, 119, 132, 124, 139, 137, 118, 149, 139, 153, 138, 151, 132, 146, 138, 143, 135, 130, 158, 127, 143, 137, 136, 143, 147, 138, 143, 142, 146, 145, 124, 137, 149, 144, 137, 138, 139, 141, 144, 126, 128, 141, 153, 138, 143, 141, 144, 147, 137, 140, 144, 138, 128, 131, 137, 144, 140, 128, 142, 147, 138, 143, 137, 138, 131, 143, 136, 146, 148, 139, 136, 136, 127, 137, 139, 132, 139, 139, 137, 139, 145, 143, 129, 137, 126, 127, 142, 143, 140, 145, 144, 134, 131, 152, 132, 121, 141, 144, 149, 142, 137, 145, 136, 128, 145, 136, 133, 125, 139, 142, 132, 132, 136, 134, 134, 153, 146, 135, 151, 136, 138, 138, 136, 134, 142, 149, 131, 126, 135, 143, 145, 155, 135, 137, 133, 129, 137, 137, 153, 148, 144, 149, 141, 136, 153, 133, 145, 134, 147, 146, 131, 141, 139, 142, 147, 141, 154, 147, 158, 143, 143, 151, 140, 138, 146, 139, 145, 139, 143, 139, 138, 147, 142, 141, 151, 137, 148, 167, 138, 118, 137, 134, 146, 151, 133, 142, 142, 137, 137, 147, 134, 146, 136, 143, 132, 141, 132, 140, 144, 153, 142, 145, 167, 134, 150, 136, 135, 138, 144, 135, 135, 132, 131, 133, 149, 139, 130, 135, 146, 143, 138, 136, 134, 140, 150, 141, 143, 142, 133, 140, 143, 139, 140, 139, 137, 138, 149, 140, 137, 139, 140, 148, 143, 139, 131, 137, 138, 135, 142, 141, 141, 137, 142, 133, 140, 139, 139, 134, 138, 131, 148, 137, 125, 142, 127, 136, 150, 141, 137, 115, 134, 130, 140, 141, 147, 139, 142, 142, 146, 139, 138, 134, 142, 131, 132, 147, 137, 135, 129, 140, 143, 143, 133, 132, 142, 139, 144, 138, 146, 141, 138, 137, 139, 133, 136, 134, 146, 135, 133, 147, 144, 136, 140, 147, 142, 137, 147, 141, 147, 130, 139, 131, 148, 138, 146, 145, 145, 132, 143, 141, 138, 142, 134, 145, 142, 137, 136, 132, 135, 137, 135, 139, 139, 128, 131, 146, 141, 133, 137, 136, 134, 142, 143, 144, 142, 142, 138, 134, 127, 144, 128, 141, 139, 133, 143, 139, 139, 134, 145, 134, 143, 139, 141, 133, 135, 147, 130, 133, 139, 145, 143, 140, 136, 144, 137, 150, 144, 112, 142, 144, 145, 149, 139, 135, 132, 136, 144, 132, 139, 144, 146, 137, 132, 129, 135, 145, 142, 145, 138, 151, 135, 130, 134, 147, 133, 145, 141, 155, 134, 143, 143, 139, 137, 140, 138, 149, 132, 134, 135, 143, 138, 137, 138, 123, 144, 147, 143, 143, 141, 134, 139, 138, 144, 142, 138, 135, 136, 137, 138, 135, 133, 132, 143, 148, 132, 129, 143, 133, 148, 133, 138, 143, 149, 131, 142, 132, 137, 132, 133, 133, 143, 140, 133, 141, 152, 141, 142, 140, 138, 139, 130, 143, 142, 138, 137, 137, 131, 140, 136, 140, 131, 138, 139, 128, 138, 149, 140, 143, 149, 136, 131, 136, 140, 133, 148, 137, 139, 138, 139, 134, 137, 141, 142, 135, 138, 137, 137, 148, 140, 146, 147, 133, 140, 139, 147, 141, 136, 146, 132, 139, 115, 134, 128, 145, 134, 134, 140, 138, 148, 139, 135, 141, 145, 146, 134, 147, 144, 131, 140, 144, 143, 133, 135, 137, 153, 141, 148, 140, 142, 132, 138, 135, 140, 142, 139, 127, 137, 135, 152, 136, 143, 144, 139, 133, 132, 129, 136, 131, 133, 138, 140, 144, 134, 127, 136, 136, 138, 146, 140, 138, 137, 143, 157, 142, 139, 132, 136, 130, 139, 140, 141, 146, 136, 139, 151, 139, 138, 144, 145, 140, 138, 136, 138, 131, 138, 138, 144, 134, 140, 135, 144, 131, 135, 135, 141, 143, 138, 128, 135, 146, 144, 138, 140, 144, 142, 139, 135, 146, 143, 131, 144, 143, 148, 143, 143, 156, 139, 139, 152, 133, 138, 137, 139, 132, 139, 138, 142, 135, 135, 135, 131, 141, 120, 137, 133, 136, 140, 133, 139, 138, 152, 137, 146, 147, 139, 141, 145, 137, 139, 145, 137, 143, 141, 135, 132, 131, 136, 135, 139, 143, 141, 134, 139, 151, 134, 125, 141, 134, 133, 155, 135, 126, 129, 144, 139, 141, 139, 130, 140, 144, 142, 144, 135, 138, 152, 139, 135, 140, 144, 146, 138, 143, 143, 134, 143, 136, 139, 132, 130, 136, 136, 136, 131, 139, 132, 127, 147, 124, 142, 145, 145, 139, 147, 136, 143, 143, 144, 133, 142, 128, 141, 140, 140, 141, 138, 139, 146, 142, 133, 135, 139, 138, 126, 134, 142, 141, 153, 156, 139, 137, 134, 143, 137, 143, 147, 133, 131, 138, 135, 137, 146, 141, 137, 146, 130, 139, 144, 131, 144, 135, 151, 143, 145, 133, 144, 133, 138, 141, 141, 135, 136, 134, 134, 139, 135, 145, 136, 141, 131, 148, 137, 127, 137, 135, 136, 142, 144, 146, 138, 139, 136, 137, 141, 133, 135, 133, 140, 140, 138, 132, 138, 136, 140, 131, 141, 124, 143, 139, 152, 139, 138, 144, 130, 135, 128, 128, 140, 135, 131, 146, 130, 130, 152, 139, 134, 134, 130, 134, 141, 140, 147, 149, 143, 143, 133, 152, 140, 143, 137, 135, 141, 145, 140, 137, 142, 142, 141, 139, 140, 137, 137, 146, 142, 140, 136, 131, 134, 144, 144, 142, 141, 142, 141, 125, 138, 139, 135, 146, 142, 130, 136, 137, 135, 137, 140, 134, 138, 134, 137, 131, 144, 140, 136, 140, 142, 128, 126, 145, 135, 142, 135, 155, 141, 141, 140, 133, 126, 143, 131, 136, 130, 138, 149, 142, 126, 150, 135, 145, 140, 138, 147, 131, 134, 151, 137, 139, 155, 142, 135, 137, 135, 145, 143, 144, 142, 134, 139, 144, 132, 143, 137, 128, 142, 134, 144, 131, 142, 135, 145, 139, 129, 142, 149, 132, 140, 139, 129, 136, 143, 134, 135, 135, 125, 136, 138, 141, 147, 136, 134, 135, 138, 138, 135, 134, 144, 124, 141, 119, 142, 142, 141, 132, 140, 141, 131, 143, 139, 129, 135, 147, 138, 144, 143, 148, 127, 137, 142, 135, 134, 140, 146, 150, 134, 140, 138, 144, 138, 146, 143, 142, 145, 135, 139, 137, 142, 135, 139, 131, 141, 142, 136, 138, 137, 138, 139, 144, 126, 153, 135, 137, 137, 137, 134, 147, 159, 139, 140, 138, 135, 134, 139, 147, 151, 134, 147, 142, 138, 129, 150, 141, 127, 143, 129, 144, 140, 135, 137, 133, 134, 141, 151, 138, 147, 140, 139, 140, 136, 145, 149, 143, 140, 140, 135, 137, 139, 137, 144, 141, 140, 140, 144, 144, 147, 138, 136, 142, 138, 140, 139, 139, 135, 136, 136, 134, 130, 134, 131, 140, 140, 132, 142, 136, 129, 135, 136, 143, 141, 129, 129, 144, 132, 139, 137, 141, 135, 143, 140, 136, 142, 144, 142, 135, 134, 148, 143, 135, 134, 148, 143, 148, 142, 137, 139, 125, 132, 134, 132, 147, 141, 140, 141, 139, 155, 142, 135, 137, 134, 135, 151, 142, 139, 133, 146, 143, 126, 139, 129, 144, 138, 129, 140, 139, 144, 138, 128, 132, 137, 134, 137, 140, 154, 137, 132, 143, 145, 132, 130, 129, 129, 128, 139, 137, 139, 140, 135, 130, 139, 134, 137, 132, 135, 143, 135, 136, 149, 138, 139, 131, 148, 149, 135, 146, 142, 136, 140, 151, 123, 138, 146, 152, 138, 145, 147, 146, 142, 140, 144, 143, 152, 134, 132, 137, 147, 142, 146, 143, 138, 143, 129, 144, 139, 143, 141, 131, 142, 135, 136, 144, 143, 141, 145, 140, 134, 134, 144, 141, 141, 140, 135, 146, 147, 137, 143, 136, 138, 135, 141, 133, 142, 149, 138, 140, 144, 135, 136, 137, 137, 139, 135, 139, 151, 130, 135, 139, 132, 130, 133, 135, 130, 152, 136, 136, 148, 144, 141, 131, 147, 130, 141, 152, 144, 139, 147, 147, 141, 141, 139, 134, 133, 140, 134, 141, 135, 135, 139, 137, 148, 131, 131, 139, 153, 136, 142, 144, 121, 132, 127, 140, 145, 139, 139, 132, 139, 149, 139, 134, 138, 149, 137, 133, 142, 137, 137, 145, 142, 127, 136, 140, 137, 138, 131, 140, 135, 139, 136, 143, 148, 137, 153, 135, 143, 135, 138, 138, 138, 143, 132, 139, 138, 143, 136, 135, 147, 138, 137, 138, 143, 143, 141, 138, 142, 137, 145, 135, 140, 140, 128, 146, 135, 146, 143, 145, 151, 140, 145, 142, 151, 141, 138, 140, 133, 151, 140, 135, 140, 130, 134, 139, 144, 146, 132, 136, 141, 135, 133, 137, 141, 128, 144, 130, 141, 143, 138, 134, 142, 134, 131, 148, 140, 135, 129, 131, 147, 131, 141, 148, 131, 136, 134, 135, 141, 142, 136, 147, 140, 130, 138, 129, 168, 143, 139, 142, 143, 131, 138, 141, 139, 137, 131, 143, 153, 138, 139, 133, 136, 141, 141, 130, 140, 141, 135, 137, 138, 138, 131, 135, 141, 138, 125, 136, 131, 138, 157, 143, 137, 141, 136, 142, 137, 140, 119, 135, 142, 140, 141, 140, 145, 129, 141, 146, 129, 137, 145, 132, 137, 137, 138, 146, 146, 134, 149, 131, 138, 144, 142, 147, 125, 150, 155, 138, 143, 131, 143, 133, 131, 134, 142, 150, 136, 138, 144, 131, 139, 151, 134, 137, 141, 125, 143, 134, 133, 133, 135, 130, 160, 138, 137, 145, 128, 139, 142, 125, 140, 135, 135, 142, 137, 137, 130, 146, 139, 131, 140, 133, 146, 130, 128, 139, 142, 123, 142, 140, 139, 141, 145, 144, 140, 129, 130, 132, 130, 136, 129, 140, 145, 136, 142, 141, 149, 138, 138, 131, 140, 140, 135, 135, 130, 135, 136, 150, 143, 144, 146, 136, 137, 133, 134, 127, 137, 136, 149, 135, 140, 129, 130, 141, 141, 137, 138, 125, 138, 135, 145, 146, 133, 139, 134, 145, 139, 133, 134, 143, 146, 136, 136, 138, 144, 153, 141, 131, 138, 136, 155, 150, 134, 143, 142, 148, 137, 134, 135, 132, 142, 132, 131, 150, 123, 162, 145, 119, 144, 146, 150, 148, 145, 128, 151, 145, 138, 137, 135, 147, 145, 132, 139, 145, 138, 135, 144, 144, 135, 145, 142, 132, 141, 145, 134, 140, 129, 138, 132, 143, 137, 137, 140, 140, 137, 143, 146, 156, 133, 144, 134, 141, 141, 140, 137, 138, 126, 140, 142, 143, 135, 136, 136, 140, 140, 139, 131, 129, 144, 134, 137, 140, 133, 126, 135, 131, 141, 140, 133, 147, 139, 140, 141, 143, 127, 136, 142, 129, 141, 141, 133, 142, 144, 136, 137, 134, 137, 141, 140, 139, 135, 135, 126, 137, 144, 135, 133, 133, 139, 141, 136, 144, 137, 141, 158, 136, 144, 137, 138, 139, 150, 136, 139, 142, 133, 127, 134, 132, 134, 141, 130, 137, 140, 129, 143, 140, 131, 141, 127, 139, 147, 139, 130, 135, 139, 125, 136, 135, 139, 135, 151, 131, 145, 137, 132, 141, 135, 141, 135, 140, 151, 136, 130, 138, 145, 131, 146, 133, 139, 137, 145, 138, 139, 147, 132, 141, 131, 137, 136, 145, 140, 137, 134, 142, 148, 132, 137, 141, 134, 141, 138, 135, 142, 132, 135, 134, 140, 145, 142, 133, 144, 133, 143, 142, 144, 145, 146, 136, 142, 154, 145, 140, 140, 138, 127, 134, 137, 139, 147, 143, 138, 141, 142, 138, 144, 139, 136, 133, 141, 142, 147, 145, 141, 134, 136, 134, 137, 140, 145, 146, 143, 132, 147, 134, 144, 135, 141, 140, 146, 139, 140, 143, 153, 140, 138, 132, 136, 149, 153, 148, 138, 131, 145, 132, 137, 143, 138, 132, 128, 136, 141, 132, 137, 139, 148, 133, 133, 140, 142, 139, 149, 143, 148, 144, 140, 137, 139, 134, 143, 133, 145, 139, 145, 149, 144, 154, 140, 139, 132, 143, 136, 146, 128, 135, 144, 143, 144, 133, 146, 142, 131, 145, 146, 146, 136, 130, 134, 145, 140, 137, 132, 144, 138, 143, 129, 140, 149, 138, 133, 138, 140, 137, 138, 140, 140, 136, 140, 140, 138, 126, 132, 136, 132, 137, 135, 133, 133, 147, 128, 146, 142, 137, 130, 138, 133, 143, 135, 136, 131, 143, 136, 143, 145, 148, 128, 148, 141, 137, 137, 140, 144, 135, 135, 130, 140, 124, 149, 136, 139, 143, 140, 134, 136, 147, 141, 135, 142, 135, 143, 136, 136, 144, 134, 146, 140, 138, 136, 129, 148, 133, 145, 137, 145, 151, 139, 134, 139, 139, 144, 138, 141, 135, 144, 142, 139, 135, 138, 134, 134, 138, 145, 136, 142, 137, 142, 139, 132, 139, 125, 135, 145, 137, 131, 134, 140, 127, 132, 129, 138, 139, 144, 138, 139, 147, 142, 141, 129, 143, 146, 132, 129, 135, 135, 140, 131, 140, 147, 133, 131, 138, 139, 146, 143, 139, 134, 138, 146, 144, 141, 139, 139, 137, 133, 149, 156, 143, 135, 137, 149, 133, 141, 149, 144, 132, 139, 138, 143, 136, 139, 134, 135, 143, 130, 136, 141, 143, 151, 143, 127, 140, 130, 137, 140, 136, 136, 141, 137, 135, 141, 141, 146, 142, 138, 130, 136, 137, 140, 132, 141, 137, 142, 132, 135, 133, 134, 139, 145, 143, 132, 140, 138, 133, 131, 131, 134, 149, 137, 134, 139, 136, 141, 136, 130, 144, 139, 138, 140, 140, 139, 139, 138, 140, 138, 143, 133, 146, 138, 146, 144, 147, 147, 144, 148, 146, 139, 143, 137, 152, 134, 145, 131, 146, 139, 132, 138, 149, 166, 142, 133, 145, 137, 141, 137, 141, 138, 144, 130, 141, 146, 131, 135, 133, 134, 138, 138, 133, 143, 140, 134, 137, 143, 147, 136, 150, 137, 140, 135, 155, 126, 133, 135, 135, 138, 142, 134, 139, 138, 146, 141, 135, 138, 130, 139, 140, 146, 138, 136, 138, 135, 143, 137, 131, 138, 142, 141, 143, 132, 140, 129, 137, 138, 146, 140, 127, 137, 138, 141, 142, 137, 136, 138, 132, 133, 136, 133, 140, 141, 138, 138, 135, 146, 135, 131, 137, 138, 138, 138, 135, 137, 131, 138, 137, 159, 137, 126, 132, 134, 140, 132, 133, 141, 149, 137, 134, 137, 136, 137, 146, 142, 144, 139, 145, 141, 157, 140, 139, 139, 139, 135, 144, 138, 136, 138, 141, 139, 150, 133, 137, 150, 138, 127, 130, 140, 139, 138, 142, 135, 137, 131, 132, 138, 143, 146, 136, 139, 131, 134, 133, 140, 142, 141, 135, 135, 142, 137, 133, 136, 143, 139, 137, 139, 135, 123, 146, 144, 149, 147, 136, 138, 140, 134, 146, 151, 143, 141, 136, 137, 145, 132, 142, 139, 145, 142, 136, 138, 136, 135, 145, 138, 135, 137, 142, 138, 148, 135, 141, 131, 137, 142, 134, 142, 130, 134, 141, 141, 141, 136, 141, 136, 136, 139, 135, 129, 142, 130, 138, 134, 141, 141, 127, 142, 136, 130, 128, 138, 141, 140, 138, 134, 141, 142, 135, 136, 142, 137, 142, 135, 130, 129, 136, 137, 135, 140, 134, 138, 141, 146, 136, 139, 137, 137, 132, 139, 144, 145, 140, 141, 145, 141, 134, 134, 134, 140, 147, 141, 144, 141, 131, 141, 132, 142, 135, 144, 138, 141, 140, 132, 150, 139, 138, 139, 136, 134, 147, 140, 148, 140, 138, 134, 135, 136, 131, 143, 143, 128, 137, 137, 139, 138, 143, 147, 140, 143, 143, 143, 138, 138, 135, 142, 140, 140, 136, 139, 147, 134, 148, 141, 136, 136, 145, 140, 141, 139, 131, 139, 145, 140, 138, 136, 145, 134, 144, 142, 134, 149, 147, 141, 145, 141, 137, 136, 143, 141, 141, 145, 140, 139, 148, 141, 136, 139, 138, 136, 135, 135, 141, 138, 130, 131, 142, 140, 132, 136, 142, 142, 137, 134, 140, 137, 145, 141, 146, 140, 141, 135, 131, 142, 135, 138, 133, 134, 136, 140, 129, 137, 139, 137, 136, 140, 139, 138, 133, 143, 131, 141, 142, 133, 139, 134, 144, 139, 140, 136, 125, 136, 140, 134, 131, 141, 143, 133, 130, 131, 143, 138, 132, 136, 130, 136, 136, 143, 139, 142, 135, 140, 141, 135, 134, 136, 150, 143, 132, 139, 138, 142, 140, 139, 133, 138, 147, 135, 143, 135, 135, 143, 137, 138, 134, 137, 138, 137, 131, 138, 134, 127, 142, 131, 141, 145, 142, 150, 143, 141, 140, 134, 133, 136, 135, 137, 146, 131, 133, 138, 141, 137, 139, 143, 136, 132, 143, 150, 126, 140, 143, 139, 142, 146, 136, 139, 146, 142, 132, 133, 144, 147, 135, 152, 143, 135, 144, 154, 133, 148, 135, 140, 148, 139, 133, 134, 145, 146, 141, 128, 142, 144, 143, 137, 132, 135, 143, 141, 135, 145, 141, 130, 135, 146, 137, 134, 150, 134, 134, 134, 135, 128, 135, 146, 147, 138, 142, 140, 140, 143, 131, 137, 142, 142, 148, 138, 151, 135, 134, 133, 139, 145, 143, 139, 139, 138, 141, 136, 127, 148, 139, 156, 150, 130, 139, 138, 138, 127, 137, 151, 137, 135, 141, 139, 135, 138, 136, 148, 131, 139, 130, 132, 135, 143, 135, 126, 136, 146, 139, 145, 137, 127, 137, 141, 135, 140, 136, 141, 131, 139, 139, 146, 148, 135, 140, 140, 148, 146, 137, 141, 133, 138, 145, 136, 130, 139, 136, 130, 149, 134, 139, 137, 143, 132, 136, 137, 135, 142, 139, 135, 135, 132, 143, 135, 125, 137, 134, 141, 142, 143, 141, 136, 141, 132, 139, 134, 129, 143, 134, 135, 137, 133, 130, 146, 147, 139, 138, 152, 143, 135, 143, 127, 138, 140, 138, 140, 133, 139, 127, 132, 138, 143, 142, 147, 152, 129, 146, 140, 135, 141, 147, 138, 140, 138, 133, 136, 145, 146, 134, 143, 136, 135, 135, 149, 136, 140, 143, 136, 136, 137, 143, 132, 145, 133, 154, 144, 137, 140, 148, 146, 135, 139, 137, 132, 129, 127, 140, 143, 140, 131, 133, 137, 149, 148, 136, 158, 136, 138, 128, 138, 133, 142, 126, 138, 134, 132, 130, 139, 128, 141, 129, 130, 131, 154, 140, 151, 124, 138, 140, 130, 138, 139, 138, 137, 125, 136, 143, 129, 132, 141, 139, 136, 135, 144, 135, 140, 138, 138, 135, 140, 140, 140, 147, 136, 142, 138, 127, 144, 137, 136, 135, 134, 149, 135, 144, 135, 134, 132, 141, 138, 133, 138, 144, 149, 129, 137, 138, 125, 135, 137, 139, 130, 134, 137, 139, 145, 128, 140, 143, 149, 146, 136, 141, 128, 138, 138, 136, 135, 138, 132, 138, 146, 146, 135, 136, 143, 124, 144, 137, 146, 139, 135, 139, 143, 146, 137, 147, 133, 150, 132, 132, 149, 137, 142, 131, 146, 130, 144, 139, 140, 123, 134, 132, 140, 145, 134, 139, 137, 140, 142, 143, 144, 136, 134, 147, 147, 147, 130, 132, 129, 136, 131, 135, 149, 143, 141, 141, 148, 133, 136, 136, 144, 136, 131, 141, 138, 132, 134, 145, 139, 137, 137, 143, 143, 135, 142, 130, 134, 142, 146, 145, 140, 153, 147, 134, 135, 152, 133, 147, 133, 128, 143, 141, 138, 135, 129, 130, 135, 134, 134, 147, 144, 132, 134, 145, 145, 128, 135, 141, 139, 147, 149, 143, 145, 149, 141, 143, 138, 141, 134, 136, 129, 130, 136, 146, 141, 143, 130, 138, 141, 138, 137, 128, 134, 142, 134, 139, 151, 136, 145, 134, 134, 151, 142, 127, 129, 145, 144, 137, 147, 143, 131, 128, 138, 136, 140, 129, 136, 141, 135, 139, 135, 144, 136, 138, 131, 134, 143, 136, 125, 130, 139, 139, 139, 147, 134, 143, 140, 135, 135, 135, 130, 135, 148, 133, 139, 140, 132, 146, 139, 137, 147, 145, 146, 136, 140, 140, 137, 143, 146, 137, 145, 135, 142, 141, 146, 135, 139, 138, 134, 138, 138, 133, 146, 136, 141, 139, 136, 139, 142, 140, 142, 137, 136, 143, 137, 141, 150, 135, 131, 137, 142, 143, 142, 142, 137, 137, 143, 144, 141, 137, 142, 134, 133, 136, 132, 140, 142, 138, 137, 133, 139, 139, 141, 138, 138, 140, 130, 132, 145, 143, 140, 147, 138, 140, 141, 139, 141, 131, 135, 142, 139, 134, 149, 140, 138, 135, 142, 142, 120, 143, 140, 136, 137, 143, 139, 138, 138, 136, 136, 138, 147, 140, 139, 137, 137, 136, 139, 134, 142, 135, 140, 139, 145, 136, 142, 141, 139, 146, 137, 138, 132, 146, 137, 138, 145, 137, 140, 141, 134, 147, 137, 124, 132, 133, 141, 141, 140, 136, 145, 148, 142, 138, 142, 138, 139, 145, 141, 138, 142, 146, 135, 136, 137, 141, 137, 137, 125, 140, 135, 139, 151, 139, 135, 136, 129, 138, 137, 137, 137, 135, 137, 141, 140, 140, 134, 133, 134, 134, 135, 134, 153, 134, 147, 135, 144, 137, 142, 141, 146, 137, 142, 143, 140, 136, 133, 135, 138, 142, 143, 140, 136, 140, 140, 145, 142, 138, 131, 138, 140, 144, 138, 134, 141, 140, 144, 137, 128, 137, 139, 138, 140, 140, 138, 139, 139, 135, 138, 140, 137, 140, 139, 137, 139, 141, 137, 138, 136, 137, 142, 132, 146, 137, 146, 140, 138, 139, 130, 141, 135, 139, 141, 136, 132, 140, 142, 136, 140, 131, 144, 142, 138, 142, 141, 137, 137, 137, 136, 134, 132, 141, 137, 137, 139, 145, 135, 136, 134, 145, 141, 135, 137, 137, 141, 133, 141, 133, 137, 145, 139, 133, 141, 147, 137, 145, 137, 138, 136, 139, 131, 137, 142, 144, 136, 139, 137, 135, 136, 136, 136, 149, 133, 139, 139, 143, 133, 134, 142, 143, 136, 142, 140, 133, 144, 133, 141, 139, 139, 146, 137, 139, 142, 133, 137, 136, 132, 139, 142, 136, 144, 135, 152, 140, 150, 145, 137, 138, 138, 138, 143, 145, 139, 144, 144, 136, 135, 134, 131, 134, 138, 134, 139, 145, 134, 141, 139, 139, 144, 136, 146, 135, 140, 129, 136, 136, 133, 141, 137, 138, 144, 141, 137, 139, 134, 143, 139, 143, 140, 138, 139, 135, 137, 135, 143, 134, 137, 140, 145, 142, 145, 134, 140, 141, 140, 130, 144, 136, 144, 119, 138, 145, 136, 138, 139, 141, 139, 138, 139, 145, 143, 135, 140, 137, 137, 134, 144, 138, 139, 139, 136, 140, 144, 143, 136, 142, 133, 138, 146, 137, 147, 142, 136, 129, 145, 140, 134, 140, 140, 143, 139, 137, 135, 139, 139, 139, 138, 139, 142, 135, 136, 136, 138, 140, 140, 139, 136, 142, 141, 142, 129, 159, 137, 134, 144, 135, 139, 146, 135, 137, 143, 137, 139, 137, 141, 140, 137, 143, 143, 137, 145, 137, 139, 136, 143, 143, 138, 140, 143, 137, 133, 142, 140, 137, 139, 138, 140, 142, 132, 141, 141, 140, 148, 138, 144, 139, 131, 131, 142, 139, 134, 141, 138, 143, 131, 144, 137, 136, 135, 137, 141, 132, 148, 135, 139, 126, 142, 140, 134, 140, 133, 141, 142, 149, 138, 145, 131, 138, 127, 140, 141, 145, 134, 148, 136, 135, 129, 139, 151, 149, 133, 135, 135, 135, 138, 142, 145, 134, 148, 137, 134, 138, 137, 134, 140, 129, 132, 142, 136, 140, 144, 141, 133, 142, 136, 134, 140, 143, 135, 137, 146, 140, 131, 139, 124, 133, 141, 123, 136, 146, 146, 141, 124, 149, 141, 132, 142, 136, 124, 130, 136, 143, 135, 132, 133, 132, 135, 138, 140, 137, 134, 138, 138, 138, 132, 140, 142, 141, 139, 141, 143, 147, 129, 139, 136, 128, 143, 130, 144, 135, 154, 135, 138, 135, 144, 141, 135, 147, 143, 135, 132, 144, 141, 142, 143, 142, 132, 127, 132, 139, 140, 139, 142, 144, 128, 132, 134, 127, 146, 133, 138, 133, 142, 137, 143, 135, 136, 131, 132, 138, 148, 140, 145, 143, 140, 137, 138, 146, 131, 142, 149, 136, 142, 149, 135, 158, 139, 140, 137, 138, 133, 148, 146, 137, 130, 137, 140, 144, 133, 136, 143, 141, 139, 141, 151, 141, 137, 140, 134, 133, 144, 143, 133, 134, 122, 137, 141, 133, 134, 128, 132, 137, 137, 140, 140, 144, 136, 140, 132, 135, 144, 137, 139, 148, 140, 135, 138, 129, 145, 142, 129, 152, 132, 129, 137, 142, 142, 140, 131, 140, 145, 136, 138, 138, 142, 132, 136, 136, 141, 134, 138, 134, 133, 139, 137, 126, 133, 151, 134, 139, 152, 153, 147, 126, 133, 133, 138, 141, 140, 153, 136, 145, 139, 144, 135, 139, 131, 135, 145, 135, 148, 143, 149, 132, 144, 139, 148, 136, 141, 141, 129, 143, 145, 145, 143, 139, 133, 139, 151, 136, 137, 136, 134, 139, 143, 135, 136, 142, 141, 134, 137, 137, 134, 145, 142, 147, 144, 138, 142, 134, 142, 155, 137, 145, 152, 140, 137, 130, 139, 139, 140, 143, 136, 141, 126, 139, 130, 137, 134, 137, 141, 129, 141, 136, 143, 133, 132, 141, 143, 134, 149, 135, 135, 136, 134, 136, 139, 136, 135, 142, 136, 139, 138, 133, 142, 151, 146, 140, 152, 130, 129, 137, 134, 132, 150, 131, 137, 132, 133, 142, 141, 130, 132, 139, 152, 137, 140, 134, 130, 132, 144, 137, 141, 147, 134, 144, 138, 135, 140, 133, 139, 130, 134, 138, 139, 145, 142, 135, 132, 142, 137, 141, 145, 140, 143, 136, 133, 137, 136, 153, 132, 142, 138, 142, 138, 133, 131, 136, 133, 139, 141, 139, 142, 127, 141, 139, 141, 140, 142, 141, 140, 144, 136, 141, 146, 132, 137, 146, 149, 140, 131, 145, 145, 130, 140, 140, 133, 140, 133, 144, 142, 139, 149, 133, 138, 143, 135, 138, 139, 134, 132, 150, 141, 135, 145, 142, 137, 141, 143, 134, 131, 135, 137, 135, 132, 127, 137, 136, 141, 135, 137, 140, 138, 143, 127, 153, 140, 130, 144, 144, 134, 138, 135, 139, 133, 139, 138, 140, 141, 143, 144, 144, 144, 139, 135, 147, 140, 139, 134, 138, 138, 147, 134, 141, 144, 140, 147, 137, 144, 138, 140, 136, 140, 144, 142, 155, 143, 142, 138, 135, 138, 144, 142, 134, 146, 139, 135, 143, 136, 145, 140, 139, 143, 143, 143, 141, 151, 138, 141, 142, 131, 141, 128, 139, 136, 139, 133, 142, 139, 147, 137, 141, 142, 139, 140, 135, 140, 143, 137, 137, 140, 139, 136, 130, 136, 140, 142, 146, 132, 142, 140, 136, 142, 138, 138, 140, 136, 137, 147, 140, 145, 140, 135, 136, 139, 133, 140, 142, 137, 131, 140, 134, 138, 133, 142, 140, 140, 141, 140, 137, 148, 139, 138, 139, 134, 139, 145, 139, 143, 140, 132, 140, 130, 136, 138, 135, 145, 136, 143, 136, 139, 144, 139, 144, 144, 131, 135, 144, 139, 135, 134, 136, 134, 137, 138, 140, 140, 132, 146, 136, 140, 136, 141, 139, 139, 140, 148, 134, 136, 142, 139, 132, 138, 143, 140, 138, 144, 152, 139, 131, 142, 139, 138, 139, 138, 140, 140, 136, 133, 138, 138, 138, 143, 135, 135, 142, 138, 139, 142, 135, 135, 139, 137, 141, 138, 139, 137, 136, 138, 125, 141, 139, 142, 136, 138, 143, 142, 147, 142, 151, 140, 138, 141, 144, 138, 142, 129, 139, 139, 135, 132, 144, 136, 141, 143, 145, 131, 136, 140, 133, 143, 134, 148, 135, 137, 138, 136, 141, 135, 135, 141, 143, 139, 143, 138, 134, 132, 135, 142, 140, 136, 142, 133, 136, 143, 138, 143, 136, 148, 137, 143, 124, 135, 140, 133, 130, 142, 135, 146, 136, 134, 138, 143, 147, 145, 138, 136, 138, 136, 139, 140, 143, 140, 138, 137, 140, 135, 142, 137, 134, 140, 138, 138, 142, 133, 136, 138, 137, 145, 140, 143, 141, 142, 137, 137, 131, 135, 137, 141, 133, 146, 143, 129, 142, 132, 132, 138, 137, 142, 142, 135, 134, 142, 135, 143, 139, 134, 140, 135, 141, 134, 142, 138, 135, 141, 136, 142, 136, 135, 139, 135, 139, 131, 137, 140, 145, 140, 144, 132, 139, 136, 141, 143, 145, 145, 135, 148, 141, 142, 143, 148, 143, 138, 131, 140, 135, 149, 137, 140, 136, 141, 137, 142, 138, 140, 139, 137, 136, 146, 140, 141, 139, 140, 136, 139, 138, 140, 132, 140, 136, 132, 143, 135, 143, 147, 145, 143, 140, 136, 136, 135, 137, 143, 135, 141, 141, 139, 138, 129, 144, 139, 141, 137, 142, 136, 139, 134, 144, 139, 139, 139, 160, 145, 137, 140, 137, 144, 145, 142, 134, 133, 136, 138, 141, 139, 145, 141, 134, 139, 137, 139, 138, 133, 140, 139, 138, 131, 141, 140, 150, 142, 130, 141, 144, 137, 140, 136, 146, 144, 138, 151, 139, 135, 134, 137, 136, 138, 138, 133, 140, 142, 140, 139, 138, 134, 139, 136, 136, 143, 137, 140, 142, 140, 138, 144, 134, 139, 144, 137, 142, 139, 142, 137, 141, 137, 145, 136, 137, 141, 140, 132, 134, 145, 134, 133, 149, 151, 139, 140, 134, 143, 143, 130, 139, 136, 143, 145, 133, 142, 139, 144, 142, 138, 151, 138, 136, 148, 151, 145, 138, 138, 142, 143, 141, 140, 145, 142, 134, 145, 148, 133, 134, 135, 141, 139, 142, 139, 133, 124, 134, 140, 137, 132, 140, 133, 140, 144, 135, 159, 127, 147, 140, 140, 139, 135, 143, 137, 144, 139, 141, 133, 139, 145, 144, 128, 131, 126, 142, 137, 141, 137, 127, 137, 130, 146, 141, 141, 141, 138, 137, 126, 141, 136, 128, 146, 138, 140, 137, 137, 133, 145, 143, 148, 148, 147, 145, 139, 124, 136, 146, 128, 143, 136, 146, 143, 135, 147, 141, 151, 136, 138, 145, 134, 141, 139, 129, 142, 138, 138, 137, 142, 144, 150, 142, 145, 141, 132, 140, 145, 138, 140, 149, 132, 147, 140, 141, 138, 142, 139, 150, 140, 140, 131, 140, 142, 140, 140, 134, 139, 139, 132, 134, 146, 134, 141, 138, 154, 148, 130, 150, 144, 141, 135, 133, 132, 144, 133, 141, 143, 130, 144, 136, 132, 128, 133, 135, 129, 136, 134, 135, 141, 137, 145, 132, 135, 137, 137, 135, 136, 130, 139, 149, 140, 133, 143, 139, 150, 133, 139, 140, 134, 142, 142, 141, 136, 138, 139, 137, 148, 143, 147, 148, 132, 138, 138, 137, 131, 138, 142, 131, 139, 141, 134, 143, 138, 145, 127, 129, 132, 136, 151, 141, 134, 139, 141, 136, 141, 131, 131, 141, 136, 141, 140, 150, 144, 149, 135, 139, 136, 143, 132, 133, 147, 145, 137, 137, 135, 139, 140, 138, 134, 149, 140, 123, 137, 136, 140, 133, 157, 135, 141, 143, 125, 141, 140, 127, 144, 138, 141, 145, 143, 137, 148, 126, 140, 136, 134, 138, 134, 143, 143, 136, 137, 135, 131, 141, 143, 139, 135, 141, 133, 143, 140, 131, 131, 137, 135, 131, 137, 139, 141, 136, 141, 139, 129, 146, 132, 134, 130, 149, 142, 148, 143, 145, 143, 142, 142, 146, 140, 143, 134, 143, 136, 134, 144, 135, 144, 140, 142, 132, 153, 150, 135, 141, 132, 136, 137, 145, 128, 140, 136, 129, 144, 136, 144, 140, 146, 138, 142, 131, 135, 143, 133, 134, 143, 137, 137, 131, 149, 147, 152, 135, 134, 139, 151, 137, 141, 135, 138, 130, 146, 144, 142, 140, 134, 131, 149, 140, 147, 135, 146, 147, 132, 147, 136, 148, 136, 130, 130, 143, 140, 142, 143, 142, 133, 135, 145, 145, 143, 140, 131, 140, 138, 140, 135, 139, 141, 133, 134, 129, 132, 146, 140, 137, 143, 138, 139, 137, 141, 131, 142, 141, 144, 129, 146, 136, 135, 126, 134, 131, 142, 144, 148, 140, 151, 133, 152, 138, 137, 136, 144, 146, 142, 132, 147, 140, 146, 143, 133, 141, 135, 137, 143, 144, 139, 140, 133, 133, 137, 138, 149, 133, 138, 136, 139, 138, 125, 143, 130, 141, 142, 146, 134, 142, 141, 144, 148, 139, 134, 145, 146, 141, 135, 135, 135, 141, 139, 129, 136, 133, 135, 148, 137, 141, 143, 142, 148, 139, 142, 139, 139, 140, 138, 136, 132, 140, 142, 145, 144, 133, 135, 143, 147, 153, 134, 144, 134, 141, 153, 138, 136, 139, 137, 135, 139, 144, 134, 128, 143, 131, 146, 144, 138, 138, 136, 158, 133, 135, 134, 131, 132, 133, 137, 147, 132, 136, 145, 138, 150, 137, 122, 144, 148, 139, 137, 135, 134, 142, 151, 135, 143, 154, 150, 140, 149, 139, 136, 141, 147, 139, 141, 137, 142, 143, 139, 144, 127, 128, 144, 134, 141, 136, 137, 137, 144, 136, 144, 146, 136, 138, 150, 141, 135, 140, 134, 136, 139, 135, 134, 145, 143, 132, 127, 146, 142, 133, 146, 130, 136, 145, 141, 139, 133, 142, 140, 139, 136, 135, 131, 141, 142, 130, 137, 132, 146, 134, 136, 144, 136, 150, 138, 141, 140, 146, 141, 151, 135, 150, 130, 140, 146, 149, 141, 146, 139, 149, 139, 148, 144, 131, 130, 148, 145, 130, 136, 142, 134, 139, 136, 142, 134, 138, 142, 138, 133, 133, 149, 139, 151, 136, 137, 143, 148, 143, 130, 141, 137, 131, 143, 127, 139, 132, 142, 132, 138, 136, 137, 146, 132, 136, 152, 135, 129, 139, 132, 148, 133, 137, 144, 135, 130, 148, 152, 148, 132, 131, 140, 136, 137, 132, 136, 157, 136, 142, 138, 143, 128, 134, 143, 144, 137, 135, 136, 135, 129, 141, 141, 141, 123, 153, 137, 141, 146, 139, 143, 142, 142, 141, 127, 136, 132, 151, 138, 133, 134, 140, 141, 135, 143, 134, 129, 136, 134, 134, 134, 133, 129, 133, 137, 136, 140, 136, 142, 137, 144, 140, 133, 137, 133, 134, 132, 140, 141, 142, 144, 136, 147, 143, 138, 141, 142, 131, 143, 146, 145, 137, 148, 141, 144, 145, 137, 146, 143, 147, 137, 136, 137, 136, 137, 138, 136, 146, 144, 135, 143, 134, 149, 139, 140, 134, 135, 145, 137, 149, 138, 140, 140, 142, 133, 130, 136, 134, 128, 141, 145, 131, 133, 129, 133, 135, 130, 135, 145, 142, 138, 133, 141, 148, 137, 145, 138, 139, 134, 141, 134, 126, 140, 128, 145, 145, 132, 142, 151, 135, 131, 144, 135, 147, 139, 149, 131, 136, 135, 135, 132, 137, 145, 127, 139, 136, 137, 139, 140, 139, 138, 147, 140, 144, 138, 135, 146, 135, 133, 139, 140, 136, 141, 122, 134, 144, 145, 143, 138, 145, 139, 143, 135, 148, 125, 139, 152, 139, 136, 135, 126, 134, 142, 141, 139, 137, 145, 139, 148, 150, 143, 140, 146, 128, 137, 138, 148, 139, 134, 136, 118, 134, 137, 141, 144, 134, 139, 140, 158, 136, 138, 145, 136, 129, 131, 139, 142, 137, 142, 143, 139, 131, 138, 135, 125, 139, 130, 142, 124, 130, 143, 144, 149, 137, 138, 136, 144, 144, 141, 136, 136, 148, 142, 131, 138, 136, 137, 147, 135, 137, 137, 133, 136, 139, 124, 140, 122, 142, 136, 142, 149, 139, 144, 140, 144, 135, 145, 142, 138, 139, 148, 139, 144, 139, 147, 138, 130, 139, 142, 145, 143, 139, 138, 143, 128, 143, 134, 123, 135, 130, 138, 139, 139, 140, 140, 128, 135, 134, 132, 133, 136, 137, 149, 132, 144, 142, 131, 128, 141, 145, 139, 136, 143, 138, 150, 140, 124, 136, 134, 134, 138, 148, 132, 144, 132, 132, 132, 137, 139, 136, 133, 152, 136, 146, 149, 141, 138, 126, 134, 138, 132, 138, 144, 139, 150, 126, 136, 139, 112, 143, 137, 135, 128, 138, 150, 142, 146, 131, 125, 148, 130, 144, 148, 150, 135, 138, 151, 149, 136, 146, 145, 137, 151, 134, 127, 135, 140, 134, 139, 137, 144, 132, 152, 149, 138, 137, 138, 138, 136, 147, 144, 139, 132, 151, 147, 136, 137, 123, 132, 140, 136, 138, 145, 160, 146, 138, 153, 144, 137, 154, 132, 142, 135, 138, 142, 127, 135, 151, 144, 151, 131, 150, 139, 144, 143, 141, 135, 133, 136, 137, 134, 142, 142, 145, 135, 140, 137, 141, 145, 131, 143, 135, 133, 148, 140, 136, 140, 137, 132, 135, 140, 134, 147, 141, 142, 148, 137, 132, 134, 136, 141, 141, 137, 130, 135, 135, 134, 135, 130, 133, 146, 134, 148, 138, 140, 107, 149, 153, 138, 141, 145, 136, 148, 141, 139, 132, 159, 133, 130, 143, 138, 140, 155, 138, 147, 138, 157, 131, 132, 137, 130, 151, 139, 137, 138, 134, 131, 140, 139, 136, 136, 138, 139, 136, 149, 139, 145, 138, 139, 134, 144, 134, 136, 139, 139, 141, 140, 131, 143, 142, 135, 136, 144, 145, 136, 143, 132, 147, 144, 134, 138, 136, 155, 141, 145, 135, 143, 150, 126, 131, 150, 134, 134, 135, 146, 139, 136, 136, 131, 116, 135, 134, 137, 136, 154, 135, 137, 135, 138, 135, 146, 137, 139, 142, 140, 136, 143, 136, 134, 143, 140, 143, 147, 136, 151, 159, 140, 130, 137, 126, 137, 137, 140, 151, 141, 136, 131, 137, 145, 145, 146, 152, 138, 141, 131, 140, 142, 144, 153, 136, 137, 142, 136, 139, 147, 148, 135, 138, 140, 135, 134, 142, 132, 136, 132, 129, 130, 141, 138, 139, 139, 144, 134, 145, 132, 136, 143, 131, 160, 143, 142, 147, 131, 134, 142, 136, 143, 134, 147, 134, 136, 138, 139, 137, 138, 149, 132, 147, 137, 133, 141, 136, 143, 134, 129, 142, 138, 136, 131, 138, 134, 135, 137, 121, 137, 157, 145, 138, 149, 150, 148, 138, 145, 139, 136, 136, 142, 135, 133, 137, 128, 153, 135, 143, 129, 137, 148, 145, 123, 133, 131, 146, 138, 131, 135, 131, 139, 140, 141, 130, 136, 139, 140, 132, 136, 139, 144, 137, 134, 142, 126, 144, 139, 125, 132, 132, 132, 130, 152, 148, 135, 141, 134, 145, 129, 143, 136, 125, 138, 143, 139, 147, 145, 135, 143, 136, 139, 131, 144, 136, 133, 134, 141, 139, 132, 130, 130, 133, 134, 140, 140, 132, 144, 138, 139, 140, 131, 149, 138, 134, 145, 145, 132, 135, 143, 131, 134, 139, 137, 143, 133, 125, 133, 138, 134, 131, 140, 137, 130, 135, 155, 144, 143, 138, 139, 148, 144, 142, 150, 127, 138, 140, 138, 136, 132, 136, 151, 149, 154, 144, 134, 141, 140, 140, 144, 134, 140, 132, 145, 142, 137, 138, 139, 142, 144, 134, 141, 126, 137, 127, 140, 143, 136, 147, 133, 153, 148, 138, 138, 139, 127, 136, 133, 135, 146, 132, 150, 149, 135, 134, 143, 130, 136, 138, 142, 137, 130, 138, 142, 143, 138, 141, 140, 144, 140, 136, 135, 145, 127, 131, 131, 148, 140, 135, 138, 148, 136, 145, 134, 146, 131, 135, 125, 144, 133, 139, 152, 135, 140, 146, 142, 135, 143, 136, 151, 137, 142, 137, 136, 128, 145, 142, 141, 139, 135, 148, 139, 138, 140, 132, 136, 151, 135, 129, 131, 140, 137, 144, 135, 140, 141, 147, 138, 138, 139, 141, 139, 155, 144, 134, 140, 136, 138, 143, 139, 140, 132, 139, 137, 151, 140, 148, 143, 130, 146, 132, 142, 138, 149, 135, 137, 132, 149, 137, 136, 140, 140, 122, 139, 144, 143, 140, 139, 133, 134, 132, 144, 136, 138, 150, 144, 132, 131, 147, 141, 142, 136, 139, 145, 147, 133, 130, 129, 143, 145, 143, 140, 136, 135, 134, 137, 137, 129, 135, 137, 139, 129, 131, 147, 134, 143, 133, 135, 135, 127, 149, 144, 139, 147, 138, 141, 136, 141, 135, 141, 142, 147, 140, 138, 141, 139, 138, 146, 148, 135, 135, 141, 141, 141, 132, 141, 130, 138, 132, 146, 141, 136, 142, 135, 138, 134, 143, 139, 138, 137, 135, 145, 130, 142, 131, 129, 141, 153, 133, 131, 136, 135, 148, 132, 141, 141, 147, 135, 142, 148, 133, 141, 128, 142, 126, 128, 146, 133, 134, 142, 138, 143, 135, 141, 139, 145, 130, 137, 140, 133, 131, 127, 145, 146, 149, 138, 141, 146, 136, 148, 142, 138, 142, 124, 157, 146, 136, 142, 140, 143, 151, 134, 120, 138, 136, 125, 122, 141, 142, 140, 134, 139, 142, 128, 141, 140, 137, 150, 144, 146, 143, 132, 137, 138, 153, 126, 128, 146, 136, 150, 143, 144, 133, 139, 139, 138, 137, 142, 143, 133, 132, 141, 130, 144, 139, 136, 130, 138, 129, 138, 132, 145, 136, 140, 145, 134, 139, 131, 135, 138, 143, 136, 136, 140, 133, 134, 140, 147, 138, 149, 145, 135, 133, 138, 135, 143, 136, 132, 134, 137, 142, 142, 142, 136, 139, 145, 132, 127, 138, 137, 147, 137, 147, 139, 137, 138, 138, 141, 142, 133, 143, 135, 124, 143, 137, 145, 140, 131, 140, 131, 134, 134, 140, 151, 138, 146, 145, 146, 141, 134, 136, 134, 145, 139, 131, 141, 151, 137, 142, 138, 147, 142, 129, 130, 128, 137, 139, 143, 146, 142, 135, 139, 140, 149, 143, 132, 135, 130, 138, 137, 135, 140, 150, 135, 147, 141, 133, 144, 126, 139, 149, 141, 143, 141, 150, 133, 138, 151, 141, 144, 142, 147, 138, 134, 135, 136, 134, 142, 140, 149, 137, 138, 125, 144, 146, 151, 144, 136, 139, 150, 143, 136, 137, 127, 137, 146, 137, 151, 136, 136, 140, 140, 132, 138, 142, 133, 136, 140, 148, 137, 140, 139, 139, 146, 142, 135, 132, 137, 140, 138, 148, 137, 133, 135, 142, 138, 149, 135, 132, 134, 139, 137, 136, 144, 147, 129, 136, 137, 137, 136, 145, 135, 135, 134, 145, 134, 140, 143, 145, 142, 141, 143, 135, 143, 135, 139, 137, 143, 137, 137, 138, 136, 134, 132, 140, 122, 133, 135, 143, 133, 140, 136, 141, 137, 130, 149, 136, 146, 144, 138, 146, 147, 138, 138, 141, 132, 144, 135, 137, 144, 139, 142, 140, 142, 137, 133, 135, 134, 138, 139, 141, 135, 139, 136, 140, 139, 143, 143, 149, 141, 147, 140, 141, 144, 136, 135, 135, 147, 139, 139, 137, 138, 130, 134, 138, 140, 138, 144, 133, 135, 141, 151, 132, 150, 149, 133, 148, 137, 140, 133, 136, 137, 145, 140, 134, 147, 132, 142, 123, 143, 143, 142, 152, 133, 136, 141, 137, 132, 139, 139, 149, 146, 143, 143, 137, 143, 138, 133, 137, 136, 135, 132, 141, 143, 138, 138, 136, 139, 140, 134, 140, 142, 137, 129, 136, 133, 135, 136, 141, 127, 136, 137, 133, 140, 145, 136, 130, 143, 131, 142, 146, 151, 137, 136, 131, 134, 145, 141, 136, 122, 146, 135, 139, 138, 144, 136, 136, 135, 140, 134, 134, 131, 137, 140, 146, 135, 148, 134, 140, 140, 147, 138, 129, 140, 139, 140, 141, 138, 143, 134, 135, 137, 145, 131, 137, 140, 142, 141, 138, 146, 139, 143, 141, 146, 138, 145, 132, 140, 141, 137, 140, 141, 137, 135, 139, 136, 141, 136, 131, 136, 145, 137, 142, 127, 130, 138, 140, 136, 140, 141, 139, 137, 135, 144, 139, 141, 141, 130, 147, 132, 135, 138, 140, 143, 134, 136, 139, 141, 145, 138, 143, 147, 142, 135, 143, 133, 138, 135, 136, 135, 131, 145, 133, 142, 136, 139, 140, 135, 140, 144, 134, 140, 141, 144, 141, 141, 143, 140, 138, 134, 139, 131, 146, 142, 140, 141, 142, 142, 134, 141, 135, 147, 138, 146, 136, 139, 147, 137, 141, 139, 145, 137, 135, 142, 130, 142, 145, 134, 125, 131, 140, 143, 140, 140, 147, 146, 141, 139, 137, 137, 140, 138, 146, 139, 136, 129, 139, 137, 136, 134, 141, 135, 137, 139, 138, 139, 144, 138, 134, 133, 144, 145, 145, 147, 146, 137, 135, 148, 132, 135, 138, 141, 133, 140, 139, 142, 125, 135, 136, 142, 136, 137, 136, 147, 140, 139, 133, 137, 146, 138, 117, 129, 140, 138, 139, 132, 141, 142, 145, 141, 143, 145, 144, 133, 140, 148, 138, 146, 149, 146, 140, 133, 142, 140, 145, 145, 143, 135, 139, 133, 130, 140, 144, 145, 141, 133, 129, 134, 138, 135, 138, 127, 129, 138, 141, 140, 145, 140, 134, 137, 142, 138, 149, 140, 134, 142, 135, 149, 139, 135, 141, 131, 135, 144, 142, 146, 143, 137, 139, 138, 138, 145, 137, 134, 136, 136, 142, 140, 136, 134, 144, 138, 133, 136, 142, 140, 143, 152, 137, 147, 133, 137, 139, 130, 148, 130, 140, 148, 148, 137, 131, 155, 146, 158, 141, 131, 137, 140, 148, 137, 152, 134, 148, 143, 142, 146, 141, 140, 137, 135, 151, 153, 141, 141, 131, 130, 138, 134, 139, 132, 148, 139, 131, 143, 139, 137, 144, 141, 139, 128, 149, 142, 151, 139, 130, 152, 136, 139, 127, 134, 135, 148, 132, 139, 146, 134, 136, 127, 133, 138, 140, 141, 133, 147, 134, 131, 131, 150, 142, 144, 141, 148, 135, 136, 148, 136, 130, 144, 140, 129, 141, 134, 133, 143, 147, 138, 139, 129, 139, 125, 143, 147, 135, 125, 139, 134, 149, 138, 150, 141, 136, 141, 137, 137, 144, 139, 150, 145, 135, 147, 141, 134, 139, 145, 145, 127, 141, 140, 141, 139, 138, 141, 135, 123, 136, 148, 136, 133, 144, 128, 141, 146, 135, 132, 134, 139, 130, 139, 141, 140, 142, 135, 143, 151, 127, 140, 150, 135, 137, 138, 144, 141, 137, 147, 140, 141, 123, 131, 131, 144, 134, 139, 138, 144, 140, 140, 145, 151, 135, 134, 151, 147, 148, 147, 127, 141, 148, 130, 137, 138, 126, 136, 143, 137, 129, 144, 143, 144, 138, 141, 126, 137, 138, 148, 144, 142, 139, 142, 140, 141, 130, 144, 144, 127, 142, 141, 143, 130, 142, 138, 146, 148, 142, 146, 136, 138, 136, 139, 141, 141, 150, 148, 124, 138, 141, 141, 145, 130, 134, 142, 158, 136, 147, 142, 138, 138, 133, 138, 143, 142, 141, 141, 138, 138, 147, 140, 134, 137, 134, 135, 115, 138, 136, 158, 141, 128, 145, 146, 136, 138, 146, 152, 146, 138, 148, 133, 150, 133, 129, 127, 138, 137, 139, 145, 152, 152, 138, 143, 139, 134, 126, 134, 140, 141, 145, 138, 145, 139, 137, 144, 145, 136, 141, 137, 149, 119, 148, 144, 137, 147, 143, 135, 152, 139, 119, 133, 137, 144, 147, 128, 140, 133, 141, 153, 150, 134, 149, 136, 150, 145, 132, 135, 140, 152, 139, 153, 156, 142, 139, 129, 139, 136, 148, 145, 154, 140, 142, 147, 139, 148, 140, 138, 140, 138, 124, 148, 136, 141, 141, 138, 142, 139, 134, 148, 145, 129, 144, 126, 147, 138, 155, 141, 128, 145, 154, 142, 144, 129, 139, 124, 139, 144, 128, 140, 138, 138, 141, 136, 140, 134, 126, 139, 138, 137, 142, 135, 143, 130, 135, 127, 140, 138, 142, 141, 139, 143, 141, 144, 138, 127, 135, 137, 141, 137, 144, 140, 134, 141, 132, 148, 133, 132, 135, 139, 164, 148, 154, 145, 130, 141, 137, 141, 139, 143, 141, 146, 149, 145, 140, 147, 132, 135, 139, 146, 134, 151, 141, 139, 119, 130, 147, 134, 148, 155, 137, 138, 142, 123, 132, 130, 135, 136, 142, 130, 136, 137, 139, 136, 140, 129, 134, 140, 136, 147, 149, 140, 134, 125, 138, 137, 138, 153, 142, 132, 139, 133, 140, 137, 147, 142, 144, 147, 137, 137, 133, 129, 139, 136, 135, 142, 138, 130, 137, 135, 130, 138, 142, 144, 145, 134, 126, 137, 125, 129, 142, 141, 138, 140, 131, 143, 135, 152, 132, 144, 146, 144, 133, 135, 135, 142, 141, 142, 133, 137, 137, 142, 143, 137, 138, 143, 133, 140, 142, 140, 137, 141, 138, 139, 138, 134, 136, 138, 131, 134, 150, 137, 139, 126, 146, 131, 133, 141, 139, 142, 143, 138, 143, 133, 132, 139, 142, 132, 145, 140, 142, 142, 140, 142, 137, 129, 131, 142, 138, 132, 146, 145, 142, 131, 139, 128, 144, 141, 138, 135, 135, 140, 139, 138, 138, 130, 138, 135, 141, 142, 139, 138, 137, 127, 136, 134, 140, 139, 141, 144, 145, 142, 136, 141, 136, 133, 138, 127, 148, 144, 134, 143, 138, 144, 134, 147, 138, 138, 142, 135, 130, 134, 131, 140, 141, 146, 143, 141, 139, 140, 144, 141, 137, 136, 144, 139, 141, 136, 133, 147, 146, 130, 139, 138, 135, 140, 140, 139, 142, 142, 137, 140, 133, 145, 135, 142, 138, 135, 153, 138, 135, 145, 142, 136, 148, 140, 136, 141, 137, 141, 143, 142, 137, 140, 136, 139, 137, 140, 129, 132, 140, 138, 138, 139, 138, 139, 140, 134, 128, 134, 143, 140, 142, 137, 147, 138, 125, 140, 135, 144, 141, 138, 133, 139, 144, 139, 138, 135, 136, 136, 135, 147, 140, 138, 139, 126, 121, 140, 141, 138, 144, 151, 130, 128, 137, 138, 142, 133, 155, 142, 137, 135, 153, 139, 140, 133, 144, 143, 135, 144, 137, 137, 141, 135, 140, 140, 139, 136, 131, 130, 139, 136, 144, 132, 141, 131, 132, 141, 140, 132, 136, 139, 142, 144, 136, 143, 138, 138, 137, 146, 149, 132, 136, 141, 139, 140, 153, 143, 137, 136, 131, 142, 132, 137, 134, 143, 139, 133, 138, 136, 142, 136, 146, 132, 133, 147, 148, 146, 139, 138, 140, 140, 142, 142, 140, 141, 143, 133, 140, 143, 138, 133, 133, 140, 138, 135, 142, 138, 135, 139, 146, 146, 147, 144, 141, 143, 136, 141, 142, 148, 140, 141, 144, 142, 142, 136, 139, 136, 135, 129, 132, 133, 135, 132, 139, 138, 142, 141, 148, 152, 143, 149, 135, 126, 144, 140, 139, 142, 136, 133, 137, 145, 142, 135, 132, 141, 137, 148, 144, 138, 134, 138, 138, 139, 139, 140, 141, 140, 139, 143, 135, 135, 135, 137, 137, 145, 138, 130, 142, 141, 133, 141, 147, 142, 132, 133, 136, 139, 131, 130, 145, 143, 142, 145, 148, 146, 142, 138, 138, 143, 140, 144, 145, 129, 137, 139, 135, 131, 143, 132, 135, 133, 143, 139, 143, 138, 143, 143, 134, 134, 136, 142, 132, 134, 132, 140, 130, 141, 143, 141, 155, 142, 139, 136, 143, 145, 147, 136, 128, 140, 131, 134, 140, 137, 135, 151, 137, 133, 132, 142, 135, 142, 134, 140, 134, 139, 132, 136, 136, 139, 148, 144, 144, 145, 133, 138, 135, 127, 145, 142, 142, 130, 126, 131, 131, 137, 141, 132, 133, 142, 137, 144, 145, 144, 135, 137, 141, 135, 145, 138, 143, 133, 132, 136, 142, 141, 142, 145, 138, 138, 137, 143, 136, 141, 136, 142, 145, 145, 144, 150, 139, 143, 149, 139, 145, 145, 141, 146, 145, 145, 140, 147, 145, 145, 152, 133, 138, 136, 138, 136, 141, 136, 131, 139, 122, 146, 145, 142, 138, 143, 142, 149, 139, 143, 142, 146, 121, 145, 135, 140, 139, 129, 132, 147, 139, 148, 150, 133, 133, 141, 137, 140, 133, 138, 140, 135, 137, 148, 135, 146, 141, 143, 154, 136, 143, 141, 134, 143, 127, 139, 139, 140, 126, 140, 134, 145, 134, 152, 142, 144, 147, 126, 143, 140, 139, 144, 127, 133, 129, 136, 136, 138, 139, 143, 142, 142, 140, 138, 145, 135, 136, 138, 136, 141, 137, 132, 149, 137, 143, 148, 143, 144, 131, 133, 139, 139, 141, 138, 136, 133, 138, 133, 129, 132, 141, 139, 142, 138, 139, 141, 142, 138, 138, 142, 149, 149, 140, 136, 140, 136, 141, 143, 147, 142, 132, 140, 145, 146, 129, 136, 141, 150, 135, 142, 142, 138, 130, 136, 137, 136, 136, 137, 141, 142, 144, 135, 144, 137, 142, 142, 134, 131, 137, 140, 136, 141, 142, 123, 144, 137, 137, 139, 131, 144, 133, 131, 131, 136, 147, 150, 136, 132, 135, 149, 137, 129, 139, 140, 149, 140, 131, 136, 143, 135, 138, 129, 123, 140, 136, 143, 150, 150, 145, 139, 143, 141, 142, 135, 155, 137, 140, 130, 142, 142, 141, 154, 141, 141, 127, 141, 139, 155, 139, 143, 135, 138, 142, 149, 150, 127, 139, 134, 134, 134, 139, 139, 132, 137, 143, 138, 144, 135, 142, 141, 137, 152, 142, 136, 142, 139, 140, 140, 145, 147, 134, 141, 135, 132, 133, 150, 142, 136, 135, 132, 137, 140, 145, 141, 143, 145, 138, 138, 154, 136, 139, 156, 152, 136, 144, 142, 142, 144, 134, 139, 151, 158, 136, 132, 142, 144, 125, 134, 136, 140, 146, 140, 148, 152, 138, 134, 144, 140, 136, 134, 144, 142, 144, 149, 134, 135, 144, 137, 130, 146, 134, 139, 152, 141, 142, 144, 137, 146, 133, 141, 143, 153, 130, 147, 137, 138, 138, 143, 146, 136, 130, 144, 134, 148, 133, 143, 140, 144, 130, 134, 141, 141, 137, 149, 157, 145, 133, 145, 135, 140, 136, 135, 136, 133, 148, 130, 138, 133, 153, 142, 140, 148, 150, 137, 126, 141, 135, 137, 137, 136, 128, 143, 135, 135, 139, 141, 134, 138, 135, 142, 145, 128, 147, 144, 137, 137, 140, 142, 145, 137, 138, 121, 136, 137, 144, 147, 141, 149, 150, 137, 145, 132, 139, 140, 144, 135, 139, 152, 134, 130, 136, 135, 144, 136, 133, 146, 147, 147, 139, 142, 129, 143, 134, 136, 146, 135, 132, 151, 136, 148, 138, 140, 139, 144, 146, 142, 147, 144, 139, 137, 136, 144, 149, 139, 146, 147, 134, 145, 144, 137, 144, 135, 137, 150, 137, 133, 131, 141, 143, 141, 145, 145, 144, 143, 131, 142, 140, 144, 144, 152, 130, 133, 139, 129, 135, 142, 131, 135, 143, 129, 137, 137, 150, 143, 149, 145, 130, 129, 131, 144, 136, 149, 130, 135, 131, 148, 140, 148, 131, 132, 147, 139, 142, 137, 139, 130, 146, 147, 148, 143, 139, 143, 141, 143, 146, 139, 134, 139, 145, 136, 139, 137, 128, 143, 146, 130, 143, 140, 140, 142, 131, 137, 142, 135, 152, 136, 146, 137, 141, 142, 145, 136, 135, 140, 139, 138, 139, 146, 141, 135, 142, 139, 138, 137, 140, 138, 132, 140, 131, 149, 133, 136, 129, 144, 137, 139, 133, 128, 141, 138, 142, 144, 136, 130, 142, 133, 141, 140, 137, 142, 140, 143, 137, 140, 142, 135, 143, 141, 139, 138, 141, 149, 130, 139, 142, 133, 128, 149, 138, 135, 132, 138, 142, 133, 135, 140, 135, 140, 131, 146, 151, 136, 149, 145, 144, 136, 150, 140, 146, 144, 127, 137, 139, 139, 148, 135, 134, 138, 142, 143, 138, 142, 142, 139, 133, 134, 145, 140, 131, 145, 143, 141, 136, 147, 147, 141, 139, 130, 148, 142, 143, 136, 137, 136, 149, 142, 135, 138, 138, 137, 139, 131, 130, 139, 142, 146, 131, 133, 148, 135, 136, 135, 146, 136, 136, 141, 141, 146, 143, 142, 139, 136, 148, 141, 139, 148, 140, 139, 130, 148, 134, 143, 138, 138, 140, 134, 145, 139, 145, 144, 138, 146, 139, 142, 138, 137, 145, 129, 148, 137, 138, 141, 143, 138, 141, 131, 133, 128, 141, 144, 142, 141, 142, 141, 130, 135, 144, 139, 141, 144, 143, 134, 136, 142, 135, 141, 148, 138, 134, 136, 139, 136, 147, 146, 138, 131, 138, 133, 136, 137, 133, 132, 146, 141, 142, 142, 142, 135, 143, 139, 128, 141, 133, 142, 134, 134, 141, 135, 135, 141, 140, 144, 135, 139, 138, 139, 126, 137, 146, 139, 127, 142, 137, 133, 132, 136, 137, 140, 139, 138, 140, 141, 144, 138, 143, 129, 136, 135, 143, 138, 142, 133, 138, 136, 129, 141, 144, 140, 145, 136, 136, 118, 134, 123, 128, 139, 148, 140, 130, 127, 143, 143, 139, 142, 128, 143, 141, 138, 141, 141, 136, 145, 144, 138, 137, 147, 136, 129, 137, 136, 136, 143, 140, 139, 134, 135, 140, 147, 140, 147, 141, 126, 139, 138, 131, 140, 128, 137, 142, 134, 144, 128, 140, 141, 131, 135, 131, 138, 132, 140, 138, 147, 141, 147, 125, 129, 140, 146, 135, 139, 140, 148, 134, 133, 145, 153, 133, 133, 140, 137, 135, 138, 137, 129, 123, 135, 137, 148, 133, 138, 143, 147, 140, 133, 135, 143, 139, 131, 136, 141, 135, 128, 139, 143, 138, 138, 139, 144, 136, 137, 128, 147, 136, 132, 137, 155, 144, 141, 136, 141, 136, 137, 143, 134, 142, 130, 145, 134, 139, 133, 143, 133, 141, 147, 139, 136, 141, 144, 129, 131, 136, 137, 139, 136, 144, 135, 140, 134, 139, 146, 144, 141, 148, 139, 140, 135, 137, 135, 136, 138, 135, 134, 133, 129, 142, 149, 134, 139, 131, 134, 147, 135, 137, 132, 139, 152, 139, 143, 137, 134, 137, 135, 148, 145, 141, 149, 136, 139, 141, 136, 137, 139, 139, 137, 133, 138, 153, 126, 135, 137, 131, 136, 144, 139, 142, 136, 141, 124, 133, 132, 137, 141, 141, 141, 140, 145, 136, 131, 137, 133, 141, 143, 130, 141, 147, 149, 138, 139, 143, 142, 137, 135, 139, 135, 145, 140, 133, 134, 138, 146, 138, 131, 145, 146, 135, 144, 149, 141, 144, 140, 134, 143, 139, 149, 139, 137, 136, 131, 147, 140, 143, 128, 151, 136, 141, 135, 139, 138, 134, 141, 131, 139, 140, 141, 140, 137, 139, 132, 140, 140, 140, 135, 143, 137, 136, 135, 135, 139, 136, 142, 130, 135, 135, 139, 147, 132, 141, 145, 137, 144, 135, 139, 141, 136, 135, 140, 147, 135, 140, 134, 133, 150, 148, 140, 147, 131, 136, 142, 139, 133, 142, 140, 135, 136, 139, 137, 140, 138, 138, 144, 143, 144, 137, 139, 131, 128, 139, 138, 136, 142, 142, 147, 140, 135, 138, 135, 142, 136, 133, 139, 140, 141, 142, 135, 133, 130, 141, 153, 134, 132, 140, 135, 138, 145, 137, 145, 148, 145, 144, 133, 148, 130, 135, 138, 145, 130, 139, 141, 141, 138, 142, 140, 133, 143, 141, 134, 132, 139, 144, 146, 137, 142, 147, 142, 128, 139, 140, 146, 136, 151, 133, 147, 137, 149, 136, 140, 138, 137, 133, 134, 145, 136, 141, 137, 137, 143, 152, 132, 142, 134, 139, 132, 133, 134, 139, 146, 132, 144, 141, 137, 139, 142, 140, 140, 125, 135, 134, 138, 144, 137, 139, 140, 141, 133, 144, 144, 142, 145, 133, 135, 140, 145, 143, 161, 141, 140, 133, 143, 141, 138, 137, 138, 136, 139, 144, 138, 127, 136, 134, 132, 146, 143, 144, 149, 133, 141, 142, 142, 138, 132, 135, 133, 133, 149, 137, 136, 148, 145, 133, 131, 143, 139, 137, 132, 145, 140, 141, 134, 143, 137, 137, 140, 137, 134, 127, 138, 132, 135, 136, 140, 144, 147, 138, 140, 132, 140, 135, 143, 129, 138, 137, 132, 143, 132, 139, 142, 141, 145, 141, 133, 138, 134, 149, 142, 136, 133, 136, 131, 140, 141, 128, 133, 133, 136, 133, 144, 137, 145, 145, 146, 154, 145, 138, 141, 135, 142, 139, 145, 139, 131, 135, 136, 142, 149, 137, 138, 136, 138, 141, 140, 139, 140, 141, 142, 137, 136, 140, 133, 134, 141, 135, 138, 142, 126, 142, 143, 137, 145, 143, 137, 139, 140, 135, 129, 132, 132, 140, 145, 135, 127, 142, 140, 132, 152, 145, 136, 142, 144, 139, 138, 141, 134, 134, 137, 140, 131, 144, 154, 137, 136, 140, 129, 139, 145, 150, 137, 134, 139, 142, 141, 140, 138, 130, 130, 137, 156, 140, 131, 135, 132, 138, 142, 139, 137, 138, 132, 152, 127, 141, 139, 134, 133, 147, 147, 136, 150, 134, 143, 145, 138, 144, 137, 146, 138, 136, 143, 144, 137, 137, 134, 134, 140, 131, 142, 137, 140, 150, 134, 137, 137, 137, 139, 148, 137, 140, 134, 133, 150, 146, 139, 143, 141, 139, 129, 128, 140, 147, 141, 137, 137, 133, 136, 139, 135, 133, 149, 143, 147, 137, 133, 127, 131, 133, 142, 135, 130, 144, 129, 145, 145, 135, 141, 128, 139, 145, 137, 129, 142, 137, 145, 140, 142, 141, 144, 128, 144, 132, 134, 157, 139, 121, 148, 136, 128, 124, 145, 131, 145, 139, 148, 142, 138, 147, 141, 143, 142, 138, 140, 132, 133, 143, 135, 143, 124, 142, 138, 132, 143, 142, 137, 136, 136, 137, 133, 138, 133, 123, 136, 147, 135, 132, 131, 131, 140, 147, 134, 139, 139, 141, 137, 138, 134, 154, 145, 139, 141, 138, 141, 136, 137, 135, 132, 138, 138, 139, 136, 134, 144, 134, 146, 127, 147, 145, 134, 165, 137, 142, 138, 134, 144, 128, 133, 142, 136, 138, 146, 142, 129, 146, 144, 130, 144, 123, 136, 135, 131, 137, 132, 132, 139, 140, 142, 148, 148, 138, 132, 138, 136, 133, 139, 136, 147, 146, 137, 136, 152, 142, 127, 137, 132, 134, 135, 143, 149, 138, 128, 140, 137, 135, 144, 141, 139, 147, 133, 134, 147, 139, 133, 141, 137, 138, 137, 137, 135, 134, 145, 134, 138, 132, 144, 134, 142, 128, 128, 130, 139, 142, 128, 149, 140, 138, 140, 138, 139, 132, 132, 141, 139, 141, 144, 144, 135, 136, 154, 136, 139, 134, 145, 146, 136, 151, 132, 148, 131, 141, 136, 155, 131, 131, 140, 136, 139, 129, 141, 135, 145, 133, 128, 133, 146, 120, 141, 142, 132, 132, 138, 148, 142, 145, 134, 139, 137, 147, 146, 140, 137, 155, 135, 149, 139, 126, 146, 136, 125, 139, 125, 143, 150, 140, 135, 138, 139, 136, 144, 128, 139, 140, 148, 133, 132, 142, 129, 134, 138, 135, 126, 130, 143, 136, 141, 136, 152, 127, 138, 138, 133, 141, 152, 136, 138, 151, 139, 139, 139, 154, 138, 141, 135, 146, 140, 157, 138, 136, 136, 136, 153, 118, 146, 127, 137, 140, 138, 137, 130, 126, 140, 135, 136, 139, 142, 145, 143, 142, 147, 143, 136, 134, 135, 137, 130, 135, 145, 137, 153, 150, 141, 137, 147, 134, 136, 138, 134, 144, 132, 140, 137, 143, 144, 132, 153, 147, 137, 137, 140, 136, 139, 140, 140, 135, 139, 152, 130, 149, 141, 141, 125, 136, 140, 130, 158, 150, 136, 126, 151, 138, 138, 129, 142, 143, 144, 135, 133, 142, 140, 137, 145, 123, 131, 130, 145, 142, 136, 126, 150, 148, 141, 146, 145, 135, 131, 137, 141, 137, 139, 131, 149, 128, 150, 146, 134, 142, 139, 149, 145, 139, 134, 149, 119, 146, 132, 135, 139, 138, 140, 145, 143, 139, 134, 143, 136, 134, 146, 133, 132, 137, 133, 137, 134, 130, 140, 144, 150, 138, 139, 138, 145, 130, 147, 144, 140, 133, 156, 138, 142, 153, 154, 146, 139, 140, 129, 133, 136, 156, 136, 143, 145, 131, 143, 134, 134, 132, 135, 134, 145, 127, 136, 134, 138, 124, 143, 146, 139, 140, 129, 160, 139, 148, 127, 133, 123, 134, 135, 147, 150, 141, 135, 129, 142, 139, 152, 118, 140, 145, 134, 136, 145, 147, 146, 125, 134, 137, 144, 150, 141, 135, 140, 137, 139, 142, 139, 135, 149, 142, 135, 148, 137, 148, 131, 140, 144, 143, 137, 133, 141, 136, 145, 133, 143, 133, 146, 138, 125, 143, 134, 141, 136, 140, 140, 136, 139, 130, 135, 137, 139, 131, 138, 148, 131, 137, 132, 148, 143, 137, 140, 131, 143, 144, 143, 142, 138, 148, 129, 140, 140, 142, 138, 132, 144, 137, 142, 132, 139, 133, 143, 131, 139, 133, 142, 136, 147, 146, 132, 140, 133, 138, 140, 144, 136, 136, 141, 142, 135, 139, 133, 145, 132, 136, 143, 141, 141, 137, 141, 141, 137, 133, 144, 137, 139, 140, 138, 145, 142, 134, 135, 142, 143, 151, 131, 145, 133, 133, 140, 141, 133, 137, 133, 138, 135, 129, 128, 142, 139, 130, 133, 128, 137, 140, 142, 136, 126, 135, 135, 143, 139, 141, 135, 142, 140, 137, 142, 134, 150, 134, 139, 130, 140, 139, 147, 136, 150, 136, 140, 143, 135, 141, 130, 135, 136, 133, 138, 140, 131, 136, 131, 132, 145, 137, 135, 135, 144, 140, 133, 138, 139, 134, 141, 158, 141, 143, 138, 134, 139, 138, 135, 135, 141, 143, 137, 133, 134, 142, 133, 131, 141, 139, 137, 145, 142, 140, 141, 139, 154, 135, 143, 132, 134, 139, 132, 133, 143, 148, 133, 135, 137, 141, 133, 139, 142, 139, 143, 140, 139, 131, 147, 132, 140, 140, 139, 144, 132, 145, 131, 137, 137, 132, 137, 135, 131, 150, 140, 136, 138, 130, 139, 139, 137, 141, 126, 133, 129, 144, 140, 135, 137, 137, 128, 148, 139, 141, 131, 142, 141, 141, 142, 143, 139, 135, 143, 130, 148, 147, 144, 140, 140, 137, 143, 139, 139, 142, 128, 143, 146, 130, 145, 140, 141, 143, 144, 140, 133, 137, 130, 142, 136, 141, 140, 143, 142, 135, 144, 138, 129, 140, 132, 148, 141, 135, 140, 145, 136, 145, 134, 145, 134, 137, 141, 134, 139, 142, 143, 130, 149, 135, 132, 135, 135, 148, 131, 136, 142, 138, 133, 141, 139, 136, 135, 138, 136, 138, 136, 132, 126, 142, 140, 139, 145, 144, 148, 139, 133, 141, 136, 138, 138, 137, 135, 136, 142, 136, 145, 134, 138, 136, 139, 132, 145, 149, 135, 143, 136, 135, 135, 142, 133, 136, 144, 143, 140, 142, 137, 136, 140, 144, 149, 131, 143, 141, 128, 140, 138, 133, 147, 141, 133, 138, 138, 132, 141, 143, 149, 131, 141, 144, 137, 134, 140, 136, 134, 136, 136, 149, 140, 141, 128, 141, 129, 137, 142, 138, 131, 136, 136, 136, 139, 131, 128, 137, 134, 137, 139, 137, 141, 142, 137, 135, 142, 132, 133, 131, 137, 137, 137, 139, 135, 143, 133, 137, 146, 140, 143, 144, 134, 144, 145, 138, 144, 139, 140, 136, 140, 136, 153, 138, 137, 132, 151, 139, 136, 135, 139, 139, 144, 134, 132, 143, 132, 130, 136, 137, 123, 137, 146, 142, 136, 136, 138, 136, 138, 144, 133, 140, 135, 139, 149, 140, 126, 134, 142, 139, 128, 144, 141, 139, 140, 141, 138, 142, 137, 136, 144, 135, 141, 136, 141, 143, 134, 149, 130, 139, 137, 134, 136, 147, 140, 155, 135, 133, 149, 141, 137, 140, 137, 139, 137, 136, 142, 126, 132, 133, 138, 143, 146, 138, 141, 140, 138, 132, 145, 147, 148, 134, 133, 134, 139, 142, 138, 133, 138, 140, 140, 132, 138, 151, 131, 139, 135, 141, 140, 133, 129, 131, 129, 137, 129, 133, 138, 147, 145, 136, 138, 145, 145, 136, 137, 139, 149, 131, 143, 145, 138, 127, 142, 141, 147, 140, 143, 139, 153, 139, 133, 132, 144, 140, 142, 139, 137, 149, 134, 133, 134, 140, 138, 138, 137, 136, 131, 138, 132, 139, 143, 135, 129, 131, 135, 143, 138, 143, 140, 137, 141, 139, 135, 137, 150, 133, 143, 139, 144, 136, 138, 134, 144, 141, 151, 134, 138, 140, 142, 139, 140, 135, 136, 135, 135, 133, 145, 140, 140, 140, 129, 137, 144, 143, 136, 138, 139, 148, 135, 136, 128, 130, 139, 136, 136, 145, 148, 138, 139, 141, 150, 149, 131, 138, 140, 142, 129, 137, 137, 134, 143, 135, 142, 137, 139, 137, 135, 143, 124, 140, 135, 144, 137, 140, 137, 133, 134, 146, 149, 143, 142, 144, 138, 134, 144, 135, 141, 135, 142, 139, 138, 149, 144, 128, 138, 133, 137, 142, 140, 132, 145, 141, 144, 147, 141, 144, 148, 127, 147, 136, 144, 136, 136, 137, 140, 134, 141, 141, 134, 159, 141, 135, 134, 135, 136, 131, 145, 137, 135, 135, 149, 133, 142, 134, 137, 139, 136, 153, 141, 144, 138, 133, 146, 135, 138, 134, 134, 139, 145, 146, 138, 137, 136, 136, 141, 137, 132, 141, 138, 145, 131, 147, 137, 138, 130, 140, 135, 154, 140, 141, 140, 131, 148, 142, 138, 143, 138, 138, 137, 141, 130, 132, 131, 138, 141, 142, 143, 137, 144, 138, 137, 137, 140, 141, 137, 135, 142, 140, 132, 150, 135, 137, 135, 129, 139, 134, 137, 132, 150, 142, 139, 137, 143, 141, 141, 131, 146, 134, 138, 142, 136, 148, 143, 131, 138, 139, 145, 140, 144, 136, 141, 138, 139, 135, 143, 142, 149, 142, 145, 146, 136, 138, 140, 135, 135, 143, 139, 141, 145, 132, 148, 127, 137, 139, 143, 136, 148, 137, 139, 149, 129, 140, 137, 131, 141, 141, 135, 130, 142, 139, 133, 136, 137, 145, 136, 134, 126, 135, 137, 135, 133, 144, 139, 138, 135, 142, 133, 132, 141, 138, 144, 142, 142, 136, 149, 145, 132, 138, 132, 138, 143, 138, 131, 135, 147, 138, 144, 138, 148, 138, 134, 140, 140, 134, 133, 130, 129, 133, 131, 135, 134, 137, 135, 150, 134, 141, 136, 136, 145, 143, 147, 135, 153, 138, 144, 143, 134, 141, 137, 145, 140, 139, 135, 137, 133, 132, 138, 135, 136, 138, 140, 135, 134, 135, 127, 138, 140, 133, 140, 139, 132, 142, 128, 141, 134, 137, 141, 140, 144, 138, 135, 143, 144, 146, 145, 144, 140, 139, 143, 138, 147, 136, 138, 138, 145, 133, 137, 127, 133, 139, 146, 147, 125, 137, 145, 144, 155, 139, 140, 134, 136, 143, 151, 140, 123, 140, 140, 144, 130, 128, 137, 128, 137, 140, 134, 126, 143, 157, 130, 143, 131, 147, 148, 140, 136, 136, 149, 139, 150, 144, 150, 144, 142, 125, 127, 136, 152, 136, 145, 137, 136, 138, 127, 149, 136, 138, 167, 142, 140, 148, 144, 136, 146, 139, 141, 132, 131, 149, 147, 141, 147, 157, 149, 138, 131, 138, 144, 144, 130, 127, 140, 133, 146, 142, 151, 123, 137, 127, 138, 132, 140, 143, 148, 148, 146, 140, 135, 142, 136, 136, 138, 152, 129, 138, 129, 133, 120, 134, 139, 138, 146, 140, 139, 139, 133, 143, 138, 139, 142, 143, 139, 131, 142, 138, 133, 146, 140, 137, 142, 141, 142, 125, 133, 141, 136, 134, 143, 145, 137, 139, 132, 146, 139, 127, 129, 144, 141, 131, 158, 145, 141, 135, 129, 136, 145, 148, 130, 135, 136, 154, 146, 127, 139, 131, 149, 135, 148, 140, 138, 133, 130, 135, 141, 130, 127, 150, 155, 152, 134, 135, 142, 132, 141, 134, 133, 124, 143, 138, 137, 155, 145, 133, 138, 126, 146, 138, 124, 149, 139, 135, 136, 137, 142, 131, 126, 145, 140, 151, 131, 140, 141, 137, 135, 151, 126, 142, 150, 150, 130, 148, 141, 145, 133, 151, 136, 143, 152, 138, 156, 132, 136, 140, 131, 146, 142, 142, 135, 127, 135, 152, 147, 138, 143, 142, 136, 142, 134, 146, 140, 130, 151, 132, 136, 137, 140, 148, 142, 141, 137, 145, 148, 140, 131, 136, 134, 140, 137, 133, 126, 140, 144, 139, 130, 140, 133, 143, 132, 150, 151, 143, 136, 139, 135, 145, 141, 136, 129, 147, 134, 144, 137, 143, 140, 135, 133, 138, 138, 144, 147, 143, 146, 151, 143, 140, 141, 138, 149, 156, 136, 140, 134, 146, 144, 133, 135, 147, 134, 139, 129, 136, 138, 138, 144, 134, 140, 142, 142, 148, 142, 141, 134, 149, 138, 140, 145, 138, 147, 136, 143, 139, 136, 138, 133, 144, 143, 152, 135, 134, 146, 139, 140, 130, 138, 138, 140, 134, 145, 139, 134, 134, 130, 149, 146, 143, 134, 145, 139, 147, 151, 134, 154, 139, 151, 142, 144, 142, 141, 144, 134, 142, 146, 127, 133, 132, 134, 143, 144, 145, 136, 135, 137, 134, 140, 137, 144, 129, 134, 134, 151, 140, 140, 140, 140, 135, 136, 129, 146, 130, 145, 141, 135, 139, 145, 133, 138, 135, 135, 142, 140, 140, 143, 154, 138, 134, 135, 131, 147, 134, 144, 123, 135, 133, 145, 140, 148, 128, 134, 136, 137, 134, 153, 131, 132, 140, 141, 138, 145, 148, 141, 153, 139, 137, 139, 136, 139, 161, 140, 145, 144, 129, 139, 144, 146, 142, 142, 140, 148, 140, 148, 136, 138, 136, 136, 131, 141, 146, 140, 135, 135, 135, 138, 138, 156, 138, 138, 137, 129, 135, 141, 139, 134, 142, 149, 155, 141, 143, 132, 136, 145, 138, 121, 135, 149, 140, 138, 137, 144, 141, 138, 140, 131, 132, 141, 142, 137, 142, 139, 131, 139, 131, 141, 135, 133, 150, 146, 124, 132, 131, 135, 145, 133, 152, 125, 136, 139, 144, 132, 138, 146, 143, 128, 138, 155, 142, 139, 131, 135, 140, 141, 140, 142, 136, 138, 139, 144, 137, 149, 142, 152, 134, 140, 141, 146, 147, 147, 140, 140, 145, 149, 135, 138, 142, 133, 145, 132, 138, 130, 140, 139, 132, 145, 139, 143, 146, 147, 149, 135, 138, 147, 143, 134, 140, 152, 134, 136, 122, 137, 126, 132, 138, 136, 150, 138, 148, 139, 140, 142, 131, 138, 129, 143, 147, 131, 139, 133, 144, 142, 130, 146, 138, 139, 136, 134, 132, 143, 134, 137, 152, 139, 147, 128, 141, 143, 130, 131, 135, 124, 133, 137, 144, 139, 148, 152, 132, 138, 133, 143, 135, 139, 143, 142, 143, 145, 135, 139, 136, 139, 148, 136, 131, 151, 142, 131, 143, 146, 134, 135, 134, 141, 140, 138, 140, 135, 128, 142, 141, 134, 145, 143, 139, 137, 144, 139, 137, 136, 129, 141, 128, 144, 140, 144, 140, 136, 140, 145, 137, 134, 135, 145, 145, 146, 130, 144, 134, 143, 136, 134, 141, 146, 138, 147, 142, 135, 137, 139, 138, 140, 134, 147, 140, 136, 134, 149, 137, 136, 150, 135, 140, 140, 139, 139, 136, 133, 132, 134, 141, 137, 136, 146, 135, 139, 141, 143, 136, 128, 132, 138, 132, 138, 147, 127, 143, 132, 143, 148, 140, 141, 142, 144, 128, 135, 131, 130, 132, 137, 131, 147, 133, 138, 144, 138, 160, 138, 139, 137, 141, 138, 130, 139, 140, 154, 135, 138, 136, 136, 147, 145, 131, 141, 150, 123, 144, 143, 144, 136, 138, 143, 135, 130, 133, 149, 131, 130, 144, 140, 141, 138, 142, 135, 129, 146, 131, 137, 138, 149, 135, 153, 136, 132, 136, 129, 138, 138, 143, 145, 139, 145, 134, 134, 136, 136, 151, 133, 126, 132, 141, 133, 133, 143, 145, 141, 144, 133, 137, 140, 130, 144, 136, 144, 132, 145, 142, 145, 141, 139, 138, 131, 137, 143, 145, 136, 144, 146, 130, 142, 139, 131, 148, 140, 144, 140, 153, 144, 137, 133, 145, 142, 131, 137, 142, 131, 135, 133, 130, 137, 144, 145, 140, 135, 121, 137, 137, 143, 146, 152, 141, 129, 129, 144, 140, 132, 132, 137, 144, 139, 141, 129, 142, 134, 139, 138, 136, 139, 142, 137, 126, 132, 139, 140, 146, 143, 144, 148, 133, 135, 132, 141, 154, 132, 148, 142, 135, 138, 138, 138, 153, 130, 137, 135, 131, 140, 130, 131, 136, 131, 140, 143, 136, 140, 134, 135, 127, 140, 132, 132, 136, 131, 131, 149, 139, 144, 138, 143, 146, 142, 140, 150, 143, 135, 129, 134, 137, 136, 132, 136, 143, 132, 129, 141, 134, 141, 137, 129, 140, 137, 122, 133, 139, 142, 126, 149, 150, 141, 134, 132, 134, 133, 147, 133, 140, 145, 141, 133, 146, 145, 142, 142, 161, 144, 133, 139, 133, 140, 150, 141, 138, 157, 137, 138, 137, 136, 139, 132, 142, 134, 133, 125, 140, 138, 137, 138, 129, 139, 140, 138, 143, 131, 143, 148, 133, 142, 150, 145, 134, 143, 149, 141, 132, 145, 144, 142, 131, 142, 147, 139, 133, 139, 145, 143, 140, 139, 131, 133, 136, 135, 142, 144, 147, 136, 135, 140, 137, 144, 139, 128, 133, 138, 140, 135, 145, 141, 137, 139, 134, 139, 138, 134, 146, 137, 143, 139, 144, 132, 139, 130, 138, 144, 135, 141, 141, 139, 146, 138, 137, 135, 134, 139, 137, 150, 140, 138, 134, 140, 146, 138, 137, 144, 148, 139, 139, 134, 141, 133, 139, 146, 141, 138, 133, 140, 148, 141, 135, 130, 136, 135, 133, 138, 136, 139, 137, 139, 151, 130, 134, 142, 139, 136, 133, 143, 136, 138, 141, 145, 141, 144, 146, 142, 135, 134, 134, 143, 137, 139, 142, 129, 136, 130, 146, 129, 143, 140, 135, 138, 135, 138, 133, 145, 139, 139, 143, 148, 137, 134, 142, 137, 135, 131, 133, 139, 140, 152, 136, 145, 141, 141, 142, 135, 132, 149, 142, 152, 140, 140, 139, 141, 137, 135, 143, 134, 137, 139, 125, 139, 139, 144, 137, 141, 144, 136, 144, 125, 132, 139, 129, 140, 140, 125, 138, 137, 137, 132, 139, 141, 135, 136, 135, 144, 139, 137, 142, 136, 131, 139, 143, 140, 135, 146, 139, 133, 141, 137, 139, 146, 137, 148, 136, 132, 148, 145, 142, 142, 139, 140, 142, 134, 143, 134, 141, 135, 134, 138, 137, 138, 141, 140, 137, 130, 143, 146, 133, 143, 141, 137, 134, 145, 137, 133, 130, 151, 137, 148, 139, 137, 137, 144, 145, 142, 140, 149, 133, 141, 128, 150, 138, 134, 140, 137, 143, 142, 139, 141, 133, 141, 143, 139, 140, 136, 143, 138, 142, 141, 141, 147, 143, 132, 143, 132, 136, 143, 139, 130, 135, 144, 144, 145, 145, 140, 138, 135, 131, 139, 136, 149, 134, 143, 140, 137, 133, 144, 130, 140, 140, 133, 141, 141, 140, 139, 139, 135, 136, 137, 140, 148, 138, 145, 141, 136, 143, 139, 141, 132, 137, 138, 140, 136, 136, 138, 131, 133, 134, 138, 134, 134, 141, 132, 142, 139, 142, 135, 132, 137, 133, 139, 144, 151, 140, 142, 128, 139, 131, 139, 133, 134, 135, 148, 144, 134, 138, 130, 139, 138, 143, 136, 134, 141, 147, 143, 129, 133, 138, 136, 139, 142, 131, 138, 149, 135, 142, 144, 146, 139, 138, 132, 146, 140, 140, 138, 137, 135, 140, 134, 134, 141, 136, 136, 127, 135, 134, 132, 128, 137, 131, 143, 136, 150, 142, 136, 142, 142, 144, 148, 146, 137, 136, 131, 135, 142, 133, 138, 145, 135, 128, 145, 142, 141, 140, 140, 135, 136, 145, 134, 139, 144, 146, 140, 132, 135, 129, 136, 142, 142, 136, 143, 131, 139, 146, 141, 133, 131, 138, 137, 134, 148, 131, 143, 139, 147, 132, 131, 132, 141, 139, 135, 132, 138, 142, 141, 141, 134, 131, 135, 133, 153, 144, 133, 122, 138, 140, 136, 136, 134, 151, 135, 145, 136, 138, 136, 136, 137, 137, 143, 132, 151, 132, 133, 142, 135, 139, 135, 140, 139, 142, 131, 135, 131, 133, 138, 140, 142, 136, 143, 134, 139, 141, 133, 140, 140, 142, 145, 140, 145, 137, 142, 139, 142, 141, 137, 147, 139, 141, 136, 143, 139, 145, 142, 139, 147, 143, 135, 144, 137, 128, 147, 131, 140, 144, 134, 144, 146, 149, 134, 141, 145, 138, 135, 135, 135, 135, 142, 138, 147, 145, 136, 135, 138, 130, 134, 140, 131, 140, 138, 134, 133, 139, 143, 141, 141, 139, 135, 136, 145, 139, 142, 139, 129, 135, 144, 140, 142, 131, 142, 134, 138, 142, 137, 132, 143, 136, 137, 138, 140, 135, 138, 136, 133, 145, 135, 152, 141, 136, 138, 139, 145, 141, 124, 136, 138, 138, 140, 138, 133, 139, 133, 143, 141, 142, 139, 141, 138, 139, 133, 137, 137, 141, 135, 142, 145, 142, 132, 146, 137, 138, 140, 140, 134, 150, 133, 135, 137, 130, 142, 139, 141, 137, 141, 138, 133, 147, 141, 134, 134, 140, 136, 144, 144, 139, 139, 145, 133, 140, 136, 131, 136, 145, 138, 134, 139, 150, 136, 136, 137, 134, 144, 150, 138, 142, 133, 133, 138, 145, 141, 138, 144, 131, 138, 136, 143, 127, 140, 146, 139, 141, 130, 134, 140, 140, 135, 133, 134, 135, 136, 139, 142, 139, 138, 139, 138, 138, 132, 143, 142, 134, 136, 135, 137, 140, 147, 137, 148, 143, 142, 144, 140, 143, 135, 143, 141, 144, 133, 139, 135, 144, 144, 134, 140, 142, 149, 148, 135, 143, 133, 145, 132, 143, 135, 139, 133, 138, 145, 136, 146, 131, 141, 138, 138, 140, 139, 132, 136, 140, 143, 147, 135, 150, 145, 138, 145, 146, 135, 133, 136, 137, 140, 139, 143, 145, 135, 144, 135, 133, 145, 137, 134, 138, 141, 133, 144, 147, 136, 148, 143, 139, 137, 138, 134, 136, 132, 148, 141, 130, 149, 137, 143, 138, 128, 136, 134, 134, 134, 143, 137, 145, 142, 154, 133, 132, 142, 144, 137, 136, 131, 144, 132, 137, 138, 135, 139, 137, 142, 137, 138, 135, 144, 134, 136, 139, 133, 141, 139, 142, 136, 136, 144, 141, 141, 141, 138, 137, 135, 131, 143, 135, 147, 140, 132, 132, 136, 140, 141, 133, 137, 141, 138, 136, 133, 136, 137, 145, 143, 141, 128, 130, 136, 137, 141, 134, 138, 130, 144, 137, 140, 139, 141, 135, 142, 140, 134, 146, 132, 136, 132, 148, 147, 137, 137, 134, 127, 138, 132, 136, 128, 135, 135, 138, 137, 135, 140, 134, 145, 140, 147, 137, 132, 142, 135, 141, 141, 132, 140, 133, 133, 132, 147, 153, 150, 139, 152, 140, 139, 140, 143, 140, 141, 142, 141, 142, 145, 141, 134, 138, 132, 147, 147, 136, 136, 124, 147, 133, 144, 133, 133, 139, 135, 131, 143, 141, 140, 134, 143, 141, 135, 153, 144, 140, 135, 137, 135, 134, 141, 145, 144, 135, 141, 139, 141, 134, 134, 138, 133, 141, 155, 142, 141, 140, 142, 146, 142, 139, 133, 141, 153, 137, 133, 148, 135, 149, 142, 134, 139, 146, 130, 143, 131, 140, 134, 143, 145, 136, 134, 138, 141, 134, 142, 136, 144, 137, 128, 141, 135, 141, 132, 133, 142, 139, 143, 136, 138, 146, 135, 135, 123, 138, 140, 136, 137, 137, 141, 144, 124, 139, 141, 135, 141, 141, 129, 141, 138, 132, 137, 134, 141, 137, 144, 134, 133, 145, 138, 143, 140, 138, 140, 129, 138, 149, 137, 140, 144, 134, 138, 130, 138, 142, 155, 147, 138, 138, 131, 140, 136, 137, 138, 147, 135, 136, 130, 145, 138, 130, 143, 144, 137, 140, 133, 147, 149, 131, 134, 133, 143, 141, 144, 142, 148, 146, 131, 137, 140, 143, 140, 145, 137, 141, 145, 140, 140, 137, 141, 136, 145, 135, 138, 127, 142, 133, 138, 139, 143, 144, 141, 141, 146, 120, 148, 134, 144, 150, 137, 134, 135, 131, 139, 144, 135, 140, 139, 133, 128, 130, 131, 138, 135, 134, 141, 144, 140, 133, 135, 141, 144, 134, 139, 136, 140, 132, 138, 148, 145, 142, 136, 139, 142, 130, 144, 140, 146, 140, 137, 145, 131, 131, 145, 148, 140, 145, 134, 142, 139, 138, 138, 137, 130, 137, 141, 136, 146, 133, 141, 132, 134, 141, 140, 138, 141, 145, 141, 136, 138, 137, 140, 137, 123, 141, 139, 129, 139, 150, 133, 136, 143, 145, 139, 139, 144, 140, 136, 140, 138, 139, 133, 139, 137, 147, 147, 127, 139, 139, 137, 139, 145, 141, 132, 144, 135, 135, 141, 138, 140, 138, 141, 144, 138, 145, 146, 151, 136, 139, 133, 134, 144, 140, 135, 144, 143, 143, 141, 143, 133, 129, 140, 138, 131, 134, 130, 134, 140, 138, 134, 136, 132, 140, 136, 133, 140, 140, 139, 134, 141, 143, 139, 134, 140, 142, 140, 136, 143, 136, 134, 145, 136, 142, 148, 146, 133, 144, 142, 140, 139, 130, 130, 139, 149, 139, 122, 137, 145, 138, 139, 142, 129, 133, 132, 138, 140, 139, 138, 138, 140, 139, 141, 131, 140, 149, 145, 135, 146, 146, 141, 137, 137, 144, 142, 143, 140, 138, 141, 131, 135, 141, 139, 138, 157, 143, 142, 146, 132, 144, 138, 136, 137, 132, 133, 141, 147, 139, 135, 146, 139, 131, 135, 144, 146, 131, 141, 139, 135, 134, 143, 136, 148, 147, 136, 137, 136, 131, 140, 135, 140, 136, 140, 141, 141, 133, 140, 146, 136, 143, 132, 148, 143, 134, 142, 135, 142, 132, 134, 139, 146, 132, 137, 149, 137, 132, 138, 145, 143, 143, 139, 144, 141, 136, 149, 142, 142, 139, 144, 140, 136, 132, 143, 131, 143, 143, 140, 139, 151, 141, 138, 129, 144, 134, 146, 144, 138, 141, 136, 135, 138, 132, 131, 139, 142, 158, 141, 137, 141, 145, 138, 138, 134, 140, 131, 138, 134, 135, 137, 135, 130, 140, 141, 135, 132, 138, 136, 142, 145, 135, 135, 142, 137, 139, 133, 140, 134, 135, 139, 136, 131, 144, 141, 133, 147, 141, 135, 133, 126, 139, 133, 145, 135, 146, 143, 134, 145, 138, 137, 139, 139, 138, 147, 139, 141, 142, 142, 139, 140, 140, 137, 138, 148, 129, 140, 140, 137, 137, 135, 146, 129, 139, 133, 137, 140, 139, 134, 134, 136, 137, 138, 137, 141, 136, 137, 153, 136, 132, 133, 142, 146, 148, 152, 139, 140, 139, 141, 138, 138, 138, 134, 130, 140, 141, 136, 133, 134, 132, 145, 130, 134, 145, 135, 141, 146, 140, 137, 144, 132, 134, 132, 140, 135, 134, 132, 135, 138, 152, 138, 136, 140, 141, 150, 134, 129, 135, 139, 137, 144, 136, 142, 142, 140, 140, 141, 151, 129, 139, 135, 132, 138, 136, 143, 143, 140, 137, 151, 137, 146, 146, 137, 133, 138, 126, 146, 143, 144, 131, 138, 141, 147, 137, 148, 134, 139, 131, 131, 135, 139, 142, 148, 136, 135, 144, 145, 143, 135, 134, 141, 142, 135, 151, 136, 141, 136, 145, 143, 146, 136, 137, 134, 137, 146, 138, 134, 142, 133, 136, 143, 136, 139, 132, 139, 133, 149, 136, 138, 143, 132, 136, 139, 138, 146, 153, 142, 143, 138, 140, 135, 141, 135, 136, 138, 137, 142, 142, 137, 135, 140, 153, 132, 142, 139, 138, 145, 129, 148, 152, 147, 142, 143, 135, 138, 126, 138, 129, 136, 142, 134, 134, 142, 142, 139, 134, 138, 145, 136, 136, 138, 144, 144, 139, 133, 144, 134, 136, 139, 136, 130, 136, 138, 141, 134, 129, 139, 140, 138, 139, 147, 138, 143, 140, 130, 133, 142, 144, 124, 135, 135, 135, 139, 139, 143, 132, 136, 144, 140, 159, 128, 137, 137, 130, 139, 137, 143, 145, 141, 133, 140, 146, 141, 141, 140, 132, 140, 137, 143, 144, 130, 133, 145, 141, 139, 138, 141, 141, 133, 135, 134, 144, 145, 142, 137, 129, 132, 142, 147, 136, 131, 131, 144, 136, 136, 141, 132, 127, 142, 136, 130, 139, 144, 129, 145, 153, 135, 142, 143, 137, 144, 127, 141, 131, 131, 132, 135, 136, 145, 136, 138, 145, 136, 143, 140, 144, 139, 140, 137, 142, 146, 136, 148, 139, 134, 141, 137, 136, 140, 132, 146, 143, 144, 144, 137, 151, 141, 134, 136, 140, 136, 140, 133, 147, 139, 136, 142, 133, 131, 143, 141, 139, 149, 143, 136, 141, 138, 145, 136, 127, 126, 142, 134, 140, 143, 137, 137, 141, 140, 133, 141, 137, 133, 132, 138, 141, 134, 138, 141, 143, 141, 128, 139, 136, 138, 146, 139, 138, 146, 135, 145, 143, 136, 149, 141, 145, 134, 136, 142, 146, 134, 143, 138, 135, 138, 132, 141, 132, 137, 140, 143, 139, 135, 139, 140, 138, 140, 135, 139, 134, 131, 133, 134, 136, 132, 138, 140, 149, 140, 139, 137, 137, 137, 133, 141, 141, 137, 144, 144, 139, 132, 148, 137, 143, 131, 135, 140, 140, 139, 145, 143, 140, 143, 144, 138, 137, 137, 142, 135, 144, 142, 138, 141, 157, 135, 148, 148, 133, 149, 134, 143, 138, 139, 140, 142, 141, 137, 141, 132, 149, 141, 139, 134, 128, 144, 147, 141, 140, 142, 140, 143, 146, 137, 135, 136, 130, 139, 140, 140, 142, 139, 141, 137, 132, 144, 132, 148, 138, 143, 138, 140, 136, 134, 136, 144, 141, 138, 134, 142, 144, 135, 135, 147, 143, 137, 143, 147, 134, 143, 146, 138, 142, 134, 139, 140, 145, 137, 145, 142, 136, 137, 143, 134, 145, 132, 138, 144, 138, 141, 141, 144, 143, 135, 142, 144, 134, 135, 137, 152, 139, 147, 139, 136, 137, 129, 144, 142, 140, 138, 137, 134, 141, 133, 135, 138, 146, 138, 139, 138, 137, 141, 128, 138, 147, 140, 140, 141, 144, 137, 139, 140, 139, 135, 139, 136, 148, 131, 137, 143, 131, 139, 143, 144, 140, 140, 144, 124, 140, 139, 137, 138, 139, 140, 137, 135, 143, 143, 130, 133, 138, 138, 136, 140, 143, 145, 143, 141, 140, 147, 141, 139, 143, 139, 139, 129, 143, 145, 141, 149, 138, 133, 141, 138, 139, 141, 143, 139, 145, 141, 147, 134, 141, 140, 136, 142, 146, 140, 137, 141, 139, 147, 144, 140, 131, 144, 130, 137, 142, 139, 136, 137, 147, 138, 149, 141, 136, 139, 143, 145, 139, 142, 139, 143, 142, 139, 138, 139, 135, 139, 141, 141, 143, 132, 130, 138, 135, 145, 141, 140, 141, 146, 136, 138, 130, 140, 137, 137, 136, 138, 140, 144, 134, 141, 135, 137, 134, 137, 141, 135, 137, 146, 141, 136, 143, 138, 144, 140, 140, 146, 147, 144, 144, 140, 142, 139, 138, 145, 136, 143, 138, 130, 139, 135, 136, 141, 140, 137, 141, 135, 134, 135, 137, 141, 134, 136, 140, 141, 125, 144, 140, 134, 137, 142, 142, 143, 139, 142, 136, 135, 142, 143, 143, 136, 137, 142, 136, 144, 137, 142, 144, 139, 144, 130, 131, 136, 133, 145, 142, 130, 137, 137, 137, 138, 138, 138, 141, 139, 140, 136, 116, 133, 133, 140, 132, 137, 136, 140, 142, 145, 138, 137, 141, 143, 139, 141, 142, 140, 137, 138, 136, 145, 143, 146, 143, 141, 144, 142, 147, 143, 141, 133, 142, 137, 138, 132, 139, 136, 138, 145, 145, 144, 142, 143, 135, 136, 142, 135, 141, 142, 140, 141, 139, 141, 131, 141, 143, 140, 129, 141, 138, 133, 139, 137, 137, 136, 140, 134, 141, 144, 141, 143, 142, 142, 147, 141, 147, 137, 136, 146, 136, 140, 137, 136, 141, 144, 140, 141, 136, 136, 138, 136, 136, 141, 133, 145, 145, 137, 138, 143, 143, 140, 136, 141, 130, 140, 131, 140, 137, 134, 143, 141, 138, 138, 136, 140, 140, 138, 135, 138, 137, 139, 142, 143, 141, 138, 142, 139, 136, 144, 141, 135, 143, 138, 147, 139, 139, 138, 136, 139, 136, 137, 147, 144, 145, 137, 138, 146, 142, 148, 132, 136, 134, 143, 136, 140, 133, 142, 137, 138, 140, 146, 131, 142, 132, 138, 140, 147, 137, 134, 142, 128, 139, 141, 135, 136, 136, 140, 141, 138, 149, 138, 141, 145, 138, 144, 140, 139, 136, 133, 139, 142, 145, 136, 136, 146, 138, 144, 139, 138, 141, 144, 142, 141, 133, 137, 141, 141, 138, 138, 132, 140, 140, 139, 140, 139, 138, 141, 139, 151, 136, 140, 145, 142, 143, 132, 146, 141, 126, 140, 136, 130, 141, 134, 128, 139, 135, 142, 137, 141, 143, 133, 136, 141, 142, 136, 148, 137, 136, 147, 141, 129, 140, 142, 145, 140, 144, 136, 138, 141, 143, 139, 147, 138, 138, 143, 145, 136, 140, 133, 138, 134, 145, 142, 138, 142, 143, 144, 138, 144, 145, 141, 136, 141, 150, 141, 140, 129, 136, 140, 132, 134, 139, 147, 139, 140, 138, 139, 138, 136, 146, 142, 141, 136, 128, 143, 141, 144, 131, 138, 137, 138, 139, 141, 138, 137, 149, 133, 138, 131, 147, 139, 139, 138, 143, 136, 138, 144, 136, 139, 127, 149, 132, 134, 141, 138, 129, 137, 149, 141, 144, 137, 139, 143, 138, 142, 133, 139, 144, 145, 134, 138, 143, 142, 140, 149, 133, 139, 143, 136, 142, 139, 141, 129, 140, 146, 143, 146, 145, 142, 140, 147, 136, 141, 136, 145, 140, 146, 146, 142, 136, 140, 136, 140, 138, 142, 138, 145, 139, 130, 139, 138, 144, 140, 144, 137, 145, 138, 144, 141, 139, 135, 138, 137, 138, 135, 145, 143, 141, 132, 139, 145, 141, 141, 142, 134, 138, 143, 140, 139, 149, 141, 140, 140, 146, 144, 137, 140, 147, 138, 141, 137, 142, 139, 143, 136, 141, 145, 133, 142, 133, 134, 137, 141, 131, 138, 144, 137, 135, 132, 138, 138, 131, 145, 135, 133, 141, 144, 138, 138, 140, 143, 140, 139, 136, 141, 136, 138, 149, 145, 147, 137, 143, 139, 145, 140, 143, 141, 146, 134, 140, 138, 143, 138, 137, 139, 139, 147, 147, 134, 132, 134, 144, 134, 144, 136, 139, 136, 137, 134, 140, 136, 141, 139, 139, 138, 146, 143, 141, 140, 132, 142, 141, 146, 141, 142, 144, 143, 142, 136, 132, 135, 143, 138, 139, 144, 147, 142, 138, 145, 150, 140, 143, 152, 139, 144, 142, 139, 139, 139, 137, 135, 146, 132, 136, 140, 139, 130, 139, 140, 135, 143, 149, 136, 134, 141, 139, 143, 136, 143, 135, 139, 135, 138, 136, 143, 149, 124, 148, 143, 128, 142, 139, 147, 134, 137, 137, 142, 146, 130, 139, 148, 142, 142, 149, 132, 142, 138, 142, 142, 144, 140, 138, 143, 145, 149, 142, 135, 139, 138, 141, 141, 134, 138, 141, 137, 131, 142, 139, 128, 144, 137, 137, 142, 134, 142, 141, 141, 139, 142, 145, 143, 139, 137, 130, 135, 127, 143, 136, 146, 149, 132, 148, 150, 137, 143, 150, 135, 142, 138, 140, 141, 137, 135, 146, 143, 140, 138, 146, 143, 137, 141, 136, 139, 134, 138, 139, 141, 136, 141, 138, 140, 136, 139, 132, 133, 135, 135, 141, 140, 135, 145, 137, 142, 140, 137, 137, 139, 142, 136, 135, 131, 148, 145, 141, 136, 143, 140, 141, 148, 130, 141, 145, 142, 144, 148, 141, 141, 148, 134, 140, 137, 137, 136, 145, 132, 134, 138, 141, 139, 133, 138, 141, 141, 143, 133, 135, 133, 138, 136, 136, 144, 141, 143, 144, 135, 136, 139, 135, 140, 138, 146, 134, 140, 136, 140, 137, 127, 138, 141, 140, 128, 136, 137, 142, 144, 144, 146, 138, 137, 136, 134, 141, 137, 135, 136, 138, 141, 137, 143, 146, 141, 138, 138, 131, 132, 153, 140, 142, 140, 136, 148, 146, 135, 138, 144, 139, 132, 132, 138, 146, 138, 142, 141, 139, 146, 143, 143, 134, 144, 135, 129, 134, 133, 142, 125, 140, 143, 136, 138, 140, 146, 136, 138, 143, 145, 134, 144, 139, 136, 154, 133, 139, 136, 139, 146, 156, 132, 135, 145, 132, 150, 137, 139, 141, 153, 135, 144, 144, 136, 136, 132, 143, 136, 138, 151, 152, 138, 148, 142, 132, 142, 138, 139, 137, 140, 129, 146, 132, 131, 140, 137, 135, 136, 138, 139, 132, 131, 145, 137, 143, 140, 134, 138, 128, 139, 142, 145, 127, 136, 141, 135, 140, 134, 135, 135, 136, 139, 149, 137, 139, 136, 141, 142, 134, 136, 138, 133, 137, 138, 132, 140, 136, 135, 137, 149, 139, 134, 142, 140, 144, 143, 133, 136, 141, 138, 139, 144, 143, 151, 137, 137, 135, 147, 140, 137, 130, 138, 145, 145, 137, 137, 128, 135, 130, 135, 135, 140, 143, 145, 152, 146, 142, 134, 149, 140, 142, 142, 143, 143, 136, 137, 137, 136, 134, 140, 135, 144, 146, 133, 135, 142, 131, 138, 140, 138, 144, 133, 138, 136, 147, 139, 147, 140, 133, 134, 133, 139, 138, 136, 128, 136, 140, 138, 136, 146, 144, 147, 141, 138, 138, 137, 138, 124, 138, 134, 132, 137, 141, 133, 140, 126, 133, 130, 140, 143, 138, 149, 150, 133, 133, 137, 140, 142, 129, 135, 154, 131, 129, 147, 133, 143, 127, 138, 136, 143, 133, 133, 149, 145, 145, 143, 137, 146, 130, 140, 147, 135, 136, 142, 141, 141, 137, 134, 140, 150, 138, 142, 139, 138, 138, 137, 149, 134, 129, 144, 140, 138, 138, 134, 140, 140, 136, 144, 142, 123, 145, 129, 130, 139, 139, 141, 130, 140, 138, 131, 142, 135, 142, 143, 145, 137, 137, 130, 131, 147, 143, 146, 136, 132, 136, 146, 143, 150, 147, 137, 139, 143, 145, 137, 137, 142, 139, 137, 134, 141, 140, 132, 140, 138, 154, 138, 139, 141, 150, 139, 131, 144, 146, 134, 137, 145, 140, 143, 134, 151, 135, 132, 125, 138, 136, 137, 134, 145, 139, 139, 141, 131, 133, 136, 140, 144, 140, 150, 150, 142, 132, 132, 139, 135, 142, 138, 141, 145, 137, 142, 123, 143, 129, 135, 145, 136, 136, 136, 134, 147, 141, 131, 151, 144, 145, 136, 142, 141, 140, 127, 131, 131, 147, 140, 132, 138, 146, 139, 144, 140, 143, 133, 144, 148, 136, 141, 137, 146, 156, 149, 141, 135, 137, 138, 140, 135, 133, 143, 144, 127, 136, 139, 134, 144, 139, 137, 136, 137, 139, 133, 135, 132, 140, 147, 146, 142, 144, 133, 134, 136, 135, 151, 150, 147, 136, 146, 133, 129, 136, 146, 150, 137, 139, 138, 136, 137, 144, 137, 141, 133, 142, 133, 139, 133, 144, 139, 136, 159, 139, 143, 142, 135, 141, 131, 143, 139, 146, 143, 138, 130, 134, 151, 145, 136, 149, 139, 147, 143, 135, 148, 149, 134, 129, 130, 152, 134, 135, 144, 135, 146, 136, 140, 133, 143, 136, 125, 140, 138, 143, 139, 148, 141, 138, 134, 132, 138, 149, 144, 132, 141, 136, 140, 141, 142, 134, 132, 132, 134, 135, 130, 138, 138, 144, 146, 139, 140, 143, 133, 139, 133, 141, 144, 140, 145, 135, 141, 136, 136, 138, 135, 139, 129, 129, 139, 140, 135, 133, 140, 150, 145, 140, 139, 136, 142, 126, 136, 134, 137, 141, 133, 149, 145, 149, 135, 145, 138, 126, 141, 126, 137, 139, 139, 133, 140, 142, 141, 134, 134, 135, 130, 137, 137, 138, 139, 145, 134, 135, 140, 140, 149, 145, 134, 133, 129, 131, 139, 141, 133, 136, 138, 141, 145, 145, 129, 126, 147, 139, 136, 151, 141, 137, 151, 139, 152, 139, 140, 146, 140, 140, 140, 139, 137, 151, 141, 132, 140, 141, 138, 152, 141, 140, 141, 131, 138, 139, 140, 134, 144, 145, 133, 141, 133, 143, 138, 141, 136, 136, 142, 143, 135, 137, 137, 136, 146, 132, 135, 131, 137, 141, 141, 136, 141, 139, 135, 145, 140, 126, 145, 129, 137, 139, 141, 147, 136, 130, 136, 141, 136, 138, 140, 147, 134, 132, 135, 142, 138, 135, 139, 136, 130, 130, 138, 135, 144, 142, 131, 135, 133, 137, 131, 139, 138, 137, 141, 149, 144, 135, 138, 145, 143, 136, 138, 146, 145, 130, 134, 142, 134, 138, 131, 143, 133, 130, 139, 142, 138, 142, 146, 141, 149, 137, 140, 128, 139, 139, 141, 134, 136, 137, 137, 142, 139, 141, 137, 138, 131, 135, 136, 136, 138, 151, 136, 140, 143, 135, 137, 133, 136, 139, 141, 136, 144, 145, 132, 139, 143, 135, 136, 134, 135, 136, 137, 136, 136, 141, 135, 129, 129, 132, 145, 146, 141, 140, 134, 135, 132, 147, 142, 143, 135, 137, 154, 141, 147, 144, 131, 145, 143, 135, 140, 136, 144, 138, 138, 141, 135, 134, 148, 144, 147, 147, 139, 145, 138, 135, 145, 132, 132, 139, 144, 144, 138, 131, 132, 135, 134, 136, 138, 137, 138, 130, 135, 138, 136, 140, 126, 138, 147, 141, 140, 128, 140, 140, 136, 144, 147, 138, 132, 134, 144, 146, 136, 139, 148, 129, 143, 138, 146, 136, 139, 136, 140, 136, 146, 132, 127, 141, 140, 151, 143, 148, 140, 145, 142, 133, 143, 133, 133, 133, 134, 138, 139, 141, 132, 144, 133, 135, 132, 140, 150, 135, 146, 134, 141, 137, 138, 143, 139, 140, 148, 131, 131, 134, 132, 138, 138, 137, 135, 137, 134, 143, 149, 138, 130, 142, 139, 137, 143, 146, 137, 137, 138, 135, 139, 139, 135, 141, 142, 153, 140, 140, 150, 134, 149, 148, 139, 132, 133, 132, 136, 138, 132, 136, 147, 143, 143, 137, 136, 138, 139, 145, 133, 133, 145, 139, 137, 137, 142, 135, 140, 140, 150, 137, 138, 133, 136, 139, 140, 144, 130, 135, 136, 139, 147, 144, 144, 143, 135, 146, 137, 141, 134, 143, 138, 135, 140, 143, 133, 132, 129, 139, 144, 137, 134, 131, 138, 145, 134, 147, 137, 140, 138, 140, 146, 147, 141, 141, 132, 124, 133, 134, 143, 139, 147, 132, 138, 136, 146, 139, 140, 144, 133, 143, 147, 133, 142, 139, 136, 143, 138, 139, 140, 147, 132, 137, 138, 141, 133, 140, 145, 137, 144, 141, 141, 141, 131, 145, 148, 146, 137, 143, 137, 135, 143, 135, 140, 146, 139, 140, 134, 134, 136, 138, 140, 137, 143, 140, 145, 138, 140, 142, 150, 138, 145, 138, 145, 142, 148, 145, 142, 135, 142, 140, 137, 148, 136, 139, 143, 136, 143, 140, 144, 137, 137, 141, 130, 138, 134, 145, 136, 146, 144, 133, 137, 148, 134, 140, 135, 148, 140, 127, 133, 136, 136, 138, 143, 145, 145, 138, 140, 140, 138, 134, 138, 143, 130, 142, 131, 150, 141, 135, 141, 145, 140, 133, 144, 134, 144, 142, 135, 136, 135, 129, 146, 139, 141, 138, 136, 138, 142, 140, 143, 145, 128, 140, 138, 145, 133, 140, 137, 143, 136, 140, 140, 138, 130, 123, 148, 143, 126, 132, 138, 140, 139, 143, 141, 137, 136, 142, 139, 143, 142, 134, 141, 131, 141, 129, 142, 133, 135, 132, 139, 139, 142, 148, 140, 140, 134, 146, 138, 126, 149, 133, 148, 137, 135, 139, 137, 143, 139, 137, 144, 139, 136, 128, 133, 139, 148, 148, 140, 151, 137, 141, 140, 129, 142, 134, 146, 136, 134, 137, 124, 129, 132, 149, 134, 144, 133, 131, 131, 131, 134, 137, 147, 145, 132, 146, 136, 146, 138, 145, 132, 144, 144, 141, 145, 138, 130, 131, 138, 128, 136, 144, 137, 139, 134, 135, 139, 144, 138, 142, 148, 145, 136, 138, 137, 137, 139, 143, 139, 145, 140, 147, 130, 141, 142, 142, 143, 142, 140, 137, 143, 134, 136, 137, 126, 136, 140, 141, 140, 142, 140, 146, 137, 141, 146, 138, 140, 132, 135, 143, 142, 131, 144, 139, 144, 135, 143, 142, 136, 130, 141, 140, 143, 126, 140, 135, 138, 142, 134, 136, 138, 139, 135, 146, 139, 140, 140, 136, 136, 133, 130, 148, 137, 133, 143, 138, 145, 147, 141, 139, 139, 133, 142, 143, 127, 137, 133, 146, 135, 142, 138, 144, 135, 127, 141, 142, 140, 132, 141, 136, 143, 135, 137, 142, 140, 146, 146, 140, 143, 132, 143, 144, 145, 154, 130, 140, 137, 139, 135, 141, 141, 130, 142, 145, 131, 151, 137, 132, 136, 141, 137, 145, 137, 132, 148, 148, 143, 155, 140, 137, 143, 140, 151, 140, 145, 144, 134, 134, 142, 134, 138, 136, 140, 138, 139, 139, 136, 139, 136, 138, 141, 134, 135, 137, 140, 138, 145, 137, 132, 125, 139, 140, 143, 150, 144, 139, 137, 133, 151, 139, 134, 139, 130, 137, 139, 138, 152, 133, 144, 153, 137, 145, 137, 139, 137, 142, 136, 145, 139, 130, 136, 133, 120, 153, 142, 149, 140, 140, 147, 135, 130, 126, 137, 143, 139, 123, 131, 140, 142, 155, 145, 142, 161, 142, 132, 137, 143, 130, 129, 146, 145, 139, 140, 137, 137, 148, 139, 137, 139, 138, 126, 134, 134, 143, 126, 153, 155, 134, 154, 142, 138, 138, 138, 126, 135, 139, 137, 134, 143, 144, 148, 134, 143, 143, 145, 141, 137, 137, 146, 139, 130, 150, 139, 146, 142, 140, 133, 138, 134, 148, 134, 138, 135, 143, 143, 130, 148, 130, 133, 143, 136, 139, 143, 133, 140, 144, 137, 135, 139, 129, 136, 139, 132, 137, 130, 134, 137, 136, 137, 136, 135, 130, 132, 152, 137, 132, 133, 139, 134, 137, 139, 145, 140, 134, 150, 124, 139, 147, 134, 129, 151, 144, 145, 138, 141, 134, 136, 139, 143, 137, 146, 135, 134, 148, 132, 159, 136, 137, 138, 133, 149, 144, 143, 135, 137, 151, 135, 145, 138, 138, 136, 146, 138, 132, 143, 127, 139, 140, 148, 137, 142, 128, 133, 131, 138, 142, 139, 130, 126, 146, 138, 142, 137, 136, 141, 133, 140, 144, 137, 140, 138, 138, 132, 140, 148, 135, 144, 134, 144, 142, 144, 143, 140, 137, 145, 143, 139, 144, 143, 134, 142, 143, 133, 136, 130, 139, 140, 130, 146, 143, 140, 146, 151, 142, 137, 136, 149, 135, 138, 150, 132, 143, 145, 141, 143, 141, 141, 146, 141, 136, 143, 144, 129, 145, 131, 135, 144, 136, 134, 138, 136, 137, 150, 130, 128, 138, 126, 125, 127, 130, 137, 134, 153, 140, 142, 133, 142, 140, 140, 140, 137, 139, 126, 139, 149, 135, 124, 135, 132, 144, 143, 140, 135, 137, 148, 143, 137, 140, 145, 142, 138, 135, 140, 141, 137, 132, 144, 133, 149, 129, 141, 142, 131, 141, 139, 139, 138, 134, 131, 132, 144, 137, 145, 139, 142, 142, 135, 144, 149, 133, 136, 145, 143, 136, 144, 143, 139, 136, 138, 149, 140, 137, 142, 132, 145, 143, 126, 130, 140, 145, 134, 142, 146, 120, 146, 132, 140, 143, 138, 133, 137, 136, 141, 138, 146, 134, 137, 137, 150, 122, 143, 152, 153, 125, 134, 146, 150, 139, 140, 145, 144, 136, 146, 138, 143, 132, 143, 148, 148, 129, 133, 133, 137, 141, 139, 146, 134, 136, 141, 145, 145, 141, 139, 142, 132, 137, 138, 138, 147, 138, 147, 128, 133, 151, 137, 131, 128, 142, 140, 144, 136, 143, 147, 155, 139, 127, 128, 143, 141, 132, 146, 135, 140, 139, 148, 134, 150, 139, 153, 142, 134, 143, 137, 139, 139, 144, 129, 137, 154, 139, 136, 132, 144, 141, 140, 135, 149, 145, 141, 146, 136, 156, 135, 142, 148, 133, 140, 145, 136, 135, 136, 129, 155, 140, 129, 137, 130, 139, 148, 136, 130, 145, 148, 137, 143, 139, 148, 136, 130, 143, 151, 137, 132, 138, 144, 151, 125, 142, 144, 128, 136, 153, 129, 141, 160, 149, 143, 137, 136, 140, 142, 138, 145, 143, 143, 139, 136, 139, 142, 135, 140, 135, 136, 137, 141, 137, 139, 140, 137, 138, 138, 150, 131, 142, 140, 142, 152, 135, 136, 138, 142, 139, 136, 137, 138, 135, 139, 139, 139, 140, 138, 140, 137, 139, 135, 140, 131, 136, 137, 136, 138, 142, 136, 138, 137, 141, 138, 135, 136, 140, 128, 138, 134, 133, 136, 139, 139, 140, 133, 137, 139, 144, 136, 139, 141, 133, 143, 138, 136, 140, 129, 133, 135, 140, 135, 138, 139, 137, 133, 137, 129, 143, 140, 139, 134, 136, 140, 139, 132, 142, 141, 140, 136, 143, 143, 134, 135, 142, 142, 143, 136, 129, 136, 136, 136, 137, 141, 137, 135, 141, 133, 132, 133, 143, 137, 136, 135, 144, 144, 140, 138, 141, 133, 142, 138, 141, 138, 139, 140, 138, 139, 145, 138, 135, 140, 134, 137, 143, 140, 139, 137, 139, 138, 142, 141, 139, 141, 135, 143, 142, 140, 138, 138, 147, 140, 140, 131, 135, 142, 133, 139, 147, 158, 134, 141, 140, 140, 140, 133, 137, 140, 139, 141, 138, 136, 141, 138, 146, 138, 138, 141, 139, 139, 141, 138, 139, 141, 134, 137, 140, 137, 139, 139, 139, 139, 133, 135, 142, 134, 137, 142, 138, 134, 138, 140, 134, 144, 139, 131, 143, 143, 143, 139, 144, 140, 139, 137, 135, 144, 139, 137, 140, 136, 141, 134, 138, 133, 141, 144, 145, 141, 140, 133, 137, 134, 141, 140, 134, 136, 139, 140, 139, 144, 140, 141, 138, 137, 138, 141, 136, 142, 143, 137, 138, 136, 144, 138, 145, 149, 139, 138, 138, 135, 133, 140, 136, 137, 139, 142, 138, 137, 136, 137, 143, 134, 142, 140, 145, 137, 144, 129, 140, 144, 144, 133, 135, 139, 141, 132, 135, 132, 140, 135, 136, 144, 143, 134, 139, 141, 138, 143, 134, 135, 142, 140, 137, 139, 144, 141, 140, 142, 143, 138, 136, 139, 136, 140, 143, 139, 135, 145, 134, 140, 139, 143, 134, 139, 140, 144, 138, 139, 139, 136, 141, 145, 133, 138, 130, 135, 140, 141, 137, 135, 143, 138, 134, 142, 137, 133, 138, 142, 137, 135, 145, 142, 135, 139, 143, 132, 132, 139, 140, 136, 140, 137, 146, 140, 144, 141, 132, 140, 134, 140, 138, 142, 140, 137, 138, 139, 134, 143, 144, 139, 127, 132, 138, 123, 137, 145, 139, 137, 134, 138, 138, 161, 142, 140, 139, 139, 135, 146, 144, 133, 144, 136, 134, 142, 134, 135, 144, 137, 146, 144, 139, 142, 138, 141, 144, 142, 135, 139, 139, 151, 142, 142, 134, 136, 140, 143, 138, 144, 140, 141, 132, 141, 137, 138, 138, 140, 141, 139, 146, 140, 142, 140, 141, 141, 138, 135, 142, 145, 135, 134, 136, 139, 142, 138, 139, 142, 140, 137, 144, 144, 135, 137, 136, 139, 137, 140, 137, 143, 139, 133, 139, 139, 141, 142, 140, 144, 134, 139, 139, 135, 137, 140, 151, 143, 141, 137, 135, 137, 140, 139, 132, 147, 137, 135, 146, 137, 132, 132, 148, 135, 146, 137, 140, 149, 135, 147, 134, 132, 141, 136, 128, 141, 143, 134, 146, 138, 134, 139, 139, 145, 143, 137, 134, 141, 144, 139, 140, 144, 141, 131, 141, 140, 143, 136, 147, 133, 135, 134, 134, 142, 134, 132, 138, 139, 146, 124, 141, 131, 137, 147, 139, 137, 131, 142, 144, 135, 140, 137, 138, 129, 148, 136, 155, 134, 131, 143, 133, 135, 145, 141, 133, 137, 144, 138, 139, 136, 140, 139, 140, 134, 142, 133, 135, 131, 132, 138, 128, 150, 128, 141, 136, 146, 136, 140, 137, 134, 144, 138, 137, 142, 141, 132, 145, 140, 137, 145, 140, 137, 149, 144, 145, 132, 138, 143, 141, 138, 138, 140, 140, 136, 144, 145, 137, 134, 139, 140, 135, 140, 140, 138, 127, 142, 134, 142, 147, 139, 138, 144, 135, 130, 135, 137, 147, 145, 130, 144, 135, 145, 135, 149, 146, 140, 141, 134, 147, 138, 142, 137, 136, 141, 136, 132, 129, 130, 145, 130, 141, 134, 150, 145, 138, 140, 136, 129, 140, 143, 135, 140, 138, 136, 141, 137, 142, 136, 132, 139, 138, 137, 133, 140, 142, 139, 139, 144, 142, 143, 133, 138, 138, 134, 139, 139, 131, 135, 142, 139, 144, 139, 136, 144, 141, 139, 131, 133, 139, 140, 133, 139, 145, 128, 144, 136, 145, 140, 150, 145, 144, 134, 133, 133, 141, 134, 151, 142, 141, 131, 131, 136, 136, 142, 143, 134, 138, 134, 143, 133, 132, 148, 150, 132, 133, 138, 136, 138, 135, 150, 139, 134, 140, 136, 143, 136, 134, 139, 139, 137, 146, 140, 140, 139, 144, 138, 138, 138, 129, 136, 138, 137, 139, 140, 142, 136, 132, 143, 139, 143, 142, 143, 141, 138, 136, 142, 147, 135, 133, 131, 139, 129, 142, 137, 143, 132, 137, 141, 139, 144, 139, 137, 137, 126, 150, 137, 138, 144, 129, 146, 144, 145, 136, 133, 150, 133, 141, 137, 144, 129, 136, 139, 150, 144, 144, 142, 145, 132, 142, 141, 146, 137, 140, 144, 138, 146, 142, 134, 134, 143, 138, 138, 136, 136, 141, 144, 146, 136, 140, 143, 131, 136, 140, 140, 130, 134, 141, 129, 142, 141, 139, 140, 134, 138, 137, 141, 142, 140, 134, 134, 138, 125, 127, 126, 133, 135, 137, 143, 138, 141, 133, 145, 135, 148, 142, 143, 137, 148, 141, 122, 142, 140, 144, 140, 142, 144, 136, 137, 142, 140, 136, 132, 135, 141, 142, 141, 139, 138, 130, 133, 134, 140, 129, 149, 141, 143, 144, 135, 141, 139, 136, 137, 135, 139, 142, 143, 138, 143, 137, 148, 133, 139, 142, 131, 143, 143, 137, 141, 144, 136, 151, 134, 140, 144, 150, 143, 138, 137, 136, 146, 134, 136, 139, 143, 143, 133, 147, 135, 147, 136, 148, 145, 130, 144, 139, 138, 136, 150, 145, 144, 139, 140, 131, 149, 137, 135, 134, 141, 139, 137, 144, 135, 139, 145, 137, 136, 147, 145, 140, 141, 135, 129, 148, 144, 140, 142, 131, 134, 143, 143, 135, 140, 139, 132, 134, 138, 142, 133, 125, 137, 143, 136, 133, 135, 134, 138, 145, 134, 145, 127, 143, 145, 135, 141, 137, 136, 149, 129, 139, 135, 132, 144, 142, 149, 137, 144, 141, 140, 144, 127, 136, 139, 137, 143, 142, 133, 141, 142, 141, 140, 139, 133, 142, 144, 134, 123, 148, 133, 154, 147, 135, 141, 140, 141, 141, 121, 141, 142, 150, 142, 144, 133, 141, 141, 133, 135, 137, 144, 145, 131, 126, 139, 126, 139, 148, 140, 144, 138, 131, 135, 146, 135, 129, 141, 143, 139, 135, 132, 146, 125, 136, 140, 138, 146, 160, 139, 126, 135, 134, 148, 137, 137, 140, 144, 138, 135, 143, 141, 138, 137, 136, 147, 146, 138, 126, 147, 149, 139, 148, 134, 142, 136, 138, 139, 136, 138, 143, 141, 141, 132, 127, 136, 139, 136, 143, 149, 132, 138, 144, 141, 148, 138, 148, 145, 164, 144, 134, 127, 142, 141, 150, 130, 126, 137, 144, 136, 139, 138, 139, 140, 132, 131, 135, 143, 138, 136, 133, 143, 133, 129, 136, 137, 139, 139, 135, 131, 131, 138, 139, 133, 136, 140, 134, 140, 135, 136, 131, 144, 133, 146, 147, 153, 132, 142, 136, 143, 130, 129, 140, 136, 152, 138, 148, 129, 142, 136, 136, 139, 137, 139, 142, 133, 140, 146, 136, 126, 143, 139, 135, 129, 142, 139, 142, 142, 153, 143, 138, 128, 140, 128, 134, 147, 128, 121, 136, 132, 145, 151, 135, 145, 137, 142, 141, 132, 138, 137, 141, 137, 137, 141, 149, 139, 143, 142, 145, 140, 140, 137, 138, 137, 133, 133, 135, 140, 128, 133, 131, 141, 138, 154, 142, 138, 147, 132, 140, 143, 138, 141, 143, 135, 144, 130, 136, 145, 126, 137, 139, 145, 134, 141, 142, 140, 128, 137, 136, 136, 139, 134, 125, 139, 141, 142, 137, 140, 148, 140, 137, 132, 140, 138, 144, 148, 135, 138, 144, 147, 122, 142, 152, 132, 133, 139, 137, 154, 145, 145, 147, 141, 145, 142, 133, 137, 133, 139, 135, 145, 134, 141, 134, 140, 143, 142, 138, 140, 128, 143, 137, 140, 135, 133, 139, 135, 131, 138, 133, 130, 136, 136, 136, 144, 140, 142, 140, 147, 142, 159, 146, 145, 138, 146, 150, 142, 134, 146, 142, 140, 130, 142, 137, 145, 148, 147, 138, 127, 147, 143, 134, 144, 139, 139, 138, 139, 141, 130, 141, 140, 133, 139, 137, 136, 143, 136, 134, 135, 147, 145, 141, 146, 140, 137, 142, 130, 134, 150, 141, 135, 139, 133, 137, 132, 135, 130, 138, 128, 128, 143, 135, 138, 128, 136, 143, 135, 151, 137, 129, 140, 125, 129, 136, 136, 141, 135, 135, 141, 142, 128, 148, 141, 142, 155, 137, 142, 129, 139, 130, 142, 127, 139, 133, 139, 138, 144, 134, 141, 141, 140, 133, 138, 133, 146, 137, 138, 146, 159, 135, 133, 133, 126, 139, 135, 139, 148, 143, 129, 139, 132, 128, 142, 140, 146, 145, 153, 131, 131, 136, 145, 136, 137, 134, 136, 130, 126, 141, 138, 137, 137, 138, 130, 139, 141, 136, 143, 134, 135, 139, 130, 140, 135, 136, 139, 138, 135, 144, 141, 135, 137, 142, 135, 135, 141, 143, 142, 142, 139, 138, 136, 137, 145, 141, 139, 135, 139, 137, 142, 137, 147, 141, 139, 134, 142, 138, 142, 148, 136, 136, 140, 146, 138, 141, 138, 136, 142, 138, 135, 137, 137, 149, 126, 136, 139, 137, 140, 133, 136, 140, 133, 140, 137, 140, 140, 133, 143, 145, 138, 134, 138, 140, 136, 140, 143, 140, 152, 133, 137, 142, 142, 139, 132, 149, 143, 137, 133, 142, 138, 136, 140, 140, 132, 143, 138, 138, 135, 138, 134, 138, 136, 129, 139, 138, 147, 144, 138, 142, 147, 139, 142, 140, 135, 142, 131, 140, 139, 143, 145, 136, 133, 143, 136, 138, 136, 131, 139, 136, 138, 139, 144, 137, 145, 147, 139, 140, 138, 142, 135, 145, 142, 139, 137, 138, 140, 140, 138, 140, 143, 136, 137, 141, 144, 142, 151, 143, 135, 135, 135, 138, 143, 136, 138, 140, 138, 140, 140, 136, 140, 137, 138, 137, 140, 137, 137, 138, 138, 142, 143, 136, 142, 139, 143, 139, 140, 139, 140, 139, 143, 142, 141, 138, 137, 142, 136, 141, 145, 145, 143, 133, 135, 136, 146, 134, 140, 135, 135, 137, 145, 143, 134, 142, 137, 139, 142, 137, 139, 139, 140, 136, 139, 142, 133, 142, 136, 139, 140, 138, 138, 139, 137, 149, 138, 137, 148, 145, 153, 139, 135, 149, 140, 133, 143, 132, 139, 136, 133, 139, 128, 143, 133, 141, 134, 137, 137, 145, 139, 143, 139, 136, 136, 137, 142, 140, 139, 134, 135, 142, 134, 138, 140, 140, 143, 132, 135, 144, 139, 136, 144, 138, 137, 145, 143, 136, 136, 149, 141, 142, 132, 141, 134, 142, 134, 134, 140, 141, 138, 142, 148, 134, 138, 143, 133, 149, 138, 136, 141, 131, 123, 140, 140, 137, 141, 144, 143, 138, 133, 134, 138, 149, 141, 143, 143, 138, 145, 136, 136, 134, 139, 136, 149, 135, 140, 139, 152, 138, 141, 133, 134, 141, 145, 139, 142, 140, 137, 141, 143, 130, 133, 136, 137, 142, 139, 138, 139, 140, 143, 140, 129, 136, 139, 133, 145, 133, 136, 134, 135, 145, 136, 143, 139, 140, 141, 144, 138, 141, 129, 141, 133, 143, 138, 144, 145, 138, 140, 128, 138, 142, 138, 141, 139, 146, 143, 138, 137, 140, 150, 132, 146, 137, 144, 128, 140, 144, 127, 140, 139, 140, 137, 138, 141, 139, 140, 136, 147, 134, 130, 143, 143, 140, 138, 136, 134, 140, 141, 145, 146, 132, 131, 134, 145, 137, 139, 138, 134, 128, 140, 137, 142, 143, 138, 138, 133, 144, 135, 137, 138, 136, 138, 137, 138, 144, 139, 133, 144, 136, 142, 141, 139, 141, 140, 138, 137, 139, 143, 141, 146, 141, 138, 147, 134, 146, 141, 140, 139, 137, 139, 130, 136, 138, 137, 145, 144, 140, 136, 144, 141, 142, 140, 139, 135, 145, 141, 143, 136, 137, 127, 137, 139, 132, 135, 140, 133, 149, 131, 141, 144, 141, 141, 139, 135, 130, 137, 136, 140, 141, 138, 139, 142, 143, 149, 141, 141, 139, 134, 135, 142, 140, 140, 137, 139, 145, 147, 135, 132, 137, 140, 131, 137, 133, 133, 141, 159, 136, 143, 137, 133, 146, 135, 145, 141, 127, 135, 144, 138, 141, 139, 134, 135, 142, 140, 139, 141, 150, 132, 138, 135, 139, 144, 141, 143, 145, 145, 140, 142, 139, 132, 134, 132, 143, 142, 135, 138, 142, 142, 140, 142, 142, 143, 144, 144, 139, 140, 133, 140, 141, 142, 143, 136, 138, 136, 135, 142, 136, 142, 139, 143, 142, 144, 136, 142, 143, 140, 138, 133, 139, 133, 138, 143, 133, 141, 139, 143, 147, 140, 145, 138, 136, 139, 130, 134, 138, 136, 131, 145, 143, 137, 133, 136, 137, 131, 137, 134, 144, 142, 142, 140, 138, 141, 142, 135, 141, 139, 139, 137, 140, 139, 135, 138, 141, 152, 141, 139, 138, 138, 136, 141, 140, 142, 140, 145, 138, 138, 136, 130, 152, 139, 136, 148, 138, 139, 145, 137, 142, 137, 137, 138, 138, 143, 138, 137, 135, 142, 134, 136, 138, 144, 136, 138, 140, 141, 137, 134, 131, 130, 140, 140, 142, 137, 134, 141, 146, 135, 139, 147, 133, 142, 137, 135, 137, 133, 142, 135, 141, 139, 134, 139, 142, 141, 142, 141, 131, 129, 139, 137, 139, 140, 139, 133, 140, 138, 133, 137, 132, 132, 138, 137, 143, 146, 143, 132, 133, 135, 146, 138, 135, 141, 141, 136, 142, 135, 147, 143, 132, 143, 142, 139, 136, 144, 139, 137, 139, 142, 136, 140, 135, 138, 138, 135, 144, 138, 137, 144, 156, 140, 139, 138, 144, 146, 131, 143, 144, 139, 141, 125, 128, 138, 147, 140, 137, 134, 134, 140, 139, 135, 137, 134, 149, 144, 139, 139, 135, 133, 143, 150, 145, 142, 135, 136, 138, 133, 141, 142, 140, 139, 149, 138, 133, 138, 140, 143, 134, 146, 142, 146, 137, 139, 137, 137, 140, 143, 137, 148, 146, 143, 139, 147, 137, 143, 141, 136, 144, 137, 136, 130, 139, 151, 147, 140, 136, 138, 136, 134, 140, 136, 136, 140, 137, 140, 144, 141, 134, 140, 132, 138, 137, 141, 139, 134, 138, 143, 136, 135, 142, 148, 138, 139, 128, 129, 139, 138, 140, 135, 138, 139, 136, 138, 137, 135, 142, 140, 134, 136, 138, 135, 137, 129, 142, 136, 133, 141, 143, 131, 140, 139, 137, 139, 136, 134, 139, 142, 137, 137, 136, 137, 146, 134, 140, 138, 139, 143, 134, 131, 140, 135, 131, 141, 139, 140, 146, 130, 139, 145, 142, 133, 145, 139, 139, 136, 138, 139, 144, 136, 141, 141, 138, 134, 138, 143, 142, 140, 133, 136, 139, 140, 134, 141, 137, 141, 143, 137, 142, 143, 137, 142, 142, 135, 131, 139, 138, 141, 140, 135, 139, 140, 137, 143, 141, 143, 143, 137, 142, 136, 135, 139, 141, 140, 140, 138, 138, 136, 135, 141, 141, 140, 138, 137, 136, 135, 128, 135, 135, 139, 139, 135, 131, 134, 134, 149, 140, 142, 138, 141, 137, 144, 143, 139, 144, 131, 143, 143, 139, 139, 142, 149, 135, 139, 140, 133, 134, 130, 138, 141, 140, 137, 135, 138, 139, 124, 125, 143, 145, 135, 139, 145, 139, 141, 130, 124, 136, 146, 138, 131, 141, 136, 138, 152, 151, 134, 137, 134, 149, 129, 166, 144, 136, 139, 142, 138, 138, 138, 135, 146, 127, 136, 138, 151, 135, 126, 148, 137, 137, 140, 135, 146, 137, 134, 138, 132, 139, 138, 133, 137, 131, 134, 136, 134, 147, 136, 141, 136, 136, 139, 138, 139, 126, 141, 146, 130, 134, 136, 137, 142, 130, 151, 140, 141, 143, 138, 132, 134, 137, 144, 135, 137, 143, 139, 150, 137, 143, 152, 135, 132, 138, 150, 136, 141, 137, 138, 132, 143, 139, 136, 136, 138, 134, 139, 145, 134, 142, 149, 118, 142, 154, 135, 138, 140, 128, 150, 141, 129, 139, 140, 140, 142, 136, 133, 135, 134, 145, 134, 135, 139, 128, 131, 139, 144, 142, 143, 138, 142, 145, 131, 142, 132, 137, 146, 125, 141, 138, 143, 141, 136, 147, 146, 134, 146, 141, 145, 151, 137, 149, 139, 144, 143, 139, 139, 129, 130, 136, 128, 136, 137, 145, 142, 125, 141, 137, 142, 142, 133, 132, 142, 137, 124, 131, 146, 132, 135, 145, 142, 143, 138, 141, 136, 129, 138, 138, 131, 141, 130, 134, 138, 145, 129, 142, 128, 143, 135, 143, 140, 145, 147, 150, 132, 136, 150, 140, 128, 130, 144, 130, 140, 137, 146, 146, 139, 136, 138, 131, 137, 140, 154, 140, 142, 142, 140, 152, 129, 140, 138, 149, 134, 136, 135, 143, 140, 143, 142, 136, 146, 139, 148, 142, 132, 138, 126, 139, 139, 138, 136, 150, 152, 134, 123, 139, 132, 132, 145, 139, 147, 140, 133, 140, 127, 155, 133, 127, 150, 142, 144, 142, 141, 133, 131, 131, 139, 129, 145, 137, 131, 134, 137, 142, 136, 136, 143, 141, 139, 141, 141, 138, 139, 148, 135, 138, 131, 158, 138, 142, 151, 144, 135, 137, 138, 143, 137, 147, 145, 140, 133, 145, 133, 144, 139, 130, 131, 133, 137, 144, 136, 148, 144, 138, 139, 147, 128, 145, 121, 140, 130, 148, 136, 130, 122, 140, 130, 125, 137, 148, 138, 144, 138, 130, 128, 138, 146, 140, 136, 129, 139, 127, 136, 151, 132, 142, 149, 140, 136, 139, 138, 139, 144, 150, 135, 140, 137, 147, 135, 146, 144, 133, 129, 145, 146, 146, 143, 151, 147, 127, 142, 125, 138, 137, 135, 126, 148, 148, 136, 135, 146, 139, 134, 139, 138, 122, 138, 140, 142, 130, 147, 149, 143, 139, 135, 139, 135, 139, 139, 134, 128, 146, 146, 142, 132, 125, 142, 141, 138, 132, 140, 147, 137, 139, 134, 125, 129, 142, 149, 142, 140, 135, 138, 132, 134, 139, 136, 123, 144, 139, 137, 138, 140, 140, 142, 137, 136, 135, 144, 144, 140, 136, 133, 142, 143, 144, 142, 144, 136, 136, 150, 146, 128, 142, 138, 140, 136, 139, 142, 141, 138, 130, 141, 134, 141, 137, 139, 138, 134, 145, 135, 142, 136, 135, 141, 138, 139, 133, 140, 145, 142, 142, 144, 138, 136, 136, 143, 145, 140, 134, 135, 147, 137, 146, 136, 142, 135, 150, 140, 140, 138, 141, 137, 139, 136, 143, 130, 133, 149, 134, 144, 141, 144, 137, 133, 141, 135, 140, 146, 143, 136, 138, 138, 133, 135, 136, 145, 135, 141, 139, 140, 140, 143, 136, 134, 143, 135, 131, 130, 137, 134, 136, 138, 138, 137, 140, 139, 137, 140, 132, 140, 135, 132, 134, 143, 141, 137, 136, 138, 138, 131, 137, 139, 134, 137, 144, 141, 133, 133, 132, 138, 140, 139, 141, 134, 144, 137, 137, 141, 139, 134, 141, 137, 142, 141, 142, 140, 136, 136, 142, 142, 133, 135, 143, 136, 134, 145, 135, 141, 136, 141, 140, 133, 140, 142, 139, 142, 145, 146, 135, 135, 138, 138, 140, 145, 142, 135, 131, 137, 140, 141, 140, 143, 135, 145, 132, 143, 130, 137, 140, 133, 138, 140, 137, 144, 139, 144, 145, 139, 137, 136, 138, 142, 137, 136, 140, 137, 151, 134, 145, 140, 143, 135, 134, 141, 134, 134, 144, 134, 145, 139, 141, 140, 139, 132, 133, 144, 132, 132, 139, 146, 139, 136, 137, 140, 143, 137, 134, 144, 137, 143, 137, 141, 143, 142, 132, 140, 143, 137, 139, 141, 138, 142, 136, 142, 139, 137, 139, 138, 144, 133, 148, 148, 135, 139, 134, 140, 138, 137, 141, 131, 135, 145, 135, 141, 140, 139, 145, 136, 139, 139, 133, 144, 140, 148, 134, 136, 136, 141, 146, 134, 127, 134, 138, 138, 143, 146, 140, 136, 147, 140, 135, 138, 150, 137, 137, 138, 133, 140, 134, 141, 137, 148, 144, 136, 135, 137, 143, 136, 139, 138, 139, 137, 136, 140, 136, 138, 136, 140, 143, 143, 139, 134, 132, 137, 134, 136, 139, 138, 134, 140, 145, 143, 142, 133, 137, 141, 133, 140, 141, 138, 132, 141, 132, 138, 146, 139, 136, 137, 138, 139, 146, 136, 135, 137, 142, 135, 140, 143, 139, 142, 140, 139, 136, 144, 139, 145, 142, 140, 141, 136, 138, 140, 138, 137, 142, 136, 137, 146, 136, 141, 141, 146, 143, 137, 134, 142, 137, 137, 136, 137, 139, 136, 133, 138, 139, 137, 142, 147, 134, 138, 127, 126, 135, 154, 133, 135, 140, 138, 138, 140, 147, 137, 145, 135, 139, 140, 146, 144, 137, 141, 139, 135, 132, 138, 128, 133, 141, 134, 135, 141, 134, 141, 134, 140, 134, 133, 140, 146, 136, 132, 135, 144, 136, 138, 136, 140, 137, 139, 142, 147, 144, 133, 143, 138, 138, 134, 131, 135, 137, 133, 144, 141, 142, 142, 134, 137, 143, 140, 135, 143, 141, 139, 143, 141, 140, 142, 134, 132, 139, 132, 140, 137, 130, 140, 141, 146, 139, 137, 139, 145, 139, 138, 142, 145, 136, 141, 132, 136, 136, 143, 138, 141, 140, 141, 141, 137, 147, 140, 135, 141, 137, 133, 137, 144, 146, 136, 137, 130, 140, 150, 146, 140, 133, 135, 149, 132, 139, 138, 144, 145, 129, 140, 142, 143, 145, 136, 140, 138, 130, 132, 137, 136, 154, 130, 131, 141, 134, 141, 141, 135, 140, 134, 136, 146, 140, 131, 147, 140, 135, 143, 141, 146, 140, 134, 146, 134, 145, 137, 134, 138, 139, 142, 144, 140, 145, 144, 140, 133, 142, 136, 142, 139, 143, 136, 148, 140, 138, 141, 131, 144, 142, 139, 142, 139, 145, 138, 136, 144, 137, 143, 141, 136, 136, 135, 132, 138, 146, 137, 134, 132, 139, 146, 138, 145, 133, 125, 137, 146, 142, 148, 140, 141, 136, 133, 138, 142, 141, 148, 146, 143, 139, 134, 138, 132, 143, 133, 143, 141, 144, 138, 135, 137, 136, 144, 134, 138, 142, 137, 135, 152, 139, 139, 140, 136, 140, 139, 142, 136, 137, 134, 142, 142, 143, 135, 141, 144, 140, 140, 133, 136, 143, 140, 135, 150, 129, 135, 133, 138, 136, 135, 143, 149, 141, 142, 137, 139, 137, 137, 143, 134, 138, 138, 132, 138, 134, 140, 134, 135, 137, 134, 135, 134, 139, 130, 146, 140, 139, 142, 135, 138, 143, 142, 145, 140, 138, 146, 135, 136, 130, 136, 143, 135, 133, 138, 130, 141, 134, 135, 138, 140, 151, 135, 144, 134, 141, 133, 137, 142, 136, 134, 147, 142, 136, 143, 130, 137, 140, 145, 133, 139, 144, 134, 138, 135, 145, 137, 129, 134, 141, 148, 140, 145, 134, 141, 137, 135, 136, 133, 138, 135, 134, 134, 146, 140, 131, 138, 138, 138, 149, 138, 143, 141, 145, 141, 139, 142, 134, 145, 155, 140, 138, 140, 139, 126, 140, 129, 143, 135, 131, 138, 132, 128, 131, 133, 138, 139, 127, 140, 142, 137, 140, 147, 133, 134, 132, 136, 126, 134, 141, 136, 155, 140, 141, 131, 139, 144, 146, 152, 140, 143, 142, 134, 143, 133, 136, 132, 143, 138, 146, 142, 140, 138, 136, 128, 141, 149, 136, 144, 148, 135, 135, 137, 140, 134, 132, 152, 137, 137, 134, 139, 132, 133, 137, 144, 136, 144, 131, 133, 136, 140, 138, 137, 142, 133, 139, 139, 138, 136, 127, 141, 134, 140, 133, 138, 141, 137, 150, 138, 135, 125, 145, 139, 133, 133, 145, 132, 139, 133, 140, 139, 127, 143, 137, 139, 135, 142, 147, 144, 136, 132, 132, 145, 134, 140, 147, 137, 137, 133, 146, 134, 139, 137, 151, 141, 145, 138, 132, 135, 140, 145, 130, 140, 143, 138, 137, 139, 135, 144, 141, 138, 133, 134, 136, 137, 143, 137, 143, 132, 143, 142, 139, 138, 142, 135, 136, 141, 134, 142, 143, 133, 139, 137, 138, 147, 132, 143, 140, 142, 153, 144, 137, 137, 137, 143, 139, 142, 136, 139, 151, 137, 143, 140, 135, 142, 136, 130, 146, 132, 134, 147, 134, 132, 137, 134, 140, 135, 139, 144, 133, 139, 138, 124, 138, 133, 134, 138, 131, 132, 135, 134, 134, 135, 137, 135, 137, 136, 140, 140, 136, 140, 133, 135, 137, 146, 138, 142, 138, 137, 142, 148, 151, 137, 140, 146, 140, 135, 136, 141, 144, 141, 138, 138, 134, 142, 142, 139, 142, 137, 143, 145, 141, 147, 146, 139, 148, 135, 152, 142, 134, 144, 146, 138, 140, 138, 143, 136, 150, 139, 137, 138, 146, 139, 133, 137, 138, 131, 134, 140, 132, 130, 141, 141, 138, 136, 144, 131, 132, 136, 131, 137, 136, 137, 146, 139, 136, 131, 133, 138, 143, 137, 142, 145, 134, 141, 156, 139, 141, 143, 136, 130, 146, 131, 142, 132, 132, 138, 129, 138, 142, 134, 129, 141, 145, 143, 129, 140, 146, 150, 143, 143, 136, 143, 132, 133, 144, 135, 140, 136, 135, 137, 139, 137, 141, 138, 144, 146, 135, 150, 150, 140, 150, 135, 149, 134, 137, 139, 137, 141, 139, 139, 135, 139, 132, 139, 142, 147, 136, 150, 144, 145, 147, 140, 140, 142, 140, 145, 144, 143, 136, 133, 144, 137, 139, 136, 138, 143, 141, 133, 138, 138, 130, 138, 135, 138, 140, 137, 127, 129, 135, 138, 145, 136, 139, 141, 140, 150, 136, 138, 136, 141, 141, 137, 141, 145, 141, 139, 140, 140, 140, 138, 135, 138, 123, 135, 132, 141, 142, 141, 139, 138, 150, 140, 141, 132, 142, 138, 141, 140, 145, 134, 139, 129, 136, 137, 143, 130, 132, 139, 133, 137, 143, 142, 143, 137, 141, 134, 140, 142, 144, 144, 141, 146, 137, 139, 131, 134, 137, 139, 144, 137, 136, 143, 132, 136, 135, 133, 155, 134, 145, 130, 152, 135, 136, 131, 136, 140, 131, 131, 142, 137, 141, 138, 141, 138, 138, 139, 139, 138, 145, 143, 140, 140, 138, 139, 134, 131, 133, 131, 138, 133, 137, 142, 135, 142, 139, 136, 148, 139, 127, 136, 132, 130, 135, 138, 135, 143, 142, 135, 146, 136, 139, 140, 136, 140, 142, 140, 140, 132, 131, 138, 136, 132, 138, 148, 141, 135, 131, 149, 137, 126, 140, 151, 145, 135, 138, 131, 142, 134, 137, 144, 142, 144, 135, 138, 137, 146, 137, 129, 137, 139, 133, 138, 142, 140, 146, 146, 146, 143, 143, 143, 137, 139, 138, 138, 141, 132, 137, 139, 139, 134, 140, 137, 132, 139, 141, 131, 138, 133, 136, 140, 138, 133, 131, 130, 139, 143, 136, 135, 133, 143, 134, 134, 138, 136, 131, 138, 144, 139, 141, 140, 148, 140, 145, 136, 136, 125, 155, 142, 137, 146, 144, 150, 138, 139, 138, 137, 153, 145, 140, 135, 140, 131, 142, 145, 138, 139, 136, 139, 142, 141, 136, 140, 137, 147, 137, 146, 135, 148, 142, 131, 143, 141, 135, 141, 138, 127, 141, 146, 139, 132, 146, 138, 131, 145, 140, 135, 140, 140, 133, 132, 138, 132, 138, 137, 142, 129, 147, 125, 134, 136, 138, 144, 137, 137, 136, 135, 139, 137, 146, 142, 130, 137, 141, 139, 133, 135, 140, 133, 143, 133, 145, 139, 134, 139, 135, 144, 138, 137, 132, 138, 130, 146, 137, 130, 130, 138, 137, 142, 138, 133, 135, 132, 142, 135, 136, 141, 155, 147, 138, 138, 141, 134, 140, 141, 142, 141, 138, 146, 132, 130, 138, 140, 144, 136, 137, 143, 140, 140, 139, 136, 141, 137, 138, 145, 143, 137, 136, 132, 136, 144, 138, 144, 141, 136, 143, 145, 150, 142, 142, 145, 128, 142, 140, 142, 141, 136, 133, 132, 144, 139, 130, 149, 144, 134, 150, 140, 144, 130, 146, 148, 139, 143, 142, 131, 139, 132, 128, 135, 142, 136, 141, 139, 128, 148, 140, 137, 133, 140, 134, 137, 127, 131, 137, 145, 143, 127, 139, 144, 137, 143, 139, 141, 137, 140, 140, 127, 133, 138, 143, 139, 142, 145, 138, 132, 142, 140, 133, 140, 138, 140, 149, 138, 135, 144, 133, 139, 141, 140, 144, 137, 132, 134, 138, 137, 137, 133, 132, 142, 142, 142, 140, 139, 143, 135, 140, 127, 141, 137, 139, 123, 145, 135, 134, 138, 137, 132, 138, 144, 130, 134, 141, 132, 132, 143, 136, 137, 140, 129, 127, 143, 135, 133, 145, 141, 135, 139, 148, 147, 141, 143, 131, 143, 143, 138, 135, 136, 152, 139, 141, 134, 140, 137, 137, 132, 134, 142, 131, 135, 139, 139, 134, 140, 136, 147, 138, 139, 141, 140, 144, 145, 135, 135, 142, 139, 150, 143, 131, 136, 130, 132, 129, 127, 144, 147, 136, 130, 143, 137, 139, 137, 144, 144, 142, 132, 144, 140, 133, 130, 139, 140, 136, 144, 144, 140, 135, 134, 136, 136, 139, 138, 138, 148, 141, 151, 140, 144, 137, 141, 136, 144, 143, 144, 140, 142, 138, 136, 147, 142, 141, 137, 142, 144, 143, 149, 143, 138, 137, 134, 143, 134, 137, 130, 140, 140, 137, 144, 142, 145, 134, 133, 137, 149, 139, 143, 136, 132, 144, 131, 134, 140, 136, 149, 147, 137, 141, 140, 138, 142, 131, 145, 137, 131, 143, 140, 140, 140, 140, 146, 133, 142, 133, 138, 133, 137, 137, 141, 141, 141, 131, 145, 145, 131, 135, 144, 132, 135, 148, 141, 122, 138, 128, 142, 141, 137, 129, 140, 138, 139, 133, 142, 142, 146, 140, 129, 134, 139, 144, 139, 142, 140, 139, 133, 140, 150, 136, 138, 124, 135, 136, 139, 138, 143, 133, 146, 151, 143, 154, 134, 143, 137, 137, 134, 135, 135, 135, 141, 137, 141, 141, 142, 141, 143, 136, 138, 140, 141, 140, 135, 145, 142, 126, 141, 143, 143, 134, 138, 143, 137, 141, 134, 129, 134, 136, 144, 139, 133, 136, 141, 144, 145, 140, 138, 142, 140, 138, 144, 145, 126, 136, 134, 142, 140, 140, 137, 138, 146, 137, 142, 140, 125, 153, 139, 136, 138, 132, 138, 140, 144, 137, 136, 145, 138, 141, 139, 143, 138, 140, 138, 144, 149, 134, 142, 149, 132, 143, 140, 131, 133, 139, 130, 139, 134, 140, 135, 131, 147, 143, 144, 142, 145, 141, 142, 134, 142, 137, 138, 137, 136, 149, 136, 135, 137, 140, 131, 133, 140, 137, 132, 136, 136, 141, 137, 135, 146, 150, 145, 140, 139, 141, 131, 128, 142, 137, 141, 136, 132, 143, 142, 148, 125, 134, 140, 140, 131, 140, 134, 146, 148, 137, 138, 135, 134, 133, 142, 141, 136, 138, 136, 146, 139, 147, 141, 133, 134, 135, 136, 137, 143, 145, 138, 136, 138, 135, 147, 138, 132, 134, 130, 141, 144, 140, 142, 137, 140, 147, 130, 140, 135, 131, 139, 135, 139, 140, 141, 140, 147, 131, 138, 139, 138, 128, 141, 149, 140, 135, 131, 145, 137, 141, 135, 139, 146, 136, 144, 140, 143, 137, 140, 133, 147, 140, 143, 138, 146, 138, 135, 141, 130, 143, 138, 134, 128, 143, 137, 129, 138, 136, 137, 144, 144, 134, 142, 146, 141, 142, 136, 137, 142, 141, 144, 139, 140, 148, 145, 133, 141, 144, 143, 139, 133, 142, 144, 140, 141, 138, 145, 141, 136, 135, 135, 136, 136, 143, 137, 142, 139, 144, 134, 140, 139, 137, 138, 134, 131, 136, 139, 137, 137, 138, 139, 135, 137, 146, 138, 139, 139, 142, 136, 140, 139, 132, 143, 133, 133, 145, 136, 139, 133, 142, 135, 141, 134, 141, 140, 138, 134, 138, 139, 147, 141, 141, 136, 132, 138, 136, 140, 139, 146, 140, 136, 138, 136, 149, 126, 143, 136, 137, 135, 135, 141, 141, 135, 140, 143, 148, 134, 139, 144, 134, 136, 143, 137, 137, 142, 133, 140, 130, 139, 146, 135, 137, 140, 136, 131, 145, 136, 135, 141, 134, 152, 136, 140, 142, 142, 137, 135, 136, 141, 146, 132, 142, 143, 138, 144, 140, 135, 137, 134, 144, 142, 136, 133, 142, 135, 142, 134, 137, 133, 145, 145, 142, 139, 138, 137, 136, 137, 140, 134, 132, 140, 142, 127, 142, 136, 138, 136, 132, 136, 126, 140, 136, 137, 141, 146, 138, 138, 135, 143, 135, 137, 134, 150, 128, 138, 138, 135, 138, 140, 145, 141, 144, 138, 138, 138, 138, 138, 135, 142, 140, 137, 137, 137, 133, 141, 132, 139, 136, 136, 142, 149, 134, 148, 137, 137, 129, 134, 135, 141, 135, 144, 135, 125, 133, 141, 141, 137, 127, 137, 132, 132, 137, 141, 146, 137, 138, 128, 151, 132, 138, 143, 136, 138, 142, 145, 134, 136, 142, 135, 137, 139, 151, 132, 148, 143, 137, 143, 137, 144, 144, 138, 146, 147, 137, 142, 134, 138, 134, 132, 141, 139, 140, 143, 145, 133, 133, 129, 123, 132, 143, 136, 139, 142, 142, 133, 146, 140, 142, 144, 132, 144, 142, 141, 128, 127, 138, 139, 142, 136, 143, 138, 137, 135, 142, 143, 146, 139, 141, 136, 142, 139, 143, 146, 135, 147, 133, 140, 146, 144, 142, 128, 139, 140, 140, 142, 145, 146, 133, 138, 132, 146, 140, 139, 141, 141, 132, 141, 127, 136, 134, 138, 140, 136, 142, 135, 139, 143, 141, 144, 145, 135, 136, 135, 130, 132, 144, 143, 132, 151, 134, 137, 135, 136, 135, 140, 143, 130, 137, 135, 140, 135, 143, 130, 136, 134, 137, 141, 134, 144, 136, 141, 148, 140, 140, 138, 138, 142, 141, 141, 142, 140, 143, 135, 146, 137, 143, 146, 137, 136, 134, 145, 140, 137, 140, 136, 148, 139, 142, 140, 136, 129, 133, 134, 137, 133, 129, 134, 140, 137, 138, 132, 142, 136, 143, 130, 118, 138, 141, 130, 133, 139, 134, 140, 144, 142, 141, 140, 151, 143, 130, 129, 136, 140, 137, 133, 135, 140, 145, 131, 132, 151, 143, 133, 140, 143, 138, 133, 134, 138, 131, 134, 132, 143, 139, 146, 140, 144, 140, 133, 140, 137, 133, 140, 134, 136, 140, 133, 135, 137, 134, 148, 138, 149, 146, 144, 142, 134, 133, 130, 143, 131, 136, 132, 143, 143, 129, 136, 142, 136, 137, 144, 149, 142, 135, 135, 133, 141, 137, 139, 127, 143, 141, 135, 144, 141, 142, 140, 135, 138, 139, 136, 138, 133, 147, 131, 138, 141, 131, 147, 135, 139, 136, 142, 141, 142, 142, 134, 144, 138, 150, 142, 141, 141, 136, 143, 141, 130, 131, 131, 147, 144, 144, 131, 147, 147, 138, 139, 125, 142, 146, 142, 142, 145, 141, 144, 146, 133, 147, 141, 131, 136, 140, 132, 132, 143, 139, 137, 143, 136, 138, 143, 136, 134, 137, 141, 138, 143, 135, 143, 133, 145, 138, 131, 134, 140, 133, 137, 137, 139, 129, 136, 135, 138, 144, 137, 140, 140, 132, 146, 142, 138, 138, 138, 131, 143, 144, 142, 141, 138, 136, 134, 133, 139, 135, 140, 141, 140, 139, 136, 133, 147, 135, 138, 139, 141, 140, 146, 142, 138, 135, 129, 147, 141, 135, 141, 145, 137, 138, 137, 147, 144, 144, 140, 132, 136, 147, 135, 139, 139, 135, 154, 141, 137, 146, 137, 125, 135, 141, 139, 140, 140, 135, 138, 147, 142, 141, 139, 138, 142, 144, 136, 135, 136, 145, 142, 153, 143, 143, 142, 135, 132, 137, 141, 140, 146, 144, 139, 131, 142, 134, 144, 146, 131, 147, 136, 135, 137, 137, 140, 141, 127, 137, 140, 138, 142, 132, 136, 135, 139, 133, 135, 139, 143, 136, 135, 140, 142, 133, 134, 134, 144, 138, 138, 140, 138, 135, 140, 139, 136, 146, 149, 128, 139, 138, 146, 149, 135, 139, 140, 153, 142, 133, 144, 139, 136, 140, 137, 137, 148, 139, 129, 137, 134, 134, 136, 143, 138, 141, 144, 143, 137, 146, 149, 134, 142, 138, 137, 130, 138, 142, 145, 138, 138, 145, 134, 142, 139, 138, 143, 136, 142, 132, 142, 140, 149, 141, 139, 133, 146, 137, 144, 134, 134, 143, 138, 141, 136, 140, 143, 144, 140, 136, 140, 137, 144, 130, 141, 132, 131, 136, 140, 138, 134, 139, 132, 136, 126, 128, 142, 138, 143, 137, 132, 138, 140, 149, 136, 134, 131, 141, 142, 133, 142, 140, 147, 138, 144, 136, 141, 135, 141, 139, 136, 126, 143, 135, 144, 138, 131, 137, 131, 138, 135, 140, 140, 140, 142, 134, 134, 138, 145, 141, 138, 151, 150, 139, 137, 133, 146, 139, 134, 139, 150, 130, 133, 142, 132, 138, 146, 137, 136, 138, 137, 141, 137, 142, 131, 138, 133, 133, 138, 150, 138, 142, 151, 139, 139, 137, 142, 142, 136, 138, 132, 141, 152, 142, 139, 131, 124, 127, 144, 144, 140, 135, 145, 129, 140, 143, 140, 148, 136, 137, 142, 133, 137, 144, 139, 142, 133, 142, 140, 137, 138, 135, 138, 134, 140, 160, 144, 142, 148, 137, 147, 146, 121, 136, 136, 143, 141, 146, 136, 150, 130, 144, 157, 143, 140, 140, 147, 143, 142, 134, 136, 141, 140, 147, 142, 136, 137, 144, 131, 138, 136, 139, 138, 139, 137, 127, 141, 146, 144, 141, 137, 128, 142, 136, 146, 137, 147, 138, 130, 137, 137, 137, 142, 167, 135, 149, 137, 139, 132, 134, 149, 142, 127, 143, 142, 138, 145, 130, 133, 140, 132, 142, 140, 137, 139, 152, 140, 136, 139, 131, 137, 140, 137, 138, 144, 127, 128, 128, 132, 141, 131, 145, 149, 156, 140, 147, 132, 140, 133, 144, 150, 135, 138, 147, 138, 138, 141, 137, 138, 141, 144, 135, 134, 142, 142, 144, 150, 139, 145, 139, 128, 138, 126, 141, 136, 132, 135, 150, 133, 144, 139, 136, 128, 137, 137, 141, 126, 134, 133, 144, 137, 142, 132, 137, 134, 139, 133, 140, 139, 144, 143, 139, 136, 132, 147, 150, 141, 138, 130, 143, 142, 145, 145, 143, 136, 127, 142, 145, 156, 136, 134, 145, 146, 132, 131, 139, 139, 143, 138, 138, 130, 146, 139, 145, 143, 130, 145, 135, 137, 133, 132, 143, 138, 133, 138, 133, 143, 134, 134, 126, 136, 134, 132, 143, 151, 136, 135, 140, 141, 141, 134, 141, 138, 141, 135, 117, 136, 148, 131, 140, 144, 132, 131, 138, 132, 133, 148, 130, 145, 141, 124, 141, 140, 128, 137, 141, 136, 133, 144, 136, 144, 134, 138, 144, 132, 140, 140, 132, 137, 150, 133, 136, 141, 136, 146, 149, 134, 128, 131, 137, 141, 139, 141, 145, 150, 136, 131, 138, 139, 134, 145, 145, 147, 136, 136, 134, 137, 136, 136, 138, 134, 129, 130, 141, 141, 146, 135, 139, 141, 136, 134, 148, 161, 133, 149, 138, 134, 143, 133, 137, 135, 143, 145, 140, 136, 140, 135, 141, 146, 129, 139, 137, 149, 137, 142, 139, 141, 132, 146, 150, 130, 134, 140, 136, 137, 134, 152, 140, 132, 156, 137, 142, 139, 149, 150, 140, 142, 133, 149, 135, 138, 138, 147, 131, 137, 140, 141, 140, 130, 132, 137, 129, 130, 142, 132, 137, 140, 151, 136, 145, 147, 134, 133, 139, 142, 151, 133, 141, 132, 144, 137, 142, 141, 130, 144, 142, 142, 138, 144, 129, 131, 135, 140, 140, 139, 138, 126, 136, 131, 136, 140, 131, 139, 151, 144, 135, 128, 134, 151, 139, 147, 133, 134, 130, 142, 142, 150, 132, 146, 135, 144, 135, 129, 142, 129, 137, 135, 135, 144, 147, 129, 131, 145, 139, 143, 131, 136, 140, 138, 131, 163, 144, 123, 146, 136, 137, 139, 128, 142, 128, 134, 154, 148, 155, 135, 133, 127, 147, 134, 137, 134, 137, 138, 137, 138, 140, 132, 135, 143, 138, 138, 142, 140, 131, 135, 151, 130, 144, 141, 137, 140, 133, 141, 145, 137, 136, 140, 141, 150, 140, 147, 142, 141, 145, 140, 133, 136, 143, 145, 141, 136, 132, 133, 127, 136, 137, 134, 129, 132, 147, 134, 149, 135, 144, 138, 135, 141, 132, 139, 136, 136, 142, 140, 136, 133, 138, 135, 140, 143, 139, 139, 137, 138, 137, 143, 145, 128, 137, 136, 137, 140, 147, 151, 140, 146, 141, 133, 139, 136, 148, 132, 142, 138, 135, 137, 138, 137, 149, 135, 130, 133, 139, 139, 140, 136, 137, 136, 125, 142, 137, 133, 146, 138, 139, 147, 147, 138, 151, 146, 134, 149, 147, 127, 144, 132, 136, 140, 145, 147, 138, 138, 127, 138, 135, 147, 139, 140, 145, 140, 151, 147, 133, 130, 141, 134, 143, 147, 140, 145, 136, 130, 149, 136, 135, 138, 133, 130, 143, 141, 152, 141, 136, 150, 144, 136, 149, 143, 140, 130, 132, 138, 141, 143, 142, 140, 132, 136, 139, 141, 136, 137, 138, 138, 139, 142, 141, 136, 146, 136, 132, 144, 134, 140, 141, 142, 132, 134, 133, 140, 134, 131, 138, 142, 148, 141, 136, 143, 128, 140, 139, 135, 141, 135, 135, 135, 141, 137, 137, 135, 132, 139, 135, 140, 136, 142, 138, 142, 131, 141, 144, 144, 148, 140, 142, 131, 134, 140, 138, 138, 139, 137, 133, 135, 140, 132, 132, 145, 140, 140, 140, 139, 130, 140, 140, 131, 133, 136, 138, 133, 147, 140, 128, 137, 129, 128, 141, 133, 141, 142, 144, 133, 139, 140, 137, 131, 159, 128, 143, 146, 150, 140, 135, 140, 147, 134, 145, 143, 141, 128, 143, 135, 142, 140, 125, 145, 135, 138, 132, 139, 139, 144, 134, 136, 130, 135, 140, 138, 137, 144, 139, 147, 139, 133, 142, 144, 136, 137, 136, 146, 140, 128, 134, 138, 140, 134, 136, 136, 141, 140, 140, 138, 134, 132, 143, 134, 139, 138, 135, 137, 130, 138, 135, 132, 146, 140, 131, 133, 140, 132, 133, 154, 135, 132, 144, 136, 142, 141, 137, 140, 133, 143, 143, 135, 134, 136, 131, 139, 139, 138, 138, 145, 136, 133, 138, 140, 140, 134, 146, 139, 135, 144, 139, 137, 135, 135, 141, 137, 139, 139, 132, 137, 148, 136, 155, 134, 134, 131, 145, 141, 138, 141, 133, 138, 129, 125, 142, 149, 141, 139, 126, 143, 133, 139, 139, 147, 139, 136, 136, 134, 135, 133, 146, 140, 137, 136, 136, 131, 137, 128, 145, 132, 135, 144, 136, 137, 140, 145, 133, 139, 144, 137, 146, 141, 139, 142, 145, 139, 138, 133, 132, 141, 134, 155, 136, 138, 137, 151, 139, 149, 141, 141, 149, 138, 129, 137, 155, 136, 136, 136, 139, 131, 145, 140, 137, 133, 131, 142, 139, 148, 141, 138, 140, 148, 135, 136, 134, 149, 147, 143, 132, 135, 137, 136, 136, 140, 149, 147, 137, 142, 149, 141, 138, 134, 144, 141, 130, 134, 144, 139, 139, 138, 130, 141, 145, 139, 141, 150, 137, 137, 121, 147, 139, 150, 141, 140, 148, 142, 129, 135, 141, 141, 135, 139, 136, 135, 133, 155, 142, 137, 134, 148, 139, 138, 143, 150, 141, 137, 136, 136, 138, 136, 135, 154, 138, 142, 138, 136, 141, 139, 137, 129, 143, 145, 143, 137, 143, 140, 139, 134, 133, 139, 144, 144, 137, 141, 144, 131, 125, 132, 140, 136, 137, 138, 139, 135, 135, 140, 146, 141, 137, 133, 132, 141, 138, 134, 133, 134, 139, 140, 138, 137, 143, 129, 138, 139, 137, 140, 144, 133, 136, 135, 129, 128, 138, 140, 125, 138, 139, 135, 142, 136, 142, 136, 141, 140, 141, 136, 144, 133, 144, 142, 128, 136, 140, 147, 135, 140, 143, 139, 137, 141, 139, 139, 141, 133, 131, 134, 137, 140, 142, 145, 130, 140, 137, 134, 140, 140, 133, 138, 127, 139, 133, 136, 131, 132, 137, 138, 140, 132, 140, 137, 136, 140, 147, 142, 134, 142, 137, 120, 137, 141, 143, 142, 137, 149, 137, 136, 145, 135, 137, 147, 145, 128, 139, 135, 132, 141, 137, 154, 135, 144, 137, 138, 139, 136, 149, 143, 143, 141, 132, 141, 132, 133, 137, 147, 132, 155, 143, 131, 139, 145, 138, 134, 141, 155, 138, 143, 139, 144, 141, 139, 152, 137, 133, 137, 134, 140, 142, 135, 138, 138, 139, 146, 144, 132, 155, 139, 134, 148, 140, 134, 140, 154, 134, 149, 145, 134, 136, 129, 149, 139, 127, 136, 137, 140, 144, 138, 131, 138, 130, 129, 130, 136, 142, 139, 138, 129, 138, 137, 136, 139, 143, 135, 134, 128, 136, 133, 135, 141, 139, 144, 141, 128, 139, 137, 140, 142, 141, 134, 140, 141, 138, 142, 144, 139, 140, 140, 140, 142, 140, 141, 137, 147, 139, 134, 136, 141, 143, 134, 131, 137, 149, 144, 152, 127, 145, 136, 135, 134, 145, 139, 142, 134, 135, 126, 150, 137, 131, 135, 138, 137, 141, 134, 138, 141, 141, 136, 137, 141, 133, 136, 140, 139, 136, 141, 135, 144, 149, 139, 144, 141, 129, 145, 141, 145, 138, 143, 145, 141, 141, 142, 140, 141, 134, 144, 142, 130, 127, 137, 132, 139, 151, 137, 137, 139, 147, 135, 143, 129, 140, 140, 138, 141, 145, 132, 138, 138, 141, 137, 133, 140, 140, 142, 140, 132, 140, 143, 144, 139, 136, 139, 131, 137, 140, 141, 144, 148, 137, 148, 132, 140, 138, 141, 137, 136, 133, 139, 149, 130, 133, 134, 140, 148, 145, 148, 135, 144, 134, 145, 148, 139, 143, 144, 149, 139, 123, 138, 136, 140, 142, 135, 138, 140, 131, 132, 145, 137, 138, 135, 141, 140, 145, 137, 139, 138, 135, 129, 141, 146, 134, 127, 140, 144, 126, 143, 140, 139, 145, 142, 138, 142, 145, 133, 139, 138, 135, 129, 135, 139, 138, 139, 147, 144, 148, 139, 146, 147, 137, 148, 137, 136, 133, 140, 140, 146, 134, 141, 145, 137, 138, 133, 131, 139, 144, 137, 132, 139, 132, 137, 132, 140, 144, 144, 135, 130, 135, 133, 140, 135, 140, 134, 135, 140, 139, 133, 140, 143, 139, 116, 149, 137, 138, 140, 135, 138, 134, 136, 141, 133, 141, 130, 127, 129, 147, 146, 145, 130, 137, 139, 135, 133, 143, 133, 152, 139, 133, 139, 137, 139, 155, 137, 144, 140, 143, 133, 139, 134, 143, 143, 149, 136, 123, 132, 134, 154, 145, 142, 136, 141, 145, 135, 130, 142, 133, 140, 143, 134, 136, 149, 136, 127, 128, 132, 145, 136, 136, 139, 119, 138, 143, 127, 142, 139, 140, 131, 137, 143, 140, 141, 144, 131, 137, 137, 159, 139, 134, 153, 137, 125, 129, 132, 142, 129, 149, 142, 133, 142, 142, 137, 138, 144, 135, 133, 131, 132, 138, 140, 136, 134, 135, 133, 133, 148, 134, 145, 127, 135, 143, 145, 137, 147, 136, 135, 143, 136, 139, 135, 141, 139, 135, 130, 122, 140, 133, 126, 149, 126, 140, 142, 124, 138, 128, 125, 134, 139, 141, 144, 148, 134, 131, 140, 152, 143, 132, 134, 152, 138, 137, 142, 135, 126, 140, 140, 134, 145, 136, 126, 145, 139, 138, 138, 139, 141, 136, 142, 140, 138, 146, 136, 141, 135, 133, 134, 128, 150, 141, 136, 131, 141, 140, 143, 139, 140, 141, 135, 134, 133, 147, 140, 139, 146, 140, 140, 143, 132, 140, 145, 136, 147, 134, 135, 130, 134, 145, 149, 145, 137, 149, 132, 139, 140, 149, 138, 145, 144, 139, 153, 132, 132, 139, 131, 153, 143, 142, 132, 136, 147, 142, 125, 128, 146, 141, 139, 145, 133, 127, 138, 139, 142, 150, 139, 136, 145, 142, 128, 143, 123, 139, 133, 145, 144, 143, 146, 145, 134, 132, 134, 135, 138, 140, 136, 132, 143, 141, 139, 136, 145, 138, 136, 147, 136, 134, 140, 145, 137, 132, 137, 137, 134, 131, 130, 133, 144, 134, 139, 148, 136, 135, 150, 135, 142, 140, 147, 142, 128, 149, 145, 135, 136, 128, 130, 147, 141, 134, 126, 155, 130, 147, 141, 134, 130, 135, 132, 138, 131, 136, 139, 143, 137, 135, 137, 136, 146, 150, 141, 153, 146, 141, 138, 137, 141, 138, 130, 147, 138, 134, 141, 122, 133, 139, 142, 138, 145, 135, 138, 135, 143, 148, 142, 131, 141, 138, 142, 130, 140, 144, 142, 136, 142, 126, 138, 141, 137, 143, 137, 134, 135, 148, 136, 137, 144, 130, 149, 123, 142, 128, 131, 127, 136, 140, 135, 141, 138, 141, 142, 136, 150, 136, 141, 144, 134, 129, 133, 134, 135, 151, 131, 144, 147, 131, 145, 147, 134, 136, 150, 135, 137, 135, 141, 142, 146, 135, 137, 134, 139, 134, 137, 135, 134, 150, 140, 141, 135, 153, 137, 124, 135, 138, 145, 127, 131, 139, 132, 148, 137, 131, 138, 144, 136, 138, 135, 135, 137, 147, 138, 140, 132, 127, 148, 135, 147, 142, 136, 135, 137, 140, 136, 137, 141, 138, 144, 154, 129, 130, 144, 146, 137, 136, 143, 145, 147, 130, 148, 136, 135, 143, 131, 135, 150, 145, 133, 140, 140, 135, 143, 130, 128, 132, 146, 137, 130, 140, 135, 146, 151, 139, 133, 141, 135, 135, 137, 140, 133, 134, 144, 136, 136, 127, 121, 143, 152, 134, 139, 145, 136, 145, 152, 136, 144, 144, 144, 127, 136, 148, 129, 142, 139, 128, 136, 150, 137, 143, 139, 138, 143, 138, 146, 132, 130, 143, 137, 142, 144, 148, 132, 142, 143, 142, 146, 141, 136, 142, 133, 136, 148, 152, 144, 129, 151, 146, 143, 131, 133, 140, 137, 138, 111, 135, 132, 137, 141, 122, 139, 147, 139, 132, 124, 132, 141, 133, 129, 148, 157, 143, 136, 129, 138, 134, 127, 132, 139, 138, 143, 142, 141, 134, 134, 142, 144, 135, 140, 133, 143, 142, 136, 143, 142, 144, 132, 132, 118, 133, 136, 136, 145, 167, 133, 139, 140, 148, 142, 136, 129, 137, 137, 141, 145, 130, 137, 136, 133, 147, 140, 140, 133, 136, 136, 145, 131, 141, 143, 142, 142, 137, 136, 145, 135, 144, 135, 146, 142, 140, 139, 150, 131, 144, 144, 145, 133, 129, 136, 136, 142, 145, 147, 143, 145, 138, 131, 135, 128, 135, 136, 130, 136, 133, 136, 142, 142, 131, 136, 130, 136, 132, 129, 134, 140, 146, 142, 136, 134, 134, 144, 133, 140, 139, 139, 125, 139, 141, 129, 143, 137, 141, 141, 135, 145, 131, 141, 146, 141, 137, 150, 127, 146, 142, 142, 144, 130, 126, 140, 132, 123, 126, 144, 146, 138, 136, 143, 128, 142, 136, 135, 139, 152, 143, 147, 129, 141, 137, 149, 146, 130, 132, 132, 135, 141, 132, 126, 138, 126, 147, 155, 138, 136, 140, 139, 136, 144, 149, 134, 145, 140, 144, 138, 144, 140, 138, 137, 137, 127, 153, 152, 143, 136, 147, 135, 137, 138, 130, 143, 146, 134, 128, 139, 139, 141, 140, 123, 137, 134, 131, 139, 139, 137, 125, 139, 132, 145, 143, 151, 142, 133, 139, 144, 133, 133, 129, 142, 133, 134, 134, 126, 130, 129, 137, 132, 149, 148, 135, 147, 136, 130, 122, 134, 141, 130, 143, 136, 133, 145, 136, 150, 141, 128, 141, 142, 137, 148, 153, 140, 130, 125, 137, 138, 147, 143, 132, 138, 145, 137, 148, 137, 136, 140, 138, 139, 143, 138, 130, 141, 148, 142, 131, 139, 123, 147, 148, 137, 131, 130, 143, 122, 135, 140, 140, 135, 149, 144, 140, 135, 149, 140, 145, 142, 137, 146, 146, 141, 138, 139, 131, 136, 126, 131, 135, 149, 139, 137, 128, 151, 137, 145, 136, 140, 137, 142, 147, 136, 144, 137, 141, 139, 132, 155, 145, 137, 134, 145, 129, 137, 134, 137, 138, 142, 146, 138, 145, 141, 137, 133, 136, 139, 140, 133, 139, 133, 131, 137, 137, 149, 145, 133, 127, 157, 148, 131, 140, 134, 139, 135, 139, 139, 148, 141, 135, 148, 143, 135, 143, 148, 135, 141, 130, 153, 136, 128, 126, 139, 142, 132, 140, 141, 139, 141, 148, 137, 136, 131, 145, 143, 140, 143, 135, 131, 141, 131, 138, 144, 160, 143, 142, 144, 132, 159, 135, 141, 142, 134, 139, 141, 142, 142, 141, 138, 143, 149, 135, 137, 138, 140, 142, 145, 141, 142, 144, 146, 135, 137, 139, 142, 138, 128, 139, 139, 137, 133, 141, 142, 142, 146, 137, 139, 138, 144, 144, 145, 138, 135, 134, 138, 134, 135, 143, 136, 139, 135, 143, 140, 134, 133, 142, 138, 140, 139, 134, 140, 144, 141, 134, 136, 144, 137, 146, 137, 137, 135, 140, 134, 140, 138, 137, 143, 138, 140, 137, 144, 140, 143, 140, 142, 139, 134, 132, 134, 138, 143, 138, 136, 135, 135, 142, 143, 142, 136, 132, 140, 141, 141, 144, 143, 139, 141, 142, 142, 131, 130, 134, 126, 143, 133, 143, 138, 138, 125, 141, 138, 129, 134, 140, 144, 136, 144, 138, 137, 139, 139, 141, 141, 136, 136, 135, 136, 145, 137, 148, 140, 135, 143, 134, 144, 136, 143, 128, 149, 140, 144, 132, 141, 134, 134, 132, 135, 136, 138, 140, 142, 145, 137, 138, 137, 142, 137, 141, 139, 135, 143, 139, 134, 141, 148, 137, 149, 140, 136, 144, 142, 144, 147, 143, 134, 138, 140, 143, 142, 135, 141, 137, 137, 141, 147, 141, 137, 143, 134, 137, 140, 137, 139, 139, 138, 142, 140, 134, 132, 135, 145, 145, 145, 138, 141, 146, 140, 144, 139, 132, 124, 146, 133, 128, 135, 141, 144, 146, 138, 137, 135, 143, 136, 138, 151, 137, 133, 138, 140, 135, 148, 142, 135, 130, 137, 143, 133, 137, 133, 135, 134, 153, 142, 138, 139, 135, 144, 142, 138, 137, 140, 142, 136, 133, 134, 134, 142, 126, 141, 136, 141, 131, 132, 142, 135, 141, 140, 135, 138, 140, 130, 141, 138, 129, 135, 136, 148, 139, 140, 138, 151, 145, 140, 138, 148, 138, 135, 142, 134, 140, 137, 142, 146, 130, 139, 132, 142, 133, 137, 138, 140, 137, 139, 151, 152, 139, 141, 140, 143, 133, 135, 138, 138, 148, 140, 139, 143, 132, 140, 152, 131, 144, 140, 139, 138, 140, 135, 132, 137, 136, 138, 142, 136, 130, 136, 137, 136, 136, 141, 133, 139, 141, 140, 136, 132, 137, 139, 137, 132, 131, 143, 147, 143, 134, 134, 143, 138, 135, 144, 143, 145, 139, 133, 138, 140, 134, 142, 142, 141, 135, 153, 135, 145, 136, 140, 138, 147, 143, 140, 139, 143, 143, 145, 141, 138, 134, 140, 140, 142, 136, 135, 135, 134, 138, 125, 143, 143, 136, 143, 147, 135, 139, 128, 128, 133, 139, 138, 147, 136, 144, 140, 141, 142, 147, 143, 125, 137, 134, 140, 139, 139, 141, 137, 146, 141, 140, 140, 145, 135, 142, 140, 134, 135, 134, 142, 145, 136, 144, 153, 146, 138, 150, 137, 147, 140, 145, 140, 140, 137, 138, 131, 142, 138, 137, 149, 135, 146, 140, 140, 144, 132, 136, 139, 134, 136, 142, 136, 129, 137, 142, 144, 136, 142, 131, 147, 139, 142, 140, 133, 136, 136, 140, 133, 139, 155, 134, 139, 148, 142, 139, 133, 136, 142, 137, 133, 134, 140, 138, 146, 138, 150, 134, 145, 137, 139, 139, 141, 143, 138, 134, 137, 138, 141, 138, 137, 138, 136, 149, 144, 151, 137, 144, 141, 143, 136, 131, 141, 141, 135, 142, 147, 139, 151, 134, 135, 133, 134, 137, 140, 138, 140, 134, 141, 139, 139, 144, 135, 144, 136, 141, 135, 137, 132, 137, 144, 151, 140, 137, 138, 123, 140, 142, 133, 146, 130, 142, 135, 136, 130, 124, 134, 127, 147, 135, 138, 134, 129, 143, 138, 137, 141, 133, 146, 140, 140, 133, 142, 130, 142, 142, 131, 140, 140, 151, 137, 142, 141, 139, 128, 143, 137, 150, 135, 137, 137, 150, 147, 146, 145, 144, 140, 143, 127, 150, 126, 148, 142, 135, 135, 141, 132, 133, 137, 142, 132, 137, 141, 132, 132, 140, 145, 130, 139, 136, 127, 131, 145, 141, 141, 133, 135, 148, 137, 139, 131, 137, 135, 146, 144, 136, 137, 141, 139, 146, 135, 138, 155, 126, 142, 135, 148, 142, 143, 136, 130, 138, 138, 146, 141, 137, 134, 137, 142, 132, 135, 156, 143, 137, 146, 135, 144, 136, 140, 138, 146, 143, 131, 136, 145, 139, 137, 136, 135, 124, 144, 131, 134, 142, 137, 136, 140, 137, 142, 131, 141, 142, 147, 141, 139, 139, 132, 131, 144, 129, 127, 148, 154, 133, 142, 138, 135, 147, 139, 145, 149, 140, 137, 148, 143, 139, 138, 155, 142, 125, 133, 144, 141, 136, 142, 142, 138, 136, 141, 136, 133, 140, 149, 143, 138, 147, 136, 143, 141, 145, 140, 135, 143, 136, 137, 134, 143, 138, 139, 143, 140, 132, 137, 146, 135, 131, 133, 136, 138, 139, 143, 138, 133, 142, 132, 140, 135, 144, 144, 145, 139, 133, 139, 138, 149, 129, 167, 136, 147, 132, 142, 144, 140, 135, 147, 134, 143, 138, 139, 138, 139, 136, 141, 137, 133, 138, 136, 130, 145, 146, 147, 131, 137, 136, 144, 149, 138, 134, 146, 141, 130, 143, 133, 143, 145, 133, 130, 131, 136, 142, 133, 142, 146, 130, 139, 134, 134, 134, 132, 133, 136, 136, 127, 147, 139, 141, 147, 142, 141, 123, 129, 135, 137, 133, 118, 148, 138, 139, 132, 153, 135, 132, 150, 138, 151, 130, 146, 144, 139, 148, 134, 128, 129, 137, 135, 142, 137, 146, 131, 134, 154, 144, 139, 145, 142, 144, 150, 133, 143, 142, 148, 147, 130, 143, 143, 128, 129, 148, 137, 148, 145, 151, 135, 140, 142, 136, 138, 127, 130, 144, 139, 144, 142, 147, 141, 142, 148, 133, 146, 129, 139, 137, 131, 137, 130, 137, 150, 141, 139, 145, 144, 148, 146, 133, 144, 142, 140, 138, 140, 142, 142, 139, 140, 134, 133, 133, 141, 143, 135, 135, 134, 132, 140, 129, 133, 141, 134, 160, 131, 143, 147, 143, 141, 138, 136, 137, 136, 148, 144, 138, 137, 131, 137, 139, 134, 123, 140, 142, 140, 144, 138, 138, 148, 131, 135, 132, 128, 123, 129, 132, 136, 130, 144, 147, 128, 136, 140, 136, 139, 142, 138, 143, 146, 137, 138, 135, 141, 137, 151, 142, 135, 133, 137, 146, 135, 145, 143, 127, 137, 141, 140, 143, 144, 150, 138, 142, 139, 133, 141, 155, 141, 135, 143, 138, 133, 134, 142, 138, 145, 135, 138, 143, 139, 134, 138, 135, 132, 138, 140, 145, 142, 134, 140, 131, 140, 134, 134, 142, 137, 146, 140, 140, 133, 144, 131, 135, 143, 138, 145, 134, 147, 137, 144, 138, 136, 141, 139, 155, 134, 145, 135, 142, 139, 139, 136, 136, 133, 147, 134, 133, 136, 137, 136, 140, 137, 133, 139, 148, 145, 130, 151, 144, 136, 135, 130, 138, 139, 142, 141, 131, 140, 143, 138, 135, 140, 146, 133, 144, 142, 135, 146, 143, 136, 149, 133, 134, 135, 135, 133, 150, 133, 138, 123, 146, 139, 143, 139, 140, 137, 148, 135, 139, 141, 136, 131, 130, 143, 135, 129, 144, 140, 142, 137, 141, 136, 137, 145, 132, 137, 136, 137, 138, 137, 150, 141, 142, 137, 137, 136, 142, 133, 137, 143, 133, 141, 134, 140, 133, 134, 138, 133, 137, 137, 137, 141, 141, 138, 135, 138, 141, 139, 137, 136, 135, 141, 140, 135, 136, 140, 144, 135, 136, 146, 135, 129, 134, 140, 145, 147, 134, 141, 134, 142, 137, 136, 139, 139, 140, 140, 142, 143, 147, 136, 141, 145, 134, 145, 134, 148, 146, 140, 143, 141, 143, 140, 137, 137, 145, 141, 139, 135, 137, 139, 140, 144, 129, 139, 142, 144, 143, 131, 139, 135, 138, 142, 139, 140, 141, 138, 141, 133, 145, 145, 141, 138, 142, 142, 143, 137, 147, 147, 138, 136, 137, 139, 139, 145, 143, 138, 141, 139, 132, 135, 140, 136, 147, 134, 141, 142, 135, 145, 145, 141, 134, 139, 134, 138, 142, 141, 133, 144, 135, 144, 149, 137, 132, 137, 146, 148, 140, 149, 144, 142, 146, 129, 130, 143, 147, 141, 140, 153, 140, 146, 131, 138, 137, 143, 134, 138, 136, 138, 138, 136, 143, 133, 143, 137, 141, 142, 137, 126, 141, 134, 142, 133, 144, 145, 132, 137, 129, 146, 135, 135, 140, 136, 143, 141, 145, 141, 134, 145, 141, 137, 140, 134, 145, 134, 136, 141, 140, 138, 133, 142, 142, 148, 136, 137, 135, 141, 136, 148, 141, 142, 143, 142, 143, 144, 142, 138, 128, 145, 143, 139, 133, 136, 148, 142, 140, 144, 133, 148, 139, 143, 139, 142, 138, 133, 140, 139, 138, 137, 135, 140, 140, 141, 139, 137, 148, 139, 136, 148, 136, 138, 139, 143, 138, 134, 141, 140, 137, 142, 141, 150, 139, 143, 133, 136, 132, 130, 147, 136, 142, 139, 136, 140, 138, 135, 130, 138, 147, 137, 141, 131, 142, 132, 146, 138, 140, 135, 135, 141, 138, 137, 156, 142, 136, 136, 141, 137, 139, 135, 142, 145, 138, 146, 136, 139, 135, 135, 144, 149, 135, 146, 137, 137, 135, 141, 139, 138, 138, 144, 138, 144, 144, 140, 140, 147, 138, 142, 135, 139, 139, 140, 134, 137, 145, 142, 140, 142, 142, 142, 138, 136, 143, 136, 129, 138, 139, 136, 137, 139, 134, 146, 133, 141, 144, 142, 140, 140, 136, 139, 142, 132, 137, 142, 143, 135, 147, 139, 146, 144, 137, 145, 141, 135, 139, 139, 132, 146, 135, 131, 141, 136, 135, 149, 139, 142, 142, 136, 137, 149, 127, 138, 140, 136, 143, 137, 141, 128, 149, 138, 138, 137, 140, 138, 133, 138, 133, 145, 137, 143, 146, 141, 137, 138, 146, 140, 135, 141, 152, 139, 141, 143, 145, 127, 146, 136, 143, 135, 136, 140, 138, 142, 134, 145, 143, 139, 134, 135, 135, 143, 146, 150, 128, 141, 141, 140, 140, 133, 142, 133, 133, 135, 138, 142, 140, 142, 134, 127, 136, 138, 145, 134, 136, 142, 140, 142, 138, 133, 148, 141, 138, 128, 135, 141, 137, 143, 147, 131, 143, 143, 144, 137, 137, 135, 139, 138, 140, 141, 142, 141, 143, 140, 133, 134, 149, 135, 149, 139, 149, 142, 139, 142, 136, 138, 139, 137, 136, 142, 142, 142, 141, 138, 137, 138, 141, 141, 138, 136, 135, 138, 143, 139, 142, 132, 141, 140, 142, 146, 136, 148, 145, 139, 138, 133, 138, 140, 139, 132, 146, 136, 143, 133, 142, 147, 144, 142, 135, 137, 135, 140, 145, 136, 144, 134, 135, 137, 135, 143, 138, 145, 139, 149, 137, 129, 141, 143, 135, 137, 136, 135, 137, 139, 132, 129, 146, 137, 145, 138, 137, 132, 138, 140, 137, 149, 148, 143, 136, 139, 140, 137, 129, 137, 136, 138, 127, 135, 137, 143, 140, 147, 139, 137, 147, 140, 134, 142, 141, 135, 127, 146, 144, 156, 138, 134, 142, 130, 137, 142, 140, 127, 138, 138, 142, 141, 137, 140, 138, 138, 138, 142, 140, 136, 144, 146, 139, 141, 141, 140, 144, 129, 134, 130, 149, 145, 139, 135, 139, 139, 136, 141, 132, 135, 138, 123, 137, 135, 131, 129, 140, 139, 144, 135, 140, 144, 141, 128, 134, 145, 131, 137, 131, 150, 130, 139, 136, 136, 137, 140, 135, 138, 132, 137, 140, 136, 144, 130, 137, 130, 135, 130, 141, 137, 142, 138, 135, 130, 138, 139, 139, 141, 146, 140, 150, 142, 143, 131, 135, 150, 145, 143, 138, 142, 142, 137, 134, 135, 135, 148, 138, 143, 137, 134, 136, 135, 137, 132, 146, 136, 128, 138, 141, 142, 137, 147, 146, 140, 144, 137, 136, 130, 124, 137, 134, 145, 140, 139, 131, 136, 136, 144, 136, 143, 143, 141, 140, 139, 133, 138, 137, 137, 128, 132, 135, 146, 128, 145, 137, 137, 140, 145, 137, 144, 150, 146, 141, 148, 137, 143, 139, 138, 135, 136, 139, 145, 140, 145, 133, 138, 151, 147, 127, 145, 134, 132, 127, 139, 140, 138, 143, 140, 136, 146, 143, 149, 140, 135, 131, 138, 142, 135, 136, 139, 151, 147, 133, 142, 135, 136, 141, 145, 142, 136, 146, 147, 136, 141, 136, 145, 141, 138, 138, 135, 134, 142, 145, 131, 139, 133, 136, 134, 136, 136, 136, 134, 135, 131, 140, 131, 131, 139, 129, 135, 142, 136, 143, 134, 132, 137, 156, 138, 139, 133, 137, 141, 137, 144, 133, 139, 144, 141, 131, 142, 133, 140, 135, 139, 136, 135, 139, 134, 139, 138, 138, 143, 147, 134, 137, 136, 139, 142, 143, 148, 138, 140, 140, 146, 143, 140, 140, 142, 141, 139, 138, 141, 139, 141, 137, 147, 147, 141, 142, 133, 146, 142, 143, 146, 144, 133, 137, 138, 136, 144, 137, 139, 143, 142, 138, 148, 134, 136, 137, 132, 137, 156, 134, 133, 133, 145, 149, 141, 135, 135, 143, 135, 134, 141, 135, 144, 141, 128, 140, 129, 140, 142, 142, 149, 145, 138, 141, 148, 135, 151, 147, 143, 144, 142, 127, 134, 131, 141, 139, 140, 137, 145, 137, 125, 141, 134, 134, 141, 132, 139, 148, 136, 133, 137, 145, 136, 147, 136, 142, 140, 131, 138, 145, 146, 134, 141, 138, 143, 128, 144, 139, 137, 160, 147, 138, 145, 139, 145, 148, 139, 145, 143, 144, 127, 147, 131, 132, 139, 133, 145, 135, 147, 144, 131, 146, 142, 142, 133, 140, 147, 144, 130, 141, 137, 135, 142, 140, 139, 136, 141, 139, 143, 135, 133, 137, 133, 135, 144, 143, 143, 140, 134, 133, 136, 136, 125, 145, 136, 133, 144, 140, 142, 145, 134, 147, 136, 129, 148, 140, 136, 130, 141, 137, 148, 139, 140, 144, 130, 134, 145, 152, 138, 137, 137, 135, 142, 137, 142, 132, 141, 142, 137, 143, 133, 138, 131, 137, 144, 134, 143, 146, 134, 141, 132, 135, 146, 135, 141, 138, 147, 135, 137, 148, 145, 141, 138, 134, 134, 146, 141, 142, 139, 138, 134, 136, 142, 136, 133, 140, 148, 142, 132, 136, 146, 142, 149, 141, 135, 138, 134, 145, 131, 137, 140, 138, 138, 133, 136, 141, 139, 145, 149, 148, 147, 138, 138, 140, 143, 139, 138, 140, 139, 127, 146, 136, 136, 131, 141, 144, 140, 134, 139, 139, 138, 145, 138, 135, 143, 134, 137, 136, 146, 142, 129, 134, 142, 145, 141, 136, 137, 139, 135, 141, 135, 138, 145, 136, 141, 140, 138, 140, 141, 138, 141, 128, 141, 145, 128, 137, 139, 133, 141, 140, 144, 145, 141, 132, 139, 141, 138, 142, 135, 144, 135, 145, 146, 142, 142, 145, 127, 145, 136, 148, 139, 147, 138, 135, 143, 139, 133, 137, 136, 137, 125, 139, 139, 145, 150, 142, 138, 132, 129, 136, 135, 134, 139, 135, 140, 143, 138, 139, 137, 133, 132, 137, 138, 135, 144, 134, 140, 130, 143, 133, 143, 131, 141, 140, 134, 144, 137, 134, 142, 136, 152, 154, 148, 132, 142, 141, 133, 146, 143, 138, 138, 134, 128, 131, 139, 137, 132, 141, 137, 132, 142, 143, 136, 143, 138, 139, 144, 140, 133, 136, 150, 140, 133, 140, 133, 131, 142, 129, 138, 140, 152, 146, 140, 138, 138, 143, 137, 140, 132, 146, 143, 144, 146, 137, 143, 130, 142, 132, 138, 143, 129, 147, 140, 143, 131, 137, 145, 139, 135, 141, 137, 148, 137, 144, 138, 139, 141, 129, 135, 140, 142, 140, 140, 145, 145, 136, 142, 153, 154, 140, 138, 138, 130, 141, 136, 140, 139, 146, 136, 140, 144, 139, 133, 140, 132, 141, 142, 141, 139, 135, 149, 139, 143, 137, 124, 131, 140, 141, 133, 149, 132, 132, 134, 143, 142, 140, 144, 131, 140, 140, 137, 140, 129, 134, 146, 144, 139, 144, 138, 137, 139, 135, 132, 134, 131, 139, 139, 137, 141, 135, 137, 146, 130, 147, 140, 140, 138, 147, 131, 140, 137, 134, 137, 138, 136, 136, 129, 135, 142, 128, 135, 125, 140, 136, 138, 135, 143, 125, 130, 135, 139, 144, 129, 137, 136, 141, 130, 133, 145, 134, 141, 137, 126, 133, 143, 131, 137, 133, 140, 126, 139, 129, 135, 144, 138, 140, 134, 143, 135, 132, 136, 135, 135, 145, 134, 133, 139, 137, 134, 135, 138, 139, 140, 141, 136, 136, 135, 141, 138, 141, 136, 137, 149, 134, 141, 135, 129, 144, 147, 146, 140, 135, 136, 144, 127, 136, 144, 136, 140, 141, 135, 138, 142, 138, 126, 138, 140, 144, 147, 133, 133, 133, 141, 135, 143, 131, 150, 134, 134, 140, 135, 144, 148, 136, 139, 132, 142, 128, 139, 135, 131, 130, 136, 139, 143, 141, 152, 138, 145, 145, 138, 132, 136, 152, 141, 134, 141, 138, 135, 136, 142, 134, 142, 131, 142, 152, 123, 147, 138, 145, 148, 131, 136, 137, 142, 146, 146, 137, 140, 148, 141, 145, 133, 134, 139, 152, 140, 138, 137, 134, 144, 141, 144, 136, 139, 144, 134, 132, 133, 148, 140, 144, 136, 139, 133, 136, 143, 150, 152, 138, 145, 139, 137, 137, 139, 145, 142, 135, 134, 142, 137, 136, 142, 130, 138, 140, 148, 141, 133, 150, 141, 127, 145, 128, 138, 129, 133, 134, 152, 137, 134, 140, 138, 140, 138, 137, 140, 140, 139, 131, 130, 137, 135, 130, 139, 131, 142, 143, 141, 137, 142, 137, 140, 140, 141, 152, 127, 130, 149, 141, 151, 141, 128, 136, 145, 139, 146, 143, 139, 143, 137, 138, 132, 133, 143, 144, 134, 136, 147, 152, 140, 140, 134, 130, 139, 139, 135, 139, 137, 126, 129, 145, 130, 136, 140, 137, 145, 150, 126, 134, 146, 138, 146, 127, 132, 135, 138, 148, 138, 134, 136, 142, 128, 141, 140, 142, 144, 145, 132, 148, 143, 130, 140, 144, 145, 141, 143, 137, 136, 130, 132, 142, 143, 145, 127, 139, 139, 135, 142, 146, 141, 136, 133, 134, 144, 145, 139, 144, 143, 140, 133, 145, 137, 133, 136, 151, 141, 139, 128, 142, 129, 136, 138, 148, 149, 134, 139, 136, 142, 131, 141, 141, 134, 136, 126, 134, 141, 130, 138, 130, 143, 144, 142, 148, 144, 143, 130, 137, 137, 139, 143, 137, 150, 150, 129, 142, 132, 136, 129, 145, 137, 136, 136, 136, 143, 139, 135, 133, 136, 141, 144, 132, 134, 123, 134, 131, 138, 139, 142, 138, 136, 135, 135, 145, 132, 142, 133, 141, 135, 140, 143, 144, 142, 137, 135, 140, 133, 139, 129, 134, 131, 142, 126, 139, 145, 131, 142, 136, 144, 143, 133, 135, 134, 136, 133, 139, 136, 140, 140, 148, 138, 146, 144, 144, 140, 142, 141, 138, 141, 144, 144, 138, 145, 142, 142, 123, 141, 145, 134, 127, 141, 136, 129, 139, 138, 136, 138, 135, 149, 128, 151, 155, 131, 142, 144, 119, 148, 136, 145, 145, 130, 130, 150, 136, 130, 134, 129, 128, 129, 141, 135, 136, 138, 148, 138, 146, 129, 133, 137, 135, 133, 130, 131, 134, 128, 137, 133, 141, 136, 140, 135, 135, 150, 144, 140, 145, 126, 149, 147, 134, 127, 141, 140, 149, 121, 142, 143, 138, 131, 127, 154, 125, 137, 133, 125, 131, 139, 132, 146, 152, 152, 143, 136, 157, 140, 136, 145, 132, 148, 129, 138, 144, 144, 134, 136, 142, 149, 148, 140, 134, 123, 132, 153, 144, 141, 151, 131, 153, 125, 143, 143, 138, 139, 148, 142, 133, 147, 122, 148, 126, 147, 143, 141, 131, 145, 132, 146, 142, 134, 142, 139, 136, 139, 143, 136, 130, 136, 140, 139, 144, 131, 140, 144, 133, 127, 142, 157, 147, 138, 143, 130, 134, 135, 144, 131, 148, 150, 137, 137, 128, 149, 123, 142, 143, 145, 142, 141, 133, 133, 140, 142, 160, 139, 139, 147, 141, 150, 147, 133, 129, 147, 129, 143, 128, 147, 145, 134, 128, 147, 144, 132, 124, 139, 143, 155, 136, 143, 142, 133, 141, 149, 139, 140, 139, 146, 130, 140, 149, 137, 139, 138, 148, 132, 137, 139, 137, 141, 147, 129, 136, 141, 145, 151, 135, 140, 135, 128, 143, 134, 142, 141, 146, 144, 146, 128, 131, 149, 128, 123, 139, 125, 132, 133, 144, 134, 137, 144, 140, 149, 147, 144, 140, 154, 126, 131, 126, 136, 147, 143, 135, 145, 159, 136, 142, 152, 140, 133, 127, 144, 128, 130, 146, 145, 133, 139, 128, 138, 136, 148, 146, 145, 157, 141, 138, 138, 134, 132, 149, 141, 138, 149, 133, 139, 129, 150, 134, 126, 152, 133, 138, 140, 143, 131, 139, 140, 146, 147, 142, 148, 141, 145, 139, 140, 134, 151, 144, 125, 128, 138, 141, 131, 136, 139, 130, 137, 134, 149, 139, 141, 138, 136, 137, 135, 138, 140, 136, 136, 135, 155, 155, 137, 125, 141, 140, 143, 156, 142, 132, 139, 155, 143, 130, 136, 126, 133, 140, 136, 145, 143, 138, 125, 135, 141, 131, 142, 126, 146, 139, 131, 133, 137, 134, 140, 133, 132, 126, 133, 139, 155, 135, 131, 135, 145, 135, 148, 140, 134, 139, 143, 135, 126, 131, 121, 144, 148, 139, 134, 139, 138, 135, 143, 135, 148, 151, 146, 148, 142, 133, 141, 133, 138, 144, 131, 138, 134, 143, 121, 138, 133, 146, 141, 130, 138, 140, 129, 137, 153, 135, 132, 142, 144, 145, 131, 142, 142, 132, 144, 157, 138, 135, 130, 137, 145, 132, 136, 131, 136, 141, 138, 139, 153, 144, 121, 153, 129, 140, 148, 130, 130, 138, 130, 138, 132, 141, 137, 126, 139, 153, 139, 132, 156, 146, 129, 146, 125, 133, 141, 138, 137, 140, 144, 135, 159, 146, 143, 135, 149, 139, 146, 140, 137, 135, 141, 148, 135, 130, 139, 138, 146, 138, 144, 143, 151, 129, 143, 163, 136, 144, 129, 135, 119, 142, 141, 137, 147, 138, 134, 143, 146, 145, 146, 137, 142, 149, 138, 145, 130, 138, 128, 137, 127, 142, 126, 135, 137, 144, 140, 136, 140, 141, 136, 135, 140, 132, 125, 131, 132, 138, 138, 135, 132, 147, 130, 135, 130, 137, 142, 144, 137, 142, 141, 136, 143, 147, 146, 134, 133, 147, 143, 142, 145, 142, 131, 131, 130, 136, 135, 140, 138, 151, 143, 134, 132, 137, 140, 136, 148, 134, 151, 147, 146, 145, 138, 129, 138, 144, 143, 136, 147, 139, 137, 142, 134, 140, 144, 136, 135, 139, 142, 129, 129, 139, 142, 136, 144, 141, 147, 132, 142, 135, 130, 137, 129, 139, 146, 133, 135, 128, 142, 145, 141, 140, 141, 136, 137, 146, 148, 138, 135, 144, 142, 134, 142, 138, 149, 133, 138, 140, 138, 150, 138, 140, 142, 131, 140, 136, 139, 133, 116, 140, 139, 140, 141, 137, 138, 141, 138, 147, 161, 143, 134, 124, 141, 132, 152, 141, 135, 147, 148, 133, 147, 132, 137, 139, 143, 132, 144, 135, 140, 147, 134, 145, 144, 139, 133, 139, 137, 143, 141, 142, 140, 135, 142, 153, 133, 142, 138, 137, 133, 140, 130, 150, 153, 132, 126, 139, 132, 135, 136, 144, 142, 143, 133, 136, 140, 141, 130, 135, 135, 130, 150, 135, 143, 129, 124, 127, 152, 130, 139, 142, 148, 137, 138, 137, 127, 142, 136, 143, 141, 140, 146, 144, 140, 150, 140, 139, 137, 138, 136, 132, 134, 134, 137, 136, 140, 137, 137, 131, 138, 138, 142, 132, 141, 135, 141, 139, 138, 139, 133, 141, 142, 136, 135, 140, 134, 135, 137, 140, 139, 142, 145, 138, 135, 138, 140, 135, 139, 145, 139, 138, 127, 134, 136, 137, 146, 143, 137, 136, 141, 140, 138, 145, 149, 131, 132, 136, 137, 148, 139, 132, 138, 138, 140, 143, 148, 142, 148, 131, 139, 147, 137, 147, 146, 150, 135, 131, 141, 133, 144, 136, 141, 129, 128, 132, 145, 138, 136, 142, 134, 142, 145, 138, 137, 149, 140, 135, 137, 142, 135, 143, 136, 150, 138, 126, 128, 138, 145, 147, 133, 129, 145, 143, 147, 145, 131, 144, 133, 144, 141, 140, 128, 147, 136, 130, 140, 135, 150, 128, 139, 149, 154, 130, 129, 143, 139, 148, 132, 136, 152, 137, 134, 144, 137, 133, 137, 136, 140, 138, 142, 144, 147, 131, 146, 143, 136, 137, 148, 134, 140, 131, 140, 145, 138, 133, 133, 141, 141, 128, 131, 136, 154, 134, 144, 144, 148, 140, 133, 136, 136, 142, 141, 148, 132, 135, 140, 136, 133, 142, 142, 136, 139, 138, 137, 142, 140, 137, 136, 139, 130, 139, 135, 148, 141, 143, 128, 150, 140, 145, 134, 143, 138, 137, 138, 136, 136, 133, 150, 133, 139, 143, 139, 143, 138, 149, 134, 140, 147, 134, 148, 132, 146, 142, 134, 133, 142, 146, 139, 137, 144, 143, 139, 134, 133, 141, 136, 137, 137, 134, 139, 133, 147, 139, 145, 138, 144, 142, 145, 144, 141, 135, 150, 131, 132, 136, 140, 142, 135, 143, 139, 145, 133, 138, 149, 137, 140, 132, 148, 140, 135, 139, 133, 144, 153, 138, 132, 139, 138, 132, 139, 134, 143, 140, 151, 135, 140, 137, 135, 139, 136, 156, 135, 132, 129, 132, 145, 137, 136, 135, 142, 131, 126, 137, 139, 135, 154, 136, 142, 145, 134, 133, 133, 139, 146, 138, 140, 140, 137, 142, 122, 137, 136, 150, 148, 132, 152, 128, 150, 149, 137, 136, 139, 141, 131, 138, 139, 137, 139, 130, 143, 142, 152, 149, 143, 141, 135, 129, 129, 141, 142, 135, 136, 141, 149, 133, 139, 144, 143, 123, 134, 133, 145, 134, 132, 130, 138, 134, 122, 135, 147, 146, 137, 138, 148, 135, 138, 135, 138, 134, 142, 140, 124, 136, 164, 134, 144, 146, 129, 137, 141, 134, 147, 144, 142, 138, 135, 145, 144, 130, 131, 143, 148, 138, 140, 145, 132, 119, 142, 137, 135, 143, 120, 139, 138, 133, 140, 128, 139, 138, 138, 131, 141, 136, 129, 134, 138, 152, 142, 144, 146, 134, 144, 150, 147, 143, 135, 137, 143, 135, 132, 132, 135, 149, 141, 148, 130, 132, 146, 140, 133, 134, 137, 134, 138, 132, 144, 145, 130, 141, 137, 134, 141, 155, 144, 152, 141, 146, 138, 132, 142, 142, 136, 146, 150, 156, 142, 136, 153, 150, 129, 135, 138, 132, 135, 136, 128, 143, 139, 141, 158, 147, 137, 138, 144, 128, 141, 146, 139, 133, 138, 133, 136, 132, 138, 141, 145, 138, 135, 154, 145, 124, 144, 140, 132, 135, 150, 137, 134, 131, 139, 140, 139, 136, 139, 145, 140, 141, 139, 138, 142, 135, 154, 145, 141, 137, 140, 131, 146, 142, 142, 136, 126, 145, 139, 141, 136, 146, 147, 132, 149, 132, 139, 135, 129, 124, 140, 137, 161, 145, 143, 129, 133, 142, 138, 139, 140, 131, 137, 139, 139, 124, 144, 129, 147, 141, 145, 139, 141, 142, 134, 124, 144, 138, 134, 136, 134, 133, 137, 137, 134, 143, 137, 139, 132, 148, 139, 139, 142, 133, 124, 137, 140, 126, 139, 135, 125, 148, 135, 130, 139, 139, 132, 140, 146, 145, 136, 131, 134, 145, 150, 141, 140, 129, 144, 139, 141, 144, 138, 139, 138, 134, 138, 146, 136, 142, 143, 146, 137, 144, 138, 139, 138, 154, 143, 142, 139, 149, 139, 141, 138, 144, 142, 132, 133, 142, 135, 144, 138, 133, 145, 149, 134, 134, 135, 125, 146, 145, 135, 126, 127, 140, 151, 133, 159, 145, 138, 139, 146, 146, 146, 148, 137, 135, 145, 124, 140, 175, 137, 133, 136, 129, 145, 141, 138, 135, 142, 140, 139, 149, 135, 137, 142, 146, 131, 136, 158, 143, 128, 137, 142, 141, 136, 139, 130, 144, 130, 141, 131, 140, 130, 149, 138, 137, 131, 147, 141, 132, 132, 139, 150, 134, 129, 137, 141, 139, 138, 136, 137, 140, 143, 138, 144, 144, 147, 136, 140, 140, 136, 146, 133, 140, 133, 138, 140, 141, 144, 132, 138, 153, 133, 143, 136, 131, 134, 144, 141, 145, 137, 125, 126, 134, 137, 132, 146, 142, 137, 139, 140, 147, 141, 148, 144, 144, 138, 145, 143, 148, 133, 140, 135, 133, 133, 136, 138, 150, 143, 133, 143, 147, 135, 139, 139, 135, 143, 139, 136, 136, 154, 145, 143, 132, 142, 139, 137, 130, 138, 126, 136, 141, 141, 140, 148, 138, 128, 140, 141, 136, 144, 140, 143, 148, 129, 129, 140, 139, 136, 130, 145, 141, 130, 137, 132, 132, 128, 132, 131, 146, 138, 135, 131, 133, 143, 143, 142, 134, 150, 144, 137, 135, 132, 140, 134, 152, 134, 140, 129, 141, 142, 134, 139, 134, 146, 132, 139, 140, 147, 141, 134, 135, 133, 161, 147, 140, 152, 140, 145, 144, 137, 146, 138, 140, 136, 151, 132, 141, 152, 138, 140, 143, 138, 125, 145, 147, 123, 135, 128, 141, 136, 136, 140, 139, 143, 142, 148, 140, 146, 145, 131, 138, 142, 137, 139, 142, 132, 140, 143, 130, 147, 141, 138, 145, 143, 145, 141, 144, 148, 144, 146, 134, 146, 143, 131, 139, 142, 145, 149, 138, 152, 147, 137, 147, 144, 127, 133, 141, 142, 133, 139, 137, 145, 133, 144, 143, 146, 136, 150, 132, 140, 143, 136, 128, 137, 139, 154, 140, 141, 132, 134, 136, 141, 151, 145, 143, 133, 143, 145, 151, 133, 140, 146, 152, 137, 136, 138, 127, 138, 132, 146, 128, 141, 131, 134, 135, 137, 138, 142, 134, 152, 145, 135, 142, 138, 126, 135, 138, 146, 146, 121, 141, 146, 131, 131, 143, 142, 138, 148, 137, 137, 147, 139, 134, 145, 135, 140, 120, 140, 148, 135, 130, 146, 139, 141, 141, 146, 136, 141, 138, 143, 136, 145, 146, 145, 132, 144, 126, 137, 142, 139, 141, 136, 128, 133, 131, 145, 141, 139, 133, 145, 135, 132, 140, 124, 126, 135, 151, 141, 139, 137, 123, 135, 148, 136, 145, 128, 135, 140, 143, 148, 139, 141, 133, 137, 139, 148, 132, 138, 153, 135, 139, 135, 130, 142, 130, 132, 125, 140, 137, 138, 127, 136, 140, 135, 126, 151, 138, 136, 147, 141, 133, 139, 142, 128, 137, 148, 143, 141, 145, 147, 133, 130, 123, 144, 130, 149, 128, 139, 135, 141, 139, 142, 129, 130, 146, 141, 131, 138, 139, 136, 140, 132, 141, 148, 132, 143, 143, 136, 136, 123, 137, 121, 144, 142, 152, 144, 140, 144, 139, 142, 140, 139, 158, 137, 139, 162, 141, 143, 131, 146, 136, 139, 128, 142, 140, 138, 131, 139, 141, 151, 135, 138, 134, 131, 142, 135, 133, 127, 145, 136, 141, 145, 138, 142, 133, 134, 147, 136, 133, 122, 135, 137, 138, 150, 145, 140, 128, 131, 134, 140, 148, 139, 134, 149, 144, 142, 137, 135, 147, 135, 134, 142, 139, 132, 130, 132, 131, 133, 134, 142, 130, 133, 134, 132, 134, 134, 127, 148, 140, 139, 133, 137, 139, 135, 135, 137, 154, 136, 137, 143, 135, 133, 138, 137, 145, 136, 145, 144, 138, 141, 146, 138, 141, 143, 136, 137, 130, 149, 146, 139, 138, 135, 128, 145, 129, 141, 132, 146, 145, 147, 164, 133, 131, 134, 147, 137, 130, 138, 146, 140, 141, 149, 140, 136, 141, 126, 139, 146, 139, 140, 149, 144, 140, 149, 132, 142, 133, 139, 141, 146, 150, 144, 152, 131, 145, 138, 152, 137, 146, 127, 141, 143, 138, 141, 141, 134, 136, 141, 142, 124, 149, 140, 134, 142, 136, 130, 137, 141, 143, 146, 151, 138, 145, 130, 135, 141, 152, 138, 135, 145, 138, 150, 152, 135, 130, 146, 134, 140, 133, 142, 153, 137, 140, 145, 145, 143, 142, 135, 140, 137, 152, 132, 127, 150, 131, 140, 138, 128, 144, 137, 140, 143, 135, 143, 138, 136, 130, 135, 144, 134, 134, 141, 131, 145, 132, 135, 140, 139, 149, 132, 135, 135, 148, 139, 157, 141, 140, 133, 142, 145, 131, 139, 142, 138, 139, 136, 142, 134, 135, 140, 131, 146, 145, 135, 151, 139, 131, 148, 134, 135, 146, 137, 129, 149, 142, 145, 137, 134, 137, 146, 140, 138, 134, 124, 148, 136, 140, 142, 142, 137, 137, 136, 140, 137, 138, 131, 142, 133, 133, 137, 141, 128, 147, 136, 135, 141, 135, 138, 153, 139, 146, 139, 138, 132, 144, 130, 142, 132, 139, 147, 142, 144, 141, 128, 144, 130, 136, 131, 139, 142, 150, 145, 136, 144, 142, 136, 140, 136, 142, 133, 145, 139, 149, 132, 138, 133, 132, 143, 137, 137, 139, 132, 142, 136, 139, 133, 137, 140, 133, 143, 135, 138, 134, 139, 147, 138, 125, 135, 141, 130, 134, 144, 143, 146, 148, 140, 137, 138, 139, 140, 152, 133, 139, 139, 131, 142, 140, 132, 141, 146, 128, 127, 140, 144, 140, 140, 141, 149, 137, 136, 141, 141, 130, 144, 137, 143, 137, 137, 143, 138, 148, 141, 141, 120, 138, 142, 182, 139, 139, 148, 138, 134, 129, 134, 143, 130, 140, 133, 137, 139, 147, 140, 137, 132, 141, 147, 132, 145, 138, 135, 144, 144, 137, 143, 138, 143, 137, 143, 145, 147, 141, 144, 137, 137, 143, 151, 133, 139, 143, 142, 151, 133, 138, 143, 134, 144, 143, 141, 133, 140, 128, 130, 145, 140, 136, 148, 156, 148, 129, 131, 135, 135, 130, 136, 126, 145, 139, 139, 146, 140, 137, 135, 153, 125, 140, 136, 136, 141, 132, 135, 141, 138, 133, 140, 151, 134, 123, 136, 146, 133, 143, 131, 136, 138, 144, 132, 147, 131, 130, 140, 124, 137, 137, 144, 141, 140, 135, 141, 136, 132, 148, 140, 126, 134, 146, 139, 139, 139, 141, 145, 147, 137, 135, 143, 131, 140, 138, 138, 153, 135, 134, 144, 141, 136, 131, 139, 138, 146, 132, 137, 138, 156, 139, 139, 150, 140, 144, 130, 127, 137, 138, 147, 136, 140, 143, 136, 132, 152, 144, 139, 141, 138, 144, 136, 128, 140, 132, 130, 139, 138, 142, 132, 131, 136, 134, 142, 137, 131, 134, 137, 136, 141, 136, 132, 135, 139, 128, 153, 151, 139, 138, 139, 144, 132, 142, 138, 151, 142, 131, 148, 138, 130, 136, 142, 146, 136, 132, 141, 146, 137, 138, 143, 154, 134, 137, 141, 140, 146, 143, 126, 137, 133, 145, 125, 136, 128, 126, 139, 143, 145, 141, 143, 141, 140, 149, 134, 143, 136, 131, 144, 144, 143, 137, 138, 130, 143, 134, 146, 136, 140, 142, 149, 136, 138, 133, 133, 139, 136, 142, 134, 141, 149, 139, 135, 142, 146, 143, 136, 138, 139, 144, 150, 128, 143, 143, 134, 135, 128, 144, 141, 133, 137, 135, 136, 142, 131, 141, 143, 144, 133, 143, 147, 143, 136, 136, 145, 146, 144, 139, 147, 142, 145, 146, 125, 142, 150, 136, 136, 131, 138, 130, 145, 144, 135, 122, 150, 128, 148, 135, 134, 139, 141, 143, 131, 143, 139, 132, 134, 149, 134, 142, 141, 146, 145, 136, 140, 139, 150, 137, 139, 130, 142, 142, 140, 139, 139, 137, 141, 130, 149, 145, 139, 140, 133, 142, 137, 134, 125, 142, 145, 138, 145, 143, 133, 134, 142, 132, 142, 132, 146, 139, 133, 136, 139, 133, 129, 141, 145, 149, 140, 135, 138, 148, 142, 142, 140, 135, 140, 128, 143, 138, 135, 139, 143, 137, 143, 132, 145, 140, 143, 132, 151, 141, 146, 145, 135, 127, 146, 154, 142, 149, 122, 137, 140, 147, 135, 138, 143, 140, 137, 133, 135, 134, 141, 136, 140, 142, 127, 149, 144, 136, 134, 142, 140, 133, 129, 148, 133, 141, 135, 141, 140, 143, 138, 131, 145, 144, 141, 149, 137, 136, 144, 138, 128, 139, 151, 145, 135, 138, 131, 134, 149, 139, 136, 148, 133, 132, 139, 144, 139, 136, 149, 144, 137, 126, 132, 136, 140, 142, 137, 136, 137, 131, 162, 150, 145, 133, 141, 148, 148, 145, 133, 136, 131, 146, 142, 152, 143, 139, 152, 133, 134, 141, 131, 141, 135, 138, 141, 125, 145, 142, 135, 138, 142, 144, 138, 140, 143, 161, 139, 145, 154, 128, 132, 142, 135, 142, 128, 133, 136, 147, 136, 139, 139, 132, 134, 141, 143, 137, 140, 141, 144, 136, 141, 132, 134, 138, 144, 139, 141, 146, 138, 142, 140, 133, 136, 135, 131, 138, 141, 144, 138, 139, 142, 140, 138, 134, 129, 144, 131, 147, 143, 142, 141, 137, 148, 133, 148, 142, 159, 135, 148, 143, 137, 134, 147, 143, 143, 140, 127, 139, 155, 139, 141, 133, 132, 139, 145, 143, 140, 143, 132, 154, 136, 140, 139, 145, 140, 133, 134, 134, 138, 135, 142, 134, 133, 140, 146, 136, 151, 134, 148, 129, 134, 134, 143, 138, 142, 132, 140, 145, 138, 137, 142, 131, 152, 141, 137, 144, 136, 147, 144, 140, 137, 143, 139, 138, 144, 141, 140, 145, 143, 137, 137, 136, 139, 134, 140, 139, 138, 140, 139, 143, 140, 129, 141, 130, 135, 135, 137, 138, 135, 136, 141, 137, 136, 140, 134, 143, 143, 141, 138, 131, 125, 132, 135, 138, 136, 144, 142, 140, 136, 143, 138, 134, 141, 153, 138, 140, 139, 153, 135, 142, 145, 131, 152, 131, 130, 146, 131, 135, 136, 141, 137, 141, 141, 137, 133, 136, 142, 144, 133, 140, 138, 130, 144, 133, 139, 140, 136, 136, 137, 134, 136, 137, 130, 143, 138, 133, 139, 132, 133, 137, 144, 139, 138, 139, 145, 142, 140, 144, 131, 128, 141, 153, 143, 133, 139, 133, 139, 138, 143, 139, 135, 134, 128, 136, 149, 140, 154, 143, 134, 145, 149, 138, 147, 141, 136, 138, 151, 142, 146, 132, 130, 144, 143, 145, 149, 158, 136, 135, 139, 142, 127, 138, 134, 140, 127, 133, 140, 136, 139, 136, 139, 137, 136, 137, 141, 137, 145, 140, 145, 143, 139, 132, 135, 145, 146, 128, 136, 141, 138, 141, 126, 146, 132, 145, 143, 140, 133, 133, 127, 140, 137, 136, 135, 141, 144, 148, 140, 140, 151, 132, 157, 132, 133, 140, 131, 125, 145, 138, 141, 145, 133, 137, 140, 139, 138, 146, 137, 136, 140, 131, 138, 144, 133, 132, 145, 128, 139, 137, 135, 129, 138, 132, 142, 141, 131, 139, 138, 148, 134, 147, 140, 133, 143, 138, 130, 135, 144, 148, 138, 133, 131, 140, 137, 143, 141, 134, 135, 135, 131, 130, 139, 139, 138, 144, 144, 134, 138, 131, 144, 136, 142, 136, 142, 149, 135, 141, 144, 135, 149, 140, 135, 140, 140, 140, 141, 130, 152, 140, 145, 140, 138, 144, 131, 144, 141, 131, 143, 132, 136, 135, 132, 137, 135, 134, 145, 144, 136, 139, 137, 139, 127, 129, 135, 142, 142, 140, 141, 134, 125, 145, 135, 151, 135, 136, 137, 130, 141, 136, 135, 133, 138, 129, 142, 138, 132, 125, 128, 132, 136, 136, 137, 140, 133, 139, 129, 151, 142, 131, 147, 140, 139, 140, 148, 134, 157, 139, 140, 145, 128, 139, 140, 136, 142, 136, 138, 136, 133, 132, 125, 137, 132, 136, 133, 136, 139, 131, 137, 144, 132, 139, 135, 141, 146, 137, 144, 134, 136, 137, 139, 137, 147, 134, 144, 144, 142, 139, 143, 128, 146, 145, 142, 140, 139, 139, 143, 145, 139, 145, 147, 136, 134, 139, 137, 135, 129, 145, 139, 149, 135, 135, 140, 144, 135, 134, 132, 139, 140, 148, 143, 156, 132, 147, 134, 136, 145, 140, 143, 142, 148, 142, 144, 139, 139, 128, 145, 126, 138, 141, 135, 127, 134, 142, 147, 136, 132, 176, 141, 135, 140, 150, 141, 138, 150, 143, 141, 141, 134, 146, 147, 146, 130, 143, 141, 143, 142, 137, 134, 145, 144, 135, 137, 142, 133, 137, 139, 150, 135, 135, 130, 146, 143, 136, 142, 137, 143, 138, 135, 155, 133, 139, 138, 140, 149, 141, 140, 136, 158, 136, 133, 137, 126, 140, 133, 145, 149, 142, 144, 132, 142, 150, 134, 141, 137, 140, 141, 136, 141, 133, 139, 147, 137, 147, 150, 136, 136, 141, 143, 145, 138, 135, 132, 137, 142, 136, 137, 137, 132, 135, 132, 145, 138, 133, 138, 136, 139, 142, 142, 137, 131, 138, 131, 138, 132, 139, 136, 148, 143, 135, 133, 138, 140, 132, 130, 121, 146, 148, 134, 137, 140, 142, 139, 137, 143, 127, 147, 137, 137, 135, 143, 145, 130, 139, 132, 145, 144, 141, 139, 146, 137, 139, 138, 145, 141, 135, 132, 143, 136, 143, 136, 148, 141, 131, 143, 138, 139, 139, 134, 133, 140, 126, 125, 141, 141, 137, 136, 132, 143, 138, 139, 137, 135, 141, 134, 147, 137, 130, 146, 142, 136, 135, 135, 140, 138, 139, 140, 135, 128, 138, 144, 144, 137, 133, 135, 141, 134, 144, 134, 145, 142, 137, 129, 148, 136, 136, 140, 133, 135, 136, 129, 135, 139, 141, 142, 137, 124, 155, 135, 141, 131, 138, 149, 146, 137, 141, 140, 133, 138, 136, 138, 149, 134, 149, 125, 135, 142, 138, 133, 137, 142, 134, 138, 135, 142, 135, 131, 140, 137, 145, 137, 144, 136, 135, 143, 136, 146, 137, 142, 139, 138, 136, 137, 133, 152, 129, 140, 144, 129, 140, 146, 130, 124, 143, 150, 132, 133, 137, 143, 139, 142, 139, 136, 138, 137, 135, 129, 133, 141, 130, 145, 137, 129, 145, 138, 142, 139, 133, 130, 135, 137, 133, 143, 136, 140, 139, 140, 134, 146, 142, 131, 140, 144, 152, 132, 149, 139, 141, 143, 140, 136, 134, 133, 158, 139, 146, 142, 152, 140, 150, 132, 141, 150, 142, 140, 135, 143, 139, 142, 138, 139, 136, 146, 142, 135, 146, 139, 145, 136, 142, 142, 138, 135, 142, 130, 140, 134, 143, 134, 126, 137, 146, 140, 145, 140, 136, 131, 141, 146, 141, 141, 138, 145, 142, 135, 136, 141, 136, 137, 149, 132, 126, 134, 140, 143, 139, 135, 132, 132, 141, 146, 136, 134, 136, 144, 144, 143, 148, 132, 119, 144, 127, 135, 140, 145, 131, 143, 130, 138, 139, 144, 134, 139, 130, 147, 151, 140, 139, 140, 140, 139, 142, 144, 145, 138, 143, 146, 141, 137, 142, 136, 133, 136, 129, 144, 137, 142, 135, 141, 141, 140, 134, 145, 141, 131, 134, 145, 140, 146, 142, 156, 123, 134, 140, 138, 144, 126, 147, 135, 141, 137, 137, 142, 141, 138, 145, 145, 153, 139, 146, 124, 143, 137, 143, 151, 140, 140, 146, 129, 141, 139, 146, 134, 140, 142, 138, 141, 137, 144, 141, 148, 141, 140, 153, 131, 148, 141, 131, 141, 134, 134, 144, 134, 134, 131, 149, 142, 133, 137, 139, 135, 139, 145, 134, 129, 136, 149, 146, 145, 143, 137, 134, 147, 138, 135, 136, 140, 139, 130, 141, 131, 149, 135, 142, 142, 131, 138, 128, 139, 144, 149, 152, 141, 137, 140, 135, 139, 134, 140, 126, 140, 147, 134, 129, 136, 146, 132, 132, 133, 134, 137, 140, 140, 139, 135, 139, 138, 141, 141, 130, 140, 134, 133, 133, 138, 145, 136, 141, 140, 139, 141, 139, 139, 138, 143, 147, 136, 130, 133, 143, 147, 136, 132, 139, 143, 146, 133, 138, 140, 144, 144, 135, 135, 141, 140, 140, 142, 136, 143, 135, 134, 130, 142, 145, 141, 145, 136, 140, 143, 134, 145, 152, 138, 138, 140, 144, 143, 135, 143, 140, 131, 130, 149, 150, 147, 147, 141, 144, 141, 142, 142, 141, 133, 131, 132, 132, 145, 133, 148, 136, 141, 138, 137, 136, 137, 141, 139, 150, 129, 128, 152, 143, 140, 135, 135, 139, 142, 141, 146, 135, 133, 143, 154, 133, 133, 142, 132, 131, 139, 129, 135, 136, 136, 141, 138, 147, 129, 137, 130, 130, 131, 144, 139, 136, 137, 132, 134, 146, 134, 136, 136, 138, 140, 132, 134, 137, 141, 134, 140, 143, 120, 143, 134, 135, 131, 141, 144, 151, 140, 143, 147, 130, 135, 144, 129, 127, 140, 142, 133, 140, 147, 138, 137, 145, 146, 137, 145, 131, 141, 143, 134, 140, 138, 145, 137, 135, 139, 134, 153, 138, 136, 139, 130, 138, 140, 138, 136, 138, 125, 137, 141, 135, 147, 143, 154, 142, 133, 140, 130, 144, 142, 149, 143, 143, 137, 140, 132, 136, 136, 132, 132, 136, 132, 146, 131, 147, 136, 130, 131, 145, 145, 138, 155, 140, 124, 140, 136, 146, 136, 135, 143, 134, 151, 140, 134, 134, 146, 144, 129, 135, 133, 139, 134, 138, 141, 145, 143, 134, 152, 134, 146, 139, 139, 143, 143, 141, 138, 140, 141, 148, 148, 139, 135, 144, 133, 135, 140, 134, 140, 135, 148, 152, 133, 135, 137, 137, 131, 143, 144, 143, 153, 135, 140, 141, 134, 139, 134, 137, 140, 127, 138, 148, 144, 140, 147, 139, 145, 132, 134, 142, 133, 140, 136, 135, 142, 145, 147, 132, 142, 144, 139, 141, 131, 132, 136, 143, 141, 142, 137, 128, 138, 140, 143, 143, 150, 134, 139, 140, 140, 122, 140, 143, 143, 143, 136, 135, 139, 149, 139, 126, 138, 146, 139, 140, 134, 137, 132, 139, 133, 151, 143, 131, 141, 141, 134, 162, 144, 136, 149, 135, 138, 132, 133, 141, 134, 142, 143, 139, 128, 141, 130, 145, 137, 136, 143, 138, 141, 142, 146, 150, 127, 145, 139, 132, 147, 134, 131, 133, 142, 132, 137, 136, 135, 138, 156, 139, 141, 141, 134, 140, 143, 143, 141, 151, 139, 133, 138, 130, 144, 139, 144, 141, 136, 139, 133, 140, 134, 135, 142, 136, 141, 133, 140, 148, 142, 133, 134, 140, 152, 133, 134, 144, 135, 134, 136, 136, 138, 143, 146, 135, 141, 137, 133, 141, 142, 144, 147, 148, 137, 140, 144, 126, 134, 138, 137, 137, 145, 135, 134, 139, 136, 140, 139, 133, 146, 139, 141, 138, 127, 137, 139, 130, 137, 139, 142, 141, 136, 142, 141, 143, 145, 135, 123, 142, 131, 141, 139, 138, 144, 136, 131, 137, 126, 139, 139, 142, 135, 140, 140, 133, 141, 145, 128, 140, 137, 147, 136, 144, 139, 141, 142, 140, 143, 138, 142, 139, 142, 142, 142, 150, 136, 126, 153, 138, 144, 134, 138, 143, 135, 131, 133, 140, 131, 131, 129, 142, 138, 146, 144, 135, 148, 136, 142, 134, 141, 133, 147, 147, 141, 148, 131, 139, 141, 127, 139, 143, 144, 141, 141, 130, 147, 144, 139, 137, 134, 138, 133, 138, 136, 135, 135, 140, 133, 139, 132, 134, 140, 138, 142, 143, 146, 129, 140, 135, 141, 141, 149, 128, 148, 137, 139, 146, 130, 141, 151, 135, 139, 152, 136, 143, 129, 141, 148, 136, 138, 134, 124, 146, 135, 143, 144, 134, 134, 142, 139, 136, 140, 138, 138, 142, 137, 138, 139, 135, 137, 135, 140, 132, 135, 135, 126, 133, 135, 134, 140, 136, 141, 133, 143, 142, 135, 139, 139, 141, 149, 142, 136, 142, 137, 133, 151, 132, 138, 143, 145, 126, 133, 152, 140, 135, 145, 135, 139, 136, 134, 142, 146, 124, 143, 138, 127, 136, 144, 133, 145, 140, 134, 145, 138, 137, 143, 141, 143, 139, 135, 147, 133, 132, 137, 145, 138, 147, 144, 143, 165, 143, 137, 127, 132, 142, 137, 139, 138, 144, 141, 140, 133, 140, 140, 144, 138, 131, 142, 137, 131, 128, 140, 147, 139, 141, 135, 145, 137, 133, 133, 149, 136, 129, 152, 146, 139, 143, 143, 139, 140, 146, 147, 146, 136, 144, 154, 143, 139, 142, 142, 139, 147, 148, 136, 130, 137, 132, 141, 143, 139, 138, 136, 143, 137, 141, 138, 141, 132, 128, 135, 129, 140, 137, 142, 148, 145, 142, 151, 150, 144, 143, 142, 129, 144, 131, 146, 142, 137, 135, 141, 145, 135, 130, 141, 139, 138, 135, 142, 138, 139, 138, 146, 130, 141, 136, 141, 146, 137, 136, 143, 141, 128, 145, 144, 143, 149, 141, 143, 139, 128, 142, 138, 135, 138, 136, 146, 130, 145, 143, 142, 141, 137, 145, 132, 138, 141, 147, 131, 125, 136, 147, 140, 136, 142, 129, 144, 148, 139, 141, 149, 142, 134, 131, 146, 136, 138, 133, 140, 136, 136, 134, 130, 136, 138, 136, 142, 137, 138, 130, 143, 149, 129, 133, 139, 140, 146, 132, 137, 137, 131, 145, 145, 138, 141, 141, 145, 144, 128, 140, 145, 138, 137, 138, 130, 141, 130, 144, 138, 149, 146, 132, 144, 139, 150, 138, 137, 142, 142, 141, 143, 148, 136, 133, 138, 140, 145, 141, 138, 140, 141, 140, 140, 129, 128, 138, 142, 141, 140, 146, 154, 140, 139, 136, 146, 130, 139, 135, 150, 127, 145, 142, 138, 133, 136, 136, 142, 134, 133, 140, 144, 138, 135, 140, 145, 144, 140, 132, 144, 140, 132, 140, 139, 137, 139, 131, 135, 142, 134, 130, 131, 133, 132, 126, 134, 153, 129, 141, 138, 135, 135, 144, 141, 137, 133, 133, 141, 134, 130, 147, 131, 141, 143, 148, 141, 148, 150, 145, 135, 141, 139, 138, 126, 149, 140, 135, 133, 151, 141, 138, 139, 140, 142, 133, 127, 140, 143, 135, 135, 124, 149, 131, 147, 133, 133, 155, 133, 112, 144, 142, 140, 139, 132, 140, 140, 137, 149, 138, 149, 144, 157, 138, 137, 128, 136, 133, 141, 155, 140, 140, 139, 134, 134, 136, 150, 142, 137, 150, 142, 136, 145, 141, 136, 137, 151, 142, 139, 140, 138, 130, 137, 138, 130, 146, 138, 136, 145, 136, 145, 155, 134, 138, 132, 134, 154, 143, 130, 133, 144, 139, 145, 154, 132, 136, 122, 135, 152, 145, 133, 149, 145, 138, 144, 136, 144, 143, 139, 144, 135, 139, 136, 139, 137, 137, 139, 143, 134, 150, 135, 132, 141, 142, 134, 139, 135, 137, 133, 134, 143, 151, 117, 143, 136, 135, 140, 132, 150, 136, 137, 148, 132, 146, 142, 138, 141, 128, 152, 149, 119, 136, 144, 139, 121, 133, 136, 138, 135, 136, 141, 131, 137, 136, 133, 141, 141, 145, 143, 135, 132, 138, 128, 137, 129, 141, 135, 137, 136, 139, 138, 139, 143, 142, 140, 136, 148, 143, 134, 139, 142, 138, 131, 146, 141, 137, 136, 139, 147, 148, 143, 137, 144, 138, 138, 132, 141, 136, 128, 130, 128, 128, 138, 146, 154, 143, 130, 136, 140, 140, 140, 139, 133, 128, 141, 146, 146, 153, 143, 142, 132, 139, 135, 140, 135, 136, 139, 140, 140, 149, 138, 141, 133, 144, 155, 131, 125, 144, 145, 133, 143, 138, 144, 138, 136, 141, 129, 140, 137, 131, 136, 147, 143, 129, 148, 134, 135, 127, 144, 149, 137, 141, 139, 150, 134, 140, 147, 144, 141, 139, 138, 154, 139, 127, 137, 137, 143, 144, 124, 139, 137, 132, 143, 142, 136, 138, 134, 149, 142, 136, 131, 136, 128, 143, 138, 137, 142, 140, 145, 146, 146, 140, 135, 139, 140, 143, 137, 137, 155, 138, 132, 133, 154, 135, 125, 134, 134, 129, 140, 143, 141, 145, 140, 130, 141, 154, 129, 141, 145, 126, 149, 135, 129, 133, 156, 143, 142, 152, 137, 126, 133, 136, 130, 140, 145, 134, 155, 139, 139, 140, 139, 146, 141, 135, 138, 133, 140, 138, 136, 142, 144, 135, 143, 135, 138, 138, 148, 133, 136, 134, 127, 146, 148, 134, 138, 128, 149, 144, 135, 141, 135, 139, 142, 136, 129, 138, 134, 146, 139, 132, 165, 137, 150, 136, 150, 131, 143, 135, 141, 143, 141, 138, 140, 138, 143, 137, 138, 149, 146, 149, 141, 136, 130, 146, 130, 136, 139, 142, 136, 126, 149, 133, 152, 135, 143, 139, 133, 137, 135, 129, 145, 128, 148, 136, 144, 147, 134, 139, 147, 152, 132, 130, 140, 118, 152, 140, 132, 136, 142, 129, 132, 141, 132, 140, 144, 142, 137, 148, 141, 123, 138, 134, 146, 129, 127, 142, 143, 139, 138, 138, 143, 131, 129, 145, 143, 132, 150, 147, 138, 146, 145, 138, 119, 138, 137, 136, 132, 136, 139, 146, 141, 133, 144, 142, 139, 139, 149, 132, 138, 128, 149, 131, 137, 139, 143, 139, 150, 138, 136, 149, 139, 133, 144, 152, 133, 149, 135, 150, 153, 145, 131, 145, 151, 143, 140, 131, 142, 139, 140, 134, 144, 150, 139, 128, 156, 138, 130, 135, 139, 131, 128, 143, 131, 142, 141, 140, 127, 142, 141, 135, 136, 128, 138, 145, 126, 143, 133, 140, 135, 142, 133, 142, 144, 136, 147, 138, 143, 143, 151, 137, 143, 139, 141, 142, 131, 132, 129, 139, 150, 130, 132, 139, 139, 135, 133, 159, 154, 136, 135, 139, 144, 132, 142, 137, 137, 137, 141, 140, 147, 140, 135, 133, 145, 134, 128, 151, 137, 142, 129, 134, 143, 134, 144, 138, 140, 137, 140, 139, 134, 133, 129, 135, 127, 136, 141, 139, 133, 138, 142, 140, 142, 133, 141, 132, 155, 139, 133, 149, 142, 137, 135, 132, 125, 140, 140, 136, 132, 142, 146, 143, 135, 143, 126, 127, 149, 135, 142, 139, 140, 137, 136, 141, 134, 136, 137, 134, 135, 132, 135, 145, 153, 140, 138, 150, 138, 139, 142, 143, 134, 150, 139, 144, 142, 142, 139, 140, 125, 137, 148, 134, 138, 140, 140, 137, 131, 129, 138, 134, 143, 135, 129, 137, 145, 148, 144, 134, 132, 146, 140, 140, 144, 141, 139, 152, 137, 138, 147, 134, 139, 146, 148, 122, 143, 138, 136, 142, 127, 133, 136, 140, 142, 136, 141, 138, 144, 138, 139, 145, 142, 143, 144, 140, 144, 147, 141, 134, 141, 137, 148, 145, 140, 126, 137, 138, 139, 134, 142, 145, 138, 142, 140, 134, 144, 141, 138, 145, 132, 138, 142, 134, 132, 136, 143, 144, 140, 135, 134, 146, 137, 140, 137, 146, 134, 149, 137, 138, 138, 139, 138, 143, 133, 140, 137, 144, 143, 137, 145, 137, 143, 136, 134, 137, 134, 132, 137, 131, 146, 143, 142, 139, 130, 149, 132, 140, 135, 136, 133, 131, 149, 156, 134, 139, 144, 130, 137, 132, 137, 131, 139, 140, 136, 137, 141, 128, 139, 126, 140, 141, 135, 142, 142, 156, 145, 147, 146, 142, 137, 140, 137, 146, 133, 139, 136, 139, 147, 138, 138, 131, 139, 128, 141, 138, 137, 138, 153, 132, 146, 139, 138, 134, 125, 144, 142, 143, 147, 135, 138, 152, 136, 134, 146, 150, 129, 131, 146, 144, 140, 144, 142, 143, 143, 131, 140, 147, 151, 144, 140, 133, 127, 141, 139, 134, 132, 139, 136, 141, 149, 143, 144, 134, 139, 139, 145, 142, 135, 138, 153, 136, 131, 137, 134, 139, 148, 132, 147, 124, 142, 151, 139, 132, 133, 144, 136, 129, 138, 134, 139, 136, 141, 136, 133, 133, 136, 138, 133, 138, 142, 135, 137, 149, 133, 137, 138, 138, 133, 141, 135, 144, 135, 143, 140, 132, 121, 136, 137, 142, 148, 146, 141, 147, 137, 146, 132, 138, 137, 137, 141, 140, 134, 136, 138, 139, 143, 137, 140, 130, 144, 133, 132, 136, 140, 137, 136, 142, 135, 134, 131, 144, 146, 131, 132, 142, 135, 126, 137, 138, 147, 140, 144, 129, 136, 127, 141, 138, 142, 143, 139, 141, 135, 131, 149, 133, 143, 143, 131, 130, 136, 136, 138, 139, 139, 145, 135, 134, 138, 140, 134, 139, 144, 134, 147, 140, 132, 144, 140, 142, 141, 142, 139, 139, 132, 141, 144, 138, 128, 141, 143, 138, 141, 139, 130, 140, 128, 142, 130, 137, 132, 135, 131, 135, 143, 136, 139, 129, 144, 144, 145, 139, 145, 128, 137, 137, 139, 150, 133, 140, 136, 136, 142, 137, 135, 146, 138, 148, 140, 133, 151, 135, 142, 133, 144, 142, 137, 140, 137, 137, 136, 146, 150, 135, 145, 131, 152, 136, 158, 135, 149, 141, 139, 144, 147, 150, 132, 140, 141, 136, 136, 137, 146, 139, 134, 141, 131, 143, 138, 142, 130, 144, 143, 136, 140, 139, 138, 134, 141, 133, 140, 143, 137, 133, 138, 138, 139, 145, 143, 157, 130, 149, 136, 131, 140, 133, 141, 136, 140, 138, 134, 141, 131, 144, 143, 127, 142, 139, 133, 142, 140, 137, 138, 135, 136, 137, 134, 136, 138, 140, 145, 148, 143, 136, 146, 139, 145, 137, 138, 132, 142, 133, 130, 144, 140, 130, 136, 137, 140, 137, 144, 143, 125, 146, 139, 131, 133, 138, 141, 131, 129, 130, 140, 133, 135, 128, 146, 139, 141, 127, 134, 142, 139, 137, 141, 131, 145, 142, 138, 146, 137, 146, 140, 136, 144, 145, 143, 141, 145, 132, 134, 139, 142, 139, 144, 145, 137, 144, 153, 148, 142, 135, 138, 134, 136, 141, 136, 146, 135, 136, 143, 136, 137, 133, 131, 134, 153, 138, 134, 134, 138, 123, 139, 134, 130, 140, 151, 163, 138, 134, 136, 144, 146, 140, 141, 133, 139, 142, 138, 142, 144, 142, 144, 138, 140, 140, 137, 133, 133, 143, 139, 137, 138, 128, 144, 139, 143, 136, 144, 133, 135, 141, 139, 134, 136, 138, 134, 141, 136, 145, 138, 142, 145, 134, 131, 135, 140, 138, 137, 140, 130, 143, 141, 136, 133, 134, 135, 148, 135, 142, 133, 139, 144, 145, 135, 145, 133, 132, 136, 135, 143, 141, 139, 132, 133, 132, 143, 143, 136, 129, 138, 140, 133, 137, 148, 140, 137, 136, 133, 142, 148, 130, 143, 142, 137, 142, 139, 138, 143, 142, 134, 140, 137, 136, 133, 135, 142, 136, 134, 137, 144, 146, 141, 145, 143, 133, 136, 145, 141, 135, 141, 138, 133, 144, 141, 149, 138, 135, 137, 150, 135, 142, 139, 141, 142, 138, 133, 137, 138, 131, 149, 146, 150, 143, 136, 146, 151, 132, 146, 137, 142, 138, 138, 142, 137, 142, 128, 129, 128, 137, 146, 136, 144, 139, 145, 134, 141, 132, 141, 135, 137, 132, 137, 153, 145, 134, 144, 146, 139, 143, 134, 137, 135, 140, 143, 145, 140, 132, 136, 133, 142, 137, 142, 148, 140, 138, 141, 145, 135, 139, 136, 139, 130, 132, 139, 134, 142, 141, 136, 139, 130, 138, 149, 141, 138, 132, 147, 137, 136, 148, 141, 136, 155, 145, 138, 137, 134, 144, 133, 130, 144, 139, 138, 138, 151, 133, 137, 134, 145, 142, 132, 141, 133, 139, 142, 138, 140, 141, 140, 140, 144, 142, 138, 144, 138, 141, 144, 137, 140, 145, 136, 137, 145, 141, 142, 134, 138, 143, 136, 144, 139, 140, 133, 150, 136, 136, 132, 144, 140, 138, 142, 127, 145, 144, 135, 131, 139, 140, 136, 133, 132, 146, 138, 136, 132, 136, 146, 141, 140, 144, 149, 135, 140, 129, 134, 146, 139, 140, 138, 140, 136, 142, 137, 130, 137, 137, 144, 140, 140, 134, 136, 132, 140, 139, 136, 133, 136, 143, 133, 134, 151, 142, 143, 132, 128, 141, 139, 121, 130, 132, 135, 147, 137, 140, 133, 143, 142, 148, 145, 135, 146, 142, 136, 140, 150, 141, 137, 142, 136, 142, 138, 127, 135, 144, 142, 139, 138, 147, 140, 140, 144, 136, 142, 139, 129, 142, 143, 135, 140, 146, 131, 134, 141, 140, 135, 138, 141, 136, 137, 143, 131, 136, 137, 141, 139, 137, 143, 138, 146, 136, 128, 138, 142, 139, 137, 147, 136, 136, 149, 133, 153, 139, 143, 139, 143, 135, 139, 142, 143, 142, 141, 138, 139, 134, 140, 135, 136, 138, 138, 138, 133, 142, 135, 133, 135, 140, 141, 139, 135, 136, 136, 142, 139, 135, 145, 141, 136, 135, 150, 144, 135, 143, 128, 134, 139, 144, 137, 140, 132, 145, 137, 134, 132, 136, 135, 136, 134, 147, 138, 134, 147, 145, 138, 138, 144, 134, 136, 136, 138, 139, 139, 137, 139, 132, 134, 130, 146, 135, 138, 137, 145, 138, 144, 138, 137, 138, 137, 140, 140, 146, 137, 137, 137, 127, 144, 141, 137, 136, 157, 134, 130, 140, 134, 132, 134, 139, 143, 139, 138, 145, 149, 137, 136, 137, 138, 143, 148, 131, 134, 149, 135, 133, 140, 137, 135, 140, 141, 134, 139, 142, 142, 141, 137, 140, 132, 136, 133, 142, 144, 140, 137, 138, 145, 136, 144, 133, 137, 134, 139, 147, 136, 146, 134, 145, 140, 137, 146, 148, 141, 148, 142, 135, 130, 139, 133, 140, 137, 142, 134, 135, 132, 142, 134, 136, 138, 135, 136, 140, 140, 139, 137, 145, 144, 130, 147, 140, 136, 138, 139, 135, 138, 141, 140, 139, 143, 138, 138, 141, 144, 147, 137, 132, 154, 143, 142, 132, 137, 135, 137, 144, 134, 133, 142, 143, 145, 142, 138, 144, 133, 137, 139, 142, 142, 147, 134, 140, 136, 152, 142, 140, 136, 142, 137, 145, 144, 145, 140, 146, 141, 142, 139, 128, 145, 137, 143, 132, 146, 142, 140, 144, 139, 133, 144, 135, 133, 145, 137, 130, 133, 135, 141, 141, 141, 136, 145, 135, 139, 138, 135, 139, 140, 143, 132, 136, 138, 142, 139, 139, 128, 143, 141, 140, 135, 135, 131, 142, 135, 144, 142, 142, 140, 142, 139, 148, 136, 135, 142, 139, 139, 137, 140, 140, 140, 134, 141, 137, 144, 143, 143, 137, 141, 143, 140, 138, 141, 130, 137, 139, 141, 141, 143, 138, 131, 142, 141, 141, 137, 136, 143, 135, 139, 136, 142, 129, 133, 141, 139, 138, 139, 144, 138, 139, 139, 134, 140, 142, 140, 137, 138, 135, 129, 139, 135, 136, 144, 146, 137, 135, 136, 144, 136, 140, 135, 136, 140, 144, 142, 142, 145, 141, 136, 142, 133, 143, 126, 135, 135, 135, 133, 140, 136, 130, 139, 134, 140, 136, 141, 140, 133, 137, 132, 136, 134, 143, 133, 136, 143, 134, 141, 145, 138, 142, 142, 139, 135, 145, 136, 147, 145, 141, 147, 137, 137, 143, 149, 137, 133, 143, 137, 146, 132, 143, 136, 137, 136, 136, 138, 144, 151, 142, 134, 134, 138, 146, 142, 134, 143, 135, 140, 139, 140, 134, 140, 142, 134, 130, 148, 137, 145, 134, 144, 138, 137, 143, 141, 139, 141, 142, 141, 143, 135, 148, 135, 136, 135, 137, 140, 136, 142, 141, 146, 143, 137, 139, 139, 136, 132, 133, 137, 137, 139, 140, 137, 136, 143, 143, 148, 143, 137, 136, 144, 143, 133, 132, 132, 144, 134, 137, 141, 138, 138, 138, 137, 142, 141, 142, 135, 136, 136, 142, 134, 138, 134, 140, 139, 139, 139, 145, 143, 146, 149, 138, 136, 139, 142, 135, 142, 139, 133, 144, 142, 133, 135, 142, 133, 132, 136, 139, 143, 136, 135, 139, 145, 135, 147, 142, 134, 138, 143, 144, 134, 136, 139, 153, 133, 143, 135, 152, 132, 146, 134, 136, 136, 144, 144, 133, 139, 133, 138, 138, 145, 134, 133, 142, 132, 143, 135, 140, 130, 138, 137, 136, 139, 138, 139, 134, 137, 132, 144, 144, 135, 133, 137, 136, 142, 138, 142, 134, 145, 135, 145, 136, 136, 136, 140, 137, 139, 139, 137, 139, 145, 139, 129, 141, 133, 134, 141, 142, 139, 148, 143, 135, 135, 136, 136, 129, 136, 137, 149, 141, 142, 140, 141, 145, 145, 143, 140, 135, 136, 134, 132, 139, 131, 133, 139, 133, 130, 144, 139, 131, 136, 134, 127, 132, 139, 139, 138, 138, 138, 138, 138, 141, 137, 134, 142, 140, 138, 133, 137, 139, 138, 137, 138, 136, 142, 140, 144, 136, 137, 137, 140, 135, 136, 134, 136, 138, 140, 136, 146, 131, 141, 147, 142, 143, 142, 138, 143, 138, 144, 142, 135, 145, 143, 131, 135, 133, 141, 139, 136, 131, 141, 136, 134, 138, 136, 141, 138, 143, 137, 144, 142, 141, 139, 144, 140, 136, 137, 142, 139, 141, 141, 145, 133, 131, 139, 133, 133, 137, 140, 136, 140, 146, 136, 143, 145, 137, 138, 134, 145, 135, 139, 136, 135, 137, 138, 139, 141, 147, 144, 136, 139, 131, 146, 146, 140, 138, 133, 134, 133, 142, 137, 141, 133, 144, 143, 145, 137, 134, 144, 139, 138, 140, 140, 132, 141, 147, 128, 137, 135, 126, 142, 141, 141, 146, 134, 142, 140, 141, 133, 137, 137, 134, 142, 151, 136, 133, 143, 143, 135, 143, 142, 140, 137, 149, 141, 139, 141, 135, 139, 143, 133, 145, 140, 142, 141, 140, 138, 136, 138, 139, 138, 142, 140, 140, 142, 147, 139, 146, 132, 138, 123, 142, 138, 140, 130, 134, 133, 141, 132, 147, 137, 141, 147, 142, 140, 140, 137, 137, 146, 142, 141, 141, 141, 144, 136, 142, 142, 140, 141, 138, 144, 144, 136, 142, 131, 146, 140, 137, 138, 135, 141, 135, 141, 145, 136, 139, 135, 135, 147, 137, 145, 141, 135, 136, 142, 142, 138, 143, 137, 139, 140, 142, 135, 140, 132, 139, 136, 134, 135, 142, 138, 141, 136, 142, 135, 133, 135, 136, 140, 137, 136, 132, 137, 140, 137, 134, 129, 134, 140, 142, 141, 142, 137, 138, 138, 131, 147, 135, 143, 140, 149, 144, 136, 132, 140, 141, 138, 142, 135, 134, 143, 142, 144, 135, 140, 133, 143, 153, 143, 137, 148, 148, 139, 134, 142, 137, 129, 137, 145, 140, 138, 133, 138, 138, 134, 140, 133, 143, 135, 136, 139, 137, 145, 136, 136, 138, 139, 143, 141, 145, 142, 138, 136, 144, 144, 135, 139, 149, 141, 140, 139, 144, 138, 146, 138, 138, 142, 136, 122, 130, 133, 139, 135, 130, 143, 136, 141, 141, 143, 141, 134, 139, 141, 132, 132, 133, 139, 146, 135, 144, 146, 141, 132, 138, 140, 134, 143, 136, 128, 138, 143, 135, 140, 134, 136, 140, 136, 140, 125, 128, 130, 133, 127, 136, 139, 138, 133, 137, 142, 137, 135, 143, 144, 125, 143, 146, 138, 149, 137, 133, 143, 139, 131, 140, 147, 142, 135, 144, 139, 137, 152, 138, 145, 143, 141, 137, 134, 142, 130, 140, 139, 134, 145, 137, 138, 141, 141, 133, 136, 136, 138, 146, 141, 139, 141, 142, 130, 140, 136, 134, 131, 139, 135, 139, 143, 138, 140, 135, 137, 135, 133, 136, 146, 145, 139, 131, 139, 145, 136, 145, 136, 134, 137, 145, 145, 136, 131, 154, 137, 140, 139, 136, 139, 137, 141, 127, 143, 153, 143, 132, 140, 136, 128, 145, 143, 145, 138, 130, 140, 131, 134, 140, 134, 136, 144, 138, 143, 149, 138, 141, 145, 145, 135, 132, 137, 143, 139, 137, 146, 135, 135, 141, 139, 132, 140, 141, 133, 134, 134, 135, 142, 138, 135, 134, 146, 135, 132, 136, 139, 139, 135, 142, 143, 134, 138, 140, 142, 143, 135, 139, 133, 137, 138, 136, 137, 129, 141, 136, 140, 137, 143, 134, 135, 135, 141, 141, 139, 142, 152, 142, 137, 131, 144, 136, 137, 139, 140, 134, 138, 134, 140, 138, 134, 139, 133, 137, 139, 145, 125, 136, 142, 137, 140, 141, 142, 139, 139, 144, 141, 133, 136, 137, 136, 133, 137, 148, 139, 143, 139, 138, 144, 138, 143, 139, 142, 134, 142, 141, 145, 136, 137, 142, 131, 138, 140, 133, 145, 140, 138, 136, 135, 134, 142, 140, 148, 138, 135, 137, 139, 138, 139, 138, 140, 138, 147, 142, 147, 139, 143, 146, 138, 135, 140, 143, 128, 145, 144, 130, 141, 143, 140, 137, 133, 140, 137, 145, 140, 147, 130, 136, 135, 141, 145, 141, 133, 134, 138, 133, 137, 136, 143, 141, 135, 149, 140, 143, 144, 140, 137, 141, 139, 133, 134, 137, 147, 139, 145, 137, 139, 138, 139, 140, 141, 135, 140, 145, 138, 137, 136, 128, 129, 142, 138, 124, 139, 140, 140, 139, 139, 143, 136, 140, 142, 143, 139, 142, 141, 133, 134, 141, 141, 129, 138, 135, 137, 142, 136, 135, 135, 134, 141, 136, 130, 135, 146, 142, 140, 140, 139, 142, 137, 136, 144, 137, 135, 144, 134, 137, 144, 134, 134, 137, 133, 145, 135, 135, 131, 132, 140, 143, 142, 148, 136, 133, 138, 136, 150, 133, 146, 145, 144, 141, 138, 140, 136, 137, 133, 139, 136, 135, 138, 130, 148, 139, 141, 141, 142, 133, 141, 141, 133, 140, 141, 136, 145, 135, 138, 136, 135, 131, 146, 151, 146, 132, 138, 134, 140, 125, 144, 143, 144, 139, 139, 147, 146, 141, 133, 135, 136, 144, 140, 141, 147, 136, 143, 141, 140, 142, 140, 143, 135, 132, 127, 141, 137, 138, 137, 139, 155, 139, 142, 132, 144, 143, 133, 144, 132, 138, 139, 134, 152, 139, 146, 135, 142, 135, 140, 138, 129, 134, 131, 153, 134, 138, 144, 140, 130, 134, 132, 135, 142, 135, 136, 142, 137, 147, 143, 134, 146, 142, 128, 143, 140, 123, 144, 147, 131, 142, 135, 137, 144, 148, 142, 143, 134, 145, 143, 134, 141, 148, 144, 146, 134, 133, 142, 135, 144, 143, 134, 141, 136, 138, 141, 149, 144, 143, 141, 148, 139, 130, 143, 144, 139, 136, 136, 145, 151, 137, 146, 132, 136, 130, 134, 129, 139, 141, 130, 146, 140, 134, 137, 138, 138, 137, 133, 141, 137, 145, 136, 128, 146, 149, 138, 141, 131, 136, 144, 133, 133, 135, 143, 135, 136, 141, 143, 142, 132, 137, 146, 143, 139, 140, 139, 132, 138, 147, 134, 124, 132, 135, 139, 137, 133, 131, 146, 146, 133, 143, 137, 142, 142, 136, 149, 132, 138, 139, 141, 137, 139, 142, 132, 142, 129, 152, 144, 137, 149, 154, 135, 141, 146, 130, 146, 133, 133, 141, 145, 146, 132, 150, 136, 140, 141, 141, 146, 146, 150, 135, 125, 134, 146, 137, 142, 144, 139, 126, 142, 122, 137, 138, 132, 124, 153, 141, 132, 142, 147, 148, 133, 128, 133, 135, 142, 143, 139, 140, 138, 142, 125, 137, 141, 144, 133, 128, 136, 137, 134, 147, 136, 141, 143, 135, 135, 141, 135, 147, 129, 138, 135, 149, 144, 137, 149, 143, 143, 131, 138, 151, 140, 135, 146, 135, 138, 145, 139, 142, 126, 133, 137, 143, 132, 136, 144, 130, 144, 135, 136, 132, 135, 134, 136, 151, 140, 139, 139, 135, 141, 147, 143, 141, 146, 128, 142, 139, 138, 146, 138, 136, 137, 142, 144, 141, 145, 137, 141, 137, 143, 137, 130, 131, 143, 130, 142, 148, 138, 127, 140, 134, 139, 134, 136, 144, 144, 151, 137, 132, 133, 134, 143, 125, 130, 135, 133, 144, 141, 145, 140, 133, 141, 139, 133, 139, 148, 131, 139, 148, 142, 134, 141, 126, 140, 139, 126, 149, 135, 138, 142, 150, 133, 139, 135, 128, 138, 138, 134, 143, 131, 148, 139, 140, 144, 118, 136, 130, 135, 140, 136, 135, 135, 135, 139, 144, 139, 145, 139, 137, 141, 140, 139, 138, 154, 138, 138, 135, 126, 135, 140, 142, 143, 138, 133, 140, 142, 138, 133, 157, 147, 140, 140, 134, 133, 140, 131, 138, 132, 142, 142, 134, 148, 130, 140, 152, 147, 135, 143, 137, 141, 143, 141, 140, 130, 139, 148, 133, 146, 137, 139, 134, 137, 136, 140, 142, 139, 150, 145, 139, 136, 134, 136, 139, 146, 140, 135, 131, 136, 140, 147, 141, 135, 128, 143, 151, 132, 132, 135, 139, 145, 139, 136, 138, 139, 139, 133, 149, 134, 135, 134, 138, 142, 139, 140, 136, 140, 135, 140, 143, 140, 140, 137, 140, 137, 141, 141, 145, 137, 144, 139, 143, 134, 137, 135, 135, 137, 138, 138, 135, 136, 140, 145, 140, 143, 143, 137, 140, 142, 132, 144, 133, 136, 140, 137, 139, 138, 127, 136, 138, 141, 139, 142, 139, 138, 137, 136, 134, 136, 136, 140, 143, 138, 140, 139, 139, 139, 143, 138, 139, 139, 138, 141, 140, 136, 139, 141, 137, 141, 138, 142, 138, 136, 139, 138, 143, 146, 136, 144, 139, 136, 143, 147, 138, 134, 143, 139, 139, 137, 139, 134, 138, 139, 133, 147, 137, 133, 139, 140, 138, 140, 135, 142, 143, 138, 141, 138, 135, 140, 141, 134, 144, 141, 143, 136, 139, 140, 134, 136, 140, 139, 145, 141, 140, 137, 137, 133, 138, 136, 142, 142, 144, 138, 140, 140, 140, 141, 133, 135, 139, 140, 140, 137, 144, 141, 142, 139, 126, 138, 132, 142, 136, 139, 145, 141, 140, 139, 138, 139, 138, 136, 138, 140, 138, 141, 135, 140, 141, 140, 141, 134, 136, 136, 137, 140, 144, 140, 140, 140, 137, 139, 138, 140, 140, 137, 133, 136, 141, 143, 135, 137, 134, 135, 136, 139, 140, 140, 140, 136, 147, 136, 143, 136, 137, 147, 138, 139, 140, 133, 142, 135, 138, 133, 142, 137, 139, 140, 138, 140, 135, 138, 136, 140, 135, 134, 139, 138, 137, 138, 140, 133, 139, 134, 134, 134, 135, 140, 142, 150, 139, 143, 138, 136, 141, 137, 135, 140, 138, 140, 138, 134, 142, 127, 137, 135, 132, 140, 131, 142, 136, 137, 134, 136, 138, 135, 135, 138, 139, 142, 134, 135, 138, 137, 141, 144, 141, 140, 137, 138, 138, 136, 141, 138, 137, 139, 143, 139, 141, 141, 141, 139, 143, 140, 136, 138, 139, 141, 135, 132, 140, 141, 141, 142, 137, 138, 139, 135, 136, 135, 138, 138, 141, 135, 139, 140, 140, 136, 139, 138, 143, 128, 140, 139, 141, 140, 134, 140, 140, 137, 137, 139, 135, 141, 135, 138, 138, 137, 131, 134, 138, 134, 139, 138, 140, 142, 142, 137, 141, 135, 138, 134, 134, 136, 141, 146, 139, 139, 141, 141, 145, 134, 138, 141, 137, 143, 144, 142, 140, 138, 144, 136, 143, 140, 140, 140, 140, 133, 140, 140, 139, 139, 140, 138, 136, 138, 146, 135, 140, 150, 146, 142, 136, 142, 138, 140, 136, 137, 139, 136, 138, 150, 141, 142, 139, 142, 145, 142, 139, 140, 140, 140, 134, 136, 136, 138, 146, 134, 145, 140, 142, 143, 138, 141, 142, 139, 138, 142, 138, 129, 137, 140, 132, 137, 134, 136, 139, 137, 139, 141, 141, 135, 134, 138, 138, 137, 134, 144, 139, 140, 128, 136, 139, 139, 141, 138, 131, 140, 139, 136, 141, 136, 136, 141, 138, 140, 142, 140, 135, 137, 134, 144, 141, 140, 137, 136, 137, 142, 136, 140, 142, 139, 139, 140, 138, 135, 137, 142, 143, 137, 137, 142, 141, 142, 132, 139, 135, 137, 140, 135, 141, 136, 140, 142, 139, 126, 127, 136, 146, 134, 137, 145, 145, 140, 136, 129, 134, 139, 141, 147, 137, 139, 139, 134, 138, 135, 140, 136, 145, 139, 127, 137, 140, 139, 140, 141, 135, 138, 138, 134, 135, 135, 135, 137, 140, 144, 139, 138, 135, 135, 132, 144, 139, 140, 140, 129, 130, 138, 143, 134, 138, 148, 134, 130, 135, 143, 141, 142, 133, 134, 145, 140, 152, 139, 146, 133, 141, 138, 133, 136, 136, 145, 146, 136, 138, 137, 135, 138, 129, 139, 141, 131, 140, 137, 148, 135, 146, 144, 132, 138, 152, 142, 144, 130, 134, 141, 144, 138, 137, 150, 148, 137, 137, 136, 136, 149, 144, 136, 152, 142, 137, 140, 129, 144, 148, 141, 148, 130, 138, 139, 130, 133, 142, 136, 144, 146, 139, 133, 135, 136, 133, 146, 137, 142, 136, 141, 146, 133, 142, 137, 135, 135, 140, 139, 136, 135, 140, 153, 134, 147, 141, 137, 137, 147, 130, 135, 138, 136, 134, 136, 137, 136, 135, 139, 136, 142, 133, 145, 147, 145, 140, 138, 148, 132, 144, 144, 132, 139, 137, 139, 139, 138, 138, 128, 140, 137, 146, 140, 129, 135, 135, 144, 130, 135, 143, 138, 134, 140, 141, 143, 134, 135, 125, 145, 139, 138, 142, 139, 139, 145, 134, 138, 147, 130, 137, 139, 142, 145, 142, 134, 140, 141, 148, 144, 134, 138, 130, 145, 145, 138, 142, 143, 141, 132, 136, 146, 135, 141, 133, 141, 136, 137, 140, 138, 140, 146, 142, 144, 140, 136, 134, 142, 136, 146, 135, 128, 132, 128, 150, 134, 142, 135, 137, 144, 136, 136, 145, 138, 137, 128, 125, 142, 141, 140, 133, 140, 141, 149, 136, 140, 140, 139, 134, 136, 130, 136, 131, 137, 149, 133, 137, 135, 144, 141, 140, 133, 137, 130, 140, 122, 140, 142, 132, 128, 137, 136, 149, 147, 136, 138, 130, 145, 146, 148, 133, 137, 120, 136, 137, 140, 134, 139, 140, 145, 144, 137, 144, 138, 133, 147, 140, 134, 133, 143, 140, 135, 141, 138, 138, 140, 141, 139, 130, 137, 142, 136, 145, 133, 134, 141, 141, 143, 141, 136, 145, 137, 137, 146, 130, 131, 133, 146, 141, 140, 137, 146, 138, 137, 141, 137, 132, 137, 137, 134, 142, 139, 132, 133, 137, 144, 138, 134, 130, 130, 143, 146, 140, 137, 138, 146, 141, 145, 137, 139, 140, 124, 132, 133, 144, 132, 131, 148, 142, 141, 136, 143, 138, 136, 137, 143, 132, 149, 140, 145, 144, 136, 138, 138, 124, 143, 141, 138, 150, 142, 140, 148, 139, 136, 128, 138, 145, 141, 139, 146, 145, 147, 149, 135, 142, 135, 141, 133, 135, 149, 134, 136, 142, 135, 142, 133, 141, 144, 147, 132, 131, 140, 136, 134, 136, 142, 151, 139, 142, 140, 136, 133, 133, 144, 137, 139, 153, 140, 140, 136, 138, 133, 139, 138, 137, 130, 141, 137, 139, 132, 141, 131, 135, 139, 130, 137, 135, 139, 142, 142, 136, 141, 142, 134, 136, 141, 143, 138, 138, 147, 143, 138, 137, 139, 138, 137, 146, 135, 137, 143, 132, 142, 147, 139, 138, 143, 139, 135, 146, 145, 137, 144, 147, 132, 126, 141, 136, 139, 146, 143, 145, 141, 153, 139, 139, 145, 139, 147, 141, 141, 143, 130, 141, 135, 141, 133, 141, 140, 137, 134, 136, 137, 143, 130, 137, 136, 139, 132, 139, 135, 142, 130, 132, 142, 133, 139, 140, 135, 133, 137, 138, 125, 136, 136, 139, 143, 141, 138, 144, 141, 141, 146, 136, 143, 138, 131, 135, 142, 138, 139, 129, 134, 133, 135, 144, 142, 141, 146, 143, 130, 137, 134, 141, 144, 146, 146, 137, 131, 140, 137, 134, 138, 136, 142, 132, 140, 136, 140, 136, 136, 148, 134, 137, 148, 142, 137, 142, 143, 149, 129, 148, 136, 148, 137, 142, 146, 138, 137, 134, 138, 146, 141, 140, 137, 132, 140, 137, 133, 148, 149, 140, 141, 131, 151, 137, 145, 133, 145, 140, 134, 142, 136, 139, 141, 127, 141, 144, 139, 140, 137, 143, 136, 140, 139, 150, 151, 130, 135, 141, 152, 135, 137, 132, 136, 138, 133, 135, 144, 136, 149, 140, 139, 148, 135, 136, 141, 140, 139, 134, 139, 137, 140, 143, 141, 136, 148, 140, 137, 136, 140, 138, 145, 149, 144, 139, 145, 138, 128, 135, 140, 132, 137, 140, 141, 146, 137, 149, 148, 137, 130, 133, 138, 138, 129, 141, 151, 139, 139, 128, 139, 130, 142, 143, 148, 137, 144, 137, 138, 139, 137, 134, 140, 137, 138, 145, 134, 141, 143, 136, 149, 143, 141, 136, 144, 124, 143, 128, 136, 139, 138, 137, 141, 141, 135, 139, 151, 137, 137, 141, 136, 131, 137, 141, 136, 146, 142, 135, 137, 133, 145, 147, 136, 141, 141, 123, 125, 126, 142, 142, 138, 145, 131, 134, 134, 141, 132, 141, 146, 126, 142, 139, 139, 133, 140, 138, 134, 148, 135, 125, 144, 136, 137, 141, 142, 139, 147, 140, 132, 133, 142, 145, 126, 138, 137, 138, 141, 143, 135, 134, 134, 150, 140, 143, 142, 131, 139, 136, 141, 139, 142, 147, 135, 131, 128, 146, 151, 143, 138, 144, 136, 137, 149, 134, 138, 132, 144, 144, 135, 135, 136, 131, 135, 140, 139, 141, 145, 135, 142, 151, 126, 135, 133, 134, 143, 140, 144, 136, 146, 135, 142, 132, 147, 141, 134, 134, 133, 142, 137, 139, 150, 146, 137, 140, 133, 133, 146, 134, 131, 144, 138, 147, 138, 146, 144, 149, 140, 137, 132, 143, 138, 140, 141, 139, 147, 132, 137, 138, 134, 137, 141, 142, 143, 135, 140, 144, 146, 133, 140, 143, 140, 132, 143, 137, 141, 140, 135, 148, 142, 128, 131, 141, 133, 137, 135, 138, 132, 135, 137, 138, 142, 135, 138, 129, 134, 146, 135, 134, 119, 136, 133, 123, 142, 150, 137, 135, 141, 134, 141, 131, 142, 130, 141, 139, 144, 135, 143, 142, 144, 132, 133, 142, 138, 145, 138, 138, 136, 146, 142, 130, 129, 129, 133, 138, 142, 141, 131, 135, 126, 138, 128, 138, 138, 135, 132, 148, 146, 139, 134, 137, 144, 135, 136, 136, 145, 137, 131, 143, 133, 143, 138, 141, 149, 133, 146, 143, 135, 138, 135, 136, 141, 136, 129, 147, 137, 135, 142, 138, 138, 135, 140, 141, 141, 143, 134, 140, 136, 132, 135, 142, 136, 135, 143, 138, 142, 135, 132, 134, 137, 145, 128, 137, 136, 139, 134, 136, 138, 138, 140, 145, 127, 129, 140, 137, 140, 141, 148, 141, 140, 137, 140, 135, 147, 142, 141, 130, 143, 133, 138, 145, 127, 142, 140, 133, 136, 137, 145, 138, 141, 131, 133, 146, 134, 141, 137, 139, 136, 126, 129, 137, 133, 125, 139, 135, 135, 136, 139, 137, 142, 136, 151, 135, 149, 141, 138, 132, 137, 135, 137, 142, 134, 140, 133, 143, 141, 138, 137, 143, 141, 137, 142, 135, 139, 142, 140, 141, 142, 137, 135, 136, 140, 138, 150, 133, 139, 141, 149, 146, 133, 131, 130, 139, 143, 132, 143, 133, 135, 130, 147, 140, 139, 135, 132, 139, 142, 141, 140, 134, 140, 136, 145, 142, 145, 141, 136, 136, 143, 134, 131, 139, 136, 141, 137, 141, 131, 135, 141, 148, 137, 137, 136, 140, 137, 134, 144, 136, 145, 134, 137, 145, 141, 138, 135, 139, 144, 156, 146, 139, 131, 140, 135, 135, 137, 137, 138, 136, 138, 142, 147, 145, 145, 137, 135, 137, 136, 140, 143, 147, 142, 140, 131, 126, 138, 142, 136, 145, 144, 135, 145, 139, 139, 147, 130, 131, 130, 141, 136, 146, 136, 141, 133, 131, 137, 143, 135, 146, 137, 141, 148, 139, 148, 142, 134, 140, 146, 139, 140, 144, 138, 131, 140, 140, 137, 136, 134, 139, 141, 139, 138, 135, 144, 139, 141, 141, 148, 135, 141, 143, 138, 139, 128, 131, 142, 135, 139, 143, 142, 142, 135, 143, 134, 137, 139, 136, 139, 140, 135, 142, 144, 132, 134, 151, 134, 144, 132, 141, 138, 134, 137, 142, 135, 150, 135, 138, 150, 139, 136, 138, 139, 144, 138, 140, 136, 152, 138, 139, 137, 127, 143, 144, 146, 132, 131, 138, 138, 133, 136, 136, 146, 132, 134, 140, 133, 147, 145, 136, 131, 139, 138, 129, 133, 135, 143, 136, 135, 146, 138, 131, 140, 137, 140, 145, 138, 135, 148, 128, 129, 138, 146, 136, 128, 129, 136, 147, 140, 142, 134, 145, 140, 140, 147, 151, 149, 136, 139, 148, 135, 145, 137, 145, 145, 145, 139, 148, 134, 138, 136, 141, 132, 142, 130, 130, 137, 139, 127, 139, 142, 144, 142, 147, 137, 135, 130, 136, 141, 148, 141, 130, 138, 141, 131, 146, 146, 134, 143, 149, 147, 137, 139, 138, 146, 141, 129, 136, 135, 141, 138, 138, 142, 143, 136, 144, 140, 134, 138, 125, 142, 130, 132, 138, 141, 130, 135, 137, 137, 137, 137, 134, 143, 143, 144, 133, 136, 142, 135, 138, 145, 144, 146, 133, 144, 134, 137, 139, 148, 145, 139, 142, 139, 148, 132, 128, 135, 134, 143, 141, 134, 141, 143, 132, 138, 136, 131, 130, 138, 143, 152, 141, 142, 138, 138, 147, 137, 139, 135, 149, 132, 137, 137, 143, 138, 136, 143, 139, 146, 137, 133, 144, 136, 138, 138, 144, 148, 134, 140, 139, 141, 140, 144, 132, 141, 136, 136, 148, 142, 133, 132, 139, 144, 147, 139, 136, 129, 144, 139, 140, 140, 148, 136, 136, 137, 140, 142, 140, 148, 135, 136, 141, 148, 135, 150, 143, 141, 139, 134, 132, 136, 138, 136, 137, 148, 135, 132, 133, 140, 130, 134, 142, 139, 139, 145, 129, 141, 142, 129, 129, 151, 139, 132, 142, 130, 137, 138, 147, 138, 137, 142, 135, 140, 140, 141, 132, 136, 137, 147, 143, 136, 141, 135, 145, 145, 137, 137, 141, 134, 140, 145, 139, 150, 140, 140, 140, 138, 146, 131, 141, 134, 145, 143, 145, 128, 139, 141, 140, 140, 139, 138, 139, 135, 137, 137, 149, 142, 140, 144, 132, 147, 145, 140, 145, 137, 137, 133, 142, 140, 135, 139, 136, 141, 134, 141, 137, 134, 135, 142, 136, 135, 145, 135, 145, 135, 138, 137, 136, 141, 136, 138, 124, 132, 143, 145, 143, 139, 138, 138, 134, 134, 137, 139, 142, 138, 137, 137, 142, 139, 143, 137, 142, 141, 137, 138, 147, 144, 135, 139, 138, 142, 140, 137, 139, 141, 136, 146, 133, 136, 136, 141, 150, 148, 137, 141, 136, 136, 140, 140, 140, 143, 147, 139, 140, 142, 142, 145, 140, 139, 139, 142, 130, 138, 137, 137, 137, 136, 134, 134, 139, 140, 141, 138, 138, 144, 149, 135, 135, 135, 143, 136, 140, 132, 133, 144, 132, 138, 142, 135, 149, 144, 136, 141, 133, 139, 130, 132, 130, 143, 138, 144, 140, 137, 126, 142, 140, 142, 137, 143, 139, 146, 135, 140, 137, 141, 138, 141, 144, 137, 143, 133, 139, 138, 144, 138, 145, 135, 142, 140, 141, 147, 141, 147, 140, 140, 135, 139, 138, 137, 143, 139, 141, 138, 145, 140, 150, 139, 146, 147, 144, 132, 130, 145, 140, 140, 134, 139, 142, 137, 136, 130, 144, 134, 137, 144, 139, 150, 137, 149, 142, 145, 139, 148, 142, 147, 138, 141, 134, 148, 139, 136, 133, 144, 140, 135, 144, 142, 143, 132, 144, 145, 152, 136, 133, 139, 135, 136, 139, 141, 131, 134, 140, 136, 141, 142, 136, 141, 140, 134, 140, 138, 135, 141, 140, 137, 139, 137, 139, 132, 135, 144, 143, 140, 143, 130, 138, 140, 129, 138, 133, 138, 131, 143, 146, 140, 124, 132, 137, 130, 142, 138, 138, 139, 137, 144, 139, 136, 138, 135, 133, 135, 136, 142, 133, 134, 147, 141, 131, 143, 148, 140, 136, 147, 137, 145, 132, 145, 142, 137, 135, 142, 138, 134, 147, 141, 129, 134, 139, 141, 136, 135, 146, 139, 137, 147, 141, 125, 144, 141, 139, 138, 137, 142, 133, 143, 140, 141, 144, 135, 137, 143, 141, 141, 133, 136, 137, 132, 133, 140, 140, 144, 132, 137, 136, 145, 130, 137, 148, 139, 136, 135, 143, 140, 140, 141, 131, 143, 145, 145, 133, 140, 135, 136, 130, 137, 137, 144, 146, 143, 140, 136, 137, 139, 140, 136, 142, 136, 140, 145, 147, 134, 148, 123, 140, 139, 141, 139, 142, 145, 135, 137, 146, 145, 139, 141, 130, 138, 133, 143, 149, 138, 129, 144, 141, 152, 148, 135, 142, 144, 137, 136, 141, 147, 142, 137, 129, 134, 136, 138, 130, 136, 145, 142, 143, 128, 138, 135, 134, 134, 145, 133, 138, 146, 138, 149, 144, 132, 135, 143, 129, 126, 139, 150, 145, 141, 143, 140, 150, 126, 142, 146, 129, 138, 139, 141, 149, 137, 142, 143, 144, 135, 135, 143, 143, 139, 134, 139, 138, 135, 125, 142, 139, 135, 143, 139, 132, 139, 140, 143, 141, 143, 140, 138, 140, 136, 141, 136, 141, 134, 136, 139, 133, 136, 133, 141, 134, 127, 139, 137, 139, 136, 132, 145, 144, 149, 138, 142, 138, 142, 148, 133, 141, 151, 144, 136, 139, 143, 133, 154, 132, 136, 132, 140, 144, 132, 135, 150, 129, 130, 139, 140, 138, 130, 135, 137, 134, 142, 139, 135, 142, 141, 141, 138, 134, 141, 140, 133, 137, 145, 133, 142, 145, 138, 133, 135, 136, 139, 136, 130, 130, 136, 134, 140, 140, 138, 139, 138, 140, 136, 134, 143, 138, 143, 138, 149, 140, 142, 135, 140, 130, 140, 144, 140, 147, 144, 136, 144, 155, 136, 134, 138, 145, 141, 139, 141, 141, 131, 141, 140, 128, 130, 132, 131, 135, 137, 140, 131, 135, 143, 136, 142, 145, 144, 133, 131, 141, 137, 144, 143, 135, 135, 141, 137, 132, 137, 141, 146, 138, 138, 140, 139, 140, 144, 136, 139, 144, 144, 131, 134, 131, 137, 137, 140, 139, 136, 149, 141, 132, 144, 146, 147, 137, 145, 141, 140, 141, 136, 140, 133, 144, 138, 144, 143, 137, 135, 139, 138, 143, 127, 137, 140, 142, 144, 143, 131, 137, 131, 142, 140, 128, 138, 137, 147, 137, 139, 138, 141, 133, 144, 154, 142, 137, 140, 141, 141, 149, 136, 143, 139, 135, 145, 138, 135, 143, 152, 148, 140, 138, 147, 138, 129, 138, 132, 135, 139, 136, 131, 137, 136, 140, 151, 142, 140, 139, 129, 136, 141, 137, 142, 134, 146, 148, 146, 140, 140, 144, 140, 126, 149, 128, 130, 135, 144, 139, 143, 141, 150, 131, 137, 141, 136, 136, 136, 144, 145, 139, 143, 144, 142, 142, 142, 135, 136, 148, 132, 133, 133, 139, 144, 154, 140, 132, 131, 135, 141, 134, 139, 135, 148, 135, 141, 144, 134, 138, 129, 143, 131, 145, 133, 141, 139, 136, 129, 132, 140, 140, 136, 134, 139, 137, 144, 136, 137, 135, 133, 144, 143, 136, 136, 144, 145, 133, 140, 139, 137, 141, 138, 143, 136, 133, 138, 137, 134, 145, 142, 128, 134, 137, 133, 133, 135, 138, 143, 148, 143, 139, 146, 136, 144, 149, 137, 137, 136, 134, 133, 132, 138, 142, 123, 140, 130, 134, 138, 125, 138, 144, 148, 135, 139, 146, 134, 156, 134, 140, 139, 145, 145, 142, 132, 148, 137, 145, 131, 134, 134, 137, 132, 134, 134, 145, 154, 155, 142, 152, 137, 135, 147, 142, 141, 144, 138, 133, 136, 135, 147, 136, 140, 131, 134, 141, 140, 143, 132, 135, 140, 134, 138, 139, 139, 139, 146, 135, 139, 143, 146, 142, 142, 132, 149, 135, 135, 126, 132, 141, 133, 140, 130, 132, 140, 139, 133, 143, 145, 137, 138, 139, 134, 148, 136, 153, 136, 131, 137, 147, 145, 138, 138, 148, 128, 131, 148, 137, 141, 137, 151, 135, 141, 142, 138, 133, 138, 137, 137, 141, 144, 145, 138, 135, 140, 134, 138, 142, 147, 153, 148, 146, 143, 148, 147, 137, 131, 141, 140, 136, 137, 137, 134, 138, 143, 136, 139, 131, 135, 142, 134, 115, 134, 128, 147, 141, 135, 144, 135, 128, 134, 138, 137, 132, 131, 135, 143, 139, 141, 135, 152, 146, 145, 140, 139, 135, 144, 137, 145, 146, 144, 138, 135, 136, 142, 143, 136, 138, 137, 136, 154, 142, 139, 139, 148, 140, 134, 136, 144, 132, 139, 140, 130, 145, 141, 141, 134, 138, 137, 135, 140, 133, 139, 145, 135, 136, 138, 141, 138, 138, 136, 141, 146, 139, 142, 153, 135, 144, 139, 141, 144, 145, 138, 148, 139, 130, 158, 135, 139, 134, 145, 134, 127, 139, 141, 140, 122, 139, 141, 131, 141, 141, 137, 139, 145, 129, 139, 137, 132, 151, 136, 134, 139, 141, 130, 140, 140, 130, 143, 141, 141, 137, 135, 145, 156, 135, 144, 143, 135, 131, 139, 134, 136, 141, 141, 144, 137, 133, 132, 138, 140, 149, 140, 141, 142, 139, 137, 138, 137, 138, 142, 139, 139, 137, 141, 140, 131, 136, 130, 133, 134, 133, 149, 142, 148, 142, 143, 134, 130, 145, 150, 134, 129, 138, 130, 144, 128, 141, 137, 140, 134, 148, 145, 148, 132, 143, 139, 135, 143, 146, 140, 142, 135, 130, 149, 137, 138, 134, 147, 130, 136, 140, 141, 138, 137, 134, 136, 135, 142, 134, 140, 138, 140, 138, 148, 146, 140, 137, 145, 133, 138, 131, 133, 145, 142, 140, 146, 146, 147, 138, 146, 144, 147, 145, 135, 143, 139, 137, 132, 132, 130, 132, 137, 142, 141, 134, 134, 138, 146, 148, 138, 138, 140, 141, 134, 130, 137, 135, 140, 146, 133, 131, 135, 147, 140, 138, 137, 132, 142, 137, 143, 137, 136, 128, 131, 155, 146, 146, 131, 140, 130, 147, 140, 156, 141, 138, 152, 128, 145, 132, 142, 130, 150, 139, 143, 131, 133, 138, 134, 133, 146, 146, 134, 129, 142, 137, 134, 133, 151, 134, 144, 130, 132, 144, 135, 142, 131, 128, 145, 137, 140, 146, 142, 135, 149, 148, 145, 136, 128, 133, 135, 135, 132, 143, 151, 131, 145, 139, 142, 132, 145, 141, 139, 133, 144, 150, 138, 146, 136, 133, 141, 145, 142, 136, 146, 139, 132, 136, 135, 130, 141, 145, 141, 135, 145, 135, 151, 131, 136, 138, 132, 138, 143, 129, 140, 131, 141, 128, 133, 134, 146, 141, 135, 146, 132, 138, 135, 144, 139, 138, 136, 134, 126, 131, 139, 155, 128, 145, 146, 139, 137, 143, 128, 134, 152, 129, 140, 144, 141, 141, 138, 147, 148, 139, 130, 137, 152, 146, 144, 132, 121, 134, 147, 137, 142, 143, 138, 153, 137, 149, 137, 136, 127, 143, 140, 141, 143, 131, 135, 145, 161, 128, 136, 143, 134, 141, 139, 136, 140, 141, 143, 142, 150, 137, 138, 136, 143, 146, 139, 132, 135, 134, 151, 142, 144, 139, 138, 135, 135, 133, 142, 140, 138, 144, 139, 140, 142, 143, 143, 143, 136, 144, 129, 135, 148, 131, 138, 140, 140, 143, 135, 133, 134, 138, 144, 133, 139, 134, 137, 142, 136, 128, 135, 137, 133, 127, 153, 148, 145, 136, 131, 143, 142, 137, 144, 145, 146, 155, 134, 133, 129, 135, 134, 130, 147, 134, 143, 128, 135, 133, 130, 143, 143, 144, 142, 136, 146, 139, 131, 129, 135, 143, 142, 142, 147, 145, 138, 149, 133, 135, 134, 134, 157, 145, 143, 128, 141, 130, 138, 140, 145, 137, 133, 139, 135, 127, 139, 147, 148, 133, 133, 130, 138, 139, 133, 141, 140, 137, 145, 152, 147, 140, 145, 139, 133, 135, 139, 132, 132, 143, 153, 125, 142, 133, 143, 147, 133, 132, 123, 137, 156, 142, 133, 143, 150, 143, 132, 137, 138, 129, 129, 130, 147, 122, 141, 136, 137, 140, 129, 129, 137, 154, 145, 137, 139, 145, 143, 137, 141, 126, 152, 139, 138, 130, 141, 142, 131, 137, 137, 141, 135, 134, 142, 134, 140, 137, 134, 130, 134, 131, 141, 137, 133, 122, 147, 133, 141, 134, 145, 141, 139, 139, 130, 132, 139, 140, 139, 129, 133, 124, 137, 132, 144, 141, 140, 135, 132, 139, 143, 143, 132, 140, 141, 134, 126, 146, 125, 136, 144, 137, 135, 140, 141, 140, 144, 136, 149, 137, 145, 138, 140, 137, 144, 137, 141, 140, 132, 142, 148, 128, 133, 140, 135, 138, 144, 140, 136, 134, 135, 142, 141, 136, 128, 135, 143, 150, 123, 138, 139, 150, 134, 132, 131, 138, 150, 147, 134, 148, 131, 147, 129, 145, 141, 141, 129, 147, 127, 125, 140, 148, 143, 156, 147, 137, 146, 140, 131, 138, 133, 132, 129, 130, 141, 140, 137, 145, 136, 124, 132, 131, 134, 138, 145, 141, 121, 146, 129, 140, 135, 133, 137, 149, 136, 148, 146, 132, 140, 134, 134, 142, 154, 139, 144, 133, 138, 145, 133, 142, 134, 146, 147, 135, 135, 146, 151, 145, 149, 129, 137, 147, 148, 137, 150, 137, 132, 139, 138, 150, 145, 136, 139, 143, 134, 136, 147, 155, 131, 151, 132, 143, 142, 147, 129, 141, 139, 138, 124, 150, 144, 137, 145, 145, 138, 138, 137, 139, 132, 140, 134, 124, 136, 135, 136, 139, 142, 140, 131, 132, 133, 149, 144, 147, 139, 133, 147, 134, 140, 150, 145, 132, 138, 134, 141, 135, 141, 142, 132, 143, 149, 128, 130, 137, 142, 137, 125, 149, 145, 140, 126, 145, 133, 133, 138, 145, 141, 138, 152, 140, 133, 137, 142, 132, 135, 146, 153, 127, 138, 141, 144, 142, 133, 138, 141, 140, 142, 135, 139, 140, 137, 137, 134, 140, 139, 143, 133, 141, 133, 139, 136, 140, 135, 136, 140, 138, 141, 142, 139, 145, 140, 144, 139, 137, 140, 139, 137, 137, 147, 136, 141, 145, 129, 139, 155, 145, 138, 150, 139, 140, 139, 131, 138, 134, 132, 143, 140, 135, 140, 139, 139, 139, 127, 133, 139, 143, 138, 144, 137, 139, 132, 137, 137, 142, 144, 134, 140, 134, 144, 138, 137, 139, 134, 142, 138, 143, 138, 144, 138, 133, 142, 138, 137, 138, 142, 140, 140, 139, 134, 134, 137, 139, 139, 137, 139, 138, 128, 143, 133, 138, 139, 141, 139, 142, 140, 140, 135, 137, 137, 131, 138, 136, 131, 140, 138, 139, 135, 156, 134, 138, 141, 134, 146, 140, 135, 138, 131, 139, 137, 143, 136, 135, 131, 139, 143, 143, 146, 148, 137, 139, 142, 143, 146, 139, 132, 144, 129, 141, 143, 131, 141, 137, 138, 141, 141, 146, 145, 141, 131, 145, 140, 137, 138, 132, 136, 134, 132, 141, 138, 136, 130, 135, 143, 139, 137, 128, 139, 136, 142, 142, 126, 134, 128, 134, 136, 142, 141, 140, 143, 136, 133, 135, 138, 134, 138, 132, 124, 139, 135, 135, 141, 137, 136, 141, 139, 140, 140, 139, 134, 144, 135, 140, 136, 138, 141, 136, 140, 138, 134, 139, 136, 143, 148, 133, 138, 144, 144, 136, 131, 134, 136, 143, 141, 137, 134, 141, 143, 140, 138, 138, 134, 137, 138, 135, 135, 140, 142, 142, 143, 134, 141, 144, 139, 144, 145, 136, 141, 132, 136, 141, 136, 139, 138, 134, 139, 132, 134, 136, 138, 135, 144, 136, 141, 137, 130, 140, 135, 140, 133, 143, 143, 139, 139, 145, 140, 137, 140, 146, 142, 139, 137, 135, 136, 136, 144, 137, 142, 134, 141, 130, 141, 142, 135, 147, 137, 136, 151, 137, 137, 140, 144, 143, 147, 141, 138, 136, 139, 137, 138, 142, 140, 146, 140, 128, 132, 133, 138, 137, 147, 141, 148, 140, 136, 146, 135, 138, 149, 144, 141, 136, 141, 137, 145, 144, 144, 142, 128, 135, 143, 137, 131, 137, 140, 134, 135, 141, 135, 142, 138, 145, 141, 137, 145, 135, 143, 139, 134, 134, 140, 130, 137, 136, 141, 137, 150, 135, 141, 145, 138, 145, 139, 133, 136, 140, 138, 133, 139, 138, 135, 139, 138, 144, 133, 137, 146, 141, 133, 136, 133, 132, 145, 139, 141, 131, 137, 151, 137, 115, 135, 138, 136, 143, 139, 135, 139, 140, 141, 141, 139, 145, 142, 144, 145, 147, 141, 141, 135, 139, 140, 142, 143, 135, 141, 141, 141, 144, 138, 144, 137, 142, 148, 131, 132, 142, 132, 135, 138, 136, 138, 133, 144, 146, 139, 139, 142, 140, 137, 145, 138, 138, 140, 138, 139, 135, 136, 144, 137, 138, 138, 136, 140, 140, 131, 134, 142, 141, 138, 145, 138, 142, 132, 145, 138, 140, 142, 138, 138, 145, 145, 130, 140, 138, 151, 138, 131, 139, 140, 135, 133, 142, 142, 140, 133, 138, 129, 134, 141, 138, 150, 130, 155, 141, 136, 146, 140, 140, 133, 144, 150, 143, 128, 139, 150, 138, 146, 132, 136, 128, 133, 133, 138, 136, 136, 126, 139, 136, 151, 137, 141, 139, 145, 145, 128, 134, 148, 145, 138, 142, 138, 140, 141, 148, 151, 135, 127, 139, 142, 146, 141, 122, 138, 158, 139, 146, 130, 135, 144, 142, 141, 142, 134, 131, 142, 133, 133, 130, 142, 146, 145, 138, 139, 144, 136, 141, 144, 135, 139, 141, 135, 138, 140, 138, 142, 145, 144, 137, 150, 136, 129, 136, 135, 138, 135, 138, 132, 140, 138, 140, 137, 148, 140, 132, 138, 133, 141, 129, 134, 147, 137, 135, 140, 135, 135, 134, 136, 139, 130, 138, 138, 137, 132, 141, 142, 132, 133, 140, 125, 146, 139, 130, 143, 138, 144, 130, 144, 141, 152, 141, 142, 137, 135, 137, 136, 140, 141, 138, 139, 139, 139, 140, 146, 147, 143, 146, 137, 143, 128, 128, 138, 140, 142, 143, 143, 142, 134, 135, 134, 139, 143, 142, 139, 141, 132, 132, 144, 139, 137, 138, 142, 137, 139, 135, 141, 147, 146, 141, 140, 139, 136, 147, 138, 140, 136, 133, 139, 135, 140, 138, 149, 140, 140, 154, 145, 140, 146, 149, 144, 136, 140, 137, 148, 137, 133, 133, 138, 134, 140, 139, 154, 136, 135, 143, 143, 130, 140, 134, 140, 137, 136, 150, 148, 146, 135, 140, 134, 134, 131, 136, 134, 137, 144, 127, 134, 144, 139, 143, 142, 139, 141, 135, 140, 139, 146, 141, 134, 134, 140, 145, 131, 139, 142, 133, 137, 137, 142, 144, 132, 134, 135, 142, 138, 145, 147, 139, 137, 135, 139, 134, 141, 139, 138, 133, 138, 135, 139, 138, 139, 138, 143, 137, 134, 145, 131, 134, 130, 130, 139, 124, 150, 139, 129, 139, 132, 156, 130, 140, 144, 135, 143, 148, 148, 125, 144, 137, 144, 138, 145, 140, 141, 139, 133, 133, 127, 136, 143, 140, 133, 135, 138, 148, 141, 133, 136, 148, 136, 136, 146, 144, 138, 144, 137, 142, 143, 141, 145, 138, 137, 148, 141, 146, 138, 137, 128, 142, 137, 145, 139, 140, 135, 134, 146, 138, 146, 148, 141, 143, 143, 142, 130, 127, 129, 145, 134, 145, 140, 128, 132, 144, 133, 132, 138, 134, 139, 140, 139, 149, 145, 140, 148, 135, 148, 136, 144, 143, 140, 141, 143, 141, 140, 142, 136, 136, 141, 135, 137, 153, 141, 132, 141, 138, 145, 129, 143, 143, 129, 125, 134, 142, 139, 150, 137, 127, 132, 141, 143, 141, 139, 137, 141, 137, 131, 146, 151, 139, 133, 144, 136, 142, 156, 123, 135, 142, 130, 129, 135, 150, 135, 130, 133, 135, 149, 144, 134, 143, 140, 144, 139, 137, 132, 141, 140, 135, 133, 141, 132, 144, 141, 142, 136, 141, 143, 135, 127, 137, 147, 141, 131, 149, 137, 140, 133, 131, 149, 134, 133, 140, 130, 134, 133, 134, 139, 140, 131, 139, 138, 139, 135, 123, 147, 147, 153, 130, 135, 145, 143, 139, 137, 136, 127, 141, 134, 138, 150, 141, 132, 139, 139, 140, 133, 148, 138, 142, 140, 142, 139, 140, 147, 150, 140, 138, 134, 143, 144, 136, 143, 136, 132, 153, 139, 139, 149, 126, 142, 145, 139, 138, 148, 130, 140, 143, 132, 141, 136, 143, 136, 138, 130, 139, 139, 137, 139, 134, 136, 147, 138, 141, 143, 141, 134, 142, 128, 147, 138, 138, 146, 141, 137, 139, 137, 138, 133, 136, 142, 145, 138, 146, 140, 140, 132, 146, 135, 139, 137, 135, 139, 138, 138, 136, 138, 126, 138, 143, 139, 143, 134, 139, 134, 143, 132, 143, 138, 142, 148, 148, 143, 135, 137, 144, 135, 143, 141, 138, 139, 134, 141, 142, 134, 140, 141, 141, 144, 137, 133, 144, 143, 138, 139, 140, 141, 143, 137, 144, 141, 137, 143, 134, 141, 135, 140, 137, 134, 142, 139, 141, 134, 141, 140, 139, 139, 138, 140, 139, 137, 144, 141, 129, 146, 139, 134, 140, 140, 140, 136, 147, 145, 138, 142, 138, 143, 142, 142, 140, 134, 135, 141, 145, 139, 136, 135, 142, 144, 141, 136, 148, 151, 135, 137, 130, 142, 146, 145, 136, 144, 143, 144, 135, 140, 135, 134, 135, 139, 135, 142, 133, 134, 141, 141, 137, 142, 144, 139, 135, 141, 137, 140, 132, 144, 140, 143, 145, 134, 140, 130, 143, 138, 136, 136, 130, 142, 138, 138, 140, 136, 134, 138, 132, 151, 148, 133, 144, 130, 141, 138, 138, 144, 140, 136, 143, 128, 144, 141, 136, 143, 133, 142, 139, 141, 138, 137, 137, 137, 145, 135, 134, 143, 133, 143, 142, 146, 136, 140, 141, 139, 147, 146, 135, 143, 146, 132, 139, 134, 147, 134, 137, 135, 143, 145, 146, 135, 140, 139, 124, 137, 142, 142, 144, 144, 142, 143, 138, 141, 136, 145, 145, 139, 138, 134, 144, 137, 145, 141, 138, 137, 138, 143, 137, 140, 141, 151, 143, 138, 151, 139, 132, 131, 137, 136, 138, 138, 141, 140, 141, 146, 134, 139, 138, 141, 138, 149, 143, 140, 140, 138, 137, 143, 138, 132, 146, 136, 141, 143, 140, 148, 137, 133, 143, 142, 139, 134, 139, 141, 138, 142, 145, 147, 131, 144, 146, 140, 136, 142, 144, 143, 139, 134, 140, 141, 139, 143, 140, 135, 139, 131, 141, 145, 142, 137, 137, 138, 141, 141, 138, 133, 134, 138, 138, 132, 145, 140, 139, 141, 140, 135, 141, 139, 150, 140, 140, 143, 137, 138, 127, 140, 135, 143, 135, 137, 128, 142, 145, 144, 139, 136, 147, 137, 143, 140, 139, 142, 144, 143, 134, 136, 138, 140, 140, 137, 143, 134, 143, 146, 144, 141, 136, 139, 127, 140, 131, 141, 142, 134, 136, 131, 147, 143, 145, 138, 148, 138, 131, 138, 138, 140, 143, 147, 137, 135, 135, 143, 135, 132, 140, 143, 142, 140, 136, 136, 143, 151, 140, 137, 140, 137, 137, 135, 142, 145, 132, 140, 129, 136, 142, 140, 140, 140, 139, 144, 139, 146, 143, 145, 139, 135, 138, 144, 143, 136, 139, 137, 143, 144, 140, 127, 145, 137, 139, 136, 144, 135, 143, 141, 134, 132, 151, 133, 151, 143, 143, 148, 137, 138, 133, 140, 137, 143, 141, 138, 144, 137, 134, 151, 136, 142, 137, 140, 129, 131, 141, 137, 136, 134, 134, 139, 140, 133, 133, 139, 136, 145, 132, 150, 144, 142, 129, 148, 138, 142, 140, 126, 136, 135, 144, 142, 133, 141, 137, 133, 137, 136, 145, 141, 146, 140, 136, 143, 138, 132, 148, 123, 143, 138, 141, 138, 129, 140, 141, 139, 144, 142, 146, 121, 132, 140, 140, 134, 142, 143, 146, 132, 121, 133, 140, 144, 141, 140, 137, 145, 142, 144, 137, 140, 138, 135, 134, 142, 143, 133, 134, 135, 136, 132, 136, 144, 137, 140, 133, 133, 144, 132, 146, 141, 134, 146, 151, 143, 138, 140, 132, 140, 145, 127, 144, 138, 137, 142, 132, 138, 144, 138, 147, 139, 146, 142, 137, 148, 131, 139, 141, 140, 134, 143, 141, 135, 153, 145, 146, 146, 145, 131, 140, 152, 147, 139, 142, 138, 136, 148, 133, 140, 135, 137, 158, 138, 136, 137, 136, 138, 138, 128, 134, 147, 137, 140, 143, 134, 142, 139, 142, 137, 140, 146, 145, 139, 131, 145, 141, 136, 141, 137, 133, 137, 143, 134, 142, 133, 139, 135, 137, 142, 140, 138, 144, 133, 139, 138, 139, 137, 129, 134, 134, 116, 131, 148, 134, 145, 137, 145, 143, 128, 148, 145, 138, 135, 146, 134, 135, 142, 142, 127, 133, 136, 150, 135, 143, 138, 146, 139, 140, 141, 140, 130, 134, 133, 136, 133, 136, 142, 132, 137, 143, 143, 134, 131, 142, 134, 143, 137, 143, 145, 134, 133, 128, 143, 144, 147, 134, 135, 131, 144, 145, 148, 144, 155, 128, 147, 138, 131, 141, 130, 134, 137, 131, 139, 143, 144, 144, 131, 136, 140, 145, 145, 140, 142, 134, 143, 142, 140, 137, 146, 127, 126, 146, 138, 126, 139, 134, 140, 131, 139, 133, 137, 146, 144, 142, 145, 140, 135, 147, 141, 138, 135, 133, 142, 132, 137, 142, 125, 130, 140, 145, 143, 147, 148, 142, 139, 141, 131, 146, 136, 144, 134, 138, 133, 137, 145, 144, 141, 147, 144, 129, 129, 142, 139, 138, 126, 144, 138, 134, 145, 136, 136, 133, 146, 144, 157, 131, 146, 140, 138, 144, 141, 133, 134, 149, 138, 132, 145, 141, 140, 131, 139, 138, 139, 132, 137, 133, 135, 139, 136, 138, 144, 143, 133, 139, 139, 140, 151, 145, 135, 137, 134, 151, 136, 141, 136, 146, 142, 144, 135, 145, 141, 146, 145, 144, 139, 142, 137, 147, 136, 140, 138, 141, 136, 123, 141, 125, 142, 144, 135, 138, 139, 134, 148, 138, 147, 129, 135, 139, 144, 137, 146, 142, 133, 146, 139, 137, 135, 139, 144, 135, 135, 148, 143, 140, 135, 141, 143, 137, 138, 146, 129, 141, 148, 138, 133, 138, 139, 132, 143, 129, 144, 144, 137, 147, 144, 142, 145, 133, 141, 138, 133, 142, 143, 138, 147, 156, 138, 143, 135, 138, 134, 140, 135, 143, 136, 148, 139, 143, 151, 144, 142, 135, 143, 136, 146, 143, 140, 141, 136, 131, 139, 141, 137, 131, 142, 139, 144, 145, 135, 154, 140, 134, 147, 140, 150, 140, 132, 137, 135, 136, 128, 144, 146, 140, 138, 141, 139, 131, 146, 133, 140, 149, 144, 134, 139, 142, 141, 138, 142, 142, 138, 139, 131, 135, 137, 139, 143, 137, 149, 135, 139, 141, 148, 142, 143, 136, 143, 152, 138, 135, 138, 143, 135, 136, 146, 135, 146, 136, 142, 143, 144, 141, 137, 138, 140, 139, 151, 140, 135, 135, 139, 150, 146, 143, 140, 143, 134, 129, 156, 135, 139, 134, 130, 138, 150, 138, 142, 142, 134, 147, 129, 143, 138, 150, 136, 144, 141, 141, 139, 139, 132, 134, 136, 143, 144, 162, 138, 135, 139, 137, 144, 144, 138, 133, 145, 139, 140, 134, 128, 134, 140, 140, 137, 143, 142, 137, 138, 148, 143, 136, 135, 136, 142, 140, 133, 138, 145, 136, 150, 143, 139, 153, 143, 130, 140, 152, 129, 139, 138, 136, 143, 140, 139, 138, 147, 147, 139, 137, 128, 137, 138, 128, 146, 141, 145, 133, 148, 139, 145, 127, 137, 140, 142, 135, 136, 144, 136, 147, 145, 139, 135, 142, 132, 137, 142, 139, 133, 137, 142, 138, 139, 132, 135, 133, 137, 146, 135, 143, 132, 136, 147, 135, 138, 137, 142, 147, 148, 135, 127, 137, 126, 135, 145, 138, 145, 140, 142, 136, 146, 144, 148, 135, 137, 134, 143, 133, 138, 136, 136, 136, 147, 139, 135, 138, 129, 150, 142, 147, 137, 134, 140, 144, 137, 142, 138, 142, 135, 136, 134, 135, 140, 144, 133, 139, 138, 135, 136, 136, 147, 146, 134, 145, 135, 137, 140, 136, 137, 136, 131, 140, 145, 134, 136, 132, 137, 143, 145, 137, 135, 134, 141, 148, 138, 136, 142, 143, 139, 132, 136, 139, 141, 146, 142, 137, 137, 145, 143, 137, 137, 131, 137, 132, 142, 140, 145, 138, 141, 128, 139, 138, 142, 138, 140, 143, 135, 144, 133, 141, 152, 140, 141, 137, 146, 143, 150, 139, 137, 133, 139, 152, 136, 141, 140, 135, 133, 143, 138, 139, 138, 141, 136, 143, 139, 140, 137, 131, 133, 144, 140, 135, 134, 136, 133, 143, 136, 138, 133, 129, 136, 130, 143, 142, 139, 132, 134, 133, 130, 138, 139, 146, 144, 139, 136, 143, 139, 136, 143, 145, 142, 133, 140, 149, 140, 139, 146, 113, 126, 138, 140, 144, 137, 143, 141, 152, 140, 145, 140, 140, 139, 150, 141, 139, 138, 129, 140, 135, 134, 147, 138, 141, 147, 147, 130, 140, 142, 139, 131, 139, 137, 140, 137, 132, 136, 138, 142, 147, 135, 138, 139, 136, 140, 138, 140, 139, 134, 136, 148, 138, 142, 129, 141, 138, 147, 136, 143, 143, 140, 134, 133, 139, 149, 140, 144, 144, 139, 141, 143, 139, 136, 138, 142, 140, 143, 137, 138, 146, 144, 136, 137, 139, 139, 145, 148, 141, 144, 136, 125, 143, 140, 134, 137, 142, 140, 143, 146, 140, 140, 141, 132, 141, 135, 139, 153, 135, 144, 140, 147, 141, 134, 141, 136, 139, 141, 143, 136, 134, 135, 143, 144, 136, 135, 139, 130, 133, 141, 147, 141, 146, 133, 141, 136, 143, 135, 135, 137, 137, 145, 141, 134, 136, 136, 144, 144, 143, 138, 140, 135, 145, 143, 137, 154, 134, 136, 143, 140, 135, 138, 126, 133, 144, 136, 135, 135, 137, 136, 148, 136, 138, 141, 139, 137, 134, 142, 137, 131, 131, 133, 140, 135, 144, 139, 130, 127, 137, 143, 134, 141, 138, 138, 137, 150, 135, 146, 139, 135, 138, 140, 137, 140, 142, 135, 143, 139, 146, 135, 135, 146, 154, 138, 144, 138, 124, 141, 142, 134, 136, 136, 141, 139, 141, 133, 135, 140, 138, 135, 143, 144, 139, 140, 139, 140, 142, 139, 132, 136, 143, 140, 140, 139, 135, 141, 135, 136, 134, 130, 137, 139, 146, 137, 138, 141, 140, 148, 143, 129, 134, 136, 137, 134, 139, 145, 141, 141, 135, 143, 142, 134, 139, 138, 131, 142, 140, 135, 137, 146, 149, 138, 141, 139, 140, 137, 138, 134, 146, 139, 138, 132, 138, 132, 143, 143, 150, 135, 141, 143, 132, 146, 144, 141, 154, 144, 140, 142, 139, 139, 146, 146, 144, 144, 143, 145, 148, 139, 134, 142, 143, 141, 137, 137, 136, 137, 144, 139, 144, 142, 147, 141, 143, 134, 135, 137, 141, 137, 149, 145, 141, 143, 141, 139, 144, 146, 141, 136, 137, 143, 138, 141, 146, 135, 134, 143, 138, 148, 137, 134, 138, 141, 133, 138, 132, 147, 138, 146, 136, 135, 144, 133, 145, 133, 141, 139, 134, 146, 133, 142, 135, 140, 128, 143, 138, 137, 142, 137, 140, 145, 139, 132, 134, 142, 146, 136, 140, 133, 136, 133, 139, 133, 145, 130, 145, 141, 135, 136, 140, 141, 136, 130, 146, 142, 142, 139, 145, 140, 133, 146, 141, 134, 142, 141, 135, 140, 136, 143, 137, 143, 137, 139, 138, 143, 145, 144, 134, 143, 141, 138, 144, 132, 142, 139, 133, 131, 140, 139, 136, 139, 143, 138, 145, 144, 141, 141, 140, 133, 132, 129, 136, 146, 144, 145, 142, 142, 135, 142, 143, 143, 144, 134, 137, 139, 135, 139, 133, 137, 133, 139, 148, 141, 141, 141, 141, 139, 147, 144, 143, 137, 130, 136, 141, 135, 140, 137, 138, 150, 134, 135, 136, 138, 140, 134, 144, 132, 123, 136, 136, 137, 142, 140, 146, 141, 133, 141, 133, 145, 140, 134, 132, 140, 144, 138, 145, 131, 142, 139, 141, 137, 134, 144, 137, 134, 145, 140, 139, 130, 136, 136, 136, 137, 134, 139, 137, 140, 140, 149, 138, 142, 135, 152, 134, 139, 145, 136, 145, 140, 133, 144, 135, 134, 149, 142, 131, 136, 131, 134, 147, 133, 133, 134, 141, 131, 132, 139, 142, 137, 136, 140, 139, 139, 137, 137, 141, 141, 144, 138, 139, 140, 151, 135, 137, 137, 141, 138, 137, 143, 137, 145, 134, 136, 136, 137, 138, 147, 141, 131, 137, 138, 141, 131, 136, 142, 137, 139, 146, 147, 138, 142, 149, 138, 141, 131, 144, 140, 141, 132, 135, 144, 140, 134, 147, 133, 139, 144, 144, 140, 141, 136, 138, 139, 139, 144, 138, 139, 145, 143, 145, 136, 138, 141, 140, 131, 137, 139, 142, 155, 140, 145, 139, 138, 137, 139, 138, 129, 146, 138, 142, 134, 141, 139, 135, 129, 148, 133, 147, 151, 145, 139, 144, 148, 140, 136, 136, 138, 134, 130, 132, 137, 141, 132, 133, 140, 135, 139, 135, 136, 144, 136, 138, 135, 135, 136, 138, 137, 134, 141, 134, 138, 129, 135, 148, 142, 144, 144, 150, 140, 142, 141, 135, 132, 143, 136, 144, 149, 135, 133, 140, 135, 148, 139, 146, 145, 131, 143, 138, 136, 141, 135, 141, 136, 146, 141, 140, 148, 146, 139, 138, 138, 144, 147, 133, 138, 150, 138, 138, 138, 133, 142, 133, 130, 147, 130, 147, 144, 137, 135, 131, 136, 135, 146, 147, 131, 136, 142, 130, 137, 138, 137, 133, 141, 137, 135, 131, 141, 136, 132, 135, 129, 136, 140, 137, 140, 137, 138, 133, 140, 139, 140, 132, 144, 146, 148, 138, 146, 130, 133, 130, 143, 138, 143, 134, 128, 135, 137, 130, 141, 137, 137, 132, 134, 150, 139, 136, 137, 140, 132, 142, 134, 137, 136, 150, 131, 133, 144, 136, 145, 140, 144, 140, 134, 138, 127, 137, 134, 133, 123, 133, 144, 138, 134, 144, 130, 140, 140, 138, 133, 139, 146, 136, 140, 139, 151, 141, 138, 137, 145, 145, 135, 136, 137, 130, 135, 145, 136, 135, 146, 146, 132, 142, 132, 135, 146, 145, 135, 147, 146, 124, 145, 137, 139, 144, 137, 138, 139, 135, 140, 133, 131, 141, 144, 139, 139, 141, 139, 136, 126, 141, 128, 141, 143, 140, 140, 140, 145, 138, 135, 139, 129, 134, 130, 139, 130, 139, 146, 143, 143, 139, 136, 139, 135, 138, 141, 143, 138, 130, 137, 143, 141, 137, 142, 150, 136, 143, 157, 142, 141, 139, 135, 137, 138, 138, 136, 146, 130, 136, 132, 141, 130, 136, 139, 140, 134, 141, 145, 133, 133, 138, 146, 142, 134, 132, 140, 141, 144, 136, 140, 133, 137, 140, 141, 131, 142, 137, 139, 132, 155, 138, 129, 143, 138, 134, 139, 136, 143, 136, 151, 145, 141, 143, 141, 137, 135, 130, 130, 139, 137, 142, 138, 141, 141, 136, 135, 132, 139, 144, 142, 148, 135, 135, 144, 152, 140, 125, 134, 135, 138, 148, 136, 127, 135, 138, 141, 131, 136, 144, 132, 153, 138, 146, 142, 132, 128, 145, 137, 147, 132, 139, 139, 130, 140, 144, 141, 149, 136, 148, 145, 135, 138, 143, 137, 137, 143, 140, 132, 132, 134, 141, 132, 139, 132, 138, 141, 146, 151, 133, 142, 138, 151, 132, 134, 146, 142, 138, 132, 128, 136, 145, 133, 137, 129, 140, 140, 140, 144, 141, 141, 137, 134, 147, 138, 127, 142, 141, 129, 151, 138, 131, 145, 126, 129, 138, 136, 145, 143, 143, 140, 131, 145, 134, 151, 142, 138, 143, 146, 134, 139, 142, 136, 137, 140, 135, 138, 143, 134, 142, 140, 114, 133, 143, 134, 149, 136, 142, 135, 140, 139, 136, 139, 134, 138, 133, 136, 145, 131, 135, 134, 139, 137, 139, 143, 138, 141, 139, 139, 136, 142, 137, 133, 138, 143, 140, 145, 143, 139, 138, 147, 142, 139, 139, 131, 147, 139, 139, 139, 135, 139, 140, 148, 128, 136, 146, 138, 142, 144, 142, 142, 138, 141, 132, 134, 146, 136, 137, 135, 142, 137, 140, 140, 137, 139, 146, 143, 145, 138, 134, 140, 144, 145, 136, 134, 131, 146, 135, 139, 133, 136, 143, 139, 144, 138, 138, 139, 143, 137, 140, 139, 134, 138, 134, 141, 134, 135, 139, 136, 138, 151, 143, 131, 133, 131, 143, 142, 134, 147, 141, 139, 143, 135, 140, 140, 136, 140, 141, 133, 135, 127, 137, 145, 128, 139, 143, 140, 138, 132, 135, 131, 140, 130, 145, 138, 138, 140, 135, 145, 144, 137, 134, 130, 135, 141, 137, 154, 147, 140, 142, 146, 149, 137, 140, 143, 142, 140, 134, 136, 140, 136, 133, 144, 133, 140, 138, 140, 140, 145, 142, 141, 147, 136, 133, 137, 147, 143, 151, 137, 136, 140, 138, 140, 137, 140, 132, 131, 135, 142, 137, 138, 139, 142, 146, 143, 140, 145, 137, 136, 132, 136, 136, 141, 149, 137, 138, 139, 133, 136, 137, 139, 146, 147, 148, 142, 131, 137, 141, 136, 138, 142, 142, 140, 141, 135, 128, 144, 136, 142, 150, 146, 135, 142, 148, 144, 135, 139, 129, 141, 140, 138, 135, 140, 139, 134, 129, 137, 133, 135, 132, 138, 141, 146, 145, 147, 134, 139, 146, 142, 141, 134, 141, 137, 138, 135, 140, 139, 146, 120, 140, 136, 141, 136, 146, 133, 141, 139, 140, 139, 141, 137, 138, 139, 131, 143, 137, 134, 146, 134, 132, 143, 145, 136, 135, 135, 142, 137, 142, 134, 137, 129, 142, 130, 132, 142, 143, 136, 135, 136, 142, 139, 124, 145, 133, 135, 137, 141, 140, 147, 132, 141, 142, 135, 138, 137, 141, 143, 142, 134, 140, 140, 132, 136, 144, 143, 135, 138, 146, 136, 134, 141, 137, 141, 141, 139, 144, 145, 133, 141, 138, 148, 133, 147, 134, 146, 135, 136, 140, 143, 142, 137, 138, 131, 140, 144, 142, 142, 132, 142, 143, 138, 138, 136, 139, 144, 135, 138, 135, 141, 142, 137, 139, 139, 136, 136, 140, 139, 134, 142, 141, 144, 136, 142, 132, 147, 142, 143, 135, 137, 142, 137, 133, 147, 136, 141, 138, 145, 148, 146, 144, 145, 143, 139, 148, 144, 147, 142, 139, 136, 140, 140, 148, 140, 138, 133, 146, 138, 145, 148, 132, 139, 141, 144, 146, 122, 139, 140, 132, 152, 133, 145, 147, 141, 132, 138, 147, 147, 135, 138, 138, 135, 138, 145, 135, 133, 137, 141, 140, 149, 138, 139, 146, 145, 134, 141, 161, 136, 137, 133, 144, 142, 137, 138, 142, 129, 139, 142, 137, 146, 144, 137, 142, 146, 147, 135, 149, 143, 141, 140, 133, 132, 136, 138, 138, 135, 134, 139, 134, 139, 145, 150, 141, 136, 133, 131, 142, 141, 127, 140, 136, 142, 134, 140, 137, 141, 140, 143, 134, 134, 139, 141, 139, 141, 136, 135, 135, 133, 135, 142, 141, 138, 142, 132, 129, 141, 137, 141, 132, 135, 145, 138, 143, 132, 136, 147, 129, 136, 142, 136, 135, 152, 142, 141, 141, 134, 139, 144, 146, 138, 144, 143, 133, 143, 135, 141, 137, 133, 146, 131, 138, 137, 147, 143, 133, 142, 139, 131, 132, 147, 138, 140, 136, 135, 147, 134, 136, 142, 134, 137, 141, 142, 136, 138, 145, 138, 134, 140, 142, 142, 136, 144, 130, 137, 139, 138, 143, 142, 136, 138, 139, 137, 138, 144, 142, 139, 142, 139, 145, 136, 136, 140, 139, 143, 134, 143, 130, 129, 138, 143, 143, 143, 137, 131, 137, 143, 142, 134, 139, 131, 138, 141, 144, 138, 144, 142, 133, 134, 138, 135, 140, 139, 142, 134, 132, 139, 131, 139, 142, 146, 131, 138, 146, 137, 135, 146, 139, 135, 143, 137, 138, 140, 141, 133, 143, 139, 137, 140, 143, 131, 133, 140, 142, 136, 132, 137, 129, 139, 146, 146, 136, 139, 134, 141, 145, 138, 140, 148, 140, 139, 129, 136, 133, 140, 135, 144, 147, 139, 135, 140, 138, 149, 142, 143, 135, 134, 146, 137, 143, 136, 143, 138, 137, 131, 147, 140, 135, 139, 138, 142, 140, 133, 134, 139, 144, 142, 133, 138, 131, 147, 136, 139, 137, 140, 132, 146, 140, 141, 143, 139, 135, 136, 140, 137, 145, 144, 140, 139, 133, 138, 137, 131, 138, 134, 150, 136, 135, 140, 140, 139, 139, 140, 138, 144, 136, 130, 144, 140, 142, 140, 141, 138, 133, 130, 140, 136, 143, 143, 141, 144, 145, 128, 139, 143, 141, 141, 143, 138, 141, 129, 134, 142, 136, 144, 130, 126, 135, 136, 145, 148, 129, 132, 143, 134, 135, 145, 138, 143, 140, 138, 135, 142, 142, 149, 147, 145, 137, 137, 132, 142, 142, 140, 138, 151, 134, 140, 136, 131, 144, 150, 149, 150, 144, 132, 134, 144, 141, 137, 138, 137, 144, 138, 139, 140, 143, 136, 137, 141, 139, 142, 150, 142, 139, 129, 139, 132, 127, 139, 130, 137, 140, 138, 135, 143, 138, 139, 138, 142, 133, 137, 133, 137, 146, 140, 135, 137, 144, 145, 144, 137, 137, 136, 132, 136, 138, 136, 133, 136, 142, 136, 146, 137, 142, 138, 144, 139, 137, 137, 138, 140, 139, 140, 143, 137, 138, 147, 134, 143, 134, 140, 138, 143, 135, 135, 137, 143, 141, 142, 142, 138, 140, 145, 139, 139, 135, 134, 138, 148, 138, 146, 144, 142, 137, 141, 139, 136, 138, 141, 138, 131, 141, 137, 133, 143, 142, 135, 141, 139, 139, 140, 133, 148, 144, 140, 136, 126, 141, 141, 135, 140, 134, 129, 139, 135, 138, 136, 142, 139, 140, 144, 140, 133, 139, 142, 135, 138, 128, 133, 136, 146, 131, 140, 135, 135, 137, 141, 137, 141, 139, 147, 144, 139, 149, 138, 139, 136, 148, 136, 142, 139, 142, 143, 140, 133, 140, 139, 139, 146, 143, 144, 142, 137, 139, 142, 146, 140, 137, 144, 138, 141, 138, 141, 146, 139, 136, 133, 142, 139, 138, 139, 132, 140, 145, 140, 145, 139, 136, 140, 143, 140, 136, 144, 137, 135, 136, 143, 137, 142, 137, 146, 136, 137, 135, 137, 139, 140, 136, 139, 138, 141, 139, 136, 134, 133, 141, 139, 139, 138, 144, 133, 141, 136, 134, 142, 139, 136, 134, 137, 140, 134, 139, 133, 139, 132, 143, 133, 137, 129, 142, 139, 133, 135, 134, 140, 134, 136, 139, 140, 134, 136, 137, 141, 140, 140, 132, 141, 142, 148, 146, 136, 143, 139, 140, 137, 132, 140, 145, 145, 136, 136, 144, 148, 135, 138, 144, 133, 135, 134, 135, 135, 134, 146, 140, 137, 136, 145, 133, 133, 138, 138, 138, 140, 143, 146, 143, 145, 128, 135, 143, 142, 135, 142, 134, 135, 143, 138, 134, 145, 136, 135, 141, 138, 135, 136, 139, 134, 136, 145, 139, 143, 139, 145, 144, 142, 141, 143, 131, 140, 136, 138, 147, 139, 137, 146, 138, 141, 142, 137, 138, 138, 140, 131, 138, 140, 139, 139, 143, 131, 140, 138, 128, 136, 146, 145, 143, 143, 131, 133, 148, 135, 139, 141, 140, 139, 145, 134, 138, 133, 146, 137, 138, 140, 134, 145, 138, 137, 152, 143, 133, 143, 138, 146, 135, 140, 131, 142, 142, 136, 127, 136, 141, 135, 139, 138, 141, 130, 142, 136, 140, 154, 142, 138, 138, 135, 133, 137, 138, 140, 135, 144, 133, 131, 137, 137, 147, 147, 139, 141, 138, 146, 133, 136, 137, 141, 132, 135, 140, 128, 149, 137, 140, 143, 133, 133, 144, 137, 134, 140, 142, 136, 139, 139, 147, 134, 137, 134, 140, 134, 144, 139, 139, 137, 143, 136, 141, 132, 133, 133, 144, 128, 141, 136, 139, 139, 137, 147, 145, 138, 145, 140, 141, 134, 146, 143, 136, 135, 133, 134, 136, 139, 130, 141, 130, 140, 132, 132, 133, 131, 136, 143, 140, 142, 143, 140, 135, 135, 141, 138, 139, 137, 134, 134, 146, 137, 137, 135, 141, 142, 145, 147, 135, 141, 144, 145, 138, 137, 132, 137, 139, 143, 139, 138, 147, 138, 145, 142, 137, 139, 142, 142, 143, 146, 138, 137, 143, 139, 136, 138, 123, 138, 135, 138, 137, 139, 139, 137, 139, 140, 133, 140, 144, 137, 145, 138, 145, 139, 142, 139, 137, 137, 145, 143, 138, 135, 135, 139, 143, 143, 138, 136, 144, 142, 137, 138, 147, 145, 140, 139, 139, 147, 141, 129, 143, 135, 140, 138, 140, 148, 135, 140, 135, 135, 140, 139, 136, 134, 141, 133, 136, 140, 143, 141, 143, 134, 141, 138, 130, 141, 143, 136, 138, 135, 140, 137, 138, 140, 141, 132, 142, 140, 135, 137, 134, 137, 136, 141, 139, 144, 138, 143, 138, 141, 133, 145, 144, 144, 140, 140, 132, 140, 135, 134, 135, 138, 127, 135, 136, 139, 135, 143, 135, 134, 140, 137, 142, 136, 138, 144, 144, 130, 137, 139, 135, 138, 136, 137, 139, 133, 140, 135, 139, 133, 134, 135, 141, 141, 143, 136, 135, 143, 136, 127, 143, 147, 134, 134, 138, 148, 129, 137, 129, 135, 141, 139, 141, 140, 143, 131, 149, 135, 128, 136, 133, 141, 140, 150, 143, 139, 135, 130, 139, 138, 137, 137, 136, 140, 133, 142, 138, 139, 136, 139, 144, 142, 136, 141, 142, 139, 140, 144, 147, 139, 133, 123, 138, 143, 143, 148, 139, 137, 142, 139, 135, 130, 140, 138, 139, 131, 135, 139, 150, 146, 141, 152, 139, 133, 151, 136, 129, 140, 134, 143, 134, 145, 145, 144, 136, 137, 144, 147, 138, 131, 139, 140, 131, 129, 142, 146, 131, 146, 137, 144, 139, 137, 130, 140, 135, 137, 140, 141, 129, 144, 144, 140, 123, 143, 141, 137, 146, 134, 136, 155, 144, 134, 141, 140, 137, 134, 158, 144, 135, 134, 140, 135, 143, 137, 142, 134, 135, 147, 144, 143, 149, 136, 141, 146, 139, 136, 138, 134, 130, 142, 139, 134, 147, 138, 135, 137, 133, 144, 140, 139, 142, 134, 143, 140, 140, 138, 138, 142, 134, 140, 133, 147, 141, 126, 141, 137, 132, 140, 139, 134, 143, 136, 140, 139, 141, 138, 136, 145, 138, 146, 141, 145, 137, 142, 144, 134, 139, 134, 132, 136, 145, 143, 136, 147, 129, 140, 146, 138, 140, 136, 139, 144, 133, 146, 144, 139, 146, 135, 131, 144, 138, 132, 151, 141, 134, 137, 134, 138, 130, 140, 137, 132, 139, 141, 139, 136, 133, 143, 140, 139, 134, 135, 139, 138, 141, 141, 143, 140, 137, 137, 134, 129, 136, 131, 140, 139, 140, 139, 150, 146, 148, 142, 138, 142, 144, 132, 129, 133, 143, 137, 137, 138, 142, 133, 139, 138, 130, 130, 143, 143, 136, 130, 143, 151, 138, 133, 141, 138, 136, 132, 135, 133, 146, 145, 151, 141, 144, 139, 136, 136, 143, 139, 133, 137, 140, 134, 146, 136, 135, 139, 140, 128, 139, 141, 134, 138, 135, 145, 137, 145, 138, 144, 131, 137, 139, 137, 144, 144, 145, 142, 150, 152, 135, 137, 143, 132, 137, 138, 130, 148, 138, 137, 144, 146, 137, 147, 140, 133, 132, 142, 144, 132, 142, 149, 141, 132, 142, 145, 141, 137, 129, 143, 134, 147, 136, 142, 142, 136, 144, 137, 138, 136, 145, 144, 146, 137, 131, 138, 133, 136, 143, 134, 137, 142, 121, 127, 140, 139, 138, 137, 146, 142, 137, 134, 136, 136, 139, 142, 146, 133, 136, 138, 138, 137, 132, 128, 131, 142, 135, 128, 139, 142, 141, 137, 139, 139, 146, 124, 140, 142, 135, 140, 132, 142, 140, 139, 142, 141, 137, 142, 134, 137, 143, 134, 138, 136, 143, 146, 138, 146, 135, 150, 134, 133, 134, 127, 144, 151, 138, 139, 140, 134, 140, 139, 139, 146, 140, 148, 138, 136, 136, 141, 137, 147, 138, 132, 138, 133, 140, 144, 155, 144, 151, 139, 138, 138, 134, 135, 143, 134, 136, 129, 151, 141, 139, 132, 142, 144, 141, 139, 139, 134, 144, 133, 127, 140, 142, 133, 142, 143, 148, 146, 149, 135, 142, 131, 139, 139, 138, 148, 143, 133, 141, 134, 139, 140, 150, 138, 143, 141, 143, 142, 134, 134, 139, 134, 138, 132, 137, 137, 137, 140, 136, 148, 144, 149, 140, 134, 139, 142, 147, 147, 141, 138, 129, 139, 135, 137, 133, 134, 138, 142, 143, 137, 141, 145, 134, 139, 132, 135, 132, 130, 145, 143, 137, 136, 136, 137, 143, 132, 136, 139, 142, 136, 137, 138, 137, 123, 150, 130, 140, 133, 142, 136, 143, 141, 144, 146, 140, 139, 135, 142, 136, 139, 143, 140, 144, 136, 137, 131, 144, 136, 151, 130, 135, 139, 140, 139, 139, 138, 133, 146, 141, 139, 138, 142, 134, 156, 141, 135, 129, 151, 144, 148, 141, 137, 138, 146, 131, 140, 133, 136, 134, 141, 129, 137, 143, 145, 144, 133, 138, 140, 134, 140, 141, 143, 137, 137, 139, 132, 138, 139, 143, 142, 142, 137, 136, 131, 135, 141, 138, 150, 136, 154, 136, 137, 135, 136, 141, 134, 149, 140, 130, 132, 136, 134, 140, 147, 151, 143, 137, 132, 136, 132, 138, 142, 139, 133, 139, 142, 137, 154, 135, 139, 142, 141, 132, 149, 143, 146, 145, 146, 138, 139, 145, 138, 140, 140, 138, 133, 134, 142, 137, 135, 137, 134, 150, 139, 131, 139, 141, 138, 141, 136, 146, 139, 131, 133, 144, 143, 139, 137, 130, 127, 143, 137, 142, 131, 135, 134, 139, 133, 142, 143, 132, 134, 135, 137, 138, 139, 138, 132, 132, 143, 128, 141, 134, 141, 131, 144, 137, 139, 138, 132, 145, 140, 139, 134, 145, 134, 148, 144, 129, 144, 139, 136, 138, 138, 144, 142, 143, 143, 138, 143, 143, 141, 139, 145, 143, 145, 142, 134, 129, 141, 141, 141, 142, 144, 136, 148, 137, 137, 144, 138, 143, 150, 133, 143, 139, 134, 141, 137, 136, 153, 136, 140, 139, 133, 137, 136, 138, 137, 148, 144, 144, 139, 132, 138, 149, 143, 133, 135, 141, 131, 157, 140, 150, 143, 139, 133, 134, 135, 138, 146, 129, 147, 141, 143, 136, 134, 139, 142, 140, 142, 132, 134, 143, 137, 141, 138, 142, 130, 137, 141, 138, 134, 135, 135, 137, 138, 142, 150, 143, 136, 135, 142, 138, 137, 140, 137, 137, 139, 137, 142, 142, 138, 140, 126, 144, 149, 138, 137, 141, 139, 149, 139, 136, 144, 137, 133, 138, 139, 139, 145, 137, 138, 144, 148, 146, 140, 134, 134, 142, 145, 135, 130, 143, 139, 141, 142, 149, 138, 134, 140, 138, 130, 132, 141, 135, 147, 140, 137, 137, 139, 134, 145, 139, 142, 130, 142, 138, 129, 146, 129, 144, 140, 145, 142, 138, 144, 142, 133, 140, 133, 133, 139, 151, 147, 148, 135, 144, 137, 143, 136, 142, 138, 139, 146, 138, 139, 144, 145, 144, 141, 150, 137, 143, 134, 132, 136, 141, 145, 138, 144, 134, 141, 140, 142, 135, 148, 138, 134, 139, 147, 141, 135, 130, 137, 141, 132, 129, 140, 140, 135, 141, 139, 143, 136, 137, 144, 138, 132, 146, 130, 142, 148, 143, 147, 154, 140, 142, 139, 139, 133, 131, 142, 140, 138, 144, 136, 140, 139, 130, 141, 137, 151, 136, 139, 126, 134, 138, 137, 142, 145, 142, 133, 139, 141, 133, 127, 132, 137, 141, 125, 141, 140, 139, 144, 149, 134, 137, 146, 136, 138, 135, 135, 139, 143, 147, 136, 136, 130, 146, 132, 142, 137, 132, 138, 134, 146, 145, 145, 134, 133, 135, 143, 134, 146, 136, 138, 150, 129, 136, 142, 133, 141, 150, 136, 148, 136, 144, 146, 143, 144, 135, 139, 145, 149, 139, 139, 145, 136, 148, 150, 140, 142, 129, 133, 138, 138, 131, 143, 140, 135, 145, 138, 133, 142, 147, 141, 136, 141, 134, 142, 151, 135, 141, 139, 127, 146, 141, 144, 137, 147, 140, 145, 131, 135, 144, 145, 132, 150, 145, 133, 132, 144, 139, 133, 130, 135, 145, 136, 139, 139, 148, 153, 143, 146, 137, 139, 135, 142, 135, 146, 138, 132, 142, 131, 155, 135, 147, 147, 139, 133, 136, 134, 136, 122, 147, 140, 134, 137, 134, 143, 145, 128, 136, 141, 136, 140, 141, 143, 138, 141, 135, 133, 141, 148, 142, 135, 139, 139, 146, 149, 134, 141, 146, 133, 145, 144, 139, 142, 138, 139, 142, 137, 147, 132, 130, 137, 158, 130, 142, 143, 150, 136, 134, 145, 133, 134, 140, 146, 134, 143, 138, 140, 146, 139, 139, 130, 138, 141, 140, 136, 141, 135, 133, 132, 138, 139, 134, 137, 143, 133, 143, 146, 138, 143, 133, 132, 133, 133, 134, 144, 140, 150, 148, 142, 130, 150, 133, 146, 132, 146, 141, 146, 142, 139, 139, 136, 130, 133, 144, 128, 141, 143, 142, 154, 139, 133, 139, 153, 127, 132, 134, 133, 143, 137, 141, 143, 141, 136, 144, 135, 148, 143, 136, 138, 138, 127, 129, 140, 135, 145, 146, 145, 134, 134, 136, 142, 140, 137, 140, 151, 149, 148, 143, 138, 143, 131, 143, 140, 140, 144, 144, 136, 127, 146, 141, 133, 136, 143, 141, 140, 131, 130, 140, 141, 140, 137, 136, 135, 131, 136, 142, 150, 141, 132, 140, 140, 139, 134, 135, 137, 136, 133, 141, 146, 139, 135, 137, 136, 135, 143, 140, 140, 138, 142, 142, 140, 138, 148, 142, 148, 141, 136, 138, 138, 130, 133, 138, 132, 139, 149, 135, 138, 135, 138, 136, 128, 137, 133, 138, 130, 140, 129, 142, 142, 147, 140, 136, 139, 134, 146, 141, 141, 140, 130, 140, 139, 131, 146, 147, 134, 135, 146, 142, 145, 144, 139, 143, 138, 130, 137, 142, 140, 135, 128, 134, 136, 136, 128, 138, 138, 134, 137, 141, 142, 145, 129, 135, 136, 136, 147, 140, 141, 135, 144, 136, 136, 138, 139, 135, 136, 127, 134, 135, 142, 146, 133, 137, 145, 137, 136, 133, 142, 136, 136, 134, 147, 140, 133, 144, 136, 143, 140, 139, 146, 145, 136, 148, 136, 138, 138, 132, 137, 144, 144, 130, 135, 133, 139, 135, 141, 139, 139, 128, 134, 133, 141, 146, 137, 141, 135, 135, 139, 136, 139, 140, 135, 144, 143, 140, 144, 136, 138, 138, 134, 141, 136, 142, 137, 135, 139, 141, 139, 138, 135, 133, 140, 143, 132, 141, 137, 141, 131, 141, 140, 135, 134, 140, 137, 140, 138, 141, 143, 149, 138, 139, 137, 136, 144, 141, 148, 139, 137, 137, 134, 138, 141, 138, 138, 132, 141, 131, 140, 140, 136, 137, 140, 137, 135, 140, 137, 138, 144, 138, 144, 140, 133, 135, 137, 141, 142, 139, 140, 137, 137, 140, 142, 142, 136, 139, 134, 140, 137, 138, 141, 134, 135, 152, 136, 138, 135, 135, 136, 139, 135, 140, 139, 134, 138, 143, 139, 138, 141, 144, 140, 136, 137, 138, 135, 139, 135, 135, 143, 135, 140, 138, 136, 141, 135, 139, 132, 140, 140, 132, 133, 141, 144, 137, 143, 141, 137, 145, 146, 136, 133, 140, 135, 135, 135, 136, 131, 143, 140, 137, 139, 137, 145, 141, 141, 139, 139, 136, 138, 134, 141, 139, 140, 139, 142, 134, 140, 135, 142, 137, 143, 132, 143, 135, 139, 141, 136, 146, 139, 138, 139, 142, 144, 136, 142, 138, 137, 139, 144, 136, 139, 134, 138, 139, 142, 146, 144, 148, 141, 140, 141, 141, 134, 131, 145, 136, 142, 137, 137, 143, 136, 141, 136, 143, 147, 137, 136, 133, 139, 141, 139, 146, 136, 148, 143, 147, 144, 146, 140, 140, 139, 139, 140, 154, 134, 146, 134, 140, 138, 141, 137, 143, 138, 139, 138, 133, 140, 139, 139, 142, 137, 134, 137, 134, 140, 140, 145, 142, 143, 137, 136, 141, 146, 147, 134, 141, 136, 138, 139, 133, 134, 140, 138, 140, 140, 144, 140, 142, 136, 138, 136, 142, 133, 139, 146, 138, 138, 139, 137, 145, 138, 143, 135, 138, 127, 141, 139, 133, 138, 135, 142, 139, 136, 140, 141, 144, 137, 143, 136, 132, 139, 133, 137, 139, 136, 144, 140, 136, 137, 137, 137, 149, 137, 134, 134, 146, 136, 134, 137, 136, 135, 143, 143, 140, 142, 143, 135, 141, 143, 131, 137, 139, 144, 134, 142, 136, 141, 142, 138, 139, 140, 140, 133, 147, 139, 143, 137, 139, 139, 136, 138, 140, 137, 137, 137, 142, 142, 138, 143, 143, 149, 138, 140, 146, 138, 137, 139, 139, 150, 135, 134, 136, 136, 133, 139, 138, 140, 139, 140, 142, 139, 139, 140, 143, 141, 135, 133, 141, 137, 132, 140, 132, 142, 141, 134, 138, 146, 140, 141, 132, 138, 142, 132, 147, 139, 141, 137, 140, 138, 138, 139, 140, 135, 135, 138, 140, 151, 137, 144, 136, 133, 131, 136, 137, 142, 146, 138, 141, 136, 142, 136, 139, 138, 143, 141, 134, 143, 135, 139, 140, 139, 140, 144, 140, 135, 146, 133, 132, 139, 134, 134, 142, 139, 140, 139, 138, 142, 133, 141, 144, 136, 143, 135, 141, 140, 140, 135, 141, 136, 137, 140, 139, 138, 141, 138, 146, 145, 138, 133, 142, 145, 152, 137, 133, 138, 135, 136, 136, 141, 140, 140, 143, 135, 144, 134, 148, 138, 142, 144, 142, 143, 143, 136, 141, 134, 136, 140, 139, 150, 143, 141, 145, 140, 144, 134, 134, 138, 134, 149, 149, 130, 134, 143, 136, 150, 135, 132, 141, 137, 146, 127, 137, 145, 138, 138, 127, 140, 141, 136, 136, 130, 138, 137, 141, 132, 138, 137, 138, 140, 135, 137, 140, 139, 136, 148, 137, 147, 135, 138, 136, 137, 142, 138, 138, 138, 138, 131, 137, 142, 140, 137, 137, 135, 139, 131, 140, 146, 139, 139, 144, 135, 136, 138, 140, 135, 136, 121, 135, 140, 142, 128, 149, 129, 153, 143, 137, 140, 141, 137, 133, 140, 141, 137, 134, 149, 139, 141, 136, 137, 138, 141, 133, 141, 133, 143, 139, 137, 139, 130, 141, 138, 139, 136, 139, 136, 145, 137, 133, 146, 145, 141, 138, 144, 142, 140, 149, 137, 137, 134, 141, 140, 137, 139, 138, 143, 135, 141, 147, 128, 123, 146, 141, 136, 154, 142, 139, 140, 145, 144, 133, 132, 140, 134, 144, 135, 137, 138, 136, 143, 138, 133, 138, 143, 147, 149, 139, 149, 131, 143, 132, 131, 138, 138, 136, 134, 133, 128, 132, 135, 136, 135, 138, 139, 139, 134, 143, 140, 139, 134, 136, 139, 139, 142, 135, 135, 134, 135, 135, 137, 140, 137, 134, 133, 134, 144, 139, 142, 147, 134, 137, 138, 139, 136, 145, 142, 138, 135, 134, 143, 137, 148, 138, 141, 131, 132, 134, 143, 135, 149, 141, 140, 139, 132, 133, 138, 132, 134, 136, 143, 144, 137, 143, 137, 132, 137, 145, 146, 141, 137, 132, 138, 142, 141, 139, 141, 136, 146, 135, 133, 128, 141, 136, 133, 137, 141, 134, 135, 137, 141, 136, 139, 145, 145, 134, 140, 143, 140, 130, 138, 131, 131, 135, 136, 139, 135, 131, 142, 149, 143, 138, 141, 138, 143, 145, 141, 141, 133, 141, 132, 138, 141, 140, 135, 147, 145, 138, 135, 145, 136, 140, 142, 136, 139, 135, 135, 135, 139, 139, 134, 134, 139, 141, 142, 136, 132, 143, 138, 140, 139, 145, 140, 139, 142, 129, 134, 136, 142, 136, 141, 135, 141, 137, 144, 140, 142, 139, 134, 133, 132, 136, 137, 126, 134, 139, 135, 138, 144, 134, 137, 138, 141, 137, 137, 128, 141, 136, 135, 129, 128, 141, 139, 147, 143, 136, 139, 145, 138, 136, 144, 144, 138, 142, 146, 143, 140, 138, 139, 133, 137, 132, 140, 146, 133, 135, 133, 135, 144, 135, 146, 139, 140, 133, 136, 137, 139, 138, 142, 147, 144, 135, 140, 144, 137, 139, 138, 149, 142, 136, 139, 137, 141, 138, 134, 140, 140, 132, 144, 137, 143, 138, 133, 135, 139, 144, 138, 139, 139, 142, 135, 143, 136, 138, 133, 139, 146, 143, 135, 138, 136, 140, 143, 142, 140, 136, 140, 137, 138, 137, 132, 145, 140, 136, 140, 135, 132, 146, 136, 143, 136, 140, 136, 136, 134, 132, 132, 133, 137, 140, 132, 138, 131, 133, 135, 136, 137, 137, 138, 147, 134, 143, 140, 138, 136, 135, 133, 142, 133, 143, 136, 146, 135, 134, 140, 143, 139, 141, 135, 130, 141, 144, 137, 140, 147, 139, 143, 140, 134, 138, 131, 141, 149, 138, 145, 132, 132, 142, 136, 144, 144, 141, 128, 145, 131, 136, 139, 133, 138, 147, 143, 139, 139, 133, 136, 144, 148, 139, 136, 144, 146, 146, 137, 136, 142, 136, 140, 135, 136, 136, 140, 134, 132, 162, 135, 144, 139, 132, 141, 139, 126, 134, 140, 137, 134, 134, 134, 149, 134, 144, 142, 133, 153, 141, 139, 140, 138, 142, 138, 138, 135, 140, 143, 137, 136, 136, 137, 142, 138, 134, 135, 136, 137, 129, 138, 133, 139, 139, 132, 132, 142, 134, 135, 139, 131, 133, 144, 138, 139, 145, 136, 128, 142, 134, 132, 131, 142, 131, 143, 134, 141, 139, 139, 145, 148, 134, 147, 137, 140, 136, 140, 135, 133, 135, 140, 139, 143, 140, 137, 135, 136, 137, 130, 137, 132, 133, 137, 133, 134, 136, 135, 134, 136, 141, 137, 133, 146, 138, 140, 142, 147, 137, 139, 135, 140, 144, 142, 150, 138, 146, 147, 138, 137, 131, 142, 138, 146, 138, 134, 132, 128, 138, 142, 140, 141, 142, 134, 141, 146, 136, 136, 145, 136, 135, 135, 138, 143, 131, 138, 138, 134, 144, 143, 138, 136, 137, 139, 135, 137, 136, 139, 133, 135, 133, 141, 137, 146, 129, 138, 142, 153, 128, 143, 126, 143, 129, 133, 141, 139, 141, 134, 131, 131, 137, 142, 140, 141, 150, 137, 135, 137, 141, 137, 130, 143, 144, 136, 138, 139, 142, 136, 145, 138, 133, 135, 147, 142, 143, 133, 136, 136, 138, 137, 137, 137, 141, 143, 138, 143, 138, 134, 131, 132, 134, 135, 136, 135, 144, 135, 143, 140, 139, 136, 143, 136, 129, 136, 134, 136, 140, 145, 139, 146, 137, 139, 135, 132, 145, 138, 136, 144, 134, 136, 138, 145, 135, 142, 131, 136, 140, 136, 134, 141, 133, 134, 134, 134, 135, 142, 135, 140, 140, 139, 136, 127, 143, 142, 141, 145, 135, 155, 144, 135, 127, 134, 145, 137, 137, 151, 137, 134, 141, 139, 137, 137, 138, 135, 138, 136, 140, 136, 134, 126, 128, 143, 132, 130, 140, 132, 140, 143, 131, 148, 139, 136, 141, 147, 130, 135, 142, 142, 138, 127, 148, 123, 129, 140, 140, 140, 138, 145, 136, 142, 152, 136, 138, 135, 132, 144, 135, 139, 137, 140, 147, 136, 140, 135, 138, 136, 147, 130, 136, 137, 144, 133, 144, 137, 135, 133, 138, 131, 133, 145, 124, 139, 133, 134, 138, 152, 136, 135, 132, 145, 148, 140, 141, 136, 129, 136, 134, 135, 133, 145, 140, 136, 139, 139, 134, 144, 137, 136, 132, 139, 134, 136, 134, 132, 130, 132, 142, 136, 137, 139, 143, 142, 130, 140, 140, 135, 132, 136, 139, 138, 132, 142, 137, 139, 134, 145, 141, 134, 142, 144, 144, 140, 139, 131, 139, 132, 139, 132, 141, 138, 143, 132, 142, 137, 142, 141, 137, 137, 135, 153, 139, 140, 140, 131, 141, 136, 148, 130, 140, 140, 136, 144, 145, 146, 142, 139, 147, 147, 133, 141, 142, 145, 138, 140, 134, 135, 151, 136, 140, 137, 141, 146, 137, 138, 151, 139, 135, 136, 139, 130, 140, 127, 135, 139, 135, 153, 136, 139, 141, 147, 142, 132, 142, 129, 147, 130, 129, 149, 133, 143, 133, 140, 132, 143, 138, 139, 146, 139, 139, 141, 135, 144, 134, 134, 134, 135, 136, 143, 147, 138, 140, 135, 136, 143, 143, 138, 137, 131, 137, 142, 145, 132, 141, 139, 137, 160, 141, 153, 151, 140, 142, 135, 141, 147, 144, 141, 138, 134, 134, 151, 141, 129, 148, 131, 140, 136, 138, 144, 138, 142, 132, 138, 134, 129, 144, 134, 134, 149, 142, 135, 143, 136, 136, 140, 133, 141, 131, 137, 130, 132, 134, 135, 147, 138, 151, 141, 135, 130, 141, 141, 145, 130, 154, 138, 138, 129, 143, 141, 152, 144, 139, 136, 143, 134, 135, 137, 139, 143, 141, 139, 135, 132, 143, 139, 138, 132, 139, 130, 140, 143, 143, 139, 134, 141, 133, 136, 134, 140, 143, 145, 138, 140, 138, 135, 143, 136, 138, 145, 133, 133, 137, 143, 139, 151, 140, 134, 131, 138, 133, 140, 143, 143, 141, 146, 131, 140, 139, 128, 136, 139, 133, 130, 131, 142, 142, 138, 147, 145, 138, 140, 139, 135, 129, 138, 141, 130, 143, 133, 141, 143, 139, 146, 139, 141, 138, 135, 138, 138, 135, 139, 143, 126, 128, 135, 138, 136, 134, 142, 143, 139, 148, 140, 127, 131, 131, 144, 132, 138, 144, 133, 136, 136, 135, 141, 143, 132, 131, 139, 131, 145, 145, 141, 129, 145, 134, 134, 142, 134, 136, 140, 136, 127, 150, 145, 137, 136, 130, 144, 140, 135, 134, 138, 144, 145, 145, 142, 134, 143, 148, 138, 139, 144, 138, 150, 144, 141, 156, 135, 139, 142, 134, 142, 133, 146, 145, 140, 134, 131, 128, 131, 145, 128, 136, 133, 148, 135, 134, 136, 136, 138, 138, 138, 140, 132, 144, 137, 145, 139, 137, 136, 135, 132, 138, 145, 141, 145, 149, 141, 142, 143, 137, 141, 128, 136, 141, 146, 136, 140, 136, 130, 150, 134, 139, 130, 139, 139, 141, 135, 136, 141, 138, 143, 144, 151, 139, 148, 135, 136, 143, 130, 140, 137, 143, 139, 150, 138, 141, 133, 138, 142, 134, 146, 132, 148, 134, 150, 130, 139, 143, 140, 138, 143, 133, 139, 146, 143, 133, 135, 146, 144, 132, 135, 149, 146, 134, 144, 134, 138, 135, 132, 140, 139, 142, 141, 136, 140, 127, 134, 133, 138, 139, 132, 134, 134, 143, 137, 136, 135, 139, 139, 145, 146, 144, 133, 137, 146, 142, 142, 130, 133, 139, 136, 126, 135, 129, 144, 134, 141, 140, 140, 130, 142, 135, 140, 132, 134, 139, 137, 137, 133, 143, 139, 134, 137, 141, 141, 143, 143, 144, 132, 140, 140, 141, 141, 139, 139, 140, 129, 149, 142, 129, 142, 140, 136, 145, 143, 141, 144, 149, 124, 140, 139, 141, 141, 143, 138, 135, 142, 142, 136, 141, 140, 142, 142, 135, 148, 141, 138, 139, 136, 138, 142, 138, 145, 138, 148, 145, 141, 139, 140, 136, 132, 137, 143, 135, 139, 138, 137, 138, 136, 143, 132, 133, 136, 138, 138, 140, 133, 133, 135, 138, 137, 138, 139, 138, 138, 143, 139, 134, 135, 139, 128, 138, 141, 138, 146, 137, 146, 138, 144, 136, 136, 139, 141, 133, 138, 139, 137, 135, 135, 142, 133, 146, 143, 132, 143, 134, 144, 137, 142, 140, 148, 140, 141, 136, 133, 144, 139, 137, 133, 145, 140, 136, 142, 135, 131, 137, 145, 138, 141, 135, 142, 135, 143, 134, 140, 136, 130, 139, 141, 138, 139, 139, 137, 135, 133, 134, 144, 143, 142, 135, 137, 140, 145, 134, 137, 135, 140, 146, 144, 140, 147, 133, 144, 138, 139, 136, 134, 136, 139, 142, 141, 131, 139, 148, 136, 137, 140, 138, 140, 143, 136, 134, 138, 145, 140, 138, 143, 138, 137, 139, 135, 144, 139, 137, 140, 132, 138, 136, 135, 138, 144, 134, 134, 137, 142, 142, 136, 135, 144, 137, 137, 130, 135, 123, 136, 147, 141, 143, 143, 138, 141, 136, 141, 137, 143, 138, 132, 137, 137, 143, 134, 142, 140, 141, 134, 141, 136, 138, 138, 143, 142, 138, 146, 146, 135, 151, 131, 134, 139, 138, 138, 138, 132, 141, 138, 136, 141, 139, 137, 145, 140, 132, 129, 135, 140, 133, 148, 135, 139, 144, 143, 139, 137, 136, 137, 138, 137, 138, 139, 139, 132, 130, 139, 138, 136, 136, 140, 138, 137, 141, 143, 130, 140, 140, 137, 136, 146, 130, 133, 140, 137, 141, 142, 143, 132, 141, 139, 139, 139, 138, 138, 139, 130, 137, 146, 139, 140, 145, 130, 138, 139, 139, 139, 140, 138, 132, 140, 136, 144, 138, 140, 140, 137, 139, 139, 145, 135, 142, 137, 131, 143, 138, 140, 136, 140, 134, 137, 142, 137, 135, 137, 128, 142, 136, 133, 129, 138, 137, 146, 143, 140, 141, 141, 136, 141, 142, 139, 139, 133, 138, 138, 141, 146, 131, 137, 139, 145, 139, 137, 145, 139, 136, 145, 138, 140, 136, 134, 144, 136, 142, 150, 143, 134, 138, 147, 135, 138, 139, 138, 136, 133, 137, 140, 132, 133, 132, 142, 136, 139, 149, 145, 146, 141, 142, 133, 139, 139, 140, 139, 143, 138, 143, 145, 142, 142, 143, 142, 147, 137, 137, 144, 137, 141, 143, 132, 139, 146, 141, 137, 139, 138, 134, 133, 142, 136, 139, 141, 135, 139, 145, 140, 140, 148, 147, 135, 137, 140, 145, 139, 139, 137, 139, 144, 142, 141, 142, 140, 136, 136, 140, 138, 134, 138, 140, 139, 139, 136, 139, 138, 137, 136, 141, 141, 140, 141, 134, 136, 135, 139, 142, 142, 148, 139, 139, 141, 138, 138, 137, 139, 138, 133, 132, 138, 142, 143, 144, 141, 145, 139, 140, 139, 136, 143, 141, 134, 143, 143, 146, 138, 137, 131, 146, 136, 137, 135, 150, 145, 131, 138, 138, 137, 139, 136, 143, 137, 139, 140, 134, 133, 133, 138, 137, 139, 140, 141, 143, 130, 151, 139, 140, 137, 134, 141, 137, 138, 146, 140, 140, 142, 145, 140, 136, 131, 132, 138, 136, 141, 139, 134, 136, 127, 148, 139, 136, 139, 134, 142, 144, 138, 144, 130, 139, 136, 137, 136, 142, 141, 141, 135, 141, 138, 139, 151, 145, 138, 137, 140, 133, 141, 143, 142, 141, 142, 147, 140, 138, 131, 142, 143, 136, 142, 133, 133, 135, 139, 139, 142, 139, 145, 134, 146, 143, 148, 140, 141, 134, 138, 140, 136, 135, 135, 139, 147, 140, 141, 133, 140, 140, 132, 137, 132, 139, 134, 132, 138, 140, 140, 129, 138, 135, 137, 135, 139, 133, 142, 142, 152, 141, 138, 135, 129, 146, 142, 141, 133, 140, 127, 145, 139, 141, 132, 138, 135, 137, 141, 133, 132, 132, 143, 155, 154, 138, 136, 134, 133, 136, 138, 136, 132, 135, 131, 133, 140, 127, 138, 142, 128, 138, 140, 135, 148, 143, 145, 132, 147, 136, 142, 143, 144, 136, 146, 133, 135, 137, 143, 136, 143, 136, 138, 143, 135, 146, 132, 136, 135, 137, 128, 133, 139, 143, 137, 135, 136, 146, 139, 135, 132, 137, 133, 139, 137, 131, 145, 144, 139, 133, 142, 131, 135, 151, 139, 128, 140, 139, 147, 135, 133, 141, 131, 128, 141, 138, 137, 139, 143, 138, 140, 138, 138, 141, 135, 150, 141, 138, 141, 138, 143, 132, 141, 132, 149, 141, 139, 144, 134, 139, 140, 142, 141, 140, 146, 133, 136, 142, 147, 138, 140, 146, 141, 127, 145, 138, 135, 139, 147, 138, 139, 137, 128, 143, 147, 132, 130, 144, 142, 139, 130, 126, 135, 143, 133, 146, 136, 140, 133, 142, 135, 133, 137, 135, 137, 143, 138, 131, 144, 138, 145, 141, 147, 143, 136, 151, 131, 147, 140, 135, 149, 140, 135, 140, 130, 135, 144, 141, 134, 138, 138, 139, 137, 138, 136, 145, 145, 145, 142, 149, 150, 139, 138, 140, 136, 136, 133, 141, 140, 140, 121, 134, 140, 135, 145, 131, 136, 140, 134, 139, 150, 139, 147, 135, 131, 136, 136, 138, 137, 133, 131, 148, 133, 142, 148, 132, 141, 127, 136, 131, 139, 142, 135, 134, 138, 146, 138, 146, 139, 135, 149, 137, 150, 135, 128, 149, 133, 135, 135, 142, 137, 132, 133, 137, 137, 136, 147, 140, 147, 135, 138, 141, 136, 136, 142, 142, 136, 141, 136, 141, 151, 131, 130, 137, 138, 134, 137, 140, 139, 137, 146, 138, 137, 134, 144, 151, 141, 143, 134, 139, 140, 139, 148, 134, 132, 143, 138, 143, 139, 144, 137, 145, 143, 135, 141, 150, 141, 147, 132, 143, 146, 140, 132, 144, 144, 134, 144, 142, 134, 139, 142, 143, 142, 147, 137, 133, 140, 127, 140, 137, 134, 133, 141, 135, 143, 137, 134, 136, 125, 127, 141, 129, 134, 151, 139, 142, 133, 128, 143, 144, 129, 146, 132, 146, 125, 130, 140, 138, 136, 131, 141, 141, 145, 137, 142, 137, 135, 147, 138, 134, 139, 141, 134, 144, 138, 148, 141, 140, 139, 132, 137, 148, 144, 131, 143, 143, 145, 135, 141, 141, 130, 147, 138, 143, 136, 134, 138, 133, 140, 145, 139, 139, 141, 137, 128, 130, 141, 146, 137, 142, 144, 131, 147, 129, 137, 139, 150, 143, 141, 140, 145, 138, 137, 141, 138, 138, 143, 137, 131, 145, 137, 138, 129, 139, 130, 137, 132, 141, 143, 144, 142, 128, 129, 138, 142, 129, 143, 147, 133, 144, 141, 142, 132, 148, 136, 132, 138, 136, 144, 145, 139, 135, 146, 134, 128, 136, 133, 132, 141, 144, 142, 135, 143, 143, 141, 136, 146, 142, 151, 137, 142, 145, 143, 135, 138, 143, 130, 135, 141, 139, 132, 135, 132, 138, 132, 126, 143, 147, 133, 140, 149, 139, 139, 141, 139, 140, 138, 134, 143, 140, 145, 141, 130, 143, 139, 137, 139, 149, 140, 135, 120, 142, 148, 135, 149, 131, 134, 139, 137, 132, 136, 138, 130, 137, 138, 135, 132, 137, 143, 140, 147, 137, 138, 138, 132, 139, 135, 130, 140, 133, 143, 139, 143, 138, 138, 141, 136, 137, 135, 144, 138, 143, 142, 143, 142, 139, 149, 145, 133, 138, 140, 136, 141, 139, 142, 146, 137, 133, 144, 137, 135, 141, 144, 141, 140, 140, 143, 146, 139, 133, 133, 141, 134, 145, 143, 132, 140, 133, 136, 137, 133, 136, 136, 141, 145, 133, 132, 135, 134, 149, 145, 134, 132, 143, 135, 136, 140, 132, 133, 138, 131, 135, 144, 137, 138, 140, 138, 135, 141, 146, 141, 142, 140, 139, 142, 137, 138, 140, 141, 138, 139, 143, 140, 138, 140, 146, 143, 144, 142, 147, 137, 144, 148, 138, 141, 144, 136, 146, 136, 138, 137, 143, 128, 139, 138, 140, 146, 135, 141, 132, 142, 137, 137, 141, 135, 136, 143, 139, 135, 144, 137, 139, 144, 135, 134, 135, 133, 140, 141, 143, 135, 128, 143, 135, 147, 139, 140, 137, 141, 140, 143, 140, 137, 139, 142, 145, 142, 131, 140, 136, 129, 136, 140, 139, 137, 135, 144, 141, 140, 139, 144, 141, 134, 140, 138, 141, 139, 136, 140, 141, 143, 135, 140, 135, 136, 137, 145, 143, 144, 147, 142, 131, 143, 143, 131, 140, 147, 133, 145, 142, 136, 138, 143, 135, 139, 135, 139, 145, 138, 134, 143, 137, 135, 137, 142, 135, 140, 132, 143, 138, 132, 129, 129, 133, 137, 137, 140, 138, 145, 137, 140, 141, 139, 144, 149, 136, 131, 128, 136, 138, 141, 129, 137, 138, 142, 137, 143, 134, 132, 149, 132, 137, 142, 135, 135, 136, 136, 137, 137, 145, 130, 133, 130, 148, 141, 141, 139, 138, 140, 140, 137, 133, 132, 133, 139, 141, 141, 150, 141, 133, 144, 145, 137, 129, 142, 139, 134, 146, 136, 144, 140, 142, 132, 134, 143, 138, 147, 143, 131, 134, 132, 142, 140, 141, 139, 145, 149, 144, 144, 139, 149, 136, 147, 135, 132, 139, 135, 148, 138, 129, 129, 142, 132, 156, 147, 134, 133, 142, 148, 140, 138, 138, 146, 134, 155, 139, 136, 134, 146, 149, 148, 137, 142, 133, 129, 143, 137, 136, 146, 136, 142, 124, 141, 120, 134, 129, 133, 133, 131, 147, 151, 138, 137, 134, 124, 139, 137, 142, 132, 135, 132, 134, 140, 152, 142, 135, 144, 141, 138, 148, 138, 143, 141, 144, 135, 129, 134, 139, 143, 142, 148, 136, 137, 141, 140, 136, 136, 136, 142, 144, 136, 132, 133, 139, 137, 139, 135, 145, 144, 143, 138, 152, 129, 145, 136, 151, 142, 140, 130, 144, 138, 138, 150, 141, 132, 128, 146, 135, 138, 147, 135, 137, 149, 141, 140, 139, 149, 132, 137, 141, 136, 141, 131, 138, 136, 148, 140, 141, 147, 131, 138, 143, 144, 143, 152, 140, 143, 137, 137, 132, 142, 141, 140, 143, 137, 140, 142, 145, 136, 121, 141, 140, 155, 129, 138, 141, 128, 139, 129, 138, 135, 151, 139, 138, 136, 137, 147, 132, 143, 154, 137, 146, 130, 145, 131, 146, 144, 127, 134, 135, 144, 139, 134, 131, 126, 136, 133, 135, 146, 133, 134, 127, 141, 140, 142, 145, 145, 134, 113, 121, 145, 137, 145, 146, 134, 145, 138, 150, 142, 150, 144, 148, 133, 132, 145, 133, 138, 139, 136, 141, 137, 150, 135, 141, 144, 141, 134, 136, 143, 117, 135, 148, 155, 139, 129, 135, 138, 135, 126, 143, 144, 142, 138, 143, 130, 133, 129, 141, 159, 155, 137, 135, 147, 130, 130, 157, 143, 135, 139, 145, 140, 134, 140, 135, 139, 143, 140, 137, 137, 134, 148, 134, 138, 149, 129, 148, 145, 133, 138, 149, 144, 143, 150, 147, 144, 138, 137, 122, 153, 140, 137, 145, 138, 125, 133, 141, 140, 136, 132, 142, 135, 125, 135, 145, 131, 182, 137, 144, 137, 147, 129, 138, 134, 135, 143, 119, 131, 137, 140, 135, 134, 146, 140, 133, 146, 136, 150, 135, 138, 139, 144, 142, 142, 128, 146, 139, 137, 146, 141, 139, 131, 136, 140, 139, 134, 126, 146, 144, 144, 133, 146, 131, 133, 137, 146, 145, 130, 133, 132, 138, 139, 135, 146, 140, 138, 131, 142, 126, 132, 148, 141, 141, 141, 136, 140, 126, 136, 134, 139, 125, 134, 145, 135, 136, 147, 141, 150, 140, 133, 145, 145, 131, 143, 139, 136, 143, 136, 133, 138, 134, 134, 135, 144, 145, 130, 133, 140, 133, 136, 139, 132, 132, 132, 144, 133, 151, 129, 134, 126, 140, 149, 122, 136, 144, 132, 129, 133, 132, 142, 138, 143, 139, 133, 138, 139, 136, 145, 146, 144, 144, 144, 144, 146, 142, 149, 140, 133, 138, 139, 139, 140, 144, 151, 151, 137, 140, 136, 129, 150, 134, 135, 134, 137, 135, 141, 132, 139, 145, 142, 147, 138, 132, 142, 140, 129, 145, 132, 143, 139, 136, 124, 136, 141, 141, 148, 130, 135, 139, 150, 134, 157, 134, 142, 127, 140, 132, 145, 139, 145, 138, 142, 143, 147, 140, 135, 135, 132, 137, 143, 136, 129, 149, 143, 139, 135, 141, 128, 131, 139, 142, 131, 149, 127, 142, 140, 141, 146, 142, 145, 130, 137, 138, 142, 141, 135, 138, 135, 143, 139, 138, 143, 141, 144, 134, 136, 139, 139, 141, 136, 142, 147, 146, 140, 134, 134, 135, 132, 132, 131, 141, 131, 135, 138, 137, 144, 144, 135, 137, 132, 145, 138, 137, 139, 132, 140, 142, 132, 137, 135, 141, 136, 132, 133, 140, 146, 141, 134, 132, 129, 136, 144, 138, 145, 142, 136, 141, 145, 139, 136, 141, 135, 132, 141, 148, 139, 135, 137, 142, 136, 143, 139, 134, 141, 137, 132, 129, 133, 134, 145, 136, 140, 142, 139, 153, 149, 141, 138, 142, 139, 128, 138, 133, 149, 138, 139, 139, 138, 145, 142, 141, 135, 152, 147, 144, 149, 138, 138, 140, 131, 145, 141, 145, 142, 134, 142, 137, 139, 135, 136, 133, 133, 134, 142, 144, 143, 147, 148, 135, 133, 131, 147, 137, 139, 132, 141, 129, 144, 141, 141, 140, 133, 148, 134, 134, 138, 146, 145, 146, 141, 136, 139, 142, 141, 134, 144, 134, 144, 145, 138, 139, 131, 143, 142, 133, 145, 140, 140, 144, 137, 130, 144, 139, 147, 139, 144, 135, 137, 146, 137, 135, 132, 145, 141, 139, 137, 141, 138, 143, 144, 145, 143, 134, 140, 142, 142, 140, 144, 125, 142, 145, 140, 143, 132, 148, 144, 139, 129, 130, 143, 137, 140, 144, 138, 143, 129, 134, 141, 139, 138, 142, 140, 148, 146, 143, 140, 143, 143, 141, 144, 138, 138, 142, 133, 146, 136, 139, 147, 140, 134, 135, 145, 137, 147, 134, 138, 138, 130, 137, 133, 140, 134, 143, 131, 139, 136, 144, 144, 153, 137, 138, 141, 137, 137, 139, 142, 133, 133, 141, 143, 142, 139, 145, 142, 142, 136, 143, 148, 136, 142, 144, 137, 151, 138, 140, 140, 148, 145, 142, 133, 135, 147, 137, 139, 144, 132, 141, 137, 137, 136, 142, 135, 133, 142, 141, 140, 138, 143, 142, 142, 132, 141, 145, 131, 141, 139, 142, 141, 140, 142, 140, 139, 147, 146, 135, 137, 145, 139, 141, 141, 145, 136, 142, 135, 135, 143, 138, 136, 139, 132, 133, 139, 135, 137, 140, 134, 147, 146, 136, 141, 140, 141, 139, 133, 140, 144, 138, 143, 137, 141, 135, 147, 136, 146, 137, 144, 131, 142, 136, 145, 141, 138, 140, 136, 141, 138, 145, 148, 136, 156, 138, 137, 147, 132, 139, 132, 137, 142, 132, 144, 143, 141, 144, 142, 151, 145, 141, 136, 141, 143, 144, 139, 153, 142, 140, 139, 135, 134, 144, 145, 137, 145, 140, 133, 138, 135, 138, 138, 145, 138, 145, 143, 130, 140, 137, 147, 130, 139, 146, 139, 141, 145, 141, 137, 145, 135, 137, 138, 136, 137, 126, 137, 138, 134, 143, 140, 131, 141, 137, 142, 131, 141, 140, 138, 143, 149, 138, 139, 135, 149, 140, 141, 146, 141, 138, 137, 142, 135, 136, 142, 145, 140, 145, 142, 136, 140, 145, 144, 138, 134, 147, 143, 141, 139, 145, 139, 132, 135, 140, 138, 143, 136, 137, 141, 135, 134, 137, 136, 134, 128, 140, 126, 140, 136, 136, 134, 140, 144, 141, 130, 142, 140, 136, 153, 138, 141, 138, 144, 142, 139, 138, 142, 137, 134, 139, 126, 137, 141, 147, 134, 144, 141, 148, 143, 133, 130, 144, 135, 132, 138, 132, 150, 140, 146, 140, 131, 146, 135, 133, 133, 138, 133, 137, 136, 138, 126, 136, 135, 137, 141, 136, 141, 136, 136, 144, 142, 146, 134, 133, 132, 133, 144, 136, 133, 141, 139, 150, 142, 136, 124, 137, 124, 137, 134, 145, 143, 135, 133, 136, 140, 138, 144, 133, 156, 132, 143, 135, 148, 141, 131, 139, 143, 142, 148, 141, 151, 150, 137, 142, 138, 134, 148, 153, 136, 133, 149, 131, 142, 138, 134, 142, 143, 132, 144, 128, 145, 145, 145, 135, 140, 139, 136, 142, 138, 146, 143, 146, 142, 132, 139, 137, 134, 139, 141, 149, 136, 149, 132, 145, 150, 136, 125, 138, 147, 138, 139, 141, 141, 131, 148, 148, 133, 133, 135, 140, 132, 139, 134, 138, 139, 139, 153, 133, 131, 138, 136, 130, 141, 143, 149, 138, 142, 144, 141, 147, 147, 137, 139, 143, 140, 131, 139, 131, 142, 142, 141, 132, 135, 138, 141, 137, 134, 131, 141, 143, 142, 138, 138, 129, 146, 141, 134, 143, 146, 145, 142, 142, 137, 149, 134, 150, 138, 147, 135, 143, 133, 134, 133, 142, 131, 134, 140, 133, 138, 133, 143, 142, 137, 134, 135, 133, 148, 142, 133, 142, 143, 141, 147, 137, 140, 140, 138, 154, 132, 130, 139, 137, 135, 132, 138, 145, 139, 128, 137, 151, 132, 139, 130, 147, 142, 137, 138, 140, 137, 134, 141, 137, 146, 138, 141, 142, 128, 136, 139, 138, 139, 138, 133, 146, 136, 135, 138, 138, 129, 134, 138, 144, 140, 155, 142, 141, 139, 138, 136, 137, 140, 139, 134, 147, 151, 133, 144, 136, 140, 141, 136, 139, 148, 136, 137, 146, 142, 135, 143, 142, 142, 140, 135, 141, 147, 130, 142, 139, 148, 137, 145, 139, 140, 140, 135, 132, 143, 146, 133, 146, 144, 136, 143, 146, 135, 143, 155, 125, 142, 143, 140, 137, 137, 142, 130, 131, 140, 132, 146, 136, 141, 133, 128, 134, 149, 143, 133, 145, 149, 137, 142, 147, 143, 145, 135, 135, 137, 138, 140, 135, 137, 138, 139, 140, 139, 127, 146, 141, 140, 142, 140, 131, 137, 136, 137, 133, 129, 135, 134, 131, 139, 137, 135, 138, 140, 139, 142, 135, 135, 136, 137, 142, 137, 147, 134, 140, 136, 137, 134, 124, 133, 148, 128, 140, 141, 140, 131, 125, 135, 130, 134, 146, 135, 134, 135, 136, 141, 148, 138, 132, 138, 141, 143, 142, 148, 143, 143, 138, 141, 147, 140, 139, 137, 138, 132, 143, 140, 139, 139, 137, 135, 141, 137, 145, 132, 135, 131, 138, 139, 142, 133, 139, 139, 137, 140, 134, 141, 136, 142, 145, 142, 137, 152, 132, 142, 149, 141, 134, 131, 137, 149, 131, 138, 137, 137, 142, 148, 139, 141, 135, 124, 135, 144, 140, 138, 142, 135, 135, 139, 145, 148, 143, 133, 140, 140, 133, 151, 143, 133, 132, 134, 142, 140, 134, 138, 139, 140, 141, 133, 141, 136, 149, 127, 135, 134, 138, 140, 132, 147, 138, 143, 141, 142, 137, 135, 143, 138, 138, 128, 143, 136, 135, 138, 140, 134, 130, 123, 142, 134, 138, 135, 136, 135, 138, 148, 134, 131, 141, 141, 144, 129, 136, 145, 126, 138, 137, 140, 141, 136, 130, 141, 124, 136, 140, 127, 141, 144, 137, 140, 140, 136, 137, 123, 139, 145, 135, 145, 138, 137, 137, 139, 147, 142, 133, 139, 150, 133, 143, 138, 135, 142, 145, 137, 145, 132, 135, 136, 143, 132, 138, 138, 136, 131, 137, 131, 140, 140, 148, 140, 146, 150, 148, 145, 136, 139, 135, 143, 130, 139, 142, 139, 134, 142, 129, 143, 137, 136, 136, 140, 143, 137, 144, 137, 134, 141, 136, 141, 135, 142, 132, 135, 137, 132, 141, 145, 140, 141, 149, 141, 145, 123, 145, 146, 148, 140, 136, 144, 138, 138, 132, 137, 144, 133, 139, 132, 131, 138, 124, 142, 136, 143, 150, 138, 140, 142, 135, 137, 146, 138, 134, 146, 139, 139, 150, 139, 143, 143, 133, 133, 141, 124, 131, 136, 130, 142, 157, 136, 140, 144, 138, 137, 144, 134, 137, 145, 143, 146, 146, 126, 135, 130, 144, 140, 139, 135, 144, 139, 135, 131, 130, 136, 135, 146, 136, 144, 140, 156, 140, 154, 134, 136, 141, 143, 134, 138, 150, 132, 140, 132, 140, 139, 136, 133, 143, 143, 133, 130, 142, 135, 137, 132, 133, 142, 151, 141, 141, 141, 135, 128, 137, 148, 133, 136, 148, 139, 143, 132, 138, 148, 144, 134, 137, 133, 137, 142, 142, 136, 141, 136, 127, 130, 141, 149, 138, 137, 141, 135, 135, 139, 139, 141, 144, 137, 142, 140, 143, 129, 140, 135, 143, 141, 141, 137, 133, 143, 142, 141, 134, 137, 142, 142, 143, 151, 146, 132, 138, 139, 133, 140, 138, 141, 139, 142, 134, 142, 132, 142, 145, 134, 140, 137, 143, 138, 135, 135, 135, 130, 142, 144, 138, 142, 145, 146, 141, 141, 137, 144, 136, 137, 125, 142, 143, 136, 142, 142, 138, 146, 134, 145, 143, 146, 134, 138, 137, 129, 134, 156, 138, 145, 134, 140, 144, 132, 143, 137, 141, 140, 133, 134, 139, 140, 144, 142, 137, 134, 130, 139, 152, 137, 133, 141, 142, 140, 131, 135, 142, 137, 137, 136, 139, 141, 142, 127, 139, 138, 147, 132, 146, 143, 144, 130, 131, 135, 147, 148, 147, 138, 137, 145, 145, 146, 130, 135, 148, 140, 141, 134, 146, 154, 141, 143, 142, 138, 136, 149, 138, 140, 135, 143, 144, 133, 142, 143, 138, 132, 138, 134, 140, 141, 131, 152, 137, 149, 133, 135, 138, 152, 135, 126, 137, 151, 129, 130, 143, 144, 134, 140, 138, 131, 146, 132, 139, 138, 135, 136, 141, 138, 135, 142, 139, 147, 136, 131, 135, 145, 143, 148, 137, 144, 147, 135, 138, 130, 141, 141, 140, 144, 142, 138, 136, 137, 135, 137, 143, 154, 136, 149, 141, 136, 142, 141, 134, 142, 137, 145, 147, 141, 135, 145, 138, 139, 136, 146, 141, 140, 142, 137, 135, 136, 141, 136, 141, 143, 140, 137, 145, 139, 138, 134, 149, 137, 143, 142, 141, 138, 140, 141, 138, 139, 125, 135, 136, 145, 137, 137, 138, 135, 146, 138, 132, 140, 133, 140, 140, 136, 147, 127, 139, 136, 145, 147, 140, 142, 145, 144, 135, 140, 136, 138, 145, 144, 140, 143, 145, 133, 141, 139, 150, 139, 139, 137, 137, 139, 140, 142, 140, 144, 134, 131, 140, 132, 141, 145, 138, 136, 139, 136, 141, 141, 137, 136, 136, 134, 136, 144, 136, 138, 136, 142, 141, 138, 141, 144, 145, 140, 145, 145, 150, 135, 140, 143, 133, 137, 140, 138, 145, 135, 131, 149, 149, 141, 143, 145, 135, 146, 142, 139, 135, 138, 148, 133, 138, 145, 145, 144, 138, 141, 137, 146, 138, 140, 133, 139, 139, 141, 140, 135, 131, 124, 144, 142, 135, 135, 144, 143, 137, 139, 132, 132, 147, 132, 136, 128, 134, 129, 131, 138, 143, 136, 140, 147, 140, 135, 143, 138, 144, 141, 144, 142, 137, 142, 134, 140, 142, 137, 141, 142, 136, 135, 143, 142, 147, 139, 147, 130, 131, 145, 145, 137, 134, 134, 140, 147, 136, 136, 139, 135, 130, 136, 136, 144, 141, 134, 143, 140, 140, 137, 134, 132, 136, 143, 140, 140, 131, 141, 140, 144, 140, 135, 144, 134, 140, 138, 148, 138, 129, 145, 139, 138, 139, 137, 145, 140, 144, 137, 135, 133, 132, 145, 145, 143, 145, 142, 135, 137, 135, 135, 138, 140, 140, 143, 136, 139, 141, 138, 144, 134, 141, 136, 129, 143, 143, 141, 137, 130, 137, 139, 145, 143, 138, 144, 140, 134, 134, 142, 138, 137, 134, 144, 146, 135, 142, 139, 134, 141, 150, 135, 143, 143, 145, 136, 138, 141, 138, 144, 138, 140, 136, 142, 146, 138, 146, 141, 147, 141, 129, 140, 130, 145, 143, 139, 140, 136, 141, 142, 138, 141, 130, 128, 147, 137, 142, 140, 144, 138, 132, 135, 144, 141, 135, 130, 134, 141, 143, 141, 137, 143, 138, 140, 144, 142, 145, 137, 141, 143, 148, 148, 138, 145, 130, 134, 142, 140, 144, 143, 136, 145, 141, 136, 133, 131, 137, 134, 134, 134, 140, 140, 138, 137, 142, 136, 139, 141, 140, 138, 134, 141, 141, 138, 147, 136, 140, 141, 141, 141, 141, 139, 151, 134, 143, 141, 150, 142, 132, 141, 146, 135, 145, 141, 137, 140, 138, 136, 143, 136, 144, 137, 144, 141, 136, 140, 135, 143, 138, 143, 145, 141, 141, 141, 138, 138, 137, 143, 141, 147, 146, 134, 140, 138, 142, 137, 137, 135, 136, 134, 126, 142, 149, 131, 139, 141, 142, 140, 136, 147, 140, 135, 148, 138, 135, 136, 138, 138, 143, 126, 140, 136, 143, 135, 137, 138, 139, 143, 137, 139, 139, 143, 143, 138, 137, 143, 140, 135, 153, 141, 138, 139, 134, 140, 135, 147, 137, 143, 135, 132, 139, 122, 142, 140, 143, 127, 135, 147, 143, 142, 135, 140, 127, 144, 134, 140, 134, 146, 138, 110, 151, 147, 134, 138, 141, 142, 151, 142, 136, 138, 149, 145, 139, 149, 143, 107, 134, 132, 144, 134, 143, 143, 136, 140, 146, 128, 136, 144, 144, 141, 135, 141, 134, 136, 142, 137, 128, 143, 138, 138, 135, 140, 142, 149, 152, 120, 137, 144, 142, 133, 138, 137, 146, 135, 138, 127, 143, 141, 130, 147, 145, 131, 139, 138, 133, 138, 138, 147, 140, 140, 145, 140, 141, 143, 132, 146, 153, 144, 141, 140, 135, 143, 148, 131, 145, 144, 131, 161, 153, 137, 135, 135, 126, 138, 130, 133, 138, 139, 130, 141, 131, 137, 139, 137, 129, 140, 152, 137, 124, 143, 153, 142, 139, 127, 149, 131, 140, 132, 138, 133, 134, 139, 126, 146, 148, 140, 132, 134, 129, 143, 151, 139, 148, 127, 145, 137, 141, 134, 134, 146, 137, 140, 143, 136, 145, 138, 138, 148, 149, 136, 140, 141, 136, 141, 146, 154, 139, 135, 142, 135, 139, 147, 150, 130, 141, 139, 147, 145, 131, 158, 141, 137, 142, 131, 139, 139, 139, 133, 132, 138, 139, 145, 131, 128, 136, 137, 139, 137, 142, 139, 146, 147, 136, 143, 129, 135, 157, 138, 148, 133, 152, 146, 140, 136, 137, 144, 149, 149, 129, 141, 134, 145, 143, 146, 137, 137, 137, 158, 137, 133, 142, 146, 135, 131, 141, 138, 134, 129, 137, 143, 137, 130, 133, 142, 135, 132, 141, 123, 147, 138, 128, 140, 136, 129, 135, 141, 130, 144, 133, 126, 144, 139, 140, 130, 145, 145, 142, 137, 132, 140, 146, 153, 144, 141, 132, 129, 125, 127, 134, 142, 158, 139, 147, 134, 139, 143, 131, 127, 130, 133, 146, 143, 137, 132, 149, 135, 139, 135, 129, 132, 136, 142, 139, 140, 135, 145, 137, 148, 134, 139, 138, 143, 148, 148, 139, 141, 141, 143, 140, 128, 144, 143, 142, 147, 137, 128, 135, 139, 134, 141, 143, 131, 142, 133, 139, 148, 132, 152, 130, 131, 139, 137, 142, 142, 142, 132, 132, 136, 153, 142, 148, 142, 140, 139, 145, 141, 152, 150, 131, 145, 146, 139, 139, 135, 134, 143, 145, 143, 135, 128, 133, 136, 146, 142, 139, 152, 140, 135, 146, 142, 135, 132, 146, 145, 151, 136, 126, 146, 124, 127, 130, 157, 163, 146, 135, 138, 113, 138, 134, 144, 140, 133, 133, 130, 141, 133, 120, 136, 137, 135, 141, 142, 141, 152, 138, 134, 128, 133, 128, 129, 142, 158, 138, 145, 136, 135, 141, 122, 142, 137, 134, 129, 128, 142, 142, 136, 151, 134, 149, 142, 138, 134, 135, 150, 151, 143, 148, 148, 140, 140, 143, 129, 142, 134, 140, 139, 135, 135, 141, 142, 149, 140, 134, 134, 142, 140, 137, 127, 130, 153, 136, 146, 149, 136, 138, 141, 145, 136, 138, 139, 140, 135, 146, 139, 142, 143, 127, 136, 124, 143, 136, 119, 131, 139, 132, 150, 134, 129, 146, 134, 134, 134, 152, 133, 141, 131, 133, 149, 148, 140, 152, 140, 141, 137, 150, 125, 143, 135, 138, 140, 146, 128, 133, 139, 147, 133, 127, 140, 139, 136, 145, 156, 126, 133, 141, 130, 137, 137, 146, 134, 145, 138, 139, 141, 133, 141, 135, 141, 143, 138, 142, 136, 143, 133, 138, 135, 137, 138, 141, 142, 139, 129, 128, 144, 154, 138, 143, 131, 146, 134, 141, 132, 149, 130, 139, 133, 141, 141, 137, 142, 137, 139, 138, 144, 151, 138, 139, 134, 125, 150, 133, 135, 125, 131, 133, 136, 152, 138, 133, 135, 145, 132, 138, 132, 138, 143, 142, 140, 133, 142, 126, 153, 132, 140, 152, 144, 137, 148, 138, 132, 129, 143, 151, 137, 142, 154, 134, 142, 142, 154, 155, 132, 135, 133, 140, 127, 134, 146, 134, 136, 126, 143, 148, 135, 134, 137, 121, 139, 132, 132, 131, 140, 127, 138, 141, 139, 134, 154, 133, 142, 129, 128, 140, 156, 142, 142, 134, 127, 146, 140, 140, 134, 136, 140, 148, 134, 132, 128, 137, 132, 142, 145, 142, 140, 145, 141, 121, 142, 148, 146, 129, 137, 143, 139, 146, 146, 146, 133, 132, 132, 138, 137, 142, 139, 130, 141, 122, 137, 136, 141, 148, 137, 140, 145, 142, 132, 143, 145, 141, 138, 139, 145, 128, 146, 137, 142, 143, 142, 139, 133, 126, 136, 156, 137, 118, 146, 139, 137, 136, 126, 134, 142, 143, 136, 146, 144, 131, 139, 139, 134, 141, 151, 149, 134, 136, 148, 127, 138, 132, 137, 145, 136, 133, 146, 142, 138, 139, 142, 143, 146, 135, 125, 151, 145, 139, 133, 117, 142, 141, 132, 136, 134, 147, 145, 137, 139, 142, 147, 135, 133, 132, 147, 133, 140, 143, 150, 134, 142, 143, 135, 142, 154, 154, 140, 136, 131, 143, 139, 138, 139, 140, 146, 141, 143, 145, 127, 141, 140, 132, 131, 135, 139, 127, 137, 138, 137, 135, 136, 152, 143, 142, 144, 141, 136, 140, 140, 134, 141, 145, 146, 141, 128, 144, 139, 141, 142, 139, 136, 146, 130, 135, 130, 144, 137, 145, 144, 133, 134, 136, 137, 148, 151, 133, 151, 130, 131, 139, 147, 139, 138, 135, 159, 137, 131, 135, 140, 141, 150, 140, 142, 142, 138, 146, 144, 137, 137, 136, 150, 135, 143, 145, 148, 137, 148, 135, 136, 145, 134, 135, 136, 138, 128, 136, 133, 135, 130, 134, 135, 141, 147, 145, 135, 141, 136, 146, 129, 135, 146, 134, 134, 145, 141, 137, 138, 138, 141, 140, 137, 132, 137, 142, 144, 141, 152, 138, 132, 134, 137, 125, 144, 145, 150, 139, 132, 136, 151, 145, 137, 141, 148, 125, 128, 151, 144, 153, 126, 120, 133, 148, 146, 138, 138, 135, 133, 128, 139, 132, 134, 129, 140, 146, 139, 150, 146, 143, 135, 133, 155, 130, 136, 138, 131, 135, 153, 135, 142, 141, 148, 139, 123, 146, 131, 142, 137, 130, 130, 144, 145, 132, 141, 150, 140, 135, 140, 133, 136, 139, 134, 138, 134, 135, 144, 144, 144, 142, 136, 138, 138, 133, 143, 132, 149, 132, 139, 136, 142, 135, 134, 133, 146, 137, 132, 133, 137, 146, 141, 142, 147, 140, 131, 134, 143, 133, 132, 147, 136, 130, 145, 139, 137, 139, 132, 136, 141, 134, 139, 146, 140, 151, 131, 140, 138, 135, 148, 135, 141, 133, 134, 132, 132, 139, 147, 143, 145, 129, 141, 138, 145, 135, 132, 136, 136, 149, 145, 132, 138, 137, 130, 143, 146, 145, 142, 141, 141, 148, 137, 123, 135, 135, 138, 139, 130, 138, 134, 133, 142, 143, 138, 133, 137, 132, 145, 131, 131, 139, 140, 133, 138, 143, 136, 138, 134, 137, 136, 136, 145, 135, 144, 129, 130, 147, 133, 140, 133, 147, 136, 132, 143, 136, 143, 138, 141, 147, 146, 142, 139, 125, 141, 151, 142, 139, 140, 137, 143, 139, 143, 131, 136, 146, 135, 140, 141, 145, 141, 135, 138, 137, 129, 143, 151, 146, 136, 143, 133, 142, 149, 127, 133, 137, 141, 135, 146, 140, 133, 142, 146, 127, 127, 146, 140, 134, 145, 138, 147, 145, 132, 141, 131, 143, 142, 146, 138, 138, 146, 132, 140, 138, 122, 140, 144, 141, 141, 141, 140, 145, 140, 137, 131, 130, 131, 136, 137, 134, 148, 139, 138, 140, 135, 137, 137, 136, 143, 128, 131, 138, 148, 138, 135, 139, 140, 128, 136, 139, 140, 135, 138, 141, 132, 136, 136, 142, 135, 133, 133, 136, 132, 144, 134, 144, 134, 138, 134, 146, 133, 132, 133, 134, 138, 146, 134, 144, 136, 133, 139, 135, 131, 143, 140, 138, 144, 136, 138, 141, 143, 131, 150, 132, 130, 143, 143, 142, 141, 130, 140, 127, 142, 142, 135, 139, 140, 137, 139, 128, 146, 137, 131, 136, 138, 130, 136, 141, 145, 136, 143, 129, 138, 150, 142, 137, 138, 139, 130, 132, 136, 129, 141, 146, 142, 137, 145, 134, 143, 139, 145, 144, 143, 148, 139, 143, 137, 133, 149, 151, 137, 137, 141, 144, 135, 132, 146, 140, 147, 146, 142, 142, 145, 138, 138, 139, 135, 141, 134, 144, 140, 133, 146, 141, 142, 123, 139, 130, 141, 133, 135, 134, 137, 144, 133, 145, 137, 125, 139, 135, 139, 146, 145, 142, 142, 143, 139, 137, 129, 141, 138, 143, 147, 138, 149, 135, 134, 139, 158, 139, 140, 135, 133, 137, 135, 135, 143, 131, 139, 135, 135, 141, 143, 133, 139, 147, 136, 130, 145, 131, 135, 134, 141, 131, 139, 133, 135, 142, 142, 139, 141, 139, 133, 138, 144, 144, 133, 139, 134, 135, 132, 146, 141, 134, 152, 140, 134, 138, 136, 144, 148, 132, 138, 132, 135, 139, 133, 139, 142, 133, 144, 136, 140, 144, 130, 139, 146, 147, 149, 135, 143, 145, 152, 139, 147, 131, 133, 143, 141, 138, 144, 141, 132, 143, 143, 134, 131, 137, 137, 141, 131, 141, 139, 143, 151, 131, 129, 143, 135, 138, 141, 146, 125, 139, 140, 133, 136, 147, 142, 147, 141, 137, 140, 141, 138, 142, 143, 135, 136, 141, 133, 131, 142, 146, 133, 138, 156, 143, 139, 141, 139, 145, 138, 134, 143, 155, 144, 140, 140, 142, 138, 143, 133, 146, 134, 148, 152, 139, 140, 137, 144, 134, 148, 141, 138, 139, 135, 148, 124, 139, 141, 132, 132, 124, 143, 139, 134, 132, 129, 147, 142, 140, 137, 141, 141, 128, 138, 140, 131, 142, 140, 137, 147, 137, 140, 132, 138, 129, 148, 147, 132, 135, 138, 137, 127, 136, 130, 131, 145, 138, 140, 139, 134, 147, 143, 136, 149, 138, 136, 140, 142, 139, 147, 136, 114, 137, 142, 133, 132, 142, 140, 147, 150, 137, 140, 143, 135, 135, 137, 138, 139, 135, 143, 133, 139, 137, 143, 145, 137, 129, 144, 134, 138, 132, 135, 135, 123, 146, 137, 142, 132, 139, 141, 134, 137, 144, 137, 138, 139, 137, 152, 144, 140, 147, 136, 135, 139, 143, 143, 140, 139, 138, 140, 141, 148, 146, 129, 127, 141, 145, 139, 148, 141, 139, 144, 148, 133, 144, 132, 138, 139, 137, 134, 134, 134, 138, 145, 151, 133, 148, 145, 144, 145, 142, 133, 127, 133, 141, 136, 138, 143, 127, 141, 136, 135, 140, 139, 143, 134, 143, 139, 137, 143, 136, 146, 139, 138, 137, 141, 134, 144, 136, 132, 141, 129, 140, 143, 138, 140, 137, 139, 139, 139, 134, 144, 134, 133, 134, 138, 133, 144, 143, 135, 137, 139, 140, 143, 144, 142, 133, 141, 141, 146, 136, 135, 140, 134, 141, 138, 140, 141, 141, 139, 137, 144, 138, 145, 132, 152, 132, 130, 134, 141, 142, 140, 132, 139, 144, 136, 134, 130, 136, 139, 140, 141, 138, 134, 138, 142, 133, 137, 139, 136, 134, 137, 135, 128, 142, 134, 133, 137, 139, 133, 139, 139, 140, 132, 135, 141, 139, 141, 146, 136, 142, 143, 140, 143, 133, 141, 133, 141, 144, 130, 146, 134, 137, 141, 143, 142, 140, 138, 134, 142, 145, 138, 138, 129, 144, 143, 138, 132, 138, 136, 139, 137, 136, 141, 130, 145, 142, 143, 132, 131, 141, 137, 139, 134, 142, 134, 142, 142, 136, 136, 134, 134, 139, 139, 139, 134, 141, 135, 134, 127, 144, 135, 128, 136, 135, 139, 124, 134, 140, 142, 135, 143, 135, 141, 138, 137, 138, 138, 127, 135, 133, 133, 134, 139, 147, 137, 143, 153, 137, 135, 149, 145, 136, 146, 148, 137, 146, 139, 144, 140, 137, 139, 135, 138, 134, 143, 138, 141, 136, 132, 135, 142, 140, 139, 158, 139, 134, 137, 134, 147, 134, 143, 144, 136, 143, 137, 132, 135, 145, 142, 137, 140, 142, 139, 137, 133, 134, 132, 140, 139, 146, 142, 142, 139, 136, 142, 140, 134, 134, 142, 144, 131, 142, 130, 145, 135, 136, 137, 142, 134, 132, 140, 129, 142, 138, 146, 141, 139, 144, 139, 144, 146, 135, 136, 137, 138, 133, 144, 142, 143, 137, 140, 148, 137, 133, 142, 141, 142, 130, 133, 141, 136, 141, 142, 138, 137, 140, 143, 140, 139, 141, 137, 144, 141, 137, 148, 138, 134, 130, 133, 140, 141, 146, 140, 127, 135, 143, 149, 136, 133, 142, 134, 135, 140, 140, 138, 146, 141, 139, 145, 146, 139, 140, 143, 144, 140, 149, 132, 134, 134, 134, 134, 137, 142, 132, 132, 137, 143, 137, 137, 135, 139, 140, 133, 140, 140, 142, 143, 132, 136, 135, 136, 134, 139, 141, 147, 140, 145, 138, 136, 134, 140, 143, 138, 141, 139, 129, 134, 141, 133, 130, 144, 136, 134, 133, 137, 141, 134, 142, 136, 138, 133, 139, 141, 135, 139, 143, 131, 138, 137, 140, 134, 140, 140, 139, 142, 137, 142, 133, 141, 144, 139, 134, 137, 140, 140, 145, 144, 144, 138, 137, 140, 138, 134, 139, 127, 143, 140, 140, 134, 132, 144, 144, 141, 137, 134, 136, 138, 137, 144, 138, 147, 139, 140, 143, 137, 141, 138, 142, 138, 137, 140, 142, 142, 139, 130, 135, 140, 139, 132, 140, 146, 136, 136, 139, 138, 147, 132, 140, 135, 148, 143, 137, 146, 135, 141, 139, 134, 140, 137, 146, 137, 138, 142, 140, 138, 134, 142, 138, 142, 135, 137, 143, 141, 140, 140, 141, 137, 141, 139, 143, 129, 141, 138, 138, 138, 135, 139, 133, 135, 135, 136, 139, 138, 138, 138, 143, 132, 142, 149, 139, 140, 130, 134, 140, 143, 127, 135, 137, 140, 135, 137, 146, 134, 144, 144, 141, 131, 135, 139, 142, 141, 138, 136, 137, 139, 134, 135, 134, 137, 136, 140, 139, 137, 138, 142, 139, 133, 141, 138, 142, 140, 145, 141, 145, 148, 148, 139, 146, 134, 134, 136, 137, 146, 141, 142, 131, 144, 139, 146, 142, 141, 142, 142, 136, 139, 137, 134, 137, 144, 143, 139, 139, 134, 142, 138, 140, 135, 138, 132, 145, 139, 139, 135, 142, 134, 140, 145, 132, 138, 140, 137, 138, 140, 140, 135, 135, 137, 142, 133, 141, 137, 136, 133, 150, 138, 140, 140, 139, 152, 136, 139, 135, 138, 138, 136, 136, 139, 140, 141, 139, 144, 138, 141, 142, 136, 132, 138, 138, 141, 136, 138, 138, 145, 136, 132, 134, 139, 139, 139, 143, 144, 140, 138, 130, 139, 130, 141, 138, 140, 141, 141, 137, 142, 138, 153, 133, 140, 137, 141, 138, 153, 141, 137, 132, 137, 134, 139, 135, 142, 140, 137, 127, 136, 137, 138, 135, 131, 144, 133, 138, 140, 144, 139, 139, 133, 136, 140, 137, 132, 138, 139, 136, 134, 138, 138, 139, 133, 131, 141, 138, 135, 139, 140, 136, 136, 138, 137, 142, 140, 136, 132, 147, 141, 140, 143, 139, 140, 137, 141, 140, 139, 136, 136, 140, 149, 137, 140, 144, 135, 135, 142, 132, 140, 136, 140, 139, 135, 136, 145, 132, 137, 140, 142, 140, 140, 140, 145, 135, 141, 136, 134, 139, 139, 147, 134, 141, 133, 133, 142, 135, 137, 140, 141, 139, 140, 135, 140, 136, 141, 141, 141, 139, 141, 137, 138, 143, 143, 139, 130, 140, 135, 141, 137, 142, 144, 142, 132, 142, 142, 146, 136, 139, 142, 140, 146, 136, 137, 140, 138, 144, 135, 143, 137, 142, 141, 139, 141, 139, 146, 133, 145, 141, 143, 136, 142, 134, 132, 143, 142, 137, 137, 135, 135, 135, 147, 136, 137, 144, 141, 141, 150, 138, 144, 143, 140, 130, 137, 134, 145, 135, 132, 136, 136, 140, 140, 138, 135, 136, 140, 136, 134, 138, 141, 137, 143, 142, 141, 134, 139, 145, 135, 137, 142, 139, 141, 143, 140, 144, 134, 142, 137, 146, 146, 145, 137, 143, 139, 135, 135, 138, 147, 136, 136, 137, 140, 134, 131, 133, 144, 135, 138, 134, 141, 136, 143, 133, 140, 143, 139, 140, 138, 137, 147, 140, 138, 142, 139, 147, 138, 141, 144, 147, 140, 138, 148, 137, 145, 140, 132, 131, 138, 134, 139, 140, 138, 132, 136, 139, 149, 140, 140, 140, 145, 138, 136, 144, 143, 144, 144, 140, 134, 138, 137, 147, 133, 135, 136, 137, 134, 136, 138, 137, 136, 142, 138, 142, 142, 134, 132, 136, 146, 135, 135, 148, 140, 139, 141, 137, 142, 137, 144, 141, 134, 138, 135, 136, 153, 149, 137, 133, 137, 138, 144, 138, 139, 142, 136, 138, 140, 145, 134, 135, 141, 133, 143, 139, 144, 136, 143, 136, 136, 141, 141, 131, 142, 141, 142, 142, 136, 139, 149, 137, 131, 139, 134, 139, 136, 137, 136, 135, 140, 144, 135, 140, 137, 144, 142, 142, 142, 140, 132, 142, 136, 134, 141, 138, 150, 141, 144, 139, 139, 135, 139, 137, 134, 137, 140, 139, 138, 141, 134, 134, 138, 142, 137, 137, 138, 131, 141, 146, 136, 130, 133, 143, 137, 144, 136, 138, 142, 144, 146, 143, 139, 141, 138, 140, 139, 137, 144, 137, 143, 138, 144, 137, 146, 135, 135, 142, 136, 143, 136, 133, 141, 135, 141, 138, 138, 147, 138, 142, 133, 137, 138, 133, 144, 140, 147, 137, 144, 127, 142, 144, 141, 130, 133, 145, 140, 143, 140, 141, 134, 131, 137, 137, 131, 142, 143, 141, 144, 135, 140, 128, 132, 142, 144, 146, 129, 137, 134, 139, 146, 137, 147, 144, 143, 136, 136, 147, 140, 142, 139, 143, 144, 136, 134, 135, 137, 138, 141, 141, 148, 144, 140, 142, 127, 142, 139, 138, 139, 141, 137, 137, 135, 141, 146, 133, 135, 137, 138, 135, 134, 135, 145, 139, 143, 135, 142, 149, 137, 144, 139, 133, 138, 142, 138, 137, 137, 130, 152, 141, 144, 130, 138, 134, 145, 136, 136, 138, 146, 152, 139, 138, 140, 141, 145, 132, 139, 136, 139, 137, 144, 142, 134, 145, 139, 139, 135, 140, 132, 145, 143, 137, 141, 138, 137, 137, 135, 127, 138, 144, 143, 141, 141, 137, 147, 141, 139, 137, 141, 134, 140, 144, 136, 147, 136, 131, 137, 131, 135, 132, 143, 138, 136, 141, 136, 144, 145, 142, 143, 141, 132, 139, 145, 137, 131, 142, 134, 136, 132, 148, 138, 133, 132, 142, 139, 144, 145, 142, 136, 136, 139, 132, 142, 138, 145, 129, 140, 145, 137, 142, 141, 133, 144, 150, 139, 141, 145, 156, 136, 145, 144, 142, 145, 140, 144, 148, 150, 144, 150, 144, 137, 136, 146, 134, 140, 132, 142, 144, 144, 130, 143, 143, 120, 139, 124, 141, 138, 130, 135, 126, 127, 145, 144, 147, 133, 139, 130, 137, 145, 148, 141, 154, 139, 136, 134, 137, 145, 154, 143, 138, 146, 150, 142, 131, 132, 153, 144, 140, 137, 142, 148, 147, 142, 134, 135, 146, 135, 137, 143, 142, 131, 138, 134, 147, 126, 130, 142, 136, 136, 142, 133, 142, 146, 141, 134, 139, 143, 136, 132, 136, 138, 149, 140, 140, 131, 132, 140, 135, 147, 146, 137, 144, 141, 141, 138, 141, 133, 131, 139, 127, 126, 144, 151, 128, 140, 149, 135, 157, 155, 139, 138, 138, 145, 136, 132, 147, 137, 133, 134, 147, 135, 129, 149, 136, 120, 138, 136, 147, 143, 146, 128, 147, 137, 141, 147, 134, 139, 149, 128, 130, 136, 129, 132, 140, 148, 145, 145, 143, 137, 133, 151, 147, 140, 129, 149, 138, 124, 140, 141, 130, 136, 138, 142, 142, 135, 127, 139, 128, 143, 134, 132, 137, 135, 131, 139, 130, 128, 134, 141, 138, 142, 136, 136, 137, 126, 137, 147, 140, 122, 132, 140, 141, 149, 134, 145, 141, 143, 142, 137, 130, 140, 137, 143, 127, 144, 146, 141, 129, 137, 135, 144, 133, 132, 124, 140, 135, 139, 145, 132, 132, 134, 139, 146, 145, 151, 146, 137, 147, 158, 127, 143, 125, 123, 137, 141, 132, 134, 125, 147, 131, 142, 139, 142, 153, 158, 126, 151, 127, 140, 131, 141, 132, 123, 148, 137, 147, 140, 129, 144, 142, 147, 147, 144, 135, 124, 146, 159, 147, 144, 137, 138, 137, 141, 131, 150, 127, 138, 138, 141, 138, 140, 145, 149, 137, 147, 135, 133, 134, 146, 143, 131, 140, 137, 142, 135, 146, 145, 138, 133, 148, 133, 156, 143, 130, 134, 119, 153, 144, 130, 145, 145, 128, 148, 121, 134, 147, 131, 136, 135, 134, 139, 145, 145, 146, 152, 149, 135, 137, 145, 144, 142, 140, 140, 152, 128, 135, 144, 139, 131, 134, 139, 139, 151, 132, 137, 132, 140, 132, 147, 147, 129, 145, 146, 133, 141, 144, 136, 142, 143, 140, 141, 140, 121, 138, 123, 148, 138, 140, 138, 144, 142, 148, 133, 132, 126, 144, 141, 146, 146, 143, 146, 145, 131, 135, 135, 140, 141, 125, 142, 146, 143, 135, 152, 142, 124, 146, 131, 134, 142, 146, 136, 145, 144, 143, 139, 138, 139, 139, 141, 146, 141, 140, 144, 141, 145, 147, 138, 130, 151, 145, 142, 154, 139, 135, 142, 140, 155, 137, 134, 134, 136, 129, 133, 140, 138, 130, 136, 151, 137, 136, 146, 139, 133, 148, 138, 140, 132, 154, 136, 137, 144, 153, 133, 140, 134, 138, 152, 144, 139, 153, 135, 147, 147, 144, 144, 136, 145, 137, 139, 141, 144, 145, 129, 140, 144, 144, 143, 133, 132, 136, 141, 139, 150, 136, 141, 137, 141, 142, 128, 138, 133, 139, 144, 132, 133, 145, 140, 142, 141, 139, 132, 152, 141, 138, 143, 133, 144, 143, 129, 138, 141, 147, 134, 137, 136, 128, 136, 146, 141, 147, 134, 136, 147, 136, 141, 131, 150, 136, 132, 137, 147, 133, 153, 136, 138, 141, 145, 141, 134, 130, 132, 143, 129, 132, 133, 136, 133, 125, 134, 136, 144, 136, 130, 140, 141, 139, 135, 139, 145, 140, 133, 134, 131, 137, 144, 140, 139, 141, 139, 141, 140, 131, 151, 137, 143, 133, 147, 137, 138, 128, 131, 132, 135, 144, 139, 140, 135, 131, 140, 145, 148, 132, 141, 131, 140, 137, 129, 135, 137, 139, 133, 138, 127, 138, 139, 137, 138, 139, 138, 136, 135, 141, 137, 140, 135, 142, 137, 137, 132, 137, 139, 146, 147, 138, 143, 150, 144, 142, 140, 145, 148, 148, 133, 134, 135, 119, 135, 122, 140, 140, 137, 134, 143, 142, 142, 138, 144, 145, 134, 142, 140, 145, 146, 133, 134, 137, 137, 131, 132, 142, 148, 124, 142, 135, 137, 138, 142, 139, 147, 148, 144, 139, 140, 135, 131, 144, 146, 131, 139, 134, 139, 139, 146, 142, 137, 140, 125, 129, 134, 142, 139, 127, 137, 138, 132, 133, 140, 136, 143, 134, 133, 139, 138, 139, 137, 131, 140, 145, 133, 144, 144, 146, 139, 134, 144, 133, 142, 141, 137, 132, 153, 140, 138, 139, 143, 132, 135, 141, 146, 138, 142, 140, 148, 135, 128, 140, 137, 147, 142, 137, 129, 138, 139, 138, 143, 126, 134, 141, 135, 154, 141, 135, 137, 134, 140, 134, 141, 138, 141, 136, 136, 144, 137, 136, 139, 138, 132, 142, 135, 140, 136, 163, 143, 136, 138, 138, 129, 140, 130, 147, 138, 143, 137, 141, 141, 148, 144, 139, 135, 128, 143, 139, 139, 143, 132, 139, 138, 135, 144, 138, 139, 139, 136, 124, 152, 126, 137, 137, 146, 130, 143, 133, 146, 133, 142, 142, 141, 129, 139, 133, 141, 136, 141, 142, 145, 144, 139, 133, 134, 139, 144, 145, 136, 135, 148, 135, 145, 147, 142, 142, 145, 148, 138, 143, 129, 140, 143, 137, 143, 137, 137, 135, 138, 140, 133, 134, 141, 135, 141, 131, 143, 135, 149, 135, 131, 147, 134, 146, 142, 137, 138, 137, 136, 131, 148, 137, 135, 140, 134, 140, 133, 146, 138, 147, 139, 142, 136, 160, 135, 136, 136, 136, 138, 141, 140, 142, 146, 135, 149, 129, 136, 129, 133, 143, 140, 138, 150, 136, 137, 127, 146, 147, 146, 136, 141, 141, 146, 127, 124, 136, 146, 128, 136, 136, 139, 141, 137, 141, 137, 145, 139, 138, 148, 131, 131, 133, 136, 130, 141, 140, 137, 144, 133, 142, 137, 141, 142, 135, 133, 149, 142, 142, 142, 130, 135, 136, 146, 145, 139, 136, 141, 132, 141, 133, 135, 143, 142, 146, 129, 129, 140, 145, 149, 142, 146, 132, 137, 137, 141, 134, 134, 133, 141, 131, 144, 142, 144, 139, 138, 145, 132, 140, 151, 136, 131, 135, 139, 137, 136, 134, 142, 139, 140, 131, 143, 138, 144, 137, 137, 137, 143, 129, 140, 142, 136, 142, 130, 130, 141, 145, 125, 130, 136, 141, 140, 138, 136, 143, 137, 144, 144, 144, 140, 123, 141, 145, 137, 131, 128, 139, 127, 143, 130, 140, 140, 137, 135, 133, 142, 131, 136, 144, 145, 141, 142, 129, 133, 152, 151, 131, 129, 140, 135, 146, 144, 142, 142, 143, 140, 131, 131, 139, 130, 141, 134, 136, 138, 129, 137, 145, 141, 140, 144, 141, 141, 131, 140, 144, 145, 135, 137, 127, 137, 136, 144, 134, 143, 148, 133, 142, 143, 141, 133, 134, 136, 133, 147, 139, 143, 133, 144, 141, 137, 138, 137, 134, 132, 127, 135, 142, 138, 135, 135, 131, 138, 144, 137, 140, 136, 139, 141, 137, 133, 132, 145, 136, 138, 143, 145, 145, 137, 150, 135, 135, 133, 154, 149, 146, 130, 141, 133, 139, 134, 154, 137, 140, 146, 135, 136, 137, 145, 130, 141, 140, 146, 142, 144, 131, 137, 140, 135, 136, 145, 147, 146, 137, 135, 136, 137, 142, 136, 143, 136, 139, 138, 136, 135, 138, 144, 138, 153, 144, 138, 141, 149, 137, 146, 128, 136, 133, 138, 139, 142, 136, 138, 138, 140, 141, 144, 143, 142, 141, 136, 138, 140, 144, 131, 124, 138, 137, 147, 141, 137, 138, 130, 132, 139, 132, 141, 134, 136, 141, 146, 138, 136, 154, 140, 140, 133, 144, 137, 132, 152, 137, 126, 134, 151, 138, 141, 135, 137, 137, 144, 148, 140, 150, 142, 140, 139, 145, 140, 144, 138, 134, 134, 140, 137, 143, 136, 129, 142, 136, 143, 134, 142, 131, 140, 135, 141, 141, 140, 136, 138, 149, 137, 138, 138, 139, 128, 140, 126, 141, 140, 142, 144, 136, 135, 131, 124, 145, 146, 142, 128, 136, 156, 133, 130, 127, 147, 139, 148, 137, 138, 144, 133, 140, 138, 134, 137, 142, 138, 136, 139, 135, 139, 137, 155, 133, 130, 147, 141, 136, 132, 138, 141, 147, 141, 127, 137, 140, 140, 145, 144, 140, 148, 138, 142, 138, 137, 143, 134, 135, 145, 134, 141, 141, 137, 139, 138, 137, 145, 141, 130, 143, 141, 140, 131, 133, 134, 142, 143, 140, 144, 136, 133, 132, 142, 144, 133, 138, 138, 136, 133, 136, 140, 142, 144, 134, 138, 130, 139, 137, 135, 135, 138, 144, 140, 139, 142, 148, 136, 138, 143, 144, 152, 141, 145, 137, 138, 135, 144, 124, 138, 140, 133, 137, 142, 135, 145, 141, 141, 125, 142, 147, 142, 127, 142, 140, 143, 135, 144, 134, 144, 135, 148, 138, 139, 148, 147, 141, 136, 147, 129, 146, 143, 143, 135, 135, 142, 136, 141, 139, 135, 147, 131, 138, 140, 136, 132, 135, 141, 130, 152, 132, 132, 129, 132, 138, 147, 146, 145, 145, 138, 146, 151, 133, 138, 139, 137, 143, 131, 142, 137, 147, 141, 150, 136, 138, 141, 139, 138, 140, 137, 140, 138, 138, 133, 153, 141, 139, 140, 142, 133, 132, 144, 138, 133, 137, 132, 138, 130, 130, 139, 137, 137, 140, 145, 133, 136, 144, 144, 142, 139, 129, 141, 140, 138, 138, 141, 146, 141, 136, 138, 147, 134, 135, 136, 140, 139, 140, 128, 140, 143, 138, 134, 138, 140, 158, 143, 138, 135, 137, 134, 140, 137, 145, 151, 138, 140, 140, 136, 137, 128, 138, 134, 138, 141, 137, 145, 137, 138, 139, 135, 135, 126, 144, 133, 140, 134, 137, 142, 138, 137, 142, 142, 133, 144, 142, 138, 140, 138, 137, 139, 143, 139, 138, 135, 141, 139, 138, 133, 133, 137, 137, 131, 141, 143, 127, 151, 142, 142, 137, 144, 136, 141, 135, 137, 153, 138, 137, 142, 145, 138, 135, 136, 142, 145, 132, 138, 139, 136, 137, 149, 131, 137, 146, 139, 137, 136, 146, 139, 134, 140, 145, 129, 136, 142, 139, 137, 143, 144, 144, 134, 136, 141, 136, 143, 145, 139, 144, 142, 136, 131, 145, 139, 129, 140, 133, 148, 141, 137, 136, 146, 144, 135, 135, 145, 137, 143, 146, 141, 142, 144, 135, 143, 136, 140, 134, 153, 134, 137, 115, 146, 144, 134, 144, 136, 136, 140, 137, 134, 135, 135, 137, 142, 145, 140, 135, 136, 134, 131, 142, 137, 147, 135, 137, 137, 149, 139, 137, 140, 140, 142, 141, 140, 140, 125, 132, 142, 152, 139, 134, 139, 132, 131, 131, 138, 135, 123, 128, 134, 136, 142, 149, 138, 134, 136, 140, 134, 137, 143, 132, 141, 141, 149, 142, 142, 138, 145, 141, 136, 128, 135, 143, 135, 132, 133, 135, 128, 137, 138, 138, 141, 138, 136, 145, 136, 144, 135, 133, 136, 120, 145, 134, 139, 133, 134, 133, 141, 138, 148, 140, 139, 135, 137, 156, 148, 129, 136, 148, 146, 134, 144, 136, 141, 132, 142, 136, 134, 137, 137, 136, 132, 141, 140, 142, 135, 138, 141, 132, 142, 141, 140, 136, 145, 141, 138, 125, 140, 139, 140, 132, 141, 134, 125, 131, 135, 137, 116, 128, 141, 133, 140, 136, 148, 133, 133, 142, 130, 144, 138, 133, 138, 145, 147, 141, 135, 142, 138, 140, 147, 138, 132, 133, 142, 132, 140, 139, 135, 144, 135, 137, 144, 147, 141, 142, 133, 140, 136, 135, 141, 148, 134, 136, 136, 138, 140, 132, 133, 133, 141, 140, 147, 136, 143, 134, 143, 139, 141, 138, 140, 141, 147, 134, 138, 142, 143, 140, 147, 125, 130, 141, 139, 142, 138, 142, 134, 139, 138, 136, 136, 132, 137, 142, 141, 142, 132, 137, 135, 143, 141, 142, 133, 141, 141, 138, 138, 132, 138, 133, 136, 140, 143, 153, 138, 131, 140, 140, 141, 139, 153, 143, 147, 138, 145, 146, 145, 138, 141, 137, 138, 135, 137, 151, 137, 139, 133, 141, 139, 142, 142, 145, 139, 139, 140, 143, 142, 146, 146, 140, 143, 133, 134, 141, 126, 145, 136, 144, 141, 138, 139, 138, 127, 139, 139, 138, 138, 143, 139, 142, 139, 143, 137, 146, 141, 135, 145, 148, 137, 140, 130, 138, 137, 144, 134, 137, 131, 143, 136, 131, 144, 135, 142, 127, 141, 142, 137, 137, 142, 142, 151, 137, 141, 138, 146, 139, 140, 135, 135, 133, 136, 138, 132, 136, 136, 134, 141, 147, 144, 143, 132, 141, 143, 134, 140, 142, 145, 140, 148, 125, 139, 146, 131, 131, 138, 125, 137, 138, 145, 143, 134, 131, 139, 138, 139, 142, 130, 133, 141, 136, 138, 134, 144, 141, 138, 137, 151, 136, 136, 137, 141, 136, 140, 137, 137, 138, 131, 143, 138, 138, 149, 141, 136, 140, 139, 135, 131, 130, 133, 135, 142, 148, 138, 140, 138, 141, 132, 134, 138, 134, 142, 137, 137, 138, 137, 137, 130, 145, 135, 143, 153, 141, 132, 147, 131, 143, 138, 144, 146, 136, 137, 145, 139, 140, 144, 150, 131, 139, 137, 134, 137, 143, 143, 136, 136, 146, 138, 142, 125, 139, 140, 133, 140, 136, 142, 148, 139, 135, 146, 133, 140, 129, 137, 145, 143, 131, 142, 137, 139, 146, 138, 140, 137, 144, 142, 143, 132, 135, 141, 141, 141, 140, 138, 143, 142, 133, 137, 138, 144, 136, 142, 140, 141, 138, 128, 133, 145, 138, 140, 137, 148, 144, 132, 135, 136, 144, 144, 142, 140, 137, 133, 131, 142, 137, 142, 143, 141, 136, 139, 142, 141, 135, 141, 136, 139, 140, 140, 140, 146, 135, 138, 136, 137, 154, 136, 139, 136, 145, 143, 138, 139, 150, 140, 143, 144, 136, 138, 141, 141, 137, 138, 146, 145, 134, 142, 133, 138, 138, 137, 147, 140, 134, 130, 134, 133, 142, 146, 140, 140, 141, 137, 135, 135, 139, 138, 132, 142, 127, 139, 137, 141, 140, 141, 128, 140, 141, 143, 134, 135, 124, 140, 137, 139, 131, 135, 143, 138, 146, 138, 143, 141, 135, 130, 143, 137, 136, 137, 142, 135, 133, 133, 147, 141, 137, 142, 140, 126, 145, 129, 140, 145, 140, 142, 141, 136, 136, 137, 129, 139, 134, 130, 145, 133, 137, 143, 146, 143, 150, 151, 145, 148, 134, 144, 147, 137, 135, 132, 134, 141, 130, 132, 142, 133, 134, 134, 144, 132, 136, 133, 143, 136, 137, 141, 134, 140, 133, 140, 133, 140, 142, 144, 145, 142, 143, 134, 135, 130, 150, 139, 132, 134, 144, 139, 140, 138, 140, 141, 137, 147, 137, 140, 132, 143, 138, 136, 137, 136, 135, 141, 139, 125, 139, 141, 137, 139, 134, 136, 138, 149, 141, 141, 138, 138, 135, 139, 141, 138, 132, 140, 135, 138, 138, 137, 140, 144, 135, 142, 118, 134, 140, 139, 146, 134, 137, 145, 143, 142, 137, 140, 138, 127, 135, 137, 139, 140, 137, 135, 145, 134, 137, 144, 140, 141, 135, 137, 133, 143, 146, 133, 130, 137, 136, 137, 145, 141, 141, 141, 141, 138, 126, 142, 144, 143, 135, 144, 140, 144, 140, 136, 155, 147, 137, 138, 131, 142, 135, 125, 141, 138, 141, 143, 130, 132, 140, 136, 136, 142, 142, 139, 136, 148, 141, 136, 141, 137, 141, 144, 151, 148, 134, 139, 146, 134, 145, 140, 144, 139, 150, 152, 147, 133, 143, 126, 146, 142, 143, 142, 132, 131, 141, 136, 141, 137, 138, 146, 130, 134, 146, 146, 137, 136, 137, 137, 137, 146, 150, 136, 142, 140, 142, 132, 134, 136, 143, 136, 139, 142, 139, 147, 146, 144, 137, 134, 138, 127, 144, 135, 135, 136, 146, 147, 139, 134, 137, 129, 140, 141, 132, 135, 135, 138, 149, 143, 146, 137, 129, 134, 150, 139, 139, 132, 153, 141, 141, 133, 134, 150, 135, 132, 134, 138, 135, 141, 142, 139, 140, 146, 133, 140, 137, 145, 141, 136, 136, 141, 136, 138, 143, 136, 140, 146, 144, 141, 131, 137, 137, 144, 137, 136, 151, 143, 145, 146, 143, 135, 134, 147, 143, 142, 135, 144, 141, 142, 139, 143, 136, 138, 134, 140, 137, 125, 134, 147, 137, 134, 139, 141, 151, 144, 142, 140, 140, 141, 145, 153, 155, 138, 136, 146, 157, 135, 141, 139, 137, 145, 138, 138, 134, 132, 133, 133, 136, 136, 136, 144, 141, 139, 136, 132, 140, 133, 137, 133, 130, 137, 133, 136, 144, 147, 129, 131, 138, 139, 143, 139, 141, 144, 138, 136, 136, 135, 144, 135, 132, 142, 136, 140, 135, 135, 145, 137, 135, 137, 141, 141, 146, 120, 146, 136, 138, 137, 143, 136, 130, 145, 142, 144, 132, 124, 145, 142, 136, 134, 134, 138, 138, 138, 139, 140, 134, 141, 126, 149, 138, 139, 126, 140, 139, 133, 145, 134, 145, 136, 136, 136, 136, 141, 141, 140, 137, 145, 149, 130, 149, 139, 144, 148, 143, 150, 128, 136, 144, 132, 145, 132, 144, 134, 134, 137, 137, 134, 141, 134, 134, 133, 141, 143, 130, 123, 141, 134, 136, 129, 140, 138, 148, 135, 141, 142, 142, 142, 138, 138, 139, 127, 147, 146, 143, 132, 133, 140, 135, 136, 139, 152, 130, 146, 133, 144, 141, 141, 138, 145, 141, 153, 146, 142, 139, 153, 141, 136, 135, 136, 141, 134, 143, 144, 140, 134, 138, 157, 132, 148, 141, 133, 127, 136, 135, 144, 132, 136, 146, 138, 118, 136, 145, 143, 138, 139, 138, 144, 135, 137, 137, 143, 138, 146, 134, 151, 131, 138, 133, 128, 155, 134, 138, 135, 140, 133, 138, 141, 141, 146, 141, 141, 164, 145, 89, 149, 128, 138, 148, 143, 138, 127, 142, 141, 140, 137, 132, 132, 137, 146, 143, 139, 137, 150, 124, 141, 132, 140, 147, 136, 140, 140, 137, 138, 140, 139, 153, 135, 142, 136, 145, 138, 146, 143, 138, 139, 141, 146, 149, 136, 149, 136, 139, 155, 138, 160, 147, 139, 140, 139, 149, 123, 126, 139, 133, 139, 149, 132, 142, 141, 144, 157, 138, 132, 123, 154, 140, 142, 138, 142, 143, 137, 142, 147, 131, 142, 130, 134, 122, 133, 147, 132, 129, 140, 132, 136, 120, 149, 141, 142, 127, 146, 138, 142, 135, 136, 138, 147, 150, 133, 144, 144, 133, 140, 146, 141, 143, 138, 135, 131, 136, 141, 138, 139, 142, 134, 138, 142, 137, 138, 134, 135, 138, 133, 137, 139, 131, 145, 145, 141, 139, 141, 140, 134, 133, 142, 153, 141, 145, 141, 140, 132, 134, 138, 138, 137, 140, 151, 141, 141, 129, 139, 140, 138, 140, 139, 139, 147, 135, 142, 137, 126, 140, 136, 134, 138, 140, 138, 139, 143, 143, 140, 142, 140, 137, 139, 135, 139, 134, 141, 141, 143, 133, 144, 133, 129, 150, 137, 151, 150, 138, 141, 144, 141, 129, 144, 138, 135, 141, 140, 140, 141, 132, 134, 153, 145, 140, 133, 136, 138, 145, 146, 134, 130, 142, 140, 130, 142, 137, 149, 136, 133, 139, 138, 135, 131, 139, 128, 133, 144, 138, 136, 138, 137, 138, 146, 142, 140, 130, 133, 141, 146, 137, 138, 137, 131, 144, 140, 140, 125, 141, 137, 146, 129, 134, 141, 137, 136, 139, 141, 145, 135, 142, 136, 134, 138, 141, 144, 150, 142, 142, 132, 122, 136, 141, 136, 128, 133, 138, 138, 140, 140, 144, 137, 142, 137, 139, 141, 145, 140, 126, 146, 139, 137, 142, 137, 131, 139, 138, 133, 138, 144, 137, 137, 136, 145, 136, 136, 140, 132, 138, 138, 138, 136, 142, 143, 142, 158, 137, 139, 144, 131, 148, 137, 135, 142, 143, 130, 134, 136, 136, 134, 138, 137, 138, 137, 145, 139, 130, 141, 143, 138, 133, 138, 140, 126, 136, 140, 138, 141, 136, 139, 142, 134, 135, 137, 139, 133, 136, 145, 131, 142, 135, 128, 136, 125, 137, 131, 139, 136, 137, 137, 138, 141, 140, 140, 139, 137, 136, 143, 140, 139, 140, 131, 144, 128, 138, 139, 141, 146, 137, 142, 135, 135, 126, 136, 131, 145, 140, 142, 137, 145, 137, 142, 138, 139, 139, 139, 128, 138, 136, 141, 139, 141, 134, 135, 136, 139, 130, 137, 138, 139, 138, 141, 155, 143, 135, 135, 126, 147, 138, 132, 136, 143, 135, 132, 140, 135, 144, 136, 142, 145, 131, 132, 141, 137, 134, 140, 137, 145, 136, 137, 145, 133, 145, 135, 138, 134, 132, 134, 140, 141, 131, 140, 140, 121, 140, 136, 133, 135, 137, 134, 137, 138, 141, 138, 148, 133, 138, 141, 143, 145, 139, 143, 143, 130, 143, 144, 140, 146, 144, 143, 134, 138, 141, 142, 142, 144, 142, 140, 149, 134, 140, 140, 136, 139, 139, 143, 136, 129, 134, 143, 141, 133, 142, 137, 139, 135, 144, 135, 124, 140, 142, 134, 132, 144, 134, 139, 132, 139, 142, 145, 140, 141, 140, 146, 138, 124, 141, 139, 132, 128, 139, 143, 150, 142, 141, 137, 146, 135, 138, 141, 138, 138, 141, 131, 142, 141, 132, 131, 138, 134, 136, 129, 136, 133, 138, 143, 146, 150, 139, 137, 138, 150, 137, 134, 144, 137, 141, 139, 128, 139, 136, 137, 142, 137, 139, 139, 136, 142, 140, 140, 142, 136, 136, 139, 139, 141, 131, 134, 130, 141, 138, 140, 137, 139, 133, 141, 140, 136, 136, 139, 135, 138, 141, 137, 143, 143, 134, 139, 134, 138, 135, 147, 140, 134, 138, 135, 138, 143, 134, 140, 143, 140, 137, 133, 140, 136, 152, 144, 129, 141, 135, 130, 139, 137, 140, 139, 138, 138, 144, 136, 142, 144, 138, 142, 134, 140, 138, 137, 140, 139, 142, 135, 140, 135, 142, 134, 138, 138, 140, 141, 138, 141, 137, 141, 141, 148, 141, 143, 142, 137, 137, 142, 137, 135, 134, 142, 137, 138, 139, 133, 137, 146, 146, 139, 144, 134, 142, 146, 138, 132, 135, 134, 140, 138, 133, 137, 143, 136, 140, 129, 137, 134, 136, 143, 138, 136, 139, 138, 138, 139, 141, 145, 138, 142, 134, 141, 139, 142, 138, 135, 135, 136, 142, 140, 141, 140, 136, 142, 143, 138, 140, 143, 138, 141, 142, 136, 135, 139, 135, 136, 136, 138, 144, 133, 137, 136, 137, 135, 136, 136, 135, 138, 144, 134, 144, 138, 143, 138, 142, 139, 143, 141, 139, 140, 155, 141, 140, 138, 141, 137, 146, 135, 136, 137, 138, 137, 141, 138, 135, 132, 140, 143, 138, 134, 144, 133, 135, 139, 138, 141, 143, 130, 146, 138, 144, 141, 135, 144, 136, 138, 136, 139, 141, 144, 144, 131, 138, 136, 140, 140, 143, 143, 142, 138, 138, 142, 141, 137, 135, 136, 138, 141, 134, 140, 140, 137, 147, 138, 140, 134, 135, 136, 144, 139, 138, 142, 140, 135, 138, 140, 138, 138, 134, 124, 137, 139, 136, 137, 137, 139, 139, 136, 144, 138, 140, 139, 138, 139, 141, 140, 137, 136, 137, 141, 135, 142, 136, 138, 141, 137, 134, 138, 139, 136, 139, 142, 141, 138, 141, 139, 136, 136, 135, 146, 142, 138, 138, 139, 141, 139, 135, 137, 143, 139, 144, 144, 130, 140, 139, 142, 136, 145, 134, 140, 134, 139, 135, 134, 140, 144, 136, 141, 132, 135, 135, 141, 141, 145, 137, 143, 138, 135, 141, 134, 142, 141, 140, 140, 139, 141, 141, 137, 141, 137, 137, 142, 141, 133, 139, 134, 137, 143, 140, 143, 146, 138, 138, 141, 136, 133, 137, 142, 141, 147, 137, 143, 143, 145, 141, 140, 142, 142, 135, 139, 142, 140, 141, 143, 141, 142, 136, 129, 138, 139, 137, 146, 136, 143, 142, 137, 136, 140, 135, 140, 140, 138, 136, 144, 133, 138, 141, 144, 137, 132, 135, 143, 139, 134, 133, 141, 138, 142, 141, 139, 137, 140, 138, 137, 140, 143, 139, 144, 137, 141, 141, 138, 134, 137, 136, 138, 140, 141, 135, 136, 148, 139, 146, 141, 141, 137, 137, 142, 125, 136, 141, 133, 140, 134, 141, 141, 139, 143, 137, 158, 130, 134, 137, 144, 138, 140, 137, 135, 145, 139, 116, 134, 137, 139, 147, 138, 136, 141, 137, 141, 136, 138, 137, 141, 142, 141, 140, 149, 140, 137, 137, 137, 142, 143, 137, 139, 142, 141, 142, 135, 144, 141, 143, 146, 138, 140, 137, 133, 139, 140, 134, 137, 135, 145, 146, 139, 136, 145, 141, 141, 141, 137, 138, 143, 134, 140, 137, 138, 148, 142, 140, 135, 137, 144, 140, 136, 142, 138, 138, 143, 140, 140, 138, 137, 139, 141, 136, 143, 141, 140, 146, 138, 134, 136, 142, 145, 141, 138, 140, 142, 135, 129, 138, 135, 139, 139, 143, 141, 135, 146, 138, 138, 140, 130, 136, 143, 139, 132, 137, 139, 145, 142, 137, 135, 139, 140, 140, 135, 133, 133, 142, 141, 140, 140, 137, 142, 139, 138, 134, 137, 140, 137, 145, 141, 137, 137, 148, 132, 140, 140, 134, 142, 142, 136, 138, 141, 139, 144, 140, 141, 138, 135, 130, 137, 137, 143, 139, 131, 138, 137, 139, 143, 134, 133, 145, 136, 136, 148, 141, 142, 134, 141, 139, 139, 134, 138, 140, 134, 140, 134, 144, 138, 139, 135, 138, 139, 129, 138, 139, 134, 148, 133, 137, 141, 134, 133, 135, 135, 139, 139, 134, 143, 138, 141, 144, 137, 140, 136, 135, 133, 135, 147, 136, 140, 138, 138, 138, 140, 146, 140, 137, 140, 133, 138, 138, 145, 151, 140, 146, 142, 137, 126, 140, 139, 136, 131, 140, 140, 137, 144, 146, 137, 139, 138, 143, 137, 146, 134, 140, 135, 145, 136, 138, 135, 139, 146, 144, 139, 138, 146, 146, 138, 132, 137, 142, 140, 127, 155, 137, 136, 138, 133, 142, 138, 133, 142, 138, 136, 141, 130, 137, 140, 136, 134, 137, 139, 139, 131, 144, 135, 142, 142, 144, 129, 128, 137, 132, 146, 134, 139, 134, 134, 140, 130, 136, 135, 137, 144, 140, 139, 141, 133, 140, 140, 135, 135, 144, 132, 142, 142, 134, 137, 142, 141, 137, 135, 140, 140, 135, 141, 136, 134, 133, 139, 142, 139, 147, 139, 134, 143, 135, 138, 143, 141, 140, 134, 144, 132, 138, 137, 140, 145, 141, 137, 142, 138, 133, 142, 141, 137, 137, 134, 141, 143, 138, 138, 140, 145, 138, 134, 132, 148, 136, 142, 136, 139, 139, 146, 130, 138, 140, 138, 136, 138, 130, 138, 141, 134, 145, 136, 134, 140, 142, 135, 147, 135, 139, 136, 139, 144, 147, 141, 138, 138, 134, 135, 138, 129, 144, 133, 145, 144, 140, 139, 133, 139, 130, 144, 136, 139, 133, 137, 144, 136, 147, 145, 136, 140, 140, 136, 142, 139, 135, 142, 137, 136, 136, 139, 149, 139, 141, 137, 135, 145, 139, 141, 140, 136, 137, 144, 138, 135, 139, 143, 137, 140, 136, 141, 137, 136, 136, 142, 134, 131, 139, 137, 133, 134, 136, 138, 139, 136, 138, 146, 135, 133, 134, 139, 136, 139, 138, 145, 140, 129, 138, 140, 138, 141, 145, 130, 128, 141, 132, 139, 138, 137, 141, 137, 142, 143, 137, 136, 137, 147, 137, 145, 142, 136, 137, 135, 145, 143, 145, 139, 143, 138, 145, 139, 145, 139, 139, 139, 137, 142, 135, 136, 145, 136, 132, 144, 135, 144, 141, 140, 136, 147, 140, 142, 139, 137, 140, 145, 134, 139, 142, 144, 138, 140, 141, 144, 142, 137, 138, 141, 135, 138, 138, 142, 142, 139, 141, 140, 137, 137, 138, 141, 151, 137, 139, 140, 135, 137, 139, 136, 135, 134, 136, 139, 132, 150, 138, 144, 144, 137, 138, 141, 138, 145, 133, 135, 140, 141, 143, 134, 138, 135, 146, 137, 134, 136, 132, 138, 140, 139, 138, 145, 138, 131, 136, 136, 144, 131, 132, 155, 125, 140, 151, 135, 145, 137, 137, 149, 147, 144, 146, 134, 134, 138, 136, 142, 131, 140, 133, 140, 134, 138, 130, 137, 150, 139, 133, 143, 139, 136, 137, 142, 137, 149, 141, 138, 144, 142, 138, 145, 142, 136, 145, 147, 143, 137, 142, 146, 142, 143, 135, 139, 145, 144, 136, 154, 121, 144, 136, 140, 140, 146, 139, 129, 120, 133, 146, 146, 141, 131, 124, 137, 132, 137, 129, 158, 139, 123, 147, 134, 139, 137, 137, 151, 139, 146, 146, 140, 146, 141, 138, 143, 143, 149, 132, 141, 129, 144, 154, 127, 128, 137, 132, 144, 140, 139, 140, 139, 141, 141, 138, 135, 140, 138, 153, 135, 146, 130, 146, 144, 144, 148, 134, 132, 144, 136, 139, 149, 137, 136, 145, 141, 136, 136, 133, 151, 135, 130, 130, 147, 138, 139, 125, 136, 135, 139, 139, 133, 145, 121, 150, 141, 137, 140, 141, 134, 132, 148, 146, 139, 138, 134, 148, 129, 136, 128, 139, 141, 143, 144, 139, 140, 138, 138, 136, 148, 132, 134, 138, 148, 137, 134, 153, 146, 142, 137, 132, 138, 144, 152, 145, 147, 139, 141, 132, 136, 134, 136, 124, 134, 138, 137, 136, 131, 132, 131, 135, 142, 140, 131, 141, 133, 141, 141, 144, 126, 135, 135, 134, 135, 135, 139, 141, 134, 141, 144, 124, 136, 135, 140, 142, 147, 137, 135, 138, 143, 141, 139, 141, 144, 136, 139, 137, 129, 134, 133, 139, 133, 135, 138, 140, 140, 131, 142, 137, 136, 137, 131, 146, 147, 134, 141, 138, 134, 138, 145, 137, 149, 142, 131, 138, 142, 141, 141, 137, 137, 137, 129, 125, 136, 143, 140, 142, 141, 132, 155, 137, 135, 132, 143, 120, 143, 130, 128, 134, 149, 136, 140, 137, 138, 133, 136, 139, 137, 126, 140, 148, 145, 133, 146, 133, 139, 139, 137, 142, 135, 135, 136, 135, 135, 148, 127, 140, 146, 134, 141, 138, 132, 129, 147, 147, 152, 135, 139, 135, 127, 150, 131, 143, 130, 146, 146, 144, 137, 132, 145, 137, 134, 131, 140, 135, 142, 138, 133, 144, 127, 137, 133, 140, 134, 141, 148, 136, 141, 130, 144, 139, 138, 142, 137, 142, 123, 136, 138, 147, 137, 136, 130, 138, 141, 143, 145, 128, 142, 136, 138, 145, 143, 150, 142, 137, 146, 138, 134, 142, 129, 136, 135, 136, 147, 134, 147, 138, 151, 132, 141, 141, 141, 135, 128, 121, 135, 137, 140, 155, 138, 141, 150, 139, 145, 136, 142, 137, 141, 130, 138, 138, 137, 136, 147, 143, 137, 146, 152, 132, 140, 133, 134, 136, 138, 148, 149, 133, 136, 127, 142, 139, 147, 126, 137, 133, 129, 135, 142, 139, 140, 135, 140, 138, 133, 136, 144, 135, 133, 141, 139, 136, 136, 142, 135, 142, 138, 130, 126, 137, 143, 138, 129, 140, 146, 140, 137, 134, 135, 142, 143, 150, 131, 134, 135, 135, 132, 136, 147, 134, 144, 139, 145, 141, 143, 131, 138, 132, 138, 143, 130, 141, 140, 140, 142, 143, 144, 136, 149, 137, 135, 134, 142, 139, 136, 137, 141, 143, 139, 137, 138, 130, 136, 144, 134, 142, 130, 136, 140, 139, 140, 147, 135, 138, 136, 126, 139, 152, 129, 147, 137, 149, 139, 136, 144, 127, 145, 137, 129, 125, 133, 133, 135, 134, 140, 149, 134, 143, 133, 135, 138, 138, 124, 134, 128, 132, 135, 138, 140, 138, 142, 132, 135, 139, 132, 139, 138, 127, 143, 126, 140, 142, 130, 142, 130, 135, 144, 143, 134, 141, 141, 133, 139, 140, 141, 142, 137, 140, 143, 132, 125, 136, 134, 137, 145, 136, 145, 140, 129, 142, 137, 132, 140, 137, 150, 135, 132, 122, 131, 140, 136, 142, 139, 142, 144, 147, 140, 149, 133, 138, 143, 139, 142, 140, 140, 134, 143, 141, 152, 137, 139, 139, 140, 144, 150, 132, 137, 136, 142, 143, 146, 138, 144, 144, 128, 151, 142, 141, 138, 141, 134, 143, 134, 138, 132, 132, 135, 155, 139, 150, 140, 138, 134, 144, 140, 136, 150, 144, 135, 125, 146, 136, 141, 137, 141, 132, 137, 141, 134, 139, 141, 146, 141, 139, 138, 137, 132, 138, 126, 137, 140, 145, 140, 134, 129, 137, 138, 140, 143, 133, 139, 141, 128, 130, 146, 151, 133, 139, 141, 135, 140, 130, 132, 144, 142, 144, 137, 146, 133, 140, 136, 137, 137, 137, 142, 142, 132, 136, 148, 139, 139, 130, 136, 141, 132, 138, 140, 137, 144, 138, 133, 147, 138, 131, 133, 139, 138, 140, 146, 144, 143, 141, 131, 143, 143, 136, 137, 133, 136, 143, 140, 143, 126, 141, 137, 136, 133, 133, 132, 136, 137, 133, 144, 137, 136, 141, 137, 131, 130, 130, 137, 133, 140, 139, 139, 137, 142, 140, 147, 144, 135, 142, 139, 138, 138, 140, 140, 138, 147, 135, 136, 138, 137, 140, 143, 133, 136, 134, 131, 138, 141, 141, 145, 136, 143, 136, 132, 134, 139, 146, 146, 134, 146, 135, 137, 140, 154, 137, 138, 139, 138, 138, 137, 143, 144, 131, 136, 133, 139, 143, 137, 137, 140, 140, 144, 142, 137, 145, 138, 140, 143, 143, 136, 143, 136, 147, 145, 143, 150, 139, 139, 132, 147, 141, 140, 135, 141, 134, 137, 131, 134, 137, 146, 138, 132, 126, 139, 142, 142, 130, 138, 141, 143, 145, 142, 133, 137, 144, 145, 136, 144, 138, 141, 147, 141, 142, 132, 138, 146, 140, 135, 132, 140, 134, 147, 144, 138, 137, 129, 141, 135, 148, 136, 151, 140, 132, 145, 139, 146, 136, 144, 140, 136, 149, 144, 140, 154, 135, 145, 136, 141, 147, 133, 138, 138, 134, 135, 143, 139, 133, 134, 132, 131, 134, 134, 138, 133, 142, 137, 136, 148, 139, 137, 147, 136, 144, 137, 145, 141, 135, 146, 132, 136, 138, 141, 138, 143, 132, 159, 128, 142, 135, 131, 142, 143, 138, 146, 139, 129, 139, 135, 125, 144, 128, 133, 136, 152, 145, 132, 134, 140, 132, 136, 143, 140, 137, 143, 145, 136, 135, 139, 141, 130, 130, 137, 145, 134, 134, 131, 131, 138, 134, 151, 136, 145, 140, 141, 136, 144, 153, 151, 143, 131, 140, 132, 149, 134, 134, 130, 150, 147, 132, 139, 152, 138, 135, 133, 141, 146, 134, 135, 136, 140, 136, 129, 135, 128, 131, 147, 147, 138, 146, 147, 144, 135, 127, 135, 142, 142, 125, 156, 133, 137, 130, 115, 131, 138, 139, 143, 140, 145, 143, 139, 148, 129, 137, 145, 142, 142, 140, 152, 133, 151, 138, 133, 140, 140, 136, 141, 147, 135, 140, 142, 141, 140, 139, 140, 144, 142, 140, 136, 144, 131, 141, 138, 138, 145, 139, 139, 147, 141, 127, 145, 140, 145, 133, 145, 150, 146, 137, 137, 144, 135, 134, 145, 148, 137, 140, 132, 143, 141, 137, 138, 143, 147, 144, 137, 134, 128, 146, 140, 136, 136, 137, 140, 136, 136, 138, 133, 141, 143, 131, 148, 148, 138, 147, 138, 138, 130, 134, 140, 146, 139, 139, 135, 142, 137, 135, 135, 140, 133, 138, 147, 140, 139, 143, 146, 141, 144, 139, 138, 140, 140, 129, 135, 145, 143, 142, 144, 136, 142, 138, 142, 139, 143, 127, 134, 139, 134, 137, 134, 141, 137, 134, 139, 136, 137, 150, 147, 144, 141, 135, 135, 136, 138, 133, 142, 133, 144, 134, 141, 135, 146, 142, 134, 133, 136, 135, 141, 135, 134, 141, 157, 141, 145, 139, 144, 142, 145, 141, 148, 147, 133, 143, 135, 131, 123, 140, 153, 131, 139, 141, 145, 144, 140, 130, 147, 138, 143, 129, 144, 142, 147, 139, 147, 143, 140, 138, 140, 147, 133, 142, 137, 143, 136, 141, 136, 130, 147, 146, 147, 134, 147, 133, 149, 139, 143, 146, 137, 140, 139, 138, 146, 154, 138, 131, 137, 149, 129, 141, 138, 138, 157, 138, 135, 128, 143, 136, 140, 138, 150, 130, 127, 148, 144, 135, 129, 134, 145, 136, 136, 155, 144, 143, 144, 135, 139, 143, 157, 144, 139, 138, 130, 143, 137, 138, 147, 147, 138, 144, 134, 149, 135, 141, 129, 137, 129, 137, 141, 136, 126, 129, 139, 130, 145, 145, 135, 130, 142, 143, 134, 145, 140, 144, 136, 136, 141, 133, 134, 142, 137, 149, 138, 136, 131, 137, 136, 144, 135, 145, 143, 126, 137, 140, 136, 138, 129, 146, 141, 151, 139, 135, 147, 133, 144, 136, 144, 132, 152, 148, 135, 144, 137, 151, 151, 141, 139, 145, 133, 130, 126, 131, 135, 133, 131, 137, 135, 138, 137, 137, 142, 140, 143, 139, 143, 151, 136, 140, 141, 154, 147, 132, 127, 139, 119, 140, 152, 128, 145, 167, 144, 151, 130, 133, 142, 140, 139, 133, 140, 131, 135, 148, 131, 142, 133, 147, 140, 162, 145, 135, 147, 127, 139, 149, 136, 129, 149, 133, 141, 137, 143, 136, 133, 147, 143, 138, 131, 128, 148, 135, 135, 144, 140, 135, 142, 138, 147, 136, 144, 133, 132, 138, 128, 136, 134, 127, 136, 140, 155, 146, 136, 142, 147, 131, 135, 133, 151, 144, 142, 142, 135, 134, 136, 141, 141, 142, 142, 141, 138, 144, 140, 137, 138, 144, 138, 139, 140, 141, 137, 142, 150, 144, 138, 136, 137, 148, 135, 139, 136, 139, 138, 141, 142, 138, 140, 142, 135, 145, 129, 138, 140, 134, 137, 137, 142, 142, 142, 132, 141, 135, 134, 138, 136, 133, 137, 138, 139, 141, 125, 139, 142, 138, 134, 137, 138, 133, 137, 144, 135, 144, 151, 139, 151, 140, 133, 134, 138, 133, 141, 135, 138, 143, 140, 143, 142, 145, 133, 140, 140, 131, 136, 142, 140, 144, 141, 136, 134, 145, 144, 138, 146, 138, 149, 141, 132, 135, 141, 140, 132, 133, 133, 133, 138, 142, 136, 139, 142, 137, 139, 146, 138, 142, 132, 140, 136, 138, 137, 133, 143, 148, 139, 135, 147, 144, 138, 141, 141, 140, 139, 140, 144, 132, 141, 134, 135, 137, 136, 142, 134, 139, 143, 141, 146, 141, 138, 144, 141, 138, 138, 138, 144, 140, 146, 138, 143, 148, 143, 136, 132, 134, 146, 140, 137, 143, 141, 144, 142, 145, 144, 150, 136, 143, 150, 135, 144, 138, 143, 138, 139, 140, 137, 141, 135, 140, 141, 136, 158, 135, 135, 144, 141, 141, 136, 138, 140, 147, 141, 144, 149, 142, 137, 132, 142, 139, 142, 139, 143, 143, 144, 135, 138, 139, 141, 144, 135, 141, 142, 136, 134, 141, 142, 139, 134, 139, 137, 134, 146, 138, 141, 135, 137, 139, 139, 136, 141, 138, 138, 145, 140, 138, 134, 142, 135, 138, 134, 144, 136, 135, 138, 132, 142, 146, 139, 133, 137, 143, 139, 140, 140, 142, 134, 134, 138, 147, 148, 141, 145, 142, 139, 132, 134, 134, 135, 129, 148, 133, 143, 135, 136, 138, 146, 142, 135, 143, 136, 138, 137, 137, 140, 135, 137, 133, 136, 135, 133, 142, 136, 139, 136, 137, 147, 136, 139, 130, 133, 136, 138, 136, 138, 134, 141, 141, 138, 138, 137, 134, 143, 121, 143, 138, 136, 142, 137, 130, 140, 135, 140, 138, 144, 134, 138, 140, 145, 138, 136, 140, 134, 138, 143, 139, 140, 133, 137, 144, 121, 128, 136, 143, 144, 140, 131, 138, 139, 134, 143, 143, 143, 140, 140, 133, 131, 134, 149, 146, 141, 142, 141, 133, 134, 145, 133, 135, 143, 133, 132, 133, 139, 137, 133, 154, 146, 138, 143, 136, 139, 136, 145, 140, 145, 135, 136, 137, 133, 139, 140, 139, 147, 134, 139, 138, 137, 137, 145, 142, 141, 141, 135, 139, 139, 144, 143, 136, 145, 139, 138, 138, 143, 143, 133, 140, 142, 140, 140, 136, 143, 140, 136, 143, 140, 135, 134, 142, 139, 141, 134, 140, 134, 143, 141, 135, 140, 139, 135, 138, 142, 133, 136, 139, 139, 139, 137, 134, 141, 134, 131, 137, 140, 136, 137, 128, 134, 135, 143, 141, 137, 135, 133, 135, 133, 135, 140, 141, 139, 146, 138, 139, 133, 135, 142, 141, 141, 126, 137, 136, 143, 134, 141, 133, 139, 137, 138, 141, 143, 137, 140, 138, 128, 144, 146, 139, 142, 135, 137, 134, 129, 136, 130, 135, 142, 143, 132, 129, 136, 142, 144, 149, 140, 134, 141, 131, 146, 145, 137, 152, 143, 144, 134, 132, 144, 148, 137, 144, 138, 131, 138, 137, 137, 142, 137, 134, 139, 140, 144, 146, 145, 137, 133, 146, 140, 137, 139, 135, 136, 136, 131, 134, 143, 134, 139, 130, 140, 141, 149, 146, 139, 138, 136, 140, 144, 134, 144, 134, 129, 130, 140, 142, 141, 128, 140, 146, 142, 146, 144, 132, 139, 127, 135, 142, 135, 141, 138, 136, 139, 133, 140, 137, 133, 137, 146, 140, 142, 136, 129, 138, 127, 143, 140, 135, 144, 131, 127, 140, 140, 144, 133, 130, 139, 132, 140, 137, 136, 141, 151, 145, 136, 142, 136, 137, 127, 138, 139, 141, 132, 137, 141, 132, 134, 140, 140, 132, 144, 147, 138, 139, 150, 142, 135, 134, 141, 136, 134, 129, 144, 137, 137, 146, 134, 143, 131, 142, 139, 128, 143, 142, 135, 131, 139, 132, 139, 135, 134, 144, 141, 136, 140, 152, 130, 139, 137, 138, 138, 138, 138, 135, 137, 140, 143, 137, 133, 146, 140, 135, 136, 135, 145, 140, 147, 139, 136, 134, 144, 133, 141, 135, 146, 137, 134, 152, 127, 140, 149, 145, 131, 136, 135, 129, 134, 139, 143, 132, 133, 147, 144, 144, 136, 141, 142, 144, 142, 139, 136, 135, 137, 130, 128, 148, 148, 149, 139, 139, 144, 141, 135, 140, 144, 143, 143, 133, 138, 150, 136, 135, 133, 134, 135, 135, 136, 144, 134, 134, 136, 134, 141, 149, 144, 141, 133, 136, 135, 141, 134, 147, 140, 142, 136, 136, 145, 132, 145, 140, 144, 146, 150, 134, 148, 139, 140, 136, 139, 133, 144, 157, 140, 138, 127, 137, 144, 140, 137, 135, 141, 144, 135, 138, 145, 137, 140, 136, 135, 139, 141, 142, 140, 144, 142, 143, 133, 135, 141, 143, 137, 142, 140, 142, 134, 127, 138, 145, 138, 136, 134, 142, 137, 146, 132, 134, 138, 135, 145, 129, 144, 138, 136, 133, 140, 138, 145, 134, 141, 150, 145, 130, 143, 146, 135, 139, 146, 135, 143, 140, 151, 146, 146, 135, 133, 140, 134, 147, 135, 134, 140, 135, 142, 139, 141, 137, 146, 139, 135, 133, 132, 150, 139, 147, 141, 141, 156, 136, 125, 137, 135, 138, 146, 140, 130, 132, 138, 134, 136, 141, 142, 143, 130, 138, 134, 141, 132, 139, 135, 140, 148, 132, 138, 138, 149, 144, 133, 142, 140, 148, 140, 139, 142, 148, 128, 135, 147, 151, 137, 140, 144, 136, 137, 131, 134, 134, 136, 141, 135, 133, 137, 138, 137, 139, 135, 140, 143, 133, 132, 138, 138, 142, 147, 134, 133, 132, 136, 133, 147, 132, 142, 134, 143, 136, 138, 131, 145, 132, 135, 139, 135, 146, 135, 143, 143, 145, 142, 147, 146, 134, 154, 139, 140, 132, 134, 133, 134, 149, 148, 136, 136, 139, 130, 137, 140, 138, 146, 151, 141, 141, 143, 137, 137, 136, 139, 146, 140, 134, 144, 138, 140, 135, 143, 142, 139, 146, 137, 134, 138, 135, 140, 147, 123, 142, 142, 146, 134, 140, 142, 136, 141, 141, 149, 146, 169, 143, 156, 150, 150, 137, 161, 143, 147, 135, 144, 142, 140, 131, 132, 135, 132, 125, 137, 134, 133, 135, 133, 139, 142, 143, 138, 141, 150, 144, 140, 143, 131, 130, 152, 139, 143, 137, 118, 145, 144, 136, 147, 133, 138, 138, 142, 146, 140, 137, 150, 127, 137, 136, 130, 129, 140, 142, 131, 139, 145, 133, 141, 140, 135, 143, 131, 146, 132, 134, 138, 147, 131, 132, 136, 139, 137, 139, 147, 135, 141, 131, 133, 135, 135, 133, 139, 138, 141, 139, 135, 131, 139, 132, 140, 135, 135, 131, 143, 143, 150, 143, 133, 145, 138, 143, 137, 128, 126, 128, 141, 141, 132, 133, 137, 135, 124, 133, 138, 136, 134, 133, 141, 144, 140, 137, 136, 142, 135, 151, 151, 139, 132, 144, 147, 148, 143, 135, 139, 145, 141, 137, 137, 145, 146, 147, 150, 138, 134, 143, 139, 148, 132, 142, 140, 144, 143, 143, 142, 128, 142, 136, 142, 137, 126, 149, 144, 139, 142, 142, 138, 139, 137, 140, 137, 142, 134, 135, 132, 139, 142, 138, 136, 143, 140, 148, 139, 151, 134, 141, 140, 107, 127, 141, 147, 145, 143, 139, 139, 142, 149, 143, 136, 137, 144, 141, 130, 133, 142, 135, 136, 137, 130, 136, 136, 141, 131, 140, 135, 130, 143, 144, 134, 134, 142, 136, 143, 132, 146, 137, 140, 139, 139, 139, 126, 136, 139, 127, 134, 140, 141, 138, 138, 138, 140, 144, 139, 137, 140, 138, 143, 144, 134, 117, 123, 132, 143, 157, 140, 136, 148, 146, 148, 129, 132, 141, 141, 128, 129, 135, 137, 142, 136, 137, 134, 147, 142, 144, 151, 135, 125, 134, 136, 136, 129, 143, 139, 138, 132, 139, 131, 149, 136, 145, 136, 131, 135, 135, 132, 140, 135, 132, 147, 132, 144, 137, 149, 123, 139, 147, 138, 147, 144, 135, 145, 136, 140, 137, 132, 147, 137, 146, 155, 148, 137, 133, 141, 137, 138, 133, 145, 142, 134, 131, 128, 147, 138, 142, 147, 142, 141, 140, 128, 136, 150, 137, 134, 147, 142, 146, 140, 145, 144, 144, 130, 132, 143, 143, 152, 136, 136, 142, 136, 138, 146, 129, 136, 143, 143, 150, 138, 140, 145, 137, 132, 152, 148, 145, 145, 134, 139, 138, 138, 142, 138, 135, 139, 143, 134, 140, 141, 148, 145, 145, 137, 139, 147, 145, 135, 141, 122, 142, 128, 159, 141, 146, 144, 134, 136, 139, 132, 141, 143, 155, 136, 138, 137, 142, 143, 142, 144, 131, 135, 143, 135, 142, 137, 136, 153, 129, 142, 153, 149, 141, 146, 143, 138, 133, 139, 139, 138, 160, 137, 136, 146, 138, 132, 137, 134, 155, 143, 144, 142, 133, 135, 141, 119, 145, 133, 134, 135, 138, 137, 133, 155, 133, 138, 139, 131, 142, 140, 135, 139, 137, 153, 132, 131, 137, 144, 140, 134, 148, 142, 146, 146, 134, 142, 135, 148, 140, 138, 147, 132, 148, 137, 140, 145, 130, 140, 138, 139, 151, 135, 136, 138, 135, 136, 140, 141, 141, 139, 137, 135, 141, 133, 138, 147, 149, 142, 139, 138, 132, 143, 133, 139, 138, 134, 148, 135, 142, 137, 140, 136, 145, 146, 151, 138, 136, 134, 145, 132, 142, 141, 145, 140, 135, 145, 139, 145, 140, 135, 139, 134, 140, 144, 135, 139, 147, 126, 133, 139, 138, 133, 135, 138, 134, 140, 142, 142, 139, 144, 138, 139, 137, 142, 127, 141, 138, 135, 139, 143, 138, 137, 148, 137, 140, 139, 139, 132, 143, 149, 137, 134, 138, 143, 143, 131, 137, 137, 143, 135, 159, 138, 147, 146, 139, 137, 136, 134, 137, 136, 143, 139, 136, 134, 139, 142, 145, 138, 136, 145, 133, 133, 133, 138, 134, 146, 139, 134, 140, 138, 137, 135, 138, 139, 134, 135, 138, 136, 146, 137, 137, 138, 140, 153, 139, 144, 139, 139, 148, 135, 138, 144, 144, 135, 143, 140, 137, 133, 140, 140, 140, 139, 143, 134, 134, 144, 138, 137, 133, 138, 136, 138, 138, 136, 138, 132, 139, 132, 139, 137, 135, 142, 139, 140, 151, 142, 143, 134, 135, 133, 148, 141, 146, 150, 131, 137, 144, 138, 135, 142, 136, 145, 147, 136, 139, 135, 141, 137, 134, 140, 128, 138, 143, 143, 138, 146, 131, 137, 140, 145, 145, 147, 133, 141, 140, 142, 143, 142, 142, 147, 139, 138, 135, 136, 145, 134, 136, 137, 142, 139, 142, 137, 135, 133, 147, 139, 134, 139, 132, 150, 145, 138, 145, 141, 131, 141, 143, 142, 142, 137, 139, 140, 138, 145, 141, 142, 135, 137, 138, 141, 138, 148, 137, 138, 138, 140, 143, 143, 136, 137, 141, 141, 142, 140, 143, 143, 150, 143, 141, 138, 138, 141, 141, 137, 141, 137, 141, 133, 138, 142, 135, 151, 137, 131, 137, 137, 142, 133, 133, 143, 133, 145, 132, 138, 142, 149, 137, 139, 147, 126, 139, 134, 131, 133, 147, 148, 141, 135, 131, 139, 138, 144, 142, 140, 136, 149, 134, 138, 136, 133, 139, 133, 132, 146, 142, 139, 134, 135, 135, 139, 144, 133, 136, 138, 140, 136, 142, 138, 145, 131, 143, 140, 137, 139, 140, 137, 135, 130, 140, 131, 136, 133, 138, 136, 132, 131, 142, 135, 138, 140, 143, 134, 141, 134, 145, 138, 150, 138, 136, 143, 134, 131, 139, 135, 137, 138, 131, 138, 140, 134, 140, 141, 138, 135, 138, 136, 139, 138, 145, 143, 144, 135, 126, 127, 136, 148, 140, 134, 146, 143, 130, 138, 146, 140, 140, 134, 129, 141, 135, 143, 138, 133, 148, 135, 139, 144, 142, 134, 146, 139, 133, 138, 150, 139, 137, 149, 139, 140, 130, 140, 136, 139, 135, 137, 135, 139, 137, 139, 139, 138, 135, 149, 141, 143, 134, 142, 137, 137, 140, 138, 131, 134, 147, 135, 148, 133, 144, 134, 144, 145, 139, 135, 137, 145, 141, 140, 139, 136, 139, 144, 129, 143, 140, 141, 136, 143, 140, 145, 144, 147, 140, 139, 134, 141, 138, 152, 135, 135, 140, 135, 122, 144, 139, 137, 146, 149, 133, 144, 142, 141, 133, 152, 132, 142, 144, 130, 139, 142, 145, 136, 144, 138, 153, 148, 140, 141, 129, 138, 140, 133, 129, 140, 136, 144, 130, 148, 131, 141, 137, 134, 142, 139, 147, 137, 146, 136, 147, 142, 144, 141, 133, 129, 142, 136, 139, 142, 136, 138, 139, 129, 136, 134, 132, 137, 146, 132, 135, 135, 132, 136, 142, 138, 141, 138, 139, 136, 131, 142, 138, 136, 137, 127, 140, 131, 144, 129, 136, 146, 136, 137, 138, 140, 134, 154, 135, 143, 143, 127, 145, 143, 152, 129, 146, 143, 144, 140, 148, 141, 150, 138, 137, 140, 134, 142, 137, 147, 143, 137, 146, 141, 140, 135, 130, 137, 145, 144, 142, 144, 133, 136, 138, 136, 145, 133, 148, 140, 147, 138, 147, 150, 141, 136, 121, 146, 129, 142, 134, 143, 141, 151, 137, 134, 145, 149, 138, 134, 146, 133, 131, 136, 137, 129, 134, 143, 138, 140, 143, 143, 137, 143, 142, 141, 139, 135, 138, 139, 136, 133, 154, 138, 140, 147, 139, 152, 131, 147, 141, 142, 149, 142, 142, 140, 135, 134, 139, 138, 133, 139, 144, 142, 136, 145, 133, 138, 138, 146, 142, 139, 150, 139, 135, 142, 133, 127, 147, 138, 137, 138, 135, 140, 145, 136, 138, 149, 145, 150, 140, 141, 138, 136, 146, 136, 137, 132, 136, 142, 132, 131, 130, 137, 140, 146, 137, 132, 142, 140, 136, 130, 140, 136, 134, 149, 149, 143, 148, 146, 140, 146, 140, 134, 135, 141, 139, 130, 135, 140, 137, 141, 142, 140, 134, 138, 144, 151, 144, 143, 142, 149, 140, 140, 142, 139, 130, 130, 150, 141, 142, 143, 138, 128, 145, 138, 131, 145, 138, 134, 136, 132, 149, 147, 131, 142, 136, 129, 146, 140, 129, 143, 133, 133, 131, 131, 128, 141, 147, 145, 135, 134, 146, 143, 142, 149, 142, 126, 149, 126, 135, 141, 143, 140, 133, 128, 141, 148, 137, 144, 139, 145, 140, 127, 134, 138, 131, 135, 136, 140, 139, 146, 132, 140, 145, 146, 133, 137, 140, 142, 137, 141, 134, 146, 142, 144, 143, 145, 147, 140, 145, 123, 146, 136, 151, 138, 143, 136, 140, 146, 133, 133, 133, 137, 135, 137, 145, 137, 141, 128, 146, 145, 133, 144, 132, 137, 128, 143, 138, 142, 136, 135, 136, 148, 133, 135, 135, 143, 143, 139, 143, 130, 140, 135, 145, 129, 136, 138, 137, 139, 151, 146, 139, 136, 136, 134, 143, 135, 133, 140, 133, 134, 130, 138, 139, 141, 135, 140, 144, 136, 129, 147, 134, 146, 139, 134, 138, 129, 135, 147, 143, 142, 141, 141, 142, 139, 132, 139, 140, 136, 129, 141, 144, 148, 136, 134, 138, 138, 135, 134, 142, 138, 134, 135, 141, 138, 143, 139, 138, 136, 135, 143, 127, 140, 133, 139, 139, 144, 143, 135, 140, 132, 146, 133, 135, 142, 130, 139, 147, 131, 139, 146, 137, 143, 144, 152, 137, 137, 141, 135, 133, 141, 144, 134, 138, 127, 143, 145, 143, 143, 137, 138, 137, 131, 140, 136, 138, 140, 142, 131, 144, 132, 137, 134, 134, 146, 140, 150, 146, 138, 139, 143, 134, 139, 141, 129, 145, 139, 147, 142, 144, 140, 138, 142, 148, 145, 143, 138, 144, 135, 139, 144, 128, 141, 142, 138, 129, 139, 141, 137, 143, 135, 138, 139, 140, 140, 137, 137, 134, 130, 143, 134, 136, 135, 137, 140, 142, 149, 143, 144, 129, 143, 140, 136, 137, 136, 146, 133, 139, 139, 137, 142, 138, 127, 128, 141, 138, 132, 145, 140, 137, 147, 144, 138, 142, 133, 136, 139, 143, 150, 136, 148, 137, 144, 131, 142, 135, 132, 145, 128, 134, 134, 136, 146, 149, 136, 141, 137, 140, 134, 148, 141, 134, 142, 139, 134, 140, 136, 145, 140, 141, 139, 141, 134, 142, 142, 140, 140, 138, 131, 137, 137, 144, 129, 132, 145, 143, 134, 134, 146, 135, 137, 131, 134, 143, 136, 140, 131, 137, 134, 134, 137, 153, 135, 145, 133, 144, 137, 132, 136, 139, 139, 131, 142, 140, 136, 140, 140, 142, 132, 142, 143, 150, 138, 135, 150, 142, 140, 128, 135, 139, 145, 139, 138, 132, 141, 149, 134, 145, 136, 140, 142, 141, 142, 140, 140, 141, 144, 142, 142, 143, 136, 136, 138, 137, 133, 134, 134, 142, 143, 142, 138, 144, 140, 142, 134, 136, 147, 144, 134, 146, 137, 131, 135, 138, 139, 142, 135, 132, 138, 138, 142, 141, 145, 133, 137, 134, 138, 135, 131, 134, 137, 140, 132, 140, 136, 144, 134, 141, 141, 147, 139, 148, 139, 143, 136, 142, 135, 132, 141, 141, 134, 135, 141, 141, 146, 139, 137, 137, 139, 139, 135, 132, 140, 136, 138, 140, 143, 138, 141, 140, 139, 141, 132, 140, 134, 138, 130, 147, 135, 140, 135, 135, 135, 135, 135, 136, 129, 139, 145, 130, 146, 136, 126, 141, 137, 133, 145, 134, 137, 138, 137, 142, 148, 137, 141, 137, 141, 130, 138, 134, 140, 144, 142, 140, 143, 145, 133, 140, 146, 138, 135, 139, 142, 138, 145, 141, 144, 139, 133, 141, 134, 136, 139, 138, 139, 145, 135, 143, 146, 134, 138, 146, 138, 141, 141, 134, 139, 142, 134, 148, 139, 138, 154, 136, 144, 141, 136, 133, 149, 139, 147, 136, 141, 145, 146, 143, 139, 132, 143, 140, 141, 137, 135, 140, 138, 143, 137, 133, 133, 133, 143, 136, 131, 147, 143, 132, 145, 135, 136, 135, 139, 141, 142, 139, 140, 130, 146, 133, 134, 142, 134, 140, 135, 133, 144, 134, 144, 134, 142, 136, 130, 141, 136, 145, 138, 138, 143, 146, 145, 140, 141, 129, 137, 136, 135, 142, 138, 132, 139, 142, 140, 139, 144, 135, 142, 134, 127, 139, 145, 152, 142, 139, 147, 138, 154, 133, 142, 130, 136, 139, 136, 139, 132, 134, 139, 130, 143, 138, 140, 145, 139, 145, 141, 143, 130, 156, 142, 133, 139, 147, 133, 136, 137, 138, 140, 125, 129, 130, 140, 134, 146, 132, 141, 143, 144, 132, 135, 138, 140, 136, 131, 141, 134, 141, 146, 131, 136, 136, 144, 139, 135, 146, 140, 135, 137, 150, 131, 136, 134, 132, 141, 139, 142, 136, 133, 130, 143, 144, 135, 141, 141, 146, 144, 143, 136, 142, 134, 139, 131, 135, 144, 128, 139, 135, 139, 140, 141, 137, 145, 136, 132, 131, 143, 150, 147, 140, 140, 142, 140, 138, 145, 138, 144, 141, 136, 140, 140, 135, 135, 137, 139, 141, 137, 140, 140, 137, 136, 137, 134, 140, 133, 135, 138, 143, 143, 140, 136, 140, 143, 140, 144, 141, 138, 140, 132, 137, 137, 129, 137, 143, 138, 147, 139, 142, 133, 139, 138, 148, 132, 140, 141, 143, 140, 137, 141, 140, 138, 142, 147, 144, 134, 138, 147, 133, 143, 146, 139, 141, 140, 148, 138, 146, 139, 144, 135, 148, 144, 137, 143, 137, 148, 129, 144, 137, 144, 140, 140, 128, 140, 135, 140, 142, 143, 138, 145, 142, 138, 138, 135, 144, 139, 144, 143, 137, 146, 138, 137, 143, 140, 137, 131, 133, 142, 129, 141, 146, 152, 129, 137, 145, 137, 145, 135, 134, 145, 141, 147, 132, 141, 133, 141, 143, 134, 137, 137, 132, 143, 135, 138, 135, 142, 138, 137, 143, 138, 139, 137, 145, 137, 134, 138, 134, 139, 136, 135, 142, 138, 136, 132, 140, 138, 144, 138, 148, 131, 132, 137, 140, 134, 133, 141, 140, 140, 136, 138, 135, 129, 148, 138, 143, 136, 136, 142, 147, 141, 142, 144, 148, 135, 136, 139, 143, 132, 146, 140, 140, 140, 139, 138, 136, 137, 137, 141, 140, 133, 141, 137, 140, 138, 144, 139, 135, 145, 142, 146, 144, 134, 138, 139, 142, 133, 140, 141, 143, 131, 135, 130, 144, 132, 138, 143, 136, 143, 147, 142, 139, 143, 139, 142, 135, 142, 150, 141, 136, 139, 145, 139, 138, 131, 129, 140, 141, 140, 147, 140, 140, 143, 142, 132, 143, 139, 140, 144, 138, 129, 136, 137, 133, 138, 131, 135, 137, 140, 130, 141, 142, 134, 147, 135, 140, 142, 144, 144, 153, 146, 147, 142, 135, 143, 136, 142, 141, 137, 145, 141, 139, 144, 141, 140, 142, 143, 141, 142, 132, 141, 139, 138, 132, 134, 147, 141, 131, 142, 139, 137, 148, 139, 134, 144, 130, 138, 142, 136, 130, 138, 132, 142, 148, 147, 145, 140, 134, 135, 144, 141, 137, 140, 138, 146, 140, 141, 144, 140, 145, 142, 135, 137, 138, 142, 142, 135, 141, 141, 142, 129, 141, 139, 143, 138, 137, 136, 138, 139, 137, 138, 139, 138, 143, 141, 143, 139, 135, 145, 135, 135, 131, 141, 141, 137, 132, 138, 127, 131, 139, 130, 134, 141, 133, 136, 137, 139, 137, 137, 142, 134, 115, 136, 143, 138, 145, 145, 145, 141, 142, 145, 141, 140, 136, 136, 138, 135, 142, 146, 138, 137, 140, 142, 140, 153, 151, 146, 139, 140, 139, 147, 148, 135, 138, 140, 130, 136, 138, 143, 136, 138, 135, 145, 140, 141, 140, 142, 146, 138, 142, 135, 138, 141, 142, 129, 139, 138, 145, 132, 135, 143, 136, 142, 138, 144, 135, 137, 136, 128, 143, 138, 133, 146, 133, 137, 141, 133, 134, 144, 136, 143, 139, 142, 131, 145, 135, 137, 143, 151, 140, 133, 143, 139, 139, 140, 134, 136, 138, 137, 137, 145, 148, 142, 136, 133, 135, 138, 137, 143, 134, 139, 145, 136, 139, 137, 140, 135, 139, 144, 139, 143, 143, 139, 152, 139, 142, 133, 143, 145, 139, 136, 143, 141, 136, 132, 139, 140, 138, 143, 139, 143, 144, 140, 143, 137, 139, 140, 134, 139, 141, 136, 138, 137, 147, 142, 130, 133, 138, 142, 138, 139, 136, 144, 138, 137, 149, 148, 140, 139, 136, 137, 138, 143, 139, 146, 140, 142, 147, 135, 138, 150, 132, 144, 138, 137, 138, 142, 147, 136, 141, 136, 139, 141, 143, 143, 130, 137, 132, 142, 141, 144, 131, 139, 147, 145, 142, 133, 140, 144, 142, 142, 142, 142, 145, 139, 146, 139, 140, 138, 143, 138, 137, 148, 138, 142, 141, 137, 135, 137, 136, 141, 140, 131, 135, 132, 144, 138, 133, 141, 147, 144, 133, 136, 136, 131, 138, 139, 141, 143, 133, 142, 146, 136, 138, 133, 137, 136, 146, 140, 141, 140, 144, 145, 132, 144, 140, 140, 132, 136, 144, 144, 131, 140, 143, 154, 144, 144, 135, 154, 140, 135, 148, 132, 136, 142, 137, 136, 141, 142, 140, 142, 140, 142, 126, 133, 144, 134, 141, 146, 136, 146, 150, 140, 141, 138, 145, 151, 143, 141, 142, 143, 142, 137, 140, 135, 138, 138, 145, 138, 138, 140, 144, 135, 141, 145, 146, 138, 139, 134, 142, 138, 141, 141, 147, 140, 143, 149, 135, 142, 141, 143, 141, 142, 147, 137, 137, 141, 135, 141, 151, 133, 134, 147, 142, 138, 137, 137, 139, 140, 140, 141, 139, 138, 146, 145, 142, 143, 137, 141, 135, 131, 134, 141, 144, 142, 133, 132, 143, 132, 139, 141, 146, 137, 140, 142, 139, 142, 144, 132, 141, 144, 128, 144, 139, 143, 135, 138, 136, 132, 139, 138, 138, 137, 135, 142, 142, 138, 146, 147, 141, 139, 142, 142, 139, 147, 135, 142, 148, 134, 136, 146, 143, 144, 136, 143, 137, 142, 137, 133, 141, 144, 145, 140, 134, 136, 139, 142, 146, 138, 137, 137, 139, 140, 142, 141, 139, 129, 137, 142, 137, 135, 138, 141, 143, 144, 126, 150, 136, 138, 140, 137, 141, 133, 142, 143, 132, 145, 138, 143, 126, 137, 137, 139, 140, 144, 146, 140, 130, 146, 140, 141, 131, 139, 134, 141, 136, 139, 141, 140, 143, 137, 132, 138, 138, 132, 136, 138, 140, 147, 141, 136, 134, 138, 146, 140, 136, 135, 144, 134, 145, 143, 132, 133, 139, 134, 140, 135, 136, 141, 140, 142, 138, 133, 135, 138, 144, 140, 138, 137, 141, 136, 140, 152, 137, 135, 147, 149, 139, 139, 145, 139, 136, 143, 137, 138, 136, 140, 141, 140, 140, 145, 139, 138, 140, 128, 137, 136, 141, 146, 140, 134, 147, 136, 139, 133, 140, 132, 141, 146, 133, 137, 132, 139, 129, 142, 138, 140, 149, 139, 145, 132, 146, 142, 140, 127, 135, 140, 144, 137, 138, 137, 141, 142, 144, 138, 141, 125, 134, 139, 135, 128, 136, 136, 130, 145, 145, 135, 142, 136, 134, 138, 142, 134, 141, 144, 143, 133, 136, 142, 141, 134, 136, 147, 136, 136, 139, 137, 145, 138, 141, 136, 146, 137, 147, 137, 132, 124, 138, 134, 142, 137, 141, 139, 138, 139, 144, 135, 136, 142, 138, 132, 137, 128, 135, 134, 137, 140, 146, 142, 150, 150, 139, 141, 139, 139, 138, 142, 133, 128, 138, 132, 147, 136, 140, 139, 139, 140, 136, 133, 136, 134, 141, 137, 136, 136, 137, 146, 145, 142, 143, 137, 134, 144, 143, 134, 140, 147, 136, 137, 139, 139, 144, 139, 133, 137, 132, 144, 133, 143, 137, 148, 129, 138, 145, 135, 151, 135, 132, 133, 144, 146, 134, 141, 147, 137, 139, 137, 140, 147, 144, 137, 134, 147, 133, 140, 138, 133, 142, 136, 147, 140, 146, 142, 131, 141, 135, 133, 136, 130, 134, 137, 139, 144, 134, 142, 142, 128, 137, 138, 142, 132, 137, 137, 142, 135, 147, 134, 143, 134, 138, 136, 136, 141, 147, 141, 138, 135, 128, 145, 135, 143, 133, 139, 140, 147, 137, 131, 136, 134, 143, 132, 137, 134, 142, 134, 134, 134, 138, 145, 132, 139, 141, 145, 145, 135, 137, 139, 133, 139, 140, 137, 131, 138, 142, 133, 140, 131, 136, 138, 133, 143, 136, 144, 141, 143, 141, 132, 137, 143, 147, 141, 133, 141, 142, 146, 144, 141, 136, 139, 132, 139, 137, 146, 134, 140, 139, 143, 137, 137, 136, 140, 143, 136, 136, 144, 143, 133, 139, 126, 141, 142, 134, 133, 132, 135, 141, 133, 135, 132, 134, 139, 141, 137, 130, 139, 131, 148, 140, 135, 130, 135, 137, 139, 128, 143, 140, 132, 132, 140, 143, 132, 132, 142, 142, 143, 131, 139, 132, 146, 134, 136, 144, 134, 147, 136, 137, 130, 133, 131, 141, 137, 138, 138, 142, 134, 137, 129, 138, 145, 127, 140, 136, 147, 144, 129, 129, 140, 140, 141, 153, 142, 138, 138, 135, 143, 135, 142, 134, 140, 140, 126, 133, 140, 129, 135, 140, 147, 135, 146, 137, 141, 141, 131, 141, 142, 134, 152, 137, 142, 128, 135, 122, 138, 147, 143, 145, 130, 147, 136, 137, 139, 137, 140, 146, 143, 144, 139, 139, 129, 138, 136, 131, 131, 140, 142, 151, 146, 147, 140, 139, 145, 142, 140, 137, 129, 142, 144, 136, 145, 134, 132, 143, 143, 137, 151, 133, 143, 133, 140, 137, 133, 134, 136, 137, 136, 147, 137, 141, 137, 136, 147, 135, 144, 140, 133, 133, 135, 141, 138, 143, 138, 136, 145, 135, 140, 151, 135, 138, 136, 136, 136, 138, 150, 140, 136, 126, 142, 141, 138, 138, 146, 140, 138, 139, 133, 131, 138, 146, 144, 140, 134, 141, 138, 136, 141, 129, 129, 133, 142, 132, 148, 134, 130, 144, 128, 137, 139, 135, 139, 129, 145, 148, 144, 134, 138, 141, 135, 139, 142, 135, 142, 152, 128, 149, 141, 133, 136, 137, 154, 141, 136, 133, 141, 137, 147, 135, 144, 136, 127, 140, 119, 138, 134, 139, 138, 133, 144, 135, 134, 143, 157, 146, 139, 146, 140, 136, 144, 136, 140, 153, 131, 135, 140, 127, 135, 158, 148, 133, 139, 137, 137, 138, 139, 144, 137, 139, 150, 138, 141, 138, 139, 133, 137, 139, 147, 143, 139, 142, 133, 142, 137, 128, 150, 147, 140, 149, 144, 141, 142, 136, 145, 138, 135, 131, 143, 138, 134, 138, 138, 149, 138, 145, 137, 149, 149, 138, 151, 138, 141, 145, 142, 134, 134, 145, 138, 137, 137, 143, 131, 146, 142, 144, 139, 139, 139, 149, 137, 130, 141, 135, 137, 133, 146, 153, 134, 150, 137, 144, 148, 139, 142, 125, 139, 131, 136, 137, 140, 161, 135, 140, 135, 133, 141, 135, 138, 130, 141, 140, 141, 136, 158, 139, 135, 131, 142, 137, 142, 141, 134, 142, 136, 142, 143, 140, 140, 137, 134, 132, 145, 141, 144, 128, 133, 133, 136, 125, 134, 137, 143, 133, 139, 134, 146, 143, 125, 140, 138, 152, 139, 133, 138, 141, 138, 130, 148, 132, 130, 135, 135, 139, 137, 133, 143, 142, 136, 135, 137, 139, 128, 129, 135, 130, 145, 143, 132, 136, 135, 132, 136, 143, 141, 133, 142, 139, 144, 139, 138, 137, 142, 134, 145, 140, 140, 137, 144, 141, 147, 136, 136, 141, 132, 151, 144, 135, 148, 136, 138, 141, 146, 143, 133, 150, 142, 136, 151, 146, 146, 127, 144, 134, 134, 136, 137, 139, 129, 136, 138, 134, 143, 136, 135, 141, 148, 137, 141, 131, 138, 144, 139, 137, 150, 135, 154, 134, 152, 142, 134, 142, 142, 134, 141, 137, 147, 138, 141, 136, 144, 149, 141, 158, 136, 144, 142, 136, 146, 137, 140, 135, 141, 136, 132, 146, 139, 145, 144, 141, 142, 142, 140, 133, 142, 132, 137, 137, 146, 138, 146, 138, 140, 142, 138, 130, 133, 147, 142, 135, 123, 134, 144, 133, 139, 145, 143, 142, 143, 138, 136, 142, 136, 130, 135, 156, 145, 137, 145, 137, 142, 135, 140, 147, 148, 130, 142, 151, 148, 141, 144, 122, 146, 137, 136, 138, 149, 133, 154, 139, 144, 145, 134, 146, 137, 135, 138, 144, 139, 139, 144, 140, 143, 145, 131, 135, 143, 130, 131, 136, 141, 138, 163, 150, 136, 138, 145, 137, 141, 130, 141, 138, 143, 143, 132, 137, 130, 124, 136, 151, 141, 142, 135, 141, 147, 138, 133, 138, 127, 130, 150, 132, 136, 142, 130, 142, 137, 127, 130, 144, 137, 140, 146, 133, 134, 139, 141, 137, 131, 140, 136, 126, 150, 140, 137, 133, 139, 138, 136, 148, 144, 142, 146, 157, 139, 137, 143, 141, 125, 148, 139, 140, 134, 137, 137, 137, 135, 144, 139, 137, 139, 135, 145, 145, 136, 144, 138, 146, 139, 137, 139, 144, 133, 128, 153, 146, 144, 139, 128, 144, 137, 138, 134, 138, 146, 149, 142, 142, 142, 140, 144, 136, 136, 143, 146, 141, 131, 139, 140, 138, 130, 141, 138, 141, 144, 151, 136, 128, 140, 147, 140, 136, 139, 134, 143, 153, 138, 144, 142, 141, 136, 127, 141, 143, 142, 142, 141, 131, 131, 137, 133, 139, 133, 141, 151, 151, 132, 141, 141, 141, 141, 140, 142, 141, 148, 139, 135, 129, 130, 134, 135, 152, 131, 152, 132, 138, 135, 136, 138, 138, 136, 133, 137, 145, 135, 141, 137, 137, 137, 140, 145, 138, 134, 138, 136, 141, 153, 135, 138, 141, 140, 146, 138, 137, 124, 142, 138, 137, 133, 139, 137, 148, 138, 136, 142, 133, 132, 146, 151, 139, 142, 138, 135, 137, 139, 140, 128, 132, 135, 134, 151, 134, 137, 131, 137, 131, 141, 136, 132, 139, 133, 140, 145, 142, 139, 140, 137, 146, 141, 135, 132, 141, 143, 139, 135, 135, 139, 134, 132, 147, 148, 142, 142, 138, 147, 140, 134, 152, 133, 147, 138, 131, 142, 136, 131, 134, 145, 143, 138, 136, 140, 133, 146, 139, 139, 136, 139, 130, 145, 140, 143, 137, 133, 132, 143, 134, 147, 134, 141, 133, 131, 127, 138, 144, 136, 146, 137, 139, 127, 142, 138, 140, 141, 140, 146, 133, 151, 134, 143, 141, 139, 147, 139, 155, 144, 140, 139, 138, 144, 137, 139, 131, 147, 138, 134, 144, 141, 142, 130, 140, 126, 137, 157, 131, 132, 136, 132, 139, 134, 135, 134, 144, 138, 143, 138, 129, 143, 136, 135, 145, 136, 146, 130, 136, 144, 143, 136, 143, 123, 137, 136, 136, 139, 136, 136, 136, 140, 130, 149, 143, 143, 159, 143, 144, 143, 141, 139, 141, 147, 143, 135, 143, 139, 139, 132, 133, 142, 129, 138, 139, 137, 145, 132, 145, 138, 138, 139, 140, 145, 134, 142, 133, 138, 139, 132, 133, 142, 136, 140, 131, 145, 145, 148, 151, 135, 142, 145, 136, 134, 136, 138, 141, 136, 137, 139, 130, 150, 146, 142, 139, 139, 133, 137, 137, 133, 139, 137, 147, 130, 137, 136, 141, 138, 138, 142, 145, 138, 144, 144, 140, 142, 144, 134, 141, 135, 137, 125, 133, 140, 134, 142, 138, 134, 132, 131, 134, 137, 136, 123, 131, 138, 142, 142, 138, 137, 138, 139, 140, 128, 136, 149, 148, 142, 147, 145, 149, 138, 131, 127, 139, 135, 128, 130, 141, 142, 137, 133, 142, 133, 145, 139, 133, 141, 137, 140, 136, 145, 144, 140, 149, 131, 135, 150, 132, 135, 149, 138, 145, 130, 145, 151, 148, 144, 132, 135, 127, 141, 139, 136, 146, 129, 129, 140, 132, 137, 147, 130, 140, 141, 128, 138, 134, 139, 142, 137, 143, 134, 136, 136, 142, 140, 131, 137, 147, 147, 134, 137, 136, 136, 146, 142, 138, 133, 138, 133, 137, 142, 134, 144, 134, 138, 136, 146, 132, 150, 141, 142, 136, 137, 134, 138, 145, 139, 146, 145, 122, 148, 132, 135, 144, 135, 141, 145, 138, 149, 144, 144, 137, 133, 147, 135, 136, 133, 137, 139, 137, 142, 147, 132, 140, 135, 140, 139, 144, 148, 139, 134, 131, 142, 135, 147, 146, 138, 134, 145, 141, 138, 142, 157, 129, 138, 139, 144, 151, 139, 146, 136, 131, 130, 143, 137, 139, 135, 152, 148, 135, 133, 141, 144, 144, 138, 145, 136, 128, 136, 139, 144, 130, 140, 137, 140, 140, 135, 133, 138, 137, 143, 142, 134, 135, 136, 142, 133, 146, 136, 135, 146, 134, 141, 139, 140, 138, 143, 142, 140, 130, 138, 139, 132, 147, 135, 140, 136, 143, 138, 134, 134, 137, 150, 133, 139, 138, 143, 141, 132, 142, 133, 136, 136, 145, 136, 145, 142, 132, 134, 143, 132, 137, 138, 133, 140, 147, 133, 142, 134, 134, 141, 135, 135, 140, 132, 146, 149, 143, 143, 137, 134, 141, 134, 131, 138, 139, 145, 138, 141, 139, 137, 143, 148, 135, 143, 139, 132, 134, 134, 138, 137, 140, 142, 141, 133, 137, 137, 139, 131, 135, 141, 140, 140, 139, 140, 143, 142, 134, 138, 136, 138, 151, 143, 138, 128, 138, 143, 139, 138, 138, 130, 143, 137, 135, 146, 132, 140, 150, 143, 136, 136, 131, 140, 129, 144, 143, 145, 128, 139, 130, 138, 138, 133, 139, 133, 136, 146, 132, 132, 141, 149, 139, 134, 135, 133, 138, 141, 140, 139, 142, 138, 139, 141, 136, 147, 137, 137, 136, 139, 147, 135, 140, 144, 137, 135, 130, 141, 139, 139, 134, 149, 138, 135, 143, 136, 132, 135, 137, 143, 136, 142, 134, 142, 137, 136, 148, 142, 137, 140, 131, 147, 143, 137, 132, 146, 136, 137, 135, 138, 134, 133, 142, 140, 136, 125, 150, 138, 142, 142, 133, 145, 137, 133, 149, 141, 141, 140, 137, 135, 132, 139, 133, 137, 143, 135, 141, 143, 144, 129, 145, 129, 143, 135, 147, 140, 141, 140, 133, 131, 136, 145, 137, 136, 145, 150, 142, 141, 142, 144, 144, 138, 141, 139, 136, 139, 147, 137, 147, 140, 139, 140, 139, 132, 132, 137, 140, 144, 135, 146, 141, 142, 141, 135, 138, 136, 132, 150, 137, 128, 141, 142, 141, 147, 137, 144, 135, 147, 139, 138, 149, 136, 143, 136, 140, 141, 130, 143, 142, 139, 136, 140, 136, 145, 139, 140, 140, 137, 136, 137, 134, 140, 141, 135, 138, 138, 140, 147, 138, 135, 141, 140, 138, 129, 139, 133, 139, 137, 136, 130, 141, 137, 144, 139, 140, 138, 142, 136, 141, 140, 130, 140, 142, 140, 140, 138, 129, 135, 138, 135, 133, 139, 141, 140, 138, 140, 133, 140, 136, 143, 144, 141, 133, 143, 132, 148, 141, 137, 141, 141, 144, 132, 145, 140, 139, 136, 149, 136, 135, 134, 143, 135, 132, 137, 140, 140, 135, 140, 141, 129, 140, 135, 133, 141, 142, 145, 141, 136, 137, 139, 137, 141, 145, 142, 133, 136, 134, 130, 128, 138, 148, 141, 143, 138, 139, 146, 142, 142, 141, 142, 136, 135, 148, 143, 136, 143, 143, 131, 141, 141, 154, 139, 139, 134, 138, 128, 133, 136, 141, 129, 135, 141, 139, 135, 142, 148, 136, 127, 138, 134, 152, 146, 136, 134, 131, 140, 147, 141, 146, 142, 140, 140, 145, 136, 133, 142, 144, 134, 140, 139, 136, 133, 142, 143, 131, 131, 139, 136, 140, 130, 143, 136, 138, 137, 136, 142, 146, 138, 143, 131, 139, 139, 136, 142, 143, 144, 137, 144, 141, 141, 140, 128, 135, 129, 140, 137, 145, 141, 139, 138, 135, 135, 142, 141, 137, 139, 135, 146, 137, 143, 125, 137, 137, 138, 139, 135, 138, 142, 139, 134, 142, 139, 132, 135, 135, 146, 138, 140, 142, 143, 141, 134, 130, 136, 145, 141, 142, 140, 138, 147, 149, 148, 139, 140, 137, 137, 139, 144, 138, 138, 135, 141, 138, 135, 132, 137, 133, 140, 147, 143, 142, 135, 142, 137, 135, 140, 138, 143, 139, 145, 138, 147, 141, 138, 145, 139, 141, 147, 148, 140, 135, 129, 139, 151, 135, 135, 141, 137, 126, 141, 133, 142, 142, 141, 135, 139, 131, 138, 135, 136, 136, 136, 145, 138, 133, 138, 139, 145, 136, 134, 135, 149, 136, 140, 140, 144, 134, 135, 136, 131, 134, 125, 140, 130, 136, 129, 128, 142, 134, 132, 140, 135, 145, 141, 139, 147, 139, 139, 139, 144, 142, 133, 141, 147, 133, 135, 150, 140, 144, 140, 144, 136, 151, 135, 131, 138, 146, 146, 146, 134, 128, 137, 122, 136, 142, 145, 143, 140, 142, 140, 133, 131, 137, 141, 136, 141, 130, 137, 146, 142, 133, 150, 140, 134, 135, 135, 150, 137, 136, 145, 137, 140, 132, 143, 138, 137, 134, 140, 132, 142, 128, 144, 139, 135, 136, 134, 139, 133, 149, 134, 133, 139, 137, 141, 143, 135, 127, 145, 136, 149, 139, 146, 143, 144, 145, 142, 144, 136, 132, 139, 141, 141, 140, 133, 136, 139, 142, 146, 138, 145, 137, 139, 140, 142, 144, 138, 146, 145, 131, 130, 138, 133, 134, 146, 134, 136, 145, 138, 132, 136, 142, 145, 143, 142, 137, 143, 140, 149, 139, 147, 140, 134, 139, 135, 133, 130, 141, 141, 140, 136, 137, 141, 131, 140, 144, 139, 140, 139, 137, 140, 138, 142, 137, 141, 150, 133, 142, 140, 148, 136, 135, 139, 134, 145, 146, 140, 141, 141, 147, 147, 138, 132, 146, 131, 137, 139, 142, 140, 145, 140, 137, 146, 145, 127, 133, 136, 142, 144, 142, 141, 135, 134, 144, 138, 135, 148, 142, 139, 135, 138, 131, 148, 130, 137, 141, 132, 144, 134, 126, 143, 136, 126, 140, 136, 142, 144, 135, 131, 138, 137, 140, 130, 145, 139, 136, 141, 133, 134, 138, 144, 137, 144, 148, 140, 146, 150, 137, 136, 153, 136, 143, 129, 141, 143, 139, 138, 139, 134, 137, 139, 130, 124, 140, 130, 136, 145, 140, 135, 138, 141, 135, 129, 136, 145, 131, 147, 131, 140, 137, 139, 136, 141, 148, 138, 138, 143, 139, 138, 127, 135, 142, 142, 138, 138, 136, 137, 144, 147, 144, 141, 134, 134, 135, 135, 149, 135, 130, 137, 140, 144, 133, 145, 143, 137, 134, 145, 152, 139, 141, 144, 136, 140, 138, 140, 142, 134, 145, 140, 141, 137, 130, 141, 142, 135, 151, 138, 136, 147, 134, 136, 137, 142, 146, 141, 141, 131, 134, 138, 136, 135, 140, 138, 141, 140, 146, 124, 151, 130, 140, 145, 128, 139, 133, 143, 146, 151, 148, 141, 132, 138, 130, 134, 135, 136, 138, 130, 151, 138, 141, 155, 144, 136, 139, 130, 145, 139, 137, 146, 136, 135, 139, 145, 139, 149, 136, 147, 138, 141, 138, 145, 144, 134, 121, 141, 138, 138, 145, 138, 132, 148, 138, 144, 138, 142, 167, 141, 151, 142, 127, 138, 140, 132, 134, 134, 139, 146, 132, 145, 147, 140, 129, 143, 143, 139, 131, 139, 139, 132, 146, 138, 143, 142, 132, 136, 139, 139, 137, 142, 136, 141, 133, 141, 138, 143, 135, 134, 149, 153, 137, 147, 144, 149, 135, 144, 136, 153, 148, 144, 140, 129, 140, 144, 139, 132, 141, 146, 143, 151, 140, 142, 134, 132, 135, 147, 134, 135, 138, 142, 142, 143, 140, 148, 139, 134, 137, 147, 144, 140, 142, 143, 137, 143, 134, 146, 140, 143, 144, 137, 143, 136, 140, 148, 134, 133, 131, 141, 139, 141, 137, 143, 153, 145, 140, 138, 141, 135, 148, 146, 128, 134, 139, 146, 134, 139, 127, 132, 151, 137, 142, 149, 131, 159, 135, 141, 133, 129, 136, 132, 144, 144, 136, 134, 130, 149, 140, 146, 145, 132, 127, 134, 139, 138, 138, 143, 137, 129, 129, 146, 145, 146, 137, 141, 147, 140, 152, 137, 137, 137, 125, 143, 146, 140, 150, 141, 146, 136, 140, 139, 145, 141, 137, 137, 142, 137, 141, 143, 145, 137, 144, 129, 131, 145, 142, 138, 135, 139, 143, 148, 141, 155, 135, 143, 138, 141, 140, 142, 139, 134, 131, 144, 129, 133, 139, 140, 138, 141, 139, 144, 135, 141, 147, 127, 142, 140, 140, 137, 142, 136, 135, 138, 139, 143, 142, 148, 138, 137, 145, 132, 139, 148, 145, 137, 145, 142, 134, 147, 125, 130, 132, 139, 126, 134, 144, 139, 122, 147, 137, 143, 135, 145, 134, 137, 134, 138, 135, 136, 153, 145, 132, 144, 136, 143, 147, 144, 146, 150, 146, 134, 136, 143, 153, 150, 135, 125, 129, 144, 144, 133, 139, 135, 137, 141, 134, 138, 133, 133, 136, 132, 143, 139, 138, 145, 136, 130, 139, 145, 143, 140, 138, 137, 141, 136, 123, 127, 131, 136, 143, 139, 145, 140, 140, 132, 140, 139, 140, 143, 148, 144, 133, 129, 140, 141, 130, 132, 139, 141, 134, 149, 133, 139, 149, 147, 144, 137, 118, 138, 135, 125, 132, 142, 139, 140, 141, 141, 141, 135, 151, 143, 147, 137, 132, 140, 143, 135, 150, 138, 139, 155, 119, 136, 134, 131, 133, 142, 149, 142, 137, 144, 131, 141, 135, 145, 146, 139, 129, 130, 146, 116, 134, 142, 147, 141, 137, 131, 139, 144, 137, 141, 135, 134, 143, 135, 134, 137, 145, 139, 135, 139, 140, 126, 138, 145, 139, 148, 129, 141, 142, 133, 135, 133, 137, 135, 144, 141, 136, 141, 139, 143, 163, 145, 133, 139, 149, 150, 137, 139, 152, 133, 143, 134, 137, 136, 138, 143, 136, 136, 137, 145, 135, 147, 136, 129, 140, 145, 136, 140, 146, 132, 136, 132, 134, 147, 138, 123, 126, 128, 154, 138, 129, 142, 142, 140, 141, 144, 136, 143, 135, 125, 140, 136, 135, 140, 133, 140, 130, 129, 144, 138, 143, 133, 134, 147, 149, 145, 134, 136, 147, 127, 139, 137, 131, 146, 137, 138, 136, 144, 131, 127, 147, 127, 148, 139, 131, 136, 144, 132, 133, 136, 132, 136, 139, 138, 145, 139, 135, 142, 141, 147, 140, 138, 140, 154, 142, 157, 138, 136, 139, 140, 138, 136, 135, 133, 142, 146, 147, 141, 139, 140, 127, 134, 138, 134, 136, 139, 139, 146, 131, 141, 134, 137, 136, 145, 136, 131, 143, 151, 137, 135, 137, 125, 142, 145, 143, 146, 142, 144, 144, 142, 141, 136, 133, 145, 143, 136, 145, 151, 144, 128, 133, 138, 131, 131, 127, 136, 130, 151, 152, 143, 144, 147, 142, 143, 126, 142, 148, 141, 143, 137, 139, 135, 129, 136, 138, 143, 137, 137, 137, 132, 135, 146, 130, 131, 142, 134, 142, 140, 138, 137, 146, 132, 146, 140, 127, 136, 132, 140, 151, 140, 139, 138, 138, 135, 144, 141, 144, 136, 138, 139, 141, 136, 132, 136, 126, 130, 132, 135, 140, 141, 134, 134, 125, 143, 134, 134, 138, 145, 129, 144, 138, 140, 147, 145, 131, 144, 137, 127, 140, 144, 143, 132, 136, 137, 133, 140, 135, 142, 132, 148, 130, 133, 141, 150, 147, 142, 142, 140, 143, 144, 142, 143, 146, 141, 133, 139, 139, 145, 140, 153, 146, 131, 148, 138, 132, 136, 139, 132, 148, 139, 148, 131, 143, 135, 144, 142, 131, 139, 139, 143, 138, 132, 126, 132, 137, 131, 134, 146, 132, 148, 143, 156, 139, 144, 142, 144, 141, 146, 145, 142, 145, 142, 138, 133, 135, 140, 138, 146, 132, 143, 148, 141, 139, 137, 141, 143, 145, 140, 135, 133, 146, 137, 151, 134, 135, 140, 134, 145, 143, 135, 140, 139, 137, 144, 144, 141, 140, 139, 132, 149, 129, 125, 139, 148, 142, 141, 142, 122, 134, 142, 138, 137, 142, 137, 138, 136, 128, 150, 137, 146, 132, 130, 131, 139, 140, 131, 134, 142, 135, 156, 144, 149, 133, 144, 140, 160, 147, 138, 123, 142, 141, 128, 143, 134, 142, 140, 140, 136, 145, 145, 140, 152, 146, 124, 142, 145, 149, 136, 141, 138, 138, 145, 144, 132, 138, 132, 142, 139, 147, 142, 132, 136, 122, 143, 144, 142, 150, 132, 135, 131, 135, 145, 139, 126, 133, 139, 139, 129, 141, 138, 125, 137, 135, 142, 151, 131, 152, 151, 129, 137, 139, 144, 136, 140, 140, 136, 151, 145, 147, 148, 138, 137, 141, 146, 132, 139, 139, 136, 134, 138, 142, 155, 137, 145, 144, 148, 143, 133, 135, 145, 138, 143, 143, 127, 135, 132, 118, 138, 142, 131, 143, 142, 136, 137, 135, 146, 136, 141, 141, 140, 141, 135, 140, 142, 139, 141, 143, 136, 140, 133, 139, 141, 134, 141, 141, 139, 141, 136, 138, 137, 134, 134, 136, 136, 136, 137, 137, 133, 142, 140, 142, 135, 143, 138, 148, 142, 138, 135, 138, 133, 140, 142, 133, 140, 132, 137, 137, 138, 136, 137, 143, 141, 138, 135, 137, 137, 133, 149, 143, 134, 134, 140, 140, 140, 136, 132, 132, 139, 139, 132, 143, 137, 140, 141, 137, 143, 137, 142, 135, 136, 132, 137, 141, 138, 135, 139, 136, 129, 136, 140, 137, 138, 140, 140, 141, 137, 139, 139, 140, 139, 136, 142, 140, 133, 140, 152, 133, 142, 143, 141, 139, 137, 140, 137, 141, 140, 141, 134, 139, 143, 137, 143, 143, 150, 140, 138, 136, 137, 136, 139, 137, 141, 138, 140, 144, 144, 138, 138, 140, 138, 134, 135, 137, 137, 140, 139, 138, 135, 139, 150, 141, 135, 136, 131, 139, 135, 134, 135, 149, 136, 143, 138, 136, 142, 143, 150, 138, 132, 142, 138, 135, 144, 137, 133, 139, 134, 134, 144, 136, 127, 146, 140, 137, 138, 143, 139, 144, 141, 137, 136, 144, 138, 136, 142, 135, 147, 139, 139, 121, 144, 139, 141, 132, 139, 132, 136, 137, 140, 144, 137, 144, 142, 136, 143, 135, 139, 136, 137, 140, 144, 142, 138, 146, 141, 137, 139, 135, 148, 136, 136, 147, 137, 138, 135, 141, 140, 139, 142, 145, 143, 141, 138, 137, 140, 138, 134, 134, 138, 141, 141, 139, 136, 142, 140, 135, 137, 142, 141, 141, 146, 138, 141, 143, 140, 132, 139, 144, 138, 143, 141, 134, 138, 139, 140, 136, 142, 137, 139, 138, 143, 138, 138, 131, 146, 142, 140, 131, 137, 129, 135, 143, 133, 138, 148, 142, 137, 137, 137, 140, 136, 139, 152, 145, 142, 139, 139, 139, 136, 135, 142, 139, 140, 137, 138, 151, 129, 145, 132, 136, 144, 145, 139, 141, 143, 139, 134, 131, 130, 140, 136, 142, 141, 145, 142, 133, 144, 138, 142, 143, 144, 135, 140, 139, 143, 134, 143, 137, 138, 135, 134, 134, 137, 136, 135, 137, 140, 134, 146, 139, 137, 139, 136, 136, 140, 139, 131, 137, 136, 143, 134, 140, 140, 133, 134, 133, 136, 149, 137, 144, 131, 134, 153, 144, 145, 135, 139, 140, 143, 137, 140, 144, 135, 147, 136, 143, 140, 136, 132, 136, 138, 136, 135, 132, 140, 137, 138, 141, 139, 140, 133, 137, 146, 139, 141, 139, 137, 136, 141, 137, 138, 139, 142, 134, 142, 139, 140, 139, 136, 137, 132, 145, 151, 139, 138, 140, 139, 145, 142, 139, 141, 141, 138, 143, 150, 147, 132, 139, 141, 136, 138, 142, 137, 144, 136, 140, 134, 140, 136, 139, 136, 140, 137, 141, 134, 139, 137, 136, 141, 138, 138, 132, 145, 136, 140, 140, 129, 142, 129, 136, 131, 139, 132, 151, 138, 140, 144, 141, 139, 142, 138, 136, 136, 129, 139, 136, 141, 134, 148, 134, 134, 132, 135, 141, 143, 145, 145, 135, 134, 139, 135, 139, 145, 137, 143, 139, 139, 141, 140, 138, 140, 141, 153, 145, 138, 131, 139, 142, 135, 138, 143, 137, 138, 136, 142, 141, 141, 139, 138, 136, 136, 141, 155, 143, 142, 136, 142, 132, 138, 147, 135, 131, 143, 141, 140, 135, 139, 140, 140, 139, 133, 140, 140, 132, 135, 139, 139, 143, 141, 150, 140, 138, 139, 135, 135, 139, 145, 148, 137, 138, 138, 139, 135, 136, 134, 140, 136, 137, 139, 136, 141, 141, 135, 129, 133, 138, 140, 141, 131, 139, 140, 144, 145, 137, 149, 141, 138, 135, 144, 137, 132, 141, 135, 138, 135, 147, 135, 138, 142, 139, 141, 142, 137, 134, 143, 136, 130, 140, 136, 134, 145, 137, 144, 141, 143, 140, 138, 141, 138, 133, 138, 145, 139, 136, 135, 137, 138, 141, 142, 138, 143, 139, 145, 140, 138, 151, 137, 139, 134, 134, 140, 137, 135, 137, 136, 135, 136, 139, 139, 137, 139, 129, 132, 141, 134, 138, 134, 138, 139, 140, 145, 142, 133, 138, 139, 138, 139, 139, 142, 138, 140, 140, 138, 137, 139, 141, 146, 135, 141, 137, 135, 133, 141, 136, 136, 131, 140, 131, 144, 142, 146, 145, 137, 138, 140, 146, 139, 139, 148, 134, 135, 128, 141, 132, 140, 134, 139, 143, 140, 136, 135, 139, 136, 142, 134, 138, 144, 139, 138, 141, 144, 139, 138, 133, 135, 146, 143, 137, 137, 131, 156, 140, 140, 138, 138, 138, 140, 142, 132, 137, 137, 140, 134, 145, 139, 139, 141, 147, 140, 138, 138, 136, 142, 142, 140, 136, 144, 138, 140, 137, 133, 138, 139, 143, 144, 139, 140, 142, 136, 137, 141, 139, 143, 141, 139, 144, 147, 134, 133, 132, 135, 143, 136, 140, 140, 137, 141, 132, 134, 139, 138, 140, 137, 141, 148, 139, 138, 136, 136, 136, 147, 139, 142, 157, 134, 143, 145, 132, 140, 141, 143, 137, 136, 140, 139, 142, 138, 140, 139, 140, 137, 138, 139, 135, 141, 137, 137, 132, 143, 138, 141, 133, 139, 140, 143, 138, 140, 135, 142, 139, 130, 136, 140, 131, 134, 133, 141, 142, 133, 141, 141, 141, 141, 139, 139, 138, 139, 137, 140, 141, 139, 140, 140, 137, 139, 132, 144, 140, 135, 138, 139, 136, 138, 134, 133, 131, 138, 136, 138, 133, 140, 137, 132, 138, 136, 131, 144, 141, 143, 138, 141, 142, 140, 140, 134, 136, 138, 142, 139, 137, 142, 134, 137, 143, 149, 141, 131, 141, 139, 147, 137, 141, 139, 138, 132, 138, 141, 144, 136, 136, 147, 142, 146, 139, 138, 140, 138, 137, 138, 139, 135, 139, 137, 136, 135, 144, 135, 140, 141, 134, 142, 137, 134, 141, 138, 135, 142, 139, 132, 135, 137, 142, 135, 136, 142, 137, 137, 135, 139, 141, 141, 136, 141, 140, 145, 133, 140, 138, 141, 142, 143, 133, 137, 147, 138, 136, 141, 139, 138, 139, 136, 144, 133, 138, 137, 135, 141, 138, 141, 134, 139, 151, 143, 142, 138, 138, 139, 141, 136, 139, 138, 139, 139, 137, 139, 145, 139, 143, 136, 138, 138, 141, 137, 138, 139, 136, 136, 139, 137, 140, 138, 141, 140, 146, 141, 139, 136, 136, 143, 138, 143, 140, 141, 137, 139, 141, 144, 139, 138, 139, 140, 140, 135, 144, 138, 136, 130, 142, 140, 136, 137, 134, 140, 138, 139, 138, 132, 142, 139, 138, 139, 138, 137, 140, 141, 137, 140, 140, 142, 137, 140, 140, 140, 140, 139, 141, 141, 136, 138, 140, 136, 136, 142, 140, 139, 140, 140, 141, 138, 140, 139, 140, 140, 137, 137, 135, 138, 137, 143, 138, 141, 138, 140, 134, 143, 138, 138, 135, 139, 140, 139, 139, 137, 139, 139, 134, 141, 140, 138, 142, 141, 147, 142, 140, 140, 141, 140, 141, 138, 140, 137, 140, 140, 142, 138, 142, 138, 136, 136, 140, 139, 138, 138, 138, 138, 145, 135, 136, 135, 136, 137, 139, 137, 132, 139, 142, 142, 139, 139, 139, 140, 139, 138, 137, 135, 140, 141, 141, 141, 144, 137, 140, 138, 145, 138, 137, 142, 139, 139, 140, 139, 137, 136, 141, 138, 142, 139, 138, 137, 141, 136, 137, 143, 135, 141, 133, 136, 139, 138, 136, 132, 139, 140, 138, 139, 140, 140, 138, 139, 142, 138, 136, 139, 142, 141, 141, 140, 137, 136, 138, 145, 139, 138, 138, 135, 139, 139, 136, 137, 137, 135, 140, 141, 139, 134, 134, 137, 140, 139, 134, 142, 139, 143, 136, 141, 136, 138, 136, 136, 142, 138, 140, 139, 142, 140, 137, 139, 139, 138, 138, 140, 139, 136, 140, 136, 140, 135, 140, 137, 139, 139, 138, 139, 141, 140, 140, 138, 138, 140, 143, 137, 142, 138, 138, 137, 140, 140, 140, 139, 139, 140, 139, 140, 138, 141, 140, 136, 140, 141, 138, 139, 139, 141, 137, 139, 133, 137, 140, 140, 142, 139, 141, 140, 139, 141, 139, 138, 141, 139, 140, 138, 139, 138, 138, 141, 138, 140, 139, 137, 140, 140, 140, 143, 139, 138, 138, 139, 136, 137, 138, 137, 142, 136, 138, 138, 134, 138, 144, 138, 139, 139, 137, 138, 139, 141, 136, 137, 137, 136, 138, 136, 139, 143, 140, 141, 143, 143, 136, 139, 138, 140, 137, 137, 137, 138, 140, 142, 137, 139, 137, 140, 143, 140, 143, 139, 138, 140, 139, 140, 137, 141, 139, 140, 140, 141, 142, 143, 141, 144, 138, 138, 133, 137, 139, 141, 140, 142, 137, 139, 136, 141, 136, 137, 142, 138, 140, 137, 139, 137, 144, 141, 139, 141, 141, 142, 139, 140, 141, 141, 144, 140, 142, 141, 140, 136, 140, 137, 140, 139, 140, 135, 143, 142, 139, 137, 135, 137, 141, 137, 140, 139, 138, 137, 137, 135, 141, 139, 142, 143, 141, 144, 141, 139, 139, 141, 136, 141, 141, 140, 139, 141, 142, 140, 142, 144, 141, 138, 143, 138, 143, 141, 138, 138, 137, 136, 137, 134, 143, 143, 142, 142, 137, 138, 138, 141, 137, 139, 138, 136, 140, 142, 135, 135, 138, 131, 140, 131, 143, 140, 134, 137, 136, 130, 135, 130, 140, 141, 143, 145, 126, 142, 142, 130, 145, 129, 132, 127, 134, 132, 132, 125, 139, 135, 144, 147, 153, 145, 135, 141, 137, 148, 133, 127, 130, 141, 143, 149, 139, 127, 144, 143, 137, 137, 141, 130, 142, 137, 136, 116, 140, 139, 139, 141, 149, 144, 141, 142, 137, 119, 123, 138, 137, 136, 143, 133, 138, 151, 131, 139, 140, 135, 145, 142, 142, 135, 147, 147, 134, 136, 141, 138, 142, 131, 144, 137, 138, 141, 140, 142, 140, 142, 141, 128, 144, 143, 137, 138, 136, 144, 138, 150, 144, 159, 136, 138, 146, 141, 158, 135, 134, 136, 138, 154, 131, 156, 141, 124, 139, 144, 140, 134, 140, 131, 141, 131, 133, 147, 137, 134, 143, 133, 136, 149, 142, 139, 134, 128, 134, 147, 137, 141, 145, 142, 146, 134, 141, 129, 145, 134, 133, 146, 138, 144, 137, 125, 134, 137, 141, 142, 144, 138, 139, 143, 132, 151, 148, 136, 142, 135, 145, 139, 137, 145, 137, 143, 132, 147, 137, 127, 147, 142, 143, 130, 139, 136, 134, 130, 142, 141, 144, 151, 130, 121, 147, 146, 134, 132, 134, 134, 140, 139, 139, 132, 140, 138, 137, 140, 141, 142, 144, 132, 132, 137, 137, 139, 134, 144, 133, 121, 135, 148, 133, 139, 135, 138, 133, 142, 148, 133, 147, 155, 134, 128, 145, 137, 143, 144, 138, 141, 135, 148, 146, 144, 131, 142, 140, 139, 139, 141, 147, 139, 136, 137, 164, 148, 143, 137, 133, 145, 139, 135, 140, 141, 144, 136, 139, 136, 135, 135, 132, 130, 144, 137, 142, 138, 140, 137, 143, 142, 131, 139, 125, 146, 131, 126, 131, 136, 143, 129, 139, 135, 141, 139, 154, 150, 139, 120, 140, 128, 132, 132, 143, 139, 143, 138, 139, 140, 148, 139, 135, 141, 141, 143, 147, 136, 143, 139, 140, 129, 140, 139, 131, 131, 133, 134, 135, 134, 132, 145, 138, 130, 135, 141, 135, 138, 142, 131, 151, 137, 138, 140, 137, 118, 155, 155, 141, 136, 127, 136, 140, 132, 130, 148, 132, 144, 133, 143, 130, 141, 144, 160, 124, 145, 139, 136, 133, 147, 140, 135, 131, 146, 139, 147, 126, 133, 139, 143, 134, 136, 138, 146, 130, 140, 144, 140, 131, 131, 135, 140, 146, 140, 131, 129, 136, 141, 140, 142, 132, 138, 141, 124, 139, 139, 137, 139, 135, 138, 136, 133, 141, 140, 134, 145, 141, 136, 139, 144, 140, 143, 144, 141, 143, 137, 140, 142, 137, 150, 138, 134, 129, 136, 129, 149, 136, 127, 145, 135, 132, 130, 145, 139, 137, 145, 145, 132, 140, 146, 128, 126, 135, 129, 122, 140, 130, 142, 129, 134, 146, 139, 155, 127, 149, 147, 144, 136, 134, 146, 156, 145, 137, 141, 150, 137, 140, 137, 130, 128, 147, 134, 138, 133, 150, 143, 146, 142, 140, 146, 146, 134, 131, 136, 139, 138, 143, 142, 139, 141, 137, 138, 135, 140, 135, 147, 143, 149, 131, 144, 145, 138, 133, 135, 140, 146, 136, 136, 138, 129, 129, 139, 142, 143, 130, 139, 139, 137, 143, 133, 146, 144, 131, 144, 149, 141, 138, 135, 136, 139, 141, 146, 147, 134, 142, 140, 138, 135, 138, 140, 133, 139, 140, 131, 133, 144, 131, 127, 138, 135, 135, 134, 132, 134, 144, 133, 145, 132, 142, 139, 140, 135, 135, 140, 132, 139, 135, 130, 143, 140, 135, 138, 146, 148, 139, 143, 140, 137, 134, 144, 149, 134, 141, 137, 142, 136, 138, 136, 141, 136, 150, 142, 142, 134, 142, 144, 136, 142, 139, 138, 132, 141, 138, 132, 144, 144, 139, 137, 130, 136, 132, 145, 138, 133, 132, 137, 141, 139, 134, 142, 142, 134, 135, 153, 133, 129, 131, 137, 136, 146, 138, 141, 141, 137, 139, 133, 145, 145, 140, 141, 137, 135, 132, 144, 136, 143, 142, 134, 136, 136, 135, 135, 133, 137, 138, 135, 132, 134, 140, 131, 142, 133, 146, 135, 132, 152, 144, 137, 144, 140, 158, 137, 144, 136, 141, 143, 136, 141, 144, 135, 137, 144, 142, 136, 140, 140, 139, 137, 138, 137, 149, 127, 140, 130, 131, 143, 132, 139, 147, 151, 129, 137, 139, 138, 138, 137, 134, 136, 140, 144, 147, 137, 137, 142, 142, 139, 148, 144, 130, 137, 140, 143, 138, 144, 146, 134, 133, 147, 145, 140, 137, 141, 141, 138, 139, 137, 144, 147, 139, 133, 140, 130, 141, 134, 140, 140, 131, 149, 135, 139, 139, 137, 138, 137, 138, 129, 143, 140, 151, 140, 134, 142, 131, 130, 139, 140, 140, 142, 146, 137, 151, 135, 139, 130, 141, 145, 134, 140, 139, 135, 136, 141, 144, 144, 134, 147, 132, 138, 133, 148, 143, 140, 139, 144, 137, 143, 138, 142, 127, 136, 140, 136, 142, 133, 145, 136, 135, 142, 137, 130, 144, 143, 137, 133, 133, 142, 137, 145, 138, 140, 136, 141, 133, 147, 136, 134, 139, 136, 144, 129, 144, 149, 133, 139, 139, 143, 137, 151, 140, 140, 141, 147, 135, 129, 153, 149, 135, 131, 140, 145, 134, 139, 143, 152, 141, 140, 136, 134, 142, 146, 136, 131, 142, 138, 134, 141, 133, 132, 138, 139, 138, 137, 149, 138, 134, 134, 136, 142, 130, 138, 128, 143, 139, 142, 137, 135, 127, 137, 141, 144, 128, 137, 147, 133, 141, 138, 131, 136, 129, 137, 138, 142, 150, 143, 131, 141, 146, 141, 132, 140, 143, 142, 144, 142, 142, 137, 144, 142, 128, 134, 140, 143, 145, 138, 133, 151, 138, 141, 145, 136, 130, 131, 145, 132, 145, 142, 136, 133, 141, 133, 131, 155, 147, 137, 132, 139, 142, 134, 142, 142, 141, 138, 135, 139, 143, 146, 134, 134, 138, 129, 138, 142, 143, 138, 146, 140, 141, 142, 135, 142, 133, 145, 146, 133, 135, 144, 139, 134, 140, 135, 136, 137, 141, 144, 143, 146, 143, 139, 142, 145, 141, 139, 142, 139, 137, 132, 138, 138, 140, 139, 142, 134, 141, 142, 134, 135, 138, 154, 136, 132, 147, 139, 140, 140, 143, 138, 142, 132, 131, 141, 134, 138, 132, 137, 139, 135, 143, 133, 141, 142, 143, 139, 128, 135, 135, 144, 133, 132, 138, 144, 138, 140, 137, 138, 142, 139, 145, 140, 139, 140, 144, 137, 145, 133, 138, 140, 141, 140, 140, 140, 133, 126, 138, 135, 139, 140, 135, 135, 138, 141, 143, 136, 143, 147, 137, 132, 139, 137, 141, 158, 140, 143, 140, 138, 143, 140, 134, 142, 143, 141, 131, 137, 135, 144, 133, 137, 140, 138, 128, 134, 147, 140, 131, 138, 137, 135, 151, 140, 141, 140, 142, 136, 140, 137, 139, 137, 133, 137, 137, 134, 130, 133, 137, 135, 127, 141, 146, 137, 134, 141, 139, 132, 141, 134, 142, 137, 126, 136, 145, 137, 133, 134, 145, 139, 137, 147, 139, 141, 138, 144, 135, 142, 136, 138, 135, 133, 138, 147, 136, 148, 137, 138, 140, 138, 140, 136, 139, 134, 143, 137, 144, 132, 139, 138, 143, 142, 140, 132, 139, 139, 136, 147, 142, 137, 134, 140, 140, 144, 135, 138, 148, 148, 130, 135, 139, 139, 138, 136, 133, 132, 138, 128, 142, 137, 134, 135, 141, 135, 135, 140, 130, 136, 137, 139, 135, 147, 142, 137, 143, 137, 136, 135, 139, 140, 138, 137, 140, 131, 137, 147, 143, 138, 135, 145, 136, 137, 136, 148, 154, 137, 130, 133, 138, 139, 145, 136, 138, 134, 137, 139, 137, 143, 131, 140, 140, 137, 142, 139, 144, 136, 133, 144, 139, 140, 136, 150, 131, 134, 143, 145, 140, 133, 135, 137, 130, 137, 139, 137, 133, 144, 143, 140, 133, 153, 132, 138, 145, 139, 136, 133, 139, 139, 136, 144, 138, 143, 138, 135, 146, 139, 138, 136, 142, 141, 142, 137, 139, 142, 149, 137, 140, 135, 132, 140, 138, 131, 142, 134, 131, 140, 138, 131, 134, 136, 133, 137, 135, 138, 139, 144, 136, 141, 142, 137, 141, 141, 131, 152, 135, 143, 139, 141, 141, 140, 139, 142, 141, 136, 134, 137, 137, 135, 133, 145, 141, 141, 141, 137, 138, 138, 133, 136, 144, 129, 136, 139, 143, 139, 139, 136, 140, 138, 138, 143, 138, 132, 134, 146, 149, 147, 140, 144, 137, 140, 132, 143, 137, 134, 147, 138, 137, 141, 140, 143, 132, 133, 136, 144, 145, 148, 140, 146, 131, 141, 135, 137, 138, 138, 137, 138, 136, 133, 136, 133, 134, 146, 133, 140, 143, 141, 137, 140, 139, 137, 139, 138, 143, 137, 141, 141, 136, 140, 139, 152, 132, 141, 144, 138, 132, 138, 134, 142, 137, 134, 138, 139, 135, 142, 134, 142, 134, 136, 142, 142, 140, 133, 135, 143, 135, 142, 139, 142, 137, 134, 138, 133, 138, 135, 145, 141, 136, 141, 135, 147, 139, 127, 147, 140, 124, 134, 140, 140, 145, 143, 142, 131, 137, 131, 134, 133, 135, 130, 145, 141, 134, 138, 136, 143, 138, 146, 141, 131, 141, 143, 136, 141, 144, 141, 134, 141, 141, 136, 139, 138, 133, 144, 138, 135, 131, 136, 142, 138, 131, 146, 137, 156, 142, 131, 134, 142, 138, 136, 137, 129, 140, 145, 141, 135, 141, 144, 141, 131, 139, 144, 134, 141, 140, 131, 135, 144, 133, 139, 143, 136, 138, 139, 135, 140, 134, 134, 135, 146, 139, 134, 157, 137, 142, 139, 142, 133, 139, 135, 143, 136, 132, 134, 147, 137, 138, 136, 140, 134, 143, 139, 150, 136, 147, 132, 141, 140, 132, 138, 135, 145, 133, 139, 131, 134, 137, 147, 140, 138, 145, 143, 137, 136, 138, 134, 142, 135, 136, 144, 134, 137, 139, 144, 136, 137, 143, 135, 140, 136, 145, 138, 143, 133, 134, 138, 140, 150, 142, 139, 129, 139, 135, 133, 137, 141, 138, 140, 136, 148, 131, 146, 140, 140, 143, 131, 138, 142, 135, 143, 147, 137, 140, 144, 146, 144, 144, 141, 138, 130, 142, 137, 138, 133, 134, 144, 136, 152, 139, 136, 132, 144, 132, 139, 131, 136, 136, 143, 134, 131, 133, 139, 133, 147, 142, 133, 133, 140, 138, 132, 137, 134, 133, 144, 137, 146, 136, 138, 146, 144, 140, 135, 140, 137, 135, 139, 137, 147, 132, 145, 138, 135, 133, 148, 136, 137, 144, 135, 130, 143, 146, 126, 129, 135, 137, 141, 136, 136, 135, 143, 144, 142, 145, 139, 145, 142, 138, 148, 143, 132, 140, 135, 142, 137, 131, 135, 138, 137, 138, 147, 136, 135, 135, 141, 142, 140, 141, 143, 143, 135, 134, 139, 140, 140, 145, 142, 138, 142, 136, 144, 136, 138, 144, 139, 140, 133, 141, 142, 141, 146, 134, 142, 141, 140, 141, 136, 138, 140, 137, 142, 136, 139, 138, 149, 139, 142, 140, 140, 137, 139, 139, 133, 139, 140, 137, 141, 135, 143, 142, 131, 130, 135, 141, 136, 132, 136, 144, 135, 137, 135, 137, 158, 128, 134, 138, 142, 132, 134, 141, 146, 139, 137, 138, 135, 138, 139, 145, 140, 139, 138, 141, 127, 146, 132, 134, 124, 145, 148, 145, 143, 139, 144, 141, 141, 145, 136, 144, 134, 139, 142, 137, 137, 142, 138, 138, 145, 137, 139, 144, 132, 150, 134, 128, 139, 137, 139, 137, 146, 144, 138, 136, 138, 138, 139, 134, 147, 145, 152, 143, 139, 140, 136, 143, 136, 136, 147, 140, 133, 131, 147, 133, 141, 143, 129, 129, 140, 142, 152, 135, 142, 139, 133, 137, 136, 136, 143, 138, 135, 132, 135, 141, 142, 146, 137, 141, 147, 138, 136, 138, 141, 138, 132, 145, 131, 132, 132, 131, 126, 133, 136, 146, 140, 135, 129, 131, 135, 146, 136, 142, 145, 147, 139, 134, 143, 144, 139, 146, 138, 136, 124, 135, 138, 144, 136, 134, 143, 150, 144, 134, 136, 128, 135, 138, 139, 147, 139, 135, 145, 130, 134, 141, 135, 146, 131, 139, 132, 136, 142, 137, 139, 143, 151, 143, 133, 137, 144, 136, 137, 138, 136, 144, 134, 137, 137, 142, 143, 136, 136, 139, 141, 140, 132, 133, 133, 143, 134, 140, 136, 149, 147, 138, 131, 140, 137, 142, 143, 143, 144, 133, 137, 141, 141, 135, 147, 143, 137, 135, 139, 134, 138, 138, 133, 143, 143, 138, 139, 139, 134, 146, 148, 131, 138, 141, 143, 142, 135, 140, 145, 141, 140, 133, 137, 136, 140, 138, 143, 135, 142, 147, 142, 145, 142, 140, 139, 137, 141, 141, 141, 135, 131, 139, 136, 140, 138, 136, 143, 141, 138, 139, 145, 140, 136, 135, 141, 144, 145, 133, 131, 136, 134, 134, 129, 140, 134, 135, 145, 133, 139, 138, 134, 146, 139, 147, 143, 136, 136, 142, 135, 143, 136, 147, 137, 137, 133, 139, 137, 142, 133, 142, 130, 131, 142, 138, 143, 143, 132, 136, 138, 133, 128, 140, 138, 143, 134, 138, 137, 140, 142, 138, 135, 148, 136, 144, 146, 141, 137, 144, 150, 140, 136, 135, 141, 139, 139, 142, 133, 143, 132, 146, 140, 145, 142, 144, 139, 142, 140, 137, 143, 137, 131, 140, 134, 144, 149, 137, 141, 139, 142, 143, 141, 134, 136, 147, 137, 139, 131, 134, 140, 138, 149, 142, 144, 150, 143, 148, 144, 142, 136, 138, 143, 135, 135, 130, 134, 134, 134, 139, 140, 140, 132, 146, 139, 143, 137, 133, 135, 139, 138, 140, 138, 136, 138, 139, 129, 137, 137, 144, 143, 138, 134, 133, 137, 143, 136, 145, 134, 140, 142, 137, 141, 138, 136, 139, 136, 131, 141, 139, 136, 139, 138, 136, 137, 140, 138, 135, 144, 145, 139, 141, 141, 137, 139, 134, 138, 138, 139, 134, 135, 136, 139, 136, 145, 141, 135, 140, 134, 139, 137, 141, 140, 142, 145, 133, 140, 139, 139, 131, 140, 143, 140, 130, 137, 135, 140, 141, 138, 135, 138, 131, 137, 133, 149, 133, 141, 137, 139, 148, 137, 137, 145, 124, 138, 140, 145, 143, 141, 143, 144, 135, 139, 148, 142, 133, 139, 147, 135, 142, 143, 141, 137, 142, 140, 139, 136, 133, 139, 146, 138, 143, 132, 135, 142, 146, 141, 143, 142, 141, 143, 139, 146, 146, 137, 137, 138, 132, 147, 139, 143, 140, 137, 136, 135, 136, 141, 138, 130, 137, 135, 140, 143, 135, 148, 141, 140, 143, 146, 139, 146, 139, 144, 138, 133, 138, 136, 133, 139, 136, 143, 141, 143, 135, 134, 148, 142, 128, 141, 141, 140, 140, 134, 143, 136, 140, 138, 133, 139, 130, 138, 134, 144, 144, 144, 139, 136, 141, 140, 140, 139, 137, 136, 132, 139, 144, 134, 136, 136, 145, 137, 135, 139, 133, 138, 134, 148, 142, 136, 134, 134, 139, 138, 135, 143, 147, 134, 138, 142, 133, 144, 145, 134, 140, 136, 144, 140, 147, 143, 141, 139, 140, 147, 134, 140, 143, 145, 141, 142, 138, 152, 143, 132, 135, 137, 136, 136, 145, 135, 139, 137, 138, 132, 142, 137, 137, 145, 128, 142, 135, 141, 138, 136, 131, 141, 145, 147, 149, 145, 144, 136, 138, 143, 139, 140, 145, 137, 143, 133, 134, 142, 137, 134, 133, 143, 138, 144, 139, 136, 144, 141, 133, 136, 141, 147, 145, 142, 139, 140, 142, 143, 138, 144, 135, 141, 133, 139, 131, 152, 140, 134, 141, 143, 144, 146, 141, 146, 139, 141, 131, 141, 141, 143, 129, 138, 139, 136, 144, 133, 141, 130, 143, 145, 145, 133, 139, 135, 132, 136, 144, 140, 138, 141, 133, 135, 143, 139, 146, 136, 143, 140, 146, 144, 136, 138, 136, 132, 130, 128, 150, 145, 135, 141, 142, 136, 141, 135, 123, 143, 137, 134, 140, 134, 142, 145, 148, 152, 132, 133, 128, 145, 148, 143, 132, 154, 134, 141, 147, 138, 130, 135, 138, 135, 136, 136, 133, 135, 132, 143, 151, 141, 143, 139, 132, 137, 130, 146, 134, 135, 141, 137, 139, 139, 134, 139, 125, 155, 134, 143, 140, 145, 126, 134, 139, 135, 146, 137, 141, 144, 136, 139, 135, 139, 152, 136, 133, 138, 135, 140, 146, 144, 137, 134, 137, 139, 136, 132, 137, 143, 132, 141, 133, 141, 126, 134, 145, 146, 144, 142, 141, 143, 138, 139, 143, 135, 140, 140, 153, 148, 148, 144, 137, 136, 137, 136, 139, 142, 134, 147, 143, 145, 137, 125, 133, 138, 137, 137, 138, 140, 135, 140, 138, 139, 141, 133, 144, 134, 131, 133, 138, 144, 134, 138, 138, 139, 140, 134, 152, 144, 142, 140, 137, 155, 141, 141, 144, 131, 139, 131, 129, 142, 139, 143, 142, 142, 139, 140, 134, 136, 143, 145, 143, 142, 141, 143, 137, 137, 136, 132, 136, 134, 145, 142, 141, 134, 140, 141, 133, 141, 135, 148, 131, 139, 133, 134, 134, 142, 148, 138, 130, 138, 142, 136, 129, 147, 136, 130, 139, 144, 141, 142, 142, 136, 132, 132, 134, 135, 150, 137, 149, 130, 143, 143, 133, 154, 140, 144, 144, 147, 140, 142, 138, 137, 141, 135, 134, 142, 133, 144, 142, 125, 134, 139, 142, 136, 134, 132, 132, 141, 134, 143, 136, 136, 131, 145, 145, 137, 136, 131, 144, 137, 143, 136, 129, 136, 146, 142, 142, 139, 132, 133, 141, 132, 148, 131, 147, 146, 144, 132, 129, 138, 133, 138, 142, 145, 141, 133, 144, 147, 140, 137, 137, 133, 150, 137, 141, 128, 129, 144, 140, 140, 133, 144, 137, 142, 142, 140, 137, 142, 141, 142, 143, 133, 146, 140, 147, 142, 136, 147, 143, 139, 134, 133, 137, 133, 140, 141, 138, 136, 141, 141, 131, 150, 136, 136, 143, 133, 140, 146, 139, 140, 136, 138, 140, 130, 129, 142, 134, 145, 138, 129, 140, 136, 137, 149, 133, 145, 148, 141, 148, 137, 149, 142, 139, 132, 139, 143, 147, 136, 133, 140, 136, 134, 135, 145, 135, 134, 146, 129, 132, 144, 152, 145, 140, 143, 138, 139, 139, 137, 145, 134, 139, 132, 135, 143, 147, 135, 134, 131, 135, 135, 135, 147, 140, 141, 137, 138, 133, 131, 135, 140, 142, 132, 133, 142, 135, 127, 141, 145, 137, 134, 137, 141, 137, 137, 138, 137, 139, 138, 151, 133, 138, 142, 131, 135, 150, 134, 133, 149, 142, 141, 138, 143, 153, 144, 140, 141, 135, 151, 153, 137, 140, 136, 128, 135, 128, 140, 136, 151, 146, 137, 141, 134, 143, 144, 146, 141, 145, 140, 133, 140, 145, 138, 142, 140, 135, 136, 132, 139, 141, 134, 140, 144, 139, 138, 143, 135, 140, 135, 140, 144, 133, 144, 149, 145, 138, 141, 140, 136, 147, 142, 142, 140, 151, 136, 135, 140, 128, 136, 140, 131, 134, 136, 133, 142, 144, 143, 140, 143, 128, 140, 139, 137, 139, 132, 143, 135, 139, 135, 138, 144, 137, 138, 137, 144, 139, 141, 139, 137, 143, 139, 138, 144, 140, 143, 143, 138, 130, 141, 137, 130, 138, 137, 134, 132, 145, 139, 138, 135, 136, 145, 138, 146, 141, 139, 140, 136, 136, 136, 135, 129, 136, 140, 138, 137, 130, 141, 139, 141, 135, 135, 141, 137, 138, 141, 146, 140, 142, 136, 133, 139, 136, 140, 139, 146, 136, 145, 145, 143, 146, 143, 134, 140, 137, 132, 144, 136, 145, 134, 139, 142, 135, 135, 142, 137, 139, 129, 149, 134, 136, 139, 140, 135, 142, 139, 142, 136, 134, 135, 135, 134, 138, 145, 138, 135, 143, 144, 145, 143, 141, 140, 141, 134, 138, 138, 138, 139, 140, 144, 142, 140, 138, 137, 145, 133, 139, 141, 142, 135, 138, 135, 141, 132, 146, 139, 142, 137, 131, 138, 138, 139, 140, 144, 140, 133, 137, 144, 139, 145, 137, 137, 132, 132, 139, 136, 135, 141, 141, 142, 140, 135, 135, 135, 143, 139, 144, 148, 142, 133, 139, 140, 138, 143, 140, 139, 137, 136, 142, 143, 133, 138, 146, 141, 138, 141, 142, 135, 136, 133, 140, 139, 135, 143, 139, 143, 141, 141, 134, 134, 143, 147, 137, 140, 138, 145, 141, 137, 130, 137, 139, 138, 140, 140, 137, 140, 144, 128, 135, 139, 137, 137, 135, 147, 144, 139, 142, 142, 140, 137, 129, 137, 140, 137, 143, 141, 132, 138, 138, 135, 139, 135, 136, 150, 131, 145, 135, 138, 142, 144, 136, 140, 144, 139, 133, 137, 138, 137, 132, 141, 141, 142, 136, 147, 146, 135, 142, 139, 145, 138, 129, 131, 138, 137, 142, 142, 141, 141, 137, 143, 147, 134, 137, 140, 134, 138, 136, 143, 141, 137, 152, 141, 135, 141, 142, 144, 135, 143, 142, 137, 139, 138, 135, 139, 139, 132, 134, 141, 143, 144, 139, 136, 136, 145, 137, 138, 143, 132, 137, 142, 145, 131, 132, 144, 143, 136, 141, 141, 141, 143, 144, 148, 147, 148, 144, 143, 139, 149, 138, 137, 141, 140, 141, 142, 138, 134, 142, 136, 136, 133, 136, 140, 144, 140, 141, 137, 139, 140, 139, 134, 140, 137, 137, 136, 144, 139, 144, 135, 134, 142, 139, 138, 141, 136, 148, 136, 140, 146, 150, 136, 140, 131, 143, 135, 141, 149, 135, 143, 150, 142, 139, 146, 137, 134, 134, 134, 138, 136, 134, 141, 134, 136, 141, 146, 138, 129, 138, 136, 135, 143, 132, 138, 135, 135, 144, 144, 148, 150, 136, 141, 143, 142, 132, 136, 130, 143, 135, 135, 134, 141, 145, 137, 145, 137, 138, 141, 139, 134, 136, 144, 135, 137, 144, 136, 140, 134, 143, 142, 133, 148, 137, 138, 138, 140, 141, 136, 139, 138, 135, 127, 134, 136, 139, 137, 132, 138, 148, 128, 146, 138, 136, 148, 135, 142, 137, 141, 144, 145, 139, 143, 138, 132, 139, 124, 136, 142, 143, 133, 137, 137, 133, 139, 142, 135, 137, 139, 139, 132, 137, 136, 138, 135, 144, 142, 139, 139, 134, 126, 145, 140, 139, 131, 143, 136, 140, 140, 140, 130, 141, 145, 132, 141, 142, 142, 147, 143, 147, 135, 142, 146, 130, 139, 146, 140, 134, 132, 140, 141, 140, 132, 136, 144, 141, 142, 145, 136, 143, 134, 135, 132, 134, 140, 153, 136, 138, 143, 144, 140, 139, 141, 141, 143, 132, 131, 138, 142, 133, 136, 139, 145, 134, 134, 130, 143, 132, 135, 135, 142, 136, 143, 137, 144, 137, 143, 133, 141, 137, 135, 137, 143, 143, 134, 133, 145, 134, 137, 145, 136, 145, 132, 132, 138, 142, 137, 140, 144, 145, 143, 140, 132, 137, 135, 135, 141, 142, 134, 135, 138, 139, 141, 140, 131, 136, 141, 140, 146, 138, 141, 137, 145, 137, 136, 141, 143, 132, 140, 139, 131, 130, 132, 135, 141, 130, 135, 142, 133, 147, 131, 144, 144, 146, 139, 137, 137, 142, 140, 137, 141, 132, 133, 138, 140, 144, 138, 134, 139, 144, 134, 140, 134, 146, 134, 120, 143, 135, 149, 148, 146, 141, 144, 151, 140, 134, 143, 133, 136, 136, 141, 146, 139, 140, 135, 133, 134, 145, 141, 132, 138, 145, 136, 143, 138, 137, 139, 138, 146, 136, 141, 140, 145, 148, 144, 134, 137, 146, 142, 131, 139, 134, 136, 139, 145, 151, 132, 137, 141, 134, 137, 131, 136, 142, 139, 137, 132, 143, 137, 138, 132, 140, 137, 144, 125, 139, 143, 140, 139, 142, 127, 138, 137, 132, 133, 137, 141, 141, 138, 137, 146, 138, 133, 142, 140, 140, 135, 142, 146, 138, 141, 143, 145, 144, 143, 131, 144, 131, 141, 139, 136, 135, 135, 136, 136, 137, 143, 138, 135, 135, 141, 136, 148, 140, 146, 130, 138, 139, 140, 137, 134, 144, 134, 141, 145, 138, 143, 145, 133, 135, 139, 136, 139, 147, 144, 136, 138, 140, 142, 141, 136, 147, 142, 131, 136, 129, 140, 137, 134, 142, 143, 138, 133, 138, 142, 138, 139, 138, 142, 140, 145, 147, 148, 133, 121, 145, 136, 139, 137, 142, 143, 142, 147, 133, 136, 143, 144, 142, 142, 136, 135, 138, 140, 137, 139, 140, 139, 136, 134, 139, 131, 138, 132, 137, 144, 128, 141, 141, 130, 138, 133, 138, 139, 136, 135, 143, 142, 143, 143, 137, 137, 134, 138, 142, 135, 136, 138, 144, 157, 145, 147, 139, 133, 140, 148, 136, 143, 132, 133, 137, 132, 139, 139, 132, 144, 137, 146, 132, 137, 138, 135, 135, 135, 138, 139, 141, 140, 135, 136, 132, 140, 126, 145, 136, 137, 146, 139, 140, 139, 133, 144, 138, 138, 148, 133, 144, 138, 126, 140, 147, 131, 142, 137, 134, 139, 145, 137, 137, 133, 144, 143, 146, 138, 137, 148, 141, 136, 145, 136, 138, 139, 136, 135, 144, 136, 142, 153, 146, 138, 132, 140, 135, 138, 140, 140, 143, 135, 146, 142, 129, 148, 143, 128, 135, 134, 137, 141, 134, 142, 138, 136, 135, 129, 134, 145, 139, 139, 139, 145, 138, 148, 143, 143, 136, 132, 135, 142, 131, 142, 146, 139, 135, 141, 135, 136, 137, 130, 132, 141, 141, 138, 132, 135, 142, 150, 132, 139, 132, 142, 139, 145, 152, 136, 141, 140, 141, 133, 142, 140, 144, 140, 139, 142, 140, 138, 143, 145, 145, 143, 144, 136, 144, 132, 138, 137, 136, 138, 142, 146, 149, 142, 137, 139, 137, 135, 138, 146, 142, 131, 139, 147, 127, 142, 145, 138, 148, 136, 142, 136, 140, 136, 146, 139, 144, 129, 143, 134, 137, 148, 136, 146, 140, 137, 140, 140, 142, 136, 142, 133, 135, 139, 150, 139, 139, 133, 133, 136, 142, 144, 147, 148, 148, 141, 136, 150, 140, 145, 141, 142, 140, 130, 141, 138, 147, 139, 141, 134, 144, 133, 141, 148, 126, 134, 138, 137, 138, 131, 138, 142, 146, 137, 134, 138, 137, 145, 136, 142, 140, 131, 137, 127, 149, 143, 143, 134, 139, 138, 138, 137, 141, 150, 135, 138, 138, 136, 136, 141, 144, 137, 139, 136, 135, 133, 146, 128, 137, 141, 132, 136, 136, 130, 138, 139, 141, 140, 142, 146, 150, 136, 151, 139, 141, 139, 140, 133, 139, 137, 139, 142, 132, 140, 132, 141, 142, 138, 138, 142, 138, 144, 138, 135, 134, 143, 139, 138, 143, 141, 131, 139, 139, 133, 131, 127, 136, 137, 143, 147, 138, 147, 140, 152, 136, 141, 140, 142, 138, 140, 144, 142, 138, 132, 128, 145, 132, 143, 141, 137, 136, 139, 130, 147, 143, 142, 143, 145, 145, 130, 136, 135, 138, 140, 132, 139, 145, 126, 141, 140, 146, 139, 149, 136, 144, 142, 143, 146, 140, 136, 137, 149, 135, 134, 138, 143, 140, 135, 143, 136, 138, 140, 138, 136, 132, 139, 141, 139, 142, 147, 139, 128, 135, 140, 138, 140, 148, 140, 130, 136, 135, 140, 136, 138, 148, 142, 137, 140, 139, 136, 138, 138, 138, 153, 137, 130, 136, 144, 146, 141, 122, 135, 141, 140, 145, 139, 139, 144, 136, 138, 140, 130, 140, 140, 136, 138, 138, 137, 142, 136, 137, 143, 136, 144, 145, 145, 145, 146, 135, 137, 144, 130, 141, 138, 147, 141, 127, 142, 139, 134, 138, 137, 125, 140, 136, 137, 134, 139, 143, 143, 131, 138, 144, 135, 135, 145, 134, 143, 143, 132, 138, 147, 129, 140, 140, 149, 143, 140, 144, 132, 126, 142, 142, 135, 137, 139, 148, 137, 141, 133, 141, 133, 145, 128, 132, 135, 144, 145, 150, 141, 134, 141, 141, 135, 142, 130, 141, 142, 135, 142, 134, 141, 125, 138, 137, 141, 144, 143, 136, 146, 137, 135, 135, 147, 141, 145, 142, 141, 141, 138, 139, 139, 131, 141, 133, 143, 146, 144, 139, 133, 135, 138, 149, 134, 135, 149, 143, 137, 127, 143, 153, 136, 139, 125, 137, 130, 138, 138, 134, 139, 147, 144, 146, 140, 141, 142, 144, 144, 135, 143, 139, 130, 140, 142, 137, 152, 141, 136, 147, 142, 139, 139, 140, 135, 147, 145, 141, 133, 149, 130, 142, 137, 143, 154, 141, 135, 141, 128, 135, 140, 138, 133, 143, 133, 141, 135, 144, 165, 146, 143, 133, 138, 128, 132, 143, 134, 144, 151, 145, 143, 136, 132, 119, 141, 143, 140, 144, 131, 138, 137, 134, 139, 139, 139, 138, 144, 134, 136, 136, 140, 142, 126, 147, 148, 141, 137, 130, 147, 147, 162, 143, 135, 151, 147, 133, 149, 137, 141, 131, 139, 136, 126, 131, 135, 128, 136, 136, 144, 135, 138, 144, 152, 143, 140, 131, 125, 137, 139, 142, 144, 136, 139, 136, 138, 146, 139, 133, 152, 147, 138, 146, 129, 152, 135, 130, 137, 144, 130, 137, 130, 146, 135, 142, 135, 138, 149, 135, 130, 136, 141, 151, 138, 143, 140, 149, 115, 143, 156, 146, 151, 148, 141, 140, 134, 140, 140, 144, 141, 146, 134, 135, 132, 142, 141, 135, 143, 132, 149, 138, 146, 145, 128, 137, 140, 139, 132, 138, 142, 132, 131, 138, 147, 137, 129, 134, 137, 130, 144, 142, 148, 137, 144, 133, 136, 152, 151, 135, 136, 143, 133, 145, 131, 142, 141, 130, 132, 130, 139, 140, 143, 137, 142, 161, 136, 138, 140, 142, 123, 147, 146, 127, 142, 137, 138, 141, 141, 150, 136, 135, 136, 131, 146, 150, 148, 126, 137, 137, 139, 137, 138, 130, 142, 142, 130, 144, 139, 144, 127, 151, 136, 133, 141, 131, 140, 139, 138, 139, 142, 140, 151, 135, 142, 149, 149, 130, 135, 146, 140, 131, 141, 135, 142, 145, 134, 138, 149, 140, 128, 141, 135, 140, 144, 136, 132, 141, 117, 138, 137, 156, 149, 146, 137, 142, 136, 140, 138, 139, 144, 139, 136, 137, 138, 143, 141, 140, 131, 142, 141, 137, 151, 147, 143, 140, 143, 136, 144, 132, 137, 131, 135, 145, 140, 146, 130, 143, 131, 125, 126, 144, 135, 137, 135, 136, 137, 138, 139, 143, 141, 131, 147, 135, 132, 138, 140, 139, 140, 144, 132, 150, 137, 144, 144, 130, 135, 128, 136, 140, 143, 139, 129, 137, 145, 142, 141, 140, 135, 137, 139, 144, 134, 125, 134, 146, 134, 142, 138, 134, 140, 141, 136, 141, 143, 125, 133, 137, 133, 135, 137, 123, 143, 132, 145, 136, 152, 139, 137, 134, 144, 139, 121, 130, 156, 144, 133, 144, 139, 138, 131, 133, 142, 140, 137, 144, 152, 142, 148, 150, 143, 137, 135, 135, 132, 149, 145, 132, 145, 142, 144, 147, 140, 147, 141, 150, 140, 140, 151, 138, 143, 144, 136, 140, 150, 137, 136, 134, 139, 129, 135, 135, 143, 134, 145, 145, 139, 133, 133, 145, 138, 143, 159, 138, 145, 133, 139, 136, 143, 139, 146, 142, 142, 135, 151, 137, 130, 136, 140, 133, 138, 138, 128, 145, 130, 138, 153, 153, 144, 138, 146, 139, 138, 144, 138, 141, 146, 135, 150, 140, 139, 123, 133, 136, 132, 141, 141, 136, 143, 137, 143, 143, 138, 141, 142, 135, 134, 140, 127, 142, 143, 142, 139, 143, 143, 140, 139, 141, 140, 140, 145, 139, 140, 139, 127, 140, 146, 142, 147, 138, 142, 140, 148, 138, 143, 138, 140, 138, 137, 135, 139, 133, 141, 137, 182, 146, 140, 141, 133, 147, 139, 141, 142, 149, 139, 138, 147, 138, 126, 142, 137, 142, 127, 126, 142, 143, 140, 140, 145, 138, 148, 143, 139, 141, 146, 141, 148, 140, 138, 151, 140, 141, 145, 144, 136, 139, 141, 144, 142, 136, 136, 139, 138, 142, 137, 137, 140, 144, 141, 132, 153, 132, 136, 144, 140, 138, 138, 139, 139, 136, 143, 145, 142, 137, 141, 141, 138, 139, 143, 136, 135, 145, 138, 138, 140, 141, 141, 141, 140, 137, 137, 138, 136, 143, 146, 138, 138, 143, 141, 146, 142, 135, 140, 135, 138, 138, 138, 140, 145, 142, 143, 141, 139, 137, 142, 143, 140, 135, 135, 137, 134, 139, 140, 133, 145, 143, 145, 139, 135, 144, 139, 164, 142, 145, 143, 139, 144, 142, 142, 140, 145, 130, 136, 142, 148, 139, 142, 140, 143, 135, 136, 150, 125, 140, 146, 144, 137, 136, 133, 137, 132, 134, 139, 134, 131, 145, 139, 137, 138, 140, 139, 140, 133, 134, 133, 146, 135, 142, 144, 140, 141, 140, 137, 135, 148, 133, 143, 134, 141, 143, 142, 137, 142, 143, 141, 142, 144, 143, 136, 141, 134, 140, 146, 108, 149, 133, 142, 136, 147, 135, 141, 143, 146, 144, 134, 145, 137, 137, 142, 144, 140, 134, 124, 144, 144, 140, 138, 140, 147, 143, 136, 142, 137, 142, 145, 145, 137, 139, 143, 140, 146, 116, 139, 142, 138, 137, 139, 150, 135, 141, 144, 147, 139, 137, 133, 140, 135, 135, 145, 144, 143, 134, 134, 140, 136, 140, 138, 137, 145, 142, 134, 134, 130, 144, 139, 138, 143, 144, 139, 144, 136, 148, 135, 143, 144, 140, 138, 145, 139, 137, 137, 135, 132, 127, 132, 135, 138, 146, 133, 151, 137, 140, 131, 134, 136, 139, 138, 139, 140, 139, 135, 139, 143, 142, 134, 135, 138, 136, 141, 134, 133, 157, 134, 135, 143, 139, 140, 139, 138, 143, 137, 134, 142, 139, 138, 135, 139, 135, 134, 138, 135, 138, 138, 134, 141, 139, 157, 144, 139, 140, 146, 136, 143, 143, 135, 149, 145, 138, 144, 134, 136, 142, 140, 142, 136, 137, 143, 135, 148, 134, 142, 135, 138, 139, 118, 137, 136, 141, 143, 140, 140, 141, 143, 138, 144, 137, 136, 138, 141, 139, 142, 138, 141, 137, 137, 139, 140, 137, 129, 151, 141, 144, 136, 140, 133, 140, 138, 136, 143, 144, 147, 139, 134, 139, 134, 135, 144, 143, 143, 140, 144, 141, 139, 145, 137, 136, 135, 141, 138, 143, 141, 133, 144, 140, 145, 135, 139, 132, 142, 137, 145, 138, 143, 144, 138, 137, 137, 138, 146, 135, 135, 125, 136, 153, 138, 133, 133, 128, 150, 137, 143, 134, 135, 141, 135, 137, 143, 144, 139, 149, 136, 131, 129, 139, 138, 140, 140, 152, 131, 137, 141, 135, 121, 129, 130, 123, 150, 140, 134, 138, 147, 140, 144, 149, 153, 145, 142, 140, 131, 131, 129, 143, 140, 137, 138, 139, 129, 141, 143, 133, 137, 137, 141, 138, 128, 157, 134, 133, 130, 123, 131, 143, 135, 130, 144, 142, 141, 140, 145, 140, 145, 133, 139, 142, 126, 147, 138, 151, 134, 132, 131, 140, 140, 140, 146, 137, 133, 140, 137, 134, 146, 137, 141, 138, 139, 117, 133, 138, 131, 142, 140, 135, 135, 140, 148, 137, 131, 138, 141, 147, 134, 144, 143, 140, 143, 143, 149, 148, 143, 139, 134, 136, 146, 141, 141, 125, 126, 142, 133, 131, 137, 139, 137, 143, 137, 134, 145, 142, 132, 131, 142, 136, 144, 139, 136, 140, 140, 133, 136, 143, 138, 135, 132, 146, 149, 129, 137, 138, 145, 150, 146, 126, 138, 136, 136, 139, 150, 139, 134, 143, 148, 153, 133, 138, 136, 128, 135, 131, 118, 137, 136, 136, 146, 137, 132, 149, 152, 126, 137, 137, 140, 142, 136, 146, 136, 142, 147, 137, 133, 137, 137, 140, 135, 140, 141, 147, 145, 145, 145, 133, 145, 141, 139, 145, 143, 142, 138, 129, 132, 138, 140, 140, 139, 137, 134, 125, 125, 136, 141, 131, 142, 136, 142, 130, 142, 134, 145, 139, 140, 141, 132, 146, 141, 138, 137, 136, 137, 147, 141, 129, 147, 135, 143, 146, 144, 145, 131, 141, 121, 142, 135, 129, 153, 139, 141, 135, 134, 129, 142, 146, 139, 137, 134, 139, 140, 144, 139, 138, 146, 141, 150, 142, 143, 127, 134, 136, 143, 139, 140, 140, 143, 132, 132, 146, 133, 133, 143, 142, 144, 133, 137, 138, 139, 145, 139, 154, 134, 152, 135, 139, 145, 143, 137, 139, 133, 134, 138, 146, 139, 142, 133, 132, 144, 134, 138, 145, 136, 136, 136, 137, 140, 138, 141, 148, 137, 144, 140, 141, 146, 139, 136, 145, 134, 132, 143, 145, 137, 139, 144, 139, 130, 134, 134, 129, 150, 153, 134, 137, 135, 150, 140, 139, 140, 143, 137, 137, 134, 133, 141, 138, 134, 137, 133, 131, 132, 132, 138, 147, 133, 145, 144, 150, 144, 140, 141, 130, 144, 127, 128, 141, 138, 135, 142, 146, 135, 127, 154, 148, 133, 138, 144, 135, 144, 143, 146, 154, 140, 142, 134, 149, 137, 141, 137, 132, 139, 137, 141, 135, 136, 147, 141, 145, 137, 140, 147, 143, 145, 134, 166, 137, 135, 138, 140, 121, 137, 128, 149, 139, 139, 137, 139, 143, 138, 138, 133, 140, 148, 143, 152, 134, 139, 141, 124, 134, 133, 130, 144, 139, 150, 136, 132, 138, 131, 133, 139, 148, 143, 135, 139, 134, 143, 143, 139, 132, 148, 150, 141, 142, 149, 137, 134, 123, 145, 136, 143, 136, 131, 147, 141, 145, 136, 139, 143, 135, 138, 135, 124, 138, 143, 140, 144, 152, 142, 137, 138, 138, 138, 138, 137, 135, 138, 142, 139, 141, 139, 137, 137, 143, 135, 140, 137, 139, 140, 138, 142, 142, 145, 136, 146, 142, 140, 141, 144, 141, 138, 141, 145, 140, 138, 137, 133, 140, 136, 137, 136, 140, 137, 140, 135, 141, 144, 143, 132, 136, 140, 138, 138, 132, 135, 141, 141, 140, 143, 138, 139, 141, 127, 140, 143, 141, 141, 137, 143, 137, 141, 131, 141, 137, 134, 141, 150, 146, 142, 138, 137, 141, 124, 144, 145, 137, 144, 143, 137, 137, 134, 138, 142, 133, 135, 140, 142, 141, 137, 140, 132, 145, 135, 140, 138, 139, 141, 137, 135, 137, 134, 138, 143, 138, 138, 142, 140, 139, 140, 135, 140, 136, 135, 138, 141, 141, 142, 138, 139, 143, 144, 139, 139, 142, 138, 129, 140, 138, 137, 141, 137, 134, 139, 138, 141, 143, 146, 136, 137, 144, 139, 139, 138, 142, 140, 143, 140, 143, 146, 137, 135, 137, 138, 147, 140, 139, 143, 133, 141, 140, 141, 140, 138, 140, 137, 142, 140, 141, 137, 142, 144, 140, 143, 140, 142, 146, 142, 141, 141, 139, 140, 142, 137, 134, 140, 136, 135, 143, 140, 138, 142, 133, 143, 139, 141, 149, 139, 137, 136, 140, 136, 141, 133, 140, 140, 138, 136, 138, 140, 135, 137, 138, 134, 136, 139, 139, 140, 137, 140, 142, 140, 140, 138, 136, 136, 141, 136, 140, 140, 142, 142, 143, 144, 137, 138, 134, 135, 140, 133, 136, 134, 142, 140, 137, 146, 139, 146, 133, 138, 140, 140, 140, 136, 141, 140, 140, 136, 146, 137, 136, 143, 137, 144, 144, 132, 129, 140, 137, 140, 143, 142, 138, 142, 137, 144, 137, 140, 139, 139, 134, 138, 137, 141, 137, 135, 137, 141, 138, 140, 139, 128, 131, 139, 136, 136, 136, 136, 145, 138, 146, 137, 138, 138, 141, 140, 137, 136, 140, 143, 135, 137, 141, 133, 134, 140, 137, 139, 137, 138, 136, 136, 139, 139, 136, 135, 142, 140, 137, 135, 139, 135, 140, 136, 138, 135, 134, 141, 128, 140, 139, 132, 138, 143, 141, 137, 139, 139, 136, 145, 134, 138, 134, 141, 143, 136, 137, 136, 137, 139, 137, 142, 139, 138, 143, 141, 132, 137, 140, 140, 134, 137, 136, 142, 135, 140, 137, 139, 139, 142, 137, 137, 133, 135, 129, 131, 129, 137, 142, 134, 141, 138, 139, 137, 144, 135, 137, 129, 139, 135, 132, 129, 143, 139, 139, 138, 140, 139, 145, 137, 136, 137, 135, 144, 138, 142, 136, 133, 141, 139, 142, 137, 139, 135, 141, 150, 134, 135, 137, 139, 140, 143, 135, 142, 135, 134, 137, 139, 137, 134, 144, 141, 142, 140, 141, 137, 133, 136, 134, 134, 141, 140, 139, 141, 138, 138, 144, 145, 137, 138, 138, 139, 141, 140, 136, 138, 141, 138, 139, 138, 141, 141, 138, 144, 140, 134, 139, 138, 137, 131, 139, 141, 138, 140, 143, 135, 139, 135, 144, 142, 135, 138, 139, 138, 141, 139, 136, 137, 146, 140, 137, 147, 135, 129, 143, 143, 137, 137, 134, 134, 128, 146, 147, 137, 144, 139, 138, 140, 150, 142, 148, 131, 139, 135, 136, 141, 146, 147, 148, 138, 139, 142, 134, 138, 145, 140, 138, 141, 143, 138, 137, 151, 145, 142, 144, 137, 131, 140, 144, 133, 135, 131, 132, 141, 143, 135, 135, 133, 142, 145, 137, 137, 135, 140, 144, 142, 145, 137, 141, 131, 139, 129, 134, 142, 139, 143, 145, 124, 138, 148, 141, 147, 149, 137, 132, 125, 141, 138, 136, 138, 143, 131, 141, 139, 144, 126, 140, 146, 129, 140, 140, 142, 140, 132, 141, 138, 136, 127, 136, 134, 141, 133, 131, 142, 139, 151, 140, 144, 149, 135, 136, 140, 139, 135, 145, 138, 136, 145, 134, 140, 134, 130, 132, 140, 137, 140, 134, 136, 135, 134, 142, 147, 136, 143, 142, 139, 148, 141, 141, 141, 140, 129, 143, 139, 143, 140, 141, 131, 141, 143, 137, 140, 126, 129, 129, 135, 135, 138, 137, 140, 133, 139, 138, 143, 138, 136, 134, 145, 136, 140, 140, 149, 138, 134, 138, 140, 139, 144, 136, 140, 136, 138, 144, 141, 129, 133, 136, 136, 141, 146, 131, 134, 136, 130, 133, 133, 144, 136, 139, 138, 141, 123, 137, 143, 137, 135, 143, 154, 135, 140, 135, 142, 139, 139, 136, 143, 134, 138, 143, 144, 129, 142, 140, 137, 134, 145, 143, 142, 137, 145, 130, 146, 130, 137, 138, 154, 138, 139, 137, 135, 129, 139, 135, 139, 138, 141, 138, 125, 132, 142, 140, 136, 151, 149, 139, 139, 143, 136, 135, 159, 138, 130, 137, 138, 143, 137, 135, 135, 135, 140, 136, 136, 132, 141, 138, 145, 128, 143, 143, 136, 134, 154, 128, 136, 137, 138, 137, 146, 137, 138, 135, 132, 144, 134, 142, 139, 133, 155, 146, 134, 136, 159, 135, 137, 132, 133, 128, 142, 149, 132, 135, 147, 134, 141, 145, 137, 142, 133, 136, 139, 137, 128, 134, 137, 143, 139, 137, 134, 141, 145, 138, 132, 143, 145, 134, 138, 146, 141, 133, 137, 137, 141, 144, 147, 132, 133, 144, 133, 143, 144, 147, 141, 128, 141, 146, 146, 136, 138, 136, 139, 131, 141, 128, 134, 135, 145, 136, 145, 144, 150, 139, 135, 143, 145, 142, 139, 141, 132, 141, 139, 153, 135, 142, 144, 138, 145, 138, 142, 129, 132, 136, 135, 136, 141, 134, 142, 136, 129, 136, 135, 147, 138, 142, 136, 135, 150, 132, 143, 146, 135, 138, 140, 138, 141, 136, 137, 135, 145, 143, 134, 135, 141, 138, 133, 139, 132, 136, 142, 135, 137, 135, 133, 136, 134, 148, 143, 141, 138, 143, 145, 145, 141, 140, 144, 140, 145, 152, 132, 145, 136, 147, 134, 129, 126, 148, 136, 132, 140, 146, 149, 137, 131, 141, 143, 138, 139, 128, 143, 132, 142, 137, 137, 131, 132, 137, 128, 141, 142, 139, 133, 135, 130, 135, 136, 144, 135, 134, 137, 136, 139, 139, 143, 146, 135, 133, 137, 136, 139, 140, 134, 137, 148, 144, 129, 139, 145, 142, 137, 142, 145, 138, 137, 132, 135, 139, 136, 142, 141, 134, 133, 148, 137, 139, 138, 140, 147, 148, 144, 145, 144, 135, 139, 143, 144, 131, 138, 138, 153, 139, 134, 134, 137, 146, 134, 134, 142, 137, 145, 139, 146, 138, 142, 127, 135, 134, 137, 136, 149, 135, 150, 139, 147, 138, 133, 133, 137, 142, 149, 144, 139, 138, 135, 132, 132, 136, 134, 141, 137, 149, 137, 141, 149, 141, 142, 131, 134, 138, 129, 130, 136, 138, 136, 143, 143, 133, 141, 140, 142, 133, 148, 139, 133, 134, 138, 144, 135, 143, 140, 140, 130, 144, 141, 135, 130, 142, 146, 140, 138, 135, 128, 127, 145, 139, 135, 134, 148, 140, 138, 137, 139, 141, 139, 142, 136, 134, 140, 140, 141, 128, 142, 140, 132, 141, 146, 141, 136, 129, 132, 139, 142, 130, 123, 136, 148, 137, 137, 134, 141, 142, 149, 147, 129, 139, 130, 143, 139, 125, 146, 141, 134, 141, 140, 138, 143, 131, 134, 136, 135, 139, 149, 138, 141, 142, 135, 136, 132, 135, 147, 140, 138, 134, 142, 135, 141, 138, 146, 140, 139, 141, 139, 141, 134, 133, 147, 143, 138, 141, 133, 132, 141, 143, 142, 126, 141, 148, 136, 139, 135, 134, 143, 135, 145, 139, 137, 141, 141, 144, 137, 134, 143, 137, 145, 151, 145, 133, 143, 139, 133, 148, 139, 126, 136, 140, 147, 149, 132, 141, 136, 136, 137, 145, 140, 142, 139, 129, 137, 132, 141, 138, 153, 146, 135, 142, 148, 136, 137, 141, 145, 134, 137, 134, 126, 139, 133, 149, 141, 141, 136, 134, 133, 136, 141, 136, 128, 140, 137, 143, 146, 137, 138, 135, 139, 139, 139, 138, 143, 141, 138, 145, 139, 146, 140, 133, 135, 135, 137, 141, 132, 138, 146, 142, 159, 140, 143, 130, 137, 130, 139, 139, 142, 139, 138, 131, 149, 149, 143, 142, 134, 143, 133, 139, 143, 139, 141, 143, 134, 136, 142, 145, 129, 140, 142, 146, 133, 146, 147, 144, 138, 136, 138, 135, 139, 141, 130, 144, 143, 131, 141, 138, 129, 144, 145, 140, 137, 133, 140, 140, 135, 137, 139, 156, 134, 140, 141, 144, 136, 146, 138, 133, 144, 147, 136, 144, 132, 142, 132, 131, 131, 138, 138, 138, 134, 131, 135, 148, 140, 145, 144, 146, 141, 133, 137, 152, 134, 130, 150, 127, 124, 144, 137, 136, 139, 145, 138, 134, 132, 141, 141, 145, 138, 142, 139, 135, 138, 138, 139, 130, 139, 140, 136, 159, 135, 144, 141, 140, 131, 144, 141, 139, 143, 136, 136, 135, 138, 143, 143, 133, 141, 141, 136, 140, 131, 136, 142, 146, 147, 136, 130, 133, 136, 142, 140, 139, 136, 133, 143, 144, 144, 139, 134, 139, 140, 137, 138, 137, 135, 137, 145, 135, 134, 132, 146, 147, 137, 138, 148, 145, 136, 139, 138, 137, 144, 140, 142, 142, 142, 144, 139, 136, 138, 131, 147, 145, 142, 143, 137, 143, 143, 143, 148, 135, 140, 133, 144, 142, 146, 142, 137, 137, 146, 130, 133, 140, 132, 137, 130, 146, 138, 144, 140, 144, 136, 144, 139, 138, 147, 135, 144, 138, 133, 146, 149, 136, 143, 140, 138, 132, 141, 137, 144, 138, 142, 134, 143, 128, 139, 152, 137, 130, 142, 144, 139, 135, 144, 153, 137, 139, 140, 155, 135, 135, 146, 145, 140, 132, 139, 145, 169, 144, 137, 123, 141, 145, 139, 135, 141, 140, 150, 138, 146, 148, 150, 133, 136, 138, 146, 139, 139, 139, 132, 138, 118, 144, 132, 134, 137, 137, 143, 151, 119, 144, 133, 139, 131, 137, 135, 137, 146, 154, 146, 143, 139, 128, 138, 136, 135, 139, 145, 141, 138, 131, 141, 137, 141, 136, 139, 134, 137, 141, 149, 136, 130, 139, 145, 135, 151, 140, 123, 142, 143, 137, 146, 139, 133, 133, 140, 148, 145, 137, 138, 133, 149, 139, 117, 142, 141, 140, 133, 137, 143, 151, 134, 137, 140, 141, 136, 135, 137, 141, 137, 130, 141, 140, 132, 141, 133, 142, 141, 139, 135, 139, 140, 151, 146, 130, 140, 142, 135, 141, 142, 137, 143, 142, 143, 135, 143, 136, 144, 132, 134, 134, 133, 137, 121, 140, 135, 137, 133, 136, 137, 134, 131, 140, 144, 135, 139, 139, 116, 143, 141, 143, 141, 133, 139, 140, 132, 143, 149, 133, 136, 146, 151, 123, 139, 129, 137, 133, 138, 144, 141, 148, 137, 143, 137, 158, 138, 140, 144, 137, 142, 154, 148, 133, 151, 142, 135, 143, 135, 143, 136, 122, 150, 143, 138, 143, 140, 125, 140, 127, 136, 133, 136, 138, 136, 146, 138, 141, 128, 134, 132, 142, 141, 135, 136, 138, 144, 137, 145, 139, 140, 141, 137, 136, 124, 143, 129, 144, 140, 137, 132, 138, 143, 144, 135, 137, 134, 138, 138, 141, 150, 136, 135, 140, 135, 140, 135, 141, 136, 133, 125, 133, 151, 143, 139, 131, 142, 124, 144, 137, 123, 154, 135, 140, 142, 134, 144, 140, 131, 140, 142, 135, 136, 134, 133, 147, 132, 122, 145, 142, 140, 149, 136, 132, 135, 135, 137, 152, 141, 130, 148, 137, 129, 136, 127, 140, 138, 137, 136, 134, 147, 140, 151, 155, 137, 144, 141, 140, 136, 133, 150, 142, 150, 139, 141, 136, 128, 138, 140, 139, 141, 138, 155, 138, 144, 146, 138, 142, 139, 135, 148, 145, 134, 133, 147, 145, 132, 146, 137, 137, 137, 135, 136, 142, 141, 141, 147, 149, 144, 138, 137, 127, 141, 136, 136, 143, 148, 132, 143, 144, 130, 142, 135, 139, 137, 139, 136, 138, 140, 150, 137, 140, 155, 130, 148, 134, 141, 143, 140, 146, 156, 143, 135, 131, 148, 136, 143, 141, 132, 159, 143, 132, 134, 146, 141, 131, 144, 141, 137, 149, 133, 145, 133, 144, 143, 137, 141, 145, 148, 145, 128, 135, 140, 139, 140, 147, 139, 146, 147, 136, 143, 143, 133, 142, 144, 144, 133, 137, 137, 150, 145, 154, 136, 147, 144, 145, 134, 144, 142, 140, 135, 144, 131, 153, 147, 131, 133, 138, 131, 141, 139, 139, 140, 136, 142, 141, 148, 151, 143, 130, 141, 144, 142, 143, 142, 141, 141, 137, 143, 137, 133, 145, 140, 145, 153, 145, 137, 139, 145, 153, 137, 146, 131, 134, 148, 137, 146, 133, 142, 125, 142, 137, 141, 137, 136, 133, 136, 142, 136, 140, 149, 137, 131, 138, 142, 144, 139, 143, 137, 134, 128, 135, 135, 125, 137, 139, 133, 136, 139, 139, 133, 132, 125, 138, 135, 145, 132, 137, 137, 151, 133, 144, 139, 146, 133, 123, 130, 143, 138, 142, 145, 141, 136, 143, 148, 141, 139, 144, 141, 137, 139, 150, 139, 152, 125, 132, 147, 137, 148, 134, 139, 135, 138, 138, 140, 137, 131, 137, 149, 144, 147, 136, 145, 146, 144, 138, 155, 146, 143, 128, 140, 140, 133, 141, 135, 142, 143, 145, 138, 138, 134, 141, 141, 143, 136, 119, 143, 127, 142, 140, 135, 139, 164, 137, 138, 149, 145, 133, 133, 138, 135, 142, 149, 142, 139, 142, 140, 129, 142, 132, 142, 140, 144, 135, 134, 148, 129, 133, 142, 133, 145, 144, 159, 137, 136, 142, 137, 142, 145, 161, 149, 143, 134, 134, 152, 125, 129, 140, 138, 140, 143, 139, 137, 132, 147, 142, 138, 145, 147, 146, 141, 136, 138, 133, 140, 121, 131, 140, 140, 133, 133, 134, 142, 141, 140, 139, 143, 140, 139, 139, 143, 135, 131, 140, 155, 147, 137, 154, 144, 133, 136, 140, 134, 133, 127, 151, 144, 141, 140, 132, 127, 138, 143, 129, 141, 140, 137, 141, 146, 141, 135, 141, 141, 150, 143, 136, 149, 131, 129, 134, 126, 152, 145, 130, 128, 141, 141, 134, 142, 144, 138, 128, 141, 131, 137, 140, 146, 127, 131, 142, 143, 123, 135, 137, 153, 147, 136, 133, 138, 137, 124, 140, 141, 123, 138, 136, 145, 135, 137, 137, 144, 139, 135, 125, 145, 136, 147, 140, 144, 139, 142, 140, 144, 141, 129, 132, 140, 146, 136, 146, 148, 130, 143, 140, 138, 136, 140, 130, 144, 149, 144, 137, 134, 144, 135, 137, 141, 142, 130, 135, 129, 125, 133, 147, 135, 136, 144, 139, 148, 134, 143, 137, 136, 126, 144, 135, 133, 142, 143, 136, 140, 137, 131, 152, 143, 140, 138, 142, 150, 137, 136, 131, 140, 141, 152, 132, 141, 148, 150, 140, 132, 140, 140, 134, 142, 136, 140, 141, 134, 141, 145, 145, 137, 140, 134, 138, 138, 129, 139, 138, 141, 146, 131, 148, 139, 143, 145, 130, 128, 142, 140, 143, 137, 130, 134, 141, 136, 143, 138, 146, 136, 149, 141, 133, 141, 140, 143, 148, 139, 122, 137, 136, 145, 127, 136, 138, 125, 136, 152, 136, 143, 140, 139, 138, 143, 137, 134, 130, 130, 134, 129, 140, 148, 144, 136, 149, 149, 138, 130, 147, 150, 130, 142, 133, 145, 130, 150, 140, 132, 133, 139, 144, 131, 127, 142, 139, 139, 146, 145, 144, 139, 140, 138, 143, 140, 147, 129, 144, 139, 141, 139, 139, 150, 139, 122, 136, 137, 142, 137, 151, 140, 135, 133, 140, 134, 138, 134, 148, 129, 134, 133, 136, 137, 141, 144, 138, 143, 140, 135, 147, 134, 137, 138, 147, 143, 139, 136, 131, 143, 143, 141, 144, 151, 140, 143, 142, 139, 135, 134, 129, 139, 140, 144, 141, 134, 137, 139, 142, 140, 140, 136, 145, 138, 129, 140, 156, 143, 137, 145, 133, 137, 145, 140, 144, 133, 130, 137, 143, 144, 147, 135, 136, 135, 136, 130, 141, 146, 139, 130, 141, 135, 135, 146, 133, 145, 146, 141, 136, 142, 144, 142, 139, 140, 141, 142, 142, 142, 134, 141, 136, 136, 138, 136, 128, 140, 136, 146, 139, 135, 147, 157, 142, 140, 141, 139, 138, 141, 133, 134, 139, 141, 143, 136, 141, 145, 138, 136, 142, 139, 139, 141, 144, 142, 136, 145, 141, 139, 131, 138, 139, 140, 142, 134, 144, 146, 134, 146, 120, 137, 128, 136, 141, 143, 141, 146, 133, 140, 136, 136, 142, 136, 142, 136, 132, 137, 149, 137, 134, 138, 140, 132, 138, 136, 133, 141, 139, 140, 135, 138, 137, 138, 139, 139, 138, 129, 143, 144, 141, 141, 139, 134, 136, 141, 142, 140, 133, 145, 144, 142, 140, 155, 141, 153, 135, 137, 132, 143, 136, 130, 136, 143, 134, 144, 137, 134, 143, 130, 143, 136, 130, 141, 137, 135, 131, 143, 136, 134, 143, 132, 151, 140, 139, 133, 139, 129, 138, 131, 135, 136, 135, 143, 140, 139, 139, 134, 136, 142, 134, 131, 137, 132, 140, 146, 147, 136, 147, 148, 135, 146, 139, 144, 134, 144, 136, 145, 139, 134, 138, 134, 129, 136, 135, 135, 134, 146, 132, 129, 138, 123, 139, 138, 146, 132, 138, 138, 141, 130, 148, 142, 139, 139, 133, 143, 146, 138, 140, 138, 138, 141, 132, 134, 140, 135, 144, 139, 133, 141, 132, 145, 137, 143, 138, 134, 145, 141, 143, 142, 135, 135, 138, 126, 139, 138, 140, 141, 130, 148, 144, 145, 144, 135, 132, 138, 139, 143, 145, 138, 137, 141, 132, 137, 143, 143, 148, 133, 134, 133, 142, 139, 140, 144, 144, 132, 143, 131, 141, 144, 133, 142, 144, 142, 136, 135, 132, 153, 137, 141, 131, 145, 135, 135, 137, 146, 132, 140, 135, 144, 135, 140, 138, 143, 137, 132, 130, 135, 138, 136, 130, 139, 146, 144, 144, 143, 135, 145, 144, 135, 151, 141, 138, 147, 141, 143, 140, 137, 138, 147, 137, 138, 138, 142, 138, 141, 147, 138, 139, 138, 145, 136, 143, 145, 137, 132, 144, 141, 136, 134, 142, 135, 132, 138, 142, 138, 141, 142, 138, 142, 135, 143, 140, 135, 134, 132, 142, 147, 148, 138, 135, 134, 137, 153, 143, 140, 125, 136, 130, 138, 140, 130, 143, 142, 127, 140, 138, 138, 149, 141, 143, 140, 143, 142, 133, 133, 144, 139, 134, 135, 143, 136, 142, 143, 146, 136, 134, 146, 130, 159, 143, 138, 141, 136, 136, 136, 142, 133, 139, 134, 136, 136, 139, 140, 131, 142, 147, 139, 135, 135, 142, 139, 139, 135, 140, 138, 136, 137, 143, 140, 131, 138, 127, 153, 155, 141, 127, 138, 135, 142, 148, 134, 143, 137, 148, 137, 137, 135, 142, 144, 137, 163, 130, 142, 139, 144, 143, 147, 141, 148, 136, 136, 138, 137, 139, 141, 147, 147, 129, 133, 134, 134, 131, 133, 131, 134, 151, 123, 140, 147, 137, 142, 137, 141, 157, 137, 144, 150, 149, 149, 139, 134, 140, 137, 134, 142, 140, 145, 140, 130, 147, 145, 136, 140, 143, 142, 136, 145, 138, 145, 145, 140, 141, 146, 139, 137, 149, 132, 144, 156, 140, 137, 131, 139, 130, 144, 131, 137, 155, 134, 140, 151, 131, 134, 134, 148, 142, 146, 136, 137, 134, 125, 148, 137, 133, 143, 146, 134, 139, 139, 144, 131, 134, 139, 138, 130, 137, 139, 137, 150, 142, 135, 128, 134, 144, 132, 144, 137, 151, 127, 142, 140, 146, 136, 145, 142, 139, 144, 136, 142, 147, 140, 131, 140, 136, 139, 134, 143, 130, 139, 144, 131, 140, 133, 147, 156, 147, 139, 138, 133, 133, 133, 139, 162, 146, 129, 138, 140, 130, 137, 131, 144, 134, 144, 135, 149, 131, 132, 139, 140, 144, 131, 134, 138, 132, 133, 130, 142, 149, 139, 134, 138, 156, 135, 131, 148, 142, 140, 134, 144, 142, 136, 143, 131, 136, 141, 143, 134, 134, 132, 139, 146, 129, 154, 135, 129, 138, 148, 134, 145, 141, 129, 127, 141, 137, 152, 144, 141, 129, 127, 134, 138, 138, 132, 155, 129, 146, 131, 139, 149, 149, 131, 138, 140, 138, 148, 136, 136, 127, 132, 142, 142, 133, 141, 121, 136, 134, 140, 139, 138, 146, 131, 136, 138, 144, 148, 132, 137, 133, 140, 139, 143, 132, 128, 141, 147, 153, 136, 126, 147, 150, 130, 129, 142, 139, 131, 136, 149, 149, 119, 133, 146, 145, 137, 144, 138, 132, 128, 143, 139, 145, 149, 129, 141, 139, 146, 145, 146, 132, 139, 136, 138, 142, 142, 150, 124, 127, 144, 121, 146, 137, 135, 131, 135, 135, 131, 156, 146, 148, 145, 129, 137, 137, 146, 137, 133, 144, 133, 136, 142, 136, 133, 138, 130, 132, 154, 135, 136, 131, 150, 135, 137, 154, 138, 143, 136, 125, 141, 139, 141, 144, 133, 139, 124, 141, 127, 130, 128, 140, 139, 143, 133, 142, 144, 152, 150, 134, 136, 126, 152, 132, 139, 130, 132, 139, 137, 123, 131, 143, 140, 139, 133, 127, 137, 141, 131, 143, 137, 148, 136, 150, 124, 139, 133, 132, 143, 131, 142, 140, 125, 142, 139, 148, 116, 142, 144, 129, 122, 138, 149, 138, 145, 124, 133, 130, 129, 133, 149, 142, 139, 141, 140, 131, 148, 132, 138, 134, 124, 145, 137, 139, 138, 140, 137, 141, 140, 159, 142, 135, 140, 137, 140, 137, 146, 139, 137, 138, 136, 148, 129, 130, 142, 132, 139, 135, 134, 136, 151, 138, 128, 148, 142, 141, 137, 138, 128, 143, 128, 141, 139, 138, 138, 150, 142, 140, 141, 137, 143, 132, 137, 133, 140, 135, 120, 151, 140, 139, 147, 127, 138, 134, 134, 145, 135, 127, 134, 137, 139, 137, 138, 142, 133, 143, 144, 139, 141, 147, 133, 150, 137, 133, 142, 142, 143, 137, 140, 134, 141, 131, 141, 130, 133, 152, 143, 139, 132, 136, 143, 134, 142, 136, 137, 138, 141, 140, 141, 135, 137, 144, 137, 138, 141, 138, 141, 138, 129, 137, 140, 137, 139, 147, 138, 141, 138, 136, 133, 137, 141, 138, 148, 131, 141, 137, 142, 139, 139, 140, 140, 142, 139, 143, 124, 140, 134, 135, 138, 141, 137, 141, 139, 141, 145, 142, 134, 135, 138, 139, 138, 128, 141, 138, 135, 131, 134, 150, 139, 130, 130, 137, 134, 133, 136, 134, 138, 144, 135, 145, 146, 136, 137, 138, 136, 140, 137, 137, 138, 143, 139, 140, 134, 140, 130, 141, 140, 143, 140, 137, 142, 132, 134, 137, 138, 144, 130, 135, 135, 142, 135, 136, 138, 143, 141, 137, 142, 144, 141, 132, 140, 138, 139, 140, 142, 137, 139, 136, 135, 137, 142, 134, 141, 133, 140, 137, 129, 139, 140, 134, 130, 137, 137, 137, 143, 136, 138, 143, 136, 138, 141, 143, 139, 134, 131, 138, 144, 143, 146, 140, 143, 134, 137, 135, 139, 143, 133, 144, 144, 145, 140, 136, 138, 138, 138, 133, 139, 136, 134, 141, 142, 134, 142, 143, 128, 133, 130, 137, 132, 133, 141, 137, 146, 152, 130, 143, 132, 127, 142, 147, 139, 138, 144, 144, 140, 133, 145, 136, 141, 140, 143, 137, 140, 142, 139, 133, 134, 134, 129, 140, 136, 138, 143, 147, 145, 139, 138, 131, 130, 138, 139, 124, 134, 132, 140, 133, 138, 135, 139, 144, 145, 136, 143, 135, 141, 138, 144, 133, 145, 130, 140, 139, 140, 140, 134, 139, 142, 146, 140, 137, 137, 141, 133, 144, 138, 137, 145, 134, 132, 139, 140, 137, 135, 137, 138, 147, 138, 142, 138, 137, 145, 142, 143, 141, 132, 145, 127, 139, 140, 143, 140, 133, 143, 138, 143, 136, 135, 157, 136, 142, 140, 136, 140, 143, 140, 139, 148, 137, 137, 126, 136, 131, 145, 132, 134, 142, 145, 146, 138, 136, 138, 138, 134, 134, 136, 140, 140, 130, 146, 136, 139, 130, 142, 139, 134, 134, 135, 134, 138, 137, 136, 135, 153, 138, 138, 144, 132, 135, 131, 137, 129, 141, 133, 146, 137, 138, 137, 132, 135, 141, 135, 140, 137, 136, 138, 143, 137, 136, 138, 135, 124, 144, 142, 133, 137, 139, 139, 145, 134, 140, 138, 139, 146, 139, 139, 133, 138, 143, 139, 143, 143, 135, 138, 138, 136, 137, 146, 141, 140, 140, 136, 131, 143, 141, 142, 136, 140, 147, 138, 134, 136, 153, 145, 144, 134, 136, 136, 136, 136, 138, 139, 140, 138, 137, 149, 139, 140, 144, 139, 139, 141, 135, 139, 141, 144, 135, 134, 138, 140, 137, 132, 130, 141, 136, 144, 143, 132, 136, 143, 131, 131, 138, 145, 137, 140, 143, 135, 143, 141, 143, 138, 139, 146, 142, 135, 133, 133, 126, 136, 137, 137, 136, 133, 134, 134, 141, 137, 139, 136, 137, 146, 140, 143, 139, 133, 135, 131, 138, 147, 142, 134, 140, 136, 137, 150, 131, 139, 138, 138, 138, 135, 141, 139, 139, 140, 146, 131, 139, 136, 139, 144, 142, 140, 142, 149, 140, 138, 133, 135, 145, 135, 138, 132, 135, 138, 133, 140, 138, 136, 138, 142, 139, 143, 132, 138, 142, 137, 136, 135, 136, 141, 136, 144, 145, 130, 137, 142, 138, 143, 132, 136, 138, 141, 136, 136, 138, 141, 142, 136, 139, 137, 135, 139, 132, 138, 143, 134, 140, 141, 141, 135, 142, 135, 129, 138, 138, 139, 133, 136, 138, 137, 137, 133, 137, 130, 138, 133, 140, 138, 142, 145, 142, 141, 132, 141, 139, 148, 136, 136, 136, 135, 141, 137, 139, 134, 132, 145, 141, 142, 143, 139, 140, 140, 137, 143, 136, 135, 137, 147, 134, 146, 138, 140, 137, 128, 134, 135, 138, 136, 137, 136, 140, 137, 130, 140, 143, 147, 136, 140, 138, 135, 137, 137, 136, 135, 146, 138, 135, 141, 129, 135, 146, 135, 136, 139, 138, 144, 134, 139, 150, 144, 139, 142, 133, 141, 136, 148, 145, 145, 138, 132, 137, 128, 139, 136, 134, 141, 139, 144, 141, 131, 142, 138, 142, 140, 138, 139, 141, 143, 134, 132, 142, 143, 134, 143, 135, 130, 142, 140, 131, 141, 133, 134, 132, 140, 144, 139, 140, 143, 137, 139, 145, 142, 138, 134, 141, 135, 147, 144, 134, 145, 137, 138, 134, 138, 140, 134, 135, 137, 143, 133, 145, 136, 142, 139, 143, 143, 142, 141, 139, 138, 157, 135, 139, 148, 149, 136, 140, 141, 135, 128, 142, 149, 138, 139, 133, 140, 138, 138, 143, 138, 131, 146, 145, 141, 141, 138, 135, 142, 136, 144, 135, 137, 130, 135, 141, 136, 142, 136, 143, 144, 137, 132, 135, 139, 135, 142, 144, 141, 140, 150, 137, 140, 140, 139, 143, 128, 131, 139, 141, 136, 140, 134, 139, 133, 140, 136, 140, 138, 137, 141, 135, 137, 127, 140, 137, 142, 135, 134, 140, 135, 135, 145, 138, 142, 142, 148, 143, 156, 139, 132, 137, 139, 133, 134, 137, 137, 137, 139, 143, 141, 132, 140, 143, 138, 133, 142, 134, 144, 146, 138, 141, 136, 129, 134, 136, 139, 142, 133, 144, 146, 136, 144, 139, 146, 139, 140, 133, 135, 137, 143, 151, 145, 143, 144, 144, 140, 141, 138, 139, 136, 132, 147, 142, 145, 143, 140, 137, 134, 133, 136, 131, 140, 140, 130, 131, 137, 141, 139, 143, 142, 137, 136, 141, 136, 153, 136, 136, 136, 140, 132, 141, 133, 137, 144, 139, 143, 136, 133, 139, 136, 139, 139, 139, 145, 137, 137, 143, 138, 142, 144, 134, 138, 142, 134, 133, 132, 134, 137, 136, 138, 143, 140, 140, 137, 138, 137, 136, 145, 137, 135, 137, 136, 140, 135, 136, 137, 142, 138, 140, 150, 134, 136, 137, 142, 135, 133, 152, 139, 145, 152, 140, 137, 135, 132, 136, 128, 131, 152, 127, 144, 140, 138, 142, 127, 147, 145, 152, 142, 133, 138, 147, 139, 133, 147, 134, 137, 144, 140, 136, 125, 142, 139, 138, 143, 134, 134, 138, 141, 131, 135, 146, 136, 132, 137, 142, 139, 144, 133, 134, 140, 143, 131, 133, 137, 142, 137, 142, 145, 148, 135, 135, 142, 134, 139, 134, 151, 139, 142, 143, 141, 144, 147, 129, 140, 142, 134, 141, 129, 135, 142, 138, 140, 138, 133, 139, 152, 145, 140, 135, 141, 141, 123, 136, 122, 136, 135, 140, 137, 138, 140, 135, 136, 139, 129, 133, 136, 147, 144, 139, 139, 139, 127, 133, 147, 140, 140, 135, 138, 145, 144, 140, 132, 150, 137, 144, 144, 136, 150, 129, 141, 145, 135, 134, 138, 140, 141, 135, 139, 134, 137, 137, 146, 137, 137, 142, 142, 138, 137, 145, 136, 143, 143, 149, 135, 129, 141, 138, 139, 141, 139, 133, 139, 134, 144, 138, 140, 131, 136, 132, 138, 136, 149, 143, 139, 137, 131, 133, 147, 138, 140, 134, 140, 131, 135, 145, 122, 141, 139, 149, 140, 137, 137, 136, 130, 145, 137, 145, 123, 135, 132, 134, 134, 130, 136, 136, 135, 146, 130, 136, 139, 133, 137, 135, 140, 144, 126, 141, 140, 137, 137, 147, 142, 134, 147, 136, 143, 146, 141, 133, 131, 145, 141, 138, 148, 135, 141, 139, 133, 133, 135, 136, 139, 137, 132, 139, 133, 133, 131, 132, 143, 139, 132, 138, 141, 142, 133, 144, 143, 136, 148, 144, 139, 148, 139, 127, 135, 140, 136, 136, 133, 137, 139, 135, 134, 137, 134, 144, 137, 142, 133, 141, 132, 135, 131, 134, 141, 146, 139, 138, 154, 136, 142, 140, 137, 137, 140, 134, 131, 136, 123, 133, 143, 141, 137, 138, 134, 154, 139, 134, 125, 136, 140, 117, 136, 139, 143, 142, 145, 137, 131, 138, 135, 139, 131, 139, 139, 146, 127, 140, 137, 134, 139, 142, 140, 136, 142, 147, 136, 133, 145, 142, 142, 145, 145, 136, 138, 138, 136, 141, 147, 132, 144, 140, 141, 132, 135, 135, 126, 137, 143, 138, 142, 152, 131, 149, 136, 134, 142, 132, 134, 146, 134, 142, 141, 143, 133, 144, 138, 143, 137, 128, 147, 139, 134, 138, 141, 144, 135, 147, 126, 128, 130, 129, 142, 148, 135, 136, 140, 138, 140, 131, 140, 137, 145, 160, 135, 142, 133, 144, 141, 142, 135, 141, 145, 132, 143, 148, 142, 135, 146, 138, 146, 125, 147, 146, 145, 136, 135, 142, 133, 138, 141, 138, 140, 140, 150, 134, 139, 128, 139, 136, 128, 132, 136, 133, 141, 134, 143, 137, 142, 143, 144, 138, 142, 141, 138, 141, 137, 143, 134, 141, 138, 135, 141, 143, 140, 142, 141, 141, 131, 133, 135, 141, 140, 141, 146, 150, 134, 142, 135, 139, 139, 143, 137, 139, 134, 133, 125, 145, 132, 150, 145, 136, 139, 134, 137, 144, 140, 137, 142, 135, 135, 134, 135, 142, 135, 133, 141, 136, 150, 136, 142, 133, 139, 131, 133, 136, 146, 134, 141, 140, 148, 135, 136, 140, 139, 137, 136, 148, 133, 132, 139, 137, 137, 147, 138, 145, 147, 137, 135, 139, 131, 137, 145, 135, 137, 134, 133, 136, 135, 142, 133, 140, 138, 135, 142, 141, 140, 141, 140, 134, 129, 138, 135, 137, 145, 148, 135, 138, 131, 134, 142, 142, 137, 132, 135, 140, 139, 142, 133, 141, 143, 140, 144, 136, 145, 139, 136, 143, 131, 140, 138, 134, 141, 140, 141, 138, 139, 131, 137, 141, 138, 136, 136, 141, 137, 138, 140, 143, 135, 146, 141, 145, 136, 137, 139, 144, 135, 142, 143, 145, 140, 144, 135, 134, 137, 135, 133, 138, 136, 138, 139, 140, 141, 146, 140, 141, 147, 138, 141, 129, 147, 136, 144, 138, 145, 135, 143, 139, 133, 146, 134, 135, 141, 141, 134, 143, 148, 140, 134, 133, 146, 147, 130, 135, 143, 137, 142, 139, 138, 138, 144, 139, 143, 129, 132, 145, 140, 136, 143, 137, 134, 133, 136, 133, 135, 144, 134, 145, 137, 138, 134, 137, 140, 140, 134, 136, 144, 140, 137, 142, 136, 137, 133, 137, 142, 141, 136, 142, 132, 140, 137, 142, 139, 137, 138, 142, 135, 144, 137, 138, 137, 139, 136, 135, 136, 143, 131, 129, 142, 140, 136, 135, 139, 143, 143, 143, 137, 142, 139, 137, 137, 145, 135, 138, 137, 139, 140, 138, 145, 141, 135, 137, 139, 136, 137, 137, 134, 138, 134, 142, 140, 140, 137, 141, 145, 142, 138, 140, 139, 140, 137, 145, 139, 130, 140, 139, 140, 139, 143, 141, 142, 146, 138, 142, 135, 138, 135, 133, 139, 142, 139, 141, 138, 134, 150, 136, 140, 142, 148, 140, 133, 123, 134, 139, 148, 133, 148, 145, 141, 134, 143, 141, 141, 139, 141, 143, 139, 139, 137, 139, 135, 140, 135, 140, 143, 138, 140, 140, 141, 146, 143, 140, 139, 135, 143, 138, 141, 142, 136, 138, 139, 137, 138, 142, 137, 139, 136, 135, 143, 145, 135, 140, 142, 139, 143, 138, 136, 136, 142, 139, 139, 137, 139, 138, 153, 139, 137, 136, 139, 145, 135, 140, 141, 140, 137, 135, 147, 136, 140, 137, 147, 137, 135, 142, 136, 134, 145, 135, 145, 140, 138, 136, 140, 147, 133, 136, 140, 142, 140, 143, 131, 144, 127, 132, 144, 134, 135, 143, 139, 143, 141, 138, 141, 135, 138, 135, 135, 141, 140, 138, 140, 131, 143, 139, 139, 141, 140, 145, 138, 142, 140, 138, 143, 133, 141, 139, 153, 141, 133, 146, 142, 146, 136, 136, 142, 137, 143, 141, 138, 139, 138, 147, 141, 131, 141, 137, 137, 138, 137, 146, 141, 139, 138, 136, 137, 138, 141, 142, 143, 141, 138, 135, 134, 136, 143, 135, 138, 142, 141, 130, 136, 140, 139, 136, 139, 137, 137, 134, 136, 135, 146, 139, 145, 139, 135, 136, 136, 138, 142, 145, 141, 137, 143, 143, 137, 138, 142, 142, 131, 144, 138, 140, 137, 140, 140, 135, 135, 141, 138, 139, 143, 136, 139, 141, 137, 142, 140, 145, 139, 140, 138, 141, 146, 136, 131, 133, 139, 139, 140, 135, 134, 145, 147, 133, 140, 136, 128, 128, 140, 140, 147, 131, 139, 138, 136, 138, 144, 145, 133, 133, 146, 130, 145, 141, 133, 137, 142, 136, 142, 137, 133, 136, 146, 148, 147, 135, 148, 140, 143, 148, 133, 140, 146, 138, 140, 138, 134, 145, 140, 142, 133, 135, 144, 145, 131, 127, 134, 135, 139, 133, 129, 147, 143, 138, 137, 140, 143, 143, 135, 130, 142, 137, 141, 134, 146, 146, 139, 139, 131, 136, 138, 146, 141, 139, 142, 144, 142, 141, 143, 137, 134, 142, 137, 133, 142, 143, 141, 141, 142, 135, 137, 145, 138, 140, 136, 138, 148, 143, 138, 137, 141, 135, 132, 148, 145, 143, 137, 139, 137, 129, 142, 144, 143, 141, 138, 141, 146, 138, 140, 149, 141, 135, 127, 149, 139, 131, 138, 141, 134, 151, 148, 136, 139, 141, 139, 138, 137, 149, 139, 137, 137, 134, 147, 132, 142, 144, 131, 142, 140, 137, 140, 139, 140, 140, 132, 135, 137, 142, 135, 140, 144, 137, 138, 147, 162, 136, 139, 136, 144, 134, 139, 135, 148, 139, 140, 145, 137, 144, 146, 136, 145, 129, 135, 142, 131, 138, 143, 145, 142, 135, 144, 133, 140, 130, 145, 137, 140, 137, 138, 137, 145, 138, 135, 152, 148, 143, 139, 146, 141, 134, 133, 140, 134, 145, 131, 135, 139, 138, 134, 140, 146, 130, 148, 139, 128, 145, 139, 135, 134, 136, 140, 145, 137, 141, 141, 148, 148, 134, 140, 137, 135, 145, 147, 137, 148, 139, 127, 138, 132, 145, 135, 142, 141, 135, 143, 138, 144, 132, 144, 138, 145, 135, 130, 140, 136, 135, 135, 141, 142, 136, 140, 135, 145, 138, 140, 138, 137, 146, 145, 141, 134, 143, 133, 143, 141, 137, 139, 133, 134, 138, 138, 143, 146, 140, 149, 140, 133, 144, 134, 138, 147, 142, 130, 143, 137, 145, 140, 136, 144, 132, 136, 139, 134, 142, 148, 142, 137, 134, 139, 138, 144, 146, 138, 130, 139, 140, 139, 146, 132, 144, 146, 135, 138, 141, 149, 147, 133, 145, 139, 130, 139, 141, 139, 134, 144, 137, 138, 136, 143, 141, 148, 149, 140, 131, 135, 139, 140, 141, 143, 143, 143, 139, 139, 139, 146, 137, 139, 134, 148, 130, 134, 137, 130, 138, 139, 147, 138, 132, 137, 140, 144, 139, 147, 134, 146, 128, 135, 136, 140, 145, 144, 144, 134, 139, 138, 143, 140, 143, 137, 141, 140, 137, 137, 142, 139, 143, 144, 137, 136, 136, 141, 128, 141, 137, 136, 137, 124, 133, 142, 138, 145, 135, 133, 137, 135, 138, 142, 132, 141, 125, 141, 138, 138, 134, 146, 139, 147, 141, 141, 132, 136, 137, 136, 135, 136, 140, 144, 137, 139, 142, 142, 131, 134, 138, 137, 136, 140, 150, 142, 135, 139, 143, 135, 135, 134, 133, 136, 133, 148, 134, 137, 135, 134, 133, 133, 137, 151, 138, 129, 144, 140, 128, 134, 148, 139, 137, 131, 148, 139, 148, 141, 132, 139, 135, 133, 128, 135, 155, 138, 137, 134, 141, 133, 137, 143, 127, 145, 140, 139, 137, 131, 133, 136, 131, 136, 133, 140, 145, 135, 141, 132, 151, 137, 141, 140, 139, 145, 131, 143, 147, 143, 135, 140, 142, 143, 134, 139, 140, 141, 135, 145, 132, 141, 139, 134, 149, 134, 153, 143, 136, 132, 139, 131, 137, 143, 138, 137, 145, 139, 135, 139, 129, 132, 135, 136, 128, 141, 137, 128, 148, 140, 122, 140, 146, 137, 134, 137, 138, 147, 139, 134, 138, 138, 142, 148, 142, 140, 136, 139, 133, 132, 134, 140, 135, 140, 146, 137, 144, 149, 141, 146, 140, 132, 136, 129, 134, 150, 137, 131, 138, 140, 132, 130, 135, 135, 142, 134, 146, 133, 135, 142, 142, 129, 147, 133, 134, 138, 127, 137, 133, 135, 142, 143, 143, 143, 133, 131, 134, 145, 143, 144, 158, 133, 137, 141, 138, 134, 138, 138, 145, 146, 140, 145, 137, 136, 133, 151, 128, 151, 130, 143, 143, 144, 129, 142, 147, 134, 140, 138, 143, 135, 139, 148, 142, 135, 130, 148, 139, 138, 132, 136, 138, 142, 140, 142, 143, 140, 148, 146, 134, 144, 128, 139, 137, 146, 139, 147, 135, 142, 138, 133, 138, 142, 139, 151, 125, 129, 128, 136, 146, 130, 138, 136, 139, 135, 139, 141, 135, 140, 143, 142, 144, 140, 138, 136, 150, 137, 134, 139, 159, 149, 140, 142, 131, 131, 147, 136, 137, 146, 135, 143, 138, 139, 145, 144, 140, 151, 148, 140, 135, 140, 142, 141, 136, 132, 134, 147, 167, 128, 140, 135, 143, 149, 142, 137, 142, 135, 143, 134, 133, 143, 140, 140, 137, 122, 138, 132, 138, 145, 146, 151, 157, 143, 132, 141, 139, 135, 121, 142, 150, 137, 129, 130, 138, 139, 138, 142, 142, 137, 136, 126, 144, 133, 141, 144, 146, 136, 141, 139, 133, 131, 145, 137, 140, 138, 138, 137, 134, 140, 144, 140, 138, 142, 134, 140, 130, 143, 137, 146, 129, 155, 153, 146, 129, 125, 149, 133, 130, 141, 136, 144, 139, 146, 150, 141, 132, 134, 142, 144, 134, 136, 135, 130, 144, 137, 137, 127, 136, 137, 127, 138, 134, 140, 131, 132, 142, 136, 135, 141, 139, 141, 146, 138, 131, 147, 133, 139, 135, 147, 119, 142, 129, 145, 141, 144, 127, 140, 139, 136, 140, 139, 148, 147, 128, 136, 125, 136, 145, 137, 140, 144, 127, 137, 142, 151, 153, 141, 135, 145, 142, 143, 141, 137, 134, 132, 148, 140, 144, 137, 135, 139, 141, 144, 133, 144, 146, 134, 127, 131, 142, 138, 142, 138, 142, 144, 130, 131, 148, 143, 143, 150, 135, 133, 143, 151, 143, 143, 120, 134, 142, 143, 132, 133, 134, 143, 138, 131, 140, 140, 127, 126, 144, 133, 131, 131, 138, 140, 139, 139, 138, 138, 129, 133, 132, 138, 136, 133, 142, 138, 133, 132, 135, 139, 125, 141, 133, 135, 147, 150, 138, 140, 140, 139, 139, 136, 127, 130, 145, 133, 139, 144, 134, 129, 146, 140, 138, 138, 141, 137, 155, 134, 132, 153, 131, 131, 159, 147, 139, 130, 139, 137, 134, 152, 131, 148, 136, 140, 150, 145, 156, 136, 139, 149, 143, 136, 136, 123, 147, 141, 143, 139, 134, 147, 147, 143, 139, 137, 139, 152, 135, 146, 141, 144, 138, 142, 136, 142, 124, 127, 137, 143, 137, 138, 151, 137, 145, 138, 141, 135, 126, 126, 148, 144, 130, 160, 132, 143, 140, 141, 142, 141, 146, 129, 146, 127, 138, 147, 139, 139, 121, 139, 140, 150, 139, 163, 145, 136, 142, 148, 142, 149, 132, 136, 143, 144, 141, 141, 137, 133, 154, 147, 139, 149, 154, 140, 135, 142, 146, 135, 133, 152, 147, 140, 140, 134, 130, 139, 139, 127, 138, 135, 127, 140, 133, 145, 149, 134, 130, 137, 137, 138, 150, 127, 142, 138, 142, 133, 153, 141, 142, 143, 139, 138, 142, 136, 130, 143, 139, 140, 142, 139, 121, 133, 139, 153, 127, 135, 143, 143, 140, 135, 141, 134, 146, 133, 138, 138, 155, 142, 134, 136, 127, 132, 148, 142, 143, 138, 143, 135, 139, 148, 129, 143, 137, 133, 139, 139, 130, 132, 130, 148, 143, 139, 131, 133, 130, 147, 137, 144, 147, 151, 136, 125, 139, 141, 128, 135, 140, 135, 146, 150, 139, 127, 134, 142, 140, 144, 133, 137, 148, 138, 155, 143, 137, 142, 139, 124, 134, 130, 131, 135, 146, 141, 141, 132, 144, 136, 138, 154, 137, 138, 132, 149, 124, 149, 154, 122, 125, 137, 148, 145, 133, 137, 132, 135, 137, 133, 136, 133, 138, 137, 135, 144, 138, 133, 140, 138, 140, 135, 137, 142, 137, 136, 140, 134, 137, 148, 136, 144, 131, 133, 145, 134, 135, 140, 136, 120, 135, 142, 139, 137, 147, 142, 131, 133, 139, 134, 132, 138, 127, 126, 136, 163, 136, 130, 145, 133, 146, 141, 131, 141, 133, 126, 134, 128, 138, 134, 141, 136, 142, 137, 134, 146, 133, 143, 133, 139, 140, 138, 135, 153, 142, 132, 139, 138, 141, 139, 131, 136, 133, 146, 134, 166, 128, 148, 138, 140, 143, 148, 135, 136, 136, 137, 128, 149, 135, 142, 136, 141, 125, 137, 141, 140, 140, 137, 142, 142, 140, 153, 123, 142, 126, 145, 130, 127, 131, 150, 133, 132, 140, 140, 143, 151, 142, 148, 134, 145, 142, 133, 139, 144, 148, 133, 146, 136, 131, 146, 145, 149, 138, 144, 137, 129, 143, 136, 154, 130, 136, 132, 146, 140, 137, 132, 145, 141, 126, 143, 138, 152, 151, 146, 127, 145, 137, 130, 153, 128, 144, 144, 132, 144, 138, 139, 153, 136, 123, 143, 144, 135, 142, 143, 134, 143, 139, 147, 141, 120, 135, 142, 143, 153, 138, 137, 132, 137, 140, 140, 142, 140, 146, 150, 148, 133, 126, 150, 147, 136, 138, 146, 142, 139, 144, 140, 137, 132, 150, 131, 131, 139, 140, 131, 127, 135, 135, 132, 136, 147, 135, 141, 139, 145, 145, 146, 133, 146, 144, 155, 136, 134, 137, 132, 141, 142, 136, 138, 149, 143, 133, 126, 137, 150, 136, 133, 140, 130, 148, 133, 139, 136, 138, 140, 147, 141, 145, 134, 136, 140, 138, 134, 139, 136, 143, 138, 139, 141, 136, 137, 139, 135, 143, 142, 147, 142, 146, 148, 144, 141, 134, 135, 132, 138, 143, 150, 131, 147, 129, 141, 135, 149, 132, 143, 139, 131, 134, 142, 140, 132, 139, 145, 138, 136, 139, 138, 139, 141, 136, 126, 140, 139, 148, 134, 138, 145, 132, 140, 140, 138, 136, 141, 142, 132, 141, 134, 144, 134, 131, 143, 134, 129, 130, 136, 135, 131, 131, 137, 131, 139, 140, 141, 148, 133, 140, 138, 148, 143, 138, 142, 132, 141, 135, 139, 147, 143, 144, 134, 152, 130, 138, 140, 143, 142, 130, 140, 129, 136, 134, 135, 143, 138, 139, 136, 144, 137, 140, 141, 137, 149, 136, 129, 141, 146, 135, 140, 136, 132, 140, 143, 140, 140, 136, 145, 132, 140, 144, 128, 140, 132, 130, 137, 155, 139, 138, 136, 143, 132, 137, 141, 145, 143, 135, 137, 138, 137, 138, 132, 145, 135, 142, 138, 152, 132, 141, 140, 133, 141, 134, 140, 144, 135, 140, 135, 141, 137, 132, 130, 132, 136, 147, 133, 145, 133, 143, 140, 145, 133, 138, 138, 142, 140, 141, 131, 141, 135, 150, 143, 134, 147, 132, 144, 143, 137, 129, 142, 135, 147, 127, 130, 144, 150, 135, 145, 142, 139, 130, 142, 145, 144, 135, 141, 132, 141, 136, 151, 131, 134, 132, 142, 138, 131, 137, 139, 146, 135, 133, 136, 139, 136, 142, 139, 135, 128, 137, 140, 137, 146, 141, 134, 138, 138, 131, 143, 147, 140, 139, 135, 131, 140, 139, 143, 137, 133, 144, 141, 142, 139, 141, 136, 133, 138, 134, 142, 143, 132, 137, 135, 141, 132, 138, 142, 141, 144, 135, 137, 138, 137, 138, 127, 138, 137, 142, 137, 140, 136, 147, 136, 141, 143, 139, 135, 143, 141, 146, 148, 140, 139, 138, 137, 131, 134, 135, 136, 136, 135, 142, 143, 144, 141, 143, 136, 131, 136, 143, 129, 132, 136, 139, 140, 142, 136, 142, 136, 147, 144, 140, 140, 135, 137, 144, 142, 137, 139, 141, 146, 135, 147, 141, 138, 132, 135, 141, 139, 131, 147, 138, 142, 132, 138, 136, 139, 147, 133, 139, 146, 130, 137, 146, 144, 130, 126, 137, 138, 145, 139, 140, 140, 145, 138, 143, 131, 135, 154, 138, 134, 130, 137, 136, 138, 135, 127, 137, 139, 134, 143, 134, 144, 141, 139, 141, 137, 143, 133, 137, 134, 140, 131, 137, 137, 138, 137, 144, 143, 149, 128, 153, 146, 149, 138, 143, 139, 139, 135, 136, 134, 131, 148, 145, 137, 138, 139, 134, 135, 135, 136, 134, 142, 139, 130, 128, 140, 135, 149, 141, 145, 132, 136, 146, 137, 139, 146, 138, 139, 148, 139, 131, 142, 131, 142, 147, 135, 132, 132, 142, 153, 135, 144, 143, 136, 131, 123, 152, 137, 141, 136, 138, 143, 146, 144, 141, 135, 145, 132, 135, 136, 137, 137, 133, 137, 138, 136, 137, 152, 135, 139, 135, 132, 137, 127, 137, 151, 137, 133, 155, 139, 132, 146, 142, 150, 134, 143, 140, 121, 148, 135, 145, 138, 148, 162, 142, 137, 133, 138, 143, 135, 132, 141, 130, 136, 132, 125, 142, 138, 139, 147, 132, 139, 135, 139, 138, 136, 141, 146, 134, 142, 141, 127, 133, 153, 148, 142, 140, 146, 137, 133, 138, 135, 144, 140, 133, 118, 129, 137, 139, 141, 130, 152, 133, 137, 134, 141, 138, 126, 151, 128, 133, 142, 149, 132, 142, 138, 138, 128, 140, 137, 149, 140, 133, 147, 134, 140, 133, 135, 135, 145, 142, 138, 135, 156, 137, 136, 136, 135, 139, 144, 142, 137, 139, 148, 148, 138, 142, 141, 140, 132, 126, 144, 144, 138, 141, 140, 149, 129, 138, 141, 128, 130, 137, 144, 145, 136, 146, 146, 140, 141, 144, 130, 147, 140, 134, 143, 134, 139, 138, 141, 133, 151, 141, 140, 141, 124, 146, 143, 141, 140, 143, 139, 139, 139, 141, 142, 136, 130, 137, 146, 139, 125, 125, 142, 138, 129, 144, 139, 141, 134, 141, 140, 127, 135, 132, 136, 130, 141, 143, 132, 144, 131, 139, 131, 136, 145, 127, 125, 140, 146, 140, 139, 148, 132, 127, 138, 136, 123, 137, 136, 131, 143, 143, 136, 137, 137, 130, 135, 136, 145, 151, 145, 128, 140, 128, 128, 145, 141, 139, 136, 136, 143, 133, 143, 138, 147, 138, 135, 138, 135, 143, 133, 141, 139, 147, 127, 140, 142, 133, 131, 140, 133, 135, 137, 140, 147, 143, 127, 141, 141, 133, 136, 143, 134, 143, 148, 139, 142, 132, 150, 135, 149, 135, 137, 139, 145, 141, 121, 140, 128, 135, 130, 125, 140, 136, 144, 138, 136, 144, 142, 130, 130, 132, 135, 145, 126, 142, 144, 140, 128, 139, 148, 136, 129, 140, 127, 135, 135, 137, 143, 140, 133, 151, 131, 145, 143, 155, 132, 140, 144, 147, 140, 145, 130, 148, 137, 146, 145, 136, 139, 144, 142, 146, 141, 141, 134, 151, 141, 129, 149, 139, 140, 140, 136, 141, 134, 131, 141, 141, 143, 136, 130, 131, 144, 129, 136, 139, 141, 140, 137, 136, 127, 145, 140, 144, 143, 140, 153, 138, 137, 138, 139, 141, 137, 129, 140, 140, 143, 128, 147, 139, 145, 140, 132, 141, 138, 138, 135, 132, 144, 136, 142, 127, 137, 145, 140, 133, 147, 133, 145, 143, 138, 142, 126, 138, 150, 140, 142, 143, 139, 141, 150, 135, 136, 132, 137, 136, 134, 141, 137, 146, 141, 150, 128, 145, 133, 144, 133, 144, 130, 139, 141, 139, 139, 139, 137, 140, 142, 148, 137, 140, 144, 126, 129, 140, 137, 137, 135, 133, 132, 138, 161, 144, 139, 141, 147, 139, 123, 142, 130, 132, 138, 130, 140, 131, 134, 147, 144, 143, 141, 141, 135, 144, 139, 148, 138, 139, 129, 138, 166, 135, 132, 139, 133, 131, 133, 137, 135, 136, 139, 133, 137, 134, 145, 136, 144, 133, 135, 143, 143, 138, 148, 126, 144, 144, 134, 140, 137, 142, 138, 141, 140, 129, 136, 134, 152, 144, 133, 150, 150, 128, 141, 145, 140, 141, 139, 132, 134, 139, 154, 128, 128, 143, 136, 148, 138, 139, 151, 144, 131, 146, 133, 129, 138, 127, 144, 139, 144, 140, 137, 134, 137, 146, 139, 132, 142, 133, 131, 145, 138, 120, 132, 132, 148, 144, 126, 135, 156, 139, 137, 126, 139, 139, 134, 140, 136, 131, 160, 142, 128, 126, 143, 137, 143, 136, 137, 141, 143, 145, 144, 134, 135, 129, 146, 130, 141, 148, 156, 136, 131, 138, 134, 142, 142, 141, 144, 130, 139, 138, 143, 133, 144, 149, 147, 137, 149, 138, 142, 137, 141, 140, 138, 137, 133, 138, 140, 133, 135, 129, 142, 142, 127, 142, 123, 138, 138, 140, 157, 143, 126, 134, 147, 135, 134, 136, 118, 148, 143, 141, 145, 158, 147, 141, 129, 151, 142, 142, 139, 140, 136, 145, 136, 144, 138, 111, 137, 141, 137, 136, 146, 136, 140, 132, 131, 138, 144, 140, 125, 137, 139, 135, 136, 128, 139, 145, 125, 131, 129, 140, 148, 147, 128, 129, 140, 126, 142, 156, 130, 147, 125, 142, 143, 129, 156, 141, 126, 121, 135, 142, 129, 141, 144, 138, 139, 132, 131, 146, 134, 142, 140, 123, 145, 136, 134, 144, 143, 129, 125, 141, 147, 133, 151, 148, 130, 133, 146, 149, 140, 161, 144, 136, 143, 141, 122, 140, 131, 142, 151, 144, 148, 136, 147, 141, 146, 127, 155, 128, 129, 139, 124, 130, 136, 134, 136, 141, 151, 140, 135, 144, 137, 132, 127, 146, 146, 134, 141, 128, 132, 141, 142, 137, 137, 136, 141, 140, 139, 139, 153, 133, 132, 129, 140, 126, 139, 132, 150, 141, 135, 143, 143, 140, 140, 136, 133, 134, 137, 136, 114, 152, 132, 135, 142, 126, 135, 149, 131, 146, 145, 148, 134, 136, 144, 135, 136, 134, 131, 141, 138, 134, 146, 137, 141, 152, 142, 144, 141, 126, 135, 141, 136, 138, 129, 125, 137, 143, 143, 135, 141, 133, 135, 135, 134, 128, 137, 142, 154, 135, 145, 143, 137, 150, 129, 140, 137, 127, 125, 142, 135, 125, 138, 138, 145, 127, 138, 144, 141, 144, 146, 147, 146, 145, 138, 148, 131, 143, 129, 138, 127, 140, 145, 147, 151, 134, 143, 136, 157, 135, 147, 142, 144, 139, 144, 139, 142, 131, 132, 140, 140, 144, 150, 130, 126, 140, 144, 138, 142, 147, 133, 144, 140, 136, 129, 144, 142, 156, 130, 130, 145, 128, 157, 136, 139, 148, 141, 137, 137, 151, 125, 161, 142, 139, 157, 142, 140, 132, 127, 141, 125, 125, 141, 140, 138, 139, 134, 136, 151, 148, 140, 142, 142, 142, 130, 139, 135, 132, 137, 148, 143, 134, 152, 155, 137, 139, 145, 132, 146, 136, 136, 140, 128, 153, 137, 140, 144, 135, 138, 135, 137, 128, 136, 138, 138, 136, 128, 130, 146, 141, 142, 140, 148, 142, 145, 138, 153, 131, 139, 144, 124, 145, 131, 145, 140, 146, 136, 147, 135, 150, 137, 147, 147, 134, 93, 145, 148, 133, 138, 136, 132, 142, 149, 145, 132, 131, 132, 137, 135, 136, 140, 140, 136, 137, 136, 138, 139, 139, 136, 140, 136, 131, 147, 136, 140, 136, 146, 141, 140, 145, 141, 137, 137, 159, 142, 142, 135, 141, 141, 135, 137, 145, 154, 150, 159, 149, 144, 140, 128, 135, 137, 132, 135, 141, 132, 142, 132, 142, 140, 136, 135, 141, 125, 134, 138, 132, 150, 130, 132, 134, 141, 139, 142, 141, 141, 133, 142, 137, 141, 146, 132, 137, 133, 144, 136, 144, 135, 145, 134, 137, 133, 138, 133, 138, 144, 132, 132, 139, 151, 133, 141, 136, 143, 137, 133, 130, 133, 146, 138, 133, 134, 136, 144, 138, 141, 143, 145, 131, 142, 140, 139, 147, 136, 142, 139, 142, 141, 143, 132, 134, 135, 137, 134, 139, 136, 136, 141, 137, 143, 133, 140, 151, 136, 134, 143, 128, 145, 122, 143, 146, 128, 134, 137, 155, 137, 139, 143, 152, 142, 136, 147, 135, 141, 137, 136, 131, 133, 146, 129, 144, 139, 130, 147, 131, 140, 135, 141, 142, 136, 140, 143, 131, 146, 134, 138, 139, 140, 137, 140, 137, 140, 149, 138, 142, 140, 148, 132, 136, 139, 148, 138, 136, 136, 146, 142, 132, 131, 135, 131, 147, 142, 139, 140, 136, 138, 141, 134, 137, 133, 140, 148, 130, 144, 142, 136, 148, 138, 130, 148, 131, 138, 141, 138, 146, 131, 133, 130, 134, 141, 143, 141, 134, 142, 149, 128, 135, 139, 133, 145, 133, 145, 137, 142, 136, 139, 145, 136, 132, 124, 148, 143, 136, 148, 141, 138, 138, 140, 137, 135, 132, 136, 136, 136, 139, 131, 134, 151, 136, 150, 150, 140, 134, 139, 124, 141, 139, 135, 135, 139, 140, 145, 144, 139, 144, 141, 140, 145, 139, 136, 137, 133, 140, 145, 136, 139, 137, 144, 137, 138, 138, 144, 142, 140, 147, 137, 146, 143, 136, 136, 149, 139, 138, 134, 139, 139, 134, 143, 153, 147, 144, 142, 135, 139, 145, 135, 135, 140, 138, 146, 125, 138, 142, 142, 140, 146, 151, 138, 125, 141, 142, 127, 127, 129, 137, 137, 141, 147, 136, 137, 137, 135, 135, 132, 139, 141, 142, 145, 136, 137, 142, 140, 132, 136, 138, 132, 136, 148, 131, 131, 137, 136, 133, 139, 136, 136, 137, 150, 143, 145, 148, 139, 129, 133, 136, 131, 135, 140, 140, 140, 145, 132, 129, 136, 134, 135, 143, 140, 130, 132, 143, 137, 136, 139, 144, 130, 147, 138, 128, 132, 134, 148, 149, 144, 140, 142, 140, 133, 142, 131, 146, 130, 131, 135, 132, 142, 140, 131, 141, 137, 134, 154, 123, 149, 137, 140, 137, 140, 128, 135, 133, 141, 146, 146, 141, 131, 129, 147, 144, 140, 138, 136, 133, 139, 135, 136, 135, 136, 141, 133, 132, 146, 152, 138, 147, 136, 140, 134, 139, 135, 131, 139, 130, 138, 144, 129, 137, 148, 137, 138, 136, 126, 141, 146, 139, 143, 135, 136, 139, 136, 138, 140, 141, 145, 134, 145, 131, 135, 135, 131, 141, 138, 140, 147, 141, 139, 127, 134, 143, 130, 143, 133, 135, 141, 136, 137, 134, 139, 141, 140, 131, 136, 139, 139, 143, 136, 136, 137, 138, 142, 142, 138, 141, 148, 139, 142, 135, 142, 136, 140, 144, 133, 146, 133, 140, 147, 141, 138, 140, 137, 139, 137, 132, 143, 139, 140, 130, 141, 138, 137, 149, 146, 129, 138, 143, 135, 129, 137, 130, 143, 139, 138, 134, 143, 143, 135, 155, 143, 146, 137, 149, 137, 139, 136, 135, 126, 140, 143, 142, 136, 143, 139, 141, 137, 147, 139, 143, 134, 139, 146, 141, 134, 137, 136, 140, 143, 143, 138, 138, 132, 136, 145, 136, 137, 137, 142, 131, 140, 142, 134, 135, 142, 129, 146, 143, 132, 140, 136, 140, 134, 135, 132, 136, 137, 142, 141, 149, 139, 137, 151, 145, 137, 153, 142, 136, 142, 141, 137, 140, 137, 135, 138, 137, 137, 135, 141, 138, 130, 136, 140, 136, 142, 149, 138, 140, 135, 140, 145, 140, 141, 140, 139, 139, 145, 142, 142, 141, 139, 126, 139, 136, 136, 136, 143, 140, 138, 141, 136, 141, 136, 134, 144, 138, 138, 141, 138, 139, 140, 136, 132, 131, 139, 143, 134, 144, 136, 133, 144, 140, 139, 142, 130, 140, 145, 147, 145, 142, 141, 143, 138, 138, 132, 142, 147, 137, 136, 134, 138, 141, 137, 146, 137, 139, 135, 131, 139, 144, 138, 141, 134, 138, 135, 136, 133, 137, 140, 142, 154, 135, 138, 133, 140, 138, 132, 134, 138, 137, 140, 139, 142, 138, 151, 145, 135, 141, 144, 138, 143, 143, 144, 139, 139, 141, 137, 133, 146, 147, 131, 126, 137, 137, 136, 136, 138, 137, 141, 137, 137, 136, 145, 135, 138, 143, 144, 144, 136, 146, 135, 137, 141, 144, 146, 141, 136, 141, 137, 139, 138, 135, 137, 136, 130, 137, 138, 134, 137, 142, 145, 139, 135, 143, 142, 135, 127, 143, 143, 142, 136, 144, 127, 134, 134, 139, 146, 140, 138, 137, 144, 146, 141, 137, 138, 139, 142, 134, 131, 134, 137, 136, 136, 130, 141, 135, 132, 139, 138, 137, 135, 138, 135, 132, 132, 138, 141, 136, 145, 145, 143, 140, 135, 141, 138, 139, 136, 132, 138, 142, 136, 136, 139, 137, 145, 140, 133, 134, 131, 139, 148, 135, 137, 140, 138, 141, 134, 147, 142, 138, 136, 130, 128, 140, 138, 135, 139, 137, 140, 138, 135, 130, 140, 143, 130, 130, 135, 142, 137, 135, 148, 145, 142, 141, 135, 140, 138, 139, 139, 139, 130, 139, 128, 137, 137, 145, 136, 140, 139, 135, 141, 139, 135, 141, 137, 139, 141, 142, 134, 136, 150, 138, 130, 138, 132, 138, 147, 132, 134, 138, 138, 127, 135, 142, 136, 138, 139, 139, 138, 143, 132, 135, 143, 143, 141, 155, 131, 136, 138, 137, 139, 141, 146, 132, 139, 147, 140, 134, 136, 136, 141, 140, 141, 140, 135, 139, 142, 141, 140, 138, 140, 145, 141, 147, 138, 144, 135, 143, 136, 134, 134, 148, 141, 138, 139, 144, 154, 149, 129, 145, 138, 153, 143, 140, 136, 137, 145, 135, 141, 146, 150, 142, 128, 130, 148, 147, 131, 148, 127, 140, 135, 153, 141, 138, 135, 134, 144, 153, 137, 144, 133, 136, 128, 136, 137, 135, 134, 136, 138, 128, 141, 153, 134, 135, 135, 140, 129, 142, 144, 141, 144, 142, 145, 142, 132, 143, 144, 131, 132, 141, 124, 148, 135, 147, 155, 134, 127, 143, 125, 123, 152, 146, 131, 144, 149, 142, 136, 131, 134, 143, 146, 143, 139, 130, 142, 138, 138, 136, 142, 140, 149, 143, 143, 146, 147, 140, 143, 137, 143, 143, 138, 143, 147, 126, 135, 131, 138, 137, 139, 126, 129, 131, 133, 138, 154, 131, 134, 142, 147, 139, 139, 145, 142, 136, 140, 129, 141, 133, 131, 140, 132, 128, 136, 140, 153, 138, 133, 143, 132, 151, 141, 136, 142, 134, 133, 140, 132, 132, 139, 121, 153, 136, 141, 139, 141, 139, 137, 132, 139, 131, 135, 136, 141, 138, 133, 128, 143, 136, 140, 142, 146, 144, 134, 137, 152, 145, 140, 141, 152, 136, 137, 178, 123, 132, 132, 137, 142, 140, 138, 140, 144, 134, 142, 132, 135, 128, 148, 135, 128, 151, 128, 139, 150, 136, 148, 132, 133, 141, 139, 136, 144, 137, 142, 136, 137, 135, 139, 144, 147, 138, 145, 153, 137, 136, 137, 148, 137, 134, 141, 142, 139, 158, 145, 141, 144, 150, 142, 141, 135, 136, 133, 141, 143, 154, 136, 146, 131, 132, 135, 143, 134, 139, 133, 130, 144, 138, 138, 145, 138, 140, 135, 144, 139, 128, 147, 151, 141, 142, 136, 124, 128, 132, 153, 132, 148, 146, 136, 139, 144, 137, 142, 131, 137, 168, 139, 136, 146, 143, 148, 146, 135, 139, 133, 137, 126, 147, 147, 139, 141, 140, 132, 143, 145, 142, 139, 134, 140, 131, 136, 129, 133, 130, 146, 142, 142, 137, 145, 139, 131, 131, 145, 136, 149, 140, 132, 138, 135, 133, 141, 128, 141, 135, 137, 134, 131, 127, 143, 143, 140, 140, 139, 143, 132, 146, 125, 138, 136, 133, 140, 134, 145, 135, 129, 147, 138, 132, 147, 137, 133, 134, 138, 144, 136, 135, 142, 141, 135, 145, 132, 142, 121, 143, 134, 132, 134, 127, 143, 143, 140, 137, 131, 140, 135, 141, 131, 152, 134, 153, 137, 135, 127, 137, 138, 129, 141, 151, 137, 136, 139, 154, 149, 134, 142, 145, 137, 143, 144, 142, 147, 136, 143, 150, 137, 147, 144, 134, 126, 142, 146, 144, 139, 135, 152, 150, 132, 140, 132, 146, 123, 137, 137, 138, 146, 141, 138, 140, 141, 137, 148, 138, 155, 133, 142, 122, 140, 138, 133, 130, 133, 146, 134, 119, 138, 132, 145, 145, 156, 145, 133, 128, 132, 134, 150, 128, 146, 151, 145, 144, 146, 130, 131, 135, 128, 134, 144, 141, 148, 141, 140, 137, 137, 139, 134, 146, 145, 139, 133, 144, 133, 130, 134, 131, 137, 146, 132, 151, 131, 145, 136, 140, 145, 150, 122, 132, 138, 133, 123, 140, 145, 151, 138, 146, 145, 140, 134, 138, 140, 135, 131, 148, 133, 141, 134, 136, 142, 142, 142, 142, 140, 123, 142, 143, 147, 131, 150, 142, 145, 142, 141, 142, 141, 140, 140, 150, 143, 140, 133, 131, 129, 146, 135, 138, 139, 146, 139, 136, 136, 142, 147, 149, 142, 137, 139, 139, 132, 127, 130, 142, 141, 144, 140, 141, 138, 140, 132, 144, 132, 139, 146, 134, 137, 137, 141, 133, 141, 138, 141, 136, 142, 137, 142, 147, 136, 140, 134, 142, 138, 138, 138, 142, 137, 138, 141, 133, 142, 143, 136, 143, 148, 144, 140, 134, 142, 145, 133, 146, 144, 137, 139, 134, 138, 150, 148, 137, 139, 147, 140, 148, 137, 146, 132, 152, 142, 138, 132, 143, 135, 138, 138, 140, 133, 151, 134, 141, 135, 145, 139, 151, 136, 141, 137, 138, 133, 140, 154, 138, 147, 136, 157, 146, 144, 137, 145, 136, 134, 148, 142, 141, 140, 134, 139, 133, 143, 140, 127, 140, 139, 136, 137, 134, 133, 145, 137, 135, 146, 132, 141, 136, 145, 145, 136, 141, 130, 133, 140, 130, 143, 138, 133, 144, 142, 140, 146, 144, 141, 136, 133, 143, 144, 143, 139, 141, 142, 140, 133, 146, 140, 142, 143, 137, 137, 141, 127, 133, 132, 144, 136, 142, 137, 137, 150, 142, 140, 150, 144, 148, 135, 134, 134, 133, 138, 147, 134, 141, 149, 144, 145, 149, 136, 138, 146, 134, 146, 140, 139, 140, 137, 142, 131, 145, 148, 127, 141, 144, 141, 143, 144, 144, 135, 142, 133, 139, 144, 143, 139, 128, 144, 136, 132, 150, 137, 140, 136, 137, 139, 142, 136, 141, 155, 138, 146, 137, 137, 134, 136, 135, 146, 151, 140, 145, 148, 143, 135, 137, 136, 137, 144, 144, 145, 135, 139, 146, 122, 134, 130, 131, 120, 140, 138, 142, 137, 136, 146, 139, 141, 124, 143, 141, 134, 141, 138, 134, 140, 150, 142, 146, 147, 142, 140, 136, 145, 149, 137, 136, 137, 140, 137, 141, 142, 145, 137, 137, 138, 130, 139, 136, 144, 138, 143, 138, 142, 135, 136, 146, 139, 141, 142, 134, 138, 142, 142, 134, 135, 143, 139, 150, 144, 141, 136, 133, 138, 139, 143, 130, 129, 146, 152, 138, 136, 143, 138, 133, 133, 133, 125, 143, 142, 143, 141, 142, 130, 139, 138, 148, 139, 138, 137, 125, 135, 145, 133, 131, 142, 139, 147, 133, 140, 131, 145, 136, 139, 135, 128, 141, 127, 149, 143, 136, 131, 141, 142, 126, 132, 140, 140, 139, 141, 136, 129, 145, 141, 136, 139, 137, 139, 149, 145, 145, 145, 144, 133, 138, 136, 140, 132, 136, 153, 137, 132, 139, 136, 132, 140, 132, 140, 146, 136, 149, 138, 139, 133, 142, 131, 134, 143, 137, 146, 130, 147, 132, 148, 138, 149, 147, 147, 140, 150, 128, 147, 147, 131, 138, 139, 126, 140, 141, 141, 141, 143, 138, 135, 133, 142, 125, 150, 128, 141, 144, 134, 139, 150, 148, 139, 132, 124, 149, 141, 140, 141, 139, 139, 135, 152, 143, 134, 144, 136, 140, 133, 137, 149, 145, 139, 138, 139, 134, 140, 144, 136, 141, 137, 139, 140, 140, 130, 146, 134, 141, 143, 144, 142, 138, 145, 139, 139, 132, 136, 147, 138, 143, 141, 140, 153, 138, 136, 141, 138, 134, 142, 128, 137, 135, 134, 139, 144, 143, 134, 135, 139, 139, 137, 140, 136, 145, 128, 131, 133, 134, 139, 135, 130, 133, 135, 136, 140, 129, 145, 142, 149, 144, 141, 137, 134, 139, 136, 137, 144, 138, 131, 139, 139, 140, 139, 137, 140, 136, 131, 137, 148, 135, 145, 141, 140, 134, 141, 136, 134, 136, 151, 138, 143, 145, 133, 142, 142, 133, 131, 142, 137, 133, 142, 141, 144, 149, 135, 144, 131, 127, 135, 131, 135, 141, 146, 142, 137, 138, 143, 134, 138, 140, 141, 137, 143, 136, 131, 141, 144, 144, 133, 139, 129, 127, 144, 135, 139, 136, 138, 136, 135, 144, 150, 143, 140, 151, 146, 134, 139, 130, 142, 142, 138, 127, 143, 134, 136, 142, 138, 145, 144, 133, 136, 137, 133, 136, 149, 138, 143, 134, 138, 138, 137, 141, 143, 139, 137, 136, 141, 132, 131, 148, 139, 147, 140, 140, 135, 139, 144, 150, 142, 140, 143, 147, 143, 136, 140, 149, 140, 136, 136, 137, 131, 132, 136, 136, 138, 136, 146, 134, 133, 139, 136, 141, 139, 142, 130, 153, 143, 141, 135, 139, 141, 136, 137, 138, 135, 142, 139, 138, 138, 133, 144, 139, 141, 147, 132, 134, 142, 145, 137, 146, 132, 142, 137, 133, 143, 136, 138, 134, 139, 132, 144, 140, 144, 135, 137, 140, 135, 131, 139, 149, 131, 133, 138, 137, 143, 136, 136, 141, 145, 128, 149, 143, 143, 128, 132, 126, 147, 152, 130, 143, 135, 140, 139, 141, 144, 139, 142, 137, 139, 137, 142, 137, 138, 135, 140, 143, 137, 144, 135, 124, 129, 136, 133, 147, 141, 138, 142, 143, 144, 143, 136, 145, 133, 139, 145, 137, 140, 139, 131, 136, 145, 131, 147, 140, 141, 131, 140, 144, 145, 129, 134, 136, 139, 134, 137, 140, 138, 145, 144, 131, 136, 137, 140, 140, 130, 140, 139, 143, 147, 138, 138, 136, 144, 136, 143, 144, 140, 135, 136, 138, 131, 138, 140, 136, 138, 132, 141, 139, 148, 141, 135, 136, 130, 144, 144, 147, 136, 138, 142, 146, 140, 139, 141, 145, 141, 136, 136, 138, 139, 140, 142, 129, 143, 141, 142, 145, 140, 137, 138, 139, 137, 141, 134, 132, 140, 148, 152, 137, 141, 137, 136, 139, 136, 145, 146, 130, 142, 136, 138, 140, 133, 137, 143, 143, 133, 134, 146, 133, 137, 130, 141, 147, 134, 142, 134, 140, 140, 137, 139, 141, 137, 144, 146, 142, 146, 137, 144, 147, 134, 142, 144, 143, 134, 136, 138, 141, 132, 129, 137, 139, 132, 134, 135, 125, 141, 139, 141, 135, 151, 146, 135, 139, 136, 144, 132, 137, 138, 151, 134, 143, 133, 147, 128, 135, 143, 134, 137, 137, 132, 133, 142, 132, 146, 139, 145, 132, 135, 125, 138, 136, 135, 155, 135, 142, 132, 136, 138, 153, 152, 139, 139, 150, 132, 134, 138, 144, 124, 139, 147, 138, 134, 136, 138, 139, 148, 143, 138, 132, 135, 143, 132, 144, 139, 160, 129, 142, 125, 143, 136, 162, 121, 128, 140, 139, 140, 144, 145, 131, 152, 145, 132, 147, 140, 146, 130, 133, 135, 130, 142, 137, 156, 140, 147, 149, 131, 123, 139, 151, 137, 145, 140, 145, 139, 139, 139, 140, 140, 141, 137, 140, 134, 146, 137, 137, 145, 133, 137, 140, 130, 132, 137, 144, 145, 139, 123, 147, 138, 135, 147, 141, 148, 127, 144, 130, 148, 144, 140, 133, 145, 136, 133, 144, 147, 137, 133, 141, 130, 146, 138, 147, 141, 150, 142, 130, 144, 143, 139, 147, 144, 137, 138, 153, 141, 144, 139, 136, 138, 129, 134, 147, 142, 137, 138, 157, 133, 137, 148, 133, 147, 132, 129, 143, 138, 152, 132, 144, 143, 133, 144, 131, 139, 138, 136, 125, 135, 138, 131, 132, 139, 137, 130, 145, 148, 140, 126, 128, 128, 145, 141, 136, 131, 146, 137, 141, 151, 141, 138, 152, 137, 139, 142, 131, 130, 128, 130, 134, 140, 139, 137, 139, 135, 142, 145, 135, 134, 140, 145, 138, 141, 158, 136, 138, 140, 138, 149, 144, 151, 150, 139, 141, 151, 150, 139, 149, 144, 136, 139, 136, 142, 136, 155, 142, 132, 136, 141, 134, 138, 150, 148, 135, 133, 132, 133, 137, 140, 138, 126, 139, 136, 139, 149, 148, 132, 144, 126, 144, 138, 136, 135, 138, 147, 137, 149, 144, 132, 130, 133, 138, 139, 142, 143, 142, 134, 140, 142, 141, 138, 148, 133, 141, 144, 126, 142, 131, 142, 131, 140, 133, 141, 139, 143, 154, 133, 136, 142, 138, 139, 150, 133, 140, 148, 142, 139, 137, 133, 132, 145, 148, 132, 140, 137, 155, 127, 135, 129, 141, 136, 141, 131, 139, 132, 140, 143, 135, 133, 137, 128, 153, 139, 140, 150, 139, 150, 129, 138, 132, 149, 132, 131, 142, 139, 138, 138, 136, 142, 131, 142, 141, 139, 123, 139, 121, 137, 147, 135, 140, 133, 146, 128, 140, 129, 130, 141, 135, 156, 132, 143, 146, 138, 148, 134, 131, 143, 151, 141, 135, 136, 125, 154, 130, 137, 136, 131, 138, 135, 137, 138, 121, 139, 139, 137, 139, 139, 128, 124, 146, 135, 133, 153, 139, 140, 140, 139, 141, 132, 137, 134, 126, 133, 141, 133, 144, 156, 138, 133, 134, 145, 149, 145, 143, 144, 153, 139, 145, 136, 128, 149, 139, 142, 140, 142, 141, 147, 141, 132, 134, 134, 134, 141, 134, 146, 141, 135, 132, 137, 142, 143, 139, 143, 127, 138, 140, 133, 144, 135, 142, 142, 136, 146, 137, 133, 146, 139, 139, 137, 146, 138, 152, 149, 147, 133, 142, 147, 144, 142, 136, 130, 143, 129, 140, 137, 145, 143, 134, 136, 136, 149, 144, 154, 136, 133, 138, 143, 141, 131, 131, 133, 145, 142, 135, 148, 139, 132, 126, 137, 139, 126, 139, 147, 131, 137, 136, 137, 134, 130, 137, 138, 140, 133, 145, 132, 148, 134, 144, 133, 134, 137, 145, 134, 133, 144, 137, 138, 161, 141, 134, 145, 147, 142, 138, 142, 137, 147, 145, 131, 150, 131, 152, 132, 128, 143, 138, 138, 146, 134, 143, 132, 137, 131, 135, 142, 130, 140, 133, 130, 133, 133, 138, 137, 148, 136, 145, 144, 134, 137, 140, 137, 134, 142, 143, 145, 140, 136, 133, 137, 132, 136, 134, 138, 137, 132, 135, 143, 138, 135, 142, 143, 145, 127, 139, 128, 138, 138, 142, 136, 139, 147, 136, 156, 137, 142, 131, 143, 136, 138, 131, 123, 149, 144, 139, 141, 140, 144, 145, 136, 145, 130, 132, 139, 144, 136, 149, 142, 141, 140, 139, 142, 134, 134, 134, 146, 136, 135, 142, 138, 147, 144, 144, 140, 135, 136, 130, 137, 147, 140, 142, 136, 139, 145, 144, 137, 132, 134, 140, 136, 134, 143, 140, 145, 134, 137, 136, 149, 140, 139, 137, 135, 141, 141, 137, 140, 147, 134, 143, 141, 140, 134, 136, 148, 147, 133, 135, 137, 150, 131, 146, 136, 139, 139, 130, 140, 144, 135, 142, 150, 137, 131, 130, 151, 140, 146, 144, 138, 133, 137, 132, 130, 147, 139, 130, 128, 143, 134, 137, 129, 142, 138, 151, 148, 134, 141, 140, 147, 143, 152, 135, 131, 147, 142, 137, 145, 126, 137, 132, 132, 138, 138, 141, 130, 136, 138, 129, 141, 139, 134, 142, 134, 136, 132, 143, 137, 137, 146, 141, 143, 139, 140, 140, 139, 135, 132, 141, 129, 147, 142, 132, 141, 146, 131, 135, 140, 136, 142, 142, 149, 142, 149, 129, 140, 145, 142, 130, 141, 141, 131, 127, 140, 140, 144, 145, 139, 142, 145, 144, 139, 132, 132, 138, 140, 143, 145, 151, 141, 135, 135, 147, 136, 137, 134, 142, 137, 153, 147, 135, 144, 139, 124, 142, 139, 144, 140, 145, 137, 142, 133, 141, 146, 146, 139, 148, 135, 139, 129, 155, 146, 142, 137, 138, 143, 138, 131, 132, 141, 141, 140, 137, 135, 127, 140, 134, 132, 129, 127, 134, 151, 134, 145, 148, 142, 132, 141, 135, 128, 131, 138, 134, 133, 140, 148, 135, 139, 136, 138, 133, 137, 135, 137, 136, 135, 136, 141, 134, 138, 130, 143, 147, 142, 143, 146, 132, 122, 138, 142, 138, 133, 149, 129, 135, 146, 129, 140, 135, 137, 131, 142, 142, 149, 143, 138, 125, 131, 143, 142, 143, 139, 143, 140, 139, 127, 136, 141, 144, 135, 136, 131, 138, 155, 140, 138, 149, 140, 136, 143, 139, 134, 143, 138, 143, 141, 151, 141, 133, 133, 129, 140, 135, 140, 133, 137, 138, 133, 137, 134, 134, 136, 131, 142, 144, 135, 143, 152, 128, 137, 127, 137, 143, 141, 128, 141, 152, 136, 145, 139, 148, 140, 133, 142, 137, 144, 135, 135, 140, 138, 140, 133, 141, 140, 143, 134, 130, 132, 146, 141, 143, 149, 133, 144, 134, 141, 137, 155, 137, 144, 129, 132, 133, 135, 142, 137, 137, 136, 136, 142, 141, 135, 146, 148, 134, 151, 139, 133, 133, 144, 149, 151, 150, 159, 137, 138, 142, 143, 143, 140, 129, 144, 136, 145, 139, 133, 131, 133, 134, 138, 140, 134, 134, 130, 145, 134, 142, 135, 139, 132, 137, 134, 137, 127, 136, 147, 146, 148, 135, 143, 134, 136, 132, 146, 143, 129, 142, 137, 145, 134, 141, 144, 150, 141, 136, 153, 142, 133, 143, 137, 145, 137, 141, 142, 144, 132, 138, 138, 145, 143, 136, 133, 144, 141, 140, 143, 136, 140, 140, 134, 140, 136, 143, 140, 137, 139, 142, 134, 144, 137, 133, 140, 137, 140, 141, 134, 132, 140, 137, 130, 130, 145, 143, 132, 143, 134, 139, 135, 131, 148, 141, 138, 137, 148, 144, 139, 142, 136, 129, 138, 128, 140, 138, 140, 142, 141, 146, 130, 147, 126, 150, 134, 133, 138, 140, 136, 136, 136, 136, 131, 135, 147, 142, 139, 147, 130, 136, 140, 137, 142, 143, 136, 130, 135, 136, 133, 147, 130, 127, 137, 129, 147, 141, 139, 147, 132, 142, 141, 140, 134, 138, 139, 133, 138, 130, 145, 141, 131, 131, 141, 136, 139, 152, 136, 138, 132, 149, 140, 137, 126, 154, 138, 138, 143, 153, 144, 144, 141, 142, 137, 143, 143, 138, 135, 145, 136, 137, 132, 139, 135, 129, 127, 135, 133, 136, 138, 143, 144, 134, 147, 135, 139, 141, 146, 142, 140, 134, 140, 133, 142, 137, 135, 136, 139, 145, 146, 150, 147, 148, 149, 119, 135, 137, 128, 135, 138, 146, 138, 143, 141, 139, 144, 141, 126, 141, 132, 148, 145, 147, 132, 130, 135, 133, 146, 125, 134, 139, 138, 135, 141, 156, 150, 143, 151, 142, 150, 133, 132, 138, 132, 140, 141, 130, 142, 141, 140, 144, 150, 144, 139, 144, 142, 141, 143, 138, 142, 141, 135, 126, 136, 138, 139, 138, 145, 146, 132, 140, 142, 139, 122, 140, 143, 130, 137, 135, 135, 135, 149, 141, 134, 128, 134, 142, 132, 139, 138, 147, 134, 142, 131, 129, 138, 143, 141, 141, 138, 141, 136, 146, 141, 150, 149, 138, 144, 134, 140, 141, 143, 140, 137, 140, 140, 136, 138, 142, 142, 139, 142, 141, 134, 132, 141, 138, 142, 135, 136, 128, 143, 138, 138, 136, 142, 147, 131, 137, 138, 143, 137, 146, 141, 140, 137, 134, 136, 138, 141, 133, 134, 141, 136, 128, 139, 139, 143, 153, 130, 132, 145, 127, 139, 145, 142, 141, 124, 130, 134, 131, 143, 139, 147, 140, 141, 130, 141, 136, 142, 139, 135, 137, 147, 127, 135, 132, 133, 130, 135, 143, 135, 149, 144, 135, 146, 135, 143, 140, 143, 139, 137, 143, 136, 134, 133, 130, 126, 141, 143, 131, 133, 141, 139, 130, 131, 142, 146, 144, 146, 137, 143, 137, 143, 138, 145, 139, 148, 135, 144, 137, 138, 138, 141, 142, 137, 140, 136, 140, 141, 142, 136, 150, 135, 143, 138, 138, 146, 133, 145, 136, 149, 137, 145, 131, 142, 144, 141, 134, 139, 135, 148, 147, 145, 131, 140, 151, 134, 142, 137, 145, 140, 141, 137, 132, 143, 132, 140, 142, 150, 135, 145, 132, 141, 140, 131, 141, 133, 134, 141, 129, 144, 132, 154, 132, 136, 145, 129, 153, 142, 140, 133, 139, 141, 140, 138, 145, 129, 134, 138, 139, 142, 138, 139, 145, 141, 141, 142, 136, 138, 154, 148, 144, 131, 133, 133, 137, 141, 147, 132, 137, 141, 132, 145, 127, 134, 138, 138, 144, 139, 136, 134, 144, 136, 145, 139, 141, 141, 144, 137, 133, 134, 145, 136, 144, 141, 134, 137, 133, 139, 140, 138, 138, 135, 139, 143, 143, 133, 145, 135, 139, 143, 130, 140, 149, 131, 139, 147, 139, 128, 134, 131, 141, 136, 141, 124, 145, 135, 137, 134, 138, 145, 135, 146, 147, 140, 133, 138, 138, 141, 143, 140, 134, 139, 137, 132, 141, 145, 137, 138, 136, 139, 139, 138, 139, 139, 137, 140, 147, 145, 132, 140, 141, 139, 136, 142, 136, 135, 150, 144, 140, 134, 129, 134, 141, 138, 133, 137, 140, 134, 144, 142, 155, 137, 149, 144, 143, 134, 142, 135, 142, 143, 129, 147, 142, 141, 129, 143, 127, 141, 150, 158, 144, 140, 143, 151, 134, 132, 142, 144, 141, 132, 134, 142, 131, 135, 139, 140, 150, 144, 140, 137, 144, 139, 135, 142, 136, 145, 142, 136, 143, 146, 136, 142, 140, 134, 137, 141, 134, 142, 141, 133, 138, 140, 141, 141, 151, 140, 138, 135, 135, 142, 149, 140, 143, 142, 140, 144, 136, 143, 142, 144, 141, 140, 145, 136, 145, 128, 139, 140, 136, 143, 129, 147, 145, 134, 148, 145, 140, 141, 142, 146, 133, 141, 141, 143, 141, 139, 135, 131, 141, 133, 141, 139, 141, 140, 134, 138, 140, 143, 137, 134, 141, 145, 163, 150, 146, 145, 152, 141, 144, 144, 135, 134, 138, 138, 137, 143, 136, 141, 139, 132, 143, 141, 134, 130, 145, 146, 139, 139, 144, 127, 145, 148, 139, 141, 138, 145, 144, 139, 140, 147, 150, 143, 137, 143, 136, 143, 138, 140, 134, 145, 151, 142, 133, 139, 137, 143, 133, 140, 127, 152, 139, 139, 143, 145, 137, 136, 147, 135, 137, 134, 146, 136, 138, 136, 145, 143, 140, 142, 141, 142, 138, 136, 136, 141, 146, 148, 134, 131, 138, 143, 134, 153, 136, 141, 135, 130, 137, 133, 152, 141, 142, 141, 138, 141, 136, 135, 129, 143, 140, 142, 135, 138, 146, 135, 142, 125, 138, 138, 132, 138, 136, 140, 144, 138, 138, 137, 139, 141, 139, 149, 141, 141, 144, 140, 142, 132, 141, 137, 141, 134, 142, 140, 135, 130, 144, 141, 135, 144, 140, 140, 143, 140, 135, 137, 134, 137, 136, 123, 132, 148, 131, 136, 137, 137, 148, 141, 145, 133, 143, 142, 140, 140, 140, 136, 132, 137, 140, 143, 137, 147, 141, 147, 139, 138, 137, 142, 142, 147, 145, 145, 143, 145, 141, 141, 142, 136, 141, 147, 144, 141, 142, 144, 137, 133, 136, 143, 144, 134, 146, 138, 143, 142, 141, 139, 136, 138, 141, 139, 141, 140, 144, 151, 138, 143, 141, 137, 147, 148, 142, 132, 107, 136, 128, 128, 147, 139, 141, 129, 135, 140, 139, 135, 155, 134, 142, 141, 137, 144, 138, 135, 138, 146, 146, 138, 140, 140, 135, 143, 142, 130, 134, 134, 139, 146, 148, 140, 142, 139, 139, 142, 134, 146, 148, 134, 141, 139, 141, 145, 139, 136, 140, 157, 137, 128, 133, 139, 138, 136, 147, 140, 137, 140, 131, 125, 143, 146, 139, 143, 141, 133, 138, 141, 142, 141, 142, 142, 124, 132, 145, 131, 141, 134, 136, 142, 143, 131, 132, 135, 145, 134, 138, 145, 136, 139, 141, 143, 134, 142, 139, 134, 135, 136, 141, 149, 150, 145, 140, 131, 134, 144, 142, 154, 139, 139, 132, 139, 137, 135, 142, 139, 137, 137, 149, 139, 131, 144, 133, 129, 140, 148, 135, 135, 184, 146, 131, 124, 146, 132, 141, 133, 131, 135, 128, 140, 146, 139, 131, 141, 146, 133, 148, 130, 143, 152, 142, 146, 132, 140, 150, 138, 152, 128, 135, 135, 144, 136, 137, 133, 141, 143, 140, 144, 136, 142, 143, 147, 142, 142, 144, 140, 143, 134, 140, 131, 137, 133, 148, 144, 147, 144, 141, 139, 138, 132, 141, 143, 126, 136, 142, 142, 132, 135, 142, 128, 140, 148, 135, 151, 146, 141, 130, 135, 145, 135, 144, 141, 140, 135, 140, 140, 133, 141, 143, 138, 130, 135, 137, 147, 135, 147, 132, 142, 147, 143, 140, 123, 140, 141, 147, 133, 138, 144, 131, 134, 137, 134, 136, 152, 153, 143, 147, 151, 150, 136, 140, 133, 144, 142, 137, 144, 132, 138, 143, 144, 137, 136, 150, 137, 129, 135, 132, 138, 141, 133, 151, 137, 134, 141, 139, 143, 139, 122, 140, 135, 136, 139, 140, 138, 134, 140, 139, 134, 136, 134, 134, 141, 124, 141, 134, 134, 143, 136, 135, 140, 135, 156, 132, 136, 142, 149, 140, 132, 143, 146, 138, 138, 141, 137, 143, 142, 147, 150, 134, 131, 140, 136, 146, 138, 142, 134, 133, 156, 123, 137, 133, 138, 140, 141, 143, 139, 134, 134, 142, 141, 148, 139, 124, 136, 131, 141, 134, 137, 129, 135, 143, 144, 142, 146, 137, 135, 141, 122, 138, 144, 144, 142, 143, 135, 141, 121, 138, 121, 143, 147, 152, 137, 135, 131, 140, 144, 134, 136, 136, 140, 140, 142, 147, 137, 143, 151, 139, 140, 143, 139, 132, 135, 147, 135, 149, 143, 130, 140, 143, 137, 138, 145, 150, 139, 149, 133, 140, 135, 130, 144, 131, 142, 149, 145, 130, 135, 148, 131, 128, 138, 143, 134, 139, 135, 149, 149, 146, 145, 141, 135, 135, 135, 136, 136, 146, 133, 132, 149, 137, 108, 141, 150, 119, 148, 144, 131, 138, 146, 137, 140, 145, 144, 135, 135, 146, 158, 141, 146, 144, 141, 142, 136, 147, 142, 152, 139, 137, 153, 139, 131, 136, 145, 143, 141, 141, 143, 137, 136, 132, 154, 129, 151, 134, 141, 136, 129, 140, 139, 145, 131, 155, 133, 126, 150, 139, 133, 142, 143, 133, 159, 139, 135, 131, 136, 132, 139, 136, 130, 140, 135, 141, 139, 136, 147, 142, 128, 131, 131, 135, 143, 132, 132, 145, 147, 145, 138, 146, 140, 158, 137, 139, 144, 136, 150, 134, 144, 141, 130, 152, 142, 148, 139, 135, 144, 137, 123, 143, 139, 126, 132, 134, 121, 137, 145, 136, 134, 140, 133, 137, 145, 138, 150, 142, 127, 133, 141, 146, 140, 131, 126, 138, 131, 133, 139, 131, 155, 144, 137, 136, 141, 127, 140, 135, 141, 148, 140, 140, 140, 153, 134, 137, 138, 133, 143, 148, 147, 135, 146, 143, 146, 140, 138, 130, 145, 139, 134, 138, 135, 140, 137, 131, 136, 136, 137, 144, 140, 135, 128, 129, 133, 145, 140, 143, 140, 126, 153, 124, 133, 139, 138, 137, 136, 144, 146, 137, 143, 140, 130, 142, 136, 135, 135, 133, 138, 138, 143, 142, 139, 131, 143, 135, 140, 143, 130, 133, 139, 153, 132, 145, 135, 145, 137, 132, 136, 150, 146, 138, 141, 136, 146, 140, 130, 145, 139, 137, 135, 143, 133, 146, 135, 141, 138, 142, 146, 124, 129, 131, 137, 136, 131, 128, 137, 136, 136, 133, 150, 143, 139, 147, 136, 133, 139, 148, 136, 143, 133, 127, 147, 135, 137, 143, 138, 147, 136, 129, 145, 139, 137, 133, 138, 143, 132, 140, 150, 137, 143, 149, 132, 136, 130, 130, 145, 140, 137, 130, 150, 137, 158, 135, 135, 151, 141, 127, 139, 142, 130, 139, 141, 141, 135, 132, 141, 130, 136, 145, 142, 146, 137, 130, 142, 141, 138, 134, 131, 141, 139, 140, 142, 139, 142, 142, 132, 137, 133, 138, 147, 128, 140, 136, 130, 141, 137, 146, 148, 135, 136, 143, 137, 137, 125, 138, 124, 126, 139, 149, 139, 136, 140, 142, 147, 135, 137, 145, 131, 145, 141, 142, 138, 139, 144, 141, 139, 140, 137, 153, 148, 140, 129, 142, 143, 129, 137, 131, 131, 136, 129, 135, 137, 140, 133, 138, 135, 141, 143, 142, 135, 154, 131, 146, 139, 139, 140, 137, 128, 134, 133, 150, 131, 139, 135, 144, 143, 135, 142, 137, 136, 152, 146, 141, 142, 148, 134, 143, 139, 145, 142, 132, 146, 151, 138, 137, 136, 124, 157, 152, 136, 140, 137, 130, 132, 143, 135, 141, 134, 141, 136, 138, 151, 136, 140, 149, 145, 143, 139, 141, 144, 139, 146, 135, 137, 133, 138, 133, 149, 138, 142, 146, 134, 134, 146, 132, 137, 144, 137, 140, 135, 130, 143, 144, 127, 144, 130, 134, 142, 140, 138, 126, 144, 140, 136, 144, 127, 141, 135, 144, 154, 149, 136, 143, 134, 144, 140, 138, 129, 148, 136, 139, 136, 138, 139, 146, 130, 137, 137, 140, 141, 131, 139, 134, 152, 143, 136, 138, 150, 144, 135, 146, 140, 140, 148, 138, 138, 148, 146, 134, 141, 137, 139, 148, 129, 134, 142, 136, 135, 132, 129, 142, 151, 153, 140, 148, 142, 138, 134, 130, 147, 136, 136, 133, 139, 136, 137, 133, 136, 141, 137, 136, 128, 141, 140, 137, 145, 134, 147, 147, 133, 138, 143, 140, 140, 144, 149, 135, 134, 134, 131, 139, 133, 128, 138, 130, 135, 142, 143, 136, 133, 134, 131, 154, 139, 133, 141, 137, 145, 132, 145, 133, 134, 133, 130, 130, 135, 151, 146, 134, 137, 143, 130, 134, 138, 140, 131, 135, 136, 140, 143, 143, 133, 144, 137, 140, 135, 125, 140, 149, 142, 129, 141, 137, 139, 132, 138, 134, 135, 137, 140, 132, 132, 135, 140, 146, 149, 122, 132, 148, 141, 129, 140, 139, 142, 144, 149, 137, 137, 131, 138, 134, 149, 135, 140, 128, 151, 130, 140, 133, 129, 125, 150, 129, 137, 144, 144, 152, 143, 124, 131, 145, 137, 140, 134, 130, 143, 144, 152, 136, 138, 128, 151, 122, 141, 132, 146, 138, 139, 135, 137, 141, 139, 138, 139, 141, 145, 142, 142, 136, 148, 133, 128, 141, 138, 137, 133, 132, 133, 138, 135, 141, 134, 135, 137, 132, 144, 142, 143, 136, 140, 131, 155, 139, 148, 149, 129, 134, 139, 141, 132, 135, 146, 144, 140, 153, 140, 142, 134, 140, 139, 128, 132, 138, 147, 142, 136, 130, 144, 133, 139, 135, 152, 130, 132, 149, 138, 138, 131, 147, 134, 138, 137, 138, 136, 129, 141, 142, 139, 142, 145, 139, 127, 145, 138, 127, 141, 142, 143, 134, 140, 134, 136, 140, 134, 147, 150, 149, 146, 140, 133, 129, 143, 132, 131, 140, 143, 138, 143, 134, 143, 139, 133, 139, 129, 140, 140, 143, 154, 131, 131, 145, 129, 147, 139, 149, 136, 123, 135, 145, 135, 138, 137, 138, 137, 140, 136, 141, 132, 133, 145, 134, 141, 134, 139, 128, 148, 146, 134, 151, 144, 150, 137, 154, 135, 139, 130, 134, 135, 145, 138, 140, 134, 135, 142, 145, 148, 134, 145, 136, 139, 139, 149, 147, 137, 139, 137, 136, 142, 137, 132, 135, 137, 129, 145, 141, 142, 146, 137, 139, 147, 139, 138, 128, 131, 136, 139, 140, 143, 135, 137, 135, 143, 147, 137, 135, 130, 130, 136, 146, 138, 138, 130, 143, 144, 138, 137, 141, 134, 136, 149, 142, 133, 141, 138, 145, 147, 132, 145, 151, 137, 138, 143, 140, 137, 146, 131, 151, 143, 134, 148, 141, 137, 143, 140, 133, 134, 147, 145, 130, 147, 140, 143, 132, 131, 145, 137, 143, 133, 135, 134, 132, 145, 136, 139, 131, 136, 121, 142, 132, 153, 144, 137, 134, 136, 137, 136, 141, 148, 141, 141, 134, 137, 146, 135, 135, 135, 142, 137, 143, 141, 137, 139, 135, 137, 135, 145, 147, 140, 130, 144, 134, 147, 137, 131, 142, 137, 137, 146, 148, 150, 136, 138, 139, 139, 144, 133, 133, 134, 131, 139, 141, 136, 137, 141, 140, 138, 143, 133, 143, 138, 135, 139, 139, 139, 129, 141, 131, 148, 129, 138, 135, 133, 142, 130, 145, 130, 135, 138, 143, 134, 140, 138, 140, 135, 144, 134, 139, 142, 139, 121, 127, 146, 135, 134, 139, 128, 133, 133, 138, 136, 139, 143, 138, 136, 135, 146, 146, 137, 140, 143, 137, 139, 136, 148, 145, 135, 140, 137, 133, 140, 143, 137, 138, 130, 136, 137, 138, 145, 141, 133, 145, 141, 138, 145, 141, 135, 131, 139, 140, 138, 135, 144, 144, 146, 144, 135, 135, 155, 136, 135, 142, 142, 134, 142, 138, 145, 135, 129, 132, 141, 146, 136, 137, 137, 134, 138, 139, 135, 137, 149, 141, 139, 139, 137, 140, 141, 143, 143, 147, 136, 144, 139, 137, 141, 140, 132, 134, 134, 140, 140, 138, 148, 143, 136, 144, 141, 130, 133, 138, 132, 136, 141, 154, 144, 142, 143, 135, 139, 146, 141, 139, 139, 145, 137, 138, 133, 139, 135, 142, 142, 142, 146, 135, 138, 141, 127, 140, 142, 131, 147, 138, 138, 141, 131, 139, 139, 129, 142, 143, 138, 142, 137, 140, 138, 136, 137, 148, 144, 142, 142, 134, 134, 143, 136, 139, 137, 140, 135, 133, 148, 138, 134, 134, 137, 130, 141, 137, 139, 134, 142, 150, 134, 139, 131, 133, 136, 138, 140, 140, 127, 142, 150, 147, 145, 129, 142, 138, 134, 133, 134, 134, 136, 130, 146, 135, 141, 139, 136, 141, 141, 138, 138, 141, 139, 146, 139, 144, 139, 144, 148, 141, 146, 141, 146, 144, 145, 141, 145, 123, 141, 139, 133, 133, 142, 139, 139, 132, 132, 135, 137, 138, 137, 143, 133, 133, 150, 136, 135, 139, 143, 131, 137, 138, 139, 138, 139, 138, 144, 141, 142, 139, 136, 144, 138, 148, 142, 148, 137, 136, 147, 143, 140, 141, 149, 134, 142, 140, 138, 124, 132, 138, 140, 135, 151, 140, 148, 132, 134, 142, 137, 132, 136, 143, 134, 135, 147, 145, 133, 143, 135, 137, 138, 138, 132, 142, 139, 138, 143, 139, 132, 134, 138, 143, 137, 141, 133, 129, 135, 142, 148, 137, 134, 141, 137, 143, 140, 144, 136, 133, 147, 143, 138, 139, 128, 144, 140, 144, 144, 136, 141, 144, 140, 133, 142, 133, 138, 129, 149, 143, 138, 146, 138, 148, 137, 134, 133, 137, 139, 135, 128, 138, 143, 144, 138, 136, 137, 136, 133, 129, 134, 135, 135, 131, 137, 141, 137, 136, 134, 131, 142, 138, 132, 141, 142, 131, 136, 138, 138, 148, 143, 139, 136, 134, 139, 148, 132, 140, 135, 152, 145, 143, 135, 137, 134, 144, 135, 141, 144, 141, 137, 152, 142, 141, 134, 136, 136, 141, 139, 136, 139, 136, 148, 132, 132, 144, 133, 133, 139, 143, 143, 133, 137, 135, 140, 148, 144, 137, 136, 135, 139, 139, 142, 132, 135, 146, 140, 131, 144, 144, 138, 148, 130, 135, 133, 133, 140, 143, 146, 137, 146, 144, 137, 142, 131, 139, 140, 145, 143, 138, 134, 131, 143, 133, 136, 148, 135, 141, 146, 133, 141, 149, 137, 141, 135, 133, 140, 125, 138, 138, 137, 141, 138, 142, 141, 139, 131, 153, 132, 148, 130, 139, 134, 147, 139, 136, 137, 145, 133, 132, 145, 145, 150, 141, 135, 133, 136, 140, 137, 130, 137, 143, 136, 138, 143, 140, 132, 132, 141, 144, 130, 140, 142, 150, 141, 143, 138, 143, 133, 139, 145, 139, 129, 135, 141, 137, 144, 149, 144, 139, 131, 140, 134, 143, 142, 143, 132, 131, 137, 148, 144, 151, 150, 140, 137, 134, 144, 148, 138, 143, 130, 144, 136, 137, 138, 140, 130, 137, 150, 150, 135, 137, 139, 135, 133, 147, 143, 139, 131, 137, 138, 137, 140, 148, 133, 145, 134, 135, 141, 137, 136, 135, 130, 140, 140, 142, 138, 135, 135, 146, 136, 139, 129, 150, 138, 134, 134, 134, 134, 137, 136, 131, 142, 134, 133, 153, 149, 138, 139, 133, 136, 135, 145, 133, 146, 137, 131, 143, 141, 152, 137, 148, 130, 152, 140, 138, 136, 146, 137, 137, 133, 139, 140, 138, 137, 127, 137, 143, 139, 140, 140, 135, 138, 141, 135, 140, 139, 135, 143, 134, 139, 143, 141, 139, 139, 140, 140, 140, 142, 145, 141, 136, 139, 138, 143, 138, 140, 137, 137, 129, 139, 138, 143, 148, 143, 143, 146, 135, 137, 133, 138, 134, 135, 140, 143, 137, 138, 149, 140, 143, 150, 139, 144, 136, 141, 133, 145, 147, 140, 138, 133, 140, 138, 130, 137, 135, 144, 145, 137, 152, 137, 138, 141, 140, 143, 140, 135, 139, 138, 145, 137, 137, 136, 134, 148, 130, 149, 134, 133, 139, 132, 132, 144, 139, 132, 134, 137, 136, 147, 139, 142, 137, 141, 142, 146, 140, 140, 146, 140, 137, 141, 139, 131, 137, 131, 131, 139, 145, 143, 144, 134, 151, 137, 143, 140, 135, 144, 139, 137, 138, 144, 135, 132, 142, 136, 132, 151, 140, 134, 138, 143, 137, 144, 135, 142, 136, 140, 145, 134, 138, 140, 144, 143, 143, 145, 141, 127, 137, 133, 137, 134, 148, 135, 138, 135, 143, 139, 139, 138, 133, 158, 140, 136, 128, 155, 146, 136, 147, 142, 136, 148, 145, 142, 137, 131, 141, 137, 147, 136, 137, 133, 143, 144, 142, 139, 137, 137, 132, 151, 134, 145, 141, 148, 127, 135, 141, 140, 145, 137, 134, 146, 146, 137, 141, 138, 144, 146, 143, 147, 137, 139, 135, 138, 133, 144, 133, 145, 142, 151, 132, 145, 137, 138, 160, 128, 131, 137, 136, 140, 141, 140, 134, 137, 142, 143, 130, 131, 136, 137, 139, 132, 146, 140, 141, 144, 136, 145, 135, 129, 137, 142, 142, 138, 134, 149, 141, 137, 142, 142, 145, 129, 139, 136, 137, 141, 139, 129, 139, 141, 134, 144, 134, 141, 138, 132, 136, 145, 139, 140, 127, 142, 138, 134, 142, 142, 140, 132, 135, 141, 144, 144, 145, 141, 133, 140, 135, 144, 146, 133, 144, 136, 140, 138, 130, 139, 124, 150, 135, 140, 130, 141, 136, 130, 148, 133, 134, 140, 143, 142, 137, 149, 141, 144, 137, 133, 147, 127, 136, 138, 139, 135, 132, 147, 134, 143, 144, 135, 146, 141, 131, 142, 134, 138, 158, 143, 149, 130, 142, 133, 140, 139, 146, 141, 130, 146, 143, 136, 133, 136, 140, 139, 139, 134, 131, 140, 138, 146, 140, 136, 147, 144, 136, 143, 142, 134, 142, 131, 124, 146, 143, 138, 138, 140, 140, 146, 134, 142, 139, 132, 136, 140, 138, 145, 138, 133, 145, 132, 141, 145, 134, 144, 133, 138, 126, 130, 126, 132, 138, 134, 147, 137, 143, 132, 142, 136, 157, 134, 123, 136, 145, 138, 133, 137, 130, 135, 137, 138, 145, 130, 147, 137, 146, 140, 128, 132, 141, 137, 143, 129, 134, 139, 140, 133, 139, 137, 133, 141, 141, 141, 127, 141, 146, 139, 133, 146, 136, 139, 135, 137, 138, 139, 140, 128, 144, 137, 148, 137, 149, 142, 130, 141, 142, 137, 134, 146, 142, 142, 142, 134, 129, 137, 146, 144, 148, 142, 150, 134, 145, 141, 140, 130, 138, 142, 130, 144, 128, 135, 143, 143, 139, 134, 136, 129, 130, 131, 135, 141, 139, 142, 143, 132, 143, 137, 140, 141, 144, 147, 130, 133, 138, 149, 142, 143, 134, 134, 138, 135, 140, 138, 134, 129, 135, 148, 137, 136, 135, 142, 134, 124, 142, 142, 132, 146, 139, 143, 137, 135, 144, 134, 141, 151, 149, 134, 143, 137, 133, 143, 139, 136, 131, 148, 130, 133, 131, 135, 134, 141, 134, 131, 143, 135, 140, 141, 136, 138, 138, 139, 137, 141, 135, 139, 134, 137, 134, 149, 132, 146, 153, 140, 134, 138, 135, 137, 143, 151, 138, 138, 133, 148, 143, 142, 145, 141, 133, 137, 128, 136, 144, 136, 142, 131, 130, 140, 143, 136, 134, 138, 142, 141, 142, 130, 143, 133, 138, 138, 140, 142, 133, 142, 138, 142, 136, 140, 133, 140, 142, 129, 138, 140, 133, 146, 131, 140, 134, 144, 132, 135, 140, 138, 137, 139, 145, 140, 142, 129, 124, 127, 145, 136, 144, 136, 136, 131, 144, 138, 135, 133, 134, 134, 139, 143, 153, 141, 150, 152, 134, 142, 138, 142, 145, 143, 146, 148, 145, 145, 134, 137, 153, 137, 146, 137, 134, 145, 136, 137, 147, 139, 134, 127, 131, 139, 137, 140, 139, 137, 136, 132, 136, 131, 140, 139, 131, 133, 142, 148, 138, 136, 132, 136, 138, 147, 144, 138, 139, 140, 136, 131, 132, 128, 144, 147, 137, 144, 136, 135, 137, 138, 144, 136, 137, 139, 135, 138, 141, 140, 134, 141, 135, 137, 136, 145, 142, 133, 144, 148, 141, 138, 128, 130, 142, 135, 137, 135, 149, 145, 137, 132, 146, 141, 145, 149, 134, 143, 142, 135, 133, 146, 138, 139, 136, 147, 142, 138, 135, 148, 141, 143, 135, 146, 140, 124, 137, 136, 139, 138, 134, 142, 134, 137, 143, 139, 141, 138, 137, 154, 140, 134, 137, 147, 142, 139, 137, 136, 144, 135, 143, 132, 140, 146, 138, 130, 148, 143, 140, 133, 136, 132, 135, 140, 130, 140, 146, 148, 139, 140, 142, 143, 133, 149, 139, 133, 142, 149, 132, 128, 137, 130, 144, 141, 135, 147, 140, 132, 150, 140, 145, 139, 139, 149, 138, 138, 140, 135, 138, 141, 126, 139, 137, 137, 147, 138, 135, 137, 134, 134, 138, 144, 137, 138, 135, 144, 148, 136, 143, 135, 144, 143, 140, 143, 139, 136, 142, 132, 147, 141, 149, 137, 137, 145, 150, 135, 145, 135, 139, 131, 137, 136, 135, 139, 136, 134, 142, 154, 134, 135, 144, 140, 132, 142, 141, 139, 132, 133, 135, 145, 130, 149, 137, 131, 127, 145, 142, 131, 130, 137, 137, 141, 132, 142, 145, 135, 144, 140, 140, 141, 138, 140, 136, 140, 139, 139, 137, 143, 131, 130, 144, 140, 137, 137, 129, 142, 142, 127, 132, 138, 142, 138, 131, 133, 132, 136, 141, 148, 141, 147, 139, 141, 148, 142, 137, 134, 132, 132, 137, 141, 138, 139, 136, 130, 136, 134, 140, 141, 137, 138, 142, 143, 128, 134, 152, 147, 145, 147, 144, 137, 147, 140, 142, 134, 143, 138, 141, 142, 131, 151, 133, 141, 140, 136, 129, 143, 137, 141, 144, 139, 138, 154, 142, 132, 132, 138, 136, 140, 136, 128, 150, 143, 137, 145, 136, 135, 137, 141, 147, 130, 124, 138, 141, 142, 130, 139, 140, 137, 128, 144, 139, 139, 130, 136, 139, 139, 137, 144, 134, 141, 141, 143, 136, 136, 139, 135, 138, 137, 138, 137, 136, 140, 140, 128, 137, 135, 139, 145, 145, 139, 136, 140, 127, 138, 139, 137, 137, 135, 141, 140, 142, 137, 146, 135, 138, 149, 146, 136, 142, 140, 140, 136, 131, 141, 128, 141, 135, 142, 137, 137, 138, 142, 135, 136, 130, 132, 140, 142, 136, 137, 130, 144, 147, 135, 141, 134, 140, 150, 132, 135, 135, 133, 137, 136, 145, 122, 135, 136, 145, 138, 145, 140, 135, 130, 138, 147, 140, 141, 137, 144, 136, 137, 140, 150, 138, 131, 146, 144, 144, 136, 143, 138, 142, 147, 141, 148, 142, 137, 132, 132, 138, 134, 139, 136, 138, 148, 138, 133, 135, 147, 149, 138, 135, 132, 146, 161, 151, 142, 139, 145, 127, 138, 137, 142, 139, 131, 134, 148, 139, 150, 133, 136, 147, 138, 139, 134, 136, 131, 147, 135, 135, 138, 134, 138, 133, 142, 140, 143, 143, 136, 142, 150, 143, 129, 143, 133, 138, 144, 137, 135, 129, 140, 147, 144, 137, 142, 138, 145, 133, 136, 152, 135, 138, 131, 141, 142, 133, 149, 130, 148, 139, 139, 140, 137, 135, 140, 144, 132, 134, 140, 145, 134, 126, 139, 146, 134, 130, 138, 141, 147, 132, 130, 145, 138, 138, 139, 138, 147, 141, 141, 139, 137, 143, 140, 133, 138, 123, 140, 144, 139, 138, 142, 133, 135, 152, 142, 131, 135, 131, 142, 128, 138, 140, 142, 128, 134, 142, 141, 147, 141, 141, 140, 128, 133, 135, 142, 151, 144, 130, 129, 141, 139, 128, 151, 138, 140, 143, 140, 139, 137, 137, 139, 142, 128, 147, 142, 137, 146, 140, 141, 139, 143, 134, 145, 146, 151, 130, 131, 130, 137, 140, 143, 135, 144, 139, 140, 138, 135, 146, 137, 147, 131, 134, 136, 131, 137, 140, 138, 143, 141, 133, 132, 139, 134, 140, 142, 139, 132, 133, 145, 141, 128, 143, 137, 152, 141, 132, 133, 135, 135, 127, 134, 138, 137, 142, 128, 131, 135, 145, 135, 144, 138, 134, 145, 144, 134, 133, 135, 137, 143, 132, 147, 146, 136, 141, 142, 142, 134, 133, 141, 134, 145, 138, 136, 128, 136, 144, 136, 144, 135, 138, 131, 144, 138, 136, 144, 138, 137, 141, 142, 137, 134, 147, 130, 142, 129, 137, 149, 146, 131, 141, 156, 137, 147, 134, 140, 136, 141, 142, 150, 136, 142, 140, 133, 142, 144, 136, 138, 143, 133, 145, 139, 136, 133, 143, 124, 134, 138, 130, 142, 139, 139, 141, 134, 141, 122, 139, 143, 129, 149, 148, 142, 144, 135, 140, 150, 137, 136, 129, 145, 142, 138, 132, 134, 121, 133, 145, 136, 138, 137, 141, 140, 139, 136, 145, 142, 136, 147, 137, 137, 127, 132, 132, 135, 140, 141, 132, 133, 141, 130, 131, 136, 137, 136, 143, 137, 140, 145, 149, 145, 135, 134, 137, 142, 130, 131, 142, 139, 154, 140, 151, 133, 141, 131, 137, 153, 131, 145, 136, 143, 129, 134, 138, 139, 147, 140, 139, 138, 143, 130, 135, 139, 133, 136, 134, 135, 135, 149, 133, 148, 139, 135, 140, 136, 136, 133, 138, 134, 139, 148, 143, 137, 137, 141, 138, 146, 139, 134, 136, 144, 138, 130, 132, 137, 136, 148, 152, 137, 135, 131, 142, 145, 137, 136, 138, 136, 143, 127, 133, 136, 148, 147, 135, 141, 139, 136, 145, 138, 148, 145, 143, 136, 138, 136, 138, 137, 149, 133, 133, 133, 144, 144, 140, 144, 142, 137, 135, 155, 137, 135, 140, 139, 127, 129, 140, 139, 127, 134, 146, 150, 144, 138, 142, 142, 137, 137, 132, 136, 140, 134, 141, 137, 133, 139, 136, 145, 145, 144, 142, 136, 139, 130, 145, 138, 142, 133, 147, 132, 136, 132, 140, 143, 146, 139, 134, 145, 145, 136, 136, 142, 139, 131, 129, 139, 142, 143, 146, 156, 133, 140, 140, 133, 128, 142, 139, 138, 140, 144, 135, 134, 139, 132, 129, 144, 149, 147, 136, 145, 132, 146, 142, 127, 130, 138, 145, 139, 146, 144, 138, 144, 130, 128, 132, 142, 145, 139, 144, 142, 156, 141, 142, 140, 127, 133, 145, 143, 138, 141, 139, 134, 135, 134, 129, 138, 140, 140, 138, 136, 143, 141, 128, 140, 155, 149, 133, 137, 133, 136, 138, 131, 147, 144, 141, 135, 137, 134, 133, 134, 138, 134, 141, 139, 149, 138, 140, 139, 146, 145, 138, 134, 133, 144, 140, 138, 142, 133, 130, 135, 133, 151, 142, 133, 133, 134, 141, 145, 136, 131, 141, 135, 137, 142, 149, 148, 146, 137, 124, 135, 148, 138, 138, 143, 138, 146, 141, 138, 135, 137, 149, 152, 135, 133, 139, 141, 132, 145, 136, 145, 145, 151, 140, 141, 145, 138, 139, 134, 138, 140, 137, 136, 138, 126, 143, 139, 147, 144, 132, 144, 127, 138, 136, 144, 135, 145, 131, 143, 141, 133, 148, 139, 141, 134, 147, 139, 123, 155, 137, 134, 139, 135, 145, 142, 148, 131, 131, 128, 137, 146, 161, 130, 140, 134, 141, 151, 137, 143, 137, 128, 147, 131, 147, 138, 134, 139, 140, 138, 139, 138, 146, 135, 148, 141, 128, 136, 133, 146, 133, 134, 140, 138, 137, 135, 141, 147, 135, 133, 145, 147, 140, 126, 141, 138, 140, 134, 156, 132, 146, 139, 136, 136, 144, 140, 134, 143, 141, 132, 138, 134, 146, 137, 137, 138, 134, 138, 130, 139, 136, 142, 133, 147, 137, 141, 145, 142, 133, 125, 140, 130, 144, 136, 134, 135, 139, 139, 136, 139, 140, 148, 140, 140, 144, 147, 134, 145, 131, 137, 150, 129, 136, 136, 137, 129, 134, 156, 138, 139, 136, 142, 150, 145, 132, 150, 132, 135, 145, 127, 137, 132, 152, 130, 142, 143, 135, 139, 141, 136, 139, 141, 135, 129, 141, 138, 139, 135, 130, 142, 144, 139, 149, 142, 142, 142, 141, 133, 141, 130, 133, 143, 139, 146, 136, 134, 140, 131, 138, 140, 141, 145, 137, 149, 133, 131, 138, 160, 140, 133, 153, 138, 148, 140, 148, 136, 139, 135, 133, 135, 147, 140, 143, 139, 137, 135, 139, 128, 140, 132, 142, 146, 142, 141, 136, 131, 135, 136, 123, 140, 139, 133, 131, 143, 142, 138, 124, 125, 146, 134, 136, 133, 133, 135, 136, 139, 138, 121, 148, 141, 140, 145, 139, 131, 141, 147, 135, 144, 144, 150, 147, 140, 133, 130, 142, 135, 133, 121, 139, 132, 149, 141, 134, 132, 133, 136, 130, 140, 140, 145, 132, 149, 143, 144, 141, 147, 131, 141, 146, 145, 139, 139, 136, 139, 138, 136, 147, 140, 136, 134, 151, 136, 136, 131, 129, 137, 146, 141, 140, 140, 139, 151, 143, 135, 138, 138, 134, 139, 145, 133, 135, 147, 137, 142, 134, 135, 151, 123, 140, 132, 138, 127, 129, 136, 148, 146, 141, 151, 129, 134, 144, 134, 144, 144, 137, 128, 127, 139, 133, 137, 146, 134, 140, 136, 136, 142, 145, 141, 137, 140, 120, 140, 145, 153, 137, 146, 136, 149, 140, 133, 131, 127, 137, 138, 154, 138, 131, 135, 138, 136, 148, 132, 128, 142, 143, 143, 140, 142, 146, 145, 146, 152, 136, 135, 138, 133, 147, 133, 141, 142, 137, 139, 141, 146, 137, 140, 143, 132, 137, 139, 129, 146, 127, 130, 131, 154, 139, 138, 139, 144, 132, 147, 129, 140, 146, 135, 140, 147, 143, 143, 135, 147, 159, 139, 145, 137, 142, 142, 142, 135, 137, 141, 143, 131, 127, 138, 136, 134, 141, 138, 128, 136, 146, 137, 145, 135, 135, 137, 133, 131, 135, 141, 136, 143, 130, 133, 134, 140, 141, 144, 139, 138, 142, 143, 129, 130, 133, 139, 144, 139, 146, 141, 133, 145, 135, 134, 135, 143, 140, 137, 149, 133, 142, 136, 135, 141, 135, 140, 154, 147, 139, 133, 129, 149, 142, 131, 140, 137, 131, 147, 130, 142, 143, 141, 137, 141, 136, 139, 135, 147, 136, 136, 139, 142, 140, 156, 151, 139, 137, 144, 146, 121, 139, 146, 142, 122, 134, 143, 142, 138, 144, 144, 141, 138, 139, 128, 144, 136, 130, 136, 145, 140, 137, 138, 143, 139, 139, 134, 141, 138, 147, 136, 136, 141, 141, 140, 136, 139, 141, 140, 135, 139, 151, 130, 140, 138, 139, 136, 137, 137, 134, 145, 143, 142, 140, 150, 143, 136, 150, 140, 136, 128, 140, 138, 137, 135, 137, 146, 151, 139, 135, 129, 140, 144, 142, 144, 144, 135, 144, 133, 140, 141, 141, 138, 131, 132, 134, 139, 129, 141, 139, 135, 135, 133, 139, 134, 136, 136, 152, 133, 138, 138, 133, 142, 127, 142, 133, 144, 137, 140, 140, 135, 148, 132, 145, 146, 128, 139, 139, 145, 143, 135, 142, 140, 140, 135, 131, 129, 138, 135, 139, 141, 137, 140, 141, 132, 132, 141, 141, 138, 136, 141, 139, 142, 143, 144, 135, 137, 140, 136, 143, 144, 142, 135, 132, 143, 134, 144, 144, 140, 137, 131, 135, 136, 132, 135, 132, 136, 139, 137, 136, 136, 143, 138, 138, 133, 142, 146, 135, 136, 139, 133, 141, 146, 148, 140, 140, 145, 130, 134, 135, 144, 145, 144, 147, 143, 144, 138, 151, 135, 146, 137, 133, 141, 146, 137, 138, 142, 138, 142, 127, 131, 132, 141, 134, 144, 124, 142, 128, 138, 137, 143, 138, 144, 144, 141, 136, 141, 135, 145, 132, 144, 139, 146, 140, 133, 134, 141, 145, 142, 131, 144, 136, 144, 131, 143, 144, 143, 145, 134, 137, 138, 151, 139, 143, 139, 135, 144, 131, 125, 145, 135, 136, 139, 138, 134, 148, 142, 139, 133, 131, 136, 136, 142, 149, 131, 146, 141, 147, 147, 134, 127, 139, 136, 137, 138, 141, 136, 137, 141, 135, 139, 145, 155, 133, 146, 134, 137, 140, 144, 144, 131, 145, 139, 136, 147, 138, 144, 146, 137, 138, 133, 128, 141, 131, 145, 138, 140, 139, 135, 145, 139, 136, 141, 135, 138, 137, 141, 139, 143, 135, 149, 135, 133, 131, 131, 122, 138, 133, 144, 145, 141, 131, 133, 143, 144, 142, 145, 153, 140, 131, 131, 137, 135, 135, 143, 148, 139, 148, 127, 137, 144, 133, 143, 138, 142, 135, 142, 137, 138, 133, 143, 142, 135, 144, 134, 124, 142, 139, 138, 136, 143, 135, 138, 140, 139, 149, 137, 134, 138, 142, 136, 136, 134, 145, 147, 140, 155, 144, 144, 143, 131, 137, 133, 144, 146, 140, 144, 143, 139, 131, 143, 134, 138, 130, 141, 137, 141, 133, 137, 134, 144, 144, 136, 134, 146, 142, 144, 145, 138, 145, 136, 152, 139, 126, 150, 145, 139, 136, 132, 150, 134, 136, 140, 138, 136, 139, 128, 152, 143, 138, 136, 146, 133, 134, 142, 134, 130, 138, 142, 145, 136, 125, 135, 145, 150, 137, 147, 145, 134, 141, 148, 130, 140, 149, 135, 138, 130, 136, 140, 137, 137, 143, 144, 145, 140, 138, 132, 137, 149, 144, 142, 138, 140, 133, 134, 140, 145, 137, 141, 134, 143, 137, 146, 141, 144, 142, 140, 143, 136, 131, 130, 132, 140, 133, 141, 130, 137, 136, 146, 128, 130, 139, 139, 134, 135, 131, 136, 146, 144, 134, 137, 140, 136, 138, 152, 140, 142, 142, 139, 143, 137, 142, 144, 131, 141, 135, 143, 128, 146, 135, 132, 125, 130, 137, 133, 141, 139, 140, 135, 133, 137, 134, 135, 131, 137, 144, 137, 144, 133, 135, 139, 145, 141, 135, 140, 146, 147, 141, 136, 139, 133, 138, 148, 149, 150, 140, 143, 127, 138, 141, 132, 142, 142, 127, 153, 133, 142, 138, 144, 128, 144, 126, 132, 136, 150, 137, 141, 146, 141, 148, 148, 139, 149, 134, 135, 139, 147, 136, 139, 140, 139, 138, 137, 137, 144, 133, 139, 138, 143, 138, 143, 139, 143, 140, 141, 128, 130, 136, 147, 126, 144, 142, 129, 141, 135, 134, 140, 140, 131, 140, 131, 142, 140, 121, 129, 129, 139, 133, 140, 138, 142, 133, 138, 140, 139, 134, 143, 127, 146, 134, 148, 136, 135, 144, 139, 137, 137, 149, 135, 139, 134, 141, 128, 134, 140, 149, 130, 131, 140, 138, 129, 150, 135, 131, 142, 137, 138, 131, 143, 139, 134, 133, 130, 133, 136, 132, 143, 132, 147, 140, 141, 136, 142, 137, 141, 134, 137, 134, 142, 132, 139, 131, 141, 131, 145, 139, 133, 142, 147, 152, 137, 136, 150, 128, 141, 138, 135, 132, 135, 141, 140, 132, 141, 139, 132, 135, 138, 142, 153, 134, 142, 135, 136, 142, 138, 133, 138, 141, 140, 139, 137, 151, 135, 135, 146, 148, 133, 137, 145, 135, 143, 137, 138, 139, 146, 134, 140, 132, 134, 139, 133, 136, 125, 135, 137, 151, 147, 143, 133, 144, 136, 135, 138, 139, 131, 142, 140, 142, 146, 137, 131, 138, 139, 132, 145, 127, 136, 136, 137, 159, 136, 134, 144, 134, 141, 135, 145, 142, 148, 128, 145, 134, 132, 138, 141, 144, 131, 145, 132, 153, 139, 141, 138, 141, 149, 137, 152, 136, 146, 145, 129, 134, 144, 146, 142, 136, 139, 143, 157, 131, 137, 127, 136, 134, 136, 135, 140, 141, 138, 143, 136, 142, 130, 148, 139, 140, 138, 143, 133, 141, 146, 133, 136, 142, 133, 142, 131, 135, 131, 141, 139, 137, 142, 131, 142, 134, 141, 139, 140, 134, 139, 136, 140, 149, 135, 122, 144, 150, 129, 134, 145, 133, 148, 136, 134, 134, 130, 135, 143, 139, 137, 141, 135, 128, 143, 133, 138, 145, 139, 130, 141, 148, 140, 142, 141, 133, 147, 143, 144, 141, 145, 140, 147, 151, 144, 139, 135, 128, 143, 143, 141, 141, 131, 133, 139, 148, 137, 127, 149, 128, 138, 137, 155, 143, 143, 133, 139, 134, 144, 128, 136, 143, 136, 137, 137, 131, 137, 133, 142, 135, 131, 151, 125, 147, 146, 141, 132, 140, 140, 143, 141, 131, 131, 140, 151, 149, 141, 140, 146, 140, 127, 135, 136, 134, 136, 136, 138, 143, 139, 132, 133, 142, 136, 139, 138, 143, 136, 146, 139, 131, 135, 156, 137, 136, 133, 138, 139, 141, 136, 139, 142, 133, 139, 154, 138, 138, 133, 145, 145, 147, 156, 140, 139, 140, 148, 140, 142, 136, 144, 147, 141, 135, 133, 139, 137, 141, 143, 145, 133, 145, 137, 138, 144, 147, 138, 144, 134, 148, 139, 137, 137, 137, 144, 140, 138, 133, 133, 139, 137, 140, 133, 137, 146, 147, 135, 141, 135, 148, 138, 140, 136, 135, 131, 134, 139, 137, 143, 134, 141, 139, 144, 141, 138, 135, 127, 139, 137, 139, 131, 137, 134, 136, 135, 134, 144, 139, 137, 135, 150, 141, 142, 137, 144, 150, 136, 143, 137, 141, 137, 136, 136, 137, 137, 146, 136, 133, 145, 139, 137, 140, 131, 136, 134, 137, 131, 141, 148, 130, 138, 133, 139, 144, 130, 135, 142, 139, 140, 139, 136, 135, 140, 136, 138, 143, 135, 137, 150, 142, 139, 138, 140, 140, 140, 154, 135, 149, 136, 132, 141, 137, 136, 138, 137, 138, 139, 133, 144, 138, 132, 137, 135, 141, 141, 133, 137, 147, 139, 136, 143, 136, 140, 142, 129, 138, 147, 135, 141, 137, 141, 145, 136, 132, 137, 142, 140, 145, 145, 137, 131, 143, 135, 139, 135, 137, 147, 135, 142, 140, 137, 136, 140, 133, 148, 138, 140, 133, 140, 136, 135, 143, 141, 140, 139, 139, 145, 148, 135, 149, 144, 142, 139, 134, 133, 137, 142, 136, 136, 129, 136, 144, 137, 141, 130, 147, 137, 134, 137, 139, 137, 137, 139, 144, 140, 140, 137, 137, 139, 147, 139, 136, 134, 141, 136, 132, 132, 139, 130, 141, 134, 138, 143, 147, 144, 126, 143, 131, 145, 134, 128, 140, 131, 142, 133, 136, 136, 141, 138, 151, 134, 141, 137, 146, 134, 125, 140, 136, 138, 130, 144, 142, 141, 135, 140, 139, 141, 134, 136, 140, 132, 136, 148, 144, 141, 139, 142, 140, 146, 133, 142, 136, 133, 142, 141, 138, 137, 135, 142, 142, 135, 138, 134, 134, 134, 145, 142, 134, 131, 142, 135, 138, 142, 131, 139, 139, 139, 143, 139, 142, 128, 144, 139, 125, 144, 138, 137, 137, 151, 136, 136, 140, 133, 141, 139, 133, 142, 152, 135, 148, 141, 127, 139, 145, 137, 137, 147, 143, 143, 143, 143, 129, 142, 134, 144, 141, 141, 135, 135, 131, 143, 136, 140, 145, 138, 137, 137, 137, 135, 139, 137, 133, 131, 141, 138, 134, 147, 141, 148, 142, 140, 134, 135, 145, 147, 138, 132, 136, 133, 134, 137, 137, 139, 139, 138, 143, 140, 132, 138, 136, 141, 137, 135, 136, 139, 137, 138, 137, 139, 143, 136, 142, 141, 137, 134, 140, 142, 139, 144, 133, 136, 146, 143, 132, 136, 140, 136, 141, 144, 151, 144, 137, 144, 138, 138, 136, 142, 140, 133, 138, 140, 133, 136, 136, 133, 142, 136, 132, 136, 139, 150, 144, 134, 133, 144, 134, 140, 138, 140, 149, 142, 143, 136, 151, 135, 135, 135, 144, 147, 133, 132, 142, 139, 134, 130, 141, 145, 135, 136, 136, 137, 136, 134, 144, 136, 137, 138, 138, 137, 130, 140, 148, 136, 148, 128, 129, 146, 144, 137, 140, 132, 139, 142, 131, 151, 131, 137, 135, 142, 146, 149, 134, 141, 135, 138, 141, 140, 143, 136, 147, 139, 129, 137, 141, 141, 139, 146, 133, 147, 136, 132, 136, 138, 138, 143, 134, 135, 144, 136, 140, 135, 133, 140, 132, 141, 138, 142, 139, 140, 130, 139, 143, 144, 148, 125, 136, 132, 142, 143, 140, 137, 137, 134, 126, 144, 138, 144, 144, 138, 131, 142, 147, 150, 140, 144, 129, 131, 132, 132, 130, 141, 145, 138, 138, 143, 130, 148, 144, 139, 139, 147, 143, 134, 130, 138, 141, 143, 148, 143, 134, 143, 144, 147, 137, 151, 135, 139, 140, 131, 144, 142, 137, 136, 138, 142, 144, 133, 156, 141, 135, 139, 136, 137, 134, 134, 130, 144, 133, 137, 131, 140, 140, 135, 132, 144, 142, 140, 142, 137, 143, 141, 139, 134, 143, 145, 132, 141, 132, 143, 141, 145, 144, 144, 134, 128, 142, 137, 136, 134, 135, 140, 132, 133, 133, 141, 140, 138, 141, 138, 138, 142, 147, 139, 141, 141, 143, 134, 136, 139, 138, 142, 145, 135, 145, 140, 144, 143, 135, 142, 143, 136, 153, 135, 135, 146, 143, 144, 137, 135, 132, 142, 126, 141, 148, 143, 139, 141, 129, 141, 147, 144, 142, 143, 139, 132, 146, 141, 139, 137, 137, 141, 132, 132, 130, 138, 137, 142, 133, 136, 139, 128, 142, 139, 134, 136, 137, 136, 143, 133, 127, 140, 144, 131, 141, 143, 138, 142, 143, 134, 132, 140, 141, 137, 139, 132, 129, 143, 141, 141, 136, 139, 137, 140, 140, 131, 134, 146, 147, 145, 137, 135, 133, 145, 140, 137, 146, 143, 140, 140, 134, 136, 131, 137, 135, 137, 146, 144, 142, 144, 134, 141, 144, 144, 134, 131, 141, 145, 135, 130, 146, 144, 147, 141, 136, 137, 136, 135, 138, 143, 132, 139, 137, 143, 136, 144, 153, 136, 132, 136, 146, 143, 145, 139, 134, 137, 138, 135, 138, 145, 144, 137, 135, 132, 135, 146, 132, 127, 141, 145, 141, 135, 140, 132, 146, 139, 134, 137, 142, 139, 137, 135, 144, 151, 134, 132, 142, 139, 136, 147, 144, 132, 137, 135, 142, 136, 140, 142, 138, 129, 137, 142, 139, 136, 138, 140, 143, 143, 134, 139, 145, 139, 132, 139, 139, 141, 138, 141, 139, 146, 133, 136, 132, 136, 138, 144, 136, 141, 135, 137, 140, 140, 137, 140, 143, 140, 134, 140, 143, 131, 139, 138, 144, 138, 140, 141, 143, 144, 143, 143, 131, 141, 142, 141, 140, 130, 134, 134, 137, 132, 139, 138, 135, 132, 148, 147, 136, 139, 142, 135, 138, 144, 140, 142, 140, 144, 143, 144, 135, 139, 135, 132, 134, 135, 140, 142, 136, 152, 148, 137, 153, 129, 144, 143, 140, 138, 141, 136, 142, 141, 135, 147, 135, 147, 141, 137, 127, 132, 138, 138, 132, 137, 133, 149, 142, 140, 132, 141, 134, 138, 139, 135, 143, 141, 132, 139, 143, 135, 143, 137, 144, 136, 140, 138, 141, 139, 146, 132, 140, 150, 134, 139, 140, 136, 140, 137, 147, 139, 129, 144, 137, 139, 149, 140, 140, 143, 137, 126, 149, 135, 142, 142, 140, 147, 125, 141, 139, 138, 137, 141, 143, 134, 142, 139, 132, 130, 135, 144, 138, 139, 143, 138, 144, 142, 142, 139, 138, 141, 142, 136, 139, 143, 135, 143, 140, 136, 133, 146, 139, 137, 143, 151, 136, 136, 138, 143, 148, 134, 150, 138, 140, 148, 141, 135, 138, 138, 138, 146, 140, 144, 138, 139, 137, 133, 143, 136, 134, 141, 140, 146, 142, 144, 141, 144, 139, 140, 136, 140, 144, 141, 136, 145, 136, 138, 149, 136, 139, 140, 138, 136, 138, 143, 123, 139, 144, 135, 141, 142, 138, 140, 146, 137, 139, 138, 145, 140, 133, 129, 138, 138, 145, 145, 137, 145, 143, 138, 145, 134, 140, 142, 142, 141, 138, 143, 140, 145, 141, 138, 136, 136, 148, 139, 139, 141, 138, 143, 142, 142, 132, 140, 133, 132, 136, 141, 145, 135, 149, 141, 127, 145, 140, 142, 137, 137, 148, 148, 144, 139, 139, 136, 139, 133, 140, 140, 130, 137, 140, 142, 132, 140, 137, 133, 141, 143, 146, 143, 137, 142, 131, 140, 132, 148, 138, 140, 146, 135, 146, 135, 136, 137, 135, 133, 139, 142, 138, 135, 141, 142, 142, 136, 139, 137, 135, 145, 141, 142, 141, 137, 143, 142, 143, 148, 138, 136, 145, 133, 135, 137, 145, 146, 137, 144, 140, 143, 146, 143, 144, 133, 140, 143, 141, 137, 140, 140, 140, 150, 139, 136, 141, 147, 142, 137, 140, 137, 135, 138, 140, 133, 149, 136, 148, 136, 138, 136, 136, 138, 132, 144, 138, 141, 143, 145, 144, 124, 149, 141, 139, 144, 134, 133, 144, 142, 133, 137, 143, 138, 138, 147, 142, 141, 138, 141, 142, 133, 134, 136, 143, 136, 139, 142, 140, 136, 145, 141, 138, 137, 145, 135, 142, 141, 142, 143, 140, 142, 144, 133, 137, 135, 141, 135, 144, 140, 132, 140, 136, 135, 140, 142, 142, 137, 132, 144, 143, 140, 139, 136, 139, 128, 138, 139, 138, 151, 138, 138, 139, 141, 135, 143, 137, 143, 141, 143, 139, 136, 137, 138, 134, 142, 135, 142, 143, 138, 134, 139, 132, 141, 138, 133, 140, 137, 148, 139, 129, 136, 144, 137, 140, 139, 137, 146, 134, 136, 140, 143, 150, 134, 139, 147, 140, 136, 141, 139, 133, 134, 138, 134, 137, 138, 141, 134, 147, 148, 141, 145, 144, 134, 151, 145, 134, 138, 141, 141, 141, 142, 141, 136, 144, 148, 145, 145, 144, 138, 144, 132, 138, 136, 137, 140, 137, 141, 143, 138, 139, 146, 139, 136, 145, 144, 139, 134, 132, 137, 140, 133, 140, 141, 145, 137, 139, 140, 139, 137, 142, 136, 147, 141, 141, 134, 144, 139, 134, 142, 139, 138, 143, 136, 141, 137, 137, 134, 144, 138, 137, 140, 138, 143, 142, 143, 144, 132, 140, 147, 139, 140, 137, 142, 143, 144, 137, 140, 147, 135, 142, 146, 135, 140, 143, 146, 136, 133, 142, 144, 130, 145, 139, 127, 137, 145, 143, 136, 137, 136, 142, 148, 141, 145, 128, 136, 139, 141, 149, 136, 137, 132, 130, 144, 138, 141, 141, 150, 142, 142, 135, 139, 143, 132, 137, 140, 148, 144, 129, 136, 136, 138, 138, 136, 134, 148, 135, 144, 129, 137, 137, 147, 132, 146, 142, 139, 137, 126, 136, 137, 141, 137, 141, 145, 134, 144, 144, 140, 143, 137, 139, 129, 140, 131, 141, 139, 140, 135, 139, 136, 132, 141, 144, 151, 129, 144, 142, 139, 141, 152, 138, 131, 145, 137, 132, 141, 136, 132, 140, 144, 145, 143, 145, 133, 147, 130, 141, 139, 137, 139, 137, 134, 138, 138, 133, 140, 148, 128, 149, 135, 141, 134, 139, 142, 133, 139, 144, 145, 145, 142, 144, 142, 139, 141, 140, 136, 135, 142, 138, 138, 143, 137, 143, 142, 138, 139, 144, 143, 134, 128, 138, 138, 146, 135, 139, 143, 142, 142, 139, 139, 143, 131, 132, 138, 131, 140, 132, 139, 133, 146, 135, 144, 135, 140, 137, 138, 134, 137, 134, 129, 137, 141, 146, 147, 138, 133, 131, 146, 142, 141, 140, 135, 137, 135, 140, 130, 143, 138, 139, 134, 129, 136, 137, 133, 127, 151, 137, 143, 143, 139, 152, 141, 144, 139, 151, 132, 146, 143, 129, 136, 139, 139, 125, 131, 144, 136, 138, 141, 140, 140, 136, 134, 132, 134, 132, 135, 130, 146, 147, 150, 137, 145, 129, 142, 137, 134, 144, 140, 145, 142, 140, 140, 131, 147, 145, 143, 142, 139, 142, 135, 147, 141, 142, 138, 137, 139, 145, 149, 145, 141, 147, 141, 140, 139, 141, 132, 139, 140, 141, 144, 135, 138, 141, 139, 132, 129, 139, 130, 143, 143, 133, 142, 144, 144, 136, 139, 138, 137, 144, 142, 145, 136, 135, 142, 145, 137, 136, 141, 144, 147, 146, 133, 138, 142, 140, 132, 139, 137, 146, 135, 140, 142, 140, 150, 136, 147, 127, 132, 134, 144, 139, 139, 138, 132, 131, 124, 142, 143, 145, 146, 143, 139, 136, 134, 142, 142, 142, 138, 143, 140, 130, 138, 135, 140, 131, 143, 129, 132, 145, 140, 134, 132, 139, 137, 138, 143, 141, 142, 132, 141, 145, 143, 131, 134, 135, 151, 147, 140, 138, 140, 129, 136, 137, 135, 134, 139, 150, 140, 135, 144, 138, 135, 140, 134, 136, 141, 141, 134, 137, 141, 135, 140, 135, 159, 137, 125, 135, 128, 142, 139, 144, 142, 141, 137, 136, 136, 140, 141, 141, 139, 140, 140, 141, 129, 152, 132, 135, 146, 132, 143, 138, 140, 131, 141, 135, 142, 144, 142, 143, 152, 141, 144, 135, 141, 135, 133, 157, 144, 134, 149, 135, 142, 141, 137, 140, 141, 137, 138, 138, 159, 133, 140, 140, 146, 128, 140, 138, 135, 136, 136, 139, 136, 132, 136, 134, 132, 135, 132, 129, 137, 143, 136, 142, 143, 134, 138, 135, 141, 146, 132, 140, 138, 149, 138, 134, 144, 142, 137, 136, 152, 130, 142, 143, 137, 136, 146, 141, 156, 134, 128, 138, 131, 132, 136, 136, 136, 134, 138, 141, 139, 138, 139, 138, 129, 151, 138, 136, 144, 139, 140, 146, 139, 142, 134, 149, 143, 147, 139, 141, 128, 134, 150, 146, 145, 137, 140, 133, 138, 135, 133, 139, 144, 144, 138, 138, 131, 143, 137, 138, 135, 134, 140, 142, 143, 132, 139, 129, 143, 143, 144, 128, 146, 152, 126, 142, 144, 138, 134, 125, 136, 143, 138, 142, 136, 145, 137, 137, 136, 149, 137, 135, 139, 132, 131, 144, 144, 146, 151, 141, 142, 129, 139, 136, 146, 138, 135, 134, 135, 137, 136, 135, 134, 130, 144, 143, 136, 138, 130, 141, 141, 141, 143, 135, 137, 136, 132, 136, 133, 134, 128, 141, 139, 139, 151, 131, 141, 148, 141, 141, 149, 128, 137, 134, 140, 131, 123, 146, 134, 152, 129, 135, 139, 134, 133, 142, 124, 139, 141, 134, 150, 142, 137, 137, 137, 135, 141, 128, 129, 131, 145, 139, 136, 133, 145, 135, 144, 142, 138, 150, 135, 137, 133, 141, 135, 142, 133, 136, 140, 137, 135, 137, 136, 141, 144, 135, 142, 153, 136, 148, 146, 128, 143, 135, 140, 143, 138, 137, 146, 136, 143, 144, 135, 144, 134, 151, 147, 143, 145, 141, 144, 138, 141, 143, 137, 140, 144, 135, 134, 142, 133, 145, 133, 140, 133, 145, 139, 134, 142, 139, 141, 142, 141, 138, 144, 137, 142, 143, 135, 139, 131, 135, 138, 138, 142, 132, 139, 133, 142, 141, 147, 136, 137, 135, 146, 142, 137, 142, 141, 138, 137, 139, 132, 134, 138, 128, 139, 122, 140, 134, 134, 130, 137, 145, 141, 134, 141, 131, 137, 136, 139, 145, 140, 139, 131, 150, 144, 141, 134, 140, 137, 137, 143, 132, 137, 135, 129, 147, 148, 139, 129, 139, 141, 139, 133, 136, 136, 138, 135, 133, 143, 144, 131, 139, 138, 152, 144, 148, 141, 136, 144, 138, 126, 142, 136, 137, 144, 139, 141, 141, 144, 139, 133, 139, 138, 138, 143, 135, 137, 145, 133, 136, 141, 140, 141, 139, 142, 145, 146, 146, 143, 142, 140, 141, 140, 128, 138, 144, 138, 143, 137, 129, 134, 129, 139, 137, 134, 137, 138, 141, 140, 139, 138, 142, 138, 137, 130, 145, 139, 143, 150, 132, 140, 134, 141, 135, 139, 147, 134, 142, 128, 140, 141, 144, 140, 127, 140, 140, 135, 143, 138, 134, 136, 146, 136, 146, 147, 144, 143, 132, 138, 134, 132, 138, 141, 137, 144, 136, 136, 138, 143, 144, 144, 136, 136, 137, 148, 141, 140, 134, 127, 137, 142, 150, 136, 138, 139, 136, 148, 134, 139, 143, 141, 152, 134, 141, 145, 129, 138, 135, 134, 145, 137, 137, 131, 146, 142, 136, 141, 146, 137, 140, 138, 133, 140, 128, 135, 142, 135, 141, 145, 135, 146, 138, 138, 144, 139, 136, 141, 149, 132, 137, 125, 141, 136, 139, 134, 136, 137, 139, 138, 138, 152, 135, 142, 136, 132, 146, 137, 140, 144, 133, 141, 132, 141, 141, 138, 133, 139, 136, 132, 144, 131, 136, 139, 137, 137, 140, 136, 140, 129, 142, 147, 142, 151, 131, 144, 128, 127, 138, 147, 126, 137, 142, 143, 140, 135, 132, 141, 148, 141, 151, 136, 134, 133, 138, 126, 125, 153, 127, 132, 156, 142, 132, 141, 155, 136, 135, 146, 138, 130, 144, 146, 141, 139, 140, 150, 134, 139, 147, 137, 142, 140, 133, 128, 141, 140, 127, 133, 146, 131, 140, 142, 143, 131, 141, 113, 130, 135, 146, 143, 139, 140, 135, 132, 141, 137, 149, 146, 137, 145, 134, 141, 137, 146, 134, 131, 143, 142, 136, 136, 134, 144, 136, 133, 141, 143, 141, 138, 135, 137, 141, 146, 143, 146, 136, 136, 125, 135, 138, 145, 152, 132, 142, 134, 149, 145, 135, 144, 128, 138, 138, 147, 147, 136, 142, 143, 149, 132, 138, 135, 137, 141, 139, 141, 146, 135, 132, 141, 135, 133, 147, 141, 143, 147, 135, 145, 142, 145, 144, 131, 129, 144, 125, 128, 134, 141, 139, 131, 139, 127, 147, 147, 145, 137, 143, 131, 131, 134, 140, 151, 146, 144, 151, 144, 151, 142, 129, 136, 136, 137, 132, 149, 135, 145, 138, 143, 146, 132, 119, 137, 133, 132, 141, 143, 140, 143, 135, 145, 129, 126, 154, 137, 141, 130, 131, 133, 153, 134, 130, 129, 141, 135, 139, 138, 148, 144, 139, 148, 132, 134, 135, 139, 140, 152, 142, 143, 148, 138, 144, 133, 132, 151, 152, 142, 137, 149, 131, 133, 128, 135, 155, 139, 135, 141, 144, 135, 132, 135, 138, 146, 139, 135, 134, 129, 143, 153, 132, 135, 144, 144, 150, 155, 145, 142, 130, 143, 142, 138, 135, 135, 142, 139, 151, 140, 147, 138, 134, 139, 142, 150, 139, 133, 140, 152, 138, 138, 138, 133, 133, 123, 131, 144, 149, 143, 132, 149, 146, 137, 128, 139, 138, 140, 128, 141, 148, 141, 129, 128, 155, 138, 133, 136, 136, 129, 154, 140, 133, 138, 132, 139, 131, 142, 133, 127, 130, 145, 151, 141, 147, 144, 135, 151, 139, 134, 147, 147, 144, 131, 138, 132, 145, 147, 142, 137, 132, 139, 124, 144, 138, 148, 140, 138, 144, 148, 138, 142, 148, 131, 122, 134, 141, 142, 145, 144, 129, 139, 144, 149, 131, 144, 137, 137, 137, 137, 158, 136, 133, 137, 141, 127, 140, 126, 142, 138, 141, 141, 133, 144, 150, 141, 139, 153, 128, 137, 134, 147, 140, 133, 125, 138, 144, 137, 139, 127, 133, 142, 130, 131, 146, 138, 141, 140, 144, 136, 137, 136, 145, 127, 138, 139, 134, 137, 138, 143, 140, 140, 146, 148, 134, 145, 147, 133, 133, 151, 146, 142, 149, 142, 140, 132, 141, 137, 145, 139, 140, 139, 135, 144, 136, 138, 128, 143, 148, 140, 128, 140, 153, 134, 136, 139, 135, 145, 134, 133, 144, 140, 146, 140, 142, 153, 142, 139, 133, 129, 140, 150, 135, 141, 138, 146, 134, 128, 149, 143, 144, 128, 138, 131, 135, 137, 144, 126, 147, 145, 132, 150, 152, 134, 157, 135, 142, 132, 131, 141, 139, 143, 138, 146, 144, 139, 132, 144, 134, 143, 135, 150, 144, 144, 140, 147, 137, 133, 139, 135, 142, 141, 142, 141, 140, 131, 146, 140, 143, 147, 141, 143, 139, 143, 143, 134, 133, 146, 146, 140, 147, 141, 134, 135, 140, 145, 143, 147, 139, 142, 145, 144, 146, 141, 136, 144, 143, 138, 139, 138, 129, 138, 141, 141, 135, 134, 137, 134, 140, 147, 136, 136, 135, 125, 142, 135, 142, 137, 138, 149, 140, 135, 134, 144, 141, 138, 136, 141, 140, 142, 133, 138, 138, 136, 144, 137, 138, 132, 138, 138, 138, 142, 138, 148, 145, 130, 140, 137, 145, 137, 142, 141, 147, 132, 142, 138, 137, 133, 139, 130, 134, 145, 134, 135, 135, 135, 138, 136, 132, 141, 138, 138, 140, 138, 141, 138, 140, 133, 139, 130, 139, 136, 141, 140, 147, 136, 145, 137, 139, 140, 140, 140, 141, 130, 136, 137, 143, 144, 131, 146, 149, 138, 138, 136, 135, 140, 137, 135, 136, 137, 138, 135, 140, 135, 138, 133, 143, 137, 137, 136, 139, 143, 140, 136, 135, 146, 137, 144, 142, 131, 144, 143, 146, 140, 145, 139, 141, 134, 139, 136, 142, 139, 133, 143, 139, 142, 135, 138, 144, 134, 135, 143, 129, 138, 143, 141, 142, 147, 146, 135, 136, 142, 139, 137, 139, 127, 152, 137, 140, 137, 145, 144, 142, 134, 140, 125, 141, 142, 130, 131, 137, 144, 140, 130, 127, 128, 139, 140, 143, 135, 140, 145, 137, 146, 139, 136, 143, 140, 145, 144, 136, 145, 152, 139, 130, 141, 142, 138, 143, 141, 130, 140, 151, 143, 143, 138, 141, 131, 138, 133, 154, 143, 142, 140, 136, 139, 139, 141, 135, 136, 140, 152, 140, 137, 134, 140, 128, 146, 141, 133, 144, 145, 139, 132, 136, 142, 145, 139, 137, 136, 140, 132, 145, 142, 140, 142, 141, 141, 139, 132, 134, 132, 140, 141, 129, 141, 152, 138, 132, 145, 134, 150, 141, 135, 142, 120, 145, 138, 133, 142, 136, 139, 141, 137, 139, 149, 148, 139, 136, 131, 130, 138, 136, 139, 141, 141, 139, 141, 143, 140, 132, 146, 148, 141, 139, 135, 143, 140, 141, 127, 130, 142, 144, 142, 139, 134, 131, 137, 141, 143, 137, 142, 143, 142, 139, 121, 132, 144, 133, 139, 139, 143, 138, 148, 137, 139, 135, 141, 136, 143, 138, 133, 143, 137, 134, 141, 144, 134, 139, 136, 138, 140, 145, 131, 136, 134, 130, 134, 140, 140, 144, 142, 138, 132, 145, 141, 150, 137, 140, 144, 134, 145, 145, 142, 140, 145, 147, 139, 148, 136, 132, 143, 144, 137, 141, 141, 149, 130, 143, 139, 140, 141, 135, 137, 137, 138, 138, 139, 133, 139, 132, 145, 141, 137, 145, 143, 142, 145, 129, 137, 146, 138, 137, 144, 140, 139, 134, 141, 134, 147, 136, 147, 135, 139, 138, 138, 144, 134, 139, 136, 139, 142, 136, 138, 135, 134, 139, 138, 133, 133, 140, 136, 136, 144, 145, 136, 140, 138, 135, 141, 141, 139, 137, 140, 140, 136, 133, 142, 132, 140, 148, 141, 144, 132, 139, 137, 140, 143, 139, 137, 134, 136, 128, 146, 139, 134, 136, 139, 143, 139, 140, 132, 141, 132, 133, 146, 135, 139, 143, 141, 140, 143, 143, 144, 133, 135, 138, 140, 152, 145, 135, 136, 136, 133, 140, 137, 141, 142, 141, 125, 134, 147, 140, 133, 135, 138, 135, 133, 148, 137, 129, 135, 137, 141, 137, 131, 136, 136, 137, 143, 142, 130, 140, 140, 143, 135, 146, 134, 135, 141, 136, 137, 138, 136, 136, 144, 140, 145, 134, 135, 131, 144, 132, 138, 137, 136, 145, 142, 137, 140, 142, 143, 136, 140, 140, 135, 140, 144, 138, 141, 138, 137, 144, 141, 133, 144, 138, 138, 145, 137, 138, 141, 131, 132, 142, 143, 143, 137, 132, 132, 133, 142, 139, 137, 135, 139, 143, 132, 140, 141, 142, 130, 134, 135, 135, 144, 155, 134, 139, 143, 142, 134, 138, 138, 143, 140, 138, 136, 136, 150, 135, 150, 137, 140, 145, 142, 138, 143, 147, 138, 138, 136, 133, 145, 140, 138, 141, 151, 136, 136, 139, 142, 142, 136, 139, 145, 139, 131, 144, 138, 140, 135, 138, 141, 143, 136, 136, 143, 141, 142, 136, 146, 137, 138, 134, 138, 141, 140, 140, 138, 139, 142, 135, 138, 132, 133, 139, 133, 146, 130, 133, 142, 135, 131, 135, 134, 137, 135, 134, 135, 141, 144, 132, 127, 138, 138, 142, 141, 138, 136, 149, 136, 135, 154, 137, 142, 137, 141, 138, 136, 146, 136, 151, 139, 140, 140, 132, 136, 147, 146, 135, 140, 139, 136, 140, 149, 137, 142, 136, 144, 135, 141, 140, 141, 141, 141, 139, 135, 131, 143, 137, 145, 133, 144, 144, 143, 139, 144, 135, 132, 135, 135, 135, 146, 137, 142, 145, 145, 144, 144, 142, 144, 142, 138, 140, 140, 135, 134, 145, 144, 140, 141, 137, 138, 136, 130, 135, 136, 134, 138, 141, 145, 126, 131, 136, 135, 142, 141, 133, 133, 138, 140, 138, 145, 141, 136, 135, 133, 137, 124, 139, 144, 135, 140, 143, 132, 135, 129, 144, 143, 140, 136, 136, 135, 140, 140, 141, 141, 138, 140, 134, 143, 137, 138, 134, 145, 138, 138, 138, 139, 142, 142, 140, 139, 133, 135, 138, 134, 147, 136, 134, 149, 133, 143, 144, 135, 131, 138, 136, 135, 146, 141, 139, 131, 144, 136, 137, 148, 144, 133, 137, 141, 138, 141, 142, 142, 140, 133, 132, 137, 142, 132, 136, 143, 140, 138, 136, 144, 152, 147, 137, 150, 138, 138, 132, 138, 136, 138, 137, 142, 139, 138, 134, 138, 142, 140, 134, 145, 142, 134, 134, 136, 138, 145, 143, 139, 139, 140, 130, 136, 135, 134, 141, 147, 142, 133, 136, 143, 135, 140, 143, 138, 133, 133, 136, 137, 139, 140, 134, 136, 139, 139, 140, 142, 132, 147, 134, 150, 133, 134, 145, 138, 141, 124, 133, 132, 136, 138, 132, 132, 155, 147, 138, 138, 139, 147, 141, 143, 139, 140, 142, 140, 143, 134, 140, 135, 136, 139, 132, 142, 139, 131, 141, 134, 139, 134, 133, 138, 140, 143, 135, 139, 140, 146, 133, 138, 139, 136, 142, 142, 138, 145, 148, 132, 140, 139, 141, 140, 141, 134, 131, 139, 137, 139, 133, 142, 147, 139, 138, 139, 133, 139, 133, 147, 138, 140, 132, 134, 137, 147, 141, 141, 148, 136, 134, 137, 140, 134, 138, 140, 142, 139, 134, 137, 146, 135, 140, 138, 147, 136, 137, 142, 134, 135, 139, 131, 138, 144, 135, 147, 139, 140, 137, 140, 135, 140, 139, 134, 139, 136, 139, 137, 147, 140, 147, 145, 140, 141, 139, 139, 136, 136, 141, 133, 135, 139, 138, 139, 132, 138, 140, 139, 132, 152, 140, 147, 147, 134, 154, 140, 138, 144, 137, 139, 141, 141, 144, 140, 145, 153, 136, 144, 133, 148, 141, 149, 132, 135, 143, 147, 144, 134, 142, 141, 141, 150, 138, 143, 138, 131, 141, 142, 144, 140, 133, 143, 137, 134, 135, 129, 138, 131, 142, 141, 137, 141, 145, 141, 137, 139, 139, 139, 147, 132, 139, 133, 131, 133, 140, 146, 148, 133, 135, 144, 146, 127, 140, 134, 136, 133, 141, 142, 138, 137, 144, 121, 135, 139, 136, 142, 143, 140, 143, 148, 143, 138, 134, 141, 131, 135, 129, 136, 141, 144, 144, 145, 134, 141, 146, 135, 140, 139, 140, 142, 140, 142, 137, 145, 137, 141, 138, 140, 137, 146, 136, 143, 141, 138, 139, 146, 140, 145, 140, 150, 138, 136, 142, 145, 143, 137, 141, 138, 135, 139, 130, 142, 147, 144, 133, 134, 148, 137, 135, 133, 141, 137, 141, 146, 144, 134, 136, 143, 132, 135, 140, 143, 134, 140, 139, 131, 124, 142, 134, 141, 137, 140, 137, 137, 137, 126, 135, 140, 139, 140, 136, 136, 140, 134, 131, 144, 145, 136, 131, 145, 137, 145, 143, 140, 138, 138, 140, 141, 136, 138, 139, 140, 134, 136, 135, 140, 137, 145, 131, 143, 145, 148, 148, 151, 133, 140, 132, 143, 139, 138, 144, 134, 136, 145, 135, 132, 137, 140, 143, 154, 143, 138, 136, 130, 134, 135, 144, 142, 142, 142, 144, 141, 139, 133, 139, 144, 136, 137, 146, 143, 140, 140, 139, 135, 137, 133, 142, 140, 138, 143, 138, 139, 140, 150, 137, 143, 144, 142, 142, 136, 140, 138, 139, 136, 140, 135, 128, 139, 136, 134, 139, 136, 149, 134, 139, 145, 133, 148, 139, 139, 137, 136, 141, 136, 144, 143, 137, 136, 134, 142, 136, 152, 134, 133, 132, 137, 146, 144, 126, 148, 143, 138, 138, 141, 133, 140, 143, 139, 137, 137, 136, 145, 138, 140, 139, 136, 138, 131, 141, 142, 139, 139, 141, 133, 140, 144, 143, 131, 143, 146, 138, 144, 141, 142, 136, 136, 139, 146, 136, 134, 138, 138, 137, 138, 138, 140, 136, 135, 139, 141, 131, 148, 137, 134, 140, 139, 138, 137, 146, 139, 141, 138, 126, 141, 132, 143, 143, 144, 136, 137, 137, 146, 136, 139, 142, 137, 140, 137, 141, 139, 143, 149, 141, 138, 137, 135, 153, 143, 130, 134, 149, 139, 136, 142, 138, 137, 142, 143, 144, 142, 141, 137, 140, 136, 139, 142, 139, 136, 139, 141, 142, 138, 140, 139, 140, 143, 142, 140, 139, 140, 138, 139, 144, 138, 140, 142, 137, 142, 143, 139, 138, 139, 140, 142, 138, 137, 143, 143, 139, 137, 136, 139, 138, 130, 144, 136, 138, 141, 139, 140, 142, 137, 132, 140, 142, 137, 136, 140, 133, 135, 139, 137, 139, 138, 135, 134, 141, 139, 137, 143, 139, 141, 142, 140, 138, 143, 144, 146, 143, 136, 138, 143, 137, 140, 141, 139, 141, 138, 140, 139, 145, 142, 139, 138, 137, 141, 132, 140, 142, 141, 139, 144, 139, 145, 141, 143, 138, 140, 138, 135, 139, 138, 139, 139, 138, 138, 137, 138, 139, 137, 139, 135, 141, 140, 138, 137, 139, 140, 137, 140, 135, 140, 146, 136, 135, 137, 140, 145, 137, 140, 139, 143, 138, 136, 140, 143, 136, 139, 141, 143, 139, 135, 138, 137, 141, 141, 147, 139, 143, 136, 140, 139, 135, 133, 139, 142, 141, 139, 137, 139, 140, 139, 139, 136, 140, 144, 140, 141, 139, 140, 139, 141, 140, 143, 142, 138, 138, 141, 140, 140, 139, 142, 141, 140, 138, 138, 143, 136, 143, 144, 134, 135, 136, 137, 147, 138, 136, 142, 136, 140, 143, 146, 138, 136, 136, 139, 139, 138, 138, 139, 138, 142, 141, 139, 136, 138, 142, 140, 142, 140, 146, 140, 141, 141, 137, 136, 137, 143, 140, 139, 137, 143, 142, 139, 137, 142, 134, 135, 147, 137, 137, 141, 136, 141, 138, 140, 140, 138, 144, 136, 137, 136, 134, 140, 135, 138, 147, 137, 135, 140, 142, 138, 134, 135, 138, 137, 134, 136, 141, 138, 143, 139, 140, 140, 136, 137, 137, 134, 140, 139, 142, 135, 137, 137, 138, 135, 140, 137, 145, 142, 141, 140, 143, 138, 136, 142, 142, 138, 139, 140, 137, 136, 138, 137, 136, 133, 134, 140, 140, 138, 139, 136, 139, 139, 138, 140, 138, 140, 140, 142, 140, 136, 137, 139, 143, 141, 136, 136, 139, 139, 140, 135, 139, 132, 135, 139, 144, 143, 136, 140, 137, 137, 139, 133, 140, 140, 137, 143, 138, 141, 134, 135, 144, 144, 144, 134, 138, 139, 140, 140, 135, 141, 136, 139, 140, 139, 138, 141, 138, 139, 138, 144, 138, 139, 134, 145, 136, 137, 139, 136, 143, 133, 139, 139, 142, 134, 141, 137, 141, 138, 137, 142, 138, 135, 136, 136, 137, 140, 140, 132, 145, 135, 144, 141, 137, 140, 136, 139, 139, 136, 140, 142, 140, 142, 139, 146, 137, 138, 138, 143, 139, 139, 139, 137, 141, 137, 142, 141, 141, 142, 137, 138, 140, 143, 142, 138, 140, 137, 142, 140, 139, 139, 135, 142, 141, 140, 147, 140, 150, 141, 138, 137, 137, 142, 142, 140, 139, 140, 140, 138, 139, 137, 143, 136, 140, 135, 137, 135, 139, 141, 144, 136, 141, 142, 141, 138, 143, 138, 141, 136, 135, 140, 136, 140, 143, 140, 139, 141, 142, 133, 142, 141, 140, 136, 135, 131, 146, 136, 148, 135, 140, 142, 133, 138, 141, 133, 132, 148, 138, 143, 138, 133, 144, 138, 150, 136, 145, 144, 138, 147, 144, 135, 141, 140, 139, 153, 139, 139, 137, 135, 142, 136, 148, 144, 140, 140, 131, 148, 139, 141, 138, 133, 133, 131, 136, 137, 141, 142, 141, 143, 134, 134, 144, 141, 142, 142, 143, 148, 133, 137, 138, 140, 140, 143, 138, 140, 125, 141, 140, 139, 164, 133, 144, 147, 132, 143, 137, 136, 138, 138, 140, 142, 139, 130, 139, 135, 127, 138, 138, 133, 136, 136, 139, 143, 145, 137, 133, 142, 141, 139, 143, 138, 143, 142, 132, 141, 141, 143, 133, 136, 134, 140, 126, 136, 139, 141, 144, 138, 137, 132, 130, 141, 137, 131, 139, 134, 143, 137, 147, 140, 131, 136, 132, 140, 139, 132, 149, 143, 140, 136, 142, 138, 149, 140, 132, 139, 141, 139, 131, 142, 153, 138, 139, 154, 133, 140, 141, 141, 138, 140, 137, 146, 140, 142, 130, 129, 141, 142, 143, 137, 141, 154, 142, 137, 132, 145, 131, 144, 140, 134, 138, 140, 136, 135, 138, 147, 143, 140, 142, 139, 133, 136, 141, 142, 140, 133, 131, 141, 141, 136, 136, 143, 138, 133, 140, 129, 150, 144, 137, 142, 148, 140, 136, 135, 146, 144, 138, 141, 140, 136, 135, 137, 136, 143, 138, 142, 138, 133, 139, 139, 144, 140, 140, 138, 138, 152, 142, 140, 138, 137, 136, 134, 143, 133, 136, 132, 140, 145, 139, 139, 134, 159, 140, 144, 145, 136, 148, 138, 141, 144, 131, 147, 139, 147, 137, 138, 139, 142, 137, 141, 134, 141, 142, 136, 136, 148, 147, 144, 142, 127, 144, 145, 139, 137, 139, 136, 138, 138, 139, 135, 137, 139, 147, 136, 145, 134, 145, 131, 151, 134, 136, 134, 136, 138, 135, 147, 139, 145, 137, 146, 142, 137, 140, 145, 129, 151, 135, 140, 138, 136, 133, 130, 139, 138, 135, 135, 137, 141, 137, 134, 142, 131, 140, 144, 139, 138, 142, 144, 136, 138, 147, 144, 142, 149, 139, 138, 134, 138, 148, 141, 141, 135, 136, 143, 135, 135, 139, 139, 139, 142, 136, 137, 139, 136, 141, 138, 144, 133, 145, 140, 134, 139, 133, 144, 132, 142, 136, 133, 132, 131, 139, 132, 136, 141, 134, 134, 138, 139, 140, 141, 136, 143, 138, 141, 132, 128, 142, 145, 137, 141, 135, 138, 145, 140, 136, 146, 141, 138, 136, 142, 133, 136, 143, 140, 144, 143, 144, 138, 140, 136, 140, 133, 144, 136, 139, 131, 133, 137, 135, 142, 133, 143, 146, 141, 137, 146, 143, 132, 140, 135, 141, 140, 138, 137, 141, 141, 138, 146, 136, 135, 146, 135, 134, 147, 137, 148, 136, 139, 137, 127, 143, 140, 140, 138, 138, 139, 125, 133, 145, 146, 125, 141, 134, 141, 138, 142, 135, 139, 137, 135, 139, 133, 142, 140, 133, 152, 137, 138, 144, 137, 142, 137, 146, 136, 144, 135, 140, 135, 135, 147, 136, 134, 134, 142, 136, 139, 138, 141, 149, 138, 140, 146, 134, 142, 138, 142, 140, 131, 138, 138, 141, 139, 136, 139, 149, 141, 137, 141, 142, 141, 136, 131, 146, 141, 134, 138, 159, 149, 138, 153, 137, 142, 144, 131, 137, 142, 139, 145, 147, 139, 151, 139, 138, 146, 134, 132, 133, 138, 139, 118, 134, 136, 138, 136, 137, 134, 135, 136, 138, 128, 136, 143, 142, 138, 144, 144, 134, 139, 138, 144, 146, 145, 140, 148, 145, 139, 137, 144, 141, 137, 140, 139, 134, 137, 141, 134, 145, 131, 140, 139, 137, 140, 141, 133, 135, 140, 135, 141, 140, 138, 138, 137, 132, 144, 142, 127, 131, 141, 146, 126, 138, 135, 140, 137, 142, 143, 145, 142, 136, 136, 131, 143, 136, 135, 142, 133, 142, 138, 144, 137, 141, 144, 144, 145, 136, 136, 140, 133, 145, 142, 139, 144, 139, 140, 138, 139, 134, 143, 144, 136, 143, 139, 141, 139, 140, 145, 143, 141, 140, 145, 138, 135, 136, 144, 135, 141, 142, 133, 137, 137, 135, 143, 136, 138, 134, 136, 155, 139, 136, 143, 137, 141, 135, 139, 138, 138, 142, 140, 142, 143, 140, 138, 137, 141, 138, 142, 134, 136, 134, 139, 141, 141, 127, 142, 144, 134, 136, 140, 142, 133, 141, 139, 136, 140, 137, 135, 137, 142, 132, 139, 136, 142, 137, 141, 131, 139, 140, 139, 136, 139, 132, 133, 142, 141, 134, 144, 139, 132, 137, 132, 138, 136, 135, 135, 134, 144, 142, 140, 142, 141, 138, 134, 137, 141, 148, 148, 136, 143, 147, 138, 146, 134, 135, 141, 133, 138, 138, 141, 138, 144, 138, 131, 127, 134, 147, 140, 137, 137, 146, 145, 133, 136, 137, 140, 143, 140, 140, 139, 135, 138, 140, 134, 137, 141, 143, 136, 137, 130, 136, 138, 143, 140, 140, 142, 143, 141, 131, 141, 134, 133, 140, 141, 149, 140, 138, 144, 134, 136, 135, 142, 144, 144, 139, 144, 141, 140, 139, 139, 154, 137, 142, 137, 135, 132, 144, 138, 139, 149, 137, 141, 145, 145, 143, 143, 138, 127, 145, 139, 132, 141, 143, 143, 131, 137, 137, 136, 137, 129, 143, 138, 140, 136, 141, 142, 138, 140, 141, 143, 142, 139, 144, 130, 141, 136, 140, 139, 123, 137, 138, 138, 135, 141, 134, 146, 135, 141, 138, 134, 133, 135, 131, 130, 125, 141, 140, 136, 144, 141, 142, 139, 137, 155, 138, 129, 132, 143, 142, 136, 141, 138, 138, 135, 134, 136, 136, 139, 138, 139, 135, 142, 134, 139, 135, 140, 138, 130, 134, 148, 137, 134, 134, 148, 138, 146, 149, 140, 139, 140, 139, 135, 141, 140, 143, 138, 142, 138, 138, 135, 131, 136, 142, 131, 138, 132, 140, 143, 143, 144, 145, 140, 137, 134, 138, 140, 139, 143, 140, 137, 140, 131, 139, 139, 139, 138, 139, 133, 141, 141, 140, 142, 137, 142, 139, 135, 143, 129, 142, 142, 137, 141, 135, 133, 135, 137, 138, 134, 146, 133, 140, 147, 142, 139, 140, 141, 142, 135, 138, 139, 139, 137, 136, 138, 142, 138, 133, 136, 138, 143, 136, 138, 141, 140, 138, 134, 137, 138, 136, 142, 140, 140, 140, 138, 137, 132, 136, 137, 137, 140, 134, 139, 137, 136, 142, 140, 136, 137, 134, 137, 140, 140, 139, 139, 136, 137, 134, 141, 135, 132, 140, 135, 138, 140, 135, 141, 142, 140, 142, 134, 142, 141, 137, 139, 140, 139, 138, 141, 136, 142, 138, 145, 143, 139, 140, 140, 137, 137, 139, 134, 138, 144, 139, 138, 137, 139, 140, 138, 140, 136, 142, 139, 138, 140, 137, 142, 136, 136, 142, 139, 138, 134, 135, 140, 140, 140, 140, 139, 139, 141, 134, 134, 143, 139, 133, 145, 136, 140, 140, 140, 139, 136, 137, 135, 140, 142, 141, 140, 133, 140, 138, 137, 139, 142, 138, 134, 143, 138, 136, 143, 137, 137, 137, 137, 140, 137, 141, 137, 139, 138, 134, 138, 136, 136, 141, 137, 139, 134, 136, 143, 142, 142, 138, 140, 140, 137, 142, 141, 134, 139, 140, 140, 142, 138, 139, 136, 138, 142, 137, 141, 139, 139, 142, 138, 134, 137, 146, 141, 140, 139, 139, 138, 141, 134, 134, 140, 141, 141, 136, 137, 142, 140, 140, 137, 138, 135, 142, 141, 138, 135, 142, 141, 137, 142, 138, 143, 137, 144, 137, 141, 139, 137, 135, 141, 137, 138, 139, 139, 140, 140, 136, 138, 139, 143, 138, 140, 133, 135, 137, 141, 137, 137, 141, 140, 139, 135, 138, 138, 144, 139, 139, 137, 139, 137, 136, 138, 137, 140, 136, 137, 140, 144, 140, 138, 138, 138, 136, 141, 137, 143, 144, 143, 140, 139, 135, 132, 139, 137, 143, 137, 142, 135, 140, 139, 140, 141, 139, 141, 142, 138, 141, 143, 142, 135, 140, 137, 141, 139, 140, 140, 139, 136, 139, 136, 139, 141, 141, 134, 138, 143, 145, 138, 140, 140, 138, 136, 139, 139, 142, 140, 141, 143, 139, 141, 139, 138, 138, 140, 143, 141, 138, 131, 135, 138, 137, 138, 138, 137, 145, 138, 138, 134, 141, 136, 142, 141, 140, 137, 138, 138, 142, 142, 136, 141, 138, 136, 135, 144, 141, 137, 142, 140, 147, 137, 135, 138, 138, 137, 135, 142, 136, 142, 136, 140, 135, 139, 141, 136, 135, 142, 143, 140, 140, 138, 138, 137, 141, 137, 138, 134, 137, 134, 140, 136, 138, 137, 138, 144, 137, 133, 137, 140, 140, 136, 140, 137, 136, 140, 140, 138, 138, 144, 142, 142, 137, 140, 140, 143, 141, 143, 139, 136, 138, 136, 140, 135, 138, 140, 138, 137, 136, 145, 138, 138, 137, 141, 139, 145, 138, 139, 135, 140, 135, 138, 139, 138, 140, 139, 140, 143, 137, 138, 135, 141, 141, 140, 141, 141, 138, 141, 145, 136, 138, 137, 143, 137, 137, 137, 138, 138, 134, 138, 143, 138, 142, 140, 138, 140, 139, 137, 140, 139, 139, 142, 132, 138, 143, 136, 138, 133, 140, 143, 143, 141, 141, 144, 139, 139, 136, 140, 137, 139, 135, 138, 137, 137, 135, 139, 138, 144, 137, 143, 147, 134, 135, 139, 139, 139, 133, 140, 142, 136, 135, 134, 144, 132, 137, 141, 138, 133, 143, 132, 150, 139, 133, 144, 143, 139, 151, 141, 151, 140, 140, 138, 134, 142, 136, 138, 133, 140, 147, 136, 134, 144, 140, 138, 129, 140, 136, 137, 138, 131, 143, 141, 139, 133, 138, 142, 148, 142, 144, 144, 144, 144, 140, 126, 132, 136, 143, 144, 138, 138, 132, 133, 142, 134, 133, 133, 139, 138, 139, 138, 130, 133, 130, 131, 142, 136, 137, 137, 133, 130, 143, 126, 138, 135, 140, 143, 133, 141, 141, 137, 137, 147, 132, 139, 138, 137, 150, 150, 141, 137, 138, 131, 136, 141, 140, 137, 147, 137, 142, 147, 145, 141, 140, 139, 139, 130, 146, 134, 132, 150, 132, 130, 144, 141, 140, 141, 135, 135, 136, 139, 141, 143, 142, 148, 141, 143, 137, 149, 134, 142, 141, 146, 131, 143, 138, 144, 136, 148, 142, 131, 136, 136, 137, 139, 137, 145, 142, 127, 137, 139, 139, 135, 141, 130, 138, 142, 149, 147, 133, 140, 144, 143, 135, 130, 133, 146, 142, 132, 151, 131, 152, 139, 137, 148, 139, 134, 149, 137, 138, 139, 142, 143, 151, 139, 145, 135, 144, 130, 127, 131, 138, 145, 140, 137, 143, 137, 139, 136, 131, 136, 139, 144, 143, 138, 145, 133, 142, 134, 141, 144, 139, 141, 142, 143, 143, 131, 136, 142, 144, 135, 131, 140, 144, 137, 138, 140, 137, 141, 147, 148, 132, 138, 144, 132, 137, 138, 137, 136, 133, 141, 136, 140, 147, 141, 141, 138, 147, 139, 142, 136, 140, 135, 136, 133, 137, 138, 141, 141, 142, 140, 137, 149, 136, 142, 130, 140, 129, 143, 147, 136, 136, 134, 135, 138, 133, 138, 133, 149, 139, 133, 143, 137, 141, 135, 133, 140, 137, 134, 133, 131, 137, 135, 136, 147, 133, 140, 139, 138, 138, 138, 143, 137, 140, 136, 137, 137, 141, 138, 136, 131, 135, 141, 142, 142, 131, 134, 137, 145, 137, 141, 147, 135, 136, 128, 141, 138, 139, 143, 140, 138, 140, 129, 139, 141, 147, 140, 140, 138, 139, 136, 134, 136, 127, 145, 149, 139, 140, 139, 139, 136, 137, 135, 138, 140, 136, 142, 142, 143, 141, 144, 139, 138, 140, 138, 134, 137, 137, 148, 146, 143, 142, 134, 143, 154, 143, 137, 139, 142, 147, 143, 139, 134, 136, 143, 133, 142, 138, 138, 129, 138, 139, 140, 142, 153, 136, 140, 140, 149, 144, 125, 135, 137, 132, 139, 139, 132, 137, 138, 141, 129, 149, 138, 143, 141, 139, 139, 136, 142, 141, 136, 141, 144, 138, 130, 134, 135, 136, 145, 130, 134, 137, 143, 136, 138, 132, 142, 134, 139, 138, 143, 133, 133, 143, 145, 134, 143, 131, 138, 143, 147, 136, 133, 141, 135, 141, 136, 142, 134, 131, 139, 139, 131, 131, 123, 128, 133, 133, 140, 131, 136, 142, 140, 134, 139, 131, 144, 144, 142, 141, 139, 145, 140, 147, 129, 147, 141, 135, 142, 141, 149, 141, 147, 132, 138, 135, 137, 141, 128, 134, 131, 132, 137, 134, 136, 143, 140, 139, 140, 143, 131, 141, 134, 137, 137, 143, 135, 144, 141, 141, 145, 146, 140, 138, 133, 128, 143, 143, 149, 139, 140, 134, 138, 135, 143, 141, 148, 125, 137, 135, 138, 140, 138, 133, 146, 144, 136, 145, 141, 137, 133, 138, 136, 141, 140, 133, 134, 139, 133, 136, 135, 138, 139, 135, 142, 141, 139, 138, 147, 136, 139, 137, 136, 132, 143, 136, 140, 141, 136, 147, 138, 135, 139, 139, 141, 129, 141, 141, 140, 140, 139, 142, 142, 145, 135, 126, 138, 138, 144, 140, 145, 139, 148, 131, 146, 136, 136, 141, 134, 138, 139, 141, 134, 135, 138, 143, 136, 141, 146, 139, 132, 138, 143, 135, 138, 138, 143, 149, 136, 133, 147, 148, 138, 138, 143, 141, 143, 136, 129, 139, 139, 124, 133, 145, 138, 138, 140, 137, 141, 131, 135, 145, 145, 144, 147, 141, 131, 143, 142, 133, 140, 131, 139, 135, 146, 147, 147, 146, 139, 137, 138, 141, 135, 133, 136, 134, 158, 149, 144, 140, 131, 138, 136, 133, 147, 140, 133, 135, 135, 132, 133, 139, 143, 144, 138, 130, 139, 137, 134, 132, 147, 151, 140, 135, 136, 137, 143, 144, 133, 141, 138, 136, 140, 140, 145, 134, 134, 127, 137, 140, 141, 146, 151, 135, 146, 148, 139, 132, 135, 139, 132, 129, 143, 136, 127, 142, 134, 139, 141, 134, 141, 142, 138, 138, 140, 139, 144, 148, 139, 135, 143, 139, 144, 141, 133, 138, 142, 140, 139, 137, 142, 139, 140, 139, 130, 138, 135, 129, 142, 136, 145, 139, 147, 145, 131, 133, 140, 149, 142, 151, 130, 133, 143, 138, 136, 143, 142, 144, 144, 136, 146, 138, 143, 130, 141, 141, 151, 136, 134, 142, 137, 136, 143, 136, 143, 129, 138, 138, 140, 136, 141, 137, 137, 138, 145, 145, 140, 139, 134, 137, 129, 136, 128, 135, 145, 147, 142, 136, 146, 149, 132, 141, 142, 142, 131, 144, 137, 129, 145, 138, 139, 142, 138, 141, 138, 126, 134, 149, 139, 140, 141, 129, 123, 139, 136, 135, 136, 144, 143, 140, 144, 138, 139, 134, 146, 129, 145, 141, 146, 125, 132, 130, 146, 136, 133, 138, 137, 135, 136, 131, 140, 140, 126, 139, 135, 137, 145, 137, 149, 143, 141, 135, 137, 142, 141, 133, 147, 143, 139, 142, 139, 140, 138, 131, 135, 138, 142, 132, 138, 143, 130, 137, 126, 142, 131, 148, 138, 134, 141, 139, 148, 146, 134, 130, 143, 140, 139, 138, 139, 139, 146, 141, 142, 132, 138, 150, 136, 141, 131, 138, 145, 137, 139, 141, 141, 135, 136, 137, 146, 137, 137, 135, 139, 126, 141, 145, 128, 149, 140, 141, 142, 138, 142, 138, 149, 137, 130, 136, 138, 132, 148, 137, 148, 137, 142, 138, 142, 132, 154, 138, 149, 150, 148, 130, 134, 140, 135, 133, 140, 139, 147, 140, 143, 139, 134, 144, 128, 141, 138, 133, 135, 140, 128, 133, 134, 141, 146, 144, 138, 143, 146, 148, 138, 157, 146, 146, 151, 140, 139, 135, 122, 140, 145, 158, 130, 141, 139, 152, 129, 144, 140, 143, 136, 136, 142, 140, 138, 143, 141, 131, 144, 148, 142, 139, 136, 129, 135, 133, 156, 132, 136, 133, 142, 136, 127, 137, 135, 138, 136, 137, 142, 129, 139, 136, 140, 135, 140, 146, 143, 138, 137, 144, 131, 142, 133, 151, 132, 135, 136, 146, 126, 134, 133, 145, 138, 138, 130, 141, 134, 145, 145, 147, 138, 132, 125, 137, 133, 134, 141, 131, 134, 139, 140, 141, 144, 144, 138, 129, 145, 132, 136, 145, 133, 126, 140, 130, 141, 149, 127, 134, 147, 142, 139, 145, 127, 142, 144, 141, 140, 157, 134, 135, 125, 154, 139, 135, 142, 137, 142, 136, 143, 137, 132, 135, 138, 143, 142, 133, 133, 148, 144, 155, 138, 136, 132, 134, 135, 131, 129, 134, 145, 138, 146, 149, 152, 128, 130, 141, 163, 148, 125, 134, 134, 135, 147, 138, 141, 132, 140, 138, 147, 120, 149, 141, 127, 140, 138, 144, 138, 149, 145, 138, 140, 153, 135, 130, 129, 133, 142, 135, 135, 127, 143, 140, 141, 141, 146, 129, 147, 132, 132, 156, 132, 144, 144, 134, 155, 160, 146, 128, 131, 140, 142, 143, 144, 141, 145, 151, 146, 146, 142, 136, 128, 134, 130, 139, 140, 146, 140, 146, 127, 133, 125, 137, 139, 145, 146, 133, 141, 144, 136, 144, 131, 153, 143, 140, 141, 142, 150, 146, 133, 141, 135, 152, 136, 141, 138, 140, 133, 139, 141, 144, 138, 139, 130, 132, 130, 129, 143, 142, 129, 134, 146, 123, 139, 138, 140, 144, 138, 124, 143, 142, 147, 144, 134, 154, 148, 152, 135, 141, 137, 135, 134, 135, 125, 143, 142, 144, 146, 130, 143, 143, 127, 136, 130, 135, 133, 135, 143, 127, 131, 149, 155, 132, 144, 131, 139, 130, 132, 142, 137, 133, 133, 143, 152, 137, 139, 148, 148, 137, 142, 137, 134, 143, 136, 136, 148, 134, 141, 128, 130, 143, 139, 138, 137, 141, 143, 144, 145, 144, 135, 125, 134, 139, 138, 135, 145, 135, 145, 134, 140, 136, 145, 136, 145, 141, 142, 128, 151, 139, 138, 140, 125, 133, 133, 139, 147, 141, 132, 136, 131, 137, 160, 146, 131, 143, 132, 140, 144, 135, 139, 138, 144, 146, 138, 147, 141, 141, 140, 151, 132, 141, 137, 139, 134, 134, 140, 145, 139, 144, 140, 137, 147, 135, 146, 126, 138, 147, 148, 137, 141, 130, 129, 141, 130, 127, 140, 138, 130, 138, 135, 141, 143, 133, 137, 143, 136, 127, 136, 138, 145, 145, 145, 145, 145, 163, 149, 140, 148, 142, 130, 145, 133, 121, 144, 137, 137, 138, 137, 141, 147, 137, 135, 136, 138, 139, 142, 145, 140, 158, 138, 140, 136, 144, 141, 141, 125, 132, 141, 139, 136, 146, 137, 140, 146, 131, 136, 147, 135, 145, 137, 147, 136, 143, 130, 151, 135, 131, 126, 137, 135, 143, 137, 141, 142, 144, 138, 135, 133, 139, 135, 138, 146, 137, 138, 142, 143, 136, 145, 139, 143, 137, 140, 140, 138, 141, 135, 137, 142, 134, 127, 143, 137, 138, 142, 137, 139, 142, 144, 139, 131, 142, 138, 133, 140, 140, 136, 138, 141, 134, 135, 133, 136, 142, 143, 142, 142, 140, 139, 137, 139, 140, 136, 136, 136, 143, 144, 139, 138, 139, 133, 138, 135, 135, 137, 138, 141, 140, 131, 144, 140, 140, 137, 146, 135, 131, 139, 139, 147, 134, 132, 136, 134, 129, 137, 140, 141, 144, 135, 137, 141, 138, 139, 139, 138, 139, 137, 150, 133, 139, 139, 132, 145, 139, 136, 140, 137, 133, 137, 145, 135, 142, 140, 140, 140, 131, 143, 142, 138, 141, 137, 138, 139, 140, 140, 148, 141, 136, 141, 137, 140, 136, 140, 140, 138, 146, 140, 138, 145, 134, 135, 146, 135, 139, 140, 140, 137, 132, 138, 137, 136, 140, 140, 139, 137, 135, 138, 139, 141, 143, 140, 137, 138, 142, 136, 136, 135, 134, 140, 136, 141, 145, 143, 146, 131, 144, 140, 141, 138, 140, 139, 139, 140, 146, 142, 137, 135, 134, 132, 143, 137, 138, 135, 135, 142, 144, 141, 136, 140, 141, 133, 134, 139, 136, 142, 139, 140, 143, 145, 138, 147, 144, 131, 132, 136, 136, 135, 140, 145, 145, 138, 139, 142, 140, 140, 142, 136, 142, 138, 139, 137, 136, 139, 135, 137, 132, 140, 136, 138, 137, 135, 143, 134, 128, 141, 140, 132, 145, 144, 137, 135, 138, 134, 145, 137, 140, 144, 142, 139, 130, 139, 136, 137, 132, 138, 133, 138, 138, 140, 148, 131, 138, 135, 131, 126, 138, 141, 139, 134, 133, 141, 132, 137, 133, 132, 135, 137, 144, 149, 142, 142, 140, 143, 145, 138, 143, 142, 146, 133, 145, 138, 136, 139, 135, 134, 142, 134, 134, 140, 146, 140, 134, 133, 147, 140, 139, 137, 144, 138, 143, 138, 141, 147, 141, 134, 140, 140, 137, 144, 147, 140, 136, 136, 137, 135, 139, 130, 140, 140, 131, 142, 146, 136, 145, 140, 134, 146, 137, 142, 139, 142, 145, 150, 143, 140, 139, 142, 139, 143, 140, 141, 136, 139, 137, 130, 136, 139, 141, 141, 127, 142, 143, 144, 136, 139, 137, 139, 137, 141, 138, 137, 138, 134, 139, 143, 143, 139, 148, 139, 140, 135, 141, 141, 136, 139, 140, 132, 136, 143, 140, 138, 130, 145, 139, 137, 142, 138, 137, 136, 121, 134, 133, 140, 143, 142, 141, 148, 138, 141, 138, 139, 151, 138, 132, 142, 137, 139, 141, 134, 141, 134, 132, 143, 136, 137, 146, 146, 143, 137, 137, 132, 138, 140, 146, 137, 136, 138, 141, 135, 140, 137, 140, 135, 144, 136, 136, 143, 136, 132, 136, 141, 138, 137, 139, 128, 134, 148, 144, 129, 140, 136, 130, 135, 139, 146, 135, 129, 135, 141, 137, 145, 132, 138, 136, 138, 143, 133, 140, 134, 141, 141, 134, 143, 142, 140, 144, 146, 137, 139, 134, 137, 138, 140, 125, 139, 139, 144, 137, 136, 131, 144, 140, 138, 145, 132, 147, 137, 136, 137, 142, 141, 141, 137, 141, 141, 137, 139, 144, 138, 140, 137, 136, 138, 148, 133, 140, 137, 140, 140, 140, 142, 135, 141, 144, 142, 143, 143, 136, 130, 134, 137, 146, 141, 139, 133, 137, 136, 139, 133, 131, 138, 139, 138, 144, 137, 134, 139, 136, 134, 137, 138, 142, 135, 136, 135, 134, 138, 134, 137, 139, 134, 139, 141, 141, 142, 140, 141, 144, 144, 142, 135, 140, 134, 148, 138, 137, 145, 141, 136, 135, 135, 136, 138, 141, 132, 134, 133, 139, 143, 137, 139, 137, 139, 138, 141, 142, 134, 132, 137, 137, 133, 140, 139, 136, 133, 145, 134, 137, 152, 143, 136, 145, 135, 140, 139, 145, 142, 140, 143, 146, 136, 135, 142, 143, 136, 141, 140, 135, 144, 135, 139, 131, 135, 143, 141, 144, 143, 135, 143, 138, 140, 137, 145, 137, 139, 138, 139, 137, 133, 140, 134, 129, 145, 140, 132, 139, 138, 142, 138, 142, 139, 141, 139, 137, 136, 140, 140, 140, 147, 134, 139, 139, 140, 139, 147, 135, 136, 134, 144, 139, 145, 134, 144, 145, 142, 130, 136, 141, 146, 136, 138, 131, 136, 143, 128, 138, 134, 145, 139, 137, 136, 140, 142, 135, 135, 137, 139, 137, 136, 141, 141, 140, 139, 147, 140, 133, 139, 143, 140, 138, 138, 140, 135, 143, 133, 141, 142, 142, 136, 140, 138, 139, 139, 141, 136, 136, 140, 138, 140, 144, 143, 135, 136, 130, 140, 139, 142, 136, 135, 138, 135, 134, 144, 143, 140, 137, 138, 136, 138, 129, 134, 137, 134, 143, 137, 135, 139, 140, 142, 138, 142, 138, 142, 137, 136, 131, 142, 153, 140, 143, 142, 141, 136, 139, 135, 142, 142, 142, 139, 135, 135, 142, 123, 139, 138, 143, 143, 139, 147, 137, 149, 146, 139, 138, 140, 143, 142, 140, 136, 141, 137, 142, 145, 137, 146, 148, 143, 138, 138, 150, 139, 135, 135, 148, 133, 136, 134, 136, 140, 129, 141, 140, 143, 139, 146, 144, 143, 135, 137, 139, 141, 136, 139, 139, 138, 147, 143, 137, 136, 140, 138, 142, 139, 139, 138, 141, 145, 156, 139, 123, 134, 133, 142, 141, 132, 138, 135, 136, 133, 136, 146, 133, 132, 139, 146, 135, 137, 136, 130, 136, 137, 146, 136, 139, 143, 133, 136, 141, 138, 135, 137, 139, 135, 137, 135, 142, 138, 142, 136, 138, 140, 139, 137, 143, 138, 147, 139, 135, 146, 138, 143, 144, 140, 144, 134, 137, 137, 138, 141, 133, 134, 139, 137, 140, 142, 139, 144, 138, 140, 136, 145, 140, 145, 132, 144, 135, 137, 137, 143, 129, 140, 142, 140, 133, 138, 139, 131, 134, 137, 132, 144, 136, 137, 137, 140, 134, 145, 132, 131, 142, 141, 139, 138, 141, 136, 138, 140, 140, 141, 141, 139, 143, 135, 139, 143, 136, 143, 150, 137, 136, 138, 138, 139, 138, 138, 145, 142, 142, 136, 144, 137, 139, 133, 139, 140, 136, 142, 143, 133, 135, 141, 136, 138, 142, 135, 151, 137, 141, 131, 139, 135, 134, 136, 135, 146, 131, 134, 146, 132, 138, 129, 148, 135, 147, 132, 147, 140, 129, 141, 145, 144, 130, 139, 142, 149, 165, 129, 142, 131, 134, 149, 143, 143, 148, 144, 153, 136, 128, 137, 138, 141, 129, 141, 141, 140, 133, 145, 135, 136, 144, 150, 134, 143, 142, 131, 134, 134, 143, 150, 138, 143, 140, 147, 134, 140, 138, 138, 142, 146, 139, 147, 129, 147, 137, 131, 143, 134, 143, 137, 141, 135, 143, 139, 143, 130, 148, 146, 142, 139, 139, 139, 131, 136, 130, 145, 140, 146, 135, 133, 146, 139, 146, 139, 138, 143, 135, 139, 131, 135, 130, 139, 135, 137, 143, 139, 137, 141, 137, 134, 143, 150, 141, 129, 137, 133, 130, 134, 131, 137, 138, 143, 145, 131, 137, 146, 135, 132, 142, 139, 136, 138, 130, 141, 141, 141, 137, 128, 140, 126, 134, 134, 139, 132, 140, 140, 138, 140, 139, 139, 138, 126, 137, 144, 134, 140, 138, 138, 145, 147, 126, 137, 140, 122, 142, 146, 143, 134, 146, 136, 142, 134, 139, 143, 145, 138, 134, 140, 135, 136, 151, 144, 143, 135, 136, 130, 133, 129, 141, 139, 150, 144, 135, 143, 138, 140, 144, 147, 155, 141, 130, 140, 146, 139, 149, 138, 141, 128, 141, 150, 135, 146, 138, 137, 146, 145, 134, 138, 138, 140, 138, 149, 134, 140, 129, 149, 140, 144, 133, 143, 140, 140, 138, 127, 140, 133, 139, 134, 141, 134, 142, 145, 130, 146, 135, 147, 141, 139, 145, 133, 128, 133, 172, 134, 147, 138, 143, 138, 141, 157, 139, 147, 145, 140, 142, 146, 129, 144, 155, 140, 134, 129, 135, 136, 129, 137, 154, 136, 140, 134, 140, 139, 137, 139, 146, 138, 138, 141, 137, 131, 149, 128, 136, 133, 136, 145, 123, 129, 137, 145, 144, 129, 134, 135, 139, 152, 130, 140, 129, 139, 152, 147, 133, 138, 137, 145, 139, 140, 151, 134, 141, 132, 155, 134, 141, 136, 128, 138, 138, 133, 132, 142, 140, 128, 138, 132, 141, 139, 139, 137, 135, 133, 131, 136, 141, 138, 137, 139, 128, 144, 138, 135, 146, 135, 130, 136, 133, 136, 144, 131, 133, 138, 132, 136, 133, 146, 144, 137, 143, 136, 137, 145, 148, 141, 140, 144, 140, 135, 124, 133, 135, 137, 142, 138, 130, 136, 132, 142, 148, 138, 141, 135, 146, 142, 133, 133, 124, 143, 143, 137, 146, 147, 137, 140, 150, 143, 142, 145, 139, 136, 131, 134, 152, 139, 135, 140, 140, 143, 133, 144, 144, 128, 151, 146, 140, 144, 130, 137, 141, 133, 145, 136, 137, 139, 143, 141, 137, 141, 134, 140, 135, 141, 137, 140, 138, 134, 144, 140, 127, 146, 138, 134, 126, 140, 142, 131, 129, 137, 140, 137, 146, 144, 141, 143, 136, 142, 134, 156, 135, 146, 135, 143, 131, 138, 131, 139, 142, 142, 153, 139, 140, 142, 144, 133, 136, 133, 138, 128, 122, 128, 135, 125, 137, 136, 139, 140, 139, 140, 137, 138, 140, 141, 134, 141, 137, 148, 142, 141, 145, 137, 137, 125, 141, 137, 142, 140, 130, 141, 138, 135, 139, 148, 143, 139, 138, 142, 142, 141, 141, 139, 137, 137, 133, 133, 135, 138, 133, 139, 137, 140, 134, 133, 144, 136, 138, 140, 141, 138, 141, 137, 138, 132, 138, 135, 142, 134, 133, 137, 145, 136, 130, 138, 139, 137, 135, 143, 137, 140, 141, 140, 139, 139, 133, 138, 137, 138, 140, 138, 145, 133, 137, 150, 137, 141, 139, 132, 136, 136, 134, 144, 146, 134, 143, 137, 141, 132, 138, 135, 140, 144, 136, 146, 140, 138, 151, 138, 145, 133, 141, 140, 141, 145, 140, 137, 138, 142, 139, 141, 144, 140, 146, 137, 140, 142, 137, 138, 136, 138, 136, 138, 136, 133, 139, 133, 139, 134, 138, 147, 142, 132, 141, 128, 139, 133, 137, 136, 134, 137, 143, 146, 135, 132, 145, 137, 136, 138, 133, 135, 138, 137, 131, 135, 139, 147, 141, 131, 140, 149, 146, 143, 140, 146, 140, 141, 136, 143, 136, 131, 138, 135, 143, 135, 140, 139, 132, 138, 141, 137, 139, 136, 138, 139, 135, 137, 139, 137, 134, 133, 136, 134, 139, 141, 141, 140, 144, 139, 136, 147, 141, 143, 135, 137, 149, 135, 133, 145, 125, 140, 135, 144, 135, 139, 136, 134, 136, 138, 141, 133, 137, 143, 140, 139, 134, 143, 142, 137, 137, 141, 133, 136, 142, 139, 139, 142, 138, 142, 145, 132, 139, 141, 133, 140, 132, 135, 151, 136, 136, 132, 141, 142, 141, 139, 145, 137, 141, 145, 150, 139, 139, 135, 132, 136, 146, 136, 136, 139, 139, 139, 136, 145, 147, 142, 135, 139, 140, 144, 139, 141, 135, 138, 140, 142, 141, 145, 137, 138, 143, 133, 138, 138, 141, 139, 139, 138, 152, 139, 137, 138, 144, 141, 138, 144, 136, 139, 146, 139, 141, 135, 140, 140, 149, 143, 140, 138, 143, 138, 136, 143, 145, 136, 142, 139, 141, 126, 137, 140, 138, 147, 145, 146, 139, 137, 131, 144, 140, 138, 138, 144, 144, 143, 139, 139, 136, 134, 139, 142, 134, 145, 138, 140, 137, 136, 144, 129, 139, 138, 135, 142, 143, 140, 138, 144, 137, 132, 139, 134, 138, 138, 132, 142, 140, 140, 143, 132, 145, 142, 130, 135, 138, 140, 135, 144, 141, 135, 141, 135, 149, 138, 139, 142, 139, 139, 137, 141, 134, 131, 139, 138, 138, 133, 134, 138, 143, 137, 142, 145, 139, 139, 147, 132, 138, 135, 137, 145, 138, 131, 135, 139, 132, 143, 140, 136, 133, 142, 137, 134, 139, 152, 138, 142, 142, 139, 145, 137, 133, 135, 138, 135, 133, 132, 143, 143, 140, 146, 131, 140, 139, 139, 136, 139, 140, 136, 138, 144, 135, 135, 141, 139, 132, 130, 148, 144, 143, 134, 134, 143, 137, 136, 130, 129, 140, 140, 138, 135, 139, 136, 144, 137, 132, 135, 134, 137, 142, 137, 137, 147, 136, 142, 138, 148, 130, 138, 141, 140, 136, 141, 128, 141, 136, 130, 136, 145, 133, 134, 132, 146, 142, 138, 135, 136, 132, 142, 136, 130, 146, 143, 136, 130, 117, 139, 139, 146, 137, 138, 136, 142, 136, 146, 128, 142, 134, 143, 135, 136, 142, 133, 137, 139, 144, 135, 143, 133, 139, 145, 147, 141, 140, 143, 130, 136, 141, 141, 138, 130, 135, 140, 140, 134, 135, 147, 148, 132, 132, 137, 139, 135, 135, 132, 137, 142, 134, 138, 135, 136, 139, 136, 133, 131, 137, 138, 142, 126, 149, 125, 143, 143, 144, 142, 138, 141, 136, 146, 141, 128, 137, 141, 142, 138, 132, 142, 142, 132, 129, 148, 129, 142, 136, 120, 134, 138, 146, 142, 143, 141, 140, 148, 134, 142, 143, 148, 141, 139, 133, 140, 155, 136, 142, 145, 137, 144, 152, 140, 137, 137, 142, 137, 140, 142, 140, 131, 144, 148, 145, 132, 131, 135, 129, 142, 143, 143, 143, 131, 137, 125, 142, 126, 143, 136, 141, 141, 137, 142, 141, 138, 133, 135, 151, 135, 137, 151, 136, 139, 140, 135, 148, 132, 138, 138, 139, 135, 142, 133, 154, 134, 132, 140, 129, 144, 137, 127, 128, 141, 127, 135, 147, 144, 144, 132, 135, 140, 142, 145, 135, 148, 150, 134, 150, 136, 136, 143, 142, 142, 131, 141, 137, 136, 128, 133, 137, 139, 146, 136, 140, 142, 141, 142, 142, 146, 140, 135, 132, 137, 148, 135, 132, 141, 140, 142, 134, 140, 139, 138, 130, 148, 132, 158, 135, 151, 146, 149, 131, 146, 143, 149, 133, 136, 139, 140, 122, 140, 140, 138, 135, 129, 139, 139, 128, 137, 145, 136, 135, 136, 131, 137, 131, 137, 138, 144, 135, 143, 142, 141, 143, 141, 134, 136, 125, 141, 134, 138, 140, 132, 144, 140, 134, 134, 143, 130, 143, 134, 137, 147, 144, 144, 136, 157, 131, 127, 140, 129, 129, 143, 134, 142, 150, 136, 141, 139, 143, 141, 133, 147, 138, 130, 139, 142, 156, 134, 140, 139, 148, 134, 137, 137, 146, 132, 130, 133, 137, 132, 141, 136, 142, 135, 136, 138, 146, 143, 142, 148, 139, 134, 142, 136, 137, 145, 137, 135, 144, 136, 134, 135, 131, 136, 138, 148, 144, 139, 133, 141, 137, 153, 136, 145, 138, 140, 132, 142, 141, 145, 130, 143, 140, 132, 138, 131, 138, 140, 136, 135, 143, 141, 136, 141, 137, 144, 136, 140, 142, 136, 144, 145, 144, 137, 140, 130, 134, 145, 138, 142, 143, 138, 138, 145, 140, 135, 143, 137, 136, 138, 149, 149, 139, 142, 145, 140, 133, 135, 143, 144, 143, 142, 141, 137, 137, 142, 143, 143, 139, 134, 139, 145, 138, 132, 148, 134, 141, 141, 135, 133, 145, 139, 148, 139, 139, 147, 159, 138, 142, 148, 151, 139, 145, 132, 139, 140, 127, 148, 136, 131, 130, 140, 138, 141, 143, 141, 141, 137, 140, 141, 139, 151, 143, 136, 142, 138, 146, 131, 147, 139, 134, 140, 133, 144, 145, 136, 138, 139, 134, 129, 143, 137, 134, 136, 142, 148, 140, 130, 138, 141, 154, 138, 132, 148, 133, 135, 132, 128, 141, 139, 143, 136, 157, 142, 131, 139, 141, 137, 137, 132, 147, 134, 135, 140, 135, 143, 134, 142, 140, 140, 126, 130, 140, 138, 143, 141, 144, 136, 139, 137, 135, 149, 127, 136, 138, 135, 140, 138, 141, 142, 141, 143, 141, 133, 137, 136, 138, 141, 138, 141, 135, 148, 144, 133, 141, 142, 141, 143, 137, 135, 140, 138, 139, 128, 138, 143, 140, 141, 143, 149, 136, 142, 138, 140, 145, 149, 141, 138, 147, 132, 134, 147, 140, 144, 143, 136, 140, 144, 141, 132, 149, 131, 142, 134, 138, 135, 143, 133, 142, 130, 138, 141, 139, 146, 129, 145, 142, 136, 144, 133, 144, 146, 136, 138, 137, 132, 141, 132, 136, 144, 130, 148, 138, 134, 133, 131, 135, 139, 141, 124, 142, 140, 143, 130, 145, 146, 143, 133, 132, 138, 137, 136, 140, 139, 144, 136, 142, 150, 141, 145, 148, 136, 137, 136, 143, 132, 135, 137, 144, 141, 140, 141, 143, 133, 134, 146, 145, 143, 141, 136, 140, 128, 140, 141, 137, 142, 135, 143, 138, 134, 142, 137, 140, 138, 128, 139, 144, 140, 131, 139, 137, 143, 142, 141, 140, 139, 138, 144, 137, 142, 140, 146, 144, 134, 131, 135, 149, 138, 137, 127, 134, 143, 145, 132, 143, 147, 137, 138, 136, 137, 138, 137, 141, 144, 133, 133, 148, 137, 137, 144, 135, 136, 136, 144, 134, 135, 130, 134, 140, 141, 136, 144, 136, 134, 136, 139, 136, 140, 134, 126, 136, 135, 140, 137, 141, 135, 145, 141, 143, 143, 140, 136, 133, 143, 144, 135, 140, 139, 141, 138, 141, 142, 145, 143, 139, 134, 141, 139, 145, 134, 148, 131, 140, 138, 138, 142, 153, 140, 142, 142, 139, 137, 129, 136, 143, 138, 144, 145, 132, 142, 136, 141, 148, 132, 138, 143, 141, 136, 144, 143, 150, 131, 130, 133, 137, 134, 129, 136, 142, 144, 133, 138, 139, 134, 130, 137, 147, 134, 142, 141, 152, 142, 136, 144, 126, 132, 131, 138, 137, 143, 132, 140, 142, 139, 135, 134, 143, 132, 137, 141, 139, 143, 138, 137, 141, 137, 144, 136, 141, 143, 130, 147, 133, 140, 141, 146, 143, 139, 140, 140, 145, 136, 141, 142, 130, 138, 140, 133, 137, 134, 132, 141, 139, 154, 138, 135, 137, 136, 131, 138, 137, 132, 141, 143, 137, 135, 143, 140, 133, 138, 139, 140, 136, 148, 139, 141, 138, 148, 134, 141, 131, 140, 145, 137, 147, 132, 137, 137, 142, 137, 135, 133, 138, 143, 135, 138, 138, 137, 139, 147, 141, 135, 146, 137, 132, 142, 141, 142, 135, 146, 150, 134, 144, 137, 137, 139, 142, 141, 149, 141, 140, 145, 144, 142, 134, 132, 141, 141, 144, 144, 154, 145, 136, 141, 141, 145, 144, 141, 147, 135, 138, 142, 135, 127, 143, 142, 145, 138, 141, 136, 135, 134, 139, 138, 140, 135, 139, 137, 134, 143, 142, 136, 148, 139, 142, 133, 136, 140, 137, 133, 133, 127, 140, 143, 138, 137, 135, 134, 135, 134, 139, 132, 135, 132, 132, 134, 141, 134, 141, 137, 143, 133, 139, 145, 138, 131, 126, 141, 154, 144, 141, 141, 141, 142, 136, 146, 140, 137, 143, 136, 135, 132, 138, 136, 139, 137, 140, 138, 135, 139, 142, 131, 137, 139, 140, 144, 137, 140, 139, 138, 134, 140, 138, 124, 132, 137, 135, 145, 143, 133, 141, 150, 137, 141, 141, 144, 138, 141, 147, 139, 134, 142, 147, 129, 146, 135, 144, 138, 130, 127, 142, 143, 144, 136, 140, 140, 131, 136, 143, 131, 137, 138, 137, 136, 139, 143, 135, 139, 134, 149, 147, 140, 143, 135, 131, 134, 126, 138, 128, 143, 138, 136, 133, 127, 129, 138, 143, 141, 146, 140, 134, 139, 145, 134, 141, 139, 132, 121, 141, 139, 138, 137, 130, 135, 148, 153, 139, 135, 141, 137, 140, 143, 145, 139, 137, 133, 137, 140, 141, 140, 140, 142, 144, 130, 135, 144, 138, 136, 132, 133, 135, 138, 149, 144, 150, 140, 140, 134, 138, 142, 130, 140, 140, 130, 138, 134, 133, 142, 139, 137, 132, 138, 136, 136, 133, 138, 139, 137, 136, 138, 140, 133, 147, 139, 137, 138, 136, 137, 145, 143, 140, 143, 139, 135, 125, 142, 142, 135, 132, 139, 139, 145, 128, 130, 144, 140, 141, 146, 150, 141, 130, 139, 143, 129, 129, 142, 142, 133, 136, 147, 144, 139, 134, 131, 132, 126, 144, 132, 144, 139, 148, 144, 144, 131, 137, 143, 143, 136, 130, 132, 139, 146, 144, 141, 144, 140, 139, 140, 149, 144, 139, 145, 131, 134, 136, 141, 129, 141, 134, 134, 137, 143, 134, 143, 142, 150, 151, 138, 132, 131, 137, 148, 143, 143, 141, 139, 137, 139, 136, 137, 144, 140, 144, 145, 142, 144, 145, 131, 138, 134, 143, 135, 131, 139, 156, 140, 140, 142, 125, 132, 141, 132, 130, 138, 145, 146, 134, 136, 146, 140, 141, 138, 143, 139, 136, 143, 143, 142, 145, 139, 136, 140, 143, 142, 130, 149, 141, 134, 148, 137, 133, 136, 140, 128, 143, 142, 138, 146, 137, 132, 130, 137, 132, 145, 135, 140, 140, 138, 144, 135, 138, 136, 150, 138, 132, 137, 136, 151, 136, 144, 136, 137, 138, 140, 134, 135, 134, 155, 135, 130, 143, 141, 135, 145, 134, 142, 139, 132, 133, 137, 145, 148, 141, 138, 136, 144, 145, 135, 139, 137, 141, 137, 140, 137, 128, 131, 141, 137, 144, 138, 132, 134, 138, 135, 134, 143, 134, 142, 139, 141, 140, 145, 140, 132, 136, 145, 137, 132, 143, 137, 141, 141, 146, 135, 136, 138, 138, 139, 145, 140, 147, 148, 148, 146, 129, 140, 142, 142, 137, 135, 133, 143, 140, 135, 140, 145, 136, 136, 128, 142, 139, 145, 138, 146, 138, 134, 141, 139, 141, 133, 134, 144, 135, 146, 137, 139, 136, 142, 133, 141, 135, 141, 139, 134, 142, 142, 140, 155, 148, 141, 133, 132, 141, 151, 140, 140, 133, 141, 134, 135, 152, 144, 153, 138, 145, 133, 147, 144, 141, 129, 132, 139, 141, 139, 133, 137, 136, 136, 145, 135, 142, 130, 139, 124, 134, 143, 137, 133, 137, 133, 146, 140, 147, 151, 136, 136, 146, 135, 134, 140, 145, 156, 136, 146, 141, 136, 143, 136, 136, 141, 134, 137, 134, 142, 135, 124, 143, 143, 150, 135, 129, 142, 133, 134, 149, 140, 141, 138, 140, 136, 138, 139, 134, 127, 145, 140, 137, 138, 134, 142, 149, 146, 144, 135, 145, 130, 144, 139, 133, 131, 132, 133, 129, 143, 138, 136, 149, 142, 140, 140, 138, 135, 132, 138, 136, 131, 141, 142, 134, 144, 139, 134, 145, 146, 144, 133, 135, 136, 142, 138, 138, 142, 142, 137, 138, 142, 139, 141, 127, 130, 138, 146, 140, 139, 134, 132, 140, 144, 137, 137, 144, 132, 144, 136, 138, 133, 142, 141, 146, 135, 147, 135, 129, 142, 139, 138, 134, 140, 142, 142, 130, 139, 146, 137, 133, 141, 132, 134, 150, 140, 135, 135, 143, 139, 142, 144, 146, 136, 134, 148, 133, 140, 137, 138, 140, 140, 138, 140, 137, 151, 133, 142, 141, 132, 139, 142, 137, 145, 135, 140, 131, 136, 142, 135, 141, 141, 138, 137, 145, 135, 128, 136, 134, 137, 138, 148, 134, 143, 143, 134, 139, 142, 147, 144, 137, 135, 131, 146, 148, 150, 141, 140, 139, 140, 148, 144, 139, 131, 128, 126, 137, 123, 129, 137, 139, 149, 137, 130, 143, 139, 143, 135, 142, 143, 146, 136, 133, 142, 138, 134, 155, 132, 140, 144, 141, 138, 140, 133, 143, 138, 136, 140, 134, 137, 145, 132, 125, 148, 133, 139, 141, 137, 142, 139, 143, 140, 144, 139, 135, 133, 134, 146, 134, 137, 134, 128, 138, 132, 139, 142, 144, 143, 141, 138, 140, 144, 136, 139, 129, 144, 139, 146, 146, 141, 136, 130, 144, 139, 127, 144, 147, 151, 136, 141, 134, 130, 136, 132, 135, 145, 137, 133, 137, 131, 139, 138, 129, 130, 139, 140, 139, 151, 139, 136, 147, 137, 139, 149, 146, 143, 131, 141, 146, 137, 131, 134, 138, 142, 140, 141, 140, 144, 145, 128, 141, 142, 144, 132, 138, 134, 139, 125, 139, 138, 145, 147, 132, 140, 137, 138, 144, 127, 130, 133, 132, 127, 138, 132, 151, 140, 142, 147, 140, 144, 139, 143, 150, 142, 128, 134, 130, 138, 132, 138, 139, 141, 131, 126, 141, 137, 138, 140, 131, 139, 136, 132, 138, 142, 137, 143, 144, 135, 136, 141, 141, 132, 133, 135, 137, 146, 152, 134, 158, 132, 146, 138, 132, 141, 141, 136, 143, 128, 140, 140, 137, 137, 139, 153, 141, 132, 140, 140, 140, 139, 129, 156, 143, 141, 139, 142, 143, 143, 140, 141, 140, 142, 143, 151, 141, 137, 137, 137, 128, 141, 134, 132, 137, 140, 131, 144, 140, 133, 145, 133, 133, 138, 136, 143, 134, 139, 141, 130, 141, 134, 141, 147, 141, 134, 148, 137, 143, 132, 139, 142, 142, 135, 130, 134, 139, 138, 134, 141, 138, 140, 141, 128, 145, 128, 141, 142, 140, 140, 135, 144, 145, 137, 131, 133, 143, 141, 130, 138, 146, 142, 139, 136, 137, 141, 143, 140, 143, 142, 143, 139, 138, 146, 145, 126, 140, 136, 135, 133, 136, 147, 147, 142, 138, 143, 136, 149, 137, 130, 129, 141, 128, 134, 139, 138, 138, 139, 138, 141, 143, 143, 137, 137, 138, 150, 144, 134, 124, 148, 137, 145, 136, 136, 136, 132, 140, 135, 144, 138, 147, 143, 131, 136, 134, 141, 129, 137, 132, 134, 140, 128, 138, 137, 131, 140, 143, 131, 147, 139, 132, 131, 141, 139, 141, 152, 148, 138, 140, 161, 143, 138, 138, 134, 144, 138, 148, 131, 136, 141, 142, 136, 142, 132, 137, 135, 147, 136, 140, 138, 132, 125, 142, 131, 133, 138, 147, 143, 146, 145, 146, 148, 141, 141, 140, 144, 139, 136, 143, 144, 140, 144, 138, 142, 135, 135, 135, 142, 136, 140, 146, 140, 147, 145, 142, 139, 149, 139, 145, 129, 139, 136, 136, 140, 144, 143, 142, 135, 131, 141, 135, 135, 137, 137, 138, 142, 135, 136, 142, 139, 148, 151, 132, 136, 138, 139, 132, 137, 139, 143, 136, 142, 138, 138, 137, 132, 136, 143, 126, 141, 145, 130, 145, 139, 137, 150, 140, 133, 140, 130, 152, 138, 136, 133, 132, 133, 135, 135, 134, 139, 149, 141, 135, 141, 142, 146, 137, 136, 135, 146, 135, 133, 136, 145, 135, 140, 141, 138, 134, 132, 145, 139, 139, 139, 140, 127, 140, 144, 141, 135, 141, 147, 142, 138, 132, 143, 135, 139, 136, 142, 132, 139, 140, 145, 134, 138, 138, 136, 138, 140, 144, 128, 132, 147, 147, 145, 143, 145, 139, 138, 137, 133, 130, 132, 140, 129, 135, 130, 141, 135, 141, 143, 141, 137, 147, 139, 139, 138, 147, 137, 142, 131, 138, 148, 134, 135, 147, 134, 151, 138, 146, 138, 130, 140, 133, 138, 138, 139, 141, 131, 142, 142, 133, 147, 130, 149, 139, 133, 132, 144, 146, 135, 146, 137, 130, 139, 139, 145, 132, 142, 137, 137, 136, 138, 137, 135, 140, 136, 153, 135, 133, 148, 143, 140, 139, 146, 140, 138, 133, 143, 135, 146, 141, 139, 146, 138, 141, 136, 133, 145, 134, 145, 136, 128, 134, 143, 125, 135, 140, 144, 143, 133, 136, 131, 129, 136, 139, 136, 137, 136, 138, 134, 145, 138, 140, 136, 140, 134, 138, 136, 139, 136, 136, 135, 134, 138, 147, 132, 127, 135, 139, 133, 138, 139, 127, 146, 140, 136, 145, 138, 135, 134, 140, 141, 140, 137, 144, 146, 136, 149, 151, 142, 140, 143, 138, 142, 135, 138, 142, 134, 139, 134, 140, 138, 141, 131, 136, 142, 138, 134, 139, 140, 137, 146, 134, 135, 136, 136, 134, 138, 151, 135, 134, 140, 139, 142, 143, 137, 136, 139, 142, 149, 135, 131, 137, 137, 135, 132, 138, 137, 143, 137, 139, 138, 133, 136, 139, 140, 148, 137, 141, 135, 142, 141, 139, 143, 134, 147, 140, 127, 137, 142, 132, 143, 140, 149, 134, 137, 137, 140, 134, 136, 142, 139, 139, 145, 146, 137, 142, 136, 135, 147, 154, 143, 138, 139, 138, 145, 133, 137, 123, 137, 138, 140, 143, 134, 133, 143, 134, 136, 140, 171, 142, 142, 153, 142, 136, 139, 137, 149, 138, 151, 140, 135, 140, 140, 134, 142, 135, 151, 140, 147, 137, 144, 142, 137, 133, 124, 132, 134, 137, 130, 151, 138, 139, 133, 126, 139, 153, 147, 137, 134, 143, 139, 131, 137, 143, 143, 138, 140, 143, 139, 136, 132, 139, 134, 144, 137, 136, 138, 151, 132, 147, 147, 141, 142, 146, 139, 131, 146, 134, 139, 131, 134, 136, 136, 133, 140, 141, 134, 136, 141, 146, 139, 136, 141, 145, 142, 138, 140, 138, 136, 133, 126, 135, 137, 141, 138, 154, 141, 136, 142, 143, 135, 133, 139, 136, 145, 141, 136, 146, 136, 120, 135, 144, 133, 138, 141, 137, 134, 137, 141, 127, 137, 143, 139, 136, 137, 146, 140, 133, 136, 142, 138, 145, 145, 135, 138, 139, 136, 132, 135, 139, 139, 135, 143, 140, 132, 153, 140, 149, 148, 142, 135, 138, 140, 147, 141, 137, 137, 125, 126, 136, 143, 141, 136, 135, 141, 131, 150, 145, 134, 136, 136, 143, 151, 137, 137, 134, 142, 158, 133, 140, 135, 137, 140, 137, 146, 142, 127, 138, 147, 140, 132, 138, 142, 138, 136, 127, 140, 134, 145, 139, 138, 138, 131, 137, 131, 141, 129, 130, 137, 135, 140, 133, 146, 144, 138, 140, 140, 131, 141, 137, 145, 133, 134, 134, 134, 141, 138, 128, 137, 149, 140, 127, 140, 140, 145, 142, 147, 145, 131, 144, 137, 148, 141, 139, 145, 142, 135, 134, 148, 135, 136, 131, 142, 143, 135, 144, 140, 138, 123, 151, 148, 134, 132, 144, 132, 140, 133, 136, 144, 137, 153, 138, 130, 138, 129, 138, 143, 142, 138, 142, 135, 134, 142, 145, 138, 132, 132, 139, 141, 140, 149, 137, 132, 139, 138, 140, 134, 138, 138, 142, 140, 142, 141, 130, 138, 135, 141, 137, 137, 144, 130, 137, 135, 148, 144, 137, 140, 128, 142, 140, 142, 140, 135, 144, 146, 149, 137, 146, 135, 140, 135, 170, 146, 139, 129, 143, 121, 136, 136, 133, 148, 147, 135, 142, 137, 142, 140, 143, 129, 132, 149, 137, 136, 139, 135, 118, 140, 141, 145, 145, 142, 133, 130, 146, 157, 142, 132, 134, 136, 138, 138, 144, 136, 133, 134, 153, 144, 130, 136, 139, 146, 138, 141, 137, 137, 135, 137, 138, 148, 148, 130, 140, 131, 130, 136, 144, 135, 133, 138, 132, 135, 150, 142, 138, 129, 147, 140, 133, 152, 135, 127, 137, 135, 149, 130, 144, 132, 139, 134, 139, 139, 158, 141, 131, 138, 127, 140, 129, 137, 143, 141, 132, 129, 135, 149, 150, 154, 136, 132, 139, 144, 137, 136, 140, 129, 142, 143, 139, 131, 134, 141, 135, 139, 132, 139, 134, 148, 145, 139, 138, 138, 143, 138, 132, 138, 135, 140, 129, 134, 135, 127, 136, 144, 137, 145, 138, 139, 137, 148, 139, 139, 144, 139, 140, 138, 141, 144, 138, 136, 141, 138, 150, 142, 133, 138, 142, 136, 137, 142, 142, 136, 144, 144, 139, 141, 135, 143, 138, 144, 142, 134, 131, 144, 133, 134, 131, 139, 141, 138, 140, 139, 140, 136, 133, 138, 147, 139, 138, 139, 135, 140, 147, 141, 140, 138, 142, 124, 128, 135, 143, 143, 134, 142, 139, 140, 130, 137, 139, 141, 143, 133, 150, 159, 135, 142, 134, 128, 140, 142, 143, 139, 138, 142, 145, 141, 137, 140, 137, 136, 136, 142, 141, 135, 131, 135, 138, 136, 135, 140, 140, 141, 141, 144, 134, 140, 137, 145, 135, 145, 138, 135, 141, 139, 129, 135, 133, 140, 140, 133, 139, 137, 136, 138, 138, 143, 142, 136, 142, 137, 136, 139, 134, 139, 138, 134, 137, 136, 142, 136, 145, 132, 140, 137, 142, 141, 145, 144, 135, 137, 134, 141, 139, 145, 138, 145, 145, 131, 139, 141, 139, 134, 140, 137, 141, 141, 142, 142, 138, 141, 137, 135, 139, 132, 140, 136, 138, 140, 143, 140, 144, 138, 137, 139, 138, 136, 151, 144, 146, 140, 134, 139, 139, 139, 140, 140, 137, 138, 139, 136, 149, 136, 142, 128, 137, 137, 144, 139, 140, 142, 144, 135, 140, 138, 139, 138, 139, 137, 134, 141, 141, 141, 135, 141, 141, 145, 136, 137, 138, 137, 142, 140, 143, 135, 139, 139, 138, 140, 148, 148, 141, 141, 137, 140, 140, 139, 138, 137, 132, 141, 143, 139, 142, 137, 143, 142, 140, 139, 139, 140, 137, 140, 139, 142, 134, 136, 144, 136, 138, 134, 140, 141, 139, 141, 144, 146, 135, 143, 140, 144, 139, 136, 138, 135, 137, 145, 140, 145, 139, 136, 136, 134, 146, 147, 143, 129, 141, 138, 139, 138, 144, 137, 135, 145, 135, 141, 134, 138, 142, 146, 137, 137, 141, 133, 133, 143, 138, 135, 140, 139, 142, 144, 135, 141, 136, 133, 142, 139, 133, 140, 141, 136, 131, 140, 140, 147, 135, 139, 139, 138, 145, 137, 128, 139, 140, 137, 138, 140, 142, 127, 136, 141, 130, 135, 138, 133, 140, 142, 142, 140, 142, 142, 147, 135, 139, 140, 139, 139, 143, 142, 140, 134, 143, 143, 137, 141, 133, 138, 139, 142, 138, 142, 140, 144, 136, 134, 137, 141, 138, 146, 132, 134, 143, 143, 139, 136, 141, 140, 140, 140, 144, 140, 141, 143, 134, 137, 141, 137, 139, 134, 136, 146, 144, 134, 138, 145, 149, 141, 136, 142, 142, 131, 132, 134, 138, 138, 135, 138, 139, 150, 142, 141, 144, 138, 134, 138, 132, 138, 143, 139, 126, 137, 139, 139, 139, 138, 132, 138, 141, 142, 142, 139, 136, 138, 140, 138, 140, 135, 134, 144, 139, 143, 144, 138, 136, 139, 139, 146, 145, 139, 132, 144, 140, 134, 139, 143, 138, 140, 133, 142, 140, 140, 140, 142, 146, 143, 137, 140, 143, 144, 140, 136, 142, 140, 142, 142, 140, 138, 145, 135, 137, 133, 139, 135, 139, 136, 145, 132, 136, 137, 136, 139, 137, 134, 137, 122, 133, 138, 119, 140, 142, 142, 135, 134, 141, 135, 139, 137, 138, 138, 135, 141, 136, 137, 136, 139, 135, 134, 141, 134, 139, 141, 137, 137, 133, 136, 145, 143, 133, 142, 134, 137, 138, 135, 140, 140, 138, 147, 142, 134, 144, 143, 137, 144, 143, 137, 139, 138, 141, 136, 138, 111, 133, 138, 136, 136, 131, 138, 136, 141, 136, 142, 141, 138, 146, 159, 138, 137, 140, 141, 143, 139, 136, 137, 143, 137, 140, 133, 137, 140, 137, 141, 137, 141, 135, 138, 125, 145, 133, 128, 138, 139, 140, 137, 134, 142, 139, 141, 134, 145, 139, 141, 137, 144, 136, 142, 139, 127, 139, 133, 139, 138, 142, 140, 137, 141, 138, 133, 131, 137, 138, 138, 140, 135, 137, 130, 138, 140, 144, 141, 137, 145, 138, 135, 138, 134, 139, 142, 142, 142, 134, 136, 139, 138, 139, 142, 140, 135, 140, 136, 133, 138, 140, 134, 134, 134, 147, 139, 137, 137, 136, 139, 140, 144, 137, 138, 138, 135, 137, 136, 136, 139, 139, 135, 135, 141, 139, 136, 118, 137, 126, 142, 141, 135, 142, 136, 142, 138, 132, 134, 136, 142, 143, 132, 142, 143, 141, 142, 137, 147, 138, 137, 139, 137, 142, 143, 143, 137, 137, 132, 138, 141, 139, 139, 137, 141, 142, 132, 144, 145, 137, 138, 139, 147, 137, 136, 135, 134, 138, 136, 136, 139, 144, 144, 139, 138, 141, 139, 138, 137, 136, 137, 139, 136, 138, 137, 136, 136, 136, 136, 184, 153, 138, 142, 134, 141, 138, 143, 146, 132, 133, 138, 130, 141, 145, 142, 131, 140, 142, 137, 137, 140, 135, 144, 137, 137, 134, 134, 140, 137, 139, 139, 131, 140, 135, 134, 137, 140, 112, 141, 140, 141, 140, 140, 119, 140, 141, 138, 133, 137, 139, 138, 141, 136, 142, 139, 135, 140, 133, 137, 137, 139, 137, 143, 141, 136, 136, 136, 136, 145, 133, 138, 131, 134, 141, 142, 143, 135, 137, 134, 137, 137, 139, 141, 137, 141, 141, 135, 140, 144, 150, 140, 140, 146, 145, 140, 122, 143, 134, 139, 137, 135, 138, 139, 137, 124, 141, 124, 138, 136, 140, 141, 141, 142, 141, 142, 141, 142, 116, 140, 134, 143, 139, 134, 140, 139, 137, 142, 150, 138, 139, 147, 126, 138, 138, 143, 131, 137, 141, 137, 144, 137, 135, 130, 143, 131, 138, 139, 143, 139, 139, 143, 141, 138, 140, 139, 141, 141, 140, 138, 141, 142, 144, 136, 144, 128, 140, 142, 142, 133, 136, 141, 135, 138, 131, 141, 138, 137, 141, 135, 139, 133, 137, 136, 134, 136, 142, 139, 139, 138, 138, 138, 131, 137, 136, 136, 144, 134, 139, 136, 135, 140, 138, 134, 133, 140, 138, 135, 144, 139, 140, 136, 126, 138, 131, 140, 139, 140, 138, 137, 134, 143, 145, 135, 139, 142, 140, 137, 134, 131, 136, 137, 137, 138, 165, 136, 140, 138, 137, 140, 140, 132, 136, 142, 135, 136, 135, 139, 144, 132, 141, 140, 144, 136, 140, 139, 141, 141, 137, 148, 135, 136, 133, 140, 137, 143, 138, 135, 143, 140, 150, 144, 141, 138, 143, 134, 133, 144, 138, 139, 139, 142, 147, 130, 142, 139, 153, 134, 141, 141, 132, 140, 139, 139, 134, 138, 143, 138, 144, 140, 132, 145, 138, 139, 129, 146, 139, 142, 134, 133, 140, 131, 142, 133, 138, 142, 140, 143, 138, 140, 136, 138, 146, 143, 140, 144, 137, 146, 142, 140, 131, 129, 146, 139, 139, 140, 140, 142, 130, 139, 138, 144, 145, 136, 142, 135, 137, 138, 137, 131, 135, 132, 140, 144, 143, 144, 140, 140, 139, 150, 137, 142, 132, 145, 142, 151, 134, 139, 137, 140, 141, 135, 145, 137, 139, 146, 137, 140, 132, 144, 143, 134, 133, 139, 133, 141, 148, 134, 137, 139, 142, 148, 138, 143, 143, 143, 135, 139, 149, 142, 134, 144, 140, 138, 134, 145, 129, 140, 136, 131, 141, 138, 135, 139, 148, 150, 142, 135, 132, 144, 139, 142, 144, 140, 133, 135, 137, 140, 132, 143, 142, 136, 132, 132, 141, 134, 133, 140, 150, 135, 150, 146, 140, 138, 133, 133, 133, 147, 140, 140, 137, 138, 139, 138, 139, 139, 130, 145, 133, 135, 134, 146, 135, 138, 129, 138, 133, 137, 135, 139, 148, 141, 142, 135, 143, 141, 134, 137, 141, 139, 136, 142, 139, 137, 140, 141, 144, 144, 135, 130, 135, 143, 142, 135, 139, 146, 141, 136, 139, 135, 135, 133, 137, 134, 139, 136, 135, 146, 141, 146, 142, 136, 145, 143, 140, 141, 136, 149, 149, 147, 142, 141, 141, 132, 125, 136, 138, 137, 140, 146, 140, 144, 145, 141, 138, 140, 132, 135, 136, 140, 142, 136, 132, 139, 139, 137, 146, 138, 147, 136, 144, 134, 143, 143, 139, 136, 133, 151, 143, 140, 135, 145, 136, 132, 137, 139, 128, 141, 143, 135, 137, 144, 128, 146, 140, 135, 142, 131, 142, 128, 135, 141, 141, 140, 141, 133, 138, 142, 144, 145, 135, 131, 141, 145, 143, 146, 139, 141, 140, 131, 135, 142, 138, 144, 141, 143, 147, 135, 135, 135, 134, 132, 134, 144, 138, 135, 137, 136, 144, 135, 135, 133, 131, 136, 132, 135, 140, 141, 133, 139, 137, 142, 135, 152, 142, 141, 141, 147, 129, 145, 133, 149, 136, 149, 132, 134, 144, 147, 134, 144, 143, 137, 144, 137, 145, 138, 141, 133, 132, 143, 139, 137, 142, 140, 146, 140, 139, 140, 136, 133, 141, 142, 138, 138, 132, 138, 135, 143, 140, 137, 140, 136, 144, 141, 131, 149, 144, 139, 149, 136, 145, 141, 134, 138, 134, 132, 139, 136, 141, 136, 136, 144, 142, 149, 136, 141, 142, 140, 148, 136, 139, 142, 142, 133, 136, 134, 138, 138, 135, 135, 136, 144, 134, 140, 132, 142, 139, 138, 134, 136, 130, 132, 135, 141, 140, 145, 136, 138, 132, 142, 130, 142, 138, 138, 143, 139, 142, 141, 142, 141, 136, 138, 138, 129, 135, 138, 142, 137, 134, 135, 138, 145, 130, 146, 136, 140, 133, 136, 143, 142, 142, 138, 137, 144, 133, 144, 153, 145, 139, 133, 144, 135, 132, 157, 141, 140, 126, 134, 139, 138, 146, 135, 140, 136, 134, 141, 143, 147, 135, 139, 134, 140, 140, 142, 140, 138, 150, 142, 145, 129, 149, 136, 151, 141, 146, 149, 136, 132, 142, 138, 146, 146, 137, 155, 143, 142, 139, 132, 142, 140, 139, 141, 140, 140, 132, 135, 144, 125, 136, 134, 138, 137, 144, 146, 129, 139, 147, 155, 134, 132, 134, 145, 128, 145, 132, 130, 151, 145, 148, 139, 139, 144, 141, 140, 139, 141, 130, 139, 135, 144, 134, 141, 142, 145, 136, 145, 136, 141, 144, 143, 143, 140, 147, 135, 151, 142, 145, 145, 139, 153, 129, 142, 140, 139, 140, 136, 143, 138, 139, 141, 141, 137, 148, 146, 135, 117, 136, 142, 137, 137, 147, 144, 135, 138, 136, 136, 142, 133, 137, 136, 140, 146, 136, 143, 138, 139, 135, 132, 137, 137, 133, 142, 140, 143, 131, 133, 139, 139, 136, 131, 128, 131, 131, 136, 145, 141, 136, 129, 130, 145, 138, 131, 142, 140, 137, 127, 136, 140, 145, 139, 143, 138, 138, 139, 135, 140, 136, 142, 141, 142, 144, 142, 142, 148, 146, 131, 150, 140, 138, 139, 131, 140, 137, 134, 139, 128, 142, 141, 142, 144, 138, 139, 138, 135, 138, 142, 134, 136, 139, 137, 151, 134, 140, 135, 140, 144, 143, 146, 141, 135, 136, 137, 139, 149, 142, 134, 152, 130, 138, 134, 129, 138, 140, 142, 132, 143, 134, 138, 129, 148, 130, 134, 134, 145, 150, 132, 145, 136, 140, 130, 135, 142, 135, 139, 139, 129, 134, 142, 137, 140, 140, 140, 136, 137, 143, 136, 134, 148, 140, 153, 142, 134, 141, 133, 132, 139, 140, 131, 141, 138, 141, 139, 137, 135, 139, 138, 151, 139, 143, 135, 143, 131, 138, 142, 130, 133, 145, 134, 133, 137, 148, 147, 143, 135, 137, 138, 146, 130, 144, 147, 151, 140, 147, 134, 136, 151, 144, 147, 146, 139, 137, 129, 135, 133, 142, 144, 134, 148, 148, 126, 147, 146, 142, 136, 136, 129, 136, 133, 131, 143, 137, 153, 135, 133, 136, 134, 141, 140, 135, 146, 134, 129, 145, 146, 134, 138, 140, 132, 138, 155, 132, 143, 142, 141, 144, 138, 143, 141, 141, 147, 136, 133, 132, 139, 137, 138, 140, 136, 128, 144, 143, 140, 139, 145, 139, 136, 136, 144, 147, 134, 148, 136, 137, 138, 139, 132, 136, 131, 130, 134, 135, 136, 142, 142, 141, 136, 145, 151, 142, 145, 138, 146, 140, 133, 136, 134, 129, 134, 138, 135, 144, 143, 150, 137, 141, 143, 139, 137, 139, 139, 142, 147, 140, 142, 133, 136, 138, 135, 128, 145, 135, 142, 141, 143, 141, 142, 146, 130, 139, 126, 134, 129, 135, 143, 133, 137, 142, 144, 134, 137, 133, 131, 142, 144, 147, 137, 150, 138, 139, 134, 142, 135, 132, 148, 126, 139, 139, 137, 141, 142, 128, 138, 136, 140, 145, 143, 135, 137, 135, 141, 141, 139, 136, 139, 142, 138, 142, 136, 143, 143, 139, 141, 144, 140, 142, 139, 140, 136, 135, 137, 143, 140, 141, 138, 140, 140, 142, 136, 145, 136, 138, 140, 132, 138, 130, 139, 139, 142, 140, 139, 139, 132, 137, 144, 141, 131, 138, 137, 135, 135, 146, 141, 135, 136, 130, 139, 144, 136, 141, 134, 135, 138, 142, 137, 134, 139, 139, 135, 137, 135, 140, 136, 138, 136, 138, 144, 136, 139, 136, 138, 136, 135, 142, 135, 137, 139, 138, 140, 146, 143, 143, 136, 141, 148, 137, 136, 140, 140, 136, 139, 142, 148, 143, 139, 139, 143, 136, 133, 140, 140, 139, 139, 131, 135, 131, 139, 139, 136, 133, 136, 146, 138, 142, 139, 140, 135, 135, 136, 143, 145, 133, 135, 139, 141, 140, 144, 140, 143, 139, 141, 139, 138, 146, 141, 138, 137, 141, 137, 140, 142, 142, 139, 142, 135, 143, 145, 140, 135, 137, 135, 131, 144, 137, 133, 142, 140, 140, 139, 136, 136, 141, 142, 140, 139, 139, 138, 145, 137, 141, 137, 142, 139, 138, 141, 130, 141, 138, 130, 136, 139, 141, 141, 142, 143, 140, 137, 138, 135, 143, 142, 141, 132, 138, 144, 145, 137, 139, 136, 148, 138, 139, 140, 144, 142, 139, 139, 137, 141, 135, 137, 141, 135, 139, 132, 138, 134, 143, 137, 135, 136, 138, 137, 137, 144, 139, 142, 142, 141, 143, 137, 140, 139, 134, 136, 139, 134, 142, 140, 138, 135, 139, 139, 137, 139, 142, 136, 139, 140, 136, 141, 140, 141, 135, 132, 143, 137, 136, 134, 146, 135, 139, 147, 143, 143, 136, 138, 136, 138, 137, 143, 135, 139, 137, 138, 140, 138, 137, 141, 139, 137, 140, 145, 139, 138, 139, 137, 141, 138, 143, 140, 145, 137, 148, 137, 154, 139, 139, 137, 144, 140, 138, 135, 141, 143, 141, 139, 140, 139, 139, 146, 140, 139, 139, 144, 138, 137, 138, 137, 138, 145, 142, 137, 136, 136, 140, 136, 137, 139, 139, 140, 140, 144, 145, 142, 137, 141, 146, 139, 139, 141, 132, 142, 144, 146, 141, 143, 143, 138, 138, 137, 138, 143, 139, 142, 137, 139, 140, 138, 142, 137, 135, 134, 143, 133, 140, 140, 142, 138, 136, 140, 141, 139, 137, 133, 138, 139, 143, 139, 145, 136, 133, 143, 140, 134, 131, 138, 130, 135, 137, 143, 135, 140, 139, 142, 146, 143, 142, 134, 145, 138, 144, 140, 151, 139, 143, 136, 137, 138, 134, 139, 135, 132, 139, 139, 139, 139, 143, 137, 141, 139, 142, 136, 130, 138, 134, 137, 134, 138, 138, 138, 140, 145, 133, 140, 138, 135, 133, 141, 138, 135, 140, 132, 142, 141, 140, 132, 135, 146, 138, 134, 135, 138, 135, 133, 135, 141, 139, 139, 139, 147, 144, 139, 132, 140, 139, 138, 138, 142, 147, 140, 136, 146, 139, 141, 138, 136, 142, 140, 140, 141, 133, 144, 140, 137, 134, 137, 137, 141, 143, 140, 142, 141, 136, 146, 137, 129, 137, 132, 136, 140, 142, 140, 136, 132, 144, 160, 141, 136, 136, 134, 134, 139, 142, 136, 142, 146, 140, 134, 132, 138, 134, 141, 139, 141, 145, 133, 139, 141, 133, 152, 139, 131, 141, 140, 135, 135, 145, 145, 143, 152, 138, 139, 132, 137, 139, 134, 146, 136, 145, 144, 135, 134, 137, 139, 142, 142, 137, 129, 131, 146, 141, 151, 143, 143, 139, 131, 135, 131, 135, 145, 144, 135, 141, 144, 140, 137, 143, 146, 139, 135, 131, 128, 133, 140, 135, 136, 140, 143, 136, 145, 136, 134, 146, 141, 139, 146, 138, 139, 138, 147, 138, 138, 136, 138, 135, 137, 138, 140, 139, 135, 140, 137, 144, 141, 142, 138, 130, 132, 140, 133, 149, 136, 132, 135, 131, 143, 150, 134, 137, 143, 131, 134, 140, 136, 140, 147, 135, 134, 139, 128, 129, 144, 139, 139, 138, 142, 128, 149, 134, 141, 135, 137, 140, 136, 133, 136, 147, 139, 145, 140, 136, 142, 137, 140, 143, 140, 145, 132, 138, 137, 134, 135, 140, 147, 130, 140, 136, 143, 151, 134, 131, 136, 140, 139, 136, 142, 139, 138, 132, 142, 124, 135, 142, 148, 141, 142, 134, 139, 136, 134, 137, 147, 124, 136, 145, 132, 144, 131, 139, 144, 141, 135, 142, 138, 149, 144, 130, 132, 140, 139, 136, 132, 150, 144, 138, 140, 142, 133, 144, 149, 134, 134, 138, 141, 138, 130, 142, 142, 134, 137, 138, 133, 148, 130, 140, 148, 130, 135, 138, 134, 148, 139, 142, 137, 154, 146, 137, 142, 141, 139, 138, 140, 141, 144, 137, 130, 133, 133, 142, 137, 137, 136, 139, 141, 133, 146, 139, 139, 129, 140, 135, 135, 146, 141, 142, 136, 133, 139, 146, 144, 134, 152, 138, 143, 129, 132, 135, 131, 149, 136, 123, 139, 137, 141, 150, 137, 136, 142, 149, 140, 149, 144, 142, 127, 138, 139, 137, 147, 142, 140, 131, 135, 129, 141, 143, 139, 135, 143, 134, 133, 147, 141, 138, 138, 141, 138, 141, 145, 133, 136, 144, 134, 143, 130, 132, 132, 137, 137, 139, 148, 137, 137, 128, 139, 141, 133, 130, 134, 138, 143, 136, 137, 136, 132, 136, 144, 136, 141, 132, 146, 133, 131, 140, 144, 134, 137, 133, 139, 134, 144, 135, 139, 136, 153, 132, 144, 134, 147, 140, 151, 138, 131, 145, 140, 143, 143, 147, 136, 137, 139, 132, 139, 124, 137, 136, 138, 138, 148, 135, 141, 140, 141, 135, 125, 130, 148, 145, 138, 137, 136, 133, 138, 130, 126, 143, 136, 143, 137, 147, 136, 147, 138, 137, 140, 129, 141, 132, 141, 137, 144, 135, 143, 131, 140, 130, 146, 147, 141, 136, 141, 146, 138, 136, 139, 133, 135, 137, 146, 135, 143, 147, 146, 136, 129, 130, 135, 135, 144, 140, 137, 140, 138, 135, 135, 136, 138, 134, 138, 136, 138, 139, 136, 136, 135, 133, 134, 136, 136, 141, 132, 148, 132, 138, 141, 148, 148, 136, 148, 138, 134, 138, 140, 137, 144, 134, 138, 145, 126, 145, 132, 131, 129, 143, 135, 133, 137, 141, 137, 138, 137, 130, 141, 137, 141, 139, 150, 137, 140, 146, 137, 151, 136, 138, 140, 141, 146, 134, 143, 140, 154, 146, 132, 135, 128, 136, 139, 136, 148, 142, 140, 137, 142, 129, 137, 145, 139, 128, 133, 143, 140, 135, 141, 141, 135, 141, 141, 141, 134, 144, 128, 137, 129, 149, 130, 133, 137, 142, 133, 141, 139, 129, 140, 138, 144, 135, 140, 135, 134, 148, 133, 136, 142, 135, 144, 137, 128, 150, 139, 126, 144, 131, 131, 137, 155, 144, 130, 145, 127, 135, 137, 142, 138, 141, 140, 145, 136, 118, 147, 151, 142, 137, 133, 143, 132, 129, 142, 149, 149, 142, 145, 146, 138, 141, 140, 137, 129, 139, 141, 133, 134, 145, 152, 123, 133, 136, 136, 132, 127, 124, 133, 149, 143, 143, 145, 135, 138, 139, 132, 138, 140, 155, 144, 139, 123, 139, 135, 145, 139, 143, 134, 133, 147, 134, 138, 133, 137, 138, 142, 138, 146, 135, 138, 134, 142, 139, 132, 149, 129, 142, 140, 144, 141, 137, 141, 141, 144, 142, 129, 139, 144, 148, 146, 128, 128, 145, 135, 142, 147, 142, 139, 139, 140, 136, 138, 135, 145, 145, 139, 141, 128, 141, 141, 139, 137, 136, 139, 134, 128, 143, 133, 138, 124, 138, 133, 142, 137, 134, 143, 135, 139, 147, 142, 139, 132, 145, 146, 152, 154, 156, 142, 139, 115, 131, 148, 126, 142, 148, 149, 137, 127, 134, 141, 129, 139, 126, 148, 140, 141, 133, 144, 142, 143, 139, 140, 138, 135, 146, 145, 139, 136, 133, 143, 136, 147, 141, 143, 134, 139, 138, 149, 136, 141, 143, 139, 141, 137, 137, 143, 143, 137, 136, 133, 138, 134, 141, 136, 135, 129, 143, 151, 137, 132, 149, 139, 139, 156, 132, 139, 137, 133, 142, 140, 140, 138, 137, 145, 145, 135, 139, 139, 145, 136, 141, 150, 147, 145, 137, 135, 131, 137, 145, 132, 135, 133, 147, 128, 138, 132, 137, 133, 138, 142, 146, 136, 126, 119, 136, 136, 137, 140, 140, 137, 132, 145, 146, 133, 140, 135, 140, 143, 133, 141, 149, 135, 145, 141, 135, 140, 135, 137, 142, 142, 128, 145, 143, 136, 118, 137, 139, 130, 141, 140, 140, 149, 145, 140, 143, 142, 131, 134, 132, 142, 139, 146, 134, 135, 135, 144, 134, 126, 140, 130, 146, 132, 143, 148, 143, 147, 130, 142, 135, 133, 137, 140, 141, 135, 138, 138, 143, 136, 131, 143, 140, 129, 127, 134, 136, 133, 136, 131, 139, 143, 141, 136, 145, 133, 146, 142, 131, 133, 134, 145, 142, 136, 142, 137, 144, 123, 141, 132, 122, 140, 150, 141, 135, 143, 136, 138, 141, 146, 139, 139, 139, 140, 147, 142, 129, 150, 141, 156, 134, 137, 124, 147, 131, 137, 133, 142, 123, 144, 142, 140, 142, 138, 143, 137, 142, 136, 153, 135, 135, 131, 142, 137, 142, 132, 148, 139, 137, 135, 141, 141, 133, 137, 145, 147, 132, 135, 128, 141, 137, 131, 141, 138, 140, 142, 131, 133, 137, 143, 135, 141, 129, 146, 137, 140, 139, 142, 135, 133, 136, 134, 142, 136, 141, 145, 131, 142, 138, 153, 139, 137, 133, 134, 151, 141, 145, 127, 140, 151, 151, 146, 148, 129, 131, 140, 138, 119, 139, 137, 136, 139, 133, 148, 144, 130, 138, 140, 138, 133, 146, 122, 137, 135, 133, 142, 132, 143, 134, 132, 132, 137, 140, 132, 146, 140, 139, 141, 142, 138, 144, 136, 139, 133, 138, 147, 134, 143, 126, 130, 134, 143, 136, 140, 151, 139, 137, 147, 133, 142, 138, 139, 133, 148, 138, 142, 140, 134, 132, 133, 134, 135, 139, 141, 140, 138, 138, 144, 135, 134, 136, 133, 144, 131, 141, 136, 142, 146, 136, 143, 139, 136, 130, 146, 131, 144, 142, 143, 148, 132, 137, 138, 132, 138, 130, 150, 140, 137, 136, 133, 137, 147, 134, 147, 148, 138, 142, 132, 141, 138, 145, 132, 141, 134, 143, 157, 140, 130, 136, 144, 140, 143, 143, 143, 141, 143, 143, 138, 142, 133, 136, 146, 133, 137, 143, 135, 132, 140, 147, 143, 143, 142, 129, 135, 128, 137, 137, 147, 145, 140, 134, 144, 138, 132, 134, 142, 140, 144, 154, 140, 136, 136, 134, 131, 141, 134, 130, 149, 136, 141, 135, 130, 142, 127, 138, 137, 141, 137, 136, 139, 139, 135, 138, 133, 134, 135, 149, 142, 137, 132, 135, 124, 141, 144, 136, 136, 132, 134, 147, 142, 128, 136, 135, 140, 139, 135, 137, 137, 140, 141, 132, 138, 142, 134, 138, 138, 141, 144, 142, 147, 132, 142, 138, 138, 131, 143, 129, 139, 137, 141, 137, 141, 141, 139, 139, 141, 141, 135, 138, 143, 148, 137, 133, 136, 134, 140, 137, 142, 138, 131, 145, 129, 134, 143, 138, 133, 141, 141, 138, 134, 146, 144, 143, 147, 141, 148, 127, 128, 139, 139, 135, 145, 133, 143, 135, 136, 151, 142, 149, 143, 141, 137, 137, 133, 141, 144, 143, 135, 135, 137, 134, 143, 139, 153, 152, 146, 127, 134, 141, 132, 138, 131, 142, 137, 141, 137, 132, 135, 143, 140, 135, 130, 137, 145, 135, 146, 139, 133, 146, 136, 126, 141, 137, 135, 137, 147, 148, 136, 134, 138, 133, 138, 138, 135, 147, 143, 140, 145, 141, 141, 144, 140, 145, 143, 134, 141, 147, 147, 140, 142, 129, 150, 136, 138, 134, 136, 140, 141, 133, 131, 140, 140, 144, 131, 135, 133, 139, 137, 133, 148, 145, 140, 142, 152, 136, 146, 156, 140, 142, 134, 143, 140, 133, 145, 136, 136, 133, 131, 143, 123, 149, 148, 131, 131, 138, 139, 140, 136, 136, 134, 130, 137, 137, 147, 137, 133, 136, 141, 131, 136, 136, 141, 144, 125, 136, 137, 143, 124, 133, 150, 138, 144, 135, 137, 128, 160, 133, 145, 142, 134, 133, 132, 148, 130, 135, 146, 138, 140, 131, 136, 140, 130, 137, 140, 140, 141, 146, 144, 132, 137, 126, 140, 135, 143, 121, 136, 131, 140, 132, 134, 132, 134, 146, 136, 146, 135, 131, 136, 132, 137, 138, 139, 145, 135, 139, 130, 137, 140, 141, 129, 141, 135, 121, 147, 146, 135, 139, 133, 135, 143, 143, 143, 140, 142, 131, 144, 140, 141, 130, 144, 136, 133, 136, 132, 126, 127, 148, 131, 133, 142, 141, 146, 140, 126, 131, 146, 139, 142, 133, 133, 140, 137, 134, 130, 140, 137, 139, 136, 144, 143, 141, 140, 134, 142, 137, 137, 137, 140, 144, 143, 129, 140, 139, 134, 132, 142, 132, 135, 137, 144, 137, 139, 148, 135, 142, 127, 140, 146, 135, 140, 138, 133, 159, 141, 137, 139, 145, 146, 146, 135, 134, 141, 131, 146, 141, 137, 143, 145, 139, 138, 140, 138, 141, 131, 148, 136, 137, 148, 136, 133, 140, 143, 141, 137, 135, 143, 134, 134, 135, 142, 139, 137, 145, 149, 137, 141, 140, 142, 140, 138, 133, 138, 137, 136, 137, 130, 138, 151, 146, 141, 134, 142, 125, 136, 132, 133, 139, 135, 136, 143, 139, 134, 139, 141, 141, 146, 142, 131, 143, 136, 139, 142, 135, 145, 145, 140, 142, 135, 139, 140, 141, 138, 129, 139, 136, 150, 141, 133, 131, 140, 145, 138, 140, 140, 131, 148, 135, 140, 143, 151, 138, 137, 139, 142, 145, 132, 156, 143, 137, 133, 137, 147, 143, 141, 154, 145, 134, 142, 133, 139, 148, 149, 131, 136, 142, 134, 129, 140, 137, 149, 147, 151, 139, 146, 134, 130, 133, 144, 145, 147, 143, 142, 134, 141, 137, 139, 142, 139, 136, 143, 140, 147, 137, 130, 136, 135, 145, 129, 144, 145, 137, 141, 133, 137, 136, 138, 134, 146, 145, 139, 142, 139, 142, 142, 142, 143, 142, 141, 138, 137, 137, 143, 137, 142, 137, 135, 146, 143, 134, 129, 135, 136, 144, 143, 161, 138, 146, 146, 139, 148, 140, 136, 140, 142, 140, 143, 145, 132, 143, 136, 143, 149, 144, 147, 144, 151, 140, 144, 149, 145, 142, 135, 140, 139, 141, 146, 128, 144, 135, 137, 137, 133, 140, 136, 142, 137, 136, 145, 132, 133, 138, 137, 126, 146, 138, 137, 135, 145, 140, 136, 136, 138, 143, 141, 140, 139, 138, 136, 145, 139, 138, 146, 134, 138, 137, 135, 139, 138, 146, 137, 133, 140, 135, 137, 140, 138, 140, 140, 134, 144, 146, 151, 138, 141, 132, 136, 137, 150, 141, 140, 138, 142, 134, 144, 133, 149, 143, 140, 133, 135, 145, 139, 142, 135, 135, 143, 134, 135, 137, 136, 132, 141, 134, 133, 136, 139, 139, 143, 142, 133, 142, 133, 146, 141, 134, 137, 150, 143, 145, 135, 142, 148, 138, 142, 146, 135, 147, 140, 135, 144, 143, 137, 147, 137, 135, 134, 139, 145, 137, 139, 136, 144, 136, 139, 138, 146, 135, 136, 134, 137, 141, 151, 137, 143, 140, 144, 137, 143, 140, 135, 133, 141, 137, 137, 150, 120, 140, 140, 144, 143, 133, 138, 146, 137, 135, 134, 135, 138, 137, 134, 137, 141, 139, 143, 139, 143, 139, 146, 141, 135, 145, 144, 142, 132, 137, 142, 140, 133, 136, 144, 132, 142, 139, 139, 141, 142, 142, 138, 137, 142, 145, 142, 137, 139, 124, 145, 132, 148, 139, 133, 130, 147, 154, 143, 138, 145, 121, 135, 137, 132, 136, 132, 128, 130, 146, 141, 133, 137, 141, 137, 139, 143, 150, 144, 134, 124, 135, 126, 136, 144, 140, 131, 139, 138, 140, 131, 144, 133, 139, 133, 129, 140, 135, 135, 141, 148, 138, 141, 147, 132, 147, 138, 136, 154, 136, 134, 142, 140, 147, 142, 143, 133, 143, 135, 139, 135, 141, 149, 143, 133, 148, 142, 138, 139, 138, 141, 134, 142, 124, 145, 146, 128, 135, 138, 135, 137, 145, 145, 132, 146, 143, 131, 137, 139, 148, 141, 142, 131, 146, 133, 142, 129, 146, 140, 134, 145, 145, 140, 142, 140, 150, 135, 139, 136, 147, 141, 135, 142, 147, 135, 137, 134, 140, 139, 143, 139, 141, 149, 135, 139, 138, 147, 132, 134, 134, 141, 138, 135, 135, 134, 137, 146, 145, 141, 127, 128, 137, 133, 137, 138, 128, 135, 142, 140, 135, 138, 129, 142, 140, 132, 131, 143, 137, 140, 142, 136, 132, 113, 137, 147, 141, 136, 141, 130, 140, 137, 131, 139, 132, 135, 153, 136, 147, 145, 147, 139, 137, 141, 156, 137, 127, 137, 135, 131, 132, 142, 133, 135, 132, 142, 140, 140, 147, 145, 132, 136, 133, 149, 138, 133, 130, 143, 142, 142, 135, 130, 141, 138, 131, 141, 133, 148, 138, 144, 135, 149, 138, 142, 134, 146, 145, 149, 138, 146, 139, 140, 140, 139, 132, 154, 118, 146, 128, 137, 145, 139, 140, 138, 128, 139, 136, 126, 143, 135, 156, 142, 140, 135, 143, 143, 143, 136, 148, 143, 143, 133, 131, 150, 137, 129, 137, 145, 147, 139, 144, 135, 137, 140, 143, 138, 147, 134, 136, 146, 135, 150, 137, 133, 147, 132, 145, 136, 132, 140, 137, 141, 135, 121, 139, 147, 132, 133, 145, 143, 141, 143, 144, 134, 138, 138, 135, 141, 143, 149, 137, 128, 139, 135, 133, 145, 139, 144, 144, 153, 135, 138, 140, 147, 132, 146, 132, 141, 139, 129, 143, 144, 144, 139, 141, 135, 130, 144, 135, 138, 138, 133, 139, 128, 143, 144, 140, 140, 148, 143, 142, 135, 134, 138, 133, 144, 147, 130, 133, 126, 143, 148, 145, 137, 132, 136, 133, 141, 145, 128, 148, 136, 144, 144, 131, 138, 137, 138, 143, 135, 143, 136, 137, 139, 135, 146, 138, 134, 132, 140, 145, 135, 145, 145, 133, 138, 138, 138, 143, 133, 147, 137, 128, 142, 149, 135, 136, 138, 140, 145, 131, 147, 135, 142, 135, 135, 139, 132, 142, 137, 142, 126, 134, 125, 143, 133, 147, 139, 137, 133, 140, 140, 150, 132, 137, 151, 138, 142, 142, 133, 144, 141, 133, 139, 136, 141, 144, 130, 141, 143, 140, 132, 133, 140, 145, 139, 131, 138, 141, 136, 135, 138, 133, 136, 143, 138, 142, 141, 141, 139, 149, 133, 141, 143, 143, 145, 146, 150, 136, 135, 140, 138, 148, 144, 140, 144, 136, 132, 136, 141, 135, 134, 145, 143, 145, 133, 133, 136, 141, 133, 137, 150, 141, 141, 143, 134, 131, 130, 148, 136, 138, 142, 131, 152, 138, 135, 136, 135, 148, 138, 140, 135, 140, 139, 135, 136, 141, 145, 133, 139, 129, 142, 140, 138, 141, 133, 146, 133, 143, 128, 134, 133, 141, 128, 133, 135, 136, 137, 136, 135, 139, 136, 147, 132, 138, 142, 134, 132, 141, 137, 133, 142, 143, 129, 140, 139, 134, 138, 135, 131, 146, 137, 148, 134, 135, 136, 143, 132, 137, 142, 137, 140, 135, 137, 128, 130, 129, 134, 143, 140, 140, 129, 139, 134, 138, 138, 133, 146, 152, 137, 137, 143, 133, 137, 125, 150, 136, 140, 132, 135, 133, 144, 143, 130, 138, 134, 136, 134, 141, 148, 140, 142, 133, 129, 141, 147, 143, 134, 144, 148, 143, 139, 136, 132, 130, 136, 135, 139, 135, 142, 133, 148, 147, 150, 137, 132, 141, 144, 142, 138, 138, 142, 140, 129, 142, 145, 132, 132, 139, 136, 134, 141, 136, 137, 136, 136, 148, 144, 138, 137, 133, 134, 135, 124, 134, 136, 137, 138, 133, 138, 146, 143, 145, 149, 140, 148, 137, 143, 147, 130, 128, 144, 135, 134, 128, 139, 142, 136, 141, 138, 143, 139, 144, 135, 141, 136, 133, 139, 147, 142, 136, 137, 127, 147, 151, 140, 135, 129, 145, 140, 139, 132, 139, 148, 138, 142, 145, 135, 139, 133, 143, 137, 143, 153, 137, 139, 139, 134, 135, 136, 140, 136, 139, 142, 138, 133, 136, 135, 142, 140, 145, 144, 137, 128, 142, 136, 127, 132, 136, 136, 144, 143, 134, 135, 135, 148, 131, 139, 135, 132, 133, 137, 141, 136, 126, 140, 135, 135, 144, 135, 137, 134, 141, 133, 137, 136, 146, 143, 131, 122, 133, 133, 146, 124, 152, 145, 143, 132, 142, 123, 138, 129, 143, 134, 133, 138, 133, 131, 135, 143, 144, 139, 131, 144, 133, 139, 142, 140, 143, 136, 137, 136, 134, 145, 139, 140, 143, 139, 133, 132, 147, 137, 137, 135, 150, 129, 136, 125, 133, 136, 132, 126, 145, 136, 133, 139, 131, 137, 137, 148, 142, 148, 142, 134, 132, 136, 149, 136, 142, 132, 129, 132, 135, 138, 151, 140, 146, 144, 141, 147, 137, 135, 143, 146, 133, 149, 138, 134, 137, 134, 146, 149, 136, 136, 141, 136, 137, 136, 139, 145, 144, 145, 140, 134, 150, 137, 137, 139, 137, 150, 138, 132, 139, 143, 137, 137, 130, 131, 136, 131, 133, 137, 135, 142, 143, 143, 141, 131, 154, 135, 131, 142, 146, 133, 140, 150, 133, 143, 150, 134, 147, 151, 142, 138, 122, 131, 135, 137, 139, 139, 139, 134, 134, 133, 135, 141, 147, 147, 140, 141, 122, 141, 138, 129, 141, 147, 148, 140, 131, 136, 141, 144, 145, 143, 133, 133, 138, 136, 137, 137, 146, 150, 143, 143, 129, 132, 133, 143, 135, 151, 133, 146, 135, 142, 140, 153, 140, 131, 136, 146, 139, 138, 138, 133, 135, 136, 148, 145, 135, 140, 138, 137, 133, 146, 135, 142, 142, 136, 143, 139, 141, 140, 139, 144, 135, 140, 130, 141, 140, 142, 139, 140, 135, 140, 141, 142, 140, 141, 155, 135, 141, 140, 134, 136, 147, 141, 138, 141, 135, 138, 133, 137, 136, 138, 137, 127, 132, 137, 141, 137, 128, 146, 138, 140, 147, 133, 140, 137, 131, 141, 139, 142, 151, 136, 131, 144, 133, 144, 145, 138, 133, 140, 137, 139, 144, 135, 138, 139, 135, 135, 139, 136, 140, 140, 129, 133, 148, 138, 143, 136, 141, 136, 134, 147, 135, 132, 139, 137, 138, 136, 140, 140, 142, 141, 142, 146, 132, 139, 139, 135, 133, 140, 140, 141, 139, 135, 140, 135, 140, 136, 136, 143, 141, 141, 139, 137, 138, 140, 140, 132, 133, 134, 139, 131, 136, 138, 141, 139, 136, 148, 136, 138, 140, 138, 147, 140, 137, 139, 138, 143, 134, 150, 139, 137, 138, 134, 138, 134, 138, 134, 135, 145, 144, 141, 139, 141, 137, 138, 143, 141, 139, 143, 138, 147, 135, 140, 136, 139, 143, 136, 137, 143, 140, 141, 147, 139, 131, 135, 135, 144, 141, 145, 140, 135, 132, 141, 138, 138, 135, 143, 140, 147, 137, 134, 138, 139, 138, 138, 141, 138, 140, 144, 131, 133, 136, 136, 138, 138, 135, 136, 134, 140, 135, 131, 142, 134, 132, 143, 141, 140, 142, 137, 143, 137, 144, 144, 149, 139, 148, 140, 136, 134, 141, 146, 141, 127, 139, 139, 131, 138, 136, 132, 138, 129, 144, 140, 138, 135, 132, 139, 137, 143, 137, 141, 134, 136, 143, 141, 140, 139, 145, 140, 141, 142, 137, 143, 135, 139, 135, 144, 134, 139, 135, 148, 142, 135, 138, 133, 141, 141, 143, 141, 133, 132, 142, 138, 143, 134, 144, 142, 137, 141, 139, 136, 138, 137, 139, 148, 139, 140, 142, 140, 136, 139, 139, 139, 146, 143, 136, 135, 137, 129, 143, 139, 137, 137, 137, 134, 145, 135, 131, 143, 139, 128, 136, 143, 131, 128, 147, 144, 141, 138, 136, 136, 134, 137, 140, 133, 136, 138, 135, 148, 140, 143, 140, 142, 141, 140, 137, 144, 140, 133, 140, 140, 141, 145, 135, 140, 141, 133, 132, 134, 138, 141, 140, 135, 133, 141, 138, 137, 145, 138, 143, 139, 147, 136, 142, 153, 139, 131, 126, 139, 135, 134, 133, 147, 140, 136, 133, 137, 138, 144, 141, 141, 140, 134, 142, 147, 141, 135, 143, 137, 146, 139, 140, 144, 137, 138, 136, 141, 143, 137, 143, 131, 130, 141, 134, 140, 135, 134, 131, 136, 141, 141, 137, 145, 140, 141, 141, 137, 141, 139, 135, 139, 138, 153, 142, 131, 125, 137, 141, 143, 145, 145, 131, 139, 135, 138, 136, 139, 138, 143, 141, 139, 141, 148, 139, 141, 136, 136, 142, 141, 132, 137, 130, 139, 136, 139, 140, 140, 142, 133, 135, 136, 137, 141, 141, 138, 137, 135, 145, 134, 151, 134, 143, 139, 136, 140, 138, 133, 134, 137, 132, 134, 142, 127, 134, 134, 145, 128, 144, 144, 132, 132, 136, 136, 156, 144, 137, 126, 138, 137, 143, 125, 138, 142, 137, 146, 138, 136, 148, 139, 125, 135, 143, 142, 137, 143, 136, 143, 140, 134, 140, 135, 138, 138, 126, 154, 135, 127, 139, 139, 132, 129, 137, 138, 128, 135, 125, 143, 142, 139, 148, 140, 134, 128, 143, 133, 135, 141, 137, 142, 139, 147, 134, 142, 125, 136, 139, 123, 129, 135, 149, 142, 131, 132, 144, 138, 134, 145, 136, 139, 140, 145, 135, 140, 128, 141, 135, 139, 132, 134, 137, 141, 142, 147, 141, 148, 149, 155, 127, 138, 139, 137, 148, 130, 140, 138, 139, 144, 130, 141, 133, 142, 150, 137, 134, 148, 135, 133, 147, 139, 131, 142, 153, 141, 133, 144, 139, 137, 146, 158, 126, 127, 140, 137, 130, 134, 135, 142, 125, 144, 126, 128, 142, 126, 151, 141, 146, 137, 131, 131, 144, 139, 138, 123, 137, 130, 137, 141, 129, 146, 129, 143, 133, 138, 145, 126, 137, 140, 132, 157, 139, 146, 147, 129, 131, 139, 141, 145, 152, 139, 142, 136, 138, 145, 148, 133, 147, 137, 131, 132, 133, 139, 139, 136, 129, 138, 140, 143, 138, 154, 144, 156, 134, 140, 143, 131, 134, 133, 144, 147, 144, 135, 130, 145, 128, 145, 140, 143, 151, 131, 134, 157, 133, 133, 138, 138, 141, 140, 141, 132, 131, 150, 153, 135, 136, 143, 133, 134, 139, 124, 128, 156, 139, 133, 134, 131, 133, 144, 139, 152, 140, 137, 139, 131, 126, 138, 130, 134, 150, 142, 135, 145, 143, 137, 155, 140, 137, 135, 146, 131, 147, 134, 138, 135, 142, 134, 129, 146, 140, 139, 135, 129, 140, 149, 137, 140, 139, 134, 141, 132, 141, 131, 131, 123, 142, 133, 137, 138, 147, 140, 140, 148, 144, 130, 145, 151, 133, 152, 142, 139, 130, 138, 120, 142, 127, 136, 141, 142, 134, 129, 141, 134, 142, 147, 135, 139, 141, 140, 140, 134, 121, 132, 145, 133, 137, 131, 137, 142, 135, 136, 125, 127, 152, 141, 144, 143, 147, 145, 138, 142, 150, 141, 142, 136, 130, 141, 139, 147, 144, 134, 143, 144, 128, 157, 133, 148, 140, 137, 134, 147, 139, 140, 142, 136, 141, 142, 121, 153, 147, 148, 130, 145, 135, 129, 149, 135, 146, 151, 149, 143, 136, 142, 129, 139, 138, 134, 151, 141, 138, 146, 145, 145, 136, 141, 142, 134, 138, 137, 132, 138, 143, 139, 135, 139, 141, 145, 133, 135, 137, 137, 140, 137, 141, 137, 147, 133, 130, 139, 138, 141, 145, 135, 149, 150, 147, 142, 133, 143, 140, 139, 131, 145, 141, 141, 139, 144, 148, 120, 138, 134, 138, 143, 128, 139, 141, 132, 139, 137, 133, 137, 142, 136, 142, 137, 139, 133, 136, 140, 141, 135, 137, 130, 137, 139, 148, 142, 147, 134, 135, 134, 131, 131, 141, 141, 134, 148, 142, 139, 152, 144, 137, 128, 136, 122, 138, 138, 125, 127, 132, 148, 143, 135, 137, 132, 140, 135, 140, 147, 132, 139, 132, 141, 133, 138, 126, 140, 137, 138, 133, 139, 139, 139, 142, 143, 143, 131, 143, 141, 144, 140, 144, 135, 133, 143, 138, 143, 133, 139, 137, 145, 148, 142, 142, 137, 136, 142, 140, 136, 139, 138, 143, 132, 137, 147, 134, 130, 137, 144, 132, 139, 138, 145, 144, 133, 139, 133, 140, 142, 149, 138, 133, 137, 153, 135, 142, 135, 133, 143, 143, 140, 131, 137, 142, 144, 139, 137, 137, 134, 138, 137, 132, 139, 136, 135, 131, 137, 140, 139, 139, 139, 148, 139, 141, 140, 133, 143, 138, 135, 139, 135, 132, 132, 141, 136, 138, 138, 132, 138, 137, 133, 135, 144, 130, 154, 141, 141, 141, 137, 140, 145, 129, 140, 137, 134, 141, 136, 138, 135, 140, 135, 141, 145, 140, 134, 132, 140, 133, 134, 146, 140, 138, 138, 137, 143, 145, 143, 147, 147, 141, 136, 140, 133, 143, 137, 143, 139, 132, 136, 141, 132, 145, 144, 137, 136, 134, 150, 139, 136, 143, 137, 133, 140, 142, 129, 142, 145, 140, 135, 139, 129, 139, 138, 134, 140, 148, 135, 136, 137, 132, 135, 136, 142, 143, 133, 144, 139, 143, 141, 132, 131, 142, 146, 146, 145, 144, 139, 145, 134, 133, 139, 149, 138, 150, 147, 135, 137, 139, 134, 138, 133, 135, 136, 135, 140, 135, 140, 141, 138, 141, 145, 144, 143, 140, 137, 148, 150, 138, 141, 138, 135, 137, 136, 136, 140, 140, 139, 134, 141, 140, 139, 133, 141, 132, 133, 135, 138, 149, 132, 141, 137, 142, 141, 146, 140, 132, 144, 141, 141, 133, 140, 138, 134, 133, 131, 141, 135, 143, 141, 144, 143, 142, 134, 141, 146, 146, 143, 137, 140, 139, 146, 143, 147, 137, 133, 135, 135, 142, 145, 145, 144, 139, 140, 143, 137, 141, 141, 135, 141, 147, 139, 140, 139, 129, 139, 133, 151, 132, 133, 142, 137, 138, 135, 143, 137, 144, 138, 133, 137, 135, 141, 138, 141, 140, 133, 137, 149, 143, 146, 150, 141, 140, 141, 134, 146, 141, 149, 136, 130, 134, 148, 135, 149, 136, 136, 137, 142, 147, 144, 146, 144, 134, 138, 140, 137, 134, 136, 132, 137, 129, 130, 141, 142, 140, 140, 146, 141, 134, 144, 131, 141, 132, 144, 138, 128, 133, 131, 135, 152, 137, 138, 135, 134, 134, 137, 141, 138, 140, 130, 134, 136, 133, 139, 140, 144, 138, 138, 136, 134, 139, 146, 137, 136, 141, 138, 135, 145, 136, 141, 136, 147, 141, 132, 141, 142, 138, 129, 131, 142, 131, 138, 144, 141, 134, 141, 134, 144, 139, 141, 131, 132, 133, 142, 131, 140, 132, 133, 134, 141, 139, 153, 142, 144, 141, 144, 143, 140, 143, 135, 134, 139, 134, 134, 145, 136, 137, 137, 139, 140, 131, 146, 135, 144, 147, 144, 138, 136, 140, 147, 136, 138, 137, 136, 147, 145, 138, 141, 136, 139, 141, 137, 136, 135, 140, 138, 143, 135, 146, 142, 129, 129, 134, 140, 141, 138, 142, 131, 133, 142, 126, 141, 139, 137, 134, 132, 144, 141, 137, 138, 138, 132, 136, 139, 137, 140, 144, 137, 137, 142, 143, 139, 136, 141, 147, 132, 136, 138, 131, 135, 147, 145, 140, 140, 137, 142, 137, 141, 148, 138, 143, 131, 145, 138, 154, 137, 130, 135, 130, 140, 147, 140, 138, 143, 146, 146, 135, 137, 146, 148, 137, 128, 134, 139, 146, 140, 142, 145, 138, 142, 152, 138, 144, 133, 143, 135, 144, 143, 132, 149, 142, 131, 138, 127, 143, 134, 130, 118, 138, 142, 131, 121, 144, 142, 147, 144, 139, 143, 134, 139, 131, 141, 134, 129, 139, 131, 136, 144, 130, 138, 147, 141, 142, 134, 137, 138, 136, 143, 135, 138, 140, 135, 138, 135, 132, 147, 138, 141, 134, 134, 142, 145, 130, 143, 146, 150, 148, 147, 140, 139, 140, 141, 137, 142, 137, 142, 145, 132, 136, 142, 132, 138, 145, 127, 132, 143, 131, 140, 142, 137, 129, 142, 132, 131, 139, 136, 146, 126, 142, 143, 146, 132, 141, 146, 142, 140, 136, 141, 134, 141, 136, 148, 142, 136, 153, 142, 148, 143, 150, 129, 142, 134, 137, 133, 134, 147, 139, 116, 138, 134, 144, 141, 137, 151, 132, 139, 149, 140, 133, 141, 134, 136, 131, 133, 145, 137, 134, 139, 148, 139, 143, 129, 139, 133, 136, 135, 134, 133, 130, 151, 134, 133, 146, 137, 145, 142, 137, 140, 129, 145, 143, 128, 142, 145, 149, 133, 142, 143, 141, 122, 145, 134, 128, 141, 138, 131, 142, 143, 136, 140, 150, 137, 142, 135, 126, 148, 139, 130, 137, 145, 147, 131, 136, 128, 133, 134, 136, 140, 144, 142, 136, 143, 135, 137, 137, 139, 137, 139, 132, 133, 147, 133, 144, 135, 141, 131, 120, 139, 161, 122, 142, 146, 134, 136, 138, 132, 135, 137, 150, 148, 143, 145, 137, 138, 143, 140, 135, 144, 129, 141, 135, 141, 138, 139, 134, 145, 139, 146, 140, 138, 155, 142, 131, 146, 145, 135, 146, 150, 137, 131, 129, 126, 133, 134, 136, 153, 136, 144, 142, 131, 133, 128, 139, 129, 142, 142, 142, 135, 137, 136, 144, 144, 142, 133, 133, 137, 150, 143, 137, 142, 131, 131, 142, 139, 153, 143, 152, 142, 145, 131, 135, 141, 128, 143, 140, 133, 136, 147, 134, 135, 138, 140, 138, 145, 133, 142, 144, 137, 145, 133, 141, 142, 133, 139, 138, 138, 142, 142, 142, 135, 138, 139, 145, 134, 139, 139, 142, 139, 141, 135, 146, 155, 131, 142, 138, 143, 147, 140, 142, 137, 141, 133, 136, 149, 139, 137, 146, 142, 133, 138, 135, 137, 143, 137, 140, 141, 146, 142, 147, 133, 153, 146, 153, 140, 136, 147, 133, 137, 134, 138, 143, 129, 139, 143, 139, 140, 135, 144, 140, 131, 132, 157, 134, 137, 135, 136, 134, 135, 135, 134, 136, 145, 145, 138, 148, 137, 148, 140, 133, 138, 140, 144, 138, 143, 136, 135, 146, 136, 141, 134, 143, 139, 136, 142, 125, 139, 143, 123, 127, 131, 151, 135, 151, 140, 138, 139, 143, 144, 129, 138, 140, 140, 142, 139, 146, 132, 143, 140, 145, 136, 136, 145, 146, 137, 134, 135, 126, 136, 145, 139, 142, 135, 137, 137, 135, 142, 137, 137, 140, 130, 141, 127, 133, 135, 135, 144, 136, 137, 147, 137, 146, 129, 143, 131, 137, 129, 138, 138, 134, 151, 145, 131, 150, 133, 139, 139, 124, 137, 147, 135, 141, 132, 141, 134, 149, 135, 144, 138, 142, 135, 136, 146, 130, 139, 142, 145, 134, 136, 141, 139, 136, 143, 146, 135, 151, 140, 139, 130, 141, 141, 143, 130, 142, 135, 140, 136, 141, 130, 139, 143, 144, 138, 138, 141, 139, 130, 136, 144, 145, 138, 145, 139, 142, 141, 140, 140, 136, 144, 141, 133, 132, 144, 137, 144, 137, 138, 139, 130, 141, 141, 134, 132, 137, 144, 144, 140, 132, 131, 140, 141, 126, 147, 139, 145, 131, 136, 133, 134, 137, 132, 139, 142, 148, 146, 135, 138, 145, 130, 139, 136, 146, 138, 131, 151, 134, 136, 130, 135, 140, 141, 134, 140, 139, 137, 146, 138, 139, 131, 138, 138, 144, 137, 138, 137, 131, 137, 141, 143, 140, 140, 136, 138, 131, 142, 136, 142, 131, 140, 137, 137, 139, 141, 139, 149, 139, 131, 143, 145, 134, 133, 156, 141, 143, 137, 141, 145, 132, 142, 147, 135, 134, 140, 134, 140, 142, 135, 146, 132, 133, 140, 139, 134, 140, 140, 138, 145, 134, 147, 127, 138, 153, 142, 142, 145, 132, 136, 139, 135, 140, 140, 141, 130, 141, 147, 139, 138, 138, 137, 144, 135, 136, 143, 133, 133, 143, 138, 135, 135, 143, 131, 140, 141, 138, 139, 134, 136, 139, 148, 137, 147, 137, 145, 153, 143, 150, 141, 139, 144, 146, 135, 127, 133, 139, 147, 138, 146, 142, 143, 133, 146, 126, 145, 128, 138, 143, 136, 140, 136, 143, 145, 149, 133, 143, 139, 133, 134, 139, 132, 134, 130, 140, 149, 137, 144, 136, 135, 137, 137, 132, 134, 130, 149, 138, 135, 132, 129, 135, 132, 143, 139, 136, 142, 136, 143, 143, 138, 133, 133, 139, 131, 133, 138, 147, 140, 143, 134, 138, 144, 142, 148, 140, 143, 133, 142, 138, 138, 139, 142, 136, 140, 143, 135, 137, 127, 143, 145, 136, 133, 142, 141, 137, 136, 140, 146, 139, 138, 133, 141, 128, 127, 128, 143, 138, 136, 144, 135, 138, 142, 130, 148, 140, 143, 134, 136, 136, 130, 146, 141, 140, 127, 130, 140, 140, 137, 145, 133, 131, 119, 135, 139, 138, 134, 153, 124, 133, 141, 127, 135, 125, 136, 137, 142, 137, 138, 137, 140, 133, 136, 144, 145, 133, 132, 143, 148, 144, 147, 133, 141, 138, 142, 153, 140, 139, 132, 140, 127, 133, 143, 143, 139, 143, 138, 159, 138, 132, 132, 147, 147, 133, 139, 137, 141, 144, 137, 137, 144, 141, 143, 138, 135, 133, 126, 125, 139, 146, 145, 139, 137, 139, 146, 133, 135, 137, 141, 137, 146, 141, 129, 145, 136, 152, 138, 134, 138, 147, 140, 141, 139, 140, 139, 143, 140, 140, 153, 146, 139, 138, 141, 141, 139, 153, 140, 136, 139, 140, 133, 137, 141, 140, 141, 135, 137, 133, 146, 149, 142, 139, 141, 141, 137, 144, 132, 142, 138, 154, 130, 132, 142, 136, 143, 144, 143, 145, 143, 145, 147, 138, 139, 136, 137, 139, 134, 132, 140, 146, 137, 140, 142, 138, 139, 136, 140, 149, 133, 136, 134, 138, 140, 140, 137, 127, 136, 137, 139, 141, 137, 145, 134, 145, 138, 141, 132, 137, 141, 137, 142, 138, 141, 139, 125, 143, 137, 140, 136, 137, 137, 137, 138, 147, 136, 135, 141, 141, 117, 139, 137, 133, 143, 136, 135, 137, 136, 145, 141, 145, 138, 142, 134, 144, 137, 139, 138, 141, 136, 141, 137, 142, 144, 141, 140, 142, 147, 133, 140, 138, 139, 138, 135, 125, 136, 143, 139, 139, 141, 135, 136, 139, 132, 137, 139, 141, 138, 139, 139, 136, 130, 144, 137, 137, 136, 136, 139, 141, 130, 146, 141, 140, 137, 132, 140, 134, 140, 144, 138, 137, 150, 140, 139, 135, 143, 137, 135, 134, 144, 146, 137, 142, 141, 138, 143, 137, 139, 140, 133, 141, 144, 144, 135, 139, 148, 137, 138, 135, 135, 143, 142, 138, 131, 140, 143, 135, 137, 140, 145, 137, 137, 143, 135, 144, 135, 143, 137, 138, 142, 137, 140, 147, 142, 140, 142, 137, 144, 137, 135, 139, 147, 141, 132, 140, 139, 141, 139, 148, 137, 139, 141, 131, 136, 139, 139, 140, 139, 134, 139, 135, 138, 139, 134, 144, 138, 139, 158, 139, 141, 132, 136, 139, 136, 119, 144, 137, 143, 138, 146, 141, 135, 135, 142, 137, 135, 143, 141, 139, 129, 148, 141, 137, 138, 141, 140, 146, 137, 135, 133, 135, 137, 136, 144, 126, 139, 138, 137, 138, 133, 142, 139, 137, 133, 142, 139, 140, 139, 143, 137, 139, 138, 143, 137, 143, 138, 138, 141, 141, 143, 137, 139, 139, 138, 140, 140, 140, 145, 143, 140, 137, 135, 139, 138, 135, 144, 137, 135, 138, 142, 141, 139, 132, 143, 139, 142, 143, 142, 149, 142, 144, 134, 140, 139, 137, 143, 138, 144, 136, 139, 130, 133, 143, 135, 145, 138, 135, 143, 138, 136, 139, 135, 140, 132, 141, 137, 133, 131, 140, 145, 140, 141, 140, 128, 137, 134, 143, 145, 143, 137, 149, 135, 141, 138, 140, 141, 139, 136, 139, 146, 133, 142, 141, 135, 135, 138, 123, 133, 133, 134, 133, 138, 145, 142, 136, 136, 146, 145, 139, 135, 138, 141, 141, 137, 142, 127, 136, 149, 135, 136, 138, 140, 140, 148, 128, 138, 132, 138, 148, 143, 131, 139, 142, 137, 148, 139, 135, 138, 138, 135, 121, 138, 134, 139, 139, 136, 143, 129, 141, 139, 138, 141, 140, 138, 140, 145, 149, 137, 136, 134, 137, 140, 134, 137, 128, 139, 138, 140, 147, 135, 140, 132, 139, 147, 145, 134, 140, 134, 138, 143, 135, 137, 138, 136, 135, 137, 144, 136, 140, 138, 135, 143, 146, 134, 141, 145, 136, 139, 132, 144, 138, 141, 139, 135, 138, 137, 133, 141, 143, 140, 139, 152, 143, 142, 145, 134, 143, 137, 139, 143, 153, 146, 141, 153, 135, 141, 146, 131, 132, 143, 139, 140, 144, 136, 146, 142, 137, 141, 133, 133, 133, 143, 138, 124, 135, 136, 143, 134, 126, 134, 138, 136, 138, 133, 132, 135, 136, 137, 145, 142, 136, 132, 135, 142, 148, 141, 137, 144, 138, 138, 137, 138, 134, 143, 136, 140, 140, 140, 140, 132, 142, 134, 138, 139, 138, 141, 138, 136, 140, 136, 139, 142, 142, 135, 139, 139, 132, 148, 136, 122, 134, 142, 138, 127, 140, 138, 143, 144, 145, 143, 143, 138, 136, 136, 134, 139, 137, 138, 143, 138, 138, 138, 143, 137, 139, 141, 142, 145, 137, 135, 143, 130, 142, 141, 139, 137, 144, 136, 142, 140, 136, 142, 144, 139, 144, 142, 142, 142, 149, 143, 132, 140, 140, 145, 135, 135, 139, 141, 137, 138, 148, 137, 130, 136, 137, 144, 139, 138, 139, 142, 148, 144, 139, 142, 136, 138, 141, 132, 141, 142, 139, 139, 136, 139, 144, 145, 142, 147, 142, 142, 131, 136, 142, 134, 137, 135, 131, 140, 137, 128, 137, 139, 140, 132, 146, 137, 142, 140, 141, 137, 134, 141, 134, 140, 141, 145, 136, 132, 139, 131, 145, 141, 139, 137, 134, 137, 138, 141, 139, 139, 139, 140, 129, 134, 137, 145, 139, 141, 139, 141, 141, 139, 141, 147, 135, 138, 137, 142, 144, 139, 137, 143, 146, 139, 133, 141, 136, 142, 141, 138, 138, 142, 138, 143, 134, 142, 130, 139, 146, 140, 139, 141, 146, 139, 133, 132, 138, 141, 140, 139, 141, 139, 134, 144, 139, 135, 137, 141, 135, 133, 137, 131, 143, 139, 145, 140, 139, 138, 139, 139, 136, 136, 137, 134, 134, 139, 139, 143, 140, 141, 135, 138, 135, 139, 141, 138, 141, 142, 143, 138, 134, 139, 145, 140, 138, 136, 137, 140, 140, 138, 139, 142, 133, 144, 140, 144, 142, 137, 143, 129, 142, 143, 132, 146, 141, 143, 135, 137, 140, 143, 135, 132, 144, 135, 140, 143, 141, 143, 139, 137, 142, 143, 139, 142, 136, 135, 141, 141, 141, 136, 135, 134, 136, 138, 125, 142, 136, 141, 139, 135, 139, 133, 134, 140, 136, 135, 127, 142, 140, 137, 141, 134, 137, 139, 144, 148, 138, 165, 132, 141, 144, 144, 143, 136, 136, 139, 139, 137, 139, 144, 134, 141, 139, 146, 140, 140, 138, 134, 135, 132, 137, 142, 139, 132, 136, 144, 135, 148, 140, 142, 136, 139, 140, 143, 142, 141, 146, 140, 142, 143, 140, 132, 132, 135, 137, 136, 136, 136, 143, 141, 140, 140, 139, 137, 142, 132, 142, 137, 140, 143, 136, 140, 144, 137, 134, 135, 139, 140, 139, 138, 140, 140, 144, 141, 140, 140, 138, 137, 141, 133, 139, 142, 139, 139, 135, 133, 140, 138, 139, 132, 148, 137, 136, 141, 138, 141, 135, 141, 142, 132, 138, 128, 141, 136, 143, 142, 139, 148, 128, 135, 149, 132, 141, 151, 133, 139, 136, 141, 136, 137, 140, 135, 135, 135, 146, 136, 130, 126, 132, 130, 140, 139, 143, 145, 137, 131, 141, 143, 138, 136, 144, 142, 128, 149, 151, 140, 143, 143, 138, 140, 140, 140, 143, 143, 147, 139, 139, 132, 140, 141, 143, 132, 136, 139, 141, 140, 144, 148, 141, 142, 141, 130, 140, 138, 140, 140, 129, 146, 145, 140, 148, 142, 147, 137, 142, 137, 138, 136, 143, 143, 141, 127, 138, 139, 139, 143, 130, 147, 141, 146, 137, 138, 144, 150, 137, 140, 146, 135, 137, 134, 145, 136, 136, 142, 138, 138, 130, 130, 142, 132, 126, 139, 136, 136, 123, 136, 142, 149, 141, 139, 145, 142, 137, 139, 137, 139, 138, 133, 140, 143, 144, 140, 142, 133, 142, 139, 132, 141, 130, 142, 143, 140, 145, 145, 146, 153, 132, 139, 143, 134, 132, 136, 147, 137, 139, 145, 146, 144, 137, 135, 136, 126, 134, 139, 141, 138, 134, 136, 136, 141, 145, 142, 145, 142, 136, 135, 135, 142, 134, 137, 135, 149, 147, 127, 133, 135, 149, 135, 129, 138, 141, 140, 150, 136, 126, 133, 147, 136, 134, 135, 136, 139, 141, 138, 140, 140, 138, 145, 141, 141, 133, 139, 136, 141, 129, 135, 140, 138, 139, 144, 140, 138, 147, 134, 143, 134, 132, 136, 140, 138, 138, 132, 126, 136, 129, 145, 157, 140, 137, 137, 135, 145, 141, 132, 139, 140, 136, 147, 142, 132, 137, 153, 134, 138, 143, 132, 136, 134, 130, 138, 139, 144, 140, 145, 138, 147, 141, 137, 147, 132, 129, 141, 142, 149, 140, 139, 142, 130, 145, 143, 149, 135, 138, 138, 137, 133, 136, 140, 133, 134, 145, 140, 138, 137, 133, 136, 149, 141, 139, 145, 147, 134, 132, 135, 137, 135, 145, 149, 144, 141, 137, 146, 132, 138, 148, 140, 139, 135, 143, 134, 141, 134, 133, 136, 142, 138, 136, 141, 135, 140, 144, 133, 140, 131, 143, 140, 135, 135, 129, 131, 141, 138, 143, 144, 136, 146, 142, 139, 128, 141, 141, 141, 144, 150, 143, 145, 146, 140, 130, 136, 137, 138, 141, 138, 139, 138, 145, 146, 138, 145, 138, 136, 125, 142, 134, 138, 138, 137, 141, 132, 141, 138, 140, 143, 139, 140, 148, 137, 134, 140, 137, 146, 141, 133, 135, 139, 128, 136, 146, 139, 144, 149, 137, 147, 144, 130, 142, 145, 142, 143, 139, 138, 139, 142, 136, 133, 136, 134, 143, 139, 140, 139, 141, 149, 146, 139, 140, 132, 146, 147, 131, 135, 141, 143, 136, 139, 134, 131, 139, 129, 132, 144, 135, 135, 136, 149, 139, 135, 135, 145, 139, 148, 135, 138, 133, 134, 133, 141, 135, 134, 140, 142, 146, 131, 144, 138, 138, 136, 130, 129, 146, 137, 139, 129, 136, 138, 135, 134, 140, 144, 145, 140, 144, 139, 154, 141, 135, 132, 141, 139, 140, 144, 143, 135, 144, 137, 133, 143, 131, 135, 139, 142, 142, 153, 132, 151, 133, 136, 141, 142, 133, 132, 136, 135, 134, 144, 139, 138, 138, 148, 140, 135, 145, 143, 140, 143, 137, 135, 144, 143, 142, 143, 139, 146, 130, 134, 138, 131, 147, 149, 136, 137, 134, 148, 154, 139, 144, 139, 129, 149, 134, 134, 148, 136, 141, 146, 137, 148, 137, 127, 141, 140, 138, 120, 129, 146, 138, 143, 135, 130, 132, 135, 143, 132, 134, 140, 125, 147, 133, 145, 146, 143, 133, 145, 147, 140, 149, 133, 148, 130, 141, 132, 139, 136, 125, 141, 140, 130, 147, 126, 133, 135, 135, 143, 147, 137, 134, 140, 125, 128, 133, 147, 121, 137, 135, 135, 128, 144, 132, 149, 148, 133, 138, 137, 129, 136, 148, 142, 127, 133, 123, 138, 140, 134, 136, 126, 141, 142, 143, 138, 146, 123, 149, 136, 145, 142, 139, 133, 145, 137, 124, 129, 136, 131, 138, 133, 136, 132, 135, 128, 150, 131, 132, 151, 129, 138, 143, 151, 137, 157, 139, 139, 153, 135, 136, 138, 144, 132, 142, 150, 131, 137, 142, 146, 130, 122, 128, 127, 141, 143, 139, 145, 140, 150, 136, 150, 140, 131, 138, 141, 152, 138, 152, 129, 143, 135, 148, 137, 140, 143, 143, 139, 139, 138, 143, 125, 138, 137, 134, 131, 147, 131, 138, 137, 142, 135, 144, 142, 130, 150, 131, 136, 140, 141, 138, 135, 142, 138, 143, 138, 137, 143, 123, 144, 133, 156, 134, 145, 135, 134, 134, 138, 124, 139, 137, 144, 131, 139, 129, 137, 143, 140, 135, 133, 133, 139, 143, 137, 140, 134, 139, 137, 138, 135, 129, 125, 146, 144, 143, 129, 134, 146, 135, 129, 137, 134, 146, 140, 142, 132, 143, 109, 148, 142, 129, 141, 143, 145, 137, 136, 132, 135, 137, 149, 133, 126, 145, 143, 131, 138, 141, 139, 148, 135, 144, 134, 128, 151, 137, 141, 135, 136, 135, 148, 144, 147, 141, 143, 146, 155, 127, 141, 133, 143, 138, 146, 140, 147, 139, 126, 128, 135, 147, 133, 134, 146, 145, 138, 138, 137, 155, 142, 131, 140, 137, 147, 129, 151, 142, 117, 144, 123, 131, 135, 135, 139, 137, 141, 146, 140, 134, 141, 146, 140, 133, 128, 139, 119, 135, 143, 141, 140, 142, 138, 134, 141, 120, 143, 150, 148, 140, 135, 131, 136, 146, 149, 138, 139, 135, 143, 135, 134, 129, 144, 143, 144, 139, 136, 128, 131, 136, 137, 139, 143, 140, 143, 143, 143, 145, 134, 143, 135, 145, 147, 136, 142, 147, 146, 150, 146, 144, 137, 132, 144, 138, 143, 149, 127, 124, 141, 148, 144, 138, 134, 151, 135, 135, 147, 142, 141, 134, 126, 150, 139, 146, 132, 150, 141, 142, 131, 141, 140, 141, 145, 148, 148, 138, 138, 128, 130, 132, 150, 136, 144, 149, 138, 134, 130, 142, 151, 144, 130, 133, 134, 140, 141, 132, 141, 140, 134, 143, 143, 148, 164, 144, 135, 133, 142, 131, 138, 144, 150, 143, 137, 149, 147, 143, 143, 132, 145, 151, 133, 132, 136, 134, 142, 140, 136, 136, 137, 147, 145, 138, 145, 139, 141, 136, 143, 139, 140, 143, 137, 140, 145, 154, 135, 139, 131, 135, 137, 134, 151, 139, 147, 141, 140, 144, 140, 143, 139, 131, 143, 135, 134, 150, 136, 139, 159, 137, 142, 129, 138, 142, 143, 147, 135, 138, 129, 143, 134, 132, 137, 134, 134, 140, 135, 133, 137, 145, 122, 135, 136, 135, 142, 130, 139, 142, 144, 133, 142, 139, 135, 135, 140, 152, 141, 144, 142, 143, 130, 146, 141, 140, 148, 141, 132, 141, 139, 140, 137, 142, 143, 146, 138, 140, 140, 140, 134, 139, 135, 149, 139, 133, 142, 132, 138, 142, 136, 141, 137, 138, 139, 141, 142, 139, 138, 131, 133, 147, 137, 131, 132, 146, 138, 141, 139, 139, 139, 139, 137, 134, 136, 131, 137, 136, 142, 142, 142, 138, 138, 136, 145, 135, 135, 139, 139, 143, 137, 141, 143, 144, 138, 139, 143, 140, 139, 143, 143, 143, 140, 138, 139, 134, 136, 136, 144, 141, 148, 133, 136, 137, 135, 142, 153, 136, 143, 139, 138, 149, 137, 138, 137, 141, 142, 138, 134, 143, 152, 148, 148, 134, 138, 134, 138, 144, 142, 142, 131, 145, 136, 141, 139, 134, 140, 143, 144, 143, 141, 143, 145, 139, 143, 129, 140, 143, 135, 132, 143, 142, 141, 140, 141, 145, 136, 132, 139, 136, 132, 140, 133, 139, 146, 138, 131, 138, 149, 141, 137, 140, 137, 135, 142, 143, 147, 135, 149, 139, 139, 142, 142, 134, 142, 136, 138, 155, 136, 141, 141, 138, 139, 143, 145, 142, 144, 138, 134, 141, 137, 139, 150, 144, 132, 124, 139, 134, 140, 138, 147, 145, 141, 139, 143, 137, 138, 135, 141, 139, 141, 133, 143, 141, 142, 140, 141, 138, 131, 141, 135, 139, 142, 136, 131, 143, 141, 131, 142, 139, 137, 140, 140, 142, 137, 138, 134, 127, 126, 142, 138, 135, 144, 141, 143, 141, 133, 139, 143, 138, 143, 143, 147, 146, 139, 142, 136, 135, 142, 138, 136, 131, 140, 141, 145, 139, 141, 140, 144, 135, 140, 133, 138, 133, 132, 123, 142, 143, 136, 133, 139, 137, 142, 127, 145, 143, 136, 137, 143, 138, 138, 150, 143, 133, 133, 138, 137, 142, 129, 135, 136, 141, 138, 147, 139, 134, 142, 147, 140, 151, 137, 139, 147, 145, 137, 125, 144, 139, 130, 140, 145, 149, 134, 137, 134, 133, 137, 138, 139, 139, 142, 132, 138, 143, 133, 139, 141, 140, 139, 137, 142, 145, 149, 136, 147, 137, 141, 139, 144, 134, 137, 136, 134, 138, 146, 149, 147, 140, 142, 142, 142, 140, 143, 146, 144, 139, 139, 140, 136, 139, 149, 145, 138, 140, 139, 133, 134, 131, 135, 136, 143, 143, 147, 136, 143, 135, 139, 140, 131, 140, 135, 132, 147, 137, 142, 134, 137, 141, 139, 136, 137, 133, 136, 138, 134, 144, 142, 141, 142, 137, 136, 143, 133, 135, 130, 141, 139, 148, 134, 144, 131, 130, 145, 136, 141, 135, 135, 134, 140, 133, 147, 125, 131, 143, 145, 138, 141, 145, 135, 134, 138, 137, 132, 142, 141, 145, 147, 139, 131, 138, 129, 164, 133, 135, 133, 149, 136, 132, 139, 135, 146, 127, 136, 141, 132, 140, 146, 142, 128, 139, 138, 128, 135, 133, 148, 132, 137, 134, 137, 141, 136, 140, 143, 145, 134, 135, 138, 140, 135, 143, 138, 136, 151, 140, 132, 136, 138, 143, 147, 139, 139, 132, 139, 138, 141, 130, 150, 140, 140, 149, 147, 146, 136, 138, 131, 143, 147, 136, 152, 144, 141, 147, 147, 143, 143, 147, 144, 144, 132, 137, 142, 138, 140, 134, 135, 142, 137, 147, 138, 131, 132, 136, 142, 142, 147, 139, 147, 149, 131, 141, 148, 135, 144, 134, 139, 138, 140, 148, 133, 139, 136, 140, 119, 137, 136, 140, 136, 142, 137, 133, 136, 137, 144, 129, 139, 137, 132, 135, 137, 138, 147, 139, 142, 134, 143, 145, 127, 140, 140, 125, 147, 136, 143, 129, 149, 134, 145, 143, 156, 143, 133, 145, 139, 142, 144, 144, 148, 140, 141, 127, 140, 136, 138, 140, 132, 130, 148, 142, 130, 134, 134, 142, 129, 138, 137, 140, 148, 136, 148, 132, 136, 132, 149, 145, 138, 136, 136, 137, 136, 159, 129, 136, 149, 141, 141, 143, 156, 136, 135, 139, 139, 138, 129, 139, 135, 140, 117, 139, 138, 141, 142, 135, 138, 143, 136, 134, 135, 131, 137, 124, 139, 136, 139, 143, 150, 139, 143, 139, 144, 140, 138, 138, 145, 141, 136, 128, 137, 147, 138, 142, 144, 143, 135, 146, 142, 141, 132, 137, 136, 143, 140, 143, 151, 136, 139, 137, 143, 135, 141, 138, 135, 129, 139, 125, 145, 132, 142, 121, 143, 137, 135, 144, 146, 143, 144, 141, 136, 145, 148, 141, 139, 141, 129, 140, 142, 139, 141, 138, 125, 141, 138, 143, 135, 127, 138, 172, 138, 139, 143, 137, 134, 146, 152, 138, 129, 150, 117, 140, 141, 142, 132, 133, 140, 141, 138, 129, 151, 147, 140, 139, 143, 129, 140, 144, 142, 135, 142, 130, 138, 139, 142, 132, 142, 127, 146, 148, 141, 137, 146, 141, 140, 139, 136, 137, 137, 139, 151, 126, 142, 144, 140, 122, 139, 129, 132, 128, 115, 135, 140, 148, 148, 143, 141, 138, 133, 142, 134, 127, 133, 137, 126, 146, 140, 143, 146, 136, 137, 134, 140, 136, 133, 138, 144, 134, 144, 134, 141, 138, 140, 138, 134, 146, 146, 136, 125, 139, 139, 143, 135, 138, 139, 137, 145, 137, 142, 139, 138, 143, 132, 138, 143, 136, 150, 139, 139, 146, 137, 134, 131, 142, 144, 137, 148, 151, 133, 135, 135, 150, 143, 130, 144, 131, 139, 142, 146, 135, 145, 142, 137, 134, 140, 132, 132, 142, 153, 134, 143, 131, 138, 136, 140, 142, 134, 144, 137, 138, 135, 144, 142, 135, 140, 140, 143, 132, 141, 134, 144, 138, 145, 141, 147, 134, 140, 144, 134, 134, 135, 140, 138, 144, 143, 143, 143, 136, 137, 131, 134, 137, 134, 135, 137, 150, 141, 150, 131, 132, 145, 141, 137, 148, 143, 131, 136, 131, 135, 144, 144, 134, 135, 145, 139, 140, 147, 141, 134, 146, 134, 140, 139, 143, 142, 143, 144, 141, 140, 141, 134, 137, 151, 137, 137, 132, 146, 137, 141, 136, 128, 146, 137, 142, 139, 134, 141, 146, 137, 146, 136, 141, 137, 137, 137, 139, 140, 130, 131, 144, 140, 136, 135, 138, 135, 137, 132, 132, 141, 140, 140, 134, 147, 138, 129, 143, 145, 132, 136, 138, 141, 143, 144, 138, 136, 142, 138, 141, 144, 135, 138, 140, 133, 146, 146, 144, 141, 145, 136, 137, 137, 134, 133, 138, 139, 146, 136, 147, 135, 143, 142, 148, 133, 138, 135, 138, 143, 140, 135, 142, 143, 129, 139, 132, 139, 139, 142, 136, 129, 139, 139, 138, 142, 134, 149, 138, 136, 138, 129, 141, 141, 144, 139, 148, 138, 131, 142, 146, 134, 132, 139, 136, 132, 134, 134, 146, 137, 144, 134, 133, 147, 145, 126, 142, 136, 150, 137, 156, 141, 134, 137, 143, 145, 150, 140, 134, 141, 136, 139, 138, 138, 150, 136, 139, 128, 144, 135, 127, 140, 137, 139, 144, 137, 134, 144, 138, 144, 143, 147, 137, 131, 133, 135, 144, 145, 147, 132, 133, 138, 138, 145, 142, 136, 149, 142, 141, 139, 143, 143, 144, 143, 148, 140, 137, 134, 133, 144, 132, 134, 134, 136, 134, 142, 138, 136, 136, 135, 139, 145, 139, 143, 141, 151, 138, 141, 147, 144, 135, 137, 134, 136, 136, 138, 138, 133, 131, 138, 132, 134, 138, 138, 140, 134, 140, 138, 141, 144, 145, 143, 147, 144, 135, 146, 144, 139, 137, 141, 139, 126, 151, 140, 144, 137, 138, 139, 133, 136, 137, 135, 143, 138, 134, 139, 137, 140, 140, 137, 138, 137, 143, 143, 139, 140, 148, 148, 141, 139, 141, 134, 138, 141, 128, 146, 132, 144, 143, 147, 139, 144, 149, 135, 134, 137, 141, 147, 149, 141, 138, 134, 131, 139, 147, 146, 136, 140, 148, 142, 127, 134, 136, 135, 132, 136, 146, 137, 136, 141, 141, 133, 143, 138, 136, 132, 140, 143, 141, 136, 135, 140, 141, 135, 134, 137, 138, 138, 138, 138, 137, 142, 143, 128, 138, 147, 144, 134, 141, 135, 134, 133, 130, 139, 140, 136, 139, 138, 141, 138, 139, 148, 134, 139, 145, 135, 141, 134, 141, 134, 148, 135, 132, 138, 140, 142, 134, 142, 140, 137, 142, 139, 139, 141, 138, 144, 144, 158, 151, 143, 147, 141, 140, 146, 138, 141, 137, 134, 150, 138, 146, 141, 138, 138, 144, 146, 144, 147, 140, 139, 133, 136, 134, 139, 137, 142, 133, 139, 138, 148, 137, 146, 143, 132, 138, 129, 135, 136, 138, 140, 135, 132, 146, 142, 145, 141, 133, 142, 136, 131, 135, 142, 142, 143, 136, 137, 138, 135, 140, 134, 145, 143, 143, 142, 138, 145, 144, 133, 138, 143, 139, 151, 149, 132, 147, 133, 142, 139, 139, 152, 139, 136, 146, 130, 139, 148, 147, 144, 141, 138, 150, 137, 143, 147, 138, 145, 131, 140, 140, 150, 132, 142, 141, 133, 145, 144, 137, 140, 141, 149, 141, 147, 132, 149, 149, 135, 146, 142, 138, 146, 141, 141, 142, 138, 126, 136, 141, 136, 148, 143, 135, 144, 134, 133, 134, 145, 142, 149, 134, 137, 144, 132, 142, 138, 140, 142, 146, 152, 133, 131, 141, 141, 147, 145, 134, 131, 132, 136, 138, 139, 140, 145, 136, 141, 153, 129, 139, 130, 142, 137, 135, 139, 138, 137, 145, 143, 134, 123, 145, 136, 139, 140, 140, 130, 149, 141, 138, 137, 134, 140, 142, 138, 130, 149, 133, 140, 125, 142, 137, 136, 144, 134, 136, 133, 142, 146, 139, 137, 131, 136, 135, 129, 144, 136, 136, 149, 137, 126, 137, 139, 140, 138, 139, 149, 137, 136, 149, 137, 139, 129, 135, 133, 138, 135, 152, 143, 139, 143, 126, 131, 126, 138, 147, 135, 152, 132, 138, 134, 146, 152, 129, 135, 129, 133, 133, 135, 138, 120, 134, 142, 146, 137, 131, 134, 147, 148, 145, 148, 144, 136, 147, 139, 136, 144, 130, 144, 120, 144, 137, 138, 138, 137, 141, 153, 145, 135, 142, 146, 139, 131, 134, 135, 134, 140, 145, 143, 134, 141, 151, 139, 137, 136, 141, 121, 135, 133, 144, 142, 134, 139, 129, 140, 126, 129, 133, 135, 145, 142, 137, 139, 148, 144, 141, 145, 147, 137, 135, 145, 144, 140, 131, 140, 137, 145, 138, 133, 140, 139, 134, 138, 138, 144, 138, 145, 145, 141, 146, 135, 134, 141, 148, 133, 143, 141, 132, 140, 138, 136, 139, 128, 146, 147, 140, 140, 148, 141, 139, 133, 141, 152, 137, 134, 136, 141, 142, 140, 140, 147, 143, 125, 138, 139, 131, 133, 138, 144, 128, 143, 146, 131, 137, 137, 134, 149, 139, 130, 157, 137, 140, 139, 145, 145, 139, 141, 144, 133, 130, 138, 129, 139, 150, 142, 134, 143, 137, 139, 136, 152, 133, 144, 142, 143, 145, 140, 143, 143, 137, 133, 137, 135, 136, 135, 139, 149, 136, 128, 132, 136, 141, 138, 142, 154, 137, 133, 144, 136, 135, 143, 138, 137, 138, 142, 149, 144, 124, 142, 141, 138, 136, 137, 145, 138, 158, 137, 139, 133, 135, 139, 139, 135, 133, 140, 143, 133, 136, 144, 136, 143, 142, 137, 146, 145, 139, 142, 131, 136, 136, 137, 145, 140, 139, 140, 144, 136, 136, 144, 131, 143, 136, 137, 140, 136, 150, 139, 139, 137, 146, 131, 133, 135, 137, 149, 138, 141, 132, 131, 145, 133, 135, 142, 147, 131, 143, 127, 139, 136, 139, 137, 141, 139, 134, 130, 134, 148, 148, 143, 136, 139, 132, 141, 141, 141, 134, 130, 127, 138, 141, 140, 131, 149, 139, 141, 147, 135, 133, 136, 129, 144, 135, 145, 134, 141, 133, 132, 128, 149, 136, 141, 148, 136, 139, 133, 143, 141, 143, 152, 138, 141, 142, 137, 150, 135, 144, 139, 142, 128, 138, 136, 141, 137, 137, 149, 142, 135, 135, 136, 142, 121, 140, 142, 147, 133, 135, 129, 137, 130, 126, 128, 152, 136, 139, 132, 138, 137, 131, 135, 140, 141, 140, 140, 136, 135, 144, 132, 136, 135, 142, 144, 128, 146, 128, 136, 142, 141, 155, 141, 145, 139, 146, 137, 152, 131, 141, 126, 139, 152, 144, 143, 138, 119, 140, 139, 151, 135, 140, 129, 140, 139, 133, 139, 136, 143, 134, 129, 139, 137, 135, 135, 128, 134, 136, 137, 151, 136, 148, 134, 160, 136, 143, 140, 137, 140, 145, 142, 150, 136, 136, 132, 139, 136, 159, 141, 125, 132, 145, 144, 130, 130, 142, 139, 141, 136, 142, 136, 133, 138, 137, 134, 132, 141, 132, 138, 144, 137, 131, 145, 138, 127, 133, 130, 134, 129, 129, 146, 139, 131, 143, 134, 137, 136, 137, 139, 140, 137, 154, 133, 136, 146, 149, 135, 136, 141, 141, 138, 141, 130, 139, 134, 129, 132, 137, 127, 130, 137, 148, 146, 132, 148, 148, 139, 138, 143, 123, 158, 136, 141, 138, 139, 132, 133, 142, 140, 161, 140, 149, 143, 147, 132, 143, 139, 152, 141, 139, 134, 148, 160, 135, 140, 139, 135, 142, 135, 142, 139, 139, 128, 142, 138, 135, 138, 141, 137, 140, 142, 146, 129, 137, 135, 137, 136, 130, 136, 141, 144, 142, 144, 136, 131, 141, 144, 132, 137, 140, 137, 140, 129, 144, 134, 137, 137, 137, 132, 138, 137, 135, 127, 130, 131, 141, 136, 137, 138, 131, 137, 135, 143, 141, 132, 139, 136, 137, 144, 150, 133, 150, 146, 149, 133, 131, 134, 138, 141, 142, 141, 132, 139, 138, 136, 139, 137, 135, 144, 156, 137, 128, 139, 152, 139, 147, 131, 125, 128, 132, 133, 135, 140, 144, 140, 135, 131, 137, 136, 137, 132, 141, 149, 141, 137, 140, 132, 150, 136, 135, 123, 137, 138, 139, 140, 135, 136, 140, 138, 140, 137, 130, 137, 136, 135, 135, 140, 140, 152, 130, 132, 141, 127, 134, 132, 129, 143, 139, 141, 129, 130, 133, 137, 151, 138, 135, 140, 139, 135, 134, 141, 145, 135, 142, 133, 146, 142, 145, 142, 133, 133, 141, 142, 133, 145, 146, 134, 134, 136, 143, 149, 135, 138, 126, 133, 140, 136, 136, 137, 131, 137, 135, 141, 152, 132, 128, 132, 144, 135, 149, 149, 135, 132, 136, 138, 140, 136, 139, 132, 147, 150, 136, 133, 139, 135, 142, 149, 130, 136, 141, 147, 145, 140, 138, 142, 137, 138, 145, 139, 131, 144, 140, 141, 131, 129, 133, 149, 136, 149, 140, 139, 136, 140, 141, 139, 137, 136, 148, 135, 139, 133, 142, 133, 153, 133, 130, 145, 146, 139, 139, 149, 149, 137, 146, 129, 143, 140, 124, 144, 132, 130, 134, 137, 140, 140, 143, 136, 144, 158, 137, 145, 151, 137, 143, 140, 135, 139, 144, 139, 141, 150, 134, 135, 135, 142, 144, 137, 136, 136, 141, 143, 139, 139, 141, 140, 136, 136, 141, 149, 137, 135, 148, 130, 139, 143, 137, 134, 134, 137, 143, 135, 138, 141, 138, 129, 136, 142, 154, 146, 138, 142, 135, 132, 141, 145, 144, 142, 134, 148, 139, 154, 126, 142, 151, 141, 146, 141, 137, 139, 147, 132, 144, 146, 135, 142, 131, 132, 131, 132, 130, 143, 129, 144, 141, 131, 142, 142, 134, 134, 127, 139, 144, 150, 147, 150, 133, 136, 138, 134, 130, 143, 139, 152, 155, 156, 142, 149, 145, 137, 150, 142, 147, 132, 141, 141, 142, 163, 140, 139, 141, 133, 133, 137, 135, 137, 141, 129, 154, 147, 139, 140, 140, 137, 142, 130, 139, 137, 146, 136, 144, 138, 131, 138, 148, 134, 143, 140, 145, 137, 136, 142, 142, 138, 133, 143, 139, 142, 138, 147, 146, 149, 141, 136, 124, 142, 133, 141, 139, 157, 138, 141, 143, 138, 136, 137, 137, 125, 146, 147, 132, 135, 136, 139, 126, 133, 144, 133, 142, 138, 153, 131, 134, 141, 145, 137, 128, 133, 129, 147, 144, 146, 145, 131, 141, 140, 138, 132, 150, 138, 139, 140, 131, 142, 135, 142, 131, 137, 139, 139, 142, 153, 137, 148, 143, 139, 135, 136, 139, 140, 132, 127, 138, 139, 149, 127, 149, 137, 138, 137, 140, 131, 122, 141, 128, 123, 133, 134, 138, 143, 139, 147, 132, 142, 143, 137, 149, 141, 141, 131, 130, 123, 135, 139, 149, 146, 134, 144, 145, 156, 130, 140, 145, 144, 132, 132, 137, 143, 141, 135, 133, 139, 137, 135, 140, 141, 140, 163, 131, 143, 133, 146, 135, 144, 140, 142, 139, 141, 141, 134, 147, 139, 129, 147, 125, 138, 126, 144, 135, 136, 134, 136, 146, 152, 126, 137, 128, 136, 144, 141, 151, 143, 132, 143, 151, 143, 133, 140, 130, 134, 136, 146, 141, 140, 132, 135, 141, 141, 148, 132, 136, 138, 149, 139, 141, 130, 130, 142, 137, 139, 144, 140, 142, 133, 134, 147, 139, 139, 153, 145, 140, 136, 142, 142, 134, 137, 141, 151, 144, 133, 127, 140, 136, 145, 133, 142, 145, 138, 143, 148, 147, 125, 140, 132, 134, 130, 146, 139, 136, 147, 139, 136, 143, 129, 146, 152, 132, 137, 139, 138, 144, 123, 133, 128, 144, 138, 124, 137, 141, 138, 137, 138, 140, 130, 131, 135, 142, 145, 127, 148, 138, 146, 133, 136, 139, 134, 143, 123, 136, 132, 140, 146, 127, 130, 137, 151, 135, 136, 143, 142, 145, 143, 146, 133, 145, 145, 144, 140, 134, 136, 128, 138, 156, 143, 138, 137, 142, 148, 121, 139, 143, 140, 137, 134, 138, 140, 130, 145, 138, 142, 138, 139, 143, 141, 129, 139, 136, 132, 161, 149, 132, 140, 153, 133, 134, 144, 131, 135, 123, 146, 152, 143, 131, 127, 135, 135, 149, 148, 148, 135, 143, 142, 134, 145, 139, 137, 133, 150, 126, 136, 132, 125, 143, 140, 137, 142, 139, 136, 137, 145, 129, 133, 146, 140, 155, 128, 140, 146, 136, 139, 148, 133, 128, 141, 139, 145, 143, 146, 134, 133, 140, 141, 128, 133, 141, 131, 147, 143, 148, 130, 141, 146, 140, 137, 130, 130, 147, 135, 127, 154, 139, 138, 134, 153, 118, 133, 129, 136, 140, 139, 124, 149, 134, 130, 132, 141, 137, 139, 143, 137, 137, 145, 147, 138, 139, 131, 145, 141, 137, 137, 137, 129, 128, 139, 135, 135, 138, 142, 153, 139, 140, 127, 141, 130, 135, 130, 123, 136, 136, 138, 139, 136, 136, 140, 141, 134, 138, 141, 143, 143, 137, 138, 136, 142, 137, 138, 142, 144, 135, 142, 147, 140, 137, 136, 142, 125, 132, 140, 139, 132, 144, 146, 142, 134, 143, 142, 143, 135, 135, 133, 134, 140, 144, 138, 138, 133, 139, 135, 147, 132, 143, 145, 130, 139, 139, 141, 141, 139, 131, 136, 146, 132, 147, 142, 145, 139, 133, 134, 149, 142, 136, 134, 132, 135, 136, 140, 143, 142, 147, 137, 144, 142, 134, 134, 137, 137, 152, 144, 139, 142, 138, 145, 140, 145, 142, 134, 141, 136, 139, 141, 135, 127, 126, 123, 123, 129, 126, 130, 140, 140, 142, 130, 147, 139, 132, 136, 143, 133, 135, 139, 132, 140, 136, 139, 142, 146, 139, 143, 136, 151, 135, 137, 135, 143, 136, 147, 142, 145, 140, 147, 148, 139, 142, 136, 142, 137, 161, 144, 142, 135, 141, 131, 133, 131, 122, 141, 145, 141, 145, 141, 131, 129, 137, 136, 135, 134, 142, 135, 136, 137, 142, 140, 145, 142, 145, 142, 137, 138, 132, 140, 129, 139, 140, 129, 133, 139, 135, 140, 136, 129, 145, 144, 141, 132, 129, 142, 141, 141, 144, 132, 127, 140, 147, 149, 130, 135, 133, 140, 136, 142, 136, 130, 133, 137, 135, 139, 139, 137, 144, 138, 137, 134, 137, 143, 130, 147, 136, 145, 144, 136, 134, 128, 137, 132, 129, 138, 123, 139, 137, 139, 138, 126, 138, 130, 143, 140, 145, 140, 138, 148, 138, 136, 141, 147, 142, 147, 134, 149, 139, 141, 154, 132, 138, 151, 139, 141, 128, 141, 141, 137, 134, 136, 150, 139, 144, 144, 137, 136, 145, 132, 140, 138, 137, 144, 139, 141, 147, 146, 143, 136, 138, 133, 117, 138, 141, 142, 146, 143, 143, 130, 133, 140, 142, 140, 134, 137, 140, 129, 134, 133, 141, 137, 138, 143, 142, 141, 136, 137, 141, 130, 140, 134, 139, 136, 136, 136, 136, 143, 137, 149, 138, 139, 133, 142, 150, 134, 139, 137, 141, 136, 139, 137, 135, 139, 133, 135, 141, 131, 140, 141, 144, 140, 137, 146, 149, 148, 137, 147, 138, 144, 142, 134, 134, 139, 133, 150, 126, 138, 135, 131, 147, 137, 132, 133, 136, 126, 138, 146, 154, 140, 142, 141, 136, 142, 137, 138, 155, 137, 133, 139, 134, 141, 131, 143, 140, 144, 142, 142, 143, 141, 148, 138, 141, 137, 124, 139, 145, 138, 135, 144, 142, 139, 138, 145, 133, 140, 135, 128, 145, 151, 141, 141, 142, 138, 130, 128, 141, 138, 133, 138, 145, 153, 136, 149, 145, 148, 145, 127, 135, 148, 139, 139, 138, 149, 143, 133, 137, 137, 137, 141, 138, 142, 152, 143, 138, 141, 151, 139, 141, 149, 141, 137, 148, 137, 134, 139, 128, 143, 138, 137, 133, 137, 137, 140, 134, 126, 137, 132, 141, 145, 140, 142, 137, 145, 135, 138, 141, 141, 140, 140, 146, 145, 129, 145, 142, 135, 141, 142, 138, 141, 143, 132, 133, 141, 138, 140, 141, 140, 145, 138, 146, 139, 139, 147, 137, 139, 137, 137, 129, 137, 143, 141, 133, 143, 140, 146, 138, 144, 134, 134, 127, 144, 149, 135, 132, 148, 143, 139, 125, 144, 131, 140, 145, 136, 141, 137, 143, 144, 137, 143, 143, 134, 140, 140, 138, 134, 131, 130, 148, 133, 142, 132, 139, 141, 138, 136, 141, 141, 141, 139, 139, 134, 137, 132, 139, 138, 147, 141, 140, 127, 136, 136, 136, 141, 141, 142, 139, 132, 147, 140, 143, 147, 139, 137, 140, 138, 136, 146, 146, 141, 147, 137, 137, 148, 133, 150, 142, 140, 150, 146, 136, 143, 135, 137, 128, 134, 133, 147, 140, 134, 132, 144, 139, 141, 145, 136, 144, 139, 129, 137, 151, 140, 137, 141, 138, 140, 150, 141, 140, 136, 140, 140, 145, 136, 126, 134, 137, 140, 144, 133, 136, 141, 138, 133, 136, 138, 133, 145, 133, 131, 146, 134, 126, 143, 140, 142, 140, 134, 135, 136, 135, 142, 138, 144, 133, 142, 125, 142, 136, 134, 148, 148, 130, 141, 139, 142, 147, 136, 137, 137, 141, 131, 135, 142, 141, 138, 136, 133, 134, 135, 139, 137, 141, 147, 137, 147, 137, 140, 139, 132, 141, 136, 139, 138, 137, 139, 137, 140, 134, 140, 135, 134, 138, 146, 143, 137, 135, 140, 152, 139, 129, 146, 141, 136, 134, 140, 136, 142, 140, 143, 152, 140, 156, 135, 135, 139, 143, 135, 141, 137, 133, 140, 133, 137, 132, 141, 138, 146, 139, 131, 141, 145, 133, 134, 139, 141, 133, 139, 149, 137, 145, 143, 138, 136, 145, 147, 137, 141, 133, 139, 141, 136, 133, 131, 136, 137, 137, 130, 143, 138, 141, 150, 132, 142, 141, 139, 142, 142, 137, 144, 138, 138, 130, 145, 131, 141, 138, 141, 144, 137, 139, 131, 135, 147, 147, 141, 136, 138, 140, 127, 140, 144, 143, 143, 139, 136, 136, 137, 144, 142, 139, 140, 143, 136, 137, 139, 131, 144, 141, 139, 136, 146, 139, 149, 135, 135, 143, 141, 138, 139, 139, 144, 137, 141, 133, 135, 140, 145, 126, 140, 134, 144, 139, 143, 132, 138, 144, 140, 140, 141, 139, 131, 140, 138, 142, 141, 136, 148, 140, 134, 125, 155, 145, 142, 138, 132, 138, 133, 136, 135, 138, 144, 145, 138, 141, 131, 143, 134, 127, 133, 142, 132, 141, 146, 138, 148, 142, 139, 128, 133, 141, 139, 144, 142, 143, 135, 135, 135, 136, 133, 136, 139, 135, 146, 143, 140, 143, 138, 137, 137, 135, 135, 136, 132, 140, 135, 149, 142, 148, 137, 135, 135, 129, 143, 135, 138, 135, 141, 138, 134, 136, 149, 135, 138, 140, 143, 142, 138, 142, 127, 148, 133, 134, 139, 139, 142, 146, 139, 151, 136, 146, 129, 142, 140, 141, 133, 135, 143, 131, 128, 142, 130, 142, 145, 146, 131, 139, 141, 139, 136, 145, 135, 146, 130, 142, 130, 146, 128, 146, 132, 135, 140, 144, 142, 135, 148, 148, 137, 140, 142, 140, 144, 135, 143, 149, 140, 131, 137, 135, 138, 135, 137, 137, 138, 131, 142, 136, 141, 131, 129, 138, 134, 138, 145, 136, 147, 137, 143, 140, 149, 142, 142, 136, 131, 137, 135, 137, 152, 132, 148, 129, 133, 142, 144, 136, 135, 145, 142, 136, 141, 143, 141, 133, 130, 137, 134, 137, 143, 148, 135, 132, 139, 133, 138, 137, 146, 140, 133, 140, 136, 143, 139, 131, 149, 131, 137, 132, 132, 140, 138, 135, 143, 131, 141, 144, 141, 145, 154, 143, 141, 146, 141, 142, 139, 143, 141, 144, 148, 132, 152, 140, 148, 142, 132, 145, 146, 137, 132, 130, 136, 145, 138, 146, 132, 145, 138, 150, 137, 144, 151, 138, 152, 143, 142, 141, 146, 147, 133, 143, 132, 130, 134, 139, 139, 141, 130, 132, 131, 136, 142, 130, 140, 139, 138, 131, 144, 136, 137, 136, 137, 136, 137, 139, 143, 140, 143, 133, 140, 148, 132, 144, 145, 140, 145, 147, 142, 150, 144, 140, 139, 129, 142, 141, 140, 135, 134, 137, 145, 146, 148, 138, 129, 136, 144, 143, 138, 143, 134, 147, 140, 139, 144, 136, 134, 147, 143, 144, 137, 138, 140, 133, 138, 147, 142, 138, 129, 145, 134, 141, 147, 143, 134, 135, 137, 139, 145, 138, 135, 142, 148, 135, 146, 144, 135, 138, 134, 140, 126, 140, 142, 144, 142, 145, 138, 141, 138, 139, 138, 133, 136, 141, 135, 142, 131, 134, 131, 133, 146, 138, 137, 151, 137, 133, 142, 143, 144, 136, 137, 139, 140, 131, 140, 141, 139, 140, 136, 145, 136, 139, 132, 140, 135, 141, 135, 144, 144, 145, 149, 139, 140, 145, 137, 136, 142, 138, 141, 148, 136, 144, 138, 138, 142, 145, 141, 148, 134, 136, 144, 138, 144, 135, 139, 148, 141, 145, 141, 142, 136, 136, 135, 141, 134, 137, 141, 135, 132, 142, 148, 137, 137, 139, 138, 140, 128, 145, 138, 140, 135, 135, 133, 136, 139, 139, 135, 141, 138, 139, 141, 146, 139, 139, 138, 137, 138, 129, 131, 143, 138, 137, 141, 143, 147, 131, 143, 132, 135, 138, 136, 153, 145, 139, 134, 134, 136, 143, 142, 131, 150, 139, 126, 140, 133, 131, 134, 129, 137, 138, 136, 138, 145, 136, 141, 140, 137, 143, 143, 139, 135, 138, 128, 141, 135, 140, 144, 138, 141, 158, 137, 141, 144, 129, 143, 148, 134, 145, 144, 140, 140, 134, 142, 147, 135, 140, 134, 147, 141, 138, 138, 142, 138, 155, 140, 126, 134, 128, 135, 142, 137, 134, 134, 142, 140, 142, 140, 133, 142, 139, 139, 132, 140, 134, 133, 136, 139, 128, 144, 136, 145, 140, 133, 128, 137, 136, 133, 132, 133, 134, 146, 138, 135, 134, 136, 146, 141, 134, 133, 145, 140, 143, 135, 133, 138, 138, 140, 131, 129, 143, 142, 139, 143, 130, 134, 142, 131, 147, 139, 138, 143, 137, 132, 135, 147, 132, 141, 137, 135, 146, 125, 139, 131, 146, 131, 138, 141, 143, 135, 159, 133, 139, 137, 138, 140, 137, 145, 146, 141, 140, 141, 136, 136, 136, 140, 144, 130, 137, 132, 149, 140, 134, 138, 135, 131, 140, 127, 147, 134, 137, 140, 134, 142, 142, 139, 139, 139, 147, 133, 145, 132, 145, 141, 130, 140, 145, 144, 141, 141, 137, 145, 130, 138, 143, 145, 146, 137, 134, 137, 144, 140, 124, 134, 138, 130, 144, 145, 143, 139, 145, 123, 139, 139, 136, 139, 150, 130, 139, 141, 134, 136, 141, 139, 141, 147, 115, 139, 148, 136, 144, 138, 143, 141, 138, 141, 139, 137, 145, 146, 144, 139, 133, 144, 131, 141, 140, 145, 132, 150, 138, 144, 140, 139, 143, 139, 140, 145, 130, 147, 132, 143, 134, 144, 138, 142, 143, 140, 139, 136, 141, 135, 136, 133, 144, 136, 141, 133, 145, 134, 139, 138, 135, 132, 141, 145, 144, 130, 142, 131, 136, 143, 155, 130, 131, 134, 141, 139, 141, 139, 139, 144, 131, 137, 144, 142, 139, 136, 133, 132, 133, 136, 135, 139, 128, 141, 140, 139, 142, 128, 136, 142, 145, 141, 140, 143, 139, 143, 139, 140, 125, 139, 138, 135, 137, 138, 140, 139, 140, 146, 143, 136, 137, 138, 134, 139, 135, 145, 139, 137, 143, 133, 146, 135, 132, 146, 150, 131, 135, 135, 135, 129, 143, 138, 132, 141, 125, 146, 136, 145, 139, 136, 137, 134, 144, 131, 138, 141, 140, 144, 143, 138, 143, 134, 138, 141, 140, 140, 140, 130, 136, 132, 129, 127, 134, 140, 142, 140, 137, 142, 140, 132, 138, 136, 135, 129, 148, 146, 130, 141, 142, 140, 135, 141, 136, 145, 141, 136, 148, 142, 137, 140, 136, 136, 136, 140, 142, 147, 137, 135, 143, 130, 135, 140, 140, 143, 144, 137, 132, 143, 147, 144, 138, 154, 144, 142, 135, 140, 130, 135, 148, 140, 136, 144, 137, 139, 130, 152, 133, 134, 138, 140, 132, 144, 130, 140, 140, 140, 136, 129, 139, 139, 148, 137, 135, 143, 137, 137, 134, 135, 137, 137, 136, 137, 137, 143, 144, 141, 134, 142, 133, 141, 148, 137, 141, 137, 134, 135, 140, 137, 135, 133, 136, 146, 144, 140, 135, 138, 140, 149, 141, 139, 139, 145, 137, 131, 130, 141, 140, 139, 139, 141, 139, 132, 132, 146, 135, 144, 137, 141, 144, 132, 144, 139, 138, 138, 141, 146, 135, 150, 137, 141, 139, 138, 132, 137, 143, 136, 145, 142, 132, 142, 142, 147, 144, 143, 138, 130, 140, 141, 133, 139, 141, 142, 130, 140, 133, 134, 137, 137, 140, 144, 144, 139, 143, 144, 145, 138, 140, 137, 137, 146, 143, 143, 142, 148, 127, 139, 145, 141, 140, 133, 137, 143, 141, 138, 138, 124, 137, 137, 139, 139, 136, 137, 136, 131, 140, 138, 130, 141, 144, 134, 131, 133, 140, 136, 138, 142, 137, 131, 139, 140, 131, 129, 145, 141, 129, 137, 140, 134, 139, 138, 140, 152, 133, 151, 146, 134, 140, 139, 144, 152, 146, 134, 144, 131, 139, 140, 143, 144, 136, 137, 132, 137, 139, 138, 141, 136, 141, 145, 146, 138, 141, 136, 149, 140, 137, 137, 144, 132, 133, 136, 141, 134, 138, 144, 130, 130, 128, 143, 135, 137, 133, 144, 139, 141, 135, 135, 135, 141, 144, 133, 139, 147, 138, 144, 147, 141, 146, 140, 135, 144, 142, 132, 135, 134, 146, 140, 137, 142, 146, 147, 137, 128, 135, 135, 137, 136, 139, 134, 133, 143, 136, 140, 149, 137, 142, 150, 140, 140, 142, 135, 141, 145, 148, 131, 146, 142, 148, 138, 135, 145, 130, 136, 133, 133, 135, 135, 133, 131, 125, 148, 140, 136, 146, 157, 130, 140, 141, 130, 153, 132, 140, 139, 149, 128, 138, 131, 140, 141, 124, 135, 141, 138, 138, 130, 132, 136, 137, 131, 138, 141, 139, 144, 135, 145, 138, 138, 142, 133, 139, 139, 143, 133, 137, 131, 136, 137, 151, 141, 141, 134, 134, 133, 142, 140, 136, 137, 138, 143, 135, 145, 139, 139, 136, 140, 133, 140, 135, 148, 140, 133, 130, 141, 143, 133, 133, 136, 134, 149, 138, 135, 134, 135, 137, 145, 140, 139, 148, 139, 144, 133, 133, 137, 142, 136, 130, 135, 133, 130, 139, 133, 148, 133, 142, 154, 136, 144, 133, 136, 138, 138, 136, 135, 144, 137, 141, 132, 138, 146, 140, 140, 149, 136, 147, 133, 138, 132, 140, 144, 136, 133, 138, 140, 134, 134, 137, 136, 123, 137, 136, 140, 137, 139, 135, 131, 138, 141, 136, 139, 134, 143, 138, 134, 138, 134, 137, 134, 140, 138, 136, 141, 134, 132, 141, 142, 133, 136, 139, 140, 141, 141, 137, 133, 143, 149, 137, 139, 136, 134, 132, 129, 133, 138, 147, 140, 139, 137, 153, 132, 141, 138, 142, 142, 140, 142, 149, 133, 134, 132, 136, 132, 134, 145, 145, 142, 137, 132, 141, 148, 139, 139, 144, 135, 134, 135, 150, 138, 130, 131, 140, 154, 144, 139, 140, 142, 147, 135, 132, 137, 138, 145, 133, 130, 130, 146, 144, 154, 148, 134, 148, 138, 130, 140, 139, 138, 129, 136, 135, 155, 129, 150, 131, 149, 141, 143, 135, 140, 146, 151, 139, 136, 141, 137, 137, 137, 136, 143, 141, 139, 132, 139, 140, 128, 143, 131, 129, 135, 140, 140, 138, 143, 134, 139, 141, 143, 135, 127, 142, 140, 138, 137, 133, 140, 135, 142, 145, 133, 139, 136, 157, 142, 138, 134, 140, 140, 132, 139, 137, 136, 146, 131, 143, 138, 132, 145, 135, 139, 137, 145, 130, 148, 145, 137, 144, 141, 136, 140, 142, 140, 141, 140, 133, 137, 134, 128, 143, 134, 135, 147, 142, 151, 136, 132, 159, 140, 145, 150, 141, 135, 139, 146, 136, 134, 135, 144, 144, 130, 135, 133, 135, 139, 128, 124, 139, 138, 144, 147, 132, 133, 127, 143, 139, 144, 149, 129, 141, 132, 136, 133, 137, 139, 134, 141, 137, 146, 140, 148, 135, 133, 138, 132, 139, 134, 139, 135, 135, 133, 139, 150, 131, 136, 133, 138, 142, 137, 139, 142, 131, 141, 140, 141, 137, 143, 136, 136, 135, 140, 134, 135, 135, 140, 136, 145, 139, 142, 132, 145, 147, 141, 140, 137, 138, 133, 131, 137, 138, 135, 135, 148, 134, 140, 135, 132, 141, 143, 138, 141, 132, 140, 139, 141, 143, 153, 136, 153, 147, 142, 138, 137, 148, 136, 141, 143, 137, 137, 140, 149, 135, 132, 138, 137, 137, 148, 128, 141, 146, 142, 137, 147, 140, 140, 139, 142, 134, 143, 138, 135, 137, 137, 165, 137, 133, 145, 135, 139, 136, 144, 137, 145, 140, 140, 132, 134, 138, 131, 144, 137, 135, 144, 151, 156, 139, 141, 144, 143, 133, 141, 139, 135, 135, 138, 140, 138, 135, 140, 143, 138, 137, 138, 140, 145, 142, 138, 141, 139, 140, 138, 145, 134, 131, 136, 138, 141, 148, 141, 135, 135, 145, 135, 134, 142, 143, 146, 144, 135, 137, 135, 130, 138, 142, 132, 142, 142, 140, 139, 141, 141, 135, 143, 139, 142, 130, 140, 144, 138, 143, 133, 137, 133, 143, 141, 121, 147, 130, 145, 137, 143, 144, 144, 144, 138, 149, 144, 139, 145, 131, 129, 140, 139, 137, 139, 131, 138, 141, 132, 135, 143, 140, 136, 135, 143, 147, 139, 145, 142, 137, 138, 142, 142, 129, 137, 135, 140, 138, 141, 140, 146, 148, 139, 134, 148, 137, 141, 137, 139, 141, 147, 134, 139, 132, 137, 133, 140, 137, 132, 133, 146, 146, 138, 138, 134, 145, 139, 130, 129, 142, 139, 136, 133, 136, 133, 139, 146, 137, 150, 133, 134, 141, 135, 148, 151, 142, 134, 139, 134, 139, 141, 143, 131, 130, 141, 142, 136, 135, 140, 142, 136, 135, 136, 141, 153, 128, 139, 151, 131, 142, 136, 143, 142, 141, 142, 141, 139, 139, 132, 139, 140, 143, 138, 139, 142, 136, 142, 135, 137, 135, 139, 134, 140, 134, 141, 141, 139, 131, 141, 143, 134, 149, 138, 141, 134, 139, 125, 133, 138, 137, 134, 151, 137, 144, 135, 137, 141, 137, 138, 135, 141, 140, 136, 135, 140, 140, 138, 138, 137, 139, 151, 140, 149, 139, 133, 149, 133, 142, 137, 144, 139, 137, 135, 153, 137, 174, 138, 131, 140, 140, 138, 134, 141, 135, 127, 143, 138, 145, 146, 143, 153, 140, 130, 131, 139, 135, 133, 137, 141, 135, 137, 142, 135, 137, 149, 136, 144, 136, 144, 141, 136, 145, 145, 138, 146, 127, 133, 134, 139, 136, 138, 137, 144, 134, 136, 143, 138, 132, 131, 147, 136, 134, 141, 145, 144, 140, 140, 135, 140, 137, 137, 138, 132, 134, 135, 150, 143, 134, 140, 144, 142, 136, 129, 129, 147, 132, 138, 135, 138, 142, 136, 138, 139, 142, 142, 142, 139, 139, 141, 137, 140, 143, 146, 140, 142, 141, 133, 132, 134, 133, 132, 139, 130, 140, 143, 144, 131, 137, 141, 137, 136, 133, 128, 131, 133, 143, 138, 141, 134, 137, 138, 142, 136, 132, 141, 139, 141, 147, 139, 116, 135, 142, 148, 142, 138, 137, 137, 139, 137, 131, 144, 130, 138, 141, 135, 140, 146, 128, 143, 127, 137, 149, 140, 147, 143, 137, 139, 140, 159, 134, 139, 134, 133, 146, 126, 146, 132, 143, 132, 144, 146, 138, 143, 141, 135, 142, 139, 135, 134, 145, 145, 141, 145, 137, 150, 129, 140, 134, 146, 148, 138, 136, 133, 135, 144, 140, 141, 128, 134, 132, 134, 130, 137, 127, 144, 123, 142, 131, 132, 145, 141, 128, 132, 152, 144, 128, 142, 123, 136, 142, 135, 146, 130, 144, 153, 142, 142, 132, 136, 146, 133, 143, 135, 142, 140, 133, 141, 134, 129, 140, 139, 149, 154, 139, 155, 139, 136, 139, 138, 139, 141, 155, 134, 150, 135, 157, 135, 141, 156, 147, 139, 140, 139, 131, 135, 129, 144, 140, 143, 136, 150, 134, 134, 124, 133, 147, 143, 136, 129, 142, 132, 145, 126, 152, 134, 127, 135, 142, 134, 140, 152, 147, 148, 148, 152, 140, 142, 125, 149, 138, 146, 127, 129, 127, 122, 126, 137, 146, 140, 137, 132, 133, 139, 138, 136, 133, 129, 148, 131, 145, 144, 148, 145, 122, 150, 132, 147, 127, 141, 144, 137, 142, 145, 150, 146, 139, 144, 132, 135, 147, 141, 135, 133, 130, 148, 139, 161, 140, 145, 145, 136, 130, 133, 141, 150, 137, 131, 142, 138, 134, 143, 132, 121, 139, 157, 148, 127, 155, 134, 146, 141, 141, 137, 146, 138, 143, 141, 131, 145, 130, 132, 148, 132, 146, 148, 133, 122, 133, 145, 141, 141, 138, 137, 140, 132, 141, 139, 129, 135, 140, 141, 135, 138, 136, 141, 135, 141, 146, 139, 136, 137, 149, 151, 144, 152, 141, 137, 123, 144, 139, 127, 142, 150, 122, 136, 140, 150, 144, 139, 125, 143, 127, 137, 142, 137, 143, 145, 158, 141, 137, 131, 143, 141, 125, 143, 143, 141, 135, 137, 136, 138, 136, 151, 136, 149, 142, 135, 139, 138, 138, 139, 137, 146, 135, 138, 137, 132, 144, 139, 132, 138, 134, 138, 147, 138, 141, 137, 150, 134, 143, 134, 143, 136, 132, 137, 127, 141, 140, 139, 131, 137, 132, 136, 136, 141, 135, 145, 134, 137, 141, 127, 128, 137, 141, 134, 141, 140, 141, 137, 133, 131, 141, 142, 136, 151, 142, 138, 132, 130, 133, 142, 135, 131, 144, 139, 136, 141, 139, 142, 132, 145, 145, 136, 122, 163, 143, 133, 140, 147, 145, 139, 138, 143, 140, 141, 140, 139, 134, 140, 118, 149, 139, 143, 127, 142, 127, 144, 141, 133, 137, 149, 137, 149, 140, 132, 137, 153, 137, 134, 136, 131, 137, 134, 150, 150, 148, 147, 131, 141, 137, 140, 141, 131, 147, 146, 130, 143, 134, 144, 139, 130, 138, 146, 138, 140, 133, 144, 131, 141, 166, 145, 138, 142, 140, 124, 132, 132, 144, 144, 138, 145, 139, 132, 139, 127, 140, 143, 138, 134, 145, 132, 132, 139, 139, 138, 137, 127, 132, 138, 139, 132, 132, 138, 140, 139, 139, 135, 131, 133, 146, 145, 134, 150, 137, 138, 140, 139, 137, 140, 141, 145, 130, 145, 149, 140, 140, 127, 136, 128, 140, 138, 129, 143, 138, 132, 143, 139, 148, 143, 135, 145, 132, 137, 137, 134, 128, 134, 140, 138, 143, 132, 138, 137, 133, 148, 145, 139, 137, 145, 146, 146, 136, 136, 135, 146, 144, 140, 134, 135, 140, 137, 140, 137, 139, 144, 141, 139, 145, 130, 138, 140, 145, 134, 132, 142, 138, 142, 129, 134, 146, 128, 139, 135, 139, 143, 144, 140, 129, 136, 136, 132, 145, 143, 145, 131, 149, 137, 144, 139, 127, 140, 139, 138, 146, 131, 145, 135, 140, 137, 155, 133, 136, 146, 137, 134, 149, 133, 143, 135, 130, 141, 130, 132, 138, 142, 133, 137, 141, 140, 139, 131, 142, 145, 139, 147, 139, 132, 137, 140, 136, 146, 142, 134, 139, 137, 132, 128, 138, 143, 147, 142, 138, 137, 139, 142, 131, 136, 135, 142, 135, 145, 133, 137, 137, 148, 137, 136, 139, 145, 146, 135, 149, 144, 138, 136, 141, 134, 139, 133, 142, 133, 134, 139, 155, 143, 137, 135, 133, 142, 139, 147, 141, 131, 142, 139, 136, 137, 136, 145, 143, 137, 136, 138, 151, 151, 119, 140, 135, 136, 134, 136, 138, 137, 138, 139, 140, 134, 141, 132, 140, 139, 144, 140, 143, 142, 139, 141, 143, 143, 133, 135, 145, 143, 137, 138, 134, 131, 147, 137, 142, 136, 136, 137, 135, 148, 143, 137, 141, 138, 135, 136, 121, 138, 144, 135, 159, 145, 146, 137, 143, 143, 143, 133, 133, 126, 143, 135, 151, 133, 141, 138, 142, 138, 135, 129, 145, 127, 147, 145, 138, 142, 146, 135, 144, 127, 147, 139, 139, 135, 129, 137, 140, 133, 142, 145, 145, 140, 136, 127, 142, 136, 133, 133, 135, 132, 139, 142, 136, 132, 130, 138, 135, 138, 129, 142, 138, 131, 154, 137, 143, 158, 115, 144, 145, 147, 149, 141, 139, 136, 147, 147, 136, 139, 145, 142, 152, 137, 147, 141, 141, 126, 146, 136, 135, 144, 137, 139, 141, 114, 137, 149, 142, 144, 132, 133, 141, 138, 135, 140, 139, 134, 138, 129, 133, 128, 116, 143, 147, 131, 140, 140, 133, 132, 141, 142, 139, 140, 141, 134, 133, 139, 140, 139, 137, 136, 135, 153, 139, 135, 134, 137, 136, 134, 124, 135, 146, 134, 135, 137, 141, 139, 140, 148, 140, 138, 139, 149, 137, 136, 139, 138, 138, 137, 135, 140, 133, 131, 139, 139, 133, 137, 133, 139, 137, 148, 126, 135, 134, 138, 136, 135, 141, 145, 135, 141, 141, 140, 148, 133, 139, 137, 142, 132, 134, 131, 141, 140, 147, 141, 134, 137, 138, 146, 144, 143, 136, 143, 133, 144, 137, 145, 134, 138, 152, 147, 134, 135, 143, 143, 135, 144, 140, 140, 142, 143, 140, 124, 128, 129, 142, 130, 143, 139, 140, 130, 142, 139, 147, 133, 141, 137, 137, 134, 138, 143, 141, 151, 142, 136, 151, 145, 138, 130, 139, 135, 147, 143, 134, 133, 130, 137, 144, 143, 141, 139, 125, 140, 136, 145, 137, 134, 144, 136, 137, 141, 145, 139, 141, 136, 141, 140, 145, 138, 146, 124, 126, 141, 133, 144, 144, 142, 151, 141, 151, 140, 142, 143, 136, 135, 136, 135, 135, 139, 131, 129, 136, 143, 135, 137, 148, 139, 142, 144, 137, 134, 140, 133, 135, 144, 133, 136, 139, 169, 140, 139, 130, 133, 128, 137, 140, 147, 148, 136, 148, 136, 139, 140, 142, 139, 121, 131, 141, 139, 136, 131, 130, 132, 145, 133, 136, 141, 138, 142, 138, 131, 145, 144, 140, 138, 142, 140, 138, 137, 140, 133, 131, 146, 137, 133, 132, 134, 139, 131, 133, 139, 142, 140, 140, 139, 143, 134, 132, 136, 142, 156, 137, 146, 141, 149, 139, 130, 139, 137, 149, 142, 136, 138, 129, 137, 140, 139, 142, 137, 144, 127, 136, 141, 141, 134, 127, 139, 141, 132, 137, 138, 154, 146, 144, 140, 139, 129, 149, 147, 133, 131, 145, 150, 132, 142, 134, 136, 140, 144, 136, 143, 131, 134, 132, 144, 136, 150, 132, 142, 128, 146, 152, 135, 135, 144, 132, 145, 128, 142, 144, 131, 146, 142, 139, 145, 140, 136, 137, 143, 138, 133, 134, 138, 136, 144, 150, 145, 132, 147, 130, 149, 130, 139, 145, 140, 148, 143, 131, 130, 145, 138, 137, 142, 142, 136, 141, 138, 149, 141, 139, 139, 135, 136, 133, 141, 135, 142, 145, 139, 135, 143, 147, 155, 148, 132, 136, 137, 142, 142, 130, 140, 135, 128, 140, 150, 139, 140, 140, 137, 140, 132, 144, 144, 130, 131, 126, 138, 136, 136, 131, 127, 125, 132, 146, 140, 142, 134, 146, 142, 135, 134, 143, 135, 139, 142, 134, 133, 136, 125, 133, 147, 151, 143, 138, 136, 132, 128, 143, 134, 133, 142, 140, 141, 135, 133, 132, 136, 129, 144, 137, 142, 130, 137, 136, 137, 141, 145, 140, 137, 144, 142, 133, 141, 133, 142, 141, 138, 136, 145, 136, 141, 137, 147, 144, 143, 146, 142, 134, 128, 138, 145, 139, 141, 135, 142, 144, 131, 136, 141, 145, 136, 138, 137, 134, 150, 129, 133, 129, 141, 128, 137, 140, 142, 136, 137, 135, 141, 146, 134, 138, 138, 143, 147, 126, 139, 124, 141, 139, 162, 146, 130, 137, 156, 138, 141, 130, 137, 138, 153, 137, 145, 129, 143, 145, 132, 132, 146, 138, 148, 144, 137, 130, 139, 131, 143, 134, 140, 137, 138, 145, 146, 147, 141, 147, 131, 141, 136, 129, 131, 155, 141, 139, 140, 134, 141, 137, 139, 131, 141, 138, 147, 126, 145, 146, 139, 135, 147, 148, 136, 139, 147, 143, 138, 156, 141, 136, 144, 139, 142, 137, 150, 146, 130, 141, 137, 147, 132, 135, 141, 145, 137, 148, 137, 137, 134, 144, 138, 132, 140, 138, 141, 136, 143, 144, 134, 156, 135, 136, 141, 133, 143, 137, 144, 136, 142, 143, 132, 140, 144, 145, 134, 132, 145, 142, 122, 134, 141, 144, 124, 137, 132, 138, 125, 137, 134, 131, 141, 138, 139, 145, 138, 136, 140, 133, 151, 135, 136, 137, 146, 143, 140, 129, 150, 136, 138, 147, 148, 149, 136, 141, 139, 148, 130, 129, 147, 134, 140, 128, 138, 151, 140, 153, 142, 136, 143, 135, 129, 123, 146, 125, 140, 142, 133, 142, 142, 137, 136, 145, 126, 144, 134, 130, 128, 136, 133, 146, 133, 140, 144, 142, 168, 145, 136, 147, 137, 133, 137, 141, 128, 143, 136, 135, 142, 139, 147, 137, 146, 132, 140, 136, 146, 137, 139, 136, 149, 149, 133, 143, 136, 131, 136, 140, 138, 141, 128, 138, 139, 142, 149, 138, 136, 140, 134, 129, 139, 155, 149, 134, 122, 131, 134, 136, 137, 135, 143, 137, 144, 142, 134, 142, 140, 139, 124, 126, 133, 138, 140, 133, 133, 140, 136, 143, 136, 154, 146, 139, 141, 137, 147, 133, 138, 144, 128, 136, 138, 137, 137, 126, 138, 137, 142, 135, 129, 136, 140, 139, 137, 167, 143, 144, 141, 147, 135, 143, 133, 135, 168, 133, 130, 138, 144, 135, 141, 140, 136, 131, 148, 128, 145, 135, 145, 160, 135, 130, 126, 128, 145, 132, 135, 129, 155, 136, 144, 129, 147, 135, 145, 136, 144, 146, 136, 143, 160, 138, 146, 142, 145, 144, 151, 146, 132, 147, 147, 132, 131, 143, 142, 146, 134, 146, 138, 146, 139, 138, 141, 130, 132, 142, 141, 135, 143, 132, 147, 146, 145, 142, 155, 132, 145, 141, 130, 136, 129, 155, 133, 143, 136, 144, 139, 133, 146, 126, 129, 141, 127, 135, 143, 135, 142, 129, 142, 137, 136, 135, 141, 145, 133, 139, 136, 137, 140, 138, 136, 144, 133, 139, 138, 140, 134, 138, 136, 139, 138, 144, 128, 144, 146, 146, 132, 127, 137, 144, 137, 138, 149, 137, 138, 128, 130, 144, 131, 144, 138, 143, 135, 157, 138, 137, 132, 130, 142, 135, 139, 144, 139, 138, 147, 146, 142, 138, 141, 140, 134, 143, 142, 135, 134, 141, 141, 144, 136, 135, 129, 144, 123, 139, 142, 140, 143, 138, 148, 139, 136, 138, 135, 134, 128, 136, 142, 138, 140, 144, 144, 137, 145, 131, 145, 141, 144, 142, 140, 135, 141, 142, 145, 149, 135, 132, 136, 138, 143, 139, 136, 142, 150, 134, 146, 139, 151, 139, 142, 144, 153, 135, 139, 131, 135, 131, 136, 138, 141, 147, 143, 136, 135, 139, 134, 143, 139, 123, 137, 137, 139, 128, 135, 142, 134, 137, 128, 139, 141, 146, 147, 139, 139, 140, 128, 161, 143, 146, 140, 154, 136, 131, 142, 131, 141, 125, 130, 140, 137, 132, 143, 141, 137, 135, 129, 132, 145, 143, 141, 131, 141, 137, 133, 122, 137, 132, 136, 140, 142, 135, 155, 140, 140, 150, 138, 141, 145, 138, 143, 139, 133, 150, 138, 143, 141, 132, 139, 133, 139, 131, 131, 135, 141, 142, 133, 150, 143, 143, 146, 124, 136, 143, 153, 135, 146, 146, 145, 150, 141, 144, 133, 128, 129, 141, 138, 143, 141, 132, 146, 126, 139, 133, 107, 135, 165, 136, 139, 143, 131, 139, 133, 138, 139, 140, 128, 141, 141, 144, 136, 140, 137, 140, 144, 138, 143, 135, 145, 144, 137, 139, 148, 128, 140, 131, 140, 138, 139, 137, 137, 130, 139, 133, 145, 139, 132, 142, 142, 134, 143, 134, 145, 132, 141, 133, 130, 140, 139, 134, 135, 137, 136, 146, 141, 140, 144, 137, 140, 135, 147, 139, 141, 141, 136, 136, 141, 137, 135, 140, 138, 151, 138, 138, 145, 138, 136, 144, 141, 139, 137, 144, 126, 139, 134, 133, 137, 142, 128, 139, 138, 133, 126, 153, 134, 130, 148, 140, 138, 142, 138, 143, 133, 135, 148, 139, 132, 134, 147, 143, 136, 137, 135, 138, 141, 140, 149, 130, 127, 143, 131, 142, 125, 132, 136, 140, 135, 135, 141, 125, 134, 134, 136, 139, 139, 135, 137, 134, 143, 125, 147, 134, 137, 138, 141, 143, 136, 132, 153, 146, 144, 142, 144, 134, 135, 136, 131, 141, 138, 127, 139, 138, 138, 137, 146, 141, 141, 141, 146, 140, 141, 141, 145, 146, 139, 139, 159, 148, 143, 131, 126, 138, 145, 141, 139, 149, 143, 142, 137, 144, 138, 136, 140, 140, 129, 147, 139, 149, 135, 138, 138, 136, 144, 136, 131, 130, 153, 143, 136, 143, 140, 138, 139, 135, 146, 131, 135, 136, 134, 139, 138, 137, 137, 137, 147, 147, 136, 144, 141, 135, 139, 131, 135, 144, 132, 135, 143, 139, 143, 137, 130, 143, 134, 141, 134, 139, 140, 140, 136, 135, 146, 144, 140, 134, 135, 135, 138, 138, 135, 130, 142, 126, 135, 142, 143, 138, 140, 139, 135, 135, 142, 132, 134, 148, 133, 125, 134, 151, 143, 136, 139, 141, 141, 137, 140, 132, 128, 144, 140, 130, 128, 141, 138, 128, 139, 149, 136, 137, 140, 145, 131, 141, 145, 131, 142, 132, 151, 136, 138, 151, 136, 140, 133, 126, 140, 136, 137, 144, 142, 138, 138, 147, 147, 133, 140, 139, 135, 132, 140, 135, 133, 134, 140, 136, 131, 140, 146, 140, 146, 129, 138, 148, 137, 132, 137, 149, 141, 142, 136, 145, 131, 140, 136, 140, 139, 141, 140, 139, 137, 140, 133, 142, 129, 135, 138, 154, 135, 138, 138, 140, 137, 136, 140, 138, 140, 130, 132, 142, 136, 140, 126, 136, 129, 142, 143, 135, 138, 139, 146, 140, 140, 138, 141, 135, 138, 140, 139, 144, 147, 150, 141, 142, 135, 129, 134, 144, 138, 138, 133, 128, 138, 132, 147, 146, 137, 142, 129, 138, 148, 136, 149, 143, 135, 145, 145, 139, 139, 140, 139, 130, 134, 132, 137, 139, 139, 134, 135, 134, 138, 131, 140, 140, 134, 140, 145, 139, 131, 145, 138, 145, 134, 143, 133, 143, 137, 129, 133, 142, 149, 132, 139, 135, 134, 134, 136, 137, 137, 131, 139, 138, 144, 141, 137, 140, 138, 139, 138, 140, 132, 132, 131, 139, 143, 131, 140, 144, 138, 137, 130, 140, 138, 141, 129, 151, 147, 148, 133, 139, 143, 138, 138, 142, 138, 138, 134, 138, 144, 138, 125, 133, 139, 140, 136, 148, 137, 139, 133, 139, 138, 141, 146, 137, 142, 139, 135, 138, 140, 133, 141, 139, 133, 135, 137, 136, 139, 139, 138, 144, 146, 144, 139, 145, 130, 140, 148, 137, 138, 141, 139, 138, 136, 139, 138, 130, 138, 152, 141, 146, 137, 137, 132, 136, 139, 138, 139, 137, 139, 140, 135, 136, 143, 138, 141, 138, 138, 131, 139, 142, 141, 135, 138, 137, 141, 146, 135, 138, 134, 133, 139, 143, 141, 142, 140, 140, 128, 144, 138, 139, 134, 132, 138, 142, 141, 138, 136, 139, 143, 145, 146, 147, 141, 138, 127, 140, 136, 142, 140, 144, 140, 137, 139, 141, 138, 143, 141, 139, 143, 143, 145, 138, 149, 142, 138, 139, 138, 147, 137, 136, 136, 138, 139, 132, 144, 140, 138, 140, 133, 137, 145, 133, 140, 139, 140, 139, 135, 146, 138, 137, 143, 138, 139, 132, 136, 141, 130, 154, 140, 137, 134, 141, 138, 137, 145, 143, 131, 141, 138, 136, 136, 135, 135, 136, 147, 140, 139, 134, 141, 134, 141, 140, 148, 144, 134, 139, 136, 140, 138, 147, 130, 139, 138, 140, 136, 142, 145, 135, 137, 137, 140, 138, 138, 138, 134, 138, 137, 136, 141, 138, 141, 137, 144, 143, 143, 142, 139, 139, 139, 135, 134, 138, 139, 138, 140, 150, 137, 141, 135, 138, 134, 141, 135, 144, 149, 136, 142, 142, 133, 145, 143, 135, 148, 149, 143, 152, 138, 139, 132, 143, 143, 133, 137, 138, 145, 140, 141, 135, 141, 139, 147, 134, 149, 143, 136, 141, 143, 130, 142, 143, 145, 141, 138, 140, 140, 132, 143, 138, 139, 130, 135, 135, 140, 134, 139, 142, 144, 138, 141, 136, 138, 140, 146, 141, 139, 145, 140, 134, 145, 134, 143, 143, 142, 144, 129, 146, 138, 137, 144, 143, 139, 145, 143, 138, 139, 138, 146, 139, 144, 132, 140, 139, 139, 140, 141, 139, 145, 141, 138, 146, 153, 137, 140, 133, 144, 142, 142, 142, 141, 141, 137, 142, 142, 141, 143, 139, 139, 136, 141, 136, 135, 140, 142, 139, 141, 135, 143, 142, 141, 133, 138, 136, 137, 136, 122, 139, 138, 143, 145, 145, 140, 139, 140, 138, 132, 142, 138, 142, 137, 144, 151, 129, 138, 143, 136, 138, 138, 142, 140, 137, 146, 144, 139, 137, 138, 133, 143, 137, 138, 131, 132, 143, 126, 143, 141, 136, 137, 136, 138, 138, 152, 139, 135, 141, 136, 130, 137, 140, 134, 142, 137, 143, 141, 146, 142, 136, 145, 141, 144, 139, 138, 135, 136, 135, 137, 138, 132, 136, 151, 138, 139, 136, 138, 142, 144, 143, 141, 142, 141, 143, 144, 144, 134, 144, 137, 145, 131, 148, 137, 143, 141, 133, 138, 139, 133, 142, 140, 135, 137, 139, 143, 147, 142, 139, 141, 137, 140, 134, 136, 155, 141, 139, 134, 145, 141, 140, 141, 143, 143, 144, 136, 137, 141, 136, 133, 139, 141, 135, 131, 134, 142, 144, 134, 144, 137, 140, 143, 143, 139, 138, 143, 136, 135, 138, 139, 136, 140, 145, 140, 140, 142, 135, 132, 136, 146, 150, 137, 138, 134, 142, 128, 144, 145, 136, 135, 132, 137, 127, 134, 127, 131, 138, 137, 143, 144, 139, 143, 141, 140, 139, 140, 146, 140, 135, 145, 134, 130, 138, 137, 151, 135, 144, 144, 141, 138, 135, 142, 143, 135, 152, 136, 139, 135, 133, 135, 137, 136, 144, 131, 140, 133, 146, 152, 140, 138, 139, 128, 132, 143, 140, 134, 140, 136, 142, 141, 138, 143, 140, 139, 141, 144, 134, 130, 134, 139, 134, 141, 138, 141, 133, 135, 143, 127, 137, 138, 143, 141, 144, 136, 147, 138, 136, 142, 141, 138, 132, 147, 138, 140, 135, 141, 130, 141, 153, 144, 141, 136, 138, 134, 146, 138, 132, 139, 134, 140, 134, 137, 135, 138, 141, 134, 140, 145, 138, 135, 135, 146, 133, 133, 140, 136, 144, 137, 133, 144, 133, 132, 145, 145, 130, 143, 134, 144, 139, 142, 139, 141, 140, 139, 142, 130, 136, 135, 133, 144, 130, 141, 138, 150, 143, 149, 139, 131, 142, 140, 150, 143, 137, 143, 134, 138, 129, 139, 131, 133, 143, 138, 131, 131, 140, 140, 139, 145, 123, 141, 139, 140, 133, 139, 136, 130, 147, 139, 138, 144, 141, 137, 137, 138, 130, 135, 136, 138, 143, 142, 135, 135, 146, 135, 131, 131, 133, 133, 142, 138, 137, 140, 143, 143, 138, 140, 124, 138, 136, 141, 136, 138, 144, 140, 135, 134, 138, 133, 136, 141, 144, 138, 135, 142, 131, 158, 139, 136, 140, 132, 145, 136, 147, 138, 142, 137, 136, 138, 141, 141, 129, 132, 141, 139, 138, 130, 140, 132, 138, 138, 144, 142, 137, 139, 132, 128, 152, 150, 134, 132, 145, 139, 139, 144, 133, 135, 138, 137, 141, 147, 137, 129, 142, 139, 146, 142, 143, 135, 138, 137, 133, 142, 142, 141, 138, 137, 147, 129, 143, 140, 145, 132, 140, 133, 147, 136, 137, 142, 142, 140, 135, 143, 146, 138, 139, 136, 138, 134, 148, 143, 136, 140, 144, 137, 135, 138, 146, 129, 135, 130, 144, 145, 137, 136, 145, 137, 149, 145, 139, 140, 138, 141, 134, 146, 132, 141, 141, 140, 137, 154, 144, 138, 130, 139, 145, 145, 145, 148, 139, 141, 141, 125, 140, 119, 136, 131, 132, 137, 136, 146, 136, 141, 145, 135, 137, 137, 135, 142, 140, 128, 132, 134, 131, 141, 137, 133, 133, 134, 138, 150, 135, 149, 134, 142, 139, 142, 140, 136, 144, 149, 131, 139, 133, 133, 136, 137, 139, 141, 145, 143, 144, 139, 137, 141, 136, 140, 144, 134, 134, 139, 129, 145, 138, 146, 133, 145, 142, 146, 130, 139, 136, 143, 152, 142, 137, 142, 144, 137, 137, 141, 142, 143, 141, 135, 142, 143, 138, 136, 130, 143, 156, 133, 144, 144, 132, 135, 141, 146, 139, 127, 134, 138, 124, 143, 135, 141, 137, 134, 136, 132, 132, 138, 146, 140, 143, 146, 140, 138, 137, 130, 148, 140, 132, 143, 148, 131, 133, 136, 136, 137, 145, 137, 149, 144, 145, 143, 141, 134, 159, 139, 134, 136, 139, 130, 134, 142, 130, 139, 138, 128, 145, 146, 138, 147, 140, 145, 146, 137, 132, 142, 139, 143, 133, 145, 145, 133, 139, 141, 139, 139, 134, 121, 137, 147, 139, 141, 139, 129, 134, 134, 142, 140, 143, 133, 145, 149, 135, 136, 134, 123, 131, 140, 136, 144, 148, 136, 145, 139, 142, 136, 136, 143, 141, 140, 134, 137, 143, 148, 147, 152, 135, 143, 144, 148, 139, 133, 141, 143, 135, 138, 130, 144, 153, 141, 139, 141, 150, 135, 141, 150, 143, 135, 135, 143, 129, 127, 140, 131, 136, 136, 132, 145, 131, 140, 150, 136, 130, 141, 135, 135, 142, 131, 150, 146, 141, 139, 135, 125, 138, 139, 145, 135, 155, 141, 136, 132, 133, 134, 142, 138, 132, 142, 148, 137, 132, 140, 131, 132, 140, 145, 124, 139, 141, 136, 137, 147, 152, 132, 130, 136, 142, 135, 133, 140, 138, 134, 133, 141, 141, 135, 135, 140, 136, 136, 143, 142, 143, 145, 138, 139, 138, 144, 135, 140, 131, 142, 139, 154, 131, 129, 139, 137, 144, 134, 135, 140, 142, 136, 145, 138, 138, 149, 127, 135, 146, 141, 149, 145, 139, 136, 143, 134, 152, 141, 134, 134, 146, 143, 148, 128, 138, 137, 147, 127, 143, 137, 132, 139, 136, 144, 142, 140, 134, 135, 139, 125, 145, 138, 142, 128, 133, 138, 150, 137, 138, 137, 125, 127, 133, 137, 148, 140, 146, 144, 149, 130, 129, 161, 136, 146, 140, 135, 143, 138, 129, 141, 140, 136, 126, 142, 138, 136, 123, 131, 148, 122, 134, 134, 129, 141, 140, 149, 154, 141, 131, 144, 139, 141, 136, 136, 141, 136, 137, 137, 131, 140, 143, 147, 137, 139, 125, 145, 133, 138, 142, 145, 131, 159, 134, 134, 135, 135, 142, 140, 151, 136, 129, 132, 140, 150, 117, 138, 149, 127, 144, 150, 134, 126, 142, 129, 140, 140, 154, 138, 132, 141, 142, 141, 140, 127, 142, 130, 141, 147, 143, 142, 143, 142, 137, 133, 126, 143, 149, 132, 138, 142, 139, 148, 140, 135, 134, 147, 132, 136, 148, 152, 135, 136, 133, 135, 137, 125, 142, 143, 132, 140, 137, 144, 127, 138, 134, 141, 135, 141, 141, 146, 138, 122, 140, 136, 146, 149, 144, 135, 132, 142, 132, 138, 136, 143, 137, 138, 140, 150, 137, 138, 130, 133, 136, 140, 146, 141, 142, 136, 141, 147, 145, 141, 145, 141, 142, 134, 135, 145, 134, 149, 125, 143, 143, 148, 129, 145, 139, 129, 155, 147, 135, 150, 127, 122, 142, 145, 141, 136, 135, 139, 147, 130, 132, 141, 126, 143, 128, 147, 128, 130, 144, 149, 139, 149, 147, 142, 134, 140, 145, 133, 129, 144, 145, 142, 119, 140, 137, 142, 144, 142, 149, 144, 132, 139, 141, 134, 132, 130, 137, 135, 134, 144, 140, 140, 142, 131, 133, 144, 123, 142, 141, 134, 136, 134, 148, 124, 144, 129, 132, 130, 132, 144, 134, 138, 147, 137, 144, 158, 143, 148, 135, 141, 148, 140, 145, 135, 139, 143, 142, 140, 129, 146, 144, 135, 145, 130, 144, 136, 143, 160, 135, 139, 139, 149, 127, 138, 136, 137, 146, 137, 155, 145, 142, 129, 146, 137, 134, 146, 132, 140, 144, 141, 129, 141, 141, 139, 131, 135, 148, 132, 130, 140, 133, 122, 138, 129, 130, 130, 142, 136, 133, 141, 132, 138, 134, 137, 146, 139, 141, 139, 134, 141, 140, 136, 132, 148, 146, 142, 141, 151, 139, 132, 136, 140, 143, 132, 127, 128, 139, 146, 137, 146, 142, 138, 135, 134, 141, 143, 139, 137, 138, 126, 136, 139, 131, 139, 129, 139, 135, 144, 136, 139, 130, 142, 144, 133, 137, 146, 143, 140, 142, 133, 135, 152, 143, 149, 133, 136, 132, 141, 135, 143, 138, 138, 136, 133, 134, 147, 136, 142, 133, 142, 140, 146, 133, 146, 144, 138, 138, 141, 135, 128, 136, 131, 134, 160, 144, 137, 141, 136, 142, 132, 146, 144, 130, 143, 136, 134, 138, 131, 133, 137, 151, 150, 144, 146, 141, 150, 122, 147, 130, 137, 137, 149, 122, 145, 142, 146, 137, 146, 130, 134, 148, 139, 143, 142, 135, 135, 136, 130, 150, 134, 144, 146, 140, 128, 145, 133, 138, 137, 136, 139, 133, 155, 132, 135, 132, 135, 141, 136, 151, 149, 147, 151, 137, 129, 134, 134, 139, 145, 149, 136, 140, 143, 134, 138, 138, 139, 131, 133, 143, 150, 138, 141, 147, 135, 132, 128, 136, 127, 147, 130, 137, 148, 130, 136, 140, 157, 139, 136, 144, 122, 135, 136, 140, 143, 144, 134, 148, 144, 129, 146, 150, 130, 131, 144, 149, 152, 144, 138, 132, 140, 138, 138, 135, 148, 133, 145, 141, 128, 136, 138, 138, 134, 144, 143, 136, 134, 137, 130, 139, 128, 137, 137, 146, 125, 139, 131, 143, 129, 143, 140, 136, 144, 136, 141, 140, 133, 141, 136, 138, 145, 153, 141, 133, 140, 136, 130, 138, 158, 142, 139, 132, 139, 147, 136, 138, 137, 144, 136, 127, 131, 131, 157, 144, 147, 144, 132, 135, 118, 124, 133, 142, 138, 147, 130, 139, 141, 141, 141, 144, 150, 137, 140, 136, 132, 137, 141, 144, 143, 142, 139, 130, 136, 137, 146, 137, 136, 142, 129, 146, 150, 141, 134, 132, 132, 144, 141, 149, 135, 136, 136, 144, 129, 137, 139, 140, 143, 133, 144, 142, 133, 134, 131, 145, 135, 148, 143, 141, 149, 137, 142, 142, 131, 133, 134, 145, 137, 143, 142, 146, 136, 147, 151, 135, 141, 136, 130, 140, 141, 138, 142, 131, 148, 141, 132, 145, 127, 128, 134, 136, 134, 140, 136, 137, 140, 138, 145, 134, 147, 139, 143, 126, 152, 129, 140, 152, 143, 129, 139, 139, 133, 140, 139, 130, 147, 127, 138, 141, 146, 142, 141, 145, 140, 145, 140, 137, 130, 133, 146, 144, 128, 125, 133, 143, 132, 135, 140, 143, 153, 153, 132, 138, 139, 149, 136, 141, 151, 134, 148, 128, 127, 146, 140, 146, 133, 134, 117, 141, 143, 137, 132, 135, 125, 137, 138, 136, 147, 137, 144, 145, 140, 144, 141, 135, 146, 142, 138, 142, 139, 146, 138, 141, 140, 134, 135, 134, 135, 133, 141, 135, 135, 158, 143, 182, 138, 139, 130, 138, 146, 138, 135, 141, 148, 141, 144, 147, 136, 136, 147, 138, 141, 140, 139, 133, 140, 142, 139, 134, 132, 140, 135, 141, 143, 127, 133, 142, 144, 136, 145, 142, 134, 146, 145, 134, 147, 144, 141, 139, 141, 152, 133, 141, 130, 145, 137, 142, 139, 136, 134, 147, 136, 139, 140, 158, 144, 126, 137, 134, 130, 139, 133, 145, 141, 146, 133, 144, 136, 153, 148, 130, 137, 136, 139, 132, 143, 137, 131, 142, 143, 138, 140, 141, 140, 144, 145, 131, 135, 144, 153, 143, 139, 142, 135, 139, 136, 138, 137, 132, 139, 131, 146, 133, 145, 135, 140, 138, 150, 136, 149, 133, 132, 136, 132, 134, 134, 137, 132, 147, 149, 126, 151, 133, 142, 132, 138, 144, 144, 142, 141, 141, 147, 134, 134, 136, 139, 134, 142, 121, 145, 134, 142, 134, 140, 129, 140, 138, 140, 138, 136, 153, 139, 132, 125, 131, 143, 137, 144, 138, 141, 134, 132, 142, 143, 136, 132, 143, 136, 154, 140, 136, 139, 140, 138, 132, 139, 145, 136, 135, 139, 137, 151, 135, 135, 144, 114, 143, 133, 134, 139, 142, 130, 147, 145, 145, 137, 150, 143, 133, 135, 136, 143, 138, 151, 137, 135, 141, 138, 148, 137, 135, 134, 134, 142, 128, 137, 130, 134, 133, 142, 142, 136, 139, 143, 147, 135, 143, 142, 132, 140, 143, 130, 129, 139, 130, 135, 134, 147, 141, 132, 130, 136, 151, 142, 138, 127, 140, 135, 125, 142, 132, 140, 136, 136, 142, 142, 141, 139, 139, 133, 132, 133, 142, 140, 136, 140, 135, 131, 135, 136, 145, 137, 136, 137, 130, 137, 131, 136, 142, 145, 132, 143, 145, 139, 144, 130, 137, 144, 142, 135, 127, 144, 140, 133, 145, 137, 125, 145, 147, 137, 147, 140, 139, 132, 141, 138, 138, 134, 134, 140, 145, 142, 135, 137, 142, 136, 137, 139, 137, 139, 138, 147, 148, 140, 133, 136, 132, 134, 139, 138, 144, 137, 136, 126, 132, 140, 137, 142, 136, 133, 144, 152, 134, 142, 143, 132, 145, 142, 143, 133, 135, 141, 140, 145, 137, 148, 123, 138, 144, 137, 138, 139, 138, 131, 131, 142, 135, 138, 134, 130, 138, 143, 139, 137, 142, 145, 144, 142, 123, 130, 139, 134, 156, 133, 142, 137, 131, 142, 152, 143, 150, 140, 129, 137, 136, 141, 132, 152, 133, 134, 142, 133, 139, 154, 145, 146, 149, 143, 149, 137, 140, 141, 145, 134, 140, 138, 129, 139, 132, 136, 130, 139, 138, 138, 136, 147, 130, 133, 145, 150, 138, 136, 139, 140, 134, 144, 135, 144, 141, 134, 139, 124, 140, 143, 138, 138, 134, 150, 136, 144, 144, 142, 139, 137, 142, 129, 145, 126, 143, 133, 135, 138, 135, 135, 141, 148, 129, 132, 140, 136, 136, 139, 137, 130, 143, 129, 144, 137, 150, 134, 137, 146, 139, 140, 139, 143, 138, 140, 143, 134, 143, 135, 141, 129, 149, 141, 134, 141, 142, 137, 137, 140, 141, 145, 138, 147, 143, 132, 141, 134, 132, 138, 141, 134, 126, 144, 134, 138, 142, 136, 139, 130, 140, 131, 136, 137, 138, 145, 125, 136, 142, 134, 133, 133, 146, 141, 141, 139, 146, 137, 138, 140, 146, 140, 140, 148, 134, 143, 153, 139, 140, 138, 139, 142, 138, 142, 138, 139, 135, 149, 148, 136, 133, 141, 133, 139, 136, 142, 135, 140, 137, 141, 144, 137, 137, 148, 141, 139, 143, 142, 136, 140, 145, 145, 143, 141, 139, 140, 135, 142, 130, 133, 142, 132, 141, 136, 144, 136, 134, 142, 146, 141, 136, 142, 134, 144, 149, 142, 132, 138, 141, 139, 135, 139, 137, 140, 138, 138, 139, 142, 140, 142, 138, 141, 135, 135, 134, 141, 142, 140, 144, 135, 138, 129, 139, 143, 130, 141, 132, 136, 133, 149, 135, 137, 136, 143, 143, 136, 138, 144, 141, 139, 133, 139, 134, 134, 137, 138, 139, 137, 150, 142, 144, 138, 128, 139, 139, 140, 132, 140, 133, 138, 139, 138, 132, 151, 144, 142, 144, 146, 140, 135, 146, 146, 137, 150, 133, 140, 138, 139, 135, 142, 131, 141, 144, 135, 132, 141, 139, 136, 136, 141, 133, 131, 138, 143, 135, 145, 139, 149, 139, 136, 134, 137, 134, 132, 137, 141, 135, 136, 149, 139, 141, 138, 140, 141, 137, 135, 133, 149, 137, 125, 137, 137, 140, 143, 141, 130, 137, 135, 138, 138, 140, 146, 136, 145, 136, 137, 137, 132, 140, 140, 136, 143, 137, 139, 142, 138, 139, 138, 136, 141, 133, 132, 141, 136, 136, 139, 140, 140, 142, 135, 135, 132, 140, 127, 134, 135, 134, 151, 138, 134, 139, 145, 136, 134, 139, 133, 130, 142, 145, 145, 134, 140, 143, 137, 145, 142, 138, 139, 139, 131, 133, 141, 133, 140, 147, 138, 133, 135, 135, 135, 145, 137, 141, 137, 136, 134, 144, 151, 140, 147, 145, 137, 136, 136, 151, 144, 135, 139, 139, 136, 138, 133, 132, 140, 143, 135, 139, 134, 134, 139, 134, 142, 143, 142, 146, 140, 132, 141, 140, 141, 145, 144, 136, 135, 128, 142, 136, 134, 138, 140, 138, 136, 137, 139, 130, 144, 143, 147, 139, 133, 129, 137, 140, 137, 137, 143, 136, 141, 140, 131, 136, 142, 139, 135, 135, 142, 138, 142, 136, 143, 148, 141, 129, 143, 137, 138, 140, 135, 139, 145, 133, 141, 135, 133, 142, 141, 137, 135, 149, 148, 134, 140, 144, 137, 129, 134, 132, 142, 140, 136, 134, 142, 140, 143, 144, 148, 146, 134, 140, 151, 136, 144, 139, 139, 141, 134, 139, 140, 137, 144, 132, 136, 147, 136, 154, 137, 138, 138, 138, 137, 132, 134, 152, 148, 133, 139, 137, 139, 140, 130, 139, 126, 137, 138, 143, 136, 146, 138, 137, 140, 142, 135, 147, 133, 140, 142, 139, 139, 146, 129, 134, 134, 143, 130, 140, 141, 141, 150, 138, 128, 134, 145, 135, 141, 141, 139, 124, 136, 139, 129, 137, 134, 138, 144, 146, 139, 137, 140, 131, 140, 143, 136, 126, 138, 135, 141, 130, 137, 136, 134, 138, 138, 148, 140, 132, 138, 141, 132, 126, 143, 145, 140, 139, 141, 137, 139, 136, 147, 141, 133, 144, 151, 141, 140, 130, 138, 131, 135, 143, 171, 140, 135, 139, 139, 139, 135, 139, 142, 141, 143, 137, 138, 143, 146, 144, 145, 134, 138, 132, 136, 137, 139, 144, 150, 144, 133, 139, 132, 140, 138, 135, 141, 142, 141, 141, 133, 148, 143, 137, 139, 142, 148, 142, 144, 144, 137, 132, 144, 126, 147, 144, 136, 144, 141, 129, 134, 153, 136, 142, 131, 137, 150, 144, 141, 154, 137, 141, 140, 137, 140, 134, 137, 151, 138, 138, 142, 129, 137, 140, 146, 138, 133, 128, 133, 132, 135, 140, 136, 136, 136, 136, 133, 135, 144, 140, 147, 140, 138, 144, 140, 131, 140, 131, 143, 132, 136, 149, 139, 132, 142, 133, 146, 137, 136, 132, 135, 135, 135, 139, 137, 136, 145, 127, 129, 135, 140, 133, 134, 133, 137, 125, 135, 132, 141, 146, 143, 133, 135, 139, 130, 134, 138, 142, 141, 136, 143, 134, 134, 137, 130, 139, 140, 137, 141, 138, 146, 140, 136, 136, 140, 132, 143, 139, 136, 132, 138, 137, 146, 139, 127, 134, 134, 135, 134, 138, 141, 141, 135, 143, 135, 148, 141, 140, 141, 132, 129, 135, 132, 127, 130, 140, 138, 140, 138, 142, 136, 135, 133, 137, 132, 136, 141, 130, 143, 138, 140, 132, 146, 140, 140, 150, 134, 145, 147, 131, 137, 141, 145, 141, 134, 134, 138, 138, 146, 148, 135, 141, 140, 142, 141, 144, 142, 143, 137, 133, 139, 134, 138, 145, 137, 141, 138, 151, 146, 150, 138, 139, 132, 134, 138, 152, 135, 144, 130, 141, 145, 142, 140, 152, 145, 141, 141, 139, 135, 132, 135, 136, 137, 136, 143, 133, 140, 137, 131, 136, 141, 141, 142, 139, 153, 144, 140, 148, 146, 129, 146, 145, 121, 133, 140, 131, 145, 137, 142, 133, 139, 138, 146, 134, 139, 142, 143, 134, 142, 133, 137, 144, 135, 143, 134, 142, 140, 144, 138, 132, 126, 136, 137, 134, 133, 140, 133, 134, 142, 147, 142, 131, 148, 137, 137, 138, 136, 129, 137, 141, 134, 141, 142, 133, 138, 137, 132, 146, 140, 136, 131, 144, 140, 137, 136, 136, 146, 140, 133, 132, 136, 146, 133, 133, 139, 132, 144, 145, 148, 138, 138, 149, 139, 134, 141, 135, 146, 141, 148, 135, 145, 146, 139, 135, 136, 137, 141, 151, 147, 151, 140, 136, 133, 130, 145, 139, 142, 141, 132, 138, 138, 138, 148, 152, 136, 138, 149, 131, 136, 143, 136, 132, 139, 139, 136, 132, 135, 136, 138, 132, 139, 136, 135, 140, 143, 140, 133, 134, 139, 149, 143, 137, 140, 137, 131, 144, 141, 140, 133, 132, 147, 136, 139, 132, 132, 131, 138, 127, 132, 146, 148, 150, 126, 138, 139, 125, 144, 135, 134, 147, 140, 137, 140, 136, 140, 132, 132, 135, 142, 139, 132, 136, 140, 148, 132, 135, 143, 146, 135, 132, 141, 143, 132, 148, 142, 135, 135, 140, 140, 139, 134, 144, 139, 136, 133, 137, 142, 138, 133, 135, 136, 141, 145, 138, 141, 141, 132, 137, 135, 138, 144, 136, 150, 134, 138, 140, 138, 133, 136, 141, 140, 147, 148, 139, 144, 148, 143, 146, 136, 134, 137, 137, 136, 144, 144, 122, 148, 138, 138, 135, 140, 137, 127, 147, 136, 148, 139, 137, 138, 147, 143, 138, 143, 137, 125, 141, 141, 142, 134, 140, 143, 138, 137, 138, 134, 136, 140, 137, 136, 152, 136, 136, 140, 139, 135, 140, 137, 135, 141, 148, 136, 142, 143, 142, 146, 138, 143, 133, 133, 146, 140, 144, 152, 134, 141, 140, 139, 133, 149, 137, 140, 143, 133, 125, 132, 152, 136, 133, 133, 145, 128, 136, 139, 138, 138, 127, 135, 155, 144, 139, 136, 133, 148, 155, 145, 139, 144, 143, 136, 142, 136, 137, 133, 137, 146, 127, 144, 127, 143, 139, 148, 134, 136, 134, 138, 153, 136, 135, 140, 140, 136, 148, 129, 133, 143, 130, 137, 133, 147, 131, 130, 136, 141, 138, 135, 151, 145, 142, 125, 139, 132, 135, 139, 136, 135, 140, 134, 143, 139, 134, 128, 140, 141, 140, 134, 134, 145, 139, 127, 137, 142, 133, 143, 149, 136, 138, 136, 144, 144, 135, 136, 138, 130, 133, 138, 135, 150, 145, 142, 139, 151, 130, 136, 143, 140, 139, 141, 145, 136, 136, 143, 134, 139, 141, 135, 135, 135, 139, 137, 142, 142, 146, 138, 137, 136, 138, 130, 142, 138, 132, 134, 139, 132, 150, 140, 137, 145, 141, 143, 127, 134, 147, 141, 136, 146, 140, 140, 139, 135, 134, 139, 132, 139, 143, 133, 131, 138, 139, 136, 134, 134, 150, 136, 132, 142, 136, 139, 133, 144, 132, 138, 138, 137, 147, 136, 127, 137, 138, 141, 138, 134, 139, 142, 131, 139, 126, 139, 145, 143, 138, 138, 134, 151, 138, 140, 129, 145, 135, 144, 141, 142, 133, 148, 142, 142, 136, 143, 142, 137, 139, 136, 134, 141, 133, 136, 145, 138, 141, 146, 126, 138, 136, 140, 143, 132, 126, 135, 140, 140, 141, 141, 143, 141, 143, 127, 137, 137, 137, 135, 138, 136, 140, 130, 133, 138, 144, 138, 140, 137, 141, 135, 145, 140, 142, 137, 143, 143, 137, 139, 134, 136, 131, 146, 143, 132, 142, 145, 132, 138, 143, 139, 143, 139, 132, 140, 139, 138, 135, 140, 142, 141, 141, 134, 147, 137, 142, 141, 140, 138, 136, 144, 137, 144, 131, 133, 138, 148, 135, 144, 138, 139, 144, 140, 139, 138, 141, 132, 137, 142, 131, 139, 142, 137, 141, 143, 131, 137, 139, 134, 140, 134, 147, 138, 137, 140, 139, 148, 145, 127, 136, 139, 141, 133, 141, 139, 136, 135, 142, 139, 133, 144, 141, 136, 139, 134, 144, 146, 135, 132, 135, 130, 136, 135, 138, 143, 140, 145, 135, 140, 145, 132, 140, 133, 145, 152, 146, 145, 135, 146, 147, 136, 132, 140, 140, 137, 147, 130, 148, 127, 139, 141, 138, 129, 142, 134, 143, 135, 135, 146, 143, 150, 132, 154, 142, 137, 139, 131, 129, 140, 143, 134, 131, 141, 145, 133, 144, 150, 135, 138, 131, 151, 132, 129, 131, 135, 145, 142, 139, 126, 136, 140, 144, 135, 140, 134, 141, 146, 138, 145, 128, 147, 140, 146, 146, 135, 140, 135, 143, 140, 134, 140, 124, 129, 134, 137, 134, 133, 133, 142, 148, 158, 134, 138, 140, 144, 130, 146, 146, 144, 134, 130, 133, 148, 140, 143, 137, 133, 142, 141, 140, 148, 133, 139, 148, 142, 147, 136, 139, 131, 139, 143, 142, 125, 139, 146, 143, 148, 137, 130, 147, 139, 141, 140, 129, 141, 133, 138, 134, 134, 130, 140, 141, 143, 137, 141, 145, 131, 134, 144, 133, 138, 140, 127, 138, 139, 137, 144, 155, 145, 136, 139, 130, 128, 125, 141, 140, 144, 142, 131, 139, 147, 136, 133, 134, 135, 139, 134, 137, 136, 141, 139, 130, 139, 133, 138, 140, 141, 143, 139, 133, 143, 140, 141, 133, 137, 137, 148, 137, 124, 141, 144, 134, 142, 137, 147, 137, 147, 139, 149, 137, 134, 156, 147, 136, 146, 130, 130, 134, 140, 146, 130, 142, 138, 138, 144, 137, 129, 132, 146, 134, 142, 133, 131, 136, 150, 134, 130, 132, 135, 153, 137, 139, 143, 139, 146, 144, 139, 143, 140, 139, 143, 139, 135, 131, 129, 139, 137, 142, 118, 149, 135, 134, 147, 138, 141, 139, 157, 142, 127, 145, 130, 138, 144, 136, 140, 148, 126, 154, 136, 145, 143, 144, 135, 143, 138, 131, 132, 146, 126, 126, 140, 145, 149, 142, 161, 142, 148, 143, 145, 139, 139, 131, 126, 135, 146, 142, 132, 137, 146, 148, 138, 153, 141, 132, 137, 134, 137, 142, 131, 140, 144, 140, 143, 142, 137, 143, 132, 149, 147, 129, 127, 144, 133, 143, 140, 151, 137, 137, 141, 144, 148, 133, 123, 138, 140, 136, 136, 134, 140, 137, 135, 136, 129, 138, 146, 136, 142, 154, 142, 127, 144, 136, 142, 140, 124, 130, 148, 134, 145, 126, 123, 137, 150, 138, 140, 135, 136, 145, 133, 146, 139, 141, 153, 140, 141, 132, 134, 135, 138, 136, 143, 127, 139, 135, 136, 135, 145, 149, 140, 149, 134, 154, 124, 135, 132, 137, 149, 144, 139, 131, 143, 131, 141, 133, 150, 144, 137, 140, 135, 137, 144, 130, 147, 145, 132, 130, 147, 145, 136, 149, 139, 136, 144, 144, 143, 127, 145, 139, 134, 128, 128, 152, 134, 148, 149, 143, 133, 139, 135, 142, 149, 132, 143, 142, 128, 137, 141, 154, 133, 145, 131, 144, 142, 132, 143, 128, 142, 139, 130, 142, 150, 135, 130, 143, 150, 148, 148, 134, 133, 130, 143, 129, 135, 143, 133, 146, 136, 127, 138, 137, 142, 137, 138, 135, 131, 126, 146, 142, 133, 127, 144, 148, 155, 140, 155, 144, 142, 141, 138, 145, 143, 140, 143, 147, 146, 140, 137, 150, 134, 144, 137, 141, 132, 131, 146, 142, 135, 146, 135, 142, 146, 141, 146, 137, 137, 139, 141, 135, 144, 147, 136, 139, 133, 138, 145, 136, 137, 141, 151, 139, 138, 142, 148, 152, 136, 132, 137, 143, 144, 145, 137, 138, 139, 132, 141, 138, 150, 143, 137, 138, 144, 135, 140, 134, 135, 131, 129, 125, 156, 140, 147, 149, 141, 135, 139, 144, 136, 141, 141, 129, 150, 139, 131, 146, 144, 137, 129, 138, 146, 130, 152, 139, 143, 137, 140, 137, 127, 145, 137, 137, 123, 137, 145, 138, 139, 129, 125, 129, 146, 134, 139, 132, 147, 143, 141, 140, 129, 141, 137, 143, 145, 132, 138, 136, 143, 135, 135, 133, 146, 148, 142, 137, 149, 148, 138, 118, 145, 129, 127, 129, 150, 128, 160, 149, 142, 137, 140, 138, 141, 141, 140, 138, 131, 141, 141, 141, 133, 136, 130, 142, 132, 139, 137, 143, 132, 139, 134, 132, 139, 134, 148, 147, 148, 138, 124, 133, 131, 130, 133, 130, 136, 139, 138, 142, 145, 135, 145, 135, 147, 155, 131, 139, 140, 140, 148, 136, 144, 135, 130, 149, 129, 139, 134, 143, 140, 135, 130, 140, 148, 131, 133, 132, 141, 145, 135, 141, 130, 146, 139, 138, 144, 133, 131, 140, 148, 145, 129, 132, 135, 141, 146, 127, 139, 137, 162, 135, 139, 148, 127, 145, 137, 128, 131, 136, 159, 132, 146, 143, 141, 140, 132, 136, 144, 157, 148, 143, 134, 141, 132, 144, 130, 123, 136, 134, 140, 147, 135, 138, 139, 135, 131, 143, 142, 140, 125, 132, 137, 144, 137, 146, 141, 143, 125, 150, 143, 133, 137, 146, 142, 134, 145, 138, 146, 139, 125, 139, 131, 127, 151, 134, 139, 128, 142, 144, 138, 131, 147, 142, 136, 141, 134, 141, 129, 156, 143, 135, 142, 136, 126, 148, 155, 124, 140, 149, 133, 133, 143, 128, 149, 136, 154, 136, 138, 127, 137, 134, 136, 136, 143, 144, 141, 135, 143, 150, 127, 127, 135, 147, 135, 150, 154, 138, 139, 139, 142, 130, 137, 140, 139, 138, 140, 136, 131, 140, 140, 127, 138, 143, 138, 143, 140, 129, 142, 130, 133, 135, 132, 138, 140, 131, 132, 132, 150, 140, 125, 138, 148, 147, 133, 137, 147, 140, 142, 142, 135, 134, 146, 131, 134, 131, 138, 137, 142, 137, 151, 133, 153, 140, 143, 138, 146, 139, 141, 146, 135, 130, 124, 140, 132, 139, 139, 145, 141, 136, 145, 143, 142, 144, 144, 146, 142, 137, 133, 138, 150, 137, 138, 135, 129, 138, 137, 153, 139, 129, 143, 133, 127, 133, 131, 144, 149, 138, 152, 120, 132, 143, 135, 140, 147, 136, 135, 131, 124, 128, 139, 135, 141, 135, 132, 143, 141, 141, 134, 149, 141, 150, 146, 134, 144, 135, 134, 132, 150, 132, 138, 138, 139, 138, 145, 134, 139, 142, 138, 140, 136, 148, 149, 127, 131, 139, 135, 129, 152, 136, 138, 130, 133, 135, 140, 145, 135, 130, 141, 139, 146, 145, 141, 138, 146, 144, 141, 138, 132, 139, 138, 143, 148, 142, 135, 133, 131, 137, 134, 136, 140, 140, 141, 139, 147, 137, 135, 145, 132, 139, 138, 141, 136, 128, 132, 145, 140, 137, 133, 137, 135, 131, 137, 137, 140, 134, 143, 136, 148, 144, 139, 136, 140, 139, 128, 141, 142, 136, 148, 142, 144, 144, 139, 131, 143, 128, 131, 140, 135, 132, 134, 149, 139, 140, 132, 135, 143, 139, 142, 135, 137, 132, 135, 135, 132, 136, 136, 140, 131, 140, 142, 134, 145, 133, 140, 144, 140, 140, 144, 135, 138, 139, 134, 132, 140, 134, 136, 145, 147, 128, 142, 125, 135, 134, 136, 134, 130, 136, 136, 135, 142, 132, 142, 130, 138, 136, 127, 136, 134, 136, 127, 138, 137, 142, 136, 136, 137, 142, 135, 142, 133, 138, 139, 127, 141, 133, 149, 138, 147, 129, 141, 141, 135, 141, 135, 137, 141, 133, 140, 136, 142, 144, 138, 142, 137, 142, 138, 135, 143, 139, 136, 140, 145, 138, 149, 137, 130, 139, 133, 137, 131, 143, 142, 156, 139, 124, 140, 141, 144, 144, 141, 144, 139, 137, 148, 143, 137, 142, 145, 137, 143, 144, 142, 134, 139, 132, 136, 140, 138, 138, 153, 149, 140, 139, 134, 134, 136, 134, 141, 133, 141, 145, 140, 145, 139, 139, 142, 136, 146, 141, 141, 135, 135, 136, 141, 143, 138, 149, 129, 139, 132, 145, 139, 138, 135, 138, 133, 139, 134, 130, 129, 144, 142, 147, 144, 140, 132, 138, 142, 149, 141, 134, 146, 138, 137, 137, 140, 139, 135, 146, 134, 138, 142, 139, 142, 139, 130, 139, 138, 135, 131, 144, 136, 139, 138, 136, 130, 133, 134, 141, 134, 146, 133, 141, 129, 138, 145, 135, 140, 146, 142, 130, 138, 134, 138, 141, 133, 136, 134, 149, 138, 143, 140, 134, 137, 135, 135, 143, 140, 144, 134, 140, 134, 143, 142, 146, 140, 138, 140, 131, 141, 141, 138, 133, 141, 148, 142, 144, 138, 138, 142, 141, 132, 139, 141, 138, 149, 140, 139, 143, 145, 146, 138, 138, 138, 145, 138, 139, 133, 142, 135, 136, 138, 132, 138, 135, 140, 134, 131, 135, 134, 137, 140, 146, 145, 135, 139, 136, 135, 140, 141, 138, 140, 149, 132, 144, 135, 132, 133, 137, 145, 136, 140, 136, 135, 147, 143, 132, 143, 140, 133, 148, 143, 142, 134, 143, 138, 138, 137, 134, 130, 139, 136, 135, 136, 131, 140, 138, 142, 134, 136, 141, 132, 142, 138, 136, 143, 139, 132, 136, 137, 139, 132, 147, 137, 140, 138, 135, 137, 144, 135, 139, 138, 133, 137, 139, 141, 132, 138, 139, 144, 136, 133, 135, 134, 138, 144, 139, 135, 141, 137, 133, 127, 135, 136, 139, 135, 140, 138, 144, 145, 137, 142, 133, 144, 138, 129, 139, 131, 142, 139, 136, 139, 129, 142, 138, 148, 144, 141, 145, 146, 136, 148, 137, 142, 138, 140, 139, 136, 141, 133, 133, 141, 139, 141, 146, 142, 145, 139, 136, 144, 144, 135, 138, 137, 148, 142, 139, 138, 141, 132, 146, 142, 148, 129, 146, 141, 145, 135, 138, 128, 136, 141, 140, 133, 141, 137, 138, 140, 139, 133, 136, 143, 137, 141, 137, 149, 134, 137, 144, 143, 144, 139, 139, 131, 142, 134, 142, 135, 138, 144, 146, 137, 144, 140, 136, 144, 141, 130, 141, 133, 138, 141, 138, 135, 137, 126, 133, 132, 140, 137, 146, 143, 138, 136, 139, 143, 143, 141, 135, 140, 132, 138, 142, 146, 138, 138, 141, 139, 143, 141, 145, 141, 142, 139, 136, 142, 132, 142, 150, 132, 150, 130, 134, 146, 141, 134, 145, 139, 140, 140, 139, 141, 142, 139, 144, 146, 136, 136, 136, 135, 141, 138, 139, 142, 131, 139, 140, 141, 144, 138, 153, 139, 139, 139, 137, 143, 135, 138, 150, 142, 135, 139, 137, 146, 134, 134, 131, 139, 137, 149, 129, 139, 137, 142, 141, 143, 147, 141, 141, 133, 133, 142, 143, 147, 136, 135, 140, 143, 134, 137, 139, 131, 139, 138, 137, 131, 139, 146, 140, 132, 140, 150, 131, 139, 124, 139, 141, 137, 140, 144, 133, 141, 138, 148, 138, 143, 139, 136, 145, 138, 129, 153, 135, 143, 135, 136, 146, 137, 145, 143, 145, 141, 143, 139, 136, 138, 141, 136, 138, 144, 136, 139, 134, 139, 136, 137, 131, 141, 141, 136, 141, 142, 139, 142, 131, 147, 133, 137, 142, 141, 139, 140, 136, 132, 140, 133, 140, 136, 132, 137, 148, 126, 148, 147, 137, 134, 145, 134, 137, 135, 144, 133, 144, 139, 133, 136, 143, 140, 135, 141, 137, 138, 144, 131, 136, 142, 140, 138, 142, 133, 135, 142, 144, 142, 130, 133, 148, 142, 135, 142, 139, 141, 136, 137, 145, 136, 140, 138, 141, 140, 142, 140, 132, 142, 142, 148, 142, 143, 135, 137, 130, 142, 144, 136, 140, 140, 134, 143, 138, 132, 137, 136, 137, 143, 141, 140, 138, 145, 139, 136, 136, 137, 139, 141, 135, 131, 142, 136, 142, 138, 143, 141, 138, 143, 135, 126, 145, 132, 136, 135, 144, 138, 132, 140, 147, 140, 138, 132, 136, 140, 132, 145, 142, 136, 139, 139, 141, 138, 135, 134, 138, 131, 138, 142, 144, 141, 142, 147, 146, 147, 142, 136, 141, 138, 139, 142, 151, 144, 139, 141, 146, 143, 140, 143, 141, 146, 146, 135, 137, 130, 144, 143, 134, 138, 145, 132, 138, 141, 142, 142, 143, 139, 141, 135, 131, 144, 145, 140, 135, 144, 141, 143, 134, 141, 134, 134, 132, 144, 151, 135, 139, 135, 140, 141, 138, 139, 138, 134, 139, 136, 135, 143, 141, 144, 142, 137, 137, 150, 145, 137, 138, 138, 145, 142, 154, 145, 141, 138, 139, 141, 140, 142, 134, 138, 140, 143, 137, 134, 143, 133, 139, 144, 141, 136, 147, 145, 146, 130, 144, 137, 143, 145, 135, 142, 136, 132, 137, 131, 130, 141, 145, 137, 142, 141, 138, 145, 143, 138, 135, 138, 133, 150, 137, 139, 128, 135, 141, 144, 140, 145, 136, 137, 135, 139, 130, 135, 138, 143, 142, 136, 144, 138, 143, 134, 140, 139, 142, 135, 140, 135, 137, 148, 135, 137, 138, 133, 137, 141, 140, 140, 132, 138, 136, 148, 131, 146, 136, 143, 140, 139, 143, 139, 144, 137, 145, 136, 136, 140, 142, 137, 138, 143, 139, 129, 138, 136, 140, 136, 144, 139, 132, 141, 138, 140, 143, 144, 131, 144, 142, 135, 137, 145, 140, 137, 137, 148, 139, 139, 141, 141, 137, 129, 140, 137, 136, 132, 131, 137, 138, 141, 143, 136, 141, 138, 140, 144, 140, 143, 136, 134, 135, 146, 134, 146, 141, 139, 131, 132, 132, 137, 133, 148, 141, 141, 140, 136, 142, 136, 137, 144, 142, 140, 134, 140, 133, 132, 134, 142, 146, 144, 137, 143, 140, 137, 134, 141, 139, 139, 140, 137, 147, 140, 134, 139, 139, 141, 138, 146, 143, 140, 140, 137, 143, 133, 140, 138, 139, 137, 139, 137, 145, 132, 131, 138, 134, 141, 135, 135, 144, 137, 135, 131, 139, 141, 144, 128, 138, 137, 136, 142, 131, 139, 136, 135, 135, 138, 141, 144, 135, 135, 133, 128, 145, 133, 133, 138, 137, 137, 133, 140, 138, 143, 135, 143, 141, 138, 137, 145, 134, 139, 141, 136, 140, 138, 142, 123, 146, 143, 139, 139, 137, 136, 139, 148, 139, 132, 132, 141, 140, 136, 138, 132, 147, 136, 140, 135, 134, 133, 131, 140, 139, 133, 143, 140, 138, 139, 139, 134, 138, 143, 134, 135, 137, 137, 138, 138, 134, 133, 143, 141, 140, 140, 139, 137, 141, 138, 137, 136, 144, 138, 135, 143, 147, 138, 145, 138, 138, 137, 143, 139, 131, 145, 143, 147, 141, 137, 141, 134, 135, 144, 145, 139, 143, 128, 131, 137, 136, 141, 141, 140, 141, 147, 137, 135, 137, 143, 138, 138, 142, 135, 141, 150, 141, 142, 140, 149, 141, 136, 139, 140, 144, 140, 138, 136, 135, 140, 145, 142, 143, 139, 136, 134, 138, 134, 141, 142, 144, 147, 144, 143, 138, 144, 137, 144, 140, 141, 136, 143, 143, 146, 142, 147, 139, 131, 140, 139, 139, 134, 137, 145, 137, 138, 136, 142, 136, 142, 133, 137, 136, 135, 135, 133, 139, 141, 138, 138, 137, 142, 132, 135, 143, 143, 133, 143, 144, 139, 136, 140, 132, 134, 134, 148, 144, 138, 137, 140, 137, 142, 132, 137, 139, 139, 141, 146, 140, 137, 130, 138, 139, 132, 136, 142, 141, 139, 139, 138, 140, 137, 142, 135, 143, 130, 129, 138, 137, 138, 134, 142, 136, 141, 143, 138, 135, 136, 139, 139, 139, 135, 143, 143, 139, 132, 135, 140, 139, 131, 140, 132, 138, 140, 136, 143, 141, 144, 136, 137, 136, 138, 133, 132, 143, 147, 144, 140, 139, 132, 149, 131, 139, 140, 135, 140, 135, 136, 136, 139, 138, 144, 135, 142, 138, 143, 144, 130, 137, 134, 132, 142, 135, 142, 142, 137, 138, 132, 140, 141, 146, 139, 144, 139, 137, 139, 135, 134, 133, 139, 138, 135, 141, 142, 135, 144, 143, 144, 138, 136, 141, 142, 134, 138, 138, 135, 135, 140, 139, 137, 137, 137, 140, 140, 149, 134, 144, 139, 137, 129, 140, 136, 139, 146, 141, 137, 138, 137, 132, 140, 140, 136, 140, 141, 147, 139, 136, 137, 141, 129, 136, 135, 136, 139, 140, 136, 136, 136, 135, 141, 134, 137, 141, 125, 137, 151, 135, 135, 139, 142, 140, 137, 137, 138, 144, 138, 137, 142, 131, 142, 138, 135, 142, 129, 139, 135, 138, 134, 140, 141, 139, 132, 137, 133, 143, 140, 140, 135, 137, 140, 137, 134, 146, 143, 142, 134, 138, 143, 131, 132, 137, 146, 147, 138, 132, 136, 139, 134, 142, 141, 137, 138, 143, 130, 131, 134, 146, 138, 134, 140, 144, 145, 141, 134, 142, 141, 142, 138, 142, 139, 137, 137, 135, 138, 147, 137, 140, 141, 135, 135, 140, 137, 141, 136, 143, 136, 143, 141, 139, 142, 138, 144, 143, 144, 140, 139, 146, 143, 141, 132, 136, 141, 133, 137, 146, 161, 136, 139, 143, 136, 142, 136, 137, 141, 139, 141, 138, 137, 144, 141, 139, 140, 142, 140, 137, 138, 142, 141, 140, 137, 134, 137, 140, 137, 139, 138, 138, 136, 133, 140, 141, 133, 139, 136, 138, 135, 138, 140, 132, 142, 142, 133, 143, 143, 140, 145, 142, 139, 140, 136, 133, 144, 138, 141, 137, 137, 142, 134, 139, 132, 142, 147, 148, 142, 132, 135, 136, 133, 141, 140, 137, 136, 140, 139, 139, 143, 142, 142, 137, 136, 135, 139, 136, 142, 137, 140, 141, 137, 147, 138, 143, 147, 139, 140, 138, 136, 133, 136, 136, 141, 140, 136, 142, 151, 139, 133, 146, 134, 142, 140, 146, 139, 143, 127, 140, 143, 145, 133, 134, 139, 143, 131, 142, 132, 144, 137, 138, 142, 146, 136, 141, 140, 134, 138, 135, 135, 145, 140, 135, 138, 139, 136, 138, 145, 139, 137, 139, 140, 143, 142, 142, 135, 130, 143, 130, 135, 137, 144, 134, 137, 141, 141, 138, 138, 141, 132, 142, 143, 133, 135, 132, 137, 141, 138, 137, 139, 141, 137, 134, 141, 141, 129, 137, 138, 137, 133, 143, 137, 129, 137, 143, 138, 133, 143, 141, 141, 136, 138, 141, 140, 141, 137, 129, 141, 135, 142, 139, 141, 137, 135, 139, 138, 137, 138, 139, 136, 128, 128, 141, 123, 144, 143, 138, 134, 136, 138, 137, 122, 139, 139, 137, 137, 135, 139, 143, 132, 144, 134, 130, 145, 137, 137, 147, 138, 144, 138, 138, 142, 137, 139, 144, 145, 135, 139, 140, 151, 137, 140, 136, 140, 141, 138, 138, 144, 138, 139, 133, 141, 140, 138, 139, 139, 141, 139, 145, 139, 139, 141, 145, 142, 139, 134, 144, 143, 134, 136, 137, 140, 140, 140, 140, 136, 138, 133, 143, 143, 138, 144, 142, 141, 140, 139, 132, 140, 136, 135, 138, 142, 139, 142, 138, 140, 132, 142, 141, 135, 137, 141, 149, 139, 142, 139, 133, 135, 138, 139, 135, 147, 140, 134, 148, 138, 144, 138, 132, 138, 138, 135, 143, 136, 134, 135, 138, 134, 139, 143, 141, 134, 129, 150, 138, 136, 141, 141, 147, 140, 143, 143, 130, 137, 133, 145, 148, 134, 131, 137, 141, 144, 144, 135, 136, 138, 135, 141, 147, 141, 138, 141, 144, 145, 142, 127, 134, 141, 139, 138, 146, 133, 137, 139, 138, 142, 145, 145, 133, 135, 142, 130, 139, 148, 147, 143, 135, 131, 131, 143, 144, 130, 141, 136, 142, 141, 133, 141, 141, 145, 143, 138, 132, 143, 143, 135, 142, 134, 141, 140, 139, 134, 138, 145, 137, 141, 130, 134, 152, 136, 138, 144, 137, 143, 141, 136, 146, 136, 135, 137, 141, 148, 141, 140, 137, 134, 144, 138, 140, 142, 136, 125, 138, 137, 139, 138, 142, 147, 137, 139, 131, 138, 147, 136, 142, 140, 139, 138, 141, 142, 138, 151, 134, 134, 139, 146, 141, 136, 128, 143, 131, 139, 136, 128, 137, 138, 141, 144, 138, 141, 144, 145, 132, 138, 139, 140, 145, 143, 135, 129, 145, 145, 135, 138, 139, 142, 138, 137, 137, 137, 131, 142, 142, 142, 138, 141, 138, 141, 132, 140, 137, 143, 148, 146, 139, 134, 133, 142, 129, 139, 141, 141, 137, 144, 144, 137, 132, 137, 139, 139, 142, 132, 147, 133, 132, 141, 141, 145, 139, 136, 137, 137, 148, 138, 130, 146, 140, 136, 130, 142, 147, 138, 141, 130, 133, 141, 140, 140, 137, 129, 140, 133, 131, 138, 138, 129, 138, 141, 143, 138, 140, 144, 137, 141, 137, 135, 144, 148, 144, 139, 143, 135, 134, 137, 131, 147, 138, 144, 130, 138, 131, 140, 136, 133, 144, 134, 128, 136, 139, 144, 128, 145, 140, 126, 146, 145, 149, 142, 129, 139, 139, 135, 143, 142, 130, 135, 142, 127, 147, 130, 124, 142, 138, 132, 134, 140, 140, 134, 139, 141, 139, 128, 144, 140, 146, 132, 142, 128, 135, 126, 132, 140, 142, 138, 140, 143, 139, 145, 148, 142, 144, 135, 140, 140, 141, 132, 139, 136, 132, 143, 132, 140, 137, 146, 138, 148, 137, 138, 130, 138, 141, 138, 136, 141, 141, 134, 137, 145, 148, 139, 143, 140, 138, 133, 138, 135, 140, 144, 135, 144, 138, 138, 132, 135, 142, 140, 141, 142, 138, 144, 139, 129, 137, 139, 144, 145, 142, 135, 132, 139, 140, 138, 147, 146, 135, 140, 138, 138, 136, 143, 141, 143, 142, 132, 147, 138, 131, 140, 140, 133, 142, 135, 142, 138, 143, 136, 144, 139, 144, 133, 139, 145, 133, 140, 145, 139, 139, 141, 143, 131, 145, 146, 143, 138, 136, 136, 139, 139, 140, 138, 141, 136, 136, 140, 145, 137, 142, 139, 149, 140, 136, 140, 138, 139, 137, 147, 140, 136, 139, 145, 144, 134, 136, 142, 135, 137, 136, 131, 140, 141, 135, 149, 135, 137, 139, 130, 144, 134, 134, 140, 143, 131, 133, 135, 138, 142, 142, 142, 143, 139, 133, 146, 136, 138, 139, 136, 131, 142, 137, 137, 138, 142, 136, 141, 139, 129, 139, 134, 141, 138, 128, 138, 139, 149, 133, 146, 140, 137, 148, 133, 132, 137, 147, 133, 139, 132, 141, 132, 135, 137, 130, 149, 141, 133, 130, 144, 140, 141, 130, 134, 142, 133, 143, 137, 144, 129, 140, 142, 147, 135, 139, 156, 136, 133, 139, 139, 140, 130, 134, 134, 136, 144, 148, 143, 139, 139, 129, 143, 148, 132, 138, 136, 137, 135, 140, 140, 138, 140, 135, 142, 130, 143, 135, 144, 143, 142, 146, 142, 134, 147, 142, 145, 144, 130, 141, 141, 136, 141, 129, 143, 136, 145, 142, 139, 139, 132, 138, 137, 139, 131, 131, 139, 129, 157, 146, 133, 150, 137, 137, 135, 145, 139, 137, 139, 142, 135, 141, 139, 150, 135, 140, 148, 138, 143, 153, 145, 144, 150, 132, 139, 132, 145, 136, 141, 136, 143, 137, 142, 142, 139, 137, 130, 139, 138, 135, 143, 137, 135, 132, 133, 134, 140, 136, 138, 146, 135, 142, 129, 121, 147, 136, 135, 147, 139, 130, 136, 153, 129, 147, 144, 136, 139, 142, 140, 139, 143, 135, 141, 134, 142, 138, 144, 146, 145, 135, 132, 141, 138, 130, 136, 140, 145, 136, 144, 141, 138, 131, 136, 138, 139, 139, 127, 136, 136, 142, 138, 135, 139, 132, 135, 150, 140, 144, 126, 137, 134, 137, 138, 132, 141, 144, 124, 132, 140, 152, 137, 133, 138, 143, 135, 137, 133, 151, 138, 143, 146, 136, 145, 150, 138, 141, 135, 141, 137, 130, 137, 133, 145, 137, 143, 140, 133, 149, 134, 141, 138, 136, 146, 138, 141, 129, 134, 140, 131, 131, 135, 147, 152, 131, 139, 153, 136, 153, 142, 146, 126, 141, 141, 127, 135, 144, 144, 140, 123, 156, 127, 131, 128, 140, 136, 143, 141, 133, 133, 133, 140, 140, 150, 134, 134, 142, 132, 143, 142, 137, 143, 148, 142, 134, 131, 140, 127, 129, 138, 137, 139, 138, 144, 146, 139, 140, 138, 128, 147, 142, 134, 135, 141, 144, 143, 132, 143, 136, 132, 127, 140, 141, 150, 143, 140, 147, 142, 131, 127, 134, 138, 141, 128, 135, 120, 139, 141, 136, 144, 134, 136, 142, 145, 140, 129, 122, 141, 141, 136, 149, 137, 131, 137, 157, 140, 151, 144, 136, 159, 133, 147, 138, 142, 139, 141, 142, 139, 147, 135, 146, 144, 134, 144, 132, 141, 143, 140, 143, 146, 143, 137, 146, 140, 137, 147, 147, 134, 142, 137, 139, 136, 145, 140, 151, 142, 139, 154, 142, 136, 138, 125, 143, 133, 144, 128, 138, 146, 146, 141, 142, 141, 144, 136, 132, 137, 140, 139, 143, 143, 134, 146, 143, 146, 132, 143, 137, 127, 152, 139, 140, 137, 130, 134, 139, 150, 136, 140, 143, 136, 133, 145, 129, 130, 129, 151, 148, 132, 126, 130, 140, 138, 137, 138, 135, 145, 129, 139, 140, 147, 129, 133, 140, 131, 138, 140, 142, 138, 141, 136, 140, 137, 149, 129, 143, 130, 132, 125, 136, 137, 137, 147, 139, 143, 137, 144, 137, 136, 136, 144, 136, 140, 143, 133, 141, 145, 135, 135, 143, 142, 136, 145, 142, 135, 138, 145, 144, 141, 140, 142, 131, 136, 137, 146, 134, 136, 156, 140, 143, 144, 139, 144, 135, 146, 133, 141, 138, 141, 138, 140, 142, 142, 143, 141, 137, 138, 134, 138, 136, 134, 134, 134, 140, 141, 144, 137, 138, 127, 129, 141, 141, 139, 135, 141, 139, 134, 137, 147, 139, 128, 141, 136, 134, 146, 136, 138, 135, 145, 133, 143, 136, 136, 140, 138, 142, 138, 137, 139, 148, 133, 142, 129, 134, 125, 132, 133, 143, 138, 139, 130, 142, 131, 129, 139, 137, 135, 142, 132, 140, 139, 140, 134, 133, 138, 137, 147, 133, 137, 149, 140, 140, 145, 135, 135, 136, 141, 145, 141, 140, 136, 143, 130, 141, 142, 138, 137, 142, 143, 138, 130, 138, 147, 142, 140, 133, 144, 147, 143, 137, 144, 139, 129, 134, 145, 134, 142, 134, 143, 137, 137, 133, 141, 136, 129, 145, 135, 146, 144, 141, 149, 140, 150, 133, 139, 142, 137, 135, 141, 131, 141, 149, 146, 142, 131, 135, 142, 136, 139, 139, 134, 139, 139, 143, 138, 135, 137, 140, 138, 138, 136, 140, 134, 137, 138, 140, 135, 138, 138, 143, 133, 143, 136, 144, 148, 138, 140, 143, 142, 136, 147, 129, 135, 148, 131, 143, 143, 136, 139, 132, 137, 144, 142, 136, 137, 144, 138, 137, 140, 125, 138, 138, 140, 140, 139, 134, 145, 138, 140, 138, 142, 139, 133, 143, 138, 140, 137, 139, 144, 137, 132, 135, 135, 136, 136, 141, 133, 138, 140, 131, 141, 139, 138, 132, 130, 138, 138, 138, 140, 135, 136, 145, 136, 135, 148, 149, 131, 137, 140, 139, 138, 138, 140, 132, 133, 135, 145, 137, 140, 138, 133, 147, 138, 144, 141, 142, 148, 138, 138, 141, 135, 139, 138, 137, 132, 141, 138, 142, 139, 138, 141, 136, 131, 137, 137, 127, 137, 138, 146, 138, 139, 139, 137, 140, 139, 143, 142, 134, 134, 140, 142, 143, 133, 138, 140, 134, 139, 146, 143, 138, 132, 144, 137, 135, 133, 136, 142, 139, 137, 139, 143, 138, 141, 137, 141, 128, 138, 136, 131, 139, 137, 144, 133, 130, 145, 138, 134, 139, 137, 136, 147, 134, 136, 131, 138, 145, 144, 137, 136, 132, 137, 140, 130, 135, 147, 135, 137, 139, 138, 141, 143, 141, 135, 132, 141, 135, 140, 143, 136, 140, 139, 132, 143, 143, 136, 138, 151, 141, 138, 125, 148, 136, 143, 139, 136, 141, 142, 140, 140, 145, 143, 145, 140, 140, 132, 139, 140, 142, 137, 137, 143, 134, 140, 138, 142, 140, 133, 129, 143, 147, 131, 134, 140, 136, 131, 141, 137, 133, 133, 145, 135, 134, 136, 141, 134, 142, 141, 143, 146, 145, 145, 140, 145, 147, 137, 140, 130, 143, 129, 135, 136, 137, 135, 135, 138, 134, 136, 138, 138, 132, 138, 138, 137, 131, 142, 136, 134, 133, 142, 131, 139, 129, 143, 141, 126, 145, 142, 130, 131, 142, 147, 134, 133, 135, 133, 143, 142, 138, 157, 145, 133, 141, 137, 131, 133, 131, 143, 137, 141, 136, 133, 143, 140, 134, 142, 140, 136, 145, 145, 136, 130, 142, 134, 143, 139, 142, 142, 140, 137, 142, 147, 135, 139, 139, 137, 137, 131, 137, 138, 133, 139, 135, 135, 137, 137, 142, 132, 147, 142, 140, 138, 135, 147, 143, 136, 139, 132, 135, 139, 136, 139, 136, 137, 139, 136, 134, 140, 131, 137, 141, 145, 132, 137, 136, 136, 142, 133, 135, 141, 138, 144, 145, 139, 140, 141, 133, 140, 141, 137, 137, 131, 134, 138, 141, 142, 136, 133, 138, 139, 137, 134, 139, 137, 137, 142, 143, 151, 132, 146, 135, 148, 135, 139, 135, 136, 152, 145, 132, 141, 134, 141, 143, 143, 147, 133, 138, 145, 147, 140, 135, 137, 131, 144, 135, 128, 150, 137, 141, 135, 139, 138, 131, 141, 133, 137, 136, 140, 142, 137, 140, 144, 141, 144, 138, 132, 147, 136, 144, 142, 137, 141, 144, 133, 136, 144, 141, 145, 134, 138, 136, 141, 140, 142, 135, 141, 128, 135, 141, 138, 139, 129, 139, 142, 138, 139, 134, 137, 139, 146, 136, 142, 144, 152, 135, 144, 144, 142, 131, 146, 130, 135, 135, 143, 138, 134, 132, 139, 133, 146, 134, 136, 142, 150, 134, 140, 141, 136, 137, 137, 136, 145, 138, 140, 143, 146, 135, 134, 139, 143, 135, 139, 145, 137, 138, 135, 138, 133, 144, 137, 146, 143, 140, 140, 131, 136, 128, 134, 137, 138, 141, 141, 145, 137, 133, 142, 144, 145, 130, 142, 135, 152, 141, 136, 141, 138, 143, 139, 132, 139, 143, 137, 130, 146, 144, 140, 138, 145, 137, 152, 156, 135, 138, 140, 144, 136, 147, 141, 138, 142, 149, 142, 141, 141, 146, 136, 133, 135, 141, 138, 142, 141, 144, 142, 138, 143, 141, 141, 140, 141, 138, 142, 135, 136, 130, 128, 139, 147, 142, 144, 140, 133, 133, 136, 147, 142, 146, 139, 140, 140, 140, 141, 134, 139, 132, 136, 134, 135, 135, 146, 138, 150, 139, 139, 145, 137, 143, 145, 134, 142, 138, 145, 139, 142, 137, 140, 143, 136, 134, 138, 141, 136, 135, 140, 147, 135, 131, 132, 135, 137, 141, 137, 138, 132, 138, 135, 137, 140, 131, 145, 131, 139, 137, 133, 137, 132, 139, 141, 148, 143, 149, 138, 133, 138, 138, 136, 140, 139, 136, 142, 140, 137, 147, 143, 132, 138, 142, 143, 146, 141, 137, 147, 132, 137, 136, 136, 131, 144, 135, 132, 140, 136, 148, 148, 142, 141, 139, 138, 141, 139, 136, 137, 129, 137, 138, 142, 132, 134, 143, 138, 132, 134, 138, 133, 145, 135, 131, 140, 133, 144, 138, 134, 134, 131, 145, 162, 144, 142, 140, 140, 138, 143, 132, 140, 140, 139, 134, 138, 139, 141, 135, 128, 130, 136, 132, 134, 134, 138, 140, 135, 135, 154, 139, 144, 137, 134, 141, 139, 145, 132, 139, 139, 133, 147, 137, 137, 142, 141, 143, 132, 131, 142, 135, 142, 137, 137, 148, 138, 147, 137, 140, 142, 141, 140, 137, 134, 136, 142, 134, 139, 144, 135, 136, 143, 138, 135, 139, 142, 137, 135, 146, 140, 140, 141, 140, 137, 130, 147, 142, 139, 133, 138, 138, 132, 139, 143, 140, 135, 136, 135, 141, 138, 142, 136, 133, 137, 146, 138, 139, 139, 140, 147, 132, 142, 139, 142, 135, 138, 138, 140, 136, 137, 130, 140, 141, 133, 141, 137, 142, 141, 133, 139, 135, 145, 140, 137, 136, 138, 129, 146, 138, 139, 136, 136, 137, 141, 142, 135, 139, 141, 141, 133, 133, 135, 133, 142, 136, 138, 139, 144, 137, 144, 137, 139, 139, 138, 138, 135, 134, 136, 138, 130, 143, 139, 141, 142, 157, 133, 138, 134, 138, 141, 144, 135, 141, 140, 138, 134, 143, 130, 139, 138, 143, 139, 135, 138, 138, 140, 139, 130, 137, 134, 140, 137, 139, 140, 140, 142, 140, 141, 141, 145, 138, 141, 140, 138, 140, 142, 138, 147, 140, 140, 135, 140, 135, 144, 138, 140, 141, 142, 141, 138, 142, 137, 128, 132, 145, 144, 147, 141, 143, 141, 134, 143, 138, 132, 137, 138, 141, 140, 147, 137, 141, 139, 135, 138, 134, 141, 134, 137, 143, 140, 141, 143, 135, 142, 141, 140, 143, 132, 141, 145, 141, 144, 138, 137, 133, 138, 139, 140, 142, 141, 138, 138, 142, 144, 140, 138, 137, 137, 138, 137, 142, 139, 135, 142, 141, 143, 136, 153, 145, 133, 131, 137, 140, 139, 154, 142, 134, 133, 138, 139, 137, 140, 147, 137, 140, 147, 139, 139, 134, 139, 140, 138, 142, 135, 142, 135, 136, 138, 141, 137, 139, 135, 137, 136, 144, 144, 151, 136, 135, 135, 142, 141, 142, 139, 138, 134, 145, 139, 141, 138, 138, 132, 134, 140, 135, 141, 135, 135, 145, 136, 142, 133, 139, 139, 138, 139, 137, 145, 133, 133, 149, 135, 144, 131, 138, 138, 142, 137, 138, 138, 138, 142, 141, 140, 143, 133, 141, 142, 136, 134, 135, 144, 143, 146, 138, 134, 141, 145, 144, 138, 140, 136, 141, 143, 136, 142, 143, 132, 141, 141, 140, 144, 145, 140, 142, 141, 136, 139, 137, 138, 136, 141, 137, 144, 136, 139, 138, 139, 135, 139, 149, 142, 136, 144, 141, 136, 140, 143, 130, 135, 142, 136, 139, 136, 134, 140, 143, 140, 132, 140, 139, 136, 136, 141, 138, 142, 146, 137, 134, 135, 138, 136, 132, 141, 137, 138, 141, 136, 136, 139, 142, 133, 138, 143, 136, 144, 140, 134, 135, 138, 137, 140, 135, 145, 143, 139, 145, 143, 132, 139, 140, 131, 139, 139, 136, 138, 140, 134, 139, 138, 138, 131, 137, 137, 141, 138, 136, 138, 141, 140, 135, 142, 146, 138, 140, 130, 140, 144, 137, 137, 137, 133, 136, 139, 136, 143, 141, 140, 139, 136, 139, 140, 134, 141, 141, 138, 142, 135, 140, 144, 142, 138, 130, 138, 132, 138, 141, 139, 141, 144, 138, 139, 138, 141, 140, 139, 133, 140, 145, 140, 141, 142, 141, 146, 144, 136, 131, 136, 134, 139, 138, 136, 139, 147, 135, 142, 133, 141, 149, 142, 133, 136, 143, 145, 145, 138, 142, 136, 143, 121, 142, 140, 136, 134, 133, 147, 148, 136, 133, 152, 148, 139, 136, 142, 132, 142, 125, 134, 138, 137, 130, 141, 156, 143, 147, 142, 145, 137, 135, 148, 135, 134, 145, 141, 138, 143, 142, 143, 130, 148, 133, 138, 138, 130, 145, 149, 137, 137, 143, 137, 137, 141, 145, 141, 139, 138, 132, 138, 136, 142, 135, 138, 136, 145, 137, 135, 136, 136, 136, 131, 141, 132, 145, 137, 145, 138, 139, 123, 128, 151, 144, 147, 135, 137, 134, 137, 140, 139, 139, 134, 143, 148, 130, 145, 144, 138, 141, 138, 153, 141, 128, 141, 128, 139, 143, 138, 143, 126, 140, 139, 137, 139, 135, 141, 137, 138, 136, 141, 143, 142, 139, 140, 142, 139, 134, 134, 130, 140, 129, 127, 131, 143, 141, 144, 138, 136, 135, 141, 139, 134, 138, 130, 136, 138, 147, 134, 136, 149, 135, 136, 143, 140, 128, 144, 137, 135, 136, 147, 131, 141, 139, 132, 139, 141, 140, 134, 139, 139, 146, 133, 148, 137, 146, 137, 143, 137, 135, 138, 150, 136, 151, 138, 144, 138, 130, 143, 136, 146, 138, 146, 132, 139, 149, 139, 140, 138, 134, 142, 142, 136, 127, 140, 129, 128, 139, 134, 129, 139, 133, 143, 131, 134, 138, 134, 137, 135, 145, 143, 134, 133, 137, 149, 137, 125, 136, 134, 139, 129, 142, 137, 134, 142, 131, 141, 139, 133, 143, 132, 136, 134, 133, 137, 139, 156, 133, 139, 137, 142, 136, 140, 135, 135, 146, 145, 139, 146, 141, 134, 133, 139, 144, 147, 135, 136, 141, 140, 126, 134, 134, 140, 140, 138, 144, 145, 140, 133, 144, 128, 148, 136, 146, 141, 140, 135, 141, 137, 136, 151, 136, 143, 141, 129, 142, 143, 125, 130, 143, 129, 143, 139, 136, 141, 150, 129, 138, 141, 136, 137, 142, 145, 146, 138, 137, 137, 137, 142, 137, 139, 146, 147, 130, 132, 137, 138, 140, 134, 132, 133, 147, 147, 132, 142, 140, 141, 135, 135, 146, 127, 137, 138, 135, 132, 136, 140, 141, 133, 146, 137, 133, 136, 134, 121, 134, 139, 134, 146, 141, 138, 146, 138, 136, 134, 136, 142, 133, 136, 132, 135, 134, 145, 142, 135, 142, 136, 148, 143, 142, 136, 138, 146, 143, 140, 149, 143, 142, 140, 135, 135, 136, 137, 137, 144, 135, 143, 134, 135, 136, 141, 137, 135, 139, 132, 137, 136, 141, 138, 148, 135, 133, 135, 133, 149, 139, 134, 136, 136, 132, 142, 136, 133, 136, 143, 143, 142, 147, 133, 149, 141, 142, 129, 143, 136, 139, 131, 139, 138, 142, 138, 150, 147, 137, 141, 139, 146, 140, 140, 132, 144, 140, 136, 139, 130, 137, 134, 137, 143, 128, 140, 134, 135, 131, 131, 126, 135, 137, 139, 129, 143, 141, 150, 137, 134, 147, 127, 127, 133, 133, 143, 141, 128, 139, 148, 145, 136, 144, 145, 140, 146, 138, 134, 137, 139, 131, 138, 130, 139, 140, 136, 139, 131, 142, 140, 135, 144, 144, 140, 144, 140, 138, 141, 135, 144, 139, 134, 143, 142, 136, 146, 141, 138, 145, 131, 137, 136, 139, 139, 141, 144, 143, 133, 137, 134, 144, 133, 137, 140, 133, 128, 147, 144, 151, 138, 141, 140, 126, 144, 128, 129, 142, 138, 147, 144, 134, 136, 138, 144, 145, 132, 145, 144, 139, 145, 137, 144, 140, 145, 130, 142, 141, 143, 148, 146, 154, 137, 132, 141, 141, 136, 144, 135, 129, 149, 133, 129, 140, 147, 136, 130, 144, 135, 135, 137, 141, 145, 136, 138, 138, 134, 136, 130, 147, 136, 131, 134, 143, 132, 141, 143, 137, 142, 139, 138, 138, 141, 143, 141, 131, 131, 133, 143, 146, 142, 144, 138, 138, 133, 140, 140, 130, 141, 131, 139, 148, 140, 138, 146, 137, 127, 130, 131, 140, 143, 135, 144, 131, 136, 150, 138, 139, 125, 141, 134, 137, 140, 146, 143, 150, 136, 134, 132, 150, 140, 138, 139, 135, 149, 136, 128, 139, 136, 138, 150, 143, 144, 137, 161, 136, 140, 138, 151, 145, 143, 136, 139, 139, 143, 141, 126, 143, 138, 140, 145, 150, 140, 139, 141, 139, 139, 145, 141, 129, 131, 135, 142, 132, 147, 139, 137, 137, 133, 138, 133, 139, 140, 145, 147, 147, 137, 137, 135, 147, 131, 133, 136, 141, 134, 144, 133, 146, 132, 142, 141, 131, 137, 137, 139, 139, 140, 143, 142, 139, 137, 135, 139, 147, 147, 138, 137, 139, 140, 122, 141, 132, 132, 147, 140, 144, 142, 136, 134, 134, 144, 141, 140, 140, 139, 140, 135, 141, 139, 140, 141, 140, 145, 136, 142, 138, 136, 140, 135, 140, 138, 137, 129, 135, 133, 135, 134, 140, 140, 142, 138, 137, 139, 135, 140, 135, 145, 146, 136, 141, 133, 135, 141, 134, 139, 131, 132, 128, 130, 147, 144, 143, 137, 139, 123, 150, 139, 139, 137, 137, 137, 139, 142, 131, 135, 144, 139, 141, 142, 144, 142, 142, 147, 147, 139, 132, 136, 147, 132, 138, 132, 140, 134, 134, 130, 140, 144, 139, 136, 132, 139, 142, 145, 140, 132, 132, 140, 147, 135, 140, 143, 134, 145, 142, 139, 129, 140, 137, 135, 141, 142, 137, 139, 135, 142, 142, 138, 136, 132, 139, 136, 142, 148, 129, 136, 140, 148, 146, 147, 144, 135, 135, 141, 142, 141, 140, 136, 140, 132, 144, 146, 141, 130, 137, 141, 138, 145, 144, 135, 139, 148, 136, 121, 133, 144, 139, 138, 133, 146, 143, 146, 134, 140, 131, 142, 147, 143, 146, 139, 139, 133, 135, 136, 132, 148, 145, 134, 146, 134, 137, 137, 140, 133, 150, 144, 146, 140, 140, 135, 131, 139, 126, 139, 134, 141, 139, 135, 139, 152, 133, 136, 133, 139, 139, 148, 139, 137, 137, 142, 146, 136, 137, 138, 138, 139, 137, 143, 141, 130, 143, 132, 134, 143, 146, 136, 138, 134, 151, 137, 138, 129, 136, 138, 134, 142, 142, 149, 129, 144, 132, 143, 138, 129, 143, 140, 140, 139, 136, 136, 134, 141, 146, 134, 138, 145, 138, 134, 137, 142, 135, 130, 144, 136, 145, 134, 138, 136, 147, 141, 133, 148, 135, 143, 151, 140, 142, 134, 143, 145, 139, 140, 137, 137, 135, 141, 132, 138, 144, 137, 141, 133, 136, 146, 139, 141, 140, 137, 130, 140, 145, 142, 142, 136, 138, 136, 142, 134, 144, 134, 143, 135, 141, 138, 133, 139, 138, 142, 152, 137, 135, 138, 137, 142, 139, 145, 134, 141, 144, 129, 139, 138, 136, 141, 139, 134, 146, 140, 143, 129, 140, 149, 134, 139, 137, 136, 138, 136, 143, 135, 141, 139, 138, 138, 141, 143, 143, 131, 143, 147, 149, 135, 140, 133, 138, 146, 149, 143, 142, 133, 141, 148, 142, 132, 136, 141, 138, 130, 139, 134, 138, 142, 136, 141, 141, 136, 138, 142, 139, 139, 138, 135, 137, 137, 136, 140, 141, 130, 141, 141, 143, 135, 139, 138, 140, 136, 142, 134, 141, 142, 143, 139, 136, 140, 142, 137, 140, 134, 137, 138, 141, 146, 136, 144, 142, 136, 139, 139, 133, 148, 141, 142, 138, 141, 141, 137, 137, 140, 138, 152, 132, 132, 133, 136, 148, 136, 147, 140, 135, 139, 135, 135, 144, 141, 139, 132, 135, 144, 140, 141, 142, 138, 137, 138, 139, 141, 134, 131, 143, 138, 143, 131, 139, 143, 138, 137, 139, 137, 132, 137, 139, 137, 142, 137, 145, 137, 141, 139, 137, 133, 139, 134, 140, 139, 144, 135, 136, 139, 136, 134, 132, 140, 132, 142, 135, 138, 138, 141, 127, 134, 141, 138, 140, 139, 133, 139, 140, 137, 154, 141, 143, 135, 128, 135, 136, 144, 140, 138, 141, 141, 136, 144, 139, 137, 139, 140, 140, 138, 138, 138, 131, 140, 141, 146, 141, 143, 141, 138, 140, 133, 129, 136, 140, 145, 133, 130, 139, 135, 142, 133, 143, 146, 139, 140, 135, 136, 133, 142, 134, 145, 133, 139, 140, 135, 140, 138, 144, 134, 140, 139, 140, 139, 132, 140, 144, 138, 134, 136, 145, 136, 135, 139, 147, 136, 138, 142, 143, 141, 138, 143, 138, 137, 141, 138, 145, 141, 140, 142, 142, 139, 129, 136, 143, 132, 145, 137, 128, 139, 143, 131, 139, 139, 137, 138, 140, 139, 136, 138, 144, 133, 139, 142, 152, 136, 138, 138, 137, 139, 144, 135, 145, 144, 141, 146, 136, 136, 140, 143, 138, 136, 137, 133, 137, 133, 138, 140, 132, 145, 140, 140, 130, 132, 135, 147, 131, 139, 135, 141, 135, 141, 140, 136, 140, 140, 136, 144, 133, 132, 131, 142, 146, 136, 141, 134, 139, 139, 141, 140, 139, 132, 132, 136, 126, 141, 134, 130, 143, 138, 152, 142, 140, 135, 135, 135, 134, 138, 139, 138, 136, 146, 134, 139, 137, 138, 140, 135, 133, 133, 137, 138, 140, 142, 138, 139, 146, 136, 140, 146, 143, 142, 138, 140, 136, 138, 138, 132, 139, 145, 141, 143, 134, 133, 145, 148, 142, 135, 141, 137, 138, 139, 136, 138, 132, 141, 137, 138, 133, 138, 149, 137, 152, 144, 132, 146, 146, 128, 134, 131, 134, 137, 149, 135, 138, 140, 139, 143, 148, 130, 142, 146, 148, 129, 134, 145, 143, 139, 143, 138, 138, 125, 138, 128, 135, 146, 135, 142, 134, 145, 136, 144, 144, 129, 138, 139, 145, 132, 140, 135, 142, 146, 140, 145, 145, 149, 135, 127, 144, 137, 155, 147, 134, 137, 149, 143, 139, 135, 138, 135, 141, 137, 151, 143, 145, 129, 141, 137, 133, 133, 129, 128, 137, 134, 144, 148, 144, 137, 135, 137, 144, 140, 151, 134, 141, 141, 138, 143, 138, 147, 134, 138, 126, 141, 145, 141, 132, 132, 143, 139, 133, 138, 145, 141, 141, 143, 135, 137, 133, 126, 141, 133, 139, 155, 146, 131, 142, 150, 136, 146, 137, 131, 138, 135, 139, 136, 126, 133, 135, 142, 146, 130, 136, 130, 145, 150, 143, 129, 130, 137, 143, 154, 143, 144, 140, 138, 136, 141, 149, 140, 140, 135, 138, 134, 138, 141, 133, 138, 149, 140, 136, 123, 142, 139, 144, 137, 139, 141, 144, 140, 147, 143, 143, 141, 140, 141, 133, 140, 150, 141, 140, 143, 139, 134, 128, 148, 134, 146, 139, 146, 138, 148, 129, 144, 139, 139, 145, 130, 139, 130, 133, 144, 138, 141, 145, 141, 141, 151, 145, 135, 145, 140, 147, 142, 150, 143, 137, 142, 142, 135, 139, 140, 134, 139, 133, 137, 137, 125, 136, 146, 132, 140, 140, 136, 143, 146, 143, 128, 152, 137, 142, 125, 143, 137, 120, 141, 138, 134, 135, 137, 136, 136, 151, 145, 141, 140, 145, 141, 146, 136, 142, 147, 138, 145, 126, 130, 132, 139, 138, 141, 139, 150, 129, 139, 138, 136, 142, 134, 141, 143, 145, 136, 136, 133, 127, 145, 139, 140, 138, 146, 145, 129, 134, 138, 144, 137, 132, 138, 137, 141, 136, 135, 137, 136, 141, 138, 125, 138, 129, 132, 130, 150, 141, 131, 129, 126, 132, 140, 145, 145, 136, 138, 140, 141, 141, 143, 147, 139, 138, 130, 142, 136, 139, 124, 144, 139, 150, 140, 145, 142, 141, 128, 140, 128, 138, 149, 137, 151, 141, 140, 138, 144, 141, 149, 140, 141, 135, 145, 164, 141, 78, 146, 150, 138, 129, 149, 133, 152, 141, 137, 144, 145, 132, 143, 137, 141, 134, 142, 141, 127, 147, 128, 125, 139, 150, 150, 145, 136, 132, 138, 149, 142, 127, 148, 134, 138, 140, 140, 141, 144, 131, 138, 141, 144, 127, 148, 132, 170, 142, 126, 129, 108, 146, 134, 133, 143, 134, 142, 139, 139, 139, 137, 139, 140, 135, 138, 138, 125, 135, 132, 134, 126, 137, 141, 146, 136, 134, 135, 138, 140, 130, 131, 138, 141, 141, 139, 136, 129, 147, 133, 131, 137, 132, 136, 143, 138, 157, 135, 146, 145, 140, 152, 134, 134, 141, 133, 134, 148, 143, 134, 141, 147, 146, 146, 131, 147, 140, 144, 143, 134, 138, 147, 144, 131, 131, 137, 153, 138, 139, 140, 142, 146, 141, 136, 143, 134, 137, 143, 134, 138, 149, 141, 141, 146, 141, 138, 136, 141, 145, 149, 128, 134, 132, 138, 147, 134, 142, 139, 134, 140, 146, 133, 140, 148, 136, 131, 141, 130, 135, 141, 135, 142, 137, 135, 151, 138, 133, 146, 141, 139, 130, 140, 130, 136, 130, 146, 142, 152, 142, 139, 137, 127, 152, 133, 137, 133, 138, 136, 140, 131, 122, 134, 134, 138, 134, 131, 139, 140, 142, 147, 128, 127, 139, 142, 132, 152, 144, 141, 145, 137, 153, 144, 132, 139, 148, 134, 145, 148, 145, 142, 140, 137, 128, 146, 135, 134, 140, 143, 126, 144, 139, 145, 136, 134, 153, 137, 146, 135, 143, 149, 140, 130, 133, 135, 141, 144, 131, 142, 151, 146, 136, 132, 146, 127, 135, 140, 138, 146, 134, 139, 135, 144, 140, 136, 142, 140, 142, 141, 139, 148, 134, 137, 139, 142, 132, 145, 142, 142, 124, 139, 142, 142, 151, 135, 148, 134, 140, 126, 143, 135, 136, 136, 136, 137, 134, 142, 129, 134, 137, 137, 134, 135, 144, 159, 135, 145, 143, 142, 134, 142, 139, 139, 136, 134, 130, 127, 138, 146, 138, 142, 149, 136, 129, 140, 136, 135, 142, 138, 142, 141, 128, 150, 131, 150, 142, 135, 150, 143, 141, 124, 140, 145, 134, 140, 133, 142, 141, 145, 125, 135, 141, 139, 137, 140, 134, 151, 129, 136, 142, 144, 142, 143, 142, 133, 148, 135, 141, 125, 134, 130, 131, 143, 151, 140, 143, 147, 143, 143, 140, 138, 143, 145, 141, 146, 150, 129, 129, 132, 148, 130, 131, 136, 139, 144, 136, 140, 145, 133, 145, 136, 138, 139, 141, 137, 144, 142, 146, 130, 141, 140, 142, 142, 134, 134, 132, 143, 138, 138, 145, 135, 132, 138, 138, 149, 136, 131, 135, 155, 141, 129, 141, 127, 123, 143, 145, 121, 143, 143, 138, 139, 136, 128, 133, 134, 138, 143, 138, 141, 139, 132, 136, 138, 133, 141, 147, 143, 138, 143, 144, 135, 134, 138, 131, 138, 140, 138, 149, 139, 128, 135, 141, 137, 140, 143, 139, 151, 132, 136, 140, 134, 130, 129, 134, 146, 138, 141, 137, 144, 127, 126, 127, 145, 136, 139, 133, 144, 135, 137, 139, 138, 140, 148, 142, 141, 129, 151, 140, 135, 136, 150, 143, 134, 140, 137, 131, 139, 144, 144, 143, 158, 139, 132, 138, 139, 150, 147, 137, 143, 141, 146, 145, 135, 131, 140, 135, 144, 141, 142, 131, 140, 142, 146, 132, 144, 139, 135, 136, 139, 145, 140, 136, 137, 132, 132, 134, 139, 137, 144, 136, 137, 135, 136, 130, 143, 138, 135, 129, 147, 142, 122, 136, 125, 128, 134, 138, 136, 145, 146, 138, 141, 135, 144, 140, 135, 133, 149, 143, 134, 131, 129, 135, 125, 142, 142, 138, 144, 142, 135, 125, 132, 145, 139, 133, 143, 138, 143, 149, 146, 146, 143, 137, 142, 145, 159, 138, 143, 144, 131, 142, 142, 145, 136, 137, 147, 134, 141, 136, 156, 133, 136, 142, 147, 144, 137, 141, 125, 129, 147, 140, 126, 132, 137, 133, 138, 140, 136, 143, 138, 133, 137, 146, 142, 137, 140, 135, 142, 137, 136, 150, 140, 133, 142, 146, 146, 136, 133, 138, 138, 137, 138, 143, 145, 145, 141, 140, 125, 138, 148, 134, 137, 135, 137, 133, 134, 136, 144, 127, 133, 151, 135, 143, 140, 140, 133, 134, 131, 145, 139, 142, 141, 142, 143, 132, 144, 136, 141, 136, 137, 129, 141, 143, 139, 136, 133, 139, 140, 138, 139, 140, 151, 143, 139, 138, 145, 143, 136, 136, 129, 134, 136, 143, 138, 136, 140, 143, 141, 140, 137, 144, 138, 141, 146, 139, 134, 143, 118, 138, 143, 136, 137, 140, 139, 137, 132, 133, 132, 138, 139, 151, 134, 139, 132, 138, 142, 145, 140, 145, 145, 142, 136, 149, 137, 138, 142, 135, 143, 135, 138, 140, 139, 135, 137, 139, 135, 142, 135, 137, 135, 142, 134, 134, 135, 136, 142, 132, 140, 139, 139, 152, 130, 132, 132, 143, 134, 139, 142, 134, 133, 139, 137, 134, 140, 139, 135, 134, 140, 135, 135, 131, 137, 140, 142, 136, 145, 139, 139, 141, 138, 142, 131, 148, 131, 139, 146, 138, 132, 153, 141, 127, 139, 142, 141, 138, 136, 146, 141, 148, 140, 136, 142, 136, 142, 137, 142, 146, 143, 149, 140, 141, 126, 134, 136, 133, 134, 138, 143, 149, 132, 150, 139, 138, 142, 141, 125, 131, 146, 134, 140, 143, 130, 143, 141, 136, 148, 143, 140, 139, 138, 138, 128, 139, 142, 133, 146, 133, 143, 141, 137, 138, 138, 142, 152, 136, 154, 132, 139, 142, 144, 154, 146, 137, 150, 142, 137, 141, 140, 130, 146, 139, 138, 122, 129, 129, 143, 135, 137, 142, 138, 138, 141, 140, 136, 144, 144, 142, 137, 150, 144, 140, 140, 133, 137, 141, 142, 143, 135, 147, 133, 137, 144, 146, 140, 145, 138, 136, 137, 136, 139, 138, 150, 133, 141, 139, 139, 145, 137, 146, 136, 132, 136, 144, 145, 139, 142, 136, 146, 138, 140, 134, 136, 142, 143, 133, 135, 140, 136, 138, 136, 142, 140, 134, 140, 137, 144, 143, 142, 136, 139, 146, 139, 142, 133, 135, 144, 142, 118, 134, 135, 133, 140, 140, 138, 134, 144, 133, 139, 141, 136, 133, 138, 137, 148, 129, 141, 133, 141, 137, 139, 141, 138, 140, 142, 150, 141, 141, 140, 128, 146, 135, 141, 137, 138, 147, 126, 139, 144, 129, 138, 135, 142, 142, 143, 140, 133, 139, 143, 128, 137, 145, 142, 136, 136, 143, 137, 144, 141, 145, 141, 139, 141, 133, 137, 134, 134, 135, 136, 130, 134, 133, 154, 139, 129, 140, 148, 145, 145, 144, 140, 142, 143, 147, 136, 151, 136, 136, 132, 142, 132, 139, 135, 132, 137, 134, 138, 142, 139, 138, 139, 134, 139, 142, 139, 143, 144, 145, 138, 140, 134, 136, 136, 149, 144, 137, 133, 150, 141, 140, 138, 139, 152, 149, 135, 142, 145, 137, 135, 144, 140, 138, 132, 140, 140, 150, 139, 147, 146, 139, 142, 134, 137, 137, 145, 140, 131, 139, 134, 152, 138, 140, 140, 134, 136, 144, 140, 142, 149, 150, 135, 145, 134, 144, 132, 140, 133, 136, 144, 140, 138, 132, 141, 133, 149, 137, 136, 133, 141, 135, 140, 128, 140, 146, 137, 138, 133, 136, 136, 152, 133, 152, 134, 139, 136, 136, 142, 131, 143, 129, 141, 131, 138, 134, 136, 138, 147, 149, 131, 137, 132, 147, 135, 139, 133, 137, 132, 131, 146, 136, 143, 135, 137, 144, 143, 135, 134, 135, 142, 139, 140, 146, 133, 144, 139, 140, 134, 150, 139, 135, 133, 144, 139, 144, 141, 135, 131, 143, 138, 133, 130, 146, 134, 134, 142, 134, 142, 136, 132, 137, 141, 138, 139, 136, 136, 143, 137, 147, 137, 133, 137, 138, 132, 144, 145, 147, 140, 135, 133, 139, 135, 137, 128, 138, 143, 141, 132, 138, 146, 133, 138, 143, 134, 138, 141, 137, 143, 139, 142, 146, 131, 141, 136, 147, 134, 141, 131, 130, 130, 143, 131, 147, 143, 135, 140, 150, 144, 142, 135, 152, 138, 143, 152, 136, 138, 139, 140, 144, 144, 141, 143, 137, 143, 143, 136, 145, 136, 136, 141, 145, 140, 138, 134, 130, 145, 142, 149, 143, 146, 132, 136, 149, 140, 144, 140, 135, 144, 145, 135, 140, 133, 138, 140, 129, 137, 142, 135, 135, 139, 144, 132, 135, 143, 145, 137, 141, 140, 136, 140, 148, 138, 138, 134, 142, 142, 138, 135, 137, 141, 141, 133, 138, 142, 135, 136, 135, 136, 138, 150, 142, 134, 140, 138, 131, 134, 134, 151, 139, 130, 137, 153, 132, 148, 145, 134, 145, 138, 137, 135, 138, 143, 137, 141, 140, 139, 123, 139, 146, 148, 135, 137, 145, 140, 138, 144, 146, 146, 135, 138, 141, 135, 130, 126, 131, 131, 136, 141, 141, 134, 140, 129, 142, 139, 139, 144, 139, 140, 138, 135, 139, 136, 143, 131, 137, 145, 138, 140, 142, 132, 143, 142, 134, 141, 145, 128, 140, 143, 144, 143, 144, 137, 135, 138, 139, 136, 140, 135, 133, 143, 134, 135, 141, 134, 140, 142, 135, 143, 132, 141, 135, 137, 139, 135, 140, 138, 147, 133, 137, 141, 132, 132, 134, 141, 132, 147, 138, 137, 136, 136, 143, 136, 138, 143, 134, 136, 134, 137, 140, 148, 126, 137, 134, 135, 133, 136, 139, 140, 147, 140, 149, 144, 134, 150, 139, 141, 130, 141, 137, 141, 137, 140, 139, 138, 139, 137, 138, 138, 134, 149, 142, 141, 134, 138, 149, 136, 134, 139, 141, 138, 138, 137, 145, 139, 150, 139, 135, 135, 133, 142, 135, 131, 135, 143, 140, 144, 136, 141, 139, 132, 137, 134, 135, 140, 146, 139, 139, 131, 140, 133, 131, 136, 138, 140, 134, 126, 141, 140, 133, 135, 141, 134, 140, 141, 144, 132, 136, 142, 139, 136, 141, 147, 145, 137, 135, 139, 135, 144, 138, 141, 140, 132, 137, 137, 130, 136, 134, 141, 136, 132, 144, 145, 126, 141, 138, 139, 153, 147, 142, 143, 129, 136, 140, 138, 136, 145, 133, 140, 145, 139, 136, 127, 137, 139, 140, 141, 136, 143, 129, 134, 141, 138, 141, 135, 138, 143, 145, 141, 140, 136, 150, 145, 133, 136, 138, 140, 142, 147, 137, 140, 145, 143, 134, 141, 141, 142, 137, 144, 138, 141, 136, 148, 133, 140, 139, 133, 136, 141, 138, 143, 138, 139, 134, 130, 142, 148, 134, 138, 146, 142, 144, 137, 135, 138, 144, 134, 140, 141, 138, 149, 137, 142, 141, 139, 130, 129, 139, 139, 135, 143, 138, 143, 140, 132, 133, 125, 138, 143, 146, 131, 138, 138, 133, 131, 140, 143, 148, 142, 133, 146, 136, 137, 145, 139, 140, 135, 140, 132, 137, 140, 142, 140, 140, 131, 136, 138, 138, 138, 137, 135, 133, 144, 132, 137, 136, 143, 148, 135, 139, 137, 130, 145, 135, 141, 146, 136, 138, 145, 147, 141, 132, 142, 141, 142, 136, 152, 143, 129, 134, 134, 126, 136, 139, 138, 140, 134, 142, 135, 149, 137, 128, 147, 135, 140, 134, 135, 138, 127, 149, 140, 136, 138, 146, 133, 138, 140, 140, 141, 136, 142, 132, 140, 144, 143, 132, 143, 135, 136, 139, 130, 136, 140, 145, 132, 135, 140, 133, 132, 137, 137, 127, 143, 135, 138, 132, 134, 135, 130, 140, 146, 144, 133, 138, 137, 134, 145, 139, 143, 133, 142, 138, 137, 139, 145, 133, 140, 143, 136, 145, 146, 149, 134, 137, 139, 144, 132, 133, 129, 147, 148, 133, 136, 134, 133, 140, 128, 137, 143, 139, 135, 146, 138, 145, 130, 136, 148, 131, 149, 142, 141, 146, 129, 138, 145, 137, 136, 139, 140, 144, 145, 129, 134, 132, 151, 134, 133, 133, 139, 134, 132, 140, 133, 142, 143, 134, 147, 140, 131, 139, 144, 140, 146, 152, 146, 141, 130, 130, 136, 142, 141, 138, 138, 138, 135, 140, 150, 138, 141, 140, 129, 140, 136, 134, 133, 140, 142, 128, 138, 136, 142, 142, 133, 138, 138, 143, 145, 142, 134, 140, 139, 136, 138, 134, 144, 135, 144, 135, 138, 146, 139, 138, 140, 139, 137, 134, 135, 146, 141, 135, 142, 129, 143, 139, 137, 132, 139, 143, 136, 132, 140, 136, 125, 134, 133, 149, 136, 135, 139, 138, 144, 150, 137, 133, 136, 138, 134, 132, 132, 132, 133, 133, 133, 139, 147, 138, 140, 130, 136, 139, 135, 135, 131, 138, 136, 142, 145, 141, 140, 135, 134, 148, 140, 141, 137, 142, 135, 136, 142, 137, 141, 140, 147, 132, 137, 141, 125, 141, 134, 141, 140, 137, 129, 140, 137, 151, 148, 142, 138, 136, 131, 135, 136, 144, 138, 137, 139, 135, 142, 135, 141, 141, 139, 142, 140, 143, 141, 138, 142, 146, 139, 141, 142, 135, 142, 137, 146, 137, 135, 140, 134, 139, 140, 133, 128, 145, 140, 135, 129, 144, 146, 151, 135, 141, 142, 138, 134, 140, 144, 130, 136, 145, 139, 135, 128, 134, 148, 136, 133, 136, 143, 138, 149, 142, 128, 142, 140, 134, 135, 142, 141, 143, 131, 142, 131, 135, 146, 143, 124, 125, 126, 137, 140, 142, 149, 143, 140, 136, 131, 146, 142, 140, 135, 131, 144, 144, 135, 137, 136, 146, 134, 136, 135, 144, 133, 136, 157, 135, 134, 137, 137, 140, 139, 139, 140, 143, 140, 145, 142, 134, 135, 138, 142, 136, 139, 137, 141, 149, 135, 141, 139, 142, 146, 141, 139, 130, 143, 142, 99, 143, 141, 138, 128, 127, 135, 142, 140, 135, 143, 137, 140, 136, 143, 140, 141, 141, 137, 135, 137, 139, 134, 139, 140, 137, 146, 143, 139, 140, 132, 134, 137, 137, 142, 142, 136, 136, 138, 139, 147, 134, 141, 148, 137, 148, 140, 145, 135, 136, 135, 146, 144, 143, 144, 136, 141, 134, 140, 132, 141, 135, 133, 136, 137, 132, 143, 130, 140, 142, 135, 138, 137, 147, 137, 143, 135, 142, 135, 144, 142, 143, 132, 138, 143, 133, 149, 137, 135, 137, 140, 147, 140, 131, 143, 147, 143, 141, 136, 140, 134, 134, 146, 135, 145, 139, 141, 132, 144, 137, 148, 141, 134, 139, 144, 143, 136, 135, 121, 133, 150, 138, 144, 146, 131, 140, 142, 142, 137, 135, 142, 145, 146, 136, 144, 137, 136, 144, 142, 139, 135, 134, 145, 147, 140, 137, 135, 137, 130, 131, 143, 141, 141, 135, 138, 139, 141, 140, 135, 141, 138, 140, 133, 132, 134, 134, 138, 135, 140, 142, 141, 133, 132, 138, 144, 135, 134, 140, 149, 138, 137, 145, 135, 139, 133, 142, 150, 139, 130, 134, 141, 142, 129, 141, 143, 138, 136, 143, 134, 145, 141, 144, 136, 139, 143, 135, 140, 140, 141, 139, 137, 135, 139, 138, 140, 139, 135, 136, 131, 140, 135, 140, 150, 141, 138, 134, 145, 134, 153, 136, 142, 138, 147, 148, 138, 136, 141, 131, 134, 143, 132, 131, 141, 134, 139, 145, 156, 145, 140, 140, 145, 136, 131, 138, 130, 137, 135, 138, 134, 133, 136, 141, 141, 139, 145, 142, 144, 136, 142, 136, 137, 131, 139, 140, 140, 145, 139, 132, 140, 141, 136, 148, 143, 148, 143, 141, 137, 138, 136, 138, 141, 133, 141, 128, 135, 148, 131, 134, 134, 144, 130, 142, 132, 144, 142, 137, 130, 142, 137, 131, 145, 144, 142, 148, 139, 148, 148, 131, 139, 140, 142, 140, 146, 136, 135, 139, 138, 131, 136, 147, 138, 137, 144, 131, 138, 149, 143, 142, 145, 144, 137, 142, 143, 137, 140, 137, 135, 139, 146, 144, 143, 139, 145, 138, 140, 124, 135, 145, 140, 138, 140, 137, 145, 137, 140, 135, 149, 136, 140, 139, 139, 140, 143, 150, 158, 147, 139, 136, 141, 142, 135, 137, 141, 137, 141, 137, 147, 147, 136, 139, 139, 140, 129, 134, 137, 137, 134, 138, 140, 138, 139, 134, 139, 141, 141, 136, 130, 141, 142, 148, 145, 147, 148, 137, 139, 145, 132, 149, 130, 141, 139, 141, 135, 142, 141, 143, 140, 131, 142, 131, 138, 141, 140, 144, 137, 141, 140, 141, 137, 136, 139, 134, 141, 141, 139, 141, 145, 145, 140, 138, 134, 151, 151, 132, 144, 143, 132, 140, 137, 144, 137, 141, 126, 140, 136, 139, 141, 140, 139, 138, 138, 141, 138, 136, 140, 136, 148, 137, 141, 138, 150, 145, 142, 135, 137, 143, 137, 138, 143, 137, 139, 141, 137, 139, 140, 131, 137, 141, 141, 141, 138, 132, 138, 132, 143, 136, 129, 142, 134, 133, 139, 135, 135, 142, 146, 144, 139, 148, 142, 137, 144, 144, 135, 134, 138, 138, 138, 131, 140, 133, 131, 129, 134, 143, 132, 138, 146, 136, 139, 135, 151, 129, 133, 140, 134, 137, 145, 146, 141, 133, 134, 139, 136, 144, 143, 141, 141, 138, 130, 145, 143, 137, 135, 134, 139, 148, 136, 138, 143, 136, 142, 137, 145, 136, 136, 142, 142, 133, 137, 131, 140, 131, 151, 141, 136, 145, 141, 139, 140, 135, 134, 139, 136, 141, 143, 136, 133, 139, 135, 142, 125, 136, 146, 143, 137, 137, 134, 136, 143, 143, 138, 143, 137, 145, 146, 134, 147, 134, 135, 146, 137, 140, 137, 140, 138, 144, 136, 133, 134, 132, 144, 147, 136, 148, 140, 141, 142, 141, 136, 133, 129, 150, 137, 133, 135, 135, 145, 146, 137, 137, 140, 143, 140, 140, 132, 147, 140, 133, 135, 139, 138, 137, 137, 136, 136, 143, 139, 142, 146, 141, 134, 136, 139, 137, 134, 140, 130, 136, 145, 159, 135, 144, 137, 141, 138, 139, 140, 139, 146, 138, 141, 144, 138, 142, 131, 141, 152, 140, 134, 144, 142, 134, 135, 139, 133, 133, 137, 137, 148, 144, 139, 139, 140, 133, 140, 137, 137, 143, 143, 141, 137, 133, 136, 138, 141, 144, 145, 142, 138, 136, 137, 136, 136, 145, 142, 133, 147, 132, 139, 142, 144, 138, 144, 139, 133, 146, 136, 137, 137, 147, 141, 145, 143, 138, 139, 138, 131, 134, 131, 142, 136, 139, 136, 140, 139, 139, 138, 137, 140, 140, 132, 142, 139, 134, 144, 140, 138, 143, 140, 136, 136, 129, 140, 145, 140, 133, 137, 135, 141, 137, 147, 134, 143, 132, 142, 143, 133, 147, 137, 136, 136, 135, 141, 132, 142, 135, 134, 146, 133, 150, 143, 131, 134, 141, 147, 147, 143, 133, 145, 136, 131, 141, 144, 138, 137, 143, 138, 137, 139, 134, 138, 139, 142, 145, 138, 132, 145, 135, 138, 141, 138, 138, 144, 134, 138, 139, 141, 146, 135, 139, 140, 141, 138, 136, 135, 133, 143, 141, 129, 141, 138, 141, 140, 139, 128, 140, 137, 144, 147, 143, 144, 136, 137, 141, 139, 138, 141, 139, 140, 137, 145, 142, 134, 134, 145, 139, 135, 138, 141, 133, 135, 146, 133, 140, 139, 133, 140, 144, 142, 137, 134, 131, 143, 142, 133, 135, 133, 133, 141, 137, 130, 136, 132, 138, 141, 137, 138, 135, 149, 143, 139, 142, 138, 137, 141, 137, 139, 140, 139, 132, 148, 133, 146, 136, 141, 137, 140, 139, 138, 137, 130, 128, 137, 135, 136, 134, 141, 142, 136, 142, 146, 139, 146, 136, 144, 145, 132, 141, 135, 136, 137, 146, 143, 140, 139, 137, 139, 130, 138, 149, 135, 137, 140, 141, 131, 132, 116, 142, 155, 133, 134, 141, 139, 148, 134, 142, 135, 123, 142, 138, 140, 145, 140, 139, 135, 132, 133, 129, 134, 139, 139, 135, 141, 133, 141, 130, 136, 143, 130, 149, 142, 158, 132, 125, 151, 135, 148, 136, 133, 134, 133, 135, 140, 145, 136, 129, 138, 142, 133, 134, 133, 137, 140, 139, 142, 126, 141, 139, 133, 139, 126, 140, 132, 142, 148, 138, 149, 138, 136, 146, 142, 135, 132, 139, 140, 137, 133, 141, 141, 150, 141, 121, 142, 134, 145, 140, 133, 142, 138, 137, 134, 139, 137, 137, 139, 137, 133, 146, 132, 137, 135, 139, 143, 134, 144, 128, 143, 132, 135, 129, 135, 134, 144, 128, 135, 144, 143, 133, 137, 138, 127, 132, 141, 144, 140, 138, 138, 134, 134, 154, 147, 143, 140, 134, 130, 136, 139, 149, 142, 136, 141, 144, 138, 140, 136, 141, 141, 133, 139, 142, 142, 142, 133, 141, 129, 137, 138, 141, 145, 133, 144, 124, 146, 145, 144, 138, 138, 141, 138, 135, 134, 139, 139, 129, 137, 136, 136, 149, 133, 135, 143, 130, 148, 150, 138, 137, 139, 136, 146, 139, 130, 139, 144, 127, 138, 130, 137, 146, 129, 146, 145, 145, 144, 135, 137, 138, 147, 137, 145, 137, 135, 134, 137, 140, 126, 134, 137, 137, 142, 137, 143, 135, 136, 143, 136, 149, 141, 135, 135, 133, 145, 139, 141, 151, 145, 140, 135, 139, 136, 139, 137, 129, 140, 148, 138, 138, 148, 133, 146, 137, 140, 143, 135, 139, 135, 141, 135, 128, 134, 140, 145, 124, 135, 143, 135, 131, 132, 138, 142, 134, 149, 133, 125, 131, 139, 140, 141, 133, 123, 142, 148, 143, 138, 141, 141, 145, 152, 139, 134, 138, 138, 142, 133, 134, 136, 148, 136, 143, 140, 140, 133, 147, 136, 153, 132, 154, 151, 143, 136, 137, 150, 132, 135, 137, 142, 136, 132, 141, 151, 134, 133, 137, 143, 139, 144, 149, 135, 146, 141, 135, 142, 127, 136, 133, 156, 141, 138, 137, 132, 143, 133, 141, 133, 140, 149, 143, 150, 141, 141, 140, 147, 148, 131, 130, 139, 137, 138, 132, 138, 140, 136, 137, 138, 157, 136, 131, 129, 151, 147, 143, 131, 141, 144, 150, 132, 141, 129, 129, 146, 128, 142, 143, 134, 134, 138, 136, 140, 140, 141, 147, 135, 143, 139, 133, 152, 144, 143, 136, 140, 131, 144, 147, 140, 139, 147, 133, 140, 131, 138, 155, 140, 136, 128, 131, 137, 129, 137, 142, 135, 149, 131, 135, 137, 135, 133, 137, 147, 131, 134, 147, 136, 134, 148, 134, 138, 139, 140, 148, 141, 131, 139, 140, 131, 133, 148, 150, 133, 134, 139, 137, 145, 143, 129, 136, 145, 143, 141, 144, 132, 143, 142, 129, 135, 148, 140, 134, 133, 143, 141, 138, 141, 148, 145, 122, 133, 144, 125, 139, 138, 138, 135, 141, 137, 139, 148, 144, 147, 144, 126, 142, 132, 149, 133, 142, 137, 126, 133, 136, 147, 133, 138, 133, 140, 135, 133, 136, 134, 141, 139, 143, 142, 131, 143, 128, 133, 140, 143, 142, 140, 140, 155, 140, 135, 132, 135, 144, 137, 142, 131, 134, 144, 140, 138, 149, 138, 144, 147, 134, 128, 136, 128, 136, 141, 135, 134, 143, 152, 135, 138, 135, 147, 136, 135, 138, 147, 134, 138, 140, 139, 150, 137, 130, 131, 141, 134, 146, 134, 136, 138, 137, 147, 140, 135, 136, 145, 142, 136, 149, 136, 138, 139, 140, 138, 146, 145, 141, 140, 140, 139, 134, 135, 138, 139, 133, 144, 148, 137, 138, 130, 139, 143, 144, 144, 137, 133, 141, 133, 134, 137, 141, 151, 141, 130, 140, 142, 130, 145, 139, 146, 133, 137, 140, 133, 132, 137, 143, 143, 131, 138, 143, 137, 141, 136, 138, 148, 145, 134, 143, 132, 137, 135, 147, 147, 149, 132, 134, 139, 140, 139, 133, 143, 139, 142, 139, 137, 133, 139, 129, 133, 144, 129, 138, 139, 136, 135, 141, 139, 137, 128, 138, 139, 138, 146, 149, 142, 143, 145, 138, 140, 135, 134, 132, 144, 139, 141, 141, 137, 137, 147, 140, 143, 139, 146, 136, 139, 140, 133, 143, 130, 144, 138, 137, 132, 148, 134, 142, 148, 140, 134, 141, 132, 141, 137, 149, 134, 134, 138, 143, 133, 132, 135, 134, 141, 133, 124, 139, 139, 135, 135, 140, 132, 133, 150, 135, 130, 146, 138, 136, 146, 133, 141, 136, 140, 132, 138, 144, 142, 138, 141, 139, 148, 137, 128, 146, 137, 137, 140, 140, 140, 130, 147, 132, 148, 140, 137, 135, 136, 140, 135, 135, 146, 132, 139, 143, 143, 131, 135, 136, 135, 132, 147, 139, 150, 129, 135, 136, 136, 134, 145, 140, 134, 147, 133, 141, 132, 146, 135, 140, 145, 138, 135, 135, 142, 131, 144, 138, 145, 131, 139, 141, 145, 138, 136, 133, 132, 146, 136, 139, 130, 139, 132, 152, 136, 144, 134, 136, 129, 139, 130, 138, 135, 143, 142, 142, 146, 136, 136, 139, 138, 141, 136, 137, 144, 148, 134, 146, 131, 135, 141, 150, 146, 135, 138, 151, 147, 139, 140, 146, 137, 124, 131, 139, 145, 138, 136, 127, 135, 139, 137, 132, 136, 143, 144, 141, 139, 128, 138, 147, 136, 133, 135, 138, 143, 137, 137, 136, 141, 133, 139, 136, 144, 146, 141, 132, 133, 142, 131, 133, 144, 145, 138, 128, 141, 140, 149, 132, 135, 155, 130, 138, 143, 141, 130, 138, 141, 147, 140, 137, 136, 135, 139, 146, 140, 133, 136, 152, 139, 133, 136, 135, 130, 140, 146, 130, 142, 136, 133, 145, 142, 142, 139, 134, 135, 142, 154, 139, 143, 125, 137, 135, 136, 135, 136, 144, 144, 150, 141, 146, 141, 139, 133, 129, 153, 140, 127, 139, 138, 140, 137, 137, 141, 140, 127, 131, 140, 147, 150, 144, 139, 147, 130, 133, 135, 147, 135, 139, 147, 141, 139, 140, 139, 140, 136, 145, 138, 139, 142, 134, 142, 130, 130, 140, 136, 144, 139, 143, 127, 137, 141, 132, 140, 142, 144, 148, 145, 146, 142, 147, 139, 145, 150, 150, 137, 132, 150, 136, 133, 141, 140, 131, 153, 129, 122, 137, 136, 144, 130, 134, 131, 131, 142, 142, 140, 134, 136, 141, 137, 133, 139, 139, 140, 143, 135, 144, 133, 139, 140, 147, 140, 142, 141, 145, 133, 138, 131, 144, 145, 132, 138, 134, 138, 139, 137, 139, 148, 128, 144, 144, 132, 145, 145, 141, 136, 143, 149, 133, 139, 146, 137, 143, 139, 144, 148, 141, 139, 134, 147, 136, 137, 136, 134, 140, 132, 135, 143, 151, 138, 136, 135, 130, 146, 140, 142, 144, 125, 146, 126, 148, 142, 126, 136, 142, 141, 129, 129, 136, 136, 135, 137, 135, 146, 137, 150, 139, 140, 148, 141, 134, 143, 144, 134, 131, 148, 139, 150, 141, 140, 142, 134, 145, 143, 135, 137, 140, 138, 144, 128, 135, 139, 132, 138, 132, 145, 146, 142, 140, 133, 126, 140, 138, 139, 145, 150, 131, 133, 142, 133, 141, 143, 140, 145, 136, 137, 141, 146, 145, 140, 133, 136, 140, 136, 146, 143, 133, 138, 137, 138, 137, 142, 137, 145, 154, 138, 136, 139, 138, 139, 144, 137, 142, 134, 150, 140, 148, 128, 143, 140, 146, 141, 131, 146, 140, 140, 133, 138, 132, 134, 130, 139, 141, 143, 143, 134, 141, 136, 138, 130, 150, 134, 146, 141, 135, 137, 138, 140, 137, 141, 131, 132, 141, 145, 138, 140, 144, 138, 149, 135, 137, 137, 140, 147, 139, 149, 141, 144, 134, 138, 137, 138, 128, 135, 144, 134, 138, 149, 129, 140, 142, 137, 130, 138, 139, 139, 137, 137, 139, 130, 143, 145, 129, 140, 140, 139, 144, 132, 134, 132, 146, 133, 127, 138, 134, 126, 137, 148, 133, 142, 140, 139, 135, 142, 142, 133, 138, 131, 140, 140, 136, 138, 152, 131, 148, 135, 140, 143, 141, 150, 135, 129, 144, 137, 132, 131, 137, 132, 136, 136, 139, 132, 136, 142, 140, 144, 142, 133, 140, 142, 139, 136, 129, 130, 139, 134, 143, 137, 151, 139, 145, 139, 138, 140, 137, 144, 142, 138, 138, 140, 135, 154, 150, 131, 132, 145, 146, 140, 144, 149, 146, 135, 144, 148, 142, 134, 141, 131, 140, 139, 138, 149, 140, 147, 131, 141, 143, 150, 129, 130, 131, 136, 133, 140, 145, 136, 143, 141, 146, 153, 128, 144, 143, 152, 135, 145, 141, 144, 134, 149, 142, 147, 137, 144, 139, 143, 141, 130, 128, 143, 141, 138, 133, 135, 136, 142, 142, 142, 140, 128, 134, 138, 147, 142, 136, 133, 142, 144, 148, 142, 143, 142, 137, 145, 136, 142, 128, 128, 141, 123, 148, 137, 143, 149, 144, 138, 140, 145, 141, 129, 145, 129, 126, 145, 137, 145, 135, 132, 146, 136, 146, 137, 142, 149, 147, 144, 134, 136, 136, 139, 146, 139, 138, 143, 138, 138, 132, 133, 140, 143, 136, 139, 137, 131, 139, 141, 135, 138, 139, 136, 143, 142, 133, 142, 144, 139, 138, 141, 143, 134, 144, 140, 134, 159, 135, 134, 141, 133, 139, 146, 133, 136, 135, 144, 142, 141, 139, 140, 144, 140, 153, 143, 137, 136, 151, 137, 140, 149, 140, 140, 140, 136, 138, 145, 140, 133, 135, 135, 139, 143, 142, 146, 140, 141, 139, 132, 136, 139, 136, 143, 139, 136, 151, 134, 135, 145, 141, 141, 141, 129, 132, 134, 140, 136, 155, 146, 137, 144, 140, 134, 146, 136, 142, 131, 136, 138, 139, 139, 133, 154, 142, 137, 131, 137, 140, 143, 143, 139, 135, 138, 132, 136, 146, 131, 139, 136, 133, 132, 132, 139, 135, 139, 142, 134, 146, 137, 147, 138, 142, 141, 139, 142, 134, 132, 132, 126, 136, 137, 136, 133, 131, 133, 128, 141, 142, 136, 144, 144, 150, 131, 137, 133, 134, 132, 141, 136, 135, 137, 134, 137, 135, 143, 139, 137, 146, 149, 144, 133, 139, 140, 141, 135, 131, 140, 139, 141, 146, 131, 138, 135, 138, 143, 141, 133, 135, 134, 137, 149, 135, 152, 143, 135, 143, 133, 133, 137, 141, 145, 137, 144, 140, 131, 134, 138, 139, 140, 135, 130, 142, 124, 136, 141, 137, 141, 134, 134, 145, 137, 138, 138, 143, 128, 136, 151, 134, 133, 138, 147, 140, 142, 145, 137, 141, 136, 146, 140, 142, 130, 136, 136, 139, 139, 138, 139, 144, 141, 136, 143, 140, 141, 136, 134, 133, 138, 135, 134, 138, 144, 148, 137, 147, 140, 134, 157, 140, 143, 138, 131, 140, 138, 143, 138, 129, 148, 139, 141, 132, 132, 130, 140, 131, 146, 130, 156, 138, 145, 143, 136, 143, 135, 136, 139, 138, 150, 141, 135, 144, 138, 129, 141, 137, 139, 143, 139, 142, 134, 140, 127, 133, 140, 138, 145, 133, 145, 138, 132, 140, 143, 134, 130, 140, 148, 138, 138, 147, 141, 145, 134, 142, 122, 134, 138, 140, 137, 144, 135, 137, 141, 141, 143, 129, 139, 136, 141, 141, 134, 141, 142, 134, 132, 144, 140, 140, 145, 138, 139, 139, 135, 142, 142, 142, 136, 130, 144, 139, 140, 141, 141, 142, 138, 135, 143, 132, 132, 133, 136, 141, 138, 140, 137, 146, 135, 135, 137, 136, 139, 139, 134, 138, 141, 140, 137, 145, 132, 140, 137, 135, 136, 139, 135, 144, 139, 138, 140, 135, 144, 139, 142, 129, 149, 134, 145, 139, 143, 140, 140, 142, 146, 139, 144, 136, 138, 140, 143, 140, 140, 129, 127, 146, 131, 136, 131, 135, 136, 139, 137, 147, 138, 137, 138, 141, 138, 143, 134, 144, 138, 144, 137, 132, 135, 139, 145, 146, 136, 131, 140, 140, 130, 137, 135, 136, 135, 134, 136, 133, 137, 141, 135, 138, 137, 136, 143, 138, 140, 140, 135, 135, 142, 145, 132, 135, 142, 128, 135, 139, 135, 144, 139, 138, 141, 137, 146, 140, 139, 134, 138, 143, 137, 142, 143, 144, 141, 137, 147, 141, 141, 135, 150, 138, 142, 154, 136, 134, 134, 135, 136, 137, 143, 129, 140, 138, 132, 145, 139, 133, 133, 135, 139, 136, 143, 140, 147, 136, 150, 134, 140, 137, 132, 128, 139, 134, 139, 139, 147, 136, 137, 136, 136, 140, 140, 134, 140, 147, 142, 139, 141, 140, 136, 135, 145, 137, 143, 139, 138, 136, 148, 144, 135, 134, 130, 133, 141, 143, 141, 143, 147, 135, 146, 139, 139, 134, 140, 137, 132, 133, 130, 154, 138, 134, 134, 133, 143, 145, 131, 138, 144, 142, 140, 140, 146, 142, 146, 138, 133, 137, 139, 136, 136, 132, 139, 137, 136, 145, 134, 134, 135, 141, 146, 143, 139, 145, 142, 141, 139, 138, 135, 140, 144, 143, 142, 142, 147, 134, 139, 147, 143, 136, 138, 142, 138, 135, 139, 135, 123, 146, 140, 142, 144, 139, 140, 137, 138, 136, 137, 140, 138, 138, 145, 139, 142, 146, 138, 138, 137, 144, 142, 148, 144, 137, 137, 141, 140, 140, 144, 137, 136, 144, 139, 134, 136, 146, 135, 142, 139, 135, 135, 136, 143, 135, 139, 141, 133, 137, 138, 143, 139, 136, 136, 146, 144, 139, 141, 138, 132, 136, 139, 138, 141, 137, 137, 142, 142, 137, 141, 135, 137, 134, 138, 140, 142, 142, 139, 140, 136, 139, 137, 140, 134, 138, 140, 141, 142, 141, 139, 138, 135, 132, 136, 135, 140, 135, 147, 144, 134, 135, 138, 145, 141, 141, 135, 142, 147, 144, 140, 135, 139, 140, 148, 136, 140, 143, 143, 140, 143, 137, 136, 138, 141, 139, 131, 136, 133, 138, 137, 142, 137, 135, 132, 151, 142, 137, 139, 142, 143, 154, 141, 143, 132, 138, 144, 132, 140, 141, 140, 142, 145, 135, 140, 139, 158, 136, 146, 139, 141, 140, 138, 137, 142, 137, 142, 137, 137, 137, 134, 139, 147, 139, 139, 138, 139, 140, 139, 137, 132, 136, 137, 140, 139, 136, 140, 140, 138, 139, 140, 144, 148, 138, 141, 137, 136, 142, 142, 141, 132, 143, 138, 127, 129, 140, 138, 141, 147, 136, 135, 136, 138, 143, 141, 139, 135, 141, 134, 139, 138, 143, 133, 138, 140, 140, 138, 135, 140, 142, 137, 132, 141, 143, 144, 144, 140, 136, 134, 140, 140, 137, 140, 141, 130, 133, 137, 133, 145, 137, 139, 137, 140, 138, 142, 135, 141, 142, 145, 137, 132, 138, 138, 133, 134, 140, 139, 139, 135, 142, 140, 141, 138, 138, 139, 144, 135, 137, 134, 137, 134, 132, 142, 147, 138, 139, 143, 138, 142, 139, 144, 136, 140, 139, 132, 137, 138, 141, 142, 137, 145, 143, 139, 143, 137, 140, 132, 139, 131, 135, 134, 142, 141, 142, 135, 142, 133, 136, 137, 135, 140, 138, 132, 140, 137, 135, 136, 141, 143, 141, 135, 144, 148, 134, 142, 146, 136, 138, 136, 133, 141, 142, 138, 140, 135, 140, 140, 132, 135, 130, 139, 144, 138, 140, 128, 137, 136, 141, 145, 140, 144, 138, 142, 138, 141, 143, 141, 143, 145, 133, 133, 143, 142, 138, 140, 156, 136, 143, 138, 151, 140, 138, 142, 147, 134, 135, 139, 136, 134, 137, 136, 137, 139, 147, 142, 141, 137, 143, 138, 139, 142, 138, 145, 138, 138, 148, 136, 139, 134, 137, 137, 137, 146, 141, 137, 138, 135, 143, 144, 145, 136, 137, 135, 136, 137, 142, 138, 127, 140, 142, 146, 141, 139, 144, 135, 131, 149, 140, 136, 134, 140, 130, 146, 137, 146, 136, 141, 141, 140, 140, 137, 137, 135, 145, 139, 136, 139, 143, 138, 140, 140, 134, 145, 144, 137, 135, 138, 140, 137, 137, 134, 138, 149, 139, 133, 145, 136, 134, 133, 134, 130, 140, 139, 140, 147, 136, 143, 136, 141, 143, 143, 139, 137, 147, 134, 140, 134, 128, 142, 136, 148, 147, 139, 141, 134, 131, 133, 143, 140, 131, 142, 134, 138, 135, 135, 142, 142, 133, 140, 133, 132, 143, 138, 147, 141, 138, 134, 142, 141, 145, 129, 140, 148, 131, 134, 146, 137, 144, 131, 143, 150, 148, 134, 143, 133, 129, 132, 151, 135, 129, 150, 147, 137, 138, 136, 143, 135, 143, 129, 136, 145, 137, 145, 142, 131, 147, 136, 138, 144, 137, 143, 133, 136, 132, 149, 138, 157, 145, 141, 140, 140, 150, 139, 145, 137, 129, 143, 138, 140, 137, 134, 134, 131, 139, 142, 143, 144, 131, 136, 132, 137, 137, 145, 136, 135, 147, 141, 132, 137, 139, 139, 130, 133, 141, 144, 127, 149, 146, 134, 134, 139, 140, 138, 136, 137, 140, 134, 143, 140, 144, 143, 139, 142, 137, 131, 139, 140, 140, 140, 142, 139, 140, 139, 132, 133, 145, 141, 135, 142, 134, 130, 137, 140, 141, 134, 141, 136, 142, 147, 139, 131, 145, 140, 139, 138, 138, 145, 138, 140, 140, 132, 140, 132, 138, 151, 140, 133, 145, 144, 132, 139, 144, 140, 139, 135, 139, 134, 135, 135, 132, 134, 150, 146, 140, 143, 137, 138, 145, 135, 148, 144, 146, 143, 136, 132, 140, 132, 141, 141, 143, 143, 137, 138, 142, 136, 133, 139, 137, 143, 137, 144, 124, 134, 136, 137, 147, 144, 135, 141, 143, 144, 138, 141, 132, 139, 145, 130, 144, 141, 133, 142, 129, 141, 137, 135, 135, 150, 132, 143, 134, 138, 142, 147, 144, 139, 137, 140, 139, 143, 144, 140, 139, 133, 138, 142, 145, 144, 142, 148, 139, 132, 142, 141, 137, 124, 153, 134, 142, 143, 137, 134, 131, 136, 132, 133, 133, 148, 140, 139, 138, 145, 140, 144, 129, 143, 137, 139, 135, 133, 137, 135, 132, 134, 141, 143, 137, 131, 136, 137, 139, 132, 134, 140, 140, 134, 137, 139, 136, 137, 139, 145, 136, 142, 132, 146, 144, 132, 154, 161, 137, 128, 138, 140, 139, 148, 148, 138, 143, 133, 147, 137, 130, 132, 137, 142, 142, 138, 144, 144, 136, 136, 135, 152, 144, 142, 130, 136, 139, 141, 141, 139, 145, 138, 143, 138, 143, 134, 145, 148, 133, 143, 146, 147, 151, 147, 125, 134, 148, 134, 142, 134, 139, 144, 133, 139, 138, 143, 140, 140, 145, 139, 145, 137, 145, 136, 139, 142, 141, 137, 146, 135, 137, 143, 141, 140, 140, 143, 138, 130, 143, 140, 147, 150, 142, 137, 139, 133, 148, 139, 134, 132, 151, 139, 141, 139, 137, 140, 150, 140, 134, 142, 137, 135, 142, 145, 140, 140, 140, 141, 143, 145, 145, 135, 142, 134, 142, 146, 144, 147, 135, 144, 136, 143, 143, 143, 138, 142, 139, 139, 143, 142, 143, 136, 137, 142, 134, 135, 138, 138, 133, 145, 132, 136, 151, 141, 137, 143, 145, 132, 139, 141, 135, 139, 136, 137, 140, 142, 137, 141, 140, 140, 143, 135, 139, 137, 147, 132, 132, 144, 144, 147, 146, 139, 144, 134, 143, 144, 138, 140, 130, 145, 141, 142, 134, 142, 137, 136, 144, 142, 145, 143, 138, 137, 135, 136, 144, 135, 140, 135, 142, 139, 141, 141, 141, 142, 144, 134, 142, 137, 143, 133, 137, 139, 145, 136, 145, 143, 133, 144, 140, 137, 143, 137, 134, 132, 143, 140, 138, 140, 143, 140, 139, 142, 142, 136, 150, 144, 145, 142, 141, 148, 133, 148, 136, 145, 137, 140, 138, 146, 137, 141, 136, 145, 132, 144, 145, 139, 146, 139, 133, 138, 134, 140, 143, 136, 135, 137, 142, 139, 140, 141, 132, 139, 136, 143, 146, 140, 142, 145, 135, 139, 143, 144, 142, 139, 135, 135, 141, 134, 142, 137, 141, 142, 144, 144, 148, 140, 142, 133, 135, 142, 141, 141, 147, 137, 136, 138, 137, 144, 140, 144, 142, 134, 138, 138, 133, 143, 144, 139, 147, 134, 137, 135, 143, 137, 142, 143, 143, 136, 142, 141, 137, 146, 141, 144, 136, 136, 134, 140, 140, 148, 136, 143, 132, 135, 142, 141, 143, 140, 134, 137, 144, 140, 141, 142, 142, 143, 137, 139, 143, 139, 134, 134, 138, 143, 143, 138, 136, 138, 142, 144, 140, 141, 137, 138, 144, 142, 146, 139, 140, 146, 135, 138, 143, 143, 135, 137, 141, 144, 137, 143, 146, 140, 144, 132, 139, 149, 143, 144, 146, 143, 146, 131, 139, 152, 135, 136, 139, 134, 141, 145, 138, 135, 136, 142, 142, 142, 143, 134, 146, 148, 135, 130, 138, 136, 138, 139, 147, 139, 135, 132, 134, 140, 137, 145, 137, 139, 138, 141, 137, 139, 142, 134, 137, 134, 131, 145, 133, 135, 145, 143, 146, 138, 139, 142, 130, 132, 142, 142, 149, 138, 142, 142, 133, 134, 140, 139, 137, 144, 142, 141, 142, 147, 138, 146, 141, 136, 143, 134, 133, 145, 137, 138, 131, 144, 129, 135, 141, 141, 145, 143, 126, 135, 137, 144, 146, 136, 137, 139, 136, 137, 135, 136, 144, 135, 132, 135, 138, 141, 140, 142, 137, 135, 137, 135, 142, 146, 141, 146, 136, 144, 141, 132, 142, 135, 134, 136, 138, 143, 139, 133, 140, 138, 145, 150, 143, 137, 137, 130, 143, 141, 141, 145, 137, 140, 127, 142, 138, 144, 134, 129, 143, 142, 139, 137, 141, 138, 142, 146, 137, 143, 144, 136, 144, 137, 145, 138, 144, 140, 140, 137, 140, 142, 139, 142, 131, 136, 141, 137, 138, 138, 144, 150, 136, 136, 141, 141, 143, 140, 142, 136, 141, 145, 139, 139, 139, 140, 146, 136, 144, 137, 138, 130, 147, 141, 144, 129, 141, 132, 150, 136, 139, 142, 152, 142, 137, 137, 141, 141, 129, 139, 130, 140, 147, 123, 137, 137, 139, 130, 126, 135, 125, 133, 134, 140, 140, 133, 142, 139, 145, 153, 131, 127, 147, 144, 147, 141, 144, 134, 145, 125, 141, 140, 141, 133, 147, 144, 141, 144, 124, 147, 140, 131, 142, 141, 129, 134, 138, 141, 139, 142, 134, 141, 138, 128, 139, 141, 147, 143, 132, 144, 133, 143, 152, 140, 126, 154, 143, 146, 139, 139, 146, 139, 134, 141, 148, 139, 132, 135, 143, 145, 141, 134, 134, 142, 137, 143, 156, 136, 132, 141, 146, 130, 159, 136, 134, 138, 138, 123, 134, 130, 140, 137, 136, 147, 147, 135, 144, 133, 142, 141, 145, 139, 144, 133, 140, 140, 133, 127, 158, 136, 141, 139, 131, 137, 127, 144, 146, 131, 143, 140, 133, 143, 139, 145, 135, 135, 142, 131, 135, 138, 130, 142, 147, 133, 143, 143, 135, 135, 144, 142, 134, 134, 138, 128, 134, 132, 143, 134, 146, 142, 134, 136, 134, 138, 135, 135, 140, 136, 134, 135, 145, 148, 134, 139, 139, 134, 145, 138, 136, 132, 140, 143, 122, 135, 135, 145, 135, 135, 135, 144, 135, 153, 144, 149, 137, 142, 147, 138, 134, 140, 144, 134, 139, 132, 131, 140, 136, 124, 141, 139, 131, 144, 133, 144, 141, 136, 132, 137, 121, 149, 143, 135, 131, 137, 145, 139, 135, 140, 142, 133, 140, 144, 135, 136, 140, 139, 135, 143, 137, 145, 150, 139, 133, 134, 136, 142, 137, 136, 141, 137, 133, 140, 145, 136, 137, 142, 130, 124, 135, 137, 143, 129, 142, 144, 132, 138, 139, 136, 137, 149, 136, 141, 144, 143, 135, 150, 138, 146, 138, 146, 135, 136, 130, 131, 147, 131, 144, 139, 149, 130, 126, 137, 141, 139, 140, 150, 132, 147, 140, 145, 140, 143, 135, 131, 137, 140, 142, 144, 145, 145, 135, 135, 130, 138, 139, 140, 139, 140, 132, 124, 139, 144, 146, 144, 130, 134, 139, 136, 132, 137, 141, 135, 153, 153, 143, 140, 128, 146, 147, 133, 144, 147, 136, 145, 137, 139, 143, 143, 138, 131, 137, 125, 135, 142, 140, 145, 146, 145, 126, 140, 128, 136, 133, 141, 140, 136, 139, 133, 138, 132, 149, 133, 137, 136, 127, 147, 138, 136, 139, 133, 148, 140, 135, 143, 142, 140, 143, 154, 125, 142, 143, 134, 143, 124, 140, 135, 136, 137, 130, 137, 132, 156, 131, 153, 135, 125, 151, 140, 142, 136, 132, 131, 143, 132, 133, 138, 147, 140, 144, 139, 138, 141, 150, 137, 136, 147, 139, 132, 147, 145, 138, 137, 137, 139, 141, 139, 139, 141, 155, 133, 143, 131, 137, 143, 131, 138, 133, 127, 133, 138, 132, 144, 128, 140, 131, 141, 147, 148, 134, 143, 144, 130, 146, 139, 146, 145, 145, 143, 151, 144, 136, 126, 135, 138, 141, 135, 130, 127, 145, 139, 124, 149, 146, 136, 147, 134, 149, 132, 129, 141, 139, 144, 135, 127, 132, 138, 119, 141, 154, 142, 151, 141, 141, 136, 139, 136, 137, 152, 147, 140, 139, 142, 140, 135, 156, 139, 158, 146, 141, 141, 130, 134, 151, 142, 138, 141, 138, 130, 147, 133, 128, 143, 145, 138, 137, 153, 148, 135, 139, 147, 141, 129, 134, 144, 143, 133, 138, 149, 138, 141, 132, 154, 136, 141, 142, 129, 146, 131, 136, 137, 147, 131, 139, 138, 144, 150, 134, 135, 129, 137, 141, 138, 145, 131, 147, 137, 151, 130, 146, 130, 143, 151, 134, 141, 135, 145, 140, 142, 132, 140, 147, 152, 130, 146, 140, 138, 144, 143, 123, 150, 136, 139, 134, 141, 135, 131, 134, 149, 143, 158, 139, 139, 137, 141, 135, 142, 139, 140, 146, 132, 137, 135, 123, 149, 144, 138, 139, 147, 137, 137, 133, 139, 140, 135, 138, 140, 141, 142, 136, 148, 136, 144, 133, 149, 142, 130, 147, 137, 134, 135, 133, 128, 144, 136, 124, 138, 151, 142, 132, 135, 122, 137, 138, 144, 143, 149, 137, 151, 143, 144, 138, 142, 147, 130, 143, 141, 144, 138, 130, 142, 130, 130, 137, 127, 145, 144, 136, 144, 130, 133, 139, 141, 144, 145, 130, 146, 133, 144, 132, 140, 125, 130, 141, 132, 128, 134, 146, 141, 138, 133, 139, 139, 158, 147, 134, 139, 140, 142, 135, 142, 134, 139, 137, 142, 143, 137, 140, 142, 144, 127, 141, 138, 133, 151, 137, 140, 143, 147, 136, 133, 138, 138, 139, 130, 145, 137, 136, 139, 138, 140, 130, 147, 145, 129, 139, 139, 142, 141, 154, 131, 139, 132, 141, 140, 126, 152, 136, 146, 151, 144, 145, 141, 128, 142, 144, 140, 137, 135, 146, 146, 139, 131, 133, 136, 139, 142, 149, 135, 139, 138, 137, 141, 137, 132, 137, 133, 139, 133, 147, 147, 152, 142, 147, 130, 146, 143, 135, 136, 131, 138, 132, 129, 136, 141, 145, 152, 145, 143, 137, 144, 130, 119, 148, 140, 142, 143, 138, 124, 145, 144, 155, 132, 152, 138, 144, 127, 142, 140, 154, 142, 135, 139, 137, 134, 137, 146, 130, 136, 141, 134, 138, 144, 132, 144, 145, 147, 134, 137, 139, 136, 145, 131, 141, 140, 137, 141, 123, 135, 148, 135, 134, 148, 141, 136, 135, 134, 145, 137, 134, 138, 140, 134, 133, 142, 136, 132, 141, 140, 124, 137, 147, 145, 132, 137, 123, 128, 137, 142, 142, 148, 147, 140, 145, 134, 142, 138, 144, 130, 138, 136, 127, 135, 143, 162, 141, 143, 158, 130, 139, 138, 142, 137, 140, 142, 146, 129, 151, 139, 140, 138, 144, 146, 127, 132, 140, 139, 134, 134, 125, 138, 137, 134, 138, 144, 135, 151, 136, 148, 144, 147, 148, 147, 135, 132, 145, 139, 134, 145, 132, 147, 141, 130, 159, 146, 147, 146, 135, 129, 144, 135, 127, 143, 141, 145, 129, 133, 139, 147, 146, 142, 130, 136, 145, 148, 145, 131, 144, 138, 132, 141, 141, 147, 146, 145, 140, 138, 139, 144, 134, 142, 133, 139, 127, 139, 137, 154, 138, 151, 131, 135, 146, 140, 140, 137, 139, 144, 137, 140, 140, 137, 142, 137, 138, 135, 145, 130, 141, 137, 128, 140, 144, 138, 154, 145, 149, 139, 143, 139, 136, 143, 139, 143, 137, 145, 137, 134, 137, 137, 143, 139, 141, 132, 143, 143, 135, 131, 142, 132, 141, 135, 144, 145, 143, 140, 140, 137, 153, 145, 139, 131, 137, 141, 144, 137, 133, 142, 145, 134, 135, 146, 134, 136, 146, 154, 136, 139, 143, 138, 134, 144, 134, 135, 143, 139, 137, 138, 143, 141, 134, 139, 141, 133, 154, 133, 136, 135, 138, 134, 146, 134, 133, 133, 134, 141, 139, 137, 143, 134, 142, 137, 135, 144, 136, 141, 135, 137, 136, 143, 144, 138, 136, 135, 133, 147, 135, 137, 138, 135, 136, 135, 135, 142, 140, 135, 137, 140, 135, 144, 133, 143, 135, 131, 131, 140, 144, 147, 142, 131, 145, 143, 131, 136, 141, 138, 137, 133, 141, 138, 142, 139, 139, 138, 138, 135, 137, 142, 141, 139, 130, 142, 142, 136, 138, 146, 136, 138, 140, 144, 141, 130, 137, 141, 138, 137, 132, 138, 133, 137, 125, 140, 135, 143, 137, 131, 137, 143, 149, 133, 142, 137, 128, 145, 149, 138, 128, 135, 138, 140, 137, 144, 133, 143, 145, 147, 136, 140, 143, 141, 137, 138, 136, 138, 136, 140, 146, 133, 143, 147, 140, 135, 144, 139, 139, 129, 139, 136, 130, 136, 143, 144, 140, 144, 133, 140, 141, 135, 134, 133, 145, 144, 141, 140, 132, 153, 139, 138, 136, 140, 141, 136, 135, 138, 143, 141, 150, 142, 133, 140, 123, 135, 149, 135, 130, 138, 141, 134, 131, 132, 139, 142, 132, 141, 136, 138, 143, 141, 136, 157, 131, 136, 132, 146, 144, 146, 139, 126, 135, 131, 134, 136, 141, 138, 143, 135, 133, 127, 136, 139, 131, 136, 138, 137, 137, 137, 141, 138, 138, 139, 142, 136, 143, 131, 150, 141, 145, 142, 142, 147, 126, 150, 149, 136, 145, 138, 145, 140, 140, 141, 129, 135, 133, 147, 137, 139, 133, 138, 133, 137, 142, 144, 136, 139, 138, 147, 143, 139, 135, 137, 135, 140, 140, 151, 135, 141, 138, 146, 135, 139, 149, 139, 144, 130, 144, 142, 137, 133, 132, 144, 135, 150, 136, 145, 140, 146, 149, 144, 134, 135, 149, 136, 134, 129, 146, 138, 130, 136, 149, 142, 137, 139, 143, 135, 151, 134, 138, 137, 144, 132, 147, 146, 130, 136, 147, 138, 138, 135, 135, 136, 133, 140, 134, 137, 127, 142, 134, 141, 137, 141, 136, 134, 147, 136, 141, 144, 136, 138, 135, 141, 136, 145, 132, 142, 145, 137, 137, 140, 128, 139, 146, 141, 128, 132, 143, 139, 135, 148, 138, 138, 134, 131, 139, 134, 140, 143, 138, 134, 140, 142, 137, 138, 144, 137, 136, 138, 138, 138, 136, 139, 139, 134, 141, 129, 143, 133, 138, 127, 128, 132, 146, 147, 144, 147, 145, 134, 136, 132, 140, 139, 128, 140, 141, 139, 145, 137, 127, 136, 139, 139, 135, 140, 136, 142, 141, 144, 145, 141, 138, 149, 137, 135, 144, 137, 140, 145, 143, 142, 147, 137, 143, 146, 136, 130, 134, 144, 139, 131, 131, 136, 140, 142, 137, 136, 133, 141, 143, 139, 134, 139, 149, 135, 146, 142, 137, 126, 136, 144, 142, 145, 146, 136, 139, 137, 141, 138, 147, 139, 134, 143, 135, 142, 146, 141, 144, 136, 143, 130, 138, 143, 133, 138, 142, 138, 140, 144, 138, 144, 139, 140, 133, 138, 147, 143, 129, 139, 136, 142, 145, 141, 143, 142, 136, 138, 142, 136, 137, 137, 137, 140, 144, 142, 142, 134, 146, 144, 145, 138, 131, 146, 142, 129, 144, 138, 136, 138, 147, 140, 139, 135, 149, 149, 143, 138, 143, 148, 140, 133, 135, 142, 146, 138, 138, 140, 136, 135, 133, 138, 134, 148, 142, 135, 145, 138, 135, 144, 141, 142, 150, 134, 135, 142, 134, 139, 133, 137, 139, 147, 141, 134, 138, 138, 145, 141, 142, 143, 143, 149, 138, 137, 132, 141, 139, 148, 143, 147, 138, 142, 141, 148, 137, 143, 139, 144, 136, 136, 145, 142, 146, 131, 137, 141, 139, 140, 148, 147, 135, 143, 132, 142, 139, 145, 137, 141, 134, 139, 137, 138, 135, 145, 136, 141, 138, 135, 141, 142, 140, 144, 144, 140, 140, 139, 148, 138, 145, 152, 132, 142, 136, 134, 139, 140, 146, 140, 144, 138, 132, 145, 124, 147, 143, 142, 135, 137, 138, 149, 143, 144, 144, 143, 143, 137, 148, 146, 141, 139, 144, 142, 132, 132, 140, 133, 137, 141, 131, 142, 137, 137, 147, 138, 139, 141, 141, 132, 145, 144, 139, 144, 149, 136, 145, 143, 139, 134, 139, 144, 131, 140, 144, 135, 143, 134, 136, 144, 138, 132, 143, 144, 142, 141, 136, 136, 141, 144, 145, 139, 144, 138, 132, 134, 144, 145, 138, 130, 143, 130, 132, 140, 127, 145, 134, 144, 147, 140, 138, 136, 148, 136, 142, 142, 135, 138, 140, 140, 144, 139, 146, 138, 145, 141, 135, 145, 134, 146, 149, 148, 126, 137, 134, 148, 141, 140, 138, 140, 137, 144, 138, 141, 134, 142, 147, 146, 142, 146, 149, 137, 135, 137, 137, 141, 132, 139, 122, 142, 142, 138, 136, 131, 141, 133, 136, 140, 136, 128, 135, 131, 139, 147, 142, 136, 134, 132, 147, 140, 139, 140, 151, 132, 147, 140, 147, 137, 143, 143, 133, 136, 139, 136, 144, 138, 151, 142, 132, 141, 138, 144, 134, 135, 142, 164, 135, 144, 139, 132, 138, 137, 140, 151, 142, 139, 136, 145, 135, 136, 133, 156, 136, 141, 133, 133, 144, 138, 133, 130, 146, 127, 131, 145, 129, 133, 155, 130, 134, 141, 141, 134, 133, 144, 145, 140, 139, 142, 145, 141, 124, 136, 140, 135, 139, 132, 143, 138, 141, 145, 149, 144, 134, 140, 134, 138, 134, 138, 136, 145, 142, 137, 140, 140, 143, 139, 140, 143, 138, 142, 146, 134, 145, 149, 147, 143, 141, 144, 142, 140, 140, 137, 135, 132, 135, 139, 139, 139, 137, 146, 142, 136, 139, 140, 128, 135, 131, 142, 147, 140, 150, 145, 139, 146, 136, 146, 139, 148, 139, 139, 138, 145, 130, 139, 142, 136, 144, 139, 132, 137, 139, 147, 140, 133, 140, 139, 126, 130, 142, 137, 138, 142, 135, 133, 140, 141, 144, 126, 136, 139, 141, 134, 150, 147, 139, 144, 136, 142, 143, 135, 138, 141, 147, 133, 148, 139, 133, 131, 141, 145, 140, 140, 134, 143, 140, 137, 134, 147, 147, 140, 132, 137, 137, 142, 142, 134, 136, 135, 133, 142, 136, 132, 132, 132, 146, 135, 145, 135, 142, 136, 133, 145, 139, 134, 139, 136, 143, 137, 131, 141, 130, 146, 137, 148, 138, 132, 137, 139, 143, 133, 143, 139, 141, 137, 148, 138, 144, 135, 132, 134, 133, 139, 144, 130, 137, 145, 134, 134, 135, 132, 135, 141, 138, 139, 141, 143, 139, 139, 139, 139, 145, 143, 138, 137, 135, 136, 132, 144, 142, 132, 140, 126, 137, 135, 137, 143, 145, 134, 137, 135, 135, 144, 136, 132, 142, 139, 147, 143, 143, 135, 134, 136, 134, 140, 141, 143, 140, 145, 142, 142, 141, 139, 145, 140, 141, 138, 134, 140, 135, 137, 127, 139, 137, 133, 139, 138, 132, 138, 139, 132, 137, 137, 141, 127, 139, 142, 134, 130, 136, 131, 139, 143, 135, 145, 137, 137, 146, 144, 143, 134, 158, 161, 140, 130, 142, 132, 142, 137, 139, 138, 135, 147, 139, 135, 135, 145, 136, 140, 135, 139, 143, 139, 141, 138, 133, 131, 141, 141, 131, 136, 135, 135, 137, 142, 142, 141, 138, 135, 148, 133, 142, 138, 138, 134, 141, 136, 138, 143, 136, 137, 141, 138, 128, 139, 139, 129, 140, 142, 143, 143, 134, 139, 137, 139, 128, 141, 139, 138, 145, 142, 142, 132, 144, 140, 141, 138, 136, 142, 140, 142, 138, 145, 140, 138, 140, 138, 135, 140, 146, 136, 142, 144, 142, 142, 133, 142, 141, 137, 143, 140, 138, 138, 138, 138, 143, 137, 152, 152, 136, 143, 136, 139, 140, 138, 139, 143, 138, 146, 138, 148, 137, 131, 140, 139, 139, 138, 141, 141, 134, 133, 145, 140, 137, 137, 141, 135, 136, 137, 142, 130, 140, 142, 131, 137, 143, 141, 139, 136, 141, 140, 139, 138, 136, 146, 139, 153, 138, 143, 142, 139, 141, 137, 137, 130, 132, 147, 139, 128, 137, 140, 129, 129, 138, 136, 140, 141, 150, 137, 132, 140, 139, 135, 135, 138, 143, 133, 141, 137, 143, 140, 147, 143, 134, 140, 131, 145, 138, 140, 139, 144, 138, 137, 135, 136, 137, 141, 141, 137, 142, 142, 137, 133, 145, 145, 130, 133, 136, 140, 139, 139, 132, 136, 137, 139, 140, 137, 135, 132, 138, 126, 130, 144, 145, 142, 136, 142, 142, 139, 139, 136, 127, 140, 131, 141, 141, 141, 132, 141, 133, 141, 140, 141, 138, 133, 142, 133, 136, 138, 143, 149, 131, 133, 140, 138, 135, 135, 141, 136, 139, 147, 143, 134, 136, 141, 140, 140, 140, 137, 151, 139, 139, 132, 140, 137, 135, 141, 131, 136, 144, 143, 128, 133, 141, 140, 142, 137, 143, 135, 144, 134, 140, 138, 144, 139, 136, 135, 128, 148, 133, 144, 143, 139, 139, 149, 133, 149, 130, 134, 145, 137, 140, 140, 133, 134, 148, 133, 141, 136, 126, 140, 131, 134, 140, 143, 130, 141, 131, 139, 135, 142, 143, 145, 145, 145, 141, 132, 136, 135, 145, 149, 137, 144, 137, 136, 144, 136, 144, 136, 137, 138, 131, 141, 136, 137, 131, 129, 140, 137, 121, 153, 139, 138, 132, 134, 141, 135, 151, 128, 141, 127, 138, 141, 133, 137, 134, 140, 136, 136, 126, 136, 134, 133, 141, 140, 138, 144, 142, 134, 140, 140, 133, 136, 137, 137, 137, 141, 136, 131, 136, 140, 141, 142, 142, 140, 137, 158, 135, 135, 137, 136, 130, 129, 136, 145, 141, 139, 137, 138, 139, 149, 149, 134, 140, 130, 146, 131, 139, 143, 134, 144, 136, 144, 142, 150, 135, 132, 139, 135, 145, 140, 129, 142, 134, 137, 147, 133, 139, 141, 146, 137, 137, 135, 142, 137, 146, 140, 143, 134, 141, 145, 143, 133, 140, 137, 145, 143, 135, 139, 134, 143, 143, 141, 148, 139, 141, 142, 142, 141, 135, 144, 134, 146, 144, 134, 139, 137, 145, 136, 144, 141, 144, 141, 137, 142, 137, 126, 136, 133, 130, 141, 139, 132, 149, 139, 136, 142, 139, 144, 137, 139, 131, 142, 138, 137, 140, 136, 136, 140, 138, 135, 141, 137, 140, 137, 142, 139, 132, 140, 137, 143, 134, 147, 132, 138, 134, 145, 139, 133, 130, 137, 138, 146, 137, 141, 124, 145, 148, 133, 136, 144, 146, 133, 136, 130, 149, 140, 138, 136, 138, 139, 144, 140, 136, 132, 139, 138, 142, 140, 141, 139, 134, 135, 133, 136, 142, 135, 146, 140, 137, 140, 140, 139, 139, 144, 136, 133, 138, 143, 137, 134, 136, 146, 138, 147, 139, 132, 136, 138, 145, 134, 143, 145, 145, 132, 134, 136, 138, 132, 143, 138, 125, 142, 133, 143, 140, 138, 140, 132, 137, 147, 135, 136, 140, 138, 139, 140, 140, 152, 145, 141, 135, 144, 134, 144, 145, 147, 148, 146, 132, 134, 137, 135, 141, 140, 134, 136, 142, 140, 140, 138, 137, 144, 142, 137, 141, 137, 128, 139, 151, 144, 132, 132, 136, 138, 142, 145, 137, 137, 136, 126, 144, 136, 137, 131, 145, 133, 147, 133, 131, 139, 137, 142, 135, 142, 137, 141, 144, 140, 138, 137, 142, 141, 140, 147, 143, 136, 146, 142, 142, 131, 143, 141, 137, 132, 134, 147, 140, 143, 140, 144, 121, 139, 141, 149, 142, 137, 140, 147, 132, 127, 148, 139, 141, 149, 141, 132, 135, 141, 135, 136, 133, 142, 139, 142, 138, 140, 146, 142, 148, 133, 148, 137, 127, 143, 131, 137, 129, 137, 139, 138, 144, 140, 135, 139, 134, 137, 142, 136, 143, 140, 140, 144, 140, 136, 133, 141, 136, 145, 137, 133, 131, 148, 144, 128, 153, 136, 124, 138, 135, 144, 142, 133, 136, 147, 141, 138, 141, 137, 140, 138, 139, 140, 133, 143, 136, 138, 140, 143, 152, 145, 141, 136, 141, 135, 137, 141, 135, 136, 137, 135, 143, 134, 140, 136, 142, 146, 141, 138, 127, 142, 139, 144, 145, 133, 145, 131, 142, 141, 138, 138, 143, 145, 128, 130, 142, 139, 143, 132, 131, 139, 138, 138, 133, 140, 141, 143, 137, 136, 149, 141, 137, 142, 145, 133, 138, 139, 132, 135, 137, 139, 139, 142, 149, 136, 135, 137, 139, 128, 137, 130, 144, 141, 144, 138, 137, 139, 132, 141, 135, 140, 144, 138, 136, 145, 142, 134, 138, 149, 137, 134, 130, 141, 135, 132, 145, 142, 138, 136, 139, 138, 145, 136, 143, 129, 137, 143, 133, 136, 138, 135, 139, 147, 135, 137, 155, 138, 144, 135, 141, 132, 140, 136, 143, 132, 144, 135, 134, 137, 130, 132, 143, 132, 141, 145, 140, 144, 145, 147, 139, 139, 133, 141, 128, 142, 146, 131, 130, 145, 140, 139, 138, 151, 141, 139, 143, 145, 144, 135, 140, 148, 138, 135, 135, 134, 141, 135, 140, 141, 143, 140, 147, 141, 154, 140, 136, 145, 128, 134, 146, 136, 130, 138, 139, 145, 139, 136, 142, 137, 138, 139, 130, 150, 142, 142, 139, 138, 133, 145, 141, 143, 132, 136, 137, 140, 143, 147, 141, 137, 138, 141, 139, 142, 143, 135, 128, 140, 136, 140, 137, 140, 130, 138, 141, 141, 139, 139, 132, 144, 145, 142, 134, 141, 140, 147, 139, 140, 137, 139, 136, 144, 137, 140, 144, 139, 142, 146, 138, 130, 137, 134, 137, 139, 136, 139, 129, 140, 140, 153, 137, 126, 135, 144, 139, 137, 142, 138, 150, 142, 142, 136, 147, 132, 131, 153, 135, 129, 135, 137, 131, 143, 135, 138, 139, 137, 137, 130, 134, 131, 142, 134, 143, 144, 139, 140, 139, 136, 149, 132, 135, 137, 135, 131, 143, 147, 132, 132, 138, 135, 141, 137, 140, 135, 138, 141, 137, 144, 140, 145, 140, 133, 144, 137, 139, 137, 134, 139, 141, 146, 137, 139, 133, 139, 138, 143, 142, 145, 136, 140, 140, 138, 135, 141, 143, 134, 130, 145, 138, 130, 152, 135, 142, 132, 137, 149, 136, 135, 146, 142, 139, 142, 147, 147, 132, 144, 139, 147, 126, 134, 137, 146, 139, 131, 140, 140, 129, 132, 139, 136, 135, 136, 136, 149, 141, 133, 146, 137, 134, 153, 138, 136, 138, 141, 145, 145, 141, 145, 147, 141, 134, 141, 150, 140, 146, 143, 139, 142, 141, 148, 144, 131, 140, 136, 145, 142, 131, 145, 136, 150, 135, 138, 150, 132, 135, 144, 141, 142, 140, 142, 127, 145, 144, 143, 139, 134, 149, 141, 137, 143, 140, 135, 134, 148, 132, 133, 141, 138, 142, 136, 144, 146, 141, 147, 129, 139, 135, 134, 137, 140, 140, 135, 141, 132, 141, 147, 146, 133, 147, 144, 126, 135, 140, 140, 136, 133, 144, 135, 138, 140, 144, 142, 136, 136, 145, 140, 135, 136, 134, 141, 134, 139, 146, 149, 131, 143, 126, 138, 136, 144, 137, 141, 137, 138, 143, 136, 142, 137, 133, 140, 137, 141, 136, 141, 150, 133, 137, 137, 140, 142, 145, 136, 143, 145, 140, 149, 139, 143, 135, 139, 132, 138, 139, 143, 133, 142, 139, 147, 137, 142, 141, 134, 139, 142, 136, 133, 145, 133, 134, 133, 151, 149, 145, 147, 141, 132, 143, 146, 136, 140, 142, 142, 146, 132, 136, 132, 123, 138, 136, 139, 138, 139, 140, 156, 133, 144, 138, 142, 132, 136, 135, 139, 142, 130, 129, 153, 145, 136, 140, 139, 142, 134, 152, 136, 146, 155, 141, 135, 132, 138, 146, 130, 129, 143, 135, 135, 139, 137, 129, 141, 140, 128, 134, 140, 141, 145, 136, 148, 139, 139, 136, 139, 143, 131, 140, 138, 139, 138, 133, 136, 142, 142, 148, 148, 141, 139, 141, 138, 139, 131, 128, 134, 132, 136, 141, 143, 142, 133, 142, 140, 137, 137, 145, 133, 137, 132, 146, 131, 133, 139, 143, 132, 142, 137, 142, 131, 146, 136, 138, 139, 137, 139, 146, 143, 147, 147, 133, 145, 133, 122, 139, 140, 144, 135, 137, 145, 136, 134, 133, 132, 146, 130, 129, 137, 140, 141, 141, 147, 134, 136, 137, 139, 144, 141, 132, 137, 135, 144, 141, 129, 136, 135, 140, 133, 140, 138, 150, 136, 146, 135, 133, 138, 144, 132, 142, 138, 147, 136, 142, 133, 143, 131, 140, 136, 129, 134, 134, 139, 136, 131, 144, 134, 143, 141, 144, 136, 139, 147, 135, 133, 123, 135, 146, 145, 141, 140, 138, 143, 136, 138, 133, 144, 140, 136, 141, 139, 139, 139, 135, 141, 131, 134, 144, 139, 132, 134, 140, 134, 148, 140, 140, 145, 142, 141, 141, 133, 130, 143, 140, 138, 142, 137, 152, 144, 135, 136, 130, 142, 145, 129, 145, 136, 135, 135, 136, 128, 145, 140, 147, 135, 137, 142, 134, 140, 138, 145, 135, 133, 137, 148, 128, 147, 139, 134, 139, 133, 136, 136, 144, 148, 137, 134, 128, 132, 143, 151, 133, 137, 140, 142, 134, 138, 138, 139, 143, 144, 142, 144, 131, 137, 139, 133, 137, 144, 146, 135, 129, 147, 135, 135, 140, 146, 138, 143, 137, 138, 141, 131, 136, 141, 130, 138, 140, 138, 134, 130, 134, 130, 138, 140, 136, 147, 139, 133, 144, 135, 142, 138, 140, 135, 142, 139, 142, 144, 136, 133, 149, 137, 150, 134, 138, 143, 143, 134, 133, 137, 142, 138, 148, 133, 131, 143, 147, 132, 136, 136, 141, 134, 141, 147, 135, 139, 138, 141, 137, 136, 143, 138, 150, 133, 139, 139, 142, 143, 133, 146, 141, 136, 135, 136, 143, 136, 145, 134, 137, 132, 128, 136, 135, 134, 130, 136, 144, 145, 151, 134, 147, 146, 135, 136, 141, 144, 139, 141, 143, 151, 143, 141, 139, 146, 134, 145, 132, 134, 132, 137, 137, 139, 134, 134, 137, 145, 141, 142, 133, 121, 137, 152, 141, 133, 134, 143, 143, 136, 137, 138, 138, 131, 140, 143, 133, 142, 142, 136, 139, 134, 136, 139, 139, 145, 137, 127, 139, 148, 132, 142, 129, 134, 135, 141, 138, 135, 139, 138, 137, 135, 141, 134, 142, 137, 139, 134, 134, 131, 149, 136, 133, 139, 143, 137, 137, 135, 132, 142, 141, 131, 129, 140, 140, 138, 135, 142, 145, 134, 136, 149, 136, 135, 140, 132, 141, 144, 139, 137, 139, 144, 141, 141, 136, 154, 142, 144, 153, 132, 136, 135, 134, 143, 130, 134, 142, 139, 137, 151, 135, 131, 146, 147, 141, 137, 140, 136, 135, 135, 144, 132, 133, 136, 132, 131, 131, 129, 146, 141, 143, 139, 134, 146, 138, 137, 132, 146, 139, 136, 150, 146, 137, 145, 140, 140, 147, 138, 139, 140, 135, 134, 143, 140, 138, 140, 142, 133, 142, 131, 131, 135, 145, 148, 145, 142, 136, 137, 138, 134, 136, 139, 140, 135, 153, 148, 135, 137, 142, 141, 138, 146, 139, 139, 127, 139, 132, 147, 141, 134, 134, 143, 135, 151, 134, 126, 135, 136, 138, 132, 133, 135, 144, 134, 132, 137, 143, 145, 144, 136, 140, 150, 139, 126, 130, 140, 140, 140, 136, 135, 137, 134, 140, 135, 138, 139, 138, 137, 144, 136, 133, 143, 134, 139, 145, 141, 148, 137, 142, 129, 132, 141, 134, 136, 137, 149, 124, 132, 147, 122, 136, 133, 136, 136, 127, 141, 136, 147, 141, 136, 135, 137, 140, 131, 135, 135, 139, 153, 142, 138, 139, 130, 141, 135, 142, 147, 137, 136, 138, 140, 147, 140, 138, 139, 136, 134, 142, 134, 142, 143, 129, 138, 133, 135, 133, 136, 133, 130, 144, 128, 141, 138, 144, 131, 139, 140, 145, 146, 140, 135, 141, 134, 131, 134, 132, 136, 138, 134, 125, 141, 134, 135, 153, 135, 142, 141, 138, 137, 141, 131, 131, 153, 146, 139, 142, 140, 136, 135, 139, 144, 136, 141, 129, 135, 139, 138, 138, 131, 148, 138, 141, 137, 139, 139, 135, 134, 130, 138, 144, 142, 142, 142, 136, 148, 138, 146, 135, 134, 143, 133, 138, 138, 142, 150, 138, 140, 133, 144, 137, 135, 135, 143, 137, 137, 139, 139, 141, 131, 139, 144, 140, 135, 150, 146, 136, 130, 143, 140, 138, 153, 141, 141, 136, 142, 138, 135, 139, 139, 139, 135, 139, 140, 136, 145, 138, 139, 136, 136, 144, 126, 131, 133, 133, 137, 144, 141, 141, 147, 145, 138, 144, 142, 138, 135, 143, 139, 134, 142, 131, 144, 132, 143, 153, 136, 145, 137, 144, 136, 139, 141, 152, 136, 141, 150, 137, 148, 137, 141, 137, 139, 137, 147, 130, 144, 145, 128, 142, 135, 140, 126, 138, 139, 141, 142, 141, 134, 143, 140, 138, 142, 136, 133, 141, 136, 140, 136, 139, 144, 135, 139, 128, 128, 138, 137, 135, 141, 144, 137, 141, 137, 134, 141, 136, 137, 150, 141, 140, 137, 138, 133, 135, 141, 148, 139, 142, 139, 141, 136, 119, 133, 137, 135, 139, 136, 142, 136, 132, 142, 132, 145, 140, 143, 144, 136, 141, 139, 138, 138, 135, 141, 131, 138, 141, 137, 133, 135, 144, 135, 148, 138, 135, 150, 139, 142, 147, 136, 148, 136, 125, 145, 141, 143, 132, 136, 145, 140, 136, 134, 134, 135, 143, 138, 147, 144, 134, 137, 148, 144, 141, 131, 142, 140, 137, 140, 141, 141, 137, 136, 143, 136, 139, 147, 138, 145, 137, 142, 135, 141, 136, 140, 133, 138, 142, 143, 140, 127, 143, 143, 139, 131, 141, 142, 142, 135, 136, 136, 151, 130, 133, 144, 142, 142, 133, 145, 136, 137, 139, 137, 140, 139, 140, 145, 141, 128, 136, 134, 131, 145, 135, 134, 135, 131, 138, 137, 133, 147, 140, 145, 134, 144, 157, 138, 141, 148, 139, 143, 145, 135, 141, 147, 135, 144, 145, 138, 146, 129, 134, 139, 140, 141, 143, 123, 137, 152, 146, 140, 140, 133, 144, 133, 139, 140, 133, 139, 139, 137, 142, 138, 139, 135, 144, 149, 139, 137, 144, 131, 132, 146, 133, 128, 139, 144, 140, 134, 135, 133, 138, 142, 140, 144, 140, 142, 141, 128, 142, 138, 144, 129, 139, 144, 141, 139, 139, 142, 134, 137, 137, 140, 146, 134, 141, 148, 138, 138, 143, 139, 142, 140, 145, 139, 138, 136, 137, 142, 141, 141, 145, 150, 146, 143, 122, 141, 136, 135, 138, 147, 138, 145, 139, 145, 141, 140, 137, 135, 128, 145, 126, 135, 137, 133, 140, 139, 139, 140, 145, 140, 146, 127, 145, 140, 136, 152, 126, 132, 145, 142, 140, 136, 141, 135, 136, 141, 127, 130, 132, 139, 140, 150, 132, 142, 141, 145, 137, 142, 144, 136, 133, 142, 145, 138, 142, 127, 139, 136, 141, 141, 141, 133, 152, 146, 147, 130, 138, 134, 141, 141, 140, 142, 141, 133, 137, 142, 132, 141, 143, 141, 130, 131, 140, 134, 134, 129, 146, 136, 144, 137, 136, 134, 139, 144, 143, 131, 140, 145, 145, 146, 134, 135, 144, 136, 135, 141, 129, 138, 139, 133, 139, 141, 141, 138, 149, 149, 150, 140, 142, 140, 141, 144, 140, 146, 139, 138, 142, 143, 130, 141, 142, 135, 142, 138, 137, 139, 136, 139, 141, 139, 136, 134, 138, 139, 131, 141, 135, 139, 143, 140, 140, 123, 134, 139, 141, 129, 145, 143, 138, 142, 143, 139, 139, 140, 136, 139, 144, 139, 130, 135, 136, 141, 147, 138, 133, 139, 130, 144, 146, 134, 145, 138, 140, 137, 134, 144, 134, 135, 137, 132, 147, 134, 133, 139, 132, 140, 128, 136, 143, 138, 149, 136, 137, 134, 139, 144, 135, 142, 147, 145, 137, 139, 136, 136, 135, 142, 148, 137, 143, 143, 140, 138, 141, 143, 136, 135, 136, 140, 149, 134, 145, 145, 140, 149, 149, 133, 135, 131, 138, 137, 146, 141, 139, 140, 139, 147, 137, 135, 143, 134, 147, 143, 135, 136, 146, 134, 136, 135, 139, 140, 145, 134, 144, 142, 138, 137, 147, 144, 133, 139, 141, 142, 137, 135, 142, 143, 141, 135, 136, 145, 135, 145, 139, 141, 137, 138, 144, 137, 138, 141, 138, 147, 137, 139, 134, 130, 140, 136, 135, 148, 140, 138, 149, 139, 136, 141, 138, 137, 141, 148, 138, 132, 142, 135, 143, 136, 136, 138, 139, 133, 141, 135, 151, 131, 133, 137, 132, 144, 134, 136, 140, 139, 139, 142, 135, 137, 141, 142, 140, 139, 146, 138, 139, 142, 145, 138, 143, 143, 138, 134, 142, 138, 137, 138, 146, 137, 134, 128, 141, 141, 137, 135, 137, 137, 140, 136, 143, 132, 142, 136, 133, 137, 136, 140, 139, 144, 125, 140, 144, 136, 147, 135, 134, 139, 134, 140, 138, 138, 138, 141, 135, 137, 132, 138, 133, 139, 143, 141, 142, 124, 142, 142, 142, 149, 134, 140, 145, 141, 133, 131, 143, 138, 132, 140, 141, 141, 138, 145, 138, 140, 147, 138, 140, 137, 138, 137, 131, 142, 140, 131, 140, 132, 138, 131, 129, 132, 143, 135, 146, 142, 144, 131, 145, 136, 137, 137, 134, 140, 136, 143, 147, 145, 142, 139, 144, 137, 144, 141, 134, 146, 144, 148, 145, 137, 141, 134, 127, 133, 143, 140, 138, 144, 136, 142, 134, 139, 147, 142, 141, 137, 142, 134, 142, 136, 138, 137, 141, 132, 142, 138, 135, 138, 145, 142, 140, 136, 133, 143, 141, 135, 132, 148, 145, 142, 135, 134, 143, 144, 133, 137, 136, 133, 146, 145, 142, 136, 140, 147, 133, 147, 131, 139, 130, 137, 145, 137, 149, 136, 136, 142, 133, 141, 138, 146, 141, 152, 146, 141, 139, 143, 127, 138, 139, 142, 143, 134, 133, 143, 135, 133, 137, 134, 143, 146, 143, 132, 137, 147, 142, 136, 147, 144, 135, 144, 127, 136, 137, 136, 142, 140, 144, 149, 130, 134, 141, 147, 127, 132, 135, 137, 135, 138, 135, 149, 138, 141, 139, 143, 147, 132, 147, 147, 136, 129, 137, 134, 142, 138, 141, 145, 144, 132, 142, 136, 135, 126, 138, 146, 141, 143, 139, 151, 142, 133, 144, 138, 132, 137, 139, 142, 142, 143, 141, 147, 143, 138, 137, 134, 140, 142, 141, 129, 144, 139, 133, 138, 134, 148, 138, 142, 138, 141, 138, 146, 141, 141, 143, 144, 137, 137, 141, 143, 143, 133, 136, 144, 137, 137, 136, 136, 139, 136, 134, 135, 139, 128, 142, 131, 137, 136, 138, 143, 137, 138, 139, 147, 135, 135, 138, 138, 138, 133, 135, 139, 140, 150, 143, 138, 133, 144, 135, 137, 147, 139, 133, 132, 134, 142, 136, 135, 135, 136, 140, 135, 146, 135, 133, 148, 143, 141, 141, 138, 146, 142, 143, 130, 136, 139, 132, 140, 138, 144, 148, 130, 141, 140, 142, 142, 142, 141, 137, 131, 139, 135, 133, 136, 136, 138, 134, 142, 147, 134, 144, 143, 135, 134, 139, 141, 141, 136, 145, 147, 131, 136, 141, 143, 130, 145, 134, 144, 134, 141, 135, 141, 141, 130, 138, 126, 141, 133, 128, 145, 143, 142, 140, 143, 137, 142, 133, 136, 136, 140, 140, 148, 141, 144, 136, 142, 138, 134, 141, 138, 136, 137, 143, 134, 136, 144, 153, 136, 129, 136, 141, 129, 136, 140, 135, 133, 133, 143, 134, 132, 136, 146, 134, 142, 138, 133, 141, 141, 142, 138, 138, 142, 147, 143, 145, 143, 148, 147, 142, 131, 143, 137, 146, 140, 142, 131, 140, 138, 143, 137, 135, 144, 133, 144, 143, 128, 142, 142, 144, 141, 139, 138, 135, 137, 137, 146, 134, 135, 145, 143, 152, 133, 138, 140, 147, 143, 143, 133, 141, 141, 145, 137, 140, 136, 129, 137, 142, 146, 133, 136, 141, 135, 143, 138, 136, 134, 134, 149, 136, 136, 135, 131, 135, 143, 142, 135, 134, 144, 142, 138, 138, 139, 139, 142, 137, 143, 140, 136, 142, 137, 132, 140, 141, 135, 133, 137, 132, 139, 135, 141, 128, 137, 142, 145, 151, 148, 142, 133, 141, 135, 146, 139, 142, 143, 140, 133, 148, 133, 139, 144, 134, 142, 138, 143, 134, 140, 137, 137, 137, 140, 143, 134, 150, 139, 137, 143, 141, 123, 140, 136, 136, 133, 137, 151, 143, 142, 146, 146, 137, 136, 135, 153, 141, 135, 140, 139, 140, 143, 135, 134, 135, 138, 145, 134, 154, 149, 132, 140, 139, 142, 140, 148, 134, 137, 149, 138, 131, 135, 148, 139, 138, 139, 139, 138, 136, 143, 135, 142, 146, 146, 134, 137, 145, 141, 140, 140, 138, 142, 131, 126, 138, 141, 135, 141, 136, 141, 136, 142, 131, 137, 137, 139, 146, 142, 143, 133, 136, 144, 145, 137, 136, 137, 141, 143, 140, 135, 132, 140, 139, 137, 134, 139, 140, 148, 138, 139, 139, 138, 144, 152, 144, 141, 138, 135, 137, 138, 135, 135, 135, 133, 143, 135, 146, 140, 134, 142, 139, 140, 138, 138, 138, 128, 147, 139, 142, 133, 141, 134, 144, 150, 141, 137, 141, 141, 146, 135, 137, 138, 140, 137, 139, 130, 135, 140, 137, 140, 130, 137, 140, 136, 141, 145, 134, 137, 140, 135, 139, 133, 139, 143, 138, 147, 141, 144, 144, 147, 141, 143, 131, 135, 133, 136, 136, 137, 139, 144, 141, 141, 144, 139, 146, 137, 132, 144, 137, 132, 132, 140, 142, 137, 137, 147, 129, 138, 147, 141, 139, 143, 138, 134, 133, 134, 139, 144, 136, 140, 135, 138, 140, 144, 135, 138, 140, 144, 135, 138, 145, 139, 141, 146, 141, 142, 137, 140, 137, 144, 134, 140, 139, 140, 138, 134, 137, 134, 140, 135, 134, 135, 149, 143, 140, 139, 139, 145, 135, 137, 145, 137, 140, 139, 133, 135, 135, 137, 135, 141, 136, 139, 144, 140, 139, 140, 141, 139, 144, 137, 143, 139, 136, 138, 143, 136, 140, 140, 143, 139, 137, 143, 137, 134, 149, 144, 137, 136, 134, 138, 132, 143, 142, 143, 147, 143, 136, 139, 140, 139, 148, 142, 143, 130, 134, 148, 143, 146, 142, 147, 156, 145, 132, 135, 119, 137, 135, 131, 141, 140, 140, 138, 139, 146, 147, 144, 141, 137, 139, 128, 138, 134, 147, 141, 141, 142, 141, 142, 133, 143, 137, 144, 135, 144, 140, 136, 144, 146, 139, 147, 142, 133, 138, 137, 138, 134, 141, 130, 142, 141, 135, 143, 142, 140, 143, 140, 136, 130, 136, 128, 135, 139, 144, 130, 144, 138, 132, 147, 139, 140, 131, 137, 141, 130, 140, 139, 146, 140, 142, 140, 140, 134, 133, 134, 139, 128, 140, 137, 141, 138, 143, 144, 130, 134, 140, 140, 126, 141, 147, 151, 141, 146, 141, 142, 140, 138, 136, 132, 140, 137, 134, 134, 132, 145, 138, 146, 150, 142, 146, 130, 136, 153, 145, 138, 136, 133, 134, 142, 137, 139, 148, 133, 136, 134, 137, 135, 133, 141, 142, 140, 147, 133, 144, 138, 143, 140, 152, 142, 143, 136, 133, 142, 138, 140, 135, 142, 135, 136, 140, 136, 137, 132, 138, 143, 132, 146, 133, 149, 145, 142, 139, 141, 139, 131, 137, 140, 133, 143, 136, 135, 135, 133, 142, 143, 141, 132, 137, 136, 131, 139, 137, 134, 139, 137, 147, 136, 141, 147, 134, 140, 142, 132, 136, 144, 140, 140, 132, 148, 140, 137, 142, 136, 145, 141, 145, 133, 144, 137, 136, 135, 139, 140, 139, 135, 134, 133, 138, 141, 130, 141, 135, 135, 141, 144, 143, 135, 129, 139, 138, 141, 151, 129, 137, 134, 135, 141, 147, 133, 130, 142, 139, 149, 138, 145, 129, 147, 139, 137, 129, 141, 144, 134, 138, 132, 128, 135, 135, 148, 132, 148, 144, 131, 138, 149, 141, 132, 137, 128, 138, 136, 135, 134, 141, 129, 139, 141, 139, 138, 127, 142, 135, 143, 138, 136, 134, 144, 147, 138, 146, 138, 137, 143, 142, 135, 137, 137, 139, 132, 144, 143, 136, 141, 137, 138, 137, 140, 142, 143, 137, 129, 138, 139, 132, 137, 145, 134, 143, 146, 143, 138, 129, 142, 137, 143, 130, 137, 126, 130, 144, 132, 137, 139, 148, 143, 135, 142, 133, 141, 145, 135, 145, 147, 137, 130, 134, 138, 149, 136, 136, 133, 142, 134, 143, 135, 141, 142, 152, 141, 139, 140, 150, 145, 144, 134, 136, 139, 142, 138, 145, 140, 142, 146, 133, 139, 139, 132, 152, 133, 139, 137, 135, 146, 133, 141, 144, 127, 132, 137, 138, 143, 144, 140, 147, 133, 141, 140, 140, 153, 128, 140, 139, 141, 139, 142, 141, 142, 134, 139, 139, 141, 134, 132, 139, 140, 134, 130, 138, 139, 133, 138, 139, 139, 138, 134, 132, 143, 140, 138, 137, 139, 134, 147, 136, 133, 139, 140, 134, 138, 144, 139, 137, 138, 136, 138, 139, 141, 132, 141, 139, 138, 137, 137, 144, 138, 142, 133, 140, 140, 141, 143, 131, 136, 139, 144, 135, 153, 131, 144, 135, 135, 141, 134, 137, 143, 148, 131, 140, 132, 136, 134, 150, 129, 135, 134, 136, 147, 133, 143, 143, 135, 143, 135, 139, 128, 140, 148, 137, 132, 145, 141, 131, 137, 134, 133, 144, 131, 142, 143, 143, 143, 138, 134, 133, 137, 143, 142, 138, 146, 141, 144, 135, 144, 146, 143, 137, 143, 135, 135, 143, 138, 142, 136, 144, 142, 135, 139, 132, 140, 152, 137, 137, 140, 128, 135, 137, 135, 135, 141, 144, 139, 131, 139, 145, 132, 144, 134, 133, 138, 143, 137, 137, 134, 134, 141, 139, 136, 140, 138, 142, 144, 132, 138, 141, 144, 143, 138, 138, 140, 137, 139, 137, 132, 141, 139, 135, 144, 144, 131, 138, 137, 141, 144, 139, 132, 136, 137, 143, 140, 140, 135, 138, 136, 138, 144, 140, 148, 142, 142, 138, 139, 141, 141, 147, 141, 138, 144, 142, 134, 136, 139, 141, 141, 142, 140, 143, 149, 139, 134, 139, 138, 134, 137, 135, 135, 138, 138, 136, 141, 141, 144, 137, 142, 152, 143, 135, 143, 142, 136, 143, 140, 141, 143, 134, 137, 146, 141, 138, 142, 138, 145, 141, 134, 139, 140, 137, 137, 142, 140, 140, 142, 135, 134, 144, 133, 138, 142, 144, 139, 142, 137, 137, 134, 140, 139, 145, 134, 140, 137, 137, 140, 140, 136, 140, 136, 142, 139, 143, 139, 148, 137, 147, 136, 139, 139, 137, 143, 142, 145, 132, 142, 141, 142, 135, 140, 135, 139, 134, 139, 141, 139, 131, 138, 136, 140, 139, 139, 137, 145, 141, 138, 140, 134, 138, 137, 142, 147, 142, 138, 145, 134, 139, 140, 136, 134, 143, 147, 140, 138, 141, 140, 144, 142, 140, 137, 134, 132, 138, 141, 138, 145, 132, 135, 145, 142, 143, 140, 140, 142, 148, 149, 135, 137, 140, 139, 142, 141, 148, 136, 138, 140, 138, 136, 141, 138, 140, 141, 147, 140, 134, 142, 135, 130, 146, 138, 142, 141, 140, 138, 141, 138, 141, 142, 136, 142, 137, 131, 137, 141, 140, 133, 140, 140, 141, 148, 142, 142, 142, 134, 140, 132, 140, 142, 140, 140, 132, 136, 141, 136, 137, 139, 145, 140, 139, 135, 135, 132, 149, 137, 141, 131, 135, 144, 141, 146, 140, 141, 143, 138, 135, 134, 137, 142, 136, 134, 147, 135, 141, 147, 134, 137, 137, 142, 138, 142, 143, 135, 139, 137, 142, 138, 145, 141, 136, 139, 146, 138, 142, 142, 144, 143, 137, 139, 142, 140, 137, 134, 136, 139, 143, 134, 142, 148, 139, 140, 139, 142, 138, 138, 140, 132, 143, 138, 139, 139, 144, 138, 140, 144, 133, 144, 135, 144, 141, 131, 142, 142, 142, 139, 132, 139, 138, 141, 134, 136, 141, 136, 134, 140, 137, 136, 138, 139, 148, 136, 143, 132, 136, 142, 136, 143, 131, 142, 139, 140, 142, 133, 142, 149, 139, 146, 137, 141, 134, 144, 128, 144, 133, 143, 136, 138, 138, 136, 139, 146, 137, 134, 145, 136, 136, 137, 145, 139, 133, 140, 140, 149, 141, 139, 138, 143, 137, 136, 144, 138, 138, 137, 143, 135, 136, 139, 141, 140, 137, 145, 144, 142, 134, 143, 142, 142, 145, 139, 136, 143, 142, 136, 139, 143, 139, 142, 132, 144, 141, 139, 139, 143, 137, 140, 143, 139, 142, 139, 143, 141, 130, 137, 141, 132, 144, 139, 137, 143, 136, 141, 145, 143, 138, 142, 137, 141, 138, 135, 133, 138, 137, 144, 139, 143, 141, 140, 134, 139, 137, 139, 138, 142, 141, 139, 133, 143, 139, 138, 136, 143, 134, 143, 144, 134, 144, 139, 147, 149, 135, 145, 130, 136, 145, 135, 142, 145, 142, 135, 137, 143, 138, 129, 133, 135, 140, 142, 149, 133, 132, 138, 138, 147, 140, 144, 146, 131, 144, 147, 138, 139, 139, 140, 147, 128, 147, 141, 139, 136, 143, 147, 132, 142, 139, 135, 137, 136, 140, 144, 134, 127, 145, 140, 141, 138, 137, 132, 136, 147, 134, 143, 141, 134, 138, 148, 146, 136, 137, 132, 141, 144, 140, 141, 143, 138, 136, 136, 135, 143, 142, 142, 155, 142, 134, 125, 144, 129, 138, 135, 132, 127, 135, 133, 144, 134, 134, 132, 136, 136, 141, 138, 148, 134, 149, 138, 138, 128, 136, 129, 134, 150, 140, 128, 132, 132, 132, 139, 135, 138, 138, 146, 136, 139, 144, 135, 140, 138, 130, 136, 134, 140, 127, 147, 138, 145, 139, 138, 141, 147, 145, 138, 140, 142, 136, 137, 140, 152, 144, 134, 138, 131, 135, 132, 137, 131, 139, 134, 137, 133, 145, 140, 133, 142, 146, 137, 135, 147, 130, 138, 140, 140, 137, 136, 140, 130, 139, 141, 133, 135, 144, 152, 143, 140, 140, 127, 141, 135, 148, 146, 140, 142, 142, 141, 134, 143, 137, 142, 131, 143, 133, 134, 144, 135, 127, 134, 135, 141, 145, 136, 142, 141, 134, 136, 141, 142, 151, 144, 149, 147, 145, 144, 140, 134, 142, 142, 139, 147, 144, 137, 142, 145, 140, 136, 120, 137, 135, 147, 129, 135, 154, 149, 134, 136, 137, 139, 140, 139, 147, 141, 145, 147, 133, 136, 137, 137, 132, 139, 145, 141, 142, 146, 153, 136, 139, 144, 141, 135, 143, 143, 131, 136, 151, 141, 141, 138, 141, 143, 137, 146, 145, 137, 139, 147, 141, 140, 138, 132, 138, 150, 142, 133, 139, 141, 142, 137, 135, 141, 137, 147, 134, 134, 139, 128, 144, 135, 138, 143, 136, 139, 147, 126, 135, 134, 139, 144, 143, 147, 138, 138, 133, 141, 136, 147, 145, 136, 147, 140, 132, 128, 150, 136, 147, 145, 130, 138, 128, 146, 137, 140, 138, 137, 137, 144, 137, 142, 145, 135, 139, 139, 130, 133, 139, 143, 135, 138, 139, 136, 139, 153, 140, 131, 138, 140, 152, 139, 135, 143, 132, 138, 142, 137, 138, 140, 140, 138, 141, 129, 144, 148, 134, 143, 137, 128, 132, 139, 138, 141, 150, 138, 139, 147, 136, 145, 128, 146, 133, 128, 135, 130, 142, 135, 140, 137, 138, 144, 140, 132, 147, 139, 140, 137, 132, 148, 145, 134, 142, 147, 133, 140, 126, 143, 144, 143, 144, 142, 128, 142, 130, 131, 133, 141, 149, 143, 136, 138, 135, 139, 137, 128, 139, 139, 139, 142, 142, 134, 137, 145, 137, 144, 140, 142, 136, 145, 136, 135, 142, 146, 144, 134, 143, 133, 140, 146, 131, 133, 146, 152, 147, 143, 135, 126, 140, 144, 137, 145, 126, 142, 141, 136, 140, 139, 141, 131, 133, 146, 133, 146, 138, 132, 143, 136, 139, 139, 143, 139, 125, 145, 136, 146, 137, 145, 140, 137, 144, 157, 135, 146, 135, 136, 146, 134, 141, 135, 141, 135, 133, 137, 153, 131, 145, 148, 139, 137, 153, 135, 139, 132, 136, 147, 135, 147, 144, 132, 140, 134, 140, 142, 136, 144, 142, 132, 140, 146, 131, 144, 141, 135, 134, 130, 133, 136, 141, 139, 139, 136, 137, 147, 151, 136, 137, 141, 141, 135, 144, 142, 136, 148, 136, 145, 139, 152, 142, 137, 140, 130, 140, 136, 144, 137, 143, 144, 136, 143, 133, 136, 136, 136, 137, 135, 136, 142, 132, 142, 137, 142, 132, 130, 140, 146, 130, 156, 138, 132, 140, 136, 129, 142, 146, 140, 138, 131, 136, 138, 147, 134, 142, 145, 141, 138, 146, 137, 135, 135, 136, 145, 140, 143, 142, 148, 143, 136, 134, 139, 138, 136, 136, 143, 144, 142, 141, 134, 150, 143, 132, 139, 138, 141, 146, 138, 136, 132, 133, 149, 141, 141, 135, 134, 145, 140, 143, 142, 139, 147, 152, 141, 140, 132, 147, 144, 143, 132, 144, 139, 141, 143, 134, 137, 136, 149, 136, 147, 141, 141, 139, 136, 139, 132, 142, 138, 131, 154, 140, 135, 141, 146, 137, 142, 140, 137, 145, 137, 135, 142, 136, 142, 142, 141, 134, 134, 136, 132, 133, 153, 147, 134, 133, 146, 146, 138, 147, 144, 142, 138, 146, 138, 141, 146, 131, 133, 141, 143, 130, 138, 138, 141, 134, 146, 134, 131, 133, 131, 136, 147, 136, 123, 143, 134, 139, 122, 145, 135, 131, 147, 137, 143, 142, 145, 143, 131, 129, 140, 148, 135, 141, 136, 140, 133, 132, 137, 136, 128, 136, 142, 135, 140, 134, 143, 142, 139, 130, 137, 150, 139, 140, 140, 125, 137, 142, 138, 135, 143, 130, 144, 137, 138, 130, 142, 132, 138, 139, 141, 142, 137, 142, 134, 132, 144, 149, 136, 130, 138, 134, 141, 144, 132, 142, 139, 139, 136, 142, 131, 138, 141, 136, 136, 143, 137, 133, 133, 138, 139, 135, 134, 142, 128, 137, 137, 140, 142, 149, 136, 155, 140, 142, 139, 132, 139, 145, 136, 141, 132, 128, 145, 138, 138, 133, 131, 154, 135, 140, 135, 124, 141, 142, 146, 133, 141, 139, 136, 142, 139, 145, 145, 137, 133, 139, 142, 132, 139, 139, 143, 132, 136, 145, 143, 131, 134, 139, 144, 146, 155, 142, 136, 139, 137, 136, 136, 134, 133, 146, 145, 140, 136, 142, 136, 143, 144, 139, 132, 141, 146, 134, 144, 137, 130, 145, 146, 134, 133, 136, 139, 141, 141, 137, 133, 132, 141, 140, 129, 149, 137, 135, 136, 135, 136, 143, 143, 138, 148, 141, 135, 129, 133, 137, 138, 137, 129, 134, 140, 135, 134, 136, 135, 136, 137, 139, 127, 135, 137, 140, 137, 146, 136, 148, 142, 129, 140, 158, 133, 140, 133, 142, 141, 135, 142, 129, 141, 137, 139, 142, 128, 144, 140, 137, 135, 148, 142, 129, 138, 135, 130, 135, 139, 136, 134, 133, 144, 139, 144, 137, 139, 142, 136, 146, 135, 146, 142, 134, 141, 148, 151, 145, 135, 135, 133, 152, 140, 143, 140, 132, 139, 145, 137, 150, 142, 139, 141, 142, 138, 150, 129, 139, 130, 133, 144, 134, 129, 138, 155, 125, 125, 143, 138, 136, 126, 135, 130, 131, 133, 134, 132, 135, 136, 149, 140, 130, 148, 129, 143, 144, 132, 137, 135, 138, 166, 135, 143, 132, 127, 132, 134, 127, 121, 143, 137, 133, 144, 130, 145, 134, 152, 137, 137, 140, 138, 145, 137, 137, 145, 135, 138, 134, 137, 134, 141, 139, 143, 131, 135, 144, 143, 144, 138, 150, 139, 143, 140, 138, 135, 140, 131, 149, 136, 137, 141, 134, 135, 144, 139, 152, 145, 133, 134, 144, 151, 135, 135, 141, 135, 145, 131, 139, 138, 126, 132, 131, 149, 135, 136, 128, 150, 135, 129, 138, 134, 131, 137, 144, 137, 136, 134, 133, 137, 146, 129, 140, 136, 138, 137, 140, 135, 128, 134, 143, 142, 140, 134, 134, 136, 145, 131, 142, 134, 133, 139, 143, 116, 150, 143, 128, 144, 145, 124, 138, 136, 140, 129, 135, 139, 139, 144, 142, 137, 133, 149, 145, 139, 130, 150, 143, 159, 133, 145, 145, 148, 137, 127, 133, 138, 133, 142, 137, 148, 146, 137, 136, 154, 135, 136, 133, 149, 136, 132, 138, 132, 139, 138, 126, 137, 128, 135, 137, 139, 138, 137, 138, 137, 135, 134, 140, 129, 148, 141, 135, 139, 142, 142, 142, 141, 138, 143, 135, 126, 128, 132, 140, 148, 147, 134, 125, 137, 134, 128, 138, 137, 140, 130, 144, 134, 134, 139, 138, 140, 145, 140, 125, 142, 145, 146, 140, 136, 127, 153, 135, 137, 149, 141, 131, 135, 141, 139, 146, 139, 133, 136, 138, 137, 136, 137, 132, 136, 133, 145, 136, 135, 142, 133, 131, 142, 124, 146, 138, 136, 137, 144, 148, 143, 135, 131, 141, 146, 149, 142, 137, 136, 137, 124, 148, 130, 132, 144, 134, 144, 135, 136, 136, 138, 134, 124, 137, 149, 133, 146, 128, 135, 130, 149, 142, 143, 139, 132, 138, 140, 148, 143, 133, 140, 148, 140, 134, 145, 143, 138, 139, 131, 145, 142, 137, 134, 135, 144, 146, 139, 142, 136, 134, 133, 133, 143, 147, 138, 144, 140, 136, 137, 138, 132, 138, 148, 140, 136, 146, 136, 128, 136, 141, 140, 140, 134, 139, 149, 135, 147, 148, 131, 141, 130, 133, 131, 143, 142, 132, 138, 149, 132, 145, 136, 141, 133, 144, 147, 127, 141, 135, 136, 126, 149, 135, 138, 152, 132, 145, 140, 144, 139, 134, 145, 148, 133, 135, 131, 135, 150, 140, 140, 141, 146, 130, 136, 142, 134, 154, 139, 134, 145, 137, 149, 128, 135, 138, 139, 128, 125, 140, 130, 125, 135, 145, 139, 142, 141, 137, 154, 130, 139, 133, 149, 133, 142, 133, 150, 145, 138, 141, 152, 135, 136, 144, 141, 149, 141, 145, 139, 141, 131, 129, 149, 145, 143, 144, 134, 143, 160, 135, 127, 133, 135, 146, 135, 135, 142, 141, 139, 138, 134, 145, 143, 138, 132, 137, 136, 139, 138, 136, 141, 135, 136, 131, 126, 155, 127, 130, 145, 134, 126, 137, 140, 135, 136, 145, 140, 140, 134, 137, 140, 135, 144, 140, 137, 144, 140, 140, 139, 136, 136, 147, 142, 142, 143, 143, 140, 145, 136, 139, 143, 140, 146, 136, 136, 135, 138, 141, 139, 135, 142, 144, 143, 142, 138, 136, 132, 137, 141, 143, 134, 135, 140, 141, 135, 141, 142, 144, 142, 145, 137, 148, 138, 137, 137, 135, 143, 143, 134, 137, 143, 142, 138, 144, 136, 142, 138, 132, 138, 134, 145, 133, 136, 135, 137, 140, 132, 143, 141, 133, 141, 145, 136, 142, 142, 135, 144, 140, 134, 137, 129, 140, 137, 141, 135, 138, 149, 140, 141, 131, 139, 135, 138, 137, 139, 138, 142, 134, 137, 146, 139, 142, 141, 142, 137, 137, 139, 140, 134, 137, 131, 146, 138, 144, 135, 138, 141, 139, 140, 135, 142, 141, 136, 139, 138, 137, 140, 143, 133, 142, 138, 136, 135, 137, 136, 136, 142, 142, 137, 136, 130, 143, 139, 143, 131, 141, 143, 138, 133, 138, 140, 135, 135, 133, 128, 140, 138, 138, 138, 137, 143, 136, 135, 139, 141, 135, 139, 140, 142, 145, 147, 136, 140, 139, 137, 119, 139, 131, 137, 139, 144, 141, 144, 139, 136, 143, 145, 138, 137, 147, 139, 139, 136, 130, 140, 135, 140, 138, 142, 133, 144, 135, 144, 139, 137, 139, 136, 142, 140, 138, 137, 144, 137, 134, 139, 143, 141, 137, 142, 142, 135, 144, 132, 141, 135, 141, 141, 140, 121, 142, 133, 139, 137, 139, 140, 131, 143, 136, 140, 132, 134, 143, 143, 131, 141, 137, 133, 145, 138, 141, 140, 144, 137, 134, 133, 138, 139, 135, 138, 136, 142, 137, 135, 141, 140, 138, 144, 139, 138, 140, 143, 139, 141, 136, 141, 143, 135, 136, 140, 137, 138, 139, 140, 142, 153, 135, 139, 151, 138, 136, 136, 138, 142, 142, 140, 147, 146, 138, 140, 139, 134, 141, 139, 142, 137, 136, 139, 139, 140, 144, 134, 143, 143, 141, 136, 140, 144, 138, 140, 140, 134, 147, 138, 142, 141, 137, 141, 144, 136, 140, 141, 132, 137, 132, 134, 135, 141, 139, 150, 136, 142, 127, 141, 132, 136, 138, 140, 148, 133, 144, 136, 138, 146, 138, 138, 141, 141, 136, 142, 136, 138, 138, 136, 140, 136, 145, 136, 138, 142, 141, 137, 142, 140, 135, 129, 143, 140, 142, 137, 136, 148, 141, 127, 138, 131, 141, 140, 140, 147, 140, 134, 144, 135, 137, 137, 142, 135, 139, 144, 142, 135, 137, 143, 141, 136, 139, 141, 141, 139, 142, 136, 138, 134, 139, 142, 142, 135, 137, 147, 143, 144, 144, 140, 134, 140, 138, 142, 141, 136, 132, 136, 137, 141, 141, 139, 131, 138, 140, 140, 141, 136, 146, 143, 141, 149, 133, 140, 138, 140, 141, 141, 144, 137, 137, 139, 137, 137, 138, 135, 131, 143, 146, 137, 137, 143, 147, 138, 131, 141, 137, 141, 130, 135, 146, 145, 143, 142, 138, 142, 140, 142, 148, 142, 139, 142, 138, 138, 137, 139, 132, 129, 142, 141, 132, 131, 123, 142, 139, 132, 142, 135, 145, 138, 136, 130, 138, 136, 144, 138, 140, 138, 146, 150, 143, 123, 145, 132, 147, 144, 140, 132, 152, 134, 141, 141, 139, 135, 142, 137, 154, 133, 136, 120, 138, 118, 143, 140, 132, 140, 142, 131, 135, 145, 137, 130, 157, 134, 145, 132, 136, 139, 145, 144, 128, 145, 134, 130, 137, 130, 146, 139, 143, 140, 150, 134, 136, 133, 136, 136, 137, 138, 139, 148, 136, 140, 135, 139, 143, 135, 138, 138, 147, 147, 131, 136, 128, 134, 143, 141, 133, 131, 135, 145, 143, 138, 137, 131, 136, 135, 140, 145, 132, 162, 128, 135, 132, 139, 140, 146, 139, 149, 140, 130, 132, 136, 146, 136, 144, 131, 139, 132, 136, 139, 132, 136, 143, 144, 142, 130, 137, 140, 142, 141, 134, 133, 145, 140, 132, 126, 148, 142, 146, 142, 143, 146, 130, 136, 154, 131, 139, 144, 145, 153, 139, 150, 148, 138, 143, 137, 136, 125, 144, 141, 135, 153, 132, 141, 139, 140, 138, 136, 129, 150, 132, 146, 137, 148, 131, 127, 136, 131, 143, 133, 147, 140, 142, 144, 126, 139, 142, 157, 133, 139, 143, 152, 138, 130, 144, 135, 139, 133, 123, 140, 148, 144, 142, 137, 140, 133, 131, 141, 129, 143, 135, 138, 144, 146, 143, 130, 132, 139, 142, 129, 133, 131, 134, 133, 154, 147, 143, 141, 137, 139, 144, 148, 137, 133, 137, 143, 138, 147, 155, 138, 136, 149, 134, 132, 136, 136, 131, 145, 143, 135, 139, 134, 150, 146, 140, 141, 136, 138, 143, 140, 140, 140, 150, 139, 138, 139, 147, 130, 139, 142, 128, 153, 126, 136, 140, 144, 129, 133, 138, 154, 148, 129, 147, 128, 133, 143, 135, 144, 135, 136, 143, 128, 136, 124, 146, 149, 151, 136, 130, 133, 145, 145, 134, 136, 143, 138, 132, 147, 125, 139, 139, 134, 134, 128, 136, 149, 142, 129, 140, 145, 144, 141, 126, 143, 122, 149, 142, 131, 152, 150, 129, 134, 147, 132, 129, 141, 133, 137, 155, 149, 134, 147, 140, 135, 144, 142, 143, 127, 125, 140, 139, 124, 141, 144, 134, 135, 132, 140, 124, 138, 143, 140, 140, 138, 143, 141, 133, 137, 146, 133, 130, 124, 148, 131, 137, 143, 132, 128, 135, 141, 131, 149, 137, 129, 125, 138, 147, 144, 138, 130, 137, 138, 135, 147, 145, 128, 147, 147, 137, 141, 138, 137, 141, 133, 152, 142, 144, 141, 136, 141, 137, 123, 137, 145, 139, 137, 138, 130, 133, 138, 136, 135, 136, 134, 134, 139, 138, 141, 145, 136, 147, 142, 153, 135, 147, 138, 130, 139, 137, 143, 124, 150, 137, 136, 144, 148, 137, 146, 150, 136, 130, 145, 151, 131, 139, 129, 132, 148, 126, 146, 124, 128, 139, 137, 144, 141, 149, 138, 130, 142, 151, 144, 138, 122, 140, 139, 140, 139, 143, 138, 135, 145, 139, 136, 129, 141, 141, 140, 148, 140, 151, 140, 137, 132, 134, 141, 133, 134, 142, 135, 154, 145, 137, 145, 140, 133, 138, 138, 142, 133, 141, 138, 140, 148, 138, 123, 137, 146, 135, 138, 145, 141, 142, 137, 140, 132, 147, 133, 137, 147, 139, 142, 138, 137, 137, 140, 138, 129, 125, 136, 138, 138, 139, 129, 135, 138, 135, 144, 146, 144, 148, 135, 140, 145, 148, 133, 141, 134, 141, 143, 139, 132, 144, 147, 141, 145, 143, 127, 133, 134, 138, 141, 130, 135, 141, 148, 135, 140, 132, 135, 151, 134, 136, 136, 133, 143, 150, 132, 144, 134, 135, 131, 140, 145, 130, 135, 120, 146, 143, 135, 135, 142, 138, 145, 136, 144, 143, 136, 136, 137, 141, 144, 136, 142, 139, 141, 137, 143, 136, 135, 130, 142, 127, 149, 141, 136, 141, 136, 140, 136, 139, 137, 141, 141, 145, 137, 141, 150, 134, 145, 137, 147, 130, 138, 138, 139, 144, 144, 135, 141, 138, 137, 135, 151, 136, 128, 138, 141, 142, 137, 147, 134, 137, 130, 138, 137, 135, 129, 134, 126, 131, 143, 130, 135, 137, 138, 140, 139, 151, 145, 144, 142, 137, 138, 139, 131, 131, 137, 134, 131, 141, 142, 133, 140, 139, 135, 137, 140, 136, 139, 130, 150, 144, 139, 152, 137, 142, 136, 139, 149, 150, 134, 138, 146, 145, 136, 134, 139, 124, 141, 137, 129, 144, 135, 144, 147, 142, 140, 140, 139, 146, 140, 145, 141, 141, 142, 145, 135, 139, 138, 137, 129, 140, 136, 136, 141, 151, 128, 143, 143, 134, 136, 144, 137, 143, 130, 141, 132, 131, 145, 142, 139, 142, 137, 132, 138, 147, 144, 143, 138, 129, 136, 139, 137, 150, 144, 132, 141, 141, 143, 130, 146, 147, 134, 147, 133, 140, 139, 138, 143, 136, 140, 147, 143, 139, 148, 150, 138, 133, 138, 143, 141, 144, 140, 142, 135, 143, 127, 131, 143, 129, 139, 136, 141, 140, 143, 136, 150, 135, 139, 132, 142, 139, 142, 140, 138, 128, 147, 134, 134, 141, 130, 142, 139, 138, 131, 143, 141, 142, 141, 138, 135, 138, 141, 138, 148, 134, 140, 135, 131, 135, 145, 141, 139, 143, 142, 129, 140, 138, 134, 145, 146, 133, 135, 131, 135, 126, 140, 149, 134, 131, 143, 137, 138, 134, 143, 135, 139, 138, 132, 136, 133, 145, 140, 138, 132, 133, 144, 124, 135, 130, 134, 144, 136, 136, 130, 144, 141, 133, 138, 131, 141, 141, 133, 141, 127, 150, 130, 133, 128, 138, 138, 127, 143, 140, 132, 145, 135, 138, 144, 132, 132, 140, 149, 134, 144, 140, 156, 144, 144, 138, 135, 141, 144, 134, 130, 129, 128, 128, 144, 134, 145, 153, 143, 136, 148, 139, 138, 138, 143, 140, 137, 133, 141, 130, 138, 145, 142, 140, 140, 137, 133, 135, 145, 134, 139, 131, 138, 138, 135, 139, 146, 139, 133, 139, 144, 143, 150, 140, 146, 127, 137, 147, 140, 137, 140, 134, 142, 121, 143, 130, 137, 146, 140, 138, 137, 134, 136, 140, 145, 142, 138, 142, 133, 133, 129, 131, 141, 143, 141, 135, 138, 138, 129, 146, 145, 140, 136, 143, 141, 136, 137, 143, 141, 137, 152, 132, 138, 140, 138, 145, 140, 147, 135, 141, 142, 141, 140, 150, 139, 140, 148, 143, 148, 142, 138, 146, 146, 137, 135, 141, 138, 132, 135, 142, 141, 145, 136, 140, 132, 132, 143, 135, 133, 141, 126, 135, 144, 138, 139, 140, 137, 136, 140, 143, 142, 137, 138, 134, 128, 138, 134, 145, 133, 144, 133, 134, 142, 141, 139, 133, 136, 140, 132, 132, 146, 136, 134, 133, 133, 139, 138, 137, 138, 145, 138, 133, 139, 135, 144, 141, 140, 141, 134, 140, 142, 139, 138, 145, 135, 143, 144, 137, 141, 140, 142, 137, 143, 135, 136, 143, 135, 135, 136, 141, 135, 138, 130, 137, 133, 139, 131, 144, 138, 140, 143, 142, 142, 151, 141, 137, 140, 136, 139, 135, 139, 148, 134, 136, 135, 138, 147, 139, 139, 137, 145, 137, 133, 147, 134, 148, 145, 141, 138, 133, 141, 137, 134, 135, 132, 136, 135, 139, 139, 146, 139, 141, 142, 144, 133, 139, 141, 141, 137, 136, 140, 148, 138, 134, 138, 138, 136, 138, 138, 136, 139, 137, 143, 139, 136, 148, 138, 136, 145, 141, 144, 130, 139, 144, 139, 143, 139, 138, 144, 142, 145, 139, 138, 139, 133, 140, 143, 135, 137, 135, 133, 143, 135, 136, 140, 138, 136, 137, 138, 143, 143, 143, 141, 139, 134, 145, 142, 147, 139, 140, 141, 144, 138, 131, 136, 134, 138, 141, 133, 130, 140, 137, 137, 138, 133, 140, 137, 143, 144, 139, 134, 140, 132, 135, 140, 142, 136, 139, 141, 139, 138, 141, 139, 129, 136, 134, 139, 132, 137, 136, 140, 133, 136, 139, 140, 140, 142, 135, 142, 138, 137, 142, 142, 138, 135, 129, 135, 138, 144, 133, 145, 133, 136, 147, 139, 136, 136, 136, 143, 138, 139, 146, 141, 134, 136, 143, 137, 136, 136, 143, 144, 140, 141, 144, 150, 135, 145, 136, 132, 145, 140, 134, 135, 145, 138, 148, 138, 135, 139, 135, 147, 137, 138, 133, 143, 140, 142, 147, 139, 137, 147, 151, 140, 134, 141, 144, 141, 141, 137, 133, 138, 131, 143, 141, 138, 149, 135, 136, 133, 138, 139, 139, 141, 132, 137, 144, 138, 130, 135, 135, 136, 136, 134, 135, 141, 134, 145, 135, 132, 140, 140, 138, 142, 132, 137, 123, 140, 134, 138, 141, 138, 136, 131, 141, 134, 131, 141, 133, 136, 141, 146, 142, 136, 126, 132, 139, 134, 131, 141, 142, 148, 136, 135, 135, 143, 138, 143, 135, 134, 134, 136, 138, 139, 132, 143, 141, 145, 140, 140, 141, 152, 136, 137, 144, 146, 148, 142, 138, 136, 146, 139, 137, 140, 136, 134, 135, 146, 138, 136, 137, 143, 142, 134, 135, 140, 142, 138, 137, 141, 144, 136, 146, 137, 135, 134, 136, 140, 142, 141, 141, 142, 144, 135, 135, 145, 132, 136, 138, 142, 144, 133, 131, 137, 135, 142, 139, 134, 146, 136, 146, 143, 129, 144, 131, 144, 139, 143, 136, 139, 143, 137, 140, 145, 142, 140, 140, 139, 140, 139, 140, 141, 134, 126, 142, 141, 135, 147, 140, 143, 138, 136, 137, 143, 142, 131, 142, 139, 137, 141, 134, 139, 137, 142, 135, 141, 136, 146, 140, 142, 145, 130, 147, 137, 136, 140, 135, 145, 140, 135, 133, 125, 138, 141, 131, 132, 137, 140, 133, 133, 143, 131, 133, 138, 141, 131, 149, 134, 148, 133, 135, 129, 150, 139, 143, 135, 133, 143, 140, 142, 136, 146, 141, 134, 138, 138, 142, 137, 141, 135, 142, 131, 126, 146, 145, 138, 133, 128, 138, 144, 134, 133, 137, 136, 138, 148, 135, 133, 136, 136, 141, 139, 140, 143, 139, 147, 141, 150, 137, 134, 147, 139, 132, 144, 140, 143, 140, 136, 143, 136, 138, 138, 138, 148, 138, 137, 138, 137, 133, 139, 143, 139, 146, 131, 131, 131, 143, 141, 140, 140, 142, 146, 130, 142, 140, 131, 136, 135, 127, 141, 138, 137, 132, 152, 140, 137, 143, 134, 135, 136, 140, 143, 140, 134, 141, 142, 140, 141, 141, 143, 146, 144, 139, 144, 142, 134, 139, 147, 139, 133, 146, 143, 138, 134, 137, 139, 144, 138, 136, 139, 132, 140, 140, 139, 144, 138, 135, 138, 131, 145, 132, 139, 143, 133, 135, 137, 139, 142, 139, 139, 142, 127, 137, 138, 138, 137, 136, 138, 137, 136, 153, 135, 135, 132, 147, 142, 142, 138, 139, 143, 142, 132, 141, 137, 131, 141, 136, 135, 142, 145, 143, 134, 134, 133, 138, 145, 147, 135, 140, 140, 137, 137, 137, 131, 141, 129, 142, 137, 141, 132, 140, 148, 132, 142, 135, 138, 137, 131, 135, 143, 135, 134, 130, 142, 143, 146, 132, 138, 139, 138, 140, 147, 135, 146, 132, 146, 141, 131, 129, 133, 134, 138, 142, 135, 132, 143, 138, 138, 137, 136, 145, 140, 140, 145, 146, 138, 133, 130, 135, 135, 136, 145, 134, 141, 129, 129, 148, 129, 138, 145, 141, 135, 131, 139, 143, 139, 148, 138, 136, 137, 142, 133, 136, 144, 135, 141, 144, 144, 137, 136, 136, 147, 140, 135, 143, 140, 139, 147, 141, 147, 141, 142, 132, 136, 148, 136, 132, 145, 147, 137, 143, 135, 141, 137, 133, 142, 141, 139, 139, 142, 142, 140, 136, 142, 147, 137, 140, 135, 137, 147, 137, 138, 143, 140, 137, 133, 141, 141, 139, 145, 140, 124, 129, 139, 139, 136, 146, 151, 133, 132, 151, 138, 142, 143, 134, 134, 142, 135, 143, 143, 141, 135, 141, 141, 139, 139, 130, 135, 138, 145, 145, 139, 139, 129, 135, 127, 136, 139, 126, 140, 140, 134, 126, 141, 129, 145, 134, 155, 129, 145, 139, 138, 146, 133, 142, 144, 140, 140, 142, 133, 139, 138, 133, 144, 138, 134, 140, 139, 136, 142, 136, 144, 149, 141, 138, 130, 135, 141, 139, 137, 141, 136, 137, 131, 139, 131, 131, 143, 133, 125, 144, 135, 147, 150, 133, 133, 132, 132, 142, 146, 132, 142, 145, 143, 146, 129, 139, 141, 138, 138, 141, 137, 137, 137, 132, 135, 142, 141, 145, 142, 143, 137, 140, 136, 134, 137, 137, 140, 135, 142, 138, 138, 139, 140, 135, 137, 138, 139, 142, 141, 139, 137, 140, 139, 142, 139, 137, 137, 138, 139, 139, 140, 136, 145, 142, 143, 138, 141, 140, 140, 129, 139, 140, 135, 137, 140, 142, 142, 137, 133, 139, 141, 137, 142, 143, 138, 134, 139, 143, 129, 142, 138, 137, 136, 135, 137, 138, 137, 140, 139, 140, 139, 144, 136, 145, 138, 142, 141, 139, 137, 139, 146, 139, 139, 138, 143, 141, 138, 141, 142, 140, 136, 142, 140, 136, 137, 139, 145, 138, 141, 140, 142, 136, 137, 136, 138, 137, 149, 141, 140, 143, 132, 143, 141, 138, 136, 137, 139, 138, 138, 136, 144, 143, 142, 139, 143, 142, 142, 139, 137, 135, 139, 136, 139, 147, 137, 135, 143, 142, 144, 137, 141, 141, 138, 139, 138, 145, 138, 139, 140, 134, 139, 140, 136, 135, 145, 138, 142, 138, 137, 138, 139, 136, 140, 141, 142, 142, 137, 143, 136, 141, 137, 133, 139, 141, 136, 141, 138, 143, 139, 133, 139, 139, 138, 138, 136, 135, 138, 134, 134, 140, 142, 148, 137, 145, 140, 143, 136, 136, 136, 136, 135, 146, 137, 143, 142, 138, 138, 138, 143, 137, 141, 139, 142, 142, 141, 141, 139, 138, 144, 138, 137, 137, 140, 132, 138, 137, 137, 140, 132, 139, 141, 139, 138, 138, 139, 132, 135, 136, 141, 138, 141, 140, 144, 142, 138, 138, 137, 140, 140, 140, 142, 139, 135, 138, 136, 139, 140, 140, 141, 140, 140, 140, 139, 140, 141, 136, 139, 143, 145, 139, 146, 139, 142, 135, 140, 139, 145, 139, 138, 134, 139, 137, 143, 141, 139, 140, 139, 141, 139, 145, 139, 136, 138, 139, 142, 134, 140, 136, 139, 139, 136, 135, 135, 131, 143, 137, 137, 142, 146, 135, 138, 139, 138, 141, 138, 138, 138, 142, 138, 141, 141, 136, 139, 144, 140, 140, 140, 134, 140, 139, 137, 137, 143, 144, 140, 137, 137, 136, 140, 143, 134, 142, 137, 137, 136, 137, 139, 140, 140, 137, 133, 138, 139, 138, 140, 139, 143, 144, 142, 139, 138, 137, 139, 140, 139, 142, 137, 134, 140, 133, 141, 137, 136, 148, 141, 142, 134, 142, 140, 136, 143, 135, 133, 137, 141, 138, 139, 146, 139, 142, 139, 135, 143, 134, 142, 138, 137, 141, 141, 143, 135, 141, 137, 144, 136, 138, 136, 146, 139, 141, 140, 138, 139, 134, 136, 140, 138, 141, 140, 135, 138, 139, 145, 134, 139, 140, 140, 139, 140, 142, 137, 140, 139, 142, 139, 139, 138, 139, 140, 135, 134, 135, 139, 143, 141, 139, 135, 138, 143, 139, 142, 138, 138, 137, 142, 139, 136, 135, 135, 141, 141, 137, 134, 137, 137, 139, 137, 139, 146, 143, 140, 130, 139, 139, 138, 129, 140, 143, 138, 137, 143, 140, 136, 142, 134, 135, 144, 140, 139, 135, 141, 138, 137, 138, 142, 139, 138, 136, 141, 141, 138, 136, 140, 135, 138, 142, 148, 140, 139, 139, 145, 140, 153, 141, 134, 139, 138, 142, 137, 140, 138, 136, 142, 136, 133, 143, 138, 148, 138, 144, 138, 141, 138, 139, 139, 141, 141, 140, 140, 139, 133, 138, 144, 146, 137, 139, 138, 141, 139, 145, 135, 139, 129, 140, 132, 135, 137, 133, 141, 138, 143, 141, 139, 140, 132, 138, 137, 138, 136, 139, 132, 141, 135, 143, 134, 143, 135, 137, 133, 133, 139, 146, 132, 135, 140, 134, 143, 141, 141, 141, 131, 144, 132, 136, 145, 141, 138, 138, 140, 145, 132, 138, 136, 135, 142, 139, 137, 142, 139, 144, 141, 141, 139, 138, 142, 138, 136, 137, 131, 129, 138, 136, 137, 139, 137, 141, 137, 139, 141, 127, 148, 138, 135, 138, 137, 143, 145, 144, 130, 138, 137, 134, 138, 132, 135, 138, 138, 139, 138, 137, 134, 144, 143, 140, 128, 137, 139, 146, 144, 135, 143, 144, 142, 135, 132, 142, 139, 129, 138, 145, 147, 134, 140, 139, 142, 136, 129, 135, 130, 140, 131, 137, 147, 135, 138, 148, 142, 147, 135, 138, 141, 134, 135, 134, 137, 136, 141, 143, 141, 140, 139, 137, 148, 134, 144, 138, 144, 142, 135, 139, 141, 145, 141, 141, 136, 150, 136, 136, 136, 136, 135, 141, 136, 138, 142, 132, 136, 136, 140, 138, 135, 142, 145, 130, 138, 137, 141, 135, 142, 139, 137, 140, 135, 134, 138, 144, 142, 135, 141, 138, 135, 140, 144, 133, 145, 142, 135, 139, 140, 140, 140, 135, 140, 139, 134, 140, 139, 138, 141, 147, 144, 144, 136, 140, 139, 139, 140, 134, 152, 137, 144, 129, 134, 138, 135, 140, 141, 138, 137, 139, 141, 134, 133, 146, 149, 137, 138, 138, 145, 139, 135, 136, 140, 148, 148, 138, 132, 137, 133, 140, 137, 135, 138, 137, 145, 143, 142, 142, 136, 137, 144, 140, 134, 138, 140, 130, 134, 140, 147, 131, 131, 137, 132, 141, 140, 143, 136, 139, 135, 140, 137, 133, 133, 140, 138, 135, 134, 136, 140, 142, 139, 130, 140, 131, 140, 141, 138, 140, 123, 135, 141, 142, 143, 134, 142, 140, 145, 132, 140, 141, 137, 136, 138, 129, 136, 166, 138, 117, 139, 142, 136, 138, 147, 143, 148, 139, 136, 136, 148, 135, 140, 141, 136, 133, 142, 145, 138, 136, 136, 133, 145, 141, 140, 132, 135, 144, 138, 135, 136, 128, 142, 140, 134, 141, 138, 138, 143, 137, 137, 133, 136, 130, 140, 137, 144, 141, 129, 138, 129, 143, 140, 138, 143, 142, 135, 141, 143, 136, 134, 137, 137, 143, 139, 137, 133, 132, 141, 143, 131, 145, 136, 136, 144, 140, 136, 136, 138, 136, 135, 140, 133, 144, 136, 142, 138, 145, 135, 140, 133, 138, 139, 132, 145, 150, 133, 138, 135, 137, 143, 145, 138, 141, 136, 139, 142, 143, 141, 133, 136, 139, 139, 140, 140, 137, 147, 136, 139, 135, 139, 141, 138, 133, 136, 145, 135, 142, 140, 140, 134, 141, 139, 148, 139, 135, 137, 135, 137, 144, 136, 133, 132, 141, 130, 139, 128, 139, 138, 143, 138, 146, 136, 146, 140, 142, 141, 140, 142, 142, 132, 139, 134, 146, 141, 139, 136, 142, 137, 140, 142, 147, 142, 138, 144, 136, 145, 141, 145, 135, 138, 140, 138, 146, 145, 132, 131, 132, 142, 137, 128, 144, 140, 133, 143, 142, 137, 134, 142, 137, 133, 143, 143, 139, 131, 142, 138, 128, 148, 135, 149, 145, 134, 137, 139, 152, 148, 136, 137, 143, 139, 135, 142, 138, 134, 141, 135, 142, 145, 140, 130, 137, 133, 132, 140, 152, 143, 138, 133, 134, 142, 134, 134, 140, 135, 137, 142, 134, 134, 138, 134, 135, 134, 145, 135, 130, 143, 136, 138, 139, 133, 145, 140, 143, 136, 137, 134, 142, 143, 136, 145, 138, 129, 139, 141, 140, 136, 138, 138, 148, 140, 136, 142, 135, 142, 137, 148, 145, 140, 142, 136, 138, 126, 135, 139, 137, 138, 142, 142, 133, 141, 145, 143, 139, 147, 140, 133, 148, 144, 144, 137, 143, 149, 138, 128, 143, 139, 142, 138, 144, 140, 126, 135, 132, 143, 124, 144, 135, 136, 137, 146, 135, 135, 138, 140, 140, 130, 138, 132, 140, 144, 137, 136, 139, 134, 135, 140, 132, 145, 148, 143, 140, 149, 141, 142, 135, 132, 126, 134, 132, 137, 134, 133, 144, 139, 144, 137, 143, 137, 142, 137, 149, 139, 132, 140, 133, 131, 138, 135, 140, 130, 134, 150, 140, 140, 136, 137, 141, 144, 136, 135, 139, 139, 134, 140, 143, 143, 133, 135, 145, 140, 137, 135, 139, 145, 136, 131, 137, 124, 137, 131, 147, 128, 146, 139, 137, 136, 136, 146, 136, 135, 128, 140, 138, 139, 142, 139, 128, 131, 141, 140, 136, 135, 146, 143, 141, 131, 139, 138, 137, 144, 141, 134, 138, 146, 143, 139, 142, 137, 134, 136, 142, 153, 138, 140, 123, 139, 132, 143, 138, 138, 139, 139, 135, 147, 132, 144, 139, 136, 143, 138, 139, 141, 136, 139, 147, 144, 142, 134, 132, 135, 128, 141, 142, 139, 143, 145, 140, 143, 141, 154, 146, 130, 133, 140, 136, 137, 138, 135, 144, 128, 137, 137, 146, 139, 135, 139, 139, 143, 227, 138, 81, 139, 135, 145, 133, 156, 136, 129, 132, 130, 139, 132, 129, 131, 137, 135, 138, 144, 133, 127, 133, 139, 140, 139, 131, 143, 132, 139, 139, 138, 144, 146, 141, 138, 131, 145, 144, 136, 142, 147, 134, 133, 137, 138, 137, 133, 138, 152, 137, 132, 135, 142, 137, 137, 145, 137, 141, 131, 145, 137, 136, 144, 142, 136, 140, 140, 136, 153, 142, 139, 143, 139, 139, 145, 137, 146, 138, 147, 133, 135, 126, 140, 147, 139, 136, 133, 139, 128, 135, 146, 132, 141, 138, 132, 132, 138, 135, 134, 143, 140, 134, 128, 134, 136, 147, 142, 133, 137, 142, 131, 139, 142, 143, 126, 145, 129, 139, 146, 133, 141, 142, 139, 137, 138, 135, 136, 141, 145, 141, 134, 139, 141, 138, 137, 139, 144, 141, 134, 137, 140, 132, 134, 146, 139, 142, 136, 144, 136, 135, 135, 138, 145, 138, 138, 139, 137, 136, 140, 137, 136, 143, 139, 133, 139, 128, 133, 148, 136, 134, 137, 135, 138, 135, 142, 141, 138, 144, 136, 147, 142, 133, 134, 135, 140, 132, 136, 132, 135, 135, 135, 133, 140, 131, 139, 136, 141, 132, 147, 134, 128, 143, 127, 142, 145, 139, 155, 143, 137, 138, 130, 146, 147, 139, 145, 144, 139, 140, 130, 146, 140, 136, 140, 133, 133, 149, 135, 144, 131, 135, 130, 132, 145, 138, 145, 134, 143, 139, 141, 143, 129, 136, 137, 134, 141, 140, 126, 142, 137, 141, 141, 150, 138, 141, 124, 136, 133, 139, 140, 150, 141, 137, 132, 132, 143, 148, 140, 143, 147, 131, 148, 148, 138, 145, 143, 138, 144, 143, 149, 143, 142, 145, 140, 134, 132, 136, 147, 142, 144, 135, 142, 132, 147, 139, 142, 136, 139, 137, 136, 134, 127, 133, 140, 132, 143, 142, 144, 137, 133, 144, 137, 133, 134, 143, 143, 145, 139, 139, 141, 137, 132, 141, 132, 133, 138, 138, 139, 132, 133, 145, 139, 140, 144, 134, 144, 141, 139, 141, 133, 137, 141, 131, 137, 143, 133, 137, 138, 142, 136, 145, 136, 131, 145, 139, 141, 139, 140, 136, 143, 139, 145, 133, 144, 130, 136, 133, 144, 129, 133, 139, 134, 131, 136, 132, 133, 136, 139, 143, 134, 148, 149, 129, 140, 134, 142, 134, 124, 143, 134, 144, 149, 130, 137, 142, 144, 141, 136, 133, 137, 127, 133, 137, 145, 137, 135, 144, 138, 141, 138, 128, 142, 146, 138, 147, 140, 143, 140, 126, 136, 125, 135, 148, 132, 140, 139, 136, 135, 136, 137, 135, 129, 146, 140, 147, 145, 137, 134, 131, 137, 152, 144, 141, 132, 135, 139, 146, 133, 137, 138, 133, 135, 140, 139, 141, 139, 132, 147, 135, 136, 140, 141, 131, 148, 140, 141, 137, 127, 132, 131, 137, 142, 148, 139, 138, 136, 138, 139, 139, 139, 136, 139, 137, 147, 144, 140, 137, 134, 135, 138, 142, 135, 140, 133, 136, 139, 145, 138, 136, 140, 138, 136, 134, 134, 134, 146, 147, 136, 134, 144, 138, 136, 133, 140, 139, 139, 134, 135, 130, 134, 140, 139, 141, 135, 142, 145, 137, 140, 144, 138, 138, 145, 150, 132, 133, 134, 134, 141, 137, 141, 131, 137, 138, 134, 132, 142, 144, 134, 154, 140, 137, 137, 140, 147, 142, 137, 133, 139, 141, 134, 146, 143, 126, 147, 141, 135, 136, 137, 128, 151, 139, 135, 149, 137, 148, 132, 142, 153, 147, 148, 136, 148, 131, 137, 137, 135, 140, 132, 138, 140, 137, 139, 147, 141, 134, 123, 139, 143, 139, 136, 133, 149, 145, 138, 132, 136, 137, 146, 140, 136, 149, 134, 146, 133, 146, 148, 132, 131, 135, 140, 138, 145, 149, 139, 148, 142, 136, 138, 136, 136, 140, 143, 142, 136, 138, 139, 149, 136, 121, 139, 133, 146, 143, 145, 134, 133, 144, 142, 139, 136, 139, 128, 136, 137, 138, 132, 140, 136, 142, 143, 144, 141, 144, 139, 141, 137, 144, 143, 140, 136, 144, 138, 141, 135, 141, 131, 141, 147, 140, 149, 135, 146, 141, 151, 145, 142, 144, 139, 134, 142, 141, 136, 130, 146, 136, 147, 143, 132, 133, 136, 142, 140, 137, 142, 143, 137, 141, 135, 136, 133, 128, 139, 143, 141, 145, 133, 134, 128, 136, 137, 139, 136, 138, 140, 131, 134, 140, 128, 136, 151, 138, 140, 139, 136, 144, 141, 137, 144, 142, 141, 145, 138, 142, 135, 143, 145, 147, 138, 134, 140, 130, 144, 135, 133, 140, 139, 137, 141, 139, 142, 141, 146, 147, 148, 137, 132, 139, 139, 138, 134, 140, 139, 145, 141, 141, 139, 136, 140, 140, 135, 144, 134, 143, 147, 140, 137, 146, 138, 130, 139, 143, 140, 138, 141, 133, 138, 144, 139, 138, 129, 143, 141, 143, 137, 144, 138, 143, 137, 132, 136, 135, 146, 142, 131, 139, 140, 132, 140, 133, 139, 136, 134, 133, 129, 141, 135, 144, 135, 129, 142, 147, 142, 141, 140, 146, 137, 131, 140, 135, 138, 141, 145, 140, 138, 132, 134, 129, 140, 137, 129, 142, 140, 143, 143, 139, 136, 128, 134, 134, 141, 147, 126, 136, 146, 137, 143, 140, 136, 141, 147, 138, 140, 145, 146, 147, 139, 128, 139, 150, 142, 138, 136, 132, 146, 137, 136, 132, 146, 134, 134, 142, 144, 133, 139, 137, 138, 141, 139, 140, 139, 134, 140, 136, 142, 136, 152, 144, 144, 138, 130, 131, 140, 142, 137, 142, 141, 140, 135, 133, 144, 143, 137, 134, 135, 139, 138, 141, 143, 144, 132, 141, 148, 126, 141, 134, 133, 134, 139, 143, 140, 141, 144, 153, 139, 134, 150, 139, 135, 136, 138, 132, 142, 137, 129, 140, 138, 135, 145, 145, 137, 143, 150, 143, 136, 137, 129, 136, 131, 138, 142, 134, 140, 137, 141, 136, 143, 148, 140, 139, 142, 135, 144, 137, 142, 137, 130, 134, 145, 138, 144, 143, 140, 134, 141, 141, 139, 136, 136, 135, 137, 130, 134, 133, 136, 133, 139, 141, 139, 139, 144, 138, 131, 145, 133, 142, 136, 129, 132, 142, 149, 131, 144, 135, 145, 141, 139, 132, 137, 143, 138, 147, 143, 137, 142, 143, 140, 130, 140, 139, 135, 147, 140, 132, 139, 147, 142, 141, 140, 130, 147, 134, 134, 140, 139, 130, 132, 136, 136, 144, 140, 139, 144, 140, 140, 139, 140, 144, 143, 138, 139, 139, 134, 142, 141, 138, 139, 134, 134, 136, 142, 138, 134, 137, 134, 139, 141, 139, 144, 154, 134, 140, 143, 134, 139, 137, 140, 143, 150, 142, 142, 142, 134, 141, 143, 155, 132, 133, 136, 145, 134, 134, 134, 143, 136, 134, 139, 136, 127, 141, 129, 147, 138, 135, 150, 128, 137, 135, 139, 133, 140, 135, 147, 131, 136, 128, 144, 140, 139, 143, 140, 140, 138, 137, 131, 138, 134, 137, 139, 139, 132, 137, 134, 147, 143, 146, 136, 143, 141, 146, 126, 145, 134, 142, 136, 138, 137, 140, 136, 135, 139, 135, 138, 137, 138, 143, 138, 138, 136, 134, 137, 138, 132, 151, 137, 140, 136, 145, 138, 134, 141, 143, 133, 140, 146, 135, 134, 140, 140, 140, 136, 138, 137, 144, 145, 140, 147, 145, 138, 143, 138, 131, 135, 134, 135, 144, 137, 139, 141, 135, 137, 138, 142, 136, 138, 134, 143, 137, 138, 143, 138, 143, 128, 139, 136, 141, 137, 141, 142, 141, 135, 145, 140, 140, 133, 137, 138, 142, 141, 140, 133, 131, 129, 138, 146, 135, 144, 137, 142, 141, 139, 138, 138, 145, 135, 140, 136, 143, 136, 143, 138, 142, 139, 138, 139, 136, 145, 138, 138, 137, 139, 133, 144, 140, 144, 146, 138, 146, 145, 136, 140, 140, 147, 133, 127, 139, 139, 145, 138, 138, 138, 146, 140, 124, 142, 133, 137, 137, 138, 141, 136, 135, 141, 147, 135, 143, 136, 145, 145, 145, 148, 141, 139, 144, 141, 140, 132, 145, 144, 139, 144, 141, 138, 139, 142, 140, 133, 135, 138, 138, 145, 137, 138, 135, 133, 138, 137, 131, 135, 142, 132, 147, 139, 135, 132, 138, 144, 135, 135, 140, 141, 143, 137, 138, 143, 133, 138, 144, 136, 140, 138, 134, 135, 149, 143, 141, 141, 141, 132, 133, 138, 133, 136, 138, 144, 141, 135, 145, 143, 139, 134, 149, 138, 141, 140, 145, 128, 145, 146, 135, 141, 138, 136, 147, 135, 134, 143, 139, 135, 136, 136, 138, 135, 142, 139, 141, 140, 133, 139, 152, 141, 142, 137, 137, 136, 135, 140, 141, 137, 144, 137, 145, 139, 138, 144, 136, 138, 140, 144, 136, 138, 138, 143, 135, 129, 135, 137, 143, 137, 143, 149, 145, 141, 137, 157, 135, 142, 144, 142, 131, 144, 144, 147, 137, 141, 140, 139, 145, 131, 139, 134, 145, 143, 133, 143, 140, 135, 133, 148, 128, 134, 138, 138, 148, 142, 136, 145, 136, 141, 142, 142, 142, 135, 135, 129, 136, 139, 137, 141, 142, 140, 137, 139, 140, 140, 145, 140, 130, 147, 135, 142, 134, 139, 137, 137, 140, 131, 127, 130, 142, 139, 136, 144, 141, 137, 138, 141, 136, 138, 133, 137, 134, 132, 139, 140, 134, 137, 143, 135, 140, 134, 133, 146, 145, 133, 135, 132, 146, 144, 134, 138, 138, 143, 139, 144, 138, 130, 141, 138, 135, 132, 141, 146, 133, 147, 136, 140, 136, 132, 137, 138, 141, 134, 138, 147, 136, 136, 141, 148, 141, 139, 139, 140, 145, 138, 139, 135, 139, 138, 141, 137, 148, 141, 132, 141, 136, 131, 140, 133, 139, 130, 137, 135, 144, 141, 138, 148, 145, 132, 133, 135, 140, 133, 142, 143, 130, 134, 137, 137, 137, 131, 135, 139, 138, 139, 133, 139, 140, 137, 138, 138, 137, 134, 139, 142, 138, 142, 141, 143, 139, 137, 145, 133, 136, 142, 133, 149, 137, 137, 146, 140, 133, 142, 136, 139, 144, 145, 139, 143, 140, 135, 145, 141, 129, 143, 141, 138, 143, 136, 139, 136, 150, 135, 142, 137, 136, 124, 133, 141, 140, 139, 147, 139, 142, 135, 141, 124, 134, 144, 138, 129, 144, 133, 140, 156, 136, 144, 138, 133, 140, 146, 140, 133, 132, 135, 139, 152, 144, 134, 139, 140, 144, 132, 143, 130, 138, 140, 136, 131, 129, 140, 138, 149, 143, 142, 137, 150, 145, 135, 142, 144, 142, 149, 147, 142, 136, 141, 147, 146, 133, 134, 138, 142, 145, 128, 139, 140, 142, 145, 132, 136, 127, 145, 130, 143, 130, 139, 134, 137, 132, 139, 131, 132, 148, 139, 146, 142, 143, 136, 129, 144, 140, 132, 128, 141, 139, 142, 142, 137, 142, 141, 145, 147, 133, 139, 139, 143, 132, 135, 138, 139, 143, 136, 139, 136, 134, 137, 147, 133, 142, 132, 141, 134, 139, 135, 146, 132, 147, 135, 136, 136, 136, 143, 138, 138, 130, 135, 131, 141, 140, 137, 146, 138, 136, 137, 145, 131, 138, 142, 141, 140, 144, 135, 143, 135, 145, 135, 132, 139, 140, 146, 133, 142, 136, 135, 131, 147, 156, 142, 141, 149, 138, 137, 142, 143, 136, 136, 141, 148, 136, 126, 138, 140, 136, 141, 144, 128, 147, 144, 136, 136, 144, 147, 139, 141, 137, 137, 140, 139, 143, 140, 145, 141, 139, 145, 134, 148, 152, 134, 137, 137, 148, 134, 139, 145, 135, 145, 144, 141, 136, 136, 147, 149, 141, 137, 140, 136, 138, 142, 139, 141, 128, 148, 144, 145, 134, 138, 144, 138, 140, 143, 147, 131, 125, 139, 145, 146, 137, 131, 145, 129, 153, 135, 146, 136, 140, 137, 142, 137, 136, 143, 135, 136, 144, 145, 143, 135, 133, 143, 139, 138, 139, 140, 139, 133, 140, 139, 132, 143, 131, 149, 138, 148, 140, 143, 140, 128, 130, 137, 140, 146, 143, 128, 146, 142, 125, 138, 135, 143, 139, 137, 132, 141, 136, 139, 141, 147, 135, 143, 138, 144, 132, 139, 138, 143, 135, 141, 130, 147, 137, 135, 122, 140, 146, 141, 132, 140, 134, 137, 138, 135, 135, 134, 133, 145, 137, 143, 138, 144, 139, 145, 146, 151, 137, 142, 149, 134, 142, 152, 141, 133, 147, 143, 138, 153, 141, 140, 142, 144, 139, 143, 138, 137, 134, 138, 132, 129, 137, 139, 139, 136, 144, 139, 136, 140, 138, 139, 135, 134, 138, 145, 133, 131, 134, 144, 120, 141, 138, 141, 151, 133, 145, 137, 140, 147, 147, 132, 136, 138, 139, 142, 131, 128, 140, 141, 136, 127, 137, 138, 130, 140, 143, 140, 147, 134, 142, 141, 156, 147, 135, 134, 140, 137, 137, 144, 128, 138, 135, 140, 141, 135, 140, 138, 141, 139, 132, 141, 139, 124, 155, 137, 137, 146, 139, 147, 135, 131, 140, 132, 137, 139, 134, 145, 138, 142, 144, 140, 136, 146, 138, 132, 140, 137, 139, 137, 140, 132, 142, 139, 136, 141, 134, 138, 134, 145, 137, 133, 134, 136, 140, 138, 139, 136, 150, 135, 134, 149, 136, 139, 154, 151, 138, 135, 134, 137, 136, 133, 135, 138, 142, 136, 151, 138, 142, 137, 148, 146, 133, 146, 133, 136, 137, 140, 148, 136, 134, 138, 134, 144, 145, 144, 134, 139, 128, 130, 142, 148, 136, 142, 141, 134, 143, 136, 153, 134, 129, 139, 145, 132, 132, 153, 154, 141, 135, 125, 133, 128, 134, 154, 140, 131, 134, 145, 119, 136, 146, 138, 138, 133, 136, 145, 147, 129, 137, 134, 145, 140, 143, 144, 141, 141, 136, 145, 143, 133, 141, 143, 131, 138, 152, 143, 144, 132, 141, 156, 139, 143, 134, 133, 140, 134, 136, 146, 128, 137, 147, 137, 137, 127, 142, 124, 132, 136, 141, 138, 150, 132, 145, 133, 134, 133, 135, 127, 138, 135, 130, 141, 127, 147, 133, 135, 138, 145, 132, 131, 152, 136, 135, 138, 134, 134, 141, 139, 139, 140, 130, 135, 136, 131, 146, 147, 137, 140, 139, 130, 140, 128, 145, 132, 128, 132, 142, 136, 139, 145, 140, 154, 135, 139, 136, 134, 135, 137, 140, 133, 143, 134, 138, 145, 132, 141, 145, 143, 132, 143, 142, 138, 134, 142, 146, 131, 142, 140, 140, 140, 139, 139, 132, 139, 119, 136, 134, 133, 150, 138, 138, 133, 125, 140, 145, 139, 135, 139, 130, 143, 137, 141, 134, 136, 134, 151, 144, 136, 135, 134, 146, 138, 130, 140, 135, 134, 136, 137, 144, 123, 147, 136, 146, 144, 141, 133, 137, 138, 143, 141, 136, 126, 141, 136, 138, 133, 145, 135, 141, 136, 123, 140, 135, 139, 137, 137, 151, 140, 139, 126, 137, 136, 138, 144, 139, 138, 136, 148, 132, 135, 139, 139, 135, 150, 139, 139, 132, 132, 184, 142, 135, 138, 140, 135, 146, 133, 124, 162, 128, 131, 139, 137, 136, 134, 134, 142, 135, 132, 137, 143, 128, 143, 135, 142, 139, 132, 147, 146, 133, 130, 143, 139, 138, 138, 139, 150, 129, 143, 142, 134, 138, 125, 130, 138, 126, 137, 132, 126, 143, 134, 150, 133, 141, 139, 139, 140, 140, 142, 136, 136, 141, 137, 147, 128, 138, 140, 137, 145, 138, 147, 137, 143, 137, 137, 144, 140, 137, 133, 137, 142, 134, 135, 145, 138, 139, 125, 141, 151, 139, 121, 132, 145, 147, 135, 147, 135, 132, 137, 141, 137, 131, 132, 136, 135, 143, 135, 137, 141, 134, 142, 137, 140, 127, 144, 132, 131, 129, 136, 125, 140, 134, 142, 134, 137, 140, 139, 148, 143, 132, 145, 142, 145, 145, 133, 137, 134, 148, 136, 143, 143, 153, 142, 146, 132, 139, 137, 146, 146, 126, 145, 154, 153, 142, 128, 147, 139, 144, 144, 141, 148, 143, 137, 134, 140, 134, 140, 134, 138, 135, 137, 129, 135, 141, 139, 143, 128, 134, 137, 142, 141, 148, 127, 140, 143, 131, 141, 135, 138, 139, 138, 134, 141, 135, 149, 148, 133, 136, 143, 139, 141, 137, 148, 134, 143, 157, 135, 133, 139, 133, 138, 151, 138, 132, 141, 137, 135, 152, 141, 141, 143, 128, 139, 144, 137, 137, 140, 131, 142, 134, 146, 142, 139, 129, 129, 138, 135, 146, 150, 143, 128, 132, 146, 131, 134, 131, 144, 136, 135, 128, 143, 144, 141, 147, 139, 133, 131, 148, 140, 138, 141, 139, 135, 138, 134, 139, 136, 144, 139, 140, 139, 137, 135, 143, 134, 135, 129, 133, 139, 137, 145, 134, 142, 145, 138, 141, 139, 138, 133, 136, 136, 133, 136, 148, 140, 141, 148, 151, 131, 137, 138, 138, 132, 136, 131, 128, 147, 139, 144, 135, 151, 140, 142, 140, 123, 149, 140, 139, 148, 152, 144, 138, 142, 147, 147, 132, 140, 145, 146, 144, 141, 145, 141, 128, 125, 143, 134, 133, 139, 145, 134, 141, 133, 135, 143, 139, 136, 135, 157, 135, 148, 141, 127, 134, 136, 139, 137, 134, 132, 144, 136, 136, 139, 133, 132, 138, 139, 139, 138, 132, 134, 142, 135, 138, 145, 135, 137, 140, 142, 132, 139, 151, 144, 144, 139, 136, 132, 135, 132, 133, 136, 124, 137, 143, 134, 134, 142, 142, 147, 141, 137, 140, 136, 152, 131, 129, 135, 150, 144, 134, 143, 135, 139, 138, 138, 131, 139, 133, 143, 137, 157, 166, 136, 139, 137, 138, 143, 141, 143, 141, 139, 144, 132, 138, 144, 141, 139, 135, 141, 134, 135, 128, 139, 142, 139, 133, 133, 137, 131, 135, 141, 150, 140, 143, 150, 144, 139, 136, 142, 112, 142, 128, 144, 138, 135, 139, 144, 131, 139, 138, 139, 146, 127, 146, 133, 133, 135, 136, 148, 148, 127, 148, 140, 143, 145, 147, 135, 137, 130, 134, 137, 134, 140, 140, 141, 139, 138, 137, 143, 145, 133, 135, 130, 143, 145, 132, 133, 132, 139, 135, 135, 125, 139, 151, 140, 141, 141, 155, 134, 147, 141, 128, 122, 145, 145, 125, 144, 135, 135, 137, 137, 137, 136, 136, 144, 140, 134, 136, 131, 136, 138, 132, 141, 143, 145, 148, 138, 138, 137, 142, 133, 143, 134, 142, 139, 133, 142, 133, 139, 131, 138, 149, 153, 148, 138, 148, 143, 133, 134, 145, 141, 138, 139, 129, 154, 117, 144, 143, 136, 138, 136, 132, 138, 144, 142, 165, 129, 135, 140, 136, 135, 148, 138, 142, 133, 133, 137, 134, 145, 141, 136, 143, 131, 131, 141, 141, 127, 150, 133, 145, 132, 133, 138, 135, 132, 130, 141, 146, 129, 150, 141, 132, 143, 133, 148, 135, 153, 139, 133, 128, 131, 129, 129, 135, 143, 144, 132, 134, 140, 151, 135, 138, 131, 145, 139, 140, 138, 133, 137, 135, 142, 143, 138, 145, 139, 147, 136, 127, 137, 138, 146, 138, 146, 149, 142, 133, 131, 141, 135, 141, 141, 149, 134, 148, 139, 139, 142, 145, 132, 127, 143, 160, 149, 139, 139, 140, 144, 138, 141, 128, 136, 143, 148, 153, 139, 146, 136, 141, 129, 144, 138, 141, 141, 133, 128, 141, 137, 147, 133, 168, 146, 137, 145, 129, 132, 148, 146, 136, 148, 145, 136, 131, 145, 142, 140, 135, 124, 138, 132, 140, 142, 138, 137, 147, 134, 133, 124, 134, 138, 134, 138, 140, 140, 130, 134, 142, 139, 138, 140, 141, 144, 134, 132, 132, 133, 143, 140, 138, 138, 139, 133, 153, 145, 137, 152, 142, 133, 148, 146, 146, 136, 134, 145, 130, 132, 131, 149, 130, 131, 146, 137, 142, 136, 137, 156, 128, 142, 153, 135, 122, 138, 136, 142, 133, 140, 136, 144, 142, 142, 143, 142, 140, 145, 135, 140, 141, 133, 152, 134, 138, 137, 148, 145, 142, 140, 140, 130, 145, 150, 134, 134, 146, 137, 138, 144, 144, 132, 148, 135, 135, 136, 132, 135, 143, 135, 142, 137, 140, 142, 130, 151, 142, 140, 142, 140, 133, 128, 137, 136, 125, 146, 136, 143, 144, 142, 141, 138, 135, 131, 134, 134, 133, 146, 144, 132, 145, 138, 148, 135, 146, 154, 144, 149, 144, 141, 133, 139, 145, 143, 134, 137, 134, 131, 135, 133, 142, 141, 133, 131, 132, 164, 135, 140, 135, 132, 134, 142, 136, 133, 140, 139, 138, 142, 137, 130, 140, 147, 138, 140, 128, 129, 130, 137, 139, 139, 147, 130, 137, 139, 137, 139, 136, 147, 146, 136, 133, 154, 145, 137, 137, 136, 136, 141, 131, 134, 140, 151, 143, 141, 135, 142, 132, 144, 140, 135, 145, 142, 141, 153, 136, 141, 134, 141, 141, 140, 137, 141, 135, 143, 128, 140, 155, 140, 150, 139, 139, 138, 155, 141, 153, 140, 142, 130, 144, 140, 141, 143, 142, 132, 144, 136, 138, 142, 138, 137, 126, 138, 126, 138, 135, 141, 139, 137, 149, 135, 142, 138, 143, 142, 142, 145, 146, 145, 139, 141, 141, 131, 127, 133, 140, 157, 151, 139, 139, 135, 138, 142, 130, 141, 136, 138, 134, 125, 129, 133, 139, 136, 142, 140, 138, 131, 129, 141, 139, 129, 142, 146, 128, 133, 137, 138, 151, 137, 140, 144, 138, 142, 123, 139, 154, 135, 133, 140, 137, 140, 143, 130, 143, 142, 160, 139, 145, 145, 129, 130, 146, 130, 134, 140, 136, 139, 147, 141, 127, 139, 139, 130, 145, 140, 138, 146, 129, 146, 139, 147, 138, 140, 135, 126, 131, 143, 147, 144, 134, 146, 137, 136, 133, 145, 132, 135, 133, 139, 135, 146, 144, 138, 141, 144, 133, 140, 131, 134, 125, 141, 127, 130, 145, 137, 135, 144, 128, 149, 134, 146, 138, 139, 131, 130, 137, 147, 143, 142, 135, 141, 149, 135, 146, 142, 136, 147, 151, 138, 135, 138, 133, 145, 136, 140, 131, 134, 134, 137, 146, 135, 140, 142, 140, 146, 128, 133, 132, 140, 132, 132, 129, 136, 133, 146, 150, 138, 139, 144, 145, 147, 142, 132, 129, 133, 146, 134, 130, 129, 135, 143, 144, 144, 135, 153, 139, 141, 155, 147, 136, 129, 134, 143, 141, 138, 145, 137, 140, 125, 133, 143, 140, 136, 158, 143, 132, 133, 121, 133, 148, 132, 135, 147, 128, 140, 136, 139, 138, 143, 129, 139, 129, 146, 142, 139, 147, 131, 134, 133, 139, 142, 144, 150, 140, 137, 128, 145, 134, 145, 136, 138, 146, 147, 130, 130, 142, 144, 140, 134, 145, 136, 135, 134, 133, 136, 133, 135, 139, 145, 137, 139, 133, 126, 137, 166, 132, 143, 137, 140, 149, 144, 135, 134, 144, 147, 136, 136, 149, 125, 132, 134, 139, 140, 143, 134, 137, 150, 137, 140, 143, 138, 134, 148, 139, 139, 137, 136, 135, 141, 142, 139, 142, 137, 142, 133, 143, 144, 135, 135, 132, 147, 138, 144, 143, 134, 143, 127, 147, 137, 143, 133, 138, 129, 130, 133, 136, 139, 138, 129, 144, 143, 139, 135, 142, 131, 147, 136, 137, 135, 150, 147, 145, 135, 133, 140, 144, 135, 134, 140, 138, 141, 144, 135, 136, 137, 140, 133, 135, 138, 140, 138, 143, 129, 139, 145, 139, 136, 129, 134, 135, 137, 137, 149, 139, 136, 139, 137, 141, 151, 134, 137, 134, 140, 140, 132, 138, 136, 148, 142, 142, 138, 145, 141, 138, 127, 140, 136, 143, 140, 149, 140, 139, 144, 137, 140, 146, 134, 140, 125, 143, 138, 135, 132, 137, 138, 147, 138, 142, 148, 140, 143, 145, 140, 137, 132, 136, 134, 131, 141, 138, 138, 133, 133, 146, 138, 137, 128, 143, 143, 134, 135, 150, 144, 137, 136, 137, 141, 132, 136, 137, 134, 142, 144, 133, 144, 140, 139, 141, 137, 132, 139, 139, 132, 139, 137, 135, 135, 145, 138, 141, 145, 137, 134, 143, 136, 138, 143, 136, 130, 142, 147, 142, 143, 143, 138, 148, 130, 134, 150, 141, 136, 143, 140, 131, 133, 134, 135, 153, 131, 131, 142, 136, 142, 138, 132, 147, 136, 130, 140, 147, 141, 135, 142, 133, 141, 138, 141, 142, 130, 150, 138, 136, 144, 145, 133, 132, 143, 143, 128, 137, 139, 147, 141, 147, 139, 138, 142, 133, 129, 145, 137, 136, 140, 143, 138, 143, 134, 136, 141, 143, 139, 144, 144, 149, 145, 148, 129, 142, 143, 135, 134, 147, 143, 141, 132, 139, 148, 140, 135, 142, 131, 130, 133, 144, 131, 139, 142, 134, 144, 134, 137, 134, 131, 136, 139, 122, 134, 145, 137, 133, 137, 145, 135, 146, 141, 145, 138, 133, 150, 148, 139, 135, 147, 157, 138, 142, 142, 136, 147, 132, 126, 138, 148, 137, 135, 137, 138, 139, 131, 136, 139, 139, 138, 138, 145, 137, 146, 139, 130, 127, 134, 140, 145, 132, 144, 145, 143, 144, 137, 137, 137, 141, 138, 143, 134, 142, 137, 139, 145, 134, 136, 133, 150, 133, 143, 139, 133, 133, 135, 136, 138, 137, 136, 144, 146, 150, 143, 144, 137, 138, 140, 136, 133, 128, 156, 134, 144, 147, 135, 130, 136, 144, 134, 136, 135, 138, 133, 144, 138, 138, 131, 141, 145, 135, 151, 134, 138, 133, 138, 135, 139, 141, 129, 141, 141, 125, 139, 134, 148, 138, 135, 139, 146, 140, 144, 139, 127, 137, 142, 134, 137, 147, 143, 132, 130, 138, 142, 132, 134, 136, 135, 146, 138, 141, 141, 144, 138, 131, 132, 137, 142, 146, 143, 138, 146, 146, 136, 139, 140, 140, 133, 144, 148, 143, 136, 134, 138, 134, 130, 143, 132, 133, 127, 136, 132, 129, 135, 127, 134, 139, 144, 140, 127, 134, 145, 138, 141, 133, 134, 137, 143, 137, 143, 142, 143, 139, 144, 149, 143, 131, 136, 135, 141, 135, 145, 137, 140, 135, 134, 131, 140, 144, 134, 133, 139, 132, 149, 141, 141, 137, 146, 146, 141, 145, 144, 122, 140, 138, 132, 142, 139, 143, 145, 138, 128, 139, 138, 141, 140, 141, 146, 140, 136, 137, 135, 138, 126, 139, 143, 144, 130, 142, 138, 131, 131, 140, 134, 141, 137, 134, 145, 133, 145, 142, 123, 140, 132, 137, 141, 137, 147, 142, 139, 135, 152, 137, 129, 135, 146, 136, 154, 146, 136, 139, 146, 148, 133, 135, 143, 148, 134, 137, 141, 142, 144, 139, 133, 136, 143, 139, 137, 138, 144, 144, 139, 143, 142, 132, 139, 142, 128, 149, 151, 141, 138, 132, 131, 144, 143, 142, 134, 135, 141, 145, 142, 147, 140, 143, 142, 134, 144, 139, 135, 144, 135, 143, 128, 135, 140, 146, 151, 137, 142, 133, 148, 140, 133, 134, 136, 147, 149, 149, 147, 145, 131, 144, 148, 136, 125, 135, 136, 145, 138, 135, 136, 125, 141, 138, 143, 141, 142, 138, 137, 135, 144, 137, 138, 140, 143, 135, 139, 138, 139, 129, 135, 149, 138, 133, 143, 127, 129, 141, 138, 150, 142, 134, 144, 139, 148, 143, 142, 142, 137, 142, 140, 137, 139, 142, 129, 132, 135, 139, 140, 136, 139, 131, 143, 143, 137, 134, 143, 130, 148, 143, 139, 138, 134, 143, 139, 140, 138, 138, 131, 140, 143, 139, 147, 135, 135, 145, 139, 149, 142, 138, 137, 137, 144, 132, 146, 131, 135, 142, 144, 138, 138, 135, 146, 140, 137, 134, 140, 141, 139, 139, 139, 139, 138, 150, 133, 136, 144, 138, 128, 129, 143, 137, 140, 137, 141, 139, 146, 133, 135, 138, 139, 138, 131, 142, 137, 134, 141, 144, 136, 148, 131, 139, 132, 143, 136, 147, 131, 142, 137, 140, 138, 134, 135, 134, 139, 133, 132, 144, 139, 144, 142, 143, 141, 149, 145, 131, 141, 136, 147, 144, 135, 141, 138, 144, 148, 141, 137, 139, 143, 130, 136, 139, 135, 138, 136, 139, 145, 132, 146, 136, 139, 136, 146, 143, 135, 143, 138, 133, 144, 137, 142, 139, 152, 134, 139, 131, 139, 141, 142, 143, 139, 137, 135, 136, 132, 139, 144, 141, 154, 136, 136, 133, 140, 138, 131, 147, 135, 141, 145, 137, 139, 142, 136, 134, 142, 141, 138, 144, 135, 134, 134, 138, 137, 145, 142, 139, 137, 133, 137, 138, 135, 134, 141, 138, 136, 143, 138, 141, 139, 141, 137, 135, 141, 134, 146, 144, 135, 147, 143, 139, 144, 139, 141, 139, 140, 134, 146, 142, 137, 141, 141, 136, 141, 141, 128, 133, 137, 139, 141, 149, 151, 137, 141, 129, 127, 132, 130, 142, 148, 143, 142, 134, 141, 135, 139, 134, 149, 146, 136, 139, 145, 141, 142, 140, 139, 137, 141, 133, 135, 134, 136, 124, 141, 139, 137, 144, 138, 145, 138, 145, 143, 138, 145, 137, 137, 131, 130, 141, 136, 142, 137, 147, 134, 140, 149, 143, 129, 137, 138, 144, 137, 140, 134, 146, 138, 137, 143, 142, 137, 133, 140, 149, 137, 140, 135, 132, 145, 141, 137, 139, 138, 136, 137, 147, 138, 134, 136, 130, 148, 140, 140, 141, 147, 142, 138, 145, 135, 144, 135, 145, 139, 135, 152, 135, 135, 141, 143, 130, 138, 153, 136, 134, 144, 132, 140, 138, 141, 133, 139, 135, 133, 141, 129, 130, 132, 136, 135, 134, 132, 135, 145, 130, 140, 133, 141, 135, 137, 141, 141, 140, 142, 137, 141, 141, 131, 135, 140, 140, 140, 139, 135, 141, 131, 134, 133, 133, 145, 143, 135, 141, 142, 149, 130, 136, 141, 143, 133, 141, 155, 141, 138, 142, 131, 141, 138, 138, 146, 148, 145, 131, 131, 138, 135, 140, 136, 134, 140, 142, 142, 145, 137, 141, 137, 131, 144, 139, 136, 140, 137, 143, 139, 136, 133, 138, 131, 130, 138, 139, 138, 137, 144, 127, 141, 136, 139, 143, 143, 135, 139, 141, 135, 137, 130, 144, 141, 137, 139, 137, 135, 133, 136, 140, 143, 146, 130, 139, 137, 135, 144, 138, 136, 138, 136, 137, 140, 136, 144, 141, 136, 141, 137, 139, 139, 133, 139, 143, 135, 134, 133, 140, 138, 142, 142, 137, 141, 134, 145, 136, 146, 134, 142, 146, 143, 138, 139, 138, 136, 134, 135, 144, 137, 135, 132, 141, 136, 139, 142, 146, 140, 132, 137, 135, 132, 145, 142, 139, 132, 142, 131, 135, 139, 131, 138, 139, 133, 141, 143, 140, 136, 138, 145, 140, 134, 143, 138, 139, 141, 143, 139, 131, 145, 136, 135, 133, 139, 137, 137, 142, 137, 142, 139, 139, 138, 140, 136, 138, 138, 134, 134, 145, 144, 143, 146, 137, 139, 134, 130, 137, 146, 137, 137, 139, 135, 145, 134, 130, 140, 135, 142, 141, 135, 153, 139, 143, 136, 143, 136, 132, 149, 136, 143, 133, 137, 135, 137, 140, 136, 144, 142, 140, 135, 137, 135, 145, 141, 142, 140, 148, 142, 132, 136, 135, 137, 142, 142, 146, 138, 137, 137, 142, 137, 139, 151, 146, 136, 137, 135, 130, 147, 132, 147, 135, 140, 134, 136, 141, 136, 141, 142, 142, 137, 143, 137, 142, 143, 136, 138, 135, 137, 146, 134, 140, 141, 125, 141, 142, 142, 145, 138, 132, 132, 144, 130, 132, 129, 133, 140, 136, 139, 136, 141, 140, 140, 142, 144, 142, 138, 132, 145, 144, 142, 136, 139, 139, 140, 131, 135, 136, 137, 138, 144, 136, 144, 144, 136, 135, 136, 139, 134, 133, 141, 135, 138, 136, 139, 145, 135, 139, 139, 149, 138, 134, 142, 136, 133, 140, 142, 136, 136, 138, 131, 136, 140, 146, 144, 144, 135, 135, 143, 135, 139, 143, 138, 145, 135, 140, 144, 137, 137, 136, 137, 137, 144, 136, 138, 148, 150, 142, 137, 125, 145, 130, 133, 142, 125, 141, 139, 142, 139, 136, 143, 135, 137, 139, 141, 131, 138, 137, 149, 139, 134, 143, 132, 138, 132, 131, 133, 144, 145, 142, 135, 135, 128, 161, 141, 133, 139, 132, 136, 154, 139, 131, 136, 139, 147, 133, 144, 128, 145, 145, 128, 140, 138, 136, 139, 137, 142, 133, 153, 150, 135, 150, 145, 142, 143, 147, 130, 139, 139, 146, 142, 139, 145, 133, 135, 134, 145, 139, 135, 136, 134, 140, 139, 148, 137, 137, 144, 144, 140, 136, 133, 144, 145, 135, 137, 141, 147, 137, 142, 141, 138, 139, 141, 149, 142, 142, 135, 139, 134, 142, 143, 140, 138, 142, 144, 138, 140, 140, 143, 143, 132, 141, 145, 153, 131, 141, 145, 143, 142, 134, 137, 149, 134, 137, 141, 142, 140, 138, 131, 135, 145, 145, 147, 147, 136, 142, 141, 144, 151, 146, 141, 144, 138, 144, 142, 132, 142, 140, 146, 141, 138, 138, 142, 139, 139, 133, 146, 142, 141, 148, 134, 144, 147, 137, 137, 142, 144, 136, 140, 139, 126, 137, 137, 138, 139, 133, 142, 146, 144, 127, 145, 151, 139, 143, 147, 131, 136, 140, 136, 145, 133, 135, 138, 137, 141, 129, 141, 136, 138, 140, 143, 141, 150, 144, 136, 140, 138, 140, 138, 129, 143, 143, 144, 143, 130, 141, 131, 140, 140, 138, 136, 143, 135, 140, 138, 142, 136, 145, 140, 140, 141, 135, 132, 141, 145, 142, 143, 143, 138, 142, 137, 132, 137, 130, 139, 132, 136, 141, 138, 135, 139, 145, 145, 140, 143, 139, 139, 137, 143, 136, 143, 131, 139, 141, 136, 141, 143, 137, 146, 139, 146, 136, 143, 140, 140, 136, 137, 139, 143, 147, 148, 141, 133, 144, 136, 136, 143, 134, 138, 135, 138, 139, 140, 137, 136, 140, 134, 142, 140, 137, 149, 130, 142, 138, 144, 135, 136, 138, 137, 144, 125, 138, 144, 137, 144, 143, 144, 139, 142, 134, 144, 144, 135, 137, 135, 137, 139, 137, 133, 140, 139, 143, 145, 141, 138, 141, 123, 147, 134, 143, 138, 139, 138, 142, 134, 138, 134, 136, 136, 129, 136, 145, 134, 142, 138, 139, 130, 131, 143, 132, 129, 141, 145, 141, 150, 138, 143, 145, 132, 132, 142, 140, 145, 127, 138, 137, 141, 123, 139, 143, 145, 137, 132, 138, 141, 142, 138, 137, 132, 133, 138, 141, 156, 136, 140, 131, 146, 141, 133, 138, 138, 142, 142, 142, 145, 136, 142, 141, 133, 138, 140, 144, 136, 142, 139, 136, 143, 138, 142, 142, 144, 136, 145, 145, 144, 140, 135, 133, 138, 136, 137, 140, 137, 140, 132, 147, 134, 139, 141, 145, 141, 136, 142, 137, 138, 137, 131, 119, 140, 143, 143, 139, 127, 134, 140, 125, 137, 138, 136, 141, 141, 134, 138, 141, 140, 135, 143, 141, 142, 133, 137, 136, 144, 144, 142, 136, 135, 136, 142, 144, 145, 134, 141, 135, 136, 136, 135, 140, 127, 149, 138, 135, 131, 144, 142, 130, 137, 145, 134, 143, 137, 145, 134, 140, 138, 143, 151, 139, 141, 137, 133, 128, 140, 138, 149, 146, 138, 131, 141, 141, 133, 141, 141, 133, 137, 137, 146, 138, 140, 148, 142, 145, 136, 140, 144, 135, 147, 133, 140, 141, 141, 146, 155, 140, 147, 136, 141, 138, 134, 143, 151, 144, 133, 144, 139, 147, 139, 139, 133, 137, 137, 138, 140, 144, 132, 139, 144, 151, 137, 135, 147, 130, 132, 139, 139, 146, 128, 129, 150, 143, 127, 141, 134, 136, 136, 132, 133, 149, 132, 142, 125, 140, 131, 127, 147, 138, 130, 134, 137, 135, 142, 137, 140, 139, 139, 146, 148, 141, 143, 135, 142, 137, 135, 143, 150, 132, 143, 141, 140, 150, 142, 138, 138, 135, 137, 147, 134, 138, 142, 141, 146, 141, 142, 136, 138, 142, 136, 146, 137, 146, 143, 137, 142, 136, 129, 136, 139, 139, 138, 136, 139, 154, 138, 127, 143, 143, 146, 131, 142, 143, 136, 134, 146, 141, 135, 140, 140, 133, 133, 139, 141, 143, 140, 139, 141, 136, 127, 142, 135, 144, 145, 149, 136, 129, 146, 138, 133, 135, 136, 135, 114, 141, 148, 136, 144, 146, 143, 129, 143, 145, 143, 139, 147, 135, 142, 140, 139, 144, 138, 144, 131, 133, 138, 134, 133, 147, 134, 139, 139, 141, 138, 148, 133, 130, 137, 130, 145, 132, 138, 132, 144, 144, 133, 132, 143, 146, 139, 142, 155, 141, 137, 143, 140, 142, 135, 133, 145, 138, 137, 135, 142, 142, 143, 138, 141, 149, 154, 138, 136, 133, 140, 132, 130, 138, 144, 147, 134, 136, 142, 149, 128, 141, 135, 132, 139, 137, 146, 133, 138, 145, 134, 144, 140, 125, 139, 135, 138, 141, 128, 140, 138, 128, 139, 137, 142, 142, 143, 147, 134, 136, 137, 137, 142, 151, 148, 129, 137, 149, 143, 138, 140, 142, 133, 130, 143, 130, 144, 141, 146, 135, 139, 133, 137, 135, 156, 142, 138, 137, 138, 134, 125, 127, 132, 141, 136, 139, 138, 130, 138, 139, 140, 139, 135, 132, 136, 147, 133, 133, 143, 136, 133, 143, 142, 130, 139, 142, 132, 134, 136, 140, 143, 131, 136, 139, 129, 143, 134, 134, 128, 128, 138, 141, 135, 147, 137, 131, 146, 131, 146, 134, 146, 132, 140, 141, 142, 145, 137, 140, 133, 133, 140, 135, 149, 144, 131, 144, 141, 137, 135, 143, 146, 148, 143, 146, 137, 140, 130, 142, 136, 134, 138, 135, 142, 153, 135, 138, 141, 145, 127, 137, 127, 135, 142, 147, 142, 139, 145, 145, 138, 136, 137, 128, 134, 143, 138, 133, 136, 139, 135, 142, 134, 143, 138, 148, 140, 132, 134, 141, 147, 149, 155, 141, 141, 142, 145, 143, 123, 144, 126, 140, 145, 133, 137, 145, 140, 137, 148, 144, 138, 133, 130, 137, 141, 135, 137, 145, 132, 151, 141, 135, 139, 140, 128, 125, 138, 148, 139, 142, 139, 140, 140, 137, 132, 132, 145, 140, 146, 157, 131, 139, 133, 125, 143, 144, 144, 140, 143, 142, 143, 138, 136, 140, 144, 143, 134, 135, 140, 134, 133, 133, 141, 144, 130, 148, 148, 144, 145, 145, 141, 140, 129, 141, 130, 135, 131, 142, 132, 134, 138, 127, 137, 132, 146, 143, 141, 137, 138, 133, 136, 136, 139, 137, 140, 136, 138, 143, 140, 137, 140, 141, 136, 139, 139, 140, 139, 141, 142, 139, 139, 141, 140, 139, 136, 142, 139, 143, 141, 139, 140, 139, 142, 137, 140, 140, 140, 138, 143, 139, 139, 138, 138, 140, 140, 138, 142, 142, 138, 140, 138, 133, 137, 139, 142, 140, 141, 140, 139, 139, 141, 138, 139, 137, 137, 139, 140, 137, 139, 142, 140, 139, 141, 137, 141, 137, 140, 140, 140, 138, 140, 138, 139, 141, 138, 140, 142, 140, 136, 140, 141, 140, 139, 131, 137, 141, 138, 139, 140, 141, 140, 141, 138, 142, 140, 138, 139, 139, 143, 142, 139, 138, 139, 139, 141, 139, 140, 140, 144, 136, 140, 140, 136, 133, 139, 139, 139, 139, 139, 140, 138, 138, 139, 140, 139, 137, 139, 139, 136, 140, 142, 138, 139, 139, 138, 140, 139, 138, 142, 141, 140, 139, 138, 141, 136, 139, 138, 140, 139, 137, 141, 139, 139, 139, 140, 139, 138, 140, 139, 142, 141, 139, 141, 135, 141, 141, 139, 138, 139, 139, 141, 139, 139, 142, 141, 139, 140, 141, 137, 138, 138, 141, 136, 142, 140, 139, 140, 140, 136, 140, 141, 143, 141, 137, 138, 139, 138, 137, 139, 139, 136, 141, 140, 137, 139, 135, 140, 138, 139, 135, 138, 138, 136, 140, 141, 140, 139, 139, 137, 140, 139, 137, 140, 138, 136, 139, 139, 139, 141, 140, 140, 137, 138, 139, 139, 138, 138, 140, 139, 141, 138, 140, 139, 143, 144, 140, 140, 140, 139, 140, 140, 139, 139, 141, 140, 138, 137, 138, 140, 140, 139, 139, 140, 128, 133, 141, 138, 139, 139, 139, 138, 141, 141, 140, 140, 143, 139, 141, 138, 140, 139, 137, 142, 139, 139, 139, 140, 140, 142, 142, 139, 137, 138, 139, 138, 142, 138, 138, 139, 139, 138, 144, 140, 139, 138, 138, 138, 140, 139, 141, 138, 140, 139, 139, 141, 139, 139, 138, 140, 138, 138, 139, 139, 141, 140, 140, 139, 138, 142, 140, 138, 139, 141, 139, 139, 142, 143, 140, 138, 139, 139, 141, 141, 141, 141, 139, 139, 142, 138, 139, 138, 139, 138, 141, 136, 139, 139, 142, 139, 137, 142, 139, 140, 142, 141, 139, 140, 139, 141, 139, 141, 141, 140, 140, 139, 138, 142, 136, 139, 138, 138, 139, 139, 140, 138, 140, 139, 142, 137, 141, 140, 142, 141, 139, 138, 136, 140, 136, 137, 138, 139, 138, 140, 138, 141, 138, 144, 138, 139, 139, 140, 137, 138, 140, 137, 139, 139, 139, 138, 141, 140, 136, 140, 139, 140, 140, 139, 137, 141, 138, 141, 139, 141, 141, 138, 141, 136, 138, 138, 136, 139, 138, 140, 138, 141, 138, 139, 142, 139, 139, 140, 137, 140, 138, 140, 140, 140, 137, 138, 141, 141, 139, 141, 143, 140, 140, 140, 138, 138, 141, 140, 139, 139, 136, 141, 138, 140, 138, 141, 141, 139, 139, 139, 143, 141, 141, 141, 137, 141, 139, 141, 138, 140, 140, 141, 137, 140, 142, 142, 140, 140, 139, 138, 141, 139, 140, 139, 139, 139, 139, 138, 145, 146, 141, 145, 137, 137, 138, 134, 138, 137, 141, 130, 137, 142, 136, 145, 134, 142, 139, 136, 140, 143, 144, 137, 143, 137, 138, 138, 140, 136, 131, 144, 134, 130, 140, 134, 149, 135, 144, 143, 147, 134, 147, 137, 150, 152, 137, 139, 140, 134, 152, 133, 139, 132, 129, 134, 138, 146, 136, 148, 135, 133, 141, 135, 129, 138, 132, 146, 140, 133, 139, 137, 130, 143, 133, 129, 129, 136, 138, 143, 129, 129, 144, 132, 140, 138, 146, 129, 135, 138, 140, 128, 139, 133, 148, 139, 133, 144, 135, 130, 138, 140, 141, 132, 134, 140, 132, 139, 152, 145, 130, 135, 132, 140, 138, 136, 147, 135, 144, 128, 151, 140, 143, 136, 147, 127, 136, 140, 150, 138, 140, 140, 139, 139, 147, 141, 132, 132, 129, 144, 130, 137, 139, 149, 143, 139, 142, 141, 128, 136, 145, 136, 136, 142, 132, 135, 138, 142, 143, 150, 135, 142, 138, 141, 134, 142, 140, 150, 137, 146, 140, 134, 138, 136, 136, 141, 132, 131, 139, 156, 136, 139, 136, 142, 134, 137, 144, 140, 137, 137, 146, 135, 145, 146, 137, 133, 136, 138, 136, 155, 138, 139, 135, 142, 139, 131, 135, 143, 136, 141, 140, 143, 139, 137, 143, 151, 140, 139, 138, 144, 132, 138, 132, 136, 129, 134, 151, 131, 147, 138, 143, 137, 137, 139, 146, 144, 134, 133, 138, 146, 148, 144, 135, 149, 137, 142, 140, 145, 140, 143, 142, 133, 141, 137, 134, 142, 147, 130, 139, 141, 131, 126, 131, 138, 140, 141, 134, 139, 139, 138, 143, 130, 134, 146, 134, 137, 133, 140, 132, 143, 139, 138, 137, 141, 138, 137, 135, 147, 137, 144, 139, 140, 133, 133, 135, 142, 134, 132, 140, 138, 133, 133, 143, 129, 139, 141, 141, 145, 137, 129, 136, 129, 142, 141, 140, 141, 139, 143, 135, 141, 145, 140, 148, 140, 142, 138, 135, 146, 137, 142, 137, 136, 136, 134, 137, 135, 141, 135, 132, 141, 133, 141, 142, 138, 144, 136, 138, 145, 140, 139, 139, 137, 145, 139, 138, 139, 140, 127, 137, 136, 141, 138, 145, 140, 133, 131, 140, 143, 143, 133, 138, 140, 142, 128, 139, 142, 140, 134, 142, 136, 131, 132, 136, 130, 138, 132, 152, 141, 139, 131, 135, 138, 142, 150, 136, 133, 138, 136, 142, 150, 139, 142, 119, 133, 148, 147, 139, 143, 135, 149, 144, 138, 145, 141, 143, 142, 150, 137, 142, 146, 134, 134, 151, 140, 134, 135, 136, 146, 139, 142, 143, 137, 141, 136, 138, 145, 132, 141, 139, 138, 140, 136, 135, 137, 125, 143, 142, 135, 149, 138, 133, 148, 130, 145, 133, 130, 148, 132, 144, 144, 147, 131, 135, 132, 134, 146, 143, 136, 139, 142, 134, 141, 140, 129, 144, 154, 141, 139, 131, 141, 145, 128, 129, 137, 141, 147, 134, 133, 148, 148, 139, 125, 131, 139, 149, 148, 147, 135, 138, 147, 139, 132, 140, 131, 132, 125, 136, 127, 147, 135, 147, 135, 137, 151, 146, 135, 136, 133, 152, 146, 145, 139, 139, 133, 136, 135, 132, 149, 139, 149, 152, 135, 134, 140, 148, 149, 146, 126, 147, 137, 138, 140, 134, 136, 138, 134, 150, 139, 132, 143, 135, 131, 140, 137, 138, 133, 136, 133, 142, 133, 134, 145, 137, 142, 140, 145, 144, 139, 135, 144, 140, 141, 145, 131, 140, 159, 144, 138, 135, 135, 129, 148, 138, 145, 138, 148, 147, 145, 138, 142, 126, 143, 142, 132, 134, 134, 139, 131, 136, 141, 136, 137, 137, 134, 126, 136, 141, 146, 136, 138, 134, 146, 138, 136, 142, 144, 138, 139, 128, 139, 138, 148, 142, 139, 128, 131, 131, 142, 135, 145, 145, 160, 137, 138, 146, 142, 140, 136, 143, 147, 140, 140, 142, 138, 141, 140, 139, 140, 158, 143, 150, 140, 143, 147, 142, 137, 144, 147, 140, 146, 139, 134, 131, 143, 146, 134, 137, 127, 133, 140, 137, 134, 144, 150, 147, 135, 140, 141, 163, 142, 139, 141, 127, 143, 135, 139, 140, 144, 138, 135, 129, 147, 138, 133, 132, 129, 138, 133, 135, 134, 147, 144, 154, 131, 139, 131, 136, 144, 141, 137, 134, 143, 133, 128, 138, 135, 136, 135, 149, 139, 136, 131, 137, 148, 145, 142, 139, 141, 126, 141, 145, 144, 136, 141, 137, 147, 150, 135, 137, 140, 139, 128, 140, 133, 145, 152, 135, 140, 137, 142, 131, 137, 141, 154, 129, 137, 141, 126, 132, 126, 147, 138, 141, 137, 142, 140, 136, 146, 135, 135, 132, 138, 142, 137, 133, 131, 137, 133, 142, 137, 144, 134, 155, 136, 133, 135, 140, 132, 140, 129, 137, 139, 146, 141, 147, 141, 136, 145, 146, 137, 143, 147, 137, 126, 130, 116, 144, 143, 139, 150, 129, 131, 128, 123, 141, 142, 143, 141, 139, 141, 138, 133, 145, 133, 137, 143, 131, 146, 144, 135, 145, 149, 132, 138, 142, 137, 155, 141, 138, 140, 135, 138, 135, 139, 129, 144, 134, 139, 138, 131, 137, 141, 135, 146, 146, 134, 134, 135, 132, 126, 135, 148, 138, 135, 130, 146, 140, 137, 143, 137, 138, 148, 131, 137, 141, 138, 141, 140, 156, 135, 131, 144, 136, 136, 130, 138, 141, 130, 153, 141, 129, 144, 144, 155, 129, 137, 141, 138, 150, 138, 144, 140, 139, 140, 141, 139, 147, 142, 122, 130, 139, 138, 129, 139, 127, 132, 139, 135, 129, 135, 151, 148, 147, 136, 141, 138, 129, 141, 137, 143, 133, 149, 147, 142, 153, 128, 151, 139, 141, 144, 144, 142, 137, 135, 135, 136, 136, 149, 134, 134, 136, 127, 130, 141, 145, 137, 135, 135, 141, 137, 133, 133, 144, 135, 137, 153, 137, 143, 139, 129, 148, 141, 144, 133, 147, 137, 145, 141, 149, 132, 144, 140, 135, 141, 137, 134, 135, 143, 121, 146, 143, 134, 130, 137, 144, 137, 137, 139, 147, 147, 133, 148, 137, 149, 146, 124, 147, 132, 121, 144, 140, 135, 144, 141, 134, 137, 137, 131, 131, 126, 146, 157, 152, 141, 134, 146, 132, 149, 136, 140, 137, 136, 137, 145, 127, 139, 140, 142, 136, 139, 141, 135, 138, 142, 142, 137, 142, 150, 137, 132, 144, 136, 142, 138, 143, 144, 144, 143, 142, 135, 144, 139, 134, 139, 144, 136, 143, 143, 142, 143, 141, 142, 134, 132, 131, 134, 133, 137, 136, 146, 141, 138, 136, 142, 131, 141, 148, 133, 134, 135, 134, 135, 141, 140, 147, 140, 134, 146, 140, 127, 137, 138, 146, 141, 141, 133, 142, 137, 141, 148, 132, 147, 135, 133, 142, 128, 136, 130, 133, 136, 143, 142, 145, 137, 136, 148, 138, 143, 140, 141, 143, 150, 142, 136, 143, 142, 137, 145, 135, 136, 150, 132, 136, 134, 135, 146, 143, 137, 140, 136, 139, 139, 144, 142, 140, 139, 144, 131, 143, 125, 133, 128, 136, 139, 143, 130, 138, 137, 139, 139, 137, 139, 133, 140, 145, 145, 142, 131, 141, 136, 141, 142, 144, 139, 135, 140, 140, 132, 140, 138, 135, 136, 139, 143, 139, 140, 143, 142, 136, 137, 139, 137, 136, 135, 142, 137, 135, 143, 135, 137, 146, 136, 139, 144, 141, 141, 151, 143, 143, 135, 136, 146, 134, 140, 141, 138, 133, 129, 140, 141, 145, 135, 137, 130, 142, 141, 138, 141, 132, 141, 147, 141, 139, 134, 134, 137, 132, 135, 136, 138, 141, 136, 141, 148, 139, 141, 142, 139, 134, 141, 131, 138, 141, 129, 135, 142, 139, 150, 143, 141, 146, 138, 142, 134, 142, 127, 134, 129, 128, 139, 141, 147, 135, 142, 139, 147, 139, 142, 142, 136, 139, 140, 139, 141, 144, 144, 134, 139, 133, 136, 140, 143, 154, 142, 138, 133, 139, 140, 139, 141, 148, 137, 147, 138, 141, 135, 134, 140, 130, 137, 136, 139, 139, 141, 144, 138, 144, 132, 143, 156, 140, 146, 139, 138, 125, 142, 145, 150, 148, 143, 136, 138, 139, 144, 139, 138, 139, 135, 138, 139, 138, 141, 144, 129, 136, 137, 137, 139, 146, 149, 133, 131, 135, 142, 143, 133, 141, 144, 138, 136, 149, 140, 132, 151, 140, 138, 132, 132, 137, 139, 137, 145, 129, 125, 145, 139, 143, 143, 144, 152, 139, 145, 139, 139, 140, 141, 136, 139, 137, 139, 143, 135, 131, 140, 140, 142, 137, 139, 131, 136, 142, 135, 137, 143, 130, 137, 135, 146, 136, 140, 140, 131, 135, 145, 147, 144, 135, 140, 135, 132, 146, 141, 142, 139, 138, 132, 139, 139, 147, 130, 130, 140, 135, 128, 142, 134, 144, 133, 145, 134, 136, 138, 133, 133, 139, 131, 140, 132, 130, 144, 137, 140, 137, 134, 138, 140, 136, 139, 132, 137, 141, 135, 137, 136, 147, 132, 134, 144, 124, 149, 131, 142, 138, 136, 137, 142, 140, 134, 136, 136, 145, 138, 139, 143, 142, 133, 131, 145, 144, 139, 139, 141, 140, 133, 146, 135, 140, 147, 134, 131, 138, 135, 134, 149, 132, 142, 135, 142, 137, 136, 134, 145, 140, 136, 142, 134, 141, 138, 131, 143, 142, 140, 134, 142, 133, 142, 135, 136, 131, 143, 135, 126, 143, 128, 136, 136, 142, 138, 149, 134, 140, 144, 142, 136, 144, 142, 141, 138, 135, 137, 144, 144, 136, 143, 141, 144, 137, 137, 136, 146, 141, 126, 137, 136, 146, 138, 139, 141, 137, 149, 145, 134, 138, 135, 132, 134, 140, 137, 137, 142, 143, 126, 138, 136, 144, 134, 142, 145, 143, 127, 135, 133, 141, 137, 140, 131, 136, 145, 136, 147, 135, 136, 139, 142, 141, 147, 129, 146, 140, 132, 141, 135, 148, 133, 143, 136, 149, 140, 139, 143, 141, 142, 143, 140, 135, 135, 138, 136, 136, 130, 141, 135, 137, 132, 133, 139, 147, 145, 135, 143, 135, 154, 142, 139, 144, 150, 139, 144, 149, 135, 137, 144, 136, 137, 141, 141, 147, 142, 145, 140, 129, 139, 146, 141, 138, 138, 138, 134, 139, 132, 149, 126, 145, 137, 129, 147, 137, 145, 134, 142, 146, 134, 137, 130, 138, 144, 131, 143, 135, 139, 136, 136, 139, 135, 134, 138, 138, 157, 144, 138, 145, 139, 132, 141, 127, 150, 137, 136, 145, 137, 146, 146, 142, 129, 141, 137, 136, 141, 134, 137, 132, 145, 134, 135, 136, 144, 133, 141, 140, 135, 139, 140, 140, 145, 151, 133, 137, 142, 142, 138, 138, 141, 140, 136, 134, 142, 140, 139, 139, 144, 136, 138, 134, 134, 134, 144, 142, 137, 141, 135, 139, 144, 136, 145, 139, 135, 139, 140, 142, 142, 145, 131, 147, 134, 143, 143, 133, 133, 140, 144, 136, 131, 143, 144, 137, 136, 135, 143, 147, 134, 141, 137, 139, 155, 139, 145, 142, 141, 133, 130, 137, 135, 141, 142, 144, 127, 129, 140, 132, 140, 136, 137, 135, 141, 131, 130, 143, 153, 129, 134, 131, 142, 138, 146, 138, 136, 142, 136, 145, 131, 138, 133, 148, 131, 142, 138, 140, 139, 148, 138, 131, 140, 149, 138, 139, 132, 141, 144, 140, 139, 142, 119, 144, 132, 132, 140, 138, 136, 141, 141, 130, 134, 146, 132, 136, 143, 142, 146, 136, 142, 145, 132, 137, 137, 134, 133, 142, 149, 137, 144, 147, 132, 136, 134, 137, 140, 139, 136, 135, 139, 143, 134, 145, 143, 127, 140, 127, 147, 127, 138, 141, 125, 133, 141, 140, 144, 146, 153, 130, 135, 142, 142, 131, 150, 136, 146, 147, 137, 140, 150, 141, 143, 141, 136, 143, 132, 145, 140, 130, 147, 148, 142, 139, 136, 147, 148, 142, 140, 137, 138, 139, 140, 143, 134, 144, 144, 138, 141, 139, 137, 135, 140, 139, 126, 129, 138, 139, 141, 140, 140, 147, 142, 146, 132, 142, 137, 138, 142, 151, 135, 133, 135, 132, 140, 135, 139, 141, 135, 143, 139, 134, 139, 136, 135, 126, 139, 147, 136, 141, 136, 135, 140, 133, 148, 147, 126, 132, 143, 134, 146, 141, 142, 144, 129, 140, 134, 133, 139, 141, 144, 141, 137, 138, 135, 141, 138, 136, 149, 138, 150, 129, 142, 147, 143, 143, 135, 142, 138, 141, 143, 135, 145, 147, 137, 139, 142, 145, 140, 140, 131, 132, 142, 151, 144, 138, 138, 126, 140, 145, 163, 133, 143, 141, 136, 130, 138, 140, 128, 146, 155, 141, 140, 148, 142, 143, 143, 138, 148, 146, 144, 134, 140, 133, 142, 151, 125, 139, 138, 135, 149, 130, 128, 134, 134, 130, 148, 134, 138, 131, 136, 139, 136, 137, 145, 134, 141, 137, 144, 146, 134, 138, 119, 137, 139, 152, 141, 153, 129, 133, 142, 152, 139, 137, 142, 140, 142, 147, 139, 145, 135, 142, 133, 144, 130, 145, 145, 131, 132, 139, 137, 141, 134, 148, 145, 142, 137, 136, 141, 141, 138, 145, 133, 139, 133, 138, 148, 139, 122, 141, 139, 139, 128, 140, 132, 142, 140, 137, 142, 139, 135, 136, 139, 130, 142, 129, 137, 140, 144, 132, 136, 138, 141, 139, 139, 136, 140, 137, 136, 142, 132, 139, 142, 136, 140, 137, 140, 142, 142, 144, 154, 141, 148, 141, 139, 144, 135, 144, 141, 142, 141, 143, 140, 139, 132, 139, 137, 135, 145, 152, 138, 126, 136, 149, 143, 149, 132, 145, 137, 151, 148, 132, 143, 134, 143, 133, 138, 137, 143, 142, 138, 132, 146, 147, 143, 141, 148, 141, 131, 134, 137, 125, 135, 142, 139, 138, 143, 131, 136, 142, 137, 137, 147, 133, 137, 137, 137, 147, 141, 145, 137, 137, 139, 128, 141, 138, 144, 134, 134, 145, 128, 142, 136, 138, 139, 132, 135, 143, 139, 151, 147, 138, 142, 134, 140, 141, 136, 138, 148, 137, 138, 137, 151, 146, 135, 133, 135, 141, 144, 141, 153, 142, 130, 148, 139, 134, 144, 132, 132, 138, 134, 147, 139, 146, 137, 151, 140, 142, 138, 141, 135, 140, 144, 156, 137, 135, 132, 132, 137, 149, 139, 130, 149, 151, 145, 149, 142, 131, 138, 142, 131, 143, 138, 139, 142, 134, 140, 144, 124, 125, 147, 131, 140, 135, 129, 141, 149, 139, 141, 142, 144, 138, 140, 140, 135, 147, 130, 143, 131, 148, 132, 139, 140, 134, 142, 137, 140, 141, 134, 137, 142, 130, 143, 136, 141, 135, 133, 134, 137, 137, 139, 131, 142, 139, 141, 142, 135, 151, 144, 128, 141, 151, 142, 137, 140, 139, 142, 131, 139, 139, 138, 136, 139, 144, 148, 133, 137, 141, 140, 137, 134, 136, 144, 125, 141, 132, 128, 139, 136, 129, 141, 139, 140, 137, 144, 135, 139, 132, 133, 137, 137, 142, 132, 139, 152, 133, 137, 142, 137, 130, 143, 146, 133, 158, 144, 147, 132, 129, 128, 130, 149, 146, 141, 136, 153, 135, 136, 142, 144, 131, 142, 147, 143, 140, 143, 133, 139, 127, 137, 144, 142, 140, 144, 140, 136, 146, 141, 140, 135, 141, 140, 139, 146, 135, 138, 137, 138, 136, 149, 131, 144, 136, 141, 143, 144, 139, 139, 137, 134, 154, 133, 147, 129, 129, 129, 149, 135, 134, 132, 138, 140, 143, 146, 142, 134, 138, 138, 144, 131, 136, 134, 143, 135, 132, 132, 138, 130, 143, 148, 149, 139, 151, 135, 135, 139, 135, 146, 140, 141, 130, 142, 134, 137, 138, 139, 141, 147, 138, 142, 146, 144, 140, 137, 146, 139, 143, 129, 134, 139, 144, 143, 145, 140, 152, 133, 135, 135, 135, 143, 143, 137, 135, 142, 141, 136, 147, 133, 131, 134, 137, 139, 131, 143, 130, 135, 136, 136, 135, 139, 136, 136, 139, 139, 144, 139, 137, 139, 129, 134, 137, 130, 144, 141, 141, 131, 144, 141, 147, 154, 139, 137, 141, 137, 138, 138, 132, 137, 142, 134, 136, 140, 137, 134, 151, 136, 140, 137, 129, 137, 128, 144, 149, 142, 133, 144, 134, 144, 138, 133, 137, 133, 140, 144, 133, 147, 123, 133, 141, 146, 139, 143, 142, 131, 142, 144, 140, 147, 143, 149, 144, 137, 137, 128, 134, 131, 150, 134, 141, 142, 132, 143, 134, 141, 137, 133, 132, 129, 138, 134, 139, 142, 133, 143, 142, 146, 143, 137, 139, 146, 140, 148, 140, 145, 143, 131, 139, 143, 139, 145, 136, 139, 136, 147, 144, 150, 139, 148, 144, 141, 137, 135, 134, 141, 141, 146, 148, 139, 141, 136, 137, 136, 141, 142, 136, 131, 146, 142, 136, 133, 141, 130, 134, 135, 130, 131, 151, 139, 141, 138, 141, 129, 145, 138, 135, 127, 144, 142, 141, 145, 145, 145, 150, 135, 135, 143, 137, 139, 142, 132, 141, 140, 145, 132, 156, 144, 137, 132, 147, 132, 150, 144, 135, 136, 136, 131, 143, 134, 136, 138, 135, 140, 151, 130, 148, 137, 141, 127, 134, 139, 137, 137, 126, 130, 141, 133, 138, 136, 131, 126, 134, 145, 135, 139, 136, 139, 136, 134, 131, 142, 140, 137, 139, 154, 141, 137, 140, 133, 133, 132, 134, 142, 147, 143, 135, 139, 135, 141, 144, 144, 144, 137, 139, 135, 140, 140, 135, 140, 145, 140, 144, 140, 147, 136, 136, 137, 142, 134, 150, 148, 135, 131, 144, 139, 144, 141, 154, 135, 130, 145, 137, 141, 137, 147, 139, 140, 143, 133, 136, 150, 145, 145, 137, 143, 136, 144, 139, 144, 131, 139, 144, 144, 140, 134, 142, 128, 147, 142, 123, 128, 140, 149, 143, 147, 141, 136, 140, 143, 144, 140, 136, 133, 133, 151, 137, 131, 141, 139, 128, 132, 135, 139, 139, 136, 131, 135, 136, 142, 144, 141, 133, 144, 145, 140, 133, 137, 133, 139, 136, 145, 131, 144, 140, 135, 140, 138, 135, 131, 139, 148, 139, 130, 139, 138, 135, 142, 138, 138, 139, 141, 139, 138, 140, 146, 142, 135, 145, 147, 144, 139, 145, 142, 140, 137, 138, 134, 143, 134, 147, 141, 139, 137, 129, 141, 140, 143, 142, 144, 138, 128, 136, 135, 141, 143, 133, 143, 138, 131, 139, 143, 132, 134, 140, 137, 137, 138, 127, 141, 141, 141, 132, 139, 134, 130, 140, 143, 150, 150, 129, 132, 141, 138, 144, 124, 135, 138, 138, 139, 143, 143, 147, 144, 134, 132, 136, 154, 135, 134, 146, 141, 136, 139, 131, 153, 128, 147, 149, 140, 143, 129, 139, 140, 137, 132, 143, 133, 133, 134, 131, 143, 143, 148, 140, 139, 138, 131, 134, 139, 138, 135, 126, 141, 133, 139, 140, 144, 144, 130, 143, 135, 127, 129, 138, 133, 135, 139, 139, 139, 135, 138, 144, 142, 143, 142, 130, 145, 131, 146, 131, 133, 140, 138, 139, 138, 142, 140, 143, 143, 140, 133, 130, 138, 144, 137, 141, 143, 144, 139, 139, 140, 138, 144, 138, 137, 140, 132, 135, 131, 145, 140, 128, 142, 145, 141, 138, 138, 145, 141, 133, 144, 147, 138, 131, 141, 129, 143, 134, 134, 143, 143, 145, 136, 138, 149, 133, 148, 138, 137, 141, 143, 136, 135, 143, 149, 135, 127, 137, 137, 132, 144, 140, 137, 143, 141, 142, 138, 136, 141, 137, 145, 140, 138, 135, 131, 137, 137, 146, 143, 142, 137, 144, 139, 132, 136, 134, 138, 143, 146, 146, 143, 140, 134, 142, 148, 135, 142, 136, 134, 136, 137, 148, 142, 130, 139, 141, 139, 137, 133, 137, 140, 127, 138, 143, 147, 136, 139, 146, 131, 137, 152, 130, 134, 140, 131, 132, 141, 141, 136, 139, 140, 135, 130, 138, 141, 141, 140, 136, 136, 140, 141, 149, 134, 139, 140, 140, 140, 133, 143, 134, 136, 140, 144, 146, 138, 146, 136, 137, 143, 146, 138, 136, 140, 146, 145, 130, 142, 135, 146, 136, 140, 144, 134, 138, 142, 136, 143, 140, 142, 136, 142, 148, 136, 135, 142, 132, 143, 134, 139, 133, 143, 146, 134, 145, 141, 140, 135, 146, 128, 136, 132, 136, 141, 139, 140, 143, 150, 139, 147, 140, 141, 140, 131, 134, 130, 143, 134, 135, 148, 143, 136, 142, 131, 140, 139, 140, 146, 143, 138, 142, 131, 126, 139, 133, 139, 140, 136, 139, 142, 137, 138, 143, 148, 145, 144, 140, 142, 145, 144, 136, 134, 145, 134, 137, 135, 144, 140, 142, 131, 135, 142, 149, 139, 138, 140, 149, 136, 139, 136, 136, 133, 143, 132, 138, 128, 134, 139, 133, 147, 135, 140, 134, 127, 136, 145, 145, 130, 138, 140, 142, 138, 144, 145, 135, 158, 143, 138, 140, 140, 134, 141, 147, 139, 136, 132, 136, 142, 140, 134, 141, 141, 144, 134, 133, 136, 136, 136, 131, 138, 138, 137, 140, 136, 142, 143, 133, 138, 142, 142, 132, 148, 141, 138, 146, 143, 143, 144, 135, 131, 135, 132, 146, 139, 147, 141, 133, 135, 143, 142, 138, 140, 137, 135, 149, 132, 144, 133, 136, 149, 158, 140, 137, 138, 136, 134, 144, 144, 139, 141, 130, 141, 151, 146, 144, 137, 142, 134, 142, 140, 139, 151, 134, 135, 140, 138, 132, 138, 137, 137, 142, 143, 137, 130, 142, 137, 137, 132, 144, 139, 137, 143, 138, 140, 141, 135, 134, 145, 136, 140, 153, 144, 134, 129, 147, 145, 139, 138, 134, 134, 141, 139, 143, 145, 138, 139, 138, 144, 136, 144, 135, 137, 146, 133, 144, 139, 144, 129, 145, 145, 140, 136, 139, 135, 134, 134, 142, 142, 140, 134, 137, 141, 146, 144, 144, 138, 131, 141, 141, 133, 140, 140, 138, 135, 142, 133, 151, 140, 137, 129, 127, 141, 142, 131, 137, 137, 143, 147, 144, 133, 143, 137, 147, 143, 136, 135, 132, 136, 144, 139, 138, 144, 131, 144, 132, 136, 130, 139, 135, 135, 145, 142, 142, 137, 138, 136, 135, 136, 137, 147, 142, 140, 138, 136, 152, 133, 141, 135, 137, 136, 143, 150, 137, 143, 139, 135, 146, 142, 138, 138, 138, 142, 140, 135, 132, 136, 143, 134, 135, 133, 137, 142, 137, 128, 134, 137, 138, 136, 136, 133, 145, 137, 142, 139, 141, 153, 135, 139, 141, 133, 132, 136, 141, 139, 144, 145, 136, 137, 134, 134, 135, 138, 139, 138, 132, 139, 135, 137, 148, 139, 138, 139, 144, 127, 141, 139, 136, 138, 139, 128, 151, 127, 142, 134, 134, 140, 134, 133, 143, 139, 140, 141, 142, 135, 137, 144, 139, 139, 138, 140, 141, 132, 138, 137, 146, 139, 136, 141, 140, 139, 131, 141, 142, 143, 143, 137, 139, 138, 145, 133, 131, 143, 133, 131, 135, 140, 141, 141, 128, 145, 137, 135, 133, 135, 132, 132, 141, 136, 139, 140, 133, 133, 138, 138, 138, 136, 139, 145, 138, 135, 136, 136, 136, 140, 133, 146, 141, 139, 147, 138, 125, 141, 144, 143, 139, 136, 138, 135, 144, 138, 137, 141, 137, 142, 134, 139, 133, 141, 142, 140, 133, 139, 135, 140, 142, 131, 141, 134, 139, 134, 135, 134, 140, 143, 139, 136, 134, 142, 135, 134, 137, 140, 140, 142, 139, 138, 141, 138, 141, 138, 132, 150, 133, 135, 140, 141, 147, 136, 135, 137, 131, 147, 139, 134, 138, 140, 138, 136, 137, 148, 135, 148, 139, 144, 134, 143, 137, 137, 149, 136, 138, 140, 143, 139, 139, 147, 140, 129, 139, 133, 130, 139, 139, 132, 135, 136, 135, 130, 136, 145, 140, 144, 136, 137, 134, 154, 135, 144, 139, 150, 135, 156, 140, 131, 147, 143, 141, 145, 137, 141, 137, 136, 145, 141, 140, 136, 137, 143, 135, 135, 148, 138, 141, 138, 146, 143, 136, 139, 139, 146, 138, 135, 137, 144, 149, 133, 135, 145, 139, 134, 140, 134, 143, 150, 141, 138, 135, 139, 140, 140, 138, 136, 149, 132, 140, 148, 140, 138, 137, 137, 132, 139, 143, 135, 131, 140, 142, 133, 135, 153, 139, 138, 131, 142, 139, 136, 135, 145, 137, 138, 144, 142, 142, 134, 137, 130, 149, 141, 150, 132, 138, 136, 131, 134, 140, 139, 138, 138, 139, 140, 128, 142, 137, 138, 147, 130, 139, 137, 135, 142, 138, 138, 145, 136, 133, 132, 142, 140, 143, 141, 150, 134, 138, 140, 143, 145, 131, 143, 131, 134, 136, 135, 128, 140, 128, 134, 136, 136, 144, 138, 148, 130, 136, 147, 136, 146, 138, 137, 136, 147, 137, 136, 132, 141, 142, 139, 143, 130, 141, 135, 138, 137, 139, 138, 134, 139, 140, 140, 142, 146, 141, 137, 136, 133, 138, 149, 133, 138, 143, 133, 145, 149, 134, 138, 144, 141, 138, 139, 141, 136, 144, 137, 139, 137, 134, 139, 137, 143, 130, 134, 135, 145, 136, 137, 134, 134, 133, 139, 141, 130, 137, 142, 152, 142, 138, 144, 133, 137, 136, 144, 140, 130, 143, 143, 136, 134, 134, 131, 144, 138, 135, 131, 143, 148, 135, 141, 137, 138, 138, 142, 140, 142, 144, 143, 152, 132, 141, 139, 133, 138, 125, 139, 147, 133, 138, 140, 144, 147, 142, 137, 147, 143, 128, 135, 135, 147, 152, 141, 136, 142, 135, 128, 134, 139, 133, 143, 143, 135, 144, 135, 138, 141, 139, 143, 138, 129, 144, 143, 145, 138, 141, 143, 140, 137, 138, 140, 141, 135, 146, 139, 130, 146, 132, 142, 139, 131, 151, 137, 142, 134, 136, 136, 136, 141, 145, 139, 144, 138, 145, 146, 141, 128, 135, 135, 139, 134, 144, 137, 140, 141, 140, 143, 135, 138, 143, 137, 143, 139, 152, 143, 139, 134, 144, 135, 141, 141, 140, 142, 147, 138, 139, 138, 139, 141, 147, 138, 136, 142, 137, 129, 133, 141, 131, 148, 136, 143, 138, 142, 139, 140, 143, 143, 141, 134, 134, 136, 138, 134, 136, 136, 135, 134, 133, 133, 145, 144, 135, 140, 141, 140, 132, 143, 131, 142, 134, 146, 140, 139, 135, 146, 144, 131, 139, 133, 130, 145, 137, 134, 141, 145, 141, 132, 144, 138, 143, 140, 139, 148, 145, 134, 142, 141, 134, 129, 138, 143, 128, 137, 133, 135, 140, 141, 139, 142, 141, 134, 142, 142, 139, 136, 143, 136, 140, 138, 140, 141, 136, 148, 141, 147, 139, 140, 140, 135, 142, 139, 147, 133, 140, 137, 136, 143, 138, 136, 138, 137, 138, 138, 130, 137, 140, 138, 134, 139, 147, 138, 148, 138, 145, 138, 133, 155, 145, 137, 136, 140, 134, 133, 145, 137, 144, 143, 140, 134, 145, 134, 141, 136, 138, 150, 141, 142, 134, 140, 139, 138, 141, 139, 141, 142, 139, 146, 145, 138, 133, 133, 145, 136, 150, 144, 128, 141, 140, 139, 140, 132, 154, 137, 134, 141, 139, 131, 152, 139, 131, 139, 138, 148, 147, 133, 144, 131, 137, 142, 138, 142, 136, 142, 140, 138, 137, 137, 133, 142, 139, 133, 132, 140, 141, 131, 141, 131, 139, 137, 137, 144, 136, 142, 136, 139, 136, 134, 143, 134, 139, 138, 145, 142, 142, 140, 141, 137, 140, 138, 133, 139, 135, 141, 139, 141, 136, 135, 129, 138, 148, 137, 140, 141, 137, 133, 139, 139, 144, 130, 136, 141, 158, 144, 138, 148, 139, 134, 137, 143, 142, 142, 134, 156, 144, 137, 138, 140, 132, 141, 135, 141, 141, 139, 148, 125, 130, 147, 138, 133, 134, 142, 142, 149, 137, 131, 137, 137, 127, 140, 148, 129, 132, 145, 138, 143, 139, 140, 134, 134, 136, 139, 138, 158, 133, 141, 139, 140, 143, 139, 137, 139, 131, 141, 149, 140, 136, 140, 145, 138, 142, 133, 137, 140, 135, 138, 135, 141, 139, 134, 137, 128, 147, 141, 139, 144, 137, 143, 143, 146, 141, 134, 137, 136, 137, 136, 141, 142, 140, 142, 140, 141, 135, 136, 140, 133, 137, 135, 137, 136, 138, 135, 143, 138, 144, 137, 132, 149, 140, 139, 139, 141, 130, 144, 141, 148, 140, 137, 140, 141, 136, 137, 136, 136, 141, 148, 136, 143, 136, 143, 127, 147, 132, 142, 141, 135, 134, 142, 133, 139, 136, 146, 145, 123, 141, 143, 132, 130, 128, 134, 140, 143, 140, 141, 143, 140, 137, 131, 135, 123, 139, 140, 140, 132, 129, 135, 142, 139, 137, 141, 149, 138, 139, 131, 130, 136, 142, 137, 135, 133, 139, 143, 140, 134, 143, 134, 144, 132, 131, 145, 147, 140, 135, 133, 132, 141, 134, 137, 143, 129, 140, 144, 146, 147, 132, 140, 145, 135, 130, 130, 136, 133, 134, 136, 135, 148, 131, 146, 143, 135, 131, 140, 135, 139, 145, 138, 131, 135, 134, 142, 133, 141, 143, 138, 142, 135, 140, 135, 138, 131, 136, 144, 144, 145, 133, 134, 144, 139, 137, 132, 132, 136, 143, 149, 148, 135, 136, 148, 142, 141, 146, 144, 138, 142, 150, 134, 143, 144, 143, 146, 133, 137, 133, 145, 134, 134, 139, 142, 143, 143, 140, 137, 136, 138, 149, 145, 132, 143, 131, 138, 129, 141, 140, 137, 145, 145, 130, 142, 133, 138, 134, 137, 142, 141, 138, 144, 147, 129, 143, 139, 136, 149, 144, 131, 131, 136, 141, 138, 142, 139, 133, 119, 132, 141, 140, 134, 133, 131, 139, 144, 137, 137, 143, 145, 134, 139, 137, 139, 127, 136, 141, 142, 140, 138, 143, 134, 153, 140, 136, 129, 136, 142, 136, 136, 145, 138, 135, 129, 152, 135, 128, 135, 140, 139, 136, 149, 128, 137, 135, 140, 145, 139, 141, 138, 126, 134, 139, 138, 145, 143, 136, 142, 135, 140, 144, 143, 135, 129, 139, 136, 133, 139, 131, 138, 131, 141, 129, 143, 147, 140, 144, 138, 138, 132, 134, 149, 137, 133, 146, 135, 136, 144, 139, 136, 142, 140, 141, 140, 135, 142, 140, 136, 133, 143, 142, 151, 142, 142, 130, 133, 135, 139, 133, 129, 134, 135, 137, 131, 139, 144, 139, 133, 142, 143, 150, 148, 131, 139, 147, 137, 132, 139, 143, 142, 137, 140, 143, 150, 140, 132, 139, 137, 140, 141, 132, 139, 132, 136, 136, 136, 138, 140, 141, 143, 132, 136, 136, 133, 126, 134, 138, 142, 135, 140, 141, 142, 131, 140, 136, 139, 138, 143, 142, 145, 132, 143, 146, 140, 132, 144, 142, 129, 135, 140, 141, 134, 141, 139, 141, 147, 132, 140, 137, 139, 142, 144, 137, 136, 140, 137, 145, 138, 144, 153, 136, 143, 140, 142, 132, 145, 150, 144, 129, 146, 136, 135, 135, 138, 145, 140, 135, 154, 141, 142, 138, 144, 144, 141, 141, 141, 137, 135, 130, 137, 150, 137, 143, 141, 144, 140, 128, 135, 143, 141, 134, 147, 132, 141, 138, 140, 133, 133, 139, 134, 141, 142, 133, 145, 141, 136, 129, 139, 138, 130, 140, 146, 142, 135, 142, 156, 146, 139, 142, 142, 140, 142, 141, 133, 144, 137, 140, 141, 130, 133, 141, 140, 140, 141, 139, 144, 128, 145, 136, 145, 135, 144, 136, 144, 134, 146, 141, 139, 140, 137, 148, 133, 141, 134, 137, 142, 138, 143, 141, 143, 147, 137, 133, 139, 152, 141, 136, 144, 145, 139, 135, 143, 133, 132, 141, 136, 130, 138, 150, 140, 162, 141, 137, 149, 155, 136, 137, 139, 134, 147, 141, 137, 137, 142, 139, 136, 136, 146, 139, 144, 129, 139, 137, 131, 133, 136, 135, 135, 137, 139, 141, 140, 126, 135, 143, 133, 137, 141, 134, 132, 140, 136, 131, 140, 134, 131, 130, 141, 134, 144, 149, 145, 139, 132, 134, 140, 131, 148, 139, 147, 138, 132, 139, 143, 134, 138, 141, 134, 131, 132, 134, 139, 131, 140, 134, 141, 149, 139, 131, 133, 138, 137, 144, 148, 138, 134, 138, 139, 135, 145, 143, 142, 139, 141, 134, 150, 141, 135, 132, 143, 136, 143, 138, 136, 134, 144, 134, 141, 139, 128, 141, 137, 143, 130, 132, 145, 138, 133, 141, 126, 142, 139, 131, 140, 140, 135, 139, 137, 139, 142, 138, 145, 134, 136, 137, 139, 142, 137, 135, 135, 141, 137, 141, 141, 138, 140, 140, 135, 133, 132, 132, 132, 131, 130, 131, 143, 136, 138, 143, 138, 131, 135, 138, 139, 141, 144, 129, 143, 142, 132, 137, 136, 148, 145, 138, 148, 134, 137, 139, 133, 132, 134, 138, 145, 143, 140, 138, 135, 138, 137, 136, 141, 150, 134, 132, 140, 129, 149, 153, 138, 139, 150, 144, 144, 153, 145, 145, 139, 136, 136, 135, 136, 137, 143, 144, 129, 138, 143, 135, 138, 139, 134, 150, 140, 135, 141, 145, 145, 141, 142, 144, 134, 133, 142, 148, 137, 135, 132, 135, 140, 138, 134, 129, 134, 131, 148, 139, 140, 141, 137, 136, 141, 150, 142, 135, 143, 132, 133, 141, 146, 140, 140, 127, 135, 138, 138, 129, 141, 134, 135, 146, 148, 139, 144, 146, 141, 134, 138, 140, 137, 141, 137, 139, 146, 141, 140, 143, 127, 134, 141, 138, 141, 142, 147, 130, 140, 145, 137, 138, 144, 137, 140, 140, 145, 139, 132, 137, 137, 134, 135, 140, 139, 135, 142, 131, 138, 140, 143, 140, 143, 130, 135, 143, 139, 140, 129, 134, 143, 130, 142, 141, 143, 140, 132, 138, 141, 134, 134, 140, 144, 137, 140, 129, 138, 143, 138, 134, 139, 135, 134, 134, 151, 135, 128, 128, 136, 143, 143, 132, 132, 140, 134, 138, 137, 145, 135, 145, 136, 133, 134, 144, 138, 135, 140, 141, 143, 139, 146, 149, 153, 136, 141, 133, 139, 137, 140, 137, 125, 146, 134, 141, 138, 140, 137, 136, 140, 137, 130, 148, 134, 131, 135, 135, 139, 134, 146, 142, 133, 142, 137, 148, 136, 139, 138, 149, 139, 135, 139, 144, 136, 151, 146, 144, 141, 142, 135, 141, 143, 140, 149, 138, 138, 137, 136, 136, 142, 138, 142, 145, 140, 133, 138, 136, 141, 132, 123, 133, 128, 125, 141, 137, 137, 139, 141, 149, 132, 123, 139, 137, 140, 134, 133, 136, 138, 136, 136, 142, 140, 137, 139, 144, 144, 143, 136, 140, 131, 138, 138, 143, 132, 141, 138, 144, 149, 144, 133, 129, 141, 146, 140, 144, 137, 137, 146, 130, 143, 138, 137, 141, 138, 140, 147, 135, 137, 146, 132, 138, 141, 141, 139, 152, 150, 141, 140, 132, 152, 135, 136, 147, 139, 130, 137, 140, 143, 133, 134, 143, 140, 143, 134, 141, 139, 144, 138, 135, 134, 143, 130, 138, 141, 133, 140, 139, 137, 135, 137, 134, 132, 139, 139, 137, 138, 135, 131, 140, 131, 136, 149, 140, 135, 143, 140, 136, 135, 128, 143, 132, 139, 134, 129, 144, 142, 134, 137, 140, 136, 139, 145, 147, 154, 139, 144, 149, 136, 145, 142, 133, 144, 142, 140, 140, 139, 137, 134, 142, 142, 136, 132, 139, 144, 140, 140, 145, 141, 152, 136, 167, 138, 137, 138, 135, 139, 137, 132, 140, 135, 131, 140, 144, 134, 140, 134, 145, 132, 137, 142, 144, 138, 132, 137, 125, 141, 135, 141, 139, 143, 144, 139, 134, 140, 137, 133, 142, 137, 133, 140, 143, 136, 141, 137, 147, 126, 137, 134, 140, 136, 145, 139, 133, 146, 136, 138, 137, 144, 132, 148, 140, 145, 140, 141, 129, 141, 144, 138, 140, 138, 138, 148, 134, 141, 148, 140, 136, 141, 149, 140, 142, 138, 145, 139, 142, 134, 136, 144, 146, 136, 135, 140, 134, 136, 143, 140, 147, 145, 132, 138, 136, 140, 142, 136, 137, 135, 143, 142, 127, 136, 139, 139, 143, 142, 135, 138, 135, 134, 149, 147, 140, 142, 130, 139, 143, 149, 136, 139, 140, 147, 141, 145, 140, 134, 137, 135, 146, 140, 130, 133, 147, 140, 140, 125, 145, 138, 142, 154, 139, 133, 134, 139, 141, 144, 139, 139, 139, 135, 138, 137, 137, 142, 139, 137, 144, 141, 139, 141, 151, 144, 148, 146, 141, 136, 139, 141, 130, 132, 130, 139, 142, 146, 142, 146, 137, 134, 137, 134, 134, 145, 138, 136, 138, 142, 136, 139, 135, 139, 133, 142, 149, 145, 142, 137, 137, 143, 139, 139, 138, 141, 140, 145, 140, 139, 138, 140, 137, 131, 143, 145, 148, 143, 141, 139, 141, 144, 137, 139, 135, 135, 138, 142, 144, 144, 140, 138, 137, 135, 145, 132, 135, 135, 134, 137, 140, 133, 146, 141, 135, 135, 135, 126, 140, 138, 128, 139, 134, 154, 145, 135, 149, 138, 140, 136, 137, 142, 143, 142, 146, 133, 148, 136, 160, 148, 145, 144, 119, 136, 139, 143, 143, 108, 143, 139, 135, 138, 144, 142, 138, 146, 136, 138, 141, 138, 138, 137, 131, 132, 136, 145, 138, 142, 134, 143, 140, 134, 145, 143, 142, 146, 133, 151, 136, 149, 130, 135, 139, 138, 147, 143, 147, 134, 129, 140, 128, 142, 142, 136, 142, 143, 147, 134, 144, 138, 135, 116, 131, 142, 135, 140, 143, 138, 145, 137, 135, 134, 144, 144, 140, 136, 140, 142, 139, 141, 142, 132, 138, 134, 136, 143, 134, 142, 141, 144, 134, 137, 143, 134, 146, 150, 143, 141, 140, 125, 149, 153, 141, 132, 131, 152, 131, 134, 139, 147, 140, 163, 133, 155, 142, 140, 153, 139, 141, 133, 146, 142, 141, 142, 132, 138, 137, 126, 130, 142, 129, 136, 142, 142, 136, 140, 143, 142, 138, 136, 143, 140, 140, 146, 135, 139, 140, 146, 145, 129, 141, 138, 134, 146, 144, 139, 145, 131, 141, 132, 140, 133, 142, 136, 138, 137, 143, 137, 150, 145, 137, 137, 134, 133, 136, 135, 128, 139, 137, 141, 127, 138, 136, 132, 138, 128, 139, 133, 132, 135, 140, 140, 138, 132, 142, 143, 142, 146, 140, 131, 146, 149, 136, 135, 139, 129, 135, 148, 140, 118, 133, 138, 134, 145, 139, 136, 136, 137, 132, 133, 135, 135, 139, 142, 147, 139, 137, 142, 140, 133, 143, 133, 143, 131, 148, 142, 127, 134, 136, 130, 138, 127, 148, 140, 133, 141, 137, 136, 132, 137, 144, 148, 138, 128, 138, 142, 138, 136, 135, 135, 134, 138, 134, 132, 133, 137, 152, 144, 143, 135, 127, 134, 140, 128, 141, 139, 133, 150, 145, 137, 135, 130, 143, 135, 124, 137, 132, 139, 137, 130, 144, 133, 133, 142, 143, 132, 141, 136, 136, 126, 141, 144, 133, 134, 141, 131, 128, 129, 135, 143, 142, 130, 136, 140, 139, 151, 124, 139, 126, 140, 147, 123, 148, 133, 135, 140, 139, 130, 140, 132, 145, 122, 137, 138, 141, 136, 136, 138, 137, 142, 132, 141, 141, 141, 140, 143, 138, 149, 140, 160, 138, 137, 129, 142, 131, 142, 130, 137, 146, 138, 155, 134, 141, 138, 135, 138, 143, 142, 141, 140, 136, 134, 147, 142, 141, 142, 140, 126, 138, 137, 145, 148, 140, 145, 145, 129, 139, 137, 131, 125, 135, 138, 137, 134, 143, 142, 142, 140, 133, 130, 128, 142, 142, 137, 150, 130, 137, 143, 143, 135, 130, 139, 135, 138, 131, 143, 127, 132, 133, 145, 146, 150, 140, 135, 141, 135, 137, 133, 138, 141, 145, 139, 137, 139, 144, 132, 133, 141, 140, 135, 136, 134, 126, 132, 133, 147, 141, 136, 128, 138, 142, 138, 133, 145, 146, 140, 132, 134, 146, 138, 133, 135, 142, 132, 128, 135, 143, 152, 149, 137, 138, 137, 143, 140, 137, 147, 143, 135, 146, 132, 145, 138, 131, 146, 118, 154, 141, 137, 136, 134, 132, 128, 137, 134, 140, 139, 129, 134, 148, 146, 140, 133, 136, 129, 134, 130, 153, 141, 146, 148, 135, 138, 149, 148, 142, 131, 137, 140, 141, 129, 132, 139, 133, 139, 135, 139, 140, 133, 131, 136, 141, 134, 142, 136, 140, 136, 144, 144, 137, 139, 152, 136, 139, 143, 129, 133, 131, 151, 131, 140, 134, 133, 138, 135, 147, 137, 138, 141, 133, 143, 137, 145, 135, 138, 133, 144, 138, 139, 132, 149, 150, 145, 145, 145, 135, 153, 136, 136, 133, 147, 138, 140, 138, 144, 126, 139, 138, 143, 134, 152, 133, 140, 132, 144, 134, 132, 150, 143, 143, 145, 144, 142, 135, 155, 132, 137, 128, 136, 136, 146, 140, 142, 146, 142, 138, 132, 150, 145, 146, 140, 136, 137, 145, 143, 145, 142, 127, 134, 145, 146, 145, 139, 140, 143, 136, 146, 138, 129, 141, 141, 141, 141, 145, 144, 132, 137, 145, 131, 141, 143, 139, 134, 139, 137, 142, 152, 147, 132, 133, 124, 137, 129, 137, 132, 139, 147, 149, 147, 134, 145, 133, 139, 130, 135, 138, 156, 141, 134, 130, 132, 135, 140, 146, 148, 145, 142, 138, 135, 139, 142, 126, 138, 136, 138, 136, 143, 137, 124, 142, 134, 140, 139, 146, 134, 133, 136, 143, 133, 138, 138, 133, 136, 131, 142, 134, 126, 134, 143, 137, 138, 136, 143, 130, 132, 139, 137, 125, 141, 133, 141, 130, 132, 136, 136, 124, 147, 154, 132, 145, 138, 145, 141, 139, 138, 146, 130, 145, 137, 148, 141, 144, 136, 140, 133, 133, 138, 130, 141, 141, 129, 138, 144, 128, 135, 133, 138, 150, 141, 139, 133, 132, 143, 136, 128, 136, 137, 135, 141, 138, 142, 145, 133, 141, 137, 143, 144, 144, 142, 150, 139, 136, 138, 133, 144, 159, 139, 133, 133, 147, 135, 139, 131, 148, 126, 136, 131, 141, 138, 148, 140, 146, 145, 122, 140, 134, 128, 142, 132, 145, 134, 135, 138, 136, 142, 169, 143, 140, 151, 140, 143, 144, 144, 149, 140, 147, 150, 138, 132, 135, 142, 149, 137, 129, 135, 141, 133, 148, 142, 137, 153, 134, 143, 142, 133, 139, 131, 137, 132, 141, 128, 134, 139, 140, 145, 135, 139, 132, 129, 149, 145, 146, 142, 138, 144, 128, 137, 140, 143, 129, 135, 151, 143, 134, 137, 155, 139, 147, 141, 138, 137, 137, 131, 142, 156, 140, 140, 139, 137, 146, 147, 133, 129, 137, 157, 133, 135, 132, 134, 144, 145, 129, 140, 140, 130, 141, 155, 141, 149, 132, 146, 133, 140, 133, 142, 134, 136, 146, 138, 138, 142, 136, 134, 127, 142, 128, 137, 134, 136, 144, 139, 138, 131, 140, 127, 122, 142, 132, 138, 135, 136, 130, 131, 132, 155, 132, 136, 144, 137, 138, 143, 145, 141, 138, 132, 142, 148, 131, 132, 136, 136, 138, 139, 139, 137, 139, 138, 142, 132, 141, 136, 132, 130, 139, 133, 133, 142, 133, 131, 142, 148, 126, 140, 135, 154, 133, 141, 132, 156, 136, 142, 141, 143, 144, 140, 148, 137, 145, 151, 126, 139, 131, 131, 141, 134, 142, 137, 149, 138, 140, 132, 136, 131, 143, 141, 133, 145, 144, 148, 147, 135, 142, 141, 143, 137, 140, 136, 166, 133, 140, 134, 141, 140, 135, 139, 141, 142, 131, 145, 145, 141, 134, 138, 140, 141, 140, 144, 144, 127, 139, 151, 146, 129, 135, 143, 144, 138, 135, 150, 141, 120, 143, 149, 133, 133, 144, 136, 134, 139, 144, 134, 143, 138, 133, 132, 136, 143, 138, 133, 138, 141, 134, 146, 142, 144, 140, 144, 141, 148, 138, 143, 142, 139, 127, 132, 131, 138, 145, 152, 147, 136, 141, 144, 141, 143, 131, 139, 141, 138, 147, 140, 132, 137, 131, 147, 143, 137, 148, 137, 146, 140, 146, 128, 136, 148, 140, 135, 140, 139, 134, 134, 137, 146, 139, 141, 138, 135, 138, 142, 145, 147, 135, 135, 137, 140, 135, 146, 140, 134, 154, 131, 145, 146, 138, 132, 128, 142, 137, 125, 133, 150, 131, 133, 127, 143, 131, 139, 139, 139, 139, 137, 136, 140, 141, 143, 135, 134, 138, 126, 150, 136, 133, 144, 137, 138, 134, 149, 135, 145, 135, 141, 142, 147, 142, 139, 131, 143, 135, 133, 137, 139, 147, 127, 145, 143, 148, 135, 142, 144, 129, 138, 134, 147, 136, 141, 142, 138, 132, 137, 140, 138, 134, 133, 140, 145, 138, 131, 142, 142, 137, 145, 141, 138, 144, 140, 140, 143, 147, 139, 154, 131, 136, 145, 135, 136, 140, 131, 134, 130, 138, 140, 140, 143, 140, 140, 138, 136, 135, 128, 134, 139, 135, 148, 143, 150, 134, 139, 144, 140, 136, 139, 134, 139, 141, 142, 147, 132, 143, 150, 137, 137, 146, 147, 138, 136, 139, 140, 145, 134, 149, 142, 133, 136, 129, 148, 143, 137, 139, 140, 135, 137, 142, 133, 142, 133, 133, 132, 140, 133, 137, 144, 137, 135, 144, 142, 138, 138, 130, 137, 145, 141, 142, 139, 141, 135, 136, 145, 138, 143, 142, 137, 135, 146, 133, 145, 141, 129, 139, 142, 141, 140, 132, 137, 132, 133, 138, 144, 147, 127, 143, 135, 125, 132, 127, 137, 135, 132, 138, 137, 139, 135, 140, 131, 137, 131, 143, 132, 141, 138, 135, 130, 148, 138, 140, 130, 137, 132, 142, 141, 139, 139, 137, 133, 150, 137, 141, 140, 151, 135, 142, 141, 135, 136, 141, 143, 142, 147, 139, 141, 149, 142, 133, 152, 134, 145, 138, 145, 133, 140, 133, 138, 141, 140, 145, 136, 140, 134, 142, 145, 137, 132, 137, 140, 139, 143, 137, 136, 142, 136, 135, 137, 139, 136, 129, 136, 137, 142, 135, 135, 146, 140, 133, 140, 146, 147, 136, 136, 135, 134, 135, 152, 138, 135, 141, 143, 139, 141, 132, 130, 150, 145, 141, 147, 130, 130, 147, 141, 138, 138, 137, 139, 146, 136, 144, 129, 131, 136, 147, 142, 145, 138, 132, 142, 154, 142, 134, 138, 133, 133, 142, 136, 136, 135, 140, 127, 142, 142, 141, 144, 138, 142, 140, 139, 133, 140, 148, 135, 138, 139, 145, 146, 133, 138, 139, 132, 130, 146, 131, 137, 150, 138, 140, 138, 132, 141, 144, 144, 139, 139, 143, 144, 145, 148, 138, 140, 137, 137, 143, 145, 142, 140, 135, 145, 141, 143, 145, 139, 140, 152, 137, 144, 149, 141, 131, 136, 141, 135, 139, 141, 136, 135, 136, 138, 140, 137, 134, 125, 136, 132, 138, 139, 139, 139, 148, 140, 134, 135, 131, 137, 149, 140, 139, 132, 137, 140, 135, 140, 139, 140, 135, 133, 139, 136, 140, 137, 142, 141, 143, 141, 130, 137, 141, 143, 134, 144, 138, 148, 135, 134, 134, 136, 146, 139, 144, 134, 137, 131, 142, 133, 141, 128, 135, 131, 147, 146, 138, 137, 132, 142, 138, 140, 135, 142, 140, 144, 139, 144, 138, 138, 141, 151, 146, 144, 139, 137, 138, 134, 141, 134, 146, 132, 136, 149, 142, 142, 143, 138, 140, 134, 139, 139, 141, 142, 133, 137, 138, 144, 138, 138, 141, 137, 140, 136, 144, 138, 139, 133, 141, 134, 141, 141, 141, 139, 136, 136, 134, 143, 137, 135, 133, 137, 139, 138, 131, 131, 137, 140, 134, 138, 141, 143, 143, 146, 138, 146, 136, 142, 133, 139, 146, 133, 145, 134, 145, 140, 158, 139, 138, 141, 141, 132, 147, 129, 134, 142, 146, 142, 137, 129, 137, 146, 138, 145, 138, 132, 139, 138, 142, 139, 149, 139, 135, 142, 136, 143, 146, 134, 133, 136, 138, 132, 142, 145, 141, 136, 140, 145, 147, 146, 148, 138, 142, 136, 134, 140, 134, 140, 136, 139, 141, 142, 138, 135, 137, 140, 140, 138, 135, 138, 137, 141, 127, 138, 133, 135, 143, 134, 132, 136, 138, 146, 134, 133, 142, 169, 138, 136, 133, 143, 138, 142, 138, 153, 136, 137, 143, 145, 136, 134, 141, 135, 140, 137, 140, 140, 122, 136, 135, 138, 144, 147, 141, 140, 128, 142, 131, 146, 136, 138, 143, 135, 152, 136, 136, 141, 143, 136, 133, 138, 138, 142, 134, 131, 141, 137, 143, 139, 141, 138, 144, 133, 132, 141, 136, 134, 138, 139, 133, 135, 137, 143, 133, 139, 145, 136, 131, 134, 134, 142, 137, 135, 134, 139, 131, 137, 150, 130, 141, 142, 143, 136, 134, 140, 140, 139, 135, 134, 145, 131, 138, 155, 143, 139, 135, 136, 139, 138, 138, 138, 135, 132, 141, 134, 132, 136, 140, 141, 130, 135, 136, 140, 137, 139, 134, 141, 131, 141, 139, 140, 134, 144, 137, 144, 146, 141, 141, 133, 139, 134, 138, 133, 134, 136, 145, 149, 135, 130, 135, 138, 137, 137, 142, 140, 142, 143, 145, 137, 136, 138, 141, 138, 131, 135, 138, 135, 137, 127, 141, 143, 138, 149, 141, 140, 148, 145, 138, 146, 141, 141, 137, 143, 132, 132, 146, 136, 143, 138, 143, 139, 141, 146, 143, 148, 140, 139, 139, 142, 143, 138, 135, 137, 138, 134, 140, 138, 138, 137, 136, 139, 140, 135, 137, 138, 141, 145, 139, 142, 134, 132, 128, 134, 139, 146, 135, 138, 139, 139, 141, 142, 139, 138, 137, 138, 133, 141, 149, 140, 139, 136, 139, 144, 139, 133, 132, 134, 136, 133, 138, 142, 132, 136, 134, 137, 137, 142, 133, 134, 138, 128, 131, 143, 137, 138, 139, 139, 133, 144, 139, 137, 143, 145, 139, 142, 150, 136, 141, 141, 142, 147, 145, 130, 135, 142, 136, 140, 134, 135, 136, 130, 138, 135, 142, 134, 138, 136, 134, 134, 142, 143, 138, 140, 137, 139, 142, 137, 141, 142, 132, 137, 136, 140, 134, 137, 144, 142, 130, 137, 145, 140, 149, 137, 133, 139, 135, 139, 143, 139, 142, 141, 137, 142, 139, 134, 141, 148, 140, 135, 133, 136, 138, 132, 141, 133, 129, 133, 138, 134, 131, 140, 142, 139, 137, 135, 142, 143, 140, 130, 140, 143, 143, 136, 139, 140, 139, 138, 133, 136, 143, 128, 135, 138, 136, 141, 130, 136, 139, 139, 138, 139, 142, 141, 139, 138, 123, 137, 145, 139, 138, 132, 150, 142, 140, 141, 140, 132, 132, 138, 138, 135, 125, 133, 138, 132, 136, 140, 144, 133, 144, 133, 133, 142, 142, 124, 137, 137, 138, 138, 140, 142, 132, 153, 145, 145, 143, 132, 138, 141, 144, 146, 133, 141, 145, 134, 143, 151, 146, 132, 146, 142, 139, 138, 143, 137, 135, 147, 135, 138, 140, 135, 135, 132, 131, 137, 140, 141, 140, 144, 139, 144, 146, 137, 138, 146, 135, 142, 135, 150, 140, 133, 138, 140, 134, 138, 137, 136, 133, 143, 134, 127, 145, 141, 149, 137, 136, 141, 130, 131, 148, 138, 129, 130, 140, 141, 138, 159, 135, 139, 134, 128, 140, 139, 146, 136, 143, 138, 141, 142, 139, 148, 134, 134, 137, 140, 138, 144, 131, 138, 158, 130, 144, 134, 148, 135, 140, 141, 139, 137, 146, 142, 135, 137, 136, 141, 137, 133, 137, 135, 141, 136, 141, 145, 139, 133, 131, 142, 126, 137, 143, 139, 141, 138, 140, 139, 142, 145, 139, 151, 135, 135, 132, 133, 138, 141, 137, 141, 140, 139, 137, 139, 136, 134, 146, 137, 140, 138, 144, 138, 143, 144, 137, 137, 141, 142, 144, 143, 132, 142, 134, 135, 132, 142, 138, 139, 137, 141, 143, 135, 141, 137, 144, 142, 137, 139, 142, 139, 142, 139, 137, 137, 151, 142, 130, 143, 143, 134, 136, 150, 145, 140, 140, 147, 135, 139, 137, 142, 137, 141, 134, 140, 140, 137, 145, 141, 141, 138, 143, 137, 144, 145, 133, 141, 139, 134, 138, 141, 140, 136, 137, 139, 146, 133, 142, 133, 135, 139, 143, 140, 142, 141, 145, 140, 154, 133, 155, 137, 143, 132, 129, 138, 133, 137, 145, 132, 146, 149, 138, 139, 143, 146, 134, 136, 141, 137, 138, 150, 138, 141, 136, 138, 130, 140, 138, 145, 133, 133, 136, 140, 129, 144, 143, 145, 137, 141, 144, 142, 144, 142, 137, 132, 138, 132, 137, 137, 145, 145, 145, 143, 145, 129, 145, 138, 136, 137, 149, 143, 143, 137, 140, 142, 136, 137, 134, 147, 138, 141, 128, 141, 136, 140, 139, 137, 137, 139, 141, 137, 136, 133, 143, 132, 136, 140, 140, 133, 150, 138, 143, 139, 132, 136, 132, 139, 137, 140, 141, 132, 145, 139, 144, 142, 132, 131, 136, 136, 147, 142, 149, 138, 144, 145, 143, 140, 145, 143, 142, 142, 147, 146, 137, 143, 137, 138, 140, 140, 141, 139, 138, 139, 137, 139, 134, 136, 131, 145, 139, 134, 135, 143, 148, 137, 145, 139, 136, 132, 139, 141, 140, 143, 140, 139, 133, 142, 138, 140, 134, 127, 134, 145, 142, 143, 143, 139, 135, 137, 144, 133, 141, 144, 130, 134, 139, 134, 139, 142, 133, 141, 140, 141, 143, 137, 134, 144, 134, 143, 131, 133, 130, 143, 139, 148, 138, 136, 128, 126, 137, 138, 133, 131, 138, 121, 139, 138, 134, 132, 137, 139, 140, 139, 144, 143, 148, 136, 143, 139, 141, 137, 135, 129, 148, 140, 139, 142, 136, 142, 141, 137, 129, 141, 135, 144, 146, 143, 132, 136, 146, 137, 139, 147, 141, 134, 134, 136, 140, 141, 143, 147, 146, 135, 143, 135, 135, 139, 150, 138, 148, 122, 144, 138, 134, 139, 140, 153, 139, 136, 138, 151, 132, 134, 143, 140, 151, 145, 125, 149, 137, 128, 138, 132, 132, 142, 130, 138, 145, 140, 133, 136, 132, 141, 144, 139, 138, 148, 140, 136, 140, 140, 145, 142, 149, 134, 144, 136, 145, 133, 137, 141, 135, 142, 140, 145, 136, 162, 135, 148, 138, 127, 139, 136, 140, 131, 132, 133, 147, 146, 136, 140, 133, 137, 145, 141, 141, 134, 137, 146, 130, 143, 138, 135, 141, 146, 139, 138, 133, 135, 142, 135, 144, 127, 136, 134, 131, 135, 134, 136, 138, 134, 132, 141, 135, 138, 141, 128, 133, 153, 140, 132, 135, 134, 143, 130, 140, 141, 146, 132, 136, 135, 130, 135, 137, 134, 142, 136, 148, 132, 148, 133, 140, 146, 142, 144, 146, 134, 139, 133, 140, 137, 137, 139, 122, 137, 149, 141, 134, 142, 135, 140, 141, 144, 135, 139, 136, 142, 134, 143, 128, 133, 133, 140, 135, 133, 141, 148, 139, 138, 130, 141, 146, 133, 132, 140, 121, 134, 142, 138, 148, 142, 135, 131, 145, 138, 137, 142, 138, 129, 134, 148, 126, 133, 155, 141, 136, 137, 141, 137, 145, 143, 140, 130, 142, 133, 134, 135, 129, 140, 146, 134, 136, 133, 135, 148, 135, 129, 134, 141, 132, 140, 140, 139, 130, 146, 141, 139, 151, 134, 143, 146, 142, 136, 134, 142, 120, 139, 139, 147, 142, 161, 131, 141, 148, 134, 135, 141, 138, 145, 134, 137, 138, 133, 143, 135, 145, 132, 140, 136, 143, 146, 149, 139, 137, 141, 134, 150, 125, 142, 137, 140, 145, 129, 138, 141, 143, 145, 134, 140, 138, 139, 145, 141, 133, 143, 132, 140, 140, 147, 132, 135, 141, 132, 139, 141, 141, 135, 140, 132, 135, 142, 142, 128, 139, 142, 149, 135, 116, 146, 132, 131, 145, 129, 136, 138, 139, 138, 148, 132, 137, 141, 143, 139, 131, 138, 141, 136, 148, 143, 143, 142, 135, 135, 136, 143, 135, 146, 139, 145, 137, 139, 144, 148, 134, 139, 153, 140, 140, 137, 145, 141, 139, 136, 145, 129, 141, 146, 137, 150, 148, 136, 126, 138, 154, 125, 135, 146, 135, 142, 136, 134, 140, 147, 137, 144, 144, 137, 133, 147, 148, 133, 135, 143, 143, 145, 140, 141, 140, 142, 134, 136, 141, 148, 143, 133, 129, 130, 138, 138, 148, 132, 149, 146, 140, 142, 138, 141, 139, 139, 141, 144, 135, 142, 143, 139, 144, 137, 146, 142, 143, 143, 139, 126, 136, 135, 138, 144, 138, 143, 132, 147, 134, 134, 137, 138, 139, 142, 135, 138, 137, 144, 140, 142, 140, 138, 145, 127, 131, 133, 137, 137, 137, 148, 140, 139, 142, 143, 134, 145, 151, 135, 138, 136, 133, 131, 133, 137, 141, 138, 137, 131, 132, 140, 137, 142, 133, 134, 139, 142, 142, 139, 139, 138, 141, 143, 143, 140, 138, 139, 131, 134, 144, 144, 137, 133, 142, 143, 138, 143, 153, 138, 144, 147, 136, 151, 135, 148, 137, 151, 137, 132, 140, 133, 145, 135, 131, 134, 134, 139, 141, 139, 130, 143, 138, 140, 134, 135, 137, 135, 128, 138, 135, 136, 140, 139, 141, 145, 144, 135, 139, 136, 146, 149, 133, 141, 149, 139, 135, 140, 137, 141, 139, 134, 144, 140, 147, 150, 143, 143, 135, 138, 141, 137, 144, 134, 150, 137, 142, 133, 142, 137, 137, 139, 144, 134, 130, 132, 144, 139, 140, 125, 141, 144, 140, 136, 131, 132, 141, 135, 131, 137, 149, 143, 138, 150, 136, 144, 136, 136, 140, 138, 138, 132, 133, 140, 144, 135, 135, 137, 135, 138, 150, 145, 141, 147, 137, 138, 135, 140, 137, 143, 144, 140, 131, 134, 135, 144, 131, 138, 141, 133, 139, 133, 135, 140, 140, 139, 138, 139, 137, 137, 131, 141, 136, 138, 134, 139, 142, 148, 143, 141, 141, 143, 142, 142, 136, 137, 129, 141, 135, 133, 137, 140, 142, 133, 139, 138, 139, 132, 138, 152, 140, 139, 141, 142, 131, 140, 136, 140, 149, 140, 139, 141, 136, 138, 146, 140, 149, 134, 141, 140, 142, 134, 139, 145, 141, 149, 138, 148, 142, 140, 145, 137, 135, 136, 142, 137, 152, 141, 147, 135, 142, 141, 141, 140, 145, 139, 134, 137, 140, 136, 133, 140, 133, 136, 131, 147, 143, 158, 136, 142, 131, 145, 138, 128, 138, 137, 143, 142, 131, 142, 136, 138, 135, 131, 135, 137, 143, 126, 133, 132, 143, 137, 142, 137, 138, 146, 143, 148, 127, 140, 136, 148, 147, 139, 142, 134, 142, 137, 139, 139, 147, 136, 137, 144, 152, 138, 142, 135, 143, 136, 136, 146, 138, 137, 141, 137, 133, 133, 143, 146, 129, 134, 139, 140, 130, 133, 137, 142, 141, 134, 139, 144, 140, 136, 139, 133, 136, 131, 132, 134, 139, 139, 134, 136, 162, 145, 153, 139, 135, 139, 141, 141, 140, 139, 142, 136, 136, 137, 129, 135, 137, 150, 136, 142, 144, 141, 140, 144, 134, 135, 141, 131, 137, 133, 131, 141, 141, 139, 140, 134, 137, 140, 146, 144, 135, 138, 142, 145, 136, 144, 145, 142, 140, 134, 133, 138, 142, 136, 145, 135, 141, 137, 148, 142, 138, 138, 139, 136, 137, 141, 144, 138, 140, 139, 151, 147, 139, 147, 140, 141, 139, 131, 141, 134, 143, 135, 129, 133, 143, 148, 140, 135, 139, 133, 142, 143, 143, 141, 138, 138, 139, 133, 141, 143, 145, 138, 138, 132, 132, 140, 141, 130, 144, 132, 130, 140, 139, 133, 142, 144, 138, 129, 137, 133, 135, 147, 131, 137, 141, 135, 142, 140, 134, 138, 142, 138, 144, 134, 139, 130, 141, 147, 142, 138, 127, 137, 143, 136, 141, 150, 139, 139, 140, 143, 140, 144, 138, 142, 139, 132, 138, 132, 143, 138, 147, 128, 144, 140, 144, 137, 140, 139, 146, 146, 143, 136, 134, 145, 145, 143, 139, 138, 139, 140, 125, 137, 144, 133, 136, 139, 134, 141, 140, 137, 139, 131, 134, 146, 143, 128, 129, 143, 140, 146, 129, 140, 138, 142, 133, 127, 138, 135, 145, 128, 139, 137, 127, 147, 133, 142, 139, 131, 141, 140, 142, 129, 132, 147, 142, 137, 129, 136, 149, 126, 144, 134, 135, 143, 137, 137, 141, 151, 143, 140, 133, 132, 139, 138, 139, 144, 145, 137, 138, 133, 130, 141, 139, 135, 137, 133, 137, 133, 134, 144, 136, 135, 137, 136, 143, 133, 136, 135, 146, 135, 137, 141, 137, 136, 145, 134, 133, 139, 137, 133, 143, 139, 133, 139, 146, 140, 144, 135, 130, 130, 149, 130, 150, 140, 136, 146, 122, 132, 144, 144, 143, 140, 136, 129, 146, 147, 131, 140, 142, 136, 136, 130, 140, 136, 135, 138, 141, 139, 145, 138, 145, 148, 141, 133, 142, 135, 142, 139, 146, 139, 137, 143, 144, 142, 136, 141, 147, 143, 141, 138, 133, 141, 135, 137, 144, 138, 141, 138, 136, 138, 136, 134, 137, 144, 139, 128, 136, 141, 137, 141, 138, 125, 136, 136, 138, 129, 145, 137, 142, 137, 133, 141, 133, 140, 137, 142, 134, 140, 133, 137, 134, 135, 142, 135, 140, 127, 133, 134, 137, 148, 136, 136, 149, 141, 130, 136, 146, 133, 136, 139, 136, 148, 138, 133, 133, 130, 140, 143, 142, 145, 140, 140, 132, 133, 125, 136, 141, 150, 136, 136, 144, 138, 140, 141, 134, 141, 132, 145, 146, 143, 132, 144, 141, 140, 138, 142, 133, 137, 128, 146, 147, 143, 138, 139, 136, 143, 133, 134, 140, 142, 140, 150, 137, 150, 140, 134, 144, 132, 133, 134, 143, 134, 137, 144, 136, 151, 140, 139, 130, 141, 142, 142, 132, 160, 147, 133, 141, 134, 144, 139, 139, 144, 142, 125, 137, 145, 128, 140, 138, 137, 134, 151, 141, 146, 131, 126, 140, 129, 137, 147, 142, 133, 146, 148, 130, 143, 134, 137, 146, 142, 140, 139, 141, 145, 142, 133, 140, 141, 147, 140, 133, 135, 143, 138, 138, 135, 138, 134, 139, 135, 140, 141, 137, 139, 139, 145, 137, 138, 138, 140, 142, 139, 133, 135, 141, 141, 134, 141, 146, 147, 140, 143, 131, 141, 144, 132, 150, 136, 132, 139, 143, 129, 143, 145, 127, 136, 139, 132, 140, 135, 135, 142, 139, 137, 143, 142, 143, 135, 136, 135, 143, 142, 140, 140, 135, 133, 136, 141, 143, 141, 132, 146, 138, 133, 139, 136, 139, 138, 145, 139, 132, 142, 143, 138, 143, 132, 149, 129, 138, 135, 137, 141, 132, 131, 148, 135, 137, 137, 137, 139, 141, 139, 133, 147, 143, 143, 137, 154, 144, 135, 137, 140, 139, 143, 140, 131, 131, 142, 140, 147, 138, 144, 139, 139, 143, 150, 125, 130, 141, 146, 140, 141, 129, 132, 145, 140, 147, 136, 135, 145, 135, 130, 149, 138, 131, 140, 132, 137, 136, 140, 140, 141, 151, 126, 143, 131, 144, 140, 141, 143, 140, 150, 141, 142, 145, 140, 136, 145, 136, 141, 141, 133, 139, 142, 140, 134, 138, 138, 132, 146, 136, 140, 131, 131, 137, 139, 138, 143, 135, 141, 150, 138, 149, 140, 137, 134, 138, 128, 134, 137, 141, 135, 133, 136, 137, 141, 130, 139, 140, 150, 139, 140, 134, 130, 140, 136, 142, 145, 136, 139, 138, 136, 144, 144, 147, 133, 141, 144, 140, 141, 141, 143, 138, 144, 142, 147, 141, 145, 135, 137, 137, 142, 131, 140, 148, 138, 132, 138, 135, 144, 138, 136, 139, 132, 139, 145, 141, 148, 140, 137, 137, 140, 135, 142, 141, 144, 140, 138, 136, 139, 138, 134, 131, 135, 141, 134, 142, 146, 137, 128, 146, 137, 140, 134, 143, 138, 142, 144, 140, 141, 151, 141, 140, 139, 142, 141, 141, 139, 132, 138, 133, 130, 142, 142, 132, 150, 139, 137, 140, 132, 143, 142, 142, 141, 142, 130, 143, 138, 140, 135, 142, 128, 136, 145, 134, 139, 142, 140, 140, 142, 139, 136, 139, 143, 140, 131, 145, 145, 135, 139, 141, 135, 134, 136, 145, 140, 128, 144, 140, 139, 145, 139, 133, 144, 134, 147, 139, 137, 139, 140, 140, 140, 139, 142, 140, 138, 145, 138, 143, 144, 138, 129, 148, 132, 139, 140, 135, 138, 133, 142, 138, 142, 138, 138, 137, 141, 135, 140, 142, 144, 144, 140, 140, 135, 134, 135, 137, 137, 133, 133, 137, 139, 138, 139, 141, 149, 130, 137, 134, 140, 136, 135, 145, 127, 141, 142, 146, 141, 139, 140, 139, 141, 138, 135, 137, 144, 145, 141, 135, 138, 144, 140, 133, 143, 138, 148, 127, 146, 136, 138, 141, 140, 156, 135, 141, 137, 144, 141, 137, 139, 138, 140, 139, 128, 143, 132, 140, 139, 136, 145, 139, 140, 142, 143, 134, 131, 136, 152, 139, 129, 139, 141, 144, 140, 142, 142, 144, 134, 131, 141, 140, 142, 139, 135, 138, 132, 138, 146, 141, 110, 144, 147, 143, 145, 141, 142, 142, 150, 141, 141, 131, 131, 148, 140, 149, 143, 134, 139, 139, 142, 140, 138, 133, 161, 136, 138, 137, 145, 137, 138, 136, 142, 139, 142, 141, 139, 139, 139, 141, 140, 144, 139, 127, 134, 137, 139, 135, 142, 145, 139, 142, 139, 141, 138, 140, 139, 148, 135, 140, 136, 148, 158, 140, 128, 143, 146, 140, 139, 145, 142, 139, 141, 141, 148, 137, 138, 135, 137, 145, 135, 138, 132, 138, 144, 138, 132, 136, 132, 124, 142, 135, 141, 135, 132, 146, 132, 142, 140, 143, 138, 138, 140, 135, 134, 141, 139, 135, 134, 146, 138, 145, 140, 139, 143, 148, 141, 139, 143, 137, 141, 136, 142, 139, 142, 144, 141, 141, 136, 136, 144, 140, 120, 144, 139, 138, 139, 141, 139, 141, 140, 144, 136, 142, 133, 128, 135, 140, 137, 145, 135, 139, 141, 142, 145, 144, 143, 136, 133, 136, 142, 141, 143, 145, 149, 138, 147, 145, 144, 141, 137, 138, 147, 143, 142, 132, 137, 135, 141, 164, 135, 137, 135, 144, 131, 137, 135, 137, 134, 135, 148, 130, 146, 134, 125, 137, 144, 137, 135, 140, 130, 132, 146, 141, 125, 134, 138, 138, 130, 136, 136, 137, 141, 144, 139, 134, 138, 145, 144, 129, 133, 132, 137, 143, 140, 130, 134, 138, 140, 139, 137, 140, 134, 137, 147, 136, 145, 137, 145, 137, 142, 138, 144, 141, 141, 139, 134, 138, 134, 134, 139, 141, 131, 145, 133, 150, 138, 133, 141, 142, 130, 130, 142, 134, 130, 149, 130, 127, 141, 136, 136, 131, 126, 133, 136, 137, 136, 137, 137, 140, 134, 139, 137, 139, 144, 142, 148, 130, 141, 149, 135, 148, 135, 134, 138, 139, 148, 133, 139, 115, 138, 139, 144, 135, 137, 144, 142, 135, 140, 149, 137, 146, 146, 130, 140, 137, 150, 142, 134, 139, 137, 139, 143, 141, 127, 141, 145, 133, 137, 136, 141, 133, 132, 141, 140, 131, 142, 141, 136, 135, 144, 137, 143, 139, 0, 145, 137, 129, 136, 134, 139, 144, 132, 128, 137, 136, 134, 149, 127, 139, 138, 147, 138, 140, 137, 134, 139, 139, 143, 135, 133, 142, 134, 140, 137, 143, 129, 138, 144, 139, 142, 142, 143, 142, 141, 137, 134, 146, 137, 146, 135, 138, 141, 138, 135, 144, 137, 139, 134, 146, 142, 135, 131, 138, 137, 138, 140, 145, 140, 137, 131, 139, 138, 131, 148, 140, 141, 135, 134, 148, 135, 138, 140, 134, 136, 143, 127, 139, 135, 136, 140, 143, 153, 134, 146, 137, 140, 136, 142, 143, 143, 140, 149, 139, 141, 141, 128, 138, 137, 141, 137, 143, 141, 137, 143, 140, 141, 147, 135, 146, 139, 136, 129, 141, 130, 132, 142, 130, 141, 141, 137, 136, 136, 141, 140, 139, 138, 132, 150, 136, 141, 126, 138, 138, 138, 129, 132, 142, 130, 147, 141, 143, 130, 136, 140, 148, 135, 133, 137, 140, 138, 142, 139, 141, 147, 138, 144, 141, 151, 145, 141, 140, 144, 142, 144, 144, 145, 135, 132, 124, 131, 143, 133, 135, 146, 136, 135, 141, 134, 139, 137, 143, 144, 134, 131, 134, 135, 133, 158, 127, 146, 140, 141, 132, 146, 138, 141, 138, 135, 143, 150, 145, 142, 138, 151, 141, 133, 141, 148, 146, 143, 144, 137, 144, 141, 139, 139, 128, 135, 128, 144, 123, 142, 135, 134, 159, 132, 141, 137, 137, 174, 140, 135, 143, 137, 137, 140, 132, 129, 143, 143, 133, 133, 144, 141, 147, 154, 145, 124, 145, 148, 140, 144, 142, 143, 126, 135, 129, 137, 137, 136, 142, 140, 142, 145, 126, 131, 133, 133, 140, 135, 142, 140, 192, 135, 144, 140, 140, 141, 133, 135, 138, 139, 134, 155, 141, 142, 140, 140, 138, 137, 140, 135, 130, 127, 136, 124, 137, 134, 147, 139, 132, 138, 134, 140, 137, 139, 128, 139, 151, 139, 141, 128, 146, 148, 139, 146, 130, 132, 140, 139, 132, 130, 139, 142, 143, 138, 146, 142, 134, 141, 140, 137, 141, 139, 138, 142, 133, 137, 138, 133, 146, 140, 145, 143, 139, 144, 140, 144, 140, 137, 138, 138, 144, 132, 136, 147, 138, 140, 155, 139, 140, 139, 140, 138, 146, 136, 152, 137, 136, 130, 143, 139, 139, 133, 137, 139, 140, 138, 138, 140, 133, 138, 139, 145, 140, 141, 135, 139, 133, 138, 143, 134, 141, 139, 138, 141, 133, 140, 140, 144, 142, 132, 143, 138, 137, 132, 141, 138, 137, 134, 134, 140, 142, 139, 148, 133, 136, 141, 141, 139, 141, 142, 137, 143, 133, 130, 142, 140, 136, 133, 139, 137, 134, 139, 137, 139, 136, 127, 135, 134, 138, 143, 148, 136, 141, 139, 129, 143, 129, 134, 138, 136, 134, 138, 133, 136, 140, 143, 141, 132, 135, 134, 136, 141, 140, 143, 140, 142, 138, 135, 137, 137, 130, 139, 152, 137, 140, 132, 135, 146, 141, 145, 142, 143, 138, 135, 139, 135, 131, 136, 132, 148, 131, 130, 141, 143, 144, 138, 131, 145, 139, 141, 138, 132, 139, 133, 139, 138, 140, 135, 137, 136, 141, 136, 140, 137, 144, 147, 130, 140, 140, 142, 143, 135, 143, 146, 143, 142, 142, 131, 137, 138, 141, 134, 146, 129, 139, 136, 138, 140, 127, 123, 136, 142, 136, 141, 130, 138, 144, 139, 140, 134, 132, 137, 142, 142, 136, 140, 137, 131, 143, 139, 144, 138, 141, 133, 142, 148, 138, 141, 139, 131, 138, 141, 131, 140, 140, 133, 138, 138, 133, 137, 142, 137, 134, 129, 139, 136, 141, 141, 135, 135, 143, 136, 133, 141, 142, 137, 144, 137, 142, 133, 137, 135, 138, 141, 137, 134, 133, 148, 140, 137, 138, 149, 135, 140, 146, 142, 138, 136, 132, 134, 147, 137, 140, 137, 137, 153, 137, 145, 139, 137, 135, 142, 142, 139, 139, 140, 143, 141, 141, 143, 137, 128, 152, 138, 135, 144, 137, 131, 139, 137, 136, 137, 141, 132, 147, 139, 149, 134, 130, 136, 140, 138, 130, 138, 137, 140, 146, 148, 145, 131, 133, 136, 141, 140, 135, 132, 139, 142, 127, 143, 139, 142, 136, 140, 132, 137, 131, 150, 138, 133, 143, 138, 137, 138, 137, 139, 136, 143, 147, 141, 137, 145, 145, 134, 141, 139, 143, 142, 141, 135, 134, 135, 140, 135, 145, 149, 138, 122, 126, 154, 136, 152, 137, 132, 133, 149, 139, 143, 134, 134, 134, 132, 153, 138, 135, 140, 145, 136, 139, 140, 134, 141, 143, 135, 140, 138, 134, 141, 145, 149, 145, 137, 142, 141, 138, 145, 143, 137, 137, 137, 128, 148, 145, 146, 133, 140, 142, 137, 133, 131, 140, 129, 143, 148, 133, 137, 142, 138, 140, 139, 136, 137, 142, 136, 136, 132, 137, 137, 137, 140, 148, 139, 142, 144, 139, 139, 141, 142, 133, 142, 129, 140, 146, 141, 131, 140, 138, 146, 137, 142, 142, 139, 132, 126, 137, 141, 143, 136, 144, 152, 132, 139, 140, 138, 137, 145, 137, 139, 150, 141, 134, 134, 127, 143, 146, 129, 147, 140, 129, 146, 135, 143, 134, 133, 133, 145, 130, 137, 141, 134, 146, 132, 134, 135, 135, 135, 134, 144, 139, 144, 132, 138, 140, 140, 141, 140, 139, 146, 143, 130, 152, 151, 135, 144, 141, 141, 132, 134, 140, 155, 137, 132, 141, 123, 135, 139, 144, 148, 137, 138, 139, 132, 139, 124, 139, 126, 140, 134, 140, 140, 140, 141, 140, 144, 154, 140, 143, 141, 143, 133, 139, 141, 129, 140, 144, 134, 140, 135, 141, 141, 138, 131, 140, 135, 132, 130, 135, 144, 142, 132, 141, 141, 142, 151, 139, 135, 152, 143, 144, 130, 147, 147, 147, 135, 135, 138, 133, 147, 135, 142, 138, 139, 140, 129, 135, 136, 139, 143, 130, 134, 138, 132, 137, 134, 139, 152, 138, 134, 127, 141, 140, 136, 130, 140, 147, 135, 141, 132, 139, 136, 146, 135, 139, 131, 136, 149, 141, 134, 132, 134, 140, 131, 140, 148, 141, 144, 129, 136, 133, 151, 141, 139, 145, 127, 143, 129, 139, 140, 130, 140, 138, 140, 135, 137, 161, 145, 143, 140, 134, 146, 128, 134, 136, 136, 133, 148, 137, 137, 139, 143, 139, 139, 136, 141, 140, 136, 150, 142, 143, 140, 137, 140, 138, 145, 166, 138, 132, 135, 152, 147, 153, 135, 142, 138, 144, 139, 138, 133, 136, 141, 130, 140, 139, 137, 136, 140, 143, 134, 145, 138, 136, 146, 139, 142, 138, 146, 137, 136, 138, 139, 136, 142, 143, 142, 137, 135, 137, 141, 135, 139, 140, 153, 134, 128, 137, 134, 146, 138, 137, 145, 130, 158, 122, 127, 143, 144, 138, 137, 138, 136, 142, 146, 143, 149, 132, 139, 132, 139, 144, 140, 137, 136, 146, 130, 139, 140, 143, 137, 140, 140, 144, 146, 141, 126, 141, 132, 138, 139, 143, 144, 142, 137, 141, 129, 143, 145, 138, 144, 134, 135, 134, 147, 146, 146, 144, 146, 125, 139, 145, 140, 149, 131, 149, 136, 142, 144, 129, 148, 133, 130, 142, 138, 141, 137, 135, 137, 135, 145, 151, 137, 133, 152, 147, 138, 138, 133, 133, 142, 131, 129, 142, 141, 132, 142, 145, 147, 130, 138, 136, 144, 131, 138, 138, 136, 135, 134, 133, 128, 139, 134, 140, 143, 136, 136, 135, 137, 141, 139, 136, 147, 137, 141, 144, 134, 143, 137, 133, 136, 143, 136, 133, 131, 134, 139, 137, 138, 135, 132, 133, 138, 140, 142, 144, 144, 141, 130, 145, 140, 139, 143, 140, 145, 136, 147, 139, 139, 122, 141, 145, 147, 137, 137, 137, 138, 140, 134, 142, 150, 147, 122, 148, 142, 148, 146, 137, 137, 144, 138, 130, 143, 140, 141, 147, 150, 131, 162, 139, 135, 132, 140, 133, 142, 134, 137, 124, 134, 134, 145, 138, 132, 144, 140, 137, 142, 135, 140, 136, 138, 148, 142, 142, 132, 131, 132, 133, 136, 144, 152, 141, 144, 136, 131, 130, 137, 137, 144, 144, 132, 147, 142, 146, 137, 143, 128, 144, 135, 135, 138, 141, 130, 142, 140, 136, 139, 140, 143, 142, 138, 141, 136, 139, 143, 143, 142, 148, 141, 140, 140, 141, 135, 138, 139, 138, 142, 131, 143, 142, 142, 138, 136, 137, 142, 134, 142, 138, 141, 139, 143, 137, 140, 140, 136, 142, 136, 137, 138, 139, 137, 133, 139, 144, 143, 139, 131, 135, 135, 139, 138, 136, 142, 141, 136, 140, 141, 141, 141, 141, 138, 138, 138, 140, 147, 139, 138, 140, 145, 129, 127, 134, 139, 143, 140, 138, 144, 138, 133, 137, 136, 142, 141, 126, 147, 150, 140, 127, 142, 133, 143, 143, 141, 138, 134, 138, 144, 131, 138, 136, 145, 136, 128, 139, 154, 135, 141, 136, 141, 141, 135, 139, 138, 137, 143, 146, 131, 131, 135, 142, 136, 139, 132, 137, 137, 135, 144, 141, 134, 137, 132, 141, 137, 137, 138, 140, 144, 140, 132, 141, 134, 139, 141, 150, 140, 134, 139, 141, 137, 149, 144, 139, 141, 137, 150, 140, 143, 140, 140, 142, 137, 138, 136, 134, 136, 136, 138, 137, 138, 142, 146, 134, 142, 136, 138, 146, 140, 125, 138, 139, 138, 139, 137, 131, 134, 142, 141, 141, 143, 138, 141, 142, 142, 136, 138, 140, 144, 147, 140, 142, 137, 138, 134, 136, 139, 133, 130, 150, 137, 140, 142, 138, 140, 132, 139, 137, 142, 134, 142, 140, 132, 140, 145, 141, 139, 137, 145, 136, 136, 145, 136, 140, 138, 140, 135, 137, 139, 138, 146, 142, 146, 142, 138, 142, 137, 134, 139, 137, 144, 133, 146, 135, 141, 143, 143, 141, 148, 135, 146, 144, 142, 142, 138, 139, 148, 146, 137, 139, 143, 132, 146, 144, 140, 139, 139, 148, 146, 136, 140, 137, 141, 139, 139, 142, 144, 130, 128, 143, 144, 142, 139, 134, 135, 142, 140, 138, 137, 135, 133, 142, 141, 139, 136, 139, 140, 140, 138, 139, 142, 138, 144, 146, 136, 146, 134, 142, 140, 137, 137, 140, 142, 133, 141, 143, 138, 146, 132, 133, 142, 135, 143, 145, 136, 140, 137, 134, 131, 142, 141, 137, 146, 137, 152, 139, 141, 137, 145, 138, 134, 133, 140, 143, 138, 142, 140, 141, 146, 141, 136, 134, 135, 135, 135, 153, 139, 136, 146, 142, 137, 139, 143, 132, 143, 136, 143, 135, 137, 137, 138, 142, 143, 135, 138, 130, 136, 138, 136, 140, 135, 133, 144, 137, 135, 135, 140, 139, 139, 138, 139, 136, 146, 141, 136, 132, 142, 145, 143, 140, 138, 137, 142, 134, 141, 134, 135, 140, 140, 134, 133, 134, 138, 139, 144, 139, 133, 139, 142, 135, 139, 139, 138, 143, 140, 138, 141, 132, 130, 143, 141, 145, 139, 143, 142, 137, 148, 137, 137, 132, 143, 139, 138, 137, 137, 139, 135, 139, 150, 142, 142, 138, 140, 136, 133, 140, 135, 144, 143, 137, 150, 141, 145, 135, 133, 136, 133, 139, 133, 150, 144, 130, 133, 131, 142, 134, 143, 134, 144, 139, 139, 145, 142, 145, 140, 143, 142, 141, 139, 136, 140, 141, 149, 139, 134, 141, 134, 131, 140, 143, 139, 137, 141, 153, 139, 140, 137, 139, 146, 137, 142, 139, 130, 137, 144, 136, 139, 141, 131, 143, 127, 135, 144, 132, 143, 129, 138, 135, 140, 139, 138, 133, 139, 133, 138, 138, 143, 143, 139, 135, 139, 143, 147, 136, 143, 138, 144, 155, 140, 142, 130, 136, 141, 138, 131, 140, 141, 138, 137, 137, 139, 137, 143, 139, 130, 145, 141, 143, 135, 138, 144, 138, 150, 134, 136, 145, 136, 136, 137, 134, 140, 135, 139, 137, 138, 141, 128, 135, 134, 136, 143, 136, 131, 134, 136, 135, 136, 141, 138, 140, 135, 137, 138, 134, 138, 136, 141, 131, 142, 141, 134, 139, 141, 137, 138, 136, 138, 143, 159, 143, 148, 135, 133, 136, 141, 137, 136, 143, 135, 140, 147, 129, 142, 134, 133, 138, 144, 136, 134, 137, 139, 130, 135, 141, 140, 139, 137, 145, 139, 135, 139, 142, 129, 143, 132, 143, 131, 139, 134, 135, 140, 133, 147, 143, 143, 130, 142, 139, 143, 136, 143, 139, 139, 138, 143, 144, 145, 135, 135, 136, 144, 141, 135, 138, 135, 139, 136, 139, 128, 145, 132, 136, 140, 138, 134, 141, 138, 144, 145, 144, 138, 148, 136, 135, 141, 142, 129, 136, 140, 147, 138, 140, 133, 134, 147, 135, 140, 138, 135, 140, 137, 140, 148, 134, 141, 143, 140, 142, 135, 146, 144, 134, 140, 146, 141, 137, 146, 140, 124, 142, 140, 133, 135, 135, 141, 139, 152, 141, 142, 130, 136, 143, 141, 144, 146, 137, 140, 139, 133, 154, 130, 140, 136, 132, 136, 143, 138, 135, 135, 149, 137, 139, 141, 143, 147, 130, 136, 135, 138, 138, 140, 143, 129, 141, 142, 135, 135, 144, 133, 133, 137, 131, 135, 144, 136, 129, 131, 139, 141, 138, 129, 143, 131, 141, 133, 135, 144, 132, 147, 128, 136, 148, 129, 134, 155, 138, 142, 137, 133, 135, 144, 143, 136, 153, 144, 143, 144, 155, 134, 139, 145, 132, 138, 157, 147, 134, 138, 139, 139, 141, 136, 136, 146, 133, 130, 136, 133, 138, 136, 153, 142, 140, 138, 135, 144, 140, 143, 145, 141, 144, 141, 137, 130, 149, 142, 134, 136, 140, 140, 142, 141, 139, 137, 131, 142, 146, 144, 141, 135, 139, 135, 136, 135, 136, 137, 128, 139, 135, 135, 137, 129, 136, 140, 138, 145, 137, 121, 135, 136, 154, 139, 140, 136, 130, 140, 143, 146, 140, 141, 131, 133, 148, 135, 141, 133, 145, 138, 142, 137, 145, 141, 137, 148, 137, 144, 148, 134, 136, 143, 152, 144, 143, 139, 149, 131, 135, 144, 136, 141, 140, 145, 146, 146, 140, 138, 140, 142, 142, 133, 140, 142, 137, 137, 138, 143, 140, 134, 138, 142, 132, 143, 140, 143, 134, 140, 138, 139, 142, 138, 139, 139, 138, 135, 137, 142, 131, 141, 130, 145, 145, 146, 140, 140, 142, 146, 139, 146, 140, 143, 136, 133, 143, 132, 137, 132, 145, 134, 137, 143, 140, 135, 134, 132, 133, 137, 133, 132, 131, 144, 135, 139, 137, 135, 141, 141, 147, 137, 141, 136, 140, 141, 135, 134, 138, 136, 140, 135, 139, 134, 144, 143, 150, 136, 131, 139, 136, 136, 136, 135, 141, 133, 133, 138, 141, 134, 143, 143, 137, 142, 139, 139, 136, 135, 141, 137, 129, 134, 146, 137, 140, 147, 140, 138, 140, 134, 136, 132, 139, 140, 139, 142, 143, 136, 145, 139, 142, 150, 144, 138, 145, 142, 135, 146, 137, 140, 141, 130, 145, 143, 133, 143, 140, 137, 137, 153, 142, 146, 136, 141, 134, 137, 141, 141, 137, 138, 134, 138, 137, 140, 147, 138, 141, 147, 140, 139, 147, 132, 135, 136, 140, 133, 139, 141, 139, 144, 142, 136, 158, 146, 138, 139, 141, 137, 139, 141, 138, 144, 135, 142, 140, 137, 141, 138, 139, 134, 140, 140, 137, 135, 142, 143, 135, 137, 137, 135, 139, 138, 141, 143, 144, 143, 150, 135, 134, 141, 136, 139, 144, 141, 137, 135, 139, 135, 139, 144, 139, 136, 137, 140, 137, 140, 142, 149, 143, 139, 144, 140, 138, 138, 136, 140, 140, 134, 139, 138, 129, 139, 139, 137, 132, 137, 139, 138, 138, 143, 141, 138, 143, 144, 137, 139, 144, 138, 133, 141, 142, 140, 143, 139, 133, 136, 138, 138, 139, 143, 147, 138, 145, 142, 137, 139, 134, 136, 139, 137, 137, 136, 142, 139, 139, 136, 143, 135, 140, 134, 138, 134, 140, 140, 132, 138, 141, 137, 143, 136, 141, 139, 135, 145, 130, 138, 134, 134, 146, 131, 138, 141, 143, 137, 135, 137, 136, 140, 135, 141, 139, 140, 138, 137, 136, 139, 139, 132, 139, 138, 147, 131, 144, 150, 148, 139, 138, 147, 137, 131, 141, 139, 141, 140, 143, 135, 139, 149, 140, 142, 137, 139, 140, 140, 136, 141, 145, 137, 138, 135, 142, 140, 127, 137, 139, 131, 140, 140, 140, 138, 133, 138, 142, 138, 142, 136, 141, 139, 141, 140, 133, 138, 144, 145, 138, 136, 144, 140, 141, 138, 140, 136, 147, 144, 142, 130, 141, 140, 130, 142, 141, 152, 138, 132, 129, 143, 139, 144, 141, 135, 136, 136, 139, 139, 135, 137, 142, 143, 142, 139, 138, 134, 139, 139, 137, 135, 138, 137, 132, 141, 146, 136, 137, 140, 145, 141, 132, 146, 140, 142, 141, 142, 140, 132, 139, 138, 140, 140, 144, 129, 138, 129, 137, 139, 147, 141, 135, 141, 133, 140, 136, 141, 145, 146, 138, 138, 140, 137, 143, 137, 136, 138, 132, 130, 133, 145, 138, 133, 144, 135, 134, 140, 141, 142, 141, 144, 140, 138, 136, 141, 137, 132, 139, 139, 132, 137, 139, 143, 139, 137, 133, 136, 144, 133, 136, 144, 148, 136, 138, 140, 138, 135, 139, 138, 131, 135, 139, 137, 138, 139, 137, 138, 135, 140, 149, 145, 138, 138, 139, 140, 140, 146, 138, 140, 150, 143, 132, 137, 138, 140, 142, 131, 141, 138, 132, 140, 136, 139, 141, 139, 147, 130, 141, 145, 136, 143, 139, 137, 135, 143, 130, 139, 141, 139, 149, 134, 136, 141, 133, 143, 136, 140, 138, 139, 137, 137, 139, 141, 129, 141, 135, 141, 141, 140, 134, 137, 138, 133, 144, 132, 120, 137, 134, 125, 142, 133, 137, 149, 145, 143, 133, 143, 142, 134, 148, 140, 142, 131, 142, 137, 133, 139, 129, 142, 137, 133, 135, 141, 144, 133, 138, 136, 138, 135, 129, 130, 140, 135, 137, 136, 135, 142, 144, 120, 141, 135, 137, 135, 139, 139, 136, 138, 133, 135, 142, 141, 139, 150, 144, 139, 144, 150, 127, 121, 143, 139, 140, 138, 137, 138, 141, 140, 136, 133, 148, 135, 138, 142, 138, 135, 150, 138, 141, 134, 130, 142, 139, 141, 137, 136, 137, 131, 134, 147, 135, 142, 136, 134, 136, 147, 138, 138, 141, 135, 128, 132, 139, 136, 137, 134, 142, 147, 141, 137, 134, 139, 146, 142, 143, 143, 139, 138, 129, 128, 151, 153, 140, 138, 133, 141, 139, 136, 142, 131, 139, 136, 138, 132, 137, 133, 133, 144, 130, 140, 136, 132, 136, 145, 141, 137, 140, 138, 137, 137, 143, 153, 136, 141, 138, 137, 137, 135, 136, 138, 135, 143, 135, 141, 142, 127, 140, 138, 139, 143, 137, 154, 151, 133, 140, 136, 141, 134, 133, 137, 136, 139, 141, 135, 160, 139, 145, 142, 133, 140, 135, 134, 131, 140, 136, 143, 136, 136, 137, 152, 138, 137, 137, 146, 127, 132, 133, 141, 149, 130, 143, 148, 139, 137, 138, 135, 139, 154, 133, 132, 143, 138, 141, 142, 136, 143, 149, 135, 144, 137, 128, 137, 144, 133, 142, 136, 143, 141, 136, 127, 139, 137, 138, 144, 137, 139, 146, 148, 146, 137, 146, 129, 136, 140, 143, 133, 144, 143, 133, 143, 138, 141, 142, 140, 138, 136, 144, 146, 138, 135, 140, 145, 153, 131, 135, 143, 137, 132, 143, 132, 134, 137, 149, 138, 138, 145, 145, 140, 134, 141, 130, 137, 143, 139, 140, 138, 137, 139, 140, 140, 150, 161, 132, 137, 134, 142, 144, 127, 137, 144, 140, 139, 138, 141, 137, 143, 133, 146, 140, 140, 141, 136, 144, 135, 125, 131, 145, 154, 138, 141, 144, 145, 140, 133, 136, 141, 140, 132, 142, 139, 131, 142, 127, 139, 139, 141, 149, 138, 131, 142, 134, 109, 144, 140, 136, 141, 145, 136, 129, 135, 146, 143, 147, 132, 145, 141, 149, 134, 139, 138, 140, 137, 126, 134, 144, 131, 147, 134, 142, 138, 137, 136, 143, 141, 146, 138, 141, 142, 144, 114, 138, 141, 150, 143, 137, 138, 138, 151, 139, 144, 142, 139, 140, 141, 139, 145, 134, 144, 140, 137, 137, 145, 137, 129, 130, 143, 146, 132, 139, 140, 142, 139, 139, 145, 142, 139, 133, 133, 137, 137, 143, 133, 142, 135, 137, 137, 133, 134, 139, 127, 128, 141, 127, 138, 134, 139, 141, 138, 135, 140, 135, 134, 140, 145, 141, 129, 139, 132, 134, 143, 139, 140, 140, 144, 151, 149, 149, 139, 144, 131, 139, 140, 126, 141, 143, 140, 144, 131, 137, 148, 149, 135, 135, 142, 140, 145, 142, 152, 141, 136, 141, 136, 147, 134, 138, 144, 133, 137, 144, 148, 131, 127, 140, 137, 141, 131, 147, 154, 141, 134, 130, 142, 138, 138, 145, 137, 136, 143, 153, 144, 141, 130, 141, 132, 138, 142, 144, 134, 132, 138, 119, 145, 138, 149, 137, 148, 151, 135, 146, 134, 144, 134, 136, 139, 144, 144, 124, 139, 129, 136, 139, 116, 136, 134, 134, 139, 150, 159, 135, 136, 124, 144, 138, 153, 130, 127, 128, 141, 132, 140, 135, 136, 145, 138, 132, 149, 134, 142, 142, 134, 146, 137, 146, 146, 135, 130, 138, 135, 139, 140, 147, 135, 148, 136, 143, 138, 130, 137, 151, 141, 126, 141, 141, 146, 136, 148, 141, 137, 136, 139, 116, 141, 147, 146, 122, 150, 138, 145, 132, 128, 142, 139, 138, 143, 139, 138, 139, 141, 128, 137, 143, 128, 142, 136, 142, 146, 130, 137, 137, 141, 130, 139, 150, 131, 143, 147, 137, 135, 144, 136, 147, 140, 135, 147, 147, 129, 135, 138, 141, 142, 150, 136, 131, 144, 148, 135, 139, 143, 128, 149, 132, 134, 136, 139, 134, 134, 134, 135, 141, 133, 137, 128, 128, 139, 140, 137, 138, 143, 131, 145, 136, 138, 144, 136, 140, 138, 142, 132, 138, 142, 135, 140, 132, 139, 140, 142, 144, 140, 143, 142, 137, 130, 129, 143, 136, 134, 135, 146, 142, 145, 137, 136, 121, 131, 131, 147, 138, 152, 145, 126, 142, 143, 138, 136, 148, 152, 134, 145, 136, 124, 137, 140, 149, 128, 135, 138, 147, 139, 134, 139, 133, 134, 142, 132, 146, 136, 147, 140, 137, 144, 140, 145, 143, 138, 143, 144, 146, 132, 148, 136, 149, 143, 139, 140, 134, 140, 145, 144, 137, 131, 136, 149, 148, 141, 150, 132, 124, 146, 129, 132, 140, 134, 128, 143, 141, 139, 145, 141, 145, 143, 140, 134, 137, 136, 130, 129, 132, 137, 142, 144, 130, 148, 137, 137, 140, 149, 147, 141, 134, 131, 140, 146, 140, 138, 135, 148, 144, 146, 140, 136, 130, 133, 135, 138, 142, 140, 136, 119, 128, 143, 138, 141, 137, 134, 136, 136, 138, 148, 132, 133, 137, 141, 127, 142, 145, 136, 141, 141, 135, 147, 142, 149, 159, 134, 140, 140, 140, 134, 120, 140, 141, 147, 147, 134, 138, 132, 139, 143, 135, 153, 139, 131, 136, 140, 136, 142, 134, 130, 134, 138, 142, 142, 139, 143, 141, 136, 132, 137, 141, 137, 146, 136, 140, 135, 139, 135, 137, 122, 137, 128, 145, 141, 143, 144, 132, 134, 139, 136, 131, 149, 128, 134, 139, 145, 138, 134, 131, 135, 141, 145, 138, 143, 136, 147, 143, 138, 151, 132, 129, 143, 142, 147, 130, 139, 137, 134, 140, 138, 129, 140, 129, 140, 139, 141, 137, 150, 145, 142, 138, 139, 143, 134, 142, 136, 135, 144, 135, 134, 149, 165, 138, 135, 138, 128, 132, 135, 132, 133, 148, 143, 137, 138, 137, 138, 142, 132, 139, 139, 134, 126, 129, 140, 141, 127, 139, 143, 131, 134, 143, 138, 139, 143, 138, 144, 147, 136, 138, 133, 137, 137, 141, 136, 142, 143, 138, 142, 141, 140, 142, 137, 147, 135, 144, 150, 141, 146, 132, 135, 142, 142, 133, 144, 144, 144, 145, 137, 141, 138, 144, 137, 132, 134, 147, 145, 136, 144, 145, 135, 137, 135, 143, 142, 144, 140, 137, 134, 138, 135, 142, 136, 136, 137, 141, 128, 141, 136, 137, 132, 142, 142, 137, 133, 142, 140, 137, 139, 143, 138, 142, 147, 131, 138, 133, 133, 144, 142, 135, 143, 140, 133, 145, 142, 140, 143, 143, 133, 134, 140, 141, 136, 136, 137, 137, 138, 150, 137, 130, 140, 142, 141, 137, 136, 133, 141, 135, 143, 151, 142, 132, 136, 140, 140, 138, 138, 140, 146, 145, 135, 134, 140, 137, 137, 143, 137, 133, 137, 137, 138, 144, 141, 137, 138, 137, 135, 148, 137, 128, 138, 145, 142, 140, 142, 136, 135, 139, 136, 146, 134, 139, 141, 137, 144, 137, 141, 138, 147, 140, 136, 136, 136, 134, 141, 144, 139, 131, 136, 137, 138, 133, 149, 141, 135, 138, 136, 141, 141, 143, 146, 139, 140, 136, 137, 138, 135, 134, 137, 138, 147, 131, 141, 135, 136, 147, 137, 142, 144, 140, 141, 142, 138, 139, 138, 145, 137, 134, 139, 142, 139, 144, 143, 137, 139, 135, 134, 143, 136, 137, 151, 145, 132, 133, 136, 143, 134, 145, 138, 141, 133, 141, 131, 136, 140, 134, 143, 138, 141, 135, 140, 137, 139, 142, 146, 142, 136, 135, 134, 140, 142, 146, 140, 147, 133, 141, 138, 143, 134, 134, 151, 147, 132, 143, 142, 141, 134, 131, 138, 129, 137, 140, 143, 133, 144, 140, 145, 134, 139, 134, 140, 137, 147, 132, 141, 139, 139, 145, 137, 146, 147, 140, 136, 143, 136, 139, 135, 139, 146, 140, 143, 138, 134, 132, 144, 131, 141, 148, 139, 144, 143, 139, 135, 139, 143, 140, 131, 132, 140, 141, 136, 144, 136, 140, 139, 139, 140, 138, 142, 136, 142, 140, 158, 140, 147, 134, 135, 133, 138, 144, 131, 135, 137, 137, 131, 134, 137, 141, 136, 135, 136, 141, 143, 137, 146, 147, 137, 132, 141, 137, 138, 145, 141, 136, 138, 131, 138, 136, 138, 142, 141, 139, 139, 138, 141, 130, 145, 141, 136, 139, 154, 142, 147, 136, 136, 137, 138, 138, 133, 132, 135, 135, 132, 139, 139, 142, 129, 130, 140, 135, 135, 139, 143, 138, 136, 144, 137, 134, 146, 133, 138, 136, 134, 141, 140, 138, 140, 133, 134, 136, 138, 144, 140, 146, 134, 138, 141, 139, 145, 140, 143, 147, 137, 136, 142, 132, 138, 140, 136, 137, 139, 145, 138, 131, 146, 132, 139, 143, 139, 135, 137, 151, 137, 140, 134, 135, 138, 138, 138, 134, 137, 139, 125, 136, 139, 140, 135, 139, 143, 138, 138, 139, 138, 142, 134, 141, 133, 139, 145, 133, 141, 139, 135, 138, 140, 140, 140, 139, 137, 145, 138, 144, 138, 138, 139, 145, 136, 143, 156, 131, 139, 133, 130, 144, 132, 137, 138, 139, 134, 146, 141, 141, 140, 141, 141, 139, 143, 141, 141, 153, 146, 145, 141, 145, 136, 136, 142, 146, 135, 130, 132, 136, 135, 126, 140, 147, 141, 144, 142, 140, 142, 145, 139, 143, 128, 137, 147, 141, 146, 139, 143, 140, 144, 137, 141, 137, 141, 142, 135, 139, 131, 142, 137, 135, 138, 135, 141, 140, 136, 135, 140, 137, 142, 141, 148, 143, 132, 135, 133, 137, 144, 138, 141, 144, 143, 142, 130, 141, 136, 142, 138, 133, 144, 131, 147, 139, 136, 139, 138, 146, 137, 138, 135, 142, 139, 130, 133, 138, 141, 134, 138, 134, 139, 135, 131, 144, 144, 130, 137, 138, 144, 139, 143, 146, 138, 139, 132, 138, 133, 147, 137, 132, 137, 145, 139, 148, 146, 137, 138, 147, 115, 136, 139, 139, 146, 141, 135, 138, 139, 134, 138, 142, 137, 131, 145, 138, 140, 144, 135, 131, 142, 148, 133, 137, 136, 137, 140, 148, 150, 138, 145, 145, 158, 141, 141, 135, 139, 138, 145, 142, 147, 147, 136, 136, 137, 129, 141, 138, 139, 141, 151, 128, 142, 132, 137, 139, 134, 125, 144, 141, 133, 146, 152, 143, 141, 137, 138, 138, 144, 133, 125, 137, 141, 138, 131, 129, 143, 140, 132, 131, 133, 133, 144, 137, 141, 141, 130, 136, 142, 134, 140, 137, 137, 147, 133, 137, 133, 137, 139, 132, 144, 139, 137, 129, 143, 133, 135, 136, 143, 138, 137, 132, 136, 139, 139, 144, 137, 148, 134, 135, 139, 135, 135, 144, 137, 134, 142, 141, 142, 138, 134, 137, 134, 139, 140, 140, 129, 139, 142, 132, 129, 133, 139, 136, 133, 144, 132, 140, 141, 136, 132, 135, 148, 153, 145, 145, 134, 146, 135, 140, 142, 141, 135, 142, 140, 142, 128, 140, 138, 133, 146, 139, 139, 141, 137, 123, 143, 138, 139, 127, 145, 130, 141, 135, 144, 140, 135, 148, 141, 142, 138, 141, 134, 149, 144, 136, 137, 141, 138, 142, 144, 136, 140, 142, 140, 137, 138, 141, 133, 133, 142, 139, 137, 134, 139, 138, 138, 139, 139, 143, 135, 137, 137, 140, 140, 141, 143, 131, 131, 134, 157, 137, 144, 136, 152, 142, 138, 142, 132, 139, 140, 137, 140, 140, 145, 135, 128, 133, 132, 131, 136, 137, 144, 137, 147, 141, 134, 143, 146, 137, 140, 137, 139, 136, 141, 132, 142, 132, 139, 139, 132, 130, 143, 131, 145, 139, 146, 138, 136, 148, 135, 143, 139, 141, 135, 143, 135, 137, 134, 143, 139, 141, 145, 146, 134, 141, 142, 138, 142, 142, 141, 139, 127, 140, 136, 140, 138, 127, 148, 138, 130, 134, 144, 146, 139, 147, 149, 129, 134, 138, 131, 135, 144, 137, 139, 143, 132, 138, 141, 141, 134, 138, 138, 135, 144, 135, 134, 135, 146, 137, 137, 141, 149, 151, 136, 131, 129, 140, 139, 132, 134, 146, 143, 141, 136, 142, 135, 148, 141, 141, 141, 135, 138, 137, 128, 140, 137, 132, 133, 138, 137, 139, 137, 141, 138, 119, 138, 137, 143, 142, 145, 146, 144, 135, 133, 143, 136, 142, 130, 143, 141, 135, 139, 130, 132, 140, 136, 141, 144, 141, 135, 143, 135, 128, 149, 137, 145, 130, 137, 137, 143, 131, 142, 141, 138, 138, 134, 134, 134, 140, 137, 132, 148, 144, 139, 131, 129, 136, 142, 133, 138, 136, 144, 140, 138, 140, 143, 141, 138, 141, 144, 135, 143, 130, 135, 149, 142, 142, 137, 138, 145, 135, 141, 140, 134, 136, 143, 149, 133, 137, 129, 142, 129, 131, 140, 141, 140, 136, 138, 131, 135, 141, 139, 138, 128, 135, 138, 141, 132, 137, 137, 124, 137, 143, 134, 149, 145, 144, 135, 144, 134, 137, 142, 140, 132, 144, 151, 135, 133, 140, 147, 142, 146, 142, 140, 134, 140, 132, 136, 139, 135, 142, 141, 138, 137, 147, 147, 140, 135, 138, 142, 151, 128, 145, 136, 142, 137, 134, 133, 134, 130, 145, 143, 141, 135, 145, 140, 132, 148, 141, 137, 143, 145, 134, 137, 135, 142, 130, 138, 149, 143, 143, 148, 130, 145, 141, 142, 134, 147, 142, 142, 134, 142, 154, 145, 146, 138, 136, 140, 139, 140, 138, 142, 143, 139, 153, 139, 130, 132, 130, 141, 143, 133, 137, 135, 139, 137, 149, 139, 137, 136, 136, 133, 132, 150, 130, 133, 136, 149, 130, 134, 140, 136, 154, 138, 139, 149, 141, 139, 141, 134, 131, 131, 129, 137, 138, 148, 149, 146, 144, 133, 135, 141, 133, 139, 141, 140, 133, 141, 143, 147, 132, 138, 154, 143, 142, 140, 132, 128, 140, 141, 140, 140, 131, 137, 129, 137, 143, 134, 138, 140, 137, 131, 127, 143, 144, 138, 143, 145, 136, 143, 136, 140, 138, 143, 140, 131, 147, 140, 141, 144, 135, 133, 138, 142, 135, 136, 136, 135, 140, 139, 139, 133, 137, 144, 136, 131, 128, 139, 128, 151, 135, 149, 131, 138, 135, 139, 141, 138, 127, 149, 133, 148, 141, 143, 138, 133, 144, 148, 134, 138, 143, 145, 138, 135, 141, 146, 137, 131, 132, 145, 134, 145, 141, 135, 129, 132, 146, 134, 129, 137, 145, 132, 134, 130, 138, 145, 135, 144, 153, 144, 138, 132, 141, 140, 139, 143, 143, 140, 138, 140, 137, 132, 138, 139, 137, 131, 132, 146, 133, 149, 141, 138, 135, 137, 137, 141, 139, 139, 129, 137, 140, 140, 133, 141, 135, 131, 133, 140, 135, 142, 136, 140, 142, 142, 148, 141, 127, 139, 147, 144, 140, 132, 131, 133, 137, 129, 136, 142, 137, 141, 133, 141, 156, 142, 145, 144, 139, 142, 135, 155, 138, 142, 135, 135, 141, 147, 145, 135, 138, 145, 136, 139, 141, 135, 159, 140, 134, 135, 154, 143, 140, 151, 139, 144, 143, 132, 148, 138, 139, 143, 137, 141, 122, 143, 138, 139, 137, 139, 149, 137, 137, 133, 131, 136, 140, 133, 140, 144, 140, 133, 142, 141, 140, 141, 134, 138, 145, 134, 131, 141, 128, 139, 145, 147, 139, 141, 141, 142, 143, 132, 143, 138, 125, 133, 131, 135, 149, 145, 142, 127, 134, 135, 130, 144, 144, 142, 150, 133, 141, 144, 139, 140, 143, 144, 136, 141, 148, 126, 143, 132, 145, 136, 142, 144, 137, 143, 134, 144, 142, 141, 142, 137, 141, 135, 135, 127, 146, 141, 132, 136, 142, 143, 142, 138, 138, 150, 130, 133, 139, 130, 141, 131, 139, 139, 139, 139, 147, 144, 138, 139, 144, 118, 150, 135, 143, 140, 145, 139, 141, 143, 139, 140, 143, 144, 140, 126, 134, 133, 132, 135, 145, 124, 139, 140, 137, 146, 145, 142, 138, 134, 140, 143, 138, 136, 148, 143, 141, 137, 138, 129, 134, 143, 140, 134, 142, 148, 144, 149, 133, 140, 139, 151, 136, 136, 140, 141, 136, 135, 143, 137, 138, 137, 145, 134, 144, 136, 144, 136, 142, 139, 129, 135, 139, 137, 119, 130, 141, 142, 145, 134, 127, 140, 140, 135, 137, 140, 133, 137, 136, 139, 140, 142, 135, 146, 130, 148, 142, 141, 151, 141, 148, 144, 141, 136, 133, 136, 137, 145, 140, 136, 139, 141, 136, 143, 133, 145, 142, 138, 148, 141, 137, 150, 142, 151, 147, 142, 136, 141, 129, 147, 142, 150, 145, 134, 136, 149, 135, 135, 134, 144, 135, 139, 140, 146, 144, 145, 139, 140, 142, 136, 137, 141, 142, 139, 135, 137, 137, 141, 138, 135, 144, 136, 133, 132, 136, 138, 138, 146, 129, 145, 141, 133, 141, 138, 142, 130, 144, 134, 133, 138, 144, 133, 152, 141, 142, 136, 134, 140, 137, 145, 137, 135, 129, 149, 133, 146, 136, 139, 144, 133, 143, 138, 142, 138, 138, 137, 145, 136, 141, 143, 144, 138, 135, 131, 146, 140, 143, 144, 144, 128, 143, 142, 142, 134, 146, 140, 141, 143, 143, 134, 136, 141, 143, 144, 135, 140, 146, 148, 136, 128, 142, 138, 149, 138, 143, 147, 145, 140, 146, 144, 129, 140, 147, 144, 143, 144, 139, 137, 136, 130, 150, 140, 144, 130, 144, 149, 145, 133, 136, 140, 137, 140, 133, 138, 138, 143, 140, 134, 135, 130, 142, 139, 139, 141, 139, 140, 134, 148, 134, 146, 153, 139, 146, 137, 136, 148, 132, 132, 133, 146, 140, 136, 141, 141, 134, 135, 141, 139, 135, 135, 145, 132, 134, 145, 132, 138, 145, 144, 135, 136, 139, 138, 143, 135, 136, 134, 140, 133, 129, 139, 131, 134, 138, 137, 130, 136, 139, 132, 133, 137, 142, 143, 136, 137, 135, 140, 131, 137, 132, 134, 142, 141, 132, 137, 145, 132, 135, 130, 138, 145, 144, 143, 138, 131, 137, 134, 135, 140, 134, 131, 143, 135, 147, 146, 140, 142, 144, 131, 134, 141, 135, 133, 135, 144, 133, 147, 142, 136, 137, 137, 136, 139, 138, 134, 138, 142, 137, 132, 141, 138, 131, 142, 150, 145, 139, 144, 144, 135, 138, 139, 149, 150, 137, 147, 137, 145, 142, 150, 154, 138, 140, 133, 139, 136, 143, 126, 145, 145, 142, 139, 137, 142, 141, 126, 147, 136, 147, 143, 143, 144, 141, 136, 136, 135, 140, 125, 138, 139, 147, 134, 138, 134, 143, 137, 132, 136, 133, 141, 138, 133, 141, 135, 143, 130, 141, 138, 145, 149, 140, 130, 141, 127, 139, 130, 137, 130, 146, 140, 139, 139, 135, 135, 147, 145, 145, 143, 136, 144, 130, 154, 138, 150, 141, 136, 135, 135, 144, 139, 134, 134, 154, 145, 149, 127, 140, 139, 144, 134, 138, 138, 141, 140, 143, 136, 134, 138, 139, 133, 141, 136, 141, 141, 137, 126, 139, 136, 140, 145, 147, 145, 128, 131, 129, 139, 139, 136, 145, 135, 143, 132, 144, 148, 135, 140, 152, 127, 136, 140, 143, 135, 134, 138, 141, 140, 139, 134, 144, 150, 142, 137, 131, 143, 137, 135, 137, 141, 150, 141, 137, 144, 136, 134, 144, 137, 145, 133, 131, 136, 133, 148, 128, 140, 146, 142, 147, 141, 140, 140, 145, 134, 134, 138, 135, 158, 137, 134, 141, 138, 134, 135, 140, 138, 141, 133, 138, 139, 132, 144, 141, 138, 134, 139, 145, 141, 136, 143, 135, 133, 137, 138, 143, 133, 126, 140, 135, 135, 150, 148, 140, 155, 138, 138, 137, 142, 136, 138, 141, 140, 148, 133, 139, 129, 129, 137, 138, 127, 135, 146, 145, 144, 128, 138, 136, 145, 142, 143, 133, 131, 134, 140, 142, 138, 146, 144, 142, 132, 135, 148, 141, 135, 141, 131, 141, 138, 144, 139, 138, 145, 137, 136, 133, 139, 145, 141, 126, 144, 134, 136, 133, 143, 146, 135, 147, 140, 139, 147, 131, 145, 139, 143, 138, 145, 133, 143, 134, 134, 136, 134, 134, 138, 128, 134, 141, 136, 139, 135, 141, 142, 141, 133, 137, 134, 136, 136, 136, 155, 133, 140, 134, 133, 144, 139, 146, 139, 142, 136, 139, 141, 136, 136, 134, 128, 139, 137, 136, 139, 140, 142, 136, 143, 137, 143, 141, 141, 131, 147, 144, 141, 139, 137, 141, 132, 139, 144, 138, 130, 130, 138, 140, 137, 137, 136, 138, 143, 137, 148, 137, 130, 134, 128, 134, 135, 137, 137, 138, 132, 139, 144, 143, 141, 149, 136, 138, 134, 132, 136, 147, 126, 141, 138, 142, 133, 135, 139, 143, 143, 140, 136, 137, 143, 129, 142, 131, 132, 126, 136, 133, 135, 132, 145, 141, 139, 123, 145, 140, 144, 138, 139, 142, 137, 139, 143, 142, 135, 129, 148, 135, 146, 140, 133, 128, 139, 143, 145, 128, 148, 138, 144, 139, 133, 149, 138, 140, 141, 133, 129, 136, 144, 139, 135, 138, 144, 135, 136, 132, 137, 142, 134, 142, 141, 138, 139, 132, 142, 137, 144, 145, 139, 140, 138, 137, 135, 131, 143, 140, 135, 146, 142, 134, 136, 144, 143, 139, 134, 133, 137, 136, 142, 137, 140, 145, 143, 141, 133, 151, 139, 135, 143, 140, 138, 139, 132, 139, 137, 146, 137, 145, 136, 147, 142, 137, 140, 143, 134, 143, 142, 141, 142, 140, 132, 147, 130, 138, 141, 138, 137, 146, 141, 140, 135, 145, 135, 143, 140, 134, 140, 128, 136, 141, 145, 141, 139, 130, 129, 140, 130, 126, 142, 134, 132, 138, 133, 149, 134, 144, 140, 141, 150, 137, 137, 135, 148, 153, 146, 143, 143, 135, 137, 148, 133, 141, 142, 146, 129, 139, 128, 149, 140, 131, 144, 150, 140, 131, 136, 147, 142, 149, 146, 140, 139, 141, 135, 133, 145, 137, 128, 128, 139, 137, 138, 141, 130, 138, 137, 143, 138, 148, 131, 139, 133, 131, 132, 139, 150, 138, 132, 130, 142, 140, 134, 128, 142, 139, 132, 135, 140, 132, 144, 155, 130, 135, 140, 135, 151, 141, 140, 134, 133, 133, 146, 133, 137, 140, 142, 131, 141, 139, 136, 137, 138, 139, 140, 147, 139, 136, 145, 138, 138, 142, 135, 132, 145, 144, 143, 139, 136, 146, 137, 127, 144, 140, 141, 142, 132, 131, 135, 142, 131, 136, 137, 141, 142, 134, 133, 134, 141, 146, 138, 135, 137, 141, 143, 141, 141, 143, 131, 131, 144, 140, 146, 141, 143, 137, 138, 145, 138, 127, 145, 149, 137, 141, 136, 144, 136, 132, 144, 139, 136, 134, 138, 141, 146, 135, 140, 147, 143, 146, 138, 137, 147, 134, 150, 127, 136, 137, 133, 136, 146, 135, 142, 133, 137, 138, 132, 134, 143, 142, 139, 129, 141, 137, 136, 140, 136, 140, 131, 132, 136, 129, 145, 139, 133, 134, 140, 141, 144, 145, 145, 141, 143, 144, 140, 147, 142, 137, 139, 141, 140, 140, 146, 135, 144, 129, 142, 147, 132, 143, 129, 139, 136, 145, 130, 129, 137, 136, 139, 130, 136, 140, 145, 143, 144, 141, 146, 140, 136, 136, 134, 142, 141, 138, 141, 137, 142, 138, 137, 137, 135, 145, 137, 142, 138, 134, 141, 135, 143, 132, 142, 140, 139, 148, 154, 133, 140, 141, 136, 135, 143, 132, 140, 131, 134, 142, 146, 130, 138, 137, 136, 149, 141, 147, 142, 138, 137, 141, 134, 139, 131, 148, 139, 141, 135, 141, 136, 141, 136, 136, 140, 138, 146, 141, 144, 137, 139, 136, 137, 142, 145, 145, 139, 133, 135, 138, 142, 140, 133, 133, 136, 137, 133, 146, 143, 140, 133, 140, 135, 133, 139, 138, 132, 131, 151, 141, 149, 138, 145, 140, 130, 144, 136, 145, 135, 136, 134, 136, 135, 136, 132, 143, 145, 137, 148, 136, 143, 152, 141, 140, 129, 144, 148, 130, 143, 128, 128, 137, 143, 144, 134, 145, 137, 137, 147, 139, 144, 143, 142, 134, 138, 140, 146, 145, 137, 133, 131, 143, 143, 129, 137, 140, 141, 138, 136, 132, 148, 133, 135, 135, 140, 141, 137, 143, 137, 141, 136, 148, 141, 133, 136, 142, 143, 134, 130, 136, 141, 137, 136, 131, 140, 136, 149, 147, 142, 142, 141, 148, 131, 139, 140, 148, 143, 142, 135, 144, 150, 143, 141, 134, 136, 131, 131, 139, 140, 152, 135, 137, 135, 142, 129, 135, 139, 134, 137, 141, 142, 146, 135, 150, 137, 138, 141, 141, 141, 131, 142, 137, 144, 136, 131, 138, 136, 137, 132, 130, 133, 135, 140, 139, 141, 141, 140, 138, 140, 147, 132, 146, 134, 133, 138, 142, 145, 127, 143, 137, 129, 146, 135, 142, 133, 138, 139, 133, 137, 132, 150, 138, 136, 138, 139, 141, 129, 141, 138, 144, 139, 137, 135, 141, 134, 148, 131, 131, 147, 140, 139, 138, 134, 139, 142, 134, 136, 143, 137, 141, 135, 148, 136, 132, 141, 137, 131, 143, 145, 139, 135, 139, 138, 143, 137, 139, 144, 137, 139, 137, 132, 142, 132, 137, 136, 147, 134, 143, 135, 143, 139, 145, 139, 130, 133, 137, 135, 137, 144, 136, 139, 136, 140, 140, 140, 136, 143, 143, 140, 145, 143, 137, 145, 141, 140, 130, 141, 136, 143, 136, 139, 136, 127, 132, 140, 146, 139, 136, 127, 135, 144, 137, 140, 140, 139, 144, 136, 132, 140, 144, 147, 132, 138, 139, 129, 138, 137, 136, 142, 136, 144, 150, 136, 128, 149, 138, 141, 134, 141, 139, 136, 132, 138, 144, 139, 137, 140, 138, 135, 140, 131, 135, 139, 137, 146, 137, 133, 135, 123, 142, 137, 145, 137, 133, 142, 137, 131, 127, 137, 147, 142, 138, 137, 140, 148, 135, 145, 142, 137, 144, 136, 138, 139, 137, 140, 138, 139, 140, 143, 127, 125, 138, 134, 136, 141, 143, 137, 134, 144, 129, 133, 127, 133, 136, 133, 141, 144, 135, 143, 137, 141, 143, 137, 139, 142, 141, 135, 146, 135, 131, 142, 135, 141, 138, 134, 141, 133, 136, 142, 135, 134, 136, 141, 142, 137, 142, 147, 133, 136, 131, 147, 127, 142, 134, 146, 129, 139, 136, 130, 127, 146, 137, 136, 144, 134, 133, 147, 142, 159, 135, 135, 137, 135, 132, 144, 142, 136, 133, 138, 135, 137, 126, 137, 134, 137, 138, 140, 135, 137, 155, 144, 137, 142, 142, 136, 142, 144, 147, 144, 139, 136, 144, 133, 135, 140, 138, 140, 150, 143, 142, 135, 144, 140, 146, 145, 136, 144, 133, 128, 139, 155, 136, 130, 137, 138, 141, 135, 130, 141, 133, 145, 129, 139, 140, 134, 137, 139, 141, 148, 139, 131, 141, 146, 137, 147, 144, 135, 139, 135, 137, 129, 139, 140, 141, 137, 138, 136, 146, 138, 131, 143, 142, 140, 137, 141, 139, 143, 135, 145, 143, 138, 128, 136, 141, 132, 135, 131, 148, 142, 142, 144, 142, 139, 137, 141, 134, 140, 145, 140, 138, 137, 135, 132, 139, 140, 143, 137, 140, 145, 141, 135, 143, 137, 140, 139, 148, 136, 127, 145, 136, 126, 129, 141, 139, 142, 140, 139, 134, 134, 134, 138, 138, 145, 142, 136, 139, 141, 137, 136, 146, 142, 136, 140, 148, 135, 147, 141, 145, 140, 138, 136, 147, 136, 136, 139, 136, 146, 142, 135, 133, 134, 145, 142, 143, 135, 150, 141, 138, 143, 143, 136, 133, 132, 149, 139, 147, 132, 140, 141, 134, 145, 151, 130, 142, 142, 142, 151, 143, 139, 135, 143, 131, 138, 146, 136, 133, 135, 138, 134, 141, 145, 144, 142, 141, 137, 137, 139, 138, 145, 134, 139, 131, 143, 136, 147, 148, 142, 144, 141, 137, 136, 141, 142, 137, 140, 144, 137, 135, 136, 131, 147, 133, 139, 136, 142, 132, 141, 142, 143, 134, 138, 140, 138, 138, 143, 142, 147, 140, 144, 144, 138, 145, 135, 138, 143, 137, 144, 143, 142, 145, 136, 142, 143, 142, 149, 138, 134, 149, 142, 138, 141, 132, 138, 134, 130, 144, 136, 134, 134, 139, 137, 143, 132, 142, 148, 139, 140, 139, 136, 141, 141, 142, 140, 135, 133, 140, 146, 137, 139, 134, 143, 143, 136, 129, 138, 141, 144, 128, 144, 147, 139, 137, 140, 141, 137, 137, 137, 136, 134, 138, 144, 152, 142, 135, 145, 138, 139, 133, 147, 140, 136, 138, 138, 137, 141, 136, 140, 145, 140, 134, 138, 139, 142, 126, 142, 132, 128, 131, 133, 143, 142, 144, 134, 131, 141, 133, 138, 141, 133, 135, 140, 138, 135, 146, 142, 140, 138, 142, 148, 138, 137, 141, 143, 133, 129, 140, 138, 134, 143, 141, 133, 142, 131, 140, 134, 133, 144, 136, 135, 137, 136, 145, 138, 139, 134, 133, 136, 144, 139, 158, 141, 140, 140, 148, 139, 138, 139, 133, 135, 150, 135, 137, 143, 136, 137, 137, 134, 133, 140, 138, 142, 136, 137, 141, 137, 135, 139, 141, 134, 135, 137, 139, 140, 141, 136, 135, 151, 136, 136, 138, 139, 141, 149, 141, 139, 141, 149, 138, 138, 145, 152, 141, 141, 154, 147, 132, 138, 132, 132, 132, 137, 146, 136, 131, 143, 136, 136, 137, 140, 138, 137, 136, 138, 131, 151, 131, 131, 138, 134, 143, 139, 130, 143, 140, 144, 140, 146, 133, 136, 143, 135, 150, 143, 135, 128, 142, 138, 138, 138, 141, 144, 132, 141, 130, 135, 139, 151, 139, 138, 136, 140, 146, 148, 143, 153, 143, 143, 142, 131, 148, 140, 138, 140, 144, 140, 143, 138, 133, 129, 139, 140, 131, 143, 149, 136, 140, 134, 140, 139, 133, 138, 142, 131, 142, 137, 138, 138, 138, 143, 145, 141, 129, 128, 128, 140, 139, 144, 136, 136, 136, 145, 145, 144, 134, 142, 131, 143, 141, 136, 134, 137, 140, 137, 138, 137, 136, 141, 140, 150, 135, 138, 141, 138, 137, 137, 138, 142, 141, 136, 147, 141, 135, 134, 135, 144, 145, 137, 140, 142, 140, 143, 139, 145, 139, 150, 132, 135, 134, 135, 147, 144, 139, 149, 138, 142, 138, 145, 137, 133, 137, 135, 146, 134, 134, 141, 139, 134, 140, 146, 134, 156, 140, 137, 140, 137, 130, 139, 143, 131, 141, 139, 136, 145, 136, 146, 146, 143, 144, 146, 139, 135, 137, 136, 143, 137, 149, 131, 135, 137, 146, 133, 143, 144, 140, 144, 142, 146, 140, 138, 140, 135, 135, 134, 149, 135, 139, 136, 145, 137, 133, 139, 136, 133, 137, 136, 125, 150, 135, 138, 149, 140, 144, 143, 133, 139, 137, 137, 132, 140, 139, 136, 144, 139, 141, 141, 133, 145, 137, 128, 142, 145, 138, 134, 142, 137, 143, 142, 133, 135, 137, 137, 140, 144, 148, 134, 140, 141, 130, 132, 140, 144, 136, 138, 149, 136, 137, 142, 138, 136, 145, 136, 141, 138, 148, 136, 137, 144, 134, 134, 139, 131, 140, 136, 149, 150, 135, 129, 138, 140, 142, 142, 144, 141, 145, 139, 133, 135, 135, 142, 139, 142, 134, 130, 148, 140, 137, 148, 132, 131, 136, 136, 143, 138, 134, 141, 134, 143, 136, 142, 141, 143, 139, 144, 137, 137, 122, 144, 137, 147, 146, 140, 137, 144, 128, 144, 133, 140, 130, 147, 142, 141, 136, 141, 145, 121, 139, 138, 149, 134, 137, 141, 135, 143, 153, 142, 144, 137, 141, 136, 135, 142, 136, 129, 144, 141, 143, 139, 134, 138, 134, 142, 142, 138, 142, 136, 142, 142, 136, 127, 145, 137, 136, 144, 141, 134, 149, 134, 133, 121, 135, 128, 135, 140, 139, 137, 136, 140, 134, 135, 128, 133, 134, 140, 141, 139, 142, 137, 146, 135, 136, 131, 147, 138, 151, 139, 147, 135, 139, 139, 150, 148, 144, 135, 141, 141, 141, 140, 135, 143, 146, 134, 139, 139, 135, 142, 139, 146, 142, 143, 135, 135, 141, 143, 130, 141, 144, 141, 137, 136, 139, 142, 133, 125, 142, 145, 137, 141, 147, 145, 123, 133, 143, 135, 140, 147, 140, 138, 133, 132, 137, 143, 139, 134, 140, 127, 138, 130, 148, 130, 134, 139, 132, 133, 143, 142, 144, 139, 144, 133, 132, 148, 145, 136, 139, 138, 140, 145, 131, 137, 136, 144, 145, 134, 138, 135, 146, 150, 138, 139, 137, 146, 136, 140, 144, 136, 137, 145, 138, 131, 132, 151, 140, 143, 138, 142, 137, 137, 134, 139, 139, 153, 145, 141, 142, 137, 138, 137, 145, 143, 136, 132, 142, 137, 140, 144, 142, 139, 142, 137, 145, 130, 150, 140, 142, 148, 140, 130, 140, 137, 143, 141, 133, 148, 147, 148, 147, 139, 141, 144, 140, 136, 136, 138, 133, 143, 151, 147, 146, 147, 149, 138, 128, 138, 147, 133, 143, 145, 147, 135, 143, 150, 140, 140, 133, 141, 127, 140, 145, 140, 146, 144, 139, 136, 137, 147, 132, 141, 138, 134, 141, 142, 140, 143, 139, 137, 139, 137, 136, 142, 141, 145, 140, 135, 140, 141, 136, 141, 151, 137, 141, 134, 134, 140, 140, 134, 142, 141, 151, 125, 139, 140, 142, 134, 140, 140, 148, 138, 132, 136, 129, 134, 136, 149, 140, 143, 133, 150, 130, 141, 136, 138, 138, 131, 140, 127, 139, 138, 145, 144, 131, 151, 133, 130, 141, 135, 141, 149, 139, 150, 138, 129, 144, 136, 144, 140, 136, 135, 140, 152, 142, 136, 140, 139, 140, 146, 137, 143, 142, 141, 140, 140, 144, 138, 145, 148, 141, 136, 144, 132, 138, 143, 149, 122, 134, 142, 150, 147, 131, 142, 133, 139, 139, 140, 151, 137, 140, 141, 141, 141, 157, 153, 138, 143, 136, 141, 142, 133, 129, 133, 138, 145, 130, 140, 132, 141, 132, 142, 139, 143, 134, 145, 148, 142, 144, 130, 141, 142, 142, 135, 146, 141, 142, 140, 141, 142, 146, 143, 140, 136, 144, 131, 142, 147, 144, 147, 143, 138, 136, 135, 145, 149, 140, 147, 151, 134, 152, 136, 134, 132, 140, 139, 138, 133, 129, 131, 135, 144, 129, 131, 137, 143, 135, 143, 143, 141, 141, 140, 148, 132, 142, 135, 134, 145, 134, 154, 123, 141, 152, 138, 139, 141, 147, 138, 130, 134, 138, 146, 140, 145, 138, 139, 147, 132, 145, 131, 138, 141, 131, 136, 139, 145, 134, 139, 132, 139, 137, 138, 138, 139, 136, 140, 144, 139, 137, 141, 136, 131, 155, 137, 138, 137, 141, 140, 148, 136, 134, 143, 137, 133, 148, 133, 139, 137, 143, 147, 145, 133, 138, 145, 133, 140, 139, 137, 134, 140, 141, 134, 143, 134, 132, 143, 143, 140, 129, 137, 143, 144, 131, 141, 140, 140, 134, 135, 134, 142, 146, 146, 143, 133, 142, 134, 144, 133, 137, 137, 151, 137, 143, 141, 140, 129, 137, 140, 138, 143, 137, 141, 135, 145, 141, 131, 134, 138, 129, 145, 135, 135, 147, 147, 148, 128, 133, 129, 145, 137, 142, 129, 139, 134, 131, 139, 134, 133, 135, 141, 140, 139, 131, 139, 127, 138, 143, 139, 126, 162, 136, 131, 137, 130, 134, 131, 136, 136, 138, 139, 141, 134, 137, 140, 143, 138, 133, 138, 137, 133, 127, 136, 141, 136, 138, 136, 140, 135, 137, 141, 137, 136, 151, 140, 138, 132, 130, 141, 136, 138, 144, 148, 131, 134, 155, 139, 134, 138, 145, 140, 139, 135, 135, 144, 137, 151, 142, 148, 132, 134, 135, 140, 145, 142, 144, 136, 140, 138, 152, 142, 143, 142, 135, 130, 144, 140, 132, 143, 140, 134, 138, 145, 131, 143, 143, 129, 140, 136, 134, 141, 133, 136, 140, 127, 140, 132, 135, 134, 132, 149, 139, 146, 138, 140, 128, 142, 140, 143, 148, 133, 137, 134, 134, 136, 141, 135, 136, 140, 135, 141, 141, 138, 145, 141, 145, 137, 138, 138, 141, 142, 133, 129, 138, 134, 147, 135, 138, 134, 141, 155, 146, 147, 142, 143, 135, 131, 131, 140, 144, 131, 122, 139, 142, 139, 140, 142, 140, 137, 136, 132, 136, 148, 139, 135, 134, 147, 137, 151, 147, 143, 135, 150, 144, 140, 137, 140, 145, 139, 142, 133, 132, 135, 129, 127, 136, 140, 132, 138, 143, 136, 135, 132, 137, 134, 144, 145, 135, 136, 141, 135, 136, 136, 131, 146, 134, 140, 143, 147, 144, 137, 149, 131, 150, 135, 146, 139, 139, 139, 133, 139, 131, 145, 149, 136, 146, 126, 135, 141, 138, 141, 139, 139, 135, 143, 140, 130, 143, 128, 137, 128, 125, 137, 145, 138, 135, 144, 143, 141, 143, 141, 137, 130, 138, 139, 130, 134, 140, 144, 138, 139, 143, 145, 146, 140, 140, 140, 137, 150, 133, 132, 134, 146, 141, 138, 131, 138, 143, 128, 145, 142, 141, 138, 140, 138, 134, 133, 135, 131, 137, 152, 134, 141, 128, 144, 135, 136, 137, 143, 135, 138, 151, 130, 134, 138, 135, 129, 135, 142, 140, 127, 132, 134, 132, 136, 137, 137, 143, 133, 134, 141, 146, 140, 137, 145, 134, 137, 141, 151, 123, 142, 132, 133, 130, 141, 140, 143, 139, 135, 141, 136, 143, 129, 133, 135, 145, 137, 135, 141, 137, 141, 140, 139, 146, 136, 137, 134, 139, 139, 134, 132, 139, 136, 142, 143, 135, 148, 140, 147, 136, 146, 139, 143, 137, 138, 139, 137, 147, 133, 142, 137, 137, 146, 142, 142, 137, 137, 141, 131, 141, 145, 141, 134, 142, 141, 135, 137, 138, 137, 135, 133, 139, 139, 133, 136, 142, 144, 141, 133, 141, 142, 140, 150, 136, 139, 134, 139, 135, 136, 149, 142, 141, 137, 139, 145, 134, 139, 144, 136, 142, 137, 140, 139, 142, 139, 138, 137, 139, 137, 133, 140, 145, 143, 140, 138, 145, 131, 133, 145, 155, 142, 140, 140, 137, 134, 138, 143, 132, 141, 134, 135, 139, 140, 143, 139, 134, 135, 144, 134, 140, 141, 137, 138, 147, 141, 139, 129, 138, 132, 145, 148, 140, 133, 148, 136, 139, 135, 143, 137, 136, 140, 133, 146, 135, 130, 134, 141, 135, 138, 138, 139, 140, 142, 143, 143, 138, 134, 140, 149, 142, 139, 135, 137, 143, 134, 133, 139, 131, 137, 135, 137, 141, 137, 140, 143, 139, 144, 143, 142, 135, 146, 142, 146, 137, 140, 144, 135, 139, 142, 139, 142, 145, 137, 147, 135, 140, 136, 133, 138, 138, 136, 134, 140, 143, 139, 144, 141, 138, 135, 135, 139, 140, 140, 138, 145, 138, 132, 139, 138, 139, 140, 132, 144, 144, 136, 144, 136, 138, 143, 144, 144, 139, 141, 138, 137, 140, 135, 142, 142, 134, 136, 140, 137, 140, 131, 135, 139, 135, 141, 144, 135, 140, 140, 142, 134, 135, 143, 143, 135, 137, 138, 133, 141, 137, 145, 151, 133, 135, 140, 137, 133, 141, 137, 135, 139, 140, 141, 146, 138, 143, 142, 140, 134, 144, 139, 137, 150, 140, 143, 127, 137, 137, 140, 144, 143, 143, 137, 135, 136, 136, 140, 137, 134, 141, 142, 139, 140, 140, 138, 133, 144, 141, 145, 140, 143, 137, 130, 138, 140, 136, 137, 137, 141, 139, 138, 135, 144, 142, 145, 133, 135, 135, 139, 140, 138, 139, 139, 139, 139, 138, 137, 146, 141, 138, 135, 140, 139, 138, 138, 141, 151, 135, 140, 144, 135, 138, 139, 145, 133, 136, 144, 137, 138, 137, 139, 137, 137, 135, 142, 137, 141, 140, 135, 143, 140, 145, 140, 141, 140, 138, 144, 134, 139, 143, 139, 137, 138, 140, 142, 144, 134, 134, 132, 136, 129, 133, 138, 142, 134, 138, 138, 136, 141, 147, 139, 146, 138, 133, 137, 140, 140, 136, 143, 136, 142, 138, 146, 143, 136, 139, 137, 136, 137, 143, 142, 142, 133, 135, 142, 145, 137, 138, 140, 134, 137, 136, 138, 135, 143, 137, 137, 136, 139, 138, 142, 133, 140, 135, 136, 132, 136, 137, 143, 136, 143, 139, 138, 142, 148, 136, 136, 139, 140, 141, 136, 143, 141, 141, 136, 133, 148, 137, 135, 135, 135, 143, 140, 137, 140, 141, 139, 137, 140, 141, 140, 134, 144, 141, 141, 136, 133, 139, 138, 140, 152, 134, 136, 136, 131, 141, 149, 127, 149, 131, 138, 144, 135, 137, 133, 137, 142, 135, 145, 140, 128, 142, 134, 135, 132, 141, 140, 136, 145, 136, 132, 143, 139, 131, 139, 143, 140, 139, 145, 134, 144, 133, 146, 144, 138, 147, 138, 142, 146, 145, 129, 134, 136, 133, 134, 143, 138, 143, 139, 141, 138, 137, 134, 138, 141, 144, 128, 139, 133, 145, 133, 145, 134, 132, 145, 135, 133, 131, 140, 141, 141, 139, 143, 131, 136, 134, 137, 139, 137, 132, 140, 135, 125, 133, 146, 129, 134, 136, 140, 136, 148, 140, 141, 131, 140, 142, 142, 134, 129, 143, 134, 145, 140, 153, 138, 141, 137, 134, 135, 132, 134, 133, 148, 128, 137, 133, 138, 132, 141, 145, 143, 139, 142, 130, 142, 150, 135, 142, 138, 131, 132, 139, 145, 130, 145, 132, 143, 134, 147, 148, 143, 137, 137, 142, 137, 140, 129, 141, 145, 134, 131, 142, 138, 136, 138, 144, 138, 140, 141, 133, 129, 139, 132, 144, 126, 148, 132, 136, 132, 139, 140, 148, 132, 131, 142, 136, 134, 138, 135, 146, 133, 133, 137, 134, 133, 138, 130, 134, 136, 150, 144, 146, 129, 138, 136, 138, 136, 151, 150, 135, 127, 133, 131, 145, 137, 142, 139, 143, 129, 133, 140, 130, 136, 141, 141, 142, 145, 146, 144, 133, 148, 146, 148, 140, 132, 142, 134, 142, 146, 138, 130, 132, 140, 140, 140, 140, 145, 142, 139, 133, 140, 143, 138, 143, 142, 131, 131, 144, 142, 136, 144, 144, 137, 136, 135, 144, 134, 139, 136, 133, 142, 146, 129, 148, 131, 138, 148, 136, 136, 134, 132, 136, 130, 133, 138, 138, 141, 135, 136, 139, 123, 135, 138, 124, 132, 135, 136, 134, 141, 138, 146, 151, 143, 128, 134, 140, 132, 136, 141, 137, 130, 137, 139, 139, 147, 135, 130, 137, 135, 137, 142, 133, 144, 141, 135, 140, 142, 141, 140, 129, 143, 139, 128, 130, 130, 140, 142, 136, 146, 134, 138, 142, 152, 137, 135, 137, 129, 132, 143, 144, 131, 149, 139, 141, 136, 133, 140, 137, 149, 140, 129, 142, 135, 138, 133, 137, 155, 142, 140, 145, 127, 143, 132, 142, 139, 132, 131, 134, 144, 140, 135, 129, 124, 139, 140, 137, 146, 130, 138, 137, 146, 143, 141, 131, 133, 127, 142, 135, 135, 139, 140, 138, 138, 145, 139, 141, 140, 143, 140, 145, 143, 141, 144, 140, 139, 131, 147, 131, 139, 136, 136, 147, 137, 140, 135, 147, 137, 134, 136, 151, 132, 133, 139, 136, 130, 135, 141, 139, 141, 136, 137, 138, 140, 134, 130, 133, 132, 141, 128, 134, 136, 135, 145, 141, 139, 145, 131, 148, 140, 134, 136, 135, 142, 140, 131, 131, 139, 132, 133, 134, 139, 144, 145, 136, 132, 135, 142, 134, 148, 146, 138, 137, 135, 135, 128, 124, 134, 132, 135, 140, 136, 145, 130, 139, 131, 138, 139, 133, 133, 135, 138, 140, 144, 145, 136, 134, 142, 141, 139, 132, 135, 152, 129, 145, 140, 137, 133, 154, 143, 138, 136, 136, 142, 140, 133, 144, 139, 136, 130, 139, 136, 143, 138, 141, 144, 137, 141, 136, 135, 144, 143, 144, 142, 137, 138, 146, 137, 138, 149, 140, 141, 137, 147, 151, 138, 142, 141, 139, 138, 141, 139, 134, 139, 144, 138, 138, 134, 137, 139, 144, 138, 136, 139, 141, 140, 134, 133, 140, 145, 140, 136, 142, 134, 139, 138, 140, 141, 146, 133, 141, 141, 132, 129, 143, 141, 139, 145, 137, 144, 134, 139, 140, 138, 137, 135, 137, 135, 136, 137, 143, 142, 143, 143, 140, 137, 136, 139, 136, 141, 136, 134, 135, 140, 138, 137, 139, 138, 138, 141, 140, 148, 135, 135, 144, 138, 132, 136, 139, 139, 138, 132, 136, 129, 137, 135, 135, 137, 139, 137, 144, 139, 133, 137, 134, 142, 141, 132, 141, 137, 138, 142, 144, 142, 145, 140, 135, 141, 137, 141, 136, 145, 142, 139, 139, 131, 136, 143, 137, 141, 139, 142, 143, 140, 141, 140, 138, 131, 140, 136, 143, 143, 130, 139, 138, 139, 135, 143, 150, 138, 142, 142, 131, 139, 137, 140, 140, 144, 136, 143, 143, 130, 142, 131, 140, 137, 139, 142, 144, 131, 139, 140, 139, 136, 140, 148, 148, 145, 147, 145, 136, 140, 138, 141, 145, 141, 135, 140, 139, 144, 141, 139, 138, 138, 138, 142, 137, 139, 141, 138, 143, 140, 135, 145, 132, 140, 134, 139, 142, 136, 142, 149, 145, 142, 136, 148, 145, 138, 137, 136, 136, 137, 140, 132, 128, 134, 139, 137, 145, 136, 137, 143, 139, 137, 146, 144, 138, 137, 141, 148, 144, 153, 135, 139, 135, 143, 145, 139, 140, 138, 141, 135, 131, 137, 142, 139, 135, 137, 144, 145, 137, 139, 137, 139, 145, 135, 144, 136, 143, 143, 143, 138, 141, 137, 139, 137, 142, 135, 139, 140, 140, 141, 137, 135, 141, 147, 146, 132, 143, 135, 134, 138, 140, 136, 136, 139, 137, 144, 140, 141, 137, 144, 141, 138, 134, 140, 136, 138, 135, 140, 142, 140, 136, 144, 140, 143, 137, 137, 133, 136, 142, 134, 144, 131, 136, 141, 138, 141, 139, 145, 133, 139, 136, 139, 144, 142, 139, 134, 145, 136, 143, 133, 145, 131, 132, 137, 139, 138, 135, 144, 138, 133, 136, 141, 136, 141, 145, 142, 142, 141, 133, 141, 140, 141, 142, 130, 136, 137, 133, 140, 135, 140, 141, 138, 130, 141, 143, 141, 131, 137, 134, 145, 133, 143, 142, 132, 142, 147, 141, 140, 144, 140, 147, 141, 138, 141, 142, 140, 136, 136, 137, 138, 147, 134, 142, 142, 141, 136, 148, 142, 140, 138, 144, 140, 137, 145, 141, 138, 146, 139, 137, 132, 134, 142, 146, 136, 141, 137, 132, 144, 136, 144, 135, 141, 143, 142, 140, 132, 132, 140, 139, 138, 145, 135, 134, 141, 142, 150, 144, 139, 146, 133, 141, 139, 140, 139, 135, 136, 143, 133, 138, 138, 139, 143, 132, 141, 141, 135, 137, 135, 142, 139, 141, 133, 142, 140, 144, 145, 137, 141, 143, 137, 143, 134, 137, 149, 134, 140, 132, 141, 140, 133, 132, 143, 137, 141, 140, 137, 134, 138, 124, 144, 144, 129, 136, 142, 136, 142, 134, 138, 144, 147, 130, 136, 137, 135, 141, 137, 138, 137, 130, 138, 147, 133, 145, 147, 149, 133, 144, 133, 136, 135, 138, 143, 133, 129, 138, 141, 140, 141, 140, 135, 137, 129, 137, 130, 136, 135, 141, 145, 128, 137, 146, 137, 143, 143, 148, 148, 143, 133, 134, 129, 146, 136, 133, 142, 139, 132, 139, 148, 140, 151, 143, 143, 132, 143, 140, 143, 139, 124, 131, 137, 153, 128, 142, 136, 131, 140, 130, 142, 140, 141, 134, 132, 144, 140, 143, 143, 139, 144, 140, 136, 140, 134, 136, 142, 140, 141, 143, 142, 142, 129, 129, 144, 141, 142, 135, 138, 139, 139, 130, 139, 136, 138, 144, 127, 132, 128, 139, 137, 146, 146, 135, 135, 134, 140, 140, 129, 135, 134, 145, 142, 132, 134, 144, 140, 143, 141, 133, 144, 144, 144, 139, 139, 133, 130, 141, 133, 133, 139, 136, 141, 135, 146, 135, 142, 143, 146, 146, 141, 143, 132, 135, 139, 136, 137, 128, 137, 138, 133, 154, 139, 141, 146, 127, 134, 133, 151, 139, 135, 138, 141, 146, 140, 140, 134, 145, 150, 141, 140, 146, 133, 147, 143, 139, 141, 126, 146, 128, 147, 142, 142, 140, 136, 149, 136, 134, 142, 142, 132, 137, 141, 143, 133, 152, 134, 146, 140, 129, 144, 147, 127, 134, 133, 146, 131, 131, 143, 148, 139, 137, 137, 148, 140, 133, 134, 135, 141, 146, 128, 138, 133, 144, 135, 115, 145, 134, 137, 145, 146, 129, 141, 134, 144, 131, 135, 131, 140, 150, 143, 145, 137, 131, 131, 148, 138, 134, 145, 133, 133, 147, 139, 137, 140, 146, 143, 133, 140, 135, 139, 136, 137, 143, 145, 138, 138, 143, 133, 138, 140, 144, 146, 132, 131, 153, 127, 139, 144, 131, 133, 137, 140, 142, 136, 146, 140, 140, 141, 143, 138, 137, 148, 127, 146, 146, 139, 137, 126, 151, 140, 136, 145, 143, 147, 149, 147, 137, 138, 130, 136, 132, 132, 145, 142, 146, 137, 146, 151, 133, 136, 136, 124, 136, 138, 144, 136, 132, 135, 127, 132, 134, 131, 140, 137, 128, 148, 134, 143, 142, 138, 145, 141, 144, 140, 134, 143, 149, 130, 146, 147, 137, 153, 138, 140, 128, 133, 134, 134, 146, 143, 136, 143, 146, 140, 141, 134, 135, 137, 135, 133, 137, 138, 135, 144, 133, 143, 134, 153, 135, 139, 133, 141, 136, 147, 131, 137, 133, 151, 147, 132, 137, 146, 135, 152, 145, 136, 148, 136, 151, 142, 143, 139, 140, 141, 127, 142, 134, 139, 138, 157, 135, 143, 138, 135, 137, 149, 134, 147, 122, 152, 143, 138, 132, 142, 146, 133, 142, 138, 137, 143, 143, 146, 136, 119, 136, 146, 139, 129, 148, 150, 147, 132, 145, 142, 135, 144, 149, 143, 142, 142, 135, 140, 134, 137, 140, 137, 136, 146, 140, 134, 135, 140, 153, 130, 138, 147, 139, 137, 138, 149, 140, 149, 141, 147, 140, 139, 147, 143, 138, 137, 138, 138, 127, 142, 130, 142, 139, 156, 146, 142, 137, 138, 131, 140, 137, 144, 132, 135, 147, 143, 144, 137, 138, 142, 132, 143, 146, 152, 144, 132, 129, 143, 134, 143, 141, 149, 138, 145, 139, 139, 140, 137, 127, 133, 129, 137, 132, 135, 139, 146, 143, 135, 143, 137, 132, 137, 139, 143, 135, 139, 138, 132, 135, 126, 138, 135, 134, 142, 146, 138, 129, 141, 136, 125, 138, 130, 135, 143, 135, 134, 130, 128, 133, 143, 139, 150, 136, 137, 140, 142, 144, 134, 125, 133, 137, 135, 141, 146, 136, 138, 145, 138, 142, 135, 132, 133, 137, 143, 144, 146, 140, 145, 139, 138, 130, 134, 134, 145, 138, 145, 141, 146, 140, 123, 136, 137, 144, 137, 143, 140, 134, 147, 133, 141, 138, 137, 138, 146, 141, 129, 136, 133, 145, 136, 141, 143, 140, 134, 138, 136, 128, 135, 144, 143, 141, 151, 135, 131, 138, 137, 141, 139, 138, 134, 141, 137, 139, 138, 147, 124, 139, 134, 146, 136, 132, 138, 147, 138, 144, 140, 144, 138, 138, 136, 137, 138, 140, 142, 137, 139, 140, 137, 139, 136, 131, 144, 143, 132, 138, 145, 143, 136, 143, 138, 141, 142, 138, 135, 135, 131, 139, 135, 142, 137, 140, 141, 137, 133, 136, 133, 137, 137, 141, 136, 144, 137, 142, 137, 132, 151, 143, 145, 138, 139, 135, 146, 138, 137, 140, 141, 146, 159, 124, 135, 137, 140, 131, 139, 135, 138, 138, 150, 136, 138, 135, 140, 132, 135, 138, 140, 131, 138, 126, 139, 149, 143, 137, 148, 135, 135, 132, 151, 130, 138, 133, 136, 140, 140, 137, 138, 143, 138, 146, 146, 138, 137, 129, 143, 139, 130, 131, 141, 146, 139, 140, 128, 144, 141, 145, 141, 143, 143, 135, 136, 142, 132, 136, 136, 134, 148, 142, 130, 149, 141, 135, 140, 144, 140, 130, 141, 135, 133, 137, 142, 144, 130, 149, 141, 135, 141, 132, 140, 139, 147, 135, 139, 135, 136, 135, 129, 133, 139, 134, 137, 129, 134, 148, 147, 144, 129, 138, 140, 135, 132, 141, 145, 130, 133, 137, 133, 141, 135, 138, 148, 134, 142, 142, 132, 137, 136, 138, 141, 138, 139, 139, 144, 136, 148, 131, 144, 137, 143, 138, 142, 139, 132, 138, 132, 136, 139, 128, 139, 136, 140, 140, 140, 138, 132, 137, 139, 139, 134, 138, 139, 139, 137, 140, 141, 143, 145, 144, 135, 149, 140, 142, 140, 134, 144, 150, 140, 142, 150, 136, 141, 142, 139, 134, 134, 136, 139, 134, 136, 139, 142, 134, 137, 140, 147, 135, 148, 141, 142, 135, 137, 134, 146, 149, 134, 145, 128, 141, 141, 138, 129, 129, 141, 135, 129, 142, 136, 140, 140, 141, 143, 141, 143, 140, 144, 151, 129, 135, 136, 141, 144, 134, 132, 141, 146, 137, 134, 138, 158, 149, 144, 131, 145, 128, 140, 134, 144, 131, 133, 142, 144, 134, 141, 135, 127, 131, 143, 131, 138, 146, 140, 142, 139, 139, 131, 147, 139, 151, 143, 131, 129, 134, 145, 142, 132, 135, 140, 151, 145, 141, 134, 149, 140, 137, 138, 140, 134, 138, 131, 141, 144, 137, 143, 135, 145, 135, 135, 135, 135, 139, 131, 139, 135, 121, 134, 147, 142, 147, 139, 132, 138, 135, 135, 139, 136, 137, 142, 143, 136, 139, 142, 147, 140, 149, 147, 144, 135, 139, 144, 140, 140, 145, 142, 143, 139, 137, 140, 144, 139, 144, 135, 129, 136, 146, 140, 146, 134, 139, 140, 137, 149, 127, 136, 134, 138, 136, 138, 148, 130, 135, 134, 138, 137, 129, 130, 133, 145, 133, 128, 136, 141, 141, 136, 137, 141, 139, 133, 130, 143, 144, 132, 134, 147, 143, 136, 130, 155, 145, 136, 142, 141, 144, 142, 136, 138, 139, 136, 142, 135, 140, 132, 134, 142, 138, 118, 139, 152, 130, 146, 143, 150, 142, 142, 144, 130, 133, 136, 135, 144, 137, 133, 143, 139, 140, 140, 148, 135, 139, 146, 137, 152, 137, 129, 147, 139, 134, 133, 135, 144, 130, 137, 142, 156, 134, 138, 147, 138, 139, 129, 139, 145, 139, 134, 133, 147, 141, 149, 150, 143, 141, 152, 142, 136, 144, 141, 139, 148, 136, 140, 138, 145, 140, 140, 131, 140, 143, 147, 129, 130, 131, 144, 132, 146, 142, 138, 139, 138, 155, 148, 137, 142, 142, 140, 121, 137, 152, 131, 140, 134, 142, 142, 142, 142, 147, 154, 130, 138, 148, 135, 134, 134, 142, 142, 144, 134, 140, 139, 142, 140, 140, 151, 163, 138, 144, 137, 138, 146, 132, 151, 145, 140, 135, 142, 132, 149, 136, 149, 139, 136, 136, 135, 138, 133, 131, 133, 145, 139, 152, 140, 142, 132, 145, 140, 140, 145, 125, 150, 135, 145, 131, 142, 127, 136, 142, 144, 149, 137, 138, 142, 137, 136, 138, 142, 134, 150, 143, 141, 137, 130, 146, 129, 139, 147, 134, 147, 134, 138, 137, 149, 129, 140, 138, 133, 141, 138, 129, 151, 139, 144, 139, 136, 141, 136, 145, 132, 135, 127, 141, 145, 134, 133, 143, 140, 128, 134, 146, 143, 135, 138, 137, 136, 144, 137, 154, 141, 141, 130, 143, 137, 136, 140, 129, 142, 144, 140, 132, 151, 134, 143, 136, 141, 144, 137, 139, 148, 143, 139, 154, 139, 145, 151, 142, 137, 133, 136, 139, 135, 149, 133, 136, 137, 145, 128, 147, 135, 140, 159, 129, 138, 138, 134, 135, 144, 136, 142, 138, 146, 143, 137, 145, 144, 149, 137, 138, 149, 145, 147, 142, 136, 145, 145, 138, 144, 133, 139, 136, 143, 142, 135, 141, 142, 139, 134, 146, 140, 137, 142, 134, 146, 151, 137, 133, 142, 132, 136, 125, 139, 144, 139, 135, 134, 143, 132, 138, 144, 142, 137, 128, 128, 138, 139, 130, 136, 138, 138, 137, 138, 136, 137, 135, 143, 140, 139, 133, 141, 134, 140, 143, 140, 139, 147, 138, 138, 138, 136, 128, 139, 135, 134, 149, 138, 140, 142, 158, 139, 140, 132, 130, 149, 156, 140, 136, 142, 135, 149, 134, 139, 134, 142, 141, 129, 136, 137, 145, 141, 134, 138, 136, 135, 135, 138, 145, 133, 135, 129, 138, 136, 139, 133, 134, 134, 123, 149, 156, 139, 139, 146, 143, 136, 133, 134, 126, 134, 130, 141, 139, 132, 138, 136, 144, 139, 148, 153, 136, 132, 144, 140, 154, 134, 137, 141, 148, 143, 142, 145, 136, 134, 141, 133, 150, 138, 134, 145, 133, 141, 147, 138, 136, 138, 148, 135, 141, 136, 135, 134, 136, 134, 129, 133, 141, 143, 141, 153, 133, 148, 144, 142, 139, 132, 142, 143, 146, 147, 157, 142, 136, 128, 132, 157, 133, 137, 140, 137, 139, 131, 144, 133, 138, 135, 139, 146, 135, 132, 149, 127, 151, 151, 131, 145, 132, 131, 139, 131, 145, 137, 133, 138, 148, 146, 129, 137, 143, 145, 151, 143, 132, 147, 133, 139, 142, 131, 143, 139, 140, 144, 132, 151, 144, 135, 133, 127, 140, 134, 140, 142, 133, 125, 141, 143, 146, 143, 140, 141, 138, 144, 134, 142, 142, 134, 148, 132, 149, 145, 138, 132, 142, 143, 143, 127, 136, 146, 136, 145, 143, 145, 139, 130, 138, 142, 136, 135, 138, 139, 138, 125, 141, 139, 141, 140, 135, 143, 133, 139, 138, 142, 143, 135, 128, 137, 138, 137, 130, 125, 138, 133, 134, 146, 127, 141, 148, 143, 137, 152, 136, 134, 138, 148, 131, 138, 150, 141, 125, 145, 142, 135, 130, 146, 146, 131, 134, 145, 144, 149, 143, 135, 143, 134, 132, 149, 136, 138, 143, 130, 137, 150, 137, 149, 142, 137, 143, 146, 128, 133, 140, 142, 138, 125, 128, 133, 125, 132, 126, 147, 143, 140, 147, 143, 135, 136, 136, 132, 137, 138, 139, 142, 141, 139, 139, 134, 135, 133, 147, 142, 136, 144, 137, 144, 128, 153, 144, 148, 130, 134, 141, 143, 133, 135, 140, 132, 142, 145, 137, 136, 138, 143, 139, 136, 142, 138, 142, 130, 124, 135, 136, 147, 140, 125, 136, 146, 143, 146, 141, 141, 143, 143, 134, 140, 142, 145, 141, 136, 136, 133, 137, 146, 142, 147, 131, 132, 131, 135, 134, 147, 129, 139, 160, 141, 126, 134, 133, 144, 132, 153, 131, 135, 135, 129, 131, 138, 149, 151, 142, 125, 136, 143, 136, 130, 146, 128, 137, 146, 145, 128, 138, 142, 130, 148, 136, 142, 145, 144, 128, 144, 144, 126, 138, 128, 142, 153, 146, 142, 131, 153, 140, 148, 134, 132, 151, 132, 129, 137, 131, 132, 137, 133, 142, 142, 148, 144, 132, 134, 148, 136, 136, 132, 134, 137, 143, 141, 145, 144, 141, 128, 151, 136, 146, 126, 148, 141, 132, 152, 130, 145, 137, 136, 142, 150, 135, 141, 125, 140, 139, 145, 138, 132, 149, 143, 132, 138, 138, 136, 129, 140, 141, 149, 123, 149, 144, 138, 156, 154, 144, 141, 138, 136, 145, 146, 129, 145, 138, 144, 140, 133, 148, 141, 136, 139, 146, 133, 144, 141, 148, 140, 143, 134, 132, 136, 136, 153, 138, 150, 137, 144, 129, 136, 129, 143, 141, 135, 137, 133, 131, 133, 138, 139, 134, 131, 142, 128, 135, 138, 139, 127, 137, 142, 139, 140, 132, 136, 137, 125, 149, 131, 138, 144, 139, 140, 143, 149, 144, 135, 135, 137, 140, 136, 142, 136, 127, 145, 140, 147, 144, 158, 136, 147, 142, 124, 131, 150, 137, 141, 140, 140, 137, 135, 143, 142, 145, 142, 148, 137, 148, 140, 144, 142, 141, 125, 142, 141, 141, 123, 142, 145, 134, 136, 139, 129, 144, 144, 141, 132, 131, 151, 147, 134, 143, 149, 135, 133, 143, 152, 137, 131, 139, 141, 144, 135, 135, 133, 144, 138, 127, 138, 131, 140, 144, 145, 134, 128, 144, 140, 129, 149, 138, 143, 128, 145, 134, 141, 138, 138, 143, 141, 138, 139, 145, 138, 139, 137, 145, 139, 134, 138, 150, 143, 141, 133, 128, 142, 152, 130, 139, 143, 133, 147, 143, 137, 136, 140, 142, 140, 127, 139, 137, 159, 132, 148, 146, 131, 141, 137, 137, 144, 145, 129, 136, 151, 149, 150, 139, 140, 140, 148, 139, 140, 154, 138, 145, 144, 139, 137, 133, 143, 138, 140, 134, 136, 136, 138, 133, 134, 135, 132, 144, 135, 142, 137, 141, 150, 140, 138, 147, 134, 147, 136, 140, 148, 140, 141, 132, 138, 137, 148, 131, 145, 136, 130, 140, 143, 143, 129, 142, 144, 126, 144, 145, 129, 135, 152, 137, 142, 140, 140, 141, 142, 140, 145, 124, 141, 144, 143, 141, 131, 140, 137, 148, 147, 135, 135, 138, 133, 138, 133, 148, 134, 126, 145, 131, 135, 148, 141, 141, 141, 137, 136, 144, 133, 132, 143, 137, 124, 134, 127, 143, 144, 149, 140, 137, 142, 139, 133, 152, 141, 155, 132, 132, 138, 139, 144, 142, 142, 143, 141, 145, 152, 132, 142, 132, 146, 146, 147, 142, 144, 131, 143, 123, 139, 150, 138, 145, 131, 137, 135, 140, 138, 155, 136, 144, 145, 138, 138, 138, 136, 133, 147, 154, 134, 146, 139, 132, 131, 134, 126, 122, 148, 136, 137, 132, 137, 143, 131, 149, 142, 142, 144, 134, 142, 136, 143, 144, 139, 151, 146, 144, 130, 142, 142, 142, 147, 138, 131, 164, 142, 128, 143, 136, 136, 135, 133, 139, 149, 147, 143, 144, 144, 128, 145, 141, 131, 129, 136, 140, 131, 152, 137, 141, 141, 142, 141, 144, 150, 148, 137, 139, 143, 137, 141, 140, 137, 148, 140, 137, 139, 143, 149, 144, 144, 138, 144, 139, 138, 137, 135, 148, 146, 137, 143, 138, 138, 137, 139, 144, 147, 146, 141, 141, 129, 148, 145, 135, 142, 133, 144, 134, 144, 139, 135, 147, 141, 136, 140, 142, 128, 142, 134, 140, 146, 141, 136, 144, 145, 131, 128, 134, 148, 130, 145, 149, 144, 131, 140, 142, 135, 145, 135, 132, 134, 126, 137, 138, 138, 149, 145, 147, 152, 128, 134, 142, 138, 139, 140, 135, 146, 144, 141, 139, 142, 148, 142, 143, 140, 132, 139, 152, 127, 143, 138, 131, 148, 136, 137, 144, 142, 135, 134, 140, 131, 146, 138, 136, 140, 144, 138, 155, 131, 134, 140, 128, 136, 135, 126, 131, 131, 133, 142, 138, 131, 144, 129, 137, 133, 136, 143, 138, 127, 143, 137, 143, 142, 146, 132, 140, 132, 139, 122, 136, 133, 141, 136, 134, 141, 135, 144, 150, 132, 139, 141, 144, 123, 153, 138, 153, 147, 134, 135, 136, 130, 134, 140, 133, 131, 143, 138, 138, 142, 140, 142, 132, 137, 143, 132, 133, 147, 145, 129, 145, 131, 136, 138, 138, 147, 141, 131, 134, 138, 141, 142, 145, 141, 144, 140, 139, 131, 149, 134, 141, 137, 131, 150, 145, 135, 146, 145, 144, 141, 149, 148, 138, 140, 144, 139, 144, 140, 143, 134, 128, 135, 134, 133, 127, 137, 136, 132, 142, 135, 135, 132, 135, 134, 138, 147, 136, 148, 134, 146, 143, 138, 131, 142, 134, 132, 136, 133, 142, 137, 139, 138, 133, 134, 139, 139, 140, 145, 135, 136, 132, 132, 142, 136, 131, 138, 131, 138, 142, 135, 139, 140, 142, 131, 139, 147, 137, 136, 136, 144, 138, 139, 138, 146, 142, 130, 138, 125, 131, 132, 137, 133, 134, 134, 138, 145, 148, 150, 148, 129, 139, 139, 141, 137, 144, 143, 131, 145, 134, 130, 143, 133, 132, 144, 137, 130, 140, 135, 132, 142, 138, 151, 123, 135, 151, 148, 144, 127, 138, 145, 135, 129, 140, 143, 143, 143, 142, 140, 133, 144, 144, 138, 129, 142, 152, 159, 139, 147, 130, 135, 149, 138, 138, 137, 141, 139, 141, 142, 147, 141, 141, 148, 145, 137, 138, 148, 138, 129, 140, 133, 144, 134, 134, 142, 143, 135, 138, 138, 136, 132, 134, 134, 148, 137, 131, 139, 134, 133, 151, 139, 141, 150, 139, 130, 136, 131, 144, 138, 141, 138, 147, 133, 149, 139, 146, 130, 138, 133, 137, 138, 136, 135, 137, 135, 147, 141, 139, 133, 137, 143, 145, 132, 129, 140, 146, 135, 127, 150, 148, 141, 132, 144, 140, 138, 134, 143, 141, 145, 141, 140, 142, 137, 131, 143, 137, 120, 143, 140, 138, 147, 137, 141, 133, 135, 136, 137, 130, 138, 131, 133, 142, 142, 139, 138, 131, 141, 146, 136, 146, 136, 136, 130, 142, 137, 137, 137, 138, 132, 147, 130, 136, 128, 139, 151, 150, 138, 136, 130, 144, 142, 136, 132, 135, 137, 135, 130, 145, 139, 152, 146, 134, 133, 139, 145, 134, 139, 137, 143, 148, 139, 141, 145, 154, 141, 130, 142, 138, 131, 142, 139, 129, 132, 137, 129, 137, 143, 141, 129, 133, 143, 149, 146, 130, 133, 139, 126, 144, 149, 131, 136, 136, 131, 148, 143, 146, 143, 142, 136, 153, 143, 132, 143, 131, 134, 133, 138, 131, 134, 134, 130, 143, 132, 145, 137, 140, 150, 137, 154, 148, 147, 130, 141, 144, 148, 141, 146, 142, 136, 144, 144, 134, 131, 136, 141, 133, 130, 139, 138, 134, 149, 135, 135, 138, 146, 139, 143, 140, 132, 146, 135, 153, 149, 138, 137, 141, 138, 142, 137, 137, 138, 136, 134, 142, 141, 135, 138, 137, 141, 132, 133, 139, 144, 137, 133, 141, 138, 145, 130, 127, 144, 144, 139, 134, 132, 137, 140, 137, 144, 137, 125, 144, 134, 152, 135, 138, 141, 144, 132, 136, 150, 130, 142, 134, 142, 143, 115, 140, 134, 141, 132, 144, 141, 139, 138, 135, 123, 138, 136, 143, 143, 131, 141, 134, 138, 136, 130, 135, 140, 137, 144, 134, 137, 140, 137, 143, 134, 147, 139, 137, 137, 146, 132, 134, 146, 137, 144, 148, 151, 146, 142, 139, 141, 129, 143, 149, 137, 149, 142, 150, 141, 138, 132, 130, 144, 153, 140, 147, 134, 138, 140, 141, 129, 143, 141, 142, 134, 137, 138, 152, 129, 140, 136, 142, 141, 130, 142, 132, 139, 140, 151, 144, 145, 132, 134, 144, 135, 136, 146, 146, 152, 131, 139, 140, 141, 142, 132, 137, 130, 126, 140, 126, 138, 129, 141, 143, 148, 136, 131, 140, 145, 132, 132, 137, 129, 144, 141, 137, 144, 136, 138, 145, 134, 131, 146, 141, 138, 138, 146, 136, 136, 135, 138, 138, 141, 143, 128, 134, 137, 132, 133, 138, 140, 142, 140, 134, 131, 146, 134, 149, 151, 133, 142, 131, 143, 151, 141, 131, 136, 144, 137, 132, 139, 133, 134, 134, 140, 135, 135, 141, 127, 138, 136, 139, 133, 144, 134, 142, 145, 138, 140, 134, 153, 141, 133, 135, 145, 133, 143, 142, 143, 130, 139, 143, 144, 146, 134, 143, 130, 142, 128, 148, 136, 140, 141, 142, 149, 144, 137, 139, 148, 125, 140, 168, 136, 132, 136, 132, 136, 138, 152, 150, 135, 140, 142, 135, 139, 125, 144, 140, 142, 127, 138, 140, 150, 145, 120, 133, 136, 149, 140, 145, 156, 135, 134, 146, 133, 131, 142, 135, 138, 145, 137, 144, 138, 142, 131, 152, 131, 157, 133, 148, 138, 137, 134, 136, 144, 136, 131, 133, 138, 122, 144, 143, 132, 136, 142, 139, 135, 136, 146, 132, 137, 140, 139, 132, 131, 140, 142, 142, 139, 144, 132, 140, 134, 127, 129, 149, 139, 137, 147, 131, 135, 134, 130, 124, 147, 145, 138, 136, 141, 134, 141, 141, 136, 140, 149, 139, 132, 138, 138, 131, 146, 126, 129, 133, 135, 139, 133, 132, 143, 148, 144, 142, 140, 141, 141, 136, 152, 127, 136, 142, 131, 144, 138, 139, 137, 137, 136, 137, 134, 137, 145, 136, 143, 131, 139, 140, 135, 144, 135, 141, 145, 147, 142, 149, 134, 130, 143, 139, 153, 134, 136, 138, 145, 141, 153, 139, 139, 141, 142, 140, 150, 142, 131, 125, 139, 152, 137, 132, 131, 146, 139, 142, 149, 149, 146, 142, 134, 139, 138, 148, 142, 137, 137, 142, 136, 142, 150, 144, 141, 138, 132, 138, 149, 132, 132, 140, 136, 142, 139, 137, 133, 136, 140, 138, 137, 128, 130, 142, 147, 142, 140, 143, 135, 133, 144, 140, 143, 138, 135, 144, 142, 137, 145, 132, 138, 137, 126, 137, 139, 137, 130, 144, 133, 142, 143, 133, 142, 148, 138, 143, 135, 133, 143, 140, 134, 143, 137, 145, 137, 137, 137, 142, 134, 146, 139, 140, 139, 133, 141, 126, 141, 138, 143, 143, 138, 138, 143, 129, 143, 140, 148, 137, 133, 135, 146, 139, 145, 140, 144, 131, 138, 139, 142, 129, 139, 142, 142, 144, 142, 137, 139, 144, 139, 143, 129, 138, 132, 140, 133, 138, 143, 142, 138, 139, 138, 135, 151, 143, 145, 138, 134, 141, 144, 141, 139, 142, 140, 144, 147, 132, 138, 130, 143, 139, 132, 144, 128, 142, 136, 132, 132, 135, 127, 132, 138, 145, 142, 131, 140, 137, 138, 141, 145, 136, 136, 144, 140, 141, 136, 141, 145, 149, 132, 136, 142, 145, 134, 127, 141, 132, 139, 142, 136, 145, 130, 140, 136, 133, 140, 131, 142, 146, 136, 131, 138, 144, 136, 140, 137, 136, 137, 129, 145, 145, 132, 137, 140, 140, 136, 133, 134, 140, 137, 138, 141, 132, 137, 149, 147, 139, 142, 138, 132, 143, 133, 138, 145, 136, 134, 140, 147, 142, 131, 134, 140, 134, 133, 148, 145, 140, 144, 145, 148, 138, 147, 137, 127, 130, 136, 141, 143, 140, 141, 136, 140, 137, 141, 140, 146, 145, 144, 147, 138, 148, 148, 137, 143, 132, 141, 141, 143, 134, 140, 138, 135, 140, 139, 127, 128, 138, 139, 139, 128, 140, 139, 140, 145, 138, 121, 138, 140, 133, 142, 139, 135, 133, 133, 142, 135, 132, 138, 141, 140, 138, 145, 142, 143, 130, 146, 132, 142, 140, 145, 146, 136, 141, 138, 143, 137, 140, 132, 154, 143, 128, 138, 149, 139, 136, 141, 137, 132, 144, 137, 142, 135, 143, 143, 132, 126, 136, 138, 142, 144, 144, 139, 146, 140, 140, 141, 137, 144, 136, 137, 147, 135, 145, 139, 130, 143, 133, 138, 134, 140, 138, 136, 139, 134, 137, 150, 139, 139, 136, 131, 132, 136, 136, 134, 136, 130, 145, 147, 141, 138, 141, 137, 144, 145, 139, 135, 144, 138, 133, 143, 136, 144, 139, 149, 137, 134, 136, 130, 134, 144, 144, 139, 136, 141, 140, 141, 146, 137, 135, 135, 138, 137, 144, 133, 136, 137, 142, 139, 133, 136, 141, 150, 132, 134, 149, 128, 124, 138, 137, 145, 141, 140, 135, 145, 142, 139, 132, 142, 142, 137, 143, 137, 142, 143, 136, 136, 145, 143, 134, 136, 147, 144, 144, 140, 140, 129, 143, 137, 140, 138, 131, 133, 141, 146, 142, 134, 140, 140, 145, 140, 131, 145, 139, 137, 144, 140, 134, 144, 140, 139, 138, 139, 142, 138, 143, 139, 147, 129, 137, 141, 142, 138, 140, 137, 135, 130, 141, 146, 132, 134, 136, 146, 146, 135, 137, 140, 136, 139, 149, 144, 129, 139, 149, 142, 138, 138, 137, 138, 138, 143, 135, 141, 143, 138, 140, 132, 141, 139, 142, 141, 145, 138, 147, 139, 132, 139, 141, 134, 140, 139, 136, 142, 132, 144, 141, 136, 143, 139, 140, 140, 144, 138, 136, 139, 139, 142, 137, 137, 140, 150, 136, 132, 131, 134, 148, 139, 143, 146, 147, 142, 132, 145, 138, 136, 135, 140, 141, 145, 141, 134, 144, 142, 137, 138, 136, 145, 145, 151, 145, 136, 139, 139, 147, 145, 129, 135, 141, 138, 139, 140, 149, 142, 135, 137, 134, 147, 147, 141, 136, 134, 144, 134, 137, 129, 137, 148, 136, 137, 142, 147, 139, 141, 136, 138, 142, 141, 130, 134, 136, 135, 149, 136, 139, 135, 131, 137, 146, 144, 135, 137, 143, 139, 140, 143, 136, 136, 140, 142, 151, 134, 142, 132, 137, 136, 145, 135, 143, 140, 141, 144, 144, 145, 136, 137, 136, 142, 134, 140, 134, 136, 138, 136, 136, 136, 129, 131, 139, 141, 150, 143, 141, 141, 141, 136, 137, 148, 143, 140, 138, 139, 141, 139, 140, 144, 138, 136, 142, 131, 121, 144, 146, 141, 143, 129, 139, 142, 130, 141, 140, 135, 135, 133, 135, 140, 138, 145, 137, 147, 132, 133, 138, 133, 134, 140, 137, 140, 134, 148, 134, 134, 130, 144, 131, 140, 142, 141, 140, 136, 135, 143, 143, 143, 140, 131, 153, 144, 141, 135, 138, 144, 135, 141, 141, 145, 143, 141, 140, 138, 142, 137, 144, 144, 144, 139, 135, 139, 140, 151, 142, 140, 133, 140, 132, 132, 144, 140, 132, 132, 141, 138, 138, 137, 139, 132, 136, 143, 141, 148, 133, 140, 136, 137, 150, 134, 133, 136, 131, 141, 139, 135, 138, 135, 144, 131, 134, 134, 137, 143, 142, 139, 137, 136, 140, 140, 136, 143, 136, 138, 140, 135, 137, 147, 140, 144, 140, 138, 139, 147, 138, 132, 138, 144, 130, 133, 136, 151, 137, 140, 139, 138, 135, 141, 133, 148, 134, 135, 137, 140, 137, 134, 143, 136, 139, 140, 138, 148, 142, 134, 143, 141, 136, 138, 134, 126, 140, 134, 134, 138, 138, 135, 137, 144, 136, 143, 141, 142, 139, 149, 140, 137, 137, 145, 136, 135, 137, 139, 137, 133, 141, 135, 145, 133, 141, 142, 140, 138, 132, 138, 147, 141, 137, 133, 144, 135, 142, 137, 139, 137, 141, 144, 138, 143, 135, 134, 145, 142, 146, 141, 142, 132, 131, 137, 131, 141, 136, 141, 145, 132, 136, 137, 142, 143, 137, 138, 129, 138, 135, 139, 137, 136, 138, 143, 122, 139, 139, 138, 135, 136, 137, 136, 149, 142, 142, 137, 136, 142, 136, 145, 134, 139, 133, 134, 143, 135, 142, 129, 151, 132, 138, 138, 146, 136, 139, 144, 143, 139, 142, 135, 139, 139, 134, 137, 138, 136, 140, 142, 142, 143, 141, 124, 141, 139, 136, 145, 143, 141, 141, 143, 134, 138, 142, 138, 138, 142, 135, 141, 141, 145, 138, 134, 141, 135, 140, 143, 134, 132, 147, 141, 141, 144, 133, 139, 135, 151, 138, 139, 144, 139, 132, 141, 138, 140, 134, 140, 153, 148, 135, 135, 138, 135, 135, 137, 134, 135, 142, 143, 139, 133, 144, 140, 141, 137, 130, 136, 140, 131, 143, 133, 139, 141, 135, 138, 144, 144, 127, 144, 133, 142, 139, 126, 140, 142, 135, 143, 137, 150, 136, 141, 130, 142, 142, 137, 142, 140, 136, 143, 138, 145, 139, 137, 138, 144, 140, 145, 148, 136, 139, 143, 136, 143, 143, 141, 142, 142, 140, 136, 133, 140, 139, 146, 145, 134, 143, 137, 132, 136, 138, 142, 144, 139, 136, 138, 140, 147, 141, 140, 136, 139, 143, 132, 140, 136, 137, 138, 134, 141, 137, 136, 130, 140, 136, 136, 137, 138, 135, 140, 144, 139, 130, 132, 139, 133, 135, 142, 137, 139, 136, 139, 140, 143, 147, 140, 138, 144, 136, 134, 140, 138, 143, 145, 135, 141, 138, 136, 142, 138, 144, 136, 142, 144, 130, 140, 140, 132, 136, 136, 146, 139, 144, 138, 133, 140, 147, 138, 134, 131, 135, 148, 140, 142, 137, 143, 135, 139, 142, 137, 137, 139, 139, 133, 137, 136, 134, 139, 137, 142, 144, 139, 141, 136, 143, 134, 141, 138, 139, 142, 142, 133, 142, 134, 141, 135, 135, 141, 141, 143, 142, 138, 143, 140, 131, 142, 142, 144, 143, 135, 137, 141, 137, 140, 144, 140, 138, 136, 137, 141, 142, 138, 140, 142, 136, 145, 144, 139, 136, 134, 140, 135, 143, 137, 137, 142, 132, 143, 144, 145, 140, 139, 136, 142, 144, 142, 145, 138, 142, 146, 140, 142, 134, 141, 135, 140, 138, 141, 138, 140, 137, 136, 141, 140, 134, 135, 146, 132, 141, 136, 140, 143, 140, 142, 140, 147, 131, 143, 141, 133, 137, 137, 136, 137, 137, 136, 137, 142, 146, 138, 145, 142, 144, 148, 142, 144, 136, 137, 149, 140, 137, 139, 138, 139, 136, 145, 147, 141, 137, 135, 148, 139, 132, 146, 144, 138, 139, 137, 138, 139, 129, 138, 143, 142, 140, 145, 142, 139, 142, 136, 143, 144, 146, 142, 149, 132, 135, 140, 151, 144, 140, 148, 133, 135, 140, 135, 149, 147, 132, 139, 145, 139, 147, 136, 135, 140, 140, 138, 136, 138, 143, 137, 135, 142, 146, 145, 130, 150, 142, 138, 134, 140, 142, 129, 146, 137, 142, 143, 134, 148, 142, 144, 140, 138, 136, 136, 140, 135, 130, 143, 140, 141, 135, 128, 142, 145, 151, 140, 136, 139, 142, 138, 136, 140, 144, 139, 136, 135, 143, 140, 144, 134, 137, 142, 143, 137, 136, 142, 141, 129, 138, 136, 140, 136, 133, 146, 142, 141, 135, 141, 142, 146, 135, 142, 142, 133, 137, 129, 139, 143, 138, 141, 151, 143, 142, 140, 142, 140, 144, 132, 131, 141, 143, 134, 141, 136, 141, 138, 143, 135, 143, 138, 135, 141, 139, 134, 135, 127, 136, 136, 138, 137, 143, 137, 144, 139, 130, 145, 138, 136, 142, 141, 132, 136, 137, 138, 135, 147, 142, 139, 137, 142, 147, 139, 134, 136, 138, 149, 140, 143, 124, 142, 147, 141, 137, 143, 139, 142, 144, 135, 146, 142, 141, 140, 142, 140, 139, 139, 127, 140, 140, 136, 135, 147, 141, 139, 138, 137, 140, 143, 145, 134, 136, 136, 132, 141, 138, 145, 141, 139, 138, 143, 142, 138, 143, 136, 139, 138, 135, 144, 141, 135, 147, 136, 145, 136, 143, 140, 134, 139, 147, 146, 137, 137, 138, 141, 135, 138, 138, 137, 141, 136, 154, 134, 146, 133, 127, 131, 135, 139, 131, 146, 138, 140, 141, 140, 139, 141, 133, 134, 139, 131, 129, 141, 131, 148, 137, 144, 136, 138, 141, 135, 136, 138, 135, 141, 143, 134, 131, 135, 140, 141, 143, 136, 144, 137, 133, 140, 138, 144, 147, 133, 135, 138, 151, 142, 141, 140, 141, 144, 135, 141, 141, 136, 143, 136, 139, 140, 138, 134, 143, 135, 137, 136, 142, 142, 137, 131, 139, 138, 139, 134, 141, 138, 140, 139, 143, 137, 137, 143, 145, 148, 134, 143, 132, 131, 136, 139, 135, 141, 139, 138, 135, 140, 134, 131, 130, 140, 140, 136, 135, 139, 135, 140, 136, 140, 135, 136, 132, 126, 133, 135, 137, 140, 138, 137, 139, 143, 134, 139, 139, 136, 138, 129, 139, 145, 139, 135, 142, 138, 137, 139, 140, 144, 140, 148, 133, 140, 139, 135, 132, 138, 132, 140, 132, 153, 142, 146, 139, 141, 139, 141, 136, 136, 139, 141, 132, 142, 136, 137, 142, 139, 141, 134, 130, 140, 131, 145, 143, 133, 145, 139, 137, 142, 141, 138, 140, 142, 134, 142, 137, 129, 134, 143, 132, 140, 135, 134, 136, 146, 159, 136, 145, 138, 133, 139, 141, 133, 140, 145, 135, 134, 148, 146, 136, 141, 138, 143, 141, 142, 132, 138, 141, 142, 137, 136, 135, 138, 140, 134, 138, 143, 136, 134, 133, 137, 132, 143, 147, 143, 139, 146, 137, 152, 142, 139, 139, 138, 138, 140, 135, 146, 148, 148, 133, 137, 131, 130, 138, 138, 133, 138, 137, 143, 133, 144, 139, 133, 141, 135, 129, 137, 146, 137, 137, 132, 134, 139, 132, 132, 148, 134, 144, 143, 148, 143, 144, 133, 139, 144, 144, 134, 130, 158, 142, 138, 132, 138, 137, 143, 157, 139, 131, 137, 144, 144, 153, 137, 137, 131, 143, 137, 144, 138, 134, 142, 138, 137, 133, 135, 140, 141, 139, 139, 132, 138, 142, 140, 143, 145, 146, 132, 137, 135, 138, 144, 123, 144, 136, 137, 142, 136, 147, 143, 139, 143, 133, 134, 134, 139, 140, 138, 128, 144, 144, 142, 139, 139, 137, 142, 142, 135, 135, 142, 128, 148, 132, 134, 133, 136, 128, 140, 136, 150, 148, 132, 136, 135, 144, 134, 140, 132, 146, 138, 143, 134, 156, 141, 135, 144, 138, 138, 140, 135, 137, 137, 136, 131, 141, 130, 135, 138, 135, 134, 135, 138, 136, 139, 139, 138, 145, 135, 146, 136, 135, 146, 140, 136, 151, 140, 141, 138, 133, 144, 136, 136, 133, 139, 136, 138, 144, 139, 138, 133, 140, 150, 141, 142, 140, 148, 138, 130, 136, 141, 134, 141, 148, 144, 136, 143, 137, 139, 135, 138, 132, 134, 140, 135, 148, 138, 140, 142, 132, 144, 133, 146, 130, 145, 136, 126, 129, 140, 140, 139, 144, 140, 142, 144, 143, 138, 137, 134, 140, 144, 141, 137, 133, 137, 141, 131, 150, 128, 138, 134, 138, 145, 140, 133, 134, 145, 137, 144, 135, 142, 135, 138, 141, 141, 143, 134, 142, 143, 145, 131, 134, 145, 138, 146, 141, 139, 140, 140, 142, 136, 138, 134, 139, 137, 142, 139, 138, 145, 138, 143, 148, 131, 140, 140, 137, 141, 139, 138, 134, 140, 141, 141, 148, 145, 137, 141, 140, 141, 142, 139, 140, 133, 137, 132, 132, 140, 131, 141, 144, 133, 144, 137, 137, 132, 146, 130, 138, 144, 138, 138, 128, 138, 140, 147, 136, 139, 143, 148, 131, 134, 143, 147, 136, 137, 139, 146, 141, 133, 138, 135, 138, 137, 131, 133, 138, 134, 137, 131, 134, 130, 136, 141, 143, 135, 141, 134, 141, 139, 148, 138, 144, 139, 143, 133, 131, 141, 134, 143, 140, 133, 136, 151, 139, 143, 137, 137, 147, 138, 140, 147, 142, 139, 141, 131, 131, 142, 142, 145, 132, 144, 136, 143, 143, 145, 140, 137, 145, 144, 134, 129, 135, 142, 133, 149, 131, 127, 138, 139, 134, 141, 142, 140, 147, 136, 143, 144, 126, 133, 138, 130, 137, 143, 137, 137, 137, 142, 153, 135, 143, 142, 138, 141, 139, 143, 135, 144, 134, 147, 141, 137, 143, 133, 140, 144, 141, 135, 152, 140, 139, 134, 137, 140, 141, 132, 159, 145, 152, 133, 142, 133, 141, 133, 132, 139, 143, 137, 137, 143, 149, 136, 147, 124, 141, 137, 133, 144, 140, 138, 141, 136, 137, 135, 148, 136, 135, 135, 139, 137, 140, 141, 139, 135, 138, 140, 139, 134, 144, 144, 136, 142, 138, 142, 145, 135, 137, 136, 135, 137, 136, 142, 136, 140, 145, 146, 131, 141, 136, 133, 129, 136, 152, 140, 140, 145, 138, 145, 133, 140, 131, 143, 137, 141, 142, 147, 149, 143, 144, 134, 132, 138, 143, 143, 142, 130, 140, 143, 135, 143, 135, 131, 138, 142, 132, 140, 144, 143, 142, 144, 144, 146, 146, 142, 136, 140, 141, 147, 141, 140, 146, 139, 140, 139, 140, 138, 140, 127, 138, 132, 142, 138, 136, 135, 143, 144, 145, 137, 134, 141, 144, 138, 137, 136, 140, 147, 144, 137, 141, 133, 137, 140, 133, 142, 143, 130, 140, 134, 139, 138, 136, 137, 143, 134, 132, 140, 135, 136, 139, 144, 134, 129, 140, 136, 130, 133, 145, 131, 136, 146, 146, 144, 132, 139, 139, 140, 130, 134, 139, 132, 137, 133, 133, 138, 137, 144, 143, 134, 136, 123, 141, 137, 129, 143, 147, 152, 131, 144, 141, 140, 141, 139, 143, 153, 146, 136, 137, 135, 144, 141, 142, 139, 146, 143, 133, 141, 139, 141, 150, 143, 130, 147, 136, 135, 137, 137, 140, 144, 137, 143, 147, 144, 141, 148, 132, 135, 130, 144, 136, 141, 138, 137, 137, 143, 140, 144, 136, 143, 145, 143, 143, 135, 134, 142, 140, 128, 138, 136, 132, 134, 141, 138, 136, 137, 148, 136, 136, 142, 135, 134, 148, 140, 141, 143, 129, 133, 143, 141, 142, 144, 137, 137, 142, 137, 138, 133, 143, 139, 142, 147, 136, 141, 134, 133, 141, 141, 137, 141, 140, 138, 148, 140, 137, 137, 140, 141, 146, 141, 142, 143, 144, 137, 139, 136, 139, 139, 146, 143, 142, 138, 141, 134, 134, 140, 137, 145, 137, 137, 139, 139, 143, 136, 142, 138, 136, 139, 138, 139, 142, 136, 137, 136, 139, 139, 142, 138, 139, 139, 136, 143, 138, 137, 141, 134, 137, 132, 141, 140, 139, 140, 134, 143, 139, 137, 139, 139, 141, 140, 142, 141, 138, 141, 140, 137, 135, 136, 140, 143, 142, 138, 145, 141, 139, 138, 140, 141, 141, 143, 139, 140, 142, 136, 139, 131, 136, 140, 140, 138, 140, 137, 138, 137, 139, 137, 139, 144, 139, 138, 139, 138, 137, 142, 139, 139, 139, 138, 136, 134, 140, 139, 138, 138, 144, 145, 139, 141, 139, 142, 133, 139, 140, 140, 140, 140, 135, 139, 142, 139, 141, 139, 135, 140, 141, 139, 141, 139, 141, 139, 139, 140, 142, 145, 141, 142, 134, 137, 138, 136, 145, 142, 146, 140, 139, 135, 137, 138, 142, 150, 142, 139, 141, 137, 140, 135, 139, 141, 140, 137, 141, 136, 139, 140, 137, 138, 142, 137, 136, 138, 142, 136, 135, 140, 141, 145, 138, 141, 142, 139, 144, 142, 138, 141, 141, 134, 139, 140, 139, 144, 141, 138, 139, 137, 137, 137, 141, 139, 139, 138, 140, 138, 140, 138, 143, 139, 140, 134, 139, 140, 140, 139, 136, 140, 142, 143, 144, 139, 139, 138, 140, 135, 141, 138, 135, 138, 137, 137, 135, 141, 142, 146, 134, 140, 141, 138, 140, 136, 137, 139, 136, 137, 141, 139, 143, 138, 137, 142, 147, 138, 142, 137, 140, 137, 140, 136, 140, 137, 142, 141, 138, 139, 136, 138, 140, 139, 135, 143, 138, 142, 141, 137, 136, 136, 140, 137, 140, 133, 142, 137, 141, 139, 141, 143, 138, 136, 140, 142, 136, 139, 138, 136, 136, 140, 139, 140, 136, 141, 139, 141, 140, 139, 139, 135, 137, 141, 135, 139, 137, 136, 144, 142, 134, 139, 145, 139, 140, 135, 138, 141, 138, 142, 137, 137, 136, 142, 139, 141, 142, 138, 144, 136, 141, 143, 136, 139, 136, 139, 142, 140, 139, 139, 136, 139, 140, 139, 133, 135, 139, 138, 138, 138, 137, 138, 140, 136, 138, 141, 138, 141, 142, 137, 143, 134, 138, 137, 137, 144, 136, 138, 137, 137, 142, 136, 141, 141, 141, 140, 141, 138, 138, 137, 138, 134, 135, 138, 138, 142, 140, 138, 143, 138, 140, 143, 139, 140, 142, 138, 138, 143, 140, 133, 141, 140, 144, 139, 138, 141, 142, 138, 138, 138, 142, 143, 136, 138, 141, 144, 141, 139, 136, 137, 137, 142, 138, 140, 140, 138, 142, 136, 142, 137, 139, 138, 134, 137, 137, 141, 135, 141, 141, 140, 143, 134, 143, 139, 136, 135, 137, 135, 142, 143, 140, 143, 139, 140, 136, 139, 146, 138, 141, 142, 137, 142, 139, 142, 141, 140, 139, 139, 142, 139, 145, 144, 139, 139, 141, 140, 138, 138, 139, 138, 140, 140, 146, 134, 144, 136, 147, 142, 138, 136, 132, 131, 143, 134, 138, 149, 144, 135, 147, 144, 142, 131, 143, 128, 152, 136, 136, 138, 136, 135, 142, 134, 142, 139, 136, 134, 135, 147, 131, 137, 133, 139, 134, 149, 142, 142, 148, 140, 143, 141, 135, 134, 151, 130, 141, 138, 134, 134, 147, 141, 144, 133, 140, 146, 133, 148, 131, 137, 143, 139, 139, 147, 137, 143, 133, 136, 135, 144, 134, 142, 142, 145, 145, 145, 140, 130, 135, 136, 141, 129, 129, 139, 139, 134, 138, 141, 141, 146, 143, 132, 132, 134, 140, 128, 137, 141, 139, 137, 152, 138, 134, 149, 139, 135, 138, 146, 138, 143, 140, 144, 143, 145, 138, 138, 149, 138, 138, 134, 135, 132, 144, 135, 142, 136, 131, 136, 147, 136, 134, 129, 140, 139, 142, 141, 140, 135, 130, 141, 139, 133, 137, 148, 140, 140, 137, 139, 134, 151, 137, 151, 146, 134, 124, 136, 135, 127, 145, 135, 139, 138, 141, 129, 136, 135, 140, 132, 135, 145, 136, 138, 142, 136, 132, 152, 142, 135, 139, 139, 138, 141, 143, 138, 135, 138, 138, 131, 142, 140, 144, 140, 130, 142, 133, 143, 141, 139, 139, 134, 134, 139, 143, 135, 135, 132, 128, 140, 143, 134, 136, 138, 144, 130, 140, 133, 141, 134, 138, 136, 137, 136, 140, 141, 140, 131, 138, 136, 137, 135, 131, 136, 142, 145, 145, 143, 135, 138, 139, 141, 146, 139, 132, 131, 135, 136, 130, 145, 135, 146, 136, 134, 140, 136, 135, 144, 145, 137, 140, 131, 140, 134, 134, 149, 133, 138, 142, 147, 139, 140, 141, 133, 132, 136, 141, 146, 137, 146, 134, 138, 131, 143, 136, 144, 133, 132, 142, 139, 148, 130, 157, 143, 137, 137, 142, 154, 144, 132, 138, 133, 141, 140, 145, 134, 141, 144, 147, 136, 141, 132, 129, 146, 144, 154, 137, 135, 138, 132, 134, 136, 133, 132, 144, 135, 134, 140, 143, 147, 139, 142, 132, 135, 139, 134, 129, 139, 147, 145, 133, 128, 135, 135, 137, 128, 133, 135, 134, 136, 133, 132, 139, 136, 146, 139, 130, 142, 139, 137, 130, 143, 141, 142, 138, 143, 144, 138, 132, 134, 129, 135, 134, 134, 144, 149, 138, 147, 137, 132, 137, 133, 136, 138, 133, 138, 141, 152, 139, 143, 139, 152, 142, 141, 143, 125, 133, 136, 134, 137, 134, 141, 135, 128, 153, 135, 132, 152, 141, 137, 147, 140, 132, 143, 149, 137, 136, 134, 140, 135, 136, 134, 134, 135, 151, 141, 142, 134, 137, 142, 135, 145, 135, 136, 139, 147, 132, 134, 132, 137, 148, 130, 133, 144, 135, 140, 143, 139, 129, 137, 134, 144, 135, 139, 125, 134, 143, 136, 136, 134, 145, 134, 141, 139, 132, 141, 148, 138, 138, 144, 142, 138, 137, 139, 142, 145, 141, 145, 144, 150, 143, 139, 138, 143, 138, 140, 129, 134, 136, 145, 137, 140, 145, 135, 141, 132, 142, 135, 140, 141, 135, 128, 136, 134, 147, 146, 142, 133, 137, 135, 128, 133, 146, 135, 139, 140, 143, 140, 136, 138, 149, 142, 140, 138, 132, 139, 138, 134, 145, 136, 139, 136, 143, 131, 142, 136, 137, 141, 132, 140, 134, 141, 136, 145, 153, 141, 144, 138, 140, 139, 136, 146, 136, 138, 144, 143, 129, 141, 142, 141, 134, 144, 136, 139, 138, 147, 134, 144, 137, 138, 139, 136, 136, 135, 140, 138, 139, 145, 135, 141, 145, 135, 138, 136, 138, 134, 137, 140, 138, 141, 138, 141, 139, 134, 147, 138, 133, 135, 144, 145, 134, 139, 137, 134, 139, 134, 145, 145, 135, 140, 147, 139, 139, 139, 146, 134, 136, 134, 136, 137, 141, 143, 137, 140, 139, 141, 141, 138, 139, 128, 137, 136, 136, 145, 152, 135, 140, 136, 132, 143, 148, 129, 136, 143, 134, 141, 138, 146, 138, 135, 137, 142, 137, 143, 142, 119, 144, 137, 138, 154, 138, 135, 151, 137, 148, 142, 135, 147, 146, 136, 137, 145, 139, 144, 138, 140, 141, 140, 141, 136, 142, 141, 139, 137, 143, 140, 142, 138, 131, 130, 141, 138, 138, 137, 134, 138, 153, 132, 135, 135, 136, 142, 138, 139, 139, 133, 142, 140, 140, 139, 142, 141, 132, 137, 137, 135, 144, 129, 148, 142, 142, 136, 139, 144, 144, 138, 142, 139, 145, 142, 143, 137, 137, 133, 137, 134, 136, 139, 139, 149, 134, 135, 135, 139, 141, 134, 132, 140, 139, 140, 143, 143, 135, 145, 135, 131, 141, 146, 137, 145, 137, 142, 144, 138, 138, 131, 141, 138, 138, 140, 137, 138, 140, 143, 142, 140, 132, 141, 143, 138, 145, 139, 136, 134, 139, 134, 134, 140, 144, 151, 130, 138, 135, 142, 140, 138, 133, 131, 132, 133, 141, 140, 144, 138, 138, 133, 146, 140, 138, 140, 134, 134, 140, 139, 138, 142, 139, 137, 140, 142, 137, 135, 133, 141, 127, 138, 141, 143, 138, 126, 145, 142, 136, 149, 138, 129, 141, 138, 138, 141, 139, 141, 139, 141, 144, 143, 127, 136, 139, 132, 141, 140, 143, 145, 141, 140, 136, 142, 139, 138, 143, 130, 136, 136, 139, 144, 132, 140, 134, 127, 132, 145, 142, 135, 139, 139, 134, 135, 146, 144, 138, 139, 139, 145, 146, 132, 142, 137, 138, 140, 140, 137, 136, 142, 133, 144, 140, 134, 131, 138, 133, 140, 136, 136, 141, 140, 136, 142, 142, 136, 142, 133, 136, 142, 135, 138, 136, 139, 127, 140, 131, 141, 135, 141, 139, 142, 140, 137, 137, 135, 136, 138, 144, 137, 140, 144, 135, 137, 139, 142, 136, 138, 150, 145, 139, 140, 132, 139, 140, 136, 140, 138, 141, 142, 142, 134, 139, 142, 137, 139, 145, 135, 139, 132, 144, 135, 143, 136, 136, 137, 126, 144, 134, 137, 142, 142, 137, 136, 139, 137, 140, 151, 139, 142, 130, 137, 134, 131, 144, 137, 140, 141, 138, 140, 130, 140, 135, 142, 137, 136, 137, 138, 140, 140, 149, 143, 141, 135, 142, 141, 144, 136, 139, 139, 144, 141, 134, 135, 139, 143, 143, 137, 139, 128, 133, 136, 135, 146, 141, 138, 128, 139, 144, 144, 136, 144, 143, 132, 150, 139, 146, 131, 138, 133, 125, 138, 127, 151, 144, 147, 134, 145, 148, 135, 143, 133, 133, 139, 135, 134, 133, 140, 145, 133, 130, 141, 130, 133, 149, 124, 150, 136, 150, 146, 137, 138, 150, 136, 137, 134, 144, 133, 134, 135, 142, 130, 126, 137, 140, 133, 142, 128, 141, 144, 137, 149, 138, 135, 141, 131, 134, 134, 138, 145, 145, 146, 144, 128, 142, 153, 133, 126, 140, 135, 150, 148, 146, 128, 137, 131, 136, 128, 141, 133, 137, 146, 147, 149, 133, 143, 145, 136, 131, 132, 132, 139, 145, 134, 141, 136, 151, 129, 141, 135, 151, 140, 151, 153, 156, 149, 132, 118, 140, 130, 134, 138, 145, 125, 148, 137, 144, 141, 131, 134, 140, 140, 141, 131, 135, 144, 143, 138, 143, 134, 136, 132, 135, 131, 144, 142, 128, 135, 131, 142, 139, 140, 128, 141, 143, 148, 142, 139, 125, 146, 143, 139, 151, 138, 133, 140, 142, 145, 133, 140, 135, 131, 140, 129, 148, 141, 132, 140, 126, 141, 135, 156, 141, 133, 131, 150, 138, 147, 138, 132, 145, 140, 150, 134, 133, 150, 139, 135, 128, 135, 130, 143, 137, 139, 134, 144, 136, 135, 139, 148, 142, 140, 136, 135, 150, 137, 131, 132, 139, 140, 132, 135, 144, 150, 137, 128, 154, 142, 142, 139, 141, 136, 130, 141, 140, 141, 130, 133, 126, 136, 132, 145, 143, 134, 137, 142, 152, 134, 140, 151, 139, 135, 141, 136, 138, 140, 149, 132, 143, 144, 137, 150, 144, 139, 138, 149, 129, 147, 141, 138, 132, 147, 160, 151, 145, 142, 141, 155, 131, 137, 130, 145, 144, 133, 147, 149, 158, 143, 126, 122, 139, 143, 135, 136, 139, 146, 140, 149, 143, 137, 137, 140, 137, 141, 140, 135, 139, 147, 143, 137, 132, 137, 139, 145, 141, 134, 141, 143, 134, 133, 133, 144, 141, 137, 133, 144, 141, 138, 128, 140, 128, 135, 128, 143, 134, 128, 144, 126, 139, 133, 139, 134, 137, 145, 116, 125, 127, 143, 131, 137, 131, 135, 132, 136, 142, 141, 137, 141, 142, 140, 137, 129, 130, 136, 146, 137, 137, 142, 137, 147, 137, 137, 136, 142, 133, 144, 134, 141, 145, 138, 127, 134, 142, 125, 132, 144, 149, 138, 143, 137, 138, 130, 140, 141, 142, 140, 134, 143, 155, 145, 144, 131, 139, 151, 141, 134, 143, 137, 131, 144, 132, 130, 129, 141, 141, 134, 143, 133, 136, 141, 131, 148, 140, 148, 138, 147, 147, 137, 144, 143, 131, 136, 144, 134, 132, 137, 145, 130, 132, 144, 145, 136, 143, 144, 131, 132, 139, 133, 146, 143, 131, 136, 148, 141, 136, 138, 134, 137, 137, 148, 149, 134, 136, 143, 128, 139, 142, 147, 143, 131, 141, 121, 140, 129, 148, 152, 136, 133, 146, 136, 139, 143, 139, 136, 139, 139, 142, 134, 139, 149, 135, 139, 130, 135, 134, 152, 138, 141, 144, 135, 133, 128, 142, 139, 139, 145, 138, 137, 128, 145, 135, 157, 139, 137, 140, 144, 137, 143, 142, 133, 137, 129, 141, 136, 132, 134, 128, 139, 131, 140, 142, 134, 143, 133, 138, 144, 135, 143, 154, 132, 142, 143, 135, 139, 134, 142, 138, 137, 143, 129, 136, 135, 148, 143, 140, 135, 143, 142, 137, 138, 133, 143, 134, 123, 145, 142, 135, 132, 136, 128, 141, 151, 137, 130, 136, 143, 142, 137, 141, 141, 146, 142, 136, 132, 140, 145, 140, 138, 144, 142, 134, 138, 133, 141, 147, 140, 149, 134, 140, 152, 135, 139, 137, 144, 139, 130, 144, 142, 130, 127, 131, 130, 131, 146, 138, 128, 136, 144, 149, 136, 146, 133, 129, 135, 146, 136, 144, 148, 130, 141, 148, 137, 133, 144, 134, 146, 134, 141, 139, 138, 138, 142, 137, 153, 136, 138, 132, 136, 139, 136, 142, 148, 137, 143, 142, 135, 143, 149, 130, 130, 151, 130, 145, 144, 144, 135, 141, 152, 135, 139, 136, 146, 144, 144, 135, 140, 138, 142, 140, 135, 137, 141, 137, 132, 138, 140, 148, 143, 133, 138, 131, 132, 140, 142, 145, 146, 140, 139, 138, 143, 137, 137, 139, 131, 140, 148, 136, 151, 146, 140, 145, 140, 134, 147, 134, 138, 142, 140, 143, 138, 139, 139, 132, 128, 138, 141, 143, 153, 141, 136, 137, 149, 147, 133, 142, 148, 141, 136, 143, 138, 148, 138, 142, 143, 142, 137, 143, 132, 135, 140, 144, 145, 146, 137, 137, 134, 142, 150, 129, 128, 143, 132, 140, 142, 141, 136, 145, 140, 138, 136, 144, 149, 145, 135, 135, 139, 126, 139, 135, 145, 140, 142, 141, 144, 146, 131, 138, 134, 137, 143, 141, 132, 153, 135, 132, 129, 136, 133, 134, 139, 137, 149, 140, 153, 136, 145, 141, 135, 137, 137, 135, 142, 139, 149, 135, 135, 146, 151, 132, 135, 136, 135, 127, 139, 134, 138, 137, 145, 140, 140, 137, 139, 143, 141, 140, 136, 134, 141, 139, 141, 135, 131, 134, 135, 159, 142, 139, 142, 135, 142, 147, 132, 140, 138, 134, 139, 146, 136, 147, 145, 130, 142, 132, 136, 142, 140, 139, 140, 145, 148, 136, 140, 142, 143, 133, 134, 140, 143, 132, 139, 133, 121, 141, 142, 141, 129, 140, 139, 147, 144, 144, 143, 143, 139, 142, 132, 135, 133, 137, 133, 137, 146, 135, 140, 139, 151, 151, 143, 135, 140, 138, 138, 127, 139, 140, 136, 139, 154, 134, 132, 141, 140, 145, 139, 142, 139, 140, 135, 137, 137, 133, 130, 136, 146, 128, 142, 134, 137, 139, 136, 140, 137, 141, 138, 133, 141, 132, 150, 151, 150, 138, 136, 132, 133, 144, 140, 138, 134, 142, 137, 133, 144, 126, 139, 139, 135, 132, 146, 131, 143, 148, 146, 131, 143, 144, 143, 140, 135, 134, 137, 151, 132, 139, 123, 134, 132, 136, 139, 140, 136, 144, 136, 137, 131, 140, 144, 130, 137, 138, 136, 136, 142, 132, 137, 142, 129, 136, 141, 150, 142, 131, 139, 141, 139, 142, 142, 139, 133, 137, 140, 141, 144, 145, 141, 141, 135, 134, 137, 140, 139, 145, 135, 130, 140, 143, 143, 135, 132, 134, 138, 136, 138, 139, 144, 141, 139, 131, 139, 132, 146, 134, 134, 144, 142, 144, 142, 130, 132, 141, 145, 139, 135, 132, 136, 140, 139, 150, 138, 142, 138, 142, 137, 139, 154, 138, 133, 138, 133, 146, 137, 135, 136, 133, 138, 141, 143, 134, 137, 141, 133, 139, 137, 135, 141, 134, 135, 138, 132, 145, 142, 143, 135, 130, 141, 133, 132, 141, 142, 138, 132, 139, 143, 138, 126, 142, 143, 138, 135, 136, 132, 138, 138, 146, 138, 150, 139, 145, 135, 137, 142, 133, 140, 142, 137, 142, 143, 138, 131, 140, 132, 139, 141, 135, 138, 138, 129, 140, 144, 134, 142, 144, 136, 145, 142, 137, 132, 137, 141, 143, 139, 138, 134, 137, 141, 146, 142, 142, 135, 137, 133, 136, 135, 140, 134, 146, 137, 140, 139, 138, 139, 134, 136, 143, 143, 137, 142, 138, 136, 135, 134, 135, 142, 137, 137, 138, 141, 137, 142, 144, 139, 135, 138, 139, 142, 136, 141, 140, 138, 141, 136, 137, 139, 146, 138, 138, 137, 142, 139, 138, 141, 139, 135, 140, 138, 140, 145, 148, 136, 146, 143, 141, 146, 138, 148, 133, 140, 129, 140, 134, 141, 137, 137, 137, 136, 140, 139, 140, 142, 130, 136, 145, 140, 134, 137, 131, 143, 139, 144, 133, 133, 136, 134, 141, 140, 142, 139, 138, 137, 141, 146, 134, 135, 141, 141, 140, 136, 138, 137, 137, 145, 135, 139, 136, 140, 138, 150, 140, 145, 140, 136, 137, 145, 137, 138, 137, 140, 132, 131, 144, 142, 139, 134, 138, 138, 142, 138, 135, 139, 136, 141, 135, 139, 142, 134, 141, 136, 141, 142, 134, 138, 140, 136, 142, 148, 139, 141, 134, 140, 145, 141, 136, 138, 143, 136, 135, 137, 127, 138, 142, 138, 138, 133, 145, 139, 134, 141, 137, 140, 137, 143, 134, 141, 136, 134, 139, 141, 135, 140, 136, 135, 132, 147, 144, 134, 140, 138, 140, 138, 141, 143, 140, 134, 131, 138, 137, 138, 140, 140, 139, 134, 136, 148, 140, 140, 135, 139, 141, 138, 138, 141, 141, 139, 132, 137, 135, 141, 132, 142, 148, 135, 139, 142, 132, 139, 140, 139, 133, 145, 136, 146, 141, 133, 133, 129, 144, 135, 136, 139, 135, 139, 135, 149, 132, 145, 136, 140, 143, 145, 139, 139, 141, 138, 136, 131, 135, 146, 141, 140, 137, 134, 137, 142, 135, 140, 150, 135, 139, 144, 138, 137, 138, 145, 134, 149, 142, 147, 142, 142, 137, 136, 139, 133, 145, 135, 143, 140, 149, 132, 134, 143, 134, 142, 145, 138, 137, 138, 131, 143, 137, 137, 136, 136, 145, 139, 142, 138, 139, 131, 132, 137, 138, 131, 138, 139, 137, 146, 137, 138, 139, 136, 135, 137, 133, 138, 140, 139, 142, 134, 139, 141, 141, 139, 137, 134, 138, 138, 139, 144, 144, 141, 139, 138, 139, 138, 136, 143, 141, 150, 142, 136, 137, 140, 133, 135, 144, 137, 137, 148, 127, 144, 136, 135, 142, 136, 140, 138, 143, 142, 136, 137, 139, 144, 139, 141, 141, 141, 140, 130, 138, 136, 132, 138, 140, 145, 143, 139, 139, 141, 131, 138, 147, 142, 141, 133, 139, 137, 148, 142, 137, 141, 140, 144, 144, 136, 137, 139, 136, 135, 130, 139, 134, 140, 143, 138, 141, 131, 134, 139, 134, 146, 138, 138, 138, 143, 132, 147, 137, 134, 136, 133, 135, 136, 140, 138, 132, 142, 138, 141, 141, 140, 130, 134, 145, 139, 133, 136, 141, 144, 135, 137, 143, 133, 138, 146, 135, 139, 137, 139, 136, 136, 131, 146, 140, 136, 146, 136, 137, 138, 140, 130, 142, 138, 137, 137, 139, 138, 141, 137, 140, 134, 141, 144, 134, 146, 142, 133, 142, 144, 137, 138, 138, 135, 137, 137, 137, 137, 145, 144, 131, 141, 133, 130, 139, 139, 136, 140, 137, 143, 137, 135, 136, 137, 140, 134, 142, 139, 144, 149, 131, 141, 134, 145, 139, 147, 132, 136, 140, 140, 144, 140, 136, 139, 137, 146, 137, 138, 134, 137, 144, 135, 136, 136, 140, 137, 147, 131, 138, 137, 136, 145, 127, 139, 141, 143, 125, 134, 138, 141, 136, 141, 141, 149, 137, 141, 154, 148, 140, 135, 136, 138, 142, 137, 137, 143, 145, 145, 140, 134, 138, 141, 141, 137, 144, 137, 133, 138, 137, 135, 144, 149, 142, 137, 141, 134, 145, 137, 140, 140, 137, 141, 139, 141, 137, 135, 145, 136, 133, 136, 139, 135, 152, 136, 138, 139, 136, 141, 137, 144, 136, 133, 138, 138, 145, 143, 133, 140, 132, 142, 142, 144, 137, 142, 143, 134, 134, 142, 141, 140, 133, 139, 134, 140, 137, 136, 138, 133, 142, 134, 139, 136, 134, 134, 139, 141, 141, 150, 137, 142, 140, 144, 133, 151, 139, 134, 126, 144, 145, 138, 141, 141, 133, 140, 143, 133, 135, 133, 132, 143, 140, 131, 141, 146, 139, 133, 134, 132, 133, 139, 136, 148, 140, 146, 143, 137, 134, 148, 141, 139, 141, 144, 138, 138, 141, 143, 134, 142, 137, 135, 141, 141, 139, 139, 138, 137, 140, 144, 144, 138, 142, 139, 141, 134, 144, 142, 134, 136, 143, 140, 132, 132, 138, 134, 138, 134, 137, 144, 140, 137, 139, 143, 138, 142, 145, 141, 142, 136, 147, 138, 155, 135, 135, 138, 133, 137, 144, 144, 141, 135, 141, 138, 137, 137, 140, 138, 137, 132, 143, 148, 143, 135, 150, 129, 135, 138, 141, 137, 140, 132, 134, 134, 142, 134, 131, 132, 142, 134, 142, 137, 138, 140, 134, 141, 138, 136, 140, 138, 148, 146, 149, 144, 142, 145, 138, 142, 144, 142, 138, 145, 140, 138, 141, 143, 143, 140, 138, 138, 137, 143, 135, 141, 125, 136, 135, 140, 135, 139, 136, 138, 129, 137, 131, 145, 142, 135, 138, 135, 137, 146, 138, 136, 145, 139, 137, 143, 136, 135, 139, 140, 143, 139, 141, 138, 133, 140, 133, 140, 129, 146, 138, 141, 137, 140, 137, 141, 135, 141, 140, 133, 140, 137, 137, 142, 141, 153, 141, 137, 137, 135, 138, 145, 134, 146, 139, 138, 142, 144, 136, 138, 128, 136, 141, 149, 143, 137, 146, 140, 140, 146, 133, 145, 137, 148, 137, 148, 139, 135, 135, 134, 147, 135, 142, 131, 141, 145, 137, 130, 138, 141, 142, 128, 142, 135, 136, 140, 134, 137, 140, 135, 146, 138, 135, 147, 137, 136, 138, 141, 130, 144, 143, 139, 143, 139, 140, 145, 139, 135, 137, 139, 140, 138, 147, 149, 133, 133, 147, 141, 133, 134, 136, 136, 136, 149, 141, 138, 138, 145, 134, 133, 140, 142, 139, 141, 131, 136, 130, 129, 144, 139, 144, 136, 139, 140, 144, 138, 135, 139, 140, 142, 140, 145, 139, 135, 130, 138, 141, 137, 139, 139, 131, 136, 141, 139, 141, 137, 133, 142, 143, 134, 144, 143, 143, 138, 137, 133, 143, 141, 134, 143, 137, 139, 137, 131, 142, 138, 144, 131, 134, 126, 143, 138, 139, 143, 138, 135, 147, 134, 135, 136, 138, 134, 139, 140, 134, 135, 138, 140, 135, 144, 138, 133, 137, 141, 140, 135, 136, 132, 142, 137, 140, 136, 143, 137, 138, 140, 136, 142, 142, 136, 137, 144, 130, 143, 137, 136, 138, 143, 142, 132, 147, 140, 142, 139, 138, 139, 147, 139, 137, 138, 136, 136, 143, 134, 144, 133, 143, 137, 137, 139, 131, 139, 147, 136, 134, 142, 140, 147, 148, 146, 143, 135, 141, 142, 139, 139, 137, 132, 142, 139, 136, 134, 140, 136, 136, 146, 135, 140, 141, 140, 136, 139, 153, 139, 142, 134, 133, 136, 132, 133, 143, 144, 135, 139, 145, 135, 131, 141, 137, 135, 147, 144, 136, 142, 139, 140, 140, 138, 143, 127, 143, 136, 138, 133, 146, 138, 143, 132, 145, 133, 135, 134, 133, 139, 146, 142, 132, 138, 141, 139, 135, 130, 129, 144, 134, 147, 146, 140, 144, 137, 144, 143, 137, 134, 139, 133, 138, 143, 135, 147, 135, 140, 140, 146, 148, 146, 133, 143, 140, 130, 131, 138, 143, 149, 140, 139, 134, 140, 144, 134, 140, 135, 136, 133, 134, 145, 136, 136, 143, 142, 135, 140, 141, 140, 142, 139, 141, 141, 141, 129, 135, 134, 144, 134, 144, 149, 146, 144, 138, 140, 135, 138, 140, 144, 138, 137, 142, 138, 138, 134, 138, 140, 134, 135, 136, 139, 135, 141, 137, 142, 127, 142, 135, 131, 136, 133, 138, 134, 142, 137, 140, 141, 147, 144, 138, 143, 141, 143, 126, 132, 135, 140, 137, 144, 139, 141, 137, 137, 139, 150, 140, 138, 139, 142, 138, 136, 133, 139, 142, 136, 137, 130, 137, 145, 143, 139, 134, 126, 134, 140, 142, 139, 145, 143, 147, 142, 133, 128, 141, 140, 138, 137, 130, 146, 139, 142, 134, 135, 132, 137, 137, 147, 140, 135, 137, 152, 135, 135, 139, 135, 137, 132, 142, 135, 145, 138, 149, 139, 139, 142, 136, 151, 148, 140, 138, 140, 141, 134, 135, 145, 138, 136, 140, 134, 142, 138, 132, 154, 134, 141, 138, 138, 142, 146, 154, 147, 140, 138, 141, 140, 152, 149, 142, 143, 136, 137, 139, 141, 130, 138, 134, 138, 141, 142, 145, 142, 138, 141, 139, 146, 147, 139, 135, 140, 132, 133, 138, 142, 149, 132, 139, 132, 136, 131, 135, 145, 137, 145, 138, 144, 137, 140, 133, 138, 134, 138, 145, 147, 139, 139, 138, 151, 130, 125, 140, 145, 136, 138, 134, 140, 151, 136, 143, 139, 144, 143, 142, 137, 151, 136, 126, 135, 143, 141, 138, 151, 153, 135, 138, 140, 132, 152, 143, 130, 132, 133, 144, 143, 130, 136, 133, 131, 137, 140, 135, 129, 140, 146, 133, 130, 146, 143, 127, 137, 137, 134, 130, 137, 135, 127, 140, 132, 141, 136, 147, 136, 139, 142, 139, 142, 145, 141, 130, 127, 132, 139, 125, 136, 138, 135, 133, 139, 135, 130, 143, 135, 139, 146, 134, 140, 128, 131, 136, 140, 138, 143, 144, 142, 137, 143, 148, 137, 125, 132, 137, 139, 139, 141, 132, 131, 129, 134, 138, 138, 138, 131, 137, 140, 139, 138, 141, 144, 139, 144, 146, 144, 140, 136, 132, 142, 129, 132, 144, 137, 137, 139, 141, 140, 127, 136, 151, 136, 138, 135, 127, 134, 136, 136, 144, 137, 140, 137, 138, 125, 129, 138, 136, 145, 147, 138, 142, 143, 132, 149, 133, 147, 142, 136, 139, 141, 143, 141, 139, 134, 137, 138, 133, 141, 146, 142, 144, 143, 143, 130, 139, 127, 133, 145, 139, 139, 138, 145, 141, 142, 143, 140, 138, 133, 138, 134, 130, 144, 145, 142, 138, 136, 131, 152, 148, 136, 144, 143, 132, 140, 146, 139, 153, 132, 136, 145, 144, 134, 142, 138, 134, 143, 137, 130, 139, 129, 129, 125, 140, 140, 133, 138, 143, 145, 138, 147, 138, 145, 133, 143, 133, 139, 134, 143, 144, 144, 134, 142, 145, 133, 128, 140, 137, 136, 132, 142, 138, 135, 132, 137, 141, 131, 136, 139, 137, 126, 147, 141, 151, 138, 141, 137, 138, 137, 133, 139, 142, 139, 143, 139, 136, 136, 147, 137, 137, 142, 134, 138, 128, 148, 138, 135, 136, 141, 136, 138, 138, 133, 142, 141, 140, 142, 139, 135, 141, 146, 137, 141, 138, 142, 141, 128, 135, 138, 144, 139, 126, 145, 134, 140, 135, 141, 139, 136, 141, 134, 130, 145, 138, 127, 138, 141, 138, 139, 132, 149, 148, 139, 143, 146, 151, 132, 140, 143, 119, 141, 144, 132, 131, 147, 133, 143, 148, 139, 121, 132, 145, 143, 145, 147, 132, 139, 135, 132, 129, 139, 140, 134, 137, 140, 133, 143, 131, 146, 140, 142, 141, 141, 133, 133, 132, 128, 140, 144, 151, 142, 138, 137, 146, 146, 139, 132, 145, 155, 148, 138, 142, 137, 135, 142, 137, 138, 135, 140, 145, 139, 148, 153, 138, 137, 140, 130, 140, 135, 145, 137, 147, 145, 138, 129, 130, 134, 139, 141, 144, 141, 142, 148, 139, 129, 125, 126, 134, 133, 142, 135, 150, 142, 138, 147, 129, 131, 147, 132, 134, 146, 141, 130, 128, 155, 137, 144, 134, 131, 143, 141, 146, 127, 137, 140, 144, 137, 150, 129, 138, 141, 142, 141, 142, 142, 142, 140, 129, 142, 139, 127, 132, 137, 134, 138, 136, 141, 142, 136, 133, 120, 137, 154, 144, 145, 142, 134, 147, 137, 146, 146, 139, 134, 134, 133, 139, 148, 142, 139, 137, 140, 122, 136, 134, 153, 147, 149, 131, 133, 138, 142, 125, 141, 138, 137, 128, 141, 142, 140, 132, 161, 137, 147, 146, 140, 144, 147, 133, 133, 139, 131, 136, 127, 140, 144, 127, 127, 147, 139, 126, 149, 138, 145, 143, 146, 131, 136, 139, 138, 146, 139, 135, 128, 136, 143, 138, 139, 149, 149, 142, 136, 156, 152, 136, 135, 131, 142, 144, 136, 145, 137, 144, 137, 136, 151, 147, 143, 137, 141, 142, 139, 138, 137, 134, 141, 136, 140, 141, 131, 136, 126, 147, 141, 123, 138, 137, 140, 139, 141, 139, 132, 137, 128, 136, 139, 138, 138, 148, 141, 146, 141, 147, 140, 134, 145, 137, 127, 138, 141, 141, 139, 138, 142, 140, 124, 138, 139, 138, 135, 137, 135, 139, 151, 126, 138, 127, 139, 147, 138, 138, 134, 138, 132, 117, 143, 136, 144, 137, 131, 136, 152, 128, 136, 130, 131, 132, 151, 139, 142, 138, 133, 149, 139, 136, 137, 140, 142, 136, 144, 141, 147, 138, 141, 137, 126, 140, 128, 139, 142, 134, 147, 136, 138, 131, 135, 131, 130, 141, 139, 155, 138, 141, 136, 158, 134, 134, 133, 140, 136, 138, 144, 133, 138, 154, 127, 138, 132, 139, 139, 147, 143, 147, 132, 136, 136, 135, 138, 136, 136, 138, 140, 142, 141, 143, 145, 131, 142, 143, 147, 136, 128, 136, 125, 133, 135, 142, 137, 141, 144, 135, 142, 142, 134, 127, 127, 154, 138, 140, 137, 140, 139, 138, 137, 131, 140, 133, 143, 134, 133, 137, 142, 147, 134, 130, 140, 134, 139, 131, 149, 135, 135, 136, 149, 146, 145, 130, 135, 136, 133, 143, 122, 141, 131, 136, 137, 121, 134, 146, 131, 141, 147, 139, 140, 137, 135, 140, 140, 137, 151, 149, 143, 137, 143, 130, 138, 140, 145, 135, 132, 145, 142, 133, 136, 141, 142, 134, 146, 135, 137, 140, 134, 135, 145, 145, 141, 147, 136, 136, 137, 141, 138, 141, 139, 144, 134, 134, 131, 139, 150, 143, 141, 127, 142, 137, 150, 144, 140, 135, 142, 139, 151, 128, 139, 139, 132, 138, 152, 150, 142, 142, 137, 126, 139, 137, 147, 131, 134, 134, 141, 147, 137, 144, 128, 132, 134, 141, 134, 148, 141, 142, 143, 152, 150, 132, 143, 150, 139, 137, 135, 137, 127, 161, 146, 137, 154, 134, 137, 152, 147, 138, 133, 139, 146, 138, 151, 143, 134, 141, 126, 142, 145, 133, 135, 142, 135, 138, 139, 139, 150, 149, 139, 143, 147, 137, 137, 142, 141, 147, 136, 134, 148, 143, 140, 142, 140, 138, 131, 154, 126, 145, 146, 133, 121, 139, 147, 141, 134, 138, 136, 133, 135, 140, 136, 138, 140, 138, 135, 139, 134, 153, 138, 140, 131, 144, 135, 140, 145, 136, 133, 133, 139, 143, 140, 141, 141, 141, 133, 136, 143, 134, 141, 137, 137, 131, 145, 139, 129, 134, 136, 138, 136, 147, 139, 140, 134, 146, 142, 141, 142, 136, 136, 149, 141, 139, 141, 136, 141, 146, 137, 134, 135, 134, 140, 133, 144, 139, 137, 140, 140, 138, 137, 134, 139, 138, 144, 128, 153, 139, 138, 149, 136, 140, 144, 134, 140, 140, 145, 139, 131, 131, 139, 146, 140, 142, 139, 142, 141, 140, 137, 145, 134, 133, 143, 137, 131, 146, 140, 129, 149, 142, 137, 144, 135, 136, 136, 139, 145, 141, 143, 141, 137, 138, 143, 141, 147, 142, 142, 140, 139, 138, 144, 142, 150, 138, 139, 144, 141, 139, 141, 142, 139, 143, 137, 138, 145, 148, 139, 138, 144, 140, 139, 129, 130, 146, 135, 135, 149, 133, 139, 133, 137, 139, 136, 134, 139, 139, 134, 144, 128, 137, 134, 142, 142, 138, 135, 167, 134, 144, 135, 150, 139, 141, 138, 131, 141, 134, 148, 135, 136, 132, 143, 143, 132, 138, 139, 143, 130, 140, 130, 143, 139, 140, 139, 141, 144, 139, 143, 138, 128, 141, 140, 135, 133, 140, 136, 155, 141, 147, 149, 137, 134, 148, 141, 139, 142, 138, 137, 136, 138, 144, 139, 146, 149, 145, 142, 166, 142, 165, 138, 132, 142, 139, 144, 136, 157, 143, 141, 140, 135, 133, 138, 141, 139, 137, 141, 134, 141, 136, 138, 147, 135, 138, 136, 135, 139, 138, 140, 137, 138, 144, 135, 136, 141, 153, 135, 141, 147, 129, 140, 134, 142, 139, 131, 131, 139, 145, 138, 140, 134, 140, 142, 136, 144, 131, 133, 135, 133, 144, 135, 135, 150, 139, 140, 136, 139, 146, 129, 137, 141, 134, 154, 135, 133, 133, 134, 137, 144, 142, 137, 136, 138, 139, 132, 143, 136, 131, 144, 145, 138, 148, 136, 131, 134, 141, 143, 141, 138, 129, 129, 137, 138, 149, 143, 143, 141, 150, 139, 140, 139, 137, 145, 145, 139, 144, 144, 128, 126, 139, 140, 136, 141, 136, 140, 138, 138, 132, 144, 133, 142, 135, 137, 143, 135, 139, 130, 140, 134, 132, 141, 140, 135, 134, 145, 138, 139, 140, 140, 139, 155, 137, 142, 133, 143, 138, 142, 133, 136, 143, 139, 137, 144, 134, 142, 141, 134, 135, 130, 147, 140, 139, 137, 132, 132, 137, 139, 144, 134, 136, 138, 136, 135, 136, 138, 134, 145, 130, 141, 138, 133, 139, 141, 138, 135, 125, 136, 140, 144, 142, 136, 136, 139, 137, 147, 144, 137, 138, 140, 141, 138, 139, 144, 133, 139, 134, 141, 143, 135, 145, 135, 141, 132, 146, 134, 141, 139, 143, 146, 135, 143, 142, 135, 140, 148, 139, 138, 140, 139, 142, 137, 140, 145, 139, 139, 137, 153, 129, 136, 142, 145, 135, 148, 137, 138, 138, 139, 148, 130, 150, 146, 143, 135, 133, 142, 137, 133, 154, 144, 140, 146, 141, 144, 151, 133, 148, 154, 125, 136, 136, 142, 143, 142, 139, 135, 138, 145, 138, 139, 139, 135, 133, 146, 147, 132, 146, 132, 139, 147, 136, 143, 141, 133, 141, 131, 139, 116, 135, 135, 145, 144, 134, 126, 123, 139, 143, 131, 143, 132, 137, 145, 139, 147, 148, 147, 138, 145, 126, 137, 165, 132, 136, 137, 142, 141, 146, 138, 137, 138, 125, 143, 133, 135, 141, 143, 137, 143, 140, 145, 139, 135, 138, 152, 138, 140, 142, 146, 145, 137, 137, 145, 148, 142, 139, 141, 147, 137, 141, 136, 139, 145, 150, 146, 148, 134, 138, 139, 136, 139, 144, 138, 140, 145, 140, 137, 155, 137, 133, 133, 144, 137, 127, 122, 144, 135, 129, 162, 136, 141, 147, 146, 144, 139, 137, 143, 142, 139, 144, 139, 143, 136, 142, 135, 142, 150, 144, 129, 131, 146, 124, 152, 142, 136, 131, 134, 129, 127, 139, 143, 121, 136, 142, 138, 138, 131, 138, 134, 143, 124, 141, 146, 135, 133, 139, 137, 152, 152, 144, 141, 140, 140, 134, 111, 127, 138, 142, 120, 141, 136, 134, 133, 137, 146, 138, 149, 138, 135, 138, 140, 144, 159, 142, 145, 135, 131, 127, 135, 151, 140, 142, 122, 143, 137, 136, 130, 138, 142, 146, 136, 132, 150, 141, 121, 160, 149, 131, 139, 135, 133, 143, 135, 145, 142, 148, 144, 136, 137, 131, 133, 136, 152, 138, 145, 129, 137, 129, 135, 145, 147, 139, 145, 141, 126, 165, 146, 147, 137, 136, 145, 127, 136, 134, 136, 138, 137, 141, 136, 138, 151, 149, 137, 127, 137, 134, 133, 137, 149, 146, 138, 136, 144, 134, 145, 144, 152, 147, 144, 141, 129, 143, 139, 133, 138, 143, 139, 151, 144, 122, 142, 130, 141, 139, 131, 165, 149, 131, 139, 136, 130, 139, 131, 144, 141, 138, 142, 140, 141, 141, 151, 134, 154, 139, 137, 131, 142, 136, 127, 150, 140, 150, 135, 137, 140, 133, 143, 136, 140, 127, 138, 137, 139, 129, 130, 142, 136, 156, 142, 144, 139, 135, 137, 135, 141, 136, 141, 131, 146, 141, 143, 136, 143, 136, 136, 144, 136, 130, 146, 125, 133, 109, 140, 140, 140, 133, 153, 134, 148, 137, 135, 148, 149, 133, 147, 133, 139, 133, 142, 146, 136, 134, 134, 132, 141, 146, 141, 148, 140, 136, 138, 147, 151, 138, 138, 145, 143, 145, 132, 131, 141, 130, 153, 134, 140, 127, 145, 134, 148, 138, 140, 121, 130, 152, 142, 138, 138, 142, 140, 132, 134, 148, 145, 144, 135, 141, 146, 156, 148, 146, 133, 143, 132, 144, 137, 140, 142, 136, 129, 147, 161, 138, 138, 133, 131, 134, 137, 134, 127, 135, 136, 139, 134, 130, 145, 162, 136, 152, 133, 136, 136, 134, 151, 153, 139, 144, 132, 136, 150, 138, 129, 142, 139, 139, 148, 152, 134, 143, 146, 147, 152, 140, 139, 149, 142, 132, 132, 151, 140, 143, 136, 133, 131, 143, 135, 138, 135, 132, 140, 142, 141, 147, 145, 142, 146, 134, 138, 140, 138, 149, 135, 134, 142, 137, 149, 139, 131, 147, 128, 145, 140, 141, 128, 140, 136, 139, 140, 141, 130, 136, 133, 138, 142, 139, 141, 136, 149, 145, 144, 134, 139, 137, 125, 141, 138, 138, 126, 135, 138, 132, 142, 139, 136, 139, 128, 145, 126, 135, 138, 142, 137, 139, 136, 136, 135, 145, 131, 150, 136, 128, 142, 138, 139, 134, 137, 133, 138, 134, 153, 133, 138, 141, 146, 126, 141, 150, 134, 142, 145, 143, 135, 135, 142, 129, 141, 146, 143, 142, 141, 145, 136, 137, 131, 129, 129, 140, 130, 128, 138, 142, 146, 143, 145, 135, 121, 147, 142, 140, 136, 134, 143, 135, 146, 133, 137, 135, 138, 129, 133, 129, 133, 145, 138, 131, 142, 134, 138, 144, 134, 142, 139, 143, 146, 146, 142, 133, 134, 137, 144, 139, 141, 141, 130, 131, 129, 144, 142, 130, 133, 135, 139, 129, 141, 139, 135, 147, 134, 137, 134, 135, 137, 139, 135, 130, 147, 143, 138, 130, 135, 136, 132, 134, 147, 134, 134, 135, 134, 141, 130, 137, 146, 140, 137, 139, 140, 138, 140, 133, 135, 139, 138, 136, 148, 138, 132, 138, 128, 137, 146, 135, 136, 133, 136, 143, 132, 138, 148, 139, 140, 134, 131, 138, 137, 133, 140, 132, 123, 138, 136, 138, 140, 140, 139, 139, 145, 149, 136, 151, 139, 151, 139, 137, 140, 134, 132, 137, 143, 141, 136, 140, 137, 136, 140, 136, 142, 130, 135, 134, 130, 133, 141, 141, 134, 144, 143, 133, 144, 143, 139, 143, 147, 138, 138, 135, 133, 132, 146, 142, 136, 131, 141, 135, 147, 147, 137, 127, 141, 139, 142, 140, 142, 139, 129, 135, 144, 136, 140, 145, 146, 139, 139, 135, 141, 130, 135, 140, 142, 135, 136, 140, 142, 136, 145, 137, 134, 141, 140, 147, 138, 139, 140, 138, 141, 144, 138, 129, 136, 152, 138, 139, 131, 133, 146, 137, 138, 137, 141, 134, 136, 143, 136, 147, 149, 138, 156, 142, 138, 131, 148, 147, 134, 137, 135, 142, 129, 134, 132, 143, 137, 142, 142, 132, 145, 139, 136, 128, 138, 143, 138, 151, 141, 140, 133, 144, 140, 132, 137, 139, 143, 142, 134, 133, 139, 126, 126, 144, 136, 139, 136, 136, 145, 138, 141, 134, 141, 136, 148, 142, 138, 134, 132, 142, 134, 134, 142, 140, 136, 150, 134, 136, 135, 129, 140, 133, 137, 141, 140, 147, 134, 152, 141, 139, 145, 137, 141, 131, 140, 136, 134, 147, 138, 144, 136, 141, 136, 143, 140, 142, 142, 135, 140, 139, 135, 136, 140, 146, 133, 143, 146, 135, 136, 141, 138, 143, 152, 146, 134, 137, 142, 144, 135, 132, 140, 137, 134, 140, 142, 140, 135, 132, 144, 138, 136, 140, 138, 148, 143, 134, 141, 136, 138, 143, 135, 151, 146, 142, 141, 131, 144, 136, 163, 138, 132, 143, 134, 140, 141, 131, 144, 140, 134, 144, 145, 140, 146, 130, 132, 137, 145, 139, 137, 134, 140, 132, 145, 138, 142, 140, 143, 153, 146, 141, 136, 137, 137, 142, 144, 146, 143, 148, 132, 140, 138, 141, 142, 148, 132, 148, 138, 150, 144, 134, 151, 145, 145, 140, 142, 144, 142, 137, 142, 139, 136, 136, 140, 140, 146, 132, 147, 142, 132, 140, 142, 139, 136, 138, 137, 137, 137, 138, 135, 140, 137, 145, 149, 146, 141, 141, 136, 131, 135, 138, 130, 156, 129, 129, 140, 147, 140, 138, 140, 139, 140, 144, 146, 138, 141, 146, 132, 141, 144, 146, 140, 146, 132, 143, 140, 139, 134, 140, 132, 137, 141, 139, 148, 139, 142, 150, 142, 140, 143, 134, 138, 130, 131, 140, 134, 143, 135, 148, 131, 148, 144, 130, 147, 144, 138, 144, 127, 122, 153, 134, 139, 135, 132, 148, 145, 139, 144, 143, 139, 129, 142, 140, 141, 137, 132, 144, 143, 134, 134, 131, 138, 134, 145, 130, 140, 126, 142, 140, 143, 146, 139, 145, 140, 142, 141, 137, 143, 134, 137, 137, 143, 145, 147, 153, 138, 136, 135, 141, 140, 140, 159, 143, 136, 151, 143, 129, 141, 135, 143, 135, 131, 140, 138, 133, 145, 141, 124, 140, 148, 138, 147, 142, 139, 137, 136, 134, 144, 132, 141, 137, 147, 140, 147, 129, 132, 128, 134, 138, 142, 132, 151, 143, 141, 150, 135, 135, 143, 145, 138, 146, 139, 136, 136, 144, 137, 143, 137, 142, 140, 134, 137, 137, 143, 146, 143, 132, 145, 131, 138, 141, 139, 145, 143, 138, 144, 131, 142, 138, 144, 143, 134, 141, 138, 138, 139, 137, 139, 144, 136, 140, 149, 138, 141, 134, 136, 148, 141, 145, 143, 141, 135, 136, 138, 145, 128, 139, 144, 149, 142, 141, 140, 146, 134, 148, 132, 135, 146, 136, 134, 135, 129, 127, 145, 136, 133, 146, 137, 129, 138, 135, 147, 141, 141, 132, 135, 141, 143, 136, 137, 135, 144, 139, 149, 153, 142, 131, 135, 146, 149, 147, 151, 136, 142, 147, 135, 134, 138, 148, 134, 134, 142, 132, 139, 130, 140, 147, 140, 134, 144, 143, 143, 131, 143, 135, 141, 136, 139, 146, 136, 144, 135, 144, 143, 132, 140, 140, 134, 140, 136, 131, 142, 133, 136, 145, 145, 140, 136, 143, 141, 137, 140, 147, 143, 132, 135, 143, 136, 145, 140, 144, 141, 136, 145, 136, 142, 149, 143, 145, 131, 140, 143, 137, 140, 144, 138, 138, 134, 135, 134, 145, 137, 136, 143, 143, 137, 136, 133, 146, 145, 141, 150, 139, 136, 158, 140, 138, 137, 130, 137, 132, 138, 140, 145, 142, 145, 137, 138, 137, 143, 132, 135, 145, 131, 135, 144, 137, 144, 148, 136, 137, 146, 133, 146, 133, 147, 139, 132, 143, 135, 145, 143, 141, 135, 143, 142, 133, 142, 142, 143, 138, 153, 132, 143, 143, 136, 136, 130, 143, 137, 136, 131, 139, 131, 133, 142, 141, 147, 144, 142, 140, 139, 139, 152, 136, 131, 134, 143, 135, 147, 146, 143, 141, 133, 143, 136, 145, 135, 131, 138, 141, 136, 133, 144, 138, 138, 135, 130, 140, 134, 142, 135, 145, 133, 139, 150, 144, 138, 135, 140, 142, 130, 144, 143, 140, 143, 131, 133, 140, 139, 132, 136, 139, 139, 133, 135, 133, 148, 135, 127, 138, 135, 139, 139, 156, 135, 147, 143, 132, 132, 144, 133, 133, 139, 141, 134, 131, 137, 148, 133, 141, 143, 142, 139, 140, 135, 137, 142, 126, 147, 135, 134, 142, 134, 139, 137, 158, 126, 149, 138, 146, 141, 130, 142, 143, 139, 134, 136, 131, 149, 131, 135, 140, 140, 133, 150, 138, 132, 130, 132, 142, 138, 134, 138, 145, 135, 129, 141, 129, 131, 138, 138, 133, 132, 140, 144, 141, 146, 136, 140, 125, 136, 132, 139, 148, 147, 129, 153, 132, 132, 143, 146, 139, 141, 137, 137, 135, 125, 147, 134, 136, 129, 146, 121, 126, 145, 134, 132, 145, 136, 144, 142, 145, 141, 127, 143, 143, 140, 146, 143, 134, 150, 135, 143, 146, 138, 140, 141, 141, 134, 129, 142, 137, 146, 129, 138, 143, 125, 140, 139, 152, 141, 134, 129, 134, 141, 143, 141, 143, 135, 141, 136, 129, 137, 135, 141, 142, 142, 112, 143, 158, 137, 133, 135, 145, 130, 138, 128, 137, 137, 142, 147, 146, 137, 146, 135, 136, 127, 148, 135, 134, 144, 136, 133, 136, 141, 138, 148, 145, 143, 153, 136, 137, 140, 140, 135, 135, 138, 145, 139, 142, 146, 139, 156, 144, 137, 147, 152, 136, 149, 131, 134, 146, 132, 133, 134, 134, 141, 133, 139, 133, 131, 139, 137, 140, 131, 137, 136, 135, 139, 136, 142, 136, 129, 135, 133, 145, 142, 146, 144, 145, 143, 124, 145, 132, 141, 143, 147, 142, 136, 142, 135, 142, 141, 138, 136, 131, 141, 134, 141, 142, 145, 141, 144, 143, 135, 138, 130, 139, 136, 140, 144, 124, 137, 135, 140, 132, 146, 136, 136, 138, 149, 134, 138, 149, 134, 141, 148, 136, 145, 131, 137, 140, 140, 135, 147, 132, 133, 139, 141, 139, 139, 130, 140, 145, 150, 131, 143, 141, 144, 145, 137, 129, 132, 149, 131, 129, 132, 144, 143, 141, 153, 135, 140, 127, 128, 137, 139, 140, 140, 144, 145, 141, 136, 140, 144, 137, 137, 144, 140, 138, 144, 129, 136, 137, 135, 136, 127, 141, 138, 135, 137, 131, 133, 137, 139, 126, 135, 150, 129, 141, 142, 153, 121, 137, 151, 134, 139, 140, 136, 140, 142, 141, 130, 134, 131, 143, 136, 145, 139, 140, 135, 146, 142, 150, 145, 131, 146, 142, 134, 133, 138, 139, 139, 130, 140, 143, 138, 141, 133, 141, 136, 143, 137, 139, 140, 135, 148, 145, 133, 133, 138, 140, 140, 142, 125, 139, 137, 131, 141, 132, 136, 137, 142, 136, 140, 136, 134, 132, 133, 138, 140, 136, 142, 148, 140, 142, 145, 137, 133, 138, 144, 134, 138, 133, 145, 132, 147, 134, 135, 152, 137, 143, 140, 140, 139, 132, 130, 135, 146, 137, 153, 140, 135, 138, 130, 134, 130, 137, 139, 142, 147, 135, 132, 152, 139, 137, 140, 137, 129, 139, 126, 138, 136, 148, 144, 142, 134, 137, 120, 141, 144, 140, 135, 139, 140, 143, 130, 147, 138, 127, 143, 144, 133, 124, 146, 132, 146, 144, 148, 137, 140, 153, 133, 138, 140, 143, 137, 134, 150, 140, 126, 136, 136, 140, 131, 146, 127, 134, 136, 143, 139, 141, 145, 136, 141, 150, 148, 127, 137, 140, 135, 137, 138, 141, 144, 138, 140, 138, 130, 133, 142, 149, 128, 138, 145, 136, 147, 137, 150, 138, 146, 141, 131, 135, 141, 146, 132, 129, 144, 140, 141, 147, 137, 136, 130, 139, 136, 136, 142, 142, 133, 131, 137, 133, 138, 130, 139, 133, 135, 150, 129, 132, 163, 135, 136, 139, 143, 132, 135, 136, 140, 148, 131, 154, 140, 136, 144, 129, 138, 140, 149, 148, 139, 135, 142, 132, 136, 141, 136, 147, 143, 138, 140, 136, 133, 143, 140, 138, 154, 138, 139, 151, 131, 140, 136, 139, 133, 140, 139, 135, 137, 121, 140, 145, 142, 139, 128, 129, 146, 134, 131, 140, 140, 136, 146, 141, 142, 135, 136, 135, 140, 138, 143, 133, 146, 138, 145, 142, 136, 146, 134, 132, 139, 145, 142, 137, 142, 129, 129, 144, 148, 148, 145, 138, 140, 136, 140, 152, 137, 135, 144, 129, 136, 135, 137, 144, 132, 151, 129, 152, 135, 145, 148, 146, 132, 136, 145, 140, 140, 139, 139, 131, 135, 136, 134, 140, 141, 141, 128, 138, 141, 127, 141, 130, 147, 146, 146, 130, 134, 139, 153, 144, 143, 129, 128, 153, 144, 130, 133, 143, 143, 143, 139, 138, 142, 142, 138, 146, 143, 122, 129, 139, 133, 134, 130, 146, 149, 134, 136, 133, 145, 136, 131, 141, 143, 135, 134, 132, 149, 144, 130, 144, 144, 146, 136, 141, 127, 136, 136, 136, 135, 137, 132, 136, 151, 136, 131, 133, 139, 142, 141, 133, 133, 145, 152, 144, 139, 142, 146, 129, 144, 133, 149, 136, 137, 138, 140, 139, 136, 144, 140, 139, 134, 152, 135, 131, 132, 139, 142, 143, 147, 138, 150, 147, 142, 143, 137, 135, 132, 133, 142, 151, 148, 147, 138, 139, 138, 132, 128, 130, 146, 128, 140, 141, 138, 132, 135, 150, 148, 133, 145, 139, 139, 127, 129, 134, 130, 138, 141, 143, 140, 128, 148, 134, 136, 145, 143, 138, 132, 137, 140, 138, 142, 125, 142, 144, 135, 136, 145, 149, 135, 138, 137, 125, 138, 140, 137, 140, 137, 118, 131, 143, 146, 134, 146, 133, 129, 141, 139, 129, 151, 137, 139, 134, 145, 133, 140, 137, 128, 132, 134, 141, 153, 136, 144, 140, 144, 141, 140, 149, 142, 151, 136, 122, 137, 138, 138, 138, 139, 149, 140, 148, 143, 136, 137, 150, 148, 145, 140, 136, 133, 146, 139, 145, 130, 135, 140, 150, 132, 144, 131, 148, 137, 152, 148, 142, 132, 130, 141, 132, 146, 129, 135, 138, 151, 138, 134, 132, 135, 135, 144, 133, 132, 131, 139, 145, 127, 136, 137, 133, 133, 143, 142, 129, 145, 137, 130, 129, 138, 133, 136, 154, 141, 142, 136, 151, 137, 144, 141, 139, 132, 137, 134, 134, 141, 141, 144, 144, 132, 134, 145, 138, 133, 131, 129, 132, 152, 145, 142, 144, 140, 138, 145, 136, 146, 129, 140, 134, 133, 127, 144, 133, 147, 136, 139, 140, 137, 127, 131, 136, 132, 137, 144, 133, 138, 135, 144, 137, 137, 138, 137, 130, 127, 136, 135, 138, 133, 144, 144, 146, 139, 138, 139, 140, 141, 136, 140, 150, 144, 136, 138, 142, 135, 143, 131, 160, 129, 146, 126, 141, 134, 129, 133, 148, 142, 132, 137, 134, 146, 137, 128, 138, 137, 143, 137, 138, 135, 136, 139, 147, 142, 150, 125, 136, 142, 139, 138, 126, 140, 147, 138, 141, 143, 143, 141, 145, 137, 129, 136, 140, 140, 143, 139, 142, 130, 129, 147, 140, 141, 130, 139, 130, 142, 146, 144, 141, 135, 148, 133, 143, 151, 145, 144, 142, 147, 145, 135, 137, 143, 143, 139, 141, 129, 137, 143, 131, 144, 154, 133, 139, 150, 148, 138, 151, 143, 141, 148, 135, 137, 145, 142, 138, 142, 144, 127, 137, 137, 146, 143, 140, 142, 136, 137, 138, 136, 130, 143, 141, 135, 144, 140, 132, 140, 134, 143, 140, 147, 140, 137, 139, 143, 135, 135, 148, 143, 140, 137, 145, 134, 135, 150, 146, 134, 140, 144, 141, 146, 134, 137, 132, 130, 141, 138, 135, 131, 132, 150, 137, 140, 143, 133, 143, 127, 136, 131, 137, 136, 138, 128, 146, 140, 137, 128, 136, 131, 141, 129, 140, 153, 140, 138, 141, 134, 138, 142, 139, 148, 139, 138, 139, 138, 136, 144, 139, 142, 135, 136, 132, 133, 127, 142, 134, 143, 136, 137, 140, 139, 141, 131, 139, 145, 136, 149, 121, 144, 131, 142, 128, 131, 141, 137, 147, 137, 139, 140, 138, 138, 143, 145, 137, 152, 143, 139, 139, 136, 136, 139, 147, 134, 144, 137, 134, 149, 133, 143, 133, 135, 137, 134, 132, 146, 146, 144, 138, 139, 132, 144, 145, 143, 137, 143, 141, 140, 136, 143, 135, 140, 138, 132, 147, 141, 127, 143, 139, 148, 132, 141, 142, 137, 136, 132, 142, 131, 140, 145, 140, 141, 144, 149, 140, 138, 136, 139, 131, 137, 133, 135, 140, 143, 132, 137, 134, 148, 133, 137, 141, 142, 147, 130, 130, 129, 136, 141, 139, 139, 136, 147, 136, 140, 141, 142, 145, 139, 141, 128, 138, 135, 142, 143, 139, 139, 132, 140, 131, 137, 140, 137, 143, 132, 135, 138, 137, 138, 133, 146, 144, 130, 144, 135, 136, 145, 140, 137, 139, 144, 137, 139, 142, 137, 146, 139, 153, 139, 147, 138, 143, 130, 139, 139, 154, 141, 135, 134, 135, 145, 142, 134, 139, 135, 130, 152, 141, 135, 145, 135, 145, 143, 135, 145, 135, 135, 134, 136, 128, 131, 129, 136, 127, 145, 141, 131, 147, 140, 133, 133, 139, 144, 146, 141, 138, 143, 143, 144, 140, 131, 133, 139, 140, 136, 139, 128, 140, 143, 135, 149, 135, 142, 125, 135, 134, 136, 144, 138, 142, 138, 137, 140, 138, 146, 140, 136, 147, 131, 135, 148, 139, 135, 139, 137, 142, 134, 136, 138, 131, 133, 135, 135, 141, 134, 141, 142, 138, 133, 135, 129, 138, 132, 136, 137, 137, 139, 132, 147, 140, 142, 134, 138, 140, 149, 134, 130, 137, 138, 127, 135, 138, 141, 140, 140, 136, 135, 138, 130, 136, 131, 138, 136, 149, 134, 134, 144, 137, 143, 135, 143, 140, 145, 143, 139, 144, 136, 137, 143, 136, 141, 138, 134, 139, 140, 142, 135, 146, 138, 139, 140, 131, 143, 137, 146, 135, 135, 132, 143, 134, 146, 134, 134, 139, 132, 131, 145, 139, 145, 138, 144, 144, 140, 143, 145, 142, 135, 131, 150, 140, 143, 136, 138, 140, 140, 137, 142, 139, 141, 141, 131, 141, 147, 146, 139, 141, 129, 144, 139, 142, 141, 135, 139, 133, 147, 133, 132, 140, 145, 135, 140, 145, 141, 144, 141, 141, 139, 140, 139, 146, 149, 146, 146, 140, 138, 132, 139, 137, 141, 137, 130, 153, 145, 138, 144, 140, 130, 143, 132, 141, 131, 136, 151, 144, 138, 152, 138, 136, 139, 139, 144, 140, 139, 139, 141, 140, 137, 137, 136, 141, 140, 146, 133, 138, 140, 138, 152, 141, 143, 139, 137, 134, 134, 139, 158, 133, 140, 133, 139, 133, 137, 134, 133, 137, 137, 143, 137, 146, 130, 136, 140, 140, 135, 142, 142, 140, 143, 137, 139, 135, 139, 146, 137, 132, 137, 142, 150, 135, 136, 137, 135, 141, 136, 145, 142, 130, 144, 136, 142, 136, 144, 138, 134, 128, 138, 142, 138, 137, 130, 132, 143, 142, 135, 137, 135, 140, 140, 142, 139, 141, 142, 140, 138, 136, 137, 126, 125, 139, 134, 141, 130, 137, 147, 145, 136, 146, 143, 137, 139, 138, 138, 141, 133, 140, 142, 146, 140, 141, 134, 134, 135, 136, 136, 132, 139, 142, 142, 139, 142, 159, 137, 133, 135, 150, 148, 146, 135, 133, 139, 134, 142, 141, 138, 136, 144, 147, 142, 136, 138, 146, 137, 135, 132, 137, 146, 143, 138, 136, 139, 140, 149, 142, 139, 123, 135, 142, 145, 136, 135, 147, 134, 144, 140, 138, 140, 143, 139, 138, 140, 142, 134, 138, 142, 144, 143, 142, 144, 143, 140, 132, 138, 135, 131, 138, 149, 134, 131, 130, 142, 140, 139, 140, 133, 136, 140, 142, 135, 142, 130, 143, 150, 139, 139, 140, 137, 139, 132, 140, 137, 141, 133, 147, 148, 142, 133, 141, 134, 138, 134, 140, 132, 142, 140, 138, 134, 136, 133, 135, 152, 139, 137, 129, 136, 138, 135, 137, 134, 136, 146, 139, 134, 139, 134, 141, 132, 135, 135, 145, 141, 136, 153, 144, 134, 141, 140, 140, 142, 136, 133, 146, 135, 138, 141, 141, 139, 138, 143, 132, 127, 150, 145, 139, 137, 131, 136, 140, 141, 140, 133, 130, 137, 130, 146, 141, 143, 133, 139, 132, 142, 144, 137, 142, 145, 141, 140, 133, 140, 139, 131, 146, 136, 137, 144, 143, 147, 134, 140, 135, 139, 141, 149, 143, 132, 140, 137, 137, 143, 138, 139, 131, 140, 144, 127, 144, 145, 135, 133, 135, 144, 136, 137, 143, 134, 144, 141, 138, 138, 133, 143, 137, 138, 136, 136, 137, 138, 138, 142, 132, 143, 143, 133, 137, 140, 133, 132, 139, 134, 141, 148, 138, 140, 142, 136, 142, 150, 138, 141, 145, 142, 147, 146, 138, 146, 135, 139, 134, 140, 143, 142, 138, 140, 141, 139, 130, 147, 140, 139, 132, 140, 150, 143, 143, 145, 142, 146, 145, 137, 145, 141, 138, 144, 139, 152, 139, 139, 140, 142, 140, 138, 145, 133, 142, 133, 142, 133, 137, 138, 141, 136, 136, 142, 145, 139, 141, 135, 135, 137, 141, 139, 133, 138, 139, 138, 139, 140, 137, 143, 144, 142, 139, 140, 147, 139, 138, 142, 137, 133, 143, 138, 139, 134, 140, 143, 143, 136, 139, 148, 141, 139, 138, 135, 135, 140, 137, 144, 137, 137, 135, 141, 141, 146, 139, 141, 143, 139, 145, 139, 135, 140, 133, 139, 141, 133, 142, 141, 140, 142, 138, 136, 142, 136, 139, 139, 141, 143, 143, 140, 138, 141, 139, 145, 131, 142, 138, 138, 141, 145, 140, 139, 138, 137, 145, 139, 139, 144, 133, 132, 139, 146, 142, 132, 137, 144, 134, 140, 143, 144, 140, 144, 149, 141, 135, 138, 136, 137, 139, 143, 134, 137, 140, 141, 143, 141, 141, 135, 147, 138, 140, 144, 135, 138, 139, 140, 136, 140, 142, 133, 140, 134, 139, 143, 139, 147, 142, 139, 142, 138, 141, 145, 139, 142, 142, 139, 139, 139, 142, 145, 139, 140, 138, 135, 135, 136, 137, 138, 142, 143, 138, 144, 141, 138, 139, 145, 147, 140, 144, 131, 140, 147, 145, 136, 143, 142, 138, 134, 136, 140, 134, 143, 140, 143, 140, 137, 141, 135, 144, 138, 137, 142, 140, 141, 136, 143, 132, 142, 131, 144, 145, 140, 138, 147, 142, 141, 139, 141, 139, 139, 138, 135, 138, 138, 138, 144, 134, 140, 145, 143, 142, 142, 145, 141, 143, 141, 142, 138, 136, 133, 144, 140, 135, 141, 145, 139, 132, 147, 140, 143, 135, 140, 138, 140, 136, 139, 140, 140, 139, 145, 140, 136, 133, 142, 136, 139, 138, 143, 141, 132, 149, 140, 141, 144, 140, 138, 143, 139, 140, 141, 140, 130, 134, 133, 142, 140, 137, 136, 143, 138, 144, 135, 143, 137, 139, 144, 139, 144, 137, 137, 130, 137, 140, 131, 137, 135, 139, 139, 143, 138, 132, 138, 135, 144, 138, 144, 140, 142, 137, 148, 138, 135, 138, 145, 144, 144, 141, 141, 144, 137, 146, 136, 137, 140, 135, 140, 137, 132, 137, 143, 143, 142, 136, 140, 145, 141, 144, 143, 145, 138, 147, 135, 139, 139, 134, 140, 140, 133, 146, 147, 137, 141, 146, 144, 140, 147, 133, 141, 130, 142, 139, 134, 144, 141, 149, 133, 140, 150, 136, 141, 144, 143, 139, 138, 137, 149, 142, 130, 140, 133, 141, 132, 136, 138, 135, 132, 149, 152, 140, 140, 144, 135, 142, 139, 139, 142, 141, 138, 135, 136, 148, 139, 140, 135, 144, 139, 137, 136, 142, 143, 140, 139, 144, 142, 148, 142, 137, 141, 142, 134, 146, 133, 138, 139, 134, 141, 137, 139, 137, 136, 138, 143, 139, 143, 140, 139, 140, 145, 139, 138, 133, 127, 138, 145, 139, 141, 143, 136, 137, 137, 135, 129, 130, 137, 139, 136, 137, 144, 136, 144, 142, 141, 136, 134, 141, 137, 138, 139, 143, 135, 140, 151, 124, 136, 143, 143, 146, 152, 142, 135, 141, 139, 140, 146, 130, 138, 141, 136, 139, 138, 134, 134, 144, 144, 133, 139, 137, 141, 144, 135, 142, 131, 135, 141, 137, 143, 137, 140, 158, 141, 134, 135, 138, 137, 139, 138, 141, 142, 142, 134, 148, 133, 138, 131, 142, 137, 140, 137, 145, 132, 149, 138, 129, 139, 140, 143, 147, 137, 135, 142, 139, 139, 137, 142, 129, 130, 139, 134, 133, 134, 132, 145, 148, 141, 134, 134, 140, 138, 134, 138, 141, 137, 130, 132, 139, 134, 138, 142, 140, 140, 145, 132, 138, 145, 135, 138, 129, 131, 142, 136, 137, 136, 140, 140, 142, 138, 146, 141, 140, 139, 139, 142, 137, 146, 145, 145, 140, 142, 143, 142, 134, 141, 133, 132, 134, 134, 143, 138, 138, 135, 139, 141, 143, 138, 137, 144, 138, 140, 146, 142, 146, 140, 137, 139, 136, 143, 141, 150, 140, 144, 139, 149, 141, 137, 142, 144, 146, 147, 146, 135, 127, 136, 130, 134, 143, 142, 140, 135, 142, 137, 138, 135, 135, 146, 127, 135, 141, 136, 142, 137, 137, 134, 147, 142, 141, 138, 132, 136, 137, 128, 138, 135, 134, 132, 136, 139, 139, 139, 139, 141, 146, 135, 143, 142, 134, 141, 141, 134, 140, 146, 139, 139, 140, 134, 141, 141, 134, 146, 145, 145, 137, 140, 135, 134, 147, 136, 137, 140, 139, 140, 147, 138, 140, 138, 140, 139, 136, 136, 142, 139, 135, 147, 135, 142, 136, 144, 136, 135, 140, 139, 147, 136, 136, 135, 144, 137, 139, 143, 140, 139, 135, 136, 142, 129, 137, 130, 134, 140, 135, 140, 137, 138, 131, 139, 148, 139, 137, 137, 143, 143, 134, 139, 135, 136, 144, 139, 138, 133, 139, 142, 144, 139, 137, 139, 140, 141, 133, 135, 135, 141, 141, 137, 140, 137, 135, 138, 141, 137, 134, 144, 142, 130, 140, 132, 139, 139, 132, 139, 145, 140, 140, 143, 131, 139, 147, 141, 134, 142, 140, 140, 137, 140, 144, 146, 134, 140, 138, 135, 146, 141, 135, 144, 134, 137, 140, 138, 133, 133, 139, 140, 143, 137, 140, 135, 136, 143, 142, 141, 142, 137, 143, 135, 137, 151, 137, 139, 144, 136, 139, 140, 141, 136, 142, 139, 140, 146, 142, 145, 145, 143, 139, 143, 144, 135, 140, 146, 141, 135, 138, 135, 143, 140, 139, 141, 138, 139, 141, 135, 138, 137, 141, 143, 137, 149, 134, 140, 142, 147, 144, 150, 133, 137, 138, 138, 134, 137, 137, 134, 141, 136, 140, 136, 136, 135, 138, 139, 146, 150, 150, 147, 137, 134, 137, 139, 154, 143, 138, 142, 139, 128, 136, 138, 138, 126, 136, 131, 137, 140, 136, 137, 138, 145, 138, 140, 138, 140, 136, 136, 126, 144, 132, 129, 135, 131, 154, 150, 138, 134, 146, 143, 131, 136, 125, 135, 132, 140, 145, 138, 136, 148, 148, 142, 147, 144, 137, 138, 137, 131, 135, 149, 140, 139, 133, 136, 149, 147, 144, 134, 134, 143, 142, 145, 133, 147, 139, 135, 141, 134, 142, 133, 137, 134, 135, 139, 134, 147, 144, 139, 138, 129, 142, 145, 136, 140, 151, 132, 135, 142, 149, 132, 138, 140, 129, 139, 132, 149, 146, 143, 135, 137, 143, 129, 137, 136, 141, 134, 153, 134, 132, 145, 149, 137, 140, 138, 135, 143, 148, 136, 144, 150, 131, 151, 144, 132, 136, 135, 132, 139, 138, 149, 149, 141, 142, 138, 138, 135, 143, 133, 130, 130, 145, 130, 131, 140, 143, 137, 136, 143, 136, 134, 130, 149, 142, 148, 144, 132, 149, 141, 153, 139, 143, 138, 142, 145, 138, 139, 139, 143, 137, 128, 145, 140, 145, 141, 142, 139, 132, 144, 134, 135, 133, 137, 147, 138, 144, 135, 134, 133, 132, 143, 139, 138, 137, 131, 142, 146, 139, 140, 127, 121, 137, 142, 141, 135, 140, 147, 138, 130, 151, 142, 136, 133, 155, 131, 141, 137, 152, 156, 140, 135, 142, 145, 131, 158, 140, 129, 139, 138, 143, 135, 144, 133, 132, 136, 140, 132, 154, 141, 139, 136, 152, 135, 121, 141, 133, 138, 135, 133, 142, 128, 137, 139, 138, 128, 148, 137, 136, 137, 142, 138, 141, 136, 142, 138, 143, 143, 139, 129, 137, 136, 137, 132, 138, 152, 137, 143, 135, 141, 141, 143, 143, 143, 144, 139, 138, 135, 140, 134, 135, 135, 148, 149, 132, 137, 140, 132, 144, 143, 154, 131, 136, 139, 142, 143, 136, 133, 136, 137, 138, 130, 124, 135, 138, 129, 134, 139, 138, 146, 149, 134, 136, 133, 137, 142, 153, 135, 130, 134, 132, 149, 147, 146, 137, 148, 143, 141, 133, 132, 136, 144, 131, 149, 148, 141, 131, 135, 143, 143, 144, 143, 127, 141, 140, 135, 132, 140, 138, 144, 143, 141, 133, 142, 127, 134, 138, 125, 146, 134, 136, 138, 137, 123, 134, 137, 139, 141, 139, 146, 132, 138, 131, 132, 135, 128, 133, 137, 138, 129, 146, 138, 138, 138, 143, 137, 145, 138, 142, 129, 134, 139, 129, 131, 136, 148, 135, 144, 154, 137, 128, 135, 132, 136, 136, 145, 148, 138, 140, 140, 136, 140, 147, 140, 134, 141, 135, 134, 139, 131, 144, 145, 140, 150, 138, 153, 152, 141, 142, 144, 136, 133, 131, 133, 132, 139, 135, 137, 131, 129, 143, 144, 137, 141, 131, 138, 145, 130, 129, 135, 137, 132, 127, 139, 140, 139, 130, 134, 145, 133, 139, 149, 151, 138, 139, 143, 141, 149, 136, 131, 134, 150, 133, 152, 135, 138, 137, 152, 125, 139, 132, 142, 136, 134, 135, 141, 144, 126, 138, 139, 143, 137, 142, 137, 132, 150, 136, 136, 136, 139, 129, 148, 138, 130, 133, 143, 146, 141, 145, 135, 136, 132, 146, 139, 137, 138, 144, 138, 142, 142, 146, 140, 134, 131, 136, 142, 136, 127, 138, 138, 144, 142, 147, 142, 140, 148, 134, 138, 139, 138, 142, 145, 136, 136, 137, 133, 140, 129, 127, 138, 132, 144, 140, 140, 133, 138, 131, 143, 141, 135, 141, 134, 136, 140, 150, 144, 137, 134, 150, 148, 136, 140, 138, 138, 145, 134, 132, 135, 141, 130, 137, 143, 133, 137, 133, 142, 141, 137, 136, 141, 143, 132, 135, 138, 136, 134, 134, 150, 138, 134, 143, 125, 135, 137, 148, 135, 141, 151, 136, 136, 140, 130, 144, 137, 146, 149, 138, 143, 127, 140, 134, 144, 147, 142, 145, 137, 141, 131, 133, 132, 138, 143, 138, 146, 148, 134, 134, 132, 141, 135, 142, 136, 131, 148, 136, 137, 142, 147, 131, 140, 140, 144, 138, 139, 133, 140, 137, 135, 137, 140, 145, 141, 136, 145, 145, 138, 141, 142, 136, 146, 138, 137, 134, 127, 137, 136, 151, 135, 139, 142, 125, 145, 143, 147, 143, 132, 150, 140, 129, 133, 134, 145, 144, 138, 131, 142, 130, 144, 152, 136, 141, 142, 134, 139, 138, 143, 131, 141, 128, 140, 140, 132, 141, 145, 131, 141, 139, 142, 154, 136, 145, 136, 113, 142, 143, 138, 132, 142, 141, 132, 143, 141, 132, 138, 134, 146, 137, 138, 133, 137, 134, 128, 149, 138, 141, 137, 134, 140, 136, 135, 139, 135, 139, 130, 142, 138, 131, 144, 142, 146, 138, 138, 139, 144, 144, 139, 140, 141, 133, 134, 144, 132, 137, 140, 131, 151, 127, 129, 136, 130, 144, 135, 133, 142, 134, 145, 140, 137, 138, 140, 151, 134, 140, 148, 143, 138, 130, 149, 146, 137, 134, 142, 135, 134, 128, 142, 139, 137, 137, 138, 131, 142, 141, 149, 140, 136, 136, 142, 140, 123, 134, 134, 132, 134, 135, 132, 141, 135, 149, 136, 143, 157, 134, 129, 132, 130, 131, 138, 139, 146, 144, 146, 147, 147, 134, 143, 136, 151, 145, 140, 150, 140, 143, 135, 139, 131, 131, 141, 140, 147, 130, 139, 135, 128, 132, 128, 139, 149, 136, 147, 140, 129, 136, 138, 139, 145, 146, 130, 138, 133, 143, 144, 141, 136, 138, 147, 138, 140, 157, 142, 141, 144, 152, 141, 135, 144, 138, 136, 143, 140, 136, 138, 132, 132, 139, 142, 142, 144, 144, 144, 133, 139, 152, 137, 149, 136, 135, 148, 132, 138, 138, 138, 141, 131, 130, 138, 141, 138, 140, 139, 147, 134, 139, 142, 134, 137, 140, 139, 136, 132, 137, 139, 140, 137, 145, 144, 143, 133, 130, 141, 132, 131, 132, 145, 137, 134, 130, 154, 142, 138, 141, 134, 154, 157, 135, 144, 139, 139, 139, 147, 138, 146, 135, 142, 131, 143, 131, 139, 139, 131, 138, 144, 141, 135, 142, 137, 132, 132, 139, 144, 147, 142, 142, 136, 130, 125, 138, 138, 140, 141, 131, 131, 137, 143, 135, 145, 140, 143, 139, 139, 150, 136, 136, 144, 143, 155, 141, 139, 139, 126, 146, 142, 144, 132, 133, 133, 131, 146, 134, 143, 133, 146, 134, 142, 137, 132, 130, 139, 127, 141, 137, 132, 135, 134, 139, 137, 137, 137, 135, 144, 142, 131, 138, 131, 135, 136, 139, 144, 145, 132, 144, 138, 131, 133, 142, 136, 133, 134, 140, 139, 144, 145, 142, 139, 131, 135, 140, 133, 139, 137, 143, 141, 132, 132, 149, 141, 135, 139, 149, 147, 156, 135, 138, 132, 135, 133, 139, 133, 148, 133, 141, 138, 135, 141, 137, 137, 142, 140, 142, 136, 139, 137, 146, 136, 148, 133, 142, 123, 140, 134, 145, 135, 136, 141, 134, 139, 145, 131, 135, 137, 133, 131, 144, 125, 147, 144, 151, 144, 135, 130, 143, 134, 139, 128, 143, 141, 145, 143, 140, 148, 143, 128, 136, 133, 144, 141, 140, 135, 139, 140, 149, 137, 135, 141, 131, 143, 147, 131, 133, 144, 136, 133, 138, 135, 140, 139, 138, 144, 133, 140, 132, 142, 143, 137, 142, 138, 135, 133, 142, 136, 146, 136, 136, 144, 127, 135, 136, 131, 136, 132, 145, 148, 133, 139, 143, 138, 130, 134, 128, 139, 146, 146, 143, 143, 143, 126, 144, 131, 154, 147, 132, 138, 132, 131, 134, 155, 138, 130, 130, 142, 144, 139, 136, 136, 145, 140, 137, 142, 138, 136, 134, 140, 141, 148, 135, 147, 128, 146, 136, 152, 136, 147, 141, 143, 134, 154, 122, 136, 143, 132, 151, 139, 140, 136, 129, 143, 137, 139, 136, 132, 125, 139, 141, 132, 129, 149, 143, 134, 131, 144, 128, 147, 135, 149, 155, 147, 153, 143, 127, 138, 142, 134, 140, 144, 137, 135, 140, 131, 135, 144, 154, 135, 135, 132, 139, 130, 144, 131, 139, 145, 140, 133, 143, 143, 135, 134, 145, 141, 135, 141, 148, 138, 131, 139, 147, 138, 146, 139, 144, 137, 137, 135, 155, 142, 136, 141, 149, 138, 137, 138, 143, 143, 150, 140, 134, 127, 140, 138, 140, 127, 138, 143, 140, 142, 135, 142, 137, 142, 139, 132, 131, 134, 140, 135, 155, 140, 140, 141, 143, 142, 143, 144, 136, 140, 132, 139, 135, 141, 143, 145, 138, 141, 138, 142, 140, 139, 131, 137, 137, 135, 125, 141, 133, 129, 135, 138, 140, 118, 130, 142, 147, 128, 143, 135, 153, 140, 138, 129, 136, 139, 139, 142, 133, 137, 131, 134, 134, 136, 142, 140, 141, 131, 135, 135, 142, 142, 138, 138, 142, 140, 134, 145, 129, 131, 137, 136, 140, 138, 139, 133, 146, 138, 152, 135, 143, 142, 135, 128, 135, 135, 142, 135, 144, 137, 139, 136, 146, 135, 138, 118, 138, 141, 136, 139, 146, 134, 129, 132, 129, 129, 141, 143, 135, 140, 142, 135, 136, 140, 137, 151, 145, 145, 141, 145, 139, 137, 144, 143, 135, 136, 146, 148, 140, 135, 131, 140, 128, 140, 152, 137, 139, 147, 135, 133, 140, 145, 136, 136, 137, 132, 142, 130, 128, 139, 142, 136, 143, 139, 142, 140, 135, 138, 143, 138, 141, 140, 137, 141, 139, 142, 139, 144, 135, 137, 140, 137, 137, 136, 135, 137, 141, 143, 140, 140, 141, 147, 141, 133, 139, 143, 139, 135, 141, 136, 142, 137, 138, 135, 143, 137, 145, 138, 145, 136, 129, 141, 148, 139, 142, 146, 142, 134, 136, 137, 136, 144, 135, 145, 139, 140, 140, 144, 139, 136, 140, 144, 139, 142, 140, 143, 142, 141, 138, 141, 132, 138, 144, 137, 139, 132, 137, 137, 136, 139, 140, 142, 139, 126, 142, 134, 132, 134, 137, 136, 144, 132, 127, 139, 142, 140, 136, 139, 140, 136, 135, 146, 136, 134, 140, 143, 144, 140, 132, 141, 138, 144, 148, 142, 131, 136, 141, 138, 137, 143, 146, 137, 139, 136, 140, 144, 140, 135, 138, 134, 134, 139, 137, 141, 138, 141, 141, 130, 139, 143, 142, 145, 142, 140, 136, 140, 135, 133, 143, 137, 139, 134, 141, 141, 137, 142, 138, 137, 139, 144, 141, 134, 134, 132, 139, 147, 135, 133, 144, 138, 138, 137, 145, 139, 137, 144, 137, 148, 142, 130, 142, 141, 137, 146, 136, 139, 129, 142, 140, 143, 132, 138, 141, 137, 137, 139, 144, 141, 137, 142, 134, 128, 138, 137, 136, 143, 137, 134, 128, 135, 141, 135, 133, 134, 139, 142, 137, 136, 144, 141, 134, 137, 148, 137, 138, 136, 136, 137, 134, 141, 133, 143, 133, 147, 135, 144, 137, 140, 138, 136, 131, 140, 133, 131, 133, 143, 136, 143, 136, 135, 139, 146, 128, 149, 137, 143, 140, 140, 132, 135, 134, 144, 128, 137, 137, 138, 136, 143, 136, 142, 140, 138, 130, 140, 140, 134, 143, 136, 141, 133, 134, 138, 143, 139, 137, 141, 133, 140, 137, 150, 146, 139, 141, 139, 137, 135, 143, 131, 141, 138, 134, 138, 136, 140, 142, 137, 141, 147, 147, 140, 136, 142, 137, 141, 142, 140, 128, 136, 134, 139, 136, 145, 137, 136, 137, 135, 141, 137, 138, 138, 134, 141, 138, 140, 142, 137, 136, 143, 137, 145, 140, 141, 134, 137, 139, 133, 134, 137, 137, 137, 129, 136, 139, 134, 138, 137, 140, 140, 135, 139, 139, 140, 143, 138, 140, 140, 138, 139, 136, 134, 142, 140, 138, 148, 147, 139, 133, 129, 143, 138, 144, 138, 134, 139, 141, 140, 137, 142, 134, 137, 133, 139, 139, 134, 133, 138, 143, 138, 139, 140, 140, 141, 139, 140, 141, 140, 136, 142, 137, 136, 136, 138, 130, 140, 148, 139, 132, 133, 137, 141, 143, 144, 136, 138, 135, 139, 142, 141, 143, 142, 140, 134, 140, 141, 141, 133, 132, 135, 140, 140, 136, 138, 137, 141, 131, 141, 143, 135, 138, 139, 139, 143, 138, 142, 138, 134, 141, 149, 138, 142, 141, 146, 135, 131, 135, 139, 141, 143, 144, 134, 145, 134, 137, 141, 129, 135, 141, 133, 141, 134, 144, 137, 144, 143, 135, 142, 134, 144, 143, 135, 141, 151, 137, 145, 133, 140, 138, 140, 133, 140, 134, 138, 139, 131, 134, 132, 138, 142, 142, 137, 135, 137, 144, 139, 137, 146, 140, 134, 143, 132, 148, 139, 145, 146, 143, 145, 143, 135, 136, 135, 133, 141, 144, 132, 142, 142, 136, 135, 144, 134, 142, 135, 133, 138, 136, 144, 128, 134, 142, 145, 141, 135, 137, 137, 137, 139, 137, 142, 138, 142, 139, 136, 144, 134, 143, 137, 143, 139, 139, 135, 136, 141, 136, 139, 133, 144, 139, 135, 144, 137, 135, 143, 140, 136, 139, 136, 142, 136, 141, 135, 139, 137, 135, 138, 137, 145, 142, 140, 140, 138, 139, 137, 132, 139, 138, 137, 145, 139, 139, 133, 133, 143, 142, 137, 135, 140, 140, 139, 135, 132, 148, 137, 133, 145, 140, 142, 138, 134, 148, 138, 139, 137, 139, 136, 135, 144, 149, 128, 142, 140, 137, 138, 144, 138, 136, 133, 139, 137, 137, 141, 140, 139, 133, 141, 145, 147, 148, 137, 137, 135, 143, 142, 133, 137, 139, 139, 140, 133, 141, 148, 141, 139, 145, 142, 140, 142, 132, 139, 137, 131, 141, 132, 136, 135, 136, 137, 137, 135, 143, 136, 130, 128, 137, 138, 139, 143, 135, 142, 132, 138, 137, 145, 145, 139, 138, 140, 134, 135, 148, 134, 138, 132, 137, 140, 142, 146, 135, 140, 132, 134, 130, 134, 139, 138, 142, 135, 134, 140, 138, 139, 136, 134, 137, 138, 137, 143, 138, 133, 141, 133, 139, 150, 137, 139, 144, 139, 133, 139, 136, 141, 138, 137, 142, 138, 133, 140, 140, 138, 140, 144, 141, 131, 139, 135, 142, 135, 138, 137, 138, 139, 138, 139, 135, 141, 137, 137, 143, 130, 139, 141, 133, 133, 135, 147, 134, 141, 147, 131, 135, 140, 136, 145, 139, 135, 143, 140, 131, 132, 139, 134, 140, 136, 141, 132, 140, 138, 140, 142, 138, 137, 137, 140, 143, 132, 134, 146, 138, 138, 141, 144, 145, 142, 141, 136, 133, 138, 146, 141, 135, 128, 144, 130, 134, 138, 145, 147, 143, 137, 139, 138, 135, 140, 136, 142, 137, 128, 139, 139, 138, 142, 135, 141, 138, 141, 141, 142, 141, 141, 130, 143, 138, 133, 134, 132, 143, 140, 138, 149, 135, 140, 137, 136, 146, 138, 137, 142, 132, 136, 138, 137, 135, 132, 141, 138, 145, 137, 134, 138, 137, 139, 137, 140, 141, 140, 138, 143, 137, 136, 134, 137, 136, 136, 134, 132, 140, 135, 135, 133, 132, 139, 133, 147, 144, 139, 138, 138, 142, 141, 142, 138, 139, 131, 137, 147, 142, 141, 145, 140, 138, 124, 138, 131, 137, 133, 139, 139, 129, 143, 137, 131, 147, 144, 135, 132, 131, 139, 145, 139, 131, 145, 140, 137, 135, 139, 130, 147, 139, 138, 132, 141, 128, 139, 136, 136, 141, 139, 139, 133, 145, 145, 139, 138, 146, 133, 144, 135, 135, 141, 132, 144, 148, 140, 138, 132, 130, 137, 130, 134, 144, 142, 138, 140, 136, 145, 133, 147, 137, 136, 145, 139, 138, 137, 146, 139, 141, 137, 139, 145, 137, 143, 137, 141, 133, 148, 134, 137, 136, 141, 137, 136, 134, 141, 147, 135, 138, 134, 132, 134, 143, 137, 143, 146, 145, 138, 137, 146, 137, 145, 143, 157, 141, 147, 144, 143, 147, 140, 145, 145, 142, 144, 141, 144, 145, 141, 134, 144, 133, 133, 136, 147, 132, 133, 137, 139, 134, 135, 140, 152, 132, 138, 140, 142, 144, 143, 133, 143, 145, 126, 144, 135, 134, 140, 151, 135, 131, 144, 130, 132, 142, 137, 136, 140, 150, 142, 139, 131, 133, 129, 142, 145, 147, 140, 143, 127, 135, 144, 135, 133, 133, 135, 133, 138, 135, 144, 135, 146, 142, 142, 148, 135, 129, 138, 139, 137, 141, 135, 136, 142, 140, 136, 146, 137, 135, 140, 143, 137, 138, 142, 138, 125, 142, 138, 141, 135, 144, 129, 150, 142, 131, 139, 120, 137, 144, 138, 138, 139, 134, 134, 141, 130, 140, 128, 137, 134, 140, 142, 137, 140, 140, 153, 136, 132, 140, 136, 143, 143, 133, 138, 140, 153, 129, 129, 133, 142, 135, 130, 138, 131, 136, 141, 142, 142, 142, 133, 141, 130, 133, 129, 142, 140, 143, 142, 137, 139, 139, 133, 138, 134, 136, 134, 139, 138, 145, 134, 135, 141, 145, 139, 147, 143, 140, 144, 129, 123, 141, 143, 136, 132, 133, 137, 143, 132, 134, 146, 139, 139, 152, 134, 142, 148, 148, 144, 139, 141, 128, 139, 144, 126, 137, 153, 142, 139, 141, 132, 131, 136, 139, 135, 142, 139, 147, 142, 136, 132, 147, 140, 128, 141, 134, 142, 149, 132, 141, 133, 129, 137, 143, 145, 142, 133, 147, 145, 141, 137, 130, 136, 138, 145, 136, 127, 141, 135, 136, 137, 134, 144, 141, 140, 143, 145, 144, 146, 139, 148, 137, 146, 150, 145, 136, 135, 145, 143, 129, 131, 142, 127, 145, 151, 134, 135, 138, 132, 146, 136, 138, 133, 134, 136, 142, 140, 143, 143, 133, 147, 138, 139, 127, 123, 141, 134, 138, 139, 134, 130, 133, 148, 136, 141, 128, 149, 141, 136, 137, 134, 136, 131, 135, 139, 129, 155, 143, 140, 143, 135, 141, 134, 139, 140, 134, 135, 143, 129, 136, 143, 140, 137, 140, 138, 141, 143, 144, 141, 137, 136, 144, 134, 126, 145, 139, 145, 141, 131, 142, 138, 144, 134, 130, 141, 134, 136, 141, 142, 142, 139, 135, 128, 148, 146, 137, 136, 125, 138, 134, 127, 146, 141, 135, 134, 141, 132, 136, 134, 137, 135, 148, 138, 132, 143, 147, 143, 136, 142, 143, 135, 138, 144, 139, 136, 138, 147, 143, 117, 145, 144, 136, 127, 146, 145, 140, 153, 142, 136, 134, 129, 138, 144, 133, 139, 136, 134, 130, 139, 137, 138, 135, 132, 143, 140, 133, 131, 142, 146, 125, 137, 133, 138, 146, 134, 134, 139, 142, 134, 136, 136, 136, 146, 143, 132, 142, 131, 132, 133, 140, 142, 140, 138, 128, 143, 128, 143, 139, 140, 138, 139, 140, 131, 150, 141, 139, 140, 147, 145, 145, 145, 137, 132, 152, 138, 140, 130, 135, 114, 153, 135, 136, 137, 132, 137, 132, 140, 149, 136, 146, 141, 146, 137, 146, 132, 139, 137, 140, 141, 133, 140, 148, 131, 131, 141, 146, 131, 135, 133, 145, 137, 142, 138, 144, 131, 139, 136, 143, 138, 138, 137, 136, 147, 149, 132, 144, 140, 132, 141, 138, 138, 145, 139, 143, 139, 137, 130, 135, 135, 133, 135, 138, 138, 132, 142, 135, 130, 129, 140, 141, 139, 138, 132, 140, 136, 146, 132, 139, 139, 144, 143, 136, 137, 132, 142, 139, 147, 135, 140, 139, 133, 145, 135, 145, 139, 135, 138, 140, 137, 143, 144, 151, 135, 136, 143, 137, 138, 140, 146, 137, 140, 144, 135, 135, 142, 134, 138, 138, 135, 141, 136, 134, 139, 137, 135, 137, 138, 142, 146, 148, 139, 133, 131, 137, 138, 136, 142, 146, 131, 135, 144, 143, 141, 141, 131, 135, 132, 133, 152, 141, 143, 152, 133, 133, 138, 148, 132, 131, 140, 137, 147, 134, 140, 134, 140, 134, 135, 136, 136, 135, 135, 139, 136, 139, 135, 135, 138, 143, 135, 148, 136, 143, 144, 131, 135, 132, 133, 137, 144, 138, 139, 140, 137, 136, 141, 136, 141, 152, 138, 149, 145, 141, 135, 136, 141, 136, 145, 142, 136, 145, 141, 137, 140, 139, 135, 143, 135, 137, 134, 133, 139, 135, 135, 138, 129, 135, 135, 136, 142, 146, 138, 139, 133, 141, 142, 144, 141, 134, 147, 138, 138, 133, 137, 139, 142, 137, 144, 136, 132, 141, 141, 134, 140, 135, 143, 142, 135, 131, 131, 138, 135, 137, 142, 134, 136, 142, 136, 134, 138, 138, 145, 144, 141, 141, 140, 143, 141, 144, 143, 139, 139, 133, 139, 138, 141, 137, 137, 141, 135, 149, 135, 140, 125, 133, 140, 138, 138, 136, 135, 142, 118, 136, 149, 136, 136, 140, 132, 136, 143, 137, 145, 140, 135, 145, 146, 134, 138, 145, 148, 139, 132, 142, 140, 140, 138, 134, 143, 136, 147, 137, 140, 137, 132, 134, 132, 140, 137, 136, 135, 139, 145, 137, 141, 137, 137, 132, 140, 136, 138, 147, 140, 154, 136, 136, 149, 136, 147, 144, 140, 141, 138, 138, 139, 137, 139, 142, 135, 138, 140, 133, 141, 134, 138, 143, 137, 130, 137, 152, 147, 135, 144, 138, 137, 136, 125, 152, 142, 140, 138, 138, 131, 134, 134, 138, 134, 132, 134, 140, 140, 143, 134, 142, 138, 130, 138, 138, 145, 143, 143, 135, 141, 126, 148, 141, 135, 143, 134, 138, 146, 138, 138, 139, 144, 134, 130, 142, 130, 136, 144, 137, 136, 139, 138, 136, 148, 137, 131, 136, 139, 136, 157, 135, 132, 135, 140, 141, 138, 145, 128, 140, 140, 143, 144, 141, 130, 129, 135, 148, 137, 133, 137, 142, 143, 130, 133, 146, 122, 136, 150, 131, 138, 139, 144, 139, 140, 140, 139, 139, 142, 147, 140, 139, 145, 135, 131, 135, 146, 136, 141, 145, 137, 136, 139, 140, 136, 132, 128, 142, 143, 140, 139, 141, 138, 136, 146, 138, 134, 136, 134, 137, 139, 143, 131, 137, 142, 136, 143, 133, 136, 142, 144, 133, 138, 148, 141, 136, 142, 142, 136, 144, 134, 147, 153, 139, 129, 131, 136, 133, 146, 146, 139, 142, 145, 136, 142, 146, 147, 139, 145, 134, 135, 140, 142, 138, 128, 136, 136, 153, 136, 136, 135, 142, 138, 135, 138, 135, 140, 135, 141, 143, 133, 137, 144, 146, 128, 140, 142, 130, 132, 138, 137, 136, 137, 136, 136, 143, 146, 138, 141, 150, 135, 144, 140, 138, 141, 142, 136, 139, 129, 140, 138, 138, 141, 154, 132, 143, 134, 145, 140, 136, 135, 130, 141, 146, 128, 136, 131, 139, 138, 135, 140, 133, 141, 144, 138, 129, 135, 141, 148, 138, 133, 126, 141, 143, 138, 142, 140, 144, 140, 137, 135, 139, 134, 134, 143, 139, 149, 140, 133, 153, 139, 134, 136, 144, 143, 145, 138, 145, 144, 135, 141, 141, 148, 142, 146, 145, 141, 134, 136, 141, 132, 145, 134, 144, 139, 133, 129, 141, 148, 137, 131, 130, 135, 147, 140, 145, 132, 146, 147, 140, 143, 130, 139, 145, 131, 138, 134, 134, 142, 137, 141, 135, 135, 133, 134, 151, 134, 140, 155, 138, 143, 132, 143, 122, 146, 138, 136, 143, 138, 130, 133, 138, 142, 133, 142, 141, 132, 143, 143, 134, 142, 130, 126, 138, 135, 138, 145, 148, 130, 137, 135, 136, 136, 147, 144, 137, 135, 137, 140, 142, 137, 138, 126, 134, 138, 141, 129, 141, 140, 135, 143, 143, 143, 130, 137, 139, 131, 139, 139, 134, 141, 131, 141, 142, 147, 146, 148, 131, 141, 140, 140, 137, 151, 146, 131, 150, 135, 126, 137, 140, 140, 134, 141, 140, 149, 146, 137, 141, 142, 132, 145, 122, 143, 143, 137, 146, 142, 137, 133, 141, 152, 144, 143, 139, 135, 133, 141, 143, 129, 141, 139, 131, 128, 138, 149, 135, 134, 142, 129, 133, 134, 129, 149, 140, 144, 145, 130, 150, 139, 123, 135, 138, 135, 145, 137, 133, 142, 141, 134, 134, 139, 142, 134, 131, 145, 148, 133, 138, 130, 145, 139, 134, 142, 131, 143, 144, 134, 133, 135, 144, 139, 132, 144, 137, 126, 140, 144, 137, 130, 141, 136, 138, 136, 138, 141, 139, 136, 140, 136, 146, 137, 135, 135, 133, 130, 133, 138, 132, 144, 129, 145, 141, 133, 136, 149, 138, 125, 141, 144, 129, 151, 131, 139, 143, 139, 137, 142, 137, 148, 149, 134, 140, 137, 137, 139, 128, 137, 140, 138, 140, 143, 137, 141, 137, 134, 137, 141, 139, 147, 141, 151, 141, 138, 143, 134, 140, 150, 134, 140, 141, 141, 135, 139, 138, 138, 141, 138, 136, 129, 130, 129, 138, 146, 144, 137, 144, 141, 134, 144, 145, 137, 140, 142, 134, 141, 134, 136, 140, 132, 141, 138, 132, 147, 141, 139, 137, 136, 142, 133, 135, 139, 137, 137, 137, 141, 144, 141, 135, 145, 142, 137, 139, 134, 137, 134, 140, 140, 138, 145, 153, 138, 143, 139, 139, 134, 142, 143, 144, 136, 128, 140, 139, 146, 133, 135, 139, 144, 130, 131, 149, 138, 144, 133, 137, 134, 137, 140, 143, 137, 138, 138, 144, 143, 149, 135, 149, 146, 143, 148, 140, 147, 137, 139, 133, 135, 148, 140, 137, 139, 142, 135, 137, 141, 135, 146, 138, 152, 133, 136, 139, 140, 141, 135, 135, 143, 138, 134, 132, 131, 141, 139, 142, 141, 141, 135, 141, 139, 148, 141, 139, 143, 140, 137, 140, 141, 133, 147, 139, 147, 133, 142, 139, 133, 144, 144, 135, 143, 139, 139, 144, 130, 139, 141, 135, 141, 139, 141, 132, 136, 138, 141, 141, 132, 144, 138, 136, 141, 129, 130, 136, 140, 130, 141, 141, 130, 147, 139, 132, 141, 136, 147, 157, 128, 138, 139, 143, 131, 145, 136, 141, 140, 142, 139, 139, 137, 148, 142, 134, 121, 136, 132, 138, 144, 133, 137, 148, 141, 135, 134, 139, 144, 141, 130, 139, 139, 143, 138, 142, 138, 141, 141, 136, 135, 143, 137, 141, 142, 138, 143, 144, 135, 132, 145, 139, 140, 135, 139, 143, 120, 141, 144, 137, 133, 136, 141, 130, 131, 137, 150, 131, 136, 131, 142, 149, 140, 136, 138, 138, 147, 146, 143, 140, 136, 139, 143, 140, 135, 141, 141, 140, 138, 137, 143, 145, 139, 141, 135, 131, 139, 135, 139, 131, 134, 140, 138, 133, 144, 143, 144, 130, 135, 130, 129, 136, 137, 137, 137, 133, 143, 134, 141, 146, 138, 134, 135, 137, 141, 134, 146, 133, 140, 149, 134, 139, 130, 136, 137, 142, 143, 141, 133, 137, 137, 138, 131, 139, 139, 137, 137, 141, 137, 139, 137, 131, 142, 137, 132, 138, 141, 149, 135, 140, 140, 129, 135, 134, 152, 143, 146, 145, 140, 135, 134, 140, 140, 136, 140, 145, 128, 143, 139, 131, 139, 134, 139, 138, 135, 143, 149, 135, 141, 143, 141, 137, 133, 130, 142, 139, 132, 136, 147, 147, 144, 139, 134, 137, 142, 141, 149, 131, 132, 136, 130, 139, 137, 138, 139, 135, 144, 129, 138, 138, 134, 139, 133, 150, 137, 142, 135, 135, 136, 141, 137, 144, 143, 135, 138, 131, 137, 145, 136, 139, 143, 139, 137, 126, 144, 142, 133, 144, 136, 136, 133, 133, 142, 143, 141, 129, 134, 139, 141, 137, 135, 134, 135, 147, 140, 138, 140, 141, 142, 136, 133, 133, 150, 136, 138, 133, 137, 136, 147, 132, 129, 137, 142, 147, 138, 131, 135, 138, 136, 145, 139, 133, 139, 138, 134, 141, 133, 142, 138, 140, 141, 133, 136, 131, 134, 150, 139, 142, 137, 131, 143, 135, 140, 133, 137, 135, 140, 146, 136, 143, 142, 125, 135, 141, 143, 134, 136, 137, 133, 141, 135, 129, 139, 140, 133, 138, 140, 139, 136, 134, 137, 146, 132, 132, 135, 135, 149, 135, 137, 131, 142, 146, 135, 139, 136, 149, 148, 139, 144, 135, 145, 139, 144, 143, 137, 144, 134, 135, 138, 136, 140, 137, 144, 140, 129, 137, 145, 143, 138, 138, 141, 149, 136, 152, 133, 135, 142, 140, 135, 140, 157, 134, 126, 127, 142, 131, 138, 142, 127, 144, 132, 134, 131, 138, 147, 134, 138, 139, 133, 134, 141, 143, 147, 143, 138, 142, 135, 138, 137, 134, 128, 135, 131, 137, 140, 136, 138, 134, 141, 143, 133, 139, 138, 148, 141, 143, 135, 142, 145, 152, 137, 148, 137, 139, 150, 133, 133, 136, 137, 138, 136, 139, 147, 140, 137, 133, 137, 132, 144, 133, 142, 134, 134, 137, 134, 138, 134, 135, 138, 141, 136, 132, 136, 135, 140, 140, 139, 135, 132, 132, 139, 140, 136, 132, 135, 143, 128, 144, 137, 129, 133, 137, 139, 137, 135, 132, 141, 138, 131, 149, 141, 149, 137, 132, 142, 136, 130, 151, 145, 129, 137, 141, 141, 142, 143, 134, 143, 143, 139, 134, 134, 140, 128, 129, 135, 146, 131, 134, 132, 137, 140, 143, 145, 140, 143, 135, 136, 138, 136, 138, 128, 131, 144, 131, 134, 144, 135, 137, 143, 147, 150, 144, 137, 137, 146, 141, 141, 141, 137, 140, 137, 138, 134, 139, 134, 142, 142, 143, 141, 138, 144, 148, 136, 151, 142, 136, 135, 137, 140, 139, 139, 138, 141, 146, 138, 133, 145, 147, 141, 133, 139, 150, 149, 139, 140, 141, 143, 136, 137, 132, 138, 133, 135, 134, 139, 139, 137, 153, 139, 135, 141, 143, 139, 134, 144, 136, 144, 142, 143, 136, 134, 140, 148, 140, 141, 136, 139, 141, 137, 127, 137, 134, 138, 127, 132, 131, 141, 142, 131, 129, 131, 139, 144, 134, 139, 153, 141, 136, 140, 134, 129, 137, 135, 137, 146, 137, 133, 138, 134, 139, 133, 140, 138, 136, 142, 131, 136, 146, 143, 132, 143, 134, 132, 129, 135, 152, 142, 136, 133, 134, 140, 139, 139, 131, 135, 138, 134, 133, 132, 135, 130, 140, 146, 138, 133, 142, 136, 138, 130, 143, 141, 132, 127, 140, 144, 138, 136, 144, 128, 137, 142, 136, 132, 140, 142, 141, 135, 135, 144, 140, 143, 138, 143, 138, 143, 139, 140, 152, 139, 135, 136, 147, 134, 134, 140, 132, 145, 142, 151, 135, 139, 140, 137, 138, 139, 130, 139, 150, 144, 135, 133, 137, 137, 147, 141, 142, 144, 135, 138, 134, 137, 136, 135, 147, 138, 141, 135, 134, 139, 135, 136, 137, 137, 140, 133, 135, 141, 131, 131, 135, 136, 134, 139, 143, 142, 149, 137, 126, 142, 138, 143, 139, 138, 136, 138, 136, 140, 134, 131, 135, 154, 133, 141, 130, 135, 147, 131, 136, 141, 137, 132, 139, 138, 138, 135, 135, 140, 141, 139, 143, 147, 143, 145, 138, 146, 139, 146, 137, 131, 138, 156, 132, 141, 141, 135, 135, 146, 143, 146, 142, 144, 137, 141, 134, 138, 142, 137, 145, 133, 136, 139, 138, 130, 131, 142, 139, 139, 143, 138, 140, 144, 138, 149, 141, 132, 136, 138, 142, 131, 135, 137, 143, 137, 131, 129, 139, 144, 133, 143, 147, 138, 133, 146, 137, 141, 147, 138, 140, 139, 131, 138, 132, 139, 136, 147, 144, 135, 145, 138, 141, 137, 136, 141, 140, 139, 137, 138, 139, 139, 146, 138, 141, 139, 140, 145, 137, 141, 137, 136, 140, 138, 134, 140, 141, 141, 139, 138, 135, 136, 142, 139, 137, 138, 137, 142, 143, 141, 137, 103, 142, 142, 136, 136, 139, 140, 142, 137, 134, 137, 141, 141, 139, 143, 138, 138, 136, 142, 135, 138, 141, 142, 140, 141, 141, 140, 139, 141, 138, 138, 135, 141, 140, 138, 140, 177, 135, 142, 144, 139, 133, 136, 138, 140, 141, 142, 140, 142, 138, 145, 137, 137, 137, 139, 187, 138, 137, 139, 137, 139, 142, 139, 140, 137, 138, 140, 137, 143, 136, 140, 131, 141, 136, 134, 135, 139, 140, 137, 138, 140, 139, 139, 137, 142, 133, 140, 139, 136, 141, 140, 143, 132, 138, 140, 141, 140, 140, 141, 141, 135, 137, 138, 139, 141, 139, 139, 139, 143, 135, 138, 137, 139, 136, 137, 136, 143, 141, 138, 137, 139, 142, 143, 136, 141, 140, 139, 138, 141, 141, 141, 138, 138, 138, 137, 139, 139, 138, 138, 135, 137, 139, 141, 138, 137, 135, 135, 137, 141, 137, 140, 139, 138, 142, 137, 141, 137, 139, 137, 136, 137, 138, 139, 139, 140, 140, 135, 140, 140, 138, 136, 139, 137, 140, 137, 140, 140, 137, 137, 139, 138, 140, 140, 143, 141, 140, 139, 138, 141, 139, 144, 137, 138, 137, 141, 138, 140, 139, 138, 143, 137, 140, 138, 137, 137, 138, 140, 140, 138, 135, 138, 141, 134, 139, 140, 139, 137, 136, 140, 138, 139, 141, 139, 137, 138, 139, 137, 139, 138, 143, 137, 140, 138, 141, 140, 108, 124, 140, 140, 138, 141, 138, 137, 137, 138, 139, 136, 126, 142, 139, 141, 133, 141, 137, 168, 140, 138, 142, 140, 137, 138, 136, 139, 139, 139, 138, 136, 134, 141, 139, 138, 139, 139, 178, 139, 134, 140, 139, 136, 144, 134, 137, 140, 139, 137, 140, 144, 139, 136, 138, 140, 139, 142, 139, 142, 139, 140, 139, 140, 136, 136, 138, 139, 142, 143, 135, 141, 139, 138, 140, 140, 139, 137, 134, 138, 140, 139, 141, 139, 140, 143, 144, 138, 139, 138, 145, 141, 135, 141, 141, 140, 134, 136, 136, 140, 138, 138, 138, 140, 140, 137, 140, 143, 142, 141, 140, 140, 141, 144, 140, 142, 140, 139, 123, 141, 140, 139, 138, 138, 140, 134, 142, 141, 142, 137, 139, 145, 129, 137, 142, 136, 135, 140, 141, 141, 138, 138, 143, 102, 138, 138, 141, 142, 139, 138, 143, 139, 138, 137, 140, 140, 139, 139, 142, 140, 141, 139, 139, 141, 140, 135, 140, 139, 138, 138, 140, 129, 137, 142, 134, 136, 143, 137, 143, 135, 140, 137, 137, 141, 140, 138, 139, 140, 144, 139, 136, 138, 139, 139, 137, 136, 140, 138, 145, 140, 139, 139, 137, 140, 142, 138, 138, 136, 140, 140, 138, 139, 141, 139, 137, 138, 138, 141, 140, 141, 140, 139, 143, 138, 137, 138, 134, 140, 139, 138, 139, 137, 138, 140, 154, 138, 137, 138, 139, 141, 137, 141, 139, 138, 140, 139, 138, 134, 133, 130, 136, 134, 140, 142, 140, 128, 134, 138, 140, 143, 141, 138, 138, 142, 142, 141, 137, 138, 137, 140, 134, 141, 142, 142, 139, 133, 141, 141, 145, 137, 139, 140, 137, 137, 133, 135, 148, 134, 148, 144, 143, 140, 141, 134, 143, 137, 143, 137, 132, 138, 136, 152, 141, 143, 136, 138, 142, 142, 139, 131, 141, 130, 138, 131, 134, 134, 134, 142, 129, 145, 137, 149, 143, 136, 139, 133, 146, 137, 144, 135, 143, 128, 149, 142, 139, 136, 143, 136, 144, 142, 149, 144, 138, 146, 133, 139, 133, 127, 144, 137, 147, 140, 136, 133, 142, 137, 146, 136, 130, 137, 138, 142, 127, 142, 142, 135, 145, 143, 140, 143, 150, 135, 138, 142, 137, 147, 142, 144, 136, 150, 133, 133, 138, 148, 135, 139, 142, 144, 135, 138, 138, 137, 132, 136, 138, 139, 136, 145, 143, 142, 139, 142, 137, 134, 136, 133, 136, 138, 140, 138, 132, 142, 138, 139, 141, 137, 138, 136, 132, 149, 139, 135, 135, 135, 137, 140, 136, 132, 139, 132, 152, 142, 128, 140, 146, 137, 139, 142, 145, 134, 148, 135, 131, 139, 128, 146, 144, 138, 145, 137, 144, 138, 138, 139, 145, 137, 132, 140, 137, 141, 149, 144, 138, 144, 135, 135, 135, 134, 139, 136, 141, 141, 138, 142, 143, 146, 144, 133, 143, 134, 138, 139, 143, 135, 136, 131, 135, 131, 137, 136, 137, 142, 136, 151, 139, 140, 133, 138, 132, 127, 141, 139, 137, 141, 143, 133, 135, 136, 144, 140, 140, 135, 148, 142, 142, 139, 140, 139, 144, 143, 140, 142, 148, 140, 125, 139, 144, 141, 141, 132, 138, 137, 130, 132, 133, 133, 136, 135, 138, 146, 135, 143, 141, 137, 140, 141, 137, 130, 142, 130, 146, 144, 137, 139, 139, 138, 137, 138, 134, 143, 148, 137, 131, 144, 136, 139, 141, 148, 139, 131, 146, 142, 136, 134, 138, 151, 145, 143, 136, 137, 135, 138, 134, 144, 137, 133, 138, 135, 146, 141, 138, 127, 145, 138, 137, 140, 134, 137, 146, 139, 138, 131, 135, 135, 137, 141, 141, 139, 137, 144, 144, 140, 145, 146, 142, 134, 135, 142, 146, 138, 140, 138, 141, 142, 144, 146, 137, 132, 139, 147, 135, 138, 152, 142, 141, 137, 135, 143, 143, 139, 144, 139, 142, 138, 137, 146, 143, 141, 137, 144, 144, 141, 136, 134, 143, 135, 143, 142, 140, 145, 139, 141, 142, 132, 146, 134, 140, 138, 137, 136, 138, 132, 141, 139, 134, 129, 148, 141, 143, 136, 136, 149, 139, 137, 145, 136, 140, 137, 136, 129, 135, 133, 135, 150, 141, 137, 132, 140, 144, 137, 155, 138, 134, 136, 133, 138, 141, 137, 135, 133, 137, 137, 138, 138, 143, 138, 138, 139, 139, 130, 142, 134, 134, 138, 139, 137, 141, 140, 134, 131, 135, 140, 143, 137, 137, 144, 139, 135, 133, 139, 143, 145, 144, 130, 139, 137, 143, 140, 140, 141, 134, 138, 134, 137, 143, 147, 133, 140, 143, 135, 141, 146, 139, 136, 145, 136, 135, 132, 139, 142, 134, 144, 139, 140, 139, 133, 142, 139, 140, 136, 137, 136, 134, 141, 135, 143, 135, 142, 140, 143, 134, 141, 135, 136, 146, 148, 138, 145, 139, 136, 128, 138, 135, 139, 136, 138, 138, 141, 144, 131, 134, 136, 139, 137, 137, 141, 142, 139, 144, 136, 138, 147, 138, 133, 134, 139, 133, 146, 136, 144, 140, 139, 148, 136, 142, 138, 140, 135, 146, 143, 127, 137, 130, 128, 142, 142, 136, 144, 142, 141, 139, 142, 132, 136, 139, 141, 137, 141, 136, 142, 136, 139, 138, 139, 138, 143, 151, 143, 142, 144, 142, 144, 135, 138, 136, 141, 139, 148, 139, 136, 142, 134, 141, 147, 144, 133, 143, 144, 134, 147, 145, 121, 136, 139, 130, 135, 135, 143, 142, 143, 139, 136, 137, 144, 132, 130, 137, 140, 140, 143, 143, 142, 137, 142, 137, 139, 139, 134, 139, 135, 135, 141, 139, 141, 139, 144, 136, 139, 137, 132, 144, 135, 142, 133, 140, 140, 142, 145, 109, 145, 139, 140, 136, 142, 137, 146, 140, 139, 136, 134, 143, 133, 140, 141, 140, 127, 141, 133, 134, 139, 138, 141, 141, 145, 132, 139, 140, 140, 132, 143, 141, 145, 137, 138, 139, 139, 131, 138, 149, 138, 138, 141, 137, 138, 138, 118, 139, 140, 141, 140, 140, 143, 137, 135, 139, 127, 139, 136, 147, 142, 136, 143, 139, 148, 136, 139, 134, 132, 139, 142, 144, 139, 141, 135, 137, 138, 146, 145, 141, 131, 137, 138, 140, 139, 137, 134, 134, 134, 140, 137, 127, 140, 141, 137, 137, 136, 136, 140, 146, 150, 138, 139, 140, 141, 137, 133, 133, 139, 133, 143, 145, 146, 142, 141, 139, 136, 140, 140, 142, 133, 138, 138, 144, 133, 142, 135, 135, 136, 142, 132, 139, 139, 131, 140, 150, 132, 137, 141, 133, 138, 140, 132, 144, 133, 128, 154, 135, 147, 141, 142, 139, 140, 135, 141, 131, 138, 138, 132, 140, 138, 134, 139, 140, 138, 140, 144, 135, 137, 137, 140, 138, 128, 138, 137, 145, 139, 135, 138, 141, 132, 135, 135, 131, 134, 136, 129, 135, 143, 137, 137, 130, 141, 133, 139, 142, 150, 137, 141, 143, 140, 136, 141, 136, 142, 141, 137, 136, 143, 136, 143, 138, 140, 137, 147, 134, 142, 134, 140, 144, 139, 139, 140, 135, 139, 145, 135, 139, 137, 136, 141, 139, 142, 134, 134, 137, 131, 141, 139, 136, 128, 147, 139, 130, 138, 139, 137, 138, 138, 133, 141, 143, 142, 141, 134, 135, 143, 140, 143, 143, 135, 128, 142, 134, 139, 145, 141, 137, 135, 141, 143, 153, 145, 134, 138, 147, 137, 138, 131, 145, 140, 138, 134, 138, 147, 141, 140, 150, 133, 147, 141, 134, 142, 141, 129, 132, 134, 139, 132, 137, 137, 137, 139, 140, 133, 140, 140, 133, 145, 142, 132, 142, 147, 143, 139, 136, 137, 139, 135, 143, 135, 138, 141, 139, 144, 140, 134, 133, 144, 136, 129, 137, 135, 124, 127, 140, 149, 141, 156, 137, 154, 124, 124, 149, 127, 136, 148, 145, 136, 145, 140, 133, 152, 140, 152, 139, 136, 145, 137, 147, 140, 133, 143, 164, 152, 148, 150, 133, 146, 144, 146, 139, 136, 155, 150, 142, 135, 135, 145, 140, 139, 134, 133, 131, 138, 137, 130, 128, 143, 137, 132, 128, 140, 144, 148, 140, 131, 145, 140, 141, 130, 134, 139, 123, 134, 138, 135, 137, 134, 142, 152, 139, 143, 136, 137, 141, 133, 133, 151, 133, 127, 137, 136, 133, 128, 146, 138, 139, 134, 148, 140, 143, 145, 141, 132, 144, 138, 126, 149, 140, 139, 136, 127, 137, 143, 140, 132, 134, 144, 151, 146, 154, 150, 149, 142, 122, 138, 127, 128, 145, 139, 126, 129, 161, 136, 151, 134, 143, 137, 146, 153, 135, 141, 154, 127, 138, 128, 142, 148, 143, 134, 139, 139, 134, 149, 146, 138, 129, 142, 138, 143, 141, 134, 131, 138, 131, 135, 145, 138, 141, 135, 134, 136, 137, 129, 123, 126, 138, 138, 133, 135, 147, 131, 132, 144, 132, 128, 149, 127, 139, 133, 143, 132, 130, 145, 135, 134, 135, 150, 133, 139, 140, 137, 137, 126, 139, 132, 140, 133, 131, 143, 132, 122, 131, 137, 135, 136, 139, 124, 143, 141, 131, 137, 135, 150, 135, 130, 141, 137, 125, 138, 127, 144, 130, 135, 134, 138, 136, 142, 141, 130, 141, 146, 165, 129, 143, 129, 141, 139, 149, 144, 131, 124, 145, 130, 137, 143, 139, 137, 136, 126, 142, 130, 136, 132, 134, 136, 126, 138, 134, 142, 127, 144, 145, 140, 134, 138, 127, 130, 148, 133, 139, 132, 140, 136, 127, 138, 143, 148, 125, 133, 149, 159, 146, 135, 140, 151, 138, 139, 136, 144, 122, 139, 135, 130, 144, 131, 143, 132, 129, 141, 139, 137, 140, 139, 129, 127, 146, 141, 134, 142, 129, 138, 143, 138, 137, 134, 143, 143, 147, 145, 137, 145, 133, 148, 144, 131, 133, 136, 144, 157, 149, 135, 134, 133, 125, 136, 141, 129, 144, 143, 149, 115, 136, 141, 139, 140, 141, 147, 132, 115, 153, 136, 136, 137, 135, 135, 149, 133, 136, 139, 142, 141, 126, 136, 139, 130, 132, 145, 121, 135, 130, 134, 130, 131, 129, 138, 128, 132, 139, 145, 133, 137, 141, 140, 138, 139, 137, 135, 139, 138, 120, 130, 143, 154, 150, 124, 144, 156, 140, 139, 117, 143, 130, 139, 139, 130, 138, 133, 128, 143, 144, 139, 138, 142, 142, 141, 141, 152, 141, 142, 154, 160, 137, 142, 142, 132, 140, 141, 142, 122, 151, 146, 137, 139, 134, 146, 147, 132, 140, 130, 133, 134, 132, 138, 130, 129, 148, 124, 139, 125, 140, 153, 146, 139, 151, 138, 147, 141, 140, 132, 137, 131, 141, 132, 148, 135, 144, 128, 139, 138, 133, 140, 138, 135, 123, 131, 157, 121, 134, 139, 130, 135, 142, 144, 131, 144, 134, 133, 144, 145, 139, 132, 135, 140, 139, 142, 152, 146, 131, 143, 137, 132, 143, 144, 129, 135, 134, 140, 141, 147, 136, 147, 145, 146, 134, 135, 138, 136, 141, 146, 138, 142, 148, 152, 142, 132, 134, 128, 138, 133, 138, 135, 135, 137, 137, 139, 131, 132, 139, 143, 125, 140, 150, 143, 149, 143, 140, 137, 138, 148, 137, 145, 148, 135, 127, 144, 145, 138, 129, 139, 149, 144, 140, 135, 142, 137, 147, 137, 143, 141, 146, 143, 138, 146, 131, 132, 134, 140, 145, 149, 147, 141, 131, 142, 131, 144, 129, 147, 133, 135, 136, 142, 139, 141, 141, 132, 133, 145, 141, 128, 136, 134, 140, 151, 133, 132, 129, 136, 135, 136, 128, 131, 139, 134, 138, 147, 142, 144, 134, 140, 140, 134, 134, 143, 133, 140, 136, 132, 142, 152, 139, 136, 143, 152, 135, 135, 136, 134, 150, 146, 134, 140, 141, 138, 131, 137, 134, 137, 143, 127, 142, 127, 151, 142, 137, 141, 134, 136, 138, 150, 142, 146, 144, 138, 141, 139, 142, 135, 143, 153, 134, 145, 146, 137, 132, 141, 146, 138, 138, 134, 154, 143, 132, 138, 139, 129, 140, 142, 145, 140, 154, 136, 139, 138, 134, 141, 143, 133, 137, 131, 134, 145, 147, 132, 141, 148, 128, 150, 141, 134, 134, 148, 135, 132, 140, 143, 135, 134, 145, 144, 133, 137, 137, 150, 139, 138, 139, 140, 133, 132, 148, 140, 133, 142, 131, 139, 144, 135, 135, 130, 139, 135, 147, 130, 139, 133, 133, 138, 141, 132, 135, 144, 138, 140, 145, 144, 141, 143, 135, 133, 134, 130, 139, 133, 132, 137, 145, 132, 138, 137, 138, 133, 134, 141, 136, 140, 142, 128, 135, 143, 139, 134, 139, 132, 137, 134, 135, 136, 141, 134, 136, 131, 141, 133, 136, 132, 138, 140, 137, 142, 141, 135, 138, 132, 142, 128, 138, 136, 138, 134, 134, 143, 141, 136, 140, 138, 131, 137, 151, 148, 143, 133, 134, 134, 142, 133, 132, 145, 139, 141, 130, 138, 141, 133, 136, 143, 138, 131, 127, 145, 146, 141, 134, 140, 139, 135, 136, 142, 133, 139, 139, 136, 132, 131, 141, 144, 150, 130, 137, 142, 143, 142, 151, 144, 136, 139, 139, 140, 135, 150, 135, 135, 132, 146, 135, 147, 133, 130, 145, 144, 141, 134, 129, 134, 137, 131, 141, 134, 140, 135, 141, 133, 134, 135, 128, 143, 146, 137, 153, 144, 147, 140, 149, 138, 137, 137, 136, 151, 152, 129, 144, 137, 132, 124, 141, 143, 139, 139, 134, 142, 140, 148, 135, 141, 131, 136, 148, 139, 136, 129, 132, 136, 139, 152, 137, 133, 133, 135, 141, 138, 136, 157, 134, 151, 144, 143, 145, 137, 144, 141, 147, 139, 139, 139, 140, 135, 140, 131, 145, 139, 142, 130, 135, 138, 144, 136, 143, 137, 146, 148, 144, 130, 154, 137, 125, 140, 139, 131, 128, 135, 143, 135, 140, 136, 142, 142, 134, 129, 143, 130, 134, 143, 135, 136, 142, 136, 133, 133, 144, 133, 149, 135, 134, 129, 141, 131, 137, 140, 140, 144, 136, 139, 147, 146, 132, 136, 134, 135, 136, 139, 138, 142, 129, 139, 136, 144, 143, 138, 139, 150, 141, 144, 138, 141, 142, 136, 144, 144, 148, 133, 127, 143, 132, 132, 132, 138, 135, 146, 138, 139, 142, 143, 140, 141, 133, 134, 141, 139, 126, 134, 135, 130, 141, 129, 138, 139, 137, 141, 150, 144, 147, 131, 139, 137, 141, 139, 138, 154, 142, 133, 134, 139, 140, 134, 137, 138, 148, 139, 139, 131, 146, 139, 158, 135, 135, 138, 133, 141, 135, 133, 141, 135, 134, 141, 143, 143, 144, 141, 130, 135, 133, 140, 131, 137, 143, 143, 144, 139, 137, 143, 137, 138, 138, 137, 135, 143, 140, 139, 139, 148, 141, 143, 138, 154, 147, 139, 138, 131, 144, 137, 145, 135, 135, 142, 141, 141, 147, 142, 136, 131, 142, 137, 134, 138, 140, 143, 147, 145, 131, 134, 142, 131, 134, 133, 145, 138, 136, 129, 139, 144, 146, 143, 132, 142, 140, 142, 136, 142, 145, 147, 135, 147, 136, 132, 137, 136, 139, 140, 148, 132, 139, 142, 138, 134, 141, 131, 138, 139, 137, 138, 134, 132, 140, 138, 140, 138, 140, 140, 134, 139, 141, 137, 130, 140, 144, 144, 143, 140, 143, 134, 143, 137, 146, 137, 140, 134, 143, 139, 136, 153, 137, 141, 147, 141, 145, 136, 138, 136, 135, 143, 136, 136, 140, 138, 141, 148, 133, 133, 142, 150, 140, 147, 145, 126, 142, 135, 149, 145, 143, 143, 139, 140, 146, 129, 142, 126, 132, 149, 144, 139, 135, 144, 134, 151, 136, 131, 135, 144, 141, 141, 141, 137, 137, 135, 137, 138, 146, 139, 137, 145, 145, 140, 143, 135, 135, 137, 135, 137, 137, 142, 144, 135, 136, 140, 140, 142, 145, 146, 140, 140, 138, 145, 147, 140, 134, 136, 138, 140, 139, 132, 142, 143, 131, 131, 135, 138, 151, 130, 139, 139, 137, 130, 141, 141, 140, 137, 136, 140, 143, 138, 137, 142, 137, 135, 145, 139, 135, 133, 138, 144, 137, 142, 148, 131, 140, 139, 137, 137, 127, 140, 139, 147, 142, 141, 134, 144, 139, 138, 141, 147, 143, 135, 133, 142, 141, 138, 133, 140, 147, 131, 138, 136, 138, 128, 131, 134, 139, 141, 134, 141, 140, 141, 135, 140, 139, 135, 145, 135, 138, 139, 131, 140, 138, 129, 138, 131, 143, 138, 141, 141, 136, 138, 134, 150, 133, 136, 135, 140, 137, 145, 133, 139, 135, 140, 137, 138, 138, 150, 135, 133, 132, 135, 139, 138, 140, 140, 144, 137, 137, 132, 145, 138, 138, 134, 138, 137, 134, 134, 132, 140, 132, 144, 135, 141, 140, 139, 138, 152, 131, 139, 135, 143, 138, 141, 140, 138, 149, 139, 140, 139, 149, 138, 138, 134, 134, 146, 128, 141, 140, 142, 137, 135, 143, 136, 140, 138, 143, 132, 140, 138, 147, 136, 127, 147, 141, 139, 143, 143, 140, 143, 135, 136, 145, 134, 136, 140, 140, 148, 144, 135, 136, 137, 142, 143, 134, 140, 144, 133, 137, 137, 129, 138, 135, 135, 133, 142, 139, 125, 121, 137, 132, 142, 138, 144, 143, 140, 136, 144, 138, 139, 141, 136, 135, 134, 139, 135, 141, 141, 141, 140, 145, 135, 134, 132, 129, 137, 133, 140, 142, 129, 147, 150, 133, 143, 143, 136, 141, 134, 143, 136, 134, 143, 140, 139, 141, 138, 139, 134, 135, 144, 132, 140, 135, 142, 154, 139, 137, 130, 141, 132, 149, 139, 146, 139, 134, 143, 135, 137, 138, 138, 141, 138, 137, 147, 147, 144, 136, 135, 145, 141, 148, 132, 142, 131, 125, 149, 132, 135, 128, 148, 139, 141, 139, 138, 139, 135, 138, 142, 145, 139, 135, 134, 151, 146, 138, 137, 138, 139, 151, 137, 135, 142, 138, 140, 133, 134, 134, 136, 131, 141, 139, 140, 145, 132, 140, 139, 134, 139, 137, 138, 142, 135, 132, 144, 142, 140, 139, 140, 133, 140, 130, 138, 154, 139, 131, 131, 132, 135, 138, 135, 138, 131, 134, 136, 146, 135, 137, 150, 140, 144, 143, 137, 137, 147, 140, 134, 137, 136, 143, 136, 144, 145, 127, 143, 140, 135, 150, 137, 141, 141, 136, 130, 138, 135, 138, 133, 139, 142, 133, 151, 139, 146, 137, 139, 138, 133, 142, 135, 147, 140, 143, 140, 143, 133, 146, 137, 138, 138, 142, 134, 135, 137, 128, 138, 128, 145, 141, 139, 140, 140, 147, 136, 137, 135, 140, 132, 139, 146, 137, 133, 136, 133, 143, 139, 143, 137, 141, 136, 131, 149, 141, 138, 135, 138, 133, 138, 146, 135, 141, 148, 141, 131, 133, 134, 138, 136, 139, 139, 138, 133, 126, 139, 138, 134, 142, 135, 134, 136, 143, 132, 147, 136, 141, 134, 132, 146, 133, 144, 137, 144, 136, 139, 142, 123, 132, 134, 136, 121, 142, 139, 144, 139, 141, 132, 139, 142, 139, 137, 141, 141, 139, 141, 134, 138, 133, 150, 137, 142, 140, 135, 134, 132, 138, 148, 143, 149, 146, 132, 135, 129, 135, 142, 128, 133, 133, 138, 137, 137, 137, 145, 141, 137, 137, 133, 137, 142, 134, 130, 137, 141, 146, 143, 141, 143, 139, 136, 135, 134, 144, 141, 133, 131, 139, 132, 141, 140, 138, 142, 139, 135, 135, 139, 138, 133, 145, 140, 139, 133, 141, 138, 147, 141, 130, 136, 148, 140, 142, 131, 143, 138, 135, 133, 140, 146, 135, 135, 149, 144, 130, 130, 142, 149, 142, 138, 135, 125, 141, 137, 137, 138, 141, 142, 128, 134, 138, 141, 140, 148, 128, 134, 142, 134, 137, 145, 143, 131, 137, 134, 134, 151, 149, 139, 135, 137, 143, 134, 139, 142, 125, 131, 143, 142, 138, 139, 134, 140, 147, 140, 141, 145, 124, 139, 135, 144, 140, 132, 131, 141, 140, 142, 143, 150, 149, 143, 137, 140, 125, 138, 136, 136, 139, 140, 138, 133, 154, 143, 134, 127, 137, 140, 134, 140, 138, 141, 139, 141, 142, 135, 140, 136, 139, 146, 136, 146, 135, 139, 136, 135, 142, 134, 137, 140, 140, 132, 148, 142, 142, 138, 140, 143, 142, 143, 138, 131, 138, 140, 137, 133, 146, 146, 145, 124, 133, 139, 146, 146, 133, 139, 131, 134, 146, 137, 141, 144, 149, 138, 134, 143, 143, 135, 135, 144, 136, 126, 135, 135, 142, 138, 141, 146, 140, 146, 127, 147, 139, 132, 136, 133, 145, 143, 148, 141, 137, 134, 133, 144, 147, 135, 138, 131, 144, 161, 133, 148, 118, 140, 129, 139, 132, 140, 161, 138, 134, 120, 145, 140, 142, 141, 139, 142, 136, 136, 148, 144, 139, 140, 146, 143, 158, 147, 152, 143, 159, 143, 141, 128, 130, 145, 139, 131, 137, 132, 144, 149, 139, 143, 150, 149, 141, 145, 133, 146, 156, 125, 132, 145, 134, 132, 164, 126, 142, 138, 139, 135, 139, 130, 138, 153, 138, 138, 146, 134, 154, 128, 146, 148, 132, 132, 135, 145, 132, 146, 134, 145, 142, 133, 142, 137, 145, 133, 150, 134, 145, 150, 138, 156, 133, 131, 138, 137, 147, 135, 132, 143, 136, 138, 143, 144, 129, 143, 119, 142, 132, 138, 136, 144, 133, 133, 137, 139, 146, 151, 129, 135, 142, 143, 143, 140, 143, 133, 149, 130, 142, 134, 120, 150, 124, 141, 145, 132, 141, 141, 142, 134, 136, 139, 136, 135, 120, 131, 139, 138, 137, 138, 146, 133, 136, 142, 130, 137, 142, 135, 134, 138, 138, 137, 136, 139, 145, 147, 133, 130, 139, 134, 141, 130, 139, 141, 151, 143, 139, 142, 144, 133, 132, 145, 138, 138, 123, 144, 141, 137, 141, 147, 143, 140, 140, 138, 138, 140, 140, 148, 143, 150, 159, 130, 150, 138, 139, 132, 139, 141, 133, 147, 143, 133, 137, 137, 144, 147, 146, 134, 153, 134, 133, 131, 142, 134, 141, 133, 139, 139, 143, 142, 137, 151, 140, 147, 125, 135, 141, 145, 141, 143, 161, 155, 142, 138, 137, 148, 140, 141, 138, 141, 137, 138, 132, 143, 140, 136, 128, 151, 139, 135, 138, 145, 129, 137, 138, 138, 147, 142, 139, 145, 138, 147, 137, 134, 140, 140, 132, 145, 141, 139, 143, 140, 130, 131, 138, 134, 143, 145, 135, 125, 154, 133, 131, 137, 142, 143, 138, 154, 138, 138, 136, 141, 132, 143, 147, 139, 142, 137, 131, 144, 152, 143, 134, 134, 144, 125, 137, 140, 130, 142, 136, 138, 136, 137, 138, 130, 144, 137, 147, 142, 139, 137, 118, 133, 139, 145, 142, 146, 131, 139, 132, 131, 150, 139, 142, 143, 136, 137, 135, 147, 135, 141, 132, 141, 145, 129, 146, 145, 140, 125, 143, 140, 151, 138, 132, 144, 145, 133, 138, 144, 150, 156, 132, 120, 146, 133, 148, 130, 139, 131, 127, 144, 134, 151, 135, 128, 138, 141, 136, 140, 145, 133, 133, 139, 140, 132, 138, 149, 139, 134, 143, 133, 137, 136, 140, 136, 141, 133, 137, 131, 138, 131, 135, 157, 132, 145, 153, 148, 148, 134, 133, 139, 132, 135, 142, 128, 141, 132, 142, 145, 137, 132, 135, 137, 143, 136, 145, 138, 145, 141, 142, 134, 144, 139, 145, 141, 146, 140, 141, 133, 142, 136, 133, 148, 139, 124, 134, 146, 141, 130, 143, 137, 143, 137, 136, 149, 135, 142, 141, 141, 138, 123, 135, 128, 146, 131, 142, 141, 146, 134, 139, 137, 141, 149, 150, 143, 150, 137, 137, 130, 137, 138, 141, 126, 130, 126, 141, 143, 130, 144, 136, 137, 150, 130, 141, 147, 146, 139, 139, 146, 143, 141, 135, 126, 143, 132, 139, 132, 141, 140, 138, 122, 151, 138, 135, 134, 138, 134, 136, 140, 142, 145, 132, 132, 136, 142, 141, 136, 143, 136, 141, 146, 146, 154, 148, 135, 142, 144, 139, 144, 139, 141, 145, 149, 133, 145, 132, 141, 134, 132, 156, 138, 144, 150, 144, 140, 151, 137, 135, 140, 133, 140, 137, 144, 144, 137, 140, 131, 138, 136, 145, 137, 133, 132, 134, 140, 137, 137, 137, 139, 132, 141, 125, 134, 127, 140, 141, 138, 134, 143, 129, 135, 153, 142, 145, 158, 156, 141, 134, 138, 141, 121, 138, 141, 133, 136, 133, 134, 132, 136, 145, 136, 143, 145, 141, 140, 133, 124, 125, 149, 146, 147, 141, 149, 137, 140, 147, 133, 140, 125, 151, 145, 147, 134, 140, 140, 141, 131, 135, 153, 130, 128, 137, 154, 146, 138, 141, 144, 134, 137, 139, 134, 136, 134, 138, 146, 152, 143, 150, 137, 155, 141, 153, 132, 141, 147, 134, 147, 139, 147, 135, 135, 135, 140, 135, 150, 143, 138, 138, 139, 141, 143, 154, 133, 146, 137, 135, 148, 139, 137, 141, 146, 143, 139, 143, 142, 136, 147, 142, 141, 141, 133, 120, 131, 137, 135, 141, 135, 144, 130, 145, 140, 141, 140, 132, 135, 148, 128, 145, 139, 140, 136, 144, 132, 142, 139, 131, 135, 130, 135, 139, 139, 138, 141, 147, 135, 134, 143, 142, 144, 136, 143, 144, 144, 134, 140, 141, 145, 138, 153, 138, 146, 126, 138, 128, 146, 153, 138, 144, 141, 138, 138, 136, 132, 141, 135, 132, 145, 138, 153, 139, 144, 145, 137, 135, 132, 141, 141, 134, 140, 140, 144, 132, 138, 133, 131, 150, 134, 145, 148, 141, 148, 138, 133, 143, 132, 137, 149, 121, 137, 156, 138, 138, 144, 139, 125, 138, 139, 137, 137, 156, 136, 135, 144, 135, 138, 146, 135, 145, 144, 151, 136, 144, 134, 126, 134, 147, 140, 139, 117, 138, 143, 149, 137, 141, 147, 141, 136, 144, 131, 137, 143, 142, 142, 136, 134, 130, 139, 144, 146, 140, 143, 149, 133, 139, 139, 149, 137, 138, 135, 130, 139, 127, 139, 143, 139, 136, 143, 144, 132, 125, 140, 156, 144, 139, 152, 143, 138, 144, 132, 145, 133, 135, 149, 136, 136, 133, 130, 145, 141, 137, 135, 144, 131, 143, 146, 149, 134, 137, 144, 133, 130, 128, 148, 143, 145, 150, 121, 136, 134, 143, 136, 140, 140, 134, 139, 137, 141, 132, 138, 139, 146, 143, 146, 131, 141, 145, 135, 141, 153, 140, 137, 143, 133, 146, 150, 136, 137, 145, 147, 137, 138, 143, 130, 129, 142, 144, 155, 142, 139, 140, 129, 149, 136, 144, 141, 143, 136, 141, 138, 136, 152, 130, 130, 146, 144, 135, 141, 137, 130, 135, 143, 145, 147, 142, 137, 142, 143, 142, 129, 149, 134, 140, 136, 140, 134, 131, 136, 141, 145, 142, 133, 143, 145, 126, 136, 145, 135, 144, 131, 137, 137, 142, 148, 134, 136, 129, 140, 138, 129, 135, 133, 144, 141, 140, 141, 138, 125, 146, 135, 133, 130, 136, 121, 144, 141, 137, 132, 135, 131, 142, 132, 137, 140, 133, 140, 138, 137, 132, 140, 151, 136, 136, 127, 146, 137, 136, 138, 136, 138, 142, 143, 142, 147, 142, 142, 134, 142, 137, 118, 134, 146, 139, 135, 137, 142, 131, 136, 137, 146, 132, 140, 138, 139, 136, 132, 143, 144, 142, 132, 135, 134, 137, 132, 144, 137, 130, 139, 139, 141, 129, 141, 144, 141, 136, 141, 133, 146, 136, 138, 136, 126, 134, 140, 147, 136, 132, 147, 125, 134, 134, 139, 140, 130, 138, 131, 136, 144, 135, 134, 139, 140, 142, 133, 138, 135, 140, 146, 129, 142, 135, 134, 131, 140, 136, 143, 151, 148, 147, 133, 131, 137, 134, 136, 136, 141, 136, 145, 138, 134, 157, 142, 138, 143, 135, 139, 139, 141, 152, 146, 140, 141, 142, 134, 129, 133, 137, 151, 138, 149, 137, 138, 136, 143, 130, 141, 140, 130, 136, 140, 138, 133, 139, 142, 139, 132, 141, 138, 133, 143, 144, 141, 137, 133, 136, 148, 131, 139, 143, 141, 147, 140, 139, 139, 137, 128, 145, 140, 149, 145, 133, 144, 144, 136, 132, 146, 132, 139, 134, 136, 139, 149, 135, 136, 141, 141, 141, 133, 139, 132, 149, 135, 144, 140, 143, 142, 130, 143, 135, 145, 137, 148, 139, 144, 140, 143, 130, 155, 131, 142, 128, 131, 131, 134, 131, 139, 139, 141, 130, 144, 135, 135, 139, 135, 132, 143, 134, 138, 140, 136, 147, 137, 136, 133, 146, 138, 134, 137, 144, 133, 141, 148, 141, 135, 148, 142, 141, 143, 143, 143, 148, 137, 134, 142, 134, 133, 141, 148, 138, 136, 130, 143, 136, 143, 139, 137, 141, 143, 142, 135, 150, 142, 131, 140, 145, 130, 139, 149, 136, 153, 138, 147, 146, 145, 146, 140, 134, 134, 143, 140, 137, 141, 138, 137, 142, 144, 136, 144, 126, 128, 141, 128, 136, 136, 136, 149, 130, 131, 146, 126, 140, 147, 142, 148, 138, 149, 137, 142, 144, 130, 147, 136, 148, 129, 152, 138, 138, 136, 146, 132, 129, 134, 142, 148, 135, 136, 147, 135, 129, 138, 136, 134, 137, 140, 131, 138, 138, 144, 149, 138, 133, 133, 142, 135, 147, 141, 136, 139, 144, 134, 140, 148, 135, 145, 127, 142, 131, 142, 148, 133, 139, 138, 131, 135, 136, 150, 135, 140, 134, 143, 131, 136, 138, 143, 135, 138, 145, 131, 140, 122, 138, 137, 134, 135, 138, 134, 133, 138, 139, 139, 142, 129, 146, 139, 124, 137, 139, 143, 150, 133, 134, 152, 137, 139, 134, 138, 133, 132, 138, 140, 150, 134, 137, 139, 140, 132, 142, 151, 144, 146, 149, 142, 136, 137, 141, 141, 136, 138, 135, 141, 140, 140, 139, 138, 139, 140, 135, 139, 135, 141, 138, 144, 143, 140, 141, 139, 136, 140, 140, 138, 133, 139, 138, 140, 136, 151, 138, 137, 138, 136, 144, 138, 137, 142, 132, 142, 141, 142, 140, 136, 144, 144, 144, 146, 141, 134, 141, 140, 136, 137, 142, 139, 135, 137, 139, 142, 141, 136, 134, 136, 146, 140, 132, 142, 138, 138, 140, 143, 143, 135, 132, 139, 136, 137, 138, 136, 138, 143, 147, 136, 138, 150, 143, 134, 141, 143, 141, 143, 139, 137, 138, 139, 139, 135, 135, 139, 138, 143, 137, 137, 135, 141, 148, 140, 138, 137, 142, 140, 129, 141, 140, 136, 129, 131, 142, 134, 139, 139, 143, 145, 141, 137, 143, 143, 144, 141, 138, 141, 137, 147, 137, 139, 140, 136, 138, 144, 138, 139, 138, 142, 139, 138, 135, 135, 137, 139, 137, 139, 138, 145, 140, 136, 136, 135, 138, 136, 135, 137, 144, 149, 151, 146, 135, 133, 138, 146, 140, 138, 136, 136, 136, 139, 138, 139, 145, 139, 143, 134, 135, 137, 136, 142, 137, 139, 138, 144, 143, 143, 137, 144, 140, 142, 142, 146, 145, 136, 142, 135, 148, 139, 140, 145, 140, 133, 147, 139, 140, 145, 139, 137, 136, 139, 139, 142, 133, 138, 145, 139, 139, 140, 144, 135, 140, 139, 137, 143, 138, 142, 136, 146, 140, 143, 139, 137, 139, 140, 144, 138, 139, 135, 150, 143, 145, 144, 136, 142, 136, 138, 136, 141, 136, 142, 139, 135, 137, 136, 139, 142, 140, 142, 142, 141, 144, 132, 137, 144, 143, 134, 138, 138, 146, 138, 141, 139, 135, 139, 147, 135, 136, 138, 140, 144, 140, 140, 135, 143, 145, 136, 137, 140, 132, 141, 140, 142, 142, 135, 143, 138, 151, 138, 139, 140, 134, 141, 141, 141, 140, 137, 141, 141, 140, 140, 137, 136, 140, 140, 139, 140, 139, 142, 136, 147, 145, 139, 139, 139, 139, 141, 137, 140, 139, 139, 144, 138, 138, 142, 136, 140, 140, 141, 138, 141, 137, 142, 136, 138, 145, 144, 139, 142, 135, 139, 138, 142, 137, 133, 137, 144, 136, 141, 137, 135, 140, 139, 140, 132, 143, 142, 134, 142, 142, 146, 143, 143, 138, 138, 138, 139, 145, 138, 138, 138, 141, 140, 131, 140, 137, 144, 136, 135, 134, 137, 137, 140, 134, 139, 140, 139, 144, 138, 134, 134, 136, 139, 137, 142, 145, 139, 134, 137, 141, 135, 147, 142, 139, 142, 139, 141, 141, 142, 139, 136, 135, 145, 137, 137, 141, 140, 137, 137, 139, 140, 141, 143, 143, 142, 141, 135, 138, 141, 136, 142, 133, 144, 133, 138, 134, 140, 138, 135, 138, 140, 140, 142, 140, 139, 138, 141, 139, 137, 149, 141, 135, 138, 140, 142, 147, 137, 143, 143, 132, 140, 137, 148, 140, 138, 139, 144, 144, 140, 141, 139, 133, 146, 143, 141, 138, 137, 140, 141, 141, 145, 143, 141, 137, 138, 134, 134, 138, 138, 144, 144, 137, 141, 138, 137, 137, 140, 131, 137, 131, 137, 142, 138, 147, 149, 139, 138, 137, 145, 140, 133, 143, 137, 143, 145, 132, 139, 146, 132, 147, 131, 137, 140, 141, 142, 146, 144, 141, 142, 142, 134, 136, 136, 139, 136, 137, 139, 145, 133, 134, 141, 139, 130, 130, 139, 143, 140, 135, 132, 134, 134, 128, 138, 133, 135, 142, 140, 138, 133, 138, 140, 125, 135, 137, 136, 132, 146, 136, 141, 135, 134, 139, 141, 145, 135, 133, 131, 150, 137, 134, 143, 143, 136, 127, 137, 123, 141, 144, 144, 134, 138, 139, 145, 140, 135, 133, 140, 130, 140, 138, 138, 136, 133, 144, 138, 136, 134, 142, 147, 142, 133, 139, 144, 135, 135, 145, 140, 136, 138, 141, 143, 135, 138, 131, 140, 139, 144, 129, 144, 146, 135, 142, 136, 143, 136, 147, 131, 146, 142, 139, 141, 143, 130, 132, 145, 134, 126, 132, 140, 131, 137, 132, 132, 135, 141, 143, 144, 137, 139, 155, 152, 139, 143, 142, 145, 134, 140, 131, 142, 149, 149, 141, 133, 147, 147, 137, 130, 139, 141, 147, 132, 130, 138, 139, 141, 139, 140, 138, 135, 133, 138, 141, 137, 129, 136, 136, 129, 135, 138, 139, 148, 139, 144, 129, 144, 134, 142, 133, 140, 141, 137, 142, 137, 145, 135, 145, 136, 136, 141, 141, 138, 143, 134, 134, 136, 144, 140, 129, 132, 135, 128, 134, 139, 139, 140, 142, 139, 133, 132, 140, 133, 138, 146, 139, 131, 138, 130, 135, 133, 135, 138, 136, 140, 142, 140, 140, 147, 144, 138, 130, 134, 144, 132, 143, 148, 133, 147, 135, 141, 133, 148, 133, 141, 134, 133, 137, 140, 137, 140, 140, 144, 141, 144, 134, 140, 129, 139, 136, 135, 143, 141, 130, 137, 144, 142, 149, 139, 145, 141, 137, 141, 141, 135, 135, 136, 143, 140, 136, 134, 149, 136, 142, 131, 136, 129, 143, 146, 140, 140, 148, 138, 129, 137, 142, 143, 147, 138, 155, 136, 143, 136, 132, 135, 137, 130, 138, 137, 120, 144, 134, 134, 140, 137, 144, 135, 138, 140, 140, 148, 136, 139, 141, 144, 135, 148, 142, 137, 135, 143, 144, 140, 135, 148, 139, 133, 130, 140, 139, 137, 150, 146, 130, 147, 136, 132, 133, 144, 128, 130, 145, 139, 139, 138, 137, 142, 132, 136, 145, 138, 126, 137, 130, 139, 134, 131, 142, 136, 136, 137, 135, 134, 147, 127, 138, 143, 133, 143, 140, 130, 145, 138, 146, 142, 140, 140, 150, 133, 142, 132, 141, 139, 134, 142, 131, 144, 145, 135, 134, 146, 135, 138, 147, 135, 143, 136, 135, 140, 138, 144, 145, 138, 132, 141, 140, 144, 139, 139, 132, 146, 141, 130, 144, 134, 142, 141, 144, 143, 143, 138, 139, 140, 137, 139, 130, 133, 136, 141, 139, 133, 140, 136, 138, 142, 129, 139, 133, 132, 140, 138, 134, 145, 132, 132, 140, 137, 144, 140, 132, 137, 135, 145, 144, 131, 140, 137, 143, 139, 136, 139, 139, 137, 133, 140, 129, 132, 143, 149, 134, 134, 141, 139, 146, 135, 137, 133, 129, 139, 140, 132, 133, 143, 137, 134, 148, 140, 133, 140, 146, 128, 139, 126, 132, 137, 133, 141, 147, 138, 134, 142, 143, 141, 135, 161, 137, 135, 139, 145, 137, 135, 146, 144, 139, 146, 149, 138, 132, 156, 150, 116, 135, 138, 135, 139, 126, 142, 138, 140, 138, 134, 138, 140, 139, 138, 153, 144, 139, 136, 131, 135, 135, 141, 142, 142, 125, 138, 139, 133, 148, 140, 131, 141, 146, 128, 147, 145, 143, 134, 133, 141, 140, 141, 158, 141, 153, 156, 130, 136, 139, 139, 133, 145, 143, 134, 129, 137, 147, 146, 138, 144, 142, 138, 138, 142, 132, 135, 130, 137, 125, 135, 135, 129, 148, 135, 147, 138, 141, 139, 140, 140, 137, 138, 138, 149, 136, 141, 142, 136, 134, 142, 142, 140, 145, 135, 140, 142, 141, 132, 136, 135, 129, 143, 142, 145, 139, 138, 132, 134, 140, 139, 140, 136, 137, 150, 145, 139, 138, 135, 147, 149, 150, 142, 137, 137, 143, 149, 143, 142, 135, 132, 140, 137, 138, 133, 141, 136, 141, 143, 143, 139, 137, 146, 140, 137, 135, 139, 141, 139, 131, 140, 133, 134, 130, 133, 142, 144, 137, 134, 143, 135, 137, 141, 141, 151, 137, 134, 135, 143, 135, 137, 126, 134, 150, 132, 143, 137, 136, 146, 142, 136, 136, 139, 139, 132, 139, 137, 135, 135, 132, 148, 140, 133, 128, 134, 130, 139, 147, 143, 138, 138, 140, 138, 133, 143, 137, 137, 140, 133, 141, 138, 137, 143, 135, 134, 135, 139, 139, 143, 132, 137, 141, 147, 138, 134, 140, 133, 139, 139, 144, 142, 133, 135, 147, 138, 147, 143, 135, 141, 140, 132, 136, 138, 140, 138, 143, 148, 135, 147, 136, 137, 128, 140, 141, 137, 139, 144, 140, 142, 126, 145, 135, 133, 142, 136, 144, 136, 138, 136, 139, 136, 140, 144, 135, 132, 127, 135, 140, 141, 146, 143, 136, 142, 131, 147, 139, 147, 142, 150, 133, 140, 135, 137, 138, 138, 149, 143, 138, 137, 121, 141, 137, 146, 142, 148, 129, 136, 140, 143, 137, 139, 137, 138, 141, 139, 137, 137, 143, 141, 133, 134, 134, 137, 136, 138, 134, 141, 132, 140, 148, 126, 129, 133, 140, 138, 140, 147, 145, 132, 138, 140, 131, 148, 142, 148, 138, 139, 138, 136, 139, 146, 136, 141, 143, 138, 118, 145, 128, 136, 147, 145, 137, 144, 132, 141, 130, 138, 132, 129, 142, 138, 146, 136, 136, 147, 142, 142, 140, 146, 137, 136, 132, 141, 136, 139, 132, 133, 146, 142, 134, 138, 149, 128, 132, 135, 145, 136, 136, 132, 134, 139, 160, 132, 132, 142, 135, 150, 132, 138, 143, 144, 143, 134, 143, 138, 145, 144, 140, 145, 139, 151, 141, 144, 139, 149, 140, 131, 136, 140, 145, 133, 141, 134, 143, 140, 139, 140, 138, 137, 144, 133, 139, 155, 139, 145, 141, 149, 139, 146, 138, 145, 134, 135, 144, 145, 145, 126, 129, 138, 124, 142, 131, 138, 135, 133, 144, 147, 142, 135, 155, 141, 142, 139, 135, 147, 135, 146, 143, 133, 139, 138, 134, 136, 142, 142, 144, 148, 152, 136, 132, 142, 143, 135, 140, 137, 136, 147, 139, 140, 137, 139, 141, 137, 142, 123, 137, 138, 141, 137, 140, 139, 138, 136, 146, 141, 137, 136, 134, 144, 137, 146, 154, 130, 140, 138, 128, 146, 142, 134, 127, 136, 143, 147, 135, 137, 136, 151, 135, 144, 143, 133, 141, 133, 142, 139, 128, 136, 130, 151, 138, 144, 144, 133, 150, 136, 141, 141, 136, 137, 135, 137, 143, 131, 143, 139, 146, 141, 141, 139, 154, 130, 134, 144, 134, 143, 133, 136, 132, 141, 134, 139, 138, 139, 135, 135, 131, 139, 144, 137, 134, 130, 141, 139, 146, 145, 131, 128, 139, 136, 144, 149, 139, 141, 147, 129, 147, 144, 135, 135, 128, 134, 134, 145, 138, 138, 134, 135, 139, 146, 138, 139, 152, 135, 141, 147, 151, 143, 138, 137, 133, 134, 145, 144, 141, 136, 128, 133, 141, 134, 146, 134, 140, 147, 141, 140, 136, 139, 137, 144, 140, 144, 142, 144, 140, 138, 146, 136, 147, 140, 138, 140, 133, 132, 130, 138, 145, 141, 138, 127, 140, 138, 148, 139, 138, 137, 141, 135, 137, 137, 130, 138, 135, 131, 133, 139, 147, 141, 146, 144, 137, 148, 132, 142, 131, 145, 147, 137, 135, 143, 134, 137, 145, 140, 138, 146, 138, 146, 135, 132, 138, 134, 136, 132, 132, 139, 142, 145, 142, 132, 129, 136, 130, 134, 144, 135, 135, 139, 143, 138, 130, 136, 147, 141, 140, 138, 135, 141, 144, 139, 139, 138, 134, 139, 130, 139, 137, 137, 132, 141, 139, 141, 138, 139, 142, 148, 148, 142, 140, 145, 141, 136, 140, 132, 141, 149, 146, 144, 140, 139, 145, 140, 134, 134, 146, 138, 137, 146, 139, 133, 138, 137, 145, 128, 143, 141, 131, 131, 142, 141, 139, 142, 138, 139, 134, 134, 135, 149, 133, 142, 138, 146, 138, 133, 139, 139, 137, 144, 137, 135, 135, 144, 132, 141, 136, 138, 139, 134, 136, 140, 143, 138, 131, 142, 136, 136, 140, 141, 140, 132, 133, 138, 139, 140, 134, 132, 127, 136, 135, 140, 134, 134, 139, 133, 143, 130, 139, 124, 141, 141, 139, 140, 147, 144, 138, 137, 133, 127, 142, 138, 137, 139, 138, 131, 133, 138, 141, 140, 133, 125, 144, 141, 141, 141, 144, 132, 143, 148, 137, 136, 136, 141, 134, 130, 134, 137, 133, 143, 137, 139, 148, 140, 135, 130, 147, 146, 142, 141, 130, 142, 133, 149, 136, 140, 144, 138, 129, 138, 146, 140, 135, 148, 143, 138, 132, 128, 133, 126, 134, 145, 149, 140, 131, 134, 141, 148, 142, 140, 148, 124, 135, 130, 136, 138, 147, 137, 143, 157, 136, 142, 143, 129, 141, 138, 139, 137, 130, 135, 137, 135, 138, 142, 131, 137, 136, 138, 136, 142, 140, 138, 139, 131, 129, 136, 142, 128, 146, 133, 144, 140, 148, 140, 143, 133, 139, 140, 134, 143, 134, 139, 136, 138, 139, 144, 140, 139, 141, 128, 142, 135, 139, 131, 133, 148, 142, 141, 137, 134, 137, 132, 134, 140, 137, 133, 137, 142, 139, 139, 140, 138, 148, 139, 137, 141, 139, 134, 141, 137, 135, 144, 139, 136, 135, 133, 141, 135, 142, 138, 142, 139, 143, 135, 138, 137, 136, 131, 136, 141, 133, 135, 141, 136, 132, 135, 139, 138, 135, 140, 135, 147, 139, 144, 131, 139, 136, 144, 139, 137, 145, 139, 132, 138, 144, 143, 138, 145, 138, 135, 141, 135, 138, 141, 138, 146, 139, 145, 142, 140, 140, 138, 151, 144, 141, 137, 136, 139, 139, 142, 141, 153, 140, 143, 136, 146, 138, 137, 137, 141, 134, 155, 138, 143, 147, 141, 142, 139, 140, 137, 137, 140, 144, 140, 143, 139, 137, 139, 134, 140, 144, 143, 133, 138, 133, 135, 151, 135, 136, 139, 137, 138, 134, 135, 140, 139, 150, 145, 142, 139, 135, 134, 138, 131, 141, 141, 140, 131, 140, 140, 131, 138, 140, 138, 138, 132, 140, 141, 140, 141, 147, 141, 142, 142, 136, 138, 137, 147, 139, 143, 141, 137, 139, 138, 150, 137, 143, 138, 135, 139, 142, 145, 141, 144, 146, 138, 143, 144, 138, 136, 142, 147, 134, 137, 140, 141, 143, 134, 134, 135, 135, 139, 129, 139, 127, 140, 141, 145, 141, 145, 148, 140, 141, 140, 132, 134, 139, 134, 143, 136, 134, 136, 132, 144, 133, 131, 140, 152, 136, 136, 142, 142, 135, 130, 140, 140, 136, 134, 139, 138, 140, 137, 141, 136, 141, 143, 133, 144, 140, 140, 129, 136, 136, 135, 138, 138, 138, 141, 136, 137, 135, 138, 138, 136, 136, 136, 139, 137, 140, 125, 138, 143, 143, 139, 142, 134, 140, 138, 143, 134, 142, 139, 141, 144, 136, 136, 139, 146, 140, 140, 142, 142, 145, 138, 144, 134, 137, 141, 141, 142, 139, 138, 143, 143, 136, 140, 144, 141, 134, 138, 130, 142, 140, 138, 141, 131, 140, 137, 138, 134, 134, 142, 135, 137, 136, 133, 130, 143, 141, 134, 143, 135, 132, 142, 139, 139, 139, 147, 135, 133, 138, 146, 134, 141, 135, 139, 141, 136, 146, 144, 136, 141, 139, 140, 143, 137, 140, 142, 137, 142, 138, 138, 138, 136, 133, 142, 136, 145, 144, 135, 134, 138, 143, 142, 131, 141, 138, 147, 152, 141, 134, 137, 138, 137, 144, 136, 143, 135, 142, 147, 138, 151, 143, 147, 133, 135, 136, 142, 141, 137, 148, 140, 139, 140, 136, 140, 155, 137, 135, 143, 139, 136, 140, 142, 147, 135, 143, 130, 137, 139, 133, 139, 139, 137, 134, 135, 142, 135, 133, 139, 134, 137, 135, 140, 140, 139, 137, 133, 144, 138, 134, 142, 139, 142, 138, 131, 141, 141, 135, 134, 134, 139, 134, 136, 137, 135, 143, 128, 132, 137, 142, 141, 140, 138, 141, 133, 136, 139, 134, 136, 142, 137, 146, 139, 141, 138, 145, 144, 135, 139, 131, 140, 149, 141, 136, 133, 145, 132, 143, 141, 138, 141, 131, 141, 142, 144, 134, 168, 137, 135, 152, 136, 147, 129, 146, 132, 138, 164, 150, 144, 137, 140, 152, 138, 143, 141, 151, 146, 146, 141, 131, 146, 142, 136, 142, 145, 134, 148, 137, 142, 131, 144, 142, 143, 137, 134, 151, 138, 142, 139, 137, 140, 140, 137, 117, 131, 138, 143, 140, 124, 142, 136, 138, 138, 151, 128, 133, 130, 134, 147, 132, 155, 131, 141, 136, 140, 133, 146, 129, 141, 137, 129, 141, 137, 142, 129, 136, 132, 126, 138, 134, 138, 140, 131, 138, 139, 138, 132, 139, 137, 150, 144, 141, 144, 140, 127, 141, 146, 143, 128, 139, 130, 129, 133, 134, 138, 144, 134, 137, 140, 133, 136, 143, 138, 127, 144, 146, 138, 142, 130, 143, 131, 131, 142, 134, 137, 136, 123, 144, 146, 139, 132, 136, 129, 137, 138, 142, 145, 138, 152, 120, 139, 147, 149, 147, 147, 139, 132, 146, 145, 137, 150, 144, 143, 139, 134, 147, 137, 136, 134, 141, 149, 157, 148, 138, 139, 132, 159, 136, 138, 147, 132, 137, 122, 128, 141, 139, 143, 139, 129, 140, 130, 133, 146, 147, 136, 148, 137, 138, 134, 124, 141, 125, 146, 134, 133, 133, 142, 137, 138, 142, 134, 130, 143, 129, 139, 138, 135, 141, 136, 137, 148, 146, 141, 137, 136, 130, 136, 143, 144, 140, 138, 151, 134, 139, 137, 125, 135, 135, 137, 144, 149, 144, 130, 141, 137, 142, 144, 158, 137, 135, 151, 138, 135, 141, 143, 150, 142, 144, 136, 143, 132, 136, 147, 147, 138, 148, 148, 126, 137, 127, 130, 139, 139, 139, 141, 146, 136, 149, 142, 152, 133, 135, 150, 144, 142, 131, 125, 124, 148, 134, 132, 141, 144, 139, 131, 143, 132, 141, 139, 137, 138, 141, 130, 143, 135, 144, 150, 136, 141, 142, 144, 153, 137, 146, 135, 124, 130, 140, 141, 132, 138, 134, 139, 139, 128, 131, 139, 145, 138, 132, 132, 132, 138, 149, 133, 141, 132, 139, 133, 139, 149, 134, 141, 136, 139, 150, 135, 135, 143, 139, 135, 138, 138, 147, 147, 135, 144, 138, 130, 143, 144, 140, 134, 138, 133, 148, 143, 131, 133, 135, 126, 145, 146, 142, 142, 134, 130, 134, 141, 125, 142, 138, 132, 139, 142, 138, 139, 130, 135, 134, 144, 136, 140, 135, 137, 141, 127, 147, 143, 139, 139, 144, 139, 149, 138, 136, 144, 149, 135, 130, 143, 137, 135, 134, 143, 135, 141, 138, 137, 142, 134, 140, 133, 139, 142, 129, 136, 156, 136, 143, 142, 133, 143, 139, 132, 138, 138, 146, 136, 124, 144, 142, 145, 146, 138, 139, 139, 134, 136, 132, 143, 140, 139, 138, 136, 135, 146, 129, 135, 135, 140, 142, 127, 141, 129, 136, 145, 119, 133, 134, 132, 132, 137, 136, 136, 138, 130, 133, 138, 137, 134, 142, 134, 146, 136, 137, 139, 148, 148, 137, 130, 141, 137, 143, 138, 149, 146, 144, 149, 130, 124, 133, 149, 146, 132, 139, 139, 139, 140, 139, 134, 142, 141, 139, 142, 138, 134, 140, 140, 139, 137, 142, 141, 141, 136, 144, 146, 135, 137, 139, 132, 136, 141, 143, 137, 138, 139, 137, 139, 140, 130, 143, 145, 135, 132, 149, 139, 142, 140, 133, 140, 133, 138, 138, 134, 143, 144, 142, 142, 141, 140, 141, 136, 139, 143, 153, 143, 129, 141, 138, 133, 136, 135, 137, 140, 136, 143, 137, 146, 138, 143, 134, 139, 139, 138, 137, 144, 134, 146, 139, 131, 141, 146, 145, 140, 135, 141, 137, 138, 137, 140, 139, 139, 140, 145, 141, 136, 145, 136, 136, 139, 136, 140, 136, 137, 144, 130, 143, 142, 137, 136, 138, 141, 136, 142, 139, 139, 140, 133, 142, 144, 140, 145, 141, 138, 139, 147, 140, 142, 141, 139, 138, 135, 139, 140, 139, 136, 139, 135, 136, 140, 139, 136, 139, 149, 148, 135, 139, 148, 140, 142, 142, 139, 136, 138, 139, 138, 130, 141, 139, 137, 146, 138, 136, 140, 144, 140, 134, 137, 141, 137, 141, 137, 139, 139, 144, 140, 140, 139, 140, 135, 138, 140, 144, 136, 145, 145, 140, 134, 136, 141, 137, 137, 142, 145, 136, 141, 134, 141, 141, 141, 138, 139, 143, 143, 140, 139, 137, 139, 141, 144, 136, 130, 138, 138, 136, 139, 138, 139, 142, 141, 142, 142, 141, 142, 140, 140, 143, 144, 140, 139, 139, 133, 138, 140, 135, 140, 139, 134, 137, 140, 140, 141, 144, 136, 138, 143, 143, 138, 135, 141, 137, 140, 147, 143, 139, 138, 143, 140, 144, 135, 142, 141, 141, 145, 143, 134, 138, 133, 133, 145, 136, 131, 136, 137, 141, 144, 143, 146, 141, 138, 139, 133, 140, 140, 138, 142, 141, 137, 146, 136, 141, 135, 134, 130, 139, 138, 134, 134, 141, 137, 141, 138, 139, 135, 140, 139, 144, 138, 137, 141, 145, 136, 141, 137, 138, 136, 142, 140, 142, 135, 141, 142, 141, 139, 141, 146, 139, 144, 138, 141, 138, 138, 137, 140, 142, 146, 135, 136, 136, 134, 136, 136, 138, 133, 138, 141, 136, 144, 131, 138, 142, 135, 142, 140, 142, 139, 136, 142, 136, 145, 143, 135, 139, 135, 135, 143, 137, 137, 134, 141, 133, 142, 139, 143, 140, 142, 141, 139, 143, 139, 141, 142, 143, 135, 139, 136, 145, 140, 142, 138, 140, 148, 132, 138, 137, 133, 142, 137, 143, 138, 140, 135, 139, 137, 145, 145, 140, 138, 139, 135, 131, 141, 133, 156, 140, 141, 149, 138, 143, 138, 138, 139, 140, 138, 139, 143, 143, 142, 134, 138, 132, 139, 133, 136, 139, 136, 136, 140, 132, 141, 140, 144, 135, 149, 143, 148, 137, 142, 141, 138, 141, 134, 139, 142, 139, 135, 143, 140, 138, 135, 140, 137, 135, 142, 138, 139, 142, 143, 138, 143, 141, 137, 144, 140, 139, 145, 135, 134, 136, 139, 134, 150, 143, 137, 146, 144, 139, 138, 142, 136, 144, 141, 139, 138, 138, 135, 140, 139, 142, 136, 140, 142, 141, 134, 140, 137, 133, 146, 143, 139, 136, 141, 143, 143, 140, 143, 141, 137, 142, 133, 140, 130, 154, 137, 135, 140, 139, 142, 133, 137, 145, 140, 142, 152, 146, 152, 131, 138, 141, 132, 143, 139, 141, 140, 144, 139, 138, 141, 137, 139, 142, 138, 139, 135, 140, 144, 144, 130, 134, 140, 142, 135, 140, 146, 144, 143, 138, 134, 140, 144, 139, 136, 145, 138, 140, 143, 134, 144, 144, 147, 141, 141, 142, 139, 141, 141, 131, 141, 134, 131, 137, 140, 140, 137, 132, 141, 130, 141, 144, 143, 136, 136, 146, 127, 139, 123, 142, 134, 136, 138, 143, 134, 134, 144, 128, 136, 144, 130, 148, 133, 139, 147, 141, 147, 150, 141, 145, 140, 138, 135, 138, 141, 138, 131, 133, 142, 135, 132, 149, 135, 147, 138, 136, 137, 139, 148, 129, 140, 135, 141, 130, 137, 133, 136, 139, 132, 139, 142, 151, 140, 136, 138, 135, 142, 142, 139, 136, 132, 137, 139, 146, 140, 139, 145, 146, 138, 145, 139, 141, 133, 136, 140, 134, 140, 145, 136, 139, 145, 144, 138, 134, 142, 142, 131, 140, 131, 136, 143, 144, 138, 132, 137, 130, 139, 141, 140, 142, 141, 135, 139, 126, 148, 138, 150, 142, 139, 139, 136, 136, 135, 138, 134, 135, 135, 137, 144, 135, 142, 143, 138, 141, 139, 138, 144, 142, 138, 137, 136, 132, 129, 146, 136, 136, 138, 134, 136, 139, 137, 143, 145, 149, 134, 136, 139, 137, 132, 138, 136, 138, 138, 123, 131, 136, 145, 140, 135, 132, 133, 137, 142, 140, 134, 141, 138, 132, 143, 141, 139, 134, 145, 141, 138, 136, 135, 135, 139, 131, 142, 139, 138, 141, 142, 137, 135, 143, 139, 133, 134, 142, 141, 129, 131, 142, 137, 134, 130, 132, 139, 144, 129, 146, 137, 144, 142, 141, 135, 142, 141, 146, 134, 136, 146, 135, 140, 140, 152, 131, 140, 139, 135, 135, 143, 133, 136, 134, 131, 142, 140, 144, 142, 127, 143, 131, 133, 141, 130, 131, 140, 136, 138, 134, 131, 133, 140, 143, 134, 131, 142, 138, 139, 132, 134, 148, 132, 147, 135, 137, 146, 140, 138, 138, 145, 138, 135, 142, 139, 135, 139, 141, 137, 138, 140, 141, 139, 142, 135, 146, 137, 144, 136, 134, 147, 134, 133, 135, 132, 144, 150, 139, 138, 138, 144, 143, 147, 143, 144, 142, 139, 132, 138, 140, 141, 137, 133, 135, 138, 140, 138, 136, 141, 143, 140, 137, 149, 137, 140, 141, 141, 141, 139, 144, 139, 133, 141, 135, 126, 145, 133, 134, 141, 143, 135, 138, 144, 134, 143, 133, 138, 141, 142, 142, 138, 146, 143, 132, 140, 133, 147, 132, 135, 132, 143, 138, 142, 132, 149, 135, 144, 138, 140, 138, 132, 139, 138, 127, 141, 133, 138, 140, 136, 146, 144, 135, 142, 138, 140, 134, 138, 139, 145, 146, 138, 129, 142, 141, 144, 135, 143, 142, 138, 138, 135, 150, 135, 145, 143, 138, 138, 136, 143, 146, 141, 133, 138, 138, 139, 143, 138, 140, 130, 141, 138, 146, 140, 143, 148, 147, 146, 133, 138, 147, 153, 139, 146, 143, 132, 129, 147, 143, 140, 132, 161, 136, 136, 135, 132, 139, 123, 138, 137, 146, 136, 139, 130, 139, 132, 137, 143, 141, 145, 138, 149, 136, 131, 127, 136, 152, 141, 145, 145, 131, 135, 148, 146, 137, 144, 142, 147, 137, 129, 137, 143, 141, 129, 128, 137, 138, 137, 146, 147, 148, 136, 126, 144, 144, 139, 142, 147, 142, 146, 141, 142, 130, 152, 138, 139, 127, 133, 134, 134, 140, 135, 128, 146, 144, 135, 139, 142, 156, 139, 142, 132, 133, 145, 132, 137, 136, 137, 137, 137, 133, 142, 138, 141, 135, 143, 137, 140, 143, 141, 137, 131, 136, 135, 137, 140, 144, 147, 131, 135, 153, 150, 146, 141, 150, 135, 140, 140, 135, 145, 133, 136, 137, 133, 131, 144, 141, 137, 139, 142, 147, 141, 148, 139, 140, 149, 136, 137, 137, 137, 128, 147, 145, 135, 137, 147, 135, 148, 146, 131, 145, 146, 147, 145, 150, 142, 137, 134, 147, 138, 137, 136, 135, 133, 131, 147, 147, 131, 135, 131, 124, 133, 139, 136, 143, 153, 138, 149, 148, 140, 134, 134, 138, 143, 140, 136, 139, 138, 143, 143, 142, 135, 139, 138, 144, 133, 135, 136, 137, 142, 138, 123, 148, 144, 143, 135, 131, 138, 133, 138, 135, 134, 139, 134, 128, 138, 140, 140, 134, 133, 139, 135, 126, 141, 139, 140, 133, 141, 138, 135, 144, 137, 143, 143, 142, 134, 139, 136, 133, 141, 137, 145, 133, 136, 142, 144, 136, 136, 135, 138, 151, 132, 130, 143, 145, 140, 138, 140, 142, 138, 150, 141, 143, 138, 136, 149, 141, 142, 137, 147, 132, 146, 142, 138, 137, 132, 135, 130, 145, 132, 134, 135, 144, 143, 146, 144, 131, 136, 134, 140, 144, 142, 132, 138, 144, 133, 134, 127, 143, 144, 142, 137, 139, 145, 151, 148, 137, 137, 144, 128, 142, 146, 148, 143, 143, 138, 144, 148, 142, 135, 134, 128, 144, 148, 128, 143, 142, 145, 145, 140, 142, 138, 138, 136, 136, 140, 131, 135, 131, 138, 138, 142, 148, 127, 153, 127, 148, 135, 137, 143, 138, 138, 137, 147, 141, 140, 133, 141, 132, 133, 145, 133, 136, 126, 131, 138, 146, 139, 129, 133, 140, 136, 140, 134, 133, 135, 145, 135, 146, 137, 138, 136, 137, 150, 139, 139, 138, 138, 129, 140, 135, 137, 136, 138, 135, 144, 137, 130, 145, 134, 137, 141, 128, 141, 142, 131, 144, 136, 131, 132, 134, 138, 144, 139, 135, 138, 142, 142, 141, 137, 144, 134, 149, 135, 140, 135, 137, 143, 136, 140, 138, 139, 149, 135, 148, 126, 135, 124, 136, 133, 131, 137, 132, 140, 130, 134, 143, 136, 134, 139, 132, 136, 142, 151, 141, 140, 136, 138, 132, 136, 124, 138, 145, 135, 132, 142, 137, 144, 142, 140, 140, 136, 135, 141, 141, 142, 142, 149, 135, 134, 136, 133, 134, 144, 133, 141, 129, 147, 143, 146, 128, 143, 125, 136, 129, 138, 133, 138, 146, 135, 148, 150, 133, 142, 140, 150, 140, 132, 137, 118, 139, 138, 146, 142, 137, 138, 139, 143, 136, 140, 135, 145, 140, 141, 141, 141, 145, 159, 136, 139, 137, 132, 137, 142, 139, 140, 131, 145, 134, 135, 149, 145, 138, 133, 136, 134, 126, 139, 142, 140, 137, 140, 132, 137, 139, 143, 141, 131, 137, 154, 127, 135, 139, 131, 143, 139, 133, 133, 133, 142, 138, 140, 159, 146, 155, 153, 139, 140, 149, 144, 139, 145, 137, 129, 130, 144, 144, 141, 148, 138, 145, 142, 137, 139, 131, 145, 143, 123, 148, 158, 136, 132, 137, 134, 152, 146, 134, 142, 135, 141, 144, 143, 140, 143, 135, 127, 147, 137, 138, 135, 133, 135, 136, 137, 130, 132, 133, 142, 144, 137, 149, 138, 146, 147, 132, 150, 136, 145, 149, 150, 123, 141, 131, 135, 132, 146, 141, 139, 144, 139, 138, 147, 139, 138, 130, 137, 128, 130, 157, 143, 141, 122, 145, 144, 133, 138, 148, 140, 139, 147, 143, 138, 149, 142, 150, 129, 138, 137, 146, 134, 135, 146, 151, 141, 135, 147, 145, 139, 142, 150, 144, 140, 138, 139, 155, 140, 140, 125, 133, 135, 143, 138, 129, 137, 135, 140, 148, 149, 139, 133, 141, 142, 139, 148, 147, 130, 144, 132, 138, 124, 139, 150, 138, 136, 132, 138, 142, 141, 153, 138, 138, 133, 140, 131, 147, 128, 138, 141, 139, 138, 143, 127, 152, 148, 141, 145, 142, 136, 129, 143, 143, 147, 146, 126, 137, 150, 141, 135, 130, 135, 142, 137, 128, 137, 130, 137, 146, 143, 144, 132, 142, 135, 136, 134, 137, 142, 140, 129, 140, 129, 141, 146, 144, 143, 125, 143, 139, 135, 133, 128, 140, 149, 145, 139, 144, 156, 135, 132, 146, 142, 143, 145, 129, 143, 137, 144, 140, 136, 146, 138, 135, 147, 134, 139, 137, 132, 137, 144, 142, 136, 135, 125, 144, 138, 129, 140, 134, 139, 135, 134, 140, 128, 151, 144, 153, 147, 131, 132, 144, 136, 133, 144, 125, 142, 141, 152, 137, 137, 140, 128, 143, 139, 133, 143, 137, 137, 138, 125, 144, 129, 145, 138, 136, 137, 136, 154, 136, 138, 135, 141, 134, 151, 135, 133, 134, 138, 144, 147, 132, 126, 142, 129, 130, 118, 151, 132, 140, 140, 143, 138, 144, 144, 133, 142, 132, 148, 146, 140, 139, 137, 135, 148, 142, 146, 132, 139, 135, 138, 142, 130, 131, 126, 132, 140, 130, 135, 141, 137, 138, 143, 131, 135, 137, 154, 144, 136, 148, 141, 144, 147, 128, 133, 147, 135, 145, 138, 153, 152, 145, 139, 148, 130, 131, 142, 151, 150, 141, 127, 144, 148, 136, 129, 135, 140, 140, 138, 134, 131, 133, 147, 138, 140, 148, 147, 128, 151, 131, 144, 133, 136, 133, 120, 139, 152, 143, 128, 143, 144, 138, 141, 130, 140, 143, 129, 141, 138, 150, 120, 138, 137, 148, 133, 140, 145, 137, 140, 151, 138, 146, 149, 149, 128, 147, 133, 139, 141, 145, 141, 140, 140, 136, 138, 139, 143, 134, 139, 140, 132, 133, 141, 135, 134, 148, 142, 140, 134, 141, 143, 146, 139, 140, 141, 136, 143, 135, 143, 142, 147, 135, 147, 142, 133, 142, 143, 138, 143, 134, 143, 137, 131, 145, 140, 145, 141, 136, 137, 138, 136, 137, 131, 134, 140, 143, 140, 129, 141, 143, 139, 136, 137, 139, 140, 135, 135, 138, 143, 141, 136, 139, 143, 141, 136, 147, 135, 141, 134, 134, 136, 143, 145, 134, 138, 139, 139, 141, 139, 143, 136, 139, 142, 136, 139, 139, 142, 139, 137, 136, 143, 128, 137, 141, 137, 144, 137, 120, 138, 138, 140, 135, 143, 144, 141, 140, 143, 137, 137, 147, 138, 143, 144, 140, 141, 140, 146, 134, 140, 137, 141, 145, 144, 131, 134, 143, 141, 138, 138, 141, 141, 145, 136, 139, 140, 134, 138, 144, 133, 144, 143, 142, 138, 137, 139, 139, 141, 147, 137, 135, 142, 144, 138, 134, 138, 137, 148, 130, 140, 135, 138, 134, 139, 138, 136, 136, 142, 147, 144, 151, 133, 135, 142, 137, 140, 135, 141, 138, 138, 145, 141, 140, 135, 142, 143, 139, 138, 145, 138, 129, 140, 144, 139, 147, 139, 143, 141, 138, 144, 141, 138, 139, 136, 140, 134, 138, 133, 140, 137, 137, 140, 140, 133, 140, 135, 133, 143, 137, 138, 138, 135, 144, 140, 140, 133, 141, 152, 143, 148, 133, 136, 141, 137, 146, 134, 131, 140, 132, 143, 143, 141, 135, 143, 141, 141, 143, 144, 142, 138, 143, 139, 145, 144, 141, 140, 142, 144, 136, 136, 144, 148, 138, 130, 129, 137, 139, 139, 142, 142, 141, 141, 136, 147, 144, 142, 139, 141, 146, 138, 144, 141, 141, 142, 139, 146, 138, 136, 135, 133, 143, 135, 147, 140, 139, 137, 137, 141, 135, 136, 131, 133, 139, 145, 142, 139, 134, 142, 138, 140, 140, 139, 134, 140, 134, 141, 144, 141, 140, 136, 138, 143, 136, 138, 141, 138, 143, 141, 137, 143, 132, 141, 138, 138, 152, 132, 130, 142, 139, 138, 135, 137, 144, 139, 140, 143, 144, 137, 138, 143, 137, 137, 143, 142, 137, 135, 138, 140, 136, 138, 139, 143, 135, 141, 136, 139, 136, 138, 136, 145, 139, 133, 151, 142, 139, 146, 141, 135, 138, 141, 136, 141, 133, 141, 129, 142, 140, 138, 151, 145, 133, 143, 142, 140, 140, 136, 132, 134, 142, 137, 139, 130, 145, 143, 133, 133, 132, 139, 144, 141, 136, 132, 140, 141, 143, 145, 144, 140, 137, 130, 138, 134, 143, 144, 142, 142, 146, 147, 147, 136, 141, 141, 148, 129, 140, 136, 137, 140, 139, 137, 141, 143, 133, 136, 145, 149, 141, 140, 132, 140, 135, 141, 137, 144, 148, 142, 141, 138, 144, 141, 144, 146, 139, 144, 139, 141, 135, 137, 147, 136, 139, 139, 139, 144, 138, 143, 135, 146, 137, 143, 142, 133, 137, 134, 139, 139, 146, 146, 144, 139, 138, 140, 143, 137, 149, 131, 135, 143, 140, 134, 134, 136, 133, 126, 153, 128, 143, 141, 127, 132, 145, 144, 132, 129, 149, 137, 130, 131, 140, 132, 131, 137, 143, 137, 142, 141, 139, 152, 127, 143, 142, 146, 140, 131, 133, 140, 127, 136, 136, 145, 139, 135, 131, 125, 131, 140, 131, 137, 139, 134, 137, 136, 142, 141, 144, 144, 142, 144, 149, 132, 135, 127, 142, 150, 140, 135, 144, 139, 135, 145, 135, 144, 136, 142, 131, 143, 143, 142, 134, 141, 134, 140, 133, 131, 140, 144, 139, 149, 135, 137, 136, 140, 118, 152, 141, 129, 144, 140, 149, 142, 146, 145, 141, 139, 146, 132, 139, 143, 145, 137, 137, 150, 133, 143, 135, 141, 142, 137, 127, 144, 139, 139, 142, 140, 142, 139, 142, 132, 141, 132, 140, 142, 145, 152, 138, 151, 144, 145, 135, 143, 133, 133, 137, 134, 141, 132, 140, 136, 139, 137, 143, 151, 134, 139, 138, 140, 138, 136, 138, 136, 136, 142, 136, 128, 132, 134, 147, 136, 139, 141, 141, 136, 139, 126, 136, 138, 139, 147, 136, 137, 134, 147, 137, 138, 137, 142, 147, 129, 138, 157, 141, 139, 144, 133, 140, 141, 134, 138, 140, 141, 135, 136, 149, 149, 137, 146, 149, 133, 136, 147, 137, 136, 142, 134, 130, 138, 141, 146, 139, 141, 132, 140, 131, 139, 138, 137, 144, 140, 142, 149, 130, 137, 142, 137, 136, 143, 138, 136, 139, 142, 139, 142, 142, 143, 139, 125, 139, 132, 133, 133, 148, 135, 137, 129, 138, 142, 146, 139, 142, 131, 139, 139, 149, 140, 142, 139, 135, 146, 132, 140, 139, 143, 135, 131, 135, 137, 136, 137, 135, 139, 135, 141, 136, 142, 142, 136, 139, 141, 141, 145, 135, 141, 137, 134, 133, 133, 132, 138, 140, 151, 139, 132, 140, 134, 141, 144, 132, 133, 138, 141, 142, 139, 133, 148, 133, 137, 141, 144, 130, 139, 135, 142, 136, 133, 135, 136, 132, 135, 141, 129, 143, 144, 138, 138, 140, 146, 143, 131, 138, 136, 149, 144, 130, 142, 135, 138, 132, 143, 146, 134, 142, 129, 138, 136, 144, 148, 142, 143, 134, 138, 146, 147, 141, 141, 135, 138, 146, 127, 144, 134, 131, 142, 130, 137, 139, 139, 138, 141, 143, 150, 129, 146, 140, 139, 134, 127, 130, 138, 146, 139, 138, 131, 137, 139, 140, 153, 136, 134, 141, 143, 135, 141, 149, 135, 149, 148, 139, 134, 139, 142, 137, 129, 139, 141, 141, 140, 133, 146, 137, 142, 135, 136, 140, 141, 137, 144, 135, 141, 139, 133, 143, 130, 143, 138, 132, 140, 144, 137, 143, 132, 140, 141, 137, 142, 151, 138, 130, 137, 137, 139, 141, 138, 142, 140, 134, 132, 146, 140, 146, 124, 138, 136, 144, 141, 136, 139, 146, 153, 127, 137, 131, 143, 141, 146, 135, 149, 139, 145, 133, 136, 158, 136, 124, 132, 138, 138, 129, 136, 139, 128, 139, 133, 136, 141, 145, 141, 148, 149, 143, 125, 141, 138, 146, 137, 142, 139, 134, 126, 146, 136, 142, 143, 130, 142, 141, 142, 139, 140, 132, 143, 136, 139, 138, 140, 138, 140, 137, 141, 138, 137, 145, 135, 137, 141, 140, 141, 141, 138, 142, 147, 140, 140, 139, 138, 134, 142, 139, 134, 138, 147, 148, 143, 129, 137, 127, 141, 138, 142, 142, 142, 138, 141, 137, 140, 142, 137, 141, 138, 134, 146, 142, 140, 143, 137, 144, 138, 142, 138, 141, 142, 137, 143, 136, 140, 146, 140, 139, 145, 143, 132, 139, 138, 143, 138, 133, 130, 141, 140, 148, 135, 136, 142, 143, 135, 139, 132, 136, 141, 141, 139, 144, 142, 139, 136, 141, 141, 136, 140, 140, 134, 136, 141, 137, 132, 136, 139, 139, 139, 137, 141, 136, 146, 133, 139, 139, 144, 137, 138, 138, 138, 136, 132, 139, 133, 135, 142, 141, 135, 135, 138, 140, 140, 140, 142, 139, 134, 139, 134, 137, 133, 143, 143, 136, 140, 140, 135, 141, 141, 142, 132, 132, 142, 133, 143, 145, 138, 137, 137, 147, 138, 138, 139, 140, 137, 143, 142, 140, 140, 133, 135, 139, 138, 142, 141, 142, 138, 133, 138, 142, 142, 138, 134, 141, 138, 136, 134, 132, 141, 146, 138, 136, 135, 141, 135, 133, 135, 141, 141, 143, 137, 135, 138, 140, 136, 144, 140, 136, 136, 144, 146, 144, 141, 145, 138, 136, 147, 141, 135, 133, 134, 139, 137, 140, 136, 133, 140, 135, 144, 140, 141, 137, 139, 145, 137, 137, 142, 138, 139, 140, 139, 145, 138, 140, 141, 140, 137, 142, 139, 136, 143, 139, 137, 137, 137, 141, 140, 141, 146, 138, 138, 135, 137, 137, 141, 147, 147, 138, 136, 135, 140, 138, 137, 143, 140, 134, 142, 139, 140, 140, 137, 142, 137, 142, 139, 139, 136, 137, 139, 136, 138, 142, 136, 141, 146, 140, 140, 145, 137, 139, 140, 138, 132, 137, 134, 137, 142, 143, 142, 134, 143, 139, 143, 138, 147, 140, 134, 138, 140, 137, 133, 141, 137, 140, 139, 138, 141, 135, 140, 132, 138, 140, 141, 137, 141, 142, 134, 143, 136, 133, 140, 136, 139, 141, 135, 143, 144, 142, 139, 141, 145, 142, 140, 133, 137, 137, 144, 132, 136, 137, 136, 135, 140, 140, 137, 135, 134, 144, 139, 138, 138, 137, 137, 136, 140, 138, 140, 137, 139, 144, 138, 143, 139, 144, 140, 136, 139, 143, 145, 133, 133, 136, 137, 137, 135, 141, 140, 145, 142, 136, 137, 135, 136, 137, 140, 139, 139, 137, 134, 137, 138, 133, 141, 133, 136, 138, 140, 143, 142, 140, 141, 141, 142, 138, 138, 143, 140, 134, 142, 136, 141, 143, 142, 139, 144, 136, 140, 137, 137, 136, 138, 140, 140, 140, 144, 147, 135, 145, 138, 141, 136, 139, 133, 140, 135, 139, 145, 141, 142, 135, 141, 138, 138, 136, 132, 138, 144, 140, 142, 146, 140, 137, 135, 140, 141, 142, 139, 140, 141, 142, 137, 139, 141, 132, 141, 141, 132, 139, 135, 136, 140, 145, 134, 140, 141, 138, 136, 137, 140, 140, 133, 146, 141, 145, 136, 140, 143, 145, 141, 135, 135, 143, 137, 137, 139, 144, 134, 138, 138, 136, 141, 135, 139, 145, 138, 136, 136, 134, 149, 156, 133, 142, 134, 133, 138, 131, 137, 138, 133, 137, 141, 145, 142, 127, 133, 139, 135, 136, 139, 144, 143, 149, 134, 146, 138, 139, 145, 137, 130, 137, 137, 144, 136, 141, 139, 143, 134, 141, 145, 138, 136, 143, 141, 134, 135, 147, 140, 132, 143, 136, 147, 150, 144, 129, 138, 138, 144, 139, 131, 141, 135, 144, 128, 139, 145, 138, 135, 143, 148, 138, 145, 134, 135, 142, 135, 154, 142, 136, 143, 135, 147, 134, 142, 135, 145, 143, 142, 131, 139, 134, 141, 135, 142, 125, 139, 138, 143, 136, 142, 129, 141, 143, 134, 139, 134, 138, 148, 139, 140, 139, 140, 134, 136, 141, 139, 128, 141, 136, 145, 138, 142, 140, 133, 137, 144, 131, 134, 136, 137, 127, 139, 145, 150, 142, 134, 132, 134, 137, 141, 136, 145, 124, 139, 132, 143, 142, 133, 137, 144, 143, 143, 135, 139, 143, 138, 134, 137, 137, 135, 137, 135, 144, 140, 138, 136, 140, 136, 141, 137, 134, 150, 134, 140, 147, 140, 143, 141, 139, 143, 134, 132, 139, 142, 142, 140, 138, 132, 141, 131, 134, 150, 141, 135, 138, 131, 138, 138, 131, 143, 133, 132, 138, 135, 139, 130, 138, 137, 139, 135, 139, 138, 140, 131, 143, 150, 141, 134, 136, 149, 140, 138, 139, 136, 143, 139, 131, 151, 144, 137, 144, 134, 137, 148, 140, 141, 140, 144, 140, 131, 137, 143, 147, 137, 136, 136, 136, 142, 137, 145, 150, 150, 131, 140, 141, 142, 151, 136, 132, 143, 137, 139, 147, 143, 135, 131, 134, 143, 137, 139, 140, 136, 134, 141, 137, 130, 136, 138, 140, 139, 145, 148, 138, 130, 143, 143, 136, 133, 135, 151, 143, 141, 130, 143, 142, 136, 140, 131, 136, 141, 133, 142, 149, 137, 139, 143, 142, 139, 131, 138, 131, 130, 146, 141, 136, 134, 132, 141, 143, 133, 133, 128, 134, 145, 136, 136, 140, 135, 134, 140, 137, 128, 144, 146, 135, 144, 138, 143, 143, 151, 133, 134, 130, 135, 136, 138, 140, 141, 134, 136, 137, 141, 144, 146, 137, 140, 137, 147, 134, 141, 137, 142, 134, 134, 139, 138, 139, 148, 139, 138, 143, 139, 140, 129, 140, 139, 139, 136, 140, 145, 145, 135, 144, 140, 139, 141, 136, 141, 150, 141, 140, 145, 139, 138, 139, 145, 141, 135, 140, 141, 134, 135, 140, 140, 135, 136, 144, 139, 140, 136, 140, 136, 137, 140, 146, 134, 138, 144, 142, 138, 134, 141, 135, 137, 142, 137, 137, 143, 140, 139, 130, 136, 148, 135, 143, 135, 135, 145, 135, 142, 136, 137, 137, 130, 145, 128, 141, 138, 135, 141, 136, 134, 147, 140, 144, 137, 138, 144, 145, 135, 144, 138, 140, 136, 141, 143, 129, 145, 134, 139, 134, 146, 142, 142, 144, 135, 142, 131, 134, 138, 138, 142, 130, 132, 147, 135, 152, 142, 140, 135, 151, 138, 140, 135, 136, 139, 138, 141, 133, 141, 144, 140, 138, 140, 136, 138, 144, 128, 140, 141, 136, 142, 135, 147, 137, 140, 138, 138, 142, 139, 141, 145, 139, 136, 140, 138, 149, 140, 147, 135, 138, 144, 140, 134, 133, 149, 137, 134, 144, 143, 134, 126, 141, 132, 135, 138, 115, 135, 139, 134, 143, 133, 135, 141, 136, 138, 131, 141, 134, 135, 136, 131, 143, 136, 135, 140, 130, 143, 139, 136, 136, 139, 140, 138, 151, 135, 136, 137, 142, 137, 141, 137, 145, 138, 146, 137, 141, 134, 137, 141, 139, 135, 128, 139, 151, 138, 141, 138, 122, 134, 135, 143, 137, 137, 136, 138, 140, 139, 139, 140, 136, 141, 142, 136, 133, 138, 143, 141, 139, 143, 133, 132, 136, 145, 137, 137, 144, 140, 130, 143, 134, 135, 142, 144, 127, 140, 142, 141, 124, 145, 139, 140, 142, 130, 144, 140, 151, 142, 125, 141, 138, 136, 143, 141, 140, 142, 133, 138, 138, 130, 128, 138, 130, 142, 137, 138, 136, 140, 141, 134, 138, 137, 129, 135, 131, 145, 133, 136, 145, 139, 141, 129, 139, 138, 152, 133, 142, 145, 135, 142, 142, 132, 138, 144, 131, 126, 138, 142, 130, 137, 141, 137, 137, 137, 150, 136, 139, 140, 137, 140, 138, 141, 130, 135, 141, 137, 143, 138, 139, 138, 136, 139, 137, 139, 133, 142, 144, 142, 149, 136, 140, 136, 142, 129, 141, 145, 136, 135, 148, 141, 141, 139, 137, 138, 133, 130, 137, 137, 135, 138, 136, 136, 140, 138, 135, 142, 134, 132, 136, 130, 134, 159, 142, 145, 136, 131, 136, 142, 139, 138, 138, 140, 139, 129, 138, 135, 143, 142, 134, 131, 132, 143, 135, 141, 134, 150, 132, 138, 138, 132, 138, 137, 139, 134, 142, 142, 134, 147, 140, 138, 126, 136, 135, 144, 141, 137, 135, 136, 134, 141, 136, 142, 138, 144, 137, 137, 143, 130, 137, 141, 134, 137, 146, 128, 138, 137, 138, 139, 139, 135, 136, 136, 134, 138, 141, 131, 143, 141, 143, 137, 138, 139, 143, 142, 137, 136, 133, 141, 131, 142, 135, 145, 140, 135, 132, 133, 140, 144, 142, 138, 145, 142, 125, 138, 123, 136, 141, 130, 135, 135, 141, 137, 133, 140, 138, 141, 140, 130, 136, 143, 142, 139, 145, 148, 145, 139, 137, 143, 140, 133, 137, 137, 137, 156, 139, 139, 129, 141, 145, 142, 139, 140, 135, 136, 139, 134, 114, 134, 128, 139, 150, 136, 136, 139, 132, 142, 133, 145, 137, 141, 136, 141, 137, 137, 130, 133, 135, 135, 141, 139, 133, 138, 146, 137, 141, 138, 149, 136, 140, 129, 133, 144, 141, 134, 134, 138, 133, 137, 132, 135, 137, 144, 134, 144, 135, 135, 146, 135, 135, 133, 131, 143, 140, 139, 143, 144, 138, 146, 133, 139, 137, 137, 152, 148, 139, 139, 140, 140, 137, 141, 138, 129, 137, 136, 138, 134, 143, 133, 147, 138, 141, 138, 138, 131, 143, 136, 138, 139, 131, 147, 143, 133, 148, 138, 138, 141, 134, 142, 143, 143, 137, 137, 136, 142, 134, 143, 145, 131, 139, 137, 130, 133, 141, 146, 146, 133, 144, 132, 141, 140, 138, 146, 144, 138, 145, 131, 140, 136, 146, 147, 138, 138, 136, 135, 145, 143, 138, 136, 138, 138, 152, 135, 135, 134, 135, 139, 136, 138, 136, 149, 140, 138, 145, 132, 140, 136, 136, 142, 131, 148, 134, 135, 136, 138, 141, 141, 138, 144, 135, 135, 139, 138, 145, 138, 136, 134, 133, 137, 130, 148, 146, 137, 135, 143, 145, 142, 137, 133, 135, 139, 137, 134, 138, 143, 130, 131, 139, 145, 141, 141, 149, 147, 150, 151, 140, 142, 140, 139, 143, 144, 139, 136, 137, 142, 149, 130, 138, 149, 157, 145, 135, 142, 145, 135, 142, 142, 141, 146, 141, 148, 139, 136, 135, 144, 132, 142, 149, 146, 145, 150, 141, 135, 130, 134, 143, 135, 143, 144, 132, 143, 135, 132, 141, 143, 136, 144, 144, 146, 135, 141, 129, 134, 140, 155, 152, 145, 129, 140, 137, 147, 130, 138, 140, 140, 140, 130, 141, 138, 138, 140, 138, 125, 141, 135, 137, 139, 135, 153, 133, 142, 138, 137, 148, 133, 150, 132, 138, 143, 137, 138, 142, 135, 142, 142, 135, 140, 132, 139, 135, 141, 130, 141, 140, 139, 140, 136, 138, 134, 136, 147, 133, 138, 143, 141, 124, 139, 140, 137, 140, 145, 142, 126, 141, 134, 140, 142, 149, 141, 143, 136, 149, 137, 143, 131, 142, 134, 140, 136, 139, 142, 133, 145, 130, 141, 139, 137, 136, 142, 145, 138, 146, 139, 135, 142, 135, 138, 134, 141, 144, 140, 135, 140, 135, 143, 143, 139, 132, 142, 135, 136, 131, 145, 139, 137, 148, 147, 143, 142, 139, 141, 143, 139, 141, 143, 143, 142, 146, 143, 138, 149, 145, 136, 136, 141, 136, 145, 135, 146, 142, 136, 144, 139, 135, 138, 138, 143, 144, 147, 147, 135, 140, 134, 136, 134, 137, 133, 131, 134, 132, 145, 145, 142, 136, 141, 136, 137, 141, 130, 137, 133, 139, 132, 141, 133, 136, 135, 140, 142, 140, 143, 139, 135, 141, 139, 136, 146, 147, 139, 141, 142, 141, 138, 148, 136, 138, 141, 137, 144, 141, 133, 136, 149, 137, 142, 132, 134, 135, 131, 142, 147, 136, 136, 133, 136, 141, 138, 142, 134, 147, 134, 128, 133, 134, 143, 133, 145, 135, 136, 138, 140, 147, 135, 133, 134, 138, 141, 138, 140, 135, 137, 142, 131, 133, 146, 140, 140, 139, 141, 139, 142, 143, 131, 136, 140, 135, 139, 130, 141, 139, 139, 140, 142, 135, 141, 152, 136, 144, 130, 135, 134, 138, 143, 132, 135, 134, 137, 142, 151, 132, 141, 136, 137, 138, 129, 142, 143, 134, 137, 142, 150, 137, 138, 135, 140, 136, 137, 138, 143, 134, 141, 143, 146, 147, 130, 138, 138, 138, 137, 141, 133, 143, 135, 140, 141, 139, 132, 140, 145, 142, 153, 134, 138, 139, 132, 135, 128, 135, 135, 140, 144, 136, 131, 140, 144, 155, 132, 144, 141, 139, 139, 146, 133, 146, 128, 143, 136, 141, 143, 140, 136, 145, 133, 149, 134, 140, 136, 134, 142, 147, 146, 134, 144, 143, 142, 147, 138, 135, 147, 137, 135, 140, 133, 146, 136, 139, 133, 141, 139, 146, 137, 136, 130, 135, 133, 132, 138, 145, 153, 142, 146, 145, 149, 136, 135, 134, 130, 136, 137, 134, 129, 154, 140, 133, 148, 134, 131, 141, 133, 137, 142, 142, 137, 141, 146, 135, 130, 136, 131, 142, 137, 142, 129, 144, 137, 140, 133, 144, 136, 141, 131, 146, 139, 133, 137, 158, 131, 135, 134, 155, 141, 133, 142, 134, 146, 143, 127, 134, 138, 127, 145, 140, 140, 146, 139, 141, 133, 137, 140, 140, 147, 136, 143, 141, 138, 135, 140, 136, 134, 135, 145, 145, 137, 141, 135, 151, 128, 136, 141, 130, 147, 138, 142, 137, 126, 124, 139, 138, 139, 146, 143, 131, 140, 139, 141, 138, 142, 139, 140, 137, 138, 140, 143, 132, 134, 134, 139, 145, 137, 127, 146, 143, 140, 147, 130, 142, 143, 144, 135, 132, 138, 136, 141, 143, 131, 149, 127, 143, 147, 142, 127, 147, 137, 138, 127, 145, 140, 146, 143, 147, 132, 137, 148, 140, 149, 137, 137, 133, 136, 134, 145, 150, 134, 148, 143, 138, 141, 150, 145, 145, 143, 135, 140, 145, 144, 123, 141, 142, 142, 131, 141, 142, 140, 143, 147, 147, 142, 135, 139, 138, 133, 140, 143, 141, 127, 140, 134, 135, 136, 141, 148, 145, 130, 134, 136, 135, 134, 140, 136, 139, 136, 147, 127, 128, 138, 142, 148, 140, 154, 145, 143, 135, 136, 140, 138, 137, 140, 137, 138, 140, 149, 138, 151, 142, 141, 138, 143, 143, 122, 140, 135, 124, 139, 142, 140, 141, 145, 130, 141, 137, 136, 140, 139, 144, 148, 137, 133, 134, 140, 128, 143, 143, 140, 145, 129, 129, 135, 137, 143, 145, 137, 135, 146, 146, 146, 136, 142, 139, 138, 141, 138, 137, 137, 136, 138, 139, 156, 143, 138, 144, 131, 148, 138, 128, 146, 136, 141, 142, 141, 138, 143, 134, 144, 142, 144, 132, 139, 139, 134, 133, 140, 130, 138, 119, 143, 137, 142, 149, 130, 131, 135, 133, 144, 138, 148, 133, 127, 134, 137, 138, 138, 143, 133, 145, 141, 136, 137, 139, 129, 137, 132, 131, 150, 147, 150, 145, 133, 138, 139, 126, 140, 137, 131, 142, 133, 141, 131, 139, 126, 140, 152, 134, 130, 142, 151, 142, 142, 144, 145, 143, 137, 147, 131, 141, 136, 145, 132, 137, 140, 141, 135, 130, 144, 144, 140, 135, 137, 145, 129, 140, 140, 144, 142, 146, 138, 140, 143, 143, 148, 129, 137, 130, 143, 139, 146, 136, 133, 153, 145, 135, 129, 145, 141, 135, 131, 133, 140, 145, 141, 138, 140, 135, 150, 124, 136, 142, 142, 136, 131, 143, 145, 145, 155, 137, 132, 134, 138, 143, 146, 132, 131, 141, 148, 139, 136, 142, 140, 138, 157, 138, 151, 138, 134, 138, 138, 147, 141, 144, 138, 132, 142, 135, 130, 136, 133, 128, 139, 135, 129, 138, 126, 132, 133, 151, 137, 140, 131, 144, 141, 135, 134, 134, 137, 134, 140, 137, 139, 135, 135, 142, 137, 148, 139, 143, 133, 144, 133, 142, 134, 127, 142, 133, 141, 147, 126, 141, 130, 134, 143, 139, 148, 153, 135, 150, 136, 143, 143, 150, 135, 134, 140, 150, 133, 138, 137, 139, 144, 136, 141, 143, 136, 139, 145, 144, 143, 142, 143, 131, 134, 144, 135, 142, 134, 139, 131, 138, 139, 150, 135, 140, 143, 136, 134, 140, 143, 127, 151, 139, 136, 140, 140, 134, 141, 141, 137, 137, 127, 134, 138, 141, 138, 149, 140, 134, 130, 135, 148, 142, 144, 136, 136, 134, 137, 139, 138, 139, 126, 148, 153, 149, 137, 138, 134, 149, 149, 137, 120, 131, 147, 149, 139, 137, 130, 139, 137, 134, 139, 143, 153, 124, 145, 143, 132, 146, 123, 141, 131, 128, 137, 137, 149, 136, 136, 130, 133, 136, 140, 133, 132, 138, 132, 131, 142, 145, 134, 138, 136, 139, 135, 137, 140, 137, 139, 136, 120, 146, 126, 145, 139, 129, 128, 135, 147, 139, 137, 138, 137, 148, 133, 136, 153, 142, 138, 140, 139, 144, 141, 137, 141, 142, 131, 137, 122, 136, 146, 136, 138, 137, 138, 135, 136, 140, 152, 131, 148, 136, 134, 138, 134, 144, 136, 126, 137, 143, 137, 137, 141, 134, 138, 141, 139, 137, 133, 128, 132, 142, 144, 150, 147, 133, 133, 150, 137, 144, 132, 140, 137, 134, 138, 142, 139, 142, 150, 147, 137, 138, 140, 138, 149, 142, 130, 132, 135, 136, 129, 140, 147, 138, 141, 149, 150, 147, 136, 130, 134, 137, 134, 151, 130, 138, 128, 141, 140, 141, 134, 133, 133, 137, 135, 139, 134, 132, 124, 139, 141, 132, 136, 135, 140, 148, 147, 142, 144, 144, 143, 141, 145, 133, 139, 134, 137, 155, 153, 142, 134, 144, 139, 135, 143, 144, 142, 139, 142, 135, 139, 131, 134, 145, 143, 126, 143, 125, 133, 132, 143, 150, 144, 131, 136, 133, 122, 147, 140, 137, 132, 135, 132, 142, 152, 156, 143, 138, 143, 139, 128, 144, 138, 139, 140, 144, 145, 144, 142, 131, 130, 137, 142, 145, 138, 139, 141, 141, 135, 146, 145, 135, 147, 142, 134, 130, 138, 137, 142, 136, 130, 126, 139, 144, 145, 128, 142, 133, 138, 135, 143, 136, 145, 147, 144, 142, 137, 124, 131, 134, 146, 134, 141, 137, 128, 143, 145, 129, 133, 141, 141, 135, 132, 130, 131, 126, 143, 139, 137, 133, 141, 137, 139, 132, 144, 141, 135, 139, 131, 138, 141, 141, 133, 137, 154, 139, 148, 135, 151, 134, 145, 134, 139, 134, 134, 132, 140, 137, 147, 144, 141, 138, 143, 145, 137, 141, 140, 130, 140, 138, 139, 142, 145, 136, 133, 130, 135, 136, 138, 146, 155, 131, 138, 136, 149, 148, 137, 138, 133, 137, 131, 131, 138, 143, 149, 143, 139, 140, 131, 141, 147, 137, 133, 134, 137, 128, 148, 138, 139, 133, 149, 136, 136, 129, 132, 142, 128, 140, 144, 144, 138, 135, 136, 140, 136, 142, 141, 148, 136, 145, 135, 143, 145, 140, 143, 140, 141, 134, 124, 138, 131, 141, 146, 144, 143, 144, 141, 134, 144, 138, 143, 133, 131, 135, 146, 138, 137, 136, 149, 144, 142, 143, 143, 144, 134, 142, 133, 136, 141, 137, 141, 143, 137, 135, 136, 130, 145, 138, 129, 137, 137, 144, 141, 127, 143, 143, 130, 141, 138, 141, 139, 144, 126, 142, 140, 133, 137, 141, 141, 138, 139, 140, 145, 139, 138, 139, 132, 147, 136, 134, 146, 138, 135, 139, 131, 138, 149, 135, 134, 128, 128, 134, 133, 140, 136, 139, 131, 144, 131, 138, 139, 124, 132, 139, 137, 149, 140, 149, 141, 138, 140, 138, 145, 140, 136, 137, 146, 145, 127, 128, 142, 125, 134, 135, 138, 134, 143, 137, 130, 137, 137, 146, 144, 130, 134, 146, 135, 133, 132, 143, 135, 136, 146, 136, 126, 131, 136, 136, 138, 134, 131, 141, 132, 140, 148, 136, 145, 140, 137, 141, 131, 136, 144, 153, 148, 137, 144, 130, 134, 145, 132, 130, 132, 139, 136, 134, 136, 133, 153, 136, 134, 124, 131, 145, 140, 138, 136, 138, 138, 141, 137, 130, 138, 138, 147, 133, 137, 140, 135, 142, 138, 134, 148, 133, 141, 143, 138, 138, 139, 147, 140, 136, 136, 141, 143, 147, 147, 152, 134, 143, 137, 141, 132, 138, 139, 142, 137, 127, 134, 121, 141, 138, 143, 138, 140, 142, 131, 140, 134, 139, 141, 145, 135, 148, 137, 148, 138, 133, 135, 135, 140, 136, 137, 132, 141, 139, 142, 138, 145, 132, 133, 137, 135, 140, 135, 142, 137, 138, 144, 140, 141, 144, 139, 130, 136, 139, 144, 141, 140, 143, 142, 132, 132, 137, 137, 136, 137, 133, 149, 143, 149, 135, 134, 147, 142, 145, 147, 139, 137, 133, 140, 143, 142, 134, 145, 136, 140, 141, 134, 143, 134, 140, 143, 148, 138, 144, 130, 137, 133, 136, 142, 137, 134, 137, 131, 137, 126, 145, 135, 134, 139, 135, 133, 137, 141, 133, 151, 144, 142, 141, 135, 136, 142, 140, 135, 132, 134, 143, 123, 141, 140, 132, 144, 139, 137, 133, 138, 137, 139, 136, 133, 142, 144, 139, 136, 139, 147, 138, 144, 135, 133, 142, 138, 140, 142, 131, 131, 137, 145, 142, 141, 137, 143, 134, 134, 141, 149, 141, 135, 133, 146, 137, 138, 138, 147, 135, 140, 137, 146, 143, 136, 139, 142, 132, 144, 134, 139, 140, 141, 141, 150, 143, 136, 135, 143, 137, 138, 136, 133, 131, 135, 133, 137, 136, 138, 132, 138, 148, 139, 139, 140, 147, 139, 147, 138, 142, 139, 135, 143, 130, 141, 146, 135, 140, 130, 136, 134, 138, 156, 142, 146, 139, 144, 143, 142, 138, 147, 140, 146, 138, 143, 138, 141, 140, 138, 137, 139, 130, 143, 145, 136, 141, 141, 143, 137, 145, 147, 131, 136, 133, 127, 139, 133, 142, 137, 133, 148, 131, 143, 141, 142, 137, 136, 147, 138, 140, 130, 146, 138, 142, 138, 139, 141, 142, 133, 151, 145, 138, 132, 139, 135, 132, 145, 139, 146, 141, 139, 135, 150, 140, 136, 143, 138, 137, 130, 140, 138, 144, 142, 137, 135, 139, 134, 137, 142, 143, 144, 140, 132, 140, 144, 143, 140, 138, 137, 139, 132, 143, 145, 143, 136, 140, 140, 143, 129, 139, 132, 138, 144, 141, 142, 137, 138, 134, 141, 145, 138, 140, 146, 142, 141, 142, 138, 142, 141, 139, 137, 141, 141, 142, 140, 133, 135, 141, 140, 132, 138, 144, 134, 144, 141, 143, 140, 137, 143, 144, 138, 134, 144, 140, 136, 135, 142, 136, 139, 141, 141, 141, 137, 140, 145, 139, 138, 138, 136, 137, 141, 142, 138, 145, 139, 141, 142, 139, 142, 141, 143, 137, 138, 139, 144, 145, 135, 136, 142, 140, 132, 134, 135, 143, 139, 134, 135, 141, 140, 141, 138, 138, 137, 129, 136, 141, 144, 143, 139, 136, 138, 133, 143, 142, 142, 141, 138, 140, 133, 138, 141, 145, 138, 137, 142, 139, 138, 142, 144, 137, 142, 134, 134, 136, 139, 138, 137, 136, 142, 141, 143, 135, 141, 142, 138, 142, 132, 135, 138, 134, 133, 138, 142, 145, 138, 137, 140, 144, 141, 142, 140, 139, 142, 151, 134, 139, 134, 135, 135, 146, 143, 141, 149, 148, 139, 141, 143, 138, 139, 133, 139, 132, 140, 137, 138, 138, 131, 140, 143, 143, 139, 132, 134, 139, 133, 138, 140, 135, 147, 135, 143, 134, 133, 141, 136, 142, 130, 139, 142, 131, 135, 142, 139, 144, 141, 142, 147, 140, 145, 138, 140, 134, 143, 142, 137, 148, 143, 135, 140, 137, 148, 137, 146, 144, 138, 139, 131, 140, 136, 140, 148, 141, 140, 135, 141, 136, 153, 145, 138, 141, 140, 141, 138, 133, 143, 136, 139, 142, 138, 141, 137, 141, 145, 130, 136, 140, 136, 142, 134, 139, 142, 129, 140, 144, 141, 144, 136, 147, 136, 141, 146, 138, 142, 141, 140, 139, 135, 137, 133, 139, 143, 143, 141, 134, 139, 142, 141, 136, 133, 137, 146, 134, 145, 145, 143, 137, 137, 135, 141, 136, 138, 139, 131, 138, 144, 141, 133, 143, 138, 140, 138, 138, 140, 144, 144, 145, 139, 141, 141, 143, 145, 134, 140, 135, 132, 139, 131, 135, 132, 139, 139, 135, 143, 141, 142, 136, 137, 141, 138, 137, 143, 143, 135, 136, 146, 142, 134, 139, 132, 148, 138, 137, 136, 142, 138, 143, 142, 134, 135, 139, 148, 145, 139, 142, 140, 143, 133, 140, 144, 148, 138, 139, 141, 150, 133, 138, 144, 139, 147, 139, 139, 134, 136, 143, 147, 140, 138, 147, 141, 141, 139, 137, 142, 145, 143, 144, 142, 138, 134, 136, 138, 146, 135, 140, 139, 140, 142, 138, 131, 133, 137, 140, 145, 140, 142, 139, 140, 135, 144, 137, 135, 144, 143, 146, 141, 138, 141, 141, 147, 140, 144, 136, 142, 137, 135, 142, 140, 140, 146, 142, 139, 148, 143, 147, 128, 132, 143, 145, 145, 141, 140, 137, 139, 141, 140, 143, 137, 141, 142, 140, 140, 148, 143, 139, 137, 136, 130, 137, 140, 141, 139, 131, 150, 148, 141, 152, 133, 139, 141, 140, 131, 134, 141, 139, 151, 133, 151, 150, 141, 140, 133, 128, 136, 136, 130, 137, 133, 134, 132, 142, 131, 138, 140, 140, 134, 132, 137, 138, 141, 142, 137, 137, 150, 138, 144, 136, 149, 134, 126, 136, 142, 132, 142, 135, 127, 141, 135, 137, 143, 139, 141, 137, 157, 129, 142, 135, 127, 142, 129, 137, 135, 134, 120, 128, 141, 147, 148, 135, 139, 140, 132, 140, 142, 134, 141, 138, 138, 137, 141, 128, 132, 136, 138, 146, 134, 137, 134, 142, 140, 142, 135, 144, 142, 141, 138, 131, 130, 129, 152, 128, 134, 133, 132, 135, 139, 136, 135, 131, 130, 139, 134, 140, 137, 137, 135, 133, 139, 130, 143, 139, 139, 128, 140, 144, 137, 137, 141, 128, 133, 135, 146, 146, 141, 129, 135, 138, 145, 143, 129, 145, 138, 153, 136, 137, 138, 137, 144, 151, 129, 143, 132, 151, 139, 148, 136, 134, 143, 132, 142, 138, 145, 137, 137, 131, 142, 141, 145, 133, 139, 138, 145, 149, 137, 140, 145, 132, 135, 131, 136, 128, 141, 141, 138, 140, 135, 141, 135, 140, 135, 141, 143, 135, 133, 144, 152, 143, 141, 136, 139, 128, 148, 153, 131, 146, 149, 125, 142, 137, 136, 136, 133, 124, 144, 140, 137, 134, 137, 151, 134, 127, 129, 138, 146, 130, 138, 138, 139, 136, 136, 136, 142, 139, 146, 131, 156, 147, 137, 128, 141, 132, 149, 131, 128, 140, 138, 139, 137, 147, 132, 140, 135, 136, 140, 142, 134, 138, 131, 140, 140, 134, 132, 138, 150, 143, 132, 141, 139, 141, 140, 140, 138, 141, 134, 143, 140, 133, 143, 140, 135, 132, 139, 126, 138, 136, 145, 138, 144, 137, 140, 144, 137, 145, 139, 136, 137, 145, 144, 145, 132, 125, 133, 137, 136, 139, 135, 140, 141, 141, 141, 138, 131, 141, 144, 138, 135, 143, 143, 133, 135, 140, 141, 133, 149, 141, 136, 131, 136, 138, 139, 134, 128, 133, 139, 130, 135, 146, 140, 144, 140, 150, 134, 128, 131, 135, 147, 139, 155, 129, 139, 137, 135, 134, 143, 139, 147, 139, 138, 135, 136, 141, 132, 136, 137, 144, 139, 138, 135, 137, 139, 139, 148, 135, 139, 144, 136, 145, 133, 133, 136, 133, 147, 139, 141, 138, 141, 147, 130, 135, 138, 135, 151, 147, 142, 138, 131, 139, 141, 134, 140, 143, 142, 137, 136, 149, 132, 140, 150, 139, 134, 144, 143, 128, 140, 146, 139, 144, 144, 137, 138, 127, 137, 146, 142, 140, 144, 133, 131, 139, 133, 140, 136, 151, 131, 146, 147, 139, 138, 139, 149, 147, 132, 137, 143, 133, 155, 128, 142, 141, 146, 140, 128, 143, 153, 136, 148, 137, 134, 152, 148, 137, 149, 141, 144, 136, 142, 132, 143, 134, 145, 139, 145, 140, 133, 155, 129, 148, 134, 152, 138, 145, 132, 138, 134, 143, 141, 137, 135, 132, 127, 128, 148, 143, 132, 132, 137, 132, 141, 142, 133, 121, 142, 151, 144, 141, 147, 148, 137, 136, 138, 142, 128, 142, 138, 147, 134, 135, 137, 127, 138, 135, 136, 137, 131, 132, 149, 140, 149, 147, 145, 138, 139, 137, 136, 147, 135, 139, 138, 132, 143, 143, 162, 141, 136, 147, 132, 134, 143, 139, 141, 141, 147, 147, 143, 135, 133, 139, 137, 137, 145, 131, 128, 136, 133, 151, 139, 146, 139, 140, 144, 136, 147, 140, 136, 134, 144, 140, 146, 137, 136, 135, 139, 132, 144, 138, 132, 142, 138, 143, 130, 140, 136, 138, 130, 138, 136, 141, 130, 137, 130, 156, 132, 141, 137, 132, 135, 133, 137, 135, 147, 129, 147, 122, 131, 141, 149, 146, 139, 148, 133, 131, 133, 146, 139, 130, 132, 131, 142, 140, 138, 140, 132, 133, 130, 144, 135, 138, 145, 132, 121, 145, 129, 132, 141, 135, 139, 149, 133, 145, 141, 141, 135, 137, 145, 142, 140, 135, 132, 144, 142, 139, 129, 131, 136, 148, 135, 128, 136, 141, 139, 128, 139, 145, 141, 138, 148, 153, 146, 138, 139, 141, 135, 138, 130, 139, 141, 131, 144, 136, 132, 134, 150, 145, 128, 140, 140, 136, 130, 147, 139, 138, 143, 154, 136, 136, 137, 139, 143, 136, 142, 127, 134, 130, 139, 142, 138, 145, 130, 129, 146, 122, 147, 140, 133, 132, 138, 129, 140, 136, 132, 150, 135, 145, 132, 135, 139, 133, 144, 138, 135, 145, 142, 128, 136, 141, 145, 134, 137, 126, 150, 137, 130, 148, 138, 129, 140, 135, 141, 133, 150, 145, 152, 124, 125, 143, 134, 140, 135, 155, 125, 146, 142, 133, 128, 140, 152, 138, 142, 131, 152, 147, 145, 135, 135, 128, 147, 142, 139, 159, 147, 133, 153, 144, 129, 132, 138, 144, 147, 145, 133, 142, 148, 149, 151, 136, 143, 141, 147, 147, 132, 129, 136, 128, 143, 136, 143, 140, 146, 143, 130, 141, 143, 146, 129, 135, 143, 131, 143, 140, 134, 129, 134, 136, 152, 137, 139, 147, 136, 143, 144, 138, 139, 131, 137, 136, 142, 150, 140, 149, 130, 145, 161, 141, 143, 142, 137, 146, 147, 147, 141, 134, 142, 140, 141, 148, 123, 152, 141, 143, 133, 129, 143, 141, 127, 136, 139, 136, 130, 138, 137, 135, 133, 143, 138, 144, 154, 133, 137, 140, 149, 140, 141, 134, 142, 127, 127, 138, 135, 129, 133, 146, 127, 126, 133, 132, 150, 155, 140, 135, 142, 147, 137, 137, 135, 145, 155, 136, 154, 145, 146, 126, 131, 134, 133, 136, 152, 147, 147, 147, 138, 143, 142, 144, 136, 133, 155, 130, 144, 149, 139, 142, 141, 130, 130, 136, 127, 137, 127, 154, 134, 119, 145, 139, 130, 135, 129, 145, 143, 119, 140, 140, 139, 152, 136, 135, 138, 152, 130, 136, 134, 137, 126, 150, 141, 138, 133, 135, 133, 147, 141, 141, 133, 143, 134, 137, 131, 131, 138, 139, 128, 131, 132, 133, 145, 134, 142, 136, 139, 131, 129, 144, 144, 136, 130, 149, 142, 135, 144, 146, 144, 138, 140, 146, 145, 133, 139, 136, 147, 147, 133, 141, 139, 136, 135, 155, 151, 147, 138, 132, 133, 147, 141, 143, 135, 146, 131, 130, 142, 132, 145, 137, 134, 131, 139, 144, 140, 136, 145, 134, 154, 140, 139, 139, 142, 145, 141, 140, 131, 135, 139, 135, 142, 145, 142, 137, 140, 140, 140, 139, 144, 136, 137, 142, 139, 148, 138, 139, 144, 125, 139, 143, 137, 137, 140, 140, 142, 139, 135, 134, 141, 134, 143, 137, 134, 141, 139, 128, 139, 132, 133, 141, 130, 141, 140, 131, 141, 135, 137, 139, 143, 136, 134, 138, 140, 143, 133, 138, 130, 143, 145, 145, 145, 139, 142, 129, 136, 145, 136, 134, 136, 138, 140, 137, 142, 132, 139, 140, 143, 139, 140, 142, 144, 138, 137, 145, 132, 137, 140, 142, 131, 144, 138, 135, 134, 135, 141, 139, 138, 143, 142, 135, 142, 143, 134, 137, 140, 134, 138, 156, 140, 142, 138, 133, 131, 134, 141, 134, 138, 131, 136, 143, 139, 136, 135, 135, 141, 141, 131, 134, 138, 144, 141, 121, 145, 140, 137, 139, 138, 153, 144, 135, 123, 148, 138, 130, 139, 134, 146, 133, 143, 145, 136, 140, 140, 141, 142, 135, 146, 141, 138, 135, 139, 147, 138, 141, 149, 131, 150, 145, 139, 136, 144, 139, 134, 135, 135, 138, 145, 134, 142, 132, 132, 138, 141, 143, 139, 132, 135, 132, 140, 140, 152, 142, 141, 138, 150, 145, 145, 133, 146, 136, 133, 137, 143, 132, 142, 138, 151, 134, 138, 134, 140, 138, 139, 146, 132, 139, 141, 141, 139, 135, 133, 144, 137, 138, 144, 151, 124, 146, 133, 140, 136, 135, 136, 136, 144, 142, 142, 136, 140, 143, 138, 141, 144, 153, 136, 130, 143, 131, 145, 136, 148, 140, 137, 133, 137, 134, 139, 146, 145, 144, 139, 137, 144, 129, 142, 142, 139, 136, 138, 138, 143, 135, 145, 146, 146, 135, 136, 141, 140, 137, 131, 146, 140, 131, 134, 130, 138, 132, 138, 141, 136, 143, 142, 131, 138, 143, 139, 135, 141, 137, 135, 138, 141, 140, 141, 135, 135, 142, 133, 140, 138, 138, 144, 141, 141, 139, 139, 142, 136, 130, 144, 145, 128, 135, 137, 149, 133, 139, 136, 134, 137, 139, 142, 141, 143, 144, 132, 127, 133, 138, 147, 134, 142, 146, 138, 140, 142, 147, 150, 127, 140, 144, 149, 135, 137, 144, 134, 149, 133, 143, 138, 135, 144, 144, 151, 139, 146, 135, 141, 145, 142, 137, 139, 140, 139, 132, 131, 133, 131, 135, 139, 145, 140, 137, 134, 138, 151, 138, 139, 134, 134, 140, 139, 145, 134, 146, 142, 129, 141, 137, 139, 138, 134, 133, 146, 133, 139, 143, 137, 136, 141, 142, 138, 135, 138, 137, 147, 126, 143, 135, 140, 136, 135, 142, 134, 143, 136, 143, 139, 145, 137, 136, 133, 143, 136, 136, 139, 137, 137, 151, 146, 129, 127, 132, 129, 129, 142, 139, 133, 136, 139, 150, 137, 140, 130, 144, 142, 135, 143, 130, 138, 136, 144, 142, 134, 138, 143, 137, 138, 141, 135, 133, 131, 142, 144, 142, 134, 137, 127, 140, 134, 139, 142, 144, 134, 135, 138, 140, 142, 147, 143, 130, 145, 137, 140, 132, 148, 165, 139, 139, 134, 130, 140, 134, 132, 138, 146, 140, 125, 141, 142, 131, 134, 142, 144, 133, 139, 141, 128, 138, 132, 148, 135, 143, 132, 149, 131, 152, 142, 140, 140, 138, 141, 137, 129, 141, 149, 133, 142, 135, 141, 132, 134, 141, 138, 141, 145, 146, 143, 138, 143, 142, 144, 124, 139, 134, 135, 142, 137, 136, 129, 146, 145, 144, 128, 142, 140, 141, 148, 135, 142, 136, 132, 134, 148, 143, 139, 141, 145, 138, 141, 131, 121, 134, 126, 146, 137, 133, 146, 151, 150, 145, 130, 136, 134, 143, 152, 140, 131, 128, 144, 136, 138, 136, 151, 129, 145, 148, 130, 130, 144, 137, 138, 143, 138, 151, 142, 148, 151, 129, 129, 144, 151, 135, 130, 145, 143, 146, 141, 145, 135, 134, 146, 146, 150, 139, 132, 143, 132, 144, 139, 140, 136, 126, 151, 149, 145, 135, 137, 139, 146, 138, 128, 129, 142, 142, 142, 136, 142, 136, 125, 136, 150, 135, 148, 136, 132, 140, 143, 150, 129, 142, 139, 135, 133, 130, 151, 150, 132, 134, 137, 130, 134, 149, 141, 137, 141, 131, 146, 140, 140, 128, 143, 139, 151, 141, 138, 124, 139, 148, 132, 139, 132, 146, 145, 134, 146, 129, 133, 142, 136, 144, 132, 136, 139, 141, 143, 148, 138, 129, 143, 151, 144, 142, 140, 147, 143, 149, 129, 131, 142, 145, 141, 141, 146, 129, 136, 134, 140, 141, 144, 146, 136, 132, 140, 137, 134, 143, 140, 128, 147, 130, 135, 136, 129, 146, 148, 146, 143, 149, 131, 139, 136, 153, 149, 131, 139, 129, 143, 141, 143, 138, 127, 139, 148, 135, 144, 143, 137, 137, 142, 137, 132, 141, 136, 138, 147, 140, 140, 133, 145, 143, 139, 143, 141, 146, 131, 137, 145, 146, 130, 141, 139, 152, 136, 141, 137, 126, 147, 144, 128, 144, 133, 131, 136, 144, 144, 148, 145, 141, 147, 136, 127, 147, 141, 150, 151, 145, 132, 137, 154, 147, 152, 137, 133, 145, 145, 153, 137, 136, 145, 147, 152, 137, 137, 139, 131, 127, 140, 139, 140, 136, 138, 138, 127, 142, 136, 133, 147, 138, 132, 135, 149, 147, 134, 138, 138, 131, 141, 130, 140, 138, 144, 138, 136, 141, 135, 149, 137, 130, 142, 148, 143, 134, 128, 133, 146, 127, 138, 139, 144, 139, 138, 147, 150, 138, 127, 131, 141, 138, 142, 146, 142, 152, 137, 128, 141, 141, 141, 137, 141, 146, 138, 139, 135, 130, 131, 129, 144, 146, 143, 142, 137, 139, 140, 136, 132, 137, 138, 134, 148, 155, 142, 136, 145, 145, 144, 143, 137, 145, 136, 140, 141, 145, 148, 131, 150, 144, 131, 146, 145, 142, 138, 131, 131, 133, 144, 134, 144, 136, 138, 142, 130, 143, 141, 119, 134, 142, 134, 137, 137, 135, 134, 128, 140, 149, 139, 148, 141, 139, 147, 134, 146, 131, 133, 138, 134, 145, 142, 139, 147, 134, 136, 134, 136, 133, 149, 137, 129, 138, 133, 130, 125, 134, 144, 139, 130, 146, 140, 136, 141, 140, 136, 138, 142, 143, 147, 138, 142, 141, 132, 130, 134, 134, 132, 144, 140, 147, 144, 141, 137, 137, 134, 139, 143, 143, 143, 139, 133, 143, 136, 133, 138, 134, 146, 145, 139, 134, 144, 133, 132, 137, 139, 138, 140, 145, 133, 146, 136, 139, 137, 137, 138, 138, 133, 140, 144, 130, 130, 136, 133, 141, 151, 141, 135, 133, 131, 134, 132, 143, 136, 142, 146, 137, 144, 141, 142, 128, 138, 133, 130, 145, 140, 142, 143, 132, 140, 142, 135, 136, 140, 135, 136, 144, 144, 144, 138, 147, 143, 143, 137, 136, 133, 142, 135, 125, 136, 136, 135, 153, 133, 133, 140, 130, 135, 141, 137, 140, 129, 141, 139, 136, 134, 137, 135, 139, 137, 135, 139, 132, 148, 144, 136, 142, 141, 129, 137, 139, 139, 132, 137, 139, 141, 140, 148, 142, 135, 144, 155, 136, 140, 136, 142, 129, 133, 134, 140, 141, 140, 140, 146, 146, 142, 133, 138, 132, 136, 124, 151, 139, 147, 139, 138, 140, 139, 140, 144, 135, 144, 137, 139, 133, 139, 133, 140, 139, 151, 136, 131, 145, 136, 152, 126, 146, 135, 139, 139, 145, 137, 142, 150, 140, 147, 139, 141, 141, 143, 141, 141, 133, 146, 140, 140, 135, 138, 140, 138, 137, 137, 144, 141, 140, 139, 135, 140, 130, 138, 141, 132, 143, 135, 137, 142, 151, 135, 142, 139, 139, 141, 143, 132, 137, 140, 138, 134, 137, 140, 139, 139, 135, 140, 140, 136, 144, 133, 143, 135, 137, 139, 140, 137, 137, 140, 137, 140, 137, 148, 137, 141, 146, 139, 143, 142, 136, 138, 138, 135, 135, 137, 139, 141, 139, 149, 134, 140, 136, 133, 132, 138, 135, 145, 132, 129, 143, 137, 143, 140, 137, 147, 139, 130, 134, 135, 147, 134, 140, 138, 132, 135, 138, 142, 147, 133, 132, 130, 136, 131, 139, 143, 140, 139, 140, 130, 134, 132, 132, 132, 145, 136, 129, 139, 144, 138, 137, 153, 141, 138, 151, 129, 136, 133, 150, 147, 135, 134, 134, 140, 150, 148, 126, 144, 140, 141, 141, 139, 132, 141, 146, 128, 143, 133, 152, 137, 127, 146, 142, 145, 136, 149, 140, 133, 138, 136, 136, 142, 136, 126, 145, 138, 145, 145, 140, 134, 139, 137, 147, 150, 129, 139, 135, 146, 143, 149, 141, 136, 125, 136, 135, 138, 136, 138, 140, 141, 134, 130, 137, 137, 133, 125, 140, 141, 136, 147, 139, 141, 133, 136, 141, 150, 129, 130, 142, 146, 132, 149, 135, 134, 140, 136, 149, 138, 137, 148, 129, 134, 136, 136, 140, 139, 141, 132, 147, 144, 137, 142, 137, 142, 134, 145, 133, 143, 137, 139, 135, 136, 130, 142, 139, 141, 146, 134, 144, 135, 136, 137, 151, 139, 134, 132, 139, 140, 137, 155, 130, 136, 133, 141, 143, 137, 134, 141, 147, 135, 144, 134, 129, 133, 146, 141, 145, 132, 143, 132, 140, 143, 147, 135, 140, 142, 141, 148, 140, 143, 131, 138, 139, 139, 138, 147, 135, 128, 131, 143, 140, 130, 134, 135, 139, 147, 137, 129, 132, 143, 143, 137, 144, 152, 136, 140, 146, 143, 149, 142, 136, 138, 144, 138, 142, 145, 137, 139, 137, 139, 144, 135, 140, 138, 140, 139, 139, 133, 132, 145, 129, 131, 133, 139, 139, 127, 145, 144, 154, 148, 140, 145, 140, 141, 130, 147, 139, 142, 131, 138, 152, 139, 144, 140, 141, 136, 142, 154, 134, 130, 139, 137, 134, 146, 136, 142, 139, 134, 134, 141, 147, 137, 137, 129, 137, 136, 138, 133, 130, 135, 137, 127, 139, 139, 134, 164, 141, 136, 140, 142, 151, 138, 133, 160, 142, 135, 148, 146, 138, 132, 131, 137, 153, 135, 135, 136, 136, 150, 133, 144, 135, 143, 136, 134, 129, 143, 141, 138, 156, 143, 134, 124, 136, 137, 139, 137, 133, 130, 140, 137, 143, 139, 144, 148, 133, 127, 142, 146, 143, 148, 135, 131, 128, 147, 143, 142, 135, 148, 141, 150, 140, 136, 138, 136, 141, 132, 149, 141, 142, 133, 135, 145, 147, 129, 141, 130, 121, 141, 147, 132, 134, 144, 142, 144, 125, 142, 132, 131, 146, 145, 144, 142, 137, 134, 144, 143, 133, 133, 137, 136, 139, 138, 140, 136, 133, 142, 145, 148, 142, 140, 144, 140, 134, 137, 144, 142, 135, 149, 138, 134, 131, 138, 152, 124, 142, 130, 134, 132, 143, 130, 135, 142, 140, 150, 139, 146, 143, 142, 141, 134, 138, 143, 154, 140, 135, 138, 134, 148, 132, 149, 130, 136, 134, 143, 140, 145, 143, 146, 140, 138, 140, 134, 147, 138, 143, 134, 131, 152, 142, 139, 136, 143, 138, 137, 128, 137, 139, 133, 140, 138, 135, 137, 126, 133, 137, 138, 143, 133, 133, 142, 129, 120, 139, 139, 135, 137, 133, 145, 136, 133, 126, 152, 133, 139, 136, 139, 142, 141, 133, 134, 127, 139, 127, 132, 144, 135, 145, 127, 144, 132, 141, 132, 145, 139, 138, 141, 131, 140, 143, 146, 131, 150, 135, 136, 136, 137, 145, 143, 142, 142, 150, 146, 132, 148, 138, 141, 130, 131, 138, 144, 132, 137, 136, 142, 141, 146, 131, 134, 133, 136, 146, 134, 147, 143, 144, 143, 136, 144, 137, 137, 149, 142, 135, 144, 148, 138, 136, 136, 140, 136, 135, 137, 137, 133, 148, 136, 128, 135, 147, 141, 149, 144, 135, 133, 134, 126, 136, 152, 135, 142, 143, 133, 140, 144, 144, 137, 134, 144, 134, 144, 136, 132, 133, 141, 142, 132, 146, 133, 141, 124, 137, 145, 150, 141, 146, 133, 142, 144, 144, 133, 143, 136, 138, 143, 159, 148, 144, 141, 141, 141, 142, 152, 145, 153, 139, 137, 137, 127, 127, 142, 151, 144, 138, 143, 139, 130, 137, 138, 136, 131, 140, 140, 140, 142, 141, 142, 138, 128, 139, 139, 143, 143, 138, 139, 144, 141, 132, 140, 132, 141, 136, 133, 138, 147, 134, 142, 143, 140, 146, 147, 138, 141, 132, 145, 140, 134, 136, 138, 140, 128, 134, 134, 142, 134, 135, 133, 138, 134, 130, 148, 144, 137, 140, 138, 140, 137, 136, 141, 140, 145, 143, 122, 131, 141, 142, 137, 132, 142, 141, 136, 137, 137, 138, 135, 140, 128, 135, 138, 148, 127, 151, 144, 138, 144, 135, 137, 138, 137, 137, 124, 136, 144, 142, 138, 146, 136, 131, 138, 134, 139, 145, 125, 133, 132, 138, 145, 141, 135, 139, 145, 146, 141, 136, 133, 142, 138, 146, 138, 138, 150, 137, 142, 144, 140, 133, 143, 128, 134, 137, 139, 147, 143, 134, 131, 146, 142, 129, 136, 135, 137, 134, 143, 141, 141, 139, 143, 141, 136, 141, 138, 127, 132, 133, 140, 131, 145, 139, 132, 139, 124, 134, 132, 130, 135, 132, 133, 132, 138, 139, 144, 143, 128, 135, 142, 140, 143, 136, 130, 133, 147, 137, 128, 140, 140, 140, 138, 144, 138, 141, 131, 139, 131, 142, 141, 135, 141, 125, 140, 134, 145, 137, 132, 137, 142, 134, 137, 137, 133, 129, 138, 140, 140, 137, 136, 137, 140, 134, 144, 144, 140, 139, 140, 126, 137, 139, 136, 131, 135, 135, 147, 146, 138, 143, 140, 133, 139, 141, 140, 139, 127, 134, 142, 138, 143, 139, 151, 149, 135, 139, 140, 145, 134, 143, 145, 143, 139, 147, 133, 142, 137, 126, 130, 134, 136, 137, 140, 134, 135, 131, 133, 135, 141, 133, 144, 138, 133, 133, 126, 142, 142, 137, 146, 135, 145, 134, 143, 143, 147, 138, 138, 144, 139, 139, 134, 141, 149, 143, 143, 134, 128, 139, 141, 150, 140, 133, 136, 139, 132, 146, 147, 148, 134, 141, 154, 131, 144, 136, 142, 135, 141, 147, 148, 147, 137, 141, 132, 146, 139, 133, 139, 146, 149, 131, 128, 126, 139, 150, 142, 139, 131, 142, 133, 136, 138, 141, 144, 140, 145, 140, 145, 135, 119, 135, 140, 136, 135, 138, 145, 148, 136, 128, 135, 138, 132, 129, 150, 147, 130, 143, 131, 139, 138, 141, 142, 140, 136, 145, 133, 144, 124, 140, 139, 148, 140, 142, 143, 136, 142, 145, 139, 142, 134, 145, 132, 145, 135, 133, 142, 132, 145, 135, 137, 134, 135, 137, 135, 150, 136, 144, 131, 139, 137, 139, 146, 133, 144, 136, 138, 138, 139, 141, 147, 137, 140, 132, 142, 130, 148, 141, 138, 143, 143, 145, 135, 141, 132, 138, 142, 141, 134, 146, 143, 138, 136, 135, 139, 144, 137, 136, 139, 128, 137, 145, 132, 135, 142, 135, 138, 132, 137, 139, 135, 148, 131, 147, 135, 140, 149, 146, 160, 151, 138, 130, 132, 138, 135, 137, 144, 130, 135, 143, 141, 132, 148, 140, 141, 136, 134, 140, 137, 134, 156, 148, 146, 137, 146, 142, 135, 139, 143, 129, 139, 135, 141, 144, 146, 138, 148, 135, 142, 139, 139, 133, 146, 141, 141, 139, 135, 141, 139, 139, 136, 142, 134, 146, 136, 140, 149, 140, 141, 135, 135, 134, 138, 140, 138, 141, 136, 138, 136, 140, 153, 137, 136, 141, 140, 135, 140, 140, 141, 143, 134, 131, 140, 136, 142, 136, 142, 142, 145, 133, 137, 138, 135, 137, 139, 135, 135, 140, 126, 153, 130, 144, 140, 140, 138, 144, 140, 133, 140, 135, 147, 137, 135, 137, 137, 149, 134, 134, 129, 133, 138, 141, 147, 140, 135, 137, 140, 143, 134, 143, 133, 132, 144, 141, 139, 130, 134, 134, 142, 133, 138, 142, 144, 145, 131, 136, 136, 140, 150, 140, 145, 136, 139, 141, 136, 144, 137, 133, 139, 138, 142, 140, 139, 138, 140, 144, 141, 135, 139, 137, 136, 142, 139, 137, 137, 137, 135, 142, 136, 135, 139, 137, 139, 141, 146, 138, 138, 144, 136, 143, 132, 136, 143, 144, 136, 137, 141, 134, 133, 146, 129, 142, 146, 142, 133, 145, 140, 141, 134, 139, 133, 136, 149, 139, 138, 143, 133, 136, 138, 144, 134, 143, 130, 139, 140, 137, 140, 140, 137, 137, 133, 131, 137, 141, 137, 134, 134, 135, 135, 135, 147, 142, 136, 135, 135, 131, 138, 140, 134, 129, 145, 142, 131, 141, 135, 135, 139, 136, 141, 136, 135, 136, 136, 139, 148, 136, 136, 135, 147, 143, 140, 149, 139, 143, 138, 138, 136, 145, 139, 133, 139, 143, 129, 141, 137, 142, 133, 138, 135, 139, 142, 140, 145, 142, 145, 145, 139, 132, 139, 139, 140, 141, 138, 142, 140, 133, 136, 135, 139, 139, 136, 140, 145, 133, 139, 137, 136, 131, 141, 141, 145, 133, 143, 144, 134, 135, 146, 139, 143, 136, 133, 139, 132, 148, 134, 134, 140, 139, 141, 138, 134, 138, 147, 136, 137, 136, 141, 140, 139, 138, 136, 141, 141, 135, 142, 147, 136, 133, 136, 144, 132, 145, 138, 133, 138, 133, 143, 142, 137, 132, 142, 137, 142, 139, 137, 146, 136, 136, 140, 138, 139, 144, 136, 139, 137, 136, 142, 144, 139, 136, 146, 133, 140, 141, 145, 138, 151, 139, 136, 142, 138, 142, 139, 142, 139, 137, 144, 138, 141, 139, 141, 129, 135, 130, 135, 134, 130, 139, 138, 145, 141, 144, 139, 139, 141, 139, 140, 135, 135, 147, 137, 136, 145, 139, 135, 144, 151, 135, 134, 142, 143, 140, 138, 137, 137, 143, 140, 147, 138, 138, 138, 136, 136, 136, 140, 139, 137, 144, 133, 137, 138, 136, 135, 137, 148, 141, 145, 139, 136, 142, 140, 143, 139, 137, 144, 144, 138, 135, 141, 138, 140, 142, 145, 149, 138, 134, 134, 140, 146, 140, 138, 137, 133, 138, 138, 138, 139, 139, 137, 135, 145, 133, 139, 138, 141, 140, 142, 139, 140, 135, 135, 139, 134, 142, 142, 136, 138, 142, 140, 135, 138, 139, 139, 131, 139, 137, 136, 141, 144, 142, 140, 137, 144, 132, 141, 135, 130, 138, 137, 134, 140, 131, 135, 131, 129, 138, 139, 142, 146, 131, 127, 140, 143, 140, 142, 138, 140, 133, 139, 148, 129, 135, 138, 143, 139, 133, 150, 133, 137, 137, 155, 141, 140, 132, 144, 131, 140, 141, 131, 138, 136, 152, 137, 140, 139, 145, 144, 142, 139, 135, 139, 131, 131, 138, 151, 140, 143, 133, 141, 145, 129, 139, 136, 137, 136, 135, 136, 144, 134, 134, 125, 128, 131, 141, 146, 138, 132, 139, 136, 143, 139, 141, 145, 138, 143, 144, 133, 142, 137, 129, 143, 137, 151, 132, 139, 140, 136, 141, 136, 146, 140, 139, 142, 139, 129, 135, 137, 127, 129, 137, 142, 139, 129, 135, 137, 144, 146, 133, 133, 137, 133, 147, 147, 137, 137, 140, 128, 147, 135, 133, 138, 141, 143, 144, 141, 140, 145, 136, 149, 137, 137, 133, 136, 140, 134, 139, 127, 128, 144, 142, 145, 138, 148, 141, 134, 134, 133, 132, 138, 141, 158, 135, 134, 138, 135, 130, 125, 139, 129, 132, 130, 143, 137, 130, 138, 133, 135, 143, 145, 141, 134, 135, 133, 133, 151, 137, 135, 131, 136, 134, 129, 139, 141, 145, 148, 135, 138, 136, 142, 127, 136, 140, 138, 127, 137, 144, 132, 126, 142, 139, 137, 135, 134, 151, 139, 140, 130, 137, 147, 149, 133, 142, 143, 127, 140, 137, 136, 129, 136, 143, 133, 145, 143, 144, 134, 141, 138, 138, 148, 142, 150, 137, 138, 142, 141, 144, 148, 149, 137, 146, 136, 144, 143, 130, 139, 136, 139, 136, 142, 132, 143, 133, 128, 140, 134, 137, 138, 142, 138, 129, 143, 135, 137, 146, 137, 141, 130, 133, 139, 139, 144, 137, 141, 161, 134, 133, 139, 138, 136, 137, 156, 136, 143, 128, 152, 131, 136, 135, 130, 144, 144, 134, 139, 140, 135, 145, 136, 134, 136, 146, 137, 137, 144, 146, 133, 143, 130, 148, 136, 137, 148, 141, 139, 144, 142, 140, 132, 146, 150, 135, 141, 130, 147, 145, 123, 140, 136, 131, 130, 141, 137, 134, 143, 132, 142, 137, 145, 142, 137, 143, 151, 146, 140, 138, 146, 130, 131, 139, 143, 145, 134, 148, 140, 129, 138, 143, 142, 138, 142, 139, 142, 136, 136, 136, 131, 141, 133, 135, 152, 136, 145, 139, 135, 142, 144, 122, 130, 144, 132, 140, 138, 143, 134, 137, 146, 141, 151, 138, 148, 137, 132, 145, 131, 145, 142, 142, 146, 131, 136, 133, 133, 141, 147, 141, 135, 135, 136, 136, 136, 135, 154, 146, 133, 130, 135, 130, 134, 157, 147, 140, 138, 134, 134, 135, 144, 136, 157, 138, 136, 146, 133, 134, 136, 136, 136, 145, 140, 142, 154, 139, 135, 136, 132, 145, 147, 145, 131, 144, 146, 140, 132, 129, 147, 142, 137, 143, 144, 138, 151, 148, 141, 131, 138, 126, 135, 136, 143, 135, 139, 139, 137, 144, 133, 132, 134, 126, 133, 141, 134, 141, 137, 139, 126, 131, 138, 141, 140, 139, 145, 131, 128, 132, 134, 140, 147, 142, 134, 140, 143, 127, 143, 139, 140, 125, 138, 141, 138, 144, 141, 138, 140, 134, 134, 137, 135, 143, 138, 137, 141, 137, 134, 140, 139, 150, 136, 137, 131, 137, 136, 133, 135, 148, 143, 141, 146, 145, 148, 129, 138, 135, 137, 132, 139, 133, 141, 139, 136, 133, 138, 140, 138, 139, 150, 131, 142, 137, 133, 134, 132, 130, 141, 142, 144, 142, 140, 146, 138, 139, 133, 137, 138, 136, 129, 142, 147, 143, 137, 131, 131, 143, 135, 136, 135, 146, 142, 133, 137, 143, 137, 141, 146, 134, 145, 135, 137, 138, 138, 140, 140, 141, 138, 149, 139, 140, 143, 135, 137, 137, 144, 140, 135, 144, 145, 140, 144, 124, 140, 142, 135, 142, 138, 142, 142, 143, 140, 135, 138, 138, 142, 139, 146, 137, 145, 139, 136, 143, 146, 126, 135, 136, 147, 136, 133, 140, 137, 136, 141, 142, 141, 135, 129, 140, 140, 135, 139, 143, 144, 141, 149, 137, 134, 137, 125, 138, 136, 150, 143, 145, 145, 144, 139, 135, 139, 133, 142, 144, 142, 136, 138, 135, 137, 135, 139, 139, 144, 145, 131, 135, 128, 136, 136, 146, 140, 139, 132, 138, 137, 139, 133, 143, 132, 139, 127, 132, 134, 144, 133, 135, 149, 144, 137, 136, 139, 134, 127, 135, 137, 127, 138, 130, 130, 138, 136, 138, 139, 135, 139, 132, 144, 140, 134, 137, 141, 136, 150, 138, 135, 139, 136, 139, 138, 131, 150, 139, 142, 141, 128, 131, 134, 138, 134, 150, 153, 138, 127, 144, 142, 142, 140, 136, 141, 135, 138, 140, 142, 141, 143, 144, 143, 142, 137, 140, 143, 147, 138, 137, 143, 139, 141, 132, 132, 140, 134, 140, 135, 134, 146, 137, 144, 145, 145, 136, 130, 137, 145, 138, 140, 134, 136, 141, 127, 134, 136, 135, 138, 141, 132, 140, 132, 137, 138, 133, 140, 136, 142, 139, 142, 142, 140, 139, 134, 140, 144, 142, 140, 147, 142, 132, 135, 145, 142, 140, 142, 145, 144, 139, 142, 140, 137, 142, 136, 144, 135, 148, 144, 145, 147, 139, 139, 132, 139, 146, 133, 139, 137, 130, 135, 142, 139, 144, 139, 135, 134, 142, 140, 135, 131, 135, 140, 134, 147, 131, 143, 136, 134, 136, 144, 146, 145, 138, 139, 139, 141, 138, 145, 119, 135, 133, 141, 140, 139, 137, 144, 142, 137, 146, 136, 134, 143, 135, 127, 136, 148, 135, 148, 151, 140, 140, 143, 140, 138, 141, 137, 138, 146, 133, 135, 134, 142, 134, 138, 139, 139, 139, 145, 136, 143, 145, 135, 142, 134, 143, 142, 139, 135, 140, 144, 147, 139, 140, 137, 137, 148, 144, 144, 130, 131, 139, 142, 142, 144, 136, 136, 140, 146, 139, 136, 133, 140, 132, 141, 144, 147, 141, 139, 142, 136, 132, 136, 145, 135, 144, 138, 134, 136, 129, 141, 138, 149, 134, 140, 125, 139, 141, 138, 146, 131, 139, 138, 140, 140, 143, 140, 139, 127, 136, 136, 139, 141, 137, 138, 142, 139, 141, 142, 140, 144, 138, 136, 140, 142, 138, 143, 142, 137, 134, 142, 141, 136, 140, 130, 138, 137, 132, 137, 135, 135, 135, 139, 145, 139, 140, 139, 138, 140, 140, 124, 126, 139, 127, 135, 139, 136, 137, 134, 135, 138, 146, 129, 132, 151, 138, 136, 137, 134, 133, 142, 133, 142, 140, 144, 141, 134, 147, 133, 147, 131, 137, 142, 143, 137, 138, 137, 141, 149, 147, 135, 132, 139, 140, 130, 144, 134, 144, 145, 142, 144, 141, 126, 139, 132, 142, 142, 144, 138, 128, 141, 136, 126, 154, 137, 147, 142, 142, 132, 137, 132, 135, 133, 139, 141, 138, 145, 135, 138, 141, 140, 136, 141, 141, 137, 124, 143, 141, 138, 144, 146, 145, 122, 140, 140, 133, 141, 130, 144, 145, 133, 142, 131, 136, 140, 131, 139, 139, 137, 140, 151, 134, 148, 139, 142, 137, 139, 135, 142, 139, 134, 135, 136, 140, 144, 141, 147, 138, 136, 132, 133, 147, 130, 131, 143, 141, 152, 136, 135, 129, 139, 127, 136, 139, 145, 136, 143, 138, 135, 149, 136, 141, 132, 137, 148, 138, 142, 138, 137, 137, 156, 138, 134, 136, 145, 136, 144, 141, 123, 151, 143, 145, 140, 137, 133, 133, 141, 133, 131, 141, 138, 140, 143, 141, 145, 143, 138, 145, 139, 112, 132, 148, 131, 141, 135, 149, 133, 132, 147, 141, 135, 138, 135, 145, 134, 139, 135, 142, 147, 142, 132, 135, 132, 147, 132, 134, 144, 135, 136, 136, 142, 146, 141, 136, 140, 143, 136, 135, 139, 138, 138, 138, 140, 143, 139, 122, 135, 138, 131, 139, 132, 132, 144, 136, 138, 143, 145, 143, 143, 134, 138, 136, 131, 131, 146, 132, 136, 131, 138, 134, 140, 162, 131, 144, 143, 144, 139, 138, 135, 140, 140, 130, 131, 137, 142, 134, 145, 150, 152, 147, 145, 143, 126, 141, 130, 135, 138, 128, 148, 142, 141, 138, 145, 138, 151, 122, 136, 136, 144, 140, 140, 145, 140, 146, 152, 125, 154, 132, 139, 151, 143, 137, 140, 136, 142, 133, 134, 136, 137, 139, 136, 151, 139, 137, 134, 144, 144, 140, 140, 136, 141, 146, 115, 138, 129, 139, 139, 138, 136, 142, 135, 141, 135, 133, 142, 132, 128, 133, 140, 145, 142, 144, 139, 131, 129, 131, 152, 132, 142, 139, 134, 132, 136, 132, 142, 133, 134, 141, 142, 140, 156, 147, 135, 143, 144, 134, 142, 128, 137, 152, 132, 131, 139, 138, 139, 136, 136, 142, 138, 131, 134, 129, 138, 135, 134, 135, 138, 140, 139, 135, 127, 142, 141, 139, 136, 140, 134, 131, 136, 148, 139, 141, 146, 137, 132, 144, 141, 127, 149, 145, 136, 139, 142, 130, 142, 133, 131, 139, 140, 130, 144, 135, 144, 144, 139, 138, 136, 134, 143, 136, 140, 136, 131, 128, 142, 141, 136, 141, 146, 143, 134, 137, 137, 144, 145, 140, 141, 137, 140, 131, 142, 142, 138, 134, 152, 143, 144, 143, 146, 144, 139, 139, 136, 140, 135, 137, 141, 135, 139, 136, 132, 135, 137, 141, 134, 128, 133, 136, 139, 149, 141, 137, 146, 145, 139, 137, 137, 133, 136, 132, 133, 131, 133, 142, 146, 134, 138, 132, 140, 142, 132, 143, 129, 113, 132, 148, 138, 137, 136, 146, 146, 134, 141, 134, 144, 144, 142, 145, 136, 140, 128, 130, 141, 138, 139, 149, 140, 142, 137, 143, 138, 140, 140, 140, 142, 138, 147, 140, 142, 136, 141, 140, 138, 131, 139, 137, 136, 142, 136, 136, 135, 139, 139, 134, 136, 144, 140, 148, 138, 143, 137, 135, 143, 134, 143, 138, 133, 143, 141, 132, 138, 142, 135, 138, 127, 135, 127, 142, 137, 137, 137, 137, 140, 141, 139, 137, 136, 132, 142, 128, 141, 138, 143, 139, 133, 139, 143, 138, 142, 143, 145, 134, 139, 142, 133, 140, 141, 137, 137, 134, 134, 142, 137, 128, 137, 140, 137, 142, 142, 138, 139, 139, 139, 136, 134, 139, 139, 143, 151, 133, 136, 140, 150, 137, 144, 148, 146, 138, 136, 133, 136, 141, 142, 130, 139, 133, 137, 140, 144, 139, 133, 138, 132, 140, 135, 144, 143, 136, 147, 140, 141, 134, 142, 140, 138, 144, 136, 144, 139, 141, 138, 141, 139, 135, 141, 143, 142, 146, 141, 134, 141, 138, 135, 146, 138, 135, 137, 144, 140, 139, 149, 142, 135, 136, 136, 137, 144, 135, 130, 133, 143, 132, 137, 133, 138, 142, 141, 133, 141, 135, 140, 144, 146, 148, 132, 150, 141, 132, 147, 136, 134, 141, 135, 132, 139, 138, 140, 141, 140, 137, 142, 130, 141, 138, 140, 143, 134, 133, 130, 137, 141, 149, 142, 139, 141, 142, 139, 147, 140, 142, 148, 135, 140, 147, 137, 132, 133, 128, 138, 137, 122, 138, 138, 132, 138, 138, 141, 133, 139, 125, 132, 135, 138, 135, 138, 137, 135, 138, 140, 144, 135, 144, 141, 149, 138, 144, 126, 141, 132, 139, 135, 142, 129, 136, 137, 133, 142, 141, 131, 135, 137, 141, 140, 136, 138, 136, 131, 147, 132, 138, 139, 135, 137, 141, 140, 138, 139, 135, 133, 138, 138, 137, 138, 147, 139, 140, 138, 144, 141, 137, 141, 136, 145, 135, 141, 134, 140, 140, 138, 143, 131, 138, 137, 141, 137, 139, 151, 135, 134, 147, 136, 139, 135, 143, 139, 139, 140, 147, 138, 127, 136, 142, 146, 138, 141, 135, 138, 134, 138, 139, 142, 144, 138, 145, 126, 142, 138, 136, 130, 132, 132, 145, 137, 146, 134, 140, 138, 139, 138, 140, 134, 139, 131, 136, 145, 131, 136, 134, 142, 143, 138, 135, 138, 136, 139, 140, 137, 137, 136, 143, 143, 138, 146, 146, 137, 142, 138, 140, 143, 136, 131, 142, 146, 148, 136, 139, 134, 139, 139, 134, 139, 134, 135, 136, 138, 127, 139, 138, 131, 144, 140, 142, 138, 143, 138, 133, 122, 141, 138, 134, 145, 137, 144, 145, 144, 131, 146, 141, 141, 131, 144, 140, 157, 139, 133, 138, 132, 141, 143, 136, 147, 136, 141, 136, 137, 137, 141, 146, 142, 143, 134, 143, 138, 137, 137, 149, 131, 141, 140, 137, 131, 142, 143, 133, 135, 131, 134, 133, 141, 141, 145, 139, 135, 133, 137, 138, 147, 139, 151, 143, 134, 142, 153, 146, 140, 141, 136, 141, 130, 128, 144, 134, 141, 130, 138, 136, 136, 133, 134, 152, 143, 130, 150, 139, 140, 132, 139, 138, 135, 138, 140, 138, 137, 136, 134, 134, 148, 138, 145, 143, 133, 141, 135, 148, 143, 138, 143, 138, 133, 138, 133, 140, 136, 142, 141, 145, 137, 141, 138, 133, 133, 129, 139, 124, 140, 134, 135, 143, 139, 138, 132, 147, 139, 144, 142, 135, 138, 140, 132, 145, 151, 138, 134, 142, 140, 136, 137, 143, 142, 137, 158, 130, 156, 125, 124, 141, 142, 142, 138, 133, 123, 136, 135, 138, 125, 149, 136, 138, 139, 144, 143, 143, 137, 137, 140, 148, 142, 131, 147, 142, 141, 137, 134, 148, 136, 145, 142, 141, 135, 145, 150, 142, 131, 136, 145, 131, 135, 138, 133, 131, 138, 136, 132, 142, 134, 141, 130, 127, 152, 142, 127, 131, 144, 138, 140, 138, 132, 136, 136, 151, 139, 140, 133, 141, 142, 125, 146, 147, 137, 146, 138, 134, 142, 141, 138, 136, 145, 137, 133, 139, 143, 134, 137, 149, 144, 141, 131, 139, 143, 146, 136, 140, 136, 144, 138, 132, 132, 137, 137, 145, 145, 140, 140, 125, 141, 137, 140, 139, 138, 130, 137, 139, 135, 141, 127, 141, 138, 138, 139, 140, 134, 133, 141, 138, 140, 133, 144, 133, 129, 153, 140, 134, 140, 134, 144, 143, 145, 152, 136, 132, 142, 134, 131, 141, 135, 140, 136, 132, 137, 138, 138, 139, 139, 146, 135, 146, 144, 141, 149, 136, 135, 136, 137, 130, 141, 136, 138, 144, 140, 139, 124, 135, 142, 139, 144, 140, 138, 140, 148, 147, 144, 144, 141, 136, 133, 137, 131, 142, 139, 127, 139, 115, 135, 146, 138, 126, 142, 135, 128, 144, 141, 132, 134, 130, 136, 140, 147, 139, 136, 125, 142, 139, 139, 142, 143, 153, 138, 150, 139, 133, 141, 140, 140, 142, 138, 132, 131, 137, 132, 148, 154, 138, 144, 141, 143, 135, 126, 136, 136, 133, 136, 139, 150, 133, 137, 129, 144, 142, 144, 152, 139, 131, 142, 139, 128, 136, 139, 139, 145, 130, 146, 133, 141, 138, 138, 143, 139, 143, 142, 134, 148, 142, 136, 143, 143, 143, 145, 143, 147, 140, 148, 139, 142, 138, 138, 144, 133, 131, 148, 140, 138, 138, 131, 127, 145, 143, 141, 136, 142, 147, 149, 144, 142, 138, 140, 142, 141, 141, 139, 146, 144, 133, 135, 150, 147, 139, 139, 134, 141, 134, 135, 139, 138, 150, 134, 145, 144, 136, 151, 138, 143, 136, 139, 136, 132, 134, 129, 136, 142, 131, 135, 140, 145, 133, 141, 135, 140, 134, 137, 130, 141, 150, 133, 144, 135, 137, 136, 128, 137, 147, 142, 139, 141, 131, 147, 134, 138, 130, 145, 131, 137, 140, 139, 146, 132, 145, 141, 134, 133, 137, 146, 140, 132, 142, 137, 133, 140, 131, 136, 134, 142, 138, 134, 139, 140, 135, 143, 142, 132, 144, 140, 135, 138, 133, 145, 141, 131, 137, 139, 147, 137, 141, 150, 130, 136, 146, 128, 138, 142, 143, 131, 145, 149, 140, 145, 135, 142, 140, 135, 152, 135, 146, 129, 140, 128, 144, 138, 136, 130, 146, 146, 144, 144, 139, 138, 138, 140, 137, 139, 144, 140, 128, 139, 143, 144, 137, 142, 136, 135, 140, 128, 149, 131, 138, 149, 148, 136, 143, 144, 131, 144, 141, 147, 138, 139, 139, 142, 147, 141, 140, 132, 144, 135, 144, 150, 134, 129, 145, 144, 126, 135, 150, 138, 137, 139, 139, 136, 138, 141, 133, 137, 131, 131, 145, 153, 134, 137, 136, 143, 137, 139, 134, 146, 145, 149, 141, 130, 143, 137, 143, 142, 133, 144, 138, 140, 140, 141, 138, 141, 139, 138, 136, 135, 134, 148, 139, 135, 138, 137, 137, 144, 139, 134, 141, 144, 144, 148, 146, 137, 128, 134, 140, 144, 136, 129, 140, 133, 121, 134, 137, 142, 134, 148, 137, 142, 136, 144, 141, 129, 127, 153, 139, 145, 142, 141, 141, 154, 136, 136, 144, 138, 139, 145, 138, 138, 135, 132, 142, 138, 138, 137, 142, 143, 147, 144, 142, 132, 145, 141, 142, 147, 144, 141, 140, 149, 130, 140, 136, 126, 143, 138, 141, 143, 134, 135, 139, 142, 138, 135, 142, 144, 138, 136, 144, 140, 137, 132, 143, 138, 146, 139, 132, 143, 131, 141, 139, 133, 137, 137, 142, 138, 147, 148, 142, 139, 145, 149, 133, 140, 143, 130, 141, 132, 141, 143, 143, 136, 132, 143, 138, 143, 142, 135, 128, 127, 141, 145, 147, 148, 140, 148, 134, 135, 142, 145, 136, 131, 136, 140, 136, 143, 144, 135, 144, 152, 141, 134, 129, 136, 136, 138, 141, 137, 149, 137, 138, 147, 148, 134, 142, 142, 134, 137, 143, 151, 143, 147, 140, 146, 132, 137, 141, 137, 126, 136, 129, 139, 145, 139, 138, 134, 135, 147, 143, 135, 136, 123, 132, 144, 131, 140, 136, 124, 140, 139, 141, 139, 152, 141, 141, 129, 140, 139, 132, 134, 132, 146, 137, 137, 148, 141, 140, 127, 144, 135, 139, 134, 141, 137, 144, 143, 141, 143, 137, 134, 142, 137, 147, 141, 130, 141, 138, 133, 138, 144, 146, 141, 139, 130, 122, 136, 122, 142, 143, 139, 148, 145, 134, 144, 144, 138, 142, 141, 126, 134, 136, 131, 149, 125, 133, 142, 138, 139, 136, 143, 126, 141, 135, 140, 140, 127, 159, 135, 133, 137, 142, 139, 141, 140, 139, 145, 143, 137, 140, 133, 134, 129, 154, 140, 141, 131, 133, 138, 140, 134, 143, 132, 149, 133, 145, 145, 141, 143, 134, 143, 140, 143, 134, 140, 137, 136, 136, 138, 142, 154, 149, 132, 144, 133, 140, 137, 130, 138, 128, 143, 128, 129, 139, 139, 149, 148, 133, 135, 145, 133, 137, 145, 138, 140, 138, 141, 138, 145, 138, 138, 134, 138, 133, 140, 133, 147, 133, 135, 144, 132, 144, 138, 147, 136, 152, 121, 139, 141, 141, 138, 148, 136, 141, 144, 138, 136, 129, 143, 142, 140, 131, 142, 137, 138, 149, 143, 139, 134, 133, 134, 136, 133, 140, 130, 141, 123, 141, 135, 142, 129, 144, 132, 142, 141, 136, 134, 141, 139, 140, 143, 138, 133, 140, 130, 142, 139, 149, 145, 138, 138, 144, 133, 129, 128, 152, 130, 144, 120, 138, 145, 139, 145, 128, 140, 137, 142, 150, 142, 139, 137, 137, 145, 144, 136, 145, 139, 130, 139, 129, 132, 133, 135, 141, 139, 132, 144, 145, 131, 141, 131, 139, 146, 133, 136, 127, 143, 131, 142, 136, 138, 139, 134, 136, 138, 137, 140, 139, 141, 140, 134, 146, 138, 134, 137, 138, 140, 140, 137, 133, 138, 145, 136, 140, 148, 142, 146, 132, 135, 137, 141, 141, 135, 143, 133, 141, 145, 143, 140, 138, 146, 131, 142, 140, 136, 137, 138, 134, 151, 154, 135, 139, 130, 150, 145, 147, 136, 145, 133, 127, 144, 133, 145, 140, 136, 141, 142, 131, 138, 140, 144, 141, 131, 134, 137, 135, 125, 128, 148, 138, 140, 153, 129, 141, 152, 143, 151, 131, 141, 138, 139, 141, 135, 138, 142, 127, 137, 143, 148, 137, 134, 143, 138, 148, 155, 138, 137, 135, 134, 139, 138, 136, 135, 136, 145, 139, 136, 143, 134, 138, 131, 137, 135, 142, 134, 133, 142, 142, 138, 147, 134, 133, 135, 130, 148, 135, 140, 143, 141, 130, 145, 138, 141, 143, 145, 140, 135, 145, 131, 142, 142, 139, 147, 144, 143, 136, 140, 136, 134, 137, 137, 147, 133, 130, 135, 142, 133, 138, 134, 144, 138, 136, 148, 151, 136, 136, 133, 132, 134, 141, 133, 141, 138, 137, 125, 132, 136, 135, 143, 138, 137, 133, 130, 141, 137, 138, 141, 133, 142, 137, 137, 134, 140, 142, 135, 132, 133, 146, 147, 139, 131, 147, 137, 135, 143, 122, 132, 135, 137, 147, 139, 131, 136, 142, 135, 139, 138, 132, 141, 145, 133, 145, 139, 135, 131, 143, 145, 140, 140, 134, 135, 137, 145, 139, 150, 144, 131, 137, 142, 133, 130, 140, 138, 134, 141, 142, 146, 133, 143, 135, 135, 139, 134, 133, 143, 140, 153, 144, 136, 138, 135, 146, 137, 134, 143, 140, 137, 123, 139, 147, 136, 133, 148, 145, 146, 138, 134, 140, 133, 124, 128, 134, 139, 134, 137, 138, 139, 130, 150, 141, 146, 133, 129, 132, 137, 149, 138, 125, 139, 139, 148, 135, 140, 130, 138, 126, 141, 149, 141, 133, 142, 141, 131, 141, 133, 134, 138, 133, 137, 131, 145, 135, 148, 138, 143, 136, 148, 138, 137, 137, 141, 140, 139, 145, 133, 154, 141, 149, 136, 145, 147, 142, 131, 131, 138, 134, 140, 143, 139, 135, 130, 140, 138, 135, 148, 140, 149, 142, 128, 139, 144, 130, 142, 141, 141, 134, 134, 142, 149, 144, 137, 137, 139, 147, 148, 143, 132, 139, 133, 141, 135, 137, 135, 141, 147, 134, 137, 139, 141, 130, 130, 139, 140, 143, 141, 149, 139, 143, 139, 137, 132, 136, 136, 146, 135, 139, 131, 122, 145, 146, 139, 130, 145, 154, 143, 139, 130, 139, 143, 136, 146, 140, 145, 138, 150, 147, 137, 146, 138, 133, 146, 144, 141, 125, 146, 140, 134, 130, 139, 134, 136, 141, 135, 137, 153, 141, 135, 136, 147, 137, 126, 138, 146, 131, 141, 131, 130, 128, 127, 141, 144, 140, 128, 139, 132, 137, 128, 139, 141, 136, 160, 134, 141, 139, 137, 137, 144, 138, 130, 145, 132, 148, 125, 139, 146, 142, 147, 133, 146, 136, 140, 135, 133, 133, 135, 138, 133, 146, 139, 118, 116, 137, 140, 134, 120, 145, 143, 131, 147, 134, 141, 141, 137, 137, 139, 140, 145, 144, 138, 140, 144, 142, 155, 131, 136, 140, 139, 142, 134, 151, 131, 139, 137, 151, 141, 135, 139, 130, 136, 142, 147, 148, 141, 131, 148, 133, 145, 141, 144, 146, 131, 146, 142, 149, 136, 144, 133, 130, 145, 136, 141, 139, 142, 150, 140, 135, 139, 146, 148, 136, 132, 140, 136, 144, 131, 128, 145, 128, 138, 136, 136, 132, 148, 125, 146, 137, 132, 133, 150, 134, 122, 132, 149, 138, 124, 130, 150, 139, 142, 141, 132, 137, 141, 149, 133, 144, 137, 139, 140, 139, 134, 139, 144, 127, 136, 138, 129, 145, 152, 135, 136, 142, 140, 138, 134, 134, 137, 130, 140, 151, 153, 154, 144, 143, 136, 141, 142, 125, 135, 137, 146, 133, 133, 132, 146, 127, 141, 134, 145, 149, 134, 138, 126, 136, 147, 141, 139, 150, 138, 153, 145, 140, 130, 124, 145, 142, 146, 135, 137, 140, 149, 137, 132, 132, 143, 136, 130, 135, 140, 130, 143, 143, 130, 147, 132, 132, 136, 131, 134, 136, 137, 141, 132, 133, 134, 146, 136, 133, 130, 142, 125, 141, 141, 137, 141, 136, 153, 133, 139, 138, 131, 142, 138, 135, 141, 146, 139, 141, 127, 138, 142, 139, 139, 147, 144, 138, 144, 139, 140, 137, 145, 144, 144, 139, 146, 125, 148, 145, 137, 166, 137, 146, 143, 146, 132, 148, 142, 142, 145, 133, 134, 146, 135, 141, 146, 149, 141, 129, 131, 140, 139, 143, 136, 134, 133, 145, 134, 142, 135, 136, 150, 146, 143, 140, 138, 151, 141, 130, 140, 132, 143, 145, 135, 142, 161, 125, 137, 146, 137, 135, 138, 146, 125, 136, 137, 140, 138, 139, 127, 144, 144, 153, 138, 129, 137, 140, 145, 140, 152, 135, 141, 141, 139, 148, 139, 141, 135, 139, 136, 117, 134, 136, 138, 140, 143, 144, 147, 141, 145, 136, 138, 146, 133, 145, 159, 133, 141, 138, 136, 137, 135, 136, 143, 132, 136, 137, 134, 145, 132, 152, 134, 144, 140, 129, 141, 143, 135, 139, 132, 140, 142, 136, 145, 146, 126, 143, 135, 153, 141, 148, 144, 140, 133, 127, 142, 145, 142, 143, 137, 137, 141, 135, 138, 147, 136, 135, 141, 126, 135, 132, 141, 140, 145, 139, 140, 134, 145, 137, 128, 146, 124, 128, 130, 141, 128, 140, 147, 135, 137, 145, 142, 158, 147, 128, 111, 137, 145, 132, 136, 146, 138, 142, 139, 140, 133, 133, 144, 136, 144, 147, 142, 141, 136, 135, 148, 135, 139, 137, 133, 137, 133, 137, 135, 152, 149, 135, 138, 138, 140, 133, 152, 143, 142, 135, 133, 139, 133, 138, 125, 130, 153, 144, 135, 140, 143, 130, 140, 141, 134, 137, 150, 139, 137, 138, 139, 140, 141, 136, 142, 135, 136, 137, 130, 140, 141, 128, 139, 136, 138, 140, 134, 143, 135, 133, 139, 137, 137, 138, 139, 134, 132, 141, 139, 141, 134, 134, 145, 138, 129, 138, 136, 134, 131, 143, 145, 143, 129, 145, 145, 141, 144, 139, 130, 156, 147, 140, 135, 140, 140, 145, 132, 141, 136, 139, 141, 145, 139, 140, 137, 139, 133, 134, 141, 144, 136, 139, 142, 151, 139, 138, 140, 144, 139, 142, 149, 139, 127, 141, 142, 134, 127, 134, 134, 138, 134, 142, 138, 137, 133, 138, 130, 133, 132, 140, 133, 140, 131, 133, 143, 135, 140, 139, 131, 139, 135, 144, 138, 136, 135, 132, 131, 138, 140, 154, 139, 145, 142, 139, 134, 137, 147, 140, 144, 147, 135, 136, 131, 136, 143, 139, 138, 140, 133, 133, 138, 141, 131, 136, 140, 134, 143, 144, 141, 141, 134, 132, 133, 139, 131, 126, 134, 138, 139, 136, 132, 135, 138, 147, 142, 141, 134, 131, 135, 138, 129, 140, 141, 138, 144, 138, 148, 148, 133, 131, 148, 157, 139, 144, 141, 141, 136, 142, 136, 134, 143, 135, 147, 144, 138, 150, 135, 134, 143, 138, 134, 135, 136, 132, 145, 135, 135, 141, 147, 140, 133, 138, 137, 143, 134, 137, 144, 139, 137, 137, 138, 136, 138, 148, 136, 148, 143, 133, 140, 139, 132, 148, 142, 132, 130, 141, 143, 142, 136, 147, 145, 139, 140, 129, 132, 139, 134, 137, 132, 138, 139, 148, 146, 141, 148, 142, 143, 145, 137, 149, 139, 137, 130, 138, 128, 138, 143, 142, 136, 139, 135, 138, 131, 146, 142, 147, 145, 134, 134, 136, 143, 137, 136, 147, 129, 147, 140, 135, 139, 139, 138, 152, 136, 129, 135, 134, 134, 138, 148, 143, 141, 138, 142, 134, 136, 139, 142, 142, 139, 133, 145, 142, 137, 144, 141, 139, 147, 132, 135, 137, 137, 136, 147, 141, 148, 140, 138, 139, 140, 137, 131, 133, 131, 141, 144, 135, 138, 133, 143, 146, 141, 141, 133, 140, 141, 147, 133, 129, 142, 147, 147, 143, 138, 134, 127, 145, 139, 140, 133, 144, 129, 144, 139, 142, 142, 136, 139, 132, 145, 129, 135, 128, 144, 144, 142, 133, 148, 138, 131, 150, 139, 137, 133, 130, 132, 141, 141, 134, 151, 146, 137, 140, 139, 156, 142, 138, 139, 135, 150, 138, 137, 137, 142, 131, 141, 142, 141, 143, 143, 131, 140, 135, 143, 136, 143, 140, 142, 129, 141, 130, 141, 133, 144, 140, 145, 149, 134, 138, 141, 142, 150, 139, 133, 139, 143, 139, 134, 133, 132, 139, 137, 138, 147, 137, 134, 143, 142, 139, 138, 128, 125, 136, 133, 134, 144, 144, 142, 139, 143, 138, 150, 150, 143, 149, 140, 141, 135, 143, 145, 145, 131, 130, 143, 138, 144, 141, 143, 146, 137, 133, 139, 135, 143, 150, 141, 143, 145, 140, 140, 143, 133, 143, 141, 141, 138, 136, 137, 144, 142, 133, 143, 140, 133, 145, 138, 146, 139, 139, 146, 134, 144, 143, 147, 139, 140, 146, 139, 143, 134, 138, 136, 136, 136, 141, 132, 136, 150, 128, 140, 145, 134, 138, 140, 133, 134, 134, 137, 139, 146, 136, 141, 141, 137, 140, 135, 136, 138, 138, 143, 142, 139, 135, 141, 141, 130, 144, 140, 134, 140, 141, 140, 140, 139, 141, 135, 125, 132, 138, 135, 134, 136, 132, 149, 137, 145, 144, 138, 139, 136, 131, 146, 146, 138, 137, 143, 129, 143, 139, 139, 139, 147, 137, 142, 134, 152, 132, 141, 136, 139, 141, 139, 143, 151, 136, 139, 139, 136, 144, 142, 147, 140, 144, 130, 131, 138, 132, 140, 148, 132, 135, 139, 141, 143, 133, 144, 138, 138, 139, 142, 143, 147, 137, 140, 128, 132, 143, 136, 144, 136, 142, 130, 136, 139, 139, 140, 137, 142, 137, 130, 134, 135, 143, 151, 145, 132, 139, 142, 141, 141, 146, 139, 142, 145, 144, 144, 134, 141, 139, 144, 141, 140, 151, 131, 140, 140, 142, 138, 133, 131, 143, 137, 142, 138, 137, 137, 133, 135, 141, 145, 138, 139, 142, 142, 141, 140, 146, 134, 146, 139, 137, 140, 128, 136, 133, 135, 140, 143, 129, 138, 141, 142, 139, 133, 139, 140, 141, 135, 139, 142, 135, 138, 138, 133, 138, 134, 144, 135, 144, 129, 140, 131, 142, 143, 149, 146, 143, 139, 132, 137, 142, 141, 136, 135, 135, 147, 131, 150, 145, 140, 144, 141, 146, 139, 135, 141, 138, 142, 137, 147, 144, 133, 132, 138, 140, 136, 138, 147, 145, 142, 144, 142, 126, 135, 149, 138, 139, 137, 136, 141, 140, 142, 132, 138, 142, 148, 143, 141, 132, 137, 149, 141, 140, 134, 143, 139, 142, 141, 147, 146, 130, 134, 148, 134, 141, 143, 134, 133, 140, 135, 130, 140, 139, 145, 142, 134, 143, 147, 132, 137, 135, 135, 136, 136, 125, 143, 137, 132, 146, 147, 141, 131, 144, 137, 147, 133, 144, 138, 145, 146, 135, 139, 139, 145, 135, 145, 142, 141, 143, 140, 140, 136, 139, 140, 133, 138, 148, 141, 144, 136, 144, 149, 138, 148, 146, 136, 142, 141, 137, 139, 136, 134, 138, 140, 140, 139, 137, 140, 132, 137, 143, 143, 150, 139, 144, 130, 135, 137, 132, 141, 144, 129, 133, 138, 141, 139, 145, 135, 142, 140, 140, 138, 138, 133, 138, 138, 135, 137, 143, 133, 148, 138, 145, 141, 141, 133, 140, 140, 139, 139, 133, 136, 148, 137, 142, 130, 130, 135, 133, 146, 144, 141, 145, 141, 138, 137, 139, 136, 139, 137, 145, 131, 144, 137, 141, 143, 146, 134, 146, 135, 140, 131, 136, 135, 131, 137, 140, 149, 140, 135, 141, 139, 142, 143, 129, 139, 142, 146, 131, 140, 142, 138, 145, 145, 139, 135, 132, 137, 141, 140, 144, 135, 141, 146, 136, 144, 136, 139, 142, 141, 133, 139, 142, 149, 132, 145, 146, 135, 137, 137, 137, 139, 145, 133, 145, 137, 135, 137, 138, 145, 143, 133, 134, 138, 139, 144, 142, 141, 136, 146, 137, 140, 137, 135, 127, 133, 137, 144, 142, 141, 137, 140, 142, 134, 134, 137, 133, 154, 133, 136, 137, 138, 146, 141, 135, 133, 139, 134, 137, 141, 140, 143, 138, 140, 140, 135, 145, 127, 146, 141, 139, 139, 143, 127, 145, 145, 137, 129, 134, 138, 141, 130, 135, 143, 141, 137, 136, 139, 147, 141, 140, 133, 147, 147, 134, 143, 137, 138, 144, 129, 141, 140, 142, 138, 136, 140, 142, 142, 146, 138, 148, 140, 140, 134, 145, 140, 134, 136, 143, 142, 127, 139, 135, 141, 136, 146, 141, 149, 137, 139, 134, 138, 140, 136, 134, 136, 138, 142, 141, 135, 137, 135, 137, 153, 138, 133, 139, 140, 136, 140, 138, 148, 142, 136, 132, 148, 131, 129, 150, 145, 128, 140, 139, 142, 134, 141, 136, 135, 139, 133, 136, 151, 147, 141, 133, 135, 131, 139, 138, 132, 135, 132, 146, 139, 132, 133, 139, 137, 140, 137, 137, 137, 147, 136, 137, 140, 140, 135, 137, 144, 138, 147, 136, 132, 145, 142, 146, 135, 141, 137, 141, 145, 129, 135, 142, 137, 139, 140, 137, 133, 138, 139, 140, 130, 139, 137, 135, 141, 139, 135, 147, 146, 146, 131, 136, 127, 139, 148, 142, 137, 137, 130, 127, 149, 142, 135, 136, 148, 139, 137, 136, 138, 132, 137, 145, 142, 130, 139, 144, 131, 130, 137, 131, 135, 134, 140, 146, 140, 142, 137, 151, 143, 146, 136, 138, 134, 142, 142, 144, 138, 143, 134, 142, 133, 139, 134, 135, 138, 137, 138, 150, 142, 137, 140, 146, 144, 144, 147, 132, 137, 133, 141, 152, 144, 140, 136, 132, 136, 140, 139, 137, 142, 136, 137, 145, 144, 127, 137, 135, 140, 147, 144, 135, 138, 137, 136, 138, 133, 139, 148, 138, 130, 135, 137, 142, 139, 138, 132, 139, 135, 139, 136, 140, 136, 139, 142, 144, 134, 136, 132, 146, 141, 146, 151, 141, 140, 139, 133, 147, 152, 141, 130, 133, 142, 136, 136, 136, 137, 139, 142, 136, 141, 135, 133, 151, 143, 140, 141, 130, 136, 131, 143, 136, 144, 132, 139, 135, 140, 140, 134, 137, 137, 137, 133, 141, 142, 138, 130, 134, 142, 137, 133, 139, 139, 151, 130, 146, 139, 147, 143, 143, 146, 135, 141, 136, 146, 144, 146, 137, 134, 138, 138, 138, 138, 145, 130, 138, 148, 145, 139, 133, 138, 135, 134, 141, 136, 132, 141, 135, 138, 146, 145, 139, 134, 137, 138, 141, 140, 149, 138, 143, 137, 150, 132, 146, 135, 140, 134, 145, 139, 151, 150, 138, 137, 146, 136, 136, 153, 142, 139, 133, 141, 148, 142, 149, 138, 136, 149, 138, 134, 139, 126, 137, 151, 132, 137, 146, 144, 131, 140, 133, 136, 140, 130, 145, 146, 142, 143, 148, 143, 141, 141, 142, 137, 140, 140, 151, 141, 135, 138, 140, 138, 140, 138, 142, 136, 139, 142, 132, 138, 139, 139, 145, 138, 140, 146, 142, 145, 132, 142, 139, 139, 144, 152, 138, 138, 137, 142, 145, 137, 135, 128, 148, 139, 135, 146, 131, 141, 139, 148, 145, 130, 139, 133, 143, 133, 132, 138, 137, 131, 148, 145, 145, 146, 133, 137, 140, 142, 139, 136, 138, 137, 140, 153, 134, 147, 140, 144, 130, 130, 137, 138, 135, 140, 134, 144, 148, 141, 134, 135, 133, 146, 133, 149, 142, 135, 136, 141, 136, 142, 132, 140, 140, 139, 142, 129, 133, 136, 144, 138, 132, 140, 138, 134, 137, 138, 136, 130, 142, 137, 150, 141, 139, 141, 146, 145, 141, 149, 130, 135, 134, 140, 135, 131, 154, 132, 139, 141, 144, 146, 142, 141, 146, 136, 136, 137, 142, 138, 144, 139, 140, 134, 137, 143, 134, 135, 134, 140, 138, 142, 147, 149, 142, 142, 145, 136, 142, 136, 127, 159, 139, 143, 147, 132, 138, 134, 144, 139, 139, 142, 130, 135, 138, 134, 142, 135, 136, 136, 137, 141, 144, 142, 143, 137, 140, 145, 143, 135, 134, 139, 145, 134, 147, 136, 137, 128, 148, 153, 133, 138, 140, 138, 144, 137, 133, 140, 148, 141, 138, 139, 140, 145, 147, 142, 143, 131, 135, 132, 136, 146, 143, 130, 139, 138, 143, 135, 143, 142, 140, 138, 142, 132, 150, 143, 142, 140, 139, 136, 143, 146, 136, 148, 136, 130, 127, 135, 139, 141, 138, 142, 138, 141, 140, 145, 144, 138, 138, 136, 137, 144, 147, 143, 135, 138, 147, 141, 140, 136, 137, 137, 127, 152, 134, 143, 136, 141, 144, 134, 130, 139, 133, 140, 139, 138, 141, 138, 135, 143, 134, 144, 137, 137, 137, 136, 133, 137, 138, 143, 138, 149, 138, 137, 141, 145, 125, 131, 137, 141, 139, 140, 138, 136, 141, 137, 134, 141, 138, 148, 139, 139, 138, 135, 142, 139, 161, 159, 150, 131, 134, 146, 143, 143, 139, 139, 134, 146, 143, 133, 134, 133, 134, 142, 140, 138, 132, 142, 133, 139, 136, 138, 138, 134, 138, 140, 136, 138, 140, 135, 142, 144, 134, 138, 131, 144, 134, 143, 139, 144, 143, 143, 143, 139, 137, 139, 136, 129, 131, 144, 139, 142, 129, 145, 142, 136, 143, 147, 142, 138, 134, 142, 145, 148, 137, 127, 146, 135, 132, 142, 145, 144, 141, 134, 131, 136, 135, 139, 136, 135, 134, 134, 141, 140, 129, 141, 142, 132, 140, 142, 139, 151, 141, 136, 137, 146, 133, 144, 143, 139, 133, 143, 136, 135, 135, 130, 140, 144, 139, 139, 141, 139, 136, 142, 139, 138, 138, 135, 140, 137, 137, 145, 136, 141, 140, 136, 147, 139, 138, 130, 130, 147, 142, 130, 139, 136, 137, 142, 147, 153, 139, 143, 147, 139, 131, 137, 133, 142, 133, 137, 142, 146, 136, 133, 138, 140, 142, 152, 141, 130, 140, 132, 138, 133, 132, 135, 145, 140, 151, 133, 138, 149, 140, 142, 136, 144, 147, 142, 135, 141, 139, 136, 136, 148, 145, 141, 141, 139, 143, 131, 136, 139, 140, 138, 135, 138, 133, 139, 144, 137, 139, 137, 136, 136, 133, 140, 136, 133, 138, 143, 145, 141, 142, 138, 137, 134, 134, 145, 133, 141, 145, 134, 143, 140, 138, 131, 137, 131, 138, 138, 143, 137, 136, 140, 136, 140, 143, 137, 134, 138, 139, 140, 141, 143, 134, 136, 143, 140, 135, 134, 140, 133, 137, 142, 139, 137, 135, 132, 135, 138, 139, 141, 141, 137, 138, 131, 144, 140, 136, 141, 143, 137, 140, 136, 143, 136, 132, 149, 137, 144, 140, 136, 139, 150, 139, 130, 137, 139, 135, 136, 139, 134, 137, 135, 144, 141, 131, 139, 142, 134, 144, 137, 139, 131, 133, 137, 135, 136, 141, 143, 145, 143, 138, 135, 134, 137, 144, 141, 141, 134, 131, 132, 135, 140, 139, 140, 139, 133, 139, 144, 134, 143, 140, 137, 146, 131, 139, 130, 132, 149, 149, 141, 132, 154, 145, 133, 133, 144, 140, 137, 142, 150, 138, 137, 142, 139, 139, 139, 143, 138, 137, 136, 149, 139, 136, 143, 137, 137, 135, 145, 144, 131, 143, 136, 139, 138, 140, 132, 138, 143, 138, 140, 138, 140, 145, 141, 136, 144, 138, 136, 136, 135, 136, 144, 143, 149, 137, 131, 138, 150, 141, 141, 133, 138, 135, 140, 133, 138, 134, 131, 137, 142, 145, 133, 137, 139, 125, 142, 146, 130, 137, 134, 150, 139, 141, 140, 146, 130, 139, 137, 144, 139, 138, 139, 141, 143, 145, 142, 138, 140, 137, 151, 140, 132, 136, 143, 142, 146, 134, 139, 136, 128, 145, 149, 137, 125, 137, 137, 142, 135, 138, 137, 143, 138, 138, 130, 146, 148, 142, 139, 135, 149, 135, 140, 140, 147, 134, 138, 141, 141, 131, 136, 133, 147, 140, 127, 139, 144, 149, 138, 129, 142, 132, 143, 139, 141, 144, 146, 135, 141, 137, 136, 138, 140, 136, 133, 146, 148, 135, 141, 145, 136, 133, 133, 143, 142, 146, 132, 135, 133, 139, 140, 144, 143, 143, 132, 131, 136, 144, 137, 146, 142, 137, 140, 129, 134, 144, 141, 138, 139, 143, 142, 137, 150, 135, 146, 144, 133, 131, 147, 148, 140, 138, 132, 143, 146, 142, 144, 135, 145, 134, 147, 134, 133, 140, 136, 138, 131, 150, 145, 139, 136, 134, 140, 142, 145, 129, 132, 144, 137, 136, 138, 139, 134, 131, 132, 139, 144, 136, 140, 137, 141, 149, 137, 139, 138, 132, 143, 136, 128, 138, 140, 140, 137, 151, 141, 137, 145, 141, 138, 147, 138, 135, 138, 134, 141, 141, 144, 132, 142, 136, 136, 136, 132, 135, 144, 134, 140, 135, 139, 136, 139, 144, 138, 142, 128, 139, 141, 137, 133, 144, 137, 138, 144, 137, 132, 134, 143, 143, 138, 142, 143, 141, 147, 142, 136, 132, 141, 134, 142, 131, 140, 134, 136, 142, 142, 143, 133, 137, 146, 151, 146, 129, 132, 138, 149, 133, 144, 130, 138, 142, 140, 136, 135, 132, 141, 143, 136, 144, 141, 145, 142, 136, 143, 138, 139, 141, 129, 142, 139, 126, 141, 137, 135, 140, 133, 146, 139, 141, 133, 145, 144, 139, 140, 141, 135, 135, 130, 137, 137, 149, 132, 132, 149, 142, 136, 137, 135, 137, 134, 139, 128, 135, 141, 142, 125, 138, 142, 138, 136, 140, 126, 127, 139, 134, 135, 142, 128, 146, 131, 133, 140, 134, 147, 139, 142, 138, 145, 136, 159, 149, 141, 134, 140, 134, 141, 130, 142, 132, 148, 126, 141, 139, 145, 137, 142, 140, 151, 138, 140, 137, 136, 139, 135, 151, 144, 139, 144, 134, 131, 132, 143, 135, 139, 134, 134, 144, 149, 134, 143, 143, 135, 146, 138, 150, 143, 133, 143, 134, 132, 160, 139, 139, 146, 139, 146, 129, 140, 130, 128, 135, 144, 141, 138, 138, 142, 136, 142, 141, 130, 143, 145, 137, 151, 128, 140, 148, 143, 133, 140, 139, 139, 127, 129, 138, 136, 135, 148, 137, 134, 143, 142, 139, 138, 143, 132, 139, 145, 137, 146, 132, 137, 143, 144, 146, 128, 142, 124, 143, 133, 130, 136, 130, 147, 135, 149, 135, 152, 143, 138, 137, 134, 140, 136, 134, 133, 139, 131, 141, 140, 141, 142, 132, 132, 135, 139, 132, 129, 135, 143, 148, 123, 146, 131, 138, 142, 135, 136, 134, 139, 148, 144, 136, 138, 140, 137, 133, 135, 141, 137, 140, 146, 136, 133, 138, 138, 147, 140, 138, 138, 145, 142, 140, 129, 130, 134, 143, 141, 140, 131, 145, 140, 137, 128, 136, 134, 139, 133, 144, 135, 133, 140, 138, 134, 127, 133, 140, 138, 146, 143, 137, 137, 132, 140, 143, 141, 140, 152, 134, 140, 132, 133, 131, 138, 145, 143, 140, 136, 131, 134, 135, 132, 141, 134, 139, 143, 137, 143, 151, 142, 136, 134, 141, 134, 139, 137, 145, 134, 130, 127, 138, 135, 125, 126, 139, 139, 131, 131, 141, 129, 135, 144, 149, 134, 144, 132, 143, 137, 145, 132, 132, 145, 135, 136, 133, 146, 150, 136, 144, 134, 137, 140, 138, 142, 131, 141, 140, 142, 140, 137, 142, 137, 131, 133, 134, 138, 138, 141, 129, 141, 148, 129, 136, 135, 144, 141, 132, 137, 137, 149, 133, 135, 131, 133, 136, 137, 141, 133, 135, 130, 136, 140, 141, 139, 142, 145, 141, 131, 134, 136, 131, 147, 128, 139, 141, 140, 136, 144, 145, 135, 141, 139, 136, 143, 142, 147, 139, 139, 139, 136, 142, 136, 135, 143, 141, 147, 135, 145, 137, 144, 139, 142, 136, 136, 140, 151, 142, 137, 140, 133, 158, 136, 134, 144, 142, 137, 142, 142, 133, 154, 134, 140, 148, 137, 132, 140, 140, 133, 147, 143, 141, 139, 128, 138, 141, 138, 135, 147, 134, 142, 140, 146, 142, 136, 144, 139, 146, 140, 136, 132, 135, 145, 129, 149, 134, 137, 131, 137, 131, 141, 135, 134, 131, 146, 136, 141, 137, 142, 133, 138, 138, 136, 142, 155, 135, 145, 137, 135, 144, 144, 135, 134, 138, 138, 141, 130, 135, 136, 137, 131, 147, 137, 135, 132, 136, 126, 142, 139, 143, 141, 137, 142, 134, 130, 148, 142, 143, 137, 134, 140, 128, 151, 138, 153, 144, 138, 144, 137, 143, 146, 138, 144, 149, 143, 137, 133, 137, 139, 132, 139, 145, 138, 135, 142, 136, 148, 136, 148, 142, 137, 145, 139, 141, 133, 141, 136, 141, 134, 131, 144, 138, 149, 135, 142, 136, 145, 151, 141, 146, 142, 147, 139, 134, 129, 141, 146, 140, 135, 140, 140, 135, 137, 139, 143, 145, 120, 140, 137, 142, 140, 138, 142, 142, 131, 129, 133, 130, 140, 137, 134, 138, 142, 130, 140, 136, 139, 136, 140, 139, 132, 143, 142, 142, 139, 152, 134, 138, 140, 138, 131, 136, 131, 141, 137, 140, 140, 140, 142, 143, 148, 125, 148, 128, 134, 144, 147, 143, 134, 145, 151, 142, 135, 129, 129, 138, 140, 142, 144, 140, 139, 131, 133, 133, 148, 130, 143, 144, 152, 137, 146, 138, 138, 138, 141, 145, 142, 145, 132, 138, 139, 132, 140, 135, 131, 139, 140, 140, 140, 133, 146, 145, 140, 134, 136, 139, 133, 139, 134, 134, 141, 143, 143, 141, 136, 135, 137, 147, 140, 140, 137, 140, 134, 142, 141, 126, 136, 144, 139, 133, 141, 138, 139, 142, 136, 131, 142, 141, 139, 146, 142, 132, 146, 141, 137, 140, 138, 139, 131, 132, 136, 137, 153, 140, 133, 140, 141, 137, 135, 143, 137, 138, 134, 142, 135, 132, 134, 142, 138, 139, 135, 137, 151, 145, 139, 139, 135, 130, 152, 137, 137, 135, 149, 133, 142, 141, 130, 136, 143, 136, 144, 160, 143, 137, 137, 136, 147, 134, 142, 139, 131, 141, 135, 134, 146, 133, 139, 149, 143, 149, 134, 146, 134, 140, 135, 138, 143, 140, 149, 138, 138, 130, 147, 139, 130, 137, 137, 151, 132, 141, 142, 139, 139, 131, 131, 137, 133, 132, 135, 143, 137, 136, 134, 136, 136, 138, 146, 136, 140, 136, 141, 136, 142, 137, 135, 141, 146, 138, 140, 136, 126, 142, 139, 136, 133, 137, 128, 135, 125, 137, 133, 139, 135, 146, 141, 146, 142, 137, 141, 150, 148, 134, 139, 136, 140, 141, 131, 135, 143, 145, 140, 139, 147, 133, 138, 139, 142, 136, 142, 140, 142, 138, 134, 142, 148, 127, 136, 132, 139, 145, 132, 134, 132, 138, 136, 137, 140, 138, 138, 140, 147, 130, 138, 142, 133, 140, 139, 147, 143, 136, 137, 139, 142, 147, 137, 135, 138, 138, 125, 135, 147, 141, 125, 139, 140, 140, 144, 139, 142, 127, 136, 140, 135, 128, 145, 133, 142, 141, 142, 151, 142, 140, 137, 141, 143, 137, 138, 134, 139, 137, 140, 137, 141, 140, 139, 134, 140, 134, 144, 147, 136, 149, 141, 139, 137, 143, 140, 138, 138, 132, 134, 139, 135, 143, 136, 137, 139, 136, 141, 142, 130, 137, 137, 146, 139, 136, 142, 149, 134, 143, 143, 136, 140, 147, 139, 133, 129, 141, 138, 133, 142, 145, 144, 138, 135, 136, 133, 134, 136, 129, 147, 140, 140, 144, 138, 146, 138, 136, 141, 139, 139, 139, 137, 140, 132, 139, 135, 146, 132, 143, 133, 138, 139, 137, 135, 140, 144, 140, 131, 144, 138, 140, 131, 149, 137, 136, 150, 141, 138, 136, 137, 133, 141, 133, 138, 141, 137, 141, 144, 138, 136, 140, 136, 144, 139, 149, 127, 137, 139, 133, 131, 135, 133, 135, 135, 140, 152, 143, 131, 141, 147, 133, 149, 140, 133, 145, 129, 140, 144, 132, 144, 135, 133, 136, 143, 133, 141, 137, 138, 132, 139, 140, 141, 136, 133, 136, 140, 147, 140, 141, 136, 145, 131, 140, 145, 132, 148, 140, 142, 144, 143, 132, 133, 136, 137, 144, 142, 130, 131, 138, 130, 139, 141, 138, 135, 138, 137, 135, 135, 139, 134, 131, 133, 141, 143, 137, 134, 134, 142, 146, 138, 136, 137, 138, 141, 161, 140, 140, 137, 135, 137, 146, 151, 132, 136, 133, 139, 138, 141, 141, 135, 139, 135, 138, 133, 136, 140, 141, 140, 138, 138, 137, 140, 135, 134, 131, 136, 133, 138, 141, 143, 136, 153, 139, 140, 139, 133, 138, 136, 133, 130, 132, 148, 147, 138, 137, 136, 141, 140, 139, 139, 142, 142, 142, 142, 137, 134, 129, 136, 138, 146, 133, 142, 132, 143, 130, 145, 131, 136, 136, 131, 136, 139, 137, 140, 138, 133, 142, 146, 146, 142, 137, 140, 136, 152, 143, 149, 138, 134, 129, 147, 136, 141, 144, 135, 139, 134, 133, 137, 132, 147, 135, 131, 135, 136, 140, 138, 141, 137, 137, 137, 149, 132, 143, 133, 142, 133, 142, 141, 136, 133, 144, 148, 134, 142, 137, 140, 134, 139, 141, 138, 141, 136, 139, 136, 139, 138, 126, 129, 137, 137, 140, 134, 142, 134, 141, 130, 136, 134, 138, 135, 133, 139, 143, 135, 136, 162, 144, 141, 126, 137, 146, 143, 137, 140, 141, 136, 140, 134, 140, 145, 143, 136, 133, 140, 133, 137, 150, 137, 141, 146, 139, 134, 142, 138, 137, 134, 131, 135, 142, 142, 139, 130, 148, 132, 138, 138, 139, 138, 139, 139, 141, 149, 145, 133, 134, 145, 142, 145, 140, 129, 129, 136, 143, 137, 133, 146, 140, 140, 139, 133, 143, 127, 139, 127, 144, 142, 137, 143, 131, 132, 142, 140, 138, 139, 155, 136, 137, 135, 132, 131, 140, 138, 144, 136, 136, 138, 131, 132, 145, 138, 131, 144, 143, 135, 137, 140, 133, 141, 136, 135, 136, 137, 140, 141, 137, 129, 141, 148, 139, 146, 140, 145, 144, 133, 136, 144, 135, 141, 135, 136, 138, 150, 148, 133, 136, 150, 131, 137, 133, 138, 138, 138, 142, 139, 135, 134, 138, 137, 139, 138, 156, 139, 138, 134, 138, 131, 135, 137, 130, 138, 129, 148, 135, 135, 141, 145, 134, 146, 143, 137, 143, 138, 127, 131, 139, 142, 137, 141, 145, 139, 145, 136, 134, 132, 127, 133, 136, 138, 148, 144, 140, 139, 136, 135, 149, 132, 147, 151, 144, 138, 134, 145, 140, 139, 142, 143, 137, 143, 144, 141, 133, 138, 139, 131, 128, 141, 136, 138, 142, 130, 132, 135, 140, 141, 140, 141, 141, 146, 139, 139, 137, 144, 137, 138, 138, 130, 139, 133, 138, 136, 142, 136, 139, 139, 143, 140, 132, 137, 140, 138, 140, 141, 140, 131, 133, 135, 136, 137, 136, 144, 144, 137, 133, 137, 140, 143, 149, 138, 140, 139, 138, 140, 142, 139, 139, 139, 144, 136, 135, 144, 131, 142, 134, 140, 143, 134, 144, 135, 141, 139, 142, 138, 137, 142, 132, 134, 134, 143, 144, 137, 141, 140, 144, 144, 135, 142, 138, 130, 136, 139, 139, 135, 140, 141, 145, 145, 135, 145, 137, 135, 142, 137, 134, 140, 145, 144, 133, 135, 145, 135, 138, 139, 137, 140, 139, 136, 141, 149, 142, 123, 139, 133, 137, 138, 133, 141, 145, 138, 152, 143, 138, 137, 143, 145, 134, 140, 141, 140, 140, 138, 141, 136, 136, 143, 139, 140, 142, 141, 140, 136, 140, 141, 136, 138, 136, 140, 141, 134, 143, 137, 137, 134, 137, 142, 138, 135, 140, 140, 137, 142, 135, 138, 141, 136, 138, 140, 147, 140, 136, 136, 135, 137, 137, 139, 139, 136, 142, 132, 141, 135, 143, 141, 135, 138, 140, 138, 138, 147, 137, 132, 146, 128, 137, 136, 145, 141, 139, 137, 138, 138, 143, 141, 133, 139, 139, 131, 137, 142, 142, 136, 141, 132, 144, 147, 141, 137, 140, 141, 137, 125, 141, 136, 138, 138, 139, 142, 141, 136, 139, 140, 144, 139, 135, 136, 139, 131, 149, 142, 141, 141, 136, 144, 138, 139, 141, 142, 137, 142, 139, 144, 132, 143, 141, 136, 133, 143, 143, 137, 136, 135, 139, 143, 140, 140, 141, 140, 140, 137, 139, 138, 145, 140, 143, 139, 137, 139, 143, 140, 144, 141, 128, 135, 138, 137, 131, 138, 138, 135, 145, 140, 136, 142, 143, 141, 145, 141, 125, 132, 143, 140, 136, 146, 146, 144, 136, 145, 143, 137, 139, 141, 138, 135, 138, 134, 134, 140, 133, 138, 142, 141, 143, 132, 137, 140, 133, 137, 134, 137, 138, 136, 139, 143, 134, 136, 142, 135, 137, 138, 138, 140, 144, 139, 136, 131, 139, 139, 137, 146, 145, 136, 138, 133, 146, 141, 138, 141, 136, 141, 131, 136, 133, 143, 137, 139, 146, 137, 132, 137, 141, 139, 138, 140, 144, 137, 142, 133, 138, 146, 138, 137, 142, 139, 131, 140, 141, 140, 135, 137, 141, 141, 141, 138, 141, 143, 134, 135, 145, 136, 132, 138, 139, 139, 139, 135, 139, 133, 137, 138, 125, 140, 136, 135, 144, 140, 136, 148, 140, 140, 141, 142, 143, 137, 140, 138, 139, 137, 144, 146, 142, 142, 136, 138, 140, 134, 139, 138, 138, 136, 139, 138, 138, 141, 144, 141, 137, 141, 139, 138, 137, 138, 135, 141, 140, 137, 138, 140, 144, 143, 137, 139, 145, 141, 138, 147, 138, 137, 132, 142, 143, 140, 146, 139, 140, 132, 143, 137, 137, 135, 137, 140, 139, 141, 132, 137, 137, 132, 143, 143, 145, 135, 134, 141, 139, 141, 140, 141, 122, 131, 140, 136, 134, 133, 140, 138, 142, 129, 133, 138, 135, 152, 145, 132, 134, 132, 125, 141, 134, 145, 137, 137, 140, 134, 129, 134, 145, 142, 134, 146, 143, 130, 139, 131, 128, 135, 137, 132, 131, 140, 141, 134, 136, 143, 135, 142, 140, 137, 138, 131, 134, 131, 145, 135, 145, 137, 137, 149, 136, 137, 139, 140, 140, 140, 142, 140, 140, 141, 152, 148, 135, 136, 138, 128, 131, 136, 140, 136, 133, 135, 136, 141, 144, 145, 147, 134, 141, 139, 126, 137, 138, 130, 154, 141, 134, 134, 141, 154, 130, 136, 137, 138, 137, 140, 141, 138, 141, 144, 132, 136, 131, 142, 136, 140, 140, 141, 134, 136, 134, 140, 141, 133, 145, 139, 131, 148, 144, 130, 135, 143, 136, 131, 144, 132, 137, 133, 139, 135, 145, 134, 133, 136, 141, 139, 136, 128, 137, 130, 133, 135, 140, 140, 147, 141, 143, 136, 131, 134, 136, 133, 140, 141, 139, 141, 141, 138, 137, 135, 139, 133, 140, 133, 142, 145, 135, 147, 136, 138, 140, 149, 139, 145, 125, 138, 138, 133, 141, 144, 148, 137, 137, 141, 134, 136, 139, 140, 145, 139, 154, 139, 138, 125, 138, 147, 137, 135, 137, 146, 134, 136, 136, 139, 139, 138, 144, 132, 145, 139, 146, 142, 146, 141, 138, 137, 142, 130, 148, 147, 136, 138, 133, 139, 132, 134, 136, 141, 140, 140, 144, 141, 140, 136, 135, 145, 133, 132, 147, 139, 141, 153, 139, 145, 138, 134, 131, 138, 137, 140, 138, 136, 154, 139, 133, 138, 137, 142, 132, 133, 143, 128, 146, 143, 137, 145, 138, 142, 133, 133, 143, 149, 147, 131, 146, 138, 143, 137, 141, 145, 146, 144, 143, 137, 143, 134, 137, 142, 146, 144, 144, 137, 141, 136, 139, 138, 144, 137, 144, 140, 139, 145, 126, 144, 141, 139, 133, 129, 147, 137, 141, 131, 134, 134, 140, 138, 135, 148, 134, 138, 140, 139, 136, 145, 135, 140, 134, 130, 134, 135, 142, 139, 127, 133, 139, 133, 133, 143, 133, 136, 139, 144, 151, 132, 126, 144, 143, 145, 139, 132, 137, 146, 146, 136, 142, 138, 136, 137, 144, 136, 128, 136, 141, 139, 141, 133, 133, 143, 144, 141, 132, 137, 138, 142, 140, 153, 137, 128, 144, 140, 137, 139, 141, 142, 142, 131, 141, 139, 135, 140, 138, 127, 138, 136, 137, 141, 134, 140, 139, 131, 136, 139, 130, 143, 127, 137, 133, 142, 138, 135, 145, 131, 146, 142, 150, 144, 141, 137, 137, 138, 146, 141, 143, 150, 134, 135, 138, 132, 134, 142, 140, 141, 137, 145, 141, 148, 143, 133, 140, 139, 133, 141, 137, 139, 130, 140, 136, 149, 143, 130, 135, 147, 135, 141, 138, 142, 139, 140, 144, 139, 136, 138, 141, 132, 140, 139, 135, 142, 139, 145, 140, 139, 139, 135, 142, 137, 142, 143, 142, 127, 124, 148, 139, 137, 140, 140, 132, 129, 146, 135, 135, 135, 125, 138, 139, 138, 135, 136, 140, 140, 132, 135, 137, 127, 141, 152, 146, 148, 141, 142, 144, 140, 143, 136, 130, 140, 132, 126, 129, 144, 141, 141, 138, 142, 145, 142, 151, 140, 134, 140, 150, 135, 141, 139, 137, 129, 140, 141, 135, 126, 138, 142, 142, 122, 144, 137, 139, 140, 134, 135, 141, 157, 140, 123, 146, 142, 133, 141, 130, 140, 140, 150, 133, 138, 127, 128, 140, 139, 139, 149, 140, 144, 138, 141, 133, 135, 141, 137, 140, 138, 145, 132, 141, 147, 142, 143, 147, 134, 147, 138, 145, 132, 137, 140, 136, 134, 152, 145, 136, 135, 136, 141, 139, 149, 134, 134, 132, 134, 143, 136, 137, 129, 140, 138, 137, 139, 146, 146, 142, 138, 136, 152, 147, 133, 140, 140, 141, 145, 130, 144, 145, 146, 138, 139, 131, 144, 144, 141, 145, 139, 145, 136, 146, 144, 134, 143, 128, 135, 125, 129, 152, 129, 140, 128, 137, 135, 136, 133, 136, 136, 139, 136, 141, 142, 141, 131, 133, 136, 141, 134, 141, 146, 138, 141, 138, 137, 144, 125, 146, 138, 135, 145, 143, 132, 140, 133, 142, 142, 129, 136, 137, 135, 148, 137, 125, 127, 140, 141, 133, 147, 132, 150, 136, 137, 142, 136, 139, 137, 141, 131, 133, 134, 148, 149, 140, 142, 149, 139, 144, 132, 132, 134, 140, 150, 128, 130, 135, 139, 128, 126, 141, 138, 141, 141, 136, 145, 133, 141, 136, 141, 139, 141, 135, 146, 145, 138, 139, 132, 136, 145, 142, 159, 132, 134, 136, 136, 138, 136, 149, 141, 136, 140, 137, 133, 157, 131, 130, 138, 138, 141, 141, 128, 141, 135, 129, 141, 132, 134, 143, 135, 131, 152, 139, 141, 135, 133, 142, 143, 138, 135, 139, 133, 138, 146, 139, 131, 134, 137, 142, 153, 140, 131, 130, 147, 136, 141, 156, 142, 140, 140, 142, 137, 147, 141, 142, 137, 132, 140, 133, 133, 144, 148, 136, 125, 133, 141, 138, 135, 139, 139, 132, 138, 144, 140, 136, 136, 138, 141, 134, 129, 141, 136, 137, 133, 141, 145, 141, 133, 139, 138, 138, 136, 133, 145, 141, 132, 134, 145, 140, 131, 139, 149, 134, 141, 137, 137, 132, 137, 138, 147, 144, 132, 122, 135, 143, 134, 146, 145, 135, 145, 139, 146, 140, 143, 133, 151, 145, 147, 140, 130, 148, 154, 131, 148, 132, 135, 143, 141, 135, 141, 147, 148, 139, 131, 143, 135, 132, 129, 143, 138, 131, 145, 138, 145, 152, 143, 137, 137, 150, 141, 142, 146, 141, 129, 140, 129, 132, 143, 137, 132, 133, 140, 136, 128, 137, 132, 151, 143, 130, 142, 137, 138, 145, 140, 141, 143, 141, 139, 137, 142, 142, 141, 141, 149, 139, 134, 142, 132, 136, 134, 124, 143, 151, 145, 144, 146, 130, 144, 140, 157, 138, 135, 140, 148, 126, 134, 132, 136, 127, 138, 125, 143, 129, 136, 142, 135, 136, 138, 143, 138, 144, 140, 133, 142, 144, 122, 139, 136, 147, 133, 145, 136, 143, 134, 137, 141, 137, 143, 143, 145, 140, 130, 134, 130, 141, 131, 141, 140, 133, 142, 136, 140, 150, 138, 137, 139, 141, 140, 129, 137, 134, 141, 140, 145, 140, 141, 141, 129, 142, 140, 141, 141, 133, 144, 142, 134, 150, 146, 124, 138, 130, 147, 143, 133, 136, 134, 139, 136, 142, 137, 137, 144, 139, 134, 142, 145, 135, 137, 143, 142, 142, 137, 140, 143, 140, 138, 143, 139, 134, 142, 136, 133, 140, 141, 141, 138, 141, 145, 145, 138, 137, 139, 144, 132, 138, 136, 139, 140, 138, 137, 145, 136, 144, 135, 142, 151, 136, 137, 138, 140, 139, 134, 142, 136, 132, 136, 140, 137, 135, 139, 136, 143, 137, 138, 141, 142, 135, 137, 141, 149, 143, 134, 139, 140, 138, 138, 136, 143, 132, 139, 143, 139, 143, 140, 134, 139, 146, 141, 139, 139, 138, 137, 139, 138, 147, 138, 136, 146, 127, 135, 136, 134, 138, 136, 140, 137, 141, 146, 137, 137, 136, 140, 142, 139, 133, 135, 135, 147, 140, 138, 140, 136, 143, 138, 133, 138, 137, 147, 137, 140, 133, 139, 133, 136, 145, 138, 138, 143, 143, 142, 139, 136, 146, 137, 145, 139, 141, 134, 142, 142, 134, 136, 137, 140, 137, 143, 137, 141, 143, 141, 144, 138, 138, 134, 140, 140, 137, 139, 135, 143, 139, 139, 140, 144, 138, 141, 143, 134, 134, 143, 129, 133, 143, 140, 135, 143, 139, 141, 140, 136, 143, 144, 138, 137, 144, 141, 137, 139, 143, 140, 135, 128, 137, 134, 136, 139, 146, 147, 125, 138, 143, 141, 138, 136, 136, 144, 138, 136, 137, 143, 137, 138, 144, 143, 142, 145, 137, 140, 135, 140, 141, 141, 141, 133, 137, 141, 137, 141, 131, 137, 139, 141, 140, 136, 131, 141, 136, 140, 148, 139, 138, 140, 142, 140, 139, 136, 140, 142, 139, 143, 146, 137, 134, 141, 138, 138, 142, 140, 144, 139, 137, 145, 146, 144, 135, 140, 148, 137, 143, 143, 142, 133, 144, 133, 136, 139, 139, 137, 135, 137, 146, 139, 141, 135, 141, 139, 138, 136, 143, 144, 139, 143, 140, 134, 141, 146, 137, 138, 140, 146, 140, 141, 143, 141, 145, 142, 142, 140, 137, 138, 138, 140, 140, 136, 128, 140, 142, 136, 141, 142, 137, 142, 142, 143, 139, 143, 138, 140, 142, 146, 142, 151, 144, 152, 144, 141, 141, 140, 134, 142, 144, 144, 146, 141, 141, 144, 142, 138, 138, 136, 136, 139, 142, 144, 145, 138, 141, 136, 135, 134, 136, 143, 139, 139, 142, 138, 141, 144, 139, 124, 144, 140, 145, 137, 137, 146, 136, 143, 139, 132, 138, 127, 141, 138, 142, 135, 133, 143, 133, 137, 147, 149, 137, 143, 145, 139, 135, 135, 138, 140, 136, 136, 133, 142, 138, 135, 139, 136, 141, 145, 118, 139, 140, 139, 135, 133, 138, 133, 132, 145, 138, 140, 138, 137, 139, 135, 143, 135, 141, 135, 137, 135, 135, 139, 145, 150, 135, 140, 145, 139, 138, 143, 133, 142, 142, 136, 144, 132, 133, 143, 147, 131, 136, 131, 143, 141, 140, 143, 137, 138, 136, 140, 145, 140, 150, 142, 142, 138, 143, 133, 136, 137, 142, 136, 133, 141, 143, 139, 135, 132, 137, 128, 137, 145, 139, 138, 139, 133, 144, 136, 135, 144, 136, 135, 141, 139, 138, 130, 145, 139, 134, 144, 140, 151, 138, 140, 141, 137, 141, 132, 140, 135, 139, 135, 143, 136, 138, 137, 139, 145, 131, 135, 140, 143, 134, 146, 138, 139, 137, 128, 145, 133, 143, 142, 142, 126, 145, 134, 137, 136, 142, 145, 135, 141, 138, 132, 134, 144, 150, 137, 151, 132, 136, 136, 139, 144, 146, 139, 138, 133, 149, 135, 138, 144, 134, 137, 139, 139, 136, 139, 141, 138, 138, 144, 145, 139, 137, 140, 143, 138, 141, 139, 141, 134, 143, 139, 137, 136, 138, 141, 140, 141, 130, 148, 151, 137, 132, 145, 144, 136, 145, 136, 141, 141, 138, 139, 141, 132, 140, 140, 135, 136, 139, 142, 141, 144, 143, 139, 141, 135, 141, 145, 135, 144, 140, 137, 136, 130, 136, 138, 142, 132, 143, 151, 135, 141, 139, 126, 153, 143, 135, 143, 151, 145, 138, 147, 127, 131, 144, 137, 140, 150, 135, 136, 139, 141, 133, 142, 127, 134, 139, 133, 133, 141, 136, 142, 139, 132, 134, 137, 137, 142, 141, 139, 146, 139, 143, 137, 137, 149, 146, 147, 139, 144, 135, 135, 146, 129, 133, 135, 134, 140, 138, 134, 142, 141, 141, 137, 135, 149, 140, 143, 140, 146, 148, 135, 140, 133, 137, 143, 144, 135, 132, 144, 147, 128, 156, 144, 151, 136, 138, 144, 136, 139, 138, 137, 134, 141, 133, 145, 148, 138, 141, 132, 136, 136, 140, 143, 142, 134, 136, 138, 137, 144, 140, 134, 144, 143, 142, 131, 139, 140, 136, 144, 134, 138, 143, 142, 148, 134, 140, 145, 140, 136, 138, 136, 135, 149, 137, 147, 141, 145, 128, 145, 141, 138, 140, 135, 135, 140, 132, 139, 139, 150, 137, 141, 141, 142, 142, 132, 147, 139, 136, 142, 138, 138, 142, 140, 145, 140, 140, 133, 141, 137, 144, 137, 145, 135, 145, 145, 142, 137, 137, 137, 130, 142, 136, 133, 145, 132, 142, 137, 140, 138, 146, 144, 132, 139, 134, 131, 135, 131, 143, 131, 154, 140, 140, 145, 139, 136, 137, 153, 123, 126, 138, 136, 136, 140, 139, 131, 135, 135, 139, 139, 137, 138, 135, 144, 144, 142, 139, 138, 139, 142, 118, 137, 137, 140, 139, 138, 146, 148, 142, 136, 141, 136, 139, 130, 133, 145, 138, 139, 136, 135, 138, 140, 138, 138, 141, 140, 139, 142, 128, 136, 144, 137, 140, 135, 135, 133, 138, 138, 139, 134, 144, 137, 140, 143, 136, 139, 140, 147, 134, 140, 143, 143, 137, 125, 139, 138, 138, 143, 140, 143, 138, 141, 133, 138, 132, 141, 140, 151, 140, 137, 142, 148, 137, 142, 131, 145, 142, 139, 139, 139, 140, 134, 137, 141, 139, 144, 146, 151, 142, 142, 141, 136, 134, 132, 139, 143, 136, 147, 133, 150, 139, 138, 133, 144, 137, 139, 146, 137, 137, 133, 137, 137, 143, 141, 140, 131, 143, 143, 152, 136, 140, 137, 138, 135, 142, 138, 136, 143, 142, 141, 138, 136, 128, 134, 141, 138, 140, 149, 126, 131, 131, 136, 144, 135, 131, 143, 135, 138, 140, 137, 134, 143, 135, 136, 138, 135, 136, 134, 136, 135, 138, 132, 141, 140, 139, 140, 140, 135, 141, 146, 142, 130, 139, 141, 138, 135, 140, 142, 138, 142, 143, 135, 136, 138, 144, 134, 134, 141, 137, 148, 131, 141, 139, 135, 138, 147, 137, 134, 140, 139, 138, 142, 134, 136, 136, 132, 135, 142, 138, 138, 139, 142, 127, 143, 141, 142, 136, 133, 135, 133, 145, 141, 134, 133, 137, 137, 138, 140, 131, 142, 139, 138, 137, 147, 142, 138, 131, 144, 136, 142, 141, 143, 139, 141, 139, 129, 134, 135, 141, 135, 142, 135, 144, 127, 145, 136, 143, 140, 135, 142, 133, 139, 141, 144, 143, 134, 139, 138, 138, 141, 131, 144, 139, 141, 147, 134, 137, 140, 143, 138, 134, 143, 138, 147, 137, 141, 140, 141, 131, 138, 135, 140, 147, 147, 137, 136, 141, 131, 143, 138, 139, 130, 146, 142, 146, 135, 140, 124, 138, 145, 143, 129, 148, 142, 138, 136, 133, 137, 136, 134, 141, 139, 134, 142, 145, 122, 141, 134, 129, 135, 136, 153, 139, 136, 135, 138, 137, 139, 142, 137, 146, 133, 145, 135, 139, 142, 131, 136, 133, 143, 134, 139, 134, 135, 142, 140, 137, 139, 139, 137, 133, 143, 132, 134, 144, 135, 138, 145, 141, 135, 139, 143, 141, 140, 130, 130, 135, 136, 139, 140, 139, 135, 149, 144, 135, 136, 139, 143, 142, 138, 140, 137, 136, 137, 141, 135, 145, 138, 144, 138, 134, 133, 142, 132, 132, 146, 136, 152, 137, 142, 138, 139, 140, 138, 143, 145, 136, 139, 140, 142, 133, 135, 128, 140, 137, 138, 144, 140, 135, 135, 129, 148, 128, 141, 141, 136, 134, 133, 144, 135, 129, 144, 135, 146, 128, 143, 130, 139, 143, 144, 142, 143, 131, 124, 146, 145, 140, 133, 145, 141, 138, 132, 140, 134, 145, 143, 134, 136, 141, 139, 138, 148, 144, 138, 144, 139, 145, 145, 141, 127, 140, 140, 136, 130, 139, 139, 138, 139, 139, 134, 140, 130, 150, 145, 140, 141, 153, 131, 135, 140, 137, 142, 147, 147, 141, 125, 144, 141, 140, 135, 138, 127, 138, 138, 137, 137, 136, 143, 139, 132, 141, 137, 143, 136, 143, 144, 132, 135, 133, 134, 145, 146, 133, 137, 132, 136, 139, 137, 131, 132, 136, 133, 133, 146, 140, 140, 140, 141, 133, 138, 135, 143, 139, 137, 135, 138, 140, 143, 140, 143, 143, 135, 151, 132, 137, 138, 136, 136, 144, 134, 144, 144, 136, 143, 140, 139, 138, 131, 143, 130, 142, 141, 142, 132, 133, 134, 141, 145, 128, 129, 138, 139, 144, 144, 123, 135, 136, 139, 134, 144, 130, 134, 141, 141, 144, 136, 138, 138, 142, 132, 139, 142, 123, 136, 145, 131, 143, 133, 139, 137, 140, 142, 133, 136, 143, 136, 138, 135, 141, 142, 137, 146, 143, 142, 131, 140, 141, 133, 140, 147, 140, 134, 138, 136, 137, 134, 148, 140, 137, 138, 140, 147, 145, 150, 135, 140, 146, 137, 137, 136, 134, 136, 136, 134, 143, 133, 136, 147, 142, 134, 128, 143, 133, 145, 136, 143, 141, 133, 141, 135, 134, 137, 137, 143, 136, 137, 144, 139, 138, 135, 134, 151, 139, 139, 134, 139, 139, 147, 137, 135, 141, 136, 140, 145, 143, 137, 143, 129, 132, 136, 135, 137, 139, 136, 131, 140, 131, 142, 143, 146, 145, 138, 150, 146, 144, 138, 139, 142, 138, 139, 141, 130, 141, 140, 136, 136, 140, 143, 137, 144, 126, 136, 136, 139, 138, 135, 143, 137, 144, 144, 142, 141, 148, 151, 139, 141, 137, 146, 141, 134, 136, 140, 137, 141, 141, 136, 137, 145, 134, 144, 138, 134, 133, 128, 138, 142, 138, 134, 138, 135, 136, 140, 135, 143, 142, 134, 137, 142, 140, 134, 137, 151, 135, 144, 132, 130, 134, 146, 136, 136, 140, 141, 136, 138, 139, 139, 143, 136, 135, 140, 143, 134, 139, 141, 142, 144, 137, 138, 138, 141, 137, 134, 136, 145, 145, 140, 143, 136, 149, 135, 141, 140, 134, 137, 140, 137, 133, 132, 143, 138, 138, 138, 147, 147, 137, 137, 130, 132, 140, 136, 136, 143, 150, 133, 134, 135, 141, 135, 142, 134, 138, 141, 147, 130, 136, 137, 142, 144, 134, 138, 135, 140, 138, 134, 140, 136, 139, 145, 135, 139, 135, 142, 134, 138, 135, 133, 147, 137, 144, 139, 136, 136, 133, 141, 138, 139, 142, 143, 144, 135, 140, 131, 137, 142, 136, 136, 136, 136, 140, 139, 136, 134, 138, 135, 139, 140, 136, 147, 144, 133, 140, 133, 137, 136, 137, 142, 136, 140, 146, 136, 134, 142, 139, 140, 137, 132, 141, 138, 143, 138, 148, 135, 139, 139, 138, 138, 134, 138, 140, 144, 137, 135, 147, 137, 137, 141, 137, 135, 138, 146, 139, 146, 148, 134, 139, 132, 132, 142, 138, 136, 143, 147, 139, 138, 136, 137, 137, 143, 138, 147, 136, 141, 147, 145, 128, 147, 138, 134, 134, 128, 133, 139, 146, 142, 135, 137, 140, 142, 144, 139, 134, 145, 136, 144, 143, 133, 142, 135, 150, 141, 143, 139, 136, 139, 136, 142, 131, 140, 132, 141, 142, 128, 135, 137, 136, 142, 141, 132, 138, 140, 142, 138, 132, 136, 147, 138, 142, 139, 137, 140, 136, 139, 143, 139, 141, 134, 124, 146, 132, 123, 138, 135, 141, 140, 130, 137, 142, 137, 139, 144, 144, 137, 140, 144, 138, 140, 142, 136, 130, 140, 139, 126, 140, 135, 148, 142, 144, 132, 142, 136, 146, 145, 145, 147, 137, 140, 130, 135, 136, 133, 140, 141, 141, 142, 139, 140, 138, 137, 141, 144, 137, 141, 138, 126, 137, 136, 132, 136, 137, 142, 135, 145, 127, 145, 145, 144, 132, 136, 139, 138, 143, 136, 136, 134, 138, 148, 135, 142, 131, 143, 139, 127, 142, 131, 143, 141, 144, 142, 139, 139, 127, 145, 137, 137, 140, 138, 139, 142, 144, 139, 143, 149, 141, 139, 137, 143, 138, 133, 135, 144, 144, 139, 141, 140, 133, 138, 139, 134, 133, 131, 140, 144, 137, 141, 139, 148, 142, 139, 135, 135, 147, 133, 141, 132, 134, 143, 138, 137, 140, 134, 136, 139, 143, 134, 146, 136, 145, 142, 139, 137, 140, 130, 140, 135, 135, 135, 139, 129, 137, 134, 139, 133, 147, 141, 138, 140, 138, 148, 134, 137, 137, 141, 136, 138, 126, 142, 140, 134, 137, 133, 132, 135, 133, 144, 139, 131, 138, 143, 136, 131, 144, 147, 129, 135, 140, 138, 138, 144, 140, 125, 135, 145, 146, 134, 140, 139, 140, 130, 133, 137, 135, 134, 133, 140, 142, 144, 144, 137, 139, 144, 134, 143, 146, 140, 139, 144, 136, 143, 140, 135, 138, 139, 138, 128, 142, 139, 136, 139, 130, 145, 136, 133, 137, 140, 148, 135, 117, 138, 140, 137, 138, 137, 138, 144, 138, 136, 141, 139, 142, 140, 145, 142, 140, 128, 142, 145, 144, 129, 138, 139, 141, 141, 134, 141, 135, 142, 139, 142, 142, 146, 137, 138, 141, 136, 134, 138, 139, 144, 140, 132, 151, 131, 135, 128, 134, 135, 132, 139, 142, 129, 132, 137, 136, 135, 140, 132, 149, 144, 142, 146, 136, 138, 144, 133, 136, 131, 137, 136, 143, 131, 133, 137, 138, 140, 134, 142, 140, 139, 134, 146, 142, 142, 142, 138, 142, 140, 131, 135, 139, 141, 139, 137, 135, 134, 135, 139, 142, 147, 145, 142, 138, 143, 134, 133, 137, 145, 145, 132, 142, 134, 140, 136, 139, 144, 144, 139, 132, 132, 135, 132, 142, 137, 142, 132, 145, 145, 141, 138, 138, 145, 137, 142, 144, 139, 147, 140, 138, 143, 134, 141, 137, 135, 127, 119, 143, 138, 139, 137, 146, 139, 135, 139, 136, 134, 138, 138, 140, 149, 129, 134, 140, 136, 136, 144, 141, 145, 136, 138, 135, 132, 129, 134, 138, 146, 141, 134, 144, 143, 131, 141, 137, 137, 136, 131, 139, 141, 144, 137, 133, 139, 141, 142, 141, 140, 137, 132, 151, 141, 136, 133, 137, 135, 133, 140, 139, 141, 136, 139, 137, 127, 143, 144, 139, 135, 134, 144, 129, 134, 141, 133, 142, 140, 139, 138, 131, 138, 134, 141, 142, 143, 136, 137, 131, 144, 137, 141, 130, 130, 136, 140, 139, 138, 142, 143, 141, 129, 145, 136, 136, 134, 143, 137, 143, 136, 133, 141, 137, 138, 137, 150, 139, 150, 140, 142, 131, 143, 139, 135, 134, 147, 142, 142, 140, 145, 135, 135, 137, 139, 139, 137, 143, 134, 136, 144, 136, 141, 141, 134, 138, 144, 146, 134, 148, 136, 133, 139, 147, 139, 144, 138, 133, 126, 140, 139, 137, 136, 131, 134, 147, 143, 136, 142, 137, 137, 141, 133, 140, 140, 139, 135, 137, 142, 135, 137, 134, 140, 142, 137, 133, 142, 140, 140, 138, 137, 140, 138, 134, 142, 133, 132, 146, 140, 139, 134, 132, 142, 137, 140, 139, 138, 136, 130, 138, 131, 135, 149, 135, 144, 134, 145, 136, 137, 138, 139, 136, 138, 142, 137, 146, 137, 139, 146, 142, 137, 137, 141, 136, 137, 140, 132, 141, 139, 149, 137, 140, 140, 141, 136, 136, 136, 136, 136, 136, 135, 142, 134, 137, 137, 157, 136, 141, 136, 136, 139, 138, 152, 138, 144, 145, 142, 132, 136, 137, 138, 138, 143, 144, 141, 138, 137, 145, 143, 141, 140, 143, 148, 135, 133, 146, 140, 140, 144, 135, 132, 141, 136, 136, 143, 140, 139, 137, 137, 137, 136, 143, 141, 143, 138, 139, 145, 142, 141, 144, 140, 139, 139, 136, 137, 138, 148, 144, 144, 145, 136, 135, 142, 128, 139, 139, 137, 137, 138, 137, 137, 139, 145, 141, 133, 140, 140, 142, 140, 140, 146, 136, 137, 137, 132, 143, 139, 141, 133, 140, 138, 142, 134, 137, 142, 147, 135, 136, 135, 135, 142, 143, 137, 139, 148, 139, 144, 133, 150, 141, 144, 145, 138, 129, 140, 136, 141, 145, 136, 139, 135, 134, 137, 142, 142, 135, 134, 136, 140, 143, 141, 136, 142, 130, 140, 141, 145, 142, 132, 139, 136, 134, 139, 150, 139, 137, 143, 140, 139, 135, 136, 137, 140, 134, 139, 140, 137, 135, 136, 148, 141, 138, 141, 133, 142, 140, 136, 138, 137, 141, 144, 141, 141, 142, 141, 134, 139, 147, 136, 144, 144, 134, 144, 137, 138, 139, 134, 148, 144, 137, 146, 140, 136, 143, 147, 138, 137, 138, 135, 134, 145, 139, 137, 140, 137, 135, 138, 136, 139, 131, 138, 140, 139, 142, 133, 149, 142, 135, 133, 147, 138, 144, 139, 133, 139, 139, 139, 144, 134, 134, 137, 142, 137, 140, 137, 146, 136, 136, 150, 136, 136, 136, 138, 145, 141, 135, 135, 145, 147, 138, 135, 142, 143, 136, 137, 140, 132, 148, 138, 140, 141, 129, 140, 141, 137, 141, 140, 138, 138, 139, 138, 137, 138, 145, 139, 144, 139, 139, 139, 137, 140, 144, 141, 142, 142, 139, 139, 143, 140, 135, 140, 136, 152, 135, 144, 133, 142, 139, 138, 141, 138, 138, 141, 140, 141, 141, 145, 140, 140, 142, 144, 134, 131, 157, 132, 141, 137, 138, 131, 140, 137, 142, 149, 138, 136, 141, 135, 144, 137, 153, 132, 141, 143, 136, 134, 135, 143, 139, 139, 141, 138, 141, 141, 136, 145, 139, 145, 139, 135, 139, 142, 139, 139, 147, 136, 140, 138, 140, 139, 142, 141, 136, 140, 138, 140, 141, 142, 136, 136, 139, 135, 148, 134, 131, 140, 141, 142, 150, 136, 140, 139, 140, 132, 141, 137, 136, 144, 143, 137, 141, 135, 142, 141, 132, 147, 134, 140, 140, 143, 133, 131, 143, 145, 140, 137, 132, 138, 150, 135, 138, 140, 134, 143, 143, 135, 139, 141, 140, 140, 132, 139, 147, 136, 142, 131, 139, 145, 140, 144, 147, 146, 130, 138, 141, 128, 136, 137, 137, 152, 142, 138, 136, 143, 137, 140, 139, 138, 136, 142, 133, 144, 139, 140, 142, 147, 137, 136, 144, 138, 138, 137, 138, 139, 148, 144, 142, 133, 138, 141, 139, 145, 124, 138, 138, 140, 144, 144, 132, 136, 142, 134, 140, 142, 137, 129, 135, 132, 146, 140, 138, 140, 135, 144, 131, 133, 135, 138, 136, 139, 139, 149, 140, 141, 136, 138, 145, 147, 133, 141, 130, 145, 136, 144, 136, 150, 140, 143, 140, 142, 122, 143, 133, 130, 145, 135, 136, 132, 144, 140, 143, 131, 135, 134, 125, 142, 146, 140, 141, 135, 135, 149, 134, 138, 143, 132, 136, 138, 139, 128, 139, 138, 138, 136, 139, 141, 148, 136, 131, 134, 127, 136, 136, 142, 134, 130, 127, 141, 134, 141, 144, 140, 138, 139, 143, 139, 141, 127, 134, 141, 138, 140, 141, 143, 136, 143, 144, 137, 133, 136, 141, 147, 136, 129, 143, 136, 146, 142, 146, 150, 135, 133, 143, 139, 137, 142, 143, 138, 134, 140, 136, 139, 148, 141, 136, 138, 140, 140, 143, 136, 139, 133, 133, 145, 142, 140, 134, 134, 133, 141, 133, 138, 139, 137, 132, 140, 142, 138, 151, 139, 143, 135, 139, 141, 139, 151, 135, 141, 134, 132, 139, 134, 141, 137, 138, 146, 149, 147, 138, 141, 140, 134, 139, 137, 145, 142, 138, 132, 140, 143, 148, 141, 135, 140, 146, 131, 129, 135, 138, 144, 145, 144, 137, 141, 132, 139, 139, 139, 145, 135, 136, 138, 140, 138, 132, 139, 139, 147, 145, 138, 140, 130, 135, 142, 143, 136, 141, 140, 157, 139, 145, 138, 133, 135, 136, 148, 130, 147, 139, 141, 139, 144, 134, 142, 140, 142, 145, 130, 144, 142, 141, 133, 142, 132, 134, 131, 137, 135, 142, 135, 138, 144, 144, 134, 135, 142, 139, 131, 136, 134, 138, 140, 140, 138, 144, 142, 140, 133, 135, 131, 139, 139, 142, 141, 137, 136, 137, 137, 136, 148, 135, 141, 132, 138, 142, 148, 126, 140, 131, 134, 129, 138, 137, 123, 135, 135, 142, 149, 138, 146, 139, 136, 136, 144, 138, 137, 146, 125, 136, 136, 133, 139, 132, 134, 137, 138, 134, 137, 136, 139, 141, 140, 141, 134, 134, 143, 134, 132, 140, 139, 134, 139, 138, 152, 134, 133, 140, 133, 134, 138, 145, 142, 135, 147, 141, 143, 138, 131, 141, 141, 141, 136, 149, 133, 130, 142, 141, 142, 139, 145, 137, 145, 139, 144, 142, 134, 138, 140, 144, 147, 139, 142, 132, 146, 133, 136, 139, 137, 139, 137, 140, 142, 130, 145, 140, 142, 131, 149, 144, 135, 143, 129, 152, 128, 146, 139, 131, 138, 131, 139, 137, 147, 147, 137, 139, 140, 142, 141, 145, 144, 139, 142, 131, 144, 135, 141, 140, 151, 149, 140, 144, 131, 144, 139, 138, 140, 132, 135, 138, 137, 140, 139, 139, 135, 136, 132, 133, 131, 137, 138, 141, 142, 142, 138, 142, 144, 144, 143, 143, 131, 137, 141, 144, 135, 145, 136, 145, 139, 145, 135, 144, 135, 141, 146, 143, 139, 138, 142, 142, 146, 136, 138, 140, 131, 141, 140, 133, 140, 138, 135, 136, 136, 136, 143, 139, 141, 145, 142, 144, 156, 146, 140, 143, 131, 141, 144, 142, 142, 140, 134, 147, 139, 141, 137, 140, 140, 134, 144, 139, 143, 145, 140, 146, 133, 135, 142, 141, 132, 132, 147, 142, 139, 134, 138, 155, 126, 134, 136, 139, 140, 136, 138, 139, 133, 141, 141, 145, 133, 137, 138, 145, 148, 143, 140, 142, 122, 137, 147, 142, 139, 140, 135, 136, 137, 136, 128, 139, 139, 141, 144, 144, 141, 138, 131, 128, 146, 132, 138, 136, 138, 136, 145, 141, 134, 139, 147, 136, 147, 144, 133, 127, 142, 136, 135, 142, 135, 132, 133, 149, 137, 138, 136, 142, 134, 137, 134, 126, 147, 120, 147, 134, 136, 140, 147, 136, 145, 138, 144, 141, 146, 139, 142, 136, 144, 146, 130, 148, 138, 139, 143, 134, 133, 142, 134, 142, 141, 139, 140, 140, 136, 133, 131, 134, 131, 142, 141, 136, 140, 135, 143, 137, 147, 141, 141, 150, 141, 145, 146, 139, 132, 134, 131, 136, 143, 145, 148, 133, 137, 136, 135, 142, 140, 143, 138, 141, 134, 142, 146, 139, 141, 134, 139, 137, 139, 140, 135, 137, 138, 143, 136, 139, 139, 137, 142, 140, 145, 138, 144, 140, 141, 149, 146, 137, 132, 140, 135, 131, 140, 144, 137, 137, 146, 145, 139, 148, 137, 142, 136, 145, 132, 136, 140, 151, 140, 137, 136, 133, 140, 134, 145, 141, 134, 139, 134, 135, 141, 136, 143, 136, 146, 133, 141, 135, 144, 131, 142, 139, 138, 134, 142, 138, 133, 131, 134, 130, 144, 143, 136, 139, 137, 137, 140, 139, 136, 137, 138, 130, 139, 138, 140, 135, 139, 154, 130, 146, 138, 135, 137, 142, 135, 134, 136, 138, 135, 141, 134, 131, 137, 141, 138, 140, 137, 129, 140, 137, 135, 131, 132, 139, 145, 128, 137, 141, 140, 145, 142, 132, 129, 141, 135, 130, 136, 140, 135, 132, 142, 147, 137, 142, 144, 133, 138, 131, 130, 142, 142, 141, 140, 141, 142, 143, 147, 138, 145, 137, 139, 125, 136, 138, 143, 141, 137, 142, 137, 128, 143, 140, 142, 138, 132, 151, 145, 141, 135, 137, 138, 139, 131, 152, 145, 139, 138, 144, 132, 150, 140, 144, 149, 129, 138, 134, 149, 144, 143, 138, 143, 143, 140, 138, 135, 124, 141, 132, 147, 122, 145, 139, 143, 141, 140, 145, 136, 141, 138, 134, 138, 144, 136, 138, 139, 140, 141, 143, 138, 134, 137, 140, 150, 136, 135, 146, 135, 138, 147, 139, 136, 137, 133, 128, 146, 132, 137, 137, 140, 147, 137, 135, 140, 142, 138, 136, 128, 143, 136, 137, 138, 142, 150, 144, 135, 138, 140, 132, 134, 134, 135, 138, 147, 134, 134, 136, 143, 137, 143, 136, 128, 148, 146, 137, 139, 140, 142, 134, 142, 138, 139, 136, 136, 145, 141, 150, 143, 139, 142, 151, 139, 133, 134, 128, 124, 157, 140, 137, 138, 141, 140, 143, 147, 135, 144, 137, 137, 133, 145, 141, 137, 138, 133, 147, 136, 146, 137, 141, 133, 146, 146, 144, 146, 137, 135, 141, 135, 138, 141, 142, 138, 141, 139, 131, 147, 140, 136, 143, 145, 135, 137, 142, 138, 141, 133, 138, 142, 140, 134, 138, 132, 135, 137, 140, 141, 138, 128, 141, 148, 136, 143, 146, 146, 147, 141, 136, 140, 138, 153, 139, 134, 135, 133, 134, 140, 141, 143, 134, 143, 131, 146, 137, 133, 141, 145, 144, 136, 139, 137, 140, 131, 138, 140, 141, 148, 138, 140, 134, 139, 141, 142, 146, 138, 136, 148, 140, 142, 132, 137, 138, 133, 146, 141, 135, 144, 142, 140, 144, 138, 148, 141, 142, 137, 145, 136, 140, 136, 134, 136, 145, 138, 146, 138, 146, 132, 141, 135, 126, 135, 135, 138, 138, 140, 129, 141, 135, 142, 126, 148, 143, 136, 136, 137, 142, 138, 138, 138, 143, 136, 150, 134, 135, 144, 139, 137, 131, 138, 143, 139, 135, 142, 141, 138, 147, 138, 143, 139, 139, 142, 136, 141, 137, 140, 137, 136, 129, 132, 135, 145, 132, 140, 141, 141, 144, 135, 133, 130, 131, 141, 141, 141, 141, 133, 138, 139, 137, 147, 144, 139, 139, 140, 141, 137, 132, 129, 129, 132, 138, 141, 143, 138, 132, 137, 141, 142, 133, 138, 139, 148, 135, 139, 145, 134, 141, 142, 129, 136, 133, 137, 147, 138, 148, 128, 141, 135, 140, 143, 136, 136, 137, 145, 135, 135, 146, 136, 135, 129, 141, 141, 140, 142, 140, 134, 139, 137, 137, 144, 135, 132, 135, 136, 134, 138, 146, 135, 136, 141, 147, 132, 142, 139, 140, 140, 138, 133, 135, 141, 133, 140, 142, 136, 136, 134, 133, 136, 145, 139, 142, 134, 135, 133, 136, 135, 136, 137, 142, 132, 137, 146, 144, 142, 135, 132, 136, 141, 133, 137, 142, 141, 136, 143, 135, 143, 137, 144, 135, 141, 140, 143, 138, 135, 137, 137, 139, 137, 141, 145, 137, 143, 140, 144, 148, 131, 132, 146, 136, 134, 132, 151, 135, 126, 133, 139, 144, 138, 138, 142, 139, 139, 136, 142, 139, 139, 150, 134, 134, 133, 148, 137, 130, 139, 136, 134, 135, 151, 145, 140, 142, 144, 135, 142, 136, 138, 136, 136, 146, 142, 140, 128, 143, 138, 137, 135, 139, 141, 138, 136, 145, 139, 138, 137, 128, 140, 141, 137, 143, 142, 137, 148, 129, 136, 139, 137, 141, 146, 143, 133, 149, 144, 138, 131, 142, 142, 141, 138, 132, 137, 135, 140, 127, 130, 145, 133, 136, 139, 135, 138, 140, 144, 138, 144, 138, 141, 133, 141, 135, 138, 137, 135, 144, 146, 135, 132, 142, 144, 144, 148, 141, 137, 134, 134, 145, 143, 140, 145, 154, 142, 133, 116, 140, 134, 129, 142, 145, 146, 138, 144, 134, 136, 141, 131, 138, 138, 131, 132, 140, 147, 141, 151, 142, 144, 138, 139, 135, 144, 142, 141, 143, 134, 143, 137, 141, 136, 132, 125, 150, 130, 135, 143, 134, 133, 149, 136, 139, 147, 142, 143, 156, 143, 142, 120, 136, 134, 144, 140, 135, 135, 143, 133, 143, 137, 137, 136, 134, 141, 145, 147, 147, 132, 141, 141, 137, 138, 143, 138, 140, 142, 147, 142, 129, 132, 148, 142, 144, 136, 132, 142, 129, 144, 138, 142, 141, 135, 136, 141, 125, 142, 140, 130, 134, 146, 136, 140, 139, 135, 137, 148, 146, 148, 138, 134, 137, 135, 123, 145, 140, 144, 132, 137, 135, 139, 138, 142, 144, 146, 142, 141, 135, 140, 150, 147, 133, 142, 134, 128, 142, 140, 146, 132, 146, 137, 147, 134, 143, 139, 131, 132, 139, 136, 142, 142, 136, 140, 151, 143, 144, 145, 139, 136, 148, 134, 148, 123, 136, 138, 136, 132, 138, 131, 140, 134, 142, 138, 134, 144, 151, 131, 136, 133, 128, 137, 142, 137, 140, 140, 139, 137, 134, 134, 135, 145, 131, 133, 137, 144, 137, 142, 142, 133, 144, 142, 138, 149, 134, 134, 132, 145, 145, 139, 143, 138, 126, 147, 136, 141, 142, 136, 137, 132, 139, 144, 146, 138, 141, 150, 144, 139, 133, 138, 134, 131, 135, 144, 146, 134, 127, 134, 146, 143, 134, 150, 141, 138, 137, 142, 132, 140, 134, 137, 141, 146, 138, 135, 144, 149, 131, 134, 136, 136, 143, 133, 133, 144, 135, 134, 137, 134, 154, 139, 142, 147, 143, 127, 135, 144, 129, 137, 141, 131, 140, 139, 152, 143, 166, 146, 130, 131, 127, 136, 140, 144, 143, 138, 144, 138, 139, 142, 138, 136, 130, 136, 137, 142, 133, 135, 140, 132, 143, 145, 137, 135, 134, 141, 140, 146, 137, 136, 142, 148, 151, 136, 132, 130, 135, 138, 142, 139, 137, 139, 132, 136, 145, 142, 147, 133, 144, 141, 145, 136, 146, 131, 130, 128, 133, 142, 135, 138, 150, 144, 132, 136, 145, 138, 134, 130, 134, 138, 146, 142, 152, 138, 135, 131, 138, 139, 143, 140, 140, 145, 140, 136, 135, 135, 135, 140, 149, 136, 139, 135, 150, 132, 143, 133, 133, 143, 139, 136, 147, 141, 139, 119, 137, 139, 134, 133, 137, 142, 137, 128, 138, 135, 135, 131, 144, 152, 139, 148, 133, 133, 136, 133, 139, 138, 137, 144, 139, 136, 146, 140, 132, 139, 137, 130, 132, 133, 135, 142, 134, 147, 140, 134, 129, 132, 136, 136, 135, 135, 131, 149, 134, 120, 136, 130, 142, 134, 141, 137, 143, 148, 134, 127, 141, 141, 138, 142, 138, 138, 141, 145, 138, 133, 141, 143, 144, 133, 134, 135, 138, 128, 142, 138, 138, 147, 132, 136, 140, 142, 138, 131, 131, 134, 135, 146, 133, 138, 137, 138, 138, 144, 130, 138, 134, 141, 140, 137, 145, 141, 148, 135, 135, 150, 136, 150, 147, 145, 145, 140, 139, 138, 137, 128, 148, 145, 138, 147, 132, 134, 130, 140, 146, 133, 132, 135, 152, 139, 130, 136, 139, 135, 146, 138, 136, 137, 151, 144, 140, 139, 144, 138, 139, 140, 141, 130, 143, 142, 141, 136, 132, 139, 123, 139, 134, 143, 136, 144, 135, 143, 132, 139, 132, 144, 140, 136, 138, 140, 147, 135, 159, 133, 141, 136, 146, 137, 134, 134, 141, 129, 132, 147, 145, 151, 153, 145, 149, 137, 142, 139, 137, 147, 138, 141, 133, 136, 142, 154, 144, 139, 137, 139, 131, 140, 138, 147, 138, 144, 146, 141, 138, 141, 146, 144, 150, 138, 134, 140, 139, 125, 133, 138, 138, 135, 126, 141, 134, 146, 149, 145, 147, 139, 137, 136, 139, 137, 132, 143, 147, 141, 148, 131, 131, 131, 145, 133, 148, 140, 140, 133, 144, 143, 140, 133, 140, 152, 138, 133, 152, 138, 131, 132, 136, 144, 139, 136, 131, 135, 145, 138, 143, 136, 151, 136, 146, 149, 141, 146, 135, 146, 141, 137, 149, 148, 140, 137, 139, 133, 141, 142, 142, 139, 147, 137, 132, 132, 147, 143, 137, 135, 134, 140, 130, 130, 140, 134, 140, 139, 145, 144, 146, 139, 147, 145, 146, 131, 132, 144, 135, 143, 142, 140, 134, 133, 139, 135, 159, 145, 137, 129, 149, 136, 150, 142, 137, 134, 142, 133, 134, 133, 149, 148, 134, 142, 152, 138, 138, 149, 136, 140, 132, 144, 131, 147, 144, 145, 126, 143, 143, 136, 132, 144, 143, 135, 134, 129, 139, 140, 145, 138, 141, 147, 134, 154, 143, 142, 132, 130, 147, 143, 141, 138, 138, 133, 141, 134, 139, 137, 143, 138, 148, 139, 136, 146, 130, 140, 143, 130, 130, 133, 148, 134, 124, 140, 142, 146, 135, 125, 126, 136, 139, 138, 148, 123, 141, 145, 136, 141, 145, 140, 144, 133, 135, 147, 138, 139, 136, 139, 148, 146, 139, 139, 136, 152, 138, 130, 138, 142, 137, 142, 138, 141, 140, 139, 138, 137, 137, 135, 125, 141, 146, 144, 136, 136, 135, 135, 145, 126, 140, 139, 138, 137, 131, 146, 141, 129, 130, 144, 145, 124, 138, 140, 121, 147, 132, 138, 149, 145, 146, 144, 140, 140, 143, 137, 147, 139, 135, 142, 130, 145, 145, 133, 134, 142, 143, 141, 143, 153, 137, 134, 139, 137, 118, 139, 140, 137, 132, 133, 129, 138, 135, 143, 138, 130, 136, 147, 131, 139, 142, 142, 143, 134, 143, 137, 140, 136, 133, 139, 145, 141, 135, 145, 136, 141, 140, 131, 144, 132, 134, 137, 132, 139, 129, 147, 139, 143, 139, 133, 140, 145, 140, 139, 133, 139, 150, 131, 131, 122, 145, 137, 139, 136, 141, 136, 141, 130, 132, 133, 144, 146, 153, 143, 149, 142, 135, 139, 139, 133, 150, 136, 157, 131, 136, 126, 136, 131, 149, 145, 143, 132, 137, 138, 117, 139, 137, 139, 135, 145, 123, 142, 145, 141, 145, 147, 138, 138, 144, 133, 139, 138, 137, 137, 135, 140, 143, 146, 143, 128, 134, 145, 122, 131, 126, 148, 136, 134, 139, 143, 138, 139, 142, 131, 132, 136, 143, 126, 137, 139, 137, 130, 134, 149, 153, 140, 137, 135, 133, 125, 143, 134, 138, 156, 133, 137, 139, 147, 134, 140, 140, 138, 130, 141, 142, 137, 131, 133, 137, 139, 144, 149, 145, 151, 139, 140, 143, 137, 138, 141, 141, 145, 140, 144, 142, 137, 139, 132, 146, 139, 144, 146, 136, 135, 140, 127, 139, 143, 142, 137, 144, 141, 130, 141, 135, 136, 143, 133, 140, 141, 140, 131, 142, 137, 136, 143, 143, 148, 128, 131, 135, 147, 139, 117, 133, 144, 143, 131, 133, 140, 142, 138, 150, 131, 125, 138, 149, 127, 146, 133, 139, 127, 134, 131, 138, 138, 137, 132, 140, 142, 124, 131, 156, 138, 139, 139, 138, 147, 140, 123, 138, 134, 139, 138, 145, 141, 139, 128, 140, 148, 133, 147, 141, 136, 137, 137, 137, 132, 138, 123, 131, 143, 135, 147, 138, 131, 136, 134, 141, 135, 137, 139, 137, 131, 136, 131, 128, 133, 140, 130, 128, 141, 133, 140, 139, 146, 134, 137, 135, 139, 133, 126, 137, 142, 139, 129, 144, 137, 134, 136, 137, 124, 149, 141, 133, 143, 150, 133, 145, 143, 146, 140, 136, 140, 138, 143, 134, 133, 136, 137, 143, 139, 137, 142, 135, 138, 132, 137, 136, 137, 151, 133, 137, 142, 138, 141, 132, 137, 135, 138, 135, 142, 146, 135, 142, 135, 128, 137, 143, 133, 145, 142, 136, 143, 131, 143, 130, 142, 140, 126, 122, 143, 143, 134, 142, 147, 139, 140, 134, 137, 146, 138, 136, 133, 146, 125, 134, 137, 136, 129, 137, 147, 136, 138, 141, 138, 141, 132, 133, 126, 139, 137, 145, 136, 138, 148, 135, 128, 132, 134, 140, 141, 136, 138, 145, 134, 144, 124, 142, 143, 134, 145, 136, 146, 140, 133, 139, 150, 132, 139, 136, 133, 137, 133, 130, 134, 133, 137, 138, 136, 146, 136, 153, 138, 138, 138, 149, 147, 137, 136, 145, 139, 138, 134, 131, 125, 138, 135, 147, 136, 136, 136, 139, 139, 141, 139, 141, 143, 141, 140, 132, 133, 143, 141, 139, 147, 134, 147, 149, 142, 129, 148, 142, 141, 134, 133, 129, 159, 144, 124, 131, 130, 136, 143, 139, 143, 140, 141, 148, 147, 143, 149, 143, 141, 137, 150, 139, 136, 144, 134, 135, 144, 133, 137, 145, 144, 141, 138, 146, 141, 137, 123, 147, 135, 146, 141, 137, 142, 140, 145, 139, 142, 131, 136, 135, 141, 141, 138, 135, 136, 139, 136, 141, 135, 131, 136, 133, 148, 143, 136, 127, 137, 142, 142, 151, 140, 134, 139, 138, 141, 136, 130, 145, 146, 143, 139, 142, 143, 136, 140, 142, 138, 139, 139, 150, 141, 138, 144, 140, 133, 140, 134, 158, 137, 129, 141, 127, 134, 137, 135, 143, 128, 132, 133, 132, 139, 130, 143, 138, 131, 122, 149, 131, 137, 134, 129, 137, 145, 140, 134, 137, 131, 136, 143, 147, 139, 141, 136, 137, 143, 140, 143, 138, 142, 141, 139, 144, 135, 140, 138, 133, 141, 138, 136, 132, 142, 130, 141, 145, 144, 135, 136, 133, 127, 131, 141, 141, 133, 129, 138, 133, 144, 135, 132, 138, 132, 145, 143, 138, 142, 138, 138, 141, 136, 140, 141, 135, 139, 132, 151, 130, 140, 150, 144, 142, 139, 141, 143, 134, 141, 135, 150, 151, 140, 137, 140, 140, 138, 139, 141, 139, 140, 136, 134, 143, 138, 139, 150, 135, 151, 142, 139, 139, 139, 136, 144, 137, 141, 157, 135, 134, 132, 142, 144, 142, 127, 136, 146, 147, 142, 144, 137, 142, 136, 126, 132, 143, 143, 132, 145, 138, 133, 141, 130, 149, 129, 140, 134, 132, 137, 138, 135, 138, 144, 142, 135, 140, 135, 148, 133, 128, 135, 133, 148, 145, 133, 142, 135, 134, 130, 136, 140, 134, 133, 138, 134, 146, 141, 131, 137, 140, 139, 141, 140, 138, 140, 139, 150, 134, 134, 139, 140, 150, 141, 133, 135, 135, 140, 132, 143, 138, 127, 143, 139, 143, 145, 141, 135, 138, 143, 132, 134, 137, 138, 134, 156, 141, 151, 135, 137, 134, 139, 136, 146, 142, 143, 139, 136, 137, 132, 140, 143, 141, 148, 146, 134, 151, 138, 139, 150, 143, 141, 145, 139, 143, 141, 137, 142, 145, 140, 135, 138, 133, 140, 146, 131, 138, 140, 143, 134, 140, 130, 143, 140, 137, 145, 139, 146, 142, 153, 136, 137, 149, 139, 144, 137, 140, 140, 141, 141, 136, 133, 139, 137, 152, 141, 134, 140, 142, 145, 135, 145, 143, 132, 133, 151, 132, 140, 139, 137, 143, 135, 133, 136, 155, 133, 137, 141, 134, 140, 135, 149, 131, 142, 136, 141, 139, 141, 145, 135, 142, 144, 153, 139, 133, 138, 133, 130, 145, 137, 142, 139, 145, 143, 143, 130, 132, 142, 141, 155, 134, 131, 134, 141, 128, 140, 139, 140, 150, 141, 135, 142, 142, 140, 144, 143, 130, 137, 134, 134, 152, 128, 134, 134, 147, 138, 148, 136, 138, 151, 134, 140, 142, 143, 146, 145, 126, 141, 143, 142, 133, 140, 142, 137, 148, 150, 139, 148, 140, 145, 136, 138, 136, 132, 132, 145, 136, 136, 137, 141, 124, 140, 141, 141, 133, 139, 139, 135, 129, 130, 139, 140, 133, 146, 137, 141, 139, 139, 140, 137, 133, 140, 144, 138, 137, 143, 132, 142, 136, 147, 139, 138, 144, 142, 132, 130, 140, 134, 137, 149, 142, 134, 135, 129, 142, 134, 138, 136, 137, 144, 137, 131, 137, 140, 144, 141, 139, 140, 142, 135, 141, 132, 138, 133, 138, 148, 131, 147, 145, 141, 140, 130, 136, 138, 138, 142, 133, 137, 137, 136, 145, 138, 134, 141, 142, 142, 136, 126, 124, 139, 132, 137, 134, 138, 132, 148, 148, 141, 139, 148, 135, 139, 133, 137, 138, 152, 138, 147, 135, 138, 146, 140, 129, 134, 142, 141, 128, 147, 135, 132, 135, 134, 146, 144, 142, 141, 138, 140, 132, 133, 145, 136, 144, 142, 146, 139, 134, 154, 140, 145, 134, 142, 144, 145, 137, 141, 137, 139, 140, 143, 138, 144, 136, 134, 146, 137, 151, 140, 137, 133, 143, 138, 144, 134, 142, 145, 136, 134, 136, 130, 138, 139, 130, 136, 131, 141, 135, 139, 145, 146, 147, 135, 140, 130, 132, 138, 136, 133, 136, 137, 139, 127, 136, 144, 143, 140, 129, 142, 135, 138, 145, 140, 142, 139, 142, 138, 138, 140, 126, 138, 127, 134, 136, 130, 133, 136, 132, 133, 135, 118, 129, 139, 138, 142, 141, 129, 138, 155, 134, 140, 140, 135, 141, 141, 142, 139, 143, 140, 134, 139, 136, 139, 137, 137, 135, 142, 139, 134, 133, 139, 135, 133, 137, 150, 139, 137, 131, 129, 131, 136, 143, 143, 130, 135, 139, 136, 128, 140, 140, 144, 141, 146, 142, 142, 129, 138, 143, 134, 147, 136, 148, 126, 141, 135, 136, 133, 136, 139, 143, 126, 139, 128, 138, 136, 143, 139, 135, 140, 141, 140, 140, 138, 135, 142, 147, 139, 145, 140, 132, 132, 139, 136, 148, 139, 138, 130, 145, 129, 142, 137, 147, 146, 134, 136, 145, 139, 146, 143, 137, 132, 139, 130, 130, 134, 143, 125, 134, 137, 142, 145, 133, 143, 141, 133, 137, 129, 134, 138, 129, 137, 142, 146, 135, 139, 147, 142, 139, 152, 135, 132, 147, 142, 154, 142, 141, 137, 132, 136, 140, 146, 137, 138, 135, 139, 144, 135, 135, 142, 144, 139, 156, 143, 143, 137, 142, 135, 139, 143, 131, 153, 142, 133, 148, 135, 144, 138, 143, 142, 147, 144, 140, 133, 136, 136, 132, 139, 148, 144, 142, 143, 131, 140, 146, 139, 149, 148, 144, 130, 140, 137, 136, 138, 129, 138, 139, 138, 137, 138, 140, 141, 140, 129, 146, 142, 136, 133, 146, 139, 144, 148, 146, 135, 154, 135, 147, 127, 140, 133, 142, 143, 134, 142, 127, 136, 139, 127, 136, 152, 142, 137, 129, 136, 135, 135, 136, 135, 132, 138, 133, 131, 135, 141, 144, 150, 145, 138, 131, 140, 136, 129, 143, 151, 156, 143, 137, 133, 147, 122, 141, 131, 136, 139, 143, 133, 133, 132, 139, 130, 130, 153, 142, 133, 139, 138, 141, 141, 134, 150, 141, 135, 142, 146, 136, 134, 143, 134, 138, 130, 137, 144, 142, 137, 126, 145, 146, 138, 132, 142, 131, 142, 141, 132, 133, 144, 140, 137, 161, 144, 137, 126, 128, 143, 152, 151, 140, 141, 131, 130, 144, 143, 132, 144, 131, 131, 128, 145, 139, 143, 144, 143, 141, 141, 134, 138, 138, 135, 136, 128, 145, 144, 136, 151, 133, 135, 142, 145, 134, 132, 130, 138, 131, 123, 141, 130, 141, 141, 137, 145, 141, 144, 129, 123, 150, 138, 141, 139, 135, 140, 142, 128, 135, 133, 134, 144, 139, 139, 142, 145, 134, 136, 144, 141, 134, 132, 148, 136, 142, 140, 138, 142, 134, 136, 135, 133, 139, 153, 132, 151, 132, 138, 138, 146, 148, 133, 141, 135, 127, 140, 145, 137, 138, 138, 132, 139, 133, 157, 144, 132, 138, 138, 124, 141, 135, 140, 135, 144, 140, 136, 148, 131, 140, 139, 143, 142, 138, 140, 141, 144, 143, 144, 152, 134, 141, 136, 134, 132, 139, 131, 137, 132, 154, 149, 144, 144, 136, 141, 136, 135, 144, 140, 142, 138, 139, 141, 139, 143, 142, 131, 138, 148, 139, 143, 135, 142, 144, 136, 142, 133, 140, 139, 146, 127, 147, 150, 137, 145, 131, 132, 145, 146, 136, 147, 150, 152, 147, 129, 137, 148, 135, 147, 141, 130, 134, 149, 137, 143, 131, 129, 142, 132, 134, 137, 141, 143, 140, 144, 139, 140, 146, 152, 132, 145, 149, 133, 132, 141, 144, 142, 141, 145, 150, 137, 143, 136, 129, 135, 144, 133, 140, 132, 145, 139, 142, 123, 129, 138, 133, 135, 144, 147, 136, 149, 133, 134, 124, 140, 139, 142, 140, 149, 139, 127, 143, 133, 138, 136, 142, 141, 147, 141, 142, 136, 135, 135, 145, 140, 137, 142, 141, 136, 139, 140, 125, 133, 141, 151, 128, 134, 139, 132, 144, 140, 145, 129, 136, 145, 142, 136, 138, 143, 134, 152, 136, 145, 141, 143, 144, 137, 129, 148, 141, 130, 145, 146, 135, 137, 137, 153, 135, 134, 131, 144, 137, 136, 138, 140, 129, 138, 141, 144, 139, 134, 127, 138, 142, 133, 151, 136, 145, 142, 141, 145, 137, 144, 143, 133, 144, 136, 155, 146, 134, 141, 142, 142, 136, 137, 131, 134, 135, 140, 136, 125, 142, 148, 129, 130, 134, 116, 142, 130, 139, 138, 143, 156, 144, 139, 137, 135, 147, 140, 137, 138, 131, 155, 154, 134, 132, 131, 152, 140, 141, 129, 131, 143, 137, 131, 147, 134, 142, 132, 144, 146, 135, 125, 133, 137, 140, 140, 141, 142, 131, 140, 133, 132, 134, 139, 136, 139, 143, 144, 132, 139, 136, 145, 145, 138, 140, 148, 143, 142, 125, 147, 143, 137, 138, 146, 154, 134, 138, 133, 141, 141, 134, 137, 146, 149, 140, 143, 152, 141, 135, 156, 136, 135, 145, 133, 141, 139, 138, 142, 134, 140, 137, 130, 140, 149, 141, 141, 143, 138, 139, 138, 131, 134, 119, 129, 140, 154, 139, 138, 150, 137, 138, 145, 132, 135, 134, 141, 142, 138, 129, 147, 130, 143, 143, 152, 133, 135, 140, 145, 152, 136, 142, 134, 144, 146, 141, 133, 132, 135, 142, 144, 143, 150, 141, 129, 136, 137, 129, 122, 139, 141, 149, 151, 141, 133, 147, 129, 132, 138, 134, 141, 135, 137, 136, 144, 133, 135, 139, 140, 133, 150, 140, 142, 129, 139, 140, 141, 135, 155, 132, 138, 129, 135, 139, 138, 137, 137, 138, 140, 137, 143, 146, 147, 138, 151, 147, 138, 134, 139, 142, 126, 145, 137, 143, 136, 136, 144, 141, 139, 134, 137, 139, 143, 129, 143, 136, 142, 127, 145, 134, 150, 130, 148, 148, 137, 131, 140, 132, 135, 143, 129, 135, 139, 138, 144, 142, 130, 146, 143, 134, 141, 142, 138, 141, 147, 143, 137, 133, 135, 143, 126, 127, 142, 133, 159, 139, 140, 139, 135, 143, 137, 140, 132, 137, 142, 141, 143, 144, 125, 143, 137, 137, 141, 134, 143, 135, 136, 136, 136, 137, 140, 129, 146, 146, 133, 126, 130, 157, 144, 140, 141, 143, 132, 135, 155, 136, 137, 130, 139, 144, 143, 135, 144, 140, 131, 133, 133, 137, 139, 148, 143, 139, 143, 127, 132, 130, 137, 139, 137, 148, 138, 145, 142, 140, 137, 131, 138, 142, 137, 140, 145, 139, 140, 147, 139, 142, 145, 133, 143, 135, 141, 143, 130, 141, 133, 138, 140, 136, 145, 136, 137, 137, 137, 137, 138, 132, 137, 145, 133, 147, 146, 134, 143, 132, 138, 129, 128, 147, 142, 145, 135, 143, 140, 138, 127, 145, 149, 140, 144, 140, 133, 134, 137, 134, 147, 143, 140, 137, 133, 141, 142, 131, 133, 158, 145, 138, 141, 134, 135, 132, 130, 137, 137, 132, 150, 139, 139, 134, 135, 138, 136, 149, 144, 134, 141, 144, 140, 149, 139, 134, 142, 142, 146, 139, 131, 143, 137, 139, 143, 136, 142, 138, 137, 145, 144, 143, 135, 143, 132, 134, 142, 144, 138, 147, 132, 134, 144, 142, 143, 140, 132, 138, 143, 130, 139, 134, 148, 135, 140, 135, 140, 133, 135, 140, 147, 139, 141, 138, 133, 139, 135, 135, 139, 150, 148, 130, 140, 143, 147, 142, 148, 140, 142, 145, 134, 123, 146, 141, 138, 143, 145, 135, 140, 137, 148, 137, 142, 150, 142, 139, 134, 136, 154, 138, 142, 138, 132, 136, 147, 139, 139, 135, 144, 135, 145, 137, 132, 132, 136, 137, 132, 135, 140, 141, 145, 140, 128, 145, 146, 137, 145, 139, 134, 139, 138, 139, 148, 132, 143, 130, 134, 138, 139, 145, 141, 131, 136, 129, 145, 141, 134, 140, 142, 145, 143, 137, 145, 142, 136, 140, 135, 144, 133, 147, 137, 151, 137, 146, 144, 140, 139, 138, 138, 138, 134, 131, 129, 139, 135, 128, 133, 136, 139, 140, 133, 131, 139, 145, 139, 140, 138, 134, 133, 138, 140, 139, 143, 150, 141, 131, 137, 129, 140, 139, 140, 152, 139, 140, 138, 142, 136, 137, 141, 145, 141, 142, 150, 137, 137, 143, 140, 138, 133, 135, 128, 142, 135, 132, 144, 134, 134, 135, 144, 135, 141, 130, 138, 140, 147, 138, 132, 144, 140, 148, 138, 139, 138, 135, 143, 135, 137, 138, 133, 135, 134, 143, 147, 139, 135, 139, 138, 140, 138, 149, 132, 146, 143, 133, 137, 134, 145, 145, 135, 141, 141, 132, 141, 137, 143, 132, 137, 144, 138, 147, 133, 136, 143, 139, 140, 128, 138, 137, 142, 143, 139, 140, 146, 138, 137, 137, 127, 137, 129, 139, 137, 144, 138, 145, 134, 142, 140, 146, 136, 132, 151, 136, 134, 136, 124, 145, 144, 134, 139, 138, 133, 134, 146, 137, 143, 135, 140, 146, 141, 141, 136, 138, 134, 146, 130, 138, 135, 156, 147, 136, 132, 149, 137, 128, 127, 134, 141, 136, 142, 141, 135, 127, 135, 130, 137, 137, 136, 143, 132, 133, 135, 141, 135, 141, 137, 138, 138, 135, 133, 139, 131, 140, 143, 136, 134, 141, 132, 141, 135, 137, 141, 133, 146, 138, 138, 136, 133, 131, 148, 136, 139, 137, 141, 139, 141, 144, 133, 141, 139, 138, 142, 142, 135, 134, 132, 134, 138, 145, 144, 136, 147, 142, 139, 143, 126, 144, 134, 131, 135, 134, 134, 136, 138, 132, 147, 139, 137, 139, 136, 134, 135, 143, 149, 136, 140, 136, 138, 137, 142, 140, 144, 138, 140, 136, 135, 140, 142, 136, 138, 139, 131, 141, 136, 133, 140, 129, 140, 139, 140, 135, 141, 136, 136, 146, 147, 139, 140, 142, 137, 138, 150, 134, 137, 139, 127, 128, 138, 135, 137, 134, 144, 136, 123, 133, 131, 139, 144, 137, 129, 136, 137, 137, 139, 136, 131, 141, 143, 137, 146, 140, 154, 143, 140, 138, 135, 132, 137, 141, 138, 144, 138, 136, 134, 137, 143, 135, 142, 133, 134, 136, 142, 140, 128, 147, 132, 140, 137, 139, 134, 138, 134, 132, 138, 132, 142, 140, 138, 141, 143, 137, 146, 140, 135, 144, 143, 140, 134, 136, 137, 139, 140, 137, 143, 143, 135, 129, 139, 134, 132, 143, 130, 137, 139, 133, 145, 136, 137, 132, 138, 133, 141, 141, 142, 132, 143, 149, 139, 143, 138, 129, 133, 144, 124, 142, 136, 142, 138, 140, 132, 140, 144, 137, 140, 133, 132, 134, 138, 143, 141, 132, 136, 140, 142, 148, 136, 137, 138, 139, 139, 141, 143, 137, 141, 133, 143, 151, 134, 140, 137, 127, 132, 137, 137, 132, 133, 134, 137, 132, 142, 131, 130, 138, 134, 139, 139, 142, 145, 139, 143, 144, 139, 136, 140, 135, 146, 135, 135, 136, 140, 139, 141, 142, 135, 144, 146, 135, 146, 142, 137, 132, 132, 141, 131, 141, 140, 134, 134, 134, 146, 139, 130, 140, 143, 133, 138, 153, 143, 141, 135, 130, 139, 137, 144, 134, 137, 133, 148, 137, 140, 140, 135, 138, 135, 153, 138, 154, 134, 141, 137, 140, 134, 130, 144, 143, 138, 130, 139, 138, 139, 135, 143, 135, 140, 139, 150, 135, 140, 143, 140, 133, 143, 142, 143, 145, 138, 149, 132, 144, 138, 140, 144, 138, 139, 137, 129, 137, 136, 140, 133, 136, 137, 144, 135, 137, 141, 139, 140, 130, 141, 143, 144, 132, 133, 136, 149, 134, 135, 132, 141, 147, 144, 141, 144, 134, 148, 146, 139, 129, 135, 139, 147, 143, 144, 138, 132, 136, 143, 137, 138, 141, 142, 141, 139, 136, 143, 132, 138, 137, 138, 137, 146, 136, 141, 141, 135, 144, 139, 130, 135, 136, 143, 143, 138, 137, 133, 130, 145, 136, 130, 133, 138, 129, 148, 141, 137, 131, 133, 140, 141, 144, 143, 135, 139, 141, 139, 141, 137, 136, 139, 150, 137, 140, 135, 141, 137, 134, 139, 138, 143, 138, 134, 146, 142, 135, 137, 140, 136, 130, 141, 129, 145, 137, 143, 128, 141, 132, 134, 135, 141, 144, 142, 141, 125, 145, 138, 142, 136, 134, 134, 137, 145, 133, 135, 136, 139, 137, 146, 127, 138, 141, 140, 132, 135, 154, 135, 137, 132, 140, 140, 150, 142, 139, 133, 140, 138, 132, 145, 141, 142, 141, 139, 140, 137, 134, 134, 143, 136, 140, 143, 132, 126, 134, 144, 147, 138, 139, 136, 130, 149, 141, 135, 123, 138, 140, 135, 139, 142, 137, 133, 140, 130, 135, 142, 136, 127, 145, 148, 130, 145, 147, 140, 137, 137, 131, 139, 132, 142, 139, 135, 141, 140, 144, 140, 144, 133, 141, 137, 137, 141, 139, 139, 139, 148, 131, 137, 137, 141, 136, 138, 145, 139, 142, 142, 139, 139, 143, 142, 133, 139, 132, 140, 138, 138, 135, 144, 145, 141, 143, 144, 141, 145, 147, 140, 137, 141, 143, 141, 139, 134, 144, 126, 133, 137, 144, 140, 135, 146, 143, 137, 139, 141, 138, 145, 140, 145, 146, 138, 139, 138, 136, 131, 140, 138, 136, 136, 131, 142, 140, 139, 137, 136, 139, 142, 140, 138, 135, 143, 141, 139, 142, 144, 144, 134, 142, 137, 148, 145, 144, 147, 136, 142, 139, 138, 138, 137, 149, 137, 145, 135, 139, 137, 145, 138, 135, 140, 147, 147, 141, 140, 141, 142, 140, 138, 132, 134, 130, 135, 139, 142, 135, 136, 143, 130, 136, 147, 133, 137, 133, 140, 142, 134, 140, 136, 138, 138, 137, 137, 131, 136, 137, 143, 139, 146, 145, 135, 137, 137, 128, 141, 145, 138, 146, 146, 142, 136, 136, 133, 139, 137, 137, 144, 138, 142, 135, 137, 137, 134, 149, 137, 133, 133, 133, 141, 133, 144, 143, 138, 144, 145, 138, 142, 139, 133, 141, 143, 138, 138, 142, 138, 138, 143, 130, 139, 137, 133, 137, 142, 130, 139, 142, 140, 132, 144, 137, 139, 140, 139, 139, 142, 145, 132, 136, 141, 138, 139, 129, 136, 142, 137, 136, 134, 141, 138, 140, 136, 139, 134, 143, 138, 128, 141, 131, 144, 151, 138, 136, 141, 144, 139, 142, 150, 140, 137, 133, 145, 130, 136, 134, 132, 143, 133, 135, 134, 134, 134, 131, 136, 139, 142, 142, 142, 135, 141, 150, 137, 138, 147, 139, 142, 139, 141, 137, 142, 138, 137, 138, 133, 141, 130, 138, 140, 135, 142, 136, 133, 139, 150, 132, 132, 138, 142, 135, 135, 136, 138, 132, 143, 145, 143, 140, 134, 139, 139, 145, 135, 141, 143, 142, 131, 141, 142, 141, 143, 136, 132, 147, 134, 131, 141, 137, 142, 131, 139, 141, 126, 132, 136, 141, 139, 137, 136, 146, 134, 139, 140, 139, 133, 132, 146, 139, 132, 134, 152, 133, 140, 147, 143, 142, 145, 128, 139, 143, 141, 136, 140, 139, 142, 136, 144, 139, 135, 134, 136, 134, 147, 138, 140, 138, 138, 135, 139, 137, 138, 133, 143, 143, 129, 143, 138, 144, 135, 130, 146, 131, 138, 143, 143, 137, 142, 133, 140, 146, 141, 135, 138, 130, 144, 135, 138, 129, 139, 140, 139, 139, 140, 139, 140, 140, 136, 135, 139, 131, 146, 139, 133, 133, 133, 138, 142, 143, 138, 141, 134, 133, 141, 133, 142, 144, 133, 142, 136, 131, 131, 141, 143, 142, 133, 131, 145, 141, 138, 139, 144, 143, 137, 141, 135, 140, 131, 148, 138, 138, 148, 137, 148, 136, 140, 138, 143, 131, 141, 140, 138, 138, 146, 137, 139, 133, 139, 137, 142, 137, 136, 140, 140, 138, 133, 139, 126, 141, 141, 135, 145, 144, 129, 142, 126, 122, 142, 146, 142, 143, 132, 137, 146, 138, 138, 137, 136, 135, 134, 141, 142, 136, 142, 135, 144, 139, 146, 136, 140, 146, 142, 128, 138, 134, 130, 132, 141, 136, 140, 140, 137, 150, 135, 152, 143, 141, 138, 140, 144, 137, 144, 135, 135, 141, 138, 142, 137, 128, 130, 142, 140, 133, 140, 142, 129, 128, 132, 137, 135, 135, 128, 135, 137, 138, 138, 134, 135, 137, 137, 138, 139, 132, 141, 142, 132, 132, 144, 134, 154, 136, 142, 139, 140, 132, 134, 136, 137, 135, 138, 132, 132, 133, 142, 131, 139, 138, 143, 144, 136, 134, 137, 133, 135, 139, 151, 136, 142, 144, 133, 138, 139, 136, 135, 143, 134, 127, 138, 130, 133, 146, 140, 138, 136, 139, 138, 139, 143, 133, 139, 135, 138, 138, 126, 140, 143, 132, 134, 139, 139, 141, 127, 137, 147, 142, 139, 138, 138, 131, 144, 136, 141, 143, 149, 139, 135, 140, 136, 135, 143, 145, 141, 137, 136, 138, 144, 151, 139, 146, 142, 147, 142, 139, 141, 151, 146, 140, 140, 131, 144, 138, 132, 140, 134, 137, 137, 141, 133, 139, 144, 146, 134, 134, 151, 138, 134, 139, 136, 145, 135, 131, 147, 135, 131, 124, 141, 142, 135, 147, 138, 144, 147, 139, 131, 129, 130, 141, 141, 145, 135, 142, 140, 145, 145, 142, 142, 137, 142, 131, 134, 140, 139, 130, 132, 131, 143, 139, 133, 132, 140, 146, 132, 129, 130, 138, 142, 133, 144, 137, 139, 143, 145, 137, 142, 144, 139, 142, 137, 132, 153, 136, 138, 141, 145, 139, 133, 143, 143, 138, 132, 134, 141, 139, 131, 142, 133, 138, 137, 136, 146, 143, 142, 129, 136, 138, 140, 134, 138, 144, 147, 145, 136, 133, 149, 134, 144, 139, 134, 142, 133, 144, 136, 145, 141, 135, 148, 138, 138, 139, 143, 138, 141, 133, 139, 137, 138, 145, 137, 139, 128, 138, 141, 140, 141, 138, 132, 137, 136, 139, 140, 146, 140, 135, 143, 137, 141, 139, 138, 135, 143, 136, 133, 137, 140, 142, 145, 135, 144, 137, 144, 133, 139, 141, 142, 141, 139, 141, 141, 148, 135, 137, 132, 138, 141, 141, 139, 136, 138, 142, 138, 144, 135, 144, 142, 146, 136, 137, 139, 139, 130, 135, 139, 133, 135, 154, 139, 139, 146, 135, 135, 141, 141, 136, 133, 144, 134, 141, 142, 131, 136, 139, 145, 137, 138, 143, 137, 142, 136, 132, 145, 140, 137, 141, 134, 138, 138, 138, 135, 139, 138, 134, 135, 145, 139, 136, 150, 142, 131, 150, 140, 148, 137, 136, 140, 134, 133, 143, 151, 144, 139, 142, 137, 140, 148, 140, 138, 135, 133, 137, 139, 139, 138, 147, 148, 144, 146, 139, 137, 133, 137, 137, 138, 132, 141, 135, 143, 139, 129, 135, 135, 140, 145, 144, 130, 138, 136, 133, 137, 132, 133, 143, 140, 129, 136, 142, 149, 138, 141, 138, 131, 135, 140, 145, 148, 137, 144, 140, 145, 137, 130, 133, 146, 138, 134, 127, 141, 120, 140, 135, 133, 141, 135, 125, 144, 136, 142, 142, 143, 149, 139, 143, 153, 141, 129, 140, 149, 133, 136, 148, 147, 133, 140, 141, 135, 140, 137, 132, 141, 142, 143, 137, 130, 137, 144, 144, 145, 136, 143, 141, 137, 138, 137, 134, 142, 140, 149, 137, 146, 137, 128, 133, 136, 145, 140, 134, 149, 149, 153, 134, 137, 141, 142, 146, 140, 141, 135, 146, 138, 146, 143, 142, 139, 136, 143, 143, 140, 141, 133, 148, 146, 148, 141, 138, 136, 146, 135, 138, 135, 138, 137, 137, 137, 134, 140, 133, 144, 143, 137, 137, 131, 138, 141, 135, 142, 133, 137, 145, 152, 122, 143, 143, 144, 134, 140, 139, 151, 144, 138, 137, 140, 136, 127, 142, 150, 143, 131, 150, 151, 140, 143, 134, 130, 141, 143, 143, 150, 144, 130, 140, 133, 138, 135, 131, 133, 135, 121, 139, 140, 131, 137, 145, 127, 136, 132, 127, 134, 146, 138, 147, 132, 138, 148, 131, 130, 129, 143, 136, 137, 134, 145, 136, 135, 135, 142, 139, 144, 139, 145, 144, 143, 136, 148, 135, 144, 144, 137, 140, 137, 134, 145, 144, 139, 138, 140, 137, 137, 153, 141, 140, 132, 128, 136, 136, 144, 143, 128, 148, 128, 138, 130, 141, 131, 131, 135, 145, 131, 148, 129, 132, 143, 127, 136, 124, 132, 137, 137, 151, 125, 138, 143, 140, 131, 136, 145, 140, 139, 139, 143, 150, 135, 145, 138, 144, 148, 138, 138, 136, 144, 149, 136, 132, 109, 138, 132, 141, 150, 138, 133, 131, 128, 150, 128, 140, 134, 138, 134, 141, 135, 137, 143, 143, 141, 133, 140, 140, 133, 127, 137, 140, 143, 140, 136, 130, 139, 139, 145, 130, 140, 134, 133, 143, 146, 144, 138, 136, 133, 130, 136, 141, 136, 130, 126, 136, 134, 144, 142, 138, 139, 134, 132, 140, 140, 142, 139, 147, 135, 140, 141, 139, 154, 139, 146, 138, 129, 136, 130, 142, 150, 134, 138, 137, 127, 146, 139, 137, 128, 138, 147, 144, 146, 143, 131, 140, 140, 152, 145, 136, 151, 144, 140, 143, 139, 134, 142, 143, 135, 139, 134, 150, 133, 140, 126, 131, 145, 154, 135, 147, 130, 147, 134, 133, 138, 141, 142, 131, 136, 135, 140, 138, 142, 127, 121, 142, 142, 134, 133, 143, 134, 139, 147, 134, 138, 145, 142, 141, 130, 137, 142, 143, 141, 142, 148, 140, 133, 136, 135, 141, 134, 136, 143, 139, 148, 144, 134, 134, 139, 136, 127, 141, 141, 138, 139, 152, 136, 135, 135, 136, 151, 147, 140, 136, 139, 146, 142, 146, 139, 151, 135, 143, 129, 131, 144, 140, 147, 145, 142, 141, 132, 148, 139, 128, 149, 139, 138, 131, 144, 141, 143, 143, 138, 123, 130, 140, 128, 134, 143, 126, 134, 132, 137, 131, 137, 136, 140, 141, 139, 134, 135, 138, 134, 138, 140, 134, 149, 135, 135, 136, 135, 133, 137, 146, 141, 135, 134, 143, 141, 138, 137, 141, 143, 135, 141, 141, 143, 144, 137, 137, 141, 146, 130, 133, 136, 139, 143, 147, 140, 145, 136, 132, 141, 138, 132, 143, 142, 143, 137, 136, 144, 139, 139, 146, 140, 137, 135, 142, 140, 142, 135, 147, 140, 139, 142, 134, 140, 133, 143, 143, 140, 138, 138, 146, 142, 137, 135, 137, 139, 133, 136, 136, 137, 145, 145, 137, 129, 136, 145, 140, 142, 139, 139, 146, 141, 134, 140, 137, 153, 146, 137, 137, 136, 136, 144, 137, 138, 140, 135, 140, 137, 139, 140, 130, 141, 137, 137, 136, 147, 135, 143, 139, 143, 140, 141, 138, 138, 126, 145, 141, 140, 139, 138, 141, 143, 138, 144, 135, 138, 144, 139, 142, 141, 144, 148, 138, 137, 141, 134, 136, 142, 132, 139, 141, 134, 140, 139, 143, 140, 152, 130, 139, 138, 138, 134, 140, 120, 136, 144, 140, 137, 147, 140, 141, 144, 138, 139, 137, 141, 141, 130, 140, 145, 147, 141, 131, 138, 144, 138, 137, 145, 137, 141, 140, 133, 142, 137, 142, 132, 131, 136, 142, 135, 138, 140, 135, 138, 135, 134, 134, 137, 141, 143, 140, 142, 133, 134, 136, 138, 138, 130, 133, 138, 138, 153, 141, 134, 134, 142, 143, 138, 143, 140, 136, 142, 134, 134, 139, 139, 131, 139, 134, 133, 139, 137, 138, 144, 133, 138, 137, 141, 134, 145, 142, 139, 141, 146, 139, 134, 142, 143, 140, 138, 136, 136, 145, 137, 143, 145, 140, 136, 139, 145, 130, 139, 144, 144, 147, 141, 138, 128, 138, 130, 140, 143, 136, 137, 144, 140, 139, 135, 135, 133, 138, 145, 141, 138, 143, 140, 140, 140, 134, 144, 134, 136, 143, 136, 140, 136, 136, 137, 131, 147, 139, 140, 140, 139, 140, 140, 144, 137, 145, 138, 140, 141, 144, 136, 141, 119, 138, 140, 140, 138, 143, 140, 132, 141, 145, 138, 147, 144, 134, 141, 143, 139, 133, 135, 137, 147, 140, 138, 142, 142, 139, 145, 136, 142, 139, 140, 144, 132, 139, 139, 131, 145, 139, 139, 133, 145, 137, 134, 138, 133, 135, 139, 139, 140, 137, 139, 141, 136, 144, 142, 136, 147, 137, 141, 141, 137, 140, 152, 143, 143, 125, 139, 138, 126, 137, 142, 138, 138, 145, 138, 143, 139, 137, 140, 137, 133, 139, 138, 144, 144, 128, 139, 140, 151, 141, 143, 138, 139, 143, 144, 145, 140, 135, 136, 140, 141, 144, 135, 130, 135, 139, 142, 148, 136, 133, 132, 143, 133, 130, 165, 147, 140, 139, 135, 140, 139, 140, 141, 142, 135, 147, 148, 138, 135, 143, 136, 143, 138, 138, 141, 144, 140, 135, 127, 140, 135, 136, 142, 134, 147, 135, 132, 141, 145, 140, 138, 139, 141, 145, 135, 134, 138, 140, 138, 141, 143, 136, 144, 147, 133, 146, 147, 143, 144, 137, 139, 139, 139, 145, 137, 146, 135, 141, 141, 141, 145, 133, 132, 141, 142, 140, 143, 140, 137, 142, 136, 132, 140, 139, 142, 137, 148, 141, 140, 141, 130, 135, 130, 138, 137, 140, 137, 137, 139, 141, 139, 138, 139, 136, 106, 140, 147, 138, 133, 134, 130, 136, 142, 138, 143, 151, 141, 139, 139, 137, 129, 139, 135, 138, 126, 148, 142, 150, 136, 137, 132, 129, 133, 132, 137, 136, 141, 134, 141, 154, 136, 145, 131, 134, 140, 134, 145, 139, 150, 151, 133, 136, 141, 136, 133, 137, 130, 140, 137, 123, 140, 133, 141, 134, 137, 142, 136, 145, 133, 137, 132, 141, 138, 137, 139, 138, 134, 139, 136, 142, 144, 143, 132, 141, 142, 140, 140, 145, 147, 141, 141, 143, 140, 140, 135, 146, 128, 135, 132, 139, 140, 141, 135, 145, 139, 142, 143, 139, 141, 140, 145, 137, 135, 139, 152, 134, 136, 137, 141, 135, 151, 141, 122, 133, 135, 151, 143, 136, 136, 136, 144, 146, 139, 133, 127, 132, 132, 127, 137, 135, 144, 139, 138, 134, 132, 140, 148, 139, 145, 153, 140, 130, 139, 134, 142, 144, 133, 136, 145, 143, 147, 145, 135, 143, 137, 139, 146, 145, 131, 137, 138, 146, 143, 133, 147, 143, 138, 148, 142, 147, 143, 136, 137, 139, 137, 147, 137, 141, 138, 146, 133, 135, 140, 140, 134, 143, 132, 137, 140, 132, 141, 135, 134, 132, 135, 156, 146, 137, 130, 144, 136, 144, 142, 141, 143, 138, 135, 141, 134, 141, 140, 138, 135, 132, 143, 129, 139, 133, 139, 146, 134, 141, 138, 137, 146, 142, 135, 146, 149, 133, 155, 135, 139, 137, 145, 137, 132, 130, 135, 144, 137, 142, 137, 136, 142, 141, 140, 140, 140, 131, 133, 133, 150, 140, 132, 136, 135, 142, 141, 138, 145, 133, 130, 141, 136, 146, 147, 138, 138, 145, 144, 149, 130, 145, 133, 131, 140, 144, 142, 128, 142, 140, 139, 133, 142, 142, 143, 149, 137, 140, 144, 137, 135, 131, 130, 147, 137, 133, 136, 137, 135, 141, 138, 136, 138, 139, 141, 134, 128, 138, 132, 138, 138, 139, 136, 155, 145, 133, 137, 146, 134, 131, 153, 140, 132, 138, 143, 125, 137, 133, 141, 135, 137, 131, 145, 131, 144, 138, 137, 139, 134, 144, 129, 139, 136, 138, 148, 138, 141, 149, 135, 136, 142, 137, 133, 137, 132, 140, 142, 134, 123, 143, 144, 143, 141, 131, 132, 137, 129, 132, 138, 130, 131, 141, 130, 147, 132, 132, 135, 131, 154, 138, 130, 142, 133, 141, 142, 141, 133, 131, 144, 144, 139, 143, 149, 137, 149, 133, 137, 135, 147, 151, 136, 130, 141, 133, 141, 136, 146, 144, 145, 144, 141, 138, 133, 136, 141, 138, 137, 138, 140, 138, 138, 131, 141, 136, 133, 136, 132, 140, 141, 142, 148, 136, 142, 143, 135, 146, 138, 130, 135, 145, 143, 133, 134, 132, 131, 139, 136, 134, 137, 141, 137, 133, 146, 132, 133, 139, 136, 137, 132, 144, 132, 131, 134, 145, 141, 138, 153, 133, 137, 139, 133, 140, 138, 140, 135, 136, 143, 142, 125, 140, 141, 141, 136, 142, 137, 144, 155, 137, 135, 137, 134, 142, 137, 130, 161, 136, 128, 133, 147, 131, 136, 127, 132, 141, 143, 140, 130, 129, 132, 135, 142, 134, 139, 148, 140, 138, 145, 136, 144, 138, 135, 143, 137, 142, 134, 143, 144, 146, 137, 140, 134, 143, 137, 134, 141, 138, 145, 131, 143, 141, 135, 147, 144, 135, 142, 142, 135, 137, 138, 140, 131, 137, 137, 143, 136, 132, 139, 136, 130, 135, 145, 150, 142, 133, 141, 131, 143, 144, 135, 136, 137, 150, 129, 134, 139, 132, 142, 140, 138, 144, 149, 136, 139, 137, 143, 135, 141, 137, 142, 150, 136, 130, 144, 136, 138, 139, 139, 133, 137, 137, 142, 145, 139, 147, 143, 130, 133, 135, 137, 139, 137, 138, 136, 131, 137, 142, 141, 140, 139, 138, 137, 133, 137, 140, 142, 142, 135, 146, 147, 135, 139, 139, 143, 148, 134, 141, 145, 152, 145, 135, 134, 140, 138, 143, 136, 134, 137, 140, 143, 133, 143, 136, 138, 144, 137, 140, 142, 137, 136, 137, 134, 138, 143, 143, 137, 135, 142, 143, 145, 134, 138, 144, 140, 139, 138, 137, 138, 139, 138, 137, 145, 127, 135, 138, 136, 137, 136, 138, 135, 136, 137, 133, 141, 133, 135, 133, 137, 140, 137, 146, 142, 138, 141, 136, 137, 132, 141, 144, 142, 140, 142, 140, 142, 135, 130, 139, 135, 147, 134, 141, 143, 138, 145, 133, 134, 134, 138, 137, 138, 139, 136, 138, 134, 139, 135, 133, 135, 135, 145, 136, 139, 137, 138, 140, 139, 136, 142, 143, 140, 139, 130, 140, 143, 140, 136, 137, 144, 137, 133, 142, 142, 137, 144, 143, 140, 131, 138, 137, 137, 146, 134, 134, 136, 136, 138, 148, 141, 140, 137, 129, 136, 143, 132, 131, 138, 137, 148, 144, 131, 131, 144, 138, 140, 142, 127, 137, 139, 141, 141, 140, 143, 135, 144, 136, 141, 144, 138, 145, 137, 141, 132, 140, 135, 138, 137, 142, 147, 140, 146, 137, 139, 132, 135, 140, 135, 140, 146, 137, 134, 143, 145, 130, 141, 137, 137, 140, 145, 144, 129, 151, 145, 140, 142, 144, 142, 138, 134, 136, 138, 133, 145, 143, 142, 139, 131, 140, 136, 134, 136, 142, 142, 130, 140, 145, 142, 135, 136, 141, 139, 143, 133, 142, 134, 140, 137, 134, 146, 145, 140, 133, 140, 130, 141, 134, 133, 141, 138, 137, 139, 142, 138, 144, 131, 144, 140, 133, 133, 147, 137, 140, 135, 138, 136, 139, 144, 138, 143, 141, 133, 135, 136, 141, 135, 143, 140, 143, 139, 133, 140, 145, 141, 141, 132, 140, 136, 137, 143, 134, 135, 134, 144, 139, 138, 131, 142, 148, 133, 132, 139, 142, 136, 134, 142, 138, 138, 141, 144, 143, 135, 139, 142, 138, 142, 131, 137, 136, 142, 142, 141, 136, 132, 132, 139, 140, 137, 136, 137, 133, 140, 136, 134, 143, 135, 135, 135, 138, 142, 146, 131, 144, 137, 140, 134, 141, 144, 144, 150, 143, 140, 144, 133, 144, 144, 144, 142, 140, 140, 140, 133, 140, 133, 133, 141, 140, 139, 134, 137, 139, 141, 138, 139, 144, 145, 145, 142, 137, 139, 135, 136, 134, 141, 137, 144, 137, 136, 138, 145, 133, 144, 143, 142, 139, 140, 143, 143, 141, 128, 141, 128, 140, 141, 150, 144, 142, 133, 131, 143, 133, 133, 134, 141, 150, 143, 146, 138, 142, 141, 145, 136, 131, 133, 141, 145, 145, 132, 130, 133, 153, 138, 145, 141, 136, 127, 138, 137, 136, 148, 131, 139, 147, 135, 141, 144, 141, 124, 144, 139, 147, 140, 147, 149, 143, 135, 135, 126, 141, 141, 133, 135, 141, 140, 141, 137, 134, 139, 140, 142, 137, 133, 133, 136, 151, 131, 140, 138, 135, 141, 139, 138, 141, 139, 135, 148, 131, 139, 146, 137, 143, 149, 160, 146, 138, 133, 139, 149, 141, 135, 133, 140, 148, 148, 134, 147, 140, 128, 143, 140, 141, 135, 141, 146, 139, 141, 135, 144, 140, 148, 137, 148, 135, 146, 149, 139, 135, 152, 143, 128, 130, 126, 133, 141, 139, 117, 120, 137, 146, 135, 140, 151, 129, 144, 140, 131, 143, 139, 136, 146, 138, 151, 134, 141, 149, 148, 137, 135, 138, 136, 137, 136, 138, 148, 150, 145, 133, 138, 134, 137, 132, 131, 129, 138, 139, 129, 132, 134, 137, 147, 127, 128, 129, 151, 142, 136, 138, 137, 141, 132, 145, 139, 130, 131, 133, 140, 140, 141, 132, 135, 146, 149, 135, 147, 134, 141, 134, 137, 143, 139, 156, 142, 138, 138, 138, 137, 149, 143, 143, 147, 141, 143, 136, 131, 141, 130, 141, 145, 148, 144, 143, 139, 134, 132, 136, 139, 144, 134, 142, 132, 145, 128, 155, 145, 134, 141, 140, 130, 139, 138, 140, 135, 135, 143, 130, 130, 134, 143, 143, 138, 139, 138, 138, 143, 143, 145, 133, 138, 143, 139, 138, 137, 138, 137, 139, 141, 136, 144, 146, 119, 137, 138, 140, 144, 133, 136, 139, 145, 141, 135, 133, 147, 136, 138, 145, 135, 142, 135, 121, 142, 125, 136, 137, 136, 145, 135, 142, 146, 155, 141, 134, 138, 128, 138, 129, 149, 148, 145, 139, 149, 133, 129, 148, 141, 155, 143, 135, 132, 143, 136, 140, 147, 140, 134, 144, 129, 135, 141, 144, 134, 137, 141, 143, 136, 140, 133, 137, 152, 145, 141, 136, 134, 135, 139, 132, 142, 151, 143, 141, 146, 134, 144, 132, 147, 134, 129, 138, 141, 132, 131, 127, 141, 133, 152, 136, 143, 150, 142, 138, 138, 141, 144, 141, 131, 137, 137, 140, 143, 130, 139, 139, 135, 142, 128, 142, 145, 141, 138, 142, 139, 144, 141, 142, 150, 138, 138, 144, 131, 139, 141, 137, 138, 147, 127, 143, 138, 144, 134, 143, 138, 125, 140, 139, 137, 145, 142, 143, 128, 140, 148, 134, 143, 137, 140, 136, 142, 147, 141, 138, 137, 136, 136, 139, 143, 133, 130, 137, 137, 145, 141, 134, 141, 140, 131, 142, 136, 139, 135, 136, 141, 141, 139, 134, 128, 145, 142, 144, 124, 137, 139, 147, 132, 138, 135, 147, 133, 141, 145, 151, 135, 148, 133, 133, 139, 142, 135, 135, 143, 142, 134, 136, 140, 146, 143, 142, 143, 147, 136, 131, 142, 151, 137, 146, 136, 134, 145, 148, 132, 139, 135, 135, 135, 148, 140, 140, 143, 134, 128, 133, 128, 136, 146, 136, 138, 137, 147, 129, 143, 141, 131, 134, 148, 145, 136, 138, 134, 141, 135, 138, 147, 139, 134, 136, 144, 146, 142, 130, 135, 146, 142, 142, 132, 139, 136, 131, 139, 145, 142, 135, 132, 133, 135, 139, 147, 142, 141, 136, 135, 130, 142, 137, 148, 126, 141, 124, 138, 140, 141, 139, 141, 143, 132, 153, 141, 136, 139, 129, 142, 131, 131, 150, 140, 142, 133, 143, 138, 133, 142, 152, 134, 130, 131, 135, 152, 140, 125, 135, 143, 133, 142, 131, 141, 143, 144, 138, 126, 142, 143, 147, 135, 144, 135, 138, 131, 129, 143, 137, 148, 144, 139, 143, 136, 134, 138, 139, 141, 138, 134, 138, 136, 150, 144, 147, 136, 145, 142, 143, 128, 137, 134, 131, 147, 132, 141, 142, 149, 130, 147, 138, 144, 135, 146, 142, 133, 144, 135, 137, 139, 138, 161, 149, 141, 151, 143, 147, 145, 128, 129, 143, 144, 137, 141, 139, 130, 141, 132, 136, 149, 142, 137, 135, 152, 140, 145, 138, 144, 144, 134, 133, 139, 140, 139, 136, 144, 140, 140, 140, 117, 142, 135, 136, 131, 151, 129, 142, 137, 137, 135, 142, 138, 143, 138, 144, 132, 135, 144, 149, 142, 142, 137, 134, 142, 139, 143, 154, 139, 141, 145, 143, 136, 143, 143, 132, 138, 144, 137, 144, 145, 134, 130, 148, 137, 137, 139, 150, 147, 134, 145, 141, 141, 143, 138, 130, 131, 141, 142, 143, 133, 128, 138, 152, 137, 135, 144, 137, 138, 139, 138, 143, 141, 132, 135, 144, 137, 136, 134, 142, 138, 148, 147, 142, 145, 146, 143, 145, 137, 134, 127, 142, 135, 136, 139, 142, 131, 144, 141, 140, 145, 131, 136, 129, 136, 145, 145, 145, 142, 133, 141, 141, 130, 124, 141, 145, 141, 143, 134, 146, 144, 141, 146, 140, 133, 146, 132, 140, 141, 133, 130, 140, 144, 130, 141, 132, 140, 136, 140, 132, 132, 130, 136, 135, 138, 139, 132, 143, 138, 137, 134, 136, 134, 138, 137, 136, 132, 123, 132, 140, 139, 140, 138, 143, 141, 133, 137, 136, 139, 133, 136, 132, 138, 126, 143, 146, 141, 139, 140, 143, 134, 141, 141, 136, 134, 135, 142, 143, 133, 142, 134, 141, 137, 140, 138, 145, 146, 131, 134, 138, 143, 138, 131, 132, 137, 144, 139, 143, 132, 135, 146, 142, 144, 138, 143, 140, 138, 141, 135, 141, 144, 136, 136, 141, 145, 136, 149, 134, 146, 150, 143, 140, 142, 141, 138, 137, 136, 136, 131, 142, 144, 142, 139, 138, 133, 139, 153, 126, 138, 133, 142, 132, 146, 153, 140, 138, 140, 130, 125, 137, 138, 146, 128, 142, 139, 141, 142, 136, 137, 138, 137, 121, 142, 143, 134, 138, 152, 150, 154, 133, 141, 139, 138, 135, 139, 135, 131, 141, 142, 139, 142, 142, 150, 126, 132, 148, 139, 142, 139, 137, 138, 139, 136, 140, 142, 142, 138, 144, 137, 138, 135, 140, 141, 138, 142, 138, 142, 142, 142, 143, 140, 138, 139, 137, 138, 137, 136, 140, 133, 140, 136, 133, 143, 145, 134, 140, 140, 132, 147, 136, 140, 143, 136, 140, 140, 131, 141, 137, 137, 136, 136, 137, 145, 138, 137, 140, 140, 138, 135, 140, 140, 146, 143, 137, 137, 138, 145, 136, 137, 138, 139, 134, 138, 136, 137, 132, 141, 136, 135, 132, 139, 136, 142, 140, 147, 140, 141, 142, 135, 139, 144, 137, 143, 142, 135, 142, 139, 141, 135, 141, 137, 139, 147, 139, 140, 134, 141, 141, 137, 137, 140, 142, 142, 139, 140, 143, 135, 134, 142, 142, 137, 137, 137, 142, 136, 134, 135, 147, 144, 140, 139, 140, 136, 145, 132, 133, 138, 143, 139, 140, 139, 135, 140, 144, 143, 133, 139, 138, 139, 132, 137, 141, 136, 138, 136, 134, 134, 129, 141, 139, 141, 143, 140, 137, 140, 133, 139, 143, 139, 139, 136, 137, 138, 145, 141, 140, 142, 143, 135, 137, 140, 141, 139, 140, 143, 138, 139, 139, 140, 138, 139, 140, 142, 139, 138, 136, 136, 135, 134, 140, 139, 141, 138, 141, 140, 143, 134, 139, 141, 141, 138, 140, 141, 139, 143, 141, 129, 141, 135, 135, 138, 146, 141, 142, 144, 144, 136, 139, 138, 138, 142, 128, 138, 142, 134, 138, 141, 141, 139, 142, 133, 134, 137, 138, 138, 139, 143, 139, 142, 144, 142, 144, 143, 136, 139, 142, 139, 141, 132, 142, 137, 137, 139, 136, 139, 144, 135, 141, 141, 142, 143, 140, 138, 135, 132, 140, 139, 142, 138, 144, 138, 138, 140, 140, 142, 135, 141, 140, 136, 140, 144, 141, 139, 144, 134, 141, 140, 141, 142, 136, 140, 137, 149, 132, 134, 141, 140, 140, 140, 132, 144, 143, 141, 140, 142, 139, 138, 144, 138, 139, 137, 140, 136, 141, 139, 141, 143, 140, 136, 139, 143, 140, 144, 137, 139, 138, 141, 138, 138, 144, 145, 137, 133, 138, 139, 135, 139, 145, 135, 148, 139, 136, 142, 138, 140, 146, 140, 137, 140, 138, 136, 139, 147, 138, 142, 140, 143, 138, 143, 135, 141, 144, 154, 142, 140, 138, 138, 140, 136, 143, 151, 140, 138, 143, 138, 134, 145, 133, 137, 139, 134, 141, 136, 142, 138, 140, 140, 148, 140, 142, 141, 142, 138, 139, 137, 142, 143, 140, 120, 143, 141, 141, 140, 143, 144, 137, 137, 138, 140, 138, 139, 141, 139, 142, 137, 139, 135, 140, 145, 135, 137, 138, 145, 138, 136, 141, 130, 144, 144, 131, 142, 136, 138, 143, 136, 140, 137, 139, 141, 142, 140, 141, 147, 133, 143, 138, 137, 140, 140, 141, 141, 141, 134, 137, 138, 142, 135, 138, 136, 139, 137, 136, 134, 141, 136, 139, 138, 134, 144, 142, 138, 137, 136, 143, 138, 134, 144, 142, 139, 139, 140, 138, 142, 135, 136, 138, 136, 135, 137, 136, 141, 138, 136, 136, 136, 142, 136, 140, 145, 136, 137, 144, 142, 141, 132, 134, 146, 137, 145, 134, 138, 147, 138, 136, 138, 140, 137, 141, 144, 141, 136, 146, 132, 135, 128, 135, 135, 134, 143, 147, 149, 137, 138, 142, 138, 140, 143, 142, 136, 136, 131, 137, 138, 142, 149, 136, 138, 133, 140, 140, 138, 136, 136, 136, 138, 141, 139, 139, 141, 142, 141, 135, 137, 145, 140, 141, 135, 143, 149, 140, 139, 133, 141, 141, 144, 135, 130, 139, 131, 132, 129, 137, 140, 147, 138, 138, 140, 138, 137, 133, 146, 138, 130, 139, 145, 138, 136, 142, 144, 131, 138, 137, 140, 137, 133, 139, 137, 136, 138, 128, 150, 132, 138, 132, 141, 146, 138, 139, 138, 144, 136, 141, 134, 136, 135, 136, 141, 145, 134, 142, 138, 134, 140, 136, 144, 134, 136, 137, 146, 138, 143, 136, 146, 136, 145, 138, 135, 141, 137, 133, 146, 132, 138, 136, 149, 153, 139, 147, 136, 140, 138, 139, 139, 131, 136, 139, 141, 128, 133, 131, 135, 138, 139, 145, 127, 135, 139, 142, 134, 148, 147, 139, 145, 141, 139, 135, 137, 140, 136, 142, 139, 132, 148, 135, 136, 138, 142, 144, 136, 146, 149, 141, 138, 146, 146, 142, 146, 135, 139, 146, 138, 139, 126, 136, 141, 141, 144, 138, 141, 137, 128, 139, 132, 138, 142, 137, 131, 130, 142, 141, 138, 146, 135, 131, 142, 138, 146, 147, 144, 139, 137, 138, 140, 136, 140, 150, 142, 138, 137, 133, 136, 142, 127, 133, 135, 123, 134, 150, 136, 131, 136, 149, 134, 138, 141, 140, 137, 135, 137, 137, 146, 147, 140, 134, 146, 139, 146, 140, 145, 137, 137, 136, 134, 141, 134, 134, 140, 138, 137, 146, 149, 137, 148, 130, 137, 131, 137, 136, 142, 136, 130, 134, 134, 139, 140, 131, 140, 131, 134, 143, 144, 139, 135, 137, 136, 135, 138, 139, 129, 134, 139, 137, 136, 139, 136, 134, 137, 133, 149, 144, 147, 145, 133, 138, 145, 143, 136, 145, 132, 140, 142, 132, 137, 132, 133, 134, 132, 134, 144, 142, 142, 135, 132, 142, 139, 128, 135, 139, 140, 139, 138, 135, 148, 135, 137, 140, 133, 145, 137, 137, 148, 130, 141, 144, 143, 137, 135, 137, 147, 142, 136, 147, 140, 145, 151, 149, 143, 133, 133, 136, 138, 151, 133, 127, 129, 134, 142, 150, 141, 139, 144, 137, 135, 143, 137, 134, 133, 143, 139, 140, 141, 147, 139, 142, 140, 136, 129, 139, 141, 136, 141, 147, 140, 132, 130, 146, 138, 130, 139, 135, 130, 137, 139, 136, 137, 144, 139, 140, 138, 139, 129, 138, 137, 138, 144, 129, 143, 141, 133, 144, 146, 140, 145, 141, 142, 139, 142, 150, 139, 136, 136, 133, 142, 139, 146, 143, 133, 137, 136, 137, 134, 140, 142, 141, 143, 143, 134, 136, 136, 140, 146, 140, 157, 133, 130, 144, 149, 129, 141, 150, 133, 147, 133, 140, 130, 154, 138, 140, 136, 131, 136, 139, 138, 139, 136, 144, 141, 135, 138, 139, 137, 139, 141, 130, 138, 141, 144, 143, 141, 129, 137, 137, 132, 145, 137, 140, 129, 135, 150, 139, 136, 139, 132, 152, 134, 146, 137, 145, 139, 147, 132, 131, 147, 146, 144, 139, 147, 146, 133, 136, 136, 140, 132, 131, 140, 135, 132, 137, 147, 145, 129, 128, 141, 145, 132, 132, 128, 128, 140, 133, 143, 142, 147, 150, 135, 137, 144, 138, 122, 139, 130, 145, 142, 146, 137, 142, 140, 143, 139, 146, 141, 147, 145, 146, 141, 139, 144, 142, 140, 141, 132, 135, 142, 140, 128, 131, 141, 141, 128, 147, 129, 132, 139, 137, 137, 134, 142, 137, 139, 143, 135, 133, 144, 136, 128, 138, 136, 148, 143, 144, 135, 146, 135, 129, 138, 142, 142, 134, 141, 147, 144, 144, 137, 147, 142, 140, 133, 139, 141, 141, 141, 146, 145, 140, 132, 139, 135, 131, 137, 132, 129, 142, 132, 122, 142, 135, 142, 140, 129, 145, 145, 130, 143, 130, 138, 133, 136, 145, 136, 138, 143, 131, 143, 132, 133, 139, 122, 148, 147, 129, 148, 134, 141, 142, 132, 136, 139, 128, 140, 140, 141, 135, 148, 144, 135, 140, 133, 132, 139, 139, 150, 143, 134, 137, 130, 134, 140, 142, 137, 150, 139, 159, 142, 135, 131, 133, 142, 130, 132, 142, 130, 122, 142, 142, 140, 144, 145, 142, 136, 131, 133, 152, 130, 132, 131, 146, 131, 142, 140, 141, 147, 139, 137, 125, 132, 141, 146, 131, 129, 145, 133, 143, 142, 145, 136, 140, 136, 138, 130, 143, 127, 119, 138, 140, 140, 133, 140, 134, 137, 138, 135, 142, 131, 140, 135, 134, 133, 149, 132, 134, 133, 140, 136, 135, 138, 138, 141, 126, 143, 126, 133, 139, 125, 125, 135, 131, 139, 146, 137, 135, 137, 142, 135, 127, 147, 137, 137, 143, 140, 128, 136, 143, 143, 140, 135, 140, 140, 154, 146, 150, 134, 144, 137, 151, 138, 148, 124, 136, 128, 149, 143, 143, 137, 148, 135, 138, 138, 135, 146, 135, 137, 141, 137, 132, 145, 123, 139, 136, 152, 138, 136, 152, 141, 141, 143, 143, 139, 142, 140, 138, 132, 148, 132, 133, 151, 132, 130, 132, 141, 130, 136, 144, 141, 136, 138, 137, 148, 135, 143, 132, 141, 140, 145, 131, 136, 134, 139, 134, 127, 126, 144, 133, 137, 140, 132, 133, 134, 151, 147, 135, 131, 142, 141, 144, 135, 143, 131, 143, 141, 135, 146, 145, 131, 142, 143, 145, 134, 142, 139, 139, 124, 138, 139, 145, 133, 132, 142, 146, 135, 130, 142, 142, 131, 137, 132, 130, 136, 144, 141, 144, 144, 139, 136, 135, 137, 139, 145, 137, 145, 130, 140, 127, 138, 146, 134, 137, 140, 132, 144, 145, 132, 136, 149, 132, 137, 133, 131, 138, 147, 130, 136, 138, 140, 138, 139, 134, 143, 137, 138, 134, 140, 135, 140, 136, 130, 133, 134, 142, 139, 142, 151, 143, 144, 140, 139, 136, 144, 146, 141, 139, 142, 143, 137, 144, 139, 143, 127, 133, 135, 125, 132, 143, 136, 131, 126, 153, 148, 148, 142, 134, 137, 143, 139, 143, 143, 136, 135, 145, 141, 146, 139, 141, 130, 140, 142, 134, 137, 140, 140, 149, 140, 139, 131, 146, 152, 145, 139, 142, 140, 140, 134, 132, 141, 137, 141, 137, 128, 132, 138, 137, 144, 146, 136, 135, 140, 140, 134, 131, 135, 139, 126, 138, 143, 138, 147, 142, 136, 139, 138, 144, 129, 146, 134, 124, 134, 134, 147, 134, 137, 136, 141, 143, 142, 135, 144, 141, 148, 133, 138, 143, 138, 136, 144, 131, 139, 147, 133, 127, 147, 136, 145, 140, 133, 139, 136, 147, 132, 136, 127, 136, 136, 135, 128, 142, 145, 143, 129, 146, 138, 141, 146, 136, 137, 145, 134, 136, 137, 144, 139, 136, 134, 138, 140, 144, 139, 135, 143, 144, 137, 149, 141, 137, 142, 141, 154, 147, 141, 139, 134, 141, 144, 141, 137, 134, 140, 130, 142, 130, 143, 138, 139, 144, 143, 130, 145, 138, 135, 137, 140, 145, 145, 134, 132, 132, 137, 147, 140, 142, 141, 135, 140, 136, 140, 139, 138, 141, 131, 139, 143, 134, 143, 136, 151, 138, 130, 141, 144, 138, 144, 137, 141, 147, 144, 134, 139, 137, 134, 135, 138, 146, 145, 139, 141, 144, 139, 128, 126, 138, 135, 145, 133, 138, 137, 143, 135, 129, 133, 136, 143, 132, 133, 139, 142, 137, 137, 140, 140, 145, 137, 145, 136, 138, 139, 128, 143, 146, 133, 139, 138, 139, 142, 138, 143, 136, 136, 146, 143, 126, 123, 138, 129, 139, 138, 139, 131, 144, 128, 140, 134, 139, 140, 143, 131, 136, 145, 141, 137, 139, 147, 139, 146, 148, 133, 133, 138, 139, 143, 138, 139, 134, 141, 137, 142, 141, 143, 141, 142, 133, 146, 138, 132, 133, 138, 146, 141, 143, 148, 135, 141, 139, 137, 135, 136, 142, 147, 135, 132, 145, 148, 140, 139, 143, 133, 141, 140, 147, 135, 142, 129, 138, 147, 144, 137, 144, 122, 136, 140, 138, 139, 132, 141, 133, 146, 133, 141, 137, 146, 129, 139, 148, 144, 131, 137, 141, 142, 139, 150, 139, 134, 130, 143, 141, 147, 145, 138, 139, 139, 138, 138, 138, 134, 146, 132, 136, 140, 139, 138, 143, 135, 129, 134, 140, 144, 146, 135, 142, 143, 137, 133, 137, 137, 137, 147, 128, 149, 137, 140, 132, 130, 140, 143, 141, 143, 138, 138, 151, 134, 132, 140, 143, 137, 131, 134, 127, 136, 134, 142, 131, 130, 141, 146, 137, 135, 137, 145, 141, 134, 133, 138, 142, 140, 155, 140, 139, 136, 140, 146, 138, 137, 150, 127, 135, 139, 133, 138, 129, 136, 146, 145, 132, 141, 142, 130, 136, 136, 136, 135, 139, 140, 140, 145, 142, 137, 130, 140, 132, 146, 143, 141, 134, 140, 130, 128, 140, 137, 140, 135, 143, 136, 146, 138, 137, 125, 134, 139, 136, 132, 143, 139, 140, 142, 127, 141, 140, 144, 134, 136, 138, 138, 137, 140, 146, 141, 151, 132, 145, 145, 131, 139, 150, 141, 137, 139, 141, 138, 144, 139, 134, 138, 138, 135, 138, 124, 142, 145, 135, 132, 137, 142, 143, 135, 133, 141, 150, 139, 139, 143, 141, 142, 142, 137, 128, 134, 134, 141, 138, 139, 132, 139, 146, 139, 140, 148, 138, 139, 138, 129, 147, 134, 144, 151, 136, 135, 136, 137, 138, 135, 130, 134, 147, 131, 140, 140, 136, 144, 144, 129, 138, 140, 137, 133, 141, 144, 141, 135, 133, 132, 146, 140, 142, 129, 143, 148, 134, 142, 150, 140, 144, 143, 135, 136, 136, 130, 144, 145, 135, 137, 143, 136, 142, 131, 122, 144, 145, 139, 143, 134, 134, 137, 139, 144, 141, 133, 141, 132, 138, 143, 132, 145, 127, 133, 144, 141, 130, 136, 141, 136, 138, 137, 147, 135, 138, 136, 137, 140, 144, 138, 136, 139, 138, 145, 131, 141, 140, 135, 141, 127, 138, 146, 150, 131, 138, 141, 133, 142, 139, 135, 138, 137, 132, 142, 141, 139, 130, 132, 134, 146, 141, 127, 145, 132, 140, 131, 130, 131, 134, 139, 141, 133, 142, 135, 143, 140, 136, 143, 144, 138, 142, 138, 140, 138, 137, 139, 137, 135, 137, 144, 138, 149, 138, 145, 131, 138, 132, 131, 137, 150, 133, 145, 115, 142, 138, 139, 140, 140, 138, 129, 142, 135, 149, 137, 140, 150, 132, 142, 136, 151, 137, 134, 135, 146, 138, 142, 139, 139, 141, 136, 139, 148, 129, 147, 140, 141, 141, 139, 141, 152, 142, 140, 127, 129, 136, 141, 141, 151, 141, 138, 141, 147, 143, 144, 140, 129, 138, 136, 129, 135, 149, 131, 138, 129, 129, 145, 146, 136, 150, 144, 130, 137, 138, 139, 136, 139, 136, 133, 126, 139, 137, 142, 136, 135, 139, 140, 133, 142, 138, 143, 140, 145, 128, 133, 141, 138, 137, 137, 135, 139, 140, 124, 143, 135, 138, 142, 135, 136, 130, 138, 137, 143, 138, 142, 138, 140, 139, 146, 132, 140, 134, 134, 135, 139, 145, 141, 138, 131, 132, 134, 135, 141, 134, 139, 131, 141, 138, 137, 136, 141, 136, 136, 138, 135, 138, 146, 137, 134, 132, 146, 146, 134, 147, 145, 130, 140, 140, 143, 142, 144, 131, 132, 143, 140, 138, 136, 134, 139, 143, 138, 138, 149, 136, 136, 132, 137, 134, 134, 144, 141, 146, 134, 142, 136, 132, 131, 137, 133, 137, 145, 146, 144, 134, 142, 142, 143, 137, 153, 131, 128, 140, 130, 134, 129, 143, 143, 132, 134, 128, 131, 136, 135, 138, 134, 147, 141, 136, 144, 136, 137, 143, 147, 139, 144, 148, 160, 140, 138, 140, 135, 142, 145, 135, 127, 142, 132, 136, 143, 139, 138, 130, 131, 137, 138, 138, 128, 143, 134, 134, 155, 136, 138, 144, 139, 140, 136, 147, 133, 130, 132, 142, 141, 138, 144, 138, 134, 140, 138, 140, 142, 145, 143, 146, 145, 135, 148, 139, 146, 133, 140, 142, 140, 130, 132, 135, 139, 134, 148, 137, 136, 133, 136, 142, 136, 124, 154, 139, 145, 136, 135, 143, 128, 128, 142, 138, 142, 140, 134, 140, 142, 136, 140, 143, 140, 136, 136, 139, 141, 143, 143, 138, 142, 140, 136, 133, 133, 139, 140, 136, 134, 146, 133, 142, 139, 140, 133, 133, 139, 142, 131, 139, 145, 139, 142, 135, 141, 140, 139, 134, 139, 143, 137, 143, 137, 129, 137, 140, 141, 139, 139, 138, 136, 139, 135, 137, 130, 142, 136, 139, 141, 138, 130, 146, 140, 139, 135, 141, 140, 131, 135, 135, 138, 141, 129, 140, 144, 145, 134, 136, 147, 136, 136, 129, 138, 130, 138, 145, 139, 139, 135, 150, 135, 139, 135, 145, 135, 138, 128, 147, 127, 130, 129, 139, 142, 138, 138, 144, 139, 139, 141, 143, 148, 142, 140, 144, 151, 129, 143, 142, 137, 136, 142, 137, 152, 140, 142, 141, 133, 153, 130, 133, 138, 140, 147, 129, 136, 141, 140, 141, 139, 126, 146, 139, 134, 138, 132, 138, 136, 133, 130, 144, 131, 138, 139, 140, 136, 148, 137, 140, 138, 143, 143, 139, 141, 137, 139, 146, 139, 138, 133, 133, 140, 151, 129, 147, 141, 139, 149, 138, 134, 132, 142, 134, 142, 141, 146, 137, 137, 135, 134, 142, 135, 137, 142, 141, 138, 141, 138, 132, 129, 139, 140, 141, 138, 147, 137, 141, 135, 141, 136, 130, 137, 138, 143, 138, 138, 138, 137, 129, 140, 138, 141, 141, 141, 137, 130, 141, 134, 138, 134, 135, 131, 144, 137, 135, 135, 139, 134, 137, 139, 139, 137, 140, 143, 139, 137, 143, 139, 141, 143, 131, 138, 133, 136, 142, 145, 139, 133, 136, 136, 138, 148, 142, 133, 136, 138, 131, 153, 139, 138, 138, 136, 137, 138, 141, 130, 140, 138, 135, 145, 134, 143, 136, 131, 145, 140, 144, 141, 134, 143, 137, 136, 141, 134, 140, 133, 139, 136, 137, 141, 146, 134, 143, 141, 139, 130, 143, 142, 139, 134, 138, 152, 142, 133, 132, 143, 144, 142, 139, 135, 137, 137, 138, 139, 143, 140, 133, 142, 135, 140, 146, 147, 142, 142, 146, 138, 135, 140, 144, 156, 142, 142, 139, 156, 134, 138, 138, 133, 136, 141, 140, 131, 136, 148, 139, 138, 133, 137, 141, 138, 142, 139, 139, 143, 136, 130, 129, 141, 131, 135, 136, 148, 137, 142, 142, 137, 134, 141, 142, 143, 127, 144, 140, 134, 135, 142, 143, 138, 142, 140, 130, 138, 139, 140, 142, 142, 139, 138, 145, 140, 140, 138, 144, 137, 145, 143, 139, 132, 145, 133, 135, 137, 136, 147, 136, 138, 135, 139, 133, 132, 134, 132, 134, 145, 135, 139, 132, 137, 142, 138, 143, 139, 136, 141, 139, 137, 144, 143, 137, 139, 138, 144, 136, 136, 139, 138, 144, 139, 144, 143, 127, 138, 135, 142, 141, 138, 137, 137, 140, 136, 139, 143, 138, 141, 132, 141, 141, 143, 136, 139, 148, 136, 144, 143, 134, 144, 139, 136, 145, 133, 142, 146, 141, 136, 155, 143, 138, 139, 130, 133, 138, 138, 150, 129, 137, 141, 140, 143, 138, 137, 138, 141, 140, 142, 142, 138, 142, 145, 139, 131, 139, 139, 141, 137, 138, 137, 138, 128, 132, 144, 125, 137, 139, 141, 143, 136, 139, 141, 141, 136, 139, 141, 137, 136, 147, 135, 138, 135, 133, 142, 138, 144, 137, 137, 138, 139, 138, 132, 135, 131, 137, 117, 129, 136, 132, 135, 150, 142, 139, 145, 138, 141, 139, 135, 137, 136, 138, 142, 140, 139, 132, 140, 137, 139, 135, 145, 159, 139, 136, 130, 136, 138, 139, 140, 140, 144, 139, 132, 134, 140, 147, 138, 140, 140, 141, 145, 144, 142, 137, 136, 140, 134, 143, 138, 138, 125, 139, 134, 142, 143, 141, 151, 135, 141, 136, 132, 141, 138, 138, 140, 146, 136, 148, 142, 138, 142, 139, 139, 137, 143, 150, 140, 133, 140, 140, 144, 142, 138, 131, 134, 139, 135, 137, 139, 140, 130, 143, 145, 143, 137, 139, 135, 137, 132, 147, 136, 137, 134, 135, 140, 137, 143, 135, 146, 122, 143, 141, 144, 141, 141, 150, 138, 139, 136, 138, 130, 145, 139, 137, 134, 138, 133, 142, 140, 138, 135, 141, 141, 138, 137, 134, 140, 145, 142, 137, 137, 139, 139, 133, 138, 126, 138, 134, 142, 141, 138, 131, 138, 138, 139, 132, 143, 140, 135, 129, 134, 140, 138, 137, 137, 140, 144, 138, 145, 133, 137, 136, 139, 138, 137, 132, 135, 138, 139, 137, 142, 136, 141, 134, 144, 145, 142, 149, 143, 133, 136, 141, 136, 144, 137, 148, 140, 138, 134, 134, 141, 141, 139, 133, 131, 148, 145, 146, 139, 142, 141, 138, 139, 135, 137, 141, 137, 135, 135, 138, 142, 135, 135, 152, 134, 139, 131, 140, 138, 138, 132, 137, 137, 142, 139, 137, 135, 137, 138, 137, 137, 135, 137, 134, 143, 136, 151, 136, 137, 141, 140, 141, 141, 144, 143, 140, 137, 138, 131, 136, 140, 137, 136, 136, 139, 158, 135, 138, 139, 138, 134, 138, 137, 149, 140, 140, 127, 137, 138, 138, 138, 136, 141, 147, 139, 139, 141, 140, 139, 143, 140, 142, 146, 140, 135, 137, 136, 138, 134, 142, 143, 141, 142, 136, 126, 136, 137, 134, 132, 140, 137, 142, 139, 134, 141, 138, 141, 139, 140, 134, 140, 147, 140, 136, 139, 140, 140, 139, 140, 143, 139, 141, 139, 135, 143, 142, 135, 139, 141, 140, 143, 136, 133, 135, 138, 135, 133, 136, 133, 140, 139, 140, 141, 136, 137, 140, 137, 138, 143, 142, 139, 140, 138, 136, 137, 134, 133, 141, 141, 133, 144, 141, 139, 141, 139, 146, 130, 140, 129, 143, 142, 147, 133, 137, 140, 138, 139, 141, 140, 152, 143, 141, 140, 144, 137, 145, 146, 142, 135, 134, 136, 136, 143, 139, 140, 133, 140, 138, 141, 134, 135, 141, 145, 139, 137, 139, 137, 137, 137, 135, 144, 144, 144, 138, 135, 136, 137, 139, 139, 143, 143, 138, 138, 133, 141, 139, 140, 141, 142, 144, 133, 139, 137, 132, 138, 136, 144, 135, 143, 132, 134, 140, 140, 146, 140, 141, 138, 142, 139, 141, 144, 146, 138, 139, 143, 138, 148, 139, 144, 137, 138, 149, 137, 137, 134, 141, 146, 139, 136, 132, 144, 139, 144, 140, 139, 142, 138, 140, 144, 128, 143, 138, 131, 138, 134, 137, 134, 143, 136, 137, 143, 131, 144, 134, 137, 130, 144, 144, 125, 142, 142, 143, 139, 141, 136, 130, 136, 137, 131, 141, 144, 135, 135, 137, 136, 132, 141, 132, 141, 137, 143, 136, 137, 135, 139, 143, 126, 143, 138, 145, 137, 136, 148, 138, 134, 136, 129, 137, 137, 153, 145, 136, 138, 138, 142, 133, 137, 139, 145, 129, 140, 137, 135, 150, 139, 128, 139, 141, 148, 136, 138, 137, 131, 138, 137, 137, 134, 131, 135, 134, 135, 132, 147, 134, 122, 135, 138, 139, 141, 147, 139, 130, 148, 134, 137, 141, 137, 134, 141, 142, 131, 136, 142, 139, 143, 136, 142, 143, 136, 137, 148, 136, 143, 138, 140, 129, 136, 133, 147, 146, 143, 128, 128, 143, 143, 139, 146, 137, 138, 143, 143, 141, 136, 135, 140, 144, 146, 139, 135, 148, 138, 142, 126, 135, 133, 147, 136, 145, 145, 142, 145, 144, 140, 131, 136, 132, 139, 142, 144, 138, 137, 130, 136, 142, 131, 133, 143, 139, 141, 136, 122, 134, 135, 148, 143, 138, 140, 138, 138, 147, 143, 138, 138, 147, 138, 134, 131, 131, 142, 143, 135, 140, 143, 140, 132, 142, 145, 139, 143, 135, 135, 131, 136, 139, 140, 141, 142, 131, 130, 141, 132, 132, 142, 137, 145, 139, 134, 145, 130, 133, 137, 142, 136, 139, 140, 140, 134, 144, 142, 143, 145, 143, 145, 132, 147, 142, 134, 141, 139, 137, 135, 135, 137, 150, 142, 133, 135, 145, 143, 137, 138, 140, 135, 145, 149, 136, 140, 133, 140, 140, 150, 139, 130, 140, 148, 138, 129, 135, 130, 141, 140, 138, 139, 145, 148, 140, 134, 137, 133, 130, 141, 136, 140, 133, 139, 141, 140, 128, 135, 134, 141, 139, 138, 145, 139, 132, 144, 133, 135, 136, 139, 134, 135, 144, 130, 141, 142, 132, 132, 144, 144, 134, 131, 143, 138, 136, 129, 151, 141, 134, 142, 126, 131, 140, 137, 140, 143, 143, 142, 146, 142, 141, 134, 134, 138, 141, 144, 152, 143, 128, 137, 126, 144, 144, 139, 129, 144, 134, 127, 136, 137, 139, 136, 133, 153, 137, 144, 132, 136, 128, 148, 135, 145, 137, 137, 139, 135, 144, 146, 139, 134, 139, 140, 141, 142, 130, 149, 133, 137, 140, 140, 136, 136, 134, 139, 128, 120, 141, 139, 146, 139, 141, 140, 141, 140, 144, 140, 130, 138, 138, 135, 130, 138, 142, 139, 142, 139, 142, 141, 131, 138, 150, 136, 138, 135, 141, 129, 137, 142, 132, 140, 133, 138, 140, 140, 139, 140, 141, 132, 140, 145, 140, 138, 147, 132, 130, 143, 136, 139, 142, 136, 142, 130, 138, 137, 136, 134, 138, 135, 145, 135, 139, 137, 136, 138, 134, 138, 137, 137, 140, 142, 140, 132, 139, 136, 134, 137, 136, 132, 133, 137, 142, 136, 135, 139, 145, 139, 140, 126, 132, 135, 141, 143, 135, 132, 139, 136, 133, 149, 146, 144, 141, 141, 126, 137, 140, 132, 144, 136, 138, 129, 140, 140, 142, 147, 139, 135, 134, 139, 131, 134, 134, 136, 136, 138, 137, 146, 152, 136, 145, 136, 136, 138, 140, 152, 137, 139, 134, 129, 138, 134, 142, 142, 140, 135, 133, 136, 141, 135, 147, 140, 134, 138, 142, 137, 146, 135, 135, 134, 129, 137, 142, 146, 135, 138, 138, 142, 146, 139, 138, 134, 136, 145, 141, 142, 130, 152, 130, 151, 138, 138, 140, 137, 137, 131, 146, 141, 140, 144, 141, 141, 130, 132, 133, 142, 141, 137, 143, 137, 138, 137, 146, 135, 135, 160, 129, 140, 136, 141, 144, 148, 154, 130, 143, 133, 138, 140, 143, 135, 145, 140, 136, 142, 141, 150, 133, 140, 139, 142, 144, 147, 136, 147, 130, 136, 133, 135, 132, 140, 139, 141, 126, 152, 139, 126, 138, 140, 140, 152, 140, 125, 135, 138, 152, 139, 137, 129, 130, 144, 145, 142, 135, 134, 151, 133, 150, 136, 141, 146, 142, 138, 128, 126, 129, 142, 143, 140, 146, 149, 149, 143, 144, 138, 137, 129, 145, 132, 143, 129, 131, 145, 137, 144, 134, 152, 144, 141, 137, 132, 141, 148, 133, 140, 138, 138, 132, 138, 135, 146, 142, 146, 139, 144, 145, 142, 152, 142, 131, 148, 135, 140, 134, 143, 128, 142, 136, 143, 133, 130, 131, 132, 135, 139, 139, 136, 134, 143, 142, 144, 138, 132, 141, 144, 130, 139, 138, 134, 139, 136, 126, 139, 127, 145, 136, 133, 143, 133, 137, 145, 139, 138, 142, 134, 122, 149, 135, 140, 143, 127, 144, 134, 141, 130, 138, 135, 138, 138, 143, 141, 135, 138, 146, 144, 142, 157, 146, 137, 144, 143, 135, 146, 135, 142, 139, 140, 143, 138, 140, 134, 149, 136, 145, 131, 136, 144, 146, 134, 144, 135, 139, 147, 147, 148, 141, 128, 132, 147, 137, 140, 142, 139, 135, 146, 147, 137, 136, 147, 139, 137, 135, 148, 135, 138, 144, 147, 146, 139, 140, 138, 148, 140, 136, 147, 133, 142, 142, 130, 147, 142, 138, 133, 142, 128, 135, 148, 139, 141, 138, 138, 137, 145, 143, 139, 139, 139, 144, 142, 144, 149, 138, 136, 132, 142, 140, 134, 132, 145, 135, 143, 146, 129, 152, 140, 140, 157, 135, 144, 142, 137, 137, 135, 145, 146, 138, 141, 147, 141, 134, 135, 152, 133, 143, 141, 147, 139, 133, 141, 142, 134, 144, 141, 144, 134, 134, 133, 140, 132, 141, 135, 143, 137, 132, 140, 144, 139, 149, 138, 133, 143, 136, 141, 153, 143, 145, 133, 137, 129, 145, 138, 147, 130, 146, 144, 140, 137, 136, 141, 132, 144, 130, 123, 144, 136, 147, 139, 135, 135, 133, 137, 135, 143, 143, 141, 149, 130, 138, 141, 137, 147, 147, 136, 148, 135, 136, 130, 135, 143, 141, 137, 143, 137, 136, 139, 134, 134, 126, 134, 136, 143, 141, 139, 133, 135, 139, 138, 140, 149, 146, 142, 150, 138, 143, 141, 136, 134, 132, 148, 138, 141, 133, 144, 138, 138, 140, 138, 135, 134, 141, 146, 140, 134, 143, 142, 140, 144, 141, 133, 137, 137, 145, 134, 139, 142, 133, 141, 140, 144, 142, 139, 134, 146, 144, 144, 136, 140, 142, 135, 146, 143, 147, 145, 134, 132, 140, 138, 142, 137, 144, 138, 134, 141, 142, 133, 134, 136, 137, 138, 141, 140, 136, 135, 138, 135, 135, 135, 136, 138, 135, 128, 142, 135, 148, 142, 139, 137, 142, 144, 132, 130, 139, 137, 142, 139, 133, 142, 140, 136, 143, 144, 139, 141, 145, 140, 136, 139, 141, 137, 140, 139, 149, 136, 133, 139, 133, 143, 136, 134, 143, 137, 144, 143, 133, 142, 141, 134, 137, 136, 146, 130, 140, 130, 130, 145, 136, 140, 138, 143, 127, 139, 134, 138, 131, 136, 134, 141, 135, 140, 141, 143, 133, 137, 142, 140, 139, 144, 138, 140, 137, 139, 132, 140, 139, 139, 145, 137, 134, 135, 147, 145, 131, 136, 138, 145, 141, 138, 152, 131, 141, 137, 142, 133, 134, 152, 150, 146, 142, 142, 141, 123, 133, 141, 139, 141, 126, 137, 134, 134, 136, 137, 137, 137, 141, 136, 142, 142, 134, 132, 137, 135, 140, 137, 139, 146, 136, 141, 137, 135, 132, 134, 142, 145, 144, 139, 138, 140, 127, 138, 144, 141, 149, 138, 141, 141, 137, 150, 140, 144, 135, 143, 131, 134, 136, 141, 138, 136, 134, 135, 132, 142, 142, 145, 141, 147, 144, 138, 138, 138, 143, 128, 137, 139, 138, 130, 143, 144, 145, 138, 133, 135, 136, 143, 139, 137, 135, 142, 143, 135, 132, 146, 134, 139, 147, 141, 138, 139, 140, 142, 141, 138, 147, 138, 139, 137, 127, 134, 136, 137, 141, 137, 139, 141, 144, 144, 144, 143, 135, 140, 150, 143, 144, 135, 137, 137, 136, 138, 139, 136, 134, 139, 132, 129, 139, 148, 139, 144, 133, 143, 138, 138, 132, 139, 137, 146, 139, 138, 143, 139, 133, 146, 143, 137, 135, 133, 138, 144, 136, 145, 142, 144, 139, 138, 132, 138, 137, 141, 133, 138, 142, 134, 134, 135, 138, 136, 142, 143, 141, 137, 141, 147, 142, 139, 141, 137, 134, 142, 136, 141, 134, 139, 132, 140, 139, 135, 141, 133, 140, 137, 136, 132, 132, 132, 136, 137, 142, 148, 132, 148, 143, 139, 146, 139, 143, 140, 132, 138, 146, 136, 140, 132, 139, 135, 130, 143, 144, 138, 129, 145, 135, 143, 127, 138, 142, 137, 139, 136, 143, 128, 140, 134, 132, 142, 139, 132, 130, 132, 139, 137, 140, 141, 145, 140, 130, 137, 138, 144, 134, 141, 145, 138, 138, 133, 147, 134, 136, 138, 135, 148, 150, 140, 136, 134, 137, 140, 135, 146, 134, 137, 134, 132, 145, 130, 136, 134, 140, 138, 135, 146, 144, 137, 134, 142, 143, 140, 137, 137, 139, 139, 131, 139, 142, 137, 142, 131, 143, 139, 135, 137, 140, 140, 142, 139, 141, 141, 136, 137, 141, 146, 141, 139, 140, 142, 137, 142, 143, 143, 145, 130, 136, 143, 144, 123, 141, 121, 128, 131, 133, 145, 134, 136, 147, 136, 140, 141, 142, 142, 139, 132, 141, 140, 138, 134, 132, 146, 136, 138, 140, 132, 138, 145, 135, 133, 127, 148, 139, 138, 140, 133, 137, 140, 135, 132, 141, 140, 135, 138, 133, 145, 131, 136, 126, 138, 135, 138, 139, 137, 143, 143, 138, 141, 141, 135, 146, 142, 147, 139, 146, 148, 130, 142, 145, 129, 139, 144, 133, 135, 136, 148, 133, 147, 140, 131, 139, 135, 143, 144, 140, 145, 143, 137, 132, 137, 137, 137, 140, 131, 144, 142, 138, 141, 135, 136, 140, 140, 133, 131, 142, 145, 140, 141, 145, 137, 136, 137, 135, 142, 145, 148, 145, 135, 137, 134, 142, 138, 146, 136, 140, 135, 140, 150, 128, 136, 141, 138, 138, 141, 141, 134, 146, 137, 131, 130, 135, 142, 137, 134, 136, 135, 138, 129, 136, 136, 132, 142, 135, 135, 132, 145, 129, 140, 133, 138, 134, 135, 139, 141, 146, 130, 136, 141, 145, 126, 128, 147, 134, 132, 136, 132, 141, 143, 145, 142, 139, 132, 137, 134, 145, 124, 137, 145, 147, 131, 144, 146, 139, 143, 137, 144, 139, 143, 135, 142, 138, 132, 138, 140, 146, 139, 147, 147, 140, 139, 139, 146, 137, 144, 136, 135, 142, 137, 145, 135, 137, 141, 145, 136, 137, 139, 129, 139, 133, 136, 134, 135, 134, 138, 145, 148, 142, 146, 132, 142, 141, 143, 142, 143, 139, 139, 139, 139, 140, 150, 139, 134, 140, 141, 139, 144, 131, 136, 141, 143, 136, 139, 141, 139, 145, 125, 137, 137, 141, 140, 132, 141, 145, 138, 142, 130, 140, 140, 132, 141, 140, 145, 135, 142, 133, 135, 137, 142, 134, 129, 135, 133, 142, 128, 144, 145, 142, 135, 142, 130, 139, 137, 135, 148, 141, 147, 139, 137, 135, 135, 147, 137, 138, 141, 136, 128, 144, 134, 135, 141, 135, 142, 133, 147, 129, 133, 141, 134, 148, 147, 136, 141, 149, 149, 142, 139, 137, 136, 146, 134, 137, 132, 134, 135, 141, 138, 134, 138, 140, 134, 136, 129, 146, 143, 142, 135, 143, 142, 136, 131, 137, 138, 138, 134, 136, 139, 139, 151, 139, 144, 145, 131, 133, 140, 143, 137, 138, 148, 141, 141, 141, 129, 127, 137, 132, 132, 146, 138, 134, 131, 136, 140, 139, 127, 133, 150, 145, 133, 133, 126, 130, 143, 134, 141, 135, 138, 134, 146, 140, 139, 146, 136, 139, 142, 151, 142, 140, 143, 139, 143, 145, 137, 125, 139, 135, 126, 142, 140, 129, 134, 130, 145, 134, 150, 139, 145, 138, 132, 139, 152, 133, 143, 141, 135, 127, 134, 133, 139, 132, 128, 146, 130, 137, 147, 131, 133, 139, 143, 132, 150, 142, 133, 131, 144, 149, 131, 138, 127, 143, 137, 144, 151, 132, 143, 133, 137, 134, 141, 133, 131, 134, 145, 130, 137, 142, 139, 143, 137, 139, 137, 133, 136, 133, 138, 137, 134, 140, 132, 147, 132, 136, 136, 136, 138, 130, 133, 137, 139, 146, 130, 134, 130, 149, 137, 146, 149, 134, 145, 134, 131, 135, 135, 138, 139, 148, 127, 146, 133, 142, 139, 140, 133, 137, 141, 133, 134, 142, 141, 135, 142, 143, 142, 147, 134, 141, 151, 136, 136, 134, 136, 134, 135, 131, 132, 152, 144, 143, 130, 132, 134, 131, 136, 136, 135, 141, 135, 142, 146, 134, 131, 140, 134, 144, 137, 139, 133, 130, 134, 134, 133, 140, 151, 136, 131, 146, 141, 143, 146, 139, 143, 143, 139, 135, 133, 143, 142, 142, 133, 138, 134, 137, 138, 139, 129, 135, 133, 145, 144, 140, 140, 141, 149, 138, 131, 147, 131, 135, 131, 141, 137, 142, 143, 127, 129, 140, 138, 135, 138, 132, 139, 136, 142, 125, 141, 143, 139, 131, 141, 120, 141, 132, 136, 138, 142, 153, 144, 139, 135, 139, 140, 156, 128, 136, 140, 142, 143, 137, 142, 141, 133, 142, 141, 134, 142, 139, 142, 142, 145, 133, 131, 138, 137, 148, 141, 141, 143, 136, 140, 133, 129, 136, 138, 145, 135, 144, 135, 142, 122, 142, 142, 140, 138, 133, 141, 137, 133, 135, 134, 135, 134, 140, 134, 138, 129, 134, 140, 129, 138, 142, 146, 139, 136, 130, 135, 147, 136, 138, 143, 129, 132, 152, 138, 132, 133, 137, 149, 149, 133, 143, 141, 138, 135, 124, 134, 143, 136, 139, 136, 143, 148, 143, 150, 132, 134, 137, 140, 136, 136, 140, 133, 140, 141, 143, 146, 142, 136, 144, 144, 142, 138, 138, 137, 141, 136, 136, 133, 135, 141, 134, 141, 141, 150, 151, 134, 138, 139, 138, 136, 148, 134, 145, 132, 142, 132, 139, 133, 132, 138, 134, 142, 132, 147, 128, 143, 128, 139, 130, 135, 153, 139, 139, 154, 135, 137, 139, 138, 142, 134, 149, 141, 139, 130, 140, 135, 136, 147, 142, 139, 129, 150, 131, 137, 135, 134, 142, 144, 137, 148, 141, 134, 131, 136, 130, 134, 140, 137, 134, 133, 147, 133, 146, 149, 138, 140, 145, 125, 137, 140, 147, 140, 131, 142, 149, 147, 137, 141, 141, 141, 142, 130, 143, 133, 136, 134, 142, 125, 144, 135, 142, 139, 134, 141, 144, 138, 127, 141, 142, 132, 151, 140, 138, 145, 125, 140, 143, 140, 133, 145, 130, 135, 124, 138, 142, 141, 147, 146, 126, 145, 141, 140, 145, 130, 126, 155, 137, 134, 138, 145, 145, 132, 139, 151, 131, 144, 130, 132, 145, 137, 139, 130, 139, 132, 141, 140, 136, 135, 142, 136, 137, 128, 133, 138, 140, 136, 130, 131, 151, 127, 136, 135, 151, 136, 137, 145, 145, 144, 137, 148, 141, 142, 147, 139, 145, 146, 138, 143, 151, 131, 139, 131, 146, 140, 139, 138, 139, 132, 142, 138, 136, 133, 133, 137, 135, 134, 136, 137, 139, 148, 133, 135, 134, 138, 132, 139, 137, 139, 142, 141, 130, 144, 135, 152, 146, 135, 131, 143, 134, 136, 141, 128, 141, 133, 131, 137, 143, 140, 129, 140, 139, 148, 127, 144, 144, 138, 139, 141, 152, 137, 143, 137, 137, 127, 138, 134, 145, 145, 122, 127, 134, 147, 143, 130, 135, 147, 143, 141, 143, 131, 131, 145, 141, 140, 136, 134, 141, 136, 139, 153, 143, 136, 148, 140, 131, 122, 135, 140, 142, 133, 134, 125, 135, 141, 128, 137, 140, 142, 134, 134, 141, 124, 140, 131, 140, 131, 140, 136, 141, 146, 138, 140, 139, 136, 136, 142, 143, 128, 139, 145, 132, 125, 137, 133, 130, 140, 129, 136, 141, 139, 142, 141, 141, 135, 148, 134, 139, 134, 143, 146, 142, 151, 141, 134, 140, 141, 144, 140, 143, 140, 136, 142, 140, 132, 125, 148, 135, 128, 144, 145, 128, 141, 142, 139, 137, 135, 143, 137, 133, 142, 141, 150, 138, 141, 150, 134, 138, 145, 152, 141, 139, 139, 137, 145, 133, 138, 123, 141, 137, 139, 141, 134, 148, 134, 135, 140, 142, 135, 132, 143, 135, 147, 136, 142, 141, 156, 134, 135, 135, 140, 134, 135, 148, 135, 134, 134, 143, 131, 131, 134, 139, 140, 130, 137, 143, 133, 139, 132, 137, 133, 139, 156, 140, 141, 133, 142, 139, 134, 148, 139, 132, 134, 142, 131, 139, 145, 139, 139, 140, 134, 154, 137, 150, 146, 146, 139, 144, 137, 140, 145, 130, 142, 142, 146, 132, 142, 139, 128, 147, 144, 135, 141, 144, 138, 133, 140, 132, 138, 137, 132, 137, 141, 135, 141, 149, 151, 144, 127, 139, 140, 143, 135, 137, 131, 146, 147, 143, 133, 144, 145, 146, 140, 139, 145, 148, 139, 146, 134, 136, 135, 141, 135, 144, 147, 136, 144, 136, 133, 140, 134, 142, 144, 147, 141, 141, 142, 142, 135, 131, 143, 144, 138, 139, 143, 143, 138, 132, 135, 143, 131, 143, 146, 126, 139, 143, 122, 143, 136, 122, 137, 140, 141, 137, 131, 141, 139, 134, 130, 144, 156, 141, 125, 148, 145, 134, 142, 136, 135, 140, 143, 150, 135, 150, 114, 145, 141, 142, 144, 146, 135, 134, 130, 136, 134, 138, 142, 140, 137, 144, 135, 135, 140, 133, 139, 136, 149, 140, 136, 140, 144, 136, 138, 145, 139, 136, 140, 130, 146, 133, 146, 140, 140, 127, 153, 145, 139, 132, 134, 134, 147, 141, 131, 142, 133, 139, 137, 145, 137, 132, 139, 136, 137, 142, 116, 142, 147, 137, 145, 143, 146, 131, 137, 144, 144, 134, 149, 126, 136, 145, 144, 131, 129, 134, 136, 141, 129, 145, 138, 140, 142, 129, 145, 136, 135, 144, 132, 132, 143, 131, 135, 137, 138, 139, 141, 142, 145, 145, 135, 133, 137, 138, 135, 142, 126, 136, 139, 130, 139, 151, 132, 141, 144, 139, 136, 144, 135, 135, 143, 142, 128, 129, 136, 147, 136, 137, 141, 136, 146, 140, 144, 136, 136, 131, 140, 144, 135, 140, 138, 136, 136, 137, 139, 141, 134, 136, 150, 137, 135, 142, 136, 131, 144, 127, 141, 146, 151, 157, 134, 143, 140, 149, 138, 139, 123, 129, 135, 138, 151, 143, 138, 147, 135, 137, 153, 130, 139, 142, 133, 145, 136, 137, 141, 145, 130, 140, 136, 132, 135, 146, 139, 136, 138, 139, 144, 138, 134, 146, 138, 138, 142, 135, 140, 139, 136, 148, 146, 144, 136, 134, 140, 137, 129, 134, 139, 142, 136, 134, 147, 134, 144, 141, 142, 134, 146, 142, 141, 140, 139, 135, 143, 136, 138, 136, 141, 140, 140, 137, 145, 144, 136, 129, 139, 134, 139, 140, 137, 133, 143, 137, 127, 137, 132, 138, 137, 139, 141, 135, 138, 134, 141, 144, 136, 147, 133, 137, 142, 142, 141, 143, 133, 140, 138, 135, 142, 136, 142, 136, 135, 133, 144, 135, 136, 137, 129, 138, 142, 142, 141, 138, 137, 145, 140, 140, 142, 134, 139, 142, 136, 143, 137, 140, 143, 137, 141, 144, 140, 133, 144, 145, 140, 142, 142, 135, 132, 143, 135, 139, 142, 141, 137, 141, 141, 142, 140, 136, 140, 133, 140, 140, 133, 138, 147, 139, 140, 139, 140, 136, 136, 139, 140, 137, 140, 134, 126, 144, 144, 135, 140, 135, 140, 135, 138, 144, 141, 136, 145, 143, 140, 132, 136, 135, 141, 140, 141, 144, 139, 133, 140, 138, 139, 134, 138, 140, 147, 138, 141, 139, 140, 137, 135, 137, 142, 126, 124, 136, 139, 132, 137, 140, 137, 134, 137, 145, 137, 143, 136, 137, 142, 139, 141, 142, 140, 144, 138, 134, 143, 140, 143, 139, 145, 134, 132, 138, 138, 134, 143, 146, 138, 146, 139, 131, 139, 143, 138, 140, 139, 137, 141, 133, 138, 141, 131, 138, 141, 138, 139, 143, 144, 143, 139, 136, 136, 136, 141, 136, 144, 144, 140, 139, 141, 141, 140, 143, 137, 137, 135, 145, 136, 138, 145, 141, 143, 135, 134, 137, 136, 135, 146, 142, 138, 135, 137, 133, 134, 134, 147, 141, 138, 140, 137, 138, 133, 136, 140, 138, 139, 134, 146, 143, 134, 130, 142, 137, 131, 135, 147, 145, 142, 134, 140, 136, 141, 146, 140, 136, 136, 139, 137, 138, 136, 143, 144, 139, 133, 145, 145, 142, 138, 139, 138, 143, 135, 142, 138, 144, 136, 135, 140, 136, 145, 140, 133, 140, 124, 123, 146, 136, 143, 144, 141, 145, 147, 143, 142, 137, 137, 135, 136, 137, 140, 134, 134, 137, 135, 134, 143, 148, 141, 143, 139, 139, 127, 135, 135, 132, 137, 136, 141, 137, 132, 140, 136, 141, 137, 145, 140, 137, 142, 145, 136, 135, 144, 136, 133, 138, 136, 135, 128, 131, 134, 141, 134, 142, 131, 147, 143, 139, 135, 147, 139, 136, 132, 141, 138, 132, 135, 135, 146, 154, 137, 136, 139, 139, 136, 135, 136, 135, 132, 136, 139, 134, 141, 137, 142, 139, 140, 132, 138, 134, 141, 139, 139, 137, 152, 135, 136, 136, 136, 141, 144, 143, 141, 129, 139, 139, 140, 144, 136, 135, 144, 134, 138, 135, 139, 134, 140, 146, 138, 143, 139, 137, 139, 138, 141, 139, 139, 142, 137, 131, 141, 135, 141, 148, 135, 140, 139, 134, 139, 143, 134, 138, 136, 136, 141, 138, 140, 138, 138, 135, 139, 137, 139, 145, 129, 136, 147, 139, 139, 139, 135, 137, 139, 141, 136, 137, 142, 134, 139, 142, 139, 136, 139, 135, 137, 135, 138, 144, 140, 143, 144, 135, 142, 142, 136, 137, 140, 139, 141, 140, 139, 141, 141, 139, 145, 141, 130, 138, 139, 138, 141, 139, 135, 139, 138, 141, 138, 139, 135, 142, 140, 136, 141, 134, 139, 139, 138, 139, 142, 140, 138, 137, 138, 135, 138, 139, 138, 142, 143, 138, 139, 138, 142, 143, 139, 140, 140, 140, 141, 136, 138, 138, 141, 140, 141, 136, 140, 142, 137, 142, 143, 139, 137, 139, 142, 138, 137, 136, 139, 138, 139, 147, 139, 137, 137, 135, 143, 140, 135, 137, 142, 140, 134, 142, 138, 142, 142, 136, 139, 137, 136, 142, 144, 137, 135, 140, 141, 135, 143, 138, 139, 140, 140, 142, 140, 138, 140, 135, 138, 140, 134, 142, 137, 139, 144, 136, 137, 140, 135, 137, 139, 142, 141, 138, 141, 140, 138, 145, 141, 134, 138, 138, 141, 141, 135, 139, 139, 142, 141, 141, 143, 139, 138, 138, 138, 144, 138, 137, 144, 143, 145, 137, 137, 139, 141, 139, 140, 140, 142, 140, 137, 140, 139, 142, 144, 134, 143, 134, 142, 139, 145, 138, 141, 140, 142, 128, 141, 138, 137, 142, 136, 140, 139, 141, 136, 138, 139, 140, 139, 138, 139, 144, 140, 144, 141, 140, 141, 134, 138, 140, 139, 141, 138, 139, 132, 138, 138, 142, 139, 139, 140, 135, 135, 138, 139, 137, 141, 139, 142, 138, 137, 138, 142, 140, 142, 142, 139, 146, 140, 142, 142, 135, 140, 139, 141, 138, 142, 143, 138, 141, 140, 139, 138, 139, 134, 139, 140, 146, 141, 138, 139, 141, 144, 136, 137, 140, 142, 143, 139, 140, 142, 134, 142, 139, 146, 140, 136, 137, 138, 141, 134, 140, 138, 147, 140, 139, 142, 140, 140, 135, 142, 141, 140, 134, 142, 142, 140, 139, 144, 139, 139, 139, 141, 137, 138, 142, 135, 139, 138, 137, 139, 141, 140, 136, 138, 138, 137, 141, 142, 139, 143, 140, 138, 135, 140, 138, 138, 139, 139, 138, 138, 134, 137, 137, 136, 139, 140, 139, 140, 136, 138, 142, 136, 139, 139, 138, 134, 139, 140, 135, 138, 135, 144, 138, 140, 136, 136, 141, 138, 140, 141, 142, 138, 137, 139, 139, 138, 139, 139, 138, 140, 137, 143, 138, 138, 142, 139, 142, 136, 143, 136, 141, 139, 137, 144, 138, 138, 140, 142, 135, 143, 140, 139, 139, 141, 142, 142, 140, 135, 137, 138, 140, 138, 143, 139, 139, 138, 142, 137, 141, 139, 142, 139, 138, 140, 138, 143, 141, 137, 141, 142, 141, 139, 137, 138, 139, 139, 137, 143, 141, 139, 137, 137, 146, 141, 141, 140, 143, 141, 139, 138, 143, 138, 136, 136, 142, 142, 138, 137, 137, 142, 140, 136, 138, 138, 136, 138, 139, 134, 137, 138, 136, 139, 136, 136, 136, 139, 140, 140, 137, 141, 141, 136, 139, 138, 142, 136, 140, 141, 138, 139, 141, 138, 137, 139, 138, 141, 139, 140, 140, 140, 143, 138, 145, 143, 141, 138, 136, 139, 140, 136, 136, 141, 139, 137, 136, 137, 136, 143, 141, 138, 135, 144, 142, 141, 137, 134, 140, 137, 147, 141, 138, 136, 137, 147, 134, 137, 142, 136, 139, 140, 135, 139, 137, 140, 146, 144, 141, 138, 136, 137, 137, 141, 139, 143, 139, 138, 138, 137, 134, 137, 139, 138, 140, 134, 138, 136, 135, 136, 140, 134, 141, 139, 136, 136, 145, 137, 135, 139, 144, 143, 137, 145, 139, 135, 142, 145, 136, 138, 134, 138, 141, 136, 137, 142, 143, 142, 140, 139, 142, 141, 136, 135, 138, 130, 140, 136, 143, 138, 139, 143, 145, 141, 137, 145, 136, 142, 138, 144, 141, 147, 138, 138, 144, 136, 141, 136, 130, 140, 134, 140, 141, 144, 143, 137, 137, 140, 135, 137, 131, 137, 136, 137, 142, 140, 140, 147, 141, 144, 134, 141, 141, 137, 141, 133, 143, 137, 139, 136, 140, 133, 144, 143, 139, 135, 140, 133, 139, 136, 135, 136, 136, 143, 141, 137, 135, 145, 136, 144, 142, 141, 140, 138, 140, 142, 141, 144, 136, 133, 139, 139, 142, 138, 139, 136, 138, 136, 136, 139, 143, 138, 140, 139, 139, 140, 137, 140, 136, 140, 137, 136, 138, 136, 139, 140, 138, 133, 139, 141, 135, 137, 134, 135, 142, 140, 142, 140, 137, 143, 142, 143, 138, 137, 138, 138, 136, 131, 136, 139, 142, 141, 144, 141, 155, 141, 138, 137, 144, 134, 137, 139, 139, 149, 140, 137, 133, 141, 143, 148, 139, 142, 141, 137, 140, 141, 140, 146, 135, 134, 140, 138, 142, 146, 144, 141, 137, 136, 129, 139, 137, 139, 141, 138, 140, 139, 136, 133, 137, 134, 134, 149, 137, 141, 140, 142, 133, 139, 143, 141, 135, 138, 148, 139, 141, 144, 137, 143, 143, 136, 142, 147, 142, 145, 142, 139, 135, 138, 140, 135, 134, 141, 136, 145, 131, 142, 138, 141, 146, 136, 133, 133, 132, 140, 137, 141, 140, 136, 140, 136, 139, 142, 136, 146, 139, 135, 145, 140, 135, 141, 132, 142, 139, 142, 141, 141, 140, 145, 137, 141, 140, 139, 137, 136, 138, 139, 137, 141, 138, 142, 139, 140, 138, 141, 135, 137, 137, 137, 139, 143, 132, 143, 143, 135, 136, 138, 140, 138, 143, 141, 140, 145, 138, 141, 134, 148, 147, 140, 138, 144, 137, 138, 143, 142, 140, 138, 145, 139, 139, 139, 135, 134, 137, 140, 133, 141, 137, 139, 151, 138, 146, 143, 141, 143, 135, 141, 143, 148, 140, 135, 135, 143, 138, 134, 145, 138, 136, 144, 135, 136, 133, 138, 135, 138, 136, 144, 144, 133, 138, 140, 130, 137, 141, 144, 133, 133, 142, 137, 142, 132, 134, 140, 133, 137, 139, 138, 139, 143, 139, 137, 142, 138, 135, 137, 137, 140, 137, 146, 147, 140, 141, 137, 144, 135, 136, 133, 144, 142, 142, 135, 144, 135, 137, 136, 136, 141, 141, 135, 136, 137, 145, 140, 140, 140, 142, 143, 139, 141, 138, 138, 142, 144, 129, 142, 138, 143, 141, 144, 132, 143, 133, 138, 132, 139, 148, 135, 139, 150, 135, 142, 137, 142, 136, 136, 141, 134, 141, 144, 147, 130, 135, 141, 141, 139, 141, 134, 146, 126, 129, 138, 128, 133, 140, 128, 150, 133, 142, 138, 136, 141, 139, 143, 137, 138, 137, 137, 147, 141, 150, 144, 139, 140, 138, 140, 141, 137, 137, 139, 140, 137, 137, 126, 146, 140, 138, 136, 138, 134, 140, 136, 141, 129, 142, 134, 136, 141, 134, 139, 138, 133, 129, 135, 142, 141, 126, 132, 138, 134, 140, 140, 147, 141, 137, 139, 135, 144, 136, 142, 144, 141, 137, 139, 148, 140, 139, 141, 149, 136, 140, 137, 135, 145, 136, 139, 144, 142, 136, 132, 146, 133, 144, 147, 143, 135, 139, 138, 140, 150, 145, 144, 141, 141, 135, 137, 139, 135, 136, 143, 135, 135, 129, 134, 137, 136, 137, 135, 143, 132, 141, 140, 141, 140, 140, 133, 141, 139, 140, 144, 141, 137, 138, 132, 135, 145, 144, 141, 145, 136, 132, 141, 138, 140, 142, 147, 144, 132, 140, 139, 135, 139, 136, 146, 145, 141, 139, 144, 141, 139, 144, 151, 131, 131, 145, 137, 133, 142, 135, 136, 127, 135, 128, 143, 134, 142, 142, 136, 139, 129, 155, 140, 133, 144, 146, 142, 133, 140, 128, 132, 139, 143, 162, 135, 139, 134, 141, 137, 139, 134, 139, 140, 135, 137, 141, 140, 147, 141, 137, 147, 138, 135, 146, 138, 138, 140, 143, 142, 140, 136, 136, 141, 139, 145, 145, 142, 144, 131, 146, 147, 139, 138, 151, 147, 138, 138, 136, 136, 137, 137, 145, 142, 135, 136, 142, 154, 147, 139, 132, 139, 128, 136, 139, 141, 134, 137, 141, 144, 146, 130, 142, 136, 138, 140, 138, 134, 132, 135, 139, 133, 136, 137, 141, 139, 143, 135, 132, 137, 133, 140, 130, 142, 145, 140, 142, 144, 139, 142, 135, 143, 133, 143, 141, 148, 138, 142, 137, 147, 144, 137, 140, 136, 139, 137, 134, 136, 133, 136, 135, 146, 143, 135, 141, 144, 144, 144, 142, 125, 135, 136, 136, 136, 137, 146, 139, 137, 139, 130, 132, 148, 137, 148, 149, 135, 132, 132, 133, 136, 137, 140, 147, 140, 140, 140, 140, 140, 138, 142, 139, 137, 138, 139, 138, 132, 141, 151, 134, 138, 136, 138, 140, 139, 130, 138, 144, 139, 136, 144, 149, 139, 131, 133, 140, 138, 132, 138, 145, 134, 135, 133, 143, 136, 141, 139, 146, 141, 137, 137, 134, 144, 135, 138, 133, 138, 136, 137, 142, 134, 129, 134, 141, 135, 142, 144, 136, 137, 139, 140, 139, 143, 137, 134, 139, 139, 136, 135, 144, 141, 140, 133, 143, 137, 138, 131, 138, 138, 143, 143, 146, 137, 143, 133, 153, 134, 142, 134, 143, 146, 135, 134, 145, 136, 135, 144, 138, 144, 136, 132, 150, 132, 133, 136, 136, 143, 140, 146, 136, 131, 141, 141, 145, 142, 137, 139, 139, 131, 139, 140, 138, 144, 142, 143, 139, 144, 138, 132, 145, 135, 142, 140, 140, 135, 140, 138, 139, 136, 141, 148, 132, 125, 139, 130, 137, 140, 140, 138, 145, 142, 141, 154, 136, 148, 149, 143, 138, 143, 136, 141, 152, 141, 134, 140, 135, 139, 136, 139, 144, 139, 148, 153, 142, 139, 145, 135, 138, 133, 141, 131, 125, 131, 136, 137, 141, 140, 143, 140, 146, 131, 139, 139, 143, 132, 147, 138, 136, 137, 139, 132, 147, 142, 144, 142, 140, 138, 134, 137, 139, 141, 141, 140, 138, 142, 141, 138, 136, 135, 144, 135, 141, 134, 135, 138, 137, 144, 140, 135, 141, 142, 137, 140, 141, 142, 138, 139, 136, 146, 141, 129, 143, 140, 139, 126, 135, 140, 146, 135, 141, 144, 139, 140, 142, 135, 145, 131, 132, 137, 132, 139, 142, 131, 138, 133, 141, 142, 145, 144, 147, 135, 128, 132, 142, 139, 141, 137, 144, 145, 140, 141, 142, 141, 140, 139, 141, 138, 138, 135, 145, 134, 136, 139, 142, 137, 143, 140, 138, 138, 137, 137, 147, 136, 138, 130, 140, 137, 131, 137, 137, 139, 143, 135, 137, 139, 139, 134, 145, 138, 135, 144, 137, 139, 139, 135, 132, 144, 137, 142, 137, 139, 142, 134, 143, 141, 142, 136, 127, 144, 142, 128, 124, 142, 139, 139, 140, 145, 137, 143, 139, 136, 135, 143, 136, 140, 143, 142, 142, 141, 144, 138, 137, 138, 142, 136, 143, 138, 135, 134, 132, 131, 139, 140, 137, 143, 138, 137, 135, 133, 132, 146, 141, 143, 142, 138, 136, 137, 137, 137, 140, 133, 141, 148, 142, 137, 139, 137, 134, 141, 136, 137, 140, 143, 145, 136, 140, 138, 124, 145, 139, 136, 139, 139, 145, 143, 146, 145, 139, 137, 140, 138, 143, 139, 133, 129, 135, 132, 138, 142, 134, 131, 135, 141, 140, 139, 147, 143, 147, 143, 136, 136, 139, 129, 141, 138, 132, 134, 142, 147, 143, 138, 139, 138, 136, 139, 140, 141, 137, 137, 136, 138, 137, 141, 150, 142, 133, 141, 136, 139, 142, 144, 141, 145, 131, 140, 135, 143, 134, 138, 136, 143, 140, 135, 133, 143, 141, 140, 139, 136, 143, 137, 133, 134, 141, 145, 136, 140, 139, 137, 139, 140, 141, 138, 139, 137, 139, 137, 133, 137, 136, 133, 140, 136, 140, 139, 133, 146, 137, 135, 140, 141, 138, 130, 143, 142, 139, 137, 133, 141, 129, 142, 139, 133, 143, 141, 138, 139, 132, 138, 145, 136, 142, 139, 140, 144, 143, 142, 133, 136, 139, 143, 136, 135, 144, 141, 133, 144, 137, 144, 140, 138, 139, 139, 151, 147, 135, 141, 144, 137, 138, 136, 144, 139, 138, 140, 140, 140, 137, 137, 145, 140, 133, 139, 138, 138, 146, 137, 141, 135, 142, 142, 137, 136, 140, 137, 137, 138, 139, 133, 149, 133, 138, 148, 138, 135, 137, 143, 129, 135, 136, 138, 135, 138, 136, 141, 136, 136, 135, 135, 136, 140, 134, 141, 138, 138, 137, 136, 136, 147, 142, 133, 131, 139, 149, 138, 138, 142, 139, 140, 145, 140, 139, 139, 141, 133, 142, 144, 140, 129, 137, 143, 143, 128, 131, 140, 139, 134, 130, 145, 140, 142, 142, 135, 138, 141, 139, 137, 135, 131, 132, 140, 133, 137, 130, 138, 149, 147, 138, 140, 138, 144, 128, 146, 150, 145, 131, 144, 135, 143, 136, 141, 143, 130, 136, 137, 130, 138, 141, 145, 126, 141, 139, 150, 127, 143, 142, 133, 139, 138, 135, 145, 137, 141, 136, 132, 138, 141, 141, 138, 137, 141, 143, 134, 139, 134, 137, 141, 141, 129, 141, 132, 143, 140, 139, 134, 143, 133, 139, 148, 135, 141, 142, 128, 136, 138, 140, 135, 132, 135, 128, 141, 144, 143, 137, 143, 138, 145, 133, 132, 131, 142, 134, 130, 143, 145, 127, 140, 139, 134, 123, 136, 130, 134, 137, 135, 137, 132, 143, 142, 135, 135, 134, 130, 141, 137, 130, 133, 136, 143, 130, 139, 138, 139, 142, 134, 129, 146, 138, 136, 140, 133, 128, 139, 141, 135, 138, 135, 137, 134, 132, 132, 138, 130, 134, 138, 148, 135, 136, 135, 138, 139, 142, 136, 135, 134, 140, 136, 137, 145, 142, 139, 136, 137, 139, 136, 141, 139, 143, 135, 151, 140, 145, 130, 138, 136, 132, 132, 133, 138, 134, 150, 130, 137, 129, 129, 144, 134, 142, 135, 136, 140, 153, 149, 138, 145, 128, 135, 138, 138, 131, 142, 147, 140, 141, 138, 131, 125, 144, 150, 138, 130, 141, 134, 143, 134, 139, 142, 148, 148, 130, 137, 140, 140, 145, 134, 132, 138, 130, 159, 133, 148, 144, 142, 151, 137, 136, 143, 137, 133, 138, 137, 152, 136, 143, 139, 143, 134, 129, 141, 137, 132, 149, 139, 137, 139, 139, 141, 130, 132, 130, 136, 142, 132, 146, 129, 146, 139, 136, 137, 134, 140, 136, 143, 133, 140, 141, 137, 134, 139, 151, 137, 140, 138, 137, 136, 139, 138, 146, 138, 138, 139, 140, 134, 141, 142, 140, 130, 137, 133, 141, 137, 147, 148, 135, 140, 133, 141, 135, 135, 138, 139, 136, 139, 133, 131, 136, 137, 133, 138, 134, 139, 130, 149, 141, 143, 134, 144, 136, 149, 147, 138, 131, 143, 137, 148, 138, 143, 135, 136, 141, 142, 136, 138, 145, 139, 135, 147, 130, 136, 152, 134, 140, 142, 140, 130, 145, 138, 137, 131, 145, 151, 136, 138, 137, 138, 148, 141, 149, 146, 136, 132, 144, 147, 148, 135, 131, 133, 141, 140, 150, 143, 137, 141, 145, 149, 134, 142, 132, 133, 140, 141, 135, 142, 134, 130, 141, 144, 143, 155, 134, 137, 139, 129, 140, 136, 140, 145, 144, 145, 134, 133, 134, 135, 132, 141, 149, 148, 141, 140, 140, 138, 134, 130, 136, 135, 134, 147, 137, 128, 136, 144, 137, 150, 146, 135, 146, 134, 140, 141, 140, 137, 139, 135, 137, 145, 133, 139, 147, 146, 137, 140, 141, 137, 140, 140, 132, 135, 138, 135, 144, 129, 146, 133, 145, 140, 132, 132, 140, 137, 144, 129, 143, 147, 150, 141, 138, 142, 137, 139, 137, 135, 135, 133, 131, 141, 134, 132, 143, 137, 134, 134, 148, 139, 138, 132, 161, 136, 141, 134, 132, 142, 132, 139, 139, 151, 147, 149, 138, 127, 132, 153, 136, 153, 144, 145, 138, 147, 130, 142, 138, 139, 139, 142, 138, 133, 136, 146, 141, 152, 135, 136, 148, 138, 131, 133, 143, 143, 139, 149, 137, 129, 144, 144, 137, 137, 133, 129, 145, 128, 133, 135, 144, 142, 149, 141, 131, 140, 139, 133, 137, 132, 136, 137, 130, 143, 127, 133, 147, 140, 141, 132, 150, 137, 140, 127, 145, 134, 147, 141, 136, 146, 139, 141, 143, 130, 141, 143, 135, 139, 136, 138, 133, 151, 148, 140, 135, 134, 149, 134, 135, 139, 127, 144, 152, 141, 141, 141, 131, 145, 142, 131, 143, 141, 133, 139, 141, 134, 135, 138, 146, 148, 137, 130, 145, 139, 133, 139, 129, 143, 148, 139, 137, 140, 133, 137, 149, 140, 130, 133, 142, 127, 140, 139, 142, 144, 130, 139, 126, 144, 141, 127, 137, 139, 149, 154, 121, 145, 146, 137, 144, 144, 139, 142, 129, 146, 145, 142, 142, 134, 135, 140, 145, 141, 135, 141, 138, 127, 136, 136, 132, 147, 124, 137, 133, 150, 141, 138, 138, 140, 141, 136, 131, 152, 127, 138, 137, 139, 138, 129, 143, 143, 134, 142, 140, 145, 136, 133, 123, 140, 127, 126, 152, 128, 146, 135, 143, 143, 136, 149, 134, 122, 138, 131, 135, 132, 141, 136, 141, 141, 127, 137, 148, 145, 141, 131, 128, 131, 132, 134, 134, 129, 148, 136, 141, 137, 139, 144, 138, 140, 143, 134, 141, 136, 150, 135, 139, 148, 136, 146, 152, 139, 136, 144, 140, 134, 142, 139, 137, 138, 131, 136, 138, 158, 135, 146, 137, 148, 135, 138, 131, 129, 145, 137, 136, 134, 143, 134, 145, 132, 143, 137, 143, 147, 136, 135, 137, 134, 151, 142, 157, 145, 135, 136, 140, 135, 139, 141, 133, 135, 137, 133, 145, 133, 141, 144, 136, 141, 137, 142, 149, 140, 147, 137, 141, 144, 132, 135, 128, 133, 136, 138, 136, 135, 144, 132, 150, 129, 130, 133, 146, 139, 131, 136, 144, 137, 133, 133, 142, 150, 135, 142, 139, 134, 142, 136, 134, 136, 132, 136, 143, 135, 137, 150, 145, 141, 141, 146, 134, 148, 143, 149, 123, 134, 146, 145, 143, 138, 142, 136, 145, 132, 136, 131, 158, 138, 137, 139, 132, 139, 139, 134, 131, 131, 132, 137, 135, 134, 143, 134, 149, 134, 130, 138, 143, 144, 129, 135, 143, 128, 143, 138, 134, 125, 134, 137, 136, 129, 146, 141, 138, 143, 123, 143, 125, 129, 143, 154, 143, 136, 144, 148, 143, 138, 146, 138, 146, 129, 138, 144, 131, 138, 144, 132, 130, 138, 141, 152, 137, 142, 141, 145, 147, 136, 140, 142, 135, 142, 149, 133, 142, 143, 145, 136, 136, 136, 136, 154, 150, 141, 133, 135, 140, 136, 132, 141, 145, 133, 143, 130, 139, 136, 140, 153, 144, 131, 147, 151, 143, 137, 135, 138, 131, 138, 127, 130, 132, 136, 136, 147, 137, 141, 149, 139, 142, 140, 145, 140, 145, 145, 141, 131, 141, 140, 137, 138, 142, 132, 141, 142, 135, 137, 137, 137, 138, 138, 133, 136, 139, 138, 137, 136, 135, 135, 152, 135, 149, 137, 144, 135, 147, 139, 143, 145, 132, 134, 131, 135, 136, 134, 136, 141, 142, 142, 136, 139, 138, 135, 138, 141, 144, 130, 133, 135, 136, 132, 135, 141, 145, 131, 142, 140, 136, 144, 139, 136, 135, 138, 129, 137, 146, 137, 141, 136, 143, 136, 133, 135, 139, 136, 136, 142, 140, 148, 139, 138, 139, 137, 138, 143, 138, 136, 127, 138, 144, 136, 133, 140, 135, 144, 142, 142, 136, 128, 141, 139, 144, 136, 146, 141, 142, 139, 145, 135, 142, 142, 132, 139, 137, 139, 137, 149, 139, 145, 135, 132, 138, 136, 136, 131, 143, 143, 136, 139, 135, 147, 134, 137, 143, 138, 141, 130, 144, 141, 131, 138, 142, 154, 133, 136, 139, 133, 138, 131, 134, 142, 137, 135, 140, 139, 139, 142, 141, 135, 142, 140, 140, 137, 138, 136, 143, 136, 134, 139, 148, 133, 137, 139, 148, 135, 139, 131, 133, 150, 137, 141, 135, 138, 133, 137, 149, 131, 142, 139, 137, 139, 139, 150, 135, 134, 141, 138, 136, 143, 140, 140, 139, 137, 135, 137, 137, 141, 138, 139, 141, 144, 136, 135, 139, 149, 138, 134, 144, 144, 145, 140, 141, 141, 149, 135, 143, 139, 134, 130, 137, 138, 139, 138, 139, 141, 144, 134, 136, 134, 137, 135, 136, 141, 138, 138, 131, 139, 144, 139, 139, 144, 137, 138, 143, 132, 133, 132, 134, 143, 129, 147, 142, 142, 146, 135, 138, 140, 135, 132, 138, 137, 140, 137, 136, 144, 137, 138, 130, 144, 146, 137, 142, 143, 140, 134, 144, 140, 138, 144, 138, 136, 141, 144, 142, 144, 133, 142, 140, 138, 136, 135, 140, 144, 146, 150, 138, 136, 140, 136, 135, 141, 137, 140, 139, 140, 146, 142, 133, 134, 138, 133, 134, 142, 147, 148, 137, 139, 145, 148, 140, 150, 145, 137, 140, 136, 132, 135, 141, 140, 134, 139, 132, 146, 137, 137, 137, 138, 136, 138, 136, 140, 141, 137, 140, 140, 133, 135, 134, 141, 137, 132, 144, 138, 138, 139, 134, 133, 137, 141, 136, 142, 147, 136, 142, 136, 139, 143, 145, 148, 137, 129, 140, 137, 135, 134, 140, 130, 141, 131, 144, 135, 144, 147, 132, 143, 137, 141, 140, 145, 142, 140, 136, 137, 139, 139, 140, 144, 132, 147, 131, 141, 143, 140, 139, 141, 139, 148, 129, 145, 137, 137, 143, 138, 137, 133, 139, 139, 141, 141, 133, 141, 144, 137, 137, 130, 137, 132, 135, 138, 137, 140, 139, 136, 141, 137, 144, 141, 146, 144, 137, 134, 141, 129, 136, 143, 142, 141, 137, 148, 135, 142, 146, 140, 137, 137, 142, 141, 142, 141, 137, 143, 144, 130, 139, 142, 136, 144, 136, 135, 134, 139, 138, 137, 147, 132, 141, 145, 134, 149, 138, 135, 134, 138, 134, 137, 140, 139, 145, 134, 140, 146, 138, 135, 130, 141, 145, 136, 138, 138, 137, 135, 140, 152, 144, 135, 132, 127, 143, 149, 138, 137, 146, 131, 133, 144, 144, 142, 131, 146, 143, 138, 135, 137, 145, 133, 131, 133, 141, 141, 136, 131, 141, 148, 136, 141, 139, 144, 130, 132, 133, 147, 134, 135, 138, 134, 138, 139, 143, 143, 137, 137, 135, 134, 141, 145, 143, 139, 134, 125, 138, 141, 134, 131, 139, 139, 135, 143, 143, 141, 140, 140, 147, 134, 130, 141, 134, 132, 139, 140, 138, 142, 139, 138, 145, 157, 140, 141, 139, 139, 135, 136, 138, 141, 128, 138, 128, 133, 140, 146, 140, 126, 143, 136, 132, 131, 142, 136, 144, 144, 141, 133, 143, 136, 140, 143, 135, 136, 127, 146, 145, 141, 145, 123, 145, 146, 127, 141, 139, 149, 132, 143, 147, 133, 133, 140, 139, 131, 142, 130, 135, 136, 138, 142, 139, 144, 139, 140, 136, 137, 148, 135, 140, 137, 143, 142, 146, 139, 140, 133, 150, 139, 143, 145, 138, 130, 134, 137, 138, 141, 137, 131, 146, 141, 146, 151, 147, 143, 129, 134, 142, 135, 132, 128, 127, 139, 138, 139, 135, 139, 143, 137, 139, 139, 140, 138, 141, 148, 136, 144, 142, 125, 134, 139, 132, 135, 129, 134, 146, 132, 134, 138, 143, 137, 142, 144, 136, 139, 131, 129, 144, 146, 126, 138, 146, 142, 143, 133, 135, 143, 133, 132, 135, 136, 152, 142, 134, 135, 140, 139, 137, 139, 148, 135, 143, 145, 127, 147, 129, 132, 144, 138, 137, 128, 133, 143, 140, 138, 140, 140, 141, 139, 133, 139, 133, 133, 149, 142, 136, 142, 152, 141, 137, 124, 137, 130, 131, 125, 131, 134, 138, 139, 145, 138, 138, 135, 142, 128, 140, 136, 133, 147, 145, 147, 137, 140, 145, 146, 130, 161, 137, 139, 132, 140, 139, 136, 144, 137, 134, 145, 137, 147, 134, 137, 139, 152, 133, 144, 129, 141, 142, 147, 128, 137, 147, 128, 137, 136, 138, 142, 144, 151, 143, 152, 144, 136, 147, 135, 139, 135, 145, 129, 138, 135, 136, 142, 134, 127, 146, 135, 136, 129, 132, 126, 151, 135, 135, 143, 129, 134, 132, 141, 147, 133, 138, 137, 141, 138, 136, 139, 133, 139, 136, 143, 135, 147, 132, 144, 125, 150, 132, 140, 142, 134, 142, 136, 138, 137, 153, 144, 137, 147, 144, 136, 147, 141, 141, 142, 143, 139, 137, 139, 142, 136, 133, 142, 136, 133, 150, 148, 144, 130, 142, 142, 136, 140, 139, 135, 134, 146, 134, 140, 128, 148, 134, 129, 144, 139, 133, 147, 146, 135, 139, 147, 135, 134, 143, 143, 140, 133, 149, 135, 143, 132, 136, 145, 136, 133, 137, 133, 143, 135, 149, 138, 135, 134, 135, 147, 138, 135, 131, 140, 135, 144, 139, 136, 130, 125, 141, 132, 137, 135, 133, 137, 149, 140, 136, 135, 138, 138, 156, 140, 137, 139, 146, 134, 129, 133, 133, 141, 131, 127, 130, 135, 134, 136, 136, 142, 132, 134, 138, 139, 139, 139, 138, 141, 134, 134, 138, 135, 139, 143, 136, 146, 144, 126, 151, 154, 148, 134, 135, 128, 131, 141, 145, 137, 135, 138, 143, 156, 144, 142, 150, 140, 142, 131, 141, 134, 135, 141, 135, 146, 147, 143, 139, 133, 140, 139, 149, 132, 155, 143, 130, 135, 139, 141, 143, 146, 131, 148, 138, 141, 136, 137, 135, 137, 149, 149, 145, 137, 139, 139, 129, 154, 140, 140, 141, 138, 139, 134, 140, 139, 140, 137, 140, 140, 132, 140, 144, 137, 141, 132, 140, 135, 146, 139, 136, 129, 135, 133, 147, 137, 143, 140, 139, 144, 141, 135, 141, 135, 140, 130, 140, 139, 131, 144, 129, 140, 135, 137, 130, 155, 136, 141, 141, 138, 139, 145, 137, 134, 144, 136, 138, 139, 147, 136, 140, 135, 153, 131, 141, 150, 135, 145, 144, 136, 130, 136, 141, 138, 127, 131, 133, 140, 144, 155, 128, 141, 140, 140, 139, 138, 139, 146, 129, 140, 142, 142, 132, 139, 134, 143, 139, 140, 140, 134, 135, 136, 139, 150, 130, 136, 136, 149, 145, 143, 132, 140, 138, 140, 128, 142, 136, 135, 149, 149, 133, 146, 135, 142, 149, 131, 141, 147, 142, 144, 136, 121, 134, 132, 135, 141, 140, 140, 148, 141, 154, 148, 127, 133, 131, 136, 137, 143, 146, 136, 141, 132, 133, 138, 140, 136, 143, 133, 136, 149, 151, 130, 139, 141, 138, 132, 143, 143, 137, 144, 157, 139, 136, 141, 136, 144, 138, 143, 140, 145, 142, 136, 128, 134, 132, 131, 139, 137, 144, 139, 143, 140, 134, 134, 130, 145, 130, 125, 152, 138, 147, 143, 144, 138, 143, 140, 147, 128, 137, 134, 140, 135, 136, 142, 143, 139, 134, 145, 144, 136, 134, 132, 141, 136, 141, 150, 136, 132, 135, 140, 147, 139, 128, 136, 136, 134, 139, 135, 126, 133, 139, 130, 136, 143, 128, 144, 138, 154, 138, 144, 135, 141, 145, 135, 147, 140, 144, 142, 128, 148, 149, 127, 136, 141, 129, 127, 131, 134, 148, 139, 134, 130, 137, 140, 137, 133, 139, 146, 148, 143, 137, 149, 140, 149, 142, 136, 149, 152, 147, 136, 134, 140, 143, 136, 140, 140, 136, 141, 139, 146, 148, 138, 133, 144, 136, 143, 134, 122, 154, 142, 142, 131, 143, 148, 129, 135, 141, 145, 137, 138, 139, 137, 153, 131, 151, 129, 136, 154, 140, 129, 136, 145, 147, 142, 148, 131, 147, 141, 139, 136, 143, 132, 140, 134, 130, 144, 136, 135, 137, 150, 137, 141, 140, 143, 125, 151, 136, 146, 137, 134, 135, 131, 140, 131, 134, 147, 137, 138, 131, 144, 148, 139, 141, 134, 137, 133, 140, 150, 139, 144, 141, 151, 143, 136, 135, 140, 133, 155, 140, 136, 139, 149, 139, 138, 137, 139, 137, 144, 135, 140, 131, 144, 132, 133, 137, 142, 137, 130, 137, 137, 130, 141, 142, 137, 137, 145, 149, 147, 141, 138, 141, 131, 138, 149, 138, 145, 142, 143, 134, 145, 152, 147, 128, 134, 139, 145, 150, 134, 131, 137, 143, 136, 136, 132, 137, 136, 142, 142, 131, 146, 135, 137, 142, 141, 137, 136, 129, 140, 130, 139, 135, 137, 134, 139, 131, 136, 145, 139, 135, 140, 137, 130, 132, 144, 140, 138, 148, 132, 144, 151, 141, 133, 131, 138, 146, 142, 147, 131, 145, 137, 137, 134, 136, 133, 143, 139, 141, 135, 147, 138, 134, 136, 133, 147, 137, 142, 148, 126, 139, 150, 138, 137, 133, 141, 141, 140, 143, 136, 140, 135, 139, 136, 138, 133, 146, 141, 143, 134, 148, 137, 136, 139, 142, 128, 136, 146, 142, 134, 133, 136, 139, 135, 140, 133, 128, 147, 140, 139, 131, 135, 136, 145, 137, 136, 139, 135, 140, 130, 145, 130, 144, 131, 140, 118, 135, 135, 138, 137, 135, 144, 144, 149, 143, 136, 142, 130, 139, 130, 136, 136, 137, 138, 132, 144, 127, 130, 128, 142, 136, 138, 135, 149, 133, 131, 144, 141, 137, 134, 138, 139, 140, 137, 137, 139, 134, 139, 137, 141, 135, 136, 150, 142, 137, 148, 138, 137, 136, 153, 140, 131, 134, 140, 139, 137, 139, 128, 137, 134, 138, 139, 151, 133, 141, 131, 134, 136, 133, 142, 141, 136, 141, 141, 142, 147, 153, 137, 147, 139, 143, 133, 138, 138, 139, 138, 133, 145, 139, 135, 135, 136, 141, 145, 128, 137, 148, 140, 152, 144, 136, 134, 139, 131, 143, 142, 141, 137, 144, 131, 140, 140, 145, 138, 142, 141, 138, 138, 138, 145, 128, 149, 137, 143, 140, 131, 134, 140, 133, 137, 141, 133, 132, 137, 138, 146, 135, 140, 147, 143, 136, 132, 136, 140, 141, 136, 149, 131, 142, 138, 136, 129, 127, 145, 142, 138, 142, 145, 139, 139, 137, 143, 139, 129, 136, 146, 135, 133, 139, 143, 145, 139, 135, 139, 142, 146, 139, 138, 134, 138, 127, 129, 136, 138, 132, 141, 141, 135, 137, 131, 141, 143, 140, 141, 145, 136, 147, 135, 141, 141, 139, 152, 138, 137, 143, 144, 147, 136, 138, 133, 129, 133, 147, 138, 146, 144, 129, 139, 140, 139, 135, 145, 146, 139, 136, 148, 137, 146, 143, 142, 137, 147, 135, 133, 139, 132, 132, 137, 139, 134, 144, 143, 130, 137, 137, 131, 142, 143, 134, 142, 141, 146, 137, 147, 131, 133, 132, 138, 141, 143, 145, 148, 135, 138, 125, 137, 140, 144, 135, 151, 139, 143, 138, 138, 130, 141, 150, 140, 140, 129, 145, 133, 132, 138, 138, 128, 133, 144, 139, 149, 137, 137, 140, 146, 146, 131, 146, 140, 135, 140, 145, 141, 144, 136, 139, 138, 138, 144, 143, 152, 143, 133, 143, 137, 138, 145, 142, 141, 138, 139, 144, 137, 129, 138, 139, 150, 139, 137, 140, 139, 138, 131, 136, 142, 145, 148, 134, 141, 138, 149, 140, 143, 138, 152, 137, 144, 135, 142, 142, 139, 144, 130, 141, 138, 132, 130, 136, 138, 141, 141, 139, 135, 138, 142, 139, 143, 144, 135, 135, 136, 141, 138, 135, 152, 135, 134, 136, 136, 140, 134, 146, 144, 145, 150, 147, 148, 138, 132, 140, 140, 145, 142, 137, 139, 142, 144, 145, 135, 138, 154, 139, 137, 143, 142, 137, 133, 138, 141, 136, 138, 144, 133, 142, 151, 142, 133, 134, 138, 135, 135, 136, 140, 138, 129, 135, 138, 135, 136, 136, 132, 135, 143, 140, 143, 136, 140, 137, 138, 137, 147, 149, 134, 133, 135, 139, 138, 137, 144, 135, 131, 139, 137, 140, 143, 138, 141, 136, 138, 138, 148, 138, 130, 146, 142, 133, 146, 138, 147, 145, 139, 140, 141, 144, 142, 140, 137, 134, 136, 138, 138, 134, 140, 133, 135, 137, 139, 135, 138, 136, 136, 139, 146, 141, 138, 149, 149, 141, 138, 135, 143, 141, 137, 152, 133, 141, 136, 137, 136, 143, 138, 138, 135, 143, 141, 142, 130, 138, 138, 136, 141, 140, 131, 145, 145, 145, 139, 137, 139, 136, 143, 137, 134, 134, 136, 144, 133, 141, 138, 139, 142, 143, 143, 131, 137, 144, 144, 138, 137, 142, 138, 144, 142, 147, 149, 138, 141, 143, 132, 138, 141, 142, 130, 133, 140, 144, 145, 142, 135, 136, 141, 137, 140, 138, 145, 138, 142, 137, 143, 133, 141, 140, 143, 133, 132, 138, 140, 151, 138, 142, 142, 137, 144, 139, 132, 131, 139, 136, 138, 133, 138, 134, 138, 140, 139, 140, 136, 131, 134, 140, 137, 140, 129, 130, 137, 136, 131, 138, 136, 142, 136, 141, 136, 140, 139, 141, 136, 138, 139, 147, 140, 144, 143, 136, 141, 151, 130, 135, 136, 141, 136, 143, 143, 141, 135, 135, 131, 134, 139, 129, 145, 138, 137, 136, 139, 133, 139, 138, 140, 150, 144, 140, 140, 138, 132, 137, 142, 138, 144, 142, 139, 143, 138, 146, 144, 140, 135, 132, 141, 139, 132, 139, 149, 134, 138, 138, 138, 137, 140, 142, 137, 130, 135, 142, 139, 141, 140, 137, 129, 132, 142, 146, 123, 158, 130, 135, 143, 146, 144, 135, 132, 133, 143, 132, 137, 144, 146, 136, 139, 127, 136, 142, 146, 139, 137, 138, 138, 129, 131, 140, 152, 137, 150, 144, 135, 136, 141, 134, 146, 133, 141, 138, 137, 131, 146, 142, 143, 134, 132, 143, 141, 136, 139, 139, 139, 132, 152, 130, 137, 143, 143, 138, 135, 139, 142, 132, 142, 140, 132, 141, 139, 140, 137, 140, 140, 137, 132, 134, 136, 132, 139, 142, 134, 142, 139, 141, 138, 141, 142, 148, 135, 138, 131, 139, 129, 141, 132, 136, 142, 133, 139, 141, 140, 147, 144, 136, 139, 133, 144, 128, 137, 141, 136, 140, 140, 136, 135, 139, 137, 134, 140, 145, 140, 139, 133, 144, 139, 145, 135, 131, 141, 143, 148, 140, 134, 137, 143, 133, 127, 139, 146, 135, 140, 138, 136, 142, 134, 138, 147, 139, 138, 146, 135, 140, 138, 144, 143, 142, 137, 139, 136, 140, 148, 135, 138, 140, 149, 146, 133, 141, 138, 148, 138, 129, 141, 135, 139, 136, 138, 129, 130, 138, 141, 136, 135, 129, 128, 135, 137, 135, 143, 135, 140, 140, 137, 143, 138, 133, 143, 132, 141, 142, 126, 133, 135, 151, 137, 141, 135, 132, 132, 135, 147, 145, 144, 143, 143, 134, 150, 139, 148, 140, 137, 143, 138, 133, 127, 134, 134, 138, 147, 138, 143, 134, 133, 133, 135, 146, 139, 133, 136, 144, 139, 138, 137, 130, 134, 146, 136, 146, 132, 129, 149, 145, 121, 150, 135, 136, 142, 138, 140, 137, 131, 142, 150, 136, 130, 143, 143, 148, 147, 122, 139, 142, 128, 142, 134, 137, 139, 134, 125, 149, 143, 139, 138, 129, 135, 133, 133, 145, 138, 142, 132, 137, 139, 157, 144, 131, 134, 152, 140, 131, 135, 137, 133, 137, 142, 133, 138, 148, 143, 145, 131, 139, 139, 139, 144, 143, 140, 137, 137, 142, 143, 142, 133, 144, 136, 135, 138, 139, 144, 135, 144, 141, 129, 140, 138, 139, 151, 139, 138, 147, 134, 129, 137, 139, 132, 135, 131, 134, 142, 132, 137, 144, 134, 135, 133, 136, 139, 130, 137, 137, 130, 138, 134, 130, 146, 132, 141, 142, 133, 138, 139, 134, 132, 136, 149, 146, 147, 134, 144, 141, 148, 140, 146, 135, 135, 133, 127, 140, 135, 137, 138, 134, 136, 145, 136, 140, 149, 135, 138, 139, 144, 131, 145, 135, 136, 141, 137, 139, 136, 136, 137, 139, 145, 127, 132, 142, 141, 135, 142, 141, 133, 135, 136, 145, 150, 135, 131, 160, 137, 132, 138, 144, 137, 143, 137, 139, 140, 137, 141, 149, 132, 129, 144, 145, 154, 135, 135, 148, 131, 138, 128, 143, 138, 141, 140, 139, 131, 138, 133, 155, 136, 160, 137, 134, 136, 136, 138, 142, 134, 134, 144, 138, 141, 133, 153, 142, 156, 136, 142, 134, 147, 143, 124, 130, 131, 140, 144, 147, 150, 141, 126, 143, 121, 130, 136, 133, 138, 131, 128, 146, 130, 157, 144, 146, 140, 141, 143, 144, 136, 141, 138, 142, 151, 139, 148, 134, 137, 144, 137, 130, 146, 146, 141, 137, 150, 150, 145, 149, 138, 137, 146, 137, 129, 147, 138, 154, 142, 134, 132, 136, 132, 125, 126, 141, 148, 142, 142, 139, 137, 136, 140, 142, 136, 127, 139, 136, 137, 136, 137, 142, 139, 131, 145, 133, 135, 143, 130, 137, 140, 130, 133, 133, 138, 146, 145, 130, 147, 148, 141, 145, 136, 138, 135, 130, 138, 131, 136, 137, 137, 145, 133, 146, 143, 135, 144, 142, 135, 139, 148, 145, 141, 145, 133, 129, 133, 144, 139, 129, 139, 141, 135, 121, 143, 126, 139, 133, 137, 137, 137, 142, 136, 134, 137, 135, 137, 136, 136, 142, 146, 140, 143, 149, 139, 142, 136, 134, 147, 139, 141, 137, 134, 133, 138, 139, 145, 143, 132, 150, 136, 145, 133, 128, 131, 135, 140, 134, 145, 142, 123, 149, 141, 139, 133, 132, 145, 142, 140, 146, 135, 145, 138, 147, 142, 139, 138, 144, 134, 134, 138, 132, 134, 144, 136, 133, 133, 131, 140, 144, 139, 140, 143, 139, 138, 157, 126, 132, 136, 132, 119, 145, 148, 144, 133, 135, 138, 134, 145, 137, 152, 154, 135, 143, 135, 149, 138, 146, 140, 140, 132, 143, 121, 140, 139, 132, 136, 137, 145, 131, 141, 129, 141, 145, 129, 139, 139, 134, 141, 134, 131, 137, 134, 141, 148, 140, 145, 145, 139, 136, 145, 131, 135, 129, 136, 141, 130, 137, 143, 141, 135, 142, 142, 137, 147, 137, 139, 132, 150, 138, 135, 130, 134, 139, 131, 125, 137, 141, 137, 133, 149, 144, 148, 143, 137, 140, 136, 138, 137, 141, 149, 141, 135, 148, 143, 143, 141, 144, 136, 143, 139, 142, 131, 138, 142, 130, 137, 145, 140, 132, 137, 136, 136, 143, 133, 132, 145, 130, 141, 153, 141, 147, 146, 130, 145, 133, 142, 137, 139, 138, 144, 143, 128, 150, 138, 143, 137, 145, 140, 136, 137, 135, 141, 140, 130, 137, 144, 143, 136, 129, 142, 142, 139, 147, 136, 133, 125, 144, 150, 128, 134, 137, 139, 129, 141, 135, 142, 134, 143, 138, 151, 136, 134, 150, 131, 149, 131, 133, 136, 136, 138, 147, 125, 130, 141, 138, 147, 128, 143, 133, 139, 136, 142, 141, 151, 140, 158, 136, 138, 137, 151, 148, 144, 134, 144, 147, 139, 137, 140, 141, 149, 142, 136, 134, 135, 146, 137, 139, 150, 132, 134, 136, 136, 146, 140, 134, 140, 136, 142, 138, 147, 141, 142, 145, 136, 153, 136, 129, 150, 133, 141, 131, 133, 140, 134, 140, 133, 136, 139, 138, 144, 142, 137, 121, 143, 139, 129, 132, 140, 134, 129, 136, 150, 128, 148, 142, 133, 137, 136, 153, 139, 143, 136, 130, 131, 136, 140, 132, 131, 137, 142, 138, 136, 135, 145, 139, 139, 135, 136, 133, 134, 130, 132, 142, 148, 149, 149, 129, 133, 142, 152, 126, 133, 133, 142, 133, 152, 139, 137, 148, 131, 140, 145, 140, 137, 145, 136, 144, 145, 154, 140, 147, 144, 140, 142, 145, 153, 132, 143, 138, 135, 141, 134, 126, 145, 141, 142, 133, 129, 139, 135, 133, 132, 140, 139, 125, 138, 149, 137, 128, 151, 147, 137, 141, 139, 127, 149, 151, 132, 141, 142, 134, 144, 141, 134, 147, 148, 134, 139, 136, 141, 140, 138, 146, 141, 139, 141, 147, 147, 141, 134, 140, 130, 136, 137, 140, 147, 139, 135, 135, 131, 142, 130, 139, 151, 135, 136, 140, 140, 132, 142, 134, 138, 133, 134, 150, 147, 142, 128, 142, 143, 142, 138, 144, 137, 149, 147, 143, 136, 135, 127, 136, 137, 129, 129, 131, 130, 132, 135, 143, 136, 150, 134, 139, 133, 146, 140, 145, 140, 144, 147, 132, 144, 137, 137, 145, 147, 133, 131, 147, 141, 156, 140, 131, 130, 142, 151, 133, 141, 142, 142, 146, 129, 145, 141, 149, 148, 137, 126, 127, 141, 139, 146, 149, 135, 152, 131, 143, 134, 142, 149, 136, 141, 149, 134, 142, 126, 141, 136, 143, 137, 129, 133, 137, 139, 142, 136, 139, 134, 133, 139, 138, 140, 139, 147, 134, 133, 144, 153, 123, 138, 151, 153, 139, 142, 148, 134, 133, 150, 145, 132, 137, 137, 137, 137, 134, 138, 138, 135, 136, 146, 149, 130, 150, 135, 131, 136, 131, 153, 135, 144, 155, 125, 146, 143, 140, 133, 142, 142, 138, 123, 135, 132, 132, 137, 131, 140, 140, 142, 144, 141, 138, 140, 141, 142, 142, 141, 136, 148, 131, 146, 131, 136, 137, 134, 144, 151, 133, 153, 140, 139, 138, 147, 136, 139, 141, 136, 143, 131, 141, 140, 134, 148, 138, 132, 147, 129, 145, 145, 137, 133, 136, 140, 132, 126, 138, 137, 141, 134, 136, 147, 126, 138, 139, 142, 139, 146, 150, 137, 134, 136, 134, 149, 138, 138, 137, 143, 132, 149, 140, 147, 152, 146, 136, 134, 137, 137, 143, 133, 152, 135, 150, 139, 146, 151, 139, 145, 142, 139, 127, 138, 138, 129, 134, 134, 132, 142, 134, 150, 133, 140, 147, 142, 137, 146, 141, 143, 144, 138, 148, 138, 138, 139, 128, 151, 137, 149, 129, 138, 140, 141, 148, 131, 127, 131, 132, 137, 145, 135, 132, 131, 130, 137, 135, 138, 143, 140, 132, 133, 137, 149, 144, 138, 131, 139, 131, 142, 142, 143, 136, 140, 139, 138, 147, 132, 133, 131, 140, 139, 145, 143, 138, 138, 144, 144, 139, 139, 147, 134, 142, 138, 142, 142, 145, 146, 135, 144, 145, 133, 141, 143, 143, 135, 138, 135, 135, 134, 132, 140, 151, 143, 139, 127, 149, 142, 145, 139, 139, 134, 153, 140, 140, 133, 141, 139, 139, 143, 130, 139, 142, 133, 145, 134, 138, 129, 135, 144, 130, 143, 135, 135, 143, 132, 140, 140, 137, 148, 141, 136, 140, 138, 142, 139, 134, 138, 142, 148, 133, 141, 142, 143, 146, 134, 137, 150, 127, 133, 141, 132, 143, 143, 142, 150, 150, 137, 145, 130, 136, 133, 152, 130, 135, 135, 138, 144, 136, 143, 134, 145, 145, 135, 147, 141, 133, 129, 139, 140, 134, 141, 133, 139, 140, 132, 143, 149, 140, 139, 151, 140, 140, 152, 141, 141, 139, 134, 141, 132, 130, 142, 143, 136, 146, 139, 147, 149, 130, 137, 161, 132, 138, 132, 137, 144, 135, 143, 151, 133, 145, 139, 132, 131, 137, 147, 135, 135, 137, 145, 136, 135, 141, 148, 146, 142, 143, 142, 152, 139, 147, 146, 136, 131, 144, 147, 132, 139, 143, 138, 137, 132, 134, 133, 145, 140, 136, 140, 143, 147, 145, 127, 150, 136, 142, 142, 136, 149, 146, 141, 130, 147, 148, 136, 141, 139, 138, 139, 132, 134, 133, 139, 139, 138, 146, 140, 149, 136, 137, 140, 133, 141, 130, 137, 130, 135, 137, 133, 145, 147, 137, 135, 145, 136, 146, 139, 132, 152, 148, 136, 136, 134, 133, 133, 143, 140, 134, 146, 146, 137, 138, 137, 139, 140, 148, 143, 136, 146, 132, 139, 137, 143, 143, 148, 142, 140, 142, 140, 138, 137, 133, 129, 146, 132, 139, 136, 140, 140, 133, 135, 143, 147, 153, 136, 135, 136, 137, 143, 138, 139, 143, 145, 130, 133, 133, 135, 146, 145, 131, 145, 138, 135, 130, 135, 146, 139, 140, 142, 136, 134, 130, 135, 141, 147, 135, 135, 139, 145, 136, 130, 144, 144, 138, 139, 138, 138, 138, 147, 124, 144, 134, 140, 142, 130, 141, 145, 141, 134, 149, 131, 132, 135, 142, 138, 132, 135, 134, 139, 133, 134, 132, 146, 137, 145, 142, 140, 140, 127, 142, 131, 137, 137, 138, 137, 139, 140, 130, 131, 142, 147, 138, 148, 155, 126, 139, 126, 135, 148, 137, 139, 141, 143, 130, 132, 141, 136, 136, 138, 139, 141, 137, 142, 129, 136, 132, 141, 138, 136, 141, 143, 143, 130, 144, 125, 138, 139, 137, 138, 137, 134, 149, 145, 144, 137, 137, 137, 133, 139, 136, 135, 134, 144, 143, 142, 140, 143, 143, 144, 135, 140, 135, 135, 138, 131, 145, 133, 139, 146, 148, 144, 143, 134, 128, 137, 148, 144, 143, 131, 136, 138, 134, 142, 138, 137, 131, 144, 131, 135, 145, 127, 135, 138, 136, 142, 137, 132, 143, 137, 126, 134, 134, 143, 140, 136, 140, 149, 136, 138, 137, 132, 140, 139, 139, 143, 134, 148, 137, 144, 140, 137, 147, 143, 148, 136, 135, 135, 134, 131, 136, 137, 138, 137, 141, 135, 130, 135, 129, 153, 141, 145, 149, 151, 137, 143, 131, 138, 133, 145, 140, 132, 136, 132, 150, 143, 141, 143, 138, 133, 140, 146, 141, 144, 140, 139, 141, 130, 139, 135, 133, 132, 135, 137, 145, 142, 134, 142, 136, 143, 132, 148, 150, 142, 123, 139, 129, 147, 135, 145, 140, 141, 138, 128, 134, 134, 138, 136, 128, 138, 134, 139, 140, 135, 135, 133, 135, 138, 131, 144, 131, 130, 142, 131, 138, 143, 134, 140, 138, 134, 135, 140, 143, 132, 133, 129, 135, 142, 146, 143, 139, 141, 142, 135, 141, 144, 138, 145, 132, 136, 138, 135, 131, 126, 137, 134, 131, 131, 146, 140, 140, 143, 143, 133, 131, 140, 143, 149, 144, 144, 143, 141, 145, 145, 141, 137, 140, 134, 130, 132, 130, 134, 147, 143, 135, 144, 134, 137, 142, 140, 140, 144, 136, 140, 135, 134, 138, 135, 151, 141, 135, 140, 136, 134, 145, 145, 134, 143, 136, 147, 136, 143, 143, 138, 131, 136, 144, 144, 146, 142, 139, 133, 138, 156, 139, 145, 142, 132, 135, 150, 138, 135, 130, 137, 139, 138, 149, 149, 135, 136, 145, 140, 141, 147, 138, 141, 131, 140, 127, 137, 146, 139, 140, 134, 130, 139, 135, 136, 139, 132, 138, 147, 139, 133, 140, 140, 132, 144, 133, 143, 126, 148, 137, 132, 147, 145, 138, 141, 139, 142, 124, 129, 135, 125, 147, 125, 133, 137, 135, 149, 131, 135, 147, 135, 145, 139, 140, 154, 138, 141, 140, 142, 132, 138, 141, 137, 142, 142, 146, 130, 146, 147, 137, 141, 143, 135, 147, 138, 140, 145, 142, 146, 135, 135, 129, 136, 138, 128, 128, 133, 147, 152, 136, 144, 144, 142, 133, 135, 140, 139, 144, 133, 135, 134, 146, 145, 139, 130, 130, 129, 151, 136, 140, 136, 123, 146, 147, 135, 124, 130, 138, 135, 130, 116, 143, 141, 149, 135, 144, 134, 144, 143, 138, 145, 143, 150, 129, 144, 150, 139, 140, 133, 132, 146, 143, 134, 147, 133, 145, 139, 136, 148, 112, 128, 141, 134, 149, 151, 132, 139, 129, 136, 154, 142, 140, 136, 147, 133, 143, 149, 136, 146, 138, 134, 142, 133, 147, 140, 139, 111, 145, 127, 131, 136, 139, 138, 131, 131, 139, 127, 143, 121, 141, 132, 138, 141, 149, 148, 157, 137, 131, 138, 129, 139, 135, 142, 131, 149, 146, 143, 144, 138, 139, 154, 122, 146, 133, 135, 133, 140, 142, 137, 146, 147, 130, 132, 140, 144, 125, 135, 134, 136, 130, 141, 148, 131, 143, 141, 137, 132, 140, 141, 138, 146, 134, 149, 136, 138, 128, 142, 137, 129, 149, 132, 141, 136, 141, 134, 144, 143, 143, 149, 132, 141, 131, 140, 138, 140, 131, 138, 130, 137, 145, 127, 141, 128, 136, 134, 147, 139, 150, 123, 129, 129, 141, 138, 142, 142, 130, 136, 141, 148, 140, 132, 140, 131, 131, 135, 138, 140, 133, 135, 135, 127, 139, 139, 150, 141, 132, 141, 136, 146, 143, 142, 136, 138, 146, 146, 126, 138, 129, 137, 140, 144, 135, 144, 128, 142, 147, 143, 140, 140, 139, 140, 136, 135, 120, 133, 132, 142, 137, 134, 136, 146, 135, 139, 143, 133, 149, 143, 140, 128, 141, 146, 141, 139, 141, 143, 145, 141, 137, 119, 135, 147, 144, 144, 137, 144, 140, 148, 142, 140, 131, 128, 132, 138, 139, 133, 162, 130, 143, 142, 139, 140, 140, 142, 135, 142, 133, 143, 124, 137, 134, 137, 131, 121, 127, 146, 144, 138, 133, 141, 135, 141, 131, 138, 131, 146, 140, 142, 140, 142, 132, 145, 138, 144, 163, 142, 135, 138, 140, 136, 130, 135, 137, 135, 138, 132, 147, 143, 136, 136, 142, 144, 142, 150, 139, 134, 131, 150, 140, 131, 143, 143, 142, 142, 146, 139, 154, 138, 138, 138, 132, 131, 146, 142, 131, 139, 144, 139, 135, 142, 146, 143, 135, 142, 134, 141, 139, 145, 137, 128, 137, 143, 128, 147, 143, 143, 138, 144, 142, 144, 129, 120, 141, 127, 136, 132, 136, 139, 131, 134, 149, 140, 131, 132, 116, 135, 140, 132, 135, 145, 137, 135, 139, 132, 145, 136, 140, 136, 141, 141, 134, 148, 143, 138, 139, 136, 136, 137, 145, 124, 142, 132, 143, 139, 138, 137, 140, 142, 137, 138, 147, 136, 137, 136, 131, 125, 127, 143, 141, 140, 122, 151, 130, 133, 135, 142, 141, 145, 138, 133, 127, 142, 141, 140, 136, 148, 136, 146, 137, 144, 138, 139, 145, 136, 143, 134, 127, 133, 142, 140, 131, 137, 147, 149, 127, 134, 150, 143, 127, 129, 148, 154, 146, 142, 145, 140, 122, 137, 149, 146, 134, 146, 135, 137, 128, 138, 142, 140, 129, 150, 134, 131, 137, 136, 133, 136, 134, 139, 143, 134, 139, 132, 136, 133, 138, 140, 139, 141, 137, 140, 137, 146, 132, 133, 137, 143, 144, 144, 129, 131, 137, 130, 140, 135, 144, 143, 140, 141, 142, 137, 151, 135, 143, 143, 139, 136, 131, 131, 128, 139, 146, 134, 135, 142, 138, 147, 139, 141, 153, 145, 132, 141, 138, 144, 139, 152, 138, 138, 131, 144, 138, 137, 151, 140, 138, 132, 138, 135, 138, 139, 131, 140, 149, 137, 142, 156, 142, 126, 145, 138, 134, 125, 145, 146, 135, 142, 137, 140, 145, 138, 147, 149, 136, 139, 142, 125, 143, 131, 141, 134, 138, 133, 141, 143, 139, 132, 130, 131, 144, 141, 146, 137, 132, 133, 139, 138, 142, 132, 140, 137, 136, 142, 137, 150, 144, 137, 141, 143, 143, 127, 137, 140, 144, 139, 147, 127, 140, 138, 142, 135, 138, 139, 151, 137, 144, 133, 141, 133, 150, 149, 141, 146, 148, 133, 136, 126, 132, 134, 151, 142, 140, 135, 141, 133, 131, 159, 139, 134, 136, 136, 143, 132, 144, 133, 140, 133, 138, 136, 137, 137, 146, 135, 133, 135, 142, 134, 141, 139, 141, 148, 129, 153, 137, 135, 140, 132, 131, 139, 137, 142, 137, 142, 141, 130, 138, 145, 150, 135, 135, 135, 135, 136, 144, 136, 133, 135, 135, 129, 144, 133, 141, 146, 136, 140, 142, 142, 145, 131, 141, 142, 146, 152, 127, 138, 134, 134, 132, 140, 131, 140, 148, 134, 145, 138, 144, 150, 141, 139, 139, 142, 143, 153, 138, 134, 145, 134, 135, 141, 136, 143, 141, 144, 134, 137, 145, 140, 144, 139, 134, 130, 145, 133, 136, 143, 142, 126, 128, 141, 136, 138, 134, 148, 136, 135, 142, 133, 140, 132, 137, 136, 144, 140, 131, 130, 137, 139, 135, 140, 137, 136, 137, 137, 137, 142, 146, 141, 138, 131, 131, 139, 145, 138, 143, 142, 143, 141, 142, 139, 141, 148, 135, 133, 144, 143, 143, 143, 136, 143, 141, 135, 142, 148, 133, 142, 135, 150, 141, 134, 144, 148, 139, 132, 134, 139, 135, 141, 133, 136, 140, 145, 136, 132, 139, 142, 138, 143, 136, 135, 140, 142, 129, 141, 137, 130, 140, 151, 139, 136, 134, 136, 145, 133, 125, 131, 141, 133, 145, 141, 136, 141, 136, 148, 136, 138, 139, 141, 137, 139, 142, 134, 132, 146, 132, 149, 131, 148, 136, 139, 143, 127, 138, 140, 139, 141, 135, 137, 145, 142, 145, 147, 132, 118, 135, 133, 135, 137, 140, 130, 143, 138, 135, 134, 136, 134, 133, 134, 142, 134, 139, 138, 148, 137, 131, 142, 134, 145, 136, 141, 148, 144, 137, 135, 144, 145, 146, 131, 133, 128, 132, 138, 136, 134, 130, 133, 140, 140, 137, 148, 135, 137, 136, 135, 130, 139, 136, 139, 136, 135, 137, 129, 139, 130, 140, 136, 135, 137, 138, 136, 137, 138, 137, 140, 139, 125, 148, 141, 132, 135, 137, 140, 142, 142, 134, 139, 144, 136, 141, 134, 136, 133, 135, 136, 147, 140, 137, 134, 135, 138, 131, 141, 148, 150, 145, 143, 135, 134, 137, 145, 132, 138, 152, 135, 150, 139, 140, 139, 141, 141, 148, 140, 137, 145, 140, 136, 134, 144, 141, 144, 135, 139, 138, 141, 142, 129, 142, 132, 140, 140, 143, 143, 135, 129, 146, 138, 136, 141, 140, 146, 137, 143, 136, 130, 137, 140, 135, 139, 144, 144, 138, 143, 141, 141, 144, 141, 134, 139, 140, 141, 135, 135, 141, 141, 136, 142, 144, 137, 137, 140, 146, 139, 135, 134, 134, 141, 140, 148, 137, 139, 135, 145, 140, 135, 138, 143, 133, 141, 126, 134, 147, 132, 140, 126, 134, 141, 132, 127, 136, 139, 141, 139, 133, 140, 136, 137, 135, 130, 140, 139, 139, 144, 135, 134, 143, 138, 144, 137, 146, 123, 140, 140, 140, 146, 143, 145, 144, 140, 138, 138, 135, 134, 138, 138, 132, 140, 134, 137, 144, 146, 131, 135, 146, 141, 148, 148, 136, 139, 139, 137, 144, 143, 141, 134, 139, 145, 143, 133, 135, 150, 134, 144, 142, 137, 150, 146, 126, 138, 131, 134, 143, 148, 137, 139, 140, 142, 136, 145, 132, 130, 135, 138, 144, 136, 129, 140, 141, 132, 143, 130, 140, 144, 144, 145, 145, 135, 138, 135, 133, 118, 131, 138, 136, 140, 138, 139, 136, 140, 134, 134, 141, 140, 152, 143, 147, 149, 141, 137, 127, 142, 140, 137, 131, 137, 136, 138, 139, 139, 137, 135, 141, 126, 131, 138, 140, 145, 147, 139, 146, 151, 141, 155, 144, 137, 151, 142, 126, 138, 146, 131, 131, 141, 127, 130, 138, 134, 142, 145, 140, 128, 128, 143, 125, 137, 125, 138, 133, 154, 133, 142, 148, 130, 141, 139, 138, 145, 140, 135, 144, 132, 143, 138, 139, 131, 134, 139, 137, 139, 139, 144, 132, 142, 139, 144, 138, 134, 133, 137, 134, 156, 135, 129, 136, 141, 137, 142, 141, 140, 138, 138, 143, 133, 135, 137, 137, 128, 141, 131, 138, 140, 140, 141, 137, 137, 128, 142, 148, 150, 137, 134, 144, 137, 143, 133, 148, 141, 139, 142, 140, 143, 132, 143, 132, 140, 144, 138, 136, 127, 141, 142, 146, 131, 149, 142, 135, 144, 131, 141, 140, 147, 141, 150, 137, 140, 136, 136, 139, 140, 133, 142, 135, 146, 135, 147, 146, 134, 142, 143, 143, 143, 142, 135, 140, 132, 137, 148, 136, 140, 127, 145, 142, 138, 142, 143, 140, 144, 138, 134, 141, 138, 138, 139, 137, 148, 133, 140, 148, 136, 148, 140, 136, 129, 143, 139, 137, 138, 145, 140, 134, 144, 150, 135, 145, 137, 142, 140, 125, 144, 140, 138, 132, 137, 140, 138, 143, 142, 141, 141, 128, 142, 136, 148, 141, 143, 133, 145, 137, 136, 134, 148, 142, 142, 136, 143, 141, 139, 128, 133, 133, 141, 135, 149, 145, 138, 145, 134, 148, 139, 137, 145, 144, 143, 144, 134, 142, 143, 144, 135, 126, 140, 149, 151, 139, 137, 132, 142, 133, 136, 128, 145, 148, 138, 134, 128, 139, 139, 144, 132, 145, 136, 134, 143, 128, 132, 126, 138, 140, 137, 150, 141, 139, 141, 134, 131, 133, 138, 138, 128, 134, 133, 139, 137, 136, 144, 138, 132, 144, 141, 134, 134, 135, 140, 138, 137, 132, 138, 140, 141, 141, 136, 139, 124, 144, 148, 142, 139, 143, 147, 137, 138, 151, 146, 146, 146, 141, 138, 144, 137, 153, 135, 138, 161, 143, 143, 135, 140, 134, 139, 134, 136, 129, 134, 142, 128, 140, 136, 134, 127, 135, 139, 136, 144, 131, 131, 143, 137, 140, 147, 138, 143, 139, 145, 149, 138, 130, 141, 137, 135, 136, 144, 139, 138, 141, 138, 139, 142, 139, 134, 138, 133, 141, 138, 133, 134, 136, 147, 142, 128, 136, 140, 128, 142, 139, 142, 134, 131, 146, 135, 138, 136, 142, 147, 135, 129, 137, 135, 148, 146, 140, 137, 145, 137, 132, 142, 133, 145, 147, 137, 137, 142, 140, 134, 142, 138, 138, 132, 139, 141, 143, 135, 147, 133, 145, 139, 137, 142, 142, 139, 138, 136, 140, 142, 144, 139, 135, 150, 130, 135, 137, 137, 141, 137, 140, 137, 146, 134, 139, 133, 134, 129, 141, 131, 130, 141, 144, 138, 140, 137, 140, 146, 136, 139, 136, 143, 135, 137, 141, 138, 139, 145, 134, 138, 139, 139, 142, 153, 143, 144, 142, 136, 132, 138, 136, 138, 137, 134, 135, 147, 141, 139, 140, 142, 141, 145, 136, 134, 139, 128, 138, 139, 132, 141, 134, 139, 141, 138, 140, 138, 135, 135, 143, 141, 131, 134, 131, 145, 134, 136, 134, 150, 139, 140, 146, 140, 141, 135, 137, 145, 133, 140, 145, 143, 141, 134, 143, 144, 146, 134, 132, 146, 138, 151, 133, 137, 139, 134, 129, 143, 142, 135, 141, 136, 137, 148, 138, 132, 137, 144, 138, 134, 139, 135, 134, 136, 146, 147, 137, 136, 144, 137, 135, 141, 148, 133, 137, 141, 138, 138, 142, 136, 133, 132, 140, 136, 147, 137, 143, 141, 142, 130, 143, 140, 131, 136, 135, 140, 146, 136, 127, 137, 140, 131, 140, 140, 138, 138, 150, 139, 139, 137, 143, 140, 137, 141, 142, 139, 138, 136, 131, 139, 135, 140, 141, 140, 138, 138, 138, 135, 136, 146, 143, 142, 135, 140, 137, 147, 120, 143, 139, 134, 148, 129, 145, 139, 143, 138, 141, 141, 143, 138, 135, 137, 133, 135, 145, 145, 141, 146, 145, 145, 140, 142, 136, 143, 133, 137, 143, 134, 138, 133, 137, 135, 147, 137, 140, 129, 133, 137, 145, 138, 134, 140, 138, 143, 147, 132, 135, 140, 137, 143, 140, 140, 135, 137, 145, 142, 135, 133, 142, 144, 137, 137, 141, 150, 140, 140, 140, 136, 141, 123, 133, 135, 126, 136, 132, 142, 139, 130, 144, 137, 137, 133, 138, 139, 139, 141, 139, 134, 145, 136, 139, 136, 138, 142, 144, 138, 144, 142, 138, 138, 142, 135, 139, 137, 142, 147, 142, 138, 138, 141, 140, 133, 135, 135, 144, 136, 139, 139, 136, 146, 136, 137, 131, 138, 139, 135, 139, 137, 146, 140, 140, 145, 130, 148, 139, 141, 142, 135, 142, 140, 138, 134, 148, 137, 135, 141, 143, 136, 142, 141, 135, 142, 140, 138, 131, 133, 136, 135, 142, 143, 119, 144, 141, 131, 135, 144, 155, 139, 139, 140, 143, 135, 144, 134, 136, 140, 150, 120, 136, 134, 137, 142, 138, 146, 138, 142, 133, 142, 137, 141, 140, 148, 141, 138, 145, 144, 145, 135, 145, 133, 137, 135, 145, 130, 143, 140, 128, 143, 143, 142, 142, 142, 135, 132, 136, 151, 134, 140, 141, 138, 136, 135, 138, 140, 138, 144, 140, 130, 150, 137, 139, 147, 139, 141, 135, 137, 141, 130, 134, 130, 144, 128, 143, 143, 139, 135, 141, 132, 141, 130, 141, 147, 138, 145, 142, 138, 135, 143, 133, 139, 140, 151, 132, 141, 138, 139, 135, 141, 139, 133, 135, 142, 135, 135, 134, 136, 148, 135, 140, 126, 152, 138, 135, 142, 138, 145, 147, 137, 135, 138, 138, 146, 145, 136, 138, 141, 134, 139, 142, 137, 142, 146, 137, 142, 137, 142, 132, 133, 146, 150, 149, 144, 141, 142, 137, 138, 141, 137, 138, 133, 131, 149, 128, 135, 136, 130, 144, 144, 133, 138, 145, 143, 142, 139, 137, 134, 141, 143, 136, 134, 137, 154, 145, 143, 139, 135, 138, 141, 144, 140, 143, 150, 138, 139, 139, 138, 142, 138, 133, 143, 135, 141, 148, 143, 143, 135, 132, 147, 142, 139, 131, 140, 137, 140, 137, 137, 141, 139, 150, 136, 139, 133, 147, 151, 140, 140, 147, 144, 141, 138, 143, 141, 137, 147, 133, 134, 132, 132, 139, 140, 152, 154, 127, 138, 138, 139, 134, 143, 139, 148, 138, 142, 132, 138, 137, 142, 143, 134, 140, 144, 146, 141, 137, 139, 131, 139, 138, 126, 141, 143, 151, 136, 134, 140, 139, 141, 136, 139, 142, 140, 139, 141, 134, 134, 132, 118, 142, 137, 146, 144, 146, 132, 137, 125, 140, 140, 145, 135, 146, 147, 148, 140, 138, 137, 139, 148, 145, 145, 131, 138, 146, 139, 144, 137, 144, 131, 140, 138, 151, 144, 145, 148, 126, 137, 133, 138, 142, 139, 139, 152, 139, 133, 132, 146, 162, 131, 133, 135, 141, 148, 134, 135, 136, 126, 135, 140, 141, 142, 132, 133, 139, 147, 147, 140, 134, 138, 147, 141, 129, 138, 134, 139, 137, 140, 131, 141, 140, 138, 147, 140, 133, 140, 131, 157, 131, 138, 130, 140, 129, 145, 140, 143, 140, 128, 129, 142, 141, 134, 122, 135, 154, 142, 138, 138, 124, 130, 143, 130, 139, 140, 144, 131, 143, 140, 145, 137, 135, 142, 143, 138, 139, 145, 143, 141, 138, 131, 141, 146, 131, 111, 143, 136, 144, 125, 134, 139, 136, 141, 125, 146, 131, 127, 139, 135, 136, 145, 136, 134, 140, 135, 132, 132, 138, 133, 127, 135, 130, 145, 146, 135, 139, 140, 132, 135, 135, 144, 128, 148, 140, 136, 148, 140, 136, 143, 144, 140, 139, 138, 129, 139, 139, 145, 141, 134, 137, 143, 134, 136, 145, 140, 142, 151, 137, 132, 140, 142, 138, 140, 141, 138, 142, 138, 128, 140, 147, 135, 143, 143, 135, 119, 133, 145, 136, 132, 145, 138, 127, 142, 139, 136, 138, 135, 146, 138, 144, 129, 145, 140, 134, 135, 135, 137, 145, 132, 117, 138, 138, 140, 135, 128, 145, 139, 135, 141, 142, 144, 149, 146, 139, 145, 144, 133, 142, 151, 143, 144, 140, 133, 155, 130, 133, 145, 145, 125, 132, 134, 133, 134, 143, 137, 137, 138, 143, 139, 139, 150, 132, 134, 139, 134, 144, 141, 145, 139, 143, 137, 145, 148, 143, 145, 133, 135, 138, 142, 131, 150, 144, 146, 138, 137, 132, 132, 141, 131, 132, 141, 143, 137, 132, 141, 134, 140, 138, 145, 139, 139, 139, 147, 127, 149, 145, 140, 145, 141, 142, 139, 149, 136, 141, 142, 138, 129, 142, 140, 136, 135, 142, 137, 142, 139, 140, 135, 136, 118, 141, 135, 156, 136, 136, 134, 137, 140, 146, 133, 141, 120, 135, 135, 131, 148, 134, 150, 128, 133, 145, 138, 162, 160, 138, 133, 143, 142, 143, 133, 135, 133, 126, 134, 142, 132, 138, 142, 140, 134, 143, 143, 125, 143, 138, 135, 128, 136, 137, 146, 138, 137, 133, 137, 134, 136, 147, 134, 138, 138, 149, 135, 141, 142, 133, 136, 134, 147, 146, 128, 138, 145, 147, 141, 135, 144, 136, 137, 147, 148, 140, 142, 143, 136, 143, 133, 131, 137, 135, 135, 141, 139, 138, 153, 133, 147, 141, 145, 135, 133, 137, 127, 135, 141, 140, 141, 129, 136, 134, 140, 137, 134, 145, 143, 130, 141, 142, 140, 135, 143, 141, 138, 137, 151, 144, 137, 138, 131, 148, 142, 140, 143, 133, 147, 139, 138, 144, 149, 145, 142, 141, 138, 141, 140, 139, 132, 143, 138, 139, 143, 140, 136, 145, 138, 139, 151, 150, 134, 126, 137, 148, 135, 137, 138, 131, 147, 135, 143, 135, 137, 143, 135, 139, 131, 133, 142, 146, 129, 137, 138, 150, 135, 134, 127, 142, 132, 136, 144, 141, 150, 135, 130, 140, 137, 145, 156, 140, 141, 143, 138, 145, 137, 133, 144, 144, 142, 134, 142, 135, 132, 144, 142, 132, 133, 141, 135, 144, 146, 138, 142, 149, 139, 135, 132, 136, 147, 140, 140, 139, 146, 145, 136, 136, 147, 137, 142, 129, 148, 140, 142, 124, 137, 139, 142, 128, 140, 150, 141, 134, 139, 136, 127, 133, 142, 142, 138, 136, 138, 137, 131, 133, 131, 143, 132, 138, 133, 144, 137, 135, 139, 143, 140, 143, 133, 135, 139, 140, 138, 132, 142, 139, 146, 142, 145, 141, 148, 144, 147, 142, 145, 133, 145, 142, 141, 146, 129, 147, 136, 142, 133, 143, 133, 135, 141, 136, 141, 147, 140, 144, 133, 148, 138, 132, 142, 132, 151, 135, 139, 134, 136, 131, 149, 138, 145, 144, 145, 146, 139, 135, 140, 133, 139, 133, 128, 127, 136, 133, 145, 145, 142, 129, 141, 139, 138, 139, 137, 134, 133, 142, 142, 133, 146, 140, 141, 139, 139, 139, 134, 132, 133, 140, 142, 133, 147, 156, 139, 143, 143, 139, 137, 144, 146, 132, 136, 137, 126, 129, 143, 139, 137, 133, 136, 139, 134, 137, 139, 137, 134, 147, 139, 133, 139, 140, 145, 140, 139, 147, 134, 146, 144, 130, 138, 142, 139, 140, 135, 131, 140, 141, 132, 133, 139, 141, 123, 149, 142, 141, 143, 137, 146, 139, 142, 139, 136, 146, 143, 137, 138, 143, 142, 142, 135, 133, 133, 134, 143, 141, 128, 136, 137, 140, 137, 149, 131, 140, 137, 144, 137, 137, 143, 135, 143, 132, 137, 144, 133, 139, 139, 135, 131, 143, 142, 131, 138, 131, 145, 141, 126, 134, 151, 131, 125, 147, 139, 135, 139, 133, 144, 153, 147, 129, 134, 137, 144, 158, 146, 149, 134, 140, 138, 131, 130, 149, 135, 141, 143, 137, 138, 142, 138, 136, 135, 145, 136, 132, 136, 154, 135, 145, 140, 138, 137, 135, 134, 136, 135, 137, 135, 142, 141, 148, 142, 134, 137, 135, 132, 138, 140, 145, 140, 131, 142, 139, 127, 133, 135, 142, 140, 130, 139, 137, 140, 140, 141, 136, 139, 141, 143, 139, 138, 128, 135, 157, 145, 140, 158, 136, 140, 149, 130, 144, 138, 136, 151, 142, 190, 148, 132, 128, 131, 133, 141, 131, 129, 141, 149, 134, 135, 140, 136, 141, 135, 130, 139, 133, 138, 134, 140, 143, 147, 146, 144, 143, 140, 143, 141, 141, 148, 152, 141, 139, 136, 138, 138, 145, 134, 145, 129, 144, 139, 125, 142, 145, 145, 143, 136, 139, 144, 133, 137, 144, 133, 137, 144, 141, 138, 137, 147, 118, 133, 137, 137, 137, 130, 137, 138, 138, 126, 119, 135, 137, 142, 132, 141, 136, 138, 141, 137, 145, 142, 134, 136, 137, 138, 128, 135, 141, 128, 140, 141, 141, 140, 139, 126, 133, 139, 141, 146, 137, 134, 146, 152, 136, 138, 129, 136, 142, 138, 142, 136, 140, 137, 136, 145, 141, 146, 146, 136, 148, 138, 142, 136, 134, 133, 134, 138, 138, 142, 140, 139, 147, 151, 139, 136, 152, 141, 147, 144, 133, 143, 136, 142, 130, 151, 139, 142, 139, 141, 125, 138, 137, 139, 135, 129, 146, 143, 134, 138, 127, 144, 145, 134, 136, 135, 138, 144, 141, 138, 148, 138, 143, 141, 131, 145, 135, 147, 137, 135, 137, 145, 128, 142, 146, 138, 133, 139, 133, 141, 135, 128, 145, 143, 142, 145, 142, 129, 141, 140, 136, 134, 129, 134, 146, 133, 150, 138, 142, 138, 145, 135, 141, 141, 143, 135, 119, 134, 135, 136, 139, 141, 143, 155, 155, 137, 138, 141, 118, 135, 140, 147, 141, 120, 132, 143, 122, 133, 127, 150, 135, 133, 143, 144, 133, 138, 143, 142, 135, 137, 138, 140, 147, 138, 133, 147, 146, 123, 141, 133, 130, 140, 138, 139, 142, 142, 147, 142, 151, 136, 140, 135, 142, 142, 140, 133, 136, 141, 137, 141, 142, 131, 147, 139, 134, 149, 135, 139, 143, 141, 141, 146, 138, 141, 145, 141, 145, 143, 149, 125, 140, 134, 139, 144, 146, 140, 148, 142, 134, 140, 128, 136, 144, 139, 143, 142, 144, 133, 138, 149, 132, 147, 145, 133, 134, 140, 128, 136, 137, 145, 125, 139, 136, 136, 144, 132, 139, 133, 141, 137, 151, 135, 136, 138, 141, 135, 143, 139, 145, 142, 139, 168, 137, 144, 145, 138, 133, 141, 142, 143, 143, 136, 139, 130, 148, 154, 137, 145, 140, 134, 132, 137, 143, 135, 138, 152, 131, 137, 141, 132, 136, 139, 144, 144, 144, 139, 136, 138, 145, 125, 141, 139, 137, 137, 138, 140, 144, 134, 137, 133, 137, 147, 138, 145, 134, 141, 132, 142, 130, 134, 140, 138, 138, 143, 139, 133, 145, 140, 133, 143, 129, 143, 142, 128, 147, 135, 140, 135, 141, 139, 147, 137, 141, 137, 141, 140, 133, 135, 140, 148, 136, 149, 136, 137, 138, 144, 137, 138, 136, 133, 153, 131, 145, 135, 139, 140, 140, 147, 137, 133, 135, 129, 120, 138, 138, 139, 139, 150, 136, 140, 139, 135, 137, 139, 146, 140, 151, 135, 136, 145, 139, 151, 147, 135, 137, 141, 141, 146, 145, 136, 139, 142, 136, 145, 137, 136, 135, 132, 132, 149, 143, 138, 150, 144, 146, 136, 129, 140, 135, 137, 140, 139, 142, 147, 134, 142, 131, 141, 138, 137, 140, 134, 132, 138, 144, 133, 145, 142, 136, 128, 138, 143, 156, 145, 143, 145, 145, 129, 139, 139, 136, 138, 139, 140, 138, 150, 134, 131, 140, 140, 143, 145, 134, 152, 135, 141, 143, 137, 150, 139, 142, 144, 141, 134, 146, 152, 135, 130, 144, 127, 133, 145, 136, 140, 131, 135, 131, 146, 138, 136, 130, 137, 149, 141, 140, 139, 139, 137, 147, 135, 140, 138, 145, 142, 140, 143, 131, 139, 144, 142, 146, 134, 141, 138, 150, 139, 138, 134, 149, 141, 141, 150, 138, 144, 133, 145, 135, 143, 131, 155, 143, 141, 138, 141, 149, 135, 144, 126, 137, 130, 137, 134, 152, 135, 153, 143, 139, 135, 132, 129, 153, 141, 139, 137, 137, 138, 129, 140, 128, 139, 144, 136, 139, 137, 138, 135, 138, 130, 146, 146, 134, 144, 135, 140, 130, 143, 138, 151, 130, 135, 125, 146, 145, 131, 131, 135, 134, 140, 129, 129, 141, 136, 139, 142, 130, 138, 143, 143, 138, 140, 151, 149, 137, 140, 147, 135, 137, 134, 134, 133, 128, 139, 139, 139, 150, 142, 146, 132, 139, 146, 139, 132, 129, 138, 139, 131, 140, 140, 133, 136, 135, 143, 143, 134, 139, 143, 138, 144, 144, 142, 142, 141, 145, 142, 125, 138, 138, 135, 132, 143, 134, 140, 129, 139, 143, 146, 138, 138, 138, 141, 125, 145, 152, 131, 135, 143, 132, 135, 135, 133, 140, 145, 139, 140, 147, 152, 139, 147, 144, 143, 140, 124, 130, 129, 153, 137, 146, 136, 139, 131, 139, 124, 137, 158, 135, 136, 135, 141, 142, 141, 128, 154, 135, 144, 140, 132, 147, 146, 133, 141, 151, 132, 139, 136, 129, 148, 143, 139, 139, 132, 141, 133, 140, 143, 139, 130, 143, 148, 139, 134, 136, 131, 141, 135, 144, 147, 145, 133, 145, 137, 153, 132, 136, 129, 136, 136, 130, 135, 146, 140, 141, 138, 139, 143, 145, 139, 137, 133, 137, 140, 143, 148, 133, 143, 140, 140, 143, 144, 140, 133, 137, 138, 143, 133, 142, 141, 143, 144, 137, 140, 142, 143, 139, 133, 136, 132, 138, 141, 135, 131, 148, 141, 135, 134, 129, 142, 133, 130, 136, 134, 138, 143, 129, 136, 137, 143, 137, 134, 143, 126, 139, 149, 139, 127, 141, 131, 125, 132, 136, 148, 139, 134, 133, 143, 140, 139, 141, 143, 132, 144, 137, 145, 145, 136, 143, 136, 139, 135, 136, 138, 131, 140, 141, 136, 141, 139, 138, 138, 139, 141, 132, 143, 142, 138, 137, 140, 140, 133, 143, 142, 147, 144, 147, 133, 128, 136, 143, 136, 144, 140, 143, 131, 145, 144, 137, 129, 139, 146, 141, 130, 134, 137, 149, 135, 137, 133, 140, 140, 137, 140, 140, 147, 133, 137, 144, 135, 141, 143, 141, 142, 139, 143, 128, 139, 136, 132, 141, 136, 149, 135, 138, 143, 148, 148, 138, 141, 142, 142, 133, 130, 127, 144, 131, 139, 138, 144, 140, 129, 139, 137, 142, 145, 134, 138, 130, 142, 143, 140, 139, 142, 129, 139, 141, 140, 127, 140, 132, 137, 143, 144, 141, 130, 145, 138, 142, 138, 147, 148, 129, 145, 135, 138, 142, 148, 142, 140, 140, 139, 137, 134, 135, 134, 136, 134, 140, 141, 144, 136, 151, 135, 140, 141, 135, 148, 135, 136, 140, 143, 143, 137, 130, 139, 137, 134, 142, 135, 137, 140, 138, 138, 143, 142, 134, 136, 141, 130, 137, 143, 132, 137, 139, 137, 145, 136, 144, 138, 127, 134, 140, 143, 147, 136, 146, 131, 136, 139, 140, 142, 139, 131, 141, 144, 137, 138, 143, 141, 134, 135, 135, 141, 130, 135, 138, 141, 136, 137, 142, 137, 129, 143, 143, 145, 148, 142, 139, 139, 142, 138, 135, 137, 139, 146, 147, 136, 141, 138, 140, 142, 140, 135, 135, 136, 140, 139, 145, 134, 134, 141, 147, 136, 142, 142, 137, 134, 137, 137, 147, 130, 143, 136, 145, 137, 144, 139, 141, 141, 134, 135, 139, 141, 133, 142, 142, 136, 136, 144, 136, 135, 140, 135, 146, 150, 142, 138, 144, 138, 148, 139, 147, 135, 145, 150, 147, 144, 142, 143, 145, 136, 132, 141, 134, 140, 139, 143, 135, 138, 140, 130, 144, 150, 138, 137, 139, 138, 139, 137, 136, 146, 141, 142, 143, 135, 152, 150, 137, 134, 147, 141, 137, 137, 142, 138, 139, 138, 143, 138, 135, 134, 142, 131, 143, 140, 145, 138, 132, 141, 130, 138, 142, 143, 132, 133, 134, 143, 138, 140, 140, 137, 136, 128, 136, 136, 132, 141, 139, 133, 141, 146, 137, 144, 147, 140, 138, 136, 144, 138, 144, 141, 140, 147, 144, 136, 145, 138, 141, 134, 137, 134, 138, 141, 141, 136, 140, 141, 136, 141, 137, 135, 141, 141, 136, 141, 142, 144, 140, 144, 137, 138, 139, 147, 140, 136, 138, 144, 138, 143, 141, 137, 145, 144, 136, 130, 139, 149, 137, 137, 148, 150, 130, 134, 139, 136, 139, 135, 143, 134, 134, 135, 139, 144, 139, 135, 135, 137, 136, 138, 140, 149, 144, 140, 138, 132, 143, 141, 144, 137, 136, 146, 136, 139, 143, 139, 134, 136, 145, 137, 143, 139, 138, 131, 141, 139, 133, 135, 133, 134, 132, 137, 148, 139, 144, 138, 143, 142, 142, 144, 128, 142, 139, 142, 142, 134, 148, 131, 146, 138, 142, 154, 146, 135, 144, 139, 139, 145, 136, 135, 135, 136, 141, 138, 148, 139, 140, 141, 139, 138, 139, 130, 143, 139, 139, 132, 145, 131, 142, 145, 135, 142, 135, 139, 143, 132, 137, 141, 142, 139, 138, 145, 135, 136, 136, 141, 146, 142, 137, 142, 142, 147, 147, 140, 133, 142, 144, 138, 144, 132, 144, 146, 140, 135, 141, 140, 130, 149, 132, 142, 136, 135, 135, 130, 137, 132, 141, 143, 140, 147, 129, 134, 139, 135, 142, 139, 140, 133, 136, 136, 133, 130, 134, 136, 140, 138, 133, 143, 137, 126, 139, 143, 141, 140, 135, 140, 140, 138, 140, 140, 141, 135, 138, 143, 132, 144, 138, 141, 136, 139, 134, 142, 131, 140, 141, 145, 133, 135, 139, 140, 137, 140, 141, 132, 142, 134, 131, 136, 136, 138, 138, 146, 138, 143, 137, 138, 139, 141, 138, 140, 141, 133, 138, 136, 147, 139, 140, 141, 137, 142, 138, 138, 139, 125, 137, 138, 131, 133, 136, 141, 136, 139, 134, 144, 138, 134, 136, 134, 136, 129, 139, 134, 140, 144, 140, 136, 144, 133, 140, 137, 135, 126, 137, 143, 132, 130, 139, 148, 137, 144, 147, 146, 140, 139, 127, 142, 145, 132, 134, 138, 135, 143, 142, 140, 151, 144, 136, 140, 126, 142, 150, 144, 134, 145, 145, 142, 145, 128, 132, 141, 144, 144, 140, 127, 140, 131, 141, 136, 138, 135, 140, 147, 139, 147, 133, 145, 146, 136, 140, 134, 142, 144, 142, 139, 142, 140, 142, 141, 151, 142, 140, 142, 134, 144, 132, 137, 133, 140, 137, 137, 134, 138, 156, 138, 138, 141, 139, 133, 139, 140, 146, 139, 141, 132, 143, 136, 128, 128, 140, 139, 145, 134, 138, 151, 134, 137, 139, 137, 138, 139, 136, 137, 135, 150, 136, 144, 137, 138, 139, 134, 139, 135, 134, 144, 133, 133, 139, 129, 135, 140, 133, 133, 137, 145, 143, 139, 138, 136, 135, 145, 135, 152, 148, 133, 140, 146, 154, 127, 137, 141, 139, 135, 135, 138, 136, 145, 129, 136, 139, 143, 129, 135, 141, 137, 140, 141, 140, 135, 146, 129, 134, 135, 139, 140, 140, 136, 132, 133, 142, 142, 146, 135, 143, 149, 148, 146, 145, 135, 144, 137, 133, 137, 136, 143, 154, 129, 146, 138, 142, 137, 151, 139, 142, 141, 140, 153, 141, 140, 141, 133, 141, 144, 143, 136, 133, 137, 136, 142, 137, 142, 137, 146, 144, 141, 136, 144, 144, 132, 139, 136, 143, 141, 141, 135, 144, 141, 144, 144, 137, 135, 145, 140, 138, 138, 149, 129, 137, 148, 138, 137, 133, 128, 147, 134, 123, 134, 149, 135, 138, 139, 134, 136, 142, 141, 135, 137, 148, 148, 139, 144, 147, 144, 137, 137, 145, 157, 131, 146, 139, 150, 144, 145, 142, 132, 134, 148, 139, 134, 138, 144, 131, 136, 147, 132, 129, 128, 132, 142, 142, 134, 137, 142, 134, 140, 137, 141, 127, 133, 138, 138, 138, 141, 144, 141, 132, 140, 148, 136, 136, 121, 135, 132, 139, 150, 141, 151, 133, 142, 143, 134, 132, 146, 142, 135, 139, 137, 139, 144, 141, 137, 147, 142, 136, 136, 154, 138, 153, 149, 138, 132, 140, 140, 136, 133, 131, 143, 134, 146, 124, 138, 130, 139, 137, 135, 129, 144, 132, 137, 145, 139, 138, 137, 145, 132, 144, 134, 137, 135, 142, 131, 133, 129, 141, 139, 138, 140, 138, 147, 146, 145, 146, 137, 133, 126, 145, 139, 126, 142, 141, 137, 140, 120, 145, 133, 128, 133, 127, 141, 137, 142, 138, 119, 141, 142, 142, 149, 144, 141, 138, 142, 139, 138, 137, 146, 143, 145, 151, 139, 145, 137, 132, 138, 157, 143, 144, 137, 144, 140, 137, 131, 150, 148, 132, 138, 143, 131, 140, 143, 134, 142, 146, 137, 140, 136, 139, 128, 131, 156, 141, 147, 137, 145, 135, 143, 139, 144, 139, 139, 136, 135, 133, 139, 149, 134, 132, 140, 138, 133, 142, 135, 139, 135, 138, 144, 142, 137, 140, 148, 146, 141, 131, 156, 141, 128, 141, 146, 144, 143, 139, 130, 135, 133, 135, 144, 147, 141, 142, 155, 141, 140, 147, 130, 122, 138, 140, 137, 142, 148, 142, 142, 140, 135, 143, 146, 144, 141, 132, 125, 144, 145, 132, 135, 144, 136, 150, 140, 143, 138, 150, 143, 140, 141, 132, 129, 130, 137, 139, 131, 136, 139, 138, 146, 144, 152, 132, 147, 144, 130, 141, 131, 158, 145, 146, 139, 141, 143, 145, 132, 131, 148, 140, 152, 136, 137, 140, 143, 142, 142, 143, 135, 138, 138, 138, 132, 135, 135, 130, 140, 140, 146, 147, 134, 135, 144, 130, 141, 138, 140, 151, 133, 141, 142, 142, 147, 143, 141, 129, 138, 136, 134, 144, 135, 138, 138, 142, 147, 134, 149, 142, 137, 133, 147, 152, 142, 135, 131, 132, 137, 130, 147, 133, 136, 133, 140, 139, 137, 137, 144, 134, 138, 143, 149, 138, 132, 143, 127, 130, 140, 141, 142, 144, 149, 137, 141, 149, 133, 133, 137, 137, 141, 133, 126, 140, 138, 126, 138, 135, 146, 134, 147, 140, 134, 137, 140, 143, 131, 128, 143, 148, 144, 138, 141, 138, 133, 135, 136, 143, 135, 142, 147, 142, 145, 145, 136, 131, 133, 131, 136, 132, 141, 146, 142, 140, 138, 134, 142, 147, 132, 140, 138, 138, 136, 151, 138, 137, 136, 127, 137, 147, 152, 137, 137, 140, 142, 145, 143, 138, 136, 145, 128, 125, 136, 138, 143, 133, 134, 136, 134, 149, 141, 139, 130, 143, 141, 136, 144, 138, 134, 134, 131, 143, 139, 147, 146, 141, 139, 143, 143, 133, 142, 139, 143, 136, 139, 134, 129, 142, 126, 143, 136, 138, 139, 144, 143, 139, 141, 132, 140, 139, 133, 140, 136, 139, 136, 138, 143, 145, 134, 143, 139, 143, 138, 136, 129, 130, 136, 140, 144, 145, 138, 124, 128, 139, 126, 149, 135, 139, 126, 146, 138, 131, 141, 149, 137, 137, 137, 137, 141, 136, 134, 133, 132, 138, 135, 144, 145, 148, 129, 136, 148, 136, 124, 139, 131, 144, 141, 150, 131, 137, 138, 133, 146, 136, 149, 136, 139, 138, 140, 137, 131, 141, 140, 142, 131, 138, 141, 151, 128, 147, 137, 139, 132, 148, 147, 139, 130, 141, 142, 130, 140, 132, 135, 145, 135, 141, 139, 141, 134, 135, 136, 136, 132, 133, 135, 139, 141, 142, 135, 133, 140, 135, 149, 123, 142, 126, 142, 136, 127, 145, 136, 143, 135, 137, 132, 145, 139, 133, 140, 142, 130, 138, 134, 141, 136, 147, 137, 138, 157, 139, 132, 147, 130, 142, 141, 125, 132, 137, 143, 140, 138, 154, 141, 138, 138, 145, 145, 139, 139, 143, 143, 144, 140, 139, 142, 132, 140, 138, 132, 144, 139, 141, 145, 131, 125, 137, 142, 140, 132, 143, 144, 136, 147, 135, 136, 139, 142, 144, 154, 135, 140, 142, 140, 140, 138, 146, 133, 160, 133, 146, 139, 131, 143, 149, 144, 139, 146, 135, 134, 134, 143, 145, 142, 147, 127, 136, 133, 136, 132, 143, 141, 143, 149, 143, 131, 152, 132, 131, 125, 144, 136, 135, 140, 143, 147, 145, 147, 148, 136, 139, 143, 143, 131, 127, 140, 142, 145, 142, 146, 137, 140, 142, 138, 143, 138, 143, 139, 142, 131, 147, 142, 152, 127, 138, 144, 126, 150, 132, 138, 125, 130, 146, 141, 133, 149, 149, 126, 137, 140, 140, 143, 134, 146, 129, 137, 140, 119, 139, 140, 142, 137, 144, 136, 144, 143, 147, 133, 137, 145, 142, 134, 129, 141, 145, 146, 144, 147, 136, 136, 135, 142, 135, 137, 145, 134, 144, 147, 137, 132, 139, 147, 137, 144, 144, 137, 145, 137, 141, 140, 124, 137, 137, 132, 130, 135, 149, 129, 129, 140, 138, 148, 129, 144, 139, 136, 138, 129, 136, 134, 131, 137, 134, 133, 139, 138, 127, 137, 131, 140, 151, 138, 141, 144, 135, 123, 133, 150, 141, 142, 140, 135, 140, 131, 141, 128, 146, 138, 140, 135, 147, 137, 141, 155, 137, 149, 133, 134, 130, 133, 140, 139, 138, 135, 133, 129, 143, 135, 141, 136, 151, 141, 144, 127, 145, 133, 133, 138, 133, 130, 137, 144, 130, 141, 135, 139, 145, 142, 140, 147, 134, 144, 132, 134, 138, 141, 148, 151, 135, 133, 137, 133, 144, 135, 142, 147, 135, 134, 134, 140, 143, 137, 142, 140, 135, 132, 138, 145, 139, 143, 148, 129, 140, 136, 160, 142, 127, 148, 142, 146, 137, 131, 145, 129, 142, 138, 139, 144, 145, 130, 138, 130, 141, 138, 137, 139, 136, 136, 143, 137, 142, 140, 139, 139, 139, 143, 147, 141, 144, 137, 140, 138, 148, 143, 135, 145, 129, 144, 142, 138, 139};
+ model->setOperandValue(op20, op20_init, sizeof(uint8_t) * 524288);
+ static int32_t op22_init[] = {-1545, -61, 1419, 5, 2635, -321, -328, 3912, 2334, -59, -101, 1276, 1113, 2002, 1613, 1308, -17, -396, -43, -62, 2007, -19, -125, 1476, -27, 1260, 1590, -75, -6, 3523, 1420, 1299, -774, -1530, -554, -129, -2190, -784, -1171, -3, -134, -230, -27, 1182, 3300, 1930, -411, -49, -94, -23, -36, -30, 1169, -27, -237, 1664, -565, 1174, -45, 28, 2203, -17, 1273, 58, 1187, -18, -682, -245, 2656, 1276, -108, 1105, 49, -68, -291, -19, -21, -489, 2582, -87, 1185, -199, 1284, -850, -17, 2146, -72, 1297, 1621, 1130, -180, -35, -85, 2066, 2562, -152, -1827, -42, 1028, -59, -840, 1214, -258, -1469, -183, -52, 594, -22, -566, 1221, -43, -266, -42, -221, -557, 1725, -288, 1191, 1499, -31, -8, 2688, 1922, -151, -23, -26, 1817, -38, 2333, -217, -36, -220, -32, -272, 1182, -500, -40, 1377, 1826, -165, -42, 1339, -45, -175, -78, 1453, 1249, -124, 2535, 1181, 1786, -280, -12, 2190, 2973, 2786, -413, 1543, -406, -14, 2848, 7, -19, 1, 1713, -70, -265, 1335, 1596, -290, -100, 1136, 2535, 1773, -37, 1144, 2705, 1136, 1205, 1272, 1387, -51, 1873, 1969, -12, 2094, 3066, 1969, 1289, -45, -8, 2502, 2786, 1105, 1551, 1981, 2627, 3081, -15, 1100, 1985, 1249, -25, -179, 1713, -244, 2367, 1327, -31, 123, 1423, -427, -169, -24, -18, -176, 1610, -67, 1188, -354, -238, 38, 2401, -271, -422, -20, -115, -52, -27, 3162, 1688, 1964, -35, -40, -409, 157, -71, -9, -58, 1293, -539, 1695, 1861, -32, -9, -38, 1676, -384, -10, 205, -29, -83, -166, -14, -81, -41, 2274, 2096, 1278, 1098, 244, 1422, 1572, 1228, 2095, -24, -30, 1142, 2738, -139, 1336, -46, -333, -163, -512, 1237, -33, -1660, 2404, -32, 1498, 1190, -145, -49, -395, 1185, -61, 2361, -41, 2082, -109, 2607, -235, -33, -167, 1189, 1188, -314, -29, -568, -130, 1345, 1997, -122, -28, 1207, 256, -110, -18, 1184, -589, -42, 1356, 41, -1982, 2849, -883, -103, 147, -27, -17, -196, 1818, 1469, 1599, -13, -1073, 1294, -12, 2646, -50, 1255, -327, 3014, 2135, 2550, -247, -28, 1238, 1212, 1671, -19, 1052, 1738, -105, 1303, -268, -35, 1355, 1814, -12, -730, 1479, -41, 1647, -27, -64, 41, -610, -121, 245, -22, -22, -59, 1953, -48, 1170, -58, -9, 1899, -57, -30, -29, 1056, -301, 2029, -155, -20, 1412, 1292, 1838, -31, 1245, -302, -251, -67, -158, 1510, -121, -57, 1619, 1118, 1201, -45, -172, 1129, -9, -57, -633, 3020, -916, -115, -684, 839, 2246, -36, -91, -119, 2149, 1071, -525, 2004, -161, -141, 2758, 1916, -60, 1712, -311, -27, -33, 1236, -27, -121, -38, -32, 1255, 403, 1364, -31, -12, 83, 1546, -434, 1281, 1813, 1415, 2115, -54, 1314, 1166, 1608, -372, -46, 3795, -32, 1344, -11, -52, -18, 1231, -49, -630, -173, 1212, -23, 1847, -246, 2286, -97, -377, -38, 1860, 1658, -26, -1871, 2654, -23, -316, 1200, 3050, -31, -13, -62, -243, -543, 1187, 1186, 1091, 1622, -534, -13, -38, 1221, 1091, -275, 1375, 1141, 1483, 2389, 1258, 2178, -18, 2310, -691, -631, -45, -138, 2301, -470, 1440, 6, 1328, -59, 1358, -167, -152, 1588, -47, -49, 1341, 1186, -31, -40, -74, -302, -65, 2264, -784, -512, 1788, 1634, -194, -35, 1181, -379, -28, 1442, -151, -366, -119, -326, -63, -29, -1860, -242, -37, -1718, 1132, -128, 2796, -23, -478, -29, 2903, 1428, 1900, 1299, 1980, 1233, 1791, -1752, -223, 2169, 1211, 1150, 3034, -25, -2, -181, 12, -701, -1022, -71, 1924, -52, -26, -86, -844, 2179, -270, 2549, 2897, 2351, 1851, -6, -84, -124, -36, -33, -448, -19, -390, -38, -19, -34, -66, -35, -41, -25, 1130, 2463, -210, -451, 2182, 1032, 1280, -463, -12, -50, -48, 1186, 3029, 1992, -54, -6, 1163, -260, -509, -26, -1304, -109, 1217, -45, -578, 1291, -49, 1633, -42, 2511, 2395, 2148, 1286, -240, -32, -69, 1531, 1257, -21, -28, -787, 1207, -75, -43, -264, 96, -409, -137, -17, 2352, 1032, 3063, 1832, -404, 2326, -49, 1208, 1195, 1702, 1087, -11, -43, 861, 93, -421, 1145, 1095, -329, 1177, 77, -197, -62, 1696, 2215, -27, 1203, -721, 1555, 2015, 1229, -1461, -673, -43, 2402, -199, -167, 1872, 1292, 2574, -259, -40, -193, 2517, -31, -889, 1603, -72, -22, -400, -912, -79, -375, -934, -104, 2156, 2018, -36, -38, 1238, -37, -70, 1819, -273, 2106, -254, 1120, -64, -1690, -311, 2554, -1976, 2133, -1308, -31, 1748, 1862, -355, -194, -2614, -174, 1154, -38, 46, -419, -159, 1207, -204, 1401, 2220, 1583, 1182, 1134, 1407, -25, -30, -131, -228, 2426, 1643, 1456, 1093, 1128, -63, -1351, -114, 1720, 2362, 1256, -97, -118, -96, 1174, 1367, -745, 2436, -6, -65, 1893, 1175, -23, -103, 673, -113, -842, -3, 1140, 1610, -2092, -47, -72, 1676, -49, 2328, -306, -938, -42, -856, -66, 2692, 1392, 1355, -137, 2016, -294, -92, -481, -121, -336, 2056, -72, 2112, -43, 3026, -53, -231, 2075, -125, 1433, 2117, -24, -224, -421, -36, 1184, -17, -70, 149, -29, 1280, 1587, 1366, -109, -26, -18, 2055, 2715, 3597, -273, 1102, -246, -247, 1334, -232, -50, -204, -303, -63, -54, -3137, 1291, 1196, -44, -20, -28, 1128, -24, -98, 2163, 1655, -554, 1071, -50, -38, -228, 1471, 1084, -31, -36, 2038, 1913, -297, -151, -19, -171, 1975, -131, 2, -177, 168, 2566, -45, 1693, 2296, -1618, 2628, 1592, 1989, -64, 2653, -64, -29, -842, -50, -46, 1326, 1955, -19, -136, -28, -68, 1288, -59, 1188, -19, 1664, 423, 1102, -68, -19, 3562, -199, 1291, 1548, 1634, -30, -113, 1106, -284, -67, 7, -55, 660, -37, -30, -2431, 2356, -35, -72, 1145, 1088, -90, -212, -30, 1028, -161, -34, 1206, 368, -44, 2171, 1528, -9, -624, 163, -726, -254, -24, 1454, -35, -80, 3136, -209, 1295, -142, 1388, -487, 1364, -92, -2, 2132, 1818, 1524, 2272, 2140, 1091, -441, 1164, -207, 2009, -20, -98, -33, -617, 2609, -61, -48, -28, 2726, -975, 171, -254, -20, 1850, -274, -4, -70, -49, -694, 1154, 2081, -71, 1110, 1137, -33, -8, -27, -127, 1982, -278, 2900, -43, 1912, 1069, -329, -157, 1517, -53, -10, -22, 98, -201, 1841, -46, -27, 1964, -546, -84, -583, -313, -13, -19, -280, 2469, -24, -312, 1569, -201, -448, 1225, 2411, -217, -327, -710, -21, 1759, -264, 1148, 2527, 1216, 1196, 2135, -36, 1483, 1608};
+ model->setOperandValue(op22, op22_init, sizeof(int32_t) * 1024);
+ static uint8_t op23_init[] = {184, 184, 169, 190, 165, 198, 186, 169, 166, 185, 182, 167, 167, 166, 166, 167, 193, 187, 187, 184, 166, 104, 184, 168, 191, 166, 167, 185, 189, 168, 167, 165, 185, 150, 193, 185, 181, 181, 185, 190, 196, 183, 193, 163, 167, 164, 194, 189, 186, 187, 183, 187, 166, 197, 186, 167, 183, 165, 186, 151, 168, 190, 165, 154, 165, 187, 154, 186, 168, 164, 184, 165, 192, 184, 185, 190, 186, 104, 166, 188, 167, 184, 165, 187, 192, 165, 185, 166, 166, 166, 185, 190, 184, 165, 168, 161, 186, 187, 166, 187, 183, 164, 155, 181, 185, 184, 191, 186, 151, 164, 188, 184, 187, 185, 186, 165, 194, 166, 165, 185, 187, 167, 165, 188, 196, 192, 164, 184, 169, 184, 185, 186, 185, 184, 165, 57, 188, 165, 167, 190, 189, 165, 187, 182, 184, 168, 166, 185, 164, 167, 165, 186, 190, 165, 165, 166, 182, 164, 187, 189, 164, 194, 188, 192, 169, 183, 184, 168, 170, 183, 185, 164, 166, 165, 187, 166, 166, 165, 164, 166, 168, 187, 167, 166, 200, 166, 164, 165, 167, 189, 163, 165, 165, 165, 166, 166, 166, 166, 190, 166, 168, 165, 190, 184, 166, 186, 166, 165, 193, 159, 166, 137, 194, 186, 185, 187, 169, 191, 167, 145, 188, 151, 167, 193, 158, 184, 187, 186, 194, 167, 166, 166, 193, 193, 45, 158, 186, 194, 186, 167, 186, 164, 164, 189, 186, 186, 165, 184, 200, 157, 191, 187, 193, 190, 189, 187, 166, 168, 167, 162, 188, 165, 166, 167, 167, 194, 187, 165, 167, 185, 168, 190, 194, 189, 143, 164, 160, 185, 169, 194, 167, 165, 193, 187, 187, 165, 187, 167, 197, 166, 165, 167, 188, 185, 185, 165, 166, 183, 185, 187, 185, 165, 165, 163, 185, 166, 186, 190, 203, 167, 187, 188, 166, 165, 188, 165, 192, 192, 160, 190, 195, 147, 166, 166, 162, 192, 184, 168, 161, 167, 188, 167, 183, 164, 165, 167, 183, 190, 165, 169, 167, 196, 166, 167, 184, 163, 182, 188, 165, 163, 192, 184, 170, 188, 168, 193, 187, 163, 191, 189, 163, 188, 186, 155, 167, 189, 166, 191, 187, 168, 187, 187, 189, 166, 187, 168, 185, 196, 166, 164, 167, 189, 162, 159, 186, 186, 186, 167, 185, 184, 166, 166, 163, 189, 157, 164, 193, 189, 183, 164, 184, 186, 182, 202, 166, 186, 188, 187, 165, 161, 192, 166, 185, 186, 166, 169, 187, 164, 187, 188, 190, 168, 187, 185, 188, 188, 169, 188, 166, 189, 150, 190, 166, 192, 168, 167, 166, 166, 186, 165, 166, 169, 184, 186, 168, 191, 165, 196, 196, 189, 165, 186, 184, 184, 163, 192, 165, 150, 168, 196, 163, 189, 166, 164, 188, 183, 166, 200, 187, 163, 166, 195, 195, 198, 184, 186, 165, 166, 165, 168, 183, 199, 189, 165, 166, 183, 167, 167, 164, 168, 167, 166, 189, 168, 200, 185, 192, 183, 168, 186, 166, 192, 169, 187, 164, 185, 186, 167, 186, 189, 167, 165, 189, 187, 185, 189, 162, 166, 181, 183, 166, 166, 194, 186, 166, 199, 199, 167, 196, 186, 186, 188, 153, 186, 150, 187, 190, 186, 167, 193, 165, 194, 189, 185, 165, 168, 168, 167, 167, 166, 166, 181, 184, 167, 163, 167, 163, 187, 194, 161, 194, 184, 195, 184, 165, 185, 192, 185, 184, 168, 92, 166, 168, 166, 166, 187, 184, 194, 189, 198, 188, 184, 187, 188, 155, 186, 187, 197, 189, 190, 165, 167, 184, 187, 167, 167, 168, 185, 193, 190, 190, 167, 165, 166, 186, 190, 163, 186, 194, 194, 181, 187, 167, 194, 185, 165, 188, 165, 191, 166, 168, 162, 166, 185, 188, 184, 166, 165, 207, 197, 145, 165, 186, 192, 185, 188, 182, 193, 195, 165, 165, 169, 166, 158, 165, 185, 165, 167, 167, 165, 186, 188, 185, 192, 187, 164, 166, 187, 165, 199, 185, 196, 168, 167, 189, 167, 185, 166, 166, 166, 184, 183, 188, 164, 186, 185, 165, 165, 166, 184, 191, 189, 166, 186, 185, 168, 186, 181, 152, 145, 194, 146, 156, 185, 167, 168, 191, 194, 165, 191, 185, 166, 185, 165, 188, 166, 149, 184, 195, 168, 153, 167, 185, 186, 168, 166, 186, 196, 182, 184, 163, 185, 255, 193, 185, 165, 192, 166, 167, 168, 166, 166, 166, 186, 188, 187, 181, 178, 169, 165, 165, 167, 187, 194, 186, 167, 167, 165, 195, 185, 187, 166, 168, 192, 165, 194, 119, 167, 167, 190, 195, 159, 187, 184, 162, 167, 166, 154, 191, 187, 165, 190, 169, 184, 185, 190, 190, 187, 166, 167, 167, 185, 169, 185, 192, 186, 186, 187, 166, 185, 167, 187, 164, 184, 187, 166, 185, 168, 164, 197, 192, 190, 192, 167, 186, 188, 191, 186, 166, 166, 165, 186, 187, 192, 167, 168, 137, 186, 163, 188, 182, 165, 184, 186, 185, 184, 186, 191, 177, 165, 163, 186, 189, 188, 165, 186, 187, 167, 168, 185, 163, 190, 185, 161, 164, 167, 190, 187, 166, 164, 185, 187, 188, 185, 166, 187, 165, 182, 190, 166, 189, 167, 167, 184, 166, 166, 167, 197, 166, 190, 185, 148, 186, 188, 166, 165, 192, 190, 190, 184, 168, 187, 168, 186, 167, 191, 164, 186, 188, 161, 163, 167, 166, 166, 198, 197, 163, 184, 184, 160, 185, 164, 191, 188, 182, 168, 188, 186, 166, 168, 183, 193, 187, 164, 187, 202, 165, 187, 190, 166, 169, 195, 185, 193, 189, 190, 185, 165, 184, 184, 166, 185, 167, 198, 166, 183, 168, 187, 200, 165, 168, 165, 164, 167, 165, 185, 165, 186, 166, 190, 186, 186, 183, 166, 187, 189, 187, 166, 187, 160, 186, 188, 165, 1, 189, 195, 190, 184, 165, 166, 188, 165, 167, 187, 190, 192, 188, 169, 192, 165, 190, 167, 164, 161, 184, 165, 186, 188, 188, 161, 186, 168, 192, 187, 167, 183, 192, 145, 0, 187, 200, 186, 166, 198, 187, 167, 183, 188, 164, 168, 183, 185, 178, 187, 164, 187, 163, 166, 169, 164, 166, 187, 166, 165, 180, 179, 170, 188, 166, 193, 182, 167, 167, 184, 181, 170, 169, 168, 169, 169, 197, 181, 184, 180, 168, 198, 181, 170, 184, 169, 169, 182, 186, 165, 170, 168, 179, 164, 183, 180, 184, 180, 178, 185, 184, 182, 184, 168, 164, 167, 187, 182, 180, 186, 181, 183, 169, 190, 179, 170, 180, 168, 182, 166, 167, 184, 168, 163, 168, 184, 170, 182, 165, 167, 180, 168, 185, 181, 180, 181, 181, 193, 169, 185, 169, 180, 168, 179, 187, 166, 180, 168, 169, 169, 180, 185, 182, 169, 169, 167, 179, 182, 169, 186, 180, 168, 163, 181, 181, 183, 177, 184, 158, 166, 184, 181, 182, 182, 182, 168, 191, 169, 170, 181, 182, 165, 169, 183, 184, 181, 167, 183, 170, 182, 180, 180, 180, 179, 168, 206, 183, 167, 169, 185, 181, 168, 183, 181, 181, 170, 170, 181, 167, 169, 167, 183, 183, 168, 169, 168, 180, 169, 183, 186, 168, 188, 184, 196, 171, 181, 182, 169, 172, 180, 182, 168, 170, 167, 183, 169, 165, 169, 168, 170, 169, 183, 169, 168, 192, 167, 169, 168, 169, 186, 168, 166, 168, 170, 168, 166, 167, 165, 193, 168, 169, 169, 185, 182, 168, 182, 169, 168, 186, 171, 168, 154, 184, 180, 181, 182, 170, 189, 169, 163, 131, 164, 168, 158, 166, 188, 181, 182, 190, 163, 167, 169, 190, 190, 198, 168, 182, 197, 181, 169, 183, 168, 168, 185, 183, 180, 169, 180, 186, 169, 186, 183, 184, 183, 186, 183, 165, 168, 169, 168, 182, 168, 168, 169, 169, 194, 183, 168, 169, 180, 169, 186, 185, 183, 187, 168, 168, 180, 170, 185, 170, 169, 186, 181, 182, 169, 183, 169, 186, 168, 178, 170, 181, 181, 182, 170, 168, 180, 180, 184, 181, 169, 169, 170, 182, 169, 179, 134, 198, 169, 180, 182, 169, 167, 180, 168, 160, 183, 168, 185, 184, 166, 167, 169, 167, 187, 179, 173, 171, 169, 185, 169, 181, 166, 169, 165, 182, 185, 168, 170, 170, 195, 169, 169, 181, 168, 180, 182, 168, 166, 187, 179, 171, 183, 171, 185, 183, 171, 183, 180, 168, 183, 186, 168, 170, 186, 169, 183, 182, 168, 180, 183, 184, 169, 179, 169, 180, 187, 169, 168, 168, 184, 167, 171, 180, 181, 182, 169, 179, 182, 167, 168, 169, 184, 168, 168, 183, 185, 179, 168, 180, 181, 182, 200, 170, 184, 182, 184, 169, 166, 157, 170, 182, 181, 167, 170, 184, 169, 183, 183, 184, 169, 182, 181, 193, 183, 170, 183, 168, 184, 155, 183, 169, 163, 169, 168, 169, 169, 182, 168, 169, 170, 181, 184, 163, 186, 168, 188, 190, 187, 169, 182, 179, 179, 168, 189, 168, 157, 169, 185, 171, 182, 169, 166, 183, 179, 167, 198, 181, 168, 169, 188, 190, 188, 181, 183, 169, 169, 169, 170, 180, 195, 187, 169, 168, 180, 169, 169, 168, 169, 169, 169, 184, 169, 174, 179, 188, 180, 170, 178, 169, 184, 170, 183, 168, 180, 179, 169, 182, 184, 170, 169, 186, 183, 181, 183, 170, 166, 181, 180, 167, 169, 172, 180, 170, 150, 189, 168, 184, 183, 182, 182, 165, 183, 162, 181, 184, 184, 169, 182, 170, 182, 182, 180, 168, 169, 169, 170, 170, 168, 169, 177, 180, 169, 167, 169, 169, 182, 189, 171, 182, 178, 162, 181, 167, 181, 187, 181, 181, 170, 181, 170, 166, 168, 167, 184, 180, 189, 183, 181, 182, 178, 181, 190, 168, 184, 181, 191, 182, 186, 169, 166, 180, 180, 168, 169, 170, 182, 186, 186, 185, 170, 166, 167, 186, 184, 167, 183, 157, 189, 180, 181, 170, 189, 181, 168, 184, 168, 185, 165, 168, 167, 168, 180, 185, 181, 169, 169, 197, 191, 192, 168, 182, 187, 181, 183, 180, 184, 193, 167, 169, 169, 169, 160, 168, 182, 168, 170, 168, 169, 183, 184, 179, 185, 182, 168, 170, 181, 167, 180, 180, 181, 171, 169, 183, 169, 179, 169, 168, 169, 179, 179, 182, 168, 182, 182, 168, 168, 168, 180, 184, 185, 165, 182, 181, 171, 183, 193, 164, 189, 181, 164, 169, 181, 168, 171, 187, 186, 168, 187, 180, 168, 181, 169, 184, 168, 167, 174, 184, 169, 169, 169, 177, 182, 169, 168, 179, 188, 181, 181, 167, 180, 207, 160, 183, 169, 185, 168, 167, 169, 169, 169, 169, 181, 182, 183, 180, 177, 170, 169, 169, 169, 183, 161, 181, 170, 169, 169, 185, 181, 183, 169, 171, 183, 168, 187, 180, 169, 168, 185, 186, 169, 183, 180, 170, 169, 169, 168, 184, 183, 167, 184, 170, 180, 180, 184, 138, 183, 167, 169, 169, 182, 169, 180, 185, 179, 183, 183, 168, 183, 167, 183, 164, 179, 180, 169, 181, 170, 168, 185, 186, 135, 187, 169, 183, 183, 182, 181, 169, 169, 169, 182, 184, 187, 168, 170, 186, 181, 168, 183, 181, 169, 179, 182, 180, 182, 181, 183, 182, 169, 170, 180, 184, 183, 169, 182, 182, 166, 170, 180, 168, 184, 185, 167, 167, 170, 187, 183, 169, 167, 181, 182, 182, 183, 169, 182, 168, 181, 183, 171, 181, 169, 169, 177, 167, 168, 167, 185, 164, 186, 183, 193, 182, 185, 169, 169, 186, 192, 188, 181, 169, 183, 169, 183, 168, 180, 169, 181, 184, 163, 167, 170, 169, 169, 187, 192, 168, 183, 179, 169, 181, 170, 182, 185, 177, 169, 181, 181, 169, 169, 180, 185, 182, 167, 182, 197, 170, 184, 186, 168, 171, 185, 180, 185, 182, 184, 182, 168, 180, 181, 164, 179, 170, 186, 169, 180, 171, 184, 205, 170, 169, 168, 167, 169, 169, 181, 169, 184, 168, 183, 182, 182, 180, 169, 181, 191, 183, 169, 171, 168, 182, 189, 167, 196, 183, 183, 185, 179, 168, 168, 181, 170, 169, 182, 183, 182, 182, 170, 161, 169, 186, 169, 167, 162, 180, 167, 183, 180, 182, 164, 181, 170, 186, 182, 170, 180, 183, 195, 204, 184, 187, 182, 169, 189, 181, 170, 183, 184, 168, 170, 181, 180, 178, 182, 169, 180, 167, 169, 169, 168, 168, 182, 169, 169, 183, 184, 169, 188, 166, 79, 185, 171, 167, 186, 182, 167, 167, 167, 167, 167, 92, 185, 186, 183, 168, 198, 184, 169, 193, 167, 167, 184, 185, 167, 167, 166, 184, 150, 190, 184, 181, 181, 184, 190, 196, 184, 190, 165, 168, 164, 192, 188, 185, 192, 183, 185, 167, 193, 185, 168, 183, 166, 186, 152, 169, 187, 165, 155, 165, 186, 155, 185, 167, 164, 183, 167, 191, 183, 185, 187, 186, 191, 167, 187, 168, 183, 165, 186, 186, 166, 184, 167, 167, 167, 183, 189, 182, 166, 169, 163, 186, 186, 167, 189, 182, 165, 190, 179, 184, 187, 189, 185, 194, 164, 186, 184, 188, 185, 185, 165, 196, 167, 166, 184, 187, 168, 166, 187, 193, 193, 166, 184, 170, 183, 184, 184, 184, 184, 167, 203, 187, 167, 168, 189, 187, 165, 187, 182, 182, 168, 167, 184, 165, 168, 166, 185, 188, 166, 166, 166, 182, 165, 186, 186, 165, 190, 187, 163, 170, 183, 183, 168, 170, 182, 185, 165, 166, 167, 186, 167, 167, 166, 165, 167, 169, 184, 168, 167, 193, 166, 165, 167, 169, 186, 165, 166, 166, 166, 166, 167, 166, 166, 137, 165, 168, 167, 190, 183, 166, 186, 167, 166, 192, 160, 167, 199, 192, 185, 185, 185, 170, 189, 168, 147, 188, 154, 167, 156, 160, 173, 185, 184, 192, 167, 165, 167, 185, 189, 206, 159, 186, 199, 185, 168, 184, 165, 166, 187, 186, 185, 167, 184, 192, 158, 194, 185, 192, 187, 187, 186, 167, 168, 167, 163, 187, 167, 167, 168, 168, 188, 186, 166, 168, 185, 169, 188, 193, 189, 184, 165, 162, 184, 170, 192, 168, 165, 192, 186, 187, 166, 186, 168, 194, 167, 188, 168, 187, 184, 184, 166, 166, 182, 184, 186, 183, 165, 166, 165, 185, 167, 185, 193, 201, 167, 186, 188, 167, 166, 187, 166, 159, 191, 162, 187, 194, 149, 168, 166, 163, 192, 183, 169, 162, 168, 187, 168, 183, 166, 166, 168, 182, 190, 165, 169, 168, 195, 167, 167, 183, 165, 183, 187, 166, 164, 190, 184, 170, 187, 169, 190, 186, 164, 190, 188, 164, 187, 189, 156, 168, 187, 167, 183, 187, 169, 183, 187, 187, 166, 186, 168, 184, 195, 167, 165, 168, 187, 162, 160, 185, 185, 184, 167, 184, 183, 167, 167, 165, 189, 159, 165, 192, 187, 183, 166, 183, 185, 181, 204, 167, 186, 187, 185, 166, 162, 153, 167, 185, 186, 167, 170, 186, 165, 188, 186, 194, 168, 186, 183, 147, 186, 169, 187, 166, 187, 152, 189, 167, 159, 168, 168, 166, 166, 185, 166, 167, 169, 184, 185, 168, 190, 166, 193, 199, 188, 166, 185, 183, 183, 164, 193, 167, 194, 168, 194, 165, 187, 167, 164, 185, 183, 167, 202, 186, 165, 166, 191, 195, 189, 183, 185, 166, 165, 166, 169, 182, 194, 188, 166, 167, 183, 167, 168, 165, 169, 168, 165, 188, 168, 122, 185, 196, 182, 168, 185, 166, 191, 170, 187, 166, 184, 186, 167, 186, 191, 168, 165, 188, 186, 184, 187, 163, 167, 180, 182, 166, 167, 131, 187, 167, 105, 189, 167, 195, 185, 185, 188, 156, 187, 155, 186, 188, 186, 168, 192, 166, 194, 188, 184, 166, 168, 169, 167, 167, 166, 167, 180, 183, 167, 164, 167, 164, 186, 193, 162, 192, 184, 156, 183, 166, 184, 190, 184, 183, 168, 195, 167, 168, 167, 167, 185, 183, 85, 188, 194, 186, 183, 187, 194, 155, 184, 187, 195, 187, 190, 166, 167, 184, 186, 167, 168, 168, 184, 191, 187, 191, 167, 166, 167, 185, 190, 165, 184, 144, 192, 181, 186, 167, 190, 183, 166, 186, 166, 186, 166, 168, 164, 167, 184, 187, 184, 167, 166, 205, 195, 142, 167, 185, 191, 184, 187, 183, 192, 193, 166, 166, 170, 167, 195, 165, 186, 166, 168, 167, 165, 185, 188, 184, 191, 185, 165, 167, 186, 167, 198, 184, 195, 169, 167, 187, 167, 183, 167, 168, 167, 183, 184, 186, 165, 186, 185, 166, 166, 167, 183, 188, 188, 166, 185, 185, 168, 184, 177, 155, 144, 192, 189, 156, 184, 168, 168, 197, 194, 165, 192, 185, 167, 184, 166, 187, 167, 151, 164, 194, 168, 155, 168, 185, 185, 168, 167, 184, 189, 182, 183, 164, 186, 215, 149, 185, 166, 190, 166, 168, 168, 166, 168, 166, 185, 187, 188, 181, 177, 169, 166, 167, 168, 187, 159, 187, 167, 168, 166, 191, 185, 186, 167, 169, 192, 166, 190, 188, 168, 167, 188, 191, 160, 185, 183, 164, 167, 167, 194, 188, 187, 166, 189, 169, 184, 185, 189, 188, 185, 167, 168, 168, 184, 169, 185, 190, 184, 184, 186, 167, 184, 167, 187, 165, 183, 187, 168, 185, 169, 165, 200, 189, 189, 191, 167, 188, 186, 190, 185, 167, 167, 165, 187, 187, 198, 167, 169, 137, 185, 164, 188, 182, 167, 184, 184, 184, 183, 186, 191, 176, 166, 164, 184, 188, 185, 166, 185, 186, 168, 168, 184, 165, 189, 185, 163, 165, 167, 189, 186, 167, 164, 183, 185, 189, 185, 166, 186, 166, 182, 190, 166, 188, 168, 168, 184, 166, 166, 168, 196, 166, 190, 186, 148, 184, 188, 166, 165, 191, 188, 188, 184, 168, 187, 169, 185, 168, 190, 165, 185, 185, 164, 164, 167, 167, 167, 194, 205, 164, 183, 183, 161, 184, 182, 189, 188, 181, 168, 188, 185, 168, 168, 182, 191, 186, 165, 186, 196, 167, 186, 185, 166, 169, 193, 185, 191, 188, 189, 185, 165, 184, 183, 167, 184, 169, 197, 168, 183, 168, 186, 133, 166, 168, 166, 164, 167, 166, 185, 166, 184, 167, 188, 187, 186, 183, 167, 185, 188, 186, 167, 157, 161, 186, 191, 165, 198, 188, 194, 190, 183, 165, 167, 187, 166, 166, 185, 191, 189, 187, 169, 153, 166, 185, 168, 163, 189, 181, 165, 186, 187, 188, 161, 184, 169, 191, 188, 166, 182, 191, 143, 211, 186, 188, 184, 167, 195, 187, 168, 184, 185, 165, 169, 181, 184, 178, 185, 165, 186, 164, 167, 169, 165, 166, 186, 167, 166, 179, 184, 170, 185, 166, 190, 182, 169, 167, 184, 182, 169, 169, 168, 168, 169, 192, 183, 184, 182, 167, 198, 180, 169, 192, 168, 168, 180, 185, 165, 168, 168, 181, 198, 191, 181, 184, 180, 178, 188, 182, 181, 188, 169, 166, 169, 161, 185, 184, 185, 183, 184, 169, 191, 181, 168, 181, 168, 183, 171, 168, 184, 167, 168, 169, 185, 197, 182, 167, 168, 183, 168, 163, 182, 183, 185, 182, 134, 168, 185, 169, 182, 168, 182, 188, 167, 183, 168, 168, 168, 183, 186, 181, 169, 169, 158, 179, 184, 169, 184, 180, 166, 170, 180, 183, 183, 175, 184, 163, 167, 184, 183, 184, 182, 185, 167, 188, 168, 168, 181, 183, 165, 167, 186, 195, 187, 166, 180, 169, 181, 181, 184, 182, 182, 168, 200, 183, 169, 169, 185, 184, 168, 187, 182, 182, 169, 169, 183, 167, 167, 168, 185, 185, 169, 169, 168, 181, 168, 183, 186, 166, 187, 184, 191, 170, 182, 182, 170, 171, 182, 182, 168, 170, 167, 183, 169, 166, 167, 167, 169, 169, 184, 169, 167, 197, 167, 166, 168, 169, 161, 165, 167, 167, 169, 168, 168, 167, 165, 189, 167, 170, 168, 186, 181, 167, 183, 168, 167, 186, 165, 169, 162, 162, 181, 182, 184, 170, 186, 169, 161, 185, 161, 168, 185, 165, 185, 183, 183, 182, 165, 168, 169, 188, 187, 208, 161, 183, 187, 182, 168, 184, 167, 168, 185, 184, 185, 168, 180, 189, 164, 191, 185, 161, 185, 184, 183, 167, 169, 169, 166, 165, 169, 168, 169, 168, 187, 185, 169, 171, 182, 169, 185, 164, 167, 153, 168, 159, 180, 170, 192, 169, 169, 159, 183, 183, 168, 182, 168, 186, 168, 170, 169, 183, 184, 182, 168, 169, 181, 184, 183, 183, 170, 167, 164, 183, 169, 171, 182, 196, 169, 185, 183, 169, 164, 180, 168, 186, 164, 166, 186, 159, 181, 168, 170, 167, 184, 180, 170, 163, 168, 185, 168, 181, 164, 167, 166, 182, 189, 168, 170, 169, 195, 169, 168, 182, 168, 180, 181, 168, 167, 187, 180, 172, 185, 170, 186, 184, 162, 142, 187, 163, 183, 184, 153, 169, 187, 169, 189, 184, 168, 185, 184, 185, 168, 184, 169, 182, 193, 169, 168, 168, 185, 165, 164, 183, 183, 182, 168, 182, 183, 169, 167, 168, 186, 164, 167, 162, 184, 180, 169, 181, 181, 183, 206, 169, 184, 184, 184, 169, 166, 190, 168, 183, 183, 167, 171, 186, 168, 187, 187, 181, 168, 185, 181, 188, 184, 169, 165, 168, 187, 156, 164, 168, 186, 169, 168, 168, 169, 181, 170, 169, 170, 182, 186, 163, 186, 168, 196, 189, 187, 168, 182, 180, 181, 166, 187, 167, 166, 168, 196, 153, 183, 167, 166, 185, 180, 168, 194, 180, 169, 169, 193, 190, 188, 181, 183, 168, 167, 168, 170, 182, 198, 183, 169, 168, 180, 170, 169, 168, 169, 169, 169, 184, 169, 180, 181, 190, 181, 169, 175, 169, 185, 170, 184, 169, 182, 184, 168, 183, 182, 170, 168, 181, 184, 182, 184, 159, 168, 181, 182, 167, 168, 186, 184, 168, 185, 189, 169, 161, 184, 183, 186, 162, 183, 178, 184, 185, 184, 169, 169, 168, 164, 184, 181, 168, 170, 169, 169, 169, 169, 168, 182, 180, 168, 166, 167, 168, 184, 188, 161, 163, 180, 190, 183, 168, 181, 187, 182, 181, 169, 148, 169, 167, 168, 168, 185, 181, 184, 185, 192, 182, 181, 182, 190, 159, 184, 184, 190, 183, 186, 168, 167, 182, 184, 169, 169, 169, 183, 157, 185, 186, 170, 167, 169, 185, 187, 167, 184, 187, 187, 181, 183, 170, 190, 182, 168, 185, 168, 184, 165, 167, 166, 168, 180, 185, 184, 169, 168, 204, 188, 196, 169, 183, 189, 183, 184, 180, 165, 188, 167, 168, 172, 168, 167, 167, 183, 168, 168, 167, 169, 183, 185, 172, 164, 183, 167, 169, 185, 169, 159, 180, 161, 169, 168, 185, 169, 181, 168, 168, 169, 179, 180, 187, 167, 184, 184, 168, 168, 167, 180, 183, 185, 167, 181, 183, 170, 184, 190, 161, 193, 163, 161, 205, 183, 167, 170, 190, 187, 168, 188, 182, 167, 182, 169, 184, 167, 174, 185, 163, 168, 193, 168, 179, 181, 168, 167, 180, 190, 179, 182, 167, 184, 225, 189, 179, 169, 161, 168, 168, 169, 167, 169, 169, 183, 185, 184, 181, 174, 170, 168, 168, 169, 184, 185, 185, 170, 169, 168, 189, 185, 183, 168, 169, 183, 169, 188, 167, 168, 169, 186, 191, 163, 182, 179, 159, 168, 169, 169, 186, 182, 168, 183, 170, 182, 179, 183, 185, 185, 166, 169, 168, 181, 169, 182, 189, 184, 182, 185, 167, 183, 168, 183, 165, 180, 182, 169, 170, 170, 167, 189, 189, 188, 188, 169, 183, 187, 163, 182, 169, 169, 169, 184, 182, 196, 168, 169, 182, 182, 168, 182, 181, 169, 183, 183, 182, 184, 184, 185, 182, 169, 167, 182, 187, 184, 168, 183, 184, 167, 171, 185, 166, 187, 183, 161, 168, 169, 186, 188, 168, 167, 183, 186, 187, 182, 167, 183, 160, 181, 166, 169, 185, 168, 170, 178, 168, 168, 168, 159, 167, 186, 183, 198, 183, 185, 169, 169, 189, 191, 186, 182, 170, 182, 170, 184, 168, 174, 168, 184, 186, 166, 161, 169, 168, 167, 196, 197, 167, 183, 180, 163, 182, 172, 165, 185, 178, 169, 186, 183, 169, 169, 181, 163, 183, 167, 182, 196, 168, 165, 191, 167, 170, 160, 182, 160, 185, 165, 183, 167, 181, 180, 165, 181, 170, 159, 169, 180, 170, 183, 197, 168, 169, 168, 166, 168, 167, 182, 169, 182, 169, 186, 182, 184, 181, 168, 183, 190, 184, 169, 182, 165, 185, 189, 166, 174, 182, 167, 189, 181, 167, 169, 184, 168, 168, 183, 185, 191, 184, 170, 184, 168, 186, 167, 169, 156, 182, 168, 183, 185, 185, 165, 182, 168, 188, 184, 169, 182, 162, 194, 203, 183, 194, 183, 168, 187, 186, 169, 181, 184, 168, 169, 182, 180, 177, 183, 167, 185, 166, 167, 171, 168, 167, 185, 169, 168, 177, 179, 171, 183, 167, 188, 179, 180, 169, 180, 179, 172, 171, 170, 171, 172, 185, 178, 180, 178, 170, 181, 178, 171, 179, 170, 171, 178, 180, 164, 171, 171, 177, 183, 176, 178, 179, 178, 175, 185, 182, 179, 179, 174, 166, 170, 165, 180, 179, 182, 179, 181, 172, 188, 177, 171, 177, 170, 178, 168, 169, 180, 171, 154, 173, 181, 191, 179, 167, 172, 179, 171, 168, 178, 178, 178, 179, 180, 170, 182, 171, 178, 172, 177, 186, 168, 179, 171, 171, 171, 178, 181, 179, 172, 171, 166, 175, 179, 172, 180, 178, 170, 167, 177, 179, 180, 169, 181, 165, 171, 181, 180, 177, 179, 181, 170, 184, 171, 173, 178, 179, 168, 170, 182, 178, 178, 171, 178, 170, 180, 178, 179, 178, 177, 170, 194, 179, 170, 171, 180, 178, 170, 181, 179, 179, 172, 173, 179, 169, 171, 169, 182, 181, 171, 172, 170, 178, 173, 180, 181, 166, 182, 181, 185, 172, 181, 179, 172, 172, 180, 178, 171, 173, 170, 180, 171, 169, 172, 172, 173, 170, 181, 171, 170, 191, 169, 170, 169, 171, 170, 169, 168, 170, 173, 172, 170, 169, 164, 184, 170, 171, 172, 181, 179, 171, 180, 170, 171, 183, 170, 171, 171, 168, 178, 178, 179, 171, 184, 171, 170, 146, 171, 170, 167, 170, 181, 178, 180, 183, 163, 171, 171, 183, 184, 191, 166, 180, 190, 178, 170, 181, 171, 171, 181, 182, 179, 171, 178, 180, 167, 187, 181, 170, 181, 182, 180, 167, 170, 172, 172, 169, 172, 171, 171, 170, 188, 182, 172, 172, 177, 171, 181, 170, 172, 182, 173, 165, 176, 172, 183, 171, 172, 168, 179, 178, 173, 180, 170, 179, 171, 169, 171, 178, 179, 178, 173, 172, 179, 180, 180, 180, 173, 170, 168, 180, 172, 171, 136, 189, 171, 178, 179, 172, 168, 176, 170, 170, 168, 170, 180, 167, 183, 168, 172, 176, 184, 177, 174, 170, 170, 181, 172, 180, 165, 171, 167, 179, 184, 171, 171, 172, 188, 172, 170, 180, 173, 177, 178, 171, 170, 180, 176, 174, 182, 171, 181, 180, 165, 159, 180, 169, 180, 184, 166, 172, 183, 173, 183, 179, 170, 180, 180, 180, 172, 178, 171, 177, 187, 172, 172, 170, 179, 172, 170, 179, 179, 178, 173, 178, 178, 170, 171, 172, 180, 167, 172, 168, 182, 177, 171, 179, 178, 180, 190, 172, 181, 179, 179, 172, 171, 172, 171, 179, 178, 169, 172, 181, 173, 179, 181, 183, 171, 181, 179, 185, 180, 170, 170, 171, 182, 163, 171, 172, 168, 171, 170, 172, 171, 178, 172, 171, 171, 179, 183, 167, 180, 170, 186, 184, 183, 173, 179, 175, 177, 172, 183, 171, 165, 169, 183, 166, 178, 171, 169, 179, 178, 170, 185, 176, 174, 171, 182, 181, 180, 177, 181, 171, 171, 173, 172, 180, 186, 183, 173, 171, 178, 171, 172, 171, 170, 171, 172, 183, 170, 151, 175, 185, 178, 170, 174, 171, 177, 171, 180, 172, 178, 178, 171, 180, 181, 172, 172, 179, 181, 179, 179, 169, 169, 179, 178, 170, 171, 171, 178, 171, 194, 188, 171, 165, 181, 178, 181, 166, 180, 181, 179, 179, 181, 172, 167, 172, 163, 178, 178, 171, 171, 171, 172, 172, 172, 171, 180, 177, 171, 171, 171, 173, 181, 188, 170, 167, 174, 177, 180, 170, 178, 183, 177, 177, 172, 180, 171, 166, 170, 171, 182, 178, 182, 180, 180, 176, 177, 178, 188, 167, 181, 178, 186, 180, 181, 171, 169, 178, 178, 168, 172, 172, 180, 175, 181, 179, 171, 169, 170, 184, 181, 170, 181, 173, 180, 177, 178, 172, 183, 179, 172, 181, 172, 180, 168, 168, 169, 171, 177, 183, 179, 172, 173, 192, 184, 188, 172, 179, 184, 179, 181, 177, 169, 188, 170, 173, 171, 172, 167, 170, 180, 172, 171, 169, 172, 179, 183, 174, 170, 180, 173, 172, 179, 172, 158, 177, 165, 172, 171, 179, 171, 177, 170, 170, 172, 176, 176, 181, 170, 180, 182, 171, 171, 169, 178, 180, 181, 169, 177, 180, 173, 181, 180, 169, 189, 168, 169, 192, 179, 169, 171, 177, 183, 171, 186, 177, 171, 177, 172, 181, 169, 175, 179, 168, 170, 193, 169, 175, 177, 171, 169, 177, 187, 176, 179, 172, 178, 192, 167, 179, 173, 170, 171, 168, 170, 172, 172, 170, 180, 180, 180, 179, 175, 172, 171, 174, 172, 179, 171, 180, 172, 172, 171, 180, 180, 180, 172, 171, 175, 168, 185, 174, 169, 171, 182, 180, 167, 179, 176, 165, 170, 172, 175, 180, 179, 171, 176, 172, 177, 177, 180, 155, 182, 167, 172, 170, 178, 171, 178, 182, 178, 179, 179, 170, 180, 170, 180, 162, 178, 177, 171, 172, 172, 172, 179, 181, 153, 184, 172, 180, 182, 170, 179, 172, 172, 172, 180, 177, 190, 170, 170, 185, 178, 174, 177, 179, 173, 179, 179, 178, 182, 178, 179, 182, 172, 172, 179, 183, 181, 171, 180, 178, 169, 173, 177, 171, 182, 181, 169, 171, 171, 181, 181, 170, 172, 180, 182, 180, 181, 171, 179, 167, 179, 170, 173, 178, 170, 171, 174, 169, 170, 169, 167, 168, 182, 181, 184, 179, 182, 172, 172, 185, 181, 183, 179, 171, 178, 171, 180, 170, 171, 174, 178, 183, 166, 171, 172, 171, 170, 178, 191, 172, 182, 177, 167, 178, 176, 168, 181, 174, 170, 180, 179, 171, 171, 179, 169, 179, 171, 179, 188, 172, 169, 184, 170, 173, 168, 177, 166, 179, 170, 180, 170, 177, 179, 165, 176, 173, 166, 171, 178, 171, 180, 189, 173, 171, 170, 168, 170, 171, 177, 173, 181, 169, 180, 178, 180, 178, 171, 178, 183, 180, 170, 177, 167, 180, 178, 170, 193, 179, 162, 183, 178, 171, 170, 179, 173, 171, 179, 179, 181, 179, 172, 168, 171, 181, 170, 171, 180, 180, 171, 179, 176, 181, 171, 179, 170, 181, 179, 172, 178, 168, 189, 200, 181, 184, 178, 172, 180, 179, 172, 180, 179, 171, 171, 180, 177, 176, 179, 171, 180, 172, 170, 172, 172, 169, 179, 171, 172, 178, 184, 170, 184, 165, 137, 183, 171, 168, 183, 181, 169, 169, 168, 168, 169, 197, 181, 184, 181, 167, 191, 181, 170, 191, 169, 169, 179, 186, 165, 168, 169, 182, 196, 190, 181, 184, 179, 179, 190, 178, 181, 183, 168, 166, 169, 162, 184, 184, 186, 182, 183, 170, 195, 181, 168, 180, 168, 182, 171, 167, 184, 169, 167, 169, 183, 196, 182, 166, 169, 182, 169, 164, 181, 183, 183, 182, 188, 169, 184, 169, 181, 168, 181, 184, 168, 182, 169, 168, 169, 182, 185, 181, 169, 170, 159, 178, 182, 169, 185, 179, 168, 183, 180, 183, 184, 175, 185, 190, 169, 183, 183, 184, 183, 185, 168, 188, 169, 169, 181, 182, 165, 167, 184, 192, 186, 167, 181, 169, 181, 181, 183, 183, 181, 169, 195, 184, 169, 169, 185, 184, 168, 185, 181, 182, 170, 169, 183, 166, 169, 168, 184, 185, 169, 169, 168, 181, 168, 183, 184, 168, 186, 186, 197, 171, 182, 182, 169, 171, 182, 182, 169, 169, 168, 183, 170, 166, 168, 168, 169, 170, 185, 170, 168, 196, 168, 168, 169, 170, 162, 166, 167, 168, 169, 169, 169, 168, 166, 194, 168, 170, 169, 184, 180, 168, 183, 169, 168, 186, 165, 169, 192, 164, 182, 182, 184, 170, 183, 169, 161, 185, 163, 168, 169, 165, 188, 182, 182, 182, 164, 168, 168, 182, 195, 197, 161, 184, 196, 182, 169, 183, 168, 168, 184, 183, 185, 169, 180, 185, 165, 193, 185, 162, 184, 183, 182, 166, 169, 169, 166, 165, 169, 169, 169, 168, 192, 184, 169, 170, 181, 169, 185, 164, 167, 178, 168, 161, 180, 170, 188, 170, 168, 161, 183, 183, 168, 182, 168, 188, 169, 173, 168, 183, 182, 182, 169, 170, 181, 183, 183, 181, 170, 168, 165, 183, 168, 171, 182, 194, 169, 183, 182, 170, 164, 180, 168, 167, 165, 166, 185, 161, 180, 168, 169, 167, 191, 180, 170, 164, 169, 184, 169, 182, 165, 168, 166, 182, 188, 167, 170, 169, 191, 169, 168, 181, 168, 180, 182, 169, 167, 186, 181, 172, 184, 170, 188, 183, 162, 144, 186, 165, 184, 184, 155, 169, 187, 170, 185, 184, 169, 185, 184, 184, 169, 183, 169, 182, 190, 170, 169, 168, 183, 166, 165, 183, 183, 181, 169, 182, 182, 169, 169, 169, 187, 165, 168, 164, 184, 181, 169, 181, 182, 182, 200, 169, 183, 183, 183, 168, 167, 168, 169, 183, 181, 168, 171, 185, 168, 186, 185, 185, 169, 183, 181, 192, 183, 170, 165, 168, 185, 158, 164, 168, 169, 169, 168, 169, 169, 182, 170, 169, 169, 183, 185, 165, 183, 168, 190, 192, 187, 169, 182, 180, 180, 167, 186, 169, 187, 169, 189, 155, 182, 168, 166, 183, 179, 169, 194, 180, 169, 169, 192, 188, 184, 180, 182, 169, 168, 169, 170, 182, 188, 185, 169, 168, 180, 169, 170, 168, 169, 169, 169, 185, 170, 185, 180, 193, 181, 169, 175, 170, 185, 170, 183, 170, 181, 184, 169, 183, 185, 170, 168, 185, 183, 181, 183, 159, 168, 181, 181, 168, 169, 167, 184, 168, 148, 195, 169, 161, 184, 182, 186, 164, 183, 179, 184, 185, 184, 170, 169, 169, 164, 184, 181, 168, 170, 170, 169, 169, 169, 169, 181, 179, 169, 167, 168, 168, 184, 190, 163, 165, 180, 161, 184, 168, 181, 186, 181, 180, 170, 187, 169, 166, 168, 168, 184, 180, 180, 184, 190, 181, 181, 183, 191, 160, 183, 184, 189, 183, 186, 169, 168, 181, 184, 169, 169, 170, 182, 157, 185, 183, 168, 168, 168, 184, 186, 167, 184, 164, 187, 181, 182, 170, 185, 183, 169, 183, 168, 186, 166, 167, 166, 169, 180, 185, 182, 169, 169, 207, 187, 195, 169, 182, 188, 182, 184, 180, 165, 192, 167, 170, 172, 169, 191, 168, 182, 169, 169, 168, 169, 183, 184, 172, 165, 182, 169, 170, 183, 169, 160, 180, 163, 170, 169, 183, 169, 181, 169, 168, 169, 179, 179, 185, 167, 184, 184, 168, 169, 167, 180, 185, 183, 166, 179, 183, 169, 182, 190, 163, 192, 163, 187, 201, 182, 168, 170, 191, 189, 168, 187, 181, 169, 181, 169, 184, 168, 175, 171, 164, 169, 192, 169, 180, 181, 169, 168, 180, 194, 180, 181, 168, 183, 214, 164, 179, 169, 162, 168, 169, 169, 169, 169, 170, 184, 186, 184, 180, 175, 170, 168, 169, 170, 183, 173, 184, 171, 170, 169, 188, 184, 183, 168, 170, 182, 167, 188, 184, 168, 169, 185, 186, 164, 183, 178, 159, 168, 170, 186, 184, 184, 168, 180, 171, 181, 179, 184, 184, 184, 167, 170, 169, 182, 169, 183, 188, 184, 180, 184, 167, 182, 168, 183, 166, 180, 182, 169, 172, 170, 168, 191, 188, 188, 189, 169, 183, 186, 164, 181, 170, 170, 168, 182, 182, 193, 168, 169, 184, 181, 169, 182, 181, 170, 183, 183, 181, 185, 183, 184, 181, 169, 167, 182, 186, 184, 169, 182, 183, 168, 171, 183, 166, 186, 182, 162, 168, 169, 187, 185, 169, 166, 182, 185, 186, 182, 168, 184, 159, 179, 165, 169, 185, 168, 170, 177, 167, 169, 168, 160, 167, 186, 184, 195, 183, 184, 170, 169, 188, 188, 188, 182, 170, 181, 171, 183, 168, 174, 168, 183, 185, 167, 163, 170, 169, 168, 191, 203, 168, 183, 180, 163, 181, 181, 166, 185, 178, 169, 185, 184, 169, 170, 181, 164, 181, 166, 183, 193, 169, 166, 189, 168, 171, 162, 182, 161, 185, 165, 182, 168, 181, 181, 165, 180, 170, 159, 169, 179, 170, 183, 217, 169, 169, 169, 166, 168, 168, 181, 170, 182, 169, 185, 182, 182, 180, 168, 183, 192, 184, 169, 167, 166, 185, 187, 166, 189, 183, 167, 189, 180, 168, 170, 185, 167, 169, 183, 184, 186, 184, 170, 168, 167, 183, 169, 167, 184, 181, 168, 182, 183, 186, 166, 181, 168, 186, 184, 170, 181, 163, 192, 201, 182, 197, 182, 169, 195, 184, 170, 180, 182, 168, 170, 182, 181, 177, 182, 168, 186, 168, 168, 171, 168, 168, 184, 170, 169, 183, 184, 168, 189, 166, 196, 183, 170, 166, 186, 182, 169, 166, 167, 167, 167, 196, 185, 186, 183, 166, 75, 183, 168, 189, 165, 166, 183, 189, 167, 166, 166, 185, 167, 177, 184, 182, 180, 182, 199, 137, 184, 193, 165, 168, 167, 162, 187, 186, 187, 183, 185, 168, 189, 186, 168, 184, 167, 186, 186, 166, 188, 165, 197, 166, 184, 155, 184, 166, 165, 185, 168, 161, 184, 187, 185, 188, 111, 167, 185, 167, 185, 166, 185, 191, 166, 185, 168, 167, 166, 184, 186, 184, 166, 167, 197, 186, 187, 165, 187, 183, 165, 159, 180, 185, 189, 170, 186, 151, 167, 185, 183, 188, 185, 187, 166, 194, 166, 165, 184, 186, 167, 166, 187, 194, 191, 164, 184, 169, 184, 182, 186, 184, 189, 166, 80, 187, 168, 168, 191, 189, 168, 192, 182, 183, 168, 165, 183, 162, 165, 165, 185, 187, 166, 166, 167, 182, 164, 186, 189, 164, 194, 187, 190, 169, 183, 183, 167, 170, 184, 185, 165, 167, 165, 187, 167, 165, 164, 163, 165, 167, 186, 167, 168, 200, 168, 164, 165, 168, 162, 188, 167, 165, 165, 165, 167, 165, 166, 193, 165, 168, 166, 189, 183, 164, 188, 167, 166, 190, 188, 167, 141, 155, 186, 185, 187, 169, 192, 166, 197, 190, 190, 167, 194, 193, 185, 187, 186, 189, 168, 165, 166, 193, 189, 51, 193, 187, 194, 185, 167, 184, 164, 165, 188, 187, 184, 165, 186, 201, 189, 197, 186, 152, 191, 185, 187, 167, 167, 166, 159, 157, 165, 166, 167, 168, 194, 186, 166, 167, 182, 169, 188, 158, 157, 140, 164, 195, 184, 169, 193, 167, 166, 160, 187, 183, 165, 186, 168, 189, 166, 165, 168, 186, 185, 184, 167, 168, 183, 186, 183, 184, 166, 165, 191, 185, 167, 165, 194, 202, 166, 185, 186, 166, 192, 185, 165, 191, 160, 187, 187, 161, 179, 168, 166, 161, 194, 184, 168, 191, 167, 184, 167, 184, 167, 165, 169, 183, 189, 164, 168, 168, 187, 168, 168, 183, 165, 182, 186, 165, 165, 190, 183, 169, 188, 167, 195, 186, 195, 185, 189, 187, 187, 191, 198, 167, 188, 167, 184, 186, 168, 189, 186, 190, 165, 185, 168, 185, 195, 167, 165, 167, 186, 163, 191, 187, 186, 183, 166, 186, 183, 168, 166, 166, 190, 190, 164, 162, 186, 184, 167, 184, 186, 184, 193, 166, 187, 185, 184, 166, 162, 192, 167, 184, 184, 167, 171, 187, 164, 189, 188, 191, 165, 186, 182, 193, 188, 167, 161, 165, 188, 200, 160, 165, 192, 167, 168, 166, 167, 184, 165, 167, 169, 185, 184, 165, 192, 165, 192, 194, 189, 167, 184, 183, 183, 163, 190, 165, 153, 168, 196, 200, 184, 166, 165, 188, 184, 168, 196, 185, 165, 167, 198, 190, 190, 183, 184, 166, 166, 166, 169, 185, 194, 190, 165, 167, 185, 168, 167, 164, 168, 167, 166, 189, 168, 119, 185, 190, 183, 167, 172, 166, 113, 169, 185, 164, 184, 188, 168, 187, 186, 168, 164, 185, 186, 185, 187, 192, 167, 181, 183, 168, 165, 192, 187, 166, 197, 193, 165, 163, 186, 185, 188, 193, 185, 194, 187, 190, 186, 167, 149, 167, 151, 187, 184, 165, 168, 169, 167, 168, 168, 167, 184, 183, 167, 164, 166, 163, 187, 195, 191, 162, 184, 195, 188, 166, 183, 190, 185, 183, 168, 102, 166, 168, 166, 167, 187, 183, 194, 188, 201, 185, 187, 188, 192, 192, 185, 185, 193, 187, 192, 166, 166, 184, 185, 166, 165, 168, 184, 150, 191, 188, 166, 167, 167, 186, 189, 165, 186, 195, 184, 181, 185, 165, 188, 184, 166, 186, 165, 186, 167, 169, 164, 166, 183, 188, 184, 165, 166, 207, 195, 145, 166, 184, 190, 184, 188, 183, 163, 195, 166, 166, 171, 167, 158, 166, 186, 163, 167, 167, 166, 184, 189, 160, 161, 186, 165, 166, 184, 167, 159, 184, 158, 168, 167, 190, 166, 184, 167, 166, 167, 184, 184, 188, 165, 184, 185, 166, 167, 165, 183, 188, 188, 165, 185, 183, 168, 185, 194, 200, 153, 159, 151, 151, 185, 167, 169, 192, 189, 167, 190, 183, 165, 184, 166, 186, 167, 181, 184, 158, 168, 165, 168, 184, 183, 166, 166, 185, 191, 181, 184, 163, 186, 211, 191, 182, 166, 156, 166, 167, 168, 166, 166, 167, 184, 187, 186, 182, 164, 169, 166, 164, 167, 187, 195, 185, 167, 168, 166, 189, 187, 185, 165, 168, 179, 168, 193, 116, 167, 168, 188, 190, 191, 185, 184, 194, 167, 168, 158, 189, 185, 165, 196, 168, 184, 185, 187, 192, 188, 167, 167, 167, 185, 170, 185, 187, 187, 184, 186, 165, 184, 167, 186, 165, 183, 185, 166, 161, 169, 163, 187, 189, 190, 187, 168, 186, 188, 159, 186, 167, 166, 167, 186, 185, 194, 168, 167, 137, 183, 164, 185, 182, 165, 185, 186, 184, 186, 186, 189, 175, 168, 164, 186, 189, 186, 166, 184, 188, 167, 168, 189, 166, 189, 186, 193, 165, 166, 186, 187, 165, 162, 184, 187, 190, 184, 167, 186, 193, 182, 163, 166, 189, 167, 168, 184, 166, 168, 168, 153, 166, 187, 187, 145, 184, 185, 167, 166, 197, 194, 186, 183, 166, 187, 170, 185, 165, 171, 163, 188, 187, 165, 190, 166, 167, 167, 198, 190, 165, 183, 183, 192, 185, 166, 163, 187, 182, 168, 189, 186, 168, 167, 183, 159, 186, 162, 185, 207, 165, 162, 191, 166, 169, 161, 184, 159, 189, 151, 186, 166, 182, 182, 167, 184, 167, 156, 165, 183, 168, 184, 203, 166, 166, 166, 164, 166, 165, 186, 165, 186, 166, 190, 184, 186, 183, 166, 185, 196, 185, 167, 187, 188, 187, 192, 164, 31, 187, 152, 192, 184, 163, 167, 187, 166, 167, 189, 190, 189, 186, 169, 191, 165, 186, 168, 163, 161, 182, 166, 185, 187, 187, 188, 183, 168, 190, 188, 166, 184, 162, 146, 40, 185, 204, 186, 167, 195, 186, 167, 183, 186, 166, 168, 181, 185, 180, 186, 165, 187, 164, 167, 168, 166, 166, 189, 165, 165, 180, 182, 170, 185, 166, 190, 181, 167, 167, 184, 180, 170, 169, 168, 168, 170, 192, 181, 183, 179, 168, 197, 180, 170, 181, 168, 169, 180, 185, 164, 170, 168, 181, 175, 191, 179, 184, 178, 177, 192, 167, 181, 183, 168, 165, 167, 170, 181, 182, 184, 182, 182, 170, 188, 179, 170, 180, 168, 181, 184, 166, 183, 168, 184, 168, 182, 170, 180, 165, 168, 181, 170, 168, 181, 180, 183, 183, 192, 168, 183, 169, 181, 169, 178, 188, 166, 180, 169, 168, 169, 181, 183, 182, 169, 169, 184, 178, 181, 168, 184, 180, 167, 160, 181, 181, 184, 170, 183, 159, 169, 183, 182, 181, 180, 183, 168, 190, 168, 170, 180, 182, 166, 168, 183, 185, 184, 167, 180, 169, 183, 179, 181, 182, 182, 169, 203, 182, 169, 170, 181, 182, 169, 185, 182, 181, 170, 170, 181, 166, 169, 167, 184, 182, 169, 170, 169, 180, 168, 183, 184, 165, 189, 184, 189, 171, 181, 181, 169, 171, 181, 183, 168, 170, 167, 182, 169, 165, 169, 168, 168, 169, 185, 169, 169, 194, 168, 168, 167, 169, 165, 183, 167, 167, 169, 168, 167, 168, 164, 188, 167, 168, 170, 186, 181, 167, 183, 170, 169, 185, 182, 168, 151, 164, 182, 181, 183, 170, 188, 168, 186, 131, 184, 169, 160, 181, 182, 183, 182, 191, 164, 166, 168, 189, 193, 200, 184, 184, 192, 181, 169, 183, 167, 168, 184, 184, 180, 167, 181, 189, 185, 193, 182, 165, 184, 184, 183, 168, 169, 169, 166, 168, 169, 169, 169, 170, 187, 182, 169, 169, 176, 170, 185, 164, 167, 186, 169, 182, 179, 171, 186, 170, 169, 168, 183, 178, 169, 182, 169, 183, 169, 177, 170, 180, 182, 181, 170, 170, 181, 182, 182, 183, 169, 169, 184, 182, 169, 168, 130, 202, 169, 182, 181, 169, 184, 177, 168, 162, 163, 183, 183, 171, 181, 170, 168, 167, 188, 180, 173, 183, 169, 182, 168, 183, 166, 169, 167, 179, 185, 168, 170, 170, 193, 170, 169, 182, 168, 179, 181, 168, 168, 183, 179, 171, 183, 170, 186, 183, 181, 179, 183, 184, 181, 187, 186, 170, 185, 170, 180, 182, 168, 181, 183, 185, 168, 179, 169, 181, 189, 169, 168, 168, 182, 167, 185, 181, 182, 180, 169, 181, 179, 169, 168, 169, 182, 182, 169, 169, 184, 180, 170, 179, 181, 183, 211, 170, 186, 181, 183, 170, 167, 158, 170, 181, 179, 168, 172, 183, 168, 181, 184, 184, 168, 184, 180, 190, 184, 169, 166, 168, 186, 193, 169, 167, 161, 169, 168, 169, 170, 181, 169, 169, 170, 181, 183, 163, 186, 167, 193, 186, 187, 169, 182, 179, 179, 167, 183, 168, 159, 168, 184, 188, 179, 167, 167, 183, 180, 169, 192, 180, 169, 169, 190, 187, 184, 179, 182, 169, 168, 169, 171, 183, 188, 184, 169, 168, 181, 170, 169, 168, 169, 168, 169, 185, 170, 174, 179, 188, 181, 169, 171, 169, 153, 170, 180, 168, 179, 183, 170, 183, 186, 170, 168, 182, 184, 180, 181, 183, 167, 181, 180, 169, 167, 171, 183, 169, 172, 192, 169, 170, 182, 181, 184, 183, 181, 184, 181, 181, 183, 170, 162, 171, 166, 182, 180, 168, 170, 170, 170, 170, 170, 169, 184, 180, 169, 168, 168, 168, 182, 190, 184, 167, 179, 163, 186, 167, 181, 187, 182, 179, 170, 184, 169, 165, 168, 168, 185, 180, 191, 183, 185, 180, 180, 181, 185, 184, 183, 181, 194, 180, 185, 169, 167, 180, 182, 166, 169, 170, 181, 163, 183, 183, 169, 167, 169, 184, 182, 167, 183, 162, 188, 181, 181, 167, 187, 183, 168, 182, 167, 187, 166, 168, 167, 169, 180, 183, 181, 169, 169, 197, 193, 188, 169, 180, 186, 181, 183, 180, 168, 192, 167, 170, 170, 170, 154, 169, 182, 168, 168, 167, 170, 183, 185, 165, 168, 181, 169, 170, 181, 168, 170, 179, 168, 170, 169, 183, 169, 179, 169, 166, 169, 178, 180, 182, 167, 180, 181, 169, 169, 167, 181, 181, 184, 166, 180, 184, 171, 182, 187, 188, 184, 169, 164, 170, 182, 168, 171, 188, 178, 169, 185, 179, 168, 180, 170, 184, 169, 183, 177, 168, 169, 177, 169, 177, 180, 167, 168, 180, 183, 180, 182, 167, 180, 178, 163, 182, 170, 171, 168, 167, 170, 170, 170, 170, 181, 184, 183, 181, 166, 171, 169, 167, 169, 183, 163, 182, 171, 170, 169, 184, 182, 182, 169, 170, 178, 167, 190, 179, 168, 168, 179, 183, 182, 181, 179, 183, 169, 170, 169, 184, 182, 168, 185, 170, 179, 180, 182, 140, 183, 167, 170, 168, 180, 169, 178, 184, 182, 181, 180, 167, 182, 167, 181, 163, 180, 179, 168, 167, 171, 168, 187, 182, 139, 187, 169, 181, 184, 169, 182, 170, 169, 169, 182, 181, 190, 169, 169, 189, 179, 168, 179, 180, 169, 180, 182, 181, 184, 180, 181, 182, 170, 170, 182, 184, 185, 169, 182, 181, 166, 171, 179, 169, 186, 184, 187, 167, 169, 186, 185, 169, 167, 180, 184, 185, 184, 169, 183, 185, 180, 171, 171, 181, 169, 170, 177, 169, 169, 168, 167, 165, 182, 184, 192, 182, 183, 169, 170, 191, 193, 187, 180, 169, 182, 171, 182, 169, 168, 168, 182, 187, 163, 185, 169, 170, 169, 187, 189, 167, 184, 180, 182, 180, 172, 167, 185, 177, 169, 183, 182, 170, 170, 179, 169, 181, 167, 181, 197, 169, 169, 187, 168, 171, 171, 178, 168, 179, 166, 183, 168, 179, 180, 165, 179, 169, 166, 167, 179, 170, 182, 207, 171, 168, 168, 168, 168, 168, 179, 169, 183, 166, 182, 180, 183, 181, 169, 179, 188, 181, 169, 171, 181, 181, 188, 168, 193, 182, 164, 185, 181, 168, 168, 181, 170, 169, 184, 181, 187, 181, 171, 158, 169, 186, 169, 167, 164, 181, 168, 181, 182, 184, 184, 180, 169, 185, 182, 169, 179, 167, 191, 211, 181, 197, 180, 170, 184, 182, 168, 181, 184, 169, 170, 181, 180, 178, 181, 169, 182, 168, 168, 169, 169, 168, 184, 167, 169, 183, 184, 170, 185, 168, 75, 183, 171, 166, 186, 181, 169, 167, 167, 168, 168, 197, 185, 185, 182, 166, 197, 182, 169, 193, 166, 167, 182, 190, 168, 168, 167, 185, 168, 177, 183, 180, 180, 182, 198, 138, 183, 186, 165, 168, 167, 162, 187, 185, 188, 182, 184, 169, 200, 184, 169, 182, 167, 185, 185, 166, 187, 166, 195, 166, 184, 156, 183, 167, 165, 185, 169, 162, 184, 185, 186, 187, 190, 168, 184, 168, 184, 167, 184, 187, 168, 184, 168, 167, 167, 183, 187, 183, 167, 168, 195, 184, 185, 165, 185, 182, 166, 189, 179, 183, 186, 170, 185, 192, 168, 185, 182, 186, 184, 185, 167, 193, 168, 167, 183, 185, 168, 166, 186, 193, 193, 167, 183, 170, 183, 181, 185, 185, 187, 167, 201, 185, 168, 169, 188, 187, 167, 189, 182, 183, 168, 165, 182, 164, 168, 166, 184, 185, 166, 166, 168, 182, 165, 186, 186, 166, 188, 184, 190, 170, 182, 181, 167, 171, 182, 185, 166, 167, 166, 186, 167, 167, 166, 164, 166, 168, 187, 168, 169, 207, 169, 166, 167, 170, 163, 187, 167, 165, 166, 166, 167, 167, 168, 192, 166, 169, 168, 188, 181, 165, 185, 168, 168, 191, 187, 168, 195, 157, 184, 183, 186, 169, 188, 167, 196, 190, 190, 168, 158, 192, 184, 188, 184, 188, 169, 165, 166, 193, 153, 204, 192, 187, 193, 185, 168, 184, 164, 166, 186, 186, 184, 165, 184, 192, 189, 196, 183, 154, 189, 185, 185, 168, 168, 168, 162, 159, 166, 167, 168, 168, 187, 185, 167, 168, 182, 169, 188, 158, 158, 182, 165, 194, 185, 170, 190, 168, 166, 162, 186, 183, 166, 185, 169, 193, 167, 186, 168, 185, 183, 185, 167, 169, 181, 186, 183, 183, 166, 166, 190, 184, 167, 165, 194, 199, 166, 185, 185, 167, 192, 184, 166, 159, 162, 185, 187, 164, 178, 168, 166, 162, 187, 184, 168, 190, 167, 184, 168, 184, 167, 165, 170, 181, 188, 165, 168, 168, 188, 168, 167, 182, 166, 182, 184, 165, 166, 188, 183, 170, 185, 168, 192, 185, 193, 187, 188, 186, 186, 188, 196, 168, 187, 168, 185, 185, 169, 187, 185, 187, 166, 184, 168, 183, 197, 168, 165, 168, 186, 163, 190, 185, 186, 182, 168, 185, 183, 168, 167, 167, 188, 191, 165, 164, 185, 184, 168, 183, 184, 183, 190, 166, 186, 183, 186, 166, 163, 152, 167, 184, 183, 168, 171, 184, 165, 188, 186, 188, 166, 184, 182, 193, 186, 168, 162, 166, 187, 198, 161, 166, 158, 167, 168, 166, 167, 184, 166, 168, 169, 184, 184, 167, 189, 167, 200, 191, 187, 167, 185, 183, 182, 164, 189, 166, 194, 169, 197, 198, 183, 166, 165, 187, 183, 168, 198, 184, 166, 167, 193, 191, 184, 182, 183, 167, 165, 166, 170, 184, 196, 189, 166, 167, 184, 168, 168, 166, 169, 167, 166, 188, 169, 200, 184, 191, 182, 168, 172, 168, 110, 169, 185, 165, 183, 187, 168, 187, 186, 169, 165, 186, 184, 182, 186, 191, 167, 181, 183, 170, 166, 129, 187, 167, 102, 191, 166, 164, 185, 184, 186, 192, 184, 191, 186, 186, 187, 168, 149, 167, 154, 186, 183, 165, 169, 170, 167, 169, 168, 168, 184, 182, 167, 166, 166, 163, 187, 193, 190, 163, 183, 158, 186, 166, 183, 189, 184, 182, 168, 194, 167, 168, 167, 168, 186, 182, 72, 185, 192, 184, 186, 186, 191, 192, 184, 185, 193, 187, 190, 166, 168, 184, 185, 167, 167, 168, 183, 153, 190, 189, 167, 168, 168, 186, 188, 165, 184, 147, 178, 181, 184, 166, 188, 183, 167, 186, 165, 187, 167, 169, 164, 168, 182, 186, 183, 166, 167, 216, 193, 146, 167, 183, 190, 184, 186, 183, 164, 192, 167, 167, 172, 167, 195, 166, 184, 165, 167, 167, 167, 182, 185, 162, 163, 184, 166, 167, 184, 167, 161, 183, 158, 169, 167, 188, 167, 183, 168, 167, 168, 183, 183, 187, 166, 185, 184, 167, 168, 166, 182, 188, 187, 166, 184, 183, 168, 183, 193, 200, 152, 159, 189, 152, 184, 168, 169, 191, 186, 168, 191, 184, 166, 183, 167, 185, 168, 181, 165, 161, 168, 166, 168, 185, 183, 167, 167, 183, 192, 182, 183, 164, 186, 209, 151, 181, 168, 159, 167, 168, 169, 167, 168, 168, 184, 187, 187, 181, 166, 169, 166, 165, 167, 185, 161, 184, 168, 169, 167, 189, 185, 185, 166, 169, 179, 168, 191, 188, 168, 169, 187, 189, 190, 183, 184, 193, 168, 168, 193, 189, 184, 166, 190, 169, 182, 183, 186, 190, 186, 168, 168, 167, 184, 170, 184, 185, 186, 183, 184, 166, 184, 168, 184, 167, 183, 184, 167, 162, 170, 165, 189, 188, 188, 186, 168, 185, 188, 161, 184, 167, 167, 168, 185, 186, 191, 168, 168, 139, 184, 164, 184, 180, 166, 185, 185, 183, 185, 184, 188, 176, 168, 166, 184, 187, 186, 167, 183, 186, 168, 168, 188, 167, 188, 184, 191, 167, 167, 183, 186, 166, 163, 183, 186, 189, 182, 167, 186, 192, 181, 164, 166, 187, 168, 169, 182, 167, 168, 168, 155, 168, 185, 185, 145, 184, 185, 167, 167, 195, 197, 184, 183, 167, 186, 169, 186, 166, 171, 165, 185, 185, 167, 190, 167, 168, 168, 198, 197, 166, 183, 182, 190, 183, 183, 165, 187, 182, 169, 188, 186, 169, 168, 182, 161, 185, 164, 183, 202, 166, 164, 191, 167, 169, 163, 184, 160, 188, 153, 185, 167, 182, 181, 167, 183, 167, 158, 167, 182, 168, 183, 119, 167, 166, 167, 166, 166, 165, 185, 166, 184, 167, 188, 183, 187, 182, 167, 184, 193, 183, 167, 155, 188, 186, 192, 164, 197, 187, 152, 190, 183, 166, 168, 186, 166, 167, 189, 189, 191, 187, 169, 158, 166, 187, 169, 163, 189, 182, 167, 184, 185, 187, 187, 183, 168, 189, 186, 166, 183, 162, 146, 212, 183, 199, 185, 167, 194, 185, 167, 182, 185, 166, 169, 182, 184, 180, 185, 166, 185, 166, 168, 168, 166, 167, 188, 166, 166};
+ model->setOperandValue(op23, op23_init, sizeof(uint8_t) * 9216);
+ static int32_t op25_init[] = {-26162, -6613, -35505, -13651, 4205, -19287, -15670, 8894, 1826, -20286, 635, -23150, -16263, -3742, 493, 942, -25564, -2058, -1912, -28030, -11305, 12381, 3314, 738, 7125, 4763, 1879, -12973, 7870, -17670, -23782, -5104, -2387, -20615, -4407, 828, -2961, -9653, -8080, -30691, -25058, 19254, 3774, -6460, -393, -13196, -20676, -18123, -4261, 1189, -9397, 5694, 20380, -13173, -18620, -2947, -1953, 352, 4544, -1677, 9000, 5035, -17370, -13016, -1935, 3669, -5581, 4263, -12720, 4940, -7854, -2269, 14923, 9484, -13580, -20631, 4369, -13059, 21561, -9196, -3355, -3902, -20436, -10399, 18447, -8978, -17818, -2435, 6770, -12412, 6257, -3901, 3171, 9348, -15047, -9, 3959, -11360, -9952, -7715, 8133, -7501, -7636, 8210, -22938, -15602, 2910, -28592, 14006, -37239, -22862, -9260, -18794, -2159, -13955, 2878, -6744, -5564, -1159, 12463, -175, -16231, 1528, -4875, -13822, -13564, -6928, -1312, -18731, 3920, 13706, 12257, -8810, -12139, -16525, -8218, -13866, -1432, -4876, -10133, -21051, -10786, -640, 10879, 749, -10442, -4192, -4545, -7910, -22521, -13701, -6391, -1128, 6703, 8342, -3225, -9932, -12819, -13828, 6806, -1111, 11234, 1834, 2515, 8383, 23131, -11768, -3710, -6171, 6122, -16934, 20966, 9313, -1695, -18109, -3377, -8631, 6854, 13926, 7761, 13234, 3554, -14130, -2726, -9053, -16697, -17426, -1673, 1815, -20214, 6983, 5676, -13490, -1714, 8004, 7489, 7616, -4155, -6935, -23942, 21549, -11000, -8980, 5646, 793, -10495, -17473, 1420, -592, -15692, 3853, -8842, -13222, -11494, -7196, 1905, -12911, 1846, -8977, 4108, -30526, 1225, 762, 9545, 9833, -13887, -7675, -8479, -7212, -1215, -4351, 2544, 15155, 636, -5674, 12685, -13405, -13935, -1495, -36886, -8259, 10313, -13588, -14226, 2714, -203, -15344, -291, 733, 3781, 13639, -19214, -8485, -71, 2635, -11178, -2427, -14758, -10628, 8166, -14413, -32862, -2039, -23363, -3324, -2320, 10700, 6810, -15059, 9192, 11028, -29741, -3230, 315, 6132, -3783, -8966, 12220, 9800, -10563, 7237, -22141, -5098, 13574, -1692, -10205, -4570, 9157, -6129, -14005, -18925, -7588, -842, 12171, 14278, 2274, 2384, -12368, -1308, -5855, 3585, 5496, -8727, 4098, 12959, -12080, -31164, 1001, -9723, -5228, -837, 14132, 1651, -16722, -8674, -10131, -3099, 2391, -34743, -16446, -14681, -20983, 6685, -12286, -9212, 2155, -10829, 7336, -13987, 13645, -10036, -13973, 17432, -15246, 9043, -3891, 1316, -9151, -24570, -4137, 9906, -13518, -13393, -18040, -9624, -2928, -4898, -12108, 13202, -8156, 20389, -3726, -11759, -7768, -984, -13593, 6368, 5561, -25845, -1016, -8977, 7120, -950, -4870, -6612, 8366, -16214, -3769, -6646, 20073, -6727, -6789, 4833, -3262, -6717, 10246, -11139, 694, -8534, 18493, 5183, -4383, -5514, -7871, 2665, -11321, -5562, -15995, 4279, -4429, 3949, -15922, 5010, 13385, -7529, 1665, 3419, 19872, 20550, 7852, 7263, 15425, -11392, 3598, -8417, -11381, -14652, -15377, -1523, -9181, -4264, 3759, -19837, -10905, -9051, 3987, -6186, 20542, 5655, -4535, -16901, -19650, -2827, -10952, -11896, -7432, 23140, 10196, 15854, 15213, -9724, -6592, -3908, 10221, -7666, -14058, 4259, 18087, 1018, -2699, -13378, -3858, -12226, -24426, -21368, -15381, -844, -9967, 3945, -11046, -16166, -3030, -13701, -5504, -3180, -8702, -6243, 6997, -3694, -593, -9928, -9382, 73, -12242, -9915, -35064, -15702, -5086, 3870, -28152, 8219, 5859, 11106, -2252, -24084, -3647, 12517, -748, -12563, -13912, 6855, -5563, -20747, -4809, -6260, -6543, 16842, 20371, -6374, 2646, -12752, 20351, -18849, -17724, -301, 5960, -8890, -1829, 9183, -13240, 14121, -27268, -11666, -2775, -6580, -9491, 20002, -17639, -8870, -845, 1317, -15383, -17317, 12828, 12222, -16823, -3606, 7209, 4854, 11255, -14194, 3959, -1767, -1625, 4376, 8806, 2156, -18144, 5731, -2281, -2134, -4205, -9969, -7783, -23236, -9587, -4276, 26147, -1748, -22760, 22334, 5279, -3063, -9039, 11417, 1472, -16043, -1064, 1772, -2243, -3391, -11000, -2913, 7386, 17091, 5174, 16236, -14638, 17349, 7913, 680, -7350, -209, -5856, -14529, -4519, -2380, 1738, -2427, -483, -2548, -5534, 4646, -17624, 4040, -15457, -17343, 429, -3886, 6409, 4825, -4191, -7280, -15755, 11934, 21581, -16485, 939, 12734, -7569, 5195, -2524, 4908, -1499, -7979, -3755, -7851, 1296, -1817, -4830, -17380, 12717, -18517, 11639, -17554, -4010, -14702, -11933, -22, -7028, -14885, -5210, -5698, -8114, -670, -7674, -4923, -20991, -4542, 7137, 12128, 2983, -2558, -5007, -10955, -10580, 11060, -3548, -2164, -11180, 5108, -5086, -30945, -10254, -10188, -6601, 14612, -7078, -3041, 21081, -12861, 9068, -18282, -10731, -8492, -12254, -2061, -25806, 1913, -5928, 10375, -31530, -1866, 5769, -1483, -9592, -1958, 6055, -3820, -15736, -18168, -10589, -15207, 12070, -25049, 12332, 3064, -6718, -15744, -12430, -8552, 19418, 26595, 31379, 11560, -3656, -6823, -7411, -23215, 8942, -15298, -12822, 5121, -15073, -21113, 10221, -1322, -9718, -10407, -7079, -10707, 16642, -6468, -5785, -653, -24621, -6797, -15177, -4503, -16692, -27633, -11908, 4665, 4519, -11775, -8375, -7585, -25005, 2289, 2042, -7631, -14514, -13573, -14593, 19713, 3908, -6195, -13780, -2786, -493, -32260, -9388, -4598, -16237, -18422, 18875, 12401, -10827, -2169, 2910, -2799, -6514, -11196, -5438, -8069, -28262, 1154, -27282, -2814, 799, -22336, 5007, -21195, -2553, -25731, 1025, 1646, -3789, 113, -3412, -1914, -15037, 10447, 21412, 5351, -1372, -14564, -8323, -4137, -11350, -5685, 6426, -19840, 2966, 9854, -20742, -9296, 64, -2134, -13242, -41689, -16428, -947, 8750, -9295, 7692, -10720, -10123, -8789, -8885, 3277, -8326, 2054, -8289, 9372, 6071, -3163, -20541, 10490, -8166, -1340, -4542, 350, -11319, -10114, -927, 2046, -20164, -21654, 2914, -6083, -5313, -21487, -7834, 4402, -7154, -3915, 5780, -24430, -3961, -12721, 15682, 2723, -18175, -11728, -1342, 623, -7215, -10952, -19728, 6028, -10852, -12081, -8912, -15550, 5544, -27454, -8112, -7784, -536, -4789, -17527, 577, -9080, 2518, 4624, -3219, -9547, -7244, 8191, -2266, -2170, -615, -16545, -501, 5238, -6708, -18092, -14365, -794, -11216, -8961, -1071, 6462, -12948, 58, 8327, 37, 22290, 2584, 1796, -1195, -13303, -5904, 36577, -769, -5306, -4666, 6068, -11579, -6031, -11108, -6758, -4553, 4501, 602, -29156, 1373, 17504, 8059, -4587, 922, -4312, 16767, 16628, -838, -726, 9191, 23381, -9736, 8401, -9301, -1649, -1658, 2462, -218, -14604, -9317, -19467, -22911, -9432, 2787, -6900, -2782, -1356, 7362, -4229, 18051, -15326, 8074, -24538, -8356, 9135, -12763, -17368, 2901, -10952, 3238, 4554, 12641, -17563, 14674, -8532, -4983, -30604, -21666, 4701, -4791, -23303, -5170, -6377, 8178, -24380, 11494, -10568, -25637, -417, 17485, 23996, -2006, 5104, -12569, 4285, -13193, -15527, -14634, -7498, -2356, -4129, -10391, -4060, -940, -24346, -8040, -17625, 4929, -19981, -13010, -9283, -13459, 22118, 4208, -5005, -19483, 8428, -7617, 15082, -524, 7526, -1883, 1302, 8691, -11063, 11738, -17794, 6617, -2478, -10466, -24237, -9517, -3084, -23759, 3774, -2590, -16017, -16692, 20443, 4386, -3589, 3527, -11749, -2130, 10041, -15341, 4512, -13005, -1669, -4027, -5702, -17263, 2954, -41854, 5651, 10648, -13804, 18020, 5698, 7785, 812, 79, -1840, -11138, 8976, 2619, -2038, 15148, -20489, -5117, -8041, -6644, -14446, 15541, -15148, 337};
+ model->setOperandValue(op25, op25_init, sizeof(int32_t) * 1024);
+ static uint8_t op26_init[] = {131, 123, 129, 127, 125, 136, 133, 134, 130, 135, 117, 116, 137, 126, 109, 107, 121, 121, 122, 115, 132, 129, 128, 138, 133, 139, 128, 123, 113, 123, 113, 127, 122, 140, 121, 129, 113, 109, 142, 139, 111, 127, 117, 125, 118, 131, 132, 111, 131, 105, 124, 137, 137, 112, 125, 128, 128, 114, 117, 120, 128, 108, 125, 133, 125, 118, 115, 132, 107, 121, 118, 125, 115, 117, 123, 138, 141, 126, 126, 121, 122, 113, 130, 132, 146, 110, 139, 123, 122, 130, 129, 129, 120, 142, 133, 129, 114, 128, 127, 113, 115, 134, 129, 110, 130, 129, 120, 127, 134, 112, 122, 128, 127, 121, 131, 123, 133, 135, 116, 96, 134, 137, 128, 116, 132, 115, 139, 122, 131, 133, 128, 105, 117, 123, 117, 119, 118, 138, 113, 110, 128, 121, 124, 134, 115, 138, 110, 129, 138, 123, 133, 119, 145, 109, 127, 129, 120, 120, 139, 136, 119, 140, 127, 115, 129, 126, 125, 133, 118, 131, 131, 128, 107, 123, 127, 124, 118, 137, 111, 121, 115, 138, 128, 111, 130, 118, 140, 128, 125, 126, 129, 107, 145, 126, 119, 122, 141, 141, 122, 133, 130, 117, 140, 139, 123, 127, 155, 135, 126, 131, 122, 117, 115, 122, 129, 103, 113, 136, 129, 120, 126, 125, 123, 120, 121, 134, 145, 126, 127, 105, 125, 135, 136, 121, 143, 122, 129, 131, 112, 120, 106, 149, 119, 126, 122, 119, 122, 129, 129, 119, 141, 122, 125, 103, 128, 123, 143, 127, 143, 120, 132, 128, 122, 137, 131, 122, 114, 133, 121, 130, 115, 136, 125, 125, 130, 108, 141, 137, 110, 113, 100, 112, 132, 130, 119, 120, 110, 129, 132, 126, 120, 114, 126, 136, 120, 135, 139, 130, 135, 116, 115, 131, 119, 126, 142, 125, 124, 126, 111, 112, 132, 135, 124, 134, 117, 111, 130, 120, 123, 133, 139, 125, 122, 122, 106, 125, 125, 145, 136, 120, 113, 129, 119, 123, 126, 134, 140, 118, 139, 112, 106, 140, 131, 124, 122, 148, 126, 128, 137, 123, 120, 114, 111, 107, 117, 119, 103, 142, 121, 117, 130, 122, 113, 120, 143, 127, 134, 127, 145, 123, 123, 119, 148, 126, 135, 127, 124, 127, 138, 136, 126, 120, 131, 145, 120, 147, 140, 118, 123, 148, 127, 121, 119, 125, 119, 109, 122, 126, 124, 128, 109, 153, 128, 130, 136, 134, 126, 121, 121, 130, 126, 135, 125, 108, 155, 138, 108, 122, 128, 148, 107, 145, 119, 134, 121, 107, 132, 120, 135, 144, 124, 128, 109, 137, 132, 126, 126, 125, 113, 114, 139, 145, 121, 133, 122, 139, 141, 125, 116, 131, 125, 123, 128, 141, 108, 101, 124, 119, 112, 125, 138, 121, 132, 138, 141, 125, 128, 131, 112, 127, 121, 138, 156, 117, 114, 120, 120, 122, 117, 140, 133, 131, 113, 105, 139, 119, 119, 146, 137, 122, 141, 115, 136, 113, 118, 120, 123, 122, 136, 125, 132, 129, 137, 118, 154, 140, 116, 113, 132, 123, 126, 137, 136, 138, 135, 109, 131, 129, 110, 122, 102, 114, 129, 118, 125, 120, 131, 127, 121, 121, 130, 113, 126, 118, 138, 121, 119, 136, 134, 143, 132, 119, 125, 129, 98, 116, 130, 126, 144, 140, 136, 117, 136, 126, 114, 127, 122, 118, 129, 114, 116, 120, 133, 131, 129, 129, 136, 121, 130, 114, 115, 119, 140, 126, 125, 122, 116, 121, 106, 108, 134, 138, 118, 118, 137, 128, 137, 115, 114, 143, 129, 120, 112, 105, 133, 124, 115, 121, 120, 125, 118, 126, 142, 130, 139, 124, 129, 114, 122, 113, 120, 122, 122, 122, 123, 132, 132, 113, 122, 134, 140, 125, 129, 96, 125, 115, 101, 112, 123, 119, 116, 128, 121, 153, 112, 129, 134, 131, 120, 145, 144, 140, 134, 135, 125, 131, 135, 116, 113, 121, 121, 132, 137, 121, 123, 128, 138, 113, 128, 116, 132, 141, 124, 147, 114, 121, 121, 127, 125, 114, 108, 120, 132, 141, 144, 135, 114, 133, 122, 113, 129, 133, 131, 134, 112, 139, 131, 125, 122, 127, 135, 124, 128, 139, 139, 132, 118, 114, 129, 134, 116, 107, 117, 131, 133, 132, 133, 133, 129, 107, 125, 127, 136, 123, 119, 122, 133, 115, 126, 129, 122, 140, 113, 128, 104, 138, 117, 143, 115, 125, 132, 128, 136, 137, 125, 136, 118, 139, 125, 129, 109, 114, 120, 148, 124, 136, 133, 119, 138, 121, 110, 137, 119, 123, 131, 115, 131, 125, 129, 124, 136, 123, 119, 121, 114, 131, 126, 146, 113, 132, 112, 112, 132, 147, 125, 119, 141, 108, 125, 124, 132, 143, 118, 140, 119, 136, 121, 115, 125, 136, 121, 136, 110, 131, 138, 125, 135, 116, 126, 113, 124, 139, 128, 128, 132, 122, 120, 122, 125, 109, 141, 114, 135, 150, 138, 145, 125, 129, 145, 109, 123, 100, 129, 127, 115, 139, 132, 134, 130, 140, 122, 137, 124, 111, 131, 108, 124, 139, 140, 126, 127, 128, 109, 129, 128, 140, 118, 118, 117, 133, 120, 124, 123, 129, 120, 138, 129, 132, 118, 137, 101, 116, 129, 105, 106, 122, 103, 133, 117, 156, 123, 132, 119, 136, 132, 134, 109, 146, 131, 146, 138, 131, 127, 130, 113, 118, 125, 121, 139, 127, 118, 126, 125, 126, 117, 147, 116, 132, 124, 117, 132, 145, 126, 113, 122, 115, 147, 114, 116, 119, 109, 115, 129, 144, 123, 124, 123, 126, 125, 148, 125, 131, 134, 131, 110, 125, 132, 128, 137, 125, 119, 119, 111, 127, 103, 140, 130, 137, 121, 137, 126, 127, 125, 139, 108, 126, 128, 133, 123, 134, 110, 155, 119, 128, 109, 120, 152, 125, 148, 135, 118, 117, 131, 127, 142, 132, 128, 140, 117, 130, 125, 121, 121, 127, 126, 124, 114, 133, 129, 138, 117, 123, 128, 147, 114, 130, 112, 119, 119, 117, 132, 132, 121, 120, 145, 115, 144, 123, 133, 134, 125, 147, 116, 137, 121, 128, 145, 124, 97, 136, 140, 122, 134, 126, 116, 116, 108, 126, 125, 130, 122, 115, 125, 125, 132, 114, 132, 131, 126, 120, 126, 128, 134, 133, 134, 152, 115, 139, 131, 108, 128, 120, 124, 123, 136, 132, 131, 124, 126, 120, 129, 124, 124, 109, 111, 97, 136, 116, 116, 115, 124, 130, 114, 130, 121, 132, 124, 123, 150, 136, 119, 131, 115, 123, 109, 121, 132, 123, 121, 140, 131, 124, 125, 122, 119, 128, 113, 117, 136, 125, 120, 132, 118, 115, 133, 130, 123, 137, 124, 139, 117, 126, 118, 137, 133, 121, 127, 112, 111, 117, 139, 135, 137, 94, 131, 128, 126, 128, 133, 112, 146, 122, 112, 117, 120, 113, 123, 117, 127, 112, 115, 117, 134, 120, 118, 112, 127, 121, 130, 117, 126, 113, 122, 137, 131, 145, 124, 132, 122, 116, 126, 113, 122, 132, 129, 130, 104, 123, 123, 116, 133, 124, 127, 122, 114, 116, 134, 139, 135, 135, 126, 145, 128, 144, 141, 123, 109, 99, 109, 120, 160, 122, 117, 125, 116, 119, 106, 129, 140, 118, 129, 139, 130, 119, 143, 114, 129, 119, 141, 138, 130, 119, 140, 135, 142, 132, 140, 121, 126, 111, 120, 125, 137, 131, 118, 125, 109, 124, 125, 108, 114, 114, 125, 130, 109, 143, 136, 126, 118, 136, 119, 126, 121, 119, 122, 118, 121, 119, 130, 105, 120, 122, 126, 115, 122, 117, 129, 133, 115, 128, 113, 124, 119, 120, 151, 125, 121, 110, 125, 125, 133, 112, 124, 116, 109, 119, 126, 120, 124, 136, 122, 126, 144, 123, 113, 125, 120, 134, 115, 120, 152, 135, 112, 124, 124, 129, 110, 135, 117, 118, 113, 122, 111, 122, 110, 118, 118, 128, 132, 126, 122, 110, 139, 120, 117, 120, 112, 113, 124, 130, 117, 126, 125, 137, 118, 126, 117, 117, 121, 121, 130, 109, 143, 149, 141, 126, 125, 125, 132, 131, 119, 134, 116, 123, 107, 124, 130, 138, 125, 138, 127, 124, 124, 124, 144, 133, 148, 153, 114, 140, 137, 133, 123, 119, 125, 135, 114, 128, 105, 112, 120, 135, 127, 117, 133, 133, 125, 130, 127, 121, 103, 131, 124, 133, 142, 118, 130, 131, 124, 138, 137, 120, 127, 137, 125, 116, 129, 122, 115, 132, 145, 119, 130, 115, 127, 125, 113, 134, 126, 130, 118, 140, 135, 124, 129, 117, 129, 129, 123, 112, 122, 134, 116, 135, 135, 127, 108, 121, 128, 136, 122, 112, 143, 108, 134, 111, 124, 132, 110, 118, 127, 139, 111, 119, 120, 128, 116, 124, 126, 115, 126, 121, 116, 125, 136, 132, 125, 120, 130, 120, 116, 122, 118, 124, 113, 117, 128, 125, 111, 119, 126, 119, 117, 131, 127, 124, 121, 137, 125, 118, 99, 136, 150, 108, 114, 136, 120, 121, 138, 148, 118, 133, 134, 113, 115, 116, 116, 143, 139, 116, 128, 132, 122, 128, 135, 127, 114, 131, 129, 120, 118, 122, 132, 125, 149, 128, 125, 126, 121, 125, 130, 128, 116, 126, 133, 140, 121, 139, 123, 136, 135, 124, 131, 139, 137, 117, 118, 128, 132, 120, 122, 118, 113, 121, 132, 107, 126, 136, 118, 133, 112, 127, 103, 128, 119, 117, 126, 126, 127, 130, 124, 126, 119, 130, 124, 121, 121, 111, 118, 126, 105, 119, 121, 127, 142, 127, 115, 115, 126, 130, 136, 115, 127, 150, 114, 121, 158, 116, 125, 112, 130, 111, 134, 117, 118, 130, 116, 117, 116, 137, 133, 120, 133, 126, 131, 147, 119, 123, 116, 138, 127, 126, 113, 125, 128, 136, 140, 124, 116, 126, 129, 122, 116, 121, 129, 138, 132, 112, 120, 137, 131, 145, 120, 116, 127, 119, 133, 135, 133, 126, 129, 117, 139, 120, 121, 119, 115, 143, 119, 117, 123, 131, 122, 130, 136, 124, 131, 138, 111, 118, 125, 136, 139, 131, 134, 145, 137, 125, 115, 114, 109, 139, 124, 132, 147, 142, 139, 129, 126, 114, 130, 132, 108, 144, 142, 129, 124, 119, 114, 131, 128, 125, 130, 129, 116, 128, 121, 147, 116, 139, 133, 122, 133, 114, 128, 138, 117, 127, 139, 116, 128, 127, 123, 123, 127, 129, 125, 130, 132, 138, 126, 131, 136, 118, 119, 122, 132, 122, 131, 121, 129, 151, 124, 151, 123, 125, 132, 116, 115, 116, 125, 132, 125, 120, 120, 141, 116, 131, 138, 113, 137, 120, 148, 128, 113, 116, 133, 129, 127, 124, 135, 122, 116, 136, 125, 114, 113, 126, 128, 122, 88, 146, 141, 129, 123, 108, 144, 117, 128, 120, 114, 100, 120, 143, 126, 131, 115, 107, 103, 124, 125, 126, 131, 139, 129, 130, 119, 142, 126, 124, 113, 123, 118, 147, 121, 122, 126, 123, 126, 132, 123, 123, 120, 106, 127, 147, 115, 129, 127, 120, 119, 135, 140, 120, 126, 126, 123, 119, 155, 122, 127, 130, 144, 129, 141, 126, 137, 127, 123, 114, 117, 122, 127, 119, 110, 127, 125, 106, 139, 136, 126, 117, 128, 133, 117, 118, 125, 122, 123, 139, 145, 129, 117, 118, 131, 133, 119, 114, 126, 112, 125, 126, 129, 136, 132, 125, 133, 121, 117, 125, 117, 131, 123, 104, 112, 128, 120, 108, 129, 129, 122, 108, 125, 109, 125, 122, 127, 111, 132, 131, 131, 114, 129, 128, 125, 121, 137, 138, 117, 123, 121, 129, 128, 131, 103, 126, 131, 117, 132, 122, 131, 118, 129, 164, 125, 143, 126, 122, 120, 116, 132, 119, 104, 124, 119, 132, 119, 134, 147, 129, 122, 137, 122, 125, 140, 127, 122, 127, 119, 123, 118, 120, 125, 141, 113, 130, 133, 131, 118, 118, 130, 128, 128, 141, 111, 114, 139, 133, 109, 101, 118, 117, 124, 129, 99, 147, 140, 126, 115, 120, 132, 140, 118, 127, 133, 120, 126, 137, 115, 110, 109, 155, 131, 130, 131, 131, 143, 130, 125, 111, 139, 126, 147, 127, 120, 145, 121, 143, 109, 137, 122, 102, 121, 119, 130, 130, 121, 136, 134, 117, 121, 128, 114, 122, 136, 137, 122, 131, 125, 125, 135, 127, 127, 132, 124, 126, 139, 126, 120, 127, 116, 143, 126, 134, 107, 131, 120, 129, 119, 123, 132, 131, 129, 145, 115, 138, 113, 123, 115, 122, 128, 152, 112, 135, 139, 134, 116, 110, 138, 149, 141, 130, 152, 129, 122, 124, 133, 124, 121, 118, 152, 99, 135, 132, 125, 111, 120, 130, 118, 123, 110, 137, 119, 123, 136, 128, 126, 131, 114, 118, 123, 133, 127, 133, 125, 111, 136, 124, 132, 137, 119, 127, 134, 119, 130, 107, 127, 128, 136, 131, 105, 113, 155, 112, 124, 129, 118, 136, 121, 128, 127, 127, 131, 123, 128, 127, 130, 115, 135, 129, 136, 124, 115, 117, 141, 140, 137, 107, 134, 132, 128, 126, 119, 133, 137, 126, 121, 120, 119, 129, 129, 113, 126, 129, 122, 133, 128, 117, 115, 134, 133, 123, 121, 136, 124, 118, 124, 133, 107, 118, 119, 114, 132, 113, 124, 124, 140, 114, 117, 111, 126, 129, 97, 121, 140, 124, 120, 132, 118, 136, 121, 139, 122, 117, 119, 120, 121, 133, 120, 135, 128, 134, 121, 125, 116, 117, 115, 132, 116, 119, 108, 119, 131, 132, 131, 128, 126, 125, 108, 134, 119, 152, 125, 107, 137, 132, 144, 151, 119, 122, 118, 140, 131, 114, 135, 125, 118, 138, 129, 126, 141, 131, 134, 123, 100, 122, 120, 114, 142, 134, 132, 144, 117, 123, 106, 131, 138, 133, 138, 123, 132, 142, 119, 128, 136, 139, 118, 126, 135, 123, 111, 129, 131, 131, 140, 124, 123, 114, 138, 129, 121, 130, 119, 126, 117, 131, 128, 129, 122, 130, 135, 134, 118, 130, 103, 108, 126, 129, 122, 132, 117, 121, 122, 121, 119, 120, 139, 126, 122, 134, 114, 127, 120, 126, 126, 128, 104, 111, 120, 111, 132, 125, 125, 122, 130, 113, 136, 116, 137, 118, 129, 142, 119, 131, 123, 140, 142, 139, 118, 119, 137, 132, 117, 134, 121, 112, 126, 134, 128, 98, 116, 124, 126, 129, 133, 133, 124, 111, 140, 133, 122, 140, 137, 111, 133, 116, 124, 127, 117, 130, 107, 133, 108, 128, 134, 145, 118, 134, 113, 102, 107, 115, 135, 132, 117, 119, 136, 121, 122, 114, 130, 145, 130, 142, 126, 143, 148, 147, 117, 119, 165, 121, 126, 134, 141, 120, 129, 123, 132, 131, 113, 131, 131, 131, 123, 117, 117, 134, 123, 129, 137, 121, 119, 121, 142, 122, 141, 141, 131, 121, 123, 123, 122, 128, 114, 110, 106, 120, 128, 119, 131, 117, 133, 136, 123, 145, 119, 142, 126, 111, 121, 120, 124, 153, 134, 140, 142, 137, 133, 115, 119, 128, 120, 134, 110, 128, 136, 128, 109, 115, 129, 127, 130, 119, 127, 136, 108, 131, 127, 129, 135, 125, 127, 125, 128, 131, 144, 122, 119, 127, 102, 124, 117, 127, 99, 128, 131, 151, 130, 113, 126, 114, 141, 115, 115, 132, 107, 122, 125, 145, 127, 145, 132, 142, 135, 112, 113, 116, 134, 121, 145, 126, 123, 108, 123, 125, 122, 112, 119, 124, 130, 119, 129, 132, 125, 131, 112, 144, 110, 132, 126, 144, 128, 125, 117, 133, 139, 129, 134, 117, 114, 130, 114, 135, 124, 130, 113, 124, 116, 138, 125, 125, 133, 128, 135, 133, 114, 127, 116, 136, 130, 125, 131, 128, 127, 138, 116, 131, 134, 117, 129, 136, 128, 123, 131, 106, 94, 131, 132, 128, 125, 105, 128, 125, 123, 120, 131, 125, 139, 136, 143, 139, 138, 108, 130, 137, 133, 128, 132, 146, 130, 128, 128, 124, 133, 128, 139, 137, 122, 137, 113, 126, 134, 143, 121, 119, 129, 124, 117, 121, 134, 122, 124, 136, 115, 130, 131, 124, 112, 111, 123, 146, 94, 125, 137, 134, 132, 123, 134, 119, 120, 135, 133, 125, 131, 111, 122, 121, 110, 142, 112, 151, 138, 129, 135, 124, 134, 145, 112, 126, 133, 135, 111, 108, 118, 121, 119, 123, 132, 135, 134, 129, 117, 125, 140, 138, 112, 132, 137, 138, 140, 135, 146, 112, 112, 113, 131, 142, 110, 141, 121, 110, 126, 121, 112, 145, 126, 138, 137, 126, 125, 144, 125, 141, 149, 122, 118, 134, 122, 110, 123, 146, 120, 145, 117, 138, 118, 128, 108, 135, 141, 129, 130, 131, 121, 122, 117, 117, 131, 131, 132, 130, 103, 127, 124, 129, 102, 125, 140, 118, 127, 120, 123, 135, 135, 136, 131, 130, 118, 139, 141, 144, 136, 135, 120, 130, 124, 134, 129, 113, 121, 122, 132, 127, 133, 116, 129, 129, 114, 135, 110, 116, 115, 118, 135, 117, 131, 115, 121, 130, 128, 135, 121, 130, 125, 121, 122, 115, 116, 137, 120, 131, 126, 130, 125, 123, 130, 125, 127, 127, 126, 135, 114, 121, 134, 130, 138, 127, 97, 130, 134, 119, 142, 119, 116, 112, 108, 122, 126, 123, 149, 122, 130, 144, 116, 125, 124, 115, 140, 117, 121, 117, 115, 130, 134, 134, 121, 141, 134, 133, 135, 119, 119, 131, 132, 110, 132, 135, 131, 123, 144, 111, 112, 109, 132, 109, 137, 124, 143, 131, 139, 114, 139, 121, 122, 114, 126, 118, 109, 135, 120, 122, 131, 120, 135, 138, 91, 124, 126, 124, 114, 122, 130, 116, 125, 138, 123, 122, 145, 128, 137, 148, 117, 126, 124, 126, 116, 143, 121, 101, 136, 111, 148, 135, 122, 124, 138, 135, 133, 128, 131, 138, 116, 139, 116, 122, 117, 127, 116, 124, 111, 116, 122, 128, 116, 141, 120, 139, 135, 123, 130, 127, 116, 134, 118, 122, 116, 126, 130, 139, 126, 110, 114, 124, 134, 112, 131, 121, 123, 126, 130, 130, 126, 120, 112, 120, 126, 138, 131, 129, 115, 123, 123, 136, 117, 122, 130, 123, 105, 132, 125, 120, 115, 106, 129, 130, 119, 138, 121, 134, 139, 123, 137, 120, 133, 116, 134, 120, 120, 122, 141, 124, 118, 119, 124, 124, 114, 116, 129, 125, 122, 126, 138, 122, 129, 139, 129, 143, 117, 130, 110, 127, 128, 123, 119, 122, 118, 117, 116, 131, 137, 127, 119, 122, 123, 145, 123, 133, 125, 124, 106, 124, 124, 130, 125, 127, 123, 123, 127, 136, 109, 134, 135, 107, 129, 106, 125, 128, 159, 115, 122, 122, 146, 109, 118, 145, 123, 131, 118, 117, 131, 121, 117, 120, 118, 125, 122, 151, 142, 135, 126, 149, 136, 146, 109, 129, 132, 131, 136, 115, 123, 127, 119, 113, 113, 121, 116, 115, 123, 117, 138, 120, 117, 136, 114, 124, 125, 122, 120, 146, 147, 125, 123, 130, 149, 112, 131, 117, 131, 114, 128, 143, 133, 110, 124, 110, 133, 137, 102, 131, 120, 118, 116, 129, 127, 134, 129, 114, 114, 127, 115, 145, 140, 135, 123, 151, 107, 122, 129, 133, 123, 135, 127, 132, 111, 113, 122, 131, 135, 113, 109, 117, 138, 116, 122, 111, 133, 127, 113, 126, 120, 108, 128, 133, 131, 110, 113, 139, 116, 138, 126, 135, 99, 139, 138, 115, 106, 122, 138, 108, 127, 154, 137, 143, 144, 153, 119, 115, 137, 129, 124, 127, 146, 145, 146, 116, 133, 139, 101, 116, 118, 116, 140, 117, 108, 114, 126, 139, 130, 141, 128, 138, 105, 128, 116, 137, 123, 135, 123, 115, 100, 130, 138, 122, 122, 120, 118, 128, 136, 126, 119, 102, 139, 132, 133, 123, 131, 120, 146, 111, 119, 125, 129, 118, 111, 136, 120, 132, 131, 130, 132, 126, 129, 117, 99, 130, 121, 137, 103, 130, 125, 132, 119, 96, 114, 125, 134, 124, 139, 136, 111, 130, 139, 120, 142, 155, 126, 129, 115, 137, 117, 122, 126, 118, 139, 121, 123, 115, 104, 127, 113, 125, 117, 125, 115, 128, 121, 132, 105, 123, 136, 125, 125, 102, 128, 117, 120, 140, 117, 108, 111, 146, 104, 131, 123, 121, 108, 130, 126, 144, 134, 127, 141, 112, 120, 107, 138, 139, 121, 139, 127, 130, 106, 120, 134, 119, 131, 128, 130, 119, 132, 135, 131, 131, 134, 109, 123, 122, 120, 116, 140, 135, 116, 142, 123, 142, 123, 123, 145, 130, 126, 107, 121, 125, 130, 124, 138, 130, 129, 122, 134, 123, 118, 126, 135, 132, 103, 133, 133, 118, 129, 142, 115, 117, 120, 116, 118, 149, 144, 131, 128, 135, 119, 108, 111, 114, 104, 138, 133, 126, 99, 135, 124, 134, 121, 108, 125, 122, 120, 123, 121, 129, 131, 87, 106, 130, 133, 115, 136, 115, 127, 118, 139, 159, 120, 125, 129, 132, 123, 127, 133, 109, 113, 139, 127, 128, 125, 114, 109, 134, 130, 107, 127, 131, 100, 110, 122, 124, 127, 124, 127, 119, 118, 122, 111, 148, 128, 140, 126, 104, 135, 116, 126, 113, 123, 118, 128, 128, 124, 119, 141, 125, 129, 144, 121, 106, 130, 138, 136, 126, 138, 107, 119, 114, 137, 139, 133, 126, 123, 132, 111, 132, 137, 114, 133, 130, 105, 127, 133, 127, 133, 110, 123, 139, 129, 125, 114, 117, 144, 128, 137, 127, 128, 125, 111, 119, 101, 117, 124, 134, 135, 143, 126, 110, 109, 127, 141, 114, 139, 118, 120, 103, 126, 106, 116, 122, 132, 122, 124, 128, 139, 139, 120, 117, 122, 107, 144, 131, 141, 88, 134, 124, 121, 143, 110, 135, 128, 104, 110, 122, 142, 131, 119, 125, 140, 127, 135, 138, 122, 125, 144, 144, 125, 140, 112, 109, 129, 113, 132, 130, 107, 141, 115, 132, 145, 133, 118, 122, 147, 125, 119, 119, 128, 147, 145, 124, 122, 132, 138, 113, 140, 126, 152, 124, 136, 114, 124, 136, 120, 131, 132, 134, 130, 118, 126, 132, 129, 141, 113, 120, 128, 130, 129, 107, 127, 140, 110, 127, 127, 122, 125, 122, 119, 120, 108, 116, 113, 124, 135, 119, 129, 130, 149, 124, 130, 126, 131, 123, 123, 117, 131, 131, 131, 133, 138, 110, 120, 132, 142, 109, 125, 152, 118, 122, 106, 123, 128, 136, 134, 123, 129, 132, 123, 144, 120, 120, 117, 117, 114, 135, 110, 124, 126, 124, 113, 127, 102, 113, 109, 121, 121, 110, 130, 133, 127, 122, 116, 119, 110, 116, 143, 129, 133, 144, 142, 130, 104, 123, 110, 113, 129, 136, 124, 123, 125, 119, 118, 127, 124, 139, 124, 137, 131, 127, 124, 131, 131, 137, 109, 122, 120, 119, 124, 122, 123, 126, 145, 111, 129, 107, 134, 123, 118, 118, 111, 125, 152, 134, 128, 140, 133, 128, 130, 140, 130, 135, 117, 127, 120, 115, 118, 106, 106, 123, 114, 126, 131, 111, 120, 144, 119, 136, 123, 133, 130, 128, 117, 137, 121, 146, 118, 119, 143, 116, 125, 129, 126, 113, 115, 124, 141, 128, 123, 138, 130, 141, 134, 133, 118, 130, 141, 129, 118, 140, 121, 128, 135, 152, 121, 119, 121, 120, 130, 132, 138, 121, 118, 140, 148, 123, 119, 129, 121, 108, 113, 123, 123, 143, 131, 123, 144, 138, 109, 121, 122, 133, 111, 141, 131, 120, 103, 123, 122, 122, 125, 133, 123, 135, 125, 127, 123, 130, 128, 151, 112, 121, 139, 104, 130, 123, 135, 153, 138, 134, 114, 125, 115, 124, 119, 119, 136, 127, 106, 126, 126, 132, 104, 135, 140, 141, 100, 127, 139, 116, 121, 154, 111, 132, 90, 147, 112, 125, 123, 120, 122, 130, 131, 122, 135, 133, 125, 127, 141, 130, 120, 130, 124, 120, 144, 122, 133, 119, 127, 136, 133, 126, 119, 138, 129, 125, 125, 143, 120, 111, 133, 111, 139, 117, 131, 126, 135, 111, 134, 132, 158, 139, 112, 116, 120, 124, 119, 129, 111, 116, 109, 145, 133, 149, 131, 119, 115, 98, 130, 147, 117, 130, 105, 110, 111, 126, 118, 132, 111, 136, 127, 114, 129, 105, 144, 120, 84, 135, 121, 115, 134, 123, 113, 119, 141, 121, 149, 125, 126, 130, 119, 123, 110, 114, 118, 114, 124, 114, 113, 132, 115, 118, 152, 113, 130, 140, 120, 119, 130, 120, 131, 123, 122, 119, 111, 132, 98, 112, 128, 142, 134, 155, 110, 131, 129, 135, 130, 127, 124, 134, 139, 121, 100, 131, 116, 124, 132, 133, 122, 132, 141, 123, 146, 124, 140, 127, 130, 103, 96, 125, 133, 118, 153, 129, 140, 118, 126, 138, 130, 128, 137, 102, 131, 118, 128, 130, 135, 140, 128, 125, 130, 138, 112, 119, 109, 104, 128, 120, 117, 161, 139, 148, 131, 130, 110, 114, 137, 138, 141, 150, 147, 133, 126, 142, 128, 148, 128, 113, 133, 153, 132, 120, 125, 131, 124, 98, 116, 105, 119, 121, 119, 123, 118, 126, 113, 141, 130, 128, 146, 123, 144, 117, 124, 115, 127, 125, 137, 143, 119, 121, 135, 132, 126, 116, 118, 121, 119, 120, 132, 123, 132, 103, 113, 131, 123, 122, 115, 138, 109, 133, 113, 142, 115, 110, 121, 107, 126, 149, 121, 120, 137, 119, 111, 120, 129, 126, 119, 134, 99, 130, 106, 134, 113, 131, 137, 122, 163, 120, 112, 116, 121, 121, 143, 143, 130, 127, 121, 133, 130, 110, 141, 117, 127, 103, 129, 112, 120, 119, 123, 122, 124, 121, 112, 130, 127, 109, 120, 143, 127, 127, 109, 110, 120, 108, 118, 126, 117, 133, 112, 111, 123, 139, 114, 120, 120, 138, 117, 126, 150, 154, 125, 128, 132, 139, 123, 124, 113, 116, 124, 106, 138, 140, 137, 135, 114, 111, 111, 124, 124, 117, 126, 120, 120, 129, 127, 120, 124, 115, 101, 105, 149, 111, 139, 116, 125, 113, 143, 126, 114, 125, 135, 122, 126, 116, 134, 114, 111, 125, 116, 128, 126, 115, 122, 124, 141, 142, 127, 113, 123, 131, 113, 122, 120, 116, 115, 135, 120, 129, 131, 119, 126, 126, 119, 134, 134, 120, 121, 124, 133, 134, 135, 121, 127, 124, 114, 127, 136, 102, 113, 144, 149, 122, 131, 133, 137, 127, 122, 126, 131, 122, 118, 130, 116, 123, 146, 120, 127, 128, 111, 129, 109, 137, 118, 110, 100, 121, 116, 136, 142, 129, 142, 118, 139, 119, 129, 130, 125, 105, 122, 108, 148, 130, 149, 122, 123, 127, 127, 112, 142, 128, 112, 139, 132, 117, 115, 140, 131, 129, 124, 121, 120, 133, 112, 142, 125, 126, 130, 122, 120, 112, 134, 140, 115, 122, 134, 132, 104, 136, 120, 122, 117, 124, 147, 127, 121, 134, 122, 117, 131, 144, 128, 112, 128, 113, 119, 140, 118, 122, 88, 130, 145, 154, 135, 116, 122, 120, 119, 114, 120, 139, 137, 121, 128, 141, 143, 114, 118, 111, 118, 116, 124, 130, 123, 121, 157, 125, 106, 113, 122, 126, 123, 110, 125, 112, 125, 129, 120, 119, 110, 128, 110, 113, 118, 115, 107, 127, 119, 124, 139, 116, 123, 131, 125, 124, 108, 123, 125, 137, 132, 120, 125, 131, 138, 115, 117, 135, 129, 128, 129, 145, 137, 124, 122, 113, 132, 137, 127, 132, 132, 119, 116, 135, 132, 97, 148, 114, 105, 109, 134, 142, 126, 123, 133, 129, 129, 133, 124, 122, 108, 130, 131, 141, 115, 116, 130, 127, 140, 116, 119, 118, 123, 117, 114, 136, 152, 138, 132, 138, 128, 133, 118, 119, 124, 137, 122, 125, 133, 118, 134, 128, 127, 131, 123, 128, 119, 108, 108, 134, 115, 124, 113, 122, 105, 131, 133, 127, 131, 136, 123, 127, 113, 138, 122, 130, 114, 134, 122, 113, 116, 133, 126, 137, 148, 117, 138, 137, 120, 131, 122, 119, 128, 135, 122, 102, 138, 101, 134, 110, 134, 148, 144, 141, 127, 135, 113, 108, 138, 137, 123, 114, 119, 137, 137, 126, 147, 128, 126, 130, 139, 133, 118, 113, 118, 127, 114, 138, 153, 122, 125, 126, 133, 130, 125, 133, 131, 111, 130, 136, 129, 129, 126, 126, 114, 132, 111, 109, 116, 134, 134, 135, 114, 130, 115, 117, 130, 122, 127, 135, 126, 132, 148, 127, 126, 118, 122, 123, 126, 141, 126, 123, 150, 117, 126, 111, 127, 146, 130, 109, 131, 122, 120, 112, 125, 121, 134, 134, 123, 136, 133, 118, 114, 140, 109, 124, 125, 127, 122, 115, 120, 143, 128, 120, 121, 114, 122, 129, 121, 127, 123, 110, 129, 119, 124, 120, 109, 129, 121, 112, 121, 112, 133, 127, 120, 117, 130, 132, 119, 127, 121, 118, 139, 150, 139, 145, 127, 134, 147, 121, 111, 129, 118, 101, 120, 141, 112, 129, 127, 117, 123, 142, 135, 129, 100, 120, 107, 128, 120, 116, 112, 126, 136, 111, 120, 119, 145, 125, 128, 129, 122, 131, 120, 127, 125, 124, 116, 135, 124, 129, 129, 117, 128, 129, 132, 130, 131, 117, 139, 127, 119, 121, 119, 129, 150, 127, 123, 132, 116, 121, 136, 126, 130, 130, 130, 125, 117, 141, 122, 137, 134, 122, 101, 132, 115, 108, 122, 122, 145, 114, 138, 129, 123, 126, 117, 130, 129, 144, 119, 129, 134, 134, 132, 115, 112, 102, 115, 135, 112, 146, 137, 144, 128, 131, 137, 124, 150, 125, 112, 112, 141, 131, 121, 117, 140, 131, 132, 130, 115, 126, 125, 111, 122, 136, 106, 145, 130, 129, 116, 134, 120, 131, 124, 121, 113, 116, 120, 127, 118, 123, 136, 147, 111, 147, 125, 99, 107, 130, 102, 122, 137, 128, 117, 106, 137, 120, 145, 115, 138, 130, 132, 102, 109, 127, 126, 147, 129, 124, 131, 138, 139, 144, 127, 145, 119, 136, 123, 129, 139, 131, 137, 126, 125, 136, 121, 111, 135, 133, 133, 123, 135, 118, 104, 120, 119, 123, 130, 129, 140, 129, 136, 124, 117, 116, 126, 160, 110, 122, 120, 113, 130, 113, 123, 105, 127, 125, 110, 118, 111, 139, 106, 135, 123, 131, 102, 125, 112, 112, 121, 120, 102, 120, 117, 148, 121, 110, 127, 121, 133, 144, 120, 138, 136, 130, 111, 117, 108, 136, 112, 133, 114, 128, 111, 131, 115, 143, 135, 133, 117, 113, 123, 130, 121, 109, 127, 125, 134, 138, 118, 133, 136, 125, 117, 115, 142, 135, 126, 129, 137, 122, 131, 125, 127, 130, 120, 113, 124, 129, 134, 128, 126, 131, 130, 117, 122, 135, 142, 130, 139, 124, 116, 105, 132, 122, 124, 134, 103, 140, 112, 112, 115, 118, 138, 148, 115, 117, 127, 126, 127, 120, 126, 114, 133, 124, 143, 128, 121, 125, 118, 128, 116, 128, 129, 145, 135, 136, 143, 132, 125, 117, 121, 129, 148, 118, 124, 131, 118, 116, 153, 119, 134, 138, 132, 98, 107, 141, 117, 135, 118, 113, 131, 101, 98, 127, 119, 128, 115, 116, 137, 110, 111, 129, 123, 126, 119, 122, 134, 132, 119, 125, 125, 114, 119, 136, 125, 131, 126, 121, 127, 132, 118, 103, 107, 121, 138, 127, 144, 148, 131, 116, 137, 130, 124, 125, 126, 115, 132, 146, 132, 123, 145, 115, 117, 105, 145, 151, 128, 122, 125, 109, 141, 116, 127, 117, 115, 116, 108, 119, 126, 120, 126, 132, 122, 125, 128, 133, 125, 147, 115, 105, 137, 116, 142, 130, 119, 116, 136, 127, 125, 140, 131, 118, 123, 131, 129, 130, 145, 139, 135, 130, 109, 111, 127, 96, 119, 127, 124, 135, 117, 133, 145, 127, 127, 134, 126, 140, 119, 126, 129, 121, 129, 121, 126, 134, 105, 120, 125, 122, 115, 137, 119, 120, 126, 121, 112, 114, 116, 118, 117, 136, 131, 131, 120, 131, 120, 125, 131, 136, 143, 120, 131, 111, 134, 116, 106, 117, 110, 109, 109, 124, 140, 117, 113, 130, 117, 126, 125, 135, 123, 107, 123, 138, 136, 120, 128, 124, 131, 132, 121, 125, 138, 122, 127, 119, 121, 124, 133, 123, 121, 129, 131, 122, 125, 110, 121, 118, 127, 119, 126, 115, 138, 121, 123, 129, 138, 124, 114, 126, 125, 124, 130, 110, 120, 128, 123, 116, 128, 120, 114, 133, 118, 127, 118, 116, 129, 134, 96, 131, 127, 128, 127, 118, 121, 120, 135, 126, 132, 128, 131, 126, 128, 128, 134, 116, 130, 155, 128, 118, 117, 135, 135, 116, 137, 119, 134, 94, 144, 127, 127, 122, 126, 126, 105, 111, 135, 133, 125, 114, 124, 113, 120, 138, 133, 117, 125, 119, 136, 130, 132, 119, 95, 128, 131, 115, 119, 97, 130, 125, 129, 133, 129, 130, 125, 119, 131, 114, 136, 140, 139, 99, 127, 133, 129, 119, 124, 139, 123, 149, 122, 129, 126, 135, 139, 154, 129, 119, 143, 131, 142, 109, 132, 124, 125, 126, 114, 137, 126, 120, 142, 137, 126, 121, 112, 134, 134, 127, 122, 117, 133, 129, 128, 138, 142, 140, 112, 116, 123, 124, 110, 130, 128, 121, 131, 117, 115, 119, 124, 134, 142, 130, 127, 112, 130, 141, 135, 136, 142, 138, 129, 121, 135, 129, 130, 132, 144, 133, 122, 110, 127, 130, 150, 129, 143, 127, 123, 121, 122, 110, 127, 123, 127, 131, 125, 114, 109, 118, 111, 156, 128, 128, 107, 131, 105, 124, 127, 119, 129, 129, 138, 115, 117, 121, 136, 143, 129, 142, 110, 125, 124, 106, 132, 130, 133, 126, 138, 118, 130, 118, 125, 129, 131, 133, 124, 133, 107, 109, 130, 118, 123, 128, 137, 142, 123, 134, 139, 119, 111, 126, 119, 119, 132, 129, 112, 140, 134, 118, 120, 133, 121, 135, 118, 126, 114, 110, 127, 136, 132, 120, 126, 127, 122, 121, 129, 107, 119, 131, 126, 121, 116, 136, 115, 133, 99, 131, 133, 128, 119, 124, 135, 122, 120, 127, 151, 145, 129, 124, 128, 107, 118, 118, 129, 113, 137, 125, 129, 125, 113, 119, 141, 124, 133, 130, 120, 126, 110, 120, 123, 132, 128, 139, 135, 129, 136, 109, 120, 138, 112, 134, 110, 134, 131, 140, 118, 129, 134, 115, 128, 125, 114, 116, 144, 131, 120, 128, 132, 120, 126, 118, 125, 118, 132, 119, 135, 128, 122, 115, 124, 134, 143, 143, 127, 127, 120, 130, 122, 141, 117, 132, 134, 125, 119, 111, 141, 124, 138, 114, 134, 124, 131, 134, 122, 127, 142, 138, 137, 113, 111, 153, 126, 145, 119, 120, 103, 120, 114, 110, 123, 130, 141, 103, 135, 125, 121, 115, 119, 115, 135, 117, 128, 124, 118, 119, 128, 132, 123, 139, 119, 107, 125, 130, 138, 135, 123, 121, 115, 137, 131, 113, 119, 133, 125, 120, 138, 127, 142, 122, 115, 126, 109, 122, 130, 133, 122, 107, 123, 121, 121, 129, 124, 123, 144, 90, 126, 139, 138, 133, 117, 124, 120, 134, 121, 127, 117, 144, 127, 118, 129, 122, 125, 120, 117, 129, 136, 140, 125, 121, 122, 133, 118, 119, 119, 146, 116, 128, 111, 117, 133, 130, 117, 136, 133, 111, 122, 115, 112, 122, 101, 113, 161, 119, 123, 132, 130, 132, 144, 131, 128, 124, 124, 136, 124, 121, 118, 133, 110, 141, 123, 131, 137, 122, 117, 141, 128, 131, 132, 124, 136, 136, 132, 126, 127, 117, 131, 122, 140, 124, 131, 141, 130, 122, 142, 125, 113, 128, 141, 105, 127, 124, 137, 133, 138, 138, 146, 109, 129, 139, 126, 114, 118, 121, 120, 129, 117, 122, 123, 113, 113, 114, 135, 126, 110, 107, 133, 128, 137, 114, 133, 135, 126, 117, 115, 131, 134, 115, 117, 127, 140, 125, 137, 132, 141, 120, 128, 133, 121, 124, 138, 118, 124, 138, 112, 118, 132, 107, 121, 121, 119, 129, 126, 146, 144, 123, 126, 123, 133, 124, 125, 129, 136, 123, 121, 115, 117, 132, 138, 114, 122, 124, 113, 116, 123, 134, 123, 125, 140, 125, 131, 131, 123, 118, 122, 99, 138, 118, 143, 121, 147, 113, 122, 126, 136, 115, 119, 130, 116, 133, 128, 142, 128, 119, 124, 124, 150, 139, 129, 112, 117, 99, 131, 126, 125, 125, 136, 127, 130, 138, 128, 118, 131, 142, 113, 107, 133, 128, 132, 123, 131, 116, 133, 121, 118, 134, 130, 116, 117, 121, 127, 112, 119, 127, 117, 110, 125, 146, 115, 140, 129, 125, 129, 114, 118, 119, 127, 131, 122, 137, 135, 134, 136, 145, 130, 107, 119, 145, 117, 136, 120, 128, 148, 122, 135, 137, 133, 121, 136, 121, 124, 114, 118, 133, 128, 128, 154, 112, 119, 119, 123, 125, 130, 115, 129, 132, 134, 115, 118, 135, 134, 130, 117, 146, 148, 118, 150, 112, 114, 126, 121, 148, 119, 123, 142, 124, 113, 125, 120, 114, 131, 122, 121, 116, 116, 127, 112, 117, 132, 134, 119, 126, 120, 125, 133, 123, 133, 132, 129, 127, 130, 128, 151, 128, 126, 129, 131, 115, 127, 126, 110, 119, 136, 133, 114, 112, 117, 124, 116, 141, 131, 123, 137, 126, 115, 117, 124, 133, 120, 116, 130, 133, 117, 120, 137, 126, 126, 126, 124, 114, 138, 132, 127, 130, 114, 118, 120, 120, 111, 114, 120, 132, 135, 138, 122, 125, 134, 142, 124, 120, 114, 134, 118, 115, 125, 133, 122, 122, 116, 117, 146, 123, 126, 139, 124, 125, 111, 118, 107, 129, 119, 139, 138, 126, 143, 147, 121, 128, 129, 133, 128, 114, 123, 119, 136, 148, 110, 136, 137, 133, 114, 125, 134, 118, 112, 125, 128, 133, 135, 120, 126, 115, 122, 123, 115, 137, 135, 102, 117, 110, 120, 123, 134, 145, 127, 131, 116, 115, 123, 138, 123, 122, 138, 131, 133, 116, 121, 123, 106, 135, 132, 136, 134, 147, 128, 116, 128, 128, 134, 121, 135, 154, 122, 142, 124, 133, 135, 131, 131, 120, 117, 125, 123, 112, 125, 120, 123, 118, 108, 132, 118, 116, 127, 128, 132, 112, 129, 130, 135, 99, 139, 130, 129, 122, 117, 144, 124, 123, 117, 129, 127, 134, 131, 127, 115, 133, 135, 129, 135, 132, 129, 129, 126, 109, 132, 124, 100, 122, 113, 128, 128, 147, 114, 127, 119, 139, 126, 120, 109, 121, 127, 142, 116, 142, 118, 118, 119, 124, 131, 125, 137, 106, 131, 118, 114, 128, 125, 105, 110, 121, 128, 127, 133, 134, 136, 133, 124, 129, 121, 141, 119, 117, 116, 121, 111, 145, 125, 121, 149, 117, 129, 114, 118, 113, 123, 130, 128, 141, 127, 124, 141, 140, 125, 105, 109, 136, 108, 116, 130, 139, 115, 139, 95, 110, 140, 131, 124, 135, 130, 107, 129, 95, 122, 144, 135, 118, 133, 131, 130, 116, 119, 131, 123, 125, 134, 128, 124, 125, 106, 127, 138, 140, 125, 125, 133, 132, 154, 106, 125, 130, 116, 104, 109, 125, 128, 131, 129, 141, 144, 136, 125, 123, 126, 112, 121, 141, 117, 120, 138, 124, 123, 129, 124, 139, 142, 126, 107, 126, 120, 139, 112, 141, 126, 132, 123, 130, 119, 118, 125, 132, 141, 124, 143, 133, 119, 124, 126, 114, 139, 122, 112, 123, 116, 137, 114, 127, 163, 137, 107, 115, 133, 117, 105, 127, 140, 123, 128, 135, 112, 130, 117, 114, 132, 126, 132, 122, 140, 126, 151, 133, 148, 116, 116, 144, 123, 131, 111, 116, 124, 123, 128, 129, 129, 126, 144, 126, 149, 126, 149, 127, 127, 121, 153, 128, 135, 124, 126, 144, 116, 127, 103, 119, 126, 127, 129, 110, 114, 131, 118, 135, 120, 98, 131, 138, 111, 144, 134, 124, 121, 120, 114, 120, 96, 122, 113, 138, 138, 135, 120, 131, 119, 131, 124, 130, 126, 113, 123, 105, 116, 125, 114, 116, 107, 131, 136, 113, 121, 125, 145, 116, 145, 128, 121, 117, 106, 101, 121, 107, 128, 134, 115, 128, 128, 118, 131, 122, 118, 111, 133, 124, 124, 130, 125, 129, 121, 125, 131, 134, 114, 123, 126, 110, 133, 119, 129, 126, 129, 123, 120, 115, 138, 119, 130, 126, 124, 121, 125, 111, 134, 128, 146, 139, 133, 136, 106, 116, 140, 114, 123, 131, 118, 132, 130, 165, 132, 127, 126, 127, 118, 143, 90, 116, 118, 106, 119, 117, 108, 108, 126, 127, 124, 125, 134, 136, 141, 135, 120, 114, 122, 153, 115, 116, 139, 123, 125, 126, 111, 109, 129, 139, 126, 129, 125, 118, 115, 107, 130, 135, 117, 153, 122, 127, 134, 133, 129, 127, 128, 113, 143, 134, 105, 119, 151, 128, 126, 120, 120, 127, 133, 103, 149, 133, 130, 142, 111, 105, 120, 119, 117, 126, 126, 139, 112, 124, 132, 131, 132, 118, 129, 140, 121, 127, 128, 139, 134, 118, 142, 126, 130, 141, 120, 138, 122, 110, 135, 98, 111, 124, 122, 130, 121, 121, 137, 118, 121, 129, 121, 118, 111, 145, 122, 121, 113, 125, 137, 121, 127, 113, 121, 101, 108, 136, 122, 122, 135, 140, 111, 135, 107, 136, 144, 133, 106, 133, 136, 133, 117, 136, 124, 137, 130, 137, 128, 121, 105, 128, 100, 130, 133, 125, 122, 108, 129, 114, 123, 137, 117, 131, 133, 136, 130, 137, 118, 129, 126, 132, 116, 131, 124, 133, 106, 142, 109, 127, 128, 118, 113, 141, 131, 141, 112, 116, 109, 132, 117, 131, 140, 152, 123, 125, 118, 131, 126, 111, 136, 127, 142, 134, 126, 128, 143, 106, 134, 134, 120, 119, 128, 140, 135, 108, 136, 126, 120, 113, 112, 127, 125, 124, 126, 143, 113, 125, 137, 131, 140, 125, 125, 108, 136, 127, 126, 118, 120, 148, 130, 125, 116, 101, 117, 121, 142, 114, 158, 130, 117, 137, 110, 117, 113, 129, 138, 114, 117, 119, 119, 137, 130, 123, 126, 149, 119, 113, 136, 124, 126, 137, 127, 117, 151, 124, 123, 122, 145, 126, 112, 132, 114, 122, 142, 141, 130, 119, 117, 130, 117, 117, 134, 131, 131, 99, 127, 127, 124, 145, 118, 131, 120, 136, 134, 131, 125, 128, 128, 135, 116, 141, 108, 133, 125, 126, 116, 134, 135, 108, 119, 109, 145, 125, 154, 120, 135, 116, 130, 128, 140, 139, 113, 130, 124, 137, 127, 141, 130, 117, 116, 117, 127, 118, 149, 126, 131, 122, 132, 149, 113, 115, 114, 126, 124, 114, 139, 134, 125, 133, 122, 141, 137, 127, 133, 108, 116, 137, 106, 129, 117, 116, 116, 135, 121, 111, 116, 136, 117, 125, 113, 138, 126, 127, 132, 118, 135, 128, 124, 109, 131, 109, 118, 135, 135, 129, 122, 122, 124, 117, 109, 123, 111, 133, 145, 126, 107, 118, 131, 118, 121, 122, 125, 114, 123, 128, 127, 131, 130, 121, 124, 139, 131, 140, 135, 126, 124, 125, 137, 125, 120, 122, 131, 114, 132, 118, 113, 118, 122, 122, 123, 113, 122, 109, 115, 143, 117, 113, 99, 128, 121, 135, 131, 123, 119, 112, 125, 128, 124, 151, 110, 119, 116, 120, 128, 121, 106, 123, 127, 127, 133, 134, 115, 135, 128, 126, 117, 142, 115, 129, 136, 124, 125, 139, 130, 133, 115, 109, 117, 109, 119, 121, 117, 113, 123, 104, 148, 120, 126, 130, 127, 140, 140, 133, 124, 116, 141, 112, 139, 121, 123, 128, 138, 115, 143, 120, 124, 128, 123, 135, 158, 121, 125, 115, 138, 122, 118, 134, 116, 109, 139, 140, 127, 127, 121, 122, 123, 132, 125, 145, 124, 140, 116, 113, 152, 140, 137, 150, 117, 118, 128, 120, 116, 123, 130, 124, 126, 118, 117, 126, 139, 129, 126, 127, 124, 158, 131, 128, 112, 118, 124, 136, 136, 119, 127, 126, 127, 112, 139, 124, 127, 132, 129, 114, 128, 132, 123, 118, 128, 130, 136, 140, 124, 100, 122, 120, 128, 130, 130, 136, 118, 132, 117, 119, 140, 148, 133, 115, 103, 123, 124, 134, 122, 134, 125, 117, 132, 140, 105, 138, 125, 131, 130, 131, 133, 116, 112, 132, 129, 122, 140, 122, 136, 127, 127, 118, 124, 128, 130, 108, 122, 125, 126, 134, 126, 119, 114, 122, 136, 129, 122, 141, 113, 120, 121, 103, 136, 128, 135, 111, 129, 131, 126, 120, 127, 139, 114, 124, 126, 89, 140, 121, 116, 127, 125, 144, 129, 121, 136, 138, 122, 132, 115, 122, 127, 140, 115, 112, 119, 128, 125, 115, 145, 126, 122, 136, 117, 132, 128, 119, 124, 124, 129, 110, 121, 118, 130, 129, 122, 125, 130, 130, 139, 130, 117, 124, 129, 117, 112, 146, 118, 128, 132, 130, 132, 136, 127, 107, 120, 118, 126, 124, 129, 118, 117, 129, 134, 120, 129, 147, 151, 134, 123, 133, 125, 122, 133, 125, 132, 130, 121, 131, 114, 115, 117, 126, 133, 121, 113, 117, 132, 134, 114, 118, 128, 133, 131, 119, 102, 148, 123, 123, 137, 102, 132, 135, 120, 142, 125, 128, 129, 127, 117, 128, 145, 119, 135, 152, 125, 113, 131, 129, 111, 136, 136, 139, 125, 117, 122, 123, 128, 123, 128, 116, 122, 121, 137, 127, 135, 115, 113, 114, 134, 115, 130, 125, 127, 121, 112, 113, 135, 134, 149, 125, 112, 118, 125, 128, 131, 123, 116, 117, 135, 127, 125, 127, 125, 107, 145, 130, 122, 120, 122, 130, 129, 139, 126, 116, 124, 119, 118, 136, 119, 120, 116, 157, 132, 122, 115, 118, 119, 131, 116, 131, 98, 122, 118, 121, 134, 129, 134, 118, 126, 135, 133, 121, 111, 126, 109, 132, 124, 130, 113, 117, 118, 119, 126, 127, 114, 125, 126, 128, 114, 134, 127, 136, 118, 139, 135, 136, 128, 108, 109, 115, 129, 104, 122, 111, 121, 132, 137, 128, 108, 108, 121, 112, 113, 135, 130, 121, 121, 122, 124, 107, 113, 131, 125, 119, 120, 126, 124, 140, 123, 113, 133, 129, 121, 134, 125, 126, 116, 117, 143, 125, 110, 132, 112, 128, 127, 134, 117, 124, 124, 120, 121, 136, 120, 128, 124, 133, 139, 135, 123, 146, 122, 126, 129, 112, 131, 120, 127, 145, 134, 119, 115, 134, 119, 119, 104, 107, 109, 134, 116, 139, 116, 127, 131, 121, 120, 124, 140, 141, 116, 118, 109, 117, 135, 127, 139, 110, 124, 134, 131, 133, 116, 131, 123, 129, 120, 112, 140, 113, 129, 116, 134, 121, 118, 135, 123, 108, 131, 121, 130, 131, 117, 123, 114, 120, 147, 105, 126, 133, 118, 119, 115, 111, 123, 118, 117, 115, 117, 128, 126, 128, 124, 122, 121, 121, 146, 131, 116, 126, 125, 124, 123, 116, 123, 133, 126, 126, 112, 118, 100, 123, 113, 138, 129, 129, 120, 144, 121, 137, 133, 135, 117, 139, 115, 103, 120, 109, 125, 133, 121, 126, 143, 117, 127, 111, 123, 114, 107, 123, 128, 123, 123, 137, 120, 131, 118, 115, 134, 141, 128, 135, 122, 117, 124, 134, 137, 118, 130, 128, 118, 151, 105, 125, 123, 117, 123, 128, 142, 130, 127, 130, 114, 118, 148, 128, 122, 137, 135, 149, 131, 142, 117, 119, 122, 128, 140, 120, 118, 134, 114, 119, 115, 123, 125, 127, 138, 125, 123, 116, 122, 118, 119, 121, 132, 125, 116, 134, 127, 153, 112, 118, 125, 108, 110, 123, 129, 122, 120, 123, 111, 134, 119, 129, 136, 115, 125, 122, 128, 123, 127, 124, 132, 121, 137, 130, 130, 123, 120, 128, 125, 121, 119, 111, 124, 111, 121, 114, 122, 114, 119, 124, 145, 119, 140, 121, 126, 124, 128, 145, 124, 121, 130, 118, 128, 119, 129, 105, 104, 129, 130, 159, 130, 117, 137, 108, 130, 124, 114, 134, 127, 135, 120, 140, 119, 124, 136, 163, 138, 115, 123, 114, 110, 133, 135, 136, 144, 129, 128, 133, 120, 115, 121, 130, 129, 130, 110, 112, 122, 134, 114, 134, 113, 127, 118, 113, 118, 127, 125, 128, 129, 142, 132, 124, 121, 122, 129, 135, 123, 128, 142, 125, 124, 120, 121, 134, 114, 124, 118, 102, 116, 121, 113, 120, 138, 117, 132, 128, 98, 133, 138, 117, 110, 120, 129, 134, 117, 139, 115, 126, 123, 138, 124, 128, 122, 121, 108, 107, 119, 130, 130, 126, 111, 131, 131, 128, 146, 122, 146, 128, 125, 136, 122, 109, 110, 121, 115, 133, 108, 147, 138, 112, 105, 119, 123, 127, 134, 138, 125, 135, 128, 135, 144, 110, 116, 137, 129, 103, 106, 113, 145, 136, 136, 110, 116, 129, 120, 122, 135, 137, 111, 107, 129, 123, 146, 126, 119, 128, 134, 133, 126, 120, 116, 116, 106, 122, 133, 114, 109, 115, 119, 126, 125, 121, 152, 127, 119, 117, 125, 141, 142, 135, 137, 116, 137, 145, 139, 122, 140, 128, 109, 121, 107, 124, 123, 123, 126, 116, 135, 126, 124, 118, 114, 120, 125, 135, 124, 112, 134, 124, 145, 125, 114, 122, 111, 112, 138, 129, 118, 119, 127, 124, 119, 113, 115, 127, 122, 124, 116, 135, 136, 125, 126, 125, 115, 132, 127, 130, 111, 148, 132, 120, 137, 124, 121, 120, 98, 119, 117, 122, 120, 120, 125, 126, 114, 141, 142, 124, 101, 120, 147, 125, 130, 118, 123, 134, 133, 124, 116, 134, 136, 124, 121, 115, 116, 126, 139, 139, 127, 121, 121, 149, 125, 150, 107, 116, 126, 128, 128, 121, 122, 120, 123, 124, 124, 130, 124, 109, 123, 100, 129, 134, 131, 128, 121, 108, 132, 123, 120, 114, 131, 131, 120, 128, 129, 149, 134, 147, 117, 109, 126, 117, 127, 127, 125, 120, 145, 154, 135, 122, 128, 123, 127, 117, 114, 129, 123, 119, 123, 133, 109, 137, 128, 132, 130, 131, 123, 128, 135, 128, 129, 135, 123, 118, 116, 116, 120, 122, 123, 135, 137, 126, 134, 117, 120, 108, 120, 123, 135, 125, 144, 126, 134, 117, 118, 121, 116, 116, 110, 126, 102, 114, 104, 137, 127, 123, 122, 124, 113, 130, 113, 127, 125, 133, 118, 125, 127, 128, 128, 144, 116, 120, 103, 133, 106, 125, 116, 110, 113, 123, 138, 114, 111, 116, 119, 123, 130, 147, 143, 129, 126, 128, 124, 129, 121, 122, 133, 115, 110, 112, 123, 133, 124, 135, 116, 131, 134, 120, 133, 129, 111, 123, 136, 104, 139, 110, 113, 126, 138, 130, 143, 123, 118, 123, 133, 134, 109, 118, 136, 109, 133, 117, 129, 127, 128, 105, 130, 124, 132, 128, 136, 114, 116, 147, 129, 143, 119, 119, 133, 121, 115, 122, 127, 109, 134, 109, 140, 121, 114, 127, 137, 130, 137, 107, 138, 117, 130, 135, 121, 131, 127, 143, 135, 122, 142, 123, 122, 137, 124, 121, 118, 120, 128, 139, 145, 129, 118, 126, 127, 125, 102, 120, 129, 135, 132, 137, 136, 114, 110, 118, 128, 136, 138, 134, 152, 135, 110, 122, 110, 124, 117, 113, 127, 110, 120, 123, 123, 127, 122, 123, 139, 134, 123, 116, 137, 129, 129, 125, 129, 131, 125, 127, 113, 114, 131, 112, 125, 98, 128, 118, 128, 149, 128, 111, 126, 133, 127, 125, 140, 111, 128, 112, 121, 140, 117, 131, 126, 104, 134, 113, 111, 138, 120, 132, 120, 124, 121, 119, 124, 117, 119, 119, 125, 118, 132, 130, 113, 125, 124, 122, 117, 122, 121, 141, 128, 107, 136, 124, 120, 151, 123, 132, 119, 134, 122, 133, 132, 122, 127, 127, 125, 144, 119, 128, 120, 131, 124, 133, 125, 130, 122, 118, 121, 115, 124, 130, 121, 144, 123, 133, 116, 111, 135, 111, 137, 114, 121, 135, 119, 135, 115, 132, 149, 121, 123, 126, 122, 122, 135, 121, 126, 121, 131, 127, 120, 124, 111, 133, 142, 132, 125, 124, 116, 127, 153, 124, 119, 131, 124, 140, 128, 125, 114, 129, 128, 130, 133, 135, 124, 104, 108, 126, 140, 132, 125, 132, 118, 119, 129, 127, 128, 137, 119, 127, 128, 132, 148, 132, 99, 139, 117, 141, 128, 119, 119, 131, 116, 110, 104, 146, 139, 134, 128, 118, 126, 134, 124, 121, 126, 137, 127, 132, 139, 96, 119, 119, 141, 118, 141, 123, 142, 124, 127, 110, 129, 123, 150, 131, 122, 131, 115, 124, 134, 123, 127, 134, 131, 128, 105, 136, 126, 123, 152, 133, 127, 120, 123, 115, 131, 124, 126, 121, 125, 118, 117, 131, 141, 118, 127, 128, 131, 123, 127, 102, 133, 119, 140, 126, 131, 141, 111, 118, 105, 117, 124, 112, 130, 115, 132, 132, 134, 115, 126, 108, 118, 129, 134, 132, 139, 131, 134, 129, 129, 120, 127, 128, 128, 120, 121, 141, 129, 96, 123, 132, 134, 133, 132, 121, 145, 128, 142, 123, 103, 119, 120, 122, 137, 111, 121, 107, 129, 127, 128, 125, 112, 113, 128, 130, 114, 104, 139, 128, 117, 133, 131, 125, 136, 126, 128, 136, 117, 127, 139, 128, 119, 136, 134, 129, 138, 123, 124, 122, 134, 124, 125, 139, 116, 131, 131, 110, 120, 117, 135, 121, 128, 135, 130, 100, 129, 122, 130, 141, 106, 132, 124, 129, 116, 131, 125, 121, 123, 128, 129, 141, 137, 123, 131, 140, 124, 110, 103, 134, 128, 127, 114, 103, 133, 124, 119, 129, 102, 127, 124, 130, 135, 123, 135, 122, 136, 123, 114, 132, 138, 112, 141, 124, 124, 128, 127, 126, 116, 107, 157, 135, 120, 129, 146, 148, 135, 120, 105, 119, 119, 127, 113, 123, 131, 133, 121, 147, 128, 128, 118, 127, 98, 116, 116, 134, 140, 104, 114, 127, 112, 128, 120, 102, 106, 119, 133, 128, 132, 115, 113, 132, 127, 126, 116, 125, 149, 133, 121, 124, 116, 130, 117, 104, 126, 133, 141, 124, 124, 127, 118, 136, 122, 141, 132, 129, 108, 126, 121, 128, 121, 142, 127, 118, 113, 136, 145, 136, 131, 130, 131, 127, 134, 135, 128, 126, 132, 136, 127, 126, 111, 129, 134, 145, 131, 113, 114, 120, 126, 118, 128, 116, 119, 136, 105, 123, 123, 127, 140, 137, 131, 123, 108, 116, 144, 133, 132, 128, 126, 120, 137, 140, 137, 108, 114, 123, 112, 119, 131, 135, 118, 103, 130, 126, 100, 114, 128, 130, 137, 131, 130, 131, 128, 132, 149, 125, 123, 124, 122, 125, 108, 130, 121, 120, 131, 106, 116, 125, 116, 123, 126, 130, 130, 129, 124, 117, 118, 118, 116, 119, 140, 127, 124, 133, 134, 126, 130, 129, 131, 132, 95, 119, 127, 118, 120, 135, 112, 120, 120, 132, 147, 104, 133, 133, 127, 132, 118, 119, 122, 110, 123, 126, 137, 125, 127, 108, 125, 111, 111, 136, 132, 116, 130, 130, 143, 110, 136, 117, 124, 121, 139, 120, 111, 134, 110, 143, 127, 120, 132, 128, 131, 119, 122, 133, 119, 120, 120, 126, 128, 115, 132, 109, 136, 125, 127, 140, 125, 123, 133, 131, 117, 129, 148, 127, 117, 126, 98, 120, 109, 138, 125, 118, 137, 121, 120, 132, 117, 128, 127, 144, 132, 123, 131, 123, 132, 140, 113, 135, 132, 137, 117, 139, 133, 124, 119, 136, 141, 122, 159, 126, 139, 121, 127, 127, 115, 118, 112, 144, 122, 126, 119, 124, 137, 150, 120, 123, 114, 124, 129, 126, 135, 122, 134, 143, 133, 104, 157, 123, 125, 118, 122, 120, 140, 121, 119, 118, 126, 110, 135, 137, 121, 112, 116, 145, 123, 126, 117, 125, 122, 114, 138, 133, 127, 117, 108, 122, 123, 127, 125, 146, 120, 139, 138, 117, 120, 121, 129, 127, 133, 128, 122, 118, 117, 120, 125, 118, 117, 143, 133, 135, 122, 111, 116, 135, 127, 148, 128, 125, 125, 115, 127, 110, 127, 133, 119, 122, 117, 113, 139, 117, 110, 108, 115, 134, 111, 129, 121, 125, 98, 131, 124, 117, 127, 129, 116, 117, 112, 135, 119, 104, 125, 130, 124, 120, 117, 117, 126, 123, 132, 108, 143, 160, 115, 144, 121, 129, 112, 130, 137, 127, 117, 110, 127, 121, 118, 111, 151, 104, 114, 124, 136, 146, 123, 133, 120, 125, 131, 124, 146, 135, 119, 124, 133, 121, 134, 139, 128, 129, 117, 132, 117, 119, 136, 121, 110, 137, 130, 122, 141, 120, 128, 126, 124, 128, 127, 133, 132, 121, 138, 118, 115, 135, 119, 110, 139, 110, 106, 124, 128, 115, 113, 123, 132, 114, 131, 117, 122, 110, 116, 128, 114, 118, 136, 134, 123, 130, 112, 130, 124, 134, 132, 118, 115, 122, 107, 136, 123, 115, 154, 133, 128, 147, 124, 123, 113, 129, 142, 126, 139, 116, 123, 119, 150, 122, 125, 123, 137, 136, 115, 131, 116, 127, 126, 113, 124, 146, 126, 124, 127, 134, 129, 124, 136, 133, 146, 104, 119, 137, 116, 121, 113, 128, 108, 155, 110, 124, 116, 127, 113, 132, 140, 131, 117, 129, 113, 128, 102, 121, 121, 125, 119, 124, 111, 128, 124, 143, 109, 120, 108, 137, 124, 130, 141, 110, 110, 115, 136, 120, 128, 123, 130, 133, 129, 126, 121, 117, 136, 126, 123, 114, 114, 130, 138, 117, 111, 117, 132, 138, 141, 127, 130, 126, 116, 126, 122, 131, 127, 131, 119, 126, 133, 124, 118, 126, 125, 124, 143, 126, 132, 123, 125, 128, 117, 117, 144, 133, 135, 123, 117, 136, 126, 116, 134, 121, 124, 116, 126, 133, 131, 121, 119, 141, 123, 126, 131, 121, 118, 132, 126, 132, 112, 121, 120, 143, 123, 124, 123, 151, 135, 121, 115, 113, 127, 129, 118, 122, 122, 125, 126, 149, 110, 116, 114, 103, 121, 132, 126, 119, 119, 132, 119, 121, 118, 122, 119, 136, 131, 127, 113, 111, 107, 124, 120, 134, 117, 132, 128, 128, 135, 127, 131, 125, 112, 121, 148, 131, 122, 125, 119, 127, 165, 113, 130, 127, 107, 121, 119, 127, 107, 130, 121, 107, 108, 128, 133, 114, 134, 122, 132, 115, 129, 111, 163, 144, 140, 143, 111, 115, 132, 116, 121, 109, 127, 110, 113, 115, 151, 111, 147, 129, 126, 122, 136, 106, 141, 118, 129, 124, 136, 98, 127, 120, 119, 131, 124, 136, 111, 103, 133, 129, 125, 126, 120, 126, 136, 118, 113, 112, 118, 120, 134, 125, 124, 131, 123, 135, 137, 131, 139, 118, 123, 119, 134, 136, 128, 122, 121, 131, 140, 133, 131, 113, 132, 125, 109, 128, 120, 118, 111, 115, 122, 135, 132, 133, 113, 131, 134, 125, 142, 123, 119, 127, 115, 113, 120, 126, 108, 130, 112, 146, 122, 111, 132, 130, 117, 126, 122, 124, 124, 120, 120, 138, 116, 134, 144, 125, 117, 125, 135, 140, 133, 125, 127, 115, 123, 125, 114, 137, 122, 120, 137, 127, 137, 132, 110, 124, 137, 127, 118, 139, 143, 139, 129, 118, 124, 134, 121, 123, 131, 127, 122, 121, 126, 124, 126, 136, 134, 128, 113, 119, 145, 114, 109, 132, 134, 119, 133, 135, 110, 122, 112, 128, 140, 130, 118, 128, 127, 131, 135, 126, 127, 115, 118, 107, 138, 125, 92, 119, 118, 120, 115, 117, 122, 113, 124, 133, 118, 131, 133, 119, 113, 120, 125, 135, 124, 121, 139, 129, 113, 122, 118, 145, 118, 137, 126, 103, 134, 127, 128, 139, 128, 133, 129, 141, 104, 110, 119, 152, 115, 119, 141, 117, 131, 118, 124, 152, 139, 121, 120, 135, 128, 117, 119, 127, 122, 140, 137, 130, 126, 128, 119, 138, 127, 134, 115, 118, 127, 117, 122, 139, 123, 116, 121, 135, 148, 137, 123, 103, 129, 130, 110, 131, 117, 124, 116, 116, 129, 114, 124, 130, 124, 126, 155, 130, 136, 145, 107, 122, 139, 117, 115, 132, 117, 129, 122, 111, 129, 121, 120, 113, 113, 114, 121, 129, 139, 120, 117, 132, 142, 135, 133, 129, 131, 122, 134, 114, 125, 117, 125, 128, 111, 126, 131, 125, 119, 123, 131, 136, 123, 143, 134, 124, 122, 135, 138, 119, 101, 118, 125, 131, 126, 119, 134, 126, 132, 132, 136, 145, 112, 141, 154, 118, 112, 145, 137, 131, 126, 142, 122, 138, 139, 129, 126, 128, 137, 140, 127, 143, 135, 127, 132, 136, 117, 119, 139, 128, 140, 113, 121, 123, 138, 119, 129, 122, 124, 127, 122, 152, 134, 133, 127, 111, 137, 124, 122, 121, 135, 105, 124, 124, 132, 127, 137, 128, 122, 131, 131, 122, 142, 109, 122, 136, 119, 121, 132, 121, 104, 124, 133, 130, 134, 119, 125, 150, 111, 134, 133, 133, 142, 136, 125, 116, 135, 136, 118, 124, 114, 135, 114, 141, 120, 130, 136, 115, 119, 117, 124, 135, 137, 132, 137, 123, 131, 113, 128, 117, 134, 127, 125, 112, 119, 149, 111, 147, 109, 105, 132, 118, 113, 124, 151, 123, 115, 134, 129, 151, 147, 113, 121, 142, 118, 104, 132, 114, 114, 133, 120, 119, 118, 127, 116, 132, 123, 130, 111, 125, 140, 121, 138, 129, 138, 123, 123, 140, 142, 126, 117, 133, 131, 109, 128, 122, 125, 131, 110, 124, 147, 105, 150, 117, 111, 136, 135, 131, 124, 136, 107, 138, 120, 110, 125, 142, 123, 119, 138, 138, 124, 155, 138, 118, 115, 138, 136, 128, 117, 122, 140, 116, 144, 120, 127, 135, 129, 116, 124, 138, 147, 141, 139, 119, 117, 132, 118, 116, 140, 111, 130, 119, 114, 127, 124, 130, 125, 130, 151, 130, 130, 145, 127, 126, 118, 140, 131, 118, 106, 128, 133, 116, 120, 143, 137, 137, 133, 122, 133, 132, 128, 138, 98, 120, 124, 117, 124, 130, 135, 121, 124, 124, 128, 107, 125, 109, 129, 118, 119, 116, 148, 114, 118, 138, 135, 131, 112, 122, 116, 111, 137, 126, 138, 127, 125, 128, 130, 126, 119, 129, 136, 129, 154, 150, 111, 132, 136, 133, 136, 109, 134, 122, 117, 123, 126, 110, 135, 103, 130, 136, 134, 126, 130, 136, 125, 123, 137, 128, 134, 121, 133, 132, 137, 134, 124, 120, 106, 121, 125, 124, 122, 129, 121, 132, 115, 141, 112, 120, 136, 116, 129, 120, 119, 117, 101, 128, 128, 134, 129, 132, 124, 109, 116, 106, 114, 128, 145, 109, 109, 146, 108, 125, 131, 115, 116, 120, 128, 134, 133, 115, 150, 122, 118, 134, 121, 125, 99, 112, 120, 115, 126, 126, 113, 130, 116, 118, 121, 134, 150, 150, 117, 123, 118, 134, 119, 145, 114, 122, 127, 132, 124, 127, 130, 109, 129, 132, 121, 125, 123, 132, 146, 111, 126, 136, 135, 137, 130, 115, 122, 113, 118, 116, 142, 129, 135, 129, 122, 114, 119, 137, 126, 123, 124, 143, 112, 116, 123, 126, 119, 123, 120, 134, 130, 117, 116, 135, 125, 141, 127, 98, 103, 119, 119, 120, 118, 112, 137, 134, 118, 129, 126, 139, 128, 130, 138, 125, 138, 110, 141, 133, 133, 138, 123, 104, 135, 120, 126, 126, 125, 125, 152, 115, 145, 111, 141, 123, 109, 124, 132, 111, 141, 125, 125, 136, 141, 109, 135, 126, 124, 120, 112, 126, 131, 131, 133, 114, 140, 137, 117, 123, 106, 123, 132, 136, 122, 118, 131, 121, 129, 133, 112, 117, 112, 121, 116, 131, 128, 127, 127, 109, 116, 105, 126, 141, 119, 133, 116, 141, 123, 126, 116, 132, 138, 145, 132, 110, 130, 131, 130, 127, 109, 123, 130, 124, 129, 114, 128, 121, 132, 133, 127, 136, 124, 126, 116, 123, 105, 128, 113, 121, 135, 120, 115, 126, 126, 111, 137, 128, 119, 129, 129, 131, 133, 118, 127, 128, 116, 106, 131, 129, 117, 131, 118, 115, 130, 115, 125, 139, 137, 123, 117, 126, 138, 136, 128, 112, 132, 115, 130, 107, 129, 122, 120, 133, 131, 128, 122, 133, 113, 113, 136, 121, 111, 120, 104, 149, 113, 125, 120, 118, 123, 118, 147, 128, 113, 131, 115, 128, 112, 135, 118, 122, 129, 127, 134, 123, 129, 112, 118, 127, 122, 123, 103, 109, 125, 125, 131, 127, 108, 109, 123, 134, 116, 136, 120, 131, 105, 135, 140, 122, 125, 129, 126, 131, 123, 130, 132, 128, 114, 106, 120, 111, 139, 124, 118, 126, 124, 112, 119, 118, 120, 123, 124, 121, 120, 126, 145, 117, 124, 116, 123, 118, 130, 138, 120, 106, 120, 112, 136, 143, 130, 116, 113, 125, 142, 123, 115, 127, 115, 131, 143, 120, 117, 132, 125, 102, 111, 132, 124, 125, 123, 130, 118, 144, 116, 114, 122, 132, 129, 138, 141, 135, 130, 137, 117, 109, 130, 117, 130, 117, 123, 130, 126, 125, 109, 125, 109, 128, 135, 115, 124, 129, 132, 108, 123, 131, 134, 127, 128, 129, 140, 118, 131, 100, 119, 123, 121, 128, 137, 135, 132, 142, 135, 116, 117, 133, 142, 115, 130, 117, 137, 137, 115, 116, 120, 123, 136, 129, 131, 116, 125, 130, 134, 108, 120, 117, 121, 110, 105, 131, 138, 123, 116, 122, 134, 123, 115, 135, 131, 135, 127, 133, 132, 130, 109, 111, 111, 128, 116, 136, 116, 135, 115, 111, 121, 123, 127, 134, 141, 111, 137, 129, 138, 120, 122, 132, 126, 132, 127, 125, 132, 110, 117, 127, 136, 138, 137, 135, 117, 127, 137, 142, 134, 135, 137, 110, 129, 133, 137, 113, 127, 116, 134, 121, 131, 90, 111, 122, 130, 109, 102, 131, 124, 126, 122, 124, 130, 138, 132, 117, 124, 114, 112, 125, 102, 121, 115, 129, 125, 131, 141, 118, 110, 135, 129, 138, 138, 123, 135, 125, 123, 109, 133, 122, 131, 115, 135, 127, 106, 120, 123, 124, 128, 120, 141, 121, 120, 142, 124, 125, 122, 125, 122, 106, 127, 128, 133, 128, 116, 126, 98, 133, 125, 108, 134, 116, 122, 120, 133, 142, 130, 126, 146, 127, 146, 121, 141, 119, 139, 118, 134, 129, 117, 147, 113, 133, 149, 115, 125, 130, 120, 128, 127, 141, 112, 120, 143, 137, 126, 112, 136, 128, 114, 130, 124, 115, 141, 131, 124, 123, 117, 124, 134, 124, 122, 128, 122, 121, 123, 154, 145, 129, 110, 124, 144, 137, 135, 135, 120, 134, 130, 127, 133, 112, 144, 133, 119, 125, 131, 131, 119, 113, 136, 125, 128, 122, 117, 120, 134, 115, 118, 127, 108, 119, 125, 130, 127, 137, 115, 139, 122, 117, 114, 115, 120, 114, 107, 130, 122, 132, 124, 126, 119, 122, 126, 130, 137, 123, 126, 132, 126, 115, 122, 137, 103, 126, 120, 122, 122, 137, 117, 112, 123, 132, 143, 111, 122, 116, 121, 115, 111, 121, 143, 126, 132, 108, 128, 115, 135, 124, 143, 129, 127, 144, 130, 118, 150, 129, 124, 139, 141, 132, 102, 140, 133, 148, 121, 126, 129, 122, 127, 125, 108, 110, 124, 139, 125, 117, 131, 124, 125, 107, 119, 126, 115, 128, 120, 139, 112, 118, 111, 133, 122, 107, 132, 118, 149, 125, 121, 132, 115, 125, 129, 127, 134, 114, 109, 103, 110, 147, 110, 125, 120, 112, 134, 112, 120, 114, 121, 126, 131, 123, 122, 126, 122, 135, 131, 124, 130, 116, 113, 124, 113, 142, 110, 132, 130, 124, 134, 135, 120, 126, 121, 130, 136, 140, 143, 129, 143, 118, 123, 115, 121, 132, 115, 129, 113, 118, 134, 130, 142, 144, 121, 135, 136, 121, 119, 122, 138, 118, 115, 114, 122, 121, 122, 121, 121, 118, 117, 139, 133, 138, 135, 117, 124, 128, 137, 132, 132, 135, 140, 108, 120, 115, 128, 130, 119, 128, 130, 124, 118, 115, 112, 128, 137, 131, 134, 132, 126, 137, 118, 126, 132, 121, 137, 127, 126, 121, 116, 134, 133, 132, 123, 125, 121, 115, 120, 136, 124, 133, 118, 115, 122, 126, 142, 125, 110, 129, 117, 146, 120, 126, 137, 136, 118, 134, 124, 117, 114, 109, 121, 128, 140, 114, 117, 125, 125, 127, 137, 120, 109, 131, 113, 131, 127, 127, 125, 128, 121, 144, 117, 117, 110, 122, 151, 121, 119, 132, 124, 126, 125, 123, 137, 118, 144, 125, 117, 136, 123, 135, 112, 116, 116, 136, 113, 112, 138, 128, 125, 126, 127, 110, 121, 128, 123, 147, 118, 125, 134, 139, 132, 101, 119, 109, 141, 109, 126, 123, 156, 125, 137, 121, 127, 127, 137, 132, 120, 139, 123, 122, 126, 112, 108, 122, 128, 142, 123, 141, 119, 128, 142, 116, 123, 116, 124, 125, 117, 118, 130, 109, 115, 131, 130, 126, 128, 145, 118, 107, 131, 121, 115, 133, 104, 129, 116, 127, 129, 138, 135, 126, 146, 124, 115, 118, 126, 121, 88, 113, 121, 126, 134, 140, 121, 139, 130, 126, 119, 119, 126, 125, 130, 133, 136, 115, 109, 115, 124, 144, 124, 126, 125, 132, 128, 129, 109, 136, 147, 145, 114, 130, 114, 124, 93, 119, 133, 133, 115, 120, 126, 124, 127, 113, 115, 118, 129, 119, 126, 125, 119, 109, 130, 124, 138, 110, 136, 137, 122, 131, 122, 119, 139, 120, 108, 142, 110, 138, 127, 125, 127, 138, 130, 121, 142, 113, 128, 136, 132, 116, 141, 125, 135, 136, 133, 134, 148, 137, 142, 154, 125, 151, 119, 115, 122, 128, 114, 129, 132, 125, 124, 133, 131, 128, 103, 126, 122, 136, 139, 118, 134, 129, 129, 130, 123, 139, 127, 108, 123, 128, 133, 116, 135, 134, 131, 123, 123, 120, 138, 131, 107, 124, 118, 120, 119, 127, 129, 117, 126, 124, 135, 112, 121, 119, 118, 129, 131, 139, 132, 125, 111, 123, 111, 129, 130, 118, 128, 119, 122, 144, 128, 133, 130, 117, 105, 128, 126, 129, 129, 116, 142, 128, 105, 136, 131, 130, 129, 119, 111, 122, 110, 125, 141, 133, 132, 116, 123, 118, 108, 146, 132, 113, 114, 132, 131, 122, 120, 118, 118, 120, 144, 114, 113, 143, 134, 139, 129, 129, 123, 112, 135, 122, 127, 148, 160, 127, 119, 137, 123, 84, 114, 136, 124, 137, 119, 130, 129, 145, 145, 75, 110, 149, 121, 118, 136, 122, 136, 130, 130, 147, 128, 128, 123, 136, 123, 126, 121, 140, 120, 130, 123, 131, 141, 116, 125, 130, 102, 121, 113, 118, 117, 149, 126, 132, 128, 120, 138, 127, 124, 108, 127, 155, 137, 126, 131, 117, 143, 137, 119, 127, 115, 121, 130, 121, 141, 126, 121, 118, 121, 129, 98, 152, 115, 135, 116, 128, 141, 144, 116, 125, 121, 135, 125, 109, 129, 117, 123, 110, 102, 139, 106, 147, 112, 117, 113, 156, 127, 117, 144, 121, 106, 126, 121, 101, 130, 119, 108, 153, 116, 102, 119, 120, 133, 141, 106, 107, 132, 130, 140, 124, 135, 117, 119, 114, 146, 134, 128, 123, 128, 133, 132, 118, 115, 123, 129, 134, 105, 131, 121, 135, 106, 137, 137, 113, 133, 118, 122, 131, 142, 120, 122, 138, 124, 132, 133, 122, 138, 134, 136, 146, 132, 126, 111, 100, 124, 119, 115, 129, 136, 137, 122, 129, 133, 118, 123, 127, 143, 125, 116, 103, 133, 130, 131, 143, 125, 127, 120, 122, 112, 134, 129, 140, 114, 127, 139, 135, 139, 94, 114, 112, 126, 151, 129, 132, 132, 128, 117, 128, 123, 119, 140, 115, 123, 128, 137, 131, 142, 130, 125, 116, 118, 120, 121, 134, 112, 123, 127, 119, 150, 153, 119, 125, 116, 126, 134, 133, 125, 111, 136, 114, 145, 141, 127, 127, 125, 121, 121, 111, 130, 121, 144, 131, 130, 135, 134, 132, 122, 120, 147, 131, 111, 114, 136, 105, 129, 134, 120, 122, 135, 121, 120, 126, 108, 118, 127, 107, 133, 140, 135, 113, 145, 116, 121, 130, 132, 102, 132, 130, 122, 129, 122, 125, 129, 125, 131, 127, 121, 116, 127, 119, 123, 115, 116, 113, 123, 115, 134, 115, 111, 147, 100, 112, 135, 133, 138, 122, 123, 130, 137, 122, 122, 137, 130, 114, 131, 138, 124, 121, 114, 122, 116, 120, 126, 129, 129, 129, 125, 139, 137, 123, 111, 122, 123, 131, 128, 146, 143, 122, 105, 124, 124, 149, 124, 132, 152, 150, 129, 148, 128, 124, 130, 131, 130, 140, 135, 129, 138, 124, 111, 130, 133, 104, 120, 134, 126, 131, 93, 124, 142, 93, 138, 118, 132, 124, 106, 141, 128, 121, 126, 133, 112, 147, 123, 140, 133, 135, 134, 118, 140, 108, 137, 108, 123, 125, 116, 129, 125, 145, 120, 128, 106, 133, 120, 133, 126, 139, 114, 112, 119, 118, 137, 130, 118, 132, 121, 119, 120, 116, 109, 115, 109, 118, 124, 107, 119, 108, 119, 132, 134, 129, 130, 134, 134, 123, 126, 114, 112, 137, 101, 125, 131, 140, 127, 135, 118, 122, 112, 136, 146, 119, 124, 113, 137, 126, 132, 138, 106, 143, 136, 111, 117, 120, 121, 134, 128, 130, 135, 134, 137, 116, 127, 122, 122, 122, 109, 123, 132, 127, 118, 141, 136, 114, 106, 131, 125, 121, 129, 127, 112, 148, 114, 141, 137, 120, 128, 138, 120, 124, 110, 142, 132, 127, 128, 144, 107, 135, 134, 120, 113, 126, 115, 129, 118, 112, 114, 123, 137, 117, 137, 127, 124, 135, 118, 118, 136, 122, 112, 137, 138, 132, 134, 150, 125, 128, 121, 143, 134, 127, 118, 108, 122, 120, 137, 100, 121, 137, 130, 140, 140, 133, 131, 118, 122, 123, 131, 115, 131, 107, 126, 131, 122, 115, 126, 150, 132, 110, 117, 120, 126, 134, 112, 120, 129, 134, 114, 146, 117, 124, 133, 116, 133, 127, 135, 119, 132, 144, 108, 126, 122, 119, 127, 132, 112, 133, 106, 130, 144, 128, 121, 107, 139, 109, 140, 120, 112, 132, 134, 114, 114, 124, 160, 121, 113, 134, 131, 136, 126, 140, 106, 119, 120, 142, 140, 118, 125, 123, 144, 125, 110, 125, 128, 140, 124, 138, 126, 134, 119, 111, 122, 118, 133, 125, 112, 124, 118, 121, 130, 122, 113, 116, 125, 107, 117, 142, 126, 140, 132, 127, 111, 100, 146, 131, 130, 128, 143, 117, 131, 123, 130, 125, 141, 128, 124, 142, 124, 153, 135, 117, 128, 132, 126, 117, 133, 122, 132, 111, 136, 142, 137, 123, 127, 121, 127, 121, 144, 122, 130, 119, 144, 127, 143, 115, 124, 127, 150, 129, 132, 132, 140, 123, 103, 138, 121, 137, 132, 130, 130, 123, 126, 124, 108, 122, 114, 87, 110, 128, 114, 128, 136, 132, 131, 125, 126, 130, 115, 132, 135, 133, 125, 127, 116, 123, 133, 118, 135, 116, 121, 126, 119, 113, 120, 125, 151, 137, 126, 119, 120, 114, 123, 126, 127, 131, 129, 133, 121, 120, 127, 122, 129, 126, 113, 131, 139, 127, 120, 116, 125, 138, 126, 117, 106, 120, 120, 123, 120, 114, 132, 122, 134, 137, 126, 129, 129, 126, 122, 141, 126, 109, 127, 130, 138, 127, 120, 129, 100, 121, 138, 114, 135, 132, 113, 141, 108, 137, 112, 118, 120, 120, 135, 120, 127, 130, 128, 118, 113, 124, 113, 140, 121, 124, 136, 133, 146, 128, 124, 118, 126, 122, 118, 116, 127, 124, 123, 150, 126, 129, 130, 116, 120, 118, 120, 134, 118, 138, 137, 114, 126, 138, 115, 124, 109, 125, 135, 115, 130, 138, 117, 122, 115, 131, 134, 132, 134, 108, 131, 135, 120, 120, 132, 147, 119, 115, 137, 132, 138, 133, 134, 126, 136, 119, 120, 109, 126, 131, 131, 127, 131, 114, 105, 130, 117, 140, 138, 122, 131, 123, 140, 131, 133, 119, 126, 124, 126, 144, 136, 124, 111, 130, 128, 125, 129, 121, 126, 126, 129, 126, 118, 120, 134, 126, 133, 134, 119, 128, 131, 125, 134, 125, 123, 125, 129, 115, 114, 140, 136, 122, 124, 133, 140, 134, 111, 130, 130, 126, 131, 130, 122, 129, 128, 125, 125, 128, 125, 121, 125, 125, 129, 125, 133, 133, 134, 128, 126, 139, 120, 137, 103, 120, 141, 124, 122, 120, 127, 120, 127, 132, 111, 128, 122, 129, 114, 111, 126, 122, 121, 95, 131, 109, 139, 113, 130, 133, 125, 122, 125, 134, 135, 143, 118, 142, 129, 127, 112, 126, 151, 128, 135, 124, 123, 111, 125, 135, 121, 113, 110, 116, 134, 121, 122, 133, 143, 131, 131, 123, 120, 136, 120, 135, 141, 123, 104, 122, 121, 118, 128, 134, 128, 114, 115, 124, 114, 138, 113, 129, 127, 119, 125, 126, 119, 108, 110, 136, 124, 130, 110, 122, 129, 119, 135, 165, 122, 138, 124, 125, 124, 118, 130, 138, 130, 122, 156, 108, 112, 135, 121, 120, 118, 100, 121, 134, 114, 114, 144, 123, 121, 111, 128, 131, 118, 118, 129, 127, 114, 116, 124, 130, 126, 121, 135, 129, 122, 139, 136, 122, 123, 120, 131, 127, 115, 139, 134, 122, 127, 115, 130, 127, 125, 148, 119, 118, 130, 132, 137, 131, 115, 128, 136, 131, 124, 138, 160, 114, 109, 117, 130, 131, 119, 117, 153, 123, 140, 140, 127, 133, 110, 128, 140, 112, 134, 119, 137, 111, 128, 131, 139, 127, 137, 126, 103, 131, 126, 118, 146, 142, 95, 123, 140, 125, 133, 123, 139, 121, 133, 126, 117, 126, 142, 115, 131, 126, 104, 89, 135, 109, 127, 112, 126, 127, 121, 118, 105, 122, 107, 124, 133, 126, 106, 147, 143, 117, 145, 122, 131, 146, 131, 133, 143, 141, 128, 130, 147, 132, 119, 132, 131, 126, 119, 125, 137, 130, 125, 111, 97, 125, 127, 131, 132, 122, 128, 138, 117, 118, 119, 132, 131, 120, 107, 123, 137, 145, 124, 126, 141, 121, 150, 144, 125, 122, 131, 124, 116, 125, 126, 131, 145, 114, 123, 125, 133, 130, 126, 124, 133, 116, 126, 121, 121, 129, 106, 116, 120, 127, 135, 135, 123, 131, 138, 127, 120, 137, 131, 137, 127, 126, 128, 106, 128, 130, 131, 135, 124, 127, 130, 121, 109, 128, 114, 115, 104, 110, 112, 142, 118, 117, 130, 101, 115, 118, 140, 128, 121, 121, 137, 124, 122, 148, 130, 116, 119, 117, 142, 123, 142, 134, 117, 133, 125, 130, 99, 128, 126, 114, 131, 123, 112, 105, 106, 134, 117, 126, 122, 129, 128, 108, 123, 131, 117, 126, 136, 110, 131, 125, 120, 122, 124, 113, 135, 125, 132, 132, 115, 116, 108, 126, 110, 147, 112, 130, 132, 122, 125, 141, 118, 124, 131, 135, 132, 120, 118, 133, 135, 129, 131, 128, 138, 123, 128, 137, 124, 118, 142, 138, 106, 113, 134, 129, 130, 140, 135, 108, 124, 137, 129, 121, 141, 126, 126, 128, 124, 131, 119, 144, 127, 119, 120, 111, 126, 137, 128, 124, 132, 141, 128, 132, 137, 133, 139, 139, 126, 105, 124, 117, 122, 100, 122, 118, 139, 132, 125, 133, 140, 121, 133, 100, 124, 80, 121, 122, 123, 111, 143, 143, 130, 135, 123, 132, 126, 142, 131, 129, 106, 126, 139, 133, 118, 132, 126, 122, 121, 136, 120, 133, 103, 130, 135, 124, 130, 123, 131, 119, 132, 131, 123, 100, 110, 121, 121, 122, 133, 112, 112, 122, 116, 119, 137, 145, 117, 131, 115, 135, 127, 115, 126, 120, 126, 134, 130, 128, 138, 131, 130, 129, 133, 115, 124, 114, 138, 134, 122, 129, 136, 109, 114, 108, 126, 125, 112, 125, 129, 118, 119, 133, 122, 117, 126, 115, 127, 122, 130, 124, 136, 132, 137, 131, 136, 125, 125, 137, 117, 124, 125, 113, 111, 131, 125, 118, 109, 128, 138, 122, 114, 131, 136, 123, 123, 134, 139, 113, 128, 122, 115, 108, 121, 107, 115, 128, 121, 136, 133, 131, 134, 129, 132, 128, 131, 144, 124, 130, 100, 116, 114, 137, 128, 120, 122, 146, 112, 133, 117, 135, 90, 119, 131, 125, 142, 123, 129, 126, 117, 121, 125, 115, 154, 133, 133, 115, 119, 126, 121, 131, 126, 122, 130, 146, 118, 112, 114, 123, 134, 133, 135, 144, 120, 124, 120, 128, 123, 134, 110, 133, 138, 117, 141, 132, 127, 122, 119, 139, 115, 128, 134, 121, 132, 125, 108, 130, 130, 118, 121, 133, 122, 115, 136, 121, 120, 124, 120, 130, 121, 129, 134, 140, 130, 126, 129, 133, 128, 142, 138, 119, 120, 123, 149, 132, 135, 126, 124, 137, 115, 119, 134, 124, 128, 129, 117, 116, 128, 118, 118, 135, 130, 133, 118, 120, 132, 128, 114, 127, 104, 130, 114, 117, 112, 126, 131, 126, 126, 126, 130, 132, 111, 126, 125, 121, 137, 121, 125, 118, 141, 136, 123, 125, 131, 117, 130, 140, 136, 118, 127, 116, 128, 111, 140, 124, 119, 116, 137, 135, 120, 145, 123, 118, 123, 133, 129, 120, 141, 130, 134, 131, 113, 105, 101, 128, 123, 128, 121, 126, 124, 126, 137, 143, 119, 110, 131, 113, 112, 133, 127, 124, 137, 129, 113, 136, 122, 129, 113, 119, 125, 130, 122, 120, 137, 119, 139, 140, 122, 103, 124, 137, 119, 130, 114, 141, 135, 117, 100, 120, 134, 127, 136, 132, 127, 130, 121, 129, 131, 119, 137, 130, 114, 121, 148, 145, 119, 141, 137, 148, 122, 125, 127, 131, 112, 136, 121, 107, 127, 137, 119, 122, 120, 166, 107, 127, 123, 109, 111, 119, 129, 120, 123, 123, 120, 123, 114, 113, 122, 117, 135, 129, 124, 124, 127, 112, 130, 127, 129, 124, 117, 123, 111, 127, 133, 116, 120, 136, 120, 129, 123, 126, 120, 126, 134, 124, 120, 131, 125, 145, 137, 127, 143, 131, 125, 143, 140, 119, 118, 142, 144, 136, 117, 128, 131, 103, 132, 119, 130, 124, 109, 119, 128, 143, 99, 137, 122, 116, 134, 142, 133, 121, 147, 128, 122, 146, 113, 105, 125, 127, 137, 114, 127, 134, 128, 112, 121, 114, 123, 127, 118, 120, 144, 114, 122, 127, 120, 125, 123, 157, 133, 112, 115, 139, 137, 126, 124, 112, 126, 142, 129, 145, 110, 124, 128, 127, 134, 125, 142, 150, 124, 108, 127, 125, 101, 132, 113, 128, 124, 129, 122, 118, 147, 126, 117, 136, 131, 117, 97, 122, 120, 126, 128, 116, 132, 132, 131, 129, 114, 139, 107, 127, 131, 141, 136, 124, 121, 125, 135, 132, 121, 113, 113, 148, 131, 110, 131, 124, 125, 119, 132, 124, 123, 118, 136, 113, 134, 142, 123, 114, 119, 139, 118, 132, 122, 134, 119, 115, 125, 98, 98, 129, 125, 108, 131, 116, 108, 127, 142, 129, 132, 136, 155, 134, 126, 133, 110, 131, 103, 130, 130, 129, 133, 119, 118, 127, 117, 125, 129, 126, 107, 129, 126, 130, 122, 119, 130, 101, 112, 114, 130, 134, 115, 119, 120, 121, 135, 116, 108, 132, 126, 127, 134, 121, 136, 112, 129, 119, 126, 119, 134, 124, 117, 103, 120, 127, 137, 132, 127, 110, 114, 128, 142, 119, 114, 120, 118, 121, 107, 110, 108, 134, 127, 160, 122, 128, 122, 127, 125, 131, 128, 121, 119, 118, 130, 141, 90, 112, 148, 130, 119, 114, 138, 133, 130, 130, 114, 113, 136, 132, 115, 123, 148, 121, 142, 142, 140, 117, 151, 147, 129, 132, 111, 111, 124, 108, 142, 122, 117, 127, 107, 129, 130, 135, 117, 133, 135, 138, 124, 132, 110, 127, 132, 112, 131, 117, 121, 112, 130, 120, 112, 119, 133, 104, 123, 133, 114, 140, 127, 101, 130, 132, 132, 118, 134, 119, 120, 133, 124, 116, 133, 134, 127, 120, 134, 113, 115, 122, 128, 118, 130, 115, 137, 129, 116, 109, 127, 133, 129, 115, 131, 139, 115, 131, 126, 140, 116, 130, 125, 110, 123, 114, 113, 124, 141, 137, 142, 131, 141, 121, 137, 116, 119, 122, 113, 127, 113, 127, 105, 135, 131, 135, 109, 132, 130, 122, 133, 118, 136, 134, 138, 122, 110, 114, 112, 106, 135, 132, 150, 125, 121, 143, 122, 127, 138, 127, 126, 133, 139, 137, 132, 126, 119, 111, 123, 114, 121, 123, 139, 130, 101, 129, 153, 123, 129, 129, 133, 125, 125, 142, 120, 135, 151, 137, 120, 127, 130, 113, 127, 139, 124, 122, 141, 116, 133, 133, 120, 137, 130, 120, 120, 117, 122, 116, 137, 108, 123, 137, 121, 133, 133, 118, 139, 120, 143, 135, 136, 122, 121, 131, 127, 115, 118, 135, 145, 137, 129, 128, 126, 124, 127, 133, 115, 120, 123, 117, 126, 130, 137, 110, 107, 114, 123, 120, 133, 138, 131, 123, 120, 109, 108, 141, 129, 119, 145, 127, 118, 144, 102, 128, 122, 125, 120, 118, 132, 127, 117, 128, 118, 108, 125, 122, 129, 136, 125, 122, 134, 129, 127, 113, 110, 124, 140, 135, 141, 135, 124, 124, 114, 129, 116, 124, 138, 112, 114, 119, 137, 124, 119, 134, 115, 116, 126, 124, 125, 135, 121, 121, 115, 138, 129, 133, 127, 119, 102, 104, 125, 115, 151, 120, 141, 130, 125, 121, 129, 128, 112, 136, 136, 115, 111, 140, 114, 130, 121, 119, 111, 145, 119, 119, 128, 110, 153, 108, 135, 125, 121, 131, 126, 125, 113, 151, 136, 124, 136, 126, 132, 121, 109, 129, 125, 118, 124, 123, 115, 130, 130, 100, 109, 123, 124, 115, 128, 121, 122, 123, 120, 131, 118, 125, 116, 117, 132, 124, 112, 134, 141, 111, 124, 135, 123, 122, 125, 125, 101, 150, 132, 108, 118, 125, 130, 100, 119, 128, 137, 126, 106, 125, 120, 128, 132, 145, 136, 128, 124, 125, 119, 116, 130, 129, 146, 113, 122, 140, 116, 142, 136, 106, 135, 129, 137, 132, 125, 129, 117, 110, 119, 133, 128, 118, 105, 126, 130, 110, 133, 123, 104, 136, 123, 126, 114, 112, 113, 126, 122, 129, 111, 123, 128, 128, 122, 127, 127, 115, 106, 129, 102, 127, 108, 117, 125, 127, 151, 122, 131, 127, 145, 122, 142, 127, 126, 132, 134, 116, 139, 128, 134, 112, 122, 119, 116, 111, 112, 141, 124, 120, 111, 115, 138, 118, 118, 125, 132, 118, 124, 131, 114, 106, 126, 127, 120, 137, 135, 132, 124, 137, 128, 112, 113, 132, 130, 119, 132, 120, 123, 119, 125, 133, 113, 124, 119, 129, 138, 122, 119, 127, 108, 123, 117, 128, 136, 117, 115, 142, 148, 120, 148, 120, 116, 139, 93, 122, 124, 117, 125, 110, 145, 131, 116, 113, 106, 128, 125, 133, 109, 125, 127, 111, 128, 132, 116, 132, 129, 131, 119, 116, 117, 127, 138, 129, 117, 124, 111, 146, 96, 143, 116, 130, 119, 132, 107, 124, 132, 148, 118, 137, 120, 130, 107, 121, 142, 112, 102, 130, 114, 140, 113, 132, 139, 126, 127, 116, 127, 120, 143, 124, 126, 127, 127, 129, 112, 126, 139, 122, 141, 144, 133, 130, 107, 117, 127, 108, 130, 111, 117, 110, 120, 135, 138, 128, 145, 147, 129, 132, 131, 134, 128, 143, 129, 86, 129, 97, 134, 131, 122, 130, 120, 118, 163, 119, 120, 133, 120, 127, 118, 128, 124, 136, 130, 104, 141, 141, 116, 117, 123, 125, 125, 120, 124, 121, 114, 135, 126, 152, 114, 131, 118, 137, 118, 113, 136, 123, 119, 108, 105, 107, 134, 117, 131, 120, 122, 120, 113, 121, 122, 119, 100, 122, 129, 124, 122, 124, 120, 115, 132, 106, 141, 122, 122, 147, 130, 112, 109, 134, 134, 105, 129, 144, 122, 104, 145, 116, 126, 123, 118, 123, 123, 117, 115, 123, 113, 115, 123, 135, 128, 126, 125, 131, 130, 141, 134, 125, 123, 123, 148, 120, 104, 135, 125, 117, 122, 127, 113, 126, 119, 108, 105, 119, 131, 144, 122, 115, 143, 115, 125, 126, 116, 133, 128, 130, 121, 130, 119, 150, 126, 121, 104, 125, 140, 103, 122, 116, 134, 143, 110, 117, 132, 113, 145, 119, 132, 125, 120, 136, 116, 111, 135, 131, 139, 115, 107, 130, 146, 136, 136, 123, 123, 115, 124, 124, 112, 120, 126, 126, 119, 125, 133, 122, 115, 118, 132, 129, 119, 114, 136, 136, 125, 138, 133, 140, 126, 130, 112, 116, 124, 128, 122, 107, 129, 128, 133, 131, 137, 108, 123, 117, 117, 130, 114, 124, 103, 130, 131, 129, 112, 133, 108, 128, 129, 115, 139, 126, 127, 131, 117, 147, 123, 135, 121, 135, 136, 126, 116, 119, 133, 114, 116, 125, 116, 121, 131, 133, 108, 136, 110, 129, 111, 118, 126, 110, 130, 139, 108, 120, 124, 121, 121, 122, 119, 132, 134, 111, 125, 142, 120, 133, 133, 135, 133, 119, 115, 139, 117, 126, 117, 110, 114, 134, 119, 148, 111, 138, 118, 150, 122, 115, 109, 137, 140, 115, 120, 119, 116, 111, 124, 113, 131, 128, 117, 130, 122, 112, 131, 125, 127, 128, 130, 129, 113, 113, 118, 114, 118, 135, 125, 124, 117, 127, 122, 121, 120, 139, 115, 139, 123, 127, 131, 107, 121, 127, 118, 126, 122, 123, 118, 130, 112, 130, 129, 132, 123, 120, 137, 139, 121, 114, 131, 118, 114, 119, 115, 131, 138, 133, 117, 119, 139, 116, 115, 134, 123, 136, 111, 123, 121, 117, 124, 121, 128, 124, 141, 129, 133, 133, 133, 131, 120, 127, 115, 118, 104, 108, 125, 115, 123, 126, 153, 155, 126, 119, 117, 130, 128, 123, 138, 125, 125, 130, 126, 125, 127, 115, 130, 126, 132, 132, 135, 126, 124, 126, 135, 138, 125, 132, 125, 124, 134, 119, 124, 119, 124, 130, 157, 138, 126, 129, 120, 115, 127, 139, 121, 129, 105, 118, 120, 128, 119, 122, 138, 101, 127, 114, 131, 122, 137, 128, 85, 118, 118, 104, 118, 133, 132, 118, 128, 121, 112, 117, 139, 110, 131, 114, 124, 110, 131, 140, 111, 135, 128, 113, 123, 129, 154, 134, 133, 130, 126, 97, 105, 124, 135, 113, 128, 146, 127, 111, 122, 146, 118, 128, 125, 133, 108, 123, 137, 116, 101, 119, 120, 117, 129, 123, 132, 127, 133, 114, 128, 119, 155, 125, 124, 141, 129, 123, 120, 104, 121, 145, 103, 126, 123, 122, 117, 131, 130, 162, 138, 122, 136, 119, 138, 127, 125, 131, 134, 115, 144, 147, 141, 128, 137, 132, 115, 127, 125, 132, 125, 121, 129, 125, 135, 126, 119, 143, 116, 117, 137, 132, 133, 103, 113, 144, 122, 133, 126, 117, 139, 101, 119, 105, 121, 120, 120, 136, 114, 121, 120, 113, 129, 118, 118, 129, 129, 104, 112, 130, 118, 112, 118, 122, 140, 147, 120, 120, 137, 145, 135, 127, 129, 114, 136, 104, 104, 135, 127, 116, 127, 131, 132, 122, 117, 123, 120, 129, 147, 125, 135, 119, 121, 115, 125, 129, 124, 135, 123, 128, 130, 128, 129, 129, 122, 119, 120, 117, 148, 118, 114, 129, 134, 105, 115, 132, 131, 119, 165, 119, 125, 111, 137, 136, 132, 125, 132, 146, 124, 117, 128, 122, 152, 143, 127, 120, 110, 122, 112, 134, 120, 113, 131, 117, 128, 114, 127, 135, 113, 124, 120, 111, 121, 121, 130, 114, 103, 128, 128, 108, 134, 129, 135, 115, 128, 138, 123, 114, 126, 122, 134, 134, 126, 130, 140, 126, 130, 125, 135, 121, 122, 142, 124, 119, 113, 113, 111, 117, 134, 119, 128, 107, 129, 134, 123, 127, 116, 129, 121, 142, 101, 135, 120, 102, 142, 120, 118, 126, 115, 137, 113, 112, 112, 128, 127, 126, 118, 124, 125, 130, 128, 131, 127, 119, 131, 130, 122, 111, 117, 122, 147, 121, 137, 128, 134, 121, 116, 119, 120, 139, 117, 104, 120, 115, 127, 105, 120, 123, 116, 134, 109, 125, 147, 144, 110, 104, 137, 128, 115, 126, 110, 120, 122, 127, 125, 128, 117, 136, 116, 132, 122, 99, 106, 140, 117, 112, 114, 130, 133, 130, 127, 136, 130, 129, 131, 137, 129, 110, 118, 111, 120, 130, 139, 127, 128, 126, 122, 114, 120, 132, 127, 130, 133, 125, 114, 128, 124, 134, 135, 132, 116, 119, 133, 143, 129, 112, 123, 131, 134, 115, 113, 132, 135, 109, 125, 128, 141, 97, 118, 128, 112, 130, 111, 106, 113, 117, 131, 130, 123, 117, 127, 135, 134, 114, 139, 125, 128, 106, 127, 135, 130, 134, 105, 130, 135, 124, 139, 121, 128, 139, 137, 128, 125, 128, 144, 120, 114, 120, 110, 141, 121, 104, 136, 117, 122, 116, 140, 121, 109, 129, 134, 151, 121, 124, 145, 122, 114, 115, 122, 132, 118, 115, 128, 123, 132, 129, 123, 125, 125, 125, 115, 144, 130, 97, 115, 114, 118, 120, 111, 128, 111, 113, 127, 135, 141, 119, 99, 144, 119, 139, 122, 120, 129, 122, 141, 129, 118, 119, 130, 123, 134, 121, 127, 126, 145, 130, 121, 132, 123, 129, 113, 129, 138, 131, 143, 133, 125, 126, 144, 113, 128, 124, 133, 113, 139, 142, 134, 108, 119, 144, 124, 122, 125, 123, 114, 139, 120, 129, 107, 145, 130, 126, 116, 116, 135, 139, 129, 123, 149, 134, 125, 126, 123, 110, 115, 135, 138, 98, 126, 135, 114, 115, 123, 132, 118, 119, 130, 112, 94, 131, 130, 116, 117, 134, 133, 106, 133, 131, 130, 123, 151, 124, 115, 117, 118, 123, 136, 133, 120, 120, 134, 119, 134, 127, 117, 116, 136, 144, 119, 140, 137, 115, 127, 127, 124, 130, 129, 143, 134, 126, 118, 116, 111, 128, 133, 123, 122, 128, 127, 125, 121, 133, 124, 140, 115, 92, 124, 119, 115, 118, 128, 124, 128, 131, 132, 133, 132, 125, 120, 125, 122, 136, 113, 120, 131, 123, 115, 124, 117, 123, 121, 113, 129, 125, 116, 139, 144, 109, 130, 139, 126, 121, 131, 119, 130, 126, 127, 114, 142, 118, 128, 136, 122, 115, 139, 136, 132, 116, 138, 124, 114, 116, 133, 124, 128, 117, 140, 111, 132, 127, 130, 127, 129, 144, 131, 127, 116, 127, 131, 132, 134, 117, 131, 123, 107, 131, 114, 155, 122, 127, 140, 123, 120, 127, 125, 132, 108, 154, 123, 119, 127, 120, 116, 123, 148, 114, 125, 108, 132, 117, 130, 132, 122, 129, 123, 129, 136, 135, 115, 127, 125, 128, 122, 114, 130, 122, 125, 111, 131, 130, 124, 120, 137, 111, 108, 109, 132, 146, 139, 118, 127, 141, 132, 113, 120, 130, 148, 120, 129, 135, 121, 134, 132, 114, 135, 152, 130, 127, 117, 136, 120, 131, 112, 133, 142, 135, 140, 125, 138, 118, 120, 134, 129, 143, 113, 121, 145, 118, 132, 123, 125, 126, 120, 123, 119, 126, 118, 134, 109, 134, 111, 115, 120, 123, 120, 117, 132, 112, 129, 115, 132, 138, 149, 115, 128, 129, 132, 142, 132, 138, 117, 131, 121, 124, 121, 131, 124, 120, 124, 133, 113, 136, 150, 129, 128, 126, 123, 117, 110, 125, 128, 118, 126, 116, 116, 122, 124, 116, 122, 123, 121, 100, 136, 127, 134, 116, 147, 125, 131, 127, 115, 133, 128, 121, 121, 130, 125, 134, 139, 119, 142, 125, 99, 118, 129, 129, 118, 115, 94, 123, 128, 140, 106, 121, 130, 134, 121, 124, 114, 138, 122, 109, 128, 128, 147, 126, 104, 114, 140, 127, 141, 139, 123, 112, 120, 142, 124, 128, 128, 123, 112, 127, 140, 125, 127, 120, 137, 147, 126, 110, 114, 118, 123, 121, 114, 110, 145, 117, 120, 130, 122, 112, 117, 135, 126, 117, 128, 131, 114, 117, 124, 107, 122, 136, 124, 112, 114, 119, 124, 134, 147, 128, 123, 111, 129, 113, 125, 133, 143, 148, 107, 121, 131, 136, 148, 135, 132, 118, 125, 122, 125, 124, 126, 139, 131, 129, 134, 127, 127, 124, 116, 139, 131, 144, 107, 128, 130, 140, 118, 135, 148, 132, 111, 126, 134, 129, 124, 131, 121, 137, 129, 129, 131, 129, 125, 115, 128, 142, 124, 138, 140, 120, 112, 126, 125, 131, 125, 113, 117, 116, 108, 120, 136, 128, 127, 122, 117, 126, 115, 138, 111, 118, 136, 127, 120, 119, 129, 130, 118, 119, 119, 109, 124, 116, 109, 121, 137, 124, 116, 116, 125, 123, 117, 140, 129, 118, 133, 133, 127, 105, 109, 130, 132, 111, 135, 126, 128, 131, 145, 127, 122, 123, 137, 111, 134, 129, 126, 135, 126, 115, 121, 127, 117, 121, 125, 132, 118, 124, 128, 145, 116, 123, 136, 142, 135, 126, 116, 116, 139, 125, 126, 121, 114, 111, 132, 128, 122, 132, 138, 118, 134, 114, 124, 131, 125, 116, 132, 115, 127, 113, 109, 119, 109, 140, 130, 124, 116, 130, 104, 122, 120, 134, 125, 111, 131, 113, 133, 136, 112, 129, 134, 141, 127, 125, 120, 119, 116, 135, 118, 109, 113, 124, 126, 132, 135, 130, 130, 119, 129, 133, 116, 123, 142, 125, 135, 139, 123, 134, 112, 125, 107, 113, 107, 127, 136, 137, 140, 112, 121, 131, 114, 124, 106, 126, 138, 128, 125, 123, 133, 138, 127, 131, 124, 116, 146, 122, 125, 111, 124, 106, 124, 125, 120, 108, 117, 131, 123, 132, 139, 150, 126, 103, 120, 123, 120, 136, 103, 118, 132, 130, 130, 130, 131, 125, 123, 133, 132, 130, 118, 123, 144, 115, 128, 129, 120, 122, 138, 121, 131, 131, 115, 144, 127, 120, 123, 131, 116, 132, 113, 144, 127, 94, 133, 128, 126, 132, 130, 122, 134, 136, 104, 127, 152, 124, 124, 136, 107, 130, 112, 124, 128, 129, 123, 125, 118, 129, 126, 120, 104, 137, 123, 132, 98, 136, 124, 139, 107, 117, 127, 124, 113, 110, 120, 137, 130, 105, 125, 110, 127, 106, 131, 132, 139, 103, 146, 123, 112, 141, 120, 124, 131, 134, 118, 117, 137, 132, 113, 127, 103, 145, 109, 129, 122, 109, 144, 130, 117, 122, 148, 138, 137, 111, 144, 152, 137, 115, 135, 132, 137, 134, 118, 121, 140, 142, 127, 131, 141, 126, 127, 116, 123, 104, 128, 118, 114, 146, 114, 154, 130, 116, 131, 98, 128, 132, 122, 147, 119, 105, 123, 131, 134, 117, 120, 138, 126, 120, 115, 119, 132, 146, 108, 129, 151, 126, 118, 114, 119, 119, 122, 118, 146, 104, 118, 127, 127, 108, 138, 130, 128, 129, 117, 148, 127, 93, 128, 132, 129, 114, 142, 111, 123, 126, 118, 116, 137, 118, 118, 134, 148, 118, 130, 131, 121, 118, 114, 125, 127, 126, 130, 130, 114, 131, 139, 123, 117, 109, 130, 118, 114, 134, 136, 131, 120, 111, 129, 131, 132, 137, 116, 129, 127, 141, 128, 108, 138, 149, 125, 122, 117, 100, 115, 127, 116, 121, 136, 122, 118, 126, 140, 126, 118, 130, 114, 122, 125, 146, 125, 129, 120, 124, 126, 119, 135, 126, 133, 122, 129, 122, 123, 119, 127, 125, 131, 124, 125, 120, 128, 127, 127, 133, 107, 137, 124, 143, 112, 124, 133, 127, 122, 119, 131, 127, 116, 120, 124, 105, 126, 131, 132, 115, 124, 135, 124, 119, 133, 121, 134, 108, 127, 124, 113, 126, 139, 134, 134, 127, 120, 122, 120, 129, 145, 119, 122, 123, 131, 121, 125, 123, 135, 118, 128, 134, 105, 117, 125, 126, 130, 136, 137, 125, 135, 98, 130, 142, 124, 127, 120, 121, 117, 120, 115, 129, 122, 125, 127, 126, 121, 144, 109, 122, 134, 134, 119, 138, 136, 128, 125, 130, 118, 119, 116, 129, 131, 117, 130, 107, 123, 150, 140, 117, 127, 128, 124, 121, 136, 130, 106, 116, 118, 121, 127, 128, 126, 130, 112, 113, 113, 114, 121, 119, 131, 121, 117, 133, 113, 136, 146, 116, 126, 125, 138, 146, 126, 115, 132, 139, 118, 140, 130, 141, 133, 125, 131, 129, 120, 139, 146, 126, 133, 131, 125, 142, 130, 110, 117, 118, 125, 134, 120, 125, 134, 130, 133, 117, 124, 127, 135, 137, 119, 124, 121, 154, 111, 112, 139, 134, 112, 135, 123, 144, 141, 133, 128, 122, 123, 134, 132, 123, 112, 131, 149, 138, 132, 122, 134, 113, 135, 123, 137, 125, 134, 124, 135, 123, 130, 124, 134, 129, 134, 129, 141, 132, 105, 113, 126, 112, 131, 124, 110, 114, 126, 144, 106, 116, 109, 141, 125, 111, 151, 133, 137, 134, 125, 115, 138, 124, 126, 123, 121, 132, 125, 116, 138, 123, 135, 125, 131, 116, 121, 125, 124, 132, 122, 120, 127, 119, 136, 129, 141, 135, 128, 118, 115, 118, 129, 129, 154, 128, 107, 122, 128, 131, 134, 128, 125, 123, 130, 133, 129, 155, 123, 135, 133, 134, 131, 113, 131, 110, 126, 142, 131, 143, 125, 125, 141, 115, 122, 105, 126, 112, 135, 117, 104, 127, 119, 127, 122, 130, 133, 126, 137, 139, 122, 109, 139, 125, 116, 127, 119, 124, 122, 131, 128, 108, 145, 152, 100, 126, 117, 134, 125, 124, 136, 120, 143, 117, 123, 140, 131, 125, 122, 114, 131, 123, 119, 122, 128, 122, 140, 133, 128, 120, 123, 133, 121, 122, 116, 101, 123, 134, 115, 119, 124, 112, 151, 115, 153, 120, 127, 128, 112, 129, 134, 126, 110, 141, 132, 127, 120, 127, 124, 127, 119, 133, 122, 123, 118, 130, 121, 119, 114, 119, 133, 117, 105, 133, 127, 111, 121, 125, 123, 107, 134, 122, 129, 133, 131, 125, 137, 134, 113, 130, 136, 136, 112, 112, 105, 111, 131, 139, 146, 124, 121, 113, 102, 108, 131, 121, 119, 117, 132, 105, 108, 129, 127, 126, 128, 126, 125, 120, 110, 130, 135, 131, 134, 137, 132, 141, 127, 135, 124, 128, 124, 121, 120, 106, 122, 129, 96, 123, 136, 141, 134, 116, 119, 106, 131, 123, 141, 154, 124, 119, 126, 140, 129, 132, 114, 130, 136, 124, 131, 129, 130, 135, 126, 134, 109, 129, 130, 120, 113, 122, 116, 136, 108, 123, 126, 122, 121, 113, 138, 131, 117, 132, 114, 127, 121, 135, 120, 130, 138, 118, 152, 120, 126, 125, 137, 138, 122, 138, 121, 137, 134, 126, 130, 120, 126, 125, 116, 133, 126, 122, 113, 105, 138, 116, 121, 124, 129, 135, 142, 129, 127, 131, 119, 118, 127, 131, 120, 124, 119, 126, 128, 109, 114, 113, 127, 113, 117, 118, 125, 127, 118, 131, 112, 118, 131, 117, 121, 126, 94, 137, 132, 137, 105, 92, 122, 138, 113, 114, 133, 134, 130, 150, 131, 121, 137, 126, 117, 135, 139, 142, 123, 132, 115, 123, 130, 124, 113, 140, 118, 129, 122, 120, 130, 125, 135, 119, 121, 140, 125, 125, 123, 103, 137, 131, 127, 107, 137, 142, 107, 141, 144, 119, 125, 137, 121, 97, 137, 113, 129, 141, 120, 136, 120, 126, 96, 128, 122, 114, 131, 141, 116, 134, 108, 103, 127, 132, 150, 107, 123, 119, 129, 133, 137, 136, 140, 135, 135, 133, 128, 118, 124, 141, 119, 113, 115, 116, 124, 128, 128, 134, 136, 125, 132, 136, 110, 127, 135, 124, 114, 120, 119, 128, 118, 133, 124, 105, 117, 122, 108, 137, 120, 126, 141, 127, 132, 140, 118, 137, 126, 138, 126, 131, 109, 114, 112, 128, 117, 127, 116, 150, 103, 136, 105, 130, 131, 130, 123, 134, 134, 121, 124, 125, 129, 138, 118, 120, 98, 121, 147, 123, 130, 124, 130, 128, 148, 136, 109, 123, 130, 118, 120, 142, 124, 114, 130, 97, 139, 114, 106, 128, 115, 123, 125, 115, 133, 124, 120, 121, 128, 132, 124, 125, 113, 105, 130, 123, 128, 141, 128, 134, 126, 134, 105, 119, 134, 130, 136, 135, 118, 131, 124, 136, 123, 122, 129, 124, 134, 140, 101, 131, 126, 122, 148, 133, 144, 129, 121, 128, 129, 109, 122, 134, 105, 134, 142, 118, 125, 124, 123, 128, 111, 135, 131, 135, 126, 122, 162, 133, 110, 133, 121, 125, 126, 116, 124, 121, 121, 113, 141, 123, 138, 127, 128, 128, 120, 128, 135, 139, 119, 112, 132, 123, 118, 134, 125, 123, 129, 141, 111, 115, 136, 125, 152, 141, 128, 122, 116, 119, 128, 122, 125, 119, 153, 139, 126, 118, 132, 129, 117, 124, 144, 127, 114, 133, 125, 124, 134, 128, 117, 122, 123, 146, 127, 130, 135, 122, 127, 134, 129, 127, 138, 128, 113, 125, 127, 108, 132, 107, 137, 119, 104, 117, 106, 144, 132, 123, 125, 131, 134, 123, 139, 122, 139, 114, 137, 127, 138, 98, 120, 135, 121, 118, 124, 138, 105, 141, 116, 117, 112, 135, 123, 125, 138, 140, 130, 130, 126, 124, 105, 136, 129, 106, 107, 139, 145, 121, 122, 132, 108, 125, 131, 140, 126, 126, 132, 107, 132, 142, 129, 128, 135, 119, 114, 133, 137, 120, 124, 134, 109, 124, 140, 149, 115, 113, 134, 119, 116, 117, 105, 127, 135, 121, 120, 125, 142, 134, 122, 128, 125, 133, 131, 127, 101, 135, 128, 128, 124, 122, 123, 128, 121, 126, 125, 107, 127, 131, 133, 120, 127, 131, 133, 118, 129, 119, 122, 125, 127, 140, 111, 112, 151, 115, 114, 120, 110, 142, 119, 135, 123, 142, 118, 133, 132, 147, 118, 127, 137, 143, 119, 124, 127, 109, 119, 150, 127, 123, 115, 134, 120, 131, 125, 130, 119, 133, 110, 133, 126, 123, 124, 125, 129, 114, 129, 126, 117, 128, 134, 106, 124, 124, 119, 117, 126, 114, 135, 143, 117, 124, 143, 125, 148, 145, 137, 129, 141, 125, 124, 119, 107, 114, 133, 129, 125, 123, 133, 126, 125, 132, 109, 136, 115, 134, 116, 145, 126, 132, 134, 118, 125, 140, 122, 118, 137, 130, 131, 130, 116, 114, 121, 155, 111, 119, 123, 118, 112, 121, 125, 140, 124, 111, 104, 113, 122, 135, 106, 122, 120, 130, 127, 144, 100, 135, 127, 112, 140, 116, 127, 128, 142, 130, 95, 128, 130, 129, 133, 125, 109, 128, 122, 113, 110, 130, 123, 111, 129, 122, 126, 124, 143, 131, 133, 113, 97, 149, 124, 134, 134, 130, 149, 137, 149, 119, 130, 116, 110, 126, 140, 128, 125, 117, 115, 126, 148, 113, 128, 114, 114, 125, 120, 136, 131, 127, 130, 131, 117, 125, 133, 125, 124, 136, 121, 135, 122, 112, 134, 117, 125, 105, 113, 126, 129, 119, 128, 116, 121, 136, 136, 130, 138, 129, 115, 118, 143, 112, 132, 120, 112, 133, 103, 108, 134, 122, 134, 144, 134, 123, 123, 120, 133, 126, 132, 136, 118, 135, 108, 123, 134, 127, 136, 136, 116, 129, 145, 121, 143, 128, 157, 124, 123, 128, 121, 130, 120, 119, 117, 113, 133, 135, 123, 113, 122, 128, 130, 123, 147, 136, 126, 124, 147, 126, 131, 120, 130, 137, 116, 132, 145, 124, 121, 125, 121, 110, 121, 120, 123, 108, 144, 128, 129, 144, 130, 124, 117, 128, 133, 135, 153, 135, 116, 120, 135, 119, 121, 135, 109, 134, 122, 145, 117, 118, 116, 129, 126, 121, 117, 140, 135, 136, 118, 136, 118, 115, 125, 128, 112, 113, 126, 132, 141, 143, 133, 118, 117, 118, 116, 121, 120, 116, 137, 126, 126, 149, 127, 128, 130, 125, 119, 110, 123, 129, 122, 113, 137, 113, 138, 135, 125, 119, 119, 100, 133, 104, 114, 115, 120, 129, 120, 117, 115, 108, 125, 111, 132, 134, 141, 118, 132, 114, 129, 118, 121, 120, 120, 138, 130, 138, 120, 149, 122, 131, 139, 144, 131, 133, 125, 123, 123, 120, 120, 111, 133, 137, 125, 115, 122, 122, 107, 131, 107, 125, 126, 133, 135, 143, 143, 120, 119, 119, 114, 111, 127, 122, 148, 109, 106, 126, 144, 120, 122, 113, 116, 106, 123, 144, 129, 126, 103, 121, 132, 133, 134, 119, 123, 151, 143, 132, 137, 130, 118, 139, 113, 118, 117, 140, 122, 139, 126, 128, 117, 119, 125, 123, 125, 116, 132, 124, 122, 126, 123, 121, 113, 117, 116, 136, 129, 122, 109, 134, 126, 142, 134, 123, 129, 138, 143, 131, 122, 125, 105, 129, 118, 114, 119, 125, 133, 124, 118, 118, 125, 141, 120, 129, 131, 134, 130, 125, 120, 118, 115, 132, 127, 126, 136, 136, 120, 112, 131, 139, 120, 131, 108, 126, 113, 123, 121, 129, 133, 120, 118, 138, 139, 125, 134, 116, 124, 115, 125, 124, 132, 134, 132, 129, 145, 125, 111, 120, 114, 117, 107, 123, 127, 132, 117, 123, 116, 130, 122, 129, 115, 124, 126, 126, 131, 136, 128, 134, 124, 134, 133, 117, 129, 124, 142, 144, 115, 122, 134, 128, 126, 119, 116, 117, 117, 136, 132, 144, 116, 126, 118, 128, 121, 119, 122, 123, 130, 115, 129, 127, 132, 111, 122, 139, 117, 116, 128, 130, 131, 96, 126, 117, 128, 128, 119, 134, 113, 125, 124, 122, 134, 126, 128, 130, 116, 116, 139, 137, 138, 139, 110, 150, 123, 132, 130, 112, 118, 129, 145, 129, 135, 130, 117, 121, 127, 99, 122, 112, 120, 117, 134, 129, 103, 126, 137, 117, 121, 115, 126, 117, 136, 121, 138, 130, 130, 130, 110, 128, 117, 125, 121, 124, 133, 127, 123, 113, 126, 135, 120, 132, 120, 95, 124, 119, 118, 131, 123, 121, 120, 115, 126, 108, 118, 121, 151, 138, 110, 116, 125, 117, 116, 110, 111, 150, 125, 127, 131, 136, 115, 140, 100, 138, 123, 119, 132, 147, 139, 123, 145, 128, 130, 131, 103, 119, 128, 127, 110, 134, 125, 123, 134, 120, 119, 121, 123, 133, 112, 132, 106, 124, 119, 109, 125, 115, 125, 133, 123, 115, 120, 118, 127, 129, 99, 118, 137, 126, 139, 124, 125, 123, 114, 133, 113, 118, 125, 127, 124, 129, 135, 123, 104, 114, 112, 127, 119, 121, 113, 134, 117, 133, 131, 135, 127, 130, 118, 114, 136, 146, 109, 116, 126, 151, 112, 129, 141, 124, 132, 133, 121, 121, 119, 139, 133, 136, 126, 133, 116, 113, 148, 125, 110, 135, 120, 140, 117, 119, 138, 120, 124, 115, 127, 126, 131, 141, 127, 141, 135, 133, 135, 133, 129, 138, 130, 118, 117, 126, 142, 118, 131, 130, 118, 125, 135, 114, 136, 127, 127, 135, 120, 130, 133, 119, 108, 129, 129, 120, 127, 123, 124, 127, 116, 137, 124, 132, 120, 137, 114, 144, 119, 119, 127, 113, 127, 141, 114, 120, 132, 126, 122, 122, 124, 112, 120, 130, 104, 119, 139, 135, 129, 127, 136, 130, 129, 120, 139, 134, 116, 121, 132, 125, 122, 123, 120, 121, 121, 127, 138, 114, 124, 119, 133, 145, 128, 121, 121, 139, 118, 128, 134, 115, 128, 114, 128, 145, 143, 125, 122, 128, 119, 137, 136, 143, 123, 125, 126, 130, 141, 122, 109, 129, 125, 127, 114, 102, 137, 133, 131, 103, 110, 144, 112, 123, 114, 112, 125, 115, 111, 128, 126, 133, 122, 112, 121, 150, 131, 120, 127, 130, 130, 126, 139, 149, 109, 128, 126, 129, 127, 125, 128, 140, 141, 121, 109, 123, 143, 121, 111, 136, 137, 128, 132, 135, 121, 134, 138, 138, 134, 126, 142, 116, 130, 133, 144, 146, 118, 141, 119, 132, 126, 117, 144, 138, 124, 133, 144, 134, 100, 127, 131, 108, 130, 110, 111, 118, 130, 120, 115, 124, 123, 134, 125, 125, 124, 130, 128, 128, 129, 123, 136, 123, 129, 111, 138, 120, 112, 128, 119, 116, 115, 130, 142, 145, 129, 134, 122, 118, 111, 120, 133, 125, 107, 127, 130, 142, 106, 106, 135, 114, 124, 131, 132, 125, 122, 127, 128, 130, 112, 130, 129, 118, 125, 119, 109, 95, 123, 127, 136, 121, 128, 129, 132, 138, 112, 120, 119, 123, 128, 114, 136, 114, 132, 137, 119, 126, 116, 115, 112, 127, 108, 133, 140, 118, 133, 126, 109, 124, 119, 136, 135, 134, 112, 130, 135, 123, 130, 130, 117, 136, 111, 112, 127, 120, 112, 129, 121, 144, 133, 133, 121, 128, 122, 114, 141, 128, 112, 137, 158, 117, 130, 146, 122, 145, 117, 110, 126, 124, 120, 120, 134, 123, 110, 122, 132, 132, 120, 128, 106, 133, 133, 118, 117, 118, 131, 116, 124, 132, 129, 133, 132, 105, 136, 126, 118, 126, 121, 126, 126, 109, 119, 127, 129, 115, 129, 128, 128, 105, 108, 127, 112, 114, 121, 124, 150, 134, 119, 120, 120, 125, 112, 118, 136, 122, 116, 142, 120, 123, 132, 113, 110, 122, 138, 123, 142, 118, 116, 122, 132, 133, 108, 130, 113, 121, 125, 117, 119, 112, 136, 130, 131, 122, 125, 125, 125, 118, 112, 131, 135, 133, 126, 111, 133, 123, 119, 135, 133, 112, 137, 134, 147, 127, 112, 130, 137, 113, 128, 121, 118, 121, 129, 120, 147, 146, 124, 126, 134, 141, 123, 102, 123, 138, 124, 137, 142, 119, 129, 125, 116, 132, 122, 121, 125, 115, 119, 112, 131, 110, 118, 118, 117, 129, 135, 141, 136, 127, 131, 140, 133, 142, 135, 126, 129, 105, 129, 129, 117, 131, 128, 122, 122, 133, 119, 123, 115, 123, 111, 111, 121, 128, 115, 136, 121, 129, 126, 120, 136, 134, 127, 139, 119, 114, 127, 134, 120, 113, 111, 117, 119, 129, 132, 112, 130, 123, 122, 127, 125, 126, 138, 138, 125, 135, 145, 139, 141, 123, 145, 122, 116, 151, 133, 115, 132, 122, 121, 101, 127, 143, 123, 130, 139, 121, 117, 112, 129, 130, 121, 140, 125, 128, 118, 127, 116, 121, 129, 117, 112, 138, 137, 129, 114, 138, 116, 132, 136, 139, 117, 140, 115, 117, 123, 124, 116, 127, 124, 105, 121, 118, 125, 147, 132, 127, 126, 127, 114, 111, 138, 112, 139, 131, 141, 110, 152, 134, 126, 140, 150, 134, 122, 119, 125, 137, 127, 132, 130, 136, 136, 126, 132, 120, 138, 122, 123, 130, 114, 145, 134, 122, 134, 130, 140, 126, 129, 119, 144, 132, 118, 124, 137, 117, 139, 142, 130, 137, 124, 136, 124, 143, 118, 122, 122, 117, 103, 118, 118, 122, 129, 141, 122, 114, 124, 127, 127, 130, 125, 143, 124, 137, 117, 106, 132, 123, 129, 135, 118, 138, 124, 110, 137, 120, 133, 118, 120, 129, 114, 116, 115, 127, 137, 122, 132, 126, 124, 133, 128, 122, 126, 131, 137, 114, 122, 122, 138, 122, 130, 117, 126, 118, 132, 130, 120, 116, 115, 123, 119, 126, 120, 108, 106, 127, 112, 124, 129, 113, 143, 107, 103, 129, 142, 123, 121, 134, 116, 130, 110, 111, 138, 126, 145, 126, 116, 105, 123, 120, 133, 122, 136, 134, 129, 116, 136, 113, 130, 116, 136, 145, 122, 124, 133, 132, 136, 146, 116, 124, 122, 120, 127, 116, 145, 136, 147, 128, 131, 136, 122, 132, 120, 120, 130, 127, 124, 129, 99, 143, 142, 131, 118, 127, 141, 139, 129, 122, 124, 132, 123, 120, 136, 134, 122, 120, 104, 130, 124, 122, 122, 133, 127, 120, 109, 123, 105, 123, 117, 107, 131, 128, 115, 127, 128, 129, 129, 107, 124, 126, 115, 107, 119, 115, 119, 115, 127, 133, 126, 110, 113, 131, 111, 118, 139, 133, 125, 105, 139, 127, 139, 124, 112, 127, 109, 129, 97, 122, 131, 125, 115, 130, 112, 138, 111, 125, 116, 136, 122, 114, 135, 111, 137, 117, 124, 134, 138, 121, 124, 131, 132, 114, 130, 124, 130, 119, 114, 139, 146, 120, 121, 145, 114, 126, 126, 134, 133, 118, 124, 140, 133, 148, 117, 128, 114, 118, 139, 112, 123, 132, 115, 150, 116, 138, 148, 126, 125, 151, 116, 131, 139, 129, 142, 121, 126, 125, 134, 122, 120, 119, 119, 128, 129, 109, 133, 122, 148, 121, 129, 126, 122, 139, 114, 126, 121, 125, 115, 125, 140, 133, 131, 122, 127, 129, 115, 134, 117, 129, 126, 124, 118, 141, 123, 108, 130, 123, 121, 119, 138, 118, 125, 125, 140, 124, 129, 109, 122, 136, 133, 119, 123, 118, 124, 131, 114, 137, 113, 141, 125, 119, 109, 130, 140, 121, 139, 118, 129, 131, 138, 121, 126, 133, 124, 139, 124, 138, 116, 116, 126, 130, 125, 119, 125, 136, 113, 130, 101, 127, 128, 120, 129, 135, 125, 108, 131, 118, 117, 122, 118, 109, 119, 144, 126, 130, 129, 121, 116, 132, 107, 131, 115, 138, 113, 122, 127, 116, 96, 125, 129, 121, 117, 113, 136, 133, 126, 100, 132, 131, 131, 123, 109, 135, 127, 116, 132, 120, 126, 129, 136, 133, 122, 136, 121, 131, 117, 123, 118, 129, 117, 128, 108, 122, 125, 136, 130, 125, 114, 143, 119, 119, 141, 130, 129, 140, 120, 136, 112, 133, 147, 117, 127, 139, 141, 137, 136, 131, 133, 129, 113, 123, 135, 135, 140, 145, 125, 148, 122, 127, 137, 135, 123, 117, 116, 137, 116, 120, 130, 117, 141, 118, 129, 113, 127, 116, 123, 112, 132, 136, 121, 109, 121, 121, 126, 129, 145, 141, 128, 119, 118, 126, 130, 141, 124, 126, 139, 105, 136, 118, 114, 151, 115, 126, 134, 124, 113, 122, 116, 134, 128, 135, 126, 117, 137, 117, 137, 114, 120, 131, 144, 134, 115, 122, 140, 121, 111, 132, 148, 120, 119, 140, 126, 119, 140, 126, 122, 132, 119, 121, 111, 134, 140, 120, 124, 122, 113, 123, 125, 142, 123, 113, 136, 125, 115, 136, 118, 129, 117, 118, 136, 128, 126, 118, 111, 136, 140, 119, 121, 115, 134, 107, 115, 139, 125, 130, 117, 129, 114, 132, 144, 124, 117, 122, 125, 126, 148, 102, 125, 122, 134, 119, 121, 121, 134, 126, 124, 125, 126, 130, 155, 136, 133, 128, 117, 126, 133, 121, 131, 113, 128, 112, 112, 113, 127, 117, 130, 155, 116, 120, 118, 137, 123, 148, 122, 138, 136, 99, 119, 130, 133, 148, 127, 127, 129, 128, 142, 137, 116, 132, 120, 125, 136, 101, 111, 128, 133, 127, 115, 131, 118, 105, 131, 121, 124, 120, 118, 135, 121, 126, 114, 123, 139, 145, 133, 118, 127, 120, 126, 129, 130, 145, 122, 121, 136, 117, 133, 125, 107, 148, 120, 143, 131, 115, 129, 113, 135, 121, 128, 135, 142, 141, 121, 122, 138, 125, 117, 125, 115, 131, 128, 136, 139, 114, 124, 135, 130, 133, 126, 120, 124, 132, 138, 114, 125, 131, 150, 133, 118, 128, 132, 110, 117, 138, 119, 135, 127, 121, 124, 114, 135, 131, 130, 123, 120, 139, 120, 130, 124, 122, 127, 122, 120, 106, 122, 130, 138, 121, 117, 136, 124, 126, 136, 122, 136, 118, 111, 137, 130, 120, 133, 105, 145, 133, 107, 122, 123, 131, 111, 108, 121, 121, 136, 132, 112, 129, 123, 114, 121, 129, 128, 123, 129, 128, 110, 132, 119, 141, 118, 108, 119, 121, 115, 128, 106, 129, 129, 130, 117, 126, 134, 130, 122, 125, 112, 122, 127, 125, 120, 135, 117, 101, 118, 128, 123, 128, 116, 127, 111, 97, 122, 124, 121, 115, 113, 125, 133, 130, 128, 115, 131, 129, 130, 110, 131, 123, 122, 112, 133, 142, 122, 111, 137, 155, 157, 121, 119, 122, 137, 119, 105, 135, 126, 122, 128, 122, 111, 126, 126, 128, 134, 125, 121, 128, 133, 129, 145, 134, 140, 124, 140, 125, 108, 121, 123, 114, 122, 129, 135, 122, 121, 119, 123, 138, 126, 154, 130, 131, 131, 122, 151, 129, 143, 118, 125, 124, 130, 124, 122, 127, 138, 115, 130, 120, 127, 140, 125, 115, 108, 121, 112, 123, 130, 118, 127, 120, 127, 134, 111, 125, 124, 128, 133, 129, 127, 119, 122, 111, 138, 125, 122, 136, 116, 118, 123, 119, 121, 140, 110, 120, 122, 128, 123, 121, 115, 136, 145, 122, 120, 129, 124, 131, 118, 115, 118, 122, 110, 126, 126, 134, 113, 131, 142, 117, 129, 117, 119, 171, 128, 134, 121, 134, 127, 124, 120, 126, 110, 123, 143, 138, 127, 118, 127, 123, 118, 126, 123, 127, 119, 117, 117, 153, 131, 136, 139, 113, 110, 150, 110, 126, 130, 145, 137, 142, 105, 127, 127, 104, 111, 138, 147, 128, 111, 136, 128, 129, 128, 126, 129, 112, 110, 133, 131, 110, 122, 127, 121, 125, 136, 127, 129, 137, 136, 120, 132, 116, 115, 122, 134, 130, 111, 125, 115, 120, 124, 131, 100, 118, 122, 129, 106, 132, 124, 139, 125, 120, 112, 129, 118, 136, 117, 124, 111, 128, 157, 114, 115, 133, 131, 130, 111, 91, 119, 136, 123, 126, 116, 118, 121, 133, 110, 114, 128, 146, 124, 129, 128, 109, 134, 121, 127, 127, 120, 134, 122, 117, 139, 136, 139, 132, 115, 124, 127, 134, 126, 142, 115, 124, 121, 139, 119, 124, 122, 124, 142, 92, 111, 130, 129, 117, 108, 120, 131, 126, 127, 109, 143, 119, 134, 126, 109, 119, 110, 137, 128, 134, 125, 119, 131, 108, 121, 122, 131, 123, 108, 158, 123, 119, 138, 122, 133, 125, 99, 123, 118, 132, 109, 130, 122, 127, 133, 116, 130, 108, 129, 140, 132, 124, 135, 122, 117, 113, 127, 148, 136, 135, 115, 121, 148, 117, 125, 129, 113, 117, 126, 130, 118, 121, 124, 111, 128, 119, 113, 121, 121, 121, 117, 138, 125, 137, 136, 122, 124, 122, 134, 131, 145, 127, 128, 122, 115, 110, 124, 121, 133, 134, 123, 99, 106, 123, 122, 121, 138, 108, 121, 117, 122, 121, 129, 136, 124, 102, 138, 119, 124, 113, 124, 133, 140, 126, 127, 119, 131, 115, 139, 139, 118, 125, 136, 144, 121, 122, 125, 131, 127, 113, 114, 119, 155, 110, 145, 126, 115, 115, 132, 146, 128, 113, 116, 121, 139, 149, 115, 127, 128, 110, 118, 139, 106, 121, 136, 153, 138, 138, 129, 121, 131, 118, 124, 129, 122, 132, 129, 124, 140, 132, 147, 126, 109, 121, 108, 124, 127, 122, 126, 143, 140, 119, 123, 132, 138, 127, 114, 135, 123, 136, 135, 137, 130, 128, 135, 107, 146, 126, 131, 106, 133, 140, 135, 117, 120, 128, 130, 124, 128, 133, 135, 119, 129, 110, 123, 120, 128, 115, 135, 137, 117, 112, 138, 132, 130, 128, 128, 129, 113, 130, 134, 143, 132, 136, 111, 128, 117, 127, 124, 129, 135, 97, 135, 131, 120, 138, 132, 117, 133, 128, 132, 111, 115, 134, 145, 118, 123, 118, 125, 133, 115, 120, 131, 115, 132, 113, 123, 120, 125, 117, 132, 139, 125, 128, 134, 129, 117, 136, 111, 131, 130, 135, 120, 128, 111, 135, 131, 125, 134, 129, 126, 118, 118, 124, 120, 127, 123, 117, 123, 138, 132, 119, 143, 114, 109, 124, 118, 104, 111, 128, 115, 133, 132, 149, 133, 134, 132, 119, 125, 122, 125, 126, 129, 114, 131, 122, 129, 115, 130, 130, 116, 139, 131, 120, 121, 120, 132, 125, 115, 119, 125, 135, 102, 115, 129, 126, 121, 138, 125, 143, 128, 114, 115, 107, 125, 139, 138, 140, 123, 112, 112, 115, 128, 119, 153, 131, 126, 123, 132, 130, 127, 122, 132, 128, 123, 141, 135, 113, 138, 127, 125, 152, 131, 117, 114, 132, 143, 134, 128, 124, 134, 113, 125, 128, 111, 123, 127, 144, 112, 101, 124, 129, 124, 131, 126, 114, 122, 135, 127, 122, 136, 123, 117, 129, 113, 128, 129, 139, 118, 143, 164, 142, 123, 122, 106, 110, 117, 131, 137, 130, 131, 123, 125, 125, 125, 117, 131, 124, 130, 123, 126, 124, 138, 127, 136, 129, 142, 122, 131, 130, 109, 111, 139, 135, 127, 138, 130, 130, 118, 135, 128, 113, 120, 126, 128, 126, 124, 131, 130, 131, 136, 118, 124, 136, 125, 123, 159, 119, 144, 129, 142, 132, 140, 122, 121, 132, 130, 116, 138, 120, 125, 119, 139, 116, 123, 135, 120, 137, 131, 125, 109, 133, 125, 138, 133, 131, 132, 125, 124, 127, 135, 129, 124, 133, 128, 111, 135, 125, 131, 134, 135, 135, 126, 141, 130, 143, 112, 132, 108, 137, 126, 127, 124, 146, 129, 116, 128, 120, 125, 122, 124, 142, 103, 122, 139, 126, 122, 146, 110, 127, 136, 112, 117, 137, 150, 137, 129, 130, 113, 129, 126, 131, 114, 125, 120, 136, 131, 133, 116, 111, 132, 126, 121, 125, 129, 126, 118, 126, 115, 119, 131, 116, 119, 121, 122, 149, 124, 109, 125, 149, 124, 124, 123, 133, 137, 135, 120, 122, 127, 119, 118, 128, 132, 121, 108, 126, 125, 116, 113, 107, 136, 117, 118, 137, 124, 129, 118, 140, 127, 116, 118, 140, 129, 121, 120, 123, 125, 117, 130, 109, 133, 136, 104, 124, 117, 138, 133, 126, 134, 122, 121, 139, 126, 100, 119, 120, 113, 153, 122, 130, 117, 139, 123, 124, 120, 102, 130, 130, 134, 122, 126, 101, 132, 119, 123, 124, 124, 119, 115, 120, 134, 135, 128, 122, 118, 126, 130, 122, 135, 120, 140, 103, 122, 129, 113, 133, 115, 114, 113, 142, 126, 114, 131, 128, 115, 110, 132, 123, 123, 125, 135, 123, 128, 133, 119, 126, 123, 115, 138, 126, 134, 141, 125, 131, 142, 126, 128, 117, 111, 138, 121, 135, 101, 136, 119, 118, 128, 120, 119, 120, 120, 128, 130, 129, 118, 94, 109, 147, 123, 134, 133, 129, 116, 142, 120, 134, 110, 133, 130, 113, 130, 133, 124, 126, 134, 133, 126, 126, 141, 129, 127, 119, 108, 134, 122, 129, 132, 118, 145, 121, 120, 121, 130, 116, 108, 127, 122, 125, 116, 129, 104, 125, 132, 123, 123, 125, 131, 132, 141, 132, 111, 116, 126, 138, 127, 116, 135, 139, 128, 135, 130, 112, 131, 128, 128, 134, 128, 111, 133, 127, 131, 125, 135, 122, 127, 120, 117, 123, 147, 137, 137, 132, 125, 134, 128, 126, 130, 124, 121, 140, 119, 119, 121, 115, 128, 119, 124, 133, 138, 135, 141, 59, 124, 135, 130, 131, 123, 109, 124, 113, 135, 123, 116, 143, 128, 120, 128, 131, 134, 129, 122, 119, 144, 131, 113, 128, 123, 135, 114, 127, 131, 111, 137, 129, 118, 109, 122, 135, 111, 120, 117, 137, 110, 123, 135, 110, 131, 137, 112, 109, 135, 120, 145, 134, 123, 114, 118, 125, 130, 125, 115, 120, 120, 125, 126, 131, 134, 104, 113, 133, 106, 135, 117, 130, 116, 114, 121, 117, 129, 124, 126, 131, 140, 139, 122, 135, 112, 144, 128, 115, 146, 118, 121, 137, 134, 123, 137, 120, 150, 132, 113, 119, 123, 136, 134, 129, 130, 142, 139, 135, 135, 119, 130, 133, 144, 119, 129, 149, 124, 132, 130, 114, 155, 143, 131, 120, 137, 116, 116, 117, 134, 124, 111, 112, 128, 111, 116, 130, 124, 126, 126, 140, 121, 132, 126, 110, 126, 116, 135, 131, 124, 136, 127, 111, 135, 130, 133, 136, 117, 110, 139, 139, 115, 122, 131, 125, 116, 120, 128, 133, 135, 131, 135, 137, 116, 119, 130, 145, 129, 129, 116, 135, 137, 124, 125, 125, 133, 120, 133, 141, 121, 122, 136, 121, 118, 115, 122, 103, 126, 131, 117, 133, 122, 116, 97, 126, 129, 136, 126, 129, 115, 135, 133, 120, 117, 130, 122, 105, 121, 131, 128, 119, 124, 134, 115, 132, 125, 147, 120, 140, 132, 114, 128, 120, 128, 129, 126, 119, 124, 120, 145, 120, 141, 120, 129, 133, 131, 137, 139, 113, 126, 122, 137, 123, 122, 131, 114, 133, 122, 129, 118, 132, 133, 120, 123, 128, 117, 116, 116, 124, 135, 145, 122, 133, 154, 120, 118, 132, 120, 127, 130, 117, 147, 113, 149, 140, 127, 111, 130, 128, 122, 126, 126, 126, 128, 133, 132, 136, 132, 142, 118, 130, 116, 123, 130, 134, 131, 127, 135, 124, 131, 136, 122, 121, 110, 135, 147, 137, 131, 134, 137, 128, 136, 129, 128, 133, 109, 116, 123, 127, 126, 122, 131, 113, 127, 129, 113, 121, 122, 126, 131, 136, 128, 122, 119, 130, 127, 129, 115, 112, 118, 104, 124, 133, 128, 122, 116, 118, 127, 117, 128, 129, 120, 140, 139, 112, 131, 111, 133, 129, 115, 108, 99, 116, 114, 139, 132, 130, 132, 126, 119, 150, 125, 135, 131, 128, 143, 138, 128, 134, 123, 132, 128, 120, 127, 118, 120, 113, 122, 110, 121, 111, 127, 142, 132, 102, 130, 134, 135, 139, 124, 112, 153, 143, 113, 128, 120, 119, 108, 144, 130, 145, 132, 128, 135, 140, 127, 136, 124, 128, 129, 142, 123, 138, 132, 135, 128, 124, 122, 116, 123, 120, 118, 140, 136, 135, 146, 130, 121, 132, 119, 122, 113, 112, 101, 119, 127, 115, 150, 139, 124, 128, 137, 122, 114, 113, 131, 128, 137, 131, 129, 123, 131, 146, 145, 130, 120, 128, 112, 112, 116, 117, 134, 132, 131, 125, 122, 119, 115, 118, 119, 129, 106, 106, 142, 136, 135, 122, 127, 130, 111, 127, 121, 133, 117, 115, 128, 120, 120, 118, 150, 107, 119, 123, 123, 112, 146, 119, 147, 119, 132, 102, 142, 106, 108, 128, 119, 131, 119, 150, 133, 116, 130, 114, 111, 122, 134, 119, 105, 127, 131, 106, 121, 130, 139, 114, 117, 126, 122, 120, 125, 119, 135, 115, 120, 126, 129, 117, 113, 125, 113, 125, 121, 140, 122, 138, 116, 135, 134, 120, 121, 129, 127, 116, 116, 119, 117, 138, 121, 117, 132, 138, 111, 124, 125, 133, 136, 141, 127, 125, 125, 123, 126, 130, 146, 120, 133, 118, 115, 133, 120, 128, 115, 140, 123, 115, 139, 126, 117, 119, 135, 127, 124, 121, 123, 110, 112, 143, 128, 140, 119, 126, 124, 121, 136, 122, 128, 118, 107, 117, 116, 126, 117, 115, 107, 114, 142, 119, 134, 127, 132, 104, 130, 140, 138, 133, 142, 127, 133, 125, 130, 121, 131, 125, 150, 121, 129, 107, 122, 137, 124, 122, 131, 132, 125, 129, 132, 146, 119, 108, 129, 160, 135, 128, 128, 120, 131, 129, 121, 135, 141, 116, 130, 124, 135, 134, 118, 118, 145, 133, 123, 133, 130, 116, 109, 132, 125, 128, 128, 123, 141, 131, 135, 130, 121, 128, 128, 132, 136, 133, 114, 119, 130, 102, 118, 119, 126, 130, 90, 117, 124, 127, 109, 134, 131, 116, 135, 147, 126, 136, 123, 134, 128, 115, 114, 148, 142, 127, 111, 108, 139, 123, 135, 134, 139, 127, 133, 120, 123, 128, 140, 113, 135, 129, 140, 127, 135, 122, 143, 143, 122, 129, 120, 141, 135, 134, 117, 112, 136, 129, 135, 121, 127, 123, 129, 145, 118, 123, 113, 130, 112, 122, 125, 115, 118, 140, 112, 117, 133, 134, 147, 108, 123, 116, 139, 104, 120, 155, 108, 149, 132, 126, 122, 114, 132, 132, 114, 128, 121, 132, 132, 125, 121, 132, 139, 136, 132, 122, 143, 130, 116, 111, 113, 120, 117, 121, 126, 113, 119, 128, 108, 114, 125, 126, 117, 135, 136, 134, 143, 110, 131, 122, 133, 102, 113, 125, 107, 123, 114, 109, 130, 141, 109, 111, 114, 116, 118, 121, 139, 120, 135, 134, 127, 107, 136, 126, 115, 126, 113, 124, 137, 99, 132, 126, 132, 114, 148, 152, 131, 128, 130, 124, 146, 118, 127, 111, 114, 124, 120, 131, 127, 126, 151, 123, 131, 120, 122, 122, 119, 129, 120, 95, 107, 121, 125, 106, 130, 127, 104, 116, 121, 109, 130, 126, 123, 137, 133, 117, 128, 120, 113, 126, 117, 130, 109, 123, 127, 114, 133, 134, 112, 127, 121, 134, 123, 122, 135, 125, 113, 118, 127, 120, 125, 123, 114, 138, 137, 129, 122, 125, 130, 121, 117, 131, 134, 123, 137, 109, 129, 137, 102, 113, 117, 117, 102, 129, 126, 131, 100, 133, 119, 134, 140, 121, 142, 129, 128, 130, 109, 123, 134, 134, 132, 115, 134, 134, 118, 126, 116, 127, 123, 138, 137, 130, 126, 114, 138, 125, 126, 148, 131, 117, 129, 110, 107, 110, 117, 137, 126, 136, 105, 129, 130, 116, 121, 134, 117, 132, 133, 106, 134, 134, 138, 131, 131, 109, 124, 126, 138, 111, 134, 128, 113, 114, 112, 120, 124, 120, 116, 112, 122, 139, 120, 114, 130, 132, 123, 140, 131, 138, 114, 111, 131, 110, 126, 131, 125, 123, 112, 149, 117, 149, 124, 134, 120, 114, 125, 130, 131, 110, 129, 136, 128, 122, 119, 108, 132, 118, 138, 115, 108, 124, 145, 125, 131, 111, 130, 131, 130, 123, 134, 118, 130, 110, 130, 122, 141, 131, 121, 122, 116, 129, 115, 114, 117, 119, 106, 117, 126, 108, 126, 127, 146, 123, 107, 138, 115, 119, 116, 142, 123, 120, 126, 120, 128, 118, 126, 144, 120, 133, 117, 129, 124, 124, 117, 119, 120, 127, 127, 106, 141, 116, 118, 140, 140, 133, 142, 130, 121, 108, 139, 114, 120, 118, 128, 138, 124, 120, 124, 134, 110, 136, 129, 132, 119, 127, 152, 109, 132, 111, 117, 114, 146, 118, 121, 125, 117, 117, 123, 120, 138, 127, 134, 125, 129, 114, 131, 114, 118, 125, 125, 124, 139, 138, 108, 115, 127, 134, 110, 119, 126, 125, 129, 129, 125, 118, 123, 137, 126, 130, 106, 133, 141, 142, 134, 130, 147, 121, 114, 126, 116, 114, 121, 124, 112, 135, 124, 136, 130, 129, 132, 111, 113, 149, 137, 119, 143, 125, 119, 130, 136, 126, 120, 115, 96, 141, 119, 141, 132, 119, 134, 108, 116, 134, 118, 118, 129, 145, 123, 131, 119, 122, 125, 123, 122, 123, 111, 100, 140, 119, 130, 107, 125, 130, 120, 135, 135, 124, 125, 133, 126, 111, 93, 131, 125, 106, 115, 133, 131, 133, 138, 122, 120, 124, 112, 152, 131, 126, 123, 133, 136, 127, 120, 110, 118, 113, 120, 136, 128, 136, 126, 123, 135, 131, 117, 124, 130, 138, 105, 129, 127, 145, 132, 119, 112, 131, 130, 136, 120, 101, 135, 120, 124, 118, 100, 144, 116, 115, 121, 119, 143, 135, 131, 122, 129, 120, 130, 138, 113, 119, 128, 110, 144, 130, 131, 124, 121, 139, 106, 130, 123, 143, 134, 126, 131, 130, 132, 125, 145, 126, 128, 142, 122, 116, 127, 121, 126, 136, 139, 106, 129, 126, 110, 114, 140, 123, 116, 127, 133, 132, 111, 124, 116, 127, 139, 142, 146, 130, 131, 117, 123, 116, 128, 135, 126, 125, 139, 126, 103, 134, 115, 131, 126, 119, 126, 120, 116, 127, 134, 128, 139, 108, 122, 150, 124, 122, 134, 129, 104, 140, 139, 135, 126, 122, 138, 127, 133, 138, 110, 117, 126, 118, 124, 106, 113, 147, 150, 117, 123, 133, 132, 125, 123, 126, 111, 125, 128, 131, 113, 112, 140, 128, 116, 114, 131, 129, 132, 138, 127, 131, 129, 145, 140, 122, 115, 115, 123, 134, 126, 130, 122, 122, 134, 146, 125, 113, 130, 110, 133, 117, 116, 138, 111, 123, 123, 118, 117, 125, 134, 120, 123, 115, 122, 121, 117, 132, 114, 122, 133, 107, 112, 145, 136, 113, 129, 112, 108, 128, 116, 126, 103, 131, 135, 105, 124, 125, 142, 131, 130, 99, 115, 120, 141, 129, 125, 107, 152, 126, 118, 109, 133, 135, 133, 131, 123, 104, 120, 135, 123, 109, 126, 112, 142, 131, 127, 135, 119, 109, 136, 117, 126, 127, 113, 119, 114, 145, 139, 121, 100, 116, 134, 124, 118, 112, 127, 144, 108, 119, 126, 127, 120, 117, 129, 137, 135, 131, 119, 108, 119, 129, 138, 129, 105, 137, 133, 128, 122, 119, 137, 129, 123, 123, 110, 127, 117, 131, 108, 119, 127, 109, 113, 144, 129, 126, 132, 128, 130, 139, 106, 114, 114, 117, 124, 127, 137, 129, 114, 130, 132, 138, 150, 123, 128, 114, 106, 117, 132, 121, 118, 139, 127, 123, 113, 143, 116, 122, 137, 141, 98, 151, 119, 123, 140, 125, 128, 124, 127, 116, 123, 140, 104, 107, 117, 107, 139, 117, 132, 117, 123, 108, 121, 103, 124, 99, 115, 143, 138, 116, 122, 110, 131, 116, 128, 138, 118, 111, 122, 124, 133, 124, 113, 118, 126, 132, 107, 140, 127, 145, 125, 136, 116, 129, 120, 125, 131, 133, 129, 128, 145, 128, 141, 122, 142, 129, 100, 133, 118, 118, 113, 126, 121, 129, 132, 146, 134, 122, 119, 118, 123, 128, 143, 120, 135, 128, 113, 129, 124, 97, 138, 111, 121, 145, 117, 129, 141, 107, 123, 129, 115, 119, 128, 124, 145, 117, 141, 132, 106, 139, 116, 131, 140, 124, 113, 141, 137, 124, 93, 154, 131, 113, 111, 135, 133, 102, 118, 105, 148, 117, 129, 109, 106, 129, 128, 116, 116, 130, 139, 140, 125, 108, 126, 129, 112, 106, 128, 137, 119, 131, 124, 120, 141, 115, 126, 128, 107, 121, 118, 126, 131, 132, 99, 117, 113, 126, 127, 128, 119, 125, 109, 127, 131, 120, 131, 134, 134, 132, 133, 109, 118, 121, 118, 119, 147, 131, 101, 128, 121, 132, 139, 124, 119, 128, 99, 122, 135, 130, 123, 108, 140, 118, 139, 134, 98, 116, 125, 133, 131, 118, 145, 149, 127, 134, 125, 132, 113, 125, 121, 102, 115, 115, 136, 127, 116, 130, 132, 123, 125, 120, 132, 114, 111, 99, 125, 139, 128, 120, 132, 118, 117, 130, 115, 138, 116, 112, 118, 137, 117, 120, 118, 136, 117, 126, 151, 130, 108, 127, 128, 132, 108, 132, 107, 107, 148, 115, 125, 121, 127, 123, 119, 141, 123, 117, 124, 119, 109, 113, 130, 127, 143, 112, 117, 116, 122, 134, 143, 123, 126, 118, 133, 107, 139, 128, 114, 126, 129, 114, 127, 121, 122, 114, 121, 140, 123, 127, 147, 109, 148, 129, 119, 118, 125, 123, 122, 111, 134, 138, 130, 140, 128, 130, 124, 123, 125, 118, 122, 121, 141, 136, 121, 122, 119, 127, 131, 131, 116, 122, 144, 136, 111, 127, 127, 128, 130, 112, 122, 127, 131, 122, 133, 114, 141, 107, 126, 129, 128, 111, 128, 104, 126, 115, 134, 131, 144, 117, 109, 90, 102, 123, 151, 143, 121, 113, 127, 122, 125, 111, 134, 134, 134, 135, 128, 95, 133, 115, 121, 107, 124, 123, 118, 122, 124, 103, 128, 134, 141, 108, 120, 115, 133, 114, 132, 118, 122, 117, 124, 126, 122, 135, 139, 122, 136, 122, 123, 98, 122, 115, 120, 116, 137, 133, 132, 123, 106, 124, 112, 112, 119, 129, 122, 120, 114, 138, 119, 138, 131, 136, 103, 140, 124, 138, 134, 131, 118, 109, 124, 117, 119, 119, 125, 125, 116, 116, 134, 129, 140, 129, 121, 140, 135, 133, 106, 110, 119, 112, 125, 125, 122, 125, 129, 148, 126, 110, 119, 107, 130, 130, 120, 128, 131, 119, 113, 140, 126, 108, 122, 122, 121, 126, 138, 146, 133, 110, 120, 115, 131, 121, 114, 126, 134, 134, 133, 121, 127, 130, 119, 124, 140, 127, 129, 127, 133, 110, 118, 120, 117, 123, 144, 119, 133, 122, 126, 106, 127, 121, 143, 136, 119, 122, 111, 133, 136, 137, 127, 126, 126, 109, 136, 130, 123, 121, 137, 113, 121, 109, 113, 144, 128, 152, 107, 132, 113, 129, 131, 115, 119, 129, 134, 127, 136, 136, 112, 108, 127, 136, 101, 129, 139, 129, 123, 130, 121, 112, 123, 92, 140, 143, 146, 119, 112, 123, 138, 114, 128, 121, 127, 123, 126, 121, 120, 122, 121, 126, 124, 122, 113, 142, 133, 131, 138, 144, 115, 124, 133, 136, 130, 135, 125, 133, 98, 138, 130, 120, 139, 122, 124, 134, 99, 125, 147, 144, 135, 130, 131, 122, 150, 136, 141, 124, 144, 124, 123, 131, 120, 119, 128, 142, 119, 111, 114, 132, 134, 116, 114, 111, 127, 136, 124, 141, 152, 138, 133, 126, 121, 134, 131, 114, 125, 121, 122, 131, 118, 130, 121, 111, 135, 133, 113, 124, 129, 130, 134, 122, 122, 113, 138, 119, 121, 107, 129, 104, 119, 133, 128, 127, 137, 130, 123, 125, 126, 123, 141, 129, 116, 118, 137, 140, 122, 128, 127, 130, 121, 123, 108, 143, 125, 120, 135, 132, 157, 125, 126, 149, 139, 108, 137, 127, 124, 140, 129, 133, 131, 141, 146, 121, 133, 138, 116, 128, 124, 147, 120, 119, 136, 108, 115, 115, 114, 125, 101, 138, 117, 123, 125, 120, 123, 143, 120, 130, 137, 122, 154, 126, 121, 126, 127, 125, 140, 124, 132, 108, 138, 115, 126, 125, 132, 125, 144, 141, 110, 142, 144, 132, 124, 121, 139, 138, 149, 112, 122, 123, 133, 140, 133, 110, 144, 115, 140, 123, 116, 123, 139, 119, 122, 141, 115, 120, 136, 150, 109, 113, 141, 121, 114, 134, 125, 138, 134, 128, 130, 117, 129, 136, 123, 125, 116, 128, 140, 120, 146, 139, 118, 132, 129, 107, 128, 123, 115, 128, 121, 128, 134, 125, 119, 126, 123, 142, 115, 115, 125, 128, 133, 116, 127, 115, 115, 121, 129, 119, 137, 126, 122, 135, 133, 127, 128, 123, 93, 120, 108, 127, 142, 125, 123, 131, 110, 127, 128, 105, 140, 126, 133, 117, 109, 119, 133, 119, 128, 124, 130, 127, 118, 126, 124, 128, 128, 120, 129, 139, 106, 123, 124, 113, 105, 132, 138, 140, 144, 123, 123, 114, 142, 122, 130, 135, 125, 135, 130, 117, 120, 133, 126, 137, 114, 115, 144, 133, 137, 131, 140, 134, 131, 142, 127, 118, 111, 127, 129, 136, 135, 142, 143, 123, 132, 123, 121, 122, 124, 132, 124, 133, 126, 125, 118, 115, 127, 135, 116, 130, 127, 118, 130, 134, 138, 133, 130, 134, 114, 120, 116, 118, 138, 108, 115, 123, 120, 133, 121, 132, 137, 126, 127, 139, 114, 136, 111, 121, 133, 107, 123, 131, 136, 119, 118, 121, 126, 120, 127, 133, 132, 127, 157, 131, 116, 132, 130, 121, 103, 122, 125, 140, 120, 114, 139, 120, 123, 136, 119, 120, 117, 135, 117, 122, 118, 111, 137, 125, 122, 132, 105, 116, 115, 119, 127, 133, 135, 136, 137, 106, 117, 134, 119, 118, 135, 117, 131, 138, 141, 127, 129, 133, 122, 145, 121, 107, 115, 129, 135, 121, 121, 130, 119, 141, 135, 129, 143, 116, 124, 122, 144, 131, 134, 121, 114, 125, 113, 125, 111, 121, 126, 131, 107, 123, 144, 112, 121, 132, 138, 129, 128, 130, 125, 123, 119, 127, 137, 134, 122, 132, 126, 124, 131, 141, 120, 109, 134, 125, 128, 110, 122, 126, 117, 141, 129, 132, 119, 114, 101, 130, 111, 136, 125, 116, 131, 122, 122, 107, 118, 126, 146, 114, 122, 131, 136, 113, 124, 135, 117, 126, 119, 126, 131, 127, 121, 122, 128, 131, 112, 119, 112, 128, 121, 130, 131, 122, 108, 124, 137, 128, 119, 141, 129, 126, 106, 111, 126, 138, 110, 142, 99, 120, 125, 131, 150, 117, 132, 122, 118, 112, 119, 122, 126, 130, 125, 143, 118, 142, 125, 127, 129, 132, 133, 126, 132, 123, 136, 127, 133, 115, 126, 135, 132, 110, 123, 134, 129, 115, 117, 139, 110, 123, 110, 127, 118, 117, 125, 131, 128, 113, 127, 131, 141, 135, 122, 129, 133, 115, 108, 142, 131, 120, 131, 136, 137, 132, 131, 119, 131, 130, 109, 126, 136, 127, 107, 122, 125, 128, 112, 126, 134, 117, 111, 112, 125, 120, 128, 127, 113, 125, 139, 116, 119, 115, 132, 121, 131, 119, 126, 124, 129, 144, 115, 102, 108, 116, 134, 110, 154, 129, 117, 111, 147, 121, 130, 122, 107, 117, 136, 120, 136, 130, 121, 152, 116, 129, 120, 133, 114, 134, 101, 132, 126, 117, 117, 121, 133, 118, 115, 127, 134, 130, 140, 125, 112, 116, 134, 126, 127, 119, 116, 125, 136, 146, 114, 139, 126, 130, 113, 113, 137, 128, 114, 127, 120, 132, 148, 134, 136, 109, 153, 107, 139, 126, 127, 118, 145, 128, 137, 138, 120, 124, 138, 128, 140, 122, 103, 133, 114, 153, 120, 120, 126, 137, 126, 127, 131, 130, 127, 117, 126, 129, 127, 125, 136, 127, 104, 145, 122, 138, 105, 129, 128, 135, 127, 117, 146, 100, 156, 132, 116, 130, 134, 133, 124, 144, 138, 126, 143, 152, 159, 110, 142, 132, 135, 110, 120, 133, 131, 112, 138, 135, 131, 111, 143, 123, 147, 134, 124, 118, 132, 120, 103, 120, 115, 132, 120, 132, 126, 113, 96, 134, 120, 110, 127, 104, 131, 105, 111, 141, 118, 129, 119, 133, 143, 119, 109, 144, 129, 131, 136, 125, 127, 113, 116, 132, 135, 116, 122, 120, 135, 138, 121, 121, 122, 130, 139, 128, 121, 129, 119, 142, 125, 112, 138, 124, 145, 105, 121, 128, 102, 139, 137, 128, 127, 107, 145, 137, 123, 133, 110, 123, 126, 126, 127, 132, 141, 133, 132, 124, 133, 137, 121, 116, 135, 141, 123, 125, 145, 140, 134, 112, 126, 131, 118, 133, 133, 110, 119, 118, 115, 147, 106, 118, 111, 120, 100, 131, 115, 124, 122, 131, 111, 122, 121, 122, 116, 123, 115, 105, 129, 110, 114, 117, 127, 127, 124, 144, 114, 136, 134, 130, 109, 121, 125, 122, 105, 122, 136, 136, 132, 132, 132, 104, 121, 124, 129, 130, 131, 142, 119, 128, 125, 131, 138, 122, 126, 108, 127, 116, 124, 124, 122, 125, 120, 111, 137, 149, 124, 127, 121, 130, 127, 113, 126, 117, 116, 137, 124, 118, 126, 122, 112, 108, 128, 123, 134, 123, 121, 128, 128, 131, 121, 114, 134, 143, 137, 124, 141, 134, 126, 120, 115, 134, 131, 112, 144, 137, 121, 140, 149, 121, 117, 132, 116, 128, 123, 116, 129, 127, 131, 122, 132, 130, 127, 135, 121, 127, 132, 133, 134, 117, 134, 126, 115, 115, 125, 109, 112, 113, 125, 118, 132, 119, 121, 135, 128, 131, 129, 125, 123, 120, 122, 136, 126, 138, 125, 114, 124, 125, 133, 113, 115, 143, 131, 109, 139, 144, 126, 125, 129, 149, 127, 123, 151, 114, 140, 128, 153, 115, 130, 120, 129, 131, 126, 116, 117, 126, 113, 110, 106, 117, 122, 126, 121, 136, 116, 121, 124, 160, 119, 129, 119, 126, 131, 130, 149, 125, 116, 121, 111, 139, 119, 110, 127, 132, 113, 133, 136, 123, 131, 120, 122, 123, 131, 124, 126, 122, 140, 131, 121, 129, 118, 119, 117, 139, 124, 122, 129, 110, 109, 124, 127, 114, 116, 106, 135, 123, 109, 124, 125, 138, 120, 125, 140, 147, 129, 133, 136, 121, 121, 126, 115, 127, 133, 114, 116, 119, 112, 115, 129, 124, 121, 114, 119, 122, 138, 142, 124, 131, 119, 112, 110, 123, 121, 123, 112, 129, 134, 117, 123, 131, 119, 122, 116, 135, 124, 132, 114, 113, 120, 127, 123, 121, 120, 131, 131, 132, 143, 128, 125, 130, 134, 124, 114, 121, 137, 137, 120, 131, 132, 131, 120, 134, 123, 137, 113, 112, 121, 120, 121, 122, 120, 114, 123, 126, 109, 141, 114, 128, 117, 109, 127, 109, 119, 118, 135, 114, 111, 109, 105, 120, 140, 120, 123, 123, 124, 137, 118, 132, 139, 123, 146, 112, 118, 119, 130, 126, 133, 118, 122, 126, 124, 112, 119, 118, 134, 150, 125, 137, 139, 127, 130, 114, 111, 124, 122, 130, 90, 120, 120, 126, 120, 127, 133, 126, 137, 111, 129, 118, 122, 125, 130, 119, 120, 122, 128, 118, 136, 132, 113, 146, 123, 119, 113, 123, 135, 135, 107, 114, 126, 125, 124, 125, 102, 124, 123, 128, 135, 140, 139, 118, 130, 120, 126, 129, 134, 117, 112, 142, 133, 111, 126, 125, 136, 116, 133, 127, 117, 122, 121, 118, 126, 112, 115, 131, 142, 126, 127, 129, 119, 132, 142, 114, 112, 125, 141, 120, 133, 111, 124, 124, 107, 131, 140, 122, 138, 109, 121, 130, 112, 123, 111, 135, 109, 118, 133, 136, 123, 120, 119, 110, 121, 126, 121, 108, 123, 137, 119, 118, 121, 120, 128, 140, 126, 134, 131, 138, 128, 145, 139, 134, 127, 127, 127, 133, 129, 111, 115, 127, 150, 122, 120, 122, 131, 114, 122, 135, 112, 116, 116, 130, 126, 126, 122, 119, 119, 125, 117, 127, 106, 109, 123, 117, 124, 117, 117, 111, 116, 128, 135, 127, 139, 132, 119, 118, 135, 129, 125, 121, 128, 127, 121, 125, 126, 127, 116, 117, 136, 151, 106, 124, 137, 126, 120, 123, 135, 124, 127, 124, 144, 112, 130, 112, 115, 120, 116, 115, 132, 116, 135, 131, 125, 118, 126, 104, 131, 130, 151, 114, 122, 119, 112, 121, 120, 136, 133, 128, 145, 112, 128, 124, 122, 118, 123, 133, 113, 127, 113, 114, 108, 134, 139, 113, 107, 129, 153, 118, 113, 119, 128, 126, 110, 130, 126, 125, 121, 120, 119, 123, 136, 115, 130, 130, 119, 138, 125, 122, 113, 136, 143, 141, 133, 113, 139, 140, 129, 129, 124, 129, 121, 117, 128, 134, 123, 135, 139, 118, 122, 140, 113, 122, 140, 115, 122, 124, 110, 119, 125, 122, 106, 109, 142, 137, 133, 122, 133, 133, 153, 153, 136, 116, 122, 134, 119, 118, 141, 131, 135, 130, 115, 137, 115, 122, 127, 127, 116, 117, 127, 130, 123, 115, 124, 145, 135, 125, 142, 136, 121, 118, 134, 118, 126, 137, 118, 134, 130, 141, 123, 119, 158, 113, 125, 129, 132, 122, 104, 130, 134, 133, 132, 119, 140, 108, 118, 111, 138, 130, 125, 127, 123, 143, 135, 119, 118, 154, 134, 115, 104, 122, 115, 140, 116, 126, 143, 122, 117, 108, 121, 123, 131, 122, 140, 126, 113, 114, 132, 130, 115, 115, 130, 111, 140, 135, 98, 118, 130, 123, 113, 134, 129, 121, 140, 124, 117, 123, 129, 145, 122, 136, 113, 116, 133, 136, 109, 128, 115, 139, 116, 122, 123, 121, 122, 107, 135, 126, 131, 125, 120, 118, 123, 128, 130, 125, 128, 118, 119, 133, 132, 131, 127, 113, 107, 119, 137, 115, 140, 133, 122, 141, 125, 100, 126, 141, 138, 127, 134, 130, 132, 146, 125, 121, 109, 127, 116, 118, 114, 142, 124, 127, 136, 129, 127, 134, 136, 117, 128, 117, 118, 118, 129, 119, 132, 124, 130, 124, 122, 124, 114, 135, 132, 115, 143, 135, 109, 129, 135, 130, 142, 134, 129, 116, 115, 136, 121, 119, 93, 122, 128, 122, 155, 132, 129, 133, 116, 129, 125, 153, 126, 116, 127, 122, 115, 122, 124, 128, 128, 115, 128, 121, 129, 130, 138, 124, 130, 123, 117, 121, 114, 135, 131, 122, 130, 132, 139, 112, 126, 135, 129, 131, 129, 122, 119, 131, 119, 124, 134, 137, 119, 143, 115, 126, 119, 133, 124, 126, 125, 123, 125, 130, 127, 133, 115, 121, 110, 125, 110, 133, 115, 116, 142, 118, 108, 141, 125, 140, 141, 116, 138, 140, 117, 126, 122, 119, 117, 150, 121, 117, 135, 130, 117, 122, 125, 126, 146, 118, 132, 119, 121, 120, 140, 128, 147, 124, 123, 122, 116, 123, 124, 125, 134, 118, 118, 131, 114, 144, 127, 111, 122, 115, 121, 137, 128, 105, 123, 114, 120, 131, 121, 124, 127, 114, 120, 104, 123, 120, 118, 144, 120, 111, 130, 130, 107, 113, 146, 123, 139, 138, 131, 129, 124, 126, 111, 106, 133, 124, 109, 139, 125, 130, 125, 116, 134, 144, 129, 127, 116, 132, 130, 120, 125, 123, 120, 136, 131, 141, 132, 125, 145, 124, 127, 117, 114, 120, 111, 108, 98, 140, 123, 126, 108, 114, 124, 102, 129, 133, 120, 117, 137, 121, 112, 128, 129, 140, 135, 120, 100, 126, 122, 137, 125, 107, 129, 127, 135, 122, 120, 129, 122, 115, 125, 114, 127, 112, 128, 133, 126, 131, 132, 119, 116, 147, 134, 113, 122, 145, 119, 117, 102, 133, 126, 106, 122, 132, 129, 135, 131, 110, 115, 126, 141, 144, 109, 121, 123, 120, 125, 105, 126, 136, 138, 104, 115, 139, 119, 129, 131, 134, 116, 133, 126, 125, 126, 122, 126, 128, 133, 126, 114, 126, 117, 129, 119, 102, 125, 124, 131, 123, 115, 130, 150, 132, 124, 128, 129, 116, 121, 130, 121, 142, 123, 118, 125, 122, 127, 117, 110, 131, 136, 131, 139, 149, 127, 121, 126, 129, 136, 146, 114, 131, 116, 124, 126, 128, 116, 125, 129, 137, 126, 112, 119, 108, 126, 122, 136, 138, 126, 116, 112, 108, 119, 119, 144, 122, 130, 119, 132, 146, 119, 131, 134, 138, 126, 107, 121, 128, 119, 115, 118, 92, 112, 107, 128, 114, 137, 129, 124, 116, 141, 150, 126, 137, 130, 128, 122, 127, 129, 116, 119, 131, 126, 119, 130, 123, 118, 128, 143, 134, 135, 136, 131, 129, 129, 119, 129, 122, 141, 128, 118, 129, 121, 117, 139, 125, 105, 128, 124, 126, 114, 126, 134, 111, 130, 112, 132, 118, 117, 137, 119, 137, 115, 116, 134, 125, 111, 137, 131, 137, 138, 122, 122, 152, 129, 121, 123, 134, 116, 135, 116, 139, 138, 118, 123, 118, 134, 132, 129, 112, 123, 134, 132, 130, 124, 128, 112, 126, 117, 108, 136, 113, 126, 140, 116, 119, 119, 123, 138, 123, 122, 136, 124, 139, 127, 116, 118, 140, 116, 126, 113, 117, 116, 125, 106, 118, 101, 123, 126, 118, 137, 128, 128, 109, 106, 132, 137, 142, 111, 128, 150, 117, 113, 126, 135, 120, 104, 130, 124, 113, 130, 129, 118, 119, 123, 122, 132, 137, 104, 108, 133, 156, 127, 134, 121, 111, 141, 136, 142, 128, 127, 124, 116, 103, 124, 127, 130, 120, 129, 116, 115, 131, 125, 133, 115, 117, 125, 118, 129, 104, 115, 131, 135, 126, 123, 129, 130, 131, 130, 99, 124, 110, 121, 122, 109, 145, 123, 132, 124, 121, 120, 153, 131, 139, 138, 122, 132, 123, 107, 113, 125, 128, 136, 119, 136, 113, 124, 115, 120, 124, 133, 121, 138, 116, 114, 131, 127, 135, 126, 118, 102, 122, 120, 128, 134, 113, 120, 131, 129, 124, 127, 134, 131, 133, 120, 128, 137, 117, 137, 134, 113, 118, 115, 147, 137, 134, 128, 130, 135, 107, 129, 125, 117, 122, 138, 130, 119, 125, 114, 113, 145, 134, 118, 112, 124, 118, 132, 123, 119, 117, 133, 132, 117, 109, 95, 122, 103, 132, 154, 125, 126, 132, 107, 128, 132, 132, 113, 138, 129, 109, 108, 136, 132, 130, 118, 123, 114, 108, 121, 136, 134, 123, 126, 130, 123, 144, 132, 115, 113, 111, 110, 109, 134, 134, 131, 137, 123, 113, 119, 125, 120, 130, 133, 132, 157, 124, 137, 120, 126, 127, 107, 116, 141, 126, 127, 116, 115, 122, 139, 139, 113, 121, 104, 124, 115, 126, 130, 132, 132, 119, 127, 116, 114, 137, 134, 117, 113, 135, 123, 126, 108, 124, 116, 129, 125, 120, 139, 133, 123, 137, 111, 131, 119, 133, 122, 122, 131, 123, 120, 117, 131, 137, 123, 130, 128, 130, 123, 125, 105, 123, 124, 141, 111, 116, 131, 113, 118, 118, 107, 100, 130, 124, 142, 114, 122, 122, 128, 137, 130, 122, 129, 132, 114, 112, 145, 117, 112, 139, 132, 122, 109, 120, 132, 121, 122, 123, 119, 114, 120, 119, 132, 134, 133, 116, 91, 126, 131, 128, 120, 127, 136, 138, 146, 127, 122, 111, 109, 118, 134, 141, 125, 112, 112, 146, 121, 124, 121, 129, 120, 111, 132, 130, 101, 128, 129, 116, 136, 115, 131, 116, 127, 138, 128, 120, 133, 138, 133, 111, 116, 131, 124, 112, 131, 149, 122, 120, 128, 116, 135, 131, 120, 127, 132, 129, 126, 118, 128, 116, 119, 120, 133, 118, 114, 135, 118, 124, 123, 114, 144, 126, 115, 124, 125, 132, 132, 129, 125, 123, 124, 119, 125, 135, 125, 123, 135, 113, 107, 135, 129, 133, 120, 106, 120, 129, 134, 135, 131, 109, 109, 135, 141, 120, 124, 122, 134, 116, 115, 115, 130, 118, 120, 128, 132, 133, 137, 121, 116, 133, 101, 124, 121, 125, 126, 114, 128, 142, 141, 130, 128, 117, 114, 131, 133, 123, 117, 121, 109, 116, 130, 141, 133, 116, 138, 119, 130, 122, 132, 122, 139, 130, 100, 133, 126, 123, 117, 135, 110, 136, 126, 117, 119, 114, 124, 129, 130, 130, 125, 139, 134, 142, 116, 148, 112, 127, 124, 122, 119, 121, 132, 125, 120, 126, 126, 133, 146, 125, 132, 110, 133, 113, 127, 132, 116, 130, 124, 138, 118, 131, 120, 115, 110, 134, 129, 109, 125, 121, 105, 141, 127, 140, 117, 121, 122, 128, 140, 131, 135, 120, 125, 132, 139, 126, 120, 130, 145, 101, 122, 123, 128, 124, 102, 132, 123, 111, 125, 117, 140, 127, 132, 119, 115, 110, 119, 116, 124, 129, 128, 126, 144, 114, 106, 119, 134, 120, 129, 123, 121, 126, 103, 137, 122, 135, 121, 121, 129, 130, 139, 121, 132, 127, 121, 121, 124, 129, 131, 125, 128, 117, 123, 121, 119, 111, 129, 124, 130, 107, 144, 121, 110, 136, 119, 122, 130, 143, 126, 118, 118, 125, 122, 143, 106, 134, 119, 118, 125, 124, 117, 120, 140, 145, 133, 120, 118, 128, 106, 93, 127, 124, 133, 128, 129, 122, 124, 115, 118, 132, 127, 120, 146, 140, 135, 140, 135, 109, 121, 126, 120, 105, 131, 134, 118, 102, 121, 123, 115, 130, 125, 121, 127, 126, 113, 123, 115, 110, 129, 138, 126, 131, 140, 129, 110, 117, 133, 141, 132, 118, 136, 131, 133, 148, 128, 108, 113, 119, 129, 124, 117, 130, 117, 119, 147, 149, 123, 101, 123, 131, 114, 124, 124, 121, 123, 120, 127, 126, 134, 127, 134, 112, 122, 123, 129, 131, 132, 109, 133, 138, 113, 134, 117, 122, 144, 131, 137, 122, 132, 128, 119, 124, 125, 126, 117, 109, 112, 133, 131, 165, 128, 123, 126, 102, 128, 122, 114, 116, 107, 117, 139, 135, 138, 116, 117, 123, 126, 125, 119, 130, 115, 130, 135, 120, 135, 121, 148, 137, 132, 96, 125, 124, 138, 128, 148, 123, 141, 117, 122, 124, 136, 99, 128, 136, 126, 111, 110, 127, 127, 130, 129, 131, 127, 104, 116, 113, 126, 128, 122, 142, 114, 115, 123, 111, 112, 133, 118, 132, 142, 108, 135, 127, 112, 138, 139, 135, 121, 121, 126, 130, 137, 111, 133, 106, 119, 142, 129, 114, 117, 111, 135, 119, 125, 144, 125, 114, 147, 116, 120, 142, 120, 120, 118, 122, 114, 139, 104, 139, 134, 124, 128, 130, 104, 132, 136, 140, 139, 126, 127, 141, 143, 136, 126, 129, 138, 114, 117, 120, 114, 136, 119, 129, 133, 125, 126, 122, 130, 112, 131, 137, 107, 130, 129, 125, 118, 116, 97, 138, 123, 130, 115, 127, 127, 122, 138, 118, 133, 131, 160, 115, 144, 133, 118, 132, 132, 113, 126, 127, 128, 115, 114, 120, 113, 134, 134, 132, 117, 111, 139, 110, 122, 133, 140, 119, 108, 136, 121, 130, 129, 136, 134, 137, 143, 128, 127, 121, 115, 121, 148, 124, 144, 115, 124, 136, 113, 113, 128, 123, 141, 118, 129, 153, 123, 134, 121, 126, 128, 124, 107, 115, 129, 123, 130, 126, 130, 132, 140, 140, 130, 145, 125, 123, 112, 125, 121, 113, 133, 131, 115, 117, 122, 127, 126, 117, 127, 115, 130, 144, 129, 107, 142, 116, 140, 121, 119, 129, 136, 114, 127, 130, 125, 123, 132, 152, 123, 112, 142, 133, 121, 137, 132, 135, 129, 122, 131, 109, 122, 127, 129, 122, 133, 111, 123, 137, 120, 127, 120, 137, 135, 151, 121, 122, 134, 140, 121, 127, 124, 119, 125, 116, 136, 109, 140, 138, 133, 105, 114, 116, 155, 126, 139, 123, 143, 115, 132, 158, 134, 125, 129, 122, 128, 124, 108, 123, 122, 123, 148, 124, 127, 117, 147, 129, 140, 135, 133, 132, 117, 135, 110, 111, 121, 133, 117, 133, 119, 122, 121, 123, 141, 128, 121, 123, 127, 100, 113, 126, 105, 133, 113, 147, 118, 131, 116, 116, 131, 129, 112, 146, 118, 132, 108, 139, 120, 122, 122, 120, 124, 134, 130, 123, 125, 128, 134, 138, 127, 128, 126, 123, 116, 126, 126, 115, 121, 137, 140, 141, 119, 117, 129, 121, 142, 118, 121, 126, 116, 140, 146, 124, 113, 122, 127, 136, 123, 133, 105, 119, 128, 126, 133, 134, 128, 133, 123, 111, 125, 123, 114, 114, 103, 120, 122, 118, 141, 137, 109, 124, 119, 129, 120, 117, 112, 115, 99, 130, 107, 128, 141, 121, 142, 139, 111, 138, 130, 135, 127, 113, 128, 123, 130, 127, 124, 115, 113, 118, 119, 127, 126, 115, 115, 118, 117, 105, 131, 116, 126, 146, 135, 127, 116, 127, 98, 118, 126, 122, 133, 146, 110, 115, 113, 121, 141, 127, 136, 125, 120, 136, 128, 128, 129, 126, 132, 128, 115, 129, 118, 114, 125, 117, 120, 129, 121, 132, 155, 119, 136, 127, 124, 107, 135, 117, 106, 118, 123, 130, 118, 144, 124, 133, 124, 97, 125, 122, 112, 111, 98, 128, 129, 111, 114, 108, 117, 132, 120, 109, 125, 106, 111, 123, 114, 135, 122, 115, 141, 135, 133, 95, 115, 131, 120, 130, 123, 125, 130, 127, 125, 130, 129, 128, 130, 128, 129, 109, 117, 144, 142, 116, 131, 149, 116, 107, 128, 136, 129, 125, 107, 121, 116, 133, 127, 141, 146, 126, 113, 113, 107, 118, 143, 124, 142, 119, 125, 129, 119, 136, 124, 106, 120, 115, 137, 122, 136, 110, 124, 133, 125, 120, 135, 129, 117, 124, 123, 143, 108, 135, 138, 118, 127, 129, 134, 145, 124, 126, 131, 109, 127, 121, 121, 126, 121, 129, 119, 139, 119, 133, 113, 140, 114, 136, 124, 121, 128, 114, 116, 126, 139, 130, 113, 84, 126, 121, 122, 129, 138, 132, 127, 117, 141, 126, 118, 134, 126, 140, 137, 135, 128, 127, 136, 128, 130, 128, 141, 122, 137, 117, 116, 121, 117, 121, 113, 144, 132, 118, 111, 139, 115, 133, 123, 121, 127, 132, 122, 107, 123, 120, 128, 124, 128, 122, 136, 106, 134, 136, 110, 126, 143, 118, 119, 128, 124, 137, 123, 105, 127, 96, 146, 119, 147, 122, 131, 119, 123, 121, 128, 126, 137, 119, 115, 119, 122, 123, 118, 133, 121, 135, 127, 116, 115, 132, 109, 120, 122, 126, 119, 120, 122, 124, 134, 128, 128, 125, 124, 151, 133, 131, 119, 129, 121, 131, 125, 136, 128, 114, 126, 134, 106, 130, 128, 133, 123, 125, 123, 129, 120, 133, 127, 110, 122, 131, 121, 117, 125, 114, 131, 121, 129, 115, 124, 144, 124, 125, 112, 127, 123, 124, 114, 134, 117, 117, 122, 127, 133, 129, 116, 122, 129, 125, 121, 144, 119, 124, 137, 109, 146, 121, 144, 100, 119, 123, 124, 136, 111, 146, 120, 121, 134, 121, 128, 129, 122, 114, 118, 128, 126, 105, 147, 119, 128, 116, 121, 121, 132, 120, 125, 119, 125, 116, 117, 106, 130, 111, 132, 132, 133, 130, 136, 135, 110, 112, 132, 131, 121, 140, 119, 124, 132, 127, 98, 120, 125, 148, 82, 129, 133, 129, 138, 126, 139, 127, 122, 114, 134, 114, 110, 133, 128, 117, 126, 122, 139, 131, 126, 132, 129, 129, 131, 124, 116, 133, 133, 101, 102, 123, 129, 126, 127, 111, 128, 124, 128, 131, 132, 109, 117, 121, 121, 138, 127, 115, 129, 144, 131, 146, 107, 121, 145, 111, 113, 125, 116, 116, 117, 123, 128, 129, 117, 134, 135, 111, 139, 121, 111, 83, 137, 146, 138, 119, 132, 138, 128, 152, 142, 135, 123, 129, 135, 119, 128, 146, 123, 144, 125, 127, 124, 119, 123, 121, 128, 132, 121, 130, 137, 118, 132, 124, 127, 116, 126, 122, 139, 128, 122, 123, 123, 120, 122, 115, 129, 130, 131, 128, 126, 139, 135, 114, 122, 125, 120, 125, 144, 131, 116, 120, 124, 118, 119, 133, 116, 123, 128, 124, 116, 144, 113, 125, 115, 125, 114, 116, 134, 137, 137, 116, 124, 127, 127, 108, 133, 123, 120, 108, 129, 126, 143, 147, 146, 142, 143, 151, 120, 129, 130, 135, 126, 118, 140, 133, 111, 131, 127, 117, 130, 123, 125, 126, 128, 133, 122, 130, 133, 135, 136, 120, 132, 126, 128, 148, 129, 115, 121, 124, 130, 132, 117, 128, 135, 132, 109, 138, 108, 109, 124, 121, 146, 126, 127, 141, 108, 123, 143, 128, 134, 149, 131, 142, 125, 126, 121, 129, 121, 114, 128, 123, 130, 123, 116, 136, 112, 112, 103, 120, 123, 139, 121, 108, 146, 118, 123, 135, 127, 123, 110, 148, 129, 135, 129, 124, 133, 116, 127, 104, 128, 108, 110, 140, 139, 120, 129, 134, 145, 141, 133, 132, 115, 112, 121, 119, 143, 130, 135, 119, 146, 133, 128, 123, 129, 118, 131, 101, 128, 124, 128, 136, 138, 111, 127, 119, 130, 127, 118, 128, 123, 102, 139, 140, 122, 128, 133, 119, 117, 111, 122, 131, 134, 138, 121, 123, 125, 128, 130, 119, 155, 113, 139, 135, 119, 123, 134, 108, 130, 129, 122, 117, 116, 115, 122, 123, 120, 129, 116, 135, 137, 126, 124, 126, 122, 135, 118, 112, 118, 122, 124, 123, 120, 125, 119, 136, 108, 136, 113, 131, 120, 114, 114, 123, 127, 136, 125, 136, 126, 128, 131, 132, 124, 114, 131, 132, 129, 143, 115, 124, 128, 113, 124, 127, 131, 127, 135, 113, 133, 116, 116, 110, 126, 126, 118, 129, 120, 132, 107, 130, 150, 126, 125, 149, 114, 117, 112, 128, 133, 123, 124, 114, 139, 113, 134, 125, 129, 120, 135, 126, 115, 139, 142, 121, 124, 130, 120, 115, 132, 124, 126, 119, 127, 123, 115, 127, 126, 122, 120, 122, 130, 129, 122, 142, 128, 128, 114, 117, 137, 141, 127, 131, 120, 134, 116, 150, 122, 121, 122, 117, 137, 133, 116, 129, 137, 111, 114, 126, 118, 130, 123, 138, 124, 116, 120, 140, 129, 120, 143, 142, 131, 122, 125, 108, 104, 127, 106, 117, 126, 116, 138, 116, 133, 141, 126, 118, 130, 132, 118, 110, 116, 104, 133, 138, 127, 121, 109, 128, 108, 145, 119, 123, 118, 121, 104, 135, 119, 119, 138, 122, 136, 124, 123, 141, 130, 123, 127, 131, 140, 121, 134, 133, 118, 121, 116, 130, 106, 121, 123, 134, 122, 107, 131, 112, 122, 122, 129, 134, 121, 115, 123, 126, 131, 114, 122, 108, 146, 129, 123, 135, 146, 124, 138, 138, 123, 113, 112, 109, 139, 115, 114, 120, 118, 137, 128, 118, 114, 143, 122, 139, 136, 99, 115, 136, 115, 123, 116, 122, 117, 114, 140, 138, 126, 129, 135, 119, 138, 114, 117, 124, 131, 121, 135, 110, 138, 131, 129, 132, 130, 134, 137, 134, 123, 125, 129, 135, 150, 132, 115, 114, 128, 139, 135, 109, 138, 131, 124, 117, 131, 119, 110, 120, 113, 105, 140, 131, 139, 122, 123, 127, 120, 118, 126, 120, 115, 129, 120, 128, 120, 129, 116, 132, 128, 134, 129, 124, 114, 113, 122, 123, 136, 120, 124, 162, 136, 144, 128, 139, 125, 133, 139, 133, 121, 137, 129, 143, 123, 125, 121, 127, 124, 137, 116, 133, 132, 131, 126, 128, 105, 132, 119, 116, 145, 127, 134, 120, 122, 128, 124, 121, 120, 121, 125, 117, 119, 126, 128, 125, 125, 119, 118, 122, 135, 105, 128, 125, 121, 129, 113, 120, 127, 107, 112, 129, 123, 112, 132, 121, 138, 139, 117, 130, 114, 121, 123, 131, 137, 132, 115, 142, 121, 125, 133, 108, 131, 117, 140, 130, 123, 133, 114, 112, 121, 116, 123, 129, 127, 123, 128, 129, 123, 109, 121, 116, 122, 126, 132, 133, 114, 129, 120, 118, 126, 130, 121, 131, 133, 132, 135, 144, 121, 124, 109, 121, 121, 118, 113, 119, 127, 116, 132, 121, 114, 119, 118, 122, 125, 110, 134, 122, 128, 130, 120, 133, 116, 120, 129, 119, 114, 122, 153, 127, 118, 124, 143, 114, 133, 121, 136, 121, 105, 142, 137, 142, 114, 111, 126, 127, 133, 123, 140, 118, 140, 135, 137, 126, 121, 125, 128, 127, 147, 128, 125, 139, 109, 104, 129, 117, 144, 132, 129, 111, 127, 133, 135, 103, 133, 133, 115, 144, 145, 119, 108, 129, 116, 123, 106, 117, 116, 128, 135, 121, 138, 134, 132, 128, 127, 114, 128, 132, 123, 121, 132, 134, 119, 129, 139, 141, 127, 132, 128, 111, 113, 112, 132, 126, 105, 123, 135, 123, 128, 128, 126, 125, 123, 125, 113, 123, 117, 112, 116, 139, 127, 124, 137, 127, 131, 118, 137, 121, 122, 118, 130, 123, 122, 143, 131, 130, 127, 128, 139, 124, 116, 120, 139, 127, 128, 135, 127, 127, 113, 111, 124, 141, 151, 127, 124, 115, 134, 133, 124, 135, 112, 130, 139, 142, 127, 126, 119, 136, 121, 114, 121, 108, 112, 119, 114, 116, 126, 135, 129, 124, 139, 115, 124, 123, 121, 113, 133, 115, 137, 116, 117, 125, 127, 111, 113, 144, 121, 131, 133, 102, 140, 120, 113, 129, 113, 146, 133, 126, 150, 122, 121, 123, 135, 136, 124, 122, 108, 132, 134, 121, 125, 105, 134, 123, 113, 136, 126, 127, 139, 122, 132, 123, 131, 116, 115, 133, 125, 121, 115, 137, 145, 123, 115, 120, 107, 127, 127, 118, 131, 132, 116, 133, 140, 130, 136, 128, 119, 130, 122, 133, 118, 119, 121, 110, 121, 119, 136, 135, 121, 132, 121, 129, 121, 125, 143, 124, 119, 134, 132, 119, 136, 137, 118, 127, 117, 138, 101, 124, 137, 124, 129, 118, 119, 148, 121, 124, 116, 123, 138, 119, 135, 120, 128, 122, 116, 128, 128, 122, 129, 119, 119, 125, 121, 106, 138, 121, 129, 118, 115, 115, 125, 129, 131, 123, 115, 128, 140, 144, 129, 134, 114, 127, 125, 139, 129, 121, 132, 131, 118, 126, 130, 121, 125, 119, 114, 125, 125, 120, 129, 126, 137, 117, 114, 138, 133, 146, 119, 125, 152, 129, 122, 130, 116, 109, 132, 123, 134, 138, 134, 112, 147, 129, 135, 132, 119, 125, 113, 122, 133, 125, 126, 111, 121, 129, 131, 115, 131, 134, 128, 142, 126, 105, 130, 122, 131, 137, 140, 118, 140, 120, 131, 143, 121, 119, 126, 128, 122, 129, 121, 106, 131, 142, 114, 122, 114, 109, 127, 141, 150, 119, 119, 124, 129, 114, 114, 148, 121, 134, 119, 143, 129, 137, 138, 122, 130, 126, 122, 123, 117, 121, 123, 111, 122, 126, 115, 127, 114, 121, 131, 130, 121, 128, 130, 114, 111, 121, 108, 121, 121, 129, 109, 111, 130, 135, 121, 128, 114, 125, 124, 123, 124, 123, 121, 124, 126, 126, 128, 135, 129, 135, 126, 123, 129, 115, 112, 110, 128, 135, 115, 114, 128, 128, 119, 118, 140, 109, 136, 127, 135, 130, 109, 128, 119, 140, 121, 114, 136, 116, 120, 127, 129, 124, 134, 130, 142, 139, 104, 118, 137, 127, 118, 115, 134, 128, 130, 104, 129, 134, 137, 114, 124, 128, 121, 117, 123, 142, 140, 128, 134, 114, 123, 133, 115, 120, 129, 146, 133, 111, 139, 140, 128, 129, 132, 119, 120, 110, 111, 147, 112, 115, 131, 118, 113, 118, 138, 121, 131, 119, 111, 121, 101, 140, 124, 124, 127, 104, 130, 124, 118, 114, 116, 145, 116, 129, 124, 117, 125, 118, 119, 145, 126, 137, 148, 142, 128, 111, 126, 143, 120, 122, 131, 136, 116, 127, 133, 137, 116, 130, 114, 113, 138, 121, 140, 126, 146, 130, 120, 113, 137, 133, 123, 132, 102, 129, 127, 120, 121, 108, 116, 121, 138, 129, 132, 122, 117, 111, 126, 138, 125, 120, 115, 136, 129, 117, 131, 127, 120, 145, 125, 122, 118, 138, 134, 128, 128, 119, 106, 147, 119, 101, 96, 145, 109, 134, 129, 141, 119, 114, 106, 138, 133, 146, 122, 142, 126, 121, 124, 119, 129, 127, 118, 147, 118, 126, 105, 143, 117, 131, 138, 112, 117, 137, 122, 107, 132, 122, 130, 109, 115, 120, 121, 129, 121, 132, 131, 140, 118, 120, 146, 118, 132, 115, 128, 121, 122, 130, 154, 111, 144, 118, 114, 138, 117, 135, 128, 121, 131, 133, 120, 125, 111, 118, 106, 130, 112, 135, 118, 138, 132, 134, 127, 132, 128, 119, 134, 115, 113, 128, 124, 115, 134, 130, 135, 123, 128, 119, 126, 119, 123, 133, 114, 106, 129, 120, 125, 123, 129, 130, 121, 126, 125, 111, 137, 129, 137, 143, 120, 130, 133, 116, 128, 117, 138, 127, 132, 134, 133, 123, 135, 120, 131, 133, 118, 130, 121, 136, 120, 128, 105, 129, 126, 128, 117, 126, 127, 138, 132, 134, 128, 136, 131, 122, 125, 130, 132, 128, 137, 143, 117, 128, 133, 131, 124, 127, 131, 131, 140, 108, 115, 117, 114, 133, 123, 132, 128, 119, 140, 124, 134, 110, 112, 120, 147, 133, 135, 121, 121, 128, 128, 118, 117, 102, 137, 131, 126, 139, 135, 120, 108, 137, 122, 118, 133, 141, 123, 103, 133, 137, 129, 141, 111, 138, 130, 129, 131, 111, 138, 126, 129, 131, 120, 122, 131, 111, 125, 131, 108, 128, 129, 138, 123, 116, 136, 127, 126, 140, 124, 108, 116, 118, 120, 126, 131, 141, 124, 128, 132, 118, 123, 128, 128, 119, 139, 135, 137, 118, 142, 134, 113, 147, 112, 136, 149, 127, 122, 137, 122, 115, 143, 132, 109, 129, 130, 130, 145, 106, 127, 121, 127, 125, 136, 98, 128, 139, 133, 117, 144, 122, 109, 131, 129, 119, 140, 101, 119, 118, 128, 120, 122, 131, 131, 133, 111, 128, 124, 114, 108, 107, 107, 127, 118, 142, 129, 130, 127, 130, 114, 126, 133, 102, 127, 123, 130, 130, 125, 142, 146, 125, 111, 129, 136, 136, 132, 131, 128, 127, 93, 117, 104, 125, 114, 124, 122, 133, 124, 121, 107, 127, 112, 116, 120, 137, 111, 133, 113, 115, 107, 131, 116, 126, 128, 119, 123, 136, 114, 125, 135, 114, 110, 114, 115, 115, 108, 135, 131, 107, 103, 112, 142, 125, 131, 116, 156, 110, 114, 134, 136, 116, 127, 115, 137, 111, 107, 143, 143, 127, 133, 132, 127, 132, 126, 135, 128, 133, 125, 131, 146, 116, 114, 122, 132, 127, 130, 125, 137, 115, 95, 132, 123, 118, 109, 118, 139, 118, 124, 128, 139, 105, 133, 134, 146, 119, 129, 157, 128, 133, 136, 113, 123, 122, 128, 132, 129, 116, 133, 119, 124, 124, 129, 124, 131, 136, 130, 109, 137, 125, 137, 119, 116, 128, 115, 130, 137, 138, 120, 118, 125, 131, 127, 135, 114, 138, 125, 99, 109, 136, 132, 124, 126, 110, 115, 120, 123, 122, 125, 124, 132, 126, 128, 124, 133, 116, 111, 120, 127, 123, 128, 123, 133, 123, 120, 128, 103, 116, 116, 105, 117, 119, 115, 137, 129, 126, 130, 124, 118, 132, 107, 138, 136, 110, 143, 123, 106, 135, 112, 121, 130, 140, 126, 116, 119, 119, 126, 116, 127, 136, 144, 119, 120, 120, 119, 132, 123, 145, 123, 127, 132, 127, 122, 123, 118, 129, 127, 136, 124, 130, 123, 120, 127, 123, 136, 121, 135, 115, 118, 128, 124, 105, 133, 124, 113, 116, 134, 125, 126, 132, 126, 128, 126, 124, 121, 137, 106, 112, 111, 122, 123, 132, 108, 108, 121, 118, 133, 142, 120, 142, 124, 137, 120, 122, 127, 128, 133, 138, 129, 105, 129, 115, 110, 119, 146, 128, 103, 123, 123, 133, 140, 133, 113, 128, 114, 125, 123, 126, 137, 137, 131, 122, 146, 122, 156, 139, 126, 130, 117, 134, 110, 124, 129, 147, 144, 135, 140, 147, 133, 134, 139, 124, 122, 122, 134, 132, 130, 127, 136, 118, 124, 139, 128, 118, 115, 133, 110, 116, 127, 130, 160, 132, 126, 139, 145, 107, 142, 131, 122, 139, 120, 132, 143, 120, 133, 156, 119, 143, 129, 124, 127, 146, 121, 117, 115, 138, 133, 121, 110, 124, 114, 127, 121, 124, 127, 113, 107, 131, 114, 115, 129, 112, 115, 129, 104, 113, 117, 116, 127, 123, 131, 131, 113, 131, 129, 129, 131, 128, 130, 127, 124, 107, 127, 126, 122, 148, 121, 111, 114, 150, 100, 143, 116, 119, 138, 129, 120, 116, 115, 141, 126, 123, 121, 95, 134, 112, 124, 135, 138, 131, 123, 144, 129, 119, 131, 120, 136, 116, 125, 132, 130, 131, 123, 109, 116, 140, 121, 127, 151, 112, 116, 130, 115, 125, 120, 134, 123, 128, 128, 113, 135, 135, 137, 112, 110, 109, 110, 125, 120, 125, 127, 129, 130, 110, 110, 120, 104, 126, 141, 103, 153, 128, 113, 118, 129, 129, 125, 119, 107, 113, 137, 143, 121, 128, 120, 125, 116, 112, 126, 128, 117, 90, 127, 137, 114, 113, 126, 121, 122, 124, 109, 120, 97, 108, 117, 121, 129, 136, 133, 127, 122, 128, 120, 133, 132, 132, 113, 130, 137, 142, 135, 122, 140, 135, 146, 138, 139, 97, 133, 140, 134, 128, 129, 143, 130, 126, 123, 111, 114, 119, 125, 140, 118, 113, 110, 132, 122, 123, 111, 127, 124, 121, 123, 120, 102, 132, 114, 122, 123, 125, 126, 118, 134, 130, 122, 130, 128, 121, 131, 127, 114, 124, 139, 114, 111, 133, 115, 116, 120, 123, 116, 125, 132, 126, 140, 119, 130, 121, 123, 130, 125, 119, 125, 124, 140, 115, 115, 124, 134, 130, 107, 126, 122, 132, 143, 124, 112, 118, 114, 117, 143, 135, 116, 118, 117, 125, 126, 120, 132, 117, 112, 150, 128, 117, 121, 122, 124, 117, 128, 134, 135, 120, 129, 129, 143, 119, 123, 127, 138, 144, 112, 123, 126, 118, 108, 122, 137, 135, 135, 128, 129, 136, 107, 122, 143, 116, 128, 112, 155, 142, 125, 131, 119, 105, 118, 144, 137, 138, 112, 104, 127, 126, 117, 118, 145, 124, 130, 122, 123, 141, 124, 114, 114, 114, 108, 112, 124, 129, 114, 132, 118, 137, 109, 116, 137, 129, 129, 127, 113, 130, 137, 128, 136, 113, 132, 125, 122, 130, 121, 118, 123, 128, 108, 150, 123, 126, 126, 127, 129, 127, 115, 129, 127, 116, 109, 139, 132, 116, 128, 126, 135, 96, 118, 113, 141, 139, 130, 119, 137, 137, 118, 119, 149, 120, 129, 129, 118, 136, 111, 150, 135, 123, 127, 120, 128, 109, 114, 128, 112, 114, 114, 136, 126, 115, 124, 142, 122, 132, 129, 110, 136, 115, 132, 146, 126, 135, 115, 132, 114, 123, 125, 112, 121, 125, 98, 124, 115, 132, 126, 126, 127, 120, 109, 126, 128, 118, 136, 138, 113, 155, 147, 119, 137, 118, 132, 116, 134, 130, 139, 113, 120, 148, 131, 106, 119, 117, 117, 132, 138, 120, 93, 117, 132, 139, 126, 137, 117, 115, 121, 121, 128, 128, 128, 117, 145, 137, 122, 118, 92, 119, 114, 144, 123, 149, 114, 118, 119, 131, 128, 118, 120, 114, 126, 135, 143, 127, 122, 127, 131, 131, 112, 122, 137, 128, 142, 128, 113, 118, 116, 123, 132, 117, 145, 134, 110, 126, 119, 143, 122, 116, 142, 130, 138, 131, 154, 117, 132, 135, 117, 138, 128, 138, 111, 102, 139, 114, 123, 124, 119, 110, 140, 139, 118, 127, 131, 125, 131, 153, 126, 104, 122, 133, 124, 100, 123, 123, 130, 120, 134, 134, 137, 122, 130, 136, 107, 133, 143, 113, 147, 124, 124, 142, 125, 129, 152, 160, 149, 115, 137, 111, 123, 137, 121, 122, 130, 120, 114, 139, 116, 125, 108, 132, 122, 133, 101, 124, 135, 111, 122, 100, 127, 113, 131, 122, 126, 108, 140, 135, 115, 129, 129, 134, 115, 116, 135, 130, 139, 116, 131, 132, 117, 112, 126, 129, 114, 125, 120, 109, 137, 135, 127, 112, 124, 102, 124, 123, 126, 124, 131, 117, 121, 119, 143, 117, 131, 130, 117, 155, 124, 128, 134, 147, 128, 133, 130, 132, 103, 127, 143, 127, 122, 109, 134, 122, 133, 118, 117, 124, 129, 126, 144, 119, 126, 111, 134, 136, 146, 116, 128, 130, 116, 124, 132, 133, 109, 119, 123, 115, 150, 130, 133, 119, 111, 114, 123, 126, 123, 110, 118, 121, 130, 141, 119, 122, 118, 130, 114, 126, 124, 128, 118, 115, 117, 123, 131, 129, 110, 133, 125, 130, 131, 132, 117, 130, 113, 146, 120, 117, 120, 134, 124, 127, 134, 130, 116, 113, 129, 154, 127, 133, 150, 136, 148, 127, 126, 123, 124, 133, 119, 132, 139, 136, 126, 119, 100, 140, 136, 108, 134, 142, 117, 126, 124, 151, 117, 116, 126, 143, 138, 128, 114, 113, 126, 130, 127, 120, 119, 137, 136, 128, 134, 138, 119, 125, 127, 124, 138, 134, 119, 141, 116, 134, 119, 119, 104, 143, 147, 126, 120, 122, 115, 121, 131, 116, 131, 127, 119, 131, 122, 136, 123, 118, 108, 119, 108, 115, 123, 123, 134, 123, 115, 126, 135, 122, 122, 125, 133, 112, 114, 125, 124, 131, 112, 120, 138, 129, 132, 147, 136, 143, 118, 124, 135, 132, 132, 106, 136, 119, 121, 124, 152, 137, 147, 99, 143, 111, 133, 121, 129, 122, 121, 129, 135, 111, 140, 123, 135, 126, 133, 126, 120, 138, 121, 128, 124, 131, 125, 123, 136, 113, 116, 128, 128, 141, 140, 123, 109, 132, 129, 130, 153, 136, 127, 133, 115, 129, 124, 127, 118, 136, 119, 118, 122, 119, 136, 123, 129, 122, 128, 130, 129, 126, 117, 118, 134, 143, 107, 124, 125, 129, 131, 116, 119, 123, 138, 126, 107, 116, 107, 110, 134, 125, 114, 130, 131, 112, 116, 107, 130, 132, 126, 114, 123, 114, 132, 121, 118, 112, 129, 126, 137, 141, 130, 137, 135, 125, 122, 119, 118, 124, 128, 126, 120, 138, 143, 112, 126, 110, 115, 117, 137, 129, 132, 124, 115, 111, 135, 136, 130, 110, 114, 123, 124, 108, 127, 131, 127, 134, 131, 115, 129, 127, 118, 123, 135, 123, 133, 142, 129, 135, 133, 146, 106, 144, 125, 119, 142, 114, 130, 133, 132, 131, 119, 116, 142, 122, 128, 131, 113, 117, 137, 140, 124, 147, 126, 132, 105, 132, 125, 132, 126, 118, 105, 117, 132, 141, 127, 119, 127, 131, 142, 130, 118, 123, 120, 135, 129, 141, 114, 117, 171, 148, 131, 121, 126, 140, 132, 128, 124, 123, 120, 107, 125, 125, 121, 122, 112, 127, 117, 136, 128, 133, 116, 126, 128, 122, 127, 141, 127, 139, 129, 124, 130, 105, 131, 129, 129, 142, 145, 125, 110, 118, 128, 109, 135, 125, 127, 113, 143, 123, 124, 123, 132, 117, 137, 131, 122, 127, 122, 121, 133, 125, 131, 137, 122, 136, 117, 114, 119, 131, 130, 129, 140, 119, 123, 141, 104, 120, 123, 118, 140, 134, 107, 125, 105, 142, 145, 112, 116, 138, 129, 129, 108, 119, 113, 117, 112, 119, 125, 128, 134, 121, 115, 104, 119, 134, 134, 139, 137, 127, 122, 121, 141, 131, 135, 138, 119, 133, 132, 110, 132, 119, 126, 136, 122, 141, 136, 129, 123, 130, 125, 126, 118, 146, 122, 111, 104, 150, 124, 126, 131, 132, 145, 114, 132, 144, 117, 112, 110, 121, 127, 132, 121, 114, 117, 117, 126, 119, 109, 100, 142, 129, 129, 117, 129, 122, 124, 112, 135, 135, 120, 118, 110, 142, 130, 113, 102, 136, 132, 132, 115, 121, 136, 125, 123, 134, 124, 120, 138, 128, 98, 132, 112, 114, 127, 127, 139, 125, 128, 124, 121, 127, 127, 135, 126, 123, 113, 124, 122, 129, 133, 125, 144, 132, 113, 117, 123, 116, 116, 135, 119, 129, 144, 134, 146, 128, 123, 125, 126, 133, 129, 138, 135, 122, 142, 111, 124, 149, 147, 112, 160, 129, 140, 134, 122, 126, 115, 127, 156, 120, 125, 138, 126, 134, 127, 112, 118, 145, 112, 122, 113, 141, 138, 106, 137, 146, 118, 116, 131, 127, 114, 137, 112, 127, 126, 130, 111, 126, 114, 144, 143, 139, 113, 108, 124, 112, 139, 126, 123, 103, 128, 120, 125, 128, 133, 129, 141, 132, 129, 119, 119, 126, 134, 126, 128, 121, 135, 132, 120, 141, 111, 134, 125, 122, 120, 115, 121, 139, 129, 131, 139, 112, 133, 131, 121, 108, 142, 133, 113, 131, 132, 127, 130, 151, 128, 119, 124, 135, 130, 113, 125, 123, 126, 128, 116, 131, 131, 142, 122, 142, 119, 123, 131, 129, 120, 102, 118, 139, 114, 123, 120, 113, 128, 113, 139, 132, 126, 114, 124, 122, 120, 139, 134, 115, 117, 134, 116, 118, 121, 114, 134, 124, 126, 126, 126, 128, 130, 109, 104, 138, 132, 121, 122, 140, 134, 134, 114, 100, 108, 98, 115, 116, 121, 129, 114, 135, 118, 125, 110, 129, 118, 120, 141, 138, 129, 122, 125, 125, 118, 125, 147, 129, 126, 114, 131, 117, 130, 129, 119, 136, 114, 126, 136, 105, 116, 132, 134, 135, 132, 116, 104, 113, 141, 112, 119, 131, 117, 108, 128, 121, 128, 119, 128, 118, 123, 138, 126, 122, 128, 133, 135, 120, 139, 125, 137, 126, 120, 130, 113, 141, 123, 124, 127, 130, 135, 125, 109, 124, 116, 122, 119, 120, 129, 141, 127, 114, 126, 140, 137, 146, 106, 138, 137, 125, 128, 128, 107, 126, 128, 133, 123, 131, 125, 158, 148, 125, 137, 123, 137, 127, 145, 124, 123, 116, 142, 127, 126, 131, 126, 137, 134, 122, 124, 110, 128, 125, 125, 129, 141, 140, 105, 153, 131, 132, 123, 129, 128, 123, 92, 138, 118, 131, 128, 110, 106, 133, 110, 120, 136, 122, 117, 113, 121, 117, 140, 132, 110, 144, 117, 141, 120, 126, 123, 132, 132, 126, 130, 133, 115, 126, 135, 120, 127, 135, 123, 128, 120, 139, 136, 119, 131, 123, 123, 137, 128, 134, 113, 123, 118, 134, 119, 128, 119, 127, 134, 117, 120, 106, 119, 133, 127, 129, 127, 139, 135, 123, 136, 121, 125, 136, 120, 137, 148, 121, 120, 143, 147, 135, 140, 131, 117, 127, 128, 138, 135, 116, 129, 123, 135, 131, 115, 123, 126, 136, 131, 131, 128, 132, 135, 134, 144, 141, 116, 117, 117, 101, 132, 112, 129, 136, 120, 118, 137, 136, 126, 109, 135, 112, 130, 111, 114, 134, 122, 124, 121, 133, 112, 121, 126, 141, 123, 132, 133, 146, 139, 132, 118, 137, 118, 141, 126, 116, 129, 135, 113, 114, 138, 126, 114, 125, 131, 131, 131, 145, 128, 125, 123, 113, 119, 118, 112, 127, 119, 123, 130, 123, 127, 107, 128, 130, 128, 144, 115, 127, 117, 127, 113, 130, 123, 120, 129, 127, 122, 133, 133, 122, 114, 127, 135, 118, 123, 121, 128, 129, 113, 130, 129, 132, 120, 117, 114, 118, 114, 123, 133, 135, 123, 133, 130, 121, 132, 137, 120, 131, 122, 151, 115, 116, 120, 128, 143, 138, 131, 110, 106, 137, 132, 108, 107, 140, 125, 125, 128, 128, 127, 123, 122, 125, 108, 117, 125, 125, 121, 126, 130, 115, 114, 114, 126, 140, 133, 126, 133, 143, 132, 125, 155, 121, 127, 130, 123, 118, 116, 127, 121, 137, 118, 116, 117, 125, 131, 136, 135, 144, 140, 128, 137, 136, 120, 120, 139, 127, 103, 121, 136, 109, 123, 144, 137, 130, 138, 142, 127, 120, 120, 139, 138, 122, 113, 127, 141, 134, 128, 126, 138, 132, 126, 137, 128, 128, 114, 129, 123, 101, 127, 117, 122, 139, 109, 128, 125, 147, 126, 119, 113, 130, 125, 130, 123, 120, 121, 133, 134, 129, 138, 123, 128, 124, 127, 121, 123, 122, 133, 131, 104, 115, 128, 118, 125, 131, 129, 140, 125, 124, 133, 135, 125, 123, 136, 128, 114, 113, 131, 124, 119, 133, 107, 127, 115, 113, 110, 117, 102, 141, 132, 142, 103, 129, 127, 119, 127, 113, 121, 121, 144, 132, 121, 123, 130, 138, 130, 123, 120, 115, 122, 141, 122, 142, 120, 125, 119, 124, 127, 120, 123, 133, 137, 128, 126, 121, 121, 108, 124, 128, 128, 115, 112, 135, 153, 141, 129, 138, 127, 125, 130, 141, 121, 130, 136, 133, 126, 117, 125, 130, 138, 135, 125, 105, 123, 123, 130, 114, 123, 136, 129, 130, 140, 117, 128, 124, 122, 114, 138, 132, 124, 126, 130, 112, 127, 114, 119, 136, 129, 115, 116, 126, 117, 137, 118, 119, 130, 124, 131, 125, 120, 118, 134, 126, 135, 128, 120, 128, 135, 137, 139, 135, 124, 107, 128, 134, 124, 136, 101, 124, 142, 134, 128, 120, 130, 123, 132, 132, 113, 119, 135, 120, 112, 132, 125, 130, 128, 126, 112, 132, 123, 131, 126, 118, 129, 131, 116, 128, 129, 117, 110, 131, 137, 121, 141, 125, 138, 139, 120, 126, 113, 123, 127, 137, 119, 119, 140, 124, 130, 136, 131, 128, 110, 105, 125, 124, 124, 117, 127, 136, 132, 109, 128, 131, 127, 124, 127, 123, 130, 102, 142, 140, 129, 138, 135, 114, 127, 117, 115, 140, 121, 123, 122, 151, 144, 124, 136, 127, 132, 116, 142, 133, 131, 135, 131, 110, 131, 116, 126, 125, 117, 125, 129, 128, 133, 121, 112, 114, 135, 105, 115, 127, 140, 133, 138, 131, 139, 128, 141, 119, 128, 121, 114, 129, 122, 113, 115, 115, 113, 132, 120, 117, 130, 133, 137, 118, 133, 129, 137, 139, 138, 115, 146, 134, 108, 120, 108, 137, 109, 134, 145, 140, 145, 120, 136, 132, 124, 115, 108, 117, 106, 135, 116, 118, 126, 115, 115, 142, 131, 135, 124, 115, 145, 131, 117, 125, 103, 107, 129, 127, 127, 118, 135, 135, 130, 121, 121, 137, 127, 144, 108, 141, 133, 100, 136, 125, 116, 135, 120, 129, 117, 102, 128, 125, 131, 142, 118, 141, 135, 130, 119, 122, 131, 131, 123, 121, 112, 134, 122, 119, 85, 122, 132, 125, 117, 107, 125, 135, 130, 135, 128, 124, 131, 132, 130, 126, 127, 116, 131, 127, 122, 122, 136, 126, 137, 137, 121, 134, 130, 131, 120, 129, 118, 128, 138, 129, 111, 135, 143, 131, 123, 119, 118, 142, 111, 112, 116, 129, 113, 136, 113, 130, 124, 132, 118, 116, 122, 141, 139, 121, 117, 128, 132, 119, 122, 132, 117, 124, 114, 125, 127, 143, 154, 130, 125, 115, 133, 133, 131, 131, 122, 123, 133, 134, 141, 107, 130, 114, 137, 116, 133, 117, 134, 109, 112, 130, 123, 127, 130, 118, 130, 124, 117, 132, 139, 133, 130, 121, 134, 135, 112, 137, 123, 127, 131, 114, 136, 134, 129, 126, 107, 123, 119, 119, 137, 141, 116, 135, 146, 135, 127, 131, 130, 133, 200, 134, 127, 132, 134, 124, 127, 118, 135, 134, 164, 145, 118, 125, 116, 121, 141, 135, 128, 139, 131, 107, 112, 141, 123, 133, 124, 117, 125, 118, 122, 129, 127, 117, 122, 122, 119, 125, 110, 114, 131, 134, 119, 116, 116, 143, 135, 134, 123, 122, 129, 115, 119, 112, 141, 124, 119, 112, 130, 116, 136, 120, 144, 135, 129, 127, 129, 124, 133, 129, 136, 122, 122, 131, 130, 125, 115, 130, 123, 120, 132, 125, 138, 125, 120, 128, 123, 139, 120, 133, 126, 122, 109, 132, 129, 132, 150, 123, 119, 126, 119, 122, 130, 134, 117, 136, 125, 131, 133, 139, 127, 122, 149, 116, 103, 116, 118, 147, 135, 123, 129, 125, 116, 117, 114, 101, 111, 132, 134, 145, 121, 127, 124, 119, 141, 147, 125, 126, 125, 146, 125, 116, 127, 117, 125, 138, 122, 109, 134, 131, 121, 110, 115, 122, 127, 128, 118, 134, 113, 127, 121, 124, 127, 126, 123, 136, 107, 123, 126, 111, 129, 110, 131, 123, 153, 125, 122, 130, 122, 118, 111, 141, 131, 129, 150, 116, 144, 122, 134, 110, 90, 112, 117, 115, 106, 121, 111, 121, 131, 133, 136, 127, 129, 141, 116, 141, 123, 123, 132, 143, 133, 124, 125, 140, 133, 116, 125, 131, 136, 130, 131, 115, 98, 143, 133, 131, 124, 118, 119, 118, 172, 128, 127, 105, 127, 130, 128, 128, 129, 129, 140, 107, 126, 143, 138, 120, 163, 129, 133, 101, 136, 147, 127, 122, 140, 124, 113, 116, 128, 120, 116, 106, 125, 117, 116, 147, 115, 110, 128, 117, 117, 130, 116, 136, 128, 128, 150, 111, 133, 111, 119, 126, 130, 113, 131, 139, 118, 123, 136, 148, 129, 120, 143, 127, 132, 111, 114, 116, 112, 158, 121, 108, 111, 112, 127, 131, 141, 125, 128, 108, 126, 131, 115, 144, 133, 124, 128, 125, 130, 112, 123, 124, 117, 126, 136, 117, 103, 107, 137, 118, 126, 143, 136, 144, 135, 117, 135, 124, 127, 130, 123, 108, 132, 118, 149, 116, 127, 114, 121, 115, 101, 141, 151, 143, 134, 112, 114, 123, 126, 126, 123, 140, 123, 128, 123, 129, 136, 115, 141, 124, 112, 127, 115, 133, 127, 138, 121, 114, 104, 120, 118, 103, 135, 118, 125, 123, 111, 130, 155, 116, 111, 124, 125, 129, 126, 143, 111, 92, 99, 143, 121, 126, 138, 101, 130, 122, 129, 131, 127, 117, 130, 115, 122, 136, 118, 117, 133, 130, 139, 115, 124, 125, 119, 135, 125, 116, 106, 124, 132, 122, 135, 130, 126, 121, 124, 136, 115, 119, 115, 116, 135, 147, 114, 100, 139, 131, 138, 121, 123, 140, 105, 129, 117, 121, 115, 123, 128, 116, 115, 132, 124, 141, 113, 122, 118, 126, 138, 129, 128, 119, 128, 108, 134, 109, 121, 125, 134, 122, 128, 123, 141, 109, 120, 125, 130, 130, 115, 129, 127, 112, 143, 99, 129, 144, 133, 106, 151, 113, 126, 135, 129, 130, 127, 119, 141, 125, 122, 129, 118, 137, 121, 133, 124, 121, 131, 111, 115, 121, 123, 134, 121, 122, 104, 137, 137, 125, 124, 135, 115, 127, 135, 118, 133, 100, 140, 128, 121, 127, 136, 109, 118, 127, 133, 156, 103, 134, 128, 130, 123, 114, 108, 128, 148, 129, 128, 131, 131, 124, 129, 107, 125, 134, 129, 136, 111, 127, 133, 119, 155, 122, 108, 132, 129, 123, 135, 120, 132, 103, 123, 123, 129, 127, 118, 120, 144, 144, 118, 120, 119, 119, 122, 129, 109, 112, 123, 110, 129, 130, 125, 135, 124, 128, 120, 116, 105, 132, 153, 129, 122, 123, 109, 123, 135, 101, 138, 113, 126, 116, 105, 117, 121, 120, 108, 127, 133, 117, 133, 137, 118, 122, 119, 115, 111, 134, 116, 136, 132, 119, 125, 118, 137, 128, 125, 143, 128, 138, 122, 131, 114, 134, 100, 134, 100, 135, 114, 116, 129, 138, 123, 156, 122, 115, 148, 122, 108, 112, 126, 114, 110, 118, 119, 117, 137, 128, 129, 135, 133, 146, 107, 107, 116, 128, 127, 131, 132, 133, 150, 147, 130, 110, 119, 141, 131, 130, 132, 135, 129, 113, 121, 134, 116, 102, 109, 133, 132, 114, 109, 129, 126, 110, 105, 111, 131, 127, 115, 123, 127, 128, 129, 119, 125, 121, 136, 113, 121, 141, 112, 110, 130, 127, 135, 101, 106, 129, 109, 113, 131, 120, 102, 122, 109, 137, 136, 118, 141, 118, 126, 110, 125, 123, 124, 127, 150, 141, 123, 122, 124, 132, 132, 141, 117, 134, 121, 114, 125, 157, 126, 140, 109, 95, 99, 118, 135, 127, 141, 118, 127, 109, 149, 121, 126, 126, 141, 113, 135, 138, 152, 134, 127, 113, 125, 101, 128, 116, 120, 135, 141, 127, 116, 130, 134, 116, 123, 113, 126, 125, 147, 135, 135, 133, 123, 125, 137, 122, 124, 116, 136, 128, 127, 116, 118, 113, 106, 135, 126, 98, 129, 137, 130, 133, 115, 109, 126, 128, 109, 142, 125, 140, 122, 126, 112, 132, 151, 127, 111, 141, 128, 124, 121, 129, 118, 127, 140, 130, 129, 111, 141, 136, 127, 115, 127, 124, 131, 119, 137, 113, 112, 109, 123, 119, 127, 123, 128, 150, 108, 133, 141, 132, 116, 164, 111, 143, 119, 124, 128, 117, 134, 129, 121, 131, 115, 144, 123, 117, 129, 125, 124, 128, 106, 109, 114, 131, 136, 127, 129, 130, 135, 134, 127, 124, 114, 125, 146, 122, 116, 124, 128, 114, 127, 122, 115, 111, 129, 115, 130, 141, 125, 139, 121, 127, 146, 136, 122, 137, 138, 136, 118, 119, 124, 127, 116, 141, 133, 139, 153, 124, 133, 125, 123, 113, 135, 123, 120, 115, 125, 116, 124, 122, 142, 115, 119, 129, 125, 125, 126, 124, 129, 116, 130, 137, 131, 116, 133, 132, 115, 130, 121, 132, 129, 110, 128, 133, 122, 126, 111, 114, 120, 121, 120, 123, 129, 108, 127, 132, 119, 105, 135, 115, 139, 120, 139, 123, 138, 138, 123, 120, 127, 130, 122, 133, 143, 132, 137, 121, 137, 141, 128, 126, 139, 133, 121, 118, 124, 124, 148, 116, 120, 133, 134, 130, 125, 117, 130, 130, 113, 109, 114, 130, 133, 122, 102, 121, 151, 123, 114, 143, 133, 143, 139, 120, 125, 120, 122, 119, 117, 139, 119, 125, 118, 116, 117, 123, 114, 125, 100, 142, 142, 129, 141, 107, 122, 134, 117, 143, 123, 124, 112, 133, 116, 124, 123, 130, 137, 134, 127, 131, 126, 128, 120, 134, 119, 124, 133, 120, 134, 130, 127, 137, 116, 130, 121, 118, 133, 117, 139, 118, 114, 131, 121, 117, 129, 127, 115, 124, 119, 134, 140, 138, 111, 130, 136, 129, 132, 128, 114, 143, 109, 126, 128, 118, 107, 127, 130, 127, 135, 121, 139, 120, 136, 124, 133, 114, 129, 110, 108, 124, 120, 109, 117, 102, 118, 127, 128, 133, 130, 133, 133, 126, 136, 133, 119, 126, 124, 104, 120, 116, 114, 156, 116, 112, 146, 114, 137, 125, 122, 130, 131, 142, 127, 133, 126, 120, 103, 132, 115, 130, 114, 123, 121, 141, 132, 118, 117, 122, 129, 128, 122, 122, 119, 115, 119, 118, 104, 141, 116, 128, 126, 154, 139, 123, 130, 116, 121, 122, 117, 100, 131, 129, 134, 116, 128, 136, 134, 132, 109, 133, 125, 136, 114, 150, 121, 120, 115, 132, 145, 127, 113, 128, 107, 136, 144, 121, 136, 129, 111, 115, 137, 122, 127, 114, 123, 114, 115, 123, 123, 125, 126, 113, 108, 124, 134, 108, 125, 135, 109, 129, 124, 127, 112, 131, 134, 129, 118, 146, 130, 111, 108, 131, 155, 136, 127, 118, 127, 139, 117, 128, 129, 156, 126, 131, 117, 131, 128, 127, 106, 118, 139, 125, 127, 125, 130, 130, 121, 116, 128, 123, 147, 142, 123, 110, 153, 109, 130, 119, 125, 131, 125, 127, 123, 148, 125, 128, 126, 115, 124, 101, 113, 137, 128, 115, 120, 146, 135, 130, 112, 132, 114, 111, 116, 110, 131, 113, 119, 115, 125, 116, 124, 130, 126, 140, 133, 132, 107, 125, 130, 110, 119, 114, 121, 126, 113, 142, 121, 108, 110, 131, 136, 131, 125, 113, 130, 127, 114, 111, 133, 107, 121, 119, 121, 151, 127, 124, 120, 123, 116, 133, 118, 105, 119, 139, 127, 103, 134, 133, 104, 135, 120, 126, 125, 125, 132, 122, 118, 134, 118, 116, 110, 122, 127, 129, 124, 133, 134, 120, 110, 140, 131, 114, 121, 121, 140, 132, 118, 137, 112, 135, 118, 140, 125, 140, 132, 132, 115, 146, 131, 152, 128, 118, 125, 140, 133, 123, 127, 122, 128, 128, 103, 159, 138, 126, 129, 121, 120, 132, 128, 130, 123, 141, 140, 139, 94, 128, 135, 163, 129, 125, 117, 123, 113, 136, 131, 124, 118, 117, 131, 132, 124, 136, 135, 117, 123, 113, 137, 115, 127, 127, 124, 105, 110, 122, 125, 111, 125, 116, 123, 123, 131, 131, 132, 124, 134, 110, 138, 133, 115, 127, 128, 124, 131, 119, 117, 115, 120, 146, 143, 122, 119, 105, 117, 124, 134, 131, 117, 136, 120, 120, 112, 137, 124, 119, 117, 107, 122, 126, 117, 136, 120, 131, 131, 128, 127, 109, 122, 116, 120, 113, 108, 130, 130, 131, 128, 127, 126, 140, 127, 124, 130, 126, 128, 134, 139, 130, 132, 114, 132, 83, 107, 147, 116, 134, 105, 121, 147, 128, 115, 132, 112, 119, 128, 141, 124, 134, 132, 128, 113, 120, 128, 132, 132, 137, 149, 133, 116, 109, 140, 135, 116, 118, 124, 141, 126, 117, 122, 118, 119, 125, 121, 128, 124, 142, 120, 116, 135, 125, 146, 111, 123, 121, 134, 125, 105, 118, 112, 110, 101, 129, 119, 109, 123, 108, 134, 131, 120, 125, 107, 115, 114, 131, 115, 123, 120, 124, 119, 124, 128, 142, 123, 117, 144, 105, 128, 138, 107, 132, 124, 133, 123, 133, 112, 123, 130, 131, 136, 131, 130, 111, 123, 113, 117, 110, 114, 101, 130, 125, 134, 128, 119, 119, 117, 137, 125, 127, 102, 106, 125, 127, 105, 127, 122, 98, 142, 145, 128, 127, 104, 119, 123, 133, 117, 110, 135, 113, 123, 128, 144, 130, 136, 128, 124, 125, 120, 112, 116, 110, 128, 123, 104, 121, 135, 136, 121, 134, 126, 133, 123, 122, 142, 134, 130, 122, 137, 123, 120, 115, 125, 113, 131, 111, 107, 117, 135, 114, 128, 144, 136, 123, 133, 134, 121, 117, 122, 122, 128, 127, 140, 128, 130, 130, 133, 118, 140, 120, 124, 131, 125, 117, 122, 129, 127, 120, 134, 127, 118, 126, 124, 128, 137, 144, 132, 119, 117, 119, 131, 125, 110, 136, 121, 129, 117, 129, 124, 142, 121, 137, 104, 117, 131, 122, 132, 121, 139, 135, 121, 138, 121, 130, 120, 105, 129, 107, 124, 136, 140, 113, 117, 114, 117, 121, 122, 128, 124, 135, 126, 125, 132, 137, 146, 120, 127, 111, 116, 134, 114, 104, 123, 134, 118, 117, 119, 141, 109, 138, 132, 129, 148, 124, 120, 107, 128, 110, 138, 118, 115, 118, 142, 138, 156, 117, 126, 135, 129, 141, 136, 140, 112, 118, 123, 130, 118, 118, 102, 112, 119, 129, 110, 141, 129, 131, 129, 127, 127, 124, 132, 127, 111, 121, 145, 137, 120, 130, 135, 110, 144, 93, 149, 117, 125, 112, 138, 127, 127, 118, 115, 121, 112, 125, 125, 136, 126, 113, 107, 128, 119, 111, 125, 130, 114, 117, 137, 122, 128, 128, 108, 138, 123, 137, 129, 138, 137, 108, 133, 127, 129, 150, 120, 121, 124, 128, 129, 126, 115, 129, 108, 130, 112, 106, 131, 132, 124, 146, 112, 120, 138, 132, 136, 123, 133, 125, 133, 127, 127, 121, 132, 139, 127, 126, 141, 127, 111, 132, 116, 130, 119, 111, 132, 110, 125, 116, 110, 135, 117, 120, 119, 129, 139, 124, 126, 136, 107, 125, 137, 113, 114, 123, 114, 104, 134, 133, 127, 121, 125, 127, 138, 132, 140, 121, 121, 123, 128, 152, 141, 126, 134, 136, 139, 138, 142, 133, 135, 120, 113, 124, 134, 112, 114, 119, 131, 126, 141, 127, 122, 140, 138, 135, 107, 106, 141, 117, 124, 134, 134, 127, 114, 135, 114, 131, 125, 113, 125, 132, 126, 104, 127, 130, 133, 131, 119, 141, 126, 129, 133, 103, 115, 116, 117, 121, 139, 114, 118, 116, 138, 132, 129, 122, 147, 137, 132, 111, 113, 109, 127, 129, 138, 116, 141, 143, 123, 130, 141, 121, 142, 118, 164, 114, 123, 117, 128, 125, 135, 116, 120, 113, 127, 132, 120, 127, 135, 118, 123, 136, 126, 120, 124, 124, 124, 136, 133, 139, 119, 130, 111, 138, 126, 96, 119, 134, 101, 131, 112, 121, 143, 119, 127, 131, 135, 115, 105, 135, 120, 138, 120, 114, 139, 124, 122, 127, 134, 115, 125, 116, 115, 124, 110, 132, 134, 111, 122, 116, 124, 129, 132, 138, 137, 135, 125, 113, 122, 139, 126, 120, 137, 148, 130, 119, 120, 116, 123, 139, 128, 133, 130, 137, 134, 131, 113, 132, 118, 134, 128, 148, 111, 122, 125, 128, 123, 129, 119, 131, 126, 119, 119, 137, 132, 136, 143, 127, 128, 119, 137, 117, 137, 118, 137, 112, 135, 134, 123, 129, 128, 124, 121, 119, 134, 105, 119, 113, 115, 121, 118, 139, 124, 139, 129, 136, 117, 124, 127, 127, 122, 126, 122, 137, 128, 129, 106, 139, 143, 110, 127, 116, 126, 128, 131, 121, 120, 118, 128, 115, 126, 123, 127, 129, 108, 108, 113, 137, 126, 123, 153, 126, 126, 116, 124, 111, 113, 130, 139, 135, 127, 134, 112, 125, 127, 158, 125, 109, 123, 110, 128, 120, 130, 130, 124, 124, 108, 127, 142, 124, 93, 126, 125, 130, 141, 141, 123, 125, 126, 125, 136, 105, 128, 110, 128, 116, 120, 135, 138, 114, 125, 147, 137, 127, 133, 140, 132, 110, 104, 110, 125, 137, 116, 118, 103, 114, 117, 127, 135, 145, 119, 113, 132, 119, 138, 115, 114, 128, 139, 121, 132, 116, 111, 141, 118, 132, 141, 111, 138, 124, 131, 134, 125, 103, 131, 138, 129, 121, 111, 112, 113, 127, 133, 129, 141, 129, 129, 109, 128, 121, 135, 125, 129, 135, 145, 157, 147, 118, 118, 121, 125, 128, 105, 114, 127, 135, 127, 133, 119, 130, 128, 124, 146, 127, 120, 127, 116, 129, 115, 128, 135, 115, 127, 135, 126, 113, 126, 104, 122, 120, 125, 123, 109, 128, 120, 121, 119, 127, 124, 110, 133, 120, 128, 126, 129, 147, 126, 98, 143, 126, 123, 121, 126, 122, 127, 114, 135, 119, 115, 139, 109, 125, 139, 131, 128, 137, 142, 114, 140, 134, 129, 119, 138, 133, 123, 121, 122, 127, 127, 134, 133, 124, 121, 127, 137, 118, 117, 118, 142, 135, 118, 128, 119, 114, 128, 119, 139, 108, 128, 118, 120, 131, 120, 121, 113, 130, 118, 127, 133, 128, 117, 119, 127, 134, 127, 127, 128, 128, 139, 132, 127, 117, 123, 136, 113, 109, 141, 113, 117, 142, 142, 118, 134, 110, 139, 127, 136, 132, 133, 114, 122, 118, 134, 133, 143, 121, 119, 127, 117, 108, 118, 123, 134, 123, 111, 104, 126, 135, 133, 129, 136, 145, 132, 125, 125, 123, 123, 113, 122, 117, 107, 146, 115, 114, 133, 111, 120, 137, 139, 129, 121, 116, 140, 123, 129, 120, 136, 135, 124, 123, 133, 118, 122, 138, 130, 125, 119, 127, 121, 112, 120, 139, 141, 112, 119, 138, 105, 119, 123, 135, 128, 121, 140, 125, 127, 128, 127, 102, 128, 122, 105, 108, 128, 116, 128, 131, 136, 138, 128, 141, 136, 133, 128, 137, 143, 121, 120, 123, 134, 127, 118, 123, 120, 120, 133, 135, 128, 142, 134, 125, 120, 137, 146, 135, 113, 134, 100, 140, 140, 144, 137, 116, 109, 127, 119, 112, 123, 121, 120, 120, 137, 151, 141, 137, 124, 127, 120, 115, 147, 123, 120, 135, 133, 123, 128, 110, 140, 118, 117, 128, 118, 125, 121, 124, 127, 113, 135, 118, 139, 101, 127, 119, 127, 142, 138, 128, 125, 128, 125, 141, 133, 133, 120, 116, 135, 130, 140, 139, 122, 122, 127, 122, 125, 121, 144, 104, 129, 134, 129, 147, 150, 104, 122, 131, 125, 122, 130, 140, 115, 130, 113, 120, 117, 129, 104, 122, 129, 117, 109, 136, 121, 125, 142, 130, 132, 111, 129, 113, 102, 135, 120, 114, 117, 96, 121, 129, 121, 130, 121, 137, 121, 135, 129, 122, 109, 126, 111, 109, 125, 147, 127, 115, 122, 128, 121, 118, 137, 130, 129, 120, 127, 119, 141, 142, 121, 123, 123, 132, 120, 131, 144, 119, 109, 116, 138, 129, 124, 111, 151, 131, 117, 121, 129, 127, 126, 131, 142, 130, 133, 119, 126, 111, 112, 110, 109, 112, 125, 112, 123, 126, 117, 123, 116, 135, 118, 129, 122, 126, 122, 123, 129, 128, 133, 123, 133, 115, 140, 135, 117, 130, 126, 126, 129, 123, 141, 126, 130, 119, 136, 149, 138, 151, 122, 136, 128, 121, 132, 119, 135, 124, 111, 123, 127, 122, 116, 123, 114, 122, 140, 132, 118, 125, 146, 139, 106, 122, 135, 129, 133, 141, 120, 117, 120, 129, 122, 134, 119, 133, 137, 122, 145, 126, 110, 134, 121, 120, 131, 150, 133, 119, 144, 137, 98, 121, 122, 137, 148, 139, 103, 117, 108, 129, 120, 122, 111, 132, 111, 110, 124, 128, 132, 123, 106, 152, 109, 142, 121, 132, 126, 119, 133, 135, 120, 110, 131, 129, 137, 124, 129, 125, 122, 121, 134, 124, 120, 107, 130, 141, 129, 112, 124, 122, 124, 129, 127, 143, 119, 133, 134, 113, 119, 127, 121, 107, 133, 120, 126, 132, 141, 123, 121, 131, 140, 134, 135, 128, 125, 120, 122, 120, 131, 127, 133, 131, 126, 147, 132, 124, 127, 157, 128, 113, 131, 119, 131, 114, 128, 131, 121, 125, 135, 122, 131, 139, 123, 115, 116, 126, 115, 123, 115, 115, 101, 166, 143, 118, 119, 152, 114, 121, 126, 123, 146, 133, 109, 138, 109, 114, 136, 121, 116, 116, 126, 117, 123, 116, 123, 122, 115, 137, 137, 129, 128, 114, 137, 125, 112, 135, 125, 130, 117, 127, 122, 132, 119, 132, 121, 116, 141, 133, 124, 124, 136, 138, 118, 131, 123, 128, 122, 124, 111, 134, 121, 150, 108, 116, 121, 113, 118, 126, 133, 131, 124, 120, 138, 132, 105, 141, 143, 131, 134, 109, 126, 133, 142, 127, 126, 118, 149, 129, 126, 133, 128, 125, 126, 114, 156, 130, 136, 105, 125, 149, 121, 133, 132, 121, 127, 134, 136, 124, 125, 134, 133, 131, 117, 139, 135, 122, 123, 115, 114, 110, 133, 118, 119, 118, 127, 122, 126, 129, 116, 122, 119, 116, 123, 139, 135, 133, 123, 113, 116, 136, 128, 129, 133, 112, 117, 107, 123, 123, 109, 132, 119, 129, 130, 118, 130, 124, 126, 130, 122, 139, 111, 111, 122, 138, 114, 129, 128, 135, 126, 93, 107, 138, 123, 124, 120, 130, 101, 117, 128, 125, 124, 124, 138, 115, 112, 148, 112, 132, 120, 114, 114, 131, 146, 133, 124, 127, 132, 130, 119, 147, 132, 137, 135, 107, 109, 135, 118, 112, 107, 110, 146, 145, 125, 139, 128, 133, 123, 153, 114, 115, 125, 121, 130, 143, 137, 127, 105, 128, 109, 124, 126, 128, 144, 127, 109, 138, 115, 106, 115, 143, 146, 119, 146, 124, 131, 133, 129, 116, 121, 117, 131, 142, 122, 131, 127, 137, 123, 123, 123, 126, 131, 141, 138, 134, 119, 132, 117, 118, 129, 139, 116, 129, 132, 138, 137, 120, 134, 130, 130, 122, 128, 129, 120, 122, 129, 116, 133, 137, 113, 114, 127, 125, 122, 139, 130, 124, 125, 119, 128, 158, 146, 129, 128, 133, 142, 126, 121, 115, 120, 121, 148, 114, 121, 138, 132, 119, 142, 122, 124, 126, 131, 122, 111, 131, 133, 113, 129, 128, 124, 112, 116, 136, 133, 132, 113, 122, 115, 113, 135, 128, 135, 119, 129, 129, 134, 118, 125, 131, 123, 157, 130, 127, 116, 125, 115, 125, 113, 123, 142, 128, 125, 131, 148, 133, 130, 140, 133, 126, 124, 129, 131, 132, 137, 129, 132, 130, 130, 109, 126, 120, 129, 113, 127, 139, 132, 120, 124, 129, 132, 122, 120, 122, 140, 136, 117, 122, 138, 138, 144, 122, 113, 128, 126, 119, 129, 118, 143, 131, 126, 119, 124, 135, 136, 135, 119, 129, 120, 126, 119, 146, 120, 129, 121, 109, 146, 126, 129, 120, 123, 121, 122, 116, 122, 129, 110, 111, 119, 124, 119, 124, 117, 129, 127, 133, 122, 120, 117, 119, 131, 113, 113, 124, 116, 118, 119, 129, 129, 122, 130, 113, 138, 119, 132, 128, 101, 139, 131, 132, 123, 125, 117, 125, 129, 132, 130, 115, 133, 124, 129, 137, 108, 126, 127, 129, 111, 114, 116, 115, 114, 116, 114, 130, 123, 121, 118, 106, 129, 137, 117, 86, 118, 124, 121, 123, 139, 127, 119, 123, 138, 122, 128, 110, 124, 130, 126, 115, 124, 121, 127, 138, 127, 134, 135, 138, 126, 120, 131, 120, 135, 129, 120, 128, 131, 129, 128, 98, 107, 109, 121, 111, 116, 121, 123, 110, 131, 128, 114, 127, 128, 127, 127, 120, 123, 108, 109, 133, 124, 127, 132, 131, 133, 132, 135, 126, 121, 118, 122, 141, 128, 143, 111, 124, 123, 116, 132, 123, 119, 140, 118, 137, 143, 122, 130, 118, 128, 97, 127, 115, 114, 130, 124, 125, 127, 126, 124, 141, 140, 142, 123, 126, 122, 133, 122, 128, 123, 119, 122, 139, 121, 104, 141, 124, 120, 118, 127, 140, 137, 119, 127, 141, 118, 118, 126, 127, 111, 136, 144, 140, 126, 117, 141, 122, 126, 127, 115, 120, 105, 134, 114, 125, 121, 122, 133, 121, 132, 134, 125, 118, 127, 134, 120, 136, 123, 117, 116, 120, 125, 139, 106, 124, 128, 115, 121, 124, 117, 116, 126, 130, 128, 125, 139, 131, 135, 127, 138, 135, 112, 119, 130, 115, 114, 108, 120, 129, 122, 128, 120, 114, 137, 129, 131, 125, 120, 122, 111, 144, 109, 124, 110, 134, 113, 122, 113, 120, 121, 136, 129, 116, 125, 137, 120, 113, 122, 140, 124, 127, 135, 145, 125, 128, 136, 141, 110, 130, 130, 136, 110, 112, 139, 117, 137, 131, 129, 131, 126, 124, 127, 123, 116, 138, 126, 132, 142, 128, 121, 119, 130, 142, 112, 130, 133, 119, 129, 134, 121, 121, 130, 125, 111, 128, 112, 110, 115, 110, 122, 122, 139, 120, 136, 110, 118, 114, 143, 137, 135, 110, 137, 116, 114, 133, 131, 135, 135, 124, 117, 138, 138, 123, 122, 139, 125, 143, 112, 129, 120, 109, 119, 125, 122, 128, 131, 122, 124, 137, 132, 127, 142, 126, 128, 116, 140, 127, 113, 126, 134, 114, 114, 120, 130, 118, 129, 133, 121, 139, 123, 125, 135, 122, 129, 125, 110, 129, 129, 130, 134, 126, 126, 124, 122, 112, 119, 105, 133, 123, 117, 127, 137, 119, 139, 124, 126, 112, 112, 117, 124, 140, 121, 125, 131, 100, 121, 99, 138, 129, 124, 138, 142, 124, 112, 138, 120, 124, 114, 124, 136, 130, 127, 138, 126, 129, 134, 127, 119, 147, 110, 121, 122, 128, 124, 133, 108, 116, 134, 128, 134, 130, 122, 118, 121, 127, 125, 121, 123, 132, 126, 126, 134, 133, 127, 121, 122, 123, 132, 120, 114, 131, 116, 124, 119, 130, 113, 156, 129, 116, 114, 117, 117, 118, 134, 130, 121, 133, 109, 110, 130, 125, 118, 114, 129, 115, 141, 150, 115, 138, 127, 121, 123, 125, 129, 127, 118, 120, 107, 132, 121, 108, 158, 144, 129, 115, 131, 135, 130, 114, 121, 127, 134, 118, 131, 137, 122, 117, 103, 123, 128, 119, 121, 116, 118, 119, 119, 124, 115, 117, 126, 154, 157, 119, 112, 133, 145, 128, 109, 117, 121, 125, 142, 142, 134, 121, 118, 131, 126, 119, 129, 143, 131, 127, 127, 114, 140, 123, 132, 130, 129, 121, 135, 135, 127, 130, 123, 100, 117, 138, 122, 128, 128, 113, 139, 119, 134, 116, 105, 130, 128, 131, 140, 127, 126, 136, 131, 121, 116, 118, 103, 110, 112, 141, 131, 136, 128, 106, 101, 132, 127, 135, 122, 125, 111, 125, 112, 119, 125, 120, 127, 120, 129, 126, 123, 136, 120, 129, 124, 131, 131, 113, 114, 125, 128, 128, 115, 119, 124, 120, 117, 121, 118, 128, 132, 142, 133, 133, 108, 110, 107, 137, 97, 122, 142, 130, 110, 130, 115, 122, 121, 120, 122, 134, 131, 111, 139, 127, 122, 119, 113, 114, 130, 133, 121, 115, 138, 124, 115, 118, 127, 128, 117, 142, 108, 143, 127, 138, 118, 126, 126, 124, 113, 131, 137, 114, 126, 116, 143, 135, 114, 129, 135, 121, 120, 144, 130, 132, 104, 132, 108, 129, 120, 119, 117, 132, 124, 127, 140, 131, 127, 116, 131, 125, 119, 112, 128, 114, 128, 125, 116, 123, 115, 122, 124, 122, 120, 137, 122, 132, 142, 131, 131, 125, 130, 132, 119, 132, 117, 117, 116, 133, 126, 124, 123, 138, 114, 125, 134, 133, 101, 138, 109, 140, 137, 134, 115, 126, 123, 125, 140, 125, 133, 125, 135, 133, 127, 132, 139, 124, 126, 129, 137, 135, 139, 127, 118, 128, 121, 121, 121, 126, 125, 119, 124, 122, 133, 127, 126, 120, 131, 125, 123, 127, 156, 133, 129, 117, 126, 110, 116, 124, 129, 134, 124, 116, 119, 109, 130, 112, 119, 152, 125, 127, 123, 126, 129, 125, 133, 131, 124, 135, 115, 113, 124, 117, 121, 125, 118, 128, 132, 130, 114, 140, 136, 143, 128, 134, 113, 122, 121, 120, 120, 114, 144, 122, 126, 144, 122, 132, 153, 126, 135, 134, 117, 118, 122, 131, 112, 98, 112, 135, 114, 119, 102, 131, 141, 120, 123, 141, 118, 120, 121, 106, 120, 111, 133, 124, 121, 128, 127, 126, 107, 133, 115, 130, 114, 125, 112, 135, 125, 115, 120, 125, 130, 123, 133, 118, 140, 102, 127, 116, 123, 112, 136, 139, 137, 113, 129, 118, 142, 130, 119, 123, 134, 127, 132, 131, 128, 106, 118, 120, 112, 107, 115, 134, 133, 112, 129, 131, 129, 134, 138, 128, 108, 122, 131, 114, 105, 148, 117, 101, 117, 128, 119, 122, 114, 130, 111, 122, 137, 129, 141, 103, 117, 120, 133, 122, 122, 150, 157, 120, 115, 119, 118, 139, 130, 112, 136, 126, 119, 117, 124, 115, 120, 137, 123, 128, 120, 127, 124, 126, 123, 128, 109, 127, 124, 138, 108, 137, 125, 143, 120, 134, 117, 121, 133, 123, 136, 134, 122, 132, 130, 123, 139, 130, 139, 126, 114, 122, 109, 121, 124, 121, 117, 126, 118, 132, 130, 117, 153, 134, 128, 123, 133, 125, 105, 137, 143, 96, 130, 136, 125, 120, 108, 134, 148, 134, 138, 128, 109, 128, 128, 136, 128, 118, 118, 142, 118, 128, 133, 126, 129, 122, 134, 134, 135, 103, 121, 126, 127, 134, 137, 121, 140, 132, 120, 121, 133, 113, 139, 140, 110, 127, 124, 119, 139, 129, 135, 119, 119, 120, 121, 116, 147, 109, 117, 128, 141, 119, 119, 112, 134, 125, 138, 125, 116, 114, 111, 131, 133, 134, 124, 134, 125, 139, 120, 122, 111, 132, 127, 121, 113, 116, 124, 131, 118, 155, 116, 133, 145, 119, 128, 125, 149, 105, 118, 126, 119, 120, 124, 127, 134, 133, 126, 129, 135, 119, 142, 118, 121, 134, 109, 130, 116, 125, 137, 109, 127, 135, 128, 136, 103, 136, 114, 116, 133, 118, 117, 98, 129, 136, 115, 144, 120, 114, 132, 127, 124, 107, 124, 128, 125, 111, 135, 113, 138, 125, 130, 111, 154, 139, 111, 117, 133, 123, 127, 114, 128, 109, 124, 134, 133, 120, 113, 144, 103, 120, 121, 130, 105, 108, 119, 111, 116, 111, 120, 113, 135, 129, 112, 117, 116, 100, 114, 132, 134, 125, 138, 126, 120, 145, 132, 129, 133, 131, 115, 141, 107, 135, 135, 117, 129, 114, 106, 131, 123, 138, 137, 130, 107, 132, 127, 131, 108, 141, 141, 120, 136, 117, 120, 131, 126, 115, 136, 123, 98, 99, 121, 124, 115, 133, 118, 134, 115, 124, 126, 120, 131, 131, 129, 139, 123, 98, 118, 139, 133, 146, 124, 110, 150, 121, 107, 141, 115, 125, 155, 136, 126, 124, 121, 144, 149, 105, 140, 149, 150, 148, 138, 142, 121, 103, 137, 137, 148, 125, 117, 134, 129, 118, 131, 126, 132, 124, 125, 134, 124, 111, 127, 139, 122, 117, 127, 133, 132, 133, 107, 127, 129, 114, 115, 140, 131, 131, 126, 128, 137, 129, 138, 117, 131, 130, 118, 113, 124, 143, 113, 121, 112, 115, 137, 122, 118, 136, 122, 128, 121, 115, 128, 115, 113, 110, 127, 118, 127, 108, 127, 129, 130, 129, 123, 115, 125, 129, 120, 121, 132, 134, 130, 126, 117, 117, 126, 121, 133, 108, 146, 130, 129, 124, 123, 112, 123, 124, 116, 131, 118, 121, 135, 122, 124, 109, 133, 122, 135, 131, 102, 121, 134, 122, 120, 137, 119, 118, 122, 128, 130, 130, 127, 150, 127, 126, 122, 130, 115, 132, 133, 127, 137, 118, 121, 140, 123, 137, 134, 124, 135, 114, 114, 137, 111, 132, 113, 118, 129, 148, 136, 127, 127, 119, 135, 126, 120, 131, 121, 114, 125, 124, 128, 122, 136, 135, 118, 101, 125, 142, 117, 121, 135, 130, 127, 132, 119, 111, 123, 139, 122, 121, 121, 119, 141, 128, 130, 132, 132, 155, 128, 119, 124, 126, 126, 121, 134, 128, 147, 123, 106, 127, 127, 119, 109, 131, 133, 118, 119, 131, 127, 135, 129, 144, 117, 104, 144, 120, 141, 135, 124, 127, 114, 115, 127, 113, 143, 110, 107, 114, 139, 114, 147, 125, 132, 154, 98, 122, 128, 138, 121, 126, 116, 138, 111, 136, 108, 119, 122, 140, 121, 127, 120, 114, 114, 131, 116, 129, 127, 128, 132, 126, 119, 120, 107, 120, 132, 131, 119, 118, 129, 140, 129, 115, 122, 114, 113, 124, 142, 122, 125, 125, 135, 123, 145, 117, 118, 129, 140, 113, 118, 122, 114, 120, 120, 127, 126, 121, 114, 115, 128, 116, 125, 106, 138, 129, 128, 120, 120, 118, 141, 126, 121, 126, 115, 126, 124, 100, 120, 125, 120, 143, 147, 137, 132, 129, 117, 126, 142, 124, 134, 124, 131, 117, 141, 123, 136, 115, 140, 128, 131, 123, 124, 133, 131, 110, 128, 128, 134, 143, 131, 126, 116, 123, 111, 148, 124, 140, 115, 130, 117, 137, 139, 123, 136, 120, 123, 127, 139, 113, 109, 133, 113, 141, 124, 117, 89, 113, 113, 151, 144, 120, 112, 116, 132, 112, 130, 162, 128, 123, 119, 118, 128, 136, 121, 112, 122, 143, 128, 132, 112, 130, 124, 126, 107, 133, 106, 120, 130, 121, 124, 124, 106, 119, 121, 120, 120, 117, 125, 119, 112, 124, 133, 131, 117, 150, 107, 122, 105, 119, 135, 128, 119, 143, 114, 117, 132, 118, 127, 119, 110, 132, 116, 136, 130, 124, 111, 119, 124, 137, 127, 116, 126, 152, 119, 131, 118, 129, 117, 105, 124, 112, 117, 115, 121, 122, 123, 104, 120, 136, 122, 137, 117, 127, 130, 110, 128, 123, 121, 128, 120, 148, 144, 133, 119, 131, 114, 123, 155, 123, 123, 141, 131, 150, 129, 136, 116, 129, 120, 120, 117, 121, 107, 137, 116, 138, 124, 133, 118, 108, 136, 131, 142, 123, 126, 130, 135, 128, 124, 127, 129, 129, 150, 122, 138, 113, 126, 131, 133, 129, 112, 120, 131, 126, 106, 126, 117, 129, 126, 139, 124, 145, 128, 120, 133, 125, 114, 128, 103, 125, 122, 132, 117, 119, 108, 121, 128, 131, 123, 121, 121, 132, 125, 136, 128, 130, 127, 130, 120, 123, 111, 125, 117, 128, 128, 131, 120, 110, 107, 132, 119, 125, 150, 138, 144, 123, 124, 139, 108, 126, 115, 170, 128, 122, 130, 111, 141, 129, 117, 105, 112, 137, 143, 146, 125, 131, 119, 122, 124, 103, 134, 131, 120, 148, 130, 149, 116, 135, 142, 119, 140, 113, 121, 120, 130, 126, 129, 119, 132, 136, 131, 107, 125, 122, 119, 136, 116, 138, 117, 120, 125, 115, 135, 122, 124, 108, 136, 127, 122, 144, 140, 129, 113, 147, 130, 115, 122, 119, 120, 111, 111, 136, 113, 132, 125, 123, 160, 130, 128, 112, 152, 120, 160, 124, 131, 120, 111, 117, 132, 121, 138, 139, 129, 115, 135, 125, 157, 117, 120, 124, 130, 121, 132, 120, 136, 128, 136, 116, 137, 142, 129, 125, 122, 122, 136, 133, 141, 130, 122, 122, 119, 131, 120, 133, 149, 115, 107, 114, 127, 105, 116, 115, 119, 123, 116, 125, 122, 134, 119, 141, 140, 131, 130, 102, 110, 145, 122, 123, 131, 129, 126, 112, 123, 124, 132, 120, 128, 118, 127, 127, 124, 116, 138, 130, 126, 120, 133, 127, 153, 126, 124, 114, 141, 121, 141, 133, 121, 138, 110, 125, 124, 111, 117, 120, 114, 122, 129, 132, 130, 123, 128, 150, 140, 125, 134, 109, 124, 116, 134, 122, 126, 120, 105, 140, 141, 134, 113, 102, 118, 112, 136, 105, 115, 135, 127, 149, 110, 110, 127, 140, 108, 104, 124, 128, 125, 130, 140, 115, 109, 109, 110, 115, 120, 121, 132, 122, 134, 105, 127, 130, 120, 120, 140, 120, 121, 144, 131, 138, 126, 116, 121, 120, 130, 141, 105, 127, 119, 130, 110, 133, 122, 115, 125, 123, 103, 132, 105, 110, 135, 124, 127, 120, 118, 117, 122, 112, 133, 130, 117, 117, 119, 125, 130, 132, 120, 122, 121, 118, 126, 123, 125, 151, 116, 124, 125, 120, 133, 125, 125, 115, 136, 125, 119, 153, 124, 125, 104, 150, 128, 130, 125, 120, 118, 113, 133, 129, 115, 152, 130, 133, 135, 96, 100, 132, 110, 125, 124, 144, 123, 122, 136, 114, 116, 119, 122, 109, 119, 126, 145, 130, 121, 100, 126, 126, 108, 120, 121, 122, 106, 133, 104, 136, 126, 109, 123, 119, 119, 134, 132, 130, 122, 125, 129, 136, 111, 111, 117, 141, 145, 126, 112, 101, 133, 105, 125, 138, 119, 125, 126, 120, 120, 138, 120, 119, 119, 122, 124, 124, 114, 114, 116, 127, 118, 146, 144, 121, 126, 125, 138, 126, 126, 116, 132, 126, 124, 112, 119, 119, 125, 117, 125, 123, 138, 107, 114, 128, 110, 146, 105, 126, 105, 141, 125, 122, 131, 134, 123, 119, 126, 129, 110, 108, 134, 114, 140, 116, 127, 114, 114, 130, 124, 115, 123, 122, 136, 148, 122, 110, 116, 126, 128, 120, 128, 127, 137, 125, 128, 114, 126, 110, 131, 139, 130, 116, 121, 131, 126, 123, 129, 111, 133, 100, 117, 133, 117, 126, 117, 124, 106, 109, 116, 121, 133, 109, 123, 122, 110, 123, 150, 120, 129, 133, 120, 133, 134, 127, 127, 103, 124, 129, 124, 138, 126, 124, 117, 123, 122, 135, 122, 123, 148, 137, 131, 132, 141, 138, 118, 120, 121, 146, 122, 128, 127, 119, 115, 124, 130, 117, 131, 137, 136, 126, 129, 134, 138, 138, 122, 131, 116, 152, 114, 120, 113, 124, 120, 120, 103, 137, 121, 134, 118, 112, 128, 128, 121, 139, 127, 122, 121, 134, 130, 141, 132, 116, 126, 147, 140, 127, 119, 117, 133, 124, 126, 113, 120, 118, 121, 122, 117, 125, 119, 142, 134, 115, 126, 125, 130, 127, 129, 139, 124, 126, 127, 102, 119, 110, 130, 129, 124, 115, 114, 124, 113, 121, 119, 122, 137, 123, 141, 123, 135, 137, 136, 130, 143, 114, 109, 129, 122, 118, 132, 114, 135, 140, 121, 124, 105, 138, 118, 131, 139, 124, 127, 131, 109, 124, 139, 138, 116, 133, 124, 118, 126, 115, 123, 114, 123, 115, 111, 123, 112, 140, 133, 129, 125, 124, 133, 127, 123, 115, 109, 121, 131, 133, 138, 122, 134, 121, 133, 124, 130, 117, 132, 133, 117, 137, 126, 134, 125, 141, 111, 108, 108, 112, 127, 126, 108, 138, 123, 126, 121, 118, 129, 123, 128, 137, 151, 128, 123, 127, 158, 121, 131, 136, 104, 114, 123, 133, 136, 118, 127, 130, 116, 137, 152, 130, 137, 120, 123, 117, 134, 123, 146, 112, 119, 130, 111, 133, 139, 117, 125, 121, 128, 113, 156, 156, 118, 122, 121, 117, 142, 136, 123, 100, 124, 141, 135, 114, 128, 141, 106, 115, 128, 121, 109, 120, 138, 132, 125, 132, 125, 128, 152, 131, 103, 140, 135, 116, 113, 118, 150, 125, 132, 132, 115, 143, 101, 135, 137, 129, 108, 130, 143, 134, 126, 123, 142, 116, 128, 137, 106, 119, 113, 140, 118, 127, 133, 130, 120, 133, 112, 116, 122, 123, 110, 112, 130, 151, 108, 128, 112, 120, 136, 129, 113, 120, 116, 122, 128, 132, 127, 137, 117, 133, 111, 120, 131, 115, 127, 116, 97, 135, 122, 127, 125, 132, 130, 131, 117, 122, 123, 120, 137, 136, 113, 142, 133, 129, 126, 111, 121, 146, 119, 118, 121, 133, 126, 103, 121, 113, 135, 123, 119, 130, 123, 127, 127, 133, 123, 125, 129, 115, 125, 118, 119, 119, 122, 137, 101, 128, 98, 132, 138, 126, 124, 113, 132, 125, 122, 133, 104, 133, 139, 138, 136, 139, 123, 109, 146, 114, 107, 119, 135, 122, 147, 118, 126, 143, 126, 127, 148, 128, 127, 123, 131, 103, 126, 120, 129, 146, 138, 120, 128, 147, 124, 133, 118, 158, 125, 124, 106, 128, 132, 131, 128, 122, 119, 118, 118, 138, 129, 147, 115, 137, 124, 120, 112, 114, 140, 126, 121, 117, 118, 131, 114, 128, 129, 132, 128, 116, 128, 119, 126, 128, 123, 136, 142, 119, 153, 147, 104, 131, 125, 145, 108, 123, 121, 117, 122, 123, 119, 124, 115, 136, 117, 119, 142, 111, 117, 117, 135, 109, 130, 129, 99, 121, 131, 141, 121, 114, 114, 123, 113, 110, 125, 127, 123, 132, 130, 128, 142, 133, 108, 139, 131, 132, 122, 116, 112, 142, 123, 128, 142, 124, 112, 118, 118, 141, 123, 139, 134, 148, 127, 112, 133, 123, 125, 125, 128, 128, 129, 118, 132, 129, 116, 118, 115, 110, 116, 122, 115, 131, 118, 120, 144, 123, 123, 116, 123, 125, 126, 119, 120, 137, 136, 139, 128, 115, 115, 135, 115, 117, 133, 110, 122, 109, 134, 112, 129, 124, 122, 123, 122, 122, 130, 120, 128, 134, 118, 147, 125, 130, 121, 143, 127, 129, 117, 130, 123, 141, 99, 131, 132, 115, 123, 144, 111, 120, 113, 120, 140, 119, 105, 120, 125, 134, 126, 125, 120, 122, 137, 136, 132, 107, 142, 125, 139, 122, 117, 120, 121, 127, 116, 118, 134, 141, 132, 123, 116, 125, 122, 148, 110, 114, 125, 107, 128, 132, 163, 137, 137, 112, 118, 146, 124, 123, 151, 117, 128, 138, 140, 124, 138, 117, 108, 132, 117, 118, 128, 123, 128, 123, 116, 151, 130, 130, 137, 126, 139, 122, 125, 125, 128, 129, 124, 143, 115, 130, 126, 140, 136, 132, 127, 142, 117, 107, 123, 132, 114, 133, 142, 124, 115, 130, 153, 112, 134, 116, 124, 125, 132, 116, 125, 131, 136, 117, 137, 131, 124, 132, 123, 110, 133, 141, 130, 123, 108, 111, 137, 109, 123, 132, 133, 127, 119, 138, 121, 120, 116, 126, 129, 120, 120, 109, 131, 125, 109, 136, 125, 126, 120, 125, 121, 131, 108, 112, 114, 104, 134, 131, 108, 129, 115, 127, 128, 123, 123, 114, 122, 149, 132, 134, 133, 142, 108, 134, 126, 128, 120, 119, 126, 115, 128, 114, 128, 116, 135, 112, 134, 114, 116, 121, 141, 140, 118, 138, 117, 122, 135, 126, 125, 116, 133, 116, 123, 141, 128, 121, 116, 125, 120, 120, 139, 133, 131, 142, 119, 119, 126, 135, 97, 124, 128, 117, 132, 130, 121, 135, 111, 138, 135, 129, 125, 119, 122, 119, 125, 143, 129, 144, 133, 120, 81, 127, 123, 135, 137, 115, 126, 113, 125, 150, 133, 132, 116, 98, 124, 119, 120, 123, 110, 140, 124, 136, 130, 135, 116, 134, 124, 137, 109, 131, 131, 135, 136, 128, 133, 129, 119, 126, 118, 117, 119, 130, 138, 115, 129, 126, 118, 122, 127, 149, 122, 125, 117, 133, 108, 117, 109, 116, 124, 146, 119, 115, 105, 126, 138, 118, 133, 122, 133, 105, 132, 121, 132, 122, 124, 124, 132, 127, 122, 125, 128, 116, 121, 140, 123, 111, 127, 128, 125, 116, 118, 123, 117, 114, 115, 116, 141, 135, 111, 115, 129, 128, 137, 123, 122, 127, 129, 129, 124, 114, 105, 154, 130, 130, 121, 108, 140, 136, 135, 146, 125, 108, 116, 122, 127, 133, 118, 131, 106, 139, 125, 127, 123, 132, 116, 126, 139, 125, 124, 150, 145, 121, 116, 106, 109, 104, 117, 141, 133, 114, 122, 132, 111, 108, 120, 114, 137, 148, 136, 122, 126, 108, 131, 122, 114, 119, 130, 136, 132, 129, 121, 150, 126, 116, 128, 136, 116, 114, 122, 126, 125, 132, 128, 124, 144, 133, 110, 133, 140, 125, 135, 121, 124, 116, 111, 121, 118, 123, 124, 120, 119, 134, 139, 126, 115, 127, 125, 125, 124, 122, 123, 141, 124, 110, 134, 148, 119, 109, 120, 109, 139, 121, 130, 137, 119, 134, 155, 124, 124, 112, 114, 129, 130, 125, 137, 121, 131, 128, 133, 124, 111, 129, 124, 122, 131, 135, 132, 112, 106, 140, 147, 118, 107, 141, 125, 131, 127, 121, 118, 133, 109, 121, 126, 138, 134, 127, 114, 106, 135, 106, 135, 95, 112, 141, 111, 103, 137, 121, 136, 127, 121, 122, 135, 125, 134, 111, 143, 123, 135, 131, 130, 115, 121, 122, 126, 138, 131, 117, 126, 137, 123, 130, 103, 125, 138, 119, 109, 118, 119, 118, 120, 125, 131, 120, 130, 143, 116, 133, 115, 120, 131, 136, 119, 116, 126, 126, 150, 119, 137, 117, 143, 144, 117, 128, 114, 134, 113, 125, 125, 137, 119, 150, 129, 129, 122, 117, 138, 113, 115, 134, 114, 130, 118, 124, 138, 134, 115, 138, 118, 125, 125, 138, 126, 125, 106, 116, 132, 121, 124, 127, 152, 124, 115, 126, 128, 122, 111, 139, 124, 124, 138, 120, 125, 128, 129, 126, 124, 134, 120, 131, 127, 127, 152, 141, 108, 136, 122, 120, 124, 132, 136, 120, 140, 120, 122, 111, 132, 132, 133, 119, 123, 118, 124, 138, 110, 125, 125, 128, 117, 118, 123, 134, 133, 119, 118, 125, 117, 115, 125, 113, 127, 122, 122, 121, 131, 115, 142, 102, 131, 112, 118, 122, 147, 146, 134, 130, 117, 120, 144, 117, 118, 122, 132, 121, 132, 120, 140, 126, 130, 132, 130, 125, 112, 112, 140, 129, 120, 133, 114, 119, 143, 124, 125, 112, 133, 131, 133, 145, 136, 128, 125, 118, 134, 133, 134, 138, 126, 113, 127, 122, 121, 123, 117, 118, 134, 115, 117, 126, 138, 136, 135, 115, 135, 139, 124, 130, 130, 142, 134, 133, 138, 121, 145, 114, 145, 129, 116, 136, 121, 122, 121, 135, 127, 120, 109, 135, 121, 133, 132, 139, 125, 119, 112, 128, 123, 118, 128, 109, 125, 112, 111, 125, 140, 114, 120, 140, 131, 125, 135, 129, 119, 122, 146, 121, 116, 129, 105, 132, 111, 130, 128, 137, 126, 117, 118, 113, 120, 113, 138, 128, 132, 119, 128, 141, 122, 126, 119, 134, 135, 140, 126, 127, 117, 137, 112, 122, 125, 137, 114, 137, 126, 136, 125, 128, 130, 131, 122, 138, 122, 140, 123, 145, 126, 133, 127, 137, 117, 131, 128, 119, 148, 124, 123, 125, 134, 147, 125, 146, 122, 131, 143, 126, 146, 121, 125, 119, 120, 110, 104, 107, 127, 127, 135, 129, 130, 123, 135, 126, 104, 144, 128, 108, 132, 126, 133, 139, 119, 140, 117, 116, 139, 118, 131, 114, 119, 107, 127, 132, 125, 129, 118, 133, 127, 119, 129, 142, 117, 126, 134, 131, 127, 121, 109, 122, 145, 128, 139, 123, 131, 129, 129, 126, 125, 130, 114, 133, 122, 121, 119, 118, 138, 134, 116, 122, 134, 124, 148, 127, 129, 117, 120, 123, 136, 120, 129, 136, 120, 115, 124, 121, 104, 122, 125, 138, 139, 121, 131, 141, 112, 120, 129, 129, 103, 118, 120, 117, 125, 136, 136, 100, 123, 130, 117, 120, 130, 133, 102, 132, 123, 111, 136, 125, 141, 127, 127, 139, 119, 127, 134, 125, 128, 127, 131, 122, 127, 120, 117, 142, 132, 136, 130, 123, 121, 127, 133, 128, 123, 132, 119, 134, 123, 118, 138, 127, 124, 116, 129, 111, 126, 111, 135, 105, 135, 106, 126, 111, 131, 126, 134, 89, 130, 113, 115, 135, 132, 119, 114, 121, 119, 134, 113, 118, 119, 144, 122, 125, 128, 119, 134, 133, 138, 125, 129, 137, 112, 124, 119, 111, 137, 146, 123, 132, 116, 105, 137, 132, 118, 115, 120, 145, 117, 116, 111, 117, 131, 121, 136, 155, 133, 116, 126, 127, 115, 131, 140, 131, 133, 110, 113, 124, 119, 120, 118, 131, 119, 135, 120, 109, 137, 116, 124, 137, 119, 140, 125, 133, 135, 118, 120, 114, 134, 123, 119, 114, 120, 122, 125, 120, 134, 122, 128, 122, 131, 126, 119, 123, 122, 122, 122, 122, 116, 128, 127, 132, 136, 133, 118, 142, 117, 124, 129, 127, 136, 132, 142, 121, 123, 136, 117, 136, 139, 120, 128, 140, 129, 127, 126, 137, 126, 133, 144, 135, 126, 122, 119, 140, 135, 123, 130, 132, 127, 132, 130, 121, 110, 111, 154, 119, 120, 135, 102, 112, 128, 127, 137, 127, 118, 137, 133, 123, 128, 139, 137, 129, 132, 117, 124, 134, 119, 123, 136, 124, 127, 119, 129, 126, 112, 129, 105, 122, 137, 137, 133, 132, 118, 127, 125, 123, 124, 139, 128, 131, 111, 139, 121, 126, 124, 110, 115, 129, 119, 137, 125, 133, 121, 135, 112, 130, 115, 124, 132, 135, 123, 125, 106, 143, 136, 142, 134, 115, 120, 123, 123, 139, 128, 147, 132, 128, 117, 131, 123, 119, 118, 116, 141, 128, 135, 121, 113, 137, 137, 121, 126, 125, 126, 117, 120, 124, 129, 110, 121, 134, 127, 120, 125, 137, 128, 143, 126, 124, 140, 117, 139, 127, 138, 125, 134, 124, 126, 124, 122, 115, 126, 147, 131, 122, 123, 118, 117, 125, 121, 118, 124, 128, 127, 146, 135, 137, 108, 133, 119, 128, 125, 146, 142, 123, 126, 131, 138, 118, 125, 118, 122, 122, 126, 126, 140, 116, 131, 119, 143, 115, 135, 115, 113, 114, 117, 127, 131, 120, 127, 117, 117, 151, 133, 143, 123, 120, 134, 148, 132, 124, 133, 133, 114, 117, 134, 124, 108, 131, 120, 124, 129, 115, 130, 129, 116, 112, 130, 135, 123, 128, 145, 122, 133, 129, 119, 121, 133, 121, 118, 141, 117, 117, 118, 126, 132, 117, 110, 134, 134, 110, 121, 127, 143, 121, 130, 121, 124, 137, 125, 122, 125, 124, 131, 130, 128, 107, 144, 121, 126, 119, 120, 117, 115, 132, 109, 129, 122, 130, 110, 98, 139, 135, 130, 125, 132, 123, 137, 131, 116, 117, 123, 132, 133, 122, 128, 135, 125, 116, 94, 143, 125, 130, 126, 108, 126, 114, 133, 120, 132, 121, 133, 122, 120, 119, 127, 108, 123, 116, 138, 119, 126, 148, 120, 127, 137, 126, 140, 131, 133, 118, 144, 122, 134, 110, 126, 145, 137, 116, 127, 116, 130, 110, 127, 128, 128, 119, 121, 125, 118, 112, 131, 116, 121, 120, 102, 125, 133, 145, 120, 122, 141, 119, 124, 119, 119, 131, 133, 134, 141, 143, 123, 126, 120, 138, 137, 122, 109, 130, 121, 137, 111, 130, 110, 122, 124, 135, 138, 144, 131, 145, 136, 134, 133, 124, 118, 123, 111, 127, 125, 139, 138, 143, 139, 125, 115, 131, 127, 107, 107, 134, 131, 117, 132, 113, 104, 143, 127, 127, 135, 116, 128, 127, 131, 126, 128, 134, 114, 111, 123, 118, 124, 118, 121, 111, 113, 111, 114, 127, 146, 132, 131, 132, 132, 129, 104, 125, 126, 137, 116, 131, 121, 120, 129, 113, 107, 121, 128, 123, 128, 123, 156, 125, 131, 122, 116, 99, 131, 130, 114, 135, 110, 129, 135, 126, 133, 127, 130, 131, 137, 120, 105, 133, 148, 136, 120, 119, 125, 121, 127, 103, 128, 123, 140, 125, 120, 121, 120, 127, 109, 127, 139, 132, 127, 119, 125, 124, 128, 119, 145, 115, 130, 127, 125, 125, 120, 141, 130, 116, 119, 122, 130, 130, 129, 129, 141, 125, 119, 128, 117, 121, 111, 109, 118, 124, 141, 120, 136, 132, 114, 114, 123, 116, 140, 131, 143, 129, 128, 134, 145, 125, 125, 121, 136, 131, 135, 117, 117, 139, 124, 132, 132, 127, 116, 120, 120, 129, 118, 122, 138, 124, 137, 140, 128, 128, 124, 143, 123, 135, 142, 128, 119, 131, 116, 134, 132, 123, 125, 123, 139, 129, 129, 116, 129, 120, 126, 121, 133, 118, 128, 114, 129, 136, 123, 117, 142, 119, 134, 116, 113, 128, 106, 134, 135, 130, 127, 123, 127, 120, 144, 130, 143, 123, 141, 134, 127, 132, 116, 126, 116, 122, 130, 139, 135, 122, 129, 122, 110, 114, 129, 132, 126, 123, 127, 114, 132, 141, 138, 134, 137, 127, 131, 134, 110, 128, 130, 136, 121, 126, 136, 121, 124, 139, 142, 134, 125, 110, 133, 119, 113, 126, 108, 134, 130, 92, 127, 111, 132, 125, 122, 128, 106, 127, 127, 127, 113, 143, 136, 141, 144, 125, 125, 129, 154, 127, 122, 112, 139, 142, 126, 120, 118, 121, 117, 121, 122, 119, 126, 123, 123, 124, 126, 125, 124, 117, 129, 126, 128, 126, 121, 129, 130, 130, 117, 127, 129, 131, 117, 124, 129, 132, 112, 136, 135, 137, 125, 110, 129, 107, 126, 146, 106, 129, 133, 124, 114, 131, 126, 132, 120, 129, 143, 127, 140, 118, 127, 139, 130, 120, 128, 120, 123, 134, 112, 132, 135, 126, 116, 129, 131, 115, 121, 117, 125, 117, 125, 120, 131, 117, 145, 126, 118, 108, 112, 110, 114, 115, 125, 115, 136, 118, 127, 132, 100, 124, 134, 85, 120, 127, 144, 130, 134, 94, 122, 130, 138, 125, 121, 130, 125, 133, 108, 126, 130, 125, 130, 136, 119, 115, 123, 135, 113, 137, 115, 114, 126, 136, 135, 129, 116, 117, 117, 125, 125, 129, 127, 119, 130, 125, 140, 118, 117, 126, 130, 124, 124, 140, 124, 121, 142, 132, 118, 107, 102, 102, 144, 127, 114, 120, 118, 138, 115, 125, 130, 115, 118, 109, 140, 122, 130, 132, 138, 114, 125, 121, 135, 116, 130, 137, 133, 133, 113, 124, 119, 142, 112, 137, 115, 111, 141, 112, 121, 121, 125, 148, 131, 140, 124, 132, 122, 123, 141, 123, 128, 108, 132, 107, 128, 142, 135, 146, 120, 119, 126, 124, 135, 132, 141, 123, 128, 119, 118, 144, 129, 147, 119, 103, 121, 108, 143, 139, 126, 114, 134, 116, 126, 157, 107, 137, 114, 131, 139, 136, 114, 121, 114, 140, 139, 130, 127, 143, 105, 136, 124, 116, 106, 136, 115, 136, 119, 130, 107, 135, 136, 135, 123, 121, 111, 120, 115, 121, 134, 127, 139, 128, 140, 126, 127, 135, 121, 120, 122, 128, 107, 127, 113, 145, 143, 125, 130, 104, 128, 134, 116, 150, 129, 130, 127, 133, 140, 112, 149, 127, 99, 129, 137, 122, 108, 119, 127, 141, 128, 122, 138, 128, 124, 126, 130, 132, 128, 128, 135, 111, 117, 104, 125, 116, 142, 120, 130, 117, 117, 142, 119, 127, 126, 126, 139, 114, 136, 132, 143, 144, 116, 111, 129, 108, 145, 130, 120, 131, 110, 114, 129, 145, 118, 126, 129, 116, 124, 123, 114, 117, 117, 142, 120, 122, 125, 128, 126, 127, 117, 150, 118, 122, 121, 120, 121, 126, 133, 131, 126, 136, 122, 129, 121, 128, 128, 113, 134, 143, 128, 136, 133, 136, 118, 122, 127, 125, 117, 108, 132, 122, 126, 125, 124, 139, 107, 138, 133, 130, 114, 138, 129, 144, 151, 99, 129, 128, 110, 135, 129, 124, 142, 144, 119, 141, 129, 149, 130, 111, 128, 128, 125, 133, 114, 129, 128, 149, 128, 132, 102, 137, 125, 133, 113, 129, 115, 119, 131, 118, 117, 153, 118, 136, 127, 124, 130, 129, 130, 118, 126, 113, 137, 112, 111, 122, 118, 123, 124, 110, 124, 136, 133, 126, 114, 125, 122, 137, 141, 133, 123, 114, 99, 138, 122, 130, 125, 147, 123, 130, 117, 123, 132, 129, 132, 138, 127, 126, 115, 132, 120, 129, 117, 118, 119, 136, 125, 119, 114, 122, 126, 124, 118, 137, 119, 125, 121, 140, 121, 119, 131, 120, 110, 123, 132, 132, 159, 153, 140, 132, 108, 151, 133, 144, 134, 137, 113, 135, 112, 145, 129, 136, 127, 120, 126, 122, 115, 118, 124, 119, 115, 126, 119, 101, 128, 125, 135, 131, 131, 127, 137, 105, 129, 120, 114, 126, 109, 124, 100, 121, 131, 132, 128, 136, 104, 129, 116, 132, 130, 137, 118, 139, 124, 125, 126, 125, 117, 117, 102, 144, 130, 132, 129, 133, 124, 118, 120, 114, 142, 134, 141, 109, 114, 132, 130, 112, 140, 129, 123, 117, 115, 121, 120, 133, 126, 111, 135, 126, 144, 121, 101, 120, 118, 133, 115, 128, 122, 125, 116, 118, 127, 126, 122, 117, 147, 125, 144, 130, 119, 124, 135, 108, 122, 127, 122, 111, 128, 122, 111, 138, 148, 126, 118, 141, 132, 146, 128, 127, 129, 146, 144, 125, 133, 120, 117, 139, 120, 133, 142, 146, 122, 121, 135, 120, 113, 122, 126, 120, 121, 113, 127, 128, 123, 135, 140, 134, 137, 148, 129, 128, 142, 122, 139, 135, 121, 125, 119, 121, 132, 124, 111, 133, 116, 119, 136, 126, 150, 128, 127, 127, 126, 125, 113, 130, 129, 114, 147, 123, 102, 122, 126, 134, 122, 116, 118, 147, 145, 131, 112, 117, 131, 126, 125, 131, 132, 142, 131, 131, 123, 114, 100, 147, 133, 129, 118, 142, 130, 125, 139, 95, 121, 126, 115, 140, 110, 124, 119, 117, 115, 133, 110, 145, 144, 131, 122, 130, 124, 131, 135, 125, 149, 133, 134, 133, 124, 134, 115, 122, 124, 138, 138, 142, 130, 125, 121, 124, 131, 131, 142, 122, 141, 134, 116, 120, 129, 129, 103, 110, 121, 123, 124, 123, 121, 120, 138, 125, 115, 133, 127, 135, 124, 125, 130, 130, 135, 118, 118, 114, 144, 112, 128, 130, 130, 124, 142, 124, 113, 124, 130, 128, 107, 127, 117, 129, 137, 113, 131, 120, 131, 114, 130, 125, 128, 133, 112, 141, 109, 132, 141, 143, 125, 128, 135, 130, 111, 123, 131, 134, 119, 129, 119, 119, 107, 110, 119, 124, 159, 145, 137, 114, 126, 137, 131, 130, 100, 134, 137, 116, 133, 138, 132, 134, 140, 136, 156, 121, 106, 135, 134, 136, 123, 131, 130, 139, 123, 123, 131, 111, 122, 116, 142, 131, 123, 134, 116, 112, 120, 136, 120, 132, 114, 125, 134, 119, 113, 126, 137, 123, 125, 128, 120, 117, 117, 132, 131, 124, 111, 118, 143, 113, 113, 123, 140, 111, 140, 114, 118, 123, 131, 144, 120, 122, 127, 140, 150, 126, 121, 114, 115, 135, 124, 148, 108, 110, 118, 125, 122, 121, 125, 137, 124, 116, 138, 113, 129, 117, 132, 123, 136, 146, 124, 137, 135, 138, 137, 108, 139, 124, 110, 122, 120, 130, 122, 135, 134, 134, 130, 130, 135, 119, 121, 126, 142, 130, 118, 129, 138, 127, 126, 126, 140, 126, 124, 130, 129, 121, 122, 119, 122, 143, 125, 120, 112, 142, 117, 131, 128, 131, 119, 114, 144, 130, 146, 123, 125, 136, 117, 143, 132, 138, 126, 144, 128, 133, 120, 115, 109, 124, 129, 109, 110, 144, 135, 114, 104, 126, 114, 115, 131, 126, 124, 125, 118, 137, 122, 127, 138, 124, 141, 110, 121, 135, 127, 133, 124, 117, 129, 122, 151, 103, 113, 119, 116, 118, 110, 122, 126, 136, 128, 126, 134, 135, 126, 153, 144, 115, 135, 130, 97, 129, 123, 130, 118, 137, 117, 121, 132, 150, 126, 131, 114, 138, 126, 133, 107, 112, 119, 102, 140, 131, 122, 123, 131, 119, 120, 130, 107, 137, 144, 123, 143, 131, 115, 133, 125, 144, 128, 102, 126, 129, 120, 145, 129, 125, 113, 133, 120, 110, 131, 135, 133, 123, 105, 112, 129, 110, 135, 122, 133, 138, 115, 119, 130, 129, 128, 132, 115, 132, 140, 143, 123, 136, 111, 132, 128, 117, 121, 144, 114, 135, 127, 144, 128, 130, 128, 130, 119, 135, 130, 127, 126, 114, 121, 134, 126, 117, 119, 108, 120, 132, 116, 146, 122, 140, 138, 122, 108, 114, 115, 142, 128, 143, 125, 124, 112, 130, 130, 141, 121, 124, 140, 114, 115, 119, 137, 123, 128, 139, 121, 118, 132, 110, 123, 125, 140, 116, 136, 114, 110, 151, 143, 130, 125, 160, 125, 128, 139, 126, 122, 126, 103, 135, 116, 122, 141, 140, 120, 132, 100, 111, 130, 100, 108, 121, 120, 124, 127, 136, 129, 110, 119, 124, 136, 133, 133, 128, 122, 138, 131, 118, 134, 119, 137, 125, 131, 134, 111, 127, 120, 115, 133, 107, 123, 116, 113, 119, 138, 133, 134, 122, 129, 129, 135, 114, 125, 125, 128, 122, 142, 120, 142, 137, 133, 127, 131, 122, 143, 119, 125, 119, 118, 119, 119, 126, 129, 115, 122, 124, 108, 134, 116, 149, 131, 123, 138, 120, 118, 125, 132, 118, 115, 141, 127, 135, 124, 134, 125, 118, 124, 115, 128, 128, 116, 128, 121, 134, 132, 121, 102, 115, 144, 114, 118, 125, 111, 121, 132, 131, 126, 134, 120, 126, 125, 123, 116, 122, 119, 131, 121, 110, 127, 130, 111, 136, 140, 125, 134, 119, 114, 107, 118, 122, 126, 140, 123, 139, 134, 143, 137, 133, 122, 120, 121, 143, 123, 137, 130, 134, 124, 123, 129, 117, 117, 122, 130, 121, 116, 125, 137, 120, 121, 114, 133, 137, 127, 128, 111, 115, 122, 131, 125, 128, 117, 127, 127, 120, 137, 111, 128, 128, 128, 136, 119, 114, 126, 119, 132, 130, 120, 136, 116, 121, 126, 122, 127, 132, 117, 127, 135, 123, 119, 118, 120, 131, 119, 122, 130, 132, 122, 113, 115, 154, 128, 121, 126, 129, 123, 130, 130, 113, 128, 127, 130, 128, 102, 145, 128, 127, 151, 123, 138, 115, 114, 143, 124, 140, 138, 146, 111, 112, 126, 119, 122, 146, 109, 108, 119, 136, 131, 118, 134, 132, 124, 121, 124, 144, 126, 128, 112, 123, 128, 114, 135, 118, 121, 118, 120, 136, 121, 133, 133, 140, 126, 120, 126, 123, 138, 122, 104, 128, 130, 123, 119, 120, 124, 126, 144, 130, 126, 126, 115, 121, 124, 137, 136, 129, 130, 124, 124, 119, 136, 128, 139, 123, 120, 109, 131, 121, 137, 108, 121, 124, 121, 135, 138, 133, 129, 133, 131, 127, 109, 123, 123, 134, 135, 131, 122, 119, 148, 122, 133, 144, 127, 129, 121, 135, 132, 99, 129, 124, 118, 118, 116, 139, 133, 136, 118, 125, 126, 126, 149, 144, 127, 117, 115, 118, 124, 135, 109, 117, 130, 117, 125, 140, 134, 126, 121, 114, 136, 137, 133, 122, 140, 154, 139, 118, 127, 121, 134, 128, 135, 112, 139, 125, 123, 127, 129, 128, 122, 130, 120, 127, 144, 127, 117, 133, 112, 131, 123, 125, 118, 131, 135, 118, 139, 134, 125, 118, 138, 115, 116, 121, 125, 139, 119, 148, 130, 124, 129, 122, 136, 125, 121, 145, 126, 112, 137, 142, 132, 146, 126, 129, 132, 132, 116, 123, 135, 126, 111, 123, 104, 103, 116, 115, 136, 129, 114, 103, 103, 131, 134, 129, 114, 130, 129, 130, 137, 145, 123, 118, 128, 107, 120, 150, 125, 122, 134, 116, 130, 119, 102, 108, 124, 145, 148, 138, 130, 132, 98, 118, 137, 142, 135, 134, 107, 119, 130, 128, 131, 150, 130, 114, 123, 134, 131, 116, 127, 115, 112, 132, 127, 120, 138, 146, 130, 136, 132, 125, 116, 131, 131, 124, 120, 109, 130, 113, 120, 139, 124, 120, 116, 127, 114, 116, 112, 135, 121, 126, 133, 131, 132, 124, 150, 127, 134, 120, 118, 107, 129, 123, 126, 122, 143, 132, 138, 131, 126, 129, 117, 123, 120, 129, 110, 118, 139, 126, 112, 119, 126, 139, 135, 139, 113, 124, 124, 131, 124, 119, 131, 126, 126, 130, 127, 128, 108, 114, 123, 130, 115, 124, 157, 117, 107, 122, 125, 128, 131, 127, 126, 106, 133, 113, 118, 138, 136, 120, 109, 124, 113, 125, 122, 129, 134, 122, 117, 123, 124, 133, 125, 119, 114, 113, 127, 144, 135, 130, 131, 138, 144, 131, 112, 122, 122, 130, 116, 126, 124, 106, 128, 129, 137, 122, 134, 120, 130, 126, 135, 111, 141, 136, 135, 119, 126, 134, 120, 125, 123, 118, 113, 113, 117, 135, 127, 133, 148, 102, 133, 114, 128, 131, 133, 137, 115, 126, 130, 123, 137, 135, 139, 122, 116, 118, 136, 143, 135, 127, 114, 130, 135, 133, 116, 122, 122, 115, 123, 113, 113, 127, 126, 140, 130, 115, 130, 133, 116, 127, 109, 127, 129, 124, 112, 126, 139, 139, 109, 136, 118, 124, 126, 120, 136, 117, 137, 135, 124, 110, 121, 113, 129, 106, 110, 120, 120, 130, 123, 134, 112, 138, 122, 130, 128, 120, 116, 117, 119, 123, 127, 106, 103, 114, 117, 134, 125, 129, 110, 114, 116, 135, 124, 121, 135, 131, 123, 153, 111, 151, 136, 131, 146, 141, 111, 120, 129, 131, 115, 124, 118, 125, 164, 127, 121, 122, 122, 138, 124, 137, 131, 106, 133, 123, 126, 140, 111, 134, 129, 124, 104, 122, 107, 108, 126, 124, 113, 119, 124, 114, 118, 133, 120, 144, 121, 127, 127, 154, 129, 146, 140, 133, 112, 129, 117, 120, 141, 125, 140, 110, 132, 141, 96, 125, 122, 116, 124, 137, 119, 113, 137, 132, 142, 133, 99, 124, 128, 137, 120, 124, 143, 146, 142, 120, 136, 134, 140, 134, 115, 116, 125, 121, 122, 108, 113, 127, 121, 125, 135, 136, 124, 128, 116, 141, 132, 138, 142, 117, 126, 128, 116, 145, 115, 113, 130, 105, 146, 130, 121, 143, 139, 122, 113, 127, 140, 117, 128, 119, 125, 125, 128, 127, 125, 146, 123, 126, 124, 133, 129, 139, 132, 116, 111, 142, 116, 131, 123, 128, 130, 136, 111, 120, 140, 116, 116, 116, 134, 139, 115, 123, 136, 119, 119, 119, 122, 154, 125, 134, 138, 142, 127, 125, 113, 126, 128, 122, 115, 144, 134, 121, 123, 104, 132, 124, 129, 138, 117, 128, 115, 130, 110, 113, 119, 136, 112, 101, 113, 128, 132, 120, 131, 140, 127, 128, 135, 117, 121, 129, 106, 103, 125, 130, 111, 112, 117, 104, 120, 120, 131, 120, 136, 142, 126, 110, 123, 124, 127, 127, 115, 105, 115, 131, 112, 121, 125, 129, 110, 131, 122, 123, 125, 136, 123, 127, 127, 131, 127, 121, 137, 130, 122, 122, 118, 117, 121, 112, 112, 131, 116, 132, 145, 132, 131, 113, 124, 121, 128, 125, 124, 126, 123, 133, 114, 132, 131, 132, 130, 117, 121, 131, 107, 111, 130, 114, 124, 149, 137, 147, 112, 142, 132, 145, 138, 124, 124, 126, 123, 126, 124, 138, 126, 127, 122, 120, 124, 124, 127, 140, 119, 124, 131, 110, 132, 115, 128, 114, 124, 121, 140, 115, 120, 117, 122, 127, 150, 133, 129, 145, 131, 136, 140, 151, 131, 118, 117, 116, 109, 127, 136, 139, 122, 116, 120, 149, 116, 124, 115, 130, 136, 130, 140, 127, 129, 139, 113, 121, 118, 120, 115, 134, 121, 125, 129, 126, 120, 123, 120, 128, 107, 113, 103, 127, 115, 119, 110, 129, 121, 112, 135, 123, 104, 123, 109, 111, 105, 128, 122, 122, 126, 132, 117, 108, 110, 153, 107, 141, 127, 116, 140, 126, 128, 134, 122, 131, 116, 123, 124, 125, 127, 130, 121, 129, 123, 104, 117, 127, 119, 131, 111, 127, 120, 114, 125, 121, 124, 127, 119, 124, 138, 130, 129, 127, 113, 126, 120, 118, 128, 119, 123, 139, 115, 124, 129, 139, 133, 139, 124, 116, 127, 119, 117, 133, 128, 128, 114, 130, 121, 114, 104, 114, 123, 113, 113, 134, 131, 128, 119, 121, 143, 147, 122, 116, 111, 115, 139, 110, 142, 122, 131, 125, 132, 130, 117, 122, 120, 106, 131, 127, 125, 128, 135, 127, 136, 120, 141, 117, 152, 122, 122, 129, 107, 125, 135, 120, 125, 104, 145, 120, 123, 141, 130, 110, 117, 119, 123, 129, 113, 125, 107, 110, 129, 121, 140, 133, 127, 130, 116, 125, 128, 128, 104, 118, 122, 134, 114, 122, 142, 112, 136, 133, 120, 138, 118, 114, 123, 119, 132, 126, 137, 103, 108, 114, 119, 127, 109, 149, 134, 123, 118, 124, 120, 130, 123, 116, 115, 111, 111, 135, 128, 130, 114, 127, 119, 124, 121, 135, 139, 119, 139, 116, 104, 135, 118, 141, 115, 120, 118, 115, 125, 113, 100, 123, 118, 131, 131, 133, 128, 129, 127, 130, 130, 125, 125, 135, 112, 122, 115, 126, 133, 140, 122, 131, 116, 125, 114, 111, 132, 123, 123, 115, 126, 118, 132, 123, 129, 138, 136, 128, 129, 139, 137, 128, 110, 124, 123, 131, 116, 133, 121, 141, 113, 135, 123, 124, 125, 129, 126, 132, 130, 137, 105, 129, 137, 126, 129, 100, 131, 136, 122, 114, 131, 116, 114, 146, 129, 128, 135, 121, 133, 125, 125, 112, 141, 138, 121, 123, 102, 119, 123, 135, 120, 122, 139, 134, 129, 124, 127, 123, 129, 118, 137, 146, 111, 105, 124, 124, 131, 132, 121, 141, 145, 136, 142, 129, 128, 122, 125, 115, 113, 135, 130, 127, 128, 125, 118, 115, 148, 116, 113, 121, 112, 117, 122, 115, 142, 105, 122, 128, 135, 141, 128, 129, 131, 123, 138, 118, 126, 134, 130, 117, 112, 116, 129, 106, 146, 129, 134, 124, 137, 124, 124, 128, 123, 111, 129, 136, 129, 116, 126, 136, 112, 115, 137, 123, 121, 129, 119, 132, 118, 135, 134, 132, 139, 123, 136, 129, 131, 129, 121, 120, 123, 106, 150, 114, 129, 104, 125, 126, 118, 122, 125, 114, 142, 128, 111, 108, 141, 129, 129, 112, 123, 146, 155, 131, 144, 124, 139, 122, 127, 123, 132, 124, 115, 107, 120, 139, 127, 129, 137, 108, 122, 119, 123, 129, 120, 131, 117, 129, 111, 95, 117, 135, 127, 134, 125, 115, 131, 117, 131, 133, 137, 142, 118, 146, 122, 140, 118, 122, 131, 127, 131, 133, 140, 121, 130, 136, 125, 127, 121, 104, 120, 122, 122, 130, 126, 135, 116, 127, 128, 123, 122, 138, 130, 119, 127, 143, 119, 121, 122, 135, 112, 106, 125, 125, 113, 142, 131, 120, 126, 126, 130, 126, 111, 127, 126, 110, 111, 121, 114, 136, 118, 128, 128, 129, 105, 129, 127, 124, 123, 127, 109, 106, 116, 115, 123, 114, 111, 133, 131, 108, 137, 132, 116, 132, 110, 133, 130, 125, 136, 138, 162, 104, 120, 119, 126, 130, 126, 113, 129, 115, 122, 131, 133, 110, 146, 111, 150, 103, 115, 115, 121, 132, 135, 123, 134, 139, 125, 113, 116, 127, 120, 116, 136, 120, 125, 114, 132, 128, 142, 127, 123, 126, 109, 135, 132, 135, 124, 125, 149, 104, 128, 119, 133, 121, 118, 121, 111, 135, 124, 126, 120, 109, 117, 125, 121, 116, 125, 123, 125, 112, 112, 129, 132, 124, 119, 120, 114, 130, 123, 132, 124, 120, 131, 138, 118, 131, 126, 117, 120, 117, 129, 143, 136, 125, 142, 124, 122, 139, 132, 131, 114, 127, 132, 132, 117, 121, 121, 126, 136, 113, 138, 124, 128, 142, 113, 143, 116, 115, 126, 117, 122, 121, 118, 126, 113, 126, 134, 109, 129, 120, 117, 138, 139, 121, 123, 97, 109, 118, 113, 122, 126, 113, 136, 125, 131, 138, 108, 133, 133, 138, 116, 132, 131, 130, 129, 123, 128, 113, 129, 128, 119, 122, 114, 126, 130, 132, 103, 127, 145, 145, 118, 118, 137, 127, 113, 126, 133, 135, 82, 134, 131, 97, 134, 112, 131, 128, 114, 131, 106, 106, 122, 117, 131, 125, 122, 119, 131, 123, 130, 124, 125, 125, 133, 111, 125, 135, 122, 120, 131, 135, 132, 128, 122, 127, 117, 118, 125, 105, 129, 122, 126, 116, 136, 113, 136, 128, 118, 127, 134, 135, 125, 117, 121, 110, 115, 115, 112, 128, 111, 134, 124, 118, 122, 129, 136, 123, 133, 154, 122, 145, 128, 121, 122, 122, 125, 117, 106, 131, 115, 130, 110, 122, 122, 105, 115, 122, 121, 120, 129, 123, 131, 133, 117, 149, 120, 134, 101, 141, 99, 140, 122, 142, 153, 124, 121, 110, 127, 115, 125, 123, 134, 121, 128, 115, 124, 136, 147, 129, 124, 116, 106, 117, 123, 114, 125, 138, 127, 130, 110, 123, 123, 152, 128, 109, 117, 108, 147, 135, 124, 106, 102, 110, 138, 118, 120, 115, 98, 110, 126, 129, 133, 138, 141, 140, 122, 145, 104, 121, 125, 136, 120, 129, 118, 135, 131, 109, 112, 133, 111, 117, 129, 121, 123, 139, 131, 140, 143, 124, 136, 135, 116, 120, 112, 121, 123, 100, 121, 124, 127, 120, 127, 145, 118, 127, 127, 117, 126, 144, 108, 114, 121, 142, 124, 107, 130, 129, 120, 128, 135, 122, 122, 126, 122, 120, 115, 130, 121, 115, 127, 110, 113, 116, 118, 114, 139, 129, 107, 111, 126, 129, 124, 133, 132, 111, 125, 126, 123, 120, 129, 130, 121, 133, 141, 124, 133, 131, 123, 121, 135, 126, 122, 116, 134, 133, 133, 120, 132, 134, 118, 117, 115, 110, 123, 127, 138, 132, 121, 131, 140, 116, 127, 124, 116, 125, 137, 108, 140, 121, 109, 130, 136, 135, 121, 107, 123, 111, 115, 95, 131, 141, 111, 160, 109, 135, 123, 133, 118, 148, 146, 119, 134, 130, 117, 135, 125, 133, 106, 150, 134, 133, 126, 137, 122, 114, 118, 125, 131, 112, 133, 110, 131, 138, 129, 120, 133, 116, 136, 116, 145, 114, 118, 126, 129, 110, 136, 118, 137, 131, 136, 105, 122, 123, 140, 121, 121, 141, 116, 121, 142, 139, 134, 138, 132, 132, 106, 114, 122, 132, 127, 144, 123, 140, 125, 121, 145, 98, 133, 113, 132, 125, 109, 113, 107, 127, 141, 117, 124, 107, 139, 126, 134, 139, 131, 135, 133, 139, 109, 120, 116, 113, 128, 137, 139, 135, 137, 128, 125, 123, 123, 116, 134, 121, 135, 127, 116, 142, 122, 131, 128, 115, 134, 121, 119, 123, 87, 121, 136, 131, 132, 96, 123, 113, 96, 130, 137, 131, 109, 129, 122, 125, 133, 128, 130, 146, 114, 135, 116, 142, 114, 136, 128, 129, 136, 124, 146, 122, 119, 126, 110, 121, 128, 125, 104, 128, 136, 122, 126, 102, 112, 144, 118, 131, 103, 117, 126, 133, 138, 133, 107, 114, 131, 117, 138, 125, 119, 130, 125, 125, 121, 138, 122, 143, 121, 120, 140, 109, 137, 139, 122, 132, 126, 119, 100, 142, 124, 109, 129, 136, 129, 111, 132, 151, 132, 99, 131, 146, 123, 125, 124, 114, 126, 129, 134, 108, 122, 139, 124, 118, 140, 123, 110, 130, 127, 119, 131, 113, 135, 122, 154, 128, 131, 112, 148, 115, 129, 110, 89, 123, 101, 137, 116, 127, 116, 140, 120, 112, 129, 145, 112, 140, 125, 118, 113, 131, 112, 112, 122, 119, 127, 120, 137, 130, 147, 133, 116, 120, 123, 115, 125, 107, 113, 120, 127, 109, 119, 117, 130, 109, 152, 127, 125, 125, 124, 125, 146, 134, 104, 125, 134, 128, 132, 110, 114, 127, 133, 123, 138, 135, 143, 114, 127, 139, 116, 122, 130, 119, 110, 90, 122, 118, 121, 128, 117, 113, 128, 136, 110, 131, 157, 127, 118, 127, 122, 126, 127, 127, 114, 128, 127, 118, 122, 132, 137, 128, 116, 136, 132, 118, 124, 129, 123, 123, 127, 128, 143, 100, 132, 135, 119, 138, 123, 123, 126, 136, 117, 131, 129, 116, 109, 135, 110, 117, 112, 119, 128, 136, 128, 133, 125, 141, 120, 113, 136, 121, 120, 118, 100, 113, 122, 136, 122, 131, 133, 124, 140, 153, 125, 117, 115, 134, 138, 127, 131, 136, 119, 135, 117, 132, 127, 123, 131, 135, 134, 112, 115, 128, 121, 120, 124, 127, 130, 128, 122, 124, 143, 128, 119, 127, 118, 128, 127, 126, 124, 133, 127, 127, 124, 133, 112, 121, 142, 124, 121, 118, 127, 124, 140, 134, 118, 138, 105, 131, 120, 114, 129, 118, 130, 131, 116, 131, 120, 128, 133, 115, 120, 122, 109, 109, 144, 132, 122, 131, 122, 129, 132, 125, 123, 124, 120, 126, 132, 130, 132, 111, 118, 118, 129, 138, 136, 132, 122, 137, 127, 132, 137, 142, 129, 141, 127, 105, 129, 129, 121, 126, 132, 133, 143, 122, 124, 108, 130, 123, 129, 128, 131, 142, 122, 136, 120, 141, 119, 112, 113, 126, 123, 123, 125, 154, 115, 138, 119, 121, 121, 120, 115, 118, 143, 116, 123, 138, 123, 135, 131, 119, 145, 110, 128, 123, 129, 125, 115, 133, 130, 132, 129, 124, 136, 111, 126, 128, 112, 132, 124, 125, 125, 130, 139, 131, 126, 128, 116, 112, 143, 130, 123, 145, 126, 123, 134, 125, 143, 113, 133, 119, 123, 118, 124, 121, 93, 122, 131, 113, 131, 131, 106, 125, 140, 108, 115, 128, 123, 117, 125, 126, 119, 127, 127, 123, 127, 129, 128, 123, 137, 120, 120, 126, 138, 131, 139, 125, 109, 134, 126, 117, 129, 137, 149, 127, 123, 122, 114, 115, 111, 119, 112, 151, 120, 140, 121, 142, 126, 117, 143, 134, 144, 119, 121, 125, 157, 130, 128, 134, 128, 114, 144, 143, 111, 138, 125, 140, 120, 131, 128, 111, 120, 135, 117, 117, 113, 126, 129, 131, 123, 123, 120, 117, 154, 124, 122, 115, 126, 111, 114, 136, 115, 135, 134, 125, 136, 140, 129, 107, 128, 126, 109, 156, 125, 122, 127, 108, 111, 128, 124, 113, 141, 122, 133, 121, 123, 121, 139, 127, 126, 135, 115, 131, 121, 125, 137, 124, 129, 134, 124, 112, 130, 116, 111, 128, 119, 124, 109, 131, 124, 128, 112, 111, 115, 120, 136, 127, 150, 136, 141, 118, 138, 125, 126, 132, 121, 110, 130, 123, 128, 111, 133, 128, 120, 98, 114, 127, 133, 123, 121, 142, 131, 130, 116, 108, 122, 120, 123, 117, 133, 133, 136, 136, 107, 115, 113, 134, 123, 153, 133, 131, 134, 121, 140, 138, 106, 140, 133, 116, 117, 120, 116, 131, 123, 109, 124, 137, 130, 131, 130, 116, 133, 127, 135, 114, 123, 113, 131, 122, 119, 135, 123, 137, 135, 123, 146, 118, 132, 128, 125, 104, 133, 108, 131, 125, 126, 120, 120, 130, 126, 135, 118, 127, 125, 118, 139, 122, 121, 125, 135, 136, 113, 148, 126, 123, 126, 122, 119, 130, 123, 137, 108, 127, 126, 114, 140, 145, 117, 122, 108, 109, 123, 119, 129, 134, 139, 120, 135, 128, 134, 128, 124, 122, 135, 103, 112, 125, 115, 122, 135, 117, 131, 120, 101, 123, 141, 116, 112, 106, 134, 133, 116, 129, 140, 112, 129, 113, 138, 129, 138, 128, 127, 135, 135, 108, 106, 141, 116, 126, 134, 119, 139, 131, 121, 131, 122, 95, 125, 119, 131, 137, 124, 115, 141, 130, 134, 130, 125, 128, 127, 124, 114, 123, 138, 136, 129, 119, 127, 123, 131, 117, 131, 127, 133, 125, 131, 123, 121, 125, 128, 124, 142, 122, 131, 116, 133, 115, 121, 123, 119, 133, 112, 126, 126, 133, 115, 128, 109, 127, 127, 130, 121, 136, 117, 127, 123, 131, 147, 126, 133, 141, 133, 123, 128, 133, 125, 115, 134, 123, 120, 144, 128, 113, 110, 129, 127, 122, 152, 131, 135, 117, 132, 132, 122, 134, 123, 123, 142, 131, 102, 125, 125, 136, 124, 113, 131, 132, 106, 130, 120, 128, 122, 111, 127, 147, 128, 123, 133, 141, 122, 129, 129, 122, 115, 108, 114, 124, 131, 130, 128, 132, 143, 124, 123, 124, 121, 105, 117, 101, 122, 119, 138, 124, 129, 123, 119, 108, 127, 127, 133, 136, 122, 120, 119, 104, 106, 128, 122, 133, 130, 141, 118, 141, 120, 122, 126, 120, 136, 129, 112, 111, 125, 130, 117, 119, 98, 125, 129, 135, 128, 128, 134, 129, 125, 123, 119, 115, 119, 143, 137, 112, 139, 106, 128, 108, 141, 123, 129, 116, 133, 137, 127, 125, 133, 133, 112, 134, 126, 144, 127, 157, 136, 123, 115, 119, 133, 124, 134, 128, 114, 132, 124, 126, 113, 137, 97, 107, 124, 149, 114, 105, 121, 143, 109, 108, 122, 142, 118, 129, 106, 125, 153, 131, 125, 136, 117, 135, 113, 126, 114, 121, 127, 110, 136, 144, 129, 134, 142, 143, 117, 122, 133, 132, 122, 119, 138, 125, 112, 126, 124, 118, 122, 127, 115, 116, 135, 117, 145, 119, 113, 117, 117, 132, 129, 131, 121, 129, 117, 127, 117, 128, 126, 122, 139, 124, 115, 121, 121, 127, 112, 120, 146, 133, 134, 120, 131, 124, 128, 116, 135, 110, 140, 130, 107, 128, 124, 114, 123, 126, 111, 110, 114, 130, 140, 140, 125, 114, 125, 128, 133, 138, 132, 134, 123, 130, 120, 120, 104, 128, 116, 142, 135, 129, 136, 129, 122, 124, 130, 116, 112, 124, 115, 128, 126, 129, 128, 117, 125, 117, 116, 127, 132, 138, 120, 123, 115, 105, 136, 128, 124, 122, 121, 122, 117, 144, 139, 117, 131, 142, 123, 135, 130, 116, 130, 107, 134, 130, 132, 115, 119, 114, 119, 129, 129, 105, 132, 123, 114, 131, 125, 127, 124, 121, 129, 107, 122, 123, 108, 126, 121, 125, 116, 121, 124, 123, 103, 130, 113, 122, 134, 132, 136, 128, 131, 109, 119, 139, 128, 123, 136, 120, 135, 108, 115, 115, 115, 119, 126, 129, 103, 126, 117, 152, 129, 119, 131, 128, 141, 115, 112, 127, 131, 114, 141, 117, 141, 133, 115, 132, 114, 116, 128, 130, 124, 143, 134, 135, 117, 131, 131, 116, 135, 138, 118, 113, 129, 122, 130, 125, 118, 113, 127, 139, 116, 131, 122, 121, 108, 114, 139, 119, 132, 125, 116, 128, 135, 114, 115, 129, 112, 142, 115, 138, 112, 139, 149, 148, 113, 135, 121, 111, 100, 125, 124, 132, 134, 126, 113, 126, 124, 132, 131, 118, 140, 109, 121, 136, 138, 116, 128, 131, 117, 117, 116, 126, 129, 115, 132, 131, 127, 122, 135, 121, 108, 117, 132, 138, 111, 122, 120, 120, 124, 136, 131, 112, 104, 118, 117, 137, 128, 141, 137, 112, 129, 118, 110, 131, 120, 128, 120, 132, 131, 134, 112, 136, 126, 114, 130, 126, 145, 113, 135, 123, 126, 129, 125, 121, 131, 125, 135, 145, 137, 120, 118, 119, 110, 113, 116, 124, 111, 141, 119, 121, 124, 125, 128, 129, 160, 141, 134, 122, 109, 120, 114, 131, 111, 111, 122, 111, 142, 118, 143, 128, 126, 108, 125, 114, 137, 121, 107, 133, 122, 130, 119, 108, 120, 105, 127, 152, 142, 132, 116, 130, 99, 118, 101, 119, 127, 130, 122, 129, 122, 114, 105, 132, 120, 136, 120, 109, 128, 131, 140, 131, 122, 119, 128, 122, 129, 134, 134, 140, 138, 112, 119, 136, 122, 134, 135, 115, 122, 141, 141, 128, 123, 114, 133, 113, 144, 128, 150, 123, 109, 108, 132, 133, 124, 140, 128, 127, 148, 128, 123, 125, 136, 141, 105, 130, 136, 126, 132, 119, 130, 112, 119, 143, 120, 125, 125, 122, 124, 120, 160, 138, 127, 116, 136, 133, 128, 118, 140, 162, 131, 124, 134, 129, 129, 133, 141, 119, 122, 120, 114, 123, 126, 121, 111, 131, 136, 131, 118, 141, 131, 129, 127, 137, 125, 131, 104, 131, 114, 120, 126, 131, 133, 120, 130, 123, 125, 150, 128, 123, 136, 127, 126, 130, 126, 104, 118, 125, 141, 129, 149, 126, 122, 132, 146, 125, 110, 137, 119, 149, 101, 139, 136, 130, 116, 122, 117, 126, 134, 121, 118, 115, 122, 124, 122, 129, 129, 111, 124, 146, 114, 133, 114, 122, 120, 123, 126, 136, 118, 122, 126, 126, 142, 115, 120, 132, 119, 113, 114, 117, 104, 126, 128, 128, 124, 125, 127, 146, 134, 138, 115, 119, 125, 135, 123, 107, 138, 108, 120, 136, 131, 130, 114, 117, 133, 123, 112, 124, 123, 154, 123, 95, 130, 118, 129, 121, 122, 116, 103, 128, 133, 119, 128, 129, 139, 139, 115, 115, 136, 139, 116, 119, 109, 123, 124, 112, 124, 107, 139, 146, 122, 114, 131, 129, 113, 125, 120, 133, 120, 117, 130, 134, 137, 120, 121, 126, 128, 120, 113, 123, 131, 116, 131, 128, 139, 119, 129, 123, 119, 134, 107, 108, 134, 144, 121, 128, 132, 104, 144, 139, 131, 120, 137, 120, 140, 137, 129, 123, 113, 95, 138, 129, 110, 128, 125, 119, 108, 131, 114, 112, 121, 132, 125, 122, 125, 130, 146, 109, 112, 130, 131, 132, 131, 120, 122, 122, 110, 112, 134, 121, 142, 130, 115, 141, 123, 145, 124, 143, 153, 139, 113, 119, 132, 141, 105, 127, 121, 113, 117, 139, 112, 133, 125, 117, 126, 120, 130, 151, 133, 118, 112, 130, 136, 128, 129, 139, 121, 119, 139, 128, 119, 109, 131, 108, 119, 123, 130, 123, 127, 105, 138, 105, 114, 113, 139, 98, 109, 108, 112, 129, 98, 140, 100, 131, 118, 134, 136, 128, 112, 146, 116, 97, 127, 118, 118, 112, 107, 125, 128, 143, 117, 120, 125, 127, 120, 120, 137, 133, 107, 133, 133, 121, 115, 122, 121, 128, 135, 111, 142, 126, 108, 93, 121, 119, 138, 130, 128, 113, 117, 127, 135, 138, 137, 122, 105, 113, 127, 120, 132, 148, 131, 132, 137, 136, 116, 122, 132, 136, 129, 143, 139, 115, 133, 120, 117, 153, 144, 135, 132, 131, 119, 128, 119, 107, 125, 123, 113, 139, 135, 118, 130, 117, 138, 129, 117, 137, 126, 121, 131, 132, 121, 107, 123, 123, 129, 129, 125, 136, 123, 125, 140, 121, 122, 139, 132, 125, 115, 122, 116, 108, 134, 113, 131, 137, 127, 119, 131, 130, 122, 118, 133, 130, 122, 119, 129, 123, 117, 124, 127, 111, 124, 116, 100, 116, 121, 132, 124, 131, 149, 132, 130, 103, 143, 123, 113, 134, 132, 111, 127, 128, 125, 124, 142, 132, 138, 119, 148, 128, 107, 139, 137, 127, 117, 117, 130, 119, 123, 130, 124, 130, 125, 123, 123, 124, 136, 123, 125, 123, 119, 136, 126, 135, 111, 121, 117, 130, 126, 125, 139, 123, 122, 127, 143, 121, 130, 125, 120, 138, 128, 160, 142, 123, 124, 137, 128, 116, 142, 132, 122, 123, 118, 132, 148, 106, 129, 133, 161, 127, 122, 128, 111, 134, 129, 124, 133, 128, 125, 118, 135, 131, 134, 133, 121, 126, 118, 142, 117, 130, 119, 133, 132, 127, 133, 119, 138, 129, 117, 126, 135, 132, 126, 133, 129, 122, 130, 127, 115, 136, 136, 123, 140, 117, 127, 133, 153, 128, 128, 112, 112, 144, 137, 138, 98, 121, 122, 105, 134, 126, 121, 140, 119, 138, 122, 85, 129, 121, 131, 119, 120, 113, 135, 119, 123, 125, 122, 125, 129, 124, 117, 117, 129, 134, 130, 125, 125, 117, 126, 118, 132, 120, 114, 109, 106, 120, 145, 121, 115, 106, 131, 120, 143, 109, 122, 132, 110, 118, 137, 138, 128, 121, 133, 133, 126, 119, 125, 138, 111, 117, 121, 115, 145, 122, 126, 139, 123, 129, 123, 122, 121, 123, 106, 105, 122, 122, 116, 125, 102, 139, 129, 140, 113, 137, 140, 111, 123, 130, 130, 107, 123, 126, 136, 133, 132, 135, 112, 128, 133, 129, 120, 109, 139, 121, 98, 122, 141, 120, 123, 110, 135, 121, 124, 127, 129, 136, 127, 113, 113, 116, 128, 121, 126, 103, 134, 119, 130, 121, 119, 118, 133, 127, 115, 112, 111, 133, 139, 121, 123, 108, 129, 96, 110, 120, 149, 112, 126, 130, 119, 127, 129, 131, 123, 123, 117, 127, 114, 107, 119, 118, 144, 113, 138, 122, 127, 127, 121, 126, 127, 144, 102, 131, 139, 117, 133, 125, 130, 118, 121, 122, 121, 137, 111, 114, 129, 133, 116, 141, 131, 115, 119, 132, 153, 142, 107, 146, 125, 124, 140, 128, 125, 135, 133, 132, 112, 109, 116, 129, 136, 125, 132, 119, 131, 109, 143, 116, 135, 142, 116, 144, 131, 92, 152, 110, 126, 114, 124, 125, 136, 117, 121, 143, 116, 127, 131, 108, 136, 108, 130, 132, 110, 128, 119, 101, 124, 130, 121, 146, 104, 122, 122, 104, 128, 112, 139, 141, 130, 140, 131, 140, 108, 142, 120, 114, 138, 119, 146, 110, 121, 115, 106, 130, 121, 124, 126, 122, 128, 112, 116, 127, 132, 111, 119, 123, 119, 119, 134, 133, 121, 140, 131, 124, 124, 122, 118, 125, 116, 129, 127, 105, 137, 120, 126, 131, 117, 123, 117, 125, 116, 121, 120, 141, 128, 137, 140, 113, 119, 114, 147, 112, 115, 114, 135, 137, 133, 120, 110, 127, 118, 123, 122, 122, 130, 126, 113, 136, 109, 124, 129, 119, 109, 141, 126, 132, 123, 120, 129, 132, 118, 127, 114, 123, 112, 119, 111, 126, 127, 130, 128, 145, 123, 124, 129, 105, 133, 110, 120, 131, 120, 141, 118, 141, 127, 126, 110, 120, 115, 101, 131, 113, 114, 126, 141, 123, 127, 126, 129, 121, 118, 132, 104, 124, 129, 112, 136, 85, 147, 111, 120, 143, 129, 139, 136, 115, 137, 133, 124, 102, 149, 116, 121, 130, 132, 117, 129, 127, 151, 114, 130, 115, 123, 114, 123, 146, 119, 134, 115, 133, 117, 124, 135, 145, 113, 131, 109, 127, 124, 124, 119, 114, 115, 147, 114, 139, 101, 132, 137, 120, 152, 125, 122, 139, 106, 141, 119, 123, 138, 141, 123, 105, 136, 118, 114, 121, 116, 137, 127, 128, 137, 126, 120, 123, 136, 130, 116, 121, 128, 123, 110, 114, 135, 133, 113, 127, 125, 119, 118, 136, 136, 139, 109, 112, 135, 125, 112, 117, 133, 123, 135, 128, 120, 113, 128, 114, 126, 142, 120, 115, 113, 140, 115, 129, 108, 130, 136, 125, 139, 142, 121, 144, 116, 112, 137, 111, 122, 132, 120, 109, 140, 137, 103, 140, 110, 121, 122, 138, 124, 129, 129, 130, 141, 121, 134, 129, 123, 148, 117, 125, 112, 125, 124, 123, 140, 118, 109, 124, 107, 129, 135, 106, 108, 130, 127, 149, 125, 108, 103, 118, 123, 117, 120, 142, 136, 128, 116, 123, 121, 125, 122, 145, 134, 128, 120, 128, 132, 133, 119, 129, 130, 128, 119, 114, 119, 131, 130, 116, 132, 118, 117, 140, 113, 149, 119, 145, 133, 138, 135, 109, 124, 118, 136, 144, 142, 120, 121, 137, 108, 132, 122, 118, 124, 135, 116, 132, 122, 110, 135, 123, 123, 128, 137, 123, 121, 124, 117, 125, 138, 141, 139, 123, 135, 127, 127, 97, 145, 118, 142, 133, 109, 125, 118, 133, 105, 139, 138, 128, 137, 117, 132, 137, 120, 117, 121, 107, 116, 100, 124, 122, 128, 128, 124, 131, 134, 123, 136, 128, 112, 133, 131, 132, 116, 142, 119, 141, 126, 124, 114, 126, 100, 121, 113, 114, 145, 126, 112, 109, 124, 133, 122, 140, 139, 110, 163, 126, 130, 146, 118, 111, 133, 127, 128, 131, 129, 122, 124, 123, 126, 119, 116, 117, 125, 127, 132, 127, 123, 121, 128, 126, 112, 130, 136, 143, 102, 120, 115, 93, 117, 143, 111, 123, 127, 127, 118, 137, 138, 130, 116, 125, 123, 118, 127, 133, 143, 141, 138, 145, 137, 118, 140, 134, 113, 107, 112, 119, 139, 127, 127, 122, 137, 118, 127, 117, 130, 120, 130, 123, 131, 119, 127, 122, 121, 114, 119, 142, 129, 133, 137, 129, 122, 120, 130, 138, 126, 127, 103, 126, 140, 142, 120, 127, 129, 120, 141, 143, 115, 130, 141, 126, 108, 129, 119, 116, 117, 115, 136, 124, 126, 101, 132, 148, 131, 127, 121, 126, 123, 132, 135, 138, 133, 126, 117, 128, 131, 111, 124, 128, 140, 126, 121, 127, 118, 127, 118, 130, 119, 114, 117, 123, 108, 99, 125, 114, 139, 153, 132, 148, 130, 132, 131, 131, 136, 125, 140, 139, 122, 129, 123, 113, 135, 131, 127, 121, 106, 122, 126, 125, 110, 138, 129, 127, 121, 127, 139, 139, 124, 151, 111, 113, 110, 126, 118, 107, 124, 129, 167, 139, 134, 125, 118, 124, 137, 134, 119, 124, 138, 124, 119, 117, 120, 132, 125, 130, 130, 142, 126, 132, 116, 103, 138, 132, 143, 124, 131, 122, 143, 125, 122, 124, 116, 125, 133, 140, 132, 136, 141, 115, 116, 117, 114, 131, 126, 141, 143, 129, 132, 138, 84, 123, 133, 127, 133, 120, 95, 125, 118, 134, 127, 131, 129, 119, 124, 123, 131, 120, 134, 127, 132, 115, 118, 125, 135, 144, 101, 124, 132, 127, 133, 135, 121, 112, 144, 128, 127, 129, 123, 130, 127, 151, 146, 113, 123, 113, 120, 106, 121, 135, 121, 137, 123, 115, 121, 127, 125, 118, 134, 111, 123, 131, 128, 129, 119, 138, 112, 140, 124, 125, 125, 121, 115, 109, 120, 129, 129, 129, 137, 130, 115, 124, 122, 131, 117, 132, 139, 125, 117, 126, 105, 108, 125, 151, 118, 128, 131, 119, 143, 106, 127, 120, 138, 115, 123, 108, 124, 125, 127, 119, 126, 122, 125, 116, 126, 112, 153, 130, 128, 132, 122, 111, 111, 88, 118, 138, 154, 115, 124, 106, 132, 141, 119, 124, 133, 130, 119, 117, 124, 112, 137, 128, 128, 133, 133, 132, 138, 108, 125, 131, 122, 123, 109, 126, 121, 104, 127, 126, 135, 121, 126, 132, 127, 129, 121, 142, 124, 116, 135, 116, 130, 145, 130, 121, 116, 122, 137, 123, 120, 136, 117, 123, 118, 119, 112, 122, 126, 141, 114, 121, 116, 103, 114, 134, 156, 137, 146, 136, 144, 125, 133, 118, 117, 143, 115, 143, 113, 130, 135, 115, 129, 108, 107, 134, 140, 120, 152, 144, 130, 129, 130, 146, 126, 139, 149, 121, 105, 119, 124, 120, 116, 128, 119, 127, 116, 133, 115, 151, 122, 116, 121, 120, 136, 111, 135, 114, 123, 123, 142, 100, 133, 106, 136, 111, 115, 129, 122, 114, 111, 130, 145, 127, 129, 126, 125, 115, 125, 123, 132, 136, 122, 120, 115, 123, 137, 122, 126, 140, 136, 121, 112, 127, 132, 138, 127, 141, 126, 122, 129, 116, 128, 134, 126, 126, 130, 132, 143, 124, 146, 139, 122, 128, 132, 148, 137, 118, 135, 125, 129, 134, 114, 130, 134, 125, 134, 135, 114, 103, 135, 126, 133, 133, 130, 139, 133, 118, 105, 124, 121, 111, 136, 134, 141, 124, 119, 114, 121, 105, 121, 110, 131, 132, 160, 118, 138, 117, 121, 119, 116, 107, 126, 134, 124, 137, 123, 129, 109, 116, 124, 117, 150, 134, 111, 113, 129, 114, 135, 122, 139, 126, 129, 130, 125, 132, 135, 111, 128, 113, 117, 132, 120, 120, 100, 119, 106, 125, 146, 127, 127, 125, 122, 126, 118, 120, 131, 132, 120, 124, 125, 121, 127, 116, 129, 108, 110, 129, 127, 131, 116, 129, 120, 131, 136, 146, 119, 134, 119, 114, 128, 148, 117, 144, 121, 92, 123, 122, 109, 115, 126, 125, 134, 116, 117, 145, 131, 145, 111, 124, 105, 122, 114, 139, 134, 131, 134, 114, 115, 142, 134, 128, 124, 127, 106, 126, 134, 123, 121, 128, 125, 124, 142, 130, 125, 125, 120, 132, 113, 136, 119, 121, 146, 126, 134, 110, 124, 110, 139, 122, 128, 128, 115, 113, 105, 120, 94, 110, 127, 124, 153, 117, 132, 134, 142, 115, 119, 114, 112, 146, 120, 125, 115, 121, 138, 120, 124, 128, 130, 129, 123, 122, 103, 118, 122, 114, 109, 125, 126, 124, 119, 127, 136, 128, 120, 143, 120, 129, 117, 120, 127, 129, 126, 125, 127, 110, 135, 126, 96, 148, 106, 118, 127, 130, 109, 129, 140, 133, 120, 143, 132, 126, 138, 119, 127, 109, 113, 128, 112, 123, 130, 108, 134, 119, 123, 146, 132, 140, 118, 120, 122, 130, 135, 131, 119, 111, 105, 127, 116, 118, 129, 148, 125, 147, 124, 132, 148, 124, 114, 108, 131, 131, 119, 108, 129, 120, 133, 130, 133, 111, 125, 126, 125, 129, 132, 115, 126, 112, 111, 133, 131, 131, 126, 129, 139, 144, 130, 115, 108, 130, 130, 141, 129, 128, 146, 152, 131, 110, 126, 116, 128, 148, 111, 128, 120, 131, 138, 148, 151, 135, 148, 122, 128, 127, 116, 126, 130, 113, 134, 138, 150, 119, 127, 136, 126, 118, 130, 131, 122, 132, 120, 131, 131, 129, 117, 133, 118, 134, 123, 139, 118, 123, 131, 118, 128, 116, 151, 129, 130, 128, 112, 128, 122, 126, 136, 132, 109, 132, 131, 99, 145, 122, 128, 127, 126, 127, 127, 127, 127, 135, 120, 122, 134, 128, 120, 118, 124, 127, 122, 136, 126, 116, 113, 124, 133, 119, 130, 114, 131, 123, 120, 127, 134, 135, 134, 119, 133, 127, 124, 132, 123, 114, 84, 130, 116, 121, 125, 125, 124, 120, 121, 118, 134, 134, 122, 128, 134, 157, 128, 133, 133, 125, 137, 122, 112, 125, 135, 131, 126, 130, 124, 123, 118, 145, 126, 126, 125, 133, 122, 117, 116, 106, 127, 114, 116, 112, 127, 130, 124, 123, 127, 129, 121, 128, 125, 123, 112, 121, 139, 115, 114, 124, 129, 114, 122, 125, 130, 132, 122, 160, 130, 104, 129, 113, 130, 113, 115, 126, 137, 140, 115, 133, 119, 135, 115, 122, 124, 107, 123, 125, 110, 108, 123, 124, 146, 114, 122, 139, 133, 123, 122, 132, 127, 123, 130, 112, 119, 128, 119, 134, 133, 123, 123, 126, 128, 126, 117, 138, 135, 122, 121, 111, 128, 120, 132, 121, 125, 113, 126, 122, 123, 112, 131, 112, 126, 126, 129, 108, 133, 125, 135, 128, 126, 124, 112, 116, 126, 110, 130, 127, 112, 126, 112, 125, 126, 118, 97, 120, 119, 122, 137, 126, 145, 138, 126, 141, 124, 125, 126, 124, 124, 112, 131, 132, 126, 129, 118, 129, 138, 130, 130, 139, 130, 122, 131, 134, 114, 119, 127, 125, 145, 134, 125, 132, 126, 109, 127, 135, 119, 115, 122, 115, 156, 119, 132, 122, 120, 107, 114, 121, 140, 122, 120, 112, 129, 122, 119, 118, 134, 117, 139, 114, 121, 123, 118, 112, 136, 120, 138, 132, 124, 131, 128, 122, 138, 124, 112, 122, 138, 143, 130, 123, 122, 127, 102, 108, 133, 136, 133, 119, 118, 133, 121, 129, 128, 130, 134, 122, 118, 119, 132, 128, 128, 113, 118, 128, 140, 119, 125, 129, 128, 146, 123, 111, 135, 141, 142, 125, 146, 126, 131, 115, 119, 114, 119, 118, 99, 128, 116, 152, 114, 142, 133, 129, 135, 148, 139, 119, 136, 117, 129, 109, 134, 114, 123, 113, 139, 115, 133, 118, 125, 108, 121, 134, 136, 121, 145, 139, 116, 109, 149, 127, 135, 129, 134, 124, 132, 133, 123, 116, 128, 137, 123, 129, 121, 108, 123, 134, 142, 124, 117, 120, 120, 127, 125, 131, 119, 108, 125, 117, 138, 143, 132, 114, 128, 146, 133, 113, 147, 107, 149, 130, 106, 110, 132, 106, 133, 133, 134, 110, 123, 125, 129, 123, 138, 119, 132, 120, 120, 124, 131, 129, 118, 119, 119, 131, 120, 114, 124, 129, 115, 127, 117, 138, 144, 136, 114, 134, 123, 115, 137, 117, 119, 135, 136, 120, 121, 123, 105, 136, 127, 115, 130, 122, 115, 136, 123, 123, 131, 122, 128, 103, 121, 122, 123, 119, 128, 136, 79, 118, 134, 107, 122, 142, 127, 131, 139, 135, 118, 129, 116, 125, 112, 122, 122, 138, 121, 116, 119, 144, 125, 123, 128, 129, 134, 127, 139, 123, 113, 117, 125, 113, 121, 109, 113, 130, 117, 122, 132, 114, 128, 122, 128, 110, 126, 120, 121, 135, 125, 112, 122, 127, 128, 125, 122, 134, 116, 128, 120, 117, 119, 112, 148, 137, 134, 124, 133, 130, 134, 120, 124, 123, 128, 123, 115, 120, 116, 137, 127, 135, 122, 141, 110, 114, 128, 149, 125, 116, 131, 125, 128, 109, 119, 143, 125, 115, 130, 133, 124, 118, 127, 135, 117, 126, 123, 115, 116, 131, 119, 136, 140, 125, 133, 141, 107, 125, 140, 115, 124, 121, 136, 130, 120, 112, 125, 107, 144, 131, 115, 124, 111, 117, 128, 137, 109, 111, 137, 128, 124, 120, 125, 146, 142, 136, 132, 150, 140, 129, 115, 137, 122, 135, 122, 125, 113, 138, 115, 123, 130, 129, 118, 135, 127, 134, 123, 131, 126, 128, 122, 134, 142, 119, 121, 132, 113, 120, 138, 131, 145, 123, 138, 113, 134, 143, 131, 123, 126, 120, 129, 138, 124, 121, 140, 141, 128, 103, 137, 126, 125, 142, 120, 122, 121, 127, 125, 134, 114, 127, 126, 123, 107, 146, 126, 134, 125, 136, 132, 134, 128, 135, 125, 101, 104, 127, 122, 120, 123, 124, 110, 113, 121, 135, 116, 125, 119, 126, 142, 118, 122, 131, 117, 133, 129, 134, 129, 128, 119, 137, 131, 107, 108, 126, 137, 130, 104, 115, 120, 127, 130, 126, 129, 141, 118, 124, 135, 131, 123, 114, 120, 121, 116, 128, 130, 139, 111, 139, 126, 139, 120, 117, 128, 127, 130, 130, 142, 105, 125, 142, 122, 107, 121, 117, 117, 123, 135, 131, 129, 113, 110, 136, 110, 125, 117, 128, 136, 125, 121, 127, 121, 139, 111, 130, 119, 132, 118, 123, 128, 121, 122, 128, 130, 124, 142, 129, 128, 133, 142, 115, 144, 119, 137, 119, 140, 142, 120, 136, 145, 137, 132, 124, 131, 125, 133, 116, 143, 145, 135, 105, 139, 138, 120, 114, 127, 123, 132, 123, 144, 119, 119, 116, 123, 138, 131, 117, 129, 131, 128, 118, 129, 130, 127, 118, 124, 123, 133, 126, 112, 114, 114, 131, 140, 136, 132, 118, 131, 129, 126, 137, 145, 120, 139, 129, 137, 118, 114, 128, 115, 115, 120, 132, 132, 128, 121, 136, 113, 127, 130, 123, 124, 128, 129, 134, 127, 134, 141, 134, 129, 128, 137, 116, 112, 129, 132, 131, 117, 136, 123, 121, 124, 156, 116, 118, 127, 116, 134, 127, 134, 123, 124, 128, 135, 128, 123, 125, 114, 113, 136, 118, 119, 126, 138, 126, 142, 138, 130, 127, 133, 127, 133, 129, 132, 115, 116, 125, 117, 138, 140, 141, 120, 126, 131, 142, 124, 124, 129, 138, 127, 129, 119, 129, 122, 135, 118, 128, 118, 128, 130, 127, 119, 137, 112, 105, 113, 124, 117, 121, 133, 122, 112, 122, 114, 124, 128, 117, 118, 124, 126, 127, 124, 128, 130, 114, 129, 136, 116, 132, 127, 127, 141, 126, 110, 131, 138, 119, 124, 127, 134, 125, 117, 106, 113, 123, 125, 117, 127, 127, 130, 125, 124, 123, 122, 138, 118, 118, 122, 115, 136, 133, 122, 118, 121, 137, 125, 108, 131, 126, 119, 136, 150, 136, 111, 130, 125, 132, 122, 132, 128, 135, 116, 128, 125, 149, 116, 120, 122, 122, 109, 145, 131, 124, 124, 126, 117, 140, 156, 113, 120, 129, 129, 132, 110, 125, 137, 133, 128, 114, 135, 133, 122, 132, 114, 116, 127, 116, 135, 127, 134, 126, 135, 125, 116, 133, 139, 125, 118, 123, 110, 139, 130, 113, 138, 120, 131, 122, 114, 135, 118, 117, 131, 134, 129, 123, 138, 121, 121, 108, 135, 112, 130, 128, 112, 119, 124, 128, 128, 115, 121, 123, 152, 115, 117, 128, 98, 112, 117, 143, 130, 124, 125, 157, 133, 99, 136, 118, 108, 104, 143, 136, 121, 137, 141, 123, 131, 130, 124, 116, 112, 128, 115, 117, 129, 144, 97, 123, 134, 138, 139, 131, 120, 136, 124, 125, 125, 123, 123, 116, 137, 115, 133, 114, 130, 119, 127, 137, 132, 128, 146, 140, 136, 122, 114, 135, 123, 128, 134, 122, 124, 122, 129, 116, 142, 124, 148, 128, 124, 125, 125, 144, 110, 117, 129, 109, 125, 114, 112, 138, 118, 131, 133, 136, 102, 122, 149, 133, 125, 124, 122, 134, 118, 120, 125, 121, 135, 107, 117, 140, 139, 129, 136, 120, 119, 111, 131, 119, 129, 140, 136, 141, 115, 124, 126, 118, 119, 130, 131, 138, 130, 113, 118, 119, 126, 120, 124, 122, 128, 134, 127, 123, 134, 124, 103, 137, 115, 118, 127, 123, 108, 130, 113, 135, 125, 106, 131, 128, 138, 123, 120, 121, 129, 127, 126, 135, 117, 133, 142, 127, 126, 123, 140, 131, 113, 131, 138, 123, 114, 127, 136, 96, 135, 131, 134, 121, 123, 122, 130, 127, 142, 118, 140, 123, 138, 129, 119, 133, 133, 126, 142, 131, 110, 130, 133, 119, 117, 150, 125, 133, 128, 113, 125, 120, 98, 134, 132, 126, 122, 128, 108, 136, 136, 107, 126, 119, 137, 121, 114, 158, 121, 120, 147, 125, 120, 128, 133, 121, 131, 119, 125, 123, 116, 117, 131, 124, 125, 119, 142, 134, 123, 125, 112, 124, 121, 131, 137, 120, 119, 150, 140, 123, 123, 130, 121, 123, 107, 120, 122, 138, 132, 131, 101, 110, 136, 115, 123, 138, 136, 120, 134, 129, 120, 132, 120, 124, 127, 142, 120, 123, 122, 129, 147, 130, 103, 133, 123, 135, 139, 134, 107, 134, 144, 119, 122, 115, 131, 132, 106, 129, 129, 112, 127, 123, 132, 123, 131, 106, 124, 130, 134, 133, 136, 109, 125, 126, 125, 129, 118, 132, 125, 140, 118, 142, 112, 122, 141, 118, 117, 137, 141, 110, 129, 122, 124, 134, 134, 117, 122, 96, 128, 106, 117, 117, 122, 113, 110, 131, 123, 123, 136, 112, 117, 129, 145, 132, 132, 126, 115, 118, 107, 133, 113, 116, 123, 134, 133, 121, 115, 128, 127, 146, 121, 109, 122, 121, 124, 148, 129, 114, 138, 122, 118, 144, 124, 111, 141, 115, 130, 132, 143, 122, 115, 136, 121, 123, 116, 115, 126, 126, 130, 150, 129, 129, 132, 131, 118, 126, 138, 140, 126, 139, 122, 137, 116, 117, 127, 127, 122, 130, 112, 133, 128, 123, 129, 120, 135, 120, 131, 125, 114, 130, 113, 121, 133, 142, 118, 125, 116, 123, 129, 131, 123, 127, 135, 99, 122, 125, 117, 121, 103, 139, 125, 127, 108, 136, 121, 122, 145, 126, 131, 120, 128, 121, 122, 129, 140, 129, 127, 113, 127, 130, 119, 124, 121, 132, 119, 129, 121, 132, 119, 133, 139, 152, 140, 121, 122, 120, 120, 110, 139, 144, 104, 133, 111, 122, 116, 114, 141, 125, 140, 128, 116, 126, 128, 117, 113, 136, 129, 119, 125, 119, 113, 117, 109, 116, 121, 140, 109, 144, 132, 130, 120, 123, 106, 106, 117, 114, 120, 137, 129, 123, 123, 104, 126, 132, 134, 124, 119, 135, 120, 116, 125, 134, 127, 124, 105, 119, 131, 124, 131, 123, 122, 128, 133, 120, 132, 125, 140, 126, 113, 115, 138, 138, 127, 131, 118, 120, 128, 132, 136, 122, 115, 98, 133, 112, 125, 122, 130, 130, 130, 137, 126, 121, 141, 136, 123, 130, 138, 120, 153, 117, 117, 117, 148, 134, 119, 143, 123, 126, 145, 125, 110, 114, 151, 126, 126, 131, 125, 126, 126, 111, 128, 122, 134, 126, 143, 139, 117, 125, 126, 132, 123, 149, 104, 128, 123, 110, 124, 135, 127, 118, 110, 130, 126, 125, 130, 130, 151, 116, 125, 124, 111, 121, 122, 126, 138, 121, 114, 119, 144, 116, 137, 141, 137, 133, 116, 132, 133, 129, 130, 129, 108, 127, 137, 120, 130, 142, 116, 120, 111, 136, 126, 130, 138, 114, 117, 128, 132, 133, 135, 100, 132, 118, 122, 120, 129, 141, 127, 125, 114, 133, 120, 137, 130, 111, 127, 129, 120, 133, 107, 121, 126, 117, 125, 113, 119, 127, 128, 131, 109, 144, 125, 128, 120, 137, 140, 128, 132, 126, 123, 131, 129, 139, 119, 124, 122, 128, 125, 109, 122, 120, 139, 130, 135, 132, 138, 138, 128, 117, 123, 110, 131, 120, 122, 131, 135, 126, 114, 112, 130, 127, 118, 114, 132, 126, 137, 121, 110, 106, 131, 160, 118, 136, 139, 128, 100, 118, 117, 122, 115, 115, 114, 148, 120, 119, 123, 136, 132, 137, 131, 127, 127, 119, 105, 132, 133, 122, 122, 120, 115, 122, 120, 132, 121, 130, 124, 138, 112, 121, 109, 121, 134, 123, 128, 119, 129, 125, 145, 121, 115, 119, 144, 126, 122, 124, 121, 128, 117, 148, 122, 120, 126, 135, 138, 113, 125, 120, 125, 111, 138, 97, 114, 122, 130, 130, 123, 132, 112, 110, 138, 120, 128, 124, 116, 121, 112, 117, 112, 118, 134, 119, 114, 114, 124, 123, 135, 144, 107, 130, 121, 122, 124, 117, 134, 143, 104, 123, 106, 105, 107, 122, 122, 106, 134, 128, 121, 126, 141, 120, 140, 118, 121, 116, 128, 128, 130, 124, 116, 123, 120, 149, 124, 119, 122, 121, 117, 133, 113, 137, 120, 111, 135, 124, 123, 114, 133, 121, 121, 144, 118, 126, 150, 120, 122, 129, 110, 142, 119, 125, 131, 127, 119, 122, 121, 115, 119, 120, 114, 135, 122, 130, 100, 128, 127, 122, 117, 121, 126, 116, 112, 119, 124, 139, 137, 121, 116, 129, 123, 101, 118, 128, 123, 139, 144, 124, 114, 131, 121, 143, 131, 125, 129, 121, 125, 119, 112, 115, 134, 121, 137, 106, 125, 114, 119, 130, 121, 125, 123, 130, 130, 116, 96, 119, 141, 143, 98, 117, 138, 138, 135, 128, 125, 150, 119, 137, 142, 121, 132, 125, 124, 134, 134, 129, 121, 141, 144, 141, 110, 116, 133, 108, 142, 108, 123, 121, 135, 141, 118, 108, 131, 124, 139, 130, 145, 131, 123, 119, 115, 130, 145, 136, 117, 133, 126, 134, 123, 141, 121, 132, 131, 121, 124, 128, 136, 114, 133, 134, 131, 113, 123, 112, 119, 131, 119, 118, 136, 125, 113, 125, 114, 124, 126, 121, 135, 126, 133, 124, 118, 119, 124, 124, 128, 124, 125, 127, 113, 133, 116, 126, 109, 95, 121, 141, 106, 131, 123, 125, 117, 121, 124, 124, 124, 133, 136, 115, 127, 104, 136, 126, 112, 114, 119, 113, 123, 116, 126, 126, 120, 132, 120, 121, 104, 134, 121, 120, 120, 124, 128, 135, 112, 120, 126, 126, 114, 118, 134, 135, 124, 117, 138, 140, 111, 135, 117, 128, 123, 132, 123, 151, 134, 134, 135, 130, 109, 126, 136, 107, 130, 135, 116, 114, 134, 106, 142, 134, 102, 131, 119, 110, 119, 121, 131, 120, 133, 139, 143, 118, 133, 110, 115, 119, 144, 135, 119, 134, 124, 124, 134, 112, 130, 123, 125, 122, 125, 123, 119, 124, 124, 101, 133, 121, 118, 137, 115, 128, 126, 126, 110, 121, 115, 123, 121, 111, 136, 129, 120, 121, 123, 123, 126, 116, 130, 127, 109, 115, 101, 117, 129, 123, 124, 116, 114, 126, 134, 123, 137, 108, 117, 120, 122, 130, 118, 119, 125, 136, 132, 120, 116, 139, 121, 137, 121, 122, 131, 125, 118, 143, 132, 111, 126, 151, 126, 119, 135, 130, 133, 130, 111, 124, 120, 138, 143, 130, 129, 132, 136, 136, 123, 126, 127, 130, 116, 130, 121, 126, 128, 119, 125, 122, 110, 132, 128, 161, 130, 148, 119, 128, 115, 111, 119, 125, 117, 112, 104, 130, 132, 131, 116, 115, 122, 132, 122, 122, 115, 124, 127, 151, 133, 120, 148, 126, 130, 132, 126, 122, 131, 116, 126, 122, 126, 149, 120, 124, 129, 106, 120, 129, 148, 129, 116, 123, 144, 123, 114, 141, 130, 136, 113, 121, 124, 134, 127, 109, 125, 133, 135, 132, 111, 118, 118, 119, 141, 119, 136, 130, 118, 137, 127, 123, 113, 111, 136, 129, 118, 126, 118, 107, 143, 136, 117, 125, 121, 133, 137, 153, 114, 127, 135, 116, 133, 133, 122, 119, 120, 120, 140, 116, 128, 129, 109, 118, 124, 153, 128, 118, 144, 115, 123, 130, 113, 135, 129, 131, 115, 128, 127, 134, 114, 134, 133, 129, 120, 112, 122, 117, 129, 131, 153, 132, 120, 117, 119, 117, 115, 131, 135, 129, 122, 116, 125, 121, 130, 126, 123, 136, 131, 126, 105, 135, 125, 121, 141, 127, 133, 143, 113, 137, 123, 135, 130, 113, 131, 101, 119, 118, 132, 107, 145, 143, 135, 133, 134, 119, 114, 126, 121, 115, 123, 105, 119, 111, 130, 118, 112, 111, 133, 122, 115, 116, 119, 123, 119, 135, 115, 121, 134, 123, 134, 134, 110, 121, 130, 129, 120, 131, 132, 107, 117, 139, 129, 113, 140, 125, 120, 111, 142, 127, 133, 169, 131, 137, 107, 127, 125, 124, 112, 115, 126, 130, 121, 129, 129, 134, 124, 120, 120, 118, 118, 140, 141, 114, 124, 104, 97, 125, 125, 125, 146, 140, 125, 127, 124, 119, 118, 144, 145, 132, 108, 130, 127, 124, 147, 110, 114, 128, 124, 129, 125, 117, 121, 114, 130, 131, 143, 127, 116, 130, 134, 130, 141, 123, 132, 147, 118, 143, 130, 115, 125, 116, 131, 129, 128, 129, 119, 116, 128, 135, 149, 126, 121, 142, 115, 120, 116, 132, 126, 121, 120, 138, 129, 143, 117, 131, 138, 134, 114, 109, 112, 128, 133, 122, 119, 123, 130, 125, 138, 119, 113, 118, 117, 131, 131, 127, 115, 123, 139, 104, 123, 137, 144, 123, 123, 142, 119, 126, 118, 121, 131, 136, 146, 117, 132, 125, 143, 119, 136, 122, 120, 116, 131, 129, 136, 121, 126, 122, 133, 136, 113, 109, 112, 126, 127, 117, 118, 117, 124, 125, 123, 124, 136, 122, 123, 118, 127, 118, 116, 127, 117, 117, 119, 133, 135, 122, 113, 128, 123, 109, 117, 151, 118, 123, 125, 131, 107, 113, 118, 132, 131, 132, 132, 143, 106, 124, 121, 124, 124, 132, 121, 117, 120, 136, 122, 131, 105, 117, 126, 113, 144, 114, 123, 122, 123, 129, 122, 139, 138, 126, 108, 143, 110, 111, 130, 127, 123, 116, 129, 115, 113, 139, 112, 115, 142, 123, 119, 127, 127, 127, 135, 134, 115, 99, 119, 124, 117, 136, 123, 138, 119, 119, 115, 136, 105, 105, 131, 126, 115, 112, 118, 134, 128, 121, 129, 125, 111, 117, 109, 110, 122, 113, 145, 117, 156, 116, 146, 131, 127, 130, 117, 116, 135, 128, 127, 98, 119, 134, 122, 122, 116, 124, 111, 130, 98, 132, 112, 129, 110, 123, 118, 151, 124, 122, 129, 125, 131, 110, 123, 153, 125, 132, 125, 108, 124, 126, 102, 113, 133, 113, 132, 154, 133, 115, 135, 124, 142, 130, 124, 125, 131, 131, 120, 145, 121, 114, 126, 151, 128, 128, 117, 121, 121, 131, 128, 120, 142, 109, 125, 119, 123, 149, 135, 120, 130, 131, 123, 130, 124, 127, 124, 138, 124, 116, 141, 112, 117, 143, 142, 114, 140, 110, 123, 142, 117, 146, 100, 121, 118, 121, 131, 115, 127, 124, 122, 144, 124, 144, 116, 143, 130, 130, 113, 125, 123, 136, 121, 137, 102, 128, 115, 113, 136, 125, 129, 123, 134, 117, 139, 117, 132, 119, 117, 127, 137, 130, 108, 119, 115, 139, 121, 123, 117, 118, 125, 126, 129, 123, 133, 134, 124, 132, 146, 119, 133, 128, 144, 106, 108, 120, 115, 137, 144, 133, 124, 135, 135, 136, 127, 123, 129, 121, 120, 111, 116, 154, 118, 126, 130, 115, 126, 122, 143, 121, 124, 115, 109, 138, 136, 118, 133, 123, 110, 115, 148, 116, 123, 133, 123, 125, 119, 115, 137, 134, 125, 126, 137, 105, 132, 137, 132, 123, 121, 130, 134, 123, 151, 126, 126, 144, 119, 124, 113, 119, 125, 139, 113, 131, 113, 127, 109, 99, 121, 127, 113, 119, 111, 133, 122, 125, 121, 115, 102, 129, 117, 150, 125, 119, 123, 110, 119, 126, 129, 128, 137, 109, 133, 115, 130, 127, 116, 147, 117, 128, 124, 123, 152, 112, 136, 122, 123, 116, 115, 126, 153, 128, 122, 119, 114, 106, 130, 104, 124, 120, 135, 116, 103, 119, 112, 122, 124, 123, 140, 115, 117, 130, 124, 126, 122, 131, 127, 139, 131, 110, 123, 123, 119, 143, 125, 113, 131, 116, 118, 133, 131, 123, 117, 109, 141, 110, 124, 121, 122, 128, 117, 141, 121, 145, 125, 119, 118, 132, 115, 136, 96, 117, 147, 107, 114, 133, 131, 142, 136, 132, 143, 125, 128, 134, 140, 127, 143, 119, 119, 116, 119, 130, 126, 133, 131, 125, 132, 124, 126, 131, 116, 122, 123, 115, 124, 133, 97, 123, 124, 128, 128, 129, 104, 109, 114, 143, 135, 122, 128, 123, 127, 119, 119, 119, 125, 119, 124, 123, 137, 131, 112, 111, 125, 120, 120, 138, 125, 121, 108, 138, 124, 124, 140, 130, 142, 129, 125, 142, 127, 132, 136, 132, 125, 133, 124, 127, 129, 123, 116, 140, 126, 127, 126, 128, 123, 125, 135, 130, 133, 127, 130, 159, 122, 141, 124, 131, 147, 127, 143, 126, 130, 136, 135, 120, 127, 122, 112, 129, 125, 124, 134, 131, 139, 135, 132, 133, 122, 121, 135, 135, 147, 124, 132, 134, 127, 136, 112, 108, 117, 129, 123, 111, 128, 148, 123, 124, 126, 115, 115, 127, 133, 125, 130, 119, 134, 116, 123, 132, 123, 126, 124, 129, 123, 115, 132, 129, 122, 121, 121, 123, 124, 127, 120, 142, 113, 109, 118, 109, 137, 127, 117, 144, 120, 132, 131, 109, 130, 126, 122, 131, 117, 125, 129, 114, 126, 114, 126, 119, 128, 117, 123, 137, 119, 133, 108, 118, 153, 126, 125, 119, 129, 144, 134, 123, 115, 124, 138, 117, 135, 151, 122, 111, 109, 118, 131, 148, 131, 127, 122, 127, 120, 134, 130, 114, 128, 101, 124, 120, 131, 132, 133, 128, 114, 139, 131, 125, 125, 118, 129, 126, 119, 127, 129, 121, 131, 133, 122, 139, 136, 116, 130, 121, 140, 118, 119, 131, 125, 116, 135, 138, 121, 116, 120, 130, 122, 120, 122, 110, 130, 120, 116, 128, 133, 113, 131, 128, 130, 129, 125, 131, 116, 116, 126, 123, 110, 119, 124, 129, 126, 132, 127, 125, 148, 149, 139, 142, 127, 111, 128, 127, 114, 107, 118, 128, 119, 134, 122, 125, 128, 126, 123, 133, 122, 119, 119, 126, 120, 129, 134, 130, 129, 128, 118, 139, 130, 121, 110, 125, 126, 122, 133, 135, 128, 122, 128, 127, 120, 119, 118, 135, 110, 112, 134, 146, 131, 118, 133, 124, 120, 128, 123, 130, 111, 115, 118, 112, 123, 114, 125, 144, 143, 138, 131, 122, 133, 133, 118, 129, 129, 116, 128, 123, 119, 123, 129, 118, 122, 140, 120, 122, 148, 121, 125, 137, 146, 129, 124, 139, 119, 116, 125, 139, 136, 136, 118, 93, 114, 132, 124, 137, 89, 130, 131, 130, 133, 114, 124, 118, 123, 117, 134, 127, 111, 130, 119, 147, 112, 117, 117, 143, 126, 128, 130, 114, 128, 126, 140, 112, 116, 113, 114, 133, 128, 122, 119, 134, 127, 128, 130, 113, 114, 135, 104, 138, 132, 121, 127, 137, 134, 120, 124, 117, 128, 126, 123, 131, 133, 137, 142, 144, 133, 127, 130, 136, 136, 142, 101, 129, 145, 125, 121, 141, 127, 102, 123, 137, 143, 129, 122, 140, 110, 124, 128, 126, 122, 136, 139, 118, 122, 144, 117, 138, 149, 119, 131, 115, 130, 127, 118, 136, 128, 125, 119, 110, 120, 114, 111, 132, 142, 117, 122, 142, 115, 118, 115, 110, 126, 124, 108, 130, 122, 117, 125, 127, 119, 121, 125, 119, 120, 126, 122, 125, 147, 121, 108, 138, 123, 123, 154, 121, 123, 105, 133, 131, 131, 135, 116, 124, 112, 115, 121, 131, 113, 114, 134, 135, 114, 139, 118, 114, 129, 122, 122, 123, 133, 110, 123, 125, 154, 126, 117, 125, 140, 108, 123, 131, 115, 118, 126, 107, 111, 120, 125, 125, 131, 126, 117, 115, 115, 120, 122, 130, 139, 130, 134, 115, 149, 109, 125, 115, 128, 121, 109, 120, 124, 140, 123, 132, 139, 141, 140, 113, 144, 125, 144, 121, 113, 116, 130, 121, 111, 132, 132, 121, 143, 135, 136, 119, 110, 134, 125, 125, 105, 129, 119, 122, 135, 126, 107, 127, 124, 124, 134, 126, 121, 113, 124, 109, 105, 139, 123, 110, 120, 131, 114, 129, 127, 119, 121, 122, 120, 135, 114, 129, 130, 118, 136, 116, 127, 134, 124, 124, 117, 139, 108, 135, 101, 124, 122, 118, 125, 115, 145, 132, 128, 107, 133, 131, 110, 130, 137, 126, 120, 125, 124, 131, 132, 116, 123, 133, 114, 134, 123, 123, 125, 123, 122, 122, 128, 133, 115, 132, 125, 128, 123, 120, 136, 128, 109, 143, 121, 120, 126, 104, 136, 122, 117, 128, 113, 120, 126, 127, 144, 107, 121, 140, 127, 125, 129, 121, 123, 118, 117, 121, 121, 122, 125, 124, 126, 121, 107, 122, 127, 128, 116, 125, 119, 124, 120, 125, 119, 127, 129, 130, 131, 123, 116, 112, 138, 136, 118, 124, 122, 136, 118, 99, 125, 135, 129, 123, 111, 135, 108, 126, 116, 130, 124, 132, 117, 117, 114, 134, 122, 130, 118, 151, 126, 114, 120, 124, 145, 129, 126, 125, 125, 117, 138, 122, 124, 119, 135, 123, 131, 141, 122, 123, 139, 124, 134, 125, 140, 124, 117, 121, 113, 132, 125, 144, 106, 140, 115, 112, 113, 125, 144, 126, 121, 128, 141, 119, 133, 124, 118, 133, 129, 133, 122, 120, 120, 128, 122, 124, 107, 147, 114, 146, 133, 121, 106, 143, 126, 117, 127, 119, 120, 140, 125, 111, 139, 123, 130, 118, 116, 130, 125, 108, 120, 129, 125, 128, 135, 116, 106, 130, 126, 113, 117, 115, 117, 126, 118, 121, 117, 111, 130, 125, 122, 130, 129, 135, 132, 110, 116, 123, 137, 123, 128, 132, 130, 122, 116, 88, 136, 129, 121, 120, 118, 122, 127, 134, 107, 122, 145, 101, 99, 116, 126, 128, 122, 144, 129, 126, 129, 137, 120, 136, 111, 124, 146, 102, 121, 126, 116, 150, 111, 117, 141, 130, 151, 116, 122, 110, 132, 125, 125, 120, 120, 133, 123, 118, 137, 120, 123, 117, 116, 128, 123, 118, 131, 138, 158, 121, 129, 133, 124, 110, 106, 138, 128, 122, 133, 120, 134, 118, 142, 133, 111, 118, 107, 125, 107, 136, 128, 140, 118, 137, 135, 121, 127, 128, 119, 128, 132, 122, 117, 141, 136, 131, 126, 122, 119, 136, 118, 117, 145, 122, 117, 135, 122, 124, 137, 120, 126, 128, 132, 114, 137, 127, 133, 121, 125, 120, 143, 124, 121, 144, 136, 126, 132, 125, 124, 116, 134, 123, 132, 135, 128, 120, 123, 146, 127, 122, 124, 119, 141, 113, 125, 125, 118, 129, 121, 126, 124, 116, 111, 110, 123, 128, 120, 119, 139, 136, 117, 139, 111, 130, 117, 141, 125, 127, 120, 124, 129, 135, 121, 120, 131, 131, 134, 125, 124, 133, 113, 114, 144, 119, 130, 128, 135, 132, 133, 123, 115, 106, 128, 117, 136, 128, 122, 128, 138, 132, 147, 111, 122, 132, 124, 146, 122, 133, 121, 111, 129, 133, 120, 132, 133, 131, 124, 124, 126, 124, 134, 140, 124, 120, 127, 135, 128, 127, 123, 117, 130, 136, 115, 116, 125, 139, 116, 120, 112, 126, 110, 129, 120, 129, 142, 130, 129, 116, 106, 131, 142, 123, 134, 138, 133, 118, 112, 118, 114, 140, 149, 118, 124, 136, 131, 129, 121, 130, 130, 134, 123, 124, 121, 111, 114, 113, 132, 104, 113, 120, 119, 127, 128, 107, 141, 117, 124, 124, 138, 131, 106, 105, 140, 128, 130, 140, 117, 137, 133, 116, 141, 125, 127, 135, 112, 141, 113, 111, 124, 116, 142, 120, 118, 118, 124, 126, 128, 122, 137, 116, 125, 131, 127, 124, 128, 116, 140, 113, 129, 145, 126, 113, 131, 123, 120, 119, 124, 129, 119, 133, 138, 125, 140, 112, 139, 114, 126, 134, 142, 117, 101, 117, 138, 132, 131, 123, 119, 124, 143, 122, 125, 122, 117, 116, 126, 136, 135, 125, 129, 136, 133, 133, 135, 130, 129, 121, 135, 148, 138, 123, 122, 113, 135, 134, 140, 137, 137, 115, 114, 115, 120, 123, 140, 128, 131, 129, 139, 112, 126, 104, 122, 117, 120, 134, 140, 137, 119, 132, 121, 136, 124, 110, 141, 125, 125, 130, 143, 130, 129, 131, 118, 132, 117, 139, 122, 117, 146, 107, 122, 131, 122, 122, 120, 129, 134, 125, 120, 128, 138, 134, 142, 141, 133, 126, 123, 126, 154, 130, 137, 123, 117, 127, 129, 124, 119, 114, 133, 116, 120, 102, 116, 128, 140, 115, 108, 125, 136, 118, 127, 101, 124, 108, 120, 123, 140, 129, 132, 150, 113, 127, 122, 154, 119, 122, 122, 124, 128, 139, 120, 127, 135, 119, 124, 129, 120, 114, 124, 120, 142, 107, 131, 126, 112, 116, 131, 121, 138, 120, 129, 133, 120, 129, 124, 145, 133, 137, 108, 118, 124, 126, 124, 144, 128, 115, 125, 139, 136, 129, 116, 119, 146, 127, 125, 133, 115, 115, 130, 114, 143, 126, 120, 110, 136, 142, 136, 119, 127, 144, 133, 141, 117, 126, 136, 126, 115, 120, 114, 107, 124, 129, 121, 105, 120, 121, 122, 109, 117, 116, 135, 135, 109, 104, 123, 138, 116, 122, 130, 111, 131, 129, 111, 133, 121, 124, 114, 127, 119, 124, 130, 129, 131, 123, 117, 133, 132, 118, 119, 128, 122, 120, 132, 134, 121, 104, 128, 136, 124, 120, 122, 108, 116, 122, 143, 135, 126, 121, 114, 135, 112, 115, 106, 124, 117, 114, 129, 100, 124, 147, 146, 125, 107, 144, 116, 127, 123, 126, 133, 117, 98, 118, 126, 130, 116, 138, 129, 120, 105, 116, 138, 118, 110, 127, 154, 128, 111, 119, 136, 125, 116, 139, 119, 111, 122, 132, 126, 118, 127, 123, 123, 129, 119, 126, 132, 130, 129, 138, 125, 125, 130, 118, 113, 123, 139, 124, 115, 130, 132, 120, 122, 122, 114, 131, 129, 125, 117, 114, 119, 109, 121, 124, 144, 125, 135, 131, 121, 123, 129, 109, 126, 126, 124, 116, 133, 133, 135, 118, 116, 112, 107, 129, 134, 130, 134, 143, 150, 128, 111, 117, 138, 124, 121, 128, 125, 112, 128, 138, 137, 122, 127, 130, 114, 144, 112, 124, 117, 117, 126, 100, 120, 118, 135, 121, 133, 153, 128, 110, 148, 128, 109, 143, 116, 116, 114, 126, 124, 133, 123, 124, 128, 131, 124, 133, 122, 130, 128, 139, 129, 122, 123, 121, 123, 125, 132, 116, 115, 128, 123, 125, 118, 119, 122, 109, 144, 115, 119, 129, 135, 117, 136, 144, 127, 141, 134, 113, 136, 128, 141, 129, 121, 126, 114, 120, 136, 133, 125, 111, 123, 122, 143, 130, 131, 140, 118, 140, 127, 110, 124, 126, 128, 120, 122, 134, 141, 123, 138, 128, 126, 107, 124, 110, 122, 131, 117, 116, 125, 126, 121, 110, 139, 149, 132, 138, 135, 118, 120, 130, 128, 130, 99, 108, 137, 126, 111, 126, 119, 130, 117, 134, 126, 128, 131, 112, 123, 105, 113, 111, 119, 126, 120, 106, 128, 134, 133, 109, 113, 102, 132, 126, 129, 131, 137, 128, 135, 137, 126, 129, 135, 104, 133, 119, 127, 126, 131, 121, 120, 133, 124, 117, 125, 122, 139, 114, 132, 117, 139, 147, 136, 125, 129, 124, 123, 130, 107, 114, 119, 132, 140, 133, 121, 136, 119, 129, 118, 135, 107, 123, 123, 141, 126, 132, 129, 110, 126, 133, 118, 113, 119, 133, 139, 124, 119, 130, 141, 123, 122, 115, 145, 122, 115, 136, 128, 108, 114, 123, 136, 130, 120, 117, 127, 117, 116, 131, 119, 89, 119, 129, 134, 127, 147, 141, 125, 147, 111, 116, 113, 132, 115, 131, 131, 132, 111, 140, 123, 116, 127, 122, 127, 117, 121, 114, 134, 129, 132, 118, 140, 141, 121, 128, 105, 128, 118, 102, 124, 115, 116, 111, 140, 122, 130, 104, 128, 134, 139, 136, 107, 129, 144, 146, 138, 135, 130, 126, 122, 123, 101, 135, 121, 129, 128, 115, 118, 128, 143, 118, 132, 103, 155, 127, 124, 111, 124, 138, 147, 128, 122, 120, 121, 120, 135, 129, 110, 135, 137, 147, 113, 124, 111, 128, 127, 142, 131, 132, 141, 121, 143, 122, 133, 127, 130, 127, 122, 111, 127, 138, 115, 121, 120, 109, 124, 114, 117, 126, 135, 141, 121, 126, 104, 128, 133, 112, 124, 122, 119, 117, 140, 116, 112, 106, 146, 132, 122, 136, 112, 130, 142, 119, 140, 119, 122, 132, 121, 138, 137, 137, 106, 108, 133, 124, 135, 115, 136, 125, 116, 126, 132, 139, 123, 121, 141, 126, 114, 129, 120, 99, 109, 122, 122, 129, 145, 125, 117, 121, 110, 128, 125, 130, 130, 127, 109, 108, 139, 108, 111, 123, 130, 122, 100, 134, 129, 138, 115, 117, 124, 120, 124, 120, 104, 123, 107, 137, 121, 106, 124, 138, 137, 133, 116, 131, 126, 129, 137, 120, 131, 105, 128, 115, 127, 111, 127, 119, 150, 126, 115, 121, 126, 122, 117, 109, 129, 112, 115, 133, 127, 115, 145, 135, 138, 126, 117, 129, 110, 149, 133, 127, 115, 117, 123, 124, 125, 120, 100, 105, 131, 138, 118, 131, 137, 122, 139, 132, 132, 124, 127, 114, 117, 132, 129, 127, 126, 128, 131, 128, 134, 131, 107, 126, 120, 122, 127, 119, 118, 150, 116, 98, 134, 99, 115, 115, 103, 106, 131, 123, 141, 113, 123, 99, 124, 131, 124, 118, 115, 127, 138, 151, 115, 131, 123, 133, 119, 126, 136, 125, 140, 127, 130, 134, 114, 121, 115, 120, 119, 136, 107, 131, 126, 134, 150, 140, 119, 112, 115, 112, 137, 144, 119, 112, 140, 131, 118, 129, 132, 119, 129, 119, 116, 105, 126, 123, 128, 109, 110, 124, 119, 130, 140, 138, 124, 125, 110, 113, 129, 136, 141, 142, 123, 131, 125, 135, 123, 141, 120, 117, 139, 119, 147, 143, 122, 130, 160, 143, 115, 131, 124, 127, 119, 118, 108, 117, 128, 114, 131, 128, 130, 139, 107, 109, 133, 113, 113, 127, 135, 138, 127, 125, 127, 136, 137, 129, 128, 140, 128, 117, 113, 126, 128, 130, 124, 123, 114, 125, 133, 130, 109, 119, 119, 108, 130, 132, 132, 113, 121, 122, 125, 115, 122, 124, 123, 109, 134, 138, 118, 127, 126, 101, 135, 138, 112, 115, 123, 137, 122, 129, 132, 109, 123, 138, 114, 122, 125, 157, 115, 128, 111, 107, 148, 113, 121, 111, 113, 131, 122, 136, 139, 117, 126, 135, 121, 111, 148, 115, 109, 116, 129, 121, 124, 135, 129, 119, 135, 133, 115, 129, 115, 146, 106, 129, 126, 125, 134, 125, 145, 108, 118, 119, 132, 126, 127, 138, 118, 121, 133, 137, 130, 133, 127, 114, 124, 116, 111, 126, 118, 127, 121, 117, 127, 128, 128, 131, 126, 156, 135, 99, 102, 135, 120, 112, 122, 122, 126, 120, 111, 148, 118, 123, 126, 133, 149, 123, 129, 136, 126, 134, 125, 122, 128, 114, 127, 124, 118, 126, 118, 124, 132, 123, 117, 116, 130, 110, 126, 140, 117, 117, 123, 121, 111, 142, 119, 128, 132, 164, 121, 136, 149, 135, 119, 131, 129, 129, 124, 142, 130, 136, 140, 131, 136, 118, 137, 114, 116, 121, 139, 119, 132, 131, 151, 128, 131, 128, 131, 119, 109, 108, 150, 112, 121, 125, 121, 127, 139, 133, 125, 121, 125, 120, 125, 134, 118, 114, 113, 114, 128, 121, 134, 119, 135, 121, 119, 128, 117, 132, 129, 116, 125, 143, 132, 139, 127, 133, 119, 130, 112, 130, 119, 113, 123, 107, 119, 126, 122, 132, 130, 134, 122, 131, 127, 139, 114, 120, 121, 129, 122, 122, 130, 121, 120, 142, 127, 124, 125, 135, 128, 120, 124, 112, 131, 136, 136, 155, 105, 127, 133, 118, 138, 118, 138, 113, 129, 122, 119, 116, 126, 116, 108, 134, 119, 127, 132, 105, 123, 129, 118, 124, 122, 127, 125, 129, 119, 121, 111, 137, 113, 145, 129, 135, 130, 130, 136, 122, 138, 123, 127, 123, 136, 111, 123, 123, 138, 123, 100, 117, 118, 113, 126, 130, 116, 128, 128, 142, 105, 126, 110, 114, 140, 138, 127, 133, 122, 134, 136, 117, 113, 126, 120, 107, 116, 114, 131, 129, 108, 125, 121, 112, 127, 113, 123, 121, 118, 104, 123, 121, 111, 117, 137, 121, 130, 132, 124, 123, 122, 118, 125, 124, 127, 134, 106, 131, 123, 125, 148, 128, 120, 124, 134, 125, 138, 129, 119, 125, 135, 141, 134, 131, 113, 126, 127, 133, 122, 115, 143, 132, 119, 121, 115, 119, 142, 142, 129, 121, 94, 131, 128, 135, 146, 121, 95, 125, 116, 136, 123, 140, 137, 122, 134, 133, 135, 120, 131, 121, 128, 141, 136, 139, 128, 119, 136, 121, 123, 115, 124, 139, 125, 130, 106, 128, 132, 123, 138, 128, 118, 116, 116, 120, 126, 122, 133, 124, 130, 108, 133, 109, 118, 113, 120, 123, 135, 130, 125, 118, 115, 136, 130, 136, 124, 127, 118, 123, 144, 124, 139, 110, 103, 129, 135, 136, 125, 128, 166, 122, 119, 134, 107, 127, 127, 114, 108, 118, 123, 137, 117, 114, 135, 115, 93, 122, 136, 136, 131, 126, 127, 112, 121, 133, 132, 129, 137, 117, 135, 119, 129, 134, 129, 123, 126, 124, 139, 126, 135, 115, 111, 132, 118, 107, 139, 128, 129, 112, 126, 115, 116, 119, 117, 129, 126, 117, 130, 116, 138, 128, 115, 133, 102, 120, 137, 119, 133, 138, 120, 136, 122, 122, 122, 144, 116, 113, 123, 113, 124, 107, 134, 118, 122, 136, 122, 119, 137, 130, 128, 122, 139, 121, 126, 109, 122, 146, 108, 118, 123, 134, 106, 125, 125, 141, 128, 130, 119, 131, 117, 133, 125, 131, 103, 117, 131, 125, 125, 111, 118, 115, 127, 129, 141, 113, 112, 130, 122, 132, 135, 107, 124, 120, 113, 124, 123, 115, 137, 115, 136, 131, 132, 133, 149, 118, 114, 111, 138, 136, 130, 120, 120, 126, 119, 131, 146, 114, 139, 105, 135, 129, 146, 130, 106, 120, 124, 119, 135, 132, 131, 112, 118, 113, 116, 110, 127, 113, 141, 114, 118, 120, 123, 132, 130, 112, 121, 130, 113, 105, 139, 122, 126, 122, 122, 114, 118, 127, 151, 131, 112, 117, 134, 142, 123, 109, 123, 133, 138, 133, 131, 124, 135, 137, 131, 117, 118, 137, 129, 118, 123, 124, 117, 150, 103, 94, 125, 134, 117, 126, 131, 128, 122, 124, 109, 141, 139, 118, 145, 126, 119, 127, 137, 126, 129, 133, 133, 131, 115, 120, 132, 133, 136, 137, 103, 114, 130, 124, 111, 129, 111, 114, 118, 118, 125, 109, 132, 114, 119, 151, 123, 134, 110, 101, 133, 135, 116, 135, 108, 136, 118, 118, 116, 117, 126, 139, 111, 126, 133, 127, 112, 128, 128, 133, 116, 159, 124, 121, 135, 119, 138, 122, 124, 119, 125, 126, 141, 126, 123, 118, 113, 103, 143, 130, 127, 124, 118, 123, 131, 109, 110, 130, 126, 130, 125, 132, 111, 131, 124, 131, 128, 107, 130, 119, 123, 114, 128, 126, 135, 117, 125, 116, 122, 131, 136, 144, 127, 116, 127, 133, 121, 133, 128, 125, 133, 124, 130, 114, 121, 134, 122, 121, 132, 116, 114, 133, 138, 130, 125, 127, 125, 124, 118, 122, 139, 126, 115, 130, 117, 137, 145, 119, 112, 123, 123, 116, 104, 111, 118, 126, 117, 135, 119, 129, 132, 122, 116, 98, 147, 127, 136, 112, 129, 122, 124, 127, 119, 112, 115, 116, 115, 126, 120, 128, 113, 111, 111, 101, 128, 128, 132, 134, 132, 122, 127, 129, 125, 121, 126, 130, 131, 121, 114, 141, 124, 117, 132, 146, 126, 127, 111, 125, 136, 110, 131, 129, 116, 135, 125, 110, 123, 120, 134, 113, 137, 135, 140, 119, 114, 129, 126, 125, 121, 149, 129, 126, 113, 132, 120, 137, 126, 130, 125, 120, 130, 113, 153, 126, 130, 138, 120, 107, 124, 97, 108, 129, 142, 126, 109, 106, 102, 111, 141, 118, 122, 124, 132, 123, 123, 131, 119, 124, 127, 117, 125, 108, 112, 117, 134, 144, 126, 117, 123, 139, 144, 123, 108, 115, 139, 119, 129, 114, 132, 135, 136, 137, 133, 130, 135, 130, 113, 143, 107, 108, 139, 124, 131, 144, 130, 139, 123, 125, 135, 93, 133, 118, 120, 122, 116, 132, 124, 147, 149, 107, 104, 122, 131, 140, 117, 127, 113, 129, 130, 136, 131, 114, 124, 117, 142, 124, 119, 113, 122, 119, 116, 121, 120, 154, 127, 117, 129, 145, 122, 124, 119, 140, 99, 131, 110, 127, 129, 125, 129, 132, 121, 136, 127, 121, 133, 121, 140, 98, 116, 135, 122, 124, 120, 136, 124, 133, 130, 118, 119, 134, 124, 124, 113, 127, 92, 150, 111, 142, 106, 112, 125, 127, 117, 148, 127, 123, 131, 134, 127, 139, 130, 126, 121, 149, 124, 144, 123, 143, 129, 133, 114, 125, 120, 131, 119, 120, 128, 120, 129, 118, 129, 133, 141, 103, 122, 123, 124, 115, 109, 128, 136, 117, 133, 120, 126, 130, 78, 104, 129, 128, 113, 109, 130, 129, 119, 126, 117, 124, 117, 123, 109, 118, 123, 148, 137, 114, 119, 124, 109, 123, 116, 149, 132, 129, 126, 127, 137, 135, 143, 129, 122, 124, 116, 129, 131, 138, 117, 129, 123, 115, 118, 127, 132, 106, 122, 124, 140, 128, 125, 125, 105, 140, 138, 114, 124, 128, 122, 135, 129, 134, 145, 153, 129, 125, 129, 122, 122, 117, 130, 143, 130, 127, 127, 118, 131, 137, 133, 127, 126, 112, 115, 104, 116, 123, 126, 124, 126, 135, 135, 128, 118, 153, 138, 127, 117, 107, 136, 141, 136, 104, 129, 123, 132, 133, 128, 135, 140, 120, 142, 147, 119, 125, 143, 107, 120, 128, 112, 126, 138, 118, 129, 127, 141, 122, 113, 124, 115, 121, 101, 111, 134, 129, 127, 135, 131, 103, 115, 112, 121, 108, 128, 133, 111, 122, 129, 118, 116, 109, 130, 118, 128, 118, 127, 113, 132, 140, 110, 140, 126, 136, 107, 112, 133, 136, 120, 127, 135, 114, 137, 134, 128, 113, 126, 126, 135, 122, 152, 126, 117, 123, 117, 135, 121, 136, 117, 124, 125, 113, 143, 129, 126, 125, 147, 118, 141, 119, 157, 104, 141, 110, 116, 112, 135, 134, 121, 124, 125, 124, 126, 120, 140, 107, 108, 138, 125, 116, 116, 136, 118, 120, 125, 122, 115, 139, 123, 131, 126, 136, 123, 119, 116, 133, 118, 135, 128, 128, 125, 123, 115, 126, 125, 145, 116, 104, 121, 108, 131, 117, 120, 128, 121, 126, 128, 131, 125, 114, 113, 112, 115, 133, 111, 134, 115, 120, 116, 124, 118, 110, 117, 95, 124, 120, 130, 136, 126, 115, 137, 117, 121, 131, 135, 122, 133, 117, 119, 115, 131, 118, 118, 119, 123, 128, 123, 128, 108, 130, 129, 116, 112, 123, 127, 115, 142, 137, 127, 127, 137, 113, 122, 124, 115, 132, 123, 126, 97, 139, 150, 119, 114, 125, 131, 123, 154, 127, 112, 122, 120, 120, 141, 123, 139, 130, 140, 129, 119, 136, 123, 97, 106, 110, 127, 140, 129, 124, 144, 124, 127, 132, 136, 123, 132, 126, 125, 124, 136, 142, 140, 133, 124, 124, 140, 133, 121, 120, 125, 117, 127, 124, 126, 143, 129, 121, 120, 146, 118, 151, 113, 119, 128, 113, 129, 110, 144, 113, 130, 123, 139, 112, 106, 129, 123, 122, 120, 128, 131, 112, 127, 143, 129, 122, 125, 115, 135, 99, 126, 121, 118, 137, 112, 135, 132, 116, 118, 112, 124, 123, 142, 121, 119, 109, 126, 108, 119, 140, 135, 132, 114, 126, 138, 115, 119, 121, 130, 130, 138, 127, 137, 125, 132, 122, 115, 122, 143, 112, 120, 125, 117, 129, 112, 134, 146, 140, 140, 108, 129, 129, 138, 147, 128, 115, 123, 134, 138, 126, 132, 139, 119, 131, 127, 112, 109, 141, 127, 118, 122, 135, 132, 116, 126, 134, 111, 132, 113, 117, 120, 118, 116, 120, 122, 123, 130, 121, 125, 123, 131, 155, 127, 108, 121, 108, 138, 141, 118, 125, 143, 114, 121, 120, 129, 130, 118, 139, 118, 126, 107, 124, 136, 141, 118, 135, 127, 132, 122, 133, 132, 138, 142, 114, 133, 121, 125, 116, 116, 123, 142, 142, 104, 124, 127, 122, 140, 116, 124, 129, 120, 128, 129, 131, 121, 125, 121, 135, 122, 123, 137, 121, 133, 125, 132, 116, 132, 126, 141, 155, 105, 109, 112, 118, 128, 121, 135, 133, 117, 145, 121, 112, 129, 123, 128, 130, 116, 134, 136, 129, 135, 126, 126, 139, 125, 121, 130, 111, 127, 125, 122, 129, 131, 114, 124, 128, 126, 130, 149, 116, 138, 97, 136, 118, 121, 130, 138, 127, 112, 128, 120, 144, 123, 104, 119, 128, 134, 111, 115, 127, 121, 127, 113, 125, 110, 122, 131, 126, 127, 134, 124, 128, 141, 130, 132, 124, 126, 149, 106, 111, 136, 114, 122, 126, 107, 108, 124, 142, 129, 126, 132, 110, 123, 120, 127, 127, 124, 133, 134, 95, 131, 111, 118, 132, 124, 139, 130, 130, 120, 126, 125, 116, 128, 112, 127, 119, 134, 112, 119, 138, 128, 120, 114, 128, 130, 114, 139, 149, 123, 130, 128, 115, 121, 128, 126, 116, 123, 136, 134, 114, 119, 129, 129, 138, 123, 126, 114, 125, 136, 131, 135, 143, 140, 125, 118, 131, 117, 122, 122, 113, 117, 118, 118, 125, 114, 143, 127, 149, 103, 134, 134, 122, 132, 135, 133, 137, 126, 105, 131, 122, 119, 133, 138, 127, 121, 123, 126, 131, 133, 126, 116, 127, 115, 123, 133, 101, 112, 128, 143, 122, 137, 125, 120, 145, 142, 132, 144, 129, 130, 129, 117, 142, 121, 128, 137, 133, 115, 133, 136, 117, 121, 128, 126, 129, 111, 143, 151, 119, 133, 129, 146, 131, 133, 124, 116, 116, 126, 127, 141, 131, 126, 149, 113, 119, 108, 118, 131, 128, 122, 138, 131, 127, 118, 137, 120, 116, 104, 131, 139, 104, 105, 96, 119, 108, 139, 119, 116, 105, 130, 137, 127, 135, 134, 111, 114, 127, 141, 132, 128, 116, 131, 131, 127, 114, 134, 124, 115, 114, 147, 120, 126, 139, 129, 117, 125, 115, 128, 123, 122, 123, 120, 129, 116, 131, 130, 114, 134, 122, 134, 115, 147, 147, 129, 122, 117, 116, 131, 128, 134, 127, 133, 119, 141, 136, 102, 124, 115, 117, 114, 126, 123, 126, 131, 128, 119, 134, 121, 119, 141, 123, 104, 132, 127, 146, 121, 127, 123, 142, 139, 126, 132, 112, 130, 126, 139, 127, 109, 130, 113, 134, 124, 124, 117, 119, 117, 113, 124, 120, 104, 130, 114, 151, 111, 117, 123, 121, 119, 131, 123, 127, 126, 122, 123, 138, 127, 142, 118, 138, 118, 107, 135, 135, 110, 135, 105, 119, 125, 137, 128, 140, 104, 126, 123, 128, 119, 113, 114, 136, 115, 128, 136, 121, 125, 135, 133, 102, 132, 128, 126, 133, 116, 133, 121, 133, 139, 139, 122, 115, 123, 139, 134, 116, 116, 137, 109, 119, 134, 125, 132, 130, 136, 130, 118, 139, 124, 130, 119, 126, 124, 115, 117, 118, 145, 130, 110, 123, 145, 128, 132, 133, 142, 171, 130, 111, 108, 111, 121, 109, 113, 129, 136, 134, 120, 118, 140, 131, 133, 116, 130, 127, 121, 134, 130, 153, 119, 107, 104, 120, 138, 135, 127, 128, 118, 121, 115, 135, 127, 122, 132, 123, 122, 107, 122, 111, 120, 135, 139, 140, 117, 97, 138, 131, 102, 112, 120, 126, 138, 113, 129, 134, 105, 125, 113, 137, 125, 133, 130, 131, 133, 140, 149, 116, 126, 133, 126, 136, 115, 114, 115, 119, 135, 119, 128, 136, 126, 139, 125, 132, 113, 132, 135, 135, 131, 122, 123, 118, 102, 119, 116, 110, 133, 139, 121, 122, 119, 114, 114, 130, 136, 153, 149, 127, 92, 106, 121, 110, 119, 136, 111, 110, 119, 131, 126, 142, 119, 141, 147, 144, 116, 115, 129, 136, 131, 124, 132, 120, 110, 115, 114, 138, 127, 121, 148, 128, 129, 115, 137, 116, 134, 121, 116, 127, 122, 127, 151, 123, 134, 107, 120, 121, 129, 118, 134, 121, 115, 146, 134, 120, 115, 141, 115, 137, 123, 105, 117, 133, 129, 125, 121, 120, 120, 127, 120, 135, 137, 135, 115, 121, 115, 123, 126, 132, 130, 129, 118, 132, 135, 131, 128, 118, 127, 125, 134, 150, 126, 136, 144, 125, 115, 128, 143, 127, 132, 117, 124, 106, 127, 101, 134, 117, 126, 126, 134, 113, 143, 112, 115, 112, 128, 106, 123, 126, 145, 122, 126, 145, 135, 132, 121, 135, 137, 144, 129, 121, 116, 114, 124, 108, 145, 111, 122, 131, 126, 122, 126, 114, 128, 129, 139, 102, 135, 117, 130, 146, 106, 128, 138, 117, 113, 113, 126, 122, 128, 108, 152, 123, 131, 144, 115, 131, 117, 139, 104, 109, 109, 128, 143, 131, 135, 144, 90, 118, 128, 137, 102, 135, 132, 125, 110, 124, 138, 120, 123, 116, 112, 134, 129, 114, 136, 143, 84, 137, 120, 101, 127, 123, 115, 125, 118, 119, 117, 111, 132, 127, 132, 135, 130, 119, 132, 104, 119, 109, 121, 127, 118, 113, 113, 145, 126, 112, 91, 121, 137, 115, 134, 125, 122, 127, 116, 125, 140, 124, 114, 122, 115, 135, 131, 133, 142, 137, 123, 110, 125, 98, 107, 122, 131, 111, 117, 128, 136, 132, 124, 131, 137, 124, 108, 118, 120, 103, 118, 135, 126, 122, 133, 124, 134, 125, 115, 111, 141, 143, 107, 131, 147, 110, 119, 148, 131, 143, 122, 135, 121, 118, 120, 123, 136, 137, 129, 122, 127, 107, 116, 140, 125, 128, 138, 124, 114, 121, 117, 127, 124, 129, 134, 136, 137, 106, 131, 126, 134, 113, 112, 121, 148, 143, 121, 117, 133, 124, 120, 131, 132, 138, 130, 104, 138, 130, 119, 112, 128, 122, 118, 121, 115, 130, 131, 133, 123, 123, 148, 120, 105, 117, 128, 108, 140, 120, 109, 111, 120, 124, 132, 115, 106, 130, 121, 130, 119, 123, 126, 125, 124, 125, 133, 153, 130, 135, 118, 117, 122, 119, 126, 126, 140, 129, 127, 124, 116, 128, 128, 118, 130, 129, 125, 134, 142, 132, 122, 123, 112, 128, 108, 108, 122, 134, 129, 141, 121, 109, 122, 117, 137, 123, 109, 128, 124, 122, 130, 120, 117, 122, 125, 126, 120, 127, 105, 124, 129, 115, 122, 129, 118, 129, 123, 123, 128, 159, 125, 133, 127, 128, 126, 132, 128, 137, 136, 128, 105, 130, 124, 124, 128, 137, 133, 133, 133, 118, 128, 122, 100, 131, 136, 124, 134, 113, 137, 129, 126, 134, 108, 141, 135, 103, 116, 117, 139, 117, 120, 116, 129, 132, 129, 132, 117, 135, 138, 122, 132, 139, 119, 148, 122, 130, 143, 117, 139, 128, 128, 114, 140, 133, 104, 119, 113, 127, 113, 142, 112, 127, 149, 123, 111, 130, 113, 125, 143, 130, 106, 133, 126, 116, 99, 132, 137, 127, 120, 128, 127, 129, 125, 130, 120, 125, 123, 116, 132, 148, 124, 132, 139, 122, 126, 116, 132, 126, 123, 133, 118, 117, 121, 137, 138, 117, 121, 118, 126, 132, 124, 121, 134, 140, 130, 139, 117, 142, 120, 117, 127, 135, 118, 140, 128, 130, 120, 101, 119, 124, 123, 122, 125, 125, 131, 120, 114, 119, 133, 120, 123, 122, 116, 128, 136, 125, 122, 136, 119, 146, 115, 118, 116, 115, 132, 129, 111, 126, 129, 114, 123, 143, 143, 127, 127, 115, 132, 127, 116, 120, 113, 98, 108, 132, 117, 132, 129, 124, 128, 114, 144, 124, 123, 129, 105, 112, 111, 113, 127, 125, 149, 141, 129, 129, 126, 119, 121, 138, 110, 125, 133, 124, 137, 117, 128, 134, 120, 139, 113, 128, 126, 124, 131, 119, 116, 127, 137, 121, 130, 122, 137, 126, 134, 125, 125, 142, 138, 133, 109, 124, 132, 127, 121, 104, 121, 124, 119, 129, 134, 123, 133, 125, 127, 128, 113, 130, 143, 117, 147, 125, 129, 120, 114, 119, 128, 131, 118, 128, 114, 117, 118, 128, 127, 132, 124, 128, 115, 133, 129, 117, 132, 131, 123, 131, 129, 112, 130, 112, 114, 129, 123, 126, 127, 100, 139, 106, 111, 127, 142, 137, 132, 145, 119, 116, 113, 108, 135, 143, 126, 112, 102, 138, 131, 116, 122, 133, 108, 124, 130, 145, 99, 133, 120, 109, 130, 128, 133, 131, 137, 112, 127, 116, 127, 134, 120, 107, 122, 119, 128, 129, 107, 110, 118, 119, 117, 131, 117, 129, 124, 116, 135, 127, 142, 119, 131, 109, 132, 124, 101, 113, 130, 142, 122, 125, 117, 134, 123, 123, 123, 116, 122, 127, 121, 125, 105, 146, 120, 135, 132, 132, 143, 135, 120, 120, 97, 121, 124, 117, 117, 124, 130, 109, 124, 125, 127, 122, 134, 146, 129, 128, 110, 118, 122, 116, 125, 136, 134, 121, 120, 139, 125, 117, 129, 122, 140, 109, 136, 117, 129, 119, 120, 110, 125, 113, 114, 120, 136, 137, 125, 123, 125, 129, 134, 129, 114, 120, 122, 113, 117, 128, 117, 128, 114, 129, 123, 143, 119, 125, 122, 134, 120, 126, 125, 132, 124, 117, 127, 126, 124, 128, 125, 120, 120, 142, 138, 114, 134, 118, 115, 136, 131, 122, 125, 133, 131, 117, 126, 131, 123, 119, 125, 116, 126, 135, 116, 119, 115, 131, 128, 120, 129, 142, 118, 115, 122, 126, 128, 117, 120, 124, 122, 119, 106, 131, 99, 122, 119, 132, 134, 115, 137, 118, 135, 125, 134, 114, 132, 132, 130, 128, 120, 125, 120, 131, 123, 131, 131, 133, 127, 115, 131, 117, 133, 130, 118, 117, 110, 124, 110, 124, 124, 129, 132, 125, 118, 131, 132, 116, 124, 110, 130, 113, 114, 130, 120, 133, 138, 111, 123, 131, 119, 127, 131, 126, 120, 134, 116, 126, 118, 122, 120, 114, 135, 125, 115, 126, 130, 120, 114, 140, 132, 121, 118, 150, 122, 128, 140, 131, 122, 132, 117, 122, 137, 122, 128, 125, 122, 109, 131, 136, 119, 140, 109, 150, 130, 126, 124, 135, 101, 99, 113, 123, 136, 124, 126, 139, 134, 118, 132, 133, 140, 128, 137, 120, 131, 124, 122, 129, 113, 125, 127, 121, 127, 127, 141, 131, 137, 125, 108, 148, 107, 136, 130, 131, 121, 105, 124, 144, 133, 120, 118, 130, 112, 132, 114, 132, 127, 131, 110, 157, 140, 112, 108, 146, 114, 122, 127, 119, 104, 113, 127, 117, 140, 130, 118, 120, 122, 125, 119, 142, 122, 139, 130, 122, 134, 127, 130, 121, 126, 118, 115, 133, 123, 149, 113, 118, 122, 139, 143, 145, 139, 125, 131, 132, 114, 129, 137, 124, 118, 132, 124, 136, 131, 126, 150, 121, 137, 118, 121, 116, 131, 126, 117, 147, 130, 127, 132, 126, 126, 100, 149, 118, 139, 119, 139, 124, 121, 119, 140, 136, 122, 124, 122, 162, 127, 116, 143, 126, 139, 112, 122, 117, 117, 132, 131, 129, 141, 129, 130, 121, 128, 118, 125, 133, 116, 117, 125, 118, 121, 136, 136, 135, 130, 115, 142, 136, 113, 143, 144, 131, 128, 120, 103, 145, 120, 121, 134, 126, 123, 140, 126, 116, 129, 118, 139, 133, 143, 126, 147, 136, 122, 136, 124, 123, 131, 118, 120, 113, 122, 124, 121, 146, 136, 141, 140, 115, 127, 134, 126, 131, 143, 111, 149, 109, 127, 136, 110, 141, 120, 118, 145, 129, 154, 122, 127, 124, 117, 135, 139, 119, 125, 120, 128, 134, 129, 122, 114, 119, 120, 139, 151, 136, 130, 125, 123, 134, 128, 113, 107, 119, 121, 135, 119, 126, 132, 126, 123, 128, 127, 143, 124, 117, 131, 111, 135, 140, 115, 126, 114, 137, 133, 132, 120, 138, 133, 128, 126, 122, 128, 141, 122, 120, 124, 125, 111, 109, 118, 118, 121, 109, 126, 132, 113, 142, 132, 130, 121, 131, 134, 134, 141, 113, 128, 125, 114, 119, 134, 125, 138, 124, 135, 133, 108, 122, 124, 135, 118, 128, 141, 108, 120, 131, 133, 124, 130, 122, 119, 132, 132, 115, 137, 126, 145, 128, 132, 139, 134, 132, 125, 120, 121, 129, 133, 128, 113, 121, 131, 139, 122, 105, 141, 129, 147, 129, 132, 107, 136, 120, 110, 111, 102, 124, 112, 152, 135, 125, 126, 125, 113, 118, 112, 139, 125, 122, 158, 134, 141, 127, 116, 135, 132, 139, 119, 134, 130, 119, 123, 123, 126, 129, 104, 128, 127, 137, 115, 124, 121, 110, 122, 134, 131, 141, 136, 121, 110, 100, 134, 118, 124, 120, 122, 115, 120, 133, 135, 120, 122, 134, 132, 121, 99, 130, 141, 143, 126, 132, 113, 116, 144, 125, 122, 115, 126, 140, 115, 117, 122, 130, 133, 115, 123, 135, 146, 137, 117, 139, 142, 132, 135, 144, 118, 111, 117, 141, 125, 128, 124, 125, 110, 115, 150, 122, 113, 121, 120, 129, 100, 115, 123, 115, 83, 129, 132, 134, 130, 131, 140, 123, 135, 128, 134, 147, 128, 127, 137, 118, 121, 112, 123, 93, 119, 114, 128, 140, 138, 124, 134, 136, 129, 125, 127, 137, 124, 130, 124, 129, 139, 136, 121, 126, 120, 143, 125, 111, 117, 122, 115, 150, 119, 141, 131, 144, 124, 118, 122, 128, 115, 147, 137, 116, 116, 139, 123, 120, 132, 123, 122, 123, 134, 121, 116, 122, 121, 100, 129, 112, 143, 138, 122, 115, 118, 131, 130, 121, 135, 128, 124, 113, 133, 105, 130, 106, 137, 124, 117, 128, 131, 98, 130, 128, 120, 120, 123, 128, 124, 129, 135, 129, 145, 124, 139, 110, 137, 99, 122, 122, 129, 123, 106, 131, 122, 127, 120, 134, 135, 96, 108, 130, 119, 142, 123, 130, 114, 124, 119, 122, 129, 126, 131, 100, 153, 129, 107, 138, 132, 133, 134, 144, 127, 122, 129, 123, 120, 116, 113, 119, 125, 116, 124, 123, 115, 126, 117, 121, 103, 138, 155, 121, 119, 112, 124, 125, 114, 120, 134, 131, 132, 124, 121, 120, 132, 124, 130, 137, 130, 133, 148, 123, 136, 149, 144, 125, 117, 124, 131, 130, 122, 127, 118, 126, 121, 121, 120, 115, 137, 114, 128, 113, 130, 101, 121, 135, 128, 127, 96, 126, 111, 130, 148, 130, 136, 106, 126, 128, 122, 120, 120, 130, 130, 119, 137, 129, 132, 120, 128, 132, 113, 99, 131, 121, 114, 126, 141, 117, 128, 116, 122, 129, 140, 149, 124, 111, 118, 109, 128, 114, 107, 111, 133, 100, 123, 117, 111, 120, 109, 148, 143, 125, 89, 117, 119, 131, 121, 140, 123, 136, 113, 118, 125, 123, 132, 106, 121, 98, 136, 125, 120, 135, 124, 122, 139, 120, 131, 108, 114, 119, 133, 127, 128, 122, 129, 124, 106, 136, 132, 126, 146, 121, 134, 139, 118, 127, 137, 126, 120, 135, 120, 130, 134, 134, 128, 119, 111, 126, 129, 140, 141, 130, 125, 127, 128, 126, 132, 115, 119, 124, 131, 99, 145, 136, 124, 126, 124, 133, 133, 153, 114, 134, 120, 130, 118, 112, 128, 138, 122, 143, 141, 137, 115, 129, 126, 112, 132, 128, 114, 101, 125, 141, 135, 118, 117, 148, 138, 135, 128, 118, 120, 117, 138, 105, 119, 151, 122, 114, 118, 130, 122, 147, 129, 131, 118, 111, 131, 120, 111, 125, 128, 113, 131, 125, 121, 123, 123, 139, 118, 121, 132, 116, 126, 124, 95, 111, 129, 135, 132, 126, 119, 111, 117, 146, 119, 123, 121, 130, 125, 129, 150, 122, 123, 116, 114, 133, 119, 126, 127, 124, 137, 117, 119, 112, 128, 113, 119, 123, 120, 111, 141, 129, 125, 135, 117, 121, 119, 126, 122, 127, 118, 123, 115, 127, 110, 129, 126, 129, 137, 127, 129, 119, 127, 124, 125, 113, 127, 153, 149, 127, 112, 119, 126, 136, 120, 110, 127, 116, 111, 106, 104, 139, 136, 116, 132, 125, 111, 115, 130, 131, 115, 131, 117, 145, 109, 110, 118, 131, 123, 125, 130, 134, 145, 115, 127, 136, 112, 124, 150, 138, 115, 123, 116, 126, 131, 132, 117, 122, 133, 129, 117, 131, 117, 122, 120, 110, 122, 121, 136, 121, 103, 126, 118, 119, 132, 140, 116, 118, 112, 131, 131, 129, 130, 125, 132, 136, 140, 145, 117, 125, 124, 123, 134, 119, 145, 126, 127, 145, 114, 127, 112, 119, 115, 149, 134, 123, 124, 130, 114, 114, 109, 100, 133, 112, 118, 129, 140, 107, 124, 120, 138, 142, 124, 143, 119, 125, 122, 119, 127, 103, 113, 114, 130, 133, 119, 127, 100, 120, 121, 138, 113, 119, 122, 126, 126, 121, 130, 130, 126, 119, 122, 117, 102, 149, 136, 133, 122, 136, 120, 132, 128, 116, 131, 139, 139, 117, 117, 132, 108, 137, 131, 135, 123, 131, 130, 142, 132, 123, 112, 113, 139, 118, 130, 117, 124, 126, 112, 132, 137, 128, 119, 127, 154, 131, 123, 112, 147, 138, 129, 123, 145, 121, 125, 114, 128, 109, 139, 119, 114, 113, 122, 124, 143, 139, 121, 135, 127, 95, 106, 132, 130, 127, 127, 137, 140, 121, 113, 129, 104, 117, 109, 139, 130, 127, 118, 113, 130, 144, 125, 130, 124, 117, 115, 120, 113, 118, 122, 130, 114, 131, 133, 125, 115, 152, 125, 142, 127, 121, 119, 126, 122, 135, 128, 147, 134, 117, 127, 143, 119, 124, 131, 121, 117, 124, 110, 114, 126, 132, 105, 139, 115, 136, 124, 124, 132, 115, 119, 141, 131, 121, 121, 96, 121, 134, 117, 111, 129, 122, 117, 150, 124, 112, 130, 134, 125, 142, 130, 115, 122, 132, 114, 124, 106, 132, 121, 128, 140, 131, 128, 127, 127, 129, 128, 110, 114, 137, 123, 127, 129, 141, 113, 133, 118, 124, 111, 148, 139, 129, 126, 135, 115, 142, 123, 108, 121, 127, 123, 114, 129, 126, 117, 127, 128, 118, 135, 122, 131, 129, 125, 126, 139, 126, 127, 134, 118, 128, 128, 124, 114, 112, 135, 111, 119, 135, 126, 125, 130, 132, 117, 153, 122, 124, 131, 117, 131, 147, 135, 133, 132, 118, 127, 126, 118, 122, 127, 137, 115, 116, 124, 125, 127, 132, 117, 110, 122, 116, 114, 114, 124, 116, 113, 125, 128, 118, 124, 109, 134, 116, 135, 130, 139, 128, 120, 136, 133, 128, 126, 130, 127, 127, 146, 144, 109, 124, 99, 133, 144, 126, 123, 139, 120, 129, 122, 110, 136, 118, 116, 133, 117, 123, 122, 138, 126, 120, 118, 138, 128, 126, 117, 122, 114, 114, 132, 128, 136, 123, 121, 126, 125, 128, 131, 142, 132, 128, 136, 117, 128, 133, 104, 132, 128, 114, 128, 123, 128, 131, 118, 128, 113, 122, 115, 131, 113, 122, 124, 146, 123, 140, 121, 119, 126, 128, 123, 121, 129, 133, 117, 127, 128, 136, 125, 131, 113, 124, 136, 91, 124, 114, 126, 111, 117, 128, 112, 113, 138, 127, 137, 120, 121, 114, 116, 132, 111, 119, 126, 121, 128, 134, 133, 134, 119, 116, 124, 125, 121, 130, 123, 137, 122, 123, 138, 114, 117, 129, 133, 130, 142, 119, 135, 135, 120, 136, 125, 123, 146, 138, 120, 138, 119, 136, 116, 127, 131, 135, 127, 140, 122, 132, 143, 126, 129, 135, 137, 125, 129, 134, 110, 131, 127, 139, 107, 118, 125, 127, 130, 122, 124, 119, 123, 130, 122, 123, 122, 134, 130, 131, 120, 121, 123, 125, 123, 132, 116, 126, 119, 127, 127, 144, 122, 122, 107, 126, 114, 121, 128, 119, 126, 140, 145, 142, 117, 132, 138, 130, 172, 123, 139, 130, 147, 122, 138, 118, 133, 135, 126, 129, 125, 114, 127, 116, 141, 132, 128, 129, 126, 107, 131, 127, 134, 141, 128, 94, 117, 129, 124, 121, 147, 128, 133, 109, 114, 109, 135, 133, 135, 128, 126, 119, 136, 131, 125, 130, 118, 126, 136, 128, 108, 105, 133, 111, 121, 115, 134, 128, 140, 124, 104, 133, 119, 115, 140, 134, 119, 125, 130, 117, 119, 143, 130, 112, 126, 121, 130, 123, 127, 135, 122, 136, 120, 137, 120, 116, 127, 113, 116, 124, 137, 140, 113, 123, 128, 138, 133, 128, 105, 126, 122, 128, 106, 129, 139, 115, 125, 133, 139, 129, 130, 119, 118, 124, 118, 122, 130, 131, 104, 139, 121, 124, 133, 126, 129, 122, 120, 120, 133, 147, 131, 121, 120, 123, 120, 124, 104, 136, 125, 130, 128, 131, 129, 115, 120, 130, 128, 134, 129, 135, 120, 123, 128, 121, 108, 127, 112, 108, 114, 135, 126, 121, 130, 106, 114, 132, 137, 128, 123, 139, 115, 109, 112, 119, 121, 131, 141, 112, 117, 132, 130, 122, 132, 110, 131, 142, 124, 124, 125, 130, 130, 114, 123, 123, 128, 121, 133, 125, 126, 113, 140, 143, 124, 147, 130, 136, 138, 136, 113, 111, 126, 135, 114, 131, 137, 120, 121, 121, 131, 115, 130, 135, 132, 108, 121, 107, 136, 145, 104, 125, 134, 119, 138, 145, 123, 126, 109, 116, 135, 117, 122, 125, 118, 109, 135, 146, 139, 142, 131, 114, 136, 111, 131, 129, 113, 117, 137, 144, 143, 128, 116, 127, 122, 121, 126, 136, 129, 139, 125, 150, 124, 96, 139, 134, 108, 128, 117, 119, 135, 112, 107, 110, 125, 122, 115, 117, 116, 113, 105, 102, 127, 115, 131, 141, 150, 129, 124, 117, 120, 116, 128, 99, 129, 99, 135, 135, 123, 136, 119, 125, 107, 128, 123, 125, 162, 123, 137, 143, 123, 126, 130, 126, 120, 127, 126, 115, 138, 119, 126, 134, 120, 125, 118, 134, 132, 140, 102, 124, 120, 123, 130, 127, 120, 130, 119, 125, 117, 112, 131, 126, 134, 108, 125, 126, 138, 118, 107, 137, 115, 130, 142, 126, 116, 120, 129, 139, 123, 113, 118, 133, 141, 110, 112, 120, 136, 131, 118, 127, 123, 137, 119, 124, 125, 135, 124, 129, 119, 127, 127, 113, 144, 121, 118, 121, 125, 126, 119, 126, 134, 119, 116, 131, 120, 122, 121, 102, 116, 133, 130, 136, 114, 125, 99, 121, 130, 124, 132, 117, 130, 119, 134, 136, 100, 128, 122, 124, 127, 123, 132, 133, 113, 118, 126, 123, 147, 132, 126, 122, 125, 120, 122, 104, 124, 135, 119, 119, 129, 119, 107, 130, 117, 112, 150, 133, 124, 116, 123, 121, 123, 130, 127, 123, 123, 149, 129, 130, 125, 131, 121, 121, 123, 128, 116, 136, 112, 126, 117, 135, 105, 114, 114, 110, 124, 129, 119, 116, 138, 124, 129, 119, 119, 119, 143, 111, 135, 109, 125, 119, 116, 137, 119, 98, 121, 119, 113, 107, 118, 125, 147, 115, 112, 114, 122, 130, 134, 133, 126, 130, 130, 117, 138, 115, 132, 120, 113, 114, 110, 134, 129, 131, 134, 135, 135, 125, 130, 121, 120, 127, 141, 125, 147, 139, 130, 121, 127, 82, 119, 117, 121, 123, 131, 117, 132, 110, 130, 109, 115, 124, 135, 126, 111, 125, 133, 119, 171, 127, 126, 127, 130, 140, 136, 124, 131, 114, 136, 128, 121, 103, 131, 135, 160, 129, 128, 127, 136, 126, 125, 132, 125, 125, 123, 127, 134, 122, 133, 130, 132, 117, 134, 106, 116, 140, 122, 142, 128, 144, 125, 133, 132, 128, 125, 127, 134, 118, 119, 115, 123, 112, 122, 146, 118, 125, 127, 118, 110, 127, 120, 123, 118, 132, 131, 124, 133, 116, 139, 127, 113, 136, 130, 139, 132, 138, 129, 115, 116, 119, 136, 119, 130, 119, 133, 144, 129, 127, 124, 123, 129, 132, 124, 130, 121, 131, 115, 120, 111, 112, 97, 137, 124, 125, 137, 122, 123, 110, 128, 120, 121, 121, 129, 128, 118, 125, 125, 129, 136, 126, 126, 127, 112, 121, 125, 127, 116, 125, 128, 120, 113, 120, 126, 120, 127, 124, 126, 135, 134, 123, 122, 112, 122, 115, 122, 114, 124, 123, 137, 141, 119, 129, 132, 118, 129, 138, 138, 125, 100, 131, 123, 125, 118, 115, 131, 125, 122, 120, 125, 127, 131, 127, 130, 145, 125, 117, 126, 120, 108, 135, 120, 120, 150, 114, 116, 120, 133, 134, 128, 145, 120, 127, 136, 137, 113, 116, 131, 113, 134, 124, 135, 114, 129, 143, 111, 127, 124, 118, 121, 120, 123, 154, 114, 111, 134, 128, 118, 110, 119, 120, 108, 120, 123, 151, 104, 122, 122, 132, 133, 119, 128, 124, 147, 126, 120, 151, 120, 128, 119, 133, 107, 123, 114, 121, 133, 126, 134, 147, 118, 118, 122, 127, 119, 131, 126, 116, 92, 125, 116, 121, 119, 137, 142, 132, 126, 129, 128, 141, 122, 134, 117, 126, 135, 127, 136, 146, 128, 138, 137, 135, 130, 125, 122, 131, 113, 128, 125, 144, 118, 123, 122, 125, 112, 136, 120, 109, 124, 116, 140, 134, 118, 131, 119, 116, 116, 136, 130, 121, 109, 124, 110, 124, 126, 120, 124, 134, 118, 126, 123, 121, 134, 110, 133, 118, 123, 103, 107, 130, 107, 123, 121, 120, 135, 118, 133, 132, 133, 124, 126, 118, 106, 130, 126, 121, 118, 138, 114, 122, 123, 138, 119, 130, 150, 124, 121, 124, 126, 113, 116, 149, 106, 112, 131, 122, 144, 121, 110, 122, 115, 130, 121, 147, 122, 130, 131, 118, 112, 117, 120, 135, 126, 128, 115, 124, 137, 104, 133, 126, 108, 123, 119, 140, 111, 113, 129, 121, 131, 138, 126, 127, 122, 119, 104, 129, 136, 124, 124, 117, 134, 130, 116, 125, 124, 123, 120, 115, 139, 127, 132, 108, 150, 140, 138, 123, 143, 127, 118, 129, 112, 118, 130, 127, 114, 128, 108, 127, 134, 130, 122, 138, 124, 120, 133, 134, 133, 145, 123, 137, 127, 119, 109, 112, 130, 130, 119, 131, 134, 132, 129, 123, 116, 120, 110, 113, 143, 127, 120, 124, 122, 121, 123, 133, 119, 126, 131, 132, 121, 143, 125, 125, 139, 129, 114, 150, 120, 119, 125, 117, 142, 117, 113, 134, 132, 119, 120, 133, 126, 128, 115, 107, 128, 126, 118, 111, 109, 133, 109, 133, 135, 115, 122, 135, 123, 138, 135, 121, 140, 125, 120, 117, 114, 116, 128, 134, 130, 124, 139, 127, 114, 140, 130, 124, 123, 116, 152, 111, 119, 116, 130, 128, 121, 132, 128, 147, 139, 136, 142, 134, 141, 130, 110, 127, 124, 127, 130, 127, 123, 113, 137, 123, 123, 128, 128, 132, 115, 120, 123, 99, 105, 126, 122, 110, 130, 124, 124, 117, 138, 129, 117, 120, 135, 113, 116, 121, 120, 120, 116, 155, 122, 127, 125, 128, 115, 116, 109, 120, 120, 121, 127, 133, 129, 118, 128, 136, 129, 121, 122, 118, 125, 98, 119, 128, 114, 128, 115, 132, 110, 129, 119, 136, 118, 130, 111, 124, 115, 127, 115, 124, 123, 124, 130, 141, 132, 135, 116, 127, 116, 120, 122, 128, 121, 106, 154, 126, 112, 139, 129, 121, 129, 131, 122, 122, 138, 116, 118, 102, 143, 120, 129, 140, 127, 115, 120, 126, 100, 121, 122, 125, 130, 131, 136, 149, 143, 106, 131, 116, 109, 118, 136, 134, 132, 127, 120, 120, 141, 129, 139, 132, 121, 122, 122, 137, 108, 126, 128, 114, 139, 117, 107, 104, 130, 128, 121, 119, 135, 139, 113, 139, 120, 129, 132, 126, 134, 135, 128, 142, 126, 129, 118, 129, 122, 118, 124, 115, 140, 120, 142, 139, 136, 129, 114, 114, 135, 105, 138, 124, 117, 131, 126, 132, 126, 135, 133, 130, 136, 110, 132, 132, 127, 121, 117, 142, 139, 116, 119, 124, 133, 135, 118, 108, 126, 134, 132, 134, 131, 124, 125, 142, 137, 122, 114, 125, 128, 114, 110, 116, 127, 112, 121, 126, 142, 127, 143, 120, 127, 122, 128, 142, 128, 112, 128, 112, 119, 126, 124, 145, 141, 134, 130, 135, 132, 124, 125, 124, 144, 125, 132, 118, 124, 109, 112, 121, 133, 125, 118, 117, 122, 130, 113, 104, 118, 127, 172, 128, 148, 134, 122, 126, 155, 140, 123, 117, 121, 130, 120, 139, 96, 123, 138, 125, 137, 122, 115, 124, 137, 131, 117, 129, 131, 130, 142, 154, 122, 132, 126, 120, 127, 139, 139, 139, 132, 130, 119, 127, 132, 143, 129, 148, 147, 117, 125, 139, 106, 133, 114, 117, 127, 147, 127, 138, 129, 124, 124, 121, 124, 120, 137, 124, 135, 117, 127, 125, 114, 126, 111, 121, 112, 141, 137, 113, 122, 132, 131, 117, 140, 119, 119, 123, 131, 125, 119, 125, 139, 124, 124, 122, 142, 118, 139, 123, 132, 126, 109, 133, 144, 141, 143, 145, 126, 121, 114, 131, 107, 113, 98, 123, 118, 126, 123, 123, 127, 119, 119, 120, 111, 122, 114, 117, 130, 127, 120, 122, 131, 140, 111, 121, 115, 129, 125, 123, 121, 130, 122, 136, 124, 115, 119, 130, 122, 115, 125, 130, 120, 119, 113, 130, 139, 140, 123, 132, 118, 134, 136, 141, 121, 112, 130, 125, 133, 120, 127, 128, 102, 119, 120, 128, 123, 114, 129, 125, 121, 135, 134, 114, 136, 136, 123, 124, 127, 124, 135, 136, 127, 147, 135, 142, 147, 122, 122, 130, 143, 120, 121, 138, 130, 149, 137, 132, 128, 111, 123, 123, 116, 141, 123, 138, 128, 122, 132, 119, 129, 111, 110, 134, 138, 126, 117, 122, 139, 113, 120, 132, 118, 128, 134, 132, 134, 114, 132, 150, 125, 118, 137, 127, 128, 129, 145, 129, 130, 127, 121, 115, 128, 139, 120, 135, 140, 133, 118, 115, 125, 111, 133, 117, 130, 120, 142, 132, 132, 118, 124, 119, 108, 127, 133, 135, 121, 137, 130, 139, 119, 133, 118, 123, 114, 133, 118, 126, 120, 117, 130, 128, 140, 130, 123, 117, 133, 132, 108, 123, 139, 151, 121, 131, 130, 111, 122, 127, 110, 112, 113, 126, 124, 135, 116, 116, 135, 149, 126, 112, 118, 118, 140, 112, 127, 124, 134, 105, 145, 116, 123, 117, 120, 123, 122, 114, 114, 122, 144, 124, 136, 138, 137, 143, 121, 121, 125, 132, 128, 128, 117, 113, 130, 123, 114, 115, 153, 123, 130, 148, 139, 135, 121, 121, 131, 132, 123, 120, 149, 118, 117, 122, 131, 109, 115, 126, 113, 128, 134, 137, 124, 115, 111, 112, 118, 145, 139, 136, 133, 121, 129, 110, 137, 123, 120, 128, 134, 127, 143, 120, 139, 139, 113, 124, 124, 141, 121, 113, 114, 115, 118, 129, 146, 142, 123, 130, 117, 138, 111, 118, 127, 122, 133, 132, 126, 132, 117, 120, 121, 111, 122, 129, 126, 130, 118, 140, 123, 118, 120, 134, 128, 114, 108, 109, 128, 138, 124, 121, 123, 127, 118, 118, 126, 122, 123, 108, 160, 135, 125, 145, 103, 115, 129, 134, 138, 128, 121, 116, 120, 136, 144, 101, 118, 123, 142, 134, 125, 118, 117, 127, 129, 112, 131, 128, 98, 115, 143, 130, 124, 126, 117, 127, 130, 114, 121, 130, 138, 126, 114, 141, 134, 115, 139, 135, 103, 128, 128, 120, 124, 123, 143, 147, 120, 129, 114, 119, 134, 120, 124, 128, 122, 119, 117, 131, 140, 133, 136, 136, 116, 130, 123, 120, 137, 112, 117, 115, 124, 147, 123, 114, 115, 117, 136, 126, 131, 117, 133, 121, 127, 138, 135, 122, 130, 138, 136, 117, 129, 114, 131, 120, 117, 124, 120, 133, 132, 132, 133, 120, 122, 126, 139, 116, 140, 105, 131, 130, 130, 117, 131, 129, 138, 112, 135, 121, 125, 99, 115, 124, 138, 131, 134, 113, 117, 131, 126, 133, 115, 114, 117, 121, 124, 121, 137, 109, 130, 133, 147, 132, 130, 120, 132, 121, 124, 109, 142, 118, 133, 127, 123, 129, 124, 135, 123, 128, 131, 135, 113, 126, 109, 121, 120, 131, 135, 125, 113, 131, 118, 134, 128, 116, 119, 128, 111, 119, 109, 118, 125, 129, 120, 137, 132, 128, 132, 138, 133, 134, 118, 110, 139, 120, 147, 119, 123, 127, 132, 105, 132, 111, 114, 133, 132, 115, 125, 116, 129, 122, 135, 133, 122, 133, 138, 116, 151, 129, 120, 106, 117, 128, 124, 126, 140, 127, 118, 125, 118, 122, 130, 130, 122, 143, 129, 121, 117, 134, 132, 130, 113, 134, 127, 121, 137, 124, 115, 147, 121, 118, 125, 130, 125, 134, 127, 133, 125, 129, 121, 119, 117, 137, 121, 110, 139, 138, 100, 146, 119, 113, 100, 127, 121, 125, 118, 114, 126, 130, 102, 129, 113, 126, 125, 143, 126, 152, 120, 139, 117, 114, 119, 155, 135, 141, 123, 123, 119, 112, 118, 123, 138, 123, 113, 126, 119, 131, 115, 130, 117, 151, 114, 125, 110, 120, 126, 122, 130, 109, 127, 125, 114, 134, 126, 113, 134, 125, 119, 129, 118, 113, 117, 117, 108, 137, 121, 131, 109, 133, 122, 127, 140, 126, 120, 148, 123, 139, 122, 136, 119, 116, 118, 143, 108, 127, 117, 125, 141, 138, 118, 121, 131, 150, 130, 126, 121, 125, 130, 132, 133, 126, 139, 128, 117, 138, 128, 121, 134, 99, 112, 126, 125, 123, 121, 120, 134, 140, 126, 117, 122, 127, 149, 122, 130, 111, 127, 96, 115, 131, 116, 106, 132, 129, 115, 133, 130, 126, 126, 112, 128, 113, 143, 120, 118, 133, 113, 121, 105, 128, 116, 134, 139, 113, 141, 130, 108, 141, 128, 107, 114, 132, 120, 112, 126, 108, 126, 122, 124, 124, 135, 120, 136, 127, 124, 122, 136, 111, 119, 130, 126, 121, 123, 112, 131, 95, 132, 113, 129, 120, 116, 122, 125, 119, 121, 131, 140, 131, 136, 130, 133, 122, 119, 124, 107, 132, 149, 135, 111, 124, 148, 117, 122, 135, 139, 125, 99, 125, 111, 124, 115, 103, 145, 125, 119, 133, 127, 122, 119, 140, 122, 125, 132, 121, 126, 122, 123, 122, 114, 135, 102, 117, 134, 139, 115, 139, 115, 133, 133, 138, 129, 116, 124, 136, 110, 128, 112, 125, 128, 113, 134, 137, 124, 137, 148, 128, 134, 147, 138, 117, 130, 132, 130, 134, 131, 127, 122, 145, 138, 112, 124, 117, 115, 129, 137, 120, 139, 125, 130, 126, 126, 127, 124, 137, 127, 137, 131, 127, 127, 129, 132, 123, 98, 115, 115, 136, 119, 127, 128, 125, 113, 129, 131, 128, 118, 121, 137, 109, 123, 138, 128, 98, 128, 127, 122, 119, 128, 102, 112, 124, 115, 125, 110, 122, 126, 112, 116, 132, 127, 124, 122, 113, 132, 121, 113, 129, 119, 142, 106, 121, 116, 126, 122, 134, 118, 123, 126, 125, 126, 135, 120, 148, 132, 130, 122, 149, 123, 127, 124, 141, 119, 134, 123, 118, 142, 119, 112, 112, 127, 110, 125, 117, 111, 119, 124, 131, 128, 136, 121, 142, 121, 135, 105, 132, 118, 130, 122, 119, 109, 140, 113, 143, 131, 132, 122, 119, 123, 129, 128, 146, 118, 145, 126, 129, 102, 116, 105, 130, 127, 119, 132, 114, 134, 118, 122, 121, 130, 107, 131, 124, 127, 133, 133, 139, 134, 136, 111, 119, 104, 142, 128, 119, 121, 101, 116, 113, 123, 128, 136, 141, 146, 116, 116, 127, 126, 137, 125, 121, 117, 135, 126, 125, 118, 137, 130, 132, 129, 117, 153, 114, 138, 128, 138, 120, 141, 121, 121, 120, 126, 108, 139, 116, 114, 113, 129, 126, 122, 124, 118, 135, 113, 135, 105, 127, 128, 131, 144, 108, 141, 139, 128, 135, 142, 114, 128, 122, 129, 132, 108, 133, 118, 102, 133, 116, 110, 146, 112, 124, 122, 112, 120, 123, 125, 118, 123, 124, 130, 114, 127, 135, 121, 125, 127, 139, 118, 138, 124, 114, 124, 127, 151, 132, 125, 136, 131, 109, 136, 114, 115, 120, 110, 118, 119, 128, 128, 129, 136, 131, 137, 126, 119, 124, 118, 127, 136, 136, 131, 111, 121, 117, 146, 134, 128, 130, 141, 131, 129, 130, 130, 122, 127, 129, 117, 137, 128, 122, 132, 134, 117, 131, 116, 135, 126, 141, 124, 146, 126, 132, 127, 112, 112, 125, 126, 135, 137, 140, 119, 130, 118, 124, 120, 122, 123, 117, 120, 133, 143, 136, 139, 103, 134, 135, 125, 124, 126, 131, 117, 110, 108, 124, 112, 138, 131, 112, 115, 110, 99, 117, 120, 126, 126, 126, 133, 116, 130, 127, 125, 130, 137, 115, 124, 118, 116, 123, 131, 116, 125, 147, 131, 142, 147, 127, 125, 144, 136, 125, 129, 138, 127, 125, 132, 157, 129, 104, 113, 123, 119, 121, 129, 129, 126, 124, 131, 146, 115, 112, 127, 112, 156, 165, 120, 118, 115, 129, 139, 136, 118, 112, 136, 113, 130, 127, 120, 127, 126, 132, 128, 109, 125, 130, 148, 112, 114, 127, 157, 109, 138, 124, 121, 107, 125, 121, 122, 129, 134, 124, 132, 130, 137, 120, 122, 133, 135, 123, 119, 121, 114, 111, 129, 128, 113, 143, 103, 135, 133, 124, 127, 136, 134, 137, 122, 119, 107, 118, 126, 110, 123, 127, 106, 111, 109, 97, 125, 120, 118, 126, 107, 109, 124, 122, 115, 116, 136, 127, 107, 139, 127, 112, 125, 131, 127, 124, 132, 124, 121, 105, 123, 111, 116, 132, 135, 108, 124, 126, 98, 127, 125, 139, 119, 139, 130, 141, 126, 128, 113, 141, 100, 115, 116, 136, 108, 136, 129, 112, 115, 140, 134, 114, 119, 144, 126, 124, 135, 133, 117, 137, 114, 128, 116, 129, 118, 117, 135, 102, 132, 131, 134, 119, 136, 131, 135, 125, 140, 126, 125, 116, 143, 122, 129, 118, 134, 127, 129, 114, 123, 138, 133, 142, 125, 140, 151, 119, 128, 138, 124, 111, 126, 129, 121, 125, 126, 128, 116, 121, 131, 126, 124, 118, 137, 134, 137, 125, 124, 109, 113, 123, 118, 131, 100, 138, 149, 140, 132, 125, 125, 121, 120, 134, 138, 127, 124, 120, 123, 107, 136, 131, 136, 123, 118, 129, 147, 140, 120, 124, 118, 123, 128, 127, 128, 120, 121, 125, 119, 122, 138, 124, 115, 120, 124, 140, 114, 124, 131, 121, 135, 121, 150, 118, 119, 122, 122, 120, 121, 131, 122, 120, 102, 109, 119, 141, 109, 133, 106, 137, 137, 116, 126, 125, 118, 122, 119, 135, 125, 112, 125, 124, 112, 135, 145, 159, 114, 123, 110, 101, 119, 121, 118, 115, 120, 129, 126, 131, 118, 123, 115, 141, 123, 140, 135, 107, 129, 123, 108, 121, 127, 131, 135, 127, 126, 115, 139, 121, 118, 127, 131, 152, 144, 119, 132, 127, 135, 134, 116, 130, 126, 119, 118, 144, 113, 128, 149, 120, 132, 131, 117, 121, 122, 126, 124, 112, 124, 127, 118, 122, 115, 128, 123, 134, 107, 130, 127, 115, 121, 132, 126, 125, 136, 108, 127, 119, 112, 140, 113, 123, 115, 118, 114, 108, 132, 126, 154, 125, 123, 133, 129, 118, 120, 123, 110, 126, 113, 127, 132, 154, 126, 139, 104, 135, 122, 137, 125, 146, 122, 122, 124, 118, 147, 130, 107, 123, 129, 124, 122, 114, 115, 121, 121, 138, 132, 124, 111, 129, 113, 120, 120, 107, 126, 132, 149, 111, 126, 119, 137, 120, 128, 125, 117, 118, 121, 125, 125, 122, 129, 107, 109, 135, 118, 116, 127, 121, 153, 135, 113, 117, 125, 114, 140, 133, 126, 123, 120, 134, 125, 115, 131, 130, 125, 113, 120, 138, 127, 145, 135, 118, 126, 136, 135, 122, 129, 108, 134, 119, 106, 131, 126, 112, 123, 108, 125, 115, 128, 117, 123, 122, 130, 137, 107, 138, 115, 139, 131, 130, 124, 114, 117, 128, 119, 128, 125, 134, 129, 117, 128, 121, 124, 127, 136, 149, 122, 143, 132, 120, 133, 105, 120, 122, 107, 119, 129, 118, 131, 122, 120, 130, 133, 129, 123, 136, 112, 132, 114, 104, 124, 119, 149, 128, 113, 134, 131, 128, 133, 125, 138, 141, 125, 97, 117, 125, 120, 122, 122, 127, 121, 111, 110, 103, 124, 122, 126, 125, 135, 120, 118, 118, 113, 138, 117, 139, 124, 122, 133, 117, 128, 129, 115, 142, 123, 131, 117, 125, 115, 133, 125, 119, 119, 135, 119, 135, 130, 129, 128, 131, 135, 123, 121, 130, 124, 141, 145, 126, 119, 122, 124, 116, 134, 131, 122, 137, 126, 109, 135, 125, 124, 112, 114, 143, 123, 118, 147, 136, 134, 134, 134, 116, 117, 105, 111, 123, 116, 119, 128, 159, 119, 124, 110, 134, 133, 115, 132, 130, 112, 131, 139, 117, 121, 133, 127, 132, 119, 138, 138, 140, 153, 136, 134, 117, 125, 116, 115, 120, 133, 140, 145, 124, 139, 124, 122, 136, 142, 130, 107, 120, 123, 130, 141, 141, 149, 132, 120, 123, 117, 133, 131, 104, 128, 126, 140, 126, 135, 124, 130, 117, 121, 115, 119, 130, 114, 112, 114, 112, 123, 132, 130, 120, 124, 126, 119, 125, 122, 116, 120, 165, 120, 127, 117, 136, 113, 124, 106, 123, 132, 128, 125, 128, 110, 128, 134, 143, 125, 133, 122, 112, 112, 129, 134, 127, 131, 120, 111, 123, 113, 124, 114, 132, 124, 135, 129, 122, 127, 119, 143, 137, 124, 122, 127, 129, 121, 116, 135, 126, 130, 120, 132, 127, 129, 132, 130, 155, 122, 124, 132, 129, 129, 124, 122, 122, 127, 117, 134, 120, 117, 117, 194, 105, 115, 112, 125, 120, 150, 126, 134, 148, 118, 147, 120, 111, 141, 130, 111, 120, 127, 122, 115, 117, 150, 135, 121, 126, 142, 118, 120, 122, 131, 117, 139, 116, 145, 128, 158, 124, 122, 140, 134, 118, 116, 144, 128, 128, 134, 128, 117, 117, 132, 124, 126, 132, 123, 111, 116, 119, 121, 132, 125, 116, 138, 120, 132, 124, 127, 131, 118, 121, 118, 123, 130, 134, 120, 136, 139, 116, 126, 113, 134, 112, 138, 131, 134, 131, 124, 125, 120, 129, 121, 126, 134, 130, 135, 131, 117, 139, 108, 138, 114, 115, 119, 139, 124, 129, 152, 122, 119, 129, 126, 121, 107, 124, 129, 134, 112, 134, 126, 106, 113, 111, 127, 125, 150, 119, 132, 127, 154, 123, 138, 105, 113, 129, 138, 132, 122, 114, 116, 130, 113, 118, 124, 120, 106, 123, 134, 144, 152, 129, 116, 109, 110, 113, 118, 114, 115, 130, 120, 125, 107, 123, 128, 123, 122, 127, 115, 145, 121, 124, 116, 131, 135, 125, 118, 114, 145, 125, 131, 123, 134, 127, 109, 126, 132, 136, 130, 123, 110, 109, 123, 137, 119, 128, 129, 131, 132, 125, 104, 125, 116, 140, 118, 108, 103, 128, 139, 130, 114, 129, 148, 118, 131, 133, 119, 146, 138, 128, 124, 99, 123, 116, 120, 126, 140, 126, 123, 130, 131, 133, 131, 124, 121, 143, 112, 99, 98, 137, 137, 122, 134, 135, 140, 129, 100, 125, 130, 141, 118, 129, 128, 98, 106, 129, 119, 133, 121, 117, 132, 130, 123, 123, 104, 147, 152, 144, 124, 115, 114, 125, 142, 120, 109, 126, 129, 110, 91, 129, 123, 127, 126, 111, 134, 137, 114, 140, 109, 111, 139, 154, 122, 120, 118, 112, 139, 121, 123, 123, 138, 128, 120, 118, 115, 131, 108, 138, 123, 131, 116, 142, 123, 144, 130, 125, 127, 119, 134, 121, 118, 104, 139, 116, 128, 132, 128, 143, 121, 130, 130, 110, 113, 118, 132, 113, 122, 130, 120, 128, 129, 124, 93, 125, 123, 109, 136, 130, 123, 130, 116, 147, 131, 100, 135, 116, 124, 129, 128, 107, 130, 104, 115, 140, 125, 121, 132, 113, 113, 140, 96, 135, 122, 132, 121, 114, 129, 117, 127, 138, 122, 125, 113, 109, 123, 122, 137, 134, 120, 102, 117, 126, 135, 144, 104, 125, 132, 124, 131, 106, 131, 115, 119, 130, 132, 123, 133, 119, 156, 129, 138, 126, 130, 133, 143, 119, 116, 137, 112, 115, 130, 141, 116, 129, 112, 120, 126, 120, 114, 124, 122, 137, 122, 134, 118, 137, 107, 140, 106, 147, 154, 120, 128, 129, 132, 109, 119, 127, 128, 117, 123, 118, 137, 122, 134, 125, 138, 122, 125, 126, 110, 119, 119, 116, 148, 137, 117, 124, 124, 122, 112, 111, 130, 129, 133, 125, 120, 125, 102, 140, 118, 147, 115, 132, 121, 115, 123, 134, 137, 124, 128, 112, 118, 122, 133, 107, 117, 137, 122, 104, 129, 128, 136, 94, 140, 134, 132, 105, 125, 105, 141, 126, 106, 114, 128, 116, 137, 123, 126, 130, 132, 130, 117, 122, 131, 132, 119, 141, 124, 121, 122, 123, 127, 121, 134, 116, 112, 116, 123, 121, 121, 106, 151, 125, 114, 123, 126, 128, 124, 129, 117, 122, 136, 135, 95, 120, 111, 124, 137, 117, 156, 125, 125, 129, 135, 126, 125, 146, 139, 139, 129, 144, 120, 126, 101, 124, 118, 137, 112, 112, 124, 124, 120, 126, 125, 124, 129, 142, 123, 126, 138, 130, 113, 130, 142, 124, 117, 113, 114, 127, 125, 120, 129, 131, 109, 140, 131, 114, 125, 121, 155, 113, 130, 122, 121, 101, 139, 150, 127, 135, 136, 126, 118, 132, 151, 134, 124, 116, 133, 132, 143, 122, 98, 115, 133, 123, 122, 119, 118, 130, 113, 120, 127, 102, 102, 133, 125, 128, 126, 128, 134, 127, 131, 113, 130, 114, 135, 129, 122, 145, 132, 128, 126, 115, 117, 130, 113, 113, 107, 131, 143, 110, 126, 114, 121, 127, 142, 124, 125, 138, 142, 122, 67, 104, 127, 119, 147, 115, 117, 121, 120, 124, 126, 131, 117, 135, 132, 137, 116, 133, 131, 119, 136, 114, 119, 127, 136, 123, 116, 122, 109, 118, 129, 119, 133, 126, 129, 116, 139, 130, 115, 122, 127, 111, 120, 125, 137, 127, 127, 128, 120, 126, 127, 116, 124, 127, 118, 134, 109, 111, 130, 141, 141, 118, 129, 131, 134, 134, 134, 104, 133, 127, 130, 127, 119, 124, 136, 121, 134, 133, 106, 132, 129, 114, 129, 135, 125, 121, 121, 109, 125, 109, 130, 128, 128, 129, 130, 121, 130, 124, 114, 122, 135, 126, 130, 137, 112, 136, 102, 127, 139, 75, 130, 99, 141, 122, 132, 119, 117, 127, 131, 131, 125, 146, 127, 112, 134, 141, 127, 150, 112, 125, 121, 127, 140, 121, 116, 124, 111, 114, 126, 132, 111, 128, 125, 121, 125, 106, 119, 128, 125, 117, 111, 103, 115, 140, 123, 121, 125, 135, 118, 117, 137, 130, 139, 123, 126, 149, 112, 147, 123, 131, 117, 129, 101, 118, 128, 133, 129, 137, 118, 123, 124, 124, 123, 126, 128, 113, 124, 116, 122, 105, 128, 129, 121, 126, 113, 130, 122, 130, 116, 107, 142, 124, 128, 125, 125, 120, 137, 142, 136, 126, 142, 141, 124, 137, 118, 113, 129, 123, 122, 125, 123, 129, 132, 118, 132, 126, 127, 110, 120, 114, 132, 129, 141, 116, 110, 126, 126, 119, 128, 114, 136, 124, 130, 134, 151, 131, 121, 120, 120, 126, 128, 125, 118, 140, 120, 112, 120, 130, 129, 123, 130, 120, 124, 150, 127, 152, 133, 126, 122, 128, 113, 109, 136, 116, 138, 120, 141, 134, 124, 120, 106, 131, 110, 121, 139, 133, 120, 114, 133, 123, 121, 136, 129, 130, 129, 134, 110, 142, 126, 121, 123, 136, 131, 140, 117, 110, 124, 120, 112, 109, 116, 140, 132, 127, 136, 123, 131, 115, 115, 132, 125, 115, 118, 133, 121, 115, 120, 142, 126, 113, 118, 134, 111, 138, 124, 118, 124, 126, 125, 108, 130, 128, 151, 127, 136, 118, 129, 109, 120, 124, 130, 129, 118, 112, 134, 139, 133, 116, 115, 117, 113, 132, 135, 135, 117, 135, 126, 136, 109, 139, 120, 104, 120, 115, 143, 135, 131, 125, 114, 128, 128, 141, 116, 140, 126, 127, 127, 116, 117, 118, 120, 116, 136, 120, 133, 115, 125, 118, 115, 113, 120, 122, 128, 126, 114, 135, 114, 114, 145, 135, 140, 124, 120, 131, 134, 135, 138, 102, 127, 136, 127, 110, 122, 131, 132, 125, 140, 127, 116, 117, 112, 120, 148, 124, 116, 132, 128, 130, 129, 130, 105, 139, 107, 131, 102, 128, 122, 115, 111, 127, 115, 143, 109, 123, 116, 130, 136, 138, 129, 118, 123, 138, 126, 132, 148, 121, 117, 129, 102, 125, 136, 117, 109, 123, 130, 113, 138, 114, 119, 126, 124, 139, 150, 125, 119, 129, 114, 127, 125, 134, 132, 136, 134, 131, 115, 129, 144, 119, 118, 117, 128, 122, 107, 136, 106, 124, 126, 108, 130, 123, 100, 128, 147, 125, 111, 146, 142, 139, 134, 147, 122, 134, 112, 128, 112, 130, 116, 117, 140, 142, 115, 118, 92, 137, 142, 120, 120, 115, 127, 121, 135, 107, 125, 121, 109, 115, 124, 128, 111, 128, 132, 114, 120, 147, 129, 100, 138, 139, 143, 147, 125, 139, 127, 136, 115, 130, 134, 130, 119, 125, 141, 139, 116, 131, 128, 125, 123, 123, 138, 131, 105, 118, 144, 132, 118, 109, 125, 114, 115, 122, 130, 136, 130, 122, 144, 121, 119, 147, 127, 129, 110, 125, 136, 125, 123, 122, 122, 127, 128, 132, 138, 119, 140, 135, 134, 125, 137, 118, 119, 115, 118, 109, 123, 117, 126, 111, 140, 118, 124, 113, 115, 121, 120, 135, 112, 149, 113, 139, 136, 141, 144, 132, 129, 139, 123, 118, 137, 136, 120, 111, 140, 107, 115, 123, 132, 128, 131, 103, 115, 135, 112, 131, 122, 125, 118, 116, 105, 122, 127, 135, 128, 122, 115, 118, 130, 120, 110, 151, 121, 132, 123, 134, 135, 124, 99, 113, 128, 132, 115, 116, 130, 126, 128, 117, 135, 147, 151, 122, 107, 134, 124, 142, 136, 107, 123, 139, 111, 123, 125, 112, 122, 127, 141, 111, 129, 124, 116, 138, 128, 125, 125, 118, 112, 115, 138, 121, 144, 121, 128, 133, 126, 120, 139, 115, 129, 137, 135, 132, 112, 135, 135, 111, 116, 141, 125, 133, 119, 140, 137, 127, 121, 144, 146, 107, 133, 94, 109, 136, 112, 129, 128, 120, 100, 129, 126, 126, 113, 117, 120, 124, 114, 127, 114, 122, 116, 130, 135, 139, 105, 126, 133, 108, 123, 134, 115, 119, 146, 130, 120, 141, 118, 122, 124, 125, 139, 123, 135, 119, 107, 124, 120, 134, 136, 141, 131, 120, 144, 130, 122, 124, 130, 129, 111, 123, 138, 124, 124, 121, 135, 132, 118, 112, 132, 124, 147, 125, 117, 116, 133, 123, 118, 109, 123, 126, 125, 124, 129, 151, 123, 129, 126, 112, 125, 125, 144, 103, 107, 126, 132, 109, 101, 138, 128, 144, 148, 110, 131, 117, 117, 131, 128, 132, 133, 123, 129, 124, 114, 132, 127, 75, 118, 137, 125, 143, 125, 120, 131, 134, 143, 121, 93, 119, 136, 134, 123, 126, 140, 130, 132, 112, 114, 132, 114, 97, 149, 121, 114, 120, 116, 136, 118, 125, 134, 131, 113, 131, 127, 118, 124, 130, 123, 134, 129, 128, 137, 119, 119, 123, 106, 120, 123, 129, 120, 116, 127, 113, 129, 124, 127, 128, 116, 131, 126, 140, 131, 112, 130, 127, 123, 138, 125, 133, 122, 125, 116, 125, 131, 139, 123, 128, 117, 137, 119, 115, 117, 124, 128, 105, 126, 115, 127, 121, 115, 128, 138, 118, 100, 125, 101, 97, 120, 136, 151, 139, 133, 124, 127, 124, 129, 119, 127, 122, 112, 113, 130, 113, 126, 122, 118, 141, 118, 112, 119, 119, 132, 123, 119, 138, 118, 121, 123, 136, 122, 133, 123, 143, 108, 124, 108, 119, 133, 129, 110, 112, 126, 120, 108, 135, 125, 121, 143, 130, 137, 125, 91, 120, 128, 128, 129, 124, 135, 136, 131, 131, 143, 121, 123, 124, 130, 143, 109, 140, 125, 113, 124, 139, 133, 134, 112, 133, 149, 126, 116, 124, 132, 112, 122, 130, 114, 108, 109, 112, 122, 141, 133, 137, 127, 124, 126, 124, 117, 114, 114, 120, 120, 113, 157, 126, 126, 133, 127, 124, 148, 140, 132, 150, 126, 128, 142, 126, 152, 137, 127, 124, 115, 111, 110, 143, 110, 117, 117, 110, 135, 108, 120, 125, 146, 116, 122, 122, 115, 130, 125, 129, 152, 119, 120, 121, 111, 138, 117, 108, 145, 128, 128, 123, 125, 121, 145, 117, 123, 126, 109, 124, 135, 123, 124, 108, 114, 124, 131, 116, 112, 137, 133, 121, 130, 140, 130, 120, 101, 114, 128, 124, 131, 120, 113, 136, 131, 124, 121, 125, 130, 125, 108, 100, 119, 128, 118, 129, 141, 116, 145, 142, 132, 125, 124, 119, 129, 142, 138, 133, 129, 107, 135, 121, 138, 139, 122, 123, 128, 126, 134, 123, 114, 114, 124, 119, 133, 139, 132, 117, 134, 118, 119, 127, 127, 128, 147, 129, 120, 126, 126, 121, 129, 116, 115, 137, 124, 112, 122, 124, 126, 122, 138, 121, 132, 139, 119, 117, 139, 108, 113, 122, 117, 129, 134, 137, 128, 138, 100, 141, 113, 119, 124, 129, 118, 121, 149, 113, 119, 131, 119, 129, 116, 100, 114, 121, 130, 142, 131, 141, 122, 138, 133, 121, 108, 143, 144, 133, 116, 98, 137, 129, 123, 114, 124, 114, 128, 135, 115, 121, 126, 127, 140, 115, 127, 132, 116, 126, 120, 131, 131, 122, 128, 123, 120, 121, 142, 131, 127, 142, 125, 112, 127, 122, 110, 126, 116, 118, 120, 128, 122, 132, 136, 127, 114, 109, 127, 114, 123, 133, 123, 110, 117, 112, 135, 122, 125, 121, 123, 123, 111, 110, 133, 119, 115, 125, 128, 116, 138, 109, 117, 124, 127, 124, 126, 124, 131, 120, 142, 142, 123, 132, 129, 144, 125, 123, 122, 119, 128, 139, 136, 142, 120, 113, 137, 121, 126, 115, 132, 132, 138, 125, 123, 118, 134, 153, 112, 114, 140, 111, 111, 140, 143, 133, 125, 136, 133, 132, 132, 119, 96, 124, 121, 136, 121, 134, 123, 139, 136, 94, 100, 140, 150, 132, 128, 124, 109, 130, 146, 116, 130, 142, 113, 129, 136, 117, 114, 111, 113, 129, 147, 135, 132, 132, 124, 129, 113, 133, 130, 131, 114, 130, 132, 108, 143, 128, 114, 118, 127, 119, 124, 135, 117, 119, 128, 108, 114, 124, 146, 126, 117, 127, 99, 132, 132, 112, 123, 137, 145, 138, 123, 118, 116, 123, 126, 128, 118, 124, 130, 128, 126, 137, 134, 117, 117, 125, 132, 119, 118, 115, 109, 132, 126, 132, 116, 101, 137, 144, 111, 147, 113, 137, 96, 133, 126, 119, 136, 142, 123, 135, 115, 136, 139, 114, 130, 121, 128, 114, 115, 105, 148, 111, 114, 123, 123, 120, 136, 129, 135, 119, 125, 129, 105, 117, 127, 117, 123, 114, 148, 121, 137, 135, 110, 129, 130, 122, 119, 114, 112, 96, 140, 126, 134, 119, 137, 134, 127, 125, 119, 133, 107, 122, 109, 115, 138, 132, 116, 110, 134, 127, 136, 132, 125, 129, 125, 140, 127, 132, 118, 123, 123, 120, 117, 135, 134, 121, 148, 122, 120, 131, 111, 110, 109, 125, 104, 132, 118, 130, 117, 117, 132, 132, 115, 114, 128, 146, 132, 134, 123, 113, 129, 97, 122, 124, 119, 136, 120, 112, 122, 108, 110, 123, 109, 131, 133, 118, 114, 117, 120, 129, 135, 119, 132, 128, 137, 130, 143, 117, 145, 115, 126, 125, 158, 116, 117, 120, 115, 99, 138, 122, 118, 136, 138, 99, 122, 130, 123, 120, 108, 139, 129, 129, 137, 123, 130, 127, 125, 145, 117, 124, 117, 136, 125, 131, 113, 132, 129, 120, 118, 121, 129, 143, 115, 111, 105, 113, 139, 127, 116, 122, 123, 124, 126, 132, 134, 123, 117, 117, 129, 113, 114, 135, 137, 114, 110, 135, 118, 130, 133, 122, 117, 118, 104, 126, 125, 141, 118, 122, 131, 121, 128, 123, 129, 103, 129, 131, 111, 116, 129, 132, 118, 132, 126, 133, 142, 147, 125, 119, 124, 120, 111, 115, 110, 121, 135, 113, 120, 111, 121, 139, 125, 127, 122, 125, 138, 124, 128, 138, 113, 133, 121, 137, 125, 121, 132, 119, 126, 110, 122, 104, 128, 130, 98, 133, 135, 105, 141, 129, 128, 128, 136, 132, 111, 140, 139, 131, 129, 128, 113, 129, 128, 108, 145, 127, 131, 125, 118, 131, 111, 121, 118, 126, 122, 102, 118, 119, 128, 130, 140, 114, 133, 123, 88, 123, 141, 117, 124, 137, 116, 130, 139, 130, 120, 116, 119, 131, 110, 128, 123, 123, 129, 145, 129, 123, 126, 129, 121, 129, 130, 124, 125, 136, 121, 154, 131, 109, 125, 137, 117, 127, 114, 140, 114, 125, 137, 131, 136, 110, 141, 107, 130, 106, 117, 101, 126, 127, 143, 139, 130, 139, 107, 131, 136, 134, 131, 107, 128, 123, 104, 134, 141, 137, 116, 118, 126, 130, 124, 128, 115, 111, 111, 109, 113, 143, 133, 137, 117, 127, 127, 137, 122, 115, 113, 137, 142, 121, 115, 136, 133, 121, 121, 123, 128, 136, 136, 136, 120, 122, 141, 134, 145, 141, 118, 112, 131, 134, 120, 128, 111, 127, 130, 130, 118, 129, 118, 116, 132, 113, 135, 138, 121, 115, 111, 142, 123, 143, 128, 131, 130, 115, 123, 104, 145, 135, 130, 126, 103, 124, 127, 135, 120, 124, 137, 139, 118, 147, 119, 141, 131, 138, 123, 135, 141, 128, 118, 116, 135, 123, 118, 130, 117, 115, 116, 140, 120, 123, 132, 128, 132, 140, 121, 124, 120, 128, 127, 134, 120, 123, 105, 133, 103, 138, 122, 113, 141, 136, 116, 132, 119, 155, 122, 133, 128, 136, 113, 145, 119, 115, 123, 133, 125, 121, 113, 124, 139, 139, 130, 127, 135, 122, 126, 133, 140, 124, 143, 121, 126, 122, 117, 133, 133, 127, 110, 133, 132, 128, 125, 127, 133, 123, 112, 120, 122, 140, 115, 138, 134, 110, 126, 164, 127, 129, 130, 139, 106, 113, 114, 138, 136, 101, 128, 134, 136, 134, 122, 119, 115, 133, 111, 126, 131, 124, 134, 139, 111, 123, 107, 127, 121, 121, 119, 119, 122, 135, 125, 132, 122, 114, 116, 132, 114, 140, 136, 126, 116, 131, 135, 148, 146, 138, 140, 137, 144, 140, 133, 135, 138, 113, 128, 127, 141, 139, 123, 131, 135, 136, 123, 127, 125, 128, 128, 118, 131, 102, 135, 105, 133, 135, 128, 121, 120, 129, 123, 134, 121, 108, 109, 120, 124, 111, 122, 112, 135, 124, 144, 113, 135, 119, 112, 135, 131, 133, 136, 123, 127, 121, 131, 119, 124, 104, 113, 130, 133, 131, 139, 123, 123, 140, 138, 146, 107, 129, 132, 110, 127, 124, 131, 114, 117, 125, 129, 122, 115, 108, 122, 128, 127, 131, 141, 129, 133, 110, 134, 122, 120, 119, 132, 143, 143, 110, 124, 125, 125, 115, 126, 141, 116, 113, 126, 118, 119, 146, 118, 123, 124, 138, 136, 129, 136, 143, 106, 124, 120, 118, 128, 115, 123, 117, 140, 122, 125, 133, 126, 126, 136, 117, 122, 128, 109, 136, 113, 137, 109, 130, 135, 115, 112, 130, 142, 123, 133, 125, 115, 126, 135, 145, 132, 107, 115, 131, 132, 140, 121, 140, 127, 127, 115, 134, 121, 129, 100, 116, 115, 121, 129, 108, 134, 122, 122, 113, 143, 105, 114, 115, 118, 134, 126, 133, 110, 126, 124, 146, 115, 120, 136, 133, 122, 110, 126, 130, 114, 150, 125, 114, 118, 136, 129, 120, 115, 106, 110, 129, 130, 129, 136, 143, 130, 133, 120, 123, 143, 129, 120, 133, 112, 132, 114, 109, 120, 124, 128, 126, 130, 133, 127, 146, 114, 127, 122, 127, 143, 140, 132, 137, 136, 129, 122, 118, 131, 139, 111, 138, 132, 133, 128, 127, 126, 124, 133, 129, 134, 127, 127, 150, 123, 115, 120, 115, 109, 112, 128, 129, 123, 134, 126, 128, 124, 129, 130, 112, 129, 130, 125, 116, 103, 111, 152, 107, 122, 118, 126, 126, 150, 127, 123, 136, 119, 133, 125, 129, 130, 127, 132, 117, 131, 144, 115, 125, 138, 127, 121, 122, 120, 129, 123, 108, 135, 128, 116, 133, 129, 116, 136, 149, 116, 129, 146, 128, 131, 144, 129, 112, 139, 117, 138, 109, 106, 136, 120, 115, 135, 110, 127, 139, 114, 134, 110, 141, 131, 125, 143, 137, 115, 141, 125, 147, 123, 120, 116, 132, 106, 126, 129, 128, 131, 128, 132, 107, 122, 116, 98, 137, 125, 108, 123, 140, 140, 136, 127, 119, 111, 132, 123, 133, 123, 112, 125, 127, 129, 133, 133, 132, 115, 123, 119, 134, 117, 129, 121, 146, 120, 124, 119, 121, 118, 129, 115, 137, 117, 116, 117, 124, 120, 127, 133, 135, 137, 129, 123, 139, 128, 149, 123, 124, 124, 134, 132, 133, 118, 138, 138, 124, 136, 127, 112, 119, 113, 127, 120, 120, 126, 124, 130, 127, 123, 128, 133, 138, 130, 130, 121, 129, 125, 119, 126, 128, 119, 129, 132, 121, 127, 127, 107, 124, 129, 129, 139, 112, 115, 123, 105, 127, 115, 121, 118, 116, 115, 153, 140, 117, 118, 114, 114, 124, 141, 141, 136, 125, 127, 138, 166, 108, 109, 122, 150, 119, 119, 131, 122, 104, 124, 111, 128, 115, 119, 155, 114, 120, 124, 124, 124, 137, 130, 126, 117, 126, 118, 131, 122, 130, 136, 133, 106, 113, 110, 117, 114, 137, 128, 125, 119, 129, 127, 102, 121, 131, 114, 131, 119, 157, 121, 117, 135, 130, 129, 122, 119, 122, 134, 118, 124, 135, 130, 117, 114, 127, 115, 114, 131, 125, 139, 127, 117, 112, 120, 130, 122, 111, 129, 131, 132, 136, 144, 138, 136, 154, 122, 141, 127, 130, 120, 135, 132, 123, 136, 124, 114, 141, 121, 126, 119, 120, 121, 131, 114, 118, 119, 116, 124, 124, 128, 124, 132, 123, 134, 115, 120, 118, 134, 135, 111, 112, 132, 123, 123, 119, 121, 133, 103, 120, 138, 134, 152, 134, 126, 114, 131, 128, 122, 115, 110, 138, 129, 124, 118, 112, 117, 113, 130, 121, 128, 123, 130, 140, 127, 141, 124, 93, 138, 144, 123, 123, 128, 114, 136, 130, 121, 125, 85, 127, 122, 146, 137, 139, 112, 120, 136, 109, 123, 129, 114, 104, 133, 136, 119, 124, 144, 123, 109, 124, 111, 128, 125, 136, 116, 146, 149, 121, 112, 127, 128, 129, 117, 124, 123, 126, 123, 111, 109, 123, 140, 113, 128, 125, 125, 123, 111, 124, 122, 117, 120, 121, 127, 132, 110, 111, 135, 121, 133, 126, 122, 131, 124, 137, 118, 125, 131, 109, 123, 124, 120, 121, 124, 127, 113, 123, 107, 131, 110, 136, 128, 119, 126, 119, 129, 143, 135, 124, 128, 120, 132, 140, 134, 127, 140, 122, 135, 129, 124, 134, 122, 151, 120, 106, 117, 123, 136, 125, 128, 141, 126, 113, 147, 123, 129, 135, 105, 124, 141, 124, 126, 128, 123, 121, 114, 129, 125, 105, 136, 124, 119, 135, 112, 136, 127, 117, 139, 138, 113, 119, 127, 129, 128, 134, 136, 115, 135, 122, 118, 148, 149, 121, 130, 124, 114, 124, 124, 118, 122, 125, 125, 125, 147, 123, 132, 115, 121, 119, 130, 119, 110, 132, 119, 131, 134, 139, 119, 139, 115, 109, 152, 126, 99, 130, 129, 133, 130, 140, 131, 130, 133, 125, 115, 111, 98, 119, 130, 122, 118, 133, 134, 109, 134, 123, 115, 124, 145, 132, 128, 111, 155, 145, 131, 137, 134, 129, 110, 127, 129, 126, 124, 124, 128, 129, 108, 125, 127, 126, 129, 138, 135, 118, 127, 125, 136, 130, 137, 138, 122, 128, 128, 128, 123, 116, 136, 158, 122, 144, 122, 138, 133, 106, 144, 136, 109, 113, 140, 133, 113, 103, 92, 100, 116, 117, 135, 103, 119, 122, 109, 123, 125, 134, 125, 124, 114, 120, 130, 127, 133, 134, 129, 142, 105, 136, 136, 111, 122, 146, 119, 122, 120, 107, 125, 130, 125, 124, 102, 128, 135, 111, 125, 123, 130, 125, 125, 122, 118, 129, 124, 126, 125, 115, 128, 141, 134, 129, 125, 124, 122, 127, 118, 129, 131, 132, 127, 135, 116, 128, 128, 130, 134, 128, 118, 134, 147, 120, 141, 116, 138, 123, 126, 112, 114, 131, 108, 112, 102, 136, 120, 123, 119, 129, 124, 131, 134, 133, 117, 140, 122, 128, 130, 115, 133, 139, 124, 109, 135, 131, 104, 123, 141, 126, 133, 122, 124, 110, 109, 135, 136, 145, 134, 121, 119, 131, 114, 116, 114, 133, 112, 143, 114, 124, 121, 119, 108, 125, 132, 108, 133, 120, 112, 119, 119, 121, 123, 152, 118, 129, 130, 113, 118, 115, 129, 109, 121, 138, 134, 101, 127, 104, 126, 125, 124, 150, 122, 118, 148, 132, 128, 132, 142, 145, 121, 142, 132, 114, 131, 126, 130, 137, 135, 116, 117, 110, 128, 115, 131, 126, 116, 123, 115, 137, 131, 145, 127, 120, 127, 149, 140, 123, 110, 137, 111, 99, 137, 123, 124, 105, 121, 125, 145, 122, 104, 120, 127, 121, 140, 128, 144, 140, 134, 122, 115, 125, 119, 129, 144, 121, 138, 114, 133, 149, 122, 112, 123, 127, 136, 139, 127, 117, 120, 109, 141, 130, 116, 121, 117, 134, 115, 146, 105, 145, 144, 126, 110, 116, 124, 131, 123, 123, 122, 117, 101, 122, 117, 126, 138, 133, 133, 120, 123, 128, 121, 126, 123, 132, 123, 123, 119, 116, 144, 115, 146, 117, 112, 111, 136, 132, 129, 129, 122, 125, 128, 141, 115, 137, 121, 124, 134, 128, 133, 126, 123, 140, 112, 124, 111, 147, 132, 124, 121, 129, 129, 125, 121, 122, 140, 128, 119, 124, 127, 155, 121, 113, 119, 138, 131, 127, 128, 127, 120, 140, 110, 130, 135, 147, 119, 124, 140, 106, 119, 136, 136, 121, 149, 137, 136, 116, 125, 122, 128, 132, 152, 119, 133, 119, 144, 116, 137, 126, 110, 130, 126, 112, 146, 128, 120, 124, 134, 118, 133, 135, 129, 123, 126, 107, 136, 128, 136, 136, 103, 144, 118, 102, 122, 118, 134, 125, 128, 127, 148, 121, 130, 124, 122, 131, 123, 134, 132, 112, 153, 124, 116, 123, 131, 116, 118, 126, 110, 129, 134, 127, 123, 131, 116, 140, 120, 115, 112, 132, 118, 145, 123, 111, 96, 129, 137, 116, 114, 121, 127, 125, 137, 111, 141, 140, 118, 121, 119, 121, 115, 126, 143, 109, 142, 114, 117, 144, 140, 134, 126, 133, 114, 132, 116, 125, 135, 117, 130, 109, 116, 124, 105, 122, 135, 117, 140, 129, 121, 128, 119, 134, 98, 106, 110, 141, 109, 128, 107, 122, 125, 131, 141, 129, 125, 130, 123, 121, 120, 113, 111, 108, 117, 114, 128, 115, 121, 135, 132, 128, 129, 124, 115, 132, 136, 123, 126, 113, 125, 123, 128, 130, 120, 126, 129, 140, 127, 130, 113, 135, 124, 130, 128, 132, 122, 124, 142, 146, 133, 146, 135, 136, 127, 132, 120, 124, 148, 117, 119, 121, 122, 135, 130, 136, 131, 141, 132, 125, 131, 129, 131, 129, 122, 144, 117, 170, 122, 126, 116, 129, 122, 130, 134, 119, 128, 116, 132, 129, 126, 135, 142, 125, 134, 127, 145, 130, 142, 104, 136, 145, 126, 120, 128, 120, 118, 122, 120, 124, 126, 135, 139, 136, 120, 121, 123, 110, 121, 128, 119, 120, 115, 124, 130, 120, 129, 128, 147, 119, 116, 117, 139, 121, 138, 128, 126, 120, 116, 127, 137, 140, 120, 116, 131, 139, 128, 127, 124, 127, 123, 124, 146, 129, 121, 122, 113, 138, 132, 124, 128, 120, 144, 136, 123, 112, 133, 126, 117, 119, 117, 129, 109, 117, 135, 128, 138, 129, 119, 123, 119, 110, 112, 132, 122, 126, 123, 126, 111, 124, 134, 122, 117, 122, 104, 134, 119, 130, 135, 113, 115, 102, 131, 131, 133, 128, 136, 126, 119, 119, 129, 137, 131, 131, 112, 117, 118, 125, 132, 133, 128, 125, 120, 112, 117, 133, 114, 122, 125, 138, 141, 123, 115, 126, 112, 125, 144, 117, 132, 127, 133, 114, 119, 116, 129, 131, 116, 146, 91, 116, 114, 139, 124, 121, 117, 131, 104, 140, 126, 133, 135, 131, 122, 135, 132, 127, 106, 131, 119, 116, 133, 138, 134, 136, 140, 140, 121, 114, 127, 124, 133, 130, 133, 119, 135, 129, 140, 134, 140, 106, 118, 140, 120, 134, 118, 150, 122, 115, 136, 145, 118, 134, 139, 113, 169, 131, 137, 116, 116, 135, 109, 130, 129, 144, 134, 124, 117, 109, 127, 140, 106, 151, 117, 121, 139, 139, 127, 130, 133, 131, 133, 115, 108, 143, 111, 124, 132, 131, 143, 121, 125, 127, 137, 123, 124, 124, 120, 125, 132, 125, 116, 145, 135, 130, 147, 147, 133, 115, 129, 130, 114, 127, 134, 129, 120, 111, 101, 135, 122, 138, 144, 120, 130, 138, 113, 116, 130, 117, 147, 121, 136, 146, 117, 111, 122, 117, 118, 117, 135, 132, 126, 127, 119, 120, 124, 125, 121, 117, 110, 130, 146, 135, 122, 120, 106, 139, 134, 126, 131, 129, 121, 112, 128, 111, 126, 131, 144, 134, 125, 121, 103, 125, 140, 120, 128, 119, 131, 109, 126, 135, 123, 95, 119, 133, 119, 122, 120, 111, 126, 133, 110, 97, 119, 124, 116, 124, 124, 138, 121, 124, 122, 115, 124, 117, 140, 105, 133, 130, 120, 127, 132, 114, 145, 133, 143, 121, 121, 130, 116, 131, 114, 126, 134, 130, 122, 126, 124, 133, 139, 120, 121, 134, 135, 116, 127, 127, 118, 129, 140, 112, 131, 139, 130, 127, 118, 120, 126, 132, 119, 123, 107, 142, 122, 124, 119, 105, 122, 119, 130, 120, 129, 121, 122, 113, 123, 124, 120, 117, 129, 136, 121, 125, 98, 125, 128, 136, 121, 118, 99, 108, 115, 133, 124, 130, 141, 122, 131, 110, 135, 108, 129, 97, 119, 136, 100, 125, 118, 117, 102, 111, 146, 134, 107, 131, 129, 133, 117, 145, 127, 118, 125, 125, 130, 123, 127, 115, 132, 146, 120, 122, 132, 137, 130, 131, 137, 115, 119, 118, 120, 138, 124, 131, 133, 143, 120, 120, 122, 120, 122, 149, 125, 108, 121, 113, 125, 128, 122, 132, 133, 117, 115, 127, 137, 128, 143, 127, 121, 126, 121, 121, 119, 121, 120, 132, 122, 122, 154, 126, 134, 117, 140, 106, 127, 133, 116, 133, 140, 117, 121, 137, 125, 121, 131, 118, 122, 119, 140, 121, 117, 111, 127, 101, 132, 111, 121, 122, 122, 122, 120, 139, 124, 119, 133, 110, 122, 132, 121, 121, 124, 101, 131, 132, 137, 124, 126, 108, 129, 136, 108, 123, 142, 127, 135, 132, 126, 136, 118, 113, 131, 129, 114, 135, 125, 144, 119, 129, 126, 116, 139, 148, 142, 149, 94, 113, 125, 114, 131, 127, 115, 124, 128, 134, 141, 128, 117, 120, 157, 129, 128, 126, 127, 132, 112, 138, 129, 108, 121, 110, 119, 117, 115, 131, 137, 137, 115, 125, 125, 123, 138, 121, 120, 118, 108, 124, 123, 118, 104, 107, 120, 126, 135, 112, 127, 116, 112, 142, 122, 125, 118, 136, 120, 128, 122, 114, 120, 139, 124, 141, 116, 126, 125, 105, 110, 134, 126, 135, 127, 125, 133, 136, 111, 113, 127, 117, 121, 112, 141, 136, 124, 112, 104, 118, 114, 118, 114, 120, 123, 123, 150, 122, 115, 141, 134, 142, 121, 133, 142, 124, 131, 145, 118, 121, 120, 138, 126, 111, 127, 116, 137, 134, 119, 124, 124, 121, 130, 140, 118, 135, 127, 132, 137, 105, 118, 127, 128, 122, 137, 122, 132, 108, 106, 135, 109, 115, 112, 117, 138, 124, 131, 144, 118, 116, 129, 106, 119, 123, 142, 133, 131, 125, 133, 152, 122, 113, 126, 135, 118, 147, 130, 139, 143, 125, 148, 133, 125, 143, 136, 114, 115, 124, 118, 125, 116, 122, 119, 138, 127, 122, 139, 138, 119, 117, 114, 105, 125, 122, 130, 123, 125, 124, 118, 122, 112, 146, 148, 122, 110, 122, 131, 122, 123, 123, 117, 139, 115, 130, 119, 114, 118, 142, 135, 123, 124, 120, 132, 128, 135, 150, 123, 120, 121, 122, 121, 126, 138, 124, 127, 106, 133, 152, 130, 143, 130, 133, 134, 123, 110, 126, 137, 126, 134, 126, 115, 131, 115, 118, 139, 123, 120, 130, 109, 127, 144, 118, 148, 134, 138, 117, 130, 119, 110, 120, 121, 108, 132, 121, 133, 138, 121, 108, 135, 121, 147, 132, 110, 136, 121, 124, 127, 131, 115, 152, 131, 144, 139, 128, 111, 113, 129, 104, 121, 129, 127, 115, 131, 124, 122, 128, 135, 106, 123, 118, 123, 119, 129, 107, 113, 124, 121, 118, 114, 121, 135, 114, 109, 122, 151, 120, 111, 108, 130, 155, 120, 122, 102, 116, 132, 136, 125, 131, 139, 109, 120, 112, 126, 125, 114, 112, 112, 116, 134, 102, 131, 139, 119, 151, 128, 129, 121, 125, 136, 118, 119, 126, 124, 125, 140, 134, 127, 148, 138, 119, 138, 120, 114, 136, 142, 127, 97, 136, 137, 123, 124, 123, 128, 143, 149, 131, 118, 124, 121, 133, 112, 124, 139, 110, 137, 139, 121, 145, 120, 116, 115, 126, 137, 130, 147, 137, 142, 137, 126, 128, 112, 130, 109, 108, 117, 119, 111, 126, 143, 116, 101, 125, 141, 123, 121, 122, 138, 123, 126, 123, 129, 124, 126, 139, 123, 140, 109, 137, 119, 120, 136, 125, 130, 111, 110, 120, 122, 125, 111, 116, 123, 111, 127, 115, 119, 123, 124, 139, 120, 111, 128, 121, 128, 128, 119, 148, 133, 136, 114, 118, 125, 136, 140, 140, 119, 137, 132, 118, 131, 119, 105, 118, 134, 97, 124, 127, 118, 130, 124, 120, 125, 124, 113, 134, 120, 124, 116, 129, 114, 109, 137, 131, 124, 126, 145, 129, 133, 116, 146, 133, 123, 130, 128, 117, 130, 137, 120, 134, 119, 144, 127, 119, 129, 112, 126, 115, 136, 123, 125, 118, 130, 119, 119, 116, 119, 137, 130, 127, 115, 130, 127, 128, 132, 135, 119, 144, 127, 122, 126, 131, 123, 124, 125, 134, 117, 111, 127, 116, 129, 124, 136, 124, 115, 120, 126, 127, 123, 139, 116, 121, 117, 121, 106, 124, 120, 129, 115, 120, 128, 137, 136, 122, 117, 133, 115, 120, 131, 121, 115, 126, 119, 126, 139, 131, 117, 125, 120, 133, 116, 137, 119, 125, 118, 125, 134, 140, 111, 118, 114, 128, 129, 121, 118, 117, 106, 130, 122, 127, 106, 128, 120, 130, 129, 132, 128, 129, 122, 117, 131, 120, 141, 127, 140, 117, 127, 112, 116, 123, 137, 133, 130, 131, 115, 112, 122, 124, 136, 133, 109, 139, 128, 121, 117, 138, 121, 123, 129, 145, 118, 134, 132, 118, 119, 119, 125, 137, 114, 128, 125, 127, 113, 133, 125, 121, 127, 124, 121, 118, 131, 119, 132, 101, 104, 120, 135, 117, 126, 130, 116, 123, 117, 139, 144, 122, 119, 130, 126, 122, 127, 122, 125, 119, 131, 110, 121, 130, 127, 121, 120, 123, 113, 128, 122, 118, 136, 127, 131, 124, 150, 127, 139, 116, 139, 116, 134, 107, 125, 120, 111, 123, 122, 131, 124, 111, 124, 127, 112, 130, 123, 122, 120, 129, 112, 111, 100, 139, 145, 121, 115, 113, 132, 138, 144, 117, 122, 122, 129, 113, 119, 132, 126, 114, 127, 128, 122, 127, 132, 128, 144, 133, 124, 120, 114, 135, 125, 122, 130, 135, 110, 135, 133, 128, 122, 132, 138, 130, 113, 115, 119, 129, 129, 122, 119, 134, 129, 120, 111, 110, 131, 126, 122, 126, 125, 119, 124, 125, 121, 120, 120, 120, 135, 126, 115, 127, 121, 125, 124, 120, 131, 109, 127, 122, 123, 150, 124, 119, 133, 131, 109, 132, 150, 134, 133, 132, 122, 134, 130, 110, 125, 126, 107, 136, 111, 121, 111, 122, 124, 130, 121, 109, 135, 130, 136, 121, 119, 127, 125, 105, 135, 120, 121, 124, 119, 136, 121, 145, 129, 130, 111, 112, 124, 121, 111, 117, 134, 114, 128, 108, 123, 126, 117, 138, 117, 132, 129, 127, 110, 125, 114, 124, 127, 124, 145, 116, 119, 138, 131, 137, 122, 113, 107, 123, 118, 111, 130, 132, 119, 128, 126, 120, 122, 114, 120, 143, 106, 123, 120, 125, 120, 130, 111, 123, 114, 154, 123, 118, 136, 144, 125, 133, 119, 136, 119, 132, 108, 127, 131, 125, 131, 119, 135, 128, 123, 129, 130, 128, 138, 121, 119, 114, 124, 110, 128, 115, 113, 117, 128, 124, 131, 125, 124, 139, 122, 122, 113, 115, 111, 109, 117, 131, 116, 129, 143, 131, 115, 132, 150, 125, 145, 136, 120, 119, 123, 116, 123, 116, 132, 144, 127, 139, 143, 151, 146, 123, 112, 121, 125, 132, 136, 119, 113, 116, 124, 119, 122, 106, 116, 121, 131, 127, 130, 137, 113, 120, 119, 130, 125, 133, 120, 134, 120, 136, 124, 122, 110, 124, 117, 118, 132, 138, 141, 111, 137, 121, 127, 115, 121, 118, 129, 116, 130, 124, 138, 102, 131, 135, 129, 130, 131, 141, 126, 136, 113, 132, 129, 111, 114, 134, 139, 119, 126, 124, 135, 130, 134, 124, 136, 140, 119, 112, 118, 123, 121, 122, 118, 133, 115, 121, 112, 124, 118, 120, 128, 139, 114, 128, 117, 122, 128, 132, 129, 134, 131, 117, 135, 124, 131, 117, 126, 115, 126, 124, 128, 144, 112, 122, 134, 130, 119, 115, 130, 116, 117, 123, 128, 140, 125, 118, 128, 117, 119, 121, 133, 139, 121, 121, 126, 123, 136, 145, 97, 120, 135, 134, 127, 126, 112, 120, 129, 127, 116, 122, 115, 115, 137, 123, 138, 120, 118, 123, 113, 134, 125, 129, 141, 131, 128, 142, 123, 138, 124, 126, 134, 137, 111, 135, 122, 117, 131, 121, 133, 125, 120, 126, 120, 130, 119, 118, 111, 124, 127, 130, 115, 123, 132, 130, 117, 124, 121, 115, 121, 120, 119, 129, 117, 134, 122, 132, 115, 130, 119, 125, 113, 140, 127, 128, 154, 127, 119, 134, 133, 118, 126, 140, 126, 114, 120, 131, 131, 133, 133, 115, 132, 124, 117, 141, 121, 135, 120, 137, 135, 115, 136, 120, 116, 128, 122, 139, 129, 130, 135, 137, 134, 153, 127, 133, 134, 131, 123, 127, 110, 144, 129, 134, 112, 119, 142, 118, 152, 128, 125, 137, 141, 127, 123, 141, 124, 117, 139, 132, 121, 137, 125, 111, 133, 132, 118, 125, 123, 123, 118, 115, 126, 132, 113, 115, 123, 121, 142, 120, 137, 124, 123, 122, 123, 136, 116, 121, 127, 124, 137, 118, 133, 128, 131, 129, 145, 123, 133, 123, 120, 129, 127, 121, 112, 133, 118, 125, 124, 130, 140, 122, 137, 131, 129, 132, 133, 127, 126, 114, 126, 126, 130, 124, 140, 132, 138, 128, 128, 132, 124, 111, 121, 119, 126, 112, 122, 126, 125, 106, 128, 116, 127, 120, 129, 128, 120, 127, 128, 120, 120, 116, 126, 133, 116, 125, 131, 129, 131, 125, 124, 120, 103, 122, 108, 111, 128, 138, 120, 144, 120, 118, 131, 117, 129, 126, 134, 109, 117, 139, 126, 136, 127, 130, 120, 128, 121, 134, 125, 124, 120, 123, 137, 120, 109, 121, 123, 137, 127, 131, 124, 124, 132, 117, 126, 130, 134, 124, 123, 118, 122, 131, 115, 137, 117, 104, 124, 131, 129, 111, 128, 113, 133, 127, 143, 135, 120, 130, 115, 115, 130, 131, 131, 115, 114, 146, 121, 129, 126, 134, 124, 129, 135, 118, 149, 123, 129, 112, 127, 126, 129, 127, 126, 124, 131, 118, 117, 111, 113, 106, 114, 124, 121, 132, 148, 121, 134, 131, 125, 133, 132, 132, 96, 121, 116, 125, 118, 117, 132, 134, 111, 122, 131, 125, 126, 154, 127, 144, 142, 122, 137, 136, 126, 119, 117, 127, 112, 139, 130, 128, 137, 121, 140, 131, 123, 122, 107, 134, 107, 135, 135, 109, 127, 102, 120, 119, 126, 123, 122, 106, 139, 111, 122, 119, 120, 138, 141, 124, 128, 108, 127, 118, 138, 121, 123, 127, 117, 115, 135, 125, 118, 122, 154, 118, 125, 125, 123, 110, 126, 131, 138, 126, 136, 152, 116, 123, 123, 128, 124, 132, 112, 124, 119, 126, 127, 123, 139, 110, 125, 127, 110, 102, 132, 121, 132, 140, 124, 115, 144, 131, 131, 128, 111, 138, 121, 127, 128, 126, 144, 108, 116, 130, 139, 136, 117, 136, 138, 123, 128, 120, 126, 132, 108, 129, 127, 122, 137, 119, 119, 142, 138, 124, 123, 131, 121, 134, 105, 117, 119, 125, 125, 132, 115, 115, 132, 140, 120, 117, 104, 132, 136, 115, 120, 108, 132, 119, 129, 125, 116, 133, 107, 128, 134, 127, 132, 125, 127, 136, 118, 108, 120, 113, 124, 127, 113, 123, 141, 118, 126, 121, 115, 129, 115, 114, 123, 112, 134, 125, 124, 123, 124, 129, 123, 130, 140, 117, 132, 125, 130, 108, 124, 122, 125, 120, 150, 139, 137, 124, 128, 111, 114, 118, 131, 136, 112, 127, 103, 103, 115, 116, 135, 116, 127, 125, 123, 151, 137, 132, 127, 131, 101, 131, 141, 124, 122, 125, 145, 138, 117, 136, 138, 121, 132, 123, 136, 125, 125, 112, 135, 107, 126, 142, 124, 132, 129, 134, 122, 118, 110, 118, 138, 104, 133, 136, 134, 133, 124, 128, 141, 125, 132, 119, 116, 105, 132, 114, 115, 111, 124, 136, 128, 112, 121, 119, 126, 123, 136, 144, 135, 116, 135, 121, 137, 119, 128, 112, 124, 110, 135, 124, 127, 120, 122, 121, 143, 120, 112, 94, 110, 128, 114, 121, 123, 136, 120, 112, 110, 132, 131, 131, 127, 128, 133, 119, 131, 117, 128, 114, 134, 136, 118, 130, 129, 139, 131, 111, 129, 138, 129, 137, 135, 134, 130, 141, 107, 113, 131, 126, 120, 132, 126, 142, 150, 121, 113, 117, 132, 114, 138, 127, 128, 135, 130, 132, 123, 140, 132, 115, 118, 124, 115, 132, 141, 109, 140, 122, 122, 129, 138, 129, 124, 126, 127, 123, 125, 129, 109, 130, 136, 111, 143, 112, 131, 124, 105, 137, 138, 122, 125, 117, 126, 113, 130, 119, 123, 123, 110, 130, 137, 105, 121, 123, 129, 142, 110, 130, 135, 123, 138, 119, 120, 128, 113, 119, 139, 130, 127, 124, 110, 126, 123, 118, 124, 108, 103, 116, 102, 123, 140, 142, 134, 118, 130, 109, 100, 116, 126, 114, 112, 110, 128, 142, 125, 127, 102, 119, 131, 122, 130, 111, 139, 119, 126, 148, 128, 112, 138, 122, 129, 121, 118, 129, 115, 113, 122, 139, 123, 124, 113, 123, 131, 118, 113, 133, 104, 137, 144, 114, 111, 113, 131, 141, 123, 119, 126, 122, 128, 112, 119, 132, 129, 133, 114, 121, 120, 138, 120, 120, 106, 124, 114, 124, 124, 126, 128, 131, 122, 123, 128, 131, 141, 140, 111, 125, 147, 104, 124, 124, 149, 112, 122, 134, 120, 126, 124, 130, 121, 133, 132, 135, 124, 133, 137, 118, 124, 118, 128, 127, 112, 130, 110, 129, 123, 145, 131, 140, 127, 128, 112, 132, 129, 125, 129, 132, 134, 115, 106, 124, 132, 110, 132, 118, 115, 129, 125, 131, 114, 134, 122, 125, 139, 118, 129, 117, 131, 127, 128, 119, 123, 123, 129, 131, 127, 118, 130, 121, 115, 129, 130, 116, 114, 123, 127, 148, 116, 128, 130, 129, 138, 109, 128, 122, 130, 140, 128, 127, 139, 135, 122, 136, 141, 119, 123, 116, 142, 118, 126, 139, 133, 122, 119, 136, 145, 119, 131, 120, 134, 127, 115, 127, 147, 135, 128, 132, 141, 123, 125, 133, 118, 117, 137, 131, 123, 108, 130, 132, 110, 139, 127, 118, 127, 135, 123, 138, 134, 124, 118, 131, 115, 140, 142, 116, 117, 110, 129, 122, 122, 122, 124, 122, 123, 117, 126, 127, 126, 135, 129, 125, 114, 130, 125, 128, 121, 133, 131, 122, 131, 131, 139, 119, 128, 121, 126, 129, 118, 118, 113, 114, 120, 138, 118, 117, 126, 132, 132, 134, 128, 109, 140, 129, 126, 122, 103, 89, 105, 108, 142, 133, 130, 132, 126, 120, 116, 141, 123, 120, 134, 122, 133, 120, 121, 101, 124, 137, 123, 145, 101, 123, 125, 110, 118, 126, 144, 119, 119, 132, 121, 136, 128, 134, 139, 137, 135, 126, 143, 125, 136, 139, 120, 121, 123, 110, 116, 117, 132, 119, 137, 130, 122, 118, 126, 142, 129, 125, 119, 129, 126, 135, 123, 116, 109, 140, 117, 115, 124, 130, 136, 141, 121, 119, 123, 125, 130, 125, 116, 124, 134, 107, 134, 122, 133, 131, 116, 117, 139, 138, 129, 127, 120, 139, 129, 134, 139, 120, 116, 122, 122, 140, 130, 130, 136, 132, 128, 143, 124, 122, 122, 121, 131, 122, 120, 118, 143, 102, 122, 128, 134, 121, 131, 133, 124, 138, 122, 95, 120, 126, 126, 103, 164, 123, 117, 160, 129, 126, 132, 136, 136, 112, 128, 130, 150, 94, 122, 122, 106, 114, 148, 126, 116, 125, 127, 151, 161, 125, 144, 132, 116, 134, 125, 122, 109, 116, 128, 117, 128, 120, 141, 129, 112, 133, 125, 111, 129, 130, 119, 115, 140, 121, 124, 113, 131, 123, 134, 131, 128, 136, 137, 149, 111, 109, 124, 127, 108, 129, 138, 131, 132, 132, 143, 137, 119, 121, 146, 121, 128, 138, 125, 135, 118, 130, 125, 133, 148, 124, 112, 134, 122, 136, 110, 125, 121, 115, 136, 123, 129, 121, 121, 140, 125, 131, 127, 114, 131, 131, 131, 126, 139, 104, 116, 107, 117, 109, 133, 139, 144, 115, 122, 127, 107, 122, 124, 120, 116, 117, 143, 115, 120, 126, 119, 115, 110, 113, 125, 137, 117, 128, 107, 131, 121, 121, 128, 110, 139, 134, 125, 127, 133, 121, 134, 137, 124, 128, 138, 128, 113, 122, 139, 147, 140, 124, 130, 134, 135, 126, 138, 123, 129, 131, 123, 128, 129, 116, 121, 113, 147, 130, 117, 129, 120, 103, 114, 155, 137, 130, 122, 113, 101, 130, 132, 107, 117, 134, 135, 140, 107, 117, 116, 135, 131, 134, 121, 135, 108, 115, 128, 117, 113, 143, 146, 117, 126, 110, 137, 129, 115, 99, 96, 112, 122, 114, 112, 121, 120, 123, 125, 115, 125, 111, 126, 128, 133, 137, 117, 128, 125, 132, 144, 135, 127, 141, 115, 118, 112, 126, 105, 125, 99, 120, 143, 128, 127, 123, 132, 129, 119, 138, 139, 125, 122, 141, 123, 126, 126, 121, 117, 128, 101, 116, 133, 131, 118, 130, 133, 153, 116, 137, 117, 133, 116, 125, 127, 118, 136, 117, 119, 133, 128, 121, 134, 111, 125, 152, 131, 129, 113, 123, 118, 111, 115, 138, 134, 141, 123, 114, 115, 119, 114, 128, 124, 131, 123, 132, 115, 127, 118, 112, 128, 138, 127, 126, 134, 124, 121, 130, 137, 128, 139, 126, 130, 120, 108, 135, 127, 115, 121, 142, 124, 138, 132, 136, 128, 122, 137, 121, 129, 117, 119, 115, 130, 132, 97, 131, 135, 124, 136, 133, 125, 142, 145, 126, 124, 118, 111, 114, 124, 111, 120, 125, 127, 125, 130, 116, 117, 137, 130, 129, 126, 133, 123, 138, 137, 122, 129, 128, 124, 121, 106, 128, 127, 112, 130, 153, 116, 141, 128, 125, 121, 132, 120, 114, 126, 101, 136, 150, 145, 136, 115, 145, 137, 121, 131, 129, 119, 122, 111, 123, 112, 139, 125, 114, 126, 120, 116, 123, 110, 148, 136, 140, 132, 134, 114, 117, 112, 139, 150, 142, 117, 124, 130, 130, 131, 108, 135, 147, 128, 138, 121, 127, 98, 134, 126, 121, 127, 115, 126, 136, 91, 121, 124, 127, 121, 124, 132, 132, 130, 135, 121, 115, 122, 129, 121, 130, 127, 131, 108, 135, 115, 141, 125, 126, 124, 128, 132, 113, 155, 145, 120, 113, 131, 115, 132, 135, 134, 129, 147, 136, 113, 134, 123, 132, 101, 117, 129, 120, 119, 145, 124, 119, 121, 118, 127, 143, 138, 127, 129, 136, 125, 124, 124, 149, 137, 133, 125, 118, 135, 139, 124, 129, 118, 115, 118, 133, 122, 123, 148, 137, 135, 119, 116, 115, 111, 121, 127, 117, 126, 124, 130, 140, 113, 124, 124, 126, 109, 133, 144, 109, 125, 121, 136, 133, 131, 114, 122, 133, 132, 130, 119, 136, 118, 135, 132, 136, 122, 134, 135, 117, 115, 143, 127, 123, 129, 130, 135, 121, 113, 130, 111, 133, 111, 136, 136, 127, 111, 118, 120, 127, 138, 111, 130, 123, 96, 114, 143, 123, 117, 117, 107, 129, 125, 119, 126, 129, 116, 132, 127, 131, 119, 134, 141, 136, 120, 119, 128, 140, 124, 120, 116, 110, 137, 126, 125, 129, 135, 123, 137, 119, 115, 109, 132, 124, 119, 140, 108, 128, 137, 124, 127, 138, 134, 108, 133, 120, 122, 127, 111, 116, 124, 139, 108, 128, 122, 128, 104, 112, 126, 122, 136, 115, 112, 130, 107, 114, 133, 127, 118, 100, 123, 109, 108, 123, 127, 112, 115, 131, 122, 140, 116, 126, 97, 115, 122, 116, 122, 124, 119, 142, 121, 125, 122, 119, 140, 124, 124, 134, 121, 124, 140, 133, 130, 123, 119, 125, 118, 114, 119, 143, 133, 135, 123, 142, 146, 109, 126, 142, 122, 128, 110, 132, 134, 126, 122, 122, 130, 128, 139, 127, 112, 126, 138, 125, 113, 119, 136, 119, 121, 128, 126, 129, 121, 138, 121, 98, 122, 118, 133, 125, 129, 111, 132, 124, 125, 136, 134, 132, 135, 126, 111, 127, 119, 112, 123, 129, 119, 120, 135, 128, 139, 103, 137, 148, 127, 125, 125, 104, 124, 137, 108, 130, 121, 128, 131, 153, 118, 124, 113, 130, 125, 140, 116, 127, 120, 134, 119, 131, 129, 120, 117, 115, 115, 128, 113, 139, 130, 108, 116, 124, 127, 138, 110, 122, 147, 143, 116, 116, 132, 124, 138, 135, 132, 142, 117, 129, 115, 121, 140, 110, 132, 115, 117, 131, 140, 129, 132, 124, 134, 118, 122, 125, 121, 123, 117, 120, 121, 131, 127, 132, 133, 137, 121, 109, 124, 137, 124, 129, 139, 142, 132, 124, 108, 118, 125, 142, 116, 132, 109, 117, 125, 134, 128, 128, 120, 134, 122, 123, 126, 123, 126, 116, 104, 117, 122, 124, 134, 127, 117, 131, 121, 119, 143, 136, 137, 136, 122, 139, 118, 124, 125, 123, 128, 125, 120, 130, 132, 108, 131, 132, 118, 138, 133, 121, 129, 127, 123, 116, 108, 130, 130, 134, 125, 133, 101, 127, 137, 135, 125, 119, 113, 139, 109, 128, 120, 114, 125, 125, 142, 142, 120, 113, 121, 109, 124, 129, 124, 127, 125, 113, 121, 128, 134, 120, 118, 123, 126, 133, 129, 129, 131, 111, 111, 113, 132, 115, 124, 112, 129, 119, 110, 123, 116, 131, 110, 132, 136, 123, 126, 130, 128, 130, 122, 150, 132, 119, 139, 115, 120, 127, 111, 135, 134, 124, 125, 131, 132, 107, 113, 116, 140, 133, 128, 122, 145, 129, 128, 127, 118, 125, 127, 129, 112, 121, 113, 128, 144, 140, 108, 130, 114, 115, 117, 126, 138, 138, 132, 130, 140, 116, 118, 110, 139, 137, 111, 141, 119, 131, 142, 122, 123, 138, 142, 144, 118, 110, 126, 117, 118, 131, 131, 135, 131, 128, 119, 117, 113, 124, 116, 121, 124, 119, 119, 128, 124, 129, 132, 138, 117, 121, 138, 129, 116, 125, 117, 138, 114, 135, 138, 127, 125, 130, 131, 123, 116, 149, 110, 119, 129, 112, 123, 128, 124, 135, 97, 123, 123, 151, 138, 117, 126, 128, 122, 125, 134, 110, 119, 119, 130, 133, 118, 125, 130, 116, 118, 116, 132, 115, 127, 120, 139, 129, 129, 132, 124, 127, 122, 107, 157, 116, 138, 130, 114, 137, 130, 122, 139, 118, 121, 133, 137, 128, 113, 127, 127, 132, 138, 116, 131, 126, 118, 132, 123, 128, 113, 117, 122, 112, 133, 124, 125, 126, 145, 135, 131, 146, 115, 118, 146, 131, 140, 125, 121, 129, 119, 126, 116, 125, 133, 122, 135, 136, 145, 123, 133, 117, 116, 104, 127, 128, 127, 130, 137, 118, 119, 133, 120, 142, 133, 123, 124, 135, 132, 121, 131, 129, 129, 118, 118, 126, 123, 117, 121, 122, 111, 145, 115, 124, 123, 128, 108, 140, 133, 114, 116, 123, 116, 148, 127, 133, 122, 128, 136, 122, 110, 110, 130, 121, 128, 128, 120, 114, 126, 132, 123, 118, 121, 122, 132, 109, 128, 107, 129, 126, 124, 126, 122, 135, 128, 118, 149, 118, 133, 123, 133, 119, 125, 135, 138, 137, 115, 134, 121, 136, 133, 94, 122, 134, 131, 120, 134, 125, 117, 132, 118, 147, 122, 130, 112, 125, 122, 151, 124, 130, 119, 128, 131, 129, 132, 115, 122, 140, 125, 114, 112, 112, 126, 125, 120, 127, 112, 124, 126, 136, 97, 134, 113, 130, 123, 125, 122, 121, 129, 114, 114, 124, 126, 140, 142, 117, 128, 130, 109, 137, 129, 153, 126, 115, 128, 128, 116, 112, 122, 124, 130, 114, 120, 119, 126, 122, 135, 110, 112, 119, 139, 127, 120, 132, 135, 128, 132, 124, 129, 120, 112, 138, 160, 110, 121, 112, 127, 118, 150, 142, 137, 125, 131, 134, 113, 137, 115, 124, 130, 133, 117, 102, 107, 130, 123, 122, 131, 132, 123, 137, 126, 106, 129, 148, 122, 125, 114, 124, 136, 139, 129, 137, 120, 124, 111, 150, 141, 112, 108, 144, 109, 121, 111, 114, 118, 122, 129, 132, 126, 119, 128, 137, 127, 131, 133, 114, 129, 113, 121, 134, 117, 142, 130, 130, 134, 120, 127, 99, 159, 125, 134, 123, 119, 138, 125, 119, 118, 129, 122, 119, 144, 130, 124, 110, 122, 108, 105, 120, 134, 139, 115, 122, 127, 120, 147, 117, 116, 119, 119, 121, 123, 129, 126, 108, 118, 129, 119, 122, 121, 137, 129, 125, 126, 113, 127, 127, 124, 120, 138, 125, 128, 143, 122, 162, 129, 128, 106, 125, 129, 124, 138, 104, 130, 135, 127, 123, 123, 128, 114, 130, 120, 121, 116, 135, 124, 113, 121, 134, 120, 119, 120, 132, 128, 99, 118, 108, 139, 104, 141, 120, 120, 137, 116, 86, 119, 135, 123, 111, 124, 121, 124, 123, 146, 125, 135, 125, 118, 139, 141, 142, 131, 142, 155, 138, 139, 139, 122, 121, 140, 119, 112, 120, 127, 124, 127, 130, 106, 124, 148, 129, 121, 117, 127, 123, 125, 118, 134, 111, 125, 124, 128, 126, 137, 125, 125, 124, 134, 105, 110, 127, 112, 130, 121, 130, 126, 106, 126, 109, 131, 126, 122, 126, 121, 124, 125, 131, 126, 133, 126, 117, 127, 118, 130, 144, 133, 125, 128, 128, 125, 110, 111, 125, 126, 132, 130, 124, 110, 147, 137, 143, 122, 139, 119, 121, 148, 132, 119, 136, 112, 129, 110, 119, 127, 112, 129, 111, 113, 151, 132, 126, 129, 151, 137, 128, 133, 136, 139, 126, 147, 121, 146, 135, 125, 117, 118, 117, 121, 136, 129, 119, 141, 145, 112, 128, 127, 114, 109, 136, 143, 137, 112, 131, 129, 143, 109, 132, 117, 129, 128, 115, 121, 121, 126, 128, 130, 120, 118, 130, 130, 130, 110, 137, 113, 122, 135, 102, 148, 145, 125, 151, 147, 140, 139, 134, 119, 140, 123, 129, 127, 122, 111, 119, 118, 128, 113, 125, 99, 154, 128, 140, 124, 116, 121, 141, 125, 123, 137, 127, 119, 126, 121, 132, 132, 127, 124, 113, 127, 100, 138, 126, 137, 131, 123, 116, 116, 128, 141, 119, 109, 121, 125, 114, 134, 124, 123, 112, 131, 131, 127, 141, 127, 128, 132, 107, 127, 151, 118, 131, 129, 111, 150, 121, 133, 127, 131, 133, 116, 123, 130, 114, 144, 141, 116, 150, 114, 125, 122, 127, 115, 118, 123, 135, 136, 115, 123, 124, 142, 114, 138, 124, 126, 114, 142, 131, 123, 119, 118, 121, 136, 149, 115, 141, 129, 115, 137, 119, 117, 135, 116, 115, 126, 132, 140, 140, 124, 121, 120, 128, 142, 133, 133, 143, 125, 118, 122, 127, 112, 128, 129, 139, 129, 114, 114, 130, 115, 123, 106, 128, 118, 119, 105, 123, 131, 123, 131, 117, 119, 133, 113, 121, 130, 108, 140, 139, 118, 120, 131, 135, 135, 125, 157, 122, 140, 121, 110, 115, 124, 127, 129, 132, 137, 129, 112, 140, 113, 125, 117, 118, 132, 126, 130, 102, 146, 126, 121, 125, 146, 131, 123, 102, 115, 128, 118, 126, 116, 120, 125, 117, 121, 129, 121, 129, 121, 122, 137, 125, 133, 123, 132, 139, 125, 116, 128, 114, 123, 113, 122, 118, 139, 125, 124, 138, 130, 124, 130, 131, 123, 114, 121, 122, 136, 131, 131, 124, 120, 117, 122, 117, 129, 122, 127, 124, 133, 122, 128, 125, 116, 135, 127, 126, 123, 128, 128, 122, 144, 120, 128, 130, 127, 129, 120, 125, 129, 125, 136, 126, 126, 136, 145, 132, 112, 133, 125, 138, 122, 111, 128, 134, 124, 123, 120, 113, 138, 136, 114, 113, 133, 132, 124, 136, 126, 122, 112, 128, 125, 104, 137, 121, 138, 110, 115, 133, 121, 128, 116, 130, 120, 127, 131, 134, 130, 143, 132, 115, 141, 121, 112, 119, 121, 125, 114, 133, 151, 128, 119, 121, 122, 128, 119, 142, 120, 146, 119, 118, 119, 117, 122, 118, 130, 128, 124, 116, 133, 123, 118, 125, 117, 126, 106, 124, 124, 127, 120, 136, 114, 117, 115, 136, 138, 129, 112, 121, 108, 135, 119, 137, 116, 119, 122, 122, 136, 122, 126, 131, 125, 130, 121, 107, 124, 133, 134, 134, 136, 134, 135, 158, 146, 125, 126, 119, 119, 127, 123, 148, 123, 124, 130, 144, 122, 134, 123, 140, 116, 128, 124, 115, 113, 130, 135, 123, 113, 127, 125, 119, 126, 126, 135, 143, 126, 136, 153, 126, 129, 117, 133, 127, 127, 119, 123, 137, 128, 112, 134, 131, 119, 111, 113, 129, 111, 119, 102, 130, 133, 117, 115, 125, 141, 131, 122, 122, 138, 133, 113, 137, 122, 126, 122, 127, 128, 124, 120, 117, 114, 126, 122, 153, 121, 117, 125, 149, 113, 131, 110, 142, 120, 134, 136, 143, 135, 129, 128, 134, 113, 134, 126, 114, 136, 136, 135, 127, 137, 122, 130, 129, 133, 131, 130, 134, 120, 118, 142, 119, 129, 122, 155, 137, 106, 123, 126, 125, 119, 130, 127, 108, 123, 119, 119, 129, 127, 117, 135, 122, 137, 110, 124, 119, 135, 117, 126, 143, 133, 141, 103, 134, 119, 118, 115, 133, 127, 142, 127, 124, 139, 120, 125, 140, 116, 120, 133, 123, 116, 131, 105, 130, 123, 122, 117, 133, 122, 137, 131, 133, 103, 125, 130, 120, 123, 121, 107, 119, 126, 115, 120, 113, 120, 118, 132, 137, 125, 126, 135, 123, 118, 128, 114, 127, 118, 136, 117, 126, 137, 121, 135, 128, 124, 119, 116, 113, 119, 113, 127, 122, 138, 118, 122, 121, 131, 145, 103, 121, 136, 126, 138, 126, 141, 138, 127, 127, 115, 112, 119, 126, 127, 119, 126, 134, 137, 109, 128, 121, 135, 129, 129, 106, 133, 126, 124, 126, 118, 138, 120, 120, 131, 105, 119, 119, 119, 112, 127, 130, 130, 132, 138, 115, 114, 122, 128, 139, 127, 98, 122, 131, 127, 134, 112, 117, 146, 122, 110, 112, 117, 128, 138, 107, 153, 130, 130, 108, 135, 121, 115, 123, 116, 88, 137, 135, 122, 110, 119, 130, 102, 125, 132, 128, 125, 123, 136, 116, 127, 119, 135, 119, 132, 121, 132, 132, 136, 133, 107, 111, 107, 117, 118, 142, 130, 127, 116, 112, 120, 124, 125, 119, 126, 106, 130, 117, 133, 125, 126, 113, 132, 133, 117, 142, 118, 119, 118, 121, 122, 126, 131, 111, 123, 112, 131, 121, 131, 110, 118, 111, 126, 117, 123, 125, 129, 133, 124, 133, 128, 121, 128, 148, 138, 120, 120, 129, 94, 122, 124, 108, 120, 105, 143, 140, 136, 115, 138, 122, 120, 124, 126, 128, 130, 133, 124, 138, 127, 112, 115, 107, 127, 123, 132, 98, 120, 124, 122, 138, 120, 102, 127, 117, 132, 116, 124, 107, 140, 123, 99, 112, 121, 119, 123, 126, 126, 123, 129, 129, 125, 124, 129, 126, 126, 115, 116, 129, 133, 132, 116, 136, 132, 137, 122, 147, 105, 137, 128, 107, 136, 127, 127, 121, 129, 105, 120, 124, 115, 126, 118, 130, 120, 116, 115, 109, 129, 123, 137, 129, 139, 125, 116, 129, 123, 133, 120, 131, 109, 126, 117, 128, 120, 122, 130, 112, 117, 121, 106, 119, 127, 126, 139, 125, 127, 125, 124, 124, 127, 132, 113, 131, 131, 138, 127, 107, 135, 119, 118, 143, 136, 109, 128, 127, 130, 120, 119, 127, 109, 125, 126, 132, 115, 140, 122, 115, 129, 139, 135, 103, 123, 128, 132, 129, 122, 130, 129, 123, 110, 135, 130, 114, 131, 135, 135, 108, 127, 127, 122, 133, 121, 118, 115, 130, 126, 123, 143, 122, 133, 118, 132, 129, 133, 136, 126, 132, 119, 135, 112, 125, 119, 130, 126, 135, 106, 119, 125, 137, 125, 111, 117, 106, 130, 131, 134, 114, 133, 137, 110, 117, 132, 138, 132, 132, 118, 120, 130, 135, 134, 124, 125, 121, 123, 131, 144, 104, 147, 123, 131, 139, 122, 132, 121, 125, 138, 134, 127, 119, 128, 120, 134, 133, 135, 126, 141, 123, 111, 131, 118, 111, 156, 125, 127, 127, 126, 111, 129, 135, 124, 130, 136, 121, 134, 115, 131, 115, 157, 117, 127, 114, 129, 129, 114, 124, 122, 127, 123, 130, 123, 127, 125, 135, 149, 132, 126, 109, 139, 101, 127, 124, 100, 133, 134, 118, 112, 128, 142, 101, 125, 139, 145, 132, 112, 124, 111, 144, 126, 127, 115, 116, 119, 124, 128, 121, 130, 123, 124, 115, 122, 137, 135, 103, 121, 122, 131, 114, 121, 120, 103, 115, 142, 121, 119, 133, 134, 132, 133, 131, 128, 140, 124, 126, 138, 133, 128, 145, 117, 121, 111, 127, 121, 138, 116, 120, 122, 126, 141, 128, 130, 117, 134, 121, 112, 134, 133, 140, 118, 104, 110, 119, 121, 121, 114, 115, 127, 126, 126, 146, 138, 127, 132, 132, 133, 121, 121, 110, 139, 131, 122, 128, 141, 120, 120, 127, 106, 120, 141, 130, 133, 127, 111, 115, 115, 115, 134, 119, 123, 126, 134, 122, 130, 103, 114, 119, 121, 118, 109, 118, 127, 122, 142, 120, 126, 136, 122, 131, 135, 129, 126, 138, 133, 142, 126, 129, 129, 128, 115, 110, 120, 130, 137, 117, 126, 137, 120, 126, 123, 123, 154, 138, 153, 136, 116, 147, 117, 115, 139, 121, 116, 131, 128, 136, 120, 127, 126, 120, 127, 134, 121, 134, 132, 120, 141, 127, 134, 109, 110, 96, 154, 127, 116, 121, 123, 133, 114, 143, 109, 118, 118, 135, 132, 138, 129, 130, 122, 122, 129, 136, 129, 135, 128, 127, 121, 139, 121, 129, 120, 128, 113, 123, 104, 137, 120, 120, 132, 126, 116, 111, 104, 144, 120, 128, 128, 114, 126, 125, 139, 124, 124, 134, 131, 117, 134, 117, 132, 132, 118, 127, 136, 133, 118, 105, 138, 116, 117, 142, 131, 130, 120, 112, 112, 138, 141, 106, 113, 134, 122, 109, 102, 114, 114, 112, 118, 120, 149, 130, 139, 111, 112, 133, 127, 108, 113, 120, 95, 122, 105, 132, 126, 133, 124, 124, 127, 130, 132, 132, 112, 136, 116, 121, 147, 137, 123, 137, 123, 134, 139, 111, 114, 106, 135, 131, 128, 140, 127, 131, 102, 131, 120, 125, 114, 119, 135, 114, 128, 146, 138, 138, 133, 122, 119, 112, 122, 129, 129, 133, 122, 137, 118, 140, 124, 132, 123, 109, 126, 129, 131, 134, 125, 115, 136, 121, 121, 119, 133, 121, 135, 134, 128, 138, 123, 125, 118, 124, 126, 123, 105, 127, 127, 106, 112, 137, 122, 131, 129, 124, 128, 127, 155, 137, 124, 119, 127, 136, 132, 128, 119, 137, 119, 127, 103, 121, 106, 126, 119, 116, 126, 108, 129, 126, 136, 129, 106, 111, 125, 117, 127, 108, 137, 122, 123, 129, 141, 142, 111, 144, 119, 134, 126, 104, 142, 124, 132, 123, 134, 127, 143, 116, 111, 125, 145, 119, 139, 103, 136, 117, 112, 118, 116, 138, 112, 126, 126, 133, 122, 115, 106, 106, 140, 116, 122, 128, 119, 126, 127, 141, 120, 107, 136, 124, 124, 150, 96, 120, 134, 113, 120, 122, 130, 116, 115, 106, 130, 134, 129, 149, 127, 127, 126, 117, 144, 106, 121, 110, 139, 131, 114, 140, 146, 137, 145, 138, 117, 132, 111, 125, 121, 119, 113, 116, 119, 115, 150, 130, 120, 121, 110, 118, 122, 140, 126, 115, 136, 131, 109, 121, 127, 109, 116, 123, 133, 134, 121, 130, 110, 129, 135, 115, 117, 128, 133, 136, 115, 112, 137, 124, 114, 133, 113, 139, 141, 113, 136, 118, 130, 127, 132, 135, 115, 119, 119, 120, 130, 131, 119, 128, 123, 130, 118, 133, 130, 125, 122, 115, 120, 123, 135, 124, 118, 121, 135, 129, 128, 125, 136, 138, 125, 133, 130, 121, 115, 124, 116, 118, 126, 125, 116, 136, 130, 127, 138, 121, 144, 121, 124, 138, 111, 124, 128, 121, 121, 148, 131, 114, 139, 118, 113, 108, 129, 140, 111, 128, 139, 117, 142, 147, 136, 106, 115, 130, 140, 126, 120, 120, 130, 122, 124, 129, 131, 122, 122, 135, 132, 138, 114, 121, 124, 138, 131, 122, 115, 131, 117, 137, 126, 121, 121, 137, 137, 118, 131, 134, 114, 126, 138, 109, 127, 119, 115, 104, 119, 133, 110, 134, 114, 132, 111, 147, 130, 141, 120, 112, 110, 125, 120, 130, 120, 146, 112, 127, 113, 124, 112, 129, 123, 126, 109, 122, 114, 126, 127, 140, 123, 125, 126, 117, 143, 141, 128, 144, 119, 125, 124, 116, 135, 120, 152, 126, 117, 117, 129, 140, 120, 133, 129, 129, 130, 109, 116, 133, 139, 112, 128, 131, 116, 124, 104, 113, 127, 113, 131, 118, 130, 141, 134, 115, 131, 107, 135, 108, 133, 128, 121, 125, 129, 110, 118, 125, 122, 136, 134, 128, 123, 130, 129, 124, 130, 154, 116, 125, 127, 122, 136, 149, 117, 123, 128, 133, 121, 119, 140, 133, 138, 122, 111, 116, 133, 122, 114, 129, 124, 124, 125, 136, 118, 119, 126, 120, 132, 124, 122, 120, 128, 146, 123, 131, 122, 119, 105, 109, 115, 130, 139, 101, 123, 140, 122, 120, 98, 135, 109, 133, 138, 124, 133, 128, 117, 129, 117, 111, 123, 117, 135, 144, 128, 125, 121, 116, 129, 142, 129, 133, 123, 133, 122, 139, 132, 122, 112, 141, 113, 127, 124, 123, 138, 109, 108, 125, 128, 125, 124, 121, 119, 130, 136, 117, 112, 117, 120, 103, 109, 127, 136, 117, 123, 125, 105, 127, 129, 134, 127, 136, 119, 113, 98, 127, 148, 118, 145, 129, 127, 133, 116, 119, 133, 109, 147, 131, 131, 137, 130, 124, 144, 135, 123, 126, 79, 127, 128, 133, 130, 123, 133, 123, 127, 123, 139, 132, 133, 135, 114, 124, 122, 114, 104, 139, 127, 114, 142, 130, 118, 132, 132, 124, 121, 120, 140, 129, 139, 106, 128, 128, 139, 124, 133, 129, 138, 111, 134, 122, 133, 112, 136, 125, 123, 109, 129, 129, 117, 123, 133, 126, 125, 138, 140, 128, 128, 117, 124, 129, 126, 139, 142, 134, 123, 106, 120, 122, 120, 132, 146, 119, 133, 139, 117, 114, 139, 125, 124, 131, 143, 107, 128, 127, 128, 130, 110, 126, 106, 124, 135, 119, 127, 123, 133, 123, 136, 127, 130, 142, 131, 123, 124, 110, 131, 135, 142, 108, 124, 123, 142, 127, 137, 140, 133, 119, 169, 120, 109, 106, 101, 108, 136, 147, 113, 94, 129, 124, 128, 124, 119, 113, 132, 120, 140, 123, 126, 121, 129, 133, 129, 141, 149, 125, 132, 131, 134, 134, 118, 136, 116, 135, 118, 134, 118, 110, 118, 131, 137, 105, 122, 113, 105, 114, 123, 134, 145, 113, 121, 116, 118, 124, 110, 120, 127, 117, 120, 135, 124, 125, 116, 117, 123, 140, 122, 141, 122, 120, 122, 118, 116, 111, 126, 127, 140, 129, 131, 115, 121, 123, 139, 137, 116, 125, 116, 129, 121, 140, 116, 120, 122, 113, 125, 124, 109, 129, 130, 118, 114, 110, 122, 133, 108, 121, 127, 130, 120, 127, 123, 136, 113, 118, 136, 133, 117, 101, 127, 118, 136, 111, 126, 150, 129, 128, 132, 144, 115, 139, 130, 131, 128, 130, 105, 126, 117, 147, 124, 110, 129, 123, 125, 129, 120, 125, 120, 126, 127, 135, 116, 134, 135, 115, 125, 132, 117, 147, 141, 136, 121, 132, 133, 142, 134, 129, 118, 133, 127, 127, 150, 114, 117, 109, 109, 130, 133, 129, 112, 130, 144, 132, 118, 120, 129, 122, 130, 124, 118, 130, 117, 117, 111, 109, 153, 124, 134, 112, 126, 113, 122, 116, 113, 129, 130, 113, 125, 119, 123, 112, 136, 129, 132, 124, 130, 124, 115, 125, 134, 127, 128, 148, 135, 128, 142, 111, 134, 117, 134, 123, 121, 123, 117, 129, 147, 96, 122, 121, 129, 105, 113, 110, 127, 125, 107, 142, 125, 132, 134, 123, 124, 111, 116, 111, 122, 121, 134, 118, 132, 113, 105, 126, 139, 142, 112, 120, 153, 95, 139, 125, 101, 98, 104, 134, 133, 124, 132, 127, 128, 136, 125, 103, 140, 134, 135, 148, 123, 130, 139, 133, 122, 127, 127, 128, 133, 121, 126, 136, 105, 119, 110, 104, 111, 120, 129, 118, 130, 121, 122, 122, 121, 141, 117, 129, 126, 125, 138, 115, 101, 135, 114, 125, 123, 131, 125, 117, 138, 140, 144, 125, 137, 127, 135, 120, 147, 114, 132, 122, 114, 101, 129, 136, 120, 127, 116, 106, 141, 129, 123, 156, 140, 125, 114, 129, 127, 132, 117, 118, 129, 137, 131, 129, 110, 124, 136, 131, 115, 130, 126, 128, 131, 143, 114, 129, 114, 141, 128, 139, 128, 119, 122, 106, 133, 121, 137, 130, 145, 128, 99, 127, 115, 126, 129, 134, 141, 124, 132, 113, 117, 122, 111, 143, 134, 116, 120, 136, 110, 115, 126, 117, 121, 125, 131, 118, 137, 124, 121, 123, 112, 135, 126, 136, 127, 123, 135, 123, 142, 118, 117, 108, 129, 127, 127, 135, 143, 124, 117, 132, 112, 132, 136, 139, 114, 146, 113, 115, 141, 103, 141, 119, 122, 142, 146, 134, 122, 130, 124, 123, 134, 130, 118, 136, 113, 151, 140, 127, 131, 133, 145, 113, 130, 138, 120, 116, 134, 132, 125, 128, 108, 152, 131, 139, 133, 139, 127, 107, 137, 118, 103, 127, 132, 127, 104, 134, 106, 117, 123, 130, 113, 119, 119, 126, 131, 120, 138, 118, 127, 123, 135, 134, 123, 122, 122, 125, 111, 109, 121, 116, 139, 123, 107, 137, 123, 128, 122, 123, 118, 123, 117, 122, 129, 136, 115, 127, 115, 140, 122, 135, 127, 120, 135, 119, 123, 121, 118, 106, 131, 137, 121, 98, 114, 125, 122, 123, 131, 134, 125, 112, 120, 119, 132, 125, 132, 103, 121, 119, 141, 128, 135, 134, 131, 125, 119, 127, 107, 105, 116, 135, 118, 109, 145, 128, 114, 97, 131, 130, 126, 127, 120, 130, 117, 132, 138, 118, 148, 121, 137, 138, 120, 130, 144, 126, 128, 120, 119, 116, 126, 123, 140, 116, 135, 134, 120, 124, 131, 119, 128, 131, 121, 123, 126, 128, 140, 135, 122, 120, 117, 129, 117, 129, 122, 136, 131, 122, 124, 130, 160, 101, 135, 121, 109, 131, 123, 122, 135, 132, 133, 118, 126, 127, 126, 138, 130, 103, 114, 127, 110, 126, 106, 124, 135, 114, 121, 121, 123, 116, 116, 136, 130, 122, 152, 121, 133, 133, 124, 131, 129, 128, 109, 114, 125, 114, 118, 121, 122, 134, 134, 134, 126, 119, 119, 135, 127, 131, 132, 126, 118, 124, 114, 127, 138, 115, 134, 138, 128, 127, 121, 117, 133, 122, 120, 120, 117, 124, 125, 121, 117, 111, 132, 120, 128, 132, 136, 134, 115, 136, 119, 135, 129, 117, 127, 125, 123, 123, 123, 111, 135, 110, 92, 129, 126, 114, 119, 128, 142, 124, 123, 129, 124, 122, 123, 134, 128, 128, 134, 121, 127, 131, 131, 141, 127, 135, 134, 128, 138, 104, 120, 129, 116, 142, 116, 138, 112, 115, 131, 127, 116, 134, 119, 126, 151, 124, 115, 125, 140, 129, 126, 135, 117, 123, 115, 143, 122, 129, 124, 138, 110, 126, 117, 112, 123, 119, 136, 106, 125, 124, 144, 140, 128, 131, 112, 119, 119, 113, 120, 124, 121, 129, 124, 121, 135, 138, 109, 119, 125, 134, 120, 119, 144, 121, 124, 122, 135, 127, 117, 125, 141, 104, 113, 143, 126, 135, 121, 147, 123, 115, 141, 119, 120, 117, 122, 131, 125, 150, 111, 108, 135, 115, 126, 134, 122, 124, 113, 128, 118, 120, 127, 111, 124, 126, 128, 120, 129, 117, 129, 121, 121, 105, 118, 123, 125, 121, 132, 130, 134, 130, 117, 134, 103, 132, 135, 125, 128, 116, 135, 114, 104, 141, 118, 119, 126, 111, 106, 136, 120, 135, 130, 128, 126, 118, 126, 142, 126, 129, 123, 113, 119, 124, 120, 126, 131, 125, 122, 111, 126, 110, 124, 134, 116, 127, 124, 133, 122, 124, 126, 125, 126, 141, 117, 118, 125, 121, 137, 113, 137, 121, 137, 128, 142, 107, 117, 128, 110, 122, 131, 110, 123, 144, 122, 132, 137, 144, 118, 100, 125, 120, 106, 121, 134, 118, 127, 143, 116, 119, 119, 129, 130, 135, 124, 153, 119, 110, 137, 127, 131, 126, 120, 127, 164, 132, 116, 105, 140, 115, 128, 117, 124, 121, 131, 133, 125, 129, 127, 118, 119, 115, 104, 126, 155, 117, 132, 121, 139, 127, 148, 129, 137, 124, 129, 100, 135, 139, 128, 129, 123, 128, 130, 125, 119, 129, 124, 122, 109, 121, 119, 121, 117, 137, 138, 128, 137, 106, 136, 130, 127, 116, 125, 142, 114, 130, 143, 102, 125, 138, 140, 124, 140, 118, 126, 122, 131, 137, 131, 137, 116, 129, 122, 124, 118, 128, 113, 127, 135, 110, 132, 128, 120, 126, 127, 131, 125, 134, 127, 130, 125, 145, 122, 136, 120, 134, 124, 142, 135, 145, 121, 140, 112, 126, 112, 120, 127, 134, 124, 105, 125, 114, 128, 130, 127, 156, 111, 103, 121, 129, 130, 131, 122, 131, 130, 121, 134, 126, 128, 138, 126, 117, 130, 108, 111, 127, 110, 135, 144, 136, 133, 126, 141, 117, 138, 132, 123, 127, 130, 120, 128, 116, 143, 131, 117, 143, 144, 121, 120, 125, 122, 122, 126, 124, 120, 132, 128, 138, 143, 132, 130, 121, 112, 125, 123, 125, 140, 130, 132, 124, 127, 137, 117, 133, 136, 132, 121, 132, 123, 127, 129, 133, 124, 123, 114, 116, 117, 127, 102, 122, 125, 130, 121, 112, 127, 121, 131, 112, 129, 117, 131, 133, 126, 106, 117, 118, 114, 130, 127, 130, 126, 116, 133, 130, 137, 137, 129, 124, 114, 131, 143, 129, 121, 124, 113, 110, 114, 130, 129, 131, 134, 154, 119, 116, 129, 125, 125, 142, 133, 122, 130, 123, 114, 129, 125, 139, 129, 119, 118, 147, 123, 125, 129, 130, 118, 103, 122, 105, 135, 128, 127, 118, 136, 122, 128, 106, 125, 133, 124, 123, 107, 126, 120, 120, 121, 130, 130, 120, 130, 115, 104, 131, 107, 130, 119, 119, 100, 133, 137, 133, 115, 137, 124, 128, 148, 121, 121, 123, 131, 122, 136, 138, 127, 120, 143, 104, 119, 115, 123, 115, 117, 135, 115, 110, 109, 127, 104, 134, 126, 140, 126, 126, 128, 121, 124, 129, 121, 121, 120, 123, 121, 130, 108, 118, 143, 119, 142, 134, 131, 122, 117, 129, 143, 128, 119, 107, 114, 127, 110, 127, 136, 137, 122, 126, 134, 111, 125, 145, 111, 115, 116, 117, 121, 127, 129, 133, 108, 113, 123, 123, 98, 134, 115, 136, 113, 119, 123, 124, 136, 130, 119, 120, 150, 136, 118, 121, 132, 127, 114, 132, 112, 125, 133, 131, 140, 136, 122, 122, 120, 127, 114, 120, 124, 129, 113, 131, 109, 120, 129, 125, 135, 121, 115, 104, 121, 128, 99, 117, 120, 119, 122, 124, 119, 136, 130, 131, 121, 123, 127, 139, 122, 119, 116, 110, 140, 133, 121, 157, 126, 119, 126, 99, 141, 131, 135, 134, 139, 168, 134, 122, 113, 137, 138, 121, 123, 129, 149, 113, 100, 109, 133, 133, 128, 143, 159, 125, 125, 115, 123, 127, 138, 146, 128, 120, 130, 115, 141, 125, 99, 116, 124, 110, 123, 125, 128, 119, 126, 102, 131, 125, 130, 110, 128, 138, 128, 131, 155, 145, 107, 109, 123, 135, 106, 139, 120, 124, 108, 108, 110, 112, 129, 147, 127, 135, 131, 118, 140, 125, 126, 130, 129, 129, 111, 123, 122, 140, 127, 110, 123, 133, 141, 111, 128, 129, 127, 115, 125, 120, 147, 99, 127, 129, 106, 85, 130, 114, 117, 123, 135, 116, 104, 125, 132, 117, 134, 137, 124, 127, 113, 136, 139, 135, 120, 132, 113, 124, 130, 132, 130, 129, 127, 108, 124, 119, 142, 127, 133, 112, 108, 112, 135, 111, 111, 134, 125, 122, 142, 110, 116, 134, 132, 129, 122, 132, 118, 130, 123, 124, 121, 102, 121, 100, 124, 130, 135, 110, 157, 115, 117, 109, 127, 136, 118, 113, 113, 138, 113, 123, 118, 120, 148, 129, 124, 102, 118, 140, 115, 129, 137, 130, 132, 123, 118, 123, 110, 112, 125, 122, 113, 137, 125, 136, 143, 121, 119, 123, 134, 117, 120, 132, 145, 131, 135, 134, 127, 123, 122, 129, 146, 117, 117, 112, 128, 131, 125, 115, 125, 124, 132, 135, 149, 118, 119, 132, 117, 102, 118, 127, 113, 127, 110, 121, 133, 118, 122, 126, 114, 118, 139, 119, 133, 131, 142, 138, 115, 119, 127, 119, 107, 104, 117, 110, 104, 140, 117, 122, 136, 120, 120, 104, 125, 130, 114, 136, 135, 124, 119, 133, 128, 135, 122, 125, 127, 112, 124, 134, 127, 133, 134, 122, 128, 121, 108, 127, 132, 125, 127, 133, 113, 115, 130, 130, 125, 116, 140, 138, 142, 125, 121, 144, 136, 103, 99, 108, 121, 122, 129, 115, 132, 129, 137, 129, 116, 116, 137, 119, 121, 128, 140, 136, 119, 115, 128, 116, 123, 132, 122, 137, 127, 117, 114, 123, 135, 124, 140, 120, 113, 135, 124, 138, 115, 136, 121, 122, 120, 110, 115, 146, 111, 134, 144, 125, 119, 131, 123, 125, 133, 120, 125, 135, 108, 112, 124, 126, 117, 144, 126, 121, 131, 122, 114, 119, 132, 108, 121, 135, 126, 125, 127, 131, 123, 113, 126, 126, 131, 133, 127, 131, 114, 129, 125, 136, 120, 125, 119, 123, 128, 112, 114, 108, 120, 153, 135, 116, 128, 133, 122, 106, 140, 138, 123, 122, 112, 124, 123, 131, 121, 112, 120, 120, 128, 125, 111, 123, 138, 123, 122, 126, 99, 138, 142, 126, 112, 134, 123, 112, 131, 116, 125, 116, 129, 139, 119, 122, 122, 124, 111, 100, 143, 152, 134, 124, 141, 109, 135, 121, 125, 124, 136, 133, 124, 104, 100, 132, 109, 133, 111, 121, 113, 130, 107, 138, 132, 117, 106, 116, 134, 129, 124, 116, 126, 122, 135, 144, 124, 103, 94, 119, 124, 118, 118, 119, 122, 136, 125, 121, 123, 115, 129, 146, 129, 121, 123, 133, 122, 116, 117, 116, 125, 122, 112, 123, 139, 154, 118, 104, 107, 133, 121, 124, 149, 131, 142, 116, 105, 127, 116, 121, 108, 141, 118, 116, 124, 110, 132, 124, 135, 109, 126, 133, 132, 133, 148, 125, 125, 125, 123, 137, 117, 117, 107, 112, 118, 116, 141, 141, 131, 125, 138, 134, 113, 137, 129, 127, 119, 131, 126, 129, 143, 128, 137, 131, 141, 126, 124, 135, 123, 113, 126, 122, 134, 115, 141, 122, 120, 121, 121, 133, 119, 128, 124, 152, 137, 127, 113, 129, 140, 110, 153, 122, 121, 130, 124, 129, 121, 126, 123, 127, 134, 120, 108, 123, 105, 123, 138, 110, 140, 123, 120, 111, 113, 124, 119, 132, 124, 121, 130, 116, 110, 127, 122, 139, 141, 132, 153, 122, 140, 136, 146, 113, 112, 130, 126, 116, 124, 118, 123, 125, 133, 129, 114, 149, 130, 115, 132, 105, 149, 124, 119, 123, 127, 115, 123, 133, 129, 136, 117, 118, 125, 136, 147, 129, 130, 139, 112, 125, 118, 127, 118, 123, 120, 121, 114, 138, 127, 126, 111, 134, 127, 121, 126, 134, 121, 133, 120, 131, 115, 129, 123, 135, 114, 117, 115, 120, 136, 131, 119, 132, 115, 119, 117, 127, 134, 117, 134, 134, 137, 133, 109, 119, 142, 144, 104, 137, 127, 124, 123, 122, 134, 120, 108, 138, 125, 160, 126, 125, 117, 126, 121, 115, 130, 130, 115, 118, 139, 134, 133, 113, 144, 124, 135, 123, 122, 140, 117, 128, 119, 119, 120, 109, 110, 119, 126, 125, 128, 137, 119, 124, 114, 129, 116, 108, 123, 124, 145, 141, 94, 133, 121, 112, 126, 135, 119, 127, 143, 123, 121, 118, 124, 120, 121, 135, 146, 109, 108, 122, 146, 129, 125, 117, 124, 118, 149, 123, 117, 127, 145, 125, 128, 124, 128, 127, 124, 125, 123, 133, 126, 121, 128, 131, 95, 132, 123, 123, 114, 122, 106, 128, 134, 117, 122, 103, 129, 134, 146, 137, 129, 128, 124, 127, 109, 155, 135, 120, 126, 131, 110, 124, 123, 118, 120, 129, 136, 149, 131, 125, 110, 144, 127, 139, 124, 139, 129, 130, 120, 137, 142, 116, 125, 118, 134, 134, 127, 140, 136, 126, 136, 142, 126, 111, 120, 116, 131, 119, 124, 124, 128, 118, 140, 129, 107, 119, 147, 101, 115, 120, 132, 122, 120, 103, 124, 130, 132, 123, 117, 111, 134, 127, 116, 119, 132, 118, 118, 134, 134, 120, 120, 130, 126, 124, 119, 112, 122, 123, 106, 142, 114, 104, 121, 113, 109, 126, 121, 110, 111, 113, 120, 133, 130, 136, 112, 124, 115, 125, 123, 132, 113, 142, 132, 117, 126, 108, 107, 132, 138, 127, 125, 115, 117, 119, 120, 136, 121, 122, 125, 130, 110, 123, 135, 140, 124, 131, 117, 125, 106, 125, 126, 124, 136, 136, 122, 96, 134, 147, 152, 115, 119, 89, 109, 126, 103, 140, 125, 115, 125, 102, 124, 114, 122, 133, 121, 126, 120, 107, 118, 122, 136, 144, 125, 135, 115, 146, 127, 101, 125, 139, 124, 122, 139, 120, 131, 125, 135, 124, 117, 148, 138, 121, 128, 132, 123, 127, 120, 131, 115, 128, 118, 124, 139, 107, 129, 136, 130, 127, 114, 118, 145, 134, 118, 104, 132, 111, 117, 130, 139, 130, 127, 118, 124, 126, 121, 129, 125, 132, 127, 104, 117, 128, 131, 140, 119, 116, 148, 123, 120, 123, 130, 140, 143, 123, 116, 129, 120, 131, 120, 132, 136, 126, 116, 149, 140, 120, 126, 118, 118, 105, 126, 108, 125, 104, 139, 127, 133, 133, 122, 108, 120, 142, 119, 134, 135, 113, 145, 129, 128, 136, 123, 126, 139, 128, 110, 131, 134, 115, 124, 126, 128, 134, 115, 132, 124, 136, 112, 131, 126, 133, 128, 143, 130, 126, 120, 124, 120, 107, 107, 124, 121, 124, 124, 124, 143, 123, 133, 116, 116, 128, 131, 106, 122, 135, 133, 127, 116, 137, 110, 125, 145, 110, 125, 118, 118, 131, 132, 123, 131, 136, 101, 121, 128, 130, 115, 103, 116, 138, 132, 127, 111, 94, 114, 114, 113, 111, 116, 133, 129, 120, 115, 135, 132, 133, 130, 122, 124, 118, 119, 111, 123, 101, 111, 124, 123, 117, 133, 129, 111, 131, 121, 134, 115, 115, 116, 141, 122, 112, 125, 103, 129, 106, 150, 122, 128, 131, 112, 133, 126, 119, 122, 126, 124, 139, 124, 118, 118, 115, 124, 137, 125, 121, 138, 135, 131, 135, 142, 116, 126, 113, 132, 102, 139, 127, 118, 131, 148, 114, 113, 126, 125, 123, 116, 119, 143, 135, 132, 146, 134, 126, 114, 128, 128, 144, 148, 130, 130, 152, 128, 129, 123, 121, 114, 124, 131, 111, 134, 128, 122, 119, 130, 134, 129, 119, 123, 117, 129, 129, 131, 115, 126, 129, 128, 125, 140, 121, 113, 147, 125, 136, 125, 134, 135, 127, 121, 116, 124, 129, 122, 139, 127, 106, 100, 111, 130, 107, 132, 121, 131, 129, 125, 124, 132, 134, 134, 127, 134, 137, 137, 134, 110, 109, 133, 124, 124, 141, 129, 130, 105, 138, 140, 131, 129, 134, 116, 116, 134, 136, 128, 131, 134, 123, 135, 124, 135, 129, 143, 114, 133, 130, 141, 124, 131, 135, 118, 115, 136, 135, 116, 136, 134, 128, 120, 116, 128, 127, 127, 127, 122, 127, 126, 117, 141, 105, 136, 114, 126, 119, 104, 131, 120, 131, 133, 138, 125, 112, 128, 142, 134, 135, 117, 128, 125, 124, 147, 121, 109, 148, 122, 115, 120, 118, 129, 122, 120, 113, 143, 123, 135, 131, 124, 113, 112, 122, 114, 138, 117, 106, 122, 123, 126, 120, 127, 138, 120, 123, 118, 127, 127, 130, 106, 133, 114, 119, 132, 120, 120, 140, 117, 119, 143, 120, 125, 125, 135, 123, 138, 139, 126, 120, 116, 119, 115, 126, 128, 139, 117, 123, 123, 123, 111, 124, 127, 113, 118, 106, 132, 124, 137, 117, 125, 117, 140, 121, 120, 117, 128, 129, 108, 130, 118, 110, 111, 138, 131, 121, 144, 123, 135, 114, 124, 130, 145, 123, 120, 137, 131, 136, 121, 131, 112, 128, 126, 116, 123, 113, 119, 115, 126, 128, 141, 132, 118, 148, 128, 130, 125, 135, 125, 118, 112, 125, 125, 97, 113, 134, 129, 109, 142, 126, 124, 130, 118, 141, 129, 130, 128, 115, 126, 118, 150, 137, 123, 133, 128, 124, 123, 123, 120, 126, 115, 136, 102, 126, 125, 121, 139, 129, 122, 129, 127, 132, 101, 110, 147, 124, 128, 138, 123, 125, 113, 99, 118, 134, 142, 128, 118, 126, 127, 112, 125, 122, 114, 137, 130, 127, 117, 135, 121, 136, 139, 126, 114, 118, 105, 113, 112, 120, 129, 128, 139, 112, 123, 117, 123, 132, 122, 119, 105, 114, 113, 123, 120, 113, 127, 94, 118, 128, 125, 146, 132, 114, 108, 150, 115, 134, 119, 130, 132, 127, 114, 125, 122, 139, 127, 150, 98, 124, 134, 122, 118, 165, 138, 121, 120, 129, 110, 118, 119, 130, 124, 104, 130, 117, 130, 109, 128, 125, 121, 126, 132, 128, 116, 129, 109, 133, 129, 132, 123, 118, 147, 135, 124, 111, 130, 115, 143, 125, 138, 132, 125, 113, 125, 117, 145, 143, 137, 127, 128, 120, 127, 134, 109, 131, 131, 132, 144, 115, 127, 125, 112, 125, 135, 120, 134, 123, 126, 129, 142, 128, 125, 126, 122, 122, 108, 102, 131, 111, 104, 121, 121, 141, 123, 117, 142, 118, 147, 120, 143, 105, 117, 115, 138, 111, 120, 137, 134, 143, 120, 140, 118, 116, 110, 109, 110, 129, 101, 124, 130, 134, 132, 131, 126, 141, 122, 135, 123, 120, 117, 123, 116, 111, 118, 116, 115, 129, 152, 128, 115, 116, 136, 114, 138, 156, 126, 122, 141, 136, 122, 139, 112, 130, 143, 122, 119, 123, 131, 120, 108, 138, 119, 121, 129, 123, 128, 112, 122, 125, 142, 108, 125, 101, 131, 145, 119, 127, 140, 126, 129, 132, 133, 122, 131, 109, 113, 116, 139, 140, 107, 129, 128, 142, 126, 132, 143, 126, 121, 129, 155, 115, 116, 115, 109, 114, 150, 112, 118, 125, 134, 133, 130, 124, 121, 111, 115, 115, 135, 123, 128, 115, 127, 134, 121, 137, 130, 120, 125, 123, 121, 110, 133, 114, 119, 115, 134, 124, 116, 121, 139, 117, 115, 132, 113, 135, 125, 118, 124, 118, 125, 108, 144, 145, 131, 118, 114, 127, 129, 135, 139, 113, 136, 121, 134, 119, 145, 115, 122, 131, 146, 132, 139, 134, 138, 117, 138, 126, 124, 129, 126, 133, 125, 129, 138, 123, 132, 117, 127, 139, 118, 132, 132, 122, 124, 108, 108, 118, 100, 120, 129, 112, 113, 121, 117, 128, 124, 130, 140, 138, 128, 128, 122, 124, 128, 129, 114, 127, 123, 134, 119, 117, 132, 136, 109, 133, 142, 119, 135, 125, 131, 117, 128, 116, 109, 139, 128, 118, 126, 127, 114, 137, 137, 104, 139, 115, 108, 112, 128, 126, 110, 105, 132, 110, 119, 121, 118, 125, 136, 122, 99, 104, 119, 112, 135, 130, 130, 124, 110, 134, 140, 126, 120, 144, 128, 129, 128, 140, 134, 124, 139, 130, 121, 130, 128, 120, 125, 124, 110, 135, 136, 143, 120, 113, 126, 119, 132, 139, 118, 121, 123, 118, 112, 138, 109, 126, 120, 119, 125, 126, 121, 121, 127, 124, 116, 139, 115, 122, 130, 128, 112, 135, 138, 132, 119, 128, 117, 130, 123, 116, 112, 124, 120, 124, 135, 139, 123, 134, 121, 119, 123, 113, 127, 137, 103, 140, 117, 127, 118, 123, 123, 130, 132, 114, 129, 119, 115, 129, 134, 121, 126, 132, 117, 131, 117, 122, 128, 135, 116, 117, 128, 130, 95, 131, 124, 117, 119, 118, 132, 150, 129, 117, 117, 121, 119, 141, 125, 128, 154, 139, 95, 140, 122, 128, 124, 113, 118, 133, 123, 136, 115, 110, 133, 129, 115, 125, 128, 130, 119, 135, 126, 114, 129, 111, 124, 111, 132, 143, 154, 110, 113, 114, 132, 118, 107, 128, 135, 127, 131, 120, 116, 123, 119, 133, 139, 128, 132, 114, 140, 111, 135, 134, 120, 132, 112, 136, 121, 114, 129, 137, 132, 140, 125, 134, 128, 124, 121, 149, 123, 142, 136, 117, 135, 123, 122, 115, 139, 150, 134, 116, 125, 114, 145, 122, 135, 144, 134, 130, 144, 115, 135, 128, 129, 138, 139, 144, 117, 120, 137, 129, 132, 116, 120, 113, 147, 129, 138, 121, 122, 100, 116, 110, 127, 120, 116, 123, 117, 109, 135, 129, 129, 117, 135, 112, 131, 119, 122, 130, 127, 114, 141, 138, 95, 117, 144, 121, 116, 116, 138, 125, 134, 116, 128, 132, 111, 148, 119, 122, 138, 116, 110, 135, 119, 125, 112, 165, 124, 107, 114, 113, 102, 137, 132, 130, 130, 127, 115, 122, 130, 123, 125, 133, 113, 120, 112, 132, 102, 104, 140, 126, 110, 113, 144, 148, 125, 123, 139, 138, 125, 116, 122, 105, 118, 158, 130, 115, 129, 130, 118, 141, 114, 155, 141, 125, 120, 143, 127, 126, 134, 110, 133, 133, 117, 128, 114, 123, 140, 120, 135, 135, 134, 145, 127, 106, 142, 133, 116, 120, 105, 124, 128, 119, 117, 128, 118, 122, 131, 126, 120, 117, 115, 114, 131, 119, 135, 113, 113, 123, 142, 129, 149, 133, 137, 126, 128, 138, 120, 117, 140, 143, 116, 127, 142, 121, 130, 118, 138, 133, 121, 145, 111, 126, 120, 140, 132, 118, 121, 148, 135, 135, 126, 124, 130, 126, 125, 122, 101, 121, 118, 126, 122, 113, 117, 116, 142, 92, 136, 115, 123, 139, 102, 123, 131, 129, 159, 113, 115, 122, 129, 133, 132, 108, 143, 119, 115, 124, 115, 121, 128, 121, 128, 127, 122, 143, 114, 131, 126, 123, 159, 124, 150, 126, 108, 133, 122, 145, 137, 106, 117, 156, 119, 133, 113, 122, 119, 149, 122, 122, 124, 123, 111, 122, 122, 131, 130, 146, 103, 102, 129, 114, 152, 119, 124, 141, 123, 121, 142, 129, 110, 129, 138, 120, 141, 127, 117, 116, 121, 137, 130, 134, 135, 118, 118, 125, 126, 123, 121, 101, 122, 113, 125, 109, 135, 122, 121, 116, 121, 130, 108, 153, 115, 137, 116, 130, 120, 108, 117, 135, 129, 127, 131, 114, 133, 131, 138, 124, 128, 145, 131, 142, 132, 119, 116, 124, 123, 132, 136, 133, 141, 121, 121, 114, 129, 96, 129, 135, 122, 126, 128, 119, 111, 126, 131, 115, 128, 129, 136, 115, 135, 139, 109, 128, 124, 118, 135, 136, 134, 136, 136, 111, 125, 130, 127, 133, 120, 123, 122, 115, 130, 106, 114, 117, 142, 120, 126, 126, 139, 135, 116, 121, 135, 118, 129, 130, 131, 113, 116, 124, 136, 121, 135, 126, 121, 138, 148, 129, 133, 139, 121, 119, 123, 129, 144, 129, 127, 115, 130, 118, 114, 122, 119, 113, 127, 137, 102, 110, 120, 128, 117, 120, 135, 112, 118, 130, 112, 119, 124, 135, 125, 123, 129, 123, 126, 121, 134, 130, 124, 123, 133, 135, 121, 116, 136, 116, 130, 131, 128, 145, 123, 129, 127, 120, 122, 120, 124, 133, 134, 135, 130, 134, 118, 103, 115, 120, 128, 144, 145, 134, 118, 120, 121, 121, 108, 117, 119, 125, 105, 124, 133, 116, 137, 129, 120, 135, 138, 138, 126, 135, 121, 135, 143, 146, 154, 121, 129, 147, 140, 130, 118, 115, 127, 125, 126, 107, 121, 127, 123, 121, 107, 129, 111, 144, 131, 154, 109, 119, 133, 117, 119, 113, 104, 117, 121, 123, 115, 124, 126, 135, 126, 114, 117, 127, 115, 154, 111, 116, 135, 117, 128, 128, 145, 133, 120, 125, 130, 137, 159, 127, 134, 133, 135, 122, 110, 131, 125, 121, 137, 141, 131, 128, 118, 129, 130, 134, 137, 152, 127, 108, 113, 106, 134, 135, 134, 138, 130, 136, 121, 131, 129, 123, 119, 132, 122, 139, 120, 122, 126, 145, 134, 126, 128, 138, 141, 121, 131, 124, 128, 131, 144, 96, 129, 114, 128, 115, 117, 118, 131, 121, 129, 133, 136, 131, 145, 121, 136, 124, 135, 132, 122, 113, 112, 110, 144, 145, 124, 120, 118, 148, 115, 125, 118, 114, 126, 128, 134, 116, 125, 142, 140, 126, 131, 125, 125, 110, 134, 108, 143, 136, 118, 126, 117, 131, 124, 127, 140, 101, 128, 126, 124, 123, 113, 135, 118, 128, 118, 127, 139, 138, 139, 124, 122, 114, 128, 129, 110, 128, 132, 129, 140, 141, 114, 128, 111, 118, 125, 130, 141, 131, 130, 121, 127, 143, 116, 124, 140, 107, 126, 132, 124, 114, 113, 130, 133, 127, 116, 129, 121, 109, 101, 134, 142, 109, 125, 117, 118, 131, 125, 120, 119, 127, 131, 127, 108, 134, 119, 143, 138, 151, 119, 105, 131, 126, 139, 131, 120, 136, 121, 123, 114, 141, 120, 120, 137, 133, 146, 139, 127, 117, 136, 118, 110, 143, 123, 153, 112, 141, 130, 127, 124, 116, 124, 123, 111, 133, 122, 131, 125, 121, 127, 138, 126, 136, 115, 135, 125, 125, 129, 122, 114, 122, 117, 142, 140, 131, 132, 105, 117, 126, 126, 131, 104, 122, 123, 111, 125, 140, 140, 117, 116, 119, 133, 114, 123, 105, 120, 123, 115, 117, 128, 127, 121, 140, 120, 127, 122, 132, 145, 125, 126, 139, 123, 148, 137, 114, 108, 120, 115, 125, 132, 131, 124, 115, 138, 131, 100, 107, 142, 139, 124, 124, 120, 140, 127, 134, 115, 115, 137, 130, 142, 115, 107, 108, 123, 123, 128, 133, 125, 140, 132, 140, 115, 129, 137, 132, 131, 131, 138, 117, 125, 118, 117, 124, 126, 126, 129, 130, 123, 129, 127, 133, 117, 127, 110, 118, 114, 136, 94, 119, 117, 137, 118, 114, 134, 133, 118, 126, 115, 112, 117, 129, 121, 110, 112, 138, 118, 126, 101, 135, 128, 122, 122, 119, 112, 133, 139, 137, 142, 112, 113, 122, 120, 128, 104, 138, 139, 118, 118, 125, 134, 108, 110, 122, 126, 122, 114, 131, 122, 111, 130, 144, 135, 136, 129, 116, 122, 129, 153, 130, 120, 131, 127, 121, 112, 122, 131, 154, 133, 118, 113, 109, 117, 122, 147, 111, 137, 113, 117, 116, 117, 125, 125, 130, 120, 128, 128, 125, 125, 112, 130, 123, 108, 140, 127, 114, 130, 126, 127, 131, 142, 138, 134, 126, 122, 126, 128, 129, 110, 128, 118, 122, 113, 130, 124, 134, 121, 119, 138, 133, 131, 115, 126, 108, 140, 115, 133, 125, 117, 143, 115, 116, 132, 105, 129, 113, 105, 106, 137, 118, 127, 128, 137, 116, 147, 139, 130, 120, 130, 129, 162, 109, 121, 100, 136, 129, 129, 118, 139, 124, 115, 122, 99, 119, 109, 146, 111, 121, 121, 125, 114, 114, 134, 128, 127, 140, 148, 120, 134, 104, 90, 119, 138, 118, 121, 116, 114, 128, 134, 125, 129, 136, 130, 138, 127, 129, 134, 116, 116, 119, 119, 134, 137, 113, 136, 138, 125, 131, 129, 129, 120, 112, 130, 112, 123, 130, 113, 117, 115, 116, 131, 118, 128, 118, 135, 132, 97, 109, 120, 133, 121, 127, 105, 138, 111, 123, 130, 126, 123, 151, 123, 117, 116, 126, 134, 138, 132, 113, 123, 118, 131, 121, 128, 126, 120, 132, 145, 127, 132, 116, 129, 132, 121, 121, 128, 124, 132, 144, 141, 113, 98, 117, 129, 136, 122, 141, 120, 114, 136, 140, 123, 106, 123, 126, 140, 119, 131, 129, 132, 129, 126, 134, 140, 135, 145, 128, 119, 126, 114, 141, 131, 132, 112, 115, 125, 115, 130, 133, 137, 131, 116, 115, 118, 106, 120, 130, 100, 145, 115, 112, 110, 134, 113, 129, 124, 127, 119, 113, 101, 133, 110, 136, 136, 132, 151, 141, 119, 129, 138, 112, 128, 111, 118, 119, 127, 129, 129, 119, 134, 130, 139, 118, 131, 120, 119, 138, 153, 126, 106, 115, 111, 126, 146, 123, 124, 119, 134, 119, 129, 129, 119, 133, 131, 122, 123, 123, 137, 127, 122, 126, 135, 120, 138, 120, 122, 133, 123, 145, 118, 135, 114, 136, 109, 129, 141, 144, 115, 133, 130, 132, 122, 116, 126, 119, 124, 124, 128, 114, 93, 107, 126, 122, 132, 135, 124, 127, 137, 122, 119, 129, 134, 113, 121, 120, 117, 119, 118, 118, 145, 131, 120, 123, 129, 139, 118, 136, 127, 128, 126, 112, 136, 115, 109, 124, 109, 125, 129, 134, 110, 133, 128, 112, 129, 126, 131, 127, 136, 131, 120, 132, 113, 146, 119, 109, 134, 133, 140, 138, 116, 121, 109, 116, 142, 133, 131, 135, 116, 145, 122, 144, 118, 122, 127, 134, 147, 115, 116, 127, 134, 128, 119, 114, 118, 139, 136, 159, 122, 136, 138, 122, 118, 116, 129, 133, 112, 132, 120, 116, 125, 130, 108, 123, 126, 138, 111, 134, 125, 118, 134, 129, 137, 131, 138, 130, 129, 135, 139, 124, 130, 118, 120, 105, 141, 133, 132, 100, 113, 122, 122, 118, 129, 121, 123, 146, 117, 117, 126, 131, 120, 128, 119, 124, 140, 114, 116, 131, 127, 141, 124, 141, 129, 144, 114, 122, 114, 113, 116, 132, 135, 132, 136, 138, 127, 117, 119, 123, 127, 119, 130, 128, 117, 115, 124, 126, 117, 106, 114, 113, 134, 138, 110, 118, 124, 118, 119, 131, 109, 137, 107, 132, 131, 132, 120, 131, 112, 129, 112, 114, 113, 134, 128, 130, 131, 131, 131, 144, 146, 120, 131, 127, 128, 117, 146, 119, 130, 109, 132, 144, 135, 133, 140, 112, 111, 146, 125, 130, 121, 122, 157, 128, 135, 127, 119, 132, 132, 118, 139, 122, 121, 135, 123, 118, 149, 120, 130, 120, 119, 109, 148, 120, 126, 103, 113, 135, 142, 100, 150, 120, 135, 140, 97, 142, 134, 115, 112, 116, 110, 118, 125, 137, 113, 107, 121, 124, 133, 119, 128, 126, 115, 141, 114, 138, 131, 125, 132, 122, 121, 118, 122, 120, 121, 133, 125, 133, 127, 127, 124, 138, 131, 136, 124, 124, 126, 119, 91, 113, 122, 132, 119, 132, 126, 123, 127, 129, 139, 135, 136, 123, 122, 123, 130, 126, 116, 128, 108, 128, 123, 123, 129, 108, 133, 129, 127, 105, 99, 107, 115, 144, 129, 117, 131, 136, 101, 118, 127, 155, 102, 123, 136, 141, 143, 140, 130, 126, 117, 107, 144, 136, 133, 113, 140, 116, 118, 131, 125, 116, 140, 108, 135, 131, 108, 147, 147, 116, 143, 131, 142, 126, 101, 123, 131, 109, 123, 112, 120, 124, 133, 119, 115, 123, 134, 125, 139, 118, 148, 141, 124, 129, 128, 122, 129, 115, 129, 130, 132, 137, 139, 130, 119, 103, 132, 129, 122, 118, 123, 122, 133, 138, 131, 129, 119, 124, 134, 95, 125, 109, 126, 125, 127, 120, 131, 109, 132, 140, 126, 127, 141, 136, 135, 114, 129, 136, 136, 124, 145, 136, 119, 123, 107, 130, 131, 119, 135, 120, 135, 115, 123, 145, 104, 122, 141, 115, 121, 113, 123, 130, 135, 117, 132, 130, 120, 135, 109, 120, 133, 120, 139, 133, 138, 119, 120, 129, 133, 115, 129, 132, 129, 117, 135, 113, 132, 121, 121, 136, 114, 148, 144, 128, 131, 119, 135, 138, 116, 121, 125, 120, 125, 140, 114, 133, 133, 112, 127, 123, 131, 108, 128, 135, 118, 123, 129, 139, 130, 126, 123, 120, 138, 129, 121, 110, 132, 113, 127, 132, 133, 134, 121, 125, 131, 127, 121, 120, 116, 132, 128, 136, 131, 131, 123, 134, 131, 116, 121, 112, 124, 135, 117, 121, 125, 129, 111, 128, 120, 139, 114, 122, 123, 130, 126, 136, 120, 124, 129, 118, 118, 161, 113, 116, 125, 127, 130, 107, 126, 156, 127, 122, 119, 130, 123, 138, 126, 110, 110, 126, 121, 143, 135, 128, 118, 137, 111, 133, 137, 132, 140, 131, 131, 141, 137, 123, 130, 113, 123, 110, 121, 118, 127, 132, 113, 112, 131, 142, 115, 121, 129, 124, 111, 106, 121, 123, 136, 134, 124, 122, 119, 116, 121, 116, 142, 129, 125, 123, 124, 134, 136, 127, 134, 99, 132, 132, 118, 113, 135, 113, 149, 137, 102, 123, 104, 135, 115, 130, 108, 125, 125, 149, 131, 123, 129, 136, 117, 126, 124, 119, 119, 121, 138, 115, 121, 129, 115, 129, 119, 121, 128, 121, 126, 99, 130, 121, 123, 112, 133, 119, 124, 122, 106, 134, 113, 116, 132, 118, 124, 109, 133, 129, 112, 133, 121, 121, 128, 133, 114, 112, 111, 135, 129, 125, 131, 126, 127, 123, 121, 117, 129, 127, 100, 135, 127, 111, 123, 130, 122, 121, 119, 127, 126, 123, 108, 137, 135, 121, 140, 117, 121, 134, 122, 133, 128, 110, 119, 121, 115, 107, 138, 127, 121, 101, 112, 120, 125, 116, 109, 120, 133, 142, 134, 143, 131, 119, 144, 127, 134, 123, 135, 113, 116, 111, 135, 100, 132, 133, 132, 132, 112, 124, 116, 137, 133, 128, 123, 115, 137, 112, 127, 113, 117, 100, 135, 132, 132, 128, 116, 133, 102, 125, 139, 143, 153, 121, 107, 128, 123, 122, 113, 114, 115, 109, 111, 123, 132, 138, 126, 129, 129, 123, 130, 135, 141, 114, 117, 129, 124, 120, 125, 129, 132, 139, 133, 134, 126, 126, 131, 133, 147, 105, 127, 134, 120, 129, 133, 123, 120, 125, 133, 135, 123, 114, 112, 144, 126, 124, 139, 130, 133, 138, 108, 139, 121, 104, 129, 130, 139, 122, 124, 120, 128, 117, 133, 132, 111, 117, 127, 153, 127, 139, 126, 128, 127, 114, 128, 114, 123, 143, 138, 118, 129, 111, 134, 142, 118, 151, 120, 124, 125, 122, 114, 124, 119, 111, 125, 150, 128, 124, 129, 123, 122, 125, 138, 129, 128, 116, 136, 132, 116, 131, 124, 145, 113, 128, 132, 118, 119, 116, 126, 118, 124, 117, 118, 128, 126, 141, 118, 138, 122, 132, 117, 123, 134, 130, 127, 118, 143, 152, 148, 119, 127, 128, 119, 131, 129, 120, 129, 109, 132, 115, 141, 112, 119, 135, 125, 125, 134, 119, 133, 130, 126, 111, 130, 128, 143, 121, 123, 121, 110, 108, 128, 128, 142, 138, 109, 130, 135, 115, 126, 136, 120, 136, 124, 140, 117, 127, 129, 119, 120, 118, 135, 132, 130, 129, 133, 123, 128, 145, 134, 124, 113, 134, 140, 123, 131, 135, 140, 135, 126, 128, 132, 138, 123, 124, 138, 117, 122, 140, 109, 135, 112, 126, 136, 96, 127, 118, 133, 149, 131, 121, 125, 116, 142, 119, 110, 140, 124, 128, 121, 145, 127, 138, 137, 131, 134, 132, 116, 138, 130, 125, 135, 120, 139, 123, 117, 145, 124, 124, 131, 111, 131, 123, 118, 121, 122, 137, 129, 124, 127, 122, 116, 137, 111, 112, 133, 121, 129, 134, 126, 117, 116, 101, 129, 140, 128, 120, 139, 117, 128, 127, 131, 110, 108, 121, 123, 115, 121, 126, 134, 138, 137, 125, 114, 114, 121, 112, 139, 122, 109, 127, 153, 118, 120, 116, 131, 135, 119, 122, 118, 127, 135, 128, 135, 119, 133, 127, 136, 124, 111, 125, 132, 137, 137, 121, 116, 113, 128, 137, 136, 119, 127, 118, 129, 127, 122, 129, 124, 122, 119, 113, 119, 125, 128, 121, 133, 136, 130, 132, 122, 131, 122, 140, 101, 124, 149, 116, 132, 125, 142, 108, 128, 140, 127, 130, 119, 117, 113, 134, 116, 121, 123, 126, 126, 140, 117, 111, 120, 110, 119, 134, 116, 126, 128, 121, 116, 123, 109, 131, 128, 124, 123, 148, 116, 126, 106, 143, 122, 113, 122, 133, 119, 117, 121, 110, 122, 110, 128, 133, 129, 117, 112, 123, 116, 120, 138, 124, 129, 130, 128, 116, 131, 121, 119, 136, 118, 145, 122, 116, 135, 112, 115, 119, 115, 121, 129, 137, 128, 132, 134, 123, 127, 137, 110, 117, 116, 139, 129, 128, 115, 124, 137, 126, 115, 124, 130, 106, 118, 120, 129, 144, 156, 129, 124, 115, 119, 129, 126, 122, 110, 132, 115, 127, 121, 135, 126, 126, 97, 125, 125, 116, 122, 133, 130, 138, 125, 118, 134, 135, 134, 128, 119, 129, 132, 124, 130, 109, 112, 130, 121, 141, 137, 137, 133, 136, 126, 137, 108, 145, 132, 110, 116, 130, 122, 110, 125, 140, 146, 125, 144, 120, 129, 133, 125, 122, 137, 125, 131, 139, 143, 126, 140, 106, 118, 130, 128, 133, 124, 123, 116, 124, 112, 122, 127, 105, 125, 137, 121, 126, 134, 124, 122, 145, 130, 128, 134, 134, 125, 129, 120, 106, 131, 138, 134, 105, 151, 137, 126, 133, 121, 124, 130, 130, 125, 137, 116, 119, 127, 102, 138, 117, 124, 134, 107, 121, 123, 124, 110, 133, 115, 112, 138, 105, 120, 123, 128, 111, 134, 132, 108, 120, 73, 124, 116, 120, 130, 133, 121, 124, 127, 121, 121, 127, 115, 115, 129, 125, 111, 116, 137, 126, 153, 115, 135, 136, 122, 117, 111, 135, 122, 132, 129, 131, 109, 121, 107, 141, 121, 127, 117, 119, 130, 125, 132, 121, 107, 124, 128, 141, 121, 114, 117, 118, 123, 121, 132, 127, 144, 115, 138, 119, 126, 127, 110, 137, 121, 118, 148, 127, 132, 136, 127, 113, 135, 129, 127, 138, 126, 127, 111, 135, 119, 124, 113, 133, 133, 137, 117, 107, 99, 132, 119, 130, 120, 113, 119, 116, 116, 127, 122, 128, 138, 131, 133, 116, 112, 120, 117, 122, 122, 158, 112, 128, 116, 123, 120, 104, 131, 112, 111, 149, 127, 131, 115, 148, 114, 118, 124, 130, 110, 114, 126, 135, 132, 126, 127, 111, 120, 120, 126, 127, 129, 124, 124, 111, 130, 134, 126, 123, 125, 127, 125, 142, 125, 130, 113, 125, 110, 118, 127, 117, 146, 122, 119, 124, 120, 124, 117, 119, 120, 120, 126, 120, 119, 116, 129, 136, 129, 125, 121, 119, 121, 106, 118, 143, 124, 112, 112, 130, 130, 146, 155, 130, 156, 132, 123, 116, 118, 120, 135, 144, 127, 132, 120, 120, 123, 131, 128, 134, 128, 115, 107, 145, 135, 128, 131, 118, 119, 143, 115, 113, 147, 124, 145, 127, 126, 141, 129, 131, 130, 125, 143, 116, 134, 129, 118, 127, 125, 131, 136, 128, 122, 134, 120, 125, 113, 123, 130, 143, 128, 146, 138, 128, 123, 110, 116, 117, 131, 119, 128, 123, 111, 120, 117, 127, 128, 123, 118, 122, 127, 134, 127, 116, 147, 122, 123, 127, 126, 146, 140, 125, 125, 118, 143, 103, 125, 108, 118, 111, 126, 125, 129, 122, 115, 127, 116, 121, 120, 127, 125, 107, 117, 119, 131, 110, 119, 129, 123, 125, 127, 136, 114, 108, 131, 125, 138, 112, 125, 115, 123, 134, 140, 110, 132, 122, 124, 114, 141, 135, 122, 121, 118, 117, 119, 127, 122, 118, 139, 111, 120, 115, 133, 123, 123, 124, 134, 104, 128, 121, 118, 121, 101, 131, 133, 142, 137, 110, 116, 136, 132, 129, 129, 123, 119, 144, 119, 126, 144, 112, 142, 117, 102, 134, 135, 123, 123, 136, 122, 127, 117, 116, 125, 124, 140, 112, 119, 120, 147, 125, 117, 119, 151, 117, 126, 136, 133, 132, 124, 138, 135, 144, 107, 129, 96, 127, 152, 112, 146, 136, 124, 129, 124, 107, 124, 136, 124, 115, 123, 117, 126, 116, 135, 132, 132, 115, 134, 120, 110, 122, 124, 124, 122, 140, 110, 121, 120, 114, 111, 130, 121, 118, 133, 120, 134, 136, 116, 100, 147, 128, 131, 117, 144, 127, 120, 114, 135, 132, 139, 85, 132, 98, 127, 126, 123, 139, 122, 110, 132, 137, 118, 143, 138, 124, 109, 138, 130, 116, 124, 134, 115, 121, 132, 131, 135, 129, 123, 127, 110, 144, 115, 134, 113, 131, 119, 128, 108, 125, 112, 135, 126, 143, 127, 130, 142, 118, 127, 128, 129, 119, 134, 126, 112, 133, 114, 140, 125, 125, 129, 112, 122, 134, 120, 115, 123, 108, 109, 113, 119, 135, 114, 120, 151, 129, 120, 130, 108, 136, 144, 109, 116, 119, 130, 126, 134, 101, 123, 112, 115, 125, 113, 94, 120, 142, 115, 126, 125, 117, 129, 132, 120, 113, 139, 124, 144, 145, 126, 150, 117, 115, 119, 119, 120, 131, 114, 138, 134, 125, 112, 135, 137, 103, 110, 122, 128, 121, 121, 128, 129, 138, 118, 126, 104, 124, 146, 133, 134, 97, 133, 135, 118, 105, 125, 127, 130, 132, 119, 131, 142, 113, 132, 106, 133, 128, 130, 130, 135, 127, 131, 106, 141, 144, 119, 136, 121, 133, 122, 134, 139, 113, 142, 116, 130, 118, 114, 122, 109, 141, 117, 124, 121, 125, 127, 146, 105, 135, 111, 129, 131, 130, 96, 129, 118, 126, 126, 119, 120, 131, 142, 108, 114, 122, 133, 136, 134, 111, 136, 140, 114, 111, 135, 133, 127, 151, 119, 126, 128, 129, 131, 136, 105, 121, 112, 132, 120, 117, 130, 141, 113, 120, 127, 162, 116, 132, 121, 154, 128, 125, 143, 132, 133, 116, 115, 118, 111, 96, 151, 134, 139, 125, 131, 116, 128, 141, 132, 121, 118, 125, 119, 125, 133, 109, 119, 122, 128, 121, 111, 119, 124, 128, 123, 109, 117, 134, 133, 124, 145, 103, 123, 136, 113, 130, 133, 136, 153, 120, 114, 120, 145, 135, 133, 113, 137, 118, 121, 127, 133, 111, 132, 124, 131, 127, 135, 128, 111, 136, 142, 109, 142, 116, 131, 132, 132, 135, 141, 122, 131, 117, 124, 128, 117, 128, 135, 121, 122, 138, 126, 124, 116, 122, 119, 148, 121, 143, 123, 111, 122, 128, 138, 128, 148, 134, 115, 125, 137, 138, 116, 120, 130, 134, 161, 117, 117, 127, 122, 124, 123, 129, 126, 130, 131, 132, 115, 127, 117, 128, 147, 128, 137, 121, 136, 104, 126, 132, 113, 121, 136, 123, 127, 121, 129, 147, 133, 116, 123, 100, 137, 130, 131, 134, 126, 131, 121, 126, 121, 114, 130, 119, 130, 125, 122, 112, 123, 115, 119, 150, 128, 126, 123, 134, 154, 113, 139, 119, 113, 133, 124, 140, 118, 127, 126, 121, 126, 144, 120, 130, 110, 137, 146, 119, 116, 121, 126, 113, 128, 127, 132, 134, 98, 129, 133, 125, 125, 109, 121, 126, 132, 131, 125, 114, 130, 126, 131, 119, 150, 139, 129, 126, 120, 128, 127, 133, 107, 121, 119, 127, 125, 134, 125, 139, 142, 126, 125, 123, 118, 141, 129, 133, 125, 113, 105, 115, 135, 136, 115, 131, 114, 119, 118, 124, 132, 113, 106, 109, 114, 113, 122, 123, 125, 129, 121, 115, 132, 126, 144, 126, 130, 135, 127, 137, 124, 106, 128, 116, 111, 106, 133, 136, 95, 121, 133, 137, 134, 119, 129, 96, 106, 124, 130, 118, 138, 121, 106, 117, 115, 135, 138, 124, 121, 122, 126, 129, 130, 117, 139, 113, 125, 139, 114, 132, 126, 122, 114, 110, 133, 136, 135, 107, 124, 125, 130, 114, 151, 123, 131, 121, 110, 118, 120, 141, 131, 116, 133, 124, 131, 120, 114, 155, 127, 134, 93, 126, 134, 121, 123, 121, 110, 121, 123, 120, 120, 127, 97, 137, 137, 145, 128, 129, 128, 134, 131, 115, 115, 125, 117, 117, 126, 142, 127, 122, 132, 126, 126, 138, 122, 120, 127, 139, 112, 131, 108, 95, 118, 123, 129, 121, 114, 133, 119, 123, 138, 136, 119, 139, 141, 109, 116, 100, 114, 136, 127, 136, 125, 117, 122, 128, 125, 127, 122, 118, 122, 123, 110, 109, 122, 126, 122, 128, 141, 127, 131, 122, 120, 122, 117, 123, 131, 131, 134, 147, 128, 118, 122, 141, 118, 129, 111, 121, 122, 128, 111, 130, 108, 138, 130, 119, 114, 119, 120, 97, 101, 135, 125, 125, 125, 145, 128, 147, 119, 122, 124, 116, 116, 127, 114, 128, 110, 134, 126, 126, 136, 117, 134, 138, 144, 100, 138, 126, 123, 124, 113, 127, 124, 123, 139, 107, 110, 110, 138, 114, 124, 134, 145, 138, 120, 129, 128, 127, 141, 131, 125, 112, 133, 135, 117, 143, 104, 130, 115, 128, 106, 120, 130, 124, 106, 126, 135, 115, 131, 132, 133, 132, 117, 110, 139, 125, 144, 112, 144, 122, 125, 133, 123, 116, 110, 104, 148, 116, 129, 127, 126, 143, 123, 116, 124, 134, 118, 134, 134, 112, 128, 146, 139, 129, 113, 114, 124, 115, 151, 110, 121, 121, 117, 121, 123, 116, 132, 119, 128, 130, 136, 132, 123, 129, 126, 145, 109, 125, 114, 142, 140, 126, 147, 133, 124, 126, 144, 137, 134, 127, 125, 117, 121, 128, 136, 131, 122, 141, 124, 108, 130, 133, 132, 127, 122, 107, 128, 122, 112, 135, 131, 119, 131, 129, 122, 133, 132, 116, 127, 132, 120, 135, 124, 125, 103, 114, 119, 127, 121, 136, 104, 139, 124, 139, 100, 132, 124, 118, 112, 139, 108, 131, 125, 117, 114, 115, 122, 143, 109, 128, 121, 136, 131, 114, 119, 125, 110, 127, 142, 148, 113, 136, 123, 106, 121, 103, 142, 141, 144, 123, 112, 115, 123, 132, 144, 100, 133, 157, 129, 137, 124, 123, 100, 129, 123, 130, 124, 133, 119, 125, 132, 130, 116, 115, 131, 118, 109, 105, 113, 115, 138, 114, 142, 111, 131, 129, 118, 127, 115, 122, 139, 145, 127, 126, 124, 129, 131, 130, 140, 131, 123, 113, 132, 133, 131, 110, 147, 134, 135, 127, 125, 145, 120, 109, 142, 122, 132, 113, 123, 126, 117, 117, 132, 120, 126, 127, 114, 126, 128, 152, 134, 118, 110, 105, 119, 116, 121, 124, 119, 128, 119, 132, 140, 135, 133, 82, 121, 133, 116, 128, 102, 106, 121, 127, 121, 133, 120, 132, 128, 99, 123, 136, 119, 109, 131, 120, 129, 119, 133, 125, 149, 128, 126, 122, 116, 113, 140, 128, 124, 129, 115, 133, 125, 138, 131, 110, 128, 128, 130, 129, 120, 113, 122, 129, 112, 130, 121, 130, 134, 117, 127, 108, 137, 119, 114, 127, 126, 124, 114, 123, 115, 140, 118, 130, 154, 122, 123, 129, 122, 128, 125, 144, 131, 130, 138, 138, 128, 106, 115, 116, 106, 134, 128, 131, 132, 120, 120, 123, 140, 124, 116, 117, 118, 123, 135, 129, 122, 116, 108, 100, 135, 129, 135, 140, 113, 112, 106, 123, 131, 148, 85, 121, 124, 136, 126, 128, 154, 118, 132, 109, 114, 138, 113, 108, 127, 129, 139, 124, 129, 139, 127, 117, 131, 90, 123, 112, 96, 116, 123, 145, 132, 124, 132, 114, 124, 116, 131, 137, 112, 131, 123, 132, 124, 121, 119, 112, 146, 121, 127, 107, 107, 131, 112, 129, 135, 117, 120, 131, 137, 125, 121, 123, 130, 147, 123, 133, 139, 109, 123, 131, 124, 120, 127, 124, 135, 114, 130, 127, 134, 149, 143, 144, 116, 117, 115, 113, 133, 117, 135, 130, 112, 123, 137, 121, 104, 115, 126, 104, 111, 132, 105, 133, 124, 129, 131, 134, 129, 153, 117, 114, 128, 131, 122, 127, 139, 126, 129, 121, 130, 111, 121, 116, 124, 115, 117, 129, 122, 124, 135, 131, 121, 124, 156, 140, 134, 126, 122, 111, 129, 113, 130, 127, 104, 145, 114, 132, 120, 120, 108, 112, 125, 120, 122, 109, 138, 117, 151, 121, 141, 113, 134, 134, 130, 107, 132, 118, 145, 146, 117, 117, 144, 110, 112, 123, 109, 115, 126, 149, 129, 122, 125, 132, 126, 132, 126, 120, 119, 121, 137, 119, 120, 123, 117, 130, 119, 104, 132, 130, 130, 119, 132, 147, 118, 127, 114, 128, 122, 112, 125, 120, 113, 116, 127, 111, 120, 131, 123, 118, 121, 133, 118, 142, 123, 131, 121, 134, 121, 118, 129, 135, 126, 145, 137, 123, 117, 112, 138, 117, 120, 125, 125, 133, 129, 130, 124, 137, 112, 114, 128, 122, 119, 110, 126, 112, 125, 138, 124, 137, 123, 106, 123, 133, 138, 118, 126, 131, 125, 112, 151, 146, 133, 127, 129, 128, 128, 108, 137, 125, 118, 111, 116, 133, 133, 132, 136, 138, 146, 127, 133, 116, 143, 104, 115, 128, 114, 111, 122, 134, 111, 128, 123, 123, 128, 126, 115, 112, 131, 109, 143, 127, 111, 115, 113, 118, 133, 143, 123, 141, 108, 144, 109, 140, 116, 122, 116, 128, 125, 123, 130, 133, 115, 137, 130, 134, 122, 132, 125, 105, 123, 120, 122, 107, 120, 133, 121, 110, 117, 138, 117, 132, 121, 130, 127, 128, 130, 127, 113, 131, 127, 119, 132, 137, 97, 122, 118, 139, 141, 129, 122, 134, 134, 135, 98, 131, 115, 116, 141, 129, 121, 141, 130, 131, 116, 130, 111, 126, 145, 129, 119, 114, 138, 128, 134, 134, 130, 128, 122, 114, 144, 106, 136, 114, 119, 128, 124, 134, 107, 144, 109, 103, 143, 129, 113, 106, 139, 102, 100, 105, 136, 115, 123, 120, 136, 116, 132, 121, 124, 120, 137, 122, 119, 142, 116, 132, 105, 110, 140, 120, 108, 122, 126, 115, 120, 127, 124, 123, 121, 105, 139, 126, 121, 114, 126, 126, 107, 112, 131, 137, 133, 124, 137, 113, 106, 112, 137, 145, 148, 122, 122, 123, 123, 110, 129, 131, 138, 136, 133, 114, 113, 114, 124, 119, 132, 105, 113, 130, 130, 118, 110, 123, 123, 153, 111, 138, 117, 121, 111, 118, 146, 132, 121, 116, 115, 117, 124, 118, 124, 134, 122, 118, 131, 131, 127, 133, 111, 131, 134, 131, 129, 126, 124, 122, 140, 107, 128, 119, 128, 121, 137, 110, 119, 122, 114, 135, 126, 111, 131, 137, 136, 140, 134, 113, 122, 122, 127, 135, 140, 137, 101, 107, 119, 129, 113, 129, 123, 102, 126, 119, 142, 139, 126, 139, 120, 136, 132, 134, 125, 135, 127, 114, 99, 130, 127, 105, 119, 101, 116, 127, 119, 126, 120, 135, 130, 117, 135, 127, 144, 104, 133, 124, 135, 155, 122, 132, 134, 115, 124, 125, 119, 132, 151, 126, 128, 127, 132, 139, 99, 136, 103, 128, 134, 132, 111, 137, 134, 133, 126, 119, 119, 108, 121, 128, 129, 107, 127, 133, 113, 127, 116, 123, 102, 131, 134, 130, 108, 116, 116, 142, 127, 114, 124, 127, 125, 125, 140, 164, 123, 130, 117, 135, 122, 95, 127, 115, 119, 142, 139, 115, 102, 131, 118, 117, 115, 137, 114, 121, 124, 135, 128, 131, 132, 138, 149, 140, 119, 151, 115, 131, 148, 139, 123, 136, 139, 122, 125, 101, 122, 121, 117, 122, 126, 131, 126, 99, 118, 133, 121, 132, 118, 117, 118, 127, 138, 102, 119, 117, 122, 142, 124, 116, 143, 146, 133, 121, 114, 134, 124, 110, 118, 132, 129, 144, 113, 114, 111, 131, 114, 125, 106, 107, 122, 129, 112, 126, 133, 141, 95, 120, 130, 109, 118, 134, 132, 114, 122, 138, 135, 119, 118, 126, 128, 122, 118, 119, 136, 131, 127, 109, 122, 110, 115, 127, 126, 141, 137, 135, 137, 118, 125, 111, 130, 114, 121, 142, 121, 137, 131, 103, 129, 136, 138, 124, 116, 141, 125, 118, 115, 142, 115, 142, 126, 125, 119, 117, 128, 131, 124, 125, 112, 112, 117, 114, 116, 121, 117, 111, 129, 108, 127, 121, 124, 141, 128, 112, 129, 144, 123, 131, 106, 139, 134, 108, 131, 109, 117, 130, 118, 132, 111, 129, 136, 130, 142, 112, 135, 128, 128, 124, 116, 127, 114, 114, 133, 126, 135, 108, 130, 113, 131, 113, 100, 119, 124, 116, 128, 120, 124, 136, 117, 115, 140, 135, 122, 137, 129, 114, 120, 126, 110, 116, 115, 133, 136, 140, 117, 125, 111, 135, 122, 128, 123, 122, 124, 114, 108, 122, 127, 118, 137, 143, 114, 130, 124, 124, 133, 117, 126, 99, 122, 116, 125, 123, 140, 133, 121, 105, 111, 134, 104, 128, 126, 145, 119, 133, 125, 113, 128, 127, 126, 142, 155, 127, 122, 114, 126, 130, 141, 121, 130, 122, 156, 112, 112, 132, 109, 109, 133, 120, 145, 127, 123, 130, 133, 124, 130, 132, 129, 118, 133, 123, 124, 140, 112, 128, 144, 125, 136, 143, 102, 156, 142, 133, 115, 132, 133, 107, 109, 93, 140, 121, 126, 126, 115, 120, 132, 123, 126, 120, 109, 128, 106, 122, 114, 134, 127, 124, 129, 116, 123, 116, 115, 122, 134, 123, 110, 132, 126, 125, 141, 105, 112, 142, 142, 110, 117, 125, 111, 126, 112, 135, 146, 116, 126, 118, 111, 120, 127, 136, 110, 127, 111, 130, 116, 95, 123, 117, 122, 105, 134, 130, 126, 119, 127, 135, 129, 121, 135, 125, 129, 133, 126, 141, 124, 112, 118, 112, 121, 128, 118, 140, 122, 128, 128, 142, 130, 119, 137, 127, 116, 131, 114, 134, 126, 130, 126, 111, 135, 114, 125, 135, 139, 103, 104, 123, 113, 129, 112, 134, 136, 133, 142, 102, 131, 132, 125, 118, 123, 131, 113, 110, 130, 113, 105, 134, 139, 128, 121, 125, 130, 129, 128, 124, 110, 122, 118, 151, 123, 97, 123, 119, 124, 132, 131, 124, 113, 140, 114, 126, 130, 116, 145, 125, 109, 122, 129, 138, 124, 126, 119, 133, 109, 122, 114, 109, 134, 113, 117, 126, 147, 128, 123, 125, 121, 115, 123, 124, 141, 117, 119, 125, 126, 116, 126, 150, 135, 111, 122, 132, 143, 115, 137, 134, 132, 129, 115, 107, 125, 131, 111, 120, 128, 132, 139, 141, 126, 139, 114, 130, 114, 134, 112, 120, 142, 110, 125, 133, 137, 130, 125, 141, 129, 131, 122, 128, 140, 113, 122, 128, 109, 118, 118, 113, 118, 117, 122, 162, 121, 121, 137, 130, 122, 118, 130, 139, 118, 124, 150, 142, 129, 120, 136, 113, 127, 110, 130, 142, 124, 117, 129, 138, 142, 121, 117, 125, 138, 119, 111, 123, 134, 140, 119, 134, 115, 119, 119, 127, 151, 146, 120, 124, 141, 113, 128, 126, 124, 134, 120, 102, 137, 112, 134, 127, 116, 123, 118, 115, 137, 115, 133, 126, 109, 138, 132, 109, 128, 128, 136, 117, 117, 111, 126, 126, 97, 121, 117, 120, 116, 114, 119, 139, 134, 133, 122, 121, 134, 122, 130, 128, 131, 121, 94, 119, 142, 114, 121, 136, 112, 129, 145, 142, 123, 123, 143, 120, 133, 117, 121, 127, 152, 107, 107, 140, 125, 133, 118, 129, 111, 128, 136, 118, 96, 115, 121, 141, 114, 122, 133, 127, 104, 118, 143, 113, 133, 125, 129, 124, 140, 130, 142, 142, 127, 133, 112, 134, 155, 118, 123, 130, 120, 150, 137, 129, 139, 120, 129, 136, 118, 131, 134, 109, 116, 127, 129, 124, 123, 142, 114, 135, 126, 129, 141, 137, 135, 115, 115, 136, 123, 117, 121, 113, 106, 149, 133, 140, 133, 126, 140, 127, 121, 130, 150, 124, 134, 133, 133, 136, 117, 129, 132, 131, 127, 129, 129, 127, 140, 120, 127, 122, 114, 124, 125, 123, 105, 132, 132, 114, 116, 132, 126, 122, 102, 111, 134, 128, 126, 140, 128, 135, 117, 128, 132, 125, 141, 148, 113, 112, 122, 118, 128, 126, 113, 126, 137, 131, 123, 140, 120, 129, 129, 159, 111, 116, 115, 141, 121, 129, 126, 135, 129, 137, 123, 127, 138, 125, 119, 111, 139, 125, 116, 132, 123, 133, 120, 125, 130, 130, 121, 127, 115, 110, 139, 122, 122, 132, 106, 119, 136, 128, 121, 131, 125, 128, 129, 113, 135, 112, 119, 128, 112, 124, 119, 126, 130, 136, 141, 120, 120, 119, 131, 128, 123, 124, 122, 125, 130, 140, 125, 150, 128, 132, 149, 104, 140, 108, 135, 124, 110, 113, 138, 113, 138, 125, 122, 137, 136, 130, 118, 105, 125, 115, 128, 123, 116, 131, 110, 116, 93, 138, 132, 129, 130, 137, 113, 112, 143, 127, 118, 124, 115, 143, 114, 128, 117, 131, 113, 121, 126, 118, 121, 115, 132, 118, 133, 130, 129, 132, 109, 151, 128, 131, 98, 124, 126, 127, 121, 130, 133, 122, 116, 129, 120, 127, 123, 114, 134, 122, 126, 117, 122, 107, 112, 122, 129, 114, 143, 131, 131, 138, 117, 147, 119, 135, 109, 117, 123, 135, 128, 121, 122, 126, 112, 131, 138, 120, 108, 114, 112, 133, 102, 129, 132, 135, 128, 119, 123, 139, 126, 112, 117, 133, 129, 134, 119, 121, 140, 117, 112, 132, 127, 133, 103, 134, 121, 115, 124, 125, 116, 119, 146, 118, 111, 123, 128, 134, 124, 147, 117, 137, 120, 119, 139, 131, 116, 143, 118, 122, 119, 125, 110, 123, 125, 125, 139, 122, 126, 116, 112, 137, 122, 132, 134, 118, 140, 133, 128, 124, 124, 118, 135, 126, 115, 122, 132, 117, 124, 124, 115, 114, 121, 142, 125, 122, 113, 151, 132, 128, 109, 144, 104, 128, 114, 130, 125, 111, 127, 131, 127, 120, 114, 120, 107, 136, 144, 130, 141, 117, 121, 142, 113, 125, 120, 137, 141, 125, 134, 131, 139, 137, 125, 120, 119, 133, 136, 127, 128, 119, 123, 127, 131, 133, 127, 119, 129, 124, 132, 113, 109, 115, 136, 110, 117, 123, 142, 124, 123, 102, 114, 133, 105, 112, 139, 121, 114, 119, 121, 120, 116, 118, 126, 117, 116, 116, 123, 119, 135, 121, 144, 133, 131, 155, 131, 127, 123, 111, 122, 129, 120, 112, 129, 119, 120, 115, 112, 120, 140, 124, 141, 124, 150, 128, 128, 128, 138, 133, 112, 109, 115, 117, 124, 110, 123, 115, 132, 114, 146, 118, 104, 127, 134, 122, 111, 147, 132, 108, 143, 131, 125, 132, 111, 124, 124, 117, 136, 131, 120, 124, 124, 125, 126, 136, 123, 122, 119, 125, 117, 129, 127, 123, 136, 113, 135, 126, 140, 125, 132, 126, 115, 122, 128, 116, 128, 126, 123, 126, 141, 111, 115, 135, 113, 130, 125, 122, 122, 131, 136, 143, 108, 150, 147, 143, 124, 111, 126, 149, 112, 124, 124, 115, 135, 113, 132, 114, 106, 122, 129, 114, 131, 121, 136, 136, 110, 130, 122, 127, 132, 130, 135, 121, 121, 120, 122, 109, 114, 108, 128, 121, 125, 144, 111, 121, 121, 127, 125, 137, 120, 123, 128, 140, 131, 131, 134, 131, 113, 149, 120, 126, 122, 148, 139, 115, 121, 133, 132, 116, 118, 151, 115, 99, 126, 131, 126, 128, 116, 138, 132, 119, 145, 116, 114, 129, 114, 107, 112, 117, 124, 124, 155, 132, 128, 116, 145, 115, 130, 117, 134, 133, 124, 122, 117, 115, 109, 131, 138, 120, 124, 134, 114, 125, 117, 135, 124, 133, 128, 133, 145, 108, 118, 130, 103, 114, 123, 101, 143, 119, 134, 139, 125, 121, 129, 144, 127, 138, 114, 115, 123, 131, 137, 137, 126, 118, 123, 112, 122, 130, 138, 121, 121, 117, 108, 125, 128, 125, 128, 141, 117, 132, 107, 124, 130, 125, 147, 130, 130, 120, 140, 122, 141, 108, 162, 134, 117, 137, 130, 131, 93, 150, 136, 145, 138, 132, 122, 134, 105, 111, 120, 130, 116, 125, 132, 129, 136, 132, 125, 145, 113, 125, 124, 140, 117, 125, 129, 129, 155, 125, 133, 102, 124, 114, 141, 143, 104, 118, 133, 117, 119, 130, 116, 120, 117, 118, 114, 126, 130, 135, 115, 118, 114, 125, 130, 141, 128, 121, 132, 128, 130, 141, 135, 121, 139, 129, 136, 127, 134, 129, 127, 124, 123, 117, 116, 118, 133, 102, 135, 143, 121, 101, 126, 135, 121, 134, 116, 129, 128, 117, 118, 130, 120, 134, 131, 139, 125, 139, 130, 115, 130, 103, 127, 135, 115, 118, 130, 128, 110, 130, 122, 100, 132, 126, 145, 129, 146, 145, 127, 137, 118, 119, 118, 135, 129, 121, 122, 114, 119, 115, 133, 149, 132, 132, 132, 112, 136, 134, 97, 121, 127, 106, 110, 130, 147, 127, 123, 133, 135, 111, 140, 129, 131, 134, 120, 128, 124, 131, 126, 110, 122, 143, 81, 124, 123, 121, 122, 123, 134, 120, 130, 118, 145, 136, 110, 140, 135, 136, 137, 118, 125, 124, 134, 96, 120, 124, 138, 131, 117, 131, 133, 136, 131, 126, 126, 127, 108, 118, 125, 110, 105, 110, 136, 124, 119, 127, 131, 109, 107, 130, 106, 132, 135, 119, 132, 138, 131, 115, 129, 114, 121, 112, 110, 140, 139, 139, 128, 130, 119, 143, 110, 131, 125, 137, 117, 121, 124, 116, 132, 125, 113, 121, 104, 123, 142, 133, 142, 136, 147, 146, 120, 127, 116, 132, 135, 137, 117, 107, 135, 123, 104, 123, 110, 131, 130, 136, 82, 116, 95, 118, 120, 143, 127, 147, 128, 125, 117, 125, 131, 126, 110, 145, 112, 114, 140, 134, 131, 145, 133, 124, 117, 104, 128, 122, 135, 117, 128, 113, 133, 135, 118, 142, 115, 128, 126, 133, 129, 140, 132, 121, 128, 129, 114, 131, 132, 134, 130, 135, 131, 130, 117, 138, 131, 123, 114, 121, 120, 130, 124, 133, 120, 131, 128, 115, 137, 131, 122, 102, 104, 107, 116, 135, 110, 121, 116, 120, 124, 130, 121, 130, 111, 133, 121, 132, 123, 134, 109, 121, 125, 132, 148, 136, 122, 123, 138, 132, 124, 145, 126, 115, 138, 122, 132, 132, 125, 131, 119, 131, 119, 117, 126, 118, 135, 117, 131, 127, 130, 128, 113, 131, 111, 121, 118, 139, 137, 114, 124, 136, 134, 126, 121, 126, 115, 140, 121, 110, 107, 126, 110, 137, 122, 135, 138, 117, 136, 139, 117, 127, 117, 141, 111, 133, 127, 138, 137, 115, 148, 133, 123, 104, 123, 117, 110, 121, 113, 115, 114, 112, 129, 138, 139, 161, 122, 106, 138, 140, 131, 137, 116, 120, 162, 136, 120, 118, 116, 127, 121, 123, 117, 111, 137, 146, 124, 117, 143, 126, 141, 115, 109, 119, 131, 119, 106, 135, 130, 114, 120, 145, 132, 125, 112, 127, 131, 136, 121, 109, 120, 101, 115, 113, 114, 130, 115, 116, 141, 118, 140, 139, 123, 136, 122, 121, 123, 146, 96, 134, 147, 132, 126, 133, 125, 134, 107, 123, 124, 126, 112, 108, 131, 116, 115, 126, 130, 127, 117, 132, 116, 120, 134, 124, 145, 136, 109, 119, 135, 123, 127, 137, 127, 125, 126, 123, 119, 115, 138, 122, 118, 114, 118, 110, 118, 136, 135, 124, 121, 130, 119, 134, 140, 117, 130, 134, 124, 109, 129, 107, 131, 129, 119, 121, 143, 125, 112, 119, 118, 111, 122, 108, 120, 143, 127, 113, 118, 119, 129, 125, 120, 132, 134, 130, 136, 138, 119, 118, 135, 137, 149, 124, 122, 134, 125, 107, 125, 130, 133, 122, 129, 116, 117, 122, 129, 125, 118, 138, 117, 118, 118, 132, 117, 120, 133, 140, 132, 117, 125, 131, 128, 132, 112, 112, 125, 122, 125, 130, 104, 133, 136, 129, 140, 117, 122, 131, 128, 110, 114, 127, 129, 133, 125, 137, 128, 119, 144, 127, 131, 130, 151, 115, 112, 143, 137, 131, 110, 105, 104, 131, 123, 109, 102, 121, 124, 129, 133, 113, 119, 129, 114, 100, 124, 110, 126, 138, 128, 126, 142, 119, 116, 134, 110, 141, 136, 129, 106, 128, 126, 135, 131, 138, 120, 119, 105, 117, 115, 117, 119, 120, 127, 129, 119, 133, 119, 118, 136, 130, 143, 111, 122, 146, 112, 130, 137, 140, 133, 129, 125, 132, 142, 119, 117, 125, 111, 133, 116, 136, 117, 117, 123, 121, 108, 142, 118, 112, 136, 133, 123, 120, 127, 131, 119, 128, 128, 123, 120, 135, 101, 143, 119, 147, 105, 151, 128, 116, 116, 118, 130, 144, 131, 121, 122, 122, 134, 143, 143, 115, 121, 149, 132, 124, 135, 105, 131, 118, 118, 113, 123, 134, 140, 133, 109, 98, 115, 116, 107, 140, 137, 134, 141, 117, 137, 136, 121, 127, 126, 146, 118, 128, 130, 133, 127, 133, 118, 122, 123, 125, 117, 133, 126, 132, 131, 113, 94, 113, 125, 126, 114, 126, 107, 129, 116, 126, 143, 132, 122, 117, 132, 123, 119, 124, 115, 131, 139, 124, 120, 122, 134, 130, 120, 122, 134, 121, 122, 122, 127, 123, 125, 119, 117, 141, 112, 127, 121, 127, 116, 133, 123, 138, 123, 127, 130, 130, 120, 134, 102, 121, 132, 131, 110, 132, 152, 127, 128, 145, 122, 130, 118, 133, 108, 123, 135, 113, 128, 118, 140, 150, 119, 112, 147, 154, 113, 102, 131, 129, 113, 127, 134, 121, 146, 104, 129, 123, 121, 127, 125, 109, 131, 114, 129, 135, 117, 137, 120, 126, 131, 127, 128, 118, 111, 129, 132, 125, 117, 120, 113, 145, 115, 131, 121, 135, 137, 133, 113, 122, 139, 107, 118, 127, 116, 131, 128, 132, 128, 135, 141, 134, 158, 136, 130, 134, 133, 113, 130, 135, 137, 125, 132, 124, 117, 144, 126, 156, 115, 128, 124, 133, 111, 118, 150, 129, 122, 123, 126, 130, 120, 118, 123, 118, 152, 120, 135, 116, 125, 115, 132, 131, 123, 123, 128, 125, 108, 123, 136, 154, 141, 130, 126, 107, 127, 130, 142, 119, 132, 129, 136, 126, 138, 112, 117, 122, 136, 134, 136, 110, 132, 115, 108, 116, 127, 131, 131, 129, 133, 131, 121, 128, 103, 136, 127, 132, 116, 131, 131, 128, 119, 139, 124, 126, 118, 102, 124, 120, 133, 150, 112, 110, 143, 127, 130, 119, 141, 110, 131, 119, 141, 152, 111, 137, 139, 120, 128, 131, 123, 127, 126, 118, 135, 110, 138, 122, 109, 132, 127, 132, 110, 118, 116, 143, 129, 135, 123, 124, 116, 134, 129, 127, 122, 144, 130, 154, 108, 131, 125, 110, 123, 109, 122, 147, 115, 139, 112, 132, 130, 125, 121, 124, 130, 134, 137, 134, 121, 128, 127, 115, 136, 122, 125, 109, 124, 137, 144, 128, 126, 116, 127, 124, 107, 116, 143, 144, 125, 130, 118, 120, 140, 105, 118, 118, 133, 133, 116, 114, 114, 137, 114, 118, 127, 130, 132, 130, 118, 131, 122, 124, 127, 125, 125, 110, 129, 118, 144, 115, 115, 122, 110, 134, 126, 113, 122, 135, 138, 108, 134, 138, 136, 124, 145, 127, 121, 119, 127, 112, 128, 122, 111, 120, 127, 138, 110, 130, 139, 126, 122, 116, 122, 131, 129, 109, 136, 115, 132, 129, 127, 119, 124, 131, 119, 117, 117, 119, 129, 120, 122, 141, 131, 132, 145, 136, 133, 127, 120, 110, 123, 126, 137, 113, 126, 122, 129, 123, 127, 131, 132, 117, 112, 116, 120, 134, 130, 123, 119, 136, 125, 125, 124, 140, 131, 120, 126, 129, 143, 119, 117, 132, 120, 133, 109, 123, 125, 127, 110, 142, 120, 120, 118, 129, 131, 121, 131, 104, 135, 135, 115, 118, 127, 118, 117, 124, 136, 141, 106, 144, 146, 118, 125, 121, 126, 110, 121, 108, 137, 107, 134, 129, 103, 124, 129, 124, 114, 135, 132, 133, 126, 107, 112, 132, 141, 116, 131, 143, 129, 124, 124, 124, 135, 121, 124, 128, 116, 133, 138, 124, 124, 126, 120, 131, 129, 142, 122, 93, 129, 125, 140, 117, 127, 145, 121, 123, 109, 115, 144, 139, 116, 125, 107, 131, 131, 116, 110, 138, 118, 141, 138, 142, 109, 128, 128, 125, 121, 118, 120, 116, 122, 111, 125, 118, 165, 130, 116, 112, 111, 124, 133, 136, 125, 115, 133, 108, 150, 141, 130, 125, 124, 137, 113, 141, 121, 129, 121, 132, 122, 125, 134, 130, 131, 141, 133, 139, 120, 116, 109, 104, 137, 126, 136, 102, 116, 109, 119, 108, 122, 133, 139, 128, 128, 128, 123, 117, 114, 138, 118, 147, 123, 129, 133, 110, 127, 140, 108, 124, 136, 127, 137, 127, 146, 119, 137, 122, 119, 103, 142, 143, 110, 140, 123, 140, 116, 124, 121, 119, 125, 120, 132, 145, 110, 130, 118, 123, 116, 134, 141, 129, 119, 125, 122, 125, 123, 126, 129, 130, 131, 124, 115, 99, 112, 107, 112, 140, 143, 120, 132, 133, 128, 133, 112, 111, 110, 117, 121, 137, 105, 131, 111, 126, 138, 114, 119, 125, 131, 137, 135, 115, 115, 124, 129, 135, 157, 123, 139, 128, 120, 127, 131, 139, 137, 122, 140, 128, 112, 118, 126, 127, 121, 131, 127, 128, 132, 149, 107, 124, 128, 121, 134, 135, 124, 122, 122, 125, 121, 123, 129, 133, 117, 127, 141, 123, 105, 129, 135, 137, 133, 117, 112, 156, 114, 126, 131, 139, 104, 139, 116, 124, 130, 120, 119, 137, 131, 134, 127, 125, 110, 138, 131, 130, 104, 122, 144, 134, 115, 112, 132, 124, 148, 127, 115, 140, 125, 121, 114, 128, 117, 121, 116, 134, 136, 124, 127, 132, 130, 110, 118, 140, 118, 132, 128, 117, 139, 125, 137, 111, 120, 154, 109, 126, 109, 122, 129, 119, 132, 121, 119, 116, 125, 116, 115, 129, 124, 124, 125, 135, 118, 126, 131, 123, 106, 117, 131, 123, 111, 126, 115, 113, 121, 132, 133, 142, 118, 130, 119, 145, 113, 118, 123, 136, 119, 141, 132, 120, 131, 119, 127, 113, 135, 112, 130, 131, 100, 122, 137, 131, 105, 94, 128, 103, 119, 136, 131, 146, 141, 130, 114, 118, 130, 101, 112, 120, 108, 130, 135, 119, 128, 116, 133, 125, 115, 119, 147, 130, 112, 127, 128, 119, 120, 123, 131, 134, 124, 138, 103, 108, 125, 123, 124, 140, 126, 146, 116, 123, 110, 133, 130, 121, 106, 114, 136, 130, 126, 123, 119, 127, 133, 110, 113, 116, 139, 123, 120, 123, 103, 126, 148, 135, 136, 124, 141, 140, 101, 128, 123, 119, 119, 111, 114, 117, 122, 125, 128, 135, 138, 99, 121, 139, 112, 138, 145, 130, 116, 109, 139, 115, 128, 117, 119, 127, 132, 141, 130, 141, 107, 122, 130, 126, 154, 118, 112, 116, 110, 137, 126, 118, 124, 132, 124, 134, 127, 113, 131, 127, 104, 115, 129, 115, 126, 118, 124, 120, 120, 134, 117, 122, 122, 137, 139, 115, 124, 122, 112, 116, 123, 123, 140, 118, 133, 133, 127, 113, 130, 110, 129, 122, 114, 126, 122, 109, 119, 120, 126, 128, 123, 122, 139, 128, 135, 123, 136, 116, 149, 121, 132, 122, 118, 136, 123, 135, 137, 112, 131, 127, 131, 133, 125, 141, 129, 120, 133, 112, 139, 133, 123, 120, 146, 130, 130, 110, 118, 138, 122, 113, 122, 119, 120, 124, 125, 118, 127, 118, 129, 125, 130, 130, 120, 136, 136, 118, 122, 119, 135, 119, 134, 131, 134, 115, 113, 128, 138, 125, 114, 127, 140, 127, 118, 127, 134, 121, 136, 119, 142, 136, 129, 127, 124, 129, 126, 139, 132, 114, 142, 129, 110, 97, 133, 128, 117, 122, 114, 129, 131, 125, 119, 130, 118, 123, 121, 122, 121, 118, 91, 136, 127, 126, 125, 123, 136, 135, 136, 125, 113, 112, 121, 149, 110, 139, 120, 125, 121, 125, 128, 117, 129, 126, 142, 122, 116, 143, 112, 120, 129, 125, 151, 124, 106, 114, 131, 113, 128, 126, 126, 140, 141, 124, 128, 129, 136, 113, 130, 128, 138, 152, 134, 123, 134, 121, 137, 136, 118, 124, 132, 120, 139, 127, 131, 129, 108, 117, 130, 149, 130, 113, 139, 122, 119, 121, 140, 140, 123, 129, 146, 124, 110, 126, 123, 128, 116, 139, 118, 117, 119, 125, 113, 151, 134, 122, 137, 127, 121, 119, 113, 152, 162, 109, 132, 135, 120, 117, 122, 134, 123, 141, 131, 118, 134, 118, 139, 122, 126, 116, 125, 131, 108, 139, 137, 117, 129, 117, 125, 117, 116, 119, 127, 127, 134, 126, 118, 129, 135, 126, 144, 122, 129, 128, 144, 119, 134, 115, 118, 114, 139, 133, 101, 119, 117, 111, 126, 123, 127, 140, 123, 122, 132, 127, 121, 116, 122, 134, 131, 114, 118, 123, 127, 127, 119, 121, 137, 130, 126, 110, 119, 124, 122, 132, 129, 127, 142, 124, 116, 124, 94, 135, 122, 128, 129, 120, 118, 122, 120, 129, 119, 130, 124, 120, 129, 121, 119, 130, 121, 128, 111, 117, 120, 133, 138, 108, 145, 127, 120, 136, 123, 120, 104, 122, 135, 128, 127, 124, 131, 124, 131, 144, 103, 135, 118, 124, 119, 127, 120, 142, 100, 117, 113, 126, 131, 140, 130, 126, 128, 149, 107, 131, 126, 129, 135, 146, 115, 124, 138, 138, 117, 140, 126, 104, 131, 139, 134, 122, 109, 117, 122, 142, 139, 135, 124, 101, 124, 134, 144, 115, 125, 135, 113, 115, 121, 127, 136, 123, 132, 136, 144, 119, 130, 127, 112, 137, 124, 146, 123, 134, 132, 137, 146, 102, 129, 130, 100, 135, 111, 116, 136, 115, 115, 136, 131, 110, 127, 125, 118, 122, 132, 119, 129, 136, 115, 109, 126, 125, 121, 133, 126, 136, 133, 123, 140, 138, 122, 117, 118, 124, 115, 139, 117, 122, 131, 122, 134, 154, 131, 117, 125, 112, 127, 144, 130, 132, 123, 118, 129, 116, 120, 131, 119, 126, 140, 116, 122, 134, 107, 120, 106, 131, 116, 126, 141, 129, 133, 138, 116, 115, 127, 118, 127, 140, 133, 123, 133, 127, 134, 118, 127, 132, 124, 123, 117, 118, 132, 135, 126, 115, 166, 121, 129, 116, 114, 140, 121, 146, 132, 125, 131, 141, 128, 132, 133, 117, 127, 110, 134, 135, 126, 120, 133, 110, 130, 124, 112, 140, 128, 109, 138, 125, 122, 121, 130, 128, 135, 115, 115, 119, 130, 108, 113, 127, 123, 116, 131, 129, 137, 148, 119, 123, 137, 135, 119, 118, 117, 119, 138, 128, 116, 132, 109, 116, 130, 119, 125, 125, 115, 125, 134, 125, 120, 114, 125, 119, 107, 158, 135, 144, 123, 129, 104, 144, 110, 126, 123, 120, 125, 120, 143, 129, 121, 108, 127, 131, 129, 110, 126, 121, 136, 132, 110, 118, 114, 118, 115, 135, 136, 132, 128, 112, 121, 115, 113, 132, 128, 115, 125, 104, 113, 119, 110, 123, 137, 109, 134, 122, 119, 125, 122, 122, 108, 119, 130, 120, 123, 127, 123, 121, 121, 118, 128, 129, 141, 137, 158, 133, 133, 118, 123, 119, 124, 126, 121, 121, 113, 132, 127, 125, 119, 117, 127, 128, 117, 114, 140, 109, 141, 137, 98, 118, 122, 130, 131, 125, 139, 118, 113, 136, 126, 112, 115, 131, 118, 128, 137, 121, 128, 125, 122, 128, 132, 133, 117, 129, 135, 133, 116, 126, 133, 144, 146, 131, 118, 137, 126, 142, 136, 142, 118, 124, 111, 132, 121, 133, 138, 129, 127, 119, 125, 138, 98, 112, 129, 115, 116, 128, 123, 130, 126, 127, 115, 113, 135, 127, 117, 131, 124, 142, 131, 125, 116, 126, 129, 132, 141, 129, 109, 114, 115, 136, 128, 133, 123, 124, 137, 129, 150, 116, 121, 114, 132, 115, 110, 122, 131, 126, 126, 123, 134, 129, 108, 143, 136, 120, 140, 122, 130, 137, 117, 135, 141, 127, 121, 131, 132, 123, 124, 144, 126, 116, 111, 126, 137, 131, 116, 133, 133, 130, 112, 127, 108, 144, 122, 130, 114, 144, 133, 126, 118, 145, 122, 125, 139, 125, 127, 122, 130, 135, 130, 121, 142, 125, 124, 140, 124, 118, 121, 113, 112, 129, 104, 130, 151, 149, 122, 118, 105, 119, 114, 109, 120, 127, 122, 120, 143, 130, 113, 125, 128, 125, 126, 122, 132, 122, 129, 125, 124, 130, 139, 126, 118, 125, 117, 125, 135, 126, 133, 112, 129, 109, 118, 127, 132, 125, 131, 134, 130, 147, 130, 131, 121, 125, 124, 120, 123, 115, 131, 121, 146, 127, 123, 126, 107, 131, 121, 130, 129, 113, 127, 135, 116, 127, 125, 120, 112, 114, 119, 118, 136, 134, 126, 121, 130, 95, 102, 122, 114, 121, 129, 116, 128, 104, 127, 140, 123, 129, 137, 145, 132, 110, 115, 137, 130, 143, 136, 124, 139, 140, 121, 115, 122, 126, 104, 118, 122, 123, 123, 131, 141, 122, 119, 120, 118, 108, 158, 121, 139, 130, 124, 130, 120, 133, 136, 122, 118, 114, 143, 116, 124, 134, 120, 119, 130, 117, 92, 147, 110, 139, 149, 107, 111, 104, 104, 119, 107, 140, 116, 117, 148, 122, 115, 127, 114, 106, 128, 125, 129, 130, 132, 124, 102, 124, 108, 128, 124, 114, 133, 136, 129, 114, 116, 131, 106, 129, 131, 145, 126, 110, 131, 129, 106, 107, 124, 124, 137, 128, 145, 151, 123, 137, 116, 112, 114, 125, 136, 120, 125, 140, 124, 133, 96, 114, 108, 120, 129, 123, 130, 126, 124, 131, 119, 118, 113, 118, 120, 136, 135, 135, 132, 120, 121, 143, 137, 117, 108, 132, 136, 133, 151, 114, 123, 105, 123, 126, 132, 132, 125, 135, 124, 129, 143, 134, 120, 132, 119, 119, 137, 127, 130, 136, 130, 125, 141, 119, 139, 128, 133, 136, 114, 131, 130, 103, 140, 111, 130, 126, 137, 127, 111, 116, 138, 123, 119, 124, 126, 141, 126, 147, 126, 140, 137, 139, 127, 131, 147, 129, 130, 129, 114, 138, 124, 127, 124, 124, 129, 144, 111, 138, 144, 129, 120, 124, 134, 125, 140, 128, 127, 145, 118, 143, 127, 147, 129, 120, 122, 109, 120, 122, 139, 133, 135, 139, 127, 113, 111, 129, 122, 144, 111, 123, 104, 115, 136, 146, 108, 120, 118, 134, 123, 139, 114, 132, 125, 120, 122, 125, 133, 130, 109, 115, 116, 119, 117, 118, 125, 118, 117, 133, 131, 112, 116, 125, 125, 125, 123, 127, 120, 128, 121, 128, 114, 137, 117, 142, 111, 130, 137, 109, 137, 120, 127, 134, 129, 141, 114, 138, 138, 125, 108, 150, 130, 113, 119, 117, 120, 115, 127, 136, 142, 126, 122, 123, 126, 145, 121, 130, 134, 126, 123, 114, 127, 123, 141, 109, 126, 125, 101, 130, 127, 91, 114, 116, 132, 136, 138, 131, 144, 147, 137, 123, 124, 118, 142, 110, 146, 131, 123, 124, 113, 105, 119, 126, 112, 135, 132, 116, 132, 116, 125, 124, 119, 127, 113, 128, 116, 113, 150, 143, 119, 120, 136, 114, 97, 128, 122, 116, 115, 114, 134, 124, 137, 131, 127, 147, 135, 123, 121, 152, 123, 127, 129, 124, 105, 126, 136, 108, 120, 119, 118, 111, 137, 135, 113, 120, 141, 120, 129, 129, 136, 135, 134, 130, 122, 115, 120, 116, 137, 114, 124, 125, 122, 128, 123, 145, 129, 133, 115, 122, 135, 146, 116, 126, 102, 127, 117, 121, 116, 140, 105, 95, 139, 124, 116, 126, 138, 129, 130, 135, 107, 122, 131, 123, 103, 121, 127, 132, 131, 120, 127, 110, 136, 116, 126, 139, 121, 123, 124, 139, 116, 130, 137, 125, 122, 121, 139, 124, 124, 128, 127, 129, 113, 136, 140, 127, 129, 111, 120, 143, 148, 132, 125, 104, 123, 140, 125, 107, 121, 125, 133, 122, 112, 132, 129, 119, 133, 130, 138, 138, 120, 123, 121, 113, 123, 117, 133, 124, 118, 140, 129, 112, 115, 132, 136, 121, 127, 123, 129, 124, 117, 120, 122, 126, 118, 134, 140, 130, 169, 126, 148, 110, 105, 125, 109, 127, 139, 129, 123, 121, 118, 142, 129, 122, 113, 133, 133, 140, 127, 126, 118, 117, 111, 107, 131, 133, 114, 135, 128, 142, 112, 136, 120, 142, 135, 115, 118, 118, 135, 122, 136, 122, 125, 147, 122, 117, 126, 120, 128, 108, 105, 121, 132, 111, 136, 127, 112, 118, 132, 143, 114, 132, 136, 129, 130, 130, 120, 100, 128, 117, 129, 118, 150, 124, 109, 138, 113, 141, 137, 128, 115, 119, 128, 124, 133, 112, 125, 115, 106, 134, 136, 121, 110, 131, 135, 120, 111, 117, 111, 137, 114, 118, 131, 121, 114, 112, 119, 132, 121, 125, 132, 145, 140, 119, 116, 132, 117, 129, 126, 145, 131, 136, 125, 125, 124, 111, 133, 130, 122, 117, 126, 102, 123, 121, 117, 127, 132, 121, 147, 124, 134, 106, 152, 122, 154, 105, 129, 110, 130, 119, 112, 146, 117, 136, 108, 129, 130, 119, 84, 110, 107, 113, 123, 126, 116, 125, 146, 125, 134, 125, 130, 109, 129, 134, 133, 130, 110, 115, 104, 121, 132, 121, 122, 128, 120, 131, 90, 129, 125, 135, 139, 135, 105, 118, 128, 124, 142, 123, 115, 127, 141, 118, 125, 136, 140, 111, 110, 123, 117, 129, 114, 126, 129, 136, 114, 140, 131, 115, 127, 107, 142, 126, 98, 129, 131, 114, 120, 138, 130, 122, 142, 121, 127, 128, 125, 110, 113, 107, 123, 138, 124, 123, 135, 128, 140, 124, 136, 113, 117, 142, 127, 126, 122, 125, 122, 128, 125, 135, 117, 143, 137, 126, 135, 148, 106, 157, 145, 127, 105, 129, 121, 109, 114, 127, 114, 129, 111, 134, 135, 124, 120, 132, 120, 122, 124, 130, 124, 121, 140, 130, 130, 105, 127, 133, 117, 114, 129, 105, 138, 138, 133, 131, 145, 132, 136, 120, 134, 121, 116, 140, 135, 124, 122, 139, 124, 134, 132, 125, 123, 122, 146, 132, 125, 123, 112, 130, 125, 125, 139, 114, 128, 130, 112, 139, 131, 112, 125, 117, 126, 130, 138, 127, 124, 128, 137, 122, 120, 128, 115, 114, 134, 119, 133, 141, 124, 129, 119, 112, 124, 125, 111, 126, 135, 136, 141, 106, 116, 120, 127, 131, 135, 134, 135, 149, 121, 130, 124, 111, 109, 140, 126, 114, 113, 135, 119, 119, 129, 132, 131, 115, 127, 133, 116, 124, 126, 127, 128, 135, 145, 137, 129, 123, 139, 101, 128, 118, 143, 123, 127, 134, 105, 133, 114, 132, 141, 107, 130, 119, 114, 119, 122, 107, 122, 128, 129, 134, 140, 125, 122, 133, 126, 142, 112, 131, 133, 133, 113, 122, 139, 115, 129, 132, 144, 129, 118, 110, 121, 121, 143, 109, 127, 135, 131, 113, 120, 112, 115, 122, 142, 117, 111, 121, 126, 113, 133, 118, 129, 128, 138, 123, 125, 148, 135, 149, 114, 126, 127, 122, 118, 127, 145, 125, 131, 107, 129, 140, 115, 125, 128, 126, 121, 137, 138, 129, 129, 135, 127, 120, 105, 111, 119, 123, 129, 127, 138, 113, 127, 114, 117, 148, 110, 114, 104, 115, 126, 120, 129, 124, 141, 133, 112, 122, 115, 118, 123, 138, 134, 131, 129, 130, 139, 142, 126, 110, 103, 126, 143, 139, 128, 128, 117, 135, 144, 130, 117, 112, 118, 126, 137, 107, 136, 132, 129, 108, 133, 130, 127, 134, 126, 123, 141, 116, 138, 105, 123, 125, 133, 136, 124, 130, 129, 123, 113, 116, 118, 130, 126, 122, 125, 131, 117, 137, 127, 117, 124, 118, 128, 122, 126, 125, 130, 124, 127, 134, 128, 112, 128, 116, 141, 134, 124, 126, 114, 130, 133, 117, 108, 109, 142, 116, 128, 146, 133, 108, 109, 132, 131, 133, 121, 125, 120, 148, 122, 124, 110, 146, 121, 128, 138, 124, 110, 116, 122, 122, 119, 123, 111, 119, 115, 123, 126, 111, 113, 131, 128, 125, 119, 120, 116, 136, 124, 130, 136, 131, 131, 108, 115, 108, 128, 116, 115, 127, 120, 142, 142, 126, 124, 116, 128, 140, 116, 135, 123, 116, 125, 135, 129, 116, 121, 137, 136, 125, 133, 129, 122, 124, 135, 127, 110, 130, 120, 131, 115, 126, 114, 131, 128, 119, 136, 115, 125, 134, 122, 138, 121, 125, 123, 137, 137, 132, 116, 118, 135, 128, 116, 118, 113, 110, 124, 131, 127, 118, 128, 107, 147, 117, 112, 115, 124, 100, 117, 121, 105, 127, 104, 141, 125, 134, 121, 113, 133, 118, 121, 133, 131, 119, 130, 120, 127, 135, 120, 135, 123, 127, 123, 127, 132, 114, 121, 119, 131, 134, 119, 118, 120, 124, 119, 117, 110, 118, 125, 128, 126, 110, 118, 108, 135, 162, 129, 134, 125, 124, 117, 119, 129, 140, 118, 129, 132, 119, 135, 119, 138, 103, 113, 126, 115, 131, 141, 108, 108, 126, 111, 131, 135, 127, 116, 120, 132, 108, 137, 121, 116, 133, 130, 130, 116, 120, 116, 132, 130, 125, 131, 119, 135, 132, 110, 127, 128, 124, 129, 132, 109, 121, 126, 133, 112, 139, 133, 118, 127, 97, 123, 120, 112, 123, 127, 130, 142, 99, 138, 122, 113, 128, 115, 110, 113, 128, 120, 135, 130, 131, 124, 116, 120, 125, 121, 130, 124, 113, 142, 125, 126, 115, 126, 149, 131, 131, 125, 123, 108, 138, 121, 115, 116, 131, 145, 144, 119, 128, 104, 111, 131, 124, 113, 120, 124, 128, 114, 122, 128, 133, 127, 120, 109, 133, 129, 127, 127, 130, 131, 131, 141, 131, 123, 133, 136, 116, 121, 130, 112, 123, 144, 134, 114, 146, 147, 128, 135, 110, 129, 115, 115, 111, 117, 119, 133, 143, 131, 147, 113, 129, 122, 121, 133, 111, 119, 125, 115, 134, 141, 127, 118, 122, 125, 130, 120, 123, 106, 121, 126, 125, 109, 141, 123, 152, 128, 126, 129, 135, 115, 136, 144, 127, 128, 124, 132, 128, 124, 134, 131, 126, 127, 142, 134, 134, 136, 116, 137, 127, 119, 133, 141, 127, 122, 127, 111, 126, 136, 127, 130, 125, 116, 148, 130, 116, 119, 118, 124, 148, 127, 133, 126, 132, 122, 130, 111, 129, 131, 130, 115, 137, 117, 131, 110, 126, 142, 121, 130, 132, 128, 104, 127, 127, 123, 119, 129, 112, 141, 150, 132, 131, 132, 104, 122, 127, 120, 126, 129, 117, 135, 124, 118, 141, 122, 123, 128, 119, 136, 138, 119, 116, 123, 131, 117, 148, 126, 144, 136, 130, 134, 133, 118, 128, 130, 119, 120, 130, 115, 103, 142, 127, 115, 107, 121, 131, 134, 133, 124, 139, 135, 121, 127, 145, 100, 129, 130, 140, 134, 143, 110, 106, 131, 127, 107, 118, 115, 103, 137, 126, 118, 121, 118, 113, 113, 125, 119, 134, 126, 124, 118, 130, 126, 110, 109, 135, 125, 123, 104, 132, 128, 127, 128, 132, 118, 112, 126, 127, 138, 113, 130, 130, 115, 108, 130, 122, 119, 118, 116, 132, 111, 116, 121, 115, 123, 134, 115, 124, 133, 141, 126, 130, 130, 110, 136, 125, 131, 114, 129, 124, 135, 136, 129, 152, 124, 128, 133, 123, 126, 121, 128, 124, 111, 154, 134, 111, 122, 132, 118, 127, 117, 147, 153, 114, 120, 135, 131, 126, 137, 148, 112, 114, 129, 138, 112, 118, 123, 127, 123, 127, 123, 143, 116, 115, 125, 109, 137, 120, 125, 129, 103, 125, 120, 125, 128, 125, 116, 132, 132, 102, 122, 117, 142, 138, 115, 112, 131, 114, 122, 118, 113, 123, 125, 128, 115, 112, 126, 124, 128, 111, 125, 131, 118, 113, 112, 105, 140, 132, 139, 98, 130, 138, 116, 125, 119, 124, 111, 122, 128, 138, 118, 124, 128, 122, 123, 128, 116, 134, 144, 117, 124, 131, 150, 120, 125, 112, 113, 115, 132, 129, 125, 130, 137, 111, 132, 132, 124, 118, 150, 127, 126, 127, 125, 125, 115, 129, 139, 119, 127, 131, 130, 93, 132, 151, 108, 131, 133, 128, 125, 121, 141, 124, 143, 123, 133, 124, 132, 131, 117, 123, 124, 122, 130, 111, 121, 136, 113, 117, 127, 120, 128, 117, 128, 132, 119, 132, 115, 120, 125, 125, 125, 127, 129, 135, 137, 133, 142, 122, 141, 127, 145, 143, 110, 127, 130, 126, 135, 135, 130, 121, 126, 99, 116, 121, 146, 116, 127, 130, 118, 129, 117, 110, 138, 123, 131, 116, 115, 102, 110, 128, 143, 118, 131, 119, 112, 109, 131, 121, 119, 114, 113, 122, 131, 115, 131, 123, 113, 118, 117, 122, 120, 124, 134, 127, 130, 123, 129, 115, 140, 131, 133, 132, 135, 124, 130, 129, 128, 135, 135, 125, 135, 113, 133, 127, 90, 126, 149, 107, 133, 103, 128, 113, 117, 127, 129, 144, 130, 128, 120, 106, 134, 123, 122, 124, 122, 114, 113, 128, 131, 117, 128, 132, 131, 130, 115, 131, 124, 122, 105, 117, 131, 113, 127, 100, 149, 136, 126, 119, 127, 132, 132, 118, 138, 126, 124, 120, 120, 130, 134, 110, 127, 107, 127, 130, 130, 140, 131, 145, 132, 112, 105, 123, 129, 121, 121, 121, 121, 115, 125, 127, 123, 143, 123, 111, 132, 146, 106, 110, 148, 129, 122, 153, 125, 131, 109, 116, 141, 136, 122, 121, 140, 123, 145, 123, 123, 127, 130, 137, 128, 122, 115, 105, 118, 124, 114, 136, 117, 123, 132, 140, 117, 138, 160, 99, 127, 114, 122, 125, 117, 131, 121, 130, 119, 133, 136, 119, 126, 127, 117, 128, 127, 120, 119, 109, 145, 121, 128, 114, 114, 117, 112, 144, 132, 135, 130, 120, 132, 123, 126, 160, 125, 124, 129, 119, 144, 138, 127, 127, 116, 122, 116, 126, 130, 112, 132, 136, 127, 147, 113, 129, 115, 128, 110, 130, 125, 127, 124, 150, 117, 123, 122, 117, 123, 119, 128, 124, 134, 130, 122, 116, 138, 122, 117, 128, 132, 126, 135, 119, 119, 141, 111, 139, 122, 115, 112, 131, 133, 124, 137, 132, 118, 131, 133, 134, 112, 119, 128, 128, 110, 121, 119, 128, 132, 141, 120, 131, 118, 126, 111, 125, 118, 116, 129, 115, 124, 117, 129, 143, 122, 126, 122, 125, 119, 147, 137, 140, 114, 123, 123, 148, 127, 117, 126, 132, 128, 128, 114, 128, 120, 132, 124, 133, 133, 131, 124, 136, 116, 116, 134, 119, 124, 124, 133, 138, 132, 122, 134, 124, 129, 107, 128, 119, 118, 128, 129, 137, 136, 144, 118, 118, 128, 119, 154, 113, 119, 124, 132, 135, 109, 122, 117, 124, 136, 119, 120, 127, 125, 133, 136, 135, 119, 122, 120, 126, 113, 120, 111, 123, 120, 125, 120, 129, 115, 127, 128, 119, 130, 113, 124, 116, 133, 136, 126, 133, 113, 118, 118, 118, 124, 128, 126, 120, 105, 130, 130, 130, 140, 128, 132, 137, 118, 121, 138, 145, 129, 128, 78, 137, 138, 114, 114, 128, 128, 133, 109, 119, 148, 130, 130, 118, 124, 105, 139, 118, 127, 140, 126, 129, 115, 119, 133, 126, 132, 136, 149, 95, 114, 136, 118, 113, 119, 133, 153, 122, 137, 123, 95, 130, 115, 130, 127, 114, 123, 133, 124, 106, 116, 144, 120, 134, 110, 122, 136, 129, 150, 119, 139, 128, 131, 118, 112, 124, 118, 138, 133, 122, 113, 117, 128, 129, 149, 122, 116, 119, 103, 133, 131, 98, 107, 130, 130, 136, 128, 124, 131, 116, 122, 115, 123, 137, 138, 142, 125, 126, 124, 101, 129, 128, 129, 136, 125, 126, 126, 136, 113, 129, 142, 136, 124, 131, 122, 133, 119, 126, 140, 112, 121, 134, 135, 145, 132, 147, 122, 116, 127, 123, 125, 124, 113, 124, 132, 121, 130, 130, 127, 114, 127, 131, 142, 116, 126, 132, 124, 138, 130, 116, 118, 115, 129, 139, 124, 120, 128, 109, 122, 119, 131, 137, 130, 90, 123, 124, 132, 128, 117, 119, 125, 126, 124, 134, 131, 128, 124, 133, 115, 131, 141, 134, 125, 117, 118, 133, 127, 121, 125, 133, 130, 119, 124, 135, 140, 135, 129, 109, 128, 131, 124, 144, 139, 98, 126, 126, 126, 118, 112, 129, 136, 124, 127, 120, 119, 124, 120, 128, 117, 125, 116, 133, 137, 124, 122, 131, 138, 114, 119, 133, 117, 127, 128, 115, 110, 140, 123, 111, 133, 130, 112, 130, 110, 124, 131, 146, 135, 117, 136, 138, 109, 128, 120, 136, 124, 132, 129, 139, 128, 125, 129, 133, 119, 121, 133, 132, 113, 131, 122, 125, 126, 125, 122, 114, 135, 127, 130, 126, 128, 135, 128, 145, 154, 111, 138, 140, 111, 126, 122, 129, 116, 118, 129, 139, 133, 115, 132, 128, 122, 124, 121, 124, 139, 119, 120, 131, 133, 129, 119, 132, 116, 129, 113, 109, 126, 121, 115, 121, 149, 128, 104, 112, 126, 117, 111, 120, 139, 137, 134, 116, 130, 120, 134, 117, 121, 130, 114, 129, 127, 120, 132, 124, 122, 123, 138, 132, 113, 122, 123, 116, 126, 132, 120, 141, 129, 137, 113, 117, 133, 117, 122, 113, 119, 136, 134, 129, 127, 119, 125, 125, 131, 140, 125, 114, 130, 139, 118, 131, 110, 128, 124, 119, 134, 144, 122, 114, 135, 138, 135, 132, 128, 113, 136, 124, 140, 130, 120, 127, 133, 128, 116, 127, 126, 137, 131, 115, 121, 109, 109, 129, 117, 120, 97, 124, 138, 122, 122, 120, 117, 150, 125, 122, 115, 135, 121, 133, 117, 132, 131, 128, 125, 147, 120, 134, 121, 132, 135, 137, 126, 130, 123, 123, 120, 114, 131, 119, 118, 126, 130, 133, 130, 126, 111, 121, 120, 121, 129, 113, 131, 125, 122, 147, 130, 126, 126, 109, 116, 121, 139, 127, 145, 111, 124, 119, 143, 111, 136, 122, 128, 114, 135, 137, 114, 109, 117, 124, 118, 154, 131, 120, 135, 123, 138, 123, 128, 121, 141, 137, 136, 116, 136, 130, 123, 139, 133, 120, 136, 119, 115, 130, 137, 121, 120, 132, 124, 145, 128, 116, 133, 128, 115, 111, 123, 132, 141, 124, 131, 142, 136, 129, 133, 119, 119, 127, 129, 129, 112, 124, 130, 122, 146, 111, 126, 138, 113, 124, 129, 131, 107, 121, 126, 136, 117, 128, 137, 119, 104, 122, 124, 123, 119, 121, 129, 121, 136, 123, 128, 122, 128, 128, 125, 129, 120, 130, 123, 125, 120, 137, 128, 119, 140, 134, 130, 129, 107, 122, 124, 136, 148, 120, 139, 122, 120, 124, 135, 127, 119, 118, 122, 116, 120, 129, 119, 148, 135, 114, 127, 134, 124, 114, 136, 122, 117, 122, 123, 129, 129, 124, 105, 134, 131, 123, 133, 129, 135, 122, 149, 154, 126, 128, 141, 133, 121, 120, 127, 140, 119, 122, 113, 139, 119, 126, 112, 114, 121, 120, 127, 132, 134, 144, 133, 125, 126, 122, 131, 124, 121, 113, 134, 127, 115, 136, 116, 116, 114, 129, 127, 125, 113, 129, 118, 124, 124, 125, 134, 128, 121, 122, 120, 123, 123, 120, 108, 112, 129, 124, 124, 106, 114, 121, 143, 130, 128, 130, 142, 127, 134, 118, 137, 147, 114, 127, 134, 123, 121, 106, 131, 118, 139, 125, 118, 138, 120, 125, 127, 127, 125, 117, 132, 146, 128, 126, 118, 121, 116, 144, 151, 130, 139, 135, 110, 130, 135, 125, 148, 141, 128, 116, 130, 115, 129, 141, 130, 119, 128, 147, 128, 110, 113, 132, 126, 116, 110, 107, 146, 120, 125, 129, 133, 125, 101, 108, 126, 125, 141, 124, 128, 115, 140, 122, 125, 121, 119, 126, 132, 141, 140, 128, 114, 133, 122, 122, 127, 125, 130, 151, 131, 124, 114, 132, 119, 107, 121, 123, 121, 130, 128, 121, 107, 118, 132, 113, 119, 130, 138, 139, 106, 119, 129, 124, 123, 125, 129, 103, 127, 113, 121, 127, 132, 146, 127, 116, 125, 116, 131, 130, 121, 136, 93, 109, 151, 147, 122, 126, 122, 113, 134, 111, 105, 121, 138, 121, 130, 137, 130, 139, 128, 137, 134, 116, 132, 121, 125, 127, 130, 131, 116, 136, 118, 130, 124, 124, 118, 131, 118, 143, 135, 124, 113, 150, 125, 111, 114, 140, 103, 125, 127, 133, 111, 120, 140, 115, 125, 139, 127, 138, 115, 111, 113, 125, 142, 125, 127, 119, 129, 144, 137, 125, 134, 112, 135, 131, 107, 123, 125, 134, 127, 108, 134, 112, 123, 139, 133, 121, 121, 114, 116, 122, 120, 119, 112, 117, 123, 145, 140, 142, 115, 116, 125, 134, 135, 143, 114, 139, 134, 119, 116, 122, 128, 134, 128, 130, 133, 120, 136, 130, 120, 120, 129, 126, 122, 116, 128, 124, 117, 117, 111, 115, 125, 110, 130, 119, 115, 135, 124, 117, 134, 118, 126, 135, 136, 131, 154, 127, 127, 126, 110, 124, 125, 122, 126, 142, 124, 113, 110, 132, 134, 117, 135, 126, 130, 125, 113, 125, 144, 119, 139, 119, 126, 136, 119, 111, 124, 142, 133, 125, 125, 116, 154, 125, 132, 109, 134, 139, 116, 141, 122, 134, 117, 128, 134, 134, 122, 122, 145, 130, 132, 112, 125, 139, 132, 112, 120, 129, 138, 138, 122, 111, 135, 132, 128, 115, 121, 115, 129, 121, 147, 127, 152, 113, 135, 130, 136, 116, 124, 132, 112, 145, 126, 135, 144, 123, 123, 127, 105, 133, 138, 109, 153, 137, 120, 117, 117, 120, 135, 127, 124, 131, 111, 121, 121, 122, 127, 125, 128, 108, 109, 104, 139, 120, 142, 120, 113, 120, 143, 123, 118, 136, 141, 134, 137, 122, 133, 115, 113, 124, 136, 137, 122, 127, 134, 133, 129, 134, 131, 117, 123, 127, 117, 146, 137, 135, 134, 144, 129, 122, 127, 117, 129, 141, 129, 132, 113, 129, 118, 122, 116, 118, 134, 140, 123, 140, 118, 149, 139, 126, 125, 104, 131, 128, 123, 144, 122, 135, 127, 121, 118, 149, 118, 145, 135, 119, 122, 142, 116, 104, 130, 120, 146, 143, 136, 125, 121, 123, 135, 128, 132, 134, 105, 143, 125, 131, 136, 117, 116, 115, 122, 144, 112, 122, 112, 125, 128, 135, 125, 123, 111, 126, 125, 120, 116, 118, 129, 134, 130, 120, 123, 113, 126, 116, 118, 123, 127, 127, 120, 107, 136, 121, 112, 130, 128, 110, 144, 110, 121, 124, 117, 137, 117, 123, 127, 108, 130, 121, 125, 131, 121, 143, 119, 132, 141, 118, 126, 133, 123, 124, 136, 142, 136, 143, 122, 118, 125, 153, 152, 102, 155, 121, 115, 110, 116, 129, 130, 139, 118, 126, 113, 122, 148, 122, 122, 115, 124, 148, 141, 131, 104, 110, 139, 124, 124, 123, 126, 113, 127, 129, 138, 110, 115, 93, 119, 131, 114, 129, 114, 116, 133, 118, 138, 128, 136, 116, 119, 115, 97, 137, 132, 112, 135, 130, 119, 114, 118, 126, 128, 130, 125, 118, 121, 115, 144, 124, 114, 125, 121, 130, 143, 101, 124, 132, 126, 117, 110, 111, 114, 102, 118, 117, 126, 137, 132, 123, 118, 121, 104, 135, 110, 124, 125, 115, 133, 135, 135, 112, 148, 125, 139, 116, 138, 116, 130, 134, 119, 140, 148, 119, 120, 120, 107, 145, 129, 131, 133, 128, 126, 122, 150, 126, 126, 128, 137, 132, 150, 120, 137, 117, 122, 123, 136, 134, 114, 145, 137, 119, 114, 115, 128, 103, 126, 117, 102, 112, 132, 123, 124, 124, 116, 130, 120, 129, 127, 117, 135, 122, 119, 121, 120, 132, 116, 136, 140, 145, 127, 139, 136, 126, 118, 109, 112, 131, 133, 135, 124, 125, 136, 106, 129, 126, 140, 129, 131, 144, 108, 122, 126, 128, 131, 146, 147, 148, 114, 121, 126, 117, 113, 124, 117, 141, 132, 128, 132, 137, 120, 126, 120, 114, 130, 131, 134, 145, 127, 134, 117, 118, 140, 140, 114, 121, 127, 137, 119, 137, 134, 112, 136, 127, 128, 139, 123, 128, 127, 135, 117, 118, 138, 141, 134, 128, 120, 120, 110, 128, 131, 127, 125, 144, 122, 119, 112, 119, 121, 128, 114, 123, 111, 124, 131, 122, 131, 110, 134, 153, 137, 124, 127, 112, 136, 111, 132, 108, 124, 130, 127, 133, 131, 115, 134, 120, 127, 116, 135, 134, 108, 134, 140, 135, 155, 143, 131, 123, 117, 139, 114, 126, 140, 135, 110, 132, 124, 117, 134, 114, 123, 124, 127, 123, 135, 114, 123, 113, 137, 137, 126, 133, 133, 110, 129, 114, 126, 142, 128, 127, 132, 137, 112, 121, 126, 149, 133, 122, 129, 124, 131, 127, 135, 134, 141, 135, 138, 119, 135, 142, 131, 131, 136, 124, 124, 132, 128, 127, 139, 122, 152, 133, 129, 125, 123, 117, 129, 111, 119, 119, 98, 137, 128, 109, 123, 136, 128, 129, 124, 115, 125, 135, 116, 110, 114, 130, 125, 113, 119, 125, 119, 129, 128, 108, 110, 119, 106, 124, 131, 109, 113, 122, 126, 106, 124, 129, 125, 122, 110, 138, 117, 147, 126, 112, 124, 122, 102, 111, 120, 118, 123, 127, 133, 121, 126, 131, 127, 125, 128, 125, 129, 130, 131, 126, 124, 120, 114, 138, 129, 128, 124, 126, 103, 128, 130, 109, 156, 121, 111, 123, 116, 120, 128, 134, 127, 129, 141, 122, 109, 127, 126, 121, 132, 124, 128, 106, 119, 119, 142, 122, 129, 154, 115, 131, 118, 119, 137, 118, 131, 124, 136, 125, 127, 117, 112, 147, 139, 121, 127, 128, 132, 130, 123, 90, 119, 136, 117, 138, 140, 124, 143, 134, 131, 140, 117, 126, 137, 129, 120, 119, 124, 135, 123, 111, 125, 122, 112, 119, 129, 114, 112, 114, 132, 123, 128, 134, 142, 137, 120, 116, 112, 140, 114, 132, 119, 125, 127, 107, 139, 114, 125, 113, 95, 113, 136, 124, 128, 142, 131, 135, 112, 118, 124, 127, 131, 121, 122, 142, 135, 128, 117, 122, 115, 128, 127, 123, 123, 123, 136, 122, 118, 120, 113, 130, 116, 129, 126, 129, 135, 144, 130, 118, 143, 141, 134, 109, 129, 126, 113, 124, 128, 120, 102, 121, 140, 130, 136, 138, 102, 130, 122, 119, 136, 130, 126, 133, 120, 116, 125, 125, 136, 109, 122, 136, 118, 129, 127, 111, 141, 156, 107, 127, 119, 133, 124, 134, 126, 131, 125, 113, 141, 117, 146, 119, 129, 113, 109, 126, 121, 129, 114, 120, 130, 131, 125, 115, 132, 114, 124, 121, 132, 133, 147, 128, 115, 137, 145, 137, 130, 122, 122, 146, 141, 140, 123, 112, 130, 100, 119, 127, 133, 126, 133, 123, 117, 127, 129, 132, 118, 123, 126, 106, 120, 128, 131, 115, 124, 106, 135, 132, 130, 130, 121, 141, 121, 116, 126, 114, 131, 109, 105, 123, 114, 112, 116, 132, 109, 124, 140, 118, 129, 130, 122, 125, 145, 125, 102, 128, 140, 138, 124, 113, 128, 103, 137, 123, 126, 134, 114, 127, 112, 126, 135, 125, 125, 133, 133, 128, 110, 118, 132, 133, 112, 120, 122, 120, 109, 148, 125, 130, 114, 124, 122, 129, 118, 107, 135, 129, 135, 105, 135, 112, 110, 118, 130, 116, 134, 114, 116, 130, 128, 118, 121, 116, 143, 126, 128, 144, 142, 127, 120, 124, 121, 121, 141, 114, 123, 119, 145, 131, 140, 136, 118, 121, 134, 113, 119, 120, 124, 135, 124, 112, 111, 131, 125, 126, 117, 127, 124, 130, 141, 144, 113, 121, 119, 124, 134, 139, 143, 131, 124, 126, 123, 126, 125, 123, 119, 109, 120, 143, 130, 119, 116, 125, 124, 130, 125, 132, 131, 113, 134, 142, 136, 117, 122, 132, 118, 114, 114, 125, 122, 121, 131, 130, 124, 134, 121, 114, 133, 106, 117, 123, 119, 134, 117, 127, 125, 137, 130, 133, 141, 120, 124, 116, 127, 114, 141, 127, 132, 116, 135, 119, 130, 122, 122, 123, 114, 133, 137, 117, 135, 118, 128, 137, 142, 121, 115, 135, 121, 125, 118, 113, 129, 136, 117, 114, 124, 118, 113, 113, 132, 119, 127, 107, 112, 106, 132, 135, 125, 104, 121, 130, 127, 127, 122, 115, 136, 127, 139, 121, 105, 127, 116, 136, 109, 124, 124, 119, 118, 120, 121, 131, 134, 120, 127, 114, 124, 111, 140, 127, 152, 137, 123, 145, 119, 122, 144, 121, 118, 117, 129, 114, 117, 110, 134, 119, 131, 139, 140, 120, 131, 113, 131, 109, 128, 124, 124, 124, 110, 110, 113, 126, 115, 125, 104, 152, 120, 125, 119, 113, 129, 116, 124, 117, 139, 134, 125, 112, 127, 136, 130, 126, 144, 138, 141, 117, 130, 128, 111, 123, 120, 128, 127, 132, 117, 122, 138, 112, 125, 140, 139, 140, 138, 124, 133, 126, 137, 129, 127, 125, 125, 117, 129, 124, 131, 130, 141, 122, 126, 114, 116, 120, 134, 120, 127, 136, 150, 134, 128, 128, 125, 119, 128, 126, 125, 122, 127, 129, 133, 133, 122, 133, 104, 128, 130, 126, 136, 111, 125, 133, 125, 129, 127, 135, 120, 130, 116, 121, 117, 133, 128, 116, 113, 118, 124, 118, 113, 126, 135, 128, 132, 102, 129, 125, 128, 120, 124, 115, 124, 129, 122, 131, 134, 130, 136, 126, 125, 107, 112, 126, 138, 129, 129, 120, 141, 119, 131, 134, 130, 138, 111, 130, 105, 114, 117, 142, 124, 118, 121, 126, 123, 122, 119, 117, 133, 112, 123, 125, 113, 112, 127, 143, 116, 130, 127, 119, 123, 125, 128, 110, 136, 119, 120, 112, 135, 123, 123, 118, 133, 115, 135, 114, 120, 135, 127, 123, 132, 116, 138, 126, 120, 132, 135, 137, 117, 118, 132, 123, 115, 125, 123, 123, 138, 136, 120, 116, 143, 122, 120, 114, 131, 138, 108, 112, 139, 129, 129, 131, 105, 101, 132, 144, 111, 123, 125, 133, 118, 130, 121, 139, 123, 118, 126, 132, 102, 123, 107, 133, 130, 126, 137, 111, 118, 140, 121, 123, 119, 124, 122, 118, 137, 142, 128, 114, 119, 102, 125, 133, 118, 137, 126, 124, 122, 124, 124, 133, 130, 125, 120, 97, 130, 141, 133, 125, 127, 117, 128, 120, 148, 114, 134, 121, 136, 116, 123, 111, 119, 126, 139, 132, 117, 114, 114, 133, 110, 133, 147, 127, 135, 134, 135, 129, 128, 128, 108, 122, 130, 138, 120, 125, 123, 104, 133, 120, 123, 129, 123, 123, 106, 116, 132, 118, 113, 132, 125, 125, 137, 130, 121, 126, 114, 138, 123, 141, 122, 134, 110, 120, 133, 132, 132, 126, 141, 112, 129, 132, 116, 131, 135, 121, 129, 115, 137, 128, 127, 137, 150, 120, 128, 105, 119, 136, 116, 132, 117, 120, 126, 131, 138, 119, 126, 152, 106, 115, 149, 111, 110, 117, 122, 130, 129, 126, 127, 115, 129, 136, 131, 121, 114, 114, 130, 139, 127, 123, 142, 122, 122, 119, 126, 121, 121, 117, 138, 128, 123, 126, 115, 132, 105, 107, 112, 137, 149, 136, 115, 122, 123, 121, 142, 116, 144, 117, 125, 140, 140, 139, 118, 122, 128, 130, 129, 146, 123, 119, 124, 131, 123, 149, 121, 130, 131, 116, 127, 134, 129, 130, 115, 120, 118, 119, 113, 128, 138, 126, 123, 138, 135, 125, 116, 127, 113, 128, 137, 125, 148, 130, 111, 125, 121, 131, 143, 112, 138, 109, 106, 129, 119, 110, 124, 111, 149, 121, 122, 125, 112, 118, 125, 121, 124, 147, 136, 135, 118, 130, 127, 105, 126, 149, 132, 123, 134, 128, 112, 134, 114, 139, 140, 131, 139, 127, 123, 120, 105, 113, 137, 142, 146, 109, 131, 117, 129, 143, 129, 115, 135, 125, 128, 117, 152, 112, 130, 107, 132, 119, 123, 132, 123, 138, 126, 138, 131, 110, 135, 121, 116, 125, 103, 122, 103, 146, 143, 129, 122, 145, 126, 119, 129, 126, 131, 110, 122, 115, 120, 118, 124, 127, 131, 117, 123, 115, 121, 131, 128, 117, 128, 121, 144, 144, 113, 126, 116, 134, 123, 113, 115, 133, 124, 111, 112, 123, 122, 120, 114, 105, 124, 117, 130, 119, 129, 103, 132, 126, 131, 122, 117, 130, 120, 122, 125, 127, 125, 123, 122, 138, 113, 98, 130, 125, 131, 97, 123, 115, 112, 125, 107, 130, 140, 128, 130, 120, 140, 126, 125, 144, 122, 112, 126, 120, 134, 114, 113, 119, 120, 137, 130, 128, 133, 126, 117, 137, 133, 131, 127, 130, 133, 149, 126, 134, 122, 125, 128, 119, 124, 151, 125, 118, 125, 115, 127, 115, 125, 128, 123, 123, 150, 120, 128, 130, 134, 129, 124, 133, 120, 125, 114, 134, 110, 113, 118, 121, 128, 131, 123, 133, 140, 119, 142, 120, 125, 110, 124, 116, 124, 126, 139, 108, 123, 107, 142, 118, 139, 132, 131, 125, 134, 129, 136, 128, 119, 122, 115, 116, 133, 124, 117, 113, 141, 123, 107, 136, 121, 132, 121, 132, 113, 129, 122, 99, 125, 127, 125, 127, 120, 129, 130, 126, 118, 131, 143, 131, 142, 115, 124, 118, 123, 133, 124, 133, 125, 121, 131, 143, 132, 130, 123, 119, 120, 126, 117, 140, 144, 118, 139, 134, 115, 127, 131, 139, 147, 125, 131, 119, 133, 96, 118, 120, 132, 141, 137, 110, 124, 134, 131, 144, 98, 113, 115, 128, 112, 109, 109, 109, 131, 142, 137, 127, 127, 130, 137, 115, 111, 122, 127, 112, 118, 138, 114, 108, 112, 118, 135, 120, 128, 111, 123, 131, 118, 139, 120, 130, 135, 124, 115, 134, 129, 120, 132, 111, 132, 126, 123, 119, 128, 126, 121, 139, 129, 125, 134, 120, 135, 131, 110, 137, 113, 125, 131, 125, 126, 141, 118, 136, 109, 101, 112, 112, 126, 113, 140, 126, 112, 127, 142, 126, 115, 116, 134, 131, 120, 117, 101, 123, 127, 126, 128, 117, 128, 129, 117, 119, 131, 138, 132, 118, 110, 121, 136, 126, 143, 108, 136, 137, 128, 125, 118, 131, 156, 138, 121, 134, 104, 130, 129, 122, 130, 151, 139, 132, 124, 134, 125, 124, 115, 114, 139, 119, 138, 97, 114, 126, 110, 123, 119, 116, 135, 123, 132, 116, 130, 118, 123, 139, 125, 134, 120, 116, 118, 125, 116, 122, 121, 123, 123, 103, 133, 118, 148, 147, 139, 106, 124, 136, 135, 134, 133, 135, 122, 136, 133, 112, 133, 119, 135, 130, 120, 114, 122, 120, 126, 129, 119, 127, 126, 139, 137, 116, 126, 128, 128, 128, 123, 127, 142, 123, 102, 136, 131, 113, 125, 115, 110, 127, 130, 124, 128, 114, 122, 125, 127, 120, 116, 147, 119, 130, 145, 120, 119, 115, 126, 97, 115, 132, 122, 120, 121, 124, 124, 122, 117, 134, 122, 144, 122, 131, 125, 127, 135, 124, 122, 116, 120, 150, 117, 130, 130, 124, 126, 134, 143, 122, 140, 123, 118, 123, 138, 123, 143, 117, 132, 134, 121, 124, 129, 120, 120, 119, 120, 129, 107, 131, 122, 150, 134, 125, 142, 143, 128, 128, 143, 109, 119, 115, 129, 128, 136, 119, 137, 128, 129, 127, 135, 122, 107, 112, 129, 122, 132, 131, 113, 119, 139, 120, 127, 132, 124, 122, 132, 123, 148, 124, 127, 123, 140, 128, 127, 129, 136, 125, 144, 127, 126, 130, 135, 120, 131, 135, 110, 117, 131, 126, 124, 111, 108, 130, 132, 122, 139, 124, 121, 123, 125, 131, 133, 107, 134, 123, 139, 142, 126, 135, 123, 125, 116, 107, 139, 139, 121, 125, 114, 133, 115, 113, 130, 112, 126, 125, 127, 127, 118, 113, 150, 134, 114, 130, 140, 131, 122, 155, 129, 105, 134, 107, 119, 120, 107, 116, 122, 136, 135, 131, 133, 122, 142, 111, 117, 115, 121, 127, 120, 138, 110, 118, 130, 121, 125, 132, 126, 139, 135, 122, 123, 108, 133, 123, 113, 119, 126, 118, 121, 118, 121, 99, 111, 130, 128, 134, 108, 132, 120, 118, 124, 128, 134, 119, 137, 115, 138, 143, 121, 120, 119, 103, 133, 119, 118, 125, 132, 119, 122, 124, 128, 126, 131, 130, 126, 119, 125, 130, 129, 107, 131, 120, 121, 146, 133, 128, 128, 127, 108, 124, 124, 111, 106, 131, 140, 131, 126, 125, 110, 140, 126, 138, 140, 118, 117, 118, 141, 137, 130, 120, 123, 122, 129, 114, 144, 146, 108, 138, 119, 131, 130, 123, 107, 124, 120, 118, 138, 125, 136, 110, 142, 128, 132, 120, 126, 112, 122, 130, 131, 128, 137, 135, 125, 137, 145, 127, 126, 111, 130, 114, 130, 133, 133, 118, 125, 134, 107, 138, 125, 149, 138, 127, 137, 138, 110, 119, 122, 126, 107, 133, 132, 124, 126, 126, 134, 116, 121, 112, 129, 123, 115, 123, 117, 121, 133, 123, 119, 136, 129, 130, 122, 133, 134, 129, 132, 118, 122, 112, 131, 105, 122, 116, 127, 140, 104, 112, 119, 118, 125, 133, 128, 119, 119, 99, 126, 122, 130, 122, 118, 120, 138, 111, 122, 131, 124, 125, 133, 126, 133, 142, 122, 136, 124, 123, 128, 111, 133, 124, 122, 117, 121, 130, 120, 143, 131, 117, 141, 118, 131, 153, 117, 120, 127, 148, 122, 126, 131, 115, 117, 118, 118, 121, 116, 150, 129, 124, 125, 126, 126, 116, 123, 136, 106, 114, 135, 132, 127, 117, 115, 118, 148, 101, 122, 130, 122, 107, 122, 131, 120, 127, 118, 121, 113, 108, 123, 117, 110, 127, 121, 127, 108, 123, 141, 111, 119, 120, 117, 123, 112, 130, 130, 125, 136, 113, 117, 123, 119, 132, 125, 118, 108, 130, 111, 116, 114, 116, 118, 120, 135, 132, 131, 118, 137, 113, 127, 116, 111, 120, 135, 113, 136, 134, 120, 123, 123, 122, 110, 135, 137, 112, 137, 125, 128, 121, 121, 119, 123, 115, 132, 119, 99, 125, 159, 98, 128, 113, 117, 120, 128, 140, 113, 112, 111, 125, 123, 126, 135, 125, 132, 108, 122, 138, 139, 122, 120, 132, 120, 117, 128, 118, 126, 115, 99, 122, 129, 126, 129, 114, 120, 117, 132, 113, 144, 132, 143, 162, 117, 138, 127, 118, 134, 126, 128, 117, 124, 125, 136, 95, 113, 111, 119, 116, 113, 131, 125, 132, 114, 130, 130, 120, 119, 109, 139, 120, 122, 130, 142, 150, 132, 140, 130, 130, 130, 126, 132, 117, 116, 126, 130, 124, 104, 123, 117, 126, 129, 111, 147, 116, 104, 134, 127, 125, 120, 126, 149, 128, 113, 132, 129, 118, 122, 107, 122, 129, 128, 111, 128, 119, 101, 126, 130, 126, 128, 130, 128, 130, 113, 126, 145, 112, 129, 137, 141, 121, 149, 119, 126, 142, 139, 132, 124, 135, 113, 145, 125, 131, 102, 129, 136, 109, 131, 111, 129, 120, 124, 115, 134, 134, 132, 111, 137, 120, 121, 135, 128, 117, 119, 119, 132, 130, 112, 126, 123, 116, 137, 115, 148, 131, 132, 142, 97, 126, 120, 115, 126, 121, 114, 111, 128, 135, 137, 107, 123, 117, 115, 142, 115, 120, 137, 118, 109, 135, 117, 114, 130, 112, 129, 117, 123, 126, 120, 117, 120, 120, 146, 118, 121, 126, 120, 140, 123, 133, 117, 139, 139, 135, 108, 117, 120, 127, 130, 110, 120, 125, 134, 117, 119, 132, 118, 129, 115, 150, 116, 123, 128, 133, 103, 129, 126, 124, 134, 146, 146, 138, 119, 128, 105, 119, 120, 133, 121, 124, 126, 141, 146, 124, 126, 126, 136, 123, 139, 107, 121, 121, 127, 107, 129, 126, 122, 130, 125, 123, 120, 139, 152, 136, 140, 127, 126, 125, 131, 144, 129, 142, 136, 131, 126, 127, 134, 113, 116, 127, 131, 125, 119, 134, 146, 145, 141, 107, 118, 125, 137, 138, 129, 127, 118, 115, 140, 131, 123, 147, 131, 128, 126, 118, 142, 129, 139, 113, 116, 157, 135, 118, 111, 109, 125, 114, 110, 131, 116, 116, 136, 144, 114, 129, 106, 125, 113, 123, 130, 148, 119, 138, 109, 143, 114, 105, 118, 136, 122, 138, 117, 128, 130, 129, 140, 134, 105, 111, 123, 137, 133, 124, 100, 121, 138, 136, 131, 157, 123, 128, 112, 131, 141, 127, 118, 127, 126, 125, 132, 125, 126, 139, 129, 122, 119, 113, 137, 127, 120, 126, 135, 128, 106, 106, 115, 135, 139, 133, 138, 127, 105, 129, 120, 123, 133, 120, 119, 133, 130, 127, 131, 116, 117, 126, 140, 142, 148, 147, 121, 129, 125, 116, 131, 114, 132, 108, 133, 122, 125, 109, 134, 121, 132, 112, 126, 148, 129, 123, 120, 122, 117, 124, 124, 115, 131, 146, 143, 136, 126, 126, 131, 135, 130, 146, 117, 122, 137, 122, 139, 123, 119, 127, 115, 128, 119, 120, 118, 112, 123, 129, 130, 121, 128, 152, 121, 133, 143, 123, 131, 125, 128, 137, 135, 128, 138, 116, 132, 125, 113, 122, 120, 121, 140, 128, 122, 109, 117, 127, 133, 115, 128, 125, 116, 125, 131, 124, 136, 127, 115, 119, 134, 140, 114, 116, 120, 139, 128, 127, 118, 137, 117, 136, 126, 117, 141, 134, 129, 125, 122, 132, 124, 130, 113, 126, 132, 119, 123, 118, 118, 125, 109, 125, 115, 110, 133, 115, 129, 143, 148, 116, 132, 127, 113, 129, 108, 135, 122, 128, 121, 126, 121, 134, 135, 134, 127, 125, 113, 129, 119, 109, 140, 117, 119, 123, 127, 126, 130, 107, 117, 141, 115, 140, 117, 128, 125, 105, 129, 115, 109, 126, 120, 114, 124, 129, 127, 141, 125, 118, 129, 101, 101, 129, 112, 122, 141, 131, 130, 123, 114, 130, 117, 127, 126, 126, 143, 124, 146, 140, 113, 125, 124, 135, 125, 122, 110, 131, 153, 132, 132, 127, 130, 143, 118, 125, 120, 141, 109, 135, 108, 127, 119, 128, 121, 131, 124, 118, 132, 121, 142, 130, 121, 119, 136, 140, 118, 106, 136, 140, 133, 133, 107, 130, 130, 130, 115, 120, 132, 131, 119, 121, 126, 125, 120, 125, 139, 104, 121, 135, 115, 129, 117, 142, 121, 117, 124, 110, 104, 127, 126, 115, 153, 126, 134, 155, 116, 128, 122, 148, 111, 108, 122, 127, 124, 136, 106, 125, 136, 115, 125, 111, 126, 116, 130, 108, 111, 157, 133, 114, 123, 128, 149, 123, 111, 123, 123, 113, 145, 129, 133, 127, 138, 153, 117, 125, 123, 136, 142, 114, 124, 115, 124, 122, 103, 131, 140, 147, 140, 121, 113, 130, 101, 136, 141, 154, 126, 146, 118, 120, 118, 126, 128, 115, 123, 124, 113, 124, 138, 150, 132, 120, 120, 129, 123, 129, 133, 152, 139, 131, 111, 148, 141, 113, 105, 119, 123, 154, 120, 122, 139, 105, 127, 129, 121, 122, 109, 111, 109, 136, 115, 113, 117, 109, 125, 129, 121, 121, 124, 136, 135, 117, 124, 131, 126, 125, 124, 140, 111, 120, 146, 121, 129, 133, 122, 128, 112, 119, 136, 120, 119, 122, 123, 123, 130, 128, 119, 119, 132, 139, 116, 108, 118, 133, 112, 127, 133, 116, 113, 128, 146, 102, 118, 122, 124, 131, 132, 106, 140, 134, 130, 135, 121, 125, 135, 126, 120, 121, 123, 115, 118, 122, 140, 113, 136, 116, 136, 113, 134, 119, 133, 120, 113, 111, 130, 126, 119, 120, 134, 123, 105, 142, 119, 120, 121, 123, 118, 131, 138, 132, 124, 120, 134, 130, 130, 126, 137, 104, 137, 139, 113, 112, 114, 153, 125, 104, 137, 136, 125, 129, 130, 119, 118, 128, 111, 124, 147, 118, 117, 131, 133, 129, 139, 102, 136, 117, 101, 117, 113, 116, 132, 118, 121, 110, 117, 121, 109, 120, 141, 131, 112, 120, 118, 148, 122, 124, 111, 139, 116, 129, 131, 117, 127, 123, 127, 124, 117, 125, 137, 116, 129, 114, 140, 121, 129, 118, 132, 121, 125, 123, 129, 124, 128, 127, 116, 139, 119, 122, 121, 133, 127, 132, 118, 115, 114, 130, 141, 129, 121, 111, 124, 109, 163, 140, 142, 126, 121, 147, 123, 131, 112, 137, 126, 132, 131, 117, 130, 117, 120, 110, 117, 115, 143, 124, 114, 112, 120, 119, 124, 109, 134, 119, 125, 144, 132, 116, 130, 137, 112, 118, 128, 127, 120, 118, 113, 131, 114, 140, 132, 114, 127, 126, 112, 139, 123, 116, 134, 129, 141, 119, 114, 128, 120, 149, 129, 130, 120, 110, 124, 129, 134, 107, 134, 147, 154, 134, 126, 114, 131, 135, 132, 116, 126, 122, 142, 129, 113, 114, 112, 117, 138, 121, 128, 120, 129, 128, 116, 122, 118, 127, 125, 134, 129, 129, 126, 130, 121, 130, 129, 150, 116, 118, 115, 121, 123, 125, 132, 124, 116, 120, 118, 121, 120, 119, 130, 126, 130, 123, 132, 126, 137, 114, 123, 126, 130, 135, 124, 136, 140, 125, 121, 129, 132, 109, 117, 124, 127, 142, 151, 143, 129, 134, 129, 139, 124, 136, 130, 134, 124, 138, 109, 126, 109, 139, 121, 123, 132, 125, 115, 131, 128, 143, 139, 109, 110, 124, 120, 123, 113, 131, 131, 124, 119, 133, 107, 128, 139, 126, 132, 131, 107, 109, 122, 114, 126, 129, 123, 131, 127, 143, 109, 130, 116, 140, 105, 116, 127, 123, 109, 113, 144, 123, 104, 139, 131, 106, 127, 121, 125, 112, 130, 125, 131, 115, 134, 120, 122, 104, 130, 108, 112, 122, 128, 115, 125, 129, 119, 109, 139, 127, 128, 121, 135, 111, 127, 129, 136, 133, 128, 123, 135, 118, 131, 137, 129, 112, 140, 125, 113, 120, 123, 130, 123, 134, 118, 131, 117, 120, 132, 119, 124, 117, 117, 129, 121, 117, 120, 128, 135, 136, 118, 130, 130, 123, 145, 133, 130, 121, 126, 125, 164, 115, 137, 114, 122, 131, 127, 119, 139, 128, 122, 134, 120, 142, 127, 136, 115, 114, 132, 121, 128, 139, 108, 113, 119, 131, 129, 123, 139, 120, 141, 115, 134, 126, 146, 123, 114, 122, 123, 129, 134, 126, 133, 134, 117, 133, 119, 127, 120, 132, 120, 132, 118, 118, 117, 124, 121, 121, 153, 117, 116, 115, 124, 124, 135, 130, 127, 136, 123, 100, 139, 131, 111, 128, 124, 120, 129, 142, 107, 139, 128, 154, 141, 131, 128, 139, 126, 112, 110, 128, 109, 134, 137, 107, 116, 121, 136, 141, 120, 136, 131, 114, 121, 131, 125, 121, 125, 108, 121, 112, 117, 129, 118, 125, 144, 144, 136, 128, 110, 116, 123, 116, 131, 145, 124, 131, 95, 126, 132, 127, 111, 116, 97, 119, 112, 127, 124, 121, 105, 118, 125, 125, 131, 127, 148, 130, 112, 119, 117, 129, 133, 126, 130, 121, 123, 122, 111, 141, 123, 118, 130, 113, 117, 136, 112, 129, 115, 147, 129, 127, 127, 127, 123, 130, 151, 131, 128, 118, 128, 121, 131, 134, 118, 123, 126, 133, 117, 122, 134, 126, 134, 142, 129, 111, 134, 119, 142, 130, 120, 113, 129, 129, 125, 121, 129, 132, 138, 122, 105, 123, 123, 136, 121, 121, 138, 125, 122, 127, 124, 131, 121, 131, 116, 102, 109, 147, 129, 127, 118, 137, 130, 125, 134, 123, 130, 124, 107, 116, 129, 123, 118, 134, 138, 125, 121, 125, 116, 137, 113, 134, 120, 119, 135, 145, 133, 127, 112, 129, 125, 110, 133, 121, 135, 123, 128, 130, 123, 104, 127, 125, 109, 125, 130, 110, 134, 136, 122, 115, 127, 125, 126, 127, 107, 120, 104, 118, 129, 118, 155, 128, 143, 118, 146, 129, 131, 110, 133, 130, 122, 132, 122, 114, 121, 121, 114, 133, 131, 114, 136, 116, 130, 143, 118, 135, 129, 138, 110, 124, 97, 119, 131, 117, 128, 128, 121, 126, 112, 126, 146, 125, 133, 124, 128, 104, 120, 127, 126, 127, 137, 117, 120, 120, 120, 124, 142, 130, 138, 120, 112, 132, 141, 129, 124, 129, 99, 125, 123, 123, 123, 116, 125, 136, 131, 122, 135, 127, 127, 130, 122, 132, 145, 157, 118, 112, 119, 123, 119, 117, 120, 115, 119, 111, 126, 122, 127, 110, 133, 130, 136, 122, 114, 121, 101, 127, 147, 129, 117, 123, 133, 126, 118, 133, 109, 108, 135, 117, 129, 131, 102, 125, 116, 132, 131, 134, 130, 124, 111, 130, 114, 119, 120, 137, 117, 114, 121, 110, 119, 113, 123, 97, 138, 119, 120, 117, 118, 133, 135, 107, 109, 119, 126, 129, 129, 135, 116, 123, 116, 103, 104, 121, 120, 109, 136, 124, 135, 132, 132, 122, 118, 138, 141, 111, 134, 101, 123, 151, 112, 137, 125, 121, 137, 122, 137, 124, 112, 139, 115, 116, 106, 131, 110, 114, 123, 125, 116, 125, 112, 113, 120, 120, 120, 124, 131, 127, 106, 139, 116, 119, 123, 131, 105, 111, 123, 116, 115, 133, 130, 142, 119, 129, 132, 139, 125, 119, 124, 102, 122, 142, 118, 105, 147, 102, 137, 128, 136, 127, 119, 138, 132, 120, 118, 110, 134, 146, 127, 120, 107, 123, 105, 152, 129, 123, 121, 123, 121, 139, 128, 121, 116, 136, 121, 123, 128, 116, 114, 129, 122, 135, 132, 131, 105, 129, 121, 129, 105, 130, 122, 124, 113, 140, 127, 118, 124, 134, 127, 141, 129, 128, 114, 113, 115, 129, 139, 142, 128, 126, 135, 107, 123, 123, 123, 137, 123, 131, 122, 130, 124, 114, 127, 114, 120, 121, 126, 136, 119, 123, 108, 116, 116, 132, 126, 108, 128, 131, 120, 139, 127, 144, 117, 130, 140, 124, 136, 129, 131, 117, 110, 123, 124, 143, 117, 123, 128, 120, 136, 114, 112, 131, 120, 126, 121, 125, 121, 114, 116, 130, 138, 136, 110, 134, 124, 131, 130, 123, 120, 106, 122, 128, 161, 146, 114, 124, 109, 110, 102, 154, 125, 115, 127, 114, 121, 127, 123, 138, 131, 128, 126, 146, 114, 114, 121, 114, 125, 125, 132, 129, 127, 125, 125, 105, 135, 115, 134, 131, 137, 124, 125, 115, 139, 144, 120, 142, 118, 134, 125, 116, 134, 137, 123, 130, 116, 110, 128, 121, 119, 126, 128, 114, 121, 110, 140, 127, 144, 96, 116, 135, 119, 125, 136, 142, 132, 127, 114, 114, 119, 144, 141, 118, 118, 150, 145, 141, 123, 132, 143, 120, 123, 125, 118, 127, 127, 114, 131, 140, 141, 129, 131, 112, 115, 128, 117, 115, 122, 115, 134, 137, 120, 128, 112, 113, 121, 118, 114, 123, 138, 136, 125, 135, 124, 131, 131, 124, 126, 117, 143, 130, 110, 142, 130, 124, 134, 130, 119, 145, 126, 124, 120, 127, 129, 114, 130, 133, 124, 119, 147, 125, 114, 139, 124, 118, 140, 114, 132, 109, 110, 127, 114, 125, 144, 155, 137, 126, 125, 110, 118, 135, 113, 126, 129, 119, 127, 126, 143, 128, 124, 125, 135, 128, 117, 139, 143, 131, 113, 126, 135, 120, 133, 131, 101, 135, 108, 131, 125, 137, 139, 129, 127, 114, 125, 134, 125, 137, 123, 114, 132, 133, 133, 133, 126, 135, 110, 118, 135, 125, 138, 107, 142, 131, 113, 118, 143, 116, 122, 128, 123, 156, 127, 137, 125, 122, 122, 129, 128, 128, 126, 128, 117, 131, 133, 138, 133, 124, 121, 122, 115, 133, 130, 119, 125, 126, 133, 124, 129, 136, 139, 144, 129, 137, 115, 121, 133, 88, 136, 111, 121, 108, 141, 116, 107, 154, 131, 112, 124, 124, 133, 140, 123, 134, 127, 127, 155, 125, 125, 134, 127, 116, 138, 131, 125, 117, 131, 130, 123, 131, 123, 121, 118, 146, 133, 122, 121, 117, 113, 119, 132, 108, 145, 130, 121, 130, 109, 114, 113, 144, 112, 122, 125, 120, 125, 138, 125, 126, 126, 133, 133, 124, 122, 124, 132, 112, 126, 114, 130, 132, 92, 110, 131, 142, 128, 144, 120, 112, 129, 117, 115, 119, 109, 127, 140, 139, 144, 119, 113, 147, 103, 113, 133, 149, 105, 130, 126, 116, 126, 130, 130, 138, 101, 124, 116, 114, 120, 123, 113, 102, 130, 133, 108, 118, 118, 131, 127, 100, 112, 113, 122, 120, 109, 138, 133, 129, 121, 132, 126, 121, 121, 127, 127, 116, 124, 76, 97, 124, 90, 135, 129, 125, 143, 114, 120, 125, 135, 135, 127, 123, 115, 125, 126, 116, 102, 119, 118, 117, 133, 134, 130, 131, 127, 116, 121, 126, 124, 123, 130, 119, 116, 113, 146, 129, 109, 145, 122, 141, 130, 116, 120, 118, 119, 128, 118, 122, 124, 114, 119, 132, 127, 118, 145, 120, 110, 120, 139, 138, 127, 128, 124, 133, 117, 143, 119, 121, 132, 124, 150, 123, 133, 116, 123, 133, 128, 105, 136, 131, 147, 120, 114, 135, 119, 144, 108, 142, 128, 107, 125, 116, 121, 128, 100, 130, 122, 99, 114, 130, 131, 115, 119, 126, 133, 100, 138, 130, 112, 151, 132, 130, 134, 121, 125, 119, 128, 135, 116, 109, 131, 107, 137, 130, 116, 123, 140, 113, 130, 102, 139, 119, 116, 124, 120, 112, 123, 132, 115, 132, 155, 115, 122, 120, 124, 150, 134, 120, 129, 121, 127, 117, 130, 132, 137, 140, 131, 135, 110, 119, 116, 155, 118, 122, 125, 123, 121, 142, 118, 116, 138, 117, 136, 116, 114, 117, 128, 126, 127, 135, 124, 134, 109, 114, 132, 154, 150, 133, 123, 121, 117, 118, 105, 142, 112, 145, 130, 135, 113, 126, 122, 126, 136, 126, 130, 133, 138, 137, 115, 114, 130, 115, 128, 130, 128, 141, 129, 125, 129, 127, 136, 144, 106, 117, 141, 129, 131, 118, 132, 148, 130, 137, 124, 99, 109, 114, 110, 116, 117, 122, 138, 135, 154, 132, 128, 95, 113, 135, 130, 137, 106, 120, 123, 124, 93, 135, 124, 117, 139, 140, 121, 120, 149, 135, 106, 127, 109, 127, 107, 120, 118, 131, 116, 133, 129, 108, 120, 133, 122, 123, 123, 112, 103, 121, 122, 121, 123, 127, 124, 124, 111, 107, 123, 115, 147, 134, 149, 123, 111, 124, 113, 131, 133, 129, 135, 110, 129, 120, 129, 125, 128, 111, 122, 121, 118, 118, 127, 102, 146, 133, 126, 121, 122, 128, 117, 135, 135, 137, 127, 103, 111, 118, 112, 119, 133, 115, 121, 123, 124, 140, 124, 121, 125, 117, 131, 140, 124, 132, 145, 134, 157, 139, 135, 130, 111, 136, 128, 141, 109, 130, 124, 126, 119, 132, 123, 126, 127, 126, 144, 125, 124, 131, 138, 143, 153, 122, 130, 125, 136, 122, 161, 136, 128, 133, 122, 130, 110, 118, 135, 141, 127, 129, 142, 112, 138, 132, 132, 117, 114, 109, 106, 133, 117, 116, 133, 132, 128, 111, 129, 107, 127, 124, 138, 129, 136, 131, 132, 134, 123, 126, 126, 137, 116, 113, 131, 126, 141, 114, 132, 130, 127, 136, 120, 121, 137, 113, 97, 118, 131, 144, 123, 135, 114, 123, 130, 123, 121, 139, 96, 119, 107, 116, 121, 115, 117, 130, 124, 108, 124, 132, 114, 123, 135, 117, 120, 135, 137, 128, 107, 115, 128, 116, 131, 123, 135, 126, 128, 100, 130, 113, 142, 127, 151, 107, 132, 129, 125, 127, 117, 142, 122, 130, 137, 147, 129, 135, 136, 123, 127, 136, 129, 117, 127, 133, 113, 113, 108, 114, 118, 132, 128, 111, 134, 133, 126, 126, 94, 114, 122, 144, 134, 102, 135, 116, 105, 137, 118, 119, 114, 124, 125, 129, 130, 117, 128, 129, 131, 140, 128, 130, 141, 132, 118, 130, 121, 125, 126, 126, 121, 121, 122, 126, 113, 133, 142, 133, 126, 123, 138, 139, 124, 122, 113, 133, 123, 124, 123, 115, 122, 131, 106, 150, 124, 135, 123, 118, 129, 124, 115, 131, 127, 122, 125, 124, 118, 108, 124, 119, 133, 130, 116, 125, 104, 107, 111, 125, 126, 140, 132, 125, 124, 123, 119, 146, 125, 116, 116, 120, 110, 137, 123, 136, 133, 120, 126, 123, 124, 130, 130, 129, 125, 126, 114, 128, 117, 113, 110, 127, 131, 131, 132, 145, 133, 111, 123, 129, 128, 150, 111, 106, 113, 130, 121, 124, 129, 117, 118, 119, 125, 120, 124, 118, 117, 143, 122, 119, 124, 132, 120, 125, 111, 123, 136, 115, 97, 128, 131, 112, 144, 131, 114, 120, 120, 135, 119, 115, 131, 107, 106, 111, 126, 124, 125, 119, 139, 133, 128, 141, 134, 120, 127, 117, 120, 110, 121, 128, 137, 127, 131, 125, 107, 124, 133, 116, 147, 129, 112, 128, 133, 135, 132, 112, 109, 120, 130, 117, 117, 130, 122, 132, 132, 122, 126, 126, 125, 125, 141, 125, 118, 110, 131, 144, 123, 114, 124, 127, 134, 140, 135, 117, 136, 122, 120, 109, 121, 133, 124, 146, 114, 128, 124, 141, 131, 116, 112, 136, 125, 142, 126, 119, 120, 130, 131, 119, 127, 128, 137, 126, 124, 125, 137, 132, 113, 129, 128, 135, 139, 140, 122, 124, 136, 123, 132, 127, 127, 130, 122, 134, 134, 120, 114, 129, 143, 132, 110, 111, 114, 130, 132, 112, 129, 115, 123, 136, 133, 127, 120, 111, 126, 110, 133, 126, 118, 118, 113, 138, 136, 116, 115, 114, 135, 108, 139, 140, 135, 124, 140, 116, 116, 108, 117, 118, 131, 112, 136, 128, 137, 143, 134, 128, 121, 121, 132, 116, 114, 140, 123, 119, 99, 120, 110, 130, 119, 134, 129, 129, 121, 138, 133, 131, 127, 122, 128, 135, 124, 119, 113, 134, 113, 141, 122, 110, 131, 128, 130, 148, 131, 121, 131, 119, 118, 111, 122, 136, 118, 139, 151, 128, 131, 134, 137, 125, 120, 125, 138, 128, 133, 142, 144, 129, 128, 109, 128, 135, 137, 131, 118, 123, 129, 109, 130, 137, 123, 120, 128, 131, 112, 131, 121, 117, 119, 133, 145, 147, 131, 138, 128, 116, 115, 120, 133, 110, 118, 144, 128, 133, 113, 131, 114, 129, 126, 126, 117, 134, 139, 131, 118, 115, 115, 121, 122, 148, 135, 119, 132, 142, 115, 124, 122, 123, 121, 120, 127, 134, 98, 116, 122, 122, 130, 118, 131, 121, 136, 130, 119, 132, 115, 127, 132, 119, 127, 130, 122, 150, 119, 120, 135, 122, 112, 128, 122, 139, 116, 123, 104, 126, 119, 111, 135, 122, 124, 147, 131, 126, 112, 122, 119, 132, 134, 112, 135, 129, 133, 102, 119, 121, 128, 114, 129, 117, 119, 110, 114, 115, 117, 124, 132, 121, 122, 122, 108, 137, 129, 128, 113, 113, 114, 126, 136, 126, 144, 141, 113, 118, 114, 127, 120, 113, 114, 120, 120, 117, 134, 133, 131, 142, 121, 134, 118, 120, 118, 140, 152, 109, 138, 116, 117, 122, 115, 135, 133, 131, 132, 128, 125, 123, 128, 132, 120, 130, 107, 117, 123, 137, 124, 130, 126, 120, 130, 119, 124, 118, 119, 119, 142, 102, 122, 134, 130, 125, 135, 120, 136, 126, 128, 94, 130, 131, 115, 119, 131, 126, 108, 116, 128, 123, 137, 126, 119, 119, 124, 115, 127, 125, 109, 124, 122, 107, 123, 137, 141, 112, 112, 129, 135, 123, 125, 132, 122, 116, 131, 140, 137, 123, 134, 140, 118, 136, 141, 129, 133, 130, 128, 143, 138, 125, 119, 120, 122, 131, 134, 127, 127, 114, 127, 134, 133, 135, 139, 131, 116, 129, 124, 122, 138, 118, 126, 117, 121, 134, 129, 128, 128, 129, 142, 128, 122, 132, 135, 118, 112, 114, 113, 120, 113, 119, 128, 138, 114, 139, 131, 121, 119, 130, 126, 132, 137, 150, 123, 115, 112, 142, 137, 117, 138, 121, 120, 124, 124, 122, 142, 136, 131, 120, 133, 137, 128, 121, 140, 115, 122, 132, 125, 129, 138, 114, 122, 115, 114, 142, 121, 116, 113, 140, 127, 115, 128, 123, 122, 135, 133, 129, 134, 113, 119, 133, 120, 122, 124, 140, 120, 122, 136, 141, 139, 116, 134, 121, 129, 115, 120, 128, 127, 120, 134, 121, 140, 128, 136, 127, 145, 123, 124, 144, 129, 130, 128, 125, 124, 134, 125, 132, 141, 133, 123, 129, 118, 125, 128, 120, 123, 115, 106, 129, 131, 131, 138, 123, 132, 133, 102, 135, 130, 129, 119, 123, 116, 141, 139, 126, 116, 133, 139, 117, 122, 126, 132, 125, 123, 129, 131, 129, 127, 129, 119, 149, 109, 120, 116, 139, 132, 126, 129, 123, 121, 99, 114, 121, 134, 132, 119, 132, 116, 118, 123, 131, 119, 144, 132, 111, 118, 122, 124, 117, 148, 123, 125, 122, 132, 113, 125, 125, 127, 121, 137, 133, 118, 122, 120, 127, 139, 144, 119, 113, 119, 127, 124, 139, 123, 129, 120, 135, 128, 120, 131, 125, 129, 130, 123, 141, 139, 115, 145, 127, 133, 110, 118, 108, 129, 115, 120, 115, 139, 138, 122, 109, 123, 139, 124, 156, 130, 124, 124, 135, 103, 123, 116, 125, 140, 137, 123, 112, 131, 140, 131, 128, 115, 125, 124, 124, 127, 139, 120, 120, 138, 97, 122, 125, 121, 125, 122, 120, 128, 116, 128, 145, 121, 100, 139, 131, 133, 119, 125, 130, 132, 126, 111, 118, 117, 115, 159, 131, 120, 140, 118, 144, 126, 134, 125, 157, 122, 146, 128, 126, 133, 123, 120, 135, 127, 122, 132, 114, 139, 122, 137, 121, 106, 126, 120, 115, 133, 133, 130, 125, 131, 105, 132, 115, 131, 117, 122, 139, 116, 118, 132, 129, 123, 135, 122, 125, 113, 127, 123, 130, 118, 151, 132, 126, 131, 116, 118, 135, 133, 126, 113, 128, 105, 115, 123, 129, 126, 128, 107, 135, 125, 126, 107, 113, 123, 132, 142, 118, 138, 114, 128, 131, 135, 143, 120, 129, 119, 131, 104, 126, 124, 136, 102, 135, 118, 123, 121, 119, 125, 117, 108, 132, 133, 114, 131, 128, 123, 126, 121, 130, 129, 102, 151, 114, 125, 119, 135, 122, 118, 132, 127, 139, 109, 147, 124, 122, 122, 124, 139, 125, 126, 121, 127, 123, 141, 117, 120, 115, 133, 124, 121, 123, 124, 118, 127, 124, 126, 132, 120, 131, 128, 122, 129, 124, 126, 140, 126, 135, 111, 123, 125, 121, 130, 126, 140, 125, 128, 119, 133, 124, 142, 137, 144, 139, 131, 144, 130, 141, 121, 134, 125, 112, 136, 122, 126, 126, 121, 124, 138, 137, 116, 136, 125, 132, 155, 128, 110, 124, 128, 137, 120, 121, 128, 118, 132, 139, 113, 125, 128, 130, 124, 119, 148, 121, 130, 131, 122, 123, 121, 118, 136, 114, 122, 137, 116, 131, 116, 129, 130, 111, 120, 140, 127, 119, 121, 116, 125, 122, 122, 133, 122, 131, 146, 121, 131, 109, 118, 123, 131, 112, 116, 136, 130, 126, 142, 115, 118, 126, 139, 124, 109, 117, 124, 115, 137, 114, 122, 133, 137, 126, 122, 111, 121, 138, 114, 111, 109, 123, 115, 123, 123, 119, 138, 124, 120, 122, 126, 137, 112, 121, 121, 117, 133, 143, 134, 115, 125, 116, 110, 123, 123, 123, 129, 132, 103, 151, 126, 119, 117, 130, 142, 146, 112, 131, 133, 129, 134, 126, 109, 113, 125, 126, 117, 118, 112, 122, 128, 123, 125, 108, 111, 132, 122, 114, 116, 125, 129, 143, 127, 118, 127, 126, 120, 128, 119, 132, 143, 127, 118, 113, 117, 135, 116, 132, 107, 121, 125, 120, 118, 129, 134, 130, 124, 118, 143, 136, 108, 124, 134, 131, 114, 130, 127, 117, 141, 108, 120, 129, 112, 129, 122, 128, 126, 130, 130, 122, 123, 135, 119, 116, 126, 118, 134, 134, 136, 122, 128, 123, 131, 101, 121, 120, 123, 118, 129, 130, 112, 123, 133, 118, 125, 143, 121, 125, 119, 128, 122, 122, 121, 124, 121, 117, 123, 104, 114, 117, 131, 126, 108, 111, 133, 110, 129, 134, 121, 141, 127, 119, 128, 125, 111, 127, 114, 125, 133, 125, 129, 106, 136, 118, 133, 119, 122, 147, 132, 121, 119, 125, 119, 140, 137, 125, 128, 151, 128, 119, 121, 108, 119, 117, 123, 138, 124, 105, 124, 106, 138, 121, 117, 118, 115, 107, 118, 125, 112, 136, 117, 99, 130, 116, 118, 119, 129, 129, 110, 125, 126, 136, 129, 124, 130, 127, 121, 123, 121, 126, 128, 112, 117, 129, 135, 127, 126, 111, 122, 119, 101, 137, 111, 127, 129, 124, 117, 115, 138, 114, 132, 112, 138, 116, 110, 114, 130, 122, 137, 131, 135, 111, 126, 131, 136, 121, 137, 112, 106, 117, 123, 139, 114, 115, 135, 128, 133, 122, 138, 130, 108, 118, 139, 135, 146, 109, 140, 139, 108, 124, 124, 121, 121, 118, 130, 140, 121, 128, 144, 131, 145, 136, 148, 125, 104, 124, 116, 123, 121, 140, 129, 115, 124, 124, 136, 128, 115, 144, 110, 125, 130, 120, 130, 127, 138, 106, 116, 122, 137, 114, 126, 123, 122, 129, 123, 134, 130, 117, 108, 117, 113, 124, 127, 110, 134, 127, 120, 121, 118, 134, 140, 132, 116, 130, 129, 132, 129, 125, 128, 125, 112, 113, 123, 113, 113, 119, 127, 119, 122, 117, 136, 123, 131, 119, 130, 120, 131, 123, 111, 124, 122, 103, 128, 125, 114, 123, 129, 117, 123, 123, 137, 112, 118, 137, 123, 123, 113, 123, 118, 129, 133, 128, 103, 113, 118, 107, 135, 134, 136, 131, 117, 136, 127, 133, 119, 148, 107, 134, 117, 134, 114, 125, 121, 87, 116, 129, 135, 135, 131, 125, 142, 112, 126, 120, 114, 117, 118, 131, 124, 139, 114, 116, 134, 130, 127, 124, 118, 119, 144, 121, 111, 122, 108, 121, 129, 120, 106, 128, 138, 134, 118, 118, 142, 116, 119, 125, 134, 118, 125, 130, 130, 123, 139, 136, 106, 132, 149, 123, 126, 123, 125, 117, 119, 104, 109, 120, 139, 131, 126, 128, 98, 123, 128, 119, 119, 117, 117, 136, 129, 124, 126, 107, 123, 127, 106, 124, 129, 118, 104, 110, 119, 118, 129, 123, 124, 102, 125, 124, 141, 132, 111, 135, 118, 131, 142, 131, 118, 146, 108, 131, 126, 129, 130, 101, 116, 143, 120, 126, 104, 103, 124, 151, 114, 141, 138, 119, 119, 113, 135, 121, 120, 148, 126, 117, 131, 119, 110, 145, 134, 132, 141, 125, 130, 116, 133, 109, 112, 120, 116, 121, 116, 137, 127, 128, 111, 115, 138, 110, 131, 125, 116, 140, 128, 126, 121, 123, 119, 122, 144, 130, 138, 111, 129, 143, 113, 118, 122, 131, 129, 127, 112, 122, 129, 125, 126, 121, 118, 113, 136, 113, 128, 144, 132, 119, 131, 126, 154, 131, 120, 112, 126, 135, 125, 132, 130, 118, 142, 113, 124, 137, 135, 116, 120, 124, 114, 123, 122, 132, 152, 115, 123, 111, 130, 121, 123, 117, 127, 138, 109, 138, 131, 136, 116, 117, 122, 122, 136, 119, 129, 127, 134, 116, 125, 140, 137, 121, 130, 130, 131, 124, 134, 122, 125, 102, 113, 116, 116, 128, 127, 96, 138, 141, 142, 133, 124, 109, 106, 126, 155, 121, 127, 117, 127, 128, 136, 114, 138, 122, 143, 110, 134, 117, 125, 121, 122, 137, 129, 120, 121, 127, 131, 122, 121, 139, 99, 123, 122, 125, 115, 139, 108, 106, 123, 126, 97, 119, 137, 121, 115, 119, 141, 122, 132, 119, 146, 123, 136, 130, 151, 111, 112, 111, 127, 136, 129, 133, 112, 119, 130, 113, 129, 132, 141, 118, 115, 116, 119, 124, 137, 135, 137, 133, 125, 125, 146, 115, 114, 113, 111, 135, 119, 147, 129, 125, 118, 124, 135, 121, 124, 114, 128, 114, 123, 130, 112, 112, 138, 127, 129, 132, 133, 137, 128, 124, 130, 128, 135, 140, 142, 120, 135, 127, 109, 124, 152, 128, 117, 150, 119, 134, 102, 110, 140, 116, 138, 120, 134, 134, 134, 116, 123, 136, 136, 122, 122, 115, 120, 125, 115, 124, 135, 133, 133, 120, 118, 136, 119, 139, 118, 136, 121, 127, 155, 123, 141, 123, 133, 135, 124, 123, 125, 127, 128, 133, 132, 109, 125, 123, 131, 114, 113, 119, 140, 129, 129, 122, 117, 134, 120, 122, 139, 126, 122, 128, 131, 132, 126, 136, 133, 116, 136, 128, 134, 126, 119, 116, 118, 124, 117, 122, 115, 123, 124, 141, 128, 131, 128, 120, 130, 132, 130, 117, 129, 124, 116, 124, 118, 112, 133, 133, 132, 111, 140, 117, 121, 124, 112, 115, 114, 111, 120, 139, 118, 117, 136, 141, 140, 126, 126, 119, 120, 115, 128, 128, 138, 137, 105, 126, 127, 126, 135, 116, 137, 130, 120, 123, 138, 148, 131, 123, 133, 128, 119, 124, 112, 114, 128, 125, 126, 139, 115, 129, 115, 125, 103, 104, 98, 124, 151, 102, 120, 134, 108, 113, 129, 126, 131, 154, 129, 120, 132, 127, 118, 140, 120, 108, 125, 125, 138, 131, 96, 117, 130, 124, 134, 143, 125, 120, 127, 119, 126, 132, 122, 136, 131, 138, 117, 111, 108, 119, 117, 92, 115, 136, 120, 152, 114, 127, 127, 132, 118, 124, 113, 132, 121, 122, 118, 136, 119, 129, 107, 113, 154, 126, 125, 127, 140, 141, 127, 146, 133, 118, 139, 124, 108, 132, 118, 128, 134, 116, 133, 131, 135, 121, 118, 139, 124, 129, 106, 138, 132, 111, 132, 131, 134, 117, 115, 121, 135, 134, 139, 132, 137, 111, 122, 142, 118, 134, 122, 122, 150, 114, 122, 123, 143, 138, 118, 118, 135, 129, 112, 121, 138, 125, 114, 129, 108, 131, 130, 137, 116, 119, 138, 114, 117, 122, 123, 115, 125, 107, 113, 141, 129, 134, 139, 108, 139, 123, 131, 101, 138, 124, 108, 141, 105, 131, 138, 134, 120, 131, 127, 120, 139, 131, 134, 107, 138, 116, 127, 117, 117, 120, 103, 123, 131, 118, 127, 132, 133, 125, 119, 128, 128, 137, 116, 139, 133, 127, 124, 133, 135, 118, 120, 127, 124, 124, 125, 111, 134, 126, 119, 115, 116, 119, 128, 115, 119, 124, 106, 124, 143, 138, 109, 126, 101, 129, 122, 118, 123, 140, 145, 141, 117, 121, 130, 128, 113, 135, 133, 125, 132, 102, 130, 112, 141, 133, 127, 127, 121, 123, 122, 129, 114, 132, 125, 123, 124, 128, 121, 113, 124, 119, 135, 143, 114, 122, 116, 111, 146, 144, 117, 103, 120, 121, 123, 120, 144, 115, 136, 118, 109, 117, 117, 129, 124, 134, 128, 126, 132, 131, 140, 127, 128, 127, 116, 126, 117, 126, 130, 109, 126, 129, 112, 118, 128, 123, 118, 124, 122, 156, 128, 115, 122, 117, 131, 132, 126, 121, 122, 112, 109, 125, 138, 118, 133, 145, 124, 115, 105, 119, 105, 127, 144, 151, 130, 112, 116, 124, 121, 134, 120, 108, 132, 128, 110, 121, 120, 116, 129, 124, 122, 128, 123, 125, 124, 136, 130, 113, 145, 127, 121, 135, 129, 126, 121, 136, 122, 102, 146, 107, 123, 110, 132, 113, 115, 143, 127, 112, 129, 125, 106, 126, 134, 127, 134, 132, 131, 116, 130, 131, 130, 146, 138, 112, 128, 117, 117, 128, 116, 129, 105, 134, 121, 134, 115, 118, 126, 130, 111, 136, 112, 129, 137, 119, 138, 130, 126, 125, 150, 127, 137, 122, 133, 122, 111, 149, 120, 129, 148, 122, 142, 116, 128, 132, 104, 132, 129, 123, 131, 136, 140, 95, 128, 151, 105, 121, 145, 126, 109, 117, 119, 113, 141, 136, 136, 133, 128, 127, 119, 127, 111, 130, 138, 139, 132, 100, 126, 128, 142, 134, 141, 124, 116, 118, 122, 125, 158, 136, 120, 141, 109, 126, 121, 124, 130, 129, 106, 133, 114, 139, 128, 108, 129, 125, 135, 119, 117, 142, 110, 113, 125, 123, 121, 125, 121, 131, 121, 127, 121, 124, 134, 111, 129, 130, 122, 129, 106, 109, 123, 109, 139, 129, 117, 120, 117, 127, 136, 105, 135, 132, 118, 131, 104, 136, 125, 134, 118, 99, 118, 132, 118, 110, 119, 115, 118, 119, 119, 115, 114, 118, 120, 136, 115, 111, 129, 116, 123, 127, 113, 123, 128, 106, 136, 116, 139, 122, 102, 121, 134, 133, 140, 119, 113, 112, 113, 127, 122, 129, 141, 106, 126, 124, 136, 122, 121, 121, 104, 127, 124, 136, 131, 121, 129, 122, 116, 118, 126, 108, 128, 139, 138, 117, 127, 133, 124, 137, 119, 138, 128, 134, 132, 116, 123, 138, 143, 117, 113, 126, 121, 114, 134, 147, 129, 118, 142, 152, 134, 119, 109, 129, 125, 124, 125, 125, 131, 138, 119, 131, 125, 133, 128, 109, 126, 124, 129, 123, 126, 119, 107, 130, 122, 129, 142, 125, 123, 132, 130, 141, 121, 113, 116, 116, 124, 111, 123, 150, 132, 114, 121, 128, 124, 125, 135, 108, 141, 139, 119, 134, 145, 133, 136, 101, 122, 126, 137, 135, 133, 144, 122, 130, 131, 124, 122, 115, 131, 122, 127, 127, 110, 128, 147, 117, 127, 128, 140, 113, 121, 123, 128, 125, 133, 109, 140, 124, 129, 128, 142, 142, 134, 140, 120, 136, 129, 128, 146, 123, 132, 137, 130, 132, 126, 127, 108, 121, 134, 131, 125, 116, 131, 116, 141, 136, 134, 127, 123, 137, 119, 130, 136, 141, 125, 121, 139, 130, 137, 140, 120, 139, 111, 115, 109, 119, 114, 140, 118, 126, 112, 132, 129, 130, 132, 157, 113, 139, 117, 139, 141, 143, 116, 134, 135, 133, 138, 122, 140, 134, 129, 133, 131, 124, 112, 136, 131, 113, 144, 131, 138, 118, 118, 111, 141, 123, 117, 154, 104, 120, 111, 131, 140, 113, 115, 114, 141, 128, 117, 129, 117, 123, 121, 122, 123, 102, 137, 117, 119, 119, 121, 135, 139, 114, 110, 125, 138, 129, 120, 125, 134, 123, 124, 134, 120, 127, 121, 116, 127, 141, 120, 126, 114, 122, 141, 126, 130, 147, 111, 139, 124, 116, 137, 129, 119, 115, 95, 115, 112, 124, 125, 143, 124, 118, 124, 120, 136, 127, 117, 139, 126, 133, 116, 134, 120, 135, 128, 136, 99, 116, 117, 129, 110, 118, 108, 120, 124, 133, 134, 111, 130, 152, 124, 113, 117, 123, 139, 131, 135, 118, 103, 120, 132, 131, 124, 121, 123, 124, 133, 103, 132, 119, 128, 122, 121, 132, 131, 127, 99, 113, 138, 130, 128, 109, 122, 145, 143, 109, 111, 123, 110, 140, 120, 119, 130, 136, 129, 135, 115, 108, 134, 112, 116, 133, 128, 117, 121, 148, 125, 147, 121, 122, 138, 127, 116, 126, 113, 126, 112, 120, 113, 125, 162, 129, 123, 130, 130, 135, 110, 119, 127, 121, 136, 104, 122, 127, 110, 132, 111, 129, 109, 129, 138, 127, 125, 115, 138, 138, 127, 115, 112, 133, 118, 121, 123, 121, 128, 135, 108, 146, 131, 135, 126, 121, 107, 130, 121, 126, 116, 124, 126, 143, 128, 125, 125, 139, 133, 119, 131, 115, 121, 127, 131, 138, 142, 116, 125, 127, 125, 121, 145, 119, 122, 121, 105, 119, 132, 120, 122, 113, 117, 104, 126, 127, 142, 118, 110, 124, 137, 118, 116, 115, 119, 122, 127, 144, 100, 142, 128, 138, 114, 116, 128, 136, 126, 117, 135, 123, 119, 138, 119, 127, 118, 135, 130, 127, 133, 140, 119, 125, 111, 112, 129, 130, 130, 113, 126, 116, 135, 140, 115, 129, 128, 125, 137, 124, 122, 111, 118, 117, 134, 113, 144, 122, 107, 133, 123, 125, 120, 122, 104, 112, 122, 122, 126, 106, 109, 113, 132, 128, 118, 110, 117, 139, 130, 119, 138, 121, 127, 116, 158, 125, 123, 121, 118, 129, 119, 142, 126, 133, 128, 122, 119, 127, 134, 148, 121, 131, 124, 123, 127, 118, 115, 125, 145, 129, 138, 105, 126, 123, 128, 124, 126, 114, 113, 138, 130, 94, 111, 134, 122, 126, 114, 142, 121, 92, 134, 121, 133, 129, 115, 106, 127, 112, 148, 120, 136, 135, 129, 128, 118, 129, 117, 123, 121, 125, 131, 121, 120, 111, 129, 112, 121, 125, 146, 129, 116, 132, 139, 141, 130, 137, 112, 137, 124, 119, 143, 125, 127, 118, 134, 123, 122, 128, 144, 134, 109, 116, 129, 113, 132, 118, 119, 138, 131, 111, 143, 124, 159, 141, 123, 136, 135, 109, 124, 118, 123, 124, 137, 122, 132, 129, 130, 114, 118, 128, 122, 120, 145, 123, 115, 132, 125, 132, 122, 121, 143, 122, 143, 140, 131, 124, 127, 117, 119, 117, 127, 110, 119, 140, 124, 132, 131, 130, 116, 129, 122, 134, 118, 120, 114, 124, 135, 126, 123, 115, 112, 125, 110, 119, 141, 125, 129, 137, 134, 130, 125, 126, 132, 132, 124, 123, 107, 128, 134, 136, 119, 122, 137, 122, 125, 132, 116, 137, 98, 127, 118, 116, 125, 127, 119, 115, 130, 113, 134, 125, 107, 136, 115, 129, 132, 116, 111, 132, 126, 132, 123, 132, 131, 129, 138, 144, 123, 125, 128, 129, 131, 130, 139, 127, 136, 132, 123, 123, 116, 126, 104, 130, 118, 127, 116, 129, 129, 133, 143, 129, 123, 130, 123, 147, 104, 127, 129, 123, 119, 140, 106, 127, 125, 125, 133, 109, 120, 121, 136, 124, 122, 131, 120, 136, 136, 151, 121, 118, 151, 134, 125, 126, 135, 135, 118, 119, 114, 131, 149, 136, 137, 128, 127, 137, 122, 112, 148, 129, 133, 130, 156, 125, 125, 112, 107, 130, 119, 124, 121, 149, 115, 123, 133, 109, 120, 139, 143, 131, 118, 118, 136, 123, 89, 141, 135, 134, 128, 143, 127, 134, 131, 124, 119, 118, 129, 118, 115, 99, 115, 102, 109, 130, 118, 102, 130, 140, 125, 139, 132, 142, 126, 108, 122, 137, 137, 111, 130, 134, 109, 108, 123, 121, 119, 131, 126, 119, 127, 109, 107, 116, 112, 137, 113, 134, 129, 132, 138, 130, 99, 114, 140, 134, 110, 122, 117, 104, 100, 132, 125, 126, 124, 133, 121, 106, 145, 139, 125, 135, 124, 140, 130, 121, 140, 132, 131, 128, 112, 113, 123, 137, 131, 122, 137, 121, 121, 125, 143, 134, 132, 140, 121, 122, 115, 107, 112, 116, 135, 123, 136, 122, 130, 123, 128, 126, 125, 149, 143, 138, 125, 126, 109, 123, 111, 120, 124, 132, 121, 146, 119, 124, 120, 128, 119, 133, 104, 137, 134, 108, 138, 120, 132, 129, 125, 120, 130, 110, 118, 134, 114, 131, 132, 114, 131, 115, 133, 139, 106, 129, 136, 137, 120, 142, 139, 150, 114, 143, 111, 109, 122, 138, 122, 116, 118, 105, 119, 137, 119, 131, 110, 131, 113, 119, 120, 126, 126, 128, 123, 121, 138, 129, 131, 122, 122, 145, 121, 122, 130, 111, 119, 139, 130, 139, 124, 129, 136, 115, 133, 125, 129, 141, 94, 146, 149, 124, 128, 121, 123, 110, 123, 116, 109, 126, 127, 118, 127, 151, 136, 120, 120, 89, 102, 108, 128, 129, 115, 115, 130, 139, 119, 108, 119, 128, 125, 129, 128, 119, 123, 122, 110, 123, 143, 123, 130, 121, 126, 110, 130, 132, 133, 138, 133, 131, 121, 108, 120, 124, 121, 106, 144, 126, 123, 117, 128, 133, 125, 123, 114, 135, 139, 98, 112, 128, 135, 128, 129, 143, 127, 135, 122, 145, 118, 114, 117, 140, 125, 125, 112, 131, 115, 132, 135, 123, 114, 122, 111, 125, 124, 115, 148, 126, 137, 126, 106, 139, 130, 140, 130, 122, 111, 124, 127, 127, 135, 127, 137, 129, 133, 135, 130, 127, 118, 132, 136, 115, 116, 133, 113, 115, 144, 118, 112, 130, 133, 106, 120, 120, 118, 114, 143, 129, 134, 128, 123, 120, 141, 123, 114, 125, 132, 128, 107, 128, 130, 120, 110, 110, 128, 130, 141, 117, 115, 118, 119, 141, 127, 117, 114, 127, 115, 113, 119, 123, 121, 112, 113, 122, 122, 128, 110, 113, 137, 124, 134, 123, 111, 131, 131, 127, 148, 118, 136, 126, 154, 114, 141, 126, 123, 111, 145, 124, 119, 122, 132, 118, 122, 98, 119, 119, 118, 126, 120, 117, 99, 127, 118, 111, 143, 117, 140, 125, 116, 116, 120, 128, 122, 118, 128, 131, 123, 110, 116, 134, 122, 108, 131, 124, 132, 133, 118, 121, 119, 140, 113, 147, 122, 140, 151, 144, 127, 139, 132, 132, 99, 122, 133, 124, 124, 127, 129, 123, 128, 122, 126, 125, 119, 122, 122, 117, 123, 120, 125, 117, 134, 125, 121, 128, 125, 125, 121, 117, 103, 135, 140, 131, 132, 112, 126, 131, 122, 112, 135, 136, 126, 126, 139, 119, 116, 114, 142, 118, 125, 125, 128, 116, 121, 111, 135, 122, 123, 110, 128, 134, 140, 118, 119, 106, 121, 116, 127, 127, 136, 119, 130, 139, 129, 118, 117, 121, 137, 145, 122, 122, 131, 119, 130, 137, 130, 104, 121, 118, 129, 128, 127, 132, 132, 98, 138, 119, 132, 122, 126, 135, 122, 126, 126, 128, 125, 119, 142, 127, 133, 129, 128, 120, 120, 96, 122, 148, 136, 105, 120, 121, 126, 152, 100, 141, 112, 116, 128, 135, 108, 118, 124, 114, 145, 114, 140, 122, 122, 118, 100, 148, 137, 109, 133, 136, 125, 119, 121, 118, 128, 129, 116, 146, 126, 138, 141, 134, 134, 125, 120, 116, 123, 137, 114, 129, 130, 132, 130, 124, 111, 128, 111, 113, 137, 145, 129, 128, 126, 134, 96, 117, 130, 121, 123, 126, 122, 141, 129, 116, 122, 117, 102, 112, 131, 120, 148, 106, 119, 115, 126, 129, 120, 115, 127, 97, 112, 128, 144, 131, 113, 109, 129, 131, 120, 129, 122, 135, 129, 133, 134, 136, 106, 121, 112, 120, 111, 129, 120, 127, 135, 125, 129, 113, 123, 141, 153, 133, 131, 136, 122, 125, 123, 117, 132, 127, 111, 106, 144, 144, 118, 129, 133, 120, 124, 120, 132, 121, 126, 106, 126, 96, 126, 112, 119, 134, 138, 145, 136, 102, 136, 113, 114, 138, 133, 121, 126, 124, 114, 113, 124, 133, 131, 122, 142, 114, 106, 131, 143, 136, 133, 120, 126, 124, 118, 134, 134, 145, 126, 128, 123, 122, 104, 111, 114, 123, 122, 127, 118, 133, 127, 134, 141, 128, 120, 111, 123, 114, 136, 144, 128, 127, 98, 115, 124, 140, 145, 133, 129, 131, 135, 120, 112, 106, 130, 130, 137, 116, 110, 139, 137, 136, 119, 131, 114, 128, 120, 139, 143, 136, 123, 130, 134, 119, 130, 129, 118, 113, 134, 133, 119, 105, 141, 141, 122, 125, 134, 129, 115, 111, 121, 137, 128, 129, 136, 116, 122, 128, 129, 125, 147, 127, 123, 135, 128, 133, 136, 123, 130, 122, 138, 119, 143, 122, 145, 121, 133, 102, 134, 121, 128, 135, 103, 132, 140, 137, 119, 120, 126, 122, 116, 125, 115, 137, 115, 119, 132, 134, 123, 149, 119, 118, 115, 121, 121, 99, 156, 115, 128, 136, 115, 140, 138, 129, 126, 135, 127, 123, 119, 116, 115, 133, 118, 147, 127, 137, 129, 109, 150, 122, 142, 149, 116, 142, 128, 134, 126, 123, 128, 116, 109, 126, 119, 132, 125, 126, 117, 105, 123, 101, 120, 137, 106, 132, 110, 130, 123, 107, 128, 137, 120, 125, 130, 119, 123, 102, 122, 128, 117, 116, 138, 129, 136, 104, 136, 124, 131, 113, 148, 142, 129, 116, 103, 126, 122, 133, 117, 112, 119, 139, 113, 117, 115, 105, 107, 94, 121, 121, 121, 132, 140, 137, 113, 128, 110, 138, 132, 132, 134, 127, 96, 133, 122, 130, 122, 121, 131, 106, 127, 133, 111, 133, 128, 113, 156, 130, 142, 135, 118, 123, 116, 122, 132, 117, 137, 119, 136, 113, 129, 113, 123, 115, 91, 132, 123, 117, 143, 149, 124, 124, 124, 124, 116, 132, 123, 133, 127, 125, 119, 119, 123, 129, 147, 127, 110, 127, 117, 128, 114, 141, 120, 123, 115, 130, 128, 150, 116, 115, 111, 125, 121, 119, 130, 141, 122, 125, 125, 148, 104, 129, 136, 111, 138, 139, 105, 155, 119, 133, 126, 125, 117, 110, 122, 114, 115, 122, 133, 96, 111, 126, 145, 119, 139, 122, 110, 114, 107, 102, 125, 148, 122, 128, 123, 125, 119, 134, 125, 122, 119, 128, 140, 128, 103, 102, 106, 132, 115, 109, 118, 132, 120, 140, 125, 90, 128, 120, 118, 121, 131, 118, 100, 125, 145, 124, 128, 139, 118, 120, 136, 122, 117, 119, 133, 117, 119, 104, 121, 132, 111, 121, 116, 123, 124, 128, 127, 126, 118, 121, 157, 111, 125, 120, 133, 142, 113, 132, 116, 107, 112, 119, 130, 118, 113, 122, 119, 117, 122, 142, 131, 136, 123, 153, 138, 123, 129, 120, 136, 133, 95, 131, 125, 120, 116, 103, 125, 130, 122, 131, 117, 124, 123, 127, 133, 122, 127, 115, 127, 123, 134, 119, 124, 146, 163, 122, 124, 124, 142, 141, 127, 129, 131, 117, 123, 124, 95, 112, 117, 134, 123, 128, 102, 141, 135, 133, 130, 115, 119, 129, 133, 118, 125, 110, 116, 108, 107, 129, 100, 124, 136, 113, 125, 143, 110, 130, 123, 118, 121, 136, 127, 136, 119, 131, 127, 129, 124, 129, 128, 126, 120, 109, 123, 131, 124, 115, 132, 130, 119, 128, 134, 114, 124, 138, 132, 137, 135, 154, 113, 138, 116, 119, 119, 123, 129, 142, 127, 133, 122, 134, 123, 116, 121, 136, 120, 133, 122, 118, 129, 126, 127, 133, 147, 123, 130, 108, 137, 116, 136, 137, 136, 131, 148, 132, 137, 127, 137, 137, 137, 118, 133, 116, 123, 133, 123, 112, 124, 120, 133, 118, 127, 127, 125, 113, 124, 130, 119, 113, 112, 116, 131, 127, 109, 109, 126, 124, 94, 123, 132, 140, 141, 135, 121, 102, 127, 141, 122, 97, 111, 133, 129, 117, 133, 117, 130, 127, 128, 124, 120, 131, 128, 140, 121, 105, 144, 140, 126, 116, 123, 128, 169, 174, 131, 132, 146, 132, 118, 124, 127, 114, 115, 122, 125, 131, 117, 128, 134, 137, 131, 133, 149, 124, 127, 125, 133, 133, 121, 117, 119, 116, 136, 136, 118, 148, 127, 134, 124, 143, 125, 141, 100, 133, 128, 112, 126, 123, 113, 121, 102, 132, 131, 109, 131, 127, 139, 129, 116, 122, 120, 140, 113, 120, 124, 149, 126, 117, 131, 134, 113, 144, 134, 126, 132, 118, 127, 125, 128, 110, 126, 128, 131, 131, 133, 144, 122, 118, 124, 133, 129, 135, 124, 125, 106, 114, 110, 120, 118, 132, 134, 106, 118, 124, 110, 126, 126, 112, 126, 126, 124, 148, 127, 134, 113, 132, 110, 140, 131, 125, 116, 116, 128, 135, 133, 128, 120, 125, 115, 132, 122, 139, 106, 121, 120, 120, 134, 125, 124, 116, 136, 116, 128, 122, 123, 133, 136, 124, 125, 121, 117, 133, 125, 129, 127, 146, 126, 117, 122, 101, 138, 138, 127, 100, 116, 138, 139, 107, 125, 135, 127, 162, 134, 131, 137, 125, 121, 106, 132, 124, 125, 123, 120, 120, 123, 127, 153, 122, 132, 137, 123, 123, 114, 127, 125, 130, 115, 134, 144, 122, 128, 159, 121, 138, 131, 138, 121, 110, 125, 113, 126, 133, 136, 132, 103, 111, 127, 122, 115, 125, 122, 135, 135, 127, 119, 118, 124, 114, 112, 126, 109, 133, 118, 134, 127, 123, 131, 119, 133, 124, 128, 146, 133, 120, 115, 118, 131, 139, 123, 129, 105, 143, 124, 113, 133, 116, 124, 127, 116, 140, 127, 116, 112, 118, 141, 98, 109, 118, 131, 113, 134, 121, 121, 130, 124, 135, 108, 147, 124, 111, 130, 134, 138, 122, 122, 135, 126, 129, 149, 132, 143, 119, 115, 119, 116, 144, 127, 129, 118, 121, 127, 127, 123, 127, 115, 105, 146, 128, 127, 118, 118, 109, 120, 138, 139, 129, 121, 125, 113, 126, 102, 113, 126, 121, 132, 125, 112, 126, 126, 103, 124, 126, 112, 132, 157, 108, 114, 107, 118, 112, 120, 125, 124, 123, 128, 116, 144, 129, 119, 122, 117, 129, 134, 119, 133, 114, 121, 132, 128, 131, 131, 123, 118, 125, 123, 128, 128, 121, 122, 125, 117, 115, 110, 129, 123, 161, 155, 125, 137, 113, 120, 124, 122, 119, 149, 119, 145, 141, 102, 118, 129, 124, 125, 130, 128, 129, 122, 126, 116, 125, 142, 133, 122, 132, 120, 114, 147, 124, 132, 143, 125, 114, 126, 121, 135, 126, 96, 116, 115, 132, 125, 134, 130, 131, 137, 135, 106, 128, 116, 117, 121, 114, 129, 136, 126, 122, 146, 128, 119, 103, 129, 144, 120, 130, 135, 114, 120, 140, 141, 127, 138, 115, 122, 139, 129, 142, 119, 122, 121, 127, 125, 125, 129, 134, 137, 111, 115, 128, 118, 125, 120, 121, 122, 111, 137, 133, 106, 139, 121, 124, 131, 126, 132, 113, 138, 111, 116, 119, 137, 115, 123, 132, 130, 119, 114, 128, 122, 135, 111, 112, 98, 115, 130, 130, 118, 125, 116, 112, 122, 132, 126, 112, 118, 130, 121, 130, 122, 115, 124, 130, 129, 123, 129, 118, 128, 153, 141, 122, 109, 131, 128, 125, 122, 124, 152, 140, 121, 120, 106, 116, 120, 120, 122, 124, 120, 116, 140, 135, 130, 115, 141, 136, 123, 122, 149, 123, 132, 114, 118, 143, 130, 128, 136, 104, 105, 128, 112, 131, 116, 124, 141, 121, 132, 139, 124, 132, 142, 113, 130, 130, 133, 124, 136, 121, 117, 143, 120, 123, 110, 131, 111, 130, 142, 119, 128, 129, 132, 134, 129, 146, 147, 126, 137, 139, 122, 122, 128, 111, 140, 146, 119, 121, 122, 128, 120, 121, 124, 124, 111, 119, 135, 127, 115, 118, 129, 128, 118, 117, 131, 128, 116, 126, 138, 115, 129, 138, 88, 134, 132, 128, 112, 130, 151, 128, 119, 141, 115, 132, 115, 130, 122, 141, 109, 136, 131, 114, 132, 139, 130, 143, 123, 112, 159, 126, 124, 135, 123, 150, 133, 141, 112, 125, 141, 122, 125, 112, 119, 128, 140, 124, 130, 127, 111, 117, 118, 123, 120, 137, 119, 114, 130, 130, 112, 133, 117, 120, 131, 132, 130, 116, 143, 134, 130, 120, 122, 127, 125, 124, 135, 116, 118, 118, 129, 140, 110, 121, 120, 149, 130, 119, 145, 144, 117, 129, 140, 139, 115, 136, 128, 113, 128, 139, 113, 122, 133, 138, 134, 117, 122, 134, 123, 125, 123, 119, 123, 115, 121, 130, 129, 133, 126, 131, 125, 123, 106, 142, 129, 126, 140, 127, 112, 126, 125, 135, 128, 107, 115, 137, 114, 142, 131, 130, 145, 123, 116, 146, 129, 131, 116, 128, 117, 141, 112, 132, 128, 124, 122, 125, 121, 119, 139, 111, 121, 147, 139, 141, 135, 112, 121, 128, 112, 118, 130, 118, 128, 120, 127, 120, 114, 136, 120, 128, 126, 115, 113, 128, 132, 135, 126, 112, 135, 109, 129, 120, 130, 102, 119, 118, 130, 126, 127, 104, 122, 124, 113, 126, 103, 113, 144, 110, 102, 140, 118, 114, 125, 131, 117, 108, 117, 144, 112, 129, 141, 132, 136, 125, 114, 131, 127, 135, 147, 113, 131, 139, 133, 131, 117, 128, 142, 126, 135, 129, 122, 124, 118, 139, 119, 95, 112, 115, 122, 119, 128, 128, 114, 114, 136, 121, 133, 136, 123, 123, 129, 104, 130, 113, 117, 129, 133, 132, 145, 140, 112, 129, 117, 127, 118, 143, 119, 128, 100, 136, 137, 140, 116, 120, 99, 127, 138, 120, 141, 131, 127, 133, 114, 136, 118, 131, 131, 140, 120, 123, 119, 127, 116, 128, 118, 117, 124, 120, 128, 119, 114, 109, 128, 126, 138, 120, 123, 112, 117, 135, 146, 127, 132, 129, 131, 137, 126, 132, 148, 114, 126, 134, 128, 128, 146, 123, 138, 109, 134, 137, 118, 122, 128, 123, 122, 125, 121, 129, 120, 139, 131, 148, 147, 123, 113, 141, 146, 136, 135, 139, 124, 121, 131, 117, 139, 121, 135, 138, 129, 118, 114, 124, 138, 122, 124, 113, 121, 124, 129, 120, 123, 120, 122, 122, 129, 119, 123, 127, 138, 128, 133, 137, 118, 130, 134, 127, 122, 127, 137, 128, 135, 154, 136, 109, 118, 125, 135, 129, 124, 127, 127, 121, 133, 138, 119, 136, 134, 111, 131, 134, 143, 121, 147, 124, 109, 115, 123, 128, 120, 127, 122, 123, 137, 107, 146, 116, 122, 135, 131, 135, 132, 125, 126, 132, 134, 99, 125, 121, 119, 125, 124, 114, 133, 119, 117, 131, 127, 110, 106, 134, 123, 99, 114, 121, 127, 110, 110, 132, 109, 89, 146, 116, 121, 117, 144, 126, 142, 123, 131, 133, 109, 129, 126, 142, 139, 140, 127, 119, 128, 132, 108, 132, 117, 115, 136, 120, 123, 126, 142, 128, 105, 145, 113, 128, 130, 130, 120, 125, 127, 104, 102, 118, 119, 126, 119, 136, 116, 139, 131, 138, 139, 130, 128, 139, 102, 122, 116, 119, 139, 131, 109, 122, 120, 129, 127, 123, 128, 148, 118, 124, 123, 117, 122, 121, 128, 134, 124, 130, 126, 128, 109, 138, 134, 102, 124, 126, 119, 113, 125, 142, 123, 131, 130, 119, 127, 125, 102, 119, 137, 131, 126, 131, 118, 128, 141, 136, 132, 124, 118, 130, 132, 129, 126, 140, 129, 118, 127, 125, 138, 117, 120, 116, 123, 146, 130, 122, 136, 125, 116, 138, 128, 125, 125, 110, 133, 120, 139, 127, 141, 142, 101, 122, 140, 131, 134, 125, 131, 123, 138, 132, 122, 140, 127, 136, 137, 113, 142, 116, 115, 122, 123, 131, 123, 125, 139, 146, 129, 115, 125, 138, 130, 144, 127, 126, 135, 108, 131, 125, 141, 120, 121, 125, 120, 126, 138, 142, 126, 126, 136, 107, 135, 135, 140, 123, 125, 122, 141, 114, 112, 120, 140, 143, 129, 124, 115, 121, 103, 126, 125, 127, 137, 127, 132, 124, 129, 144, 124, 121, 137, 119, 123, 107, 112, 119, 129, 84, 131, 118, 124, 107, 134, 125, 132, 137, 111, 126, 129, 132, 135, 126, 135, 146, 120, 124, 124, 108, 127, 107, 131, 110, 136, 150, 115, 127, 130, 125, 135, 123, 127, 142, 134, 118, 119, 116, 123, 127, 131, 119, 118, 147, 100, 121, 139, 121, 112, 163, 122, 126, 120, 113, 121, 140, 111, 146, 132, 110, 131, 124, 112, 136, 132, 118, 126, 134, 117, 131, 119, 125, 105, 136, 131, 138, 124, 125, 132, 106, 113, 137, 124, 125, 113, 122, 111, 141, 126, 125, 117, 126, 119, 139, 112, 113, 128, 124, 119, 127, 129, 129, 147, 115, 125, 107, 131, 118, 117, 124, 129, 124, 134, 127, 126, 114, 130, 134, 128, 128, 128, 137, 121, 131, 137, 118, 135, 139, 133, 111, 114, 124, 140, 117, 130, 111, 106, 118, 113, 130, 141, 114, 114, 123, 126, 123, 123, 135, 112, 132, 108, 116, 132, 124, 132, 133, 128, 115, 133, 121, 146, 129, 125, 129, 124, 116, 125, 135, 130, 134, 127, 119, 127, 132, 123, 126, 137, 119, 123, 119, 137, 112, 119, 128, 117, 115, 111, 111, 145, 128, 116, 127, 132, 137, 123, 117, 130, 139, 130, 136, 121, 130, 128, 132, 111, 141, 138, 117, 133, 113, 113, 135, 120, 142, 138, 131, 118, 120, 130, 122, 135, 126, 114, 123, 116, 148, 128, 120, 122, 135, 126, 121, 139, 120, 100, 114, 123, 112, 124, 119, 109, 131, 121, 121, 121, 132, 107, 121, 113, 132, 121, 139, 121, 131, 119, 132, 113, 135, 126, 146, 114, 132, 134, 133, 112, 139, 129, 126, 121, 130, 126, 120, 138, 132, 124, 131, 134, 118, 105, 121, 124, 117, 123, 120, 124, 143, 141, 129, 131, 120, 137, 144, 132, 134, 128, 105, 136, 147, 117, 110, 131, 122, 133, 126, 133, 138, 125, 143, 130, 138, 124, 122, 126, 124, 130, 117, 133, 120, 97, 115, 116, 128, 124, 113, 123, 144, 132, 121, 127, 155, 111, 107, 108, 133, 138, 117, 128, 123, 142, 141, 143, 122, 122, 125, 125, 119, 131, 140, 125, 136, 137, 115, 127, 121, 118, 121, 102, 138, 110, 128, 98, 110, 110, 115, 134, 131, 134, 117, 122, 115, 131, 112, 119, 138, 117, 112, 132, 129, 120, 126, 106, 121, 143, 107, 132, 126, 113, 102, 125, 126, 139, 128, 143, 131, 131, 134, 120, 138, 131, 132, 118, 126, 128, 129, 134, 118, 133, 129, 134, 128, 112, 138, 123, 112, 110, 113, 123, 124, 110, 134, 113, 124, 126, 121, 110, 144, 133, 121, 130, 117, 125, 121, 115, 136, 127, 129, 111, 133, 115, 116, 128, 129, 128, 119, 116, 114, 125, 123, 136, 121, 137, 119, 142, 141, 103, 136, 121, 135, 121, 132, 136, 128, 123, 129, 108, 121, 118, 129, 118, 125, 113, 117, 140, 129, 138, 119, 123, 117, 119, 138, 116, 132, 126, 125, 130, 129, 124, 119, 164, 112, 122, 123, 128, 136, 126, 131, 125, 125, 123, 122, 116, 110, 141, 135, 109, 129, 124, 130, 136, 116, 132, 134, 137, 127, 142, 99, 120, 127, 121, 112, 107, 138, 123, 145, 113, 135, 134, 117, 123, 131, 118, 107, 126, 100, 116, 147, 142, 125, 114, 129, 113, 119, 127, 130, 123, 114, 119, 130, 126, 123, 126, 132, 126, 131, 117, 119, 127, 126, 128, 117, 132, 115, 142, 146, 141, 121, 131, 128, 131, 135, 119, 130, 113, 135, 122, 134, 115, 124, 119, 132, 119, 131, 127, 136, 139, 125, 109, 124, 147, 124, 133, 126, 148, 120, 122, 123, 139, 126, 125, 132, 130, 129, 124, 143, 134, 136, 122, 123, 139, 120, 97, 136, 117, 119, 141, 117, 129, 130, 131, 115, 124, 128, 120, 126, 131, 130, 119, 134, 114, 119, 122, 116, 141, 128, 138, 126, 134, 123, 125, 135, 138, 112, 132, 127, 106, 112, 122, 130, 114, 136, 102, 92, 150, 139, 130, 124, 110, 124, 131, 120, 140, 125, 137, 120, 118, 112, 118, 121, 112, 127, 129, 122, 127, 132, 117, 139, 126, 130, 143, 142, 117, 128, 140, 122, 118, 131, 130, 122, 115, 127, 131, 128, 110, 127, 141, 119, 123, 119, 119, 134, 134, 128, 128, 112, 132, 122, 145, 128, 134, 121, 132, 126, 117, 125, 120, 121, 126, 124, 104, 123, 124, 121, 130, 129, 104, 132, 145, 122, 107, 124, 122, 121, 112, 132, 104, 128, 131, 117, 125, 141, 131, 113, 124, 133, 118, 119, 117, 144, 106, 116, 113, 106, 118, 124, 131, 112, 131, 127, 143, 114, 109, 136, 119, 128, 123, 148, 129, 125, 138, 111, 116, 123, 135, 111, 106, 135, 117, 127, 120, 116, 104, 123, 112, 121, 124, 110, 130, 118, 121, 128, 124, 123, 134, 115, 124, 138, 120, 127, 128, 123, 132, 134, 97, 130, 136, 120, 119, 122, 136, 115, 146, 128, 124, 121, 132, 111, 130, 118, 137, 131, 139, 115, 118, 128, 111, 128, 114, 113, 109, 114, 130, 131, 122, 131, 133, 122, 141, 122, 123, 146, 124, 129, 118, 137, 120, 134, 124, 134, 118, 117, 101, 148, 122, 131, 134, 124, 103, 129, 137, 121, 136, 120, 122, 131, 142, 113, 134, 134, 114, 121, 129, 123, 122, 121, 130, 121, 102, 127, 138, 104, 128, 115, 131, 129, 133, 119, 140, 113, 126, 107, 119, 115, 126, 142, 107, 135, 120, 121, 110, 111, 107, 137, 110, 151, 119, 148, 128, 129, 143, 111, 123, 113, 120, 129, 117, 126, 106, 122, 110, 136, 128, 121, 135, 120, 112, 127, 117, 125, 133, 129, 103, 121, 138, 139, 137, 121, 121, 104, 117, 136, 111, 148, 137, 146, 115, 116, 123, 121, 127, 80, 113, 115, 138, 123, 130, 121, 101, 143, 125, 116, 135, 111, 134, 115, 125, 136, 144, 124, 131, 114, 123, 103, 123, 109, 140, 107, 128, 122, 111, 119, 118, 128, 116, 151, 119, 107, 130, 128, 126, 126, 111, 136, 136, 127, 118, 138, 143, 121, 116, 125, 120, 106, 123, 130, 115, 133, 128, 135, 135, 123, 116, 121, 110, 113, 126, 121, 123, 115, 134, 118, 115, 115, 115, 113, 143, 121, 146, 117, 146, 119, 119, 118, 108, 119, 114, 119, 119, 125, 124, 117, 109, 113, 125, 113, 126, 132, 120, 146, 116, 135, 125, 144, 110, 123, 127, 124, 138, 111, 128, 127, 126, 145, 120, 131, 136, 147, 97, 130, 128, 132, 112, 128, 123, 119, 123, 126, 175, 115, 125, 131, 129, 154, 117, 135, 141, 116, 119, 109, 125, 138, 143, 121, 126, 120, 119, 133, 126, 120, 139, 125, 129, 142, 114, 140, 117, 111, 127, 134, 121, 126, 118, 124, 106, 111, 114, 128, 123, 97, 125, 116, 134, 119, 133, 132, 126, 123, 105, 125, 111, 114, 130, 118, 116, 131, 141, 120, 120, 116, 120, 111, 128, 128, 142, 130, 121, 126, 124, 137, 119, 125, 128, 119, 117, 119, 126, 129, 137, 125, 121, 115, 111, 132, 126, 140, 129, 132, 141, 138, 133, 136, 128, 132, 123, 125, 111, 108, 139, 106, 117, 122, 121, 116, 122, 130, 130, 115, 122, 137, 113, 107, 120, 108, 112, 128, 131, 123, 132, 144, 128, 125, 119, 133, 119, 104, 120, 136, 112, 140, 153, 109, 126, 120, 148, 125, 129, 117, 122, 116, 116, 142, 134, 127, 155, 117, 107, 120, 115, 118, 128, 126, 120, 112, 128, 112, 110, 121, 131, 130, 113, 139, 128, 127, 116, 121, 116, 150, 115, 137, 123, 123, 120, 117, 123, 113, 116, 129, 124, 110, 136, 114, 121, 124, 120, 132, 126, 126, 131, 109, 128, 127, 125, 114, 124, 124, 129, 112, 131, 129, 126, 113, 108, 119, 123, 135, 120, 113, 131, 99, 125, 147, 117, 119, 122, 121, 119, 134, 106, 135, 131, 121, 124, 147, 136, 119, 109, 114, 117, 126, 133, 141, 127, 120, 134, 119, 122, 109, 136, 116, 118, 131, 132, 124, 130, 124, 131, 115, 137, 119, 131, 130, 134, 120, 120, 122, 133, 139, 125, 112, 114, 132, 122, 121, 134, 102, 146, 138, 133, 114, 119, 129, 126, 135, 135, 110, 130, 134, 129, 144, 150, 129, 128, 142, 139, 131, 116, 127, 127, 126, 109, 125, 110, 139, 124, 116, 124, 107, 146, 128, 127, 129, 107, 130, 119, 122, 143, 135, 105, 118, 102, 145, 122, 128, 118, 124, 114, 115, 132, 150, 106, 123, 139, 142, 139, 117, 133, 113, 127, 130, 121, 112, 97, 111, 103, 138, 134, 156, 140, 141, 128, 140, 133, 117, 141, 138, 123, 120, 127, 131, 131, 108, 119, 112, 119, 142, 128, 129, 127, 109, 134, 136, 125, 119, 135, 108, 130, 114, 126, 130, 141, 108, 112, 116, 133, 138, 122, 115, 133, 126, 121, 123, 132, 122, 125, 138, 107, 117, 131, 142, 130, 120, 122, 144, 110, 146, 114, 136, 123, 121, 138, 121, 123, 124, 127, 130, 119, 110, 118, 120, 122, 118, 126, 125, 125, 136, 142, 141, 121, 129, 116, 128, 123, 128, 124, 130, 130, 125, 130, 116, 132, 121, 135, 140, 126, 144, 97, 130, 123, 114, 133, 123, 130, 124, 122, 141, 110, 118, 120, 124, 129, 135, 120, 122, 119, 118, 113, 148, 135, 142, 106, 129, 132, 112, 139, 133, 129, 123, 131, 119, 135, 119, 117, 120, 121, 119, 136, 127, 105, 126, 155, 107, 129, 125, 142, 108, 133, 125, 126, 126, 124, 122, 121, 122, 125, 129, 130, 135, 127, 127, 139, 110, 138, 124, 120, 132, 129, 129, 118, 137, 131, 122, 126, 143, 119, 135, 128, 133, 140, 133, 137, 141, 144, 119, 129, 137, 118, 134, 114, 127, 128, 146, 127, 125, 129, 123, 115, 132, 130, 120, 121, 128, 134, 140, 130, 119, 125, 125, 127, 122, 131, 135, 142, 98, 110, 132, 131, 111, 120, 106, 135, 121, 125, 133, 116, 113, 139, 139, 117, 125, 113, 133, 124, 118, 134, 135, 114, 97, 147, 125, 122, 121, 128, 152, 133, 119, 109, 131, 117, 123, 140, 146, 147, 146, 130, 134, 120, 126, 116, 121, 128, 98, 122, 132, 118, 127, 132, 126, 119, 121, 113, 121, 139, 132, 128, 118, 125, 125, 118, 139, 129, 120, 136, 121, 111, 111, 120, 129, 116, 125, 115, 116, 120, 129, 124, 133, 116, 139, 122, 122, 125, 113, 132, 144, 113, 126, 120, 127, 112, 122, 124, 115, 121, 113, 125, 125, 127, 129, 125, 126, 129, 113, 105, 114, 130, 135, 120, 113, 126, 145, 122, 114, 136, 134, 110, 114, 118, 121, 147, 119, 132, 124, 136, 133, 118, 127, 130, 131, 122, 132, 130, 113, 132, 130, 112, 127, 139, 122, 113, 138, 115, 142, 129, 144, 124, 108, 137, 117, 110, 128, 128, 142, 128, 124, 124, 130, 127, 130, 131, 114, 132, 137, 120, 127, 122, 109, 129, 116, 127, 138, 126, 131, 136, 130, 116, 126, 123, 109, 122, 123, 117, 142, 127, 119, 131, 121, 127, 126, 112, 139, 134, 117, 135, 113, 173, 124, 123, 138, 128, 112, 140, 132, 120, 124, 122, 121, 151, 133, 141, 125, 135, 130, 124, 130, 127, 123, 130, 123, 135, 124, 120, 126, 124, 117, 126, 147, 120, 111, 137, 131, 120, 142, 129, 141, 130, 119, 119, 111, 117, 121, 118, 145, 116, 126, 122, 121, 114, 121, 131, 138, 108, 127, 121, 145, 135, 130, 125, 118, 136, 130, 122, 121, 129, 128, 116, 106, 111, 108, 144, 111, 118, 130, 125, 131, 122, 135, 120, 128, 115, 130, 126, 127, 114, 130, 112, 126, 129, 124, 141, 111, 129, 112, 127, 143, 130, 113, 130, 118, 138, 109, 122, 117, 126, 159, 129, 132, 133, 115, 134, 150, 131, 124, 123, 112, 130, 131, 125, 115, 139, 128, 125, 149, 125, 125, 100, 137, 109, 123, 117, 116, 119, 122, 116, 113, 124, 125, 121, 135, 113, 120, 142, 132, 133, 122, 143, 118, 136, 111, 130, 142, 128, 131, 113, 142, 101, 117, 125, 116, 141, 113, 144, 125, 113, 126, 126, 109, 110, 123, 140, 133, 132, 112, 122, 130, 104, 137, 124, 102, 126, 131, 125, 135, 110, 130, 123, 130, 118, 135, 111, 129, 110, 118, 119, 121, 126, 135, 116, 135, 120, 110, 134, 137, 119, 126, 121, 115, 166, 118, 122, 134, 126, 130, 141, 135, 125, 143, 147, 145, 128, 120, 114, 127, 130, 118, 126, 136, 117, 128, 129, 144, 144, 122, 125, 144, 126, 125, 127, 109, 112, 136, 128, 113, 127, 126, 133, 124, 128, 110, 120, 124, 125, 109, 128, 120, 128, 123, 118, 134, 123, 115, 96, 132, 135, 109, 131, 142, 109, 147, 135, 121, 122, 118, 122, 126, 122, 118, 121, 128, 157, 115, 108, 118, 112, 124, 133, 124, 131, 132, 133, 131, 138, 127, 120, 119, 159, 112, 113, 115, 109, 114, 137, 130, 127, 119, 119, 110, 122, 112, 119, 118, 127, 117, 123, 132, 109, 121, 128, 131, 123, 124, 124, 102, 110, 134, 117, 136, 137, 147, 115, 128, 128, 124, 118, 120, 119, 118, 121, 128, 121, 132, 131, 141, 127, 133, 125, 119, 137, 122, 129, 116, 120, 106, 136, 118, 127, 122, 129, 151, 125, 138, 131, 122, 127, 127, 98, 105, 149, 121, 143, 123, 144, 125, 124, 110, 126, 127, 128, 137, 131, 109, 109, 103, 140, 120, 129, 123, 133, 133, 132, 121, 115, 145, 126, 136, 120, 119, 126, 115, 116, 121, 115, 114, 128, 136, 128, 100, 133, 147, 112, 115, 112, 129, 120, 131, 124, 111, 118, 120, 126, 114, 114, 138, 125, 116, 132, 140, 127, 144, 122, 118, 109, 107, 126, 126, 108, 111, 138, 129, 124, 145, 121, 135, 122, 135, 110, 153, 110, 121, 122, 131, 122, 128, 157, 121, 122, 123, 110, 143, 110, 120, 128, 122, 103, 124, 116, 118, 116, 123, 125, 121, 107, 104, 112, 134, 112, 143, 128, 116, 119, 127, 132, 132, 121, 138, 123, 127, 120, 124, 134, 139, 131, 115, 124, 146, 128, 130, 122, 125, 125, 133, 118, 137, 124, 123, 132, 109, 135, 114, 127, 124, 127, 105, 121, 149, 118, 124, 140, 118, 117, 121, 107, 145, 121, 107, 123, 150, 122, 132, 115, 100, 125, 125, 130, 129, 109, 118, 137, 134, 117, 117, 123, 114, 109, 120, 121, 141, 129, 135, 105, 118, 133, 122, 131, 125, 121, 120, 123, 117, 110, 135, 118, 124, 125, 141, 121, 115, 119, 135, 133, 109, 124, 113, 123, 114, 150, 119, 123, 124, 125, 117, 120, 116, 133, 113, 128, 116, 146, 145, 111, 129, 129, 119, 110, 122, 134, 121, 100, 140, 117, 116, 151, 127, 132, 157, 144, 117, 129, 136, 154, 115, 125, 119, 133, 135, 129, 138, 124, 129, 129, 121, 148, 126, 128, 127, 129, 111, 136, 121, 135, 123, 129, 123, 138, 137, 136, 98, 123, 116, 104, 134, 140, 119, 121, 134, 126, 133, 124, 131, 128, 112, 125, 137, 150, 114, 122, 117, 121, 106, 127, 126, 142, 140, 134, 113, 137, 138, 133, 120, 120, 120, 133, 107, 136, 135, 128, 128, 133, 159, 117, 124, 132, 133, 134, 130, 128, 128, 152, 116, 128, 132, 141, 112, 127, 119, 119, 128, 122, 139, 114, 125, 124, 128, 111, 113, 128, 123, 141, 141, 126, 111, 124, 122, 116, 129, 132, 121, 125, 149, 134, 117, 125, 124, 118, 133, 130, 133, 142, 123, 141, 123, 105, 120, 127, 125, 131, 124, 129, 114, 128, 114, 113, 139, 125, 125, 121, 127, 145, 123, 117, 126, 128, 138, 124, 118, 113, 113, 128, 134, 106, 135, 110, 131, 158, 141, 132, 128, 119, 113, 126, 114, 142, 134, 117, 124, 152, 130, 122, 124, 132, 140, 127, 126, 116, 129, 129, 153, 142, 132, 128, 133, 126, 111, 122, 129, 127, 115, 126, 128, 128, 111, 124, 109, 140, 128, 131, 127, 122, 124, 126, 128, 120, 133, 122, 139, 125, 124, 133, 109, 130, 139, 112, 116, 148, 125, 123, 147, 120, 136, 128, 140, 128, 123, 116, 124, 114, 125, 131, 132, 117, 113, 123, 143, 123, 133, 95, 136, 136, 123, 128, 114, 121, 125, 116, 133, 105, 117, 112, 119, 128, 124, 114, 111, 122, 116, 122, 115, 125, 133, 147, 111, 118, 124, 141, 118, 128, 107, 118, 125, 130, 148, 122, 134, 130, 123, 144, 122, 128, 114, 120, 143, 123, 123, 109, 122, 125, 111, 114, 120, 155, 123, 115, 146, 131, 117, 137, 112, 120, 121, 122, 124, 133, 121, 125, 111, 127, 96, 130, 125, 138, 117, 122, 116, 138, 123, 125, 127, 124, 133, 126, 131, 90, 127, 111, 120, 125, 127, 152, 116, 115, 119, 126, 126, 119, 129, 120, 126, 109, 130, 133, 130, 120, 131, 132, 120, 128, 130, 152, 132, 131, 114, 107, 107, 123, 130, 138, 106, 114, 133, 137, 120, 119, 119, 108, 128, 143, 131, 125, 120, 141, 124, 125, 111, 135, 124, 132, 135, 137, 139, 129, 136, 127, 122, 132, 141, 114, 138, 99, 129, 100, 125, 122, 122, 131, 122, 113, 113, 119, 120, 111, 129, 128, 133, 124, 133, 119, 116, 105, 120, 131, 120, 130, 143, 117, 139, 105, 133, 112, 136, 135, 135, 122, 132, 131, 124, 145, 113, 124, 124, 134, 128, 124, 125, 129, 147, 117, 121, 134, 115, 131, 133, 117, 105, 109, 133, 118, 115, 136, 118, 124, 134, 135, 114, 135, 132, 130, 138, 114, 125, 124, 138, 114, 128, 115, 124, 131, 123, 123, 129, 113, 127, 103, 119, 124, 131, 114, 123, 110, 132, 108, 119, 121, 129, 108, 155, 134, 154, 121, 130, 129, 123, 111, 119, 135, 133, 125, 117, 134, 116, 121, 110, 122, 123, 112, 118, 111, 116, 132, 129, 120, 138, 147, 113, 93, 127, 129, 134, 123, 141, 122, 115, 129, 134, 139, 115, 130, 116, 127, 144, 112, 113, 134, 152, 120, 143, 148, 146, 126, 107, 116, 124, 104, 132, 128, 121, 146, 115, 121, 142, 131, 132, 138, 132, 124, 117, 121, 121, 127, 121, 129, 117, 130, 123, 134, 120, 123, 115, 119, 130, 126, 125, 137, 119, 138, 128, 118, 136, 112, 130, 123, 117, 120, 114, 158, 134, 122, 126, 133, 126, 128, 126, 126, 129, 117, 129, 123, 124, 138, 127, 121, 135, 116, 129, 138, 128, 123, 109, 114, 143, 115, 123, 131, 138, 124, 120, 115, 131, 131, 130, 120, 124, 124, 129, 119, 132, 105, 140, 122, 125, 120, 119, 153, 127, 110, 121, 134, 128, 129, 118, 107, 126, 116, 146, 132, 120, 135, 109, 131, 117, 122, 130, 119, 126, 107, 131, 104, 114, 133, 128, 118, 125, 123, 118, 135, 128, 120, 110, 129, 115, 119, 136, 157, 122, 135, 125, 130, 127, 140, 136, 121, 115, 129, 110, 122, 111, 110, 128, 114, 108, 116, 136, 122, 126, 136, 134, 127, 121, 112, 132, 117, 125, 118, 146, 129, 122, 111, 134, 120, 114, 129, 118, 139, 131, 136, 107, 113, 117, 123, 131, 113, 113, 133, 116, 111, 133, 132, 114, 113, 128, 116, 133, 118, 111, 123, 146, 127, 127, 127, 129, 121, 129, 126, 131, 120, 135, 114, 131, 125, 135, 113, 116, 131, 112, 97, 124, 127, 138, 135, 129, 129, 116, 113, 112, 131, 123, 122, 125, 139, 120, 123, 136, 130, 151, 113, 123, 123, 96, 129, 123, 134, 132, 117, 129, 114, 118, 126, 121, 124, 137, 131, 129, 138, 152, 119, 111, 139, 122, 143, 149, 126, 118, 122, 131, 133, 127, 114, 130, 123, 125, 118, 135, 123, 104, 143, 128, 122, 123, 128, 114, 146, 129, 113, 132, 126, 117, 123, 114, 135, 140, 121, 120, 112, 118, 127, 127, 132, 134, 135, 137, 127, 128, 130, 120, 133, 133, 122, 134, 120, 116, 121, 142, 123, 118, 126, 121, 132, 124, 126, 123, 121, 121, 125, 118, 114, 121, 129, 126, 122, 115, 143, 127, 108, 134, 129, 122, 98, 122, 137, 119, 120, 132, 123, 125, 125, 121, 121, 147, 131, 111, 110, 138, 123, 142, 125, 112, 118, 133, 116, 120, 118, 109, 125, 135, 118, 124, 122, 127, 118, 131, 124, 133, 121, 125, 116, 114, 122, 139, 130, 133, 137, 138, 135, 126, 127, 118, 115, 124, 136, 112, 121, 141, 124, 147, 119, 137, 139, 123, 118, 117, 144, 120, 128, 125, 142, 128, 131, 134, 118, 144, 137, 124, 124, 142, 126, 129, 130, 126, 130, 116, 144, 125, 132, 133, 144, 126, 117, 121, 132, 119, 119, 119, 110, 133, 129, 125, 134, 109, 142, 124, 136, 140, 133, 126, 125, 112, 128, 123, 119, 124, 141, 147, 125, 127, 125, 122, 120, 123, 142, 130, 112, 116, 133, 120, 131, 134, 120, 122, 119, 129, 121, 137, 118, 125, 117, 131, 140, 145, 129, 117, 127, 124, 123, 126, 112, 124, 117, 129, 123, 126, 133, 128, 121, 127, 131, 126, 122, 124, 128, 114, 118, 124, 125, 127, 112, 116, 122, 115, 158, 122, 106, 120, 134, 126, 147, 118, 120, 133, 122, 124, 117, 129, 125, 131, 126, 137, 111, 117, 110, 133, 109, 139, 124, 120, 125, 130, 113, 114, 112, 110, 128, 120, 104, 117, 132, 134, 114, 120, 134, 119, 125, 118, 132, 139, 127, 124, 118, 141, 123, 123, 97, 134, 139, 116, 139, 111, 117, 125, 128, 145, 135, 136, 127, 138, 131, 127, 113, 113, 130, 144, 138, 120, 113, 134, 108, 141, 125, 124, 139, 140, 102, 108, 124, 118, 127, 116, 115, 108, 140, 128, 103, 123, 130, 141, 129, 120, 118, 121, 125, 120, 111, 122, 114, 135, 116, 118, 134, 135, 138, 120, 129, 138, 125, 128, 123, 116, 131, 111, 113, 114, 126, 137, 127, 133, 140, 124, 115, 122, 131, 124, 132, 115, 126, 125, 127, 131, 109, 128, 127, 130, 118, 117, 117, 125, 129, 137, 138, 114, 136, 146, 137, 126, 109, 133, 115, 111, 136, 132, 128, 140, 141, 136, 126, 128, 136, 127, 120, 121, 115, 119, 138, 128, 114, 120, 118, 128, 124, 123, 125, 133, 115, 113, 123, 112, 140, 113, 152, 121, 124, 132, 128, 121, 138, 130, 117, 113, 125, 131, 126, 119, 125, 138, 121, 118, 124, 124, 135, 123, 136, 127, 118, 104, 123, 148, 128, 139, 132, 119, 125, 131, 116, 140, 106, 141, 121, 126, 109, 105, 135, 132, 140, 129, 125, 135, 133, 128, 131, 117, 122, 118, 145, 118, 127, 137, 106, 121, 113, 122, 126, 125, 122, 132, 125, 122, 130, 124, 131, 121, 132, 120, 119, 122, 122, 127, 122, 132, 137, 145, 125, 111, 121, 115, 128, 126, 123, 132, 129, 122, 122, 120, 134, 124, 128, 102, 119, 130, 123, 119, 121, 134, 115, 113, 127, 119, 119, 132, 126, 117, 119, 131, 125, 119, 132, 118, 120, 148, 121, 137, 112, 130, 130, 132, 141, 120, 118, 124, 123, 119, 129, 128, 133, 115, 117, 114, 121, 128, 121, 147, 109, 119, 120, 132, 138, 135, 130, 135, 135, 126, 123, 103, 124, 120, 152, 133, 131, 132, 129, 120, 127, 120, 114, 131, 122, 135, 140, 134, 131, 121, 129, 135, 117, 126, 137, 111, 107, 106, 121, 116, 134, 131, 134, 127, 135, 119, 118, 101, 125, 131, 127, 138, 134, 141, 123, 100, 124, 137, 125, 135, 121, 123, 131, 133, 132, 122, 127, 139, 119, 129, 109, 131, 112, 131, 138, 132, 116, 118, 143, 129, 115, 139, 131, 122, 119, 136, 141, 136, 130, 116, 127, 136, 125, 140, 120, 135, 133, 124, 130, 115, 122, 139, 127, 124, 129, 125, 114, 131, 134, 112, 120, 125, 136, 109, 133, 139, 113, 132, 130, 128, 113, 122, 120, 125, 112, 118, 114, 110, 145, 120, 132, 133, 115, 138, 146, 130, 125, 118, 109, 106, 114, 125, 127, 118, 136, 112, 117, 138, 97, 124, 118, 135, 131, 138, 116, 130, 128, 129, 109, 125, 131, 133, 136, 134, 126, 145, 126, 137, 147, 124, 132, 115, 127, 133, 112, 125, 122, 122, 129, 111, 123, 133, 136, 128, 134, 142, 130, 124, 107, 124, 126, 133, 134, 136, 113, 136, 138, 127, 129, 113, 110, 133, 121, 123, 123, 131, 135, 110, 114, 105, 118, 129, 122, 134, 104, 125, 136, 132, 114, 124, 126, 123, 120, 132, 151, 102, 130, 113, 137, 159, 135, 111, 126, 138, 127, 146, 137, 133, 114, 141, 116, 132, 127, 135, 122, 140, 107, 124, 133, 122, 127, 121, 109, 121, 130, 133, 128, 112, 126, 120, 138, 121, 124, 137, 124, 115, 112, 114, 114, 115, 124, 138, 138, 123, 132, 124, 136, 119, 126, 121, 123, 113, 119, 125, 124, 131, 107, 122, 113, 118, 125, 121, 112, 110, 144, 124, 114, 136, 115, 118, 151, 105, 141, 139, 142, 116, 133, 111, 125, 122, 127, 145, 123, 109, 107, 134, 129, 124, 124, 131, 139, 129, 125, 116, 129, 139, 124, 136, 130, 117, 123, 126, 119, 146, 116, 125, 127, 111, 117, 124, 126, 135, 134, 116, 120, 138, 151, 118, 125, 126, 138, 111, 126, 117, 121, 121, 116, 129, 133, 107, 130, 114, 131, 115, 136, 116, 111, 110, 131, 115, 125, 141, 130, 118, 121, 98, 114, 120, 134, 104, 119, 122, 125, 110, 138, 126, 129, 123, 118, 114, 113, 130, 126, 157, 133, 117, 125, 118, 128, 143, 124, 126, 112, 127, 120, 120, 124, 116, 109, 139, 143, 110, 111, 127, 102, 131, 130, 116, 128, 136, 128, 130, 115, 119, 128, 140, 129, 123, 131, 120, 147, 128, 122, 119, 128, 143, 120, 128, 114, 117, 118, 123, 123, 124, 104, 125, 123, 147, 145, 112, 132, 131, 109, 139, 132, 122, 114, 104, 122, 112, 130, 111, 120, 123, 125, 131, 141, 133, 125, 130, 123, 149, 125, 137, 148, 125, 115, 128, 130, 124, 112, 104, 107, 115, 130, 120, 125, 112, 128, 132, 139, 130, 139, 145, 134, 114, 117, 131, 124, 124, 118, 119, 139, 122, 129, 130, 130, 124, 122, 124, 120, 117, 135, 131, 115, 121, 126, 112, 130, 119, 133, 131, 137, 147, 122, 124, 129, 116, 142, 119, 136, 128, 135, 117, 118, 114, 128, 138, 132, 120, 135, 119, 134, 116, 129, 125, 134, 125, 108, 130, 124, 134, 133, 125, 111, 125, 130, 135, 139, 119, 120, 138, 118, 119, 123, 132, 130, 133, 141, 129, 131, 121, 122, 111, 118, 138, 129, 106, 119, 143, 122, 123, 114, 105, 111, 114, 127, 131, 113, 120, 141, 112, 137, 134, 144, 127, 116, 128, 125, 143, 119, 112, 119, 129, 149, 122, 144, 116, 124, 117, 128, 127, 112, 141, 133, 124, 147, 132, 130, 151, 114, 110, 116, 133, 125, 112, 130, 152, 109, 129, 116, 125, 138, 104, 116, 117, 125, 118, 127, 129, 118, 143, 128, 123, 116, 125, 141, 113, 125, 126, 130, 133, 130, 127, 107, 121, 104, 111, 131, 131, 120, 112, 125, 126, 116, 140, 143, 116, 119, 129, 125, 115, 118, 109, 127, 129, 143, 112, 123, 118, 144, 130, 121, 127, 121, 118, 115, 118, 111, 113, 129, 124, 109, 114, 120, 113, 150, 122, 143, 122, 143, 134, 128, 117, 129, 133, 119, 147, 145, 116, 118, 127, 102, 136, 143, 123, 129, 136, 131, 127, 145, 146, 137, 128, 122, 125, 132, 117, 123, 146, 118, 122, 140, 109, 125, 124, 122, 152, 128, 115, 114, 134, 138, 141, 127, 125, 131, 144, 142, 130, 111, 118, 123, 124, 119, 118, 139, 135, 123, 132, 124, 128, 141, 117, 132, 135, 126, 142, 128, 120, 109, 118, 115, 116, 140, 116, 123, 114, 132, 130, 130, 118, 126, 128, 129, 122, 124, 120, 123, 132, 140, 132, 114, 117, 129, 115, 125, 124, 133, 131, 120, 122, 121, 132, 101, 119, 148, 130, 130, 139, 141, 130, 121, 128, 115, 116, 111, 147, 131, 116, 125, 116, 130, 131, 116, 128, 127, 125, 116, 135, 132, 130, 132, 114, 130, 126, 122, 118, 126, 106, 115, 133, 132, 116, 136, 119, 127, 130, 131, 124, 130, 142, 114, 133, 136, 134, 118, 149, 117, 116, 128, 127, 110, 154, 115, 111, 101, 133, 128, 145, 124, 127, 140, 138, 122, 140, 136, 118, 113, 134, 134, 126, 123, 131, 103, 119, 120, 139, 134, 132, 139, 133, 120, 122, 104, 130, 121, 124, 131, 141, 117, 122, 119, 121, 133, 132, 123, 122, 135, 120, 112, 125, 127, 125, 146, 141, 120, 121, 115, 129, 129, 112, 133, 127, 125, 134, 130, 125, 134, 125, 138, 123, 112, 136, 123, 130, 137, 136, 132, 143, 135, 122, 128, 130, 111, 116, 122, 117, 126, 130, 114, 98, 130, 110, 125, 111, 112, 116, 109, 128, 135, 115, 123, 111, 131, 123, 113, 131, 148, 147, 131, 113, 130, 141, 123, 125, 113, 136, 136, 138, 104, 127, 126, 119, 113, 123, 124, 136, 121, 137, 152, 115, 125, 113, 132, 118, 120, 131, 134, 109, 124, 145, 111, 125, 135, 125, 127, 123, 118, 113, 124, 130, 123, 107, 96, 129, 135, 128, 136, 132, 122, 146, 107, 128, 121, 127, 137, 119, 149, 119, 136, 118, 126, 131, 115, 112, 127, 134, 123, 178, 126, 115, 142, 126, 112, 116, 153, 122, 138, 121, 130, 140, 121, 132, 129, 118, 114, 113, 123, 118, 128, 118, 130, 122, 124, 124, 120, 117, 121, 141, 132, 128, 114, 128, 125, 135, 123, 120, 114, 115, 119, 134, 131, 136, 111, 144, 136, 113, 131, 114, 115, 133, 128, 109, 119, 133, 120, 126, 112, 129, 122, 133, 133, 116, 114, 121, 104, 132, 127, 122, 132, 127, 127, 125, 120, 135, 132, 141, 119, 104, 117, 139, 110, 117, 125, 134, 127, 130, 127, 136, 133, 129, 137, 118, 118, 97, 120, 131, 122, 115, 120, 153, 112, 145, 138, 130, 136, 120, 129, 95, 117, 133, 119, 129, 128, 117, 118, 135, 144, 133, 121, 117, 142, 129, 119, 125, 137, 118, 129, 131, 116, 117, 137, 128, 123, 114, 117, 120, 121, 129, 135, 108, 111, 134, 129, 119, 131, 116, 130, 132, 125, 139, 120, 95, 104, 127, 105, 137, 127, 127, 120, 113, 139, 121, 120, 140, 119, 118, 139, 139, 112, 123, 126, 119, 127, 126, 112, 113, 124, 92, 112, 123, 113, 129, 123, 133, 129, 134, 140, 138, 115, 117, 134, 131, 125, 102, 121, 115, 113, 141, 134, 113, 118, 134, 132, 132, 141, 105, 126, 132, 113, 109, 114, 123, 132, 174, 110, 124, 109, 121, 108, 137, 135, 112, 126, 134, 131, 136, 125, 143, 116, 115, 111, 128, 122, 127, 115, 122, 120, 130, 122, 134, 110, 136, 125, 131, 137, 126, 134, 109, 125, 126, 114, 124, 122, 120, 123, 125, 113, 144, 129, 123, 131, 124, 129, 125, 117, 127, 126, 113, 134, 124, 112, 128, 116, 134, 113, 130, 145, 127, 112, 134, 132, 127, 127, 128, 125, 116, 120, 118, 148, 139, 119, 142, 109, 128, 129, 118, 117, 125, 127, 130, 117, 122, 138, 123, 141, 105, 115, 136, 112, 105, 141, 97, 129, 115, 123, 143, 142, 117, 126, 138, 127, 127, 112, 119, 105, 133, 129, 123, 135, 112, 125, 122, 130, 109, 118, 136, 137, 130, 126, 135, 149, 125, 142, 133, 127, 113, 110, 123, 143, 116, 124, 142, 132, 117, 138, 114, 125, 121, 108, 129, 123, 117, 127, 142, 118, 134, 138, 147, 111, 135, 129, 116, 119, 125, 126, 131, 136, 134, 115, 102, 112, 124, 132, 126, 140, 109, 137, 123, 137, 139, 122, 119, 121, 117, 110, 136, 116, 146, 115, 125, 128, 118, 121, 144, 129, 111, 128, 124, 114, 147, 128, 113, 140, 109, 121, 112, 111, 137, 103, 129, 133, 135, 122, 130, 126, 122, 142, 125, 109, 123, 126, 119, 127, 107, 132, 126, 123, 126, 137, 123, 138, 136, 149, 144, 131, 135, 131, 120, 128, 135, 135, 122, 122, 125, 122, 129, 127, 121, 115, 124, 99, 130, 122, 137, 118, 126, 135, 122, 130, 144, 123, 133, 126, 145, 108, 127, 103, 125, 123, 140, 148, 124, 126, 105, 128, 118, 136, 122, 127, 114, 125, 118, 124, 132, 137, 125, 119, 104, 131, 119, 111, 104, 123, 127, 141, 115, 145, 112, 117, 122, 117, 121, 140, 133, 144, 109, 127, 128, 133, 125, 107, 119, 123, 134, 117, 133, 131, 134, 127, 126, 120, 118, 116, 143, 123, 125, 113, 131, 100, 130, 112, 126, 126, 135, 122, 132, 142, 117, 136, 127, 113, 125, 132, 120, 132, 132, 132, 133, 124, 135, 132, 124, 125, 129, 106, 120, 122, 139, 136, 118, 135, 138, 100, 113, 134, 123, 106, 115, 113, 136, 123, 127, 124, 123, 133, 130, 143, 130, 120, 119, 131, 113, 119, 109, 112, 135, 100, 133, 139, 151, 124, 125, 135, 131, 112, 129, 120, 118, 137, 131, 125, 126, 130, 137, 120, 127, 135, 118, 128, 127, 134, 129, 124, 138, 130, 138, 139, 133, 109, 114, 125, 126, 132, 125, 137, 127, 150, 113, 132, 119, 121, 128, 142, 110, 113, 109, 125, 100, 126, 129, 127, 120, 133, 121, 136, 142, 127, 132, 121, 140, 103, 145, 139, 136, 125, 128, 123, 112, 137, 112, 102, 141, 122, 135, 144, 131, 111, 118, 134, 104, 128, 139, 112, 136, 127, 129, 120, 153, 103, 126, 110, 101, 125, 137, 134, 119, 126, 131, 117, 122, 118, 123, 108, 116, 128, 123, 129, 111, 107, 135, 106, 123, 114, 127, 148, 143, 109, 121, 116, 117, 106, 137, 132, 117, 122, 130, 143, 127, 138, 134, 108, 130, 127, 98, 128, 102, 114, 129, 124, 121, 111, 143, 127, 122, 113, 118, 144, 113, 129, 141, 141, 127, 108, 114, 132, 144, 118, 130, 121, 142, 106, 135, 138, 130, 118, 112, 111, 130, 115, 119, 135, 136, 126, 146, 133, 127, 127, 116, 108, 138, 126, 148, 121, 125, 136, 117, 147, 118, 124, 133, 131, 119, 145, 128, 128, 124, 121, 119, 154, 140, 119, 132, 105, 111, 125, 139, 99, 137, 147, 137, 134, 110, 131, 134, 105, 131, 137, 126, 114, 125, 105, 133, 109, 126, 111, 119, 108, 132, 133, 128, 137, 139, 124, 119, 129, 113, 134, 124, 133, 134, 141, 117, 100, 122, 119, 118, 131, 140, 121, 132, 117, 123, 125, 126, 137, 135, 116, 130, 127, 138, 115, 115, 134, 115, 117, 131, 137, 113, 122, 149, 125, 127, 124, 116, 124, 132, 126, 123, 115, 127, 136, 114, 126, 128, 124, 126, 117, 125, 126, 118, 131, 143, 136, 127, 115, 124, 129, 134, 159, 141, 126, 122, 114, 122, 113, 119, 115, 123, 134, 126, 126, 145, 144, 123, 126, 128, 124, 121, 117, 121, 123, 118, 121, 147, 134, 141, 118, 127, 120, 120, 123, 121, 127, 119, 129, 121, 142, 124, 137, 131, 136, 123, 132, 136, 116, 134, 137, 119, 128, 154, 116, 128, 133, 135, 132, 131, 127, 130, 103, 130, 123, 123, 125, 112, 121, 125, 128, 134, 156, 109, 125, 99, 129, 121, 120, 116, 105, 112, 126, 120, 135, 105, 121, 126, 119, 109, 140, 127, 130, 119, 139, 160, 122, 118, 125, 134, 126, 118, 123, 125, 158, 121, 124, 136, 126, 145, 132, 128, 122, 118, 116, 136, 99, 121, 121, 122, 126, 121, 135, 139, 122, 109, 116, 121, 127, 124, 148, 117, 112, 134, 118, 131, 125, 111, 112, 129, 138, 116, 123, 111, 129, 139, 144, 121, 123, 128, 126, 122, 123, 115, 116, 125, 125, 124, 140, 126, 121, 134, 119, 125, 126, 130, 115, 130, 115, 132, 123, 127, 132, 137, 133, 135, 123, 113, 130, 119, 122, 136, 138, 114, 122, 125, 133, 128, 129, 130, 139, 125, 123, 117, 126, 117, 123, 126, 122, 120, 110, 133, 122, 117, 126, 123, 138, 131, 111, 127, 130, 127, 119, 122, 137, 116, 119, 124, 131, 143, 117, 113, 121, 113, 130, 145, 124, 122, 110, 138, 107, 125, 113, 129, 134, 122, 120, 127, 112, 140, 112, 130, 119, 118, 116, 134, 129, 102, 127, 145, 131, 128, 152, 101, 120, 115, 116, 144, 117, 132, 117, 129, 111, 124, 114, 133, 129, 133, 111, 131, 131, 133, 111, 108, 130, 114, 140, 114, 121, 120, 106, 126, 119, 126, 128, 125, 144, 130, 145, 137, 139, 109, 136, 127, 121, 123, 129, 134, 110, 135, 135, 124, 136, 119, 125, 119, 119, 125, 120, 119, 117, 104, 116, 136, 113, 128, 138, 122, 133, 120, 126, 122, 138, 117, 126, 118, 122, 114, 134, 124, 151, 133, 136, 128, 125, 119, 109, 114, 114, 123, 129, 133, 125, 141, 122, 149, 121, 107, 123, 124, 122, 125, 121, 133, 107, 132, 121, 129, 121, 146, 106, 118, 146, 118, 128, 130, 130, 129, 114, 125, 144, 124, 116, 143, 129, 139, 122, 120, 122, 125, 129, 118, 144, 149, 115, 121, 114, 135, 113, 137, 132, 120, 127, 116, 127, 110, 142, 119, 105, 132, 128, 116, 111, 126, 135, 138, 116, 126, 122, 126, 125, 130, 137, 105, 138, 116, 106, 131, 122, 128, 125, 122, 132, 123, 117, 134, 119, 134, 128, 137, 127, 137, 118, 136, 122, 152, 122, 118, 126, 105, 118, 115, 112, 139, 136, 124, 132, 123, 121, 122, 116, 128, 132, 115, 121, 119, 124, 137, 123, 128, 117, 142, 123, 134, 117, 133, 121, 126, 106, 103, 138, 122, 122, 125, 131, 115, 147, 124, 133, 133, 123, 119, 119, 130, 139, 133, 125, 134, 154, 135, 147, 126, 121, 120, 118, 129, 128, 124, 137, 145, 143, 137, 130, 123, 128, 119, 137, 131, 141, 134, 128, 112, 129, 129, 135, 114, 120, 144, 104, 134, 149, 125, 117, 114, 136, 133, 131, 133, 116, 109, 129, 131, 114, 129, 145, 145, 127, 118, 127, 109, 115, 143, 139, 118, 129, 132, 127, 148, 116, 132, 114, 123, 129, 127, 126, 125, 136, 142, 115, 111, 119, 118, 137, 133, 135, 125, 123, 116, 114, 120, 137, 124, 128, 131, 131, 147, 101, 125, 121, 126, 125, 122, 111, 137, 116, 152, 138, 109, 138, 123, 123, 119, 125, 117, 130, 135, 115, 128, 131, 122, 104, 118, 142, 129, 131, 138, 107, 118, 125, 126, 131, 115, 126, 129, 121, 124, 125, 136, 115, 134, 130, 109, 122, 139, 132, 126, 110, 117, 143, 148, 123, 134, 104, 142, 129, 129, 140, 131, 140, 135, 132, 111, 120, 112, 142, 140, 119, 122, 126, 132, 129, 125, 128, 126, 112, 122, 115, 121, 136, 128, 114, 125, 120, 113, 130, 117, 135, 117, 116, 151, 121, 109, 121, 128, 128, 128, 129, 152, 116, 125, 136, 130, 132, 116, 118, 114, 137, 123, 127, 117, 123, 128, 117, 93, 118, 117, 144, 111, 108, 131, 129, 136, 135, 128, 115, 134, 123, 109, 133, 105, 118, 124, 121, 124, 114, 129, 127, 114, 112, 144, 131, 131, 136, 125, 120, 140, 117, 118, 119, 121, 127, 128, 134, 120, 103, 112, 107, 143, 125, 135, 119, 133, 115, 106, 127, 138, 126, 130, 131, 128, 120, 138, 118, 116, 125, 122, 154, 115, 127, 113, 114, 116, 143, 137, 137, 114, 129, 110, 114, 141, 119, 113, 131, 129, 145, 128, 116, 113, 144, 129, 114, 118, 138, 133, 141, 128, 122, 132, 152, 137, 132, 143, 137, 129, 134, 118, 135, 142, 131, 125, 138, 126, 120, 130, 126, 130, 123, 117, 120, 124, 116, 118, 130, 120, 130, 130, 128, 117, 142, 122, 128, 135, 108, 134, 126, 113, 133, 125, 125, 125, 120, 107, 132, 122, 113, 123, 132, 137, 126, 122, 137, 122, 136, 123, 111, 124, 131, 112, 131, 138, 149, 117, 119, 123, 135, 117, 132, 107, 126, 117, 116, 140, 115, 135, 109, 126, 139, 117, 129, 153, 116, 118, 133, 114, 117, 120, 133, 142, 120, 134, 128, 102, 116, 117, 126, 132, 109, 125, 109, 118, 124, 116, 115, 143, 135, 129, 140, 134, 125, 122, 122, 129, 125, 130, 133, 103, 124, 121, 110, 107, 128, 122, 116, 130, 114, 132, 135, 131, 134, 129, 133, 129, 125, 123, 133, 123, 141, 114, 114, 120, 122, 124, 145, 139, 136, 132, 118, 114, 116, 118, 150, 117, 148, 115, 116, 143, 134, 110, 123, 125, 120, 139, 143, 122, 111, 128, 118, 114, 125, 116, 123, 117, 128, 134, 125, 125, 110, 127, 129, 119, 130, 124, 155, 137, 104, 107, 116, 125, 97, 126, 128, 134, 117, 136, 123, 118, 140, 129, 121, 122, 137, 130, 129, 112, 133, 114, 130, 121, 134, 137, 117, 128, 129, 135, 126, 147, 125, 134, 124, 130, 121, 118, 107, 125, 115, 132, 132, 115, 123, 139, 123, 130, 138, 129, 117, 112, 134, 119, 127, 137, 136, 128, 113, 112, 115, 126, 123, 134, 129, 123, 114, 119, 135, 140, 132, 119, 109, 121, 132, 131, 120, 112, 126, 119, 123, 137, 126, 142, 125, 120, 140, 158, 106, 118, 128, 131, 117, 115, 116, 108, 137, 140, 121, 141, 131, 111, 118, 147, 127, 126, 110, 120, 112, 125, 109, 131, 136, 129, 141, 135, 132, 144, 121, 111, 148, 131, 129, 125, 143, 130, 121, 135, 114, 131, 113, 114, 131, 127, 141, 111, 113, 121, 123, 122, 116, 132, 139, 128, 138, 126, 115, 122, 115, 104, 123, 132, 134, 127, 129, 113, 123, 127, 130, 118, 121, 142, 137, 113, 143, 125, 128, 123, 150, 118, 140, 128, 141, 105, 122, 146, 133, 123, 124, 117, 142, 122, 130, 102, 137, 123, 134, 127, 119, 126, 112, 123, 123, 125, 127, 112, 119, 137, 121, 129, 111, 149, 135, 136, 129, 124, 115, 126, 117, 114, 130, 129, 126, 131, 130, 131, 139, 121, 118, 143, 132, 132, 107, 130, 118, 127, 126, 124, 115, 128, 137, 124, 131, 133, 119, 136, 132, 131, 126, 120, 136, 122, 150, 126, 103, 116, 109, 130, 113, 119, 128, 129, 125, 112, 135, 118, 125, 151, 114, 130, 135, 131, 118, 107, 134, 120, 137, 118, 140, 123, 114, 134, 120, 130, 131, 138, 135, 133, 120, 127, 123, 135, 135, 115, 129, 120, 114, 122, 108, 147, 114, 141, 143, 129, 97, 133, 129, 116, 122, 121, 131, 129, 127, 118, 131, 130, 117, 133, 125, 127, 118, 126, 114, 132, 120, 124, 114, 117, 134, 125, 133, 143, 124, 122, 114, 130, 128, 136, 133, 123, 107, 128, 122, 116, 122, 141, 115, 133, 131, 142, 117, 121, 116, 138, 129, 123, 128, 129, 123, 134, 111, 125, 147, 122, 120, 138, 138, 136, 120, 107, 126, 136, 139, 127, 120, 137, 127, 139, 111, 124, 139, 131, 135, 127, 110, 114, 128, 149, 108, 110, 130, 123, 133, 119, 118, 133, 114, 128, 116, 108, 109, 123, 127, 129, 114, 121, 136, 130, 133, 120, 133, 123, 111, 120, 128, 122, 107, 119, 126, 125, 101, 126, 129, 133, 121, 132, 128, 111, 106, 127, 136, 107, 123, 130, 131, 125, 111, 141, 115, 134, 129, 118, 117, 130, 127, 141, 137, 121, 136, 94, 117, 122, 147, 121, 135, 131, 124, 125, 114, 131, 130, 141, 105, 136, 129, 127, 127, 109, 119, 136, 130, 103, 133, 113, 128, 131, 155, 126, 113, 119, 121, 139, 120, 131, 108, 121, 131, 137, 123, 130, 119, 123, 142, 125, 118, 122, 119, 120, 139, 122, 121, 103, 115, 124, 141, 135, 143, 143, 120, 116, 105, 140, 132, 120, 134, 128, 140, 124, 132, 136, 124, 127, 139, 111, 115, 99, 119, 124, 132, 140, 114, 123, 113, 121, 126, 130, 138, 115, 116, 124, 118, 134, 124, 129, 131, 130, 116, 126, 128, 120, 157, 116, 132, 131, 125, 139, 125, 115, 126, 136, 115, 131, 110, 130, 132, 125, 110, 123, 141, 113, 107, 123, 129, 117, 125, 123, 132, 118, 135, 126, 118, 133, 110, 124, 130, 127, 115, 126, 119, 130, 127, 142, 119, 129, 135, 125, 115, 135, 151, 114, 132, 126, 129, 118, 127, 124, 137, 146, 114, 132, 124, 122, 137, 95, 147, 127, 156, 115, 124, 120, 126, 135, 98, 123, 137, 120, 126, 116, 135, 115, 137, 128, 125, 113, 131, 132, 168, 118, 140, 136, 115, 124, 129, 126, 131, 135, 124, 103, 128, 119, 119, 110, 141, 114, 130, 118, 112, 111, 142, 124, 110, 143, 128, 114, 130, 121, 136, 134, 125, 130, 128, 139, 120, 133, 117, 107, 121, 145, 107, 133, 135, 123, 130, 110, 116, 126, 112, 117, 114, 132, 122, 144, 128, 121, 123, 124, 125, 121, 113, 140, 108, 108, 126, 106, 122, 120, 139, 125, 133, 128, 120, 161, 118, 127, 137, 133, 130, 123, 124, 127, 139, 134, 114, 121, 122, 143, 136, 96, 113, 123, 129, 133, 106, 125, 112, 127, 122, 116, 118, 129, 120, 119, 123, 132, 105, 151, 130, 115, 134, 110, 113, 111, 120, 122, 127, 129, 137, 133, 120, 122, 152, 113, 123, 133, 116, 144, 128, 120, 129, 141, 117, 112, 112, 134, 115, 107, 116, 136, 104, 139, 137, 127, 119, 114, 125, 140, 136, 125, 130, 137, 118, 117, 83, 110, 122, 141, 147, 115, 139, 126, 113, 144, 119, 124, 132, 122, 137, 147, 141, 130, 109, 125, 118, 127, 154, 124, 132, 109, 114, 124, 123, 126, 135, 139, 120, 132, 120, 131, 142, 115, 113, 121, 148, 116, 131, 137, 132, 135, 120, 134, 114, 122, 139, 133, 117, 131, 122, 123, 120, 124, 118, 131, 125, 122, 118, 127, 138, 133, 128, 120, 120, 119, 117, 127, 132, 136, 127, 105, 129, 126, 128, 130, 132, 131, 127, 155, 131, 131, 120, 124, 123, 126, 133, 118, 110, 109, 121, 105, 120, 130, 125, 116, 119, 121, 122, 143, 158, 129, 117, 139, 130, 102, 109, 124, 117, 129, 142, 126, 115, 111, 117, 120, 125, 147, 131, 151, 144, 121, 131, 123, 135, 128, 128, 125, 125, 128, 113, 118, 106, 139, 123, 119, 143, 122, 133, 109, 156, 141, 140, 123, 134, 137, 130, 113, 112, 123, 107, 120, 111, 148, 121, 135, 142, 124, 138, 130, 110, 128, 127, 118, 123, 112, 119, 124, 130, 134, 136, 135, 119, 144, 127, 137, 129, 130, 131, 117, 138, 126, 128, 116, 127, 127, 128, 122, 119, 118, 132, 123, 99, 129, 127, 105, 126, 137, 131, 136, 110, 117, 125, 140, 125, 117, 126, 144, 124, 137, 163, 118, 127, 121, 129, 132, 122, 138, 134, 128, 138, 129, 133, 128, 130, 123, 118, 117, 122, 139, 103, 121, 130, 128, 134, 116, 114, 126, 117, 139, 118, 123, 125, 113, 119, 122, 125, 131, 133, 140, 140, 109, 108, 146, 140, 121, 129, 132, 112, 139, 132, 136, 129, 132, 134, 123, 129, 124, 120, 124, 121, 139, 123, 124, 121, 146, 132, 129, 119, 131, 117, 129, 120, 120, 114, 148, 126, 116, 123, 138, 126, 123, 128, 148, 138, 129, 125, 120, 142, 126, 125, 114, 118, 131, 118, 131, 131, 126, 124, 108, 122, 125, 126, 132, 119, 112, 123, 132, 137, 113, 130, 127, 124, 117, 126, 118, 121, 133, 128, 121, 133, 134, 127, 124, 135, 105, 119, 127, 144, 140, 133, 100, 112, 146, 112, 124, 132, 122, 104, 115, 113, 140, 135, 112, 132, 137, 117, 124, 129, 110, 124, 122, 126, 120, 137, 126, 127, 126, 130, 111, 120, 139, 146, 115, 118, 127, 139, 121, 114, 134, 143, 112, 100, 128, 119, 105, 137, 135, 137, 117, 132, 120, 164, 131, 114, 163, 119, 138, 134, 139, 111, 121, 117, 136, 129, 140, 141, 141, 149, 116, 133, 122, 138, 135, 134, 119, 132, 108, 132, 111, 125, 114, 127, 126, 134, 121, 124, 123, 101, 118, 118, 126, 130, 123, 119, 119, 135, 123, 113, 131, 103, 119, 120, 128, 134, 131, 114, 135, 148, 115, 107, 127, 126, 142, 125, 128, 135, 131, 125, 130, 112, 134, 117, 111, 117, 119, 162, 124, 125, 141, 146, 126, 132, 125, 108, 110, 134, 119, 110, 126, 126, 136, 128, 111, 137, 124, 115, 133, 112, 130, 149, 129, 139, 135, 116, 115, 123, 117, 117, 147, 131, 124, 117, 142, 107, 123, 153, 118, 104, 110, 114, 137, 108, 129, 134, 126, 96, 128, 116, 134, 128, 130, 123, 154, 120, 121, 114, 123, 122, 121, 155, 135, 107, 129, 133, 135, 135, 115, 118, 123, 121, 113, 138, 120, 120, 111, 122, 119, 132, 127, 129, 120, 118, 136, 126, 127, 137, 110, 128, 134, 116, 121, 136, 106, 132, 119, 126, 107, 131, 101, 134, 130, 121, 121, 126, 132, 113, 123, 122, 125, 110, 116, 113, 109, 142, 134, 115, 135, 129, 143, 125, 132, 126, 134, 135, 130, 116, 125, 129, 110, 117, 129, 115, 131, 130, 124, 157, 125, 117, 133, 131, 113, 132, 118, 124, 125, 133, 129, 116, 107, 134, 139, 106, 129, 125, 118, 126, 124, 115, 128, 117, 127, 136, 135, 123, 118, 129, 132, 145, 139, 112, 140, 120, 135, 131, 126, 131, 120, 113, 123, 128, 121, 135, 105, 133, 128, 123, 122, 115, 114, 121, 122, 137, 105, 129, 127, 122, 115, 119, 87, 124, 125, 119, 133, 122, 129, 128, 126, 120, 118, 132, 126, 121, 129, 121, 128, 129, 112, 126, 119, 117, 134, 135, 123, 122, 135, 130, 119, 135, 124, 122, 132, 130, 108, 116, 131, 133, 137, 113, 126, 130, 130, 122, 126, 119, 126, 132, 133, 147, 123, 124, 125, 138, 120, 130, 119, 132, 108, 125, 113, 122, 110, 133, 138, 109, 124, 125, 128, 125, 148, 131, 116, 133, 135, 147, 125, 105, 126, 122, 118, 128, 139, 124, 113, 123, 130, 120, 102, 123, 122, 123, 134, 112, 116, 128, 119, 132, 125, 120, 140, 125, 120, 154, 109, 113, 126, 158, 115, 144, 129, 135, 128, 116, 115, 112, 141, 132, 131, 139, 120, 129, 136, 123, 128, 112, 131, 146, 119, 124, 126, 126, 123, 123, 123, 120, 126, 116, 127, 143, 118, 125, 114, 129, 129, 112, 133, 127, 128, 115, 127, 113, 112, 116, 107, 111, 115, 132, 137, 127, 133, 130, 115, 129, 141, 117, 119, 102, 127, 128, 130, 126, 121, 130, 98, 123, 118, 124, 103, 118, 129, 124, 116, 121, 123, 129, 129, 129, 116, 127, 134, 117, 126, 134, 117, 133, 130, 123, 127, 128, 127, 115, 130, 135, 127, 136, 136, 147, 113, 131, 125, 125, 141, 132, 141, 127, 121, 129, 135, 124, 114, 133, 123, 107, 141, 109, 105, 121, 119, 124, 130, 122, 127, 118, 127, 118, 127, 123, 94, 130, 117, 130, 119, 139, 114, 131, 120, 131, 110, 114, 125, 119, 132, 115, 112, 118, 114, 128, 106, 120, 122, 132, 140, 131, 118, 126, 126, 111, 122, 122, 118, 128, 118, 114, 119, 126, 135, 120, 127, 140, 128, 125, 112, 132, 113, 124, 125, 142, 136, 129, 107, 134, 122, 133, 123, 134, 121, 123, 119, 135, 130, 141, 109, 136, 129, 128, 122, 115, 120, 86, 135, 119, 113, 117, 97, 131, 120, 129, 120, 123, 123, 132, 121, 114, 143, 121, 107, 148, 129, 129, 111, 122, 129, 122, 117, 117, 119, 114, 140, 132, 131, 145, 133, 124, 132, 127, 123, 96, 126, 140, 114, 145, 115, 137, 145, 127, 112, 116, 125, 116, 127, 137, 120, 109, 125, 122, 134, 123, 127, 128, 140, 126, 137, 141, 128, 93, 141, 144, 106, 122, 132, 139, 117, 119, 114, 127, 121, 133, 125, 133, 121, 124, 129, 125, 127, 127, 111, 131, 115, 118, 111, 116, 127, 121, 128, 136, 102, 128, 124, 126, 139, 137, 123, 125, 124, 135, 122, 135, 134, 119, 123, 141, 120, 127, 118, 127, 113, 139, 119, 125, 135, 128, 126, 138, 151, 136, 138, 116, 116, 123, 128, 136, 124, 120, 139, 132, 134, 128, 116, 133, 129, 131, 123, 132, 127, 122, 124, 134, 123, 136, 128, 110, 137, 130, 144, 131, 123, 115, 142, 139, 129, 123, 124, 128, 131, 103, 123, 106, 131, 119, 136, 127, 135, 141, 125, 119, 117, 110, 123, 139, 119, 109, 132, 118, 123, 128, 129, 117, 131, 123, 125, 125, 122, 132, 147, 134, 124, 138, 130, 116, 106, 126, 128, 127, 138, 130, 136, 119, 128, 128, 135, 126, 120, 134, 124, 132, 138, 123, 106, 139, 135, 110, 123, 121, 121, 124, 112, 130, 127, 126, 124, 125, 131, 108, 119, 122, 133, 128, 125, 137, 100, 117, 128, 131, 135, 138, 159, 127, 132, 135, 126, 118, 132, 118, 128, 125, 109, 117, 106, 125, 129, 113, 138, 132, 134, 133, 135, 127, 135, 125, 138, 128, 117, 141, 121, 132, 122, 128, 86, 113, 129, 128, 114, 105, 120, 114, 121, 135, 120, 115, 128, 125, 130, 119, 133, 124, 129, 128, 137, 139, 126, 129, 131, 109, 136, 129, 133, 132, 128, 132, 101, 129, 129, 125, 126, 128, 117, 101, 133, 128, 133, 123, 123, 118, 130, 113, 129, 120, 121, 131, 134, 141, 130, 125, 139, 122, 134, 130, 127, 111, 125, 120, 133, 129, 128, 143, 106, 99, 130, 142, 134, 139, 127, 118, 121, 141, 125, 134, 121, 126, 134, 128, 127, 141, 114, 126, 123, 121, 127, 126, 140, 124, 123, 122, 127, 126, 116, 122, 136, 148, 129, 114, 136, 123, 125, 124, 114, 134, 142, 122, 126, 132, 125, 124, 98, 130, 106, 133, 110, 113, 127, 115, 116, 122, 121, 133, 111, 128, 132, 129, 128, 124, 118, 108, 124, 123, 139, 137, 116, 121, 122, 135, 134, 119, 134, 119, 111, 124, 112, 124, 117, 125, 142, 133, 125, 125, 129, 139, 114, 124, 143, 120, 132, 117, 129, 122, 130, 119, 110, 128, 118, 127, 123, 116, 111, 122, 133, 136, 124, 134, 113, 135, 131, 153, 117, 128, 121, 103, 132, 123, 115, 136, 126, 118, 130, 120, 138, 124, 141, 135, 126, 109, 125, 127, 116, 134, 122, 111, 118, 118, 143, 131, 123, 135, 125, 124, 115, 121, 138, 145, 121, 116, 135, 123, 147, 135, 130, 133, 127, 141, 118, 128, 128, 106, 115, 119, 124, 124, 126, 130, 129, 120, 120, 138, 128, 109, 130, 140, 125, 117, 122, 125, 130, 135, 127, 118, 141, 146, 122, 131, 118, 139, 123, 114, 116, 115, 126, 116, 130, 126, 120, 103, 114, 131, 135, 135, 130, 135, 129, 130, 118, 116, 123, 118, 146, 117, 134, 131, 134, 123, 137, 132, 130, 125, 118, 125, 147, 130, 132, 118, 129, 119, 110, 119, 127, 117, 151, 135, 128, 156, 121, 112, 120, 140, 129, 127, 129, 125, 122, 123, 126, 123, 126, 135, 125, 120, 135, 121, 116, 119, 128, 125, 125, 114, 123, 134, 119, 134, 120, 143, 127, 141, 132, 134, 133, 107, 154, 122, 131, 125, 127, 137, 144, 152, 112, 128, 133, 125, 134, 139, 128, 127, 139, 114, 108, 139, 123, 131, 115, 120, 134, 142, 107, 147, 131, 116, 112, 124, 127, 122, 125, 116, 140, 116, 124, 134, 108, 127, 133, 113, 114, 134, 112, 137, 134, 133, 138, 149, 131, 120, 140, 123, 103, 129, 139, 128, 125, 146, 123, 117, 113, 121, 121, 136, 132, 136, 125, 130, 145, 132, 117, 151, 119, 142, 109, 115, 118, 119, 111, 131, 108, 118, 118, 126, 123, 130, 136, 107, 137, 138, 147, 118, 114, 98, 124, 117, 116, 126, 125, 125, 153, 114, 142, 129, 140, 121, 120, 127, 132, 146, 131, 130, 126, 111, 134, 122, 116, 133, 127, 123, 123, 119, 131, 125, 114, 141, 124, 127, 126, 131, 131, 137, 141, 123, 137, 127, 115, 142, 101, 121, 139, 118, 129, 118, 121, 134, 142, 120, 144, 133, 128, 136, 107, 118, 127, 134, 117, 126, 119, 133, 134, 123, 127, 139, 143, 120, 124, 116, 126, 125, 125, 143, 115, 133, 128, 120, 145, 117, 126, 141, 132, 125, 136, 114, 119, 124, 117, 127, 111, 137, 122, 114, 111, 127, 120, 135, 128, 135, 129, 127, 121, 125, 112, 137, 120, 126, 123, 128, 122, 117, 122, 117, 127, 130, 131, 128, 121, 109, 120, 128, 125, 129, 137, 110, 123, 124, 120, 149, 109, 124, 131, 157, 123, 126, 137, 132, 126, 141, 134, 119, 135, 126, 124, 131, 127, 126, 121, 127, 129, 125, 127, 130, 128, 119, 144, 140, 126, 131, 129, 145, 118, 135, 122, 129, 139, 110, 125, 115, 125, 117, 128, 121, 101, 135, 129, 115, 124, 129, 147, 136, 123, 115, 108, 105, 138, 114, 131, 137, 126, 132, 106, 116, 127, 129, 135, 139, 126, 119, 123, 118, 147, 120, 125, 130, 132, 137, 107, 102, 133, 114, 121, 119, 136, 125, 110, 121, 118, 131, 115, 89, 124, 113, 118, 119, 134, 113, 134, 129, 121, 123, 131, 131, 128, 131, 131, 136, 114, 134, 128, 108, 128, 110, 126, 133, 140, 128, 143, 122, 132, 116, 122, 122, 131, 127, 117, 126, 118, 119, 124, 108, 121, 129, 107, 115, 130, 126, 119, 124, 148, 146, 150, 128, 130, 130, 111, 129, 165, 131, 129, 144, 109, 150, 111, 113, 128, 122, 131, 128, 129, 128, 130, 126, 124, 115, 101, 129, 116, 120, 139, 121, 123, 123, 117, 130, 126, 117, 137, 121, 117, 133, 122, 135, 116, 113, 131, 149, 108, 127, 143, 113, 130, 110, 116, 117, 119, 113, 121, 139, 128, 129, 124, 110, 120, 131, 130, 122, 135, 121, 130, 117, 120, 133, 124, 122, 132, 113, 119, 132, 134, 128, 121, 125, 124, 127, 113, 128, 140, 133, 126, 121, 123, 124, 137, 147, 114, 131, 122, 127, 132, 128, 124, 132, 135, 117, 132, 124, 136, 132, 129, 131, 144, 123, 129, 120, 137, 140, 112, 126, 127, 120, 143, 135, 124, 133, 134, 105, 127, 120, 111, 97, 129, 129, 131, 131, 129, 124, 130, 124, 100, 135, 136, 129, 127, 110, 135, 120, 124, 129, 140, 136, 129, 128, 129, 138, 115, 113, 129, 112, 121, 114, 112, 129, 112, 115, 132, 130, 113, 121, 115, 110, 125, 129, 115, 108, 148, 145, 117, 108, 140, 115, 118, 136, 119, 129, 129, 135, 135, 131, 131, 131, 122, 113, 126, 111, 133, 127, 133, 117, 120, 132, 125, 131, 121, 142, 134, 128, 137, 129, 120, 126, 106, 113, 118, 124, 123, 142, 124, 110, 126, 136, 125, 120, 138, 124, 97, 114, 138, 137, 140, 132, 118, 151, 107, 122, 129, 116, 118, 115, 130, 122, 126, 120, 126, 119, 143, 140, 134, 125, 141, 116, 126, 118, 125, 123, 122, 134, 132, 127, 122, 122, 121, 124, 117, 133, 105, 135, 153, 122, 128, 128, 133, 134, 128, 125, 134, 141, 124, 124, 121, 119, 119, 131, 126, 115, 113, 126, 127, 124, 129, 132, 133, 114, 110, 113, 122, 122, 144, 124, 123, 122, 132, 122, 136, 135, 118, 124, 151, 124, 115, 128, 124, 121, 116, 126, 115, 119, 117, 122, 128, 104, 132, 103, 124, 131, 135, 136, 118, 125, 141, 122, 127, 144, 123, 126, 103, 123, 123, 111, 131, 119, 132, 112, 123, 137, 114, 113, 149, 123, 121, 118, 123, 126, 108, 121, 115, 134, 135, 129, 123, 106, 131, 128, 124, 133, 110, 115, 127, 125, 144, 110, 117, 128, 129, 124, 122, 117, 124, 142, 122, 121, 115, 134, 116, 116, 110, 122, 122, 114, 126, 119, 127, 119, 133, 118, 152, 139, 128, 120, 128, 135, 139, 125, 129, 116, 124, 127, 133, 127, 133, 111, 107, 120, 135, 125, 105, 131, 125, 115, 136, 139, 141, 126, 124, 124, 128, 114, 124, 118, 139, 141, 108, 133, 145, 118, 107, 132, 117, 125, 125, 115, 132, 134, 117, 124, 116, 148, 136, 141, 136, 125, 130, 116, 121, 117, 133, 130, 124, 118, 123, 102, 118, 139, 111, 129, 122, 137, 131, 134, 108, 127, 99, 127, 141, 107, 113, 144, 131, 137, 121, 138, 125, 118, 140, 138, 126, 122, 105, 136, 115, 131, 125, 122, 127, 107, 113, 109, 133, 121, 131, 117, 118, 122, 104, 132, 136, 142, 139, 125, 112, 127, 113, 134, 115, 129, 139, 134, 125, 115, 134, 113, 128, 140, 136, 113, 124, 136, 139, 117, 149, 127, 120, 143, 112, 137, 145, 121, 128, 141, 127, 124, 126, 121, 141, 113, 138, 130, 138, 122, 144, 124, 129, 119, 97, 112, 121, 129, 117, 155, 116, 123, 137, 114, 157, 130, 133, 141, 138, 136, 141, 123, 127, 143, 122, 114, 120, 112, 126, 117, 121, 150, 139, 138, 128, 133, 138, 115, 134, 156, 119, 127, 127, 111, 145, 132, 131, 123, 112, 115, 118, 119, 114, 118, 127, 122, 127, 136, 128, 122, 132, 142, 126, 136, 124, 133, 128, 118, 121, 130, 125, 114, 107, 129, 124, 132, 124, 123, 124, 124, 127, 156, 131, 141, 144, 141, 119, 118, 129, 143, 127, 118, 110, 127, 138, 113, 128, 123, 113, 114, 131, 127, 117, 126, 144, 120, 142, 95, 137, 142, 142, 115, 125, 147, 120, 107, 98, 122, 115, 103, 136, 128, 125, 98, 131, 124, 119, 136, 139, 114, 127, 118, 131, 150, 126, 106, 115, 111, 123, 130, 128, 129, 108, 121, 109, 123, 125, 125, 154, 128, 159, 125, 142, 141, 115, 123, 129, 124, 139, 115, 140, 111, 146, 144, 115, 105, 113, 119, 118, 122, 110, 114, 122, 131, 126, 121, 119, 122, 120, 128, 135, 122, 118, 122, 115, 124, 128, 118, 116, 129, 135, 119, 128, 152, 126, 142, 128, 124, 123, 116, 115, 115, 140, 125, 132, 128, 104, 119, 123, 130, 115, 125, 114, 117, 123, 147, 132, 120, 121, 140, 125, 155, 123, 122, 128, 113, 114, 122, 130, 133, 116, 127, 142, 124, 138, 129, 133, 137, 138, 113, 119, 116, 121, 132, 121, 139, 121, 98, 118, 121, 139, 125, 115, 133, 125, 95, 131, 128, 131, 122, 141, 114, 132, 119, 120, 114, 148, 131, 120, 118, 138, 124, 130, 119, 120, 124, 126, 118, 119, 111, 117, 118, 128, 128, 122, 133, 109, 117, 131, 132, 129, 132, 133, 131, 133, 136, 124, 103, 131, 115, 125, 112, 107, 119, 99, 118, 120, 115, 122, 93, 131, 128, 127, 123, 139, 137, 116, 110, 115, 125, 123, 119, 135, 127, 128, 126, 116, 128, 106, 116, 121, 130, 110, 113, 123, 149, 125, 126, 119, 142, 119, 116, 123, 128, 125, 121, 129, 118, 117, 107, 122, 147, 123, 123, 114, 158, 131, 130, 116, 115, 113, 127, 108, 99, 142, 125, 120, 125, 120, 113, 126, 115, 116, 125, 129, 113, 135, 128, 119, 113, 114, 127, 131, 128, 152, 112, 113, 109, 128, 107, 127, 117, 139, 139, 134, 132, 124, 125, 130, 97, 111, 126, 117, 125, 124, 127, 128, 129, 127, 132, 129, 120, 124, 124, 127, 108, 124, 121, 123, 127, 114, 132, 129, 131, 126, 134, 148, 135, 118, 126, 135, 145, 114, 127, 117, 123, 119, 120, 127, 127, 129, 119, 118, 128, 120, 122, 137, 136, 124, 130, 138, 122, 123, 128, 107, 137, 140, 121, 112, 127, 141, 122, 122, 115, 147, 119, 121, 130, 131, 122, 126, 119, 121, 126, 135, 108, 114, 123, 100, 127, 141, 114, 130, 133, 127, 136, 125, 135, 131, 120, 115, 123, 132, 126, 117, 114, 129, 139, 113, 131, 129, 108, 130, 129, 115, 161, 111, 115, 117, 142, 122, 127, 122, 125, 118, 123, 110, 129, 120, 137, 137, 127, 128, 122, 108, 127, 120, 150, 127, 103, 119, 112, 134, 126, 119, 126, 115, 115, 132, 115, 127, 129, 135, 124, 124, 126, 88, 114, 124, 139, 116, 143, 119, 112, 132, 126, 134, 110, 129, 121, 135, 135, 112, 120, 151, 118, 119, 114, 122, 130, 124, 124, 137, 120, 106, 123, 117, 129, 112, 125, 120, 145, 134, 108, 137, 126, 100, 122, 121, 123, 129, 135, 112, 106, 129, 117, 110, 91, 117, 130, 146, 140, 127, 130, 135, 137, 121, 135, 119, 111, 120, 124, 127, 136, 131, 136, 115, 134, 110, 132, 108, 129, 133, 133, 125, 144, 132, 126, 109, 114, 111, 137, 123, 140, 109, 115, 114, 127, 150, 116, 121, 115, 138, 118, 120, 129, 126, 133, 133, 120, 131, 145, 132, 151, 121, 122, 129, 129, 153, 121, 129, 116, 131, 135, 127, 118, 128, 144, 132, 135, 124, 124, 134, 129, 126, 109, 122, 119, 121, 122, 145, 132, 134, 123, 119, 122, 126, 124, 126, 107, 130, 137, 123, 126, 126, 117, 144, 114, 111, 121, 123, 115, 145, 131, 109, 124, 140, 114, 119, 128, 147, 119, 121, 138, 104, 125, 133, 122, 118, 115, 110, 113, 126, 114, 114, 112, 116, 133, 120, 123, 114, 126, 122, 130, 117, 127, 132, 113, 112, 131, 133, 124, 140, 130, 129, 134, 121, 142, 129, 105, 126, 123, 119, 119, 133, 130, 124, 120, 117, 117, 133, 137, 125, 109, 125, 130, 105, 119, 134, 115, 137, 111, 121, 125, 110, 129, 120, 99, 124, 114, 116, 117, 134, 133, 114, 107, 134, 118, 149, 120, 125, 125, 132, 137, 134, 127, 119, 127, 166, 138, 116, 120, 121, 128, 135, 127, 126, 129, 126, 131, 122, 126, 133, 115, 135, 113, 106, 119, 116, 129, 116, 115, 134, 148, 132, 104, 113, 123, 137, 125, 131, 112, 111, 138, 101, 136, 134, 119, 140, 121, 95, 133, 129, 105, 131, 131, 126, 126, 141, 104, 138, 122, 122, 102, 124, 119, 143, 137, 127, 130, 115, 123, 125, 120, 121, 121, 148, 120, 114, 118, 107, 107, 124, 133, 125, 111, 132, 114, 135, 142, 133, 115, 124, 115, 119, 131, 120, 125, 135, 138, 122, 122, 134, 119, 134, 120, 134, 146, 112, 121, 127, 120, 121, 129, 112, 137, 128, 117, 125, 125, 136, 137, 114, 140, 141, 134, 133, 134, 126, 118, 130, 101, 127, 115, 156, 123, 128, 124, 124, 143, 129, 119, 116, 127, 141, 135, 122, 117, 137, 126, 124, 123, 126, 125, 132, 136, 132, 133, 142, 128, 121, 125, 122, 146, 119, 125, 126, 125, 113, 132, 117, 112, 123, 144, 106, 128, 125, 134, 133, 124, 138, 142, 134, 109, 134, 116, 138, 129, 124, 117, 106, 119, 123, 134, 123, 118, 136, 128, 141, 140, 113, 134, 126, 111, 107, 124, 138, 137, 129, 141, 119, 127, 135, 117, 107, 125, 110, 109, 110, 130, 124, 130, 118, 133, 120, 117, 130, 100, 129, 115, 117, 119, 120, 119, 150, 130, 119, 109, 126, 133, 133, 119, 110, 143, 127, 129, 130, 114, 120, 120, 134, 130, 136, 129, 134, 105, 139, 125, 127, 118, 119, 123, 131, 137, 121, 129, 121, 122, 125, 114, 126, 134, 119, 127, 146, 127, 122, 107, 128, 117, 125, 111, 121, 135, 126, 129, 114, 135, 129, 128, 108, 127, 135, 129, 132, 131, 139, 117, 134, 151, 121, 119, 143, 119, 110, 116, 115, 122, 126, 136, 105, 132, 129, 139, 135, 142, 123, 116, 115, 129, 138, 117, 128, 149, 146, 121, 123, 122, 129, 123, 113, 127, 143, 139, 153, 133, 117, 125, 128, 124, 118, 129, 122, 128, 120, 109, 109, 133, 137, 131, 134, 126, 119, 137, 121, 111, 130, 109, 122, 133, 146, 128, 126, 118, 134, 132, 138, 116, 121, 123, 122, 109, 140, 126, 121, 140, 114, 141, 139, 124, 118, 128, 121, 134, 136, 142, 125, 122, 143, 120, 113, 120, 140, 131, 136, 122, 121, 115, 124, 120, 127, 122, 140, 121, 124, 125, 126, 124, 127, 103, 128, 108, 124, 131, 115, 111, 130, 135, 113, 142, 128, 123, 135, 130, 111, 119, 119, 124, 110, 131, 131, 122, 128, 128, 141, 116, 129, 135, 122, 126, 118, 120, 151, 129, 113, 125, 103, 153, 120, 119, 136, 108, 142, 125, 131, 118, 129, 119, 123, 131, 122, 107, 120, 133, 119, 138, 133, 124, 116, 120, 122, 130, 130, 139, 123, 145, 127, 124, 119, 108, 123, 118, 123, 132, 121, 118, 124, 110, 122, 127, 124, 134, 113, 116, 125, 127, 145, 126, 134, 141, 137, 137, 137, 125, 129, 126, 122, 134, 144, 138, 118, 124, 140, 145, 107, 98, 128, 115, 121, 143, 116, 126, 129, 103, 139, 130, 119, 130, 143, 108, 115, 129, 121, 123, 124, 127, 123, 124, 128, 130, 124, 133, 155, 134, 122, 116, 124, 140, 127, 123, 133, 123, 129, 135, 139, 122, 125, 120, 127, 120, 123, 122, 125, 125, 142, 127, 114, 121, 129, 120, 117, 135, 120, 137, 149, 116, 124, 134, 136, 119, 120, 124, 109, 117, 123, 122, 122, 130, 119, 120, 113, 108, 121, 125, 129, 137, 117, 139, 127, 137, 123, 127, 133, 136, 133, 115, 133, 128, 120, 125, 126, 125, 116, 136, 142, 143, 116, 138, 112, 131, 136, 127, 126, 114, 137, 115, 120, 137, 124, 144, 121, 134, 113, 126, 117, 113, 119, 105, 124, 127, 139, 137, 130, 117, 103, 121, 119, 117, 127, 143, 125, 119, 130, 124, 122, 122, 127, 153, 115, 117, 143, 125, 137, 115, 137, 131, 120, 111, 111, 132, 128, 121, 144, 141, 122, 132, 132, 122, 113, 135, 121, 117, 141, 135, 114, 114, 109, 147, 126, 130, 141, 120, 120, 118, 128, 121, 140, 120, 118, 110, 122, 110, 120, 102, 118, 133, 135, 128, 114, 120, 135, 134, 136, 120, 128, 128, 109, 137, 133, 127, 129, 130, 139, 115, 126, 140, 101, 129, 131, 131, 136, 120, 132, 108, 122, 132, 138, 116, 109, 118, 118, 134, 122, 125, 116, 131, 113, 122, 137, 138, 112, 116, 126, 138, 132, 123, 120, 127, 131, 116, 124, 119, 122, 120, 122, 130, 137, 133, 119, 120, 123, 121, 130, 137, 122, 120, 103, 145, 115, 106, 121, 123, 117, 138, 119, 122, 138, 133, 132, 111, 113, 115, 126, 129, 121, 127, 132, 129, 137, 133, 132, 123, 125, 126, 117, 117, 133, 110, 125, 126, 124, 110, 124, 118, 132, 125, 129, 121, 132, 125, 131, 157, 128, 114, 141, 146, 139, 129, 136, 116, 136, 123, 145, 122, 141, 121, 122, 126, 103, 117, 137, 122, 114, 127, 112, 131, 130, 117, 122, 141, 112, 130, 118, 125, 124, 132, 119, 129, 118, 121, 122, 127, 111, 139, 137, 122, 124, 128, 122, 122, 118, 125, 114, 117, 121, 122, 123, 131, 129, 144, 125, 119, 132, 133, 132, 139, 111, 108, 127, 122, 114, 129, 111, 121, 137, 116, 128, 127, 125, 118, 125, 159, 130, 134, 129, 142, 137, 115, 141, 139, 110, 127, 130, 119, 123, 117, 113, 141, 124, 131, 112, 134, 128, 128, 132, 124, 120, 101, 124, 120, 119, 131, 129, 128, 124, 130, 118, 139, 132, 144, 121, 114, 123, 132, 121, 113, 121, 134, 131, 132, 116, 108, 125, 124, 122, 117, 115, 118, 133, 125, 141, 140, 132, 126, 122, 138, 114, 140, 121, 114, 113, 112, 127, 153, 128, 114, 146, 132, 131, 143, 114, 127, 123, 117, 125, 122, 131, 132, 135, 130, 118, 127, 134, 125, 132, 139, 125, 111, 125, 131, 125, 150, 127, 133, 117, 117, 131, 142, 120, 124, 130, 134, 142, 124, 114, 126, 112, 126, 127, 108, 127, 123, 124, 123, 126, 138, 128, 125, 138, 124, 140, 121, 129, 124, 125, 123, 114, 122, 133, 134, 120, 119, 133, 134, 104, 134, 113, 123, 130, 127, 130, 132, 123, 132, 119, 124, 121, 139, 128, 126, 130, 130, 137, 122, 124, 120, 120, 113, 147, 131, 129, 120, 142, 134, 122, 133, 132, 115, 125, 142, 129, 141, 140, 111, 126, 129, 134, 124, 125, 135, 131, 127, 128, 121, 138, 120, 121, 119, 116, 130, 128, 119, 129, 108, 119, 127, 112, 140, 133, 114, 121, 122, 102, 125, 142, 121, 125, 147, 116, 138, 127, 115, 138, 115, 111, 132, 114, 112, 109, 107, 129, 116, 121, 110, 126, 135, 115, 107, 128, 136, 131, 133, 140, 106, 135, 135, 129, 124, 127, 130, 139, 130, 122, 118, 126, 152, 138, 131, 147, 134, 111, 114, 123, 136, 128, 122, 131, 138, 127, 125, 134, 123, 123, 119, 125, 117, 120, 149, 118, 125, 127, 131, 131, 138, 110, 144, 123, 116, 112, 133, 126, 119, 128, 139, 135, 121, 131, 132, 113, 112, 127, 137, 122, 136, 114, 112, 128, 149, 139, 99, 125, 127, 124, 155, 146, 125, 121, 106, 134, 124, 128, 118, 121, 111, 134, 124, 112, 141, 146, 111, 128, 134, 133, 128, 128, 134, 131, 129, 134, 126, 129, 127, 147, 123, 144, 121, 134, 124, 115, 119, 128, 134, 135, 125, 128, 131, 137, 147, 133, 119, 118, 144, 107, 112, 148, 118, 117, 142, 109, 137, 133, 138, 129, 155, 136, 125, 126, 127, 116, 127, 138, 148, 130, 111, 129, 141, 114, 148, 133, 133, 127, 116, 141, 113, 133, 134, 134, 134, 130, 115, 133, 125, 149, 127, 119, 132, 133, 126, 141, 140, 126, 120, 126, 131, 138, 127, 111, 124, 131, 116, 135, 115, 125, 128, 141, 129, 125, 134, 121, 119, 112, 133, 123, 117, 130, 116, 122, 125, 136, 130, 128, 139, 159, 107, 114, 132, 131, 119, 125, 135, 130, 118, 147, 121, 121, 134, 134, 146, 119, 144, 117, 125, 124, 114, 130, 101, 141, 125, 117, 126, 110, 112, 117, 144, 119, 120, 123, 118, 103, 121, 126, 114, 116, 114, 124, 120, 116, 128, 142, 121, 137, 118, 108, 131, 119, 128, 129, 152, 125, 126, 120, 133, 116, 120, 136, 132, 110, 145, 130, 138, 116, 122, 121, 110, 119, 127, 120, 127, 140, 119, 133, 113, 116, 120, 124, 116, 118, 117, 133, 141, 117, 130, 145, 118, 134, 130, 136, 128, 121, 129, 139, 120, 125, 107, 107, 126, 131, 114, 130, 118, 119, 122, 124, 127, 138, 148, 120, 135, 126, 135, 130, 137, 115, 138, 134, 120, 135, 147, 120, 115, 115, 117, 115, 125, 142, 127, 138, 130, 122, 116, 155, 133, 112, 121, 135, 135, 112, 131, 131, 117, 106, 122, 116, 120, 122, 121, 126, 124, 122, 136, 106, 133, 140, 138, 139, 111, 131, 115, 135, 122, 122, 140, 115, 131, 148, 117, 112, 125, 137, 125, 109, 126, 126, 143, 115, 129, 123, 136, 117, 119, 141, 101, 96, 115, 126, 125, 113, 142, 125, 145, 115, 121, 122, 126, 120, 138, 116, 127, 125, 134, 118, 136, 128, 115, 112, 129, 121, 113, 112, 129, 134, 108, 123, 122, 116, 129, 137, 121, 137, 126, 121, 138, 128, 116, 128, 122, 144, 123, 120, 132, 153, 108, 129, 127, 131, 113, 118, 124, 114, 128, 119, 142, 144, 132, 123, 112, 105, 138, 128, 133, 135, 131, 139, 130, 122, 116, 130, 152, 126, 137, 137, 121, 126, 120, 126, 125, 121, 114, 121, 133, 127, 142, 124, 116, 128, 125, 121, 123, 123, 133, 116, 135, 115, 120, 134, 124, 125, 126, 116, 117, 124, 134, 131, 120, 141, 127, 133, 131, 124, 123, 137, 137, 141, 117, 115, 103, 133, 113, 125, 112, 147, 133, 112, 148, 119, 136, 127, 141, 115, 121, 134, 123, 127, 113, 126, 135, 125, 134, 117, 117, 129, 128, 141, 119, 121, 128, 126, 113, 121, 107, 122, 126, 128, 145, 129, 146, 145, 146, 124, 126, 144, 102, 119, 116, 120, 142, 121, 126, 117, 117, 93, 107, 129, 133, 131, 128, 134, 131, 126, 136, 134, 133, 133, 137, 122, 135, 124, 128, 134, 133, 117, 120, 136, 123, 127, 126, 132, 123, 129, 118, 129, 114, 135, 118, 118, 137, 131, 121, 110, 122, 135, 124, 125, 130, 139, 131, 118, 140, 132, 129, 112, 133, 138, 135, 128, 114, 116, 121, 113, 136, 120, 119, 120, 114, 134, 143, 112, 135, 115, 142, 121, 125, 141, 126, 117, 122, 122, 127, 117, 140, 129, 116, 119, 122, 122, 129, 115, 123, 85, 145, 128, 128, 131, 101, 108, 125, 95, 131, 137, 134, 119, 132, 116, 127, 138, 123, 125, 122, 140, 129, 108, 114, 112, 129, 127, 118, 131, 124, 121, 126, 139, 136, 114, 123, 145, 148, 127, 138, 134, 123, 129, 137, 142, 135, 143, 121, 107, 109, 122, 129, 119, 128, 146, 129, 114, 125, 145, 147, 140, 151, 123, 134, 126, 129, 124, 124, 135, 145, 143, 118, 136, 130, 113, 119, 106, 115, 108, 130, 122, 144, 132, 130, 121, 115, 123, 150, 112, 136, 120, 135, 121, 115, 153, 138, 136, 139, 151, 117, 123, 137, 126, 134, 128, 126, 137, 138, 122, 142, 122, 129, 113, 136, 117, 115, 120, 151, 122, 130, 112, 129, 127, 129, 120, 116, 122, 109, 121, 128, 135, 124, 120, 128, 116, 107, 128, 129, 113, 122, 125, 123, 125, 133, 126, 134, 124, 108, 132, 136, 130, 126, 112, 137, 132, 119, 124, 142, 138, 137, 124, 124, 131, 122, 113, 122, 116, 127, 113, 125, 111, 126, 117, 145, 110, 130, 135, 113, 134, 124, 110, 112, 133, 127, 127, 139, 127, 138, 125, 134, 118, 129, 133, 125, 124, 117, 137, 119, 154, 124, 110, 113, 141, 116, 122, 128, 123, 127, 123, 126, 138, 125, 131, 130, 121, 136, 76, 146, 103, 117, 126, 112, 129, 131, 126, 124, 134, 109, 127, 121, 125, 129, 128, 134, 127, 111, 130, 126, 125, 118, 131, 116, 146, 112, 121, 132, 128, 126, 113, 115, 129, 144, 153, 128, 112, 120, 107, 132, 120, 135, 123, 124, 113, 129, 150, 128, 123, 109, 134, 116, 142, 118, 139, 121, 121, 119, 124, 142, 112, 108, 148, 114, 134, 135, 155, 116, 123, 155, 141, 132, 122, 128, 134, 127, 130, 127, 129, 109, 125, 133, 123, 103, 128, 128, 123, 106, 135, 135, 129, 127, 135, 121, 107, 140, 108, 134, 132, 128, 133, 122, 131, 131, 122, 134, 114, 127, 131, 119, 124, 111, 122, 127, 130, 121, 123, 124, 142, 125, 129, 110, 98, 126, 120, 138, 146, 128, 99, 126, 135, 142, 124, 138, 129, 114, 112, 126, 137, 131, 115, 120, 134, 99, 130, 124, 117, 127, 109, 134, 140, 127, 135, 119, 139, 152, 116, 118, 118, 130, 119, 120, 129, 123, 102, 127, 126, 128, 103, 118, 108, 117, 146, 132, 112, 109, 134, 122, 128, 118, 134, 136, 120, 125, 134, 140, 131, 139, 138, 125, 113, 128, 131, 113, 150, 120, 130, 126, 141, 127, 128, 128, 133, 123, 121, 107, 113, 137, 134, 130, 123, 115, 116, 150, 130, 130, 126, 125, 105, 127, 138, 124, 135, 135, 111, 134, 126, 127, 128, 123, 112, 131, 112, 125, 136, 118, 133, 137, 112, 116, 124, 128, 134, 130, 139, 128, 144, 106, 110, 110, 123, 120, 133, 129, 116, 122, 129, 136, 107, 105, 129, 125, 132, 111, 121, 104, 116, 132, 131, 108, 125, 145, 116, 134, 117, 126, 107, 117, 101, 112, 119, 134, 115, 133, 131, 158, 145, 125, 114, 133, 129, 130, 121, 133, 131, 121, 115, 133, 148, 111, 144, 116, 128, 127, 117, 123, 128, 134, 135, 130, 123, 130, 122, 112, 128, 135, 115, 123, 133, 129, 112, 145, 114, 133, 136, 123, 128, 125, 117, 119, 118, 132, 124, 131, 125, 105, 117, 145, 119, 125, 140, 116, 125, 151, 125, 127, 138, 120, 126, 130, 121, 116, 148, 117, 130, 137, 127, 127, 127, 123, 118, 139, 129, 112, 136, 144, 123, 122, 104, 131, 117, 128, 126, 117, 133, 111, 109, 147, 119, 124, 112, 110, 133, 122, 133, 120, 133, 131, 121, 133, 149, 111, 132, 122, 132, 121, 104, 118, 124, 120, 135, 127, 132, 126, 124, 125, 122, 115, 111, 125, 126, 111, 126, 129, 130, 145, 117, 133, 117, 133, 128, 126, 131, 126, 117, 125, 134, 132, 124, 121, 143, 97, 145, 120, 117, 115, 111, 121, 127, 118, 114, 141, 116, 133, 122, 139, 121, 113, 118, 116, 143, 133, 120, 111, 111, 129, 105, 111, 131, 131, 136, 118, 133, 127, 137, 139, 123, 138, 117, 129, 126, 113, 119, 123, 123, 134, 117, 122, 138, 140, 128, 132, 136, 126, 138, 106, 134, 128, 119, 125, 114, 136, 128, 122, 129, 123, 144, 124, 126, 106, 121, 131, 123, 137, 137, 135, 114, 129, 130, 116, 123, 127, 123, 134, 125, 131, 109, 106, 123, 132, 125, 135, 137, 116, 129, 114, 137, 122, 124, 122, 132, 141, 130, 124, 137, 126, 101, 134, 148, 114, 121, 130, 109, 115, 102, 139, 124, 123, 133, 100, 126, 118, 115, 122, 130, 122, 122, 126, 105, 138, 130, 124, 134, 136, 118, 135, 134, 127, 120, 119, 123, 114, 132, 130, 141, 142, 128, 118, 125, 122, 115, 110, 139, 136, 134, 116, 126, 111, 118, 135, 123, 133, 112, 110, 135, 116, 145, 106, 117, 121, 111, 115, 142, 98, 131, 133, 142, 111, 135, 123, 137, 128, 132, 127, 129, 119, 111, 138, 121, 124, 115, 128, 122, 128, 131, 125, 138, 131, 127, 109, 110, 149, 133, 110, 124, 135, 136, 123, 124, 116, 125, 127, 123, 125, 114, 122, 119, 113, 122, 120, 127, 84, 127, 114, 119, 141, 130, 118, 131, 120, 87, 165, 110, 120, 130, 123, 105, 124, 123, 141, 115, 150, 90, 118, 113, 111, 125, 107, 135, 125, 121, 109, 117, 119, 143, 131, 124, 120, 135, 134, 130, 136, 128, 124, 126, 131, 125, 150, 108, 127, 113, 131, 122, 118, 129, 121, 144, 142, 130, 120, 131, 120, 120, 121, 130, 132, 122, 125, 99, 117, 120, 110, 126, 134, 147, 126, 133, 120, 123, 137, 165, 130, 143, 119, 117, 118, 114, 119, 122, 106, 115, 128, 116, 121, 102, 123, 139, 125, 116, 122, 133, 121, 129, 112, 124, 129, 154, 123, 122, 105, 131, 128, 123, 121, 110, 111, 113, 145, 114, 109, 135, 124, 146, 119, 116, 133, 129, 128, 135, 126, 132, 119, 138, 123, 121, 121, 121, 142, 131, 134, 111, 132, 141, 119, 131, 116, 137, 136, 120, 124, 131, 129, 130, 122, 138, 129, 120, 129, 129, 127, 119, 120, 111, 125, 153, 117, 123, 132, 136, 118, 127, 131, 128, 124, 126, 133, 129, 125, 137, 126, 112, 122, 127, 116, 130, 123, 130, 124, 116, 123, 116, 132, 125, 142, 130, 124, 134, 117, 125, 125, 130, 133, 124, 142, 135, 134, 139, 138, 142, 121, 147, 140, 125, 101, 134, 125, 124, 115, 139, 111, 107, 122, 132, 122, 131, 127, 103, 120, 120, 133, 114, 123, 96, 119, 122, 100, 113, 134, 117, 128, 124, 115, 119, 122, 118, 148, 123, 151, 131, 120, 110, 138, 133, 130, 109, 112, 126, 140, 128, 123, 119, 116, 116, 116, 135, 125, 85, 148, 120, 124, 124, 127, 123, 117, 137, 133, 109, 136, 121, 127, 93, 128, 117, 115, 126, 131, 133, 122, 125, 131, 132, 136, 118, 133, 120, 124, 122, 146, 123, 128, 105, 119, 116, 133, 143, 129, 116, 117, 123, 129, 134, 109, 125, 113, 134, 143, 144, 137, 126, 137, 130, 124, 124, 123, 128, 119, 129, 119, 145, 138, 112, 107, 119, 116, 108, 120, 128, 134, 125, 109, 121, 124, 133, 128, 110, 126, 119, 121, 113, 133, 124, 160, 115, 118, 134, 124, 108, 132, 128, 129, 127, 137, 124, 110, 126, 118, 150, 144, 116, 132, 132, 119, 120, 127, 104, 115, 122, 127, 143, 125, 120, 135, 104, 113, 133, 126, 132, 110, 130, 126, 120, 122, 122, 112, 117, 118, 121, 137, 127, 118, 113, 130, 119, 137, 135, 121, 124, 138, 119, 117, 129, 125, 120, 123, 114, 133, 122, 124, 136, 113, 139, 134, 127, 136, 126, 129, 144, 137, 101, 109, 117, 152, 97, 111, 112, 120, 119, 130, 116, 130, 132, 130, 110, 126, 145, 134, 126, 139, 137, 128, 143, 130, 145, 120, 150, 147, 136, 129, 126, 136, 125, 132, 122, 157, 130, 133, 130, 142, 126, 121, 133, 127, 132, 121, 122, 133, 131, 114, 113, 123, 117, 111, 119, 135, 139, 126, 125, 139, 133, 119, 126, 124, 134, 135, 123, 118, 121, 138, 133, 153, 127, 126, 130, 142, 114, 143, 135, 139, 119, 117, 139, 115, 133, 123, 144, 133, 136, 112, 112, 146, 140, 126, 97, 125, 127, 135, 122, 132, 113, 122, 122, 123, 142, 136, 133, 134, 112, 129, 134, 138, 137, 126, 121, 140, 140, 137, 135, 116, 143, 132, 111, 129, 121, 121, 119, 126, 115, 124, 119, 123, 131, 119, 141, 135, 116, 116, 137, 114, 136, 118, 115, 135, 122, 124, 137, 126, 143, 140, 133, 110, 117, 126, 94, 140, 126, 140, 132, 132, 134, 108, 115, 119, 115, 133, 135, 105, 125, 118, 117, 118, 134, 121, 116, 131, 143, 131, 114, 119, 121, 146, 108, 142, 133, 133, 119, 116, 127, 162, 139, 112, 134, 124, 134, 146, 123, 117, 123, 113, 123, 118, 105, 143, 123, 112, 111, 106, 115, 128, 125, 135, 102, 115, 147, 120, 120, 107, 132, 122, 138, 112, 120, 125, 131, 120, 127, 121, 124, 119, 117, 117, 125, 143, 120, 138, 137, 126, 112, 122, 139, 134, 115, 118, 136, 123, 125, 130, 124, 96, 148, 120, 118, 126, 111, 110, 92, 102, 130, 132, 134, 118, 137, 135, 115, 126, 109, 131, 123, 131, 128, 129, 128, 116, 129, 126, 120, 111, 120, 145, 122, 103, 126, 127, 131, 131, 115, 121, 145, 140, 134, 125, 105, 135, 108, 140, 127, 116, 128, 123, 107, 139, 103, 118, 106, 136, 134, 134, 109, 141, 122, 137, 119, 151, 123, 130, 127, 129, 133, 118, 139, 124, 123, 130, 125, 126, 146, 127, 128, 141, 147, 113, 127, 139, 121, 121, 122, 132, 120, 119, 126, 135, 133, 122, 117, 126, 118, 111, 126, 124, 148, 133, 134, 125, 125, 123, 135, 108, 135, 117, 113, 120, 116, 107, 116, 131, 132, 129, 123, 123, 119, 128, 147, 126, 110, 77, 112, 127, 125, 126, 142, 113, 130, 134, 114, 126, 107, 112, 145, 122, 126, 142, 111, 123, 136, 137, 127, 135, 121, 118, 135, 139, 117, 111, 124, 126, 151, 131, 129, 145, 118, 126, 131, 127, 115, 137, 134, 127, 144, 121, 136, 112, 116, 122, 125, 117, 127, 127, 126, 123, 116, 123, 154, 108, 138, 129, 116, 108, 133, 114, 138, 116, 117, 130, 133, 114, 134, 120, 117, 129, 125, 109, 141, 135, 128, 109, 138, 108, 112, 118, 116, 130, 132, 119, 127, 107, 122, 126, 123, 116, 118, 134, 121, 140, 118, 134, 119, 120, 118, 124, 108, 123, 109, 124, 115, 113, 118, 108, 145, 132, 128, 140, 126, 114, 122, 126, 120, 120, 129, 131, 115, 131, 123, 126, 112, 136, 126, 123, 139, 133, 132, 130, 125, 114, 133, 137, 123, 118, 138, 116, 123, 142, 127, 124, 125, 129, 134, 117, 139, 118, 122, 137, 127, 123, 132, 107, 136, 126, 132, 140, 149, 127, 129, 123, 119, 133, 131, 121, 118, 123, 121, 129, 125, 134, 136, 140, 123, 148, 125, 124, 109, 127, 126, 117, 140, 114, 113, 106, 128, 122, 139, 129, 129, 145, 122, 148, 136, 120, 129, 138, 115, 148, 124, 121, 127, 129, 123, 123, 136, 126, 138, 130, 130, 135, 134, 124, 100, 122, 129, 132, 141, 131, 126, 124, 138, 120, 117, 133, 122, 120, 126, 120, 119, 123, 129, 119, 127, 105, 113, 118, 127, 126, 134, 136, 128, 149, 127, 128, 123, 129, 124, 116, 119, 121, 122, 128, 105, 106, 141, 134, 120, 134, 111, 123, 117, 124, 103, 111, 144, 107, 127, 134, 124, 134, 125, 125, 112, 120, 130, 116, 129, 144, 140, 119, 134, 119, 118, 123, 138, 133, 127, 125, 134, 130, 121, 126, 117, 121, 125, 128, 128, 126, 101, 139, 142, 106, 106, 124, 129, 118, 121, 135, 132, 119, 120, 121, 131, 121, 118, 122, 122, 142, 123, 119, 106, 126, 123, 131, 123, 135, 121, 118, 135, 126, 137, 115, 134, 128, 135, 125, 130, 120, 123, 119, 102, 111, 125, 122, 111, 124, 134, 124, 144, 135, 126, 126, 127, 136, 142, 124, 122, 131, 119, 115, 116, 140, 124, 117, 127, 128, 140, 139, 120, 127, 132, 144, 117, 140, 135, 142, 118, 133, 146, 121, 147, 125, 134, 136, 125, 129, 138, 129, 132, 117, 141, 123, 120, 107, 114, 130, 124, 144, 125, 132, 116, 141, 116, 128, 131, 123, 111, 129, 134, 113, 120, 136, 126, 141, 141, 136, 146, 84, 128, 131, 132, 129, 135, 116, 126, 102, 127, 119, 137, 128, 121, 118, 135, 121, 132, 115, 130, 113, 126, 126, 124, 115, 137, 120, 116, 126, 119, 118, 117, 116, 112, 130, 134, 126, 124, 127, 114, 133, 137, 107, 125, 122, 112, 136, 134, 114, 113, 105, 120, 146, 131, 132, 119, 127, 120, 143, 141, 128, 131, 124, 137, 109, 125, 115, 129, 117, 114, 120, 126, 109, 135, 126, 111, 118, 127, 119, 116, 127, 137, 132, 126, 113, 137, 125, 125, 133, 131, 128, 115, 110, 124, 122, 120, 136, 113, 119, 128, 130, 130, 151, 129, 124, 125, 133, 118, 129, 132, 129, 115, 141, 130, 135, 130, 106, 128, 132, 118, 126, 129, 137, 113, 136, 93, 116, 118, 113, 123, 133, 118, 130, 112, 122, 122, 141, 119, 125, 121, 130, 110, 128, 115, 116, 151, 144, 121, 122, 121, 120, 115, 124, 128, 127, 138, 112, 105, 122, 111, 126, 121, 136, 135, 123, 120, 124, 103, 107, 137, 135, 116, 130, 127, 120, 124, 121, 141, 112, 151, 123, 126, 125, 112, 118, 132, 135, 124, 111, 125, 138, 119, 124, 138, 121, 128, 134, 131, 134, 139, 128, 122, 120, 124, 121, 127, 142, 135, 117, 129, 155, 108, 119, 106, 135, 130, 124, 123, 124, 119, 129, 134, 121, 139, 108, 122, 136, 133, 112, 123, 126, 116, 127, 126, 132, 118, 134, 128, 123, 126, 134, 142, 130, 136, 134, 148, 125, 123, 100, 133, 112, 105, 114, 119, 124, 130, 124, 128, 129, 150, 112, 134, 142, 118, 124, 124, 119, 125, 132, 102, 111, 122, 130, 131, 123, 129, 119, 108, 130, 133, 113, 154, 124, 122, 132, 131, 118, 120, 133, 134, 122, 132, 114, 124, 108, 118, 133, 125, 107, 115, 120, 135, 127, 135, 108, 140, 130, 115, 124, 136, 133, 120, 143, 129, 149, 113, 131, 110, 122, 120, 123, 127, 131, 127, 134, 125, 123, 126, 126, 128, 115, 117, 136, 130, 119, 133, 124, 124, 141, 121, 126, 118, 144, 118, 128, 137, 123, 118, 118, 119, 109, 124, 108, 127, 131, 120, 131, 121, 117, 136, 131, 126, 116, 137, 129, 118, 125, 123, 115, 132, 122, 127, 124, 130, 131, 117, 125, 142, 125, 130, 134, 130, 121, 133, 143, 114, 120, 140, 125, 127, 127, 142, 124, 122, 132, 120, 138, 138, 123, 108, 124, 113, 111, 140, 118, 140, 122, 125, 117, 135, 131, 122, 130, 131, 122, 134, 134, 133, 130, 132, 119, 133, 119, 117, 120, 118, 130, 114, 125, 117, 122, 128, 118, 116, 133, 120, 134, 130, 123, 130, 130, 109, 125, 126, 140, 124, 129, 138, 119, 121, 114, 125, 116, 111, 137, 123, 139, 143, 111, 141, 135, 143, 140, 138, 123, 123, 124, 116, 126, 124, 124, 118, 122, 144, 124, 131, 125, 126, 134, 112, 127, 132, 121, 121, 146, 123, 140, 122, 117, 122, 130, 132, 130, 129, 125, 123, 117, 117, 118, 116, 121, 134, 134, 119, 121, 124, 126, 121, 120, 121, 135, 146, 139, 120, 112, 122, 117, 137, 132, 136, 139, 134, 134, 135, 131, 117, 111, 137, 124, 103, 118, 127, 130, 123, 142, 121, 127, 131, 131, 126, 137, 121, 142, 133, 141, 107, 122, 138, 140, 130, 149, 129, 126, 122, 127, 119, 144, 133, 147, 145, 102, 118, 135, 114, 118, 130, 110, 126, 124, 128, 121, 148, 120, 134, 138, 143, 140, 133, 110, 116, 128, 123, 133, 117, 129, 124, 130, 125, 125, 108, 135, 136, 116, 128, 122, 124, 112, 142, 113, 135, 130, 116, 125, 130, 127, 139, 124, 105, 143, 114, 120, 140, 126, 133, 120, 134, 134, 120, 113, 121, 119, 114, 127, 112, 117, 127, 139, 144, 120, 112, 128, 135, 133, 124, 124, 139, 114, 110, 132, 108, 122, 119, 115, 117, 119, 136, 134, 133, 125, 123, 128, 127, 123, 119, 118, 131, 131, 113, 116, 135, 124, 111, 118, 117, 121, 122, 132, 117, 123, 119, 115, 133, 120, 119, 122, 115, 110, 125, 121, 126, 140, 132, 127, 138, 126, 143, 123, 100, 100, 124, 137, 131, 114, 113, 133, 126, 118, 127, 120, 119, 124, 125, 133, 119, 106, 109, 130, 139, 121, 123, 109, 119, 112, 115, 122, 140, 120, 118, 112, 120, 122, 127, 112, 132, 124, 116, 126, 127, 110, 105, 142, 144, 112, 132, 119, 133, 122, 115, 148, 133, 100, 127, 128, 102, 120, 139, 141, 137, 115, 133, 137, 143, 111, 126, 123, 118, 128, 118, 118, 135, 129, 114, 129, 113, 144, 125, 111, 126, 129, 124, 121, 118, 131, 109, 130, 117, 129, 108, 118, 118, 114, 115, 131, 123, 125, 124, 123, 132, 137, 136, 123, 112, 129, 127, 138, 134, 129, 116, 124, 127, 130, 138, 110, 124, 118, 137, 133, 124, 138, 148, 130, 124, 117, 126, 126, 114, 119, 130, 130, 123, 114, 112, 99, 121, 123, 119, 122, 116, 139, 129, 116, 111, 131, 120, 131, 119, 111, 121, 130, 144, 110, 109, 129, 124, 143, 123, 141, 146, 128, 118, 113, 142, 119, 124, 124, 145, 115, 110, 123, 138, 132, 129, 138, 119, 136, 128, 137, 127, 109, 132, 148, 137, 122, 114, 117, 135, 124, 135, 127, 118, 135, 133, 111, 121, 129, 113, 97, 137, 132, 117, 133, 137, 110, 132, 114, 104, 136, 134, 129, 132, 105, 123, 130, 119, 140, 120, 121, 127, 129, 118, 151, 119, 138, 129, 128, 125, 134, 129, 113, 117, 109, 133, 127, 125, 114, 134, 146, 125, 128, 127, 143, 136, 123, 113, 131, 141, 138, 131, 123, 142, 114, 124, 111, 110, 135, 116, 138, 129, 123, 125, 119, 133, 107, 127, 121, 112, 129, 120, 127, 130, 137, 118, 130, 128, 116, 106, 134, 136, 123, 139, 134, 123, 134, 123, 126, 122, 129, 122, 124, 118, 139, 112, 123, 135, 132, 154, 125, 105, 114, 116, 117, 112, 119, 131, 138, 116, 117, 148, 127, 120, 136, 125, 135, 124, 125, 120, 137, 94, 146, 124, 114, 124, 130, 139, 127, 117, 127, 120, 105, 109, 132, 125, 137, 121, 139, 131, 118, 130, 139, 130, 122, 144, 130, 138, 105, 124, 110, 132, 128, 127, 121, 112, 151, 134, 146, 133, 128, 119, 128, 134, 105, 122, 125, 130, 119, 122, 111, 128, 128, 126, 141, 130, 130, 147, 115, 141, 142, 120, 126, 129, 127, 124, 108, 139, 139, 132, 133, 129, 132, 115, 143, 120, 114, 116, 134, 116, 125, 136, 118, 122, 122, 116, 126, 128, 129, 117, 119, 109, 121, 148, 133, 103, 138, 117, 133, 125, 116, 133, 127, 127, 125, 113, 109, 141, 138, 111, 117, 111, 119, 144, 126, 110, 121, 124, 141, 124, 132, 132, 118, 136, 132, 131, 116, 126, 115, 124, 146, 121, 123, 129, 133, 103, 134, 122, 125, 126, 127, 122, 115, 132, 128, 135, 116, 126, 124, 117, 120, 118, 128, 128, 114, 110, 117, 126, 137, 127, 128, 117, 128, 131, 127, 130, 127, 115, 113, 124, 117, 138, 143, 135, 148, 129, 118, 134, 118, 128, 116, 130, 130, 126, 135, 124, 129, 116, 118, 146, 142, 133, 114, 132, 107, 123, 139, 124, 127, 124, 131, 141, 130, 122, 116, 126, 131, 130, 118, 127, 150, 119, 119, 103, 154, 142, 136, 112, 133, 128, 108, 115, 119, 119, 126, 129, 116, 119, 124, 116, 110, 112, 126, 139, 138, 137, 142, 126, 126, 144, 121, 126, 120, 127, 109, 134, 116, 139, 115, 124, 119, 144, 117, 114, 137, 135, 119, 129, 120, 122, 128, 106, 119, 114, 109, 130, 127, 130, 122, 126, 97, 108, 112, 133, 132, 131, 139, 122, 96, 111, 130, 117, 139, 119, 127, 124, 135, 110, 122, 127, 125, 110, 125, 141, 142, 125, 123, 138, 126, 134, 131, 124, 127, 122, 108, 113, 126, 121, 130, 132, 129, 122, 130, 112, 129, 110, 118, 115, 121, 105, 116, 116, 123, 117, 135, 105, 126, 122, 121, 128, 135, 115, 130, 125, 132, 126, 131, 113, 116, 104, 118, 136, 122, 139, 130, 128, 139, 118, 96, 119, 121, 120, 146, 141, 109, 123, 122, 121, 127, 134, 131, 144, 118, 147, 126, 139, 126, 119, 124, 128, 128, 126, 124, 132, 139, 137, 131, 116, 122, 127, 131, 126, 113, 129, 119, 127, 123, 122, 141, 132, 121, 121, 130, 132, 119, 128, 128, 147, 113, 110, 116, 128, 125, 116, 128, 113, 122, 123, 163, 116, 136, 135, 107, 122, 134, 133, 119, 143, 131, 134, 124, 134, 132, 134, 137, 125, 115, 135, 141, 141, 118, 127, 118, 123, 132, 115, 100, 126, 116, 136, 131, 122, 135, 129, 110, 136, 129, 129, 130, 131, 125, 133, 149, 115, 142, 134, 107, 109, 136, 125, 112, 134, 105, 145, 126, 141, 120, 113, 124, 130, 126, 126, 129, 137, 113, 109, 114, 120, 132, 139, 115, 151, 123, 119, 124, 127, 128, 106, 124, 124, 123, 111, 137, 130, 127, 124, 149, 117, 133, 132, 111, 122, 130, 130, 135, 114, 114, 107, 134, 125, 129, 123, 124, 124, 124, 122, 145, 119, 119, 130, 116, 106, 120, 123, 132, 125, 115, 131, 131, 133, 124, 144, 142, 125, 108, 131, 121, 156, 122, 144, 121, 127, 131, 136, 123, 138, 126, 126, 120, 115, 132, 164, 122, 137, 119, 112, 130, 128, 131, 124, 119, 137, 125, 126, 126, 140, 125, 151, 136, 127, 131, 125, 102, 96, 119, 111, 118, 114, 133, 132, 132, 122, 113, 109, 117, 95, 121, 119, 131, 109, 123, 113, 117, 126, 128, 135, 137, 103, 114, 120, 132, 139, 125, 127, 117, 104, 116, 127, 134, 122, 108, 135, 124, 128, 135, 111, 157, 122, 127, 149, 127, 125, 126, 114, 128, 125, 115, 132, 136, 134, 136, 123, 124, 102, 122, 119, 120, 119, 127, 130, 126, 100, 125, 107, 119, 130, 128, 121, 138, 118, 112, 126, 124, 112, 120, 135, 131, 134, 123, 129, 101, 133, 130, 117, 115, 128, 145, 121, 125, 125, 118, 112, 107, 127, 135, 137, 112, 130, 126, 129, 127, 132, 129, 127, 131, 127, 115, 126, 128, 129, 117, 131, 138, 127, 132, 142, 128, 129, 122, 128, 121, 115, 123, 127, 134, 120, 122, 134, 135, 128, 144, 114, 130, 127, 131, 111, 117, 122, 133, 120, 120, 114, 125, 122, 143, 134, 124, 132, 132, 128, 112, 114, 112, 126, 124, 115, 129, 132, 146, 115, 120, 119, 129, 114, 117, 130, 116, 139, 114, 129, 112, 118, 124, 117, 112, 119, 139, 140, 117, 125, 132, 121, 123, 136, 141, 125, 138, 126, 130, 125, 131, 136, 111, 130, 133, 124, 153, 121, 118, 133, 139, 134, 123, 119, 126, 139, 121, 123, 124, 125, 133, 134, 106, 133, 124, 103, 117, 116, 131, 127, 112, 142, 135, 138, 128, 131, 121, 137, 115, 135, 119, 148, 117, 127, 128, 141, 151, 105, 119, 137, 133, 122, 135, 137, 121, 120, 116, 119, 133, 107, 120, 122, 140, 124, 138, 139, 133, 129, 139, 125, 131, 136, 122, 134, 117, 119, 108, 123, 142, 121, 123, 128, 112, 114, 136, 150, 120, 129, 119, 135, 131, 135, 105, 121, 143, 118, 129, 123, 106, 125, 127, 126, 127, 114, 130, 128, 118, 120, 129, 145, 132, 127, 132, 112, 125, 120, 122, 124, 116, 127, 131, 125, 109, 124, 124, 126, 129, 110, 127, 132, 101, 128, 126, 141, 120, 125, 125, 131, 133, 131, 125, 126, 122, 143, 122, 133, 113, 128, 130, 125, 119, 124, 112, 138, 127, 123, 115, 126, 120, 133, 113, 141, 125, 98, 117, 112, 119, 133, 142, 114, 138, 137, 131, 112, 132, 130, 122, 141, 119, 119, 130, 124, 120, 137, 142, 120, 116, 124, 137, 104, 124, 148, 129, 118, 128, 141, 132, 125, 112, 132, 130, 127, 126, 141, 133, 117, 117, 133, 130, 132, 123, 126, 134, 112, 125, 131, 127, 121, 128, 105, 115, 132, 121, 133, 130, 137, 128, 139, 130, 123, 135, 123, 135, 104, 133, 127, 143, 129, 136, 108, 122, 122, 122, 129, 127, 124, 130, 113, 129, 122, 109, 124, 121, 112, 97, 129, 133, 125, 117, 145, 124, 121, 125, 106, 128, 125, 108, 128, 121, 119, 132, 105, 148, 138, 110, 137, 120, 135, 131, 120, 129, 121, 136, 140, 129, 126, 132, 125, 135, 137, 128, 140, 120, 137, 132, 122, 125, 118, 114, 105, 126, 127, 123, 131, 124, 129, 141, 122, 133, 132, 131, 125, 127, 134, 122, 123, 137, 133, 120, 137, 137, 126, 109, 133, 125, 129, 127, 144, 91, 109, 116, 123, 111, 123, 117, 133, 108, 112, 126, 124, 141, 120, 139, 125, 124, 123, 117, 114, 114, 134, 110, 112, 132, 117, 128, 119, 116, 145, 121, 110, 126, 131, 142, 131, 138, 117, 126, 125, 120, 137, 126, 135, 129, 120, 115, 113, 123, 119, 113, 121, 112, 121, 131, 121, 121, 115, 135, 125, 131, 113, 140, 116, 134, 134, 109, 119, 107, 101, 117, 132, 143, 126, 128, 133, 121, 119, 141, 132, 144, 120, 131, 116, 123, 124, 136, 128, 123, 110, 153, 134, 122, 132, 110, 127, 134, 138, 128, 124, 139, 135, 129, 119, 107, 124, 141, 127, 134, 128, 124, 140, 117, 129, 125, 139, 110, 113, 148, 107, 136, 133, 148, 117, 112, 115, 111, 129, 107, 124, 127, 119, 122, 120, 144, 122, 132, 120, 121, 122, 140, 126, 105, 125, 127, 122, 133, 121, 123, 128, 113, 120, 118, 116, 127, 146, 118, 130, 134, 144, 137, 126, 123, 133, 123, 110, 128, 117, 112, 141, 118, 124, 132, 116, 134, 144, 128, 137, 123, 121, 138, 115, 120, 143, 121, 135, 129, 105, 134, 117, 127, 116, 124, 142, 118, 149, 112, 124, 126, 121, 132, 110, 109, 137, 122, 117, 110, 129, 124, 114, 124, 143, 143, 133, 128, 110, 129, 126, 114, 142, 119, 134, 112, 125, 126, 143, 123, 136, 124, 157, 111, 114, 123, 130, 135, 139, 127, 109, 121, 113, 128, 126, 117, 123, 124, 119, 136, 143, 126, 123, 130, 112, 132, 133, 131, 117, 133, 124, 136, 128, 119, 110, 123, 131, 134, 160, 127, 115, 131, 127, 121, 127, 135, 141, 125, 134, 114, 110, 120, 134, 139, 139, 131, 124, 126, 123, 117, 132, 119, 113, 141, 120, 125, 119, 124, 120, 133, 123, 112, 127, 84, 141, 122, 120, 139, 121, 138, 111, 113, 121, 135, 117, 132, 136, 125, 139, 131, 126, 154, 125, 133, 120, 133, 129, 142, 119, 121, 126, 109, 110, 136, 142, 147, 125, 117, 143, 121, 136, 141, 133, 124, 127, 132, 117, 123, 123, 124, 124, 135, 129, 137, 122, 121, 123, 113, 131, 118, 138, 123, 138, 123, 135, 119, 117, 135, 127, 133, 125, 121, 128, 116, 116, 128, 125, 128, 131, 134, 127, 129, 116, 111, 133, 125, 135, 130, 135, 138, 134, 122, 124, 129, 124, 119, 114, 116, 115, 109, 146, 130, 118, 142, 127, 123, 126, 137, 119, 123, 111, 119, 129, 133, 117, 120, 122, 115, 126, 139, 115, 123, 129, 116, 117, 121, 122, 124, 145, 127, 126, 122, 134, 117, 138, 112, 132, 133, 122, 144, 139, 133, 124, 103, 128, 132, 121, 118, 127, 125, 132, 116, 133, 118, 128, 117, 117, 126, 120, 126, 113, 141, 121, 127, 121, 124, 116, 140, 131, 134, 121, 136, 121, 133, 126, 138, 113, 127, 138, 120, 117, 123, 127, 108, 135, 119, 122, 128, 120, 126, 132, 120, 129, 128, 140, 102, 117, 127, 125, 128, 139, 121, 125, 144, 123, 152, 138, 118, 107, 120, 117, 127, 121, 122, 123, 117, 115, 118, 140, 127, 116, 120, 125, 137, 112, 139, 125, 123, 115, 118, 139, 116, 140, 119, 113, 109, 135, 137, 119, 133, 137, 152, 127, 130, 131, 117, 115, 111, 133, 136, 117, 129, 113, 110, 122, 127, 112, 140, 131, 124, 120, 135, 129, 119, 122, 115, 115, 117, 122, 130, 125, 131, 124, 135, 129, 96, 122, 121, 131, 123, 119, 120, 116, 100, 134, 140, 130, 128, 114, 126, 123, 125, 113, 120, 147, 114, 142, 148, 125, 119, 127, 129, 99, 122, 139, 127, 147, 160, 118, 123, 118, 132, 109, 134, 118, 96, 110, 126, 114, 114, 128, 133, 107, 116, 106, 135, 118, 140, 130, 127, 138, 126, 124, 118, 112, 132, 92, 135, 123, 128, 117, 129, 132, 120, 134, 120, 135, 136, 138, 133, 114, 136, 124, 124, 104, 133, 125, 133, 132, 115, 135, 128, 139, 127, 132, 141, 112, 133, 135, 132, 116, 124, 118, 124, 120, 118, 133, 120, 118, 130, 132, 122, 116, 129, 139, 129, 124, 131, 131, 124, 127, 128, 133, 131, 126, 124, 134, 123, 132, 121, 120, 128, 135, 123, 122, 110, 120, 133, 119, 115, 129, 113, 125, 123, 121, 113, 129, 118, 146, 111, 110, 127, 132, 126, 131, 138, 128, 140, 123, 122, 107, 120, 134, 124, 109, 135, 146, 113, 123, 119, 116, 119, 125, 128, 115, 138, 129, 114, 113, 123, 130, 142, 127, 118, 134, 131, 117, 126, 122, 134, 119, 136, 123, 132, 116, 112, 116, 118, 132, 144, 129, 124, 133, 126, 115, 129, 128, 120, 113, 125, 109, 127, 124, 130, 128, 140, 117, 121, 116, 124, 127, 128, 120, 132, 129, 122, 116, 131, 123, 130, 125, 136, 128, 132, 135, 122, 111, 133, 128, 112, 134, 125, 123, 127, 118, 112, 147, 96, 129, 140, 121, 129, 121, 136, 124, 106, 121, 136, 113, 110, 135, 121, 141, 122, 133, 135, 119, 108, 132, 137, 128, 125, 142, 131, 114, 132, 122, 122, 116, 111, 130, 111, 127, 112, 123, 124, 111, 128, 131, 129, 122, 99, 132, 149, 110, 111, 122, 122, 129, 119, 128, 114, 118, 128, 101, 106, 116, 127, 123, 121, 123, 125, 110, 115, 134, 130, 115, 126, 151, 120, 135, 117, 121, 127, 139, 123, 102, 107, 123, 111, 118, 122, 136, 120, 121, 112, 120, 106, 125, 129, 139, 131, 130, 120, 128, 111, 127, 126, 126, 125, 137, 116, 128, 130, 140, 143, 132, 114, 118, 115, 127, 129, 136, 130, 158, 113, 125, 144, 130, 123, 121, 136, 129, 121, 125, 109, 138, 129, 113, 138, 117, 161, 117, 128, 124, 124, 123, 108, 118, 119, 111, 138, 111, 134, 132, 133, 133, 127, 129, 130, 140, 141, 137, 125, 132, 125, 130, 122, 132, 107, 131, 138, 125, 110, 124, 137, 117, 122, 130, 132, 126, 122, 126, 143, 122, 136, 124, 135, 126, 125, 142, 116, 106, 130, 132, 125, 119, 118, 123, 122, 120, 146, 109, 111, 141, 119, 116, 132, 128, 116, 126, 131, 122, 108, 122, 121, 130, 136, 104, 146, 130, 125, 109, 134, 122, 139, 137, 145, 121, 133, 118, 127, 125, 113, 130, 125, 138, 124, 106, 137, 116, 119, 124, 131, 129, 121, 127, 110, 120, 118, 125, 140, 129, 121, 120, 118, 129, 135, 130, 142, 109, 130, 125, 128, 133, 126, 132, 124, 120, 132, 114, 125, 121, 128, 121, 130, 131, 118, 125, 125, 150, 130, 120, 119, 141, 116, 111, 113, 126, 129, 122, 126, 113, 139, 134, 112, 130, 133, 121, 125, 130, 125, 133, 125, 115, 133, 131, 118, 105, 121, 118, 124, 138, 128, 125, 115, 134, 123, 147, 130, 118, 129, 116, 119, 135, 118, 132, 138, 128, 116, 129, 123, 128, 120, 125, 120, 130, 128, 134, 121, 126, 134, 145, 123, 137, 106, 119, 132, 110, 139, 125, 113, 122, 123, 120, 124, 137, 135, 114, 144, 121, 136, 114, 119, 130, 122, 109, 133, 126, 130, 127, 140, 131, 123, 136, 109, 120, 110, 95, 123, 122, 115, 132, 129, 117, 127, 126, 110, 121, 125, 129, 130, 127, 108, 143, 116, 123, 109, 121, 119, 133, 112, 116, 117, 113, 128, 122, 144, 110, 134, 128, 133, 117, 94, 122, 153, 119, 116, 127, 138, 112, 143, 125, 120, 113, 114, 130, 114, 149, 128, 127, 113, 118, 127, 127, 160, 112, 127, 114, 140, 121, 112, 112, 105, 121, 118, 123, 133, 108, 133, 127, 131, 119, 140, 127, 122, 143, 119, 113, 131, 132, 123, 140, 122, 126, 124, 122, 130, 133, 131, 138, 139, 138, 132, 115, 148, 124, 135, 129, 119, 123, 125, 126, 121, 132, 117, 122, 111, 128, 134, 134, 136, 131, 114, 124, 150, 147, 107, 122, 135, 122, 113, 114, 134, 115, 130, 121, 128, 129, 121, 131, 126, 108, 137, 107, 133, 134, 135, 127, 131, 123, 116, 111, 134, 127, 135, 118, 126, 129, 125, 98, 125, 135, 134, 127, 127, 118, 121, 106, 109, 122, 144, 118, 116, 119, 138, 115, 113, 140, 107, 136, 127, 115, 124, 114, 116, 136, 126, 123, 132, 112, 118, 136, 129, 121, 122, 124, 105, 110, 146, 135, 134, 135, 117, 128, 129, 117, 116, 122, 134, 116, 116, 123, 140, 139, 133, 105, 125, 116, 128, 117, 115, 104, 119, 120, 125, 125, 115, 128, 149, 149, 129, 118, 129, 142, 129, 126, 137, 104, 124, 127, 129, 122, 128, 144, 134, 126, 125, 124, 137, 139, 123, 143, 124, 127, 122, 138, 128, 118, 109, 135, 126, 123, 113, 131, 124, 124, 129, 113, 139, 112, 129, 129, 123, 121, 115, 128, 119, 131, 140, 126, 136, 123, 114, 140, 135, 138, 119, 121, 121, 116, 121, 131, 116, 142, 111, 142, 118, 131, 123, 130, 114, 112, 119, 128, 123, 126, 123, 119, 123, 115, 136, 117, 127, 118, 133, 135, 124, 113, 116, 114, 128, 142, 145, 110, 126, 112, 130, 131, 130, 107, 115, 127, 118, 129, 116, 120, 133, 143, 139, 117, 138, 128, 124, 143, 140, 128, 118, 132, 139, 121, 106, 129, 129, 120, 144, 119, 116, 133, 129, 123, 115, 133, 120, 116, 111, 137, 135, 117, 126, 122, 129, 118, 131, 115, 115, 117, 134, 122, 105, 144, 127, 102, 128, 109, 112, 141, 117, 138, 127, 126, 122, 126, 124, 126, 114, 110, 113, 135, 123, 123, 126, 142, 107, 131, 113, 122, 126, 139, 123, 123, 132, 110, 125, 131, 126, 130, 118, 119, 133, 127, 118, 128, 127, 109, 134, 130, 105, 134, 142, 114, 111, 121, 134, 140, 138, 134, 117, 121, 131, 124, 127, 109, 112, 133, 135, 135, 131, 123, 145, 106, 127, 122, 127, 140, 114, 134, 118, 126, 120, 117, 111, 119, 123, 126, 136, 138, 127, 115, 128, 146, 112, 131, 110, 128, 122, 127, 131, 129, 134, 101, 135, 129, 116, 106, 136, 129, 127, 111, 133, 133, 111, 120, 129, 123, 131, 117, 125, 124, 108, 137, 122, 131, 140, 131, 131, 129, 135, 122, 132, 120, 111, 122, 122, 121, 119, 134, 126, 119, 103, 133, 116, 127, 121, 128, 115, 113, 134, 123, 121, 130, 131, 136, 146, 140, 133, 141, 126, 133, 120, 124, 137, 121, 124, 119, 117, 120, 132, 117, 123, 149, 122, 135, 132, 123, 109, 116, 124, 120, 141, 114, 121, 127, 142, 108, 127, 124, 125, 116, 104, 128, 136, 119, 134, 117, 138, 122, 122, 118, 137, 137, 146, 123, 126, 122, 102, 116, 122, 121, 114, 117, 139, 126, 125, 110, 115, 116, 128, 113, 139, 126, 128, 136, 120, 104, 121, 114, 139, 144, 134, 121, 133, 131, 124, 139, 150, 150, 107, 144, 126, 112, 115, 120, 119, 116, 129, 136, 117, 123, 124, 129, 131, 117, 118, 125, 116, 125, 126, 132, 118, 130, 113, 114, 135, 112, 118, 119, 127, 135, 123, 108, 107, 136, 113, 146, 108, 126, 124, 122, 117, 119, 134, 135, 113, 128, 126, 114, 133, 116, 123, 117, 125, 121, 124, 130, 127, 132, 109, 134, 114, 134, 124, 134, 118, 125, 142, 125, 117, 124, 144, 116, 111, 121, 114, 126, 123, 125, 125, 125, 141, 138, 137, 135, 110, 146, 106, 127, 120, 116, 113, 126, 127, 109, 117, 111, 148, 129, 106, 128, 116, 134, 123, 128, 125, 117, 126, 111, 113, 116, 113, 143, 128, 126, 138, 123, 126, 122, 131, 125, 117, 122, 133, 113, 121, 140, 142, 135, 108, 124, 120, 115, 141, 101, 120, 136, 119, 123, 133, 128, 132, 125, 128, 116, 120, 147, 121, 126, 134, 117, 120, 119, 126, 121, 133, 118, 108, 124, 141, 136, 114, 104, 99, 143, 134, 133, 138, 121, 139, 125, 131, 140, 125, 122, 131, 109, 130, 125, 129, 129, 119, 123, 127, 125, 127, 111, 116, 134, 124, 123, 131, 120, 112, 129, 116, 122, 138, 144, 144, 107, 141, 136, 128, 111, 138, 127, 134, 130, 138, 133, 123, 109, 123, 104, 123, 137, 133, 126, 116, 119, 146, 137, 118, 109, 129, 127, 130, 132, 111, 108, 128, 163, 119, 129, 120, 125, 122, 124, 144, 101, 126, 127, 130, 125, 122, 121, 138, 122, 126, 139, 127, 121, 136, 121, 113, 139, 142, 131, 133, 125, 114, 122, 113, 127, 120, 102, 119, 129, 121, 116, 127, 128, 126, 120, 105, 121, 119, 110, 123, 131, 125, 126, 126, 114, 132, 123, 110, 121, 115, 142, 115, 125, 136, 165, 137, 146, 116, 101, 127, 118, 125, 122, 132, 115, 125, 130, 133, 133, 134, 140, 127, 148, 118, 138, 118, 125, 124, 150, 117, 109, 124, 150, 138, 122, 143, 123, 132, 138, 139, 115, 108, 126, 114, 110, 138, 113, 133, 110, 127, 119, 132, 137, 133, 123, 115, 113, 124, 147, 136, 130, 132, 130, 147, 117, 110, 137, 130, 132, 113, 133, 124, 106, 121, 103, 118, 137, 120, 140, 132, 115, 124, 144, 135, 128, 109, 116, 115, 137, 107, 105, 123, 126, 132, 130, 143, 132, 116, 118, 135, 113, 128, 130, 121, 144, 119, 112, 129, 130, 133, 129, 123, 125, 118, 131, 128, 130, 119, 123, 133, 127, 133, 127, 120, 129, 120, 141, 123, 111, 119, 124, 116, 141, 114, 139, 119, 135, 117, 119, 115, 116, 136, 133, 115, 124, 123, 126, 132, 129, 127, 124, 126, 145, 139, 127, 108, 135, 136, 114, 105, 105, 110, 115, 136, 128, 137, 119, 134, 132, 118, 118, 133, 123, 109, 119, 124, 123, 121, 139, 102, 131, 132, 118, 138, 128, 129, 111, 121, 129, 121, 131, 136, 121, 125, 121, 118, 132, 142, 119, 126, 113, 113, 130, 125, 114, 132, 116, 139, 117, 115, 122, 113, 126, 135, 119, 135, 144, 136, 115, 122, 136, 144, 128, 124, 103, 121, 122, 102, 140, 118, 114, 117, 151, 127, 135, 147, 129, 129, 124, 139, 117, 132, 115, 120, 131, 129, 119, 114, 110, 126, 120, 122, 121, 127, 133, 140, 119, 122, 121, 118, 127, 111, 131, 120, 136, 116, 126, 127, 128, 130, 114, 110, 131, 120, 123, 137, 101, 120, 123, 138, 124, 144, 125, 130, 125, 135, 116, 125, 138, 142, 117, 125, 143, 128, 141, 114, 122, 133, 120, 135, 143, 133, 104, 104, 124, 113, 114, 121, 114, 121, 125, 116, 141, 111, 116, 97, 126, 138, 124, 133, 132, 121, 123, 112, 142, 145, 127, 141, 110, 142, 116, 122, 128, 124, 123, 135, 110, 124, 115, 128, 126, 156, 119, 130, 138, 115, 129, 132, 112, 114, 135, 126, 128, 127, 129, 135, 131, 141, 124, 121, 119, 125, 119, 113, 114, 106, 128, 126, 128, 114, 117, 108, 149, 120, 130, 124, 124, 128, 122, 126, 126, 106, 128, 122, 146, 159, 112, 123, 119, 123, 118, 131, 119, 115, 152, 126, 120, 139, 117, 146, 132, 99, 142, 124, 121, 134, 116, 140, 130, 133, 128, 108, 134, 131, 125, 117, 138, 130, 126, 126, 128, 124, 128, 115, 126, 121, 129, 135, 143, 127, 122, 136, 114, 149, 121, 128, 109, 114, 105, 122, 124, 120, 131, 123, 95, 121, 122, 133, 121, 135, 132, 105, 123, 121, 112, 136, 114, 144, 127, 130, 125, 131, 130, 140, 120, 123, 131, 124, 129, 131, 120, 156, 121, 143, 125, 115, 121, 125, 119, 154, 126, 118, 125, 123, 138, 112, 129, 131, 118, 133, 124, 124, 121, 115, 146, 135, 118, 136, 97, 126, 125, 135, 127, 121, 122, 137, 125, 138, 139, 118, 121, 112, 101, 119, 117, 131, 135, 111, 114, 121, 121, 127, 139, 113, 122, 136, 126, 147, 121, 99, 123, 122, 119, 113, 108, 124, 119, 134, 120, 131, 139, 115, 122, 135, 123, 126, 112, 127, 123, 126, 109, 133, 135, 139, 131, 117, 126, 113, 118, 128, 126, 119, 123, 147, 107, 114, 121, 124, 122, 128, 117, 133, 119, 140, 132, 148, 118, 134, 141, 139, 120, 122, 120, 134, 122, 118, 126, 115, 127, 110, 131, 115, 128, 123, 118, 119, 130, 147, 145, 108, 114, 103, 126, 128, 139, 122, 110, 126, 126, 132, 124, 116, 129, 117, 143, 114, 131, 137, 125, 111, 129, 133, 111, 138, 129, 116, 148, 122, 120, 136, 130, 130, 128, 127, 139, 108, 106, 133, 118, 127, 132, 141, 130, 136, 121, 128, 137, 145, 123, 135, 121, 117, 132, 118, 139, 133, 122, 103, 126, 111, 119, 121, 149, 123, 113, 111, 122, 117, 131, 124, 143, 131, 112, 123, 112, 123, 116, 128, 117, 121, 138, 116, 120, 119, 128, 117, 123, 124, 135, 111, 131, 137, 134, 147, 124, 122, 130, 123, 109, 119, 116, 127, 114, 116, 125, 119, 119, 132, 138, 127, 139, 133, 116, 112, 116, 128, 99, 101, 127, 130, 117, 124, 129, 121, 133, 136, 122, 135, 130, 136, 128, 139, 136, 113, 142, 120, 157, 124, 135, 121, 132, 132, 108, 125, 121, 132, 123, 118, 121, 113, 119, 121, 131, 121, 122, 123, 126, 122, 134, 111, 118, 121, 118, 118, 135, 143, 120, 122, 129, 130, 106, 131, 139, 138, 119, 136, 132, 121, 147, 128, 117, 133, 128, 110, 122, 128, 144, 119, 124, 126, 120, 115, 122, 107, 123, 112, 109, 126, 130, 134, 117, 135, 133, 125, 111, 125, 122, 116, 128, 122, 123, 106, 125, 130, 138, 128, 122, 117, 124, 123, 135, 132, 119, 128, 119, 123, 131, 129, 115, 126, 136, 113, 136, 133, 119, 138, 134, 128, 134, 131, 121, 123, 123, 135, 131, 145, 123, 134, 115, 121, 130, 123, 125, 127, 118, 113, 139, 121, 124, 111, 116, 120, 120, 126, 143, 114, 119, 108, 136, 119, 126, 125, 151, 117, 113, 139, 120, 116, 132, 129, 127, 143, 126, 112, 134, 127, 126, 140, 118, 114, 115, 127, 126, 136, 129, 129, 129, 124, 122, 129, 124, 121, 128, 119, 123, 138, 143, 121, 116, 118, 124, 120, 102, 137, 112, 125, 123, 126, 96, 108, 115, 124, 146, 119, 113, 125, 133, 117, 135, 146, 115, 147, 133, 116, 134, 125, 123, 121, 115, 115, 119, 124, 136, 132, 150, 115, 138, 121, 117, 120, 122, 131, 146, 124, 128, 142, 125, 125, 120, 127, 124, 123, 109, 126, 121, 133, 130, 107, 127, 135, 126, 123, 137, 115, 118, 134, 127, 134, 140, 142, 130, 118, 109, 119, 129, 140, 124, 126, 102, 116, 135, 114, 112, 123, 118, 122, 113, 129, 125, 128, 146, 143, 114, 135, 114, 118, 131, 127, 106, 118, 134, 116, 112, 137, 129, 125, 128, 153, 134, 123, 117, 130, 125, 102, 127, 142, 116, 130, 131, 119, 126, 112, 134, 143, 113, 152, 136, 121, 116, 112, 122, 131, 126, 122, 113, 125, 119, 136, 133, 140, 131, 130, 138, 106, 128, 124, 125, 125, 135, 148, 127, 128, 141, 153, 114, 130, 136, 120, 105, 132, 134, 119, 115, 138, 125, 122, 128, 128, 112, 119, 121, 120, 123, 124, 126, 134, 119, 136, 128, 112, 128, 134, 137, 123, 124, 131, 128, 134, 128, 143, 125, 119, 115, 131, 126, 125, 117, 155, 133, 146, 144, 120, 141, 101, 139, 113, 119, 125, 136, 128, 138, 108, 118, 122, 134, 141, 132, 114, 121, 123, 132, 136, 115, 128, 121, 123, 115, 131, 124, 125, 126, 126, 144, 132, 117, 127, 126, 122, 138, 136, 129, 128, 130, 133, 122, 127, 122, 136, 123, 126, 125, 161, 109, 128, 145, 144, 134, 124, 106, 123, 126, 115, 131, 119, 124, 130, 114, 120, 127, 123, 131, 125, 133, 124, 120, 129, 128, 111, 148, 117, 112, 126, 134, 124, 135, 124, 126, 130, 122, 128, 143, 116, 119, 107, 122, 122, 107, 128, 133, 104, 126, 119, 137, 106, 109, 117, 138, 132, 106, 124, 129, 122, 146, 125, 122, 145, 135, 116, 125, 114, 107, 124, 116, 124, 106, 136, 122, 109, 129, 136, 136, 138, 121, 136, 115, 136, 146, 120, 132, 128, 116, 113, 135, 115, 122, 119, 131, 112, 148, 132, 101, 110, 136, 134, 134, 128, 115, 123, 123, 129, 128, 128, 127, 134, 128, 133, 130, 123, 129, 119, 129, 121, 124, 129, 138, 126, 123, 101, 125, 128, 138, 101, 125, 150, 110, 111, 115, 113, 140, 137, 128, 121, 129, 120, 117, 127, 131, 121, 137, 132, 126, 127, 113, 148, 121, 115, 124, 111, 151, 125, 158, 133, 126, 136, 131, 130, 146, 130, 127, 134, 144, 123, 126, 125, 128, 143, 114, 112, 130, 124, 122, 129, 128, 120, 132, 137, 124, 128, 118, 121, 134, 136, 116, 111, 115, 147, 107, 128, 122, 108, 129, 118, 137, 102, 127, 133, 115, 117, 126, 98, 115, 135, 144, 121, 141, 133, 137, 132, 110, 124, 122, 127, 129, 109, 135, 152, 134, 119, 125, 111, 136, 132, 130, 132, 130, 144, 116, 129, 132, 126, 113, 116, 114, 134, 109, 133, 133, 121, 117, 117, 138, 127, 128, 135, 130, 136, 117, 116, 120, 125, 119, 123, 139, 125, 118, 114, 125, 128, 109, 142, 105, 152, 123, 126, 130, 106, 119, 132, 130, 119, 131, 115, 119, 130, 133, 113, 111, 129, 134, 137, 134, 130, 141, 115, 110, 144, 130, 126, 113, 118, 128, 109, 122, 141, 121, 142, 130, 142, 119, 148, 137, 116, 128, 131, 130, 110, 142, 135, 142, 111, 128, 113, 108, 120, 111, 136, 150, 151, 136, 129, 137, 141, 117, 130, 134, 106, 126, 125, 98, 116, 135, 118, 129, 148, 118, 124, 117, 136, 119, 112, 123, 111, 103, 120, 100, 124, 120, 143, 107, 121, 100, 126, 124, 131, 135, 109, 135, 118, 112, 121, 115, 122, 124, 118, 114, 126, 126, 104, 131, 122, 141, 129, 124, 111, 127, 119, 124, 123, 128, 147, 135, 147, 123, 126, 140, 116, 118, 118, 124, 122, 123, 139, 124, 137, 129, 118, 117, 125, 105, 128, 130, 110, 128, 119, 144, 121, 114, 114, 110, 117, 126, 134, 122, 116, 106, 112, 127, 149, 126, 127, 121, 120, 132, 113, 132, 135, 112, 100, 122, 121, 132, 106, 127, 115, 131, 123, 121, 124, 117, 118, 111, 153, 126, 112, 136, 131, 130, 126, 116, 111, 142, 128, 111, 142, 134, 119, 135, 121, 139, 108, 126, 127, 107, 138, 128, 129, 119, 143, 116, 125, 116, 132, 140, 146, 130, 123, 128, 135, 134, 111, 111, 132, 124, 119, 107, 125, 115, 115, 126, 122, 133, 126, 132, 126, 128, 124, 109, 105, 133, 143, 117, 147, 129, 128, 135, 126, 122, 113, 117, 116, 132, 146, 142, 115, 128, 130, 151, 125, 129, 125, 120, 134, 137, 129, 128, 122, 129, 132, 123, 121, 104, 120, 119, 126, 131, 100, 109, 107, 96, 125, 133, 122, 122, 129, 128, 126, 135, 118, 107, 132, 126, 141, 135, 113, 110, 114, 132, 132, 127, 109, 120, 125, 132, 122, 125, 160, 125, 122, 136, 129, 128, 121, 118, 132, 146, 132, 125, 143, 128, 129, 121, 130, 120, 111, 122, 112, 136, 121, 111, 135, 121, 138, 127, 132, 107, 122, 127, 137, 135, 128, 116, 108, 143, 124, 125, 120, 124, 115, 135, 137, 137, 120, 139, 145, 139, 145, 149, 123, 137, 129, 132, 112, 110, 130, 112, 141, 133, 127, 131, 123, 118, 129, 115, 127, 113, 130, 135, 122, 137, 122, 133, 135, 125, 121, 128, 129, 124, 157, 128, 115, 124, 135, 122, 123, 132, 127, 122, 115, 121, 118, 137, 122, 125, 117, 132, 119, 128, 124, 123, 143, 122, 129, 111, 110, 127, 132, 115, 118, 113, 114, 131, 130, 130, 128, 114, 119, 127, 107, 128, 112, 132, 115, 134, 133, 134, 118, 129, 118, 140, 115, 121, 127, 124, 105, 133, 142, 130, 123, 112, 120, 126, 128, 143, 135, 131, 130, 138, 130, 129, 116, 115, 139, 118, 118, 129, 126, 116, 138, 128, 127, 122, 138, 137, 97, 121, 127, 149, 116, 126, 102, 129, 132, 142, 130, 119, 125, 117, 117, 135, 126, 116, 110, 124, 121, 129, 125, 131, 124, 130, 122, 136, 118, 122, 122, 108, 109, 124, 122, 136, 128, 142, 113, 122, 124, 112, 123, 103, 122, 130, 117, 121, 119, 108, 120, 133, 119, 125, 111, 131, 128, 125, 122, 118, 131, 110, 113, 142, 118, 125, 126, 120, 111, 106, 117, 115, 131, 133, 134, 130, 97, 115, 131, 144, 120, 116, 137, 153, 127, 120, 133, 138, 114, 116, 130, 123, 124, 143, 126, 144, 124, 146, 120, 127, 119, 107, 120, 127, 88, 130, 127, 136, 137, 118, 146, 131, 138, 125, 143, 132, 123, 131, 113, 123, 132, 128, 129, 112, 120, 104, 121, 111, 111, 137, 110, 132, 115, 132, 135, 115, 120, 114, 133, 117, 126, 131, 123, 114, 124, 124, 123, 121, 115, 111, 119, 116, 120, 124, 141, 117, 131, 126, 138, 125, 130, 128, 140, 129, 115, 126, 137, 132, 119, 127, 134, 128, 123, 119, 136, 151, 116, 138, 153, 133, 110, 127, 130, 135, 129, 120, 134, 126, 125, 114, 138, 116, 130, 126, 140, 99, 110, 124, 126, 125, 124, 132, 118, 129, 129, 141, 111, 128, 134, 129, 127, 137, 125, 126, 132, 120, 124, 117, 149, 125, 112, 131, 119, 135, 110, 112, 145, 124, 132, 114, 120, 118, 104, 117, 119, 119, 130, 126, 123, 128, 120, 123, 132, 133, 108, 126, 122, 142, 135, 126, 139, 116, 116, 129, 131, 137, 127, 124, 120, 140, 119, 109, 123, 117, 111, 125, 135, 122, 114, 130, 125, 135, 125, 116, 130, 129, 122, 122, 114, 133, 121, 132, 105, 104, 126, 106, 112, 123, 109, 132, 131, 129, 110, 150, 132, 126, 130, 125, 127, 131, 127, 140, 135, 130, 121, 136, 135, 124, 125, 139, 124, 133, 120, 123, 127, 125, 132, 136, 128, 113, 130, 127, 118, 127, 114, 127, 110, 127, 129, 129, 136, 119, 124, 118, 120, 114, 118, 104, 119, 124, 124, 117, 115, 128, 118, 115, 115, 123, 116, 112, 130, 115, 124, 137, 119, 112, 129, 116, 103, 113, 135, 129, 124, 123, 119, 117, 116, 140, 126, 137, 121, 107, 123, 107, 121, 120, 115, 123, 139, 124, 133, 126, 136, 105, 126, 126, 121, 116, 112, 138, 90, 126, 130, 117, 114, 116, 130, 148, 128, 133, 140, 120, 132, 121, 124, 125, 133, 134, 133, 116, 124, 121, 125, 134, 115, 119, 126, 129, 123, 114, 125, 132, 137, 124, 115, 122, 130, 123, 104, 131, 126, 127, 129, 163, 128, 132, 136, 115, 111, 137, 127, 162, 122, 128, 126, 129, 129, 134, 127, 124, 123, 128, 134, 116, 118, 125, 123, 120, 123, 122, 137, 122, 124, 122, 130, 129, 141, 129, 116, 131, 132, 106, 140, 143, 152, 126, 125, 128, 101, 119, 119, 125, 125, 129, 118, 121, 111, 136, 113, 126, 124, 123, 121, 114, 122, 138, 127, 113, 134, 139, 112, 129, 135, 123, 131, 137, 135, 131, 134, 126, 129, 125, 131, 132, 126, 121, 120, 146, 135, 123, 158, 124, 118, 132, 119, 112, 136, 137, 132, 116, 119, 149, 115, 117, 130, 126, 134, 114, 146, 121, 140, 124, 129, 128, 136, 121, 129, 123, 134, 144, 123, 126, 146, 122, 142, 147, 139, 108, 125, 101, 131, 127, 123, 124, 122, 140, 129, 154, 126, 116, 129, 122, 124, 124, 120, 158, 136, 125, 142, 132, 106, 129, 123, 132, 116, 115, 121, 119, 122, 142, 106, 127, 133, 121, 112, 141, 137, 127, 102, 133, 113, 132, 115, 116, 123, 114, 122, 133, 97, 123, 127, 113, 127, 104, 129, 129, 123, 133, 123, 126, 121, 121, 126, 128, 116, 116, 118, 143, 128, 143, 126, 132, 131, 124, 115, 112, 112, 134, 118, 130, 116, 138, 122, 138, 134, 147, 115, 116, 146, 126, 127, 138, 158, 114, 157, 123, 133, 120, 125, 137, 119, 141, 115, 147, 111, 124, 129, 134, 104, 126, 120, 120, 120, 124, 129, 131, 132, 127, 122, 123, 125, 117, 125, 125, 131, 122, 118, 137, 113, 112, 128, 132, 121, 143, 117, 135, 126, 110, 124, 117, 116, 124, 115, 128, 118, 134, 110, 102, 150, 121, 138, 104, 117, 125, 127, 134, 113, 140, 129, 123, 123, 142, 147, 132, 138, 135, 125, 127, 111, 115, 120, 96, 111, 119, 132, 141, 116, 164, 108, 125, 124, 131, 118, 108, 104, 137, 143, 122, 120, 125, 141, 139, 126, 116, 106, 132, 148, 121, 134, 132, 133, 135, 116, 149, 116, 127, 110, 147, 103, 116, 131, 118, 118, 127, 138, 117, 123, 137, 139, 105, 130, 117, 110, 115, 135, 109, 137, 146, 123, 128, 131, 118, 107, 117, 133, 124, 137, 137, 107, 129, 116, 130, 122, 131, 127, 120, 137, 127, 128, 128, 119, 134, 131, 125, 115, 128, 120, 113, 132, 128, 123, 131, 112, 131, 132, 120, 126, 128, 121, 124, 123, 114, 116, 121, 132, 119, 122, 134, 117, 110, 138, 128, 132, 109, 107, 118, 137, 136, 119, 134, 129, 154, 130, 111, 124, 123, 120, 128, 137, 111, 126, 124, 128, 131, 122, 103, 110, 118, 155, 137, 127, 120, 128, 125, 124, 132, 129, 113, 116, 112, 127, 124, 131, 129, 93, 110, 128, 119, 151, 135, 139, 121, 134, 126, 113, 125, 130, 122, 120, 123, 139, 125, 108, 124, 123, 126, 121, 138, 118, 115, 101, 134, 117, 118, 122, 142, 113, 102, 124, 143, 125, 124, 121, 125, 134, 127, 129, 114, 120, 129, 174, 129, 144, 140, 131, 142, 115, 135, 148, 126, 120, 132, 134, 133, 131, 133, 129, 132, 113, 114, 136, 118, 112, 131, 138, 112, 120, 164, 121, 126, 134, 127, 122, 154, 129, 137, 91, 114, 126, 116, 121, 126, 114, 123, 118, 137, 139, 116, 115, 134, 127, 124, 135, 127, 127, 130, 103, 114, 131, 111, 113, 112, 127, 138, 120, 129, 134, 121, 130, 123, 120, 139, 141, 127, 118, 126, 126, 110, 130, 123, 119, 128, 138, 121, 104, 132, 124, 120, 119, 132, 133, 135, 103, 141, 118, 111, 119, 124, 121, 125, 156, 116, 137, 114, 128, 124, 122, 124, 123, 119, 125, 118, 127, 121, 118, 128, 127, 117, 114, 108, 108, 142, 113, 128, 137, 129, 122, 125, 115, 128, 107, 139, 122, 111, 116, 124, 118, 141, 126, 145, 121, 126, 126, 149, 128, 125, 120, 128, 123, 123, 144, 109, 131, 125, 121, 124, 114, 131, 124, 139, 134, 120, 125, 120, 137, 161, 115, 126, 101, 132, 146, 136, 120, 118, 114, 103, 157, 128, 114, 117, 126, 142, 133, 129, 120, 94, 131, 129, 117, 120, 124, 128, 135, 106, 120, 120, 143, 142, 137, 126, 144, 116, 120, 105, 102, 119, 145, 143, 111, 121, 127, 132, 120, 148, 125, 113, 127, 129, 117, 125, 119, 134, 142, 135, 125, 143, 135, 125, 120, 103, 96, 140, 119, 128, 125, 125, 131, 127, 121, 111, 128, 141, 123, 125, 124, 120, 142, 118, 128, 110, 108, 120, 142, 123, 137, 123, 118, 146, 119, 117, 120, 121, 109, 148, 133, 146, 126, 126, 115, 126, 118, 132, 124, 111, 130, 131, 143, 115, 114, 127, 122, 123, 144, 138, 110, 136, 122, 116, 125, 130, 124, 126, 134, 119, 139, 127, 126, 135, 136, 146, 135, 137, 127, 107, 119, 125, 107, 119, 125, 128, 116, 117, 114, 116, 124, 121, 121, 121, 110, 131, 125, 128, 113, 124, 126, 130, 150, 113, 123, 122, 120, 154, 119, 125, 100, 124, 108, 116, 111, 121, 127, 132, 119, 134, 133, 139, 117, 121, 122, 118, 133, 115, 128, 121, 132, 131, 114, 128, 116, 118, 137, 139, 113, 130, 123, 125, 123, 119, 117, 114, 134, 133, 135, 131, 112, 132, 141, 108, 136, 126, 134, 123, 125, 141, 127, 133, 116, 135, 126, 127, 132, 124, 125, 123, 125, 121, 155, 136, 120, 133, 132, 124, 134, 140, 123, 111, 126, 130, 111, 133, 134, 133, 122, 129, 116, 118, 123, 128, 126, 122, 126, 115, 128, 99, 137, 127, 119, 117, 143, 139, 128, 141, 124, 128, 123, 107, 131, 113, 114, 111, 118, 113, 124, 116, 128, 142, 118, 124, 116, 127, 125, 130, 121, 111, 123, 129, 121, 122, 130, 122, 123, 100, 121, 107, 130, 127, 101, 113, 132, 128, 123, 138, 141, 125, 136, 113, 125, 125, 113, 120, 121, 124, 120, 117, 117, 126, 130, 119, 122, 122, 119, 125, 144, 124, 115, 137, 134, 119, 124, 149, 118, 130, 132, 138, 129, 115, 132, 107, 129, 137, 145, 119, 118, 127, 143, 129, 120, 126, 135, 125, 110, 105, 128, 127, 116, 127, 131, 130, 120, 128, 119, 128, 139, 116, 130, 116, 125, 115, 115, 123, 102, 134, 104, 120, 119, 134, 133, 113, 129, 109, 124, 127, 135, 128, 127, 120, 128, 138, 137, 128, 112, 124, 115, 111, 139, 128, 126, 130, 127, 105, 123, 140, 126, 137, 136, 140, 129, 133, 127, 122, 145, 125, 123, 127, 130, 117, 127, 107, 135, 121, 128, 135, 130, 122, 134, 121, 132, 121, 102, 128, 109, 108, 134, 105, 119, 130, 127, 108, 133, 122, 122, 132, 127, 121, 121, 124, 129, 118, 132, 116, 133, 121, 110, 127, 135, 121, 131, 123, 121, 111, 114, 114, 131, 119, 132, 129, 129, 120, 141, 135, 119, 129, 106, 111, 120, 112, 121, 132, 125, 138, 133, 132, 116, 119, 132, 134, 130, 122, 113, 127, 128, 128, 113, 146, 115, 134, 138, 132, 134, 141, 123, 140, 112, 147, 121, 153, 121, 142, 113, 122, 125, 116, 109, 136, 129, 127, 134, 128, 131, 128, 130, 135, 129, 112, 123, 138, 124, 113, 128, 119, 135, 127, 141, 121, 129, 130, 114, 137, 111, 124, 112, 129, 122, 100, 124, 127, 141, 123, 109, 123, 138, 137, 126, 131, 147, 126, 117, 137, 133, 113, 129, 137, 113, 145, 118, 104, 142, 127, 127, 112, 132, 115, 118, 118, 137, 130, 109, 117, 120, 137, 127, 118, 129, 130, 128, 105, 120, 133, 118, 125, 129, 104, 131, 120, 122, 130, 124, 119, 113, 115, 144, 114, 112, 110, 129, 120, 124, 121, 123, 126, 119, 125, 134, 128, 122, 118, 136, 127, 115, 128, 132, 132, 123, 123, 129, 131, 128, 139, 115, 122, 110, 121, 121, 127, 125, 114, 139, 134, 121, 113, 143, 115, 116, 133, 135, 118, 137, 123, 134, 118, 138, 128, 126, 123, 136, 107, 130, 136, 126, 126, 118, 141, 135, 124, 139, 122, 129, 128, 139, 122, 132, 123, 128, 154, 115, 129, 146, 151, 130, 127, 120, 112, 140, 122, 121, 128, 113, 127, 124, 115, 133, 121, 127, 124, 135, 120, 126, 121, 110, 123, 135, 111, 131, 130, 123, 129, 110, 133, 122, 116, 136, 131, 131, 114, 126, 120, 126, 117, 130, 133, 129, 122, 113, 134, 129, 126, 138, 128, 111, 142, 113, 119, 125, 120, 113, 119, 121, 123, 145, 119, 125, 118, 114, 124, 130, 120, 122, 116, 124, 109, 109, 144, 103, 113, 121, 128, 151, 134, 116, 132, 115, 119, 122, 135, 122, 127, 131, 123, 141, 129, 113, 121, 137, 108, 133, 134, 118, 135, 135, 134, 135, 138, 123, 118, 125, 121, 133, 139, 117, 122, 122, 127, 114, 133, 115, 107, 107, 105, 128, 117, 113, 115, 118, 135, 121, 135, 131, 114, 125, 129, 123, 111, 121, 109, 125, 129, 113, 123, 131, 129, 112, 142, 119, 145, 122, 124, 141, 102, 120, 131, 133, 123, 119, 128, 121, 140, 127, 138, 110, 119, 126, 138, 123, 135, 136, 140, 127, 108, 114, 129, 121, 123, 135, 129, 113, 121, 133, 111, 123, 120, 138, 121, 141, 129, 112, 127, 122, 120, 124, 126, 137, 130, 123, 114, 133, 128, 131, 111, 127, 140, 126, 127, 119, 120, 134, 115, 124, 130, 140, 150, 140, 121, 122, 120, 119, 125, 134, 112, 119, 139, 135, 135, 128, 138, 121, 123, 116, 112, 124, 132, 124, 136, 108, 134, 120, 125, 112, 136, 128, 144, 150, 125, 140, 128, 132, 145, 122, 123, 118, 104, 125, 114, 118, 130, 137, 123, 120, 126, 124, 125, 125, 111, 129, 111, 142, 121, 121, 122, 128, 129, 123, 115, 123, 136, 119, 133, 130, 129, 132, 141, 119, 125, 112, 124, 127, 118, 123, 118, 115, 134, 122, 123, 120, 124, 135, 129, 117, 120, 128, 117, 129, 113, 138, 125, 104, 123, 124, 127, 126, 132, 122, 115, 111, 145, 127, 121, 116, 134, 131, 129, 131, 131, 116, 117, 110, 136, 116, 127, 126, 129, 138, 139, 124, 133, 115, 121, 120, 128, 111, 104, 133, 152, 124, 130, 131, 126, 138, 101, 118, 106, 120, 105, 116, 131, 122, 129, 124, 129, 123, 116, 120, 128, 107, 111, 125, 111, 127, 122, 110, 118, 104, 131, 146, 126, 119, 126, 127, 119, 134, 137, 114, 131, 120, 117, 120, 145, 121, 138, 115, 106, 124, 126, 128, 142, 113, 137, 131, 119, 126, 125, 131, 119, 128, 124, 133, 150, 142, 131, 127, 120, 116, 116, 123, 129, 130, 123, 128, 104, 143, 127, 135, 132, 130, 124, 123, 112, 128, 120, 132, 138, 128, 135, 117, 129, 124, 128, 116, 132, 110, 112, 127, 132, 113, 135, 113, 123, 114, 127, 117, 126, 120, 128, 119, 100, 116, 122, 106, 145, 143, 120, 123, 111, 125, 114, 120, 122, 122, 128, 115, 138, 126, 134, 126, 130, 127, 131, 119, 120, 130, 139, 125, 116, 119, 132, 133, 134, 134, 126, 145, 142, 136, 121, 125, 128, 120, 123, 115, 125, 131, 115, 122, 111, 128, 116, 119, 112, 127, 129, 124, 130, 128, 134, 114, 110, 117, 127, 127, 121, 122, 122, 137, 126, 144, 125, 127, 128, 123, 114, 127, 143, 134, 123, 110, 132, 129, 131, 125, 130, 133, 127, 131, 123, 112, 108, 157, 135, 110, 113, 126, 130, 126, 113, 124, 126, 136, 132, 118, 132, 136, 135, 126, 140, 120, 130, 131, 138, 131, 109, 120, 146, 115, 152, 123, 121, 121, 123, 121, 132, 125, 142, 126, 121, 119, 133, 128, 124, 116, 113, 125, 126, 106, 124, 120, 124, 126, 123, 126, 117, 122, 116, 112, 113, 137, 110, 131, 131, 126, 133, 133, 130, 133, 110, 113, 126, 126, 140, 120, 126, 127, 119, 142, 129, 142, 126, 124, 115, 131, 130, 124, 128, 124, 122, 124, 118, 139, 115, 137, 122, 125, 121, 126, 128, 124, 111, 129, 144, 106, 136, 130, 120, 155, 124, 122, 129, 122, 130, 123, 128, 131, 137, 133, 143, 135, 131, 123, 130, 124, 141, 120, 136, 132, 120, 114, 145, 136, 129, 121, 130, 109, 124, 139, 122, 134, 122, 118, 113, 108, 120, 118, 121, 114, 133, 121, 124, 138, 116, 136, 122, 131, 118, 119, 113, 121, 127, 129, 135, 127, 112, 111, 118, 116, 116, 135, 127, 130, 132, 126, 123, 125, 131, 125, 100, 119, 131, 138, 126, 118, 133, 122, 109, 137, 137, 112, 138, 123, 113, 148, 142, 125, 119, 127, 120, 121, 117, 134, 123, 138, 127, 124, 122, 135, 124, 120, 125, 130, 131, 130, 131, 121, 135, 133, 129, 131, 138, 134, 124, 146, 134, 132, 141, 124, 126, 137, 112, 121, 138, 121, 126, 123, 131, 133, 124, 120, 124, 127, 136, 125, 137, 133, 121, 128, 120, 123, 115, 132, 131, 127, 134, 134, 123, 134, 133, 123, 127, 127, 125, 120, 143, 115, 120, 116, 119, 114, 121, 121, 126, 125, 135, 134, 121, 139, 127, 124, 124, 141, 115, 117, 134, 126, 134, 122, 125, 116, 137, 125, 105, 128, 123, 124, 115, 111, 130, 127, 128, 113, 123, 121, 127, 116, 127, 109, 100, 129, 139, 119, 147, 127, 122, 111, 129, 119, 120, 128, 122, 123, 115, 125, 141, 105, 130, 106, 128, 127, 145, 128, 138, 124, 120, 122, 116, 108, 130, 119, 142, 135, 138, 131, 140, 134, 124, 125, 119, 129, 128, 126, 129, 129, 129, 131, 144, 162, 118, 137, 142, 117, 130, 120, 137, 113, 119, 125, 134, 107, 144, 129, 126, 110, 116, 140, 108, 113, 114, 118, 136, 113, 124, 131, 130, 126, 105, 112, 125, 115, 142, 122, 107, 118, 116, 130, 131, 127, 115, 138, 116, 130, 125, 107, 115, 132, 118, 117, 118, 117, 132, 126, 115, 129, 126, 127, 104, 119, 139, 116, 120, 130, 107, 109, 113, 130, 127, 143, 94, 105, 126, 122, 137, 120, 145, 127, 123, 116, 115, 133, 133, 135, 123, 134, 129, 116, 128, 113, 127, 136, 129, 134, 136, 147, 119, 123, 119, 126, 138, 138, 136, 130, 122, 119, 110, 119, 107, 134, 125, 121, 129, 123, 127, 113, 133, 110, 120, 119, 131, 111, 112, 131, 123, 129, 105, 137, 114, 131, 108, 135, 140, 142, 120, 125, 139, 136, 129, 118, 144, 121, 113, 132, 129, 142, 126, 114, 122, 125, 114, 139, 116, 138, 131, 125, 131, 123, 95, 118, 116, 119, 136, 136, 130, 112, 142, 117, 135, 102, 118, 136, 147, 137, 145, 132, 120, 122, 119, 122, 108, 124, 110, 138, 129, 140, 127, 148, 129, 126, 144, 127, 136, 130, 125, 116, 127, 128, 126, 139, 121, 123, 116, 121, 128, 121, 134, 126, 133, 119, 123, 127, 124, 137, 121, 141, 144, 104, 118, 132, 147, 136, 130, 121, 133, 132, 115, 120, 124, 138, 141, 122, 105, 123, 117, 111, 100, 132, 131, 126, 121, 125, 146, 140, 129, 116, 126, 119, 157, 127, 104, 128, 126, 119, 128, 141, 133, 138, 115, 127, 144, 136, 124, 125, 123, 120, 126, 128, 135, 127, 138, 132, 128, 120, 123, 129, 127, 109, 122, 121, 131, 128, 139, 123, 148, 140, 120, 130, 122, 105, 120, 112, 145, 92, 122, 122, 107, 132, 112, 130, 140, 115, 124, 117, 145, 126, 132, 134, 123, 126, 121, 123, 135, 130, 124, 130, 127, 119, 132, 135, 128, 124, 123, 115, 134, 118, 126, 110, 130, 123, 127, 128, 114, 125, 113, 141, 131, 130, 132, 124, 120, 128, 124, 124, 135, 124, 112, 110, 126, 130, 124, 125, 145, 145, 121, 106, 122, 115, 124, 122, 122, 136, 123, 125, 114, 144, 117, 130, 133, 138, 127, 134, 124, 124, 152, 135, 124, 117, 126, 118, 118, 115, 124, 125, 127, 139, 115, 120, 119, 111, 126, 116, 118, 118, 132, 120, 116, 132, 147, 126, 124, 147, 121, 134, 112, 108, 118, 128, 114, 124, 121, 102, 123, 125, 117, 122, 145, 125, 127, 135, 117, 137, 109, 111, 129, 148, 116, 116, 142, 135, 138, 129, 128, 112, 124, 119, 124, 130, 122, 110, 147, 120, 115, 119, 130, 114, 125, 119, 107, 122, 116, 130, 115, 144, 124, 125, 135, 127, 128, 131, 117, 132, 150, 131, 145, 140, 124, 123, 130, 122, 110, 140, 111, 118, 129, 132, 121, 123, 125, 142, 129, 131, 121, 136, 124, 124, 136, 125, 150, 134, 121, 113, 116, 123, 120, 138, 128, 130, 119, 137, 128, 118, 132, 128, 118, 105, 133, 101, 114, 121, 124, 132, 132, 124, 128, 143, 113, 133, 129, 136, 107, 115, 131, 131, 150, 136, 117, 105, 133, 133, 116, 122, 126, 127, 106, 134, 140, 114, 125, 124, 109, 136, 123, 140, 129, 116, 99, 105, 121, 116, 117, 124, 119, 130, 149, 122, 122, 115, 119, 120, 109, 124, 129, 139, 133, 116, 134, 120, 108, 115, 136, 118, 124, 130, 122, 124, 111, 118, 114, 128, 124, 117, 127, 124, 126, 140, 125, 114, 118, 130, 125, 122, 135, 128, 131, 132, 139, 135, 135, 109, 124, 118, 92, 125, 137, 145, 115, 135, 128, 118, 125, 110, 145, 132, 133, 119, 114, 117, 133, 143, 135, 123, 112, 122, 129, 107, 150, 124, 144, 135, 112, 130, 129, 121, 112, 149, 128, 124, 131, 130, 129, 130, 127, 117, 124, 137, 130, 120, 123, 124, 110, 134, 116, 112, 109, 124, 135, 114, 128, 127, 135, 121, 129, 132, 142, 131, 131, 111, 132, 131, 130, 138, 131, 103, 128, 135, 131, 120, 123, 139, 105, 134, 123, 138, 115, 131, 116, 107, 128, 139, 149, 123, 137, 151, 123, 128, 137, 138, 133, 130, 142, 107, 109, 116, 139, 121, 111, 127, 121, 138, 126, 122, 129, 136, 115, 110, 139, 146, 128, 140, 130, 120, 129, 150, 136, 129, 120, 144, 125, 115, 140, 116, 117, 105, 150, 120, 120, 121, 138, 128, 115, 123, 122, 130, 114, 114, 138, 102, 155, 119, 118, 123, 143, 117, 139, 144, 127, 111, 146, 121, 147, 130, 105, 132, 148, 107, 119, 141, 123, 116, 131, 140, 129, 137, 132, 127, 116, 115, 129, 124, 115, 137, 117, 112, 123, 121, 153, 133, 112, 139, 134, 107, 122, 139, 136, 122, 120, 122, 129, 123, 129, 121, 124, 124, 114, 121, 148, 126, 129, 134, 133, 131, 131, 132, 125, 146, 125, 122, 113, 111, 118, 127, 120, 131, 128, 118, 136, 141, 111, 122, 143, 115, 122, 124, 91, 116, 111, 123, 131, 122, 138, 130, 118, 139, 113, 129, 139, 120, 109, 111, 126, 123, 113, 110, 136, 125, 138, 121, 108, 114, 127, 111, 124, 117, 139, 125, 128, 127, 135, 130, 125, 131, 135, 139, 125, 131, 130, 130, 137, 108, 129, 132, 110, 119, 137, 121, 132, 146, 110, 128, 117, 124, 117, 115, 126, 130, 125, 128, 138, 107, 116, 141, 132, 135, 127, 137, 112, 122, 131, 137, 138, 130, 141, 125, 134, 132, 150, 144, 116, 134, 116, 115, 124, 133, 127, 118, 130, 132, 118, 130, 117, 133, 134, 123, 139, 126, 139, 122, 124, 109, 103, 114, 126, 127, 120, 124, 137, 121, 126, 134, 128, 135, 120, 116, 114, 134, 134, 121, 124, 129, 123, 143, 130, 110, 122, 116, 125, 131, 115, 126, 134, 112, 144, 123, 118, 123, 139, 121, 120, 129, 139, 119, 145, 118, 124, 123, 129, 121, 146, 130, 140, 123, 130, 129, 117, 134, 100, 128, 149, 119, 131, 126, 129, 110, 131, 124, 130, 129, 121, 120, 122, 125, 120, 112, 144, 115, 111, 133, 124, 130, 135, 134, 146, 121, 120, 116, 111, 142, 129, 117, 121, 125, 153, 125, 119, 116, 126, 105, 127, 138, 128, 141, 125, 112, 137, 122, 136, 125, 114, 115, 120, 112, 132, 125, 124, 109, 118, 128, 124, 113, 140, 121, 113, 118, 120, 107, 128, 125, 114, 121, 114, 122, 115, 135, 115, 127, 118, 129, 98, 135, 109, 117, 128, 125, 118, 104, 132, 122, 120, 123, 132, 117, 129, 135, 126, 120, 116, 119, 116, 121, 137, 119, 119, 149, 128, 134, 135, 137, 130, 120, 115, 109, 113, 118, 137, 125, 102, 138, 129, 109, 119, 115, 119, 142, 129, 139, 143, 118, 128, 110, 128, 121, 140, 106, 105, 120, 122, 131, 112, 125, 114, 156, 126, 107, 122, 129, 113, 145, 129, 115, 139, 109, 134, 132, 143, 138, 132, 117, 131, 125, 129, 106, 142, 116, 114, 137, 112, 122, 131, 121, 131, 130, 118, 135, 117, 124, 109, 124, 111, 133, 121, 129, 140, 130, 139, 143, 112, 118, 122, 113, 124, 124, 112, 119, 125, 141, 133, 132, 131, 122, 124, 145, 135, 132, 121, 136, 123, 124, 118, 132, 107, 117, 137, 131, 137, 113, 125, 114, 128, 114, 129, 111, 130, 119, 122, 135, 132, 115, 138, 127, 133, 129, 150, 126, 131, 129, 125, 137, 125, 132, 149, 121, 94, 138, 125, 118, 116, 123, 123, 141, 131, 128, 132, 127, 136, 139, 127, 121, 111, 134, 124, 117, 123, 119, 130, 116, 124, 122, 129, 117, 124, 133, 120, 139, 112, 127, 105, 131, 139, 125, 119, 106, 126, 113, 137, 122, 130, 124, 131, 115, 110, 138, 141, 112, 123, 124, 129, 126, 130, 122, 130, 128, 140, 115, 137, 107, 113, 130, 126, 105, 118, 151, 126, 129, 144, 124, 127, 128, 143, 115, 137, 136, 117, 124, 118, 120, 131, 130, 122, 120, 138, 121, 134, 137, 132, 158, 122, 130, 127, 117, 131, 108, 126, 128, 127, 115, 114, 116, 145, 110, 122, 117, 133, 109, 118, 123, 133, 107, 123, 124, 133, 126, 119, 101, 130, 133, 127, 111, 128, 123, 145, 105, 132, 126, 120, 125, 108, 132, 127, 119, 146, 127, 139, 132, 127, 128, 130, 138, 136, 131, 106, 140, 108, 134, 137, 144, 122, 143, 141, 118, 114, 142, 126, 130, 117, 118, 133, 152, 132, 128, 131, 130, 122, 121, 139, 113, 148, 121, 116, 137, 118, 122, 128, 124, 129, 131, 133, 116, 138, 125, 118, 124, 143, 118, 150, 112, 136, 108, 119, 118, 128, 108, 123, 115, 122, 138, 126, 142, 127, 106, 120, 128, 138, 113, 122, 125, 122, 142, 136, 111, 115, 117, 101, 113, 135, 133, 129, 130, 144, 130, 121, 123, 113, 119, 135, 119, 130, 136, 138, 151, 127, 128, 110, 116, 124, 101, 138, 117, 125, 143, 130, 125, 119, 110, 122, 115, 121, 126, 133, 122, 136, 127, 133, 122, 121, 110, 114, 121, 135, 119, 118, 140, 107, 124, 115, 128, 125, 113, 131, 114, 129, 128, 110, 140, 117, 116, 108, 134, 138, 123, 129, 139, 115, 124, 111, 139, 106, 128, 134, 124, 145, 130, 149, 134, 129, 131, 131, 128, 135, 124, 114, 152, 113, 125, 128, 137, 144, 141, 138, 129, 137, 143, 142, 122, 127, 119, 125, 114, 133, 123, 133, 123, 139, 135, 122, 117, 92, 124, 129, 146, 109, 117, 115, 111, 112, 125, 150, 125, 143, 112, 142, 113, 132, 129, 124, 129, 145, 107, 145, 139, 146, 132, 120, 128, 126, 133, 121, 150, 102, 129, 117, 128, 141, 110, 124, 137, 128, 141, 124, 124, 158, 127, 134, 132, 144, 130, 125, 124, 139, 129, 134, 124, 135, 131, 130, 137, 127, 113, 120, 115, 118, 120, 136, 132, 130, 115, 125, 117, 136, 128, 123, 120, 123, 137, 126, 115, 118, 126, 145, 125, 139, 128, 129, 118, 116, 122, 131, 125, 131, 122, 120, 131, 127, 121, 125, 116, 126, 138, 133, 112, 133, 118, 143, 116, 113, 127, 134, 141, 120, 120, 125, 118, 111, 102, 147, 122, 139, 136, 134, 121, 123, 112, 122, 113, 148, 119, 124, 119, 134, 122, 107, 105, 136, 130, 118, 123, 130, 108, 115, 118, 125, 135, 122, 126, 139, 120, 128, 129, 136, 119, 129, 138, 133, 117, 138, 124, 101, 113, 121, 132, 131, 121, 115, 133, 127, 121, 113, 121, 122, 113, 105, 119, 120, 138, 124, 126, 126, 127, 127, 134, 140, 100, 115, 141, 110, 113, 148, 128, 126, 113, 123, 120, 115, 121, 108, 131, 135, 132, 113, 141, 119, 132, 123, 108, 103, 120, 114, 118, 121, 139, 142, 134, 120, 151, 123, 134, 124, 145, 146, 125, 126, 131, 131, 126, 154, 123, 121, 116, 119, 123, 131, 123, 113, 136, 142, 150, 125, 120, 131, 117, 132, 135, 136, 129, 110, 116, 136, 118, 93, 119, 107, 129, 116, 129, 109, 128, 121, 143, 101, 142, 123, 123, 127, 117, 110, 121, 116, 113, 132, 131, 116, 120, 132, 126, 109, 117, 114, 112, 118, 131, 133, 124, 104, 129, 125, 135, 124, 136, 127, 130, 118, 122, 124, 112, 123, 125, 132, 112, 126, 112, 126, 121, 125, 116, 130, 114, 133, 139, 101, 114, 119, 124, 100, 133, 134, 122, 142, 139, 112, 126, 137, 106, 137, 98, 113, 139, 128, 115, 132, 112, 124, 134, 125, 130, 154, 140, 126, 141, 139, 129, 134, 130, 126, 123, 142, 120, 141, 103, 116, 106, 123, 145, 131, 116, 103, 133, 104, 115, 127, 114, 139, 128, 129, 125, 130, 125, 117, 126, 139, 133, 117, 117, 115, 122, 119, 121, 143, 119, 144, 125, 116, 128, 120, 110, 141, 116, 105, 128, 126, 122, 124, 124, 118, 129, 123, 124, 120, 149, 115, 112, 130, 144, 123, 120, 125, 118, 130, 126, 129, 116, 122, 141, 106, 134, 129, 140, 151, 113, 112, 126, 133, 127, 131, 145, 114, 120, 141, 133, 130, 104, 128, 143, 136, 115, 125, 109, 129, 138, 114, 142, 131, 120, 114, 125, 130, 124, 132, 118, 110, 128, 130, 114, 134, 139, 119, 142, 111, 136, 123, 106, 171, 118, 112, 111, 123, 127, 139, 124, 127, 123, 154, 124, 108, 116, 109, 122, 113, 112, 134, 124, 139, 116, 114, 128, 119, 132, 125, 144, 141, 116, 130, 114, 129, 135, 114, 134, 113, 135, 124, 134, 120, 109, 103, 125, 131, 134, 132, 121, 121, 133, 137, 98, 135, 142, 138, 117, 130, 129, 121, 120, 106, 126, 131, 120, 115, 120, 117, 114, 122, 115, 131, 119, 116, 133, 127, 133, 111, 106, 113, 127, 119, 109, 138, 123, 131, 117, 127, 120, 100, 117, 121, 126, 106, 120, 147, 122, 128, 116, 131, 117, 137, 137, 109, 114, 129, 121, 110, 117, 120, 129, 113, 123, 121, 125, 151, 134, 114, 135, 139, 158, 116, 125, 139, 139, 134, 106, 123, 124, 113, 106, 125, 103, 122, 117, 117, 144, 127, 128, 120, 134, 142, 126, 110, 111, 124, 120, 128, 130, 116, 138, 126, 124, 122, 132, 143, 122, 107, 105, 123, 137, 117, 137, 124, 131, 117, 123, 125, 120, 123, 138, 129, 120, 121, 127, 130, 124, 132, 120, 140, 127, 130, 125, 136, 130, 129, 110, 121, 116, 115, 124, 121, 137, 125, 129, 127, 129, 123, 137, 126, 124, 126, 110, 131, 144, 134, 135, 123, 125, 121, 111, 126, 134, 125, 121, 136, 130, 132, 100, 135, 134, 130, 144, 113, 117, 108, 119, 112, 126, 133, 114, 124, 141, 124, 120, 141, 135, 118, 128, 119, 136, 128, 147, 139, 138, 118, 110, 121, 108, 105, 117, 104, 148, 129, 119, 112, 127, 116, 126, 134, 129, 105, 127, 118, 120, 115, 132, 139, 132, 131, 121, 123, 114, 135, 127, 137, 118, 136, 124, 115, 126, 123, 125, 133, 121, 129, 128, 127, 125, 129, 121, 116, 126, 125, 139, 117, 161, 108, 119, 122, 120, 102, 138, 137, 122, 131, 146, 122, 125, 121, 129, 154, 119, 140, 120, 113, 118, 131, 129, 127, 123, 112, 115, 125, 121, 117, 126, 116, 118, 141, 122, 119, 127, 130, 119, 146, 122, 130, 119, 120, 113, 148, 151, 125, 125, 131, 121, 131, 129, 118, 124, 130, 131, 142, 140, 122, 122, 117, 122, 135, 131, 132, 121, 136, 124, 133, 131, 114, 135, 122, 129, 114, 125, 113, 124, 133, 118, 135, 133, 119, 125, 134, 139, 120, 137, 124, 145, 149, 150, 133, 120, 135, 133, 123, 128, 118, 121, 119, 134, 130, 117, 126, 120, 124, 115, 137, 121, 128, 126, 116, 120, 114, 119, 125, 148, 110, 134, 126, 128, 116, 130, 119, 110, 123, 124, 144, 126, 124, 132, 135, 125, 138, 155, 126, 117, 129, 113, 131, 127, 122, 112, 126, 105, 121, 123, 120, 111, 110, 116, 127, 98, 125, 123, 135, 122, 127, 123, 146, 121, 152, 125, 146, 119, 122, 131, 141, 122, 118, 127, 142, 117, 131, 126, 144, 121, 128, 116, 117, 117, 135, 122, 122, 126, 120, 131, 152, 130, 116, 128, 125, 140, 124, 119, 124, 122, 116, 127, 109, 115, 127, 124, 135, 133, 136, 130, 131, 136, 115, 129, 108, 129, 119, 98, 134, 112, 109, 125, 117, 109, 138, 121, 117, 127, 121, 119, 145, 127, 117, 124, 154, 136, 123, 127, 113, 138, 114, 113, 134, 132, 109, 119, 135, 111, 108, 115, 109, 118, 123, 131, 121, 126, 129, 113, 112, 123, 143, 140, 128, 142, 128, 155, 139, 125, 128, 138, 139, 139, 131, 121, 120, 121, 106, 139, 115, 132, 124, 138, 132, 118, 135, 166, 147, 113, 126, 108, 133, 123, 111, 137, 115, 114, 133, 130, 107, 118, 115, 108, 128, 115, 125, 124, 129, 122, 142, 141, 155, 127, 123, 134, 119, 134, 129, 110, 139, 107, 128, 135, 136, 112, 134, 123, 122, 112, 118, 125, 115, 135, 124, 115, 133, 141, 125, 127, 126, 124, 126, 139, 129, 126, 104, 129, 133, 119, 139, 119, 120, 118, 110, 124, 137, 126, 136, 149, 131, 130, 123, 130, 119, 149, 120, 142, 120, 146, 130, 130, 120, 143, 144, 124, 123, 126, 138, 130, 125, 124, 112, 136, 136, 112, 108, 142, 139, 131, 145, 119, 134, 121, 122, 126, 127, 145, 116, 132, 124, 123, 115, 112, 136, 124, 154, 136, 126, 142, 149, 133, 119, 127, 135, 118, 133, 107, 108, 125, 131, 144, 142, 114, 137, 108, 119, 126, 131, 126, 107, 126, 128, 119, 114, 128, 145, 115, 127, 123, 127, 118, 138, 129, 126, 105, 137, 125, 117, 115, 136, 116, 127, 124, 119, 121, 122, 116, 119, 112, 129, 142, 124, 113, 127, 128, 123, 112, 127, 129, 129, 127, 116, 125, 140, 115, 116, 121, 137, 140, 129, 130, 135, 115, 134, 107, 116, 130, 125, 124, 120, 131, 115, 128, 145, 111, 125, 145, 136, 123, 106, 114, 116, 121, 143, 93, 136, 122, 131, 134, 121, 124, 121, 121, 122, 117, 122, 139, 137, 138, 130, 117, 120, 115, 113, 141, 128, 124, 111, 132, 127, 128, 126, 120, 117, 123, 128, 121, 122, 111, 132, 127, 122, 117, 127, 116, 136, 123, 133, 114, 128, 121, 116, 142, 146, 125, 132, 130, 134, 128, 132, 131, 121, 130, 130, 150, 114, 133, 116, 134, 130, 107, 133, 137, 123, 132, 123, 121, 112, 106, 123, 133, 125, 136, 115, 114, 127, 99, 134, 123, 126, 138, 128, 112, 111, 113, 119, 112, 109, 130, 106, 146, 136, 127, 118, 133, 125, 113, 126, 128, 129, 120, 117, 129, 139, 116, 116, 114, 115, 124, 134, 109, 121, 105, 104, 118, 126, 147, 128, 123, 136, 140, 127, 133, 117, 110, 122, 130, 109, 117, 117, 128, 119, 123, 127, 132, 108, 124, 128, 130, 120, 119, 139, 131, 125, 134, 128, 136, 125, 121, 133, 130, 129, 136, 110, 133, 122, 112, 130, 137, 123, 115, 120, 117, 122, 138, 123, 110, 135, 134, 134, 135, 126, 145, 116, 120, 127, 126, 143, 116, 128, 125, 132, 119, 130, 132, 146, 126, 104, 116, 127, 117, 136, 126, 139, 115, 132, 127, 111, 118, 118, 134, 132, 116, 109, 126, 113, 129, 131, 129, 135, 128, 129, 140, 119, 126, 120, 124, 122, 124, 130, 122, 127, 122, 135, 120, 115, 132, 123, 120, 127, 124, 123, 118, 102, 109, 119, 141, 119, 144, 129, 131, 130, 118, 128, 121, 112, 137, 124, 129, 120, 142, 123, 115, 116, 128, 130, 127, 118, 141, 127, 134, 123, 132, 139, 116, 128, 121, 137, 136, 107, 133, 133, 124, 138, 128, 126, 124, 114, 109, 134, 114, 134, 123, 116, 128, 117, 121, 121, 118, 103, 129, 138, 129, 123, 120, 129, 121, 122, 141, 128, 144, 125, 127, 118, 114, 120, 140, 124, 124, 112, 132, 135, 144, 142, 137, 134, 136, 115, 128, 131, 122, 132, 125, 119, 123, 128, 121, 139, 127, 125, 130, 130, 114, 127, 115, 134, 130, 126, 129, 126, 125, 126, 125, 128, 116, 122, 133, 119, 124, 126, 117, 127, 128, 110, 129, 136, 125, 116, 113, 146, 134, 126, 117, 135, 113, 147, 125, 134, 138, 126, 129, 121, 113, 120, 122, 127, 133, 119, 131, 133, 131, 126, 131, 118, 138, 117, 122, 116, 128, 125, 119, 122, 129, 129, 112, 127, 130, 142, 123, 118, 133, 128, 130, 142, 121, 117, 126, 123, 124, 118, 120, 130, 117, 126, 128, 117, 139, 124, 132, 126, 136, 125, 133, 117, 130, 136, 147, 130, 130, 129, 120, 112, 124, 130, 115, 128, 126, 130, 137, 124, 116, 113, 138, 126, 136, 139, 130, 116, 130, 131, 118, 121, 143, 137, 126, 137, 136, 128, 118, 132, 131, 109, 118, 122, 112, 134, 126, 134, 105, 120, 124, 129, 124, 135, 119, 123, 149, 115, 125, 120, 145, 128, 132, 120, 131, 144, 131, 120, 109, 113, 133, 123, 118, 124, 119, 132, 147, 130, 130, 142, 130, 117, 135, 115, 120, 121, 126, 125, 107, 128, 140, 129, 123, 127, 111, 123, 106, 121, 115, 125, 132, 127, 122, 150, 128, 135, 132, 125, 133, 110, 126, 124, 137, 121, 146, 112, 120, 125, 131, 121, 135, 124, 128, 116, 128, 133, 119, 129, 111, 131, 120, 119, 120, 117, 155, 149, 116, 113, 133, 116, 127, 114, 115, 113, 108, 127, 112, 123, 125, 122, 122, 139, 137, 110, 106, 121, 139, 155, 133, 117, 124, 140, 113, 121, 120, 127, 120, 124, 129, 98, 116, 119, 122, 119, 131, 148, 121, 131, 128, 137, 121, 145, 118, 120, 133, 110, 119, 130, 126, 129, 136, 138, 129, 114, 119, 118, 125, 127, 147, 144, 123, 122, 113, 122, 111, 132, 137, 114, 115, 117, 127, 111, 129, 130, 126, 118, 127, 112, 124, 139, 137, 134, 118, 122, 123, 135, 116, 137, 125, 112, 110, 140, 127, 121, 115, 126, 137, 117, 124, 128, 139, 124, 121, 132, 110, 128, 121, 133, 124, 136, 129, 140, 104, 138, 132, 147, 127, 124, 127, 114, 121, 129, 114, 123, 125, 134, 123, 128, 133, 133, 124, 125, 125, 135, 143, 121, 127, 131, 103, 131, 122, 119, 120, 113, 126, 131, 135, 126, 123, 131, 136, 128, 132, 131, 121, 134, 130, 131, 116, 125, 125, 120, 109, 128, 123, 112, 122, 130, 119, 115, 111, 117, 141, 128, 128, 128, 115, 131, 119, 125, 117, 131, 122, 130, 134, 124, 118, 121, 140, 131, 122, 137, 112, 118, 133, 130, 133, 95, 117, 127, 142, 138, 124, 133, 130, 117, 146, 115, 119, 138, 115, 123, 129, 124, 132, 110, 152, 130, 99, 139, 121, 129, 122, 97, 115, 126, 127, 142, 139, 140, 122, 167, 129, 113, 128, 132, 136, 106, 113, 125, 140, 141, 140, 151, 129, 129, 125, 126, 124, 133, 117, 134, 118, 132, 140, 108, 118, 117, 120, 125, 119, 128, 118, 116, 112, 137, 126, 124, 135, 120, 129, 126, 123, 124, 128, 141, 121, 133, 110, 125, 133, 114, 129, 138, 117, 138, 143, 119, 132, 145, 110, 123, 125, 129, 119, 136, 126, 137, 140, 125, 108, 128, 121, 141, 157, 133, 130, 120, 138, 129, 125, 122, 130, 123, 121, 123, 133, 123, 137, 117, 126, 127, 130, 108, 121, 137, 134, 128, 124, 133, 132, 131, 126, 118, 119, 114, 118, 119, 125, 139, 115, 124, 120, 140, 138, 122, 155, 124, 121, 124, 113, 127, 119, 130, 126, 111, 136, 126, 121, 126, 139, 143, 127, 125, 126, 126, 136, 128, 113, 134, 135, 114, 119, 142, 109, 115, 121, 126, 138, 125, 130, 124, 110, 118, 118, 123, 119, 124, 140, 132, 145, 134, 138, 119, 114, 123, 128, 114, 109, 132, 135, 113, 124, 125, 112, 143, 141, 134, 121, 123, 126, 111, 116, 133, 116, 132, 131, 127, 124, 122, 135, 118, 118, 127, 124, 116, 129, 128, 113, 125, 128, 116, 112, 136, 135, 141, 123, 121, 125, 137, 135, 112, 121, 111, 129, 137, 116, 134, 132, 113, 113, 126, 120, 124, 127, 119, 142, 118, 125, 117, 128, 108, 123, 136, 109, 129, 128, 140, 129, 122, 125, 128, 126, 129, 112, 113, 135, 130, 125, 127, 132, 138, 136, 136, 129, 110, 112, 116, 132, 127, 117, 124, 131, 140, 123, 120, 125, 127, 128, 119, 126, 117, 127, 122, 124, 116, 125, 121, 142, 137, 117, 121, 117, 137, 121, 125, 140, 121, 114, 128, 128, 139, 118, 119, 132, 134, 110, 117, 139, 140, 133, 128, 139, 127, 119, 115, 126, 107, 130, 126, 110, 123, 117, 121, 133, 122, 113, 132, 127, 124, 121, 125, 112, 125, 120, 138, 142, 130, 135, 130, 133, 131, 121, 142, 138, 133, 122, 132, 141, 125, 112, 128, 114, 122, 135, 127, 142, 115, 105, 128, 137, 117, 125, 127, 136, 124, 129, 121, 117, 127, 128, 129, 128, 129, 136, 124, 121, 115, 130, 128, 115, 126, 124, 116, 146, 130, 120, 123, 115, 129, 121, 119, 133, 116, 143, 113, 108, 133, 125, 106, 129, 121, 135, 126, 115, 110, 112, 127, 112, 139, 110, 121, 134, 136, 126, 147, 135, 140, 132, 132, 127, 129, 129, 116, 132, 127, 130, 124, 115, 109, 121, 118, 113, 134, 119, 130, 123, 140, 118, 131, 127, 128, 130, 114, 113, 107, 126, 115, 132, 139, 142, 128, 124, 133, 124, 141, 135, 126, 129, 117, 124, 134, 122, 137, 124, 105, 118, 117, 131, 111, 120, 133, 116, 119, 114, 143, 140, 117, 133, 157, 117, 126, 126, 113, 111, 135, 124, 124, 143, 122, 149, 128, 126, 129, 119, 125, 117, 146, 111, 104, 119, 110, 136, 110, 106, 128, 108, 139, 133, 114, 119, 115, 139, 140, 136, 141, 123, 116, 129, 115, 123, 119, 141, 124, 165, 135, 119, 132, 119, 136, 121, 120, 106, 116, 127, 110, 126, 117, 124, 132, 135, 162, 139, 129, 103, 134, 119, 139, 138, 117, 131, 122, 121, 133, 122, 134, 117, 148, 123, 134, 121, 120, 138, 122, 130, 127, 136, 116, 139, 128, 130, 120, 133, 112, 104, 133, 110, 112, 134, 105, 122, 126, 96, 144, 146, 105, 132, 127, 123, 115, 125, 121, 140, 110, 108, 129, 136, 138, 129, 135, 130, 143, 99, 143, 132, 120, 123, 124, 133, 112, 120, 127, 109, 112, 121, 109, 127, 121, 124, 113, 133, 114, 107, 120, 136, 118, 110, 129, 123, 123, 146, 123, 112, 131, 121, 132, 133, 139, 120, 121, 126, 120, 101, 128, 135, 130, 140, 122, 134, 144, 117, 126, 115, 127, 114, 129, 135, 101, 130, 115, 147, 136, 120, 136, 131, 116, 109, 144, 118, 130, 120, 125, 121, 124, 125, 109, 105, 117, 142, 143, 127, 128, 120, 126, 113, 132, 110, 133, 128, 130, 110, 115, 132, 120, 131, 139, 122, 103, 122, 127, 116, 136, 127, 121, 121, 116, 115, 113, 139, 122, 117, 122, 120, 119, 119, 143, 124, 141, 121, 116, 134, 131, 129, 126, 128, 127, 105, 123, 129, 140, 134, 124, 151, 138, 129, 120, 127, 123, 115, 143, 118, 128, 107, 140, 140, 135, 119, 142, 115, 121, 117, 124, 122, 120, 125, 137, 112, 137, 128, 145, 122, 122, 121, 130, 145, 109, 139, 101, 118, 118, 125, 127, 118, 122, 134, 129, 119, 131, 143, 149, 123, 112, 126, 139, 120, 133, 122, 118, 131, 122, 128, 128, 124, 144, 123, 122, 139, 124, 105, 129, 124, 137, 121, 142, 121, 136, 118, 135, 138, 119, 129, 121, 127, 108, 149, 128, 137, 132, 116, 119, 127, 101, 135, 112, 135, 112, 127, 95, 122, 122, 135, 117, 135, 135, 129, 133, 135, 135, 139, 147, 124, 112, 122, 124, 108, 120, 131, 130, 110, 129, 126, 115, 107, 112, 130, 143, 106, 129, 104, 124, 126, 124, 122, 133, 104, 140, 118, 98, 126, 124, 122, 111, 129, 149, 141, 118, 113, 121, 133, 139, 130, 116, 114, 137, 132, 126, 110, 133, 136, 123, 108, 144, 117, 132, 129, 111, 130, 130, 135, 107, 115, 130, 125, 114, 117, 125, 105, 126, 118, 116, 111, 125, 139, 125, 119, 118, 131, 122, 124, 113, 124, 131, 132, 116, 118, 128, 121, 134, 129, 135, 129, 127, 126, 117, 114, 138, 133, 113, 122, 117, 111, 97, 110, 124, 119, 112, 153, 121, 125, 134, 123, 125, 130, 121, 131, 125, 123, 130, 116, 134, 133, 121, 134, 143, 125, 104, 113, 127, 129, 123, 142, 114, 141, 142, 128, 125, 127, 125, 117, 120, 106, 124, 130, 134, 135, 121, 144, 106, 130, 143, 132, 127, 127, 128, 119, 137, 109, 125, 115, 129, 154, 138, 133, 123, 123, 140, 137, 133, 121, 117, 131, 140, 134, 140, 125, 127, 121, 112, 134, 139, 125, 102, 121, 146, 112, 137, 130, 120, 137, 120, 139, 133, 143, 114, 124, 140, 127, 120, 112, 127, 127, 125, 143, 138, 102, 134, 114, 152, 127, 135, 115, 140, 126, 123, 150, 133, 120, 105, 132, 126, 130, 128, 117, 139, 109, 127, 138, 131, 123, 137, 121, 129, 116, 139, 110, 132, 112, 107, 123, 145, 116, 127, 133, 112, 134, 107, 115, 125, 116, 117, 134, 150, 131, 124, 147, 114, 129, 115, 95, 97, 129, 115, 136, 115, 127, 130, 112, 134, 121, 109, 108, 129, 104, 120, 124, 131, 127, 133, 138, 146, 126, 123, 113, 127, 144, 129, 131, 146, 123, 130, 127, 112, 132, 139, 123, 138, 121, 138, 131, 148, 130, 118, 115, 115, 100, 116, 125, 133, 119, 124, 121, 133, 129, 118, 136, 129, 129, 136, 117, 122, 118, 123, 138, 121, 120, 140, 127, 123, 107, 133, 117, 114, 112, 123, 129, 125, 137, 122, 129, 138, 139, 133, 116, 112, 126, 130, 130, 112, 130, 130, 126, 107, 115, 139, 113, 115, 148, 124, 109, 119, 120, 117, 124, 100, 128, 139, 123, 124, 130, 122, 124, 121, 111, 123, 127, 132, 121, 109, 141, 117, 128, 97, 118, 106, 128, 139, 135, 123, 131, 132, 119, 118, 155, 122, 115, 122, 137, 111, 127, 126, 135, 130, 129, 140, 140, 115, 133, 146, 119, 118, 120, 107, 139, 143, 146, 130, 129, 139, 133, 126, 132, 123, 126, 130, 117, 136, 148, 133, 135, 93, 111, 136, 137, 116, 149, 111, 124, 106, 121, 153, 128, 125, 127, 99, 138, 123, 120, 140, 118, 102, 129, 107, 129, 116, 125, 125, 128, 118, 142, 124, 112, 129, 118, 139, 128, 150, 111, 124, 131, 123, 136, 117, 138, 130, 118, 134, 138, 115, 126, 127, 122, 131, 125, 103, 134, 156, 141, 126, 111, 132, 121, 122, 104, 128, 121, 113, 126, 111, 117, 118, 132, 125, 133, 120, 96, 132, 125, 122, 126, 123, 121, 123, 125, 119, 138, 133, 116, 118, 134, 142, 119, 118, 123, 127, 132, 137, 129, 135, 121, 130, 118, 116, 126, 137, 121, 124, 98, 122, 138, 126, 117, 131, 125, 125, 143, 123, 127, 115, 126, 119, 134, 133, 127, 131, 141, 126, 120, 122, 126, 122, 120, 127, 129, 127, 101, 109, 122, 128, 121, 106, 96, 125, 124, 126, 145, 125, 134, 130, 127, 139, 151, 126, 129, 126, 116, 133, 122, 131, 140, 115, 143, 105, 133, 109, 115, 128, 136, 117, 135, 118, 135, 139, 127, 133, 118, 143, 106, 106, 117, 130, 127, 117, 143, 126, 123, 144, 128, 125, 120, 144, 129, 139, 133, 109, 134, 116, 125, 114, 117, 104, 120, 135, 116, 125, 122, 118, 131, 113, 120, 121, 130, 122, 127, 145, 125, 135, 130, 139, 109, 113, 120, 130, 117, 114, 133, 131, 118, 114, 130, 125, 108, 135, 125, 119, 120, 126, 135, 123, 117, 111, 123, 138, 138, 120, 131, 113, 126, 126, 128, 128, 122, 108, 114, 128, 137, 123, 135, 108, 136, 124, 131, 150, 134, 119, 125, 105, 139, 129, 122, 128, 140, 119, 133, 124, 121, 122, 129, 125, 126, 133, 129, 125, 120, 145, 131, 105, 127, 123, 114, 126, 153, 130, 134, 120, 139, 140, 133, 132, 118, 128, 137, 132, 133, 116, 115, 113, 128, 128, 105, 135, 127, 134, 118, 133, 122, 133, 124, 119, 120, 119, 119, 132, 139, 115, 156, 124, 108, 110, 131, 130, 128, 114, 120, 140, 123, 102, 122, 130, 132, 117, 117, 126, 125, 121, 129, 121, 127, 143, 118, 130, 142, 119, 118, 124, 114, 97, 120, 132, 130, 121, 115, 135, 133, 114, 145, 125, 121, 100, 136, 113, 131, 126, 134, 119, 118, 123, 122, 133, 124, 115, 120, 119, 135, 128, 121, 127, 138, 122, 140, 132, 119, 118, 125, 116, 129, 137, 125, 103, 129, 126, 118, 117, 134, 130, 121, 132, 120, 122, 148, 114, 122, 113, 112, 135, 116, 120, 120, 131, 132, 119, 116, 99, 114, 129, 122, 123, 109, 142, 124, 122, 128, 113, 116, 135, 121, 124, 125, 141, 115, 125, 104, 128, 132, 136, 143, 130, 124, 138, 127, 134, 121, 127, 137, 125, 131, 129, 123, 128, 117, 138, 118, 136, 123, 116, 137, 130, 140, 125, 124, 130, 131, 112, 123, 115, 141, 129, 148, 132, 122, 115, 123, 115, 153, 150, 122, 126, 130, 144, 136, 128, 136, 131, 141, 148, 127, 127, 121, 124, 136, 121, 122, 119, 125, 129, 114, 118, 123, 114, 126, 125, 114, 127, 120, 112, 132, 131, 119, 122, 119, 119, 150, 114, 128, 132, 125, 135, 129, 131, 125, 140, 129, 132, 125, 111, 136, 133, 134, 133, 138, 116, 119, 106, 129, 128, 133, 129, 141, 116, 126, 127, 131, 128, 132, 125, 136, 122, 120, 117, 120, 140, 136, 130, 136, 148, 122, 127, 117, 139, 119, 140, 121, 121, 119, 90, 128, 130, 127, 132, 125, 133, 141, 139, 125, 120, 130, 142, 145, 115, 132, 130, 134, 126, 128, 127, 129, 129, 127, 116, 121, 119, 127, 124, 127, 148, 123, 128, 119, 122, 131, 127, 126, 113, 117, 132, 124, 119, 116, 130, 133, 127, 128, 115, 126, 120, 125, 123, 125, 134, 130, 123, 121, 123, 125, 142, 129, 120, 130, 118, 119, 126, 121, 122, 123, 122, 128, 120, 128, 115, 133, 106, 131, 132, 115, 133, 124, 131, 128, 127, 130, 116, 129, 118, 115, 123, 123, 126, 112, 130, 113, 143, 105, 114, 132, 133, 116, 112, 125, 125, 126, 122, 127, 123, 118, 126, 141, 119, 125, 127, 124, 129, 127, 121, 123, 124, 149, 130, 121, 128, 113, 138, 122, 102, 128, 108, 128, 134, 130, 120, 118, 118, 140, 141, 112, 131, 140, 128, 126, 114, 128, 119, 117, 133, 127, 125, 132, 136, 134, 111, 133, 125, 141, 109, 137, 110, 135, 136, 142, 119, 141, 144, 126, 134, 128, 140, 134, 118, 104, 129, 124, 126, 142, 130, 115, 131, 132, 136, 118, 128, 115, 121, 137, 116, 118, 133, 123, 123, 156, 124, 120, 126, 139, 127, 116, 144, 120, 128, 128, 131, 126, 125, 140, 115, 130, 115, 132, 110, 117, 133, 112, 121, 118, 125, 131, 130, 122, 126, 132, 110, 121, 140, 137, 122, 130, 128, 132, 141, 135, 137, 128, 124, 133, 126, 125, 130, 106, 124, 112, 126, 124, 138, 128, 114, 135, 135, 126, 121, 135, 116, 116, 129, 126, 123, 113, 110, 124, 112, 138, 118, 133, 124, 116, 129, 126, 124, 129, 131, 128, 128, 122, 122, 126, 138, 112, 121, 123, 126, 120, 124, 109, 122, 122, 124, 116, 128, 131, 128, 124, 139, 113, 127, 123, 126, 122, 143, 128, 148, 138, 135, 129, 135, 124, 123, 130, 121, 118, 124, 130, 119, 123, 129, 124, 139, 119, 127, 122, 121, 128, 108, 141, 108, 118, 111, 102, 116, 132, 161, 123, 127, 127, 134, 110, 131, 106, 134, 132, 122, 123, 125, 126, 128, 137, 131, 124, 137, 132, 119, 121, 137, 122, 135, 128, 120, 120, 114, 124, 120, 125, 112, 126, 102, 129, 119, 118, 118, 123, 124, 123, 122, 127, 120, 122, 115, 119, 122, 132, 114, 151, 144, 116, 120, 116, 126, 124, 121, 108, 134, 132, 119, 127, 120, 128, 112, 124, 116, 131, 130, 121, 127, 126, 133, 124, 140, 128, 131, 109, 117, 123, 125, 122, 108, 131, 126, 135, 121, 118, 119, 130, 123, 134, 124, 148, 114, 130, 105, 117, 141, 116, 126, 114, 131, 127, 129, 129, 125, 128, 130, 136, 123, 140, 120, 136, 126, 115, 129, 135, 115, 132, 122, 119, 120, 139, 120, 136, 123, 128, 130, 111, 139, 119, 125, 136, 121, 124, 115, 122, 138, 133, 123, 129, 131, 140, 144, 116, 122, 130, 117, 140, 146, 120, 131, 121, 139, 125, 137, 126, 130, 105, 136, 114, 120, 133, 119, 129, 114, 126, 135, 125, 122, 120, 132, 136, 130, 136, 129, 124, 115, 130, 123, 122, 125, 112, 147, 128, 115, 133, 122, 130, 145, 82, 107, 131, 125, 125, 122, 109, 123, 132, 123, 139, 126, 112, 125, 110, 136, 133, 135, 134, 127, 126, 127, 135, 121, 127, 111, 112, 130, 127, 121, 119, 134, 142, 118, 139, 123, 112, 128, 118, 122, 117, 131, 108, 138, 115, 130, 117, 143, 103, 127, 134, 139, 123, 95, 121, 115, 131, 125, 122, 119, 138, 125, 134, 108, 121, 126, 121, 128, 137, 114, 123, 134, 127, 118, 121, 127, 126, 125, 138, 125, 128, 144, 119, 106, 128, 124, 139, 126, 114, 120, 129, 140, 123, 141, 128, 134, 131, 134, 122, 132, 122, 140, 135, 133, 126, 121, 129, 128, 130, 110, 125, 121, 130, 127, 124, 129, 120, 126, 124, 125, 131, 117, 117, 126, 123, 116, 118, 119, 112, 131, 126, 118, 122, 116, 123, 129, 116, 117, 118, 116, 121, 123, 136, 103, 132, 130, 144, 140, 138, 131, 136, 136, 145, 122, 124, 128, 116, 123, 132, 116, 125, 126, 117, 119, 125, 140, 105, 133, 125, 114, 141, 129, 105, 137, 138, 136, 121, 116, 122, 138, 135, 136, 144, 128, 131, 112, 119, 116, 103, 128, 133, 120, 128, 104, 120, 127, 131, 137, 125, 117, 115, 130, 120, 114, 132, 115, 142, 112, 119, 111, 130, 146, 122, 141, 115, 120, 138, 116, 130, 112, 120, 110, 134, 118, 124, 121, 133, 126, 130, 119, 137, 116, 122, 140, 122, 118, 134, 121, 132, 118, 126, 139, 134, 137, 113, 114, 114, 119, 115, 130, 128, 129, 117, 130, 126, 130, 113, 131, 120, 124, 136, 138, 127, 130, 138, 113, 112, 120, 117, 130, 118, 129, 109, 114, 134, 118, 133, 114, 129, 101, 126, 127, 121, 130, 130, 111, 128, 121, 125, 131, 130, 118, 121, 131, 133, 117, 122, 119, 118, 120, 119, 116, 132, 120, 124, 105, 124, 95, 129, 130, 124, 152, 127, 135, 130, 129, 132, 133, 139, 125, 124, 121, 121, 140, 113, 119, 118, 123, 127, 123, 134, 133, 126, 115, 137, 138, 106, 128, 126, 122, 125, 131, 123, 137, 138, 128, 125, 119, 136, 135, 121, 136, 117, 133, 122, 126, 153, 110, 125, 117, 127, 127, 128, 117, 129, 107, 143, 97, 120, 126, 128, 117, 142, 127, 121, 98, 133, 130, 119, 122, 121, 123, 134, 121, 117, 148, 129, 123, 120, 133, 123, 117, 137, 143, 114, 119, 128, 126, 125, 136, 123, 127, 119, 134, 132, 141, 140, 127, 120, 124, 123, 119, 150, 125, 126, 125, 133, 127, 124, 118, 125, 139, 138, 143, 130, 119, 120, 122, 126, 136, 101, 113, 124, 149, 103, 132, 128, 144, 127, 113, 120, 131, 113, 101, 123, 132, 123, 132, 135, 114, 119, 123, 135, 131, 139, 127, 122, 127, 137, 133, 130, 128, 123, 114, 113, 114, 133, 122, 126, 124, 131, 119, 130, 111, 132, 148, 113, 126, 114, 120, 119, 103, 144, 112, 120, 133, 127, 114, 115, 128, 101, 115, 134, 127, 122, 132, 146, 124, 139, 121, 131, 121, 124, 118, 139, 119, 120, 122, 118, 122, 160, 144, 142, 117, 132, 139, 120, 112, 125, 102, 113, 123, 120, 125, 118, 132, 123, 129, 141, 122, 123, 133, 115, 139, 104, 126, 124, 112, 124, 112, 120, 118, 115, 121, 106, 107, 134, 123, 139, 122, 124, 137, 126, 145, 153, 106, 108, 137, 138, 119, 129, 120, 129, 128, 135, 128, 126, 141, 137, 117, 136, 127, 150, 128, 119, 125, 120, 125, 114, 132, 112, 120, 118, 100, 131, 122, 125, 107, 122, 135, 131, 133, 129, 133, 138, 130, 129, 103, 132, 131, 123, 130, 126, 138, 135, 130, 110, 117, 129, 119, 125, 138, 112, 136, 119, 153, 125, 129, 117, 123, 119, 132, 120, 113, 137, 127, 137, 142, 137, 138, 119, 140, 125, 122, 131, 115, 133, 127, 128, 115, 143, 111, 121, 137, 135, 127, 126, 124, 120, 127, 127, 118, 117, 129, 129, 123, 138, 105, 125, 128, 124, 115, 127, 123, 117, 138, 132, 110, 125, 113, 124, 127, 119, 123, 118, 120, 142, 135, 132, 114, 136, 142, 123, 101, 139, 121, 123, 137, 108, 133, 119, 135, 134, 122, 137, 121, 120, 119, 138, 132, 137, 126, 134, 119, 121, 145, 126, 131, 138, 142, 142, 121, 117, 139, 160, 132, 134, 126, 122, 110, 130, 130, 124, 132, 118, 111, 125, 141, 123, 127, 129, 119, 129, 122, 128, 127, 127, 130, 142, 118, 127, 111, 139, 141, 133, 130, 117, 125, 105, 132, 114, 119, 129, 126, 127, 124, 131, 137, 116, 119, 135, 123, 117, 129, 118, 120, 115, 144, 124, 130, 134, 118, 114, 112, 131, 126, 140, 118, 114, 115, 118, 123, 143, 138, 148, 145, 103, 116, 104, 137, 130, 113, 118, 135, 138, 105, 144, 118, 117, 127, 138, 120, 118, 117, 129, 130, 108, 119, 135, 125, 130, 113, 135, 132, 123, 130, 124, 135, 122, 140, 131, 127, 127, 137, 113, 136, 118, 123, 102, 154, 107, 129, 124, 130, 131, 122, 126, 139, 129, 131, 139, 120, 128, 129, 102, 126, 136, 136, 119, 143, 116, 113, 115, 127, 133, 117, 126, 116, 118, 123, 113, 126, 127, 131, 124, 124, 144, 128, 111, 138, 109, 118, 135, 113, 159, 114, 126, 121, 132, 99, 142, 122, 113, 113, 121, 125, 133, 143, 121, 119, 128, 125, 121, 130, 112, 100, 122, 118, 130, 122, 151, 128, 125, 115, 136, 128, 134, 115, 131, 116, 126, 110, 139, 123, 120, 143, 141, 132, 123, 126, 114, 134, 120, 125, 142, 123, 123, 143, 130, 132, 125, 129, 127, 120, 115, 131, 128, 112, 121, 122, 113, 121, 117, 110, 138, 131, 136, 157, 124, 134, 135, 114, 137, 144, 132, 125, 119, 135, 129, 121, 126, 125, 119, 129, 142, 132, 138, 134, 138, 108, 125, 117, 133, 117, 139, 118, 137, 125, 134, 115, 146, 129, 111, 138, 117, 118, 116, 116, 110, 126, 109, 115, 149, 128, 115, 117, 116, 113, 128, 128, 138, 123, 130, 155, 124, 135, 142, 118, 128, 123, 137, 117, 134, 126, 124, 126, 116, 124, 126, 119, 121, 112, 113, 114, 132, 115, 128, 129, 124, 117, 119, 139, 110, 138, 118, 125, 128, 128, 114, 125, 125, 126, 117, 107, 136, 136, 133, 116, 149, 127, 146, 124, 129, 128, 111, 129, 126, 142, 132, 131, 118, 133, 127, 144, 128, 128, 128, 125, 143, 136, 136, 135, 134, 129, 132, 129, 128, 141, 130, 120, 126, 118, 136, 121, 110, 125, 131, 126, 129, 141, 122, 121, 129, 136, 128, 131, 110, 122, 130, 138, 125, 132, 119, 145, 126, 130, 121, 119, 129, 119, 130, 134, 125, 139, 132, 128, 107, 111, 112, 125, 123, 128, 126, 134, 124, 122, 122, 125, 121, 108, 141, 123, 118, 107, 133, 146, 122, 129, 124, 142, 128, 133, 138, 117, 123, 135, 125, 111, 128, 125, 111, 97, 137, 122, 117, 140, 124, 125, 131, 136, 122, 133, 117, 126, 115, 134, 125, 113, 108, 117, 125, 129, 118, 134, 137, 126, 120, 119, 121, 119, 133, 102, 129, 120, 124, 127, 124, 149, 126, 121, 129, 122, 124, 111, 132, 107, 108, 141, 129, 116, 134, 123, 146, 117, 134, 119, 120, 135, 152, 130, 121, 122, 124, 128, 137, 128, 119, 117, 118, 115, 109, 114, 139, 115, 121, 120, 99, 122, 133, 114, 119, 119, 114, 118, 117, 114, 125, 126, 120, 134, 130, 116, 115, 109, 116, 135, 137, 127, 133, 116, 133, 129, 111, 137, 134, 108, 134, 106, 120, 121, 120, 135, 147, 139, 123, 118, 132, 127, 120, 140, 120, 134, 116, 130, 124, 128, 133, 118, 115, 143, 127, 124, 120, 104, 109, 108, 114, 116, 118, 100, 115, 113, 121, 121, 112, 124, 137, 119, 112, 118, 132, 115, 121, 115, 140, 119, 131, 124, 131, 111, 134, 114, 138, 134, 129, 122, 123, 111, 133, 125, 129, 120, 137, 124, 127, 107, 125, 128, 142, 124, 135, 129, 127, 123, 125, 131, 125, 134, 117, 136, 120, 145, 138, 125, 120, 119, 149, 118, 124, 135, 122, 132, 124, 126, 146, 146, 120, 130, 120, 127, 109, 130, 117, 139, 119, 112, 123, 120, 121, 120, 136, 130, 123, 128, 126, 138, 114, 115, 125, 138, 138, 121, 125, 116, 122, 138, 128, 124, 122, 113, 114, 145, 132, 108, 134, 120, 119, 139, 150, 133, 125, 130, 148, 127, 130, 124, 124, 128, 118, 124, 120, 110, 142, 138, 129, 141, 127, 132, 137, 114, 133, 129, 123, 127, 125, 118, 141, 116, 130, 141, 133, 120, 138, 140, 120, 133, 117, 126, 135, 126, 131, 107, 140, 124, 119, 121, 129, 140, 129, 122, 120, 129, 133, 130, 132, 126, 109, 130, 127, 119, 113, 120, 142, 119, 134, 133, 138, 128, 117, 127, 128, 133, 127, 150, 131, 130, 123, 126, 117, 121, 129, 138, 115, 124, 125, 124, 136, 134, 133, 122, 118, 136, 139, 116, 118, 115, 130, 118, 128, 117, 119, 125, 110, 112, 102, 125, 133, 142, 139, 124, 128, 122, 132, 113, 128, 123, 130, 132, 130, 126, 130, 140, 127, 101, 115, 90, 127, 136, 134, 115, 123, 149, 118, 136, 111, 120, 113, 113, 138, 121, 122, 133, 131, 122, 118, 125, 119, 109, 124, 135, 144, 154, 107, 123, 127, 105, 120, 134, 125, 128, 145, 108, 144, 149, 143, 135, 117, 133, 130, 123, 124, 98, 127, 135, 128, 128, 126, 120, 108, 123, 118, 125, 125, 131, 129, 138, 122, 133, 118, 136, 143, 126, 115, 118, 107, 120, 124, 98, 124, 110, 141, 114, 131, 117, 129, 137, 168, 119, 122, 128, 120, 134, 144, 110, 130, 121, 125, 129, 126, 129, 133, 141, 120, 130, 116, 87, 124, 128, 126, 136, 134, 126, 124, 126, 112, 124, 125, 112, 120, 138, 154, 120, 136, 148, 129, 126, 96, 115, 137, 109, 126, 131, 125, 135, 123, 134, 131, 123, 148, 129, 132, 122, 126, 125, 123, 125, 128, 126, 138, 123, 128, 128, 135, 126, 136, 139, 126, 145, 125, 122, 132, 131, 125, 108, 106, 116, 145, 118, 136, 148, 132, 133, 124, 126, 147, 134, 130, 128, 128, 128, 136, 144, 131, 128, 120, 110, 139, 127, 95, 124, 139, 130, 114, 125, 116, 123, 117, 113, 117, 137, 129, 115, 127, 123, 101, 130, 122, 123, 128, 133, 122, 118, 131, 115, 117, 121, 125, 138, 144, 123, 124, 104, 144, 125, 107, 116, 129, 130, 113, 126, 130, 118, 130, 142, 120, 121, 115, 131, 124, 126, 120, 130, 138, 123, 134, 117, 106, 115, 132, 124, 113, 129, 128, 137, 121, 134, 137, 127, 133, 138, 121, 144, 132, 125, 134, 126, 117, 131, 141, 121, 105, 115, 136, 125, 144, 108, 123, 123, 117, 127, 111, 147, 129, 115, 121, 131, 134, 126, 124, 114, 130, 132, 127, 157, 109, 124, 118, 121, 124, 138, 123, 119, 114, 136, 128, 132, 122, 128, 143, 132, 115, 135, 124, 135, 140, 131, 110, 109, 121, 132, 118, 123, 122, 120, 133, 117, 125, 91, 130, 128, 114, 120, 114, 111, 128, 133, 139, 134, 131, 136, 122, 120, 112, 145, 120, 121, 116, 125, 113, 128, 131, 114, 127, 142, 122, 156, 109, 124, 120, 128, 147, 132, 114, 120, 127, 123, 152, 145, 122, 121, 127, 140, 126, 126, 118, 131, 126, 139, 126, 152, 121, 142, 121, 129, 126, 133, 135, 129, 113, 144, 116, 135, 117, 137, 117, 110, 126, 126, 126, 162, 108, 129, 137, 127, 120, 121, 136, 126, 121, 131, 125, 140, 114, 136, 128, 140, 120, 142, 117, 126, 111, 128, 118, 126, 135, 125, 115, 116, 137, 145, 141, 129, 136, 140, 130, 145, 118, 109, 135, 140, 152, 123, 120, 123, 110, 131, 134, 115, 133, 143, 123, 133, 125, 132, 137, 112, 141, 130, 112, 114, 140, 115, 123, 121, 126, 121, 118, 121, 125, 160, 125, 124, 139, 135, 136, 117, 140, 110, 127, 131, 135, 140, 147, 130, 136, 123, 144, 129, 140, 135, 133, 124, 122, 114, 114, 131, 132, 118, 129, 137, 121, 126, 134, 105, 107, 119, 133, 130, 123, 111, 106, 138, 104, 136, 129, 138, 122, 139, 106, 135, 117, 143, 115, 115, 110, 119, 126, 119, 105, 123, 128, 122, 122, 135, 139, 137, 118, 129, 138, 143, 118, 130, 123, 148, 122, 119, 116, 145, 130, 112, 124, 112, 127, 105, 130, 135, 132, 125, 127, 117, 135, 116, 144, 134, 133, 148, 119, 123, 110, 132, 133, 132, 140, 137, 130, 115, 132, 124, 132, 129, 124, 110, 141, 127, 119, 128, 118, 108, 138, 141, 113, 117, 116, 95, 122, 143, 108, 110, 144, 124, 118, 121, 140, 134, 115, 127, 135, 126, 131, 131, 128, 104, 134, 135, 146, 158, 127, 129, 135, 131, 133, 120, 126, 120, 123, 121, 135, 120, 138, 125, 131, 125, 133, 138, 136, 132, 114, 133, 120, 130, 124, 126, 119, 133, 119, 113, 119, 121, 116, 138, 145, 135, 133, 129, 121, 121, 141, 111, 126, 132, 129, 128, 118, 102, 128, 138, 124, 124, 125, 134, 130, 117, 123, 124, 122, 136, 134, 111, 142, 144, 119, 122, 117, 125, 124, 116, 136, 137, 122, 112, 114, 136, 126, 113, 117, 128, 128, 132, 129, 133, 114, 143, 130, 125, 128, 114, 127, 120, 123, 139, 120, 135, 134, 121, 116, 119, 131, 130, 126, 105, 136, 120, 124, 110, 111, 120, 129, 134, 125, 122, 130, 137, 138, 122, 146, 118, 114, 123, 115, 125, 98, 137, 131, 132, 122, 118, 116, 127, 129, 118, 134, 136, 128, 131, 122, 102, 125, 134, 111, 130, 112, 120, 114, 143, 131, 122, 138, 125, 128, 106, 138, 119, 130, 116, 141, 134, 138, 98, 136, 117, 116, 124, 115, 127, 133, 120, 122, 120, 156, 141, 120, 128, 127, 121, 118, 129, 118, 149, 125, 103, 115, 127, 130, 118, 117, 124, 125, 112, 112, 119, 128, 128, 141, 122, 130, 116, 136, 147, 112, 126, 136, 125, 134, 115, 137, 128, 133, 133, 135, 123, 127, 124, 120, 130, 130, 112, 124, 118, 132, 141, 124, 125, 131, 133, 123, 117, 111, 128, 139, 139, 140, 129, 114, 112, 135, 125, 148, 121, 114, 132, 134, 133, 115, 114, 123, 126, 103, 127, 124, 149, 133, 126, 118, 133, 136, 131, 129, 117, 124, 124, 122, 138, 113, 127, 113, 122, 110, 127, 127, 112, 118, 116, 126, 135, 131, 119, 127, 140, 140, 123, 130, 126, 159, 104, 113, 141, 122, 131, 127, 119, 144, 129, 135, 118, 122, 136, 137, 132, 129, 126, 132, 139, 122, 114, 127, 117, 119, 146, 106, 137, 140, 137, 127, 112, 126, 122, 117, 129, 141, 129, 121, 134, 127, 130, 127, 117, 147, 125, 122, 127, 146, 131, 146, 127, 126, 123, 125, 124, 118, 120, 127, 107, 112, 139, 113, 130, 113, 110, 114, 119, 134, 156, 140, 141, 132, 120, 120, 146, 142, 120, 104, 122, 105, 127, 120, 134, 126, 121, 122, 118, 126, 143, 113, 126, 122, 113, 131, 132, 136, 117, 124, 124, 127, 121, 124, 123, 149, 122, 119, 125, 128, 128, 111, 121, 128, 123, 143, 160, 125, 121, 142, 120, 126, 143, 122, 139, 125, 127, 109, 122, 140, 125, 130, 114, 152, 115, 117, 101, 122, 130, 124, 118, 113, 126, 122, 128, 119, 125, 137, 126, 132, 120, 128, 125, 125, 126, 109, 125, 131, 149, 130, 149, 122, 141, 114, 117, 126, 136, 123, 124, 136, 115, 126, 111, 118, 113, 140, 132, 111, 137, 130, 118, 131, 122, 142, 127, 122, 127, 111, 134, 114, 134, 132, 131, 124, 135, 119, 119, 113, 98, 143, 115, 133, 121, 121, 125, 121, 125, 115, 143, 121, 128, 146, 123, 112, 106, 106, 123, 144, 138, 124, 116, 124, 129, 140, 140, 125, 125, 118, 149, 124, 127, 133, 111, 132, 139, 130, 115, 115, 128, 117, 118, 130, 130, 110, 121, 140, 114, 117, 112, 123, 134, 122, 125, 126, 113, 107, 116, 129, 124, 134, 124, 125, 126, 135, 126, 123, 123, 126, 117, 116, 123, 130, 125, 117, 137, 144, 127, 128, 133, 106, 128, 138, 103, 114, 154, 118, 125, 112, 117, 118, 109, 141, 115, 115, 131, 133, 117, 138, 138, 147, 141, 118, 120, 145, 133, 127, 136, 120, 126, 116, 134, 111, 116, 117, 138, 108, 114, 151, 119, 125, 127, 111, 124, 123, 117, 127, 109, 109, 110, 114, 118, 137, 118, 120, 132, 113, 126, 139, 111, 132, 119, 121, 128, 117, 138, 118, 138, 125, 113, 120, 136, 120, 125, 120, 126, 123, 118, 142, 117, 133, 134, 134, 120, 134, 110, 128, 104, 149, 121, 122, 138, 134, 120, 128, 138, 123, 133, 120, 125, 112, 112, 127, 128, 129, 126, 148, 118, 129, 127, 114, 115, 118, 144, 127, 115, 114, 118, 107, 116, 115, 130, 114, 132, 109, 122, 127, 122, 131, 113, 109, 118, 114, 115, 116, 114, 126, 120, 136, 144, 107, 130, 121, 131, 118, 132, 132, 135, 138, 122, 110, 132, 113, 160, 125, 140, 118, 126, 132, 133, 124, 109, 120, 135, 134, 123, 115, 127, 139, 113, 113, 120, 119, 121, 117, 123, 109, 98, 135, 128, 124, 124, 119, 135, 120, 106, 117, 131, 141, 117, 127, 131, 130, 118, 132, 134, 133, 136, 138, 130, 125, 128, 137, 121, 105, 121, 131, 120, 132, 125, 128, 145, 124, 130, 113, 141, 112, 119, 104, 110, 123, 114, 120, 120, 134, 140, 125, 139, 146, 124, 118, 123, 109, 135, 123, 114, 137, 129, 118, 132, 126, 135, 118, 134, 139, 129, 136, 129, 120, 115, 133, 114, 132, 136, 120, 118, 111, 119, 135, 128, 135, 118, 129, 150, 141, 113, 118, 116, 124, 144, 124, 132, 133, 115, 132, 110, 120, 137, 126, 156, 140, 136, 126, 112, 119, 127, 134, 127, 150, 131, 130, 125, 122, 105, 127, 118, 113, 117, 142, 137, 130, 126, 112, 112, 136, 119, 133, 162, 135, 98, 143, 104, 128, 139, 115, 128, 115, 120, 122, 121, 135, 115, 143, 126, 130, 119, 123, 122, 127, 153, 111, 122, 112, 119, 121, 123, 122, 131, 120, 120, 119, 122, 129, 137, 119, 108, 133, 129, 151, 132, 123, 130, 124, 137, 102, 128, 128, 135, 127, 113, 100, 129, 135, 121, 113, 133, 114, 133, 119, 108, 121, 115, 115, 130, 125, 119, 120, 115, 122, 139, 110, 118, 115, 130, 109, 116, 122, 138, 131, 118, 133, 124, 116, 121, 125, 140, 136, 114, 129, 133, 117, 124, 150, 114, 100, 120, 130, 113, 129, 126, 137, 123, 120, 110, 136, 128, 135, 114, 111, 118, 113, 127, 112, 111, 128, 112, 125, 110, 129, 140, 146, 108, 102, 138, 115, 125, 124, 115, 121, 130, 131, 122, 121, 130, 137, 121, 129, 118, 111, 138, 121, 110, 121, 124, 130, 128, 117, 119, 119, 128, 144, 124, 133, 129, 126, 129, 106, 132, 150, 105, 115, 126, 131, 125, 117, 124, 104, 122, 141, 128, 107, 142, 147, 118, 119, 120, 118, 135, 136, 128, 138, 126, 123, 125, 133, 120, 119, 118, 107, 127, 130, 136, 109, 128, 138, 122, 147, 137, 111, 135, 126, 119, 120, 118, 117, 129, 118, 114, 133, 117, 133, 99, 112, 125, 115, 127, 126, 118, 116, 118, 127, 127, 125, 134, 129, 121, 132, 117, 134, 124, 132, 103, 136, 144, 129, 121, 130, 131, 112, 109, 126, 125, 124, 141, 132, 124, 134, 114, 126, 128, 104, 131, 115, 117, 109, 125, 137, 121, 101, 124, 114, 128, 115, 140, 116, 126, 130, 131, 128, 128, 108, 123, 120, 108, 141, 114, 100, 140, 120, 122, 134, 106, 116, 136, 122, 153, 128, 115, 107, 125, 132, 126, 149, 114, 130, 119, 132, 121, 130, 122, 148, 127, 122, 108, 128, 131, 125, 150, 108, 125, 116, 122, 130, 111, 112, 118, 140, 145, 146, 119, 137, 113, 133, 124, 133, 133, 124, 117, 117, 128, 125, 116, 102, 115, 120, 149, 118, 125, 112, 146, 133, 124, 119, 124, 133, 128, 114, 130, 120, 115, 127, 133, 129, 120, 126, 121, 141, 120, 131, 123, 108, 119, 147, 133, 140, 122, 118, 117, 129, 124, 117, 123, 121, 131, 102, 111, 126, 130, 120, 131, 131, 143, 125, 118, 145, 108, 127, 120, 125, 130, 123, 135, 141, 131, 139, 126, 134, 128, 100, 115, 121, 140, 130, 119, 135, 126, 117, 124, 127, 142, 134, 121, 111, 128, 137, 118, 133, 124, 132, 119, 142, 137, 124, 117, 126, 119, 117, 131, 124, 114, 134, 123, 103, 113, 121, 128, 119, 131, 133, 114, 105, 119, 118, 130, 121, 127, 143, 121, 130, 117, 128, 138, 133, 130, 110, 115, 99, 127, 130, 144, 118, 128, 109, 131, 117, 122, 133, 113, 114, 126, 134, 128, 123, 127, 117, 113, 134, 131, 117, 112, 117, 114, 121, 117, 122, 104, 117, 131, 122, 110, 127, 122, 115, 100, 124, 102, 116, 129, 121, 131, 111, 116, 102, 125, 121, 136, 125, 140, 141, 125, 120, 111, 138, 130, 112, 137, 122, 119, 124, 130, 130, 127, 114, 133, 131, 138, 125, 125, 128, 112, 130, 116, 129, 129, 121, 114, 123, 120, 126, 129, 121, 120, 131, 132, 125, 110, 119, 134, 120, 92, 125, 113, 123, 130, 146, 125, 149, 123, 132, 144, 119, 107, 134, 115, 122, 136, 144, 117, 142, 116, 118, 127, 141, 129, 136, 107, 141, 116, 107, 121, 134, 127, 121, 107, 131, 122, 120, 128, 120, 122, 128, 116, 108, 110, 126, 133, 126, 131, 121, 103, 139, 125, 135, 122, 125, 118, 129, 120, 118, 134, 123, 127, 121, 129, 119, 115, 140, 134, 125, 88, 115, 116, 119, 133, 133, 139, 122, 127, 108, 133, 126, 113, 132, 136, 147, 117, 119, 121, 125, 121, 142, 118, 136, 135, 126, 107, 122, 114, 120, 125, 126, 107, 131, 130, 129, 137, 119, 121, 145, 127, 114, 121, 132, 130, 139, 118, 87, 127, 120, 124, 143, 118, 128, 136, 110, 130, 118, 130, 128, 108, 132, 120, 126, 122, 129, 111, 115, 129, 118, 133, 136, 123, 136, 149, 131, 135, 134, 137, 120, 113, 120, 137, 131, 115, 121, 129, 130, 110, 110, 129, 106, 121, 125, 131, 146, 121, 113, 129, 131, 125, 147, 135, 149, 124, 133, 121, 125, 127, 136, 133, 105, 140, 134, 137, 139, 114, 130, 138, 122, 130, 119, 119, 128, 117, 125, 112, 119, 139, 115, 135, 119, 119, 118, 126, 122, 129, 123, 132, 117, 128, 118, 139, 133, 141, 117, 132, 128, 121, 118, 139, 120, 130, 134, 118, 138, 151, 134, 118, 123, 134, 135, 126, 134, 103, 127, 131, 143, 137, 111, 134, 153, 127, 122, 129, 134, 124, 127, 133, 148, 119, 137, 121, 108, 112, 126, 134, 118, 123, 114, 141, 142, 143, 135, 126, 123, 123, 108, 141, 118, 138, 127, 119, 121, 123, 136, 138, 118, 132, 128, 129, 129, 126, 138, 107, 130, 121, 138, 115, 116, 122, 102, 130, 115, 95, 114, 130, 118, 136, 121, 95, 143, 135, 136, 115, 119, 126, 120, 113, 136, 126, 117, 111, 131, 123, 126, 114, 123, 104, 120, 113, 112, 122, 124, 141, 133, 134, 126, 125, 127, 132, 112, 136, 119, 125, 135, 138, 135, 121, 112, 135, 127, 119, 126, 114, 120, 110, 138, 107, 139, 123, 94, 122, 116, 126, 160, 136, 109, 127, 139, 142, 124, 126, 112, 139, 115, 123, 114, 125, 140, 109, 142, 128, 125, 134, 118, 123, 136, 112, 115, 113, 136, 120, 105, 113, 130, 124, 124, 138, 120, 120, 121, 118, 138, 138, 112, 136, 129, 129, 122, 125, 131, 113, 119, 118, 112, 103, 114, 112, 107, 127, 125, 118, 107, 103, 111, 104, 126, 114, 129, 124, 131, 122, 136, 111, 135, 137, 132, 124, 130, 132, 134, 127, 121, 131, 112, 104, 139, 126, 123, 131, 140, 133, 141, 133, 115, 135, 133, 112, 146, 131, 114, 112, 126, 122, 114, 108, 136, 119, 120, 121, 124, 127, 119, 113, 99, 139, 135, 133, 115, 113, 145, 127, 123, 129, 138, 122, 126, 122, 128, 117, 132, 115, 113, 110, 124, 133, 131, 139, 133, 154, 130, 129, 114, 132, 123, 122, 117, 122, 129, 137, 123, 125, 115, 123, 125, 126, 111, 131, 106, 109, 125, 128, 145, 126, 152, 120, 116, 124, 130, 113, 139, 140, 119, 94, 123, 136, 134, 123, 124, 116, 122, 120, 131, 135, 124, 119, 139, 126, 130, 121, 126, 133, 118, 118, 126, 120, 108, 121, 115, 135, 114, 123, 101, 131, 90, 130, 133, 123, 131, 134, 159, 126, 121, 127, 117, 129, 116, 108, 121, 154, 129, 135, 131, 126, 134, 120, 142, 121, 121, 130, 118, 110, 155, 119, 123, 119, 134, 139, 132, 117, 137, 119, 124, 132, 135, 117, 138, 127, 120, 115, 134, 99, 114, 125, 146, 113, 120, 122, 133, 127, 128, 118, 119, 126, 130, 129, 118, 118, 136, 132, 131, 133, 119, 155, 126, 113, 114, 128, 129, 116, 138, 145, 120, 143, 133, 127, 129, 137, 122, 124, 132, 123, 117, 115, 119, 121, 127, 116, 124, 124, 123, 132, 105, 131, 125, 120, 133, 122, 137, 121, 130, 127, 119, 141, 134, 131, 125, 123, 126, 131, 135, 132, 124, 122, 133, 111, 113, 134, 132, 140, 123, 125, 104, 136, 136, 121, 106, 114, 104, 124, 130, 110, 124, 122, 147, 125, 134, 115, 130, 126, 133, 125, 122, 116, 124, 123, 124, 129, 125, 122, 131, 125, 120, 120, 127, 138, 126, 106, 117, 145, 111, 121, 143, 119, 119, 118, 109, 103, 140, 118, 138, 132, 114, 127, 127, 121, 113, 115, 124, 131, 146, 104, 133, 122, 139, 128, 134, 116, 132, 123, 121, 120, 132, 124, 132, 128, 106, 141, 139, 129, 124, 121, 125, 123, 140, 141, 139, 125, 137, 132, 145, 115, 136, 131, 113, 97, 107, 124, 122, 130, 118, 104, 132, 122, 103, 118, 135, 134, 125, 131, 143, 141, 121, 112, 130, 114, 117, 121, 109, 140, 137, 117, 114, 112, 115, 126, 130, 142, 129, 105, 121, 135, 128, 122, 157, 133, 133, 115, 122, 115, 128, 125, 102, 122, 123, 127, 140, 122, 126, 110, 128, 113, 131, 120, 119, 117, 116, 135, 125, 125, 105, 132, 103, 114, 130, 112, 109, 129, 132, 123, 132, 158, 109, 145, 122, 135, 140, 133, 115, 131, 136, 134, 132, 114, 123, 131, 125, 138, 118, 109, 131, 124, 136, 112, 120, 126, 115, 116, 135, 126, 115, 125, 133, 122, 124, 114, 116, 142, 118, 109, 128, 130, 130, 125, 107, 118, 139, 148, 122, 151, 137, 115, 124, 109, 123, 132, 121, 119, 138, 109, 137, 136, 111, 124, 119, 124, 120, 122, 134, 121, 132, 119, 129, 110, 128, 120, 133, 126, 138, 111, 109, 115, 125, 112, 116, 122, 125, 131, 122, 106, 129, 107, 132, 137, 109, 136, 126, 127, 135, 129, 126, 141, 110, 151, 142, 113, 133, 127, 112, 118, 114, 133, 122, 125, 118, 138, 126, 126, 116, 132, 130, 123, 120, 115, 136, 117, 140, 135, 143, 132, 116, 132, 120, 126, 134, 120, 118, 105, 119, 124, 124, 125, 134, 129, 122, 126, 114, 132, 137, 119, 122, 129, 128, 129, 129, 128, 135, 125, 126, 113, 130, 109, 119, 130, 118, 111, 129, 138, 138, 120, 116, 120, 121, 133, 121, 141, 131, 124, 126, 123, 127, 106, 106, 123, 137, 129, 128, 131, 115, 128, 130, 140, 128, 112, 112, 115, 133, 146, 129, 123, 118, 129, 119, 132, 135, 122, 118, 133, 132, 139, 129, 129, 142, 120, 108, 117, 129, 122, 137, 115, 110, 122, 126, 123, 122, 118, 110, 138, 109, 121, 139, 148, 138, 120, 141, 130, 128, 116, 142, 109, 120, 116, 128, 133, 112, 128, 125, 132, 113, 135, 115, 135, 138, 130, 126, 128, 128, 127, 144, 123, 99, 130, 125, 143, 109, 128, 116, 148, 142, 133, 117, 107, 137, 120, 117, 123, 123, 120, 115, 133, 118, 129, 141, 119, 119, 144, 127, 129, 126, 140, 122, 143, 126, 119, 144, 124, 122, 117, 118, 114, 122, 140, 124, 122, 145, 122, 118, 143, 118, 124, 119, 120, 123, 129, 134, 139, 133, 134, 117, 123, 124, 116, 124, 143, 124, 128, 121, 131, 120, 118, 115, 129, 115, 126, 137, 133, 126, 136, 144, 133, 126, 92, 134, 141, 115, 122, 111, 120, 119, 114, 114, 132, 105, 113, 130, 110, 126, 128, 127, 130, 132, 121, 113, 106, 118, 133, 125, 112, 135, 114, 111, 131, 125, 143, 119, 141, 119, 108, 131, 133, 131, 121, 128, 127, 119, 137, 114, 134, 139, 120, 160, 134, 143, 135, 113, 121, 127, 126, 117, 135, 145, 122, 130, 118, 129, 127, 114, 128, 121, 110, 118, 127, 127, 105, 118, 123, 142, 140, 114, 122, 128, 120, 127, 137, 120, 136, 128, 123, 107, 142, 126, 137, 113, 123, 121, 135, 134, 130, 120, 121, 125, 135, 127, 115, 133, 140, 136, 127, 110, 125, 132, 134, 127, 136, 122, 128, 127, 121, 106, 141, 129, 114, 126, 109, 105, 115, 138, 124, 141, 119, 128, 119, 134, 110, 125, 115, 115, 122, 129, 131, 130, 116, 126, 131, 125, 120, 125, 109, 126, 127, 113, 134, 122, 119, 148, 121, 122, 116, 129, 134, 134, 132, 127, 123, 123, 143, 128, 129, 124, 126, 119, 138, 115, 125, 121, 112, 149, 120, 144, 137, 118, 114, 114, 116, 130, 98, 135, 152, 149, 125, 130, 117, 124, 146, 121, 122, 114, 131, 138, 114, 112, 149, 120, 118, 133, 126, 127, 111, 139, 114, 123, 126, 128, 123, 118, 126, 117, 129, 128, 129, 113, 138, 142, 134, 118, 127, 124, 127, 132, 126, 120, 121, 136, 115, 125, 133, 127, 138, 136, 128, 114, 121, 138, 117, 130, 130, 114, 116, 134, 120, 124, 117, 130, 123, 117, 142, 138, 120, 121, 142, 123, 128, 119, 122, 116, 120, 125, 145, 135, 132, 134, 141, 128, 113, 130, 137, 113, 124, 117, 123, 109, 136, 120, 127, 123, 123, 110, 118, 128, 122, 139, 131, 140, 125, 123, 114, 150, 121, 116, 123, 122, 111, 128, 124, 131, 112, 121, 124, 137, 122, 127, 112, 128, 118, 122, 135, 118, 125, 124, 129, 119, 128, 118, 110, 118, 135, 124, 135, 129, 138, 143, 137, 112, 112, 134, 113, 133, 140, 134, 117, 106, 141, 156, 132, 121, 147, 140, 134, 132, 133, 113, 135, 139, 135, 115, 134, 130, 107, 120, 146, 115, 133, 136, 127, 140, 125, 128, 134, 135, 121, 119, 132, 130, 116, 122, 117, 134, 136, 111, 116, 128, 117, 118, 122, 117, 120, 122, 118, 124, 128, 123, 125, 142, 124, 110, 141, 126, 132, 122, 118, 122, 122, 113, 113, 122, 130, 132, 125, 104, 133, 150, 138, 135, 136, 122, 131, 107, 136, 123, 156, 120, 111, 120, 128, 144, 141, 127, 125, 129, 134, 147, 102, 134, 108, 126, 143, 124, 140, 128, 117, 139, 142, 127, 122, 126, 117, 107, 135, 91, 119, 140, 127, 130, 113, 143, 120, 99, 139, 114, 142, 122, 125, 106, 134, 120, 115, 135, 120, 122, 107, 111, 124, 132, 119, 116, 122, 128, 129, 116, 147, 147, 123, 130, 130, 128, 140, 120, 145, 117, 136, 114, 128, 118, 129, 117, 118, 117, 136, 131, 135, 129, 132, 136, 116, 96, 125, 124, 131, 120, 118, 120, 130, 138, 138, 104, 110, 148, 125, 120, 119, 137, 124, 120, 124, 122, 125, 147, 140, 128, 114, 151, 119, 129, 131, 136, 130, 126, 128, 131, 119, 140, 97, 126, 123, 124, 139, 117, 126, 134, 121, 114, 120, 129, 120, 146, 125, 132, 124, 139, 118, 129, 111, 135, 141, 139, 139, 142, 149, 123, 119, 111, 132, 129, 118, 127, 127, 108, 153, 126, 139, 132, 114, 143, 116, 121, 131, 130, 129, 121, 123, 116, 132, 149, 123, 120, 121, 114, 147, 117, 123, 123, 141, 118, 141, 135, 137, 111, 132, 117, 126, 106, 130, 126, 121, 128, 133, 125, 127, 141, 120, 110, 131, 124, 113, 126, 129, 110, 133, 122, 106, 119, 118, 141, 115, 105, 117, 118, 130, 114, 133, 120, 113, 131, 141, 125, 142, 108, 112, 135, 122, 121, 139, 119, 127, 112, 121, 133, 126, 116, 143, 105, 129, 125, 132, 112, 108, 116, 117, 125, 118, 133, 139, 137, 120, 128, 110, 110, 128, 128, 116, 130, 116, 136, 126, 126, 109, 124, 120, 129, 123, 130, 131, 120, 122, 141, 118, 131, 131, 116, 122, 108, 136, 135, 125, 165, 138, 130, 116, 123, 127, 132, 127, 127, 121, 116, 125, 115, 140, 134, 116, 139, 117, 124, 109, 117, 119, 124, 127, 131, 114, 120, 121, 125, 131, 119, 132, 130, 109, 125, 99, 132, 110, 145, 121, 120, 123, 138, 142, 123, 134, 125, 126, 125, 116, 125, 118, 132, 114, 126, 127, 126, 112, 138, 122, 107, 128, 144, 124, 121, 128, 133, 120, 115, 104, 117, 125, 132, 113, 136, 117, 134, 122, 126, 111, 122, 136, 127, 136, 103, 119, 110, 127, 116, 121, 116, 141, 144, 120, 116, 122, 128, 122, 123, 157, 144, 108, 109, 121, 114, 117, 123, 131, 129, 129, 113, 116, 130, 124, 133, 124, 143, 135, 124, 123, 132, 122, 123, 115, 125, 109, 126, 105, 115, 127, 131, 117, 123, 146, 120, 107, 136, 130, 139, 128, 120, 102, 137, 128, 118, 139, 112, 118, 101, 130, 141, 144, 131, 139, 127, 125, 133, 125, 120, 120, 123, 116, 114, 127, 116, 127, 118, 126, 132, 132, 120, 112, 126, 134, 116, 111, 111, 123, 115, 116, 119, 128, 144, 116, 115, 116, 116, 112, 133, 136, 123, 136, 141, 117, 127, 125, 121, 132, 134, 131, 122, 129, 136, 122, 104, 133, 132, 136, 128, 137, 108, 132, 110, 127, 133, 121, 144, 134, 121, 146, 116, 127, 133, 113, 122, 149, 129, 126, 123, 112, 138, 125, 133, 132, 135, 132, 119, 129, 108, 114, 116, 137, 114, 132, 110, 139, 118, 129, 121, 116, 144, 111, 126, 135, 133, 132, 125, 108, 121, 113, 135, 123, 137, 131, 131, 129, 128, 126, 117, 126, 101, 125, 125, 135, 121, 127, 111, 109, 128, 120, 130, 105, 110, 128, 122, 121, 142, 126, 115, 127, 120, 114, 162, 130, 102, 127, 126, 121, 116, 121, 120, 148, 120, 127, 139, 123, 117, 117, 143, 127, 114, 132, 121, 133, 135, 129, 128, 122, 122, 125, 136, 132, 139, 117, 115, 131, 114, 126, 130, 136, 132, 121, 114, 156, 129, 108, 119, 136, 147, 137, 121, 118, 119, 128, 123, 128, 150, 133, 112, 127, 114, 140, 157, 127, 110, 135, 119, 127, 116, 125, 139, 123, 132, 113, 128, 119, 121, 130, 128, 135, 124, 128, 111, 126, 132, 123, 120, 130, 141, 134, 104, 120, 121, 127, 136, 126, 92, 135, 118, 132, 126, 114, 118, 136, 122, 130, 104, 117, 116, 123, 117, 110, 127, 146, 143, 127, 111, 132, 126, 133, 119, 132, 117, 116, 119, 144, 121, 127, 134, 111, 117, 127, 128, 123, 116, 125, 128, 132, 112, 118, 131, 98, 132, 125, 136, 131, 144, 144, 135, 138, 136, 119, 129, 124, 130, 140, 144, 135, 123, 106, 126, 119, 139, 123, 136, 105, 123, 142, 124, 108, 117, 119, 124, 118, 135, 118, 121, 139, 135, 110, 134, 127, 136, 118, 123, 128, 123, 136, 127, 131, 121, 136, 149, 141, 136, 113, 124, 130, 118, 132, 106, 134, 120, 135, 111, 116, 137, 126, 134, 114, 130, 112, 127, 134, 129, 121, 121, 127, 134, 142, 147, 138, 133, 117, 138, 121, 117, 133, 116, 130, 137, 113, 133, 142, 120, 122, 135, 136, 135, 126, 133, 131, 107, 128, 137, 128, 128, 138, 119, 133, 119, 133, 148, 122, 117, 126, 118, 124, 95, 124, 130, 135, 121, 132, 132, 111, 145, 122, 115, 149, 116, 139, 116, 125, 123, 122, 119, 123, 112, 126, 111, 144, 133, 119, 134, 132, 114, 114, 150, 122, 115, 111, 136, 119, 137, 114, 132, 132, 122, 103, 135, 110, 122, 129, 116, 134, 131, 109, 125, 112, 120, 132, 109, 128, 108, 137, 107, 118, 116, 123, 134, 116, 120, 125, 141, 116, 128, 128, 122, 119, 107, 124, 131, 139, 112, 122, 120, 125, 107, 108, 124, 103, 125, 117, 112, 113, 139, 118, 130, 125, 119, 129, 117, 147, 104, 131, 133, 136, 122, 114, 144, 143, 133, 126, 143, 117, 125, 145, 142, 120, 141, 144, 124, 129, 143, 114, 124, 118, 134, 129, 139, 133, 143, 146, 111, 131, 134, 124, 134, 131, 132, 116, 122, 119, 128, 124, 111, 116, 135, 130, 124, 138, 115, 124, 144, 140, 123, 136, 133, 118, 145, 130, 134, 141, 130, 120, 107, 127, 120, 132, 117, 137, 132, 127, 153, 114, 128, 122, 141, 133, 123, 134, 116, 119, 124, 116, 126, 110, 109, 105, 132, 117, 132, 130, 134, 121, 147, 124, 129, 115, 123, 123, 105, 115, 130, 111, 128, 117, 113, 153, 134, 119, 126, 137, 123, 151, 128, 129, 120, 127, 117, 140, 114, 136, 115, 121, 112, 135, 117, 128, 130, 122, 141, 152, 112, 125, 137, 141, 131, 112, 135, 138, 144, 114, 96, 118, 128, 131, 101, 155, 127, 124, 114, 141, 136, 127, 111, 146, 120, 137, 137, 121, 120, 125, 129, 136, 112, 126, 126, 126, 136, 143, 138, 110, 137, 124, 133, 149, 126, 123, 167, 132, 153, 140, 122, 112, 108, 109, 122, 134, 144, 128, 110, 138, 126, 137, 110, 115, 119, 111, 134, 130, 123, 103, 127, 119, 137, 129, 133, 147, 113, 127, 137, 120, 137, 122, 131, 130, 129, 122, 128, 127, 107, 120, 119, 102, 114, 116, 128, 133, 126, 136, 129, 149, 136, 130, 127, 126, 128, 138, 111, 137, 130, 125, 123, 143, 137, 127, 131, 135, 121, 145, 121, 123, 120, 126, 132, 121, 118, 120, 121, 129, 126, 104, 132, 130, 132, 112, 138, 110, 136, 97, 131, 130, 126, 139, 126, 125, 112, 139, 116, 131, 133, 115, 134, 114, 126, 120, 130, 108, 127, 130, 126, 123, 129, 125, 111, 114, 124, 123, 133, 113, 115, 131, 125, 127, 113, 121, 114, 126, 148, 127, 152, 115, 128, 108, 106, 128, 115, 148, 127, 125, 129, 119, 150, 123, 142, 107, 110, 110, 117, 109, 144, 131, 149, 130, 113, 149, 119, 142, 134, 119, 118, 109, 140, 121, 150, 108, 118, 127, 139, 153, 135, 124, 131, 110, 133, 141, 136, 146, 132, 135, 113, 139, 141, 128, 114, 122, 144, 137, 128, 115, 123, 125, 119, 115, 129, 137, 134, 128, 126, 122, 125, 127, 130, 114, 115, 124, 136, 128, 121, 120, 119, 133, 140, 125, 102, 132, 129, 141, 127, 118, 105, 109, 112, 144, 124, 136, 152, 131, 126, 145, 117, 131, 129, 121, 107, 127, 129, 119, 121, 120, 120, 129, 125, 132, 104, 116, 115, 119, 121, 115, 120, 125, 140, 118, 126, 130, 132, 131, 118, 122, 121, 107, 124, 109, 104, 122, 116, 123, 134, 120, 125, 122, 124, 141, 115, 138, 123, 127, 115, 134, 129, 132, 128, 122, 139, 109, 132, 134, 137, 136, 120, 121, 129, 127, 128, 113, 138, 142, 128, 138, 113, 151, 112, 133, 131, 124, 115, 110, 143, 117, 142, 122, 139, 119, 129, 111, 127, 132, 133, 143, 119, 130, 133, 129, 121, 136, 123, 110, 117, 129, 122, 148, 137, 122, 125, 125, 115, 127, 107, 141, 122, 116, 115, 144, 143, 119, 121, 111, 130, 140, 126, 121, 126, 119, 127, 139, 124, 117, 121, 125, 111, 125, 144, 132, 122, 134, 130, 148, 122, 115, 139, 124, 139, 138, 104, 136, 135, 133, 130, 128, 125, 128, 139, 130, 135, 131, 137, 135, 128, 140, 126, 138, 114, 119, 123, 124, 125, 136, 121, 110, 136, 119, 125, 121, 115, 130, 110, 126, 113, 135, 128, 120, 133, 128, 118, 121, 104, 132, 112, 125, 137, 110, 138, 140, 141, 134, 138, 117, 138, 118, 122, 120, 116, 133, 142, 125, 129, 123, 118, 139, 109, 119, 118, 128, 122, 117, 144, 121, 114, 125, 113, 112, 136, 125, 133, 130, 125, 110, 122, 134, 125, 120, 121, 113, 126, 141, 109, 112, 130, 138, 141, 132, 148, 122, 141, 133, 125, 124, 123, 131, 127, 117, 119, 130, 157, 140, 131, 117, 143, 127, 119, 141, 116, 119, 127, 138, 115, 141, 135, 125, 117, 139, 127, 133, 136, 126, 125, 120, 130, 128, 144, 137, 130, 128, 106, 118, 111, 134, 112, 107, 112, 152, 130, 125, 103, 121, 118, 145, 123, 141, 113, 120, 134, 112, 138, 121, 133, 119, 128, 110, 118, 134, 131, 120, 120, 111, 122, 136, 115, 116, 125, 133, 111, 121, 111, 122, 117, 135, 134, 124, 119, 106, 119, 129, 106, 116, 129, 113, 126, 116, 124, 126, 126, 122, 133, 127, 143, 120, 141, 141, 146, 127, 137, 110, 127, 127, 120, 140, 128, 118, 128, 123, 124, 120, 128, 120, 119, 106, 117, 130, 114, 127, 126, 140, 122, 106, 131, 130, 131, 116, 122, 128, 126, 121, 130, 144, 128, 146, 111, 135, 117, 122, 136, 128, 136, 121, 129, 130, 132, 119, 112, 124, 129, 107, 109, 127, 140, 125, 125, 139, 114, 133, 121, 126, 135, 143, 135, 123, 135, 124, 135, 127, 129, 135, 132, 123, 116, 118, 127, 127, 109, 153, 121, 122, 136, 131, 140, 127, 128, 129, 123, 118, 123, 127, 131, 131, 120, 102, 134, 118, 127, 131, 138, 133, 126, 118, 125, 122, 112, 118, 122, 111, 109, 135, 106, 136, 144, 112, 123, 134, 120, 138, 131, 117, 104, 118, 141, 125, 115, 118, 116, 107, 123, 129, 119, 138, 129, 134, 121, 121, 121, 108, 120, 119, 126, 123, 139, 127, 120, 118, 121, 115, 125, 121, 132, 125, 112, 128, 128, 116, 150, 126, 122, 130, 133, 106, 117, 133, 123, 120, 114, 122, 130, 145, 125, 123, 121, 139, 130, 133, 123, 119, 129, 105, 155, 125, 126, 136, 116, 115, 115, 120, 145, 118, 136, 117, 148, 125, 126, 140, 141, 133, 135, 120, 113, 119, 110, 131, 130, 112, 129, 124, 126, 115, 156, 119, 122, 119, 123, 121, 127, 144, 108, 125, 133, 134, 118, 119, 138, 132, 132, 122, 131, 115, 120, 107, 133, 148, 121, 121, 127, 139, 123, 128, 132, 118, 112, 115, 145, 121, 130, 122, 118, 131, 121, 123, 116, 134, 125, 111, 132, 112, 125, 121, 129, 127, 126, 121, 133, 105, 118, 119, 115, 130, 116, 121, 133, 117, 122, 133, 126, 146, 115, 132, 129, 109, 130, 110, 124, 119, 112, 120, 119, 119, 116, 144, 136, 134, 120, 109, 131, 119, 115, 128, 131, 114, 138, 119, 120, 115, 135, 111, 122, 130, 118, 120, 112, 137, 106, 134, 112, 138, 111, 135, 124, 142, 133, 119, 119, 125, 113, 135, 132, 118, 132, 129, 106, 115, 140, 118, 128, 119, 142, 123, 116, 119, 113, 139, 128, 119, 126, 127, 122, 130, 111, 125, 130, 142, 127, 126, 111, 130, 114, 133, 130, 114, 96, 118, 139, 129, 123, 127, 119, 139, 128, 137, 120, 121, 108, 114, 141, 130, 144, 130, 119, 122, 124, 113, 114, 140, 127, 117, 128, 127, 125, 108, 163, 114, 136, 126, 127, 118, 117, 137, 152, 120, 124, 119, 128, 135, 145, 128, 125, 125, 128, 110, 128, 123, 112, 133, 109, 130, 125, 127, 115, 124, 137, 129, 128, 128, 134, 91, 123, 129, 135, 133, 130, 130, 117, 119, 124, 118, 131, 129, 123, 138, 112, 126, 144, 136, 123, 136, 112, 140, 139, 99, 116, 110, 126, 132, 117, 118, 149, 105, 116, 113, 118, 118, 117, 141, 110, 128, 118, 111, 107, 119, 134, 130, 140, 126, 117, 124, 134, 123, 120, 116, 114, 122, 115, 128, 140, 131, 117, 118, 119, 101, 127, 120, 130, 122, 126, 122, 132, 122, 143, 139, 132, 138, 114, 124, 119, 121, 117, 115, 137, 131, 124, 122, 124, 120, 124, 129, 127, 116, 123, 149, 119, 122, 134, 145, 122, 138, 129, 120, 117, 117, 127, 121, 113, 114, 137, 120, 112, 112, 110, 108, 125, 129, 138, 113, 138, 124, 144, 123, 141, 120, 127, 135, 141, 126, 115, 120, 122, 121, 112, 119, 131, 111, 126, 131, 130, 136, 112, 124, 106, 135, 109, 125, 137, 134, 126, 128, 124, 127, 107, 143, 135, 114, 129, 121, 132, 113, 140, 124, 120, 139, 125, 138, 130, 124, 128, 126, 118, 120, 129, 113, 117, 135, 129, 126, 122, 139, 125, 115, 135, 147, 128, 122, 118, 126, 134, 113, 129, 137, 134, 125, 115, 126, 125, 143, 136, 127, 122, 99, 115, 106, 130, 125, 119, 122, 119, 133, 143, 120, 132, 124, 136, 134, 109, 108, 117, 106, 149, 141, 127, 131, 121, 137, 103, 118, 119, 117, 132, 102, 117, 125, 139, 122, 115, 133, 98, 137, 124, 120, 120, 144, 129, 115, 126, 104, 139, 119, 137, 134, 116, 139, 126, 123, 153, 114, 124, 126, 139, 121, 129, 101, 117, 132, 147, 143, 123, 134, 132, 148, 123, 108, 102, 133, 110, 125, 121, 131, 119, 120, 152, 122, 111, 131, 143, 141, 122, 131, 142, 129, 127, 111, 122, 126, 144, 130, 125, 112, 128, 123, 112, 120, 134, 125, 122, 123, 144, 122, 129, 123, 129, 134, 117, 127, 122, 130, 121, 124, 115, 103, 124, 123, 121, 116, 145, 125, 133, 123, 140, 105, 125, 133, 111, 129, 109, 109, 118, 127, 140, 126, 118, 102, 118, 124, 125, 118, 135, 133, 130, 121, 101, 115, 115, 132, 124, 111, 132, 122, 120, 110, 141, 100, 135, 114, 123, 120, 133, 114, 132, 129, 120, 125, 136, 140, 145, 134, 129, 119, 118, 141, 130, 117, 124, 117, 119, 141, 106, 120, 123, 137, 125, 148, 130, 141, 109, 128, 124, 137, 126, 115, 126, 123, 130, 133, 134, 120, 123, 130, 124, 132, 123, 129, 132, 132, 124, 113, 124, 133, 113, 135, 127, 126, 140, 116, 126, 122, 125, 126, 130, 119, 135, 144, 136, 144, 130, 122, 130, 142, 112, 121, 127, 120, 116, 124, 121, 132, 127, 135, 127, 144, 122, 122, 141, 124, 125, 139, 133, 128, 141, 116, 138, 108, 143, 131, 130, 134, 115, 123, 128, 117, 111, 122, 121, 120, 136, 133, 95, 159, 124, 118, 126, 109, 134, 124, 135, 132, 134, 125, 133, 126, 110, 135, 125, 131, 121, 140, 139, 122, 125, 107, 146, 126, 133, 126, 124, 115, 130, 117, 122, 127, 117, 119, 108, 135, 116, 121, 132, 114, 122, 125, 116, 119, 121, 129, 127, 118, 141, 118, 135, 121, 112, 127, 110, 106, 137, 135, 131, 104, 141, 127, 119, 133, 109, 131, 115, 137, 125, 125, 131, 128, 121, 147, 129, 123, 126, 118, 139, 132, 131, 144, 140, 129, 130, 120, 111, 132, 121, 108, 124, 118, 143, 122, 117, 133, 117, 105, 138, 129, 115, 119, 106, 125, 143, 128, 136, 117, 110, 132, 141, 138, 127, 127, 149, 128, 140, 128, 117, 114, 143, 126, 117, 130, 123, 126, 115, 135, 124, 123, 126, 140, 128, 140, 135, 119, 93, 126, 134, 118, 106, 141, 123, 135, 153, 120, 119, 127, 135, 134, 125, 128, 107, 125, 129, 129, 110, 101, 116, 135, 114, 125, 138, 139, 137, 115, 119, 114, 129, 134, 133, 143, 130, 137, 103, 129, 138, 133, 118, 121, 141, 120, 113, 140, 109, 127, 136, 117, 118, 122, 146, 129, 123, 132, 120, 127, 115, 128, 134, 126, 134, 123, 133, 116, 146, 131, 131, 120, 126, 96, 122, 136, 127, 132, 140, 131, 129, 120, 121, 133, 127, 108, 146, 112, 104, 115, 132, 118, 111, 141, 137, 127, 112, 121, 136, 127, 119, 143, 121, 105, 132, 134, 138, 116, 130, 129, 124, 141, 130, 135, 134, 133, 132, 106, 113, 122, 127, 121, 141, 103, 120, 117, 110, 98, 124, 113, 129, 121, 121, 125, 115, 133, 139, 102, 105, 141, 133, 122, 104, 112, 144, 131, 119, 136, 125, 122, 117, 129, 117, 139, 120, 121, 122, 133, 139, 118, 123, 129, 125, 116, 150, 123, 117, 117, 133, 118, 115, 150, 121, 122, 124, 120, 116, 139, 145, 124, 139, 117, 131, 116, 121, 125, 104, 138, 140, 120, 129, 128, 126, 113, 100, 138, 119, 143, 124, 152, 138, 114, 138, 118, 126, 135, 136, 120, 122, 127, 122, 111, 130, 137, 130, 117, 123, 125, 121, 120, 144, 124, 148, 127, 131, 132, 118, 136, 130, 107, 127, 125, 132, 123, 123, 114, 125, 117, 134, 133, 110, 112, 117, 127, 132, 125, 127, 126, 150, 174, 128, 133, 124, 118, 109, 112, 126, 116, 103, 118, 122, 137, 136, 144, 103, 122, 116, 117, 131, 126, 117, 137, 106, 134, 126, 131, 135, 126, 132, 119, 127, 132, 129, 127, 115, 132, 134, 132, 124, 135, 125, 121, 124, 133, 104, 110, 130, 137, 120, 124, 114, 118, 133, 121, 120, 148, 130, 119, 128, 122, 129, 136, 116, 122, 133, 133, 133, 117, 121, 115, 110, 133, 129, 132, 125, 125, 118, 112, 127, 109, 130, 135, 127, 130, 141, 128, 119, 135, 110, 140, 120, 136, 116, 132, 124, 113, 117, 126, 127, 148, 128, 131, 117, 139, 136, 128, 162, 127, 153, 147, 122, 134, 127, 121, 142, 133, 125, 128, 142, 127, 121, 164, 104, 123, 124, 126, 130, 134, 120, 123, 136, 128, 117, 113, 129, 120, 143, 116, 119, 123, 130, 136, 118, 144, 115, 131, 111, 125, 121, 131, 144, 136, 136, 129, 120, 123, 115, 132, 118, 117, 140, 140, 131, 129, 113, 136, 123, 124, 119, 136, 122, 131, 126, 109, 137, 141, 108, 133, 125, 139, 124, 108, 122, 119, 108, 129, 127, 108, 111, 125, 120, 124, 139, 132, 112, 119, 109, 113, 127, 124, 140, 128, 134, 127, 146, 128, 115, 110, 138, 119, 120, 118, 125, 119, 134, 112, 131, 130, 162, 121, 127, 135, 135, 131, 125, 118, 110, 122, 125, 117, 118, 124, 137, 143, 113, 126, 138, 129, 114, 125, 104, 138, 112, 130, 124, 114, 132, 137, 135, 102, 118, 115, 108, 128, 123, 124, 115, 130, 118, 133, 125, 118, 146, 136, 128, 108, 128, 104, 111, 113, 132, 116, 133, 117, 129, 127, 137, 120, 92, 138, 121, 134, 126, 145, 126, 122, 123, 135, 128, 113, 128, 108, 121, 111, 112, 124, 110, 124, 121, 117, 111, 140, 135, 150, 136, 127, 114, 117, 122, 111, 134, 127, 115, 115, 131, 137, 134, 122, 123, 142, 132, 121, 116, 138, 111, 134, 124, 105, 126, 125, 129, 121, 111, 123, 138, 111, 139, 107, 126, 104, 117, 138, 123, 133, 131, 131, 134, 128, 137, 136, 131, 123, 130, 135, 132, 128, 113, 120, 132, 134, 138, 142, 150, 121, 156, 122, 126, 123, 118, 137, 139, 125, 118, 123, 127, 130, 127, 126, 118, 118, 120, 120, 122, 135, 131, 141, 143, 134, 135, 150, 135, 104, 104, 141, 122, 118, 130, 143, 133, 117, 103, 97, 127, 143, 118, 111, 124, 111, 136, 126, 139, 111, 105, 118, 127, 137, 132, 115, 142, 133, 114, 147, 131, 121, 136, 114, 119, 133, 144, 116, 124, 112, 126, 115, 132, 118, 131, 134, 143, 117, 130, 133, 131, 122, 134, 135, 133, 148, 137, 134, 130, 129, 124, 130, 109, 118, 120, 150, 145, 122, 114, 130, 129, 117, 131, 123, 130, 129, 111, 110, 133, 140, 110, 108, 130, 144, 127, 117, 118, 128, 120, 132, 118, 129, 120, 125, 141, 124, 111, 98, 125, 119, 131, 142, 133, 134, 145, 141, 103, 117, 126, 132, 137, 126, 115, 136, 117, 113, 131, 123, 141, 115, 132, 115, 145, 123, 117, 150, 145, 117, 147, 133, 119, 126, 129, 126, 130, 152, 112, 124, 118, 107, 123, 98, 119, 125, 133, 129, 111, 94, 127, 127, 121, 128, 137, 131, 108, 137, 116, 138, 117, 128, 124, 123, 140, 124, 119, 131, 131, 118, 131, 123, 115, 124, 129, 84, 111, 128, 135, 134, 135, 123, 137, 128, 114, 136, 140, 142, 135, 133, 135, 135, 124, 126, 118, 139, 115, 119, 119, 141, 130, 138, 133, 137, 112, 124, 136, 148, 106, 117, 105, 114, 132, 125, 140, 120, 139, 118, 104, 126, 134, 119, 142, 122, 126, 104, 122, 115, 115, 137, 116, 129, 110, 105, 119, 131, 135, 107, 113, 114, 127, 124, 138, 125, 137, 126, 123, 119, 108, 119, 123, 127, 129, 116, 136, 134, 106, 139, 122, 117, 127, 115, 139, 132, 131, 121, 120, 139, 135, 123, 126, 131, 141, 117, 121, 111, 141, 132, 115, 129, 138, 128, 117, 139, 113, 126, 122, 134, 117, 122, 112, 129, 128, 105, 120, 137, 146, 121, 123, 119, 149, 112, 118, 133, 129, 104, 123, 108, 132, 116, 120, 125, 112, 122, 138, 134, 141, 113, 114, 135, 132, 123, 102, 124, 99, 117, 126, 122, 126, 106, 127, 122, 118, 125, 130, 118, 125, 119, 132, 148, 128, 124, 119, 121, 144, 129, 114, 132, 121, 157, 137, 116, 129, 128, 117, 128, 118, 131, 117, 119, 138, 109, 137, 121, 133, 133, 138, 118, 134, 130, 133, 145, 130, 117, 116, 120, 130, 126, 101, 108, 132, 143, 123, 148, 130, 124, 145, 120, 115, 115, 129, 123, 136, 117, 127, 132, 128, 115, 130, 130, 128, 110, 120, 129, 115, 125, 125, 100, 120, 131, 139, 121, 128, 109, 130, 132, 121, 123, 116, 123, 119, 123, 118, 117, 118, 127, 122, 115, 120, 110, 131, 132, 142, 108, 128, 118, 118, 127, 136, 131, 146, 108, 130, 136, 132, 129, 140, 121, 125, 130, 132, 123, 102, 120, 130, 121, 135, 103, 150, 130, 115, 138, 133, 133, 115, 130, 109, 133, 107, 120, 130, 127, 125, 113, 112, 133, 133, 126, 115, 127, 133, 131, 135, 138, 129, 118, 123, 121, 124, 109, 123, 115, 109, 136, 127, 133, 125, 115, 120, 115, 119, 133, 138, 107, 130, 141, 114, 130, 124, 136, 117, 127, 116, 131, 137, 122, 115, 121, 104, 141, 117, 116, 103, 123, 126, 118, 134, 150, 116, 145, 120, 129, 125, 107, 104, 128, 123, 148, 129, 136, 119, 138, 129, 98, 136, 114, 125, 139, 103, 107, 150, 101, 124, 117, 130, 147, 103, 114, 136, 123, 113, 110, 114, 125, 132, 135, 128, 114, 126, 132, 115, 129, 139, 128, 124, 108, 117, 126, 129, 148, 114, 134, 125, 137, 118, 128, 132, 126, 122, 134, 128, 119, 130, 115, 134, 126, 126, 131, 130, 123, 111, 120, 126, 123, 130, 107, 114, 144, 119, 129, 107, 116, 118, 134, 127, 110, 133, 120, 107, 117, 110, 136, 135, 129, 115, 131, 132, 125, 132, 139, 90, 110, 126, 142, 122, 130, 113, 121, 131, 124, 136, 101, 115, 105, 138, 119, 122, 133, 119, 113, 127, 135, 109, 119, 96, 140, 124, 132, 128, 118, 115, 139, 157, 113, 129, 122, 146, 147, 141, 140, 119, 116, 117, 121, 127, 149, 123, 124, 114, 109, 122, 132, 148, 122, 160, 128, 146, 108, 104, 131, 125, 129, 125, 119, 123, 136, 133, 127, 121, 130, 139, 115, 128, 131, 138, 123, 142, 139, 115, 124, 142, 126, 116, 135, 135, 128, 140, 112, 109, 125, 108, 128, 125, 116, 147, 140, 101, 130, 137, 121, 114, 126, 122, 143, 136, 133, 121, 122, 124, 123, 123, 133, 130, 115, 145, 135, 124, 118, 134, 123, 126, 119, 116, 117, 133, 124, 113, 125, 137, 150, 114, 116, 160, 144, 131, 117, 136, 117, 162, 136, 137, 138, 126, 123, 123, 122, 138, 128, 116, 132, 128, 126, 128, 128, 143, 134, 113, 140, 128, 139, 127, 109, 127, 116, 130, 137, 132, 120, 115, 134, 139, 137, 134, 127, 121, 120, 134, 141, 113, 131, 132, 131, 121, 127, 114, 114, 109, 133, 122, 133, 126, 107, 119, 133, 138, 126, 139, 143, 123, 125, 117, 115, 123, 121, 130, 125, 132, 138, 120, 128, 124, 114, 86, 121, 126, 135, 118, 133, 122, 121, 132, 115, 120, 126, 112, 119, 131, 121, 128, 133, 139, 127, 119, 111, 137, 134, 127, 131, 116, 136, 117, 122, 133, 140, 124, 106, 132, 120, 117, 139, 104, 119, 126, 107, 143, 148, 146, 128, 134, 126, 139, 119, 120, 134, 117, 120, 112, 146, 130, 118, 141, 126, 138, 137, 132, 122, 118, 111, 125, 136, 126, 113, 113, 127, 122, 124, 116, 140, 141, 120, 132, 126, 126, 107, 123, 111, 131, 119, 140, 115, 116, 132, 126, 126, 117, 138, 123, 130, 126, 130, 136, 120, 129, 123, 108, 142, 118, 139, 125, 136, 128, 121, 118, 120, 143, 131, 134, 133, 142, 100, 127, 111, 115, 128, 144, 129, 117, 129, 134, 138, 117, 120, 136, 115, 120, 137, 128, 118, 133, 134, 97, 138, 138, 118, 125, 121, 128, 116, 136, 124, 133, 124, 135, 125, 130, 123, 105, 131, 131, 120, 125, 121, 137, 135, 121, 120, 115, 121, 114, 115, 117, 122, 113, 126, 129, 136, 107, 121, 127, 121, 137, 123, 127, 153, 137, 143, 140, 120, 129, 133, 115, 116, 138, 123, 134, 114, 126, 115, 133, 120, 113, 99, 136, 118, 123, 118, 112, 129, 124, 143, 119, 108, 129, 122, 122, 120, 126, 132, 112, 132, 97, 134, 126, 127, 109, 135, 113, 128, 114, 109, 122, 143, 121, 118, 130, 143, 129, 119, 122, 123, 120, 127, 143, 129, 130, 134, 129, 124, 117, 114, 115, 112, 125, 134, 117, 128, 127, 118, 115, 118, 123, 136, 140, 96, 133, 143, 115, 162, 126, 115, 132, 129, 140, 118, 118, 114, 132, 111, 137, 114, 130, 119, 125, 119, 122, 106, 124, 136, 131, 118, 94, 119, 122, 119, 133, 121, 125, 127, 126, 134, 124, 108, 125, 119, 117, 107, 124, 133, 106, 117, 116, 124, 132, 121, 124, 145, 107, 142, 134, 110, 135, 116, 121, 126, 144, 103, 127, 115, 121, 119, 123, 99, 132, 141, 114, 118, 133, 114, 132, 132, 120, 152, 134, 121, 145, 140, 116, 127, 123, 124, 123, 131, 123, 135, 112, 114, 116, 133, 123, 133, 143, 121, 134, 147, 120, 128, 125, 133, 128, 125, 135, 124, 122, 112, 130, 105, 110, 127, 120, 109, 142, 103, 145, 135, 128, 115, 149, 133, 138, 125, 133, 114, 125, 127, 129, 128, 129, 131, 118, 141, 121, 126, 116, 124, 133, 123, 118, 112, 143, 128, 128, 119, 144, 144, 133, 123, 109, 133, 140, 114, 141, 116, 110, 130, 119, 105, 122, 115, 140, 137, 138, 140, 108, 139, 123, 146, 116, 112, 145, 130, 114, 124, 119, 144, 99, 127, 117, 145, 120, 119, 130, 112, 140, 125, 122, 124, 125, 138, 112, 154, 117, 137, 124, 129, 122, 129, 138, 121, 112, 127, 125, 128, 122, 125, 118, 126, 132, 145, 126, 122, 136, 111, 121, 126, 125, 125, 118, 126, 116, 134, 115, 128, 140, 108, 125, 146, 136, 111, 115, 125, 129, 117, 137, 119, 127, 125, 130, 133, 140, 134, 127, 132, 122, 135, 131, 134, 131, 135, 121, 129, 124, 125, 118, 145, 142, 114, 133, 116, 137, 126, 118, 128, 128, 132, 111, 120, 132, 121, 135, 144, 130, 128, 122, 130, 111, 149, 117, 101, 130, 135, 108, 121, 139, 135, 127, 120, 107, 119, 135, 143, 132, 127, 119, 117, 141, 119, 126, 131, 132, 143, 128, 110, 145, 151, 101, 136, 126, 125, 133, 119, 136, 132, 138, 127, 129, 117, 129, 135, 117, 120, 131, 136, 139, 120, 123, 129, 120, 119, 119, 128, 117, 137, 143, 111, 132, 123, 158, 126, 112, 119, 141, 108, 106, 148, 137, 138, 126, 137, 97, 113, 115, 122, 112, 122, 143, 132, 121, 114, 142, 118, 125, 122, 132, 133, 149, 129, 133, 134, 138, 122, 124, 122, 132, 123, 115, 118, 117, 132, 121, 127, 127, 117, 129, 118, 127, 146, 126, 127, 141, 111, 105, 122, 137, 122, 126, 123, 128, 132, 130, 137, 118, 139, 127, 149, 114, 140, 149, 143, 137, 128, 116, 112, 119, 130, 126, 129, 105, 143, 135, 121, 121, 117, 108, 146, 116, 113, 128, 129, 129, 134, 110, 125, 121, 130, 125, 124, 141, 134, 124, 118, 102, 122, 139, 122, 116, 127, 128, 131, 114, 145, 127, 115, 137, 119, 115, 129, 130, 130, 151, 107, 120, 129, 119, 134, 131, 131, 126, 107, 132, 124, 116, 126, 132, 136, 133, 131, 118, 128, 133, 111, 147, 139, 114, 116, 124, 106, 133, 117, 126, 135, 131, 118, 138, 123, 111, 144, 124, 121, 118, 129, 109, 138, 112, 138, 130, 114, 122, 119, 139, 127, 125, 117, 115, 124, 142, 124, 140, 95, 126, 121, 120, 123, 126, 128, 122, 128, 121, 122, 129, 145, 106, 133, 135, 117, 116, 128, 130, 119, 128, 128, 106, 120, 123, 125, 126, 138, 133, 129, 130, 123, 123, 123, 131, 146, 135, 118, 118, 138, 126, 123, 120, 121, 147, 149, 124, 126, 122, 125, 135, 121, 117, 132, 133, 132, 136, 130, 118, 129, 130, 112, 107, 139, 129, 119, 123, 119, 126, 125, 137, 112, 133, 131, 122, 124, 115, 119, 131, 112, 115, 121, 128, 127, 132, 127, 122, 121, 125, 130, 139, 119, 112, 138, 132, 145, 108, 137, 124, 119, 109, 127, 132, 125, 116, 123, 170, 137, 114, 120, 113, 135, 129, 126, 129, 126, 115, 135, 147, 120, 114, 145, 130, 113, 128, 107, 124, 129, 130, 120, 120, 121, 125, 128, 131, 132, 139, 117, 121, 129, 140, 124, 116, 135, 132, 130, 123, 114, 143, 130, 125, 116, 125, 120, 108, 151, 120, 122, 129, 142, 98, 138, 146, 115, 127, 120, 128, 111, 110, 125, 128, 119, 146, 124, 131, 116, 116, 114, 116, 122, 134, 126, 124, 138, 114, 143, 131, 119, 114, 140, 124, 104, 137, 116, 116, 125, 126, 128, 126, 136, 126, 124, 130, 120, 122, 129, 123, 117, 117, 117, 123, 128, 141, 127, 131, 125, 125, 132, 133, 137, 131, 116, 127, 126, 131, 130, 94, 122, 120, 99, 126, 123, 112, 130, 131, 122, 117, 118, 113, 129, 137, 126, 140, 134, 119, 129, 126, 132, 119, 137, 124, 130, 147, 123, 132, 139, 135, 122, 112, 112, 130, 126, 131, 123, 111, 124, 117, 120, 120, 141, 132, 133, 133, 138, 114, 127, 126, 121, 126, 127, 123, 126, 131, 128, 120, 123, 123, 134, 115, 136, 116, 116, 116, 130, 132, 139, 127, 120, 122, 114, 125, 116, 136, 111, 112, 124, 117, 123, 129, 134, 135, 133, 135, 133, 128, 118, 121, 114, 121, 132, 107, 123, 116, 140, 126, 121, 136, 146, 127, 128, 144, 112, 126, 134, 117, 120, 140, 133, 120, 127, 122, 128, 133, 139, 119, 124, 138, 114, 129, 125, 116, 123, 129, 133, 112, 128, 126, 116, 133, 130, 111, 125, 121, 113, 136, 129, 117, 114, 136, 132, 125, 125, 126, 117, 127, 108, 103, 120, 116, 132, 114, 124, 145, 132, 110, 126, 112, 129, 131, 127, 135, 110, 108, 121, 134, 125, 125, 123, 118, 129, 124, 139, 118, 135, 119, 127, 141, 142, 139, 115, 120, 139, 134, 111, 131, 127, 126, 129, 120, 114, 127, 127, 111, 122, 125, 134, 125, 130, 143, 131, 131, 126, 127, 124, 123, 119, 121, 125, 132, 122, 125, 132, 129, 108, 115, 115, 115, 115, 137, 120, 135, 123, 126, 119, 125, 112, 118, 114, 115, 122, 128, 133, 115, 127, 130, 127, 117, 141, 114, 125, 119, 129, 137, 138, 123, 116, 113, 112, 128, 122, 150, 147, 138, 121, 132, 126, 114, 117, 112, 118, 119, 123, 132, 116, 127, 128, 128, 126, 115, 128, 128, 135, 127, 142, 129, 125, 129, 122, 118, 131, 121, 116, 128, 123, 140, 139, 119, 137, 127, 112, 144, 128, 122, 107, 115, 127, 127, 129, 105, 126, 130, 123, 127, 123, 119, 134, 126, 115, 128, 130, 132, 160, 128, 117, 113, 135, 129, 122, 132, 126, 140, 120, 124, 138, 105, 123, 120, 118, 108, 121, 125, 140, 129, 134, 137, 154, 124, 129, 120, 117, 123, 124, 123, 137, 116, 128, 132, 117, 139, 124, 122, 108, 149, 119, 134, 113, 135, 132, 131, 118, 115, 115, 130, 133, 116, 128, 134, 125, 125, 128, 118, 126, 123, 129, 136, 118, 124, 115, 128, 127, 158, 109, 126, 132, 130, 121, 115, 141, 122, 120, 128, 132, 121, 134, 122, 125, 108, 129, 126, 132, 121, 151, 144, 130, 123, 106, 114, 134, 133, 129, 133, 118, 136, 117, 128, 108, 110, 124, 125, 135, 131, 112, 127, 131, 145, 132, 109, 134, 131, 133, 122, 127, 118, 142, 133, 126, 143, 139, 123, 118, 126, 124, 145, 131, 114, 118, 125, 113, 114, 122, 134, 130, 132, 116, 113, 137, 125, 132, 115, 122, 119, 130, 127, 110, 135, 114, 125, 126, 114, 120, 138, 127, 129, 128, 122, 131, 126, 122, 142, 112, 129, 120, 120, 126, 140, 135, 129, 126, 123, 133, 101, 111, 105, 129, 122, 119, 130, 114, 131, 148, 134, 131, 137, 108, 123, 122, 126, 131, 127, 124, 123, 129, 121, 128, 123, 125, 117, 124, 129, 136, 120, 118, 122, 123, 132, 115, 131, 120, 117, 125, 127, 120, 121, 119, 136, 132, 110, 123, 130, 122, 110, 123, 112, 94, 117, 109, 121, 126, 137, 113, 120, 128, 131, 140, 124, 144, 127, 116, 115, 115, 122, 114, 119, 109, 123, 125, 146, 133, 138, 114, 127, 121, 133, 134, 125, 126, 129, 118, 131, 133, 116, 133, 123, 122, 137, 124, 146, 143, 107, 125, 132, 125, 119, 118, 138, 128, 129, 127, 118, 123, 124, 132, 138, 113, 127, 133, 109, 139, 122, 127, 125, 133, 117, 134, 119, 128, 125, 124, 122, 119, 115, 130, 125, 132, 135, 133, 130, 128, 133, 132, 119, 135, 123, 120, 122, 118, 127, 123, 128, 136, 147, 125, 122, 122, 133, 123, 114, 120, 124, 127, 125, 131, 124, 124, 126, 115, 119, 132, 137, 127, 120, 129, 99, 143, 131, 137, 127, 146, 111, 125, 124, 109, 129, 116, 120, 122, 113, 113, 134, 114, 119, 129, 123, 136, 133, 131, 114, 104, 126, 121, 120, 122, 138, 118, 124, 156, 125, 133, 119, 127, 130, 137, 121, 132, 113, 126, 125, 129, 130, 108, 124, 129, 124, 123, 123, 151, 139, 115, 137, 133, 135, 136, 130, 121, 122, 102, 119, 106, 138, 120, 127, 122, 152, 123, 130, 113, 122, 140, 111, 123, 135, 133, 129, 135, 133, 124, 130, 117, 126, 126, 143, 120, 128, 112, 134, 113, 133, 143, 130, 139, 124, 135, 139, 137, 122, 127, 129, 117, 127, 122, 127, 125, 124, 122, 137, 116, 135, 125, 132, 109, 130, 100, 120, 134, 111, 132, 124, 127, 121, 122, 117, 131, 123, 113, 129, 108, 156, 124, 125, 107, 122, 125, 132, 135, 128, 133, 119, 118, 136, 120, 120, 132, 137, 127, 118, 120, 114, 123, 121, 140, 124, 167, 115, 125, 117, 112, 123, 118, 127, 112, 140, 125, 133, 128, 141, 153, 120, 124, 103, 138, 125, 132, 135, 115, 114, 126, 135, 131, 132, 118, 128, 127, 123, 129, 122, 118, 137, 128, 119, 139, 128, 125, 133, 125, 125, 145, 120, 122, 123, 125, 124, 119, 128, 121, 126, 130, 129, 124, 110, 124, 122, 112, 123, 124, 118, 116, 119, 129, 130, 110, 117, 128, 127, 144, 119, 122, 134, 114, 123, 108, 131, 120, 130, 127, 131, 135, 140, 136, 130, 139, 119, 120, 131, 127, 127, 138, 122, 134, 127, 113, 120, 127, 121, 121, 123, 133, 128, 128, 133, 127, 131, 105, 119, 122, 106, 128, 128, 138, 114, 114, 120, 131, 127, 128, 116, 125, 129, 126, 116, 122, 134, 102, 138, 125, 123, 124, 122, 127, 111, 123, 123, 129, 129, 123, 117, 119, 115, 137, 109, 107, 115, 125, 142, 125, 128, 129, 136, 126, 133, 122, 146, 119, 144, 107, 114, 130, 131, 125, 153, 125, 143, 147, 130, 116, 124, 107, 119, 141, 134, 123, 133, 122, 149, 123, 135, 138, 111, 121, 117, 109, 123, 133, 136, 136, 127, 112, 126, 123, 132, 122, 125, 124, 123, 126, 124, 138, 133, 99, 125, 129, 137, 109, 117, 123, 140, 143, 119, 129, 134, 149, 116, 128, 112, 139, 119, 133, 115, 119, 129, 144, 100, 117, 133, 106, 136, 131, 113, 145, 115, 93, 121, 127, 116, 116, 154, 126, 114, 118, 132, 118, 111, 122, 129, 120, 130, 123, 120, 128, 126, 139, 128, 126, 138, 122, 127, 133, 117, 132, 126, 115, 117, 110, 135, 125, 112, 112, 102, 114, 115, 125, 117, 119, 120, 113, 128, 123, 113, 141, 132, 113, 117, 86, 122, 114, 123, 120, 121, 119, 125, 135, 108, 148, 111, 139, 116, 133, 125, 117, 126, 123, 119, 124, 122, 126, 133, 112, 116, 147, 148, 112, 132, 121, 110, 118, 121, 130, 115, 137, 140, 140, 127, 134, 128, 115, 135, 108, 130, 118, 130, 145, 102, 111, 129, 128, 127, 136, 122, 138, 124, 139, 124, 114, 140, 137, 147, 120, 131, 118, 114, 139, 133, 133, 117, 118, 122, 120, 100, 116, 119, 125, 127, 122, 124, 132, 124, 126, 117, 131, 120, 125, 140, 134, 130, 131, 124, 123, 114, 130, 125, 130, 129, 133, 119, 121, 123, 133, 143, 137, 134, 123, 130, 120, 134, 126, 125, 120, 128, 131, 140, 128, 116, 113, 121, 137, 106, 118, 112, 133, 110, 135, 121, 122, 133, 127, 121, 112, 131, 127, 136, 122, 125, 116, 119, 121, 131, 119, 124, 120, 122, 148, 126, 135, 130, 125, 108, 132, 117, 105, 130, 133, 131, 124, 126, 135, 107, 129, 112, 125, 114, 121, 120, 140, 101, 131, 114, 109, 125, 129, 155, 126, 140, 127, 128, 119, 117, 117, 154, 134, 117, 131, 121, 132, 106, 109, 129, 130, 138, 125, 112, 115, 139, 129, 140, 127, 149, 123, 127, 126, 137, 129, 145, 121, 119, 118, 126, 134, 144, 114, 135, 126, 105, 126, 124, 123, 124, 129, 127, 124, 128, 148, 122, 143, 132, 127, 125, 158, 123, 127, 144, 120, 133, 143, 123, 116, 115, 126, 124, 119, 151, 123, 90, 103, 126, 117, 126, 122, 127, 124, 122, 115, 125, 135, 106, 120, 118, 143, 136, 133, 121, 125, 118, 114, 125, 134, 151, 134, 123, 141, 123, 116, 118, 138, 137, 107, 134, 124, 108, 129, 119, 116, 122, 125, 94, 122, 117, 125, 115, 145, 133, 113, 98, 130, 138, 117, 158, 122, 120, 128, 134, 129, 122, 135, 138, 126, 119, 115, 144, 123, 109, 115, 132, 127, 140, 113, 135, 117, 143, 122, 136, 125, 141, 123, 140, 141, 94, 127, 78, 137, 141, 104, 135, 126, 123, 126, 137, 123, 130, 127, 123, 132, 135, 134, 121, 136, 122, 129, 145, 109, 111, 118, 125, 120, 110, 129, 121, 119, 131, 112, 117, 112, 135, 115, 125, 128, 128, 127, 130, 118, 141, 139, 116, 134, 127, 134, 107, 125, 122, 103, 132, 131, 132, 115, 120, 154, 136, 119, 130, 143, 120, 135, 142, 130, 138, 115, 116, 130, 120, 136, 108, 96, 122, 125, 139, 121, 124, 128, 133, 133, 115, 127, 126, 128, 124, 128, 130, 116, 112, 123, 132, 138, 128, 115, 135, 137, 125, 120, 134, 149, 115, 107, 118, 123, 134, 119, 134, 143, 132, 125, 129, 131, 106, 123, 120, 140, 124, 139, 127, 113, 126, 117, 122, 128, 147, 125, 140, 157, 126, 131, 133, 119, 122, 114, 125, 122, 107, 127, 151, 132, 120, 118, 123, 132, 126, 128, 118, 131, 111, 132, 128, 139, 118, 129, 126, 126, 104, 122, 119, 138, 130, 104, 119, 133, 120, 124, 147, 127, 131, 113, 112, 122, 139, 122, 114, 127, 114, 113, 123, 125, 116, 130, 109, 124, 142, 139, 146, 107, 106, 116, 107, 135, 130, 134, 127, 127, 125, 116, 125, 143, 130, 121, 122, 135, 122, 122, 142, 145, 102, 119, 123, 121, 123, 127, 127, 120, 132, 152, 127, 131, 131, 127, 113, 133, 121, 133, 111, 138, 122, 128, 122, 102, 144, 139, 104, 119, 131, 118, 117, 116, 116, 127, 114, 118, 135, 124, 120, 130, 130, 126, 122, 128, 119, 123, 136, 120, 118, 120, 124, 124, 108, 116, 117, 130, 137, 128, 122, 142, 126, 138, 137, 129, 119, 136, 118, 117, 127, 141, 128, 130, 122, 124, 121, 111, 137, 131, 123, 120, 125, 128, 120, 117, 127, 117, 123, 141, 105, 117, 119, 127, 150, 115, 117, 122, 127, 121, 124, 122, 134, 140, 124, 102, 133, 112, 119, 133, 116, 134, 117, 134, 106, 130, 121, 122, 119, 141, 120, 122, 126, 113, 114, 134, 114, 119, 117, 148, 127, 124, 130, 111, 114, 122, 132, 124, 122, 127, 125, 129, 113, 127, 124, 105, 125, 117, 146, 130, 116, 133, 117, 139, 112, 112, 121, 134, 134, 133, 121, 137, 128, 123, 122, 127, 127, 140, 139, 140, 137, 119, 131, 112, 141, 122, 132, 132, 129, 129, 133, 144, 127, 124, 112, 123, 135, 130, 125, 151, 121, 127, 123, 126, 119, 127, 119, 128, 107, 131, 111, 112, 108, 130, 126, 116, 132, 122, 146, 116, 108, 115, 129, 134, 130, 121, 135, 133, 128, 132, 135, 133, 133, 140, 118, 128, 128, 118, 129, 144, 115, 123, 129, 126, 131, 120, 150, 125, 127, 117, 124, 117, 112, 141, 133, 115, 127, 124, 128, 134, 135, 134, 125, 137, 137, 125, 125, 115, 128, 120, 124, 126, 131, 113, 96, 116, 108, 131, 103, 121, 124, 127, 135, 134, 116, 127, 107, 122, 108, 128, 109, 126, 111, 139, 126, 134, 125, 127, 82, 120, 128, 125, 133, 100, 125, 133, 134, 133, 129, 128, 131, 101, 133, 115, 125, 147, 125, 118, 123, 142, 125, 126, 126, 136, 136, 124, 126, 106, 111, 145, 126, 127, 134, 122, 122, 115, 150, 118, 121, 127, 119, 157, 136, 138, 114, 128, 138, 102, 127, 135, 134, 123, 135, 116, 123, 115, 114, 125, 123, 118, 134, 134, 122, 131, 136, 130, 147, 107, 118, 130, 137, 126, 126, 127, 130, 123, 132, 124, 133, 109, 137, 130, 124, 129, 118, 141, 139, 120, 115, 143, 111, 129, 146, 129, 117, 100, 128, 152, 106, 121, 141, 127, 142, 133, 130, 130, 143, 127, 120, 132, 107, 127, 124, 122, 131, 120, 123, 128, 121, 117, 131, 118, 134, 108, 139, 112, 122, 127, 129, 125, 130, 144, 138, 128, 101, 130, 122, 134, 123, 96, 137, 111, 132, 144, 109, 129, 116, 108, 121, 123, 127, 127, 128, 117, 120, 120, 112, 135, 124, 127, 109, 102, 122, 117, 101, 132, 112, 130, 137, 115, 137, 126, 138, 131, 146, 121, 116, 121, 129, 129, 142, 137, 119, 112, 121, 128, 132, 119, 129, 113, 111, 124, 124, 131, 135, 115, 135, 132, 124, 122, 105, 119, 129, 109, 113, 126, 127, 120, 128, 131, 147, 118, 126, 133, 123, 125, 130, 139, 121, 142, 127, 122, 121, 128, 131, 129, 119, 114, 115, 129, 100, 119, 135, 150, 114, 127, 133, 127, 127, 126, 126, 127, 114, 123, 113, 108, 110, 118, 127, 105, 140, 112, 129, 128, 115, 139, 124, 126, 149, 128, 130, 126, 118, 151, 100, 115, 136, 126, 120, 124, 124, 126, 126, 138, 123, 129, 124, 122, 121, 137, 123, 138, 125, 153, 135, 127, 127, 142, 125, 127, 133, 118, 119, 120, 136, 137, 129, 109, 123, 122, 117, 135, 128, 131, 127, 131, 133, 124, 117, 120, 114, 136, 115, 116, 147, 133, 112, 136, 114, 133, 118, 129, 127, 122, 129, 121, 131, 126, 121, 140, 103, 111, 133, 128, 114, 132, 120, 138, 155, 142, 120, 124, 122, 147, 123, 127, 110, 112, 139, 140, 117, 130, 130, 121, 127, 120, 119, 131, 123, 113, 143, 122, 114, 150, 109, 123, 118, 140, 129, 111, 128, 135, 134, 115, 109, 121, 112, 139, 142, 129, 123, 134, 124, 115, 115, 132, 109, 139, 126, 137, 115, 127, 136, 117, 126, 104, 92, 123, 116, 145, 120, 136, 112, 133, 139, 137, 115, 135, 124, 124, 121, 121, 139, 126, 139, 107, 115, 136, 110, 114, 121, 116, 124, 107, 139, 135, 114, 126, 130, 120, 119, 102, 114, 123, 126, 138, 113, 118, 133, 128, 125, 124, 133, 124, 123, 135, 134, 120, 131, 114, 122, 115, 128, 128, 123, 138, 121, 125, 140, 122, 120, 136, 141, 110, 125, 148, 123, 136, 130, 122, 125, 122, 147, 138, 154, 113, 116, 117, 142, 138, 125, 123, 132, 143, 104, 135, 126, 119, 125, 113, 131, 113, 114, 127, 132, 125, 120, 132, 120, 119, 127, 120, 96, 110, 121, 116, 130, 138, 130, 134, 114, 145, 122, 144, 111, 109, 134, 133, 135, 120, 126, 123, 130, 129, 129, 137, 101, 104, 113, 130, 142, 120, 122, 144, 129, 132, 107, 130, 120, 127, 147, 140, 129, 130, 129, 127, 128, 132, 139, 146, 137, 112, 125, 147, 115, 124, 144, 127, 121, 139, 128, 117, 128, 126, 143, 114, 134, 135, 135, 123, 122, 123, 133, 132, 115, 119, 138, 121, 137, 136, 120, 110, 138, 136, 124, 117, 128, 141, 116, 143, 121, 134, 123, 138, 115, 118, 138, 126, 126, 137, 103, 124, 124, 112, 121, 140, 139, 134, 138, 127, 128, 117, 131, 121, 140, 120, 129, 141, 127, 123, 123, 126, 119, 101, 139, 121, 128, 119, 133, 130, 131, 130, 130, 123, 124, 130, 126, 119, 112, 110, 144, 136, 113, 126, 118, 124, 128, 144, 125, 116, 108, 142, 110, 135, 131, 138, 142, 119, 124, 143, 136, 145, 124, 120, 116, 108, 120, 113, 145, 112, 113, 130, 118, 138, 130, 140, 104, 107, 126, 105, 138, 134, 135, 112, 146, 115, 113, 124, 121, 141, 146, 118, 130, 142, 104, 125, 134, 115, 132, 126, 135, 160, 123, 127, 110, 125, 128, 117, 128, 138, 124, 116, 131, 128, 123, 122, 93, 115, 122, 134, 98, 124, 116, 130, 125, 121, 127, 110, 125, 116, 131, 133, 119, 120, 128, 141, 124, 137, 134, 113, 126, 116, 121, 121, 135, 119, 132, 144, 130, 141, 133, 139, 127, 120, 113, 127, 135, 135, 162, 138, 121, 128, 120, 128, 136, 131, 118, 130, 118, 112, 106, 125, 137, 119, 122, 138, 132, 131, 132, 144, 113, 115, 120, 137, 127, 115, 118, 131, 136, 132, 110, 128, 121, 146, 135, 133, 121, 109, 121, 138, 119, 126, 127, 125, 110, 118, 128, 130, 131, 102, 121, 123, 114, 133, 125, 132, 130, 150, 96, 119, 118, 122, 130, 119, 106, 127, 137, 128, 128, 123, 133, 139, 120, 121, 121, 146, 121, 137, 131, 126, 116, 136, 119, 131, 134, 126, 131, 118, 121, 126, 141, 119, 127, 141, 127, 108, 112, 125, 114, 147, 147, 117, 124, 114, 127, 131, 134, 106, 118, 119, 155, 139, 111, 114, 114, 143, 140, 122, 139, 120, 119, 108, 111, 115, 120, 111, 123, 111, 111, 113, 125, 135, 116, 145, 129, 107, 120, 131, 128, 118, 127, 125, 126, 139, 116, 127, 122, 115, 129, 115, 131, 111, 147, 122, 131, 143, 116, 108, 134, 145, 114, 122, 142, 121, 138, 109, 114, 123, 121, 146, 133, 129, 122, 128, 126, 140, 115, 112, 113, 133, 143, 113, 118, 130, 131, 126, 121, 137, 142, 122, 126, 126, 122, 132, 126, 132, 132, 114, 119, 113, 136, 104, 120, 109, 110, 132, 116, 137, 145, 142, 144, 130, 117, 129, 132, 126, 129, 121, 119, 138, 108, 125, 151, 123, 132, 117, 139, 114, 137, 116, 136, 112, 142, 124, 118, 125, 124, 124, 123, 116, 127, 117, 118, 127, 103, 125, 120, 136, 140, 125, 133, 123, 116, 119, 131, 120, 123, 119, 126, 128, 138, 134, 115, 112, 119, 119, 126, 125, 123, 133, 123, 123, 113, 139, 119, 137, 139, 147, 122, 126, 146, 125, 115, 134, 135, 127, 124, 138, 150, 131, 127, 116, 113, 128, 126, 124, 110, 135, 127, 126, 120, 107, 126, 131, 128, 141, 133, 127, 118, 146, 141, 123, 134, 139, 121, 111, 129, 113, 117, 129, 115, 123, 121, 139, 127, 112, 119, 122, 135, 138, 133, 136, 129, 116, 126, 118, 120, 126, 139, 123, 107, 122, 148, 111, 120, 104, 126, 124, 120, 130, 159, 117, 130, 127, 125, 124, 134, 139, 129, 120, 133, 140, 117, 130, 139, 110, 128, 118, 113, 136, 122, 137, 126, 128, 126, 136, 135, 115, 111, 142, 125, 133, 107, 134, 129, 131, 136, 118, 125, 128, 134, 135, 131, 128, 107, 149, 134, 118, 131, 133, 110, 136, 134, 120, 135, 146, 133, 141, 146, 131, 129, 140, 120, 123, 116, 121, 140, 123, 126, 132, 128, 130, 123, 128, 147, 120, 136, 124, 127, 136, 117, 141, 132, 115, 117, 119, 123, 124, 127, 109, 125, 133, 115, 118, 113, 119, 128, 130, 117, 128, 122, 118, 131, 123, 132, 133, 129, 127, 132, 130, 126, 120, 124, 127, 140, 123, 137, 140, 138, 118, 113, 133, 131, 115, 124, 136, 114, 124, 122, 129, 127, 123, 117, 119, 112, 129, 133, 139, 135, 130, 115, 113, 136, 114, 120, 127, 115, 123, 117, 112, 141, 124, 129, 122, 127, 115, 126, 130, 128, 115, 124, 113, 143, 122, 130, 128, 123, 143, 139, 125, 108, 119, 167, 121, 137, 141, 140, 133, 113, 111, 139, 116, 131, 121, 126, 117, 128, 123, 140, 139, 118, 129, 135, 124, 134, 135, 118, 149, 136, 126, 117, 146, 134, 136, 99, 119, 124, 117, 135, 112, 122, 110, 107, 141, 133, 130, 132, 118, 134, 136, 127, 128, 142, 142, 137, 110, 113, 134, 123, 112, 114, 115, 147, 107, 119, 126, 119, 111, 127, 118, 137, 106, 123, 132, 131, 128, 125, 126, 130, 113, 120, 137, 122, 124, 119, 134, 124, 131, 114, 115, 105, 136, 133, 126, 118, 132, 131, 115, 128, 116, 113, 106, 122, 122, 121, 115, 110, 121, 133, 144, 126, 120, 124, 121, 121, 126, 135, 136, 117, 119, 130, 132, 133, 117, 133, 117, 132, 131, 128, 125, 131, 119, 129, 148, 123, 124, 134, 139, 121, 121, 120, 115, 125, 126, 126, 125, 113, 123, 131, 115, 116, 137, 128, 128, 126, 116, 130, 129, 121, 120, 130, 132, 144, 106, 115, 126, 114, 130, 137, 130, 125, 112, 123, 128, 135, 118, 135, 141, 119, 119, 138, 123, 128, 123, 137, 131, 108, 116, 142, 124, 117, 118, 113, 130, 119, 122, 118, 145, 124, 124, 123, 119, 139, 121, 132, 122, 147, 119, 139, 130, 113, 132, 126, 129, 137, 115, 142, 131, 134, 138, 107, 132, 134, 129, 132, 135, 124, 129, 121, 114, 128, 144, 134, 126, 131, 116, 110, 127, 110, 105, 108, 140, 119, 146, 124, 112, 116, 131, 138, 113, 120, 127, 112, 120, 117, 133, 124, 102, 111, 135, 120, 127, 130, 126, 122, 120, 113, 130, 140, 121, 104, 131, 104, 126, 132, 126, 113, 116, 133, 118, 136, 142, 137, 143, 102, 103, 119, 124, 136, 138, 120, 120, 121, 135, 125, 127, 108, 104, 121, 134, 126, 131, 128, 124, 110, 114, 128, 130, 134, 126, 127, 111, 103, 128, 135, 122, 126, 123, 139, 144, 124, 127, 118, 134, 113, 124, 145, 142, 132, 124, 125, 114, 143, 137, 129, 127, 123, 128, 140, 120, 136, 119, 120, 106, 108, 123, 122, 121, 119, 131, 132, 122, 116, 117, 129, 126, 125, 124, 117, 130, 118, 134, 136, 132, 132, 147, 116, 112, 112, 132, 115, 112, 138, 116, 136, 118, 132, 130, 124, 126, 144, 141, 115, 126, 115, 115, 129, 126, 126, 125, 117, 113, 129, 136, 114, 123, 128, 118, 137, 137, 121, 123, 136, 125, 122, 128, 126, 138, 127, 123, 148, 129, 123, 126, 123, 139, 125, 125, 128, 131, 119, 106, 125, 123, 127, 138, 143, 134, 131, 144, 111, 133, 134, 116, 134, 130, 123, 131, 124, 123, 117, 120, 139, 127, 126, 125, 113, 150, 128, 114, 149, 118, 141, 123, 112, 122, 123, 117, 115, 114, 128, 123, 128, 116, 137, 144, 132, 138, 127, 118, 126, 115, 131, 114, 132, 108, 119, 121, 125, 115, 118, 120, 118, 125, 125, 127, 119, 125, 124, 120, 133, 122, 138, 123, 129, 134, 114, 109, 124, 126, 140, 135, 124, 127, 123, 114, 122, 120, 137, 132, 128, 121, 128, 118, 124, 129, 139, 127, 135, 115, 125, 133, 123, 135, 125, 112, 139, 116, 137, 119, 120, 140, 115, 131, 134, 113, 141, 134, 133, 137, 126, 138, 118, 111, 128, 123, 138, 127, 124, 115, 123, 142, 145, 118, 133, 130, 136, 104, 118, 123, 143, 116, 113, 115, 125, 131, 125, 126, 114, 137, 116, 130, 134, 116, 133, 136, 140, 123, 130, 132, 132, 146, 125, 120, 110, 118, 120, 116, 136, 132, 139, 137, 132, 134, 119, 119, 113, 130, 131, 123, 145, 137, 118, 118, 113, 133, 134, 138, 124, 118, 133, 124, 105, 137, 147, 138, 127, 129, 119, 130, 122, 121, 119, 114, 142, 117, 114, 123, 97, 132, 127, 127, 126, 144, 117, 113, 125, 119, 126, 124, 115, 125, 140, 135, 114, 127, 125, 129, 132, 125, 134, 122, 133, 113, 127, 143, 130, 111, 138, 126, 124, 113, 126, 124, 124, 141, 141, 128, 106, 136, 118, 119, 127, 122, 125, 133, 138, 135, 117, 132, 131, 139, 127, 149, 121, 132, 125, 115, 122, 128, 134, 104, 95, 125, 136, 143, 126, 114, 117, 139, 124, 123, 116, 126, 115, 116, 115, 133, 114, 132, 130, 135, 132, 130, 132, 134, 137, 112, 133, 126, 126, 125, 136, 129, 115, 112, 124, 134, 131, 133, 119, 121, 121, 132, 127, 125, 109, 132, 129, 114, 125, 119, 118, 129, 121, 139, 119, 105, 126, 126, 132, 143, 130, 120, 113, 131, 117, 122, 130, 135, 117, 111, 125, 125, 122, 128, 135, 129, 135, 123, 135, 117, 138, 139, 125, 118, 136, 128, 135, 115, 124, 130, 133, 153, 123, 126, 123, 117, 130, 120, 137, 113, 138, 153, 131, 128, 130, 116, 136, 141, 122, 124, 121, 111, 130, 128, 132, 116, 139, 137, 142, 122, 122, 108, 118, 112, 114, 142, 124, 142, 131, 118, 114, 112, 128, 136, 117, 114, 111, 108, 116, 135, 123, 128, 121, 121, 122, 111, 138, 126, 107, 130, 126, 121, 108, 143, 134, 114, 136, 125, 117, 133, 117, 131, 122, 114, 128, 122, 113, 103, 141, 134, 128, 112, 127, 109, 156, 137, 132, 137, 131, 130, 106, 131, 143, 116, 112, 135, 123, 131, 131, 119, 132, 116, 120, 134, 123, 106, 110, 108, 135, 145, 113, 131, 134, 114, 119, 132, 118, 126, 142, 130, 116, 129, 122, 129, 110, 127, 127, 127, 149, 129, 126, 137, 124, 127, 131, 127, 112, 119, 126, 104, 109, 117, 115, 111, 136, 124, 132, 122, 121, 124, 134, 133, 107, 153, 112, 131, 123, 107, 132, 135, 137, 121, 135, 132, 107, 123, 117, 114, 114, 123, 119, 110, 134, 120, 133, 111, 127, 117, 124, 113, 124, 141, 118, 127, 133, 130, 118, 132, 115, 139, 131, 143, 115, 123, 132, 121, 142, 122, 136, 123, 98, 130, 138, 129, 117, 121, 121, 132, 128, 144, 149, 113, 120, 118, 114, 127, 122, 137, 118, 134, 107, 127, 125, 124, 126, 133, 137, 119, 133, 132, 126, 108, 115, 139, 112, 115, 116, 110, 108, 149, 119, 123, 118, 119, 108, 137, 108, 137, 140, 116, 116, 109, 152, 134, 106, 130, 124, 129, 125, 141, 135, 125, 128, 135, 116, 129, 124, 133, 134, 157, 124, 120, 123, 151, 115, 111, 113, 120, 132, 151, 122, 140, 125, 109, 117, 129, 125, 140, 127, 106, 120, 111, 128, 135, 128, 126, 119, 112, 140, 121, 148, 126, 119, 127, 127, 128, 117, 123, 113, 135, 114, 124, 121, 133, 99, 119, 134, 120, 137, 129, 124, 143, 128, 133, 132, 130, 116, 133, 121, 115, 126, 140, 130, 121, 131, 118, 101, 114, 111, 125, 136, 129, 128, 127, 117, 136, 116, 114, 120, 118, 108, 133, 136, 136, 124, 129, 114, 143, 130, 134, 114, 118, 97, 122, 124, 141, 122, 126, 125, 124, 125, 141, 139, 136, 114, 129, 103, 130, 133, 146, 126, 143, 118, 112, 129, 170, 145, 115, 124, 118, 146, 125, 119, 131, 120, 111, 124, 135, 114, 128, 126, 117, 124, 121, 132, 123, 124, 137, 132, 124, 121, 121, 124, 125, 144, 113, 126, 129, 136, 133, 121, 104, 129, 131, 121, 112, 125, 129, 127, 129, 122, 136, 138, 133, 135, 120, 137, 129, 131, 118, 128, 111, 129, 130, 131, 119, 131, 131, 125, 132, 128, 102, 139, 114, 128, 135, 118, 116, 128, 134, 139, 124, 107, 107, 114, 126, 120, 133, 118, 121, 143, 127, 103, 108, 133, 102, 121, 118, 137, 139, 114, 145, 131, 120, 113, 121, 130, 122, 105, 121, 109, 120, 129, 125, 132, 136, 131, 118, 110, 138, 125, 137, 144, 140, 128, 131, 116, 123, 124, 112, 130, 116, 122, 111, 119, 125, 141, 120, 145, 128, 118, 126, 125, 123, 127, 113, 135, 133, 138, 137, 128, 128, 133, 149, 141, 138, 124, 128, 121, 116, 125, 115, 140, 118, 121, 123, 121, 117, 127, 120, 116, 125, 129, 131, 111, 109, 126, 135, 123, 129, 94, 136, 109, 117, 109, 139, 119, 118, 135, 132, 127, 108, 122, 112, 110, 146, 134, 128, 132, 123, 125, 126, 140, 110, 119, 120, 125, 109, 120, 140, 128, 107, 102, 120, 129, 121, 130, 113, 135, 142, 134, 122, 119, 120, 132, 126, 126, 113, 130, 135, 117, 114, 137, 123, 145, 113, 112, 126, 133, 117, 132, 125, 137, 136, 116, 121, 143, 134, 130, 115, 128, 129, 130, 146, 141, 129, 118, 130, 120, 143, 135, 111, 120, 134, 119, 139, 119, 125, 117, 118, 140, 117, 134, 135, 112, 134, 127, 132, 136, 109, 141, 106, 135, 130, 142, 112, 132, 106, 128, 127, 122, 124, 114, 111, 117, 136, 125, 120, 140, 121, 124, 122, 125, 136, 115, 140, 131, 119, 129, 118, 133, 112, 149, 146, 122, 117, 114, 104, 119, 115, 130, 114, 126, 113, 128, 125, 101, 124, 142, 135, 106, 121, 126, 136, 109, 110, 122, 105, 125, 135, 109, 113, 125, 120, 124, 131, 125, 135, 121, 115, 117, 122, 111, 115, 121, 129, 141, 145, 112, 119, 116, 118, 123, 129, 125, 135, 130, 104, 118, 138, 128, 113, 110, 116, 119, 123, 133, 124, 128, 143, 136, 130, 136, 136, 132, 123, 106, 123, 142, 132, 115, 119, 128, 130, 113, 134, 118, 112, 115, 122, 137, 124, 136, 123, 124, 122, 126, 136, 147, 123, 115, 116, 123, 131, 131, 98, 128, 118, 121, 115, 132, 135, 116, 115, 107, 149, 116, 131, 152, 142, 117, 109, 114, 124, 127, 119, 114, 129, 115, 119, 114, 126, 138, 133, 126, 100, 134, 124, 117, 102, 138, 120, 127, 96, 113, 131, 123, 131, 119, 130, 137, 122, 115, 132, 112, 123, 141, 116, 135, 117, 132, 125, 136, 135, 115, 130, 121, 122, 125, 144, 132, 125, 140, 133, 124, 121, 137, 115, 122, 143, 128, 140, 110, 136, 110, 120, 134, 118, 127, 122, 141, 107, 138, 145, 123, 121, 115, 103, 130, 140, 120, 132, 119, 123, 129, 135, 145, 114, 138, 136, 136, 124, 112, 120, 114, 136, 120, 115, 143, 132, 125, 103, 117, 116, 129, 127, 122, 120, 122, 133, 120, 112, 128, 142, 120, 125, 126, 130, 130, 145, 143, 126, 136, 129, 126, 137, 115, 133, 144, 141, 132, 121, 128, 113, 122, 114, 111, 120, 129, 120, 141, 109, 93, 133, 112, 146, 126, 127, 141, 141, 118, 118, 103, 123, 121, 110, 130, 123, 131, 126, 136, 115, 158, 124, 133, 151, 123, 136, 136, 128, 111, 129, 113, 117, 103, 142, 126, 123, 127, 143, 126, 102, 118, 133, 114, 131, 119, 138, 129, 119, 132, 138, 132, 134, 127, 124, 131, 127, 135, 129, 137, 124, 141, 115, 123, 116, 109, 109, 116, 131, 110, 131, 121, 124, 127, 119, 110, 127, 124, 113, 143, 111, 119, 146, 136, 131, 129, 137, 115, 140, 105, 116, 109, 125, 119, 136, 119, 143, 135, 123, 129, 110, 138, 148, 116, 136, 116, 133, 121, 111, 113, 120, 120, 133, 102, 121, 127, 147, 111, 120, 117, 125, 120, 123, 129, 124, 133, 119, 116, 135, 124, 127, 104, 127, 131, 133, 139, 125, 129, 127, 140, 127, 109, 112, 137, 130, 131, 136, 124, 112, 125, 121, 140, 114, 123, 114, 125, 125, 126, 109, 113, 119, 118, 128, 129, 109, 129, 125, 108, 123, 109, 117, 138, 128, 127, 137, 127, 127, 122, 115, 128, 136, 120, 131, 114, 123, 114, 128, 113, 106, 116, 121, 115, 134, 126, 113, 131, 126, 108, 125, 144, 119, 122, 106, 138, 126, 128, 131, 123, 121, 124, 126, 111, 115, 135, 124, 106, 145, 120, 122, 127, 119, 159, 121, 99, 144, 132, 122, 107, 124, 135, 139, 144, 119, 133, 130, 133, 118, 140, 108, 103, 110, 132, 114, 102, 128, 112, 135, 123, 116, 129, 117, 128, 112, 145, 103, 123, 113, 112, 125, 141, 111, 133, 132, 132, 123, 114, 114, 146, 113, 118, 120, 150, 126, 136, 139, 126, 115, 125, 112, 124, 122, 120, 123, 121, 137, 134, 123, 123, 136, 138, 120, 115, 116, 135, 116, 134, 121, 124, 121, 129, 130, 148, 141, 122, 128, 151, 112, 135, 130, 122, 119, 114, 119, 124, 111, 126, 122, 136, 113, 139, 136, 120, 125, 138, 136, 121, 134, 122, 134, 123, 131, 138, 124, 114, 141, 145, 125, 122, 120, 135, 134, 128, 110, 131, 132, 107, 120, 120, 112, 121, 127, 122, 113, 116, 107, 116, 140, 119, 147, 131, 109, 139, 107, 131, 101, 114, 123, 134, 117, 144, 119, 90, 125, 122, 112, 121, 100, 142, 128, 143, 114, 126, 118, 130, 129, 128, 107, 104, 117, 130, 138, 136, 125, 111, 117, 101, 124, 126, 126, 112, 127, 128, 110, 134, 111, 139, 137, 123, 135, 123, 120, 130, 132, 115, 114, 129, 121, 144, 127, 117, 116, 134, 122, 121, 117, 132, 126, 138, 125, 112, 133, 144, 119, 127, 122, 125, 117, 121, 135, 131, 125, 105, 123, 114, 114, 137, 117, 96, 125, 111, 133, 132, 129, 114, 110, 120, 113, 125, 146, 119, 140, 148, 142, 132, 121, 129, 120, 118, 118, 129, 134, 111, 117, 134, 143, 108, 141, 165, 121, 107, 135, 143, 132, 142, 130, 144, 102, 127, 114, 124, 156, 125, 119, 120, 124, 121, 136, 120, 135, 119, 126, 123, 117, 119, 115, 117, 130, 114, 121, 122, 119, 124, 122, 133, 118, 126, 142, 118, 122, 137, 123, 129, 135, 147, 108, 116, 124, 135, 128, 127, 129, 141, 133, 132, 125, 108, 125, 142, 127, 132, 127, 118, 134, 136, 142, 104, 129, 127, 112, 111, 129, 135, 130, 118, 126, 125, 112, 116, 124, 116, 151, 130, 141, 120, 119, 118, 124, 125, 126, 132, 142, 126, 120, 119, 133, 119, 122, 123, 125, 127, 133, 109, 110, 126, 105, 132, 135, 141, 137, 119, 135, 122, 118, 129, 102, 108, 117, 154, 130, 129, 141, 123, 120, 127, 125, 113, 111, 133, 127, 133, 131, 141, 123, 135, 114, 139, 130, 115, 133, 135, 129, 120, 138, 135, 116, 119, 118, 119, 118, 132, 131, 136, 131, 126, 137, 119, 137, 122, 122, 116, 137, 122, 110, 133, 125, 118, 117, 123, 119, 133, 125, 121, 125, 127, 124, 123, 120, 124, 133, 133, 127, 111, 131, 105, 132, 131, 136, 143, 138, 118, 139, 130, 126, 118, 134, 132, 115, 128, 132, 142, 128, 119, 106, 119, 132, 134, 138, 109, 121, 104, 153, 108, 117, 139, 118, 130, 133, 125, 122, 126, 116, 139, 127, 137, 130, 111, 134, 130, 119, 122, 126, 126, 123, 134, 123, 116, 108, 138, 115, 140, 124, 123, 136, 128, 139, 127, 117, 108, 133, 122, 124, 115, 120, 136, 133, 136, 122, 125, 125, 128, 118, 134, 162, 112, 108, 109, 137, 135, 128, 130, 137, 112, 136, 118, 143, 130, 134, 112, 124, 138, 140, 134, 137, 144, 120, 137, 127, 114, 120, 126, 128, 136, 144, 124, 137, 107, 132, 114, 124, 145, 112, 122, 113, 116, 114, 143, 98, 140, 116, 128, 125, 128, 136, 157, 119, 136, 105, 131, 129, 129, 132, 135, 110, 140, 122, 119, 131, 142, 135, 114, 122, 136, 128, 102, 113, 128, 137, 120, 114, 116, 127, 126, 131, 117, 115, 146, 137, 128, 124, 123, 136, 116, 123, 125, 141, 127, 97, 116, 141, 137, 134, 119, 124, 130, 145, 135, 133, 103, 134, 130, 133, 126, 126, 129, 134, 122, 120, 135, 131, 100, 108, 126, 125, 120, 134, 136, 117, 114, 103, 105, 114, 130, 115, 124, 118, 128, 128, 113, 143, 126, 132, 125, 106, 126, 134, 127, 114, 123, 124, 132, 109, 117, 122, 123, 129, 140, 140, 113, 122, 109, 119, 133, 148, 97, 126, 135, 123, 131, 143, 128, 125, 122, 122, 113, 117, 133, 116, 126, 126, 127, 119, 114, 116, 139, 134, 132, 141, 121, 131, 144, 119, 114, 112, 134, 125, 120, 133, 138, 132, 118, 125, 133, 114, 100, 118, 127, 135, 109, 123, 127, 112, 126, 132, 119, 122, 132, 141, 138, 128, 132, 121, 135, 109, 127, 115, 129, 119, 126, 103, 130, 125, 140, 122, 120, 123, 115, 109, 127, 126, 146, 124, 119, 132, 140, 123, 150, 125, 121, 110, 113, 105, 132, 120, 118, 132, 138, 106, 125, 119, 124, 122, 137, 129, 108, 129, 124, 147, 116, 133, 120, 136, 126, 123, 142, 122, 123, 137, 129, 119, 128, 126, 95, 111, 124, 117, 138, 136, 108, 108, 117, 121, 121, 125, 117, 139, 124, 123, 136, 149, 134, 127, 119, 119, 119, 137, 122, 110, 122, 119, 135, 146, 109, 133, 123, 133, 128, 130, 133, 137, 128, 130, 123, 119, 129, 109, 129, 118, 128, 139, 113, 130, 132, 129, 116, 138, 131, 115, 113, 106, 121, 112, 124, 136, 135, 112, 132, 125, 119, 117, 131, 123, 130, 126, 128, 123, 117, 118, 135, 128, 129, 135, 129, 124, 120, 109, 136, 129, 118, 125, 125, 130, 133, 139, 128, 128, 124, 129, 117, 140, 123, 106, 127, 136, 131, 131, 126, 133, 127, 118, 123, 121, 123, 136, 118, 135, 127, 123, 128, 124, 119, 137, 125, 115, 108, 118, 132, 119, 119, 135, 122, 109, 131, 131, 130, 127, 129, 123, 124, 125, 111, 144, 136, 124, 131, 138, 127, 121, 122, 133, 115, 123, 123, 133, 115, 124, 137, 92, 121, 124, 117, 117, 127, 113, 116, 125, 134, 136, 123, 138, 124, 125, 108, 146, 129, 130, 112, 131, 144, 132, 125, 132, 119, 131, 124, 136, 129, 121, 107, 119, 133, 133, 137, 126, 125, 128, 122, 116, 140, 132, 122, 125, 117, 110, 109, 110, 111, 128, 130, 133, 133, 147, 130, 114, 119, 124, 128, 111, 149, 117, 114, 124, 128, 130, 128, 126, 124, 121, 114, 131, 133, 119, 127, 124, 124, 123, 128, 113, 133, 123, 113, 126, 128, 121, 128, 125, 128, 124, 133, 103, 105, 117, 123, 115, 129, 143, 119, 131, 127, 131, 114, 127, 123, 139, 114, 126, 127, 126, 121, 122, 112, 133, 127, 138, 108, 116, 129, 118, 123, 123, 140, 112, 123, 134, 114, 145, 135, 131, 114, 122, 122, 127, 128, 107, 127, 129, 122, 138, 125, 109, 117, 106, 106, 128, 125, 136, 121, 108, 137, 125, 120, 137, 127, 124, 136, 125, 124, 142, 126, 116, 124, 124, 102, 136, 122, 121, 124, 129, 126, 114, 139, 119, 131, 121, 133, 133, 120, 135, 120, 119, 133, 129, 117, 132, 125, 117, 120, 122, 122, 128, 127, 123, 126, 133, 125, 126, 132, 127, 133, 120, 133, 90, 122, 127, 119, 134, 129, 121, 133, 128, 126, 110, 136, 125, 143, 117, 143, 142, 125, 127, 137, 125, 125, 108, 133, 121, 124, 127, 124, 99, 125, 135, 117, 148, 144, 138, 111, 132, 110, 133, 129, 118, 121, 117, 114, 121, 127, 113, 125, 146, 126, 112, 138, 128, 130, 118, 120, 124, 127, 116, 116, 121, 134, 115, 151, 125, 129, 124, 101, 124, 129, 142, 122, 122, 132, 134, 114, 128, 109, 121, 125, 131, 124, 120, 142, 122, 124, 143, 132, 132, 133, 129, 115, 134, 143, 124, 127, 117, 132, 156, 118, 141, 115, 133, 129, 131, 135, 138, 126, 116, 129, 120, 128, 132, 127, 141, 121, 138, 134, 135, 121, 121, 123, 130, 134, 127, 119, 127, 129, 109, 123, 130, 123, 120, 120, 160, 89, 138, 122, 120, 129, 125, 114, 120, 111, 141, 125, 124, 122, 153, 118, 122, 124, 125, 122, 120, 119, 132, 111, 134, 127, 119, 124, 133, 140, 123, 147, 123, 119, 131, 129, 116, 120, 121, 122, 123, 149, 125, 124, 120, 128, 127, 101, 141, 132, 121, 122, 122, 121, 123, 168, 139, 129, 142, 130, 148, 124, 120, 110, 126, 127, 126, 113, 131, 141, 123, 120, 128, 120, 124, 130, 137, 123, 132, 127, 129, 119, 126, 131, 149, 117, 137, 121, 114, 119, 133, 132, 128, 124, 134, 133, 130, 127, 129, 123, 129, 128, 136, 130, 125, 132, 93, 107, 120, 119, 131, 126, 120, 121, 108, 138, 152, 128, 139, 106, 127, 117, 135, 115, 119, 119, 134, 119, 127, 114, 122, 116, 137, 117, 129, 122, 120, 123, 109, 146, 120, 136, 145, 117, 130, 127, 120, 128, 129, 133, 131, 127, 119, 132, 118, 132, 116, 124, 113, 130, 127, 123, 111, 111, 136, 132, 135, 129, 125, 124, 118, 120, 119, 114, 132, 105, 130, 141, 119, 124, 124, 126, 115, 115, 115, 116, 116, 121, 133, 130, 125, 106, 125, 120, 121, 120, 128, 127, 129, 134, 125, 121, 119, 128, 124, 130, 128, 145, 118, 132, 125, 134, 113, 126, 118, 128, 152, 123, 142, 142, 143, 128, 131, 142, 116, 140, 115, 124, 123, 125, 125, 131, 116, 107, 117, 136, 121, 132, 153, 104, 139, 131, 128, 112, 137, 109, 123, 122, 124, 124, 119, 108, 114, 122, 137, 119, 120, 143, 137, 124, 131, 121, 130, 121, 118, 123, 103, 128, 113, 127, 121, 115, 117, 125, 134, 126, 124, 128, 113, 135, 132, 140, 110, 136, 118, 120, 125, 123, 110, 126, 132, 102, 131, 134, 143, 109, 139, 132, 116, 115, 117, 137, 135, 121, 111, 123, 131, 123, 121, 118, 128, 124, 134, 103, 121, 111, 126, 130, 113, 111, 111, 128, 133, 133, 121, 131, 132, 127, 129, 128, 113, 130, 130, 137, 120, 121, 116, 125, 138, 131, 140, 130, 126, 139, 122, 128, 118, 126, 129, 122, 150, 123, 108, 132, 137, 124, 140, 133, 126, 117, 120, 105, 123, 124, 106, 126, 116, 108, 127, 129, 134, 115, 128, 112, 124, 137, 113, 127, 129, 127, 115, 119, 123, 122, 140, 126, 118, 131, 119, 130, 140, 116, 127, 119, 121, 126, 135, 116, 136, 125, 151, 138, 139, 127, 113, 113, 121, 111, 124, 129, 139, 116, 121, 108, 124, 135, 125, 130, 133, 135, 124, 126, 130, 116, 119, 125, 123, 126, 136, 135, 118, 128, 122, 119, 134, 133, 128, 107, 132, 131, 117, 110, 120, 130, 128, 116, 127, 103, 112, 140, 118, 130, 121, 111, 133, 120, 121, 105, 123, 135, 122, 125, 143, 133, 132, 111, 124, 114, 115, 130, 126, 120, 119, 113, 117, 138, 115, 136, 120, 106, 121, 124, 116, 140, 135, 120, 133, 121, 127, 143, 139, 139, 124, 139, 112, 129, 128, 141, 121, 136, 104, 142, 125, 125, 138, 132, 112, 122, 114, 127, 122, 111, 114, 119, 125, 120, 117, 123, 134, 134, 139, 129, 143, 125, 113, 141, 138, 123, 121, 137, 120, 137, 129, 115, 120, 118, 133, 137, 139, 119, 122, 125, 129, 128, 128, 113, 140, 116, 132, 124, 124, 126, 124, 128, 106, 148, 126, 124, 126, 123, 113, 123, 119, 129, 125, 126, 126, 121, 115, 129, 120, 127, 110, 117, 103, 105, 135, 125, 116, 130, 129, 114, 132, 118, 136, 129, 116, 123, 124, 107, 128, 150, 113, 105, 99, 112, 127, 128, 131, 114, 121, 118, 125, 111, 125, 126, 115, 126, 127, 116, 113, 122, 115, 121, 128, 125, 130, 133, 125, 125, 142, 132, 116, 128, 134, 121, 134, 162, 117, 132, 125, 123, 127, 149, 123, 132, 118, 117, 134, 121, 126, 137, 120, 122, 112, 132, 124, 119, 111, 127, 118, 123, 131, 130, 127, 126, 124, 131, 127, 121, 119, 133, 110, 134, 123, 130, 130, 127, 127, 135, 147, 138, 135, 116, 137, 113, 118, 114, 125, 113, 122, 118, 117, 114, 114, 135, 85, 124, 116, 122, 136, 108, 120, 142, 134, 116, 139, 119, 110, 127, 141, 117, 124, 136, 132, 127, 126, 139, 124, 122, 120, 116, 118, 138, 135, 118, 136, 105, 116, 136, 117, 141, 141, 118, 129, 118, 113, 121, 125, 119, 129, 119, 123, 123, 135, 135, 110, 101, 118, 131, 138, 126, 126, 127, 105, 119, 120, 112, 113, 107, 127, 123, 145, 144, 139, 128, 122, 117, 113, 107, 128, 117, 108, 119, 114, 140, 117, 140, 141, 120, 120, 148, 107, 132, 128, 150, 115, 139, 125, 114, 116, 128, 115, 138, 125, 134, 122, 136, 111, 136, 105, 114, 115, 107, 109, 154, 119, 116, 142, 118, 116, 138, 150, 124, 130, 130, 102, 142, 120, 126, 110, 138, 116, 129, 113, 115, 136, 138, 128, 122, 129, 108, 118, 132, 114, 122, 107, 123, 120, 123, 147, 128, 124, 130, 135, 110, 141, 125, 130, 146, 133, 124, 114, 127, 135, 144, 119, 114, 128, 126, 118, 121, 119, 126, 127, 130, 134, 105, 111, 137, 137, 122, 124, 123, 130, 123, 112, 122, 111, 144, 125, 136, 136, 104, 124, 132, 120, 126, 121, 116, 108, 115, 124, 122, 125, 132, 143, 124, 122, 133, 128, 133, 113, 129, 126, 123, 125, 116, 123, 125, 129, 119, 120, 135, 126, 127, 138, 138, 134, 113, 129, 114, 132, 124, 124, 111, 146, 135, 99, 132, 129, 129, 137, 120, 113, 132, 119, 116, 119, 141, 137, 118, 126, 117, 128, 126, 126, 131, 129, 127, 112, 132, 123, 104, 134, 129, 119, 116, 126, 142, 131, 115, 124, 129, 105, 122, 113, 120, 124, 128, 123, 138, 129, 130, 130, 125, 124, 115, 131, 128, 114, 113, 117, 129, 125, 127, 116, 130, 114, 126, 127, 131, 128, 133, 135, 140, 131, 131, 135, 114, 126, 116, 125, 127, 116, 101, 103, 136, 135, 107, 132, 131, 119, 116, 120, 136, 133, 127, 144, 123, 107, 110, 127, 128, 121, 127, 118, 125, 127, 130, 143, 110, 124, 119, 132, 95, 139, 123, 145, 127, 117, 133, 121, 120, 133, 113, 122, 133, 110, 131, 117, 103, 136, 113, 121, 124, 152, 124, 115, 139, 131, 130, 117, 126, 134, 124, 132, 128, 119, 136, 120, 128, 118, 121, 122, 109, 131, 127, 136, 139, 129, 135, 124, 116, 125, 113, 128, 117, 128, 138, 124, 113, 128, 123, 120, 146, 124, 125, 136, 113, 125, 135, 116, 97, 151, 155, 119, 138, 114, 120, 117, 124, 101, 126, 121, 121, 131, 128, 123, 124, 94, 124, 123, 131, 115, 140, 141, 116, 129, 125, 134, 124, 121, 118, 123, 123, 120, 113, 115, 129, 106, 111, 125, 122, 132, 150, 131, 122, 130, 106, 132, 128, 133, 134, 122, 128, 120, 144, 105, 129, 126, 121, 137, 150, 143, 120, 140, 127, 131, 127, 135, 126, 124, 127, 121, 136, 131, 121, 119, 105, 127, 136, 140, 141, 117, 120, 121, 120, 145, 123, 131, 127, 140, 156, 135, 132, 116, 118, 125, 138, 127, 136, 137, 134, 111, 146, 107, 119, 131, 148, 112, 115, 133, 139, 121, 122, 122, 114, 125, 122, 125, 117, 124, 117, 127, 141, 110, 136, 148, 114, 117, 133, 130, 130, 112, 107, 110, 130, 136, 159, 142, 126, 111, 117, 124, 111, 109, 125, 130, 137, 127, 132, 125, 133, 115, 128, 119, 119, 101, 124, 131, 123, 123, 113, 124, 133, 123, 128, 122, 126, 131, 150, 136, 113, 122, 130, 135, 124, 130, 122, 113, 121, 122, 121, 120, 137, 117, 120, 118, 135, 139, 130, 109, 121, 137, 116, 123, 128, 127, 115, 131, 130, 118, 134, 127, 131, 119, 132, 129, 120, 130, 143, 135, 122, 119, 123, 135, 110, 130, 124, 117, 125, 134, 126, 125, 122, 122, 118, 116, 124, 147, 123, 125, 127, 131, 130, 119, 139, 136, 127, 121, 124, 124, 118, 128, 137, 127, 140, 127, 122, 121, 120, 129, 133, 135, 141, 120, 128, 139, 127, 125, 129, 118, 127, 106, 111, 122, 119, 143, 133, 133, 116, 117, 133, 143, 147, 127, 128, 122, 137, 119, 121, 124, 122, 131, 132, 131, 111, 134, 135, 126, 120, 128, 121, 124, 129, 128, 124, 111, 122, 117, 113, 123, 112, 113, 129, 115, 110, 99, 137, 130, 127, 131, 122, 114, 110, 142, 140, 117, 121, 128, 136, 129, 124, 136, 133, 104, 120, 126, 130, 137, 125, 110, 135, 119, 125, 134, 126, 118, 119, 117, 104, 119, 137, 150, 125, 105, 137, 130, 137, 129, 117, 128, 121, 122, 127, 128, 133, 130, 136, 127, 121, 139, 127, 121, 126, 116, 127, 133, 133, 139, 110, 129, 124, 126, 115, 110, 126, 125, 105, 136, 114, 127, 120, 149, 127, 117, 121, 144, 111, 127, 101, 123, 125, 129, 129, 130, 137, 108, 114, 106, 128, 117, 112, 129, 144, 144, 119, 117, 117, 117, 111, 139, 120, 118, 114, 105, 133, 127, 132, 123, 129, 126, 129, 134, 153, 129, 142, 113, 134, 130, 111, 126, 128, 124, 122, 120, 114, 143, 142, 119, 111, 134, 130, 116, 141, 138, 126, 119, 116, 118, 128, 129, 118, 140, 128, 127, 120, 133, 134, 120, 139, 124, 133, 118, 119, 138, 115, 130, 128, 132, 149, 118, 143, 135, 114, 147, 101, 140, 130, 127, 136, 145, 118, 141, 119, 130, 115, 130, 127, 112, 112, 133, 133, 145, 128, 137, 121, 131, 129, 109, 122, 128, 110, 101, 129, 123, 105, 118, 118, 110, 125, 134, 128, 135, 135, 120, 128, 137, 143, 119, 125, 138, 115, 98, 109, 120, 119, 127, 116, 128, 119, 117, 129, 122, 129, 117, 121, 121, 130, 126, 115, 121, 127, 127, 126, 135, 119, 140, 133, 127, 134, 123, 139, 138, 118, 151, 100, 131, 121, 131, 120, 137, 98, 122, 132, 113, 130, 125, 129, 116, 126, 137, 125, 133, 112, 116, 122, 108, 143, 144, 117, 114, 120, 143, 118, 111, 121, 125, 125, 119, 125, 138, 135, 121, 144, 118, 126, 125, 113, 112, 146, 122, 114, 111, 124, 124, 135, 127, 111, 146, 129, 147, 129, 111, 146, 127, 134, 113, 133, 131, 113, 119, 124, 147, 144, 129, 101, 113, 129, 110, 121, 121, 126, 106, 123, 131, 136, 128, 105, 117, 137, 115, 115, 129, 130, 111, 113, 122, 125, 143, 133, 144, 141, 125, 127, 153, 114, 125, 119, 84, 157, 134, 121, 134, 134, 137, 137, 138, 135, 122, 129, 117, 119, 125, 118, 136, 133, 122, 124, 122, 117, 104, 114, 121, 122, 120, 139, 141, 144, 130, 125, 125, 121, 148, 127, 117, 107, 130, 133, 130, 141, 122, 127, 111, 118, 115, 128, 134, 119, 146, 128, 138, 132, 117, 129, 126, 124, 118, 108, 129, 134, 125, 129, 114, 122, 113, 136, 143, 117, 138, 126, 130, 120, 115, 112, 138, 116, 132, 140, 119, 135, 121, 125, 117, 124, 132, 123, 120, 147, 115, 132, 120, 131, 136, 129, 128, 114, 124, 112, 128, 125, 114, 139, 106, 128, 121, 118, 107, 114, 104, 111, 129, 140, 120, 97, 120, 105, 109, 117, 128, 109, 107, 139, 106, 122, 126, 113, 120, 124, 149, 129, 137, 131, 123, 123, 116, 120, 121, 143, 136, 121, 133, 116, 132, 120, 119, 125, 121, 131, 131, 125, 138, 118, 118, 125, 106, 116, 141, 135, 124, 121, 111, 109, 115, 142, 130, 131, 129, 114, 131, 121, 113, 142, 151, 128, 129, 130, 143, 131, 115, 122, 120, 125, 126, 110, 116, 117, 135, 126, 112, 121, 115, 127, 128, 137, 134, 136, 123, 120, 129, 116, 120, 134, 117, 116, 143, 110, 132, 132, 110, 116, 122, 127, 120, 121, 136, 139, 135, 109, 109, 102, 126, 132, 124, 134, 130, 149, 121, 126, 108, 115, 134, 124, 130, 127, 131, 140, 138, 128, 112, 118, 130, 126, 113, 116, 131, 126, 120, 123, 123, 116, 144, 114, 116, 139, 130, 122, 117, 142, 127, 135, 131, 125, 109, 135, 136, 119, 115, 95, 120, 134, 153, 114, 123, 122, 110, 127, 123, 143, 112, 101, 138, 139, 116, 119, 130, 109, 116, 102, 124, 108, 127, 127, 108, 124, 123, 112, 120, 127, 122, 127, 129, 118, 123, 126, 153, 116, 138, 146, 111, 130, 128, 137, 121, 132, 117, 139, 116, 120, 130, 120, 117, 130, 119, 134, 128, 130, 111, 139, 108, 120, 125, 140, 114, 150, 140, 138, 135, 112, 135, 130, 107, 122, 118, 128, 133, 112, 117, 133, 130, 121, 139, 136, 140, 145, 115, 116, 110, 138, 130, 141, 154, 118, 106, 127, 133, 120, 126, 124, 143, 129, 113, 137, 133, 120, 126, 131, 128, 121, 140, 135, 123, 133, 145, 121, 136, 110, 111, 128, 97, 122, 91, 117, 139, 134, 134, 113, 132, 127, 105, 115, 125, 110, 132, 151, 87, 131, 134, 116, 129, 123, 123, 116, 122, 134, 131, 128, 131, 118, 134, 114, 114, 134, 117, 147, 128, 148, 131, 129, 129, 116, 126, 129, 114, 118, 134, 127, 143, 131, 129, 115, 119, 129, 122, 127, 132, 116, 145, 137, 122, 129, 134, 134, 156, 131, 121, 125, 126, 130, 136, 126, 119, 109, 115, 121, 138, 122, 124, 116, 134, 117, 124, 142, 131, 124, 131, 126, 146, 135, 145, 120, 141, 130, 116, 131, 122, 122, 144, 126, 136, 135, 129, 140, 133, 116, 131, 135, 120, 124, 116, 133, 106, 129, 135, 133, 144, 123, 130, 117, 132, 129, 134, 123, 126, 137, 102, 138, 130, 123, 152, 135, 140, 132, 133, 134, 142, 108, 146, 108, 132, 144, 117, 136, 125, 138, 120, 129, 124, 132, 116, 145, 127, 118, 107, 114, 123, 132, 116, 141, 128, 129, 106, 123, 124, 135, 130, 126, 128, 132, 129, 108, 121, 136, 129, 128, 118, 135, 121, 118, 129, 131, 120, 140, 140, 109, 110, 142, 116, 115, 147, 113, 132, 117, 132, 113, 133, 114, 125, 131, 142, 146, 128, 132, 142, 138, 121, 121, 134, 123, 141, 136, 129, 135, 122, 133, 132, 121, 122, 126, 138, 129, 134, 121, 133, 120, 119, 119, 126, 123, 122, 117, 143, 131, 136, 125, 139, 128, 133, 133, 132, 141, 132, 135, 142, 124, 113, 137, 120, 121, 124, 120, 134, 135, 143, 127, 137, 110, 138, 101, 101, 141, 137, 124, 125, 119, 121, 133, 103, 115, 130, 122, 119, 131, 149, 122, 150, 120, 121, 118, 116, 123, 151, 130, 136, 104, 110, 138, 119, 137, 113, 135, 115, 120, 130, 120, 105, 130, 123, 133, 127, 104, 132, 111, 120, 106, 133, 117, 118, 119, 123, 110, 114, 132, 132, 127, 138, 134, 119, 113, 147, 107, 143, 122, 138, 108, 151, 124, 128, 143, 115, 127, 117, 120, 118, 122, 119, 130, 146, 130, 105, 133, 126, 132, 116, 132, 140, 124, 106, 107, 113, 104, 120, 108, 131, 115, 146, 122, 117, 117, 129, 125, 122, 131, 111, 106, 138, 109, 121, 125, 128, 114, 127, 141, 112, 111, 132, 106, 128, 132, 125, 131, 114, 117, 131, 129, 119, 140, 118, 126, 139, 119, 109, 126, 138, 116, 131, 106, 125, 121, 112, 124, 132, 128, 139, 143, 113, 129, 101, 122, 121, 118, 129, 111, 150, 124, 131, 122, 133, 149, 114, 150, 142, 147, 118, 113, 124, 131, 139, 111, 137, 112, 123, 101, 136, 132, 113, 118, 121, 161, 147, 127, 123, 117, 119, 116, 136, 133, 147, 119, 132, 106, 122, 117, 117, 128, 121, 119, 108, 131, 139, 149, 126, 120, 118, 121, 124, 110, 117, 130, 130, 138, 117, 117, 111, 114, 127, 116, 113, 144, 141, 131, 135, 140, 130, 122, 132, 125, 127, 122, 117, 145, 130, 110, 119, 115, 128, 121, 121, 135, 116, 125, 121, 125, 134, 113, 120, 141, 125, 123, 130, 132, 113, 121, 125, 122, 118, 154, 134, 109, 134, 96, 126, 126, 133, 122, 127, 151, 116, 113, 125, 130, 126, 126, 144, 107, 144, 116, 138, 128, 127, 136, 140, 131, 112, 134, 131, 120, 120, 126, 122, 136, 117, 119, 103, 114, 122, 117, 139, 126, 128, 107, 130, 112, 116, 129, 112, 130, 114, 128, 119, 133, 117, 109, 115, 157, 101, 114, 124, 146, 138, 116, 134, 90, 133, 121, 113, 157, 121, 109, 129, 114, 119, 123, 126, 114, 131, 127, 136, 151, 132, 132, 114, 139, 140, 124, 107, 111, 125, 133, 131, 132, 119, 128, 126, 137, 137, 123, 132, 118, 130, 120, 125, 135, 127, 140, 117, 109, 132, 146, 129, 110, 118, 116, 129, 133, 141, 124, 123, 115, 114, 106, 134, 130, 117, 119, 123, 122, 153, 115, 128, 130, 134, 127, 111, 136, 97, 112, 137, 124, 114, 132, 125, 134, 123, 115, 133, 126, 113, 96, 108, 152, 131, 123, 109, 107, 132, 119, 137, 130, 126, 133, 118, 113, 144, 143, 122, 123, 141, 130, 110, 112, 134, 152, 133, 98, 132, 137, 134, 108, 115, 111, 141, 139, 107, 133, 121, 117, 108, 110, 119, 125, 127, 125, 118, 146, 121, 141, 121, 116, 126, 113, 128, 132, 114, 124, 124, 102, 121, 136, 131, 134, 121, 113, 127, 122, 114, 119, 124, 137, 123, 120, 115, 123, 131, 124, 132, 138, 137, 151, 116, 135, 142, 129, 134, 131, 145, 120, 139, 133, 138, 122, 117, 136, 116, 139, 124, 137, 131, 135, 128, 122, 121, 130, 134, 141, 130, 105, 126, 124, 126, 120, 129, 112, 106, 133, 127, 140, 136, 121, 128, 142, 128, 127, 131, 120, 125, 122, 105, 111, 129, 132, 121, 123, 118, 142, 120, 128, 129, 141, 123, 117, 131, 105, 125, 133, 108, 137, 135, 141, 121, 127, 115, 121, 115, 134, 103, 134, 121, 142, 144, 126, 116, 129, 113, 130, 120, 137, 120, 137, 110, 108, 105, 127, 142, 119, 128, 127, 122, 138, 127, 151, 119, 123, 128, 114, 133, 125, 118, 128, 119, 132, 119, 115, 132, 99, 122, 125, 128, 125, 130, 122, 122, 116, 125, 131, 146, 145, 120, 128, 133, 130, 110, 133, 129, 144, 137, 110, 110, 132, 140, 110, 127, 134, 128, 127, 151, 125, 140, 132, 108, 137, 115, 122, 115, 132, 140, 129, 125, 134, 148, 151, 111, 112, 128, 107, 150, 112, 116, 129, 118, 124, 120, 134, 134, 113, 136, 121, 123, 131, 128, 121, 121, 122, 136, 115, 98, 130, 142, 138, 111, 111, 106, 124, 124, 113, 116, 121, 127, 114, 135, 158, 122, 115, 124, 123, 116, 113, 122, 119, 118, 129, 104, 112, 136, 142, 119, 152, 111, 132, 131, 138, 114, 119, 117, 131, 144, 109, 127, 131, 139, 125, 126, 135, 118, 130, 110, 132, 121, 111, 134, 127, 139, 108, 122, 115, 121, 119, 127, 120, 116, 112, 122, 123, 136, 127, 110, 139, 137, 127, 117, 126, 109, 127, 123, 110, 137, 137, 145, 130, 128, 138, 139, 161, 123, 113, 118, 102, 111, 125, 121, 122, 124, 139, 123, 130, 127, 134, 126, 119, 130, 121, 140, 126, 141, 130, 122, 101, 131, 112, 134, 136, 133, 130, 120, 108, 126, 145, 107, 114, 106, 117, 123, 140, 136, 125, 114, 119, 124, 131, 125, 130, 129, 137, 115, 121, 119, 130, 117, 122, 115, 112, 127, 133, 130, 130, 143, 135, 118, 114, 137, 123, 136, 128, 137, 120, 108, 117, 124, 120, 124, 125, 111, 119, 153, 107, 135, 133, 148, 123, 116, 124, 129, 123, 138, 110, 121, 138, 124, 124, 137, 131, 134, 116, 143, 123, 103, 134, 120, 117, 126, 128, 124, 129, 124, 125, 119, 127, 125, 148, 109, 115, 114, 107, 127, 143, 130, 124, 136, 125, 129, 144, 123, 123, 121, 112, 134, 119, 131, 129, 138, 121, 132, 125, 138, 99, 114, 124, 103, 133, 124, 126, 131, 113, 150, 121, 114, 118, 110, 125, 135, 127, 126, 106, 105, 118, 121, 131, 131, 121, 126, 135, 138, 138, 125, 137, 116, 123, 111, 119, 131, 124, 106, 125, 141, 128, 113, 141, 116, 125, 119, 109, 136, 139, 141, 131, 117, 115, 124, 118, 129, 116, 96, 120, 126, 134, 130, 142, 118, 140, 123, 136, 111, 107, 123, 121, 128, 146, 140, 127, 130, 124, 126, 123, 146, 135, 146, 128, 104, 118, 110, 138, 112, 137, 138, 138, 145, 126, 141, 125, 132, 120, 113, 144, 111, 124, 140, 123, 112, 128, 139, 116, 116, 111, 122, 124, 128, 121, 131, 116, 120, 142, 119, 121, 136, 126, 131, 118, 144, 116, 123, 111, 127, 128, 127, 127, 111, 112, 126, 126, 113, 133, 129, 116, 130, 129, 119, 128, 135, 139, 148, 129, 111, 125, 128, 128, 133, 128, 112, 118, 121, 129, 145, 129, 126, 126, 132, 128, 133, 128, 115, 126, 123, 127, 134, 108, 123, 120, 117, 131, 118, 128, 108, 128, 119, 119, 122, 119, 125, 151, 126, 133, 118, 121, 131, 121, 126, 124, 128, 119, 132, 129, 127, 126, 113, 122, 122, 133, 115, 118, 126, 124, 125, 128, 103, 115, 134, 137, 130, 154, 103, 102, 136, 131, 117, 129, 113, 127, 125, 135, 125, 127, 132, 118, 140, 124, 133, 147, 117, 134, 118, 129, 107, 148, 119, 118, 102, 137, 141, 131, 129, 132, 129, 111, 107, 115, 128, 123, 126, 110, 132, 121, 131, 123, 141, 128, 118, 114, 122, 118, 132, 134, 99, 122, 126, 126, 137, 126, 111, 130, 113, 116, 119, 123, 134, 145, 125, 136, 150, 119, 120, 144, 129, 113, 130, 134, 130, 115, 146, 116, 125, 106, 121, 135, 123, 113, 131, 117, 123, 127, 139, 114, 127, 126, 138, 132, 131, 123, 114, 101, 132, 144, 146, 144, 133, 139, 127, 116, 121, 140, 110, 124, 123, 133, 128, 135, 115, 124, 123, 117, 133, 122, 128, 138, 100, 121, 121, 140, 137, 122, 120, 131, 105, 122, 130, 129, 122, 135, 131, 120, 109, 96, 84, 128, 119, 131, 117, 117, 122, 124, 133, 127, 130, 125, 121, 109, 119, 155, 135, 130, 133, 117, 104, 100, 134, 114, 108, 121, 127, 131, 134, 120, 136, 133, 124, 157, 134, 132, 131, 128, 128, 131, 126, 123, 128, 131, 116, 127, 136, 120, 124, 115, 115, 129, 127, 133, 115, 131, 140, 143, 124, 132, 136, 137, 120, 119, 133, 135, 144, 136, 131, 118, 159, 127, 130, 128, 118, 107, 121, 121, 110, 119, 124, 121, 127, 111, 115, 118, 150, 140, 110, 118, 118, 111, 130, 123, 125, 125, 120, 129, 120, 124, 148, 112, 142, 117, 120, 144, 119, 119, 130, 114, 131, 113, 127, 121, 116, 134, 123, 120, 129, 120, 134, 121, 130, 134, 109, 129, 125, 110, 129, 132, 147, 135, 119, 122, 121, 151, 115, 126, 105, 132, 122, 127, 125, 122, 121, 132, 128, 121, 127, 103, 143, 112, 127, 120, 124, 123, 110, 151, 114, 117, 111, 135, 121, 115, 132, 159, 124, 128, 140, 136, 113, 116, 112, 128, 118, 126, 134, 113, 134, 121, 126, 129, 141, 125, 143, 122, 116, 116, 132, 121, 128, 127, 146, 128, 109, 138, 128, 139, 124, 127, 124, 132, 126, 133, 133, 126, 145, 114, 131, 117, 134, 125, 118, 115, 127, 112, 108, 122, 111, 120, 150, 132, 116, 116, 124, 112, 118, 119, 132, 117, 142, 128, 115, 116, 143, 127, 122, 124, 137, 140, 133, 111, 130, 127, 114, 132, 117, 125, 113, 119, 133, 121, 120, 122, 117, 120, 102, 119, 132, 131, 111, 134, 117, 114, 114, 120, 146, 136, 134, 126, 112, 116, 125, 133, 112, 115, 125, 129, 119, 116, 132, 114, 115, 113, 130, 131, 118, 128, 128, 126, 116, 115, 112, 128, 122, 125, 133, 141, 154, 129, 124, 118, 130, 125, 144, 144, 127, 124, 129, 130, 123, 147, 126, 127, 141, 112, 132, 131, 122, 147, 120, 110, 113, 123, 143, 122, 134, 119, 120, 124, 151, 145, 118, 140, 110, 129, 109, 131, 129, 115, 128, 128, 129, 121, 115, 135, 126, 130, 102, 112, 133, 122, 119, 139, 144, 135, 130, 146, 140, 136, 137, 116, 141, 109, 135, 113, 131, 128, 111, 124, 123, 126, 134, 133, 121, 142, 137, 115, 116, 147, 132, 123, 120, 125, 110, 123, 122, 126, 117, 134, 122, 119, 113, 104, 133, 125, 121, 132, 143, 106, 134, 113, 136, 129, 118, 117, 110, 137, 126, 117, 129, 123, 118, 133, 110, 128, 124, 119, 127, 111, 132, 126, 115, 147, 137, 124, 119, 129, 137, 129, 130, 136, 126, 119, 128, 133, 121, 119, 109, 116, 135, 127, 124, 108, 130, 102, 118, 118, 123, 126, 111, 132, 122, 102, 125, 123, 127, 128, 113, 114, 123, 125, 133, 132, 126, 128, 124, 121, 137, 131, 134, 123, 126, 90, 122, 133, 136, 129, 124, 126, 138, 122, 125, 144, 131, 111, 122, 126, 108, 145, 115, 107, 137, 135, 124, 117, 102, 125, 155, 126, 121, 121, 122, 117, 116, 137, 141, 125, 117, 130, 128, 104, 117, 126, 129, 127, 131, 118, 119, 146, 133, 129, 131, 136, 125, 108, 131, 118, 114, 111, 122, 125, 134, 127, 128, 105, 106, 124, 123, 118, 115, 112, 131, 114, 141, 138, 121, 127, 146, 108, 117, 136, 135, 134, 116, 113, 124, 127, 118, 121, 132, 117, 116, 133, 124, 121, 129, 108, 129, 130, 125, 113, 127, 111, 110, 133, 123, 128, 115, 110, 122, 110, 118, 105, 125, 122, 125, 124, 108, 117, 115, 116, 118, 153, 138, 133, 141, 154, 139, 119, 132, 118, 118, 119, 105, 126, 129, 127, 111, 124, 147, 139, 136, 134, 110, 124, 120, 125, 125, 112, 109, 124, 119, 122, 106, 141, 116, 125, 135, 133, 131, 131, 123, 120, 120, 131, 134, 126, 127, 128, 109, 129, 123, 117, 127, 142, 109, 127, 136, 118, 123, 133, 130, 114, 115, 142, 129, 131, 125, 119, 127, 130, 118, 115, 142, 125, 121, 131, 124, 109, 128, 131, 120, 136, 131, 121, 123, 128, 117, 109, 132, 134, 123, 125, 128, 127, 134, 134, 118, 122, 139, 123, 132, 148, 140, 130, 132, 116, 110, 133, 112, 135, 131, 131, 121, 132, 130, 133, 119, 134, 146, 130, 117, 125, 119, 128, 136, 122, 157, 131, 116, 119, 106, 117, 124, 132, 132, 131, 110, 116, 134, 124, 113, 118, 138, 126, 123, 123, 117, 107, 131, 134, 120, 135, 125, 131, 132, 125, 133, 133, 121, 110, 125, 105, 135, 126, 125, 135, 128, 128, 134, 130, 144, 122, 130, 109, 119, 127, 111, 117, 134, 147, 127, 117, 126, 139, 127, 104, 116, 125, 122, 127, 122, 116, 103, 130, 137, 124, 144, 120, 141, 134, 138, 120, 106, 129, 105, 127, 109, 118, 130, 118, 116, 129, 124, 118, 119, 106, 136, 130, 121, 115, 137, 130, 127, 144, 126, 123, 114, 142, 111, 113, 128, 129, 110, 130, 126, 112, 110, 127, 138, 127, 119, 117, 116, 117, 128, 117, 136, 124, 115, 126, 130, 124, 119, 117, 133, 116, 120, 141, 115, 131, 123, 125, 120, 140, 119, 123, 127, 112, 141, 123, 96, 104, 109, 130, 122, 144, 126, 130, 128, 128, 131, 137, 125, 116, 120, 118, 136, 106, 137, 121, 119, 114, 152, 133, 97, 109, 130, 124, 147, 131, 120, 139, 133, 137, 119, 132, 131, 122, 139, 135, 112, 116, 127, 122, 138, 123, 122, 119, 116, 117, 132, 130, 114, 132, 104, 128, 121, 123, 123, 124, 130, 102, 126, 117, 112, 130, 117, 153, 143, 125, 124, 119, 122, 132, 133, 122, 130, 131, 125, 122, 133, 120, 143, 128, 125, 149, 123, 128, 125, 114, 110, 117, 136, 116, 122, 123, 100, 141, 115, 129, 126, 140, 128, 120, 123, 120, 131, 125, 120, 139, 123, 119, 132, 118, 115, 123, 125, 150, 123, 117, 139, 126, 151, 137, 144, 124, 136, 136, 123, 124, 105, 115, 138, 133, 121, 114, 114, 130, 108, 128, 121, 127, 138, 116, 138, 124, 105, 141, 141, 122, 132, 139, 115, 131, 127, 148, 112, 125, 129, 122, 121, 137, 117, 119, 134, 132, 121, 122, 130, 124, 120, 119, 123, 133, 147, 128, 114, 126, 144, 124, 137, 115, 122, 124, 142, 115, 118, 125, 123, 121, 126, 128, 115, 126, 134, 134, 138, 138, 135, 111, 128, 125, 146, 135, 135, 130, 108, 116, 133, 132, 119, 109, 115, 125, 141, 127, 110, 122, 117, 134, 121, 118, 130, 112, 116, 143, 130, 114, 140, 114, 125, 128, 115, 125, 112, 126, 120, 130, 130, 118, 122, 132, 126, 119, 126, 118, 105, 114, 132, 130, 122, 123, 121, 136, 108, 135, 124, 111, 119, 135, 115, 138, 144, 125, 129, 141, 120, 128, 109, 108, 129, 120, 135, 139, 123, 118, 128, 135, 132, 131, 120, 114, 113, 117, 130, 119, 124, 131, 105, 113, 139, 123, 123, 129, 127, 125, 126, 103, 116, 130, 134, 123, 117, 124, 115, 122, 119, 118, 121, 126, 133, 133, 124, 129, 126, 117, 107, 126, 143, 122, 123, 120, 129, 124, 123, 125, 134, 118, 135, 119, 140, 146, 141, 122, 132, 104, 130, 123, 121, 135, 130, 119, 121, 122, 127, 131, 120, 131, 129, 99, 134, 131, 120, 137, 144, 141, 119, 126, 107, 157, 119, 113, 150, 131, 141, 109, 115, 119, 123, 125, 127, 130, 128, 126, 119, 130, 129, 113, 135, 140, 117, 129, 131, 126, 109, 113, 119, 133, 123, 130, 129, 132, 128, 125, 125, 126, 116, 121, 117, 124, 130, 140, 142, 135, 134, 112, 150, 118, 132, 113, 119, 142, 119, 131, 129, 130, 126, 121, 120, 110, 130, 133, 118, 134, 115, 126, 142, 132, 140, 114, 140, 129, 120, 133, 126, 127, 134, 134, 120, 135, 137, 113, 127, 132, 121, 140, 111, 125, 126, 121, 132, 132, 138, 139, 141, 131, 106, 150, 135, 135, 138, 123, 117, 106, 126, 124, 132, 109, 126, 135, 129, 123, 134, 109, 115, 140, 127, 132, 136, 136, 122, 113, 128, 123, 125, 129, 125, 127, 128, 124, 140, 124, 126, 127, 134, 121, 122, 135, 116, 137, 111, 132, 127, 126, 134, 118, 134, 125, 119, 139, 119, 116, 126, 112, 122, 110, 120, 115, 112, 138, 122, 133, 125, 136, 117, 134, 125, 127, 133, 120, 139, 126, 131, 129, 146, 129, 133, 117, 127, 110, 143, 120, 136, 132, 132, 120, 108, 116, 109, 101, 132, 137, 112, 127, 134, 135, 119, 132, 119, 128, 104, 112, 116, 122, 125, 130, 141, 125, 129, 147, 137, 131, 130, 117, 116, 120, 124, 129, 121, 113, 126, 135, 118, 122, 137, 130, 136, 122, 147, 127, 145, 131, 119, 108, 146, 128, 143, 99, 126, 137, 131, 104, 129, 115, 121, 119, 118, 148, 117, 119, 131, 121, 118, 116, 134, 118, 144, 117, 129, 120, 134, 104, 134, 138, 113, 135, 134, 143, 135, 127, 127, 106, 126, 123, 115, 129, 123, 137, 136, 121, 144, 135, 125, 127, 124, 124, 122, 142, 125, 122, 134, 127, 122, 139, 129, 122, 133, 137, 98, 131, 107, 114, 138, 121, 145, 126, 142, 121, 112, 134, 124, 111, 121, 127, 114, 133, 103, 140, 135, 130, 136, 130, 124, 117, 126, 115, 109, 128, 123, 121, 104, 134, 129, 136, 130, 122, 110, 140, 105, 127, 127, 118, 125, 129, 119, 125, 129, 144, 126, 133, 136, 131, 127, 112, 123, 112, 123, 119, 119, 117, 107, 117, 124, 143, 142, 135, 141, 118, 126, 123, 121, 121, 127, 129, 105, 126, 135, 136, 114, 120, 134, 134, 131, 130, 122, 132, 127, 119, 139, 120, 115, 124, 118, 134, 122, 117, 121, 123, 120, 146, 122, 128, 118, 120, 120, 143, 107, 120, 119, 137, 126, 126, 130, 118, 128, 131, 133, 130, 129, 137, 139, 127, 124, 126, 132, 121, 119, 127, 136, 133, 125, 140, 136, 128, 119, 120, 134, 135, 135, 136, 119, 123, 127, 129, 122, 122, 120, 129, 122, 132, 113, 123, 106, 116, 118, 117, 107, 134, 99, 119, 138, 111, 135, 127, 124, 121, 114, 116, 131, 127, 140, 127, 116, 117, 116, 111, 125, 131, 125, 137, 120, 119, 112, 140, 119, 128, 135, 141, 121, 122, 99, 127, 128, 117, 125, 109, 138, 116, 120, 141, 93, 118, 137, 125, 122, 115, 118, 127, 131, 124, 127, 126, 125, 123, 119, 122, 133, 129, 117, 133, 131, 152, 127, 130, 122, 118, 126, 138, 128, 126, 104, 143, 135, 121, 126, 107, 119, 121, 136, 123, 130, 120, 114, 129, 120, 132, 126, 124, 125, 114, 118, 117, 113, 103, 101, 118, 140, 134, 118, 142, 108, 134, 133, 119, 123, 131, 139, 115, 104, 119, 133, 124, 146, 114, 118, 132, 132, 129, 124, 139, 106, 131, 137, 117, 110, 119, 131, 125, 115, 123, 120, 128, 131, 113, 135, 116, 123, 124, 127, 114, 112, 116, 144, 138, 116, 114, 138, 123, 120, 124, 104, 135, 108, 111, 129, 131, 119, 149, 115, 126, 133, 125, 130, 132, 141, 137, 130, 135, 118, 114, 113, 126, 124, 116, 96, 126, 88, 135, 122, 115, 127, 109, 128, 134, 124, 121, 127, 132, 108, 118, 145, 133, 132, 121, 128, 117, 116, 119, 126, 136, 136, 120, 116, 128, 116, 134, 136, 121, 120, 127, 127, 134, 133, 132, 126, 135, 129, 102, 143, 105, 127, 133, 123, 145, 119, 123, 131, 120, 114, 127, 138, 143, 135, 136, 130, 129, 105, 131, 115, 101, 114, 135, 105, 124, 141, 120, 144, 95, 122, 119, 132, 118, 127, 126, 127, 135, 106, 134, 124, 126, 111, 127, 125, 125, 122, 111, 120, 127, 127, 112, 142, 133, 127, 121, 101, 116, 132, 117, 120, 133, 126, 128, 146, 123, 132, 119, 112, 140, 114, 118, 121, 122, 126, 108, 127, 136, 140, 128, 131, 129, 135, 115, 129, 126, 122, 122, 138, 120, 102, 140, 128, 130, 124, 115, 117, 134, 136, 112, 129, 129, 121, 110, 132, 113, 113, 108, 139, 120, 131, 140, 128, 140, 112, 131, 128, 121, 153, 129, 108, 127, 131, 138, 109, 122, 130, 150, 130, 116, 128, 122, 135, 124, 131, 125, 143, 118, 133, 130, 120, 126, 127, 130, 139, 110, 126, 132, 119, 127, 128, 123, 127, 121, 135, 128, 115, 120, 130, 131, 126, 114, 100, 106, 123, 113, 116, 138, 141, 139, 134, 129, 119, 118, 127, 127, 120, 129, 120, 133, 120, 135, 128, 133, 129, 113, 118, 123, 118, 135, 130, 114, 118, 137, 130, 127, 123, 122, 148, 122, 105, 130, 132, 131, 123, 121, 118, 123, 125, 129, 133, 124, 125, 126, 123, 130, 122, 125, 133, 121, 151, 130, 127, 114, 108, 97, 132, 123, 111, 120, 125, 140, 132, 105, 128, 123, 127, 117, 115, 113, 118, 139, 143, 139, 107, 115, 130, 126, 111, 110, 135, 138, 136, 119, 115, 121, 141, 111, 121, 130, 136, 143, 136, 137, 115, 131, 122, 121, 129, 138, 138, 136, 136, 135, 134, 108, 146, 148, 120, 137, 119, 112, 126, 122, 139, 125, 117, 142, 117, 125, 119, 135, 117, 131, 141, 111, 146, 124, 124, 130, 121, 118, 129, 134, 108, 128, 116, 107, 136, 125, 111, 121, 118, 119, 123, 140, 130, 133, 119, 131, 119, 136, 126, 118, 121, 115, 140, 118, 124, 120, 133, 120, 110, 133, 115, 130, 125, 127, 126, 104, 157, 128, 127, 122, 138, 125, 109, 129, 138, 140, 124, 119, 116, 127, 142, 125, 124, 137, 119, 108, 139, 142, 123, 121, 115, 126, 132, 136, 123, 111, 130, 112, 135, 131, 138, 145, 120, 128, 134, 115, 120, 131, 124, 129, 119, 118, 115, 124, 128, 114, 131, 133, 128, 134, 129, 114, 134, 126, 138, 143, 127, 120, 136, 127, 150, 135, 121, 139, 134, 110, 145, 122, 129, 125, 136, 139, 130, 124, 116, 123, 123, 133, 137, 117, 138, 137, 115, 112, 126, 121, 130, 130, 124, 128, 118, 116, 134, 152, 128, 139, 124, 109, 111, 122, 120, 131, 138, 121, 132, 118, 117, 123, 130, 131, 127, 117, 118, 125, 129, 146, 125, 124, 127, 114, 112, 137, 144, 142, 113, 131, 117, 126, 115, 124, 114, 118, 120, 136, 136, 132, 123, 132, 127, 139, 109, 136, 123, 105, 104, 117, 96, 124, 126, 139, 141, 129, 126, 115, 135, 118, 106, 130, 132, 138, 123, 136, 136, 116, 144, 124, 123, 125, 143, 140, 112, 122, 142, 123, 124, 124, 132, 120, 123, 124, 115, 122, 149, 119, 131, 124, 116, 132, 134, 124, 123, 131, 119, 119, 132, 116, 135, 122, 127, 114, 131, 125, 135, 138, 140, 131, 120, 121, 144, 147, 124, 137, 111, 129, 119, 125, 125, 115, 137, 130, 139, 128, 123, 121, 124, 114, 113, 108, 119, 113, 121, 124, 125, 140, 128, 136, 134, 119, 104, 119, 117, 141, 121, 123, 125, 130, 135, 125, 120, 129, 132, 132, 126, 126, 129, 102, 122, 113, 134, 126, 151, 120, 116, 132, 128, 123, 138, 124, 127, 134, 139, 119, 139, 144, 131, 125, 109, 123, 142, 139, 131, 133, 122, 126, 112, 111, 109, 119, 128, 123, 140, 129, 114, 143, 127, 132, 117, 135, 126, 116, 114, 124, 137, 106, 136, 114, 129, 127, 134, 107, 110, 114, 120, 124, 133, 128, 137, 130, 112, 119, 118, 117, 131, 137, 139, 127, 120, 140, 112, 128, 127, 130, 135, 123, 103, 123, 125, 130, 118, 120, 136, 127, 124, 139, 123, 124, 136, 123, 110, 120, 143, 129, 120, 105, 128, 136, 143, 109, 114, 113, 133, 111, 97, 149, 116, 148, 125, 121, 118, 115, 126, 112, 131, 126, 116, 115, 127, 132, 121, 132, 111, 141, 133, 109, 126, 125, 132, 122, 132, 131, 110, 123, 143, 142, 121, 131, 135, 120, 131, 133, 109, 114, 123, 130, 122, 139, 122, 126, 132, 127, 130, 112, 126, 122, 114, 111, 125, 134, 116, 121, 133, 104, 114, 107, 122, 126, 137, 120, 133, 116, 109, 113, 118, 118, 119, 135, 124, 118, 138, 136, 116, 133, 136, 128, 116, 96, 111, 128, 128, 116, 118, 104, 119, 133, 121, 127, 129, 127, 126, 137, 123, 112, 125, 136, 150, 128, 156, 130, 150, 115, 141, 118, 139, 124, 132, 136, 130, 124, 117, 124, 121, 116, 108, 127, 140, 148, 121, 129, 134, 123, 123, 139, 114, 126, 125, 112, 122, 115, 147, 149, 134, 124, 119, 120, 119, 123, 126, 117, 127, 130, 126, 120, 128, 135, 142, 129, 134, 140, 124, 131, 125, 113, 117, 128, 143, 106, 134, 125, 130, 116, 129, 132, 128, 130, 116, 122, 98, 133, 141, 121, 116, 122, 134, 133, 122, 130, 127, 126, 122, 127, 131, 110, 138, 104, 110, 123, 116, 142, 124, 148, 123, 126, 118, 116, 136, 136, 122, 115, 156, 127, 139, 127, 131, 116, 123, 130, 134, 119, 131, 133, 121, 130, 119, 109, 128, 126, 129, 117, 116, 138, 129, 132, 109, 120, 126, 125, 129, 115, 111, 155, 118, 136, 126, 128, 130, 133, 133, 133, 116, 132, 127, 111, 125, 136, 128, 110, 94, 126, 118, 125, 127, 138, 137, 131, 120, 119, 132, 118, 136, 126, 122, 108, 148, 130, 134, 110, 121, 132, 117, 121, 107, 137, 139, 108, 114, 135, 108, 133, 126, 120, 130, 118, 107, 128, 105, 141, 123, 126, 125, 115, 124, 102, 118, 126, 126, 126, 120, 121, 108, 126, 126, 130, 123, 148, 143, 105, 125, 136, 113, 113, 119, 125, 119, 146, 123, 137, 121, 110, 134, 107, 136, 147, 144, 133, 118, 112, 141, 130, 97, 115, 126, 126, 114, 121, 118, 126, 119, 128, 134, 137, 114, 120, 140, 123, 123, 129, 131, 119, 133, 122, 113, 135, 126, 116, 144, 135, 140, 115, 138, 131, 123, 132, 140, 131, 115, 144, 115, 121, 123, 132, 128, 121, 118, 137, 154, 138, 112, 126, 130, 153, 123, 157, 122, 115, 118, 121, 125, 146, 135, 130, 121, 128, 144, 134, 140, 120, 112, 137, 125, 136, 127, 114, 121, 108, 124, 130, 142, 135, 126, 134, 142, 109, 123, 114, 125, 147, 118, 117, 129, 125, 133, 131, 138, 116, 130, 116, 148, 130, 140, 115, 129, 126, 145, 123, 129, 125, 115, 131, 128, 120, 140, 127, 119, 124, 142, 130, 123, 124, 129, 131, 126, 108, 116, 127, 127, 129, 127, 121, 126, 134, 117, 114, 132, 120, 122, 132, 131, 108, 120, 132, 133, 131, 131, 120, 120, 131, 135, 110, 129, 116, 147, 129, 121, 128, 124, 126, 123, 119, 117, 132, 127, 126, 114, 116, 123, 110, 133, 142, 106, 125, 119, 123, 125, 118, 122, 134, 124, 133, 125, 118, 127, 129, 119, 123, 118, 117, 122, 116, 130, 130, 120, 102, 113, 125, 121, 130, 137, 131, 126, 123, 127, 125, 114, 117, 128, 131, 147, 126, 121, 124, 128, 123, 130, 110, 126, 123, 127, 99, 141, 121, 130, 115, 127, 132, 130, 116, 119, 136, 118, 121, 127, 118, 139, 123, 121, 125, 140, 127, 114, 134, 131, 116, 123, 109, 133, 110, 122, 137, 156, 116, 127, 134, 115, 136, 122, 120, 100, 145, 130, 113, 118, 141, 119, 125, 133, 128, 114, 133, 127, 134, 141, 134, 129, 124, 132, 110, 121, 131, 140, 128, 125, 100, 107, 134, 117, 106, 120, 111, 120, 140, 113, 127, 123, 122, 123, 128, 121, 126, 118, 124, 118, 131, 151, 132, 112, 113, 111, 140, 128, 122, 126, 102, 124, 122, 114, 132, 115, 120, 116, 137, 114, 107, 121, 119, 137, 109, 125, 136, 139, 116, 145, 120, 151, 119, 143, 105, 132, 150, 141, 132, 114, 124, 135, 123, 123, 133, 143, 136, 108, 141, 111, 127, 116, 119, 121, 120, 117, 113, 138, 129, 127, 127, 126, 110, 121, 119, 117, 135, 141, 129, 127, 132, 139, 136, 126, 132, 131, 122, 141, 126, 142, 134, 111, 121, 117, 122, 127, 136, 122, 121, 127, 125, 128, 125, 142, 133, 125, 144, 119, 137, 108, 126, 126, 113, 136, 117, 131, 122, 120, 110, 113, 127, 109, 124, 143, 126, 146, 133, 128, 117, 127, 108, 126, 130, 117, 135, 123, 128, 100, 108, 138, 117, 112, 126, 137, 131, 128, 126, 119, 114, 121, 141, 107, 129, 153, 121, 116, 139, 104, 124, 133, 127, 119, 135, 122, 128, 137, 127, 120, 125, 124, 124, 121, 130, 130, 124, 132, 112, 122, 125, 107, 118, 122, 118, 119, 111, 140, 125, 115, 124, 125, 103, 127, 122, 124, 126, 125, 128, 124, 116, 111, 120, 117, 123, 125, 120, 124, 123, 125, 125, 119, 116, 132, 121, 137, 113, 123, 123, 123, 122, 135, 109, 121, 126, 134, 129, 126, 112, 137, 149, 123, 136, 120, 117, 120, 135, 123, 129, 112, 119, 145, 138, 107, 117, 119, 119, 127, 124, 131, 136, 133, 131, 125, 117, 118, 138, 133, 133, 127, 125, 122, 132, 141, 128, 104, 140, 137, 131, 108, 140, 121, 125, 116, 129, 143, 119, 128, 143, 124, 112, 126, 112, 120, 130, 128, 137, 125, 113, 124, 123, 117, 111, 106, 122, 126, 143, 132, 129, 122, 116, 109, 124, 113, 118, 140, 129, 124, 126, 137, 149, 134, 120, 123, 122, 145, 131, 118, 134, 130, 134, 124, 116, 136, 122, 127, 117, 122, 129, 143, 104, 127, 151, 129, 109, 122, 132, 125, 133, 123, 119, 131, 96, 135, 118, 137, 119, 116, 152, 125, 115, 138, 121, 133, 141, 114, 128, 125, 121, 136, 134, 118, 140, 142, 112, 136, 119, 136, 141, 128, 108, 122, 108, 124, 134, 114, 135, 133, 133, 129, 101, 109, 140, 130, 118, 129, 119, 134, 115, 130, 125, 121, 112, 116, 128, 115, 127, 118, 145, 149, 127, 121, 115, 122, 123, 130, 121, 116, 121, 128, 132, 104, 119, 134, 120, 141, 117, 136, 117, 116, 130, 132, 116, 105, 122, 138, 115, 124, 123, 117, 103, 129, 127, 133, 135, 110, 123, 116, 143, 120, 150, 116, 118, 138, 115, 130, 114, 125, 142, 148, 129, 133, 128, 114, 128, 127, 122, 123, 118, 147, 134, 128, 123, 133, 117, 110, 128, 117, 132, 120, 132, 111, 129, 138, 126, 116, 127, 161, 133, 117, 124, 138, 127, 116, 138, 153, 121, 114, 119, 121, 132, 153, 128, 138, 135, 132, 129, 130, 127, 101, 124, 142, 136, 129, 121, 147, 136, 117, 127, 146, 131, 117, 120, 119, 108, 140, 127, 148, 118, 134, 115, 117, 121, 138, 138, 117, 98, 151, 96, 135, 126, 126, 115, 136, 125, 124, 130, 114, 106, 123, 139, 141, 140, 111, 134, 122, 111, 123, 113, 124, 128, 136, 130, 131, 124, 126, 117, 129, 140, 136, 121, 129, 114, 116, 118, 139, 135, 120, 122, 113, 124, 98, 123, 116, 120, 119, 127, 130, 112, 118, 127, 125, 123, 121, 121, 122, 108, 124, 107, 125, 131, 124, 116, 107, 125, 138, 109, 122, 137, 145, 136, 127, 114, 124, 127, 130, 122, 144, 119, 128, 135, 119, 83, 129, 129, 130, 124, 119, 122, 144, 105, 117, 124, 130, 119, 130, 131, 131, 120, 135, 125, 110, 115, 132, 131, 134, 136, 129, 149, 126, 121, 118, 129, 126, 132, 109, 146, 120, 120, 135, 126, 114, 128, 108, 110, 134, 132, 125, 125, 131, 118, 137, 134, 123, 103, 129, 105, 126, 141, 147, 131, 131, 137, 112, 124, 132, 124, 116, 132, 129, 126, 122, 119, 112, 107, 130, 138, 126, 124, 117, 121, 108, 114, 131, 127, 143, 127, 113, 137, 127, 122, 136, 144, 116, 127, 113, 136, 139, 144, 119, 129, 132, 137, 127, 119, 108, 115, 116, 119, 139, 143, 132, 110, 112, 125, 144, 138, 135, 131, 113, 118, 125, 101, 132, 137, 120, 135, 118, 122, 113, 136, 111, 120, 122, 138, 149, 118, 124, 131, 131, 127, 129, 107, 100, 111, 116, 127, 149, 118, 127, 134, 115, 119, 128, 108, 131, 133, 120, 131, 134, 139, 119, 103, 142, 130, 140, 133, 138, 127, 118, 112, 135, 131, 122, 137, 138, 124, 123, 124, 137, 147, 126, 116, 137, 119, 123, 140, 137, 126, 123, 125, 124, 118, 124, 108, 123, 129, 130, 124, 125, 133, 129, 113, 127, 125, 128, 135, 123, 134, 123, 146, 144, 110, 120, 131, 131, 107, 130, 124, 108, 137, 129, 154, 111, 144, 127, 110, 137, 120, 122, 123, 121, 121, 127, 139, 125, 118, 132, 108, 122, 129, 130, 145, 130, 130, 126, 130, 135, 123, 111, 122, 117, 135, 125, 137, 111, 114, 134, 103, 106, 128, 117, 133, 129, 104, 129, 111, 122, 131, 152, 140, 145, 144, 105, 134, 126, 144, 152, 118, 128, 128, 123, 118, 148, 121, 125, 132, 130, 127, 119, 107, 143, 119, 135, 134, 123, 122, 144, 116, 132, 117, 116, 115, 146, 144, 139, 133, 131, 119, 110, 131, 129, 135, 135, 106, 117, 131, 129, 128, 119, 118, 133, 117, 113, 128, 116, 129, 135, 136, 105, 118, 134, 120, 133, 130, 121, 116, 126, 130, 132, 133, 116, 145, 116, 128, 110, 128, 112, 117, 123, 111, 124, 127, 110, 139, 119, 114, 122, 114, 118, 127, 124, 105, 131, 111, 123, 137, 116, 131, 123, 116, 134, 112, 118, 118, 104, 140, 129, 126, 127, 126, 124, 137, 125, 120, 106, 142, 136, 138, 123, 120, 111, 113, 130, 122, 116, 123, 130, 115, 134, 142, 130, 118, 126, 112, 131, 127, 113, 129, 125, 121, 121, 128, 133, 127, 115, 137, 116, 132, 129, 129, 113, 131, 132, 126, 110, 118, 133, 125, 149, 115, 124, 120, 124, 133, 132, 118, 133, 138, 116, 137, 129, 123, 127, 136, 124, 126, 126, 123, 123, 131, 139, 120, 126, 131, 123, 129, 107, 126, 152, 129, 118, 122, 117, 117, 133, 130, 127, 138, 113, 108, 146, 131, 118, 117, 123, 129, 119, 132, 125, 127, 134, 120, 116, 132, 130, 130, 131, 115, 129, 122, 134, 117, 114, 126, 126, 123, 123, 127, 108, 131, 132, 126, 118, 132, 130, 122, 116, 143, 120, 136, 131, 118, 133, 121, 122, 125, 123, 127, 120, 113, 131, 128, 143, 133, 123, 128, 114, 133, 114, 125, 120, 135, 126, 138, 133, 129, 142, 128, 130, 123, 121, 121, 126, 128, 121, 126, 148, 129, 144, 107, 129, 121, 138, 121, 129, 132, 104, 125, 119, 122, 132, 140, 120, 130, 127, 128, 122, 102, 113, 134, 112, 118, 103, 122, 129, 123, 129, 128, 126, 121, 123, 124, 122, 135, 116, 136, 134, 125, 97, 127, 120, 108, 135, 114, 136, 122, 130, 119, 112, 123, 124, 121, 119, 141, 122, 108, 134, 120, 129, 143, 114, 129, 118, 120, 114, 121, 133, 138, 114, 118, 152, 127, 116, 124, 129, 131, 128, 131, 120, 112, 121, 134, 133, 135, 103, 130, 122, 146, 117, 114, 113, 135, 126, 107, 129, 126, 131, 115, 133, 124, 120, 135, 112, 119, 133, 110, 120, 126, 125, 107, 125, 119, 140, 124, 126, 120, 132, 128, 124, 142, 137, 120, 117, 115, 132, 113, 124, 112, 142, 126, 107, 123, 124, 115, 120, 135, 128, 119, 130, 139, 131, 131, 123, 126, 111, 127, 130, 123, 124, 127, 140, 126, 121, 120, 131, 116, 128, 125, 121, 148, 115, 116, 124, 128, 123, 118, 130, 115, 124, 106, 120, 120, 113, 110, 122, 115, 112, 144, 135, 150, 122, 116, 132, 123, 121, 133, 123, 105, 128, 127, 111, 122, 138, 114, 127, 143, 123, 124, 140, 112, 124, 103, 137, 120, 128, 119, 138, 137, 132, 124, 143, 116, 126, 131, 123, 129, 116, 140, 122, 128, 120, 129, 127, 114, 131, 136, 121, 136, 134, 122, 121, 121, 117, 123, 105, 128, 138, 141, 147, 133, 121, 120, 123, 132, 120, 115, 140, 137, 121, 122, 131, 132, 116, 132, 136, 124, 125, 114, 138, 125, 131, 133, 118, 116, 120, 125, 123, 119, 145, 108, 121, 118, 111, 122, 132, 117, 145, 129, 136, 136, 126, 131, 125, 136, 127, 130, 124, 131, 118, 119, 121, 121, 104, 129, 136, 124, 124, 123, 144, 131, 113, 135, 132, 121, 128, 120, 132, 95, 146, 96, 112, 136, 115, 122, 125, 121, 122, 126, 122, 115, 127, 119, 128, 130, 144, 125, 134, 130, 132, 117, 125, 138, 121, 129, 133, 125, 117, 131, 122, 116, 122, 110, 118, 144, 125, 131, 127, 115, 116, 124, 121, 133, 123, 131, 144, 131, 122, 121, 128, 115, 117, 153, 127, 128, 127, 137, 130, 111, 137, 116, 135, 146, 126, 125, 131, 122, 123, 143, 118, 123, 122, 148, 118, 124, 141, 126, 129, 141, 121, 131, 125, 118, 129, 118, 115, 122, 141, 139, 129, 102, 125, 109, 125, 143, 125, 129, 106, 133, 129, 133, 129, 125, 138, 127, 131, 123, 119, 128, 134, 120, 120, 119, 115, 130, 119, 120, 131, 147, 113, 137, 132, 142, 100, 128, 122, 117, 139, 132, 135, 122, 131, 139, 120, 125, 125, 133, 124, 125, 130, 112, 121, 129, 135, 126, 122, 118, 131, 115, 125, 130, 138, 121, 127, 121, 128, 122, 133, 126, 128, 119, 131, 137, 127, 123, 127, 113, 119, 148, 121, 122, 132, 123, 76, 138, 125, 132, 138, 118, 121, 128, 118, 125, 143, 127, 138, 135, 125, 118, 124, 122, 136, 129, 106, 137, 120, 132, 128, 132, 127, 126, 129, 131, 134, 136, 123, 127, 132, 142, 112, 114, 139, 118, 119, 119, 116, 122, 131, 117, 122, 126, 119, 116, 139, 136, 131, 116, 112, 118, 131, 128, 116, 121, 122, 119, 123, 101, 136, 128, 120, 115, 129, 128, 137, 105, 121, 122, 116, 116, 151, 127, 135, 120, 119, 130, 144, 128, 118, 138, 125, 122, 145, 135, 126, 115, 122, 127, 130, 107, 116, 124, 123, 118, 124, 140, 130, 132, 119, 130, 139, 101, 123, 124, 134, 147, 142, 128, 125, 121, 129, 116, 126, 117, 103, 133, 143, 131, 124, 129, 115, 129, 127, 144, 133, 129, 114, 107, 128, 123, 123, 128, 125, 112, 121, 134, 136, 110, 131, 130, 112, 122, 131, 126, 128, 126, 119, 125, 131, 160, 140, 121, 120, 132, 121, 119, 125, 123, 132, 120, 114, 146, 124, 125, 151, 122, 129, 122, 130, 134, 124, 118, 124, 115, 147, 133, 135, 135, 134, 127, 125, 129, 135, 133, 129, 123, 117, 119, 138, 140, 122, 140, 127, 129, 112, 114, 123, 130, 130, 122, 135, 127, 121, 111, 110, 124, 125, 126, 125, 132, 115, 138, 133, 134, 125, 137, 121, 125, 120, 134, 130, 130, 117, 120, 130, 129, 123, 122, 123, 128, 126, 137, 129, 119, 131, 118, 122, 131, 118, 125, 128, 128, 124, 134, 119, 131, 117, 123, 122, 131, 135, 122, 112, 139, 138, 128, 120, 141, 136, 128, 116, 124, 129, 135, 115, 122, 126, 122, 143, 126, 116, 111, 133, 128, 140, 140, 118, 129, 123, 139, 137, 118, 132, 122, 115, 115, 128, 142, 126, 126, 107, 127, 121, 133, 115, 128, 130, 125, 140, 126, 127, 163, 124, 126, 116, 122, 120, 119, 139, 134, 120, 132, 142, 115, 115, 132, 122, 131, 134, 153, 130, 115, 127, 123, 126, 131, 131, 124, 111, 108, 140, 116, 137, 115, 120, 123, 119, 147, 112, 127, 136, 133, 119, 129, 115, 125, 124, 122, 117, 102, 132, 132, 125, 118, 126, 115, 122, 126, 119, 120, 108, 131, 121, 137, 125, 115, 129, 112, 149, 140, 134, 129, 131, 133, 137, 121, 108, 141, 109, 130, 136, 128, 142, 129, 130, 142, 124, 111, 137, 115, 123, 127, 130, 137, 116, 126, 122, 127, 123, 110, 116, 113, 126, 125, 123, 124, 117, 142, 125, 139, 129, 124, 126, 133, 138, 120, 127, 128, 135, 118, 129, 137, 137, 138, 126, 125, 121, 124, 124, 123, 142, 124, 129, 129, 143, 151, 119, 132, 114, 129, 125, 132, 116, 119, 126, 115, 128, 130, 111, 122, 109, 103, 127, 128, 120, 119, 145, 124, 126, 121, 136, 118, 116, 113, 137, 128, 111, 122, 123, 133, 124, 127, 116, 127, 138, 120, 125, 137, 118, 134, 118, 118, 127, 126, 117, 142, 140, 121, 134, 127, 130, 129, 120, 130, 110, 118, 111, 123, 95, 135, 127, 115, 125, 123, 96, 127, 124, 131, 109, 126, 122, 124, 119, 115, 133, 140, 123, 120, 134, 125, 117, 112, 125, 152, 114, 126, 137, 127, 118, 139, 92, 118, 108, 136, 121, 119, 129, 121, 110, 110, 140, 119, 127, 133, 112, 119, 123, 116, 131, 137, 108, 129, 128, 137, 123, 103, 127, 136, 133, 120, 126, 132, 122, 115, 118, 117, 112, 125, 128, 112, 130, 115, 145, 131, 128, 110, 106, 129, 136, 126, 110, 120, 118, 126, 124, 123, 133, 116, 120, 121, 143, 137, 151, 125, 129, 126, 122, 128, 125, 128, 142, 120, 125, 127, 150, 124, 129, 132, 129, 130, 122, 130, 125, 142, 116, 124, 125, 126, 125, 128, 134, 129, 118, 133, 117, 123, 128, 117, 136, 133, 112, 114, 134, 128, 133, 134, 122, 120, 123, 129, 138, 126, 117, 105, 139, 130, 120, 114, 138, 131, 131, 129, 126, 118, 132, 136, 130, 122, 124, 130, 124, 126, 122, 132, 115, 117, 116, 139, 119, 115, 117, 121, 129, 132, 131, 113, 117, 105, 127, 128, 124, 124, 117, 123, 132, 116, 125, 145, 138, 135, 125, 109, 116, 121, 161, 117, 106, 135, 109, 125, 132, 142, 129, 135, 121, 116, 122, 112, 121, 115, 122, 122, 135, 131, 107, 119, 125, 138, 131, 130, 156, 126, 125, 126, 130, 119, 121, 110, 119, 112, 130, 107, 124, 127, 128, 131, 100, 120, 126, 115, 129, 123, 119, 108, 137, 122, 132, 134, 144, 123, 128, 121, 123, 127, 141, 106, 127, 123, 133, 114, 121, 133, 134, 120, 122, 121, 118, 126, 120, 132, 126, 111, 116, 117, 112, 120, 116, 118, 99, 136, 113, 110, 144, 133, 132, 128, 107, 135, 118, 131, 131, 143, 130, 113, 124, 117, 114, 133, 131, 135, 131, 129, 128, 120, 129, 126, 118, 125, 123, 125, 91, 126, 123, 127, 138, 110, 130, 129, 131, 121, 123, 122, 115, 135, 128, 138, 129, 138, 121, 147, 110, 112, 105, 127, 114, 106, 126, 128, 116, 139, 137, 109, 122, 133, 141, 105, 141, 128, 119, 120, 125, 120, 126, 123, 131, 138, 143, 129, 136, 115, 122, 137, 136, 139, 132, 131, 144, 144, 146, 132, 120, 127, 136, 118, 148, 130, 113, 135, 122, 118, 114, 124, 126, 124, 137, 132, 128, 125, 128, 123, 119, 126, 138, 119, 127, 109, 128, 128, 131, 133, 124, 129, 119, 120, 136, 108, 127, 112, 123, 135, 121, 126, 128, 119, 157, 112, 122, 127, 134, 121, 122, 130, 117, 143, 138, 121, 134, 107, 121, 153, 119, 119, 131, 129, 130, 132, 130, 116, 130, 128, 131, 129, 121, 119, 128, 122, 107, 117, 126, 125, 119, 114, 128, 142, 137, 123, 109, 126, 124, 117, 136, 126, 124, 134, 120, 124, 124, 107, 129, 121, 132, 133, 134, 115, 157, 142, 110, 118, 129, 130, 133, 133, 125, 128, 110, 125, 121, 145, 121, 116, 135, 120, 126, 124, 123, 120, 130, 137, 127, 129, 136, 128, 133, 110, 114, 141, 126, 137, 119, 117, 131, 123, 107, 125, 120, 123, 144, 130, 104, 113, 138, 126, 131, 144, 131, 104, 125, 115, 117, 127, 119, 128, 126, 115, 123, 119, 128, 138, 117, 129, 142, 134, 122, 134, 120, 126, 126, 129, 123, 128, 139, 125, 118, 131, 134, 116, 123, 135, 124, 117, 104, 125, 129, 129, 135, 116, 98, 125, 135, 127, 137, 109, 118, 118, 116, 109, 87, 143, 121, 130, 107, 101, 126, 135, 137, 132, 127, 124, 135, 115, 137, 118, 129, 133, 127, 126, 121, 124, 133, 119, 140, 127, 102, 120, 121, 134, 120, 143, 101, 147, 117, 135, 129, 123, 128, 118, 130, 117, 119, 125, 124, 121, 114, 123, 127, 136, 121, 113, 126, 129, 107, 125, 129, 124, 119, 123, 124, 120, 106, 134, 123, 149, 104, 121, 112, 121, 124, 119, 132, 126, 132, 128, 120, 129, 121, 132, 122, 111, 126, 117, 138, 142, 141, 134, 124, 114, 126, 113, 141, 135, 138, 134, 132, 125, 139, 131, 126, 109, 116, 113, 116, 121, 107, 128, 127, 120, 111, 128, 123, 150, 122, 109, 138, 122, 133, 121, 114, 140, 126, 138, 130, 126, 144, 121, 124, 123, 125, 132, 117, 124, 125, 126, 128, 135, 132, 148, 147, 127, 128, 123, 131, 114, 126, 119, 122, 113, 103, 136, 117, 132, 113, 129, 125, 110, 131, 130, 128, 125, 141, 132, 125, 137, 128, 103, 140, 136, 130, 155, 128, 126, 129, 135, 133, 135, 122, 123, 133, 132, 125, 125, 120, 116, 115, 127, 125, 121, 107, 131, 137, 125, 135, 137, 123, 107, 125, 136, 112, 120, 131, 122, 138, 133, 129, 115, 123, 146, 114, 146, 119, 129, 146, 113, 122, 129, 114, 107, 129, 110, 128, 119, 144, 126, 120, 117, 132, 132, 129, 126, 126, 126, 109, 110, 104, 123, 121, 97, 113, 121, 116, 132, 117, 106, 127, 135, 119, 122, 114, 124, 119, 133, 125, 126, 122, 129, 120, 107, 140, 135, 123, 121, 115, 133, 134, 121, 124, 125, 106, 115, 133, 119, 137, 119, 111, 117, 128, 123, 140, 107, 127, 132, 130, 120, 134, 119, 132, 121, 105, 128, 133, 111, 113, 118, 110, 111, 123, 121, 116, 114, 125, 114, 124, 129, 133, 133, 109, 132, 142, 119, 125, 140, 129, 136, 124, 112, 121, 123, 116, 132, 111, 121, 125, 152, 134, 119, 135, 118, 134, 123, 110, 128, 123, 129, 126, 131, 106, 110, 126, 127, 113, 133, 134, 134, 145, 116, 115, 138, 122, 108, 117, 128, 132, 111, 119, 109, 120, 112, 111, 146, 133, 142, 143, 136, 116, 133, 142, 120, 130, 111, 118, 136, 131, 132, 143, 132, 119, 115, 122, 128, 111, 121, 129, 123, 100, 114, 120, 118, 105, 143, 133, 124, 130, 146, 124, 124, 144, 138, 125, 130, 131, 121, 116, 121, 126, 131, 109, 123, 115, 142, 105, 118, 132, 135, 141, 125, 117, 128, 144, 123, 136, 124, 132, 147, 110, 126, 124, 123, 122, 119, 141, 112, 125, 114, 117, 108, 106, 134, 103, 132, 125, 141, 123, 130, 117, 137, 117, 120, 126, 119, 140, 122, 122, 132, 134, 134, 120, 140, 156, 127, 124, 122, 149, 126, 125, 112, 117, 126, 115, 117, 140, 122, 133, 124, 130, 118, 123, 108, 128, 118, 141, 135, 148, 128, 130, 122, 125, 154, 109, 118, 152, 151, 128, 122, 119, 112, 120, 119, 132, 129, 122, 123, 127, 134, 127, 135, 123, 138, 129, 126, 115, 122, 126, 120, 106, 112, 143, 126, 126, 117, 113, 130, 113, 129, 124, 99, 113, 113, 132, 135, 123, 118, 120, 127, 118, 124, 134, 120, 134, 131, 122, 131, 127, 137, 118, 114, 125, 111, 129, 110, 110, 114, 120, 136, 138, 119, 114, 129, 135, 115, 118, 124, 126, 104, 122, 108, 129, 123, 135, 130, 108, 135, 126, 127, 126, 124, 117, 130, 125, 126, 118, 109, 99, 118, 114, 111, 121, 116, 115, 124, 129, 114, 136, 119, 119, 125, 122, 138, 145, 127, 135, 116, 134, 120, 114, 137, 134, 127, 125, 155, 147, 115, 137, 120, 115, 142, 125, 125, 116, 133, 120, 127, 109, 135, 121, 133, 120, 111, 131, 141, 122, 135, 113, 131, 117, 132, 118, 113, 112, 122, 110, 138, 109, 130, 124, 131, 118, 125, 110, 112, 140, 133, 111, 123, 127, 131, 126, 146, 137, 110, 126, 110, 120, 120, 129, 150, 122, 127, 144, 144, 123, 133, 129, 132, 143, 130, 114, 113, 122, 132, 121, 114, 116, 124, 119, 132, 120, 108, 137, 128, 131, 129, 127, 135, 129, 128, 121, 124, 129, 123, 123, 113, 106, 134, 141, 119, 121, 156, 126, 129, 127, 109, 127, 117, 125, 129, 124, 102, 133, 128, 132, 121, 133, 122, 126, 117, 121, 128, 134, 117, 116, 130, 139, 116, 127, 126, 145, 99, 124, 134, 121, 125, 116, 112, 134, 120, 123, 129, 125, 136, 127, 136, 127, 114, 114, 136, 124, 130, 119, 127, 124, 94, 119, 127, 135, 137, 116, 97, 132, 117, 123, 116, 126, 133, 134, 96, 127, 126, 136, 114, 122, 125, 117, 135, 119, 137, 137, 116, 118, 105, 108, 128, 120, 114, 120, 138, 130, 128, 117, 133, 142, 118, 117, 125, 105, 117, 128, 136, 133, 133, 139, 124, 113, 147, 125, 112, 123, 107, 123, 130, 110, 138, 156, 143, 120, 138, 123, 114, 97, 118, 129, 144, 130, 125, 125, 124, 136, 133, 130, 131, 123, 119, 130, 142, 119, 133, 130, 107, 117, 136, 143, 140, 125, 127, 126, 131, 126, 120, 127, 107, 112, 144, 110, 139, 127, 106, 136, 123, 107, 123, 117, 116, 127, 115, 125, 133, 125, 138, 124, 129, 133, 129, 118, 132, 114, 119, 119, 123, 126, 122, 133, 144, 108, 140, 129, 125, 132, 118, 133, 136, 112, 115, 136, 131, 111, 127, 107, 124, 101, 102, 123, 122, 110, 123, 146, 98, 124, 117, 137, 132, 139, 118, 133, 118, 127, 121, 127, 130, 132, 129, 136, 125, 149, 147, 110, 124, 144, 118, 122, 119, 141, 127, 139, 120, 134, 124, 126, 121, 144, 131, 132, 125, 125, 120, 136, 109, 98, 126, 118, 121, 121, 132, 133, 131, 119, 115, 128, 116, 118, 132, 126, 118, 134, 128, 137, 133, 123, 118, 118, 103, 126, 104, 118, 121, 142, 129, 126, 137, 135, 129, 121, 129, 121, 124, 139, 117, 128, 127, 119, 157, 132, 126, 127, 114, 124, 117, 105, 115, 115, 122, 125, 116, 143, 114, 129, 117, 139, 124, 124, 111, 110, 121, 121, 110, 127, 127, 132, 153, 125, 116, 112, 116, 137, 129, 115, 113, 128, 122, 128, 141, 123, 137, 121, 113, 134, 111, 126, 122, 101, 111, 141, 114, 137, 130, 130, 150, 120, 127, 107, 114, 135, 102, 115, 103, 111, 114, 112, 126, 131, 123, 131, 124, 115, 125, 135, 128, 125, 111, 121, 122, 128, 128, 124, 146, 133, 129, 109, 101, 127, 124, 103, 143, 119, 122, 113, 130, 112, 108, 126, 108, 119, 139, 121, 127, 124, 125, 118, 122, 132, 145, 132, 109, 124, 114, 114, 121, 126, 115, 132, 127, 140, 112, 138, 129, 121, 137, 118, 122, 133, 115, 114, 114, 131, 136, 125, 131, 134, 121, 141, 120, 139, 130, 138, 120, 134, 123, 136, 125, 121, 132, 132, 131, 132, 153, 133, 134, 112, 118, 134, 146, 128, 109, 124, 150, 127, 123, 133, 119, 119, 133, 145, 125, 128, 122, 125, 111, 100, 148, 126, 130, 142, 113, 138, 107, 116, 121, 113, 121, 110, 136, 130, 117, 139, 113, 103, 123, 143, 110, 144, 121, 121, 110, 136, 132, 143, 106, 136, 140, 126, 137, 136, 121, 118, 116, 128, 127, 130, 122, 139, 141, 125, 127, 116, 141, 121, 138, 136, 131, 132, 139, 98, 113, 122, 131, 132, 130, 115, 127, 130, 128, 131, 124, 121, 135, 122, 121, 136, 126, 125, 142, 143, 118, 140, 101, 116, 134, 130, 113, 143, 131, 116, 119, 125, 125, 127, 107, 130, 103, 141, 138, 130, 132, 132, 112, 128, 121, 112, 138, 124, 128, 112, 115, 144, 118, 101, 131, 136, 123, 120, 146, 122, 122, 138, 144, 139, 125, 146, 132, 112, 124, 116, 131, 117, 136, 105, 115, 111, 130, 118, 128, 125, 104, 129, 103, 126, 129, 138, 113, 123, 118, 121, 123, 123, 127, 119, 129, 133, 124, 118, 130, 127, 124, 128, 131, 119, 139, 133, 147, 136, 112, 121, 120, 115, 122, 127, 126, 124, 129, 133, 122, 126, 127, 102, 118, 107, 136, 144, 121, 119, 113, 110, 126, 137, 131, 110, 120, 126, 123, 119, 134, 109, 126, 133, 118, 144, 130, 140, 126, 127, 119, 146, 112, 107, 124, 135, 132, 122, 113, 129, 137, 126, 124, 115, 114, 111, 125, 145, 134, 143, 129, 130, 118, 118, 122, 131, 124, 123, 129, 146, 122, 103, 136, 130, 129, 119, 151, 142, 126, 110, 94, 129, 124, 103, 122, 136, 127, 121, 113, 130, 138, 136, 119, 134, 135, 134, 125, 106, 151, 137, 123, 114, 138, 122, 139, 116, 138, 146, 119, 114, 123, 137, 122, 124, 108, 116, 121, 120, 111, 126, 118, 107, 123, 119, 121, 141, 124, 117, 125, 124, 125, 125, 115, 129, 136, 131, 143, 130, 125, 131, 132, 117, 132, 127, 115, 133, 123, 132, 136, 127, 140, 132, 124, 112, 144, 141, 116, 148, 111, 116, 128, 145, 102, 113, 139, 111, 117, 124, 127, 109, 125, 115, 154, 136, 125, 138, 121, 123, 123, 118, 122, 121, 132, 118, 137, 137, 123, 131, 144, 123, 138, 141, 136, 122, 120, 129, 123, 118, 134, 110, 137, 125, 139, 95, 136, 148, 147, 132, 134, 119, 143, 134, 118, 123, 118, 108, 113, 123, 115, 113, 119, 130, 111, 136, 146, 127, 119, 126, 131, 130, 120, 119, 126, 132, 124, 126, 115, 126, 130, 116, 126, 139, 119, 135, 111, 122, 128, 124, 133, 142, 123, 121, 124, 119, 124, 127, 110, 122, 113, 123, 116, 113, 138, 145, 99, 110, 113, 116, 145, 112, 115, 142, 142, 117, 167, 116, 112, 112, 128, 112, 125, 126, 121, 122, 154, 126, 121, 133, 110, 109, 117, 142, 119, 124, 120, 124, 132, 121, 134, 119, 116, 137, 135, 126, 115, 122, 116, 144, 112, 139, 117, 110, 144, 116, 131, 114, 139, 129, 126, 131, 112, 131, 122, 150, 118, 124, 118, 119, 136, 128, 117, 110, 125, 137, 124, 140, 129, 132, 120, 138, 120, 128, 129, 135, 106, 144, 122, 120, 128, 133, 123, 121, 134, 116, 113, 131, 112, 140, 133, 142, 114, 114, 139, 130, 142, 125, 129, 128, 118, 112, 96, 115, 117, 139, 127, 127, 123, 143, 117, 129, 138, 136, 140, 111, 116, 117, 129, 122, 127, 112, 117, 124, 127, 121, 120, 138, 120, 123, 119, 118, 126, 121, 130, 141, 126, 138, 132, 115, 124, 122, 118, 120, 114, 129, 124, 139, 126, 113, 123, 145, 125, 125, 124, 140, 139, 103, 109, 142, 126, 122, 127, 156, 128, 118, 123, 125, 128, 126, 118, 132, 122, 125, 116, 123, 139, 137, 141, 120, 135, 125, 129, 123, 113, 128, 139, 125, 123, 126, 129, 113, 125, 137, 131, 142, 138, 109, 112, 128, 132, 129, 130, 120, 115, 125, 143, 126, 114, 126, 131, 125, 120, 116, 129, 132, 133, 120, 132, 119, 103, 118, 119, 136, 128, 119, 142, 132, 131, 135, 126, 134, 141, 131, 136, 121, 126, 131, 131, 109, 136, 117, 130, 114, 112, 139, 164, 138, 115, 122, 118, 112, 136, 137, 100, 118, 131, 132, 136, 124, 135, 123, 132, 127, 113, 109, 130, 124, 132, 106, 139, 119, 137, 101, 124, 114, 121, 142, 125, 145, 111, 121, 132, 125, 117, 131, 127, 128, 105, 105, 106, 124, 126, 123, 123, 117, 138, 128, 121, 130, 117, 124, 130, 121, 123, 136, 118, 121, 113, 129, 124, 126, 117, 128, 112, 118, 131, 136, 125, 116, 103, 112, 112, 128, 130, 139, 115, 127, 125, 121, 141, 132, 115, 109, 111, 117, 107, 133, 96, 118, 132, 149, 113, 131, 132, 133, 126, 134, 118, 119, 121, 101, 130, 134, 116, 134, 113, 126, 128, 114, 126, 130, 128, 119, 130, 123, 129, 149, 127, 96, 123, 148, 124, 113, 130, 117, 111, 141, 128, 126, 124, 123, 107, 133, 118, 124, 141, 134, 107, 136, 120, 130, 147, 133, 121, 132, 130, 124, 119, 124, 131, 125, 114, 119, 135, 126, 126, 119, 110, 130, 131, 133, 123, 105, 101, 122, 135, 110, 113, 102, 129, 130, 126, 130, 118, 114, 120, 132, 131, 142, 121, 127, 100, 129, 110, 139, 111, 111, 128, 113, 127, 113, 135, 133, 130, 137, 120, 95, 116, 130, 119, 131, 126, 112, 139, 128, 140, 115, 126, 123, 116, 105, 114, 134, 112, 123, 129, 143, 105, 119, 137, 136, 116, 125, 120, 105, 134, 115, 116, 106, 101, 150, 120, 129, 122, 129, 107, 131, 118, 122, 133, 114, 122, 111, 127, 132, 114, 117, 123, 122, 141, 105, 119, 131, 124, 123, 125, 116, 121, 117, 133, 116, 126, 138, 121, 110, 118, 131, 141, 130, 123, 124, 127, 110, 118, 125, 151, 118, 131, 130, 116, 125, 117, 121, 112, 113, 119, 118, 127, 127, 130, 124, 129, 124, 134, 122, 110, 133, 129, 120, 119, 115, 151, 130, 103, 135, 120, 129, 111, 128, 127, 131, 105, 130, 127, 122, 112, 122, 115, 137, 117, 122, 133, 127, 152, 134, 149, 119, 133, 121, 124, 132, 119, 130, 123, 132, 128, 130, 114, 113, 122, 146, 121, 127, 129, 133, 148, 111, 127, 133, 128, 120, 114, 131, 124, 144, 118, 109, 121, 140, 119, 106, 128, 133, 128, 134, 93, 123, 133, 117, 132, 109, 132, 115, 132, 129, 122, 156, 104, 122, 148, 117, 128, 138, 108, 119, 129, 138, 128, 130, 128, 138, 120, 130, 116, 128, 142, 114, 115, 143, 124, 126, 131, 104, 115, 115, 110, 140, 108, 113, 124, 128, 134, 133, 122, 126, 103, 111, 147, 120, 134, 112, 122, 144, 125, 107, 133, 147, 126, 129, 131, 113, 126, 138, 118, 124, 116, 137, 124, 125, 124, 106, 148, 111, 125, 149, 122, 117, 121, 120, 140, 122, 120, 140, 124, 117, 115, 133, 122, 117, 107, 121, 107, 136, 104, 126, 119, 130, 106, 131, 137, 126, 112, 120, 129, 117, 157, 131, 146, 126, 125, 126, 122, 127, 121, 115, 126, 126, 131, 155, 136, 118, 124, 122, 122, 126, 120, 112, 119, 147, 111, 122, 143, 116, 130, 132, 130, 112, 117, 112, 111, 121, 119, 125, 117, 119, 123, 131, 142, 106, 98, 125, 122, 125, 137, 126, 139, 113, 119, 127, 153, 118, 122, 119, 120, 126, 115, 130, 134, 143, 142, 118, 121, 123, 132, 123, 120, 160, 122, 137, 136, 137, 114, 115, 152, 125, 123, 118, 140, 124, 134, 140, 130, 115, 126, 127, 120, 130, 100, 121, 101, 124, 106, 135, 128, 117, 113, 127, 123, 164, 133, 141, 131, 125, 127, 119, 117, 129, 151, 101, 140, 119, 117, 114, 124, 132, 123, 131, 119, 121, 123, 128, 124, 114, 114, 129, 120, 131, 120, 124, 131, 125, 137, 117, 137, 113, 128, 121, 133, 113, 124, 131, 134, 127, 123, 124, 117, 131, 119, 131, 127, 127, 106, 128, 129, 142, 124, 137, 118, 129, 116, 127, 94, 122, 121, 121, 123, 123, 120, 133, 122, 121, 139, 125, 136, 126, 117, 127, 123, 129, 118, 117, 127, 114, 112, 135, 103, 125, 113, 126, 113, 114, 134, 113, 126, 133, 139, 131, 156, 107, 131, 138, 130, 126, 113, 130, 120, 111, 118, 144, 124, 119, 124, 131, 129, 145, 120, 135, 111, 126, 129, 125, 110, 123, 127, 121, 126, 132, 134, 120, 126, 121, 128, 135, 130, 124, 131, 119, 126, 131, 124, 134, 133, 130, 131, 129, 136, 129, 124, 143, 105, 129, 143, 138, 129, 131, 148, 113, 123, 119, 137, 116, 111, 129, 130, 117, 127, 131, 133, 126, 121, 125, 115, 121, 113, 119, 128, 128, 133, 119, 130, 127, 143, 121, 118, 120, 140, 116, 121, 126, 113, 116, 134, 130, 117, 126, 130, 132, 114, 121, 111, 121, 115, 138, 143, 132, 143, 131, 133, 139, 115, 115, 109, 139, 117, 127, 125, 136, 129, 123, 129, 136, 118, 137, 128, 140, 129, 124, 126, 133, 119, 138, 131, 115, 123, 129, 118, 113, 133, 131, 143, 116, 128, 122, 121, 123, 122, 116, 110, 151, 123, 140, 123, 118, 138, 123, 118, 113, 125, 115, 130, 133, 133, 121, 139, 117, 129, 131, 127, 135, 117, 119, 139, 130, 137, 130, 124, 130, 127, 127, 116, 119, 128, 143, 143, 111, 133, 121, 133, 121, 128, 129, 121, 127, 146, 112, 122, 118, 99, 121, 137, 123, 105, 115, 121, 130, 135, 132, 115, 138, 134, 150, 123, 114, 115, 109, 127, 120, 134, 117, 120, 120, 124, 149, 132, 137, 125, 136, 106, 122, 118, 132, 123, 133, 115, 122, 128, 119, 123, 116, 137, 141, 133, 133, 134, 125, 120, 135, 137, 132, 124, 118, 141, 150, 123, 108, 120, 140, 133, 121, 114, 122, 112, 123, 121, 108, 123, 103, 123, 131, 129, 129, 124, 136, 140, 119, 140, 117, 108, 130, 116, 118, 121, 109, 138, 118, 133, 130, 106, 132, 134, 95, 145, 150, 101, 130, 110, 130, 131, 111, 121, 121, 103, 116, 133, 131, 122, 125, 141, 115, 125, 113, 111, 139, 117, 128, 120, 125, 135, 134, 140, 144, 132, 122, 124, 122, 132, 137, 117, 115, 102, 117, 117, 126, 121, 122, 104, 139, 126, 122, 121, 112, 120, 118, 132, 108, 128, 126, 131, 111, 137, 141, 117, 131, 123, 136, 142, 123, 131, 111, 134, 136, 127, 112, 127, 138, 123, 129, 130, 112, 117, 122, 149, 123, 128, 142, 124, 128, 129, 129, 123, 126, 142, 129, 123, 128, 130, 139, 114, 149, 123, 119, 126, 108, 133, 127, 125, 127, 122, 117, 138, 128, 132, 114, 143, 130, 114, 119, 126, 118, 119, 125, 121, 149, 124, 113, 129, 123, 121, 127, 118, 139, 136, 123, 157, 139, 124, 133, 120, 132, 131, 112, 134, 127, 127, 127, 129, 127, 139, 134, 119, 123, 113, 122, 135, 119, 113, 120, 133, 135, 140, 147, 128, 125, 133, 131, 109, 116, 132, 122, 128, 146, 135, 112, 137, 130, 131, 139, 146, 120, 127, 128, 116, 122, 128, 129, 131, 138, 113, 133, 118, 126, 129, 130, 110, 147, 122, 134, 101, 113, 128, 129, 127, 114, 115, 141, 131, 120, 131, 133, 113, 108, 120, 109, 132, 128, 130, 118, 141, 111, 118, 107, 137, 119, 122, 131, 116, 126, 132, 119, 110, 129, 117, 133, 128, 114, 134, 134, 125, 123, 125, 127, 122, 122, 144, 112, 139, 135, 123, 115, 117, 115, 140, 126, 137, 126, 119, 143, 107, 139, 132, 138, 137, 124, 125, 133, 120, 133, 130, 121, 125, 139, 112, 122, 133, 130, 118, 124, 127, 118, 125, 136, 144, 135, 135, 124, 118, 134, 120, 127, 140, 115, 140, 127, 137, 123, 148, 131, 129, 140, 120, 143, 120, 127, 105, 129, 138, 103, 123, 128, 126, 132, 125, 132, 134, 113, 138, 113, 123, 118, 116, 123, 129, 101, 131, 135, 133, 125, 130, 127, 128, 134, 108, 125, 121, 133, 109, 114, 117, 128, 118, 131, 113, 126, 125, 121, 104, 137, 135, 132, 127, 128, 138, 119, 107, 113, 118, 130, 137, 139, 113, 100, 112, 120, 123, 139, 126, 137, 129, 126, 129, 121, 122, 127, 117, 139, 136, 129, 102, 128, 122, 139, 131, 125, 123, 123, 110, 108, 120, 120, 109, 116, 138, 113, 135, 127, 114, 126, 122, 129, 113, 133, 136, 112, 118, 130, 133, 142, 125, 110, 128, 129, 123, 120, 156, 130, 115, 129, 116, 138, 130, 133, 140, 121, 124, 136, 127, 130, 118, 123, 119, 124, 129, 109, 123, 127, 151, 117, 137, 132, 127, 132, 130, 109, 145, 126, 130, 127, 125, 120, 127, 127, 145, 132, 136, 122, 117, 151, 142, 114, 130, 120, 112, 143, 118, 117, 107, 140, 129, 124, 132, 137, 141, 110, 119, 106, 129, 138, 113, 116, 123, 118, 139, 132, 110, 127, 124, 122, 108, 138, 98, 141, 107, 138, 138, 129, 117, 134, 142, 114, 100, 112, 90, 121, 130, 117, 126, 123, 118, 115, 126, 127, 114, 110, 131, 122, 129, 134, 120, 133, 135, 123, 137, 127, 123, 126, 130, 115, 124, 121, 138, 120, 149, 124, 128, 109, 124, 126, 115, 114, 122, 126, 139, 123, 124, 113, 120, 112, 137, 127, 117, 135, 114, 118, 129, 131, 131, 121, 132, 134, 127, 132, 117, 128, 133, 121, 129, 128, 138, 121, 106, 126, 143, 127, 115, 123, 133, 132, 131, 127, 127, 121, 121, 125, 140, 128, 122, 122, 112, 111, 126, 120, 153, 120, 143, 135, 142, 137, 119, 110, 132, 131, 110, 109, 136, 108, 121, 126, 118, 133, 136, 131, 138, 128, 131, 110, 124, 123, 116, 119, 133, 124, 123, 114, 111, 132, 105, 129, 121, 141, 111, 132, 127, 110, 124, 137, 118, 129, 133, 121, 139, 134, 122, 120, 121, 129, 101, 115, 107, 102, 135, 123, 135, 135, 132, 117, 130, 106, 117, 140, 127, 134, 134, 139, 126, 127, 122, 121, 134, 124, 125, 123, 158, 127, 128, 139, 121, 128, 105, 138, 121, 149, 126, 117, 125, 117, 135, 124, 131, 117, 127, 125, 115, 118, 133, 118, 141, 112, 143, 134, 127, 127, 132, 120, 131, 130, 127, 118, 135, 124, 132, 124, 125, 113, 135, 116, 120, 117, 134, 127, 132, 104, 124, 129, 116, 113, 113, 132, 111, 127, 129, 141, 133, 158, 125, 143, 102, 130, 119, 127, 135, 131, 124, 124, 116, 118, 140, 108, 129, 125, 121, 116, 133, 141, 131, 122, 127, 135, 126, 110, 125, 114, 115, 130, 128, 110, 128, 138, 140, 122, 134, 121, 118, 125, 117, 113, 129, 127, 126, 119, 114, 126, 106, 113, 122, 117, 110, 133, 137, 129, 139, 126, 114, 136, 124, 122, 127, 127, 131, 129, 105, 124, 129, 109, 132, 125, 117, 120, 133, 132, 124, 133, 127, 132, 133, 142, 133, 126, 114, 118, 131, 134, 112, 141, 127, 119, 131, 127, 117, 119, 125, 137, 126, 130, 118, 127, 133, 125, 120, 130, 114, 123, 128, 126, 137, 131, 128, 129, 128, 143, 125, 131, 128, 120, 128, 125, 122, 118, 116, 117, 113, 134, 127, 128, 130, 121, 136, 135, 131, 123, 120, 113, 116, 130, 126, 129, 135, 139, 118, 117, 122, 129, 116, 126, 134, 115, 142, 123, 117, 119, 129, 147, 122, 116, 126, 130, 119, 139, 119, 144, 108, 121, 130, 139, 115, 135, 119, 128, 125, 121, 114, 122, 124, 116, 125, 132, 138, 105, 130, 140, 114, 120, 128, 112, 131, 129, 122, 117, 120, 118, 126, 112, 130, 117, 141, 115, 130, 119, 118, 117, 120, 127, 115, 118, 122, 153, 115, 126, 129, 109, 112, 134, 139, 142, 115, 118, 134, 130, 115, 129, 137, 120, 118, 136, 127, 122, 107, 128, 101, 107, 122, 108, 121, 131, 123, 120, 122, 119, 113, 116, 136, 114, 115, 133, 112, 159, 118, 119, 128, 156, 125, 133, 128, 115, 138, 117, 131, 110, 113, 126, 115, 115, 116, 125, 131, 120, 110, 118, 118, 117, 111, 128, 133, 146, 117, 141, 128, 139, 132, 116, 127, 135, 126, 121, 108, 125, 136, 117, 133, 123, 124, 108, 120, 119, 119, 129, 112, 147, 131, 125, 119, 133, 112, 124, 125, 113, 125, 135, 114, 123, 131, 115, 122, 131, 114, 126, 134, 120, 121, 119, 123, 139, 119, 105, 120, 136, 113, 148, 118, 120, 121, 133, 111, 130, 123, 134, 139, 123, 115, 114, 130, 126, 127, 100, 123, 118, 126, 120, 104, 137, 135, 121, 127, 126, 142, 130, 143, 125, 128, 125, 138, 116, 139, 120, 117, 131, 131, 118, 116, 127, 129, 131, 125, 146, 135, 119, 139, 124, 123, 121, 123, 127, 132, 117, 118, 125, 137, 108, 121, 138, 148, 129, 122, 136, 141, 124, 136, 111, 118, 113, 128, 127, 130, 111, 129, 128, 124, 117, 125, 134, 103, 141, 133, 122, 149, 142, 120, 120, 127, 117, 130, 120, 129, 117, 120, 130, 123, 113, 126, 116, 125, 120, 117, 137, 132, 128, 145, 129, 121, 122, 126, 142, 116, 122, 120, 122, 127, 139, 140, 129, 124, 157, 132, 114, 112, 118, 121, 142, 133, 115, 108, 123, 134, 109, 121, 138, 131, 124, 139, 132, 131, 118, 123, 118, 147, 129, 114, 127, 103, 145, 120, 125, 132, 127, 131, 119, 129, 130, 134, 128, 123, 120, 137, 121, 142, 141, 127, 125, 139, 119, 120, 139, 122, 125, 118, 122, 122, 130, 129, 121, 119, 136, 125, 133, 89, 112, 131, 121, 126, 140, 125, 129, 106, 119, 113, 150, 120, 130, 113, 128, 116, 120, 128, 116, 112, 116, 119, 116, 134, 107, 121, 124, 122, 130, 117, 138, 137, 115, 134, 128, 129, 131, 137, 131, 125, 130, 132, 133, 149, 135, 129, 147, 142, 137, 112, 115, 129, 120, 125, 122, 125, 133, 117, 119, 129, 144, 138, 144, 125, 145, 117, 135, 116, 126, 118, 115, 138, 126, 130, 118, 121, 131, 115, 133, 112, 134, 127, 123, 110, 143, 121, 131, 117, 117, 118, 127, 133, 136, 133, 121, 134, 135, 123, 145, 120, 118, 128, 132, 128, 118, 126, 107, 130, 115, 111, 132, 128, 132, 127, 117, 126, 118, 129, 129, 124, 130, 109, 110, 137, 112, 123, 117, 130, 126, 131, 129, 115, 140, 121, 150, 124, 109, 109, 116, 132, 132, 138, 131, 114, 136, 116, 125, 123, 122, 123, 130, 124, 118, 131, 129, 126, 124, 110, 135, 133, 132, 107, 126, 129, 138, 109, 125, 124, 116, 133, 126, 129, 118, 125, 111, 129, 115, 135, 130, 121, 116, 120, 116, 139, 130, 120, 115, 111, 132, 133, 115, 121, 115, 125, 131, 124, 105, 128, 126, 114, 109, 130, 131, 139, 143, 139, 120, 128, 133, 112, 120, 118, 134, 134, 129, 137, 141, 114, 138, 133, 130, 133, 127, 140, 124, 118, 111, 142, 148, 120, 129, 136, 110, 131, 112, 128, 122, 120, 124, 130, 114, 138, 146, 114, 133, 114, 115, 125, 122, 128, 111, 120, 120, 128, 121, 117, 139, 148, 149, 114, 115, 125, 121, 127, 131, 121, 113, 129, 115, 152, 111, 133, 126, 124, 133, 127, 121, 129, 119, 121, 112, 125, 133, 127, 123, 114, 114, 118, 110, 141, 118, 111, 133, 110, 132, 122, 124, 116, 134, 134, 97, 129, 155, 128, 131, 161, 130, 117, 113, 109, 117, 136, 132, 121, 146, 103, 106, 121, 130, 130, 122, 149, 111, 120, 130, 103, 126, 118, 126, 137, 115, 137, 128, 116, 120, 151, 129, 137, 108, 116, 151, 114, 142, 129, 123, 151, 113, 116, 108, 117, 136, 130, 112, 125, 135, 116, 130, 109, 131, 139, 134, 136, 132, 111, 114, 130, 140, 121, 122, 108, 120, 121, 140, 117, 156, 123, 115, 119, 144, 130, 113, 121, 115, 122, 145, 112, 119, 127, 122, 157, 118, 115, 125, 138, 121, 123, 127, 116, 130, 132, 113, 125, 129, 128, 127, 109, 126, 93, 125, 147, 135, 121, 118, 149, 129, 136, 133, 127, 123, 119, 130, 129, 142, 123, 122, 140, 125, 134, 137, 107, 123, 123, 102, 120, 130, 97, 125, 147, 127, 111, 142, 136, 123, 121, 133, 111, 114, 128, 130, 115, 136, 107, 107, 119, 141, 116, 123, 131, 133, 109, 115, 116, 125, 126, 122, 125, 111, 135, 145, 136, 115, 130, 116, 124, 139, 133, 128, 124, 119, 129, 120, 112, 123, 160, 124, 127, 116, 122, 135, 131, 111, 139, 130, 138, 129, 104, 145, 126, 133, 143, 111, 132, 124, 121, 125, 122, 121, 128, 120, 114, 145, 119, 146, 133, 134, 147, 132, 121, 139, 114, 135, 118, 124, 122, 125, 121, 122, 130, 137, 141, 127, 116, 140, 129, 118, 118, 116, 132, 138, 120, 142, 114, 126, 117, 128, 119, 126, 112, 115, 135, 129, 136, 104, 112, 122, 146, 103, 142, 129, 125, 106, 120, 125, 126, 113, 102, 135, 111, 131, 124, 109, 114, 134, 117, 118, 114, 130, 126, 128, 114, 148, 123, 116, 124, 132, 136, 130, 120, 101, 124, 134, 126, 121, 141, 112, 126, 133, 139, 157, 142, 141, 126, 118, 135, 126, 123, 140, 138, 118, 139, 154, 128, 127, 125, 140, 113, 113, 140, 123, 119, 131, 125, 125, 136, 136, 123, 137, 120, 117, 112, 126, 125, 130, 135, 133, 124, 136, 129, 117, 132, 142, 134, 131, 117, 146, 116, 140, 125, 152, 121, 130, 108, 113, 129, 121, 139, 132, 119, 115, 112, 119, 131, 150, 119, 126, 122, 123, 120, 130, 132, 138, 127, 134, 123, 113, 125, 126, 133, 116, 123, 126, 120, 128, 128, 122, 128, 131, 136, 118, 119, 127, 136, 113, 121, 128, 111, 138, 121, 128, 122, 119, 124, 118, 137, 113, 141, 124, 130, 135, 120, 113, 129, 148, 111, 132, 117, 113, 145, 127, 119, 123, 113, 124, 127, 123, 130, 126, 111, 104, 136, 110, 130, 146, 130, 130, 112, 134, 115, 126, 112, 134, 113, 117, 109, 110, 136, 114, 127, 139, 131, 136, 124, 123, 121, 118, 116, 115, 135, 121, 129, 127, 130, 134, 118, 114, 130, 109, 129, 117, 128, 133, 120, 105, 115, 144, 147, 130, 117, 116, 132, 118, 156, 113, 127, 134, 125, 144, 114, 139, 133, 118, 124, 136, 101, 112, 116, 127, 138, 113, 127, 126, 133, 113, 124, 131, 127, 123, 139, 117, 132, 139, 128, 126, 139, 119, 118, 131, 119, 137, 142, 123, 119, 126, 125, 130, 121, 113, 130, 128, 120, 133, 123, 107, 132, 123, 141, 126, 124, 127, 122, 116, 132, 121, 110, 136, 138, 105, 127, 126, 142, 137, 128, 118, 116, 134, 109, 122, 125, 116, 116, 138, 116, 118, 122, 130, 104, 125, 138, 118, 107, 117, 137, 92, 131, 126, 129, 132, 123, 125, 129, 111, 119, 116, 121, 125, 144, 119, 132, 136, 122, 116, 123, 134, 133, 127, 124, 136, 123, 117, 116, 121, 140, 138, 122, 131, 130, 100, 117, 108, 130, 115, 130, 136, 122, 123, 128, 132, 115, 119, 125, 138, 112, 134, 108, 132, 125, 134, 136, 127, 141, 121, 114, 140, 121, 119, 122, 128, 128, 137, 128, 140, 129, 121, 118, 120, 136, 120, 117, 129, 110, 131, 123, 111, 109, 138, 114, 128, 123, 131, 129, 121, 120, 135, 122, 104, 136, 116, 129, 122, 121, 114, 113, 139, 114, 143, 119, 119, 127, 128, 125, 130, 125, 134, 126, 118, 120, 139, 129, 148, 127, 134, 126, 142, 127, 131, 127, 140, 146, 134, 117, 113, 109, 114, 139, 120, 121, 140, 118, 113, 130, 113, 132, 130, 116, 139, 121, 133, 129, 125, 131, 123, 129, 144, 112, 116, 103, 109, 126, 118, 114, 126, 141, 124, 126, 124, 117, 129, 163, 143, 121, 114, 133, 128, 114, 118, 117, 112, 146, 126, 110, 117, 152, 120, 131, 125, 107, 122, 128, 155, 139, 140, 139, 105, 117, 132, 129, 134, 133, 145, 138, 107, 126, 121, 129, 144, 125, 132, 123, 127, 131, 144, 119, 139, 121, 123, 130, 136, 131, 124, 122, 100, 112, 120, 135, 128, 145, 120, 130, 122, 120, 109, 139, 106, 118, 128, 116, 138, 120, 139, 132, 135, 114, 110, 124, 127, 150, 144, 123, 128, 119, 142, 107, 125, 113, 142, 127, 119, 131, 126, 143, 134, 117, 114, 121, 120, 112, 142, 136, 131, 122, 125, 119, 133, 101, 119, 123, 129, 105, 123, 131, 124, 137, 139, 130, 128, 114, 116, 117, 128, 118, 115, 113, 114, 143, 118, 112, 144, 105, 131, 126, 120, 132, 125, 138, 125, 110, 139, 133, 112, 126, 130, 127, 124, 137, 127, 134, 120, 107, 114, 136, 109, 126, 118, 140, 132, 138, 123, 115, 145, 128, 146, 123, 90, 143, 132, 119, 124, 125, 134, 116, 119, 124, 129, 133, 142, 119, 131, 128, 116, 129, 123, 116, 105, 127, 120, 128, 125, 114, 128, 121, 132, 145, 114, 126, 129, 112, 141, 109, 121, 110, 129, 120, 110, 109, 126, 108, 99, 125, 132, 126, 154, 127, 116, 121, 126, 127, 118, 122, 136, 127, 115, 125, 101, 153, 108, 128, 114, 128, 124, 113, 107, 128, 113, 138, 126, 138, 138, 120, 123, 125, 133, 116, 138, 134, 122, 131, 117, 143, 119, 149, 122, 139, 118, 131, 111, 101, 131, 115, 137, 141, 129, 118, 115, 121, 117, 125, 128, 118, 138, 118, 122, 128, 128, 131, 106, 113, 115, 144, 121, 127, 112, 133, 133, 124, 129, 124, 111, 107, 128, 156, 128, 123, 118, 146, 129, 132, 121, 130, 133, 113, 115, 126, 127, 132, 123, 135, 113, 115, 132, 134, 128, 121, 119, 127, 128, 135, 123, 136, 127, 122, 125, 130, 117, 120, 130, 132, 126, 120, 124, 140, 141, 129, 133, 113, 138, 109, 135, 125, 128, 118, 106, 107, 132, 133, 115, 130, 116, 132, 136, 116, 111, 122, 123, 118, 112, 114, 130, 119, 118, 121, 128, 120, 126, 118, 109, 113, 123, 113, 113, 120, 133, 125, 128, 144, 120, 121, 104, 130, 116, 109, 125, 124, 121, 119, 128, 123, 131, 135, 126, 125, 126, 112, 115, 124, 132, 126, 142, 130, 123, 139, 127, 117, 130, 130, 130, 123, 121, 145, 113, 127, 124, 113, 129, 117, 120, 121, 123, 141, 124, 110, 136, 135, 113, 129, 128, 133, 120, 142, 119, 117, 120, 126, 116, 110, 116, 137, 120, 115, 133, 125, 133, 135, 134, 123, 124, 105, 127, 120, 141, 133, 104, 109, 128, 130, 127, 124, 125, 129, 128, 131, 117, 117, 119, 121, 121, 108, 137, 130, 133, 125, 119, 142, 126, 120, 131, 132, 128, 132, 126, 124, 130, 126, 149, 140, 127, 121, 137, 118, 132, 129, 120, 114, 128, 122, 128, 122, 121, 127, 139, 124, 125, 124, 134, 126, 111, 124, 115, 144, 113, 132, 125, 124, 122, 114, 134, 111, 134, 127, 124, 148, 122, 138, 122, 123, 120, 126, 136, 110, 135, 122, 125, 121, 112, 132, 108, 124, 137, 119, 142, 130, 136, 124, 121, 166, 131, 104, 138, 148, 130, 136, 134, 123, 111, 124, 130, 131, 116, 122, 114, 121, 127, 132, 126, 129, 125, 130, 143, 118, 129, 139, 125, 125, 126, 126, 108, 111, 113, 141, 130, 112, 143, 102, 117, 125, 135, 127, 143, 144, 120, 107, 125, 143, 138, 109, 133, 127, 136, 128, 129, 107, 159, 117, 109, 139, 118, 118, 138, 105, 114, 140, 131, 117, 138, 134, 131, 122, 140, 129, 121, 124, 125, 134, 127, 122, 141, 114, 128, 112, 120, 141, 123, 117, 131, 112, 128, 126, 123, 113, 105, 127, 109, 123, 96, 127, 122, 129, 129, 119, 120, 122, 131, 132, 117, 107, 121, 117, 133, 129, 136, 120, 143, 115, 125, 134, 137, 112, 117, 121, 138, 118, 126, 121, 136, 110, 115, 119, 116, 138, 137, 117, 116, 135, 132, 124, 116, 119, 115, 138, 116, 113, 136, 138, 129, 128, 103, 124, 117, 123, 124, 125, 112, 122, 135, 100, 141, 133, 122, 126, 112, 113, 129, 116, 103, 125, 127, 112, 148, 106, 146, 122, 130, 113, 130, 126, 109, 138, 120, 129, 141, 130, 122, 135, 123, 115, 120, 142, 141, 122, 128, 101, 130, 151, 119, 137, 118, 128, 121, 122, 116, 145, 141, 112, 111, 152, 130, 134, 119, 123, 136, 132, 116, 145, 131, 129, 128, 130, 135, 115, 137, 134, 120, 109, 110, 138, 137, 132, 131, 132, 124, 137, 125, 121, 140, 142, 126, 132, 122, 130, 139, 124, 119, 131, 111, 99, 121, 114, 127, 127, 121, 117, 140, 124, 108, 125, 138, 139, 147, 104, 99, 121, 121, 127, 118, 131, 127, 124, 108, 113, 122, 139, 104, 128, 138, 117, 120, 120, 122, 122, 118, 118, 135, 126, 126, 138, 113, 104, 118, 123, 139, 117, 134, 137, 120, 139, 130, 136, 118, 137, 114, 124, 129, 123, 133, 124, 120, 123, 118, 127, 142, 144, 124, 134, 143, 132, 118, 120, 120, 152, 116, 132, 132, 117, 120, 135, 127, 116, 130, 132, 135, 121, 117, 103, 142, 125, 130, 127, 120, 119, 125, 116, 103, 129, 127, 123, 117, 120, 135, 125, 135, 124, 121, 140, 122, 122, 128, 111, 123, 114, 113, 133, 122, 116, 126, 138, 112, 136, 118, 113, 131, 144, 132, 143, 113, 132, 131, 137, 130, 130, 118, 134, 136, 143, 117, 129, 124, 109, 141, 140, 138, 124, 137, 123, 132, 119, 123, 108, 126, 116, 118, 136, 119, 130, 143, 135, 113, 97, 147, 123, 141, 123, 135, 124, 118, 130, 134, 119, 125, 123, 134, 107, 117, 136, 137, 140, 138, 137, 129, 119, 123, 134, 123, 126, 122, 116, 143, 146, 129, 109, 127, 117, 105, 119, 130, 122, 139, 120, 137, 140, 137, 130, 126, 133, 128, 107, 106, 120, 130, 122, 116, 114, 124, 122, 143, 120, 131, 135, 142, 124, 111, 121, 152, 136, 149, 131, 146, 124, 104, 134, 125, 124, 138, 141, 122, 100, 149, 104, 125, 134, 127, 127, 129, 124, 140, 129, 114, 136, 131, 112, 113, 117, 135, 138, 123, 140, 124, 120, 116, 114, 127, 153, 126, 119, 104, 125, 140, 125, 137, 133, 137, 129, 142, 130, 110, 142, 123, 130, 125, 141, 114, 150, 115, 120, 117, 120, 121, 125, 118, 125, 150, 135, 109, 142, 126, 122, 102, 124, 109, 107, 113, 145, 127, 112, 146, 143, 119, 135, 128, 127, 124, 113, 144, 125, 149, 127, 128, 144, 122, 124, 124, 112, 130, 108, 125, 121, 126, 105, 117, 157, 119, 138, 132, 124, 119, 103, 124, 124, 124, 124, 128, 123, 132, 123, 126, 131, 126, 159, 120, 122, 132, 125, 130, 110, 121, 123, 123, 118, 125, 119, 135, 131, 134, 100, 113, 113, 130, 125, 139, 116, 145, 109, 126, 117, 128, 123, 105, 125, 125, 129, 125, 119, 134, 121, 134, 138, 106, 136, 114, 127, 133, 133, 127, 115, 122, 128, 121, 120, 133, 141, 138, 121, 114, 134, 112, 123, 125, 133, 124, 138, 117, 137, 109, 111, 117, 128, 131, 136, 135, 96, 123, 133, 110, 126, 142, 130, 115, 138, 136, 97, 122, 114, 132, 136, 137, 125, 146, 123, 112, 125, 130, 120, 120, 124, 129, 118, 135, 137, 124, 110, 138, 123, 132, 129, 136, 125, 136, 124, 123, 130, 122, 111, 118, 101, 120, 130, 123, 140, 136, 126, 127, 142, 121, 108, 126, 115, 129, 114, 114, 124, 129, 83, 113, 133, 140, 134, 116, 117, 117, 135, 126, 115, 135, 124, 116, 121, 108, 127, 136, 115, 116, 123, 116, 116, 117, 121, 117, 138, 126, 136, 115, 125, 143, 140, 119, 128, 134, 133, 119, 138, 129, 113, 128, 142, 124, 125, 120, 140, 119, 135, 136, 125, 117, 122, 112, 122, 129, 134, 130, 121, 119, 123, 127, 107, 113, 120, 124, 126, 115, 130, 114, 124, 134, 127, 122, 109, 132, 120, 126, 133, 140, 119, 111, 137, 122, 139, 103, 121, 126, 121, 126, 141, 121, 146, 115, 105, 120, 117, 123, 125, 116, 137, 130, 122, 128, 123, 119, 118, 118, 130, 127, 145, 133, 122, 121, 112, 122, 126, 127, 140, 115, 141, 118, 126, 124, 100, 127, 128, 150, 114, 115, 138, 114, 117, 127, 134, 126, 115, 110, 131, 136, 116, 134, 116, 137, 136, 122, 115, 120, 141, 119, 108, 129, 126, 131, 126, 126, 122, 128, 126, 136, 122, 124, 117, 141, 131, 131, 133, 124, 116, 139, 123, 122, 112, 128, 120, 120, 140, 122, 114, 119, 137, 118, 132, 134, 115, 130, 143, 138, 131, 138, 130, 122, 127, 125, 115, 129, 125, 126, 100, 129, 126, 133, 132, 115, 125, 119, 135, 115, 125, 142, 113, 118, 117, 123, 119, 118, 121, 120, 133, 127, 133, 138, 129, 109, 121, 131, 142, 117, 114, 123, 125, 147, 133, 110, 117, 120, 120, 131, 125, 133, 133, 115, 130, 139, 125, 129, 121, 136, 107, 124, 131, 103, 122, 123, 129, 122, 132, 119, 119, 136, 127, 118, 141, 121, 130, 124, 120, 116, 126, 143, 120, 103, 121, 123, 130, 121, 97, 135, 130, 110, 114, 136, 125, 122, 138, 103, 128, 128, 113, 109, 118, 113, 102, 126, 109, 118, 125, 122, 123, 120, 127, 115, 115, 139, 124, 117, 123, 139, 117, 133, 120, 114, 128, 116, 138, 126, 134, 146, 121, 131, 126, 138, 129, 106, 145, 103, 112, 135, 121, 132, 135, 122, 140, 138, 121, 122, 117, 127, 118, 123, 127, 134, 128, 134, 115, 133, 131, 130, 120, 127, 128, 132, 135, 116, 142, 125, 140, 121, 123, 125, 108, 129, 119, 122, 146, 109, 122, 136, 122, 127, 105, 118, 126, 133, 127, 115, 116, 140, 113, 114, 126, 133, 108, 140, 122, 123, 116, 127, 124, 125, 134, 129, 115, 134, 145, 128, 135, 126, 106, 117, 121, 105, 118, 120, 124, 136, 120, 140, 120, 112, 122, 123, 135, 118, 123, 125, 126, 128, 126, 131, 130, 133, 119, 123, 124, 134, 117, 117, 130, 112, 122, 128, 107, 128, 119, 116, 153, 126, 129, 124, 123, 131, 129, 127, 119, 121, 139, 126, 133, 122, 125, 136, 120, 114, 141, 118, 99, 138, 92, 119, 130, 121, 127, 126, 126, 121, 121, 126, 121, 120, 126, 133, 129, 121, 125, 121, 129, 135, 127, 124, 125, 119, 139, 141, 113, 137, 116, 142, 128, 113, 126, 114, 135, 125, 121, 126, 130, 140, 107, 124, 122, 126, 137, 117, 114, 121, 115, 120, 124, 128, 132, 134, 140, 121, 124, 134, 128, 110, 138, 128, 133, 119, 123, 129, 124, 138, 104, 114, 137, 127, 133, 134, 124, 124, 114, 124, 141, 121, 128, 119, 144, 130, 116, 132, 120, 121, 120, 130, 121, 120, 130, 111, 140, 119, 117, 130, 156, 119, 125, 121, 133, 133, 147, 124, 128, 123, 128, 124, 129, 133, 108, 138, 130, 155, 111, 149, 133, 127, 124, 126, 109, 124, 126, 107, 127, 120, 113, 133, 124, 123, 115, 147, 126, 115, 130, 104, 102, 135, 134, 112, 115, 124, 98, 137, 140, 126, 110, 126, 124, 122, 124, 126, 134, 116, 141, 135, 135, 118, 124, 118, 124, 130, 105, 125, 137, 148, 125, 137, 118, 124, 120, 122, 128, 126, 131, 132, 117, 118, 136, 132, 124, 139, 146, 127, 127, 132, 126, 136, 116, 127, 134, 118, 111, 95, 118, 138, 111, 114, 135, 124, 111, 122, 124, 123, 131, 126, 123, 132, 124, 119, 122, 127, 125, 116, 120, 116, 125, 126, 109, 109, 121, 124, 148, 105, 139, 127, 126, 129, 118, 130, 127, 109, 141, 134, 131, 136, 143, 124, 133, 135, 117, 143, 133, 132, 124, 115, 117, 138, 139, 127, 117, 135, 145, 138, 130, 139, 118, 120, 133, 123, 116, 138, 122, 123, 116, 129, 138, 118, 126, 127, 133, 121, 128, 110, 127, 112, 131, 130, 123, 124, 126, 127, 106, 121, 118, 130, 146, 125, 118, 131, 134, 121, 136, 126, 116, 115, 123, 118, 122, 113, 126, 98, 131, 128, 117, 130, 113, 130, 116, 130, 116, 142, 106, 118, 122, 122, 132, 121, 139, 142, 127, 127, 115, 130, 118, 120, 123, 146, 115, 118, 154, 116, 124, 125, 132, 118, 136, 115, 105, 123, 128, 137, 134, 120, 121, 119, 113, 132, 130, 128, 114, 120, 124, 123, 116, 130, 126, 115, 120, 117, 137, 122, 131, 129, 136, 134, 122, 123, 127, 122, 137, 129, 135, 137, 130, 139, 133, 124, 129, 109, 116, 132, 109, 119, 140, 118, 115, 125, 105, 123, 127, 128, 130, 113, 135, 132, 136, 129, 133, 121, 119, 113, 108, 124, 132, 136, 137, 124, 129, 124, 125, 128, 116, 125, 126, 118, 136, 119, 133, 136, 135, 136, 136, 125, 124, 135, 127, 121, 132, 129, 129, 117, 128, 136, 122, 122, 118, 111, 116, 128, 143, 115, 128, 114, 128, 124, 113, 124, 134, 126, 138, 109, 117, 122, 115, 117, 128, 115, 128, 122, 120, 110, 117, 121, 134, 125, 122, 118, 120, 147, 132, 121, 130, 142, 116, 129, 111, 143, 120, 124, 104, 110, 127, 118, 125, 125, 112, 126, 121, 127, 116, 120, 124, 118, 123, 122, 125, 129, 138, 121, 102, 142, 140, 123, 147, 122, 113, 125, 113, 150, 152, 127, 135, 126, 123, 120, 122, 131, 109, 132, 135, 107, 147, 119, 121, 146, 119, 127, 119, 137, 130, 122, 118, 125, 118, 129, 136, 124, 136, 131, 134, 117, 138, 129, 132, 108, 121, 133, 133, 126, 130, 131, 121, 131, 131, 122, 114, 130, 126, 119, 120, 146, 151, 121, 126, 132, 136, 133, 147, 129, 97, 122, 108, 131, 120, 126, 112, 122, 117, 144, 133, 132, 128, 152, 132, 127, 138, 121, 128, 115, 133, 121, 116, 140, 123, 121, 131, 130, 122, 137, 136, 131, 125, 128, 134, 136, 135, 129, 126, 108, 127, 130, 114, 114, 138, 112, 137, 129, 121, 159, 126, 129, 112, 120, 128, 127, 118, 136, 106, 138, 118, 130, 114, 127, 128, 116, 143, 146, 120, 123, 116, 116, 134, 121, 138, 105, 129, 120, 116, 111, 123, 116, 127, 116, 131, 131, 120, 129, 117, 123, 127, 117, 122, 135, 135, 146, 114, 131, 129, 136, 124, 117, 125, 108, 126, 108, 148, 119, 120, 126, 135, 129, 125, 141, 131, 122, 101, 111, 116, 126, 125, 108, 112, 133, 139, 125, 120, 127, 132, 125, 122, 105, 139, 135, 125, 137, 132, 115, 135, 108, 131, 115, 130, 146, 130, 119, 121, 121, 109, 142, 118, 123, 121, 114, 107, 119, 128, 120, 150, 124, 131, 116, 123, 123, 133, 130, 112, 126, 154, 120, 125, 124, 133, 116, 137, 135, 140, 144, 135, 103, 121, 118, 129, 131, 126, 132, 119, 132, 122, 114, 125, 136, 110, 128, 128, 117, 136, 131, 124, 124, 124, 122, 132, 122, 117, 128, 121, 118, 138, 126, 134, 126, 109, 139, 133, 127, 121, 111, 101, 134, 125, 134, 135, 126, 141, 129, 120, 119, 123, 134, 129, 123, 130, 120, 120, 119, 138, 135, 119, 129, 136, 132, 141, 120, 129, 125, 132, 129, 133, 133, 131, 106, 131, 118, 139, 140, 128, 124, 115, 129, 118, 129, 129, 115, 116, 111, 131, 126, 111, 121, 129, 128, 118, 157, 137, 119, 120, 113, 126, 123, 129, 132, 131, 108, 130, 118, 106, 128, 130, 138, 126, 129, 120, 130, 135, 126, 100, 132, 109, 133, 108, 121, 133, 120, 121, 121, 135, 117, 136, 124, 114, 121, 138, 111, 129, 119, 130, 125, 147, 148, 143, 143, 113, 117, 124, 123, 163, 136, 128, 135, 137, 128, 120, 143, 117, 120, 136, 116, 149, 121, 137, 137, 130, 133, 114, 123, 112, 121, 109, 112, 113, 152, 113, 125, 126, 127, 115, 120, 140, 137, 134, 132, 140, 106, 125, 135, 135, 128, 127, 122, 130, 131, 114, 114, 125, 101, 110, 127, 125, 129, 142, 126, 137, 126, 128, 127, 99, 118, 126, 141, 129, 141, 108, 136, 112, 106, 117, 137, 120, 115, 125, 128, 131, 139, 119, 114, 119, 139, 124, 157, 91, 132, 117, 131, 125, 133, 105, 129, 138, 120, 144, 139, 123, 122, 129, 137, 115, 111, 136, 100, 103, 132, 138, 129, 129, 122, 123, 111, 107, 129, 122, 119, 122, 116, 128, 124, 117, 135, 125, 118, 121, 130, 107, 139, 116, 139, 128, 121, 123, 131, 139, 114, 122, 139, 124, 112, 126, 122, 132, 119, 119, 116, 135, 127, 114, 125, 116, 133, 130, 126, 110, 124, 136, 138, 123, 114, 141, 136, 116, 113, 127, 117, 148, 130, 116, 117, 131, 141, 120, 137, 111, 105, 117, 121, 125, 121, 145, 131, 121, 131, 119, 129, 111, 146, 135, 145, 140, 100, 124, 111, 120, 135, 133, 130, 144, 115, 121, 131, 119, 134, 146, 130, 128, 126, 137, 134, 125, 123, 134, 125, 128, 139, 137, 112, 122, 115, 118, 123, 121, 116, 126, 112, 124, 116, 122, 127, 122, 119, 125, 125, 131, 133, 122, 111, 130, 135, 132, 113, 109, 142, 139, 130, 120, 120, 119, 115, 120, 125, 113, 117, 134, 113, 132, 139, 119, 128, 119, 111, 116, 126, 114, 121, 132, 125, 125, 114, 118, 141, 129, 128, 116, 142, 126, 119, 130, 113, 121, 120, 141, 135, 123, 118, 127, 128, 131, 145, 124, 133, 131, 123, 131, 120, 109, 127, 116, 129, 124, 125, 109, 109, 124, 114, 123, 132, 133, 117, 107, 110, 108, 125, 115, 124, 122, 117, 102, 128, 125, 130, 123, 121, 120, 127, 128, 115, 129, 146, 114, 115, 129, 127, 113, 127, 128, 125, 123, 112, 131, 147, 110, 115, 119, 110, 126, 128, 100, 141, 120, 153, 127, 125, 134, 136, 139, 125, 128, 126, 128, 148, 124, 137, 104, 135, 110, 140, 120, 148, 124, 122, 122, 129, 126, 123, 129, 136, 135, 119, 126, 135, 109, 129, 116, 129, 144, 137, 125, 129, 131, 125, 141, 132, 123, 130, 119, 122, 135, 130, 133, 126, 105, 126, 128, 109, 128, 139, 126, 127, 115, 112, 121, 136, 125, 127, 125, 128, 126, 122, 136, 129, 132, 119, 122, 112, 120, 131, 135, 118, 116, 123, 128, 107, 124, 113, 115, 138, 131, 128, 121, 132, 128, 119, 136, 123, 145, 125, 118, 130, 126, 114, 123, 114, 127, 104, 128, 130, 117, 123, 128, 141, 130, 134, 139, 125, 123, 145, 127, 112, 136, 136, 117, 125, 94, 120, 136, 132, 130, 121, 110, 125, 132, 119, 127, 114, 110, 120, 126, 105, 120, 127, 132, 125, 133, 127, 123, 113, 130, 134, 121, 134, 138, 132, 140, 123, 128, 125, 107, 136, 132, 127, 135, 115, 130, 118, 143, 126, 127, 131, 126, 116, 106, 134, 119, 114, 116, 131, 130, 120, 124, 119, 130, 130, 116, 136, 122, 114, 124, 121, 120, 136, 123, 121, 121, 150, 141, 131, 121, 134, 124, 140, 135, 126, 125, 111, 90, 128, 115, 120, 128, 113, 133, 119, 120, 129, 114, 127, 131, 125, 129, 124, 117, 127, 130, 107, 130, 123, 133, 136, 122, 126, 124, 136, 138, 141, 126, 140, 132, 78, 105, 121, 118, 142, 125, 127, 124, 128, 125, 109, 102, 129, 107, 127, 125, 120, 124, 124, 125, 137, 121, 129, 135, 131, 129, 124, 119, 136, 120, 105, 124, 132, 127, 133, 125, 135, 129, 129, 109, 107, 118, 126, 121, 140, 141, 102, 105, 130, 102, 110, 115, 131, 140, 124, 131, 118, 122, 140, 116, 110, 141, 125, 113, 132, 124, 148, 129, 132, 133, 121, 131, 121, 113, 106, 117, 108, 117, 122, 113, 153, 134, 125, 114, 122, 140, 134, 117, 137, 125, 139, 120, 121, 119, 121, 135, 123, 128, 131, 130, 132, 99, 117, 125, 133, 100, 128, 123, 112, 115, 130, 152, 117, 128, 133, 123, 114, 123, 108, 121, 139, 114, 112, 123, 110, 106, 102, 125, 122, 127, 117, 146, 141, 142, 117, 123, 108, 118, 130, 110, 129, 128, 129, 115, 123, 115, 133, 135, 116, 122, 125, 129, 126, 108, 130, 127, 137, 125, 135, 133, 126, 141, 129, 109, 133, 134, 133, 117, 103, 132, 135, 103, 129, 142, 112, 125, 138, 133, 120, 134, 119, 114, 126, 140, 118, 118, 129, 125, 123, 95, 113, 132, 129, 116, 121, 143, 121, 131, 124, 131, 134, 117, 122, 128, 147, 124, 118, 129, 125, 120, 133, 141, 131, 119, 133, 121, 111, 123, 128, 143, 136, 119, 117, 132, 126, 124, 128, 151, 123, 129, 131, 127, 130, 144, 126, 120, 125, 159, 122, 124, 124, 143, 149, 109, 123, 117, 135, 129, 117, 121, 127, 113, 110, 118, 108, 144, 124, 131, 126, 128, 129, 112, 125, 118, 119, 121, 103, 137, 119, 131, 144, 123, 127, 128, 130, 121, 133, 122, 131, 136, 128, 139, 124, 116, 142, 112, 122, 112, 128, 112, 107, 137, 126, 128, 122, 132, 117, 115, 120, 121, 119, 127, 129, 122, 130, 114, 129, 126, 122, 138, 122, 146, 129, 135, 115, 128, 126, 162, 111, 133, 132, 115, 110, 125, 137, 127, 128, 123, 124, 101, 126, 128, 118, 120, 120, 119, 106, 139, 117, 119, 117, 124, 123, 130, 116, 137, 139, 120, 118, 139, 129, 124, 127, 128, 122, 123, 123, 130, 106, 130, 123, 128, 135, 130, 89, 130, 136, 118, 128, 95, 128, 117, 125, 114, 114, 117, 135, 123, 127, 116, 115, 105, 109, 120, 123, 118, 131, 123, 122, 119, 121, 115, 126, 133, 135, 106, 120, 113, 120, 122, 117, 119, 106, 124, 127, 134, 120, 111, 111, 128, 122, 131, 140, 113, 149, 114, 123, 122, 121, 123, 135, 113, 133, 142, 123, 135, 110, 137, 131, 137, 146, 141, 129, 136, 124, 103, 99, 138, 120, 122, 112, 133, 126, 124, 145, 119, 126, 117, 109, 133, 128, 117, 118, 126, 132, 129, 111, 122, 128, 128, 121, 125, 129, 117, 129, 130, 139, 110, 136, 117, 118, 145, 111, 117, 152, 133, 140, 127, 117, 135, 129, 112, 133, 127, 133, 124, 125, 126, 108, 132, 113, 124, 73, 129, 118, 130, 130, 138, 134, 109, 133, 129, 127, 123, 117, 114, 118, 132, 122, 126, 137, 145, 135, 130, 113, 115, 142, 124, 127, 119, 102, 123, 127, 122, 139, 128, 125, 135, 138, 128, 118, 135, 122, 86, 126, 123, 129, 108, 117, 122, 131, 132, 114, 138, 128, 129, 127, 145, 115, 123, 116, 117, 121, 129, 139, 126, 137, 128, 114, 93, 111, 106, 122, 139, 127, 131, 128, 122, 134, 133, 118, 134, 107, 133, 121, 117, 127, 127, 108, 125, 108, 106, 134, 122, 127, 128, 132, 135, 103, 130, 114, 128, 120, 127, 125, 132, 114, 125, 124, 137, 131, 110, 113, 117, 129, 137, 148, 144, 119, 109, 109, 131, 128, 118, 124, 122, 108, 129, 130, 119, 133, 115, 118, 102, 137, 122, 156, 119, 120, 121, 120, 128, 141, 113, 109, 122, 139, 123, 123, 118, 113, 122, 131, 133, 118, 127, 132, 132, 111, 136, 132, 128, 125, 122, 117, 118, 123, 117, 142, 117, 134, 126, 118, 136, 122, 108, 124, 143, 122, 146, 134, 98, 110, 130, 120, 116, 133, 138, 143, 126, 133, 128, 126, 137, 118, 136, 103, 122, 124, 123, 120, 130, 110, 108, 126, 121, 112, 135, 134, 132, 122, 109, 117, 136, 122, 116, 103, 126, 109, 112, 114, 157, 143, 135, 129, 125, 113, 129, 116, 130, 112, 127, 138, 156, 128, 124, 147, 136, 121, 124, 122, 124, 115, 126, 131, 108, 124, 120, 123, 126, 129, 126, 128, 124, 125, 131, 120, 124, 119, 111, 116, 134, 119, 108, 102, 114, 153, 121, 110, 109, 139, 127, 127, 131, 127, 139, 137, 112, 104, 139, 126, 118, 123, 125, 125, 126, 143, 149, 127, 99, 79, 140, 126, 140, 125, 126, 121, 122, 125, 127, 132, 144, 116, 132, 139, 130, 122, 122, 126, 129, 115, 115, 124, 124, 124, 128, 125, 122, 122, 132, 134, 111, 136, 110, 108, 117, 140, 137, 152, 131, 141, 121, 123, 120, 135, 109, 123, 129, 114, 122, 128, 121, 129, 107, 117, 129, 127, 137, 125, 132, 149, 127, 135, 121, 127, 119, 123, 119, 133, 128, 128, 137, 133, 126, 134, 121, 130, 124, 132, 128, 110, 135, 116, 139, 125, 116, 114, 118, 110, 123, 118, 114, 116, 128, 134, 119, 151, 139, 127, 137, 114, 124, 128, 125, 118, 125, 146, 128, 124, 124, 165, 116, 139, 131, 109, 124, 114, 133, 137, 135, 125, 137, 122, 127, 128, 121, 123, 129, 112, 135, 128, 130, 112, 125, 101, 120, 130, 116, 144, 131, 122, 114, 118, 113, 114, 124, 137, 131, 140, 138, 120, 128, 119, 126, 118, 118, 110, 117, 138, 123, 114, 137, 124, 130, 130, 132, 113, 126, 125, 140, 128, 114, 102, 100, 133, 139, 128, 127, 133, 159, 119, 149, 127, 122, 136, 122, 113, 122, 155, 116, 125, 114, 118, 130, 129, 135, 123, 123, 123, 128, 137, 141, 125, 126, 142, 133, 151, 119, 99, 124, 106, 124, 145, 132, 135, 113, 138, 107, 130, 124, 127, 145, 109, 130, 117, 109, 125, 126, 128, 117, 120, 127, 123, 124, 114, 133, 121, 126, 113, 119, 142, 128, 120, 116, 121, 121, 121, 113, 116, 125, 127, 105, 125, 129, 125, 122, 139, 123, 147, 115, 115, 128, 156, 125, 127, 124, 137, 113, 146, 139, 114, 119, 137, 106, 89, 118, 142, 135, 120, 116, 121, 117, 129, 100, 114, 124, 139, 127, 126, 114, 132, 124, 120, 136, 124, 132, 130, 149, 128, 131, 122, 112, 130, 149, 135, 138, 139, 126, 118, 129, 123, 117, 124, 102, 124, 127, 136, 123, 131, 135, 124, 120, 144, 103, 122, 134, 134, 158, 133, 119, 126, 119, 121, 162, 123, 125, 110, 130, 124, 129, 136, 147, 129, 128, 114, 121, 125, 132, 124, 123, 128, 140, 131, 122, 117, 134, 107, 105, 131, 105, 125, 119, 136, 126, 120, 117, 123, 141, 140, 133, 129, 119, 122, 139, 123, 109, 139, 129, 144, 112, 113, 132, 101, 121, 118, 125, 131, 110, 115, 109, 126, 136, 129, 133, 134, 116, 146, 114, 120, 143, 119, 147, 145, 138, 133, 129, 113, 123, 115, 140, 140, 119, 121, 105, 125, 123, 125, 127, 126, 126, 102, 126, 130, 108, 104, 126, 128, 116, 125, 121, 126, 134, 120, 109, 124, 125, 140, 136, 123, 120, 132, 124, 120, 105, 138, 135, 141, 130, 132, 125, 130, 121, 148, 126, 125, 135, 107, 135, 118, 130, 110, 136, 125, 124, 138, 129, 145, 120, 134, 126, 147, 139, 125, 118, 121, 144, 118, 127, 128, 143, 125, 125, 138, 122, 135, 125, 119, 121, 108, 122, 114, 122, 132, 130, 127, 112, 141, 139, 125, 121, 116, 126, 125, 108, 118, 118, 110, 124, 124, 130, 115, 122, 127, 126, 104, 129, 138, 129, 111, 119, 125, 126, 122, 130, 128, 133, 120, 123, 143, 107, 124, 126, 120, 132, 118, 126, 128, 121, 162, 138, 153, 129, 124, 129, 112, 116, 137, 129, 122, 129, 124, 114, 121, 117, 130, 125, 118, 128, 123, 128, 119, 137, 132, 145, 133, 111, 120, 131, 117, 118, 119, 133, 126, 115, 125, 127, 118, 140, 113, 134, 128, 130, 130, 128, 120, 133, 113, 121, 119, 129, 111, 111, 122, 125, 125, 143, 114, 120, 137, 124, 134, 128, 116, 121, 125, 119, 118, 115, 120, 131, 126, 126, 90, 141, 125, 118, 121, 115, 121, 122, 123, 116, 118, 122, 136, 109, 122, 140, 124, 106, 126, 127, 114, 135, 127, 118, 130, 120, 116, 122, 128, 132, 125, 132, 128, 118, 110, 119, 119, 126, 137, 129, 113, 123, 130, 114, 125, 121, 130, 122, 115, 132, 124, 126, 128, 119, 118, 122, 119, 125, 131, 130, 103, 148, 123, 141, 124, 126, 101, 138, 124, 122, 126, 113, 133, 127, 117, 122, 129, 130, 126, 136, 130, 134, 113, 120, 121, 111, 124, 133, 120, 125, 143, 148, 106, 131, 123, 133, 121, 127, 141, 132, 136, 122, 113, 120, 121, 125, 121, 121, 132, 141, 120, 128, 123, 135, 104, 103, 109, 126, 138, 122, 135, 122, 133, 132, 103, 130, 120, 95, 125, 122, 120, 138, 121, 152, 132, 118, 130, 124, 128, 118, 111, 147, 121, 126, 135, 124, 118, 117, 136, 124, 113, 124, 116, 130, 144, 129, 109, 107, 114, 130, 134, 133, 133, 119, 126, 101, 139, 140, 127, 126, 120, 116, 120, 134, 125, 128, 130, 113, 118, 121, 128, 112, 132, 116, 112, 132, 124, 125, 129, 111, 117, 113, 139, 126, 120, 116, 128, 120, 118, 123, 133, 132, 136, 126, 116, 131, 136, 117, 119, 139, 134, 118, 121, 127, 135, 123, 128, 123, 127, 130, 124, 119, 121, 131, 124, 131, 133, 119, 112, 121, 126, 134, 128, 121, 126, 136, 117, 119, 130, 123, 165, 144, 123, 136, 125, 132, 112, 136, 132, 125, 98, 128, 138, 130, 125, 140, 132, 128, 125, 125, 131, 143, 127, 136, 137, 131, 116, 102, 119, 126, 122, 148, 147, 117, 135, 136, 112, 121, 119, 114, 110, 134, 134, 106, 128, 136, 137, 121, 120, 140, 128, 137, 123, 128, 103, 116, 146, 120, 130, 135, 114, 106, 113, 110, 120, 131, 136, 132, 118, 148, 123, 126, 120, 109, 115, 131, 131, 113, 101, 139, 128, 119, 131, 137, 121, 132, 132, 108, 106, 125, 122, 134, 132, 141, 101, 135, 130, 121, 119, 129, 135, 118, 93, 130, 114, 125, 140, 153, 125, 122, 118, 123, 108, 119, 125, 139, 147, 142, 125, 115, 138, 120, 127, 135, 101, 136, 127, 124, 132, 137, 133, 136, 129, 117, 121, 125, 126, 127, 140, 130, 129, 127, 128, 118, 116, 138, 125, 109, 130, 117, 117, 128, 111, 131, 118, 116, 106, 134, 108, 126, 116, 122, 112, 131, 133, 115, 122, 124, 140, 125, 127, 135, 141, 131, 120, 129, 123, 110, 131, 137, 134, 133, 139, 128, 127, 129, 130, 123, 137, 137, 133, 130, 111, 122, 113, 130, 119, 110, 124, 128, 131, 134, 102, 125, 110, 130, 122, 138, 128, 148, 113, 135, 138, 129, 135, 127, 133, 115, 126, 128, 141, 145, 125, 108, 108, 142, 125, 130, 123, 132, 110, 121, 142, 122, 110, 124, 126, 128, 112, 124, 121, 116, 129, 112, 110, 121, 121, 117, 135, 139, 126, 127, 123, 130, 124, 124, 122, 124, 140, 118, 156, 112, 127, 128, 103, 118, 113, 116, 118, 145, 121, 129, 123, 108, 107, 132, 116, 122, 111, 128, 123, 158, 144, 118, 123, 137, 133, 90, 137, 140, 137, 137, 125, 131, 134, 119, 112, 137, 139, 147, 117, 125, 105, 96, 140, 128, 122, 132, 131, 107, 135, 149, 117, 131, 124, 121, 119, 119, 124, 115, 115, 132, 144, 120, 134, 125, 133, 118, 120, 122, 123, 129, 119, 134, 125, 116, 121, 112, 113, 121, 153, 144, 121, 128, 119, 129, 134, 122, 121, 130, 127, 116, 130, 138, 131, 103, 128, 126, 125, 118, 135, 140, 113, 132, 141, 119, 157, 128, 129, 118, 137, 91, 127, 128, 130, 102, 142, 141, 128, 147, 132, 129, 109, 115, 120, 126, 133, 138, 128, 132, 119, 123, 130, 136, 122, 130, 143, 132, 131, 126, 132, 123, 140, 121, 133, 129, 141, 117, 122, 115, 130, 128, 132, 130, 139, 126, 119, 135, 126, 113, 148, 132, 129, 120, 113, 119, 124, 106, 119, 134, 122, 121, 130, 136, 138, 107, 133, 129, 142, 121, 126, 136, 124, 123, 116, 98, 133, 114, 134, 141, 132, 117, 134, 124, 136, 149, 112, 122, 130, 133, 134, 128, 132, 122, 121, 132, 126, 128, 140, 129, 111, 112, 119, 128, 138, 109, 122, 110, 120, 131, 132, 126, 138, 123, 135, 117, 143, 140, 129, 119, 111, 124, 138, 137, 89, 106, 126, 133, 122, 135, 109, 132, 119, 114, 129, 119, 135, 146, 113, 106, 126, 122, 131, 127, 131, 133, 133, 138, 123, 126, 117, 118, 134, 125, 137, 140, 125, 121, 125, 132, 125, 118, 126, 126, 119, 118, 114, 143, 131, 150, 139, 116, 108, 109, 133, 121, 136, 114, 139, 117, 111, 129, 132, 142, 109, 112, 123, 109, 134, 120, 126, 142, 117, 133, 137, 126, 125, 126, 106, 123, 139, 129, 133, 135, 122, 112, 118, 127, 121, 142, 137, 119, 116, 119, 129, 142, 123, 114, 121, 133, 106, 131, 136, 124, 137, 108, 103, 127, 123, 135, 135, 118, 122, 108, 124, 125, 123, 116, 120, 130, 130, 112, 117, 141, 150, 113, 128, 116, 120, 114, 126, 120, 104, 130, 143, 113, 145, 116, 121, 118, 120, 133, 147, 131, 119, 117, 135, 127, 133, 136, 109, 133, 117, 127, 110, 114, 117, 116, 135, 105, 128, 125, 123, 152, 120, 123, 113, 118, 120, 140, 146, 130, 144, 122, 122, 110, 145, 120, 141, 108, 122, 112, 121, 128, 131, 133, 125, 119, 126, 123, 110, 129, 121, 101, 112, 117, 123, 121, 151, 127, 134, 137, 125, 114, 111, 128, 102, 105, 119, 130, 116, 115, 133, 108, 130, 152, 131, 129, 119, 114, 124, 123, 131, 125, 146, 128, 134, 133, 120, 125, 130, 126, 122, 117, 123, 124, 136, 126, 115, 118, 145, 115, 133, 142, 118, 133, 128, 144, 148, 134, 122, 134, 118, 117, 135, 121, 117, 125, 125, 116, 141, 122, 142, 127, 118, 101, 119, 115, 135, 130, 136, 134, 94, 126, 127, 142, 136, 135, 121, 123, 110, 132, 122, 115, 130, 127, 123, 108, 112, 121, 111, 152, 125, 111, 124, 144, 119, 124, 140, 123, 139, 126, 120, 131, 124, 139, 97, 130, 132, 128, 144, 128, 127, 106, 115, 139, 127, 126, 120, 121, 102, 147, 117, 121, 131, 119, 128, 122, 118, 125, 129, 119, 96, 133, 136, 104, 117, 119, 123, 111, 114, 128, 126, 112, 143, 117, 122, 121, 135, 122, 130, 120, 129, 121, 129, 144, 128, 154, 128, 127, 121, 103, 138, 136, 139, 116, 106, 126, 135, 143, 123, 124, 120, 119, 113, 136, 107, 103, 131, 117, 115, 120, 121, 134, 128, 126, 142, 106, 140, 134, 126, 121, 122, 113, 124, 116, 92, 141, 118, 130, 128, 142, 120, 130, 150, 125, 108, 123, 123, 112, 139, 131, 124, 153, 130, 109, 133, 139, 124, 129, 113, 115, 125, 116, 116, 126, 133, 118, 102, 139, 141, 129, 140, 113, 115, 118, 126, 122, 119, 157, 122, 138, 119, 126, 135, 116, 113, 126, 123, 128, 106, 112, 120, 150, 118, 132, 122, 122, 144, 126, 111, 108, 113, 104, 135, 106, 116, 130, 133, 130, 134, 121, 130, 128, 117, 130, 143, 137, 140, 133, 134, 122, 138, 122, 120, 127, 120, 129, 128, 126, 119, 139, 127, 137, 151, 137, 127, 121, 110, 134, 115, 126, 135, 133, 114, 125, 128, 138, 138, 125, 126, 127, 114, 133, 101, 132, 120, 117, 136, 112, 140, 123, 139, 114, 120, 121, 125, 124, 131, 127, 121, 129, 110, 131, 119, 120, 139, 126, 133, 124, 135, 134, 123, 127, 103, 121, 141, 117, 125, 133, 124, 129, 126, 135, 125, 119, 120, 117, 99, 128, 113, 116, 139, 141, 138, 126, 121, 128, 126, 125, 147, 143, 137, 129, 114, 123, 128, 127, 122, 109, 130, 137, 132, 118, 119, 100, 119, 150, 139, 100, 116, 130, 127, 133, 142, 141, 116, 134, 136, 142, 132, 130, 122, 116, 129, 138, 116, 111, 124, 140, 131, 129, 126, 129, 124, 122, 122, 120, 136, 124, 122, 124, 119, 121, 125, 125, 115, 123, 131, 133, 120, 111, 129, 119, 121, 136, 134, 139, 111, 152, 123, 154, 125, 126, 126, 107, 130, 139, 106, 120, 139, 111, 118, 128, 133, 126, 116, 132, 109, 134, 138, 125, 122, 125, 118, 124, 138, 132, 124, 125, 130, 115, 121, 113, 128, 124, 116, 120, 134, 117, 122, 131, 126, 128, 112, 124, 135, 122, 119, 129, 127, 125, 123, 109, 136, 121, 113, 116, 122, 125, 124, 118, 108, 127, 128, 114, 143, 131, 128, 122, 134, 119, 109, 122, 132, 120, 129, 128, 137, 119, 134, 113, 131, 147, 123, 107, 130, 117, 120, 141, 133, 130, 122, 117, 136, 128, 131, 134, 124, 121, 124, 136, 116, 132, 112, 138, 138, 140, 121, 117, 111, 137, 138, 139, 115, 134, 124, 152, 128, 116, 142, 132, 113, 105, 141, 130, 133, 134, 123, 129, 122, 110, 119, 121, 119, 106, 130, 123, 125, 108, 131, 99, 142, 144, 117, 130, 134, 118, 129, 126, 127, 135, 117, 115, 112, 129, 126, 139, 101, 112, 131, 121, 119, 114, 116, 136, 109, 119, 137, 118, 126, 128, 108, 134, 118, 116, 132, 109, 117, 123, 138, 110, 132, 110, 105, 123, 121, 113, 131, 127, 117, 127, 124, 129, 132, 125, 121, 115, 141, 127, 121, 119, 125, 126, 123, 150, 139, 113, 124, 122, 120, 112, 134, 130, 107, 114, 141, 130, 118, 134, 138, 112, 112, 110, 131, 137, 155, 134, 111, 125, 121, 133, 121, 134, 133, 149, 133, 120, 114, 119, 130, 121, 122, 130, 130, 127, 128, 115, 135, 126, 117, 123, 129, 124, 144, 128, 131, 121, 110, 119, 130, 116, 136, 127, 121, 125, 128, 132, 130, 142, 132, 125, 113, 128, 116, 107, 127, 110, 146, 147, 123, 116, 123, 137, 129, 128, 129, 132, 116, 134, 118, 126, 110, 106, 130, 145, 113, 143, 125, 120, 134, 123, 117, 122, 129, 121, 108, 123, 143, 115, 119, 124, 132, 128, 127, 135, 112, 141, 137, 102, 126, 120, 123, 122, 120, 116, 116, 121, 126, 110, 129, 104, 111, 135, 116, 141, 131, 111, 138, 124, 131, 141, 126, 130, 134, 142, 126, 113, 111, 138, 131, 135, 129, 127, 106, 136, 136, 127, 120, 131, 143, 112, 115, 111, 114, 118, 134, 139, 123, 119, 124, 142, 119, 109, 121, 124, 133, 127, 120, 143, 121, 132, 123, 119, 144, 126, 110, 134, 131, 131, 138, 119, 116, 133, 124, 144, 118, 122, 130, 151, 140, 105, 122, 143, 144, 130, 137, 130, 118, 127, 124, 132, 121, 117, 126, 121, 107, 131, 120, 113, 123, 143, 120, 101, 118, 127, 129, 126, 134, 114, 125, 115, 121, 142, 126, 115, 94, 111, 124, 124, 136, 139, 115, 130, 124, 137, 117, 138, 139, 113, 116, 138, 144, 114, 114, 126, 127, 122, 119, 133, 130, 141, 126, 119, 112, 131, 130, 131, 113, 138, 130, 117, 116, 119, 116, 141, 111, 119, 134, 107, 136, 120, 122, 113, 126, 139, 126, 126, 119, 127, 157, 126, 120, 131, 125, 138, 120, 114, 139, 125, 122, 120, 108, 140, 109, 110, 138, 122, 139, 116, 118, 126, 148, 121, 98, 118, 116, 127, 128, 117, 103, 138, 124, 120, 107, 134, 111, 118, 136, 125, 133, 138, 131, 135, 121, 133, 130, 120, 105, 109, 119, 110, 133, 112, 124, 145, 115, 140, 141, 128, 135, 133, 113, 125, 147, 113, 141, 110, 117, 135, 126, 117, 126, 124, 125, 149, 160, 117, 116, 115, 140, 106, 132, 127, 129, 135, 122, 132, 125, 123, 119, 124, 125, 133, 125, 128, 137, 110, 133, 139, 142, 105, 129, 125, 133, 119, 121, 130, 113, 120, 150, 143, 115, 107, 127, 122, 117, 134, 109, 142, 116, 125, 121, 125, 142, 140, 132, 124, 123, 128, 115, 121, 130, 115, 120, 116, 140, 124, 122, 129, 141, 119, 130, 127, 117, 135, 128, 125, 130, 114, 130, 148, 134, 128, 114, 124, 132, 146, 150, 123, 142, 143, 125, 127, 119, 133, 105, 129, 113, 107, 123, 137, 126, 123, 125, 129, 130, 122, 124, 118, 131, 131, 119, 126, 121, 116, 101, 127, 130, 118, 121, 112, 127, 114, 144, 116, 121, 124, 123, 124, 111, 111, 130, 128, 125, 108, 145, 124, 121, 127, 130, 130, 129, 123, 104, 125, 127, 112, 136, 122, 111, 122, 129, 145, 119, 125, 121, 123, 127, 139, 132, 120, 116, 125, 121, 135, 141, 134, 144, 128, 142, 135, 130, 126, 125, 110, 123, 124, 120, 132, 125, 128, 124, 115, 117, 125, 123, 115, 121, 117, 120, 125, 129, 121, 134, 132, 139, 130, 120, 133, 138, 139, 126, 130, 119, 126, 133, 123, 104, 137, 142, 115, 126, 103, 115, 108, 121, 115, 116, 103, 130, 125, 106, 133, 116, 146, 130, 121, 117, 132, 114, 115, 122, 129, 124, 124, 129, 119, 128, 128, 139, 115, 127, 129, 113, 132, 125, 126, 128, 133, 134, 136, 157, 139, 144, 142, 118, 139, 146, 123, 117, 121, 150, 124, 130, 133, 125, 119, 140, 128, 116, 134, 130, 130, 130, 122, 117, 123, 111, 108, 132, 118, 134, 132, 119, 112, 136, 132, 138, 131, 134, 131, 120, 117, 155, 126, 140, 129, 137, 104, 125, 136, 118, 112, 112, 114, 138, 116, 135, 121, 135, 127, 142, 122, 107, 124, 140, 99, 131, 129, 113, 119, 133, 113, 122, 117, 140, 131, 124, 132, 146, 119, 110, 129, 130, 111, 135, 123, 129, 123, 122, 115, 111, 120, 125, 148, 151, 108, 118, 131, 128, 129, 125, 120, 111, 141, 105, 115, 131, 116, 130, 139, 122, 126, 132, 115, 118, 125, 132, 126, 121, 123, 120, 142, 148, 117, 124, 108, 110, 125, 123, 126, 139, 102, 111, 117, 126, 129, 134, 107, 119, 139, 130, 123, 116, 131, 118, 117, 118, 132, 116, 137, 133, 137, 116, 123, 136, 139, 122, 130, 136, 119, 131, 119, 123, 127, 136, 129, 114, 140, 123, 136, 154, 128, 114, 107, 132, 132, 119, 133, 125, 120, 113, 119, 111, 121, 120, 132, 124, 115, 103, 133, 110, 127, 114, 114, 128, 119, 108, 101, 115, 133, 112, 120, 110, 113, 130, 120, 131, 135, 126, 130, 126, 123, 112, 130, 128, 120, 138, 133, 121, 140, 138, 141, 127, 107, 129, 87, 114, 118, 119, 133, 124, 120, 108, 117, 117, 148, 123, 128, 136, 135, 126, 104, 116, 118, 131, 117, 141, 112, 126, 120, 135, 114, 101, 138, 122, 115, 133, 114, 121, 115, 110, 120, 124, 113, 154, 116, 133, 119, 132, 131, 135, 132, 130, 131, 140, 120, 128, 123, 123, 127, 136, 126, 124, 124, 95, 133, 150, 135, 130, 124, 136, 124, 113, 147, 113, 123, 107, 122, 107, 107, 118, 136, 121, 134, 127, 122, 122, 120, 117, 132, 133, 115, 114, 117, 126, 113, 112, 104, 125, 131, 125, 147, 122, 138, 133, 109, 102, 120, 119, 134, 120, 119, 126, 126, 115, 130, 127, 145, 112, 120, 118, 117, 136, 136, 140, 119, 122, 133, 134, 128, 126, 130, 128, 101, 117, 136, 124, 119, 138, 113, 126, 101, 127, 126, 116, 130, 124, 130, 122, 122, 110, 138, 132, 111, 120, 145, 140, 143, 140, 142, 129, 126, 135, 137, 108, 143, 151, 126, 138, 116, 133, 103, 117, 123, 138, 124, 135, 143, 106, 122, 107, 117, 126, 122, 126, 147, 121, 129, 115, 139, 124, 136, 138, 142, 110, 136, 137, 121, 126, 129, 101, 122, 109, 114, 121, 113, 134, 128, 125, 136, 132, 129, 119, 124, 129, 117, 139, 127, 122, 118, 143, 122, 113, 138, 118, 136, 133, 121, 127, 167, 116, 112, 135, 136, 126, 121, 118, 117, 120, 139, 133, 129, 111, 105, 119, 112, 136, 122, 128, 127, 117, 114, 124, 134, 96, 120, 129, 125, 117, 108, 118, 118, 136, 124, 123, 131, 135, 129, 139, 119, 123, 154, 144, 129, 121, 118, 119, 120, 117, 118, 126, 123, 136, 123, 127, 121, 128, 142, 129, 123, 130, 116, 112, 122, 130, 121, 136, 126, 125, 135, 134, 135, 134, 122, 140, 125, 125, 122, 125, 145, 101, 121, 125, 123, 134, 107, 120, 114, 148, 135, 124, 124, 99, 121, 130, 123, 131, 119, 125, 138, 123, 119, 124, 117, 137, 142, 117, 112, 118, 129, 127, 114, 138, 130, 142, 125, 115, 116, 135, 119, 125, 110, 116, 122, 123, 129, 142, 114, 135, 129, 117, 153, 135, 128, 140, 124, 120, 129, 143, 110, 113, 119, 105, 111, 120, 99, 120, 107, 150, 120, 134, 116, 115, 123, 117, 117, 141, 136, 121, 129, 126, 104, 131, 131, 129, 128, 136, 130, 110, 120, 123, 120, 122, 140, 116, 123, 132, 137, 125, 125, 118, 114, 109, 133, 120, 116, 104, 124, 125, 130, 127, 119, 125, 118, 99, 131, 125, 115, 89, 138, 134, 118, 121, 111, 120, 115, 120, 130, 124, 113, 120, 120, 135, 117, 145, 118, 130, 125, 116, 135, 120, 144, 138, 122, 125, 132, 120, 116, 119, 116, 119, 149, 129, 146, 126, 132, 130, 114, 135, 127, 132, 108, 137, 125, 139, 128, 115, 135, 112, 131, 117, 126, 122, 128, 145, 131, 131, 126, 123, 122, 121, 109, 134, 121, 123, 116, 134, 138, 109, 108, 136, 106, 131, 132, 108, 114, 125, 135, 108, 147, 117, 110, 131, 129, 122, 123, 123, 125, 137, 114, 127, 104, 123, 115, 154, 125, 130, 113, 116, 119, 142, 127, 129, 132, 141, 103, 121, 122, 124, 133, 119, 135, 131, 152, 123, 125, 144, 125, 147, 122, 132, 127, 127, 126, 126, 120, 115, 132, 128, 100, 126, 120, 110, 119, 122, 120, 104, 128, 126, 109, 129, 133, 102, 127, 134, 130, 127, 110, 108, 117, 126, 131, 126, 112, 113, 123, 100, 105, 124, 120, 119, 113, 114, 110, 127, 114, 123, 117, 133, 118, 119, 111, 127, 116, 122, 128, 123, 134, 128, 113, 130, 119, 131, 132, 125, 136, 133, 137, 123, 116, 124, 141, 120, 141, 127, 128, 99, 148, 110, 140, 135, 141, 113, 137, 133, 121, 128, 127, 126, 127, 135, 131, 111, 129, 140, 147, 120, 102, 130, 127, 129, 120, 139, 122, 124, 108, 145, 137, 111, 124, 112, 118, 125, 121, 111, 115, 127, 100, 143, 121, 129, 118, 114, 128, 138, 113, 128, 134, 130, 120, 124, 131, 120, 150, 120, 117, 113, 127, 117, 127, 119, 129, 124, 119, 127, 129, 118, 129, 130, 109, 133, 124, 132, 116, 117, 126, 118, 106, 142, 139, 127, 115, 125, 125, 118, 118, 120, 133, 128, 128, 128, 114, 125, 137, 118, 134, 135, 129, 126, 134, 128, 120, 134, 135, 139, 128, 127, 103, 113, 129, 138, 142, 132, 128, 133, 125, 136, 117, 125, 125, 133, 127, 123, 126, 127, 128, 116, 123, 115, 118, 104, 129, 130, 122, 122, 110, 132, 75, 120, 119, 116, 103, 130, 135, 127, 113, 124, 117, 115, 124, 128, 138, 134, 122, 135, 125, 118, 116, 120, 124, 133, 126, 138, 127, 121, 125, 117, 113, 115, 118, 124, 145, 138, 128, 111, 137, 128, 118, 138, 109, 127, 145, 135, 93, 103, 123, 122, 135, 129, 141, 126, 130, 132, 128, 124, 117, 119, 128, 113, 128, 126, 123, 138, 118, 126, 132, 113, 118, 111, 131, 115, 131, 127, 115, 114, 124, 128, 117, 133, 107, 137, 104, 127, 110, 116, 135, 132, 135, 113, 137, 131, 126, 117, 135, 139, 131, 126, 112, 138, 125, 141, 130, 98, 122, 130, 120, 99, 163, 127, 127, 111, 112, 133, 123, 117, 109, 127, 129, 114, 129, 148, 126, 118, 124, 114, 126, 120, 127, 137, 125, 113, 127, 132, 128, 142, 121, 118, 145, 115, 122, 124, 106, 113, 114, 145, 124, 136, 128, 115, 132, 138, 115, 107, 146, 139, 126, 122, 119, 139, 135, 130, 116, 130, 118, 144, 128, 112, 128, 157, 139, 127, 118, 119, 114, 126, 122, 104, 117, 117, 100, 134, 147, 146, 120, 123, 122, 138, 131, 94, 125, 107, 131, 140, 137, 115, 115, 124, 119, 129, 116, 120, 134, 130, 131, 120, 111, 117, 110, 127, 120, 137, 122, 110, 119, 120, 137, 121, 143, 143, 109, 128, 132, 129, 121, 113, 121, 134, 117, 133, 121, 126, 121, 118, 115, 115, 119, 124, 121, 104, 131, 135, 114, 126, 119, 111, 128, 127, 122, 130, 116, 140, 118, 131, 144, 126, 137, 134, 113, 123, 135, 119, 121, 133, 147, 118, 122, 119, 128, 121, 122, 133, 123, 111, 122, 116, 112, 116, 133, 135, 124, 124, 128, 131, 108, 114, 129, 122, 124, 141, 127, 139, 105, 105, 134, 134, 112, 126, 116, 138, 126, 127, 131, 131, 118, 129, 123, 125, 130, 131, 130, 109, 124, 122, 134, 147, 113, 111, 139, 145, 121, 136, 125, 138, 134, 131, 121, 125, 123, 133, 122, 135, 117, 128, 127, 117, 120, 130, 170, 126, 137, 131, 128, 124, 136, 113, 135, 118, 122, 141, 125, 122, 108, 140, 138, 100, 127, 116, 122, 133, 144, 124, 130, 138, 110, 139, 121, 138, 118, 130, 128, 119, 146, 119, 119, 122, 130, 123, 131, 125, 129, 133, 130, 128, 128, 118, 137, 128, 135, 127, 132, 116, 126, 130, 117, 118, 110, 125, 137, 146, 119, 125, 125, 143, 128, 115, 124, 135, 129, 125, 107, 135, 134, 113, 124, 121, 132, 127, 120, 130, 134, 128, 117, 139, 128, 133, 131, 124, 112, 114, 110, 112, 135, 112, 105, 137, 122, 126, 124, 120, 121, 131, 139, 116, 137, 118, 116, 121, 122, 122, 120, 133, 115, 120, 112, 131, 122, 122, 125, 128, 110, 126, 132, 103, 116, 108, 120, 130, 135, 125, 116, 128, 122, 123, 117, 123, 124, 123, 131, 116, 119, 122, 132, 137, 123, 142, 124, 136, 131, 108, 128, 106, 127, 135, 123, 130, 109, 125, 111, 133, 135, 121, 122, 117, 115, 114, 129, 129, 122, 143, 125, 113, 123, 125, 130, 126, 124, 132, 118, 120, 144, 141, 119, 120, 103, 138, 130, 120, 141, 139, 107, 122, 109, 126, 133, 114, 119, 132, 150, 125, 125, 132, 129, 121, 114, 141, 130, 137, 121, 123, 122, 133, 121, 126, 124, 142, 126, 126, 108, 134, 129, 131, 132, 123, 120, 128, 113, 122, 134, 114, 114, 117, 97, 119, 124, 133, 127, 118, 126, 133, 105, 116, 129, 114, 117, 138, 126, 125, 140, 137, 121, 127, 113, 131, 126, 131, 122, 124, 121, 126, 109, 124, 120, 126, 126, 133, 128, 131, 114, 122, 125, 139, 125, 135, 140, 123, 120, 147, 114, 130, 120, 128, 131, 119, 146, 125, 128, 127, 122, 126, 130, 119, 132, 130, 122, 124, 129, 128, 100, 117, 116, 136, 128, 123, 113, 116, 124, 144, 112, 124, 111, 131, 131, 120, 130, 122, 128, 138, 105, 118, 133, 121, 116, 143, 134, 142, 116, 116, 123, 147, 115, 109, 118, 126, 129, 121, 124, 113, 112, 132, 124, 126, 124, 132, 139, 107, 126, 125, 146, 125, 113, 134, 114, 108, 112, 129, 121, 121, 123, 133, 113, 123, 141, 122, 132, 119, 126, 126, 115, 116, 124, 126, 137, 118, 120, 133, 132, 128, 140, 123, 122, 136, 125, 133, 132, 119, 126, 118, 126, 139, 110, 128, 124, 121, 101, 127, 135, 139, 131, 131, 119, 123, 121, 126, 130, 123, 112, 150, 124, 116, 132, 162, 130, 125, 137, 103, 107, 118, 132, 123, 119, 112, 138, 141, 123, 117, 117, 120, 141, 135, 128, 125, 136, 125, 138, 118, 130, 114, 135, 148, 118, 125, 125, 136, 138, 125, 131, 133, 122, 144, 132, 121, 124, 116, 120, 118, 145, 128, 143, 115, 117, 119, 127, 123, 109, 129, 115, 107, 121, 142, 127, 134, 142, 129, 127, 117, 135, 114, 128, 118, 124, 118, 119, 120, 121, 125, 122, 127, 130, 128, 122, 111, 141, 125, 126, 125, 119, 130, 122, 138, 131, 114, 110, 143, 133, 106, 134, 122, 126, 127, 139, 131, 138, 137, 131, 118, 117, 123, 122, 121, 119, 136, 134, 126, 125, 136, 129, 118, 125, 120, 122, 145, 126, 119, 121, 119, 131, 130, 133, 100, 131, 114, 128, 119, 122, 110, 121, 123, 126, 120, 128, 120, 127, 124, 129, 128, 124, 152, 112, 118, 127, 124, 141, 141, 131, 126, 113, 126, 137, 120, 103, 122, 133, 116, 116, 127, 120, 128, 121, 108, 124, 129, 132, 114, 140, 123, 131, 114, 120, 130, 117, 145, 136, 114, 131, 130, 110, 124, 112, 144, 128, 114, 117, 127, 125, 124, 127, 125, 131, 126, 109, 124, 110, 127, 125, 140, 130, 140, 119, 121, 128, 120, 123, 121, 136, 129, 126, 136, 120, 144, 127, 134, 135, 145, 129, 135, 121, 126, 147, 136, 150, 128, 121, 109, 118, 124, 130, 121, 116, 133, 117, 114, 155, 129, 120, 127, 125, 124, 131, 135, 131, 141, 131, 117, 113, 126, 136, 129, 122, 114, 149, 109, 119, 133, 132, 122, 142, 141, 132, 125, 113, 145, 127, 122, 125, 126, 137, 119, 114, 122, 128, 121, 127, 127, 116, 113, 133, 132, 121, 144, 111, 119, 129, 127, 131, 122, 138, 130, 129, 115, 127, 137, 121, 116, 101, 104, 137, 113, 127, 131, 109, 135, 133, 122, 129, 130, 131, 124, 130, 135, 129, 117, 128, 123, 119, 128, 115, 130, 118, 115, 122, 133, 130, 115, 117, 126, 119, 135, 122, 142, 110, 124, 117, 131, 121, 130, 140, 134, 136, 127, 135, 120, 131, 116, 118, 121, 128, 121, 115, 121, 120, 137, 109, 121, 120, 108, 122, 124, 134, 137, 137, 129, 137, 124, 101, 132, 110, 128, 133, 129, 139, 140, 123, 122, 126, 114, 126, 134, 139, 133, 134, 147, 134, 120, 115, 122, 109, 136, 119, 129, 133, 118, 146, 109, 132, 133, 132, 105, 145, 112, 129, 129, 131, 121, 119, 127, 125, 140, 116, 138, 131, 127, 128, 125, 126, 117, 141, 97, 124, 111, 126, 128, 133, 135, 120, 111, 151, 116, 137, 107, 117, 124, 122, 121, 133, 127, 132, 108, 119, 127, 131, 125, 126, 128, 98, 141, 132, 133, 131, 106, 122, 134, 149, 126, 118, 120, 138, 126, 123, 118, 137, 128, 121, 128, 116, 114, 134, 125, 123, 123, 107, 128, 125, 116, 120, 127, 116, 128, 114, 124, 110, 112, 135, 138, 127, 100, 117, 114, 127, 131, 134, 114, 122, 116, 137, 128, 124, 132, 112, 121, 144, 118, 138, 115, 132, 135, 130, 133, 122, 147, 133, 126, 127, 151, 124, 122, 135, 110, 110, 107, 122, 138, 122, 134, 135, 119, 136, 123, 129, 135, 118, 121, 135, 117, 105, 130, 122, 113, 119, 121, 110, 130, 120, 143, 148, 123, 125, 125, 121, 118, 123, 134, 128, 129, 138, 124, 126, 118, 125, 145, 122, 133, 113, 140, 128, 115, 122, 114, 127, 133, 109, 132, 120, 137, 123, 109, 133, 121, 126, 120, 143, 124, 120, 131, 123, 127, 134, 131, 121, 127, 132, 124, 118, 122, 116, 124, 118, 126, 115, 123, 119, 133, 137, 121, 121, 134, 123, 124, 124, 124, 127, 111, 130, 139, 133, 113, 121, 109, 131, 134, 126, 119, 107, 118, 104, 132, 133, 124, 109, 129, 133, 121, 125, 128, 98, 116, 135, 126, 109, 137, 131, 126, 126, 145, 119, 138, 126, 126, 121, 128, 120, 121, 132, 122, 119, 116, 119, 106, 135, 138, 129, 122, 127, 130, 116, 127, 115, 120, 118, 130, 100, 123, 136, 123, 107, 115, 119, 115, 143, 129, 117, 115, 123, 133, 146, 112, 129, 155, 149, 138, 137, 119, 130, 130, 143, 126, 135, 124, 136, 104, 129, 125, 117, 122, 135, 144, 117, 116, 117, 135, 128, 131, 131, 120, 130, 129, 124, 123, 121, 125, 135, 108, 144, 133, 124, 125, 132, 126, 138, 134, 126, 118, 126, 119, 131, 116, 123, 134, 132, 117, 126, 106, 135, 120, 142, 134, 142, 122, 132, 131, 125, 128, 115, 130, 110, 112, 136, 119, 137, 130, 106, 130, 91, 137, 134, 110, 130, 134, 127, 128, 129, 136, 133, 111, 121, 120, 116, 103, 122, 125, 135, 127, 137, 131, 122, 128, 132, 113, 139, 135, 135, 134, 101, 119, 130, 119, 139, 111, 121, 115, 106, 133, 134, 118, 144, 144, 133, 135, 138, 131, 118, 131, 105, 101, 115, 133, 134, 118, 114, 138, 123, 121, 146, 113, 141, 138, 148, 122, 117, 129, 113, 134, 132, 110, 116, 143, 126, 118, 121, 129, 132, 134, 135, 119, 101, 120, 117, 128, 132, 123, 137, 123, 131, 124, 135, 122, 118, 127, 122, 100, 145, 120, 126, 126, 110, 122, 121, 125, 126, 134, 159, 142, 140, 137, 135, 125, 128, 125, 128, 112, 136, 121, 128, 125, 134, 131, 125, 133, 117, 133, 136, 131, 122, 118, 125, 124, 137, 122, 118, 124, 120, 126, 110, 102, 126, 122, 122, 131, 145, 127, 127, 133, 121, 126, 119, 131, 141, 124, 124, 114, 124, 129, 126, 154, 136, 130, 125, 133, 123, 142, 154, 121, 110, 104, 138, 117, 119, 119, 134, 132, 113, 111, 122, 111, 132, 125, 151, 124, 113, 130, 119, 118, 139, 118, 124, 125, 109, 117, 146, 155, 122, 113, 116, 131, 131, 114, 131, 120, 124, 122, 119, 108, 107, 120, 126, 114, 125, 101, 133, 119, 125, 126, 139, 114, 115, 129, 140, 119, 122, 132, 125, 117, 130, 131, 132, 138, 120, 119, 130, 119, 120, 121, 125, 130, 114, 132, 111, 127, 130, 117, 121, 129, 125, 123, 124, 156, 125, 121, 129, 114, 117, 126, 123, 146, 122, 119, 126, 108, 130, 110, 111, 144, 120, 122, 122, 131, 109, 111, 113, 120, 143, 120, 135, 133, 129, 120, 129, 126, 119, 137, 138, 134, 126, 150, 112, 102, 145, 129, 123, 137, 122, 133, 125, 136, 124, 137, 145, 148, 142, 115, 110, 114, 127, 133, 115, 137, 125, 118, 118, 114, 131, 117, 130, 133, 99, 113, 106, 123, 124, 134, 137, 127, 103, 128, 114, 130, 119, 118, 131, 119, 117, 115, 145, 126, 125, 122, 144, 129, 138, 123, 130, 131, 131, 118, 109, 125, 122, 119, 134, 127, 102, 122, 119, 143, 131, 132, 110, 138, 123, 127, 110, 130, 114, 141, 133, 123, 123, 109, 152, 121, 134, 125, 111, 124, 130, 122, 125, 131, 121, 120, 124, 114, 139, 140, 118, 132, 113, 131, 143, 140, 113, 128, 126, 123, 126, 156, 123, 122, 142, 123, 125, 119, 116, 129, 138, 125, 119, 136, 126, 147, 112, 115, 118, 129, 120, 128, 131, 103, 118, 137, 132, 131, 107, 131, 123, 137, 118, 135, 137, 114, 133, 138, 120, 123, 117, 75, 137, 130, 123, 137, 120, 118, 122, 137, 122, 118, 127, 114, 123, 142, 125, 129, 124, 104, 121, 131, 117, 103, 120, 136, 137, 120, 117, 124, 129, 121, 122, 110, 119, 143, 132, 117, 130, 133, 129, 121, 157, 135, 110, 132, 127, 122, 123, 129, 128, 127, 154, 132, 124, 145, 117, 119, 122, 135, 113, 135, 115, 122, 122, 112, 109, 105, 114, 123, 157, 125, 110, 107, 138, 138, 119, 124, 135, 112, 122, 127, 126, 113, 128, 129, 129, 133, 134, 117, 138, 125, 117, 125, 114, 128, 139, 118, 130, 124, 143, 121, 131, 125, 123, 111, 143, 132, 129, 136, 127, 109, 107, 116, 154, 132, 119, 124, 131, 112, 132, 107, 128, 123, 122, 133, 124, 125, 130, 126, 138, 124, 128, 118, 99, 128, 105, 120, 113, 125, 128, 129, 121, 115, 120, 121, 144, 118, 131, 142, 113, 114, 95, 142, 115, 107, 123, 125, 148, 117, 116, 129, 115, 119, 119, 106, 111, 129, 131, 132, 138, 119, 128, 125, 109, 119, 130, 131, 134, 110, 118, 123, 109, 117, 160, 143, 117, 117, 117, 120, 114, 130, 127, 137, 130, 136, 112, 116, 149, 147, 128, 124, 115, 145, 105, 124, 136, 141, 146, 120, 114, 120, 143, 118, 124, 118, 120, 123, 105, 114, 128, 124, 135, 137, 104, 125, 124, 130, 123, 135, 120, 121, 140, 137, 142, 118, 138, 104, 102, 111, 123, 129, 132, 134, 130, 118, 131, 127, 139, 144, 139, 115, 144, 124, 131, 127, 140, 127, 109, 118, 132, 141, 120, 119, 125, 144, 136, 138, 125, 130, 122, 117, 129, 114, 121, 128, 122, 123, 110, 142, 128, 126, 129, 131, 125, 123, 128, 130, 108, 120, 131, 122, 123, 118, 123, 138, 128, 117, 126, 122, 136, 120, 112, 113, 126, 114, 96, 144, 135, 134, 123, 123, 113, 123, 127, 126, 123, 140, 148, 130, 143, 128, 126, 107, 121, 128, 99, 123, 133, 139, 126, 135, 117, 135, 118, 142, 129, 111, 129, 142, 135, 121, 137, 115, 129, 123, 109, 116, 111, 142, 118, 118, 131, 126, 134, 132, 105, 131, 111, 114, 104, 144, 104, 148, 115, 144, 124, 140, 133, 130, 125, 138, 144, 120, 122, 128, 114, 148, 122, 117, 128, 150, 133, 134, 123, 134, 123, 124, 112, 113, 126, 124, 122, 116, 118, 115, 120, 135, 118, 118, 105, 126, 146, 123, 112, 136, 123, 128, 126, 139, 115, 131, 113, 128, 123, 119, 124, 123, 139, 139, 123, 116, 115, 128, 122, 134, 137, 110, 131, 102, 112, 130, 152, 114, 129, 120, 118, 136, 141, 139, 121, 144, 131, 107, 126, 118, 140, 120, 115, 125, 126, 104, 137, 132, 118, 138, 135, 105, 126, 146, 111, 121, 135, 127, 126, 130, 108, 119, 115, 118, 125, 130, 136, 128, 103, 112, 136, 132, 103, 122, 120, 107, 112, 110, 133, 138, 127, 139, 116, 131, 140, 115, 125, 142, 130, 126, 127, 101, 111, 131, 108, 110, 123, 121, 137, 129, 132, 130, 128, 106, 125, 131, 133, 110, 138, 147, 132, 139, 121, 127, 141, 125, 133, 113, 127, 130, 101, 105, 115, 136, 118, 161, 137, 114, 122, 119, 118, 124, 131, 116, 121, 152, 117, 125, 116, 111, 123, 117, 135, 139, 128, 111, 119, 138, 127, 137, 129, 121, 125, 139, 129, 118, 131, 120, 117, 103, 119, 120, 114, 131, 134, 126, 128, 129, 127, 132, 138, 125, 120, 137, 120, 116, 81, 136, 110, 133, 105, 130, 134, 135, 111, 136, 124, 130, 118, 116, 107, 123, 124, 120, 122, 140, 134, 107, 103, 121, 127, 141, 105, 129, 119, 123, 128, 116, 120, 122, 129, 120, 125, 131, 113, 133, 123, 116, 112, 113, 147, 107, 114, 140, 113, 122, 123, 130, 130, 130, 141, 127, 124, 112, 126, 141, 119, 122, 126, 126, 120, 118, 147, 138, 124, 119, 133, 111, 119, 140, 124, 126, 114, 130, 112, 143, 136, 132, 119, 120, 133, 129, 127, 126, 118, 110, 146, 136, 131, 112, 148, 142, 110, 107, 124, 116, 141, 118, 120, 127, 109, 127, 133, 128, 113, 119, 118, 127, 145, 118, 115, 147, 114, 145, 137, 135, 117, 140, 114, 120, 117, 118, 124, 119, 146, 130, 136, 127, 134, 114, 112, 118, 100, 116, 124, 119, 143, 141, 148, 122, 122, 127, 140, 132, 129, 135, 116, 111, 112, 121, 139, 126, 131, 124, 131, 129, 126, 115, 153, 134, 122, 115, 113, 130, 129, 114, 132, 116, 116, 113, 134, 116, 121, 122, 130, 113, 127, 122, 126, 115, 120, 124, 135, 136, 117, 146, 135, 125, 116, 129, 131, 117, 142, 108, 134, 111, 110, 127, 138, 119, 132, 117, 129, 123, 133, 126, 125, 131, 120, 133, 131, 129, 141, 121, 122, 127, 127, 142, 122, 108, 131, 134, 111, 93, 107, 125, 132, 104, 134, 128, 150, 113, 123, 121, 105, 127, 117, 119, 146, 118, 126, 124, 125, 120, 121, 139, 123, 114, 129, 133, 118, 117, 120, 114, 114, 139, 142, 119, 116, 129, 107, 119, 117, 110, 129, 113, 120, 120, 130, 110, 138, 124, 120, 122, 108, 149, 134, 122, 122, 120, 122, 120, 128, 129, 135, 132, 133, 118, 116, 116, 122, 142, 128, 139, 111, 125, 121, 142, 126, 113, 127, 110, 134, 114, 115, 121, 150, 142, 132, 115, 112, 129, 129, 147, 137, 111, 145, 130, 113, 125, 136, 136, 125, 124, 143, 126, 128, 124, 122, 122, 123, 108, 122, 120, 121, 101, 133, 98, 116, 132, 117, 155, 115, 130, 137, 126, 107, 135, 114, 125, 119, 123, 121, 112, 126, 128, 126, 127, 124, 125, 128, 129, 118, 127, 142, 124, 121, 133, 120, 144, 127, 116, 124, 125, 137, 142, 107, 127, 123, 126, 118, 119, 112, 125, 127, 137, 117, 121, 150, 123, 150, 125, 130, 110, 117, 117, 126, 106, 116, 127, 128, 122, 132, 117, 141, 117, 121, 113, 143, 116, 124, 130, 139, 119, 127, 124, 118, 136, 126, 110, 125, 122, 109, 122, 127, 149, 115, 135, 131, 133, 140, 131, 119, 135, 127, 107, 134, 119, 133, 132, 133, 125, 120, 133, 126, 122, 113, 131, 128, 125, 100, 124, 123, 111, 128, 119, 122, 121, 127, 117, 136, 128, 130, 111, 139, 117, 122, 124, 128, 131, 130, 124, 124, 116, 123, 135, 141, 114, 117, 127, 108, 124, 133, 113, 134, 121, 102, 136, 129, 128, 128, 101, 124, 127, 122, 127, 116, 138, 129, 102, 120, 111, 141, 133, 120, 122, 120, 120, 122, 120, 138, 124, 117, 120, 131, 120, 134, 116, 138, 143, 119, 126, 118, 123, 115, 114, 134, 128, 139, 102, 114, 139, 119, 129, 119, 115, 115, 130, 110, 124, 120, 124, 146, 123, 126, 120, 119, 98, 127, 138, 127, 120, 143, 120, 108, 122, 118, 118, 118, 108, 120, 126, 135, 123, 134, 125, 126, 113, 124, 140, 126, 124, 142, 119, 135, 131, 126, 118, 117, 117, 118, 136, 119, 137, 137, 109, 133, 120, 115, 126, 114, 127, 144, 127, 122, 128, 94, 136, 128, 137, 145, 136, 134, 135, 137, 120, 129, 109, 119, 115, 127, 109, 127, 130, 121, 121, 135, 114, 138, 123, 145, 135, 107, 125, 136, 117, 118, 151, 116, 119, 115, 140, 126, 120, 124, 115, 116, 127, 134, 127, 129, 131, 125, 112, 125, 124, 119, 117, 108, 125, 120, 122, 123, 149, 115, 129, 119, 125, 121, 118, 125, 126, 131, 126, 130, 126, 121, 119, 127, 136, 121, 116, 108, 114, 122, 118, 132, 137, 128, 126, 127, 128, 112, 127, 129, 128, 117, 126, 129, 128, 132, 95, 132, 131, 129, 132, 115, 123, 123, 124, 125, 126, 134, 133, 129, 133, 123, 137, 118, 105, 120, 132, 131, 142, 116, 131, 117, 128, 121, 133, 145, 116, 140, 120, 152, 149, 114, 141, 123, 142, 135, 139, 137, 100, 139, 119, 118, 113, 136, 128, 140, 131, 113, 125, 124, 139, 119, 140, 109, 132, 121, 121, 136, 125, 123, 121, 117, 118, 124, 120, 123, 133, 119, 115, 140, 133, 140, 119, 125, 120, 130, 134, 126, 116, 131, 115, 146, 119, 122, 132, 125, 130, 132, 127, 124, 123, 128, 126, 127, 131, 121, 125, 145, 126, 131, 123, 118, 125, 119, 128, 125, 120, 119, 133, 111, 121, 134, 132, 126, 120, 131, 126, 129, 121, 119, 138, 129, 144, 132, 134, 127, 131, 103, 122, 146, 125, 125, 116, 112, 120, 132, 123, 126, 142, 136, 115, 128, 137, 131, 114, 132, 129, 144, 124, 117, 134, 126, 128, 127, 120, 105, 119, 122, 117, 117, 129, 150, 134, 125, 141, 96, 118, 122, 135, 129, 132, 136, 120, 127, 127, 135, 120, 117, 120, 124, 129, 131, 130, 126, 120, 121, 127, 133, 118, 128, 98, 109, 133, 134, 135, 130, 118, 126, 125, 126, 128, 122, 118, 145, 136, 112, 128, 117, 112, 126, 126, 131, 121, 116, 138, 133, 125, 95, 126, 121, 120, 128, 114, 134, 130, 141, 116, 127, 124, 130, 112, 132, 130, 128, 128, 130, 109, 125, 132, 116, 136, 126, 128, 124, 118, 126, 121, 119, 148, 121, 108, 142, 121, 129, 123, 131, 153, 151, 130, 125, 133, 108, 133, 138, 134, 134, 117, 117, 146, 136, 125, 135, 128, 130, 157, 121, 121, 113, 124, 129, 131, 142, 126, 120, 119, 125, 131, 120, 129, 128, 137, 138, 109, 136, 121, 125, 119, 109, 130, 124, 117, 125, 111, 120, 120, 119, 129, 125, 121, 132, 120, 120, 135, 121, 123, 105, 113, 125, 117, 122, 117, 119, 140, 110, 124, 124, 128, 120, 115, 122, 124, 127, 127, 120, 126, 128, 129, 106, 123, 117, 143, 112, 131, 122, 127, 130, 124, 132, 124, 135, 120, 136, 110, 138, 118, 124, 129, 111, 133, 129, 114, 131, 143, 127, 128, 114, 147, 109, 110, 140, 130, 113, 136, 139, 140, 122, 118, 123, 122, 137, 118, 139, 137, 113, 130, 112, 127, 126, 126, 117, 120, 119, 103, 130, 121, 137, 122, 129, 129, 131, 134, 143, 107, 134, 117, 122, 133, 108, 128, 124, 117, 135, 126, 132, 122, 121, 113, 131, 132, 140, 120, 127, 136, 117, 138, 129, 126, 126, 126, 139, 108, 125, 117, 129, 140, 120, 127, 123, 125, 123, 113, 127, 133, 141, 114, 136, 120, 122, 138, 122, 107, 126, 111, 130, 131, 140, 113, 112, 125, 127, 144, 124, 131, 120, 120, 137, 107, 112, 116, 132, 119, 123, 121, 117, 128, 134, 127, 129, 142, 104, 110, 117, 104, 131, 131, 124, 134, 132, 124, 139, 116, 108, 131, 126, 108, 131, 120, 120, 159, 112, 129, 129, 113, 134, 126, 120, 127, 141, 127, 135, 127, 131, 113, 134, 128, 112, 123, 102, 132, 141, 113, 141, 121, 118, 128, 118, 135, 107, 131, 133, 123, 124, 132, 127, 115, 122, 119, 124, 135, 122, 121, 143, 115, 118, 120, 121, 123, 127, 116, 99, 120, 125, 109, 121, 104, 125, 117, 132, 132, 124, 106, 111, 126, 132, 111, 138, 131, 121, 138, 125, 115, 126, 127, 110, 131, 130, 107, 128, 122, 129, 134, 122, 138, 118, 112, 127, 122, 119, 126, 122, 118, 128, 147, 123, 128, 135, 137, 141, 111, 138, 132, 110, 125, 138, 112, 110, 123, 130, 129, 120, 140, 133, 129, 144, 114, 115, 120, 112, 129, 112, 137, 136, 119, 120, 121, 129, 139, 120, 134, 111, 111, 122, 130, 117, 124, 125, 129, 123, 127, 134, 135, 124, 124, 124, 95, 141, 124, 132, 120, 131, 115, 123, 122, 122, 132, 126, 126, 122, 116, 136, 126, 131, 129, 150, 102, 106, 118, 115, 131, 121, 126, 120, 126, 148, 113, 124, 137, 136, 135, 122, 126, 112, 127, 137, 113, 138, 134, 128, 126, 134, 126, 135, 125, 126, 121, 139, 127, 117, 123, 142, 145, 125, 139, 129, 125, 138, 123, 115, 117, 121, 145, 111, 104, 116, 121, 132, 139, 129, 140, 124, 133, 114, 105, 108, 126, 125, 127, 120, 128, 134, 100, 132, 110, 119, 112, 133, 126, 142, 117, 120, 133, 126, 105, 118, 118, 134, 137, 117, 124, 133, 114, 126, 132, 134, 112, 116, 136, 114, 127, 124, 131, 117, 143, 125, 114, 134, 131, 141, 123, 124, 120, 113, 119, 132, 122, 118, 124, 123, 120, 113, 125, 105, 130, 130, 116, 120, 105, 125, 116, 134, 124, 132, 130, 119, 116, 115, 122, 137, 122, 118, 136, 123, 134, 133, 112, 108, 128, 130, 141, 120, 136, 116, 103, 147, 110, 128, 133, 138, 118, 121, 120, 119, 134, 101, 131, 135, 132, 121, 133, 123, 119, 129, 130, 116, 113, 115, 128, 126, 125, 126, 125, 132, 125, 97, 116, 131, 132, 125, 145, 120, 123, 128, 134, 124, 108, 129, 126, 132, 117, 144, 130, 121, 107, 130, 138, 121, 135, 106, 109, 112, 108, 135, 106, 130, 127, 120, 130, 125, 148, 118, 131, 135, 128, 144, 122, 133, 116, 111, 128, 112, 125, 114, 115, 136, 132, 133, 119, 138, 125, 119, 137, 121, 130, 108, 115, 127, 127, 141, 143, 110, 134, 129, 158, 130, 117, 114, 133, 137, 126, 132, 112, 113, 127, 131, 124, 121, 116, 139, 121, 138, 111, 129, 122, 133, 121, 126, 129, 132, 109, 141, 136, 110, 137, 135, 113, 124, 115, 134, 121, 126, 113, 136, 121, 125, 121, 116, 118, 124, 132, 120, 121, 131, 141, 135, 100, 122, 122, 149, 125, 133, 141, 133, 103, 111, 121, 113, 123, 113, 114, 132, 132, 117, 141, 122, 148, 136, 131, 122, 115, 141, 123, 136, 122, 136, 123, 127, 133, 121, 130, 127, 142, 123, 118, 117, 118, 114, 125, 134, 128, 123, 127, 118, 128, 141, 113, 121, 119, 126, 117, 102, 109, 148, 125, 133, 133, 115, 125, 133, 121, 119, 114, 119, 117, 135, 134, 118, 121, 135, 126, 115, 118, 108, 114, 127, 127, 133, 128, 118, 122, 131, 122, 127, 152, 140, 120, 109, 136, 111, 122, 127, 131, 107, 146, 129, 120, 136, 122, 135, 120, 138, 146, 114, 115, 121, 118, 141, 125, 133, 137, 120, 124, 141, 144, 137, 130, 155, 116, 108, 129, 134, 116, 135, 138, 123, 124, 121, 127, 123, 126, 109, 133, 127, 131, 140, 123, 127, 114, 119, 126, 145, 126, 134, 125, 113, 123, 138, 123, 107, 141, 127, 117, 133, 112, 118, 119, 124, 139, 129, 122, 119, 138, 150, 133, 119, 111, 126, 139, 129, 133, 136, 132, 114, 123, 124, 111, 126, 140, 138, 109, 98, 114, 118, 115, 130, 131, 121, 133, 124, 131, 138, 138, 133, 128, 109, 128, 124, 117, 119, 117, 129, 129, 160, 122, 123, 134, 129, 107, 115, 118, 117, 109, 114, 126, 132, 139, 125, 128, 114, 128, 124, 126, 138, 123, 125, 138, 139, 131, 119, 103, 142, 126, 123, 142, 118, 122, 130, 107, 121, 119, 116, 117, 129, 112, 133, 115, 126, 121, 118, 123, 108, 123, 123, 131, 133, 127, 133, 122, 129, 132, 124, 130, 118, 135, 123, 116, 140, 128, 145, 141, 123, 123, 122, 131, 123, 124, 136, 134, 127, 127, 127, 116, 139, 123, 108, 135, 121, 131, 141, 130, 127, 124, 121, 115, 136, 144, 108, 113, 137, 127, 121, 129, 134, 129, 127, 122, 124, 123, 123, 126, 111, 118, 132, 115, 143, 132, 97, 112, 120, 123, 112, 117, 134, 148, 124, 133, 113, 112, 123, 125, 118, 134, 131, 128, 141, 124, 150, 109, 128, 122, 112, 134, 114, 130, 134, 128, 144, 106, 103, 125, 128, 133, 141, 128, 116, 121, 119, 103, 112, 112, 123, 110, 126, 108, 111, 117, 110, 117, 114, 129, 129, 125, 135, 118, 143, 133, 123, 108, 113, 116, 127, 116, 126, 123, 117, 121, 112, 129, 127, 136, 130, 124, 141, 100, 119, 130, 124, 144, 122, 143, 129, 129, 121, 122, 120, 117, 127, 126, 113, 119, 106, 122, 120, 130, 115, 129, 126, 114, 109, 129, 125, 127, 128, 133, 116, 136, 120, 107, 134, 113, 121, 131, 127, 137, 119, 106, 124, 136, 121, 134, 135, 122, 129, 106, 126, 118, 136, 144, 123, 118, 115, 140, 127, 128, 126, 129, 126, 133, 129, 112, 128, 116, 114, 122, 121, 112, 122, 137, 121, 105, 121, 143, 135, 151, 132, 113, 141, 137, 122, 120, 111, 130, 109, 135, 134, 135, 138, 135, 137, 132, 102, 132, 137, 115, 133, 128, 127, 126, 136, 112, 128, 136, 143, 111, 119, 132, 127, 121, 144, 121, 112, 142, 103, 114, 119, 129, 124, 130, 126, 120, 115, 112, 140, 133, 117, 138, 132, 132, 127, 132, 126, 125, 117, 130, 113, 115, 141, 119, 128, 139, 137, 123, 125, 123, 150, 117, 119, 130, 109, 122, 124, 132, 125, 125, 134, 132, 129, 101, 133, 121, 139, 127, 112, 114, 128, 130, 125, 136, 122, 114, 118, 136, 131, 121, 134, 114, 128, 124, 129, 137, 129, 125, 129, 130, 110, 126, 111, 117, 132, 131, 130, 118, 117, 130, 125, 128, 115, 131, 124, 122, 104, 133, 139, 120, 120, 131, 126, 122, 133, 130, 128, 127, 131, 104, 128, 109, 114, 125, 126, 122, 122, 127, 128, 125, 122, 139, 135, 132, 104, 115, 124, 116, 133, 124, 135, 110, 125, 127, 120, 132, 138, 130, 115, 127, 120, 122, 134, 118, 125, 129, 134, 133, 119, 138, 118, 121, 120, 114, 140, 132, 115, 114, 125, 122, 148, 127, 126, 128, 122, 124, 123, 108, 112, 112, 134, 118, 140, 131, 104, 112, 136, 129, 126, 121, 127, 137, 152, 118, 126, 120, 119, 121, 146, 139, 127, 130, 119, 128, 128, 133, 133, 116, 126, 121, 115, 122, 119, 125, 138, 115, 118, 118, 121, 131, 138, 112, 106, 124, 109, 114, 140, 128, 146, 131, 113, 129, 111, 125, 124, 116, 141, 139, 132, 125, 117, 125, 134, 129, 125, 125, 130, 124, 134, 135, 118, 125, 138, 126, 130, 123, 126, 131, 111, 116, 126, 130, 133, 120, 134, 127, 128, 125, 129, 141, 127, 135, 135, 106, 126, 117, 130, 125, 119, 107, 115, 127, 111, 131, 114, 130, 111, 117, 130, 123, 88, 146, 132, 129, 114, 126, 110, 123, 128, 135, 130, 123, 124, 142, 130, 120, 128, 114, 113, 110, 115, 122, 103, 121, 123, 128, 136, 131, 116, 135, 121, 120, 119, 119, 136, 105, 133, 142, 127, 134, 134, 118, 128, 104, 128, 128, 117, 103, 123, 127, 133, 127, 114, 145, 133, 122, 129, 130, 117, 114, 127, 122, 136, 112, 126, 117, 123, 142, 105, 125, 113, 126, 124, 129, 119, 131, 127, 122, 131, 122, 119, 123, 134, 118, 137, 125, 124, 133, 133, 134, 138, 124, 135, 116, 122, 126, 130, 114, 132, 120, 122, 132, 131, 121, 122, 130, 127, 119, 121, 133, 122, 127, 123, 123, 129, 127, 127, 136, 130, 132, 134, 126, 123, 117, 130, 132, 129, 128, 125, 126, 127, 146, 119, 113, 124, 139, 113, 122, 112, 119, 115, 101, 123, 127, 109, 138, 138, 121, 136, 154, 127, 107, 132, 118, 121, 120, 130, 135, 134, 109, 129, 123, 123, 123, 132, 139, 109, 119, 129, 133, 115, 123, 117, 110, 122, 124, 133, 134, 132, 134, 103, 125, 122, 117, 111, 117, 119, 132, 141, 132, 135, 126, 123, 119, 136, 134, 124, 132, 135, 125, 116, 148, 129, 133, 118, 137, 119, 115, 137, 126, 127, 125, 116, 98, 102, 126, 107, 126, 147, 118, 120, 117, 127, 128, 140, 134, 125, 135, 120, 125, 122, 116, 125, 130, 140, 123, 128, 129, 122, 125, 105, 128, 123, 128, 128, 118, 120, 126, 120, 111, 118, 135, 123, 126, 131, 139, 118, 124, 119, 133, 123, 108, 129, 123, 135, 105, 131, 145, 135, 143, 129, 112, 125, 135, 135, 129, 121, 114, 144, 131, 113, 142, 117, 141, 132, 120, 124, 121, 151, 118, 107, 126, 125, 123, 132, 129, 122, 125, 123, 133, 125, 130, 123, 128, 109, 154, 120, 132, 134, 133, 127, 121, 139, 124, 129, 119, 113, 117, 108, 126, 136, 119, 119, 130, 112, 123, 129, 125, 104, 134, 138, 121, 120, 118, 147, 124, 130, 123, 123, 140, 129, 141, 134, 126, 154, 117, 128, 120, 148, 137, 129, 134, 136, 122, 133, 125, 154, 153, 136, 119, 121, 137, 122, 104, 131, 139, 127, 114, 126, 117, 121, 117, 112, 126, 123, 124, 125, 122, 125, 122, 131, 122, 133, 131, 144, 119, 120, 130, 119, 130, 119, 118, 129, 130, 124, 130, 119, 131, 122, 126, 129, 134, 111, 118, 137, 120, 128, 129, 136, 134, 137, 120, 131, 127, 118, 137, 132, 120, 133, 130, 122, 124, 117, 119, 125, 112, 125, 126, 139, 128, 126, 131, 119, 152, 116, 121, 101, 122, 120, 129, 122, 119, 133, 113, 137, 139, 127, 118, 122, 132, 135, 147, 124, 122, 116, 133, 128, 122, 128, 136, 133, 125, 107, 121, 135, 144, 124, 132, 118, 122, 111, 112, 124, 121, 113, 131, 133, 112, 121, 128, 107, 120, 131, 124, 125, 115, 111, 114, 108, 139, 133, 123, 99, 127, 117, 133, 121, 121, 118, 121, 136, 117, 130, 148, 118, 122, 152, 124, 131, 125, 146, 116, 126, 132, 124, 115, 124, 123, 126, 138, 126, 125, 122, 112, 125, 112, 120, 124, 117, 126, 130, 125, 120, 138, 134, 110, 130, 116, 132, 113, 121, 148, 125, 139, 125, 126, 130, 136, 133, 139, 145, 113, 121, 124, 139, 142, 120, 123, 118, 124, 121, 125, 127, 117, 145, 122, 126, 121, 132, 136, 115, 115, 132, 118, 127, 125, 120, 117, 109, 107, 112, 123, 122, 115, 127, 122, 121, 141, 140, 129, 148, 129, 117, 115, 112, 136, 121, 138, 115, 125, 127, 120, 125, 134, 123, 130, 120, 129, 154, 125, 135, 132, 113, 127, 131, 127, 135, 130, 143, 111, 138, 110, 115, 126, 122, 140, 125, 135, 130, 125, 136, 141, 131, 137, 114, 123, 116, 131, 128, 139, 142, 113, 122, 111, 126, 105, 130, 119, 128, 132, 129, 126, 139, 111, 108, 138, 143, 129, 132, 117, 135, 122, 119, 127, 126, 128, 132, 143, 121, 105, 128, 123, 128, 139, 132, 143, 116, 128, 132, 126, 129, 135, 110, 130, 127, 133, 123, 135, 112, 103, 130, 110, 128, 147, 136, 140, 114, 132, 127, 114, 125, 132, 118, 129, 124, 122, 125, 128, 135, 130, 120, 132, 140, 126, 131, 127, 131, 131, 119, 127, 122, 128, 115, 108, 127, 126, 103, 118, 124, 126, 127, 120, 124, 135, 137, 134, 115, 113, 145, 110, 142, 117, 122, 126, 128, 109, 110, 126, 124, 103, 129, 126, 118, 110, 125, 122, 130, 130, 121, 118, 115, 126, 120, 126, 140, 115, 127, 124, 138, 138, 131, 118, 120, 117, 124, 128, 131, 118, 115, 149, 139, 135, 129, 131, 116, 130, 131, 125, 137, 128, 119, 125, 122, 116, 132, 107, 131, 144, 118, 118, 127, 114, 127, 116, 128, 141, 129, 147, 123, 129, 128, 120, 125, 121, 129, 128, 118, 120, 130, 128, 122, 128, 131, 122, 115, 119, 105, 131, 136, 128, 126, 118, 127, 136, 128, 115, 114, 120, 132, 142, 115, 129, 124, 120, 124, 106, 130, 133, 132, 115, 123, 125, 118, 105, 133, 124, 126, 121, 116, 111, 117, 145, 127, 128, 118, 163, 130, 119, 124, 125, 117, 115, 127, 124, 120, 137, 111, 132, 131, 138, 118, 126, 130, 127, 130, 122, 123, 101, 126, 118, 146, 127, 108, 112, 116, 137, 106, 127, 128, 108, 114, 125, 140, 119, 120, 127, 134, 122, 116, 124, 119, 126, 119, 138, 141, 120, 108, 128, 120, 113, 135, 123, 141, 131, 115, 138, 124, 118, 110, 133, 122, 105, 129, 120, 133, 129, 121, 129, 122, 128, 109, 113, 125, 145, 123, 141, 135, 139, 129, 118, 106, 121, 125, 150, 120, 122, 125, 118, 123, 130, 108, 111, 142, 125, 111, 106, 110, 125, 107, 116, 124, 118, 116, 130, 121, 127, 111, 112, 127, 129, 116, 122, 129, 130, 135, 128, 116, 107, 128, 144, 136, 125, 128, 134, 101, 142, 140, 138, 115, 132, 119, 147, 126, 109, 104, 115, 130, 132, 127, 151, 112, 136, 122, 129, 127, 149, 119, 134, 121, 146, 123, 124, 131, 117, 107, 136, 118, 113, 130, 128, 99, 112, 105, 107, 119, 120, 117, 135, 119, 123, 138, 128, 117, 120, 125, 125, 117, 138, 132, 125, 124, 138, 128, 124, 128, 118, 134, 134, 126, 128, 117, 118, 123, 109, 128, 140, 129, 123, 118, 121, 109, 118, 136, 126, 114, 123, 107, 132, 130, 137, 119, 123, 120, 116, 131, 121, 123, 125, 137, 127, 125, 133, 108, 127, 113, 127, 130, 124, 128, 119, 118, 120, 142, 112, 121, 112, 133, 122, 104, 123, 126, 133, 121, 120, 123, 130, 134, 151, 127, 122, 132, 132, 129, 130, 116, 122, 127, 115, 124, 132, 124, 121, 121, 129, 119, 140, 116, 128, 117, 116, 123, 117, 122, 123, 112, 123, 135, 124, 132, 126, 124, 119, 130, 126, 109, 129, 112, 106, 135, 121, 126, 135, 114, 115, 126, 118, 126, 128, 138, 130, 129, 113, 134, 120, 129, 135, 118, 126, 138, 130, 131, 125, 113, 114, 144, 126, 129, 104, 110, 114, 134, 111, 136, 122, 123, 119, 125, 121, 128, 121, 135, 107, 131, 124, 132, 112, 125, 130, 111, 126, 127, 112, 130, 139, 135, 129, 126, 132, 110, 130, 144, 131, 131, 151, 117, 123, 134, 110, 123, 142, 120, 124, 128, 133, 120, 128, 126, 125, 111, 140, 138, 121, 143, 131, 118, 131, 127, 121, 118, 120, 114, 137, 136, 113, 120, 114, 129, 153, 121, 112, 132, 126, 113, 125, 124, 127, 108, 120, 128, 124, 128, 128, 120, 125, 140, 132, 132, 116, 127, 117, 112, 127, 125, 118, 134, 125, 129, 125, 115, 140, 131, 129, 112, 116, 129, 134, 122, 108, 124, 136, 119, 132, 139, 142, 120, 98, 128, 130, 124, 131, 135, 131, 103, 115, 123, 122, 126, 106, 103, 118, 115, 129, 130, 134, 121, 139, 123, 128, 124, 118, 150, 133, 126, 123, 116, 136, 121, 122, 111, 128, 130, 124, 111, 120, 113, 139, 135, 112, 114, 145, 106, 116, 136, 125, 117, 119, 134, 104, 133, 118, 113, 123, 111, 119, 122, 128, 114, 128, 124, 125, 125, 123, 123, 123, 132, 126, 131, 109, 148, 121, 131, 119, 115, 134, 119, 135, 115, 101, 132, 133, 146, 108, 142, 120, 109, 123, 143, 135, 121, 136, 126, 128, 105, 133, 131, 123, 108, 162, 123, 121, 137, 126, 128, 119, 114, 129, 135, 135, 167, 137, 127, 124, 130, 126, 134, 121, 105, 118, 122, 117, 127, 126, 157, 137, 116, 139, 147, 112, 138, 126, 121, 113, 116, 138, 126, 131, 123, 131, 135, 127, 124, 124, 126, 127, 120, 122, 122, 122, 117, 126, 129, 119, 101, 118, 122, 121, 115, 121, 127, 133, 130, 116, 144, 93, 124, 115, 110, 101, 138, 129, 122, 135, 130, 130, 127, 122, 112, 135, 135, 134, 129, 134, 136, 130, 134, 107, 128, 108, 128, 125, 119, 116, 139, 123, 128, 123, 127, 126, 129, 140, 138, 124, 129, 147, 117, 123, 117, 120, 127, 149, 117, 123, 130, 121, 123, 130, 120, 145, 139, 121, 120, 123, 129, 115, 138, 132, 121, 129, 116, 133, 125, 103, 138, 128, 127, 111, 123, 131, 123, 126, 104, 141, 137, 123, 138, 126, 106, 134, 131, 113, 106, 103, 121, 118, 123, 123, 114, 122, 131, 157, 121, 125, 130, 111, 120, 130, 128, 134, 139, 140, 131, 110, 149, 131, 120, 114, 142, 115, 125, 130, 125, 134, 114, 121, 120, 124, 131, 138, 133, 141, 124, 129, 112, 120, 141, 117, 127, 110, 126, 141, 113, 128, 113, 119, 129, 113, 130, 138, 122, 127, 121, 123, 122, 119, 135, 110, 132, 109, 126, 123, 148, 132, 134, 114, 117, 145, 117, 147, 132, 118, 128, 138, 131, 141, 151, 124, 132, 122, 144, 126, 132, 124, 116, 123, 102, 118, 125, 134, 124, 124, 121, 122, 125, 136, 123, 130, 123, 130, 122, 105, 122, 108, 139, 127, 130, 128, 136, 118, 140, 124, 121, 135, 142, 128, 116, 129, 117, 131, 123, 132, 122, 122, 126, 133, 131, 125, 117, 140, 132, 122, 136, 124, 117, 129, 115, 144, 94, 133, 136, 129, 126, 134, 113, 135, 113, 114, 136, 120, 138, 126, 115, 136, 133, 125, 130, 125, 113, 135, 127, 137, 128, 113, 136, 118, 121, 130, 130, 122, 126, 135, 121, 118, 112, 132, 121, 111, 132, 127, 135, 122, 126, 121, 98, 109, 112, 129, 135, 129, 115, 126, 134, 124, 125, 121, 114, 109, 113, 130, 138, 129, 121, 121, 109, 116, 123, 143, 118, 118, 142, 119, 106, 124, 130, 148, 130, 111, 124, 130, 105, 114, 127, 130, 118, 144, 119, 114, 125, 145, 129, 147, 135, 130, 133, 117, 120, 118, 118, 130, 134, 118, 125, 131, 118, 114, 120, 117, 137, 120, 136, 126, 137, 125, 120, 129, 122, 144, 121, 133, 135, 112, 106, 117, 135, 101, 110, 123, 120, 130, 127, 131, 129, 139, 128, 137, 119, 122, 127, 136, 122, 133, 131, 133, 117, 116, 121, 110, 110, 117, 129, 103, 144, 124, 121, 127, 133, 132, 117, 131, 137, 114, 127, 132, 117, 129, 131, 104, 110, 144, 139, 124, 116, 126, 118, 119, 140, 127, 113, 121, 140, 132, 132, 122, 123, 120, 132, 108, 124, 121, 138, 112, 129, 123, 127, 116, 121, 118, 123, 121, 128, 103, 116, 122, 132, 124, 133, 126, 133, 123, 115, 138, 136, 137, 125, 136, 120, 131, 127, 131, 108, 141, 116, 120, 117, 127, 150, 134, 124, 144, 130, 120, 113, 133, 124, 131, 116, 125, 120, 121, 129, 128, 113, 94, 106, 129, 132, 129, 142, 126, 128, 118, 117, 118, 116, 145, 84, 105, 124, 129, 124, 119, 120, 125, 124, 125, 113, 132, 125, 134, 126, 120, 130, 155, 136, 128, 121, 123, 133, 108, 119, 146, 120, 120, 139, 130, 115, 127, 129, 143, 125, 129, 110, 114, 118, 118, 115, 122, 126, 136, 115, 128, 121, 112, 111, 135, 119, 129, 127, 115, 117, 123, 123, 123, 122, 126, 146, 137, 127, 118, 124, 130, 131, 129, 104, 124, 106, 125, 122, 129, 128, 127, 119, 114, 113, 123, 115, 131, 128, 130, 132, 137, 130, 127, 130, 131, 133, 106, 111, 116, 117, 123, 125, 123, 117, 127, 125, 130, 122, 127, 109, 144, 158, 123, 123, 135, 123, 127, 118, 135, 137, 139, 128, 137, 128, 124, 121, 138, 127, 134, 110, 123, 118, 124, 128, 126, 125, 118, 124, 124, 139, 136, 129, 135, 131, 123, 123, 111, 126, 130, 118, 141, 119, 132, 119, 137, 132, 125, 116, 119, 141, 104, 128, 142, 124, 132, 129, 118, 118, 132, 107, 128, 113, 124, 125, 134, 120, 128, 130, 126, 123, 111, 124, 124, 126, 125, 133, 126, 133, 107, 114, 126, 130, 130, 106, 130, 133, 137, 117, 116, 119, 120, 127, 155, 133, 144, 145, 128, 120, 142, 115, 114, 120, 110, 114, 144, 118, 110, 130, 102, 135, 124, 122, 132, 109, 146, 125, 122, 123, 132, 149, 123, 125, 136, 115, 128, 133, 128, 137, 124, 111, 134, 111, 110, 129, 142, 105, 143, 150, 123, 139, 129, 119, 115, 133, 127, 129, 126, 123, 132, 141, 128, 133, 120, 151, 121, 120, 120, 135, 121, 120, 125, 129, 130, 136, 113, 123, 136, 134, 136, 125, 130, 123, 116, 122, 121, 135, 128, 139, 115, 115, 116, 141, 126, 131, 116, 111, 126, 130, 130, 122, 124, 133, 134, 139, 128, 121, 134, 142, 121, 126, 130, 131, 135, 128, 135, 125, 116, 128, 114, 123, 127, 134, 113, 107, 145, 137, 120, 105, 109, 149, 136, 126, 124, 107, 124, 125, 125, 122, 121, 138, 114, 140, 125, 139, 125, 113, 127, 126, 127, 130, 126, 117, 133, 113, 134, 117, 116, 116, 138, 125, 143, 119, 139, 130, 126, 118, 128, 123, 120, 139, 136, 121, 138, 115, 133, 120, 137, 117, 118, 117, 137, 113, 128, 111, 125, 135, 118, 118, 110, 125, 134, 137, 116, 141, 124, 127, 123, 123, 127, 123, 112, 126, 132, 132, 134, 130, 110, 111, 131, 115, 144, 131, 117, 128, 141, 132, 131, 125, 129, 150, 112, 136, 125, 121, 124, 112, 131, 115, 132, 128, 132, 121, 131, 142, 151, 131, 139, 125, 128, 104, 112, 112, 120, 130, 124, 140, 123, 127, 120, 126, 143, 137, 120, 98, 131, 127, 132, 140, 117, 123, 130, 120, 119, 111, 129, 136, 119, 134, 126, 105, 139, 127, 134, 136, 112, 110, 121, 129, 154, 144, 117, 138, 127, 110, 121, 119, 129, 135, 120, 126, 133, 120, 136, 111, 123, 127, 142, 116, 126, 118, 128, 139, 125, 139, 132, 125, 120, 142, 132, 136, 134, 135, 121, 131, 127, 127, 129, 131, 132, 125, 132, 119, 116, 126, 123, 144, 110, 125, 130, 119, 129, 122, 126, 123, 130, 123, 131, 124, 103, 124, 145, 128, 111, 147, 136, 134, 115, 140, 110, 113, 128, 119, 125, 118, 136, 124, 132, 119, 123, 123, 114, 129, 121, 113, 134, 130, 134, 103, 109, 109, 123, 126, 123, 118, 152, 125, 109, 106, 116, 114, 119, 125, 133, 128, 107, 133, 130, 116, 122, 118, 133, 126, 121, 115, 125, 126, 119, 116, 131, 123, 121, 129, 129, 140, 124, 118, 129, 141, 126, 132, 156, 129, 117, 121, 125, 122, 113, 134, 122, 113, 130, 126, 122, 123, 113, 132, 128, 132, 132, 134, 128, 135, 127, 134, 118, 118, 125, 136, 126, 126, 127, 119, 117, 133, 124, 116, 126, 127, 123, 130, 118, 121, 112, 140, 124, 109, 115, 124, 131, 130, 121, 144, 122, 134, 117, 138, 130, 133, 134, 123, 121, 120, 118, 125, 122, 121, 96, 124, 137, 134, 121, 116, 116, 121, 142, 133, 99, 125, 120, 131, 116, 120, 120, 122, 125, 125, 130, 111, 122, 118, 118, 125, 120, 124, 132, 128, 111, 128, 109, 125, 144, 130, 118, 118, 126, 117, 135, 129, 136, 125, 140, 122, 126, 106, 120, 124, 118, 130, 132, 124, 119, 118, 121, 120, 111, 132, 135, 122, 141, 110, 117, 113, 112, 96, 129, 132, 138, 122, 136, 113, 127, 118, 137, 120, 147, 146, 117, 125, 120, 142, 119, 125, 128, 125, 143, 128, 137, 116, 113, 132, 117, 120, 138, 115, 135, 126, 107, 126, 119, 113, 131, 116, 136, 135, 136, 125, 118, 139, 129, 112, 146, 146, 120, 107, 125, 134, 119, 133, 135, 136, 131, 140, 125, 123, 120, 138, 111, 130, 138, 134, 134, 121, 107, 122, 116, 115, 130, 117, 108, 117, 116, 106, 156, 136, 128, 122, 115, 134, 129, 122, 115, 137, 117, 127, 119, 135, 116, 128, 122, 123, 119, 139, 132, 128, 112, 140, 133, 114, 132, 120, 115, 140, 111, 112, 144, 132, 135, 136, 119, 141, 120, 140, 124, 119, 133, 142, 109, 126, 134, 109, 117, 119, 127, 149, 143, 119, 128, 96, 144, 149, 105, 121, 125, 118, 129, 128, 128, 135, 133, 157, 119, 128, 137, 119, 123, 120, 116, 118, 128, 130, 134, 133, 113, 145, 114, 123, 124, 109, 113, 133, 113, 134, 137, 133, 119, 117, 116, 128, 116, 114, 113, 128, 111, 117, 127, 124, 123, 109, 127, 134, 129, 143, 131, 118, 117, 109, 127, 125, 118, 125, 128, 130, 109, 144, 109, 126, 130, 117, 131, 122, 123, 132, 122, 133, 121, 126, 123, 118, 114, 122, 129, 118, 107, 134, 122, 120, 122, 114, 143, 117, 123, 103, 124, 111, 133, 129, 105, 129, 124, 135, 119, 123, 107, 140, 128, 121, 125, 124, 131, 133, 115, 131, 134, 117, 107, 147, 123, 96, 119, 122, 114, 107, 119, 141, 140, 117, 132, 121, 134, 106, 128, 138, 118, 120, 124, 143, 114, 119, 133, 113, 144, 153, 122, 120, 134, 115, 123, 127, 130, 132, 124, 125, 134, 140, 116, 116, 132, 144, 134, 144, 112, 139, 127, 142, 132, 109, 131, 113, 117, 116, 110, 122, 135, 113, 122, 150, 126, 115, 117, 138, 147, 129, 126, 121, 132, 138, 113, 126, 131, 113, 122, 140, 153, 124, 129, 140, 118, 115, 116, 135, 114, 133, 113, 117, 122, 135, 122, 111, 126, 153, 113, 145, 132, 126, 119, 98, 120, 119, 120, 122, 129, 117, 108, 142, 136, 109, 148, 112, 140, 88, 123, 124, 111, 114, 123, 123, 138, 125, 136, 133, 127, 131, 151, 124, 133, 133, 130, 134, 134, 122, 115, 145, 124, 124, 127, 120, 128, 119, 125, 156, 129, 116, 148, 132, 110, 104, 116, 143, 106, 119, 124, 119, 139, 148, 116, 145, 120, 124, 116, 126, 121, 96, 129, 124, 133, 122, 111, 159, 128, 122, 134, 122, 127, 130, 146, 115, 112, 125, 137, 129, 121, 137, 115, 111, 128, 126, 128, 124, 131, 129, 119, 124, 140, 121, 133, 122, 128, 135, 122, 119, 126, 112, 112, 111, 150, 113, 108, 124, 123, 125, 132, 137, 133, 150, 132, 123, 127, 106, 124, 116, 118, 134, 123, 106, 150, 137, 121, 131, 124, 107, 118, 121, 126, 133, 129, 122, 132, 131, 144, 112, 132, 132, 125, 117, 150, 121, 118, 126, 126, 135, 118, 121, 140, 125, 118, 134, 136, 126, 138, 118, 134, 121, 137, 129, 130, 119, 113, 126, 132, 124, 112, 129, 140, 136, 118, 130, 113, 123, 128, 105, 145, 128, 142, 109, 124, 124, 131, 126, 139, 130, 118, 141, 122, 109, 136, 106, 116, 124, 139, 129, 129, 128, 118, 122, 130, 141, 144, 133, 129, 130, 129, 111, 113, 114, 133, 111, 125, 134, 116, 124, 108, 128, 117, 140, 115, 135, 120, 133, 130, 115, 130, 114, 122, 128, 139, 110, 110, 129, 122, 132, 131, 118, 148, 126, 151, 126, 131, 125, 128, 108, 150, 124, 142, 126, 125, 140, 121, 118, 106, 127, 127, 114, 123, 142, 119, 133, 132, 130, 106, 124, 121, 136, 119, 124, 126, 124, 125, 139, 115, 130, 107, 141, 164, 138, 117, 117, 132, 136, 146, 133, 129, 128, 134, 123, 123, 135, 117, 138, 123, 126, 124, 135, 115, 139, 132, 130, 129, 124, 140, 131, 125, 127, 123, 130, 127, 120, 126, 116, 119, 105, 117, 135, 131, 153, 131, 125, 141, 129, 126, 134, 129, 117, 130, 130, 108, 120, 131, 123, 118, 112, 109, 117, 129, 117, 137, 119, 122, 121, 137, 136, 146, 128, 117, 122, 146, 126, 123, 131, 115, 140, 124, 147, 123, 138, 112, 118, 123, 121, 114, 132, 124, 117, 120, 125, 145, 118, 154, 145, 108, 129, 110, 125, 115, 127, 125, 125, 129, 113, 120, 110, 108, 140, 146, 123, 126, 136, 119, 131, 122, 132, 126, 135, 132, 114, 138, 114, 105, 132, 139, 130, 120, 144, 118, 113, 141, 109, 130, 125, 118, 143, 140, 122, 123, 117, 138, 122, 133, 113, 135, 134, 125, 133, 112, 111, 120, 141, 116, 143, 144, 130, 124, 124, 156, 127, 100, 127, 123, 134, 117, 129, 137, 122, 110, 145, 124, 140, 127, 129, 139, 136, 114, 121, 127, 110, 142, 125, 79, 125, 131, 117, 139, 123, 127, 122, 131, 116, 110, 141, 126, 114, 121, 128, 126, 136, 122, 108, 122, 128, 121, 111, 107, 106, 114, 121, 116, 115, 126, 113, 130, 123, 131, 119, 140, 141, 133, 122, 146, 123, 115, 131, 129, 124, 116, 121, 119, 120, 127, 128, 121, 137, 114, 117, 128, 131, 108, 120, 125, 121, 100, 123, 131, 100, 113, 130, 144, 123, 124, 121, 121, 122, 121, 130, 130, 131, 111, 132, 139, 132, 129, 119, 115, 116, 121, 142, 131, 120, 130, 122, 114, 141, 133, 118, 135, 121, 121, 123, 122, 136, 118, 115, 104, 121, 120, 144, 126, 122, 133, 120, 125, 133, 128, 136, 118, 126, 117, 123, 105, 143, 130, 132, 129, 121, 109, 120, 144, 126, 103, 133, 125, 125, 110, 125, 128, 132, 109, 122, 113, 126, 117, 127, 106, 114, 146, 126, 113, 140, 113, 123, 121, 131, 125, 102, 129, 118, 121, 114, 116, 119, 124, 98, 134, 101, 109, 157, 136, 128, 119, 143, 115, 120, 113, 129, 121, 115, 110, 126, 141, 127, 138, 118, 138, 123, 134, 132, 150, 115, 128, 121, 117, 113, 128, 124, 123, 155, 109, 106, 131, 103, 126, 137, 117, 121, 126, 118, 135, 124, 121, 138, 118, 118, 116, 136, 124, 137, 116, 140, 115, 118, 129, 125, 135, 121, 135, 135, 142, 134, 109, 129, 118, 126, 126, 129, 135, 118, 113, 120, 132, 129, 145, 124, 129, 116, 125, 116, 112, 120, 116, 126, 114, 130, 107, 120, 139, 123, 137, 116, 115, 132, 129, 146, 150, 128, 119, 121, 125, 112, 134, 99, 118, 143, 116, 110, 134, 120, 138, 104, 120, 116, 135, 128, 116, 128, 117, 133, 106, 129, 134, 139, 126, 113, 125, 124, 113, 128, 129, 130, 130, 122, 153, 123, 119, 116, 108, 121, 113, 134, 120, 131, 123, 120, 137, 124, 133, 110, 125, 139, 127, 121, 122, 130, 134, 118, 126, 131, 128, 131, 116, 127, 123, 128, 128, 120, 135, 121, 107, 134, 107, 116, 122, 127, 118, 130, 114, 124, 125, 124, 129, 121, 123, 120, 127, 132, 142, 123, 133, 122, 126, 133, 126, 138, 108, 111, 129, 118, 137, 114, 118, 120, 115, 128, 115, 131, 124, 116, 113, 118, 119, 127, 131, 128, 144, 109, 134, 140, 125, 129, 116, 121, 138, 134, 130, 116, 121, 126, 130, 125, 130, 107, 125, 123, 125, 131, 137, 119, 128, 120, 124, 129, 126, 143, 123, 132, 115, 129, 146, 125, 126, 115, 115, 114, 138, 125, 126, 126, 144, 121, 132, 135, 123, 137, 142, 135, 117, 123, 115, 135, 131, 123, 140, 133, 137, 132, 109, 109, 132, 131, 126, 133, 133, 137, 140, 108, 116, 123, 117, 120, 115, 119, 118, 129, 107, 131, 130, 133, 129, 122, 134, 127, 122, 127, 122, 118, 127, 121, 148, 120, 146, 123, 122, 108, 121, 129, 113, 125, 112, 141, 126, 126, 132, 126, 127, 138, 101, 130, 113, 125, 128, 138, 122, 120, 119, 112, 114, 127, 119, 131, 136, 117, 125, 139, 144, 114, 124, 124, 132, 115, 129, 133, 146, 134, 121, 128, 137, 131, 169, 122, 131, 143, 115, 118, 125, 128, 128, 124, 128, 137, 123, 140, 125, 128, 120, 122, 133, 127, 118, 106, 115, 120, 115, 120, 124, 140, 115, 120, 126, 133, 144, 134, 152, 121, 130, 123, 134, 119, 128, 128, 123, 137, 125, 127, 114, 120, 109, 131, 105, 129, 133, 127, 136, 120, 128, 128, 120, 121, 116, 136, 131, 125, 118, 114, 130, 128, 128, 117, 130, 116, 132, 119, 126, 138, 112, 123, 116, 114, 117, 121, 104, 134, 120, 129, 125, 128, 124, 127, 127, 114, 108, 144, 128, 112, 122, 134, 123, 133, 123, 125, 130, 147, 127, 120, 122, 127, 141, 139, 135, 110, 114, 102, 129, 121, 148, 127, 127, 111, 121, 134, 134, 129, 144, 127, 112, 125, 114, 122, 134, 152, 133, 131, 129, 127, 116, 119, 111, 120, 116, 134, 114, 127, 127, 125, 123, 126, 153, 112, 131, 132, 124, 129, 120, 137, 118, 124, 131, 122, 113, 123, 126, 129, 130, 127, 133, 118, 124, 115, 118, 126, 128, 114, 111, 131, 115, 127, 118, 113, 104, 129, 119, 113, 144, 127, 122, 123, 124, 117, 125, 132, 146, 116, 137, 115, 138, 133, 131, 130, 132, 115, 110, 122, 116, 118, 128, 133, 122, 124, 122, 128, 117, 134, 128, 117, 140, 143, 132, 110, 132, 117, 116, 127, 116, 126, 135, 118, 127, 138, 112, 124, 120, 142, 119, 137, 115, 120, 123, 134, 137, 127, 118, 123, 142, 110, 115, 129, 112, 111, 120, 122, 131, 116, 121, 114, 121, 140, 132, 132, 132, 120, 128, 115, 119, 107, 111, 122, 137, 140, 140, 130, 134, 132, 132, 122, 146, 110, 126, 136, 140, 113, 147, 118, 113, 123, 144, 120, 117, 120, 126, 105, 121, 117, 127, 118, 150, 123, 132, 112, 136, 134, 129, 126, 117, 126, 127, 140, 136, 130, 137, 102, 148, 118, 121, 111, 126, 123, 127, 112, 106, 113, 128, 121, 110, 142, 123, 133, 146, 107, 121, 129, 124, 138, 146, 114, 114, 117, 123, 140, 124, 120, 115, 110, 116, 133, 130, 106, 130, 128, 134, 144, 138, 141, 116, 130, 127, 144, 120, 111, 132, 117, 111, 140, 124, 132, 130, 135, 118, 131, 119, 136, 93, 140, 114, 117, 108, 115, 122, 135, 122, 127, 131, 130, 134, 130, 108, 140, 118, 146, 136, 120, 122, 132, 114, 147, 131, 117, 127, 138, 130, 129, 154, 137, 142, 122, 119, 103, 121, 130, 110, 145, 127, 113, 127, 134, 110, 112, 116, 138, 127, 104, 146, 116, 125, 129, 133, 126, 131, 129, 130, 118, 112, 116, 131, 118, 124, 140, 131, 103, 129, 126, 124, 133, 125, 121, 107, 145, 108, 125, 115, 137, 130, 145, 111, 131, 117, 134, 131, 131, 122, 121, 121, 114, 115, 117, 122, 129, 127, 129, 129, 116, 123, 131, 119, 122, 128, 134, 123, 134, 141, 139, 116, 120, 125, 129, 118, 126, 137, 132, 103, 117, 121, 127, 130, 110, 136, 128, 129, 141, 135, 133, 143, 114, 120, 117, 109, 117, 132, 109, 146, 133, 116, 129, 128, 120, 113, 97, 151, 119, 125, 117, 130, 113, 114, 143, 142, 136, 121, 136, 122, 138, 125, 119, 121, 116, 132, 129, 114, 125, 117, 144, 116, 127, 139, 121, 128, 104, 121, 154, 114, 109, 137, 112, 109, 111, 131, 130, 123, 128, 120, 125, 138, 130, 146, 122, 128, 107, 116, 113, 120, 112, 122, 122, 122, 141, 134, 133, 129, 135, 114, 111, 118, 129, 129, 114, 132, 115, 114, 114, 130, 125, 130, 135, 129, 114, 119, 128, 125, 125, 120, 108, 129, 129, 129, 135, 114, 136, 117, 127, 124, 136, 120, 139, 123, 124, 105, 145, 118, 123, 121, 135, 131, 125, 134, 120, 144, 126, 129, 128, 109, 139, 137, 114, 115, 141, 134, 133, 124, 136, 118, 131, 120, 139, 117, 136, 117, 111, 121, 136, 110, 112, 109, 148, 121, 116, 143, 118, 127, 136, 108, 116, 128, 152, 126, 119, 118, 130, 110, 125, 131, 120, 134, 135, 122, 143, 111, 128, 128, 150, 125, 127, 134, 112, 133, 124, 131, 108, 105, 125, 105, 122, 121, 123, 108, 105, 130, 118, 134, 113, 130, 109, 126, 137, 135, 114, 126, 108, 126, 125, 129, 125, 149, 130, 123, 121, 125, 136, 119, 123, 119, 121, 143, 134, 127, 133, 130, 130, 122, 132, 132, 121, 120, 125, 144, 108, 133, 130, 97, 129, 119, 110, 126, 132, 129, 108, 130, 114, 137, 136, 127, 138, 125, 128, 152, 119, 121, 119, 99, 136, 140, 122, 114, 116, 127, 129, 112, 119, 131, 113, 118, 128, 128, 126, 142, 114, 139, 125, 122, 138, 123, 127, 131, 119, 135, 129, 140, 122, 130, 138, 128, 123, 111, 136, 133, 140, 116, 138, 130, 107, 147, 113, 125, 134, 135, 132, 147, 131, 119, 131, 142, 114, 138, 107, 137, 117, 129, 122, 142, 132, 115, 124, 128, 130, 108, 118, 124, 117, 126, 113, 112, 144, 113, 121, 139, 128, 131, 135, 118, 131, 114, 134, 108, 136, 130, 119, 128, 138, 144, 128, 129, 124, 115, 122, 124, 116, 114, 129, 132, 113, 138, 129, 142, 118, 123, 113, 116, 127, 138, 116, 128, 129, 127, 133, 140, 115, 124, 124, 128, 128, 117, 126, 130, 129, 131, 117, 128, 115, 113, 135, 130, 112, 130, 125, 128, 126, 122, 122, 125, 119, 127, 131, 124, 141, 124, 111, 129, 121, 135, 124, 130, 119, 125, 126, 121, 108, 120, 143, 134, 120, 133, 121, 118, 114, 111, 118, 132, 153, 110, 112, 114, 135, 126, 139, 130, 106, 115, 125, 132, 126, 131, 131, 133, 137, 114, 120, 124, 130, 118, 119, 116, 124, 127, 111, 129, 132, 134, 118, 120, 125, 141, 119, 109, 129, 119, 128, 144, 126, 122, 114, 132, 129, 113, 123, 118, 128, 106, 133, 135, 147, 120, 115, 117, 104, 131, 126, 126, 117, 144, 110, 117, 114, 124, 123, 124, 127, 117, 120, 135, 123, 108, 119, 123, 124, 129, 115, 129, 118, 127, 128, 121, 140, 135, 123, 116, 110, 130, 127, 135, 107, 115, 107, 128, 118, 125, 112, 126, 140, 126, 114, 126, 112, 108, 126, 126, 136, 125, 105, 144, 137, 139, 127, 125, 126, 119, 116, 138, 119, 140, 125, 133, 131, 123, 110, 123, 125, 119, 116, 119, 143, 108, 119, 115, 133, 122, 131, 120, 133, 126, 137, 129, 127, 128, 119, 134, 117, 136, 136, 122, 118, 128, 133, 133, 128, 135, 122, 126, 123, 118, 115, 126, 141, 113, 142, 129, 120, 116, 128, 119, 147, 126, 128, 128, 121, 132, 110, 95, 116, 135, 121, 135, 126, 122, 113, 129, 127, 125, 119, 134, 123, 135, 120, 140, 124, 128, 130, 125, 126, 132, 126, 116, 107, 129, 121, 149, 116, 116, 107, 145, 127, 118, 118, 103, 136, 117, 147, 131, 154, 137, 114, 105, 120, 104, 126, 140, 129, 106, 139, 131, 98, 122, 124, 124, 116, 141, 120, 121, 124, 135, 134, 136, 119, 134, 122, 120, 133, 141, 124, 142, 129, 130, 125, 118, 122, 120, 129, 130, 109, 124, 120, 135, 115, 132, 124, 106, 114, 149, 125, 134, 128, 113, 132, 115, 125, 121, 115, 135, 132, 152, 106, 144, 137, 149, 129, 125, 132, 132, 129, 131, 126, 125, 124, 114, 136, 120, 135, 143, 126, 115, 127, 150, 122, 124, 125, 117, 122, 120, 132, 121, 138, 138, 116, 121, 115, 99, 125, 122, 126, 126, 133, 123, 128, 132, 127, 121, 133, 125, 130, 111, 115, 124, 121, 132, 129, 107, 123, 106, 121, 137, 120, 124, 124, 132, 134, 111, 112, 119, 124, 143, 121, 118, 141, 130, 116, 138, 124, 137, 124, 139, 130, 114, 122, 119, 131, 132, 130, 149, 126, 127, 129, 112, 119, 134, 144, 128, 111, 126, 115, 119, 133, 122, 119, 121, 135, 140, 112, 122, 122, 109, 139, 135, 118, 115, 131, 145, 119, 115, 135, 119, 126, 128, 127, 110, 112, 133, 133, 147, 112, 116, 122, 120, 136, 130, 122, 140, 134, 138, 122, 132, 127, 133, 126, 133, 109, 134, 133, 117, 141, 123, 138, 129, 127, 134, 137, 122, 126, 135, 122, 119, 132, 133, 127, 126, 126, 133, 133, 120, 110, 129, 121, 116, 133, 130, 115, 125, 118, 126, 135, 116, 121, 112, 121, 122, 119, 109, 113, 119, 141, 133, 128, 119, 127, 123, 135, 114, 118, 110, 113, 131, 119, 118, 127, 123, 138, 121, 124, 129, 134, 144, 124, 115, 142, 121, 115, 131, 143, 132, 125, 118, 124, 115, 114, 121, 123, 133, 122, 124, 113, 112, 127, 136, 113, 128, 130, 133, 120, 138, 137, 130, 124, 120, 128, 121, 120, 131, 132, 110, 128, 132, 113, 120, 149, 109, 126, 110, 118, 131, 127, 138, 116, 146, 112, 102, 114, 122, 114, 134, 136, 106, 109, 151, 118, 119, 128, 141, 124, 122, 134, 118, 114, 122, 119, 139, 140, 128, 126, 125, 122, 125, 131, 136, 142, 136, 116, 115, 130, 130, 116, 149, 127, 133, 128, 136, 111, 125, 117, 122, 129, 119, 120, 118, 120, 121, 111, 117, 121, 132, 120, 128, 111, 127, 123, 137, 118, 117, 141, 128, 118, 123, 122, 120, 144, 146, 132, 131, 132, 121, 124, 120, 115, 135, 108, 126, 140, 127, 137, 128, 110, 130, 99, 123, 136, 110, 114, 109, 124, 115, 137, 107, 125, 123, 131, 128, 122, 121, 149, 138, 135, 112, 117, 135, 131, 111, 120, 113, 124, 119, 112, 107, 137, 121, 136, 136, 122, 122, 110, 136, 121, 107, 134, 124, 129, 133, 137, 120, 140, 123, 117, 132, 121, 124, 126, 110, 123, 124, 121, 137, 142, 127, 132, 115, 130, 121, 139, 121, 132, 117, 136, 125, 121, 124, 127, 136, 121, 118, 142, 128, 128, 135, 134, 117, 128, 140, 128, 135, 129, 125, 145, 135, 120, 121, 129, 137, 130, 111, 122, 130, 119, 109, 130, 143, 124, 117, 122, 138, 129, 114, 113, 123, 128, 124, 118, 126, 109, 128, 126, 127, 108, 122, 131, 124, 139, 122, 136, 132, 143, 124, 120, 129, 121, 126, 126, 122, 129, 136, 131, 131, 118, 113, 123, 125, 125, 123, 125, 113, 118, 133, 124, 113, 127, 114, 122, 109, 120, 102, 132, 116, 148, 131, 149, 135, 137, 123, 110, 138, 114, 139, 124, 117, 118, 136, 108, 144, 125, 123, 142, 122, 129, 136, 129, 122, 137, 136, 127, 127, 153, 127, 109, 125, 132, 133, 132, 139, 127, 116, 124, 116, 114, 142, 118, 130, 120, 124, 121, 130, 126, 131, 123, 131, 124, 127, 131, 119, 126, 126, 115, 132, 116, 125, 118, 117, 129, 126, 119, 140, 139, 135, 127, 133, 115, 123, 121, 122, 135, 140, 119, 130, 130, 110, 122, 113, 142, 122, 130, 138, 129, 110, 125, 117, 123, 127, 131, 138, 95, 116, 132, 132, 137, 121, 130, 117, 133, 113, 107, 104, 119, 128, 109, 109, 106, 121, 125, 145, 120, 124, 144, 133, 103, 119, 124, 122, 124, 126, 111, 130, 122, 131, 123, 120, 136, 141, 123, 137, 135, 126, 126, 108, 128, 132, 123, 113, 131, 128, 118, 112, 132, 149, 115, 120, 138, 124, 109, 134, 120, 137, 127, 142, 118, 137, 130, 131, 138, 110, 98, 134, 108, 118, 128, 124, 125, 124, 124, 120, 108, 129, 129, 129, 121, 129, 135, 129, 128, 128, 117, 109, 116, 133, 131, 133, 144, 120, 135, 123, 115, 128, 120, 118, 117, 119, 117, 120, 130, 111, 136, 116, 113, 138, 115, 117, 120, 139, 125, 114, 127, 125, 124, 117, 130, 123, 132, 142, 133, 160, 128, 127, 125, 122, 110, 126, 134, 103, 133, 102, 130, 126, 124, 138, 141, 137, 132, 144, 132, 138, 141, 123, 118, 121, 123, 127, 108, 114, 128, 118, 138, 122, 128, 123, 127, 115, 133, 118, 135, 137, 125, 128, 122, 107, 116, 142, 140, 130, 146, 136, 120, 142, 126, 111, 105, 140, 134, 123, 125, 119, 124, 132, 121, 122, 131, 136, 131, 142, 114, 135, 136, 107, 124, 118, 115, 135, 125, 150, 114, 100, 116, 129, 104, 118, 129, 123, 113, 124, 123, 113, 128, 138, 131, 128, 146, 132, 138, 123, 129, 127, 129, 120, 109, 139, 81, 126, 131, 125, 130, 128, 121, 128, 108, 115, 125, 125, 121, 128, 145, 119, 128, 114, 112, 151, 112, 98, 116, 130, 116, 123, 135, 117, 127, 131, 120, 132, 123, 132, 127, 117, 127, 143, 133, 135, 132, 126, 118, 125, 128, 134, 139, 111, 120, 110, 139, 127, 131, 142, 134, 125, 120, 125, 130, 105, 143, 138, 124, 113, 114, 138, 115, 145, 140, 119, 117, 129, 123, 120, 126, 107, 103, 129, 121, 110, 116, 126, 122, 115, 136, 116, 128, 138, 114, 123, 128, 128, 120, 125, 122, 130, 132, 127, 122, 118, 137, 134, 121, 127, 124, 128, 122, 126, 126, 129, 128, 119, 121, 112, 149, 138, 141, 133, 123, 121, 119, 127, 122, 132, 112, 116, 133, 124, 115, 132, 118, 121, 121, 120, 158, 132, 109, 131, 119, 144, 127, 132, 119, 148, 102, 133, 110, 131, 123, 134, 118, 139, 120, 109, 110, 116, 138, 108, 142, 141, 143, 119, 136, 128, 144, 117, 121, 128, 121, 130, 128, 135, 125, 122, 143, 117, 138, 121, 129, 118, 116, 143, 116, 123, 125, 133, 124, 115, 108, 134, 131, 125, 134, 124, 123, 123, 124, 118, 125, 124, 132, 126, 132, 119, 125, 131, 131, 109, 118, 133, 135, 118, 128, 132, 128, 124, 135, 104, 125, 131, 123, 115, 140, 100, 131, 122, 132, 146, 122, 105, 129, 135, 120, 114, 142, 125, 117, 114, 131, 131, 131, 139, 138, 117, 124, 130, 123, 114, 131, 120, 134, 123, 129, 117, 113, 119, 131, 134, 134, 116, 117, 134, 117, 116, 112, 134, 111, 131, 108, 133, 120, 126, 138, 130, 146, 146, 125, 109, 130, 123, 166, 142, 124, 138, 111, 116, 120, 130, 112, 110, 130, 123, 111, 124, 133, 115, 118, 152, 120, 117, 127, 144, 122, 114, 120, 131, 137, 125, 124, 118, 130, 129, 138, 139, 128, 132, 118, 116, 136, 126, 113, 142, 121, 122, 126, 127, 131, 122, 136, 135, 135, 101, 143, 136, 132, 124, 112, 131, 134, 115, 111, 132, 118, 118, 127, 144, 101, 147, 125, 145, 129, 132, 133, 124, 117, 133, 117, 127, 135, 136, 135, 139, 121, 132, 124, 113, 132, 128, 125, 114, 108, 118, 129, 118, 110, 124, 128, 124, 114, 136, 125, 139, 150, 123, 119, 150, 119, 123, 142, 124, 124, 122, 127, 131, 138, 125, 131, 122, 119, 145, 140, 127, 138, 133, 139, 119, 116, 142, 127, 106, 131, 123, 116, 124, 123, 134, 118, 144, 112, 127, 137, 122, 132, 118, 125, 123, 106, 132, 119, 137, 144, 120, 125, 117, 121, 131, 127, 120, 140, 121, 129, 137, 101, 120, 135, 149, 123, 127, 119, 111, 129, 118, 127, 117, 123, 110, 132, 146, 125, 146, 126, 122, 116, 107, 113, 123, 114, 138, 149, 138, 143, 120, 129, 128, 119, 121, 118, 125, 124, 125, 130, 130, 131, 139, 120, 131, 127, 118, 127, 132, 126, 127, 120, 128, 124, 115, 119, 110, 107, 127, 119, 143, 125, 120, 155, 128, 128, 125, 120, 131, 133, 122, 123, 108, 131, 129, 143, 105, 115, 137, 132, 138, 127, 100, 116, 115, 125, 120, 139, 123, 128, 113, 123, 112, 131, 124, 129, 124, 118, 129, 113, 119, 117, 125, 145, 97, 125, 143, 120, 120, 145, 116, 130, 118, 128, 110, 117, 125, 119, 132, 120, 111, 131, 117, 137, 140, 144, 106, 119, 114, 132, 124, 126, 118, 99, 121, 135, 122, 142, 138, 128, 120, 114, 118, 135, 141, 129, 132, 132, 118, 120, 119, 134, 117, 139, 109, 129, 136, 141, 119, 116, 116, 111, 124, 136, 125, 125, 123, 116, 134, 114, 124, 119, 118, 125, 139, 127, 124, 140, 138, 123, 135, 113, 118, 134, 125, 120, 130, 120, 130, 131, 123, 117, 118, 125, 111, 128, 140, 111, 141, 117, 130, 121, 120, 118, 120, 125, 117, 129, 130, 121, 130, 124, 123, 118, 126, 131, 119, 126, 118, 140, 116, 130, 131, 113, 133, 142, 130, 122, 112, 116, 125, 127, 153, 117, 111, 144, 120, 120, 144, 138, 126, 137, 130, 119, 108, 131, 126, 138, 134, 124, 141, 117, 129, 108, 133, 131, 129, 120, 116, 140, 131, 123, 120, 141, 119, 120, 126, 142, 136, 140, 121, 146, 135, 148, 133, 141, 118, 124, 129, 132, 136, 152, 127, 119, 122, 128, 123, 107, 112, 128, 115, 130, 129, 121, 129, 121, 130, 119, 118, 137, 114, 105, 111, 157, 135, 135, 117, 129, 117, 143, 143, 109, 113, 107, 118, 126, 111, 120, 132, 123, 103, 121, 137, 124, 125, 108, 127, 120, 116, 143, 116, 118, 124, 117, 125, 114, 110, 123, 123, 114, 124, 139, 128, 127, 121, 122, 131, 137, 106, 135, 108, 113, 136, 122, 110, 137, 122, 131, 119, 116, 128, 102, 144, 111, 130, 117, 106, 121, 115, 121, 125, 134, 125, 128, 125, 125, 121, 129, 119, 133, 125, 130, 131, 113, 149, 132, 127, 116, 136, 112, 119, 127, 137, 133, 129, 125, 119, 137, 126, 127, 126, 108, 132, 120, 132, 115, 118, 137, 123, 129, 120, 119, 136, 122, 132, 140, 137, 124, 128, 124, 115, 107, 124, 115, 124, 119, 133, 116, 117, 125, 125, 122, 123, 124, 137, 135, 113, 117, 113, 127, 118, 116, 132, 131, 130, 134, 120, 137, 118, 113, 124, 134, 127, 108, 125, 117, 136, 137, 122, 124, 133, 139, 114, 135, 120, 117, 130, 129, 124, 132, 106, 113, 130, 121, 129, 127, 127, 128, 116, 129, 104, 119, 133, 86, 115, 141, 136, 111, 119, 134, 122, 120, 158, 124, 114, 121, 138, 137, 110, 137, 124, 125, 121, 126, 127, 123, 112, 133, 136, 117, 129, 110, 144, 114, 136, 126, 126, 157, 123, 144, 131, 137, 111, 126, 126, 99, 130, 136, 126, 148, 121, 131, 121, 133, 120, 108, 119, 120, 147, 116, 132, 131, 122, 134, 117, 120, 133, 125, 124, 121, 118, 145, 118, 129, 126, 128, 120, 127, 131, 103, 119, 123, 140, 123, 117, 131, 126, 120, 117, 133, 140, 113, 124, 126, 132, 130, 131, 119, 118, 126, 101, 127, 128, 110, 125, 124, 137, 143, 123, 127, 118, 146, 126, 137, 116, 133, 119, 110, 116, 133, 126, 125, 140, 117, 119, 134, 120, 138, 142, 133, 107, 108, 131, 133, 121, 140, 113, 114, 131, 125, 117, 133, 140, 114, 117, 145, 119, 126, 132, 122, 139, 126, 130, 145, 115, 126, 116, 125, 129, 132, 124, 109, 119, 130, 119, 133, 128, 119, 138, 130, 134, 114, 139, 107, 119, 113, 115, 112, 116, 116, 129, 131, 116, 122, 128, 108, 123, 117, 116, 134, 127, 133, 133, 122, 120, 118, 112, 113, 117, 112, 133, 127, 128, 120, 135, 127, 146, 138, 120, 131, 141, 123, 114, 122, 123, 132, 126, 121, 116, 118, 123, 106, 118, 131, 124, 123, 107, 128, 118, 115, 143, 117, 133, 114, 115, 137, 114, 135, 134, 107, 114, 116, 128, 120, 149, 142, 140, 124, 132, 127, 125, 123, 117, 99, 126, 143, 127, 144, 120, 113, 120, 139, 126, 119, 136, 126, 120, 115, 124, 119, 116, 116, 138, 112, 132, 123, 137, 138, 114, 114, 121, 125, 103, 130, 132, 118, 151, 110, 117, 119, 136, 130, 136, 95, 111, 124, 127, 117, 138, 134, 127, 126, 117, 127, 159, 124, 111, 124, 126, 112, 100, 125, 126, 115, 127, 132, 127, 123, 119, 127, 134, 123, 135, 111, 124, 125, 120, 142, 128, 114, 110, 100, 134, 140, 121, 116, 139, 117, 126, 128, 128, 132, 117, 123, 105, 138, 127, 128, 128, 135, 134, 145, 145, 131, 122, 141, 111, 108, 133, 136, 122, 123, 134, 115, 134, 143, 126, 123, 133, 133, 132, 121, 125, 131, 133, 120, 107, 122, 141, 134, 119, 129, 130, 129, 147, 121, 125, 122, 128, 131, 129, 108, 139, 116, 133, 121, 122, 127, 133, 129, 111, 126, 134, 134, 109, 134, 109, 131, 122, 120, 130, 130, 127, 118, 113, 117, 135, 126, 115, 120, 123, 124, 122, 109, 114, 128, 135, 124, 125, 129, 120, 120, 120, 132, 136, 118, 114, 131, 109, 119, 125, 134, 101, 118, 131, 113, 125, 127, 124, 117, 120, 122, 123, 134, 116, 115, 111, 130, 134, 132, 115, 127, 136, 128, 126, 125, 120, 115, 129, 142, 118, 128, 124, 145, 124, 132, 119, 119, 134, 123, 134, 128, 133, 143, 145, 124, 124, 122, 131, 127, 105, 121, 115, 123, 133, 133, 124, 136, 130, 120, 135, 103, 128, 104, 120, 128, 107, 132, 128, 138, 123, 128, 124, 123, 150, 124, 116, 107, 111, 130, 124, 125, 123, 121, 124, 120, 137, 119, 124, 129, 104, 136, 124, 136, 129, 111, 126, 116, 128, 122, 95, 123, 139, 127, 123, 126, 136, 125, 114, 120, 129, 113, 129, 123, 117, 130, 121, 139, 124, 125, 124, 145, 131, 146, 123, 132, 107, 112, 150, 124, 140, 115, 119, 120, 136, 127, 128, 132, 114, 112, 120, 117, 122, 98, 135, 133, 142, 102, 125, 127, 131, 130, 136, 122, 137, 124, 123, 121, 124, 131, 139, 117, 128, 122, 107, 115, 132, 123, 130, 118, 107, 145, 127, 125, 126, 135, 130, 128, 128, 127, 114, 120, 138, 129, 117, 120, 125, 124, 126, 118, 129, 126, 123, 120, 125, 125, 106, 114, 112, 112, 128, 141, 131, 130, 137, 123, 113, 128, 123, 127, 126, 121, 130, 128, 117, 119, 123, 122, 130, 121, 153, 140, 126, 117, 129, 133, 134, 125, 124, 119, 132, 122, 130, 110, 131, 131, 146, 119, 135, 114, 120, 128, 120, 117, 128, 118, 126, 113, 130, 100, 117, 133, 140, 126, 120, 133, 125, 113, 120, 127, 132, 133, 137, 121, 120, 125, 108, 122, 139, 135, 110, 137, 158, 120, 122, 130, 123, 124, 121, 130, 111, 116, 138, 125, 127, 137, 108, 135, 123, 132, 128, 123, 136, 125, 139, 117, 118, 160, 127, 109, 119, 114, 109, 137, 131, 137, 118, 122, 92, 143, 132, 135, 120, 118, 123, 110, 125, 130, 128, 123, 132, 124, 108, 130, 106, 126, 118, 125, 115, 113, 134, 126, 109, 132, 105, 123, 132, 127, 124, 129, 112, 136, 118, 130, 134, 148, 137, 110, 122, 112, 138, 120, 147, 113, 120, 137, 129, 139, 124, 134, 127, 126, 131, 123, 126, 153, 129, 116, 125, 125, 120, 115, 125, 107, 137, 121, 133, 101, 115, 136, 138, 123, 133, 110, 131, 127, 129, 127, 110, 104, 122, 118, 129, 107, 139, 104, 115, 112, 129, 113, 117, 118, 115, 121, 124, 123, 130, 135, 122, 136, 126, 114, 113, 115, 129, 105, 107, 129, 122, 103, 123, 121, 117, 134, 123, 118, 116, 125, 130, 122, 131, 104, 128, 128, 122, 112, 125, 131, 137, 114, 124, 126, 128, 113, 119, 131, 123, 103, 109, 110, 118, 130, 119, 110, 130, 114, 127, 136, 129, 116, 158, 102, 109, 132, 134, 122, 123, 126, 124, 127, 118, 159, 115, 124, 114, 120, 135, 137, 118, 126, 116, 129, 110, 103, 122, 119, 144, 114, 100, 136, 133, 133, 115, 132, 124, 125, 123, 125, 127, 116, 116, 114, 131, 136, 129, 109, 146, 106, 125, 102, 114, 109, 130, 130, 112, 137, 131, 120, 137, 129, 127, 113, 124, 114, 136, 121, 120, 114, 130, 117, 119, 121, 127, 136, 119, 124, 134, 108, 127, 132, 130, 129, 157, 127, 110, 135, 119, 133, 119, 101, 134, 122, 111, 120, 116, 117, 110, 125, 122, 118, 118, 114, 109, 127, 126, 135, 129, 123, 113, 137, 116, 121, 101, 120, 122, 114, 120, 118, 121, 115, 108, 112, 120, 127, 131, 121, 126, 126, 112, 104, 118, 130, 134, 116, 129, 125, 138, 123, 116, 133, 122, 120, 120, 132, 126, 128, 118, 110, 137, 150, 104, 122, 129, 122, 122, 143, 133, 122, 112, 117, 121, 111, 134, 130, 137, 115, 115, 116, 125, 114, 140, 124, 133, 117, 104, 127, 111, 120, 130, 116, 118, 143, 124, 132, 129, 118, 117, 129, 109, 137, 120, 126, 121, 131, 124, 124, 116, 121, 135, 126, 110, 127, 114, 132, 120, 123, 126, 123, 127, 109, 123, 138, 138, 127, 125, 102, 127, 135, 140, 129, 123, 125, 128, 128, 128, 117, 135, 138, 130, 119, 128, 131, 125, 132, 129, 118, 121, 117, 123, 130, 136, 123, 116, 128, 115, 111, 116, 134, 138, 129, 120, 129, 113, 117, 127, 125, 121, 128, 127, 133, 113, 125, 136, 122, 132, 148, 114, 141, 119, 126, 152, 123, 125, 126, 127, 137, 138, 138, 124, 111, 121, 120, 124, 132, 121, 134, 117, 145, 120, 119, 129, 138, 137, 128, 124, 118, 135, 133, 121, 120, 153, 119, 121, 137, 133, 136, 112, 123, 110, 131, 143, 124, 125, 128, 133, 131, 136, 105, 120, 166, 142, 114, 119, 127, 113, 120, 130, 130, 124, 127, 121, 125, 125, 120, 110, 117, 121, 135, 136, 148, 134, 114, 121, 130, 134, 113, 119, 116, 121, 140, 133, 141, 137, 122, 130, 119, 138, 133, 122, 106, 124, 101, 131, 130, 121, 147, 121, 121, 130, 128, 130, 139, 126, 123, 131, 126, 131, 131, 143, 135, 107, 112, 105, 136, 127, 120, 129, 125, 132, 127, 122, 125, 127, 127, 126, 130, 126, 124, 116, 124, 131, 122, 120, 120, 130, 140, 135, 127, 111, 108, 126, 136, 105, 120, 120, 121, 119, 129, 115, 126, 102, 126, 112, 148, 105, 127, 118, 125, 134, 119, 141, 119, 140, 117, 116, 118, 124, 140, 128, 115, 124, 114, 120, 133, 124, 133, 131, 132, 122, 108, 126, 142, 148, 140, 131, 132, 130, 133, 121, 105, 141, 131, 116, 122, 144, 127, 123, 122, 139, 118, 115, 119, 130, 130, 119, 119, 131, 136, 124, 115, 120, 111, 146, 143, 112, 111, 116, 116, 123, 94, 120, 114, 132, 133, 117, 135, 133, 126, 115, 134, 110, 145, 139, 121, 107, 127, 126, 131, 137, 122, 119, 135, 110, 127, 118, 118, 123, 129, 132, 137, 126, 129, 133, 139, 134, 128, 120, 124, 145, 133, 126, 127, 115, 114, 126, 126, 122, 131, 114, 110, 141, 120, 110, 121, 122, 127, 121, 134, 136, 149, 119, 124, 117, 116, 118, 118, 112, 112, 120, 130, 111, 139, 139, 120, 112, 118, 127, 125, 124, 124, 118, 122, 127, 132, 132, 116, 130, 115, 129, 124, 139, 120, 122, 130, 121, 128, 131, 109, 122, 114, 130, 118, 136, 127, 116, 117, 121, 127, 117, 141, 121, 113, 128, 121, 125, 128, 125, 111, 125, 141, 125, 123, 121, 126, 162, 121, 120, 120, 129, 141, 119, 112, 125, 122, 124, 127, 142, 131, 109, 133, 146, 122, 117, 132, 125, 129, 138, 129, 127, 123, 117, 128, 116, 134, 124, 119, 127, 122, 110, 112, 131, 141, 138, 127, 126, 120, 127, 132, 127, 125, 114, 114, 129, 112, 133, 133, 126, 110, 118, 113, 119, 111, 129, 143, 123, 125, 123, 115, 113, 121, 146, 139, 127, 146, 112, 121, 138, 126, 113, 115, 142, 119, 110, 110, 128, 117, 136, 120, 119, 136, 110, 138, 126, 120, 132, 113, 129, 119, 121, 115, 125, 130, 115, 135, 127, 132, 124, 121, 111, 143, 138, 113, 129, 137, 130, 136, 120, 130, 123, 117, 114, 171, 117, 129, 111, 131, 130, 123, 123, 129, 117, 111, 114, 125, 124, 120, 116, 134, 118, 118, 118, 121, 127, 130, 150, 138, 115, 129, 139, 117, 140, 133, 139, 127, 138, 135, 119, 130, 125, 131, 121, 112, 123, 124, 125, 134, 124, 117, 129, 132, 112, 109, 123, 115, 128, 127, 124, 141, 126, 138, 109, 103, 120, 123, 122, 118, 136, 130, 117, 112, 129, 139, 135, 103, 107, 118, 132, 144, 119, 130, 127, 131, 122, 133, 111, 111, 139, 111, 124, 128, 135, 135, 118, 120, 144, 134, 115, 124, 114, 148, 122, 115, 145, 119, 128, 126, 145, 121, 112, 131, 121, 131, 116, 120, 115, 133, 140, 139, 133, 117, 131, 153, 131, 130, 120, 132, 117, 120, 115, 126, 122, 124, 124, 123, 135, 109, 137, 126, 101, 109, 132, 126, 110, 112, 118, 131, 116, 128, 128, 116, 131, 125, 135, 109, 133, 119, 138, 135, 115, 100, 127, 127, 130, 145, 98, 131, 128, 120, 120, 152, 129, 109, 115, 126, 126, 125, 138, 146, 131, 125, 132, 136, 128, 125, 121, 133, 116, 123, 131, 110, 127, 121, 139, 121, 126, 142, 131, 122, 128, 114, 136, 123, 124, 129, 130, 127, 143, 122, 138, 131, 109, 122, 129, 127, 120, 113, 128, 130, 146, 101, 130, 114, 136, 127, 144, 125, 135, 124, 119, 118, 135, 126, 121, 145, 135, 141, 118, 123, 130, 125, 115, 131, 129, 126, 118, 119, 119, 123, 144, 132, 132, 116, 133, 134, 118, 128, 118, 125, 127, 109, 122, 126, 123, 147, 110, 125, 131, 128, 119, 120, 127, 127, 133, 123, 141, 127, 126, 117, 125, 119, 116, 113, 124, 120, 129, 109, 129, 122, 130, 127, 121, 122, 117, 118, 129, 130, 108, 148, 137, 142, 127, 124, 123, 121, 136, 119, 130, 121, 123, 113, 128, 123, 151, 126, 118, 120, 128, 144, 108, 123, 121, 141, 149, 141, 127, 126, 118, 128, 125, 126, 130, 115, 143, 125, 121, 117, 120, 119, 126, 129, 126, 121, 121, 122, 122, 130, 128, 106, 150, 128, 119, 119, 118, 123, 131, 118, 123, 131, 130, 127, 121, 120, 134, 150, 134, 119, 128, 140, 125, 124, 116, 132, 123, 115, 121, 112, 121, 122, 127, 131, 124, 138, 126, 119, 115, 111, 140, 136, 120, 146, 116, 141, 129, 138, 125, 102, 125, 113, 118, 138, 136, 123, 113, 116, 141, 128, 103, 150, 125, 126, 151, 117, 122, 135, 142, 113, 121, 117, 127, 141, 129, 127, 149, 117, 124, 125, 106, 116, 145, 134, 147, 109, 140, 147, 94, 132, 130, 113, 119, 135, 137, 139, 108, 115, 135, 113, 127, 140, 121, 115, 135, 107, 110, 121, 126, 139, 131, 121, 136, 123, 117, 148, 125, 123, 132, 141, 141, 116, 120, 120, 117, 131, 115, 123, 121, 129, 131, 117, 118, 142, 120, 115, 133, 119, 116, 135, 138, 122, 113, 120, 130, 126, 118, 123, 112, 117, 129, 118, 129, 143, 127, 122, 132, 118, 129, 97, 131, 97, 115, 128, 107, 117, 142, 113, 126, 123, 140, 127, 153, 126, 108, 124, 125, 130, 133, 123, 128, 128, 136, 118, 122, 117, 133, 128, 129, 131, 116, 120, 131, 158, 121, 126, 122, 123, 126, 107, 119, 120, 124, 116, 126, 127, 127, 134, 135, 125, 115, 148, 104, 95, 136, 123, 114, 129, 132, 118, 112, 123, 114, 133, 112, 121, 139, 128, 118, 127, 118, 111, 111, 119, 122, 117, 136, 135, 137, 131, 123, 116, 104, 141, 91, 123, 105, 122, 123, 134, 120, 117, 122, 112, 114, 139, 127, 119, 124, 135, 133, 149, 125, 120, 116, 129, 140, 112, 133, 117, 118, 107, 102, 120, 129, 124, 113, 118, 119, 123, 127, 122, 115, 132, 117, 123, 143, 123, 124, 131, 111, 145, 117, 126, 112, 104, 128, 120, 120, 134, 129, 107, 116, 115, 117, 125, 127, 110, 135, 132, 126, 155, 123, 145, 121, 120, 122, 129, 132, 151, 130, 109, 122, 128, 129, 136, 126, 146, 140, 121, 120, 132, 135, 130, 105, 133, 107, 127, 97, 118, 135, 118, 103, 124, 128, 110, 136, 120, 117, 125, 138, 136, 115, 133, 134, 123, 110, 137, 116, 108, 122, 121, 109, 131, 124, 141, 132, 126, 117, 119, 119, 134, 140, 117, 102, 116, 124, 133, 119, 139, 117, 137, 120, 123, 134, 129, 113, 125, 119, 125, 121, 122, 117, 122, 144, 126, 129, 127, 146, 132, 122, 131, 110, 135, 119, 118, 128, 108, 119, 110, 122, 131, 97, 135, 130, 132, 123, 129, 116, 117, 143, 131, 129, 112, 116, 115, 111, 139, 131, 112, 112, 122, 135, 139, 136, 137, 135, 123, 134, 113, 118, 123, 127, 123, 124, 134, 136, 136, 122, 133, 122, 126, 126, 121, 119, 115, 125, 128, 130, 124, 135, 130, 108, 132, 106, 153, 118, 110, 122, 125, 115, 114, 133, 122, 119, 144, 133, 131, 114, 135, 126, 122, 129, 135, 114, 138, 122, 110, 117, 128, 129, 120, 141, 135, 122, 128, 126, 128, 123, 128, 108, 107, 140, 111, 115, 120, 127, 136, 131, 117, 130, 115, 127, 136, 120, 128, 121, 126, 125, 130, 121, 136, 114, 131, 124, 115, 116, 116, 144, 125, 128, 109, 115, 141, 124, 147, 123, 126, 120, 144, 140, 125, 117, 138, 138, 121, 131, 116, 120, 122, 134, 143, 111, 126, 118, 140, 118, 108, 147, 120, 113, 126, 129, 134, 119, 121, 120, 124, 139, 120, 122, 113, 116, 132, 135, 127, 129, 136, 131, 127, 114, 138, 122, 125, 112, 120, 143, 130, 128, 129, 139, 114, 131, 127, 118, 119, 148, 122, 137, 123, 123, 121, 105, 122, 138, 122, 131, 120, 128, 117, 119, 100, 122, 130, 116, 124, 125, 122, 129, 136, 140, 103, 146, 120, 124, 117, 105, 107, 126, 103, 127, 120, 141, 113, 125, 141, 117, 129, 127, 114, 137, 129, 147, 152, 123, 125, 129, 128, 123, 126, 109, 125, 130, 116, 119, 122, 127, 106, 113, 114, 135, 129, 126, 127, 128, 131, 121, 131, 129, 143, 123, 142, 117, 132, 125, 138, 124, 124, 130, 117, 133, 136, 117, 118, 107, 122, 120, 124, 134, 114, 110, 124, 126, 123, 134, 135, 112, 113, 107, 126, 118, 130, 111, 151, 111, 127, 120, 131, 130, 131, 143, 104, 111, 134, 130, 110, 106, 122, 124, 124, 114, 119, 109, 137, 120, 116, 160, 133, 126, 116, 136, 124, 133, 123, 121, 123, 128, 118, 110, 134, 107, 107, 124, 152, 116, 129, 117, 133, 134, 120, 112, 130, 150, 139, 120, 135, 116, 134, 121, 135, 112, 137, 133, 123, 119, 143, 112, 138, 125, 121, 117, 114, 118, 133, 122, 119, 111, 114, 117, 135, 113, 148, 118, 128, 128, 117, 123, 124, 139, 129, 127, 108, 112, 137, 137, 121, 110, 129, 116, 137, 130, 156, 128, 117, 143, 124, 126, 117, 121, 130, 115, 129, 120, 126, 129, 119, 118, 135, 130, 127, 99, 129, 132, 124, 126, 120, 133, 143, 133, 102, 160, 129, 131, 134, 112, 123, 134, 124, 128, 124, 109, 134, 136, 135, 111, 131, 132, 119, 132, 118, 133, 138, 107, 118, 139, 142, 125, 129, 136, 133, 135, 123, 117, 133, 139, 118, 114, 118, 121, 130, 144, 119, 139, 114, 124, 131, 145, 105, 129, 121, 119, 126, 126, 122, 147, 133, 138, 143, 138, 128, 124, 113, 125, 117, 127, 119, 116, 131, 110, 129, 116, 123, 126, 125, 138, 134, 135, 123, 109, 126, 124, 138, 121, 126, 150, 119, 130, 129, 108, 138, 128, 116, 122, 119, 135, 133, 124, 130, 121, 142, 134, 123, 119, 127, 117, 130, 114, 126, 133, 125, 121, 141, 122, 121, 125, 112, 126, 122, 128, 127, 147, 136, 123, 125, 133, 137, 117, 129, 120, 131, 142, 124, 121, 127, 123, 115, 126, 118, 121, 124, 108, 105, 107, 133, 113, 126, 109, 128, 122, 125, 124, 115, 137, 128, 131, 136, 124, 125, 128, 134, 127, 113, 130, 149, 124, 111, 136, 124, 139, 122, 134, 126, 132, 154, 114, 149, 113, 123, 122, 125, 111, 135, 131, 124, 111, 124, 114, 125, 127, 122, 136, 111, 121, 113, 133, 127, 122, 120, 116, 121, 117, 124, 125, 137, 149, 114, 132, 115, 124, 131, 132, 117, 129, 122, 139, 118, 99, 127, 124, 125, 123, 126, 126, 114, 133, 119, 126, 132, 126, 122, 114, 137, 117, 112, 103, 132, 123, 138, 119, 115, 113, 125, 102, 119, 119, 123, 123, 97, 106, 112, 108, 140, 129, 122, 125, 125, 130, 100, 118, 126, 108, 133, 120, 155, 121, 103, 108, 130, 120, 120, 141, 116, 123, 133, 120, 128, 147, 130, 133, 124, 132, 134, 118, 115, 126, 133, 120, 124, 107, 119, 123, 141, 120, 106, 108, 129, 120, 135, 99, 124, 119, 124, 143, 127, 122, 125, 130, 129, 134, 115, 120, 111, 139, 131, 149, 122, 126, 120, 137, 118, 133, 145, 129, 125, 121, 130, 134, 121, 131, 107, 113, 114, 120, 117, 139, 120, 131, 134, 126, 110, 130, 111, 132, 133, 108, 120, 131, 130, 137, 132, 118, 107, 137, 135, 136, 122, 125, 120, 117, 125, 123, 141, 124, 143, 139, 123, 107, 110, 115, 127, 132, 137, 129, 138, 133, 121, 111, 140, 134, 120, 120, 133, 129, 125, 124, 121, 131, 132, 138, 137, 121, 129, 116, 107, 116, 124, 136, 122, 131, 112, 133, 129, 136, 137, 123, 119, 155, 124, 130, 145, 112, 131, 144, 127, 128, 119, 129, 130, 118, 124, 116, 131, 110, 115, 131, 141, 121, 133, 112, 124, 121, 127, 136, 122, 137, 129, 115, 114, 118, 137, 146, 119, 115, 116, 129, 120, 121, 101, 112, 125, 138, 124, 125, 132, 127, 108, 140, 114, 118, 124, 132, 133, 136, 116, 128, 134, 128, 132, 117, 126, 127, 127, 124, 130, 129, 114, 139, 138, 132, 128, 130, 122, 134, 130, 127, 113, 141, 132, 138, 131, 126, 134, 119, 128, 122, 118, 124, 131, 118, 125, 124, 121, 124, 129, 133, 118, 126, 141, 126, 128, 114, 131, 114, 127, 131, 109, 128, 108, 126, 135, 123, 114, 128, 123, 144, 113, 116, 115, 117, 114, 131, 123, 129, 122, 120, 120, 135, 130, 104, 134, 113, 117, 118, 96, 117, 133, 124, 113, 111, 121, 127, 101, 125, 119, 135, 152, 123, 126, 114, 130, 124, 128, 144, 128, 121, 148, 100, 120, 117, 115, 146, 117, 118, 130, 130, 131, 117, 115, 126, 122, 130, 109, 127, 130, 129, 118, 109, 116, 121, 115, 134, 109, 137, 136, 127, 122, 131, 136, 142, 116, 139, 119, 125, 130, 133, 117, 135, 130, 137, 123, 109, 121, 134, 121, 126, 114, 116, 125, 115, 117, 113, 144, 116, 135, 128, 117, 135, 131, 131, 131, 120, 124, 111, 115, 132, 130, 134, 120, 123, 136, 133, 111, 131, 131, 131, 126, 137, 127, 106, 125, 138, 119, 125, 135, 119, 135, 111, 125, 142, 130, 115, 136, 139, 140, 124, 117, 132, 132, 124, 124, 120, 102, 124, 135, 124, 130, 125, 121, 117, 120, 139, 119, 113, 117, 109, 116, 118, 118, 125, 140, 131, 142, 129, 124, 124, 125, 126, 131, 129, 149, 150, 134, 126, 125, 127, 111, 113, 126, 122, 118, 128, 124, 112, 118, 145, 107, 120, 123, 130, 130, 113, 126, 129, 119, 117, 131, 130, 137, 128, 147, 116, 125, 133, 117, 119, 123, 134, 112, 123, 128, 119, 124, 133, 130, 127, 111, 120, 118, 105, 114, 117, 130, 128, 118, 127, 129, 154, 118, 113, 117, 135, 118, 117, 107, 117, 114, 131, 158, 146, 119, 133, 129, 123, 127, 111, 130, 119, 128, 123, 144, 145, 125, 129, 124, 110, 140, 133, 108, 125, 133, 125, 140, 127, 130, 127, 118, 119, 135, 120, 114, 126, 119, 132, 113, 134, 134, 108, 129, 136, 131, 118, 123, 101, 149, 127, 132, 126, 120, 136, 108, 124, 124, 126, 137, 135, 138, 121, 119, 134, 136, 129, 131, 116, 105, 109, 121, 131, 137, 125, 120, 133, 113, 128, 135, 141, 128, 119, 129, 110, 136, 129, 122, 114, 119, 114, 109, 125, 123, 131, 137, 124, 137, 121, 131, 130, 118, 123, 113, 124, 118, 130, 122, 107, 134, 125, 116, 126, 127, 129, 131, 138, 118, 133, 132, 112, 124, 124, 126, 123, 127, 119, 135, 110, 113, 115, 116, 119, 141, 110, 117, 136, 133, 116, 141, 97, 115, 132, 127, 121, 143, 127, 127, 114, 128, 128, 127, 115, 132, 111, 127, 141, 121, 120, 123, 131, 112, 134, 118, 124, 120, 131, 121, 129, 123, 124, 123, 107, 105, 117, 121, 147, 133, 121, 135, 128, 117, 115, 120, 128, 115, 113, 122, 121, 124, 118, 141, 116, 118, 129, 110, 129, 116, 124, 107, 138, 118, 146, 134, 132, 139, 137, 105, 126, 148, 144, 102, 136, 136, 111, 127, 109, 127, 134, 117, 128, 122, 118, 139, 129, 148, 128, 119, 115, 127, 122, 126, 127, 105, 103, 128, 114, 133, 115, 132, 118, 140, 114, 125, 112, 126, 134, 127, 129, 112, 124, 113, 123, 118, 122, 123, 146, 122, 119, 114, 119, 118, 104, 125, 120, 111, 123, 129, 121, 114, 129, 126, 112, 139, 105, 139, 122, 122, 136, 116, 137, 133, 154, 119, 111, 122, 128, 110, 130, 137, 147, 119, 119, 130, 122, 129, 137, 140, 104, 133, 134, 125, 123, 128, 126, 121, 124, 133, 124, 137, 127, 113, 121, 123, 130, 129, 129, 123, 119, 123, 129, 128, 133, 132, 130, 120, 111, 111, 114, 125, 123, 122, 104, 124, 126, 119, 133, 121, 124, 125, 125, 129, 111, 131, 143, 130, 129, 107, 123, 117, 118, 130, 129, 113, 126, 142, 112, 132, 128, 133, 123, 110, 124, 136, 126, 117, 121, 125, 116, 118, 122, 130, 117, 118, 111, 130, 121, 150, 123, 122, 119, 126, 129, 138, 127, 119, 127, 125, 132, 132, 131, 137, 118, 130, 117, 124, 133, 125, 126, 132, 134, 125, 128, 120, 110, 121, 125, 119, 132, 113, 145, 108, 107, 133, 113, 112, 135, 111, 159, 137, 137, 152, 121, 135, 133, 132, 132, 104, 117, 162, 129, 127, 142, 107, 127, 131, 114, 121, 130, 134, 117, 135, 115, 131, 120, 123, 121, 126, 132, 126, 128, 125, 137, 111, 93, 112, 127, 126, 157, 110, 110, 124, 134, 128, 126, 115, 133, 137, 131, 131, 130, 116, 126, 107, 117, 127, 124, 123, 125, 121, 135, 132, 124, 123, 124, 127, 132, 138, 125, 131, 118, 134, 116, 121, 106, 132, 139, 132, 132, 124, 129, 136, 135, 125, 137, 115, 119, 125, 111, 119, 138, 123, 149, 130, 117, 128, 115, 120, 121, 137, 130, 132, 139, 120, 128, 111, 115, 122, 133, 107, 140, 128, 107, 130, 153, 121, 113, 127, 115, 120, 111, 111, 112, 137, 122, 125, 124, 120, 117, 139, 137, 121, 103, 135, 117, 132, 131, 144, 116, 120, 127, 133, 127, 104, 113, 110, 112, 125, 102, 121, 124, 129, 132, 91, 133, 139, 122, 122, 112, 128, 130, 126, 112, 122, 144, 124, 124, 118, 132, 132, 127, 121, 111, 124, 120, 141, 126, 123, 120, 121, 127, 133, 121, 116, 111, 134, 128, 122, 118, 118, 128, 137, 136, 116, 110, 113, 127, 131, 131, 109, 116, 120, 129, 127, 128, 114, 105, 124, 138, 131, 121, 128, 127, 129, 134, 127, 126, 137, 133, 140, 121, 125, 113, 131, 133, 140, 132, 131, 118, 125, 126, 123, 120, 136, 121, 131, 129, 114, 125, 118, 139, 125, 126, 127, 128, 136, 135, 120, 135, 129, 128, 130, 136, 124, 121, 136, 133, 121, 121, 135, 124, 132, 113, 127, 127, 127, 139, 121, 141, 131, 142, 120, 130, 118, 142, 119, 128, 122, 140, 138, 130, 109, 130, 108, 154, 122, 121, 146, 116, 111, 144, 126, 127, 135, 138, 130, 138, 131, 116, 129, 135, 143, 136, 130, 140, 100, 112, 123, 130, 131, 119, 124, 125, 114, 111, 115, 135, 113, 117, 133, 126, 105, 101, 126, 119, 117, 118, 128, 137, 141, 125, 149, 146, 139, 123, 136, 134, 134, 128, 122, 113, 126, 124, 124, 133, 117, 144, 142, 112, 125, 163, 121, 129, 136, 114, 131, 105, 127, 137, 121, 118, 141, 111, 103, 124, 119, 124, 125, 106, 139, 125, 126, 144, 123, 119, 132, 115, 139, 124, 134, 140, 127, 125, 130, 124, 124, 118, 132, 139, 115, 121, 129, 125, 133, 121, 132, 120, 129, 138, 119, 123, 123, 136, 123, 126, 123, 117, 112, 130, 123, 125, 131, 120, 118, 110, 115, 126, 109, 127, 122, 126, 125, 112, 123, 125, 114, 120, 117, 147, 120, 113, 132, 119, 123, 143, 132, 122, 109, 119, 114, 140, 138, 112, 135, 120, 140, 123, 127, 136, 128, 111, 121, 128, 135, 101, 145, 137, 127, 145, 124, 125, 147, 158, 134, 126, 118, 129, 114, 117, 120, 130, 124, 126, 124, 130, 130, 119, 142, 119, 104, 115, 120, 115, 137, 119, 121, 119, 129, 122, 131, 129, 128, 130, 128, 132, 125, 132, 107, 123, 128, 134, 132, 124, 149, 139, 129, 119, 114, 120, 129, 137, 119, 119, 142, 119, 121, 118, 135, 130, 122, 132, 139, 136, 109, 99, 124, 120, 111, 137, 140, 122, 136, 144, 117, 128, 131, 128, 116, 129, 125, 138, 116, 128, 121, 120, 115, 124, 132, 125, 123, 123, 133, 129, 129, 108, 128, 119, 131, 120, 148, 111, 127, 127, 128, 113, 119, 128, 135, 151, 127, 141, 135, 110, 136, 128, 136, 114, 131, 140, 136, 113, 129, 126, 115, 117, 125, 148, 143, 122, 132, 101, 122, 123, 132, 111, 159, 102, 125, 117, 137, 129, 119, 112, 124, 134, 99, 107, 129, 118, 122, 126, 125, 131, 119, 117, 127, 113, 130, 128, 120, 104, 126, 120, 106, 119, 111, 132, 116, 133, 144, 122, 130, 132, 150, 129, 125, 147, 127, 129, 137, 126, 105, 113, 127, 122, 126, 129, 107, 98, 106, 133, 123, 132, 119, 128, 139, 117, 142, 114, 114, 125, 122, 139, 128, 120, 129, 113, 116, 126, 130, 137, 120, 121, 133, 132, 125, 113, 112, 136, 140, 131, 130, 123, 122, 106, 134, 129, 112, 124, 138, 146, 130, 125, 141, 122, 141, 135, 127, 135, 128, 144, 122, 140, 122, 123, 136, 94, 135, 138, 137, 131, 125, 117, 124, 135, 129, 116, 140, 147, 130, 138, 114, 128, 115, 131, 114, 127, 119, 151, 151, 104, 119, 125, 124, 137, 119, 113, 119, 121, 120, 123, 138, 131, 122, 131, 109, 125, 136, 112, 141, 123, 130, 117, 128, 137, 127, 126, 122, 143, 131, 115, 127, 133, 100, 112, 126, 138, 124, 117, 124, 127, 122, 138, 119, 114, 152, 128, 135, 142, 129, 100, 129, 132, 128, 128, 130, 108, 119, 126, 127, 117, 113, 128, 134, 135, 99, 126, 113, 130, 125, 127, 97, 118, 133, 149, 115, 123, 135, 105, 124, 130, 119, 99, 125, 120, 109, 129, 143, 130, 128, 139, 116, 120, 122, 138, 123, 124, 133, 114, 136, 114, 128, 123, 130, 118, 133, 124, 124, 117, 123, 114, 109, 125, 105, 137, 117, 135, 125, 136, 126, 128, 92, 125, 114, 113, 136, 135, 128, 114, 135, 117, 109, 124, 117, 140, 143, 125, 127, 126, 113, 139, 122, 155, 123, 135, 130, 136, 121, 142, 147, 112, 116, 127, 118, 94, 124, 114, 144, 114, 119, 112, 143, 139, 122, 135, 144, 132, 111, 140, 120, 131, 145, 128, 110, 135, 108, 118, 133, 112, 107, 122, 119, 127, 110, 133, 131, 121, 134, 112, 116, 119, 130, 128, 123, 132, 106, 119, 147, 134, 155, 132, 112, 127, 125, 128, 115, 127, 137, 102, 128, 121, 122, 114, 115, 145, 130, 121, 120, 105, 127, 143, 131, 116, 106, 127, 125, 112, 112, 105, 111, 144, 111, 117, 132, 136, 128, 112, 110, 126, 126, 108, 101, 126, 107, 123, 122, 126, 124, 118, 117, 137, 113, 102, 127, 128, 113, 115, 124, 138, 120, 118, 112, 119, 129, 123, 129, 142, 145, 119, 129, 140, 120, 121, 125, 125, 125, 143, 111, 149, 110, 128, 128, 138, 120, 129, 112, 116, 107, 130, 132, 116, 123, 135, 139, 108, 134, 127, 119, 135, 135, 125, 121, 110, 152, 148, 113, 117, 134, 145, 121, 119, 116, 145, 135, 148, 113, 112, 115, 143, 146, 114, 122, 129, 109, 123, 128, 129, 147, 121, 130, 123, 124, 123, 136, 107, 114, 126, 126, 106, 125, 133, 115, 133, 119, 130, 117, 126, 122, 130, 127, 123, 125, 115, 131, 114, 129, 116, 124, 142, 102, 111, 126, 131, 128, 140, 134, 113, 125, 131, 117, 130, 139, 115, 123, 126, 127, 116, 126, 137, 128, 113, 155, 136, 141, 122, 128, 119, 105, 156, 132, 100, 125, 117, 117, 130, 109, 133, 110, 116, 119, 117, 109, 109, 127, 123, 124, 120, 137, 149, 130, 106, 133, 118, 128, 121, 122, 141, 134, 118, 118, 144, 100, 124, 128, 120, 143, 109, 119, 129, 119, 123, 138, 124, 121, 144, 114, 129, 131, 136, 123, 126, 123, 141, 120, 136, 121, 147, 150, 128, 142, 119, 130, 115, 121, 108, 118, 123, 152, 139, 130, 125, 119, 123, 131, 112, 126, 126, 103, 118, 131, 122, 118, 139, 137, 123, 129, 116, 133, 121, 123, 133, 123, 136, 140, 102, 124, 121, 125, 147, 124, 129, 121, 88, 137, 126, 129, 123, 117, 134, 133, 125, 147, 107, 110, 119, 139, 119, 134, 118, 132, 150, 109, 127, 128, 108, 93, 111, 133, 130, 115, 138, 131, 126, 126, 134, 118, 115, 136, 114, 125, 122, 112, 120, 125, 137, 134, 125, 120, 122, 122, 130, 121, 126, 114, 112, 129, 117, 147, 129, 123, 138, 140, 114, 107, 117, 124, 122, 123, 114, 127, 120, 121, 137, 132, 121, 115, 123, 127, 138, 118, 121, 110, 124, 137, 136, 121, 126, 105, 109, 129, 120, 126, 123, 131, 119, 129, 134, 137, 131, 131, 132, 118, 130, 124, 110, 128, 116, 123, 119, 120, 120, 133, 131, 130, 114, 110, 122, 128, 115, 113, 125, 113, 140, 148, 132, 121, 111, 114, 119, 143, 159, 127, 110, 130, 129, 113, 116, 120, 122, 127, 126, 133, 116, 126, 130, 114, 118, 121, 124, 107, 122, 107, 122, 123, 141, 131, 120, 121, 131, 133, 139, 155, 131, 113, 106, 135, 117, 123, 116, 97, 127, 140, 150, 118, 126, 136, 136, 130, 131, 128, 149, 114, 119, 130, 133, 124, 118, 138, 138, 121, 119, 115, 121, 140, 107, 120, 119, 109, 113, 122, 136, 122, 122, 119, 119, 150, 115, 134, 127, 116, 129, 128, 138, 137, 120, 129, 123, 123, 118, 115, 106, 121, 133, 138, 115, 132, 121, 122, 117, 118, 120, 120, 115, 106, 117, 120, 122, 112, 146, 137, 127, 121, 141, 119, 143, 126, 131, 118, 137, 121, 126, 107, 135, 114, 104, 125, 127, 149, 119, 121, 103, 122, 135, 130, 123, 118, 105, 142, 123, 133, 114, 137, 126, 136, 105, 128, 116, 123, 91, 134, 123, 127, 140, 110, 127, 128, 124, 133, 123, 127, 142, 130, 129, 106, 122, 123, 121, 120, 110, 118, 122, 130, 135, 120, 121, 130, 144, 125, 125, 126, 114, 129, 117, 118, 111, 132, 125, 127, 108, 129, 117, 114, 112, 107, 126, 101, 110, 128, 102, 122, 145, 102, 121, 116, 124, 136, 130, 118, 130, 144, 124, 138, 117, 109, 127, 142, 112, 133, 119, 125, 122, 147, 151, 118, 125, 119, 125, 133, 131, 141, 138, 123, 142, 150, 133, 126, 139, 127, 125, 143, 136, 114, 119, 146, 117, 129, 110, 119, 176, 132, 131, 116, 104, 139, 110, 138, 144, 126, 111, 129, 124, 103, 129, 121, 148, 136, 138, 128, 115, 133, 108, 125, 114, 124, 142, 145, 134, 121, 145, 112, 117, 131, 105, 123, 109, 120, 131, 120, 132, 128, 138, 128, 147, 121, 116, 121, 125, 123, 137, 123, 121, 124, 137, 161, 119, 115, 135, 123, 129, 118, 114, 132, 124, 139, 121, 116, 125, 129, 132, 124, 124, 126, 125, 124, 129, 113, 135, 127, 125, 138, 134, 144, 127, 137, 108, 143, 137, 136, 131, 111, 120, 135, 145, 133, 129, 124, 147, 119, 148, 142, 132, 110, 128, 114, 116, 136, 138, 115, 144, 140, 120, 147, 131, 129, 98, 128, 139, 114, 124, 148, 128, 124, 134, 130, 125, 122, 137, 130, 110, 136, 140, 110, 124, 122, 123, 119, 126, 141, 126, 112, 115, 124, 140, 126, 124, 144, 131, 142, 137, 120, 146, 124, 134, 135, 125, 123, 125, 112, 134, 125, 134, 144, 129, 140, 147, 128, 130, 122, 144, 118, 135, 125, 109, 131, 124, 125, 131, 152, 130, 129, 127, 124, 136, 129, 130, 116, 119, 144, 111, 124, 117, 118, 125, 112, 139, 125, 104, 111, 123, 138, 132, 120, 150, 131, 127, 108, 121, 140, 122, 117, 138, 116, 131, 141, 109, 122, 121, 121, 130, 131, 145, 117, 116, 110, 107, 118, 114, 125, 134, 115, 119, 137, 112, 124, 136, 113, 123, 95, 112, 117, 120, 119, 132, 122, 119, 120, 108, 130, 114, 141, 103, 111, 132, 111, 112, 108, 111, 119, 122, 134, 112, 146, 138, 142, 123, 122, 160, 138, 111, 135, 123, 127, 125, 131, 130, 119, 112, 133, 117, 129, 102, 121, 120, 109, 122, 101, 124, 133, 102, 132, 126, 127, 132, 116, 129, 117, 144, 134, 131, 110, 127, 127, 120, 115, 148, 140, 117, 107, 144, 119, 126, 139, 107, 124, 126, 132, 140, 131, 126, 144, 120, 121, 116, 135, 139, 117, 122, 116, 108, 133, 132, 123, 135, 123, 140, 119, 137, 131, 106, 114, 130, 121, 133, 138, 121, 132, 117, 100, 124, 135, 135, 128, 125, 125, 124, 119, 128, 109, 132, 141, 110, 120, 141, 124, 118, 132, 121, 124, 137, 130, 121, 152, 145, 123, 121, 131, 156, 121, 125, 117, 126, 129, 121, 107, 127, 126, 133, 122, 130, 125, 133, 131, 125, 115, 149, 133, 120, 129, 129, 130, 114, 114, 118, 144, 133, 158, 119, 136, 128, 125, 138, 118, 123, 127, 118, 123, 130, 118, 130, 128, 115, 134, 149, 122, 144, 119, 127, 150, 135, 129, 106, 125, 109, 120, 98, 124, 130, 134, 130, 115, 135, 127, 126, 126, 117, 120, 127, 133, 134, 135, 117, 102, 120, 132, 133, 134, 123, 129, 131, 123, 139, 131, 115, 125, 104, 139, 133, 116, 107, 148, 131, 133, 128, 134, 169, 110, 118, 109, 113, 131, 122, 132, 141, 129, 116, 128, 135, 141, 124, 113, 109, 126, 141, 132, 137, 111, 125, 120, 135, 107, 138, 143, 119, 122, 130, 122, 122, 136, 130, 137, 136, 133, 130, 134, 116, 126, 121, 141, 122, 140, 124, 119, 133, 120, 125, 127, 119, 101, 105, 126, 117, 132, 141, 116, 126, 109, 116, 132, 122, 117, 107, 139, 102, 121, 126, 137, 121, 125, 149, 126, 144, 141, 119, 125, 117, 124, 121, 122, 128, 144, 117, 126, 129, 133, 119, 105, 111, 139, 124, 120, 120, 121, 125, 121, 129, 128, 123, 119, 123, 124, 134, 120, 121, 130, 103, 124, 122, 116, 129, 127, 117, 111, 125, 135, 126, 106, 111, 132, 119, 152, 119, 111, 136, 126, 113, 129, 121, 111, 111, 118, 98, 115, 130, 123, 126, 127, 110, 117, 131, 140, 133, 110, 121, 120, 114, 155, 130, 134, 113, 133, 135, 112, 133, 140, 127, 114, 120, 140, 122, 106, 116, 140, 147, 112, 130, 143, 127, 122, 117, 122, 134, 143, 106, 153, 119, 135, 127, 123, 125, 117, 129, 133, 147, 109, 121, 118, 140, 134, 137, 128, 136, 118, 144, 124, 127, 119, 131, 122, 118, 117, 92, 128, 122, 130, 151, 127, 128, 119, 131, 140, 153, 122, 136, 148, 110, 117, 124, 142, 106, 113, 139, 123, 139, 118, 127, 111, 121, 119, 113, 126, 121, 131, 120, 135, 125, 139, 108, 134, 119, 142, 131, 129, 113, 112, 125, 128, 117, 128, 110, 115, 132, 122, 141, 121, 139, 113, 126, 136, 123, 115, 126, 121, 133, 122, 135, 123, 125, 122, 135, 140, 113, 108, 120, 108, 120, 119, 126, 128, 120, 128, 131, 133, 106, 106, 130, 114, 131, 127, 113, 119, 108, 101, 129, 129, 133, 114, 126, 121, 119, 122, 127, 150, 134, 110, 132, 109, 119, 138, 125, 122, 126, 103, 131, 105, 134, 149, 115, 121, 109, 133, 128, 138, 116, 132, 121, 141, 145, 124, 127, 134, 142, 119, 128, 117, 109, 119, 136, 131, 112, 125, 140, 126, 125, 128, 115, 140, 113, 110, 117, 138, 139, 129, 118, 119, 132, 141, 96, 113, 127, 118, 115, 116, 118, 125, 148, 122, 123, 122, 128, 134, 122, 122, 128, 142, 133, 138, 123, 113, 123, 121, 128, 136, 137, 148, 131, 126, 124, 130, 133, 132, 131, 129, 126, 122, 122, 127, 100, 146, 127, 138, 116, 150, 110, 132, 125, 120, 137, 109, 130, 150, 125, 148, 115, 122, 130, 130, 138, 120, 118, 123, 124, 124, 125, 124, 122, 131, 124, 139, 130, 130, 113, 113, 113, 140, 141, 107, 118, 121, 126, 144, 137, 136, 130, 130, 120, 127, 122, 129, 135, 106, 130, 138, 123, 130, 127, 125, 124, 139, 124, 129, 127, 128, 128, 104, 121, 143, 132, 132, 118, 110, 127, 120, 153, 123, 117, 131, 124, 140, 128, 125, 132, 125, 144, 113, 126, 120, 114, 121, 131, 118, 122, 134, 112, 123, 136, 118, 121, 130, 159, 131, 131, 110, 138, 135, 122, 121, 126, 118, 130, 132, 129, 112, 123, 117, 138, 110, 158, 112, 120, 117, 118, 135, 137, 126, 124, 132, 109, 135, 133, 134, 95, 102, 156, 121, 111, 108, 139, 120, 100, 132, 124, 122, 129, 116, 147, 138, 111, 109, 130, 127, 122, 116, 116, 138, 132, 117, 131, 115, 123, 119, 126, 132, 147, 128, 109, 137, 121, 133, 125, 134, 109, 112, 118, 121, 119, 128, 115, 121, 111, 116, 132, 136, 120, 109, 121, 128, 108, 132, 104, 128, 118, 108, 132, 131, 124, 112, 126, 106, 128, 132, 124, 122, 117, 115, 141, 135, 117, 121, 112, 116, 118, 125, 130, 120, 133, 140, 106, 146, 126, 127, 115, 136, 127, 128, 109, 103, 116, 135, 133, 113, 116, 131, 109, 112, 112, 121, 125, 127, 129, 115, 133, 100, 122, 150, 108, 124, 134, 130, 120, 120, 135, 125, 129, 115, 142, 116, 126, 122, 130, 122, 112, 127, 136, 151, 133, 134, 132, 144, 122, 123, 120, 122, 128, 115, 131, 116, 109, 116, 132, 127, 135, 128, 129, 113, 115, 121, 136, 125, 129, 130, 114, 120, 129, 131, 137, 136, 116, 131, 138, 126, 106, 123, 134, 123, 133, 137, 120, 141, 135, 139, 139, 102, 123, 121, 133, 123, 154, 133, 117, 145, 116, 118, 107, 128, 139, 125, 127, 121, 103, 144, 125, 111, 136, 109, 119, 127, 103, 122, 124, 112, 137, 123, 138, 136, 112, 124, 129, 125, 142, 112, 96, 127, 129, 123, 126, 124, 115, 117, 128, 116, 135, 121, 138, 123, 124, 124, 118, 125, 126, 126, 113, 133, 146, 128, 130, 141, 143, 127, 128, 125, 125, 120, 115, 123, 117, 136, 144, 134, 118, 127, 122, 115, 130, 113, 138, 119, 134, 121, 114, 117, 139, 122, 124, 124, 130, 118, 136, 133, 139, 151, 132, 125, 95, 140, 103, 118, 112, 125, 139, 150, 124, 132, 119, 107, 128, 142, 125, 116, 136, 131, 121, 114, 152, 127, 133, 126, 114, 132, 135, 146, 128, 129, 133, 114, 113, 115, 111, 108, 115, 118, 117, 113, 112, 127, 145, 136, 152, 120, 130, 132, 141, 118, 115, 133, 131, 116, 112, 127, 124, 120, 119, 135, 128, 150, 110, 120, 131, 112, 127, 135, 127, 122, 122, 130, 145, 131, 117, 138, 129, 131, 125, 136, 142, 132, 125, 148, 123, 139, 133, 135, 119, 134, 125, 113, 132, 117, 113, 119, 137, 134, 112, 120, 139, 92, 123, 109, 116, 132, 144, 134, 111, 116, 116, 143, 120, 127, 121, 107, 127, 140, 147, 116, 108, 143, 135, 131, 140, 130, 130, 123, 136, 120, 138, 135, 127, 130, 135, 116, 142, 109, 137, 129, 121, 134, 118, 138, 124, 140, 114, 128, 123, 123, 138, 130, 120, 116, 122, 145, 132, 124, 135, 127, 106, 112, 124, 103, 141, 113, 143, 120, 131, 123, 127, 131, 130, 139, 129, 118, 136, 129, 126, 125, 121, 123, 123, 127, 122, 132, 132, 120, 148, 131, 111, 125, 108, 130, 108, 139, 120, 100, 110, 121, 150, 152, 112, 110, 123, 119, 122, 123, 116, 116, 116, 126, 122, 125, 105, 135, 127, 135, 122, 119, 152, 129, 146, 128, 120, 124, 144, 110, 111, 107, 121, 125, 128, 119, 131, 140, 135, 128, 153, 137, 130, 110, 139, 114, 126, 131, 127, 119, 124, 123, 126, 120, 127, 110, 127, 126, 120, 129, 128, 131, 120, 145, 116, 115, 134, 138, 125, 142, 124, 130, 138, 123, 129, 140, 123, 107, 138, 108, 125, 123, 130, 136, 123, 116, 127, 138, 113, 124, 124, 116, 114, 123, 122, 144, 135, 129, 131, 113, 140, 116, 140, 123, 139, 117, 120, 125, 127, 106, 131, 151, 129, 119, 102, 137, 138, 137, 129, 122, 136, 106, 107, 117, 112, 112, 117, 137, 118, 118, 117, 135, 120, 120, 119, 117, 110, 145, 130, 113, 116, 132, 95, 117, 131, 118, 149, 123, 107, 118, 121, 120, 123, 157, 119, 146, 113, 166, 127, 133, 122, 129, 141, 137, 127, 138, 126, 126, 134, 123, 127, 123, 126, 127, 118, 133, 134, 124, 124, 118, 130, 123, 131, 133, 126, 124, 120, 119, 111, 124, 133, 137, 143, 122, 118, 134, 117, 129, 129, 113, 129, 117, 119, 110, 129, 129, 129, 129, 128, 130, 123, 151, 129, 140, 134, 114, 113, 138, 128, 133, 105, 116, 121, 117, 112, 118, 120, 121, 115, 126, 115, 126, 123, 124, 125, 130, 122, 141, 129, 119, 149, 101, 107, 127, 119, 124, 140, 128, 116, 115, 135, 141, 114, 120, 112, 131, 126, 117, 116, 123, 123, 105, 132, 122, 129, 135, 105, 125, 124, 133, 117, 114, 129, 128, 143, 138, 145, 116, 110, 147, 134, 124, 120, 123, 112, 120, 125, 115, 126, 125, 119, 113, 121, 124, 118, 129, 125, 117, 125, 138, 130, 123, 135, 138, 118, 140, 118, 135, 120, 140, 116, 119, 126, 111, 123, 115, 120, 138, 129, 122, 113, 129, 124, 125, 114, 126, 131, 119, 138, 122, 129, 121, 122, 126, 137, 127, 135, 127, 131, 129, 132, 120, 130, 133, 140, 120, 142, 137, 151, 130, 131, 132, 122, 123, 118, 111, 110, 120, 126, 133, 123, 122, 113, 122, 145, 129, 124, 128, 110, 108, 148, 140, 122, 127, 134, 127, 125, 131, 129, 123, 137, 135, 130, 127, 124, 120, 124, 123, 143, 135, 123, 113, 113, 112, 137, 124, 128, 135, 136, 129, 136, 117, 128, 122, 128, 127, 127, 111, 133, 151, 129, 138, 116, 123, 115, 124, 125, 126, 145, 109, 125, 131, 127, 122, 127, 120, 119, 135, 107, 116, 126, 106, 150, 122, 141, 131, 155, 143, 120, 136, 100, 129, 117, 116, 123, 129, 147, 115, 131, 109, 132, 128, 128, 113, 123, 115, 146, 123, 125, 116, 101, 103, 116, 128, 140, 97, 143, 127, 117, 146, 130, 121, 132, 132, 138, 115, 128, 140, 126, 115, 144, 131, 123, 125, 133, 126, 132, 127, 128, 124, 128, 112, 142, 138, 128, 139, 138, 109, 130, 119, 107, 125, 136, 103, 133, 121, 123, 125, 133, 106, 130, 123, 116, 139, 121, 127, 123, 125, 132, 112, 123, 130, 107, 130, 135, 115, 121, 123, 107, 147, 114, 126, 124, 134, 133, 124, 130, 100, 123, 132, 97, 119, 130, 141, 97, 116, 122, 116, 151, 139, 134, 112, 150, 112, 130, 134, 117, 132, 134, 116, 116, 135, 124, 109, 115, 118, 117, 127, 126, 119, 134, 122, 118, 123, 125, 109, 119, 121, 137, 122, 109, 136, 116, 119, 125, 125, 118, 134, 137, 129, 131, 126, 129, 136, 125, 115, 141, 135, 122, 140, 129, 133, 131, 121, 112, 145, 113, 127, 138, 129, 125, 120, 101, 143, 147, 102, 127, 112, 137, 132, 130, 136, 133, 121, 134, 138, 120, 122, 109, 114, 144, 125, 135, 125, 130, 124, 110, 135, 119, 127, 108, 112, 117, 122, 121, 116, 138, 133, 119, 120, 118, 124, 126, 129, 132, 122, 137, 155, 125, 123, 132, 150, 119, 115, 129, 138, 132, 127, 125, 126, 123, 126, 115, 127, 131, 116, 122, 118, 118, 127, 131, 120, 127, 118, 122, 142, 117, 125, 123, 129, 109, 120, 130, 137, 118, 126, 130, 113, 117, 124, 134, 128, 110, 117, 148, 115, 135, 133, 138, 122, 115, 127, 127, 110, 132, 120, 123, 117, 124, 137, 93, 104, 114, 143, 127, 132, 125, 112, 124, 144, 119, 131, 123, 108, 126, 123, 149, 120, 118, 122, 124, 109, 123, 120, 144, 136, 109, 119, 119, 107, 119, 134, 153, 118, 135, 123, 130, 137, 123, 121, 117, 109, 120, 119, 140, 139, 124, 110, 126, 134, 118, 147, 128, 123, 124, 126, 130, 129, 130, 122, 143, 132, 129, 141, 127, 135, 117, 143, 142, 138, 122, 119, 126, 130, 137, 141, 100, 118, 140, 126, 127, 126, 123, 116, 130, 125, 132, 113, 111, 134, 135, 133, 120, 150, 111, 155, 134, 124, 116, 142, 121, 120, 128, 145, 129, 138, 130, 138, 120, 131, 143, 120, 123, 121, 131, 125, 112, 126, 139, 142, 131, 118, 117, 158, 140, 102, 126, 113, 120, 122, 126, 123, 136, 115, 117, 111, 124, 129, 116, 123, 133, 121, 138, 124, 140, 144, 150, 126, 112, 125, 114, 170, 130, 109, 135, 129, 121, 121, 126, 137, 94, 129, 130, 148, 132, 109, 135, 136, 138, 140, 121, 109, 127, 132, 117, 106, 142, 118, 126, 135, 143, 132, 129, 112, 120, 122, 126, 119, 117, 119, 151, 147, 128, 112, 132, 135, 108, 128, 133, 112, 138, 119, 127, 108, 101, 135, 128, 114, 125, 106, 143, 126, 126, 126, 122, 134, 133, 116, 123, 141, 124, 123, 130, 117, 103, 112, 119, 128, 112, 128, 126, 142, 131, 111, 137, 126, 122, 142, 114, 116, 126, 135, 141, 128, 119, 107, 138, 118, 117, 134, 131, 123, 119, 112, 139, 149, 112, 124, 132, 144, 141, 113, 122, 119, 128, 131, 130, 133, 131, 115, 124, 147, 118, 122, 126, 113, 114, 136, 132, 118, 128, 126, 122, 126, 128, 123, 127, 128, 124, 119, 133, 127, 120, 124, 119, 146, 139, 145, 129, 114, 106, 118, 118, 111, 109, 136, 144, 120, 135, 130, 127, 125, 121, 122, 129, 137, 114, 141, 118, 116, 120, 111, 119, 117, 128, 124, 129, 148, 126, 132, 127, 137, 122, 130, 117, 112, 140, 129, 133, 122, 121, 122, 127, 125, 113, 108, 125, 112, 119, 112, 130, 127, 122, 121, 124, 137, 134, 135, 126, 121, 126, 145, 124, 128, 135, 150, 141, 126, 121, 129, 119, 147, 123, 134, 129, 119, 128, 148, 124, 141, 134, 110, 129, 113, 143, 137, 134, 117, 133, 113, 118, 106, 134, 120, 124, 113, 127, 118, 114, 131, 141, 131, 129, 117, 114, 126, 127, 130, 140, 126, 124, 110, 133, 119, 126, 128, 106, 119, 132, 123, 114, 137, 127, 117, 112, 130, 121, 134, 124, 116, 108, 126, 120, 122, 133, 123, 148, 125, 139, 126, 125, 129, 136, 122, 121, 118, 114, 112, 133, 123, 115, 131, 136, 120, 128, 115, 137, 128, 121, 129, 129, 124, 138, 142, 113, 118, 120, 118, 132, 150, 143, 132, 124, 134, 128, 137, 135, 122, 126, 143, 125, 121, 113, 128, 126, 105, 129, 125, 123, 135, 133, 130, 123, 156, 122, 143, 120, 124, 118, 134, 131, 129, 131, 127, 135, 122, 126, 120, 107, 128, 132, 118, 130, 117, 134, 129, 111, 130, 131, 116, 134, 123, 120, 143, 130, 130, 137, 148, 114, 135, 119, 129, 135, 126, 125, 130, 110, 138, 107, 124, 118, 129, 145, 147, 93, 126, 122, 124, 135, 130, 126, 114, 134, 119, 116, 134, 125, 137, 125, 123, 138, 139, 132, 118, 134, 130, 122, 119, 122, 127, 114, 142, 137, 132, 131, 134, 105, 137, 123, 127, 127, 132, 127, 132, 134, 124, 135, 119, 112, 146, 132, 117, 137, 115, 118, 127, 103, 131, 125, 127, 117, 115, 139, 126, 120, 118, 135, 126, 120, 112, 114, 142, 123, 124, 103, 117, 122, 129, 116, 120, 135, 133, 122, 125, 125, 128, 121, 137, 128, 158, 126, 153, 129, 123, 120, 129, 125, 128, 134, 116, 120, 125, 127, 121, 107, 116, 137, 124, 115, 125, 116, 117, 110, 137, 112, 124, 120, 125, 122, 115, 127, 124, 129, 115, 130, 133, 110, 125, 125, 111, 132, 128, 125, 135, 111, 108, 149, 103, 129, 117, 133, 125, 108, 139, 142, 124, 118, 131, 124, 136, 136, 114, 139, 131, 111, 141, 115, 124, 113, 116, 129, 111, 96, 136, 117, 122, 135, 133, 125, 127, 127, 130, 122, 107, 158, 127, 131, 116, 114, 116, 125, 135, 125, 119, 129, 141, 139, 117, 136, 122, 127, 132, 135, 135, 134, 119, 127, 126, 138, 123, 151, 120, 122, 103, 120, 123, 128, 121, 137, 129, 117, 116, 134, 128, 128, 120, 118, 114, 125, 124, 119, 131, 119, 143, 138, 120, 113, 123, 132, 123, 137, 120, 119, 118, 138, 115, 123, 115, 125, 114, 121, 128, 129, 124, 134, 114, 129, 131, 103, 121, 122, 130, 117, 127, 139, 137, 113, 121, 126, 136, 109, 110, 119, 117, 135, 131, 123, 132, 125, 126, 149, 122, 114, 117, 106, 110, 121, 131, 117, 125, 114, 133, 131, 139, 128, 141, 140, 117, 119, 121, 132, 135, 122, 129, 114, 134, 128, 126, 127, 130, 114, 122, 124, 124, 123, 127, 128, 128, 123, 139, 106, 133, 125, 122, 138, 129, 116, 133, 130, 130, 124, 138, 119, 137, 137, 135, 117, 116, 129, 116, 140, 120, 135, 99, 112, 130, 102, 138, 129, 135, 101, 118, 131, 140, 166, 124, 131, 133, 125, 116, 122, 147, 117, 126, 130, 132, 142, 120, 141, 131, 137, 125, 107, 136, 140, 147, 108, 133, 114, 118, 141, 122, 131, 112, 125, 129, 129, 112, 137, 131, 133, 128, 144, 118, 133, 129, 130, 111, 116, 125, 130, 115, 115, 128, 145, 132, 129, 131, 116, 108, 140, 132, 108, 121, 130, 135, 134, 125, 139, 145, 134, 119, 134, 135, 108, 131, 124, 119, 118, 126, 112, 145, 115, 157, 131, 122, 121, 129, 121, 125, 130, 107, 143, 111, 134, 142, 132, 113, 114, 112, 114, 138, 109, 142, 128, 119, 118, 124, 110, 117, 127, 98, 110, 144, 143, 121, 121, 148, 119, 122, 127, 119, 130, 119, 126, 123, 130, 129, 115, 140, 123, 128, 141, 147, 111, 121, 111, 125, 121, 120, 124, 122, 137, 117, 141, 121, 120, 141, 115, 130, 137, 118, 120, 137, 123, 121, 118, 136, 139, 124, 131, 115, 125, 125, 128, 129, 144, 110, 114, 96, 132, 124, 115, 127, 135, 122, 137, 116, 116, 118, 136, 116, 138, 122, 127, 124, 113, 126, 140, 121, 123, 116, 107, 124, 139, 131, 109, 130, 122, 138, 124, 147, 145, 128, 111, 132, 128, 134, 136, 114, 145, 126, 135, 131, 108, 124, 127, 127, 131, 122, 132, 119, 133, 135, 122, 115, 121, 126, 130, 111, 117, 140, 143, 123, 142, 104, 123, 128, 125, 120, 129, 123, 118, 140, 121, 149, 129, 113, 130, 126, 121, 127, 128, 127, 109, 130, 132, 122, 100, 124, 120, 116, 126, 117, 126, 119, 119, 134, 131, 120, 120, 130, 130, 122, 121, 132, 127, 97, 138, 129, 132, 129, 122, 111, 118, 133, 123, 135, 130, 108, 143, 129, 137, 141, 100, 136, 137, 125, 130, 123, 133, 127, 128, 120, 137, 125, 112, 126, 123, 128, 115, 139, 109, 131, 137, 112, 103, 124, 131, 110, 132, 132, 120, 123, 136, 107, 119, 110, 124, 105, 138, 124, 118, 118, 111, 123, 128, 128, 146, 132, 118, 133, 119, 109, 127, 119, 129, 127, 137, 141, 116, 116, 135, 139, 113, 117, 124, 127, 126, 119, 120, 133, 114, 123, 139, 122, 138, 116, 121, 131, 125, 121, 110, 130, 136, 142, 137, 130, 135, 122, 126, 120, 130, 142, 128, 116, 129, 123, 137, 131, 142, 124, 116, 138, 128, 136, 130, 139, 120, 124, 146, 126, 151, 111, 127, 129, 143, 125, 122, 135, 128, 130, 127, 112, 130, 132, 134, 141, 120, 110, 123, 121, 110, 135, 116, 121, 130, 127, 128, 120, 129, 115, 132, 120, 115, 137, 134, 134, 141, 125, 137, 133, 124, 134, 118, 129, 136, 129, 124, 111, 125, 136, 126, 125, 131, 115, 123, 116, 121, 122, 112, 137, 133, 125, 127, 100, 134, 131, 127, 124, 102, 103, 133, 122, 125, 122, 138, 116, 121, 120, 120, 110, 119, 119, 120, 118, 138, 134, 124, 129, 105, 115, 126, 124, 124, 136, 103, 136, 136, 129, 109, 135, 129, 122, 139, 122, 126, 121, 120, 127, 139, 134, 126, 138, 152, 122, 117, 131, 125, 112, 135, 118, 135, 121, 113, 107, 101, 116, 148, 145, 127, 123, 110, 130, 116, 139, 137, 146, 132, 133, 140, 125, 142, 89, 131, 144, 125, 126, 129, 131, 126, 122, 129, 116, 121, 97, 131, 128, 123, 120, 124, 133, 115, 124, 132, 135, 114, 110, 120, 133, 113, 121, 109, 113, 128, 128, 121, 115, 114, 136, 134, 102, 144, 162, 121, 130, 139, 125, 111, 128, 112, 118, 111, 132, 135, 120, 137, 111, 132, 130, 128, 112, 151, 127, 135, 137, 137, 116, 117, 130, 121, 114, 143, 147, 143, 114, 137, 137, 123, 120, 120, 140, 121, 119, 118, 123, 121, 127, 116, 127, 128, 130, 128, 118, 131, 122, 118, 140, 121, 121, 123, 133, 124, 118, 130, 115, 119, 120, 113, 113, 139, 120, 123, 126, 137, 133, 125, 110, 113, 112, 121, 112, 130, 128, 132, 130, 126, 120, 115, 118, 128, 112, 117, 119, 129, 127, 110, 126, 121, 120, 128, 124, 128, 132, 129, 129, 125, 131, 128, 136, 114, 128, 117, 120, 135, 131, 132, 134, 125, 119, 118, 126, 120, 110, 137, 130, 130, 118, 120, 108, 124, 128, 111, 130, 148, 122, 119, 128, 111, 134, 114, 133, 105, 125, 113, 125, 109, 110, 133, 139, 145, 119, 128, 120, 136, 128, 115, 119, 129, 120, 113, 128, 127, 139, 124, 118, 124, 141, 109, 117, 106, 113, 127, 103, 122, 129, 139, 116, 137, 120, 121, 118, 115, 119, 132, 128, 129, 124, 117, 131, 121, 117, 111, 131, 139, 126, 131, 136, 134, 132, 159, 127, 121, 126, 119, 120, 115, 131, 129, 121, 121, 111, 113, 116, 130, 116, 144, 125, 126, 129, 126, 109, 120, 123, 147, 137, 128, 129, 138, 128, 120, 130, 143, 140, 124, 127, 133, 123, 131, 133, 115, 128, 115, 128, 131, 119, 123, 108, 121, 119, 131, 131, 130, 131, 107, 134, 123, 116, 111, 134, 132, 127, 118, 144, 138, 133, 118, 126, 123, 136, 140, 125, 116, 129, 127, 122, 98, 126, 127, 124, 118, 116, 123, 132, 116, 154, 111, 128, 116, 145, 141, 146, 120, 126, 119, 129, 125, 118, 126, 120, 135, 119, 138, 118, 130, 114, 132, 125, 124, 134, 129, 123, 119, 127, 120, 113, 116, 120, 134, 121, 139, 131, 142, 128, 126, 126, 132, 130, 125, 128, 134, 109, 113, 122, 133, 124, 130, 128, 141, 124, 124, 122, 117, 129, 145, 126, 130, 123, 128, 138, 120, 132, 126, 124, 122, 120, 127, 127, 144, 127, 141, 144, 119, 123, 127, 144, 124, 137, 139, 128, 117, 121, 122, 135, 127, 120, 139, 139, 143, 128, 124, 121, 118, 119, 144, 123, 140, 141, 105, 121, 121, 139, 129, 119, 120, 132, 129, 132, 121, 109, 139, 124, 128, 127, 109, 135, 120, 143, 138, 128, 110, 127, 123, 119, 115, 116, 132, 115, 120, 131, 143, 128, 134, 114, 121, 129, 137, 127, 134, 127, 127, 125, 123, 117, 128, 103, 134, 151, 132, 125, 115, 138, 124, 150, 120, 120, 117, 115, 120, 139, 127, 120, 127, 117, 123, 134, 146, 106, 149, 134, 140, 139, 123, 120, 123, 110, 140, 113, 122, 115, 130, 148, 118, 125, 140, 123, 123, 116, 150, 126, 139, 131, 149, 131, 128, 128, 122, 128, 105, 126, 134, 121, 129, 137, 105, 109, 118, 118, 157, 121, 122, 113, 121, 115, 115, 139, 138, 129, 135, 112, 142, 145, 112, 140, 130, 111, 116, 122, 132, 124, 114, 125, 126, 117, 126, 115, 123, 127, 110, 131, 126, 140, 124, 121, 117, 120, 107, 142, 126, 135, 131, 108, 130, 124, 137, 122, 122, 138, 137, 124, 139, 118, 121, 128, 121, 121, 127, 151, 137, 141, 132, 139, 126, 130, 143, 119, 131, 123, 143, 129, 130, 124, 113, 146, 117, 139, 129, 133, 139, 101, 125, 123, 119, 137, 130, 110, 116, 117, 121, 113, 120, 114, 117, 136, 111, 120, 132, 130, 108, 114, 112, 133, 123, 113, 109, 131, 130, 111, 131, 123, 118, 124, 130, 124, 119, 133, 136, 151, 134, 116, 103, 121, 119, 143, 124, 124, 113, 132, 125, 123, 124, 116, 122, 137, 123, 132, 118, 127, 148, 132, 119, 123, 129, 130, 133, 108, 140, 129, 122, 130, 127, 117, 144, 119, 117, 121, 117, 127, 129, 120, 123, 123, 116, 117, 144, 139, 138, 110, 129, 124, 135, 126, 109, 136, 110, 130, 123, 128, 143, 137, 140, 117, 124, 117, 121, 140, 118, 122, 117, 116, 123, 119, 134, 115, 133, 128, 125, 133, 129, 133, 103, 140, 138, 143, 126, 125, 130, 121, 121, 135, 117, 109, 119, 129, 118, 138, 148, 129, 118, 100, 127, 122, 130, 105, 138, 120, 125, 139, 129, 131, 118, 110, 129, 139, 127, 119, 115, 132, 161, 121, 133, 107, 142, 129, 138, 151, 142, 119, 134, 117, 95, 119, 132, 125, 118, 121, 125, 134, 138, 126, 129, 114, 146, 117, 125, 116, 137, 123, 102, 118, 119, 123, 128, 131, 127, 127, 145, 136, 132, 127, 138, 113, 122, 128, 127, 129, 134, 134, 115, 119, 131, 115, 125, 131, 111, 107, 127, 137, 131, 122, 124, 119, 138, 130, 124, 147, 128, 130, 123, 128, 134, 138, 120, 126, 132, 121, 124, 117, 132, 128, 122, 132, 134, 141, 117, 108, 130, 121, 130, 138, 124, 120, 122, 122, 131, 146, 96, 127, 115, 125, 117, 112, 130, 140, 129, 124, 137, 120, 113, 135, 149, 132, 136, 129, 122, 127, 134, 129, 131, 124, 132, 114, 124, 133, 144, 156, 135, 127, 116, 125, 125, 123, 130, 140, 138, 122, 144, 123, 126, 138, 140, 118, 135, 131, 142, 129, 117, 133, 119, 120, 134, 127, 133, 117, 122, 123, 123, 124, 130, 129, 142, 107, 134, 124, 138, 142, 125, 121, 123, 120, 125, 117, 148, 106, 114, 152, 117, 125, 108, 124, 124, 122, 116, 150, 127, 134, 136, 120, 128, 108, 131, 120, 112, 109, 125, 132, 135, 125, 117, 130, 143, 113, 115, 135, 117, 122, 134, 132, 132, 129, 112, 105, 130, 120, 136, 114, 133, 125, 123, 119, 125, 124, 115, 122, 130, 120, 130, 139, 117, 124, 106, 110, 115, 120, 116, 114, 112, 123, 114, 133, 115, 146, 131, 129, 118, 114, 115, 125, 143, 127, 108, 121, 118, 120, 124, 118, 138, 101, 122, 117, 129, 127, 116, 125, 119, 123, 116, 118, 131, 138, 136, 140, 120, 128, 134, 113, 116, 138, 127, 118, 105, 129, 131, 131, 137, 132, 130, 134, 138, 125, 139, 119, 131, 133, 100, 141, 133, 151, 145, 126, 114, 126, 129, 119, 104, 121, 134, 147, 142, 130, 112, 102, 111, 129, 142, 125, 113, 144, 99, 118, 120, 143, 129, 119, 125, 128, 133, 124, 137, 129, 103, 130, 135, 119, 142, 108, 126, 130, 125, 132, 116, 129, 135, 114, 118, 120, 117, 125, 122, 136, 133, 138, 116, 124, 129, 107, 122, 125, 114, 109, 118, 133, 128, 116, 134, 117, 118, 132, 141, 127, 118, 141, 150, 127, 122, 127, 123, 128, 134, 115, 125, 123, 115, 146, 125, 128, 112, 124, 132, 141, 124, 115, 116, 150, 136, 137, 120, 138, 122, 125, 129, 129, 132, 146, 121, 104, 126, 134, 121, 116, 118, 123, 116, 129, 118, 123, 121, 137, 122, 126, 123, 124, 123, 134, 115, 116, 136, 116, 144, 141, 117, 138, 122, 124, 125, 122, 142, 129, 119, 131, 119, 122, 120, 120, 119, 130, 122, 123, 119, 121, 119, 123, 134, 136, 115, 127, 126, 115, 117, 129, 124, 117, 143, 126, 120, 113, 126, 108, 117, 125, 146, 139, 114, 121, 124, 143, 114, 104, 143, 140, 117, 108, 136, 129, 117, 126, 128, 127, 142, 134, 136, 115, 130, 118, 120, 121, 146, 133, 122, 129, 128, 120, 127, 124, 130, 119, 118, 127, 124, 120, 112, 119, 130, 124, 119, 117, 119, 130, 106, 142, 137, 124, 136, 117, 142, 103, 111, 138, 119, 133, 114, 121, 134, 110, 127, 121, 128, 112, 137, 111, 123, 128, 139, 146, 138, 127, 116, 133, 139, 127, 126, 129, 124, 116, 118, 119, 136, 133, 129, 122, 114, 140, 137, 113, 136, 128, 138, 123, 133, 114, 135, 127, 122, 122, 135, 118, 133, 111, 119, 125, 128, 128, 126, 131, 124, 125, 123, 117, 111, 104, 130, 130, 114, 109, 122, 110, 116, 136, 126, 143, 119, 123, 125, 125, 133, 122, 127, 128, 129, 122, 142, 122, 135, 110, 119, 134, 129, 139, 123, 131, 129, 123, 142, 113, 125, 120, 120, 146, 147, 108, 132, 128, 128, 112, 120, 115, 122, 134, 121, 110, 127, 126, 137, 123, 122, 114, 102, 119, 139, 132, 131, 133, 123, 110, 107, 130, 133, 134, 136, 126, 147, 128, 127, 124, 118, 118, 125, 122, 122, 137, 105, 131, 150, 126, 135, 126, 114, 125, 128, 106, 130, 92, 131, 119, 119, 127, 123, 125, 118, 128, 131, 121, 113, 100, 132, 133, 124, 120, 126, 128, 122, 121, 127, 119, 119, 111, 101, 145, 136, 108, 107, 145, 121, 111, 121, 127, 121, 109, 163, 120, 121, 124, 119, 122, 134, 144, 122, 125, 147, 129, 130, 132, 122, 134, 140, 150, 122, 114, 125, 116, 131, 124, 138, 110, 117, 133, 138, 120, 123, 124, 111, 119, 116, 126, 134, 125, 118, 122, 127, 121, 114, 125, 145, 142, 114, 134, 137, 132, 132, 114, 122, 136, 133, 116, 124, 120, 130, 130, 116, 144, 137, 117, 123, 115, 135, 131, 120, 135, 111, 127, 111, 123, 126, 116, 118, 123, 148, 138, 148, 142, 127, 131, 116, 124, 144, 127, 131, 122, 117, 122, 155, 115, 114, 121, 127, 134, 128, 133, 125, 140, 141, 119, 126, 142, 127, 137, 128, 133, 114, 125, 120, 130, 131, 127, 112, 123, 125, 114, 121, 128, 125, 128, 137, 122, 122, 116, 105, 131, 124, 128, 133, 122, 135, 135, 126, 120, 130, 127, 128, 131, 131, 109, 131, 115, 120, 120, 104, 120, 125, 119, 136, 121, 134, 125, 111, 130, 129, 127, 138, 131, 138, 125, 124, 120, 136, 123, 123, 134, 136, 132, 122, 142, 120, 122, 120, 117, 123, 140, 117, 115, 129, 129, 112, 122, 120, 134, 131, 129, 110, 109, 129, 109, 110, 129, 108, 118, 129, 120, 120, 126, 120, 144, 139, 117, 123, 136, 122, 131, 131, 130, 121, 124, 121, 125, 153, 139, 115, 124, 126, 136, 124, 141, 120, 124, 159, 141, 112, 115, 131, 119, 120, 118, 126, 131, 129, 114, 119, 105, 126, 119, 134, 134, 132, 137, 131, 125, 140, 135, 122, 119, 127, 137, 116, 123, 140, 118, 109, 114, 121, 122, 111, 134, 135, 113, 125, 137, 123, 126, 114, 118, 125, 116, 114, 132, 148, 102, 131, 120, 132, 120, 129, 124, 128, 134, 141, 118, 115, 116, 117, 123, 106, 111, 131, 135, 118, 125, 128, 137, 122, 134, 124, 108, 118, 121, 142, 133, 127, 124, 129, 118, 133, 124, 127, 111, 121, 114, 134, 118, 132, 130, 149, 135, 116, 106, 134, 137, 117, 130, 119, 109, 122, 134, 135, 139, 140, 124, 127, 119, 125, 115, 128, 125, 128, 120, 125, 114, 138, 119, 123, 127, 110, 102, 127, 135, 119, 128, 118, 126, 130, 149, 123, 131, 115, 142, 128, 151, 118, 132, 126, 130, 145, 98, 107, 128, 120, 152, 124, 123, 125, 125, 140, 109, 138, 140, 120, 143, 134, 135, 132, 105, 116, 119, 128, 116, 117, 132, 127, 116, 143, 139, 102, 117, 132, 126, 108, 107, 121, 124, 131, 120, 125, 125, 124, 122, 112, 137, 129, 142, 138, 129, 119, 108, 131, 126, 118, 120, 147, 127, 117, 136, 125, 128, 132, 146, 117, 129, 125, 129, 122, 134, 129, 131, 123, 127, 131, 127, 106, 111, 132, 118, 140, 119, 103, 108, 106, 118, 119, 134, 134, 139, 119, 103, 138, 134, 101, 139, 121, 123, 113, 129, 117, 139, 134, 130, 116, 124, 130, 117, 111, 107, 117, 126, 130, 108, 134, 134, 121, 111, 138, 136, 133, 111, 123, 121, 115, 122, 137, 133, 135, 121, 107, 115, 156, 122, 112, 116, 120, 106, 108, 117, 113, 124, 111, 121, 119, 127, 149, 126, 121, 124, 112, 110, 139, 111, 130, 124, 104, 117, 143, 124, 132, 134, 117, 126, 123, 112, 126, 131, 117, 133, 130, 130, 137, 145, 147, 136, 134, 102, 123, 123, 135, 116, 131, 111, 121, 134, 154, 120, 130, 126, 112, 139, 126, 115, 123, 138, 111, 121, 123, 110, 110, 124, 124, 104, 119, 125, 127, 120, 132, 122, 123, 139, 120, 108, 135, 136, 124, 127, 136, 129, 123, 127, 121, 133, 111, 129, 125, 127, 112, 135, 120, 139, 144, 112, 117, 117, 123, 121, 133, 117, 126, 119, 133, 113, 129, 132, 121, 142, 129, 137, 120, 142, 119, 106, 122, 138, 120, 117, 135, 116, 131, 117, 106, 137, 117, 106, 112, 119, 121, 119, 127, 121, 147, 138, 118, 121, 127, 136, 131, 122, 127, 124, 128, 121, 112, 119, 128, 120, 123, 131, 117, 135, 121, 132, 129, 115, 128, 111, 137, 119, 125, 110, 127, 133, 124, 127, 138, 133, 125, 118, 136, 122, 106, 113, 112, 119, 131, 134, 116, 131, 138, 132, 111, 131, 131, 115, 135, 145, 130, 125, 130, 129, 124, 121, 127, 135, 130, 132, 115, 136, 110, 115, 136, 145, 117, 131, 125, 112, 126, 118, 140, 106, 121, 129, 127, 122, 113, 146, 113, 122, 129, 117, 128, 113, 135, 139, 122, 157, 123, 113, 135, 123, 126, 122, 147, 123, 133, 116, 135, 129, 135, 131, 127, 126, 131, 129, 112, 139, 116, 122, 114, 115, 134, 126, 129, 117, 104, 124, 126, 124, 116, 125, 123, 132, 139, 113, 135, 141, 126, 124, 123, 127, 136, 110, 131, 124, 132, 128, 128, 134, 120, 125, 126, 132, 121, 143, 139, 119, 125, 145, 133, 122, 125, 128, 134, 116, 120, 119, 117, 133, 128, 132, 125, 134, 117, 107, 119, 125, 119, 119, 132, 127, 124, 146, 115, 111, 133, 134, 115, 128, 119, 125, 111, 122, 110, 118, 110, 124, 123, 122, 137, 125, 132, 119, 106, 114, 104, 121, 124, 156, 120, 130, 143, 131, 142, 123, 127, 126, 121, 126, 130, 122, 131, 117, 113, 123, 122, 116, 123, 138, 133, 107, 128, 119, 124, 119, 109, 113, 126, 100, 138, 122, 142, 103, 139, 135, 126, 118, 111, 123, 110, 143, 144, 122, 127, 136, 121, 103, 142, 133, 136, 137, 133, 123, 118, 120, 123, 114, 136, 124, 109, 160, 135, 128, 145, 122, 128, 120, 126, 133, 115, 126, 130, 121, 140, 136, 123, 137, 127, 131, 135, 133, 145, 127, 121, 109, 126, 121, 130, 132, 117, 128, 120, 130, 155, 124, 124, 125, 125, 118, 122, 123, 130, 127, 122, 121, 118, 136, 111, 122, 163, 125, 128, 123, 120, 109, 142, 110, 127, 142, 126, 110, 98, 143, 113, 128, 131, 130, 119, 120, 126, 126, 115, 124, 127, 135, 126, 117, 138, 132, 128, 125, 109, 132, 117, 127, 141, 130, 148, 127, 138, 115, 126, 109, 130, 127, 142, 123, 101, 128, 125, 99, 123, 132, 126, 115, 122, 120, 141, 111, 122, 129, 155, 138, 123, 121, 111, 142, 122, 112, 116, 130, 121, 132, 119, 114, 111, 132, 113, 115, 148, 134, 123, 129, 124, 133, 117, 133, 117, 123, 112, 132, 134, 120, 130, 136, 117, 123, 118, 116, 138, 137, 132, 116, 126, 127, 139, 121, 132, 140, 147, 127, 123, 111, 124, 112, 124, 121, 132, 112, 124, 126, 135, 117, 97, 128, 135, 123, 125, 135, 132, 132, 141, 127, 142, 130, 126, 126, 121, 123, 117, 115, 125, 147, 111, 116, 108, 134, 131, 119, 134, 99, 130, 128, 106, 144, 130, 145, 133, 141, 125, 127, 132, 144, 123, 134, 119, 127, 117, 136, 132, 123, 138, 127, 122, 131, 132, 124, 138, 116, 140, 143, 113, 114, 131, 125, 125, 129, 109, 109, 131, 124, 127, 148, 128, 142, 141, 140, 132, 125, 122, 113, 156, 144, 135, 124, 119, 112, 121, 121, 128, 121, 137, 136, 127, 123, 133, 128, 128, 130, 117, 126, 126, 110, 120, 126, 127, 129, 104, 120, 115, 136, 119, 115, 122, 129, 142, 97, 137, 137, 119, 138, 134, 93, 126, 127, 110, 116, 139, 128, 155, 128, 108, 137, 118, 135, 140, 129, 123, 143, 130, 128, 128, 130, 152, 143, 129, 114, 121, 140, 124, 108, 129, 114, 131, 119, 149, 145, 124, 131, 111, 120, 121, 133, 120, 134, 155, 120, 132, 126, 123, 118, 139, 109, 129, 130, 128, 149, 109, 112, 124, 129, 117, 109, 133, 103, 124, 108, 125, 115, 123, 142, 122, 130, 116, 135, 128, 117, 122, 106, 146, 122, 123, 115, 122, 117, 117, 123, 114, 109, 108, 139, 111, 117, 130, 153, 134, 131, 122, 130, 127, 114, 111, 116, 109, 132, 121, 114, 115, 115, 128, 114, 115, 131, 133, 143, 119, 140, 129, 140, 143, 135, 109, 113, 114, 113, 129, 112, 114, 126, 140, 121, 119, 119, 129, 119, 114, 117, 140, 136, 124, 113, 114, 133, 135, 124, 121, 116, 126, 120, 120, 118, 123, 137, 127, 127, 109, 124, 119, 129, 124, 114, 137, 120, 120, 136, 113, 128, 115, 141, 130, 145, 108, 114, 134, 113, 124, 123, 111, 126, 115, 135, 129, 125, 109, 123, 115, 133, 129, 125, 130, 149, 114, 115, 115, 129, 131, 119, 120, 135, 127, 109, 141, 148, 108, 128, 129, 131, 129, 122, 106, 107, 136, 123, 124, 123, 136, 128, 142, 112, 111, 123, 152, 127, 116, 134, 137, 134, 125, 133, 117, 103, 131, 123, 115, 137, 121, 126, 139, 121, 124, 118, 129, 132, 126, 111, 127, 120, 125, 136, 140, 111, 136, 123, 122, 123, 116, 119, 117, 127, 128, 129, 132, 127, 114, 111, 143, 119, 138, 117, 115, 113, 141, 131, 132, 120, 125, 117, 125, 113, 112, 136, 117, 121, 113, 117, 130, 117, 141, 116, 103, 151, 134, 133, 146, 123, 113, 120, 113, 117, 127, 131, 132, 142, 145, 138, 128, 123, 128, 117, 124, 148, 120, 137, 118, 132, 141, 101, 132, 123, 132, 117, 119, 115, 132, 124, 139, 133, 157, 125, 122, 143, 123, 136, 131, 122, 120, 145, 135, 119, 127, 124, 121, 129, 124, 118, 122, 122, 130, 129, 127, 116, 117, 151, 137, 125, 121, 127, 120, 124, 125, 127, 128, 119, 131, 122, 126, 142, 109, 126, 124, 134, 143, 124, 100, 121, 128, 128, 127, 130, 114, 105, 131, 125, 117, 143, 121, 129, 121, 121, 137, 119, 109, 106, 128, 117, 134, 128, 122, 110, 127, 126, 130, 121, 127, 135, 131, 135, 119, 125, 125, 112, 140, 138, 121, 119, 122, 123, 118, 115, 133, 135, 141, 140, 120, 137, 122, 118, 107, 121, 142, 129, 142, 126, 116, 145, 119, 125, 112, 117, 130, 137, 122, 134, 121, 130, 132, 111, 136, 131, 130, 119, 120, 126, 109, 102, 114, 109, 133, 147, 112, 130, 123, 121, 123, 122, 127, 132, 149, 142, 122, 124, 116, 131, 129, 139, 120, 123, 149, 117, 130, 120, 122, 130, 104, 136, 123, 127, 133, 117, 115, 121, 133, 112, 135, 126, 127, 124, 137, 146, 122, 121, 133, 128, 130, 136, 119, 134, 137, 121, 119, 123, 124, 122, 130, 143, 118, 120, 121, 110, 140, 150, 125, 120, 115, 134, 137, 118, 113, 123, 125, 119, 115, 130, 107, 116, 124, 140, 96, 119, 117, 131, 120, 117, 127, 139, 138, 143, 109, 125, 133, 125, 132, 122, 134, 127, 123, 136, 128, 137, 126, 126, 140, 130, 120, 114, 135, 129, 115, 131, 118, 122, 132, 125, 138, 127, 123, 108, 123, 110, 131, 131, 118, 118, 125, 106, 114, 115, 137, 140, 132, 124, 134, 113, 136, 129, 117, 135, 122, 140, 128, 118, 113, 121, 137, 144, 144, 117, 132, 134, 128, 123, 144, 111, 115, 129, 138, 114, 110, 131, 129, 121, 129, 125, 118, 107, 148, 124, 150, 126, 128, 128, 123, 130, 134, 121, 132, 142, 127, 131, 122, 117, 109, 126, 120, 117, 159, 129, 129, 125, 131, 145, 132, 109, 126, 125, 153, 135, 137, 123, 125, 130, 133, 121, 123, 141, 129, 121, 117, 119, 148, 137, 106, 130, 118, 134, 119, 137, 141, 121, 129, 122, 122, 121, 122, 144, 127, 127, 116, 122, 121, 120, 132, 137, 120, 129, 115, 140, 156, 138, 133, 119, 139, 115, 123, 143, 140, 127, 133, 106, 134, 127, 131, 114, 113, 131, 131, 130, 123, 128, 131, 129, 121, 123, 121, 145, 115, 116, 127, 138, 145, 127, 134, 123, 114, 101, 147, 132, 117, 123, 132, 138, 120, 131, 143, 110, 115, 131, 116, 136, 124, 139, 138, 107, 126, 139, 136, 136, 124, 115, 113, 129, 136, 130, 124, 134, 122, 116, 123, 121, 143, 124, 134, 122, 128, 131, 123, 138, 125, 131, 130, 145, 139, 111, 110, 119, 109, 117, 110, 128, 123, 122, 126, 129, 139, 134, 128, 121, 97, 130, 112, 107, 123, 130, 102, 146, 135, 125, 127, 124, 133, 119, 116, 134, 112, 127, 113, 130, 123, 130, 116, 119, 129, 124, 124, 134, 124, 129, 103, 122, 134, 131, 131, 138, 115, 143, 144, 140, 133, 132, 130, 122, 111, 107, 142, 111, 123, 133, 111, 120, 129, 135, 126, 130, 122, 140, 115, 121, 130, 119, 123, 122, 124, 106, 124, 137, 132, 131, 120, 134, 129, 124, 129, 123, 111, 123, 116, 126, 126, 127, 115, 117, 123, 113, 122, 133, 126, 113, 151, 119, 130, 128, 117, 128, 151, 137, 124, 125, 122, 131, 119, 119, 106, 126, 124, 134, 129, 138, 119, 112, 109, 135, 139, 105, 137, 126, 128, 147, 141, 126, 122, 104, 128, 125, 120, 125, 117, 124, 131, 138, 149, 137, 121, 115, 142, 119, 138, 154, 135, 113, 102, 125, 133, 123, 125, 126, 124, 136, 109, 129, 134, 130, 144, 109, 122, 127, 139, 145, 123, 130, 134, 119, 135, 122, 132, 111, 128, 138, 122, 136, 155, 140, 123, 153, 121, 124, 133, 132, 118, 126, 117, 117, 123, 131, 116, 121, 115, 112, 136, 125, 125, 136, 119, 132, 120, 112, 125, 135, 123, 113, 127, 123, 113, 131, 119, 141, 126, 125, 101, 122, 128, 130, 113, 119, 126, 125, 124, 123, 131, 112, 114, 136, 130, 113, 124, 138, 137, 132, 121, 120, 102, 122, 138, 123, 97, 128, 113, 119, 128, 115, 124, 116, 132, 109, 124, 129, 128, 115, 121, 123, 102, 135, 138, 123, 116, 125, 128, 132, 117, 127, 115, 122, 120, 106, 112, 133, 140, 112, 106, 137, 134, 134, 128, 146, 114, 136, 131, 112, 124, 130, 130, 121, 130, 136, 109, 125, 117, 132, 134, 138, 147, 124, 116, 126, 119, 130, 135, 117, 118, 145, 130, 154, 114, 117, 121, 128, 122, 151, 134, 129, 125, 128, 146, 128, 129, 119, 109, 139, 141, 134, 123, 120, 110, 118, 123, 115, 118, 130, 132, 122, 123, 125, 134, 135, 130, 129, 133, 113, 128, 141, 142, 142, 145, 125, 140, 128, 132, 138, 110, 122, 107, 151, 122, 134, 137, 134, 127, 123, 126, 122, 110, 121, 123, 118, 105, 121, 123, 144, 141, 139, 128, 137, 120, 127, 135, 121, 124, 125, 129, 139, 131, 134, 144, 114, 127, 105, 136, 136, 141, 133, 126, 137, 143, 109, 129, 130, 136, 131, 115, 144, 135, 110, 119, 117, 133, 120, 142, 124, 126, 120, 109, 126, 125, 118, 123, 136, 114, 124, 117, 117, 125, 108, 117, 112, 140, 118, 130, 126, 137, 125, 127, 124, 139, 100, 116, 123, 127, 129, 109, 118, 135, 122, 129, 114, 125, 129, 142, 119, 104, 122, 102, 122, 134, 121, 110, 128, 128, 125, 120, 110, 130, 130, 105, 121, 129, 127, 123, 141, 124, 127, 132, 141, 116, 110, 112, 127, 121, 100, 118, 123, 117, 114, 125, 137, 142, 118, 123, 122, 141, 122, 125, 126, 126, 127, 124, 126, 132, 127, 113, 128, 129, 135, 113, 119, 121, 129, 115, 139, 106, 115, 129, 126, 136, 120, 125, 96, 134, 133, 124, 145, 136, 130, 106, 134, 122, 117, 123, 113, 120, 119, 117, 114, 117, 133, 119, 117, 134, 133, 115, 134, 116, 133, 118, 129, 120, 115, 115, 107, 127, 124, 128, 137, 145, 120, 135, 140, 129, 121, 113, 134, 124, 122, 111, 134, 146, 116, 115, 131, 132, 121, 135, 136, 131, 142, 127, 116, 128, 118, 126, 134, 119, 128, 112, 124, 119, 128, 113, 118, 128, 125, 131, 141, 143, 123, 107, 126, 125, 113, 129, 127, 131, 128, 130, 111, 133, 135, 136, 126, 129, 138, 120, 145, 111, 132, 117, 129, 129, 130, 130, 126, 127, 112, 118, 115, 138, 128, 140, 109, 126, 126, 133, 116, 120, 111, 118, 133, 110, 123, 122, 114, 149, 120, 119, 131, 137, 107, 99, 139, 126, 138, 127, 116, 109, 128, 126, 132, 121, 109, 135, 122, 120, 128, 119, 121, 112, 105, 124, 120, 134, 137, 105, 138, 131, 149, 137, 120, 133, 139, 131, 120, 118, 117, 122, 126, 125, 141, 142, 115, 144, 147, 135, 144, 161, 110, 135, 128, 123, 123, 128, 129, 138, 127, 120, 106, 122, 124, 118, 96, 117, 102, 107, 123, 134, 123, 146, 109, 125, 144, 136, 130, 119, 108, 124, 110, 122, 139, 113, 141, 126, 135, 110, 120, 141, 147, 120, 126, 118, 111, 141, 132, 124, 128, 126, 107, 133, 142, 133, 114, 112, 122, 124, 126, 116, 130, 118, 134, 128, 131, 137, 128, 124, 128, 118, 123, 116, 127, 103, 114, 138, 114, 124, 107, 108, 112, 122, 111, 116, 102, 119, 111, 127, 137, 121, 118, 111, 121, 123, 107, 123, 146, 143, 108, 135, 125, 118, 131, 141, 128, 134, 144, 121, 119, 108, 128, 126, 131, 122, 129, 133, 130, 120, 121, 129, 116, 135, 126, 122, 132, 125, 125, 128, 127, 138, 116, 119, 121, 131, 141, 128, 122, 134, 125, 133, 143, 116, 124, 119, 134, 157, 126, 134, 93, 121, 122, 123, 136, 112, 138, 126, 121, 140, 113, 126, 143, 125, 121, 135, 145, 124, 142, 108, 133, 122, 133, 128, 136, 122, 134, 118, 136, 124, 114, 118, 137, 152, 137, 126, 119, 119, 121, 125, 127, 133, 110, 117, 120, 117, 121, 121, 131, 99, 132, 130, 129, 116, 149, 119, 124, 127, 125, 129, 123, 140, 132, 130, 120, 123, 129, 125, 117, 117, 120, 139, 142, 113, 130, 128, 133, 111, 116, 116, 113, 134, 119, 136, 113, 117, 107, 131, 134, 134, 119, 118, 130, 124, 132, 123, 130, 120, 127, 124, 113, 120, 116, 115, 121, 113, 102, 124, 142, 118, 117, 127, 115, 132, 145, 108, 130, 137, 128, 126, 129, 117, 115, 135, 139, 129, 130, 125, 129, 118, 134, 143, 118, 122, 138, 130, 129, 133, 125, 104, 122, 110, 119, 136, 141, 121, 121, 124, 128, 115, 128, 122, 136, 113, 114, 129, 132, 120, 111, 138, 116, 145, 133, 130, 116, 128, 131, 134, 120, 138, 132, 120, 138, 113, 129, 126, 131, 118, 114, 122, 122, 128, 134, 116, 136, 129, 110, 117, 113, 143, 113, 144, 121, 140, 130, 121, 154, 127, 129, 124, 123, 125, 133, 127, 131, 121, 127, 103, 130, 118, 135, 126, 134, 108, 126, 125, 127, 122, 111, 119, 130, 117, 124, 121, 114, 141, 146, 115, 117, 121, 126, 125, 107, 110, 123, 135, 145, 118, 122, 135, 114, 121, 129, 127, 128, 114, 116, 121, 111, 127, 121, 135, 119, 121, 124, 131, 128, 111, 140, 125, 120, 128, 138, 118, 122, 106, 120, 116, 134, 127, 111, 126, 110, 118, 108, 127, 106, 135, 128, 115, 138, 112, 108, 139, 127, 122, 143, 119, 134, 132, 126, 131, 109, 140, 124, 123, 115, 113, 131, 122, 137, 124, 141, 116, 128, 141, 123, 125, 131, 140, 130, 111, 110, 149, 128, 112, 118, 123, 133, 114, 109, 123, 146, 103, 138, 127, 134, 119, 127, 136, 132, 121, 135, 118, 127, 116, 138, 130, 133, 119, 127, 130, 130, 129, 120, 121, 129, 139, 139, 110, 119, 127, 134, 130, 142, 117, 113, 126, 138, 124, 135, 136, 140, 131, 125, 122, 129, 99, 125, 138, 111, 124, 127, 133, 111, 132, 119, 102, 116, 123, 123, 133, 114, 134, 142, 112, 116, 122, 132, 127, 120, 116, 113, 105, 126, 124, 122, 125, 136, 116, 124, 121, 115, 112, 142, 105, 111, 109, 118, 129, 107, 124, 130, 126, 119, 118, 136, 134, 135, 119, 139, 120, 114, 139, 129, 125, 134, 119, 102, 120, 109, 135, 139, 120, 124, 120, 118, 133, 131, 126, 119, 133, 131, 118, 119, 126, 118, 114, 132, 147, 124, 127, 145, 142, 103, 133, 115, 132, 126, 122, 109, 123, 109, 126, 111, 130, 120, 110, 125, 128, 122, 117, 122, 139, 145, 119, 113, 130, 122, 128, 124, 139, 112, 129, 127, 130, 113, 123, 135, 115, 145, 126, 127, 110, 118, 129, 119, 101, 126, 122, 101, 148, 112, 133, 142, 111, 119, 126, 110, 116, 119, 121, 97, 124, 138, 131, 136, 156, 119, 129, 128, 126, 121, 110, 133, 116, 140, 126, 144, 129, 135, 120, 102, 117, 102, 127, 133, 139, 147, 123, 136, 123, 134, 134, 119, 128, 144, 117, 139, 115, 133, 127, 122, 125, 122, 130, 136, 138, 118, 136, 124, 129, 126, 114, 122, 119, 111, 120, 120, 117, 131, 115, 106, 139, 130, 124, 136, 118, 142, 137, 140, 143, 107, 132, 132, 143, 120, 129, 140, 132, 124, 120, 124, 125, 129, 128, 108, 110, 121, 110, 122, 136, 111, 116, 133, 120, 128, 123, 136, 134, 112, 159, 121, 119, 129, 116, 137, 113, 123, 136, 118, 99, 131, 137, 136, 129, 115, 136, 129, 146, 118, 104, 129, 138, 120, 125, 130, 120, 134, 112, 127, 131, 126, 131, 114, 129, 128, 130, 134, 128, 127, 120, 102, 137, 108, 118, 115, 133, 141, 116, 117, 108, 123, 130, 144, 116, 128, 125, 132, 108, 120, 140, 145, 99, 116, 118, 133, 123, 136, 138, 119, 118, 131, 129, 136, 134, 125, 145, 110, 129, 133, 134, 129, 142, 128, 123, 116, 137, 122, 112, 127, 120, 118, 94, 109, 120, 126, 120, 122, 123, 121, 136, 121, 133, 122, 131, 118, 122, 145, 145, 136, 142, 146, 126, 137, 115, 132, 115, 111, 126, 134, 113, 141, 138, 132, 133, 137, 129, 142, 120, 109, 133, 113, 118, 127, 123, 120, 115, 105, 126, 145, 131, 134, 117, 136, 125, 117, 122, 132, 136, 131, 125, 121, 118, 128, 137, 102, 143, 129, 138, 126, 115, 129, 128, 122, 118, 131, 123, 126, 136, 134, 142, 138, 107, 134, 135, 140, 121, 111, 118, 127, 108, 118, 141, 119, 136, 103, 134, 152, 139, 124, 125, 128, 119, 123, 133, 132, 114, 114, 121, 127, 123, 121, 152, 145, 126, 119, 128, 127, 118, 136, 132, 143, 120, 114, 132, 125, 122, 132, 131, 129, 117, 116, 134, 120, 130, 130, 117, 127, 119, 128, 133, 116, 127, 147, 128, 121, 120, 130, 123, 129, 114, 105, 104, 119, 123, 142, 124, 122, 112, 142, 117, 133, 137, 127, 108, 130, 140, 103, 125, 111, 136, 125, 119, 124, 120, 133, 134, 126, 121, 121, 122, 113, 121, 129, 134, 127, 136, 123, 135, 112, 143, 114, 122, 120, 134, 118, 137, 124, 126, 122, 121, 113, 103, 110, 119, 117, 122, 132, 127, 124, 126, 118, 122, 129, 126, 127, 119, 120, 104, 150, 130, 115, 131, 135, 157, 122, 129, 123, 131, 106, 126, 119, 130, 140, 121, 125, 130, 123, 123, 139, 128, 137, 131, 117, 125, 112, 121, 113, 131, 119, 134, 133, 135, 105, 118, 130, 147, 117, 140, 122, 128, 107, 125, 120, 137, 122, 125, 108, 127, 132, 143, 125, 130, 110, 121, 122, 134, 118, 120, 131, 117, 124, 129, 118, 138, 118, 110, 127, 114, 123, 117, 140, 111, 128, 131, 126, 134, 107, 134, 122, 130, 121, 130, 125, 132, 133, 122, 133, 115, 129, 142, 118, 129, 106, 118, 140, 131, 129, 121, 121, 126, 127, 133, 133, 128, 109, 139, 116, 122, 125, 136, 122, 129, 141, 123, 129, 140, 119, 119, 107, 127, 103, 121, 136, 150, 132, 115, 130, 130, 141, 128, 130, 133, 130, 136, 116, 124, 116, 133, 115, 126, 124, 123, 116, 116, 130, 128, 130, 125, 126, 144, 124, 126, 137, 132, 144, 122, 135, 133, 117, 124, 135, 142, 126, 123, 127, 124, 114, 126, 121, 122, 128, 142, 105, 131, 128, 130, 127, 132, 119, 138, 127, 138, 128, 126, 117, 135, 144, 71, 143, 120, 125, 120, 127, 120, 114, 121, 117, 123, 121, 124, 142, 130, 130, 122, 121, 122, 130, 141, 116, 116, 124, 120, 119, 120, 126, 124, 118, 132, 121, 133, 123, 133, 132, 138, 119, 124, 132, 119, 132, 106, 131, 129, 139, 120, 123, 115, 153, 141, 133, 128, 121, 128, 123, 122, 131, 126, 109, 122, 141, 121, 125, 130, 134, 116, 123, 128, 125, 133, 114, 121, 140, 132, 131, 126, 118, 121, 114, 116, 138, 131, 123, 135, 137, 108, 145, 114, 128, 129, 126, 126, 131, 126, 148, 133, 127, 136, 116, 132, 128, 111, 139, 140, 115, 131, 123, 136, 114, 133, 130, 133, 127, 138, 123, 130, 139, 113, 116, 129, 125, 120, 111, 125, 125, 120, 112, 140, 120, 136, 140, 125, 110, 116, 122, 122, 124, 126, 120, 126, 105, 112, 132, 126, 120, 136, 142, 150, 131, 109, 107, 129, 108, 115, 118, 138, 119, 138, 133, 125, 128, 142, 124, 117, 126, 118, 128, 115, 120, 124, 105, 123, 120, 117, 134, 131, 111, 99, 117, 128, 133, 137, 122, 123, 120, 123, 121, 126, 138, 123, 133, 134, 120, 131, 122, 108, 113, 120, 129, 123, 107, 121, 118, 130, 118, 124, 128, 130, 133, 118, 122, 118, 119, 135, 123, 136, 110, 139, 119, 137, 131, 118, 135, 114, 105, 133, 113, 129, 134, 113, 123, 118, 110, 128, 132, 109, 127, 134, 129, 120, 129, 117, 118, 125, 114, 114, 125, 125, 113, 146, 122, 114, 123, 148, 123, 130, 124, 130, 131, 129, 119, 135, 114, 120, 116, 139, 105, 128, 144, 102, 132, 132, 126, 123, 123, 135, 144, 129, 117, 120, 127, 129, 144, 107, 134, 130, 136, 127, 114, 123, 117, 119, 110, 130, 121, 133, 121, 132, 115, 126, 105, 125, 133, 125, 130, 117, 146, 123, 129, 125, 127, 114, 123, 116, 131, 144, 125, 126, 124, 130, 137, 118, 126, 130, 113, 110, 134, 120, 128, 126, 128, 126, 117, 142, 138, 116, 132, 124, 119, 117, 121, 122, 115, 127, 144, 135, 131, 113, 132, 126, 116, 113, 119, 99, 132, 135, 122, 121, 134, 109, 124, 134, 122, 112, 131, 129, 143, 112, 120, 128, 103, 127, 102, 123, 127, 128, 144, 125, 112, 140, 145, 137, 113, 131, 122, 127, 121, 132, 158, 142, 134, 110, 135, 121, 99, 127, 132, 114, 128, 123, 134, 121, 125, 116, 126, 106, 131, 124, 125, 99, 115, 108, 112, 123, 126, 101, 117, 125, 125, 136, 126, 139, 125, 119, 131, 134, 139, 127, 108, 130, 129, 109, 131, 119, 105, 132, 112, 126, 122, 132, 132, 133, 127, 106, 140, 127, 135, 145, 131, 132, 121, 134, 129, 118, 119, 121, 128, 142, 129, 128, 124, 123, 146, 131, 124, 123, 116, 114, 126, 125, 125, 134, 97, 125, 126, 128, 128, 130, 124, 133, 123, 120, 121, 130, 149, 138, 117, 118, 121, 127, 127, 130, 148, 138, 135, 114, 115, 132, 127, 129, 122, 123, 117, 133, 104, 123, 127, 121, 137, 129, 124, 132, 139, 123, 128, 112, 135, 123, 101, 140, 120, 124, 125, 131, 130, 118, 129, 110, 123, 118, 121, 120, 127, 123, 112, 108, 139, 124, 125, 118, 117, 123, 121, 140, 124, 129, 126, 125, 122, 130, 131, 123, 129, 135, 121, 120, 119, 120, 126, 134, 122, 134, 124, 107, 127, 131, 121, 134, 131, 137, 127, 145, 129, 120, 139, 120, 119, 146, 119, 141, 112, 130, 116, 129, 137, 116, 147, 129, 124, 144, 122, 131, 108, 117, 106, 115, 133, 140, 123, 133, 125, 106, 131, 112, 124, 119, 128, 126, 110, 128, 137, 127, 131, 124, 121, 121, 130, 131, 125, 140, 124, 127, 132, 137, 118, 135, 129, 121, 128, 128, 115, 139, 122, 136, 124, 135, 129, 141, 112, 118, 120, 130, 116, 113, 125, 136, 126, 125, 125, 126, 118, 114, 124, 138, 118, 111, 124, 131, 115, 121, 131, 122, 124, 115, 140, 126, 126, 134, 155, 128, 108, 112, 114, 136, 131, 116, 123, 107, 105, 114, 127, 130, 143, 145, 138, 128, 127, 120, 130, 117, 139, 128, 128, 109, 132, 128, 118, 114, 119, 136, 112, 123, 114, 133, 114, 119, 134, 138, 141, 122, 125, 131, 151, 110, 131, 124, 129, 144, 127, 131, 114, 128, 107, 139, 148, 135, 118, 141, 129, 145, 116, 133, 133, 146, 127, 126, 116, 111, 123, 129, 120, 128, 133, 121, 131, 139, 128, 108, 134, 121, 129, 112, 133, 103, 130, 137, 112, 128, 128, 120, 134, 125, 137, 121, 130, 105, 125, 129, 116, 140, 137, 140, 120, 127, 126, 109, 116, 130, 134, 132, 124, 128, 109, 107, 133, 130, 116, 132, 110, 119, 134, 124, 140, 130, 124, 126, 147, 131, 127, 145, 122, 139, 121, 116, 138, 124, 139, 114, 123, 112, 135, 124, 124, 127, 120, 117, 131, 121, 116, 120, 136, 122, 111, 122, 104, 113, 135, 130, 116, 117, 120, 121, 120, 123, 124, 136, 114, 152, 120, 128, 136, 127, 127, 116, 116, 112, 144, 137, 123, 123, 117, 150, 117, 117, 132, 131, 126, 126, 139, 123, 100, 121, 98, 124, 119, 116, 122, 143, 116, 109, 127, 142, 145, 109, 125, 126, 113, 128, 115, 119, 130, 113, 136, 121, 115, 127, 129, 133, 127, 137, 127, 148, 127, 115, 129, 138, 121, 133, 109, 115, 132, 128, 127, 135, 133, 124, 122, 131, 135, 114, 146, 137, 123, 119, 129, 115, 132, 133, 131, 130, 121, 129, 138, 123, 141, 124, 119, 118, 108, 137, 121, 123, 126, 128, 112, 120, 127, 125, 135, 142, 131, 149, 133, 109, 117, 118, 153, 127, 107, 140, 122, 145, 134, 127, 131, 130, 119, 137, 134, 145, 152, 109, 109, 136, 111, 135, 86, 130, 122, 140, 130, 121, 127, 135, 128, 122, 125, 115, 146, 131, 130, 142, 128, 124, 139, 141, 123, 129, 114, 128, 134, 134, 120, 121, 137, 123, 124, 119, 117, 132, 139, 121, 120, 124, 129, 127, 136, 132, 121, 134, 133, 134, 123, 108, 128, 130, 123, 129, 125, 129, 128, 130, 116, 122, 118, 130, 138, 128, 137, 114, 160, 134, 124, 114, 117, 114, 130, 103, 119, 129, 108, 127, 107, 124, 124, 129, 123, 109, 152, 117, 127, 122, 136, 125, 115, 121, 122, 143, 126, 112, 141, 137, 131, 128, 124, 117, 128, 132, 126, 125, 124, 117, 125, 126, 129, 106, 135, 103, 137, 122, 134, 112, 123, 132, 111, 111, 131, 127, 128, 123, 126, 111, 114, 135, 128, 122, 127, 113, 110, 127, 147, 125, 129, 122, 137, 123, 135, 122, 128, 134, 138, 130, 133, 133, 100, 124, 140, 138, 133, 115, 137, 127, 131, 111, 121, 116, 151, 127, 126, 138, 118, 129, 140, 106, 117, 137, 126, 114, 143, 123, 134, 127, 123, 117, 130, 140, 112, 108, 115, 151, 157, 121, 129, 120, 126, 117, 118, 117, 135, 118, 125, 115, 119, 135, 130, 86, 133, 117, 123, 121, 107, 121, 140, 135, 122, 113, 142, 130, 136, 123, 120, 116, 134, 136, 126, 116, 129, 150, 104, 107, 127, 127, 134, 116, 133, 124, 112, 129, 129, 127, 125, 114, 124, 132, 139, 123, 124, 126, 137, 131, 124, 134, 117, 140, 135, 136, 123, 135, 116, 129, 133, 124, 120, 114, 106, 120, 122, 126, 131, 124, 162, 117, 116, 149, 124, 120, 129, 126, 114, 132, 113, 128, 118, 117, 139, 128, 118, 110, 126, 122, 123, 101, 140, 100, 120, 124, 121, 107, 136, 149, 115, 111, 129, 134, 120, 130, 132, 137, 108, 136, 119, 119, 119, 126, 123, 127, 124, 128, 135, 144, 134, 140, 127, 132, 140, 103, 116, 142, 125, 137, 141, 117, 113, 108, 100, 132, 117, 143, 114, 133, 127, 122, 129, 133, 125, 127, 123, 138, 133, 137, 111, 151, 105, 133, 125, 116, 128, 120, 127, 135, 117, 114, 109, 129, 112, 124, 131, 144, 127, 132, 122, 124, 121, 125, 129, 123, 120, 137, 120, 116, 102, 124, 138, 125, 104, 119, 139, 135, 143, 118, 130, 117, 126, 119, 137, 102, 148, 113, 125, 123, 143, 128, 131, 125, 128, 120, 117, 91, 123, 152, 133, 113, 114, 125, 99, 117, 122, 121, 136, 132, 134, 152, 127, 134, 130, 130, 140, 113, 137, 112, 133, 101, 121, 136, 132, 129, 139, 113, 141, 127, 114, 107, 129, 125, 129, 122, 113, 132, 100, 116, 133, 117, 150, 129, 124, 139, 122, 122, 125, 135, 117, 124, 110, 117, 147, 114, 115, 107, 125, 123, 130, 131, 137, 133, 128, 131, 117, 119, 128, 128, 126, 117, 136, 117, 121, 135, 111, 104, 136, 141, 122, 146, 122, 125, 121, 125, 131, 110, 136, 129, 114, 121, 122, 116, 126, 151, 135, 128, 113, 126, 121, 135, 125, 140, 123, 133, 139, 134, 129, 120, 124, 128, 125, 104, 124, 120, 137, 120, 126, 128, 119, 142, 128, 126, 123, 131, 130, 126, 132, 119, 130, 123, 126, 114, 141, 129, 114, 128, 125, 134, 123, 129, 114, 143, 118, 102, 125, 111, 118, 127, 117, 146, 135, 131, 114, 123, 129, 141, 122, 140, 145, 118, 116, 123, 125, 121, 149, 134, 143, 124, 126, 111, 122, 125, 123, 117, 133, 122, 120, 116, 117, 122, 125, 114, 117, 128, 117, 127, 134, 127, 122, 129, 124, 127, 119, 120, 98, 136, 146, 109, 125, 126, 119, 143, 136, 124, 136, 129, 119, 139, 144, 122, 122, 137, 130, 133, 122, 113, 130, 134, 123, 124, 114, 118, 113, 120, 126, 130, 117, 133, 136, 110, 120, 124, 127, 127, 114, 117, 135, 123, 136, 123, 144, 114, 121, 135, 120, 116, 134, 125, 132, 123, 131, 123, 131, 129, 122, 123, 130, 113, 119, 124, 130, 129, 116, 117, 118, 126, 123, 109, 117, 127, 135, 124, 121, 144, 156, 116, 126, 129, 125, 139, 116, 130, 116, 125, 135, 126, 120, 122, 128, 130, 121, 124, 125, 123, 112, 120, 120, 132, 121, 105, 120, 134, 117, 130, 112, 123, 116, 126, 118, 125, 114, 122, 109, 140, 126, 108, 124, 140, 115, 106, 125, 123, 143, 141, 125, 113, 114, 131, 117, 117, 122, 109, 115, 123, 120, 133, 145, 108, 114, 125, 134, 139, 138, 142, 113, 139, 126, 123, 127, 135, 144, 118, 125, 119, 141, 124, 113, 131, 128, 135, 132, 123, 133, 137, 110, 122, 134, 115, 131, 131, 139, 112, 130, 115, 120, 117, 128, 117, 109, 113, 119, 140, 111, 103, 132, 127, 125, 122, 116, 124, 133, 120, 126, 149, 111, 137, 108, 122, 125, 138, 122, 120, 125, 113, 118, 132, 115, 110, 137, 118, 146, 106, 141, 127, 136, 127, 134, 117, 127, 129, 127, 111, 135, 117, 124, 137, 93, 110, 142, 138, 122, 134, 132, 133, 124, 125, 121, 126, 144, 117, 123, 127, 141, 120, 123, 131, 114, 118, 132, 126, 133, 139, 124, 122, 123, 136, 123, 116, 138, 117, 129, 128, 126, 118, 133, 131, 121, 131, 121, 139, 140, 153, 108, 133, 116, 128, 117, 119, 120, 127, 125, 124, 128, 116, 120, 118, 118, 161, 116, 137, 118, 119, 139, 145, 106, 115, 116, 139, 128, 121, 137, 122, 118, 120, 115, 121, 123, 135, 125, 115, 103, 124, 121, 106, 152, 140, 121, 111, 116, 132, 119, 139, 124, 114, 119, 117, 130, 127, 127, 138, 130, 134, 127, 129, 127, 113, 112, 128, 121, 124, 121, 127, 113, 132, 133, 109, 127, 113, 118, 110, 117, 122, 134, 111, 118, 119, 116, 131, 138, 124, 138, 112, 117, 123, 121, 118, 143, 122, 132, 120, 114, 130, 123, 134, 109, 130, 127, 135, 113, 126, 112, 128, 117, 125, 129, 124, 113, 103, 141, 119, 106, 137, 130, 121, 139, 141, 118, 124, 146, 126, 121, 137, 116, 119, 150, 131, 109, 127, 134, 126, 122, 121, 132, 136, 122, 116, 107, 132, 128, 121, 118, 116, 144, 114, 114, 135, 122, 126, 127, 122, 140, 126, 106, 116, 116, 129, 134, 127, 116, 131, 128, 122, 128, 120, 134, 126, 129, 121, 121, 127, 136, 112, 109, 133, 127, 126, 130, 141, 123, 134, 130, 125, 110, 127, 115, 117, 129, 124, 128, 116, 111, 131, 125, 134, 139, 129, 139, 115, 148, 139, 116, 116, 119, 136, 126, 109, 127, 134, 126, 121, 126, 117, 117, 128, 139, 123, 125, 111, 131, 138, 125, 113, 124, 120, 111, 115, 115, 148, 121, 135, 125, 133, 137, 133, 123, 112, 110, 134, 143, 138, 123, 124, 124, 120, 123, 124, 124, 130, 115, 126, 120, 135, 132, 133, 124, 121, 139, 132, 125, 117, 129, 109, 127, 133, 103, 115, 130, 113, 122, 113, 105, 126, 120, 122, 131, 119, 113, 127, 131, 116, 117, 136, 114, 120, 96, 138, 125, 127, 127, 125, 122, 118, 126, 119, 115, 112, 124, 118, 113, 117, 123, 109, 129, 123, 140, 121, 124, 134, 135, 135, 117, 149, 144, 141, 131, 125, 119, 113, 118, 120, 135, 133, 132, 128, 121, 138, 118, 106, 130, 113, 125, 110, 123, 121, 136, 141, 122, 125, 114, 136, 124, 102, 140, 138, 118, 135, 138, 133, 116, 133, 132, 131, 117, 134, 118, 135, 108, 121, 129, 136, 132, 120, 122, 119, 131, 129, 117, 137, 122, 115, 116, 130, 127, 117, 117, 125, 128, 112, 128, 116, 112, 135, 146, 122, 119, 137, 129, 144, 134, 136, 129, 128, 117, 114, 126, 140, 132, 126, 120, 116, 113, 128, 136, 118, 118, 118, 126, 128, 128, 119, 127, 126, 131, 133, 129, 130, 128, 124, 129, 111, 116, 124, 148, 113, 127, 123, 121, 126, 143, 125, 112, 126, 123, 149, 126, 120, 132, 120, 133, 124, 113, 140, 132, 127, 120, 109, 123, 138, 156, 119, 121, 130, 145, 126, 130, 136, 133, 114, 143, 124, 108, 132, 134, 135, 123, 131, 123, 109, 122, 120, 124, 120, 118, 127, 127, 123, 138, 122, 114, 126, 125, 151, 131, 125, 141, 133, 123, 127, 137, 124, 141, 134, 135, 134, 124, 122, 112, 124, 138, 135, 139, 127, 126, 120, 123, 143, 122, 134, 135, 116, 121, 122, 114, 139, 143, 137, 107, 121, 121, 131, 140, 130, 123, 125, 126, 119, 128, 124, 118, 119, 126, 145, 121, 125, 130, 133, 120, 124, 125, 130, 145, 127, 126, 149, 126, 115, 125, 124, 137, 138, 121, 130, 109, 116, 131, 128, 130, 117, 121, 119, 141, 145, 133, 122, 123, 134, 124, 140, 123, 134, 114, 107, 116, 124, 114, 127, 127, 106, 139, 109, 113, 124, 125, 137, 119, 109, 153, 128, 125, 123, 148, 132, 131, 114, 136, 112, 139, 116, 121, 114, 119, 106, 126, 125, 109, 116, 136, 120, 127, 121, 124, 126, 130, 126, 101, 118, 146, 125, 132, 124, 129, 125, 132, 123, 127, 135, 117, 127, 126, 142, 128, 122, 137, 145, 132, 128, 124, 117, 101, 135, 110, 131, 121, 124, 130, 140, 98, 134, 125, 129, 122, 118, 154, 131, 127, 120, 140, 128, 136, 139, 139, 128, 139, 150, 146, 113, 126, 115, 135, 120, 124, 118, 129, 135, 118, 126, 126, 128, 145, 128, 140, 120, 130, 131, 118, 134, 128, 135, 134, 126, 113, 125, 135, 119, 131, 130, 105, 107, 118, 130, 115, 128, 133, 108, 135, 136, 136, 121, 135, 124, 125, 134, 137, 117, 132, 126, 116, 109, 124, 136, 130, 122, 121, 118, 120, 139, 122, 139, 122, 130, 124, 128, 125, 119, 114, 131, 120, 130, 142, 125, 138, 105, 123, 132, 124, 115, 127, 130, 139, 100, 114, 128, 121, 122, 138, 134, 133, 115, 127, 110, 131, 117, 132, 128, 125, 115, 137, 106, 122, 146, 136, 132, 122, 123, 124, 126, 128, 141, 122, 124, 126, 96, 141, 126, 128, 124, 129, 115, 137, 118, 124, 126, 128, 133, 134, 142, 123, 130, 132, 108, 117, 127, 120, 125, 106, 127, 111, 118, 121, 117, 135, 122, 129, 122, 126, 119, 127, 104, 141, 131, 131, 135, 145, 139, 140, 125, 113, 115, 136, 128, 116, 117, 123, 131, 91, 117, 127, 119, 146, 139, 126, 138, 128, 117, 127, 109, 149, 137, 136, 105, 113, 127, 134, 136, 129, 118, 114, 135, 126, 132, 128, 126, 116, 94, 138, 128, 124, 129, 94, 104, 123, 131, 125, 135, 126, 136, 133, 139, 139, 104, 118, 128, 115, 114, 118, 124, 138, 117, 105, 95, 130, 129, 124, 112, 114, 144, 126, 108, 119, 123, 139, 140, 124, 123, 146, 139, 135, 139, 138, 118, 121, 108, 119, 121, 124, 120, 122, 118, 110, 124, 131, 118, 134, 114, 149, 133, 130, 120, 140, 133, 111, 128, 110, 120, 122, 128, 122, 133, 117, 120, 122, 127, 112, 139, 133, 129, 127, 123, 135, 109, 124, 131, 131, 119, 123, 97, 96, 125, 128, 120, 127, 126, 99, 134, 131, 120, 122, 118, 133, 139, 110, 121, 129, 129, 104, 123, 125, 138, 119, 122, 128, 131, 119, 134, 118, 120, 137, 121, 119, 132, 125, 134, 114, 124, 135, 110, 89, 126, 147, 134, 134, 102, 141, 130, 119, 129, 114, 134, 118, 109, 128, 123, 101, 135, 131, 134, 132, 136, 138, 136, 109, 115, 130, 133, 124, 128, 131, 143, 110, 123, 123, 125, 131, 121, 133, 111, 155, 123, 125, 96, 128, 110, 131, 123, 121, 119, 127, 141, 118, 121, 121, 122, 118, 127, 145, 129, 129, 133, 124, 142, 117, 120, 128, 107, 130, 132, 120, 130, 129, 140, 131, 110, 115, 117, 126, 138, 125, 136, 121, 126, 104, 127, 138, 134, 129, 137, 136, 111, 112, 126, 125, 131, 123, 146, 111, 114, 109, 166, 117, 139, 128, 108, 130, 126, 118, 121, 123, 144, 125, 142, 118, 110, 135, 120, 116, 116, 124, 114, 125, 138, 128, 127, 109, 125, 119, 102, 125, 137, 120, 106, 120, 134, 119, 148, 138, 117, 133, 118, 134, 130, 118, 122, 123, 123, 127, 124, 130, 117, 134, 138, 126, 120, 110, 117, 109, 129, 123, 141, 146, 122, 111, 125, 121, 128, 119, 131, 125, 120, 134, 130, 119, 139, 124, 134, 124, 122, 143, 119, 133, 123, 140, 112, 120, 144, 126, 112, 131, 145, 115, 139, 144, 126, 130, 139, 112, 111, 132, 125, 107, 124, 115, 136, 133, 109, 115, 133, 140, 131, 133, 117, 139, 150, 122, 121, 145, 135, 134, 120, 108, 135, 116, 130, 112, 147, 124, 129, 118, 117, 122, 131, 113, 150, 121, 108, 130, 149, 124, 116, 139, 126, 146, 129, 112, 116, 125, 124, 117, 122, 128, 130, 146, 140, 105, 122, 111, 114, 127, 134, 138, 117, 145, 125, 96, 139, 128, 134, 120, 107, 114, 134, 142, 116, 125, 142, 126, 141, 120, 118, 125, 131, 127, 123, 135, 114, 132, 122, 122, 121, 131, 126, 144, 116, 124, 120, 133, 128, 126, 110, 115, 128, 111, 139, 122, 116, 123, 122, 130, 136, 101, 132, 140, 128, 126, 114, 132, 114, 121, 126, 105, 134, 137, 107, 123, 124, 118, 103, 127, 132, 136, 118, 126, 135, 137, 124, 120, 118, 118, 137, 122, 131, 138, 124, 121, 129, 133, 120, 126, 130, 131, 112, 93, 103, 145, 124, 143, 121, 136, 128, 131, 114, 133, 101, 107, 109, 121, 126, 139, 129, 129, 134, 130, 127, 124, 119, 128, 118, 128, 146, 135, 124, 134, 118, 114, 129, 120, 128, 127, 127, 122, 131, 127, 119, 120, 118, 117, 130, 125, 127, 117, 114, 129, 126, 132, 131, 128, 136, 106, 128, 127, 115, 119, 131, 122, 128, 127, 108, 140, 114, 123, 123, 138, 128, 133, 130, 129, 134, 123, 100, 132, 127, 103, 119, 130, 139, 125, 133, 112, 125, 133, 128, 114, 135, 122, 110, 115, 125, 121, 113, 149, 120, 148, 112, 119, 120, 128, 120, 125, 116, 127, 121, 129, 134, 123, 136, 140, 148, 106, 123, 134, 115, 131, 139, 121, 104, 123, 128, 126, 126, 128, 115, 127, 127, 139, 130, 117, 124, 136, 114, 128, 124, 123, 107, 122, 141, 116, 133, 114, 115, 139, 132, 103, 121, 121, 131, 115, 122, 133, 132, 128, 123, 126, 136, 158, 132, 134, 114, 135, 132, 148, 119, 112, 125, 126, 128, 110, 114, 127, 119, 114, 125, 139, 139, 136, 113, 127, 127, 109, 144, 155, 136, 120, 116, 102, 129, 145, 111, 145, 114, 120, 150, 126, 129, 119, 127, 138, 133, 133, 112, 124, 135, 104, 140, 117, 130, 120, 91, 127, 110, 138, 108, 111, 137, 126, 124, 124, 112, 120, 116, 128, 108, 135, 121, 142, 138, 130, 124, 127, 137, 121, 142, 105, 115, 129, 113, 142, 118, 129, 116, 138, 118, 105, 138, 109, 129, 116, 128, 108, 124, 118, 111, 143, 129, 118, 114, 134, 132, 143, 142, 125, 114, 146, 124, 137, 135, 119, 147, 122, 122, 121, 123, 150, 115, 153, 114, 119, 115, 132, 124, 120, 129, 119, 127, 127, 125, 127, 134, 128, 154, 134, 113, 134, 121, 133, 132, 115, 119, 133, 123, 120, 146, 97, 142, 133, 130, 117, 133, 127, 121, 133, 119, 120, 134, 132, 135, 134, 124, 120, 124, 133, 121, 130, 130, 123, 117, 106, 117, 121, 143, 133, 118, 129, 119, 108, 122, 115, 119, 118, 119, 117, 121, 130, 155, 131, 139, 119, 136, 124, 128, 119, 122, 91, 125, 131, 137, 133, 137, 122, 124, 133, 113, 126, 115, 130, 144, 119, 119, 133, 122, 109, 123, 122, 136, 118, 139, 124, 130, 135, 107, 114, 86, 141, 125, 131, 121, 117, 119, 142, 125, 127, 119, 125, 122, 131, 145, 109, 123, 128, 106, 120, 121, 100, 130, 115, 136, 130, 134, 124, 137, 117, 108, 103, 124, 134, 119, 131, 126, 128, 137, 116, 118, 114, 129, 128, 151, 110, 154, 123, 141, 129, 120, 127, 113, 132, 117, 138, 97, 132, 131, 120, 121, 116, 149, 113, 112, 121, 121, 128, 118, 127, 127, 128, 117, 109, 147, 125, 128, 151, 126, 135, 116, 105, 131, 125, 119, 111, 105, 112, 133, 110, 127, 123, 131, 101, 109, 143, 115, 123, 124, 119, 122, 130, 129, 112, 127, 133, 119, 126, 129, 133, 124, 107, 127, 116, 138, 112, 108, 114, 130, 125, 114, 122, 133, 134, 126, 114, 121, 125, 126, 115, 143, 118, 121, 137, 127, 118, 124, 126, 141, 130, 113, 140, 137, 122, 138, 119, 148, 127, 117, 135, 124, 116, 138, 142, 126, 106, 121, 132, 123, 118, 132, 127, 120, 117, 120, 124, 127, 124, 116, 137, 128, 122, 107, 136, 134, 128, 115, 129, 120, 132, 130, 129, 124, 143, 100, 136, 122, 131, 129, 125, 125, 123, 140, 131, 118, 119, 127, 126, 117, 130, 131, 140, 138, 125, 122, 132, 118, 118, 97, 124, 132, 130, 119, 133, 129, 132, 148, 130, 137, 122, 145, 127, 147, 122, 141, 146, 130, 114, 129, 129, 140, 130, 137, 119, 124, 107, 117, 127, 128, 140, 125, 137, 116, 118, 129, 125, 116, 139, 113, 129, 133, 118, 132, 154, 139, 135, 115, 141, 129, 123, 111, 127, 134, 119, 126, 105, 138, 119, 114, 148, 106, 129, 117, 133, 125, 130, 121, 119, 134, 143, 117, 144, 137, 114, 122, 123, 118, 126, 126, 126, 122, 129, 132, 130, 131, 115, 132, 130, 106, 98, 112, 134, 131, 138, 129, 118, 127, 131, 140, 115, 129, 121, 137, 141, 115, 133, 127, 131, 135, 128, 144, 139, 119, 126, 134, 117, 117, 133, 117, 129, 134, 126, 128, 114, 116, 127, 125, 128, 132, 115, 97, 123, 136, 115, 109, 109, 141, 132, 145, 122, 139, 129, 122, 105, 108, 125, 128, 117, 131, 126, 126, 138, 139, 141, 124, 119, 108, 141, 133, 110, 137, 129, 120, 113, 135, 145, 133, 129, 136, 133, 134, 130, 123, 122, 120, 128, 120, 134, 110, 114, 124, 128, 125, 120, 126, 117, 130, 133, 130, 125, 133, 146, 119, 120, 110, 146, 120, 126, 131, 121, 139, 128, 143, 135, 109, 136, 153, 123, 118, 134, 120, 120, 128, 140, 140, 129, 115, 128, 124, 128, 118, 141, 108, 140, 115, 140, 121, 122, 111, 131, 127, 128, 126, 128, 125, 114, 118, 108, 123, 132, 119, 122, 116, 122, 95, 115, 119, 140, 113, 128, 108, 129, 129, 109, 132, 118, 120, 92, 99, 133, 133, 135, 127, 133, 147, 120, 106, 122, 136, 138, 123, 126, 130, 142, 127, 125, 127, 124, 135, 129, 142, 123, 120, 112, 130, 113, 140, 113, 136, 150, 114, 109, 123, 120, 129, 132, 147, 134, 146, 106, 108, 130, 134, 142, 114, 124, 138, 119, 129, 113, 117, 121, 119, 117, 132, 110, 116, 117, 143, 118, 117, 111, 119, 117, 145, 116, 141, 121, 115, 126, 124, 128, 131, 134, 117, 128, 115, 122, 127, 132, 119, 113, 131, 119, 121, 112, 121, 114, 130, 126, 119, 146, 123, 116, 104, 134, 116, 122, 131, 98, 113, 130, 122, 129, 123, 120, 127, 134, 123, 110, 135, 111, 121, 122, 121, 113, 127, 126, 111, 119, 135, 112, 116, 128, 117, 129, 131, 107, 125, 102, 106, 119, 117, 119, 122, 132, 126, 134, 119, 106, 119, 123, 133, 144, 130, 132, 118, 131, 142, 124, 124, 108, 128, 129, 126, 117, 109, 115, 132, 114, 115, 125, 120, 117, 130, 122, 125, 129, 123, 120, 123, 132, 123, 139, 130, 133, 120, 117, 139, 130, 123, 166, 117, 122, 116, 147, 132, 127, 137, 113, 119, 122, 126, 121, 123, 117, 126, 123, 117, 133, 141, 127, 134, 123, 141, 124, 134, 127, 111, 130, 132, 110, 99, 116, 133, 128, 133, 121, 131, 126, 146, 131, 127, 118, 107, 139, 138, 116, 133, 129, 127, 126, 117, 122, 118, 125, 117, 132, 132, 111, 120, 108, 117, 118, 142, 119, 137, 122, 123, 135, 119, 138, 133, 126, 119, 148, 122, 144, 140, 133, 120, 121, 129, 116, 108, 120, 118, 134, 120, 121, 134, 133, 130, 116, 121, 125, 125, 127, 131, 118, 134, 153, 133, 130, 134, 118, 128, 140, 120, 123, 126, 145, 140, 122, 121, 114, 131, 118, 123, 122, 133, 123, 129, 141, 128, 137, 111, 135, 117, 128, 133, 130, 102, 129, 133, 131, 102, 122, 93, 114, 126, 136, 140, 124, 122, 132, 122, 122, 145, 122, 125, 139, 132, 119, 138, 114, 118, 121, 113, 138, 123, 133, 139, 133, 151, 128, 138, 127, 133, 127, 136, 124, 135, 134, 150, 113, 128, 127, 139, 141, 142, 135, 107, 112, 112, 134, 143, 115, 126, 126, 113, 131, 132, 144, 102, 131, 141, 124, 134, 126, 127, 135, 132, 120, 114, 127, 129, 121, 129, 115, 112, 128, 118, 134, 125, 115, 128, 120, 121, 113, 131, 143, 119, 125, 123, 118, 119, 110, 106, 137, 119, 108, 133, 121, 110, 120, 111, 129, 139, 99, 113, 139, 150, 106, 124, 104, 136, 106, 126, 108, 111, 127, 120, 122, 116, 134, 111, 163, 118, 135, 128, 129, 127, 113, 115, 132, 126, 120, 116, 120, 136, 123, 114, 104, 123, 117, 135, 149, 131, 126, 125, 129, 114, 115, 124, 131, 123, 122, 107, 119, 120, 99, 128, 111, 132, 121, 118, 139, 110, 142, 146, 97, 122, 135, 143, 131, 139, 138, 122, 155, 126, 114, 141, 122, 143, 113, 134, 119, 127, 134, 136, 131, 112, 119, 126, 139, 130, 121, 122, 111, 127, 135, 108, 121, 129, 128, 124, 118, 133, 132, 118, 122, 134, 114, 123, 120, 128, 119, 132, 134, 125, 112, 125, 118, 119, 97, 117, 99, 140, 119, 134, 133, 122, 138, 131, 116, 117, 116, 122, 114, 144, 125, 111, 122, 134, 124, 133, 117, 131, 114, 121, 130, 139, 123, 149, 118, 138, 132, 140, 121, 106, 135, 122, 123, 124, 120, 134, 131, 123, 104, 112, 131, 120, 137, 133, 111, 138, 116, 118, 124, 126, 129, 133, 117, 135, 117, 117, 140, 128, 128, 120, 113, 137, 136, 131, 125, 122, 129, 124, 123, 143, 112, 129, 125, 123, 110, 129, 144, 125, 153, 129, 117, 134, 127, 125, 143, 116, 128, 142, 113, 125, 116, 127, 121, 112, 124, 121, 120, 136, 107, 106, 130, 131, 129, 120, 122, 118, 119, 128, 143, 134, 117, 128, 139, 125, 132, 143, 126, 123, 119, 119, 124, 126, 119, 114, 122, 122, 129, 128, 123, 123, 121, 128, 135, 114, 131, 124, 127, 125, 138, 122, 128, 125, 135, 119, 127, 148, 136, 132, 154, 122, 134, 116, 122, 115, 125, 127, 128, 141, 121, 130, 123, 135, 120, 123, 141, 117, 140, 120, 114, 113, 138, 126, 144, 102, 122, 121, 130, 122, 121, 135, 130, 120, 113, 128, 120, 131, 102, 143, 121, 121, 118, 138, 121, 132, 121, 119, 121, 115, 137, 141, 144, 120, 114, 120, 122, 118, 142, 121, 143, 113, 110, 130, 112, 119, 114, 130, 114, 119, 121, 107, 126, 132, 110, 120, 130, 114, 118, 112, 122, 112, 115, 136, 141, 124, 115, 127, 134, 129, 133, 131, 123, 133, 129, 131, 141, 129, 116, 109, 134, 127, 110, 111, 114, 110, 130, 119, 107, 121, 123, 127, 125, 135, 121, 131, 124, 121, 136, 134, 122, 115, 116, 128, 113, 145, 125, 112, 141, 135, 123, 126, 124, 106, 124, 131, 115, 109, 126, 119, 135, 124, 127, 130, 122, 126, 135, 119, 114, 121, 127, 135, 118, 108, 131, 127, 113, 135, 123, 131, 124, 131, 111, 116, 147, 128, 129, 127, 129, 134, 121, 113, 120, 129, 133, 120, 125, 145, 115, 105, 117, 119, 127, 112, 134, 124, 127, 119, 118, 122, 130, 135, 131, 133, 133, 134, 129, 123, 139, 115, 123, 137, 130, 117, 108, 108, 109, 133, 127, 110, 109, 138, 137, 129, 121, 119, 130, 128, 120, 150, 111, 141, 134, 122, 125, 137, 133, 136, 118, 137, 127, 130, 129, 122, 130, 99, 139, 125, 107, 119, 138, 148, 116, 118, 115, 127, 116, 117, 125, 144, 110, 114, 113, 138, 119, 127, 110, 127, 134, 134, 101, 113, 125, 113, 122, 144, 116, 137, 132, 116, 120, 139, 148, 120, 124, 136, 140, 125, 124, 111, 127, 130, 118, 135, 139, 124, 109, 120, 125, 121, 132, 128, 113, 135, 102, 120, 131, 114, 135, 129, 120, 121, 119, 121, 119, 120, 136, 127, 127, 131, 113, 125, 125, 121, 130, 107, 122, 104, 109, 129, 131, 136, 116, 120, 129, 133, 111, 135, 139, 137, 139, 120, 122, 117, 127, 126, 121, 136, 121, 130, 115, 130, 127, 136, 138, 114, 128, 120, 127, 131, 134, 119, 113, 135, 114, 135, 131, 119, 129, 126, 127, 125, 142, 131, 121, 142, 129, 122, 139, 115, 122, 126, 107, 138, 126, 130, 113, 124, 129, 130, 134, 129, 107, 105, 127, 108, 118, 131, 117, 111, 128, 137, 110, 149, 134, 111, 125, 130, 117, 123, 119, 131, 121, 97, 132, 115, 133, 120, 131, 138, 146, 122, 130, 125, 127, 124, 136, 136, 133, 125, 135, 117, 118, 106, 126, 117, 136, 139, 126, 126, 138, 116, 133, 116, 111, 118, 125, 113, 129, 140, 125, 115, 129, 119, 112, 128, 109, 120, 127, 129, 136, 126, 119, 137, 127, 144, 120, 123, 104, 124, 132, 130, 130, 129, 133, 114, 133, 105, 120, 129, 139, 107, 99, 119, 97, 116, 116, 109, 134, 118, 118, 137, 123, 138, 145, 124, 112, 128, 124, 138, 111, 143, 129, 113, 140, 118, 132, 123, 102, 130, 124, 108, 126, 153, 132, 143, 110, 127, 115, 134, 126, 140, 125, 100, 133, 125, 126, 119, 117, 128, 115, 135, 127, 133, 121, 123, 111, 124, 116, 142, 131, 134, 126, 121, 120, 121, 114, 122, 117, 129, 121, 128, 119, 135, 125, 124, 143, 125, 148, 121, 133, 119, 135, 124, 123, 123, 117, 135, 120, 106, 126, 134, 141, 134, 122, 101, 132, 105, 106, 137, 150, 130, 130, 130, 137, 115, 102, 137, 121, 130, 117, 128, 115, 126, 123, 131, 117, 132, 132, 135, 129, 125, 134, 124, 113, 137, 131, 140, 128, 122, 127, 139, 112, 140, 114, 118, 131, 133, 118, 123, 125, 130, 130, 113, 130, 120, 124, 120, 125, 118, 127, 143, 105, 150, 111, 135, 132, 129, 125, 136, 121, 120, 126, 120, 117, 120, 139, 123, 131, 143, 126, 122, 134, 125, 105, 131, 141, 120, 126, 112, 136, 136, 132, 162, 131, 163, 117, 125, 126, 89, 109, 105, 114, 109, 122, 115, 140, 138, 118, 111, 140, 113, 122, 137, 122, 141, 131, 125, 121, 138, 128, 119, 126, 110, 127, 127, 118, 110, 120, 128, 137, 112, 145, 119, 125, 141, 126, 157, 112, 139, 116, 111, 135, 115, 138, 148, 123, 102, 123, 150, 130, 122, 140, 120, 134, 137, 135, 119, 123, 105, 128, 121, 128, 137, 128, 120, 126, 122, 116, 108, 135, 120, 128, 133, 128, 122, 133, 122, 111, 137, 122, 127, 118, 130, 132, 105, 113, 117, 116, 138, 106, 122, 125, 133, 127, 118, 135, 106, 133, 132, 117, 116, 116, 120, 138, 115, 114, 122, 138, 112, 128, 121, 118, 124, 130, 129, 129, 108, 132, 132, 128, 123, 122, 110, 116, 115, 122, 125, 113, 136, 132, 123, 107, 135, 117, 131, 122, 118, 116, 128, 124, 113, 142, 124, 122, 127, 133, 135, 139, 137, 138, 135, 136, 111, 122, 136, 117, 129, 112, 122, 114, 139, 122, 124, 114, 116, 112, 93, 113, 116, 128, 112, 113, 122, 132, 126, 126, 128, 123, 126, 121, 129, 133, 123, 123, 123, 127, 124, 117, 121, 122, 108, 134, 128, 126, 110, 106, 127, 128, 95, 124, 110, 119, 142, 129, 128, 148, 125, 125, 147, 101, 116, 160, 137, 148, 111, 141, 132, 131, 118, 130, 139, 114, 120, 130, 127, 137, 141, 124, 124, 116, 141, 123, 137, 136, 124, 130, 147, 135, 107, 125, 124, 129, 136, 145, 127, 114, 119, 119, 123, 142, 137, 123, 120, 109, 120, 134, 132, 124, 104, 118, 130, 139, 130, 119, 123, 138, 106, 116, 127, 106, 115, 127, 115, 109, 124, 109, 120, 139, 123, 128, 148, 120, 111, 124, 136, 127, 134, 106, 132, 122, 144, 135, 117, 141, 103, 110, 143, 103, 129, 106, 133, 138, 105, 103, 121, 115, 131, 113, 129, 145, 116, 151, 125, 139, 128, 131, 118, 115, 119, 127, 117, 125, 125, 115, 127, 128, 105, 125, 146, 133, 120, 129, 111, 116, 141, 113, 95, 127, 123, 132, 108, 134, 130, 110, 127, 119, 129, 109, 129, 134, 130, 127, 130, 122, 150, 125, 120, 130, 139, 119, 126, 113, 134, 125, 125, 138, 133, 131, 111, 118, 130, 111, 93, 114, 131, 141, 126, 132, 132, 128, 153, 106, 143, 120, 130, 117, 113, 125, 115, 128, 139, 131, 123, 120, 112, 133, 140, 114, 131, 117, 132, 122, 121, 123, 150, 137, 115, 120, 149, 131, 106, 145, 151, 127, 126, 147, 113, 138, 136, 161, 117, 113, 126, 136, 122, 132, 109, 110, 128, 116, 126, 136, 120, 121, 126, 143, 125, 129, 124, 129, 126, 128, 129, 105, 134, 124, 120, 110, 146, 141, 128, 131, 124, 127, 130, 124, 122, 116, 132, 120, 133, 125, 124, 122, 145, 119, 134, 116, 121, 131, 139, 115, 139, 124, 135, 125, 133, 114, 112, 115, 117, 127, 118, 108, 142, 116, 124, 115, 122, 130, 131, 137, 122, 133, 125, 128, 116, 132, 121, 109, 147, 123, 131, 125, 128, 121, 128, 131, 128, 131, 128, 147, 106, 123, 116, 107, 112, 130, 126, 123, 117, 119, 148, 140, 135, 139, 109, 108, 116, 117, 143, 135, 120, 127, 92, 137, 134, 130, 130, 122, 129, 138, 134, 131, 128, 114, 104, 133, 112, 128, 109, 123, 131, 134, 131, 125, 123, 124, 121, 126, 115, 110, 123, 117, 115, 126, 125, 130, 110, 114, 118, 111, 137, 127, 137, 138, 129, 119, 128, 118, 125, 114, 117, 135, 137, 112, 129, 133, 113, 118, 128, 151, 110, 109, 110, 116, 124, 121, 130, 124, 120, 113, 120, 116, 129, 131, 126, 122, 129, 122, 119, 136, 111, 120, 139, 147, 123, 133, 116, 97, 124, 116, 127, 124, 127, 115, 120, 127, 116, 108, 104, 130, 117, 124, 115, 127, 111, 111, 124, 120, 133, 129, 124, 134, 115, 114, 141, 124, 127, 116, 135, 120, 136, 114, 121, 112, 139, 115, 139, 137, 139, 114, 133, 126, 123, 121, 136, 124, 125, 130, 141, 112, 123, 126, 114, 122, 122, 125, 113, 129, 110, 100, 134, 109, 127, 130, 125, 125, 134, 134, 124, 125, 131, 132, 132, 132, 114, 132, 126, 109, 135, 161, 131, 126, 137, 102, 138, 129, 136, 118, 130, 114, 125, 130, 133, 132, 131, 132, 115, 150, 132, 123, 114, 141, 115, 128, 131, 120, 135, 129, 105, 125, 142, 140, 108, 129, 147, 139, 129, 127, 127, 133, 125, 126, 132, 105, 121, 137, 151, 143, 123, 133, 120, 155, 112, 114, 120, 119, 135, 114, 122, 129, 128, 121, 138, 118, 125, 110, 106, 127, 106, 120, 141, 118, 97, 127, 108, 123, 124, 139, 118, 131, 127, 135, 136, 128, 107, 136, 129, 157, 136, 133, 143, 124, 132, 115, 125, 113, 123, 138, 112, 111, 131, 112, 119, 129, 121, 145, 128, 120, 116, 126, 132, 119, 120, 123, 121, 121, 111, 137, 132, 132, 131, 125, 119, 132, 121, 112, 123, 130, 129, 134, 130, 133, 117, 136, 127, 125, 137, 147, 132, 143, 127, 132, 129, 126, 129, 131, 115, 124, 119, 118, 114, 135, 127, 130, 141, 107, 110, 108, 112, 138, 135, 103, 108, 113, 130, 121, 134, 113, 124, 120, 125, 111, 119, 127, 124, 114, 129, 146, 117, 132, 126, 118, 107, 139, 131, 111, 133, 123, 121, 129, 121, 112, 124, 126, 105, 113, 131, 136, 124, 132, 137, 129, 129, 143, 150, 124, 129, 130, 112, 141, 131, 125, 136, 118, 123, 133, 134, 128, 134, 116, 120, 113, 135, 145, 133, 142, 144, 121, 100, 126, 126, 126, 123, 128, 131, 149, 124, 146, 113, 144, 119, 100, 119, 123, 119, 133, 133, 118, 134, 124, 133, 126, 119, 131, 125, 129, 119, 109, 132, 140, 114, 139, 119, 104, 129, 125, 138, 122, 123, 129, 126, 135, 126, 115, 138, 123, 134, 114, 138, 134, 108, 124, 128, 137, 125, 121, 116, 138, 131, 122, 136, 132, 132, 138, 124, 129, 142, 143, 135, 105, 127, 113, 116, 114, 134, 127, 131, 123, 126, 105, 131, 137, 117, 145, 130, 120, 123, 138, 130, 128, 139, 120, 131, 128, 128, 140, 133, 134, 128, 123, 124, 119, 119, 121, 117, 131, 107, 128, 123, 134, 116, 139, 133, 119, 121, 116, 110, 132, 127, 122, 145, 99, 118, 135, 123, 125, 119, 117, 125, 125, 123, 119, 132, 122, 105, 130, 114, 135, 109, 130, 129, 134, 136, 130, 135, 134, 114, 137, 121, 125, 119, 131, 120, 126, 126, 111, 122, 142, 132, 119, 115, 130, 135, 142, 145, 124, 129, 137, 135, 122, 118, 113, 119, 113, 116, 123, 117, 125, 131, 125, 129, 150, 111, 122, 112, 124, 134, 109, 121, 105, 139, 120, 126, 127, 126, 120, 137, 128, 124, 134, 110, 126, 142, 132, 125, 114, 121, 134, 140, 133, 118, 126, 107, 121, 123, 97, 144, 108, 128, 116, 111, 127, 137, 115, 133, 129, 125, 122, 127, 122, 113, 106, 135, 127, 127, 117, 121, 139, 118, 126, 120, 126, 131, 117, 121, 121, 122, 115, 118, 97, 120, 127, 130, 136, 143, 116, 102, 121, 136, 125, 128, 131, 122, 126, 126, 138, 128, 132, 118, 130, 125, 137, 128, 129, 135, 111, 131, 120, 117, 115, 134, 110, 114, 128, 125, 116, 126, 124, 111, 120, 120, 114, 115, 131, 136, 124, 122, 128, 124, 134, 111, 136, 101, 115, 119, 131, 116, 152, 130, 132, 125, 124, 133, 110, 128, 124, 136, 131, 139, 118, 117, 100, 121, 127, 124, 120, 127, 131, 140, 114, 121, 139, 107, 138, 124, 123, 133, 122, 127, 130, 128, 144, 136, 111, 125, 134, 132, 123, 124, 116, 123, 134, 112, 125, 135, 119, 106, 138, 122, 96, 104, 120, 117, 135, 126, 123, 105, 116, 125, 137, 115, 117, 115, 133, 135, 120, 127, 109, 129, 104, 120, 124, 145, 122, 128, 109, 118, 124, 108, 104, 107, 130, 116, 143, 113, 113, 104, 124, 131, 134, 137, 131, 113, 126, 146, 133, 131, 115, 131, 118, 135, 117, 129, 124, 111, 139, 157, 128, 117, 126, 109, 139, 134, 134, 129, 124, 114, 117, 143, 130, 132, 129, 113, 123, 123, 124, 122, 127, 129, 138, 123, 127, 121, 122, 108, 139, 122, 130, 158, 119, 117, 141, 131, 118, 118, 135, 127, 119, 116, 146, 127, 137, 126, 127, 107, 126, 122, 128, 134, 135, 124, 146, 118, 137, 105, 114, 118, 135, 132, 136, 111, 109, 113, 127, 137, 142, 111, 115, 143, 131, 116, 112, 132, 115, 107, 120, 115, 125, 141, 129, 117, 117, 134, 113, 146, 129, 115, 123, 125, 126, 138, 115, 139, 136, 122, 136, 116, 134, 120, 120, 116, 120, 135, 122, 130, 120, 112, 126, 110, 117, 129, 123, 115, 136, 123, 109, 140, 100, 124, 135, 134, 114, 134, 123, 128, 114, 123, 137, 130, 115, 113, 112, 130, 135, 132, 134, 121, 122, 110, 105, 134, 146, 128, 110, 151, 139, 126, 116, 131, 115, 133, 121, 119, 127, 125, 125, 108, 136, 111, 124, 114, 140, 126, 131, 138, 115, 143, 124, 135, 132, 130, 138, 143, 113, 134, 128, 130, 142, 128, 134, 120, 122, 128, 139, 126, 119, 125, 127, 112, 132, 119, 136, 147, 138, 111, 110, 134, 124, 128, 114, 124, 139, 120, 129, 123, 120, 136, 131, 119, 124, 148, 125, 140, 132, 118, 125, 119, 108, 124, 149, 142, 114, 150, 124, 139, 128, 124, 113, 123, 119, 124, 127, 133, 131, 118, 121, 114, 126, 127, 113, 147, 120, 123, 119, 135, 114, 143, 113, 123, 128, 120, 129, 106, 130, 144, 130, 128, 143, 136, 119, 115, 142, 137, 121, 104, 146, 127, 129, 108, 122, 120, 126, 125, 124, 125, 139, 125, 117, 118, 130, 127, 92, 147, 119, 136, 136, 142, 129, 113, 141, 129, 118, 116, 120, 140, 124, 113, 134, 118, 120, 133, 134, 110, 113, 151, 122, 144, 114, 138, 118, 129, 101, 131, 109, 117, 129, 137, 129, 123, 132, 119, 134, 124, 141, 135, 108, 111, 109, 122, 143, 138, 122, 121, 147, 128, 126, 122, 132, 123, 150, 124, 135, 131, 119, 123, 123, 123, 123, 115, 114, 124, 141, 105, 121, 97, 130, 129, 135, 152, 112, 117, 117, 112, 99, 104, 123, 123, 133, 156, 140, 136, 129, 112, 128, 125, 142, 127, 132, 124, 120, 117, 130, 123, 114, 117, 122, 124, 124, 123, 139, 116, 113, 145, 138, 133, 130, 108, 141, 140, 125, 102, 128, 123, 103, 123, 128, 115, 120, 118, 125, 127, 134, 117, 116, 117, 131, 114, 121, 141, 146, 135, 125, 115, 145, 133, 142, 118, 112, 133, 136, 140, 107, 113, 136, 138, 135, 119, 112, 157, 110, 133, 123, 112, 143, 120, 123, 125, 115, 138, 137, 120, 133, 131, 126, 132, 106, 134, 120, 125, 118, 136, 116, 109, 134, 138, 142, 104, 116, 123, 145, 101, 126, 113, 113, 124, 140, 116, 123, 138, 141, 142, 138, 109, 109, 114, 136, 120, 133, 149, 126, 131, 129, 134, 125, 113, 133, 105, 127, 118, 140, 127, 113, 110, 112, 122, 132, 127, 98, 142, 121, 127, 124, 116, 120, 130, 116, 122, 134, 141, 136, 142, 133, 135, 107, 96, 123, 129, 139, 106, 121, 112, 126, 121, 118, 132, 118, 121, 134, 116, 121, 115, 101, 127, 113, 120, 113, 110, 141, 109, 118, 124, 109, 130, 125, 123, 122, 109, 127, 144, 115, 136, 91, 124, 133, 124, 130, 118, 121, 141, 108, 125, 117, 133, 130, 128, 118, 129, 105, 127, 110, 144, 130, 148, 105, 123, 128, 126, 128, 136, 126, 136, 127, 123, 127, 111, 114, 159, 108, 132, 128, 129, 130, 133, 113, 154, 125, 138, 139, 124, 123, 122, 115, 129, 118, 124, 113, 122, 111, 126, 109, 126, 147, 126, 111, 130, 119, 119, 115, 116, 125, 141, 122, 144, 111, 119, 138, 127, 122, 122, 128, 127, 119, 126, 140, 111, 129, 111, 130, 112, 118, 148, 138, 109, 124, 122, 122, 134, 135, 113, 141, 135, 133, 128, 130, 127, 131, 130, 142, 141, 117, 129, 139, 143, 121, 118, 127, 100, 135, 122, 136, 128, 112, 96, 97, 112, 119, 121, 128, 126, 98, 117, 128, 126, 122, 129, 113, 116, 123, 132, 137, 141, 143, 121, 139, 140, 133, 104, 116, 127, 113, 107, 123, 108, 129, 97, 104, 123, 126, 119, 135, 119, 136, 143, 137, 124, 114, 112, 143, 136, 117, 108, 125, 119, 101, 112, 123, 108, 113, 129, 116, 130, 130, 136, 124, 107, 129, 146, 136, 128, 114, 128, 130, 128, 126, 122, 134, 130, 120, 148, 125, 116, 126, 149, 145, 139, 123, 128, 137, 118, 151, 129, 138, 128, 114, 120, 127, 115, 114, 127, 130, 120, 126, 129, 141, 115, 129, 106, 100, 116, 128, 140, 134, 110, 124, 117, 144, 114, 141, 118, 114, 116, 152, 100, 123, 137, 142, 138, 126, 140, 128, 130, 145, 129, 116, 144, 161, 128, 114, 107, 121, 132, 116, 119, 134, 115, 152, 127, 139, 129, 124, 129, 130, 127, 111, 131, 126, 128, 91, 123, 119, 126, 135, 119, 129, 132, 145, 128, 125, 152, 144, 104, 147, 126, 113, 136, 128, 139, 128, 116, 111, 144, 127, 115, 114, 120, 126, 129, 121, 124, 133, 137, 122, 132, 118, 146, 149, 120, 133, 150, 111, 144, 130, 121, 115, 133, 123, 120, 99, 127, 133, 115, 128, 115, 138, 138, 129, 124, 97, 114, 124, 115, 124, 120, 130, 121, 130, 141, 129, 104, 128, 116, 115, 141, 122, 137, 122, 147, 135, 125, 129, 121, 121, 106, 126, 117, 110, 122, 125, 109, 129, 124, 117, 111, 131, 126, 124, 122, 137, 124, 129, 117, 118, 135, 147, 123, 116, 129, 102, 130, 138, 129, 132, 117, 113, 124, 120, 130, 132, 124, 96, 124, 130, 103, 128, 125, 120, 119, 133, 114, 119, 114, 127, 123, 133, 132, 148, 105, 126, 111, 113, 135, 149, 123, 124, 112, 119, 132, 122, 137, 108, 134, 121, 129, 141, 144, 131, 138, 133, 117, 141, 123, 105, 142, 130, 135, 128, 119, 142, 134, 135, 130, 135, 132, 136, 108, 119, 126, 115, 137, 128, 112, 134, 123, 132, 115, 122, 133, 109, 139, 123, 134, 129, 117, 114, 147, 125, 108, 111, 123, 146, 128, 135, 128, 140, 120, 122, 126, 145, 133, 114, 144, 127, 135, 115, 118, 132, 120, 135, 129, 101, 130, 137, 123, 132, 118, 119, 110, 110, 96, 111, 126, 120, 124, 123, 150, 138, 135, 126, 139, 124, 120, 126, 128, 112, 129, 124, 124, 137, 129, 133, 138, 124, 130, 116, 145, 124, 118, 119, 109, 126, 117, 133, 120, 127, 113, 116, 123, 132, 112, 138, 130, 103, 140, 113, 125, 114, 117, 111, 123, 138, 128, 139, 126, 122, 130, 124, 132, 124, 129, 123, 124, 122, 109, 131, 134, 119, 136, 120, 115, 127, 114, 144, 134, 111, 115, 121, 133, 130, 111, 127, 111, 137, 117, 130, 115, 122, 121, 128, 123, 98, 123, 124, 115, 130, 127, 123, 135, 132, 134, 120, 118, 130, 102, 117, 135, 123, 110, 138, 111, 129, 127, 118, 141, 134, 128, 127, 120, 132, 133, 155, 127, 128, 127, 123, 102, 97, 153, 118, 125, 127, 129, 126, 134, 129, 124, 138, 140, 121, 128, 133, 140, 138, 132, 126, 126, 111, 122, 111, 124, 122, 116, 135, 146, 133, 118, 124, 114, 120, 123, 131, 115, 114, 119, 122, 129, 124, 121, 115, 137, 130, 125, 145, 131, 147, 145, 121, 139, 132, 130, 132, 123, 124, 117, 119, 117, 129, 108, 132, 131, 124, 127, 125, 148, 140, 136, 124, 119, 133, 123, 126, 132, 134, 122, 124, 129, 138, 110, 108, 127, 133, 128, 123, 120, 152, 122, 124, 131, 132, 105, 130, 121, 112, 123, 121, 141, 128, 141, 146, 133, 136, 120, 119, 130, 129, 119, 112, 118, 131, 121, 117, 98, 134, 117, 133, 122, 123, 153, 117, 104, 137, 134, 107, 123, 134, 132, 95, 120, 127, 129, 118, 130, 128, 137, 124, 139, 118, 123, 127, 139, 138, 116, 133, 127, 127, 125, 128, 115, 114, 123, 133, 145, 107, 131, 117, 149, 113, 124, 116, 134, 134, 129, 130, 128, 128, 124, 125, 116, 134, 115, 115, 117, 124, 125, 132, 108, 116, 123, 110, 140, 126, 139, 130, 144, 112, 115, 113, 107, 126, 128, 138, 138, 130, 112, 133, 130, 125, 117, 148, 140, 148, 122, 116, 139, 119, 132, 146, 129, 117, 119, 132, 123, 121, 132, 109, 108, 135, 131, 116, 125, 98, 112, 125, 128, 130, 129, 120, 138, 137, 124, 106, 133, 115, 114, 116, 136, 126, 135, 115, 136, 124, 140, 115, 129, 109, 140, 131, 102, 120, 145, 138, 128, 126, 135, 128, 104, 118, 133, 127, 146, 129, 117, 134, 128, 128, 129, 130, 127, 106, 128, 136, 130, 151, 121, 123, 112, 134, 141, 129, 126, 113, 152, 130, 128, 102, 124, 116, 124, 125, 126, 121, 133, 127, 117, 121, 131, 125, 119, 128, 112, 119, 112, 126, 127, 129, 122, 133, 113, 140, 122, 132, 106, 128, 139, 131, 133, 136, 113, 127, 131, 146, 126, 120, 140, 136, 126, 125, 126, 136, 141, 136, 122, 124, 106, 103, 133, 113, 126, 130, 125, 132, 130, 124, 142, 119, 135, 123, 124, 126, 140, 128, 129, 117, 127, 133, 138, 114, 120, 124, 111, 128, 143, 119, 118, 127, 105, 119, 133, 126, 123, 100, 116, 118, 133, 132, 122, 130, 115, 139, 126, 124, 148, 120, 120, 136, 130, 119, 139, 124, 132, 114, 130, 137, 125, 113, 127, 126, 121, 130, 132, 124, 128, 120, 136, 133, 131, 123, 104, 128, 121, 108, 116, 146, 135, 129, 121, 132, 127, 124, 123, 136, 128, 138, 131, 140, 126, 137, 145, 104, 137, 159, 130, 124, 121, 119, 125, 127, 108, 120, 128, 115, 114, 130, 118, 114, 128, 155, 117, 114, 119, 125, 145, 131, 141, 132, 126, 115, 148, 148, 132, 121, 119, 97, 101, 128, 105, 113, 119, 133, 115, 121, 133, 129, 136, 124, 112, 124, 127, 122, 131, 120, 123, 128, 116, 138, 126, 127, 136, 118, 123, 131, 118, 119, 145, 121, 132, 103, 119, 154, 106, 135, 130, 116, 133, 126, 131, 128, 144, 132, 145, 123, 148, 133, 131, 125, 148, 143, 128, 122, 129, 139, 120, 96, 123, 125, 120, 128, 120, 133, 142, 127, 116, 126, 126, 133, 120, 120, 122, 116, 140, 120, 135, 133, 105, 133, 116, 114, 130, 130, 119, 117, 124, 105, 123, 133, 121, 133, 123, 118, 133, 127, 110, 126, 114, 124, 133, 117, 125, 127, 118, 132, 125, 135, 119, 151, 139, 136, 134, 130, 124, 128, 121, 123, 127, 127, 122, 131, 117, 144, 110, 132, 131, 134, 151, 134, 118, 134, 139, 110, 110, 126, 143, 140, 146, 124, 122, 118, 115, 114, 146, 120, 142, 100, 113, 136, 110, 120, 122, 99, 113, 135, 126, 122, 132, 136, 142, 130, 109, 132, 135, 118, 125, 123, 121, 117, 112, 123, 127, 119, 114, 122, 140, 135, 124, 83, 130, 138, 108, 111, 120, 144, 131, 127, 124, 136, 102, 127, 133, 124, 115, 116, 100, 117, 125, 138, 117, 121, 116, 108, 135, 120, 105, 144, 133, 154, 139, 134, 120, 143, 134, 114, 133, 121, 140, 117, 128, 131, 132, 104, 139, 101, 124, 116, 130, 104, 137, 144, 128, 144, 119, 150, 136, 153, 127, 144, 127, 122, 134, 133, 115, 127, 124, 119, 123, 136, 144, 110, 143, 129, 134, 128, 128, 150, 134, 120, 133, 119, 112, 125, 140, 120, 106, 127, 113, 152, 136, 129, 139, 119, 136, 127, 129, 120, 130, 136, 135, 116, 142, 132, 117, 114, 127, 131, 146, 126, 132, 126, 138, 124, 137, 125, 125, 131, 130, 141, 123, 126, 127, 116, 115, 156, 128, 129, 124, 119, 137, 128, 134, 145, 135, 127, 124, 127, 127, 121, 149, 119, 131, 111, 138, 117, 113, 136, 129, 122, 117, 135, 102, 116, 121, 110, 150, 129, 131, 117, 122, 127, 119, 121, 112, 108, 141, 124, 121, 116, 132, 139, 106, 106, 121, 136, 102, 113, 110, 144, 132, 115, 128, 127, 121, 126, 137, 139, 130, 124, 122, 126, 119, 106, 127, 141, 123, 124, 140, 136, 108, 118, 129, 127, 126, 127, 141, 103, 116, 117, 138, 138, 123, 116, 118, 112, 135, 124, 140, 125, 115, 110, 133, 120, 138, 112, 126, 124, 124, 122, 115, 121, 141, 130, 126, 117, 129, 119, 120, 88, 120, 121, 114, 138, 117, 139, 114, 117, 123, 130, 122, 120, 127, 124, 127, 115, 119, 117, 113, 145, 117, 129, 113, 121, 110, 118, 128, 122, 124, 130, 129, 130, 118, 118, 133, 136, 137, 120, 129, 115, 144, 131, 101, 124, 105, 108, 146, 124, 129, 109, 99, 114, 122, 122, 122, 123, 144, 121, 131, 121, 138, 117, 158, 117, 125, 112, 126, 141, 133, 108, 113, 121, 106, 133, 124, 123, 121, 110, 109, 121, 134, 135, 100, 139, 107, 119, 134, 121, 121, 124, 123, 128, 102, 123, 123, 113, 112, 131, 112, 132, 115, 133, 139, 120, 128, 125, 129, 128, 124, 121, 115, 126, 121, 114, 145, 127, 108, 127, 117, 131, 124, 129, 122, 132, 125, 122, 115, 138, 124, 99, 123, 98, 123, 108, 122, 120, 125, 124, 120, 121, 125, 114, 133, 130, 136, 146, 122, 127, 122, 111, 123, 126, 121, 129, 133, 121, 128, 132, 124, 141, 107, 129, 123, 121, 141, 104, 121, 129, 133, 130, 110, 119, 118, 115, 109, 131, 148, 119, 130, 127, 125, 113, 117, 117, 124, 112, 136, 122, 116, 129, 130, 123, 127, 121, 126, 141, 134, 120, 134, 125, 129, 120, 120, 116, 124, 128, 119, 132, 133, 120, 131, 128, 130, 104, 125, 140, 96, 119, 116, 127, 129, 139, 114, 133, 122, 121, 125, 127, 125, 127, 132, 127, 123, 111, 133, 128, 118, 112, 107, 129, 125, 134, 120, 139, 105, 113, 138, 140, 127, 113, 131, 127, 127, 132, 120, 125, 123, 141, 131, 121, 129, 135, 115, 150, 93, 119, 136, 132, 122, 124, 137, 118, 141, 133, 129, 142, 128, 122, 121, 132, 143, 124, 122, 136, 112, 126, 135, 116, 123, 135, 128, 125, 103, 105, 121, 136, 110, 112, 132, 131, 119, 97, 136, 135, 110, 109, 121, 112, 120, 120, 112, 119, 148, 119, 131, 134, 117, 115, 128, 100, 150, 134, 132, 124, 115, 127, 130, 120, 138, 131, 120, 126, 117, 137, 129, 129, 138, 139, 136, 126, 123, 127, 120, 143, 145, 130, 141, 114, 137, 130, 127, 128, 130, 113, 119, 110, 138, 133, 125, 133, 140, 103, 128, 139, 113, 115, 125, 133, 121, 115, 132, 105, 118, 117, 120, 121, 146, 127, 121, 133, 143, 126, 152, 111, 106, 134, 146, 121, 138, 120, 134, 133, 141, 123, 112, 119, 141, 132, 133, 119, 113, 110, 120, 130, 126, 114, 121, 119, 132, 131, 129, 121, 149, 134, 126, 131, 103, 130, 142, 114, 129, 113, 117, 138, 131, 133, 122, 133, 134, 126, 127, 114, 104, 140, 113, 118, 142, 106, 124, 109, 121, 144, 124, 122, 121, 136, 128, 117, 117, 114, 133, 133, 116, 104, 134, 136, 135, 131, 129, 122, 124, 116, 121, 135, 114, 136, 128, 143, 134, 125, 113, 116, 139, 124, 121, 118, 119, 118, 144, 120, 123, 129, 139, 115, 115, 109, 164, 136, 116, 133, 92, 123, 132, 136, 127, 137, 128, 120, 113, 125, 114, 109, 120, 117, 120, 114, 135, 140, 135, 132, 122, 128, 120, 125, 116, 128, 136, 128, 105, 110, 115, 123, 104, 107, 137, 130, 121, 132, 123, 145, 137, 136, 147, 127, 119, 121, 132, 144, 115, 121, 115, 120, 120, 112, 116, 118, 104, 127, 115, 127, 120, 131, 142, 120, 114, 119, 125, 130, 122, 107, 123, 147, 132, 125, 125, 111, 138, 133, 115, 118, 118, 124, 128, 122, 109, 134, 118, 110, 123, 114, 126, 125, 133, 125, 124, 119, 123, 129, 113, 113, 116, 111, 116, 132, 141, 145, 109, 121, 131, 103, 135, 118, 127, 147, 128, 165, 126, 129, 128, 124, 132, 130, 129, 117, 121, 118, 114, 95, 118, 100, 119, 137, 113, 126, 130, 135, 134, 147, 120, 140, 146, 141, 142, 131, 147, 122, 112, 127, 112, 133, 138, 123, 128, 125, 140, 127, 116, 132, 113, 126, 122, 133, 131, 136, 138, 132, 131, 120, 94, 128, 138, 134, 125, 126, 130, 108, 110, 130, 131, 125, 119, 128, 131, 135, 125, 144, 133, 125, 132, 110, 112, 121, 135, 129, 143, 120, 123, 110, 122, 112, 113, 140, 107, 108, 150, 117, 120, 124, 131, 141, 132, 111, 121, 139, 129, 126, 120, 131, 118, 120, 118, 146, 114, 126, 117, 139, 104, 119, 128, 134, 126, 104, 130, 106, 115, 116, 134, 136, 131, 151, 120, 125, 116, 124, 115, 140, 138, 130, 121, 136, 123, 127, 132, 111, 124, 118, 125, 142, 108, 119, 129, 142, 129, 132, 105, 111, 107, 136, 126, 125, 134, 134, 120, 117, 116, 120, 120, 115, 117, 129, 126, 116, 120, 132, 108, 127, 123, 119, 135, 111, 119, 110, 113, 104, 121, 140, 128, 126, 137, 122, 131, 126, 133, 121, 119, 120, 120, 154, 147, 145, 115, 130, 135, 112, 141, 121, 132, 108, 129, 123, 117, 123, 128, 136, 119, 113, 132, 147, 121, 121, 137, 126, 127, 119, 117, 126, 113, 110, 131, 119, 122, 137, 123, 116, 134, 122, 124, 118, 140, 123, 126, 117, 127, 129, 127, 122, 140, 123, 112, 117, 114, 124, 113, 124, 116, 125, 127, 134, 131, 144, 118, 126, 119, 115, 122, 124, 127, 127, 134, 115, 118, 139, 126, 133, 131, 142, 138, 129, 123, 121, 113, 147, 122, 131, 123, 118, 118, 132, 119, 127, 130, 135, 122, 161, 105, 109, 136, 133, 131, 134, 103, 112, 130, 130, 123, 141, 134, 116, 121, 146, 116, 148, 142, 108, 127, 132, 121, 121, 125, 119, 120, 132, 117, 123, 124, 114, 117, 119, 128, 124, 117, 117, 116, 127, 122, 115, 120, 131, 127, 134, 121, 120, 125, 131, 118, 124, 126, 132, 131, 121, 126, 122, 134, 115, 136, 128, 122, 154, 128, 116, 130, 122, 114, 141, 118, 132, 128, 134, 144, 98, 115, 153, 119, 118, 126, 109, 111, 112, 117, 133, 113, 131, 133, 120, 157, 119, 123, 102, 115, 125, 150, 136, 119, 134, 100, 132, 148, 127, 141, 115, 125, 121, 119, 128, 141, 112, 125, 116, 129, 124, 128, 122, 131, 154, 111, 122, 96, 121, 111, 125, 131, 152, 128, 131, 133, 118, 127, 123, 135, 134, 104, 131, 126, 109, 115, 128, 121, 126, 139, 116, 127, 129, 125, 113, 108, 137, 130, 138, 139, 117, 124, 128, 117, 118, 146, 139, 119, 122, 136, 128, 141, 124, 117, 129, 131, 119, 124, 122, 113, 116, 126, 123, 132, 100, 131, 127, 132, 112, 119, 122, 105, 115, 124, 124, 124, 131, 114, 139, 126, 120, 134, 134, 114, 131, 118, 121, 118, 115, 142, 129, 130, 119, 127, 133, 135, 129, 117, 132, 123, 128, 139, 122, 134, 148, 127, 125, 95, 117, 131, 129, 114, 121, 117, 112, 137, 121, 120, 138, 120, 125, 136, 146, 125, 129, 125, 128, 117, 101, 109, 126, 139, 122, 121, 131, 131, 116, 120, 130, 117, 135, 128, 141, 139, 107, 134, 122, 129, 106, 125, 122, 121, 137, 126, 125, 136, 124, 118, 126, 121, 116, 139, 119, 113, 116, 127, 120, 129, 113, 127, 119, 134, 131, 132, 129, 103, 141, 106, 130, 123, 128, 127, 140, 136, 125, 126, 118, 122, 123, 129, 128, 132, 118, 135, 139, 115, 122, 121, 134, 113, 130, 121, 139, 115, 101, 124, 126, 134, 124, 105, 125, 141, 104, 132, 128, 130, 132, 123, 111, 126, 131, 116, 114, 122, 118, 124, 133, 131, 122, 140, 117, 140, 125, 125, 125, 126, 129, 136, 139, 113, 129, 121, 143, 127, 134, 143, 123, 118, 112, 136, 131, 117, 121, 125, 127, 130, 113, 131, 136, 152, 121, 107, 116, 132, 121, 115, 135, 121, 145, 128, 125, 130, 115, 116, 129, 151, 126, 134, 117, 118, 131, 143, 121, 126, 116, 104, 143, 118, 127, 120, 136, 119, 118, 117, 127, 125, 115, 133, 123, 120, 129, 116, 121, 123, 117, 113, 115, 138, 135, 127, 131, 126, 124, 94, 123, 107, 132, 142, 114, 105, 117, 135, 128, 122, 125, 128, 124, 138, 125, 135, 116, 120, 131, 134, 129, 122, 128, 121, 93, 147, 123, 118, 130, 136, 123, 114, 116, 115, 136, 143, 123, 113, 125, 120, 121, 118, 134, 133, 113, 126, 111, 134, 112, 115, 123, 140, 102, 127, 127, 94, 122, 136, 131, 115, 109, 137, 111, 103, 126, 139, 117, 122, 127, 137, 114, 100, 127, 123, 126, 115, 117, 126, 138, 124, 130, 129, 134, 134, 121, 122, 129, 122, 127, 135, 123, 111, 122, 114, 137, 123, 120, 126, 103, 140, 123, 132, 125, 122, 116, 144, 123, 118, 135, 130, 114, 122, 129, 114, 133, 135, 118, 120, 135, 128, 135, 137, 154, 126, 104, 133, 129, 123, 127, 115, 128, 118, 122, 130, 133, 114, 139, 125, 117, 146, 122, 120, 128, 118, 113, 138, 160, 126, 119, 124, 126, 122, 120, 126, 149, 122, 132, 119, 122, 120, 134, 121, 124, 130, 139, 130, 123, 125, 128, 126, 134, 115, 126, 119, 124, 105, 121, 133, 125, 120, 114, 124, 132, 105, 120, 136, 136, 134, 113, 137, 118, 121, 141, 140, 106, 133, 129, 129, 124, 113, 133, 106, 151, 118, 127, 128, 129, 129, 127, 125, 108, 113, 116, 124, 137, 132, 136, 123, 126, 136, 137, 122, 122, 138, 122, 132, 133, 132, 123, 116, 132, 130, 122, 141, 124, 122, 122, 109, 136, 121, 111, 140, 115, 130, 121, 111, 119, 98, 120, 127, 125, 122, 117, 151, 115, 120, 139, 131, 120, 134, 121, 153, 133, 124, 124, 135, 134, 140, 120, 131, 118, 123, 126, 144, 120, 118, 135, 142, 119, 127, 127, 119, 129, 115, 120, 131, 137, 116, 112, 109, 120, 128, 138, 135, 121, 128, 118, 130, 122, 128, 123, 121, 105, 119, 119, 113, 126, 126, 119, 113, 121, 134, 120, 129, 123, 127, 123, 138, 120, 142, 117, 124, 113, 146, 119, 132, 142, 131, 113, 120, 121, 126, 116, 127, 143, 123, 118, 119, 126, 111, 122, 130, 132, 138, 139, 128, 145, 129, 107, 135, 120, 134, 134, 127, 122, 134, 123, 144, 110, 103, 127, 108, 123, 133, 134, 130, 130, 144, 115, 129, 107, 128, 115, 120, 129, 127, 129, 142, 143, 128, 111, 115, 122, 124, 124, 117, 122, 116, 124, 149, 136, 121, 128, 124, 118, 108, 125, 141, 122, 126, 117, 141, 131, 111, 114, 131, 136, 149, 109, 119, 127, 119, 123, 106, 116, 146, 127, 112, 136, 117, 121, 123, 124, 116, 128, 130, 129, 119, 138, 114, 124, 135, 127, 114, 124, 125, 142, 110, 110, 121, 134, 143, 117, 111, 136, 139, 135, 131, 124, 125, 131, 132, 125, 144, 102, 116, 128, 134, 103, 132, 125, 125, 113, 110, 132, 128, 134, 113, 109, 135, 145, 118, 117, 121, 140, 118, 129, 114, 121, 133, 110, 113, 121, 97, 122, 117, 108, 129, 130, 123, 149, 132, 120, 136, 136, 131, 118, 107, 133, 120, 133, 120, 149, 132, 137, 139, 134, 138, 131, 140, 124, 122, 132, 127, 153, 120, 135, 131, 110, 120, 125, 139, 133, 119, 113, 118, 121, 120, 128, 121, 118, 132, 132, 125, 133, 126, 112, 129, 140, 139, 121, 130, 131, 122, 120, 123, 109, 133, 127, 124, 137, 116, 130, 119, 126, 114, 130, 117, 127, 120, 115, 147, 129, 138, 138, 142, 118, 125, 130, 131, 129, 139, 119, 146, 125, 128, 124, 151, 135, 126, 128, 112, 131, 130, 136, 128, 142, 122, 116, 141, 131, 128, 131, 134, 117, 130, 131, 128, 135, 109, 129, 149, 135, 130, 130, 142, 120, 147, 132, 120, 124, 128, 120, 122, 118, 126, 124, 134, 131, 144, 134, 137, 123, 121, 120, 115, 124, 124, 121, 122, 129, 134, 128, 135, 134, 121, 145, 99, 133, 105, 120, 129, 125, 109, 106, 147, 123, 135, 126, 131, 132, 122, 149, 131, 122, 147, 123, 135, 133, 113, 133, 137, 138, 130, 134, 122, 124, 133, 125, 142, 138, 127, 127, 145, 121, 126, 112, 120, 115, 121, 124, 138, 132, 132, 126, 128, 133, 122, 154, 120, 126, 129, 129, 143, 146, 127, 139, 127, 131, 120, 113, 94, 124, 132, 128, 119, 122, 119, 130, 146, 121, 131, 138, 119, 115, 130, 121, 127, 127, 123, 125, 122, 143, 127, 125, 135, 124, 109, 112, 141, 128, 125, 128, 111, 103, 118, 128, 127, 119, 141, 127, 132, 126, 110, 123, 124, 113, 102, 144, 128, 128, 134, 119, 117, 128, 139, 113, 123, 122, 110, 120, 119, 122, 148, 131, 96, 126, 122, 131, 123, 126, 129, 130, 125, 114, 118, 140, 122, 119, 124, 127, 131, 119, 127, 126, 108, 125, 136, 117, 138, 122, 110, 122, 122, 117, 100, 124, 132, 130, 136, 113, 129, 142, 123, 116, 127, 122, 148, 131, 119, 115, 125, 149, 111, 128, 127, 140, 138, 128, 126, 134, 119, 117, 113, 126, 143, 111, 126, 108, 129, 134, 129, 109, 130, 122, 118, 128, 140, 126, 124, 128, 109, 118, 108, 130, 131, 122, 126, 126, 118, 130, 121, 140, 122, 151, 115, 144, 117, 118, 114, 127, 125, 102, 130, 118, 130, 128, 120, 130, 132, 118, 131, 127, 130, 118, 129, 132, 135, 130, 122, 133, 110, 131, 127, 111, 125, 124, 144, 126, 133, 146, 107, 134, 127, 140, 126, 119, 115, 125, 111, 97, 137, 116, 128, 139, 117, 126, 117, 136, 128, 136, 154, 123, 139, 134, 133, 122, 123, 128, 115, 146, 109, 118, 133, 127, 111, 129, 111, 117, 122, 141, 106, 125, 124, 116, 132, 128, 128, 141, 125, 139, 110, 141, 139, 125, 97, 145, 121, 137, 112, 129, 126, 123, 107, 121, 143, 109, 124, 115, 133, 132, 129, 131, 135, 125, 127, 101, 130, 129, 114, 113, 125, 110, 133, 123, 126, 124, 129, 129, 137, 137, 127, 135, 137, 134, 133, 108, 123, 136, 125, 144, 129, 129, 126, 145, 124, 140, 129, 119, 119, 135, 120, 126, 120, 118, 123, 128, 137, 126, 130, 112, 118, 147, 116, 125, 125, 116, 119, 111, 105, 129, 156, 130, 103, 125, 143, 120, 130, 133, 130, 130, 132, 116, 123, 115, 106, 116, 127, 121, 129, 115, 137, 110, 140, 124, 123, 117, 140, 129, 133, 127, 125, 137, 121, 131, 114, 120, 121, 122, 134, 145, 135, 113, 119, 144, 125, 129, 133, 131, 135, 139, 143, 132, 103, 118, 119, 126, 122, 99, 133, 133, 120, 123, 135, 147, 132, 106, 111, 125, 135, 131, 128, 122, 118, 120, 110, 118, 135, 132, 116, 117, 134, 117, 128, 118, 116, 118, 139, 114, 123, 128, 102, 136, 125, 137, 117, 127, 131, 120, 128, 105, 142, 111, 158, 114, 133, 133, 118, 123, 125, 121, 110, 114, 116, 142, 133, 135, 134, 129, 112, 127, 127, 150, 133, 117, 130, 149, 129, 125, 123, 128, 130, 128, 132, 143, 145, 123, 122, 116, 126, 126, 117, 109, 121, 123, 126, 138, 111, 100, 121, 128, 119, 115, 126, 111, 125, 136, 119, 123, 136, 139, 122, 120, 123, 110, 121, 141, 127, 153, 150, 129, 122, 131, 120, 125, 130, 146, 136, 134, 126, 140, 123, 135, 120, 133, 129, 128, 159, 129, 122, 129, 142, 115, 104, 125, 137, 147, 137, 157, 154, 137, 121, 136, 131, 118, 135, 141, 130, 114, 129, 102, 133, 103, 133, 101, 148, 113, 113, 118, 151, 119, 123, 117, 118, 134, 117, 115, 137, 134, 134, 123, 134, 127, 135, 156, 138, 122, 113, 110, 118, 132, 121, 111, 129, 143, 117, 111, 129, 140, 117, 96, 133, 120, 124, 128, 120, 130, 132, 111, 128, 123, 122, 120, 114, 135, 136, 112, 120, 118, 137, 111, 126, 108, 102, 121, 128, 126, 120, 132, 113, 128, 116, 127, 109, 122, 110, 125, 113, 124, 129, 110, 121, 118, 133, 140, 144, 133, 123, 125, 113, 135, 124, 126, 110, 122, 139, 125, 122, 144, 135, 130, 126, 122, 116, 122, 132, 125, 132, 119, 115, 110, 124, 116, 132, 124, 101, 112, 104, 120, 111, 123, 137, 125, 130, 118, 133, 119, 112, 113, 137, 124, 131, 133, 112, 127, 125, 133, 125, 118, 137, 133, 116, 135, 94, 121, 150, 124, 138, 139, 118, 118, 125, 117, 135, 128, 150, 117, 124, 131, 146, 130, 127, 139, 121, 112, 122, 130, 122, 121, 128, 131, 108, 115, 107, 117, 127, 136, 145, 122, 115, 146, 114, 123, 119, 112, 123, 136, 112, 126, 146, 123, 139, 115, 120, 135, 121, 143, 131, 115, 135, 109, 125, 135, 128, 106, 124, 148, 92, 122, 130, 122, 117, 117, 145, 121, 117, 108, 114, 129, 138, 140, 112, 121, 128, 136, 114, 124, 114, 121, 93, 132, 128, 123, 118, 128, 119, 115, 119, 129, 121, 127, 120, 141, 141, 118, 131, 113, 129, 122, 123, 138, 107, 114, 112, 132, 122, 112, 134, 138, 101, 125, 121, 140, 120, 127, 134, 125, 125, 111, 139, 120, 125, 125, 136, 133, 104, 135, 119, 146, 120, 130, 126, 141, 118, 137, 142, 123, 111, 129, 131, 156, 125, 118, 118, 113, 134, 86, 123, 143, 112, 116, 128, 116, 122, 122, 129, 121, 141, 104, 110, 113, 105, 110, 113, 112, 141, 126, 123, 131, 120, 152, 117, 101, 125, 131, 122, 112, 120, 130, 116, 130, 124, 129, 139, 134, 118, 114, 130, 117, 125, 136, 124, 128, 115, 122, 120, 119, 125, 118, 130, 105, 132, 127, 107, 122, 109, 120, 125, 133, 126, 124, 122, 125, 119, 119, 133, 113, 132, 116, 130, 109, 129, 120, 127, 110, 114, 140, 124, 125, 142, 132, 120, 105, 100, 122, 135, 118, 126, 115, 136, 125, 142, 124, 122, 120, 115, 145, 121, 121, 140, 130, 140, 131, 117, 145, 135, 124, 140, 115, 143, 131, 136, 131, 116, 122, 106, 116, 109, 117, 131, 123, 111, 126, 112, 132, 116, 122, 129, 134, 125, 137, 125, 145, 123, 140, 116, 127, 114, 121, 132, 157, 129, 109, 130, 127, 142, 104, 114, 134, 141, 108, 137, 124, 138, 130, 134, 139, 159, 122, 136, 118, 127, 128, 139, 127, 111, 149, 127, 137, 110, 121, 124, 135, 127, 115, 105, 111, 124, 127, 148, 121, 134, 121, 128, 122, 127, 122, 114, 130, 148, 110, 106, 126, 129, 126, 126, 107, 120, 128, 130, 121, 127, 118, 144, 122, 128, 136, 125, 131, 134, 127, 130, 116, 130, 111, 128, 119, 132, 133, 140, 130, 119, 129, 132, 112, 123, 118, 111, 122, 128, 115, 128, 132, 123, 122, 130, 135, 131, 115, 142, 122, 124, 117, 137, 127, 124, 115, 143, 145, 130, 125, 101, 144, 141, 122, 112, 111, 124, 137, 122, 115, 121, 152, 130, 130, 135, 117, 141, 127, 126, 121, 115, 115, 123, 155, 126, 136, 127, 116, 116, 123, 116, 131, 122, 133, 96, 140, 113, 104, 102, 121, 122, 117, 133, 116, 121, 152, 125, 120, 136, 117, 124, 113, 138, 128, 102, 112, 117, 112, 128, 129, 148, 122, 124, 115, 138, 125, 146, 131, 138, 128, 133, 148, 130, 107, 129, 118, 127, 142, 137, 123, 143, 130, 120, 130, 134, 126, 130, 150, 111, 111, 123, 130, 120, 117, 133, 117, 132, 107, 135, 132, 111, 107, 128, 114, 132, 139, 126, 129, 136, 120, 121, 127, 120, 109, 129, 127, 133, 132, 132, 125, 113, 123, 135, 117, 119, 114, 127, 151, 108, 120, 109, 130, 127, 120, 140, 127, 126, 122, 115, 131, 115, 110, 123, 103, 115, 130, 119, 134, 114, 124, 131, 133, 125, 124, 130, 121, 123, 125, 118, 128, 124, 132, 124, 125, 115, 135, 137, 126, 118, 107, 142, 126, 121, 122, 123, 131, 132, 126, 139, 114, 115, 118, 123, 131, 113, 133, 106, 118, 117, 132, 120, 102, 125, 138, 137, 136, 135, 136, 126, 112, 128, 116, 109, 135, 134, 120, 105, 124, 122, 116, 127, 135, 123, 118, 129, 124, 81, 111, 102, 121, 119, 128, 128, 111, 136, 131, 123, 116, 129, 119, 118, 139, 120, 113, 127, 135, 124, 111, 143, 128, 119, 138, 138, 128, 120, 122, 122, 123, 126, 114, 130, 130, 122, 116, 121, 143, 152, 143, 111, 131, 129, 121, 139, 140, 139, 113, 136, 141, 106, 126, 118, 137, 131, 133, 122, 153, 120, 108, 109, 118, 135, 130, 135, 128, 126, 117, 126, 126, 124, 124, 126, 132, 123, 104, 129, 110, 126, 135, 127, 102, 121, 119, 117, 113, 132, 121, 122, 140, 136, 132, 121, 122, 114, 104, 140, 124, 137, 130, 118, 108, 132, 146, 113, 129, 144, 123, 125, 116, 119, 124, 129, 157, 121, 138, 127, 119, 146, 135, 139, 132, 121, 136, 102, 120, 124, 118, 118, 105, 121, 145, 133, 118, 138, 137, 115, 109, 113, 154, 132, 121, 135, 135, 133, 137, 128, 124, 124, 117, 110, 126, 135, 128, 122, 103, 107, 126, 116, 145, 133, 142, 116, 124, 139, 113, 124, 136, 136, 135, 117, 121, 125, 129, 136, 124, 134, 125, 120, 116, 114, 132, 128, 131, 112, 119, 123, 119, 140, 118, 113, 130, 136, 121, 119, 118, 134, 126, 122, 123, 120, 118, 122, 132, 115, 131, 119, 123, 120, 115, 131, 134, 132, 136, 122, 153, 88, 107, 126, 117, 129, 113, 133, 133, 139, 129, 116, 139, 125, 123, 124, 141, 105, 120, 133, 150, 124, 129, 121, 125, 136, 109, 136, 129, 131, 110, 149, 124, 98, 129, 124, 112, 127, 131, 128, 129, 132, 135, 138, 118, 126, 117, 141, 112, 117, 114, 124, 125, 102, 145, 111, 131, 143, 142, 137, 112, 120, 122, 118, 107, 106, 131, 121, 122, 125, 107, 122, 134, 128, 119, 133, 112, 131, 126, 91, 149, 117, 126, 118, 123, 137, 118, 115, 107, 125, 132, 122, 123, 129, 124, 135, 123, 141, 122, 137, 119, 126, 104, 148, 118, 132, 138, 131, 129, 115, 107, 127, 122, 122, 128, 122, 112, 123, 105, 140, 117, 102, 123, 94, 118, 124, 136, 133, 123, 110, 134, 134, 108, 101, 148, 133, 128, 123, 98, 145, 127, 124, 142, 120, 124, 129, 123, 125, 129, 121, 121, 102, 123, 127, 132, 117, 115, 123, 127, 146, 118, 139, 128, 135, 139, 134, 129, 120, 120, 112, 150, 137, 122, 101, 143, 116, 120, 127, 110, 122, 138, 120, 114, 109, 123, 125, 134, 157, 126, 125, 105, 117, 102, 133, 111, 120, 120, 125, 111, 123, 128, 126, 115, 124, 125, 126, 136, 140, 100, 113, 138, 117, 108, 118, 117, 117, 138, 118, 117, 114, 94, 132, 120, 123, 127, 119, 129, 137, 125, 127, 120, 111, 135, 125, 139, 115, 139, 117, 120, 127, 126, 120, 140, 115, 120, 134, 127, 129, 133, 139, 133, 138, 109, 136, 121, 124, 131, 148, 139, 105, 126, 139, 135, 123, 122, 134, 145, 127, 120, 122, 138, 118, 136, 151, 114, 106, 133, 107, 116, 130, 131, 136, 117, 136, 130, 135, 137, 136, 153, 120, 128, 112, 117, 128, 120, 118, 135, 127, 130, 105, 118, 111, 125, 126, 123, 123, 114, 116, 142, 119, 135, 117, 131, 143, 120, 125, 141, 120, 133, 114, 116, 129, 110, 128, 126, 143, 125, 137, 144, 126, 132, 138, 126, 148, 121, 112, 105, 139, 109, 114, 119, 122, 119, 113, 132, 133, 123, 135, 126, 125, 114, 142, 124, 123, 125, 137, 130, 119, 123, 127, 121, 130, 120, 136, 137, 137, 125, 118, 121, 132, 137, 132, 143, 136, 102, 118, 139, 118, 128, 122, 135, 134, 107, 122, 116, 116, 118, 128, 127, 106, 134, 131, 112, 118, 132, 115, 113, 126, 129, 122, 138, 100, 120, 143, 132, 118, 121, 118, 125, 138, 115, 119, 125, 123, 131, 125, 129, 127, 121, 129, 130, 121, 118, 137, 126, 132, 112, 147, 118, 130, 129, 132, 122, 133, 118, 128, 117, 125, 147, 110, 125, 106, 122, 139, 115, 105, 111, 135, 129, 108, 133, 125, 122, 122, 125, 146, 113, 122, 104, 115, 153, 123, 132, 108, 143, 117, 129, 135, 123, 109, 132, 133, 115, 118, 118, 127, 138, 127, 131, 105, 129, 107, 115, 140, 127, 133, 115, 129, 117, 125, 113, 123, 125, 119, 125, 111, 115, 105, 111, 119, 135, 130, 105, 139, 133, 113, 127, 134, 135, 142, 98, 115, 122, 120, 122, 129, 114, 119, 118, 114, 124, 105, 108, 128, 139, 118, 122, 111, 133, 113, 135, 126, 122, 127, 114, 119, 127, 126, 112, 133, 136, 123, 138, 119, 124, 119, 125, 122, 134, 122, 110, 112, 137, 127, 104, 134, 131, 132, 144, 132, 120, 131, 123, 115, 115, 133, 115, 125, 122, 103, 155, 147, 123, 135, 128, 109, 114, 135, 115, 115, 135, 122, 131, 128, 127, 119, 121, 121, 127, 115, 133, 140, 117, 122, 137, 122, 139, 121, 131, 130, 145, 116, 135, 137, 99, 146, 124, 104, 131, 115, 129, 130, 131, 113, 142, 135, 134, 128, 136, 123, 129, 131, 121, 120, 127, 119, 113, 126, 111, 130, 137, 125, 130, 137, 117, 128, 101, 128, 121, 121, 119, 129, 130, 97, 131, 113, 134, 153, 108, 125, 105, 139, 111, 128, 132, 126, 118, 133, 124, 112, 115, 117, 143, 123, 153, 135, 141, 125, 140, 125, 150, 123, 113, 115, 138, 129, 138, 104, 117, 141, 134, 129, 122, 129, 124, 119, 116, 130, 130, 123, 121, 123, 119, 129, 135, 136, 121, 130, 128, 132, 117, 118, 116, 110, 140, 115, 123, 135, 112, 136, 135, 130, 130, 137, 129, 126, 131, 142, 146, 133, 132, 134, 124, 122, 113, 127, 157, 128, 135, 135, 126, 120, 117, 145, 122, 103, 129, 127, 112, 125, 132, 122, 122, 128, 120, 121, 118, 124, 122, 145, 123, 132, 133, 137, 119, 124, 142, 138, 125, 124, 126, 105, 128, 117, 118, 129, 130, 109, 119, 131, 104, 146, 123, 139, 116, 131, 140, 140, 126, 150, 111, 131, 143, 128, 134, 131, 148, 124, 113, 131, 132, 119, 111, 136, 136, 120, 123, 127, 114, 124, 108, 120, 123, 124, 122, 135, 129, 112, 115, 122, 127, 119, 134, 130, 123, 117, 130, 121, 123, 121, 105, 114, 118, 120, 141, 118, 144, 135, 133, 107, 119, 130, 118, 107, 118, 144, 125, 108, 123, 114, 115, 133, 143, 119, 120, 130, 129, 136, 139, 124, 122, 133, 141, 118, 142, 147, 139, 130, 121, 129, 126, 118, 133, 120, 123, 119, 129, 125, 131, 117, 126, 99, 135, 120, 131, 121, 103, 118, 128, 103, 120, 90, 130, 128, 112, 119, 98, 116, 129, 124, 116, 130, 124, 132, 123, 113, 125, 130, 112, 115, 128, 119, 141, 119, 133, 145, 121, 111, 125, 132, 111, 130, 122, 135, 122, 119, 124, 119, 139, 146, 127, 121, 120, 145, 123, 115, 112, 133, 128, 101, 122, 130, 110, 127, 126, 129, 123, 119, 131, 144, 125, 115, 144, 137, 120, 110, 120, 116, 137, 116, 134, 109, 102, 130, 135, 124, 112, 118, 128, 128, 126, 118, 137, 130, 125, 122, 130, 140, 108, 122, 122, 122, 125, 144, 133, 126, 132, 130, 141, 122, 115, 132, 132, 118, 130, 133, 126, 141, 124, 134, 113, 115, 127, 129, 124, 137, 125, 117, 115, 134, 123, 136, 132, 133, 147, 98, 123, 125, 152, 122, 129, 120, 129, 123, 141, 127, 128, 131, 142, 119, 123, 130, 93, 121, 127, 118, 123, 121, 125, 121, 131, 146, 131, 123, 133, 126, 136, 126, 134, 131, 111, 123, 139, 141, 113, 121, 114, 127, 124, 116, 113, 124, 114, 129, 118, 120, 118, 115, 114, 118, 106, 127, 122, 137, 154, 128, 132, 117, 123, 143, 107, 125, 115, 115, 144, 128, 123, 126, 120, 115, 114, 128, 117, 115, 135, 136, 128, 105, 143, 122, 134, 131, 137, 139, 119, 128, 131, 125, 117, 120, 136, 107, 139, 134, 133, 120, 134, 136, 134, 125, 112, 132, 117, 133, 117, 122, 127, 134, 111, 134, 99, 121, 122, 138, 139, 125, 124, 127, 120, 130, 123, 131, 132, 125, 120, 114, 128, 130, 123, 128, 129, 137, 130, 129, 127, 117, 114, 130, 113, 126, 128, 128, 111, 130, 123, 142, 114, 116, 140, 112, 135, 116, 131, 116, 132, 135, 124, 121, 132, 132, 126, 104, 135, 138, 129, 130, 122, 113, 131, 104, 128, 133, 130, 131, 112, 134, 129, 100, 130, 128, 119, 158, 113, 126, 121, 121, 102, 126, 124, 105, 115, 121, 131, 108, 127, 106, 123, 121, 105, 108, 120, 136, 110, 114, 112, 128, 119, 128, 119, 126, 129, 119, 139, 122, 129, 118, 128, 119, 119, 118, 122, 102, 119, 113, 122, 150, 141, 118, 143, 133, 126, 128, 132, 125, 131, 126, 122, 119, 136, 114, 141, 122, 133, 132, 127, 136, 121, 125, 112, 133, 119, 116, 107, 122, 123, 117, 132, 113, 140, 128, 132, 118, 124, 128, 122, 123, 133, 131, 123, 126, 124, 111, 126, 110, 138, 136, 137, 130, 135, 123, 139, 118, 117, 121, 131, 116, 144, 115, 108, 129, 134, 153, 144, 112, 127, 143, 114, 120, 125, 142, 152, 134, 145, 127, 135, 123, 142, 131, 120, 119, 118, 135, 126, 125, 129, 130, 137, 112, 107, 126, 125, 125, 124, 120, 130, 148, 127, 130, 134, 124, 140, 114, 99, 125, 128, 118, 128, 118, 122, 132, 135, 115, 112, 116, 127, 145, 137, 125, 142, 110, 138, 120, 124, 136, 117, 117, 122, 128, 129, 113, 147, 122, 130, 112, 111, 106, 130, 112, 133, 133, 131, 131, 103, 138, 119, 139, 140, 133, 98, 143, 145, 125, 123, 130, 106, 125, 122, 99, 112, 125, 124, 128, 137, 133, 139, 122, 128, 147, 127, 121, 125, 123, 138, 123, 119, 129, 124, 121, 137, 117, 134, 134, 131, 124, 113, 128, 127, 142, 130, 115, 112, 122, 111, 113, 121, 133, 128, 125, 119, 120, 111, 133, 123, 135, 137, 122, 151, 122, 118, 128, 124, 131, 131, 125, 141, 126, 141, 130, 142, 136, 131, 130, 122, 119, 110, 147, 109, 132, 95, 118, 129, 131, 133, 114, 121, 123, 112, 108, 129, 143, 138, 148, 125, 103, 125, 138, 125, 132, 107, 131, 116, 135, 135, 106, 119, 122, 126, 115, 132, 130, 123, 124, 131, 140, 122, 132, 114, 134, 131, 130, 133, 136, 127, 132, 123, 129, 133, 120, 131, 154, 108, 149, 110, 134, 133, 129, 125, 130, 118, 116, 126, 129, 107, 122, 130, 123, 116, 136, 124, 124, 114, 130, 118, 131, 124, 134, 120, 115, 130, 107, 119, 104, 115, 131, 137, 134, 128, 114, 104, 109, 127, 133, 124, 119, 125, 124, 116, 130, 135, 124, 110, 138, 124, 109, 145, 129, 155, 113, 128, 151, 116, 119, 131, 125, 148, 126, 113, 137, 140, 129, 134, 134, 143, 124, 122, 122, 138, 133, 123, 144, 137, 110, 114, 97, 128, 124, 152, 117, 118, 135, 121, 115, 121, 142, 130, 128, 129, 119, 117, 116, 125, 119, 140, 120, 111, 129, 120, 104, 110, 137, 135, 131, 123, 116, 141, 130, 125, 132, 120, 139, 125, 108, 115, 127, 104, 129, 119, 123, 121, 132, 131, 127, 114, 128, 121, 135, 128, 134, 128, 113, 118, 111, 127, 108, 125, 122, 121, 142, 112, 116, 128, 112, 133, 132, 130, 137, 123, 133, 122, 126, 123, 141, 119, 117, 123, 111, 135, 126, 127, 114, 133, 121, 134, 111, 109, 121, 115, 120, 127, 132, 120, 117, 115, 121, 121, 127, 125, 137, 113, 106, 124, 129, 135, 140, 121, 109, 130, 120, 136, 134, 141, 126, 124, 125, 127, 137, 124, 132, 121, 153, 117, 116, 111, 130, 132, 118, 128, 129, 131, 121, 154, 129, 152, 118, 119, 127, 140, 117, 108, 126, 142, 120, 144, 115, 139, 123, 101, 119, 127, 141, 128, 131, 130, 116, 129, 115, 128, 114, 122, 115, 123, 121, 131, 126, 136, 125, 132, 127, 133, 132, 116, 116, 129, 134, 125, 117, 115, 131, 118, 120, 123, 118, 117, 142, 144, 138, 121, 109, 127, 144, 134, 125, 133, 140, 123, 111, 124, 120, 115, 131, 119, 140, 110, 123, 132, 126, 132, 139, 142, 129, 130, 112, 126, 131, 134, 130, 116, 136, 117, 153, 119, 132, 137, 125, 145, 117, 117, 123, 114, 132, 124, 145, 128, 132, 128, 130, 114, 143, 119, 118, 117, 151, 126, 112, 128, 134, 139, 133, 119, 132, 136, 125, 135, 124, 122, 143, 140, 119, 124, 114, 115, 131, 139, 140, 119, 113, 127, 131, 147, 120, 142, 125, 131, 143, 118, 121, 118, 123, 123, 142, 103, 120, 123, 133, 140, 121, 125, 123, 125, 125, 131, 117, 122, 118, 129, 127, 124, 104, 116, 125, 119, 117, 135, 120, 134, 132, 128, 141, 110, 120, 124, 139, 120, 120, 128, 142, 117, 131, 116, 134, 138, 118, 119, 128, 121, 119, 122, 147, 125, 136, 117, 133, 120, 131, 131, 120, 120, 139, 126, 109, 134, 105, 111, 136, 158, 118, 120, 111, 119, 133, 132, 146, 127, 124, 107, 111, 143, 115, 138, 126, 128, 117, 134, 129, 102, 126, 118, 133, 127, 132, 128, 107, 121, 113, 114, 129, 119, 116, 120, 127, 105, 130, 105, 122, 134, 129, 127, 114, 123, 124, 114, 113, 132, 120, 122, 132, 133, 128, 128, 138, 134, 130, 108, 120, 141, 132, 115, 126, 119, 130, 129, 109, 123, 125, 134, 140, 134, 135, 133, 130, 119, 118, 114, 130, 136, 145, 142, 107, 144, 114, 128, 127, 139, 121, 154, 108, 140, 137, 109, 126, 126, 126, 100, 132, 116, 130, 109, 119, 144, 146, 140, 120, 116, 137, 133, 114, 140, 108, 118, 133, 134, 136, 121, 117, 110, 129, 137, 139, 119, 138, 132, 110, 103, 127, 129, 133, 136, 122, 139, 156, 132, 133, 138, 138, 113, 129, 119, 117, 113, 125, 130, 141, 121, 121, 103, 110, 112, 134, 120, 122, 123, 137, 113, 128, 116, 137, 147, 124, 108, 151, 126, 139, 128, 120, 139, 125, 115, 131, 119, 138, 122, 132, 118, 127, 129, 138, 140, 102, 124, 132, 132, 119, 122, 141, 132, 125, 131, 124, 131, 122, 133, 121, 120, 120, 127, 137, 117, 103, 126, 109, 128, 123, 108, 122, 123, 100, 123, 142, 110, 129, 125, 106, 116, 118, 128, 120, 120, 124, 116, 127, 142, 107, 130, 113, 116, 144, 123, 124, 144, 137, 124, 139, 131, 142, 112, 122, 122, 115, 121, 125, 141, 131, 102, 136, 101, 99, 125, 134, 142, 125, 121, 109, 129, 125, 115, 116, 129, 118, 138, 140, 113, 115, 125, 136, 128, 136, 115, 109, 117, 119, 118, 112, 119, 112, 136, 125, 121, 122, 133, 131, 126, 130, 106, 117, 151, 127, 126, 119, 145, 129, 130, 101, 121, 134, 120, 121, 115, 124, 134, 135, 111, 106, 119, 132, 115, 115, 118, 126, 129, 126, 123, 142, 112, 141, 136, 125, 107, 117, 129, 134, 128, 150, 130, 125, 127, 119, 137, 127, 146, 123, 121, 106, 122, 122, 124, 132, 131, 110, 137, 137, 138, 135, 114, 136, 129, 142, 124, 124, 141, 114, 135, 121, 123, 128, 136, 113, 137, 134, 132, 106, 112, 113, 118, 124, 122, 114, 149, 119, 118, 141, 136, 122, 126, 118, 125, 149, 135, 124, 115, 126, 134, 128, 117, 111, 113, 118, 112, 116, 137, 114, 118, 144, 119, 137, 136, 152, 108, 130, 123, 134, 134, 142, 121, 105, 140, 117, 139, 129, 116, 126, 135, 130, 150, 132, 125, 116, 137, 129, 128, 112, 118, 135, 119, 124, 134, 116, 104, 117, 130, 114, 122, 123, 121, 135, 147, 114, 115, 129, 119, 137, 120, 120, 141, 135, 117, 109, 117, 128, 135, 114, 146, 118, 131, 138, 134, 123, 104, 126, 131, 126, 133, 143, 129, 135, 121, 116, 113, 111, 120, 119, 136, 122, 120, 123, 134, 122, 121, 112, 125, 126, 136, 119, 115, 132, 148, 138, 129, 114, 125, 126, 125, 140, 113, 128, 104, 120, 106, 106, 136, 119, 127, 135, 130, 131, 120, 131, 112, 123, 123, 106, 133, 132, 115, 147, 113, 143, 144, 132, 114, 122, 125, 98, 118, 132, 124, 133, 106, 130, 117, 124, 134, 135, 105, 120, 134, 131, 132, 120, 134, 121, 122, 111, 129, 129, 126, 125, 107, 115, 131, 143, 121, 143, 144, 142, 116, 116, 136, 114, 117, 136, 121, 120, 121, 118, 136, 132, 141, 114, 122, 136, 125, 128, 130, 126, 127, 129, 127, 127, 123, 124, 126, 125, 126, 109, 149, 134, 124, 121, 146, 139, 141, 113, 135, 111, 113, 126, 122, 104, 122, 124, 123, 122, 120, 120, 130, 129, 129, 133, 112, 128, 132, 132, 123, 123, 121, 126, 121, 127, 123, 123, 134, 116, 114, 140, 122, 120, 131, 112, 136, 118, 127, 143, 129, 115, 119, 132, 110, 118, 119, 117, 123, 127, 116, 120, 133, 126, 137, 132, 126, 121, 140, 128, 134, 118, 118, 120, 136, 122, 145, 129, 130, 128, 132, 118, 107, 135, 116, 116, 122, 125, 134, 116, 125, 143, 111, 120, 107, 123, 147, 111, 121, 121, 121, 132, 133, 121, 131, 123, 144, 113, 120, 134, 120, 119, 116, 115, 121, 115, 139, 131, 129, 131, 121, 125, 135, 137, 139, 123, 126, 118, 132, 127, 116, 125, 131, 124, 124, 121, 117, 125, 114, 132, 131, 132, 106, 122, 125, 130, 132, 123, 128, 122, 121, 121, 129, 128, 136, 133, 133, 146, 126, 119, 132, 124, 139, 118, 135, 125, 122, 124, 126, 121, 127, 135, 131, 130, 118, 131, 122, 112, 117, 129, 124, 133, 106, 115, 132, 122, 121, 131, 120, 117, 133, 129, 102, 120, 125, 125, 127, 130, 146, 131, 129, 129, 123, 127, 122, 123, 130, 124, 126, 137, 112, 119, 125, 108, 126, 131, 132, 144, 124, 117, 133, 120, 142, 122, 133, 118, 131, 130, 125, 135, 114, 115, 116, 130, 131, 127, 124, 134, 117, 120, 114, 118, 125, 132, 134, 138, 130, 132, 124, 124, 117, 108, 121, 145, 124, 120, 116, 119, 117, 135, 125, 121, 132, 116, 131, 121, 125, 118, 130, 118, 119, 120, 116, 142, 117, 120, 127, 119, 134, 114, 141, 129, 117, 118, 112, 121, 141, 125, 117, 131, 124, 120, 128, 142, 119, 124, 127, 130, 147, 123, 136, 116, 111, 129, 116, 133, 121, 112, 116, 123, 138, 115, 134, 121, 134, 140, 120, 116, 122, 133, 137, 119, 126, 125, 139, 141, 114, 138, 123, 133, 115, 124, 122, 130, 128, 131, 139, 122, 131, 138, 121, 121, 134, 128, 128, 132, 127, 136, 112, 128, 122, 121, 123, 123, 125, 121, 130, 122, 120, 147, 136, 128, 117, 122, 117, 136, 125, 122, 132, 126, 127, 125, 141, 124, 143, 115, 115, 125, 138, 122, 123, 111, 127, 152, 126, 131, 119, 125, 149, 121, 120, 152, 109, 137, 126, 135, 130, 128, 140, 127, 130, 119, 116, 120, 123, 121, 142, 139, 143, 107, 136, 135, 122, 117, 127, 130, 125, 127, 139, 133, 130, 125, 130, 132, 136, 117, 137, 111, 124, 123, 111, 124, 112, 136, 114, 125, 127, 124, 131, 126, 133, 138, 126, 131, 127, 104, 123, 104, 133, 123, 128, 121, 126, 133, 139, 144, 138, 127, 114, 126, 136, 132, 137, 120, 121, 114, 112, 126, 128, 110, 120, 122, 142, 131, 108, 137, 151, 110, 120, 127, 126, 123, 122, 138, 123, 128, 135, 121, 103, 122, 123, 128, 121, 116, 128, 132, 110, 112, 121, 128, 121, 120, 125, 118, 120, 115, 132, 130, 122, 112, 132, 129, 130, 129, 121, 135, 127, 131, 128, 115, 145, 125, 133, 128, 132, 126, 135, 125, 120, 120, 117, 124, 132, 131, 132, 121, 105, 152, 111, 121, 128, 108, 121, 129, 125, 127, 125, 129, 133, 137, 140, 115, 120, 124, 129, 136, 132, 124, 131, 126, 122, 128, 122, 132, 124, 121, 140, 104, 121, 121, 119, 128, 120, 117, 116, 126, 123, 131, 114, 139, 120, 139, 123, 138, 142, 112, 122, 133, 134, 133, 115, 131, 130, 119, 106, 124, 135, 132, 124, 134, 135, 136, 119, 121, 143, 124, 123, 123, 120, 134, 121, 136, 133, 128, 122, 130, 119, 121, 126, 119, 128, 126, 112, 113, 133, 131, 123, 128, 135, 133, 116, 126, 135, 125, 137, 135, 123, 135, 117, 125, 123, 123, 113, 118, 119, 130, 132, 129, 127, 106, 126, 118, 125, 119, 109, 120, 137, 135, 124, 108, 113, 118, 126, 139, 134, 127, 130, 127, 141, 138, 129, 114, 130, 126, 119, 131, 118, 113, 136, 126, 110, 117, 137, 138, 134, 125, 144, 115, 126, 121, 125, 125, 132, 134, 125, 136, 120, 110, 119, 122, 125, 119, 127, 107, 123, 116, 134, 121, 139, 122, 120, 97, 122, 129, 142, 110, 139, 111, 121, 133, 136, 131, 133, 127, 117, 118, 126, 122, 119, 118, 133, 122, 128, 139, 116, 114, 129, 113, 116, 130, 124, 127, 126, 134, 121, 125, 113, 128, 114, 97, 95, 124, 129, 120, 136, 132, 125, 137, 125, 123, 127, 120, 122, 130, 114, 127, 111, 113, 112, 121, 118, 127, 121, 149, 125, 128, 133, 121, 134, 139, 133, 117, 146, 136, 129, 121, 137, 96, 131, 124, 111, 121, 138, 132, 129, 136, 115, 138, 117, 134, 134, 138, 121, 129, 141, 130, 140, 119, 127, 120, 119, 120, 122, 116, 130, 128, 136, 123, 106, 125, 119, 125, 112, 137, 126, 127, 131, 144, 121, 130, 132, 127, 127, 134, 123, 106, 132, 130, 125, 132, 121, 126, 129, 111, 128, 117, 126, 128, 131, 126, 120, 123, 132, 123, 114, 121, 108, 130, 127, 122, 133, 118, 141, 134, 128, 143, 118, 117, 136, 133, 131, 142, 123, 137, 116, 137, 129, 113, 132, 113, 112, 133, 118, 138, 117, 124, 123, 121, 139, 127, 138, 112, 126, 127, 133, 121, 126, 127, 135, 118, 132, 121, 119, 128, 133, 128, 132, 121, 121, 136, 129, 126, 125, 134, 127, 123, 118, 128, 135, 114, 140, 137, 113, 128, 132, 136, 128, 127, 149, 109, 106, 123, 128, 130, 137, 115, 144, 110, 121, 123, 115, 126, 124, 129, 116, 131, 129, 116, 124, 113, 119, 128, 126, 107, 128, 139, 130, 131, 114, 117, 125, 131, 123, 126, 120, 124, 137, 133, 116, 116, 129, 113, 141, 125, 125, 134, 124, 96, 98, 116, 123, 137, 132, 127, 124, 117, 118, 131, 128, 135, 103, 127, 115, 114, 127, 138, 117, 154, 135, 128, 111, 134, 134, 132, 111, 122, 135, 129, 133, 121, 130, 111, 110, 111, 120, 124, 120, 128, 115, 123, 119, 116, 142, 123, 126, 139, 125, 122, 121, 116, 125, 139, 128, 130, 128, 132, 120, 106, 106, 127, 120, 133, 121, 126, 112, 112, 126, 127, 130, 123, 114, 116, 131, 102, 120, 132, 124, 131, 132, 117, 93, 114, 110, 123, 110, 122, 119, 133, 140, 131, 137, 117, 113, 127, 119, 125, 117, 114, 133, 147, 125, 144, 133, 141, 164, 129, 133, 121, 109, 129, 120, 126, 114, 136, 123, 137, 115, 126, 125, 136, 121, 131, 114, 132, 127, 127, 127, 140, 117, 138, 127, 123, 149, 120, 120, 117, 123, 124, 140, 143, 125, 127, 129, 131, 125, 118, 112, 118, 119, 118, 130, 127, 146, 127, 121, 99, 126, 139, 110, 113, 145, 123, 126, 127, 128, 119, 134, 141, 124, 136, 122, 112, 126, 121, 138, 121, 117, 122, 102, 136, 126, 123, 127, 143, 132, 104, 114, 116, 125, 128, 124, 105, 137, 144, 109, 112, 138, 123, 125, 121, 142, 129, 131, 140, 154, 120, 113, 140, 131, 134, 134, 123, 125, 133, 158, 113, 130, 127, 118, 125, 133, 128, 114, 132, 109, 107, 137, 137, 107, 134, 111, 115, 122, 118, 144, 121, 119, 122, 148, 128, 114, 130, 120, 116, 126, 148, 107, 120, 122, 125, 135, 140, 126, 124, 124, 129, 132, 132, 120, 131, 159, 124, 126, 129, 110, 119, 137, 123, 103, 118, 132, 144, 108, 153, 129, 120, 112, 116, 116, 137, 125, 131, 143, 129, 124, 115, 118, 134, 123, 157, 127, 123, 134, 112, 118, 127, 126, 114, 122, 128, 112, 118, 125, 119, 149, 108, 126, 111, 119, 135, 115, 109, 151, 117, 111, 123, 116, 134, 129, 129, 125, 130, 126, 110, 118, 126, 122, 127, 124, 159, 128, 113, 117, 126, 139, 125, 119, 143, 134, 116, 134, 115, 116, 136, 122, 136, 129, 122, 137, 119, 130, 108, 126, 123, 113, 121, 121, 126, 119, 112, 139, 118, 137, 135, 126, 124, 110, 137, 105, 118, 144, 125, 125, 126, 128, 121, 124, 122, 147, 101, 125, 142, 121, 128, 107, 117, 113, 118, 124, 116, 128, 111, 129, 106, 118, 122, 143, 106, 129, 120, 131, 117, 142, 122, 113, 129, 114, 113, 127, 136, 127, 134, 112, 139, 140, 131, 128, 130, 100, 134, 114, 128, 137, 98, 126, 135, 118, 147, 108, 119, 108, 138, 116, 137, 119, 139, 130, 135, 123, 131, 136, 135, 126, 147, 115, 129, 124, 138, 136, 123, 120, 139, 127, 126, 127, 124, 134, 122, 135, 126, 142, 140, 131, 120, 115, 138, 101, 134, 121, 116, 137, 128, 136, 122, 135, 131, 120, 143, 128, 121, 124, 101, 128, 145, 120, 134, 121, 139, 128, 104, 107, 131, 143, 115, 105, 125, 127, 115, 105, 124, 113, 108, 104, 99, 139, 142, 148, 127, 107, 130, 118, 139, 130, 106, 116, 143, 122, 133, 124, 122, 121, 136, 123, 114, 128, 122, 127, 129, 141, 126, 134, 118, 139, 113, 143, 128, 126, 122, 169, 103, 130, 122, 126, 142, 106, 127, 120, 133, 123, 128, 127, 114, 134, 126, 120, 139, 138, 138, 142, 133, 116, 123, 112, 125, 134, 125, 128, 131, 120, 127, 126, 122, 122, 138, 102, 84, 142, 119, 120, 121, 121, 157, 129, 104, 119, 131, 110, 137, 132, 98, 133, 129, 134, 122, 137, 134, 126, 127, 119, 136, 135, 129, 118, 131, 136, 114, 130, 120, 127, 118, 120, 136, 140, 132, 140, 123, 100, 140, 110, 140, 119, 133, 140, 132, 125, 120, 125, 120, 130, 135, 128, 120, 125, 122, 131, 135, 132, 118, 121, 116, 133, 137, 112, 128, 119, 112, 139, 143, 134, 118, 128, 143, 113, 149, 123, 115, 136, 122, 127, 119, 134, 126, 108, 139, 102, 137, 126, 102, 124, 136, 131, 122, 134, 118, 124, 134, 109, 111, 144, 136, 99, 128, 125, 132, 127, 123, 122, 123, 114, 122, 104, 120, 128, 141, 129, 120, 125, 128, 117, 129, 98, 116, 120, 121, 139, 128, 122, 128, 133, 127, 101, 140, 118, 116, 118, 128, 123, 129, 138, 115, 132, 116, 120, 108, 113, 120, 125, 132, 91, 109, 140, 138, 131, 120, 134, 123, 118, 115, 134, 128, 129, 144, 132, 124, 143, 120, 133, 125, 108, 122, 124, 117, 129, 124, 128, 126, 116, 95, 113, 129, 143, 132, 138, 121, 121, 128, 130, 114, 136, 148, 117, 133, 119, 129, 106, 126, 129, 115, 122, 107, 129, 111, 138, 131, 129, 111, 130, 123, 126, 114, 126, 130, 113, 121, 117, 136, 126, 135, 121, 146, 118, 138, 127, 135, 124, 118, 117, 123, 117, 123, 142, 130, 102, 135, 136, 136, 157, 122, 139, 103, 120, 100, 128, 126, 121, 130, 104, 119, 122, 119, 130, 131, 120, 109, 130, 142, 119, 114, 126, 129, 131, 119, 140, 127, 134, 127, 133, 132, 132, 121, 115, 114, 138, 103, 122, 131, 131, 146, 120, 131, 111, 123, 124, 133, 128, 123, 115, 123, 125, 132, 117, 118, 119, 114, 116, 130, 126, 116, 106, 126, 130, 135, 111, 118, 122, 131, 120, 111, 120, 116, 114, 91, 119, 119, 124, 134, 110, 108, 138, 124, 114, 122, 116, 138, 114, 128, 129, 128, 120, 116, 111, 131, 128, 127, 133, 136, 129, 131, 136, 117, 121, 126, 116, 120, 114, 127, 155, 123, 124, 135, 132, 109, 134, 149, 110, 144, 121, 155, 115, 121, 115, 117, 138, 128, 116, 132, 137, 135, 147, 147, 113, 134, 121, 127, 122, 117, 128, 146, 133, 111, 139, 128, 134, 156, 131, 118, 132, 138, 106, 127, 99, 120, 105, 112, 149, 115, 122, 119, 118, 145, 130, 120, 131, 140, 127, 103, 130, 141, 127, 108, 132, 115, 122, 127, 123, 113, 136, 108, 119, 137, 124, 128, 146, 131, 128, 134, 129, 119, 126, 115, 124, 128, 124, 131, 124, 125, 120, 113, 124, 123, 134, 115, 129, 126, 141, 119, 131, 123, 119, 139, 140, 121, 132, 109, 137, 135, 126, 125, 107, 126, 138, 129, 128, 107, 148, 135, 124, 136, 142, 139, 128, 130, 151, 125, 127, 108, 121, 121, 126, 127, 123, 117, 132, 126, 136, 123, 111, 120, 123, 127, 107, 113, 128, 140, 150, 131, 127, 124, 120, 137, 119, 136, 110, 133, 142, 112, 122, 126, 130, 127, 97, 125, 130, 119, 120, 118, 132, 129, 128, 123, 118, 115, 143, 128, 110, 121, 116, 126, 133, 119, 137, 134, 122, 131, 126, 120, 131, 120, 120, 132, 114, 128, 141, 119, 116, 131, 123, 130, 126, 119, 144, 135, 131, 144, 133, 128, 133, 129, 131, 125, 104, 106, 120, 117, 123, 125, 123, 136, 110, 127, 127, 122, 111, 126, 127, 133, 119, 160, 122, 125, 128, 121, 119, 117, 131, 112, 126, 123, 122, 142, 118, 120, 128, 144, 118, 101, 136, 122, 123, 119, 129, 153, 109, 136, 126, 130, 113, 128, 140, 140, 121, 107, 103, 131, 124, 104, 119, 120, 125, 133, 137, 117, 137, 115, 134, 134, 127, 109, 112, 130, 121, 121, 109, 120, 115, 143, 120, 136, 119, 119, 119, 144, 139, 112, 114, 112, 135, 132, 112, 118, 135, 139, 145, 119, 136, 119, 121, 113, 112, 119, 128, 134, 122, 145, 148, 137, 126, 127, 108, 114, 138, 121, 138, 125, 135, 120, 134, 127, 111, 136, 142, 126, 118, 124, 117, 132, 121, 111, 120, 118, 125, 138, 120, 131, 118, 119, 123, 122, 134, 122, 140, 117, 145, 147, 115, 121, 126, 125, 120, 124, 117, 111, 108, 108, 142, 128, 123, 132, 115, 129, 127, 121, 132, 116, 129, 133, 116, 125, 127, 121, 111, 137, 147, 104, 132, 135, 114, 139, 130, 129, 109, 122, 135, 120, 133, 126, 120, 113, 133, 145, 129, 115, 125, 122, 139, 118, 109, 127, 108, 133, 124, 126, 124, 125, 118, 134, 128, 124, 128, 128, 117, 112, 123, 104, 144, 123, 113, 128, 124, 126, 119, 111, 120, 130, 127, 138, 131, 128, 120, 131, 131, 124, 119, 130, 148, 128, 133, 124, 136, 117, 130, 139, 123, 136, 115, 141, 126, 139, 120, 120, 128, 124, 141, 141, 139, 144, 140, 147, 117, 123, 121, 113, 135, 128, 113, 123, 147, 123, 117, 122, 113, 125, 121, 114, 130, 123, 125, 119, 124, 126, 122, 129, 132, 131, 124, 111, 128, 117, 115, 90, 122, 117, 135, 117, 121, 116, 139, 125, 146, 132, 121, 117, 127, 119, 113, 113, 129, 138, 112, 121, 115, 143, 120, 105, 117, 114, 119, 126, 126, 125, 113, 133, 125, 130, 120, 138, 115, 125, 106, 120, 127, 130, 154, 122, 113, 128, 122, 117, 126, 122, 101, 110, 133, 126, 95, 122, 135, 126, 121, 122, 123, 112, 122, 137, 133, 110, 116, 120, 119, 126, 132, 136, 115, 133, 128, 119, 136, 151, 99, 129, 120, 114, 119, 127, 113, 99, 112, 138, 134, 122, 126, 136, 136, 125, 119, 123, 126, 123, 96, 130, 110, 115, 124, 127, 122, 130, 114, 99, 130, 102, 140, 126, 127, 130, 141, 120, 128, 120, 114, 123, 124, 144, 137, 136, 123, 128, 105, 114, 113, 124, 115, 138, 124, 123, 121, 127, 125, 134, 137, 113, 122, 157, 141, 127, 133, 125, 131, 123, 131, 125, 113, 121, 114, 105, 120, 126, 136, 120, 127, 114, 120, 122, 133, 137, 125, 124, 116, 146, 145, 144, 120, 132, 147, 113, 110, 121, 121, 125, 146, 122, 115, 126, 120, 117, 124, 136, 134, 120, 151, 114, 126, 128, 122, 126, 152, 126, 109, 133, 124, 133, 123, 122, 139, 116, 120, 116, 132, 108, 129, 133, 124, 113, 116, 129, 138, 122, 131, 143, 133, 131, 113, 123, 128, 119, 132, 142, 125, 123, 125, 122, 117, 125, 115, 123, 125, 123, 114, 122, 128, 116, 145, 117, 136, 129, 140, 127, 133, 139, 115, 108, 126, 132, 119, 129, 132, 126, 134, 117, 113, 143, 117, 113, 141, 145, 131, 127, 130, 142, 123, 130, 127, 121, 117, 128, 121, 125, 124, 125, 130, 155, 124, 127, 122, 122, 123, 127, 155, 97, 116, 111, 115, 110, 121, 129, 133, 133, 125, 133, 127, 141, 128, 136, 134, 139, 148, 111, 117, 106, 121, 114, 144, 115, 111, 124, 120, 125, 130, 135, 148, 122, 127, 121, 136, 117, 145, 149, 133, 122, 132, 130, 121, 98, 137, 126, 116, 140, 128, 127, 115, 135, 122, 109, 122, 125, 145, 121, 132, 128, 130, 137, 122, 137, 159, 112, 138, 128, 117, 128, 109, 136, 122, 122, 118, 134, 134, 130, 130, 125, 115, 129, 104, 155, 135, 126, 123, 137, 138, 130, 124, 102, 142, 130, 130, 112, 131, 129, 119, 138, 117, 122, 110, 117, 128, 125, 98, 125, 109, 123, 124, 121, 117, 123, 137, 144, 117, 116, 130, 123, 131, 137, 132, 135, 116, 118, 134, 124, 130, 121, 124, 106, 131, 136, 120, 113, 113, 133, 147, 125, 131, 119, 143, 125, 109, 127, 118, 143, 119, 122, 136, 126, 114, 130, 132, 130, 127, 117, 100, 110, 117, 136, 126, 111, 128, 121, 117, 129, 107, 132, 136, 148, 134, 119, 124, 120, 133, 122, 143, 122, 127, 142, 130, 109, 131, 128, 128, 121, 129, 112, 130, 124, 144, 130, 126, 134, 131, 118, 128, 122, 139, 114, 117, 145, 127, 136, 129, 140, 123, 140, 124, 138, 111, 109, 116, 121, 116, 126, 135, 121, 117, 127, 143, 115, 123, 131, 156, 126, 120, 132, 123, 102, 128, 119, 114, 126, 121, 148, 135, 134, 121, 126, 114, 143, 111, 130, 115, 120, 127, 119, 124, 127, 134, 128, 142, 117, 112, 128, 107, 113, 138, 120, 129, 140, 118, 123, 123, 115, 128, 126, 124, 128, 126, 135, 142, 127, 129, 116, 120, 122, 125, 117, 113, 144, 143, 119, 122, 122, 134, 143, 133, 128, 117, 124, 117, 122, 123, 112, 131, 116, 111, 117, 134, 140, 134, 124, 122, 135, 132, 122, 135, 98, 127, 117, 128, 134, 121, 117, 121, 135, 124, 121, 126, 147, 132, 127, 115, 131, 145, 120, 130, 130, 117, 125, 118, 134, 134, 141, 121, 122, 125, 119, 123, 131, 109, 138, 122, 120, 128, 130, 122, 123, 119, 117, 128, 122, 119, 127, 107, 130, 119, 121, 109, 127, 120, 122, 180, 134, 106, 138, 106, 120, 130, 130, 118, 136, 126, 117, 123, 126, 124, 121, 110, 122, 110, 124, 123, 103, 155, 129, 108, 121, 131, 102, 129, 133, 142, 134, 141, 126, 119, 135, 149, 130, 117, 117, 124, 124, 132, 136, 124, 119, 138, 133, 111, 124, 139, 132, 109, 128, 107, 130, 138, 120, 124, 128, 132, 123, 152, 133, 118, 147, 117, 124, 124, 117, 143, 128, 129, 105, 128, 113, 124, 123, 117, 116, 134, 113, 125, 135, 132, 116, 119, 120, 123, 127, 116, 128, 125, 111, 130, 112, 130, 145, 120, 120, 133, 143, 122, 117, 114, 120, 133, 153, 124, 126, 105, 121, 120, 118, 127, 150, 124, 124, 99, 112, 161, 117, 122, 133, 134, 141, 110, 129, 129, 137, 131, 114, 120, 128, 142, 123, 144, 125, 137, 144, 117, 136, 123, 110, 133, 128, 127, 126, 123, 126, 141, 161, 108, 121, 115, 148, 137, 119, 116, 138, 134, 111, 136, 140, 127, 131, 136, 131, 154, 132, 113, 124, 137, 141, 99, 120, 110, 123, 141, 146, 125, 133, 116, 141, 123, 129, 138, 126, 93, 117, 126, 131, 116, 125, 116, 108, 135, 127, 136, 120, 108, 140, 144, 120, 126, 129, 117, 115, 121, 133, 130, 137, 125, 119, 131, 137, 130, 131, 127, 144, 120, 107, 118, 107, 127, 131, 126, 126, 132, 134, 119, 144, 144, 122, 123, 133, 121, 129, 143, 111, 106, 117, 123, 122, 116, 126, 127, 113, 149, 122, 121, 128, 135, 122, 140, 127, 133, 122, 125, 116, 133, 149, 128, 130, 137, 127, 134, 121, 125, 123, 141, 122, 136, 109, 146, 115, 143, 131, 131, 139, 113, 132, 122, 125, 130, 103, 123, 129, 127, 139, 127, 114, 132, 133, 125, 114, 127, 121, 130, 118, 134, 110, 133, 130, 100, 131, 117, 141, 124, 127, 125, 137, 137, 131, 127, 120, 122, 128, 121, 128, 142, 140, 111, 131, 126, 125, 129, 139, 123, 121, 114, 148, 131, 124, 146, 113, 109, 109, 122, 141, 99, 135, 124, 118, 134, 137, 127, 130, 126, 124, 121, 124, 125, 133, 128, 130, 121, 131, 122, 113, 125, 107, 119, 103, 121, 110, 118, 92, 111, 141, 134, 119, 116, 105, 120, 128, 115, 125, 121, 126, 116, 131, 132, 118, 129, 122, 129, 118, 127, 126, 114, 138, 128, 123, 113, 126, 127, 129, 126, 113, 126, 129, 121, 124, 131, 124, 121, 131, 120, 144, 119, 127, 125, 112, 147, 147, 115, 140, 122, 134, 131, 119, 125, 132, 128, 127, 113, 123, 107, 135, 120, 127, 119, 121, 114, 118, 151, 124, 114, 123, 118, 126, 123, 119, 103, 116, 140, 117, 108, 136, 136, 160, 113, 116, 122, 136, 114, 122, 145, 134, 141, 125, 140, 111, 133, 135, 130, 119, 107, 129, 118, 113, 137, 145, 127, 123, 148, 168, 141, 103, 134, 139, 99, 129, 116, 112, 123, 118, 132, 117, 127, 131, 140, 123, 139, 122, 142, 116, 135, 134, 124, 98, 146, 113, 128, 124, 111, 125, 126, 129, 86, 108, 124, 113, 143, 136, 150, 122, 118, 107, 126, 142, 113, 126, 130, 127, 128, 122, 130, 138, 119, 128, 131, 123, 124, 102, 134, 131, 124, 94, 129, 150, 135, 114, 109, 132, 125, 116, 115, 127, 132, 126, 118, 114, 137, 123, 119, 130, 122, 119, 125, 133, 131, 135, 127, 134, 139, 113, 147, 133, 123, 131, 136, 127, 120, 107, 130, 113, 129, 106, 102, 126, 129, 131, 130, 111, 112, 131, 125, 134, 128, 125, 111, 115, 124, 129, 135, 150, 86, 149, 126, 152, 134, 138, 126, 120, 122, 132, 127, 148, 112, 132, 127, 147, 103, 129, 125, 137, 117, 125, 119, 121, 134, 118, 133, 142, 113, 88, 120, 125, 140, 127, 131, 126, 123, 120, 120, 142, 126, 130, 110, 119, 123, 115, 125, 129, 142, 128, 105, 139, 130, 126, 133, 122, 114, 130, 113, 120, 119, 113, 133, 132, 109, 133, 108, 118, 137, 126, 124, 136, 132, 127, 127, 111, 114, 121, 116, 151, 136, 118, 118, 114, 126, 127, 137, 125, 108, 139, 138, 132, 126, 126, 124, 113, 104, 126, 131, 115, 127, 121, 115, 115, 121, 153, 114, 140, 127, 120, 137, 136, 130, 128, 113, 120, 114, 130, 124, 134, 127, 120, 119, 122, 108, 123, 131, 124, 132, 127, 105, 124, 129, 129, 124, 135, 122, 130, 136, 126, 129, 124, 120, 138, 119, 114, 122, 125, 112, 119, 142, 124, 137, 130, 126, 129, 99, 109, 122, 120, 144, 125, 135, 132, 137, 140, 128, 120, 120, 124, 129, 141, 105, 114, 130, 146, 122, 147, 126, 127, 119, 136, 125, 142, 150, 124, 121, 98, 134, 129, 119, 140, 138, 122, 125, 132, 104, 128, 119, 134, 132, 131, 112, 139, 129, 143, 113, 137, 130, 138, 133, 124, 130, 134, 122, 120, 137, 108, 128, 116, 107, 124, 132, 135, 112, 131, 124, 134, 108, 117, 140, 119, 119, 135, 115, 119, 126, 127, 137, 121, 137, 125, 119, 106, 136, 116, 128, 131, 114, 128, 126, 123, 119, 149, 128, 117, 131, 130, 113, 123, 128, 139, 129, 130, 120, 126, 144, 134, 112, 135, 123, 127, 137, 119, 98, 141, 89, 145, 133, 129, 121, 121, 117, 138, 131, 108, 131, 132, 115, 139, 110, 125, 125, 131, 127, 137, 114, 142, 100, 108, 144, 119, 87, 117, 114, 129, 129, 125, 124, 107, 123, 119, 130, 124, 134, 116, 128, 120, 111, 128, 141, 111, 134, 156, 107, 129, 129, 137, 126, 130, 111, 116, 144, 127, 107, 124, 133, 113, 106, 112, 124, 119, 117, 131, 125, 128, 115, 118, 102, 145, 124, 113, 132, 135, 110, 136, 119, 130, 121, 129, 107, 118, 127, 115, 104, 125, 114, 132, 129, 119, 124, 117, 126, 135, 126, 126, 131, 137, 123, 117, 127, 112, 124, 134, 140, 102, 132, 154, 127, 127, 123, 134, 118, 127, 124, 123, 114, 121, 132, 132, 134, 123, 106, 117, 116, 150, 120, 137, 116, 135, 130, 123, 156, 146, 118, 118, 124, 140, 109, 127, 126, 131, 106, 134, 137, 130, 117, 126, 119, 128, 109, 127, 137, 129, 120, 117, 140, 114, 128, 121, 128, 122, 122, 134, 107, 125, 120, 135, 143, 136, 104, 132, 117, 143, 115, 123, 114, 144, 134, 142, 118, 120, 128, 123, 121, 127, 115, 122, 114, 123, 120, 130, 132, 138, 137, 134, 141, 133, 115, 139, 122, 146, 140, 115, 127, 116, 130, 110, 134, 126, 120, 107, 135, 123, 133, 127, 128, 121, 118, 140, 120, 144, 110, 120, 130, 123, 130, 129, 129, 110, 126, 136, 126, 134, 128, 120, 133, 118, 107, 115, 129, 127, 129, 116, 144, 107, 143, 128, 124, 131, 130, 117, 112, 111, 123, 120, 142, 122, 138, 133, 126, 114, 126, 109, 115, 113, 116, 126, 120, 129, 124, 118, 141, 115, 127, 137, 116, 123, 121, 114, 127, 127, 117, 123, 124, 122, 121, 107, 140, 122, 123, 106, 136, 123, 126, 142, 137, 122, 125, 123, 134, 128, 120, 127, 131, 121, 115, 123, 135, 127, 113, 102, 107, 127, 131, 129, 117, 113, 125, 121, 111, 144, 123, 116, 131, 113, 119, 125, 117, 126, 127, 126, 124, 139, 123, 112, 115, 118, 137, 126, 127, 124, 126, 125, 137, 128, 112, 122, 119, 127, 131, 113, 126, 144, 109, 132, 133, 121, 128, 129, 125, 129, 130, 128, 134, 127, 123, 142, 119, 124, 133, 123, 124, 122, 111, 112, 124, 124, 121, 148, 134, 129, 146, 137, 137, 130, 131, 127, 126, 121, 133, 117, 130, 115, 131, 119, 122, 128, 122, 115, 111, 118, 135, 130, 116, 114, 121, 135, 124, 128, 132, 115, 128, 129, 125, 112, 126, 146, 131, 130, 126, 133, 98, 115, 133, 126, 126, 131, 125, 130, 131, 142, 121, 129, 114, 101, 118, 128, 132, 114, 125, 138, 131, 121, 117, 115, 127, 130, 133, 112, 130, 123, 131, 132, 133, 124, 126, 145, 125, 128, 116, 126, 109, 115, 141, 139, 122, 136, 132, 136, 126, 129, 126, 120, 110, 122, 128, 127, 128, 143, 138, 128, 119, 127, 133, 109, 111, 133, 117, 126, 130, 124, 135, 109, 109, 120, 125, 137, 124, 126, 150, 125, 133, 117, 132, 122, 139, 125, 107, 113, 117, 117, 122, 126, 132, 130, 141, 117, 123, 123, 133, 110, 115, 117, 128, 137, 127, 125, 138, 139, 148, 127, 117, 128, 128, 118, 113, 129, 111, 112, 118, 124, 115, 148, 139, 110, 112, 127, 126, 128, 125, 106, 126, 133, 118, 127, 127, 136, 122, 124, 124, 101, 143, 123, 105, 127, 129, 119, 133, 128, 129, 127, 138, 123, 131, 128, 123, 93, 115, 122, 131, 122, 127, 134, 120, 124, 129, 123, 133, 125, 104, 132, 128, 117, 114, 122, 116, 103, 132, 110, 100, 121, 130, 129, 119, 114, 145, 129, 128, 139, 116, 123, 115, 121, 124, 97, 143, 120, 123, 129, 131, 122, 139, 128, 128, 119, 126, 122, 101, 125, 152, 110, 133, 111, 133, 116, 126, 126, 120, 123, 135, 125, 120, 113, 130, 124, 115, 120, 114, 122, 131, 122, 121, 122, 133, 117, 132, 121, 133, 126, 125, 123, 108, 130, 127, 125, 125, 119, 119, 124, 114, 138, 130, 126, 131, 135, 140, 122, 124, 129, 139, 113, 130, 144, 124, 127, 134, 121, 131, 130, 113, 134, 118, 132, 138, 128, 125, 125, 120, 136, 125, 128, 127, 111, 127, 141, 134, 129, 115, 110, 134, 137, 125, 126, 114, 107, 108, 123, 133, 127, 130, 113, 140, 127, 123, 141, 139, 126, 142, 118, 135, 124, 126, 125, 123, 132, 140, 129, 141, 121, 125, 130, 138, 136, 135, 113, 115, 135, 119, 123, 117, 117, 131, 132, 125, 115, 137, 136, 124, 112, 126, 124, 122, 113, 111, 125, 134, 127, 128, 138, 115, 128, 132, 130, 129, 127, 138, 149, 139, 120, 130, 128, 105, 137, 145, 156, 115, 114, 122, 120, 129, 121, 110, 118, 134, 123, 117, 131, 128, 127, 153, 148, 112, 146, 131, 127, 121, 136, 127, 114, 124, 136, 119, 108, 105, 109, 126, 137, 125, 126, 116, 129, 127, 133, 131, 147, 121, 123, 126, 138, 126, 132, 129, 114, 123, 132, 152, 138, 104, 114, 122, 147, 132, 128, 116, 121, 127, 130, 129, 143, 118, 130, 125, 101, 122, 130, 126, 123, 125, 131, 114, 153, 126, 106, 116, 118, 136, 138, 113, 111, 98, 130, 133, 141, 113, 131, 121, 126, 134, 122, 131, 116, 117, 120, 114, 126, 128, 136, 120, 137, 139, 112, 113, 145, 123, 121, 134, 124, 132, 120, 130, 146, 126, 136, 116, 110, 128, 128, 127, 129, 117, 139, 141, 122, 127, 112, 114, 123, 132, 120, 136, 126, 122, 119, 131, 129, 146, 145, 134, 112, 119, 132, 111, 122, 114, 128, 132, 120, 117, 120, 135, 141, 121, 137, 122, 116, 129, 121, 115, 144, 126, 129, 118, 122, 128, 117, 124, 136, 123, 88, 129, 113, 117, 125, 120, 120, 121, 129, 124, 114, 119, 141, 146, 122, 122, 122, 139, 133, 121, 126, 132, 124, 137, 132, 116, 125, 122, 126, 132, 131, 121, 121, 123, 138, 130, 117, 131, 148, 123, 105, 127, 127, 116, 141, 120, 123, 132, 148, 125, 120, 123, 122, 134, 113, 126, 122, 113, 129, 128, 133, 133, 112, 131, 108, 109, 122, 130, 132, 120, 140, 134, 111, 134, 129, 105, 148, 119, 125, 122, 133, 130, 137, 124, 146, 127, 138, 127, 132, 133, 128, 143, 125, 135, 127, 102, 126, 120, 117, 124, 129, 137, 131, 115, 126, 115, 121, 147, 128, 125, 131, 124, 131, 121, 119, 110, 125, 133, 114, 136, 125, 130, 125, 121, 132, 132, 132, 114, 124, 157, 129, 121, 111, 120, 127, 113, 131, 127, 114, 128, 135, 119, 120, 119, 135, 129, 131, 137, 115, 115, 124, 136, 125, 122, 117, 111, 104, 125, 113, 139, 142, 131, 132, 122, 137, 131, 132, 123, 123, 125, 131, 133, 110, 116, 133, 133, 132, 126, 111, 133, 109, 124, 124, 126, 126, 125, 114, 136, 118, 124, 131, 126, 125, 119, 124, 120, 137, 121, 114, 120, 109, 132, 134, 134, 118, 115, 128, 110, 127, 128, 135, 109, 129, 124, 119, 128, 114, 136, 129, 124, 123, 133, 125, 119, 123, 124, 124, 116, 123, 102, 119, 109, 130, 112, 121, 119, 117, 127, 139, 133, 132, 122, 125, 117, 124, 119, 117, 128, 127, 131, 124, 113, 138, 129, 125, 129, 119, 126, 119, 119, 129, 135, 122, 136, 146, 122, 124, 127, 125, 142, 131, 118, 134, 121, 126, 116, 123, 109, 125, 142, 132, 150, 132, 133, 130, 123, 140, 118, 123, 120, 121, 142, 121, 113, 110, 102, 143, 118, 118, 127, 114, 113, 138, 134, 112, 130, 125, 108, 117, 114, 116, 131, 119, 143, 125, 117, 108, 118, 130, 130, 124, 123, 115, 111, 131, 139, 116, 129, 119, 119, 129, 118, 132, 110, 121, 126, 115, 126, 126, 145, 130, 123, 135, 122, 118, 127, 128, 121, 121, 130, 116, 115, 121, 133, 134, 111, 116, 135, 136, 116, 128, 146, 134, 132, 131, 132, 136, 136, 129, 112, 127, 125, 125, 126, 125, 143, 135, 114, 136, 128, 126, 124, 108, 134, 120, 110, 125, 134, 120, 123, 120, 119, 113, 123, 135, 124, 123, 117, 112, 130, 116, 108, 116, 123, 127, 119, 141, 106, 126, 121, 98, 117, 136, 113, 140, 131, 134, 124, 112, 123, 140, 127, 136, 131, 120, 113, 141, 125, 123, 138, 134, 119, 119, 119, 134, 135, 121, 133, 134, 129, 129, 136, 122, 128, 144, 129, 124, 131, 133, 107, 134, 132, 114, 159, 123, 117, 108, 146, 136, 118, 105, 127, 113, 122, 120, 130, 121, 132, 138, 136, 110, 102, 118, 114, 120, 118, 120, 117, 127, 143, 130, 150, 132, 125, 125, 127, 114, 131, 124, 110, 118, 107, 120, 115, 141, 124, 129, 129, 112, 117, 120, 128, 130, 135, 132, 111, 129, 121, 125, 125, 116, 121, 146, 134, 118, 127, 121, 110, 119, 120, 127, 141, 120, 117, 115, 108, 117, 109, 117, 114, 130, 133, 140, 119, 135, 125, 120, 137, 116, 135, 124, 137, 125, 124, 121, 126, 116, 122, 124, 132, 117, 120, 142, 126, 121, 112, 124, 134, 132, 109, 119, 126, 101, 139, 108, 131, 130, 113, 126, 128, 129, 141, 135, 114, 132, 136, 140, 127, 126, 144, 130, 110, 126, 145, 129, 126, 132, 131, 130, 124, 120, 109, 129, 131, 125, 145, 118, 125, 122, 123, 120, 140, 116, 115, 120, 124, 123, 133, 127, 139, 130, 117, 112, 127, 115, 107, 138, 129, 116, 115, 133, 119, 130, 127, 126, 134, 136, 111, 136, 131, 135, 136, 129, 121, 126, 107, 120, 128, 127, 126, 127, 112, 135, 131, 133, 130, 124, 120, 127, 123, 120, 139, 106, 102, 124, 126, 134, 132, 128, 120, 126, 131, 134, 117, 134, 121, 114, 111, 113, 154, 124, 149, 111, 133, 117, 124, 123, 121, 126, 128, 128, 124, 122, 129, 119, 114, 124, 139, 120, 102, 131, 109, 124, 115, 151, 135, 121, 130, 124, 147, 126, 127, 134, 134, 127, 127, 136, 115, 130, 131, 126, 140, 124, 118, 114, 128, 113, 122, 118, 125, 115, 131, 116, 117, 120, 117, 131, 133, 136, 116, 121, 135, 109, 101, 115, 129, 123, 119, 118, 129, 135, 137, 131, 133, 134, 137, 136, 112, 147, 151, 136, 128, 123, 147, 111, 109, 135, 117, 130, 146, 121, 114, 123, 129, 131, 133, 127, 128, 119, 117, 117, 120, 131, 129, 131, 127, 124, 120, 152, 146, 120, 132, 121, 120, 118, 124, 141, 119, 116, 109, 136, 118, 95, 125, 138, 110, 131, 138, 126, 127, 127, 117, 123, 119, 125, 121, 110, 118, 133, 139, 133, 133, 132, 126, 107, 136, 116, 127, 130, 143, 106, 120, 112, 133, 135, 115, 148, 130, 127, 130, 129, 133, 121, 123, 131, 144, 115, 142, 133, 127, 123, 125, 118, 103, 140, 133, 114, 117, 137, 132, 134, 126, 123, 135, 142, 119, 115, 108, 120, 127, 127, 120, 115, 125, 132, 132, 134, 123, 132, 124, 127, 118, 135, 136, 129, 115, 144, 141, 109, 128, 128, 131, 124, 118, 127, 108, 139, 121, 118, 122, 121, 133, 125, 115, 123, 126, 118, 125, 127, 127, 130, 132, 144, 143, 125, 127, 97, 124, 120, 120, 131, 139, 135, 137, 136, 126, 118, 141, 126, 128, 124, 136, 122, 105, 103, 150, 126, 119, 133, 129, 125, 123, 129, 122, 138, 131, 132, 135, 139, 121, 124, 130, 112, 128, 121, 105, 137, 135, 113, 140, 131, 132, 116, 130, 138, 124, 120, 116, 117, 121, 134, 130, 96, 142, 117, 129, 127, 122, 138, 119, 122, 136, 141, 130, 138, 124, 125, 110, 127, 130, 126, 140, 106, 121, 117, 119, 133, 130, 125, 125, 126, 121, 126, 110, 115, 105, 121, 120, 137, 132, 129, 139, 104, 132, 127, 138, 132, 116, 126, 135, 115, 99, 123, 125, 115, 113, 137, 118, 135, 139, 129, 117, 113, 114, 118, 122, 118, 145, 118, 130, 115, 139, 112, 125, 122, 124, 124, 127, 127, 115, 132, 143, 110, 108, 133, 122, 130, 126, 113, 137, 117, 122, 125, 129, 147, 134, 127, 105, 151, 132, 129, 115, 106, 136, 120, 131, 123, 129, 125, 112, 123, 109, 142, 116, 132, 131, 113, 139, 145, 138, 130, 128, 120, 123, 133, 151, 127, 128, 135, 114, 126, 121, 127, 128, 114, 130, 120, 142, 122, 116, 150, 117, 131, 112, 138, 125, 116, 126, 123, 126, 136, 134, 133, 124, 140, 130, 147, 104, 117, 122, 126, 134, 130, 130, 118, 106, 117, 115, 124, 122, 125, 126, 114, 120, 137, 132, 129, 134, 119, 114, 144, 141, 101, 109, 145, 131, 129, 114, 110, 132, 135, 125, 123, 129, 129, 125, 139, 131, 108, 128, 137, 122, 134, 126, 128, 127, 138, 117, 126, 113, 124, 138, 119, 115, 132, 134, 116, 127, 124, 136, 138, 124, 125, 114, 132, 111, 139, 131, 110, 140, 128, 116, 118, 123, 113, 124, 128, 134, 119, 127, 123, 125, 104, 118, 133, 118, 106, 115, 126, 113, 138, 119, 133, 144, 118, 130, 134, 123, 95, 150, 110, 115, 104, 124, 142, 124, 125, 137, 99, 128, 122, 126, 131, 129, 125, 124, 133, 133, 138, 122, 152, 131, 129, 116, 126, 120, 124, 115, 133, 125, 126, 120, 133, 129, 111, 119, 134, 132, 135, 129, 134, 132, 114, 102, 120, 116, 134, 141, 131, 142, 132, 137, 114, 136, 129, 123, 111, 106, 113, 124, 115, 147, 146, 120, 118, 135, 124, 120, 112, 115, 136, 99, 129, 142, 100, 134, 106, 111, 141, 131, 128, 118, 134, 107, 122, 121, 123, 120, 125, 117, 121, 132, 108, 125, 109, 128, 132, 125, 133, 120, 133, 130, 138, 130, 133, 128, 131, 107, 127, 135, 119, 135, 119, 131, 131, 119, 127, 112, 132, 130, 121, 114, 128, 149, 110, 129, 131, 127, 124, 105, 132, 131, 109, 116, 135, 136, 132, 122, 121, 133, 143, 127, 120, 145, 116, 126, 133, 137, 124, 138, 117, 132, 134, 119, 133, 129, 109, 111, 124, 120, 127, 130, 119, 127, 138, 116, 129, 135, 138, 116, 114, 115, 125, 130, 117, 113, 105, 125, 121, 127, 104, 112, 107, 133, 124, 113, 129, 130, 114, 139, 121, 136, 133, 135, 107, 127, 137, 140, 105, 115, 110, 118, 133, 114, 122, 121, 136, 139, 104, 115, 127, 123, 110, 145, 115, 125, 123, 131, 120, 125, 133, 147, 123, 137, 131, 138, 123, 141, 132, 137, 115, 127, 125, 125, 136, 107, 125, 116, 120, 117, 121, 125, 124, 115, 138, 123, 116, 128, 148, 129, 114, 110, 115, 124, 130, 111, 129, 116, 130, 125, 133, 124, 122, 120, 128, 127, 129, 133, 130, 120, 129, 137, 122, 129, 143, 129, 121, 133, 131, 132, 118, 116, 131, 118, 124, 132, 124, 134, 143, 126, 132, 143, 116, 108, 113, 129, 129, 123, 112, 164, 121, 124, 137, 137, 140, 144, 136, 121, 148, 133, 139, 141, 114, 125, 123, 132, 119, 130, 134, 140, 127, 116, 118, 128, 118, 126, 125, 132, 129, 114, 137, 124, 126, 132, 134, 120, 132, 132, 124, 131, 137, 131, 117, 118, 110, 111, 128, 137, 107, 123, 116, 137, 134, 161, 120, 123, 140, 127, 133, 126, 133, 143, 109, 122, 130, 134, 133, 132, 136, 127, 130, 130, 132, 125, 117, 141, 137, 116, 128, 129, 114, 121, 127, 122, 147, 142, 111, 128, 121, 115, 125, 110, 129, 105, 116, 117, 128, 120, 105, 130, 151, 127, 122, 122, 145, 131, 125, 115, 112, 107, 120, 129, 127, 128, 107, 113, 124, 129, 138, 131, 140, 105, 126, 131, 127, 121, 123, 113, 116, 128, 123, 134, 128, 125, 122, 136, 123, 128, 116, 137, 130, 133, 138, 147, 132, 120, 122, 131, 149, 114, 110, 158, 147, 115, 128, 130, 137, 122, 150, 127, 106, 133, 119, 116, 127, 115, 120, 118, 145, 132, 112, 153, 109, 142, 124, 127, 128, 120, 129, 140, 103, 135, 126, 136, 114, 122, 110, 118, 122, 129, 120, 118, 121, 136, 136, 142, 143, 126, 121, 141, 114, 135, 149, 150, 128, 127, 105, 123, 118, 122, 126, 122, 122, 117, 131, 126, 122, 118, 115, 122, 134, 118, 135, 123, 123, 116, 108, 131, 135, 116, 120, 127, 135, 133, 119, 127, 107, 132, 129, 125, 118, 117, 148, 124, 125, 147, 124, 135, 132, 119, 139, 123, 124, 132, 124, 123, 105, 137, 123, 131, 131, 126, 120, 119, 127, 137, 128, 129, 129, 119, 152, 141, 135, 116, 135, 112, 123, 136, 114, 136, 121, 119, 134, 138, 122, 127, 131, 133, 129, 138, 130, 126, 130, 131, 126, 146, 138, 114, 113, 132, 116, 131, 110, 133, 116, 135, 120, 124, 121, 138, 119, 136, 127, 127, 123, 128, 131, 121, 141, 125, 130, 123, 131, 124, 127, 139, 123, 123, 108, 125, 122, 123, 140, 120, 111, 142, 122, 132, 128, 112, 114, 117, 142, 115, 116, 117, 131, 118, 122, 122, 133, 133, 117, 114, 130, 130, 122, 114, 122, 134, 123, 126, 113, 118, 111, 105, 128, 106, 119, 128, 132, 139, 129, 128, 128, 121, 136, 103, 130, 112, 121, 104, 129, 114, 123, 126, 131, 128, 133, 127, 127, 135, 135, 141, 126, 113, 129, 119, 128, 131, 147, 117, 131, 140, 115, 109, 115, 114, 123, 120, 133, 108, 119, 129, 127, 117, 130, 109, 126, 127, 137, 130, 116, 127, 114, 120, 118, 126, 116, 124, 124, 120, 133, 140, 110, 119, 140, 123, 136, 129, 124, 138, 106, 101, 120, 137, 113, 129, 122, 108, 123, 136, 122, 152, 123, 112, 142, 109, 128, 112, 130, 149, 144, 125, 122, 142, 131, 122, 119, 122, 126, 127, 127, 146, 133, 134, 126, 148, 114, 139, 125, 110, 140, 125, 127, 101, 131, 123, 117, 121, 143, 132, 130, 157, 124, 126, 112, 143, 115, 118, 123, 142, 138, 139, 128, 120, 131, 133, 115, 140, 137, 135, 134, 135, 121, 136, 114, 127, 102, 126, 115, 114, 116, 137, 121, 133, 103, 117, 145, 125, 115, 131, 124, 140, 121, 112, 121, 118, 127, 135, 117, 130, 116, 115, 136, 135, 104, 132, 134, 124, 135, 144, 136, 135, 138, 133, 114, 126, 139, 137, 126, 113, 106, 129, 144, 124, 122, 147, 131, 124, 118, 134, 127, 131, 116, 139, 126, 108, 123, 123, 122, 128, 132, 129, 137, 118, 134, 123, 112, 126, 129, 131, 127, 113, 133, 126, 131, 115, 116, 128, 118, 126, 117, 109, 133, 107, 125, 118, 128, 126, 128, 138, 111, 140, 134, 117, 131, 145, 124, 124, 107, 132, 115, 117, 121, 127, 111, 118, 124, 127, 131, 134, 153, 147, 127, 110, 115, 130, 112, 114, 138, 129, 125, 126, 124, 126, 142, 112, 118, 126, 130, 120, 116, 108, 156, 131, 118, 122, 123, 139, 129, 124, 118, 121, 126, 130, 136, 123, 124, 125, 125, 132, 141, 120, 131, 135, 125, 131, 126, 124, 133, 124, 138, 117, 127, 140, 116, 132, 127, 107, 135, 130, 129, 151, 129, 124, 126, 118, 100, 138, 128, 117, 126, 127, 125, 121, 135, 120, 97, 144, 125, 136, 124, 138, 129, 122, 144, 115, 105, 131, 132, 140, 125, 112, 124, 135, 110, 130, 129, 120, 139, 128, 123, 144, 129, 141, 129, 114, 138, 134, 113, 150, 144, 131, 129, 127, 132, 132, 129, 112, 136, 136, 135, 137, 111, 114, 116, 122, 121, 124, 133, 106, 137, 140, 119, 124, 121, 126, 116, 106, 135, 126, 118, 113, 125, 112, 123, 126, 123, 136, 122, 118, 134, 127, 117, 140, 145, 126, 138, 117, 133, 122, 121, 137, 126, 123, 123, 124, 128, 133, 117, 133, 126, 121, 115, 127, 133, 129, 123, 115, 128, 121, 129, 143, 128, 127, 116, 121, 136, 129, 131, 125, 119, 123, 144, 133, 126, 122, 127, 135, 124, 117, 133, 129, 116, 145, 130, 122, 118, 117, 121, 121, 124, 135, 145, 139, 140, 123, 119, 120, 128, 112, 117, 120, 125, 132, 126, 117, 131, 131, 130, 109, 135, 131, 127, 123, 139, 118, 126, 124, 107, 127, 127, 116, 147, 130, 85, 125, 125, 131, 123, 114, 106, 139, 120, 125, 135, 128, 117, 134, 142, 120, 131, 118, 131, 109, 125, 131, 125, 133, 120, 143, 124, 132, 117, 116, 111, 114, 130, 138, 115, 110, 110, 133, 113, 124, 145, 132, 124, 104, 120, 134, 107, 119, 121, 136, 131, 131, 120, 144, 141, 122, 124, 113, 155, 121, 125, 129, 141, 129, 124, 121, 129, 133, 132, 135, 116, 119, 122, 135, 122, 122, 130, 127, 115, 138, 114, 133, 117, 131, 119, 134, 129, 115, 121, 125, 118, 135, 132, 130, 99, 145, 122, 132, 126, 120, 107, 137, 122, 119, 123, 151, 122, 122, 135, 126, 114, 112, 134, 122, 130, 124, 137, 137, 133, 144, 135, 113, 140, 118, 115, 136, 114, 129, 142, 134, 122, 130, 120, 119, 129, 117, 116, 118, 104, 112, 121, 117, 137, 108, 140, 123, 115, 125, 101, 114, 129, 130, 123, 113, 128, 124, 135, 126, 120, 120, 107, 130, 134, 114, 146, 120, 125, 121, 126, 118, 130, 127, 143, 107, 124, 141, 136, 129, 125, 126, 136, 134, 112, 122, 139, 126, 117, 128, 136, 128, 124, 143, 137, 121, 131, 148, 121, 125, 113, 122, 126, 151, 134, 125, 140, 138, 96, 135, 123, 134, 130, 133, 122, 132, 140, 128, 114, 128, 129, 132, 115, 132, 125, 134, 126, 123, 137, 143, 121, 124, 135, 126, 125, 131, 112, 131, 129, 143, 124, 127, 122, 118, 86, 139, 142, 129, 122, 109, 116, 122, 141, 131, 129, 111, 114, 104, 125, 129, 125, 123, 126, 134, 134, 125, 124, 123, 138, 123, 131, 137, 127, 134, 134, 136, 144, 112, 119, 113, 130, 130, 120, 122, 125, 129, 132, 137, 131, 124, 136, 97, 104, 130, 114, 112, 122, 147, 125, 114, 129, 117, 155, 126, 126, 135, 109, 127, 110, 118, 112, 123, 114, 126, 121, 136, 148, 128, 118, 120, 119, 112, 120, 120, 126, 127, 124, 121, 138, 125, 105, 122, 136, 116, 110, 119, 135, 131, 101, 140, 104, 139, 125, 124, 139, 119, 118, 128, 112, 134, 135, 124, 139, 132, 118, 123, 136, 109, 119, 136, 128, 140, 117, 118, 133, 146, 132, 126, 141, 113, 108, 137, 136, 143, 141, 110, 119, 116, 113, 134, 117, 129, 131, 134, 107, 123, 133, 130, 112, 112, 119, 133, 126, 106, 120, 105, 131, 119, 127, 100, 126, 116, 123, 125, 115, 141, 106, 131, 110, 125, 122, 129, 111, 131, 112, 118, 125, 122, 126, 113, 121, 148, 125, 149, 109, 117, 130, 124, 113, 129, 115, 147, 113, 136, 132, 109, 150, 114, 134, 119, 114, 128, 116, 137, 130, 135, 124, 130, 124, 126, 123, 116, 109, 126, 122, 124, 123, 115, 124, 128, 135, 128, 131, 137, 121, 130, 138, 119, 122, 100, 121, 139, 112, 126, 143, 123, 96, 111, 130, 120, 117, 139, 136, 128, 128, 123, 111, 128, 110, 119, 125, 129, 123, 116, 133, 130, 132, 133, 135, 138, 136, 142, 135, 118, 118, 120, 131, 148, 127, 132, 126, 119, 143, 125, 131, 117, 120, 126, 117, 125, 131, 130, 127, 123, 119, 123, 133, 139, 138, 118, 130, 126, 138, 116, 112, 114, 126, 126, 128, 127, 131, 103, 161, 127, 132, 127, 140, 123, 122, 139, 135, 140, 121, 124, 130, 135, 127, 112, 120, 129, 113, 120, 114, 129, 127, 121, 129, 140, 121, 111, 134, 123, 131, 107, 119, 123, 128, 130, 124, 134, 115, 126, 131, 135, 128, 126, 138, 118, 137, 121, 117, 130, 103, 115, 128, 119, 110, 131, 132, 139, 120, 152, 124, 138, 136, 126, 116, 112, 127, 131, 122, 123, 135, 136, 125, 131, 117, 103, 125, 134, 134, 122, 131, 143, 122, 121, 132, 119, 121, 142, 121, 128, 120, 114, 110, 122, 129, 136, 116, 117, 126, 130, 123, 107, 112, 137, 133, 135, 137, 130, 118, 130, 110, 128, 118, 158, 117, 140, 116, 129, 134, 113, 128, 120, 118, 138, 137, 119, 112, 140, 152, 135, 109, 137, 125, 125, 114, 128, 117, 136, 138, 127, 113, 122, 129, 143, 132, 108, 127, 127, 102, 123, 133, 126, 124, 116, 137, 124, 123, 136, 121, 132, 123, 118, 138, 128, 121, 128, 123, 130, 134, 126, 117, 119, 118, 124, 130, 146, 108, 137, 113, 124, 98, 123, 121, 114, 141, 114, 126, 130, 121, 127, 112, 121, 106, 116, 120, 133, 135, 129, 131, 122, 124, 115, 123, 155, 131, 129, 117, 138, 123, 113, 133, 122, 123, 128, 118, 135, 136, 125, 122, 130, 122, 126, 135, 126, 127, 136, 134, 131, 103, 101, 122, 117, 132, 127, 124, 133, 141, 133, 125, 127, 133, 120, 128, 130, 132, 146, 129, 130, 121, 118, 119, 134, 138, 149, 104, 129, 117, 103, 131, 138, 114, 125, 124, 117, 127, 138, 119, 120, 116, 134, 111, 124, 153, 131, 118, 130, 141, 120, 143, 131, 141, 123, 110, 128, 127, 137, 113, 132, 143, 133, 129, 131, 120, 124, 112, 116, 112, 111, 117, 136, 119, 115, 130, 132, 113, 120, 136, 127, 130, 118, 143, 127, 120, 132, 121, 125, 140, 144, 127, 142, 101, 131, 123, 136, 127, 123, 109, 124, 116, 135, 117, 132, 123, 119, 131, 106, 111, 121, 114, 101, 127, 133, 144, 113, 134, 113, 140, 128, 116, 117, 133, 115, 115, 114, 146, 153, 137, 105, 128, 143, 126, 124, 97, 128, 124, 132, 130, 120, 100, 136, 117, 114, 125, 142, 109, 117, 137, 125, 128, 134, 120, 114, 102, 119, 114, 125, 121, 119, 114, 125, 128, 121, 127, 134, 137, 118, 116, 115, 141, 109, 125, 121, 139, 141, 124, 120, 112, 123, 120, 159, 118, 122, 137, 115, 123, 118, 125, 125, 129, 123, 142, 139, 121, 122, 110, 120, 144, 131, 129, 128, 114, 130, 135, 138, 114, 133, 124, 107, 112, 124, 141, 120, 126, 130, 133, 123, 128, 130, 133, 119, 141, 134, 123, 122, 145, 126, 132, 134, 155, 121, 119, 116, 137, 123, 125, 122, 136, 139, 120, 126, 129, 132, 125, 95, 141, 133, 144, 149, 124, 125, 126, 116, 112, 140, 131, 136, 133, 127, 137, 119, 98, 132, 120, 148, 114, 116, 115, 124, 151, 119, 141, 127, 138, 115, 124, 115, 146, 122, 123, 127, 147, 153, 127, 138, 141, 168, 127, 126, 127, 119, 150, 115, 121, 98, 142, 131, 147, 106, 114, 109, 126, 116, 126, 120, 136, 111, 113, 125, 136, 126, 128, 129, 126, 125, 126, 122, 129, 127, 127, 163, 137, 136, 128, 114, 128, 127, 144, 135, 113, 125, 115, 132, 135, 119, 130, 131, 140, 123, 124, 120, 118, 136, 130, 138, 122, 132, 134, 135, 125, 134, 126, 115, 137, 129, 114, 140, 111, 123, 110, 122, 129, 111, 116, 122, 112, 143, 144, 112, 127, 133, 127, 132, 114, 146, 130, 106, 118, 127, 119, 140, 145, 137, 128, 136, 143, 125, 118, 135, 121, 136, 116, 128, 110, 140, 124, 136, 128, 127, 147, 117, 146, 149, 109, 134, 128, 135, 116, 126, 138, 141, 104, 142, 139, 112, 113, 126, 122, 148, 127, 125, 130, 116, 131, 114, 126, 128, 116, 124, 121, 132, 135, 119, 118, 137, 143, 115, 113, 127, 140, 154, 110, 114, 161, 131, 118, 134, 113, 111, 131, 141, 130, 160, 118, 99, 114, 115, 147, 89, 123, 123, 112, 108, 136, 131, 130, 109, 115, 130, 119, 141, 117, 106, 122, 123, 128, 131, 123, 126, 127, 119, 121, 134, 127, 122, 110, 128, 131, 126, 108, 118, 112, 101, 122, 124, 131, 114, 120, 121, 122, 150, 105, 121, 94, 118, 129, 134, 116, 121, 141, 121, 125, 120, 128, 123, 125, 121, 122, 128, 133, 133, 130, 114, 131, 141, 127, 127, 136, 127, 129, 115, 112, 131, 113, 110, 124, 112, 130, 133, 118, 119, 125, 137, 119, 90, 138, 119, 127, 123, 118, 109, 123, 112, 112, 124, 126, 125, 96, 151, 120, 130, 109, 116, 104, 124, 142, 119, 137, 130, 156, 119, 138, 134, 136, 125, 113, 137, 122, 112, 128, 138, 103, 136, 117, 112, 118, 133, 132, 119, 127, 117, 133, 139, 124, 156, 157, 123, 97, 123, 130, 119, 115, 127, 133, 136, 109, 122, 131, 131, 132, 141, 137, 114, 130, 128, 135, 122, 127, 116, 114, 155, 119, 117, 132, 115, 122, 122, 134, 89, 83, 130, 122, 141, 128, 106, 145, 114, 114, 127, 113, 124, 143, 118, 129, 133, 125, 119, 98, 121, 119, 119, 138, 121, 120, 124, 147, 108, 119, 127, 153, 132, 109, 107, 131, 131, 134, 117, 125, 126, 138, 115, 128, 124, 134, 137, 129, 136, 123, 138, 146, 132, 130, 116, 137, 100, 135, 125, 125, 123, 142, 144, 136, 119, 121, 137, 116, 112, 129, 114, 145, 137, 137, 114, 120, 112, 138, 137, 125, 122, 110, 131, 130, 98, 130, 113, 144, 101, 145, 124, 138, 179, 151, 116, 106, 132, 115, 120, 103, 123, 102, 152, 117, 101, 128, 134, 123, 122, 122, 128, 129, 125, 114, 126, 145, 119, 126, 118, 126, 122, 145, 161, 125, 136, 118, 127, 113, 123, 115, 111, 116, 142, 107, 121, 119, 151, 137, 103, 131, 123, 114, 132, 120, 109, 111, 132, 125, 119, 132, 154, 119, 141, 110, 122, 120, 135, 139, 121, 119, 121, 117, 142, 121, 102, 115, 129, 145, 135, 124, 124, 131, 133, 129, 141, 121, 116, 119, 137, 149, 135, 121, 132, 149, 111, 148, 128, 121, 127, 134, 122, 121, 120, 138, 107, 127, 115, 129, 115, 121, 113, 115, 134, 113, 159, 129, 97, 133, 133, 115, 143, 110, 114, 142, 120, 128, 130, 135, 115, 138, 135, 114, 139, 127, 121, 127, 126, 115, 126, 117, 121, 125, 121, 120, 127, 134, 125, 117, 134, 97, 113, 131, 119, 119, 106, 106, 116, 130, 125, 112, 140, 131, 149, 118, 125, 126, 131, 134, 119, 119, 111, 110, 120, 110, 119, 154, 140, 112, 139, 122, 106, 143, 111, 145, 109, 104, 132, 130, 113, 137, 122, 123, 131, 123, 122, 127, 133, 130, 128, 123, 124, 136, 116, 137, 134, 109, 141, 134, 142, 107, 139, 108, 126, 124, 125, 122, 116, 135, 134, 121, 110, 142, 119, 151, 115, 119, 119, 133, 116, 118, 142, 122, 119, 124, 106, 124, 109, 110, 125, 109, 144, 135, 127, 105, 129, 128, 130, 129, 137, 109, 116, 111, 112, 95, 120, 123, 108, 121, 107, 137, 108, 132, 124, 111, 130, 136, 115, 146, 127, 134, 136, 116, 112, 127, 116, 140, 109, 114, 111, 120, 127, 127, 120, 123, 115, 132, 107, 120, 111, 110, 103, 122, 107, 142, 118, 138, 99, 102, 137, 121, 87, 111, 120, 104, 128, 136, 130, 119, 131, 111, 114, 121, 108, 118, 121, 117, 115, 122, 133, 107, 123, 115, 126, 133, 135, 128, 131, 126, 114, 124, 123, 128, 130, 147, 129, 108, 125, 104, 133, 103, 113, 154, 120, 115, 126, 97, 127, 125, 123, 117, 124, 124, 123, 129, 125, 120, 123, 142, 138, 132, 107, 107, 114, 117, 139, 142, 155, 134, 117, 135, 127, 106, 130, 132, 120, 125, 116, 101, 126, 139, 108, 129, 141, 117, 125, 123, 147, 116, 130, 140, 125, 143, 125, 130, 122, 124, 121, 119, 130, 116, 115, 117, 129, 152, 123, 156, 126, 139, 108, 133, 132, 125, 119, 135, 150, 154, 138, 112, 125, 133, 127, 118, 120, 137, 119, 112, 117, 107, 128, 117, 124, 127, 151, 134, 112, 128, 128, 137, 123, 125, 138, 128, 127, 119, 114, 122, 127, 119, 114, 122, 127, 129, 128, 155, 131, 128, 129, 121, 126, 124, 136, 121, 118, 132, 135, 121, 115, 115, 117, 133, 113, 133, 125, 124, 124, 133, 133, 127, 117, 137, 125, 116, 134, 138, 128, 118, 132, 133, 124, 112, 128, 132, 129, 113, 110, 125, 128, 116, 130, 117, 139, 120, 121, 122, 133, 130, 135, 115, 114, 114, 132, 124, 127, 136, 124, 125, 109, 131, 118, 123, 112, 132, 116, 114, 136, 131, 127, 138, 117, 120, 110, 144, 131, 124, 102, 135, 115, 123, 122, 126, 127, 108, 125, 122, 120, 131, 121, 120, 116, 123, 110, 123, 130, 120, 143, 124, 106, 131, 115, 122, 126, 132, 142, 136, 133, 114, 133, 131, 144, 113, 115, 127, 148, 112, 127, 120, 120, 102, 132, 122, 115, 113, 117, 116, 110, 119, 142, 132, 131, 137, 125, 113, 113, 140, 117, 103, 113, 109, 138, 150, 149, 121, 120, 135, 132, 129, 131, 133, 130, 111, 123, 119, 140, 128, 135, 121, 133, 117, 144, 123, 117, 106, 123, 134, 141, 136, 132, 129, 130, 128, 135, 129, 132, 141, 132, 134, 126, 124, 117, 138, 130, 129, 143, 133, 137, 119, 137, 120, 113, 133, 127, 122, 119, 115, 129, 113, 126, 123, 116, 142, 114, 112, 115, 133, 145, 123, 123, 130, 130, 101, 129, 129, 125, 112, 106, 123, 123, 132, 131, 117, 147, 124, 120, 146, 114, 126, 128, 127, 131, 121, 130, 133, 120, 116, 130, 137, 120, 130, 126, 128, 121, 132, 134, 126, 114, 117, 117, 120, 143, 133, 115, 131, 134, 109, 143, 103, 115, 100, 146, 127, 121, 109, 115, 137, 106, 131, 125, 120, 118, 125, 120, 126, 131, 125, 116, 128, 126, 132, 127, 128, 115, 118, 131, 123, 114, 113, 124, 114, 114, 125, 131, 121, 138, 129, 127, 133, 134, 132, 138, 120, 127, 115, 126, 126, 117, 125, 143, 144, 147, 125, 107, 131, 107, 141, 118, 118, 134, 132, 125, 128, 114, 129, 129, 123, 132, 120, 118, 127, 115, 107, 121, 122, 140, 109, 104, 142, 114, 121, 133, 117, 123, 104, 122, 123, 111, 139, 126, 120, 107, 118, 121, 131, 130, 131, 113, 130, 125, 114, 131, 131, 129, 122, 140, 117, 113, 121, 119, 132, 124, 125, 111, 126, 117, 129, 148, 134, 125, 118, 112, 124, 142, 134, 127, 132, 130, 107, 120, 130, 126, 142, 146, 121, 121, 142, 110, 121, 130, 124, 116, 116, 120, 131, 156, 118, 129, 110, 100, 112, 131, 124, 125, 135, 142, 137, 132, 128, 135, 141, 115, 141, 130, 118, 141, 127, 96, 113, 138, 142, 127, 123, 143, 126, 120, 120, 99, 125, 112, 128, 120, 123, 116, 113, 122, 133, 125, 137, 131, 123, 125, 136, 130, 124, 136, 132, 126, 121, 110, 128, 107, 125, 111, 115, 111, 130, 148, 112, 141, 120, 138, 118, 128, 128, 116, 127, 125, 116, 139, 115, 123, 133, 128, 126, 131, 130, 124, 123, 136, 128, 125, 122, 124, 130, 127, 122, 126, 122, 126, 128, 142, 134, 115, 117, 125, 136, 133, 129, 124, 107, 136, 113, 121, 114, 116, 118, 130, 128, 123, 174, 124, 122, 114, 129, 119, 142, 102, 137, 146, 105, 126, 139, 117, 134, 124, 130, 99, 116, 117, 118, 109, 113, 127, 122, 119, 116, 114, 139, 113, 134, 109, 122, 132, 106, 132, 120, 128, 112, 127, 113, 128, 144, 107, 132, 112, 112, 132, 115, 109, 137, 123, 138, 124, 131, 107, 124, 131, 123, 131, 93, 130, 130, 99, 115, 132, 131, 121, 125, 126, 122, 127, 128, 127, 115, 117, 121, 115, 132, 132, 139, 117, 132, 125, 116, 109, 111, 136, 132, 119, 133, 119, 118, 114, 117, 120, 132, 122, 117, 133, 131, 139, 127, 125, 125, 126, 120, 122, 123, 115, 131, 133, 125, 127, 141, 130, 118, 133, 119, 132, 121, 126, 128, 120, 124, 126, 113, 124, 129, 130, 126, 130, 124, 117, 125, 134, 125, 123, 137, 145, 125, 116, 138, 122, 132, 132, 132, 136, 141, 124, 125, 132, 139, 118, 139, 98, 130, 128, 131, 122, 120, 126, 130, 131, 112, 136, 138, 120, 131, 120, 124, 126, 118, 118, 116, 131, 136, 123, 131, 125, 114, 138, 124, 115, 116, 120, 140, 120, 103, 143, 107, 136, 122, 139, 139, 125, 122, 112, 119, 126, 124, 116, 119, 124, 130, 115, 131, 134, 120, 135, 124, 127, 142, 135, 120, 110, 135, 120, 139, 130, 134, 128, 108, 113, 136, 133, 125, 107, 131, 131, 109, 124, 130, 128, 114, 128, 139, 118, 131, 125, 128, 130, 133, 141, 138, 123, 114, 132, 123, 122, 114, 137, 139, 128, 140, 139, 116, 141, 133, 132, 109, 141, 115, 127, 125, 120, 125, 125, 120, 131, 104, 124, 117, 138, 122, 127, 145, 121, 129, 115, 147, 132, 123, 118, 126, 98, 140, 144, 112, 128, 121, 107, 136, 124, 117, 120, 126, 122, 132, 137, 110, 125, 116, 138, 123, 124, 121, 125, 131, 117, 126, 137, 116, 121, 139, 121, 127, 129, 128, 128, 119, 121, 126, 113, 115, 114, 124, 141, 127, 127, 126, 132, 122, 109, 134, 115, 122, 135, 126, 125, 132, 122, 135, 133, 132, 126, 106, 113, 125, 121, 119, 126, 129, 117, 130, 122, 133, 111, 121, 127, 123, 120, 121, 139, 113, 114, 108, 115, 159, 134, 131, 105, 120, 128, 135, 142, 129, 132, 124, 109, 125, 140, 131, 123, 127, 111, 121, 118, 125, 119, 114, 138, 130, 123, 132, 136, 119, 142, 120, 128, 122, 136, 137, 138, 134, 111, 125, 114, 129, 131, 118, 133, 124, 118, 128, 132, 122, 124, 120, 115, 141, 113, 138, 141, 120, 132, 128, 117, 121, 125, 118, 142, 136, 118, 116, 124, 132, 109, 123, 139, 128, 144, 111, 139, 128, 133, 106, 114, 137, 112, 122, 121, 115, 132, 128, 128, 112, 115, 121, 128, 121, 124, 139, 128, 110, 130, 121, 148, 110, 125, 138, 121, 125, 148, 134, 138, 123, 130, 132, 119, 118, 125, 142, 141, 119, 126, 135, 128, 126, 129, 125, 109, 121, 113, 112, 110, 124, 114, 130, 118, 147, 140, 129, 133, 122, 107, 132, 128, 106, 119, 136, 127, 121, 113, 122, 117, 140, 114, 117, 97, 109, 132, 131, 127, 138, 134, 120, 116, 123, 124, 113, 134, 124, 119, 128, 119, 125, 125, 123, 128, 133, 130, 124, 132, 126, 134, 120, 131, 119, 118, 128, 123, 125, 137, 128, 119, 127, 110, 131, 134, 127, 130, 125, 125, 127, 123, 115, 118, 126, 108, 138, 125, 136, 129, 133, 138, 117, 118, 154, 139, 126, 100, 138, 123, 118, 121, 125, 128, 122, 130, 117, 124, 123, 143, 133, 131, 125, 120, 133, 116, 130, 159, 131, 132, 130, 121, 119, 137, 125, 106, 125, 120, 156, 134, 127, 128, 138, 116, 97, 148, 129, 135, 135, 132, 135, 124, 121, 131, 120, 107, 117, 121, 116, 121, 115, 139, 131, 129, 137, 125, 116, 137, 135, 119, 110, 124, 122, 126, 132, 125, 123, 138, 133, 121, 123, 132, 141, 103, 128, 132, 110, 121, 134, 138, 124, 130, 121, 149, 112, 118, 93, 102, 137, 128, 128, 136, 148, 116, 120, 118, 125, 119, 131, 130, 126, 118, 129, 129, 118, 120, 128, 110, 110, 134, 141, 155, 124, 133, 125, 131, 132, 155, 119, 131, 112, 138, 138, 127, 111, 138, 107, 130, 122, 130, 139, 135, 127, 120, 106, 130, 144, 110, 119, 117, 140, 128, 134, 105, 120, 125, 132, 111, 134, 114, 124, 119, 119, 122, 132, 128, 110, 124, 132, 143, 132, 116, 119, 122, 122, 109, 115, 120, 114, 116, 134, 141, 118, 112, 133, 127, 115, 132, 117, 131, 156, 106, 120, 154, 136, 120, 129, 143, 128, 131, 121, 118, 115, 134, 130, 129, 124, 138, 121, 130, 130, 112, 119, 114, 127, 114, 114, 121, 128, 141, 128, 112, 124, 123, 147, 113, 121, 128, 112, 134, 118, 132, 115, 129, 127, 120, 127, 135, 113, 119, 137, 123, 111, 132, 137, 147, 120, 125, 143, 124, 149, 116, 117, 128, 127, 142, 127, 120, 97, 125, 130, 118, 123, 123, 129, 116, 139, 120, 116, 109, 130, 123, 125, 106, 132, 126, 127, 118, 129, 113, 115, 135, 139, 127, 142, 129, 126, 125, 150, 113, 123, 108, 119, 138, 114, 131, 118, 136, 131, 132, 141, 123, 123, 133, 121, 120, 132, 114, 109, 124, 139, 110, 122, 132, 127, 112, 123, 124, 121, 129, 130, 130, 125, 136, 118, 134, 125, 129, 126, 119, 127, 126, 120, 134, 126, 133, 137, 138, 121, 126, 112, 138, 122, 122, 132, 138, 125, 121, 158, 122, 128, 125, 124, 121, 103, 142, 140, 142, 136, 115, 139, 127, 115, 129, 122, 113, 128, 119, 115, 118, 140, 131, 112, 117, 112, 121, 128, 118, 125, 130, 131, 122, 126, 130, 130, 128, 128, 147, 138, 144, 113, 131, 146, 135, 125, 127, 123, 123, 132, 154, 117, 130, 109, 118, 103, 121, 119, 143, 134, 125, 94, 126, 124, 115, 131, 119, 129, 130, 124, 132, 112, 126, 138, 123, 133, 130, 109, 121, 139, 123, 135, 133, 108, 130, 129, 109, 105, 135, 118, 127, 116, 115, 120, 122, 130, 132, 133, 127, 127, 131, 133, 131, 113, 120, 118, 132, 111, 151, 132, 124, 123, 119, 120, 128, 134, 117, 132, 135, 117, 117, 108, 125, 123, 124, 125, 135, 140, 122, 139, 126, 135, 119, 148, 125, 123, 122, 116, 121, 130, 128, 154, 124, 121, 121, 138, 144, 115, 123, 145, 114, 136, 129, 128, 130, 109, 105, 122, 116, 116, 121, 115, 126, 132, 134, 133, 129, 133, 128, 131, 132, 128, 126, 124, 125, 116, 124, 136, 126, 127, 126, 129, 124, 133, 132, 138, 120, 133, 104, 133, 130, 129, 119, 121, 125, 112, 123, 117, 117, 120, 109, 119, 124, 134, 140, 130, 125, 142, 101, 140, 103, 124, 123, 133, 108, 120, 126, 113, 126, 149, 121, 110, 138, 131, 125, 128, 113, 115, 121, 120, 135, 135, 122, 121, 114, 119, 136, 119, 125, 113, 132, 136, 120, 125, 123, 135, 136, 132, 122, 129, 128, 125, 117, 112, 111, 113, 132, 130, 140, 121, 125, 105, 128, 124, 136, 122, 134, 143, 112, 132, 130, 130, 119, 130, 145, 132, 128, 121, 127, 116, 129, 109, 125, 128, 128, 125, 110, 137, 108, 142, 117, 125, 130, 125, 114, 115, 130, 130, 132, 126, 138, 117, 123, 124, 123, 110, 119, 122, 134, 125, 131, 115, 116, 127, 98, 136, 122, 125, 125, 116, 101, 132, 135, 132, 134, 130, 121, 134, 149, 139, 130, 120, 117, 114, 135, 119, 111, 121, 118, 123, 139, 121, 129, 134, 134, 131, 129, 128, 127, 126, 143, 122, 129, 136, 137, 125, 127, 122, 135, 136, 119, 130, 118, 140, 139, 125, 118, 124, 134, 128, 118, 136, 144, 131, 137, 140, 125, 131, 148, 111, 118, 119, 128, 115, 129, 127, 124, 131, 134, 124, 143, 114, 134, 128, 114, 133, 134, 126, 129, 115, 137, 128, 139, 106, 136, 147, 119, 119, 111, 112, 133, 142, 131, 124, 141, 139, 135, 138, 129, 145, 104, 129, 98, 116, 119, 118, 127, 116, 137, 125, 137, 122, 133, 120, 127, 121, 135, 143, 118, 121, 134, 132, 122, 126, 107, 134, 131, 115, 126, 127, 114, 126, 123, 145, 136, 111, 121, 136, 120, 121, 127, 138, 131, 112, 130, 131, 116, 147, 139, 123, 129, 112, 125, 124, 119, 110, 138, 120, 112, 144, 115, 124, 125, 120, 127, 135, 152, 121, 127, 135, 123, 128, 126, 117, 128, 120, 120, 134, 122, 126, 123, 134, 137, 125, 148, 127, 128, 129, 100, 113, 119, 131, 108, 127, 116, 131, 128, 123, 120, 124, 109, 137, 113, 126, 132, 123, 133, 135, 113, 132, 133, 127, 129, 114, 140, 124, 130, 141, 129, 139, 117, 104, 130, 126, 148, 126, 120, 137, 131, 141, 124, 116, 136, 122, 130, 117, 119, 124, 119, 133, 111, 123, 109, 132, 115, 113, 127, 117, 123, 137, 130, 126, 140, 131, 131, 139, 136, 107, 135, 125, 116, 130, 125, 121, 131, 122, 142, 126, 136, 130, 124, 111, 105, 119, 130, 122, 123, 125, 126, 113, 116, 126, 141, 118, 133, 141, 123, 108, 123, 127, 131, 133, 128, 128, 124, 126, 127, 116, 113, 123, 132, 123, 112, 126, 144, 122, 135, 126, 121, 119, 126, 123, 124, 131, 128, 117, 128, 115, 109, 137, 113, 121, 118, 129, 120, 110, 129, 122, 130, 114, 131, 109, 116, 127, 122, 108, 121, 121, 119, 131, 108, 121, 133, 128, 138, 119, 126, 120, 136, 112, 109, 130, 134, 144, 127, 120, 121, 132, 118, 137, 137, 133, 111, 112, 137, 119, 127, 129, 125, 114, 119, 135, 130, 132, 125, 120, 122, 133, 114, 134, 131, 117, 130, 121, 113, 131, 123, 127, 127, 129, 119, 126, 128, 120, 123, 118, 131, 127, 139, 122, 107, 125, 121, 128, 129, 140, 106, 118, 131, 122, 120, 141, 126, 120, 132, 131, 120, 109, 125, 130, 121, 133, 111, 119, 113, 139, 124, 122, 128, 104, 126, 132, 131, 129, 121, 138, 124, 132, 112, 127, 115, 116, 123, 116, 138, 129, 112, 120, 107, 115, 117, 134, 139, 118, 131, 120, 115, 114, 145, 119, 129, 133, 140, 120, 133, 130, 123, 125, 130, 128, 99, 125, 115, 116, 103, 134, 129, 135, 124, 126, 126, 108, 144, 135, 119, 112, 122, 126, 109, 127, 111, 123, 133, 125, 129, 124, 123, 132, 136, 129, 120, 120, 139, 122, 128, 144, 126, 107, 124, 127, 130, 116, 117, 124, 115, 100, 138, 112, 121, 126, 121, 127, 134, 117, 135, 118, 122, 111, 120, 107, 122, 129, 112, 104, 123, 126, 125, 115, 110, 125, 136, 121, 127, 132, 120, 130, 117, 131, 114, 130, 112, 118, 116, 130, 118, 136, 136, 133, 109, 130, 123, 112, 124, 132, 135, 120, 129, 121, 119, 120, 112, 132, 131, 108, 150, 134, 137, 118, 133, 130, 138, 130, 117, 134, 134, 120, 119, 130, 116, 129, 121, 127, 137, 111, 118, 105, 124, 122, 138, 124, 110, 133, 119, 146, 128, 138, 123, 131, 121, 103, 132, 118, 116, 124, 149, 117, 132, 129, 131, 124, 133, 115, 116, 140, 110, 108, 132, 140, 116, 120, 127, 127, 117, 115, 115, 122, 126, 128, 129, 112, 116, 131, 123, 125, 98, 137, 146, 121, 122, 112, 129, 149, 115, 111, 121, 108, 131, 131, 110, 134, 116, 119, 114, 139, 130, 137, 141, 134, 120, 124, 128, 125, 117, 120, 137, 124, 122, 135, 129, 121, 128, 119, 112, 118, 125, 125, 126, 129, 135, 122, 126, 109, 135, 126, 127, 125, 136, 108, 132, 124, 98, 120, 113, 124, 117, 160, 129, 130, 116, 140, 135, 121, 138, 103, 157, 140, 114, 126, 128, 107, 107, 133, 123, 126, 123, 121, 117, 141, 118, 130, 120, 124, 128, 125, 120, 137, 125, 133, 122, 121, 121, 112, 113, 124, 142, 114, 134, 114, 124, 144, 107, 122, 141, 118, 122, 124, 140, 145, 135, 127, 123, 127, 136, 117, 131, 114, 129, 124, 132, 117, 148, 128, 122, 108, 132, 123, 123, 133, 130, 124, 120, 118, 140, 125, 144, 134, 128, 120, 133, 121, 128, 148, 126, 137, 116, 120, 130, 105, 121, 138, 117, 133, 122, 120, 139, 125, 124, 127, 120, 111, 118, 140, 112, 119, 127, 130, 121, 137, 125, 164, 138, 122, 134, 122, 124, 115, 140, 110, 129, 111, 142, 122, 136, 138, 127, 129, 126, 126, 123, 127, 124, 110, 127, 130, 121, 125, 134, 117, 128, 143, 130, 136, 130, 115, 118, 129, 132, 120, 143, 132, 123, 113, 123, 124, 129, 148, 142, 122, 117, 128, 131, 118, 120, 122, 117, 121, 110, 123, 127, 132, 139, 125, 130, 112, 104, 133, 106, 133, 120, 139, 133, 118, 120, 119, 129, 136, 126, 116, 121, 109, 120, 122, 126, 121, 107, 133, 128, 111, 128, 112, 119, 124, 108, 105, 123, 128, 122, 135, 116, 128, 137, 119, 135, 124, 126, 121, 106, 139, 141, 134, 131, 116, 128, 125, 126, 126, 115, 127, 126, 134, 128, 113, 125, 127, 112, 147, 108, 125, 135, 129, 124, 133, 130, 122, 121, 121, 132, 138, 125, 149, 107, 127, 125, 120, 121, 127, 128, 135, 118, 123, 118, 133, 110, 120, 121, 136, 142, 119, 120, 122, 143, 128, 128, 118, 121, 102, 119, 130, 122, 145, 125, 127, 139, 128, 133, 119, 127, 118, 117, 125, 125, 119, 119, 140, 134, 121, 117, 124, 105, 120, 129, 137, 134, 133, 133, 132, 131, 120, 127, 120, 130, 125, 130, 128, 119, 117, 104, 111, 107, 135, 134, 117, 125, 113, 103, 149, 131, 109, 123, 118, 138, 134, 126, 136, 122, 128, 108, 131, 106, 119, 124, 124, 132, 146, 122, 113, 142, 127, 117, 132, 131, 115, 113, 135, 125, 127, 120, 122, 122, 107, 125, 114, 147, 121, 128, 133, 134, 126, 140, 125, 121, 135, 110, 127, 127, 124, 118, 129, 129, 139, 120, 115, 123, 138, 107, 126, 130, 126, 133, 125, 135, 139, 120, 126, 112, 122, 124, 123, 130, 136, 132, 133, 136, 135, 101, 137, 118, 121, 128, 128, 123, 110, 116, 132, 131, 128, 117, 128, 140, 130, 118, 118, 113, 124, 117, 126, 139, 129, 127, 124, 113, 130, 121, 137, 137, 134, 126, 141, 121, 134, 118, 135, 126, 133, 126, 124, 98, 122, 130, 152, 111, 126, 111, 112, 111, 114, 113, 125, 117, 124, 145, 136, 119, 146, 140, 137, 106, 130, 135, 137, 123, 126, 136, 110, 112, 120, 118, 131, 125, 129, 109, 124, 122, 127, 139, 132, 134, 130, 112, 133, 151, 135, 137, 125, 122, 123, 145, 122, 112, 123, 142, 133, 139, 134, 127, 122, 137, 107, 127, 116, 144, 132, 127, 138, 124, 141, 128, 139, 129, 120, 126, 115, 138, 121, 121, 129, 107, 148, 133, 110, 120, 131, 124, 133, 112, 134, 135, 122, 94, 116, 117, 130, 104, 142, 130, 133, 121, 113, 110, 114, 113, 119, 123, 123, 115, 119, 131, 131, 123, 118, 116, 138, 126, 130, 125, 121, 116, 145, 114, 127, 126, 126, 146, 126, 116, 130, 110, 141, 131, 137, 125, 124, 132, 133, 128, 142, 120, 116, 121, 115, 110, 124, 113, 140, 152, 149, 123, 115, 142, 118, 142, 127, 102, 113, 143, 128, 115, 125, 120, 112, 138, 122, 108, 128, 115, 135, 127, 124, 128, 111, 123, 133, 130, 119, 127, 134, 119, 124, 124, 129, 135, 118, 117, 131, 125, 124, 120, 120, 132, 122, 113, 126, 130, 126, 131, 133, 116, 133, 121, 105, 118, 127, 136, 118, 121, 135, 139, 106, 117, 125, 128, 115, 142, 119, 121, 136, 120, 121, 133, 135, 122, 130, 126, 117, 127, 112, 123, 121, 134, 129, 137, 134, 138, 122, 129, 126, 139, 128, 119, 109, 126, 123, 126, 113, 130, 132, 126, 123, 122, 139, 126, 120, 139, 129, 120, 122, 119, 115, 114, 114, 116, 118, 126, 122, 117, 150, 114, 114, 131, 138, 101, 114, 143, 135, 154, 122, 133, 115, 122, 121, 119, 135, 130, 129, 144, 126, 119, 128, 121, 139, 114, 124, 132, 121, 130, 106, 140, 122, 128, 131, 132, 123, 136, 146, 135, 143, 137, 127, 126, 130, 119, 124, 119, 147, 101, 129, 143, 125, 146, 140, 119, 106, 99, 136, 139, 114, 110, 127, 124, 117, 117, 117, 122, 127, 131, 114, 131, 137, 117, 134, 146, 126, 118, 133, 128, 142, 123, 120, 133, 101, 118, 144, 124, 128, 117, 136, 118, 122, 138, 115, 128, 137, 159, 139, 123, 114, 123, 127, 124, 115, 106, 141, 125, 121, 120, 93, 122, 122, 126, 147, 122, 134, 120, 122, 127, 112, 129, 129, 125, 126, 129, 119, 131, 124, 149, 136, 121, 99, 114, 121, 130, 125, 141, 121, 128, 133, 127, 127, 120, 109, 139, 125, 136, 132, 136, 123, 130, 130, 122, 117, 137, 133, 123, 129, 126, 121, 142, 141, 120, 129, 133, 139, 107, 126, 131, 139, 135, 128, 161, 120, 125, 127, 128, 120, 130, 129, 118, 132, 126, 107, 129, 123, 140, 137, 127, 115, 120, 108, 118, 115, 112, 120, 152, 109, 134, 148, 126, 120, 117, 115, 106, 129, 122, 121, 127, 132, 128, 109, 126, 107, 151, 122, 128, 114, 138, 122, 135, 100, 136, 128, 115, 119, 145, 136, 125, 146, 110, 111, 112, 110, 126, 121, 123, 134, 116, 125, 130, 128, 113, 133, 109, 117, 145, 132, 132, 138, 122, 132, 141, 116, 121, 135, 144, 117, 129, 122, 124, 137, 147, 120, 116, 128, 116, 123, 134, 126, 125, 121, 122, 129, 126, 124, 125, 108, 131, 144, 134, 134, 127, 130, 127, 125, 126, 111, 99, 117, 114, 132, 114, 117, 119, 128, 117, 126, 127, 126, 110, 151, 116, 119, 124, 144, 125, 139, 132, 118, 138, 135, 141, 118, 116, 126, 117, 130, 127, 143, 133, 127, 132, 111, 116, 105, 108, 113, 123, 116, 118, 130, 135, 149, 133, 124, 121, 124, 123, 133, 132, 130, 136, 123, 128, 104, 139, 121, 133, 121, 136, 123, 117, 117, 116, 133, 122, 120, 127, 97, 128, 131, 117, 121, 128, 114, 126, 136, 120, 104, 119, 130, 154, 124, 117, 131, 113, 118, 117, 119, 119, 130, 124, 124, 124, 125, 116, 117, 121, 121, 136, 123, 121, 112, 127, 130, 118, 133, 119, 139, 140, 119, 123, 130, 121, 128, 142, 104, 147, 107, 144, 128, 123, 144, 100, 113, 127, 126, 126, 132, 116, 120, 110, 126, 129, 128, 129, 129, 114, 134, 116, 140, 131, 128, 145, 112, 118, 139, 115, 128, 138, 132, 127, 128, 133, 122, 143, 132, 136, 119, 129, 113, 128, 124, 116, 133, 127, 130, 113, 142, 129, 137, 110, 125, 133, 127, 149, 119, 124, 116, 129, 138, 131, 152, 123, 113, 129, 124, 121, 146, 143, 130, 142, 135, 108, 123, 119, 123, 127, 139, 144, 118, 132, 132, 124, 123, 118, 115, 136, 118, 131, 118, 122, 121, 127, 117, 121, 126, 127, 112, 117, 107, 100, 121, 120, 133, 127, 123, 119, 143, 124, 112, 126, 130, 134, 107, 123, 135, 168, 131, 124, 134, 133, 127, 116, 133, 121, 103, 110, 111, 126, 120, 112, 144, 113, 136, 139, 114, 130, 134, 130, 141, 129, 136, 136, 115, 116, 141, 123, 114, 145, 123, 135, 119, 123, 127, 102, 124, 123, 129, 140, 120, 132, 134, 133, 101, 142, 143, 121, 139, 116, 132, 108, 125, 125, 129, 136, 122, 146, 116, 120, 125, 121, 127, 129, 116, 114, 134, 126, 137, 129, 122, 130, 121, 123, 133, 142, 149, 122, 127, 135, 141, 134, 120, 117, 134, 115, 116, 136, 134, 134, 130, 141, 129, 125, 135, 136, 115, 125, 130, 126, 137, 108, 137, 131, 126, 117, 123, 128, 116, 128, 133, 124, 122, 127, 137, 129, 140, 126, 124, 125, 114, 124, 122, 137, 112, 136, 135, 143, 130, 122, 141, 151, 132, 117, 121, 128, 113, 128, 115, 127, 135, 127, 140, 111, 128, 134, 116, 144, 107, 114, 141, 118, 144, 114, 121, 144, 111, 128, 121, 147, 135, 127, 117, 127, 123, 130, 132, 131, 143, 125, 142, 137, 112, 109, 108, 124, 138, 111, 120, 125, 117, 140, 132, 127, 146, 131, 117, 121, 153, 137, 115, 142, 112, 141, 130, 123, 138, 129, 129, 113, 117, 123, 123, 139, 128, 120, 128, 100, 115, 100, 131, 115, 136, 126, 143, 136, 107, 123, 117, 123, 124, 130, 126, 137, 124, 123, 124, 115, 135, 116, 125, 121, 124, 120, 122, 114, 125, 114, 138, 128, 116, 141, 127, 120, 118, 130, 131, 130, 124, 116, 121, 120, 130, 105, 139, 129, 127, 132, 114, 117, 143, 126, 125, 105, 132, 132, 126, 127, 118, 114, 123, 135, 103, 116, 132, 135, 131, 128, 114, 134, 121, 134, 148, 144, 129, 134, 133, 125, 112, 129, 126, 146, 119, 134, 132, 136, 128, 111, 127, 134, 118, 105, 127, 112, 114, 134, 128, 129, 124, 128, 105, 119, 137, 131, 136, 115, 123, 129, 114, 127, 136, 120, 111, 135, 101, 113, 138, 129, 121, 117, 118, 126, 111, 114, 109, 126, 118, 110, 123, 122, 132, 109, 138, 109, 108, 121, 115, 135, 134, 127, 126, 131, 135, 140, 109, 155, 118, 138, 136, 137, 81, 124, 120, 115, 124, 148, 124, 111, 101, 108, 123, 117, 120, 116, 123, 121, 116, 117, 122, 129, 128, 116, 130, 128, 129, 139, 119, 130, 133, 119, 136, 118, 152, 125, 127, 119, 129, 137, 126, 133, 136, 133, 132, 150, 113, 117, 134, 117, 137, 128, 133, 139, 130, 112, 140, 132, 125, 147, 108, 104, 120, 124, 126, 129, 112, 140, 136, 121, 129, 128, 122, 126, 136, 138, 111, 118, 132, 116, 145, 108, 122, 123, 126, 140, 137, 112, 126, 131, 118, 127, 145, 121, 146, 111, 134, 137, 127, 126, 125, 129, 118, 123, 136, 112, 123, 130, 113, 130, 116, 128, 125, 131, 122, 130, 111, 120, 128, 111, 118, 116, 118, 133, 114, 120, 119, 149, 138, 112, 89, 133, 119, 133, 146, 120, 105, 113, 125, 94, 125, 123, 104, 122, 140, 101, 139, 145, 130, 121, 125, 101, 123, 125, 128, 121, 121, 110, 102, 121, 137, 105, 125, 124, 127, 122, 124, 118, 124, 113, 112, 127, 123, 135, 117, 128, 128, 139, 141, 102, 115, 125, 134, 147, 141, 135, 115, 120, 131, 116, 138, 134, 133, 131, 138, 140, 122, 118, 128, 113, 129, 122, 109, 125, 126, 113, 119, 138, 122, 121, 132, 141, 131, 132, 121, 128, 132, 127, 136, 105, 115, 146, 140, 106, 117, 137, 133, 137, 137, 118, 123, 138, 141, 126, 111, 112, 106, 133, 139, 120, 134, 148, 122, 152, 96, 133, 132, 139, 130, 134, 116, 133, 139, 131, 126, 133, 124, 115, 124, 116, 145, 115, 122, 146, 119, 172, 129, 126, 121, 132, 131, 129, 129, 132, 124, 125, 130, 131, 99, 127, 133, 129, 141, 119, 113, 118, 152, 122, 141, 120, 144, 125, 114, 132, 136, 118, 125, 126, 130, 153, 101, 134, 124, 144, 121, 127, 119, 124, 129, 120, 92, 123, 96, 131, 123, 123, 127, 134, 121, 160, 127, 112, 119, 135, 114, 133, 125, 130, 127, 99, 105, 151, 122, 130, 131, 129, 132, 134, 102, 148, 128, 131, 122, 111, 124, 130, 131, 129, 133, 138, 109, 119, 143, 113, 122, 137, 117, 106, 138, 115, 116, 111, 118, 136, 126, 130, 110, 122, 153, 133, 140, 116, 116, 139, 126, 136, 118, 118, 136, 121, 120, 142, 122, 115, 126, 124, 126, 128, 122, 109, 126, 130, 123, 115, 145, 143, 116, 114, 118, 117, 116, 138, 118, 120, 123, 132, 120, 123, 124, 100, 119, 132, 123, 129, 107, 118, 117, 123, 124, 100, 132, 110, 134, 116, 112, 140, 124, 132, 126, 115, 110, 124, 131, 137, 127, 138, 112, 125, 143, 113, 124, 113, 117, 108, 122, 149, 123, 113, 119, 123, 122, 119, 133, 135, 93, 132, 113, 122, 134, 115, 128, 124, 123, 97, 138, 138, 144, 138, 118, 122, 124, 120, 102, 126, 128, 114, 127, 129, 123, 124, 106, 101, 125, 132, 128, 125, 120, 127, 114, 122, 124, 131, 118, 119, 114, 122, 126, 118, 134, 137, 133, 103, 132, 124, 129, 128, 129, 122, 124, 123, 132, 119, 133, 136, 108, 117, 137, 142, 147, 123, 142, 132, 126, 108, 155, 117, 143, 136, 120, 107, 147, 111, 151, 129, 114, 143, 116, 122, 124, 129, 116, 118, 123, 116, 120, 132, 110, 113, 99, 111, 129, 115, 115, 118, 127, 113, 119, 135, 138, 112, 122, 126, 127, 143, 136, 112, 137, 126, 115, 126, 134, 150, 146, 132, 127, 134, 133, 118, 128, 82, 140, 109, 138, 99, 99, 118, 107, 121, 134, 145, 127, 126, 142, 120, 120, 124, 121, 116, 140, 118, 122, 122, 128, 115, 103, 136, 146, 118, 121, 122, 124, 136, 121, 114, 110, 113, 175, 175, 122, 142, 127, 118, 151, 132, 138, 113, 111, 118, 134, 130, 122, 120, 137, 99, 120, 135, 118, 129, 120, 111, 120, 124, 100, 125, 145, 129, 140, 122, 138, 116, 124, 131, 150, 130, 104, 121, 125, 116, 121, 137, 132, 123, 131, 123, 133, 127, 120, 119, 128, 142, 129, 126, 114, 110, 131, 125, 100, 113, 109, 137, 141, 113, 121, 135, 124, 144, 136, 124, 115, 137, 129, 109, 96, 139, 137, 119, 115, 127, 132, 119, 137, 123, 123, 124, 129, 133, 108, 135, 126, 146, 133, 116, 135, 127, 120, 153, 133, 124, 108, 112, 134, 115, 141, 136, 122, 116, 130, 125, 131, 115, 138, 113, 107, 134, 121, 134, 136, 139, 131, 121, 120, 119, 145, 105, 136, 129, 138, 108, 128, 124, 120, 114, 142, 130, 124, 122, 123, 93, 119, 106, 148, 127, 121, 131, 129, 120, 133, 125, 134, 116, 126, 120, 122, 128, 141, 132, 109, 134, 124, 122, 104, 120, 127, 125, 121, 132, 128, 139, 119, 120, 130, 140, 143, 133, 137, 119, 127, 127, 108, 133, 123, 122, 129, 131, 131, 129, 101, 115, 130, 134, 114, 125, 131, 117, 86, 125, 132, 131, 131, 121, 134, 136, 141, 130, 146, 129, 131, 124, 121, 118, 131, 147, 110, 128, 120, 109, 125, 130, 120, 134, 122, 98, 133, 148, 125, 102, 136, 138, 131, 139, 129, 132, 124, 150, 134, 116, 125, 141, 131, 102, 132, 104, 118, 125, 128, 110, 122, 124, 130, 102, 130, 114, 110, 107, 120, 130, 123, 116, 130, 121, 146, 146, 135, 151, 107, 120, 108, 117, 121, 124, 139, 112, 139, 107, 121, 136, 141, 132, 135, 113, 118, 116, 125, 127, 157, 116, 131, 146, 137, 127, 130, 147, 105, 135, 123, 126, 132, 127, 126, 135, 131, 126, 121, 125, 124, 126, 137, 135, 136, 121, 126, 112, 127, 112, 124, 126, 132, 121, 109, 127, 122, 145, 128, 127, 113, 114, 107, 129, 136, 149, 126, 133, 110, 107, 131, 120, 109, 144, 138, 117, 127, 129, 130, 114, 136, 130, 126, 138, 137, 114, 118, 123, 120, 118, 150, 137, 129, 133, 122, 122, 125, 125, 130, 101, 131, 147, 119, 117, 144, 135, 129, 140, 113, 105, 120, 120, 144, 121, 130, 134, 144, 113, 126, 113, 147, 114, 127, 121, 144, 143, 112, 127, 111, 132, 146, 134, 130, 141, 110, 119, 124, 120, 110, 125, 112, 119, 134, 135, 119, 123, 139, 136, 118, 101, 137, 120, 113, 141, 132, 120, 123, 129, 111, 123, 111, 127, 102, 134, 134, 120, 122, 118, 123, 126, 116, 118, 151, 129, 114, 111, 129, 136, 114, 125, 130, 124, 113, 121, 136, 114, 123, 125, 130, 139, 114, 121, 127, 143, 123, 141, 111, 131, 119, 121, 129, 118, 106, 108, 137, 132, 122, 130, 132, 124, 137, 134, 127, 130, 137, 103, 117, 124, 93, 136, 114, 116, 134, 112, 133, 142, 129, 124, 129, 124, 120, 121, 110, 125, 123, 122, 116, 115, 138, 119, 123, 135, 122, 126, 119, 119, 128, 112, 137, 144, 129, 117, 121, 131, 149, 121, 113, 110, 132, 148, 139, 142, 145, 110, 127, 116, 121, 130, 117, 130, 115, 111, 128, 116, 117, 122, 123, 116, 117, 124, 118, 130, 122, 135, 139, 136, 124, 119, 119, 116, 140, 130, 121, 115, 132, 111, 140, 125, 155, 125, 121, 126, 137, 132, 127, 129, 115, 138, 110, 121, 123, 112, 119, 119, 137, 137, 152, 121, 136, 121, 131, 110, 140, 126, 125, 116, 140, 135, 132, 130, 111, 140, 128, 129, 126, 133, 150, 135, 125, 118, 136, 121, 143, 121, 140, 116, 108, 119, 120, 126, 122, 130, 134, 128, 134, 139, 145, 158, 121, 145, 118, 126, 128, 126, 118, 143, 123, 125, 115, 131, 128, 132, 120, 109, 141, 115, 139, 124, 122, 154, 128, 111, 124, 124, 126, 129, 136, 132, 114, 138, 135, 119, 121, 126, 133, 137, 131, 120, 101, 138, 120, 131, 122, 134, 137, 117, 131, 117, 141, 120, 122, 137, 126, 131, 106, 121, 115, 120, 136, 133, 123, 134, 130, 133, 126, 119, 123, 143, 112, 127, 134, 115, 125, 135, 133, 120, 135, 127, 122, 132, 127, 126, 123, 119, 145, 126, 133, 156, 122, 114, 114, 117, 128, 105, 118, 136, 115, 125, 126, 129, 130, 129, 133, 112, 120, 129, 120, 117, 127, 146, 131, 131, 100, 127, 127, 124, 140, 132, 119, 150, 122, 129, 122, 124, 121, 123, 130, 123, 135, 120, 131, 115, 146, 123, 133, 133, 141, 117, 116, 122, 137, 135, 130, 128, 131, 135, 127, 114, 142, 140, 127, 136, 125, 139, 139, 132, 112, 117, 131, 124, 126, 125, 117, 123, 129, 135, 109, 115, 145, 144, 127, 115, 140, 141, 121, 115, 111, 130, 115, 116, 148, 138, 121, 134, 136, 127, 135, 119, 125, 122, 125, 129, 130, 131, 98, 140, 106, 111, 141, 124, 122, 105, 116, 131, 121, 120, 136, 113, 109, 108, 142, 116, 105, 115, 129, 133, 135, 120, 143, 123, 134, 113, 128, 122, 130, 129, 130, 113, 112, 106, 112, 135, 115, 127, 122, 113, 127, 113, 126, 147, 126, 116, 127, 105, 109, 133, 132, 105, 143, 126, 153, 135, 106, 144, 115, 120, 130, 145, 147, 108, 126, 121, 144, 134, 126, 141, 135, 117, 123, 128, 125, 115, 103, 135, 137, 121, 113, 118, 102, 135, 127, 111, 128, 139, 112, 128, 121, 143, 152, 128, 121, 118, 136, 133, 123, 112, 127, 129, 123, 139, 111, 130, 110, 134, 144, 140, 109, 119, 114, 136, 123, 122, 129, 137, 124, 130, 129, 126, 128, 142, 113, 137, 116, 109, 115, 127, 120, 134, 139, 118, 141, 140, 121, 136, 115, 129, 125, 116, 145, 112, 127, 123, 113, 140, 115, 128, 109, 129, 120, 132, 118, 123, 136, 145, 141, 131, 102, 105, 119, 129, 100, 138, 133, 118, 114, 135, 130, 111, 123, 114, 133, 135, 117, 117, 119, 136, 131, 137, 131, 117, 131, 134, 122, 115, 123, 104, 154, 128, 124, 126, 101, 119, 127, 148, 132, 147, 109, 137, 132, 117, 116, 115, 129, 136, 146, 122, 112, 123, 119, 120, 116, 167, 119, 113, 135, 131, 127, 101, 117, 136, 125, 108, 120, 140, 117, 124, 130, 104, 121, 138, 145, 108, 135, 99, 127, 136, 122, 131, 116, 135, 125, 117, 132, 117, 119, 135, 123, 129, 130, 121, 143, 111, 113, 123, 127, 120, 130, 116, 119, 113, 135, 141, 127, 123, 126, 143, 147, 132, 131, 139, 107, 130, 132, 141, 126, 129, 125, 122, 140, 132, 137, 116, 119, 122, 123, 114, 122, 117, 127, 130, 142, 128, 133, 130, 125, 127, 127, 115, 118, 116, 136, 115, 113, 136, 116, 136, 126, 159, 114, 124, 128, 124, 124, 136, 111, 128, 118, 116, 123, 104, 119, 121, 116, 110, 135, 112, 121, 116, 157, 128, 135, 132, 126, 117, 141, 123, 136, 134, 122, 136, 137, 126, 133, 129, 114, 133, 142, 136, 121, 119, 117, 127, 139, 143, 129, 135, 115, 125, 121, 125, 131, 135, 139, 124, 126, 116, 134, 132, 133, 118, 144, 123, 132, 134, 113, 129, 126, 115, 136, 131, 131, 124, 125, 135, 144, 124, 125, 104, 139, 131, 116, 113, 148, 127, 121, 115, 121, 146, 132, 127, 121, 151, 128, 151, 132, 97, 125, 148, 117, 124, 110, 123, 107, 129, 100, 140, 130, 132, 121, 133, 104, 135, 142, 126, 129, 137, 123, 123, 132, 154, 108, 120, 117, 111, 116, 124, 116, 132, 113, 128, 126, 126, 129, 123, 120, 127, 133, 126, 122, 147, 122, 121, 116, 109, 127, 134, 140, 106, 139, 127, 164, 127, 118, 121, 132, 133, 137, 91, 118, 127, 116, 118, 133, 109, 121, 111, 136, 120, 122, 136, 128, 112, 132, 116, 139, 132, 134, 121, 127, 137, 133, 147, 112, 126, 135, 121, 124, 136, 126, 123, 110, 113, 118, 124, 112, 137, 131, 123, 141, 129, 137, 127, 141, 124, 128, 124, 149, 133, 118, 134, 122, 153, 131, 122, 120, 105, 136, 128, 126, 122, 124, 107, 116, 113, 124, 130, 145, 129, 125, 128, 133, 128, 118, 130, 114, 132, 126, 109, 124, 118, 133, 135, 116, 120, 124, 132, 120, 113, 127, 108, 135, 125, 122, 123, 131, 128, 113, 117, 143, 122, 118, 126, 126, 126, 136, 129, 131, 105, 122, 119, 120, 141, 127, 125, 128, 121, 134, 125, 144, 122, 107, 131, 111, 127, 129, 123, 130, 117, 134, 138, 129, 107, 117, 139, 133, 126, 137, 127, 115, 122, 132, 124, 125, 118, 122, 121, 112, 137, 122, 116, 105, 121, 114, 143, 129, 145, 134, 125, 143, 153, 114, 120, 128, 137, 135, 112, 121, 131, 131, 115, 136, 137, 143, 112, 115, 118, 118, 122, 130, 123, 115, 131, 124, 112, 137, 116, 120, 110, 124, 128, 125, 134, 127, 109, 104, 126, 115, 141, 129, 124, 126, 130, 135, 130, 135, 115, 127, 120, 128, 132, 119, 129, 113, 130, 127, 124, 128, 113, 113, 129, 120, 138, 121, 131, 118, 121, 152, 132, 123, 125, 118, 125, 135, 121, 126, 129, 123, 132, 116, 124, 124, 155, 133, 141, 123, 109, 122, 128, 131, 116, 106, 122, 125, 126, 128, 136, 117, 142, 139, 104, 118, 112, 131, 120, 129, 125, 127, 115, 117, 117, 121, 127, 125, 123, 121, 119, 114, 153, 123, 122, 127, 130, 132, 109, 147, 111, 127, 122, 113, 111, 121, 114, 115, 116, 106, 130, 129, 132, 131, 138, 129, 121, 127, 146, 123, 129, 124, 121, 128, 126, 128, 113, 137, 125, 118, 111, 128, 119, 133, 120, 124, 132, 125, 132, 126, 126, 134, 129, 140, 129, 139, 122, 141, 133, 130, 128, 113, 112, 109, 110, 118, 116, 138, 122, 138, 138, 128, 127, 151, 134, 103, 130, 126, 120, 123, 100, 143, 122, 120, 126, 140, 118, 131, 125, 128, 110, 125, 117, 128, 120, 131, 145, 109, 138, 108, 144, 109, 120, 123, 132, 138, 134, 130, 128, 112, 120, 122, 130, 115, 121, 132, 100, 136, 128, 101, 137, 129, 119, 102, 114, 136, 121, 140, 133, 103, 116, 131, 129, 129, 136, 123, 135, 129, 126, 112, 124, 134, 135, 128, 154, 119, 119, 118, 125, 124, 124, 122, 128, 134, 133, 124, 116, 118, 138, 128, 116, 114, 123, 111, 119, 124, 128, 106, 121, 110, 139, 131, 103, 105, 100, 123, 131, 131, 121, 122, 122, 122, 136, 131, 123, 124, 144, 132, 132, 123, 111, 113, 134, 127, 130, 128, 115, 131, 128, 135, 132, 129, 124, 131, 113, 123, 110, 119, 116, 127, 117, 132, 126, 136, 120, 114, 155, 105, 129, 126, 112, 117, 121, 131, 100, 131, 126, 129, 133, 114, 136, 116, 124, 120, 125, 115, 118, 125, 128, 136, 132, 127, 118, 119, 129, 134, 123, 148, 121, 135, 129, 121, 144, 118, 128, 133, 106, 115, 126, 119, 123, 145, 139, 131, 127, 143, 124, 128, 119, 133, 127, 158, 120, 127, 131, 118, 121, 136, 135, 138, 121, 125, 114, 130, 118, 125, 121, 107, 121, 116, 118, 127, 124, 129, 117, 127, 124, 109, 115, 123, 120, 121, 105, 122, 131, 110, 126, 132, 125, 120, 120, 139, 125, 117, 126, 132, 115, 123, 112, 105, 112, 105, 133, 108, 125, 127, 128, 147, 122, 110, 123, 116, 127, 137, 135, 130, 132, 127, 131, 137, 103, 136, 132, 116, 148, 133, 124, 112, 108, 128, 120, 114, 132, 121, 140, 115, 122, 134, 136, 106, 123, 129, 139, 113, 125, 118, 110, 121, 135, 131, 130, 111, 132, 121, 109, 125, 126, 131, 137, 116, 117, 119, 141, 109, 136, 117, 137, 122, 108, 117, 124, 123, 145, 142, 137, 138, 126, 113, 116, 135, 142, 111, 120, 120, 138, 138, 133, 127, 127, 127, 129, 125, 124, 122, 136, 136, 107, 109, 117, 119, 117, 130, 136, 129, 131, 136, 115, 131, 112, 130, 127, 120, 126, 133, 120, 123, 142, 131, 108, 125, 109, 112, 126, 124, 138, 115, 127, 148, 132, 118, 107, 128, 124, 124, 155, 127, 128, 126, 110, 99, 124, 124, 108, 125, 121, 140, 133, 125, 130, 149, 102, 121, 97, 135, 129, 115, 117, 139, 124, 131, 129, 99, 134, 116, 120, 140, 125, 117, 136, 122, 124, 110, 130, 120, 137, 125, 147, 115, 117, 105, 133, 127, 132, 137, 123, 122, 113, 136, 118, 138, 131, 113, 82, 125, 136, 131, 112, 119, 116, 143, 112, 135, 106, 127, 130, 108, 126, 126, 129, 138, 113, 130, 113, 134, 132, 121, 120, 130, 121, 125, 128, 112, 116, 127, 124, 107, 131, 132, 129, 122, 139, 119, 128, 137, 113, 123, 112, 117, 124, 118, 123, 128, 132, 119, 141, 130, 113, 134, 123, 123, 104, 129, 120, 137, 104, 121, 130, 118, 137, 114, 132, 106, 131, 124, 115, 128, 134, 124, 130, 119, 128, 118, 138, 121, 135, 126, 116, 134, 113, 148, 120, 135, 119, 127, 120, 132, 117, 114, 142, 125, 103, 103, 130, 122, 135, 118, 132, 104, 113, 112, 130, 121, 119, 146, 131, 116, 137, 118, 126, 137, 163, 142, 129, 115, 131, 130, 123, 127, 133, 130, 127, 121, 134, 142, 119, 115, 134, 122, 117, 116, 125, 150, 136, 127, 115, 151, 119, 121, 108, 125, 143, 123, 127, 129, 117, 130, 134, 116, 126, 126, 126, 120, 132, 123, 120, 124, 114, 117, 113, 122, 106, 126, 104, 105, 129, 123, 119, 139, 126, 126, 116, 138, 123, 133, 127, 133, 128, 107, 138, 117, 132, 125, 139, 123, 114, 126, 120, 131, 120, 133, 128, 123, 137, 139, 128, 124, 118, 123, 126, 122, 123, 134, 133, 125, 125, 144, 123, 123, 127, 116, 129, 128, 109, 137, 140, 125, 129, 131, 120, 132, 136, 124, 113, 139, 129, 139, 156, 114, 133, 124, 132, 122, 104, 137, 144, 125, 117, 125, 133, 128, 131, 129, 110, 143, 116, 148, 135, 115, 140, 114, 121, 118, 144, 129, 137, 118, 144, 148, 123, 119, 117, 119, 138, 114, 145, 114, 135, 113, 135, 132, 139, 136, 124, 134, 124, 128, 143, 127, 115, 123, 116, 133, 128, 126, 130, 133, 122, 129, 122, 137, 136, 107, 138, 120, 120, 128, 140, 122, 118, 126, 119, 117, 104, 145, 118, 141, 117, 104, 112, 121, 146, 135, 123, 132, 138, 134, 129, 128, 119, 118, 115, 124, 108, 126, 114, 140, 135, 119, 129, 131, 115, 133, 134, 125, 140, 105, 123, 128, 117, 121, 126, 131, 104, 125, 125, 114, 113, 132, 134, 137, 102, 131, 118, 133, 124, 130, 116, 115, 131, 139, 132, 114, 138, 110, 125, 134, 145, 110, 129, 128, 127, 138, 115, 135, 128, 125, 112, 124, 130, 124, 126, 128, 127, 120, 126, 109, 115, 128, 132, 125, 125, 104, 108, 139, 130, 127, 112, 117, 130, 126, 145, 124, 126, 125, 125, 151, 109, 130, 119, 118, 123, 116, 117, 110, 131, 130, 157, 137, 126, 118, 125, 112, 141, 125, 110, 118, 126, 141, 133, 119, 108, 121, 123, 129, 123, 129, 134, 149, 146, 117, 116, 118, 131, 125, 110, 119, 129, 114, 123, 106, 118, 137, 134, 114, 131, 119, 128, 125, 99, 116, 138, 136, 115, 138, 100, 116, 114, 140, 137, 130, 127, 151, 124, 130, 120, 114, 124, 107, 131, 122, 152, 132, 127, 135, 113, 118, 122, 117, 139, 125, 122, 135, 124, 133, 155, 123, 133, 117, 147, 128, 134, 143, 120, 123, 127, 129, 116, 122, 124, 117, 118, 113, 127, 142, 126, 129, 114, 135, 130, 124, 108, 110, 127, 115, 132, 107, 114, 117, 125, 126, 124, 138, 117, 128, 104, 133, 125, 134, 138, 120, 121, 124, 147, 116, 133, 123, 132, 123, 127, 132, 121, 129, 127, 131, 117, 110, 129, 104, 126, 124, 138, 120, 120, 124, 119, 113, 115, 120, 145, 120, 131, 124, 121, 120, 113, 120, 114, 124, 128, 123, 118, 150, 111, 111, 139, 126, 114, 124, 126, 132, 121, 131, 121, 124, 138, 120, 136, 136, 131, 99, 135, 132, 108, 120, 119, 122, 126, 126, 119, 132, 110, 127, 117, 113, 130, 140, 136, 119, 124, 121, 149, 128, 127, 137, 109, 128, 123, 134, 135, 119, 119, 129, 126, 127, 110, 139, 112, 124, 115, 129, 136, 107, 114, 131, 109, 130, 116, 134, 145, 112, 138, 121, 127, 117, 121, 131, 141, 120, 127, 107, 119, 130, 114, 127, 131, 135, 128, 131, 125, 130, 118, 132, 118, 125, 128, 119, 116, 123, 134, 143, 122, 140, 132, 121, 124, 119, 118, 127, 123, 133, 113, 112, 128, 137, 119, 127, 133, 116, 131, 122, 119, 132, 116, 120, 148, 132, 122, 132, 125, 126, 128, 126, 119, 127, 115, 132, 127, 131, 139, 134, 107, 114, 117, 130, 121, 124, 123, 142, 124, 123, 135, 125, 141, 106, 119, 137, 129, 119, 125, 127, 94, 127, 121, 139, 121, 114, 124, 113, 143, 125, 134, 105, 129, 134, 116, 131, 121, 118, 111, 122, 139, 123, 133, 129, 114, 115, 117, 123, 119, 127, 120, 136, 121, 119, 137, 119, 121, 124, 132, 125, 123, 117, 113, 138, 129, 139, 108, 124, 131, 131, 136, 112, 108, 127, 127, 127, 119, 128, 138, 120, 130, 104, 119, 123, 134, 120, 135, 144, 127, 120, 127, 128, 136, 112, 135, 130, 152, 127, 125, 131, 129, 117, 137, 135, 138, 130, 110, 117, 141, 109, 131, 115, 122, 128, 120, 144, 150, 122, 147, 144, 125, 108, 129, 121, 125, 117, 134, 131, 113, 147, 151, 128, 105, 130, 129, 122, 129, 114, 125, 121, 122, 119, 128, 121, 105, 124, 144, 127, 120, 116, 123, 127, 134, 110, 119, 131, 134, 128, 121, 119, 118, 139, 125, 113, 134, 136, 121, 116, 118, 137, 124, 115, 119, 123, 120, 97, 124, 122, 112, 122, 122, 119, 132, 106, 127, 136, 112, 123, 124, 116, 127, 127, 112, 110, 122, 124, 112, 116, 125, 97, 140, 119, 114, 107, 119, 142, 109, 124, 109, 125, 128, 118, 104, 142, 121, 126, 116, 126, 134, 144, 120, 153, 147, 143, 136, 135, 128, 120, 125, 130, 115, 127, 115, 121, 118, 130, 134, 130, 127, 143, 112, 88, 128, 132, 121, 129, 129, 147, 125, 107, 123, 114, 117, 130, 124, 110, 113, 122, 128, 150, 140, 141, 106, 137, 123, 144, 122, 115, 146, 126, 130, 122, 127, 131, 110, 115, 100, 148, 121, 122, 136, 121, 123, 127, 126, 136, 151, 120, 143, 135, 139, 124, 150, 135, 125, 144, 128, 133, 124, 119, 129, 130, 123, 125, 132, 134, 120, 118, 124, 121, 114, 129, 127, 140, 126, 138, 128, 127, 128, 112, 142, 124, 122, 116, 124, 121, 122, 136, 121, 124, 120, 121, 117, 121, 118, 134, 112, 131, 102, 122, 126, 114, 128, 120, 126, 110, 117, 114, 121, 106, 117, 121, 133, 132, 141, 138, 122, 127, 135, 133, 119, 119, 119, 114, 121, 112, 109, 142, 136, 108, 153, 122, 112, 119, 120, 123, 132, 121, 125, 127, 110, 123, 135, 123, 127, 108, 117, 114, 125, 117, 119, 116, 120, 111, 121, 118, 126, 129, 118, 131, 123, 119, 127, 137, 132, 119, 124, 121, 122, 128, 131, 113, 114, 136, 135, 117, 124, 123, 127, 110, 122, 124, 140, 132, 112, 132, 130, 131, 124, 130, 123, 126, 138, 119, 130, 126, 133, 106, 121, 126, 113, 124, 121, 133, 133, 118, 115, 134, 143, 127, 128, 124, 117, 141, 125, 129, 125, 123, 122, 110, 128, 115, 130, 133, 127, 129, 125, 118, 110, 102, 140, 120, 115, 115, 141, 131, 127, 123, 120, 123, 131, 109, 124, 112, 146, 113, 131, 124, 133, 137, 133, 124, 132, 117, 124, 132, 130, 130, 124, 141, 124, 128, 129, 147, 107, 126, 130, 126, 139, 125, 123, 142, 146, 145, 120, 130, 136, 115, 135, 125, 133, 131, 130, 126, 105, 129, 113, 127, 116, 107, 116, 123, 119, 129, 113, 125, 124, 129, 127, 139, 123, 118, 134, 132, 126, 137, 138, 127, 123, 126, 119, 133, 125, 123, 130, 136, 129, 144, 140, 127, 101, 116, 126, 119, 126, 121, 137, 130, 138, 112, 114, 124, 128, 132, 142, 118, 150, 135, 122, 122, 126, 149, 136, 127, 109, 133, 127, 124, 119, 117, 133, 114, 133, 122, 124, 128, 127, 120, 130, 133, 109, 141, 130, 123, 112, 123, 121, 138, 145, 125, 137, 132, 132, 133, 114, 123, 119, 127, 123, 123, 101, 131, 116, 119, 141, 121, 153, 132, 141, 127, 120, 136, 152, 128, 121, 135, 120, 113, 115, 107, 127, 137, 140, 117, 114, 127, 116, 149, 135, 114, 120, 132, 124, 123, 122, 111, 126, 133, 120, 130, 127, 119, 125, 109, 124, 128, 118, 147, 119, 118, 136, 118, 113, 115, 100, 120, 145, 131, 123, 132, 128, 134, 122, 121, 124, 118, 145, 128, 117, 111, 132, 130, 116, 124, 112, 127, 117, 121, 116, 118, 128, 123, 113, 127, 114, 126, 118, 119, 130, 115, 131, 124, 129, 110, 122, 121, 115, 125, 123, 126, 126, 126, 124, 129, 132, 124, 119, 125, 134, 114, 127, 114, 134, 117, 120, 128, 129, 115, 105, 125, 102, 112, 115, 111, 116, 134, 124, 120, 113, 122, 123, 118, 130, 116, 124, 132, 123, 128, 124, 128, 118, 147, 134, 125, 135, 135, 139, 119, 129, 118, 131, 115, 137, 113, 122, 119, 149, 117, 147, 117, 116, 118, 117, 133, 127, 128, 115, 135, 121, 141, 122, 129, 141, 112, 140, 137, 138, 122, 106, 122, 121, 114, 105, 125, 114, 138, 126, 115, 116, 132, 122, 137, 117, 118, 117, 134, 137, 135, 138, 128, 120, 132, 110, 111, 133, 124, 124, 138, 113, 108, 105, 123, 121, 122, 126, 130, 115, 111, 125, 123, 127, 134, 116, 113, 122, 125, 131, 109, 110, 134, 102, 121, 123, 123, 130, 119, 132, 123, 115, 126, 139, 115, 126, 136, 119, 115, 124, 126, 119, 119, 120, 119, 111, 124, 131, 133, 131, 135, 125, 128, 116, 123, 129, 110, 115, 139, 129, 136, 136, 140, 141, 129, 130, 140, 141, 115, 139, 124, 110, 115, 129, 122, 140, 129, 140, 145, 140, 115, 132, 125, 133, 114, 131, 136, 126, 128, 123, 133, 148, 126, 122, 112, 135, 128, 123, 122, 135, 133, 115, 141, 121, 125, 118, 119, 128, 125, 133, 120, 126, 120, 139, 140, 131, 120, 121, 130, 126, 129, 139, 132, 126, 119, 140, 129, 122, 123, 124, 136, 114, 131, 129, 132, 122, 121, 142, 131, 123, 124, 118, 134, 123, 134, 134, 151, 139, 123, 128, 111, 134, 130, 123, 113, 129, 117, 132, 125, 109, 138, 130, 135, 121, 121, 103, 136, 121, 120, 127, 127, 143, 127, 141, 109, 109, 130, 126, 128, 129, 128, 141, 115, 120, 122, 109, 128, 124, 133, 117, 115, 128, 131, 130, 155, 127, 126, 137, 131, 128, 138, 118, 137, 142, 140, 127, 152, 133, 133, 81, 128, 143, 119, 107, 128, 111, 103, 103, 115, 115, 141, 102, 121, 136, 121, 144, 128, 115, 137, 122, 129, 114, 133, 119, 129, 120, 109, 123, 118, 132, 118, 129, 118, 118, 128, 132, 136, 116, 126, 117, 127, 109, 103, 121, 131, 130, 131, 122, 104, 136, 131, 116, 125, 110, 129, 142, 133, 113, 115, 121, 120, 116, 131, 123, 125, 141, 116, 135, 136, 114, 123, 123, 114, 133, 124, 117, 127, 133, 111, 123, 138, 122, 123, 126, 138, 130, 123, 114, 114, 117, 134, 123, 117, 131, 113, 141, 132, 132, 136, 165, 113, 127, 116, 125, 125, 153, 132, 133, 123, 115, 118, 150, 145, 123, 143, 130, 130, 123, 125, 117, 125, 136, 142, 133, 118, 127, 109, 131, 116, 132, 137, 144, 119, 131, 125, 143, 111, 115, 114, 140, 121, 112, 125, 117, 132, 131, 128, 132, 125, 135, 116, 140, 111, 115, 123, 107, 125, 120, 106, 126, 143, 113, 103, 114, 120, 117, 134, 129, 119, 130, 124, 136, 114, 134, 137, 112, 121, 126, 125, 125, 139, 121, 118, 114, 120, 112, 119, 106, 120, 122, 122, 139, 116, 126, 121, 126, 130, 114, 121, 125, 104, 107, 121, 129, 124, 131, 118, 130, 143, 117, 136, 129, 125, 127, 111, 122, 119, 116, 127, 126, 138, 134, 117, 125, 102, 123, 110, 127, 123, 109, 128, 132, 117, 141, 125, 108, 127, 122, 93, 143, 141, 135, 125, 108, 119, 152, 127, 136, 127, 131, 130, 117, 99, 129, 122, 136, 120, 120, 125, 120, 125, 113, 133, 151, 144, 125, 103, 117, 130, 126, 111, 127, 142, 132, 102, 127, 119, 108, 125, 127, 116, 117, 125, 129, 125, 119, 126, 110, 117, 135, 120, 130, 130, 142, 126, 133, 122, 134, 131, 116, 131, 115, 111, 126, 136, 121, 131, 134, 107, 112, 124, 119, 126, 125, 121, 138, 126, 165, 130, 118, 109, 137, 125, 111, 117, 131, 130, 108, 124, 149, 129, 145, 120, 122, 132, 125, 123, 141, 117, 130, 122, 132, 118, 140, 140, 134, 126, 140, 106, 132, 128, 114, 107, 118, 128, 129, 115, 133, 120, 136, 117, 114, 125, 132, 138, 125, 126, 130, 116, 119, 132, 134, 115, 137, 125, 126, 122, 101, 127, 140, 125, 128, 115, 116, 120, 121, 138, 122, 110, 125, 117, 136, 142, 123, 133, 125, 116, 130, 127, 128, 135, 111, 134, 137, 128, 105, 153, 111, 117, 114, 111, 114, 112, 132, 126, 125, 114, 122, 127, 116, 125, 130, 113, 138, 129, 118, 134, 135, 103, 144, 111, 127, 118, 112, 136, 130, 127, 133, 128, 127, 125, 129, 124, 123, 138, 130, 133, 118, 120, 133, 137, 145, 127, 126, 123, 110, 110, 115, 127, 112, 122, 130, 117, 131, 148, 139, 123, 122, 114, 119, 120, 116, 117, 131, 124, 108, 130, 125, 120, 133, 125, 128, 120, 119, 125, 123, 127, 143, 136, 130, 133, 133, 150, 124, 118, 132, 133, 124, 139, 118, 126, 135, 132, 136, 110, 138, 119, 118, 133, 138, 118, 108, 134, 125, 114, 128, 114, 123, 122, 111, 132, 135, 133, 120, 122, 118, 130, 129, 131, 123, 109, 123, 128, 130, 106, 114, 147, 131, 145, 146, 123, 129, 129, 123, 107, 124, 131, 121, 118, 136, 144, 123, 126, 126, 126, 131, 129, 112, 124, 139, 108, 123, 113, 122, 117, 145, 129, 116, 146, 128, 120, 131, 113, 125, 122, 120, 111, 120, 132, 141, 128, 122, 131, 128, 127, 126, 126, 138, 123, 145, 119, 135, 114, 129, 109, 116, 117, 124, 137, 146, 126, 121, 108, 131, 103, 125, 135, 122, 119, 119, 119, 120, 138, 145, 126, 120, 131, 102, 116, 124, 123, 125, 102, 143, 122, 122, 130, 117, 123, 115, 126, 99, 123, 115, 113, 141, 117, 115, 142, 132, 121, 130, 115, 134, 122, 133, 124, 113, 118, 121, 119, 130, 170, 124, 93, 136, 143, 123, 148, 152, 111, 117, 118, 140, 124, 142, 108, 125, 128, 119, 135, 116, 124, 119, 100, 93, 108, 123, 125, 122, 141, 131, 135, 140, 138, 140, 115, 119, 128, 134, 126, 123, 113, 120, 122, 113, 142, 130, 129, 124, 130, 123, 116, 119, 135, 134, 115, 152, 113, 147, 113, 111, 116, 112, 125, 126, 130, 123, 135, 133, 138, 123, 116, 113, 131, 116, 120, 117, 124, 106, 143, 151, 124, 135, 125, 125, 118, 125, 152, 136, 122, 129, 105, 125, 101, 122, 124, 135, 138, 135, 112, 129, 126, 112, 120, 123, 118, 115, 111, 118, 115, 117, 132, 121, 118, 116, 148, 131, 116, 98, 141, 104, 130, 127, 96, 132, 97, 127, 129, 124, 133, 138, 142, 114, 108, 144, 134, 129, 133, 136, 134, 117, 119, 104, 120, 130, 130, 115, 107, 120, 138, 115, 127, 119, 142, 118, 134, 106, 121, 119, 119, 128, 125, 123, 108, 137, 136, 136, 123, 116, 121, 130, 116, 120, 112, 118, 126, 138, 138, 128, 124, 117, 143, 117, 133, 123, 123, 139, 129, 131, 125, 131, 133, 124, 112, 111, 121, 130, 152, 130, 132, 125, 125, 148, 115, 134, 122, 121, 144, 130, 136, 115, 142, 136, 137, 133, 128, 112, 115, 127, 133, 108, 106, 118, 113, 134, 132, 120, 140, 135, 137, 129, 133, 132, 124, 123, 120, 133, 123, 138, 135, 124, 109, 97, 133, 124, 123, 141, 116, 122, 137, 135, 117, 121, 117, 132, 122, 122, 95, 104, 145, 136, 130, 122, 131, 133, 107, 109, 124, 125, 129, 108, 138, 119, 141, 103, 135, 117, 149, 130, 123, 118, 121, 116, 122, 117, 126, 124, 119, 113, 120, 116, 127, 139, 126, 104, 125, 127, 123, 125, 133, 118, 126, 105, 116, 115, 132, 135, 128, 132, 152, 110, 121, 143, 130, 122, 123, 133, 145, 122, 131, 124, 113, 132, 122, 123, 127, 128, 118, 117, 140, 117, 119, 122, 120, 124, 119, 113, 122, 113, 123, 121, 134, 115, 135, 128, 118, 128, 120, 129, 123, 120, 144, 134, 113, 121, 104, 121, 125, 94, 98, 103, 123, 117, 141, 113, 132, 109, 126, 135, 121, 122, 137, 124, 149, 116, 140, 120, 130, 139, 139, 114, 130, 131, 111, 133, 145, 120, 131, 118, 120, 131, 122, 122, 118, 121, 149, 148, 138, 126, 126, 134, 121, 118, 121, 117, 134, 111, 137, 127, 121, 125, 122, 131, 129, 120, 132, 139, 131, 127, 129, 123, 124, 114, 115, 129, 123, 103, 132, 115, 107, 136, 137, 121, 134, 135, 127, 143, 121, 114, 122, 124, 120, 121, 125, 134, 123, 134, 122, 141, 119, 142, 144, 130, 117, 121, 129, 127, 118, 104, 129, 131, 121, 99, 135, 113, 127, 113, 132, 122, 124, 104, 121, 119, 136, 128, 108, 128, 128, 117, 118, 111, 149, 125, 137, 121, 133, 133, 128, 145, 135, 108, 123, 114, 137, 128, 130, 140, 123, 106, 115, 138, 112, 135, 128, 123, 120, 135, 126, 126, 138, 112, 131, 134, 99, 125, 119, 118, 139, 127, 149, 135, 131, 127, 125, 118, 132, 126, 135, 128, 145, 139, 131, 125, 124, 113, 104, 133, 124, 111, 131, 143, 120, 112, 122, 114, 104, 147, 113, 123, 105, 126, 99, 140, 123, 112, 136, 130, 153, 128, 134, 108, 138, 135, 127, 127, 103, 127, 126, 123, 102, 116, 129, 131, 122, 140, 138, 145, 138, 132, 130, 132, 128, 138, 115, 138, 119, 130, 123, 138, 136, 123, 102, 133, 129, 113, 144, 133, 133, 120, 117, 111, 118, 108, 112, 147, 113, 127, 119, 119, 126, 130, 132, 131, 116, 116, 134, 118, 132, 128, 106, 127, 133, 139, 127, 136, 112, 107, 134, 124, 110, 118, 107, 126, 131, 123, 132, 118, 104, 133, 118, 117, 131, 130, 130, 118, 120, 104, 124, 136, 92, 125, 118, 124, 113, 125, 129, 136, 128, 115, 122, 107, 136, 104, 132, 119, 129, 157, 127, 137, 125, 139, 130, 126, 121, 126, 124, 115, 117, 93, 107, 124, 140, 119, 118, 135, 126, 125, 126, 127, 141, 130, 123, 139, 122, 134, 147, 112, 117, 122, 141, 122, 118, 129, 126, 136, 115, 132, 88, 132, 131, 129, 104, 120, 134, 125, 127, 125, 143, 126, 134, 139, 121, 136, 124, 115, 102, 135, 99, 124, 136, 137, 122, 121, 113, 119, 128, 130, 128, 114, 117, 117, 130, 119, 116, 125, 134, 124, 136, 132, 117, 133, 125, 125, 127, 132, 128, 128, 120, 114, 123, 132, 142, 124, 139, 130, 113, 115, 136, 109, 114, 126, 129, 115, 122, 132, 138, 132, 129, 117, 125, 112, 121, 124, 125, 134, 118, 118, 125, 139, 126, 116, 118, 122, 125, 120, 135, 139, 115, 113, 123, 109, 128, 110, 128, 129, 130, 137, 131, 139, 127, 127, 101, 127, 97, 127, 134, 119, 128, 114, 115, 134, 100, 114, 121, 128, 137, 130, 127, 115, 135, 118, 118, 133, 124, 124, 122, 125, 150, 124, 130, 123, 132, 118, 112, 120, 120, 131, 129, 127, 128, 110, 132, 124, 116, 121, 131, 129, 124, 130, 130, 135, 105, 122, 110, 145, 133, 118, 144, 114, 132, 125, 121, 119, 108, 141, 123, 116, 124, 114, 130, 110, 140, 124, 127, 123, 105, 118, 111, 136, 127, 117, 132, 127, 130, 131, 116, 125, 128, 138, 128, 124, 131, 113, 120, 116, 136, 113, 119, 137, 119, 123, 138, 127, 109, 102, 136, 98, 135, 124, 119, 126, 148, 93, 132, 126, 134, 113, 127, 109, 120, 127, 115, 138, 131, 131, 145, 107, 132, 123, 118, 119, 111, 118, 129, 135, 140, 121, 124, 136, 129, 111, 124, 127, 141, 145, 125, 116, 138, 141, 133, 139, 128, 128, 133, 127, 141, 129, 128, 113, 124, 120, 139, 119, 125, 133, 134, 145, 122, 114, 129, 126, 125, 120, 155, 108, 124, 135, 111, 125, 128, 119, 126, 130, 135, 120, 129, 126, 133, 120, 117, 130, 130, 128, 134, 119, 125, 127, 125, 129, 120, 121, 149, 110, 120, 131, 132, 125, 131, 114, 126, 138, 125, 128, 117, 98, 128, 134, 135, 121, 126, 106, 128, 139, 127, 118, 123, 123, 117, 126, 125, 128, 118, 125, 131, 127, 155, 126, 132, 150, 115, 112, 123, 123, 123, 128, 129, 117, 128, 127, 127, 126, 105, 139, 115, 120, 122, 116, 133, 134, 118, 129, 123, 124, 126, 145, 133, 123, 136, 134, 122, 130, 122, 134, 138, 106, 113, 126, 119, 128, 130, 126, 115, 110, 111, 116, 108, 125, 113, 121, 143, 128, 126, 124, 124, 131, 131, 138, 115, 127, 132, 134, 116, 125, 121, 115, 126, 108, 118, 120, 118, 117, 136, 126, 104, 118, 122, 127, 115, 122, 130, 121, 134, 123, 131, 127, 125, 123, 126, 131, 120, 123, 123, 121, 113, 116, 109, 117, 119, 112, 119, 137, 119, 111, 118, 132, 132, 144, 125, 131, 135, 120, 127, 133, 103, 119, 150, 126, 117, 135, 137, 145, 106, 120, 113, 132, 140, 136, 120, 119, 102, 125, 133, 125, 125, 110, 133, 117, 136, 123, 121, 135, 137, 120, 140, 119, 117, 126, 125, 128, 128, 132, 133, 119, 128, 120, 121, 113, 133, 127, 124, 132, 116, 119, 139, 121, 129, 133, 113, 132, 112, 122, 123, 111, 126, 136, 133, 136, 132, 123, 124, 139, 131, 145, 111, 118, 138, 148, 139, 123, 128, 110, 138, 142, 122, 118, 121, 122, 122, 121, 130, 125, 109, 119, 126, 133, 162, 130, 131, 117, 108, 112, 125, 123, 136, 125, 124, 129, 111, 97, 118, 133, 133, 126, 123, 134, 134, 128, 126, 123, 120, 139, 127, 139, 127, 100, 122, 122, 128, 113, 123, 122, 141, 137, 140, 122, 136, 129, 126, 116, 126, 140, 133, 133, 116, 131, 89, 116, 125, 112, 124, 121, 139, 133, 124, 111, 115, 107, 141, 124, 120, 129, 129, 134, 127, 119, 122, 134, 110, 131, 132, 117, 154, 122, 143, 125, 126, 122, 120, 118, 135, 114, 119, 136, 137, 136, 130, 107, 138, 129, 110, 109, 133, 124, 122, 139, 128, 159, 138, 124, 118, 137, 127, 127, 144, 124, 104, 125, 130, 122, 118, 115, 122, 109, 135, 134, 128, 124, 131, 125, 91, 125, 120, 130, 125, 122, 133, 133, 125, 114, 121, 125, 123, 126, 130, 124, 102, 122, 132, 127, 114, 122, 139, 116, 133, 130, 127, 112, 117, 120, 140, 121, 127, 112, 136, 132, 120, 128, 141, 124, 146, 126, 132, 124, 123, 109, 133, 134, 131, 121, 126, 121, 128, 132, 119, 128, 131, 136, 130, 125, 133, 154, 126, 117, 132, 136, 129, 125, 126, 130, 128, 141, 137, 114, 116, 126, 136, 118, 129, 121, 138, 119, 123, 156, 125, 128, 128, 120, 132, 116, 124, 141, 135, 121, 109, 124, 137, 129, 147, 118, 110, 128, 134, 135, 132, 108, 127, 112, 132, 97, 113, 123, 110, 150, 155, 127, 119, 116, 132, 130, 119, 119, 129, 141, 125, 139, 118, 103, 136, 112, 120, 134, 131, 128, 119, 130, 117, 132, 127, 126, 149, 118, 141, 141, 125, 126, 123, 124, 119, 105, 135, 120, 145, 128, 126, 142, 125, 130, 128, 117, 129, 124, 127, 133, 127, 130, 133, 120, 147, 130, 122, 140, 128, 136, 129, 118, 125, 124, 110, 127, 127, 122, 122, 124, 124, 124, 134, 127, 120, 130, 135, 128, 123, 143, 132, 126, 139, 128, 134, 127, 139, 121, 125, 105, 102, 128, 118, 125, 134, 136, 129, 137, 125, 134, 147, 106, 120, 114, 118, 129, 106, 141, 121, 134, 115, 122, 105, 147, 108, 116, 128, 84, 113, 130, 135, 126, 130, 137, 127, 111, 131, 104, 129, 133, 129, 130, 118, 119, 125, 119, 116, 90, 127, 123, 115, 111, 113, 135, 129, 132, 112, 126, 139, 122, 125, 130, 125, 143, 127, 126, 102, 123, 120, 130, 123, 133, 118, 115, 113, 121, 123, 98, 125, 132, 137, 121, 134, 130, 111, 114, 136, 124, 112, 104, 116, 126, 116, 110, 126, 129, 117, 117, 127, 122, 124, 122, 123, 113, 132, 126, 127, 126, 125, 131, 118, 128, 135, 119, 132, 126, 128, 124, 121, 112, 126, 112, 106, 118, 117, 121, 156, 134, 133, 124, 133, 131, 109, 131, 127, 136, 128, 129, 115, 119, 131, 117, 148, 128, 133, 140, 127, 129, 136, 125, 117, 125, 128, 135, 126, 136, 114, 124, 109, 133, 132, 119, 124, 129, 121, 135, 125, 130, 127, 119, 146, 119, 133, 116, 111, 122, 123, 121, 116, 104, 120, 142, 124, 133, 125, 118, 102, 113, 131, 131, 116, 129, 132, 123, 117, 143, 125, 119, 121, 122, 123, 120, 120, 142, 116, 115, 130, 144, 129, 127, 109, 120, 142, 137, 119, 124, 127, 129, 133, 129, 130, 117, 122, 114, 125, 136, 113, 134, 136, 141, 142, 118, 130, 122, 118, 122, 148, 136, 135, 125, 117, 121, 127, 124, 113, 118, 119, 130, 127, 116, 133, 131, 120, 140, 126, 122, 95, 119, 111, 126, 133, 128, 137, 129, 126, 127, 135, 122, 138, 133, 130, 129, 135, 110, 118, 107, 122, 130, 122, 121, 133, 122, 146, 143, 133, 123, 103, 140, 144, 131, 118, 129, 137, 146, 123, 144, 140, 122, 126, 127, 127, 115, 112, 78, 146, 127, 133, 122, 132, 118, 114, 137, 138, 136, 111, 118, 123, 116, 124, 125, 134, 122, 132, 134, 125, 113, 129, 124, 117, 107, 123, 132, 126, 123, 137, 131, 124, 134, 114, 135, 118, 128, 131, 134, 131, 113, 124, 95, 129, 138, 134, 115, 125, 94, 122, 119, 123, 120, 136, 118, 139, 127, 139, 131, 119, 135, 122, 123, 140, 112, 129, 124, 116, 126, 106, 129, 136, 136, 127, 124, 136, 110, 119, 119, 121, 114, 117, 146, 123, 128, 119, 118, 127, 132, 127, 118, 128, 123, 131, 139, 127, 123, 134, 129, 126, 128, 125, 124, 132, 123, 119, 142, 120, 123, 148, 121, 135, 139, 138, 114, 124, 136, 143, 143, 126, 122, 146, 125, 129, 132, 110, 130, 132, 124, 128, 116, 116, 130, 144, 121, 113, 129, 121, 118, 141, 124, 135, 133, 122, 141, 135, 112, 147, 102, 141, 135, 130, 121, 110, 127, 123, 128, 139, 129, 120, 130, 151, 129, 120, 123, 121, 102, 126, 129, 127, 121, 105, 123, 119, 126, 141, 116, 125, 127, 109, 131, 114, 138, 135, 112, 126, 124, 123, 123, 123, 122, 121, 133, 128, 139, 126, 118, 118, 118, 129, 133, 125, 141, 133, 123, 123, 122, 124, 130, 129, 136, 125, 111, 109, 126, 123, 120, 129, 117, 135, 122, 141, 116, 149, 115, 122, 130, 121, 123, 119, 121, 129, 117, 130, 125, 137, 131, 122, 134, 122, 124, 131, 130, 122, 122, 102, 134, 127, 119, 118, 112, 113, 107, 109, 124, 117, 124, 122, 122, 131, 114, 132, 133, 125, 135, 137, 118, 121, 131, 112, 123, 115, 132, 139, 121, 132, 110, 111, 128, 138, 136, 138, 119, 120, 133, 124, 112, 124, 132, 121, 117, 127, 144, 133, 145, 136, 147, 122, 130, 120, 114, 122, 132, 117, 132, 108, 110, 115, 129, 118, 130, 144, 120, 127, 111, 106, 122, 128, 110, 132, 120, 109, 137, 120, 134, 119, 129, 117, 112, 116, 146, 129, 133, 119, 106, 122, 139, 114, 121, 110, 129, 116, 103, 116, 127, 128, 119, 121, 129, 124, 138, 131, 127, 124, 147, 111, 124, 118, 141, 122, 132, 123, 120, 135, 123, 135, 137, 136, 135, 117, 126, 135, 130, 127, 126, 121, 140, 123, 132, 132, 110, 116, 116, 125, 137, 147, 131, 127, 118, 120, 125, 115, 132, 120, 118, 134, 118, 123, 146, 112, 130, 121, 118, 131, 135, 120, 133, 120, 124, 122, 132, 133, 138, 130, 134, 134, 136, 119, 134, 125, 123, 134, 142, 113, 121, 124, 112, 137, 124, 124, 127, 137, 106, 146, 125, 133, 123, 123, 120, 120, 133, 132, 125, 122, 126, 124, 128, 142, 134, 127, 129, 110, 126, 113, 120, 120, 129, 126, 130, 127, 121, 136, 128, 132, 116, 120, 124, 127, 146, 121, 111, 129, 133, 111, 122, 128, 121, 114, 122, 109, 136, 127, 117, 139, 121, 124, 147, 123, 130, 125, 132, 114, 143, 155, 120, 135, 142, 119, 118, 119, 118, 134, 131, 127, 138, 119, 130, 110, 119, 122, 128, 122, 132, 120, 125, 128, 132, 114, 139, 125, 121, 110, 114, 117, 138, 124, 119, 124, 110, 121, 112, 113, 115, 117, 101, 137, 113, 119, 132, 136, 105, 118, 136, 137, 138, 129, 139, 127, 112, 125, 145, 123, 138, 116, 138, 135, 120, 114, 130, 144, 135, 121, 120, 121, 134, 131, 135, 130, 141, 122, 117, 126, 128, 133, 111, 126, 132, 127, 130, 125, 125, 128, 115, 114, 135, 112, 131, 140, 127, 121, 137, 128, 129, 111, 135, 133, 128, 138, 130, 132, 124, 122, 110, 134, 126, 106, 136, 116, 111, 122, 130, 123, 143, 132, 127, 125, 138, 139, 121, 128, 129, 105, 109, 141, 138, 108, 123, 118, 139, 125, 142, 128, 128, 108, 131, 117, 118, 118, 139, 123, 121, 120, 125, 116, 137, 113, 114, 131, 116, 128, 119, 104, 155, 122, 117, 137, 116, 117, 129, 142, 115, 114, 135, 113, 149, 125, 134, 122, 140, 125, 138, 117, 121, 110, 126, 144, 106, 112, 122, 127, 131, 122, 122, 125, 131, 103, 129, 127, 130, 130, 126, 113, 127, 160, 109, 123, 128, 114, 97, 132, 139, 113, 122, 116, 137, 137, 124, 112, 120, 125, 121, 127, 112, 127, 126, 137, 129, 142, 135, 129, 123, 137, 102, 126, 143, 124, 128, 109, 130, 139, 120, 126, 125, 116, 111, 113, 132, 130, 131, 129, 126, 122, 137, 127, 128, 129, 120, 132, 123, 118, 125, 119, 108, 126, 134, 130, 128, 125, 123, 129, 142, 129, 120, 137, 127, 111, 131, 138, 129, 122, 124, 125, 143, 140, 127, 125, 129, 125, 139, 113, 109, 126, 127, 135, 144, 138, 106, 113, 115, 121, 113, 126, 130, 130, 143, 122, 122, 109, 131, 125, 127, 127, 141, 121, 120, 124, 139, 139, 130, 118, 129, 108, 129, 117, 115, 130, 137, 120, 100, 131, 119, 118, 113, 133, 126, 134, 149, 113, 144, 133, 112, 125, 127, 135, 113, 125, 132, 133, 106, 107, 155, 120, 133, 139, 151, 123, 128, 128, 128, 112, 120, 124, 153, 136, 138, 123, 127, 131, 131, 105, 125, 127, 114, 126, 106, 123, 122, 120, 132, 133, 133, 126, 123, 143, 123, 132, 130, 127, 104, 142, 123, 120, 139, 128, 103, 129, 128, 133, 129, 108, 132, 107, 115, 129, 133, 118, 132, 123, 120, 139, 117, 132, 104, 133, 123, 120, 143, 133, 140, 131, 127, 143, 126, 117, 130, 118, 119, 118, 120, 123, 117, 140, 130, 135, 132, 125, 115, 130, 119, 126, 137, 142, 132, 130, 130, 109, 127, 125, 132, 119, 111, 129, 135, 122, 130, 111, 119, 125, 124, 132, 133, 135, 135, 120, 139, 119, 131, 136, 110, 124, 126, 133, 128, 133, 116, 123, 123, 105, 146, 120, 106, 132, 134, 126, 124, 116, 118, 124, 115, 112, 132, 129, 115, 117, 126, 129, 115, 129, 113, 129, 132, 105, 128, 122, 130, 114, 123, 122, 115, 126, 119, 142, 127, 126, 125, 129, 115, 141, 126, 115, 117, 127, 137, 114, 134, 113, 110, 111, 141, 127, 117, 157, 117, 119, 123, 117, 120, 118, 133, 131, 142, 138, 129, 130, 145, 123, 113, 133, 131, 138, 122, 130, 149, 117, 133, 134, 140, 123, 124, 123, 133, 129, 124, 135, 110, 124, 133, 120, 134, 108, 117, 122, 122, 137, 108, 118, 112, 130, 131, 125, 112, 120, 106, 128, 112, 115, 122, 130, 138, 146, 111, 141, 121, 119, 125, 117, 108, 134, 119, 125, 119, 116, 129, 124, 146, 123, 141, 100, 130, 118, 101, 104, 127, 134, 135, 132, 143, 112, 128, 109, 137, 127, 112, 106, 132, 120, 118, 131, 128, 96, 129, 145, 126, 122, 137, 123, 119, 122, 131, 118, 120, 135, 113, 118, 126, 126, 120, 121, 119, 131, 130, 124, 112, 131, 151, 140, 125, 134, 128, 117, 112, 133, 124, 110, 129, 117, 124, 141, 153, 118, 119, 133, 103, 116, 140, 115, 128, 119, 120, 127, 120, 132, 127, 124, 112, 141, 111, 120, 122, 120, 134, 129, 128, 129, 144, 127, 123, 114, 129, 135, 131, 110, 112, 109, 126, 126, 125, 129, 134, 119, 114, 119, 129, 139, 132, 142, 126, 107, 108, 123, 118, 95, 94, 136, 117, 109, 123, 117, 135, 111, 116, 130, 129, 119, 129, 132, 131, 122, 119, 119, 115, 110, 114, 112, 122, 126, 123, 120, 122, 132, 122, 140, 123, 113, 141, 116, 136, 118, 127, 128, 133, 115, 126, 124, 111, 120, 113, 135, 115, 122, 120, 124, 139, 119, 106, 131, 119, 119, 137, 126, 125, 124, 122, 103, 116, 138, 112, 117, 107, 126, 115, 113, 128, 135, 141, 114, 114, 117, 129, 128, 111, 133, 119, 120, 128, 104, 118, 123, 116, 110, 150, 119, 124, 115, 117, 105, 129, 116, 110, 126, 126, 127, 144, 112, 125, 113, 131, 143, 130, 128, 137, 138, 146, 139, 130, 130, 120, 135, 138, 125, 127, 121, 132, 141, 119, 134, 139, 126, 139, 125, 101, 124, 122, 122, 119, 125, 128, 126, 130, 120, 130, 93, 120, 125, 119, 131, 120, 133, 95, 126, 119, 132, 122, 131, 121, 116, 126, 116, 113, 112, 143, 135, 129, 135, 134, 118, 129, 140, 136, 132, 128, 120, 135, 135, 123, 131, 114, 123, 125, 125, 119, 125, 122, 130, 107, 124, 128, 140, 137, 126, 119, 137, 125, 142, 122, 142, 129, 148, 119, 123, 125, 131, 123, 132, 108, 129, 123, 116, 109, 128, 131, 119, 132, 138, 129, 129, 136, 114, 116, 111, 147, 123, 124, 149, 122, 116, 124, 111, 128, 104, 134, 150, 124, 114, 137, 117, 121, 146, 114, 100, 118, 143, 139, 150, 125, 147, 114, 130, 125, 109, 118, 111, 129, 135, 131, 139, 113, 125, 115, 123, 124, 123, 130, 123, 134, 120, 134, 121, 134, 121, 117, 123, 116, 133, 150, 122, 117, 106, 127, 126, 122, 146, 134, 105, 121, 135, 123, 117, 116, 134, 117, 132, 118, 125, 136, 135, 120, 145, 112, 127, 121, 127, 134, 135, 136, 110, 121, 133, 127, 139, 125, 131, 114, 123, 130, 120, 134, 136, 140, 124, 115, 110, 118, 130, 132, 120, 118, 117, 151, 142, 114, 129, 123, 130, 119, 126, 136, 127, 144, 130, 124, 129, 137, 144, 132, 115, 116, 151, 134, 123, 140, 130, 142, 127, 98, 144, 113, 116, 138, 127, 132, 136, 128, 143, 129, 132, 126, 132, 144, 128, 118, 129, 116, 138, 121, 131, 134, 140, 116, 112, 133, 125, 133, 122, 146, 134, 121, 139, 118, 134, 136, 124, 107, 122, 139, 125, 124, 124, 126, 121, 118, 133, 114, 119, 120, 147, 122, 140, 135, 121, 122, 128, 124, 107, 129, 133, 112, 140, 124, 118, 129, 125, 116, 108, 123, 116, 124, 131, 107, 140, 129, 109, 133, 136, 143, 113, 118, 119, 139, 107, 120, 123, 124, 113, 129, 102, 119, 119, 132, 145, 117, 132, 121, 123, 132, 118, 124, 122, 122, 119, 124, 136, 134, 134, 127, 132, 115, 140, 134, 146, 113, 133, 113, 120, 127, 111, 127, 127, 115, 120, 139, 120, 120, 114, 125, 113, 121, 137, 124, 122, 117, 128, 145, 116, 141, 130, 114, 127, 124, 127, 129, 143, 114, 135, 114, 108, 127, 127, 115, 119, 147, 124, 112, 129, 123, 117, 116, 104, 136, 137, 141, 125, 111, 116, 122, 128, 118, 118, 124, 135, 132, 112, 116, 124, 126, 121, 116, 121, 124, 154, 122, 125, 113, 111, 134, 119, 106, 129, 150, 120, 115, 116, 139, 103, 124, 122, 138, 133, 133, 143, 122, 129, 118, 135, 108, 124, 122, 121, 110, 132, 125, 128, 131, 113, 101, 89, 114, 120, 146, 125, 123, 116, 109, 133, 119, 117, 128, 116, 125, 119, 116, 121, 120, 120, 146, 144, 125, 137, 122, 109, 128, 135, 103, 104, 119, 122, 130, 146, 134, 126, 123, 125, 135, 112, 131, 131, 136, 121, 126, 100, 113, 134, 136, 151, 104, 112, 125, 118, 126, 132, 120, 133, 119, 117, 115, 124, 134, 122, 118, 151, 136, 120, 118, 128, 135, 130, 145, 123, 129, 135, 131, 131, 114, 140, 110, 127, 119, 109, 107, 124, 128, 136, 131, 120, 114, 142, 128, 113, 135, 115, 123, 137, 108, 131, 130, 116, 125, 130, 142, 131, 117, 119, 136, 118, 124, 120, 129, 109, 126, 117, 139, 135, 110, 127, 117, 116, 134, 134, 125, 130, 129, 130, 144, 130, 138, 120, 108, 124, 126, 126, 121, 130, 131, 129, 121, 124, 126, 126, 117, 123, 123, 141, 108, 135, 95, 105, 118, 148, 131, 134, 138, 131, 134, 123, 112, 152, 141, 125, 131, 134, 124, 135, 126, 146, 113, 127, 135, 123, 133, 129, 139, 116, 129, 135, 122, 116, 127, 129, 118, 116, 117, 134, 113, 126, 118, 136, 146, 137, 118, 132, 136, 136, 135, 151, 122, 120, 115, 133, 124, 120, 116, 130, 126, 142, 136, 138, 132, 133, 129, 127, 116, 123, 120, 110, 130, 139, 134, 140, 120, 110, 110, 129, 129, 125, 122, 126, 134, 156, 116, 121, 124, 131, 125, 120, 113, 128, 127, 105, 146, 121, 121, 129, 145, 121, 122, 116, 135, 127, 131, 117, 139, 135, 115, 123, 117, 101, 135, 139, 125, 123, 117, 105, 121, 133, 124, 131, 126, 127, 110, 122, 126, 114, 143, 128, 139, 133, 135, 119, 140, 105, 126, 128, 110, 123, 129, 126, 115, 124, 121, 124, 117, 111, 120, 129, 137, 135, 124, 116, 118, 124, 136, 142, 128, 122, 143, 122, 130, 118, 123, 122, 108, 112, 116, 103, 116, 118, 134, 138, 129, 130, 123, 132, 124, 132, 113, 130, 121, 137, 142, 134, 129, 125, 143, 117, 129, 130, 124, 119, 128, 142, 137, 122, 125, 110, 136, 130, 133, 137, 125, 124, 109, 132, 127, 120, 120, 139, 138, 136, 124, 116, 121, 161, 139, 127, 111, 120, 113, 131, 124, 117, 123, 136, 132, 127, 131, 133, 126, 127, 128, 116, 122, 148, 112, 123, 136, 121, 135, 133, 127, 127, 103, 130, 137, 113, 117, 116, 139, 130, 123, 118, 128, 143, 115, 131, 116, 130, 118, 114, 121, 124, 133, 110, 112, 119, 115, 145, 106, 117, 125, 119, 128, 134, 116, 123, 129, 140, 134, 141, 118, 126, 109, 143, 125, 121, 124, 109, 130, 130, 135, 109, 129, 107, 126, 113, 127, 144, 144, 116, 121, 138, 111, 99, 139, 135, 113, 136, 136, 139, 125, 131, 140, 117, 124, 125, 120, 124, 124, 124, 105, 130, 123, 130, 124, 134, 118, 123, 120, 110, 107, 125, 146, 107, 115, 134, 132, 139, 129, 127, 106, 150, 150, 123, 119, 119, 120, 137, 118, 122, 139, 140, 130, 133, 110, 112, 121, 141, 130, 130, 133, 122, 122, 142, 141, 122, 123, 109, 108, 121, 156, 141, 140, 118, 125, 119, 119, 136, 137, 124, 112, 141, 124, 154, 124, 121, 124, 134, 129, 112, 127, 120, 115, 131, 133, 140, 115, 118, 128, 132, 119, 109, 136, 118, 120, 118, 115, 112, 120, 136, 123, 127, 124, 123, 115, 133, 120, 117, 117, 125, 127, 120, 131, 128, 130, 98, 123, 111, 123, 133, 126, 126, 127, 114, 136, 130, 122, 134, 115, 129, 114, 120, 132, 133, 112, 124, 114, 124, 132, 125, 105, 130, 132, 121, 121, 132, 131, 129, 123, 118, 147, 136, 123, 119, 133, 130, 148, 126, 114, 132, 129, 134, 118, 126, 122, 113, 107, 110, 151, 124, 117, 116, 122, 119, 121, 137, 125, 109, 110, 129, 128, 125, 124, 128, 118, 94, 107, 113, 119, 124, 132, 122, 127, 130, 129, 119, 99, 138, 131, 126, 129, 129, 136, 115, 133, 120, 132, 120, 130, 131, 125, 120, 133, 135, 117, 119, 121, 141, 129, 108, 144, 123, 120, 138, 131, 134, 116, 116, 127, 133, 107, 112, 145, 114, 124, 127, 116, 124, 126, 117, 114, 136, 103, 119, 134, 144, 119, 124, 114, 131, 133, 130, 119, 129, 128, 100, 124, 123, 120, 130, 133, 121, 133, 126, 105, 125, 117, 130, 130, 133, 110, 119, 135, 125, 128, 124, 123, 142, 133, 137, 129, 138, 128, 113, 128, 108, 126, 155, 121, 122, 111, 113, 113, 116, 115, 124, 128, 123, 127, 128, 146, 133, 114, 125, 110, 132, 118, 133, 128, 119, 132, 126, 133, 134, 130, 141, 127, 141, 139, 141, 132, 146, 120, 117, 131, 137, 122, 138, 116, 136, 134, 120, 139, 134, 116, 113, 129, 147, 131, 144, 105, 127, 129, 123, 127, 109, 141, 133, 133, 123, 127, 118, 119, 122, 131, 128, 139, 127, 138, 109, 116, 124, 109, 141, 114, 124, 124, 124, 119, 120, 121, 137, 139, 126, 142, 141, 110, 120, 130, 112, 142, 115, 131, 125, 117, 129, 116, 131, 122, 137, 120, 154, 129, 112, 132, 124, 122, 123, 118, 142, 125, 119, 131, 113, 131, 128, 133, 119, 122, 122, 131, 139, 133, 133, 117, 113, 139, 133, 130, 129, 150, 112, 113, 134, 125, 128, 130, 136, 110, 99, 130, 122, 122, 112, 129, 155, 113, 124, 110, 105, 131, 146, 140, 130, 126, 142, 123, 126, 132, 136, 123, 123, 130, 120, 129, 123, 117, 119, 133, 110, 117, 122, 132, 128, 126, 134, 130, 128, 111, 138, 112, 145, 126, 120, 133, 135, 140, 124, 135, 125, 128, 129, 111, 123, 155, 119, 129, 122, 143, 124, 152, 120, 132, 133, 127, 118, 140, 122, 116, 127, 116, 132, 132, 121, 128, 115, 155, 133, 133, 129, 138, 151, 125, 141, 115, 129, 142, 128, 140, 142, 133, 150, 114, 117, 117, 136, 149, 148, 125, 112, 132, 118, 134, 137, 117, 126, 135, 131, 120, 125, 129, 113, 119, 133, 121, 120, 124, 122, 131, 130, 137, 124, 119, 120, 121, 129, 130, 121, 111, 109, 145, 123, 126, 112, 128, 124, 125, 125, 136, 120, 133, 121, 128, 127, 116, 107, 122, 130, 126, 138, 128, 134, 130, 131, 132, 149, 121, 122, 132, 123, 137, 118, 125, 126, 135, 110, 129, 111, 128, 131, 119, 130, 111, 135, 114, 123, 109, 127, 112, 126, 114, 109, 132, 106, 131, 139, 122, 101, 122, 127, 121, 131, 113, 119, 129, 124, 113, 110, 121, 134, 138, 134, 130, 133, 118, 111, 113, 109, 132, 112, 129, 130, 129, 145, 127, 130, 119, 130, 113, 129, 117, 139, 114, 115, 105, 125, 113, 122, 117, 115, 111, 129, 113, 128, 117, 101, 129, 137, 131, 142, 101, 109, 125, 126, 138, 110, 137, 125, 110, 101, 115, 123, 117, 132, 129, 131, 145, 132, 111, 140, 126, 115, 115, 117, 135, 102, 131, 129, 127, 109, 121, 121, 126, 113, 113, 119, 142, 119, 139, 120, 135, 147, 130, 127, 109, 130, 115, 129, 139, 106, 151, 126, 125, 118, 115, 116, 134, 125, 120, 122, 123, 120, 119, 116, 134, 127, 124, 141, 130, 127, 127, 124, 135, 124, 139, 126, 126, 120, 120, 123, 138, 109, 114, 117, 121, 134, 137, 92, 124, 122, 115, 128, 117, 117, 112, 149, 134, 116, 138, 123, 117, 118, 114, 150, 128, 123, 114, 122, 149, 119, 119, 130, 127, 118, 134, 133, 113, 125, 140, 132, 109, 138, 134, 123, 139, 119, 130, 113, 121, 112, 121, 115, 127, 115, 134, 129, 128, 113, 129, 140, 122, 130, 124, 128, 121, 143, 117, 121, 112, 130, 109, 112, 124, 147, 119, 134, 122, 134, 116, 126, 129, 140, 118, 153, 111, 136, 121, 123, 115, 113, 138, 131, 122, 131, 125, 109, 136, 132, 129, 134, 121, 114, 122, 135, 135, 136, 126, 124, 118, 121, 121, 132, 132, 120, 134, 124, 113, 115, 124, 121, 116, 139, 135, 129, 141, 129, 119, 135, 113, 137, 135, 138, 116, 124, 125, 127, 133, 108, 131, 145, 110, 136, 129, 143, 122, 109, 118, 133, 119, 145, 146, 144, 137, 135, 134, 121, 114, 132, 128, 130, 127, 113, 113, 128, 101, 137, 114, 137, 137, 121, 114, 121, 126, 139, 112, 122, 133, 128, 121, 117, 109, 119, 143, 121, 122, 112, 127, 130, 127, 136, 140, 145, 117, 126, 157, 117, 118, 128, 137, 131, 130, 142, 118, 113, 126, 96, 104, 124, 117, 128, 127, 129, 112, 129, 138, 132, 129, 157, 129, 123, 134, 136, 120, 135, 145, 120, 108, 132, 130, 107, 121, 135, 129, 138, 116, 118, 124, 129, 133, 132, 134, 153, 138, 128, 121, 115, 118, 137, 116, 127, 120, 124, 115, 124, 130, 130, 110, 135, 117, 101, 110, 115, 125, 134, 120, 140, 135, 122, 124, 125, 109, 127, 122, 127, 135, 103, 133, 120, 124, 153, 121, 132, 105, 136, 127, 112, 126, 136, 123, 136, 125, 114, 116, 109, 118, 123, 126, 117, 125, 106, 119, 123, 117, 129, 140, 128, 135, 131, 125, 139, 114, 121, 130, 111, 136, 112, 135, 129, 108, 117, 132, 130, 139, 105, 129, 118, 119, 117, 132, 131, 122, 132, 125, 103, 145, 126, 126, 110, 135, 86, 119, 117, 126, 121, 134, 113, 126, 112, 127, 131, 132, 121, 116, 126, 147, 144, 128, 149, 128, 135, 120, 124, 129, 121, 131, 137, 112, 116, 142, 134, 106, 118, 120, 127, 108, 109, 131, 139, 120, 142, 118, 136, 128, 109, 131, 117, 119, 114, 116, 123, 121, 120, 136, 130, 130, 115, 147, 107, 132, 132, 113, 126, 137, 117, 130, 103, 122, 133, 117, 131, 129, 112, 121, 125, 134, 116, 114, 132, 137, 113, 140, 96, 120, 143, 119, 127, 132, 117, 118, 124, 124, 140, 106, 119, 137, 123, 125, 124, 117, 120, 122, 146, 130, 127, 118, 106, 126, 125, 143, 126, 125, 121, 107, 113, 110, 121, 134, 134, 110, 111, 112, 118, 110, 136, 128, 144, 132, 128, 112, 128, 117, 153, 122, 133, 127, 136, 127, 98, 117, 135, 125, 111, 137, 125, 131, 146, 122, 121, 124, 125, 138, 115, 125, 141, 125, 120, 136, 107, 118, 127, 128, 128, 144, 129, 117, 96, 122, 133, 122, 115, 116, 128, 148, 108, 107, 151, 125, 121, 124, 130, 130, 127, 123, 130, 119, 117, 115, 119, 133, 131, 133, 132, 126, 113, 133, 109, 125, 124, 127, 103, 110, 130, 111, 131, 130, 120, 137, 122, 127, 119, 117, 134, 151, 124, 138, 125, 130, 129, 106, 114, 133, 132, 129, 125, 137, 124, 147, 122, 120, 121, 120, 120, 123, 121, 125, 132, 124, 121, 124, 121, 139, 116, 129, 125, 127, 129, 117, 135, 110, 124, 109, 147, 117, 142, 135, 129, 137, 119, 129, 139, 126, 117, 124, 129, 110, 139, 135, 120, 122, 131, 123, 118, 126, 143, 110, 136, 121, 129, 140, 116, 125, 126, 126, 127, 122, 126, 106, 130, 147, 118, 128, 148, 119, 133, 133, 129, 134, 126, 128, 113, 117, 131, 119, 120, 115, 125, 125, 130, 128, 119, 105, 122, 111, 133, 129, 133, 130, 134, 119, 125, 113, 136, 124, 130, 128, 140, 128, 116, 114, 134, 115, 130, 126, 133, 125, 133, 127, 115, 134, 124, 122, 118, 135, 126, 123, 118, 152, 145, 140, 120, 136, 123, 129, 125, 145, 136, 108, 130, 147, 120, 108, 129, 113, 144, 128, 135, 133, 102, 124, 104, 135, 113, 125, 130, 133, 117, 122, 120, 115, 134, 119, 93, 120, 140, 114, 111, 129, 124, 114, 111, 125, 125, 115, 114, 124, 118, 132, 129, 120, 126, 108, 123, 107, 130, 138, 123, 124, 129, 128, 130, 138, 93, 130, 137, 109, 121, 116, 117, 127, 121, 126, 132, 125, 117, 139, 110, 137, 118, 124, 124, 139, 133, 133, 113, 126, 113, 122, 131, 129, 137, 108, 124, 113, 112, 136, 125, 127, 122, 125, 115, 130, 116, 131, 121, 126, 128, 122, 136, 135, 125, 148, 147, 131, 119, 134, 135, 132, 118, 126, 119, 114, 122, 118, 103, 124, 130, 139, 101, 136, 147, 133, 137, 134, 125, 140, 132, 132, 122, 133, 114, 127, 112, 128, 113, 110, 130, 132, 111, 126, 134, 111, 126, 115, 123, 119, 128, 112, 148, 115, 121, 118, 131, 124, 110, 130, 135, 125, 128, 152, 120, 147, 143, 117, 103, 133, 135, 126, 117, 140, 131, 113, 110, 126, 134, 124, 116, 133, 153, 128, 132, 112, 123, 127, 119, 113, 125, 102, 135, 113, 107, 116, 116, 124, 133, 112, 115, 123, 139, 119, 129, 123, 116, 137, 126, 119, 139, 129, 129, 140, 128, 123, 130, 126, 122, 104, 124, 114, 112, 153, 115, 123, 134, 120, 140, 135, 144, 106, 108, 155, 123, 117, 134, 119, 118, 111, 104, 111, 134, 132, 122, 128, 119, 121, 132, 143, 103, 122, 134, 121, 108, 137, 130, 146, 133, 132, 112, 119, 115, 139, 116, 111, 125, 123, 128, 139, 128, 135, 134, 137, 123, 128, 130, 96, 125, 124, 115, 134, 113, 119, 133, 121, 113, 138, 130, 133, 138, 129, 133, 134, 140, 116, 124, 129, 129, 122, 140, 137, 137, 141, 118, 125, 127, 119, 125, 135, 111, 120, 141, 128, 138, 129, 125, 120, 130, 138, 128, 144, 121, 122, 123, 131, 118, 134, 127, 125, 113, 113, 132, 134, 105, 134, 120, 112, 123, 123, 122, 131, 134, 124, 128, 140, 115, 118, 125, 119, 129, 118, 128, 128, 131, 129, 144, 123, 120, 124, 124, 133, 136, 128, 116, 142, 121, 112, 103, 131, 104, 114, 145, 123, 123, 123, 122, 125, 127, 118, 137, 134, 121, 115, 131, 131, 118, 112, 125, 110, 124, 141, 131, 122, 148, 118, 120, 130, 133, 102, 108, 144, 124, 129, 113, 132, 100, 138, 142, 123, 134, 134, 111, 126, 147, 123, 124, 109, 133, 139, 127, 128, 121, 121, 134, 118, 130, 129, 140, 130, 127, 145, 131, 119, 119, 119, 117, 122, 136, 119, 127, 127, 132, 136, 125, 137, 131, 147, 123, 117, 133, 114, 123, 137, 144, 126, 134, 122, 117, 123, 141, 130, 146, 119, 113, 129, 136, 130, 131, 114, 136, 124, 111, 120, 134, 130, 111, 137, 127, 132, 119, 137, 120, 124, 132, 132, 127, 122, 122, 117, 119, 116, 135, 120, 149, 111, 104, 131, 125, 126, 124, 132, 134, 129, 119, 117, 132, 120, 134, 126, 144, 116, 114, 111, 125, 128, 117, 114, 132, 133, 129, 97, 121, 116, 107, 130, 135, 136, 131, 127, 125, 129, 139, 82, 119, 142, 134, 148, 130, 99, 126, 138, 136, 134, 127, 113, 131, 101, 117, 128, 127, 141, 127, 133, 119, 130, 149, 106, 125, 142, 123, 114, 126, 128, 124, 136, 105, 114, 118, 140, 116, 139, 143, 132, 137, 122, 128, 133, 138, 125, 124, 115, 124, 122, 142, 112, 142, 154, 122, 138, 115, 132, 126, 123, 138, 139, 128, 109, 117, 133, 116, 132, 135, 125, 128, 125, 124, 123, 112, 134, 113, 91, 125, 132, 144, 120, 127, 115, 108, 143, 128, 130, 150, 116, 130, 113, 130, 106, 120, 109, 119, 117, 119, 136, 139, 116, 141, 131, 133, 115, 117, 120, 125, 125, 122, 133, 128, 128, 118, 126, 145, 136, 110, 113, 117, 125, 142, 125, 130, 121, 126, 132, 127, 116, 132, 107, 139, 122, 123, 111, 118, 125, 145, 138, 124, 145, 124, 116, 123, 123, 130, 121, 137, 116, 129, 128, 135, 129, 141, 143, 131, 111, 131, 118, 139, 125, 137, 130, 132, 100, 129, 117, 138, 118, 149, 148, 133, 132, 118, 103, 138, 114, 124, 139, 126, 116, 128, 122, 136, 111, 125, 126, 143, 122, 136, 128, 110, 113, 128, 131, 127, 116, 128, 126, 127, 120, 123, 114, 134, 138, 115, 135, 123, 147, 148, 122, 131, 140, 127, 126, 139, 117, 133, 126, 124, 127, 141, 121, 118, 120, 133, 109, 124, 136, 126, 128, 130, 124, 121, 138, 120, 134, 126, 118, 124, 128, 136, 134, 124, 127, 134, 123, 115, 130, 129, 135, 111, 117, 112, 133, 119, 115, 125, 140, 107, 126, 129, 118, 127, 133, 144, 135, 106, 127, 114, 127, 138, 140, 133, 113, 117, 138, 132, 143, 132, 128, 122, 130, 141, 111, 115, 113, 120, 132, 111, 135, 112, 144, 131, 105, 132, 148, 134, 127, 117, 118, 131, 110, 123, 123, 121, 119, 99, 122, 146, 124, 114, 130, 139, 132, 128, 142, 116, 116, 117, 114, 137, 127, 125, 137, 137, 124, 148, 126, 130, 128, 139, 122, 112, 113, 126, 126, 110, 116, 134, 162, 114, 122, 107, 106, 128, 147, 120, 111, 109, 131, 126, 116, 125, 106, 116, 134, 123, 143, 130, 153, 129, 117, 120, 101, 129, 136, 116, 134, 106, 130, 130, 119, 111, 106, 124, 127, 132, 114, 133, 115, 135, 104, 131, 126, 111, 157, 113, 109, 129, 124, 132, 138, 145, 128, 124, 121, 123, 112, 113, 134, 125, 117, 125, 124, 127, 114, 135, 132, 113, 116, 133, 120, 128, 124, 128, 128, 118, 136, 139, 144, 144, 126, 127, 108, 130, 95, 131, 127, 118, 140, 132, 121, 119, 139, 123, 114, 123, 140, 128, 143, 122, 121, 112, 135, 118, 123, 112, 133, 108, 120, 114, 117, 123, 131, 132, 137, 125, 139, 137, 114, 123, 110, 115, 143, 126, 134, 122, 135, 124, 120, 128, 138, 96, 145, 134, 136, 132, 127, 129, 122, 129, 122, 105, 127, 117, 107, 132, 145, 131, 129, 126, 142, 111, 119, 144, 113, 122, 131, 113, 113, 135, 130, 131, 145, 117, 116, 132, 114, 132, 121, 116, 116, 130, 137, 124, 115, 115, 125, 96, 125, 131, 113, 133, 123, 102, 121, 132, 119, 129, 121, 130, 114, 128, 132, 137, 120, 122, 145, 143, 128, 117, 134, 104, 127, 116, 123, 123, 130, 137, 113, 141, 120, 117, 112, 113, 141, 131, 121, 115, 154, 138, 127, 135, 113, 135, 118, 126, 138, 145, 123, 106, 138, 121, 142, 99, 112, 124, 118, 124, 129, 136, 101, 118, 144, 130, 123, 126, 109, 137, 117, 119, 139, 143, 142, 113, 117, 125, 115, 122, 133, 137, 124, 137, 135, 115, 120, 124, 121, 142, 116, 134, 123, 140, 148, 127, 127, 128, 120, 131, 113, 133, 136, 103, 117, 133, 129, 129, 130, 135, 124, 132, 127, 127, 119, 122, 123, 125, 127, 109, 133, 139, 130, 112, 116, 131, 121, 112, 118, 131, 131, 127, 131, 131, 118, 128, 107, 131, 125, 132, 137, 128, 128, 131, 103, 132, 130, 137, 124, 128, 121, 130, 118, 125, 130, 130, 123, 133, 123, 137, 116, 133, 127, 123, 115, 131, 114, 135, 126, 114, 131, 126, 129, 135, 118, 122, 124, 120, 130, 132, 119, 126, 152, 138, 123, 132, 118, 121, 129, 148, 118, 116, 133, 106, 126, 128, 128, 122, 129, 123, 112, 133, 122, 141, 136, 153, 128, 124, 114, 116, 114, 137, 117, 136, 123, 119, 144, 117, 142, 112, 132, 121, 126, 124, 138, 116, 135, 110, 109, 127, 118, 121, 127, 120, 136, 119, 123, 123, 123, 108, 129, 132, 139, 124, 120, 134, 127, 108, 114, 135, 131, 128, 134, 137, 117, 123, 132, 125, 118, 129, 126, 117, 120, 117, 129, 109, 120, 118, 143, 131, 142, 151, 123, 115, 121, 145, 130, 134, 115, 139, 143, 120, 115, 136, 145, 121, 138, 120, 113, 129, 125, 134, 106, 121, 127, 132, 129, 134, 143, 109, 118, 113, 138, 128, 149, 129, 112, 122, 128, 106, 122, 126, 135, 130, 136, 133, 120, 132, 107, 133, 120, 115, 127, 128, 118, 109, 106, 122, 133, 130, 116, 127, 134, 123, 146, 115, 114, 112, 97, 120, 113, 118, 104, 125, 116, 112, 132, 129, 138, 134, 117, 119, 132, 121, 125, 127, 139, 127, 133, 132, 125, 133, 130, 136, 117, 118, 115, 131, 116, 140, 107, 115, 148, 126, 119, 118, 119, 130, 140, 117, 130, 123, 125, 107, 108, 129, 121, 126, 123, 127, 129, 128, 110, 124, 119, 137, 138, 133, 114, 128, 124, 135, 122, 113, 118, 109, 135, 119, 121, 129, 140, 127, 133, 124, 118, 133, 113, 130, 104, 130, 123, 128, 137, 113, 131, 114, 127, 114, 133, 119, 113, 116, 122, 125, 108, 118, 126, 119, 122, 131, 118, 117, 149, 129, 134, 124, 122, 130, 107, 119, 119, 121, 117, 120, 114, 127, 120, 119, 127, 123, 130, 126, 133, 121, 105, 120, 137, 131, 107, 118, 115, 125, 119, 126, 149, 135, 118, 121, 132, 105, 118, 117, 124, 135, 126, 147, 133, 129, 126, 107, 121, 130, 129, 148, 127, 114, 120, 117, 120, 141, 133, 136, 118, 115, 112, 118, 120, 139, 127, 129, 92, 136, 130, 131, 136, 116, 126, 118, 125, 135, 129, 143, 121, 130, 114, 132, 121, 123, 117, 145, 106, 122, 141, 132, 124, 139, 120, 125, 122, 121, 130, 120, 120, 118, 127, 127, 115, 106, 130, 117, 126, 133, 130, 108, 127, 114, 139, 134, 117, 121, 129, 119, 115, 142, 131, 115, 123, 125, 129, 105, 127, 121, 122, 124, 122, 137, 133, 133, 156, 135, 114, 146, 123, 118, 106, 127, 126, 116, 128, 125, 121, 121, 123, 119, 131, 129, 122, 108, 131, 140, 130, 110, 121, 126, 114, 138, 121, 132, 131, 125, 112, 112, 135, 119, 127, 111, 120, 118, 124, 133, 127, 114, 121, 125, 117, 144, 139, 138, 117, 131, 115, 126, 139, 115, 113, 136, 137, 117, 130, 118, 121, 109, 116, 121, 135, 133, 122, 128, 131, 121, 138, 127, 114, 110, 134, 121, 139, 108, 133, 120, 102, 121, 114, 141, 128, 114, 122, 136, 120, 125, 139, 110, 118, 123, 141, 134, 106, 122, 127, 147, 122, 123, 116, 111, 132, 134, 108, 147, 137, 117, 131, 114, 119, 119, 124, 156, 141, 109, 124, 114, 136, 122, 114, 114, 120, 126, 115, 119, 130, 120, 125, 123, 136, 134, 122, 127, 110, 148, 148, 131, 135, 120, 111, 128, 132, 121, 108, 126, 113, 125, 131, 130, 130, 137, 113, 124, 123, 119, 117, 128, 145, 135, 124, 127, 122, 131, 125, 126, 125, 112, 136, 133, 111, 124, 115, 128, 123, 115, 126, 126, 107, 121, 131, 134, 130, 121, 125, 151, 128, 144, 128, 129, 118, 116, 137, 121, 128, 135, 106, 100, 151, 123, 121, 129, 118, 118, 124, 132, 135, 102, 108, 130, 131, 125, 124, 111, 171, 138, 111, 137, 123, 132, 113, 127, 124, 116, 140, 126, 125, 121, 117, 119, 134, 128, 123, 115, 127, 141, 118, 134, 116, 131, 129, 118, 111, 124, 130, 105, 120, 119, 112, 131, 130, 119, 132, 135, 120, 141, 108, 127, 113, 131, 129, 134, 126, 116, 118, 131, 140, 130, 110, 147, 128, 122, 118, 114, 118, 95, 136, 118, 117, 128, 124, 126, 67, 134, 135, 126, 142, 141, 129, 123, 115, 122, 104, 123, 120, 142, 130, 141, 105, 121, 133, 116, 126, 141, 117, 120, 119, 125, 102, 121, 114, 137, 99, 121, 145, 128, 128, 124, 138, 126, 125, 125, 121, 114, 116, 128, 142, 122, 128, 140, 120, 123, 122, 133, 151, 126, 108, 150, 125, 93, 124, 127, 125, 122, 126, 106, 124, 135, 117, 141, 130, 116, 125, 127, 121, 143, 130, 121, 124, 133, 127, 126, 132, 123, 137, 133, 132, 124, 116, 127, 111, 130, 112, 113, 147, 121, 122, 130, 125, 116, 137, 150, 110, 123, 132, 138, 134, 128, 96, 129, 129, 125, 109, 130, 116, 127, 138, 122, 130, 135, 125, 138, 117, 125, 142, 115, 117, 126, 121, 132, 126, 141, 117, 125, 141, 130, 121, 131, 127, 120, 132, 117, 123, 108, 128, 128, 140, 116, 128, 124, 113, 125, 122, 128, 104, 139, 112, 136, 115, 124, 122, 117, 129, 114, 141, 118, 122, 128, 132, 118, 132, 127, 118, 100, 128, 125, 116, 138, 142, 117, 122, 125, 141, 123, 128, 130, 140, 116, 124, 132, 112, 129, 120, 139, 144, 148, 133, 124, 117, 130, 128, 129, 148, 134, 132, 131, 127, 121, 133, 125, 131, 133, 117, 125, 121, 130, 153, 126, 112, 130, 133, 113, 129, 118, 137, 128, 134, 132, 130, 145, 125, 121, 138, 147, 129, 119, 130, 130, 120, 116, 116, 112, 114, 147, 129, 103, 129, 114, 126, 116, 150, 117, 133, 112, 129, 120, 129, 131, 136, 125, 124, 132, 118, 102, 138, 133, 107, 123, 107, 123, 137, 128, 119, 103, 109, 130, 134, 136, 132, 104, 127, 125, 137, 145, 133, 118, 123, 121, 120, 118, 119, 130, 127, 120, 136, 142, 129, 130, 126, 126, 127, 99, 120, 121, 131, 124, 131, 132, 119, 132, 126, 107, 113, 135, 124, 124, 120, 122, 126, 117, 117, 125, 127, 120, 143, 101, 116, 120, 129, 124, 129, 137, 120, 143, 121, 144, 121, 125, 128, 127, 124, 123, 127, 137, 131, 127, 125, 115, 135, 146, 123, 131, 132, 141, 139, 119, 128, 127, 121, 127, 110, 122, 124, 123, 124, 107, 132, 126, 121, 126, 134, 120, 155, 117, 133, 143, 123, 139, 149, 124, 151, 126, 117, 121, 149, 137, 120, 115, 129, 114, 117, 124, 129, 123, 113, 121, 127, 130, 146, 129, 132, 135, 118, 119, 134, 134, 114, 133, 114, 124, 143, 114, 157, 141, 127, 134, 115, 125, 128, 123, 122, 129, 115, 123, 115, 122, 118, 125, 127, 96, 96, 135, 118, 121, 124, 144, 136, 125, 141, 125, 120, 125, 129, 114, 119, 116, 125, 132, 121, 134, 120, 130, 122, 145, 124, 113, 118, 119, 103, 127, 138, 129, 136, 121, 130, 127, 141, 141, 126, 124, 123, 134, 112, 117, 114, 120, 138, 116, 124, 119, 115, 125, 131, 118, 132, 102, 111, 125, 111, 123, 117, 102, 136, 128, 150, 126, 128, 121, 133, 116, 108, 126, 142, 150, 112, 137, 117, 127, 126, 119, 135, 107, 135, 111, 124, 115, 109, 125, 111, 110, 136, 117, 126, 114, 123, 143, 120, 128, 122, 111, 125, 119, 135, 115, 125, 116, 130, 128, 150, 118, 136, 124, 106, 115, 115, 110, 129, 125, 139, 134, 120, 131, 128, 136, 116, 129, 101, 129, 120, 110, 129, 119, 128, 130, 124, 114, 121, 116, 145, 128, 132, 125, 131, 129, 116, 128, 122, 130, 126, 123, 127, 129, 105, 113, 116, 121, 138, 126, 116, 128, 129, 123, 136, 117, 122, 118, 129, 112, 125, 114, 107, 142, 121, 124, 127, 126, 115, 125, 120, 110, 109, 119, 133, 145, 123, 114, 138, 114, 135, 114, 126, 142, 131, 141, 134, 104, 114, 144, 127, 129, 111, 140, 138, 131, 121, 133, 118, 130, 121, 120, 121, 132, 104, 124, 130, 114, 127, 125, 118, 116, 126, 123, 128, 117, 117, 129, 128, 111, 127, 114, 141, 140, 129, 110, 124, 132, 132, 135, 121, 133, 130, 126, 119, 135, 129, 108, 122, 120, 112, 132, 122, 149, 103, 117, 117, 110, 115, 119, 123, 111, 121, 116, 121, 140, 127, 128, 95, 138, 118, 116, 138, 126, 122, 131, 115, 137, 119, 120, 128, 136, 127, 126, 108, 111, 126, 110, 111, 120, 123, 120, 127, 128, 105, 137, 134, 113, 129, 123, 143, 125, 109, 115, 120, 132, 119, 151, 135, 128, 121, 116, 133, 112, 115, 130, 117, 144, 130, 124, 147, 128, 117, 121, 109, 143, 125, 122, 126, 111, 134, 113, 102, 153, 126, 103, 138, 127, 133, 108, 126, 127, 120, 121, 130, 113, 108, 133, 126, 110, 103, 102, 119, 124, 125, 118, 124, 131, 124, 126, 131, 114, 128, 134, 104, 140, 122, 128, 99, 131, 145, 123, 136, 126, 130, 127, 125, 132, 140, 130, 134, 128, 119, 114, 139, 126, 139, 124, 120, 121, 123, 116, 121, 128, 107, 126, 111, 120, 115, 118, 135, 138, 122, 113, 135, 143, 114, 143, 118, 112, 117, 124, 102, 109, 121, 157, 143, 98, 116, 137, 128, 121, 130, 130, 107, 144, 112, 141, 127, 117, 136, 132, 128, 126, 130, 128, 117, 143, 112, 131, 134, 137, 125, 129, 110, 123, 132, 130, 116, 123, 121, 118, 123, 119, 134, 131, 133, 135, 125, 131, 133, 115, 135, 145, 114, 134, 123, 126, 117, 124, 130, 124, 127, 125, 130, 118, 127, 124, 114, 123, 151, 145, 107, 121, 116, 133, 122, 109, 98, 132, 127, 107, 120, 138, 127, 126, 118, 126, 131, 99, 113, 104, 135, 117, 121, 108, 123, 126, 123, 122, 117, 131, 132, 127, 131, 150, 135, 124, 126, 113, 115, 114, 147, 115, 147, 128, 139, 104, 124, 143, 139, 103, 110, 129, 109, 126, 110, 130, 120, 136, 122, 128, 118, 133, 129, 126, 124, 136, 134, 115, 124, 117, 117, 142, 134, 126, 126, 120, 117, 132, 118, 135, 123, 136, 134, 143, 130, 122, 119, 132, 122, 113, 122, 117, 126, 123, 120, 136, 119, 130, 132, 129, 122, 117, 142, 134, 128, 133, 117, 132, 132, 115, 106, 133, 110, 150, 133, 116, 136, 101, 123, 107, 125, 114, 116, 123, 114, 119, 136, 133, 124, 117, 134, 147, 131, 135, 119, 124, 127, 122, 116, 122, 127, 97, 131, 125, 132, 118, 112, 117, 143, 132, 141, 130, 131, 122, 118, 128, 113, 126, 135, 101, 121, 132, 135, 130, 101, 133, 125, 123, 128, 110, 122, 117, 126, 111, 123, 111, 111, 128, 135, 138, 114, 133, 118, 127, 157, 118, 117, 107, 111, 110, 147, 132, 118, 115, 124, 130, 110, 136, 128, 113, 124, 140, 122, 128, 129, 120, 124, 134, 128, 143, 128, 155, 137, 113, 129, 137, 144, 114, 140, 124, 145, 133, 127, 124, 127, 111, 130, 123, 145, 115, 124, 126, 123, 113, 122, 148, 127, 110, 108, 113, 124, 112, 116, 122, 139, 149, 115, 119, 131, 117, 145, 134, 137, 126, 122, 135, 116, 129, 123, 113, 135, 138, 111, 133, 114, 141, 121, 112, 109, 118, 123, 111, 128, 112, 134, 119, 138, 117, 121, 125, 134, 127, 122, 142, 133, 130, 134, 123, 121, 133, 125, 120, 135, 119, 120, 121, 131, 134, 124, 125, 103, 136, 119, 125, 143, 142, 126, 123, 129, 116, 128, 114, 126, 136, 118, 121, 144, 124, 118, 132, 132, 150, 139, 114, 115, 124, 121, 133, 105, 128, 130, 140, 112, 120, 133, 132, 124, 134, 118, 108, 121, 126, 126, 108, 115, 127, 118, 111, 122, 132, 132, 136, 112, 131, 117, 120, 116, 129, 121, 128, 115, 122, 130, 131, 107, 121, 122, 131, 132, 122, 116, 130, 142, 109, 119, 135, 135, 128, 133, 111, 129, 127, 126, 109, 124, 147, 120, 126, 103, 129, 135, 81, 131, 120, 121, 134, 113, 131, 115, 106, 131, 113, 133, 124, 126, 145, 139, 130, 125, 118, 115, 129, 126, 117, 108, 125, 127, 131, 128, 126, 103, 112, 145, 132, 116, 125, 106, 120, 122, 115, 130, 114, 123, 138, 127, 111, 123, 121, 127, 113, 129, 125, 135, 122, 140, 115, 120, 115, 127, 127, 117, 143, 124, 122, 129, 125, 124, 119, 136, 122, 115, 127, 135, 129, 140, 138, 106, 120, 115, 113, 129, 126, 119, 124, 130, 114, 125, 132, 123, 114, 140, 110, 118, 108, 119, 133, 122, 122, 135, 96, 123, 138, 120, 124, 137, 122, 139, 129, 112, 115, 125, 130, 124, 138, 120, 132, 123, 129, 114, 129, 115, 121, 125, 98, 124, 129, 112, 113, 129, 148, 130, 121, 126, 146, 127, 112, 128, 115, 127, 118, 114, 139, 123, 141, 116, 125, 123, 114, 113, 139, 122, 121, 124, 132, 130, 116, 127, 130, 138, 118, 131, 111, 131, 115, 130, 114, 109, 116, 113, 134, 127, 147, 120, 135, 130, 125, 137, 114, 124, 106, 139, 137, 119, 110, 111, 124, 114, 117, 113, 120, 134, 125, 121, 108, 127, 129, 134, 130, 112, 126, 129, 136, 122, 124, 112, 116, 121, 123, 124, 110, 123, 100, 117, 119, 116, 118, 135, 125, 112, 117, 133, 143, 129, 115, 103, 129, 99, 125, 125, 133, 127, 121, 119, 111, 155, 122, 128, 113, 122, 134, 113, 124, 107, 112, 129, 137, 139, 131, 129, 134, 127, 128, 117, 127, 103, 116, 120, 145, 128, 141, 140, 121, 127, 140, 140, 120, 124, 130, 141, 121, 130, 126, 108, 122, 126, 137, 138, 129, 120, 127, 105, 112, 113, 128, 127, 130, 120, 125, 125, 117, 122, 130, 155, 131, 136, 118, 145, 125, 122, 130, 109, 143, 120, 116, 129, 118, 135, 133, 121, 135, 122, 126, 132, 143, 134, 127, 123, 128, 116, 116, 133, 133, 121, 120, 125, 111, 117, 131, 113, 153, 136, 139, 127, 142, 114, 133, 119, 132, 131, 133, 130, 133, 96, 124, 123, 129, 119, 136, 115, 116, 118, 120, 133, 119, 125, 129, 129, 127, 127, 127, 134, 134, 122, 137, 116, 127, 106, 123, 123, 122, 132, 125, 126, 118, 132, 137, 140, 130, 126, 113, 142, 125, 107, 114, 120, 142, 132, 111, 126, 122, 123, 145, 136, 118, 136, 137, 132, 123, 133, 111, 110, 129, 125, 133, 119, 131, 121, 127, 120, 121, 128, 125, 127, 130, 106, 140, 118, 143, 126, 125, 141, 124, 129, 145, 132, 136, 137, 118, 131, 122, 126, 130, 119, 115, 105, 126, 136, 118, 129, 113, 125, 128, 120, 129, 116, 101, 131, 127, 135, 127, 120, 121, 125, 106, 155, 122, 136, 128, 122, 132, 106, 123, 141, 115, 124, 120, 113, 109, 112, 125, 121, 127, 124, 153, 112, 122, 143, 133, 127, 133, 125, 125, 90, 129, 127, 125, 117, 137, 112, 146, 122, 116, 121, 132, 128, 114, 125, 108, 128, 131, 126, 106, 127, 131, 117, 147, 133, 121, 133, 122, 126, 100, 119, 111, 124, 119, 128, 118, 132, 132, 124, 133, 153, 137, 141, 99, 134, 108, 126, 118, 118, 124, 145, 115, 143, 138, 139, 122, 137, 110, 115, 134, 127, 128, 104, 130, 124, 146, 136, 115, 136, 134, 133, 148, 148, 117, 125, 121, 119, 132, 120, 123, 134, 130, 107, 115, 130, 130, 105, 133, 119, 108, 107, 130, 151, 126, 138, 130, 140, 124, 109, 126, 105, 115, 126, 123, 120, 119, 127, 111, 107, 130, 104, 126, 114, 118, 154, 137, 127, 126, 124, 131, 136, 121, 153, 136, 115, 112, 128, 127, 118, 142, 106, 97, 112, 106, 117, 112, 135, 149, 113, 127, 126, 131, 138, 134, 131, 141, 118, 137, 137, 127, 140, 123, 120, 119, 108, 153, 118, 128, 132, 117, 130, 128, 124, 144, 136, 135, 117, 116, 129, 158, 108, 108, 121, 134, 91, 116, 132, 133, 115, 136, 132, 117, 122, 115, 127, 127, 141, 125, 132, 124, 129, 141, 129, 137, 111, 118, 124, 118, 136, 114, 127, 135, 129, 128, 97, 123, 106, 129, 120, 116, 116, 120, 139, 118, 149, 136, 134, 129, 137, 137, 132, 131, 135, 119, 145, 108, 122, 143, 138, 123, 124, 108, 148, 124, 115, 135, 124, 145, 138, 132, 132, 129, 121, 127, 135, 118, 104, 116, 130, 126, 142, 124, 134, 118, 150, 129, 133, 141, 133, 128, 121, 115, 111, 127, 93, 118, 105, 114, 100, 120, 134, 123, 119, 124, 132, 125, 120, 126, 135, 126, 118, 116, 114, 146, 138, 142, 98, 119, 133, 129, 133, 143, 112, 125, 135, 125, 115, 124, 122, 131, 132, 131, 124, 131, 137, 109, 122, 112, 134, 131, 130, 134, 130, 131, 116, 142, 128, 126, 102, 120, 122, 104, 118, 152, 138, 117, 119, 133, 145, 135, 134, 118, 111, 130, 128, 114, 131, 143, 151, 131, 130, 122, 137, 119, 130, 120, 119, 138, 117, 118, 130, 122, 123, 120, 135, 111, 128, 119, 126, 136, 117, 116, 128, 122, 139, 134, 141, 115, 116, 116, 123, 125, 135, 132, 142, 140, 123, 100, 101, 106, 137, 113, 117, 120, 123, 131, 135, 129, 122, 114, 122, 127, 130, 107, 128, 133, 118, 134, 133, 128, 117, 125, 130, 131, 138, 124, 118, 120, 138, 134, 134, 124, 130, 118, 125, 141, 120, 110, 120, 139, 127, 147, 138, 118, 127, 115, 118, 125, 145, 133, 123, 110, 117, 123, 114, 121, 125, 128, 133, 128, 121, 128, 122, 119, 129, 123, 131, 118, 142, 120, 127, 117, 141, 134, 106, 124, 123, 136, 132, 128, 123, 139, 137, 134, 138, 150, 122, 125, 119, 132, 123, 112, 123, 110, 113, 118, 106, 139, 129, 130, 104, 116, 120, 133, 132, 125, 131, 101, 125, 131, 126, 130, 121, 125, 115, 116, 116, 118, 119, 104, 127, 111, 144, 129, 103, 124, 127, 126, 113, 130, 114, 134, 124, 129, 147, 117, 114, 125, 131, 119, 111, 120, 135, 105, 127, 120, 136, 136, 120, 131, 118, 131, 116, 127, 147, 131, 122, 104, 132, 128, 126, 121, 114, 117, 143, 122, 135, 125, 127, 131, 139, 154, 123, 126, 127, 116, 138, 142, 119, 122, 146, 131, 130, 127, 111, 129, 119, 136, 128, 126, 112, 122, 128, 128, 122, 142, 135, 140, 97, 131, 134, 125, 105, 131, 131, 136, 114, 111, 116, 131, 146, 145, 128, 130, 130, 115, 121, 119, 131, 125, 121, 135, 125, 119, 128, 123, 112, 161, 113, 129, 123, 124, 133, 139, 124, 114, 113, 118, 120, 130, 114, 108, 122, 133, 125, 137, 117, 122, 123, 110, 108, 135, 132, 120, 124, 139, 118, 120, 119, 154, 114, 121, 120, 114, 133, 120, 114, 115, 152, 119, 117, 138, 134, 124, 123, 130, 88, 122, 150, 134, 124, 129, 136, 116, 111, 113, 112, 119, 122, 121, 137, 128, 129, 104, 118, 136, 109, 112, 136, 132, 150, 123, 127, 135, 118, 119, 137, 126, 104, 130, 132, 133, 129, 126, 124, 112, 126, 113, 127, 142, 123, 122, 145, 120, 132, 119, 136, 112, 145, 128, 137, 149, 134, 131, 136, 131, 128, 138, 154, 114, 130, 111, 124, 111, 129, 117, 116, 127, 119, 119, 130, 130, 127, 118, 126, 117, 132, 114, 122, 116, 113, 123, 125, 115, 134, 139, 136, 140, 140, 138, 133, 121, 115, 140, 133, 110, 120, 116, 126, 131, 123, 121, 122, 124, 119, 126, 122, 129, 135, 115, 126, 139, 123, 132, 128, 130, 126, 133, 115, 110, 134, 123, 127, 121, 120, 115, 115, 116, 110, 124, 117, 120, 115, 132, 119, 126, 117, 128, 111, 116, 117, 120, 110, 150, 133, 116, 125, 122, 143, 129, 112, 132, 124, 126, 112, 125, 131, 133, 121, 104, 116, 114, 139, 109, 113, 138, 119, 117, 121, 109, 133, 125, 105, 112, 118, 135, 138, 110, 116, 128, 131, 134, 130, 110, 114, 110, 111, 117, 120, 136, 125, 133, 133, 130, 124, 125, 125, 120, 104, 126, 120, 115, 117, 135, 118, 123, 147, 128, 128, 119, 121, 162, 126, 134, 121, 128, 110, 123, 116, 115, 111, 119, 111, 124, 127, 114, 117, 135, 137, 137, 125, 133, 111, 128, 118, 139, 124, 107, 144, 119, 117, 114, 132, 140, 131, 127, 114, 125, 122, 129, 128, 108, 128, 152, 122, 137, 160, 128, 127, 141, 123, 120, 132, 108, 109, 112, 114, 147, 113, 126, 117, 140, 131, 132, 132, 128, 116, 121, 134, 135, 110, 124, 133, 123, 116, 131, 127, 137, 126, 119, 117, 112, 142, 131, 123, 140, 136, 134, 121, 105, 128, 134, 122, 136, 107, 138, 122, 123, 124, 124, 120, 138, 147, 135, 120, 131, 117, 103, 140, 125, 128, 123, 132, 125, 130, 118, 134, 132, 129, 126, 133, 117, 123, 125, 130, 142, 98, 127, 136, 128, 126, 121, 116, 120, 95, 126, 139, 112, 135, 108, 108, 130, 130, 102, 125, 138, 123, 119, 145, 146, 119, 104, 93, 112, 125, 125, 127, 136, 115, 118, 120, 128, 126, 119, 137, 114, 125, 120, 107, 114, 106, 110, 128, 135, 136, 140, 121, 132, 126, 111, 113, 123, 111, 113, 109, 131, 129, 143, 106, 133, 103, 128, 126, 121, 111, 119, 112, 149, 109, 118, 128, 117, 121, 129, 123, 117, 129, 116, 103, 140, 105, 134, 123, 124, 142, 125, 134, 138, 125, 121, 110, 110, 160, 132, 134, 121, 112, 118, 121, 128, 119, 109, 117, 132, 123, 113, 143, 131, 137, 118, 134, 115, 118, 117, 128, 133, 132, 134, 130, 139, 125, 121, 137, 134, 145, 124, 136, 117, 126, 131, 114, 123, 135, 121, 120, 128, 121, 113, 138, 130, 141, 122, 109, 138, 120, 139, 123, 129, 130, 132, 119, 130, 144, 130, 117, 122, 149, 131, 115, 120, 127, 125, 140, 128, 156, 121, 120, 133, 102, 129, 123, 122, 114, 111, 126, 119, 142, 124, 117, 126, 124, 120, 113, 146, 138, 116, 140, 130, 108, 128, 114, 107, 128, 117, 135, 102, 129, 132, 124, 126, 128, 117, 123, 134, 139, 132, 136, 124, 127, 139, 140, 125, 128, 123, 138, 112, 121, 128, 123, 128, 116, 125, 127, 133, 117, 128, 144, 131, 120, 111, 120, 111, 109, 115, 126, 137, 127, 124, 115, 129, 111, 145, 128, 127, 128, 135, 124, 131, 142, 118, 104, 129, 118, 115, 126, 120, 134, 113, 124, 124, 125, 144, 131, 125, 126, 126, 144, 119, 122, 127, 135, 124, 137, 118, 121, 126, 106, 105, 125, 125, 122, 132, 123, 135, 138, 105, 139, 118, 114, 118, 124, 108, 150, 137, 132, 116, 141, 129, 121, 122, 116, 130, 108, 144, 131, 128, 118, 123, 131, 141, 139, 128, 113, 113, 128, 137, 115, 136, 129, 122, 117, 134, 113, 109, 111, 111, 134, 132, 118, 142, 113, 122, 104, 121, 119, 129, 132, 150, 126, 137, 113, 146, 110, 133, 119, 114, 122, 120, 140, 120, 130, 126, 123, 110, 137, 129, 145, 138, 112, 120, 139, 121, 127, 124, 119, 128, 111, 134, 125, 144, 128, 131, 142, 126, 119, 147, 125, 121, 120, 134, 113, 134, 123, 132, 138, 144, 114, 117, 124, 126, 116, 123, 127, 125, 133, 125, 135, 120, 134, 130, 130, 139, 102, 120, 141, 102, 133, 154, 134, 106, 122, 131, 111, 125, 113, 135, 138, 131, 110, 122, 112, 123, 122, 121, 141, 120, 121, 124, 126, 146, 129, 101, 118, 128, 133, 139, 124, 117, 135, 137, 120, 130, 115, 131, 104, 94, 124, 122, 126, 132, 132, 94, 118, 130, 124, 137, 121, 131, 149, 136, 138, 118, 133, 134, 105, 125, 117, 125, 139, 120, 120, 128, 132, 126, 131, 142, 121, 113, 113, 119, 132, 131, 129, 116, 114, 137, 113, 118, 129, 110, 122, 118, 132, 107, 113, 102, 116, 125, 135, 141, 142, 115, 129, 111, 114, 127, 127, 107, 120, 155, 127, 132, 132, 112, 137, 119, 134, 148, 135, 108, 112, 129, 124, 145, 125, 124, 126, 144, 128, 110, 128, 120, 127, 125, 109, 135, 131, 141, 126, 121, 114, 137, 141, 133, 116, 111, 137, 139, 131, 124, 130, 114, 111, 126, 127, 141, 126, 123, 141, 136, 115, 131, 133, 127, 135, 111, 133, 134, 121, 128, 129, 113, 110, 148, 125, 150, 109, 125, 134, 111, 125, 134, 127, 131, 129, 126, 125, 129, 142, 136, 124, 127, 129, 146, 118, 125, 111, 117, 124, 145, 114, 127, 137, 118, 138, 127, 99, 130, 131, 151, 127, 122, 132, 138, 120, 134, 127, 132, 121, 126, 130, 107, 135, 119, 112, 136, 124, 127, 119, 122, 126, 124, 113, 169, 135, 104, 129, 131, 141, 135, 127, 132, 128, 134, 140, 118, 144, 131, 121, 125, 125, 106, 142, 127, 133, 128, 126, 123, 103, 145, 131, 107, 126, 129, 130, 127, 120, 129, 112, 130, 129, 118, 142, 125, 128, 125, 132, 128, 114, 128, 115, 131, 134, 125, 138, 141, 131, 131, 118, 139, 117, 113, 143, 114, 112, 128, 136, 122, 131, 131, 130, 122, 115, 118, 138, 127, 139, 136, 142, 120, 121, 140, 119, 106, 125, 124, 131, 133, 118, 119, 137, 125, 132, 101, 132, 133, 134, 125, 109, 148, 126, 104, 117, 133, 118, 114, 131, 136, 134, 129, 140, 123, 136, 137, 118, 123, 123, 136, 130, 145, 130, 101, 139, 119, 116, 119, 133, 136, 132, 118, 114, 119, 114, 139, 104, 147, 103, 131, 133, 134, 115, 115, 112, 118, 131, 124, 127, 127, 124, 130, 116, 134, 143, 128, 123, 131, 121, 137, 127, 117, 126, 131, 117, 124, 104, 107, 114, 136, 120, 103, 121, 116, 127, 125, 124, 122, 122, 133, 124, 124, 118, 121, 122, 138, 117, 126, 121, 101, 122, 126, 113, 113, 116, 121, 129, 119, 138, 144, 132, 131, 136, 129, 115, 140, 120, 129, 106, 106, 116, 131, 141, 134, 120, 129, 111, 145, 114, 118, 117, 150, 118, 133, 123, 118, 133, 114, 121, 125, 111, 125, 105, 137, 111, 118, 123, 134, 111, 118, 117, 126, 132, 116, 120, 123, 131, 144, 129, 112, 119, 128, 118, 132, 133, 108, 121, 120, 126, 107, 137, 145, 121, 119, 112, 124, 129, 136, 106, 144, 135, 132, 119, 111, 136, 133, 153, 120, 131, 123, 101, 100, 119, 115, 115, 142, 107, 122, 128, 127, 128, 120, 114, 138, 113, 126, 144, 125, 142, 115, 112, 136, 121, 120, 129, 162, 109, 108, 131, 119, 136, 112, 126, 126, 131, 111, 118, 110, 126, 127, 118, 139, 118, 111, 138, 128, 139, 113, 124, 109, 132, 138, 110, 122, 126, 128, 113, 130, 128, 133, 135, 131, 122, 138, 109, 129, 115, 136, 118, 123, 132, 137, 133, 123, 131, 128, 131, 153, 122, 116, 117, 119, 110, 151, 146, 127, 127, 115, 127, 126, 138, 133, 137, 127, 116, 120, 117, 124, 122, 123, 118, 131, 119, 139, 150, 135, 100, 108, 128, 117, 126, 144, 121, 130, 136, 134, 116, 114, 125, 126, 122, 129, 121, 124, 122, 132, 118, 146, 122, 124, 125, 136, 117, 129, 122, 126, 137, 138, 130, 126, 137, 121, 132, 126, 133, 135, 130, 124, 118, 129, 111, 122, 124, 133, 132, 140, 140, 119, 115, 120, 134, 123, 115, 129, 126, 123, 117, 155, 122, 105, 123, 119, 121, 140, 139, 136, 134, 117, 127, 121, 149, 131, 127, 112, 135, 120, 122, 108, 121, 113, 123, 136, 135, 143, 107, 127, 109, 123, 125, 136, 134, 125, 115, 136, 122, 123, 104, 134, 118, 127, 131, 129, 117, 123, 115, 131, 134, 106, 113, 132, 118, 110, 130, 122, 133, 98, 121, 125, 125, 124, 132, 120, 124, 111, 120, 139, 119, 128, 123, 119, 118, 134, 114, 122, 128, 123, 120, 107, 127, 132, 128, 131, 131, 130, 125, 118, 121, 128, 111, 123, 132, 123, 121, 124, 100, 113, 126, 134, 121, 124, 133, 131, 135, 133, 127, 122, 133, 115, 139, 130, 118, 138, 136, 135, 112, 141, 117, 109, 111, 129, 129, 126, 123, 124, 121, 127, 102, 99, 122, 129, 118, 126, 131, 119, 137, 128, 121, 133, 126, 137, 116, 119, 121, 126, 129, 110, 137, 116, 114, 135, 128, 130, 129, 134, 117, 141, 125, 113, 123, 140, 133, 108, 128, 133, 125, 124, 137, 112, 128, 137, 116, 111, 132, 119, 125, 134, 122, 128, 122, 130, 119, 121, 127, 99, 118, 111, 127, 123, 118, 117, 113, 131, 116, 125, 131, 128, 139, 111, 117, 124, 118, 127, 133, 119, 128, 120, 118, 130, 99, 134, 116, 133, 118, 125, 128, 123, 121, 123, 130, 128, 134, 136, 120, 131, 145, 118, 133, 132, 127, 113, 133, 96, 147, 125, 117, 126, 117, 111, 132, 134, 128, 122, 128, 122, 130, 117, 137, 131, 132, 144, 133, 119, 132, 123, 126, 116, 138, 114, 135, 116, 137, 129, 123, 148, 126, 111, 138, 128, 75, 124, 128, 147, 126, 107, 135, 129, 126, 127, 123, 122, 135, 120, 117, 125, 124, 140, 122, 125, 113, 125, 114, 113, 138, 119, 140, 115, 135, 126, 145, 129, 101, 129, 147, 127, 130, 114, 142, 125, 109, 142, 134, 137, 133, 124, 123, 116, 131, 126, 118, 134, 123, 123, 123, 125, 127, 122, 121, 134, 130, 133, 133, 120, 115, 132, 119, 117, 113, 103, 112, 132, 115, 128, 115, 140, 125, 129, 119, 129, 121, 118, 99, 126, 116, 111, 134, 112, 127, 116, 118, 125, 122, 100, 131, 121, 117, 123, 127, 128, 123, 96, 119, 127, 129, 121, 102, 139, 136, 117, 101, 138, 123, 126, 106, 142, 128, 122, 136, 116, 119, 146, 116, 107, 128, 142, 132, 121, 137, 130, 131, 133, 113, 113, 127, 122, 121, 125, 118, 116, 148, 131, 134, 119, 117, 115, 131, 130, 113, 136, 126, 106, 135, 125, 158, 118, 124, 122, 148, 141, 109, 111, 118, 131, 135, 133, 111, 120, 132, 133, 137, 119, 123, 131, 139, 110, 134, 126, 131, 137, 123, 118, 129, 130, 111, 135, 123, 134, 120, 114, 124, 125, 132, 131, 133, 142, 122, 112, 145, 108, 129, 122, 117, 124, 149, 119, 115, 121, 127, 132, 123, 123, 128, 120, 135, 133, 134, 119, 128, 137, 112, 141, 113, 115, 114, 122, 132, 126, 136, 113, 130, 131, 125, 100, 139, 133, 112, 138, 133, 112, 124, 133, 121, 124, 108, 121, 112, 134, 127, 139, 122, 133, 117, 133, 138, 134, 115, 124, 129, 141, 104, 135, 130, 117, 128, 122, 130, 115, 100, 98, 122, 127, 124, 141, 128, 107, 135, 133, 106, 131, 112, 128, 141, 122, 118, 121, 123, 117, 129, 129, 127, 96, 119, 113, 116, 142, 126, 115, 149, 120, 111, 132, 132, 138, 117, 136, 132, 125, 133, 138, 128, 112, 136, 110, 126, 120, 141, 121, 127, 128, 122, 132, 112, 128, 126, 136, 120, 142, 129, 133, 119, 120, 121, 139, 128, 133, 139, 115, 135, 128, 134, 135, 134, 138, 133, 126, 128, 135, 133, 128, 136, 126, 133, 116, 124, 137, 112, 92, 139, 134, 136, 122, 111, 122, 132, 147, 120, 146, 111, 124, 115, 131, 122, 127, 138, 120, 114, 154, 128, 123, 124, 128, 119, 133, 125, 123, 126, 108, 136, 114, 130, 120, 124, 117, 128, 129, 126, 126, 131, 142, 131, 119, 127, 113, 121, 111, 112, 129, 126, 150, 116, 118, 126, 133, 142, 130, 143, 131, 133, 122, 101, 132, 112, 126, 117, 115, 117, 128, 115, 133, 141, 132, 136, 126, 133, 146, 109, 125, 117, 118, 127, 120, 125, 121, 134, 133, 122, 127, 127, 119, 149, 105, 130, 126, 124, 120, 118, 121, 120, 135, 111, 115, 113, 120, 152, 121, 115, 127, 116, 133, 115, 133, 120, 124, 116, 108, 117, 114, 127, 133, 116, 109, 143, 117, 134, 133, 135, 121, 139, 133, 131, 117, 120, 118, 132, 122, 130, 117, 127, 121, 119, 122, 125, 138, 137, 127, 112, 132, 131, 127, 109, 140, 102, 113, 125, 111, 114, 122, 105, 137, 127, 110, 131, 118, 118, 126, 135, 120, 106, 139, 130, 128, 129, 122, 106, 126, 130, 112, 116, 137, 110, 131, 126, 114, 101, 95, 135, 134, 118, 127, 113, 113, 118, 110, 132, 118, 121, 134, 127, 129, 131, 128, 133, 124, 137, 124, 123, 130, 122, 137, 119, 129, 141, 129, 134, 130, 128, 142, 128, 127, 121, 126, 129, 134, 126, 116, 136, 120, 124, 127, 119, 135, 112, 118, 118, 147, 116, 125, 132, 119, 107, 121, 122, 117, 127, 119, 113, 127, 106, 130, 130, 129, 148, 134, 116, 128, 129, 111, 110, 131, 118, 130, 110, 124, 118, 136, 116, 125, 115, 113, 134, 98, 105, 114, 128, 137, 136, 122, 126, 131, 138, 100, 126, 116, 129, 127, 115, 117, 121, 135, 113, 117, 116, 115, 124, 137, 123, 139, 115, 133, 126, 121, 84, 125, 127, 128, 122, 129, 116, 115, 126, 126, 147, 114, 121, 113, 115, 114, 131, 120, 100, 132, 131, 113, 146, 121, 129, 128, 125, 134, 125, 124, 114, 120, 128, 137, 111, 113, 130, 162, 126, 137, 134, 123, 139, 127, 123, 121, 121, 139, 120, 123, 127, 147, 125, 127, 125, 131, 120, 136, 115, 111, 123, 104, 105, 125, 132, 115, 118, 133, 140, 137, 151, 123, 129, 136, 119, 123, 119, 128, 109, 123, 119, 130, 128, 144, 131, 115, 130, 108, 124, 114, 115, 117, 128, 120, 123, 145, 115, 107, 112, 125, 147, 137, 124, 135, 144, 122, 134, 120, 111, 110, 133, 127, 134, 126, 132, 124, 120, 129, 130, 133, 116, 117, 126, 124, 162, 119, 130, 136, 116, 140, 121, 127, 124, 131, 146, 119, 144, 120, 134, 119, 131, 113, 116, 133, 133, 123, 124, 130, 114, 112, 135, 132, 122, 140, 126, 116, 128, 125, 129, 126, 135, 142, 126, 123, 120, 114, 135, 125, 132, 123, 132, 106, 105, 115, 124, 114, 133, 140, 118, 131, 111, 122, 130, 123, 133, 127, 137, 117, 113, 122, 115, 136, 129, 121, 114, 119, 159, 127, 114, 116, 120, 110, 120, 125, 135, 120, 133, 138, 124, 129, 124, 135, 121, 140, 132, 132, 133, 134, 134, 130, 144, 138, 133, 129, 120, 133, 133, 115, 122, 120, 130, 135, 137, 111, 130, 139, 119, 117, 133, 120, 130, 122, 138, 134, 112, 124, 101, 118, 146, 112, 134, 128, 137, 140, 129, 138, 121, 125, 145, 133, 122, 116, 125, 156, 134, 115, 128, 135, 117, 118, 125, 121, 106, 133, 129, 121, 125, 125, 120, 120, 124, 137, 119, 129, 121, 136, 137, 135, 112, 119, 116, 105, 125, 116, 125, 95, 129, 132, 118, 130, 127, 136, 127, 138, 125, 119, 133, 131, 122, 138, 114, 131, 119, 140, 136, 122, 114, 116, 124, 127, 144, 106, 120, 123, 129, 123, 147, 124, 98, 138, 131, 121, 147, 129, 119, 116, 115, 134, 118, 112, 123, 139, 131, 130, 130, 144, 128, 112, 134, 122, 123, 115, 134, 110, 116, 112, 121, 120, 132, 128, 147, 119, 109, 133, 137, 120, 132, 109, 123, 121, 131, 137, 136, 135, 127, 130, 138, 115, 112, 116, 109, 131, 115, 119, 114, 155, 131, 139, 147, 121, 138, 108, 130, 117, 125, 129, 126, 118, 123, 132, 132, 122, 130, 136, 141, 107, 135, 126, 103, 141, 116, 118, 130, 133, 111, 138, 126, 122, 125, 116, 129, 113, 126, 116, 127, 124, 129, 133, 143, 131, 127, 130, 114, 130, 124, 126, 138, 134, 156, 122, 121, 117, 126, 132, 113, 130, 107, 118, 129, 112, 139, 122, 123, 142, 122, 150, 125, 122, 123, 110, 121, 110, 150, 119, 127, 115, 127, 133, 140, 113, 110, 134, 129, 114, 125, 143, 115, 131, 121, 130, 130, 123, 113, 127, 120, 103, 126, 132, 136, 128, 102, 120, 137, 124, 135, 120, 129, 104, 121, 124, 124, 130, 137, 134, 114, 129, 118, 115, 126, 142, 138, 136, 144, 115, 124, 126, 101, 125, 132, 127, 136, 130, 156, 129, 144, 122, 105, 121, 116, 124, 133, 121, 139, 112, 118, 123, 151, 138, 134, 129, 121, 119, 124, 106, 137, 117, 135, 127, 121, 140, 119, 123, 134, 122, 117, 132, 130, 113, 123, 130, 119, 112, 119, 128, 128, 121, 131, 132, 146, 134, 120, 125, 105, 121, 143, 130, 110, 139, 127, 138, 136, 102, 146, 144, 112, 137, 125, 135, 132, 121, 116, 115, 112, 122, 121, 140, 121, 113, 134, 136, 117, 123, 115, 138, 121, 125, 136, 125, 136, 135, 120, 133, 133, 112, 130, 108, 124, 127, 128, 103, 131, 128, 113, 131, 126, 136, 146, 138, 127, 131, 104, 117, 139, 135, 138, 115, 118, 115, 121, 126, 126, 125, 126, 128, 122, 120, 120, 122, 103, 109, 122, 127, 154, 138, 132, 139, 118, 114, 109, 115, 128, 131, 114, 114, 118, 126, 128, 114, 124, 123, 127, 124, 127, 123, 140, 141, 125, 141, 116, 117, 107, 117, 141, 133, 133, 101, 143, 134, 137, 129, 126, 116, 128, 122, 142, 132, 128, 129, 112, 119, 123, 138, 115, 125, 112, 135, 114, 126, 131, 129, 131, 115, 118, 134, 121, 121, 122, 144, 126, 128, 136, 120, 103, 124, 129, 110, 121, 136, 117, 119, 141, 118, 132, 134, 125, 113, 135, 127, 123, 129, 115, 123, 116, 106, 133, 110, 116, 125, 108, 117, 115, 134, 139, 124, 115, 133, 122, 145, 132, 126, 140, 124, 141, 132, 127, 122, 110, 117, 111, 122, 129, 134, 114, 118, 121, 124, 140, 125, 137, 112, 145, 129, 140, 127, 129, 108, 124, 124, 135, 122, 144, 131, 135, 127, 120, 131, 136, 133, 129, 133, 142, 147, 122, 123, 142, 128, 145, 132, 122, 124, 118, 111, 142, 134, 128, 127, 133, 134, 109, 114, 124, 131, 125, 122, 148, 126, 137, 130, 116, 122, 114, 121, 125, 120, 134, 127, 129, 124, 124, 133, 127, 117, 146, 117, 130, 111, 118, 132, 117, 109, 106, 139, 121, 115, 112, 117, 132, 113, 130, 126, 128, 132, 125, 111, 142, 126, 138, 132, 124, 127, 132, 124, 119, 139, 113, 129, 124, 128, 129, 130, 139, 129, 134, 116, 126, 134, 124, 129, 120, 119, 126, 123, 120, 134, 148, 120, 129, 129, 127, 115, 134, 134, 120, 122, 124, 144, 138, 121, 134, 141, 124, 115, 116, 119, 119, 127, 108, 124, 141, 143, 116, 123, 120, 109, 120, 131, 106, 135, 134, 143, 128, 129, 118, 119, 118, 113, 111, 137, 128, 129, 127, 112, 141, 119, 133, 134, 121, 139, 123, 115, 107, 110, 134, 123, 130, 115, 114, 120, 135, 121, 123, 132, 130, 121, 134, 118, 107, 131, 115, 126, 121, 134, 128, 130, 136, 113, 129, 121, 131, 115, 119, 127, 109, 136, 107, 130, 141, 117, 120, 138, 131, 114, 127, 141, 106, 120, 116, 124, 141, 138, 125, 128, 116, 143, 116, 106, 116, 117, 115, 134, 139, 122, 116, 127, 119, 118, 126, 135, 144, 102, 123, 143, 130, 117, 123, 142, 134, 136, 122, 128, 128, 129, 133, 131, 122, 119, 131, 127, 138, 130, 104, 119, 101, 116, 127, 116, 132, 121, 135, 115, 129, 113, 130, 139, 138, 145, 137, 122, 126, 121, 145, 106, 117, 128, 114, 122, 111, 126, 126, 108, 129, 137, 147, 138, 101, 121, 117, 120, 111, 142, 135, 129, 124, 123, 125, 112, 139, 135, 127, 119, 118, 122, 144, 129, 113, 106, 146, 126, 140, 116, 126, 140, 115, 135, 115, 126, 123, 112, 128, 132, 129, 118, 134, 128, 122, 112, 121, 121, 116, 126, 123, 121, 117, 131, 120, 131, 141, 137, 113, 116, 125, 126, 120, 126, 115, 123, 130, 107, 126, 122, 120, 130, 126, 121, 118, 124, 141, 122, 117, 120, 131, 107, 118, 134, 110, 108, 135, 137, 131, 145, 137, 116, 138, 129, 126, 111, 127, 115, 145, 118, 100, 145, 141, 137, 130, 132, 132, 139, 137, 143, 107, 145, 123, 115, 127, 137, 138, 131, 124, 126, 110, 102, 137, 130, 119, 133, 132, 129, 134, 136, 132, 127, 108, 101, 112, 127, 120, 105, 118, 114, 127, 131, 130, 139, 131, 129, 132, 120, 139, 140, 121, 111, 114, 120, 135, 120, 120, 135, 126, 122, 115, 133, 123, 127, 116, 125, 118, 121, 125, 135, 132, 119, 118, 125, 137, 110, 98, 120, 117, 123, 119, 158, 138, 129, 122, 119, 125, 139, 134, 134, 135, 115, 125, 138, 109, 130, 120, 139, 143, 128, 115, 119, 115, 117, 137, 124, 132, 128, 132, 144, 126, 127, 133, 121, 123, 121, 118, 142, 119, 135, 156, 116, 122, 138, 127, 108, 134, 112, 125, 132, 107, 115, 118, 109, 123, 150, 108, 128, 112, 129, 127, 128, 114, 110, 107, 141, 129, 129, 121, 114, 121, 123, 133, 124, 124, 123, 118, 138, 129, 133, 123, 134, 120, 140, 126, 118, 130, 123, 122, 111, 137, 120, 116, 119, 124, 115, 122, 135, 112, 123, 122, 133, 137, 107, 137, 121, 151, 131, 135, 131, 115, 143, 121, 129, 130, 125, 124, 138, 132, 151, 119, 111, 134, 107, 125, 125, 120, 134, 103, 135, 136, 127, 117, 126, 128, 121, 131, 125, 124, 123, 129, 131, 121, 111, 123, 129, 131, 138, 123, 137, 129, 120, 114, 135, 119, 129, 128, 126, 136, 125, 137, 115, 133, 120, 133, 128, 145, 138, 132, 134, 115, 114, 140, 133, 121, 122, 133, 143, 122, 118, 136, 111, 132, 131, 140, 120, 116, 121, 111, 131, 129, 142, 114, 117, 133, 145, 137, 110, 111, 122, 121, 129, 128, 118, 116, 120, 129, 154, 122, 147, 121, 131, 135, 123, 124, 137, 122, 143, 101, 119, 134, 120, 123, 118, 115, 133, 154, 116, 126, 141, 132, 107, 107, 138, 115, 116, 123, 129, 133, 116, 118, 130, 135, 105, 127, 113, 130, 141, 128, 118, 138, 122, 113, 136, 134, 134, 148, 138, 107, 129, 114, 135, 131, 114, 147, 120, 121, 124, 137, 127, 116, 122, 148, 133, 116, 120, 125, 110, 108, 122, 118, 110, 123, 103, 118, 136, 125, 112, 118, 118, 122, 131, 131, 119, 132, 142, 156, 113, 118, 139, 128, 132, 112, 130, 114, 122, 138, 152, 140, 123, 123, 140, 147, 118, 120, 120, 133, 117, 141, 124, 127, 115, 138, 129, 132, 126, 121, 120, 126, 129, 114, 132, 154, 134, 124, 129, 132, 136, 130, 114, 118, 125, 129, 117, 112, 139, 129, 114, 112, 131, 118, 119, 124, 131, 115, 124, 146, 126, 116, 129, 132, 120, 132, 129, 130, 127, 104, 121, 137, 127, 132, 134, 130, 114, 116, 102, 98, 139, 108, 143, 119, 130, 150, 121, 109, 130, 127, 136, 128, 143, 143, 135, 128, 111, 99, 148, 115, 135, 143, 140, 134, 136, 121, 141, 116, 136, 138, 127, 134, 131, 104, 135, 140, 121, 133, 128, 121, 100, 129, 121, 131, 119, 105, 128, 106, 134, 114, 118, 126, 137, 122, 129, 110, 119, 127, 139, 133, 117, 114, 128, 115, 125, 121, 126, 148, 119, 126, 120, 121, 150, 123, 137, 121, 147, 132, 127, 112, 110, 122, 135, 131, 131, 121, 141, 122, 119, 129, 127, 116, 133, 126, 152, 108, 126, 127, 110, 117, 126, 133, 139, 116, 129, 147, 129, 124, 142, 141, 115, 119, 134, 106, 124, 115, 135, 148, 142, 113, 127, 131, 116, 124, 148, 110, 130, 124, 124, 116, 122, 119, 119, 123, 121, 126, 123, 120, 137, 136, 127, 140, 126, 125, 123, 121, 124, 123, 114, 134, 123, 106, 128, 139, 153, 137, 133, 131, 116, 132, 122, 125, 128, 123, 127, 133, 147, 128, 109, 121, 123, 119, 127, 128, 118, 114, 127, 119, 134, 129, 120, 116, 121, 119, 117, 120, 124, 130, 112, 123, 121, 117, 123, 124, 117, 135, 129, 124, 143, 120, 129, 115, 112, 122, 126, 119, 119, 114, 122, 138, 127, 133, 137, 129, 125, 112, 118, 133, 130, 139, 115, 122, 111, 119, 113, 132, 116, 121, 98, 139, 117, 126, 124, 126, 130, 125, 127, 132, 116, 102, 122, 130, 120, 114, 131, 125, 122, 116, 133, 126, 126, 125, 121, 130, 117, 108, 127, 134, 128, 141, 131, 138, 124, 138, 124, 127, 121, 127, 117, 132, 134, 142, 138, 136, 126, 123, 123, 134, 131, 127, 120, 117, 128, 125, 124, 130, 132, 143, 133, 122, 128, 138, 117, 123, 112, 118, 129, 120, 116, 127, 144, 124, 138, 130, 121, 120, 132, 121, 118, 126, 122, 107, 152, 127, 103, 141, 114, 115, 143, 109, 132, 117, 135, 140, 126, 140, 143, 121, 137, 126, 135, 137, 130, 134, 125, 125, 125, 128, 120, 133, 139, 128, 130, 102, 127, 135, 132, 122, 133, 116, 120, 122, 120, 131, 127, 115, 117, 120, 120, 139, 127, 134, 124, 108, 159, 123, 127, 129, 108, 115, 120, 142, 129, 131, 123, 126, 118, 115, 115, 132, 138, 119, 119, 128, 114, 109, 137, 130, 109, 133, 111, 121, 130, 135, 118, 154, 133, 102, 137, 128, 128, 117, 129, 132, 121, 120, 129, 116, 146, 116, 126, 120, 136, 139, 118, 134, 129, 127, 114, 108, 110, 127, 121, 139, 136, 140, 114, 114, 140, 135, 112, 132, 122, 122, 127, 130, 139, 116, 107, 121, 117, 114, 117, 117, 130, 122, 115, 131, 111, 135, 126, 132, 115, 114, 131, 140, 131, 122, 128, 105, 134, 119, 127, 140, 113, 109, 116, 123, 134, 128, 132, 121, 127, 127, 138, 132, 124, 158, 132, 126, 131, 118, 115, 124, 121, 111, 113, 108, 120, 131, 119, 119, 126, 137, 127, 136, 124, 119, 133, 126, 133, 134, 134, 127, 109, 126, 115, 118, 141, 126, 117, 124, 121, 132, 132, 130, 121, 124, 110, 127, 120, 119, 119, 116, 110, 109, 123, 117, 117, 120, 151, 128, 135, 122, 150, 131, 118, 131, 134, 129, 131, 126, 117, 131, 112, 131, 123, 119, 108, 118, 141, 115, 112, 136, 151, 127, 136, 142, 114, 146, 111, 115, 161, 123, 120, 118, 146, 128, 107, 129, 133, 124, 130, 132, 128, 124, 118, 145, 139, 131, 132, 130, 125, 134, 109, 132, 121, 126, 120, 133, 125, 123, 123, 119, 110, 146, 112, 136, 110, 115, 102, 106, 111, 132, 131, 121, 112, 132, 125, 126, 121, 102, 131, 135, 144, 135, 118, 117, 131, 148, 123, 122, 142, 136, 122, 112, 136, 151, 138, 126, 122, 134, 142, 129, 135, 145, 115, 120, 110, 123, 142, 125, 125, 123, 136, 134, 141, 124, 152, 133, 121, 119, 140, 123, 124, 123, 128, 147, 127, 130, 118, 122, 114, 132, 123, 135, 126, 141, 129, 133, 117, 128, 135, 124, 134, 121, 119, 122, 119, 134, 122, 127, 112, 119, 131, 141, 115, 144, 121, 124, 124, 125, 139, 132, 133, 130, 126, 127, 126, 116, 107, 125, 132, 127, 119, 116, 119, 127, 135, 112, 116, 118, 120, 114, 134, 128, 132, 118, 131, 118, 141, 118, 133, 125, 133, 133, 128, 117, 112, 125, 104, 118, 136, 141, 141, 140, 131, 119, 124, 131, 149, 134, 145, 95, 98, 119, 120, 106, 126, 114, 120, 139, 113, 144, 110, 134, 131, 133, 135, 128, 123, 124, 122, 128, 115, 133, 143, 135, 122, 152, 145, 130, 124, 131, 120, 128, 120, 118, 128, 118, 130, 116, 118, 104, 135, 118, 129, 116, 125, 110, 131, 139, 130, 127, 131, 121, 111, 146, 133, 132, 128, 128, 119, 125, 129, 141, 108, 108, 109, 117, 115, 125, 117, 131, 125, 123, 145, 112, 138, 116, 153, 127, 123, 122, 116, 142, 137, 127, 119, 104, 141, 125, 128, 112, 128, 128, 109, 118, 117, 122, 120, 117, 125, 105, 105, 137, 141, 132, 140, 121, 118, 115, 104, 136, 141, 123, 109, 130, 126, 139, 103, 132, 131, 144, 143, 146, 129, 123, 131, 134, 128, 115, 126, 116, 115, 126, 145, 118, 109, 121, 101, 130, 118, 121, 127, 119, 134, 140, 125, 127, 134, 119, 111, 124, 133, 123, 123, 143, 149, 128, 131, 137, 112, 106, 127, 125, 129, 117, 107, 123, 126, 134, 109, 125, 133, 127, 113, 133, 141, 122, 123, 128, 124, 135, 124, 126, 125, 156, 112, 127, 144, 130, 129, 128, 115, 121, 121, 125, 126, 127, 132, 129, 137, 116, 119, 116, 139, 133, 133, 124, 118, 117, 135, 130, 138, 122, 136, 121, 131, 135, 129, 127, 126, 115, 130, 136, 147, 101, 121, 119, 123, 136, 131, 121, 133, 127, 120, 135, 121, 121, 126, 110, 133, 115, 118, 127, 123, 108, 150, 120, 128, 121, 128, 127, 115, 122, 123, 128, 132, 128, 115, 115, 120, 140, 107, 138, 127, 130, 106, 128, 108, 115, 127, 112, 101, 121, 128, 120, 121, 119, 117, 130, 115, 147, 139, 129, 121, 137, 122, 117, 116, 122, 126, 133, 124, 121, 113, 116, 116, 114, 123, 122, 127, 121, 127, 112, 145, 123, 124, 121, 119, 131, 119, 129, 147, 107, 138, 136, 144, 113, 128, 118, 109, 124, 131, 125, 130, 119, 127, 122, 98, 119, 126, 131, 121, 145, 130, 103, 124, 129, 128, 112, 112, 116, 129, 134, 122, 119, 129, 124, 135, 132, 130, 132, 122, 124, 138, 124, 141, 130, 130, 116, 125, 132, 128, 129, 105, 127, 128, 115, 131, 127, 140, 124, 123, 111, 132, 136, 128, 117, 118, 107, 141, 118, 130, 120, 118, 131, 133, 122, 102, 116, 94, 143, 127, 113, 114, 120, 118, 132, 153, 147, 131, 112, 118, 108, 124, 114, 114, 117, 118, 126, 119, 127, 106, 115, 120, 126, 134, 128, 125, 135, 127, 126, 122, 115, 132, 121, 112, 125, 122, 149, 126, 114, 112, 129, 134, 130, 121, 138, 112, 136, 105, 127, 135, 123, 131, 126, 117, 133, 117, 110, 124, 123, 108, 117, 128, 138, 122, 128, 123, 102, 116, 137, 113, 143, 133, 119, 145, 142, 135, 123, 117, 128, 148, 128, 126, 133, 114, 112, 122, 137, 139, 139, 128, 139, 121, 121, 125, 117, 130, 118, 128, 141, 155, 130, 128, 137, 123, 102, 115, 121, 116, 136, 117, 118, 116, 117, 127, 140, 133, 116, 123, 136, 128, 127, 107, 127, 114, 131, 133, 126, 122, 143, 133, 111, 144, 141, 124, 122, 150, 124, 123, 123, 115, 103, 137, 108, 130, 121, 116, 120, 130, 123, 146, 115, 132, 129, 104, 117, 119, 130, 134, 114, 128, 122, 130, 131, 150, 101, 133, 120, 133, 130, 117, 123, 129, 124, 120, 103, 117, 132, 119, 122, 125, 112, 104, 125, 139, 143, 102, 143, 122, 123, 150, 105, 126, 108, 125, 126, 122, 128, 116, 127, 128, 145, 137, 148, 101, 133, 112, 134, 132, 150, 127, 120, 144, 122, 110, 111, 134, 124, 129, 112, 115, 110, 135, 126, 122, 130, 129, 136, 122, 125, 130, 100, 124, 127, 123, 112, 126, 112, 127, 111, 116, 113, 116, 146, 114, 127, 128, 109, 148, 127, 123, 106, 133, 123, 135, 112, 129, 113, 123, 133, 141, 127, 133, 112, 123, 122, 120, 137, 125, 109, 124, 124, 127, 141, 116, 112, 134, 110, 115, 116, 137, 129, 142, 136, 123, 132, 129, 121, 131, 117, 109, 137, 135, 123, 133, 128, 116, 119, 136, 127, 147, 106, 139, 132, 112, 124, 119, 125, 129, 134, 110, 115, 105, 133, 109, 142, 131, 132, 110, 130, 126, 116, 122, 126, 128, 136, 117, 119, 110, 127, 141, 110, 126, 123, 143, 111, 115, 130, 127, 138, 115, 115, 137, 138, 121, 117, 119, 125, 127, 110, 122, 118, 120, 135, 139, 109, 145, 127, 123, 142, 141, 113, 126, 128, 130, 130, 123, 158, 124, 128, 122, 114, 121, 126, 122, 144, 116, 117, 128, 130, 117, 129, 126, 130, 119, 126, 128, 129, 138, 122, 117, 119, 132, 120, 127, 117, 125, 129, 129, 128, 124, 139, 113, 119, 114, 126, 136, 116, 111, 127, 138, 105, 113, 131, 125, 116, 125, 135, 146, 131, 122, 121, 130, 131, 115, 139, 124, 127, 128, 110, 117, 127, 116, 118, 104, 133, 143, 139, 136, 144, 136, 127, 140, 116, 128, 128, 125, 115, 125, 131, 125, 113, 122, 141, 124, 116, 116, 118, 132, 117, 130, 121, 134, 131, 134, 120, 110, 124, 133, 135, 121, 131, 134, 131, 123, 141, 130, 124, 130, 132, 125, 126, 115, 139, 133, 125, 127, 125, 113, 111, 130, 112, 124, 130, 116, 114, 121, 135, 119, 126, 134, 121, 128, 127, 123, 122, 111, 112, 100, 130, 133, 124, 121, 118, 120, 134, 123, 129, 159, 126, 124, 119, 127, 119, 120, 130, 131, 143, 124, 132, 115, 111, 142, 141, 107, 120, 116, 128, 126, 123, 131, 138, 122, 128, 103, 114, 123, 113, 123, 124, 121, 128, 120, 120, 140, 135, 120, 118, 120, 109, 105, 120, 132, 124, 134, 132, 127, 119, 128, 113, 114, 119, 118, 117, 135, 125, 119, 123, 138, 123, 151, 127, 124, 123, 126, 148, 135, 106, 122, 136, 114, 132, 143, 114, 132, 119, 116, 118, 134, 127, 120, 136, 125, 144, 126, 129, 137, 127, 129, 115, 107, 131, 133, 133, 130, 113, 120, 133, 129, 111, 135, 136, 108, 148, 134, 128, 125, 137, 136, 129, 124, 138, 110, 130, 115, 128, 121, 127, 118, 124, 133, 130, 126, 97, 126, 128, 113, 119, 123, 129, 121, 127, 117, 114, 119, 127, 120, 125, 132, 132, 128, 125, 110, 126, 135, 116, 129, 126, 146, 133, 144, 131, 135, 134, 123, 123, 139, 119, 111, 110, 133, 123, 130, 122, 100, 115, 129, 119, 124, 125, 138, 119, 137, 121, 124, 132, 130, 134, 117, 139, 145, 129, 131, 134, 140, 112, 118, 124, 134, 104, 120, 106, 120, 132, 123, 120, 124, 118, 117, 108, 120, 124, 144, 118, 128, 124, 117, 114, 99, 126, 146, 120, 119, 129, 119, 113, 142, 135, 135, 136, 122, 112, 127, 145, 132, 139, 129, 114, 121, 122, 134, 135, 121, 127, 122, 149, 115, 109, 115, 140, 126, 132, 154, 127, 127, 113, 131, 121, 140, 125, 136, 117, 121, 125, 113, 131, 128, 102, 145, 127, 120, 137, 129, 144, 133, 128, 105, 129, 132, 138, 126, 115, 133, 141, 116, 119, 142, 122, 131, 125, 127, 122, 130, 109, 117, 140, 123, 131, 120, 121, 119, 130, 131, 134, 126, 118, 122, 130, 126, 122, 124, 131, 141, 116, 104, 146, 121, 151, 131, 137, 124, 119, 123, 123, 125, 134, 135, 121, 132, 126, 97, 119, 132, 133, 127, 128, 134, 119, 131, 125, 123, 115, 138, 129, 119, 146, 119, 110, 152, 122, 146, 136, 128, 140, 141, 132, 150, 141, 118, 115, 134, 145, 122, 112, 138, 123, 126, 120, 122, 130, 125, 114, 119, 129, 118, 129, 125, 118, 134, 116, 135, 126, 126, 123, 119, 122, 122, 133, 128, 132, 132, 119, 118, 117, 130, 134, 113, 122, 136, 115, 128, 136, 141, 115, 136, 122, 123, 108, 125, 126, 112, 149, 148, 136, 129, 124, 119, 131, 119, 138, 118, 124, 140, 121, 130, 122, 125, 131, 124, 124, 132, 131, 120, 149, 117, 142, 128, 120, 131, 111, 128, 144, 149, 123, 136, 127, 119, 154, 123, 121, 124, 120, 148, 138, 114, 141, 121, 134, 123, 126, 149, 114, 135, 127, 124, 119, 129, 127, 117, 121, 116, 128, 118, 122, 140, 124, 131, 114, 129, 118, 122, 125, 141, 133, 148, 113, 131, 126, 132, 123, 138, 120, 120, 115, 143, 130, 117, 131, 125, 135, 110, 133, 117, 144, 127, 127, 123, 140, 119, 125, 124, 126, 118, 126, 108, 112, 145, 123, 138, 130, 110, 141, 123, 124, 129, 119, 145, 129, 108, 112, 126, 138, 135, 110, 154, 147, 102, 126, 110, 132, 119, 147, 132, 130, 126, 114, 128, 126, 125, 126, 113, 119, 97, 129, 125, 114, 143, 134, 133, 127, 130, 127, 118, 122, 141, 130, 121, 117, 149, 131, 116, 121, 119, 135, 131, 130, 137, 122, 120, 131, 132, 97, 121, 140, 118, 142, 134, 125, 128, 119, 140, 135, 126, 129, 121, 122, 137, 128, 127, 126, 147, 134, 130, 112, 155, 117, 123, 124, 158, 129, 134, 145, 120, 130, 128, 148, 104, 127, 105, 137, 142, 115, 116, 114, 125, 132, 128, 129, 143, 141, 123, 126, 122, 144, 120, 136, 124, 122, 121, 123, 140, 126, 121, 133, 120, 127, 130, 114, 136, 109, 122, 130, 139, 125, 126, 117, 124, 116, 130, 125, 124, 110, 137, 123, 129, 131, 122, 140, 105, 135, 137, 135, 122, 123, 132, 128, 137, 138, 127, 110, 129, 139, 132, 136, 131, 125, 141, 133, 134, 141, 131, 128, 117, 139, 139, 133, 127, 128, 136, 114, 135, 115, 134, 138, 121, 128, 124, 119, 129, 153, 140, 124, 124, 119, 124, 125, 131, 119, 141, 118, 132, 122, 135, 135, 115, 143, 125, 121, 127, 122, 124, 130, 127, 124, 133, 132, 127, 123, 132, 127, 137, 134, 142, 133, 128, 138, 130, 129, 146, 132, 119, 118, 130, 120, 124, 125, 136, 121, 122, 119, 123, 136, 107, 118, 124, 139, 121, 129, 119, 138, 126, 127, 137, 144, 118, 136, 126, 133, 130, 129, 124, 128, 126, 143, 106, 112, 131, 138, 102, 128, 127, 125, 132, 139, 118, 125, 117, 108, 130, 136, 119, 137, 113, 112, 122, 105, 128, 127, 138, 127, 138, 141, 123, 119, 123, 114, 132, 137, 140, 129, 116, 127, 118, 121, 127, 113, 117, 122, 146, 135, 141, 125, 134, 119, 110, 127, 108, 134, 131, 124, 133, 130, 119, 129, 146, 124, 129, 109, 135, 116, 114, 123, 128, 128, 126, 146, 113, 119, 113, 151, 130, 119, 136, 130, 125, 124, 156, 123, 123, 120, 122, 120, 129, 150, 112, 127, 123, 136, 145, 118, 137, 112, 138, 133, 125, 128, 135, 132, 120, 120, 127, 136, 121, 132, 124, 132, 129, 114, 132, 134, 142, 126, 125, 132, 125, 105, 121, 126, 123, 134, 119, 117, 128, 133, 119, 148, 144, 128, 133, 142, 136, 128, 116, 112, 133, 110, 123, 120, 123, 113, 120, 118, 128, 118, 124, 112, 114, 137, 107, 124, 131, 130, 120, 123, 133, 117, 114, 127, 125, 121, 119, 137, 133, 125, 135, 125, 125, 134, 144, 123, 108, 135, 133, 135, 133, 124, 141, 141, 120, 128, 132, 105, 117, 128, 130, 111, 130, 137, 129, 117, 111, 130, 128, 137, 100, 144, 129, 118, 126, 145, 132, 129, 132, 124, 136, 127, 118, 123, 117, 128, 112, 139, 106, 118, 118, 95, 110, 111, 130, 106, 129, 122, 103, 140, 131, 107, 126, 149, 140, 125, 120, 134, 126, 116, 133, 132, 128, 140, 130, 133, 123, 118, 116, 115, 117, 119, 112, 129, 128, 125, 135, 120, 127, 110, 121, 129, 113, 126, 120, 126, 118, 142, 131, 128, 121, 132, 129, 131, 131, 133, 101, 116, 133, 129, 118, 121, 124, 134, 130, 122, 110, 135, 111, 121, 132, 134, 128, 140, 122, 128, 108, 134, 138, 122, 139, 116, 153, 123, 127, 134, 106, 134, 114, 129, 150, 122, 123, 122, 121, 133, 117, 111, 116, 149, 136, 142, 137, 129, 123, 110, 109, 132, 132, 127, 125, 118, 116, 114, 135, 123, 135, 130, 126, 127, 109, 125, 144, 121, 118, 123, 125, 124, 113, 128, 153, 130, 111, 121, 120, 139, 104, 118, 121, 135, 118, 133, 130, 107, 139, 124, 115, 129, 146, 123, 117, 123, 127, 160, 126, 131, 121, 133, 114, 118, 121, 127, 126, 130, 131, 129, 126, 103, 113, 117, 125, 140, 115, 111, 108, 129, 142, 158, 127, 128, 129, 131, 116, 127, 111, 123, 106, 116, 118, 122, 101, 119, 124, 111, 107, 106, 120, 129, 117, 124, 133, 113, 152, 107, 133, 122, 121, 130, 119, 125, 136, 148, 119, 120, 101, 133, 142, 113, 129, 130, 115, 126, 125, 130, 113, 135, 122, 134, 121, 132, 137, 133, 111, 138, 134, 146, 122, 125, 137, 123, 122, 127, 122, 131, 125, 123, 119, 134, 120, 124, 124, 121, 117, 120, 130, 116, 120, 132, 136, 136, 125, 127, 119, 125, 121, 127, 103, 117, 113, 131, 112, 127, 145, 120, 129, 141, 121, 143, 127, 120, 124, 142, 116, 125, 114, 131, 133, 119, 123, 109, 114, 118, 140, 107, 125, 129, 122, 122, 124, 111, 122, 122, 121, 129, 122, 127, 122, 123, 142, 121, 114, 119, 135, 130, 120, 133, 117, 117, 140, 126, 131, 144, 127, 131, 121, 123, 122, 132, 141, 134, 111, 118, 138, 113, 116, 119, 130, 127, 125, 134, 125, 132, 117, 124, 102, 128, 140, 133, 118, 128, 111, 115, 123, 105, 133, 111, 126, 133, 124, 137, 141, 119, 107, 121, 126, 133, 108, 135, 132, 118, 140, 130, 104, 115, 128, 135, 132, 127, 125, 112, 135, 121, 129, 135, 128, 131, 121, 117, 128, 107, 119, 112, 138, 123, 113, 139, 130, 112, 115, 126, 126, 135, 122, 148, 116, 125, 141, 116, 127, 121, 111, 135, 125, 137, 130, 118, 141, 135, 137, 119, 103, 140, 120, 125, 149, 140, 107, 112, 131, 120, 127, 129, 117, 129, 140, 110, 125, 108, 126, 141, 130, 140, 133, 125, 143, 132, 125, 112, 127, 102, 142, 121, 144, 140, 135, 114, 102, 134, 125, 112, 133, 135, 122, 117, 123, 127, 124, 138, 120, 124, 117, 110, 114, 100, 125, 118, 150, 131, 119, 128, 134, 112, 134, 115, 150, 133, 126, 134, 123, 109, 120, 125, 125, 134, 138, 118, 104, 128, 124, 122, 121, 106, 125, 139, 127, 136, 119, 144, 132, 119, 130, 127, 119, 123, 109, 132, 142, 138, 123, 124, 107, 144, 120, 109, 136, 128, 121, 123, 114, 110, 121, 141, 118, 148, 127, 110, 108, 116, 131, 125, 116, 132, 129, 125, 123, 125, 126, 119, 139, 117, 119, 126, 134, 118, 116, 133, 114, 128, 129, 128, 122, 117, 120, 146, 138, 123, 117, 122, 128, 120, 137, 130, 107, 130, 117, 113, 144, 118, 123, 119, 106, 129, 129, 123, 119, 123, 103, 127, 135, 123, 129, 125, 120, 134, 127, 142, 109, 126, 125, 128, 140, 133, 132, 137, 114, 128, 128, 126, 129, 112, 136, 132, 129, 135, 115, 123, 124, 133, 116, 127, 102, 126, 112, 123, 150, 121, 121, 134, 125, 122, 122, 115, 133, 119, 122, 119, 115, 127, 131, 112, 123, 135, 138, 124, 124, 125, 133, 123, 136, 123, 109, 119, 110, 124, 118, 136, 124, 125, 124, 127, 126, 132, 127, 128, 121, 133, 120, 126, 125, 119, 119, 130, 129, 140, 122, 119, 115, 130, 117, 123, 120, 122, 137, 108, 160, 126, 127, 131, 125, 134, 137, 127, 130, 136, 127, 127, 124, 119, 124, 114, 132, 113, 137, 129, 129, 116, 119, 117, 118, 133, 124, 104, 142, 122, 125, 142, 113, 125, 126, 151, 125, 146, 138, 128, 131, 119, 130, 134, 120, 117, 133, 127, 119, 120, 116, 143, 122, 139, 138, 135, 125, 116, 103, 111, 129, 122, 122, 121, 137, 129, 122, 153, 116, 123, 123, 114, 121, 126, 121, 132, 130, 114, 136, 130, 138, 136, 129, 125, 134, 118, 126, 123, 129, 135, 128, 123, 115, 124, 141, 120, 141, 119, 130, 128, 122, 124, 124, 150, 117, 112, 131, 132, 132, 123, 113, 130, 113, 126, 124, 122, 116, 113, 114, 114, 114, 119, 129, 122, 123, 126, 122, 118, 141, 125, 124, 138, 133, 132, 110, 142, 106, 112, 103, 123, 128, 119, 115, 114, 114, 109, 128, 124, 127, 124, 110, 113, 127, 139, 131, 117, 126, 124, 106, 122, 127, 118, 111, 116, 130, 130, 123, 132, 133, 142, 134, 134, 139, 131, 127, 121, 127, 117, 109, 121, 121, 134, 140, 116, 78, 111, 122, 121, 136, 141, 120, 117, 109, 112, 132, 112, 129, 107, 127, 134, 148, 129, 140, 147, 129, 141, 116, 129, 115, 104, 128, 156, 120, 127, 104, 127, 118, 121, 127, 137, 124, 133, 133, 105, 102, 123, 135, 128, 122, 110, 125, 115, 122, 126, 128, 129, 127, 121, 135, 123, 122, 101, 125, 120, 119, 136, 120, 115, 125, 120, 131, 126, 124, 126, 117, 115, 118, 130, 128, 132, 108, 128, 135, 121, 115, 143, 113, 131, 116, 143, 128, 120, 136, 147, 123, 124, 128, 142, 123, 127, 116, 123, 117, 135, 138, 136, 136, 124, 115, 135, 141, 110, 113, 121, 126, 127, 120, 132, 134, 115, 129, 118, 124, 124, 110, 117, 121, 144, 131, 119, 123, 123, 135, 133, 138, 120, 142, 121, 97, 120, 133, 133, 119, 117, 120, 138, 127, 119, 145, 138, 128, 125, 152, 116, 134, 129, 137, 116, 128, 137, 127, 129, 122, 130, 117, 126, 134, 122, 134, 116, 122, 142, 121, 117, 129, 115, 121, 127, 131, 131, 108, 122, 118, 116, 127, 123, 121, 117, 124, 100, 138, 128, 122, 132, 129, 137, 112, 120, 110, 144, 130, 133, 144, 111, 123, 128, 128, 132, 126, 122, 145, 131, 129, 120, 119, 145, 119, 122, 130, 134, 133, 157, 107, 137, 113, 127, 131, 124, 131, 151, 128, 130, 127, 130, 129, 125, 120, 135, 139, 138, 120, 143, 121, 128, 133, 117, 149, 109, 115, 121, 125, 111, 128, 118, 118, 107, 110, 128, 142, 129, 137, 136, 114, 99, 118, 114, 122, 122, 112, 121, 117, 126, 113, 131, 120, 124, 123, 118, 138, 109, 143, 112, 116, 124, 124, 110, 121, 126, 131, 137, 126, 129, 116, 118, 136, 113, 121, 123, 124, 128, 117, 129, 123, 149, 125, 134, 121, 113, 151, 111, 125, 119, 118, 125, 121, 142, 108, 124, 129, 117, 133, 124, 112, 135, 121, 112, 122, 92, 111, 118, 117, 114, 124, 134, 131, 134, 127, 118, 131, 113, 107, 106, 121, 71, 132, 123, 112, 117, 129, 138, 129, 125, 121, 134, 131, 121, 127, 123, 136, 125, 120, 134, 119, 119, 137, 140, 133, 142, 117, 126, 133, 132, 120, 124, 122, 142, 123, 97, 118, 119, 119, 149, 139, 121, 118, 123, 121, 145, 126, 114, 124, 121, 122, 112, 118, 110, 139, 113, 120, 124, 128, 152, 115, 134, 131, 128, 133, 119, 141, 130, 141, 137, 103, 116, 113, 98, 113, 111, 150, 138, 132, 126, 110, 131, 96, 133, 122, 128, 134, 115, 117, 108, 129, 117, 128, 122, 120, 113, 119, 143, 131, 136, 131, 118, 127, 137, 118, 122, 84, 124, 135, 124, 115, 124, 100, 116, 100, 132, 142, 126, 145, 111, 113, 137, 151, 153, 118, 124, 117, 119, 101, 136, 128, 131, 138, 112, 110, 135, 127, 117, 146, 111, 113, 182, 127, 133, 119, 125, 139, 130, 144, 137, 149, 133, 118, 124, 119, 134, 124, 151, 128, 134, 120, 132, 121, 116, 122, 112, 150, 107, 131, 122, 107, 128, 141, 126, 136, 147, 114, 134, 126, 118, 114, 124, 118, 114, 140, 119, 125, 131, 134, 116, 134, 120, 127, 125, 129, 143, 126, 125, 113, 131, 132, 114, 128, 116, 134, 119, 136, 149, 107, 126, 102, 114, 109, 133, 139, 112, 125, 121, 132, 136, 126, 132, 139, 129, 121, 124, 107, 119, 126, 163, 120, 122, 117, 125, 113, 107, 116, 125, 129, 130, 125, 117, 120, 140, 127, 109, 107, 127, 115, 133, 121, 110, 128, 129, 117, 104, 128, 136, 124, 136, 129, 125, 117, 117, 128, 111, 132, 122, 126, 149, 121, 117, 127, 123, 125, 128, 128, 132, 109, 110, 126, 120, 114, 116, 116, 117, 130, 115, 129, 109, 118, 119, 122, 119, 134, 111, 115, 139, 113, 131, 101, 99, 146, 137, 128, 132, 129, 122, 121, 130, 124, 123, 110, 111, 116, 132, 127, 120, 106, 106, 118, 129, 113, 120, 120, 130, 135, 144, 120, 120, 136, 128, 128, 122, 149, 131, 109, 133, 119, 111, 126, 127, 122, 116, 123, 125, 129, 129, 141, 139, 128, 128, 144, 128, 141, 129, 136, 117, 106, 120, 140, 132, 121, 121, 124, 132, 113, 136, 113, 123, 106, 134, 132, 111, 113, 173, 111, 120, 129, 141, 112, 114, 123, 120, 135, 130, 119, 120, 105, 140, 140, 117, 124, 132, 107, 140, 147, 119, 129, 131, 128, 130, 154, 116, 123, 132, 135, 118, 142, 100, 131, 130, 120, 155, 117, 132, 117, 116, 132, 134, 122, 127, 116, 110, 116, 123, 130, 134, 132, 146, 143, 94, 115, 118, 124, 130, 121, 101, 122, 136, 114, 111, 119, 124, 114, 127, 135, 138, 126, 114, 117, 123, 126, 127, 138, 127, 128, 143, 129, 130, 108, 109, 136, 128, 123, 135, 131, 130, 141, 141, 130, 134, 122, 133, 103, 136, 114, 119, 113, 118, 124, 142, 120, 120, 122, 137, 138, 145, 134, 113, 139, 110, 135, 138, 147, 131, 123, 129, 133, 124, 118, 129, 125, 116, 143, 127, 119, 107, 124, 118, 120, 137, 119, 138, 133, 133, 126, 122, 126, 114, 137, 132, 115, 147, 129, 134, 116, 94, 119, 123, 135, 125, 117, 120, 130, 122, 129, 131, 125, 116, 133, 122, 123, 140, 124, 121, 116, 116, 131, 119, 144, 125, 122, 148, 133, 122, 127, 139, 113, 135, 120, 128, 109, 126, 141, 143, 121, 143, 127, 122, 112, 109, 117, 123, 114, 130, 129, 134, 126, 120, 122, 136, 134, 125, 125, 132, 123, 110, 118, 112, 122, 137, 136, 114, 118, 118, 130, 126, 154, 139, 129, 128, 118, 120, 125, 123, 136, 102, 130, 128, 124, 143, 119, 140, 132, 113, 121, 137, 127, 139, 129, 130, 112, 128, 107, 142, 141, 136, 144, 122, 122, 129, 150, 119, 127, 130, 120, 127, 118, 111, 119, 134, 121, 138, 129, 131, 126, 128, 109, 119, 133, 128, 114, 119, 115, 143, 136, 104, 149, 109, 124, 139, 140, 125, 118, 131, 132, 141, 123, 134, 116, 132, 125, 136, 129, 110, 137, 122, 114, 121, 112, 114, 114, 105, 132, 122, 130, 138, 123, 140, 135, 153, 120, 121, 132, 122, 126, 122, 132, 115, 131, 120, 134, 119, 113, 122, 131, 115, 125, 126, 117, 122, 127, 117, 106, 125, 123, 109, 122, 136, 123, 128, 120, 126, 113, 116, 124, 109, 102, 117, 121, 125, 127, 136, 129, 125, 103, 141, 115, 116, 136, 113, 130, 121, 134, 120, 132, 125, 110, 113, 130, 121, 142, 115, 137, 126, 130, 115, 117, 143, 109, 119, 139, 109, 112, 115, 120, 124, 126, 131, 126, 123, 126, 121, 134, 139, 150, 134, 140, 131, 120, 122, 121, 148, 121, 132, 128, 101, 128, 119, 123, 137, 131, 125, 135, 138, 127, 117, 127, 156, 113, 126, 128, 129, 113, 124, 128, 121, 112, 140, 106, 126, 109, 118, 133, 134, 124, 109, 110, 126, 138, 143, 144, 115, 138, 104, 118, 107, 118, 142, 108, 122, 122, 114, 115, 139, 142, 116, 123, 142, 106, 135, 117, 131, 119, 133, 118, 119, 130, 133, 135, 111, 130, 120, 129, 135, 132, 113, 133, 140, 125, 123, 126, 129, 123, 121, 132, 132, 125, 111, 131, 117, 130, 138, 132, 114, 119, 121, 122, 152, 125, 135, 126, 124, 126, 125, 117, 133, 127, 125, 144, 108, 119, 115, 124, 121, 115, 112, 128, 129, 126, 115, 114, 132, 133, 131, 130, 126, 133, 112, 129, 110, 120, 118, 134, 142, 129, 109, 118, 119, 106, 117, 98, 133, 121, 130, 119, 140, 135, 131, 137, 132, 131, 124, 135, 125, 116, 139, 115, 117, 95, 130, 125, 141, 114, 129, 143, 111, 133, 118, 132, 119, 124, 118, 152, 143, 131, 129, 131, 115, 130, 128, 119, 118, 134, 134, 125, 130, 117, 118, 107, 114, 136, 123, 118, 135, 133, 138, 124, 129, 114, 132, 127, 130, 122, 126, 140, 140, 115, 118, 141, 115, 116, 112, 120, 114, 131, 130, 145, 122, 118, 128, 112, 134, 118, 130, 106, 112, 144, 114, 116, 124, 127, 125, 125, 124, 127, 125, 128, 110, 143, 145, 114, 117, 124, 119, 117, 141, 144, 123, 123, 127, 129, 115, 140, 133, 109, 122, 123, 130, 141, 133, 96, 116, 109, 135, 92, 129, 117, 107, 132, 130, 123, 132, 122, 118, 141, 118, 149, 120, 129, 121, 127, 120, 99, 136, 122, 132, 114, 113, 130, 118, 144, 131, 132, 129, 135, 128, 123, 129, 133, 111, 114, 124, 112, 132, 114, 144, 119, 127, 127, 106, 133, 134, 144, 132, 125, 128, 115, 107, 136, 138, 130, 130, 148, 110, 113, 123, 109, 105, 109, 115, 133, 117, 97, 123, 121, 127, 103, 120, 111, 132, 125, 118, 140, 136, 119, 123, 122, 137, 134, 124, 124, 133, 131, 130, 140, 135, 125, 128, 121, 143, 122, 112, 123, 115, 135, 112, 130, 140, 138, 128, 136, 139, 138, 144, 95, 123, 133, 110, 118, 123, 123, 135, 136, 135, 108, 131, 123, 126, 135, 143, 133, 114, 107, 123, 112, 134, 129, 118, 107, 115, 122, 112, 133, 123, 151, 125, 142, 136, 124, 119, 115, 141, 117, 124, 133, 121, 111, 136, 133, 124, 126, 136, 124, 123, 129, 127, 136, 128, 111, 136, 126, 145, 133, 137, 117, 113, 125, 135, 131, 113, 122, 130, 133, 125, 138, 132, 124, 124, 122, 103, 143, 116, 126, 117, 112, 146, 143, 136, 119, 141, 115, 137, 111, 130, 120, 135, 125, 128, 136, 132, 115, 113, 131, 109, 123, 130, 124, 131, 123, 120, 126, 129, 131, 129, 137, 131, 131, 119, 121, 129, 139, 135, 127, 129, 103, 124, 129, 128, 125, 120, 123, 114, 133, 127, 128, 122, 121, 119, 135, 122, 141, 135, 117, 123, 119, 141, 133, 117, 115, 144, 143, 113, 123, 118, 131, 125, 126, 142, 116, 125, 121, 114, 119, 150, 112, 135, 106, 118, 126, 124, 120, 133, 132, 137, 119, 142, 121, 134, 133, 121, 127, 126, 112, 124, 123, 109, 142, 124, 121, 109, 152, 119, 134, 134, 125, 127, 126, 135, 134, 125, 130, 111, 131, 107, 126, 103, 147, 148, 120, 125, 130, 128, 119, 135, 119, 114, 138, 124, 127, 120, 119, 132, 117, 124, 128, 126, 110, 123, 131, 146, 125, 123, 130, 134, 130, 115, 123, 106, 119, 124, 112, 138, 126, 112, 115, 135, 133, 131, 134, 118, 125, 119, 134, 131, 127, 144, 116, 127, 135, 112, 127, 123, 145, 120, 106, 126, 136, 131, 125, 114, 128, 115, 120, 125, 110, 120, 139, 137, 118, 127, 118, 150, 130, 123, 137, 125, 131, 139, 138, 132, 140, 134, 110, 116, 139, 125, 124, 122, 144, 127, 127, 118, 136, 155, 125, 130, 138, 136, 105, 138, 121, 117, 130, 118, 111, 116, 130, 137, 118, 119, 143, 111, 130, 144, 123, 138, 103, 142, 112, 137, 120, 138, 125, 137, 129, 135, 132, 113, 136, 148, 114, 112, 153, 134, 143, 130, 119, 117, 122, 132, 115, 135, 118, 117, 103, 127, 126, 121, 128, 140, 130, 129, 135, 127, 151, 116, 137, 120, 120, 118, 115, 128, 113, 106, 117, 108, 131, 130, 154, 123, 121, 129, 116, 127, 131, 113, 103, 130, 132, 146, 139, 130, 128, 125, 147, 131, 145, 158, 139, 128, 125, 152, 140, 112, 126, 106, 138, 111, 123, 123, 124, 127, 126, 114, 133, 120, 119, 133, 125, 137, 136, 126, 139, 99, 132, 128, 131, 135, 137, 111, 150, 139, 131, 126, 100, 127, 130, 132, 126, 127, 127, 120, 134, 142, 144, 110, 131, 120, 130, 118, 121, 115, 121, 140, 121, 137, 134, 118, 116, 108, 123, 107, 118, 111, 139, 116, 118, 128, 127, 125, 126, 111, 125, 118, 121, 128, 125, 112, 118, 107, 120, 123, 126, 117, 138, 124, 134, 122, 133, 130, 133, 142, 123, 132, 127, 129, 115, 121, 135, 139, 124, 128, 122, 139, 128, 141, 133, 129, 128, 125, 114, 113, 118, 130, 136, 137, 153, 125, 122, 120, 143, 128, 145, 112, 147, 131, 129, 129, 126, 125, 122, 147, 141, 113, 138, 123, 128, 126, 130, 119, 112, 121, 114, 124, 104, 140, 109, 114, 125, 117, 115, 129, 111, 135, 122, 127, 123, 116, 116, 122, 131, 128, 113, 125, 130, 130, 111, 136, 124, 122, 133, 111, 132, 115, 123, 120, 113, 133, 137, 97, 128, 129, 112, 112, 137, 117, 127, 115, 116, 117, 133, 139, 132, 112, 125, 142, 107, 132, 111, 114, 124, 131, 124, 113, 134, 121, 115, 125, 137, 143, 123, 129, 133, 116, 128, 134, 105, 133, 127, 136, 143, 119, 119, 127, 123, 124, 140, 141, 110, 123, 115, 124, 120, 111, 112, 124, 132, 103, 129, 112, 136, 127, 151, 114, 114, 126, 112, 116, 115, 122, 125, 118, 142, 116, 116, 130, 119, 113, 121, 131, 129, 127, 119, 128, 118, 114, 104, 145, 130, 131, 129, 126, 130, 127, 135, 113, 133, 116, 126, 131, 115, 112, 122, 124, 107, 127, 110, 126, 134, 128, 140, 121, 125, 106, 116, 119, 146, 120, 122, 123, 137, 130, 123, 137, 138, 122, 121, 117, 121, 122, 127, 126, 125, 144, 119, 104, 135, 131, 127, 123, 130, 124, 127, 125, 127, 134, 132, 118, 119, 119, 121, 114, 129, 115, 125, 121, 122, 135, 130, 119, 141, 121, 127, 132, 126, 104, 124, 127, 128, 116, 124, 120, 132, 122, 128, 126, 122, 123, 149, 122, 129, 110, 131, 136, 133, 146, 134, 128, 134, 117, 122, 120, 139, 143, 138, 127, 128, 116, 138, 114, 116, 138, 116, 138, 124, 130, 150, 134, 127, 129, 122, 130, 125, 130, 138, 128, 131, 105, 128, 129, 113, 106, 124, 121, 123, 124, 133, 113, 133, 127, 112, 115, 131, 132, 126, 118, 130, 117, 126, 131, 126, 122, 124, 145, 133, 122, 113, 115, 125, 115, 141, 126, 122, 121, 120, 118, 125, 118, 107, 141, 123, 117, 130, 143, 117, 118, 118, 124, 110, 116, 118, 128, 111, 123, 114, 127, 115, 115, 133, 129, 145, 129, 121, 141, 121, 118, 120, 122, 130, 129, 118, 128, 140, 118, 121, 118, 121, 110, 131, 125, 139, 135, 121, 130, 130, 113, 132, 150, 114, 128, 123, 108, 126, 128, 125, 125, 123, 132, 116, 121, 125, 111, 111, 123, 159, 127, 127, 103, 122, 128, 113, 128, 117, 132, 131, 131, 138, 132, 143, 120, 114, 129, 146, 140, 125, 136, 134, 121, 137, 123, 137, 136, 118, 117, 126, 117, 111, 128, 130, 126, 124, 127, 135, 133, 131, 120, 121, 112, 107, 137, 119, 136, 131, 148, 142, 123, 137, 120, 125, 113, 127, 110, 127, 121, 118, 123, 117, 131, 134, 133, 109, 121, 135, 114, 116, 124, 132, 108, 126, 122, 120, 111, 136, 109, 120, 140, 117, 123, 130, 111, 117, 128, 123, 130, 113, 112, 125, 111, 117, 120, 121, 130, 126, 145, 131, 122, 126, 120, 128, 119, 108, 111, 131, 139, 136, 119, 118, 142, 119, 122, 116, 120, 147, 135, 132, 121, 121, 118, 133, 124, 121, 120, 127, 137, 117, 135, 123, 130, 119, 129, 122, 116, 111, 119, 129, 129, 139, 143, 128, 124, 108, 123, 113, 126, 140, 141, 122, 120, 117, 122, 137, 109, 123, 124, 96, 149, 139, 139, 119, 124, 143, 109, 118, 124, 121, 131, 124, 127, 105, 113, 141, 125, 102, 134, 128, 131, 124, 118, 125, 117, 114, 120, 128, 135, 114, 130, 128, 110, 119, 135, 128, 128, 118, 120, 125, 130, 129, 117, 126, 138, 143, 120, 113, 123, 130, 141, 129, 130, 122, 117, 107, 117, 134, 128, 117, 123, 121, 115, 129, 107, 144, 134, 130, 119, 132, 130, 134, 125, 125, 139, 135, 125, 119, 124, 147, 124, 116, 111, 133, 111, 146, 123, 135, 110, 119, 138, 129, 130, 117, 133, 124, 121, 114, 124, 138, 122, 128, 137, 129, 159, 134, 115, 139, 123, 129, 114, 129, 141, 119, 125, 120, 132, 112, 116, 126, 131, 132, 117, 132, 121, 135, 132, 141, 136, 114, 119, 127, 121, 128, 128, 118, 137, 132, 136, 127, 131, 128, 125, 117, 123, 118, 123, 116, 123, 120, 133, 119, 140, 115, 134, 116, 126, 125, 114, 120, 120, 111, 128, 129, 140, 119, 127, 145, 115, 135, 127, 147, 113, 118, 114, 115, 123, 120, 138, 137, 124, 123, 144, 120, 146, 130, 132, 134, 132, 133, 122, 126, 123, 122, 132, 133, 137, 113, 121, 126, 116, 114, 129, 108, 127, 137, 130, 140, 119, 118, 120, 149, 123, 133, 124, 119, 127, 120, 119, 120, 122, 136, 129, 116, 128, 127, 128, 108, 107, 111, 130, 117, 134, 119, 138, 123, 111, 117, 131, 128, 151, 124, 125, 123, 131, 120, 142, 127, 124, 134, 144, 114, 134, 112, 142, 126, 126, 121, 135, 139, 125, 134, 139, 114, 124, 129, 134, 125, 127, 115, 117, 110, 104, 113, 140, 115, 112, 149, 116, 127, 126, 130, 131, 143, 124, 128, 131, 130, 158, 130, 124, 125, 115, 130, 130, 126, 125, 104, 127, 145, 144, 125, 120, 126, 116, 128, 122, 128, 119, 133, 136, 130, 121, 118, 140, 132, 135, 134, 137, 133, 123, 124, 132, 133, 130, 122, 119, 164, 127, 123, 132, 123, 113, 140, 133, 125, 129, 142, 130, 118, 131, 118, 132, 123, 123, 115, 123, 126, 107, 132, 122, 135, 133, 125, 119, 131, 128, 116, 115, 136, 122, 117, 119, 147, 98, 126, 106, 119, 122, 132, 116, 131, 133, 117, 119, 127, 128, 120, 127, 145, 139, 108, 109, 132, 123, 122, 127, 117, 117, 124, 129, 141, 103, 130, 133, 134, 137, 142, 124, 129, 136, 134, 139, 134, 136, 112, 125, 129, 120, 127, 120, 116, 119, 131, 132, 116, 129, 120, 118, 114, 111, 128, 143, 119, 111, 135, 132, 129, 132, 150, 126, 132, 132, 126, 125, 122, 121, 128, 138, 121, 128, 127, 125, 129, 128, 105, 126, 132, 132, 118, 115, 117, 140, 131, 124, 110, 118, 122, 130, 127, 142, 97, 129, 125, 120, 125, 112, 121, 139, 120, 105, 134, 112, 147, 118, 141, 119, 125, 116, 133, 119, 126, 122, 130, 124, 136, 120, 115, 125, 120, 134, 120, 143, 142, 129, 125, 129, 133, 132, 134, 136, 120, 104, 115, 120, 125, 101, 150, 115, 132, 135, 120, 117, 129, 121, 142, 127, 113, 143, 119, 125, 140, 126, 118, 119, 124, 117, 108, 110, 124, 140, 106, 141, 114, 140, 134, 124, 140, 137, 138, 121, 134, 100, 125, 126, 131, 110, 121, 152, 118, 124, 131, 131, 126, 121, 146, 131, 134, 122, 123, 136, 123, 120, 127, 119, 117, 105, 118, 125, 135, 115, 116, 139, 115, 134, 124, 129, 119, 131, 129, 120, 113, 149, 152, 116, 105, 116, 126, 127, 128, 173, 127, 129, 127, 147, 126, 117, 112, 146, 143, 125, 116, 135, 127, 146, 143, 125, 113, 127, 110, 135, 113, 126, 109, 135, 104, 120, 106, 133, 153, 109, 150, 128, 124, 122, 120, 133, 125, 148, 132, 125, 126, 113, 137, 120, 130, 127, 124, 134, 151, 125, 135, 119, 127, 130, 118, 119, 100, 123, 124, 131, 128, 111, 129, 139, 120, 118, 124, 121, 114, 123, 114, 144, 125, 117, 122, 139, 128, 106, 136, 122, 150, 122, 117, 125, 131, 122, 125, 119, 135, 114, 129, 136, 130, 121, 126, 124, 126, 137, 100, 139, 125, 130, 126, 148, 113, 119, 127, 140, 133, 131, 135, 118, 106, 118, 132, 142, 120, 134, 135, 122, 118, 130, 111, 133, 121, 115, 132, 113, 148, 123, 114, 111, 129, 138, 116, 123, 134, 124, 108, 130, 129, 134, 108, 120, 129, 136, 116, 102, 133, 126, 131, 130, 131, 124, 121, 125, 138, 141, 119, 124, 111, 130, 118, 123, 121, 124, 125, 109, 134, 123, 124, 133, 124, 118, 125, 119, 122, 127, 130, 125, 122, 112, 106, 142, 127, 121, 125, 100, 128, 123, 129, 135, 130, 130, 122, 121, 117, 119, 117, 132, 112, 136, 109, 138, 136, 122, 119, 122, 134, 123, 127, 126, 132, 108, 112, 130, 116, 123, 134, 131, 127, 114, 129, 123, 121, 121, 117, 110, 121, 124, 141, 134, 121, 129, 123, 110, 147, 130, 108, 114, 126, 117, 119, 137, 145, 108, 133, 131, 142, 108, 148, 131, 132, 141, 113, 137, 138, 141, 144, 148, 126, 130, 139, 117, 123, 124, 124, 119, 125, 124, 118, 117, 140, 126, 140, 119, 140, 132, 123, 120, 114, 116, 139, 105, 109, 117, 138, 118, 120, 101, 119, 113, 116, 131, 117, 130, 128, 128, 144, 128, 118, 115, 127, 133, 133, 104, 146, 131, 145, 126, 139, 123, 121, 133, 121, 116, 138, 130, 128, 137, 135, 109, 124, 137, 127, 130, 126, 135, 110, 122, 111, 118, 127, 131, 122, 137, 122, 119, 125, 116, 122, 128, 136, 121, 120, 122, 134, 134, 120, 136, 118, 120, 136, 145, 135, 128, 139, 122, 114, 122, 102, 110, 125, 112, 138, 126, 124, 120, 123, 115, 110, 122, 128, 122, 117, 143, 131, 120, 107, 119, 120, 134, 145, 127, 143, 125, 123, 114, 120, 137, 125, 112, 119, 145, 110, 109, 112, 119, 124, 143, 126, 143, 123, 128, 127, 120, 113, 128, 130, 128, 112, 109, 119, 121, 123, 115, 136, 127, 118, 123, 142, 112, 123, 143, 140, 116, 154, 106, 108, 136, 114, 122, 121, 130, 123, 119, 136, 113, 131, 135, 113, 135, 116, 118, 144, 115, 131, 124, 126, 126, 122, 126, 118, 129, 103, 139, 124, 113, 137, 130, 114, 130, 106, 127, 135, 126, 135, 119, 123, 133, 144, 131, 123, 136, 130, 122, 110, 114, 120, 124, 125, 145, 141, 126, 133, 137, 135, 120, 115, 119, 112, 128, 109, 138, 124, 139, 133, 132, 120, 130, 132, 125, 127, 127, 124, 127, 117, 102, 116, 136, 131, 110, 114, 126, 131, 122, 132, 128, 125, 128, 134, 131, 135, 134, 136, 122, 133, 143, 143, 116, 129, 124, 123, 118, 147, 120, 117, 136, 128, 127, 148, 133, 134, 131, 120, 131, 136, 108, 127, 125, 117, 109, 145, 110, 119, 137, 131, 119, 113, 133, 131, 117, 129, 138, 118, 145, 140, 138, 130, 135, 132, 127, 122, 130, 133, 125, 118, 127, 136, 121, 142, 132, 134, 127, 140, 132, 138, 113, 140, 123, 130, 128, 119, 118, 133, 114, 130, 118, 116, 121, 108, 113, 135, 122, 140, 126, 155, 136, 125, 125, 120, 119, 114, 138, 115, 135, 130, 137, 112, 124, 121, 109, 124, 119, 119, 118, 120, 132, 123, 119, 121, 149, 124, 140, 135, 113, 123, 135, 121, 116, 131, 120, 114, 132, 112, 115, 129, 137, 121, 120, 123, 112, 157, 138, 126, 145, 126, 133, 127, 118, 134, 118, 125, 140, 111, 134, 121, 135, 133, 105, 127, 125, 122, 133, 125, 139, 103, 126, 131, 131, 122, 123, 111, 122, 118, 146, 119, 125, 130, 116, 136, 146, 123, 129, 132, 120, 134, 135, 117, 136, 134, 129, 117, 125, 105, 116, 115, 147, 121, 128, 131, 118, 134, 125, 130, 125, 127, 125, 123, 106, 132, 118, 129, 140, 130, 117, 117, 132, 131, 98, 132, 137, 134, 108, 147, 117, 140, 115, 109, 136, 118, 118, 124, 129, 125, 114, 108, 123, 140, 127, 147, 126, 117, 117, 114, 108, 133, 109, 130, 140, 115, 133, 138, 135, 116, 125, 125, 129, 125, 143, 157, 137, 106, 118, 128, 128, 118, 119, 123, 113, 109, 136, 137, 116, 129, 129, 119, 134, 116, 133, 151, 126, 100, 125, 115, 120, 129, 124, 128, 87, 117, 111, 136, 118, 118, 118, 124, 109, 123, 142, 126, 112, 113, 136, 115, 106, 144, 118, 129, 120, 123, 114, 110, 122, 124, 135, 108, 137, 114, 134, 130, 127, 123, 116, 108, 122, 118, 115, 122, 118, 127, 132, 124, 118, 130, 116, 130, 131, 120, 126, 127, 113, 112, 122, 111, 113, 121, 126, 130, 128, 128, 122, 127, 123, 128, 136, 129, 119, 124, 140, 108, 121, 126, 116, 133, 120, 109, 121, 125, 138, 143, 120, 117, 126, 141, 122, 136, 130, 128, 115, 94, 124, 120, 142, 111, 131, 119, 106, 135, 114, 122, 130, 127, 136, 105, 140, 129, 136, 137, 125, 117, 128, 115, 135, 141, 134, 120, 116, 106, 119, 110, 136, 126, 132, 118, 134, 114, 129, 125, 114, 140, 127, 136, 102, 134, 112, 131, 88, 125, 139, 112, 121, 117, 107, 114, 118, 128, 142, 116, 130, 129, 122, 117, 112, 122, 134, 138, 130, 137, 127, 105, 125, 131, 119, 108, 130, 127, 130, 128, 127, 129, 119, 127, 140, 131, 118, 114, 110, 115, 114, 127, 118, 121, 139, 116, 118, 124, 120, 135, 134, 125, 128, 126, 114, 116, 147, 115, 115, 145, 120, 119, 115, 122, 129, 122, 124, 122, 126, 137, 140, 115, 125, 109, 115, 112, 139, 108, 120, 121, 114, 134, 132, 131, 122, 121, 132, 122, 110, 138, 117, 117, 129, 129, 133, 124, 123, 115, 122, 113, 118, 131, 134, 131, 114, 127, 108, 113, 114, 130, 120, 137, 122, 122, 120, 138, 117, 96, 139, 113, 142, 123, 130, 136, 124, 113, 116, 138, 131, 127, 131, 127, 134, 132, 126, 122, 131, 128, 114, 121, 109, 136, 116, 134, 124, 132, 113, 142, 98, 137, 136, 163, 120, 131, 140, 117, 113, 128, 128, 131, 140, 136, 134, 154, 111, 119, 114, 120, 128, 118, 121, 120, 117, 126, 132, 114, 120, 144, 121, 127, 125, 144, 128, 119, 127, 148, 120, 131, 122, 125, 126, 140, 123, 134, 133, 124, 137, 145, 127, 117, 129, 120, 120, 118, 113, 135, 135, 110, 102, 111, 116, 109, 118, 120, 111, 134, 146, 138, 147, 131, 134, 118, 112, 133, 122, 123, 122, 127, 129, 140, 111, 118, 138, 138, 114, 120, 125, 111, 135, 130, 134, 149, 125, 137, 130, 118, 134, 125, 140, 113, 127, 116, 113, 113, 142, 129, 123, 124, 122, 161, 122, 122, 114, 121, 101, 134, 118, 109, 120, 123, 127, 131, 120, 122, 133, 120, 124, 120, 127, 130, 128, 140, 112, 127, 125, 125, 125, 115, 115, 128, 92, 128, 125, 120, 114, 118, 118, 122, 136, 133, 116, 131, 132, 135, 106, 114, 120, 114, 125, 123, 118, 131, 130, 146, 140, 128, 119, 122, 165, 123, 142, 114, 122, 122, 118, 121, 140, 111, 131, 119, 126, 122, 136, 142, 130, 119, 125, 131, 124, 122, 122, 127, 140, 135, 133, 120, 113, 123, 106, 123, 148, 128, 117, 124, 134, 122, 130, 129, 102, 135, 136, 128, 141, 124, 126, 119, 110, 142, 105, 122, 114, 129, 132, 120, 123, 115, 105, 128, 127, 150, 113, 133, 112, 132, 119, 126, 129, 132, 150, 99, 124, 117, 124, 127, 116, 139, 146, 127, 119, 131, 112, 127, 91, 111, 131, 114, 118, 138, 132, 123, 133, 115, 118, 105, 116, 114, 135, 119, 121, 113, 119, 115, 123, 112, 135, 135, 120, 115, 110, 111, 118, 113, 115, 116, 147, 113, 131, 126, 118, 125, 126, 126, 131, 126, 138, 132, 125, 135, 127, 131, 116, 135, 130, 123, 124, 120, 119, 109, 111, 127, 131, 125, 134, 116, 110, 117, 124, 118, 121, 122, 109, 110, 115, 142, 126, 143, 120, 117, 146, 134, 149, 124, 131, 126, 130, 116, 122, 121, 106, 119, 121, 125, 115, 137, 139, 122, 135, 141, 126, 110, 137, 140, 122, 136, 110, 116, 94, 127, 126, 132, 121, 122, 130, 107, 107, 120, 122, 120, 144, 146, 118, 123, 124, 114, 129, 127, 115, 113, 134, 117, 133, 139, 114, 133, 135, 146, 129, 118, 123, 130, 137, 126, 136, 127, 109, 116, 122, 114, 116, 135, 143, 138, 122, 120, 120, 130, 140, 129, 125, 111, 117, 139, 122, 115, 114, 127, 130, 130, 131, 122, 135, 118, 113, 104, 124, 126, 126, 135, 123, 131, 115, 123, 117, 117, 97, 122, 129, 140, 131, 140, 117, 143, 128, 142, 127, 120, 129, 130, 123, 111, 138, 129, 111, 142, 130, 123, 124, 122, 123, 139, 143, 121, 130, 123, 127, 133, 115, 122, 122, 123, 131, 115, 129, 138, 129, 115, 129, 124, 106, 126, 134, 143, 146, 132, 120, 127, 120, 142, 121, 131, 143, 131, 125, 126, 119, 124, 117, 131, 117, 116, 139, 124, 132, 116, 131, 122, 133, 117, 128, 125, 122, 132, 148, 120, 119, 136, 121, 135, 126, 112, 103, 128, 121, 119, 140, 127, 111, 139, 138, 119, 123, 116, 127, 132, 136, 137, 110, 129, 126, 124, 103, 129, 108, 118, 121, 121, 142, 146, 129, 128, 105, 105, 133, 111, 128, 122, 138, 128, 141, 117, 123, 124, 116, 136, 126, 125, 122, 140, 130, 124, 139, 132, 128, 128, 123, 111, 135, 129, 129, 125, 116, 125, 126, 139, 131, 124, 128, 133, 99, 119, 151, 122, 122, 134, 130, 146, 118, 145, 92, 130, 140, 130, 137, 110, 114, 120, 124, 122, 118, 132, 101, 130, 127, 122, 135, 85, 120, 125, 123, 141, 114, 126, 114, 128, 130, 133, 125, 121, 133, 124, 119, 119, 111, 128, 134, 119, 132, 127, 114, 129, 121, 118, 128, 117, 116, 122, 124, 122, 123, 121, 135, 129, 125, 129, 120, 124, 105, 124, 134, 129, 115, 137, 122, 124, 107, 120, 139, 124, 126, 124, 133, 118, 127, 146, 136, 131, 135, 135, 124, 121, 132, 116, 134, 120, 133, 125, 102, 132, 139, 115, 132, 119, 137, 127, 125, 124, 125, 103, 137, 115, 127, 113, 135, 106, 118, 120, 125, 123, 131, 119, 118, 104, 133, 121, 110, 103, 129, 131, 121, 134, 141, 138, 122, 132, 133, 128, 149, 72, 123, 113, 126, 130, 135, 118, 114, 121, 117, 124, 137, 113, 118, 130, 123, 125, 145, 128, 120, 118, 135, 118, 125, 130, 117, 120, 133, 145, 131, 110, 130, 130, 129, 129, 133, 135, 133, 131, 129, 127, 151, 122, 116, 120, 133, 126, 125, 131, 132, 107, 123, 114, 123, 122, 124, 128, 124, 119, 127, 128, 113, 128, 118, 144, 120, 139, 125, 141, 134, 124, 124, 139, 130, 131, 124, 120, 133, 132, 121, 120, 132, 143, 116, 122, 125, 146, 117, 103, 130, 139, 128, 117, 111, 114, 132, 138, 136, 125, 137, 116, 200, 126, 129, 119, 132, 125, 124, 128, 135, 121, 119, 134, 124, 129, 127, 136, 131, 130, 116, 130, 119, 147, 126, 121, 128, 112, 118, 133, 126, 118, 120, 116, 139, 117, 121, 131, 148, 125, 155, 121, 141, 107, 146, 127, 118, 121, 119, 144, 138, 133, 136, 124, 113, 131, 129, 120, 140, 132, 121, 120, 141, 115, 144, 133, 127, 128, 112, 123, 116, 125, 138, 133, 152, 129, 136, 115, 128, 120, 128, 113, 129, 131, 106, 117, 108, 128, 128, 120, 119, 124, 123, 125, 116, 125, 129, 121, 127, 134, 137, 144, 124, 125, 118, 137, 125, 135, 106, 123, 128, 132, 127, 133, 136, 153, 129, 136, 118, 106, 132, 125, 116, 115, 122, 127, 130, 154, 132, 137, 134, 119, 124, 128, 141, 126, 109, 118, 120, 112, 148, 123, 134, 139, 127, 111, 119, 125, 126, 104, 141, 114, 126, 128, 143, 128, 132, 134, 117, 119, 111, 148, 136, 110, 123, 112, 122, 131, 123, 137, 124, 121, 114, 126, 112, 130, 119, 129, 129, 140, 122, 110, 124, 104, 110, 117, 109, 122, 119, 122, 119, 135, 122, 130, 134, 133, 111, 144, 114, 117, 126, 128, 122, 101, 129, 123, 115, 121, 135, 136, 116, 135, 148, 114, 137, 120, 142, 134, 143, 106, 126, 119, 128, 135, 112, 134, 114, 132, 135, 117, 116, 139, 126, 147, 135, 123, 128, 137, 126, 114, 138, 122, 132, 123, 124, 138, 113, 119, 117, 122, 122, 138, 129, 122, 121, 134, 133, 136, 153, 129, 112, 118, 142, 116, 134, 141, 116, 111, 134, 139, 129, 126, 123, 138, 120, 127, 126, 127, 120, 136, 136, 104, 112, 125, 138, 125, 126, 122, 128, 126, 118, 108, 106, 117, 131, 119, 133, 121, 132, 113, 125, 131, 119, 137, 125, 113, 125, 126, 126, 128, 117, 120, 132, 131, 119, 110, 119, 120, 114, 121, 118, 127, 135, 124, 117, 145, 137, 137, 141, 133, 111, 127, 120, 133, 127, 158, 117, 123, 126, 127, 127, 132, 107, 108, 129, 128, 114, 139, 119, 126, 134, 118, 123, 125, 132, 132, 137, 130, 126, 124, 125, 152, 136, 127, 137, 133, 137, 123, 101, 134, 127, 117, 108, 118, 125, 118, 147, 114, 132, 130, 139, 126, 123, 124, 116, 118, 126, 128, 136, 115, 138, 136, 98, 110, 138, 126, 108, 140, 137, 131, 129, 117, 116, 130, 142, 95, 134, 122, 107, 122, 132, 118, 113, 137, 121, 145, 139, 131, 115, 129, 115, 132, 124, 117, 128, 124, 120, 128, 122, 115, 143, 130, 126, 124, 151, 121, 121, 115, 119, 120, 125, 121, 110, 127, 97, 132, 146, 136, 111, 133, 133, 122, 112, 126, 136, 134, 131, 106, 150, 115, 121, 132, 121, 116, 143, 121, 125, 112, 116, 147, 126, 121, 146, 117, 109, 124, 114, 116, 112, 126, 136, 114, 116, 109, 114, 132, 133, 119, 113, 126, 134, 133, 129, 117, 144, 124, 123, 121, 126, 134, 116, 124, 136, 127, 93, 121, 135, 128, 113, 136, 125, 132, 136, 128, 124, 136, 104, 112, 110, 113, 128, 121, 138, 127, 140, 127, 127, 94, 134, 132, 138, 140, 128, 107, 144, 142, 134, 114, 132, 127, 127, 125, 133, 123, 131, 117, 130, 140, 136, 126, 126, 131, 130, 121, 124, 122, 109, 124, 133, 150, 137, 117, 133, 134, 126, 109, 108, 109, 115, 150, 107, 120, 138, 123, 120, 134, 120, 130, 127, 117, 137, 121, 149, 118, 121, 102, 120, 134, 114, 125, 126, 120, 136, 120, 116, 116, 116, 138, 102, 111, 131, 133, 105, 124, 129, 113, 143, 121, 124, 118, 122, 125, 133, 108, 131, 118, 107, 129, 123, 109, 127, 122, 117, 117, 127, 120, 115, 121, 130, 142, 126, 110, 112, 136, 138, 128, 119, 132, 109, 118, 118, 121, 118, 131, 116, 122, 126, 118, 113, 115, 120, 129, 135, 126, 134, 117, 119, 126, 108, 127, 130, 131, 127, 109, 127, 123, 143, 109, 119, 134, 137, 131, 124, 108, 114, 143, 118, 125, 135, 110, 131, 134, 119, 122, 132, 124, 135, 139, 125, 127, 117, 120, 127, 116, 123, 130, 123, 126, 131, 139, 123, 121, 128, 145, 118, 131, 113, 120, 132, 139, 106, 124, 116, 115, 115, 125, 144, 122, 125, 129, 124, 144, 140, 124, 130, 120, 130, 124, 143, 139, 123, 127, 112, 124, 108, 117, 123, 113, 127, 123, 130, 114, 117, 133, 105, 135, 128, 108, 139, 128, 103, 135, 122, 134, 115, 133, 114, 120, 144, 135, 127, 122, 135, 104, 126, 110, 114, 135, 133, 115, 132, 118, 129, 146, 143, 114, 109, 132, 125, 101, 133, 132, 111, 137, 146, 114, 116, 117, 143, 131, 144, 123, 132, 131, 121, 124, 123, 128, 129, 120, 136, 122, 122, 115, 125, 123, 110, 130, 113, 107, 119, 135, 138, 106, 119, 129, 163, 108, 120, 118, 135, 119, 134, 137, 131, 123, 124, 130, 125, 133, 146, 125, 136, 117, 132, 130, 130, 134, 140, 121, 135, 119, 128, 127, 117, 136, 128, 138, 136, 120, 119, 141, 123, 123, 125, 121, 136, 112, 113, 129, 134, 126, 119, 122, 128, 134, 123, 146, 136, 142, 127, 128, 122, 133, 140, 112, 133, 125, 128, 125, 125, 129, 128, 115, 150, 123, 112, 123, 119, 128, 121, 134, 114, 139, 121, 127, 126, 106, 113, 113, 129, 126, 137, 116, 125, 118, 115, 149, 107, 132, 118, 119, 138, 136, 119, 127, 123, 130, 121, 119, 116, 137, 108, 121, 135, 129, 113, 125, 118, 124, 119, 108, 124, 125, 130, 125, 115, 126, 123, 125, 109, 130, 123, 144, 105, 120, 143, 150, 121, 127, 128, 106, 137, 117, 130, 116, 124, 128, 117, 131, 120, 109, 137, 116, 120, 122, 124, 124, 137, 90, 143, 130, 126, 130, 130, 113, 116, 143, 127, 133, 127, 126, 125, 140, 120, 108, 124, 127, 133, 128, 108, 127, 155, 139, 128, 131, 128, 133, 121, 132, 151, 110, 136, 106, 149, 117, 127, 138, 129, 123, 132, 122, 134, 130, 129, 104, 123, 133, 117, 133, 148, 113, 114, 129, 145, 134, 145, 109, 126, 104, 127, 124, 124, 122, 132, 127, 130, 123, 135, 120, 125, 128, 139, 123, 121, 125, 145, 139, 123, 121, 108, 131, 123, 135, 112, 124, 120, 108, 102, 118, 140, 124, 130, 122, 122, 107, 120, 152, 127, 122, 112, 97, 121, 120, 153, 135, 115, 130, 130, 138, 139, 143, 133, 114, 126, 116, 142, 125, 127, 131, 128, 129, 109, 120, 112, 141, 141, 129, 121, 141, 114, 104, 103, 129, 124, 122, 130, 126, 117, 125, 125, 123, 128, 139, 123, 127, 123, 141, 132, 116, 137, 109, 140, 115, 119, 122, 144, 138, 123, 128, 128, 145, 103, 133, 128, 112, 130, 111, 132, 107, 117, 121, 135, 109, 128, 126, 125, 156, 130, 108, 109, 153, 125, 110, 117, 140, 130, 132, 120, 142, 119, 118, 121, 135, 121, 113, 127, 116, 123, 114, 129, 117, 120, 132, 138, 117, 129, 129, 145, 130, 127, 114, 128, 135, 120, 132, 108, 125, 130, 143, 105, 137, 131, 120, 134, 109, 111, 121, 138, 122, 110, 136, 107, 127, 122, 132, 119, 121, 123, 121, 113, 120, 129, 125, 141, 122, 126, 138, 121, 128, 132, 136, 121, 115, 136, 131, 126, 113, 127, 109, 118, 128, 112, 120, 127, 121, 131, 126, 126, 137, 135, 133, 133, 135, 137, 136, 123, 114, 102, 129, 122, 138, 121, 114, 113, 122, 124, 130, 129, 129, 128, 128, 141, 134, 130, 127, 129, 138, 130, 123, 116, 131, 132, 127, 138, 136, 124, 104, 119, 133, 109, 116, 125, 132, 137, 102, 129, 116, 126, 125, 121, 94, 123, 122, 112, 134, 126, 145, 134, 121, 121, 137, 119, 131, 110, 124, 128, 123, 125, 134, 142, 128, 138, 123, 118, 98, 128, 117, 116, 101, 118, 116, 131, 125, 114, 92, 122, 132, 134, 120, 113, 128, 112, 132, 127, 137, 144, 110, 125, 104, 112, 112, 133, 129, 94, 121, 125, 119, 128, 111, 120, 138, 127, 133, 120, 119, 127, 141, 107, 119, 135, 135, 118, 117, 112, 123, 108, 116, 125, 141, 120, 108, 128, 129, 125, 113, 140, 127, 122, 126, 125, 111, 120, 126, 118, 122, 105, 110, 108, 121, 125, 114, 165, 132, 137, 137, 125, 117, 124, 141, 130, 131, 124, 120, 132, 136, 123, 117, 112, 135, 136, 138, 145, 125, 113, 116, 112, 121, 117, 107, 131, 112, 106, 128, 120, 154, 125, 118, 117, 114, 123, 126, 118, 124, 135, 117, 123, 131, 126, 136, 108, 115, 126, 105, 139, 132, 104, 109, 109, 124, 131, 125, 90, 148, 108, 134, 116, 155, 116, 120, 115, 135, 129, 109, 121, 126, 110, 128, 109, 131, 133, 123, 125, 124, 121, 127, 117, 130, 118, 119, 112, 128, 125, 129, 119, 125, 140, 122, 130, 123, 125, 113, 107, 128, 129, 122, 120, 132, 130, 134, 131, 124, 145, 121, 124, 105, 129, 140, 125, 149, 140, 111, 111, 121, 113, 120, 117, 136, 116, 132, 124, 132, 122, 148, 125, 122, 139, 123, 109, 117, 132, 107, 111, 135, 136, 110, 112, 124, 144, 126, 150, 136, 101, 126, 131, 140, 131, 128, 121, 135, 123, 125, 141, 155, 127, 132, 119, 124, 121, 115, 114, 134, 134, 140, 125, 131, 143, 130, 124, 129, 125, 121, 130, 129, 115, 135, 117, 129, 130, 135, 115, 146, 127, 120, 127, 135, 131, 139, 136, 141, 108, 102, 138, 110, 102, 130, 107, 149, 137, 130, 111, 119, 125, 126, 139, 108, 129, 123, 142, 149, 130, 124, 122, 125, 100, 126, 115, 137, 129, 122, 119, 116, 108, 123, 134, 124, 99, 113, 130, 134, 122, 127, 125, 105, 126, 133, 134, 126, 119, 127, 134, 145, 130, 123, 106, 129, 140, 135, 134, 123, 121, 118, 122, 107, 108, 109, 149, 125, 136, 121, 111, 138, 141, 148, 147, 106, 116, 121, 123, 119, 124, 109, 129, 127, 124, 122, 129, 117, 132, 124, 174, 122, 140, 123, 130, 130, 132, 122, 134, 105, 146, 122, 120, 126, 111, 132, 131, 120, 117, 131, 149, 111, 118, 134, 129, 143, 132, 120, 122, 112, 117, 107, 114, 138, 157, 138, 125, 134, 137, 150, 144, 142, 117, 125, 136, 115, 116, 131, 135, 137, 136, 132, 137, 136, 146, 117, 119, 124, 118, 128, 119, 121, 106, 135, 127, 118, 127, 135, 125, 113, 132, 125, 118, 122, 136, 122, 116, 128, 120, 122, 113, 132, 150, 123, 141, 135, 139, 112, 126, 127, 130, 137, 136, 123, 139, 114, 114, 131, 140, 133, 127, 104, 130, 147, 116, 109, 130, 118, 118, 108, 121, 134, 120, 129, 133, 152, 127, 117, 124, 120, 127, 123, 114, 128, 128, 115, 132, 140, 125, 138, 119, 117, 125, 103, 111, 152, 123, 122, 138, 140, 122, 115, 114, 136, 122, 134, 126, 115, 113, 130, 119, 141, 132, 128, 129, 152, 134, 124, 108, 135, 132, 126, 134, 126, 123, 138, 136, 121, 129, 111, 83, 139, 121, 128, 128, 131, 145, 126, 94, 122, 146, 111, 122, 132, 134, 132, 112, 125, 125, 119, 128, 131, 134, 122, 118, 120, 147, 109, 99, 130, 130, 117, 115, 117, 123, 128, 128, 111, 112, 133, 129, 135, 145, 111, 152, 158, 122, 135, 130, 115, 134, 123, 117, 105, 107, 137, 108, 124, 120, 126, 122, 122, 118, 133, 116, 133, 122, 116, 122, 123, 115, 132, 123, 135, 107, 135, 125, 128, 132, 122, 123, 119, 123, 124, 129, 112, 106, 155, 130, 121, 126, 133, 134, 132, 145, 109, 135, 116, 117, 123, 128, 127, 113, 136, 116, 123, 127, 116, 116, 139, 115, 132, 119, 125, 104, 124, 120, 125, 116, 120, 138, 126, 109, 131, 129, 122, 127, 127, 139, 148, 113, 120, 135, 135, 115, 122, 123, 139, 101, 150, 103, 128, 110, 119, 126, 141, 109, 144, 122, 135, 135, 130, 131, 121, 101, 135, 135, 121, 96, 121, 125, 118, 133, 158, 124, 121, 130, 147, 144, 145, 102, 116, 139, 122, 106, 116, 127, 114, 131, 126, 107, 110, 116, 120, 137, 146, 119, 146, 136, 112, 129, 119, 116, 136, 104, 137, 108, 129, 107, 143, 122, 108, 111, 118, 97, 138, 95, 133, 117, 133, 123, 137, 125, 136, 109, 121, 116, 143, 132, 128, 112, 126, 138, 122, 123, 115, 115, 130, 128, 119, 117, 150, 126, 136, 123, 127, 118, 131, 127, 112, 125, 116, 120, 135, 118, 126, 116, 133, 115, 107, 129, 133, 131, 126, 117, 127, 117, 116, 118, 135, 117, 129, 141, 126, 140, 115, 126, 123, 119, 122, 124, 113, 129, 121, 111, 122, 117, 133, 109, 129, 125, 125, 116, 125, 126, 119, 122, 140, 110, 133, 132, 125, 116, 116, 137, 123, 123, 112, 114, 132, 128, 130, 136, 144, 124, 116, 113, 119, 135, 126, 145, 118, 121, 123, 134, 123, 119, 128, 127, 117, 109, 119, 115, 121, 115, 115, 120, 137, 99, 111, 131, 122, 73, 129, 137, 128, 134, 127, 137, 128, 134, 126, 132, 134, 134, 113, 122, 126, 128, 128, 152, 125, 141, 101, 127, 118, 137, 121, 126, 133, 120, 110, 114, 125, 105, 118, 127, 127, 126, 128, 129, 120, 119, 116, 117, 137, 123, 133, 130, 114, 135, 123, 134, 124, 134, 102, 141, 116, 126, 134, 123, 153, 117, 106, 127, 111, 118, 141, 116, 113, 135, 118, 135, 121, 128, 133, 135, 134, 91, 127, 118, 137, 126, 123, 123, 119, 113, 118, 118, 117, 133, 122, 139, 116, 115, 127, 124, 119, 115, 109, 117, 114, 128, 117, 124, 149, 126, 129, 141, 116, 142, 120, 121, 122, 118, 107, 120, 134, 132, 128, 121, 128, 107, 130, 121, 116, 134, 124, 139, 134, 126, 131, 116, 130, 118, 114, 121, 133, 133, 142, 121, 130, 116, 127, 117, 124, 124, 127, 138, 134, 135, 102, 126, 122, 122, 116, 129, 124, 129, 135, 124, 117, 111, 114, 127, 131, 122, 126, 121, 127, 112, 135, 118, 126, 123, 119, 110, 115, 120, 112, 108, 131, 130, 123, 121, 149, 136, 140, 131, 112, 134, 124, 127, 115, 110, 142, 120, 124, 133, 124, 128, 118, 111, 123, 125, 122, 134, 144, 125, 131, 119, 92, 133, 121, 120, 124, 128, 115, 121, 134, 121, 113, 116, 110, 119, 136, 117, 116, 134, 130, 113, 129, 118, 124, 134, 136, 107, 133, 133, 123, 123, 134, 123, 110, 145, 124, 111, 122, 118, 138, 101, 125, 118, 113, 126, 113, 137, 130, 119, 136, 109, 125, 139, 133, 136, 122, 122, 121, 130, 108, 146, 141, 134, 140, 113, 136, 124, 133, 109, 138, 133, 130, 141, 115, 134, 119, 122, 125, 134, 126, 141, 143, 141, 136, 138, 108, 134, 122, 128, 109, 131, 103, 121, 138, 136, 125, 122, 117, 122, 125, 123, 135, 119, 130, 121, 129, 121, 116, 133, 137, 133, 133, 133, 137, 143, 142, 116, 137, 119, 140, 121, 138, 117, 127, 129, 121, 145, 113, 121, 118, 119, 129, 122, 143, 131, 127, 120, 135, 114, 114, 138, 132, 113, 117, 124, 120, 125, 131, 109, 119, 130, 135, 126, 121, 143, 130, 132, 127, 144, 133, 123, 125, 133, 123, 146, 151, 122, 138, 128, 156, 123, 123, 116, 141, 135, 119, 119, 134, 142, 122, 107, 138, 116, 144, 140, 131, 137, 107, 146, 118, 132, 129, 116, 122, 130, 116, 120, 125, 135, 128, 131, 115, 138, 118, 135, 121, 132, 123, 113, 122, 133, 118, 99, 125, 132, 130, 116, 139, 124, 121, 130, 122, 132, 129, 117, 114, 116, 117, 139, 106, 138, 129, 132, 113, 118, 116, 132, 129, 120, 125, 119, 120, 127, 135, 121, 130, 132, 118, 127, 120, 138, 129, 119, 139, 141, 109, 112, 119, 132, 96, 119, 132, 140, 133, 117, 99, 107, 112, 118, 117, 128, 146, 126, 120, 127, 115, 127, 126, 122, 119, 120, 128, 126, 141, 116, 124, 131, 124, 110, 158, 109, 133, 136, 109, 121, 125, 126, 120, 127, 122, 140, 132, 129, 130, 133, 122, 126, 128, 113, 117, 137, 137, 118, 130, 111, 129, 126, 131, 123, 117, 118, 129, 145, 125, 132, 117, 121, 138, 134, 115, 145, 121, 139, 124, 106, 130, 127, 135, 111, 142, 120, 134, 114, 124, 134, 110, 115, 121, 117, 119, 126, 119, 127, 120, 120, 135, 124, 137, 133, 121, 135, 139, 112, 131, 125, 132, 138, 148, 127, 130, 130, 121, 140, 124, 112, 128, 126, 137, 120, 116, 120, 127, 127, 118, 118, 123, 144, 108, 113, 110, 130, 133, 116, 120, 134, 138, 126, 128, 119, 142, 129, 120, 117, 124, 129, 140, 120, 123, 138, 139, 126, 126, 121, 121, 95, 115, 108, 127, 141, 133, 114, 134, 128, 119, 141, 110, 135, 136, 128, 118, 125, 125, 135, 122, 122, 126, 130, 130, 139, 121, 132, 127, 127, 130, 117, 129, 134, 138, 141, 115, 136, 127, 125, 116, 121, 114, 109, 132, 130, 119, 130, 138, 126, 133, 135, 132, 125, 143, 129, 117, 128, 109, 129, 106, 137, 118, 112, 134, 119, 124, 118, 117, 115, 114, 129, 95, 139, 127, 124, 124, 134, 131, 132, 116, 129, 122, 126, 106, 128, 116, 121, 114, 123, 121, 135, 110, 130, 119, 133, 117, 128, 122, 117, 121, 120, 109, 144, 119, 121, 132, 116, 118, 126, 117, 130, 122, 131, 108, 138, 124, 123, 120, 131, 122, 131, 120, 138, 108, 117, 115, 128, 117, 120, 104, 128, 122, 114, 129, 109, 132, 132, 119, 129, 112, 131, 113, 138, 127, 126, 141, 141, 110, 126, 131, 122, 129, 124, 129, 129, 123, 131, 127, 140, 119, 131, 135, 129, 119, 133, 119, 118, 97, 134, 131, 138, 120, 146, 126, 131, 112, 124, 126, 112, 138, 136, 115, 117, 127, 131, 119, 129, 134, 108, 131, 126, 116, 128, 131, 117, 137, 120, 114, 127, 114, 136, 128, 132, 121, 125, 140, 122, 136, 127, 121, 138, 121, 141, 126, 125, 112, 133, 131, 122, 141, 125, 128, 143, 135, 133, 123, 129, 151, 132, 121, 133, 123, 126, 136, 128, 119, 108, 109, 117, 145, 141, 119, 119, 136, 116, 106, 131, 120, 116, 121, 109, 128, 138, 131, 114, 135, 136, 126, 129, 132, 109, 118, 116, 128, 134, 139, 128, 121, 114, 131, 114, 104, 121, 141, 119, 118, 127, 134, 142, 125, 121, 153, 109, 131, 118, 127, 118, 136, 131, 124, 125, 140, 140, 119, 146, 134, 129, 134, 126, 134, 112, 137, 123, 135, 109, 153, 128, 121, 135, 132, 121, 103, 123, 141, 112, 127, 114, 128, 131, 117, 109, 114, 112, 117, 120, 137, 125, 105, 127, 123, 134, 142, 101, 118, 126, 123, 132, 135, 109, 121, 122, 124, 137, 135, 116, 130, 112, 158, 108, 122, 135, 139, 115, 114, 142, 119, 135, 118, 132, 103, 108, 127, 144, 124, 129, 121, 110, 125, 119, 130, 139, 120, 109, 131, 131, 109, 121, 122, 125, 125, 121, 135, 121, 139, 122, 124, 130, 138, 119, 113, 112, 101, 135, 113, 136, 123, 152, 128, 135, 125, 126, 144, 119, 135, 125, 125, 152, 125, 143, 121, 119, 135, 135, 116, 122, 104, 133, 128, 108, 126, 117, 122, 118, 128, 111, 123, 130, 116, 130, 129, 123, 126, 124, 129, 119, 127, 135, 120, 121, 139, 139, 125, 121, 123, 120, 133, 134, 135, 139, 116, 114, 125, 110, 120, 128, 124, 142, 126, 114, 112, 114, 125, 121, 120, 127, 125, 129, 115, 110, 128, 96, 118, 121, 126, 144, 136, 139, 128, 107, 126, 130, 130, 121, 113, 134, 133, 151, 131, 122, 135, 145, 122, 111, 128, 140, 128, 131, 111, 143, 114, 130, 152, 134, 135, 134, 127, 133, 137, 132, 108, 130, 134, 142, 115, 127, 124, 107, 113, 130, 130, 126, 119, 128, 124, 130, 126, 130, 122, 120, 136, 114, 134, 113, 138, 120, 115, 120, 122, 105, 114, 143, 85, 121, 115, 127, 122, 110, 127, 144, 123, 134, 130, 138, 112, 138, 143, 117, 120, 120, 124, 116, 140, 115, 116, 123, 136, 127, 125, 150, 134, 126, 129, 121, 138, 110, 133, 137, 123, 108, 126, 118, 115, 132, 108, 127, 124, 126, 138, 127, 132, 121, 125, 155, 119, 113, 133, 141, 109, 110, 117, 131, 124, 133, 119, 118, 138, 131, 125, 132, 116, 113, 118, 127, 121, 125, 126, 113, 118, 134, 124, 129, 119, 121, 122, 129, 117, 113, 128, 117, 119, 115, 100, 131, 137, 116, 121, 135, 121, 122, 131, 108, 123, 119, 118, 126, 102, 118, 122, 118, 139, 115, 145, 138, 121, 130, 134, 115, 135, 135, 127, 127, 134, 119, 127, 136, 132, 102, 126, 134, 114, 143, 114, 145, 131, 129, 130, 103, 123, 122, 138, 119, 144, 123, 115, 115, 120, 107, 101, 120, 134, 120, 116, 125, 131, 129, 139, 119, 137, 124, 116, 118, 130, 108, 129, 147, 137, 117, 118, 119, 116, 137, 148, 104, 114, 115, 121, 126, 142, 126, 119, 118, 144, 114, 131, 135, 127, 117, 112, 130, 119, 109, 116, 131, 138, 146, 139, 134, 123, 129, 116, 126, 144, 131, 127, 114, 131, 130, 135, 138, 131, 129, 126, 129, 139, 138, 128, 135, 116, 111, 124, 122, 111, 112, 114, 129, 120, 120, 118, 139, 138, 121, 113, 109, 139, 112, 137, 145, 127, 149, 101, 140, 131, 122, 126, 127, 118, 130, 123, 133, 121, 127, 115, 123, 123, 123, 129, 136, 113, 131, 124, 138, 130, 120, 116, 105, 141, 147, 110, 134, 124, 120, 119, 132, 124, 126, 131, 115, 103, 122, 127, 122, 133, 127, 120, 121, 128, 132, 141, 124, 115, 120, 121, 125, 122, 146, 112, 118, 147, 115, 119, 115, 117, 111, 121, 123, 118, 119, 102, 142, 119, 133, 110, 122, 124, 115, 132, 124, 113, 119, 125, 125, 144, 108, 127, 112, 131, 111, 140, 139, 140, 117, 115, 129, 100, 115, 122, 135, 128, 126, 141, 141, 132, 139, 122, 111, 115, 132, 134, 161, 142, 117, 125, 121, 137, 113, 115, 162, 124, 127, 123, 135, 116, 128, 134, 125, 118, 111, 116, 136, 114, 114, 127, 127, 133, 132, 119, 126, 113, 127, 104, 112, 126, 131, 132, 125, 133, 139, 138, 131, 129, 99, 129, 131, 120, 125, 106, 127, 121, 137, 125, 116, 116, 115, 140, 123, 122, 133, 129, 124, 126, 111, 117, 112, 144, 114, 119, 111, 106, 130, 127, 124, 135, 123, 137, 138, 131, 137, 117, 132, 124, 137, 130, 119, 135, 128, 133, 131, 115, 128, 120, 113, 124, 109, 143, 145, 131, 128, 123, 122, 136, 134, 136, 123, 136, 122, 127, 119, 135, 134, 137, 148, 145, 127, 119, 137, 115, 118, 135, 120, 112, 133, 123, 116, 120, 128, 119, 131, 104, 118, 114, 127, 149, 111, 131, 124, 129, 110, 118, 126, 111, 143, 96, 106, 114, 138, 117, 121, 135, 118, 138, 145, 115, 135, 138, 116, 124, 115, 112, 128, 126, 119, 121, 136, 115, 125, 120, 130, 130, 132, 108, 118, 125, 124, 101, 117, 146, 132, 123, 126, 120, 133, 114, 130, 118, 132, 111, 117, 111, 125, 128, 130, 125, 133, 144, 126, 131, 113, 127, 115, 126, 134, 124, 118, 124, 141, 156, 120, 126, 113, 126, 131, 125, 131, 128, 132, 120, 100, 115, 132, 128, 141, 125, 132, 130, 130, 126, 121, 119, 126, 122, 107, 113, 120, 123, 126, 117, 122, 125, 131, 126, 100, 148, 106, 114, 142, 122, 118, 106, 145, 116, 132, 121, 124, 125, 144, 119, 141, 118, 136, 109, 128, 128, 130, 134, 132, 139, 109, 137, 132, 139, 134, 135, 113, 126, 120, 127, 137, 116, 113, 125, 110, 133, 135, 108, 126, 133, 115, 120, 105, 110, 116, 108, 128, 123, 118, 136, 121, 130, 118, 141, 133, 130, 134, 125, 122, 121, 119, 110, 145, 127, 132, 132, 132, 129, 113, 122, 121, 119, 118, 134, 128, 131, 125, 125, 122, 116, 135, 124, 118, 133, 148, 113, 108, 127, 123, 120, 104, 122, 116, 135, 124, 116, 130, 125, 105, 147, 118, 126, 119, 134, 153, 116, 128, 107, 113, 136, 106, 124, 123, 137, 133, 117, 127, 105, 148, 119, 120, 139, 126, 143, 122, 121, 127, 128, 119, 126, 119, 125, 114, 118, 138, 119, 135, 126, 129, 135, 107, 123, 118, 144, 135, 125, 122, 120, 135, 137, 92, 104, 122, 119, 123, 128, 140, 133, 126, 122, 132, 110, 124, 145, 133, 129, 126, 118, 118, 102, 120, 123, 122, 114, 108, 128, 116, 134, 137, 131, 128, 122, 132, 126, 109, 142, 122, 116, 126, 131, 116, 132, 140, 129, 138, 130, 133, 131, 125, 121, 139, 119, 130, 116, 115, 116, 128, 115, 113, 113, 126, 127, 123, 130, 117, 123, 112, 122, 146, 116, 126, 119, 108, 129, 104, 124, 128, 130, 126, 135, 132, 119, 121, 134, 118, 120, 135, 131, 135, 111, 122, 125, 115, 114, 125, 133, 119, 129, 106, 146, 121, 120, 152, 118, 120, 120, 134, 127, 125, 126, 133, 131, 120, 142, 139, 127, 124, 117, 115, 116, 108, 120, 105, 119, 127, 111, 131, 120, 126, 126, 130, 127, 125, 126, 129, 130, 120, 123, 110, 134, 114, 136, 141, 117, 130, 126, 125, 119, 118, 112, 108, 123, 138, 117, 133, 116, 142, 121, 116, 138, 129, 125, 115, 129, 118, 122, 122, 131, 107, 134, 122, 111, 138, 114, 131, 117, 112, 122, 127, 130, 124, 116, 130, 137, 126, 131, 119, 119, 126, 121, 121, 112, 127, 139, 122, 116, 140, 143, 126, 124, 112, 119, 104, 119, 116, 119, 119, 112, 132, 138, 131, 105, 123, 129, 109, 103, 128, 113, 141, 130, 132, 131, 106, 125, 129, 127, 126, 136, 137, 130, 143, 134, 131, 137, 121, 124, 131, 119, 117, 130, 117, 135, 125, 131, 135, 124, 123, 117, 134, 123, 135, 135, 114, 128, 132, 127, 129, 127, 125, 135, 131, 122, 118, 129, 130, 107, 119, 115, 135, 131, 133, 126, 134, 128, 118, 111, 129, 131, 108, 131, 117, 122, 127, 128, 132, 137, 134, 133, 119, 99, 125, 114, 125, 119, 127, 121, 123, 111, 124, 125, 121, 112, 138, 134, 125, 133, 137, 130, 124, 142, 125, 112, 119, 138, 104, 126, 121, 137, 124, 127, 124, 127, 139, 118, 135, 125, 137, 107, 126, 127, 127, 119, 143, 133, 124, 138, 137, 131, 127, 124, 125, 137, 117, 129, 118, 113, 125, 125, 121, 135, 126, 144, 123, 146, 123, 119, 128, 111, 121, 125, 140, 130, 112, 136, 138, 119, 117, 142, 102, 116, 105, 117, 131, 119, 147, 118, 113, 140, 115, 114, 122, 120, 115, 138, 114, 119, 120, 135, 132, 116, 123, 117, 115, 106, 115, 137, 123, 114, 142, 123, 121, 100, 112, 128, 121, 118, 126, 134, 123, 139, 134, 134, 125, 119, 125, 136, 124, 118, 122, 132, 125, 95, 120, 140, 118, 125, 137, 123, 113, 129, 123, 133, 133, 105, 119, 122, 132, 110, 115, 141, 131, 109, 133, 106, 119, 142, 115, 128, 119, 125, 110, 118, 121, 123, 136, 122, 132, 111, 121, 120, 118, 119, 117, 127, 113, 121, 133, 115, 124, 125, 128, 132, 118, 111, 132, 118, 118, 138, 123, 131, 116, 129, 123, 121, 119, 120, 113, 111, 138, 116, 140, 133, 135, 102, 100, 122, 144, 128, 129, 128, 128, 137, 132, 127, 138, 116, 129, 116, 146, 135, 108, 142, 132, 139, 124, 125, 126, 107, 113, 132, 118, 123, 136, 132, 119, 126, 123, 112, 148, 120, 135, 133, 129, 119, 129, 136, 133, 111, 135, 120, 105, 141, 111, 129, 129, 128, 130, 146, 130, 130, 127, 137, 114, 105, 116, 120, 123, 125, 119, 122, 131, 124, 139, 128, 141, 114, 133, 131, 107, 115, 115, 128, 131, 112, 122, 131, 115, 129, 127, 103, 114, 119, 132, 137, 129, 128, 130, 124, 126, 125, 123, 113, 125, 146, 137, 115, 131, 124, 132, 129, 140, 123, 109, 130, 117, 148, 133, 119, 136, 127, 121, 126, 137, 126, 117, 137, 124, 131, 135, 131, 129, 137, 121, 141, 116, 117, 119, 113, 136, 112, 122, 132, 110, 117, 114, 130, 129, 130, 128, 116, 152, 137, 114, 128, 131, 132, 132, 126, 121, 130, 123, 119, 143, 113, 106, 129, 122, 131, 151, 127, 114, 111, 122, 157, 121, 126, 112, 111, 129, 130, 120, 108, 134, 118, 130, 120, 124, 127, 121, 135, 147, 123, 133, 125, 121, 103, 133, 123, 134, 129, 134, 121, 123, 136, 118, 124, 128, 112, 124, 130, 132, 108, 132, 117, 120, 117, 139, 126, 122, 121, 122, 138, 119, 138, 124, 113, 132, 124, 130, 106, 114, 121, 120, 118, 104, 120, 110, 131, 128, 137, 132, 114, 122, 127, 125, 113, 129, 142, 133, 124, 147, 117, 138, 103, 143, 129, 130, 106, 131, 125, 102, 133, 129, 130, 127, 130, 116, 131, 114, 131, 148, 104, 126, 124, 124, 124, 130, 144, 114, 112, 118, 115, 131, 128, 136, 123, 124, 139, 128, 130, 124, 118, 142, 126, 125, 120, 136, 136, 112, 115, 120, 137, 126, 123, 123, 127, 134, 127, 133, 134, 128, 126, 121, 132, 111, 131, 114, 129, 114, 123, 132, 129, 122, 108, 135, 130, 127, 132, 132, 142, 138, 112, 131, 117, 109, 137, 148, 125, 131, 114, 126, 128, 104, 129, 133, 130, 129, 96, 142, 127, 129, 128, 128, 120, 114, 130, 127, 127, 126, 113, 124, 139, 135, 118, 124, 142, 127, 120, 126, 124, 119, 132, 123, 128, 130, 125, 126, 126, 143, 148, 140, 112, 126, 135, 127, 120, 136, 131, 119, 150, 125, 137, 130, 118, 111, 113, 137, 116, 108, 108, 140, 130, 116, 122, 106, 130, 114, 150, 114, 118, 148, 111, 108, 138, 125, 117, 131, 120, 130, 132, 121, 134, 113, 123, 107, 132, 137, 125, 120, 140, 134, 117, 107, 137, 129, 101, 127, 117, 140, 121, 131, 127, 118, 118, 129, 127, 117, 113, 109, 121, 119, 128, 143, 131, 131, 120, 116, 123, 132, 116, 118, 128, 135, 111, 134, 123, 127, 139, 121, 117, 124, 137, 106, 119, 123, 129, 123, 134, 136, 128, 123, 138, 147, 132, 120, 153, 124, 110, 118, 121, 120, 130, 136, 115, 132, 127, 132, 121, 114, 123, 122, 124, 121, 135, 129, 131, 142, 130, 149, 132, 127, 119, 126, 120, 123, 125, 121, 112, 117, 128, 125, 121, 132, 123, 129, 131, 114, 115, 129, 136, 122, 152, 137, 119, 130, 139, 133, 107, 115, 123, 115, 113, 116, 140, 121, 136, 116, 124, 117, 115, 105, 123, 124, 155, 123, 120, 127, 137, 125, 118, 112, 135, 131, 132, 127, 137, 135, 119, 121, 130, 111, 130, 117, 121, 119, 128, 93, 124, 138, 116, 119, 112, 100, 127, 131, 127, 115, 114, 103, 127, 131, 121, 127, 130, 134, 105, 125, 138, 150, 126, 109, 136, 124, 111, 128, 131, 112, 128, 120, 106, 133, 116, 101, 132, 126, 119, 122, 132, 140, 121, 127, 143, 128, 151, 136, 121, 107, 127, 117, 124, 129, 141, 106, 133, 134, 116, 112, 113, 114, 111, 128, 143, 128, 136, 122, 115, 123, 121, 129, 131, 121, 128, 140, 116, 132, 143, 127, 119, 122, 115, 131, 128, 111, 124, 139, 131, 127, 118, 140, 127, 113, 128, 111, 139, 120, 128, 122, 131, 124, 135, 133, 131, 133, 122, 131, 125, 119, 107, 131, 121, 134, 122, 117, 130, 134, 114, 129, 121, 102, 119, 121, 133, 112, 135, 131, 134, 117, 124, 134, 120, 120, 134, 126, 130, 117, 115, 123, 135, 147, 116, 129, 123, 134, 122, 120, 108, 139, 123, 120, 143, 113, 134, 100, 119, 128, 129, 113, 105, 109, 139, 126, 113, 117, 117, 139, 122, 138, 134, 125, 123, 103, 116, 98, 124, 128, 136, 133, 120, 124, 108, 126, 125, 132, 122, 134, 128, 117, 132, 127, 122, 137, 131, 119, 120, 124, 127, 130, 131, 108, 117, 119, 122, 122, 126, 131, 135, 126, 126, 115, 131, 133, 131, 136, 122, 131, 122, 130, 132, 117, 137, 127, 136, 114, 144, 146, 137, 115, 143, 137, 129, 124, 132, 123, 133, 117, 125, 123, 128, 139, 104, 119, 124, 126, 108, 118, 112, 135, 107, 113, 126, 127, 124, 128, 130, 123, 121, 125, 119, 138, 118, 118, 120, 117, 135, 116, 146, 119, 130, 125, 128, 120, 103, 114, 113, 136, 125, 105, 118, 123, 119, 128, 138, 120, 127, 140, 135, 119, 129, 128, 131, 146, 136, 132, 128, 119, 120, 122, 121, 121, 118, 120, 121, 128, 126, 127, 127, 146, 121, 102, 123, 131, 137, 131, 124, 128, 127, 141, 134, 131, 120, 126, 127, 128, 124, 148, 122, 119, 119, 129, 145, 134, 121, 148, 115, 116, 114, 129, 124, 116, 125, 130, 111, 140, 146, 127, 127, 110, 126, 131, 130, 114, 132, 134, 131, 110, 134, 115, 132, 133, 130, 137, 135, 126, 128, 144, 141, 116, 121, 105, 121, 135, 127, 133, 122, 106, 113, 107, 121, 118, 128, 137, 108, 123, 117, 129, 131, 124, 115, 110, 125, 131, 127, 125, 122, 127, 129, 130, 129, 134, 125, 114, 116, 129, 128, 128, 136, 124, 126, 121, 128, 140, 112, 131, 123, 140, 130, 144, 142, 159, 107, 128, 116, 102, 133, 123, 126, 127, 140, 119, 119, 113, 123, 144, 122, 132, 133, 121, 121, 118, 120, 135, 125, 125, 123, 110, 118, 125, 139, 119, 110, 112, 125, 127, 128, 128, 118, 125, 117, 131, 135, 121, 133, 139, 126, 109, 128, 118, 135, 150, 129, 122, 135, 131, 117, 125, 142, 121, 124, 108, 117, 146, 122, 116, 143, 151, 110, 130, 133, 112, 118, 142, 109, 118, 133, 122, 150, 123, 117, 123, 118, 137, 127, 150, 118, 136, 135, 119, 136, 124, 135, 132, 125, 129, 117, 135, 138, 121, 125, 127, 115, 135, 124, 125, 125, 116, 131, 129, 107, 127, 120, 119, 111, 147, 139, 123, 128, 123, 132, 134, 126, 135, 113, 122, 141, 131, 138, 129, 130, 133, 143, 104, 126, 122, 120, 126, 123, 132, 125, 121, 131, 126, 129, 120, 130, 134, 112, 118, 130, 120, 129, 125, 133, 146, 128, 132, 139, 130, 105, 115, 127, 130, 116, 128, 128, 134, 142, 107, 121, 130, 136, 125, 127, 129, 127, 115, 132, 133, 129, 116, 122, 141, 131, 112, 126, 128, 103, 136, 121, 104, 123, 121, 150, 140, 124, 124, 112, 118, 135, 118, 131, 151, 140, 135, 115, 115, 112, 131, 121, 117, 143, 125, 138, 150, 124, 123, 118, 137, 117, 118, 100, 115, 122, 137, 117, 124, 121, 130, 119, 125, 140, 124, 128, 141, 133, 142, 123, 110, 115, 133, 122, 129, 132, 115, 132, 118, 120, 134, 139, 113, 125, 118, 127, 122, 131, 123, 134, 133, 113, 125, 143, 126, 118, 120, 131, 140, 132, 141, 124, 125, 125, 144, 111, 111, 125, 128, 113, 136, 113, 165, 137, 143, 150, 130, 119, 110, 131, 128, 134, 129, 136, 135, 110, 136, 138, 119, 126, 114, 138, 131, 135, 139, 128, 142, 135, 114, 130, 143, 133, 120, 123, 139, 114, 124, 123, 115, 106, 125, 112, 133, 107, 125, 114, 128, 122, 134, 127, 126, 123, 126, 137, 118, 140, 107, 137, 129, 125, 121, 121, 116, 103, 129, 127, 124, 124, 131, 120, 136, 113, 120, 128, 110, 134, 122, 131, 130, 133, 130, 121, 141, 119, 134, 142, 131, 122, 128, 121, 130, 134, 127, 123, 111, 130, 131, 128, 129, 144, 105, 144, 129, 123, 112, 123, 120, 117, 127, 133, 111, 138, 129, 112, 112, 119, 146, 129, 122, 130, 127, 117, 140, 133, 121, 141, 137, 144, 122, 134, 135, 129, 118, 121, 128, 131, 130, 118, 138, 122, 111, 125, 127, 120, 98, 124, 126, 123, 129, 127, 110, 130, 146, 128, 118, 122, 121, 121, 122, 116, 114, 112, 133, 113, 129, 127, 139, 126, 110, 137, 123, 121, 124, 109, 120, 147, 104, 112, 114, 137, 116, 140, 124, 133, 135, 132, 125, 136, 124, 120, 129, 114, 143, 124, 113, 119, 121, 123, 126, 128, 118, 126, 132, 128, 127, 128, 143, 121, 129, 137, 118, 133, 121, 114, 136, 135, 144, 147, 131, 140, 110, 118, 142, 136, 131, 138, 141, 130, 98, 122, 148, 134, 124, 140, 108, 114, 123, 135, 125, 138, 118, 131, 123, 132, 132, 133, 136, 124, 123, 123, 122, 141, 122, 139, 116, 122, 121, 135, 122, 139, 124, 126, 133, 134, 108, 130, 133, 117, 110, 127, 121, 133, 112, 122, 135, 125, 139, 134, 134, 111, 112, 140, 120, 122, 118, 119, 139, 122, 120, 137, 125, 122, 141, 126, 122, 113, 127, 128, 130, 115, 119, 127, 139, 129, 142, 117, 138, 120, 105, 118, 134, 136, 116, 128, 129, 124, 139, 133, 128, 136, 144, 145, 134, 128, 125, 117, 119, 126, 133, 135, 112, 130, 159, 132, 137, 122, 129, 133, 124, 134, 119, 108, 126, 125, 145, 108, 132, 137, 127, 118, 130, 123, 120, 129, 124, 137, 136, 122, 137, 119, 139, 115, 138, 125, 126, 121, 128, 133, 109, 117, 126, 124, 106, 114, 140, 99, 121, 130, 140, 127, 124, 125, 130, 131, 119, 110, 114, 104, 125, 138, 117, 130, 122, 142, 131, 136, 122, 119, 137, 126, 117, 135, 136, 139, 127, 119, 124, 110, 125, 118, 124, 112, 120, 125, 123, 130, 133, 119, 136, 126, 120, 145, 116, 103, 117, 122, 136, 130, 123, 111, 112, 127, 136, 134, 110, 128, 126, 118, 124, 127, 128, 130, 99, 118, 126, 112, 136, 118, 136, 139, 119, 127, 130, 139, 124, 120, 109, 120, 138, 132, 144, 110, 126, 124, 121, 136, 127, 127, 125, 145, 128, 126, 112, 117, 125, 132, 145, 139, 139, 131, 127, 134, 123, 137, 113, 138, 130, 139, 141, 131, 129, 110, 125, 131, 119, 110, 125, 119, 120, 121, 138, 105, 116, 132, 111, 133, 124, 131, 125, 130, 124, 82, 132, 129, 111, 120, 134, 132, 129, 129, 101, 120, 138, 131, 119, 123, 144, 133, 138, 117, 126, 126, 114, 113, 127, 124, 126, 135, 133, 116, 119, 121, 124, 132, 139, 129, 135, 135, 149, 126, 152, 117, 125, 149, 121, 118, 131, 120, 128, 136, 114, 143, 130, 120, 134, 146, 131, 138, 145, 138, 149, 115, 112, 147, 129, 131, 127, 127, 122, 107, 133, 126, 116, 105, 130, 139, 113, 118, 127, 131, 122, 138, 132, 126, 126, 132, 136, 117, 132, 131, 116, 135, 126, 152, 136, 106, 118, 136, 118, 126, 139, 126, 129, 136, 130, 121, 133, 129, 129, 130, 124, 131, 141, 128, 139, 130, 131, 132, 142, 123, 114, 128, 131, 133, 137, 116, 121, 134, 132, 131, 110, 124, 103, 105, 132, 118, 134, 131, 135, 134, 124, 125, 131, 130, 123, 130, 140, 113, 128, 121, 128, 134, 124, 126, 130, 105, 128, 121, 127, 125, 127, 120, 117, 140, 128, 114, 133, 135, 126, 109, 112, 128, 131, 125, 132, 127, 146, 128, 114, 126, 136, 125, 121, 123, 126, 122, 113, 122, 136, 118, 137, 129, 122, 131, 130, 124, 114, 137, 116, 115, 138, 120, 131, 141, 128, 135, 115, 112, 115, 128, 123, 136, 116, 123, 124, 130, 114, 125, 134, 134, 138, 141, 120, 126, 120, 134, 131, 117, 130, 117, 124, 129, 123, 123, 105, 130, 132, 138, 131, 123, 124, 140, 118, 144, 124, 128, 137, 130, 129, 124, 121, 132, 113, 122, 124, 138, 120, 133, 138, 137, 122, 121, 137, 118, 139, 118, 127, 123, 124, 119, 118, 132, 144, 147, 140, 131, 118, 126, 124, 117, 128, 125, 126, 133, 105, 139, 125, 109, 129, 117, 113, 107, 128, 118, 127, 141, 127, 132, 120, 134, 115, 115, 136, 132, 111, 132, 111, 136, 129, 126, 132, 112, 121, 141, 102, 107, 126, 125, 114, 114, 104, 125, 135, 111, 133, 150, 131, 127, 125, 164, 113, 135, 118, 124, 109, 126, 149, 116, 138, 112, 141, 118, 131, 116, 112, 120, 133, 125, 125, 112, 116, 130, 114, 122, 121, 139, 145, 136, 144, 115, 116, 133, 134, 131, 130, 128, 131, 122, 138, 128, 126, 129, 127, 145, 120, 120, 118, 117, 125, 137, 128, 129, 114, 127, 122, 140, 122, 124, 113, 121, 107, 125, 128, 119, 120, 134, 129, 111, 130, 144, 135, 129, 129, 114, 128, 113, 129, 110, 125, 132, 124, 135, 141, 142, 122, 130, 142, 117, 118, 120, 126, 117, 105, 129, 137, 130, 139, 121, 138, 115, 125, 131, 131, 124, 122, 135, 126, 124, 114, 131, 126, 131, 130, 141, 128, 140, 129, 125, 121, 112, 126, 137, 128, 127, 94, 127, 126, 127, 128, 120, 113, 119, 117, 129, 122, 144, 126, 132, 138, 138, 124, 128, 98, 107, 134, 118, 113, 128, 118, 113, 118, 129, 124, 138, 122, 121, 127, 128, 131, 128, 131, 118, 138, 120, 113, 126, 110, 113, 123, 117, 138, 121, 122, 137, 140, 139, 130, 133, 125, 127, 116, 119, 152, 139, 134, 123, 133, 113, 115, 135, 124, 111, 112, 123, 113, 119, 119, 123, 136, 141, 148, 143, 120, 109, 121, 109, 127, 130, 134, 121, 111, 102, 121, 124, 127, 122, 128, 109, 124, 132, 127, 138, 109, 117, 104, 118, 109, 127, 140, 123, 110, 131, 120, 124, 137, 132, 113, 115, 123, 109, 123, 132, 137, 126, 118, 128, 146, 123, 123, 130, 112, 113, 135, 119, 126, 122, 121, 124, 113, 123, 128, 133, 119, 132, 135, 122, 119, 138, 131, 141, 115, 138, 132, 159, 133, 116, 128, 121, 131, 119, 139, 127, 137, 137, 134, 133, 134, 132, 155, 127, 108, 114, 123, 139, 129, 125, 131, 133, 117, 123, 119, 115, 124, 127, 117, 146, 140, 135, 118, 124, 136, 116, 119, 124, 120, 97, 134, 124, 130, 125, 139, 122, 127, 112, 129, 107, 131, 101, 117, 104, 106, 128, 128, 150, 131, 119, 125, 133, 130, 123, 124, 123, 120, 146, 123, 127, 133, 121, 123, 122, 125, 124, 116, 127, 119, 132, 127, 116, 111, 131, 149, 121, 108, 132, 116, 144, 129, 111, 121, 142, 130, 125, 140, 118, 117, 128, 108, 109, 115, 113, 140, 136, 125, 125, 114, 123, 129, 126, 122, 117, 121, 127, 111, 117, 120, 128, 136, 123, 118, 134, 123, 127, 123, 123, 122, 127, 137, 138, 117, 99, 136, 122, 117, 136, 138, 126, 148, 140, 125, 149, 125, 116, 116, 128, 128, 107, 134, 127, 112, 119, 113, 116, 123, 108, 128, 128, 118, 104, 131, 118, 119, 117, 119, 143, 118, 108, 115, 130, 111, 113, 139, 121, 121, 115, 123, 114, 128, 112, 128, 113, 123, 127, 122, 136, 122, 134, 118, 118, 127, 126, 131, 154, 118, 137, 118, 140, 138, 120, 124, 116, 134, 135, 133, 121, 116, 126, 132, 132, 120, 134, 121, 140, 134, 133, 125, 134, 120, 102, 155, 121, 139, 138, 127, 146, 124, 137, 142, 119, 117, 120, 141, 134, 147, 140, 127, 122, 113, 135, 133, 130, 147, 121, 134, 125, 108, 124, 123, 139, 113, 125, 127, 111, 125, 111, 133, 136, 119, 128, 116, 124, 125, 118, 134, 135, 115, 128, 130, 141, 121, 131, 119, 138, 120, 130, 133, 123, 135, 103, 140, 136, 128, 126, 126, 128, 126, 130, 141, 115, 130, 114, 119, 122, 133, 138, 126, 120, 115, 132, 108, 148, 131, 122, 138, 128, 138, 123, 118, 143, 110, 122, 128, 126, 128, 123, 128, 118, 127, 121, 124, 126, 142, 126, 131, 133, 116, 137, 123, 148, 115, 144, 110, 142, 141, 121, 113, 135, 125, 135, 110, 120, 111, 125, 128, 130, 138, 124, 132, 119, 121, 118, 128, 95, 158, 131, 119, 133, 113, 126, 117, 122, 115, 112, 135, 120, 132, 133, 126, 120, 129, 119, 122, 120, 134, 122, 129, 135, 125, 121, 119, 119, 107, 115, 113, 121, 123, 117, 130, 119, 125, 121, 130, 138, 135, 118, 121, 117, 138, 123, 127, 120, 132, 133, 123, 126, 110, 123, 145, 117, 126, 128, 116, 133, 112, 140, 132, 119, 127, 136, 146, 136, 121, 122, 140, 128, 125, 144, 139, 131, 129, 130, 110, 134, 130, 124, 119, 141, 122, 126, 116, 119, 147, 129, 129, 135, 128, 122, 151, 128, 124, 118, 120, 118, 131, 113, 128, 120, 130, 127, 118, 129, 121, 115, 118, 144, 113, 129, 129, 99, 133, 108, 138, 134, 116, 139, 110, 139, 127, 114, 127, 117, 131, 124, 128, 128, 120, 138, 123, 133, 137, 133, 132, 134, 149, 139, 139, 106, 142, 126, 119, 120, 139, 118, 126, 129, 113, 131, 112, 129, 131, 129, 128, 129, 106, 127, 126, 118, 145, 120, 131, 133, 138, 127, 109, 112, 124, 120, 132, 116, 119, 121, 122, 132, 129, 110, 118, 140, 133, 126, 128, 115, 118, 129, 116, 125, 131, 141, 108, 127, 121, 116, 127, 122, 131, 140, 119, 135, 121, 130, 139, 118, 155, 128, 123, 120, 137, 131, 123, 146, 123, 122, 124, 127, 161, 102, 120, 108, 122, 116, 131, 119, 111, 111, 104, 138, 126, 149, 127, 132, 135, 120, 121, 123, 137, 120, 109, 119, 115, 141, 121, 113, 117, 134, 122, 119, 131, 116, 140, 132, 105, 148, 122, 103, 117, 123, 116, 130, 116, 122, 131, 135, 148, 110, 126, 133, 123, 118, 114, 135, 111, 117, 129, 132, 125, 109, 127, 131, 107, 138, 129, 128, 118, 127, 128, 144, 131, 132, 132, 132, 115, 133, 108, 121, 127, 136, 133, 124, 130, 126, 116, 134, 104, 119, 109, 114, 133, 137, 132, 119, 127, 118, 135, 114, 138, 145, 128, 118, 121, 142, 125, 119, 120, 108, 119, 126, 140, 130, 104, 138, 119, 134, 139, 115, 130, 131, 120, 131, 105, 125, 103, 127, 109, 122, 131, 122, 120, 146, 126, 122, 132, 128, 125, 118, 128, 133, 133, 131, 109, 128, 127, 123, 150, 133, 131, 105, 136, 129, 124, 133, 123, 132, 135, 126, 121, 136, 125, 130, 119, 120, 137, 142, 124, 126, 114, 142, 120, 117, 122, 123, 133, 133, 132, 110, 124, 120, 111, 115, 138, 140, 139, 124, 118, 131, 120, 140, 126, 127, 126, 130, 135, 142, 122, 128, 141, 129, 111, 114, 127, 134, 123, 124, 131, 145, 143, 150, 115, 124, 112, 130, 141, 132, 121, 136, 138, 145, 117, 112, 127, 157, 130, 111, 123, 113, 115, 121, 119, 147, 117, 126, 108, 123, 138, 125, 121, 130, 137, 131, 133, 135, 106, 156, 124, 117, 117, 105, 109, 124, 126, 114, 111, 123, 113, 117, 128, 115, 114, 119, 119, 132, 125, 131, 113, 141, 121, 118, 110, 125, 121, 121, 113, 135, 104, 135, 120, 121, 111, 136, 132, 138, 134, 118, 119, 115, 142, 116, 121, 118, 126, 135, 134, 127, 132, 143, 138, 119, 118, 131, 114, 120, 106, 114, 123, 143, 113, 130, 129, 131, 128, 122, 124, 120, 123, 123, 120, 124, 118, 127, 125, 132, 135, 120, 119, 133, 126, 132, 130, 117, 120, 115, 121, 122, 112, 112, 151, 123, 128, 133, 132, 125, 122, 120, 128, 106, 125, 131, 126, 106, 118, 121, 115, 121, 132, 128, 127, 100, 123, 102, 118, 131, 124, 130, 130, 125, 108, 135, 119, 132, 123, 122, 129, 112, 112, 121, 127, 121, 130, 130, 124, 126, 125, 123, 128, 126, 122, 122, 131, 115, 131, 153, 115, 115, 141, 119, 118, 130, 113, 123, 134, 117, 125, 117, 121, 140, 113, 123, 125, 136, 113, 135, 117, 135, 130, 124, 148, 126, 114, 112, 121, 123, 137, 125, 121, 127, 125, 144, 124, 126, 125, 117, 124, 123, 123, 135, 107, 111, 142, 126, 109, 117, 133, 122, 144, 128, 109, 126, 140, 120, 130, 102, 114, 134, 112, 125, 121, 119, 144, 110, 125, 121, 125, 134, 124, 122, 127, 126, 128, 128, 116, 124, 139, 118, 137, 109, 125, 130, 114, 129, 124, 138, 128, 117, 113, 134, 108, 119, 120, 104, 125, 143, 121, 112, 126, 118, 112, 135, 125, 129, 119, 115, 121, 124, 146, 119, 120, 121, 141, 131, 129, 134, 112, 133, 143, 122, 136, 136, 128, 124, 134, 119, 118, 124, 126, 144, 133, 111, 113, 130, 131, 124, 124, 143, 117, 127, 116, 121, 124, 124, 128, 127, 132, 122, 130, 124, 129, 122, 123, 119, 135, 130, 124, 126, 101, 141, 122, 123, 125, 136, 126, 124, 108, 111, 130, 125, 138, 121, 127, 137, 127, 124, 130, 117, 112, 123, 107, 130, 127, 111, 115, 149, 131, 140, 114, 135, 128, 114, 118, 144, 128, 122, 125, 111, 131, 124, 144, 126, 125, 117, 108, 119, 122, 119, 120, 93, 133, 129, 129, 121, 130, 130, 114, 123, 103, 123, 124, 125, 129, 133, 120, 118, 96, 107, 113, 108, 120, 122, 122, 138, 119, 105, 145, 127, 137, 119, 131, 120, 125, 158, 121, 119, 122, 110, 112, 140, 132, 134, 117, 114, 132, 122, 117, 114, 127, 100, 134, 127, 145, 132, 128, 135, 124, 127, 137, 117, 127, 132, 116, 123, 140, 136, 120, 121, 128, 126, 134, 124, 117, 114, 117, 122, 117, 127, 119, 117, 128, 123, 120, 130, 116, 136, 101, 135, 135, 99, 123, 131, 118, 120, 133, 122, 115, 122, 112, 114, 117, 133, 133, 143, 151, 125, 121, 100, 133, 128, 141, 148, 117, 125, 81, 121, 127, 143, 107, 117, 151, 122, 131, 133, 141, 116, 119, 127, 125, 101, 137, 111, 99, 127, 137, 136, 108, 124, 120, 127, 124, 133, 112, 118, 118, 128, 121, 123, 132, 116, 133, 104, 134, 115, 129, 127, 123, 113, 134, 130, 129, 127, 125, 119, 131, 144, 121, 130, 128, 106, 125, 123, 134, 117, 156, 123, 118, 138, 119, 139, 116, 130, 113, 126, 99, 132, 133, 124, 141, 123, 108, 133, 130, 143, 128, 133, 128, 150, 135, 119, 112, 131, 130, 126, 139, 142, 129, 114, 130, 125, 131, 100, 128, 142, 133, 114, 133, 130, 144, 105, 123, 113, 111, 139, 140, 138, 119, 127, 94, 113, 127, 118, 120, 117, 109, 128, 115, 122, 124, 116, 123, 123, 130, 127, 119, 128, 129, 116, 106, 127, 139, 104, 138, 116, 115, 147, 122, 130, 132, 122, 131, 120, 125, 138, 109, 125, 139, 117, 144, 129, 138, 118, 123, 132, 121, 116, 126, 141, 131, 113, 101, 133, 125, 141, 128, 116, 118, 126, 115, 128, 133, 119, 121, 136, 123, 133, 129, 124, 142, 130, 126, 108, 132, 149, 139, 129, 123, 119, 119, 133, 121, 121, 133, 131, 111, 111, 118, 131, 135, 127, 128, 109, 128, 134, 125, 131, 134, 128, 135, 113, 129, 119, 119, 110, 138, 113, 140, 130, 117, 129, 126, 136, 126, 136, 112, 123, 132, 120, 91, 121, 117, 132, 144, 107, 130, 98, 123, 121, 100, 136, 120, 125, 115, 118, 123, 130, 137, 123, 116, 129, 134, 117, 103, 131, 114, 124, 134, 143, 130, 140, 134, 124, 134, 111, 131, 125, 116, 112, 121, 115, 138, 116, 107, 113, 115, 122, 134, 132, 121, 101, 98, 130, 123, 133, 120, 144, 128, 113, 124, 140, 134, 123, 140, 171, 139, 105, 134, 130, 139, 132, 116, 127, 146, 132, 123, 135, 113, 144, 122, 149, 124, 119, 115, 129, 106, 101, 132, 139, 127, 136, 136, 130, 130, 132, 107, 120, 123, 120, 132, 122, 113, 125, 153, 123, 123, 132, 119, 154, 120, 113, 137, 125, 123, 111, 123, 135, 117, 137, 118, 128, 128, 125, 136, 116, 116, 133, 118, 133, 129, 131, 124, 128, 130, 124, 137, 113, 131, 127, 135, 134, 129, 108, 129, 117, 111, 126, 104, 131, 124, 120, 116, 114, 127, 129, 122, 121, 121, 126, 123, 134, 116, 143, 119, 119, 119, 113, 138, 132, 111, 135, 132, 136, 123, 120, 130, 122, 122, 118, 108, 118, 108, 124, 125, 140, 135, 117, 134, 123, 144, 116, 130, 125, 138, 117, 124, 117, 131, 130, 145, 137, 119, 118, 140, 153, 139, 109, 134, 128, 127, 128, 122, 116, 129, 133, 120, 111, 121, 118, 141, 144, 117, 135, 138, 132, 143, 125, 133, 132, 135, 119, 131, 126, 123, 126, 127, 125, 117, 139, 143, 122, 112, 129, 112, 128, 128, 127, 135, 117, 138, 119, 129, 120, 129, 123, 131, 127, 105, 124, 132, 130, 123, 125, 124, 115, 137, 134, 137, 128, 130, 127, 117, 131, 104, 124, 124, 125, 112, 128, 131, 121, 86, 126, 124, 126, 132, 123, 135, 125, 141, 128, 125, 128, 120, 112, 121, 125, 126, 121, 123, 134, 115, 108, 128, 137, 128, 136, 127, 127, 130, 113, 133, 99, 115, 144, 125, 132, 130, 124, 120, 117, 128, 145, 120, 126, 153, 129, 114, 120, 137, 137, 123, 143, 115, 128, 132, 103, 113, 128, 132, 115, 116, 129, 138, 128, 123, 132, 127, 112, 121, 111, 121, 141, 117, 135, 115, 112, 129, 118, 148, 121, 126, 137, 127, 119, 115, 121, 118, 114, 128, 126, 126, 121, 126, 125, 125, 125, 135, 134, 109, 126, 123, 108, 122, 112, 122, 112, 129, 104, 136, 128, 132, 125, 129, 114, 115, 142, 147, 135, 113, 146, 110, 131, 121, 121, 110, 110, 126, 136, 124, 123, 122, 117, 128, 125, 123, 103, 139, 137, 119, 132, 120, 125, 126, 118, 123, 107, 113, 127, 124, 147, 112, 130, 124, 121, 116, 117, 118, 130, 138, 131, 128, 124, 147, 125, 124, 130, 119, 108, 130, 116, 128, 127, 139, 117, 121, 122, 132, 142, 146, 125, 134, 132, 128, 130, 121, 129, 132, 123, 121, 141, 128, 141, 134, 118, 128, 153, 118, 125, 117, 128, 137, 123, 130, 119, 125, 121, 114, 124, 133, 118, 123, 116, 142, 108, 112, 129, 151, 119, 121, 110, 117, 114, 120, 117, 118, 124, 115, 125, 130, 114, 116, 136, 132, 128, 131, 113, 143, 100, 106, 119, 121, 116, 101, 133, 131, 112, 118, 103, 111, 127, 126, 145, 123, 127, 119, 123, 127, 134, 114, 150, 114, 118, 138, 134, 131, 111, 151, 115, 131, 125, 122, 120, 131, 126, 117, 123, 129, 111, 121, 117, 129, 119, 128, 118, 135, 120, 139, 137, 119, 141, 114, 128, 106, 142, 130, 123, 132, 122, 111, 133, 126, 132, 124, 120, 109, 132, 133, 108, 129, 131, 126, 133, 127, 113, 128, 139, 107, 130, 133, 128, 132, 135, 115, 119, 110, 118, 129, 132, 114, 138, 109, 126, 116, 134, 114, 135, 135, 125, 125, 119, 108, 137, 128, 115, 106, 122, 103, 121, 148, 124, 120, 106, 129, 122, 111, 127, 123, 143, 150, 127, 130, 132, 130, 116, 128, 136, 123, 141, 137, 133, 117, 121, 126, 118, 132, 144, 144, 117, 130, 129, 116, 119, 126, 150, 126, 135, 122, 113, 117, 131, 126, 136, 123, 141, 136, 134, 129, 132, 135, 132, 130, 121, 141, 126, 133, 130, 113, 118, 114, 133, 113, 128, 132, 133, 140, 111, 127, 128, 122, 113, 123, 112, 103, 140, 111, 112, 125, 137, 133, 122, 125, 124, 117, 130, 134, 133, 113, 129, 123, 97, 122, 131, 120, 135, 117, 126, 103, 134, 118, 122, 120, 144, 123, 139, 124, 141, 137, 129, 125, 136, 122, 123, 122, 134, 101, 124, 137, 132, 138, 134, 129, 132, 133, 120, 148, 115, 129, 131, 135, 131, 117, 127, 121, 117, 121, 123, 130, 125, 115, 111, 117, 122, 128, 148, 131, 124, 120, 117, 135, 155, 121, 125, 111, 119, 129, 131, 126, 132, 128, 113, 139, 128, 123, 137, 121, 122, 121, 116, 137, 135, 123, 124, 131, 140, 123, 131, 119, 123, 132, 142, 126, 122, 118, 114, 136, 139, 139, 122, 118, 121, 122, 126, 99, 125, 121, 113, 130, 104, 117, 134, 123, 129, 132, 120, 122, 131, 131, 133, 126, 124, 117, 133, 116, 126, 151, 112, 122, 130, 123, 110, 126, 128, 151, 146, 121, 119, 139, 134, 145, 116, 133, 137, 127, 118, 119, 112, 127, 120, 126, 122, 131, 125, 113, 155, 134, 123, 132, 114, 133, 131, 119, 117, 124, 125, 130, 126, 142, 130, 136, 122, 114, 119, 124, 116, 133, 116, 132, 122, 129, 127, 109, 111, 123, 128, 115, 113, 139, 127, 127, 129, 130, 130, 146, 139, 129, 127, 125, 112, 146, 122, 139, 115, 130, 128, 131, 130, 127, 132, 96, 119, 138, 126, 117, 132, 109, 129, 126, 129, 118, 127, 130, 123, 78, 133, 132, 116, 106, 129, 126, 117, 113, 125, 134, 114, 123, 137, 123, 146, 122, 127, 131, 134, 114, 123, 132, 134, 120, 120, 130, 123, 111, 125, 122, 119, 116, 129, 117, 137, 117, 123, 117, 116, 124, 133, 127, 130, 123, 127, 134, 111, 139, 111, 132, 113, 108, 118, 121, 120, 111, 136, 124, 142, 126, 108, 117, 130, 123, 115, 133, 142, 134, 129, 128, 123, 120, 109, 136, 126, 125, 122, 105, 119, 121, 121, 126, 120, 146, 131, 113, 127, 131, 126, 118, 135, 117, 127, 120, 136, 120, 137, 124, 128, 121, 129, 113, 117, 120, 125, 118, 127, 135, 118, 118, 106, 129, 136, 124, 121, 142, 138, 140, 124, 117, 146, 120, 129, 149, 125, 148, 133, 126, 114, 106, 127, 136, 118, 134, 131, 121, 130, 122, 127, 126, 122, 125, 134, 118, 123, 130, 136, 120, 120, 126, 158, 117, 127, 136, 122, 136, 131, 118, 122, 107, 117, 128, 133, 130, 124, 131, 122, 133, 132, 118, 132, 113, 129, 133, 123, 135, 115, 128, 127, 136, 129, 108, 140, 124, 130, 134, 130, 119, 136, 134, 124, 125, 131, 128, 131, 130, 127, 112, 129, 117, 122, 103, 140, 114, 135, 128, 133, 86, 118, 117, 118, 111, 132, 113, 128, 109, 136, 129, 122, 136, 137, 125, 146, 124, 135, 124, 139, 112, 127, 140, 133, 124, 107, 120, 111, 123, 110, 119, 131, 128, 127, 122, 128, 115, 133, 127, 115, 130, 141, 123, 136, 140, 124, 116, 120, 136, 134, 99, 127, 103, 147, 130, 127, 121, 140, 122, 116, 115, 130, 130, 126, 114, 137, 113, 96, 138, 136, 120, 120, 123, 122, 130, 120, 106, 116, 113, 116, 120, 118, 120, 126, 112, 120, 114, 125, 142, 118, 116, 111, 144, 108, 110, 125, 125, 125, 136, 137, 106, 123, 129, 124, 124, 129, 126, 130, 122, 118, 127, 138, 139, 131, 139, 123, 136, 129, 127, 133, 115, 126, 132, 149, 118, 119, 136, 131, 125, 118, 134, 126, 119, 128, 130, 127, 127, 134, 126, 119, 115, 143, 129, 134, 118, 131, 144, 121, 124, 137, 127, 116, 116, 112, 115, 137, 125, 121, 128, 140, 120, 127, 128, 124, 126, 129, 119, 117, 122, 132, 131, 118, 130, 132, 116, 99, 123, 109, 134, 146, 123, 127, 127, 125, 124, 115, 120, 131, 113, 121, 137, 128, 134, 114, 127, 127, 117, 140, 114, 134, 131, 119, 115, 145, 117, 139, 136, 128, 124, 125, 150, 137, 139, 126, 137, 121, 117, 132, 144, 124, 111, 143, 107, 129, 123, 128, 142, 125, 130, 117, 128, 126, 120, 137, 118, 125, 113, 128, 119, 120, 128, 124, 121, 122, 119, 134, 124, 130, 111, 122, 125, 135, 119, 111, 120, 126, 122, 103, 119, 109, 114, 119, 119, 109, 124, 124, 123, 145, 113, 132, 131, 129, 131, 127, 114, 124, 118, 127, 128, 135, 128, 127, 128, 133, 114, 139, 111, 125, 119, 122, 112, 127, 120, 120, 116, 144, 116, 129, 138, 125, 121, 110, 140, 144, 120, 113, 133, 122, 130, 121, 139, 125, 163, 136, 123, 124, 120, 120, 124, 133, 120, 107, 121, 136, 142, 133, 133, 113, 120, 130, 128, 110, 138, 127, 117, 126, 119, 130, 117, 122, 128, 118, 121, 146, 149, 135, 149, 146, 130, 116, 116, 126, 135, 113, 127, 129, 106, 117, 142, 118, 122, 132, 104, 126, 138, 128, 128, 129, 117, 124, 133, 129, 128, 115, 128, 121, 132, 111, 128, 135, 129, 111, 109, 131, 138, 118, 133, 144, 98, 128, 140, 132, 121, 132, 124, 128, 123, 125, 129, 151, 131, 120, 104, 120, 142, 146, 126, 130, 121, 118, 125, 146, 120, 129, 124, 141, 113, 135, 130, 120, 118, 120, 113, 109, 134, 132, 125, 129, 142, 114, 126, 132, 124, 146, 129, 118, 104, 119, 124, 132, 104, 116, 154, 152, 113, 136, 119, 104, 154, 124, 126, 123, 136, 129, 130, 121, 110, 142, 122, 131, 129, 125, 149, 122, 130, 124, 126, 133, 117, 124, 116, 112, 118, 146, 137, 139, 135, 138, 118, 114, 105, 129, 103, 122, 136, 111, 120, 147, 135, 142, 126, 145, 128, 120, 135, 114, 127, 133, 133, 123, 111, 125, 121, 115, 141, 132, 118, 131, 121, 134, 122, 152, 136, 115, 116, 137, 120, 122, 125, 128, 117, 125, 121, 117, 110, 128, 112, 114, 112, 119, 128, 121, 123, 127, 135, 129, 110, 130, 112, 121, 121, 126, 133, 126, 130, 122, 105, 117, 121, 143, 113, 124, 124, 134, 127, 118, 138, 125, 116, 130, 121, 138, 143, 135, 132, 111, 119, 108, 113, 125, 128, 132, 123, 121, 127, 122, 131, 138, 132, 136, 139, 127, 135, 131, 131, 126, 119, 143, 132, 140, 130, 113, 107, 137, 125, 134, 113, 149, 119, 132, 122, 130, 111, 119, 116, 137, 126, 126, 132, 148, 123, 130, 118, 132, 116, 132, 132, 115, 124, 109, 110, 120, 143, 116, 136, 128, 115, 117, 121, 125, 106, 131, 130, 133, 132, 104, 127, 122, 118, 128, 130, 123, 134, 128, 109, 139, 124, 134, 104, 131, 126, 133, 117, 144, 130, 125, 125, 141, 123, 126, 133, 132, 128, 126, 138, 115, 128, 109, 128, 118, 134, 114, 129, 162, 139, 131, 131, 120, 125, 109, 111, 115, 142, 119, 120, 122, 109, 112, 133, 121, 126, 115, 116, 124, 123, 139, 122, 144, 139, 122, 126, 126, 115, 106, 105, 141, 121, 135, 115, 133, 116, 118, 109, 118, 107, 126, 130, 120, 142, 120, 128, 131, 121, 124, 124, 124, 117, 110, 117, 123, 105, 136, 137, 122, 126, 134, 128, 122, 112, 126, 109, 122, 129, 123, 131, 97, 121, 130, 119, 132, 127, 134, 136, 130, 102, 126, 121, 142, 134, 117, 121, 105, 121, 123, 121, 117, 142, 120, 117, 135, 139, 137, 125, 119, 131, 113, 131, 134, 128, 133, 121, 117, 121, 114, 111, 127, 130, 134, 126, 120, 134, 106, 115, 121, 133, 133, 119, 123, 135, 130, 118, 136, 119, 118, 121, 107, 133, 128, 110, 136, 131, 131, 133, 152, 109, 129, 122, 129, 131, 122, 123, 119, 121, 119, 120, 124, 119, 114, 126, 125, 117, 131, 116, 140, 128, 135, 124, 121, 122, 133, 139, 147, 119, 137, 118, 124, 131, 124, 127, 129, 123, 134, 140, 123, 137, 137, 118, 122, 118, 131, 124, 137, 114, 135, 130, 117, 126, 118, 105, 137, 128, 135, 117, 134, 138, 138, 136, 120, 108, 125, 125, 133, 139, 142, 128, 122, 151, 137, 117, 129, 139, 119, 128, 136, 117, 123, 124, 138, 98, 118, 125, 131, 132, 128, 114, 132, 121, 124, 100, 129, 122, 133, 120, 128, 124, 137, 125, 127, 137, 129, 116, 121, 128, 136, 121, 137, 120, 120, 135, 112, 106, 125, 120, 128, 139, 146, 116, 122, 130, 133, 129, 126, 121, 130, 119, 124, 132, 122, 139, 118, 139, 110, 120, 137, 146, 124, 126, 140, 121, 123, 121, 119, 133, 105, 139, 149, 129, 127, 142, 107, 130, 114, 118, 130, 129, 129, 112, 121, 138, 148, 115, 128, 121, 136, 101, 127, 125, 106, 129, 132, 130, 128, 134, 141, 133, 160, 145, 135, 122, 129, 118, 121, 118, 139, 116, 133, 136, 127, 124, 128, 120, 119, 121, 130, 129, 116, 129, 131, 122, 134, 127, 120, 121, 131, 113, 121, 125, 123, 130, 130, 118, 126, 109, 117, 129, 114, 133, 111, 134, 134, 121, 122, 120, 108, 102, 133, 126, 117, 133, 130, 132, 134, 129, 122, 126, 123, 145, 120, 125, 133, 115, 108, 127, 118, 119, 148, 108, 126, 142, 109, 138, 123, 118, 121, 123, 129, 117, 117, 116, 131, 113, 129, 129, 117, 134, 123, 123, 134, 126, 114, 112, 146, 134, 135, 91, 122, 144, 140, 124, 127, 115, 115, 121, 137, 116, 123, 107, 134, 129, 134, 119, 125, 123, 124, 125, 139, 130, 134, 117, 121, 130, 108, 107, 134, 139, 124, 115, 139, 120, 120, 126, 131, 127, 124, 128, 125, 128, 142, 138, 120, 136, 117, 110, 120, 125, 110, 133, 125, 130, 123, 132, 143, 136, 132, 134, 132, 119, 129, 118, 124, 120, 138, 139, 112, 143, 119, 139, 143, 129, 128, 124, 124, 125, 121, 125, 124, 130, 131, 131, 125, 115, 138, 132, 135, 143, 142, 124, 124, 126, 135, 127, 128, 118, 138, 102, 126, 135, 121, 116, 129, 106, 128, 117, 146, 132, 129, 122, 121, 127, 123, 125, 105, 115, 131, 135, 110, 116, 113, 122, 143, 114, 118, 117, 142, 119, 134, 120, 133, 124, 107, 132, 112, 110, 137, 137, 129, 117, 117, 129, 135, 131, 122, 146, 122, 126, 131, 113, 127, 134, 125, 129, 128, 129, 123, 110, 125, 126, 120, 111, 125, 121, 115, 132, 128, 114, 121, 127, 108, 117, 116, 117, 134, 124, 147, 125, 115, 134, 112, 133, 121, 130, 107, 116, 138, 133, 143, 123, 119, 125, 134, 121, 127, 125, 123, 116, 127, 109, 121, 128, 143, 113, 117, 118, 126, 119, 130, 113, 130, 123, 132, 114, 129, 137, 125, 127, 106, 129, 136, 129, 107, 131, 131, 129, 127, 139, 104, 122, 137, 114, 132, 137, 123, 129, 107, 129, 120, 114, 132, 121, 127, 137, 134, 124, 127, 131, 124, 106, 112, 118, 121, 135, 132, 126, 111, 135, 116, 125, 118, 127, 115, 118, 121, 115, 116, 129, 130, 119, 115, 134, 122, 122, 128, 117, 128, 118, 104, 128, 111, 143, 125, 130, 119, 123, 130, 120, 112, 117, 134, 120, 126, 120, 125, 120, 135, 128, 129, 123, 130, 130, 119, 124, 123, 127, 114, 121, 113, 126, 124, 136, 109, 136, 140, 120, 116, 133, 128, 110, 129, 126, 104, 129, 120, 112, 133, 138, 128, 120, 140, 114, 130, 127, 125, 115, 152, 121, 122, 126, 130, 136, 139, 139, 142, 119, 123, 146, 129, 131, 118, 135, 145, 131, 122, 114, 128, 126, 132, 136, 136, 115, 125, 120, 123, 121, 127, 125, 121, 130, 144, 129, 127, 150, 142, 122, 107, 144, 128, 136, 135, 116, 115, 114, 110, 145, 141, 122, 131, 108, 124, 135, 137, 121, 117, 134, 134, 131, 130, 128, 125, 128, 129, 143, 119, 115, 115, 130, 128, 117, 123, 124, 116, 132, 129, 130, 130, 104, 123, 128, 133, 132, 120, 139, 127, 146, 126, 121, 129, 147, 127, 129, 119, 110, 135, 128, 113, 118, 116, 115, 117, 133, 130, 128, 123, 135, 117, 130, 119, 119, 129, 115, 144, 138, 114, 118, 106, 119, 131, 116, 137, 140, 122, 130, 127, 113, 116, 129, 145, 117, 119, 133, 116, 112, 123, 124, 114, 122, 125, 127, 114, 125, 125, 124, 123, 146, 128, 118, 136, 99, 116, 124, 129, 138, 118, 115, 121, 132, 137, 121, 143, 127, 128, 140, 111, 120, 132, 131, 107, 143, 122, 119, 125, 125, 131, 134, 137, 132, 125, 124, 133, 127, 136, 128, 107, 131, 135, 126, 134, 114, 134, 122, 128, 120, 144, 106, 130, 135, 122, 115, 123, 130, 123, 125, 118, 113, 125, 125, 142, 141, 125, 102, 114, 132, 115, 100, 126, 123, 144, 120, 119, 119, 121, 111, 124, 113, 120, 120, 130, 127, 116, 136, 119, 105, 136, 127, 127, 139, 108, 120, 101, 129, 132, 124, 115, 145, 110, 106, 129, 113, 137, 128, 127, 130, 126, 113, 131, 104, 112, 103, 121, 130, 121, 136, 122, 144, 119, 139, 117, 119, 109, 128, 120, 113, 135, 132, 106, 136, 125, 116, 114, 119, 143, 120, 117, 112, 139, 120, 124, 144, 127, 124, 144, 141, 140, 133, 124, 118, 116, 120, 126, 136, 119, 119, 128, 133, 107, 130, 125, 133, 156, 134, 131, 145, 122, 133, 144, 140, 106, 127, 113, 137, 138, 129, 131, 118, 135, 151, 119, 113, 144, 98, 138, 147, 124, 109, 130, 115, 124, 137, 134, 138, 130, 155, 134, 114, 130, 111, 108, 110, 145, 119, 122, 120, 122, 130, 130, 141, 122, 123, 144, 119, 127, 126, 124, 115, 139, 120, 132, 136, 116, 115, 127, 112, 115, 130, 121, 143, 127, 119, 118, 125, 129, 118, 133, 132, 123, 119, 124, 134, 150, 119, 126, 150, 133, 108, 142, 113, 129, 131, 112, 124, 121, 118, 125, 131, 123, 115, 129, 125, 137, 142, 125, 109, 111, 99, 128, 125, 132, 131, 117, 170, 126, 103, 130, 116, 124, 108, 112, 117, 125, 118, 136, 115, 129, 139, 119, 151, 128, 135, 120, 123, 142, 123, 129, 127, 119, 141, 127, 101, 135, 114, 135, 131, 139, 122, 101, 123, 142, 134, 135, 124, 115, 104, 142, 137, 126, 107, 147, 108, 130, 117, 148, 130, 133, 116, 132, 112, 114, 120, 129, 134, 126, 107, 127, 145, 112, 119, 122, 114, 130, 135, 128, 138, 127, 110, 132, 142, 137, 109, 110, 130, 141, 123, 141, 123, 144, 113, 121, 129, 126, 125, 117, 127, 143, 134, 128, 127, 127, 136, 137, 121, 125, 136, 114, 128, 127, 119, 126, 145, 129, 118, 120, 108, 104, 108, 139, 136, 134, 121, 145, 130, 135, 136, 121, 123, 133, 119, 136, 110, 139, 117, 124, 128, 136, 120, 137, 118, 123, 123, 133, 151, 101, 136, 116, 120, 125, 151, 141, 130, 134, 125, 119, 103, 150, 130, 117, 126, 133, 125, 105, 124, 135, 123, 139, 107, 114, 124, 118, 120, 124, 142, 111, 113, 134, 134, 127, 121, 126, 122, 115, 143, 118, 101, 137, 117, 129, 110, 153, 137, 121, 139, 132, 135, 155, 127, 102, 119, 130, 146, 125, 141, 131, 130, 120, 134, 114, 121, 107, 118, 125, 132, 134, 122, 129, 121, 132, 123, 135, 110, 118, 121, 124, 128, 125, 136, 138, 113, 125, 122, 133, 147, 126, 130, 126, 125, 101, 108, 115, 131, 114, 133, 127, 119, 126, 142, 121, 117, 113, 122, 107, 129, 117, 139, 130, 121, 118, 151, 114, 125, 117, 112, 128, 131, 134, 124, 121, 130, 136, 117, 135, 139, 146, 139, 142, 131, 136, 141, 108, 113, 114, 126, 120, 133, 104, 120, 113, 122, 115, 124, 134, 117, 132, 127, 128, 126, 129, 133, 116, 132, 121, 132, 135, 125, 130, 134, 136, 122, 125, 104, 122, 141, 105, 141, 121, 135, 112, 135, 114, 149, 121, 138, 132, 144, 129, 138, 123, 121, 121, 131, 127, 121, 125, 154, 116, 118, 126, 137, 133, 134, 110, 123, 112, 103, 136, 132, 134, 103, 128, 119, 115, 153, 136, 111, 144, 129, 136, 123, 124, 136, 95, 113, 128, 145, 133, 128, 119, 119, 143, 125, 149, 121, 120, 120, 119, 114, 126, 119, 111, 112, 125, 119, 127, 138, 132, 118, 117, 134, 148, 118, 121, 131, 116, 124, 111, 130, 117, 144, 130, 132, 130, 116, 115, 106, 93, 140, 143, 137, 126, 142, 141, 123, 120, 128, 134, 138, 131, 123, 123, 131, 136, 115, 124, 134, 139, 126, 120, 109, 112, 117, 114, 121, 126, 117, 121, 113, 128, 114, 131, 141, 123, 121, 153, 131, 112, 132, 113, 125, 133, 146, 119, 137, 124, 132, 147, 126, 136, 127, 117, 126, 118, 132, 133, 126, 144, 118, 106, 115, 136, 105, 134, 123, 132, 125, 129, 128, 110, 139, 117, 105, 119, 109, 132, 116, 113, 138, 105, 170, 131, 136, 110, 117, 138, 135, 124, 138, 115, 132, 120, 126, 123, 117, 128, 122, 137, 137, 109, 116, 133, 116, 131, 116, 127, 109, 113, 111, 120, 136, 135, 114, 123, 118, 113, 126, 130, 161, 108, 127, 108, 138, 127, 127, 131, 112, 117, 124, 130, 115, 122, 108, 125, 124, 139, 116, 128, 124, 126, 123, 108, 129, 114, 123, 113, 144, 120, 135, 111, 125, 119, 140, 124, 126, 119, 136, 137, 131, 123, 138, 124, 112, 113, 141, 116, 124, 117, 100, 127, 133, 132, 133, 127, 147, 112, 133, 120, 135, 130, 118, 120, 118, 139, 113, 137, 118, 139, 118, 125, 136, 125, 124, 115, 118, 106, 109, 109, 119, 122, 112, 113, 124, 129, 129, 127, 122, 121, 120, 131, 134, 136, 114, 126, 131, 116, 129, 123, 133, 126, 147, 128, 152, 145, 106, 132, 128, 130, 116, 115, 112, 127, 121, 138, 114, 112, 132, 143, 117, 100, 119, 133, 125, 133, 134, 129, 116, 115, 126, 120, 127, 118, 124, 144, 122, 109, 108, 126, 149, 144, 117, 123, 122, 121, 140, 132, 142, 131, 134, 120, 125, 109, 130, 118, 112, 134, 107, 140, 123, 137, 124, 128, 106, 143, 113, 111, 132, 119, 123, 127, 129, 135, 115, 124, 126, 131, 104, 133, 142, 128, 138, 125, 140, 132, 136, 119, 126, 134, 121, 121, 117, 138, 128, 131, 115, 121, 144, 121, 169, 107, 146, 121, 121, 125, 121, 122, 133, 124, 116, 113, 123, 142, 136, 137, 111, 120, 117, 128, 116, 124, 114, 128, 118, 138, 145, 140, 133, 123, 119, 135, 134, 129, 128, 112, 128, 134, 134, 126, 106, 137, 122, 141, 110, 127, 138, 133, 136, 123, 120, 129, 126, 127, 133, 132, 122, 135, 112, 116, 116, 124, 115, 121, 122, 138, 126, 131, 134, 128, 114, 135, 124, 109, 148, 126, 123, 127, 120, 133, 129, 125, 139, 115, 101, 122, 123, 141, 123, 131, 107, 112, 134, 115, 129, 122, 112, 120, 126, 125, 120, 118, 137, 128, 118, 121, 108, 124, 133, 122, 130, 131, 104, 128, 137, 116, 120, 121, 118, 136, 120, 126, 125, 135, 108, 136, 93, 121, 142, 136, 119, 144, 132, 120, 135, 123, 134, 141, 119, 138, 138, 131, 109, 114, 116, 146, 122, 114, 133, 124, 129, 137, 126, 126, 135, 147, 127, 140, 127, 124, 113, 120, 127, 160, 128, 126, 125, 112, 123, 115, 107, 118, 131, 119, 138, 118, 106, 119, 107, 122, 106, 118, 135, 124, 120, 132, 133, 107, 125, 114, 124, 127, 133, 135, 135, 111, 120, 130, 125, 136, 118, 128, 138, 131, 117, 113, 125, 114, 125, 129, 123, 128, 118, 122, 114, 140, 109, 129, 140, 130, 110, 126, 127, 114, 120, 118, 119, 133, 115, 139, 142, 138, 134, 122, 121, 139, 138, 125, 123, 116, 122, 116, 117, 137, 122, 133, 133, 125, 131, 123, 128, 117, 130, 125, 150, 132, 120, 98, 133, 115, 147, 161, 116, 123, 125, 127, 111, 125, 103, 126, 144, 124, 113, 130, 123, 125, 120, 127, 127, 138, 134, 131, 131, 117, 126, 124, 138, 130, 129, 113, 113, 140, 116, 130, 122, 124, 114, 129, 129, 134, 121, 130, 138, 128, 110, 139, 121, 103, 108, 93, 127, 123, 136, 116, 142, 129, 116, 145, 127, 135, 123, 102, 126, 104, 134, 124, 124, 124, 106, 127, 122, 118, 127, 137, 123, 125, 113, 132, 131, 122, 132, 144, 110, 125, 109, 107, 122, 138, 117, 122, 121, 139, 122, 141, 120, 125, 105, 122, 119, 118, 137, 150, 135, 139, 130, 123, 126, 118, 129, 126, 113, 128, 126, 116, 128, 143, 121, 130, 112, 152, 128, 120, 123, 129, 132, 123, 126, 129, 108, 126, 119, 110, 128, 126, 123, 112, 130, 115, 110, 117, 118, 138, 129, 133, 123, 133, 120, 131, 124, 123, 137, 135, 136, 137, 135, 127, 145, 123, 121, 123, 125, 138, 135, 122, 128, 125, 145, 127, 122, 120, 121, 116, 116, 120, 122, 125, 136, 116, 126, 109, 130, 157, 129, 137, 134, 119, 120, 127, 113, 122, 127, 108, 126, 131, 117, 126, 119, 126, 125, 111, 123, 121, 139, 124, 142, 132, 123, 135, 106, 142, 123, 140, 114, 136, 124, 124, 109, 128, 140, 118, 141, 129, 127, 119, 126, 149, 129, 123, 120, 117, 128, 136, 100, 125, 133, 126, 133, 138, 118, 133, 133, 132, 126, 123, 129, 147, 117, 134, 146, 113, 125, 120, 116, 130, 129, 103, 118, 131, 114, 118, 129, 128, 121, 116, 131, 139, 127, 112, 141, 131, 133, 131, 122, 127, 138, 130, 121, 112, 119, 128, 128, 140, 130, 135, 121, 130, 137, 128, 125, 110, 126, 132, 81, 125, 140, 122, 116, 129, 119, 110, 128, 142, 104, 122, 132, 121, 127, 124, 125, 142, 131, 118, 127, 129, 112, 131, 118, 135, 120, 122, 125, 140, 104, 118, 111, 139, 127, 139, 127, 126, 136, 124, 121, 132, 120, 143, 133, 117, 123, 137, 134, 120, 128, 126, 132, 124, 129, 118, 123, 107, 123, 115, 116, 120, 124, 123, 138, 145, 112, 135, 101, 138, 121, 131, 124, 104, 118, 120, 115, 115, 130, 125, 135, 137, 123, 137, 123, 141, 130, 130, 114, 126, 128, 129, 119, 125, 140, 123, 116, 122, 116, 122, 115, 132, 112, 125, 123, 132, 132, 132, 135, 122, 129, 118, 117, 122, 117, 120, 128, 138, 107, 126, 126, 125, 132, 125, 118, 124, 130, 114, 127, 128, 139, 105, 136, 117, 126, 145, 109, 109, 116, 121, 123, 137, 116, 124, 114, 128, 128, 125, 123, 123, 123, 120, 130, 136, 136, 132, 134, 118, 119, 124, 137, 117, 140, 128, 127, 115, 130, 134, 117, 134, 123, 125, 122, 122, 126, 129, 139, 122, 127, 118, 116, 116, 116, 131, 115, 135, 122, 132, 123, 117, 139, 101, 133, 113, 117, 117, 141, 120, 135, 121, 119, 138, 131, 118, 116, 111, 124, 110, 125, 131, 116, 116, 126, 122, 141, 142, 128, 138, 127, 133, 124, 122, 128, 152, 115, 123, 148, 121, 122, 123, 133, 126, 106, 130, 114, 122, 132, 131, 132, 129, 125, 126, 130, 130, 124, 138, 115, 131, 117, 122, 126, 110, 118, 118, 120, 136, 113, 127, 106, 118, 130, 111, 115, 120, 125, 121, 115, 123, 123, 130, 124, 135, 119, 129, 122, 112, 123, 117, 124, 124, 124, 123, 118, 140, 145, 115, 111, 120, 121, 117, 138, 132, 114, 112, 125, 117, 125, 136, 140, 118, 124, 123, 118, 125, 117, 116, 139, 131, 137, 125, 143, 122, 120, 121, 130, 111, 119, 118, 139, 128, 96, 140, 129, 122, 134, 116, 122, 123, 139, 125, 111, 126, 115, 105, 95, 138, 114, 154, 117, 127, 115, 116, 123, 125, 132, 109, 140, 127, 133, 105, 119, 127, 122, 130, 126, 123, 131, 131, 133, 131, 133, 121, 118, 132, 110, 128, 144, 119, 126, 129, 124, 138, 104, 129, 122, 118, 125, 122, 130, 130, 138, 124, 110, 131, 114, 108, 101, 141, 116, 121, 138, 117, 105, 125, 130, 127, 124, 134, 118, 126, 110, 119, 123, 126, 126, 118, 120, 110, 101, 133, 114, 130, 112, 136, 132, 148, 126, 125, 126, 128, 113, 114, 118, 137, 127, 135, 122, 135, 139, 124, 126, 131, 109, 126, 116, 125, 112, 116, 114, 117, 120, 111, 109, 129, 139, 119, 115, 131, 126, 126, 127, 128, 133, 139, 134, 148, 133, 134, 106, 131, 122, 132, 129, 109, 137, 137, 128, 133, 118, 133, 125, 124, 119, 116, 112, 118, 111, 122, 125, 131, 114, 139, 120, 131, 123, 128, 132, 125, 124, 139, 132, 133, 121, 150, 130, 123, 138, 97, 105, 125, 134, 119, 121, 129, 119, 147, 137, 127, 129, 122, 138, 128, 115, 107, 134, 128, 131, 122, 126, 113, 104, 139, 121, 118, 129, 118, 119, 142, 137, 126, 123, 139, 120, 124, 131, 123, 127, 122, 127, 110, 123, 127, 139, 145, 125, 122, 127, 113, 137, 111, 128, 113, 133, 126, 127, 117, 125, 121, 119, 115, 129, 117, 101, 116, 126, 126, 122, 136, 134, 125, 130, 112, 121, 136, 104, 113, 115, 114, 105, 117, 129, 111, 121, 111, 112, 118, 128, 130, 118, 117, 114, 145, 106, 121, 119, 126, 125, 146, 130, 116, 139, 116, 116, 138, 128, 116, 123, 129, 144, 138, 136, 135, 136, 133, 124, 135, 99, 129, 144, 116, 147, 125, 138, 131, 125, 121, 135, 119, 126, 98, 130, 119, 124, 134, 134, 136, 122, 148, 122, 109, 118, 138, 107, 127, 133, 124, 112, 124, 120, 119, 113, 137, 133, 115, 121, 130, 116, 135, 144, 151, 142, 122, 121, 120, 112, 120, 104, 132, 144, 150, 126, 137, 125, 118, 115, 123, 108, 122, 116, 125, 109, 138, 128, 112, 111, 116, 126, 140, 115, 136, 145, 130, 120, 124, 127, 129, 125, 132, 120, 124, 119, 107, 119, 124, 123, 128, 141, 133, 132, 131, 138, 130, 120, 135, 116, 123, 124, 109, 149, 112, 112, 109, 143, 132, 119, 121, 133, 120, 141, 130, 126, 118, 140, 133, 136, 127, 114, 137, 126, 124, 109, 123, 154, 133, 120, 145, 119, 121, 142, 110, 136, 130, 137, 131, 126, 117, 119, 129, 114, 124, 131, 127, 113, 130, 128, 138, 131, 128, 132, 120, 123, 126, 127, 119, 130, 103, 123, 133, 102, 127, 140, 122, 117, 126, 125, 125, 118, 122, 111, 107, 133, 109, 137, 129, 124, 119, 119, 132, 122, 129, 142, 120, 127, 142, 136, 137, 127, 122, 133, 133, 118, 127, 123, 135, 124, 129, 128, 127, 132, 117, 155, 108, 107, 128, 130, 135, 118, 137, 114, 116, 127, 110, 118, 124, 100, 126, 95, 131, 116, 115, 134, 125, 135, 135, 110, 115, 114, 132, 130, 123, 121, 116, 127, 126, 138, 112, 127, 143, 119, 114, 111, 142, 128, 122, 122, 131, 116, 118, 151, 114, 118, 109, 130, 144, 132, 147, 118, 130, 133, 139, 126, 124, 118, 126, 133, 147, 121, 135, 117, 124, 102, 125, 116, 116, 139, 140, 142, 123, 133, 114, 115, 119, 129, 119, 137, 101, 138, 116, 128, 103, 123, 126, 126, 126, 109, 120, 126, 110, 125, 127, 100, 155, 142, 128, 112, 116, 109, 132, 122, 122, 119, 136, 121, 123, 120, 126, 106, 115, 131, 109, 117, 124, 139, 127, 120, 126, 119, 134, 149, 123, 133, 123, 115, 145, 137, 109, 133, 126, 130, 131, 123, 126, 129, 102, 114, 133, 128, 124, 117, 134, 119, 114, 112, 145, 117, 133, 118, 135, 110, 134, 104, 131, 131, 134, 122, 110, 120, 121, 120, 132, 138, 122, 133, 119, 122, 130, 131, 114, 116, 121, 114, 112, 136, 122, 142, 132, 133, 134, 131, 133, 132, 128, 107, 114, 147, 102, 114, 103, 112, 129, 119, 126, 109, 128, 105, 114, 139, 110, 140, 140, 124, 119, 133, 121, 114, 122, 143, 119, 130, 118, 105, 119, 138, 113, 144, 143, 132, 122, 121, 118, 128, 122, 134, 117, 125, 114, 138, 126, 125, 112, 116, 125, 131, 100, 113, 136, 121, 131, 137, 140, 128, 123, 133, 126, 127, 132, 115, 112, 128, 130, 109, 120, 111, 121, 113, 118, 133, 126, 124, 144, 98, 132, 120, 109, 131, 131, 139, 111, 128, 121, 118, 133, 120, 123, 122, 139, 123, 111, 108, 140, 129, 130, 144, 116, 110, 125, 144, 110, 123, 119, 136, 137, 123, 135, 143, 121, 118, 126, 125, 111, 143, 114, 122, 119, 127, 120, 119, 124, 134, 129, 125, 115, 109, 139, 126, 124, 129, 114, 135, 118, 119, 118, 133, 127, 121, 133, 139, 117, 124, 107, 116, 120, 143, 125, 147, 144, 121, 127, 109, 123, 142, 120, 143, 113, 131, 115, 137, 143, 113, 132, 135, 117, 134, 125, 121, 106, 139, 118, 130, 124, 123, 122, 107, 121, 112, 127, 121, 132, 122, 127, 119, 138, 101, 136, 123, 135, 111, 134, 131, 131, 113, 119, 134, 120, 122, 135, 118, 121, 119, 137, 124, 136, 125, 132, 125, 121, 133, 120, 131, 129, 143, 107, 114, 126, 127, 137, 128, 115, 120, 130, 113, 118, 137, 133, 127, 124, 151, 119, 135, 125, 124, 122, 148, 121, 113, 143, 135, 125, 150, 131, 111, 124, 127, 125, 134, 124, 110, 133, 134, 132, 105, 156, 115, 138, 120, 135, 128, 124, 136, 118, 138, 145, 114, 131, 112, 112, 129, 120, 132, 156, 123, 131, 126, 101, 130, 122, 132, 115, 154, 126, 121, 126, 115, 117, 133, 122, 96, 156, 114, 130, 122, 134, 128, 139, 120, 110, 117, 121, 119, 119, 121, 138, 118, 117, 129, 128, 138, 161, 109, 102, 128, 106, 133, 126, 116, 111, 149, 116, 134, 132, 156, 130, 117, 121, 127, 110, 118, 131, 124, 112, 136, 136, 136, 145, 135, 115, 118, 139, 141, 129, 134, 119, 117, 136, 119, 127, 133, 126, 97, 125, 125, 133, 126, 118, 133, 128, 127, 139, 131, 115, 118, 128, 102, 132, 128, 127, 117, 129, 129, 108, 134, 129, 136, 120, 132, 127, 142, 128, 131, 124, 134, 118, 107, 137, 112, 124, 107, 124, 133, 138, 122, 143, 126, 120, 118, 131, 123, 113, 126, 122, 119, 113, 122, 120, 119, 115, 118, 121, 123, 141, 125, 117, 120, 136, 134, 122, 128, 135, 136, 121, 109, 146, 150, 108, 128, 125, 129, 129, 110, 122, 93, 134, 131, 138, 126, 131, 127, 121, 105, 139, 117, 143, 120, 137, 121, 120, 119, 130, 159, 127, 126, 120, 123, 115, 130, 124, 122, 130, 125, 115, 120, 128, 129, 123, 133, 123, 127, 132, 117, 106, 116, 143, 140, 141, 125, 129, 121, 133, 119, 118, 125, 122, 126, 139, 131, 126, 120, 115, 125, 110, 137, 111, 131, 138, 125, 119, 111, 121, 122, 131, 134, 132, 123, 121, 123, 134, 125, 110, 134, 127, 118, 125, 133, 134, 120, 117, 118, 118, 106, 124, 116, 129, 118, 126, 118, 122, 108, 115, 119, 124, 108, 156, 137, 120, 130, 129, 131, 130, 131, 116, 132, 133, 133, 136, 126, 109, 123, 142, 121, 118, 140, 123, 123, 123, 124, 142, 114, 115, 140, 141, 129, 137, 116, 115, 128, 128, 111, 140, 127, 119, 133, 140, 127, 132, 121, 147, 123, 120, 124, 131, 128, 110, 139, 134, 130, 111, 122, 128, 106, 121, 118, 112, 110, 112, 110, 113, 115, 117, 139, 138, 137, 124, 149, 126, 102, 110, 129, 133, 119, 98, 144, 130, 143, 108, 133, 135, 117, 123, 133, 119, 91, 140, 112, 107, 120, 117, 120, 123, 124, 122, 110, 127, 134, 118, 138, 131, 131, 143, 126, 122, 130, 128, 130, 115, 112, 131, 120, 121, 124, 119, 115, 129, 117, 134, 139, 139, 116, 117, 133, 128, 124, 121, 144, 112, 114, 114, 125, 125, 113, 132, 140, 125, 105, 140, 121, 145, 123, 145, 114, 127, 127, 134, 132, 114, 136, 125, 134, 137, 130, 134, 129, 123, 117, 122, 128, 135, 114, 121, 153, 112, 118, 140, 137, 102, 123, 133, 130, 134, 135, 106, 157, 123, 146, 136, 104, 116, 125, 129, 119, 104, 139, 142, 129, 129, 141, 128, 124, 111, 126, 120, 137, 112, 140, 123, 125, 97, 143, 127, 121, 113, 124, 117, 97, 131, 122, 115, 119, 109, 144, 128, 101, 138, 126, 132, 129, 125, 120, 132, 124, 133, 113, 112, 121, 131, 141, 142, 151, 106, 131, 110, 146, 111, 119, 115, 120, 138, 121, 139, 137, 126, 146, 111, 139, 136, 110, 125, 138, 117, 127, 125, 124, 124, 143, 138, 138, 137, 106, 120, 130, 109, 121, 107, 129, 133, 128, 121, 137, 139, 134, 152, 114, 122, 141, 123, 133, 119, 139, 112, 109, 138, 143, 135, 130, 120, 110, 134, 110, 106, 124, 134, 113, 119, 135, 122, 110, 109, 131, 129, 126, 140, 125, 128, 132, 123, 99, 120, 131, 122, 147, 124, 106, 143, 110, 119, 124, 147, 128, 119, 128, 104, 132, 135, 130, 136, 113, 117, 110, 130, 134, 144, 111, 120, 115, 103, 150, 125, 97, 122, 113, 122, 137, 132, 146, 127, 147, 102, 121, 107, 125, 132, 124, 129, 144, 149, 134, 134, 134, 116, 113, 132, 141, 135, 130, 122, 137, 129, 126, 139, 134, 128, 122, 149, 131, 128, 127, 127, 136, 124, 108, 115, 138, 136, 128, 132, 132, 125, 153, 111, 133, 122, 116, 140, 125, 151, 131, 115, 132, 122, 115, 137, 108, 127, 112, 122, 149, 135, 127, 119, 129, 107, 134, 145, 125, 116, 136, 141, 128, 125, 132, 131, 123, 119, 128, 108, 137, 161, 139, 138, 124, 131, 120, 129, 130, 130, 136, 120, 107, 129, 129, 143, 107, 116, 135, 140, 118, 100, 121, 125, 117, 114, 125, 109, 118, 109, 136, 129, 125, 127, 118, 136, 127, 131, 118, 117, 128, 125, 119, 117, 117, 126, 116, 135, 125, 131, 128, 126, 128, 147, 128, 135, 123, 127, 121, 123, 120, 109, 125, 145, 130, 154, 126, 137, 122, 131, 128, 117, 122, 121, 135, 139, 129, 129, 132, 141, 138, 110, 145, 118, 113, 120, 130, 139, 117, 132, 129, 133, 137, 133, 129, 132, 130, 135, 125, 126, 142, 135, 114, 123, 119, 147, 129, 131, 121, 110, 117, 129, 115, 136, 121, 139, 122, 122, 128, 120, 136, 110, 130, 122, 140, 137, 124, 117, 121, 141, 119, 125, 131, 127, 124, 144, 132, 114, 142, 130, 124, 132, 127, 119, 106, 131, 142, 119, 131, 125, 116, 138, 138, 132, 119, 120, 134, 137, 111, 103, 126, 118, 128, 171, 121, 130, 121, 125, 103, 156, 120, 81, 116, 140, 113, 102, 117, 116, 110, 125, 139, 135, 133, 122, 148, 128, 110, 122, 123, 115, 147, 115, 109, 126, 136, 127, 140, 141, 111, 124, 116, 129, 115, 130, 118, 129, 135, 114, 133, 121, 133, 115, 124, 124, 129, 116, 97, 143, 134, 136, 138, 142, 121, 137, 119, 112, 135, 107, 119, 126, 128, 130, 141, 123, 123, 120, 118, 127, 137, 130, 118, 132, 127, 111, 118, 132, 111, 113, 118, 121, 119, 141, 140, 118, 121, 106, 119, 127, 115, 111, 107, 116, 152, 139, 128, 131, 119, 122, 136, 126, 123, 113, 142, 117, 126, 115, 124, 138, 121, 122, 141, 127, 128, 137, 127, 123, 145, 116, 121, 126, 144, 152, 121, 129, 122, 122, 141, 133, 108, 121, 126, 122, 122, 128, 152, 118, 120, 114, 132, 129, 132, 132, 130, 141, 114, 99, 123, 125, 122, 121, 128, 117, 113, 119, 143, 112, 129, 116, 143, 137, 115, 108, 120, 111, 96, 126, 142, 110, 126, 118, 123, 123, 135, 127, 128, 126, 114, 124, 127, 143, 118, 152, 111, 124, 119, 119, 110, 120, 124, 102, 118, 118, 132, 128, 130, 138, 131, 132, 122, 133, 134, 127, 136, 114, 115, 141, 120, 125, 124, 129, 134, 108, 122, 137, 114, 138, 128, 131, 113, 135, 123, 125, 141, 125, 121, 121, 128, 127, 132, 115, 127, 119, 99, 135, 115, 112, 134, 123, 127, 122, 123, 124, 130, 140, 123, 108, 121, 139, 123, 129, 134, 123, 117, 103, 146, 126, 124, 132, 98, 132, 115, 126, 117, 130, 129, 124, 141, 100, 131, 106, 106, 121, 118, 124, 124, 140, 115, 121, 124, 116, 118, 140, 129, 114, 160, 117, 127, 110, 122, 119, 133, 120, 131, 131, 130, 132, 119, 121, 108, 115, 128, 127, 121, 113, 139, 127, 129, 143, 145, 115, 121, 120, 104, 104, 126, 116, 119, 122, 143, 92, 144, 124, 149, 128, 129, 132, 112, 131, 147, 126, 115, 120, 98, 136, 116, 122, 127, 116, 134, 130, 114, 95, 139, 126, 126, 112, 124, 125, 100, 110, 123, 122, 120, 125, 104, 127, 152, 125, 128, 110, 123, 113, 137, 133, 129, 118, 127, 116, 144, 125, 127, 125, 118, 117, 124, 135, 135, 130, 122, 99, 132, 117, 111, 113, 137, 131, 133, 111, 109, 131, 121, 133, 127, 112, 124, 125, 127, 134, 119, 131, 127, 132, 144, 113, 119, 116, 118, 142, 114, 102, 127, 119, 111, 112, 125, 124, 116, 126, 129, 127, 120, 138, 128, 138, 125, 114, 120, 123, 135, 122, 130, 127, 89, 131, 141, 128, 137, 130, 124, 145, 118, 125, 126, 146, 142, 105, 128, 135, 124, 127, 113, 112, 120, 134, 124, 142, 119, 139, 133, 128, 106, 124, 138, 126, 127, 115, 125, 122, 131, 126, 120, 131, 139, 122, 110, 129, 126, 127, 117, 123, 126, 116, 117, 120, 126, 124, 133, 111, 119, 117, 102, 119, 144, 135, 129, 123, 129, 124, 125, 126, 120, 144, 129, 117, 116, 125, 117, 140, 133, 142, 129, 121, 127, 125, 125, 114, 127, 137, 119, 109, 123, 120, 134, 138, 127, 125, 118, 136, 128, 124, 118, 135, 131, 123, 135, 121, 114, 130, 136, 114, 139, 121, 106, 128, 122, 124, 140, 115, 132, 130, 123, 128, 129, 112, 111, 113, 114, 116, 142, 134, 131, 131, 128, 125, 104, 122, 119, 121, 123, 124, 139, 133, 129, 112, 110, 120, 119, 128, 111, 124, 117, 128, 112, 133, 123, 101, 116, 116, 123, 123, 127, 126, 129, 118, 140, 139, 113, 122, 127, 128, 122, 134, 120, 128, 116, 116, 118, 127, 134, 141, 125, 123, 111, 127, 123, 131, 125, 123, 131, 124, 134, 121, 134, 112, 127, 99, 126, 129, 126, 136, 127, 131, 124, 122, 120, 117, 127, 111, 114, 130, 118, 128, 122, 135, 126, 138, 142, 118, 128, 122, 120, 139, 139, 127, 136, 128, 133, 132, 127, 133, 132, 124, 127, 110, 127, 135, 134, 127, 110, 124, 134, 134, 113, 135, 121, 120, 131, 132, 117, 129, 121, 134, 132, 136, 123, 140, 144, 141, 122, 124, 129, 100, 128, 145, 110, 130, 126, 158, 126, 120, 141, 122, 128, 137, 131, 131, 128, 120, 116, 131, 119, 129, 128, 122, 116, 122, 127, 127, 119, 120, 126, 132, 114, 126, 129, 123, 113, 127, 123, 129, 123, 121, 116, 134, 128, 124, 127, 137, 145, 95, 112, 112, 117, 136, 138, 145, 127, 123, 131, 116, 131, 135, 114, 130, 112, 117, 120, 130, 120, 133, 128, 99, 129, 123, 138, 127, 126, 113, 134, 107, 117, 126, 124, 144, 129, 118, 126, 127, 119, 131, 132, 135, 138, 131, 114, 126, 120, 121, 122, 130, 131, 126, 120, 123, 114, 131, 121, 129, 120, 135, 152, 107, 138, 129, 138, 121, 136, 120, 113, 132, 111, 107, 131, 128, 134, 117, 135, 118, 124, 135, 108, 122, 120, 129, 128, 107, 121, 133, 119, 126, 111, 136, 123, 133, 139, 130, 121, 119, 128, 116, 129, 125, 120, 131, 144, 101, 126, 115, 142, 131, 126, 127, 128, 125, 116, 139, 112, 126, 119, 139, 123, 125, 121, 116, 142, 130, 146, 128, 135, 120, 143, 142, 122, 130, 114, 140, 240, 118, 131, 114, 135, 129, 128, 137, 122, 136, 150, 119, 125, 126, 120, 125, 141, 136, 122, 129, 105, 130, 132, 126, 125, 127, 129, 129, 142, 123, 124, 119, 123, 109, 118, 130, 115, 140, 120, 141, 104, 123, 125, 142, 120, 123, 132, 121, 121, 113, 114, 106, 149, 133, 120, 127, 125, 104, 118, 135, 120, 119, 124, 131, 107, 108, 127, 129, 135, 115, 120, 116, 134, 133, 139, 115, 123, 134, 127, 126, 121, 158, 122, 125, 129, 126, 119, 124, 123, 135, 130, 109, 109, 123, 137, 127, 121, 106, 124, 119, 120, 107, 118, 126, 133, 120, 130, 127, 142, 121, 114, 144, 127, 123, 134, 126, 131, 133, 131, 120, 105, 130, 131, 133, 141, 109, 139, 138, 127, 126, 129, 122, 132, 132, 118, 115, 115, 117, 123, 133, 128, 116, 142, 116, 101, 115, 133, 141, 140, 121, 110, 123, 128, 121, 122, 144, 129, 123, 116, 131, 146, 126, 134, 130, 128, 130, 114, 132, 126, 109, 129, 121, 133, 153, 123, 139, 128, 123, 119, 134, 125, 135, 141, 138, 122, 116, 124, 122, 121, 122, 138, 125, 118, 114, 124, 158, 111, 130, 116, 126, 118, 139, 141, 144, 116, 128, 125, 116, 140, 119, 121, 120, 138, 143, 119, 130, 140, 136, 121, 130, 125, 127, 129, 129, 124, 134, 118, 124, 133, 128, 133, 119, 133, 123, 122, 121, 141, 130, 123, 131, 115, 124, 122, 128, 120, 124, 133, 135, 106, 117, 148, 121, 124, 120, 134, 98, 121, 128, 123, 121, 128, 136, 126, 129, 131, 132, 119, 126, 110, 129, 125, 142, 111, 129, 112, 117, 112, 128, 128, 128, 131, 152, 129, 113, 132, 122, 113, 125, 142, 122, 114, 128, 144, 123, 133, 125, 133, 117, 140, 99, 117, 136, 113, 114, 119, 126, 121, 131, 121, 118, 121, 113, 115, 129, 123, 121, 137, 130, 124, 205, 143, 123, 131, 109, 130, 127, 142, 126, 139, 136, 136, 125, 139, 121, 132, 121, 193, 127, 122, 141, 123, 122, 132, 116, 135, 133, 128, 135, 128, 129, 134, 116, 140, 108, 135, 126, 110, 178, 130, 132, 112, 123, 121, 136, 128, 143, 132, 112, 140, 138, 139, 138, 126, 121, 116, 112, 128, 127, 133, 108, 121, 131, 107, 134, 124, 116, 124, 134, 146, 139, 125, 127, 125, 139, 120, 125, 107, 122, 134, 138, 128, 124, 129, 142, 140, 111, 136, 124, 102, 121, 142, 134, 126, 136, 138, 122, 124, 125, 130, 108, 112, 134, 112, 119, 127, 125, 121, 112, 121, 132, 122, 124, 126, 120, 123, 102, 111, 133, 135, 118, 120, 142, 133, 110, 122, 131, 141, 120, 122, 135, 100, 121, 128, 127, 123, 127, 129, 110, 112, 147, 131, 129, 118, 119, 109, 125, 125, 136, 137, 135, 133, 134, 124, 126, 111, 129, 117, 122, 140, 126, 130, 134, 142, 129, 125, 117, 130, 129, 93, 128, 129, 125, 146, 131, 121, 105, 142, 135, 123, 131, 132, 137, 133, 129, 131, 146, 123, 125, 141, 129, 126, 135, 125, 136, 124, 125, 145, 134, 132, 125, 115, 119, 114, 98, 115, 124, 119, 128, 131, 128, 120, 130, 125, 127, 127, 124, 118, 127, 124, 120, 130, 142, 111, 127, 109, 134, 125, 120, 137, 122, 121, 126, 116, 116, 118, 132, 146, 123, 123, 141, 129, 122, 125, 117, 136, 121, 122, 131, 122, 124, 112, 137, 107, 124, 113, 122, 110, 141, 120, 134, 135, 136, 144, 126, 133, 132, 112, 129, 121, 124, 134, 106, 108, 123, 133, 123, 122, 130, 128, 129, 135, 111, 136, 134, 131, 122, 123, 136, 121, 112, 123, 127, 136, 125, 141, 140, 128, 122, 120, 116, 123, 122, 117, 147, 128, 112, 129, 128, 130, 129, 126, 131, 127, 125, 141, 122, 109, 127, 117, 117, 153, 125, 118, 117, 128, 124, 120, 118, 127, 114, 128, 129, 129, 130, 128, 121, 135, 123, 139, 142, 121, 113, 124, 128, 133, 137, 111, 120, 132, 136, 121, 125, 120, 123, 129, 133, 121, 140, 124, 116, 128, 128, 111, 142, 117, 129, 123, 134, 130, 129, 123, 121, 110, 117, 125, 124, 130, 129, 146, 118, 136, 135, 134, 131, 126, 130, 129, 123, 130, 135, 133, 126, 128, 125, 121, 133, 139, 124, 111, 122, 121, 110, 119, 130, 123, 128, 108, 131, 138, 135, 116, 137, 106, 139, 122, 125, 123, 128, 126, 127, 127, 138, 129, 115, 128, 122, 117, 123, 111, 107, 139, 122, 110, 119, 110, 104, 129, 139, 129, 122, 138, 134, 125, 124, 132, 118, 125, 123, 127, 123, 110, 121, 131, 119, 139, 121, 131, 140, 136, 132, 107, 121, 120, 133, 130, 127, 125, 127, 122, 141, 126, 132, 125, 118, 129, 122, 98, 121, 128, 126, 132, 129, 127, 123, 112, 126, 121, 122, 121, 139, 110, 117, 121, 125, 113, 119, 119, 133, 136, 115, 140, 132, 105, 130, 128, 112, 126, 130, 127, 118, 126, 127, 128, 122, 127, 140, 124, 122, 139, 113, 108, 133, 118, 135, 126, 121, 114, 121, 111, 133, 121, 132, 137, 118, 137, 127, 130, 126, 127, 117, 125, 117, 134, 118, 137, 114, 136, 138, 118, 134, 123, 122, 125, 124, 115, 123, 118, 115, 125, 120, 119, 123, 117, 115, 134, 126, 119, 138, 127, 119, 126, 133, 113, 121, 124, 129, 137, 138, 124, 116, 122, 125, 114, 114, 124, 128, 127, 125, 110, 123, 134, 133, 131, 129, 113, 131, 115, 124, 140, 122, 108, 136, 127, 124, 107, 119, 118, 128, 125, 128, 122, 118, 115, 115, 142, 132, 131, 135, 135, 131, 135, 119, 139, 121, 124, 129, 109, 118, 125, 120, 131, 126, 119, 130, 133, 132, 119, 100, 124, 141, 108, 133, 130, 118, 122, 114, 124, 131, 118, 146, 130, 114, 125, 129, 127, 115, 129, 121, 135, 119, 130, 122, 118, 114, 130, 128, 120, 110, 130, 122, 130, 122, 127, 111, 127, 137, 132, 142, 148, 118, 136, 118, 137, 136, 103, 126, 119, 141, 126, 125, 130, 128, 129, 135, 112, 106, 127, 130, 117, 126, 130, 121, 124, 139, 125, 136, 119, 107, 119, 117, 122, 120, 125, 125, 115, 130, 129, 131, 140, 142, 137, 113, 137, 138, 119, 122, 116, 116, 135, 129, 145, 131, 115, 120, 140, 122, 115, 141, 112, 139, 141, 117, 113, 136, 124, 124, 144, 141, 104, 124, 125, 123, 128, 116, 117, 106, 120, 122, 130, 127, 143, 126, 112, 131, 123, 106, 132, 130, 125, 116, 117, 135, 101, 121, 128, 109, 139, 152, 126, 121, 132, 127, 122, 138, 121, 126, 140, 114, 127, 120, 120, 137, 134, 132, 129, 114, 124, 142, 131, 134, 138, 111, 138, 113, 132, 116, 125, 127, 128, 121, 113, 128, 118, 128, 128, 129, 116, 124, 127, 108, 123, 113, 111, 145, 119, 111, 124, 125, 127, 130, 134, 146, 123, 134, 127, 133, 119, 125, 144, 130, 114, 145, 122, 133, 127, 136, 118, 147, 128, 125, 124, 121, 128, 108, 128, 140, 128, 149, 119, 143, 115, 126, 133, 114, 139, 123, 124, 115, 121, 125, 130, 144, 133, 130, 121, 109, 124, 116, 124, 141, 145, 116, 135, 116, 123, 118, 117, 131, 122, 131, 120, 145, 130, 122, 121, 129, 127, 115, 108, 146, 119, 123, 152, 108, 127, 112, 119, 131, 119, 137, 122, 130, 130, 127, 120, 116, 141, 130, 129, 134, 130, 119, 135, 124, 123, 123, 126, 124, 131, 111, 115, 124, 124, 128, 122, 134, 143, 129, 129, 125, 119, 132, 134, 124, 134, 116, 136, 117, 124, 116, 133, 135, 113, 118, 131, 119, 119, 117, 130, 120, 137, 142, 120, 127, 140, 133, 132, 127, 130, 117, 130, 121, 141, 117, 119, 124, 133, 144, 117, 120, 134, 121, 115, 127, 135, 112, 118, 133, 130, 123, 141, 131, 102, 133, 135, 132, 122, 150, 124, 101, 121, 132, 134, 134, 120, 114, 111, 107, 104, 117, 115, 134, 136, 103, 132, 115, 129, 106, 127, 110, 117, 135, 127, 135, 123, 125, 120, 131, 145, 149, 126, 114, 119, 128, 124, 131, 115, 129, 139, 115, 123, 121, 120, 130, 123, 131, 114, 111, 120, 127, 127, 141, 150, 134, 129, 109, 128, 130, 129, 124, 127, 115, 130, 134, 125, 128, 121, 148, 122, 118, 109, 133, 123, 110, 135, 123, 131, 123, 131, 121, 118, 125, 104, 109, 136, 115, 119, 119, 113, 128, 128, 118, 121, 118, 118, 138, 129, 116, 119, 138, 114, 132, 119, 124, 125, 128, 126, 127, 129, 110, 127, 134, 112, 132, 136, 123, 120, 126, 117, 116, 112, 111, 131, 130, 127, 133, 127, 127, 121, 130, 131, 145, 134, 123, 135, 136, 139, 113, 124, 122, 136, 122, 127, 138, 133, 123, 134, 122, 119, 125, 110, 106, 128, 116, 127, 124, 135, 125, 108, 136, 123, 110, 138, 130, 143, 108, 136, 130, 126, 120, 129, 139, 114, 123, 141, 120, 133, 120, 130, 132, 123, 131, 127, 137, 108, 113, 125, 113, 124, 125, 123, 123, 127, 122, 126, 127, 128, 125, 140, 121, 128, 118, 138, 138, 131, 127, 140, 128, 117, 114, 126, 133, 114, 123, 130, 130, 134, 127, 135, 134, 121, 126, 122, 122, 129, 120, 119, 140, 119, 116, 133, 116, 117, 147, 133, 120, 121, 123, 122, 117, 122, 127, 124, 128, 138, 129, 127, 116, 114, 140, 127, 132, 133, 135, 128, 127, 130, 119, 121, 126, 137, 125, 123, 115, 120, 112, 119, 127, 110, 132, 130, 133, 134, 126, 126, 136, 125, 116, 117, 118, 115, 114, 128, 113, 127, 120, 113, 120, 117, 127, 118, 137, 125, 143, 118, 139, 131, 141, 130, 124, 106, 111, 123, 109, 116, 113, 133, 133, 114, 116, 130, 124, 117, 121, 117, 139, 117, 132, 123, 122, 111, 115, 128, 111, 130, 137, 119, 118, 125, 113, 112, 119, 129, 118, 130, 141, 117, 145, 132, 115, 129, 124, 125, 143, 119, 141, 122, 101, 118, 123, 147, 134, 111, 108, 123, 117, 126, 133, 123, 135, 118, 148, 127, 116, 128, 119, 109, 117, 113, 124, 110, 146, 151, 103, 123, 116, 134, 124, 126, 129, 143, 111, 102, 131, 149, 136, 128, 152, 133, 128, 117, 128, 136, 136, 128, 111, 147, 136, 113, 113, 128, 120, 118, 108, 138, 119, 130, 122, 121, 127, 126, 139, 134, 138, 115, 109, 121, 128, 128, 127, 125, 122, 112, 130, 118, 121, 126, 122, 112, 146, 100, 132, 121, 129, 121, 145, 108, 141, 123, 121, 132, 142, 120, 118, 105, 114, 113, 125, 111, 123, 119, 113, 131, 117, 106, 125, 102, 125, 119, 143, 120, 111, 130, 121, 135, 122, 131, 115, 127, 120, 131, 115, 118, 132, 136, 132, 114, 120, 125, 129, 116, 131, 126, 123, 140, 124, 137, 127, 112, 122, 132, 129, 104, 125, 132, 129, 124, 123, 105, 138, 130, 134, 131, 133, 132, 121, 127, 117, 113, 110, 107, 129, 115, 113, 124, 152, 117, 128, 107, 103, 120, 123, 132, 113, 115, 122, 114, 121, 126, 130, 124, 132, 111, 128, 122, 141, 135, 125, 139, 126, 128, 117, 126, 109, 142, 137, 129, 114, 139, 116, 124, 124, 129, 128, 127, 117, 129, 114, 118, 123, 126, 126, 123, 125, 124, 133, 128, 133, 120, 140, 123, 132, 122, 144, 123, 114, 135, 134, 127, 129, 124, 117, 118, 133, 123, 127, 148, 110, 135, 136, 119, 136, 125, 118, 120, 120, 127, 144, 133, 113, 122, 131, 144, 126, 137, 127, 111, 141, 127, 156, 123, 119, 126, 133, 128, 125, 129, 125, 130, 108, 126, 130, 116, 134, 129, 118, 116, 127, 133, 132, 121, 124, 127, 115, 128, 146, 110, 119, 123, 118, 126, 138, 137, 117, 144, 116, 128, 137, 119, 134, 113, 125, 119, 129, 132, 122, 141, 118, 129, 135, 120, 136, 134, 134, 121, 123, 104, 114, 126, 131, 104, 137, 134, 114, 105, 113, 124, 137, 125, 126, 134, 132, 108, 128, 123, 144, 143, 128, 105, 138, 133, 135, 134, 132, 102, 113, 138, 146, 121, 117, 143, 109, 97, 131, 114, 122, 128, 148, 127, 117, 127, 137, 125, 138, 141, 135, 118, 127, 138, 122, 109, 136, 125, 124, 116, 112, 129, 121, 127, 138, 122, 139, 123, 137, 141, 132, 108, 129, 112, 125, 121, 140, 122, 124, 113, 120, 114, 133, 119, 113, 108, 128, 128, 134, 136, 139, 116, 99, 131, 130, 124, 125, 109, 123, 117, 114, 139, 145, 123, 118, 117, 128, 121, 117, 146, 128, 126, 115, 131, 109, 129, 127, 113, 114, 124, 116, 123, 142, 127, 134, 113, 119, 144, 133, 140, 131, 115, 108, 131, 116, 114, 120, 113, 123, 132, 137, 130, 124, 137, 126, 130, 122, 137, 131, 114, 141, 132, 136, 102, 116, 123, 118, 142, 127, 131, 131, 127, 132, 130, 114, 118, 141, 132, 109, 142, 133, 136, 119, 126, 118, 109, 132, 123, 119, 133, 120, 130, 130, 137, 121, 140, 143, 122, 139, 123, 124, 131, 123, 123, 107, 147, 122, 121, 128, 128, 144, 115, 138, 121, 124, 131, 127, 126, 126, 125, 126, 127, 112, 119, 121, 130, 109, 138, 131, 122, 132, 135, 120, 109, 118, 124, 116, 119, 140, 118, 142, 133, 120, 119, 129, 116, 119, 121, 142, 122, 137, 123, 119, 128, 152, 138, 141, 126, 136, 132, 128, 135, 110, 126, 117, 143, 128, 118, 136, 134, 139, 131, 119, 118, 150, 112, 140, 134, 108, 137, 121, 110, 119, 120, 131, 119, 135, 108, 121, 131, 139, 131, 135, 123, 130, 117, 106, 118, 127, 142, 115, 118, 130, 124, 112, 114, 127, 109, 128, 122, 121, 111, 143, 117, 130, 131, 135, 132, 145, 120, 142, 111, 126, 129, 118, 111, 146, 116, 114, 136, 138, 124, 134, 135, 130, 124, 122, 124, 133, 143, 143, 126, 127, 134, 126, 125, 135, 135, 119, 162, 129, 107, 123, 142, 141, 126, 129, 129, 123, 131, 151, 126, 134, 109, 128, 125, 96, 111, 127, 159, 124, 107, 122, 127, 106, 142, 139, 136, 115, 116, 107, 112, 115, 122, 139, 111, 133, 127, 117, 123, 149, 114, 131, 135, 116, 137, 136, 123, 115, 120, 125, 126, 115, 132, 117, 125, 120, 131, 110, 116, 111, 134, 114, 128, 114, 123, 130, 120, 124, 130, 123, 146, 143, 136, 121, 123, 127, 120, 135, 112, 127, 126, 127, 111, 137, 114, 129, 139, 130, 140, 131, 117, 148, 136, 124, 121, 129, 123, 140, 107, 136, 142, 130, 114, 126, 131, 137, 119, 128, 124, 128, 126, 120, 130, 131, 112, 128, 120, 129, 134, 126, 109, 125, 114, 137, 124, 128, 138, 130, 125, 133, 149, 118, 123, 143, 134, 136, 121, 133, 130, 126, 117, 124, 135, 134, 123, 127, 139, 118, 98, 113, 101, 114, 147, 143, 143, 121, 127, 107, 133, 130, 108, 119, 117, 124, 123, 136, 133, 130, 119, 120, 117, 134, 133, 145, 133, 128, 125, 139, 134, 127, 124, 119, 120, 112, 133, 121, 139, 142, 121, 107, 99, 118, 113, 132, 123, 119, 119, 114, 155, 117, 117, 133, 110, 129, 137, 126, 121, 130, 113, 118, 118, 137, 113, 134, 132, 108, 138, 118, 138, 103, 142, 112, 125, 110, 132, 117, 107, 134, 106, 132, 145, 118, 129, 135, 129, 129, 125, 114, 131, 128, 126, 126, 114, 130, 125, 131, 111, 122, 111, 139, 134, 124, 122, 139, 143, 114, 118, 121, 124, 148, 142, 121, 111, 131, 142, 127, 135, 122, 122, 131, 155, 114, 124, 123, 123, 118, 150, 111, 139, 136, 129, 120, 140, 127, 104, 141, 130, 122, 136, 104, 140, 119, 114, 117, 142, 123, 124, 139, 135, 140, 115, 131, 113, 124, 107, 135, 134, 125, 140, 133, 136, 97, 126, 129, 109, 141, 113, 150, 113, 122, 121, 115, 129, 123, 114, 133, 143, 110, 125, 129, 126, 112, 115, 135, 128, 109, 115, 128, 127, 121, 139, 131, 124, 120, 124, 128, 115, 125, 118, 132, 128, 124, 134, 115, 128, 135, 146, 123, 121, 123, 115, 153, 131, 116, 127, 105, 133, 105, 119, 125, 107, 94, 134, 130, 125, 129, 113, 132, 118, 134, 116, 123, 139, 135, 142, 136, 137, 123, 112, 123, 144, 147, 124, 123, 114, 125, 107, 118, 148, 110, 118, 118, 127, 132, 114, 135, 113, 129, 129, 120, 144, 123, 134, 113, 118, 119, 125, 133, 130, 140, 139, 120, 131, 133, 131, 119, 111, 147, 116, 123, 108, 125, 121, 124, 133, 148, 124, 113, 134, 134, 133, 122, 134, 117, 107, 119, 133, 131, 114, 125, 103, 127, 130, 142, 147, 128, 129, 110, 109, 126, 116, 130, 127, 119, 120, 146, 135, 139, 117, 116, 128, 127, 126, 97, 121, 137, 119, 118, 114, 117, 123, 144, 125, 131, 127, 111, 124, 138, 125, 134, 112, 132, 139, 125, 129, 121, 126, 112, 123, 126, 130, 133, 135, 124, 108, 123, 118, 117, 126, 134, 130, 125, 129, 139, 115, 104, 115, 117, 96, 139, 125, 133, 121, 131, 120, 133, 140, 134, 117, 119, 120, 128, 129, 127, 121, 124, 98, 124, 132, 124, 125, 134, 104, 113, 125, 126, 133, 137, 130, 134, 130, 112, 120, 118, 117, 132, 136, 150, 138, 128, 134, 106, 123, 130, 136, 94, 155, 119, 110, 139, 129, 129, 115, 136, 118, 121, 135, 140, 137, 112, 120, 142, 133, 155, 117, 134, 128, 120, 102, 120, 127, 117, 126, 141, 113, 110, 142, 130, 131, 122, 130, 144, 154, 129, 131, 130, 139, 132, 130, 126, 121, 122, 113, 115, 109, 137, 129, 132, 121, 114, 135, 123, 125, 134, 128, 132, 120, 129, 127, 124, 110, 124, 112, 122, 134, 133, 119, 111, 114, 135, 142, 134, 134, 119, 140, 122, 134, 130, 113, 108, 129, 124, 138, 99, 108, 134, 122, 114, 121, 133, 115, 116, 135, 124, 118, 119, 114, 120, 116, 138, 141, 127, 114, 120, 124, 137, 104, 141, 133, 129, 135, 119, 122, 132, 124, 137, 132, 130, 144, 131, 118, 114, 124, 118, 134, 125, 144, 138, 128, 131, 124, 131, 123, 136, 118, 134, 128, 135, 124, 125, 127, 151, 121, 111, 120, 124, 122, 132, 133, 124, 117, 139, 112, 121, 135, 133, 124, 144, 129, 112, 136, 131, 111, 135, 128, 108, 117, 139, 129, 128, 118, 108, 123, 137, 132, 122, 135, 135, 111, 120, 129, 103, 138, 126, 136, 113, 119, 145, 139, 115, 132, 127, 122, 95, 119, 125, 128, 115, 127, 152, 127, 117, 138, 118, 122, 142, 116, 124, 138, 121, 138, 124, 133, 141, 131, 126, 125, 125, 129, 125, 136, 125, 120, 129, 130, 106, 123, 107, 123, 135, 108, 130, 107, 124, 120, 134, 116, 130, 119, 131, 129, 131, 124, 105, 135, 139, 122, 151, 114, 147, 121, 121, 149, 145, 126, 113, 134, 119, 124, 110, 138, 107, 114, 108, 115, 133, 138, 134, 131, 124, 120, 120, 136, 121, 134, 137, 130, 127, 142, 109, 130, 109, 116, 123, 136, 129, 132, 100, 113, 143, 116, 114, 128, 137, 132, 125, 117, 127, 115, 136, 138, 144, 132, 133, 135, 108, 109, 122, 152, 144, 115, 119, 131, 118, 145, 134, 121, 128, 110, 111, 130, 121, 111, 109, 115, 132, 105, 133, 125, 115, 118, 123, 118, 115, 122, 121, 130, 152, 129, 137, 117, 127, 119, 113, 147, 122, 120, 122, 143, 131, 121, 132, 136, 117, 128, 123, 124, 133, 133, 145, 136, 136, 113, 141, 118, 127, 123, 125, 126, 122, 127, 126, 131, 125, 124, 121, 134, 137, 115, 105, 161, 122, 133, 122, 140, 125, 137, 117, 110, 135, 139, 129, 130, 119, 124, 117, 124, 133, 139, 123, 112, 139, 127, 140, 129, 119, 131, 128, 132, 112, 145, 121, 123, 122, 104, 125, 107, 118, 118, 127, 126, 126, 142, 112, 121, 130, 150, 140, 143, 124, 105, 120, 120, 133, 110, 119, 127, 119, 135, 118, 121, 138, 116, 138, 132, 120, 143, 138, 111, 137, 116, 143, 119, 128, 118, 122, 118, 129, 137, 124, 122, 118, 125, 138, 123, 135, 115, 135, 118, 132, 115, 138, 126, 130, 116, 126, 116, 116, 144, 107, 122, 98, 138, 119, 125, 122, 147, 116, 134, 132, 118, 111, 129, 131, 121, 128, 126, 129, 124, 128, 114, 112, 125, 138, 112, 104, 128, 146, 127, 129, 131, 98, 132, 110, 128, 132, 102, 129, 119, 124, 129, 140, 115, 124, 113, 132, 129, 102, 140, 124, 125, 133, 112, 132, 134, 110, 124, 130, 131, 114, 127, 135, 122, 129, 116, 129, 141, 109, 119, 132, 125, 117, 128, 109, 134, 130, 131, 120, 123, 124, 113, 136, 132, 118, 132, 134, 136, 126, 111, 135, 145, 117, 134, 141, 132, 133, 118, 124, 141, 130, 138, 134, 115, 117, 122, 123, 133, 119, 113, 127, 124, 110, 128, 113, 138, 107, 119, 127, 113, 116, 131, 126, 92, 126, 115, 142, 128, 124, 132, 119, 124, 115, 117, 148, 118, 123, 102, 122, 134, 122, 126, 131, 130, 99, 144, 121, 115, 124, 122, 128, 122, 141, 123, 145, 128, 128, 136, 116, 113, 125, 118, 127, 119, 132, 128, 132, 124, 134, 102, 102, 138, 131, 123, 111, 108, 128, 128, 128, 129, 127, 117, 127, 127, 134, 121, 107, 132, 130, 140, 135, 119, 98, 122, 112, 142, 114, 127, 122, 115, 124, 122, 131, 121, 112, 127, 139, 119, 116, 125, 131, 122, 127, 116, 128, 116, 122, 132, 138, 113, 128, 120, 129, 118, 128, 141, 119, 126, 124, 133, 108, 131, 129, 134, 124, 136, 121, 132, 138, 107, 131, 135, 119, 126, 127, 135, 119, 131, 130, 130, 135, 112, 112, 136, 153, 132, 123, 110, 106, 120, 127, 123, 137, 139, 139, 111, 114, 113, 118, 134, 131, 136, 123, 131, 136, 121, 107, 140, 131, 126, 122, 115, 134, 119, 131, 101, 124, 123, 123, 138, 131, 136, 129, 114, 135, 130, 125, 142, 129, 118, 128, 146, 105, 124, 127, 118, 134, 125, 123, 122, 140, 128, 134, 121, 130, 137, 127, 149, 133, 133, 109, 126, 139, 118, 135, 125, 120, 105, 128, 127, 125, 114, 95, 136, 135, 123, 131, 139, 117, 118, 139, 121, 140, 131, 137, 121, 122, 107, 132, 121, 127, 115, 111, 124, 122, 115, 132, 122, 116, 145, 126, 126, 116, 130, 119, 115, 127, 140, 131, 117, 131, 138, 120, 117, 118, 130, 128, 115, 121, 149, 117, 119, 131, 136, 130, 125, 116, 109, 125, 103, 128, 129, 127, 136, 145, 122, 119, 119, 126, 135, 127, 116, 116, 120, 130, 109, 120, 127, 118, 122, 120, 111, 133, 122, 111, 143, 113, 130, 118, 124, 124, 121, 123, 130, 125, 132, 122, 123, 119, 120, 127, 121, 119, 120, 145, 143, 131, 107, 107, 117, 133, 138, 129, 117, 113, 109, 135, 123, 125, 122, 127, 123, 111, 139, 122, 119, 120, 130, 135, 130, 130, 133, 109, 133, 125, 132, 123, 124, 139, 125, 139, 116, 128, 132, 138, 132, 127, 122, 114, 143, 116, 126, 130, 132, 122, 105, 119, 129, 134, 126, 152, 133, 115, 121, 123, 137, 124, 129, 137, 129, 154, 114, 132, 134, 124, 122, 134, 124, 118, 114, 127, 121, 126, 126, 131, 114, 112, 98, 125, 118, 114, 111, 123, 129, 120, 140, 132, 132, 126, 138, 125, 108, 133, 128, 124, 129, 127, 100, 115, 137, 111, 126, 143, 111, 127, 107, 124, 123, 118, 120, 146, 129, 127, 142, 122, 124, 121, 128, 118, 144, 133, 115, 130, 133, 123, 120, 126, 131, 124, 119, 112, 130, 131, 138, 121, 121, 116, 140, 125, 129, 142, 126, 123, 131, 128, 127, 126, 146, 122, 122, 125, 124, 130, 123, 144, 124, 124, 132, 117, 115, 121, 112, 119, 131, 127, 113, 132, 111, 136, 117, 121, 127, 141, 123, 126, 131, 122, 130, 124, 129, 129, 119, 142, 121, 137, 122, 120, 89, 129, 144, 136, 145, 129, 134, 119, 119, 114, 141, 130, 115, 117, 133, 121, 125, 111, 115, 125, 135, 129, 127, 130, 130, 119, 111, 132, 136, 130, 130, 135, 126, 131, 141, 124, 138, 123, 119, 121, 115, 148, 130, 128, 131, 122, 145, 119, 127, 118, 136, 136, 136, 120, 122, 125, 102, 122, 126, 126, 119, 132, 126, 123, 114, 111, 107, 134, 140, 140, 113, 116, 125, 115, 132, 134, 122, 122, 128, 137, 135, 115, 120, 115, 123, 118, 142, 126, 119, 138, 128, 124, 128, 118, 119, 129, 126, 107, 119, 122, 134, 113, 124, 125, 148, 126, 114, 137, 120, 110, 134, 126, 113, 113, 125, 116, 120, 119, 125, 110, 123, 132, 125, 133, 115, 121, 125, 133, 130, 136, 125, 125, 119, 123, 127, 125, 128, 137, 154, 126, 125, 123, 119, 128, 118, 109, 128, 126, 113, 131, 99, 136, 108, 139, 121, 132, 135, 119, 130, 135, 111, 109, 123, 112, 115, 108, 134, 124, 131, 124, 136, 138, 126, 124, 133, 115, 122, 142, 126, 135, 130, 113, 131, 119, 140, 122, 123, 125, 140, 127, 119, 115, 134, 129, 138, 124, 123, 121, 129, 122, 131, 136, 132, 112, 124, 120, 119, 129, 135, 122, 145, 126, 134, 136, 126, 120, 130, 121, 123, 113, 126, 113, 112, 126, 122, 131, 145, 125, 126, 127, 144, 125, 117, 122, 117, 126, 146, 110, 133, 117, 129, 154, 131, 119, 126, 122, 124, 121, 117, 120, 138, 131, 128, 130, 131, 102, 129, 117, 114, 145, 129, 118, 124, 111, 132, 136, 142, 117, 138, 132, 114, 108, 120, 139, 128, 115, 126, 125, 129, 148, 133, 126, 130, 113, 140, 140, 125, 122, 142, 146, 120, 127, 130, 119, 123, 112, 134, 141, 113, 134, 111, 135, 127, 110, 134, 120, 112, 132, 126, 117, 109, 118, 136, 127, 109, 110, 111, 125, 109, 124, 107, 127, 129, 119, 138, 130, 122, 131, 119, 130, 133, 118, 110, 130, 131, 123, 118, 130, 123, 130, 120, 128, 104, 133, 131, 125, 111, 122, 112, 133, 119, 123, 125, 139, 122, 128, 139, 135, 129, 129, 120, 110, 116, 129, 114, 126, 125, 118, 134, 128, 133, 136, 115, 135, 123, 129, 120, 130, 126, 132, 136, 116, 133, 123, 115, 125, 123, 137, 124, 131, 127, 126, 119, 143, 141, 126, 111, 118, 149, 122, 123, 124, 131, 116, 137, 115, 117, 125, 118, 124, 123, 130, 125, 129, 129, 120, 128, 125, 128, 121, 130, 124, 143, 130, 123, 127, 121, 127, 117, 130, 128, 113, 115, 131, 128, 148, 120, 137, 117, 127, 118, 132, 121, 117, 125, 127, 117, 142, 131, 123, 111, 134, 126, 127, 122, 114, 127, 128, 109, 121, 115, 116, 129, 111, 129, 128, 114, 139, 124, 123, 118, 141, 133, 137, 120, 131, 132, 129, 111, 113, 110, 137, 116, 129, 117, 125, 187, 107, 130, 148, 137, 116, 137, 120, 125, 117, 117, 122, 108, 129, 119, 123, 122, 126, 125, 122, 121, 131, 113, 128, 122, 117, 132, 115, 133, 117, 114, 132, 132, 128, 134, 132, 132, 130, 123, 118, 120, 126, 122, 135, 129, 120, 110, 141, 135, 125, 125, 125, 136, 119, 119, 122, 113, 118, 124, 128, 131, 122, 138, 132, 116, 118, 108, 124, 131, 130, 130, 119, 113, 115, 122, 144, 126, 125, 133, 125, 140, 128, 121, 120, 133, 130, 133, 120, 126, 113, 131, 143, 128, 131, 133, 116, 131, 130, 132, 125, 121, 125, 135, 113, 135, 125, 124, 122, 134, 130, 135, 132, 139, 136, 119, 138, 125, 120, 109, 119, 116, 125, 130, 118, 139, 124, 134, 111, 113, 142, 115, 129, 125, 132, 135, 138, 119, 151, 121, 133, 112, 126, 124, 124, 123, 123, 128, 116, 128, 129, 134, 135, 131, 132, 132, 129, 124, 127, 134, 120, 123, 125, 119, 123, 116, 127, 132, 122, 130, 133, 127, 135, 133, 110, 132, 123, 129, 119, 122, 123, 100, 121, 125, 118, 139, 119, 122, 121, 113, 126, 115, 134, 128, 127, 124, 111, 136, 128, 118, 145, 138, 130, 140, 122, 94, 131, 134, 108, 120, 133, 130, 153, 123, 127, 132, 134, 111, 109, 113, 132, 118, 130, 118, 110, 104, 144, 135, 126, 126, 95, 132, 120, 127, 140, 105, 124, 147, 115, 130, 123, 103, 129, 113, 135, 121, 142, 118, 143, 151, 119, 139, 148, 118, 121, 110, 123, 143, 126, 130, 138, 99, 135, 122, 132, 123, 138, 121, 112, 107, 105, 124, 135, 116, 111, 127, 102, 150, 120, 135, 137, 130, 114, 151, 141, 139, 114, 124, 115, 133, 120, 137, 96, 113, 125, 120, 125, 111, 105, 118, 115, 115, 123, 124, 120, 126, 143, 126, 140, 122, 122, 132, 132, 120, 123, 143, 133, 130, 121, 135, 107, 150, 128, 110, 122, 125, 137, 122, 137, 142, 112, 111, 125, 132, 120, 128, 125, 123, 118, 140, 119, 139, 102, 132, 124, 134, 136, 129, 134, 128, 140, 134, 110, 128, 130, 127, 126, 146, 121, 117, 137, 124, 131, 116, 118, 132, 124, 123, 122, 128, 109, 125, 115, 129, 126, 140, 121, 125, 136, 132, 127, 116, 122, 133, 139, 104, 128, 137, 128, 123, 116, 122, 146, 120, 127, 139, 141, 127, 131, 144, 123, 138, 128, 137, 113, 132, 120, 122, 128, 113, 119, 142, 121, 128, 146, 125, 126, 132, 123, 125, 129, 136, 132, 124, 98, 129, 131, 131, 122, 134, 128, 108, 154, 115, 122, 131, 145, 137, 118, 128, 143, 130, 125, 121, 122, 124, 120, 145, 120, 134, 112, 122, 133, 137, 116, 138, 131, 133, 128, 126, 127, 137, 125, 114, 113, 117, 111, 133, 119, 149, 118, 122, 131, 139, 122, 124, 149, 109, 143, 120, 130, 122, 140, 118, 117, 133, 134, 124, 110, 130, 135, 114, 138, 122, 117, 111, 131, 126, 110, 135, 132, 99, 125, 129, 127, 119, 124, 132, 129, 131, 133, 122, 115, 108, 135, 130, 126, 129, 128, 131, 125, 117, 127, 112, 100, 101, 117, 130, 108, 126, 130, 147, 118, 130, 117, 118, 130, 119, 117, 120, 139, 116, 121, 110, 128, 122, 128, 122, 140, 145, 122, 135, 125, 103, 123, 111, 140, 124, 106, 127, 115, 121, 134, 119, 122, 129, 121, 97, 100, 111, 116, 128, 121, 134, 119, 129, 113, 125, 115, 126, 114, 126, 114, 125, 148, 133, 128, 96, 132, 133, 113, 110, 123, 131, 135, 113, 140, 124, 130, 134, 129, 135, 130, 130, 137, 123, 113, 146, 125, 111, 112, 133, 112, 138, 110, 142, 123, 130, 127, 120, 123, 134, 136, 117, 129, 108, 121, 130, 137, 110, 117, 130, 141, 113, 135, 128, 123, 114, 109, 149, 121, 113, 118, 124, 132, 127, 125, 122, 109, 129, 137, 114, 152, 112, 101, 121, 124, 136, 128, 140, 110, 127, 143, 131, 123, 121, 135, 145, 144, 129, 136, 118, 120, 126, 100, 130, 123, 104, 121, 125, 120, 129, 122, 100, 119, 114, 128, 126, 136, 118, 121, 127, 109, 126, 134, 121, 124, 124, 123, 130, 95, 125, 100, 119, 135, 121, 122, 134, 113, 158, 114, 114, 123, 144, 121, 118, 111, 121, 129, 138, 121, 123, 132, 125, 105, 110, 142, 126, 127, 110, 131, 132, 127, 136, 136, 120, 133, 129, 107, 107, 136, 107, 130, 143, 129, 140, 127, 118, 120, 117, 131, 126, 118, 105, 133, 124, 130, 127, 134, 127, 126, 126, 104, 117, 118, 127, 141, 127, 118, 119, 127, 132, 122, 127, 138, 145, 107, 118, 121, 117, 111, 115, 139, 131, 125, 116, 140, 127, 108, 120, 123, 124, 127, 129, 120, 132, 123, 126, 116, 126, 131, 131, 110, 98, 125, 123, 112, 105, 121, 128, 133, 137, 130, 125, 113, 156, 140, 123, 112, 129, 129, 113, 128, 116, 124, 130, 114, 134, 137, 142, 119, 127, 125, 133, 127, 133, 122, 142, 127, 121, 138, 136, 120, 108, 140, 130, 141, 114, 122, 144, 130, 131, 142, 116, 110, 115, 121, 120, 109, 139, 142, 116, 131, 103, 127, 112, 96, 126, 120, 115, 132, 125, 132, 134, 133, 141, 126, 120, 125, 132, 115, 123, 106, 108, 117, 137, 104, 117, 123, 134, 126, 139, 136, 139, 129, 125, 132, 139, 136, 125, 144, 129, 124, 127, 132, 132, 136, 118, 120, 123, 129, 121, 121, 121, 123, 137, 120, 121, 97, 132, 141, 122, 127, 122, 130, 129, 119, 114, 135, 120, 114, 123, 118, 122, 135, 118, 121, 124, 121, 133, 122, 113, 121, 161, 113, 133, 137, 131, 120, 133, 135, 129, 114, 114, 112, 124, 131, 130, 121, 104, 130, 129, 118, 121, 120, 116, 122, 126, 97, 128, 121, 110, 132, 130, 122, 137, 148, 115, 118, 121, 121, 139, 102, 140, 114, 122, 112, 132, 120, 155, 121, 140, 129, 124, 119, 122, 142, 112, 136, 133, 147, 128, 132, 134, 127, 91, 127, 118, 124, 137, 107, 125, 132, 127, 123, 124, 136, 100, 128, 124, 132, 119, 130, 138, 129, 138, 114, 128, 111, 156, 123, 117, 131, 149, 142, 98, 118, 128, 114, 113, 124, 150, 124, 118, 115, 122, 129, 119, 111, 117, 111, 115, 131, 117, 128, 124, 114, 111, 129, 130, 100, 123, 123, 120, 133, 109, 115, 128, 101, 145, 125, 132, 117, 109, 114, 123, 153, 113, 137, 118, 128, 146, 126, 141, 121, 121, 153, 115, 146, 116, 118, 139, 128, 140, 130, 145, 134, 115, 136, 142, 119, 106, 139, 114, 141, 143, 116, 121, 126, 122, 123, 131, 115, 106, 116, 132, 119, 113, 108, 132, 136, 135, 133, 130, 111, 135, 134, 110, 138, 111, 125, 122, 126, 127, 116, 104, 135, 142, 123, 139, 126, 148, 125, 121, 124, 130, 133, 122, 134, 130, 128, 140, 116, 125, 121, 116, 113, 109, 109, 109, 133, 99, 126, 142, 135, 139, 110, 129, 137, 133, 131, 128, 118, 98, 108, 140, 119, 119, 122, 131, 126, 132, 107, 122, 113, 121, 121, 115, 114, 108, 109, 114, 117, 135, 132, 128, 127, 129, 106, 124, 120, 103, 132, 117, 119, 111, 143, 127, 131, 118, 120, 123, 133, 123, 105, 112, 127, 131, 139, 139, 121, 126, 114, 127, 134, 135, 127, 125, 133, 143, 127, 107, 129, 116, 138, 130, 128, 129, 129, 130, 124, 134, 126, 128, 127, 126, 140, 110, 131, 126, 125, 135, 132, 131, 127, 127, 126, 120, 133, 134, 138, 136, 126, 124, 125, 141, 123, 136, 130, 124, 125, 127, 132, 102, 142, 106, 122, 118, 105, 132, 98, 126, 127, 120, 128, 127, 115, 122, 136, 119, 133, 108, 119, 152, 128, 127, 133, 112, 139, 125, 126, 135, 125, 132, 119, 139, 109, 148, 127, 126, 117, 111, 128, 132, 102, 123, 115, 122, 135, 125, 120, 128, 126, 135, 126, 139, 124, 112, 127, 138, 139, 138, 129, 141, 164, 115, 118, 114, 133, 127, 127, 113, 130, 142, 141, 127, 120, 131, 136, 139, 141, 124, 107, 114, 131, 126, 124, 116, 122, 135, 123, 126, 132, 122, 134, 125, 131, 116, 122, 124, 133, 122, 125, 138, 132, 111, 121, 125, 150, 125, 116, 126, 127, 121, 121, 131, 110, 94, 136, 130, 82, 116, 107, 103, 120, 121, 123, 132, 107, 125, 147, 123, 121, 117, 116, 120, 117, 119, 106, 130, 137, 119, 98, 120, 150, 126, 114, 131, 128, 129, 124, 137, 130, 119, 116, 120, 128, 128, 132, 122, 132, 134, 129, 134, 124, 127, 116, 114, 112, 108, 120, 108, 129, 125, 108, 120, 126, 134, 138, 143, 114, 132, 115, 139, 144, 130, 104, 115, 125, 129, 118, 122, 110, 134, 122, 116, 126, 104, 114, 138, 114, 126, 116, 125, 140, 121, 135, 133, 131, 127, 144, 124, 113, 128, 120, 121, 106, 137, 119, 117, 114, 129, 131, 137, 110, 127, 116, 105, 121, 144, 132, 127, 137, 112, 140, 117, 134, 122, 130, 122, 131, 118, 127, 125, 140, 135, 100, 121, 136, 135, 107, 150, 125, 118, 120, 103, 117, 126, 137, 132, 116, 126, 134, 109, 125, 123, 125, 125, 129, 135, 141, 132, 111, 124, 122, 128, 123, 138, 125, 135, 130, 139, 124, 142, 120, 113, 130, 113, 121, 108, 106, 111, 122, 142, 116, 114, 108, 116, 112, 129, 115, 125, 128, 125, 137, 133, 120, 122, 110, 117, 93, 118, 125, 140, 116, 127, 118, 121, 138, 146, 124, 125, 121, 129, 124, 115, 135, 119, 135, 129, 132, 117, 126, 122, 130, 125, 130, 126, 121, 131, 129, 108, 116, 170, 122, 137, 145, 128, 104, 111, 129, 142, 114, 124, 139, 106, 119, 116, 150, 130, 122, 118, 143, 109, 111, 131, 140, 133, 117, 131, 121, 125, 130, 130, 133, 139, 110, 123, 135, 119, 124, 131, 123, 116, 137, 141, 121, 136, 136, 132, 139, 122, 128, 107, 140, 122, 106, 140, 126, 130, 126, 120, 117, 131, 102, 120, 128, 128, 128, 116, 126, 126, 134, 113, 130, 127, 130, 126, 124, 118, 144, 140, 149, 145, 134, 122, 117, 137, 116, 140, 142, 135, 126, 132, 108, 132, 114, 126, 119, 127, 105, 130, 123, 140, 135, 117, 128, 125, 129, 121, 132, 123, 141, 141, 135, 131, 130, 124, 111, 123, 120, 131, 121, 129, 116, 130, 117, 121, 130, 115, 131, 140, 141, 108, 131, 133, 122, 114, 114, 121, 125, 131, 126, 122, 115, 140, 120, 134, 116, 118, 105, 116, 103, 135, 145, 126, 120, 131, 121, 126, 133, 131, 118, 141, 135, 117, 134, 106, 146, 122, 116, 142, 136, 111, 122, 136, 124, 114, 130, 119, 124, 100, 119, 126, 112, 118, 91, 130, 114, 125, 119, 117, 144, 114, 124, 112, 112, 134, 111, 129, 108, 146, 129, 103, 108, 129, 130, 123, 101, 136, 127, 113, 109, 118, 123, 109, 117, 133, 143, 101, 127, 136, 127, 102, 128, 131, 126, 127, 147, 124, 120, 138, 91, 119, 109, 116, 133, 134, 138, 142, 119, 133, 120, 147, 136, 119, 114, 130, 112, 130, 138, 118, 125, 129, 131, 118, 122, 121, 130, 103, 118, 129, 130, 123, 124, 139, 105, 116, 125, 121, 132, 122, 129, 127, 109, 115, 122, 133, 86, 125, 124, 127, 122, 112, 110, 136, 115, 105, 123, 128, 155, 133, 132, 131, 140, 118, 119, 124, 127, 121, 128, 109, 129, 124, 126, 130, 139, 132, 126, 126, 140, 124, 123, 146, 127, 127, 125, 130, 122, 127, 138, 135, 122, 117, 135, 125, 138, 122, 111, 133, 136, 119, 121, 109, 111, 122, 132, 105, 142, 140, 122, 129, 131, 108, 144, 130, 135, 119, 128, 134, 119, 121, 126, 109, 127, 107, 138, 128, 124, 124, 134, 129, 126, 123, 153, 115, 132, 136, 143, 131, 129, 123, 118, 118, 116, 118, 122, 127, 112, 128, 126, 132, 126, 117, 124, 126, 104, 114, 120, 154, 133, 125, 125, 110, 121, 123, 150, 129, 107, 143, 117, 129, 123, 134, 144, 141, 134, 123, 114, 117, 137, 134, 131, 127, 108, 129, 145, 136, 139, 120, 142, 120, 121, 126, 124, 110, 143, 126, 102, 126, 119, 122, 108, 126, 141, 137, 121, 142, 124, 113, 126, 121, 130, 107, 122, 130, 118, 127, 111, 121, 113, 129, 122, 130, 115, 139, 145, 134, 121, 117, 122, 110, 120, 114, 115, 132, 129, 134, 119, 104, 125, 122, 124, 145, 137, 119, 131, 128, 115, 110, 134, 112, 131, 96, 127, 131, 121, 119, 109, 124, 136, 137, 118, 118, 126, 124, 139, 129, 120, 127, 122, 124, 130, 126, 125, 131, 128, 118, 120, 137, 116, 136, 113, 124, 102, 112, 141, 145, 120, 129, 115, 116, 117, 129, 122, 130, 127, 138, 117, 109, 106, 115, 134, 111, 128, 125, 124, 120, 116, 148, 128, 133, 130, 132, 139, 118, 128, 112, 154, 136, 145, 135, 116, 131, 124, 132, 136, 124, 111, 110, 122, 146, 129, 119, 136, 128, 120, 128, 126, 123, 136, 142, 102, 139, 126, 111, 136, 117, 130, 136, 111, 120, 128, 116, 123, 128, 118, 117, 116, 143, 110, 110, 164, 132, 118, 119, 101, 118, 128, 126, 125, 116, 94, 121, 144, 123, 131, 122, 145, 127, 113, 135, 119, 127, 137, 135, 113, 115, 125, 121, 123, 129, 112, 119, 114, 114, 116, 111, 132, 119, 133, 125, 131, 126, 121, 123, 131, 113, 105, 122, 133, 115, 105, 125, 130, 132, 137, 123, 137, 140, 123, 118, 120, 120, 131, 110, 141, 116, 118, 120, 126, 121, 137, 108, 124, 123, 130, 141, 126, 125, 123, 131, 116, 147, 132, 133, 127, 127, 123, 131, 120, 119, 131, 121, 127, 113, 117, 153, 122, 128, 116, 127, 139, 142, 121, 118, 120, 127, 148, 119, 125, 115, 118, 135, 127, 126, 119, 143, 114, 122, 111, 99, 142, 123, 138, 136, 119, 124, 122, 131, 117, 126, 123, 127, 117, 118, 146, 139, 119, 122, 121, 104, 123, 131, 117, 108, 124, 132, 127, 136, 129, 123, 125, 133, 119, 134, 123, 124, 124, 113, 136, 140, 118, 127, 119, 112, 141, 150, 139, 123, 126, 118, 125, 115, 128, 133, 116, 129, 120, 120, 137, 119, 122, 136, 122, 118, 120, 133, 123, 135, 133, 107, 124, 135, 131, 122, 121, 105, 114, 131, 124, 109, 114, 131, 130, 115, 127, 111, 121, 144, 129, 125, 124, 119, 130, 125, 132, 144, 121, 121, 130, 119, 127, 119, 121, 123, 125, 112, 146, 135, 125, 125, 130, 119, 122, 137, 119, 125, 140, 132, 125, 150, 154, 114, 134, 127, 125, 139, 122, 106, 110, 129, 128, 130, 125, 122, 129, 123, 127, 125, 128, 114, 121, 114, 122, 120, 149, 119, 111, 122, 130, 126, 123, 121, 114, 113, 135, 110, 118, 100, 122, 125, 132, 136, 134, 126, 114, 128, 132, 137, 127, 112, 124, 136, 121, 129, 122, 129, 132, 147, 127, 139, 131, 144, 130, 107, 121, 134, 135, 129, 116, 124, 124, 131, 118, 138, 122, 124, 142, 128, 118, 115, 136, 131, 133, 129, 116, 134, 145, 120, 129, 111, 127, 129, 129, 111, 136, 106, 116, 123, 130, 144, 131, 117, 142, 119, 125, 132, 146, 121, 143, 128, 128, 125, 124, 128, 137, 138, 127, 121, 129, 131, 133, 123, 109, 133, 118, 117, 114, 116, 115, 115, 135, 121, 114, 109, 121, 126, 129, 116, 127, 100, 120, 124, 102, 123, 112, 141, 105, 147, 130, 128, 124, 141, 117, 134, 145, 108, 110, 136, 126, 117, 130, 118, 131, 119, 119, 135, 139, 144, 125, 124, 125, 136, 129, 124, 127, 136, 122, 126, 155, 117, 130, 133, 114, 119, 116, 133, 110, 133, 126, 126, 125, 105, 125, 111, 128, 129, 150, 127, 142, 129, 131, 138, 133, 121, 127, 108, 126, 134, 126, 128, 119, 118, 136, 121, 125, 114, 120, 129, 119, 122, 114, 118, 121, 114, 114, 114, 142, 140, 128, 136, 138, 114, 124, 122, 129, 131, 129, 109, 129, 109, 123, 115, 131, 131, 124, 139, 120, 115, 131, 126, 130, 144, 147, 129, 102, 118, 149, 130, 146, 118, 108, 114, 115, 102, 119, 124, 119, 106, 127, 117, 108, 127, 146, 130, 132, 130, 124, 119, 116, 132, 124, 141, 145, 137, 143, 115, 122, 130, 122, 121, 130, 106, 113, 121, 129, 130, 121, 116, 126, 118, 128, 144, 123, 121, 115, 135, 101, 116, 142, 123, 140, 110, 132, 128, 112, 135, 129, 113, 131, 124, 137, 126, 139, 126, 129, 145, 129, 133, 139, 136, 117, 125, 126, 119, 126, 131, 130, 124, 124, 129, 129, 125, 126, 111, 134, 127, 98, 131, 128, 136, 142, 132, 125, 125, 129, 126, 120, 138, 127, 144, 137, 123, 117, 130, 143, 126, 134, 122, 129, 133, 143, 129, 131, 119, 125, 123, 113, 138, 115, 132, 125, 121, 123, 124, 107, 113, 123, 111, 142, 135, 131, 119, 119, 126, 119, 135, 138, 138, 144, 119, 128, 136, 128, 127, 118, 119, 117, 130, 121, 123, 136, 113, 123, 124, 133, 121, 149, 130, 131, 133, 114, 109, 113, 136, 132, 124, 126, 127, 125, 125, 126, 128, 137, 123, 135, 126, 142, 109, 102, 128, 125, 95, 135, 111, 123, 131, 121, 127, 130, 121, 116, 126, 136, 119, 117, 128, 119, 129, 127, 121, 126, 120, 122, 109, 116, 152, 131, 123, 111, 118, 111, 130, 119, 132, 130, 127, 117, 120, 136, 100, 121, 121, 129, 125, 121, 140, 121, 126, 111, 123, 139, 120, 104, 128, 123, 125, 110, 113, 130, 135, 136, 145, 122, 135, 135, 121, 113, 127, 125, 118, 135, 127, 137, 122, 131, 122, 128, 114, 124, 120, 132, 112, 114, 119, 118, 139, 130, 140, 117, 120, 125, 122, 139, 132, 129, 130, 115, 121, 125, 135, 116, 147, 118, 119, 128, 106, 122, 123, 132, 128, 105, 133, 111, 115, 135, 122, 104, 112, 120, 114, 114, 133, 127, 121, 130, 139, 124, 124, 151, 127, 137, 119, 116, 127, 135, 112, 108, 118, 131, 122, 125, 120, 116, 114, 111, 116, 122, 122, 111, 146, 126, 156, 115, 145, 135, 130, 128, 129, 129, 112, 115, 130, 123, 110, 120, 143, 129, 124, 150, 139, 113, 119, 141, 115, 119, 131, 125, 133, 139, 134, 104, 126, 131, 125, 114, 121, 130, 125, 113, 124, 128, 118, 135, 113, 139, 114, 116, 147, 123, 119, 106, 130, 111, 129, 129, 117, 161, 114, 132, 111, 121, 137, 118, 147, 124, 123, 116, 109, 135, 123, 122, 126, 117, 130, 118, 141, 126, 137, 118, 106, 132, 115, 140, 126, 132, 117, 137, 106, 133, 124, 133, 137, 112, 128, 121, 136, 117, 120, 130, 126, 127, 143, 123, 117, 141, 123, 133, 128, 141, 154, 124, 128, 138, 123, 117, 136, 126, 119, 117, 116, 139, 134, 122, 122, 125, 112, 144, 126, 143, 127, 123, 118, 109, 130, 141, 118, 119, 122, 118, 128, 132, 129, 134, 125, 139, 125, 125, 124, 112, 127, 135, 130, 123, 121, 133, 129, 125, 110, 138, 131, 127, 126, 125, 118, 111, 133, 142, 137, 120, 128, 132, 123, 136, 123, 102, 112, 127, 121, 131, 131, 117, 139, 130, 133, 137, 126, 123, 119, 118, 137, 103, 130, 123, 127, 122, 118, 133, 134, 115, 131, 127, 123, 123, 133, 122, 127, 126, 129, 126, 117, 113, 137, 120, 110, 120, 130, 133, 126, 105, 133, 94, 131, 148, 121, 123, 123, 128, 131, 140, 129, 107, 123, 124, 137, 124, 122, 122, 132, 120, 120, 138, 131, 125, 110, 121, 123, 113, 135, 129, 120, 120, 126, 91, 135, 126, 130, 119, 136, 127, 131, 120, 133, 111, 119, 117, 122, 139, 141, 146, 147, 109, 120, 126, 110, 111, 129, 133, 134, 117, 127, 115, 118, 103, 108, 138, 134, 128, 134, 137, 131, 109, 114, 119, 128, 142, 130, 115, 128, 123, 124, 123, 131, 118, 119, 124, 114, 140, 114, 126, 126, 130, 120, 103, 117, 149, 130, 127, 112, 112, 92, 131, 131, 136, 125, 125, 131, 115, 109, 132, 129, 136, 140, 135, 126, 122, 128, 121, 127, 132, 120, 121, 141, 140, 122, 126, 132, 157, 129, 143, 134, 123, 132, 131, 136, 127, 126, 132, 125, 125, 122, 122, 122, 106, 123, 131, 137, 122, 118, 128, 120, 141, 111, 120, 110, 122, 115, 140, 122, 143, 124, 121, 130, 136, 122, 99, 112, 139, 126, 130, 111, 116, 126, 117, 143, 111, 134, 111, 124, 113, 114, 122, 118, 133, 117, 124, 144, 128, 122, 133, 117, 119, 113, 118, 131, 115, 129, 113, 135, 111, 129, 128, 96, 127, 116, 121, 129, 111, 115, 136, 124, 150, 137, 106, 125, 126, 153, 134, 126, 113, 125, 119, 126, 133, 124, 128, 134, 130, 139, 121, 119, 128, 137, 122, 130, 111, 136, 130, 153, 122, 126, 138, 131, 121, 129, 129, 129, 138, 117, 127, 142, 141, 124, 130, 119, 122, 109, 124, 138, 136, 119, 129, 121, 110, 123, 103, 104, 120, 121, 112, 132, 138, 117, 120, 127, 88, 111, 127, 125, 119, 113, 116, 137, 118, 131, 114, 133, 126, 151, 134, 118, 130, 116, 121, 117, 117, 109, 119, 123, 127, 120, 118, 125, 120, 123, 116, 131, 125, 122, 127, 122, 120, 112, 115, 118, 117, 106, 130, 127, 135, 116, 131, 125, 135, 130, 139, 134, 128, 130, 134, 129, 113, 128, 132, 109, 138, 118, 128, 140, 130, 125, 121, 114, 125, 121, 118, 126, 123, 135, 128, 139, 127, 145, 117, 109, 120, 130, 141, 122, 122, 130, 118, 126, 131, 115, 123, 126, 125, 145, 118, 122, 131, 110, 113, 130, 119, 130, 122, 129, 125, 129, 118, 122, 131, 108, 129, 109, 127, 138, 117, 121, 120, 126, 126, 126, 118, 138, 113, 120, 150, 126, 142, 125, 114, 125, 125, 131, 116, 116, 117, 121, 118, 116, 124, 113, 116, 110, 114, 127, 137, 132, 123, 132, 122, 145, 137, 115, 135, 127, 133, 109, 134, 109, 123, 120, 124, 127, 128, 118, 126, 134, 122, 130, 119, 132, 149, 137, 101, 116, 128, 125, 133, 101, 114, 117, 109, 136, 128, 114, 127, 131, 125, 133, 115, 122, 126, 143, 131, 126, 122, 110, 133, 145, 128, 139, 118, 114, 128, 115, 127, 124, 129, 129, 122, 116, 105, 116, 117, 125, 104, 118, 126, 130, 132, 132, 133, 128, 132, 134, 132, 101, 127, 122, 118, 131, 121, 111, 132, 130, 111, 127, 131, 127, 131, 134, 121, 126, 127, 122, 125, 122, 128, 115, 126, 126, 133, 112, 129, 141, 123, 129, 128, 127, 114, 129, 136, 124, 130, 127, 144, 121, 122, 126, 125, 114, 138, 107, 117, 130, 124, 146, 106, 139, 132, 104, 145, 134, 112, 105, 131, 127, 131, 142, 119, 118, 120, 115, 128, 121, 106, 130, 123, 137, 131, 110, 133, 107, 141, 126, 131, 122, 117, 136, 124, 123, 125, 125, 121, 122, 106, 112, 112, 111, 136, 126, 108, 125, 111, 111, 111, 133, 138, 133, 117, 130, 113, 133, 119, 124, 123, 144, 132, 119, 112, 123, 104, 142, 106, 124, 132, 148, 133, 133, 120, 121, 116, 115, 124, 135, 138, 124, 142, 113, 107, 140, 132, 122, 140, 142, 99, 157, 111, 121, 126, 145, 121, 121, 102, 111, 138, 124, 118, 122, 121, 110, 107, 134, 129, 129, 134, 125, 141, 123, 109, 139, 114, 120, 119, 130, 112, 117, 125, 129, 140, 136, 147, 128, 127, 144, 113, 132, 121, 140, 139, 135, 124, 84, 135, 131, 118, 118, 122, 112, 118, 131, 135, 135, 138, 131, 140, 123, 124, 134, 131, 121, 138, 135, 129, 118, 123, 128, 133, 118, 139, 125, 135, 120, 131, 139, 117, 126, 124, 116, 133, 112, 131, 123, 127, 122, 130, 119, 131, 114, 122, 133, 137, 119, 123, 133, 120, 137, 109, 124, 112, 113, 137, 129, 113, 117, 136, 132, 115, 131, 126, 118, 118, 117, 129, 149, 142, 124, 127, 140, 146, 122, 118, 132, 124, 147, 120, 121, 106, 134, 125, 115, 119, 128, 131, 114, 133, 123, 109, 130, 110, 132, 132, 116, 120, 134, 122, 137, 108, 124, 135, 124, 123, 129, 128, 138, 150, 113, 126, 123, 143, 123, 127, 134, 150, 121, 127, 112, 117, 127, 131, 118, 124, 117, 130, 128, 125, 120, 123, 125, 120, 139, 121, 99, 117, 135, 137, 124, 136, 121, 145, 117, 127, 119, 122, 128, 112, 138, 109, 133, 141, 131, 109, 122, 127, 132, 118, 121, 133, 108, 116, 122, 131, 115, 119, 117, 137, 121, 140, 128, 117, 130, 111, 127, 124, 138, 119, 129, 98, 132, 136, 115, 115, 125, 121, 121, 118, 137, 150, 110, 111, 108, 124, 112, 130, 126, 124, 131, 109, 129, 125, 145, 118, 129, 127, 136, 114, 112, 121, 115, 119, 126, 128, 125, 144, 123, 135, 124, 115, 136, 127, 129, 120, 143, 115, 125, 138, 123, 114, 148, 120, 131, 135, 136, 158, 118, 111, 139, 129, 121, 110, 124, 124, 137, 117, 122, 117, 134, 126, 118, 112, 127, 115, 124, 119, 124, 134, 98, 115, 115, 123, 131, 134, 110, 117, 103, 128, 127, 116, 122, 120, 135, 118, 125, 120, 136, 127, 108, 127, 132, 111, 122, 135, 113, 118, 141, 124, 125, 129, 116, 131, 118, 112, 139, 135, 125, 122, 116, 122, 135, 154, 146, 119, 123, 124, 125, 122, 114, 122, 131, 119, 121, 128, 119, 120, 146, 122, 132, 122, 117, 128, 101, 136, 140, 110, 103, 141, 125, 138, 121, 137, 127, 141, 133, 132, 137, 126, 139, 120, 108, 118, 111, 127, 113, 131, 123, 132, 94, 117, 116, 134, 136, 121, 139, 142, 123, 126, 126, 119, 134, 98, 96, 135, 135, 112, 126, 124, 126, 125, 121, 105, 93, 125, 143, 119, 125, 120, 127, 128, 136, 107, 128, 93, 130, 117, 138, 127, 138, 118, 122, 147, 139, 105, 132, 124, 119, 125, 134, 133, 126, 143, 100, 118, 119, 129, 123, 126, 131, 113, 112, 121, 128, 126, 132, 144, 131, 119, 124, 140, 119, 141, 117, 117, 131, 121, 134, 139, 135, 132, 134, 122, 115, 134, 117, 121, 131, 139, 136, 119, 136, 107, 131, 136, 118, 137, 122, 117, 122, 118, 112, 125, 126, 109, 137, 130, 131, 124, 128, 138, 95, 130, 136, 113, 132, 130, 127, 137, 136, 97, 108, 120, 114, 118, 122, 115, 119, 127, 151, 142, 120, 126, 122, 113, 127, 123, 122, 135, 123, 126, 124, 123, 117, 124, 138, 113, 121, 148, 131, 126, 118, 160, 117, 128, 142, 140, 128, 139, 110, 116, 116, 127, 126, 127, 119, 122, 113, 130, 113, 125, 128, 149, 137, 117, 154, 116, 128, 121, 134, 129, 148, 152, 149, 109, 124, 128, 120, 128, 136, 121, 143, 124, 124, 136, 127, 141, 131, 112, 127, 120, 123, 127, 129, 110, 121, 137, 125, 122, 136, 111, 120, 122, 127, 122, 130, 124, 137, 125, 128, 142, 121, 115, 118, 115, 130, 121, 133, 110, 146, 142, 119, 149, 116, 125, 112, 127, 121, 111, 122, 141, 126, 122, 119, 118, 124, 110, 128, 120, 135, 123, 129, 122, 96, 125, 132, 119, 132, 122, 138, 140, 117, 124, 135, 126, 126, 129, 121, 119, 138, 117, 119, 121, 121, 127, 114, 133, 123, 97, 131, 119, 118, 117, 123, 130, 135, 119, 132, 133, 118, 119, 109, 122, 121, 117, 122, 129, 143, 139, 119, 114, 135, 104, 128, 124, 108, 157, 122, 113, 128, 127, 123, 127, 129, 113, 127, 93, 118, 116, 138, 106, 124, 108, 138, 132, 122, 124, 125, 127, 108, 124, 128, 142, 129, 128, 126, 144, 114, 112, 121, 99, 144, 125, 117, 130, 128, 115, 123, 130, 117, 124, 138, 140, 139, 138, 132, 136, 120, 125, 137, 131, 143, 113, 116, 126, 102, 124, 139, 121, 121, 128, 114, 137, 104, 135, 128, 115, 124, 112, 126, 124, 138, 127, 123, 125, 119, 132, 118, 131, 130, 142, 114, 121, 136, 112, 139, 110, 112, 135, 134, 120, 123, 134, 125, 118, 141, 128, 112, 122, 128, 117, 124, 137, 134, 106, 135, 122, 135, 126, 117, 133, 124, 122, 145, 131, 115, 132, 139, 119, 142, 131, 125, 122, 122, 114, 118, 96, 122, 134, 107, 132, 133, 127, 118, 127, 130, 111, 119, 126, 123, 115, 133, 123, 112, 130, 112, 136, 123, 128, 123, 128, 135, 138, 150, 107, 124, 130, 112, 125, 119, 113, 129, 131, 132, 121, 132, 115, 120, 112, 140, 134, 111, 116, 127, 109, 128, 138, 138, 122, 125, 134, 111, 125, 136, 123, 128, 125, 124, 141, 154, 108, 141, 117, 126, 129, 139, 115, 132, 140, 117, 133, 129, 126, 144, 121, 123, 130, 133, 116, 117, 120, 147, 145, 124, 127, 122, 125, 132, 122, 121, 132, 111, 128, 133, 129, 136, 112, 135, 115, 132, 127, 122, 123, 111, 147, 122, 138, 97, 109, 134, 121, 120, 120, 124, 130, 112, 130, 108, 124, 110, 116, 118, 115, 136, 116, 123, 130, 125, 96, 127, 145, 155, 117, 125, 119, 126, 133, 154, 126, 118, 114, 122, 114, 130, 119, 122, 124, 117, 125, 126, 133, 134, 124, 123, 107, 142, 133, 116, 112, 122, 118, 135, 124, 131, 149, 122, 115, 132, 120, 132, 116, 113, 119, 115, 134, 120, 112, 109, 109, 129, 126, 124, 125, 131, 131, 98, 119, 114, 122, 110, 104, 124, 133, 108, 121, 139, 146, 125, 128, 137, 124, 140, 107, 132, 122, 96, 127, 113, 132, 126, 132, 127, 116, 114, 120, 120, 121, 112, 123, 119, 139, 122, 135, 141, 150, 130, 140, 126, 132, 105, 101, 165, 115, 123, 123, 129, 115, 129, 137, 128, 126, 118, 121, 129, 118, 138, 125, 101, 113, 114, 117, 121, 143, 110, 125, 121, 131, 135, 132, 132, 131, 136, 114, 119, 117, 128, 108, 135, 119, 112, 135, 107, 141, 115, 124, 119, 115, 132, 114, 106, 123, 123, 128, 123, 135, 131, 121, 125, 136, 103, 128, 125, 121, 121, 136, 140, 143, 118, 129, 121, 91, 125, 123, 128, 140, 126, 138, 143, 113, 133, 131, 117, 128, 120, 136, 132, 129, 117, 129, 121, 112, 126, 107, 135, 121, 130, 132, 118, 134, 126, 123, 123, 110, 114, 117, 124, 119, 144, 134, 116, 105, 126, 140, 126, 128, 130, 121, 147, 118, 113, 126, 141, 138, 123, 130, 132, 131, 118, 118, 119, 127, 132, 104, 120, 136, 115, 135, 138, 127, 120, 125, 131, 123, 133, 133, 133, 113, 121, 114, 103, 128, 130, 126, 121, 126, 109, 139, 142, 120, 123, 131, 126, 124, 121, 116, 103, 138, 104, 117, 129, 123, 122, 123, 132, 135, 125, 130, 129, 112, 131, 106, 124, 130, 129, 120, 112, 134, 129, 118, 135, 117, 102, 138, 108, 121, 144, 131, 119, 124, 133, 126, 141, 131, 126, 139, 115, 126, 119, 116, 135, 151, 117, 123, 125, 137, 129, 126, 128, 128, 117, 129, 123, 140, 137, 126, 134, 125, 124, 127, 114, 123, 119, 132, 133, 124, 131, 125, 129, 128, 112, 131, 135, 127, 129, 128, 139, 132, 134, 125, 140, 127, 121, 140, 134, 117, 124, 115, 131, 137, 131, 117, 121, 130, 154, 102, 105, 124, 118, 123, 130, 137, 140, 137, 129, 127, 123, 134, 137, 132, 127, 130, 122, 114, 91, 118, 118, 132, 130, 137, 118, 141, 127, 133, 128, 113, 132, 135, 106, 135, 135, 124, 120, 137, 120, 129, 135, 133, 121, 129, 114, 130, 115, 118, 132, 96, 135, 130, 126, 134, 125, 119, 128, 139, 130, 125, 132, 128, 117, 103, 117, 140, 125, 122, 129, 109, 123, 136, 121, 113, 124, 123, 120, 133, 137, 121, 123, 142, 122, 122, 128, 133, 118, 131, 120, 117, 139, 111, 130, 123, 142, 138, 124, 119, 123, 133, 126, 124, 124, 134, 122, 109, 115, 138, 134, 120, 116, 128, 138, 123, 120, 126, 132, 129, 122, 125, 124, 126, 120, 130, 116, 121, 118, 124, 132, 112, 134, 125, 121, 125, 124, 121, 116, 123, 113, 116, 115, 142, 115, 122, 116, 119, 122, 145, 116, 135, 138, 124, 111, 131, 117, 124, 113, 133, 138, 133, 128, 146, 120, 122, 110, 115, 123, 121, 134, 147, 124, 123, 133, 133, 137, 122, 132, 126, 138, 125, 122, 131, 127, 127, 121, 137, 110, 134, 125, 113, 135, 133, 137, 129, 129, 117, 129, 124, 130, 128, 133, 132, 141, 121, 125, 139, 135, 135, 125, 124, 132, 113, 120, 118, 131, 123, 116, 134, 106, 151, 138, 126, 143, 110, 128, 118, 111, 114, 124, 134, 135, 110, 117, 120, 131, 135, 119, 114, 126, 136, 116, 118, 136, 121, 122, 130, 119, 111, 145, 135, 139, 119, 108, 114, 140, 139, 133, 142, 126, 138, 145, 138, 119, 104, 116, 137, 133, 130, 123, 131, 132, 139, 129, 125, 153, 112, 140, 130, 115, 142, 115, 115, 115, 140, 142, 114, 144, 117, 130, 123, 123, 132, 126, 127, 117, 124, 103, 130, 121, 121, 137, 129, 133, 133, 121, 129, 140, 112, 137, 135, 147, 122, 135, 121, 128, 125, 121, 123, 116, 139, 137, 135, 128, 129, 144, 115, 127, 116, 125, 129, 122, 130, 122, 119, 124, 123, 114, 133, 126, 114, 129, 142, 128, 134, 127, 127, 131, 138, 131, 120, 139, 117, 120, 126, 112, 115, 128, 118, 116, 127, 129, 112, 117, 134, 129, 117, 137, 118, 121, 113, 119, 138, 138, 136, 108, 141, 129, 131, 112, 129, 130, 145, 124, 124, 125, 132, 140, 121, 128, 134, 130, 125, 140, 128, 127, 118, 121, 120, 124, 120, 127, 127, 128, 117, 98, 129, 134, 134, 129, 144, 137, 108, 144, 138, 134, 116, 123, 129, 136, 104, 135, 128, 118, 131, 117, 137, 115, 114, 118, 128, 107, 126, 138, 136, 117, 122, 114, 121, 121, 120, 117, 111, 119, 129, 135, 109, 127, 133, 131, 142, 123, 114, 140, 124, 120, 150, 124, 124, 127, 123, 119, 116, 129, 128, 123, 133, 131, 117, 118, 151, 128, 121, 113, 138, 132, 123, 122, 128, 128, 127, 122, 144, 136, 131, 125, 127, 129, 141, 123, 128, 136, 119, 131, 133, 114, 125, 125, 127, 127, 110, 127, 140, 106, 146, 131, 121, 137, 117, 119, 132, 124, 133, 133, 122, 141, 129, 133, 137, 125, 128, 114, 119, 139, 123, 106, 129, 134, 122, 129, 120, 128, 139, 149, 134, 123, 131, 124, 128, 124, 124, 122, 125, 134, 140, 122, 131, 121, 122, 125, 129, 125, 137, 119, 133, 113, 136, 133, 147, 122, 114, 121, 139, 123, 131, 124, 125, 131, 128, 130, 118, 131, 111, 116, 127, 126, 116, 133, 145, 136, 138, 135, 121, 125, 139, 128, 116, 134, 130, 121, 116, 138, 125, 129, 130, 121, 110, 124, 128, 114, 125, 109, 115, 128, 126, 143, 129, 134, 136, 118, 136, 134, 125, 126, 122, 133, 115, 128, 139, 126, 120, 121, 140, 123, 123, 125, 132, 103, 108, 125, 140, 133, 112, 112, 133, 125, 125, 129, 117, 133, 114, 129, 148, 132, 113, 129, 128, 127, 125, 137, 123, 124, 132, 122, 147, 108, 127, 122, 125, 130, 133, 118, 124, 105, 124, 125, 125, 131, 119, 145, 122, 121, 118, 112, 130, 125, 127, 139, 120, 116, 116, 119, 137, 136, 111, 142, 120, 132, 115, 134, 118, 137, 125, 118, 128, 110, 123, 136, 132, 131, 130, 118, 131, 135, 121, 124, 132, 133, 130, 129, 131, 130, 128, 138, 124, 107, 119, 124, 144, 121, 124, 128, 157, 113, 124, 122, 108, 127, 123, 127, 127, 133, 136, 121, 118, 121, 111, 132, 120, 137, 134, 118, 128, 120, 133, 120, 123, 143, 126, 126, 140, 127, 115, 119, 127, 117, 127, 111, 155, 142, 107, 127, 126, 128, 129, 107, 129, 116, 125, 117, 128, 122, 129, 123, 122, 106, 118, 129, 121, 121, 130, 143, 133, 127, 142, 128, 113, 122, 135, 126, 119, 123, 139, 127, 130, 123, 119, 116, 116, 131, 126, 129, 135, 116, 127, 118, 112, 131, 129, 122, 130, 137, 118, 121, 117, 129, 129, 133, 155, 134, 122, 128, 125, 129, 123, 123, 113, 126, 109, 125, 139, 133, 121, 139, 121, 117, 138, 125, 110, 123, 118, 117, 117, 130, 112, 130, 115, 129, 123, 134, 126, 136, 134, 114, 130, 135, 130, 128, 121, 113, 109, 115, 123, 124, 119, 127, 111, 140, 113, 140, 121, 122, 133, 128, 123, 131, 126, 135, 127, 135, 115, 124, 131, 120, 129, 122, 118, 118, 137, 130, 116, 129, 124, 141, 117, 141, 133, 121, 119, 122, 118, 113, 113, 119, 111, 120, 121, 120, 124, 133, 139, 137, 128, 129, 128, 138, 122, 135, 119, 116, 110, 119, 115, 126, 125, 123, 126, 118, 120, 133, 123, 138, 122, 116, 127, 136, 133, 128, 138, 132, 116, 122, 126, 127, 115, 137, 138, 133, 134, 119, 118, 125, 127, 121, 118, 117, 146, 114, 123, 126, 126, 113, 121, 126, 126, 107, 136, 119, 120, 133, 123, 116, 129, 133, 123, 130, 123, 125, 123, 132, 128, 122, 140, 132, 108, 123, 129, 123, 123, 117, 123, 119, 133, 129, 137, 131, 133, 137, 121, 126, 128, 124, 128, 127, 124, 131, 116, 127, 130, 127, 157, 116, 113, 142, 124, 116, 111, 106, 125, 121, 125, 117, 98, 130, 109, 126, 118, 134, 120, 107, 126, 115, 119, 145, 129, 139, 118, 120, 120, 117, 122, 128, 113, 120, 140, 122, 125, 119, 124, 114, 122, 130, 136, 130, 133, 132, 127, 125, 133, 131, 133, 130, 129, 130, 128, 110, 116, 107, 136, 125, 109, 120, 140, 116, 128, 137, 118, 119, 121, 121, 109, 149, 133, 119, 121, 134, 115, 140, 142, 127, 145, 124, 126, 140, 125, 122, 118, 114, 140, 130, 131, 124, 129, 111, 135, 100, 140, 135, 103, 104, 140, 144, 124, 130, 137, 129, 127, 114, 129, 129, 120, 134, 134, 118, 136, 124, 127, 127, 122, 124, 142, 132, 113, 150, 130, 133, 124, 142, 129, 113, 122, 125, 121, 141, 106, 136, 130, 122, 118, 125, 116, 117, 111, 124, 131, 137, 113, 106, 119, 108, 131, 108, 129, 111, 138, 118, 133, 123, 134, 121, 152, 138, 132, 118, 108, 141, 126, 115, 118, 123, 124, 140, 127, 134, 136, 130, 131, 117, 119, 133, 139, 133, 123, 139, 146, 127, 153, 106, 123, 143, 124, 129, 125, 116, 139, 110, 113, 123, 130, 120, 112, 134, 123, 130, 121, 133, 115, 117, 121, 119, 112, 118, 138, 141, 128, 127, 145, 142, 129, 131, 122, 121, 117, 129, 135, 137, 114, 108, 119, 114, 124, 118, 129, 130, 119, 105, 134, 137, 132, 144, 121, 117, 135, 118, 128, 125, 131, 145, 106, 142, 138, 121, 118, 141, 116, 126, 110, 137, 119, 127, 127, 130, 99, 138, 129, 127, 113, 133, 130, 108, 126, 131, 120, 124, 105, 119, 126, 120, 122, 112, 125, 138, 114, 147, 125, 127, 106, 122, 117, 116, 135, 138, 118, 126, 125, 114, 129, 141, 118, 130, 104, 125, 111, 135, 128, 116, 126, 127, 134, 135, 142, 135, 131, 123, 142, 131, 144, 130, 124, 120, 126, 116, 116, 120, 118, 143, 132, 128, 124, 147, 128, 136, 118, 109, 116, 111, 132, 152, 129, 119, 122, 115, 127, 146, 124, 127, 101, 126, 118, 138, 122, 126, 104, 112, 135, 122, 118, 131, 126, 121, 118, 128, 105, 111, 120, 116, 153, 131, 133, 114, 128, 127, 118, 130, 109, 136, 118, 142, 120, 120, 124, 125, 120, 135, 105, 118, 125, 122, 113, 126, 116, 118, 122, 115, 116, 121, 116, 116, 137, 150, 118, 128, 116, 125, 131, 116, 125, 135, 113, 110, 131, 120, 132, 115, 105, 137, 122, 129, 129, 125, 125, 105, 119, 112, 124, 129, 130, 112, 126, 130, 123, 126, 142, 123, 128, 134, 130, 138, 130, 117, 111, 128, 123, 126, 132, 118, 109, 115, 110, 134, 117, 111, 118, 122, 117, 118, 123, 135, 117, 116, 106, 127, 138, 146, 124, 119, 134, 131, 126, 125, 157, 107, 128, 99, 116, 117, 126, 126, 135, 111, 131, 122, 128, 124, 109, 131, 142, 136, 123, 125, 135, 123, 127, 119, 122, 115, 161, 126, 129, 139, 138, 131, 125, 119, 109, 132, 105, 122, 131, 127, 130, 120, 137, 123, 121, 118, 122, 122, 126, 143, 127, 118, 135, 101, 120, 135, 126, 107, 121, 121, 114, 129, 131, 109, 118, 121, 138, 129, 118, 122, 109, 121, 121, 136, 115, 106, 137, 155, 108, 123, 134, 137, 129, 145, 114, 124, 129, 115, 127, 121, 127, 139, 125, 148, 133, 130, 134, 120, 104, 120, 118, 120, 136, 126, 116, 126, 139, 139, 129, 135, 146, 116, 140, 119, 130, 128, 117, 127, 136, 134, 111, 129, 118, 125, 134, 115, 134, 116, 141, 128, 141, 123, 129, 148, 130, 123, 128, 106, 120, 123, 111, 123, 102, 114, 131, 133, 125, 130, 124, 113, 128, 138, 138, 141, 128, 129, 113, 131, 127, 116, 115, 125, 120, 131, 115, 138, 149, 132, 109, 122, 113, 114, 131, 112, 145, 123, 120, 123, 126, 118, 117, 134, 121, 126, 125, 126, 113, 124, 148, 122, 110, 148, 113, 118, 122, 145, 121, 121, 133, 126, 125, 127, 124, 130, 158, 122, 106, 127, 117, 134, 137, 138, 131, 125, 124, 130, 112, 115, 133, 147, 121, 125, 128, 139, 133, 117, 133, 130, 142, 117, 132, 135, 109, 139, 122, 117, 126, 133, 125, 119, 127, 122, 132, 129, 133, 139, 115, 123, 138, 126, 126, 116, 117, 142, 132, 136, 116, 132, 131, 144, 127, 138, 118, 128, 123, 149, 146, 114, 125, 125, 116, 135, 123, 130, 123, 125, 144, 121, 129, 121, 125, 149, 107, 111, 118, 120, 131, 128, 134, 120, 118, 131, 129, 125, 112, 118, 117, 127, 127, 142, 105, 138, 114, 106, 145, 117, 129, 117, 119, 129, 102, 111, 116, 119, 134, 129, 132, 123, 130, 131, 121, 131, 137, 128, 123, 123, 118, 135, 132, 115, 126, 134, 133, 138, 137, 119, 118, 133, 125, 123, 123, 112, 114, 123, 120, 136, 126, 149, 134, 120, 143, 122, 117, 118, 127, 135, 123, 122, 135, 123, 115, 114, 142, 122, 121, 114, 147, 99, 119, 127, 125, 116, 118, 117, 122, 123, 132, 131, 118, 121, 142, 130, 125, 116, 124, 116, 127, 127, 122, 126, 117, 128, 121, 135, 108, 123, 121, 103, 144, 130, 124, 121, 116, 145, 118, 113, 145, 122, 114, 117, 113, 128, 123, 120, 117, 144, 163, 129, 119, 125, 130, 135, 118, 131, 126, 121, 121, 132, 124, 117, 105, 117, 102, 121, 128, 133, 130, 121, 124, 117, 147, 142, 109, 120, 138, 107, 115, 129, 110, 125, 126, 115, 128, 147, 140, 140, 119, 111, 122, 126, 138, 146, 119, 124, 107, 132, 119, 123, 146, 124, 131, 112, 128, 134, 111, 145, 122, 113, 127, 126, 145, 139, 143, 118, 127, 130, 141, 119, 128, 104, 132, 119, 134, 128, 135, 137, 119, 131, 142, 110, 126, 139, 113, 113, 133, 108, 113, 111, 110, 126, 130, 111, 121, 102, 124, 125, 136, 145, 131, 126, 127, 118, 114, 137, 135, 136, 141, 129, 148, 142, 128, 121, 125, 123, 117, 114, 113, 120, 120, 139, 120, 146, 130, 131, 107, 123, 133, 131, 129, 121, 123, 126, 116, 125, 147, 122, 129, 134, 114, 126, 124, 110, 122, 124, 127, 117, 120, 141, 127, 126, 117, 119, 127, 117, 130, 124, 117, 130, 137, 149, 133, 122, 131, 121, 128, 129, 83, 102, 128, 112, 123, 107, 127, 130, 114, 130, 106, 127, 124, 123, 122, 121, 121, 128, 127, 145, 138, 129, 124, 130, 129, 122, 114, 140, 124, 108, 125, 118, 110, 114, 113, 124, 120, 118, 115, 130, 126, 125, 129, 106, 136, 122, 118, 127, 124, 139, 135, 129, 135, 129, 135, 108, 121, 113, 118, 113, 133, 127, 142, 115, 142, 140, 134, 119, 119, 133, 143, 108, 113, 135, 108, 121, 145, 115, 116, 138, 124, 116, 128, 115, 123, 135, 108, 116, 133, 117, 134, 148, 113, 117, 125, 134, 107, 123, 130, 116, 119, 118, 117, 123, 121, 141, 128, 121, 113, 124, 132, 109, 119, 145, 148, 124, 117, 133, 116, 136, 130, 121, 129, 123, 128, 110, 136, 103, 132, 127, 116, 96, 104, 130, 133, 129, 95, 133, 137, 146, 133, 120, 140, 103, 102, 126, 142, 120, 130, 126, 135, 130, 129, 115, 122, 130, 137, 133, 122, 136, 116, 127, 127, 132, 139, 125, 112, 105, 124, 132, 115, 146, 125, 120, 127, 130, 135, 141, 139, 130, 134, 145, 122, 127, 117, 115, 110, 146, 145, 124, 112, 123, 126, 100, 134, 136, 130, 121, 136, 125, 140, 137, 105, 144, 115, 128, 133, 141, 109, 120, 116, 142, 117, 122, 111, 126, 129, 115, 145, 139, 114, 142, 121, 102, 118, 136, 122, 127, 129, 124, 135, 133, 121, 130, 148, 143, 104, 115, 134, 120, 130, 116, 122, 136, 101, 129, 124, 129, 138, 122, 120, 123, 135, 134, 138, 121, 111, 115, 116, 118, 114, 153, 130, 128, 119, 120, 121, 120, 123, 139, 129, 109, 126, 100, 129, 125, 122, 119, 125, 134, 133, 143, 118, 125, 132, 121, 125, 131, 129, 134, 122, 133, 119, 118, 121, 119, 124, 125, 123, 121, 123, 137, 120, 124, 122, 115, 116, 139, 140, 139, 124, 124, 125, 134, 108, 131, 141, 124, 118, 121, 126, 121, 118, 127, 134, 141, 120, 139, 124, 124, 109, 125, 129, 128, 138, 137, 147, 132, 120, 122, 119, 110, 111, 113, 120, 137, 114, 114, 128, 125, 114, 152, 137, 115, 94, 122, 106, 121, 137, 146, 124, 122, 113, 118, 120, 130, 135, 134, 144, 125, 128, 119, 130, 115, 121, 132, 138, 136, 123, 132, 113, 114, 128, 128, 140, 141, 130, 111, 113, 109, 112, 146, 137, 122, 132, 129, 129, 126, 141, 132, 127, 112, 120, 130, 127, 135, 120, 115, 128, 148, 130, 116, 116, 138, 113, 114, 127, 146, 120, 119, 138, 121, 153, 138, 125, 133, 117, 128, 118, 126, 116, 132, 125, 116, 137, 121, 113, 124, 124, 120, 120, 112, 138, 118, 126, 133, 133, 133, 122, 138, 130, 113, 109, 126, 118, 114, 123, 137, 119, 133, 97, 121, 123, 119, 142, 115, 139, 128, 108, 105, 116, 132, 125, 135, 140, 120, 135, 131, 136, 124, 139, 109, 111, 114, 118, 123, 129, 137, 118, 114, 131, 134, 148, 124, 129, 136, 135, 124, 113, 124, 122, 127, 123, 114, 127, 116, 120, 146, 127, 110, 135, 135, 116, 139, 139, 119, 144, 114, 142, 128, 127, 112, 141, 122, 101, 125, 126, 119, 115, 120, 129, 134, 125, 116, 147, 113, 130, 114, 120, 127, 101, 138, 126, 109, 141, 112, 103, 118, 112, 123, 126, 142, 127, 124, 131, 122, 108, 132, 118, 134, 111, 122, 131, 122, 144, 122, 126, 139, 123, 135, 113, 151, 121, 126, 106, 133, 118, 138, 116, 100, 150, 108, 114, 132, 122, 119, 114, 122, 127, 115, 118, 124, 133, 118, 129, 111, 131, 115, 135, 117, 127, 97, 135, 130, 124, 131, 111, 127, 114, 120, 121, 108, 104, 141, 121, 105, 136, 138, 118, 120, 123, 119, 112, 126, 137, 131, 136, 141, 126, 118, 122, 124, 118, 136, 129, 136, 117, 120, 111, 107, 125, 141, 137, 124, 132, 168, 130, 122, 119, 127, 127, 102, 146, 121, 127, 119, 121, 121, 107, 138, 107, 130, 97, 129, 136, 139, 98, 118, 129, 106, 106, 132, 123, 115, 149, 120, 120, 152, 143, 107, 124, 126, 137, 112, 138, 124, 134, 107, 114, 123, 136, 130, 133, 136, 111, 139, 121, 130, 137, 105, 120, 120, 132, 116, 144, 128, 138, 136, 136, 118, 125, 139, 137, 129, 110, 124, 126, 114, 131, 127, 121, 141, 135, 132, 118, 135, 116, 132, 113, 117, 119, 125, 131, 113, 147, 112, 143, 118, 122, 124, 118, 124, 134, 119, 129, 121, 122, 127, 119, 131, 118, 134, 142, 125, 135, 117, 138, 125, 138, 118, 121, 123, 122, 122, 119, 112, 139, 126, 125, 142, 129, 125, 127, 128, 115, 126, 114, 118, 114, 131, 112, 144, 129, 129, 123, 144, 139, 111, 117, 111, 122, 122, 133, 144, 110, 123, 127, 105, 128, 120, 136, 124, 138, 121, 127, 134, 115, 114, 142, 129, 114, 117, 110, 120, 141, 133, 105, 120, 125, 115, 103, 111, 136, 109, 149, 138, 126, 112, 123, 120, 116, 146, 122, 116, 126, 129, 125, 126, 139, 121, 145, 123, 144, 109, 128, 123, 104, 129, 135, 123, 131, 129, 125, 127, 121, 114, 125, 117, 131, 134, 108, 128, 138, 129, 129, 133, 119, 122, 110, 130, 138, 125, 126, 147, 146, 117, 119, 117, 140, 139, 127, 112, 124, 115, 120, 128, 129, 100, 154, 145, 124, 132, 123, 129, 115, 119, 122, 129, 121, 132, 144, 125, 107, 136, 123, 141, 119, 129, 118, 134, 134, 110, 106, 113, 113, 139, 123, 147, 129, 146, 133, 124, 148, 121, 123, 131, 125, 119, 121, 114, 115, 119, 121, 134, 117, 121, 103, 108, 124, 115, 110, 136, 110, 108, 122, 120, 106, 115, 112, 128, 131, 129, 129, 124, 133, 119, 118, 119, 127, 118, 153, 138, 129, 119, 131, 128, 151, 99, 128, 120, 136, 125, 128, 123, 132, 111, 94, 114, 128, 128, 122, 114, 131, 123, 110, 154, 139, 139, 118, 112, 124, 103, 118, 118, 139, 131, 123, 130, 123, 120, 123, 140, 132, 134, 113, 128, 131, 112, 122, 103, 121, 113, 119, 130, 124, 131, 126, 135, 124, 114, 112, 122, 119, 126, 113, 130, 125, 110, 141, 133, 124, 126, 111, 159, 118, 147, 153, 121, 111, 145, 117, 136, 125, 125, 113, 121, 124, 110, 108, 135, 132, 128, 119, 125, 125, 146, 126, 130, 127, 126, 126, 135, 123, 138, 146, 134, 162, 101, 120, 125, 133, 134, 129, 130, 119, 139, 120, 128, 130, 124, 139, 107, 127, 131, 123, 128, 113, 110, 149, 114, 117, 143, 120, 134, 136, 112, 100, 131, 117, 132, 125, 124, 125, 128, 119, 132, 147, 136, 126, 120, 131, 125, 131, 126, 109, 129, 140, 116, 146, 114, 123, 124, 137, 113, 116, 112, 120, 130, 113, 118, 111, 114, 111, 128, 119, 153, 125, 118, 126, 142, 122, 115, 138, 126, 136, 133, 128, 128, 140, 104, 134, 120, 122, 140, 112, 121, 112, 130, 113, 133, 142, 126, 124, 128, 117, 130, 134, 139, 128, 114, 114, 126, 111, 136, 131, 121, 121, 122, 116, 160, 130, 129, 117, 111, 138, 110, 143, 105, 124, 121, 129, 111, 128, 121, 138, 123, 130, 119, 138, 128, 124, 132, 123, 130, 122, 135, 127, 128, 119, 129, 117, 118, 146, 139, 124, 126, 136, 114, 110, 117, 128, 132, 121, 136, 117, 127, 122, 124, 114, 116, 106, 132, 126, 139, 132, 134, 119, 112, 118, 118, 107, 138, 138, 132, 139, 125, 114, 109, 125, 113, 124, 105, 120, 118, 112, 128, 166, 134, 116, 133, 124, 110, 116, 120, 127, 110, 129, 112, 122, 123, 137, 125, 109, 134, 128, 123, 135, 123, 121, 126, 121, 110, 125, 130, 121, 133, 125, 127, 115, 121, 117, 114, 129, 142, 127, 149, 123, 129, 127, 125, 133, 116, 128, 126, 124, 124, 128, 116, 114, 128, 126, 118, 111, 128, 144, 120, 110, 121, 107, 133, 128, 117, 127, 120, 123, 115, 116, 118, 131, 121, 131, 115, 123, 130, 123, 140, 130, 126, 132, 124, 137, 126, 145, 127, 113, 127, 121, 139, 124, 118, 120, 123, 128, 117, 128, 109, 141, 130, 129, 118, 126, 141, 125, 128, 112, 116, 122, 127, 114, 129, 135, 129, 141, 106, 120, 120, 119, 122, 117, 130, 114, 139, 120, 135, 136, 124, 132, 120, 155, 130, 131, 108, 128, 120, 125, 127, 138, 128, 133, 123, 132, 116, 124, 115, 126, 127, 142, 129, 137, 132, 130, 115, 132, 124, 120, 134, 130, 141, 113, 118, 132, 113, 146, 131, 102, 116, 124, 129, 136, 126, 126, 128, 130, 131, 138, 128, 132, 118, 125, 119, 124, 109, 119, 117, 137, 126, 129, 134, 126, 116, 123, 129, 130, 107, 128, 130, 132, 115, 126, 127, 100, 119, 116, 121, 109, 125, 132, 121, 141, 125, 125, 123, 105, 114, 139, 115, 121, 142, 134, 97, 117, 145, 134, 111, 133, 141, 116, 122, 97, 133, 153, 137, 136, 121, 129, 135, 145, 127, 136, 120, 103, 113, 115, 135, 134, 136, 138, 110, 116, 135, 112, 132, 135, 131, 127, 119, 136, 121, 118, 128, 130, 115, 125, 122, 137, 127, 130, 139, 128, 135, 130, 135, 129, 125, 130, 119, 116, 117, 123, 119, 115, 126, 133, 134, 129, 138, 119, 114, 119, 116, 126, 130, 134, 124, 138, 150, 106, 118, 124, 121, 153, 136, 128, 142, 116, 142, 99, 101, 141, 123, 121, 120, 115, 133, 128, 130, 124, 127, 131, 126, 108, 131, 129, 114, 141, 125, 129, 122, 134, 122, 118, 140, 121, 125, 138, 112, 133, 136, 122, 128, 107, 126, 115, 127, 136, 118, 154, 124, 126, 139, 141, 123, 127, 121, 115, 129, 127, 108, 120, 127, 132, 127, 123, 115, 128, 122, 123, 115, 121, 115, 115, 109, 118, 118, 118, 137, 108, 134, 124, 130, 110, 134, 119, 139, 126, 139, 131, 134, 126, 120, 146, 118, 135, 139, 119, 128, 140, 124, 139, 130, 126, 118, 123, 112, 123, 127, 142, 106, 116, 128, 128, 123, 123, 127, 114, 139, 104, 123, 142, 130, 129, 118, 116, 122, 125, 121, 119, 114, 128, 132, 137, 128, 116, 136, 117, 131, 114, 128, 123, 125, 121, 132, 111, 128, 126, 115, 129, 135, 114, 118, 145, 121, 135, 119, 129, 113, 121, 124, 128, 127, 114, 106, 111, 114, 124, 113, 136, 101, 131, 138, 125, 122, 124, 118, 115, 129, 107, 136, 132, 134, 133, 135, 113, 132, 135, 132, 125, 133, 117, 112, 131, 133, 129, 111, 125, 120, 137, 123, 132, 102, 128, 122, 125, 129, 121, 103, 117, 145, 124, 140, 135, 113, 115, 135, 130, 123, 120, 129, 114, 115, 129, 122, 114, 135, 120, 121, 128, 129, 143, 124, 118, 129, 116, 117, 123, 130, 120, 117, 128, 121, 115, 136, 126, 98, 131, 142, 125, 136, 134, 114, 113, 114, 113, 126, 127, 108, 138, 121, 133, 137, 111, 157, 110, 123, 136, 120, 140, 119, 131, 147, 127, 119, 118, 135, 127, 125, 119, 116, 119, 143, 136, 135, 111, 139, 124, 132, 126, 121, 127, 138, 128, 148, 129, 117, 132, 101, 115, 111, 139, 127, 145, 112, 129, 133, 121, 113, 121, 118, 121, 124, 119, 126, 121, 149, 127, 121, 119, 116, 112, 116, 118, 134, 122, 132, 123, 129, 115, 123, 125, 118, 133, 143, 125, 123, 118, 126, 124, 108, 127, 108, 133, 111, 116, 137, 99, 125, 124, 123, 118, 112, 110, 146, 125, 105, 131, 115, 122, 121, 113, 141, 120, 130, 128, 134, 128, 139, 125, 112, 119, 145, 128, 141, 126, 131, 132, 128, 123, 123, 118, 121, 119, 107, 123, 120, 117, 138, 122, 123, 124, 106, 122, 158, 120, 115, 122, 118, 136, 129, 122, 133, 124, 129, 142, 114, 113, 112, 117, 122, 110, 122, 127, 131, 143, 125, 130, 141, 127, 124, 142, 117, 112, 134, 120, 133, 120, 108, 130, 142, 135, 132, 114, 126, 120, 110, 126, 133, 115, 128, 140, 134, 128, 121, 130, 126, 126, 124, 124, 119, 121, 131, 123, 118, 123, 109, 131, 114, 137, 123, 123, 127, 133, 116, 115, 118, 120, 116, 147, 122, 144, 135, 140, 129, 109, 119, 119, 136, 127, 119, 120, 126, 116, 135, 124, 148, 109, 149, 127, 118, 130, 121, 124, 111, 107, 120, 127, 138, 137, 129, 130, 105, 114, 123, 119, 139, 130, 129, 110, 150, 125, 136, 131, 125, 120, 125, 122, 119, 135, 111, 139, 132, 124, 127, 119, 133, 118, 120, 134, 111, 118, 114, 126, 119, 127, 152, 103, 138, 137, 111, 139, 126, 127, 139, 124, 119, 118, 140, 128, 130, 140, 110, 121, 142, 111, 122, 138, 111, 127, 120, 143, 118, 123, 126, 113, 140, 125, 136, 135, 127, 124, 124, 136, 102, 117, 142, 119, 133, 118, 126, 121, 129, 118, 132, 117, 127, 123, 129, 125, 117, 115, 119, 133, 121, 128, 138, 118, 113, 132, 125, 97, 122, 145, 131, 110, 129, 122, 115, 128, 119, 142, 114, 124, 116, 129, 152, 123, 130, 115, 143, 117, 118, 136, 115, 137, 120, 119, 119, 131, 140, 139, 98, 122, 114, 138, 132, 132, 120, 119, 134, 121, 117, 137, 127, 117, 129, 115, 133, 121, 133, 123, 142, 133, 117, 127, 134, 126, 115, 117, 110, 131, 129, 122, 117, 130, 155, 127, 134, 104, 126, 119, 114, 138, 133, 132, 142, 136, 116, 112, 134, 125, 100, 122, 138, 110, 130, 123, 128, 125, 140, 137, 115, 114, 123, 119, 149, 115, 135, 144, 127, 110, 124, 153, 119, 115, 124, 103, 138, 141, 102, 122, 138, 127, 117, 114, 119, 131, 101, 113, 126, 104, 145, 104, 130, 118, 120, 127, 126, 126, 102, 108, 124, 131, 110, 113, 106, 114, 115, 137, 131, 129, 134, 135, 125, 119, 128, 133, 124, 126, 149, 120, 121, 126, 121, 116, 149, 135, 99, 119, 139, 138, 110, 127, 121, 129, 129, 138, 136, 134, 136, 126, 121, 121, 124, 126, 133, 131, 135, 127, 133, 134, 132, 124, 125, 141, 131, 128, 141, 124, 140, 132, 122, 131, 124, 116, 123, 142, 121, 128, 110, 114, 114, 113, 124, 130, 122, 109, 140, 122, 116, 116, 141, 105, 128, 120, 131, 125, 134, 117, 156, 118, 144, 130, 125, 120, 117, 117, 121, 134, 129, 120, 135, 130, 138, 133, 117, 115, 118, 127, 111, 140, 108, 117, 120, 128, 125, 127, 131, 111, 102, 135, 119, 122, 118, 129, 143, 134, 117, 120, 128, 125, 144, 127, 131, 118, 121, 133, 105, 123, 126, 120, 133, 136, 136, 119, 131, 106, 111, 131, 133, 118, 139, 112, 128, 132, 129, 109, 140, 129, 145, 112, 116, 145, 137, 125, 140, 130, 127, 130, 121, 108, 120, 118, 119, 112, 105, 124, 139, 116, 102, 119, 124, 135, 142, 119, 134, 141, 118, 131, 124, 119, 118, 123, 106, 142, 121, 117, 141, 133, 103, 133, 119, 135, 118, 127, 141, 114, 104, 129, 125, 140, 148, 126, 122, 122, 100, 126, 146, 111, 127, 142, 133, 148, 114, 118, 128, 130, 130, 132, 127, 133, 126, 112, 133, 128, 113, 125, 131, 130, 120, 125, 129, 126, 111, 137, 136, 125, 129, 122, 116, 125, 128, 122, 117, 119, 122, 129, 102, 126, 137, 134, 134, 143, 139, 146, 130, 133, 122, 132, 115, 150, 114, 124, 126, 138, 120, 126, 96, 129, 131, 132, 125, 130, 118, 124, 120, 122, 118, 133, 123, 103, 133, 145, 131, 139, 131, 130, 117, 123, 123, 129, 100, 141, 130, 149, 151, 108, 136, 107, 115, 118, 111, 122, 132, 130, 127, 108, 125, 121, 119, 138, 123, 122, 122, 128, 114, 126, 130, 123, 108, 141, 122, 139, 128, 122, 126, 123, 116, 124, 113, 125, 142, 103, 134, 124, 129, 131, 122, 139, 121, 116, 138, 139, 112, 108, 112, 134, 115, 121, 119, 118, 128, 135, 125, 136, 140, 126, 158, 131, 108, 128, 125, 136, 125, 107, 113, 131, 94, 111, 142, 127, 128, 120, 122, 110, 116, 118, 138, 142, 129, 129, 118, 119, 114, 120, 119, 134, 132, 126, 114, 124, 139, 133, 101, 126, 117, 122, 133, 112, 117, 130, 139, 123, 139, 135, 128, 126, 115, 133, 132, 125, 115, 135, 133, 113, 102, 127, 130, 118, 128, 111, 121, 128, 127, 123, 132, 124, 107, 118, 127, 129, 121, 119, 127, 118, 118, 129, 109, 124, 127, 109, 135, 157, 108, 125, 132, 132, 119, 131, 115, 110, 117, 131, 143, 129, 115, 126, 117, 137, 113, 136, 107, 137, 137, 112, 123, 129, 120, 125, 135, 120, 116, 118, 128, 135, 140, 124, 138, 125, 133, 132, 119, 115, 117, 140, 133, 118, 121, 145, 115, 123, 97, 135, 136, 137, 125, 111, 133, 110, 118, 120, 137, 124, 115, 132, 124, 112, 125, 127, 128, 126, 128, 119, 114, 125, 116, 142, 135, 140, 125, 137, 125, 136, 121, 134, 149, 129, 117, 119, 141, 105, 139, 124, 129, 128, 145, 128, 128, 112, 133, 126, 143, 126, 135, 126, 116, 100, 150, 127, 117, 128, 126, 131, 119, 134, 127, 111, 128, 129, 117, 125, 104, 130, 121, 129, 137, 127, 133, 143, 123, 123, 124, 116, 115, 114, 116, 133, 123, 120, 120, 116, 145, 125, 139, 120, 132, 135, 114, 119, 120, 125, 148, 136, 112, 126, 119, 117, 129, 134, 114, 116, 122, 161, 133, 122, 121, 115, 141, 119, 125, 114, 129, 129, 130, 124, 127, 129, 125, 112, 114, 102, 114, 123, 122, 125, 122, 127, 122, 125, 138, 126, 125, 127, 124, 121, 123, 144, 122, 134, 114, 126, 120, 137, 132, 118, 121, 133, 112, 118, 117, 133, 145, 139, 129, 139, 121, 136, 134, 128, 115, 138, 134, 127, 128, 124, 118, 109, 116, 129, 130, 118, 123, 115, 129, 135, 124, 108, 125, 130, 118, 113, 109, 115, 131, 124, 121, 128, 138, 128, 123, 125, 140, 136, 122, 107, 128, 141, 109, 118, 137, 104, 127, 124, 126, 130, 108, 131, 145, 116, 129, 127, 110, 132, 123, 132, 121, 137, 155, 134, 119, 138, 119, 128, 124, 124, 107, 143, 129, 117, 126, 146, 129, 131, 134, 125, 129, 113, 126, 124, 111, 140, 153, 121, 144, 144, 107, 127, 114, 125, 111, 111, 126, 111, 126, 141, 94, 115, 124, 123, 136, 111, 118, 129, 127, 118, 112, 128, 133, 126, 118, 128, 111, 133, 141, 117, 117, 133, 125, 117, 127, 121, 131, 136, 114, 115, 137, 125, 140, 114, 117, 128, 135, 118, 141, 140, 132, 123, 118, 126, 119, 124, 142, 129, 118, 112, 119, 120, 108, 125, 113, 129, 130, 141, 115, 136, 144, 117, 116, 131, 133, 132, 124, 136, 143, 83, 137, 135, 130, 112, 127, 124, 112, 136, 133, 131, 117, 120, 112, 113, 114, 131, 101, 117, 120, 128, 117, 143, 146, 115, 126, 138, 134, 128, 112, 144, 143, 137, 136, 136, 116, 132, 133, 123, 123, 138, 124, 129, 131, 116, 124, 118, 127, 136, 113, 119, 132, 116, 117, 118, 127, 128, 131, 109, 145, 103, 111, 123, 129, 129, 116, 137, 129, 134, 110, 120, 135, 128, 123, 132, 125, 115, 131, 117, 133, 124, 138, 124, 107, 137, 131, 130, 123, 118, 122, 127, 113, 128, 122, 146, 112, 126, 125, 126, 133, 115, 127, 130, 156, 129, 129, 120, 143, 123, 117, 120, 110, 126, 113, 130, 131, 111, 130, 144, 126, 130, 114, 124, 116, 114, 136, 126, 128, 123, 119, 127, 134, 132, 114, 138, 121, 117, 121, 127, 124, 123, 149, 103, 130, 127, 135, 113, 124, 119, 129, 128, 121, 133, 130, 118, 129, 143, 133, 124, 114, 129, 121, 128, 115, 135, 118, 143, 137, 121, 130, 125, 116, 139, 116, 122, 122, 122, 137, 127, 128, 121, 136, 111, 131, 126, 113, 146, 121, 117, 129, 134, 127, 149, 139, 137, 124, 132, 124, 126, 141, 123, 113, 137, 115, 127, 127, 140, 94, 137, 135, 119, 125, 123, 122, 111, 130, 139, 115, 127, 130, 132, 112, 133, 128, 120, 143, 119, 108, 121, 130, 143, 118, 142, 120, 133, 135, 131, 111, 123, 124, 125, 131, 124, 140, 125, 117, 129, 138, 139, 123, 136, 111, 121, 121, 105, 101, 115, 143, 132, 126, 117, 115, 124, 127, 127, 127, 137, 125, 127, 117, 134, 114, 133, 128, 113, 148, 120, 109, 145, 121, 119, 115, 131, 127, 118, 135, 121, 119, 131, 127, 131, 120, 117, 131, 131, 118, 125, 123, 124, 126, 126, 119, 141, 119, 134, 143, 143, 134, 131, 140, 136, 130, 134, 127, 113, 127, 139, 122, 132, 135, 143, 145, 111, 124, 113, 127, 130, 121, 122, 132, 118, 126, 123, 129, 138, 129, 135, 118, 140, 124, 113, 135, 141, 110, 115, 137, 120, 114, 113, 121, 122, 119, 135, 135, 120, 122, 128, 132, 112, 135, 140, 130, 145, 120, 119, 123, 129, 112, 124, 145, 110, 134, 134, 125, 123, 128, 120, 143, 128, 120, 131, 115, 127, 114, 124, 121, 120, 120, 109, 113, 152, 138, 112, 137, 135, 128, 114, 124, 128, 127, 131, 117, 105, 132, 111, 131, 113, 136, 124, 127, 112, 107, 133, 130, 145, 130, 132, 129, 138, 133, 111, 118, 141, 129, 115, 128, 158, 118, 125, 136, 142, 116, 124, 120, 126, 130, 133, 134, 139, 117, 132, 141, 133, 114, 126, 114, 112, 120, 119, 132, 142, 138, 117, 112, 118, 139, 135, 123, 129, 143, 137, 133, 111, 123, 116, 126, 137, 126, 120, 133, 127, 129, 133, 124, 136, 123, 114, 138, 126, 150, 116, 131, 130, 133, 121, 124, 128, 122, 126, 110, 133, 128, 113, 109, 115, 121, 119, 124, 128, 123, 133, 115, 139, 127, 126, 131, 160, 124, 124, 130, 134, 142, 132, 122, 113, 99, 133, 113, 119, 114, 136, 111, 129, 140, 131, 113, 128, 111, 114, 115, 131, 106, 132, 132, 129, 139, 134, 126, 125, 138, 127, 125, 138, 131, 149, 137, 114, 116, 122, 143, 104, 117, 123, 99, 132, 117, 122, 126, 126, 124, 147, 137, 110, 107, 128, 130, 120, 120, 110, 121, 125, 121, 130, 120, 150, 129, 128, 126, 107, 133, 132, 113, 132, 123, 136, 120, 109, 128, 125, 134, 132, 123, 112, 107, 118, 116, 133, 124, 129, 135, 149, 130, 136, 124, 135, 109, 99, 115, 141, 140, 119, 140, 111, 116, 142, 134, 121, 122, 138, 133, 114, 131, 131, 124, 125, 149, 128, 133, 116, 128, 130, 109, 123, 120, 112, 126, 130, 134, 118, 136, 120, 121, 123, 130, 122, 135, 108, 107, 129, 134, 134, 126, 106, 119, 134, 129, 125, 134, 120, 127, 118, 114, 128, 150, 111, 122, 132, 120, 127, 122, 116, 117, 136, 138, 129, 116, 125, 139, 111, 113, 109, 125, 131, 118, 119, 124, 120, 113, 130, 129, 118, 130, 123, 114, 122, 127, 118, 122, 131, 116, 144, 123, 122, 120, 132, 121, 127, 115, 150, 115, 132, 126, 126, 128, 131, 109, 127, 116, 134, 130, 135, 123, 115, 118, 127, 132, 130, 120, 124, 115, 125, 126, 122, 129, 108, 133, 129, 107, 136, 128, 134, 137, 132, 111, 122, 135, 108, 121, 109, 114, 141, 126, 113, 112, 112, 124, 127, 144, 119, 112, 131, 107, 140, 114, 124, 146, 122, 146, 120, 133, 138, 109, 126, 124, 120, 129, 123, 120, 124, 137, 130, 123, 123, 119, 113, 139, 116, 135, 115, 123, 109, 137, 125, 126, 127, 124, 115, 127, 114, 118, 104, 117, 104, 140, 119, 133, 128, 126, 121, 123, 141, 115, 130, 132, 130, 128, 128, 114, 127, 122, 117, 125, 110, 124, 142, 118, 122, 139, 129, 139, 125, 101, 120, 125, 123, 106, 119, 143, 119, 116, 154, 128, 133, 109, 130, 126, 123, 132, 131, 140, 125, 127, 113, 127, 112, 139, 122, 126, 112, 123, 108, 127, 127, 142, 118, 120, 125, 119, 125, 113, 110, 128, 126, 124, 138, 132, 123, 139, 117, 132, 125, 120, 112, 140, 120, 126, 122, 115, 145, 131, 114, 128, 111, 90, 134, 120, 119, 130, 129, 115, 129, 115, 116, 119, 128, 126, 146, 118, 112, 125, 129, 110, 117, 117, 135, 123, 128, 118, 122, 110, 137, 106, 126, 119, 122, 134, 130, 125, 133, 130, 122, 132, 126, 128, 119, 125, 138, 115, 124, 130, 117, 122, 139, 125, 129, 129, 125, 137, 120, 121, 119, 116, 120, 121, 130, 125, 114, 134, 121, 129, 132, 124, 129, 133, 122, 141, 140, 121, 148, 120, 138, 119, 123, 126, 131, 118, 115, 124, 130, 122, 120, 112, 129, 120, 123, 120, 110, 146, 124, 123, 122, 134, 109, 113, 131, 120, 140, 121, 127, 121, 149, 143, 115, 123, 123, 112, 127, 124, 136, 121, 125, 124, 142, 121, 108, 109, 130, 114, 120, 118, 136, 102, 120, 123, 129, 122, 124, 118, 130, 117, 127, 126, 125, 121, 113, 130, 126, 128, 103, 132, 121, 134, 116, 113, 139, 120, 125, 129, 156, 121, 112, 121, 125, 117, 103, 124, 144, 121, 118, 118, 134, 120, 122, 114, 109, 117, 130, 129, 138, 114, 111, 122, 132, 128, 115, 131, 136, 125, 122, 137, 133, 121, 127, 134, 112, 112, 123, 126, 120, 139, 122, 141, 122, 128, 112, 110, 124, 114, 129, 119, 129, 118, 129, 129, 120, 133, 125, 120, 140, 126, 125, 117, 124, 137, 124, 136, 112, 149, 145, 129, 129, 135, 118, 137, 127, 122, 125, 145, 112, 120, 122, 132, 132, 131, 131, 105, 127, 119, 128, 125, 137, 129, 119, 124, 138, 122, 131, 124, 123, 122, 121, 133, 114, 119, 131, 126, 113, 123, 126, 116, 128, 136, 128, 125, 117, 136, 146, 121, 123, 121, 114, 132, 148, 124, 116, 127, 134, 143, 134, 107, 125, 118, 116, 119, 126, 123, 123, 134, 149, 113, 127, 144, 135, 130, 126, 124, 134, 128, 138, 132, 123, 132, 126, 127, 112, 136, 130, 124, 120, 121, 109, 111, 130, 123, 119, 108, 125, 127, 123, 110, 139, 134, 149, 125, 113, 123, 124, 130, 130, 122, 133, 112, 134, 122, 122, 139, 114, 127, 140, 124, 122, 120, 138, 130, 122, 126, 126, 132, 133, 129, 124, 123, 126, 126, 133, 126, 142, 125, 129, 121, 114, 128, 114, 135, 116, 107, 122, 121, 113, 112, 130, 124, 126, 125, 127, 133, 131, 96, 122, 129, 130, 129, 113, 117, 111, 116, 121, 119, 136, 128, 125, 128, 111, 126, 131, 112, 129, 121, 109, 137, 141, 137, 119, 104, 123, 124, 130, 126, 118, 126, 117, 128, 142, 141, 109, 127, 124, 123, 119, 121, 127, 131, 111, 134, 112, 137, 125, 122, 133, 121, 130, 131, 115, 112, 130, 100, 129, 127, 132, 131, 127, 108, 124, 112, 126, 142, 110, 134, 114, 106, 119, 139, 133, 132, 124, 126, 122, 122, 122, 111, 129, 133, 132, 126, 125, 133, 135, 125, 131, 122, 105, 128, 131, 122, 138, 129, 138, 121, 137, 123, 116, 120, 122, 119, 126, 112, 133, 131, 97, 108, 127, 115, 138, 130, 131, 138, 122, 129, 132, 136, 134, 132, 149, 150, 124, 141, 132, 133, 121, 126, 117, 119, 120, 133, 118, 113, 111, 118, 147, 120, 117, 122, 112, 121, 120, 134, 149, 129, 140, 121, 143, 133, 118, 125, 135, 115, 117, 123, 113, 125, 122, 106, 112, 123, 106, 135, 115, 131, 121, 135, 113, 141, 129, 112, 100, 132, 135, 118, 118, 128, 124, 113, 146, 128, 117, 131, 147, 121, 133, 124, 131, 127, 125, 136, 137, 109, 121, 127, 139, 127, 122, 128, 105, 113, 136, 135, 126, 129, 117, 116, 122, 113, 125, 117, 120, 140, 156, 115, 127, 117, 117, 120, 117, 126, 133, 119, 106, 122, 129, 117, 121, 130, 126, 127, 118, 125, 127, 136, 119, 127, 108, 120, 117, 152, 131, 139, 137, 113, 137, 113, 118, 129, 118, 128, 115, 125, 108, 122, 126, 109, 119, 105, 125, 133, 126, 123, 112, 138, 126, 119, 115, 111, 116, 119, 119, 133, 120, 126, 123, 123, 124, 126, 143, 132, 109, 121, 133, 118, 125, 123, 129, 137, 132, 126, 124, 122, 125, 122, 124, 115, 128, 117, 113, 119, 125, 125, 125, 153, 115, 138, 116, 112, 124, 132, 138, 109, 122, 128, 125, 115, 142, 124, 116, 127, 136, 122, 141, 140, 114, 123, 120, 129, 115, 144, 125, 110, 118, 122, 129, 116, 124, 124, 126, 119, 117, 123, 132, 133, 129, 116, 109, 130, 117, 133, 132, 136, 127, 134, 123, 141, 124, 118, 121, 140, 141, 137, 147, 110, 131, 129, 118, 112, 117, 125, 107, 129, 136, 138, 130, 126, 126, 124, 150, 118, 105, 133, 142, 129, 127, 142, 111, 109, 104, 116, 125, 147, 117, 121, 118, 117, 129, 93, 112, 135, 113, 135, 122, 127, 103, 130, 122, 115, 125, 128, 104, 110, 117, 128, 115, 130, 127, 134, 124, 95, 126, 128, 132, 142, 128, 138, 119, 121, 117, 104, 134, 124, 135, 142, 123, 131, 131, 137, 123, 125, 131, 126, 119, 124, 121, 130, 120, 108, 127, 120, 122, 128, 144, 122, 121, 118, 112, 117, 117, 141, 124, 119, 128, 145, 119, 134, 125, 141, 112, 130, 147, 123, 114, 123, 146, 120, 125, 135, 120, 127, 128, 126, 146, 126, 131, 112, 130, 110, 134, 123, 113, 119, 117, 120, 120, 138, 121, 126, 127, 123, 128, 116, 124, 117, 137, 139, 118, 129, 122, 124, 140, 120, 132, 132, 123, 127, 117, 120, 121, 128, 124, 118, 150, 123, 112, 117, 124, 109, 106, 123, 133, 120, 118, 121, 151, 136, 115, 119, 127, 136, 119, 127, 111, 129, 114, 113, 132, 103, 104, 121, 123, 126, 117, 116, 119, 147, 136, 100, 112, 135, 112, 120, 142, 114, 123, 125, 131, 149, 126, 132, 125, 130, 117, 144, 116, 113, 146, 122, 123, 119, 115, 122, 122, 120, 131, 129, 140, 128, 125, 119, 103, 150, 127, 105, 135, 116, 108, 123, 109, 131, 126, 116, 135, 124, 137, 130, 125, 121, 115, 129, 108, 130, 129, 117, 118, 133, 128, 128, 120, 130, 125, 119, 146, 118, 126, 137, 135, 136, 121, 146, 116, 105, 119, 129, 120, 129, 126, 122, 129, 125, 130, 136, 122, 123, 124, 139, 123, 116, 141, 117, 140, 108, 127, 136, 127, 122, 144, 122, 129, 114, 116, 131, 115, 130, 133, 134, 109, 109, 126, 121, 132, 134, 124, 129, 130, 147, 117, 124, 124, 112, 135, 130, 151, 118, 132, 143, 133, 131, 123, 115, 105, 133, 123, 135, 127, 128, 123, 128, 119, 125, 117, 116, 127, 121, 146, 123, 133, 124, 116, 130, 140, 128, 131, 119, 122, 124, 137, 133, 131, 117, 111, 134, 104, 105, 120, 143, 141, 133, 121, 131, 131, 131, 130, 135, 131, 126, 129, 122, 143, 119, 144, 125, 137, 112, 108, 147, 116, 141, 118, 132, 125, 114, 134, 112, 134, 139, 138, 126, 118, 124, 132, 108, 131, 119, 104, 129, 125, 123, 110, 140, 119, 108, 121, 132, 135, 128, 123, 101, 139, 126, 140, 139, 127, 117, 151, 136, 113, 116, 139, 127, 123, 109, 142, 130, 134, 124, 139, 136, 133, 140, 116, 131, 120, 135, 163, 134, 132, 112, 124, 134, 118, 130, 136, 113, 139, 108, 118, 136, 109, 118, 125, 114, 116, 121, 114, 142, 125, 112, 125, 105, 136, 121, 134, 133, 106, 137, 125, 123, 117, 140, 121, 99, 126, 109, 135, 121, 114, 118, 150, 115, 137, 128, 110, 122, 126, 119, 129, 109, 118, 132, 128, 110, 134, 132, 130, 138, 116, 124, 126, 137, 130, 122, 136, 113, 115, 135, 117, 143, 116, 135, 110, 133, 115, 122, 138, 143, 124, 122, 109, 115, 111, 141, 138, 120, 134, 130, 126, 140, 144, 121, 127, 136, 132, 125, 125, 135, 119, 116, 124, 127, 141, 118, 143, 135, 136, 136, 134, 134, 131, 132, 112, 133, 138, 117, 137, 128, 128, 106, 124, 105, 127, 112, 120, 147, 121, 109, 126, 116, 137, 123, 128, 141, 129, 122, 131, 144, 127, 135, 109, 120, 111, 126, 135, 141, 135, 132, 129, 107, 156, 138, 138, 137, 119, 122, 106, 145, 114, 141, 112, 134, 134, 121, 117, 129, 112, 121, 139, 133, 126, 112, 140, 127, 129, 119, 136, 139, 128, 121, 124, 141, 131, 114, 123, 102, 151, 114, 105, 118, 121, 115, 127, 116, 133, 113, 117, 125, 127, 135, 129, 124, 122, 128, 116, 125, 117, 129, 130, 140, 126, 145, 131, 118, 125, 119, 116, 117, 125, 139, 121, 126, 122, 122, 111, 110, 114, 120, 122, 129, 136, 129, 143, 135, 136, 116, 131, 108, 113, 130, 124, 126, 153, 134, 134, 121, 121, 142, 122, 146, 115, 115, 139, 130, 131, 142, 127, 127, 125, 125, 124, 125, 110, 122, 122, 133, 122, 120, 130, 114, 136, 137, 120, 127, 117, 121, 131, 132, 146, 117, 124, 116, 130, 124, 121, 134, 123, 127, 111, 117, 128, 127, 153, 121, 108, 120, 125, 130, 106, 115, 132, 111, 115, 152, 129, 142, 129, 135, 114, 124, 132, 116, 128, 136, 139, 105, 134, 119, 127, 113, 123, 140, 122, 108, 128, 114, 114, 119, 135, 141, 120, 121, 127, 129, 118, 143, 117, 130, 107, 118, 125, 130, 142, 127, 127, 129, 125, 131, 119, 124, 139, 129, 130, 137, 123, 107, 145, 99, 108, 112, 127, 120, 133, 121, 134, 130, 139, 100, 109, 120, 123, 109, 138, 122, 123, 120, 122, 106, 138, 132, 140, 133, 128, 129, 118, 146, 137, 112, 126, 129, 95, 147, 132, 120, 158, 115, 141, 113, 120, 110, 107, 135, 124, 114, 129, 131, 112, 121, 127, 140, 110, 134, 122, 127, 122, 122, 118, 133, 118, 125, 138, 131, 111, 129, 120, 107, 128, 98, 131, 121, 129, 108, 110, 119, 114, 127, 145, 132, 128, 118, 129, 140, 109, 127, 127, 132, 125, 126, 137, 145, 127, 119, 134, 133, 122, 138, 118, 117, 115, 144, 117, 136, 123, 123, 122, 112, 132, 105, 125, 127, 135, 129, 144, 127, 119, 137, 134, 131, 129, 131, 100, 158, 129, 133, 145, 133, 134, 139, 109, 108, 133, 135, 137, 133, 123, 124, 124, 110, 130, 127, 129, 120, 111, 124, 129, 102, 141, 129, 128, 123, 135, 125, 125, 129, 136, 123, 97, 128, 123, 130, 91, 106, 145, 131, 108, 114, 122, 135, 122, 127, 121, 114, 112, 125, 123, 103, 120, 132, 117, 133, 100, 132, 119, 114, 129, 125, 134, 118, 126, 132, 139, 124, 132, 120, 116, 136, 134, 134, 116, 130, 118, 129, 119, 123, 127, 139, 140, 123, 148, 119, 126, 138, 120, 114, 126, 103, 139, 131, 121, 105, 117, 119, 130, 109, 110, 128, 135, 125, 129, 122, 126, 111, 121, 121, 102, 132, 134, 113, 118, 138, 99, 120, 136, 124, 115, 146, 134, 135, 115, 130, 120, 128, 130, 138, 123, 128, 110, 124, 130, 114, 119, 133, 126, 114, 124, 130, 141, 132, 122, 134, 118, 143, 125, 139, 155, 134, 107, 128, 100, 128, 128, 135, 112, 122, 113, 110, 126, 130, 137, 138, 136, 125, 119, 130, 122, 113, 134, 127, 141, 115, 122, 124, 112, 116, 118, 151, 117, 129, 121, 124, 127, 120, 127, 128, 111, 117, 135, 118, 132, 131, 131, 108, 124, 115, 116, 129, 109, 120, 115, 115, 102, 124, 141, 131, 126, 127, 118, 129, 138, 124, 124, 126, 138, 133, 134, 113, 117, 117, 116, 130, 118, 134, 127, 127, 115, 125, 112, 114, 107, 134, 123, 127, 110, 123, 120, 133, 116, 127, 136, 139, 113, 125, 132, 126, 131, 141, 122, 129, 128, 119, 121, 135, 112, 122, 125, 117, 119, 108, 130, 128, 137, 121, 133, 129, 103, 127, 108, 115, 124, 127, 153, 127, 122, 124, 123, 116, 99, 132, 139, 118, 131, 118, 123, 130, 117, 111, 141, 135, 119, 112, 138, 128, 116, 140, 114, 140, 115, 111, 136, 126, 109, 153, 122, 121, 132, 103, 129, 99, 114, 130, 115, 125, 109, 125, 119, 147, 110, 135, 134, 132, 123, 119, 119, 119, 125, 122, 123, 118, 132, 100, 125, 111, 124, 122, 128, 134, 113, 135, 142, 122, 116, 144, 100, 160, 126, 127, 111, 128, 134, 126, 110, 123, 129, 110, 114, 129, 118, 133, 126, 125, 135, 113, 127, 142, 123, 117, 108, 125, 146, 118, 119, 142, 132, 124, 117, 131, 130, 124, 113, 128, 129, 121, 124, 131, 122, 117, 128, 134, 98, 135, 113, 111, 94, 126, 131, 119, 124, 124, 124, 119, 131, 123, 119, 129, 127, 110, 124, 129, 128, 115, 114, 118, 114, 113, 105, 128, 125, 134, 144, 119, 114, 127, 122, 113, 109, 129, 127, 101, 123, 141, 128, 125, 125, 128, 115, 117, 150, 131, 128, 119, 132, 126, 126, 125, 123, 118, 117, 115, 154, 116, 117, 127, 135, 121, 114, 120, 127, 140, 135, 134, 118, 119, 116, 137, 122, 111, 123, 110, 122, 115, 127, 122, 101, 128, 146, 136, 112, 120, 116, 136, 125, 137, 110, 131, 133, 130, 123, 138, 106, 107, 122, 122, 134, 123, 118, 108, 140, 115, 139, 122, 120, 141, 131, 99, 128, 111, 132, 111, 123, 123, 135, 127, 120, 124, 116, 126, 140, 125, 137, 122, 143, 134, 102, 86, 124, 128, 130, 132, 147, 129, 128, 134, 121, 122, 116, 118, 128, 134, 132, 128, 122, 132, 130, 128, 136, 137, 134, 127, 108, 132, 123, 121, 134, 116, 113, 117, 129, 126, 146, 106, 145, 111, 126, 114, 108, 127, 105, 119, 145, 124, 141, 139, 124, 117, 130, 143, 119, 130, 143, 115, 125, 126, 111, 116, 114, 138, 114, 114, 140, 118, 121, 126, 120, 115, 133, 121, 110, 123, 134, 122, 130, 140, 139, 117, 135, 134, 125, 123, 131, 116, 120, 136, 122, 102, 120, 127, 118, 112, 123, 128, 124, 114, 127, 116, 117, 131, 123, 120, 124, 118, 130, 134, 125, 132, 109, 133, 139, 116, 124, 128, 126, 136, 116, 120, 108, 132, 102, 133, 107, 127, 116, 126, 129, 116, 106, 129, 137, 114, 124, 106, 124, 127, 124, 125, 124, 138, 116, 128, 148, 111, 130, 147, 118, 129, 120, 140, 109, 139, 102, 122, 140, 142, 129, 132, 129, 143, 139, 125, 134, 135, 121, 128, 144, 128, 116, 113, 126, 127, 144, 115, 113, 138, 126, 131, 106, 121, 118, 102, 130, 135, 112, 130, 119, 116, 125, 123, 121, 132, 117, 142, 143, 127, 122, 125, 130, 141, 119, 123, 147, 133, 120, 123, 132, 128, 153, 114, 127, 128, 136, 128, 126, 148, 127, 116, 120, 134, 119, 135, 129, 132, 129, 119, 133, 124, 128, 127, 118, 101, 114, 121, 112, 128, 121, 120, 116, 125, 138, 109, 116, 135, 111, 139, 122, 159, 115, 133, 132, 119, 129, 110, 126, 121, 110, 142, 126, 132, 128, 121, 123, 103, 146, 117, 141, 122, 145, 136, 114, 117, 113, 109, 130, 131, 139, 122, 150, 140, 120, 122, 122, 144, 143, 133, 107, 129, 122, 128, 126, 118, 102, 121, 120, 127, 116, 126, 129, 128, 133, 113, 117, 115, 128, 127, 138, 115, 135, 116, 123, 125, 133, 134, 119, 123, 146, 122, 125, 125, 127, 133, 132, 117, 119, 142, 100, 132, 124, 102, 121, 140, 121, 121, 118, 119, 118, 116, 138, 127, 127, 142, 126, 124, 116, 111, 123, 138, 141, 136, 103, 132, 151, 120, 126, 129, 133, 110, 140, 141, 124, 122, 127, 127, 128, 145, 125, 119, 115, 111, 125, 134, 123, 124, 139, 137, 124, 126, 119, 95, 117, 127, 101, 115, 124, 132, 131, 129, 118, 120, 135, 132, 142, 124, 138, 107, 122, 130, 125, 124, 125, 115, 103, 121, 132, 129, 134, 120, 128, 126, 144, 126, 140, 116, 126, 129, 125, 124, 144, 118, 127, 126, 122, 113, 132, 128, 123, 122, 122, 120, 122, 121, 110, 138, 122, 128, 128, 130, 130, 124, 125, 128, 100, 137, 131, 140, 132, 130, 127, 129, 127, 135, 125, 125, 118, 127, 116, 112, 115, 116, 110, 117, 126, 130, 124, 129, 118, 123, 133, 114, 120, 131, 127, 130, 131, 121, 127, 116, 123, 130, 117, 128, 108, 125, 126, 130, 128, 121, 132, 124, 132, 132, 120, 124, 125, 125, 128, 128, 118, 124, 135, 118, 132, 145, 117, 123, 127, 137, 119, 138, 135, 124, 119, 106, 131, 109, 131, 133, 129, 140, 119, 141, 138, 148, 129, 126, 97, 122, 127, 121, 140, 136, 114, 120, 131, 123, 143, 125, 117, 129, 112, 123, 131, 122, 134, 121, 123, 125, 122, 123, 131, 130, 120, 136, 114, 127, 126, 125, 126, 129, 125, 130, 153, 132, 118, 126, 112, 104, 114, 126, 138, 139, 114, 126, 108, 131, 107, 126, 112, 132, 128, 141, 121, 130, 118, 121, 154, 136, 121, 128, 128, 132, 141, 134, 123, 135, 117, 110, 127, 107, 127, 123, 131, 106, 136, 139, 121, 133, 124, 149, 119, 114, 125, 141, 121, 125, 110, 127, 118, 126, 147, 123, 117, 120, 132, 104, 131, 127, 133, 134, 119, 117, 113, 125, 125, 113, 123, 112, 126, 145, 118, 129, 104, 113, 137, 112, 105, 111, 125, 115, 135, 117, 127, 137, 120, 126, 119, 121, 152, 121, 121, 128, 138, 118, 134, 116, 136, 130, 134, 134, 116, 126, 137, 114, 123, 120, 122, 111, 118, 126, 116, 130, 114, 139, 125, 121, 139, 130, 124, 123, 137, 129, 118, 120, 134, 129, 146, 106, 123, 121, 138, 124, 137, 121, 132, 127, 102, 123, 114, 115, 116, 120, 114, 112, 140, 139, 122, 139, 137, 117, 126, 126, 105, 114, 140, 124, 117, 116, 135, 112, 117, 137, 123, 123, 103, 137, 117, 121, 134, 142, 129, 115, 101, 134, 128, 131, 120, 137, 135, 140, 124, 120, 121, 121, 121, 139, 128, 106, 140, 122, 120, 125, 122, 141, 118, 130, 118, 126, 130, 113, 121, 122, 130, 128, 129, 120, 122, 138, 128, 136, 126, 140, 132, 122, 110, 114, 130, 129, 126, 122, 125, 121, 126, 134, 143, 135, 134, 113, 132, 127, 114, 142, 132, 127, 130, 143, 99, 112, 120, 131, 139, 136, 111, 131, 116, 139, 122, 126, 119, 125, 121, 122, 121, 118, 123, 137, 104, 139, 131, 122, 132, 141, 114, 132, 129, 128, 109, 127, 136, 131, 108, 117, 127, 132, 121, 134, 131, 115, 125, 125, 126, 110, 128, 110, 139, 124, 106, 120, 115, 105, 114, 126, 127, 137, 116, 131, 121, 127, 112, 116, 120, 141, 126, 123, 130, 137, 129, 126, 132, 133, 156, 123, 121, 158, 124, 116, 133, 119, 141, 121, 142, 114, 119, 112, 145, 120, 104, 149, 121, 108, 126, 126, 125, 129, 122, 135, 132, 143, 135, 134, 117, 130, 118, 119, 111, 126, 129, 113, 120, 116, 135, 111, 118, 132, 116, 150, 138, 118, 127, 122, 116, 122, 117, 109, 120, 124, 123, 116, 133, 123, 118, 119, 124, 140, 129, 125, 118, 139, 129, 127, 126, 134, 109, 133, 144, 137, 132, 135, 136, 121, 126, 132, 141, 121, 130, 127, 139, 116, 133, 116, 114, 139, 133, 138, 117, 124, 130, 126, 151, 128, 124, 138, 114, 143, 137, 130, 122, 140, 124, 125, 137, 126, 125, 121, 111, 146, 125, 119, 128, 124, 120, 104, 115, 123, 126, 137, 128, 122, 130, 123, 150, 113, 145, 121, 122, 128, 130, 127, 127, 113, 123, 128, 115, 140, 111, 121, 128, 122, 99, 132, 130, 117, 117, 126, 118, 124, 123, 131, 138, 119, 121, 124, 104, 133, 139, 128, 129, 123, 106, 128, 120, 125, 130, 128, 104, 116, 119, 130, 134, 129, 126, 136, 117, 114, 122, 111, 116, 129, 125, 115, 115, 108, 122, 136, 115, 124, 128, 136, 125, 123, 98, 123, 129, 129, 131, 119, 145, 121, 126, 124, 139, 120, 134, 125, 132, 118, 117, 114, 111, 128, 131, 133, 110, 129, 129, 131, 127, 122, 99, 138, 119, 129, 153, 127, 120, 124, 138, 117, 135, 117, 121, 128, 116, 110, 103, 117, 126, 119, 118, 119, 126, 111, 127, 134, 136, 134, 133, 113, 111, 127, 125, 136, 128, 124, 133, 128, 108, 142, 126, 129, 119, 118, 123, 124, 123, 132, 150, 129, 128, 118, 123, 131, 117, 149, 131, 133, 136, 123, 131, 137, 119, 126, 127, 135, 111, 130, 126, 124, 124, 124, 116, 139, 125, 125, 113, 128, 137, 128, 125, 130, 120, 125, 115, 119, 126, 129, 117, 128, 116, 133, 121, 125, 135, 145, 141, 119, 122, 126, 109, 132, 137, 127, 129, 116, 125, 120, 118, 133, 127, 127, 119, 120, 114, 139, 136, 138, 130, 124, 139, 131, 129, 115, 120, 114, 119, 129, 135, 123, 132, 132, 120, 120, 110, 117, 128, 138, 119, 116, 111, 130, 125, 133, 130, 114, 105, 123, 119, 124, 101, 133, 136, 130, 126, 122, 132, 115, 129, 144, 124, 107, 131, 137, 126, 126, 130, 114, 114, 128, 125, 135, 125, 150, 131, 125, 121, 115, 129, 120, 129, 131, 124, 125, 138, 149, 149, 105, 145, 121, 118, 109, 111, 145, 115, 118, 112, 142, 113, 126, 114, 111, 137, 123, 119, 137, 114, 103, 137, 120, 138, 125, 117, 127, 124, 130, 129, 134, 102, 113, 128, 132, 123, 132, 134, 124, 130, 128, 125, 121, 122, 125, 131, 140, 122, 125, 115, 135, 132, 118, 125, 124, 115, 123, 123, 120, 107, 139, 142, 112, 132, 125, 137, 130, 129, 143, 124, 128, 136, 132, 130, 127, 107, 117, 119, 118, 101, 121, 111, 127, 126, 118, 145, 114, 117, 130, 113, 129, 112, 131, 110, 140, 123, 124, 120, 132, 125, 125, 135, 146, 121, 118, 146, 116, 138, 119, 118, 122, 111, 137, 133, 134, 121, 131, 112, 142, 140, 131, 120, 122, 160, 123, 131, 132, 124, 117, 127, 147, 121, 127, 127, 133, 129, 141, 127, 132, 128, 111, 108, 108, 121, 139, 136, 125, 132, 140, 114, 124, 106, 125, 143, 128, 144, 116, 112, 114, 97, 117, 119, 117, 140, 115, 122, 130, 128, 121, 144, 142, 122, 131, 111, 118, 123, 137, 145, 115, 142, 133, 130, 110, 108, 112, 131, 129, 119, 135, 115, 133, 133, 113, 131, 118, 120, 120, 116, 118, 124, 133, 101, 168, 128, 146, 127, 130, 113, 127, 125, 135, 114, 137, 111, 118, 119, 116, 122, 141, 106, 119, 127, 123, 131, 128, 127, 128, 125, 137, 129, 148, 133, 124, 115, 131, 120, 114, 142, 123, 117, 124, 119, 138, 141, 132, 125, 118, 124, 116, 125, 128, 117, 138, 102, 128, 128, 108, 131, 144, 125, 121, 119, 125, 117, 115, 123, 116, 121, 128, 109, 126, 100, 117, 121, 133, 117, 125, 136, 122, 127, 120, 122, 115, 116, 117, 132, 135, 104, 120, 108, 127, 118, 127, 120, 119, 114, 136, 130, 117, 117, 117, 124, 118, 119, 134, 123, 118, 114, 126, 111, 181, 140, 118, 139, 124, 139, 127, 125, 132, 121, 119, 131, 117, 105, 114, 112, 131, 120, 125, 131, 114, 121, 120, 117, 111, 123, 122, 124, 120, 137, 135, 144, 100, 119, 126, 132, 145, 116, 128, 129, 117, 121, 122, 132, 118, 117, 128, 118, 124, 130, 117, 128, 118, 121, 115, 135, 129, 131, 118, 116, 134, 107, 114, 124, 138, 125, 101, 134, 114, 130, 136, 114, 122, 134, 139, 127, 118, 117, 108, 122, 123, 123, 130, 132, 121, 135, 122, 120, 131, 141, 136, 132, 125, 118, 114, 135, 143, 106, 116, 120, 111, 141, 120, 129, 130, 142, 123, 148, 125, 130, 150, 111, 130, 122, 121, 113, 121, 132, 112, 122, 133, 108, 138, 128, 127, 126, 119, 123, 121, 109, 129, 147, 127, 127, 139, 130, 121, 139, 138, 126, 141, 122, 117, 112, 129, 134, 124, 121, 108, 153, 99, 140, 137, 132, 138, 124, 135, 124, 124, 113, 124, 117, 123, 130, 112, 114, 108, 140, 142, 140, 128, 144, 130, 136, 114, 125, 137, 117, 116, 107, 123, 130, 108, 121, 125, 140, 123, 127, 121, 138, 118, 118, 127, 119, 121, 139, 126, 119, 121, 116, 108, 100, 121, 132, 102, 116, 139, 149, 123, 145, 132, 118, 132, 129, 132, 142, 117, 130, 129, 123, 127, 113, 136, 130, 119, 121, 138, 153, 130, 148, 122, 127, 120, 114, 134, 111, 112, 114, 143, 136, 115, 134, 131, 122, 137, 120, 114, 143, 117, 113, 126, 109, 131, 115, 126, 122, 135, 127, 141, 117, 116, 126, 126, 146, 113, 132, 122, 136, 121, 119, 130, 131, 112, 117, 133, 122, 145, 126, 120, 129, 132, 126, 113, 127, 131, 125, 126, 136, 104, 100, 124, 108, 130, 148, 135, 137, 124, 140, 139, 122, 122, 121, 114, 116, 138, 123, 125, 125, 120, 134, 120, 132, 134, 119, 116, 126, 113, 140, 127, 117, 140, 120, 116, 129, 118, 112, 112, 113, 128, 125, 142, 123, 108, 138, 135, 142, 118, 117, 138, 114, 112, 108, 111, 121, 134, 117, 134, 112, 123, 134, 164, 115, 135, 124, 124, 122, 130, 123, 130, 135, 115, 131, 133, 120, 126, 123, 116, 123, 136, 131, 134, 157, 127, 116, 120, 133, 120, 117, 126, 133, 137, 116, 132, 125, 119, 112, 112, 125, 134, 124, 128, 123, 124, 122, 130, 109, 123, 120, 127, 124, 142, 111, 122, 134, 145, 137, 144, 131, 117, 134, 136, 132, 126, 119, 127, 127, 129, 120, 145, 131, 108, 124, 130, 124, 122, 126, 122, 128, 126, 127, 128, 127, 130, 140, 126, 110, 104, 125, 118, 137, 131, 133, 118, 119, 126, 146, 128, 137, 125, 130, 129, 112, 119, 125, 146, 134, 127, 135, 126, 163, 131, 107, 107, 130, 133, 130, 135, 113, 134, 143, 126, 133, 128, 138, 115, 134, 108, 124, 125, 122, 121, 124, 132, 119, 103, 111, 123, 110, 114, 148, 114, 136, 127, 116, 117, 129, 105, 135, 112, 128, 131, 122, 132, 133, 129, 122, 107, 139, 124, 116, 113, 132, 126, 143, 116, 118, 150, 125, 139, 113, 112, 117, 126, 122, 109, 111, 120, 118, 121, 126, 121, 114, 117, 110, 121, 127, 119, 113, 132, 131, 142, 130, 141, 120, 118, 133, 107, 133, 120, 118, 111, 116, 122, 132, 135, 131, 128, 129, 135, 121, 116, 129, 132, 129, 128, 136, 119, 127, 122, 117, 107, 119, 120, 111, 118, 144, 119, 116, 118, 119, 118, 133, 120, 127, 141, 128, 143, 129, 121, 121, 122, 119, 130, 100, 127, 137, 127, 123, 123, 117, 127, 134, 114, 117, 121, 124, 122, 119, 121, 127, 122, 123, 143, 129, 124, 132, 129, 107, 117, 126, 137, 129, 124, 118, 132, 130, 134, 111, 110, 133, 126, 133, 127, 105, 123, 117, 126, 111, 118, 120, 129, 129, 127, 124, 118, 140, 125, 119, 132, 125, 126, 133, 137, 141, 113, 124, 97, 102, 144, 124, 118, 115, 99, 123, 123, 148, 118, 124, 129, 124, 140, 121, 140, 137, 110, 138, 110, 123, 131, 118, 113, 130, 114, 135, 123, 109, 119, 134, 135, 117, 127, 129, 120, 127, 122, 108, 134, 103, 126, 142, 132, 129, 136, 123, 131, 129, 120, 103, 131, 114, 112, 111, 128, 134, 119, 117, 102, 129, 114, 112, 148, 124, 125, 121, 115, 136, 124, 114, 133, 117, 129, 127, 110, 130, 129, 121, 123, 126, 123, 136, 118, 127, 119, 129, 101, 123, 109, 143, 144, 116, 122, 136, 121, 105, 114, 112, 122, 108, 116, 118, 145, 140, 146, 111, 130, 124, 132, 120, 114, 117, 154, 123, 126, 130, 123, 121, 143, 138, 133, 116, 130, 146, 135, 118, 134, 133, 123, 118, 130, 134, 113, 116, 131, 122, 139, 121, 123, 109, 123, 135, 123, 128, 124, 130, 138, 112, 116, 124, 132, 138, 120, 130, 119, 117, 130, 139, 129, 120, 134, 154, 103, 130, 126, 126, 137, 124, 120, 124, 129, 126, 142, 133, 148, 132, 126, 118, 118, 118, 148, 137, 124, 123, 118, 130, 136, 108, 123, 120, 129, 104, 132, 137, 133, 123, 132, 119, 98, 115, 137, 119, 129, 129, 122, 116, 132, 121, 121, 132, 108, 133, 128, 138, 129, 112, 103, 134, 101, 135, 131, 121, 121, 131, 128, 118, 116, 106, 139, 115, 117, 131, 151, 124, 118, 130, 126, 135, 129, 121, 108, 117, 119, 132, 120, 101, 131, 113, 134, 126, 119, 129, 132, 136, 124, 113, 123, 159, 125, 151, 126, 124, 136, 110, 123, 118, 137, 149, 135, 129, 113, 126, 120, 127, 107, 137, 138, 119, 134, 135, 112, 119, 128, 134, 121, 137, 130, 126, 137, 137, 124, 136, 135, 115, 128, 120, 132, 123, 116, 154, 112, 127, 129, 126, 110, 138, 137, 144, 131, 133, 137, 131, 142, 126, 119, 118, 124, 131, 129, 142, 110, 112, 122, 118, 139, 114, 135, 147, 121, 115, 129, 146, 119, 128, 119, 114, 131, 136, 110, 120, 120, 123, 143, 125, 135, 133, 120, 130, 121, 117, 126, 120, 128, 121, 109, 110, 114, 112, 125, 139, 125, 129, 107, 115, 146, 117, 138, 113, 133, 111, 129, 112, 116, 135, 132, 126, 135, 109, 129, 140, 125, 130, 127, 123, 128, 126, 133, 121, 134, 127, 135, 118, 121, 126, 108, 127, 129, 137, 119, 139, 132, 129, 123, 150, 104, 123, 148, 132, 117, 127, 133, 132, 143, 129, 131, 120, 126, 111, 123, 114, 141, 120, 106, 130, 103, 136, 140, 124, 107, 112, 133, 108, 129, 131, 152, 135, 116, 122, 150, 152, 135, 109, 143, 108, 145, 143, 127, 133, 114, 120, 116, 129, 145, 126, 128, 124, 108, 127, 124, 125, 109, 114, 113, 103, 140, 109, 127, 110, 131, 136, 120, 131, 112, 134, 123, 114, 112, 126, 136, 120, 123, 114, 122, 105, 116, 125, 110, 122, 129, 133, 146, 135, 121, 120, 126, 129, 139, 114, 128, 148, 147, 136, 122, 131, 139, 130, 123, 134, 110, 129, 117, 112, 114, 124, 152, 137, 113, 124, 117, 144, 125, 126, 135, 115, 127, 115, 116, 134, 126, 135, 139, 122, 129, 123, 113, 120, 123, 107, 144, 127, 108, 141, 126, 133, 124, 117, 138, 123, 118, 140, 118, 136, 133, 132, 113, 120, 135, 130, 127, 109, 133, 124, 119, 126, 118, 144, 121, 110, 119, 132, 110, 118, 130, 117, 114, 167, 126, 142, 129, 108, 147, 118, 137, 129, 130, 132, 127, 126, 143, 136, 138, 113, 129, 117, 127, 140, 139, 124, 146, 130, 121, 119, 130, 131, 113, 124, 128, 122, 135, 123, 137, 137, 118, 131, 141, 117, 129, 130, 134, 115, 111, 140, 114, 110, 142, 119, 132, 121, 120, 128, 139, 138, 151, 134, 152, 117, 108, 137, 126, 164, 144, 110, 133, 107, 130, 150, 119, 126, 115, 135, 135, 127, 123, 111, 115, 108, 125, 115, 135, 119, 123, 135, 135, 138, 128, 117, 121, 119, 115, 117, 115, 129, 125, 134, 111, 129, 120, 121, 128, 132, 135, 135, 129, 118, 115, 123, 137, 125, 134, 113, 133, 122, 123, 132, 125, 124, 122, 122, 131, 159, 118, 107, 139, 112, 120, 138, 116, 117, 137, 115, 125, 135, 127, 100, 123, 145, 135, 127, 126, 131, 129, 129, 135, 130, 115, 136, 120, 127, 109, 130, 135, 98, 126, 130, 125, 121, 128, 123, 126, 136, 129, 125, 134, 123, 105, 140, 129, 107, 126, 119, 105, 136, 114, 136, 123, 125, 126, 118, 129, 132, 118, 141, 102, 135, 125, 147, 126, 113, 132, 120, 120, 131, 112, 116, 134, 117, 108, 147, 129, 123, 122, 98, 116, 119, 136, 118, 130, 131, 126, 121, 114, 130, 111, 128, 121, 133, 122, 132, 140, 138, 131, 143, 138, 133, 128, 133, 132, 111, 124, 116, 129, 113, 121, 129, 154, 121, 123, 102, 105, 120, 126, 140, 118, 139, 122, 110, 117, 116, 150, 108, 120, 132, 124, 124, 100, 137, 117, 120, 140, 129, 108, 137, 120, 130, 137, 141, 121, 132, 136, 116, 130, 115, 126, 110, 127, 127, 148, 126, 121, 115, 110, 118, 138, 124, 115, 126, 127, 127, 117, 114, 122, 116, 128, 127, 101, 123, 125, 125, 98, 127, 125, 132, 115, 123, 125, 109, 118, 141, 125, 106, 146, 136, 122, 123, 126, 122, 109, 122, 153, 129, 113, 127, 124, 119, 136, 127, 134, 140, 124, 130, 125, 137, 130, 120, 131, 141, 128, 107, 121, 123, 116, 136, 118, 122, 133, 154, 120, 111, 119, 125, 114, 129, 110, 139, 119, 114, 131, 132, 128, 102, 117, 122, 130, 126, 132, 138, 126, 118, 127, 131, 127, 160, 114, 147, 125, 120, 117, 120, 127, 138, 113, 112, 133, 150, 121, 117, 133, 112, 133, 127, 116, 106, 146, 107, 123, 139, 123, 94, 134, 124, 130, 123, 116, 121, 131, 131, 130, 110, 119, 122, 111, 153, 124, 142, 130, 135, 128, 132, 138, 138, 127, 128, 148, 118, 114, 133, 114, 125, 113, 133, 137, 116, 121, 127, 116, 145, 127, 114, 125, 126, 126, 120, 157, 140, 130, 118, 122, 144, 123, 121, 120, 128, 122, 117, 139, 138, 118, 123, 129, 125, 114, 122, 121, 123, 129, 124, 129, 117, 130, 135, 147, 106, 108, 136, 118, 102, 113, 141, 109, 124, 119, 103, 112, 137, 137, 116, 131, 131, 135, 132, 118, 120, 124, 141, 127, 144, 114, 123, 116, 113, 130, 113, 128, 128, 114, 125, 123, 152, 112, 124, 125, 152, 136, 130, 132, 126, 130, 127, 127, 125, 114, 122, 127, 124, 136, 120, 117, 123, 148, 132, 115, 125, 114, 132, 131, 106, 138, 110, 135, 119, 114, 133, 131, 122, 107, 130, 131, 123, 121, 122, 135, 121, 105, 121, 142, 125, 134, 116, 100, 120, 142, 134, 126, 131, 128, 111, 118, 100, 122, 126, 135, 130, 138, 133, 108, 115, 109, 163, 121, 120, 126, 127, 117, 139, 134, 116, 111, 129, 127, 123, 112, 104, 138, 120, 109, 122, 133, 124, 123, 130, 111, 121, 121, 143, 128, 126, 100, 112, 122, 117, 142, 133, 136, 138, 131, 119, 122, 141, 131, 118, 128, 127, 107, 137, 118, 144, 125, 130, 119, 120, 134, 137, 127, 123, 125, 117, 128, 114, 132, 118, 121, 136, 124, 128, 126, 153, 126, 128, 121, 140, 131, 129, 115, 111, 129, 137, 123, 118, 122, 107, 141, 117, 112, 128, 136, 112, 125, 120, 115, 133, 130, 109, 120, 114, 95, 129, 101, 123, 125, 99, 127, 114, 110, 126, 111, 134, 122, 136, 125, 119, 132, 125, 126, 131, 130, 117, 124, 132, 122, 134, 123, 127, 145, 145, 110, 127, 123, 137, 129, 133, 121, 111, 128, 121, 116, 123, 117, 118, 122, 113, 121, 129, 125, 130, 136, 127, 118, 109, 135, 124, 144, 123, 126, 124, 113, 123, 105, 132, 154, 128, 120, 132, 142, 129, 130, 131, 136, 107, 123, 121, 113, 112, 129, 145, 131, 142, 113, 126, 107, 127, 120, 105, 136, 135, 135, 124, 142, 131, 129, 122, 122, 128, 111, 129, 136, 127, 144, 152, 126, 136, 125, 126, 113, 125, 144, 111, 115, 135, 129, 122, 130, 137, 131, 109, 129, 115, 124, 120, 143, 116, 142, 135, 129, 114, 137, 112, 113, 134, 133, 148, 124, 127, 134, 117, 149, 116, 120, 115, 128, 99, 126, 120, 135, 121, 132, 105, 142, 122, 125, 138, 140, 113, 125, 126, 119, 134, 130, 145, 131, 118, 128, 127, 134, 113, 124, 127, 122, 143, 126, 120, 112, 128, 139, 118, 127, 120, 124, 121, 130, 130, 117, 125, 121, 127, 134, 135, 119, 135, 122, 130, 128, 136, 123, 131, 113, 135, 125, 132, 114, 123, 140, 115, 118, 116, 134, 120, 139, 116, 119, 128, 128, 126, 117, 122, 137, 126, 124, 131, 133, 125, 148, 113, 145, 115, 108, 111, 114, 128, 111, 101, 130, 121, 124, 135, 141, 129, 119, 119, 115, 149, 111, 122, 128, 125, 111, 144, 110, 117, 136, 127, 127, 129, 130, 132, 129, 145, 129, 108, 126, 136, 115, 130, 131, 135, 122, 117, 108, 136, 109, 121, 154, 127, 125, 118, 119, 157, 134, 106, 121, 134, 108, 114, 133, 123, 115, 124, 132, 122, 133, 116, 122, 137, 134, 125, 128, 144, 136, 123, 122, 140, 130, 119, 142, 118, 130, 127, 113, 115, 119, 142, 133, 125, 135, 148, 129, 125, 121, 138, 99, 132, 123, 115, 135, 123, 132, 125, 101, 136, 133, 138, 115, 157, 133, 120, 124, 127, 138, 146, 144, 116, 113, 150, 141, 116, 123, 151, 145, 127, 120, 131, 106, 166, 107, 122, 132, 117, 107, 109, 116, 116, 114, 136, 130, 126, 138, 124, 114, 132, 120, 131, 115, 121, 112, 135, 133, 122, 118, 131, 127, 112, 131, 121, 127, 130, 150, 128, 105, 124, 113, 133, 114, 137, 127, 125, 124, 122, 117, 126, 144, 125, 126, 131, 125, 129, 110, 125, 125, 118, 145, 123, 124, 115, 124, 107, 124, 121, 136, 129, 117, 137, 151, 112, 135, 120, 139, 125, 123, 129, 130, 116, 119, 133, 124, 132, 130, 134, 102, 128, 136, 120, 126, 128, 121, 144, 122, 121, 113, 130, 105, 132, 99, 131, 117, 110, 131, 118, 138, 118, 128, 122, 147, 113, 107, 134, 135, 116, 106, 129, 122, 128, 124, 125, 122, 115, 113, 119, 132, 133, 118, 118, 105, 109, 121, 127, 120, 124, 125, 124, 115, 114, 135, 125, 106, 129, 127, 119, 120, 130, 124, 116, 113, 126, 135, 136, 127, 127, 123, 136, 140, 139, 128, 117, 117, 147, 112, 118, 123, 113, 121, 153, 107, 130, 121, 122, 122, 118, 119, 152, 126, 116, 124, 141, 114, 129, 104, 125, 126, 124, 129, 116, 116, 117, 121, 117, 127, 150, 118, 122, 123, 144, 109, 125, 135, 127, 133, 132, 140, 147, 127, 132, 135, 139, 119, 130, 132, 130, 115, 117, 119, 111, 120, 136, 129, 135, 127, 126, 132, 118, 133, 114, 116, 111, 146, 123, 123, 123, 133, 123, 114, 122, 120, 122, 120, 132, 115, 122, 127, 123, 125, 131, 125, 117, 120, 125, 131, 121, 130, 122, 129, 122, 109, 124, 117, 113, 100, 140, 124, 131, 133, 117, 118, 130, 142, 127, 130, 114, 145, 128, 134, 135, 103, 138, 118, 119, 138, 110, 116, 121, 134, 87, 120, 118, 107, 133, 140, 126, 110, 117, 98, 122, 119, 123, 130, 128, 149, 128, 115, 112, 125, 124, 128, 125, 117, 139, 118, 126, 127, 125, 127, 131, 129, 138, 117, 143, 133, 116, 112, 123, 116, 121, 111, 142, 126, 137, 126, 135, 118, 142, 138, 114, 129, 111, 131, 126, 132, 119, 131, 126, 142, 114, 119, 129, 139, 100, 132, 107, 136, 138, 127, 123, 117, 126, 116, 124, 122, 127, 116, 143, 121, 130, 144, 129, 107, 115, 119, 127, 123, 125, 123, 127, 125, 127, 107, 114, 129, 130, 126, 120, 119, 130, 140, 140, 127, 122, 123, 127, 131, 142, 116, 136, 131, 135, 116, 124, 133, 119, 125, 123, 125, 125, 134, 125, 119, 126, 116, 128, 132, 135, 128, 131, 126, 124, 118, 125, 129, 114, 122, 135, 113, 122, 126, 158, 128, 126, 120, 120, 139, 118, 131, 112, 113, 140, 131, 118, 131, 132, 127, 144, 116, 131, 140, 130, 123, 128, 122, 128, 141, 128, 110, 132, 127, 126, 141, 126, 128, 141, 122, 125, 133, 113, 120, 138, 131, 127, 120, 110, 121, 98, 138, 120, 111, 128, 126, 128, 153, 141, 116, 113, 125, 135, 116, 131, 132, 134, 138, 127, 126, 141, 122, 119, 114, 114, 140, 127, 118, 127, 115, 130, 132, 111, 134, 122, 108, 127, 122, 120, 129, 128, 123, 140, 122, 126, 129, 120, 112, 122, 118, 116, 127, 133, 123, 123, 136, 126, 116, 143, 142, 148, 138, 127, 113, 137, 119, 143, 133, 134, 112, 126, 119, 112, 119, 114, 125, 121, 119, 137, 123, 117, 124, 107, 131, 115, 116, 135, 134, 135, 132, 122, 127, 128, 113, 133, 105, 122, 126, 123, 130, 130, 125, 114, 145, 129, 127, 124, 130, 136, 137, 132, 103, 125, 128, 115, 117, 127, 132, 135, 123, 119, 134, 103, 133, 106, 130, 123, 135, 127, 126, 134, 110, 130, 129, 132, 111, 128, 113, 135, 130, 128, 125, 125, 134, 119, 122, 109, 134, 120, 131, 122, 121, 131, 127, 129, 120, 119, 127, 118, 133, 115, 118, 124, 127, 122, 115, 131, 119, 140, 118, 109, 126, 125, 121, 130, 113, 120, 124, 132, 137, 124, 124, 126, 122, 125, 115, 129, 117, 110, 131, 127, 124, 122, 134, 124, 121, 139, 97, 119, 91, 118, 104, 100, 120, 127, 128, 147, 124, 120, 135, 145, 124, 121, 133, 129, 120, 108, 129, 116, 111, 133, 118, 127, 127, 127, 128, 135, 112, 121, 125, 132, 132, 118, 124, 118, 136, 126, 112, 112, 132, 131, 130, 135, 116, 129, 130, 139, 134, 127, 130, 119, 128, 117, 117, 121, 117, 136, 136, 136, 144, 118, 137, 140, 132, 133, 127, 102, 123, 136, 153, 108, 114, 135, 117, 118, 126, 124, 117, 112, 136, 122, 127, 122, 132, 126, 117, 117, 138, 111, 133, 115, 108, 128, 130, 128, 103, 133, 125, 129, 119, 132, 139, 121, 115, 117, 138, 125, 135, 119, 126, 127, 128, 133, 128, 131, 117, 142, 122, 138, 116, 118, 131, 117, 148, 120, 122, 149, 127, 116, 142, 122, 128, 134, 110, 121, 121, 120, 126, 127, 127, 121, 121, 118, 126, 147, 112, 115, 119, 109, 119, 118, 129, 120, 124, 128, 113, 126, 139, 132, 127, 137, 127, 122, 143, 145, 99, 133, 122, 142, 113, 126, 135, 133, 137, 127, 127, 124, 128, 136, 125, 118, 128, 131, 134, 117, 133, 124, 115, 112, 128, 108, 126, 127, 122, 127, 127, 130, 132, 120, 128, 130, 104, 114, 122, 139, 132, 128, 117, 107, 118, 133, 128, 122, 127, 128, 121, 124, 133, 110, 126, 131, 119, 123, 142, 115, 128, 117, 114, 115, 133, 131, 117, 135, 131, 119, 128, 135, 132, 119, 118, 135, 132, 140, 95, 122, 123, 118, 136, 123, 117, 144, 117, 122, 122, 138, 128, 109, 121, 121, 119, 127, 133, 132, 143, 132, 119, 125, 123, 142, 135, 119, 116, 135, 134, 123, 135, 115, 116, 130, 132, 117, 130, 110, 117, 126, 125, 126, 123, 127, 138, 111, 115, 121, 120, 115, 109, 122, 136, 124, 114, 127, 128, 119, 119, 145, 126, 125, 127, 113, 125, 133, 115, 117, 134, 119, 112, 128, 125, 131, 139, 134, 106, 125, 112, 120, 138, 130, 133, 122, 127, 121, 123, 133, 124, 131, 124, 125, 119, 136, 145, 114, 111, 107, 130, 124, 123, 143, 132, 120, 119, 124, 129, 122, 127, 104, 126, 130, 93, 129, 123, 117, 124, 130, 135, 109, 115, 116, 126, 130, 119, 129, 133, 119, 126, 119, 135, 122, 107, 134, 119, 134, 125, 129, 134, 118, 120, 124, 122, 135, 113, 134, 129, 133, 133, 139, 129, 125, 134, 127, 123, 125, 128, 120, 140, 127, 125, 140, 134, 123, 132, 131, 120, 125, 131, 94, 134, 143, 118, 116, 115, 129, 111, 120, 122, 132, 138, 124, 133, 130, 121, 130, 116, 141, 121, 121, 148, 131, 126, 124, 122, 123, 119, 136, 126, 119, 127, 125, 122, 130, 132, 100, 129, 141, 122, 137, 130, 125, 118, 124, 140, 113, 131, 110, 141, 110, 137, 116, 124, 144, 132, 137, 132, 123, 121, 122, 105, 115, 117, 122, 119, 127, 127, 111, 143, 123, 139, 135, 138, 123, 136, 129, 127, 127, 121, 130, 132, 115, 113, 131, 137, 124, 133, 114, 117, 123, 125, 124, 125, 112, 128, 121, 119, 159, 117, 137, 128, 122, 122, 128, 128, 126, 112, 126, 126, 122, 115, 125, 123, 96, 137, 116, 140, 104, 125, 126, 135, 127, 123, 136, 121, 136, 101, 130, 110, 125, 133, 105, 139, 114, 126, 121, 118, 120, 143, 118, 125, 121, 121, 119, 116, 101, 111, 127, 110, 116, 127, 104, 135, 119, 134, 122, 122, 131, 131, 146, 114, 131, 113, 128, 114, 133, 132, 119, 108, 123, 125, 126, 127, 112, 128, 117, 129, 126, 127, 100, 137, 116, 138, 121, 136, 121, 121, 117, 125, 118, 122, 122, 148, 123, 114, 120, 122, 119, 122, 120, 117, 113, 138, 107, 124, 118, 122, 125, 138, 129, 109, 104, 137, 130, 123, 124, 119, 125, 138, 121, 131, 127, 113, 133, 132, 113, 127, 130, 124, 127, 116, 116, 120, 112, 128, 102, 144, 122, 112, 131, 126, 107, 121, 118, 123, 138, 128, 134, 125, 116, 123, 142, 126, 138, 124, 117, 116, 135, 128, 129, 150, 100, 142, 108, 140, 138, 112, 140, 128, 127, 147, 114, 133, 122, 133, 119, 130, 134, 139, 122, 147, 118, 143, 132, 116, 136, 108, 136, 101, 133, 123, 105, 108, 113, 114, 130, 141, 143, 126, 136, 145, 148, 137, 133, 115, 129, 113, 116, 115, 121, 119, 120, 122, 132, 100, 123, 126, 115, 125, 122, 143, 123, 124, 121, 103, 130, 124, 135, 130, 110, 121, 133, 113, 127, 132, 120, 110, 117, 123, 110, 140, 119, 121, 128, 126, 127, 111, 126, 142, 124, 117, 127, 131, 129, 122, 121, 122, 120, 115, 129, 109, 138, 118, 120, 127, 125, 121, 131, 121, 141, 125, 115, 129, 146, 130, 118, 133, 122, 128, 100, 119, 122, 122, 123, 126, 115, 111, 124, 120, 132, 105, 105, 123, 121, 137, 151, 131, 125, 114, 128, 123, 118, 123, 123, 138, 118, 129, 118, 133, 129, 123, 128, 119, 123, 135, 124, 118, 120, 141, 130, 137, 145, 119, 125, 115, 118, 149, 138, 104, 135, 130, 129, 130, 123, 124, 117, 129, 130, 123, 117, 133, 108, 120, 127, 119, 125, 122, 118, 135, 126, 113, 134, 118, 130, 140, 131, 108, 128, 143, 130, 131, 128, 137, 116, 129, 123, 142, 126, 124, 112, 126, 103, 119, 125, 119, 128, 130, 136, 121, 128, 131, 132, 125, 108, 113, 136, 116, 117, 137, 133, 123, 115, 147, 132, 133, 129, 127, 142, 142, 107, 125, 123, 124, 123, 133, 142, 132, 120, 142, 128, 123, 118, 127, 131, 144, 136, 135, 123, 117, 121, 128, 130, 126, 131, 132, 120, 124, 127, 129, 131, 125, 115, 119, 116, 121, 140, 145, 129, 134, 116, 122, 125, 127, 138, 119, 133, 123, 117, 119, 110, 118, 134, 138, 121, 125, 128, 136, 132, 128, 138, 114, 135, 121, 125, 126, 123, 125, 114, 131, 115, 110, 125, 144, 129, 130, 121, 114, 120, 126, 106, 132, 111, 128, 135, 128, 115, 123, 119, 132, 126, 144, 120, 135, 134, 144, 133, 116, 115, 112, 122, 117, 110, 135, 128, 139, 114, 119, 119, 129, 127, 123, 127, 121, 99, 113, 110, 112, 136, 99, 143, 137, 112, 112, 128, 159, 130, 141, 128, 118, 107, 136, 127, 130, 125, 136, 123, 133, 133, 122, 123, 139, 112, 121, 154, 132, 127, 126, 148, 140, 134, 132, 101, 117, 127, 129, 135, 132, 133, 114, 122, 126, 119, 127, 129, 127, 130, 134, 143, 119, 137, 123, 111, 140, 126, 118, 115, 137, 112, 128, 112, 123, 119, 146, 128, 131, 133, 119, 119, 124, 123, 129, 124, 128, 137, 125, 123, 120, 131, 127, 126, 110, 132, 118, 134, 138, 132, 131, 117, 122, 132, 141, 136, 115, 139, 120, 138, 123, 120, 133, 135, 114, 123, 122, 117, 124, 118, 122, 141, 125, 113, 129, 119, 127, 133, 120, 115, 124, 122, 125, 129, 122, 121, 112, 127, 118, 135, 125, 121, 106, 132, 115, 129, 119, 125, 131, 135, 120, 125, 122, 116, 126, 109, 134, 135, 141, 138, 135, 118, 127, 137, 122, 137, 120, 135, 116, 123, 114, 143, 125, 128, 126, 119, 127, 127, 117, 130, 125, 136, 129, 122, 120, 124, 135, 142, 124, 118, 100, 130, 113, 129, 126, 128, 114, 112, 122, 132, 113, 121, 117, 142, 136, 130, 138, 120, 130, 143, 123, 115, 137, 131, 121, 131, 140, 134, 137, 122, 141, 120, 126, 115, 129, 137, 118, 125, 139, 127, 122, 111, 139, 127, 127, 129, 123, 141, 122, 129, 132, 126, 127, 124, 141, 107, 131, 116, 145, 125, 139, 113, 138, 128, 132, 139, 116, 126, 122, 162, 122, 113, 130, 139, 105, 121, 126, 135, 138, 126, 140, 124, 138, 144, 137, 124, 136, 125, 113, 126, 132, 126, 128, 119, 130, 153, 131, 118, 109, 132, 120, 139, 109, 124, 127, 139, 128, 144, 114, 143, 130, 116, 115, 117, 131, 125, 118, 139, 138, 128, 125, 121, 131, 119, 124, 118, 126, 114, 128, 115, 143, 145, 134, 119, 109, 133, 128, 123, 127, 118, 116, 152, 116, 105, 129, 127, 150, 126, 117, 126, 132, 139, 148, 122, 130, 140, 147, 127, 121, 96, 121, 122, 129, 133, 116, 132, 117, 128, 113, 130, 119, 124, 120, 127, 132, 124, 131, 130, 113, 112, 105, 133, 131, 125, 127, 127, 102, 122, 122, 123, 106, 125, 137, 122, 118, 141, 142, 122, 129, 126, 138, 119, 107, 124, 120, 116, 122, 133, 140, 123, 128, 127, 137, 124, 105, 110, 116, 140, 139, 120, 109, 121, 118, 126, 108, 143, 128, 126, 118, 128, 115, 120, 134, 133, 162, 123, 115, 135, 136, 130, 135, 126, 112, 116, 105, 122, 118, 127, 126, 124, 134, 118, 144, 124, 118, 138, 115, 124, 114, 118, 107, 140, 125, 121, 111, 117, 134, 111, 138, 136, 130, 123, 119, 130, 141, 123, 137, 123, 140, 127, 118, 105, 123, 113, 119, 121, 131, 134, 114, 128, 113, 121, 117, 129, 125, 133, 136, 107, 122, 118, 120, 140, 136, 128, 100, 122, 133, 129, 129, 109, 122, 114, 121, 141, 125, 110, 114, 116, 137, 121, 108, 119, 130, 140, 113, 115, 138, 132, 137, 119, 141, 117, 121, 128, 129, 143, 132, 116, 102, 112, 109, 126, 126, 128, 126, 138, 111, 114, 141, 124, 118, 122, 131, 102, 137, 115, 123, 132, 131, 117, 131, 140, 142, 121, 128, 126, 114, 146, 133, 139, 110, 131, 132, 134, 130, 144, 131, 107, 144, 138, 132, 127, 126, 115, 134, 135, 128, 112, 125, 115, 134, 134, 120, 106, 121, 132, 129, 124, 113, 139, 131, 108, 121, 131, 104, 120, 132, 134, 105, 136, 138, 111, 112, 133, 125, 130, 124, 118, 153, 121, 151, 133, 132, 129, 130, 152, 110, 134, 133, 132, 141, 136, 118, 106, 139, 127, 133, 126, 108, 112, 105, 127, 132, 123, 131, 117, 129, 130, 93, 131, 123, 115, 123, 133, 120, 136, 138, 131, 139, 144, 126, 123, 124, 117, 123, 128, 126, 150, 129, 133, 127, 125, 121, 127, 129, 122, 121, 124, 124, 143, 107, 131, 123, 109, 115, 136, 103, 118, 146, 122, 102, 122, 122, 130, 127, 134, 138, 123, 128, 125, 130, 133, 131, 119, 111, 127, 123, 120, 118, 108, 113, 108, 145, 131, 124, 138, 103, 131, 144, 106, 112, 116, 131, 115, 130, 119, 113, 133, 117, 122, 124, 123, 131, 135, 127, 124, 133, 138, 120, 126, 127, 116, 119, 137, 126, 119, 125, 105, 105, 128, 124, 118, 140, 144, 123, 122, 112, 120, 123, 109, 130, 134, 118, 125, 125, 145, 125, 121, 140, 129, 119, 126, 120, 147, 124, 122, 100, 123, 135, 119, 124, 120, 130, 140, 128, 131, 143, 122, 129, 126, 121, 113, 115, 122, 110, 117, 138, 127, 117, 123, 135, 121, 151, 110, 143, 118, 122, 121, 140, 128, 119, 117, 138, 109, 141, 130, 112, 121, 146, 131, 135, 110, 127, 121, 137, 133, 128, 116, 121, 137, 124, 115, 137, 141, 118, 120, 126, 129, 92, 145, 141, 130, 128, 112, 112, 116, 114, 143, 113, 127, 114, 124, 114, 135, 104, 132, 123, 113, 112, 126, 141, 131, 116, 130, 126, 91, 128, 120, 116, 135, 136, 143, 122, 116, 129, 134, 122, 137, 134, 129, 127, 137, 123, 115, 124, 117, 137, 135, 123, 113, 128, 131, 116, 113, 121, 131, 119, 134, 126, 139, 129, 132, 129, 109, 128, 137, 125, 114, 104, 118, 122, 118, 109, 129, 108, 126, 129, 119, 121, 124, 121, 125, 158, 133, 126, 123, 132, 108, 131, 114, 116, 132, 122, 125, 126, 132, 129, 126, 108, 140, 122, 120, 113, 115, 102, 116, 105, 147, 120, 137, 127, 130, 135, 124, 123, 133, 123, 130, 134, 129, 105, 120, 125, 119, 120, 143, 123, 130, 124, 118, 123, 113, 123, 113, 151, 118, 139, 122, 129, 117, 128, 109, 133, 124, 135, 115, 139, 134, 137, 129, 128, 123, 136, 122, 116, 102, 127, 121, 109, 127, 124, 132, 114, 130, 136, 136, 117, 121, 128, 102, 132, 142, 135, 128, 126, 132, 127, 134, 129, 130, 126, 105, 117, 120, 151, 128, 122, 116, 132, 140, 125, 115, 126, 124, 123, 133, 134, 130, 129, 143, 122, 129, 116, 119, 150, 117, 142, 110, 138, 113, 122, 139, 130, 116, 128, 117, 123, 129, 139, 126, 125, 115, 136, 135, 134, 118, 129, 139, 123, 113, 129, 134, 138, 142, 126, 121, 132, 140, 111, 130, 121, 102, 129, 131, 129, 125, 128, 130, 141, 128, 117, 117, 124, 121, 124, 121, 132, 134, 121, 111, 141, 126, 139, 135, 123, 124, 146, 123, 128, 124, 123, 111, 115, 128, 126, 105, 133, 122, 157, 128, 122, 108, 120, 101, 140, 128, 130, 129, 131, 136, 116, 121, 124, 121, 133, 119, 112, 125, 120, 117, 133, 131, 97, 136, 126, 140, 130, 132, 122, 111, 136, 130, 123, 115, 121, 104, 130, 142, 139, 113, 118, 124, 134, 112, 128, 123, 127, 120, 115, 135, 109, 117, 125, 124, 109, 134, 124, 140, 143, 125, 122, 114, 137, 122, 129, 112, 125, 132, 148, 120, 136, 92, 131, 125, 122, 115, 139, 134, 138, 141, 119, 131, 152, 121, 109, 123, 138, 104, 126, 106, 137, 135, 138, 122, 122, 126, 127, 126, 124, 120, 118, 129, 122, 136, 139, 137, 117, 115, 131, 110, 122, 118, 120, 134, 150, 125, 133, 135, 125, 139, 119, 114, 119, 109, 121, 113, 109, 141, 136, 151, 131, 129, 127, 123, 134, 123, 127, 133, 131, 115, 118, 116, 139, 127, 139, 125, 109, 134, 138, 154, 126, 114, 123, 128, 125, 139, 119, 120, 118, 124, 127, 132, 132, 129, 107, 124, 130, 114, 115, 125, 130, 118, 112, 128, 124, 126, 142, 119, 131, 113, 130, 114, 143, 117, 124, 129, 123, 120, 109, 121, 123, 122, 118, 135, 106, 112, 121, 112, 123, 125, 100, 115, 130, 120, 113, 120, 136, 112, 121, 137, 104, 128, 128, 123, 105, 122, 121, 116, 122, 106, 122, 121, 135, 114, 148, 106, 123, 121, 114, 128, 127, 147, 103, 128, 134, 134, 125, 136, 120, 127, 121, 117, 130, 117, 139, 124, 122, 111, 120, 123, 116, 135, 119, 116, 124, 122, 139, 125, 121, 147, 135, 125, 107, 109, 124, 120, 147, 117, 134, 124, 127, 124, 133, 112, 119, 132, 136, 126, 130, 134, 126, 124, 132, 142, 125, 120, 149, 111, 141, 101, 121, 108, 109, 124, 130, 126, 121, 127, 126, 135, 127, 129, 135, 118, 125, 135, 116, 136, 113, 139, 135, 121, 129, 142, 133, 118, 121, 125, 121, 148, 130, 120, 127, 140, 123, 119, 127, 121, 119, 102, 138, 133, 126, 102, 136, 137, 125, 133, 131, 133, 117, 128, 130, 132, 110, 139, 133, 136, 116, 125, 120, 128, 123, 96, 142, 138, 139, 111, 142, 99, 133, 116, 119, 107, 116, 151, 114, 114, 123, 110, 127, 133, 134, 128, 135, 118, 125, 129, 118, 148, 119, 105, 128, 146, 131, 116, 120, 121, 123, 113, 144, 139, 131, 136, 142, 130, 115, 121, 120, 133, 140, 115, 143, 134, 118, 139, 138, 127, 126, 130, 138, 127, 123, 121, 124, 127, 126, 137, 136, 101, 120, 104, 127, 121, 117, 121, 130, 121, 137, 127, 114, 134, 137, 124, 125, 103, 126, 120, 118, 129, 131, 125, 133, 124, 156, 138, 123, 132, 122, 120, 111, 121, 137, 126, 131, 114, 139, 125, 116, 131, 125, 101, 141, 93, 130, 110, 134, 117, 116, 124, 130, 124, 127, 122, 97, 129, 127, 121, 120, 123, 124, 129, 119, 111, 138, 117, 129, 118, 114, 128, 113, 128, 118, 124, 131, 105, 120, 109, 122, 146, 118, 144, 136, 134, 131, 129, 110, 128, 139, 113, 122, 116, 110, 126, 104, 120, 133, 140, 146, 143, 138, 101, 133, 137, 124, 129, 135, 127, 138, 128, 118, 128, 121, 140, 124, 130, 124, 123, 135, 135, 116, 117, 125, 131, 126, 120, 108, 116, 119, 141, 105, 120, 117, 133, 145, 122, 116, 118, 129, 136, 119, 121, 146, 133, 103, 144, 129, 94, 114, 124, 105, 131, 138, 115, 115, 123, 145, 137, 119, 126, 128, 123, 125, 143, 138, 113, 89, 141, 108, 133, 117, 117, 128, 123, 127, 127, 127, 124, 116, 127, 107, 130, 114, 134, 113, 110, 119, 121, 118, 133, 129, 128, 114, 123, 115, 110, 114, 117, 133, 150, 132, 110, 124, 126, 127, 133, 124, 118, 114, 123, 126, 109, 136, 139, 128, 130, 120, 139, 116, 128, 138, 139, 113, 136, 129, 138, 119, 122, 122, 127, 138, 127, 123, 142, 127, 116, 123, 119, 138, 124, 112, 114, 112, 103, 108, 119, 115, 126, 141, 102, 103, 135, 134, 123, 149, 113, 127, 120, 145, 141, 104, 139, 109, 121, 136, 130, 124, 135, 136, 129, 136, 148, 129, 134, 114, 125, 107, 127, 118, 139, 131, 113, 141, 129, 112, 126, 120, 124, 133, 115, 118, 124, 107, 115, 140, 112, 125, 129, 129, 120, 112, 145, 115, 126, 125, 118, 120, 135, 151, 109, 112, 145, 128, 117, 144, 126, 125, 113, 128, 114, 146, 113, 131, 114, 113, 130, 108, 129, 119, 116, 114, 116, 122, 123, 127, 111, 132, 118, 127, 125, 118, 123, 132, 150, 122, 135, 130, 139, 130, 133, 125, 128, 121, 119, 131, 136, 112, 124, 114, 129, 129, 126, 142, 142, 131, 130, 141, 133, 122, 146, 129, 127, 132, 138, 129, 114, 127, 120, 108, 119, 134, 138, 133, 129, 126, 115, 127, 124, 112, 148, 113, 120, 144, 120, 116, 140, 156, 127, 115, 131, 122, 136, 125, 127, 134, 143, 111, 137, 133, 128, 127, 124, 134, 134, 115, 154, 122, 136, 112, 137, 151, 119, 123, 122, 137, 125, 127, 114, 119, 131, 126, 146, 128, 116, 103, 111, 122, 131, 118, 121, 123, 144, 111, 132, 99, 120, 120, 115, 124, 128, 134, 129, 149, 138, 119, 150, 111, 108, 99, 132, 125, 125, 114, 148, 139, 120, 135, 121, 120, 121, 127, 136, 120, 120, 122, 116, 138, 132, 127, 110, 124, 133, 128, 122, 121, 134, 114, 118, 128, 109, 122, 144, 118, 120, 127, 142, 118, 121, 133, 127, 126, 131, 105, 146, 122, 139, 123, 128, 123, 123, 123, 116, 117, 112, 122, 124, 125, 135, 126, 115, 115, 131, 115, 110, 129, 139, 117, 124, 128, 127, 128, 122, 115, 116, 125, 124, 131, 133, 125, 113, 141, 132, 118, 118, 122, 133, 117, 113, 120, 132, 130, 133, 135, 126, 141, 127, 136, 120, 117, 116, 122, 126, 112, 137, 129, 125, 131, 148, 124, 124, 119, 84, 131, 120, 134, 141, 123, 120, 120, 129, 126, 116, 125, 118, 138, 117, 123, 107, 126, 110, 149, 107, 118, 115, 113, 118, 117, 141, 123, 144, 141, 137, 131, 135, 122, 115, 118, 139, 117, 125, 123, 133, 119, 114, 125, 118, 136, 126, 124, 115, 121, 120, 144, 130, 148, 114, 116, 121, 129, 149, 132, 125, 105, 144, 109, 117, 131, 158, 125, 140, 133, 107, 134, 124, 114, 126, 144, 134, 129, 116, 123, 144, 128, 152, 136, 135, 125, 129, 114, 121, 111, 139, 122, 144, 137, 115, 120, 121, 131, 144, 123, 133, 133, 118, 114, 118, 124, 124, 136, 108, 126, 128, 128, 108, 132, 131, 116, 123, 144, 125, 121, 134, 115, 114, 124, 138, 133, 135, 133, 126, 89, 134, 127, 131, 124, 120, 121, 113, 115, 116, 117, 112, 123, 113, 121, 140, 126, 123, 126, 129, 127, 133, 121, 130, 146, 128, 115, 118, 141, 130, 106, 117, 128, 118, 123, 132, 130, 116, 154, 124, 131, 118, 125, 126, 122, 114, 107, 130, 138, 102, 133, 131, 120, 139, 141, 138, 123, 144, 121, 99, 130, 111, 132, 117, 137, 143, 122, 140, 120, 127, 125, 143, 134, 136, 121, 130, 102, 134, 124, 131, 133, 117, 117, 112, 114, 114, 114, 117, 130, 120, 126, 134, 117, 118, 115, 143, 121, 113, 134, 137, 134, 103, 141, 126, 120, 117, 131, 135, 133, 126, 123, 126, 139, 150, 149, 120, 113, 124, 135, 137, 131, 119, 111, 128, 120, 143, 128, 134, 115, 110, 119, 118, 128, 142, 134, 126, 135, 117, 125, 147, 118, 104, 134, 139, 129, 131, 140, 134, 107, 140, 143, 111, 118, 115, 111, 126, 126, 125, 107, 120, 143, 108, 129, 135, 128, 128, 132, 116, 123, 117, 134, 117, 139, 125, 134, 113, 130, 112, 136, 134, 131, 139, 129, 97, 124, 132, 113, 135, 138, 110, 132, 104, 120, 116, 133, 132, 131, 111, 131, 117, 150, 134, 121, 144, 124, 136, 131, 120, 129, 135, 109, 121, 135, 129, 127, 141, 136, 120, 138, 134, 117, 110, 128, 127, 100, 140, 112, 122, 140, 112, 114, 123, 115, 130, 144, 113, 154, 114, 141, 146, 125, 114, 128, 138, 149, 133, 143, 124, 156, 142, 108, 133, 131, 134, 119, 139, 145, 130, 138, 115, 129, 130, 128, 129, 130, 122, 113, 136, 106, 128, 153, 139, 130, 141, 126, 123, 112, 120, 125, 112, 133, 92, 116, 138, 117, 122, 131, 152, 122, 142, 129, 132, 120, 128, 135, 126, 127, 122, 120, 130, 118, 140, 125, 119, 110, 138, 121, 121, 111, 124, 115, 109, 135, 116, 114, 119, 113, 142, 129, 119, 123, 117, 124, 120, 132, 129, 132, 127, 124, 126, 128, 122, 116, 131, 115, 120, 125, 119, 129, 123, 137, 120, 118, 112, 114, 133, 124, 127, 120, 119, 135, 103, 128, 131, 118, 121, 126, 123, 120, 134, 136, 111, 144, 131, 144, 135, 107, 113, 114, 121, 134, 131, 124, 128, 117, 143, 128, 128, 132, 118, 132, 129, 125, 115, 133, 130, 138, 131, 123, 127, 117, 127, 126, 138, 142, 137, 121, 122, 125, 139, 125, 132, 110, 120, 129, 139, 120, 132, 118, 134, 137, 127, 124, 118, 117, 111, 132, 151, 145, 122, 127, 118, 124, 108, 132, 110, 141, 124, 117, 120, 123, 122, 122, 109, 115, 136, 123, 140, 119, 130, 125, 122, 143, 128, 135, 128, 123, 118, 123, 122, 131, 129, 114, 115, 130, 141, 134, 131, 134, 136, 117, 128, 136, 126, 128, 134, 132, 113, 124, 119, 125, 120, 121, 125, 120, 138, 133, 124, 113, 130, 120, 122, 146, 124, 126, 114, 115, 133, 130, 120, 117, 132, 128, 122, 125, 108, 130, 122, 129, 117, 138, 114, 119, 135, 106, 122, 119, 138, 133, 116, 119, 124, 131, 138, 115, 124, 137, 123, 149, 137, 124, 107, 111, 127, 119, 127, 131, 133, 124, 124, 126, 125, 126, 125, 117, 125, 116, 123, 120, 121, 133, 126, 111, 127, 128, 124, 117, 130, 124, 117, 131, 122, 129, 111, 132, 127, 130, 118, 114, 120, 126, 128, 122, 113, 135, 120, 140, 124, 125, 127, 133, 123, 114, 133, 105, 139, 105, 118, 121, 131, 117, 120, 115, 121, 125, 124, 126, 118, 122, 122, 129, 130, 133, 128, 130, 114, 133, 145, 130, 111, 153, 131, 131, 121, 144, 121, 115, 127, 127, 145, 139, 134, 136, 135, 120, 130, 121, 123, 112, 128, 114, 107, 136, 139, 134, 128, 120, 132, 117, 125, 138, 132, 121, 127, 129, 138, 141, 126, 124, 141, 123, 113, 137, 137, 136, 127, 128, 109, 122, 119, 146, 133, 148, 126, 147, 130, 159, 112, 119, 127, 111, 124, 128, 122, 121, 126, 120, 151, 131, 126, 121, 128, 127, 122, 138, 121, 128, 120, 133, 140, 130, 124, 128, 127, 128, 119, 131, 135, 126, 130, 123, 125, 123, 122, 138, 128, 135, 123, 144, 138, 112, 125, 140, 129, 132, 142, 110, 137, 89, 114, 139, 107, 126, 135, 124, 131, 127, 122, 127, 112, 111, 146, 125, 112, 127, 127, 136, 117, 123, 129, 121, 121, 123, 113, 129, 126, 125, 121, 138, 133, 139, 120, 128, 135, 119, 118, 112, 127, 120, 125, 121, 125, 134, 134, 108, 133, 107, 136, 124, 146, 133, 104, 131, 125, 125, 117, 134, 136, 150, 103, 113, 123, 116, 115, 114, 110, 124, 99, 128, 145, 122, 133, 118, 123, 130, 132, 114, 115, 127, 134, 121, 113, 126, 126, 125, 122, 137, 116, 126, 126, 142, 121, 133, 137, 141, 126, 120, 113, 122, 133, 124, 119, 135, 142, 131, 114, 111, 134, 122, 108, 131, 118, 127, 118, 107, 127, 124, 126, 131, 111, 116, 146, 112, 129, 127, 117, 134, 116, 121, 111, 117, 143, 119, 120, 115, 109, 116, 143, 122, 134, 125, 139, 124, 129, 107, 131, 134, 126, 132, 122, 114, 122, 140, 118, 122, 109, 142, 139, 132, 140, 137, 112, 135, 124, 130, 136, 135, 130, 135, 123, 120, 134, 135, 106, 123, 116, 135, 130, 109, 110, 121, 127, 122, 122, 125, 142, 139, 124, 115, 129, 135, 146, 123, 128, 143, 128, 101, 123, 106, 136, 132, 140, 109, 116, 110, 134, 140, 123, 131, 132, 117, 125, 138, 120, 133, 126, 143, 140, 128, 130, 132, 130, 124, 116, 139, 122, 128, 113, 132, 107, 132, 110, 149, 144, 120, 122, 96, 120, 124, 125, 132, 154, 134, 117, 136, 123, 118, 127, 126, 116, 129, 130, 128, 112, 136, 124, 133, 135, 134, 106, 119, 133, 131, 120, 124, 131, 135, 115, 107, 126, 126, 130, 131, 125, 137, 113, 123, 129, 145, 128, 110, 114, 137, 127, 138, 120, 128, 132, 127, 130, 118, 123, 134, 128, 123, 131, 119, 119, 131, 133, 121, 123, 123, 106, 128, 110, 125, 119, 119, 116, 130, 127, 135, 118, 125, 119, 131, 118, 132, 124, 131, 133, 131, 128, 109, 140, 118, 123, 115, 117, 142, 107, 120, 123, 116, 135, 116, 119, 143, 121, 127, 128, 121, 115, 135, 122, 126, 120, 131, 131, 110, 135, 123, 118, 119, 125, 131, 111, 112, 124, 113, 118, 126, 128, 131, 129, 118, 135, 118, 131, 136, 129, 111, 147, 128, 128, 121, 121, 117, 129, 122, 138, 125, 124, 137, 127, 116, 120, 120, 117, 121, 137, 109, 122, 126, 109, 137, 120, 136, 124, 113, 129, 126, 121, 120, 112, 116, 122, 125, 130, 141, 136, 122, 115, 125, 128, 126, 130, 116, 135, 123, 136, 132, 136, 120, 130, 123, 102, 117, 143, 132, 115, 137, 123, 128, 111, 110, 137, 141, 125, 126, 110, 134, 130, 117, 107, 122, 106, 123, 126, 125, 140, 119, 135, 133, 128, 154, 115, 124, 117, 122, 132, 126, 112, 125, 113, 114, 123, 112, 122, 130, 121, 123, 107, 134, 128, 132, 135, 140, 116, 121, 121, 149, 140, 119, 127, 143, 126, 129, 135, 114, 129, 135, 133, 107, 112, 119, 118, 132, 157, 110, 119, 124, 110, 119, 111, 107, 111, 111, 136, 122, 126, 117, 116, 124, 126, 126, 126, 127, 120, 118, 109, 133, 128, 137, 127, 122, 136, 129, 123, 129, 132, 134, 120, 99, 127, 130, 124, 134, 123, 113, 112, 126, 139, 125, 121, 119, 140, 130, 120, 119, 133, 123, 131, 126, 114, 147, 133, 137, 134, 129, 116, 132, 132, 119, 132, 140, 121, 130, 140, 109, 132, 125, 118, 119, 133, 136, 128, 137, 129, 113, 131, 129, 144, 148, 115, 111, 122, 129, 124, 128, 122, 109, 116, 146, 128, 121, 103, 139, 128, 112, 109, 119, 132, 116, 132, 116, 113, 117, 131, 141, 127, 130, 138, 126, 131, 127, 129, 128, 124, 140, 128, 118, 126, 123, 118, 122, 119, 120, 124, 118, 133, 123, 131, 140, 134, 119, 109, 138, 118, 125, 125, 137, 129, 116, 122, 121, 133, 123, 103, 118, 128, 135, 152, 130, 134, 123, 126, 124, 114, 135, 137, 119, 101, 121, 119, 127, 121, 115, 139, 134, 121, 132, 129, 134, 121, 127, 136, 123, 130, 121, 123, 128, 136, 132, 130, 114, 126, 135, 155, 116, 109, 143, 121, 100, 109, 124, 126, 127, 139, 132, 127, 132, 111, 117, 118, 128, 132, 118, 130, 124, 118, 115, 142, 131, 123, 119, 124, 121, 118, 105, 129, 134, 123, 111, 107, 117, 114, 118, 138, 138, 101, 128, 135, 137, 143, 132, 121, 131, 122, 121, 121, 127, 112, 131, 142, 130, 112, 128, 118, 112, 136, 111, 120, 119, 106, 116, 137, 123, 132, 100, 115, 129, 125, 133, 137, 126, 111, 156, 138, 115, 108, 118, 110, 133, 121, 132, 141, 122, 131, 155, 129, 125, 121, 137, 116, 97, 121, 119, 123, 122, 113, 147, 118, 127, 123, 128, 125, 125, 116, 103, 145, 124, 120, 118, 134, 145, 145, 125, 128, 133, 108, 101, 111, 141, 133, 121, 141, 124, 121, 123, 131, 121, 125, 116, 126, 138, 142, 114, 113, 127, 130, 121, 128, 118, 118, 116, 117, 117, 135, 153, 106, 97, 127, 148, 134, 131, 117, 130, 133, 127, 123, 127, 119, 131, 123, 114, 140, 123, 125, 99, 122, 129, 146, 123, 131, 105, 114, 128, 129, 123, 127, 122, 116, 140, 145, 117, 136, 143, 126, 107, 128, 134, 137, 133, 138, 132, 118, 138, 124, 117, 125, 125, 132, 129, 110, 136, 121, 115, 125, 122, 133, 121, 121, 125, 137, 112, 123, 140, 116, 149, 128, 143, 117, 140, 145, 136, 122, 113, 132, 126, 123, 127, 144, 131, 135, 138, 118, 116, 141, 128, 126, 146, 121, 129, 95, 136, 128, 117, 107, 141, 128, 118, 122, 139, 132, 127, 146, 127, 120, 134, 120, 149, 146, 124, 134, 117, 96, 138, 108, 121, 158, 106, 106, 121, 125, 138, 135, 111, 127, 125, 120, 109, 135, 131, 127, 129, 118, 126, 139, 134, 119, 125, 118, 121, 132, 133, 119, 126, 121, 117, 134, 137, 118, 122, 119, 109, 139, 122, 125, 131, 118, 130, 131, 127, 132, 108, 122, 112, 129, 110, 136, 116, 122, 132, 128, 127, 111, 114, 129, 115, 125, 109, 124, 129, 139, 134, 127, 126, 174, 143, 131, 127, 121, 107, 126, 143, 123, 125, 126, 118, 116, 141, 138, 109, 135, 116, 112, 120, 125, 154, 126, 134, 120, 134, 130, 129, 124, 125, 110, 129, 121, 126, 125, 111, 124, 131, 136, 122, 142, 134, 131, 110, 126, 112, 109, 128, 106, 130, 124, 116, 133, 139, 117, 133, 144, 124, 125, 113, 123, 107, 109, 130, 109, 129, 136, 126, 142, 128, 127, 127, 127, 123, 134, 140, 113, 113, 125, 138, 126, 159, 111, 125, 123, 103, 129, 119, 119, 119, 143, 118, 134, 110, 128, 123, 143, 121, 113, 118, 123, 116, 123, 125, 121, 127, 126, 132, 124, 131, 133, 114, 119, 135, 128, 132, 151, 127, 125, 126, 119, 109, 112, 98, 163, 120, 117, 143, 111, 122, 117, 128, 136, 118, 129, 114, 126, 120, 142, 131, 145, 129, 141, 131, 137, 153, 132, 134, 111, 122, 125, 137, 142, 125, 129, 133, 142, 135, 117, 108, 134, 130, 118, 125, 113, 143, 118, 134, 129, 123, 125, 118, 112, 128, 131, 122, 123, 116, 138, 113, 109, 128, 124, 125, 107, 128, 135, 138, 134, 115, 122, 116, 124, 125, 141, 132, 139, 122, 125, 129, 124, 124, 134, 108, 123, 151, 140, 109, 111, 121, 137, 115, 122, 125, 119, 130, 135, 128, 137, 140, 117, 136, 134, 128, 138, 133, 108, 136, 134, 120, 134, 110, 119, 109, 146, 116, 119, 129, 121, 136, 137, 138, 120, 130, 113, 120, 126, 108, 138, 108, 144, 122, 124, 140, 128, 122, 119, 122, 104, 122, 125, 131, 113, 126, 121, 136, 138, 124, 138, 134, 118, 119, 143, 110, 137, 111, 136, 122, 138, 128, 113, 125, 119, 120, 116, 126, 136, 116, 124, 132, 120, 138, 125, 131, 123, 116, 138, 123, 126, 118, 131, 127, 113, 122, 133, 112, 121, 122, 105, 126, 110, 121, 121, 126, 126, 131, 129, 119, 121, 121, 124, 118, 111, 128, 120, 111, 139, 127, 100, 136, 134, 136, 112, 142, 144, 126, 117, 130, 112, 146, 113, 117, 130, 131, 122, 130, 119, 137, 127, 135, 143, 126, 171, 122, 105, 109, 104, 133, 133, 117, 130, 121, 133, 117, 119, 130, 139, 134, 136, 135, 133, 137, 123, 120, 118, 100, 128, 122, 112, 123, 124, 119, 114, 136, 130, 102, 130, 120, 127, 119, 145, 110, 132, 140, 121, 106, 126, 122, 115, 131, 126, 131, 128, 89, 113, 121, 121, 112, 122, 121, 124, 123, 153, 124, 116, 125, 146, 145, 132, 122, 118, 143, 131, 122, 129, 123, 118, 131, 104, 134, 123, 109, 121, 114, 125, 134, 145, 120, 117, 118, 110, 107, 116, 116, 112, 124, 97, 135, 148, 123, 148, 126, 139, 121, 132, 106, 130, 92, 108, 122, 163, 128, 141, 127, 127, 137, 118, 140, 118, 142, 124, 133, 136, 127, 126, 120, 118, 126, 119, 121, 114, 125, 130, 108, 140, 111, 112, 118, 126, 128, 118, 134, 121, 123, 149, 126, 126, 124, 125, 118, 113, 137, 125, 115, 110, 113, 131, 107, 115, 129, 108, 123, 121, 111, 109, 115, 113, 127, 122, 121, 126, 123, 118, 132, 123, 152, 113, 139, 127, 130, 128, 114, 137, 118, 102, 133, 136, 117, 144, 133, 113, 146, 104, 133, 106, 134, 118, 114, 134, 141, 125, 128, 126, 113, 132, 131, 122, 134, 139, 121, 153, 122, 117, 118, 116, 116, 134, 124, 127, 120, 124, 111, 127, 104, 115, 115, 137, 122, 122, 143, 122, 148, 133, 114, 115, 130, 146, 118, 112, 117, 119, 131, 138, 129, 116, 102, 146, 113, 122, 110, 128, 121, 129, 109, 119, 120, 105, 100, 109, 123, 130, 119, 129, 120, 127, 147, 134, 115, 130, 118, 118, 119, 129, 117, 106, 115, 140, 124, 119, 107, 124, 131, 150, 106, 119, 134, 134, 123, 132, 126, 121, 109, 126, 133, 125, 108, 132, 124, 127, 120, 130, 129, 135, 130, 125, 144, 101, 123, 138, 139, 127, 113, 133, 108, 115, 138, 131, 125, 130, 126, 145, 107, 136, 131, 110, 121, 139, 109, 132, 105, 130, 124, 133, 133, 125, 129, 117, 121, 112, 128, 133, 123, 137, 141, 121, 141, 117, 119, 129, 123, 129, 126, 128, 135, 113, 140, 124, 143, 123, 132, 127, 123, 130, 129, 130, 118, 112, 125, 143, 117, 124, 123, 126, 124, 129, 129, 137, 138, 126, 135, 104, 144, 116, 122, 128, 153, 124, 113, 122, 114, 124, 119, 136, 130, 141, 106, 111, 116, 109, 117, 126, 105, 132, 126, 135, 110, 121, 135, 129, 150, 141, 138, 127, 105, 120, 119, 129, 128, 139, 140, 119, 114, 122, 135, 125, 139, 131, 142, 137, 136, 138, 134, 113, 118, 111, 130, 124, 114, 142, 117, 119, 125, 123, 142, 112, 114, 132, 114, 126, 134, 144, 139, 131, 127, 124, 133, 113, 130, 121, 121, 123, 127, 138, 129, 131, 114, 102, 111, 114, 119, 125, 119, 122, 112, 141, 121, 141, 130, 144, 124, 152, 123, 134, 114, 110, 113, 129, 131, 130, 124, 124, 129, 123, 122, 124, 122, 125, 126, 129, 125, 109, 119, 114, 117, 137, 117, 132, 137, 108, 133, 129, 114, 118, 133, 129, 114, 127, 123, 137, 152, 129, 133, 100, 132, 116, 128, 136, 124, 124, 111, 129, 111, 124, 114, 111, 136, 128, 120, 119, 128, 135, 114, 133, 124, 118, 134, 119, 128, 123, 131, 137, 117, 108, 125, 134, 118, 125, 135, 121, 135, 124, 126, 122, 127, 127, 128, 135, 126, 127, 136, 134, 135, 121, 129, 130, 120, 129, 127, 115, 111, 109, 134, 125, 124, 135, 115, 120, 131, 120, 129, 128, 138, 131, 136, 127, 117, 130, 150, 126, 123, 126, 113, 121, 122, 109, 113, 100, 121, 120, 130, 128, 121, 139, 144, 129, 149, 125, 125, 133, 141, 124, 103, 125, 108, 122, 121, 113, 136, 134, 135, 122, 121, 130, 143, 137, 128, 132, 121, 125, 123, 120, 121, 123, 117, 126, 120, 113, 118, 132, 132, 142, 120, 130, 140, 107, 124, 111, 124, 127, 116, 127, 127, 119, 118, 128, 129, 112, 136, 123, 128, 121, 135, 117, 128, 125, 130, 137, 133, 123, 135, 121, 109, 129, 112, 131, 128, 133, 135, 110, 121, 126, 122, 124, 141, 129, 156, 129, 111, 123, 128, 125, 131, 130, 124, 115, 134, 111, 124, 121, 137, 133, 144, 116, 130, 115, 134, 138, 140, 123, 140, 122, 114, 140, 132, 132, 113, 108, 118, 135, 155, 139, 118, 111, 124, 129, 126, 140, 119, 115, 130, 118, 105, 130, 141, 121, 138, 138, 145, 134, 135, 115, 126, 117, 120, 118, 132, 130, 129, 134, 117, 130, 136, 120, 132, 138, 129, 125, 118, 129, 126, 124, 128, 125, 127, 127, 122, 116, 115, 137, 150, 115, 139, 113, 135, 132, 122, 111, 124, 106, 127, 125, 115, 116, 141, 122, 144, 116, 126, 118, 128, 141, 126, 133, 118, 113, 129, 117, 128, 140, 115, 135, 111, 126, 113, 139, 118, 128, 143, 111, 108, 128, 131, 137, 125, 137, 133, 136, 121, 130, 128, 119, 118, 105, 131, 137, 122, 125, 122, 139, 136, 114, 119, 127, 132, 117, 134, 117, 121, 137, 129, 117, 131, 125, 126, 117, 119, 140, 128, 122, 123, 132, 129, 138, 120, 116, 121, 138, 111, 126, 133, 141, 128, 117, 133, 126, 134, 116, 129, 121, 125, 135, 120, 120, 134, 130, 116, 115, 125, 121, 121, 129, 118, 124, 115, 126, 135, 131, 117, 128, 118, 151, 130, 128, 130, 121, 122, 133, 121, 115, 126, 118, 123, 139, 116, 169, 114, 131, 128, 135, 131, 126, 97, 116, 121, 104, 131, 129, 132, 129, 122, 136, 100, 127, 143, 121, 125, 134, 137, 107, 143, 109, 128, 137, 143, 126, 120, 120, 110, 140, 150, 132, 126, 124, 130, 124, 132, 135, 132, 121, 121, 113, 141, 114, 121, 130, 125, 127, 131, 146, 136, 113, 125, 115, 109, 131, 132, 117, 146, 122, 143, 123, 133, 117, 122, 116, 137, 118, 123, 132, 117, 118, 105, 113, 117, 158, 110, 113, 111, 103, 115, 114, 121, 126, 131, 135, 123, 125, 127, 127, 130, 141, 118, 125, 127, 111, 129, 120, 136, 124, 134, 123, 133, 130, 135, 130, 142, 140, 113, 119, 114, 120, 127, 115, 132, 133, 119, 137, 120, 145, 120, 121, 126, 136, 133, 133, 131, 126, 131, 111, 122, 136, 121, 121, 140, 132, 140, 118, 119, 125, 132, 115, 127, 125, 119, 154, 120, 149, 119, 121, 128, 131, 124, 118, 111, 139, 119, 141, 132, 117, 114, 117, 113, 121, 129, 105, 119, 118, 124, 124, 123, 116, 123, 140, 113, 136, 123, 124, 117, 153, 129, 119, 120, 107, 137, 106, 130, 133, 141, 102, 135, 118, 125, 123, 148, 125, 133, 116, 120, 123, 132, 112, 122, 130, 129, 129, 135, 115, 136, 135, 135, 138, 119, 116, 121, 126, 121, 137, 133, 124, 122, 113, 111, 114, 134, 121, 126, 112, 140, 129, 129, 110, 119, 122, 122, 120, 128, 112, 117, 123, 122, 105, 125, 110, 119, 154, 119, 123, 122, 149, 124, 133, 121, 134, 134, 98, 121, 126, 127, 135, 125, 133, 123, 118, 126, 131, 137, 110, 137, 124, 122, 111, 124, 133, 112, 121, 121, 115, 114, 133, 119, 120, 123, 125, 133, 118, 131, 121, 138, 124, 137, 108, 108, 125, 128, 122, 122, 132, 134, 114, 134, 143, 133, 131, 123, 130, 128, 122, 154, 128, 130, 126, 130, 143, 131, 127, 136, 137, 130, 135, 138, 124, 119, 120, 130, 126, 120, 120, 128, 130, 112, 129, 117, 137, 127, 116, 134, 109, 118, 135, 136, 122, 132, 127, 116, 131, 116, 116, 132, 136, 107, 117, 144, 127, 119, 123, 118, 113, 133, 120, 124, 126, 121, 134, 131, 132, 127, 138, 122, 131, 143, 127, 142, 134, 124, 123, 132, 120, 135, 113, 111, 133, 120, 127, 102, 124, 140, 112, 125, 143, 120, 128, 118, 118, 112, 120, 149, 122, 112, 141, 129, 140, 149, 139, 129, 130, 131, 155, 118, 130, 130, 132, 129, 131, 118, 120, 121, 118, 130, 113, 130, 124, 117, 125, 130, 130, 145, 132, 131, 117, 130, 120, 122, 124, 122, 127, 138, 115, 152, 133, 132, 132, 119, 125, 109, 129, 124, 141, 120, 117, 109, 123, 140, 120, 117, 132, 119, 119, 119, 105, 142, 110, 110, 115, 114, 140, 131, 125, 118, 122, 115, 140, 127, 116, 104, 129, 123, 117, 131, 113, 126, 148, 122, 118, 117, 133, 127, 128, 124, 119, 111, 121, 123, 131, 126, 138, 116, 120, 131, 118, 128, 125, 126, 108, 130, 119, 132, 121, 120, 128, 117, 120, 127, 114, 137, 117, 138, 115, 122, 134, 133, 113, 129, 135, 133, 116, 120, 133, 126, 122, 116, 128, 116, 110, 128, 108, 123, 119, 130, 116, 135, 117, 113, 130, 130, 111, 114, 133, 122, 108, 124, 117, 119, 114, 137, 113, 123, 119, 131, 151, 124, 123, 116, 132, 135, 125, 123, 115, 141, 121, 138, 129, 154, 124, 121, 129, 137, 132, 123, 144, 133, 141, 130, 124, 118, 123, 143, 143, 117, 122, 119, 120, 120, 112, 112, 133, 127, 107, 105, 116, 122, 136, 144, 140, 134, 126, 131, 139, 123, 122, 125, 126, 121, 120, 121, 118, 121, 120, 133, 125, 118, 127, 118, 139, 115, 116, 115, 120, 105, 120, 115, 126, 114, 111, 146, 126, 138, 131, 113, 120, 152, 131, 138, 129, 139, 123, 118, 113, 106, 129, 128, 140, 132, 126, 140, 131, 117, 122, 113, 106, 102, 119, 111, 140, 125, 112, 126, 125, 129, 116, 130, 124, 126, 129, 138, 120, 133, 134, 126, 108, 117, 128, 108, 130, 130, 128, 115, 100, 123, 112, 121, 130, 129, 122, 117, 137, 96, 128, 111, 109, 147, 130, 121, 124, 131, 124, 138, 104, 127, 114, 126, 127, 128, 113, 131, 133, 154, 129, 115, 147, 121, 132, 123, 133, 138, 119, 124, 127, 131, 135, 133, 137, 116, 126, 136, 136, 133, 120, 122, 125, 128, 124, 137, 149, 96, 116, 138, 143, 124, 125, 120, 133, 133, 125, 100, 128, 116, 128, 122, 122, 136, 136, 110, 118, 119, 128, 130, 128, 129, 145, 137, 105, 128, 130, 107, 125, 141, 117, 105, 123, 130, 121, 130, 147, 168, 132, 106, 136, 124, 127, 131, 122, 135, 129, 131, 121, 119, 127, 117, 133, 121, 129, 143, 113, 123, 118, 119, 152, 117, 133, 150, 122, 122, 118, 142, 125, 126, 121, 138, 135, 133, 116, 125, 123, 126, 131, 123, 118, 123, 123, 113, 128, 117, 120, 132, 122, 123, 136, 120, 139, 140, 122, 136, 124, 128, 114, 123, 128, 130, 137, 114, 111, 131, 138, 128, 137, 118, 134, 140, 133, 120, 122, 114, 115, 130, 133, 139, 127, 140, 143, 123, 131, 134, 113, 115, 140, 121, 118, 119, 115, 113, 122, 120, 133, 111, 115, 130, 130, 112, 125, 126, 131, 116, 125, 118, 125, 132, 117, 120, 116, 130, 121, 141, 122, 141, 121, 134, 107, 130, 133, 125, 128, 108, 135, 125, 141, 135, 118, 122, 141, 141, 125, 111, 127, 122, 110, 126, 125, 140, 149, 143, 128, 124, 124, 133, 129, 144, 123, 126, 135, 133, 123, 118, 103, 134, 125, 133, 128, 130, 127, 133, 113, 117, 122, 135, 103, 122, 126, 123, 125, 117, 141, 124, 144, 126, 136, 130, 124, 127, 140, 137, 136, 116, 124, 124, 139, 129, 139, 128, 121, 117, 142, 151, 136, 160, 124, 107, 110, 119, 117, 110, 135, 115, 118, 121, 125, 113, 132, 133, 126, 144, 126, 132, 128, 121, 144, 120, 118, 146, 123, 138, 146, 118, 112, 117, 138, 122, 127, 134, 154, 115, 123, 127, 125, 123, 116, 116, 129, 110, 131, 119, 118, 133, 127, 137, 130, 139, 110, 132, 122, 131, 112, 154, 113, 125, 125, 136, 121, 122, 119, 123, 127, 141, 105, 117, 111, 124, 122, 123, 126, 119, 115, 120, 129, 137, 132, 125, 120, 139, 129, 115, 126, 127, 124, 152, 130, 107, 108, 115, 130, 121, 116, 142, 134, 129, 134, 146, 126, 116, 130, 128, 136, 140, 124, 112, 132, 131, 124, 116, 131, 131, 121, 114, 121, 102, 139, 138, 136, 115, 119, 127, 131, 101, 132, 123, 119, 142, 100, 133, 119, 121, 135, 133, 120, 118, 139, 129, 116, 127, 123, 124, 116, 134, 130, 105, 122, 125, 114, 137, 126, 119, 124, 135, 126, 125, 127, 105, 120, 137, 124, 119, 129, 113, 108, 110, 129, 112, 110, 136, 117, 128, 119, 119, 136, 97, 120, 127, 116, 125, 125, 136, 142, 125, 124, 103, 131, 122, 115, 128, 117, 134, 127, 121, 118, 128, 113, 124, 115, 131, 129, 113, 119, 120, 122, 148, 124, 117, 128, 138, 119, 124, 135, 122, 132, 151, 114, 127, 116, 115, 95, 123, 136, 118, 126, 129, 147, 125, 109, 135, 124, 128, 147, 144, 133, 123, 113, 114, 135, 120, 120, 111, 133, 147, 117, 117, 125, 130, 148, 135, 130, 135, 129, 129, 119, 129, 127, 106, 135, 140, 128, 130, 131, 152, 133, 138, 105, 127, 106, 144, 120, 118, 129, 134, 160, 116, 127, 98, 108, 141, 104, 108, 124, 113, 125, 132, 137, 118, 120, 125, 125, 127, 115, 135, 117, 129, 134, 115, 125, 129, 120, 116, 126, 142, 130, 139, 112, 150, 145, 122, 121, 128, 133, 118, 122, 130, 133, 109, 127, 119, 116, 149, 127, 143, 126, 125, 146, 131, 140, 134, 136, 146, 143, 129, 138, 142, 140, 126, 146, 129, 145, 111, 121, 132, 129, 128, 130, 116, 115, 133, 103, 130, 128, 106, 117, 135, 130, 126, 119, 126, 123, 113, 133, 117, 129, 144, 126, 137, 133, 105, 116, 116, 136, 132, 137, 140, 150, 121, 128, 123, 113, 122, 131, 145, 124, 120, 123, 124, 111, 110, 108, 119, 131, 132, 132, 113, 119, 126, 132, 126, 120, 131, 136, 128, 120, 115, 127, 119, 124, 110, 123, 128, 134, 126, 119, 121, 107, 109, 137, 139, 132, 126, 148, 119, 143, 130, 138, 130, 120, 109, 137, 127, 127, 130, 118, 142, 124, 113, 136, 122, 128, 119, 116, 121, 123, 115, 123, 130, 111, 117, 136, 125, 126, 136, 100, 119, 137, 128, 117, 115, 123, 136, 137, 122, 119, 128, 152, 142, 131, 121, 140, 122, 121, 116, 138, 132, 115, 126, 113, 102, 128, 125, 115, 119, 140, 128, 139, 105, 131, 123, 117, 118, 125, 135, 134, 124, 122, 120, 127, 134, 133, 117, 104, 119, 118, 110, 115, 102, 119, 134, 119, 127, 141, 121, 119, 133, 148, 116, 137, 131, 121, 103, 111, 120, 136, 114, 129, 104, 132, 132, 117, 126, 127, 128, 109, 137, 139, 123, 128, 138, 117, 123, 126, 124, 121, 117, 119, 116, 128, 126, 129, 135, 108, 124, 124, 122, 114, 106, 126, 133, 119, 118, 129, 126, 133, 126, 135, 121, 143, 118, 130, 113, 127, 128, 123, 126, 137, 123, 124, 127, 150, 130, 144, 140, 132, 140, 126, 125, 141, 127, 125, 139, 136, 121, 134, 86, 143, 144, 139, 139, 114, 129, 127, 121, 122, 117, 120, 123, 131, 130, 115, 136, 124, 101, 132, 123, 116, 124, 123, 117, 130, 116, 102, 118, 130, 142, 114, 106, 120, 131, 102, 103, 133, 133, 129, 135, 128, 131, 143, 117, 139, 126, 130, 132, 134, 119, 119, 122, 156, 109, 118, 124, 125, 120, 121, 129, 122, 122, 127, 131, 130, 104, 116, 135, 139, 116, 124, 163, 130, 119, 124, 134, 128, 134, 112, 165, 114, 106, 129, 126, 126, 119, 128, 144, 116, 120, 115, 127, 135, 110, 128, 122, 134, 112, 143, 115, 134, 139, 132, 135, 136, 119, 128, 121, 124, 109, 118, 120, 116, 118, 127, 136, 112, 126, 132, 133, 125, 144, 152, 126, 125, 131, 136, 125, 136, 137, 136, 124, 122, 116, 92, 129, 132, 129, 131, 141, 115, 107, 113, 119, 130, 134, 123, 130, 118, 139, 121, 106, 119, 119, 133, 118, 138, 133, 134, 129, 132, 112, 133, 131, 138, 119, 124, 139, 108, 138, 114, 103, 124, 140, 132, 131, 120, 123, 119, 125, 115, 114, 135, 117, 118, 133, 125, 127, 123, 130, 141, 129, 123, 133, 128, 109, 123, 94, 115, 121, 113, 121, 138, 123, 135, 124, 111, 119, 125, 136, 139, 130, 136, 126, 129, 124, 117, 114, 120, 127, 131, 131, 140, 122, 118, 124, 108, 131, 111, 137, 127, 141, 123, 151, 131, 124, 126, 126, 120, 126, 113, 125, 161, 125, 132, 130, 129, 151, 116, 116, 147, 134, 136, 122, 123, 116, 124, 115, 135, 116, 115, 121, 129, 141, 115, 139, 116, 122, 116, 122, 118, 128, 144, 127, 122, 139, 138, 111, 112, 136, 130, 125, 134, 126, 120, 139, 130, 117, 136, 119, 122, 134, 138, 137, 131, 114, 130, 121, 141, 138, 117, 123, 129, 132, 116, 125, 111, 127, 137, 120, 111, 134, 122, 130, 150, 110, 127, 124, 120, 134, 132, 121, 118, 116, 134, 112, 112, 140, 120, 126, 134, 132, 124, 107, 129, 120, 136, 151, 129, 127, 124, 148, 121, 136, 128, 129, 134, 110, 116, 130, 107, 120, 126, 126, 124, 128, 136, 132, 121, 116, 126, 142, 119, 123, 136, 124, 114, 118, 116, 126, 137, 129, 120, 112, 125, 124, 119, 126, 128, 113, 119, 127, 131, 125, 116, 101, 125, 142, 122, 131, 130, 113, 132, 127, 118, 117, 125, 136, 110, 116, 133, 116, 121, 121, 120, 123, 126, 126, 138, 133, 122, 132, 125, 127, 155, 116, 123, 130, 129, 123, 130, 128, 113, 127, 125, 131, 137, 102, 139, 133, 124, 129, 137, 128, 143, 128, 111, 109, 122, 117, 132, 114, 115, 130, 131, 99, 126, 132, 131, 125, 137, 123, 126, 123, 138, 137, 121, 130, 152, 130, 126, 131, 119, 118, 119, 139, 125, 121, 119, 119, 133, 134, 123, 140, 118, 133, 127, 119, 145, 124, 107, 125, 128, 127, 140, 124, 141, 138, 95, 121, 124, 106, 129, 129, 110, 123, 115, 129, 139, 133, 144, 127, 127, 129, 128, 125, 117, 127, 118, 123, 111, 132, 126, 106, 118, 145, 123, 119, 118, 110, 123, 124, 142, 120, 131, 131, 124, 125, 122, 129, 122, 117, 125, 132, 122, 118, 106, 121, 135, 132, 126, 137, 107, 110, 102, 132, 114, 130, 111, 116, 123, 117, 132, 131, 122, 110, 121, 137, 126, 109, 116, 122, 129, 117, 118, 102, 120, 143, 128, 142, 135, 132, 119, 134, 139, 127, 136, 113, 141, 121, 134, 116, 119, 119, 122, 134, 116, 114, 119, 125, 136, 111, 124, 132, 132, 129, 136, 139, 132, 135, 122, 121, 124, 144, 124, 111, 116, 116, 134, 131, 119, 123, 116, 107, 125, 121, 117, 144, 132, 127, 122, 121, 131, 117, 123, 107, 133, 129, 121, 123, 132, 116, 120, 126, 117, 119, 121, 121, 129, 132, 147, 141, 118, 143, 106, 128, 123, 121, 122, 122, 113, 137, 116, 136, 123, 125, 107, 128, 129, 123, 109, 136, 132, 114, 136, 123, 158, 141, 123, 126, 129, 124, 128, 129, 112, 127, 115, 105, 116, 106, 144, 128, 139, 117, 140, 130, 139, 137, 135, 95, 124, 102, 116, 116, 135, 144, 130, 119, 126, 119, 119, 123, 124, 118, 114, 120, 158, 129, 133, 111, 143, 121, 113, 136, 122, 131, 140, 128, 109, 107, 114, 126, 117, 118, 120, 119, 121, 130, 122, 141, 112, 115, 135, 136, 123, 125, 128, 127, 129, 135, 115, 127, 117, 120, 133, 125, 130, 120, 123, 114, 129, 109, 114, 141, 126, 131, 130, 131, 133, 128, 133, 125, 129, 127, 136, 131, 122, 122, 131, 121, 111, 128, 135, 121, 144, 127, 132, 116, 126, 135, 121, 124, 120, 133, 123, 115, 118, 112, 111, 145, 151, 139, 133, 122, 126, 118, 137, 129, 142, 135, 112, 142, 131, 158, 122, 115, 126, 122, 113, 107, 127, 132, 120, 133, 120, 143, 134, 129, 144, 110, 147, 130, 113, 123, 120, 122, 128, 135, 136, 126, 118, 122, 117, 126, 136, 123, 129, 127, 126, 119, 144, 124, 125, 133, 132, 143, 124, 130, 127, 118, 123, 128, 124, 118, 127, 133, 134, 120, 124, 124, 131, 123, 138, 111, 117, 134, 129, 126, 137, 122, 136, 117, 138, 105, 106, 143, 123, 123, 117, 122, 134, 126, 114, 120, 121, 118, 149, 140, 108, 123, 129, 139, 130, 134, 122, 126, 125, 126, 128, 143, 124, 118, 129, 130, 126, 119, 129, 113, 128, 143, 124, 129, 126, 124, 132, 122, 127, 139, 137, 134, 128, 123, 114, 126, 120, 127, 131, 116, 121, 119, 117, 121, 126, 109, 139, 123, 135, 114, 127, 126, 129, 132, 109, 128, 124, 133, 155, 131, 120, 107, 119, 120, 123, 121, 129, 122, 141, 121, 122, 119, 132, 135, 119, 108, 115, 125, 129, 122, 110, 114, 129, 119, 134, 127, 128, 126, 122, 122, 118, 137, 120, 128, 114, 123, 114, 125, 126, 138, 116, 129, 121, 123, 127, 116, 143, 126, 140, 125, 116, 131, 145, 109, 128, 135, 140, 151, 126, 134, 132, 124, 122, 130, 122, 141, 144, 117, 140, 121, 120, 130, 103, 136, 129, 136, 136, 131, 125, 123, 119, 106, 127, 136, 116, 126, 116, 150, 118, 131, 120, 140, 125, 118, 130, 143, 120, 119, 106, 121, 135, 122, 109, 138, 124, 127, 124, 121, 144, 127, 135, 115, 123, 121, 129, 134, 118, 129, 115, 145, 120, 130, 110, 119, 134, 114, 127, 110, 125, 128, 134, 139, 116, 109, 117, 128, 129, 123, 127, 132, 138, 145, 136, 134, 122, 121, 133, 142, 122, 119, 121, 118, 131, 128, 151, 126, 121, 128, 131, 138, 143, 129, 120, 132, 116, 124, 127, 120, 122, 117, 126, 124, 110, 121, 130, 139, 123, 122, 103, 117, 119, 127, 112, 129, 112, 128, 117, 134, 136, 135, 126, 106, 125, 128, 130, 131, 128, 123, 128, 138, 129, 121, 131, 131, 133, 113, 109, 137, 116, 128, 131, 116, 121, 126, 116, 135, 121, 135, 120, 134, 130, 142, 108, 127, 136, 117, 131, 115, 130, 130, 111, 130, 138, 108, 116, 113, 132, 118, 126, 130, 120, 123, 116, 130, 124, 132, 120, 132, 137, 123, 130, 117, 127, 133, 134, 125, 114, 113, 131, 105, 129, 126, 119, 128, 133, 114, 135, 121, 138, 115, 135, 127, 126, 126, 126, 138, 129, 125, 121, 137, 134, 127, 132, 134, 117, 120, 107, 129, 114, 127, 123, 130, 104, 147, 130, 123, 102, 106, 118, 135, 133, 130, 123, 116, 129, 122, 111, 140, 126, 116, 121, 121, 128, 119, 137, 143, 117, 126, 120, 108, 115, 155, 122, 138, 105, 120, 129, 123, 122, 118, 126, 129, 128, 112, 117, 123, 112, 119, 119, 95, 129, 138, 120, 114, 127, 120, 143, 124, 120, 119, 121, 114, 134, 131, 125, 138, 124, 137, 142, 138, 121, 136, 123, 133, 146, 125, 140, 112, 112, 131, 138, 119, 129, 106, 125, 125, 136, 134, 130, 134, 136, 119, 131, 117, 114, 122, 127, 135, 135, 122, 129, 117, 121, 106, 119, 135, 142, 123, 130, 130, 135, 107, 105, 135, 132, 125, 116, 123, 106, 133, 121, 141, 107, 118, 114, 118, 127, 123, 137, 124, 125, 141, 126, 118, 121, 116, 125, 121, 136, 118, 111, 121, 136, 128, 131, 127, 132, 133, 107, 124, 122, 121, 125, 122, 124, 114, 136, 133, 125, 130, 125, 131, 131, 132, 119, 134, 114, 153, 130, 126, 115, 117, 121, 140, 143, 128, 134, 114, 119, 129, 109, 121, 125, 112, 126, 103, 126, 127, 127, 130, 131, 129, 127, 119, 120, 112, 125, 127, 128, 124, 109, 131, 125, 112, 110, 136, 126, 126, 134, 137, 115, 129, 110, 135, 133, 120, 127, 127, 128, 123, 136, 117, 126, 124, 107, 117, 134, 131, 139, 115, 117, 129, 120, 111, 128, 142, 101, 123, 111, 118, 126, 125, 108, 118, 123, 124, 116, 125, 114, 102, 127, 119, 102, 133, 123, 129, 143, 120, 127, 133, 140, 143, 114, 121, 126, 134, 126, 132, 117, 120, 120, 125, 113, 136, 130, 135, 123, 135, 147, 129, 128, 125, 125, 137, 129, 135, 116, 140, 117, 115, 120, 128, 127, 133, 140, 127, 129, 118, 136, 136, 126, 129, 120, 114, 147, 113, 129, 129, 134, 122, 143, 127, 130, 143, 120, 129, 122, 156, 140, 140, 125, 118, 111, 130, 119, 127, 149, 125, 119, 120, 132, 126, 130, 108, 124, 126, 116, 121, 121, 124, 137, 115, 135, 123, 106, 143, 140, 124, 120, 120, 122, 133, 130, 115, 131, 118, 129, 117, 123, 144, 128, 118, 112, 137, 125, 125, 120, 123, 120, 123, 121, 125, 109, 126, 129, 119, 125, 111, 117, 143, 126, 139, 114, 120, 121, 113, 144, 132, 137, 140, 127, 109, 116, 136, 145, 125, 119, 131, 138, 121, 130, 128, 121, 121, 136, 125, 126, 115, 125, 120, 134, 121, 134, 135, 125, 122, 151, 125, 133, 124, 130, 125, 136, 144, 133, 143, 126, 118, 113, 131, 135, 124, 131, 115, 138, 129, 126, 127, 107, 136, 125, 139, 119, 126, 128, 138, 126, 136, 119, 117, 124, 109, 115, 127, 137, 145, 118, 138, 120, 114, 137, 140, 128, 126, 131, 126, 124, 146, 131, 142, 122, 123, 108, 126, 128, 130, 129, 115, 118, 111, 122, 124, 142, 121, 122, 128, 132, 103, 152, 118, 135, 118, 130, 133, 121, 124, 124, 119, 106, 143, 128, 131, 122, 123, 110, 135, 118, 132, 120, 126, 143, 114, 122, 124, 126, 126, 144, 133, 139, 128, 116, 141, 120, 113, 132, 124, 117, 116, 132, 133, 126, 130, 130, 145, 133, 112, 111, 126, 115, 126, 113, 128, 135, 121, 111, 128, 128, 127, 124, 119, 126, 126, 127, 123, 122, 122, 126, 123, 135, 119, 133, 119, 123, 115, 113, 116, 144, 107, 133, 111, 120, 113, 120, 122, 131, 140, 134, 111, 135, 128, 122, 120, 126, 124, 121, 131, 112, 115, 131, 118, 133, 120, 123, 125, 135, 109, 127, 123, 117, 116, 139, 104, 126, 127, 112, 128, 143, 115, 124, 104, 125, 138, 109, 125, 124, 129, 120, 128, 119, 125, 117, 133, 134, 117, 130, 121, 123, 116, 107, 127, 132, 113, 138, 117, 130, 118, 120, 134, 117, 117, 121, 113, 125, 124, 126, 127, 128, 132, 119, 113, 131, 131, 117, 128, 127, 133, 124, 147, 123, 135, 124, 112, 126, 137, 119, 117, 108, 122, 121, 122, 135, 129, 122, 134, 116, 130, 112, 112, 135, 119, 140, 117, 127, 121, 110, 124, 142, 121, 148, 130, 130, 136, 136, 135, 121, 136, 129, 125, 111, 125, 131, 115, 125, 107, 108, 120, 122, 123, 135, 140, 112, 119, 124, 113, 132, 115, 134, 122, 120, 129, 128, 122, 119, 130, 135, 112, 127, 113, 123, 135, 129, 111, 128, 133, 113, 117, 104, 122, 108, 144, 138, 109, 105, 148, 128, 109, 133, 117, 139, 125, 127, 133, 121, 128, 126, 134, 121, 132, 122, 123, 130, 126, 131, 120, 121, 115, 131, 113, 114, 125, 108, 144, 130, 119, 135, 152, 135, 130, 124, 127, 138, 119, 151, 116, 122, 121, 125, 125, 132, 117, 110, 124, 95, 143, 113, 126, 123, 133, 111, 143, 117, 113, 136, 144, 101, 110, 136, 141, 110, 122, 125, 124, 113, 141, 119, 134, 126, 147, 120, 128, 122, 124, 134, 135, 144, 128, 141, 131, 118, 130, 128, 116, 120, 121, 117, 131, 136, 125, 115, 117, 115, 108, 131, 126, 120, 122, 133, 112, 144, 117, 123, 133, 132, 127, 125, 114, 110, 109, 129, 114, 119, 121, 113, 128, 122, 115, 112, 94, 111, 118, 125, 130, 120, 114, 132, 131, 127, 123, 117, 130, 133, 120, 113, 113, 112, 130, 130, 130, 147, 129, 138, 123, 122, 131, 121, 139, 121, 131, 122, 104, 127, 131, 140, 134, 125, 129, 137, 128, 118, 146, 135, 136, 108, 130, 128, 135, 126, 143, 123, 140, 108, 136, 113, 117, 114, 115, 127, 114, 128, 116, 129, 126, 114, 143, 133, 118, 127, 125, 135, 122, 130, 130, 124, 132, 110, 125, 106, 121, 124, 134, 131, 112, 125, 146, 114, 145, 117, 117, 112, 106, 123, 111, 124, 133, 120, 121, 126, 134, 126, 130, 142, 124, 128, 120, 129, 121, 108, 108, 113, 130, 122, 110, 118, 124, 130, 131, 126, 131, 138, 126, 115, 110, 125, 144, 146, 118, 116, 144, 117, 123, 130, 131, 133, 126, 119, 115, 129, 126, 152, 123, 112, 141, 115, 136, 106, 125, 115, 129, 119, 123, 122, 122, 137, 119, 139, 119, 142, 136, 111, 142, 98, 109, 132, 107, 150, 140, 123, 125, 122, 131, 126, 129, 129, 131, 151, 135, 131, 124, 131, 142, 115, 136, 122, 124, 138, 127, 125, 105, 110, 118, 144, 98, 123, 130, 104, 118, 135, 131, 118, 117, 118, 121, 114, 113, 132, 124, 134, 126, 128, 118, 126, 110, 129, 122, 116, 120, 133, 116, 125, 124, 129, 141, 110, 120, 112, 125, 127, 117, 146, 129, 133, 100, 105, 115, 106, 141, 118, 125, 123, 123, 132, 117, 121, 139, 138, 121, 117, 124, 119, 121, 125, 120, 130, 126, 109, 125, 110, 131, 135, 127, 122, 120, 120, 124, 136, 115, 128, 116, 131, 148, 143, 130, 116, 120, 128, 114, 114, 130, 119, 137, 134, 129, 139, 116, 113, 98, 114, 122, 142, 134, 136, 103, 123, 126, 139, 136, 109, 119, 133, 135, 127, 126, 117, 107, 110, 143, 112, 114, 110, 127, 130, 132, 125, 122, 129, 128, 131, 117, 118, 107, 137, 136, 134, 131, 134, 139, 126, 126, 129, 114, 105, 128, 113, 122, 127, 122, 116, 133, 121, 123, 130, 127, 116, 133, 131, 145, 127, 113, 114, 115, 126, 131, 136, 122, 123, 128, 117, 127, 134, 111, 121, 119, 129, 118, 139, 135, 107, 126, 125, 133, 137, 131, 124, 118, 133, 145, 138, 124, 129, 135, 143, 124, 132, 125, 130, 130, 127, 110, 119, 126, 106, 103, 148, 110, 145, 120, 115, 140, 123, 118, 119, 115, 141, 136, 133, 98, 123, 126, 137, 124, 126, 128, 134, 112, 125, 137, 120, 133, 120, 121, 103, 129, 139, 120, 140, 121, 126, 116, 119, 127, 114, 128, 123, 125, 139, 115, 126, 128, 124, 116, 129, 126, 123, 135, 110, 133, 148, 123, 135, 152, 126, 141, 143, 139, 129, 130, 119, 125, 115, 113, 128, 118, 122, 131, 121, 107, 117, 99, 108, 122, 133, 121, 129, 143, 117, 122, 118, 129, 117, 141, 96, 119, 110, 128, 102, 113, 142, 118, 124, 139, 136, 118, 121, 127, 115, 125, 123, 128, 115, 120, 140, 134, 127, 112, 128, 127, 126, 119, 126, 108, 135, 136, 136, 116, 133, 130, 125, 124, 141, 131, 143, 122, 133, 121, 148, 129, 138, 124, 126, 113, 120, 125, 125, 121, 120, 124, 124, 124, 121, 124, 124, 125, 118, 135, 147, 98, 121, 114, 127, 124, 128, 129, 135, 129, 118, 118, 127, 108, 101, 122, 120, 119, 119, 108, 121, 140, 135, 119, 130, 137, 118, 121, 131, 123, 118, 133, 140, 132, 124, 141, 117, 112, 126, 140, 116, 113, 114, 127, 125, 133, 132, 133, 110, 124, 115, 121, 130, 115, 129, 119, 136, 129, 137, 132, 119, 121, 139, 129, 124, 124, 133, 132, 132, 112, 124, 117, 108, 117, 125, 138, 143, 112, 108, 134, 120, 108, 121, 133, 118, 133, 116, 127, 135, 119, 129, 115, 106, 134, 122, 120, 132, 121, 125, 120, 147, 130, 117, 135, 132, 127, 152, 136, 132, 129, 126, 127, 103, 134, 133, 124, 99, 130, 123, 115, 115, 138, 123, 128, 122, 129, 133, 112, 128, 134, 140, 96, 117, 113, 143, 106, 135, 111, 125, 119, 143, 130, 111, 123, 113, 114, 124, 125, 126, 146, 131, 126, 128, 130, 118, 131, 134, 127, 115, 129, 133, 122, 121, 122, 124, 143, 127, 122, 134, 137, 107, 111, 130, 127, 112, 132, 136, 122, 148, 138, 106, 125, 116, 144, 130, 125, 85, 123, 110, 116, 128, 121, 127, 120, 132, 136, 125, 119, 113, 121, 130, 121, 127, 126, 129, 117, 122, 99, 121, 129, 108, 133, 122, 129, 121, 130, 128, 125, 116, 117, 147, 134, 128, 118, 130, 143, 119, 111, 124, 140, 141, 121, 131, 105, 139, 113, 118, 127, 120, 132, 138, 114, 115, 149, 121, 121, 132, 116, 122, 133, 127, 130, 127, 128, 118, 122, 131, 118, 134, 119, 123, 127, 128, 156, 106, 124, 106, 114, 132, 108, 112, 120, 121, 115, 121, 130, 124, 112, 129, 135, 115, 138, 131, 143, 119, 132, 110, 117, 157, 129, 138, 118, 126, 131, 127, 124, 126, 120, 138, 132, 129, 121, 119, 135, 120, 134, 116, 116, 122, 132, 132, 113, 129, 123, 120, 135, 124, 152, 131, 111, 129, 127, 111, 130, 130, 122, 117, 104, 151, 113, 136, 128, 117, 111, 121, 125, 114, 130, 139, 133, 108, 124, 114, 109, 131, 116, 112, 113, 117, 130, 124, 118, 160, 111, 128, 116, 132, 130, 132, 108, 128, 127, 103, 127, 124, 121, 138, 137, 133, 110, 135, 130, 133, 128, 120, 135, 134, 128, 128, 105, 123, 123, 126, 131, 117, 140, 105, 133, 151, 125, 120, 119, 140, 126, 121, 113, 140, 115, 140, 117, 118, 113, 142, 123, 127, 113, 131, 124, 134, 116, 121, 115, 128, 136, 105, 132, 113, 126, 122, 121, 128, 117, 129, 127, 125, 112, 132, 131, 104, 143, 145, 129, 131, 141, 110, 116, 126, 121, 127, 125, 114, 126, 122, 119, 133, 124, 126, 118, 129, 130, 148, 124, 146, 149, 120, 117, 136, 124, 113, 113, 125, 139, 131, 126, 128, 113, 115, 125, 115, 130, 109, 119, 131, 129, 131, 130, 125, 124, 125, 129, 124, 133, 126, 128, 127, 125, 114, 113, 124, 110, 111, 136, 126, 109, 112, 114, 115, 129, 125, 142, 117, 124, 127, 116, 141, 119, 143, 121, 134, 108, 112, 120, 119, 133, 132, 119, 125, 125, 118, 123, 134, 128, 116, 121, 129, 125, 121, 109, 135, 120, 126, 122, 117, 111, 94, 118, 123, 124, 132, 109, 136, 122, 113, 135, 110, 109, 141, 132, 133, 130, 131, 125, 136, 152, 128, 124, 131, 130, 127, 117, 133, 119, 118, 133, 119, 127, 115, 132, 123, 141, 133, 124, 137, 120, 133, 139, 111, 116, 109, 143, 113, 124, 130, 140, 102, 112, 109, 125, 135, 144, 118, 102, 121, 139, 124, 107, 128, 135, 123, 104, 124, 125, 140, 130, 121, 134, 121, 123, 114, 122, 159, 131, 126, 122, 126, 127, 112, 120, 137, 140, 128, 137, 113, 117, 145, 132, 127, 119, 122, 122, 133, 127, 118, 132, 119, 102, 136, 135, 102, 121, 123, 128, 127, 109, 120, 132, 138, 125, 115, 124, 139, 135, 142, 139, 126, 117, 136, 112, 114, 142, 119, 135, 120, 115, 125, 137, 121, 104, 130, 111, 118, 119, 123, 111, 126, 124, 121, 124, 116, 118, 129, 129, 121, 127, 107, 126, 125, 118, 128, 137, 132, 118, 139, 127, 135, 132, 125, 124, 118, 146, 135, 135, 131, 124, 109, 120, 126, 135, 122, 120, 126, 114, 145, 129, 128, 139, 108, 129, 143, 110, 133, 129, 147, 136, 126, 114, 125, 119, 139, 129, 121, 115, 130, 136, 124, 132, 120, 149, 130, 129, 108, 132, 138, 117, 135, 124, 112, 116, 133, 113, 119, 118, 114, 105, 131, 116, 140, 114, 105, 124, 146, 122, 118, 126, 118, 113, 113, 125, 118, 123, 122, 124, 112, 127, 117, 114, 121, 117, 133, 150, 114, 126, 132, 109, 143, 121, 101, 135, 119, 118, 130, 132, 123, 126, 118, 128, 126, 138, 106, 124, 121, 126, 114, 126, 135, 120, 146, 123, 135, 128, 131, 127, 131, 135, 129, 127, 129, 130, 128, 109, 130, 117, 127, 128, 144, 135, 115, 126, 119, 133, 117, 114, 140, 129, 118, 135, 131, 128, 107, 130, 130, 121, 126, 124, 132, 132, 132, 129, 125, 142, 124, 114, 123, 131, 138, 154, 121, 109, 128, 114, 117, 121, 143, 122, 125, 124, 122, 127, 127, 108, 140, 108, 127, 126, 124, 122, 140, 140, 104, 145, 120, 107, 129, 134, 126, 128, 122, 137, 117, 118, 132, 122, 116, 142, 131, 108, 137, 117, 142, 127, 128, 120, 119, 118, 136, 136, 110, 129, 126, 122, 112, 130, 114, 111, 126, 119, 119, 128, 129, 124, 141, 132, 140, 124, 117, 140, 110, 125, 123, 133, 118, 116, 134, 124, 134, 133, 119, 101, 129, 124, 122, 125, 136, 126, 131, 117, 122, 137, 130, 125, 122, 112, 133, 131, 137, 124, 137, 118, 125, 125, 117, 132, 140, 128, 130, 122, 123, 107, 120, 128, 129, 115, 114, 115, 143, 115, 129, 123, 128, 123, 124, 131, 119, 123, 117, 134, 143, 134, 146, 126, 124, 101, 116, 114, 123, 113, 141, 137, 132, 128, 110, 128, 119, 115, 115, 125, 140, 117, 124, 129, 114, 118, 132, 122, 120, 123, 124, 133, 137, 111, 124, 130, 111, 126, 116, 125, 136, 120, 139, 134, 119, 122, 123, 134, 118, 111, 126, 114, 129, 154, 127, 129, 118, 121, 118, 122, 128, 133, 142, 123, 121, 121, 130, 141, 129, 121, 119, 122, 127, 126, 116, 133, 129, 117, 114, 123, 119, 133, 136, 127, 110, 111, 113, 121, 109, 118, 141, 144, 124, 138, 142, 131, 133, 115, 117, 130, 142, 125, 139, 126, 118, 119, 111, 144, 107, 136, 116, 123, 121, 129, 95, 119, 120, 136, 137, 114, 126, 132, 105, 146, 130, 127, 128, 120, 133, 137, 115, 114, 127, 122, 125, 128, 114, 138, 145, 130, 126, 119, 134, 125, 133, 128, 123, 130, 129, 116, 123, 135, 125, 125, 111, 132, 139, 106, 125, 111, 117, 146, 124, 129, 116, 125, 121, 135, 122, 119, 119, 126, 119, 130, 131, 133, 132, 122, 118, 137, 136, 123, 116, 116, 121, 120, 122, 119, 141, 136, 130, 124, 101, 121, 120, 119, 122, 116, 137, 123, 128, 125, 124, 122, 138, 140, 135, 125, 113, 123, 135, 118, 114, 128, 119, 123, 119, 119, 134, 123, 119, 136, 124, 127, 119, 123, 127, 114, 121, 118, 134, 124, 141, 130, 123, 129, 133, 133, 141, 127, 138, 121, 129, 127, 108, 120, 96, 96, 134, 105, 117, 132, 147, 135, 117, 115, 132, 124, 121, 122, 136, 123, 139, 122, 124, 121, 126, 132, 116, 137, 126, 119, 123, 120, 110, 116, 128, 112, 122, 118, 122, 150, 118, 116, 113, 122, 115, 120, 135, 129, 125, 119, 129, 115, 126, 124, 140, 121, 128, 130, 128, 133, 130, 130, 122, 122, 119, 113, 127, 121, 112, 123, 112, 130, 118, 133, 116, 128, 117, 145, 121, 136, 113, 137, 130, 121, 97, 130, 134, 121, 103, 131, 139, 128, 131, 133, 124, 137, 115, 104, 124, 131, 122, 120, 120, 119, 130, 130, 113, 138, 117, 128, 132, 130, 122, 128, 115, 123, 110, 119, 139, 101, 142, 104, 123, 108, 132, 106, 121, 129, 110, 127, 114, 123, 120, 137, 128, 114, 114, 131, 131, 118, 129, 121, 113, 104, 112, 109, 130, 118, 132, 125, 117, 106, 137, 119, 124, 123, 114, 126, 136, 125, 105, 124, 148, 115, 128, 124, 144, 130, 103, 113, 104, 125, 120, 141, 121, 116, 130, 124, 127, 138, 130, 145, 127, 110, 121, 128, 134, 118, 119, 124, 126, 111, 134, 108, 113, 139, 133, 133, 116, 128, 137, 115, 144, 141, 121, 133, 148, 124, 123, 116, 115, 108, 132, 151, 97, 104, 120, 141, 132, 123, 123, 128, 132, 136, 130, 126, 122, 141, 134, 127, 135, 148, 113, 121, 116, 138, 120, 117, 131, 110, 117, 133, 135, 118, 109, 112, 135, 117, 129, 129, 118, 132, 135, 139, 127, 130, 133, 109, 139, 105, 116, 133, 141, 133, 125, 111, 116, 121, 116, 132, 133, 133, 106, 116, 119, 123, 118, 126, 144, 123, 133, 144, 123, 119, 131, 127, 121, 113, 96, 120, 110, 106, 137, 123, 134, 132, 123, 114, 129, 119, 131, 124, 124, 112, 136, 136, 131, 129, 128, 105, 150, 128, 116, 114, 141, 137, 124, 126, 129, 119, 136, 126, 119, 128, 127, 153, 117, 121, 130, 115, 131, 133, 134, 123, 110, 131, 130, 129, 137, 136, 124, 140, 132, 144, 127, 118, 132, 117, 121, 129, 133, 135, 140, 106, 151, 115, 124, 115, 132, 122, 136, 120, 147, 131, 118, 102, 135, 122, 123, 139, 140, 115, 122, 117, 113, 130, 128, 115, 120, 133, 115, 107, 135, 126, 127, 117, 112, 144, 118, 137, 133, 118, 104, 125, 133, 137, 119, 121, 125, 121, 117, 115, 125, 120, 114, 128, 115, 132, 134, 138, 119, 123, 143, 136, 118, 128, 136, 114, 128, 111, 123, 122, 126, 110, 116, 124, 106, 121, 118, 125, 123, 125, 115, 127, 143, 124, 131, 131, 117, 126, 135, 119, 116, 111, 128, 121, 132, 134, 125, 117, 123, 131, 158, 122, 115, 116, 113, 153, 115, 134, 119, 143, 132, 121, 134, 131, 127, 119, 112, 136, 129, 128, 128, 127, 128, 121, 133, 124, 119, 124, 127, 129, 119, 131, 120, 119, 120, 119, 125, 130, 99, 127, 105, 121, 141, 141, 146, 128, 139, 103, 134, 129, 118, 114, 118, 143, 141, 128, 125, 132, 117, 127, 140, 123, 132, 121, 120, 134, 134, 131, 133, 139, 118, 120, 144, 130, 140, 106, 129, 109, 109, 129, 121, 141, 116, 133, 128, 132, 117, 106, 123, 112, 134, 123, 140, 135, 130, 130, 130, 105, 125, 126, 120, 123, 140, 123, 138, 117, 116, 107, 124, 114, 122, 132, 112, 114, 117, 132, 106, 125, 116, 120, 122, 120, 142, 121, 142, 116, 113, 113, 132, 128, 112, 140, 138, 153, 117, 123, 122, 120, 124, 116, 122, 138, 128, 122, 119, 143, 124, 130, 136, 130, 128, 130, 123, 116, 122, 123, 118, 122, 129, 127, 124, 124, 123, 118, 132, 128, 125, 130, 112, 128, 130, 144, 108, 136, 121, 142, 129, 123, 138, 133, 137, 132, 124, 123, 131, 122, 126, 135, 116, 120, 126, 131, 137, 112, 140, 121, 111, 130, 109, 137, 132, 136, 137, 121, 127, 120, 123, 126, 130, 133, 123, 130, 118, 125, 126, 138, 135, 107, 134, 134, 124, 115, 131, 135, 121, 114, 128, 121, 124, 130, 130, 124, 142, 146, 128, 116, 118, 134, 139, 117, 133, 138, 144, 128, 124, 116, 112, 117, 114, 119, 124, 143, 106, 105, 126, 141, 102, 124, 108, 128, 113, 140, 145, 111, 120, 113, 108, 111, 130, 103, 120, 141, 114, 130, 134, 129, 138, 135, 128, 115, 114, 122, 122, 131, 120, 122, 132, 125, 123, 125, 111, 117, 158, 132, 121, 141, 119, 137, 110, 113, 134, 117, 116, 117, 148, 100, 114, 150, 117, 138, 148, 132, 137, 121, 134, 118, 118, 111, 144, 131, 126, 126, 121, 125, 135, 119, 126, 120, 104, 131, 124, 142, 139, 133, 111, 123, 137, 122, 133, 131, 125, 132, 129, 126, 131, 123, 130, 116, 123, 111, 138, 131, 123, 113, 130, 124, 126, 133, 139, 108, 125, 134, 118, 119, 123, 118, 132, 127, 128, 122, 120, 120, 123, 124, 124, 111, 122, 115, 132, 136, 132, 108, 136, 122, 135, 135, 97, 128, 132, 121, 122, 129, 128, 128, 128, 120, 121, 131, 125, 132, 130, 134, 129, 140, 110, 110, 145, 122, 124, 108, 105, 132, 125, 115, 134, 122, 140, 127, 134, 111, 133, 127, 135, 128, 122, 126, 114, 116, 117, 122, 115, 128, 137, 123, 133, 114, 134, 124, 139, 119, 130, 109, 125, 115, 107, 122, 109, 119, 132, 134, 127, 138, 130, 129, 130, 129, 120, 137, 121, 125, 106, 113, 153, 126, 128, 131, 137, 114, 135, 128, 141, 138, 129, 118, 148, 117, 137, 125, 110, 145, 116, 115, 141, 96, 125, 131, 110, 119, 153, 119, 118, 119, 130, 121, 110, 118, 109, 141, 102, 139, 107, 134, 135, 122, 129, 124, 115, 124, 123, 113, 101, 131, 123, 129, 123, 131, 120, 119, 112, 109, 119, 130, 128, 120, 111, 129, 119, 143, 135, 107, 132, 136, 99, 138, 135, 140, 142, 133, 122, 126, 122, 111, 104, 128, 126, 118, 130, 135, 104, 129, 142, 116, 130, 128, 129, 128, 131, 126, 128, 120, 125, 117, 120, 118, 123, 129, 113, 119, 149, 136, 123, 110, 127, 128, 133, 127, 119, 127, 122, 128, 120, 119, 117, 128, 147, 124, 123, 119, 130, 113, 120, 140, 138, 120, 134, 110, 131, 136, 147, 120, 137, 122, 114, 124, 154, 124, 115, 134, 127, 137, 132, 129, 120, 123, 129, 143, 129, 122, 123, 139, 112, 112, 103, 118, 125, 132, 118, 100, 123, 133, 116, 124, 134, 132, 118, 112, 118, 127, 111, 113, 113, 111, 136, 135, 130, 135, 145, 113, 132, 130, 128, 148, 143, 118, 115, 139, 132, 128, 130, 129, 122, 143, 124, 103, 123, 106, 120, 110, 164, 130, 119, 126, 126, 124, 131, 129, 118, 126, 145, 139, 117, 129, 125, 124, 121, 116, 125, 129, 133, 128, 110, 109, 139, 127, 109, 118, 116, 120, 110, 139, 123, 122, 134, 130, 113, 128, 130, 120, 124, 121, 124, 132, 106, 123, 122, 122, 119, 118, 129, 108, 133, 129, 131, 124, 129, 133, 145, 124, 115, 108, 142, 147, 113, 138, 131, 141, 124, 120, 111, 114, 123, 126, 119, 133, 131, 138, 137, 108, 126, 174, 136, 119, 116, 117, 119, 133, 127, 121, 113, 88, 130, 130, 130, 127, 127, 112, 134, 138, 128, 122, 149, 119, 118, 111, 142, 115, 109, 124, 141, 129, 126, 133, 129, 113, 116, 113, 133, 120, 111, 125, 127, 114, 96, 131, 121, 118, 106, 100, 117, 133, 142, 108, 111, 153, 135, 132, 125, 89, 123, 113, 109, 121, 164, 131, 129, 123, 125, 122, 121, 114, 142, 125, 119, 146, 118, 136, 126, 144, 114, 136, 130, 130, 130, 129, 115, 122, 122, 131, 128, 136, 101, 141, 139, 119, 125, 114, 110, 121, 141, 129, 105, 109, 138, 98, 151, 106, 121, 130, 135, 122, 120, 136, 130, 134, 118, 137, 125, 124, 121, 142, 120, 136, 140, 141, 133, 131, 139, 107, 146, 131, 124, 115, 135, 127, 112, 119, 126, 125, 133, 144, 145, 106, 124, 123, 123, 108, 122, 130, 104, 127, 122, 132, 134, 129, 125, 140, 117, 122, 121, 130, 114, 127, 115, 126, 121, 145, 124, 133, 115, 132, 123, 145, 115, 112, 120, 127, 123, 146, 122, 112, 106, 132, 112, 118, 110, 130, 105, 127, 128, 128, 133, 129, 119, 138, 119, 114, 110, 129, 122, 125, 131, 143, 116, 119, 128, 139, 116, 121, 99, 114, 143, 116, 120, 111, 121, 135, 125, 124, 124, 128, 112, 119, 123, 119, 137, 124, 128, 156, 125, 130, 123, 125, 132, 122, 114, 119, 122, 124, 139, 139, 130, 115, 133, 144, 121, 125, 116, 120, 120, 136, 130, 125, 122, 131, 120, 145, 120, 119, 116, 114, 116, 124, 134, 143, 122, 132, 117, 119, 123, 131, 138, 119, 119, 109, 139, 137, 133, 114, 112, 135, 122, 122, 124, 147, 132, 124, 132, 132, 115, 128, 106, 118, 115, 137, 112, 148, 133, 133, 126, 110, 121, 125, 124, 138, 135, 111, 108, 137, 129, 108, 150, 105, 139, 123, 116, 141, 130, 132, 126, 123, 124, 106, 113, 136, 130, 108, 146, 117, 107, 152, 124, 130, 114, 126, 128, 130, 123, 138, 130, 123, 136, 110, 120, 134, 123, 129, 104, 132, 117, 98, 157, 131, 130, 151, 115, 129, 114, 118, 133, 116, 121, 137, 115, 115, 151, 149, 129, 131, 116, 117, 142, 101, 117, 124, 120, 126, 126, 121, 129, 116, 125, 114, 131, 115, 107, 116, 124, 141, 120, 146, 120, 116, 118, 139, 110, 115, 121, 125, 117, 136, 142, 123, 124, 124, 114, 123, 121, 108, 126, 121, 126, 100, 120, 147, 109, 130, 78, 128, 118, 136, 125, 125, 115, 111, 124, 133, 134, 124, 140, 111, 121, 113, 129, 114, 129, 121, 123, 120, 115, 139, 111, 126, 145, 122, 130, 105, 126, 115, 120, 127, 132, 125, 117, 117, 111, 131, 106, 147, 128, 119, 142, 107, 126, 133, 120, 151, 143, 118, 121, 136, 126, 138, 122, 129, 120, 122, 131, 127, 128, 143, 138, 131, 109, 102, 117, 124, 121, 133, 108, 125, 119, 136, 127, 134, 122, 113, 132, 119, 150, 121, 122, 146, 132, 127, 122, 125, 130, 132, 130, 119, 127, 139, 139, 118, 134, 134, 131, 138, 127, 108, 142, 116, 144, 156, 131, 125, 110, 122, 137, 120, 123, 133, 125, 114, 136, 139, 144, 111, 134, 138, 113, 106, 135, 115, 125, 115, 121, 110, 105, 113, 132, 120, 127, 125, 123, 109, 129, 112, 119, 124, 121, 137, 122, 129, 128, 146, 142, 149, 126, 127, 130, 141, 136, 131, 142, 125, 123, 111, 127, 126, 117, 119, 122, 98, 123, 149, 113, 130, 127, 105, 130, 137, 118, 129, 125, 135, 117, 139, 121, 132, 124, 130, 148, 124, 136, 123, 119, 128, 135, 136, 132, 112, 139, 125, 113, 133, 119, 111, 130, 132, 94, 161, 140, 130, 123, 110, 134, 148, 129, 130, 135, 121, 142, 141, 144, 120, 128, 139, 110, 125, 132, 99, 129, 120, 113, 123, 129, 125, 134, 129, 109, 130, 122, 152, 109, 110, 128, 127, 132, 124, 139, 118, 130, 114, 135, 120, 131, 116, 143, 110, 119, 123, 107, 131, 119, 141, 119, 104, 144, 134, 138, 121, 120, 97, 149, 121, 109, 105, 106, 118, 142, 149, 114, 143, 130, 115, 127, 134, 120, 162, 126, 113, 123, 148, 123, 123, 134, 131, 132, 133, 124, 121, 134, 117, 136, 133, 119, 113, 125, 136, 146, 123, 130, 111, 127, 134, 112, 121, 146, 101, 126, 125, 135, 115, 129, 117, 120, 158, 111, 113, 130, 122, 128, 137, 119, 125, 126, 146, 116, 130, 119, 109, 128, 121, 123, 136, 112, 127, 94, 109, 116, 119, 124, 150, 111, 141, 126, 110, 125, 120, 136, 125, 113, 114, 143, 109, 126, 122, 120, 125, 137, 124, 121, 141, 133, 116, 126, 133, 133, 93, 139, 100, 129, 145, 124, 137, 142, 135, 140, 137, 135, 132, 109, 129, 131, 131, 141, 112, 144, 116, 133, 145, 129, 112, 146, 115, 122, 118, 132, 119, 126, 131, 139, 119, 124, 118, 137, 118, 144, 132, 128, 123, 124, 108, 128, 129, 144, 146, 107, 140, 128, 135, 137, 131, 128, 111, 110, 132, 143, 123, 121, 112, 132, 125, 122, 128, 104, 117, 115, 112, 122, 139, 138, 122, 102, 125, 124, 126, 130, 114, 132, 112, 125, 139, 126, 113, 131, 102, 118, 122, 131, 108, 132, 136, 118, 113, 131, 118, 124, 120, 106, 122, 139, 120, 114, 134, 137, 134, 130, 118, 103, 125, 141, 125, 121, 138, 135, 128, 126, 106, 129, 134, 127, 148, 116, 130, 143, 127, 114, 113, 122, 135, 120, 139, 123, 91, 114, 132, 138, 123, 130, 109, 129, 143, 122, 133, 156, 117, 131, 124, 123, 124, 120, 127, 135, 112, 116, 129, 129, 139, 110, 138, 126, 144, 124, 132, 111, 140, 137, 128, 110, 129, 125, 127, 111, 130, 123, 129, 121, 129, 131, 125, 130, 115, 119, 140, 126, 129, 121, 124, 121, 136, 126, 125, 127, 135, 124, 124, 115, 110, 101, 138, 116, 125, 115, 127, 120, 147, 120, 119, 123, 136, 128, 111, 133, 121, 122, 113, 133, 127, 126, 141, 116, 131, 127, 125, 128, 134, 88, 118, 112, 128, 96, 119, 104, 122, 131, 144, 122, 151, 138, 124, 136, 114, 129, 112, 113, 142, 116, 116, 115, 118, 110, 136, 107, 128, 124, 124, 121, 127, 112, 116, 124, 123, 109, 131, 127, 137, 122, 112, 122, 119, 115, 144, 134, 150, 115, 130, 133, 121, 118, 116, 125, 121, 132, 124, 118, 119, 149, 128, 134, 122, 128, 139, 131, 127, 139, 119, 124, 130, 134, 124, 149, 123, 135, 126, 117, 133, 133, 126, 121, 137, 129, 122, 125, 131, 131, 108, 134, 112, 142, 127, 112, 130, 122, 131, 135, 131, 135, 110, 123, 117, 127, 108, 128, 132, 126, 110, 127, 122, 137, 115, 118, 123, 105, 119, 150, 124, 126, 108, 128, 121, 138, 135, 128, 123, 115, 129, 132, 126, 127, 111, 127, 125, 143, 143, 119, 126, 132, 113, 137, 125, 114, 122, 130, 117, 125, 123, 125, 102, 126, 120, 118, 134, 130, 107, 110, 129, 113, 143, 120, 166, 129, 121, 127, 137, 143, 129, 143, 121, 132, 128, 135, 122, 134, 112, 114, 124, 109, 116, 136, 134, 134, 129, 126, 120, 128, 133, 114, 130, 132, 137, 123, 139, 108, 117, 148, 111, 117, 137, 131, 125, 141, 114, 133, 116, 128, 124, 138, 129, 122, 122, 130, 127, 130, 122, 122, 131, 135, 110, 110, 151, 119, 116, 114, 119, 114, 136, 141, 117, 114, 107, 117, 126, 120, 109, 109, 98, 118, 132, 149, 129, 135, 151, 122, 108, 125, 115, 115, 122, 119, 125, 109, 121, 141, 105, 128, 101, 144, 103, 111, 113, 132, 146, 119, 129, 128, 106, 133, 135, 120, 116, 130, 125, 126, 133, 124, 97, 138, 136, 132, 122, 110, 113, 114, 133, 133, 129, 133, 117, 114, 120, 124, 147, 116, 144, 134, 119, 104, 133, 140, 129, 140, 118, 110, 128, 144, 133, 133, 134, 130, 147, 129, 89, 118, 131, 113, 135, 129, 139, 111, 126, 109, 124, 132, 130, 137, 130, 115, 116, 119, 140, 121, 124, 115, 120, 151, 108, 128, 128, 130, 121, 129, 131, 138, 124, 128, 116, 125, 149, 126, 134, 119, 129, 135, 123, 175, 128, 141, 134, 110, 126, 104, 115, 130, 149, 136, 121, 126, 123, 124, 129, 124, 139, 118, 121, 126, 102, 131, 139, 121, 127, 123, 128, 109, 115, 116, 120, 114, 137, 149, 135, 122, 143, 113, 118, 127, 131, 116, 127, 129, 130, 120, 130, 121, 111, 142, 125, 136, 141, 120, 135, 130, 124, 134, 128, 132, 127, 115, 116, 115, 133, 141, 131, 153, 136, 113, 129, 120, 130, 114, 104, 114, 122, 112, 125, 132, 122, 120, 129, 121, 127, 120, 116, 128, 143, 132, 104, 117, 135, 112, 127, 141, 133, 126, 126, 135, 124, 130, 130, 132, 118, 148, 145, 117, 123, 99, 106, 129, 116, 123, 120, 119, 128, 126, 121, 122, 128, 152, 108, 134, 124, 117, 124, 129, 116, 130, 121, 136, 124, 117, 122, 112, 111, 141, 108, 122, 126, 117, 130, 118, 128, 126, 136, 119, 112, 125, 128, 125, 119, 134, 131, 122, 118, 132, 108, 129, 125, 124, 136, 147, 132, 133, 118, 109, 136, 125, 101, 117, 129, 112, 125, 111, 116, 122, 116, 108, 118, 109, 135, 126, 177, 112, 133, 118, 117, 143, 120, 133, 135, 126, 137, 134, 143, 126, 132, 127, 133, 111, 131, 139, 116, 118, 122, 116, 133, 128, 105, 134, 141, 125, 123, 109, 126, 138, 122, 122, 136, 127, 133, 128, 104, 122, 130, 115, 138, 123, 125, 130, 124, 133, 141, 129, 125, 115, 132, 137, 136, 136, 121, 131, 134, 124, 126, 126, 131, 124, 116, 125, 109, 113, 141, 140, 114, 105, 118, 116, 116, 109, 132, 130, 124, 121, 135, 123, 137, 119, 116, 120, 116, 130, 127, 125, 126, 114, 135, 121, 117, 142, 129, 132, 122, 119, 152, 121, 123, 114, 130, 107, 119, 124, 139, 148, 144, 99, 127, 130, 125, 124, 127, 129, 125, 131, 117, 134, 150, 118, 130, 120, 121, 126, 111, 124, 137, 118, 126, 129, 115, 114, 107, 123, 120, 122, 111, 106, 134, 135, 96, 117, 149, 135, 133, 142, 128, 103, 113, 107, 125, 105, 128, 141, 108, 136, 108, 112, 134, 136, 131, 125, 136, 127, 127, 135, 117, 114, 116, 140, 129, 120, 121, 130, 139, 120, 100, 132, 125, 127, 122, 125, 137, 120, 92, 138, 132, 131, 122, 131, 124, 111, 121, 129, 126, 138, 125, 122, 110, 123, 126, 118, 125, 133, 123, 120, 116, 129, 121, 118, 127, 121, 130, 125, 142, 121, 126, 128, 150, 117, 140, 124, 122, 121, 130, 99, 147, 137, 156, 123, 122, 127, 117, 127, 122, 128, 118, 118, 127, 120, 114, 129, 119, 132, 144, 133, 122, 120, 122, 133, 135, 121, 137, 124, 129, 137, 118, 146, 122, 128, 117, 120, 118, 132, 136, 136, 108, 133, 132, 124, 121, 128, 118, 144, 130, 136, 149, 117, 124, 123, 123, 127, 110, 119, 118, 119, 133, 140, 114, 115, 105, 134, 126, 107, 150, 125, 150, 128, 117, 120, 151, 129, 118, 130, 124, 121, 118, 123, 133, 135, 146, 141, 112, 137, 124, 118, 131, 135, 130, 143, 114, 107, 116, 124, 137, 126, 128, 122, 111, 119, 122, 133, 113, 115, 117, 115, 133, 107, 128, 147, 144, 133, 139, 127, 123, 127, 128, 140, 137, 133, 126, 127, 118, 116, 144, 132, 105, 120, 128, 126, 135, 127, 124, 125, 135, 142, 126, 145, 120, 138, 129, 129, 139, 141, 134, 134, 121, 129, 135, 143, 116, 121, 123, 124, 104, 139, 114, 134, 135, 132, 120, 118, 114, 128, 124, 127, 144, 131, 111, 132, 121, 119, 126, 114, 117, 146, 120, 126, 124, 125, 108, 125, 144, 107, 111, 125, 131, 136, 125, 138, 114, 114, 125, 127, 118, 135, 129, 117, 117, 129, 139, 119, 127, 119, 134, 125, 119, 122, 140, 116, 132, 138, 116, 114, 135, 132, 116, 139, 137, 125, 129, 127, 109, 115, 129, 115, 131, 102, 113, 121, 135, 136, 119, 125, 129, 118, 131, 129, 127, 138, 114, 145, 109, 133, 116, 115, 123, 138, 123, 140, 132, 138, 114, 143, 132, 120, 134, 122, 123, 120, 131, 116, 132, 114, 133, 120, 116, 139, 132, 123, 136, 133, 137, 129, 122, 130, 121, 124, 131, 123, 109, 115, 115, 142, 118, 117, 130, 124, 88, 107, 118, 133, 123, 136, 130, 130, 134, 121, 130, 129, 126, 120, 131, 117, 122, 118, 137, 122, 129, 122, 125, 111, 125, 127, 120, 128, 145, 114, 124, 124, 125, 121, 119, 141, 113, 132, 120, 117, 134, 111, 117, 130, 130, 122, 107, 120, 120, 125, 136, 129, 146, 123, 119, 114, 132, 131, 131, 122, 129, 127, 140, 123, 122, 123, 127, 120, 137, 123, 128, 137, 118, 122, 131, 136, 135, 122, 119, 146, 123, 123, 128, 127, 113, 120, 122, 143, 151, 123, 135, 121, 129, 133, 108, 125, 122, 121, 127, 133, 116, 125, 116, 133, 124, 124, 119, 134, 137, 107, 141, 123, 124, 135, 132, 131, 109, 123, 126, 115, 108, 124, 129, 115, 124, 121, 130, 114, 106, 136, 135, 118, 129, 116, 114, 140, 138, 130, 125, 119, 123, 121, 129, 128, 126, 128, 126, 138, 123, 114, 134, 125, 139, 133, 129, 133, 130, 115, 124, 132, 127, 128, 117, 119, 127, 115, 144, 121, 136, 103, 131, 131, 117, 135, 118, 118, 143, 125, 126, 122, 121, 147, 123, 121, 134, 133, 105, 121, 124, 134, 115, 136, 118, 127, 124, 120, 123, 128, 134, 130, 127, 130, 124, 119, 117, 120, 126, 141, 136, 123, 116, 114, 121, 122, 124, 133, 133, 130, 134, 132, 115, 130, 112, 125, 112, 119, 135, 112, 129, 120, 125, 110, 115, 146, 133, 126, 130, 117, 136, 140, 139, 119, 127, 129, 120, 125, 126, 146, 119, 119, 118, 135, 114, 113, 122, 119, 125, 128, 125, 118, 138, 102, 126, 126, 126, 112, 132, 117, 136, 130, 110, 143, 121, 128, 115, 124, 125, 130, 118, 131, 124, 133, 134, 127, 117, 103, 108, 116, 150, 122, 130, 135, 148, 120, 107, 135, 130, 127, 99, 129, 119, 130, 119, 121, 128, 117, 133, 134, 137, 130, 132, 129, 121, 127, 120, 99, 147, 137, 93, 138, 131, 109, 129, 119, 112, 115, 105, 139, 127, 131, 136, 124, 121, 136, 140, 115, 125, 127, 133, 118, 113, 125, 116, 119, 106, 118, 123, 123, 122, 126, 127, 130, 128, 128, 157, 143, 121, 128, 115, 136, 129, 119, 133, 126, 123, 133, 127, 137, 120, 126, 133, 133, 95, 122, 124, 132, 128, 111, 125, 118, 128, 143, 122, 124, 119, 133, 137, 115, 136, 108, 125, 116, 128, 120, 129, 132, 132, 122, 116, 148, 122, 125, 128, 120, 123, 126, 126, 106, 137, 118, 134, 130, 133, 120, 114, 104, 139, 131, 135, 107, 116, 105, 132, 117, 133, 136, 126, 115, 142, 122, 118, 124, 137, 119, 125, 112, 139, 131, 134, 137, 132, 131, 135, 140, 116, 109, 124, 128, 122, 130, 140, 115, 120, 108, 138, 131, 131, 125, 127, 121, 122, 112, 126, 125, 125, 122, 111, 126, 130, 118, 131, 112, 139, 140, 130, 128, 104, 118, 149, 131, 131, 131, 137, 124, 127, 170, 127, 126, 111, 105, 117, 129, 137, 138, 136, 132, 146, 115, 129, 129, 124, 112, 120, 137, 135, 126, 119, 126, 109, 134, 129, 119, 128, 144, 129, 123, 124, 127, 138, 130, 130, 137, 140, 104, 138, 125, 121, 124, 126, 114, 127, 130, 125, 119, 118, 127, 107, 127, 136, 141, 116, 124, 125, 123, 125, 118, 125, 123, 138, 115, 118, 124, 125, 124, 130, 119, 128, 123, 121, 142, 125, 131, 126, 130, 130, 142, 133, 112, 111, 121, 132, 115, 126, 123, 135, 119, 129, 136, 133, 135, 128, 160, 134, 113, 119, 135, 123, 142, 103, 132, 131, 138, 140, 126, 129, 134, 137, 128, 130, 46, 117, 135, 114, 118, 131, 127, 125, 141, 141, 132, 114, 115, 124, 128, 123, 123, 125, 135, 116, 138, 127, 117, 131, 124, 111, 124, 127, 127, 132, 127, 144, 122, 117, 126, 130, 92, 139, 135, 116, 120, 122, 120, 123, 129, 81, 115, 133, 130, 129, 112, 130, 111, 120, 124, 153, 118, 134, 121, 131, 116, 116, 135, 129, 126, 109, 120, 127, 143, 132, 118, 122, 116, 122, 116, 116, 157, 140, 126, 136, 144, 139, 113, 141, 114, 127, 130, 124, 108, 144, 133, 130, 105, 131, 122, 137, 120, 129, 127, 131, 140, 123, 133, 121, 129, 130, 110, 110, 111, 130, 126, 123, 143, 124, 129, 103, 123, 128, 126, 138, 141, 118, 121, 130, 135, 127, 124, 126, 136, 122, 121, 130, 134, 123, 121, 134, 134, 115, 132, 109, 124, 111, 126, 133, 138, 135, 122, 127, 142, 127, 124, 125, 110, 115, 120, 126, 125, 123, 118, 128, 126, 125, 136, 131, 128, 104, 120, 113, 120, 133, 126, 145, 120, 122, 136, 124, 121, 121, 128, 121, 116, 112, 128, 115, 130, 133, 133, 130, 129, 115, 135, 125, 120, 122, 123, 136, 139, 122, 127, 121, 115, 120, 121, 109, 122, 101, 129, 127, 142, 119, 126, 128, 132, 138, 122, 115, 138, 110, 132, 135, 132, 122, 121, 125, 133, 134, 131, 127, 138, 124, 131, 126, 130, 106, 132, 127, 128, 111, 130, 148, 135, 119, 121, 127, 125, 128, 112, 113, 106, 131, 130, 130, 121, 124, 118, 128, 124, 109, 100, 132, 121, 116, 127, 126, 124, 148, 124, 132, 124, 126, 123, 128, 134, 131, 138, 121, 130, 120, 133, 117, 111, 136, 130, 127, 130, 124, 120, 123, 107, 117, 143, 134, 143, 125, 114, 122, 97, 124, 122, 123, 126, 134, 112, 126, 130, 120, 116, 118, 126, 136, 143, 117, 141, 125, 122, 144, 93, 121, 120, 133, 117, 120, 124, 129, 115, 113, 140, 119, 144, 123, 123, 120, 152, 129, 128, 127, 125, 125, 123, 130, 132, 137, 116, 115, 137, 115, 128, 115, 118, 115, 124, 125, 130, 117, 122, 154, 133, 107, 124, 128, 126, 125, 126, 126, 116, 127, 140, 112, 127, 125, 117, 117, 108, 138, 122, 145, 113, 107, 123, 120, 124, 123, 123, 115, 136, 134, 120, 117, 118, 120, 133, 125, 129, 118, 139, 124, 131, 123, 119, 124, 117, 141, 129, 132, 118, 128, 123, 124, 112, 133, 132, 106, 142, 121, 132, 113, 122, 124, 117, 111, 116, 106, 120, 119, 123, 141, 129, 124, 147, 127, 117, 120, 120, 112, 115, 142, 128, 115, 125, 114, 144, 112, 107, 111, 118, 124, 125, 131, 128, 99, 115, 125, 120, 118, 123, 122, 115, 127, 128, 126, 140, 123, 149, 125, 124, 128, 126, 117, 130, 117, 115, 126, 121, 127, 118, 118, 132, 123, 121, 107, 140, 120, 114, 119, 133, 123, 129, 126, 138, 133, 137, 104, 124, 131, 139, 126, 131, 144, 143, 136, 132, 119, 96, 103, 137, 120, 126, 120, 126, 131, 129, 141, 110, 138, 108, 131, 138, 141, 121, 98, 131, 130, 132, 122, 123, 120, 132, 125, 122, 122, 136, 135, 136, 120, 112, 116, 130, 100, 130, 124, 101, 129, 133, 125, 118, 125, 125, 122, 121, 122, 138, 123, 126, 142, 123, 140, 121, 118, 115, 133, 114, 125, 114, 140, 132, 118, 127, 121, 119, 129, 126, 124, 126, 129, 118, 126, 142, 129, 108, 123, 127, 138, 106, 127, 123, 120, 115, 118, 127, 129, 116, 137, 123, 123, 129, 131, 125, 123, 132, 133, 138, 139, 107, 126, 136, 124, 115, 129, 114, 117, 129, 136, 130, 137, 130, 119, 135, 129, 126, 133, 118, 116, 114, 128, 127, 126, 135, 118, 116, 132, 140, 109, 121, 126, 132, 124, 134, 117, 122, 130, 125, 135, 113, 99, 150, 123, 140, 124, 107, 122, 124, 115, 111, 116, 129, 137, 137, 130, 120, 146, 131, 120, 119, 119, 119, 122, 130, 136, 133, 119, 125, 134, 123, 113, 135, 142, 128, 136, 125, 130, 121, 123, 119, 123, 119, 130, 122, 116, 101, 123, 128, 131, 118, 135, 138, 118, 127, 125, 117, 116, 128, 130, 122, 131, 122, 122, 113, 140, 136, 126, 101, 138, 131, 120, 121, 131, 128, 128, 131, 140, 119, 113, 144, 130, 133, 113, 136, 131, 127, 120, 131, 122, 125, 154, 125, 126, 131, 130, 135, 128, 122, 130, 127, 147, 128, 133, 125, 117, 131, 126, 129, 139, 112, 118, 128, 121, 139, 139, 120, 119, 143, 134, 132, 142, 129, 119, 137, 141, 147, 134, 123, 122, 120, 106, 130, 110, 135, 120, 134, 127, 119, 126, 125, 113, 147, 135, 125, 121, 129, 109, 126, 124, 126, 108, 121, 123, 144, 126, 133, 126, 121, 111, 132, 122, 142, 123, 130, 128, 150, 145, 115, 132, 104, 120, 126, 109, 110, 123, 116, 126, 117, 151, 119, 114, 136, 114, 145, 135, 137, 128, 117, 134, 120, 134, 135, 127, 131, 115, 129, 130, 119, 99, 126, 127, 115, 117, 125, 127, 107, 116, 106, 108, 136, 127, 114, 131, 122, 141, 129, 138, 133, 123, 122, 106, 114, 124, 123, 140, 127, 120, 131, 113, 131, 111, 115, 134, 109, 130, 116, 111, 120, 127, 156, 124, 127, 121, 97, 131, 135, 128, 122, 120, 120, 142, 122, 111, 120, 132, 109, 130, 141, 104, 132, 113, 132, 129, 123, 120, 133, 122, 129, 115, 112, 118, 119, 132, 138, 134, 125, 127, 127, 120, 149, 134, 121, 118, 121, 125, 139, 129, 138, 126, 112, 138, 114, 109, 111, 135, 143, 137, 144, 125, 121, 130, 132, 128, 122, 121, 130, 136, 122, 119, 106, 122, 125, 128, 122, 114, 128, 101, 147, 135, 119, 120, 135, 119, 145, 130, 134, 136, 127, 108, 114, 118, 119, 128, 116, 125, 119, 114, 123, 128, 139, 123, 140, 134, 115, 140, 136, 119, 123, 136, 113, 126, 124, 134, 125, 131, 128, 125, 142, 114, 122, 126, 131, 125, 121, 116, 116, 128, 130, 125, 133, 137, 124, 116, 122, 114, 128, 127, 130, 131, 110, 133, 105, 118, 133, 118, 129, 110, 131, 104, 135, 113, 122, 137, 125, 111, 106, 137, 129, 127, 130, 118, 126, 133, 133, 132, 122, 126, 130, 128, 112, 126, 121, 112, 142, 110, 120, 114, 137, 130, 128, 116, 132, 139, 125, 120, 129, 144, 110, 148, 116, 123, 127, 134, 136, 124, 120, 132, 120, 141, 129, 119, 125, 110, 116, 123, 122, 107, 134, 132, 108, 124, 125, 123, 138, 133, 129, 144, 116, 136, 126, 118, 149, 126, 114, 121, 130, 97, 124, 121, 130, 132, 109, 122, 115, 148, 139, 107, 134, 112, 128, 127, 122, 126, 124, 122, 110, 145, 126, 121, 129, 119, 130, 113, 118, 141, 118, 121, 117, 125, 132, 138, 107, 125, 129, 142, 129, 125, 135, 123, 132, 132, 121, 121, 135, 132, 114, 139, 127, 130, 146, 113, 115, 131, 127, 124, 128, 118, 110, 134, 124, 127, 127, 132, 131, 118, 140, 120, 140, 128, 132, 115, 129, 107, 125, 139, 125, 130, 124, 135, 128, 124, 125, 103, 132, 119, 127, 129, 131, 122, 127, 112, 115, 112, 125, 130, 119, 128, 139, 133, 120, 124, 119, 127, 128, 112, 124, 126, 138, 119, 125, 96, 119, 119, 101, 114, 139, 116, 130, 133, 127, 120, 140, 120, 122, 122, 132, 141, 110, 122, 120, 122, 148, 117, 131, 132, 122, 126, 145, 118, 140, 140, 145, 125, 126, 120, 146, 133, 121, 135, 125, 136, 136, 137, 142, 117, 108, 122, 130, 124, 104, 132, 127, 114, 131, 119, 119, 141, 136, 119, 138, 149, 113, 125, 110, 140, 129, 153, 118, 151, 134, 111, 126, 130, 134, 125, 126, 105, 132, 119, 122, 124, 149, 97, 126, 118, 114, 138, 112, 138, 120, 120, 120, 119, 119, 116, 131, 136, 125, 152, 116, 141, 151, 142, 118, 120, 134, 136, 119, 100, 122, 131, 125, 117, 133, 154, 117, 122, 128, 114, 131, 153, 127, 127, 124, 121, 139, 129, 122, 129, 121, 124, 127, 133, 121, 120, 127, 122, 132, 125, 129, 124, 131, 106, 124, 116, 135, 134, 115, 128, 128, 131, 126, 125, 151, 126, 131, 135, 137, 120, 122, 131, 117, 128, 124, 123, 133, 135, 115, 129, 124, 124, 129, 109, 133, 138, 113, 129, 137, 131, 119, 137, 119, 107, 119, 136, 123, 114, 131, 105, 133, 133, 129, 121, 124, 124, 129, 101, 109, 138, 130, 133, 104, 134, 132, 110, 125, 136, 120, 143, 112, 116, 123, 132, 104, 124, 117, 137, 118, 119, 126, 128, 121, 142, 133, 141, 123, 152, 103, 121, 136, 129, 125, 130, 119, 115, 125, 143, 126, 134, 135, 121, 127, 123, 131, 130, 126, 116, 115, 114, 131, 119, 119, 125, 137, 132, 122, 119, 102, 120, 109, 124, 129, 121, 141, 117, 119, 131, 120, 115, 108, 144, 121, 105, 121, 132, 116, 132, 143, 133, 126, 111, 122, 118, 121, 140, 106, 121, 126, 140, 131, 115, 120, 104, 114, 127, 138, 129, 115, 123, 127, 129, 101, 131, 118, 122, 134, 133, 136, 134, 122, 130, 120, 119, 122, 132, 111, 114, 133, 132, 120, 112, 127, 130, 143, 123, 124, 159, 125, 130, 142, 132, 121, 128, 121, 116, 117, 122, 111, 123, 106, 107, 136, 115, 126, 132, 139, 132, 131, 138, 120, 127, 134, 130, 111, 124, 136, 121, 125, 129, 119, 129, 133, 120, 130, 120, 124, 115, 130, 128, 121, 128, 124, 134, 134, 130, 114, 128, 130, 115, 124, 123, 134, 121, 140, 109, 144, 124, 93, 118, 122, 120, 135, 124, 113, 119, 124, 141, 126, 144, 146, 132, 128, 118, 130, 125, 136, 133, 117, 119, 139, 118, 137, 122, 125, 133, 119, 121, 121, 130, 122, 102, 143, 131, 124, 119, 132, 126, 117, 128, 108, 140, 132, 121, 129, 123, 128, 131, 125, 125, 138, 120, 125, 123, 109, 133, 115, 135, 144, 119, 133, 124, 116, 132, 105, 127, 125, 130, 121, 115, 118, 139, 119, 126, 132, 125, 116, 119, 125, 134, 125, 126, 117, 142, 136, 124, 115, 116, 122, 111, 132, 113, 124, 131, 139, 128, 129, 121, 122, 132, 119, 121, 143, 124, 132, 132, 131, 131, 134, 122, 128, 112, 147, 128, 129, 134, 155, 120, 131, 123, 125, 125, 129, 131, 134, 140, 120, 118, 129, 140, 140, 123, 131, 121, 124, 154, 120, 130, 120, 122, 125, 121, 134, 114, 145, 145, 120, 130, 118, 143, 129, 134, 140, 135, 128, 115, 134, 137, 144, 111, 132, 122, 133, 137, 131, 135, 132, 145, 121, 117, 136, 107, 138, 127, 143, 106, 109, 139, 127, 124, 118, 124, 139, 122, 118, 140, 116, 137, 123, 107, 127, 117, 119, 122, 124, 109, 124, 131, 140, 152, 129, 115, 132, 121, 126, 121, 127, 124, 128, 132, 135, 124, 142, 123, 141, 120, 137, 134, 124, 138, 130, 141, 129, 118, 119, 120, 137, 117, 115, 125, 122, 129, 120, 142, 115, 124, 115, 120, 154, 132, 111, 128, 139, 124, 123, 143, 117, 117, 130, 130, 123, 115, 109, 128, 130, 132, 117, 118, 128, 136, 117, 133, 129, 142, 116, 126, 110, 128, 125, 136, 119, 125, 121, 116, 123, 121, 117, 124, 119, 134, 105, 140, 117, 99, 133, 116, 139, 126, 124, 115, 135, 114, 123, 129, 113, 156, 123, 134, 127, 113, 136, 107, 127, 120, 129, 117, 137, 131, 121, 139, 114, 133, 123, 109, 128, 119, 116, 133, 120, 148, 132, 110, 131, 116, 117, 115, 122, 110, 123, 111, 132, 125, 122, 130, 112, 128, 135, 116, 123, 137, 126, 134, 129, 129, 123, 112, 121, 126, 114, 114, 137, 104, 125, 119, 108, 111, 140, 141, 107, 123, 129, 123, 118, 126, 133, 128, 120, 123, 131, 109, 128, 140, 125, 114, 126, 110, 129, 104, 121, 125, 127, 103, 129, 108, 123, 127, 132, 111, 109, 120, 109, 131, 105, 141, 126, 133, 127, 131, 121, 118, 133, 119, 123, 131, 113, 131, 131, 128, 139, 126, 132, 126, 141, 126, 113, 116, 132, 130, 117, 120, 124, 112, 123, 120, 122, 123, 108, 113, 114, 111, 117, 121, 132, 136, 114, 126, 134, 125, 127, 119, 127, 128, 138, 113, 120, 119, 118, 118, 136, 127, 132, 122, 122, 110, 132, 129, 126, 127, 122, 142, 118, 122, 133, 125, 111, 132, 105, 106, 138, 118, 114, 128, 136, 136, 132, 100, 135, 122, 111, 123, 119, 128, 123, 131, 118, 126, 131, 120, 122, 142, 148, 131, 122, 123, 127, 122, 128, 125, 124, 107, 123, 112, 122, 110, 112, 124, 126, 143, 133, 124, 122, 140, 105, 121, 115, 130, 125, 127, 140, 139, 124, 134, 130, 139, 125, 138, 110, 132, 125, 134, 118, 116, 121, 124, 130, 128, 121, 119, 136, 100, 119, 117, 116, 127, 133, 126, 139, 126, 115, 140, 116, 109, 129, 101, 131, 129, 116, 135, 136, 112, 130, 124, 140, 118, 122, 124, 137, 128, 118, 92, 125, 124, 111, 127, 133, 118, 129, 128, 114, 118, 137, 117, 139, 131, 133, 128, 127, 142, 142, 116, 129, 120, 106, 150, 136, 118, 171, 116, 128, 131, 104, 131, 131, 126, 127, 135, 120, 129, 132, 119, 136, 133, 119, 118, 128, 124, 118, 130, 112, 119, 122, 128, 111, 143, 138, 117, 130, 133, 123, 112, 136, 114, 135, 130, 156, 118, 112, 129, 116, 112, 119, 127, 129, 129, 136, 114, 122, 135, 118, 134, 120, 136, 113, 134, 121, 116, 151, 117, 119, 155, 123, 121, 124, 125, 127, 121, 134, 130, 140, 128, 121, 114, 121, 144, 116, 138, 130, 125, 125, 134, 118, 114, 112, 121, 114, 109, 129, 135, 139, 147, 111, 125, 122, 102, 132, 138, 128, 121, 127, 109, 120, 149, 140, 124, 131, 129, 136, 123, 118, 129, 138, 108, 133, 129, 130, 125, 120, 134, 132, 119, 112, 129, 131, 121, 119, 123, 137, 119, 133, 135, 119, 120, 107, 144, 127, 137, 133, 116, 122, 123, 143, 117, 126, 117, 123, 141, 133, 130, 119, 131, 136, 116, 113, 121, 126, 135, 120, 133, 139, 124, 128, 116, 113, 141, 121, 119, 119, 125, 106, 133, 115, 135, 116, 117, 128, 122, 109, 127, 105, 128, 118, 111, 118, 120, 111, 121, 128, 132, 136, 117, 127, 110, 134, 112, 132, 129, 116, 105, 126, 138, 161, 127, 125, 131, 128, 132, 132, 130, 131, 115, 121, 122, 141, 116, 122, 115, 113, 122, 132, 145, 140, 113, 122, 134, 109, 145, 105, 145, 138, 109, 116, 106, 105, 120, 114, 133, 136, 131, 128, 113, 126, 126, 125, 129, 121, 154, 128, 130, 118, 115, 107, 119, 130, 132, 129, 119, 125, 136, 114, 142, 132, 128, 133, 114, 135, 141, 115, 120, 134, 137, 138, 140, 127, 124, 123, 120, 142, 125, 127, 132, 128, 135, 123, 127, 120, 138, 150, 140, 136, 131, 112, 136, 116, 119, 117, 111, 103, 126, 133, 135, 115, 124, 125, 133, 103, 123, 136, 125, 127, 118, 124, 120, 132, 116, 115, 142, 129, 117, 131, 139, 128, 121, 142, 124, 118, 126, 140, 140, 116, 118, 129, 131, 134, 134, 141, 116, 121, 126, 138, 131, 128, 127, 121, 128, 127, 122, 133, 132, 133, 126, 126, 118, 125, 129, 124, 133, 122, 137, 138, 121, 148, 122, 138, 115, 128, 106, 120, 132, 113, 154, 119, 114, 109, 90, 137, 86, 121, 121, 147, 132, 132, 127, 140, 126, 123, 134, 125, 126, 157, 130, 121, 126, 144, 128, 135, 114, 107, 115, 123, 131, 120, 125, 127, 136, 121, 121, 113, 118, 111, 132, 102, 132, 128, 131, 102, 128, 106, 130, 115, 120, 133, 123, 134, 121, 134, 124, 141, 148, 127, 110, 122, 137, 133, 108, 120, 128, 117, 123, 116, 134, 127, 118, 108, 113, 136, 114, 137, 113, 124, 128, 132, 123, 126, 126, 128, 112, 112, 133, 124, 129, 96, 117, 120, 128, 117, 131, 121, 137, 137, 124, 113, 123, 119, 147, 123, 135, 123, 123, 113, 105, 114, 130, 128, 130, 128, 127, 136, 150, 123, 121, 130, 119, 132, 118, 133, 139, 129, 98, 127, 115, 124, 127, 126, 123, 108, 133, 125, 119, 144, 102, 131, 136, 127, 109, 136, 119, 126, 126, 132, 108, 128, 152, 120, 130, 126, 116, 117, 145, 104, 118, 131, 112, 143, 119, 130, 129, 121, 111, 129, 132, 123, 143, 115, 140, 148, 140, 143, 137, 133, 146, 125, 120, 101, 109, 135, 119, 120, 155, 129, 125, 121, 138, 115, 122, 123, 137, 136, 137, 122, 113, 131, 126, 125, 124, 123, 121, 124, 128, 126, 107, 115, 126, 128, 130, 120, 128, 134, 104, 104, 134, 127, 133, 127, 130, 113, 117, 129, 131, 123, 107, 138, 122, 150, 121, 125, 108, 136, 131, 119, 132, 121, 133, 119, 130, 119, 134, 119, 130, 98, 132, 130, 136, 113, 120, 134, 121, 108, 117, 128, 129, 123, 118, 129, 133, 130, 124, 114, 125, 122, 123, 115, 131, 112, 135, 112, 122, 133, 128, 120, 134, 137, 122, 119, 130, 114, 137, 96, 142, 128, 108, 120, 115, 127, 122, 114, 123, 113, 118, 123, 129, 131, 129, 127, 122, 113, 137, 120, 140, 126, 127, 129, 112, 114, 126, 125, 128, 140, 130, 132, 116, 116, 136, 133, 134, 120, 124, 101, 111, 110, 122, 136, 117, 136, 124, 122, 111, 132, 123, 136, 135, 123, 128, 122, 118, 142, 129, 108, 120, 128, 119, 138, 115, 122, 123, 121, 114, 131, 119, 120, 114, 114, 126, 121, 111, 115, 121, 117, 116, 132, 121, 131, 136, 117, 120, 142, 127, 143, 126, 121, 142, 111, 138, 127, 142, 130, 118, 106, 138, 114, 144, 126, 140, 126, 134, 132, 123, 121, 119, 113, 129, 123, 134, 121, 126, 120, 137, 149, 134, 130, 131, 126, 119, 134, 116, 112, 121, 139, 129, 120, 120, 146, 120, 141, 122, 116, 137, 116, 125, 139, 132, 129, 134, 126, 124, 136, 127, 129, 115, 128, 122, 121, 127, 131, 121, 116, 112, 124, 123, 112, 115, 125, 124, 129, 115, 131, 119, 131, 118, 122, 119, 135, 154, 108, 119, 125, 122, 131, 143, 119, 132, 127, 120, 101, 131, 119, 134, 111, 135, 130, 137, 127, 135, 120, 130, 116, 125, 125, 123, 132, 125, 116, 126, 121, 134, 104, 103, 136, 106, 131, 122, 128, 123, 115, 129, 129, 143, 135, 109, 138, 128, 107, 122, 114, 116, 117, 111, 115, 117, 119, 135, 117, 128, 137, 125, 122, 122, 126, 130, 120, 135, 135, 126, 117, 124, 110, 115, 137, 129, 133, 116, 120, 138, 113, 121, 122, 121, 129, 119, 129, 129, 125, 120, 145, 123, 120, 115, 107, 132, 96, 134, 132, 111, 123, 113, 128, 123, 126, 132, 125, 144, 125, 120, 128, 119, 120, 137, 133, 129, 105, 134, 122, 132, 105, 120, 136, 129, 138, 137, 122, 108, 133, 148, 123, 145, 135, 124, 127, 137, 135, 136, 118, 137, 115, 119, 113, 120, 130, 110, 125, 114, 139, 119, 131, 116, 126, 127, 124, 138, 128, 132, 127, 138, 148, 135, 122, 128, 112, 114, 130, 98, 117, 136, 134, 115, 138, 118, 117, 105, 127, 132, 130, 130, 135, 133, 139, 117, 132, 107, 127, 150, 117, 117, 131, 125, 113, 143, 122, 120, 115, 129, 112, 125, 119, 110, 134, 131, 138, 130, 123, 122, 131, 132, 130, 129, 128, 113, 128, 128, 125, 141, 132, 136, 111, 116, 120, 167, 148, 132, 133, 118, 114, 128, 123, 128, 126, 147, 118, 121, 132, 123, 127, 123, 136, 121, 124, 124, 115, 94, 134, 117, 127, 127, 119, 138, 120, 131, 127, 134, 119, 121, 134, 126, 137, 121, 127, 138, 125, 135, 121, 124, 119, 125, 139, 124, 124, 120, 124, 149, 156, 138, 132, 128, 129, 128, 115, 128, 126, 112, 122, 121, 125, 124, 147, 126, 127, 120, 151, 127, 112, 135, 106, 139, 115, 125, 131, 127, 155, 134, 124, 113, 125, 104, 116, 133, 112, 124, 120, 114, 111, 134, 139, 127, 114, 123, 115, 124, 110, 126, 126, 132, 126, 126, 141, 133, 138, 119, 131, 154, 132, 130, 135, 127, 132, 150, 107, 140, 124, 108, 135, 105, 141, 117, 114, 123, 119, 113, 133, 147, 125, 91, 121, 124, 107, 112, 136, 152, 119, 118, 151, 120, 132, 114, 122, 120, 131, 106, 127, 132, 136, 117, 132, 122, 116, 141, 130, 127, 125, 130, 135, 114, 116, 127, 137, 132, 115, 105, 136, 123, 122, 104, 148, 117, 126, 119, 130, 131, 121, 137, 135, 114, 120, 125, 126, 135, 121, 128, 133, 139, 120, 122, 127, 130, 115, 131, 117, 125, 134, 112, 128, 128, 122, 112, 145, 137, 115, 121, 127, 124, 123, 125, 100, 121, 140, 128, 120, 111, 118, 112, 118, 148, 93, 129, 109, 116, 123, 124, 115, 140, 142, 133, 104, 146, 117, 132, 121, 105, 113, 127, 100, 109, 103, 125, 124, 135, 123, 128, 129, 146, 139, 115, 128, 132, 122, 112, 104, 118, 101, 138, 111, 114, 136, 134, 115, 186, 113, 125, 127, 126, 105, 129, 114, 136, 127, 98, 112, 137, 135, 104, 146, 111, 134, 120, 126, 143, 126, 128, 129, 124, 134, 141, 120, 120, 134, 127, 131, 121, 118, 126, 120, 132, 119, 120, 112, 124, 143, 138, 124, 124, 128, 134, 138, 126, 122, 116, 118, 85, 131, 125, 119, 134, 130, 132, 110, 110, 120, 127, 124, 103, 130, 107, 123, 132, 119, 112, 125, 122, 144, 136, 122, 115, 116, 113, 117, 135, 108, 119, 134, 134, 131, 119, 128, 126, 141, 113, 130, 103, 135, 128, 108, 121, 129, 126, 144, 140, 142, 121, 142, 117, 124, 140, 124, 130, 135, 131, 114, 131, 131, 137, 108, 110, 141, 127, 114, 125, 140, 139, 115, 128, 135, 118, 146, 130, 119, 118, 131, 132, 124, 131, 120, 132, 141, 131, 125, 124, 124, 130, 120, 128, 119, 122, 126, 118, 142, 125, 114, 137, 115, 121, 123, 133, 115, 123, 155, 128, 124, 110, 119, 116, 125, 113, 123, 118, 137, 112, 122, 113, 142, 124, 139, 121, 136, 120, 135, 126, 111, 115, 142, 124, 111, 135, 137, 131, 128, 128, 125, 126, 133, 126, 128, 132, 113, 125, 124, 122, 122, 119, 117, 134, 137, 134, 109, 139, 132, 145, 126, 122, 105, 131, 130, 121, 130, 112, 139, 133, 127, 136, 130, 113, 122, 113, 115, 125, 141, 128, 144, 122, 143, 109, 126, 114, 125, 118, 109, 126, 123, 129, 140, 134, 138, 113, 103, 133, 121, 128, 128, 119, 127, 133, 109, 120, 129, 125, 104, 105, 126, 125, 112, 120, 125, 128, 124, 126, 112, 130, 132, 124, 116, 81, 136, 107, 121, 133, 116, 119, 129, 117, 136, 129, 116, 121, 140, 117, 129, 116, 120, 118, 116, 122, 109, 116, 135, 124, 140, 144, 121, 143, 117, 151, 130, 136, 126, 109, 115, 126, 135, 119, 132, 92, 131, 137, 114, 115, 121, 153, 135, 116, 145, 135, 131, 122, 118, 126, 127, 131, 110, 134, 141, 147, 120, 129, 134, 111, 122, 148, 113, 121, 145, 128, 116, 103, 125, 118, 139, 120, 129, 144, 122, 131, 117, 130, 134, 142, 133, 157, 116, 121, 126, 115, 124, 130, 135, 118, 133, 116, 128, 124, 117, 137, 137, 130, 116, 129, 100, 115, 141, 128, 96, 121, 123, 123, 121, 129, 145, 134, 125, 139, 130, 133, 140, 120, 137, 128, 125, 137, 128, 126, 136, 121, 110, 128, 129, 122, 120, 126, 118, 133, 127, 112, 120, 115, 125, 132, 117, 136, 120, 132, 123, 117, 142, 128, 112, 133, 143, 148, 120, 124, 135, 109, 142, 119, 115, 152, 117, 116, 127, 127, 121, 107, 125, 146, 126, 110, 129, 119, 125, 144, 125, 136, 132, 126, 133, 124, 117, 117, 130, 110, 122, 128, 118, 127, 135, 133, 111, 113, 120, 122, 129, 164, 121, 137, 125, 128, 131, 128, 136, 130, 117, 109, 125, 121, 115, 117, 123, 128, 125, 116, 121, 131, 126, 132, 133, 143, 120, 147, 127, 135, 122, 107, 143, 118, 129, 134, 149, 128, 133, 120, 137, 124, 115, 116, 112, 125, 118, 110, 123, 121, 125, 112, 122, 127, 123, 138, 123, 121, 127, 132, 125, 118, 129, 115, 137, 123, 150, 124, 131, 119, 124, 119, 128, 105, 136, 134, 110, 135, 147, 131, 120, 139, 109, 123, 125, 129, 119, 132, 131, 122, 156, 115, 109, 137, 137, 117, 130, 108, 121, 138, 121, 104, 127, 129, 123, 136, 135, 133, 117, 107, 119, 118, 148, 118, 133, 108, 116, 128, 129, 112, 120, 108, 115, 139, 142, 124, 121, 111, 116, 136, 130, 131, 131, 124, 120, 129, 133, 126, 138, 128, 109, 125, 165, 115, 92, 127, 115, 152, 109, 101, 122, 127, 157, 133, 112, 129, 111, 118, 131, 125, 141, 142, 117, 121, 137, 120, 144, 129, 118, 120, 123, 107, 119, 125, 120, 126, 130, 133, 129, 112, 124, 134, 127, 120, 131, 134, 120, 127, 123, 129, 111, 115, 130, 114, 145, 119, 123, 125, 128, 121, 125, 126, 133, 122, 134, 102, 144, 124, 121, 108, 122, 133, 118, 110, 128, 124, 138, 132, 147, 119, 125, 125, 133, 113, 101, 119, 112, 130, 120, 123, 118, 122, 123, 128, 124, 126, 133, 121, 122, 114, 115, 99, 120, 94, 129, 123, 114, 131, 126, 136, 116, 119, 133, 116, 134, 125, 133, 116, 133, 124, 123, 129, 133, 124, 118, 144, 109, 128, 142, 89, 143, 129, 122, 105, 151, 128, 121, 145, 134, 132, 128, 121, 134, 127, 124, 116, 123, 124, 122, 124, 129, 134, 148, 119, 127, 136, 112, 134, 109, 111, 118, 131, 140, 117, 121, 119, 139, 132, 127, 128, 111, 140, 132, 136, 130, 128, 114, 126, 130, 129, 135, 122, 133, 110, 112, 128, 118, 123, 117, 131, 127, 115, 118, 120, 134, 134, 136, 111, 141, 126, 118, 122, 115, 120, 133, 119, 112, 118, 116, 125, 121, 121, 136, 120, 107, 86, 142, 129, 137, 116, 121, 122, 135, 123, 145, 122, 149, 116, 134, 123, 118, 132, 129, 123, 128, 126, 123, 121, 147, 114, 122, 120, 156, 118, 124, 128, 137, 135, 124, 119, 112, 122, 146, 141, 116, 116, 121, 140, 127, 122, 121, 109, 137, 110, 107, 123, 126, 133, 131, 138, 110, 125, 130, 140, 108, 140, 117, 124, 129, 112, 142, 135, 106, 113, 113, 129, 135, 129, 147, 129, 124, 111, 142, 146, 105, 124, 124, 129, 137, 127, 134, 135, 143, 112, 129, 120, 143, 128, 123, 104, 128, 133, 130, 120, 123, 129, 135, 122, 124, 139, 130, 138, 122, 116, 126, 136, 113, 106, 118, 139, 106, 119, 115, 142, 140, 120, 120, 125, 117, 120, 134, 113, 130, 120, 132, 124, 129, 130, 126, 137, 131, 119, 149, 132, 130, 152, 124, 135, 112, 129, 138, 127, 109, 134, 122, 130, 136, 122, 120, 150, 130, 117, 124, 127, 121, 152, 121, 120, 135, 129, 121, 122, 135, 145, 128, 149, 140, 106, 122, 141, 127, 118, 123, 121, 119, 113, 126, 142, 133, 115, 118, 136, 136, 109, 123, 118, 124, 123, 124, 128, 123, 118, 127, 113, 143, 127, 132, 130, 145, 119, 132, 128, 112, 109, 116, 132, 130, 137, 111, 120, 114, 101, 115, 133, 130, 117, 109, 127, 125, 130, 127, 131, 114, 123, 136, 142, 120, 130, 119, 127, 115, 136, 120, 107, 124, 115, 122, 138, 136, 135, 128, 126, 123, 118, 123, 120, 112, 125, 131, 119, 120, 128, 134, 109, 130, 130, 105, 132, 116, 127, 137, 120, 121, 135, 137, 139, 123, 122, 123, 158, 112, 133, 144, 126, 127, 128, 137, 134, 125, 123, 101, 123, 131, 117, 113, 136, 118, 127, 121, 124, 154, 127, 127, 149, 131, 116, 128, 120, 116, 132, 123, 123, 140, 125, 109, 99, 130, 123, 129, 119, 125, 130, 118, 134, 108, 115, 135, 131, 127, 134, 123, 128, 108, 116, 114, 133, 134, 124, 131, 112, 127, 124, 117, 147, 119, 128, 127, 113, 122, 138, 109, 126, 123, 122, 110, 142, 129, 116, 139, 114, 131, 126, 109, 127, 122, 109, 121, 127, 113, 118, 127, 134, 121, 137, 120, 136, 139, 128, 122, 109, 127, 118, 117, 120, 122, 117, 128, 129, 125, 145, 110, 130, 127, 124, 131, 136, 110, 124, 127, 127, 123, 132, 123, 161, 139, 121, 128, 126, 106, 141, 125, 122, 129, 139, 139, 124, 116, 114, 111, 126, 140, 112, 119, 128, 114, 146, 110, 115, 113, 138, 136, 128, 120, 117, 146, 128, 126, 125, 126, 147, 133, 107, 117, 138, 127, 122, 101, 111, 117, 110, 131, 122, 103, 121, 120, 121, 131, 107, 138, 122, 124, 117, 119, 132, 136, 126, 113, 113, 136, 115, 119, 117, 122, 129, 125, 124, 125, 131, 134, 122, 119, 112, 141, 128, 102, 122, 124, 132, 114, 129, 113, 121, 129, 132, 135, 126, 115, 124, 135, 127, 118, 106, 128, 139, 113, 125, 137, 115, 113, 118, 112, 116, 120, 133, 92, 130, 124, 112, 119, 114, 126, 111, 133, 127, 142, 129, 121, 119, 119, 117, 109, 102, 104, 134, 137, 126, 120, 126, 132, 135, 122, 135, 125, 143, 148, 129, 110, 131, 123, 114, 113, 119, 121, 130, 113, 130, 118, 130, 118, 139, 117, 106, 115, 139, 126, 119, 122, 133, 115, 121, 124, 128, 140, 134, 132, 137, 137, 138, 146, 148, 127, 137, 122, 136, 131, 137, 114, 121, 102, 119, 123, 125, 129, 113, 132, 130, 116, 144, 119, 128, 120, 135, 109, 125, 128, 123, 123, 143, 123, 128, 131, 126, 129, 142, 116, 118, 114, 122, 128, 126, 124, 124, 120, 128, 148, 130, 106, 124, 136, 111, 130, 121, 146, 142, 125, 127, 142, 137, 119, 132, 134, 114, 127, 122, 137, 132, 133, 102, 125, 112, 133, 124, 141, 121, 112, 120, 117, 129, 113, 127, 124, 122, 125, 117, 136, 133, 122, 118, 137, 116, 135, 120, 127, 123, 120, 133, 140, 110, 131, 113, 116, 134, 127, 126, 121, 132, 124, 128, 127, 124, 131, 131, 120, 131, 118, 124, 120, 132, 115, 142, 121, 120, 120, 120, 115, 127, 132, 105, 132, 119, 119, 139, 129, 140, 132, 130, 112, 119, 120, 138, 118, 113, 110, 126, 116, 121, 125, 133, 117, 121, 128, 142, 111, 122, 137, 133, 142, 114, 133, 112, 123, 124, 137, 125, 106, 128, 117, 120, 139, 129, 111, 124, 114, 122, 113, 100, 126, 129, 127, 107, 126, 140, 137, 136, 119, 120, 125, 137, 132, 133, 113, 107, 120, 128, 128, 132, 131, 119, 161, 100, 134, 139, 128, 114, 130, 115, 127, 117, 135, 117, 119, 136, 140, 127, 134, 122, 119, 135, 115, 138, 138, 118, 157, 129, 134, 110, 141, 129, 118, 111, 107, 125, 112, 121, 120, 125, 119, 111, 121, 136, 135, 127, 126, 128, 134, 135, 126, 116, 118, 117, 129, 132, 108, 119, 135, 108, 140, 127, 136, 125, 138, 128, 141, 132, 127, 141, 130, 127, 107, 135, 135, 132, 131, 116, 126, 126, 139, 130, 144, 121, 122, 123, 129, 125, 148, 117, 142, 117, 135, 117, 135, 124, 131, 115, 129, 119, 122, 121, 138, 122, 125, 139, 125, 112, 117, 105, 116, 124, 127, 115, 126, 132, 124, 132, 120, 114, 123, 120, 106, 122, 114, 111, 120, 120, 127, 122, 127, 116, 112, 121, 131, 115, 119, 126, 135, 128, 135, 117, 135, 143, 130, 138, 125, 124, 140, 128, 122, 121, 156, 109, 121, 117, 132, 112, 133, 133, 139, 130, 121, 127, 115, 133, 114, 120, 106, 125, 126, 132, 118, 127, 138, 119, 127, 108, 116, 125, 111, 122, 135, 125, 134, 140, 126, 131, 134, 122, 127, 121, 121, 113, 126, 143, 122, 128, 126, 128, 114, 130, 112, 115, 115, 108, 126, 114, 146, 141, 121, 121, 137, 126, 147, 117, 104, 139, 135, 137, 127, 126, 114, 115, 142, 130, 113, 120, 150, 112, 138, 128, 119, 115, 113, 118, 136, 121, 139, 114, 117, 126, 139, 127, 134, 120, 115, 121, 122, 132, 138, 119, 123, 127, 128, 119, 121, 143, 116, 124, 110, 129, 125, 133, 131, 123, 112, 107, 125, 120, 128, 139, 123, 129, 123, 126, 116, 139, 134, 120, 135, 126, 123, 129, 132, 138, 127, 126, 130, 124, 124, 128, 119, 103, 124, 136, 123, 119, 122, 119, 144, 114, 124, 129, 131, 127, 123, 122, 118, 123, 147, 121, 134, 122, 106, 106, 125, 131, 125, 126, 118, 122, 132, 136, 121, 102, 131, 123, 118, 134, 131, 124, 134, 147, 126, 137, 131, 131, 126, 135, 142, 146, 125, 128, 119, 115, 127, 112, 111, 126, 104, 133, 122, 146, 118, 125, 133, 128, 129, 126, 124, 139, 126, 133, 120, 116, 138, 140, 121, 114, 117, 147, 134, 119, 127, 125, 122, 129, 130, 121, 135, 81, 123, 118, 122, 134, 113, 152, 125, 118, 128, 124, 118, 138, 117, 141, 128, 111, 124, 114, 132, 121, 123, 123, 109, 142, 132, 146, 163, 119, 118, 124, 119, 122, 111, 114, 117, 134, 124, 127, 134, 129, 122, 115, 124, 137, 120, 115, 122, 126, 107, 129, 137, 132, 142, 116, 110, 125, 121, 134, 129, 122, 145, 110, 127, 136, 125, 109, 120, 124, 122, 116, 124, 124, 118, 133, 129, 128, 138, 140, 132, 130, 124, 124, 133, 132, 145, 134, 118, 128, 111, 93, 118, 118, 119, 126, 122, 128, 120, 138, 134, 132, 120, 103, 119, 114, 136, 141, 112, 127, 137, 133, 125, 109, 133, 116, 137, 142, 119, 127, 119, 134, 136, 129, 137, 120, 128, 147, 140, 151, 129, 129, 112, 123, 126, 132, 134, 125, 125, 131, 136, 130, 131, 96, 137, 117, 100, 139, 127, 127, 122, 123, 134, 126, 132, 111, 134, 122, 121, 111, 118, 122, 120, 132, 128, 129, 131, 107, 125, 134, 122, 102, 126, 143, 120, 118, 129, 126, 120, 135, 123, 119, 112, 143, 139, 133, 119, 143, 146, 136, 122, 129, 119, 124, 106, 123, 129, 127, 136, 136, 120, 123, 130, 144, 129, 124, 119, 142, 123, 117, 126, 122, 140, 135, 119, 132, 140, 126, 144, 126, 131, 130, 122, 129, 131, 126, 123, 129, 131, 128, 130, 121, 116, 118, 134, 124, 138, 117, 128, 121, 130, 136, 115, 128, 124, 116, 132, 143, 119, 109, 128, 114, 122, 131, 136, 135, 125, 134, 99, 110, 126, 129, 136, 123, 122, 120, 130, 117, 113, 126, 122, 132, 150, 137, 119, 148, 116, 117, 110, 137, 137, 138, 114, 135, 114, 127, 127, 134, 117, 118, 130, 125, 122, 125, 133, 125, 134, 130, 105, 136, 113, 123, 128, 124, 126, 122, 124, 117, 123, 124, 119, 122, 128, 125, 147, 134, 122, 117, 114, 130, 144, 135, 129, 124, 108, 120, 116, 136, 138, 131, 120, 125, 132, 144, 136, 132, 122, 142, 100, 125, 126, 140, 131, 127, 138, 122, 126, 146, 147, 118, 116, 140, 112, 88, 124, 114, 128, 111, 126, 127, 131, 123, 123, 138, 113, 108, 131, 144, 145, 132, 123, 113, 143, 118, 130, 117, 118, 109, 132, 129, 128, 134, 137, 148, 122, 130, 125, 130, 107, 131, 143, 139, 135, 100, 141, 120, 145, 132, 127, 115, 108, 135, 127, 130, 130, 125, 115, 124, 120, 141, 139, 128, 113, 133, 108, 134, 137, 143, 132, 128, 123, 124, 122, 117, 111, 131, 134, 123, 132, 131, 117, 125, 115, 113, 131, 119, 125, 158, 115, 107, 125, 126, 132, 121, 132, 113, 134, 113, 113, 139, 105, 113, 124, 129, 126, 141, 118, 105, 127, 97, 127, 123, 123, 126, 116, 123, 120, 116, 112, 131, 118, 137, 124, 138, 127, 118, 132, 116, 122, 148, 123, 126, 136, 108, 141, 120, 128, 124, 122, 134, 110, 118, 136, 124, 100, 111, 130, 135, 136, 126, 123, 124, 112, 128, 121, 153, 115, 126, 130, 134, 109, 132, 123, 131, 126, 117, 120, 122, 137, 127, 120, 116, 125, 143, 122, 138, 138, 115, 108, 123, 123, 119, 133, 134, 122, 113, 117, 130, 138, 133, 127, 113, 117, 133, 134, 129, 124, 118, 154, 110, 126, 125, 112, 110, 103, 112, 123, 122, 123, 144, 145, 134, 135, 131, 117, 140, 125, 120, 114, 117, 130, 116, 118, 132, 127, 126, 124, 107, 131, 103, 132, 135, 118, 116, 111, 110, 108, 138, 127, 132, 139, 116, 110, 111, 120, 121, 149, 116, 131, 117, 132, 118, 126, 118, 124, 124, 125, 111, 105, 130, 133, 127, 116, 119, 128, 121, 114, 126, 111, 139, 120, 115, 123, 117, 136, 119, 129, 127, 108, 117, 131, 125, 149, 118, 125, 147, 126, 132, 130, 119, 118, 138, 134, 114, 118, 134, 117, 120, 135, 124, 136, 128, 124, 127, 128, 109, 132, 127, 117, 130, 122, 140, 122, 145, 118, 130, 144, 121, 115, 138, 120, 124, 108, 117, 137, 130, 123, 116, 129, 125, 129, 109, 124, 116, 116, 122, 120, 124, 125, 130, 125, 125, 117, 114, 126, 133, 115, 122, 108, 122, 123, 136, 131, 129, 123, 127, 101, 133, 119, 111, 131, 143, 128, 130, 111, 111, 111, 112, 112, 141, 151, 130, 122, 120, 136, 121, 134, 128, 118, 120, 114, 120, 132, 128, 116, 131, 124, 110, 126, 123, 147, 111, 116, 117, 135, 124, 122, 129, 128, 121, 134, 127, 124, 134, 108, 123, 119, 120, 120, 123, 117, 107, 112, 124, 130, 113, 123, 106, 132, 123, 138, 125, 141, 120, 126, 133, 114, 126, 132, 140, 143, 121, 128, 129, 127, 132, 126, 111, 121, 126, 126, 130, 122, 116, 128, 111, 121, 134, 129, 116, 109, 125, 124, 126, 130, 111, 133, 121, 133, 121, 128, 122, 126, 122, 124, 114, 134, 133, 118, 127, 130, 116, 128, 120, 125, 119, 136, 131, 133, 131, 121, 128, 138, 128, 123, 138, 130, 110, 120, 109, 121, 124, 139, 127, 139, 125, 139, 121, 117, 99, 136, 142, 129, 124, 132, 115, 133, 122, 135, 130, 132, 130, 127, 124, 122, 121, 124, 119, 118, 122, 113, 119, 123, 126, 122, 148, 129, 112, 129, 115, 140, 128, 135, 124, 132, 135, 131, 125, 119, 119, 129, 127, 110, 128, 139, 112, 132, 125, 137, 130, 124, 119, 129, 116, 122, 135, 124, 112, 122, 123, 118, 131, 131, 114, 120, 137, 131, 136, 120, 110, 101, 128, 120, 118, 118, 132, 114, 129, 133, 130, 126, 125, 139, 101, 132, 124, 118, 119, 128, 121, 127, 130, 118, 111, 147, 135, 146, 134, 131, 116, 132, 138, 134, 129, 126, 110, 121, 131, 124, 109, 127, 119, 136, 114, 129, 142, 123, 129, 128, 133, 123, 117, 122, 127, 152, 119, 128, 120, 120, 114, 113, 110, 140, 112, 123, 109, 123, 126, 109, 109, 136, 126, 141, 124, 114, 111, 142, 116, 114, 127, 133, 111, 131, 121, 138, 134, 120, 129, 112, 127, 116, 132, 118, 108, 138, 138, 101, 129, 144, 155, 140, 135, 129, 120, 124, 114, 131, 130, 112, 130, 123, 120, 148, 121, 117, 126, 117, 103, 119, 123, 127, 105, 119, 130, 135, 116, 125, 136, 121, 129, 126, 131, 122, 122, 133, 119, 135, 114, 116, 134, 110, 110, 108, 125, 121, 127, 121, 144, 117, 128, 139, 124, 107, 105, 146, 142, 114, 130, 114, 141, 120, 132, 128, 126, 126, 114, 137, 126, 128, 107, 137, 111, 112, 120, 138, 111, 134, 128, 141, 120, 129, 116, 109, 116, 132, 122, 107, 123, 112, 118, 122, 134, 112, 113, 116, 135, 120, 119, 137, 138, 136, 131, 125, 130, 113, 134, 140, 125, 133, 125, 146, 133, 118, 136, 120, 133, 115, 114, 132, 139, 111, 139, 116, 124, 120, 139, 130, 130, 124, 125, 129, 139, 126, 135, 114, 146, 134, 139, 131, 113, 129, 129, 118, 130, 126, 118, 141, 120, 112, 135, 135, 108, 129, 132, 111, 125, 125, 123, 127, 129, 113, 113, 139, 128, 143, 129, 129, 125, 139, 123, 120, 135, 112, 119, 119, 126, 126, 125, 110, 120, 149, 133, 112, 130, 123, 122, 130, 147, 111, 128, 127, 133, 135, 142, 131, 110, 132, 122, 119, 131, 129, 123, 134, 130, 126, 122, 111, 126, 118, 133, 123, 120, 118, 119, 129, 126, 114, 131, 111, 107, 136, 125, 127, 131, 119, 128, 117, 133, 133, 128, 124, 127, 112, 132, 117, 142, 109, 114, 110, 99, 115, 123, 114, 127, 113, 119, 147, 112, 140, 133, 134, 132, 127, 139, 133, 110, 123, 113, 127, 136, 123, 135, 116, 123, 117, 126, 150, 117, 122, 132, 130, 121, 124, 132, 121, 128, 138, 125, 137, 127, 131, 116, 118, 116, 109, 136, 129, 106, 121, 129, 129, 112, 127, 134, 117, 155, 117, 126, 137, 143, 129, 121, 132, 126, 126, 116, 106, 136, 144, 128, 121, 126, 118, 131, 140, 129, 128, 123, 129, 121, 123, 130, 129, 133, 138, 133, 128, 140, 128, 133, 141, 135, 113, 123, 130, 122, 114, 129, 123, 116, 127, 146, 123, 141, 136, 130, 135, 129, 114, 106, 118, 124, 125, 114, 126, 124, 133, 122, 123, 132, 125, 128, 124, 100, 123, 140, 142, 126, 131, 126, 140, 128, 137, 120, 110, 116, 127, 132, 140, 128, 127, 125, 128, 125, 133, 102, 114, 150, 124, 160, 121, 133, 115, 131, 132, 122, 135, 115, 143, 129, 115, 126, 117, 147, 114, 111, 125, 132, 112, 121, 146, 110, 118, 128, 130, 126, 143, 118, 143, 128, 128, 120, 107, 118, 112, 129, 129, 116, 118, 126, 142, 138, 124, 142, 127, 123, 131, 128, 141, 132, 119, 128, 120, 133, 133, 137, 112, 104, 134, 137, 121, 116, 124, 122, 111, 129, 128, 139, 123, 127, 128, 124, 118, 123, 117, 131, 127, 125, 123, 130, 110, 119, 134, 152, 123, 121, 105, 119, 97, 126, 116, 120, 126, 113, 122, 129, 130, 106, 118, 119, 128, 121, 135, 146, 108, 136, 122, 122, 121, 137, 128, 130, 109, 119, 120, 128, 125, 132, 113, 148, 115, 147, 104, 136, 114, 122, 108, 117, 124, 127, 143, 115, 111, 114, 118, 127, 134, 147, 120, 134, 111, 132, 117, 130, 118, 146, 144, 132, 139, 109, 121, 127, 128, 125, 113, 116, 109, 128, 149, 114, 133, 115, 117, 133, 110, 122, 134, 137, 108, 127, 126, 138, 121, 119, 116, 125, 122, 127, 127, 125, 123, 135, 114, 131, 114, 128, 133, 115, 122, 146, 150, 133, 140, 140, 112, 115, 127, 138, 125, 142, 123, 107, 129, 110, 119, 125, 134, 130, 131, 138, 112, 148, 123, 121, 137, 143, 131, 126, 131, 126, 128, 148, 122, 138, 134, 131, 139, 131, 138, 124, 122, 135, 144, 140, 112, 128, 140, 141, 125, 126, 123, 132, 102, 125, 125, 113, 130, 122, 134, 132, 133, 132, 124, 123, 139, 129, 131, 127, 121, 117, 127, 134, 114, 134, 127, 111, 112, 141, 140, 138, 133, 112, 129, 119, 128, 131, 128, 144, 123, 100, 139, 137, 116, 108, 112, 111, 123, 124, 126, 113, 134, 141, 129, 121, 141, 133, 122, 115, 124, 140, 127, 125, 140, 115, 130, 127, 121, 122, 117, 122, 142, 129, 117, 135, 126, 116, 134, 116, 121, 130, 129, 132, 139, 125, 136, 113, 121, 136, 143, 136, 148, 121, 117, 140, 116, 103, 144, 125, 122, 142, 130, 131, 116, 145, 142, 126, 126, 137, 125, 126, 116, 113, 121, 121, 131, 101, 140, 135, 129, 134, 139, 134, 127, 141, 128, 137, 126, 133, 113, 116, 118, 139, 131, 134, 138, 126, 114, 141, 130, 138, 95, 116, 127, 134, 139, 115, 120, 104, 122, 119, 127, 121, 139, 116, 136, 138, 138, 122, 125, 127, 146, 113, 116, 128, 137, 123, 131, 124, 137, 117, 144, 109, 140, 132, 136, 107, 118, 133, 135, 119, 127, 125, 125, 120, 124, 131, 117, 115, 128, 104, 125, 136, 125, 123, 135, 131, 125, 126, 118, 132, 140, 107, 123, 129, 127, 108, 135, 122, 126, 127, 131, 132, 135, 124, 135, 122, 121, 106, 137, 125, 133, 127, 143, 125, 123, 112, 127, 131, 127, 113, 133, 107, 149, 114, 132, 117, 124, 128, 104, 135, 129, 131, 133, 125, 132, 138, 138, 111, 129, 109, 118, 132, 128, 126, 142, 135, 124, 112, 145, 141, 124, 127, 122, 116, 146, 127, 130, 104, 131, 134, 145, 124, 127, 125, 127, 119, 130, 114, 143, 131, 125, 130, 124, 130, 121, 119, 125, 120, 116, 127, 130, 100, 135, 132, 133, 128, 133, 120, 127, 122, 120, 131, 120, 121, 104, 130, 113, 130, 118, 110, 117, 130, 125, 130, 120, 135, 120, 148, 118, 128, 141, 135, 124, 117, 134, 151, 116, 142, 134, 121, 117, 135, 137, 115, 134, 116, 127, 119, 106, 110, 130, 123, 123, 119, 122, 137, 132, 128, 125, 108, 125, 129, 138, 136, 128, 124, 129, 119, 141, 116, 132, 129, 128, 136, 131, 121, 130, 126, 139, 121, 113, 138, 115, 123, 121, 116, 129, 128, 144, 134, 118, 101, 141, 133, 115, 160, 131, 122, 130, 137, 141, 124, 119, 115, 138, 135, 122, 126, 112, 123, 124, 138, 127, 120, 117, 133, 102, 113, 131, 125, 128, 129, 110, 129, 137, 116, 120, 116, 144, 111, 140, 150, 129, 120, 117, 121, 129, 110, 117, 138, 128, 123, 147, 122, 126, 127, 127, 117, 122, 111, 117, 130, 119, 118, 119, 118, 131, 126, 111, 126, 103, 133, 138, 136, 101, 118, 123, 124, 109, 104, 123, 126, 120, 124, 112, 131, 131, 104, 106, 136, 132, 137, 113, 130, 129, 142, 130, 108, 132, 131, 111, 114, 128, 117, 140, 126, 138, 144, 131, 126, 123, 134, 126, 140, 110, 127, 113, 141, 109, 123, 104, 110, 118, 118, 111, 117, 117, 125, 116, 128, 124, 120, 131, 114, 120, 129, 115, 125, 134, 141, 128, 129, 125, 131, 121, 121, 125, 123, 114, 120, 123, 138, 120, 125, 119, 110, 143, 109, 123, 140, 105, 132, 124, 134, 114, 123, 127, 126, 125, 132, 123, 110, 123, 119, 130, 119, 133, 143, 122, 125, 111, 121, 132, 113, 134, 119, 130, 128, 132, 141, 116, 131, 141, 132, 119, 124, 127, 119, 125, 128, 134, 144, 142, 120, 107, 129, 104, 126, 110, 143, 113, 123, 139, 119, 136, 137, 127, 122, 116, 120, 141, 141, 120, 129, 127, 140, 113, 127, 134, 126, 127, 131, 135, 130, 120, 121, 132, 130, 145, 126, 126, 122, 133, 144, 118, 134, 124, 129, 116, 113, 141, 132, 115, 123, 131, 122, 115, 101, 122, 130, 128, 137, 131, 130, 133, 132, 124, 121, 123, 121, 140, 107, 125, 140, 118, 136, 113, 126, 125, 129, 140, 123, 124, 130, 125, 139, 139, 122, 119, 142, 133, 115, 126, 130, 112, 119, 116, 131, 119, 132, 107, 128, 117, 141, 127, 138, 113, 134, 130, 124, 130, 124, 119, 131, 141, 130, 111, 127, 140, 121, 142, 117, 149, 116, 123, 129, 137, 151, 111, 137, 123, 140, 129, 104, 137, 147, 121, 113, 125, 150, 125, 114, 119, 138, 134, 126, 138, 127, 114, 131, 125, 123, 131, 114, 126, 136, 130, 138, 144, 129, 108, 132, 139, 114, 113, 143, 111, 128, 119, 140, 112, 127, 153, 123, 119, 140, 142, 138, 124, 130, 142, 133, 142, 123, 108, 120, 128, 120, 130, 120, 123, 126, 120, 125, 130, 130, 131, 109, 110, 120, 114, 142, 130, 127, 116, 133, 120, 109, 134, 128, 149, 127, 124, 104, 138, 129, 114, 117, 123, 128, 138, 123, 133, 114, 121, 124, 136, 121, 137, 132, 125, 127, 113, 143, 111, 118, 116, 119, 122, 119, 127, 126, 110, 130, 125, 131, 121, 130, 136, 130, 125, 123, 133, 137, 125, 121, 134, 113, 134, 125, 118, 124, 122, 134, 122, 117, 138, 123, 129, 119, 124, 117, 119, 137, 119, 135, 130, 126, 118, 132, 125, 122, 121, 122, 116, 125, 130, 114, 131, 122, 136, 145, 130, 126, 119, 114, 109, 128, 123, 121, 114, 120, 121, 109, 117, 145, 128, 111, 118, 101, 127, 129, 132, 107, 123, 136, 111, 131, 126, 151, 118, 141, 131, 144, 119, 114, 133, 134, 141, 143, 124, 127, 147, 114, 115, 104, 115, 126, 132, 140, 116, 125, 121, 117, 140, 147, 119, 113, 108, 120, 133, 133, 133, 107, 134, 148, 99, 129, 133, 118, 133, 133, 110, 131, 132, 120, 140, 113, 123, 116, 119, 111, 133, 115, 135, 130, 118, 133, 125, 113, 123, 142, 124, 134, 126, 120, 125, 122, 122, 128, 124, 116, 134, 133, 123, 124, 102, 133, 109, 108, 123, 121, 120, 125, 140, 101, 131, 130, 143, 133, 119, 128, 122, 131, 121, 129, 139, 139, 134, 118, 112, 129, 113, 125, 129, 128, 112, 116, 138, 131, 132, 120, 131, 144, 123, 122, 125, 132, 128, 127, 110, 130, 135, 110, 124, 139, 118, 134, 127, 119, 126, 116, 133, 118, 123, 140, 133, 120, 129, 116, 105, 134, 136, 134, 136, 138, 135, 147, 129, 122, 131, 151, 115, 116, 133, 136, 121, 129, 150, 139, 124, 115, 111, 138, 117, 120, 111, 135, 150, 115, 133, 120, 115, 131, 143, 125, 143, 133, 129, 119, 106, 135, 131, 128, 116, 155, 129, 131, 112, 120, 116, 119, 136, 114, 134, 131, 121, 124, 149, 126, 121, 132, 132, 130, 131, 114, 136, 125, 126, 118, 123, 139, 107, 121, 132, 127, 122, 138, 134, 135, 111, 128, 109, 131, 122, 122, 117, 108, 107, 129, 105, 120, 123, 111, 106, 133, 127, 127, 114, 134, 125, 125, 126, 131, 132, 147, 131, 117, 130, 136, 99, 133, 122, 129, 122, 137, 146, 123, 112, 127, 127, 126, 125, 122, 127, 119, 121, 115, 128, 125, 126, 129, 124, 137, 152, 143, 149, 134, 127, 129, 127, 121, 126, 138, 132, 110, 121, 126, 137, 116, 106, 128, 137, 118, 131, 133, 123, 116, 116, 133, 127, 137, 134, 130, 120, 96, 138, 104, 117, 118, 136, 128, 113, 158, 124, 152, 150, 106, 128, 127, 115, 127, 145, 105, 127, 111, 132, 147, 146, 102, 135, 128, 129, 139, 128, 144, 114, 125, 125, 132, 135, 120, 122, 143, 147, 124, 120, 128, 145, 115, 117, 137, 131, 131, 128, 138, 135, 130, 116, 124, 119, 128, 139, 129, 122, 133, 141, 137, 114, 122, 123, 135, 128, 113, 122, 142, 137, 131, 122, 118, 141, 138, 144, 115, 131, 136, 142, 132, 133, 118, 116, 152, 95, 148, 122, 122, 131, 127, 130, 123, 116, 113, 120, 128, 117, 140, 137, 116, 128, 132, 122, 123, 111, 124, 125, 144, 116, 129, 140, 130, 125, 121, 131, 114, 138, 114, 119, 122, 124, 124, 130, 109, 126, 112, 113, 128, 129, 133, 126, 120, 125, 135, 117, 121, 102, 134, 114, 121, 124, 115, 129, 103, 133, 132, 151, 123, 121, 121, 124, 120, 140, 130, 126, 119, 109, 136, 136, 113, 117, 115, 126, 147, 112, 108, 126, 110, 112, 119, 118, 128, 131, 112, 112, 138, 142, 122, 114, 129, 127, 129, 136, 121, 121, 140, 146, 135, 136, 118, 149, 129, 127, 119, 142, 129, 124, 121, 115, 79, 121, 124, 134, 126, 129, 120, 138, 141, 119, 125, 129, 128, 124, 131, 134, 138, 118, 127, 117, 126, 113, 132, 126, 117, 132, 133, 136, 127, 125, 119, 134, 131, 104, 120, 114, 110, 127, 106, 107, 128, 122, 135, 131, 134, 131, 131, 128, 144, 122, 144, 124, 118, 129, 109, 114, 122, 122, 122, 113, 125, 111, 104, 130, 111, 120, 119, 126, 108, 135, 113, 110, 125, 133, 129, 138, 122, 110, 115, 130, 114, 118, 119, 120, 123, 112, 121, 114, 125, 113, 145, 138, 124, 142, 123, 137, 116, 131, 133, 123, 110, 118, 125, 124, 133, 113, 121, 129, 137, 114, 131, 136, 139, 139, 132, 141, 144, 127, 119, 125, 117, 124, 130, 113, 126, 102, 131, 135, 119, 136, 122, 135, 117, 125, 130, 131, 125, 136, 125, 133, 128, 121, 143, 126, 135, 142, 113, 135, 134, 124, 115, 129, 132, 131, 140, 132, 125, 133, 135, 134, 119, 100, 113, 127, 123, 113, 113, 120, 126, 128, 127, 110, 134, 121, 125, 132, 134, 113, 116, 151, 95, 136, 128, 111, 108, 129, 114, 125, 109, 122, 128, 120, 138, 111, 122, 111, 126, 109, 118, 132, 138, 141, 142, 103, 108, 120, 143, 140, 117, 117, 133, 128, 113, 129, 116, 133, 122, 145, 128, 136, 122, 119, 119, 114, 119, 127, 110, 112, 115, 125, 125, 139, 107, 128, 137, 135, 130, 123, 116, 131, 128, 123, 119, 134, 111, 109, 131, 122, 126, 111, 131, 141, 129, 124, 112, 121, 121, 116, 112, 137, 139, 122, 120, 139, 117, 113, 137, 98, 120, 115, 113, 138, 121, 144, 140, 129, 124, 133, 123, 126, 112, 132, 116, 133, 125, 122, 113, 116, 120, 138, 118, 137, 114, 125, 136, 144, 127, 118, 117, 119, 119, 135, 109, 133, 115, 110, 135, 120, 111, 123, 139, 107, 126, 123, 124, 104, 110, 121, 119, 111, 123, 122, 125, 122, 125, 117, 139, 127, 132, 120, 131, 104, 135, 111, 118, 125, 125, 146, 100, 122, 139, 140, 129, 129, 127, 139, 121, 146, 137, 129, 129, 136, 137, 131, 134, 125, 118, 126, 113, 107, 126, 115, 139, 113, 128, 119, 123, 135, 133, 142, 135, 116, 132, 139, 136, 127, 121, 125, 123, 128, 117, 118, 103, 107, 124, 111, 113, 95, 123, 111, 152, 122, 112, 133, 134, 128, 128, 134, 142, 123, 127, 126, 132, 138, 126, 119, 132, 129, 119, 136, 131, 133, 129, 122, 135, 134, 143, 123, 130, 130, 117, 119, 145, 130, 131, 121, 119, 119, 125, 119, 130, 108, 141, 112, 120, 130, 128, 128, 145, 120, 136, 138, 127, 139, 132, 117, 128, 120, 127, 111, 123, 118, 122, 127, 127, 130, 132, 128, 125, 132, 134, 115, 143, 121, 119, 117, 129, 134, 152, 128, 107, 122, 112, 138, 120, 126, 124, 134, 128, 110, 118, 133, 123, 129, 114, 116, 116, 119, 126, 129, 110, 104, 122, 123, 128, 112, 125, 124, 116, 117, 125, 130, 132, 124, 136, 129, 113, 122, 131, 145, 130, 129, 121, 134, 133, 120, 113, 125, 131, 123, 128, 137, 108, 138, 118, 126, 131, 133, 113, 132, 129, 149, 112, 123, 110, 112, 127, 121, 109, 121, 131, 135, 116, 144, 106, 108, 124, 126, 128, 119, 113, 124, 118, 121, 123, 115, 117, 114, 141, 142, 129, 128, 141, 108, 127, 101, 127, 128, 123, 134, 118, 121, 115, 113, 126, 125, 132, 127, 125, 130, 134, 128, 128, 144, 126, 104, 115, 127, 105, 110, 143, 123, 106, 122, 112, 138, 130, 124, 131, 132, 131, 136, 125, 124, 124, 135, 120, 134, 137, 132, 127, 115, 125, 118, 124, 131, 119, 118, 132, 125, 120, 136, 119, 139, 135, 131, 129, 130, 127, 124, 128, 135, 123, 133, 126, 129, 128, 124, 135, 133, 127, 127, 136, 140, 137, 113, 134, 124, 138, 142, 131, 119, 137, 140, 136, 127, 129, 87, 116, 108, 135, 124, 127, 135, 136, 137, 119, 118, 125, 130, 124, 143, 122, 127, 130, 131, 139, 127, 120, 119, 125, 118, 129, 128, 129, 127, 139, 152, 143, 111, 135, 139, 127, 125, 133, 116, 119, 138, 138, 125, 129, 143, 110, 117, 119, 116, 127, 136, 121, 136, 114, 126, 125, 133, 132, 109, 123, 130, 132, 129, 121, 130, 132, 120, 131, 121, 109, 125, 113, 124, 131, 131, 105, 141, 136, 107, 122, 125, 142, 125, 138, 141, 105, 110, 121, 127, 140, 120, 126, 109, 144, 106, 122, 143, 114, 125, 155, 126, 107, 128, 122, 133, 106, 117, 126, 121, 130, 124, 114, 138, 130, 118, 133, 123, 135, 144, 125, 141, 139, 135, 120, 106, 120, 136, 124, 119, 105, 111, 138, 130, 122, 146, 122, 114, 138, 119, 104, 114, 118, 112, 120, 131, 125, 123, 136, 117, 128, 136, 141, 136, 128, 98, 135, 107, 135, 133, 109, 127, 134, 134, 126, 126, 143, 126, 149, 141, 133, 130, 119, 131, 138, 138, 121, 118, 128, 115, 119, 129, 124, 127, 110, 133, 120, 129, 125, 115, 127, 121, 128, 110, 115, 127, 111, 120, 131, 108, 126, 129, 129, 119, 124, 129, 133, 137, 132, 134, 129, 127, 119, 123, 126, 116, 126, 123, 126, 147, 135, 121, 113, 127, 129, 120, 115, 138, 111, 123, 134, 134, 118, 127, 135, 117, 118, 121, 121, 135, 130, 132, 152, 123, 121, 128, 123, 122, 124, 127, 150, 128, 140, 111, 115, 130, 119, 122, 133, 116, 134, 131, 124, 142, 130, 125, 115, 127, 131, 111, 126, 138, 126, 115, 128, 122, 151, 127, 126, 116, 116, 122, 122, 121, 121, 130, 121, 127, 124, 135, 124, 133, 117, 142, 124, 123, 147, 111, 128, 122, 131, 125, 126, 133, 125, 121, 124, 117, 129, 126, 135, 119, 121, 115, 132, 107, 141, 133, 117, 120, 114, 136, 145, 130, 121, 118, 120, 132, 129, 121, 128, 120, 128, 127, 123, 120, 134, 122, 120, 125, 138, 126, 142, 116, 106, 129, 137, 127, 128, 121, 131, 125, 125, 132, 110, 123, 122, 137, 122, 135, 133, 133, 140, 135, 110, 108, 133, 135, 133, 118, 127, 109, 127, 114, 126, 135, 117, 144, 138, 131, 137, 127, 125, 115, 99, 130, 121, 129, 122, 141, 145, 126, 127, 115, 126, 107, 122, 112, 117, 143, 121, 131, 133, 129, 119, 109, 140, 139, 124, 118, 146, 133, 121, 107, 143, 111, 134, 125, 122, 133, 118, 133, 129, 107, 121, 128, 126, 121, 130, 149, 129, 119, 133, 116, 139, 117, 126, 126, 113, 117, 137, 128, 113, 124, 126, 138, 117, 119, 124, 139, 129, 119, 140, 123, 140, 116, 132, 118, 122, 112, 116, 131, 112, 129, 128, 118, 123, 129, 111, 135, 141, 135, 138, 130, 129, 113, 113, 135, 125, 128, 137, 118, 131, 137, 130, 111, 126, 124, 128, 126, 115, 114, 119, 116, 133, 123, 113, 123, 110, 121, 117, 117, 126, 120, 122, 141, 134, 117, 112, 117, 120, 116, 141, 114, 131, 117, 120, 137, 138, 128, 133, 129, 146, 131, 128, 120, 118, 127, 125, 137, 134, 133, 116, 121, 114, 126, 139, 114, 131, 139, 121, 121, 109, 124, 116, 120, 128, 130, 136, 132, 104, 120, 137, 123, 133, 130, 134, 119, 125, 139, 116, 126, 116, 110, 126, 120, 127, 131, 131, 122, 109, 153, 137, 112, 143, 120, 124, 122, 142, 132, 128, 140, 126, 127, 126, 121, 121, 132, 132, 121, 132, 121, 132, 123, 125, 131, 121, 122, 127, 123, 127, 129, 125, 130, 141, 118, 129, 117, 122, 124, 143, 129, 106, 126, 141, 127, 130, 132, 106, 114, 112, 114, 100, 121, 133, 108, 125, 118, 121, 131, 149, 126, 125, 132, 119, 137, 130, 127, 128, 122, 133, 123, 139, 131, 132, 118, 120, 130, 121, 107, 128, 134, 125, 122, 119, 146, 151, 132, 118, 132, 124, 134, 120, 129, 125, 127, 143, 124, 126, 130, 114, 124, 126, 134, 128, 163, 122, 128, 108, 112, 128, 115, 129, 135, 130, 140, 123, 122, 114, 124, 136, 132, 126, 117, 146, 124, 129, 134, 117, 130, 130, 125, 135, 135, 115, 121, 106, 131, 125, 137, 117, 142, 117, 125, 124, 132, 121, 113, 115, 122, 134, 127, 114, 124, 125, 116, 123, 140, 131, 132, 129, 124, 129, 126, 127, 125, 113, 126, 122, 121, 103, 140, 119, 128, 127, 113, 126, 145, 138, 120, 142, 117, 123, 123, 136, 118, 129, 131, 128, 126, 120, 111, 142, 126, 124, 135, 123, 131, 117, 130, 136, 110, 121, 119, 114, 113, 128, 115, 118, 127, 122, 128, 128, 129, 120, 126, 121, 126, 108, 98, 117, 123, 106, 114, 110, 135, 117, 112, 121, 117, 120, 124, 130, 124, 114, 122, 121, 101, 128, 127, 122, 135, 110, 134, 143, 117, 128, 135, 143, 141, 134, 128, 112, 127, 129, 117, 137, 124, 103, 126, 124, 124, 125, 138, 122, 122, 122, 127, 119, 134, 143, 116, 118, 121, 127, 124, 128, 130, 124, 121, 129, 126, 124, 135, 116, 130, 140, 134, 125, 133, 123, 128, 118, 130, 122, 114, 122, 115, 118, 131, 132, 126, 152, 120, 112, 125, 136, 111, 119, 130, 127, 114, 129, 120, 118, 118, 133, 119, 117, 124, 119, 124, 128, 122, 135, 124, 142, 119, 128, 121, 116, 134, 118, 115, 121, 113, 131, 145, 127, 127, 111, 115, 132, 150, 113, 140, 129, 107, 144, 133, 125, 116, 141, 126, 132, 132, 111, 117, 124, 124, 124, 119, 115, 133, 153, 119, 128, 120, 111, 126, 117, 128, 137, 125, 128, 127, 117, 117, 127, 124, 119, 113, 114, 133, 106, 123, 141, 109, 124, 127, 135, 115, 105, 113, 135, 99, 126, 127, 117, 135, 129, 122, 134, 104, 133, 134, 133, 125, 145, 118, 118, 119, 117, 129, 128, 130, 148, 120, 139, 123, 121, 129, 129, 125, 134, 115, 124, 127, 128, 125, 128, 126, 114, 117, 119, 131, 125, 111, 127, 122, 132, 126, 139, 129, 112, 132, 121, 125, 128, 109, 131, 126, 109, 138, 130, 120, 118, 117, 136, 113, 113, 133, 131, 125, 135, 121, 112, 129, 121, 136, 119, 127, 129, 150, 135, 136, 129, 120, 119, 130, 135, 114, 125, 114, 121, 131, 113, 133, 131, 125, 132, 138, 128, 112, 137, 134, 122, 135, 128, 144, 107, 113, 130, 128, 125, 114, 119, 109, 124, 120, 127, 119, 124, 140, 116, 109, 132, 110, 121, 117, 125, 127, 116, 135, 100, 133, 119, 122, 123, 134, 122, 121, 134, 134, 136, 132, 122, 125, 137, 121, 127, 134, 124, 122, 127, 124, 116, 124, 115, 135, 138, 116, 127, 123, 125, 120, 127, 118, 121, 114, 117, 124, 123, 113, 132, 118, 154, 122, 118, 120, 115, 124, 133, 139, 131, 136, 126, 122, 112, 115, 116, 122, 115, 120, 132, 111, 122, 119, 133, 122, 119, 150, 116, 122, 130, 126, 125, 137, 138, 135, 103, 140, 142, 120, 125, 132, 124, 126, 113, 133, 121, 126, 126, 123, 123, 120, 127, 132, 125, 127, 120, 140, 118, 149, 137, 127, 153, 125, 114, 123, 122, 133, 118, 124, 124, 119, 118, 129, 120, 118, 137, 132, 125, 121, 137, 107, 113, 127, 155, 128, 119, 119, 126, 111, 125, 131, 126, 126, 128, 128, 121, 148, 142, 123, 143, 130, 121, 106, 106, 130, 138, 122, 103, 127, 118, 141, 119, 129, 127, 131, 141, 136, 117, 126, 131, 123, 126, 109, 118, 125, 137, 122, 105, 136, 119, 127, 132, 137, 115, 124, 120, 120, 156, 124, 130, 134, 120, 115, 120, 126, 129, 147, 132, 133, 121, 126, 130, 128, 133, 146, 133, 125, 120, 123, 131, 137, 106, 129, 111, 150, 140, 128, 124, 133, 126, 133, 127, 131, 123, 124, 131, 125, 109, 136, 135, 132, 132, 142, 107, 125, 95, 106, 126, 103, 130, 111, 116, 125, 116, 155, 117, 136, 116, 126, 122, 140, 134, 109, 127, 130, 120, 117, 114, 124, 127, 128, 119, 112, 94, 122, 127, 133, 139, 136, 132, 122, 124, 116, 124, 136, 118, 121, 126, 115, 138, 126, 115, 118, 126, 131, 128, 123, 135, 122, 128, 121, 122, 134, 124, 117, 121, 137, 130, 148, 133, 119, 107, 124, 130, 134, 120, 120, 125, 105, 121, 134, 120, 106, 141, 95, 125, 124, 138, 116, 124, 129, 124, 127, 109, 134, 129, 149, 120, 105, 109, 113, 115, 126, 127, 111, 126, 121, 107, 133, 121, 109, 123, 126, 120, 117, 129, 123, 127, 116, 123, 135, 111, 125, 117, 121, 127, 127, 136, 142, 139, 124, 103, 125, 126, 129, 134, 123, 139, 134, 130, 156, 141, 122, 114, 128, 139, 129, 144, 125, 148, 118, 134, 130, 130, 134, 122, 129, 127, 136, 136, 138, 132, 124, 115, 134, 120, 123, 116, 116, 138, 120, 128, 128, 132, 131, 141, 149, 115, 125, 118, 137, 127, 135, 127, 139, 121, 111, 120, 119, 130, 124, 128, 111, 126, 129, 120, 126, 124, 109, 107, 124, 118, 125, 109, 124, 114, 135, 126, 127, 126, 131, 129, 129, 124, 136, 124, 123, 114, 131, 119, 128, 128, 138, 121, 127, 142, 132, 128, 113, 128, 132, 131, 122, 119, 116, 118, 122, 140, 116, 131, 117, 141, 137, 117, 132, 135, 131, 120, 115, 118, 143, 129, 139, 128, 136, 123, 122, 131, 115, 121, 141, 128, 134, 132, 119, 121, 110, 136, 129, 126, 145, 131, 121, 123, 135, 136, 113, 132, 127, 115, 139, 135, 126, 118, 136, 125, 126, 118, 123, 136, 132, 108, 127, 139, 123, 127, 152, 129, 120, 113, 138, 130, 135, 147, 92, 124, 117, 118, 130, 119, 137, 130, 129, 116, 114, 129, 126, 114, 137, 113, 128, 115, 124, 128, 139, 124, 128, 128, 124, 127, 137, 119, 124, 119, 119, 129, 124, 125, 127, 110, 124, 125, 129, 127, 126, 137, 124, 163, 130, 149, 117, 118, 126, 126, 138, 132, 120, 126, 125, 120, 128, 111, 116, 121, 125, 125, 135, 113, 133, 132, 127, 131, 113, 133, 109, 133, 111, 135, 135, 142, 120, 134, 120, 133, 126, 122, 103, 131, 141, 128, 133, 136, 136, 139, 128, 112, 111, 123, 114, 118, 117, 111, 127, 122, 135, 133, 139, 136, 137, 114, 111, 128, 124, 127, 138, 116, 120, 110, 149, 135, 124, 108, 118, 117, 129, 140, 134, 129, 125, 114, 120, 126, 142, 114, 115, 128, 121, 120, 127, 115, 143, 126, 127, 125, 128, 118, 150, 130, 118, 124, 147, 109, 137, 144, 112, 136, 127, 117, 124, 108, 141, 131, 115, 142, 132, 132, 113, 123, 120, 122, 134, 119, 130, 131, 120, 107, 135, 125, 128, 110, 136, 131, 123, 134, 143, 137, 116, 119, 151, 130, 110, 118, 125, 120, 129, 112, 143, 135, 123, 130, 137, 128, 116, 136, 118, 129, 128, 148, 118, 131, 126, 119, 134, 117, 128, 114, 118, 126, 122, 139, 132, 120, 133, 129, 123, 114, 142, 120, 126, 120, 133, 114, 127, 133, 122, 120, 118, 121, 128, 127, 122, 119, 126, 144, 133, 123, 126, 130, 126, 140, 140, 136, 135, 129, 139, 123, 148, 124, 124, 138, 140, 118, 111, 122, 124, 124, 133, 127, 137, 112, 121, 134, 128, 117, 127, 122, 120, 115, 120, 148, 116, 125, 127, 132, 137, 113, 123, 123, 128, 120, 133, 116, 132, 129, 123, 117, 110, 115, 129, 134, 122, 142, 117, 126, 149, 120, 122, 115, 129, 132, 115, 126, 131, 125, 133, 125, 124, 132, 119, 130, 119, 154, 125, 126, 112, 130, 130, 108, 128, 142, 114, 133, 131, 127, 126, 145, 142, 124, 128, 124, 109, 115, 133, 107, 141, 108, 111, 128, 107, 115, 126, 140, 130, 136, 133, 117, 136, 133, 123, 133, 117, 129, 121, 112, 133, 115, 116, 130, 113, 132, 146, 123, 131, 126, 111, 118, 119, 142, 153, 113, 123, 104, 117, 124, 127, 128, 124, 132, 106, 114, 123, 126, 128, 129, 131, 141, 110, 124, 123, 131, 122, 129, 134, 101, 122, 119, 143, 129, 122, 128, 118, 110, 137, 135, 133, 134, 123, 112, 127, 115, 122, 119, 117, 104, 126, 124, 117, 124, 120, 117, 121, 112, 130, 129, 130, 135, 135, 117, 120, 122, 120, 112, 109, 121, 103, 127, 122, 123, 120, 133, 130, 131, 130, 138, 118, 117, 140, 142, 131, 120, 117, 101, 122, 141, 104, 133, 121, 121, 130, 135, 138, 127, 120, 129, 140, 133, 116, 137, 115, 124, 125, 118, 146, 115, 124, 125, 117, 128, 119, 117, 124, 125, 116, 139, 138, 127, 125, 133, 128, 114, 116, 114, 125, 116, 126, 103, 129, 121, 121, 112, 143, 130, 108, 144, 111, 144, 109, 116, 116, 130, 105, 134, 128, 111, 144, 121, 121, 129, 127, 138, 112, 122, 136, 95, 133, 141, 131, 133, 118, 133, 135, 124, 129, 128, 119, 116, 125, 130, 132, 117, 119, 135, 131, 117, 113, 129, 126, 128, 120, 133, 120, 122, 129, 129, 121, 125, 126, 139, 120, 123, 121, 125, 123, 134, 126, 117, 125, 106, 127, 110, 141, 141, 121, 132, 101, 135, 122, 108, 123, 121, 124, 121, 115, 118, 129, 133, 140, 135, 107, 120, 123, 121, 135, 110, 129, 136, 132, 129, 136, 108, 120, 130, 140, 112, 98, 131, 128, 122, 114, 136, 126, 126, 139, 131, 128, 103, 132, 131, 131, 119, 149, 130, 118, 124, 129, 120, 133, 128, 112, 115, 113, 125, 113, 124, 131, 114, 123, 147, 117, 132, 110, 128, 128, 127, 127, 130, 113, 137, 124, 129, 116, 118, 136, 121, 120, 116, 120, 122, 133, 114, 136, 119, 114, 123, 119, 132, 136, 125, 121, 114, 129, 116, 130, 125, 127, 118, 122, 114, 124, 124, 145, 137, 128, 114, 125, 137, 129, 117, 147, 127, 133, 113, 126, 140, 123, 127, 144, 128, 126, 138, 125, 133, 142, 143, 134, 132, 131, 125, 98, 126, 123, 135, 127, 118, 130, 129, 141, 138, 121, 125, 139, 145, 124, 119, 122, 146, 117, 130, 138, 104, 141, 132, 137, 111, 118, 124, 118, 127, 136, 106, 110, 122, 126, 122, 118, 121, 137, 123, 104, 126, 121, 124, 136, 128, 133, 114, 105, 139, 127, 114, 140, 135, 117, 125, 125, 117, 126, 120, 134, 131, 132, 103, 116, 125, 120, 120, 127, 109, 126, 129, 108, 130, 145, 125, 108, 135, 142, 120, 114, 120, 118, 131, 124, 131, 142, 116, 135, 112, 123, 142, 126, 121, 128, 93, 130, 120, 114, 134, 148, 137, 108, 129, 115, 129, 128, 114, 110, 123, 113, 117, 123, 113, 125, 130, 120, 139, 128, 109, 132, 125, 115, 145, 123, 127, 122, 116, 131, 121, 137, 120, 122, 123, 119, 118, 132, 107, 115, 119, 137, 120, 127, 138, 112, 118, 150, 126, 135, 121, 135, 109, 103, 121, 132, 137, 130, 137, 118, 127, 111, 119, 122, 115, 142, 136, 119, 113, 130, 113, 136, 134, 139, 140, 132, 134, 125, 125, 122, 127, 118, 126, 120, 127, 128, 135, 127, 127, 133, 121, 127, 135, 114, 124, 122, 127, 118, 117, 115, 136, 120, 138, 116, 104, 124, 116, 116, 128, 111, 128, 144, 124, 130, 127, 129, 141, 121, 129, 97, 116, 122, 140, 136, 128, 129, 118, 119, 140, 118, 144, 116, 109, 138, 127, 146, 128, 123, 131, 114, 112, 128, 136, 116, 142, 120, 135, 138, 109, 128, 119, 133, 124, 126, 151, 125, 127, 132, 137, 123, 123, 137, 127, 131, 123, 126, 117, 133, 124, 126, 127, 119, 125, 127, 119, 118, 121, 125, 138, 118, 119, 120, 117, 132, 127, 125, 125, 117, 127, 128, 130, 142, 126, 132, 132, 122, 135, 130, 116, 119, 123, 128, 111, 147, 126, 109, 125, 118, 135, 132, 134, 125, 120, 135, 119, 131, 126, 109, 130, 126, 140, 142, 139, 124, 120, 122, 130, 111, 123, 113, 126, 129, 138, 119, 111, 121, 136, 117, 94, 116, 134, 154, 118, 122, 116, 125, 151, 124, 113, 117, 134, 113, 121, 129, 124, 110, 108, 131, 135, 128, 129, 108, 126, 115, 129, 121, 137, 133, 114, 116, 112, 138, 118, 122, 122, 127, 99, 133, 137, 148, 120, 109, 136, 124, 135, 146, 132, 144, 146, 105, 107, 135, 127, 130, 115, 114, 125, 134, 140, 131, 119, 141, 94, 137, 130, 115, 140, 126, 112, 116, 133, 125, 148, 129, 137, 139, 135, 134, 144, 133, 128, 121, 116, 124, 121, 106, 130, 135, 134, 116, 135, 144, 120, 132, 147, 126, 108, 125, 133, 119, 120, 138, 127, 135, 115, 133, 126, 134, 116, 125, 131, 98, 152, 115, 116, 134, 127, 143, 150, 137, 123, 121, 135, 128, 120, 117, 113, 104, 139, 141, 118, 131, 149, 133, 122, 107, 109, 120, 107, 114, 136, 145, 128, 107, 101, 128, 131, 120, 117, 141, 96, 124, 119, 123, 115, 127, 130, 135, 116, 97, 145, 126, 125, 133, 122, 106, 132, 125, 110, 117, 132, 112, 114, 113, 128, 154, 131, 143, 123, 114, 142, 116, 138, 116, 115, 112, 105, 123, 140, 140, 157, 103, 124, 89, 112, 145, 122, 120, 98, 125, 122, 125, 111, 126, 113, 114, 138, 126, 143, 105, 142, 128, 130, 108, 115, 128, 127, 108, 116, 127, 127, 137, 132, 109, 126, 124, 129, 126, 122, 112, 128, 129, 131, 137, 109, 119, 134, 127, 116, 126, 139, 125, 128, 136, 113, 137, 116, 154, 126, 115, 117, 117, 111, 135, 147, 105, 131, 129, 149, 121, 130, 108, 135, 116, 114, 135, 116, 139, 134, 128, 130, 118, 118, 126, 134, 111, 110, 102, 106, 122, 132, 97, 101, 123, 123, 130, 114, 113, 141, 121, 114, 161, 127, 109, 133, 121, 120, 107, 120, 137, 141, 122, 124, 128, 143, 137, 136, 123, 112, 124, 118, 132, 126, 117, 125, 131, 138, 99, 127, 128, 130, 120, 129, 121, 131, 118, 151, 110, 125, 127, 117, 133, 118, 109, 108, 125, 111, 143, 116, 138, 121, 123, 116, 137, 127, 119, 122, 124, 159, 106, 124, 128, 132, 132, 134, 118, 134, 134, 131, 143, 120, 141, 120, 103, 133, 121, 114, 124, 139, 138, 129, 137, 124, 116, 141, 152, 114, 129, 161, 140, 118, 138, 133, 140, 118, 133, 115, 123, 131, 123, 127, 117, 128, 112, 140, 118, 134, 120, 121, 127, 141, 131, 130, 119, 131, 121, 110, 145, 118, 112, 122, 133, 126, 123, 139, 121, 107, 119, 113, 153, 114, 122, 120, 125, 113, 134, 119, 137, 147, 124, 117, 127, 122, 110, 128, 138, 115, 138, 124, 117, 124, 113, 114, 138, 129, 123, 133, 111, 138, 136, 151, 120, 122, 145, 117, 128, 141, 111, 139, 121, 86, 126, 125, 118, 97, 119, 107, 136, 113, 135, 116, 97, 118, 115, 122, 112, 128, 144, 140, 119, 133, 118, 133, 125, 117, 120, 108, 126, 130, 133, 110, 125, 121, 132, 117, 122, 114, 146, 128, 110, 135, 132, 127, 134, 124, 134, 115, 120, 114, 109, 131, 125, 124, 121, 124, 143, 127, 118, 134, 105, 129, 127, 113, 104, 110, 111, 119, 102, 128, 134, 125, 116, 116, 134, 115, 123, 119, 140, 131, 134, 130, 158, 119, 124, 109, 157, 116, 126, 131, 126, 114, 123, 127, 117, 134, 121, 131, 130, 131, 124, 114, 113, 137, 130, 149, 133, 108, 116, 136, 116, 117, 118, 129, 124, 123, 122, 116, 117, 133, 121, 116, 143, 122, 134, 110, 131, 125, 138, 122, 119, 138, 119, 126, 113, 133, 128, 121, 120, 132, 119, 129, 121, 146, 98, 140, 122, 133, 120, 136, 122, 142, 130, 114, 108, 115, 125, 128, 104, 133, 121, 125, 125, 127, 113, 107, 128, 129, 119, 141, 125, 123, 116, 114, 111, 117, 135, 124, 123, 111, 131, 129, 122, 134, 121, 131, 132, 139, 123, 151, 147, 145, 128, 128, 125, 148, 130, 112, 124, 135, 133, 137, 139, 128, 114, 130, 131, 126, 125, 137, 108, 127, 140, 126, 121, 128, 118, 140, 120, 118, 135, 129, 130, 118, 141, 127, 129, 125, 134, 121, 156, 119, 126, 129, 121, 143, 128, 128, 122, 117, 118, 115, 118, 133, 119, 104, 105, 135, 124, 121, 127, 106, 116, 126, 140, 146, 138, 127, 111, 141, 110, 123, 124, 128, 130, 121, 117, 126, 115, 107, 109, 117, 125, 123, 119, 131, 113, 123, 103, 126, 111, 118, 136, 134, 116, 139, 128, 129, 137, 141, 131, 135, 141, 125, 111, 124, 117, 136, 122, 131, 127, 118, 128, 152, 124, 105, 124, 130, 131, 114, 126, 125, 120, 150, 130, 102, 142, 129, 124, 123, 139, 133, 143, 129, 147, 117, 132, 129, 133, 134, 126, 125, 109, 131, 142, 118, 115, 130, 119, 125, 139, 121, 107, 126, 126, 130, 127, 117, 141, 122, 123, 114, 104, 130, 113, 126, 117, 120, 114, 132, 133, 123, 116, 133, 128, 121, 115, 134, 99, 117, 118, 125, 102, 98, 127, 122, 133, 124, 101, 148, 139, 134, 120, 122, 126, 103, 105, 127, 151, 120, 133, 122, 129, 128, 143, 114, 120, 118, 131, 122, 126, 115, 134, 132, 132, 125, 110, 118, 112, 137, 137, 124, 123, 124, 100, 120, 128, 122, 130, 117, 131, 116, 130, 162, 134, 127, 121, 130, 130, 135, 111, 128, 104, 105, 138, 103, 124, 116, 138, 131, 118, 122, 129, 123, 121, 126, 118, 124, 137, 106, 120, 125, 121, 135, 126, 141, 114, 136, 110, 135, 116, 117, 136, 100, 119, 128, 119, 131, 111, 117, 114, 107, 123, 121, 135, 110, 128, 133, 114, 120, 122, 130, 131, 121, 130, 134, 122, 130, 117, 128, 122, 131, 128, 130, 117, 130, 128, 115, 120, 124, 119, 112, 128, 135, 123, 107, 125, 140, 130, 126, 136, 117, 105, 133, 112, 119, 130, 118, 129, 139, 127, 118, 120, 124, 125, 141, 129, 134, 118, 120, 121, 149, 119, 125, 125, 120, 126, 131, 134, 137, 119, 106, 126, 130, 135, 131, 141, 134, 119, 119, 125, 139, 119, 125, 114, 129, 133, 157, 124, 120, 124, 115, 108, 134, 133, 140, 112, 134, 129, 122, 139, 149, 128, 117, 136, 129, 123, 133, 116, 120, 120, 128, 124, 141, 134, 118, 120, 118, 136, 130, 123, 130, 130, 121, 114, 118, 112, 129, 130, 119, 118, 125, 138, 114, 115, 135, 105, 108, 124, 139, 121, 119, 120, 126, 133, 149, 124, 130, 126, 123, 137, 137, 112, 141, 140, 125, 129, 121, 125, 111, 130, 125, 128, 132, 119, 111, 114, 138, 97, 125, 126, 144, 117, 121, 136, 122, 108, 127, 127, 120, 113, 119, 134, 142, 125, 114, 125, 126, 135, 127, 131, 118, 109, 137, 128, 158, 135, 122, 128, 133, 138, 112, 110, 133, 128, 133, 126, 122, 126, 93, 124, 141, 122, 131, 132, 130, 145, 137, 111, 125, 126, 143, 145, 110, 135, 127, 108, 117, 138, 136, 128, 108, 138, 117, 113, 115, 132, 109, 114, 136, 128, 148, 106, 125, 133, 143, 122, 128, 132, 143, 130, 132, 123, 121, 121, 133, 140, 124, 131, 152, 116, 149, 113, 105, 130, 131, 127, 134, 126, 124, 107, 137, 107, 114, 122, 129, 122, 115, 116, 130, 114, 119, 130, 133, 125, 133, 116, 131, 120, 138, 122, 129, 125, 129, 120, 126, 119, 138, 137, 131, 99, 138, 122, 120, 108, 133, 122, 124, 121, 118, 138, 128, 110, 132, 118, 119, 122, 120, 103, 128, 133, 142, 126, 122, 104, 138, 132, 124, 142, 132, 111, 133, 112, 125, 125, 120, 128, 157, 126, 104, 109, 126, 139, 120, 136, 121, 135, 131, 117, 120, 133, 144, 120, 131, 118, 124, 137, 126, 134, 106, 103, 141, 132, 139, 106, 123, 125, 143, 134, 134, 122, 138, 148, 145, 128, 129, 137, 114, 108, 129, 116, 122, 122, 126, 108, 120, 107, 125, 102, 137, 133, 118, 115, 111, 121, 129, 103, 129, 125, 123, 136, 119, 124, 135, 125, 110, 105, 140, 118, 124, 118, 128, 97, 135, 108, 119, 140, 107, 112, 128, 137, 106, 136, 118, 124, 139, 96, 125, 122, 123, 153, 119, 108, 123, 134, 135, 126, 139, 123, 118, 146, 126, 121, 119, 160, 112, 122, 131, 134, 132, 121, 143, 114, 124, 130, 137, 116, 126, 119, 113, 115, 124, 126, 136, 125, 129, 124, 131, 128, 136, 107, 124, 102, 114, 112, 116, 138, 138, 123, 131, 121, 118, 119, 119, 131, 124, 117, 124, 105, 123, 125, 133, 121, 127, 118, 130, 141, 116, 117, 104, 128, 140, 119, 130, 115, 130, 114, 150, 123, 127, 126, 137, 98, 127, 130, 120, 129, 132, 115, 127, 119, 121, 118, 138, 118, 124, 115, 114, 134, 136, 106, 130, 134, 129, 148, 119, 129, 119, 139, 134, 112, 142, 149, 118, 122, 123, 133, 125, 124, 128, 114, 122, 136, 125, 134, 101, 135, 135, 127, 150, 124, 130, 135, 130, 133, 138, 132, 134, 133, 144, 131, 113, 128, 139, 122, 102, 97, 118, 122, 125, 126, 140, 117, 114, 138, 116, 123, 111, 121, 108, 138, 112, 119, 141, 117, 140, 128, 128, 108, 131, 114, 137, 142, 131, 112, 119, 111, 133, 116, 129, 107, 122, 116, 129, 129, 136, 142, 116, 129, 122, 117, 135, 139, 132, 142, 133, 144, 136, 138, 121, 126, 116, 122, 128, 112, 115, 111, 144, 128, 155, 125, 131, 121, 133, 114, 136, 111, 108, 128, 111, 103, 128, 140, 124, 130, 122, 133, 131, 134, 139, 154, 132, 126, 140, 125, 110, 135, 126, 129, 130, 120, 134, 117, 118, 130, 125, 118, 132, 132, 138, 132, 133, 114, 132, 117, 103, 112, 130, 115, 144, 110, 133, 102, 112, 121, 124, 116, 128, 131, 128, 126, 136, 124, 114, 122, 112, 125, 128, 131, 133, 113, 132, 120, 102, 126, 118, 126, 111, 140, 146, 119, 114, 122, 120, 128, 113, 113, 136, 126, 121, 120, 122, 155, 122, 140, 138, 128, 122, 130, 147, 126, 123, 140, 117, 123, 129, 116, 129, 115, 139, 115, 129, 119, 113, 127, 128, 133, 124, 130, 120, 132, 138, 119, 122, 117, 128, 131, 106, 111, 131, 124, 123, 126, 104, 103, 123, 118, 126, 126, 136, 137, 129, 121, 129, 117, 135, 124, 137, 138, 124, 143, 119, 123, 131, 142, 121, 121, 110, 127, 126, 130, 141, 125, 135, 134, 133, 128, 118, 113, 127, 119, 120, 93, 115, 128, 134, 118, 130, 117, 116, 143, 127, 126, 117, 145, 129, 123, 137, 134, 121, 133, 117, 136, 121, 139, 120, 132, 132, 120, 141, 121, 118, 118, 137, 128, 130, 142, 105, 109, 124, 136, 117, 110, 124, 136, 112, 143, 102, 128, 122, 153, 115, 143, 121, 103, 125, 144, 110, 117, 120, 96, 120, 105, 130, 122, 112, 131, 118, 141, 126, 124, 129, 127, 139, 124, 129, 115, 111, 142, 129, 123, 118, 115, 133, 120, 149, 108, 117, 134, 119, 132, 135, 126, 133, 118, 113, 132, 125, 130, 124, 120, 116, 131, 122, 134, 138, 133, 130, 133, 126, 133, 140, 132, 128, 122, 112, 120, 117, 108, 129, 130, 133, 119, 142, 143, 141, 119, 116, 120, 117, 115, 117, 123, 110, 122, 137, 131, 124, 128, 121, 141, 134, 125, 128, 117, 117, 126, 120, 138, 115, 133, 114, 114, 138, 121, 117, 119, 133, 121, 116, 125, 139, 119, 138, 148, 116, 111, 136, 111, 121, 124, 128, 108, 133, 128, 128, 125, 132, 126, 118, 129, 118, 122, 124, 120, 118, 122, 120, 125, 115, 121, 120, 120, 125, 123, 130, 134, 116, 114, 119, 111, 132, 147, 103, 122, 125, 124, 127, 117, 138, 117, 126, 118, 111, 132, 118, 153, 115, 121, 127, 121, 124, 132, 119, 137, 110, 126, 128, 113, 128, 126, 123, 128, 115, 133, 141, 138, 130, 119, 114, 129, 127, 106, 129, 125, 120, 118, 127, 106, 147, 120, 135, 141, 133, 130, 126, 124, 117, 109, 129, 139, 122, 131, 126, 122, 140, 128, 136, 130, 135, 119, 133, 126, 131, 141, 130, 131, 136, 123, 111, 131, 131, 119, 121, 134, 127, 121, 119, 126, 124, 122, 134, 134, 115, 127, 124, 127, 106, 118, 130, 127, 124, 103, 123, 122, 105, 120, 125, 139, 134, 131, 114, 126, 137, 121, 114, 143, 120, 132, 117, 136, 129, 121, 122, 141, 100, 120, 117, 128, 131, 143, 119, 127, 134, 131, 132, 131, 123, 140, 115, 140, 114, 120, 125, 132, 116, 131, 118, 127, 115, 137, 123, 126, 139, 124, 130, 111, 137, 138, 111, 110, 127, 128, 133, 125, 136, 116, 113, 116, 109, 138, 130, 116, 124, 119, 130, 135, 120, 129, 110, 128, 138, 123, 134, 125, 146, 98, 164, 114, 118, 122, 129, 121, 122, 122, 130, 131, 115, 124, 127, 117, 126, 123, 103, 130, 128, 111, 109, 128, 115, 124, 114, 129, 136, 131, 125, 129, 137, 125, 111, 118, 139, 119, 135, 116, 119, 126, 120, 129, 130, 130, 127, 127, 131, 143, 107, 120, 129, 126, 115, 112, 128, 124, 126, 125, 125, 124, 117, 121, 115, 133, 144, 139, 113, 136, 127, 106, 131, 141, 144, 133, 103, 135, 125, 113, 122, 136, 131, 125, 131, 134, 108, 117, 125, 126, 120, 136, 138, 141, 124, 126, 129, 128, 125, 110, 114, 136, 124, 118, 119, 118, 109, 120, 127, 125, 128, 122, 132, 119, 122, 118, 127, 135, 121, 110, 129, 123, 121, 110, 119, 134, 126, 116, 117, 115, 112, 127, 140, 126, 115, 128, 140, 121, 124, 111, 106, 122, 110, 115, 124, 127, 120, 139, 128, 133, 108, 128, 130, 107, 127, 129, 131, 138, 115, 120, 113, 144, 123, 118, 119, 134, 126, 134, 117, 129, 133, 115, 129, 120, 124, 119, 118, 125, 122, 115, 118, 117, 123, 133, 122, 116, 127, 126, 136, 127, 124, 110, 112, 127, 125, 134, 122, 129, 134, 132, 130, 117, 146, 106, 123, 129, 136, 121, 163, 117, 110, 116, 134, 131, 132, 120, 120, 116, 120, 132, 117, 139, 94, 121, 141, 134, 129, 141, 147, 140, 119, 132, 130, 125, 133, 128, 117, 134, 133, 131, 122, 109, 115, 127, 118, 124, 108, 130, 123, 110, 122, 124, 116, 126, 131, 100, 112, 113, 121, 131, 121, 122, 129, 133, 122, 135, 137, 128, 126, 129, 121, 130, 127, 118, 130, 122, 119, 121, 126, 124, 121, 119, 125, 124, 121, 128, 123, 112, 122, 129, 145, 136, 143, 132, 123, 125, 131, 131, 131, 133, 136, 128, 114, 130, 120, 140, 126, 133, 126, 132, 124, 102, 132, 128, 130, 143, 129, 115, 124, 126, 117, 139, 115, 127, 133, 135, 128, 109, 139, 142, 131, 131, 132, 117, 122, 126, 131, 129, 157, 132, 121, 117, 127, 112, 130, 115, 125, 126, 125, 118, 130, 104, 124, 125, 139, 133, 134, 111, 130, 116, 127, 116, 129, 107, 117, 115, 128, 108, 117, 127, 120, 109, 129, 120, 133, 129, 121, 141, 118, 123, 123, 135, 132, 127, 134, 128, 125, 132, 134, 104, 131, 140, 126, 131, 145, 128, 128, 129, 122, 141, 118, 124, 136, 124, 128, 132, 125, 135, 124, 119, 115, 133, 120, 113, 138, 136, 131, 115, 123, 133, 122, 103, 122, 137, 127, 129, 122, 119, 132, 130, 126, 127, 109, 133, 121, 127, 129, 131, 126, 126, 125, 121, 136, 119, 136, 111, 130, 128, 130, 133, 125, 123, 119, 117, 122, 122, 129, 132, 103, 134, 128, 112, 111, 115, 123, 129, 128, 120, 131, 117, 134, 114, 127, 137, 118, 126, 122, 136, 121, 138, 128, 128, 127, 103, 105, 127, 123, 133, 123, 118, 144, 121, 122, 120, 118, 109, 127, 118, 130, 135, 126, 141, 141, 117, 129, 122, 97, 134, 115, 117, 124, 132, 120, 115, 124, 122, 107, 128, 131, 143, 141, 151, 140, 147, 123, 125, 122, 113, 115, 102, 123, 123, 126, 123, 125, 128, 123, 107, 125, 123, 104, 131, 135, 121, 130, 122, 134, 118, 137, 126, 128, 119, 114, 116, 123, 129, 130, 116, 132, 129, 121, 115, 133, 127, 138, 123, 135, 134, 124, 134, 130, 120, 122, 124, 122, 135, 127, 137, 129, 127, 122, 129, 138, 120, 145, 111, 117, 104, 136, 112, 107, 119, 135, 110, 130, 132, 117, 130, 138, 133, 122, 131, 116, 112, 111, 112, 129, 122, 129, 121, 127, 132, 133, 133, 126, 132, 114, 129, 140, 108, 125, 130, 124, 147, 127, 127, 132, 147, 138, 125, 133, 137, 104, 140, 111, 120, 127, 111, 128, 133, 121, 114, 126, 126, 115, 123, 120, 98, 143, 131, 126, 107, 122, 139, 141, 135, 127, 120, 115, 128, 143, 127, 134, 122, 115, 131, 130, 110, 130, 124, 122, 127, 124, 119, 119, 127, 115, 121, 131, 123, 130, 112, 123, 135, 127, 110, 127, 125, 140, 134, 140, 103, 142, 114, 109, 116, 134, 114, 132, 142, 133, 140, 144, 125, 130, 142, 116, 132, 97, 130, 125, 122, 120, 105, 143, 129, 112, 130, 127, 121, 132, 125, 121, 112, 118, 124, 130, 117, 138, 122, 136, 139, 117, 120, 133, 123, 125, 143, 126, 139, 130, 117, 123, 118, 133, 124, 116, 135, 126, 138, 125, 122, 128, 120, 138, 140, 131, 151, 137, 125, 118, 93, 123, 124, 137, 145, 128, 121, 127, 128, 122, 119, 109, 128, 126, 130, 110, 122, 109, 138, 116, 117, 135, 122, 133, 124, 122, 116, 129, 135, 129, 141, 109, 135, 127, 101, 137, 97, 126, 146, 127, 104, 130, 119, 126, 115, 109, 124, 121, 129, 122, 121, 120, 111, 118, 118, 130, 117, 121, 139, 111, 124, 123, 129, 146, 133, 145, 135, 117, 120, 131, 142, 119, 126, 128, 131, 126, 123, 118, 126, 102, 128, 136, 124, 117, 137, 118, 123, 129, 132, 108, 117, 111, 118, 121, 145, 116, 127, 101, 140, 141, 123, 132, 125, 119, 117, 140, 147, 126, 120, 124, 114, 122, 126, 137, 121, 121, 141, 139, 140, 121, 130, 140, 136, 122, 130, 119, 131, 136, 121, 128, 118, 115, 122, 121, 126, 113, 113, 118, 122, 118, 115, 117, 131, 134, 122, 135, 137, 147, 126, 128, 142, 139, 126, 129, 127, 129, 125, 133, 128, 142, 145, 116, 135, 131, 138, 117, 128, 117, 139, 111, 118, 118, 126, 134, 116, 113, 128, 115, 133, 144, 127, 124, 137, 140, 125, 127, 127, 136, 128, 109, 130, 129, 121, 129, 120, 125, 115, 117, 117, 123, 135, 144, 119, 119, 130, 124, 132, 121, 115, 128, 130, 120, 102, 129, 122, 118, 126, 107, 132, 122, 106, 122, 133, 106, 114, 119, 118, 119, 121, 143, 120, 117, 118, 109, 129, 107, 115, 114, 110, 131, 131, 127, 126, 119, 127, 136, 122, 122, 133, 128, 108, 128, 125, 117, 131, 127, 114, 135, 134, 131, 127, 128, 125, 124, 121, 151, 116, 113, 126, 107, 125, 114, 138, 126, 127, 154, 134, 129, 133, 117, 123, 109, 128, 126, 131, 118, 113, 121, 109, 134, 132, 148, 120, 126, 133, 137, 124, 132, 136, 116, 145, 112, 124, 126, 102, 119, 127, 122, 123, 131, 131, 128, 146, 148, 128, 125, 127, 143, 114, 129, 131, 122, 138, 152, 131, 131, 132, 130, 130, 122, 130, 130, 125, 98, 138, 136, 124, 131, 129, 142, 129, 135, 127, 125, 126, 133, 120, 125, 122, 127, 134, 133, 121, 128, 137, 131, 129, 127, 151, 122, 134, 138, 130, 115, 142, 125, 138, 109, 113, 127, 136, 129, 110, 137, 123, 148, 120, 119, 129, 139, 133, 139, 133, 133, 130, 158, 132, 130, 137, 129, 128, 104, 95, 129, 126, 127, 120, 134, 130, 104, 119, 136, 138, 132, 129, 125, 128, 141, 127, 124, 125, 130, 120, 125, 111, 109, 110, 130, 132, 131, 117, 123, 137, 112, 130, 121, 129, 137, 125, 124, 103, 115, 120, 136, 124, 132, 147, 132, 130, 120, 124, 111, 131, 124, 126, 113, 133, 115, 104, 129, 109, 127, 138, 117, 123, 109, 133, 132, 114, 150, 132, 124, 109, 111, 134, 118, 131, 119, 122, 130, 113, 127, 133, 138, 110, 126, 137, 131, 128, 131, 119, 121, 118, 146, 139, 124, 131, 117, 122, 135, 138, 146, 122, 133, 128, 121, 132, 133, 130, 129, 129, 125, 122, 129, 124, 137, 133, 131, 125, 126, 111, 121, 113, 118, 121, 112, 130, 116, 127, 113, 140, 114, 139, 117, 120, 122, 114, 122, 129, 131, 114, 141, 132, 152, 113, 122, 123, 124, 129, 115, 128, 126, 115, 134, 131, 129, 122, 122, 128, 150, 124, 133, 137, 122, 112, 135, 135, 111, 122, 132, 141, 121, 139, 107, 120, 117, 151, 115, 117, 131, 135, 117, 122, 117, 102, 130, 139, 123, 129, 103, 116, 114, 115, 111, 120, 131, 110, 126, 115, 134, 131, 140, 133, 152, 136, 140, 130, 130, 119, 123, 132, 132, 133, 112, 129, 127, 138, 114, 120, 137, 133, 134, 103, 124, 136, 118, 123, 137, 143, 119, 113, 118, 108, 91, 126, 122, 126, 108, 138, 113, 116, 126, 119, 127, 119, 133, 117, 117, 130, 118, 134, 119, 133, 130, 118, 117, 131, 106, 134, 128, 122, 116, 106, 134, 129, 124, 131, 126, 126, 124, 116, 125, 128, 147, 109, 138, 121, 117, 114, 115, 116, 145, 142, 115, 131, 123, 134, 118, 122, 135, 128, 125, 121, 131, 126, 137, 127, 127, 109, 119, 101, 140, 131, 121, 116, 125, 119, 103, 118, 152, 128, 131, 118, 129, 127, 121, 135, 134, 132, 117, 112, 148, 128, 138, 136, 127, 110, 121, 127, 103, 123, 132, 115, 106, 120, 104, 119, 122, 135, 124, 108, 118, 126, 140, 119, 136, 114, 135, 126, 123, 126, 118, 137, 144, 120, 133, 122, 151, 129, 129, 132, 123, 120, 101, 129, 129, 120, 117, 119, 127, 134, 143, 127, 128, 118, 117, 137, 128, 126, 120, 129, 127, 138, 135, 132, 121, 131, 115, 126, 105, 148, 120, 123, 129, 134, 115, 131, 125, 128, 131, 119, 137, 138, 126, 119, 112, 125, 136, 120, 126, 129, 135, 131, 137, 131, 123, 140, 127, 127, 126, 126, 109, 124, 131, 129, 127, 123, 123, 113, 134, 107, 124, 139, 122, 128, 127, 124, 124, 130, 114, 132, 124, 131, 127, 137, 120, 138, 150, 125, 113, 127, 110, 129, 124, 131, 127, 119, 125, 120, 138, 121, 134, 135, 134, 119, 105, 120, 129, 122, 131, 111, 131, 117, 123, 118, 118, 129, 144, 124, 135, 126, 121, 100, 124, 151, 123, 148, 127, 127, 120, 136, 128, 139, 138, 128, 127, 128, 124, 120, 121, 127, 122, 126, 120, 137, 136, 125, 135, 122, 129, 112, 108, 112, 115, 116, 113, 121, 114, 116, 112, 122, 133, 132, 141, 142, 138, 150, 129, 114, 127, 142, 105, 122, 132, 128, 116, 117, 118, 120, 119, 129, 123, 129, 128, 127, 113, 131, 135, 109, 126, 134, 109, 127, 127, 115, 133, 142, 112, 121, 109, 138, 134, 140, 133, 111, 128, 136, 128, 125, 135, 122, 120, 127, 133, 126, 127, 131, 130, 126, 113, 119, 129, 120, 142, 108, 124, 121, 124, 113, 128, 125, 127, 119, 129, 116, 143, 134, 137, 137, 122, 121, 110, 134, 121, 128, 143, 116, 151, 126, 105, 135, 129, 123, 130, 125, 126, 146, 112, 130, 113, 130, 149, 148, 99, 129, 120, 125, 133, 129, 120, 129, 130, 130, 110, 142, 134, 130, 105, 120, 124, 128, 134, 117, 122, 131, 114, 137, 133, 133, 127, 123, 118, 114, 130, 128, 145, 119, 138, 124, 120, 130, 130, 121, 125, 125, 123, 146, 107, 111, 116, 117, 123, 117, 125, 122, 127, 125, 130, 131, 106, 138, 135, 113, 138, 131, 130, 117, 123, 130, 139, 103, 124, 120, 131, 140, 129, 132, 111, 94, 139, 135, 128, 117, 121, 127, 117, 127, 125, 128, 122, 127, 143, 131, 113, 110, 130, 116, 128, 123, 143, 146, 129, 122, 116, 91, 123, 114, 118, 107, 129, 144, 120, 112, 132, 130, 139, 130, 117, 129, 126, 150, 127, 124, 122, 117, 141, 117, 123, 107, 97, 126, 125, 149, 127, 120, 121, 126, 124, 129, 124, 139, 122, 114, 127, 127, 115, 131, 108, 112, 116, 132, 123, 136, 115, 111, 139, 113, 140, 145, 141, 129, 140, 134, 100, 115, 105, 120, 124, 124, 126, 125, 147, 135, 123, 125, 126, 130, 120, 136, 121, 125, 120, 127, 131, 122, 129, 115, 125, 103, 98, 140, 132, 120, 116, 141, 121, 112, 131, 145, 121, 137, 114, 138, 126, 132, 136, 134, 116, 111, 142, 124, 124, 140, 114, 107, 115, 127, 116, 131, 118, 139, 132, 126, 141, 133, 106, 129, 114, 112, 141, 134, 123, 125, 107, 116, 102, 144, 129, 137, 124, 151, 125, 144, 123, 126, 119, 137, 136, 128, 125, 116, 120, 113, 133, 126, 125, 123, 125, 134, 115, 130, 131, 119, 102, 118, 128, 123, 144, 135, 127, 121, 121, 123, 136, 119, 108, 114, 137, 122, 125, 122, 129, 120, 133, 133, 140, 106, 120, 142, 129, 140, 124, 134, 141, 126, 131, 116, 120, 121, 130, 118, 111, 135, 108, 130, 125, 107, 111, 120, 115, 145, 130, 108, 130, 137, 137, 128, 115, 149, 113, 126, 119, 125, 126, 123, 125, 124, 126, 100, 118, 128, 124, 144, 126, 124, 124, 135, 140, 119, 128, 142, 138, 138, 124, 111, 113, 138, 135, 139, 122, 139, 110, 129, 136, 114, 117, 125, 125, 147, 133, 129, 128, 130, 128, 120, 123, 120, 136, 143, 130, 124, 123, 140, 106, 120, 125, 160, 121, 107, 134, 131, 125, 119, 125, 121, 107, 144, 130, 134, 127, 126, 120, 120, 143, 134, 111, 132, 118, 108, 141, 129, 128, 114, 138, 121, 118, 129, 133, 117, 118, 117, 120, 147, 124, 111, 122, 128, 116, 113, 118, 117, 113, 121, 123, 116, 121, 122, 129, 118, 134, 145, 123, 133, 123, 132, 111, 146, 120, 119, 129, 136, 112, 124, 127, 130, 131, 139, 129, 114, 140, 124, 117, 128, 135, 127, 123, 122, 123, 107, 152, 133, 124, 116, 118, 131, 124, 134, 141, 122, 124, 114, 124, 133, 125, 113, 120, 127, 123, 109, 126, 141, 110, 128, 127, 149, 119, 121, 128, 129, 129, 134, 136, 108, 128, 122, 119, 144, 119, 118, 142, 124, 143, 123, 131, 135, 129, 122, 143, 112, 136, 128, 127, 113, 126, 130, 119, 132, 115, 110, 109, 110, 116, 142, 136, 120, 121, 144, 120, 142, 119, 126, 132, 112, 125, 114, 136, 121, 119, 119, 123, 135, 131, 129, 117, 138, 104, 102, 119, 125, 134, 113, 125, 134, 131, 121, 122, 113, 118, 124, 138, 139, 116, 142, 136, 117, 116, 124, 124, 138, 138, 135, 120, 123, 135, 128, 123, 139, 122, 130, 144, 127, 113, 91, 143, 145, 112, 129, 115, 136, 141, 142, 111, 142, 109, 130, 130, 118, 110, 131, 134, 131, 127, 118, 121, 107, 106, 140, 119, 129, 148, 131, 136, 136, 126, 116, 126, 133, 126, 111, 116, 126, 116, 107, 116, 113, 134, 126, 138, 133, 119, 133, 118, 134, 129, 127, 134, 133, 137, 141, 126, 120, 138, 124, 113, 134, 133, 121, 143, 111, 144, 126, 104, 113, 133, 133, 121, 137, 130, 136, 134, 138, 117, 124, 110, 128, 116, 125, 108, 130, 132, 140, 141, 129, 124, 134, 127, 107, 125, 116, 145, 129, 131, 134, 121, 124, 123, 125, 116, 118, 111, 119, 130, 119, 117, 138, 124, 108, 129, 130, 120, 120, 153, 133, 104, 124, 148, 132, 104, 108, 130, 121, 135, 127, 115, 127, 132, 141, 129, 132, 121, 118, 131, 118, 116, 110, 131, 127, 111, 130, 124, 112, 121, 123, 128, 130, 125, 114, 111, 110, 129, 117, 137, 131, 109, 124, 135, 130, 117, 124, 129, 113, 135, 126, 130, 130, 118, 111, 116, 145, 136, 114, 118, 138, 127, 132, 117, 147, 122, 125, 135, 138, 127, 126, 146, 115, 126, 134, 122, 131, 138, 134, 125, 137, 120, 125, 126, 124, 113, 127, 128, 118, 128, 129, 123, 119, 112, 125, 141, 122, 140, 128, 122, 116, 134, 125, 141, 118, 128, 122, 140, 118, 122, 121, 111, 135, 116, 132, 118, 120, 129, 110, 126, 129, 130, 116, 133, 133, 112, 126, 117, 123, 128, 134, 121, 119, 121, 141, 130, 135, 140, 127, 131, 126, 150, 134, 114, 140, 113, 120, 117, 141, 143, 110, 131, 119, 122, 127, 132, 118, 126, 125, 132, 125, 137, 138, 116, 130, 110, 125, 107, 124, 126, 129, 139, 114, 143, 134, 98, 110, 123, 130, 117, 124, 113, 101, 121, 121, 107, 116, 124, 126, 142, 134, 120, 125, 138, 131, 104, 123, 132, 113, 111, 116, 130, 143, 127, 124, 112, 132, 122, 130, 118, 134, 139, 124, 123, 129, 116, 125, 121, 130, 127, 123, 119, 135, 132, 123, 123, 128, 136, 115, 124, 123, 131, 134, 127, 126, 127, 133, 142, 118, 122, 132, 115, 109, 116, 118, 139, 130, 121, 137, 129, 126, 135, 116, 118, 100, 121, 145, 130, 124, 137, 112, 115, 125, 122, 135, 139, 125, 115, 125, 112, 117, 117, 119, 131, 133, 125, 115, 122, 117, 139, 123, 137, 142, 121, 129, 118, 132, 124, 125, 135, 126, 141, 121, 124, 127, 118, 129, 116, 133, 133, 126, 124, 112, 126, 141, 144, 101, 120, 135, 126, 114, 125, 124, 132, 125, 117, 123, 123, 107, 116, 136, 120, 104, 122, 123, 134, 109, 124, 119, 151, 123, 114, 120, 122, 121, 116, 147, 115, 138, 127, 125, 140, 120, 136, 116, 120, 115, 122, 115, 147, 149, 110, 125, 116, 126, 124, 121, 123, 142, 122, 106, 138, 133, 122, 131, 140, 150, 130, 119, 136, 122, 134, 128, 114, 117, 118, 117, 134, 124, 108, 132, 115, 133, 118, 115, 120, 101, 114, 115, 127, 125, 132, 119, 131, 125, 108, 131, 121, 134, 117, 140, 146, 127, 132, 124, 139, 135, 127, 130, 132, 129, 119, 105, 126, 126, 135, 127, 134, 139, 135, 150, 120, 134, 145, 136, 104, 103, 127, 117, 130, 143, 124, 125, 127, 132, 123, 112, 121, 136, 129, 117, 119, 109, 100, 110, 125, 128, 123, 122, 114, 122, 133, 137, 136, 114, 112, 124, 128, 127, 129, 125, 130, 111, 127, 143, 128, 128, 126, 128, 160, 133, 127, 107, 127, 143, 115, 136, 138, 130, 108, 126, 118, 121, 124, 119, 114, 138, 127, 114, 127, 124, 132, 127, 118, 124, 126, 114, 136, 120, 99, 135, 132, 113, 118, 122, 134, 128, 141, 124, 127, 134, 118, 129, 113, 129, 136, 133, 114, 118, 121, 141, 128, 138, 116, 123, 142, 130, 130, 123, 140, 127, 136, 129, 122, 131, 110, 118, 110, 126, 128, 121, 106, 121, 129, 118, 118, 128, 128, 129, 143, 140, 131, 120, 133, 136, 104, 140, 117, 120, 141, 133, 130, 98, 114, 143, 136, 103, 128, 116, 122, 124, 115, 126, 131, 114, 133, 122, 127, 133, 120, 123, 130, 129, 128, 124, 110, 107, 126, 119, 118, 137, 141, 125, 143, 105, 130, 138, 105, 130, 147, 143, 127, 128, 120, 132, 124, 137, 128, 137, 123, 113, 141, 131, 134, 137, 133, 122, 122, 135, 133, 127, 132, 140, 111, 127, 132, 125, 118, 115, 137, 115, 121, 130, 125, 119, 117, 129, 115, 119, 129, 145, 127, 116, 145, 120, 129, 123, 113, 100, 133, 116, 145, 130, 124, 114, 126, 119, 133, 129, 127, 112, 148, 121, 129, 136, 116, 130, 128, 131, 123, 134, 128, 112, 135, 127, 119, 110, 129, 125, 129, 111, 122, 128, 131, 130, 117, 116, 135, 102, 123, 110, 116, 135, 125, 123, 116, 121, 135, 126, 121, 129, 126, 121, 151, 133, 122, 130, 123, 126, 150, 129, 137, 150, 127, 116, 133, 132, 121, 131, 114, 117, 127, 139, 120, 126, 125, 138, 129, 125, 121, 136, 142, 106, 117, 129, 131, 114, 125, 130, 137, 126, 145, 142, 125, 132, 132, 115, 126, 127, 128, 121, 124, 122, 134, 124, 124, 125, 132, 113, 132, 121, 139, 131, 116, 119, 123, 124, 118, 122, 137, 146, 134, 125, 125, 128, 141, 122, 144, 114, 126, 107, 112, 127, 123, 109, 113, 117, 127, 117, 135, 120, 106, 106, 134, 126, 118, 123, 136, 130, 123, 130, 151, 142, 128, 115, 120, 136, 108, 120, 121, 129, 123, 122, 117, 119, 127, 133, 114, 131, 114, 119, 123, 124, 140, 119, 121, 125, 139, 135, 123, 112, 99, 115, 118, 124, 141, 129, 123, 125, 130, 108, 111, 134, 122, 129, 126, 113, 113, 134, 130, 130, 114, 111, 107, 122, 131, 134, 115, 96, 131, 139, 132, 141, 133, 133, 114, 140, 136, 131, 130, 134, 143, 126, 116, 130, 122, 148, 125, 122, 132, 119, 116, 111, 119, 124, 116, 145, 150, 122, 114, 143, 121, 133, 140, 131, 141, 119, 128, 130, 126, 118, 118, 113, 131, 137, 127, 114, 119, 126, 113, 114, 129, 99, 137, 128, 107, 109, 120, 128, 126, 143, 120, 128, 116, 131, 118, 122, 113, 130, 123, 130, 130, 134, 129, 106, 119, 126, 121, 123, 130, 132, 122, 131, 114, 123, 121, 124, 132, 123, 117, 109, 126, 135, 133, 110, 112, 111, 110, 118, 109, 119, 127, 123, 117, 132, 121, 134, 126, 112, 127, 132, 121, 129, 133, 122, 107, 116, 111, 134, 124, 123, 136, 130, 133, 126, 112, 141, 129, 134, 127, 132, 128, 123, 121, 130, 107, 135, 128, 111, 108, 137, 140, 129, 100, 117, 120, 122, 130, 106, 121, 122, 125, 118, 141, 133, 125, 139, 119, 121, 128, 124, 107, 141, 136, 125, 122, 110, 102, 131, 129, 116, 133, 136, 114, 129, 128, 134, 131, 124, 122, 114, 122, 119, 119, 124, 125, 118, 140, 115, 140, 132, 122, 129, 144, 135, 111, 123, 139, 130, 129, 123, 140, 129, 116, 147, 131, 108, 133, 116, 131, 140, 136, 131, 113, 117, 135, 135, 107, 135, 110, 132, 120, 141, 107, 124, 125, 138, 116, 128, 127, 118, 110, 107, 121, 123, 122, 126, 114, 138, 137, 131, 119, 128, 145, 144, 139, 127, 131, 117, 134, 119, 145, 128, 139, 128, 113, 113, 117, 129, 117, 125, 111, 129, 140, 138, 136, 129, 127, 127, 116, 123, 121, 102, 137, 126, 119, 129, 109, 131, 122, 131, 134, 132, 132, 134, 119, 126, 121, 144, 144, 118, 115, 126, 131, 105, 126, 111, 116, 138, 126, 138, 122, 102, 124, 118, 120, 138, 130, 137, 131, 131, 115, 138, 133, 129, 137, 127, 134, 117, 132, 127, 130, 140, 131, 118, 135, 135, 131, 117, 110, 139, 112, 118, 126, 129, 122, 114, 120, 130, 140, 136, 123, 108, 148, 119, 139, 142, 144, 125, 134, 123, 110, 125, 126, 127, 113, 136, 124, 136, 128, 132, 120, 116, 148, 125, 130, 118, 118, 133, 120, 110, 122, 135, 147, 135, 134, 118, 112, 132, 127, 130, 124, 121, 124, 127, 129, 124, 104, 120, 133, 133, 123, 125, 128, 126, 119, 130, 110, 124, 100, 112, 124, 144, 126, 135, 134, 131, 128, 127, 116, 134, 135, 134, 136, 126, 131, 125, 124, 132, 130, 124, 128, 123, 109, 148, 122, 136, 133, 124, 116, 129, 105, 116, 140, 138, 116, 105, 120, 131, 131, 152, 111, 119, 127, 133, 119, 137, 133, 131, 113, 137, 123, 119, 124, 115, 132, 142, 127, 125, 126, 122, 125, 116, 106, 118, 120, 134, 119, 144, 134, 133, 126, 127, 128, 115, 116, 128, 103, 133, 127, 135, 123, 111, 116, 124, 122, 138, 124, 123, 139, 123, 151, 130, 132, 140, 126, 119, 126, 118, 117, 123, 119, 122, 132, 130, 111, 127, 117, 138, 128, 140, 144, 120, 137, 114, 132, 106, 139, 115, 130, 112, 131, 121, 139, 137, 122, 119, 120, 118, 121, 128, 125, 118, 121, 126, 117, 103, 130, 130, 121, 134, 131, 130, 134, 129, 119, 120, 138, 109, 130, 114, 134, 125, 116, 112, 125, 118, 135, 125, 116, 133, 133, 138, 113, 111, 124, 124, 131, 118, 131, 134, 131, 116, 135, 141, 121, 112, 96, 120, 139, 128, 120, 120, 120, 123, 131, 122, 126, 130, 130, 125, 134, 114, 123, 113, 114, 133, 125, 122, 116, 128, 128, 118, 117, 125, 134, 131, 131, 109, 147, 122, 113, 124, 110, 129, 122, 117, 136, 128, 131, 124, 122, 126, 135, 123, 135, 118, 125, 119, 137, 116, 117, 134, 121, 100, 131, 125, 123, 145, 122, 135, 120, 133, 122, 121, 129, 146, 129, 124, 133, 151, 122, 125, 114, 138, 125, 121, 126, 141, 117, 118, 130, 145, 120, 135, 127, 124, 131, 145, 149, 122, 118, 125, 119, 115, 117, 138, 142, 110, 115, 131, 128, 130, 120, 111, 127, 123, 141, 123, 130, 139, 128, 126, 112, 129, 108, 120, 112, 127, 122, 115, 134, 126, 129, 136, 121, 123, 125, 124, 128, 120, 133, 139, 131, 114, 105, 111, 127, 125, 131, 108, 123, 150, 141, 123, 109, 123, 120, 110, 143, 134, 107, 120, 129, 126, 140, 122, 139, 116, 114, 137, 122, 122, 125, 130, 125, 140, 122, 145, 124, 118, 116, 115, 110, 127, 127, 127, 138, 118, 127, 128, 137, 115, 111, 136, 125, 110, 138, 130, 109, 128, 126, 137, 129, 134, 135, 129, 116, 143, 126, 131, 118, 125, 125, 132, 116, 133, 113, 136, 120, 123, 129, 120, 125, 132, 128, 128, 147, 119, 123, 137, 141, 124, 125, 137, 124, 126, 122, 114, 128, 125, 127, 119, 122, 128, 131, 112, 111, 127, 119, 144, 110, 115, 119, 144, 131, 136, 128, 130, 133, 126, 98, 127, 127, 128, 124, 116, 101, 113, 135, 118, 127, 131, 127, 111, 127, 130, 128, 125, 138, 126, 131, 116, 137, 98, 107, 140, 120, 130, 157, 118, 122, 113, 123, 112, 126, 122, 128, 123, 104, 123, 141, 132, 118, 129, 129, 120, 106, 130, 127, 121, 128, 136, 121, 119, 121, 126, 147, 103, 131, 124, 119, 141, 129, 137, 140, 118, 90, 150, 120, 126, 127, 131, 103, 129, 109, 114, 117, 125, 129, 118, 118, 110, 128, 107, 126, 117, 129, 112, 124, 117, 116, 124, 117, 120, 107, 129, 107, 116, 122, 128, 113, 122, 127, 133, 144, 129, 123, 148, 114, 119, 126, 132, 125, 127, 117, 120, 120, 121, 119, 115, 118, 119, 130, 147, 134, 144, 129, 120, 112, 131, 102, 125, 126, 128, 146, 128, 125, 127, 123, 132, 127, 117, 141, 122, 127, 128, 133, 129, 135, 120, 125, 145, 108, 123, 117, 118, 117, 130, 129, 137, 123, 126, 110, 131, 111, 122, 120, 117, 121, 122, 129, 127, 116, 145, 124, 133, 116, 134, 118, 122, 124, 121, 106, 132, 111, 105, 134, 123, 133, 131, 124, 130, 125, 135, 111, 140, 132, 128, 120, 147, 133, 126, 125, 115, 131, 122, 129, 128, 129, 127, 119, 125, 134, 110, 126, 115, 122, 128, 95, 122, 109, 123, 132, 119, 130, 136, 120, 134, 125, 140, 121, 119, 127, 125, 122, 128, 115, 130, 139, 130, 138, 126, 138, 127, 129, 130, 112, 115, 136, 110, 112, 113, 127, 125, 130, 130, 132, 124, 116, 126, 115, 137, 114, 128, 124, 114, 134, 134, 105, 132, 139, 135, 122, 122, 144, 128, 129, 138, 130, 125, 125, 123, 123, 139, 117, 129, 128, 119, 120, 113, 130, 130, 120, 116, 123, 118, 118, 148, 109, 149, 134, 136, 142, 101, 131, 134, 122, 111, 132, 129, 125, 117, 118, 121, 134, 120, 132, 137, 130, 132, 117, 124, 141, 115, 137, 126, 116, 123, 118, 145, 116, 111, 121, 124, 137, 119, 120, 142, 143, 102, 121, 99, 146, 131, 127, 105, 140, 132, 137, 114, 136, 125, 126, 132, 120, 121, 113, 126, 139, 118, 111, 123, 127, 110, 130, 129, 146, 123, 110, 108, 135, 108, 129, 130, 131, 123, 135, 144, 134, 126, 125, 116, 124, 115, 116, 133, 136, 125, 109, 128, 122, 127, 106, 116, 113, 121, 119, 133, 125, 134, 127, 120, 122, 130, 113, 115, 109, 132, 129, 126, 110, 125, 132, 130, 120, 122, 123, 128, 128, 140, 118, 107, 123, 138, 129, 123, 136, 116, 140, 125, 140, 136, 110, 114, 132, 136, 118, 127, 123, 139, 118, 134, 111, 126, 137, 132, 126, 115, 108, 125, 113, 114, 111, 113, 126, 117, 128, 118, 108, 106, 145, 131, 125, 122, 135, 115, 124, 148, 124, 118, 133, 129, 122, 119, 130, 114, 133, 137, 127, 122, 133, 127, 136, 133, 114, 148, 126, 133, 142, 151, 128, 121, 133, 138, 120, 130, 129, 118, 131, 138, 125, 132, 121, 107, 121, 122, 128, 122, 112, 134, 149, 114, 138, 122, 126, 113, 131, 118, 118, 132, 132, 136, 122, 119, 118, 121, 132, 123, 117, 116, 123, 133, 133, 111, 119, 139, 128, 141, 120, 141, 122, 126, 110, 127, 128, 116, 131, 118, 112, 128, 136, 104, 122, 135, 140, 127, 143, 140, 131, 114, 107, 124, 100, 145, 133, 136, 135, 120, 122, 124, 143, 125, 132, 121, 111, 133, 125, 132, 126, 137, 136, 135, 120, 132, 103, 118, 125, 121, 135, 133, 130, 140, 147, 130, 129, 149, 110, 116, 119, 135, 119, 120, 139, 125, 118, 158, 107, 127, 142, 126, 115, 106, 105, 132, 125, 158, 134, 126, 114, 124, 129, 120, 113, 134, 123, 128, 118, 122, 103, 131, 117, 118, 160, 119, 120, 117, 139, 126, 125, 109, 129, 113, 124, 115, 120, 129, 130, 143, 126, 130, 113, 123, 159, 121, 111, 127, 118, 117, 120, 130, 141, 131, 124, 149, 144, 134, 117, 133, 117, 128, 115, 118, 122, 115, 135, 116, 124, 114, 120, 118, 120, 120, 117, 99, 115, 132, 124, 125, 128, 143, 106, 135, 105, 151, 150, 124, 123, 121, 129, 118, 112, 101, 103, 123, 111, 121, 130, 130, 126, 130, 130, 130, 121, 125, 117, 135, 124, 145, 118, 129, 113, 106, 130, 128, 111, 126, 133, 123, 134, 118, 121, 127, 128, 116, 108, 115, 115, 127, 140, 128, 117, 126, 139, 119, 114, 122, 103, 139, 130, 128, 98, 120, 116, 128, 135, 111, 124, 121, 107, 133, 119, 131, 131, 140, 127, 114, 127, 132, 126, 134, 119, 109, 130, 126, 120, 143, 127, 127, 116, 138, 119, 128, 131, 135, 129, 143, 128, 141, 142, 122, 132, 129, 126, 127, 127, 132, 119, 135, 125, 122, 129, 120, 128, 135, 133, 103, 128, 132, 145, 113, 133, 120, 138, 124, 127, 127, 127, 132, 112, 131, 141, 105, 111, 126, 126, 107, 127, 129, 133, 133, 134, 131, 122, 132, 126, 137, 118, 116, 123, 99, 110, 129, 115, 148, 143, 126, 122, 116, 120, 130, 117, 132, 128, 116, 147, 122, 131, 107, 138, 121, 119, 131, 112, 124, 114, 130, 115, 133, 126, 136, 125, 128, 117, 112, 146, 108, 145, 130, 143, 132, 104, 121, 132, 132, 113, 131, 120, 132, 134, 118, 121, 105, 120, 147, 147, 137, 120, 141, 116, 126, 114, 118, 142, 126, 108, 142, 131, 127, 117, 126, 124, 124, 133, 116, 123, 118, 132, 125, 128, 113, 129, 132, 138, 121, 124, 127, 129, 115, 128, 142, 140, 110, 120, 131, 143, 119, 121, 120, 131, 119, 111, 96, 113, 129, 113, 151, 130, 106, 137, 125, 122, 125, 130, 127, 129, 90, 132, 122, 119, 139, 117, 131, 126, 127, 133, 109, 121, 125, 129, 130, 121, 123, 118, 135, 119, 136, 123, 132, 124, 100, 114, 113, 127, 120, 123, 145, 135, 134, 135, 116, 144, 127, 130, 130, 127, 136, 123, 121, 140, 131, 146, 135, 112, 119, 113, 126, 140, 126, 129, 129, 121, 114, 134, 120, 130, 135, 121, 119, 124, 133, 126, 135, 105, 120, 131, 138, 135, 154, 128, 121, 127, 126, 128, 123, 124, 127, 140, 109, 141, 113, 133, 133, 135, 128, 136, 109, 134, 135, 116, 123, 124, 126, 133, 110, 132, 128, 132, 131, 115, 115, 119, 101, 109, 115, 123, 121, 117, 128, 131, 132, 125, 117, 124, 122, 121, 108, 136, 120, 132, 123, 130, 131, 117, 132, 120, 103, 139, 126, 126, 148, 135, 118, 112, 116, 121, 133, 107, 127, 115, 128, 117, 121, 118, 121, 120, 119, 117, 133, 128, 107, 127, 126, 131, 124, 141, 119, 119, 128, 143, 141, 120, 112, 122, 125, 128, 129, 122, 130, 136, 118, 128, 128, 117, 126, 135, 121, 118, 119, 126, 110, 136, 132, 114, 112, 138, 105, 117, 138, 136, 126, 130, 113, 119, 120, 142, 127, 102, 150, 144, 119, 121, 132, 121, 118, 109, 122, 140, 135, 120, 133, 114, 125, 127, 131, 141, 117, 146, 134, 127, 122, 128, 118, 111, 126, 127, 129, 143, 114, 130, 125, 109, 117, 111, 126, 125, 128, 102, 116, 129, 119, 125, 121, 163, 121, 108, 126, 132, 121, 113, 138, 116, 113, 135, 131, 117, 133, 128, 142, 131, 115, 140, 145, 125, 117, 124, 122, 122, 129, 121, 120, 121, 138, 126, 144, 124, 120, 128, 133, 122, 133, 123, 135, 117, 126, 126, 128, 115, 113, 124, 131, 122, 132, 123, 108, 149, 132, 121, 132, 120, 126, 101, 121, 114, 120, 122, 135, 126, 136, 129, 133, 130, 135, 125, 127, 112, 117, 128, 116, 135, 136, 135, 116, 136, 109, 129, 128, 134, 119, 127, 118, 109, 128, 138, 129, 118, 120, 120, 129, 122, 113, 125, 112, 132, 132, 123, 124, 135, 112, 139, 128, 125, 122, 115, 124, 145, 104, 112, 129, 119, 128, 131, 124, 135, 128, 134, 126, 106, 135, 140, 127, 148, 101, 102, 126, 112, 124, 113, 139, 141, 122, 110, 127, 125, 115, 150, 117, 134, 116, 127, 129, 108, 133, 123, 139, 144, 122, 123, 118, 134, 120, 123, 128, 128, 125, 120, 144, 107, 134, 119, 128, 127, 138, 132, 134, 130, 140, 121, 113, 129, 127, 114, 124, 126, 127, 147, 118, 142, 128, 121, 120, 117, 135, 119, 116, 121, 111, 133, 122, 143, 117, 115, 109, 127, 140, 105, 105, 137, 137, 125, 135, 135, 151, 112, 120, 103, 133, 132, 121, 128, 115, 121, 117, 135, 108, 134, 115, 117, 114, 129, 127, 109, 121, 119, 131, 157, 134, 131, 117, 109, 125, 130, 141, 135, 137, 124, 137, 122, 115, 118, 117, 119, 141, 107, 116, 111, 111, 125, 132, 133, 117, 126, 123, 128, 114, 145, 128, 119, 114, 127, 110, 132, 135, 131, 108, 120, 123, 134, 113, 125, 135, 123, 118, 131, 118, 126, 126, 135, 146, 116, 114, 108, 130, 104, 150, 119, 128, 130, 149, 111, 126, 136, 150, 118, 117, 125, 117, 118, 114, 106, 113, 143, 102, 129, 118, 142, 128, 128, 125, 130, 141, 125, 121, 132, 124, 111, 125, 118, 103, 116, 126, 147, 141, 140, 117, 113, 137, 115, 131, 134, 135, 130, 141, 139, 112, 108, 124, 123, 114, 130, 109, 122, 141, 144, 107, 115, 117, 135, 140, 135, 107, 138, 121, 114, 122, 133, 126, 110, 128, 137, 123, 125, 128, 130, 138, 118, 122, 113, 136, 115, 126, 114, 121, 120, 147, 110, 124, 122, 120, 137, 139, 140, 137, 130, 112, 122, 109, 133, 118, 123, 118, 119, 141, 122, 129, 112, 123, 129, 133, 131, 118, 118, 130, 126, 128, 115, 134, 132, 124, 126, 109, 134, 116, 131, 131, 136, 123, 119, 123, 115, 131, 124, 108, 133, 138, 116, 133, 123, 126, 128, 132, 123, 111, 142, 124, 129, 124, 138, 141, 111, 106, 120, 103, 130, 138, 114, 124, 130, 117, 118, 137, 133, 134, 126, 142, 136, 128, 118, 134, 125, 120, 127, 126, 108, 103, 124, 128, 116, 109, 132, 144, 129, 124, 117, 131, 140, 140, 132, 144, 134, 139, 143, 141, 114, 129, 121, 111, 107, 131, 134, 125, 128, 129, 116, 133, 137, 110, 135, 124, 122, 122, 132, 119, 141, 111, 125, 115, 113, 117, 122, 144, 137, 136, 136, 123, 127, 125, 143, 121, 134, 121, 121, 131, 115, 123, 129, 129, 129, 124, 137, 137, 123, 136, 116, 130, 122, 126, 126, 109, 113, 117, 105, 122, 130, 115, 104, 126, 122, 127, 144, 134, 123, 110, 133, 125, 113, 130, 126, 146, 124, 126, 114, 130, 117, 139, 150, 122, 124, 122, 137, 162, 128, 137, 131, 120, 131, 119, 121, 136, 127, 121, 132, 132, 125, 131, 123, 118, 124, 120, 120, 123, 129, 135, 117, 121, 137, 133, 122, 139, 126, 138, 126, 128, 122, 118, 113, 137, 138, 125, 123, 113, 116, 110, 121, 131, 124, 123, 129, 139, 123, 130, 133, 127, 124, 128, 146, 121, 107, 124, 117, 127, 124, 129, 126, 122, 106, 128, 121, 138, 115, 106, 130, 145, 118, 134, 124, 135, 112, 144, 127, 117, 114, 93, 133, 121, 144, 133, 128, 129, 129, 124, 119, 122, 136, 124, 119, 120, 133, 129, 123, 122, 117, 141, 124, 124, 132, 112, 123, 119, 124, 116, 131, 128, 127, 118, 120, 120, 120, 135, 122, 127, 117, 136, 136, 115, 136, 122, 127, 120, 133, 121, 123, 127, 120, 134, 131, 145, 143, 132, 127, 131, 119, 121, 138, 131, 123, 124, 125, 104, 149, 121, 127, 116, 119, 130, 130, 116, 118, 119, 123, 147, 121, 147, 131, 129, 110, 116, 110, 119, 136, 130, 131, 129, 129, 127, 135, 127, 104, 127, 106, 137, 124, 123, 126, 132, 151, 144, 125, 123, 150, 150, 137, 126, 128, 152, 125, 131, 123, 122, 124, 136, 128, 124, 121, 118, 130, 127, 130, 125, 118, 139, 119, 138, 136, 137, 140, 129, 122, 125, 107, 124, 142, 118, 116, 136, 127, 128, 133, 123, 118, 122, 115, 130, 133, 131, 127, 103, 126, 126, 113, 130, 127, 134, 139, 132, 110, 130, 128, 122, 127, 124, 121, 131, 129, 112, 120, 121, 127, 128, 121, 137, 128, 122, 123, 117, 138, 113, 145, 116, 131, 138, 113, 138, 136, 122, 123, 128, 139, 138, 128, 99, 125, 119, 106, 118, 121, 147, 107, 127, 127, 123, 129, 120, 119, 125, 126, 127, 150, 128, 124, 125, 124, 111, 122, 132, 128, 122, 123, 99, 136, 125, 126, 119, 120, 120, 129, 125, 116, 122, 131, 123, 141, 114, 109, 122, 130, 136, 126, 118, 115, 121, 122, 125, 135, 136, 128, 128, 118, 125, 119, 135, 143, 133, 133, 115, 117, 128, 121, 125, 124, 129, 122, 128, 137, 111, 128, 126, 131, 130, 126, 130, 121, 125, 125, 123, 146, 130, 112, 124, 128, 118, 123, 128, 122, 127, 121, 121, 110, 115, 145, 117, 132, 135, 113, 121, 128, 115, 119, 134, 127, 125, 125, 115, 131, 138, 132, 134, 114, 137, 126, 103, 126, 129, 127, 116, 122, 139, 128, 120, 148, 124, 128, 107, 138, 137, 122, 103, 120, 111, 127, 116, 134, 132, 135, 135, 118, 99, 117, 147, 109, 120, 122, 134, 134, 130, 117, 129, 129, 129, 136, 144, 133, 138, 133, 125, 123, 113, 126, 125, 128, 107, 120, 112, 131, 131, 116, 118, 121, 137, 114, 131, 131, 109, 127, 119, 126, 120, 137, 123, 130, 126, 120, 127, 135, 134, 121, 124, 121, 120, 123, 122, 123, 116, 118, 120, 117, 124, 147, 129, 137, 117, 119, 129, 114, 135, 112, 133, 129, 138, 115, 118, 113, 121, 123, 114, 133, 127, 132, 127, 142, 121, 138, 121, 123, 136, 118, 133, 139, 116, 124, 127, 125, 132, 130, 130, 122, 149, 131, 119, 154, 132, 128, 125, 146, 130, 151, 124, 132, 129, 123, 127, 121, 127, 128, 130, 146, 121, 113, 124, 134, 119, 116, 131, 123, 126, 120, 124, 135, 115, 122, 115, 125, 124, 132, 120, 138, 114, 125, 140, 139, 129, 122, 139, 116, 118, 119, 125, 120, 123, 119, 115, 106, 113, 122, 116, 119, 126, 130, 127, 124, 120, 132, 129, 126, 122, 149, 136, 126, 126, 124, 137, 126, 119, 125, 138, 115, 124, 135, 136, 125, 123, 126, 143, 124, 110, 127, 130, 119, 146, 104, 120, 120, 144, 125, 137, 123, 125, 141, 115, 130, 140, 102, 127, 125, 114, 130, 132, 139, 126, 121, 125, 141, 136, 122, 125, 126, 146, 135, 121, 127, 111, 134, 119, 127, 118, 134, 137, 132, 122, 126, 124, 114, 121, 132, 136, 120, 122, 128, 128, 126, 130, 137, 141, 130, 124, 141, 144, 125, 109, 144, 133, 139, 117, 131, 132, 116, 124, 136, 132, 130, 118, 132, 132, 123, 127, 129, 140, 134, 133, 117, 132, 125, 128, 127, 126, 135, 126, 136, 114, 121, 116, 143, 122, 132, 138, 121, 117, 114, 108, 129, 118, 118, 121, 129, 112, 132, 102, 128, 123, 103, 115, 128, 124, 131, 116, 110, 127, 125, 129, 129, 130, 135, 116, 136, 127, 126, 130, 141, 115, 116, 122, 116, 117, 136, 123, 127, 120, 119, 130, 120, 132, 135, 134, 127, 129, 126, 126, 121, 129, 122, 125, 135, 135, 116, 131, 126, 129, 113, 132, 117, 146, 128, 130, 130, 109, 136, 144, 137, 110, 132, 139, 125, 128, 155, 124, 123, 132, 115, 123, 141, 132, 134, 122, 124, 126, 106, 140, 114, 123, 131, 116, 110, 122, 107, 136, 108, 136, 132, 137, 140, 119, 142, 134, 131, 119, 135, 134, 131, 123, 126, 136, 123, 130, 136, 123, 117, 131, 122, 131, 123, 142, 136, 131, 126, 124, 129, 140, 137, 134, 119, 122, 146, 123, 110, 124, 118, 113, 134, 136, 116, 141, 145, 146, 120, 121, 131, 123, 107, 142, 118, 128, 126, 133, 131, 124, 135, 143, 120, 109, 126, 124, 134, 139, 133, 163, 142, 121, 108, 136, 130, 134, 132, 126, 138, 138, 117, 143, 116, 129, 132, 110, 120, 117, 127, 132, 127, 128, 127, 118, 130, 122, 122, 118, 131, 132, 113, 112, 127, 119, 129, 134, 115, 128, 129, 120, 126, 122, 123, 134, 118, 123, 120, 133, 121, 116, 122, 134, 105, 116, 115, 135, 129, 132, 135, 132, 124, 121, 126, 135, 148, 110, 120, 125, 121, 108, 154, 117, 114, 125, 123, 119, 117, 136, 126, 125, 139, 118, 112, 116, 122, 126, 120, 124, 134, 117, 121, 118, 116, 128, 108, 125, 127, 126, 101, 135, 125, 127, 134, 108, 127, 127, 139, 116, 101, 113, 113, 136, 125, 125, 123, 117, 138, 129, 139, 105, 123, 120, 121, 101, 121, 121, 128, 125, 120, 126, 133, 135, 130, 140, 141, 129, 121, 139, 125, 124, 116, 122, 136, 139, 132, 120, 131, 124, 129, 132, 113, 118, 122, 132, 125, 121, 112, 111, 132, 115, 128, 133, 118, 129, 122, 133, 129, 135, 119, 146, 145, 130, 121, 133, 122, 130, 143, 138, 124, 111, 137, 119, 133, 145, 127, 131, 126, 127, 146, 132, 111, 129, 128, 113, 116, 118, 139, 112, 119, 122, 133, 110, 128, 134, 117, 119, 131, 136, 142, 116, 115, 101, 120, 125, 127, 132, 117, 138, 129, 136, 117, 129, 116, 110, 109, 118, 132, 130, 110, 131, 120, 113, 124, 128, 138, 130, 141, 131, 128, 117, 122, 105, 131, 132, 127, 112, 136, 135, 131, 131, 126, 115, 145, 126, 121, 120, 120, 125, 131, 105, 129, 130, 122, 127, 125, 118, 116, 109, 124, 121, 120, 139, 134, 112, 143, 134, 118, 120, 143, 122, 133, 112, 126, 121, 128, 131, 123, 126, 132, 130, 141, 122, 125, 136, 122, 121, 123, 132, 109, 133, 121, 128, 115, 123, 126, 139, 136, 116, 126, 134, 128, 129, 151, 120, 123, 133, 119, 133, 128, 105, 127, 128, 137, 122, 129, 146, 110, 119, 129, 136, 137, 119, 120, 132, 113, 135, 128, 122, 104, 123, 118, 143, 114, 136, 131, 125, 128, 107, 126, 122, 143, 124, 122, 127, 125, 120, 124, 133, 116, 119, 121, 128, 137, 121, 131, 115, 128, 123, 120, 108, 130, 139, 145, 103, 119, 120, 142, 113, 125, 125, 126, 144, 132, 125, 125, 140, 121, 120, 136, 117, 122, 134, 138, 115, 127, 126, 136, 125, 120, 131, 153, 115, 145, 125, 116, 127, 113, 131, 123, 133, 126, 110, 121, 129, 120, 133, 123, 135, 138, 136, 127, 114, 123, 108, 111, 131, 123, 122, 120, 125, 131, 110, 123, 126, 146, 134, 132, 117, 135, 145, 122, 135, 131, 120, 124, 140, 129, 132, 124, 126, 121, 142, 143, 120, 127, 131, 116, 121, 125, 134, 123, 115, 116, 124, 124, 135, 141, 132, 136, 129, 142, 95, 135, 111, 114, 125, 132, 137, 123, 131, 109, 125, 101, 120, 126, 115, 120, 139, 128, 114, 137, 122, 121, 140, 117, 120, 115, 132, 136, 113, 123, 127, 111, 125, 130, 113, 117, 130, 125, 112, 122, 133, 118, 121, 127, 124, 111, 143, 121, 120, 126, 135, 137, 119, 124, 122, 109, 125, 123, 115, 110, 122, 116, 131, 122, 137, 113, 116, 119, 120, 137, 125, 121, 135, 109, 132, 125, 118, 124, 130, 126, 121, 119, 110, 126, 117, 123, 123, 118, 127, 136, 141, 136, 131, 124, 119, 135, 129, 118, 127, 120, 132, 123, 125, 125, 109, 140, 162, 122, 115, 130, 116, 119, 138, 115, 126, 138, 112, 125, 138, 126, 119, 124, 122, 129, 132, 126, 109, 122, 127, 104, 120, 134, 114, 129, 119, 123, 115, 105, 129, 130, 120, 119, 114, 124, 121, 127, 133, 131, 132, 118, 133, 138, 123, 135, 122, 128, 122, 143, 121, 127, 129, 136, 127, 118, 131, 132, 125, 114, 117, 121, 127, 121, 123, 135, 131, 117, 126, 125, 126, 120, 124, 122, 111, 119, 132, 121, 117, 126, 116, 148, 125, 140, 127, 111, 150, 129, 118, 125, 126, 112, 131, 131, 133, 138, 141, 133, 127, 120, 117, 122, 140, 128, 137, 147, 126, 117, 119, 130, 112, 123, 136, 123, 119, 110, 129, 135, 128, 130, 115, 118, 127, 135, 130, 120, 130, 112, 136, 137, 128, 133, 129, 139, 116, 151, 127, 114, 135, 131, 122, 121, 128, 131, 129, 132, 124, 115, 126, 123, 115, 118, 122, 136, 118, 129, 130, 135, 110, 133, 136, 130, 122, 135, 135, 126, 115, 129, 111, 130, 135, 117, 116, 135, 155, 130, 136, 115, 106, 115, 122, 96, 139, 124, 119, 120, 130, 132, 117, 114, 126, 127, 115, 138, 127, 121, 96, 127, 133, 120, 123, 112, 125, 117, 122, 111, 135, 130, 114, 118, 122, 115, 147, 122, 118, 124, 126, 127, 125, 129, 120, 143, 145, 113, 121, 123, 152, 129, 114, 131, 144, 118, 119, 119, 124, 139, 120, 129, 114, 119, 126, 107, 132, 106, 144, 128, 121, 138, 132, 131, 123, 141, 120, 143, 134, 127, 110, 125, 140, 131, 132, 128, 109, 118, 121, 121, 130, 118, 122, 123, 132, 115, 117, 116, 122, 121, 140, 121, 114, 108, 121, 129, 126, 134, 138, 138, 122, 121, 129, 128, 126, 131, 140, 127, 132, 136, 133, 138, 137, 125, 138, 121, 125, 141, 130, 122, 128, 122, 113, 135, 144, 123, 132, 147, 124, 117, 108, 116, 139, 128, 132, 138, 133, 122, 132, 127, 133, 120, 131, 120, 126, 131, 112, 125, 144, 122, 118, 109, 148, 139, 119, 143, 127, 127, 131, 120, 157, 128, 123, 117, 126, 132, 123, 119, 150, 129, 123, 132, 130, 128, 108, 124, 128, 111, 149, 128, 106, 126, 121, 112, 128, 99, 133, 135, 129, 113, 126, 142, 132, 122, 125, 127, 130, 110, 130, 128, 124, 133, 139, 122, 117, 118, 126, 126, 129, 120, 117, 127, 141, 120, 110, 132, 107, 118, 123, 137, 127, 123, 108, 123, 122, 119, 121, 121, 139, 134, 116, 116, 117, 112, 131, 116, 129, 123, 110, 121, 135, 133, 131, 120, 121, 108, 108, 122, 117, 135, 122, 129, 109, 120, 127, 130, 133, 123, 124, 124, 134, 113, 135, 118, 129, 120, 149, 119, 129, 114, 128, 126, 124, 108, 118, 125, 132, 137, 120, 141, 128, 136, 129, 124, 130, 118, 124, 142, 127, 121, 124, 114, 131, 124, 135, 126, 144, 141, 136, 114, 132, 111, 127, 123, 156, 141, 148, 109, 121, 102, 129, 116, 120, 132, 128, 113, 134, 111, 128, 132, 119, 126, 140, 136, 127, 112, 129, 130, 104, 117, 129, 124, 117, 132, 137, 108, 119, 146, 137, 145, 129, 123, 111, 126, 106, 133, 125, 130, 131, 135, 128, 116, 136, 113, 117, 114, 135, 126, 132, 110, 127, 124, 128, 139, 120, 130, 128, 112, 133, 115, 120, 131, 106, 121, 123, 118, 120, 153, 122, 121, 127, 137, 116, 124, 134, 131, 129, 133, 124, 109, 126, 145, 112, 145, 138, 115, 119, 127, 119, 121, 125, 135, 142, 133, 122, 126, 125, 125, 148, 129, 113, 135, 110, 104, 124, 118, 132, 123, 121, 126, 130, 117, 120, 126, 127, 132, 125, 127, 118, 126, 121, 120, 114, 146, 139, 134, 125, 126, 113, 132, 113, 124, 129, 138, 140, 132, 130, 132, 127, 132, 118, 120, 131, 126, 119, 131, 136, 142, 131, 122, 126, 130, 118, 115, 137, 123, 131, 126, 152, 119, 116, 136, 131, 116, 127, 111, 122, 119, 142, 132, 115, 141, 126, 140, 107, 137, 110, 134, 138, 124, 126, 121, 133, 111, 134, 129, 120, 134, 121, 126, 117, 111, 126, 127, 123, 140, 126, 127, 123, 114, 111, 106, 112, 128, 141, 133, 122, 118, 129, 119, 121, 111, 105, 124, 123, 129, 117, 144, 125, 112, 122, 105, 120, 119, 121, 124, 138, 117, 148, 129, 135, 130, 132, 127, 127, 135, 126, 117, 129, 98, 144, 123, 119, 142, 136, 115, 149, 132, 115, 135, 116, 139, 119, 131, 122, 126, 110, 148, 130, 113, 112, 118, 124, 114, 126, 121, 135, 133, 128, 133, 121, 123, 129, 112, 144, 120, 121, 131, 118, 125, 135, 117, 152, 112, 136, 129, 130, 113, 120, 126, 140, 118, 120, 125, 134, 121, 123, 129, 131, 145, 126, 133, 138, 126, 132, 126, 117, 132, 119, 124, 140, 115, 130, 115, 134, 126, 117, 129, 135, 106, 116, 136, 119, 149, 138, 124, 115, 106, 121, 129, 123, 138, 127, 123, 134, 123, 140, 122, 134, 117, 145, 118, 132, 132, 122, 136, 142, 129, 118, 129, 115, 122, 143, 126, 132, 124, 124, 127, 121, 118, 104, 132, 121, 109, 121, 129, 104, 123, 124, 127, 121, 118, 135, 125, 124, 132, 133, 119, 123, 128, 130, 138, 118, 129, 127, 115, 106, 143, 136, 132, 137, 120, 124, 117, 114, 123, 139, 116, 143, 125, 117, 111, 130, 126, 137, 118, 132, 119, 131, 129, 146, 123, 132, 123, 116, 118, 124, 138, 107, 120, 129, 120, 119, 125, 141, 116, 120, 132, 101, 119, 131, 121, 131, 150, 124, 121, 120, 127, 121, 137, 133, 146, 116, 118, 116, 141, 129, 137, 129, 133, 114, 118, 121, 116, 119, 109, 126, 126, 110, 128, 129, 136, 130, 126, 126, 122, 116, 123, 124, 126, 122, 111, 116, 125, 147, 123, 107, 136, 125, 131, 110, 142, 126, 133, 149, 120, 105, 127, 111, 126, 125, 120, 126, 148, 131, 131, 110, 129, 126, 137, 113, 121, 138, 152, 101, 111, 121, 116, 133, 145, 117, 120, 127, 130, 131, 122, 141, 129, 122, 131, 140, 123, 134, 116, 121, 130, 135, 127, 123, 119, 108, 141, 114, 124, 126, 136, 128, 133, 121, 114, 132, 111, 108, 111, 116, 124, 105, 113, 144, 128, 120, 134, 116, 118, 111, 130, 129, 132, 117, 122, 126, 116, 131, 121, 141, 119, 114, 128, 127, 120, 139, 132, 123, 133, 149, 95, 125, 129, 127, 132, 119, 134, 139, 133, 113, 111, 117, 139, 129, 126, 149, 114, 111, 134, 125, 119, 136, 116, 117, 127, 111, 126, 140, 107, 120, 120, 127, 113, 129, 108, 118, 130, 135, 126, 132, 136, 124, 133, 142, 122, 114, 123, 118, 143, 119, 133, 125, 126, 109, 118, 122, 111, 126, 101, 117, 129, 123, 141, 112, 133, 132, 123, 140, 114, 115, 147, 130, 131, 126, 113, 131, 131, 126, 116, 116, 118, 133, 131, 110, 121, 138, 140, 131, 118, 125, 119, 126, 114, 126, 134, 135, 127, 143, 132, 134, 123, 136, 129, 148, 111, 125, 126, 128, 135, 131, 144, 127, 123, 122, 124, 126, 137, 117, 111, 135, 112, 132, 114, 125, 122, 137, 132, 114, 121, 119, 140, 121, 134, 116, 125, 110, 123, 125, 121, 118, 119, 137, 122, 125, 122, 125, 110, 140, 122, 122, 123, 123, 120, 136, 133, 119, 126, 128, 131, 142, 111, 136, 126, 129, 106, 137, 126, 133, 115, 144, 100, 129, 112, 117, 113, 135, 115, 110, 125, 117, 133, 138, 120, 121, 123, 129, 110, 113, 123, 112, 129, 120, 119, 123, 107, 142, 104, 108, 114, 132, 134, 136, 121, 112, 118, 143, 122, 123, 114, 122, 121, 121, 134, 134, 125, 130, 122, 137, 134, 124, 130, 119, 122, 118, 146, 129, 128, 112, 139, 125, 123, 136, 136, 133, 119, 146, 123, 123, 132, 137, 145, 121, 116, 131, 121, 125, 116, 120, 103, 123, 120, 118, 111, 129, 133, 126, 123, 120, 120, 137, 125, 125, 152, 122, 113, 122, 148, 100, 138, 129, 131, 131, 133, 124, 125, 131, 128, 108, 140, 126, 132, 134, 138, 125, 133, 126, 119, 118, 130, 136, 120, 133, 142, 117, 143, 124, 131, 129, 139, 117, 137, 126, 125, 124, 140, 130, 122, 129, 127, 127, 122, 129, 123, 116, 123, 119, 111, 105, 117, 117, 131, 127, 121, 140, 117, 116, 126, 161, 133, 132, 159, 134, 110, 117, 124, 132, 126, 124, 138, 122, 143, 132, 130, 111, 122, 117, 133, 125, 127, 127, 122, 128, 124, 129, 121, 133, 125, 128, 111, 126, 118, 136, 139, 118, 130, 116, 132, 116, 134, 126, 118, 128, 129, 123, 125, 123, 123, 116, 114, 133, 128, 130, 118, 133, 110, 123, 126, 122, 118, 121, 120, 121, 137, 125, 115, 135, 126, 114, 138, 121, 141, 122, 135, 127, 121, 119, 125, 118, 137, 114, 132, 136, 114, 120, 143, 125, 117, 122, 112, 125, 112, 116, 126, 125, 135, 128, 143, 122, 141, 135, 139, 131, 124, 123, 127, 135, 120, 141, 121, 128, 117, 112, 128, 102, 129, 116, 128, 116, 121, 126, 106, 121, 140, 141, 120, 135, 103, 136, 128, 125, 138, 132, 128, 134, 135, 129, 105, 137, 121, 107, 129, 125, 123, 120, 138, 128, 117, 111, 148, 140, 129, 130, 117, 141, 102, 114, 121, 121, 130, 122, 128, 117, 132, 122, 115, 99, 130, 132, 106, 137, 142, 119, 116, 123, 136, 144, 113, 125, 116, 123, 141, 136, 130, 121, 123, 123, 137, 128, 119, 116, 107, 109, 129, 119, 130, 98, 135, 137, 127, 118, 132, 129, 141, 118, 142, 122, 135, 111, 118, 111, 131, 137, 118, 121, 137, 128, 133, 127, 121, 129, 85, 127, 132, 129, 134, 129, 132, 117, 130, 115, 141, 128, 119, 138, 113, 133, 126, 149, 112, 118, 113, 132, 121, 137, 127, 145, 143, 128, 147, 117, 116, 131, 128, 130, 132, 126, 117, 125, 111, 113, 132, 128, 129, 132, 135, 137, 116, 136, 120, 137, 114, 111, 123, 123, 133, 118, 122, 129, 118, 137, 121, 133, 119, 125, 112, 134, 117, 135, 128, 123, 117, 129, 128, 100, 142, 119, 128, 126, 133, 113, 129, 134, 117, 113, 122, 134, 127, 128, 110, 134, 139, 127, 127, 121, 131, 120, 122, 117, 111, 124, 137, 138, 122, 135, 134, 127, 117, 115, 109, 133, 122, 122, 128, 141, 121, 126, 118, 128, 113, 126, 146, 129, 133, 127, 150, 110, 138, 139, 136, 99, 116, 125, 133, 126, 125, 127, 139, 136, 139, 112, 124, 116, 148, 106, 135, 133, 122, 116, 125, 117, 126, 138, 118, 135, 138, 126, 137, 109, 124, 118, 133, 113, 132, 99, 111, 118, 129, 121, 130, 125, 132, 121, 134, 123, 119, 128, 127, 134, 141, 123, 125, 112, 129, 115, 121, 124, 130, 122, 122, 139, 120, 137, 148, 122, 112, 116, 142, 128, 112, 124, 118, 120, 128, 123, 128, 131, 128, 124, 123, 140, 142, 127, 136, 130, 137, 140, 127, 140, 122, 116, 118, 133, 117, 135, 134, 119, 104, 123, 124, 127, 121, 124, 126, 150, 124, 98, 142, 136, 136, 123, 112, 139, 113, 129, 122, 120, 127, 131, 103, 111, 129, 133, 111, 101, 116, 111, 114, 124, 142, 145, 113, 122, 106, 129, 127, 132, 122, 124, 121, 112, 133, 119, 147, 123, 119, 125, 119, 125, 116, 124, 116, 137, 115, 124, 132, 117, 136, 131, 99, 115, 115, 123, 122, 123, 131, 128, 136, 116, 113, 118, 134, 142, 130, 117, 141, 126, 123, 120, 122, 139, 129, 124, 132, 127, 125, 113, 118, 127, 138, 126, 115, 124, 137, 131, 132, 105, 133, 119, 115, 113, 136, 110, 119, 140, 126, 149, 141, 122, 139, 118, 113, 112, 133, 122, 119, 112, 130, 106, 108, 116, 115, 120, 125, 109, 109, 125, 113, 123, 120, 134, 136, 120, 126, 128, 136, 144, 145, 109, 123, 125, 121, 116, 125, 142, 124, 142, 116, 126, 123, 123, 139, 121, 129, 117, 126, 132, 104, 134, 125, 116, 114, 125, 146, 126, 119, 116, 129, 116, 111, 114, 109, 115, 125, 111, 133, 139, 114, 131, 130, 118, 145, 125, 110, 119, 129, 120, 118, 137, 126, 135, 126, 122, 131, 126, 118, 146, 130, 130, 104, 124, 108, 135, 115, 135, 125, 127, 125, 128, 135, 121, 119, 117, 130, 124, 122, 110, 116, 142, 122, 145, 133, 137, 130, 137, 116, 129, 128, 125, 122, 120, 128, 125, 121, 114, 123, 137, 131, 142, 118, 120, 138, 117, 116, 114, 133, 144, 135, 128, 127, 121, 122, 126, 122, 125, 120, 123, 120, 148, 110, 139, 125, 121, 113, 128, 118, 124, 140, 122, 116, 113, 129, 132, 144, 138, 111, 143, 145, 114, 137, 138, 98, 120, 104, 132, 121, 131, 135, 128, 118, 114, 124, 136, 118, 108, 107, 126, 125, 152, 130, 130, 132, 115, 126, 122, 152, 135, 120, 115, 125, 128, 118, 136, 136, 134, 110, 131, 138, 113, 121, 126, 122, 130, 121, 111, 137, 104, 119, 120, 113, 130, 117, 132, 120, 126, 125, 128, 115, 127, 123, 139, 129, 139, 115, 126, 119, 143, 142, 120, 117, 109, 131, 112, 116, 130, 138, 116, 121, 137, 131, 139, 137, 131, 116, 124, 114, 140, 124, 119, 128, 115, 126, 113, 113, 124, 121, 128, 117, 132, 128, 122, 115, 111, 121, 111, 121, 119, 106, 127, 137, 132, 142, 119, 121, 131, 112, 109, 118, 123, 118, 128, 118, 145, 117, 119, 119, 127, 133, 110, 136, 136, 136, 117, 113, 135, 148, 128, 138, 122, 119, 131, 121, 121, 135, 132, 127, 111, 113, 126, 117, 124, 122, 145, 123, 118, 126, 134, 116, 121, 116, 117, 124, 125, 137, 124, 133, 137, 129, 128, 107, 128, 140, 111, 126, 114, 132, 129, 133, 125, 111, 122, 117, 125, 119, 120, 133, 119, 125, 116, 132, 125, 127, 129, 139, 138, 115, 132, 142, 131, 116, 119, 119, 147, 118, 115, 120, 135, 135, 112, 125, 116, 129, 132, 128, 125, 140, 124, 123, 129, 147, 127, 131, 126, 111, 136, 106, 125, 142, 118, 141, 121, 128, 111, 130, 118, 122, 126, 115, 122, 136, 124, 141, 113, 135, 137, 115, 137, 138, 142, 133, 130, 141, 117, 120, 134, 140, 132, 137, 120, 135, 117, 122, 133, 132, 124, 129, 120, 134, 135, 124, 129, 124, 127, 127, 132, 115, 119, 119, 121, 131, 111, 113, 122, 137, 121, 129, 133, 132, 131, 129, 132, 125, 126, 118, 127, 126, 130, 120, 115, 121, 143, 133, 139, 132, 132, 128, 125, 127, 117, 128, 131, 114, 119, 124, 118, 120, 133, 144, 120, 136, 113, 132, 141, 129, 124, 130, 130, 116, 132, 121, 109, 143, 137, 114, 106, 119, 111, 120, 116, 121, 116, 138, 117, 126, 116, 134, 121, 125, 128, 125, 150, 123, 124, 132, 136, 125, 124, 121, 119, 124, 138, 127, 128, 124, 116, 129, 117, 121, 121, 126, 138, 127, 114, 127, 113, 118, 134, 136, 124, 124, 128, 133, 102, 113, 129, 131, 126, 131, 126, 127, 109, 122, 108, 133, 121, 116, 122, 125, 109, 123, 127, 125, 118, 119, 107, 131, 114, 126, 137, 129, 151, 100, 125, 118, 126, 126, 134, 124, 143, 111, 107, 146, 121, 134, 120, 128, 107, 134, 142, 126, 116, 119, 119, 115, 111, 126, 119, 113, 121, 123, 115, 127, 117, 153, 112, 116, 122, 105, 142, 136, 122, 132, 123, 128, 122, 135, 138, 124, 117, 127, 112, 137, 125, 111, 146, 114, 131, 144, 91, 133, 108, 129, 114, 136, 130, 107, 135, 132, 136, 133, 139, 128, 108, 106, 128, 126, 106, 120, 121, 136, 146, 116, 117, 120, 115, 141, 123, 111, 133, 125, 130, 135, 124, 104, 120, 131, 123, 119, 130, 122, 122, 131, 128, 116, 120, 117, 105, 128, 124, 114, 113, 129, 125, 118, 135, 131, 122, 108, 125, 113, 120, 130, 125, 129, 129, 139, 108, 125, 133, 128, 119, 121, 130, 130, 134, 119, 119, 151, 145, 126, 115, 115, 127, 121, 111, 128, 109, 135, 124, 111, 123, 137, 119, 130, 117, 124, 108, 115, 111, 129, 147, 114, 128, 120, 131, 116, 131, 125, 126, 120, 141, 114, 113, 136, 119, 106, 127, 126, 135, 125, 130, 115, 140, 128, 135, 139, 124, 124, 121, 111, 144, 128, 129, 107, 130, 120, 121, 136, 137, 141, 119, 116, 123, 117, 117, 123, 123, 122, 132, 122, 124, 133, 123, 112, 109, 125, 122, 112, 130, 120, 124, 114, 137, 111, 131, 124, 128, 112, 125, 118, 124, 109, 128, 120, 134, 115, 133, 118, 145, 144, 119, 130, 132, 116, 119, 101, 122, 134, 130, 137, 128, 148, 105, 121, 119, 112, 119, 121, 128, 105, 124, 139, 122, 137, 119, 127, 125, 129, 133, 121, 105, 133, 147, 124, 130, 150, 117, 126, 139, 111, 136, 114, 150, 143, 131, 119, 121, 97, 132, 118, 140, 135, 114, 124, 130, 133, 131, 149, 103, 112, 124, 138, 135, 142, 125, 118, 134, 124, 120, 114, 125, 116, 126, 150, 144, 142, 120, 121, 112, 117, 111, 113, 137, 122, 124, 133, 110, 129, 130, 133, 130, 122, 101, 146, 127, 143, 122, 110, 127, 116, 147, 101, 144, 125, 128, 119, 151, 134, 132, 126, 118, 119, 118, 110, 139, 136, 122, 134, 120, 123, 109, 133, 123, 120, 122, 141, 142, 121, 106, 132, 131, 120, 134, 124, 111, 116, 121, 140, 106, 130, 132, 125, 140, 122, 111, 120, 124, 138, 121, 104, 118, 119, 144, 135, 133, 128, 129, 129, 129, 125, 118, 127, 136, 117, 126, 126, 139, 125, 117, 104, 123, 117, 127, 114, 106, 118, 128, 155, 129, 129, 119, 122, 126, 125, 137, 113, 127, 135, 119, 123, 118, 136, 113, 108, 125, 135, 116, 130, 117, 133, 126, 125, 128, 125, 135, 142, 132, 118, 113, 117, 127, 128, 130, 117, 123, 139, 119, 127, 124, 143, 118, 131, 118, 126, 136, 152, 147, 128, 117, 128, 109, 129, 122, 115, 120, 135, 105, 126, 115, 132, 116, 129, 130, 122, 125, 123, 138, 129, 132, 115, 103, 121, 134, 119, 140, 116, 136, 140, 134, 127, 128, 129, 97, 150, 132, 117, 132, 121, 116, 132, 126, 125, 128, 131, 135, 119, 121, 115, 124, 114, 141, 121, 126, 117, 116, 136, 135, 125, 122, 141, 123, 148, 124, 145, 107, 115, 122, 133, 131, 130, 125, 109, 129, 129, 110, 152, 128, 140, 135, 119, 116, 119, 127, 137, 124, 144, 122, 117, 124, 122, 126, 114, 135, 121, 135, 127, 124, 121, 136, 122, 126, 130, 126, 118, 138, 136, 125, 122, 133, 136, 126, 117, 139, 141, 121, 114, 130, 131, 129, 120, 112, 146, 135, 123, 133, 122, 153, 120, 115, 110, 130, 120, 116, 118, 130, 123, 125, 112, 128, 118, 126, 141, 126, 126, 128, 137, 131, 124, 131, 128, 115, 118, 147, 147, 109, 139, 91, 123, 135, 124, 118, 127, 135, 143, 115, 131, 136, 120, 118, 111, 154, 127, 125, 126, 142, 134, 136, 131, 143, 114, 111, 118, 111, 121, 121, 124, 119, 146, 122, 121, 115, 121, 133, 139, 141, 127, 130, 136, 135, 140, 134, 132, 107, 104, 127, 144, 123, 139, 116, 100, 123, 127, 122, 129, 135, 124, 121, 107, 123, 114, 131, 126, 119, 137, 125, 140, 116, 136, 119, 126, 142, 136, 131, 124, 117, 117, 125, 116, 137, 142, 141, 112, 123, 126, 135, 107, 122, 144, 121, 130, 139, 139, 126, 134, 116, 121, 120, 126, 128, 122, 136, 135, 118, 133, 128, 126, 102, 130, 93, 123, 135, 128, 123, 119, 135, 111, 134, 122, 139, 112, 135, 110, 143, 121, 138, 122, 115, 117, 136, 128, 137, 127, 138, 129, 139, 126, 110, 119, 115, 117, 121, 130, 119, 116, 124, 135, 123, 106, 122, 112, 133, 141, 113, 120, 114, 86, 123, 125, 116, 142, 118, 122, 117, 126, 120, 122, 117, 122, 122, 133, 115, 122, 138, 121, 127, 114, 119, 142, 123, 108, 150, 110, 141, 124, 112, 114, 116, 114, 115, 107, 114, 123, 137, 132, 150, 121, 132, 148, 113, 133, 123, 128, 139, 146, 129, 122, 115, 128, 130, 140, 119, 135, 129, 129, 123, 124, 129, 114, 129, 124, 112, 138, 112, 137, 136, 117, 121, 118, 129, 122, 131, 112, 138, 130, 123, 123, 152, 126, 143, 114, 131, 146, 125, 124, 102, 119, 129, 139, 123, 127, 128, 119, 148, 158, 122, 117, 128, 144, 123, 127, 144, 106, 125, 114, 122, 111, 121, 105, 123, 110, 130, 128, 119, 129, 123, 119, 131, 100, 121, 120, 127, 140, 129, 143, 130, 127, 132, 131, 128, 138, 139, 132, 124, 110, 126, 123, 105, 122, 127, 134, 120, 141, 116, 141, 114, 128, 115, 109, 125, 117, 125, 136, 115, 147, 147, 135, 119, 117, 137, 117, 133, 129, 118, 136, 130, 127, 117, 125, 126, 119, 136, 127, 129, 126, 130, 133, 131, 114, 121, 142, 108, 126, 127, 128, 116, 125, 140, 122, 138, 110, 115, 150, 126, 126, 139, 121, 113, 142, 140, 113, 120, 136, 123, 125, 113, 116, 129, 130, 134, 131, 110, 97, 131, 103, 121, 129, 125, 139, 124, 112, 143, 119, 132, 115, 119, 136, 139, 135, 127, 106, 123, 124, 136, 115, 129, 124, 141, 121, 120, 126, 109, 161, 138, 128, 132, 122, 137, 137, 119, 116, 108, 125, 138, 139, 118, 115, 134, 149, 120, 142, 114, 122, 116, 129, 131, 120, 123, 136, 127, 123, 113, 136, 107, 124, 140, 119, 132, 123, 124, 125, 147, 114, 127, 123, 127, 108, 138, 125, 129, 125, 112, 120, 120, 111, 147, 152, 123, 134, 124, 117, 114, 121, 141, 125, 115, 126, 105, 137, 123, 118, 108, 118, 121, 123, 122, 116, 131, 118, 124, 133, 122, 130, 132, 124, 121, 126, 136, 115, 133, 116, 116, 120, 133, 120, 121, 124, 124, 132, 118, 129, 126, 108, 133, 138, 128, 138, 118, 127, 115, 125, 116, 106, 132, 115, 121, 131, 103, 120, 124, 130, 117, 126, 139, 124, 114, 114, 129, 120, 119, 127, 123, 130, 134, 130, 118, 116, 103, 125, 122, 127, 119, 123, 126, 136, 119, 116, 114, 115, 129, 123, 135, 131, 121, 124, 127, 125, 129, 136, 123, 111, 122, 123, 127, 122, 130, 126, 138, 120, 118, 109, 132, 101, 110, 123, 112, 137, 131, 122, 117, 130, 124, 127, 131, 125, 128, 119, 140, 112, 127, 123, 123, 119, 123, 121, 116, 117, 118, 107, 138, 112, 128, 129, 133, 128, 130, 115, 128, 114, 147, 122, 137, 109, 140, 142, 135, 143, 134, 122, 124, 133, 111, 112, 134, 114, 117, 112, 119, 132, 119, 110, 114, 132, 147, 129, 131, 124, 111, 110, 109, 127, 123, 139, 124, 142, 127, 135, 112, 121, 108, 145, 123, 109, 114, 133, 130, 131, 124, 118, 139, 129, 124, 135, 133, 124, 119, 122, 132, 116, 133, 124, 121, 151, 107, 114, 129, 136, 126, 135, 125, 124, 138, 121, 134, 114, 124, 131, 126, 141, 129, 127, 128, 128, 130, 115, 133, 139, 120, 114, 112, 129, 117, 128, 120, 133, 123, 139, 128, 113, 116, 124, 124, 144, 133, 136, 145, 120, 115, 123, 122, 119, 141, 124, 117, 115, 124, 109, 108, 123, 123, 126, 125, 149, 118, 125, 116, 122, 131, 118, 107, 133, 140, 131, 124, 137, 114, 116, 127, 108, 130, 119, 119, 132, 111, 113, 138, 114, 120, 129, 123, 125, 137, 129, 137, 137, 127, 119, 123, 121, 114, 123, 136, 134, 122, 127, 123, 132, 122, 107, 141, 102, 112, 124, 118, 117, 127, 111, 125, 126, 123, 140, 122, 126, 124, 125, 110, 128, 135, 142, 125, 143, 147, 130, 129, 133, 121, 110, 126, 123, 128, 119, 121, 132, 128, 134, 130, 132, 123, 114, 139, 123, 114, 126, 140, 125, 105, 129, 134, 129, 115, 130, 120, 123, 118, 132, 116, 122, 116, 137, 131, 114, 125, 114, 120, 131, 120, 132, 104, 143, 125, 107, 122, 98, 120, 146, 123, 128, 124, 120, 113, 127, 114, 120, 137, 141, 133, 112, 131, 120, 133, 135, 138, 126, 120, 119, 126, 134, 143, 128, 124, 112, 111, 123, 118, 106, 124, 112, 120, 120, 113, 145, 130, 124, 118, 141, 117, 115, 111, 144, 151, 126, 123, 136, 123, 136, 140, 149, 116, 126, 112, 121, 130, 132, 115, 141, 139, 119, 121, 134, 143, 132, 130, 137, 122, 121, 110, 125, 123, 126, 136, 128, 129, 118, 125, 121, 128, 143, 128, 160, 122, 132, 122, 135, 125, 115, 136, 136, 125, 132, 132, 126, 125, 100, 113, 97, 126, 124, 125, 127, 130, 119, 122, 138, 120, 130, 123, 118, 122, 119, 117, 116, 122, 131, 119, 109, 136, 137, 133, 134, 125, 125, 124, 129, 113, 135, 152, 116, 135, 137, 115, 120, 126, 116, 134, 104, 123, 129, 127, 127, 118, 140, 129, 133, 133, 113, 133, 128, 142, 121, 126, 113, 135, 140, 127, 114, 120, 146, 125, 125, 111, 127, 140, 122, 118, 132, 131, 121, 131, 124, 132, 126, 125, 107, 122, 135, 125, 140, 111, 123, 136, 122, 121, 134, 125, 129, 126, 116, 123, 125, 131, 123, 114, 121, 112, 122, 133, 122, 121, 131, 130, 121, 127, 118, 131, 143, 143, 108, 131, 150, 131, 114, 119, 127, 131, 129, 121, 125, 138, 123, 142, 124, 133, 113, 126, 119, 145, 126, 124, 108, 145, 130, 116, 131, 121, 118, 131, 133, 135, 119, 139, 141, 127, 115, 136, 126, 127, 136, 118, 94, 125, 134, 122, 121, 125, 134, 136, 120, 131, 127, 120, 128, 127, 139, 123, 135, 147, 109, 135, 117, 153, 123, 117, 117, 129, 143, 118, 129, 116, 126, 123, 120, 122, 143, 120, 124, 114, 134, 143, 124, 127, 129, 118, 135, 125, 144, 127, 110, 129, 109, 121, 126, 138, 125, 105, 129, 128, 120, 121, 135, 113, 132, 128, 122, 128, 116, 123, 133, 138, 114, 130, 138, 120, 118, 123, 125, 120, 118, 125, 123, 115, 138, 134, 134, 129, 142, 117, 134, 138, 125, 127, 108, 112, 126, 127, 129, 128, 109, 127, 110, 131, 130, 155, 118, 123, 113, 136, 147, 128, 131, 122, 116, 121, 118, 123, 138, 128, 119, 116, 124, 131, 126, 128, 117, 116, 144, 118, 121, 132, 119, 132, 114, 120, 129, 150, 115, 125, 104, 121, 115, 129, 113, 118, 125, 124, 127, 143, 103, 126, 116, 137, 124, 119, 142, 125, 123, 115, 130, 115, 124, 152, 123, 147, 126, 124, 122, 129, 135, 124, 146, 138, 121, 139, 150, 126, 123, 145, 133, 140, 145, 126, 127, 130, 126, 129, 122, 135, 129, 127, 119, 114, 139, 128, 119, 141, 132, 153, 117, 130, 131, 138, 123, 101, 107, 117, 126, 124, 126, 131, 129, 141, 134, 127, 110, 131, 122, 121, 129, 106, 133, 122, 120, 128, 119, 110, 122, 127, 126, 142, 124, 122, 136, 119, 127, 139, 129, 112, 130, 133, 130, 130, 133, 108, 126, 117, 115, 129, 107, 113, 140, 123, 129, 127, 106, 113, 121, 130, 110, 145, 127, 131, 118, 127, 114, 119, 123, 125, 127, 132, 129, 142, 127, 130, 109, 115, 117, 128, 119, 127, 135, 118, 120, 136, 115, 130, 118, 137, 130, 114, 137, 139, 128, 116, 141, 135, 133, 138, 131, 106, 130, 138, 132, 116, 130, 120, 116, 129, 133, 122, 137, 118, 140, 118, 127, 118, 137, 136, 123, 113, 149, 126, 116, 137, 129, 117, 131, 140, 119, 131, 109, 113, 138, 128, 131, 128, 117, 120, 140, 114, 118, 130, 160, 138, 133, 130, 139, 134, 110, 126, 111, 131, 116, 124, 134, 121, 149, 132, 126, 123, 135, 128, 117, 132, 120, 140, 120, 113, 133, 113, 133, 144, 108, 120, 125, 135, 112, 130, 132, 123, 119, 140, 133, 117, 115, 136, 128, 135, 135, 123, 130, 129, 137, 135, 134, 114, 118, 133, 131, 137, 112, 131, 127, 135, 112, 122, 114, 132, 115, 125, 125, 132, 116, 123, 125, 118, 138, 125, 122, 127, 107, 128, 149, 109, 126, 122, 112, 112, 131, 141, 110, 132, 131, 113, 105, 140, 107, 140, 124, 134, 120, 140, 127, 136, 126, 135, 124, 113, 115, 127, 127, 148, 126, 129, 108, 128, 125, 127, 140, 116, 127, 134, 124, 121, 111, 107, 127, 130, 117, 121, 122, 127, 133, 119, 131, 119, 135, 101, 130, 133, 126, 104, 126, 99, 122, 105, 127, 133, 120, 124, 113, 130, 124, 125, 124, 116, 124, 118, 138, 121, 128, 122, 112, 128, 130, 116, 117, 132, 125, 104, 127, 120, 115, 121, 110, 124, 138, 138, 118, 119, 108, 124, 111, 123, 135, 114, 161, 133, 134, 114, 89, 116, 120, 120, 106, 119, 138, 123, 103, 125, 114, 94, 125, 108, 120, 120, 147, 136, 131, 126, 126, 124, 122, 139, 122, 111, 128, 136, 119, 119, 124, 118, 157, 118, 118, 128, 113, 107, 126, 122, 136, 113, 152, 138, 122, 129, 117, 141, 118, 119, 126, 116, 102, 126, 127, 142, 133, 111, 154, 122, 117, 125, 121, 126, 107, 115, 117, 117, 117, 129, 131, 149, 118, 126, 149, 118, 117, 127, 128, 139, 116, 124, 135, 136, 119, 127, 104, 122, 128, 109, 120, 148, 121, 117, 140, 125, 125, 134, 116, 100, 127, 106, 106, 121, 127, 115, 135, 135, 126, 131, 133, 139, 118, 136, 113, 136, 138, 119, 126, 113, 125, 126, 122, 124, 121, 108, 146, 112, 139, 144, 146, 126, 128, 116, 137, 114, 139, 125, 107, 144, 119, 133, 141, 100, 122, 137, 133, 129, 129, 140, 127, 124, 123, 133, 118, 136, 120, 123, 127, 141, 126, 120, 122, 114, 100, 121, 118, 122, 125, 126, 126, 132, 127, 141, 110, 118, 137, 117, 115, 120, 115, 117, 120, 108, 134, 125, 132, 137, 120, 118, 117, 120, 122, 131, 135, 117, 126, 129, 143, 121, 136, 126, 128, 117, 125, 124, 120, 129, 127, 129, 148, 122, 121, 133, 106, 160, 111, 126, 120, 111, 123, 120, 139, 114, 124, 142, 123, 126, 119, 123, 119, 116, 133, 134, 131, 139, 130, 127, 138, 118, 139, 125, 143, 124, 126, 118, 122, 122, 114, 125, 126, 125, 136, 109, 126, 128, 137, 134, 130, 112, 110, 132, 127, 117, 129, 109, 119, 125, 126, 139, 118, 150, 131, 123, 131, 125, 128, 127, 131, 125, 138, 123, 129, 123, 126, 137, 104, 120, 124, 133, 129, 131, 138, 114, 117, 126, 112, 152, 121, 121, 134, 143, 103, 132, 127, 120, 120, 121, 99, 116, 128, 131, 114, 129, 102, 146, 141, 128, 118, 113, 133, 116, 113, 140, 134, 111, 145, 121, 114, 122, 124, 146, 113, 131, 134, 131, 118, 141, 130, 144, 133, 131, 129, 118, 119, 131, 116, 117, 128, 122, 142, 125, 133, 109, 127, 137, 116, 127, 129, 143, 125, 116, 123, 103, 108, 131, 150, 139, 129, 133, 136, 145, 110, 132, 123, 130, 111, 127, 131, 133, 145, 136, 122, 135, 113, 121, 128, 129, 120, 148, 136, 133, 137, 133, 130, 118, 129, 134, 140, 145, 134, 121, 145, 141, 140, 133, 131, 127, 118, 128, 106, 125, 124, 122, 134, 149, 115, 123, 123, 142, 126, 122, 117, 143, 124, 124, 125, 137, 126, 118, 117, 125, 102, 130, 139, 127, 141, 123, 110, 132, 112, 136, 109, 153, 121, 132, 126, 124, 136, 125, 121, 133, 120, 127, 109, 116, 134, 127, 135, 133, 130, 129, 117, 119, 111, 126, 117, 108, 128, 117, 105, 133, 117, 126, 139, 148, 139, 119, 129, 109, 140, 132, 134, 115, 121, 120, 123, 137, 102, 110, 111, 145, 121, 138, 115, 138, 125, 132, 104, 131, 122, 123, 138, 116, 110, 119, 117, 105, 131, 122, 125, 138, 131, 122, 126, 135, 118, 133, 112, 132, 131, 131, 96, 105, 138, 135, 112, 118, 120, 137, 109, 142, 147, 112, 131, 135, 133, 168, 120, 112, 127, 128, 140, 134, 118, 115, 134, 105, 139, 122, 124, 119, 129, 124, 118, 119, 124, 130, 128, 122, 156, 137, 128, 129, 122, 128, 133, 129, 124, 125, 114, 122, 128, 137, 131, 121, 119, 128, 129, 134, 136, 122, 100, 112, 120, 129, 145, 128, 123, 132, 131, 127, 120, 118, 113, 130, 119, 135, 119, 129, 136, 117, 143, 137, 108, 133, 129, 112, 116, 123, 137, 120, 124, 133, 127, 103, 130, 115, 122, 132, 120, 162, 128, 124, 122, 120, 130, 153, 135, 121, 113, 131, 130, 115, 126, 124, 134, 145, 123, 134, 120, 126, 131, 140, 117, 104, 114, 115, 111, 125, 138, 127, 101, 125, 131, 115, 126, 123, 129, 129, 138, 123, 133, 134, 126, 113, 134, 142, 134, 131, 131, 128, 135, 116, 121, 140, 105, 116, 125, 103, 117, 112, 120, 116, 109, 138, 129, 116, 128, 128, 131, 132, 131, 151, 105, 131, 106, 127, 128, 124, 147, 134, 127, 143, 137, 135, 144, 109, 136, 120, 115, 117, 144, 150, 120, 117, 131, 123, 121, 115, 129, 123, 102, 132, 137, 130, 140, 122, 124, 119, 128, 132, 114, 120, 134, 122, 128, 108, 132, 140, 136, 143, 119, 123, 135, 139, 129, 116, 134, 127, 120, 107, 124, 141, 113, 114, 134, 133, 112, 132, 120, 122, 138, 113, 121, 134, 117, 130, 129, 139, 114, 116, 117, 121, 118, 132, 111, 130, 123, 127, 131, 143, 117, 134, 121, 144, 132, 130, 133, 106, 112, 136, 123, 111, 133, 125, 141, 119, 127, 116, 127, 117, 114, 102, 121, 137, 138, 149, 133, 121, 120, 147, 134, 118, 111, 114, 115, 106, 116, 134, 123, 127, 126, 129, 146, 133, 130, 113, 129, 135, 133, 128, 135, 123, 133, 123, 127, 129, 118, 126, 129, 116, 122, 136, 118, 127, 131, 141, 118, 115, 129, 120, 116, 129, 105, 133, 147, 113, 96, 130, 126, 111, 136, 141, 124, 117, 120, 131, 109, 119, 134, 120, 119, 124, 130, 127, 129, 137, 119, 137, 129, 117, 120, 128, 125, 117, 117, 122, 134, 133, 141, 139, 130, 128, 122, 131, 132, 144, 109, 115, 127, 123, 119, 136, 139, 121, 133, 129, 126, 136, 109, 95, 111, 127, 144, 117, 129, 128, 134, 125, 121, 127, 133, 131, 125, 107, 142, 130, 111, 140, 115, 110, 121, 151, 117, 133, 135, 137, 128, 130, 122, 122, 142, 121, 131, 121, 121, 111, 120, 132, 110, 116, 127, 123, 127, 109, 120, 124, 133, 112, 128, 117, 121, 121, 116, 118, 141, 123, 124, 130, 140, 101, 129, 123, 119, 117, 124, 111, 106, 139, 127, 137, 139, 117, 128, 132, 125, 109, 121, 136, 138, 134, 108, 125, 137, 123, 128, 135, 113, 122, 127, 130, 122, 128, 131, 139, 141, 141, 123, 133, 110, 117, 129, 121, 132, 114, 122, 108, 128, 152, 122, 118, 95, 124, 128, 132, 115, 118, 136, 121, 120, 111, 130, 116, 112, 122, 129, 125, 131, 117, 116, 130, 126, 121, 124, 123, 114, 133, 104, 125, 122, 120, 121, 131, 134, 120, 102, 113, 129, 137, 101, 122, 134, 80, 133, 120, 122, 125, 116, 121, 120, 126, 126, 126, 123, 122, 130, 112, 123, 129, 121, 144, 127, 124, 128, 132, 118, 132, 105, 144, 127, 121, 123, 119, 122, 121, 123, 141, 135, 96, 139, 125, 130, 132, 112, 134, 126, 131, 131, 141, 123, 131, 127, 133, 136, 141, 117, 131, 140, 126, 112, 135, 142, 127, 129, 117, 104, 118, 130, 113, 118, 112, 109, 121, 115, 124, 125, 126, 120, 133, 111, 130, 125, 103, 128, 129, 141, 135, 127, 137, 130, 126, 133, 112, 119, 126, 128, 136, 121, 137, 106, 126, 127, 123, 163, 133, 119, 131, 146, 130, 101, 117, 142, 141, 108, 116, 127, 108, 134, 102, 122, 128, 126, 130, 124, 123, 130, 131, 141, 136, 152, 130, 112, 121, 124, 109, 119, 106, 116, 119, 119, 129, 111, 142, 127, 118, 147, 121, 118, 128, 129, 133, 121, 133, 121, 128, 134, 131, 146, 141, 120, 124, 118, 135, 124, 120, 131, 119, 122, 122, 116, 108, 123, 135, 120, 114, 99, 114, 112, 117, 135, 153, 121, 124, 133, 129, 131, 121, 87, 110, 110, 135, 115, 130, 139, 126, 127, 132, 115, 129, 125, 143, 125, 141, 98, 123, 106, 119, 110, 119, 122, 135, 109, 118, 106, 119, 135, 127, 119, 141, 129, 125, 122, 130, 114, 132, 124, 135, 97, 123, 134, 129, 139, 122, 120, 115, 126, 154, 121, 108, 141, 130, 116, 119, 128, 135, 133, 122, 136, 128, 131, 121, 123, 122, 132, 119, 137, 140, 120, 137, 99, 139, 129, 113, 130, 127, 144, 124, 135, 117, 121, 108, 129, 122, 121, 129, 126, 150, 144, 125, 115, 144, 125, 130, 113, 128, 131, 122, 136, 109, 109, 122, 140, 118, 107, 122, 116, 126, 122, 137, 126, 128, 132, 106, 100, 125, 108, 138, 107, 133, 122, 97, 145, 113, 137, 128, 124, 129, 134, 133, 145, 115, 120, 123, 115, 112, 137, 134, 130, 123, 136, 132, 133, 117, 137, 132, 127, 136, 148, 122, 144, 139, 128, 113, 116, 127, 102, 123, 131, 125, 122, 120, 128, 134, 126, 126, 118, 129, 125, 127, 129, 147, 136, 137, 121, 105, 126, 116, 134, 158, 123, 105, 119, 124, 119, 130, 102, 127, 122, 124, 148, 112, 144, 115, 122, 134, 134, 122, 135, 131, 121, 117, 117, 115, 120, 131, 112, 130, 119, 113, 121, 115, 128, 122, 126, 110, 121, 125, 140, 113, 129, 115, 131, 110, 134, 122, 123, 124, 118, 129, 142, 125, 133, 120, 144, 119, 130, 128, 122, 113, 132, 123, 117, 134, 120, 110, 116, 134, 111, 129, 135, 133, 91, 112, 131, 126, 118, 137, 126, 128, 126, 122, 150, 117, 103, 128, 125, 117, 123, 105, 112, 140, 123, 144, 123, 116, 114, 126, 107, 126, 131, 143, 121, 128, 123, 121, 132, 131, 136, 136, 129, 121, 120, 118, 131, 116, 127, 102, 128, 118, 129, 127, 122, 136, 138, 134, 122, 142, 135, 142, 126, 119, 113, 110, 129, 115, 141, 134, 121, 127, 120, 122, 131, 121, 128, 127, 106, 139, 126, 125, 127, 113, 123, 127, 141, 141, 127, 121, 137, 110, 139, 117, 123, 139, 128, 130, 116, 128, 117, 124, 129, 123, 111, 124, 117, 126, 113, 119, 121, 136, 124, 116, 130, 122, 144, 128, 124, 121, 133, 112, 108, 139, 133, 129, 133, 127, 130, 122, 131, 142, 112, 131, 136, 144, 102, 119, 109, 129, 139, 122, 136, 126, 134, 135, 115, 116, 129, 127, 152, 119, 121, 119, 129, 134, 115, 105, 133, 125, 118, 134, 125, 139, 131, 145, 124, 138, 136, 131, 116, 120, 124, 135, 132, 138, 134, 125, 135, 141, 122, 117, 114, 125, 115, 122, 118, 126, 122, 118, 126, 125, 118, 134, 135, 133, 150, 105, 143, 129, 134, 115, 124, 129, 132, 130, 121, 119, 107, 114, 126, 123, 142, 135, 111, 133, 133, 139, 119, 134, 124, 127, 123, 110, 124, 140, 119, 143, 157, 137, 129, 130, 145, 141, 111, 123, 118, 105, 135, 122, 116, 144, 116, 119, 132, 116, 129, 130, 123, 129, 128, 146, 126, 130, 130, 124, 128, 122, 117, 110, 118, 138, 129, 115, 128, 127, 106, 110, 136, 133, 125, 142, 121, 123, 124, 111, 128, 129, 103, 131, 107, 125, 117, 145, 117, 125, 120, 131, 134, 111, 137, 121, 136, 127, 136, 120, 122, 121, 119, 136, 121, 127, 124, 113, 130, 127, 119, 125, 135, 108, 126, 124, 132, 112, 136, 115, 101, 119, 116, 136, 131, 139, 132, 133, 121, 111, 136, 127, 146, 138, 106, 105, 133, 122, 115, 135, 130, 122, 147, 129, 144, 116, 125, 109, 140, 122, 134, 105, 134, 129, 128, 125, 139, 118, 128, 117, 123, 134, 127, 135, 124, 133, 116, 118, 118, 129, 130, 119, 139, 126, 142, 121, 111, 118, 135, 145, 118, 121, 123, 120, 114, 129, 110, 136, 118, 97, 155, 116, 144, 127, 120, 139, 114, 124, 119, 108, 150, 124, 118, 128, 125, 117, 131, 110, 130, 118, 131, 152, 127, 137, 142, 117, 123, 129, 116, 132, 128, 127, 129, 123, 141, 122, 128, 133, 117, 130, 144, 128, 134, 129, 125, 129, 129, 138, 121, 124, 113, 130, 131, 130, 130, 134, 111, 125, 133, 117, 124, 121, 133, 123, 147, 144, 117, 149, 130, 130, 127, 138, 147, 123, 132, 110, 126, 126, 129, 126, 127, 103, 123, 116, 139, 110, 121, 105, 140, 122, 116, 123, 122, 129, 116, 120, 141, 128, 115, 134, 146, 143, 135, 125, 121, 109, 123, 119, 120, 140, 142, 120, 134, 124, 122, 136, 131, 125, 122, 131, 127, 118, 113, 133, 131, 95, 127, 124, 121, 132, 113, 140, 132, 144, 97, 136, 125, 113, 125, 147, 126, 115, 122, 103, 132, 132, 118, 118, 124, 136, 141, 116, 131, 128, 121, 120, 128, 127, 130, 107, 144, 129, 117, 127, 140, 131, 122, 121, 103, 116, 137, 128, 137, 143, 113, 119, 157, 128, 128, 123, 127, 116, 117, 129, 138, 135, 131, 110, 144, 123, 122, 120, 126, 134, 123, 122, 123, 118, 122, 109, 104, 125, 129, 153, 121, 117, 110, 123, 123, 125, 125, 123, 127, 109, 138, 119, 126, 117, 128, 124, 119, 125, 126, 133, 124, 131, 125, 125, 124, 134, 122, 131, 117, 131, 126, 123, 116, 129, 157, 145, 126, 125, 113, 115, 117, 136, 116, 112, 136, 139, 118, 126, 125, 145, 128, 138, 110, 122, 133, 137, 117, 125, 140, 131, 108, 117, 129, 123, 127, 108, 109, 121, 120, 132, 126, 119, 117, 109, 127, 115, 141, 131, 123, 121, 121, 117, 119, 146, 126, 109, 141, 137, 137, 123, 151, 120, 107, 121, 145, 116, 137, 132, 141, 109, 135, 114, 133, 122, 122, 108, 124, 126, 117, 127, 135, 142, 109, 133, 130, 112, 136, 134, 128, 114, 110, 127, 123, 123, 132, 116, 143, 129, 133, 110, 126, 138, 138, 140, 122, 129, 117, 123, 138, 156, 133, 117, 133, 114, 123, 129, 121, 144, 119, 109, 149, 113, 125, 111, 123, 136, 121, 112, 134, 135, 125, 131, 123, 130, 139, 123, 116, 130, 125, 134, 119, 127, 142, 130, 133, 112, 125, 117, 124, 124, 126, 129, 121, 121, 128, 132, 143, 115, 148, 120, 122, 115, 141, 124, 118, 131, 121, 124, 122, 121, 119, 130, 126, 130, 127, 127, 110, 128, 123, 123, 127, 121, 117, 128, 129, 128, 127, 101, 131, 121, 127, 116, 111, 111, 122, 138, 103, 110, 133, 130, 131, 116, 124, 152, 134, 142, 129, 133, 135, 124, 119, 123, 120, 114, 148, 126, 101, 121, 133, 138, 145, 116, 126, 112, 128, 120, 122, 128, 123, 121, 138, 151, 120, 125, 114, 109, 133, 139, 145, 137, 119, 123, 124, 129, 132, 132, 123, 131, 131, 134, 122, 122, 122, 134, 111, 129, 136, 137, 115, 119, 113, 124, 108, 131, 133, 127, 138, 130, 113, 111, 137, 123, 134, 132, 132, 125, 144, 128, 129, 122, 123, 132, 123, 138, 131, 107, 137, 127, 124, 118, 113, 142, 158, 133, 131, 149, 128, 137, 116, 145, 115, 139, 118, 113, 103, 125, 109, 120, 127, 126, 124, 109, 120, 129, 136, 134, 115, 108, 122, 125, 114, 111, 112, 126, 121, 127, 130, 124, 124, 130, 129, 128, 130, 110, 116, 118, 137, 119, 118, 118, 134, 121, 122, 120, 131, 115, 132, 109, 122, 134, 125, 121, 117, 118, 117, 115, 127, 112, 119, 128, 129, 127, 115, 116, 118, 135, 120, 133, 122, 126, 112, 106, 121, 119, 137, 105, 125, 129, 111, 133, 113, 114, 119, 110, 118, 131, 123, 115, 129, 134, 139, 126, 125, 123, 114, 124, 119, 127, 132, 149, 139, 112, 122, 120, 121, 136, 142, 129, 111, 125, 139, 110, 149, 126, 140, 111, 135, 114, 114, 132, 111, 131, 128, 117, 133, 128, 136, 128, 91, 112, 124, 121, 123, 124, 138, 129, 122, 136, 129, 133, 125, 115, 133, 131, 117, 123, 129, 118, 116, 127, 121, 118, 115, 123, 138, 136, 132, 118, 146, 113, 136, 128, 114, 111, 127, 126, 108, 116, 107, 116, 115, 125, 86, 121, 113, 124, 118, 131, 119, 105, 134, 134, 136, 148, 135, 130, 117, 109, 154, 127, 123, 135, 128, 119, 134, 129, 121, 129, 110, 128, 142, 135, 121, 108, 118, 140, 144, 123, 126, 136, 123, 118, 130, 136, 114, 134, 115, 112, 136, 135, 113, 135, 116, 116, 105, 127, 125, 123, 143, 97, 139, 124, 123, 123, 115, 107, 116, 117, 111, 118, 111, 135, 138, 116, 119, 120, 132, 112, 109, 126, 127, 126, 118, 139, 114, 119, 124, 119, 122, 122, 127, 112, 132, 112, 132, 136, 135, 135, 137, 117, 148, 139, 121, 124, 144, 127, 131, 125, 135, 138, 143, 121, 122, 122, 119, 145, 114, 140, 120, 130, 134, 141, 112, 122, 115, 134, 129, 108, 118, 112, 115, 122, 143, 118, 110, 135, 121, 95, 120, 126, 135, 116, 112, 136, 127, 135, 122, 124, 126, 121, 144, 136, 108, 146, 145, 151, 120, 126, 129, 125, 130, 121, 121, 128, 124, 107, 114, 127, 117, 140, 141, 126, 152, 135, 122, 113, 130, 125, 114, 126, 119, 146, 107, 116, 144, 122, 132, 118, 129, 95, 141, 132, 139, 110, 136, 134, 103, 114, 100, 125, 126, 119, 116, 134, 132, 122, 132, 120, 135, 106, 127, 118, 103, 144, 122, 125, 117, 117, 120, 123, 132, 133, 140, 119, 130, 154, 111, 142, 125, 113, 113, 113, 116, 120, 152, 127, 111, 134, 139, 133, 119, 119, 109, 129, 133, 133, 142, 130, 112, 134, 125, 131, 146, 109, 118, 133, 117, 133, 119, 136, 107, 118, 143, 106, 139, 141, 114, 134, 145, 116, 121, 132, 116, 144, 128, 126, 122, 111, 117, 115, 142, 114, 132, 104, 125, 127, 126, 128, 119, 139, 139, 143, 111, 117, 119, 118, 115, 142, 126, 131, 124, 118, 132, 131, 108, 136, 127, 129, 126, 104, 106, 130, 133, 130, 101, 130, 124, 116, 128, 136, 126, 139, 124, 129, 120, 138, 130, 113, 116, 129, 131, 132, 114, 125, 118, 123, 117, 120, 107, 117, 115, 104, 124, 120, 117, 138, 118, 142, 154, 126, 116, 131, 124, 134, 131, 126, 125, 117, 124, 119, 130, 112, 113, 136, 132, 126, 128, 133, 128, 126, 108, 135, 138, 125, 116, 120, 108, 127, 129, 124, 131, 97, 130, 121, 143, 135, 106, 130, 110, 131, 135, 108, 122, 120, 149, 104, 129, 124, 134, 130, 113, 132, 121, 146, 123, 115, 135, 139, 119, 126, 131, 111, 139, 133, 124, 119, 134, 127, 121, 126, 133, 103, 110, 127, 131, 145, 125, 137, 137, 150, 115, 117, 141, 129, 112, 113, 120, 113, 116, 128, 117, 132, 125, 105, 121, 129, 138, 129, 146, 118, 118, 126, 127, 118, 128, 121, 116, 139, 124, 97, 126, 137, 118, 115, 129, 127, 119, 141, 128, 140, 102, 146, 120, 129, 115, 117, 144, 126, 113, 113, 141, 122, 132, 134, 127, 117, 129, 117, 138, 124, 116, 131, 140, 115, 148, 124, 171, 112, 123, 117, 129, 119, 136, 133, 123, 134, 124, 134, 114, 110, 115, 160, 132, 125, 134, 136, 112, 132, 122, 139, 117, 127, 130, 140, 120, 125, 121, 114, 124, 133, 110, 126, 142, 122, 115, 116, 108, 125, 119, 123, 127, 138, 101, 112, 131, 131, 128, 126, 116, 135, 125, 157, 142, 128, 124, 139, 127, 114, 131, 149, 129, 132, 112, 113, 127, 125, 132, 118, 116, 149, 143, 141, 106, 123, 131, 122, 140, 130, 147, 134, 123, 128, 120, 129, 134, 134, 126, 118, 115, 112, 152, 110, 110, 110, 107, 114, 104, 121, 111, 113, 110, 130, 120, 151, 121, 133, 122, 119, 120, 124, 119, 123, 133, 115, 102, 146, 126, 131, 125, 133, 129, 125, 130, 131, 116, 118, 135, 142, 143, 127, 119, 127, 127, 145, 125, 151, 130, 133, 123, 112, 125, 118, 126, 123, 126, 136, 126, 117, 109, 122, 143, 128, 124, 156, 102, 134, 141, 127, 124, 99, 126, 133, 113, 123, 93, 102, 124, 151, 132, 124, 130, 127, 115, 135, 133, 132, 128, 138, 106, 127, 126, 105, 122, 126, 144, 133, 130, 129, 127, 124, 116, 125, 118, 140, 135, 116, 112, 112, 133, 123, 128, 121, 116, 131, 131, 114, 122, 119, 144, 112, 123, 130, 113, 128, 128, 97, 113, 116, 131, 133, 133, 121, 124, 134, 113, 135, 97, 126, 127, 124, 140, 130, 115, 116, 131, 123, 128, 135, 123, 140, 133, 122, 124, 133, 111, 129, 127, 123, 120, 114, 133, 115, 124, 125, 108, 123, 121, 124, 132, 128, 131, 121, 117, 143, 118, 131, 131, 132, 118, 115, 122, 143, 129, 120, 112, 108, 141, 121, 136, 137, 139, 131, 120, 108, 114, 134, 129, 126, 119, 118, 111, 124, 142, 125, 117, 146, 146, 121, 134, 132, 102, 111, 111, 146, 119, 115, 133, 108, 130, 142, 108, 131, 152, 112, 125, 122, 135, 116, 133, 124, 117, 124, 134, 127, 138, 131, 121, 122, 141, 130, 119, 120, 119, 128, 123, 125, 121, 118, 144, 119, 143, 113, 127, 127, 129, 121, 115, 100, 120, 121, 131, 127, 120, 124, 126, 121, 121, 150, 99, 158, 128, 144, 117, 108, 103, 123, 117, 141, 128, 119, 130, 134, 141, 120, 120, 106, 131, 115, 121, 108, 149, 122, 137, 135, 117, 102, 126, 128, 130, 106, 102, 126, 129, 110, 102, 114, 140, 109, 145, 134, 128, 130, 123, 107, 151, 126, 128, 106, 121, 110, 112, 120, 121, 143, 129, 121, 127, 119, 101, 132, 122, 124, 115, 117, 125, 119, 139, 158, 126, 112, 142, 132, 115, 123, 139, 127, 108, 142, 122, 133, 130, 107, 132, 119, 108, 136, 114, 124, 126, 118, 127, 132, 126, 122, 140, 121, 133, 153, 138, 114, 152, 134, 102, 144, 113, 117, 114, 133, 122, 126, 130, 150, 116, 116, 121, 148, 125, 126, 110, 124, 124, 119, 133, 118, 121, 126, 127, 141, 114, 125, 121, 131, 131, 108, 124, 133, 118, 134, 113, 177, 119, 113, 122, 140, 138, 119, 109, 125, 122, 141, 140, 124, 131, 106, 123, 126, 147, 119, 139, 125, 112, 130, 135, 122, 121, 128, 101, 125, 135, 124, 127, 122, 118, 131, 136, 129, 118, 120, 116, 149, 116, 136, 100, 132, 125, 134, 130, 132, 119, 112, 130, 127, 127, 138, 110, 118, 117, 142, 126, 122, 120, 132, 130, 123, 127, 121, 142, 119, 151, 121, 136, 118, 128, 123, 138, 109, 132, 119, 132, 109, 137, 104, 134, 121, 140, 135, 136, 138, 122, 124, 101, 109, 136, 122, 106, 114, 112, 114, 128, 115, 109, 118, 117, 122, 105, 124, 112, 122, 118, 119, 120, 103, 106, 141, 119, 131, 111, 120, 142, 122, 132, 121, 148, 126, 129, 123, 121, 122, 138, 111, 128, 118, 114, 125, 144, 131, 113, 136, 148, 131, 119, 142, 133, 128, 116, 120, 120, 138, 116, 149, 102, 103, 104, 127, 111, 119, 130, 119, 105, 123, 110, 118, 120, 151, 130, 118, 110, 137, 119, 126, 130, 127, 131, 132, 110, 138, 118, 160, 136, 111, 130, 124, 135, 95, 145, 125, 123, 142, 123, 146, 122, 123, 125, 135, 122, 122, 130, 118, 130, 112, 133, 122, 113, 130, 133, 120, 115, 110, 131, 119, 123, 115, 129, 117, 132, 116, 146, 142, 142, 126, 135, 119, 135, 139, 110, 136, 132, 128, 122, 108, 93, 130, 124, 142, 135, 127, 136, 146, 125, 132, 125, 120, 133, 118, 124, 123, 112, 126, 114, 118, 138, 119, 121, 135, 120, 110, 115, 122, 144, 136, 152, 111, 143, 132, 138, 139, 123, 124, 120, 134, 124, 134, 112, 122, 120, 134, 120, 106, 125, 136, 147, 129, 129, 120, 119, 120, 133, 116, 108, 132, 120, 118, 116, 130, 121, 127, 126, 120, 123, 116, 133, 118, 105, 121, 132, 115, 115, 142, 115, 127, 122, 143, 143, 114, 121, 112, 123, 130, 110, 129, 123, 120, 141, 122, 118, 124, 117, 120, 133, 121, 129, 125, 130, 138, 119, 117, 113, 130, 124, 105, 138, 126, 110, 116, 135, 113, 117, 126, 126, 134, 132, 124, 136, 115, 113, 118, 112, 136, 119, 128, 124, 134, 122, 124, 119, 119, 125, 123, 116, 125, 113, 121, 127, 123, 130, 119, 118, 120, 126, 137, 129, 133, 124, 115, 111, 123, 133, 123, 123, 130, 141, 132, 119, 127, 118, 135, 118, 113, 117, 105, 118, 136, 136, 128, 112, 131, 120, 114, 123, 89, 121, 111, 129, 131, 124, 124, 109, 131, 117, 129, 136, 113, 134, 123, 122, 136, 134, 130, 144, 93, 144, 131, 140, 122, 121, 120, 133, 118, 135, 123, 138, 123, 111, 134, 134, 117, 135, 128, 130, 125, 118, 135, 106, 137, 126, 128, 105, 109, 115, 123, 129, 126, 127, 128, 124, 118, 116, 124, 113, 121, 133, 122, 121, 123, 123, 126, 138, 120, 122, 138, 130, 131, 111, 130, 124, 135, 125, 109, 117, 124, 129, 114, 120, 132, 126, 126, 115, 130, 130, 121, 131, 127, 110, 126, 133, 119, 109, 137, 132, 117, 126, 115, 130, 121, 117, 144, 135, 129, 118, 131, 108, 135, 131, 130, 125, 117, 127, 123, 132, 135, 112, 130, 140, 131, 126, 139, 142, 132, 120, 117, 131, 111, 123, 135, 138, 122, 122, 110, 129, 119, 121, 139, 116, 142, 108, 142, 124, 125, 131, 124, 127, 109, 123, 119, 131, 117, 141, 142, 134, 131, 125, 136, 127, 118, 119, 127, 118, 118, 143, 129, 140, 125, 115, 138, 138, 120, 130, 125, 142, 126, 122, 115, 123, 135, 131, 118, 130, 105, 128, 120, 131, 123, 122, 110, 121, 130, 115, 114, 119, 120, 143, 107, 116, 120, 143, 130, 136, 134, 113, 127, 107, 123, 134, 124, 126, 137, 130, 130, 126, 147, 139, 122, 125, 123, 128, 131, 139, 119, 128, 139, 115, 123, 126, 128, 126, 128, 126, 124, 109, 127, 141, 122, 133, 130, 127, 129, 100, 126, 139, 140, 118, 115, 134, 131, 97, 112, 135, 141, 118, 132, 125, 125, 114, 135, 128, 124, 132, 126, 127, 120, 127, 133, 146, 121, 132, 127, 123, 105, 132, 127, 134, 122, 132, 136, 127, 128, 140, 125, 115, 127, 119, 125, 136, 130, 111, 147, 118, 120, 136, 133, 130, 114, 125, 121, 128, 137, 126, 132, 124, 120, 159, 140, 137, 129, 129, 122, 129, 133, 122, 156, 135, 140, 133, 111, 139, 139, 141, 138, 149, 120, 127, 132, 119, 126, 107, 136, 128, 149, 122, 131, 126, 134, 127, 121, 141, 124, 113, 126, 142, 130, 110, 109, 122, 128, 115, 125, 126, 124, 142, 111, 131, 111, 91, 120, 139, 122, 141, 115, 122, 117, 128, 119, 125, 104, 132, 114, 119, 131, 116, 138, 102, 100, 141, 120, 137, 145, 130, 126, 125, 128, 125, 143, 129, 114, 114, 118, 127, 126, 127, 127, 143, 138, 141, 112, 135, 132, 122, 133, 149, 128, 117, 123, 117, 139, 134, 133, 119, 118, 140, 123, 126, 121, 144, 119, 111, 121, 110, 127, 124, 109, 127, 137, 138, 119, 143, 127, 112, 130, 139, 137, 117, 131, 138, 135, 117, 116, 128, 123, 118, 132, 128, 135, 134, 114, 120, 136, 142, 109, 140, 125, 135, 122, 118, 117, 138, 130, 135, 110, 125, 137, 122, 127, 146, 129, 130, 122, 117, 112, 125, 119, 136, 125, 126, 117, 124, 127, 126, 133, 112, 114, 122, 105, 119, 129, 120, 125, 125, 104, 144, 134, 135, 127, 130, 121, 135, 146, 136, 136, 114, 130, 124, 137, 114, 120, 131, 123, 121, 105, 119, 122, 115, 101, 127, 131, 128, 122, 112, 114, 149, 131, 127, 137, 101, 131, 126, 135, 108, 115, 127, 133, 111, 104, 122, 119, 131, 135, 119, 100, 131, 120, 111, 122, 116, 125, 125, 145, 133, 127, 136, 125, 140, 124, 127, 117, 119, 129, 132, 91, 125, 128, 116, 117, 115, 125, 137, 119, 132, 128, 112, 119, 138, 136, 128, 129, 121, 119, 129, 104, 138, 116, 132, 142, 124, 136, 121, 126, 128, 122, 118, 130, 126, 127, 137, 133, 136, 121, 125, 133, 129, 128, 141, 114, 112, 139, 124, 113, 120, 120, 110, 134, 126, 114, 129, 114, 121, 129, 124, 138, 142, 132, 113, 118, 125, 138, 132, 118, 122, 106, 131, 128, 140, 122, 126, 127, 123, 139, 120, 113, 131, 133, 135, 148, 125, 121, 117, 109, 119, 142, 136, 136, 145, 127, 130, 117, 124, 124, 110, 123, 114, 114, 119, 128, 148, 113, 136, 132, 109, 131, 124, 136, 119, 133, 120, 132, 112, 132, 126, 136, 121, 126, 123, 131, 130, 131, 126, 112, 117, 127, 129, 136, 120, 142, 123, 129, 125, 122, 124, 132, 122, 135, 117, 144, 137, 130, 117, 147, 117, 136, 130, 135, 119, 133, 131, 125, 113, 111, 136, 124, 110, 127, 131, 124, 146, 107, 129, 142, 127, 125, 140, 136, 132, 126, 114, 120, 124, 121, 136, 132, 115, 130, 130, 102, 120, 120, 128, 116, 115, 122, 120, 116, 120, 120, 123, 124, 125, 125, 117, 134, 116, 120, 131, 116, 123, 115, 143, 124, 118, 102, 110, 130, 130, 127, 130, 129, 127, 121, 123, 120, 119, 139, 124, 110, 134, 126, 118, 125, 131, 118, 138, 127, 119, 125, 126, 136, 108, 127, 130, 127, 135, 135, 121, 137, 126, 119, 112, 123, 124, 138, 128, 113, 109, 121, 131, 99, 132, 129, 128, 118, 126, 134, 117, 129, 117, 142, 107, 115, 117, 120, 123, 124, 123, 130, 123, 127, 122, 120, 122, 117, 127, 115, 121, 139, 126, 107, 138, 126, 124, 138, 110, 132, 114, 114, 143, 130, 142, 120, 124, 137, 109, 146, 118, 130, 118, 125, 134, 101, 127, 123, 124, 133, 131, 130, 134, 147, 117, 135, 147, 116, 111, 122, 120, 120, 118, 119, 127, 122, 115, 135, 108, 107, 133, 128, 129, 138, 117, 115, 130, 102, 127, 136, 128, 127, 118, 111, 114, 124, 126, 121, 115, 133, 117, 133, 111, 119, 137, 135, 111, 117, 125, 127, 117, 132, 109, 123, 123, 82, 114, 135, 132, 125, 124, 127, 134, 126, 110, 106, 131, 128, 135, 114, 133, 135, 123, 129, 124, 126, 105, 125, 124, 114, 134, 128, 127, 130, 141, 115, 103, 106, 120, 112, 117, 127, 128, 142, 99, 137, 137, 140, 125, 128, 135, 130, 130, 114, 137, 112, 119, 122, 136, 129, 121, 129, 115, 132, 125, 104, 134, 151, 109, 140, 125, 124, 126, 127, 130, 136, 112, 117, 130, 113, 127, 114, 137, 108, 110, 140, 121, 123, 135, 126, 141, 127, 129, 111, 112, 157, 100, 132, 128, 131, 112, 133, 127, 125, 125, 130, 117, 126, 122, 129, 117, 105, 130, 134, 122, 130, 124, 140, 110, 127, 130, 146, 130, 134, 132, 130, 139, 129, 125, 134, 128, 108, 109, 111, 133, 117, 108, 125, 139, 138, 126, 111, 115, 131, 122, 124, 114, 130, 128, 116, 141, 135, 129, 123, 126, 122, 122, 139, 121, 129, 136, 140, 128, 116, 139, 115, 120, 124, 133, 132, 129, 118, 121, 119, 111, 133, 120, 106, 123, 114, 116, 127, 125, 119, 133, 137, 120, 134, 119, 114, 132, 124, 121, 117, 126, 118, 129, 120, 105, 128, 103, 114, 110, 124, 135, 117, 132, 135, 125, 128, 119, 133, 137, 115, 137, 121, 142, 128, 129, 127, 125, 117, 123, 131, 124, 137, 135, 133, 104, 127, 126, 111, 108, 134, 117, 130, 130, 103, 114, 133, 113, 134, 123, 117, 137, 106, 125, 128, 123, 118, 130, 116, 124, 125, 138, 100, 118, 121, 112, 113, 117, 124, 132, 133, 130, 144, 130, 127, 141, 114, 132, 129, 139, 127, 100, 119, 138, 127, 122, 127, 131, 149, 123, 129, 119, 131, 127, 107, 113, 134, 118, 111, 118, 126, 112, 128, 118, 129, 108, 114, 118, 142, 122, 112, 139, 141, 128, 135, 122, 124, 124, 120, 118, 125, 121, 121, 135, 122, 143, 127, 135, 112, 135, 121, 124, 113, 101, 124, 123, 121, 125, 117, 110, 123, 125, 122, 128, 134, 106, 121, 132, 130, 118, 124, 127, 140, 124, 128, 131, 129, 109, 122, 141, 138, 138, 152, 136, 113, 135, 122, 121, 130, 143, 112, 127, 148, 114, 119, 127, 126, 108, 134, 114, 128, 126, 113, 116, 125, 123, 134, 126, 129, 119, 123, 130, 115, 124, 150, 108, 128, 117, 127, 131, 148, 129, 122, 125, 115, 114, 105, 128, 123, 142, 110, 120, 120, 131, 144, 129, 138, 130, 126, 128, 124, 126, 134, 120, 134, 122, 138, 109, 134, 117, 127, 142, 130, 129, 141, 126, 134, 145, 122, 133, 124, 133, 127, 127, 128, 106, 136, 109, 127, 127, 125, 125, 117, 110, 136, 129, 130, 117, 124, 125, 136, 142, 115, 128, 127, 126, 112, 130, 137, 134, 118, 113, 138, 123, 107, 128, 111, 134, 127, 126, 116, 123, 107, 140, 136, 136, 111, 137, 106, 122, 127, 117, 114, 109, 132, 130, 125, 134, 118, 135, 139, 138, 120, 125, 112, 126, 122, 124, 136, 130, 114, 112, 127, 118, 118, 127, 120, 143, 127, 131, 118, 125, 131, 122, 139, 119, 118, 122, 117, 128, 122, 138, 127, 110, 122, 116, 121, 128, 112, 135, 139, 117, 115, 124, 121, 131, 114, 130, 130, 123, 123, 114, 118, 136, 124, 107, 104, 102, 133, 141, 121, 124, 107, 132, 124, 134, 132, 133, 133, 134, 124, 132, 129, 121, 146, 121, 109, 118, 125, 119, 145, 121, 123, 127, 132, 122, 132, 116, 126, 109, 126, 131, 135, 132, 112, 130, 130, 138, 113, 115, 136, 98, 123, 136, 125, 137, 102, 117, 114, 138, 123, 129, 111, 122, 142, 124, 116, 117, 137, 125, 125, 113, 130, 129, 140, 112, 130, 117, 121, 126, 120, 138, 119, 129, 128, 130, 124, 135, 124, 130, 128, 139, 115, 128, 144, 125, 127, 116, 128, 134, 124, 137, 113, 109, 105, 129, 123, 132, 108, 129, 121, 121, 145, 121, 119, 138, 116, 138, 111, 110, 113, 149, 115, 111, 125, 137, 121, 138, 115, 130, 119, 129, 108, 124, 127, 141, 127, 98, 112, 140, 130, 142, 142, 136, 125, 122, 108, 106, 142, 119, 131, 118, 118, 128, 121, 132, 119, 122, 122, 145, 134, 116, 138, 138, 139, 129, 123, 137, 140, 141, 110, 125, 119, 124, 127, 137, 125, 130, 135, 126, 129, 118, 134, 125, 118, 120, 143, 123, 131, 131, 137, 145, 119, 110, 131, 114, 128, 122, 130, 130, 126, 137, 135, 139, 120, 117, 137, 132, 127, 122, 133, 124, 144, 146, 130, 133, 121, 124, 127, 122, 117, 105, 133, 126, 120, 125, 126, 120, 141, 124, 136, 123, 125, 146, 122, 139, 114, 119, 111, 136, 152, 119, 131, 122, 116, 121, 118, 125, 133, 114, 125, 112, 123, 108, 113, 130, 127, 112, 125, 103, 123, 115, 137, 139, 119, 129, 133, 120, 118, 133, 134, 107, 121, 125, 122, 128, 136, 117, 136, 127, 135, 117, 109, 118, 130, 127, 129, 119, 108, 126, 132, 121, 126, 130, 124, 110, 126, 124, 123, 119, 123, 117, 117, 138, 124, 130, 133, 142, 121, 105, 116, 114, 124, 114, 120, 120, 118, 130, 140, 127, 136, 137, 121, 144, 129, 110, 127, 123, 133, 132, 155, 140, 110, 106, 118, 151, 127, 108, 117, 132, 141, 128, 121, 121, 124, 92, 112, 131, 125, 116, 125, 118, 118, 145, 120, 126, 103, 142, 127, 115, 129, 138, 133, 116, 128, 121, 128, 137, 141, 147, 116, 129, 130, 125, 120, 134, 134, 125, 142, 137, 118, 123, 120, 105, 122, 119, 116, 127, 137, 97, 132, 123, 127, 119, 118, 125, 124, 110, 123, 113, 121, 125, 104, 120, 110, 143, 122, 143, 125, 126, 126, 128, 116, 131, 124, 119, 130, 118, 134, 104, 128, 134, 139, 114, 124, 150, 117, 125, 120, 121, 130, 113, 136, 111, 136, 128, 133, 127, 122, 131, 120, 127, 133, 124, 99, 126, 129, 131, 117, 121, 115, 119, 122, 126, 115, 143, 142, 118, 123, 103, 128, 132, 115, 130, 133, 135, 135, 126, 131, 109, 128, 140, 122, 117, 135, 114, 117, 123, 127, 136, 125, 109, 118, 128, 121, 137, 127, 139, 140, 108, 117, 133, 144, 127, 126, 122, 126, 137, 117, 128, 130, 126, 108, 130, 125, 131, 142, 120, 124, 135, 106, 114, 134, 108, 143, 120, 124, 123, 130, 120, 110, 125, 119, 128, 133, 124, 113, 120, 135, 124, 126, 133, 135, 141, 128, 126, 138, 130, 115, 125, 103, 135, 132, 116, 119, 130, 117, 128, 142, 127, 133, 105, 131, 124, 132, 140, 127, 130, 127, 139, 125, 117, 118, 116, 124, 126, 128, 120, 125, 138, 127, 134, 130, 100, 125, 120, 117, 135, 133, 112, 128, 122, 129, 119, 120, 129, 120, 117, 111, 120, 141, 133, 131, 127, 113, 111, 135, 123, 131, 127, 114, 138, 133, 107, 125, 123, 130, 119, 131, 134, 119, 116, 110, 122, 110, 122, 138, 117, 110, 126, 116, 153, 130, 126, 107, 115, 132, 108, 128, 110, 157, 120, 126, 142, 117, 114, 117, 135, 118, 125, 127, 125, 115, 112, 128, 127, 105, 120, 119, 130, 134, 130, 116, 125, 150, 123, 115, 135, 116, 107, 112, 131, 128, 113, 124, 109, 112, 129, 128, 125, 121, 126, 129, 126, 134, 114, 129, 142, 127, 114, 105, 115, 128, 109, 113, 122, 122, 128, 104, 129, 127, 118, 102, 120, 138, 122, 122, 127, 120, 127, 138, 130, 102, 126, 120, 129, 124, 119, 142, 139, 119, 113, 112, 124, 113, 133, 134, 123, 142, 119, 129, 107, 127, 130, 124, 135, 119, 131, 112, 125, 131, 121, 122, 128, 135, 117, 122, 117, 126, 136, 117, 125, 116, 120, 120, 134, 111, 127, 141, 119, 115, 132, 120, 136, 140, 118, 122, 106, 142, 106, 126, 146, 116, 125, 129, 138, 129, 129, 121, 115, 126, 137, 127, 129, 143, 132, 137, 122, 136, 126, 128, 115, 139, 119, 176, 118, 114, 141, 103, 115, 128, 147, 126, 130, 123, 125, 124, 117, 128, 121, 140, 133, 121, 138, 137, 117, 115, 108, 109, 76, 122, 104, 143, 128, 128, 113, 122, 135, 111, 127, 134, 131, 132, 117, 102, 123, 131, 129, 147, 122, 129, 119, 127, 128, 129, 123, 122, 124, 147, 129, 135, 116, 135, 130, 124, 146, 131, 120, 119, 129, 120, 102, 108, 125, 117, 125, 124, 118, 123, 123, 112, 126, 133, 129, 144, 146, 119, 128, 130, 134, 133, 122, 141, 135, 118, 133, 121, 103, 126, 115, 120, 115, 110, 112, 113, 100, 131, 121, 118, 138, 133, 127, 127, 127, 105, 122, 128, 96, 128, 133, 142, 165, 144, 136, 125, 138, 148, 125, 122, 131, 116, 122, 152, 122, 112, 124, 123, 120, 143, 134, 143, 103, 125, 126, 129, 128, 135, 135, 124, 139, 127, 141, 124, 129, 130, 136, 121, 137, 135, 132, 130, 132, 138, 118, 127, 127, 122, 119, 127, 118, 117, 126, 126, 136, 131, 128, 123, 124, 116, 117, 107, 131, 140, 123, 117, 143, 133, 120, 124, 130, 123, 117, 110, 130, 123, 120, 130, 121, 116, 133, 100, 133, 128, 116, 139, 131, 146, 105, 125, 123, 149, 139, 126, 124, 129, 122, 132, 118, 119, 118, 126, 134, 105, 117, 110, 133, 118, 128, 118, 150, 136, 150, 142, 136, 129, 118, 125, 153, 122, 114, 125, 126, 117, 127, 130, 125, 139, 114, 123, 129, 118, 127, 120, 119, 121, 100, 140, 128, 114, 115, 129, 112, 112, 120, 145, 124, 117, 122, 121, 136, 120, 123, 123, 108, 121, 117, 122, 117, 123, 117, 135, 128, 129, 126, 114, 141, 125, 135, 113, 117, 127, 120, 119, 123, 124, 122, 137, 105, 131, 123, 140, 143, 115, 126, 120, 128, 121, 114, 114, 126, 144, 144, 120, 110, 121, 119, 149, 129, 125, 120, 142, 126, 133, 131, 149, 129, 129, 137, 136, 138, 120, 140, 144, 133, 125, 121, 113, 121, 135, 128, 115, 112, 122, 130, 119, 128, 143, 121, 128, 128, 128, 108, 122, 136, 132, 132, 124, 118, 133, 117, 132, 124, 130, 137, 114, 119, 122, 110, 119, 137, 128, 127, 131, 152, 126, 123, 121, 99, 117, 124, 120, 130, 141, 122, 122, 130, 138, 100, 118, 119, 124, 129, 151, 140, 119, 131, 116, 136, 120, 137, 125, 132, 126, 123, 142, 111, 129, 139, 131, 135, 121, 123, 117, 114, 126, 138, 132, 138, 148, 123, 128, 115, 119, 137, 133, 124, 134, 135, 118, 127, 115, 139, 133, 129, 143, 152, 114, 130, 131, 122, 136, 141, 131, 127, 135, 114, 137, 134, 144, 113, 148, 134, 142, 127, 129, 136, 132, 126, 119, 127, 138, 123, 134, 131, 118, 108, 125, 150, 121, 135, 119, 123, 111, 140, 120, 110, 124, 111, 133, 99, 121, 116, 130, 123, 116, 131, 132, 126, 124, 132, 129, 126, 134, 131, 130, 146, 126, 152, 122, 123, 126, 131, 133, 128, 119, 134, 122, 117, 124, 116, 131, 112, 121, 124, 132, 124, 120, 136, 127, 122, 131, 112, 126, 142, 124, 137, 122, 125, 125, 131, 123, 134, 155, 139, 130, 118, 125, 112, 133, 126, 115, 128, 126, 121, 129, 134, 129, 122, 109, 120, 126, 145, 123, 120, 133, 112, 136, 121, 126, 115, 121, 116, 130, 134, 121, 121, 121, 107, 127, 135, 101, 123, 115, 129, 125, 145, 139, 112, 125, 122, 129, 112, 127, 129, 148, 120, 119, 131, 123, 112, 129, 144, 117, 122, 119, 121, 124, 119, 126, 125, 125, 115, 116, 123, 132, 121, 138, 129, 130, 145, 126, 146, 126, 125, 115, 138, 137, 134, 136, 133, 120, 109, 129, 135, 134, 119, 132, 114, 114, 134, 141, 117, 96, 131, 126, 129, 134, 122, 116, 132, 129, 119, 129, 120, 137, 126, 136, 113, 121, 125, 120, 129, 116, 141, 126, 150, 135, 116, 133, 130, 115, 131, 118, 154, 119, 131, 123, 120, 129, 118, 121, 132, 136, 118, 137, 118, 144, 124, 122, 138, 115, 125, 136, 124, 122, 127, 119, 121, 131, 138, 130, 129, 124, 119, 113, 115, 101, 108, 125, 112, 116, 128, 123, 117, 135, 147, 154, 130, 123, 117, 128, 135, 117, 145, 127, 136, 114, 126, 117, 120, 128, 103, 136, 131, 125, 121, 103, 143, 108, 137, 142, 123, 128, 125, 126, 130, 119, 114, 108, 130, 120, 130, 133, 124, 122, 133, 117, 125, 135, 142, 110, 129, 134, 117, 118, 124, 126, 136, 135, 122, 115, 114, 116, 138, 116, 108, 138, 110, 125, 142, 144, 116, 113, 128, 123, 128, 115, 99, 117, 137, 118, 122, 148, 131, 120, 123, 127, 133, 125, 119, 114, 131, 128, 133, 123, 131, 126, 124, 122, 128, 135, 125, 128, 136, 129, 131, 118, 125, 126, 119, 125, 135, 115, 118, 111, 127, 116, 117, 109, 129, 129, 114, 134, 142, 119, 110, 123, 122, 124, 126, 128, 127, 126, 115, 143, 119, 142, 121, 132, 125, 106, 125, 123, 127, 100, 134, 114, 130, 128, 127, 127, 118, 116, 119, 114, 137, 99, 134, 114, 125, 120, 130, 124, 114, 139, 138, 124, 120, 112, 141, 121, 117, 132, 122, 143, 133, 109, 124, 111, 148, 132, 115, 96, 131, 123, 111, 115, 135, 132, 93, 138, 115, 129, 127, 144, 125, 123, 117, 129, 138, 113, 108, 133, 106, 132, 132, 121, 123, 127, 142, 121, 121, 115, 131, 129, 121, 127, 117, 130, 136, 137, 117, 131, 108, 134, 125, 137, 124, 114, 124, 154, 150, 123, 117, 126, 112, 111, 142, 119, 128, 126, 126, 129, 126, 123, 139, 106, 123, 114, 125, 121, 122, 136, 121, 138, 113, 135, 115, 117, 131, 132, 114, 147, 124, 126, 137, 115, 116, 109, 133, 125, 116, 124, 115, 124, 109, 142, 130, 119, 132, 117, 126, 123, 117, 131, 115, 114, 127, 108, 130, 145, 149, 123, 140, 137, 118, 124, 131, 115, 131, 127, 132, 125, 125, 129, 135, 117, 121, 128, 127, 122, 116, 116, 145, 127, 139, 118, 139, 127, 125, 112, 130, 140, 130, 140, 131, 128, 129, 115, 105, 117, 122, 107, 128, 140, 136, 130, 127, 130, 106, 120, 129, 130, 144, 121, 110, 123, 148, 113, 127, 133, 135, 114, 112, 132, 130, 122, 126, 130, 112, 138, 126, 130, 116, 105, 151, 114, 132, 130, 119, 117, 126, 118, 121, 115, 137, 128, 148, 129, 132, 128, 116, 121, 129, 116, 123, 131, 122, 103, 146, 123, 106, 115, 123, 127, 110, 128, 130, 118, 146, 124, 131, 119, 126, 123, 128, 133, 117, 132, 141, 152, 125, 127, 134, 137, 118, 133, 137, 132, 126, 144, 122, 128, 130, 128, 127, 121, 120, 105, 155, 130, 123, 122, 151, 125, 131, 116, 122, 130, 125, 130, 116, 126, 130, 116, 111, 138, 121, 114, 113, 127, 114, 126, 107, 125, 131, 114, 128, 131, 127, 143, 131, 124, 129, 106, 121, 121, 136, 123, 115, 125, 116, 142, 132, 145, 128, 133, 122, 119, 133, 140, 134, 119, 101, 108, 126, 134, 123, 118, 120, 112, 117, 124, 124, 117, 133, 134, 130, 112, 103, 124, 133, 134, 122, 120, 134, 119, 120, 148, 131, 122, 136, 134, 125, 136, 127, 136, 141, 134, 124, 131, 140, 139, 132, 123, 118, 123, 134, 127, 120, 127, 154, 126, 120, 123, 119, 121, 122, 116, 124, 135, 133, 135, 129, 121, 129, 130, 131, 123, 140, 125, 113, 111, 112, 113, 107, 107, 116, 121, 117, 134, 129, 125, 128, 113, 127, 119, 116, 127, 123, 116, 113, 130, 124, 118, 125, 115, 136, 120, 118, 124, 112, 115, 132, 129, 133, 104, 141, 120, 125, 150, 131, 133, 130, 132, 124, 128, 97, 128, 138, 128, 123, 133, 139, 119, 111, 119, 129, 126, 139, 125, 118, 109, 128, 136, 132, 128, 126, 123, 124, 119, 134, 123, 134, 135, 129, 133, 130, 138, 119, 135, 128, 137, 142, 103, 149, 130, 120, 143, 119, 111, 122, 125, 125, 113, 115, 122, 120, 117, 141, 117, 147, 130, 131, 130, 126, 117, 131, 136, 124, 121, 128, 114, 124, 132, 106, 129, 115, 117, 114, 106, 119, 117, 127, 122, 121, 123, 115, 122, 136, 117, 118, 148, 127, 141, 109, 98, 121, 122, 125, 121, 144, 125, 142, 127, 114, 115, 130, 126, 125, 98, 119, 115, 117, 109, 122, 134, 125, 139, 113, 126, 127, 116, 138, 135, 137, 124, 115, 120, 119, 131, 131, 129, 131, 128, 142, 116, 133, 121, 131, 116, 119, 127, 141, 136, 127, 103, 120, 129, 132, 116, 125, 117, 114, 130, 118, 119, 124, 128, 111, 116, 128, 130, 125, 112, 122, 131, 116, 131, 124, 127, 118, 133, 108, 120, 116, 145, 125, 116, 140, 123, 133, 119, 121, 129, 126, 130, 134, 134, 132, 113, 134, 130, 134, 115, 109, 126, 131, 132, 121, 130, 130, 128, 113, 124, 118, 112, 148, 120, 112, 124, 113, 120, 143, 115, 136, 143, 119, 124, 110, 134, 136, 138, 141, 125, 134, 122, 117, 129, 138, 115, 140, 117, 126, 136, 135, 124, 113, 122, 142, 125, 143, 131, 130, 115, 121, 129, 125, 120, 108, 132, 143, 118, 145, 117, 118, 121, 129, 111, 120, 137, 118, 142, 133, 108, 123, 129, 142, 116, 122, 129, 118, 146, 124, 130, 123, 132, 106, 122, 136, 129, 119, 130, 140, 132, 130, 120, 122, 126, 119, 114, 123, 128, 133, 164, 119, 126, 116, 133, 125, 115, 114, 139, 138, 137, 139, 137, 127, 109, 136, 131, 119, 129, 134, 145, 120, 119, 125, 124, 125, 138, 121, 122, 94, 125, 130, 128, 123, 120, 122, 108, 126, 128, 123, 126, 144, 122, 125, 131, 139, 120, 120, 121, 125, 130, 130, 126, 112, 124, 115, 130, 118, 119, 102, 113, 127, 123, 136, 125, 134, 146, 141, 128, 118, 127, 113, 127, 129, 126, 112, 129, 129, 137, 146, 116, 121, 128, 133, 106, 117, 117, 122, 129, 128, 134, 129, 117, 128, 132, 114, 120, 127, 116, 117, 98, 137, 129, 113, 153, 116, 122, 116, 130, 132, 130, 143, 121, 153, 143, 120, 119, 137, 126, 125, 109, 142, 133, 128, 108, 146, 134, 126, 123, 125, 127, 119, 125, 119, 127, 114, 113, 117, 120, 124, 129, 141, 125, 122, 116, 126, 113, 142, 120, 126, 100, 131, 134, 125, 128, 124, 116, 113, 120, 127, 126, 134, 121, 122, 126, 120, 117, 120, 128, 109, 121, 126, 134, 131, 115, 135, 131, 110, 106, 142, 113, 128, 141, 134, 123, 130, 126, 127, 108, 123, 114, 138, 138, 127, 128, 105, 126, 109, 132, 136, 120, 126, 115, 129, 129, 125, 117, 107, 132, 115, 129, 127, 128, 123, 129, 117, 109, 127, 129, 122, 119, 119, 115, 142, 109, 138, 121, 139, 124, 130, 133, 114, 125, 128, 124, 120, 127, 122, 125, 115, 134, 118, 127, 125, 118, 115, 136, 113, 130, 113, 130, 133, 140, 131, 123, 137, 129, 125, 124, 109, 126, 115, 128, 112, 125, 121, 135, 123, 126, 122, 136, 140, 132, 129, 121, 122, 112, 130, 129, 121, 111, 101, 121, 135, 114, 124, 119, 122, 133, 113, 119, 128, 125, 123, 106, 134, 101, 141, 118, 142, 134, 132, 133, 116, 122, 130, 130, 118, 113, 115, 125, 137, 118, 116, 118, 146, 135, 142, 116, 134, 134, 123, 148, 127, 129, 110, 131, 114, 133, 105, 119, 119, 113, 116, 128, 133, 107, 138, 131, 128, 128, 128, 112, 124, 128, 113, 138, 124, 114, 132, 120, 110, 121, 130, 107, 127, 125, 118, 124, 127, 123, 126, 130, 122, 111, 126, 120, 130, 101, 124, 138, 114, 130, 122, 124, 127, 98, 130, 121, 131, 124, 131, 109, 116, 136, 142, 118, 119, 127, 151, 127, 116, 119, 132, 118, 130, 113, 127, 139, 110, 122, 130, 132, 120, 131, 120, 105, 124, 125, 119, 114, 120, 113, 133, 116, 115, 133, 148, 130, 132, 136, 130, 116, 116, 119, 128, 111, 130, 116, 122, 122, 138, 133, 128, 128, 146, 135, 126, 117, 113, 120, 142, 147, 114, 120, 124, 144, 119, 136, 118, 123, 110, 137, 109, 122, 108, 119, 121, 132, 120, 128, 132, 143, 129, 105, 125, 104, 111, 141, 113, 116, 119, 103, 113, 126, 131, 133, 126, 126, 110, 122, 133, 152, 131, 117, 136, 119, 131, 109, 118, 110, 136, 113, 134, 135, 121, 114, 113, 120, 117, 119, 116, 117, 114, 110, 135, 125, 131, 113, 138, 122, 122, 125, 132, 123, 121, 140, 133, 129, 132, 120, 110, 109, 128, 119, 120, 136, 141, 131, 135, 112, 134, 141, 123, 119, 140, 118, 125, 122, 143, 126, 117, 121, 140, 129, 137, 120, 123, 124, 127, 132, 126, 125, 122, 138, 122, 132, 123, 127, 142, 129, 127, 129, 114, 126, 132, 128, 128, 111, 119, 125, 124, 120, 122, 134, 123, 123, 127, 122, 126, 145, 119, 117, 101, 108, 112, 121, 130, 130, 141, 114, 133, 136, 132, 126, 115, 118, 123, 104, 112, 119, 129, 135, 123, 137, 128, 141, 131, 128, 132, 115, 115, 146, 130, 128, 141, 137, 115, 133, 141, 132, 129, 122, 127, 115, 137, 142, 129, 130, 127, 118, 117, 131, 116, 129, 129, 143, 107, 129, 121, 150, 132, 123, 125, 129, 147, 107, 130, 132, 124, 117, 123, 140, 126, 114, 108, 133, 131, 136, 126, 122, 135, 127, 127, 124, 126, 123, 114, 118, 102, 110, 119, 137, 137, 129, 140, 124, 124, 123, 125, 117, 131, 119, 124, 123, 145, 132, 110, 111, 130, 124, 129, 121, 135, 124, 107, 116, 144, 130, 128, 150, 124, 119, 128, 136, 132, 127, 131, 124, 131, 150, 127, 126, 151, 111, 125, 152, 142, 140, 124, 137, 123, 122, 129, 134, 127, 126, 126, 131, 139, 128, 114, 111, 125, 117, 112, 134, 111, 116, 121, 139, 123, 113, 132, 129, 135, 144, 116, 112, 124, 136, 128, 123, 121, 130, 135, 126, 116, 120, 111, 127, 132, 112, 106, 144, 120, 124, 104, 117, 130, 131, 115, 131, 141, 119, 133, 111, 103, 123, 120, 92, 131, 116, 107, 134, 142, 116, 109, 116, 133, 137, 126, 117, 121, 125, 134, 134, 124, 104, 121, 103, 122, 135, 123, 145, 112, 139, 124, 125, 121, 119, 124, 128, 125, 134, 111, 121, 124, 125, 133, 110, 129, 125, 121, 131, 107, 135, 120, 146, 112, 124, 117, 117, 141, 119, 100, 120, 112, 128, 120, 119, 125, 118, 123, 117, 135, 123, 113, 128, 145, 126, 128, 131, 132, 125, 128, 112, 130, 117, 122, 143, 110, 124, 124, 111, 109, 139, 137, 125, 121, 111, 121, 113, 121, 120, 123, 137, 131, 97, 116, 112, 118, 131, 113, 141, 127, 115, 122, 133, 136, 111, 122, 116, 113, 120, 103, 128, 130, 133, 131, 99, 130, 133, 124, 133, 122, 107, 122, 133, 120, 141, 120, 132, 130, 120, 99, 114, 126, 132, 121, 120, 116, 154, 128, 121, 133, 122, 137, 120, 92, 134, 109, 116, 113, 135, 133, 139, 114, 142, 116, 131, 108, 130, 125, 114, 117, 119, 116, 160, 146, 122, 125, 131, 128, 120, 133, 139, 122, 127, 121, 129, 111, 133, 132, 127, 119, 132, 139, 128, 111, 131, 134, 116, 143, 110, 126, 148, 128, 110, 120, 127, 135, 131, 128, 135, 126, 145, 127, 132, 118, 128, 135, 126, 116, 109, 128, 116, 128, 129, 136, 133, 138, 126, 121, 125, 137, 126, 126, 146, 115, 129, 141, 116, 124, 142, 130, 115, 120, 109, 130, 141, 116, 107, 138, 130, 115, 134, 116, 129, 139, 132, 124, 124, 121, 137, 130, 129, 120, 128, 124, 128, 141, 101, 113, 117, 128, 122, 93, 120, 122, 138, 129, 126, 123, 110, 115, 127, 110, 137, 122, 135, 131, 139, 137, 126, 122, 128, 139, 131, 127, 146, 131, 117, 138, 130, 145, 114, 123, 131, 121, 138, 131, 136, 120, 125, 134, 120, 134, 131, 144, 134, 136, 129, 140, 119, 128, 125, 118, 117, 110, 142, 117, 118, 124, 131, 121, 129, 129, 119, 120, 122, 109, 127, 124, 115, 137, 127, 116, 118, 135, 122, 123, 116, 120, 111, 109, 121, 121, 133, 128, 133, 123, 108, 118, 123, 121, 112, 143, 115, 123, 145, 130, 131, 123, 130, 122, 132, 111, 136, 116, 127, 135, 126, 119, 118, 114, 126, 140, 135, 110, 121, 124, 131, 129, 114, 138, 109, 139, 112, 119, 107, 152, 140, 131, 93, 141, 139, 117, 127, 138, 122, 112, 127, 134, 118, 113, 141, 136, 123, 106, 134, 120, 111, 127, 131, 138, 128, 129, 130, 124, 122, 115, 125, 128, 130, 122, 129, 141, 136, 130, 112, 120, 115, 139, 133, 123, 115, 133, 112, 138, 123, 137, 123, 118, 111, 136, 113, 139, 116, 127, 122, 115, 126, 128, 119, 121, 110, 116, 136, 136, 126, 114, 137, 130, 129, 124, 146, 137, 135, 124, 118, 131, 120, 135, 132, 148, 146, 127, 128, 137, 116, 121, 131, 147, 125, 127, 137, 134, 135, 127, 120, 123, 113, 132, 133, 121, 131, 123, 131, 137, 127, 129, 111, 118, 107, 101, 117, 129, 121, 119, 129, 120, 129, 143, 136, 111, 112, 116, 136, 134, 111, 126, 116, 116, 143, 133, 137, 117, 120, 148, 129, 119, 136, 119, 116, 115, 114, 138, 118, 96, 120, 141, 115, 114, 102, 118, 123, 121, 114, 125, 120, 122, 144, 122, 124, 109, 117, 125, 121, 110, 125, 104, 124, 139, 145, 119, 136, 129, 113, 121, 122, 136, 133, 133, 129, 104, 147, 120, 111, 126, 140, 133, 125, 114, 121, 136, 143, 122, 130, 131, 144, 130, 122, 132, 121, 125, 126, 116, 121, 111, 117, 130, 133, 121, 130, 133, 118, 120, 123, 126, 132, 106, 139, 119, 120, 122, 134, 115, 121, 132, 130, 148, 143, 146, 114, 117, 125, 105, 123, 132, 128, 125, 111, 123, 116, 130, 135, 99, 122, 132, 121, 126, 128, 126, 134, 117, 119, 113, 120, 136, 151, 128, 124, 112, 126, 122, 118, 117, 164, 140, 105, 113, 132, 120, 122, 124, 127, 116, 124, 127, 148, 122, 122, 123, 132, 128, 131, 133, 138, 134, 110, 124, 116, 149, 125, 122, 134, 130, 142, 133, 120, 134, 119, 118, 118, 119, 121, 118, 117, 141, 111, 138, 124, 120, 117, 110, 108, 114, 131, 120, 123, 144, 132, 134, 136, 100, 112, 132, 128, 115, 139, 134, 81, 135, 132, 119, 133, 126, 132, 117, 137, 133, 120, 120, 123, 118, 123, 131, 130, 131, 140, 124, 108, 139, 110, 134, 135, 132, 136, 136, 120, 120, 147, 111, 138, 127, 131, 112, 127, 136, 124, 141, 131, 117, 135, 122, 116, 108, 139, 123, 98, 100, 132, 118, 116, 101, 122, 125, 147, 115, 131, 139, 124, 126, 113, 127, 118, 122, 115, 131, 122, 127, 119, 127, 112, 110, 119, 142, 122, 124, 129, 137, 115, 148, 131, 116, 124, 123, 124, 156, 131, 113, 127, 124, 128, 117, 118, 130, 124, 107, 132, 130, 123, 129, 113, 94, 129, 143, 118, 117, 116, 130, 112, 119, 141, 124, 112, 141, 138, 111, 127, 121, 99, 121, 124, 125, 142, 125, 130, 111, 125, 136, 112, 130, 139, 124, 121, 144, 110, 118, 130, 124, 105, 126, 136, 120, 131, 137, 124, 139, 138, 131, 116, 118, 135, 113, 133, 103, 127, 134, 125, 126, 123, 137, 122, 140, 106, 130, 129, 129, 134, 125, 124, 137, 131, 131, 118, 120, 123, 149, 122, 139, 142, 132, 116, 126, 99, 115, 135, 126, 124, 117, 134, 117, 121, 128, 134, 125, 119, 123, 145, 132, 125, 131, 119, 135, 120, 105, 103, 136, 131, 128, 129, 133, 149, 147, 117, 124, 127, 134, 115, 130, 128, 121, 154, 135, 141, 152, 150, 131, 129, 124, 122, 131, 113, 127, 129, 125, 135, 94, 123, 131, 118, 135, 121, 112, 126, 131, 130, 130, 157, 122, 130, 133, 117, 115, 125, 118, 139, 115, 134, 135, 130, 138, 125, 135, 128, 112, 114, 119, 118, 114, 101, 135, 136, 124, 128, 106, 138, 124, 126, 94, 101, 140, 132, 140, 110, 128, 96, 111, 127, 120, 131, 128, 111, 129, 130, 132, 118, 133, 111, 94, 128, 128, 131, 121, 135, 119, 140, 123, 122, 115, 113, 102, 148, 125, 103, 137, 118, 115, 110, 138, 138, 133, 136, 130, 107, 118, 118, 126, 143, 114, 127, 110, 112, 119, 137, 138, 122, 130, 138, 138, 127, 133, 124, 130, 142, 128, 128, 120, 120, 135, 154, 120, 142, 134, 112, 136, 117, 92, 122, 134, 136, 136, 142, 122, 127, 141, 129, 112, 135, 130, 135, 132, 114, 136, 127, 129, 133, 141, 121, 129, 110, 127, 129, 113, 132, 131, 134, 129, 118, 109, 143, 143, 118, 114, 132, 126, 123, 131, 128, 136, 128, 126, 127, 138, 114, 139, 124, 128, 134, 140, 131, 125, 122, 102, 128, 148, 123, 113, 120, 116, 112, 114, 130, 129, 129, 121, 127, 132, 123, 131, 123, 120, 139, 128, 132, 114, 126, 144, 118, 119, 129, 112, 124, 140, 149, 144, 136, 122, 130, 111, 138, 118, 129, 110, 140, 136, 116, 119, 125, 126, 120, 126, 126, 126, 123, 128, 139, 119, 111, 118, 138, 118, 124, 124, 133, 128, 110, 127, 125, 135, 134, 111, 121, 132, 128, 113, 137, 111, 111, 116, 123, 121, 138, 124, 117, 119, 118, 115, 126, 97, 122, 131, 115, 124, 129, 107, 144, 115, 120, 117, 123, 124, 135, 127, 138, 129, 128, 138, 130, 102, 128, 125, 120, 131, 108, 150, 117, 94, 134, 127, 118, 118, 142, 112, 140, 145, 121, 114, 112, 122, 125, 115, 127, 149, 134, 124, 118, 123, 126, 134, 111, 122, 137, 131, 125, 132, 136, 109, 140, 116, 129, 137, 124, 110, 123, 130, 119, 123, 138, 140, 125, 113, 121, 114, 145, 128, 127, 114, 113, 120, 130, 132, 104, 125, 131, 121, 150, 125, 126, 114, 133, 133, 119, 115, 121, 123, 134, 140, 128, 124, 113, 140, 125, 122, 114, 112, 111, 119, 125, 132, 109, 118, 125, 118, 136, 126, 93, 130, 141, 122, 120, 127, 126, 127, 114, 117, 113, 128, 112, 115, 122, 136, 113, 135, 128, 127, 112, 101, 112, 109, 135, 136, 122, 126, 118, 137, 120, 158, 122, 117, 128, 114, 136, 135, 141, 121, 113, 130, 132, 135, 125, 121, 121, 122, 113, 128, 123, 116, 136, 114, 142, 133, 137, 110, 144, 123, 136, 114, 140, 136, 117, 105, 149, 132, 129, 133, 132, 113, 129, 128, 150, 119, 133, 123, 132, 119, 113, 129, 137, 148, 129, 120, 118, 129, 117, 126, 106, 112, 105, 123, 128, 121, 127, 114, 127, 117, 122, 148, 115, 128, 135, 117, 130, 108, 135, 130, 123, 103, 141, 120, 121, 120, 131, 145, 121, 115, 132, 116, 127, 126, 114, 131, 136, 116, 164, 118, 124, 140, 121, 108, 114, 129, 113, 122, 128, 141, 150, 119, 116, 130, 124, 140, 131, 120, 118, 117, 111, 115, 128, 134, 129, 121, 110, 127, 124, 126, 123, 136, 138, 148, 135, 122, 119, 126, 124, 137, 118, 135, 117, 123, 115, 126, 136, 147, 118, 107, 139, 125, 109, 136, 126, 112, 89, 130, 135, 128, 110, 136, 108, 119, 122, 126, 122, 108, 112, 126, 120, 98, 112, 129, 132, 134, 122, 112, 141, 115, 123, 112, 111, 128, 128, 140, 123, 129, 128, 127, 124, 127, 125, 127, 120, 109, 116, 138, 140, 115, 132, 121, 136, 121, 126, 132, 138, 119, 129, 121, 130, 121, 131, 136, 130, 135, 129, 110, 124, 112, 125, 127, 119, 113, 128, 133, 124, 107, 136, 134, 115, 112, 136, 131, 130, 130, 127, 118, 128, 106, 118, 146, 111, 130, 121, 114, 133, 111, 132, 139, 113, 128, 125, 126, 109, 133, 136, 126, 126, 125, 121, 118, 126, 135, 117, 124, 117, 109, 123, 103, 117, 91, 130, 141, 127, 117, 128, 139, 144, 129, 134, 122, 128, 114, 122, 132, 104, 123, 116, 114, 129, 136, 131, 132, 124, 119, 135, 130, 115, 125, 134, 100, 123, 119, 126, 133, 131, 141, 136, 128, 112, 120, 134, 128, 118, 119, 106, 113, 124, 126, 106, 115, 119, 149, 128, 119, 121, 127, 119, 138, 108, 139, 124, 115, 104, 113, 134, 166, 122, 119, 133, 111, 101, 126, 121, 137, 129, 129, 118, 124, 128, 118, 112, 114, 119, 132, 119, 120, 126, 141, 111, 145, 112, 121, 118, 124, 125, 119, 134, 123, 128, 105, 115, 110, 132, 118, 120, 134, 135, 119, 128, 122, 118, 113, 114, 131, 130, 99, 129, 117, 127, 127, 153, 127, 121, 126, 134, 116, 139, 130, 115, 96, 103, 133, 127, 133, 127, 121, 138, 131, 121, 134, 124, 126, 115, 120, 130, 135, 111, 122, 125, 135, 126, 124, 141, 109, 141, 122, 135, 123, 125, 123, 145, 121, 130, 124, 132, 121, 134, 133, 110, 134, 130, 130, 105, 134, 127, 127, 132, 130, 129, 143, 124, 133, 126, 114, 130, 144, 126, 156, 134, 127, 133, 102, 119, 135, 122, 129, 117, 133, 113, 130, 141, 118, 99, 135, 119, 115, 112, 120, 110, 122, 112, 135, 129, 123, 113, 130, 127, 134, 124, 123, 128, 142, 133, 144, 124, 141, 129, 119, 129, 122, 143, 127, 131, 147, 106, 122, 130, 113, 136, 123, 128, 126, 117, 135, 113, 107, 131, 120, 122, 128, 124, 121, 129, 131, 137, 140, 123, 125, 117, 129, 131, 128, 132, 107, 138, 132, 123, 131, 125, 118, 125, 141, 127, 141, 143, 136, 115, 113, 131, 123, 121, 122, 131, 128, 139, 123, 142, 117, 130, 132, 116, 121, 121, 141, 138, 130, 127, 120, 132, 123, 123, 121, 112, 118, 117, 138, 125, 136, 118, 105, 132, 112, 111, 144, 118, 123, 114, 128, 122, 114, 119, 128, 127, 129, 117, 130, 120, 125, 126, 126, 130, 119, 119, 131, 143, 134, 141, 121, 116, 153, 142, 128, 128, 120, 127, 119, 130, 123, 137, 114, 125, 119, 137, 115, 130, 118, 118, 135, 142, 121, 135, 114, 132, 146, 129, 127, 113, 138, 138, 144, 121, 127, 122, 143, 129, 130, 117, 129, 103, 129, 127, 106, 122, 130, 135, 118, 143, 144, 124, 131, 133, 142, 100, 157, 118, 131, 105, 121, 107, 116, 134, 132, 136, 122, 119, 126, 120, 143, 123, 115, 130, 147, 122, 134, 136, 101, 131, 105, 110, 139, 130, 143, 142, 113, 120, 127, 122, 150, 140, 128, 119, 126, 125, 120, 123, 120, 144, 129, 144, 136, 98, 116, 146, 116, 128, 131, 127, 111, 130, 135, 143, 128, 109, 125, 127, 124, 118, 119, 127, 124, 123, 121, 140, 125, 109, 125, 123, 133, 124, 120, 116, 132, 144, 110, 124, 128, 132, 128, 138, 121, 129, 108, 111, 126, 106, 119, 111, 116, 131, 124, 134, 118, 141, 134, 122, 128, 134, 147, 141, 148, 139, 126, 126, 129, 138, 126, 112, 131, 131, 123, 125, 133, 107, 136, 112, 132, 120, 121, 140, 138, 120, 149, 121, 134, 121, 112, 130, 126, 122, 105, 127, 109, 109, 140, 139, 121, 134, 111, 124, 144, 115, 144, 134, 126, 125, 128, 129, 126, 116, 130, 129, 128, 123, 133, 121, 131, 126, 141, 92, 131, 125, 124, 119, 130, 123, 135, 140, 123, 121, 120, 122, 100, 122, 127, 128, 126, 117, 143, 139, 133, 126, 144, 149, 129, 134, 130, 119, 128, 122, 120, 111, 114, 110, 132, 133, 112, 131, 118, 127, 123, 124, 115, 139, 128, 126, 110, 138, 132, 122, 109, 133, 122, 122, 133, 134, 148, 134, 125, 119, 134, 122, 115, 105, 128, 119, 136, 118, 132, 124, 137, 131, 132, 121, 123, 123, 121, 127, 139, 130, 122, 127, 111, 136, 126, 124, 111, 119, 143, 125, 120, 119, 127, 133, 107, 136, 114, 109, 137, 118, 120, 129, 108, 129, 109, 141, 130, 129, 139, 143, 126, 127, 123, 142, 139, 116, 136, 122, 135, 138, 147, 130, 132, 133, 142, 116, 123, 116, 127, 143, 137, 131, 125, 136, 123, 144, 131, 128, 118, 140, 143, 115, 129, 135, 128, 124, 136, 114, 118, 127, 131, 131, 115, 126, 125, 105, 118, 124, 116, 136, 117, 134, 127, 147, 131, 130, 129, 140, 140, 127, 117, 108, 155, 128, 122, 110, 124, 122, 149, 127, 127, 122, 127, 123, 133, 149, 111, 124, 107, 121, 131, 132, 126, 115, 138, 124, 149, 130, 101, 120, 124, 112, 121, 141, 122, 124, 123, 130, 119, 126, 121, 117, 117, 121, 126, 117, 125, 129, 121, 114, 131, 130, 129, 121, 146, 138, 124, 123, 130, 120, 126, 120, 128, 103, 118, 134, 130, 131, 144, 136, 126, 150, 116, 117, 107, 130, 135, 136, 134, 125, 127, 120, 115, 120, 106, 122, 112, 121, 114, 130, 113, 120, 129, 135, 130, 113, 136, 132, 109, 120, 117, 117, 125, 128, 117, 105, 118, 136, 124, 108, 128, 124, 112, 139, 140, 125, 113, 116, 132, 117, 111, 123, 97, 138, 137, 137, 140, 119, 126, 122, 114, 138, 137, 128, 133, 133, 124, 119, 121, 124, 147, 128, 150, 122, 124, 117, 125, 121, 125, 128, 139, 144, 122, 125, 120, 125, 118, 103, 116, 136, 123, 118, 132, 122, 124, 122, 112, 101, 128, 130, 129, 109, 148, 123, 119, 129, 124, 118, 122, 139, 114, 134, 128, 138, 117, 111, 127, 115, 128, 130, 129, 128, 126, 130, 132, 101, 112, 125, 119, 138, 134, 121, 134, 119, 96, 135, 127, 137, 111, 113, 131, 119, 117, 126, 118, 106, 125, 111, 113, 126, 125, 131, 115, 116, 123, 114, 126, 130, 112, 132, 120, 128, 130, 107, 131, 131, 126, 134, 128, 128, 135, 127, 112, 130, 108, 128, 125, 120, 120, 120, 143, 131, 134, 129, 121, 112, 118, 129, 129, 137, 128, 112, 130, 123, 114, 127, 119, 121, 117, 119, 116, 112, 113, 131, 131, 144, 132, 108, 129, 138, 113, 124, 131, 128, 104, 133, 122, 141, 131, 134, 136, 126, 107, 134, 111, 119, 120, 123, 126, 132, 113, 111, 125, 127, 126, 123, 126, 116, 138, 120, 123, 135, 129, 119, 130, 151, 116, 126, 124, 133, 118, 149, 131, 134, 131, 126, 144, 128, 118, 134, 124, 116, 132, 133, 127, 129, 130, 119, 129, 142, 107, 137, 123, 121, 140, 130, 117, 115, 124, 121, 127, 123, 127, 126, 117, 119, 145, 128, 128, 121, 122, 136, 130, 122, 126, 112, 135, 132, 105, 110, 122, 124, 135, 128, 131, 153, 110, 113, 117, 119, 136, 124, 123, 135, 124, 126, 145, 124, 117, 125, 126, 116, 132, 114, 128, 127, 136, 122, 121, 129, 120, 141, 122, 136, 117, 103, 125, 123, 117, 117, 126, 132, 110, 121, 132, 118, 140, 125, 105, 142, 150, 134, 151, 130, 150, 134, 131, 126, 109, 115, 117, 136, 144, 129, 120, 132, 141, 122, 109, 126, 126, 139, 129, 131, 116, 126, 126, 137, 125, 117, 129, 115, 105, 126, 138, 116, 127, 117, 129, 118, 125, 113, 121, 130, 130, 127, 128, 133, 120, 122, 121, 106, 123, 146, 122, 132, 117, 152, 124, 123, 135, 119, 124, 129, 122, 109, 102, 113, 117, 135, 127, 117, 117, 134, 123, 117, 118, 118, 137, 124, 132, 127, 126, 131, 128, 117, 108, 146, 110, 120, 132, 121, 124, 135, 141, 115, 134, 129, 126, 127, 131, 133, 134, 129, 120, 127, 139, 129, 111, 104, 146, 122, 147, 141, 112, 123, 123, 120, 121, 129, 121, 133, 124, 138, 135, 130, 146, 132, 139, 126, 121, 133, 142, 118, 124, 139, 135, 128, 112, 118, 128, 115, 106, 124, 140, 114, 125, 121, 135, 129, 118, 108, 103, 126, 114, 117, 130, 128, 112, 110, 128, 136, 133, 122, 125, 114, 132, 102, 111, 129, 133, 137, 114, 114, 122, 121, 109, 130, 123, 130, 138, 126, 119, 147, 126, 136, 115, 128, 141, 130, 135, 135, 125, 127, 112, 122, 126, 133, 125, 121, 142, 143, 122, 133, 134, 139, 113, 107, 123, 135, 121, 116, 125, 128, 120, 146, 123, 126, 108, 131, 119, 123, 127, 133, 122, 135, 130, 131, 126, 114, 129, 112, 120, 134, 117, 135, 112, 128, 147, 126, 118, 131, 134, 112, 107, 127, 128, 152, 130, 129, 106, 128, 114, 122, 141, 135, 145, 132, 127, 139, 122, 117, 122, 133, 145, 129, 112, 117, 114, 117, 137, 140, 127, 129, 130, 139, 128, 133, 102, 121, 128, 120, 123, 129, 123, 121, 127, 136, 113, 122, 109, 133, 130, 106, 127, 106, 127, 115, 122, 145, 122, 125, 155, 117, 116, 127, 133, 122, 123, 119, 124, 127, 151, 140, 138, 141, 125, 120, 116, 137, 120, 128, 134, 142, 132, 140, 124, 116, 112, 133, 128, 155, 138, 131, 124, 127, 132, 127, 119, 122, 126, 125, 142, 125, 134, 129, 157, 135, 133, 121, 125, 128, 125, 135, 133, 127, 139, 97, 133, 116, 131, 118, 119, 129, 119, 120, 130, 121, 138, 121, 121, 120, 127, 127, 114, 121, 128, 128, 132, 124, 116, 106, 126, 124, 111, 125, 131, 119, 123, 130, 115, 121, 115, 126, 126, 132, 126, 112, 134, 131, 119, 116, 128, 129, 127, 122, 120, 150, 123, 119, 122, 136, 129, 120, 106, 122, 129, 104, 130, 125, 119, 135, 128, 137, 133, 114, 115, 123, 133, 132, 98, 123, 129, 119, 118, 118, 102, 123, 122, 134, 123, 133, 143, 123, 107, 131, 110, 127, 125, 122, 151, 125, 144, 127, 122, 126, 127, 133, 120, 124, 126, 108, 119, 125, 132, 111, 137, 116, 121, 131, 124, 121, 100, 114, 158, 129, 105, 134, 115, 137, 128, 129, 127, 123, 117, 128, 129, 118, 119, 124, 111, 138, 130, 106, 126, 133, 140, 131, 126, 135, 137, 115, 127, 128, 129, 128, 111, 127, 130, 114, 119, 127, 120, 117, 129, 131, 121, 135, 120, 123, 112, 121, 131, 135, 120, 131, 116, 133, 104, 114, 130, 113, 131, 119, 124, 132, 130, 133, 124, 116, 113, 148, 124, 124, 126, 110, 127, 106, 129, 117, 127, 158, 120, 146, 118, 134, 124, 136, 110, 138, 126, 133, 124, 130, 138, 118, 115, 128, 121, 135, 125, 118, 141, 123, 130, 141, 108, 130, 114, 136, 112, 118, 112, 131, 122, 128, 143, 115, 113, 137, 132, 132, 116, 140, 139, 115, 120, 130, 131, 124, 130, 113, 122, 124, 123, 107, 100, 126, 117, 130, 128, 111, 128, 120, 116, 119, 136, 141, 125, 134, 124, 136, 124, 129, 119, 112, 115, 120, 119, 134, 125, 129, 113, 119, 122, 145, 111, 135, 125, 127, 119, 122, 139, 115, 121, 117, 130, 121, 110, 118, 134, 111, 130, 130, 130, 136, 124, 134, 110, 128, 109, 128, 132, 117, 132, 122, 119, 132, 128, 115, 124, 137, 115, 134, 104, 126, 137, 124, 121, 129, 125, 137, 146, 136, 124, 134, 103, 122, 132, 119, 114, 128, 112, 136, 122, 119, 137, 119, 116, 128, 133, 114, 125, 123, 115, 138, 139, 116, 140, 126, 105, 140, 143, 116, 119, 124, 130, 125, 128, 114, 116, 129, 139, 132, 140, 114, 121, 133, 111, 114, 137, 104, 130, 118, 129, 153, 138, 119, 117, 114, 135, 117, 143, 124, 125, 124, 127, 121, 121, 130, 109, 117, 131, 143, 118, 134, 125, 101, 115, 138, 117, 130, 127, 123, 128, 134, 129, 148, 134, 128, 120, 121, 134, 114, 120, 126, 120, 109, 122, 132, 117, 115, 126, 122, 129, 135, 125, 126, 131, 119, 118, 106, 142, 120, 130, 113, 132, 131, 123, 109, 127, 121, 132, 111, 126, 115, 123, 119, 129, 128, 123, 116, 111, 131, 138, 122, 154, 125, 130, 120, 115, 113, 133, 113, 121, 130, 115, 124, 119, 130, 129, 138, 111, 133, 119, 123, 123, 108, 125, 123, 138, 106, 139, 117, 111, 114, 126, 134, 119, 107, 121, 115, 119, 134, 117, 146, 139, 134, 116, 142, 140, 125, 115, 151, 128, 134, 129, 119, 123, 115, 108, 122, 133, 129, 129, 129, 143, 117, 110, 134, 116, 113, 118, 127, 123, 127, 127, 131, 127, 142, 142, 135, 129, 124, 105, 121, 126, 135, 131, 117, 126, 140, 133, 146, 139, 129, 128, 130, 136, 140, 118, 126, 136, 121, 121, 127, 129, 106, 141, 121, 127, 125, 123, 129, 125, 121, 117, 121, 104, 130, 109, 124, 132, 118, 118, 127, 120, 131, 139, 136, 131, 104, 109, 127, 113, 113, 114, 128, 119, 135, 110, 122, 120, 124, 125, 133, 141, 126, 129, 115, 118, 124, 115, 111, 120, 139, 115, 124, 139, 103, 132, 147, 139, 126, 124, 138, 121, 131, 107, 131, 135, 130, 126, 123, 121, 109, 127, 119, 121, 101, 107, 146, 112, 125, 132, 130, 99, 122, 127, 147, 112, 155, 120, 132, 126, 124, 126, 113, 131, 114, 129, 139, 122, 109, 144, 129, 123, 127, 124, 127, 140, 135, 128, 143, 130, 124, 134, 121, 123, 111, 120, 120, 131, 139, 118, 130, 114, 133, 134, 116, 120, 129, 121, 132, 125, 137, 124, 128, 132, 110, 128, 117, 135, 138, 113, 126, 127, 138, 114, 142, 115, 155, 115, 121, 123, 117, 135, 120, 117, 132, 133, 120, 118, 121, 113, 150, 123, 132, 130, 118, 138, 129, 125, 123, 128, 131, 123, 114, 124, 115, 121, 135, 131, 126, 130, 146, 133, 139, 121, 132, 114, 108, 134, 130, 132, 121, 119, 149, 116, 133, 133, 125, 122, 141, 130, 112, 124, 125, 133, 134, 140, 117, 137, 113, 121, 123, 128, 134, 137, 116, 145, 123, 126, 133, 125, 117, 107, 139, 118, 122, 118, 117, 136, 127, 140, 114, 109, 137, 126, 124, 122, 137, 133, 124, 125, 129, 125, 129, 134, 128, 124, 120, 119, 141, 136, 121, 116, 125, 130, 122, 132, 131, 116, 137, 121, 138, 114, 128, 121, 116, 116, 127, 158, 124, 116, 128, 128, 117, 131, 149, 120, 136, 147, 116, 156, 120, 120, 127, 126, 118, 128, 123, 128, 115, 127, 135, 130, 125, 110, 109, 130, 125, 111, 125, 108, 107, 124, 127, 118, 123, 109, 123, 110, 134, 107, 122, 119, 132, 122, 111, 150, 119, 117, 138, 118, 123, 121, 128, 118, 111, 108, 126, 122, 120, 115, 116, 115, 115, 121, 132, 136, 137, 131, 113, 128, 148, 112, 107, 119, 120, 130, 113, 138, 130, 111, 133, 121, 128, 143, 124, 137, 131, 130, 117, 114, 140, 114, 110, 134, 138, 131, 116, 128, 110, 124, 119, 140, 129, 132, 145, 141, 103, 139, 142, 142, 128, 133, 137, 104, 120, 129, 121, 121, 112, 115, 115, 118, 120, 137, 111, 122, 123, 109, 135, 117, 130, 135, 127, 114, 113, 127, 119, 124, 137, 117, 115, 130, 147, 126, 113, 121, 116, 130, 118, 123, 119, 118, 121, 124, 126, 112, 127, 139, 131, 130, 139, 131, 124, 127, 122, 117, 127, 142, 140, 101, 106, 141, 128, 124, 139, 142, 116, 141, 126, 125, 110, 125, 122, 113, 111, 116, 130, 128, 111, 122, 147, 137, 137, 140, 124, 124, 124, 120, 109, 127, 124, 149, 129, 128, 115, 122, 125, 121, 124, 123, 113, 108, 132, 132, 123, 139, 118, 133, 145, 144, 131, 120, 122, 134, 116, 117, 119, 133, 148, 134, 133, 109, 136, 119, 132, 117, 115, 141, 122, 125, 129, 140, 119, 118, 125, 111, 104, 119, 127, 108, 125, 139, 124, 126, 103, 113, 129, 128, 130, 122, 141, 127, 134, 139, 127, 130, 135, 104, 127, 133, 125, 122, 114, 122, 122, 135, 132, 118, 124, 125, 115, 134, 123, 109, 137, 129, 129, 122, 123, 113, 136, 134, 137, 113, 121, 116, 117, 120, 137, 129, 106, 95, 105, 117, 133, 109, 127, 117, 126, 127, 132, 117, 114, 140, 149, 125, 135, 132, 136, 120, 118, 119, 124, 127, 147, 115, 120, 149, 143, 123, 133, 131, 122, 131, 132, 131, 130, 133, 132, 112, 117, 110, 113, 113, 128, 121, 127, 146, 122, 108, 113, 127, 102, 120, 114, 126, 121, 138, 111, 109, 133, 118, 133, 116, 115, 120, 135, 137, 126, 135, 115, 124, 136, 129, 115, 117, 137, 113, 121, 125, 132, 127, 121, 128, 125, 135, 123, 111, 127, 119, 125, 133, 142, 121, 128, 121, 112, 144, 123, 132, 116, 112, 157, 119, 137, 122, 126, 123, 124, 120, 99, 141, 129, 125, 117, 117, 117, 122, 112, 113, 114, 109, 125, 126, 138, 140, 130, 130, 126, 134, 130, 120, 113, 136, 127, 109, 126, 117, 119, 122, 122, 144, 118, 106, 128, 116, 112, 106, 139, 128, 123, 122, 117, 128, 129, 137, 131, 127, 120, 127, 126, 131, 128, 133, 124, 123, 122, 124, 115, 129, 117, 117, 134, 124, 118, 134, 132, 135, 120, 133, 121, 127, 142, 109, 114, 125, 113, 142, 135, 127, 138, 129, 129, 111, 126, 127, 112, 116, 123, 122, 116, 143, 130, 111, 120, 144, 124, 135, 110, 109, 119, 126, 145, 131, 134, 109, 122, 111, 117, 133, 133, 112, 147, 143, 132, 157, 144, 124, 128, 125, 119, 133, 123, 115, 131, 106, 122, 128, 131, 127, 127, 122, 147, 116, 126, 143, 127, 119, 129, 115, 115, 149, 125, 123, 108, 138, 127, 136, 128, 137, 143, 140, 127, 126, 118, 113, 127, 134, 121, 116, 126, 129, 137, 135, 125, 129, 130, 104, 133, 134, 115, 135, 123, 152, 128, 117, 126, 109, 125, 129, 129, 124, 132, 113, 117, 114, 125, 132, 132, 120, 119, 133, 155, 131, 130, 115, 140, 121, 138, 120, 130, 121, 121, 109, 127, 133, 114, 126, 125, 119, 123, 112, 136, 123, 130, 134, 114, 126, 124, 115, 125, 128, 115, 112, 152, 116, 126, 131, 132, 128, 133, 127, 135, 124, 127, 123, 119, 113, 118, 113, 137, 112, 121, 137, 105, 139, 126, 112, 120, 124, 120, 128, 128, 122, 117, 121, 138, 145, 135, 113, 132, 120, 124, 114, 143, 126, 119, 146, 100, 111, 115, 133, 121, 113, 117, 125, 132, 115, 131, 135, 121, 130, 102, 130, 125, 137, 131, 107, 117, 133, 119, 135, 145, 119, 123, 121, 118, 134, 122, 107, 132, 135, 114, 132, 116, 130, 137, 131, 106, 144, 130, 140, 117, 113, 129, 126, 140, 139, 124, 115, 128, 126, 108, 112, 127, 148, 120, 148, 114, 121, 120, 137, 109, 132, 133, 124, 121, 112, 111, 129, 135, 121, 127, 125, 139, 128, 130, 116, 119, 107, 129, 142, 118, 116, 122, 142, 144, 126, 126, 138, 131, 119, 148, 102, 123, 120, 107, 112, 129, 126, 124, 114, 142, 120, 121, 123, 124, 139, 132, 123, 142, 128, 104, 137, 134, 152, 129, 125, 126, 137, 137, 112, 112, 121, 138, 130, 137, 121, 136, 119, 139, 148, 120, 118, 111, 106, 119, 131, 130, 146, 103, 113, 133, 119, 128, 123, 124, 136, 127, 129, 104, 131, 120, 123, 123, 119, 107, 126, 110, 121, 140, 131, 125, 126, 124, 114, 131, 118, 112, 121, 132, 129, 127, 123, 109, 118, 133, 139, 114, 132, 146, 131, 129, 120, 123, 120, 134, 145, 126, 122, 126, 108, 122, 120, 117, 142, 117, 131, 120, 139, 117, 145, 120, 128, 125, 139, 135, 106, 121, 123, 118, 115, 117, 141, 134, 133, 137, 133, 120, 129, 118, 127, 117, 139, 119, 123, 125, 117, 119, 121, 125, 118, 134, 126, 131, 113, 109, 149, 133, 139, 130, 135, 123, 133, 123, 127, 107, 128, 140, 123, 118, 136, 122, 115, 122, 130, 127, 140, 140, 133, 126, 142, 123, 133, 128, 143, 118, 113, 136, 136, 121, 138, 146, 131, 133, 127, 136, 119, 112, 141, 134, 117, 115, 105, 135, 105, 137, 113, 136, 121, 114, 102, 121, 133, 125, 121, 124, 121, 125, 113, 114, 147, 136, 127, 132, 133, 116, 131, 131, 135, 127, 128, 122, 125, 116, 135, 100, 111, 116, 132, 122, 115, 138, 135, 138, 134, 148, 126, 132, 110, 133, 141, 122, 148, 106, 128, 123, 130, 134, 126, 128, 131, 116, 124, 146, 124, 114, 129, 117, 134, 131, 135, 138, 138, 126, 128, 119, 133, 121, 136, 112, 120, 129, 141, 113, 127, 107, 111, 105, 103, 121, 124, 119, 107, 128, 116, 115, 120, 118, 130, 139, 132, 123, 117, 135, 127, 124, 124, 134, 118, 115, 122, 116, 119, 146, 127, 142, 138, 110, 127, 123, 126, 146, 142, 120, 125, 146, 127, 119, 125, 141, 132, 123, 127, 146, 111, 114, 129, 120, 123, 128, 120, 129, 124, 123, 124, 133, 136, 134, 148, 128, 111, 129, 122, 131, 131, 133, 123, 137, 121, 149, 119, 131, 127, 141, 126, 130, 119, 129, 116, 114, 117, 97, 107, 132, 108, 126, 130, 135, 134, 141, 128, 124, 130, 128, 135, 107, 124, 117, 133, 123, 127, 116, 118, 129, 116, 105, 120, 123, 123, 152, 110, 116, 127, 122, 136, 121, 134, 122, 129, 126, 118, 112, 125, 140, 127, 148, 127, 123, 133, 127, 108, 133, 118, 135, 138, 130, 115, 119, 124, 106, 124, 123, 132, 133, 129, 121, 140, 130, 136, 104, 129, 130, 117, 139, 125, 127, 143, 152, 112, 119, 140, 131, 129, 137, 131, 115, 126, 123, 129, 120, 119, 110, 125, 134, 140, 130, 128, 122, 117, 159, 124, 118, 121, 122, 102, 120, 123, 132, 122, 125, 116, 130, 120, 113, 104, 132, 135, 122, 122, 132, 125, 137, 123, 114, 130, 131, 143, 122, 127, 115, 129, 113, 122, 145, 124, 117, 114, 133, 131, 143, 114, 117, 118, 113, 150, 137, 127, 127, 130, 106, 117, 129, 135, 140, 135, 109, 105, 116, 116, 106, 126, 140, 138, 116, 138, 104, 137, 127, 135, 121, 135, 133, 128, 124, 105, 125, 127, 138, 108, 125, 142, 124, 114, 110, 130, 112, 121, 114, 113, 122, 116, 115, 125, 117, 128, 123, 129, 136, 115, 111, 130, 133, 124, 127, 113, 123, 126, 118, 124, 134, 112, 125, 120, 133, 116, 119, 132, 132, 128, 119, 124, 127, 136, 112, 124, 122, 126, 113, 124, 112, 124, 143, 131, 129, 128, 126, 116, 122, 117, 111, 145, 122, 118, 130, 122, 124, 137, 108, 127, 117, 135, 128, 154, 116, 101, 140, 105, 110, 131, 120, 127, 109, 136, 142, 113, 135, 127, 114, 113, 136, 128, 119, 137, 126, 107, 114, 118, 136, 131, 123, 104, 143, 127, 127, 132, 124, 138, 135, 99, 123, 121, 110, 134, 121, 126, 139, 117, 123, 133, 123, 131, 141, 127, 115, 112, 122, 131, 119, 134, 126, 126, 128, 141, 120, 110, 112, 115, 145, 131, 101, 133, 106, 134, 128, 112, 120, 106, 140, 127, 123, 130, 137, 119, 119, 112, 126, 129, 118, 136, 138, 138, 134, 129, 111, 125, 133, 128, 132, 120, 109, 122, 119, 128, 132, 119, 121, 118, 139, 132, 128, 126, 116, 109, 119, 113, 125, 137, 135, 138, 128, 115, 121, 127, 126, 115, 145, 150, 136, 133, 140, 134, 124, 116, 113, 125, 122, 115, 125, 153, 124, 119, 126, 107, 127, 122, 128, 129, 129, 115, 110, 128, 118, 117, 119, 133, 137, 143, 113, 133, 114, 115, 115, 112, 152, 146, 129, 142, 122, 149, 148, 115, 119, 120, 132, 128, 140, 124, 116, 133, 136, 115, 133, 120, 107, 135, 137, 119, 129, 122, 134, 135, 114, 124, 105, 141, 128, 140, 117, 141, 142, 120, 138, 123, 111, 102, 129, 126, 113, 131, 126, 136, 125, 117, 117, 114, 126, 123, 114, 139, 139, 120, 124, 112, 135, 118, 120, 124, 134, 126, 136, 113, 118, 125, 130, 122, 121, 124, 138, 119, 120, 131, 126, 129, 135, 122, 138, 133, 131, 140, 125, 120, 118, 132, 148, 120, 133, 130, 120, 120, 122, 127, 114, 147, 139, 114, 126, 119, 121, 169, 139, 127, 113, 118, 116, 150, 115, 137, 131, 128, 123, 139, 134, 119, 112, 116, 114, 140, 112, 156, 144, 132, 129, 113, 139, 116, 144, 134, 129, 107, 119, 129, 110, 123, 129, 137, 108, 126, 130, 123, 130, 126, 133, 125, 141, 112, 133, 120, 130, 116, 128, 111, 125, 129, 103, 141, 114, 129, 134, 116, 125, 107, 106, 123, 125, 134, 129, 111, 126, 113, 127, 109, 130, 128, 122, 117, 127, 120, 121, 137, 117, 125, 101, 119, 113, 133, 117, 124, 148, 107, 129, 114, 117, 127, 120, 118, 117, 132, 129, 140, 118, 121, 138, 112, 128, 119, 132, 157, 121, 151, 129, 122, 122, 116, 127, 118, 117, 126, 115, 146, 133, 127, 104, 133, 145, 125, 128, 153, 130, 131, 130, 143, 128, 138, 124, 115, 138, 116, 134, 126, 130, 110, 120, 147, 128, 121, 143, 138, 134, 124, 126, 134, 116, 135, 113, 133, 100, 110, 101, 120, 126, 141, 126, 132, 120, 128, 119, 127, 161, 114, 102, 138, 121, 121, 105, 124, 162, 152, 133, 123, 115, 144, 127, 127, 122, 116, 126, 139, 129, 110, 122, 119, 140, 130, 125, 124, 130, 117, 151, 120, 134, 119, 122, 130, 136, 131, 130, 111, 118, 131, 125, 123, 128, 122, 128, 127, 132, 120, 132, 130, 156, 117, 121, 116, 123, 131, 125, 129, 136, 112, 122, 122, 141, 124, 114, 121, 125, 138, 129, 120, 124, 119, 116, 131, 113, 119, 137, 133, 119, 136, 120, 131, 114, 133, 138, 127, 137, 119, 130, 123, 129, 122, 99, 114, 131, 126, 139, 129, 137, 135, 123, 113, 126, 118, 107, 116, 119, 118, 119, 133, 121, 124, 131, 110, 120, 116, 127, 138, 123, 121, 144, 118, 132, 171, 118, 123, 125, 146, 123, 124, 148, 128, 134, 130, 124, 144, 128, 137, 113, 112, 114, 123, 125, 138, 119, 132, 120, 133, 133, 141, 111, 144, 136, 140, 144, 121, 124, 129, 119, 123, 129, 117, 136, 114, 117, 133, 123, 124, 141, 111, 124, 131, 126, 113, 124, 155, 154, 129, 136, 130, 109, 117, 124, 129, 130, 116, 113, 103, 106, 124, 124, 144, 128, 124, 129, 131, 110, 128, 115, 106, 130, 121, 133, 134, 112, 128, 141, 122, 129, 126, 125, 134, 124, 114, 119, 118, 111, 147, 129, 139, 129, 123, 138, 144, 117, 118, 139, 129, 126, 125, 118, 136, 108, 110, 112, 124, 117, 123, 154, 128, 122, 121, 139, 130, 123, 119, 112, 147, 126, 130, 148, 125, 117, 92, 127, 149, 123, 126, 129, 130, 119, 114, 115, 115, 124, 103, 121, 117, 124, 123, 115, 106, 96, 129, 117, 130, 127, 118, 126, 123, 121, 117, 115, 139, 113, 137, 125, 115, 137, 128, 115, 125, 121, 136, 127, 146, 128, 137, 126, 136, 133, 135, 130, 109, 113, 123, 117, 136, 130, 117, 122, 113, 132, 128, 154, 123, 134, 112, 122, 124, 117, 130, 123, 123, 131, 127, 121, 121, 121, 133, 137, 110, 127, 121, 111, 115, 131, 121, 145, 132, 109, 129, 142, 138, 122, 133, 117, 142, 119, 133, 106, 123, 120, 112, 130, 130, 127, 134, 139, 128, 135, 120, 104, 128, 130, 120, 95, 139, 141, 119, 123, 125, 122, 135, 115, 114, 129, 140, 133, 111, 128, 138, 134, 126, 138, 103, 135, 125, 130, 127, 128, 137, 114, 138, 109, 130, 131, 123, 123, 110, 138, 143, 132, 131, 130, 136, 112, 126, 146, 120, 133, 128, 138, 109, 144, 125, 123, 126, 124, 138, 102, 127, 115, 135, 120, 111, 107, 127, 109, 100, 130, 137, 104, 115, 119, 144, 120, 149, 151, 125, 117, 129, 129, 123, 114, 121, 124, 133, 123, 137, 115, 138, 125, 117, 117, 110, 137, 117, 129, 114, 118, 129, 126, 111, 138, 109, 122, 112, 122, 119, 119, 129, 134, 120, 124, 142, 134, 115, 131, 131, 131, 108, 126, 113, 139, 124, 125, 125, 137, 112, 117, 127, 123, 127, 141, 122, 119, 131, 119, 125, 126, 127, 123, 148, 141, 119, 125, 126, 133, 118, 125, 109, 129, 127, 124, 117, 129, 146, 138, 111, 112, 123, 110, 124, 145, 116, 125, 103, 141, 122, 131, 138, 136, 127, 109, 131, 127, 137, 126, 116, 121, 124, 123, 121, 113, 126, 125, 108, 120, 138, 115, 111, 131, 125, 157, 125, 102, 133, 128, 119, 115, 130, 128, 141, 137, 126, 152, 121, 126, 127, 136, 131, 119, 109, 133, 137, 121, 149, 137, 121, 120, 129, 120, 123, 121, 124, 156, 117, 118, 123, 139, 130, 127, 119, 117, 119, 142, 130, 137, 121, 124, 128, 114, 121, 125, 134, 130, 128, 126, 132, 118, 120, 119, 143, 137, 130, 126, 117, 135, 123, 116, 133, 119, 120, 133, 139, 130, 135, 147, 126, 117, 113, 128, 112, 120, 125, 126, 116, 123, 130, 114, 136, 110, 124, 139, 123, 144, 130, 135, 141, 124, 133, 140, 142, 123, 117, 120, 121, 126, 135, 153, 129, 133, 127, 124, 124, 131, 136, 123, 121, 125, 112, 132, 120, 119, 123, 127, 127, 124, 120, 138, 128, 107, 138, 123, 126, 136, 134, 127, 141, 114, 121, 138, 129, 112, 124, 129, 127, 133, 138, 128, 139, 129, 130, 118, 131, 127, 130, 133, 107, 143, 110, 128, 144, 117, 116, 117, 116, 132, 127, 124, 118, 110, 162, 130, 120, 101, 116, 128, 108, 112, 106, 123, 123, 127, 146, 131, 124, 124, 133, 127, 126, 129, 117, 123, 125, 112, 122, 128, 130, 134, 123, 127, 114, 158, 119, 133, 118, 129, 136, 123, 131, 139, 123, 125, 129, 121, 115, 132, 122, 119, 123, 118, 127, 146, 119, 133, 129, 112, 131, 132, 117, 123, 136, 131, 127, 117, 125, 128, 118, 131, 123, 143, 114, 122, 120, 109, 115, 113, 113, 126, 118, 98, 120, 129, 119, 127, 98, 125, 138, 121, 137, 125, 124, 140, 119, 120, 138, 125, 117, 134, 126, 130, 135, 128, 120, 122, 125, 132, 119, 137, 126, 124, 128, 123, 122, 110, 139, 115, 143, 123, 113, 124, 117, 119, 129, 122, 125, 114, 122, 119, 126, 86, 121, 107, 124, 120, 143, 122, 125, 119, 139, 133, 128, 133, 117, 137, 118, 138, 121, 128, 135, 125, 121, 140, 114, 120, 119, 118, 144, 131, 129, 142, 131, 120, 122, 121, 127, 125, 129, 121, 130, 104, 123, 111, 112, 104, 131, 145, 126, 122, 118, 126, 117, 117, 128, 145, 125, 111, 132, 111, 132, 125, 122, 130, 134, 121, 127, 108, 128, 123, 122, 147, 127, 132, 114, 113, 122, 146, 123, 122, 135, 127, 130, 125, 119, 139, 118, 126, 120, 125, 125, 130, 140, 114, 116, 136, 126, 128, 123, 140, 132, 127, 115, 121, 112, 149, 114, 115, 112, 127, 123, 133, 137, 122, 131, 129, 115, 129, 125, 124, 128, 106, 128, 124, 114, 128, 120, 116, 119, 121, 141, 123, 148, 130, 106, 124, 123, 139, 145, 117, 131, 144, 117, 131, 130, 128, 132, 127, 133, 120, 122, 120, 137, 116, 122, 130, 132, 128, 120, 127, 112, 130, 117, 129, 122, 122, 119, 130, 116, 119, 129, 119, 135, 115, 124, 131, 120, 128, 116, 130, 130, 125, 127, 127, 127, 123, 133, 130, 124, 111, 124, 120, 138, 139, 121, 110, 143, 127, 129, 105, 129, 120, 127, 108, 128, 116, 141, 124, 125, 119, 134, 108, 128, 123, 124, 114, 118, 135, 124, 123, 119, 125, 119, 117, 128, 117, 119, 124, 140, 135, 121, 129, 135, 109, 124, 121, 132, 120, 131, 130, 109, 153, 125, 132, 131, 134, 119, 124, 118, 111, 112, 122, 119, 137, 126, 117, 123, 118, 127, 120, 128, 127, 128, 111, 124, 132, 136, 118, 125, 129, 118, 110, 107, 109, 125, 130, 119, 114, 129, 125, 127, 128, 126, 126, 123, 133, 137, 130, 127, 124, 106, 138, 129, 136, 131, 137, 125, 108, 126, 126, 121, 132, 135, 121, 121, 128, 129, 134, 120, 136, 138, 141, 124, 108, 109, 125, 146, 139, 135, 130, 124, 133, 118, 132, 85, 140, 130, 125, 111, 123, 127, 127, 134, 150, 136, 141, 114, 126, 112, 125, 118, 136, 114, 115, 125, 122, 137, 113, 111, 131, 133, 144, 121, 114, 131, 126, 126, 121, 123, 109, 120, 121, 118, 124, 116, 122, 126, 116, 121, 123, 119, 162, 126, 110, 115, 133, 126, 137, 112, 114, 131, 94, 125, 126, 106, 144, 121, 114, 165, 126, 133, 125, 121, 110, 124, 115, 120, 120, 137, 126, 125, 137, 131, 138, 128, 129, 142, 114, 111, 107, 118, 98, 123, 126, 132, 106, 123, 136, 128, 129, 126, 128, 124, 120, 142, 125, 130, 124, 132, 124, 102, 119, 126, 137, 134, 118, 131, 127, 117, 135, 120, 137, 115, 132, 133, 137, 109, 119, 118, 137, 134, 118, 126, 144, 122, 120, 107, 118, 134, 112, 134, 120, 124, 148, 138, 130, 133, 129, 129, 124, 127, 115, 125, 124, 120, 107, 120, 124, 120, 119, 123, 128, 114, 124, 126, 138, 129, 136, 122, 120, 119, 122, 110, 110, 127, 131, 122, 134, 131, 134, 107, 103, 112, 127, 125, 139, 128, 145, 117, 110, 126, 127, 124, 130, 111, 131, 125, 124, 111, 146, 119, 118, 121, 121, 130, 115, 127, 124, 126, 140, 122, 129, 142, 132, 131, 109, 128, 126, 139, 128, 126, 120, 128, 130, 117, 122, 121, 111, 118, 134, 130, 138, 116, 119, 107, 134, 128, 119, 120, 127, 129, 127, 122, 127, 113, 111, 124, 128, 133, 118, 121, 121, 112, 118, 111, 118, 143, 131, 110, 138, 147, 115, 113, 115, 116, 119, 137, 135, 131, 131, 123, 131, 114, 139, 126, 131, 124, 120, 110, 124, 134, 129, 115, 121, 129, 115, 120, 136, 135, 141, 118, 122, 139, 127, 121, 114, 119, 130, 135, 115, 112, 127, 136, 120, 132, 139, 130, 134, 118, 133, 146, 124, 129, 140, 132, 134, 121, 107, 114, 120, 128, 118, 124, 117, 121, 130, 128, 141, 126, 109, 128, 142, 99, 133, 131, 117, 120, 108, 149, 122, 128, 126, 125, 144, 130, 125, 130, 120, 131, 137, 117, 120, 109, 120, 114, 121, 123, 120, 121, 135, 123, 126, 128, 123, 118, 131, 124, 136, 126, 128, 118, 150, 125, 132, 115, 130, 120, 125, 126, 135, 114, 130, 140, 135, 124, 149, 127, 145, 120, 125, 129, 129, 124, 132, 127, 118, 136, 129, 134, 129, 123, 142, 114, 135, 129, 132, 122, 128, 122, 137, 116, 124, 136, 123, 129, 117, 114, 120, 139, 127, 130, 122, 147, 128, 140, 121, 137, 121, 132, 130, 115, 135, 137, 119, 139, 135, 129, 125, 123, 137, 134, 117, 134, 122, 168, 129, 119, 141, 150, 133, 176, 130, 113, 110, 139, 133, 125, 142, 125, 133, 121, 118, 116, 127, 119, 127, 115, 146, 149, 124, 125, 135, 138, 131, 122, 128, 120, 131, 123, 125, 129, 122, 136, 128, 143, 138, 124, 111, 120, 140, 129, 120, 133, 117, 119, 145, 138, 122, 136, 115, 152, 117, 142, 113, 123, 116, 127, 116, 138, 116, 140, 106, 121, 109, 124, 133, 109, 112, 138, 130, 114, 120, 127, 121, 126, 128, 147, 128, 131, 125, 121, 108, 119, 114, 136, 120, 124, 136, 130, 115, 114, 120, 125, 121, 134, 135, 133, 115, 122, 126, 124, 119, 118, 124, 129, 125, 116, 126, 116, 125, 134, 114, 139, 116, 104, 125, 132, 124, 113, 131, 112, 124, 130, 120, 137, 126, 121, 117, 132, 113, 127, 123, 130, 119, 118, 123, 117, 150, 133, 127, 113, 136, 117, 124, 115, 117, 124, 128, 119, 131, 123, 129, 136, 120, 139, 126, 127, 130, 118, 131, 105, 126, 126, 119, 129, 124, 124, 143, 133, 122, 102, 122, 142, 117, 121, 119, 108, 123, 138, 127, 115, 129, 110, 134, 124, 123, 131, 119, 131, 141, 151, 121, 125, 109, 141, 131, 109, 131, 113, 119, 109, 124, 123, 118, 122, 106, 121, 122, 123, 107, 126, 115, 125, 142, 121, 110, 120, 142, 117, 115, 113, 119, 119, 120, 131, 131, 119, 106, 113, 141, 136, 139, 125, 118, 127, 126, 116, 124, 125, 124, 116, 126, 132, 113, 132, 113, 138, 127, 139, 137, 126, 124, 129, 132, 147, 127, 122, 140, 146, 133, 114, 116, 133, 124, 128, 132, 123, 133, 116, 113, 136, 163, 112, 116, 117, 111, 142, 124, 136, 118, 132, 98, 121, 116, 119, 129, 126, 119, 131, 122, 140, 131, 122, 125, 141, 141, 125, 109, 105, 98, 127, 133, 136, 129, 116, 124, 128, 128, 131, 135, 124, 142, 129, 129, 122, 134, 123, 126, 125, 135, 132, 115, 121, 124, 130, 136, 125, 116, 115, 122, 120, 132, 131, 125, 126, 127, 120, 117, 119, 139, 142, 125, 129, 140, 130, 104, 130, 139, 118, 116, 122, 120, 113, 140, 119, 113, 136, 127, 128, 107, 139, 133, 123, 125, 137, 115, 150, 114, 136, 126, 128, 114, 125, 136, 130, 105, 140, 128, 105, 125, 129, 125, 112, 128, 123, 116, 106, 139, 136, 135, 128, 131, 122, 118, 124, 121, 126, 128, 126, 135, 132, 130, 140, 116, 142, 134, 127, 119, 122, 132, 124, 119, 121, 133, 126, 118, 136, 114, 118, 117, 137, 122, 144, 123, 121, 114, 121, 121, 118, 124, 113, 130, 120, 125, 126, 124, 123, 127, 124, 120, 113, 128, 139, 123, 128, 135, 126, 117, 122, 137, 128, 130, 130, 139, 124, 133, 140, 133, 140, 117, 116, 110, 128, 104, 145, 140, 120, 126, 128, 134, 132, 120, 134, 136, 136, 117, 135, 137, 125, 123, 113, 126, 128, 131, 127, 124, 128, 114, 141, 106, 144, 123, 98, 113, 117, 134, 137, 122, 121, 128, 123, 135, 115, 120, 107, 106, 128, 123, 126, 135, 116, 130, 133, 118, 106, 126, 117, 127, 114, 116, 120, 133, 114, 126, 113, 126, 129, 125, 117, 132, 129, 122, 126, 120, 119, 146, 127, 120, 134, 138, 135, 131, 141, 143, 115, 109, 140, 128, 120, 114, 126, 119, 123, 124, 132, 135, 115, 128, 135, 122, 138, 131, 106, 127, 156, 123, 135, 129, 111, 121, 119, 125, 127, 123, 118, 131, 132, 126, 118, 141, 123, 141, 116, 129, 127, 149, 116, 129, 113, 131, 129, 130, 132, 122, 122, 128, 128, 126, 119, 132, 136, 132, 117, 128, 120, 142, 125, 118, 136, 108, 139, 130, 124, 139, 148, 125, 134, 139, 125, 127, 54, 136, 129, 137, 145, 123, 124, 129, 116, 114, 126, 130, 113, 131, 128, 126, 124, 129, 104, 119, 133, 106, 123, 123, 124, 131, 120, 124, 139, 130, 120, 125, 114, 147, 130, 135, 107, 118, 115, 114, 110, 114, 112, 113, 134, 127, 124, 140, 123, 131, 128, 116, 138, 131, 119, 114, 143, 124, 124, 133, 134, 143, 138, 131, 105, 113, 132, 102, 121, 130, 146, 126, 122, 122, 121, 123, 111, 120, 123, 113, 113, 121, 125, 123, 132, 130, 130, 122, 108, 113, 112, 195, 154, 122, 119, 116, 126, 138, 129, 116, 132, 127, 110, 122, 131, 112, 128, 133, 119, 130, 147, 121, 133, 130, 121, 113, 137, 139, 135, 109, 125, 118, 139, 122, 128, 127, 146, 115, 122, 124, 128, 143, 123, 155, 125, 122, 125, 137, 119, 135, 123, 122, 117, 146, 124, 124, 129, 130, 101, 120, 120, 137, 128, 122, 118, 121, 115, 107, 134, 143, 119, 121, 119, 131, 138, 123, 130, 121, 124, 124, 126, 111, 143, 140, 135, 122, 137, 130, 123, 125, 129, 130, 126, 134, 105, 127, 131, 129, 129, 139, 125, 126, 105, 125, 120, 115, 84, 55, 114, 132, 119, 121, 126, 119, 139, 126, 138, 127, 126, 128, 142, 124, 121, 141, 125, 131, 124, 121, 122, 130, 130, 119, 122, 136, 131, 116, 116, 120, 79, 115, 132, 129, 112, 138, 125, 126, 128, 124, 117, 122, 137, 133, 107, 114, 113, 109, 118, 124, 135, 136, 121, 131, 130, 131, 125, 127, 110, 104, 111, 143, 117, 123, 132, 133, 117, 122, 127, 117, 123, 129, 127, 121, 113, 121, 128, 123, 142, 143, 105, 123, 126, 134, 125, 128, 130, 120, 118, 142, 114, 122, 125, 134, 131, 116, 121, 134, 132, 130, 137, 103, 127, 157, 124, 129, 125, 121, 131, 130, 134, 111, 137, 121, 121, 110, 107, 126, 117, 112, 123, 120, 125, 131, 126, 119, 139, 108, 123, 131, 116, 115, 127, 129, 120, 129, 118, 119, 143, 128, 132, 145, 124, 119, 139, 125, 121, 109, 146, 132, 121, 123, 134, 127, 125, 124, 142, 128, 112, 128, 127, 129, 136, 130, 110, 134, 128, 132, 129, 121, 127, 121, 126, 122, 129, 111, 143, 108, 140, 129, 139, 111, 128, 114, 138, 125, 120, 139, 138, 120, 127, 122, 130, 124, 131, 126, 119, 126, 120, 113, 129, 141, 105, 133, 129, 112, 124, 121, 133, 129, 115, 127, 129, 122, 131, 115, 125, 135, 131, 154, 110, 142, 120, 119, 117, 121, 115, 115, 120, 124, 125, 113, 119, 104, 120, 112, 145, 118, 117, 111, 128, 112, 131, 118, 110, 128, 115, 107, 103, 132, 119, 94, 119, 123, 127, 116, 130, 116, 124, 114, 138, 120, 132, 132, 129, 128, 122, 126, 121, 115, 129, 136, 118, 118, 116, 114, 138, 123, 120, 121, 132, 107, 116, 126, 117, 119, 117, 96, 123, 125, 119, 134, 127, 146, 113, 119, 110, 128, 131, 131, 114, 119, 122, 126, 140, 142, 133, 132, 106, 123, 131, 122, 128, 132, 121, 128, 127, 121, 134, 118, 123, 115, 126, 100, 115, 120, 138, 115, 136, 149, 118, 134, 145, 127, 136, 146, 121, 127, 121, 140, 126, 115, 118, 114, 114, 138, 115, 120, 109, 125, 140, 125, 143, 108, 126, 120, 119, 124, 148, 119, 109, 112, 115, 118, 152, 130, 114, 116, 111, 113, 109, 113, 131, 137, 103, 128, 119, 96, 121, 123, 100, 117, 124, 129, 143, 100, 137, 105, 114, 131, 106, 123, 141, 126, 134, 146, 134, 127, 129, 126, 130, 127, 132, 126, 125, 128, 133, 126, 126, 119, 136, 128, 142, 143, 123, 126, 130, 138, 117, 122, 126, 140, 141, 108, 126, 134, 117, 119, 125, 123, 112, 132, 140, 131, 134, 136, 130, 125, 113, 127, 140, 132, 116, 117, 131, 147, 126, 134, 136, 110, 106, 133, 137, 131, 117, 125, 130, 129, 124, 130, 119, 126, 131, 128, 122, 115, 126, 114, 129, 115, 122, 125, 132, 121, 123, 137, 143, 145, 126, 112, 126, 152, 126, 103, 126, 142, 128, 126, 123, 128, 111, 119, 133, 117, 140, 131, 129, 117, 143, 129, 141, 116, 126, 118, 126, 128, 126, 139, 128, 135, 111, 127, 124, 98, 124, 144, 130, 118, 130, 118, 119, 166, 139, 130, 128, 124, 125, 131, 117, 113, 148, 137, 113, 129, 121, 133, 123, 124, 154, 138, 134, 134, 141, 120, 130, 124, 125, 105, 111, 133, 123, 108, 128, 142, 134, 128, 127, 104, 133, 130, 138, 117, 150, 130, 125, 102, 127, 119, 129, 130, 130, 128, 102, 145, 116, 123, 116, 116, 121, 120, 133, 113, 113, 121, 124, 134, 138, 130, 151, 114, 118, 124, 133, 110, 115, 135, 137, 134, 130, 124, 109, 132, 114, 115, 119, 106, 114, 115, 135, 139, 106, 124, 119, 124, 123, 126, 145, 111, 135, 120, 112, 110, 117, 123, 133, 124, 131, 130, 121, 124, 134, 114, 121, 126, 159, 118, 121, 136, 113, 141, 145, 126, 134, 118, 116, 136, 128, 124, 143, 119, 124, 107, 111, 125, 129, 125, 131, 99, 135, 133, 127, 147, 107, 121, 151, 117, 108, 142, 124, 115, 109, 119, 139, 122, 134, 136, 138, 121, 110, 108, 139, 128, 125, 119, 128, 112, 144, 129, 99, 130, 144, 113, 118, 130, 107, 122, 106, 137, 113, 133, 117, 103, 102, 113, 123, 126, 97, 125, 120, 138, 130, 135, 129, 101, 133, 131, 139, 138, 137, 137, 133, 130, 120, 121, 129, 123, 114, 126, 136, 122, 165, 116, 102, 138, 122, 129, 128, 117, 148, 124, 124, 119, 119, 134, 119, 139, 102, 116, 120, 126, 128, 136, 128, 117, 137, 104, 135, 116, 119, 126, 155, 138, 130, 123, 130, 126, 133, 83, 103, 135, 137, 121, 154, 123, 113, 128, 134, 135, 131, 128, 134, 106, 127, 119, 129, 114, 148, 126, 148, 115, 126, 108, 151, 128, 117, 116, 148, 121, 110, 108, 105, 123, 128, 131, 123, 119, 138, 136, 112, 142, 106, 138, 113, 111, 119, 112, 117, 157, 137, 153, 121, 140, 128, 134, 121, 137, 141, 126, 129, 113, 115, 136, 126, 137, 149, 122, 124, 118, 142, 110, 128, 136, 130, 120, 119, 139, 130, 146, 120, 146, 117, 118, 124, 103, 119, 107, 123, 116, 111, 115, 122, 146, 137, 126, 141, 114, 129, 109, 126, 124, 119, 135, 124, 116, 105, 127, 117, 128, 124, 119, 122, 115, 134, 135, 113, 134, 125, 124, 118, 149, 112, 120, 132, 116, 115, 118, 132, 122, 114, 116, 116, 138, 137, 124, 137, 115, 132, 120, 136, 119, 117, 129, 124, 128, 114, 137, 126, 119, 109, 123, 127, 130, 134, 135, 134, 129, 129, 126, 131, 134, 149, 142, 125, 128, 115, 133, 122, 137, 130, 107, 99, 112, 115, 139, 125, 122, 133, 132, 113, 130, 107, 124, 117, 133, 134, 157, 127, 125, 123, 117, 130, 122, 132, 127, 110, 115, 136, 125, 115, 123, 134, 119, 132, 134, 141, 142, 127, 107, 134, 128, 125, 134, 123, 109, 123, 137, 127, 117, 122, 125, 135, 124, 127, 140, 119, 130, 121, 118, 115, 136, 126, 129, 136, 139, 112, 134, 122, 115, 146, 161, 125, 125, 133, 131, 118, 121, 119, 123, 124, 125, 120, 121, 137, 128, 107, 147, 119, 127, 113, 134, 136, 125, 132, 115, 134, 126, 142, 139, 135, 121, 114, 135, 136, 123, 121, 145, 128, 139, 130, 116, 118, 129, 132, 101, 122, 128, 143, 131, 103, 129, 105, 126, 110, 119, 119, 122, 129, 131, 114, 111, 131, 128, 119, 130, 118, 117, 127, 133, 137, 144, 133, 116, 139, 123, 128, 134, 125, 128, 112, 132, 109, 126, 128, 123, 98, 130, 119, 125, 122, 124, 110, 134, 114, 103, 124, 129, 119, 113, 119, 127, 147, 150, 128, 122, 138, 150, 143, 113, 136, 126, 114, 133, 116, 142, 120, 125, 116, 114, 124, 115, 131, 133, 127, 150, 136, 108, 130, 118, 111, 104, 111, 108, 132, 146, 113, 122, 119, 128, 104, 122, 108, 126, 128, 122, 121, 121, 137, 127, 120, 130, 128, 124, 139, 108, 126, 130, 124, 118, 108, 123, 131, 106, 124, 140, 129, 136, 131, 115, 123, 126, 118, 129, 141, 129, 128, 132, 117, 134, 134, 102, 126, 125, 134, 134, 124, 109, 108, 124, 123, 126, 124, 118, 124, 127, 111, 114, 133, 141, 122, 129, 134, 119, 139, 123, 120, 121, 138, 124, 125, 126, 123, 141, 120, 138, 134, 134, 127, 137, 128, 125, 123, 109, 130, 123, 109, 124, 120, 126, 131, 130, 150, 110, 138, 114, 136, 101, 132, 116, 119, 140, 117, 111, 117, 120, 125, 113, 139, 126, 136, 133, 116, 114, 119, 140, 123, 137, 123, 130, 114, 136, 145, 133, 126, 116, 120, 124, 115, 124, 119, 133, 112, 131, 142, 105, 131, 128, 114, 121, 151, 140, 128, 125, 112, 121, 127, 133, 124, 116, 122, 123, 109, 120, 142, 127, 138, 128, 112, 130, 114, 118, 131, 114, 122, 112, 116, 135, 128, 128, 110, 103, 117, 130, 133, 119, 127, 136, 128, 120, 128, 129, 130, 132, 116, 128, 116, 121, 112, 136, 126, 124, 130, 123, 132, 142, 118, 132, 122, 137, 115, 127, 131, 121, 122, 124, 118, 115, 132, 142, 135, 121, 127, 128, 121, 133, 143, 115, 138, 149, 116, 111, 119, 144, 119, 117, 119, 133, 132, 117, 138, 120, 130, 139, 123, 131, 111, 114, 111, 115, 131, 101, 121, 116, 122, 119, 113, 131, 143, 138, 118, 118, 123, 119, 100, 112, 138, 136, 108, 127, 126, 121, 115, 132, 131, 126, 124, 125, 123, 131, 116, 118, 123, 127, 119, 104, 111, 123, 116, 133, 114, 122, 99, 124, 136, 122, 109, 119, 123, 126, 126, 130, 135, 126, 123, 128, 122, 122, 117, 155, 123, 124, 113, 134, 128, 120, 125, 133, 126, 118, 104, 132, 116, 135, 122, 130, 123, 128, 133, 128, 124, 135, 124, 132, 107, 121, 116, 141, 129, 118, 125, 112, 122, 154, 135, 123, 136, 143, 149, 148, 141, 135, 112, 117, 124, 126, 119, 116, 125, 116, 116, 130, 123, 124, 112, 132, 128, 143, 129, 127, 130, 128, 133, 132, 125, 138, 116, 118, 123, 120, 119, 122, 115, 116, 135, 128, 127, 131, 128, 110, 128, 123, 117, 132, 119, 141, 124, 137, 123, 121, 141, 120, 138, 114, 135, 125, 130, 121, 130, 110, 134, 103, 115, 120, 135, 120, 127, 116, 130, 123, 117, 126, 117, 124, 125, 118, 119, 133, 136, 126, 115, 133, 125, 131, 139, 122, 131, 137, 139, 115, 119, 130, 127, 135, 116, 134, 137, 124, 127, 144, 122, 122, 117, 119, 131, 143, 153, 129, 121, 108, 123, 156, 126, 133, 135, 134, 123, 129, 107, 133, 109, 127, 144, 135, 144, 125, 121, 122, 125, 108, 101, 107, 131, 113, 118, 109, 125, 122, 113, 121, 123, 101, 105, 127, 126, 142, 121, 129, 125, 134, 126, 133, 124, 128, 135, 133, 104, 127, 143, 129, 122, 127, 125, 110, 124, 110, 131, 121, 125, 121, 117, 123, 135, 134, 131, 118, 123, 133, 125, 134, 125, 120, 134, 129, 116, 127, 131, 130, 132, 133, 127, 136, 124, 141, 140, 122, 135, 140, 129, 126, 129, 144, 120, 128, 134, 140, 126, 124, 145, 117, 126, 112, 133, 143, 125, 133, 122, 126, 127, 113, 135, 134, 135, 112, 131, 128, 144, 130, 123, 144, 125, 125, 136, 135, 125, 137, 121, 115, 131, 124, 120, 132, 136, 129, 97, 117, 115, 121, 126, 99, 141, 131, 143, 139, 138, 122, 128, 129, 119, 135, 141, 127, 110, 132, 120, 130, 134, 106, 130, 140, 107, 123, 141, 120, 121, 114, 116, 122, 125, 120, 123, 131, 137, 118, 138, 99, 122, 115, 124, 135, 121, 111, 147, 132, 136, 137, 112, 118, 131, 123, 127, 124, 132, 134, 131, 124, 137, 124, 142, 134, 110, 129, 131, 115, 112, 119, 113, 129, 118, 109, 125, 147, 128, 127, 127, 122, 111, 143, 123, 136, 130, 129, 129, 139, 158, 114, 104, 121, 126, 137, 118, 129, 124, 141, 147, 112, 128, 130, 106, 142, 121, 106, 145, 145, 132, 138, 127, 115, 133, 131, 133, 136, 132, 117, 123, 134, 108, 120, 119, 131, 115, 119, 124, 118, 126, 131, 132, 136, 117, 113, 128, 123, 139, 119, 108, 141, 119, 105, 114, 127, 119, 108, 128, 123, 121, 126, 107, 137, 115, 127, 115, 123, 123, 110, 123, 125, 119, 113, 126, 124, 116, 121, 137, 131, 113, 114, 117, 131, 135, 148, 132, 134, 132, 128, 120, 133, 128, 134, 118, 140, 143, 136, 128, 120, 153, 137, 146, 122, 138, 101, 108, 139, 127, 124, 121, 145, 134, 125, 123, 132, 124, 120, 115, 130, 139, 123, 133, 118, 149, 118, 122, 121, 120, 130, 123, 115, 122, 123, 147, 137, 130, 133, 132, 150, 132, 134, 125, 121, 116, 120, 131, 145, 136, 122, 117, 133, 105, 126, 115, 103, 132, 160, 113, 145, 104, 127, 125, 129, 108, 129, 114, 126, 143, 143, 129, 107, 113, 129, 135, 128, 128, 112, 121, 135, 124, 116, 140, 113, 117, 118, 135, 115, 124, 131, 123, 120, 103, 132, 113, 116, 110, 131, 131, 125, 132, 108, 135, 106, 130, 107, 134, 135, 115, 121, 135, 119, 122, 139, 111, 146, 131, 140, 130, 149, 122, 134, 124, 124, 119, 140, 102, 129, 124, 102, 110, 114, 110, 113, 120, 110, 106, 124, 127, 119, 145, 135, 115, 123, 120, 120, 140, 113, 137, 125, 117, 126, 150, 124, 132, 134, 130, 125, 104, 102, 116, 133, 140, 125, 114, 135, 139, 137, 131, 106, 143, 122, 126, 117, 135, 99, 131, 127, 125, 129, 125, 110, 103, 115, 123, 131, 131, 137, 126, 128, 127, 133, 135, 132, 142, 117, 131, 123, 117, 127, 127, 152, 136, 122, 134, 122, 119, 109, 117, 124, 130, 121, 121, 131, 111, 139, 128, 136, 105, 123, 143, 127, 119, 135, 128, 134, 120, 122, 139, 148, 116, 131, 133, 114, 123, 106, 130, 118, 115, 118, 133, 125, 139, 119, 125, 126, 113, 122, 129, 125, 127, 132, 133, 127, 130, 127, 135, 115, 132, 122, 115, 128, 129, 103, 110, 125, 127, 123, 132, 123, 134, 123, 135, 122, 143, 109, 137, 126, 145, 128, 122, 128, 120, 135, 121, 123, 120, 124, 125, 117, 124, 126, 125, 111, 147, 119, 125, 136, 121, 131, 124, 134, 120, 135, 131, 125, 112, 113, 119, 135, 125, 135, 131, 117, 140, 127, 115, 104, 120, 138, 121, 123, 124, 125, 119, 131, 131, 123, 121, 119, 124, 148, 126, 113, 134, 135, 137, 139, 117, 141, 128, 103, 127, 121, 107, 127, 108, 121, 110, 120, 125, 130, 128, 132, 133, 123, 119, 139, 124, 121, 117, 131, 108, 125, 125, 118, 113, 136, 141, 124, 125, 121, 125, 110, 128, 109, 136, 116, 123, 115, 116, 127, 126, 124, 110, 122, 115, 146, 133, 127, 125, 116, 138, 116, 128, 132, 113, 101, 118, 123, 122, 146, 118, 129, 117, 131, 116, 131, 119, 128, 120, 149, 127, 171, 117, 126, 123, 125, 127, 125, 126, 125, 127, 136, 131, 115, 124, 131, 132, 99, 159, 135, 114, 131, 125, 118, 143, 136, 117, 134, 137, 132, 112, 118, 132, 119, 131, 117, 122, 118, 138, 119, 117, 128, 144, 129, 125, 127, 133, 124, 125, 144, 124, 112, 113, 116, 122, 132, 133, 118, 121, 121, 129, 130, 125, 145, 128, 108, 145, 133, 126, 114, 119, 126, 135, 132, 108, 119, 140, 129, 123, 129, 121, 134, 132, 123, 109, 115, 116, 97, 105, 120, 113, 112, 139, 124, 121, 101, 134, 126, 145, 127, 134, 128, 126, 131, 139, 123, 125, 120, 137, 136, 129, 116, 120, 126, 128, 124, 119, 117, 145, 110, 136, 110, 126, 134, 132, 122, 123, 118, 134, 121, 137, 135, 123, 130, 119, 118, 124, 142, 126, 132, 131, 139, 137, 129, 119, 128, 125, 123, 137, 150, 138, 115, 121, 119, 126, 110, 132, 143, 128, 113, 112, 125, 118, 124, 114, 120, 117, 125, 130, 131, 109, 121, 139, 124, 136, 133, 121, 122, 118, 127, 125, 141, 126, 134, 112, 115, 116, 132, 115, 111, 126, 128, 121, 119, 126, 124, 127, 134, 128, 128, 131, 121, 105, 108, 127, 120, 126, 121, 111, 112, 136, 135, 118, 147, 126, 140, 126, 121, 118, 121, 112, 131, 131, 147, 115, 135, 128, 138, 116, 139, 120, 111, 123, 115, 122, 127, 132, 115, 131, 127, 121, 123, 109, 131, 127, 134, 102, 135, 113, 134, 129, 136, 117, 131, 131, 134, 122, 110, 119, 143, 126, 121, 126, 120, 121, 112, 115, 113, 123, 128, 108, 93, 128, 137, 128, 134, 151, 124, 126, 143, 120, 120, 113, 111, 133, 114, 127, 114, 121, 117, 121, 131, 127, 118, 141, 118, 126, 121, 127, 140, 137, 117, 132, 130, 133, 119, 131, 129, 121, 130, 112, 124, 133, 128, 134, 121, 131, 122, 114, 129, 119, 100, 161, 144, 121, 133, 128, 130, 132, 129, 123, 126, 127, 122, 122, 146, 116, 134, 127, 127, 126, 129, 134, 133, 124, 116, 120, 132, 114, 131, 107, 129, 117, 100, 107, 124, 128, 141, 145, 125, 118, 124, 125, 116, 124, 122, 130, 127, 133, 134, 102, 101, 127, 103, 126, 128, 128, 140, 125, 114, 113, 116, 130, 122, 116, 130, 113, 133, 119, 115, 127, 130, 142, 124, 122, 143, 118, 132, 138, 125, 129, 108, 132, 110, 143, 110, 116, 126, 135, 122, 129, 115, 88, 104, 123, 137, 150, 113, 126, 125, 131, 138, 122, 129, 132, 156, 128, 123, 129, 98, 128, 123, 121, 127, 120, 128, 114, 130, 131, 153, 124, 138, 132, 118, 130, 131, 145, 122, 121, 118, 123, 114, 129, 129, 125, 106, 124, 127, 137, 126, 110, 124, 132, 121, 120, 144, 126, 115, 117, 111, 114, 131, 127, 156, 145, 138, 134, 128, 105, 121, 134, 129, 127, 135, 145, 115, 122, 136, 120, 138, 135, 142, 127, 118, 126, 113, 129, 110, 132, 133, 122, 123, 128, 133, 145, 139, 126, 124, 129, 142, 135, 115, 114, 134, 148, 147, 126, 120, 127, 131, 129, 119, 108, 139, 127, 122, 113, 122, 128, 130, 154, 114, 122, 139, 113, 114, 110, 145, 117, 153, 126, 116, 131, 131, 117, 129, 137, 135, 105, 126, 141, 119, 123, 111, 123, 128, 148, 119, 114, 125, 117, 113, 112, 125, 123, 142, 126, 111, 135, 139, 118, 139, 119, 143, 155, 129, 132, 128, 147, 160, 106, 119, 122, 134, 97, 118, 121, 134, 110, 133, 110, 129, 130, 128, 127, 135, 114, 117, 122, 118, 144, 116, 120, 126, 115, 103, 120, 125, 128, 125, 108, 133, 129, 101, 154, 133, 126, 109, 117, 134, 128, 127, 121, 124, 125, 132, 128, 126, 117, 129, 118, 147, 116, 122, 137, 136, 109, 140, 111, 128, 124, 132, 125, 123, 126, 141, 128, 158, 123, 129, 120, 130, 128, 143, 119, 130, 111, 139, 125, 125, 129, 111, 124, 128, 117, 124, 112, 137, 110, 128, 134, 131, 137, 137, 130, 135, 126, 140, 123, 124, 139, 127, 134, 126, 106, 136, 110, 141, 130, 118, 128, 123, 122, 123, 132, 130, 124, 112, 128, 131, 138, 140, 108, 127, 127, 121, 135, 116, 95, 136, 137, 120, 126, 131, 128, 121, 130, 141, 115, 113, 116, 126, 105, 129, 134, 114, 105, 128, 124, 129, 128, 119, 135, 117, 118, 127, 109, 121, 116, 136, 127, 133, 105, 133, 157, 119, 122, 133, 125, 126, 144, 124, 119, 110, 109, 111, 133, 112, 120, 129, 141, 134, 135, 112, 114, 99, 123, 131, 114, 124, 133, 115, 121, 123, 127, 129, 120, 143, 126, 135, 125, 124, 121, 118, 130, 128, 121, 130, 120, 133, 121, 121, 122, 120, 130, 134, 120, 125, 121, 139, 132, 131, 148, 115, 132, 132, 128, 124, 113, 110, 138, 111, 113, 122, 121, 129, 133, 137, 104, 131, 130, 116, 106, 118, 138, 118, 135, 115, 123, 116, 105, 146, 122, 127, 118, 131, 138, 131, 126, 138, 145, 147, 115, 142, 110, 118, 144, 139, 132, 161, 128, 136, 122, 120, 126, 125, 124, 121, 118, 130, 131, 115, 127, 144, 115, 123, 128, 119, 139, 100, 138, 128, 152, 140, 141, 119, 117, 132, 127, 141, 105, 135, 120, 132, 135, 121, 145, 115, 110, 127, 125, 131, 121, 125, 126, 123, 101, 129, 122, 136, 129, 125, 129, 127, 110, 133, 125, 128, 136, 121, 132, 124, 116, 135, 120, 126, 126, 131, 136, 114, 124, 121, 127, 126, 126, 139, 115, 125, 115, 122, 142, 125, 132, 139, 112, 106, 138, 118, 116, 99, 114, 144, 139, 136, 115, 132, 123, 134, 133, 143, 124, 130, 133, 140, 116, 113, 132, 120, 128, 126, 129, 129, 125, 123, 121, 134, 116, 123, 129, 117, 133, 130, 126, 132, 129, 131, 130, 121, 125, 115, 129, 113, 116, 125, 109, 137, 123, 134, 130, 137, 131, 123, 130, 116, 126, 138, 121, 136, 125, 120, 123, 134, 132, 125, 131, 115, 145, 119, 116, 120, 120, 126, 114, 142, 122, 133, 134, 137, 103, 124, 121, 133, 139, 108, 136, 122, 127, 108, 108, 117, 128, 160, 126, 126, 109, 120, 132, 113, 130, 133, 116, 102, 116, 118, 128, 122, 118, 130, 123, 117, 121, 121, 133, 123, 132, 130, 130, 119, 110, 133, 129, 127, 127, 137, 125, 122, 123, 138, 133, 125, 131, 131, 119, 99, 134, 126, 140, 142, 135, 129, 125, 129, 122, 125, 136, 129, 137, 129, 129, 128, 118, 122, 138, 128, 128, 129, 127, 130, 111, 116, 121, 136, 127, 122, 132, 123, 133, 125, 126, 111, 117, 108, 152, 113, 107, 128, 115, 118, 115, 123, 134, 113, 104, 112, 137, 136, 103, 113, 129, 114, 101, 123, 130, 126, 159, 122, 120, 125, 121, 123, 108, 119, 132, 148, 141, 132, 127, 126, 130, 118, 125, 105, 124, 107, 124, 106, 133, 131, 137, 128, 117, 114, 121, 124, 128, 110, 139, 122, 133, 138, 121, 115, 135, 131, 121, 129, 131, 124, 140, 125, 120, 131, 132, 100, 105, 123, 119, 118, 122, 129, 144, 137, 123, 123, 152, 131, 128, 121, 139, 153, 138, 107, 138, 128, 137, 129, 139, 118, 116, 129, 131, 139, 116, 134, 123, 124, 125, 129, 121, 136, 133, 130, 125, 120, 141, 100, 119, 116, 141, 144, 115, 125, 120, 111, 123, 140, 132, 153, 120, 125, 129, 130, 143, 120, 145, 134, 124, 120, 125, 147, 131, 133, 130, 128, 131, 114, 135, 112, 119, 135, 117, 136, 124, 129, 127, 138, 140, 119, 135, 120, 126, 122, 132, 133, 130, 125, 119, 112, 132, 129, 137, 122, 119, 122, 101, 108, 131, 114, 113, 120, 126, 129, 122, 110, 135, 114, 137, 132, 125, 133, 129, 132, 113, 128, 137, 127, 122, 117, 118, 123, 126, 137, 131, 109, 114, 131, 122, 115, 126, 114, 135, 128, 127, 124, 113, 127, 120, 126, 138, 128, 138, 122, 119, 129, 117, 130, 121, 125, 128, 130, 132, 135, 114, 128, 128, 122, 127, 134, 139, 129, 135, 124, 142, 129, 126, 130, 126, 141, 120, 117, 130, 123, 123, 141, 109, 124, 154, 138, 123, 135, 128, 137, 130, 127, 123, 122, 138, 122, 121, 126, 128, 119, 123, 132, 110, 132, 146, 136, 117, 121, 131, 131, 126, 141, 111, 130, 108, 130, 123, 125, 125, 142, 136, 121, 130, 121, 119, 139, 126, 133, 108, 144, 135, 121, 137, 134, 141, 123, 131, 156, 139, 144, 134, 124, 125, 131, 123, 135, 112, 132, 126, 123, 138, 117, 140, 133, 122, 130, 129, 137, 126, 114, 132, 124, 128, 135, 126, 160, 124, 114, 128, 134, 122, 131, 133, 131, 125, 132, 110, 131, 117, 131, 115, 122, 123, 130, 117, 119, 133, 130, 136, 126, 122, 115, 139, 124, 117, 135, 115, 125, 129, 133, 123, 140, 136, 123, 134, 130, 118, 124, 118, 110, 136, 130, 146, 124, 136, 127, 135, 119, 123, 107, 111, 121, 122, 123, 136, 131, 120, 120, 101, 146, 115, 128, 99, 120, 126, 138, 122, 122, 130, 130, 121, 166, 114, 116, 141, 124, 125, 138, 118, 115, 128, 114, 109, 115, 154, 142, 127, 124, 113, 131, 125, 131, 118, 119, 110, 120, 131, 134, 140, 112, 139, 121, 134, 126, 130, 117, 136, 117, 120, 130, 124, 135, 91, 122, 124, 132, 118, 117, 117, 146, 136, 116, 132, 116, 108, 120, 131, 111, 123, 140, 119, 134, 99, 116, 117, 155, 128, 120, 119, 127, 124, 123, 127, 123, 122, 126, 126, 122, 117, 130, 107, 126, 139, 140, 120, 127, 126, 123, 130, 120, 109, 130, 119, 127, 128, 125, 115, 128, 126, 141, 127, 121, 116, 120, 122, 118, 104, 115, 131, 114, 115, 122, 123, 133, 115, 113, 141, 127, 123, 114, 110, 130, 121, 121, 117, 126, 126, 125, 132, 129, 117, 116, 131, 137, 134, 127, 144, 116, 147, 113, 124, 134, 133, 129, 138, 137, 123, 129, 132, 142, 128, 108, 98, 109, 125, 110, 132, 123, 136, 126, 112, 130, 124, 120, 125, 126, 125, 127, 119, 112, 144, 113, 128, 129, 123, 127, 132, 131, 109, 125, 149, 116, 139, 119, 111, 141, 128, 112, 130, 110, 119, 122, 126, 116, 137, 155, 116, 121, 118, 138, 132, 120, 135, 119, 118, 125, 126, 135, 112, 154, 116, 113, 130, 112, 131, 125, 110, 119, 105, 122, 120, 116, 137, 99, 131, 117, 134, 121, 131, 135, 141, 125, 134, 125, 125, 132, 119, 116, 121, 101, 135, 118, 130, 124, 132, 112, 120, 115, 118, 122, 125, 142, 136, 104, 134, 119, 125, 99, 133, 137, 117, 117, 128, 121, 127, 104, 145, 139, 123, 107, 103, 124, 116, 114, 145, 114, 131, 118, 136, 142, 137, 132, 96, 146, 130, 119, 138, 117, 126, 120, 123, 119, 135, 124, 117, 126, 141, 135, 119, 113, 139, 133, 119, 123, 126, 123, 119, 126, 120, 142, 131, 133, 117, 122, 139, 110, 135, 128, 125, 132, 110, 130, 113, 126, 111, 116, 131, 133, 144, 131, 123, 134, 127, 119, 127, 116, 124, 137, 139, 145, 129, 122, 115, 126, 136, 128, 126, 122, 123, 131, 131, 129, 136, 111, 117, 99, 119, 133, 139, 115, 131, 130, 113, 108, 119, 117, 133, 130, 131, 135, 121, 136, 127, 116, 139, 127, 128, 131, 150, 128, 136, 125, 119, 123, 115, 109, 127, 126, 142, 135, 123, 136, 126, 130, 132, 114, 129, 125, 130, 127, 129, 128, 120, 139, 133, 127, 138, 118, 130, 128, 119, 121, 118, 135, 124, 129, 131, 140, 110, 128, 146, 133, 140, 135, 110, 119, 119, 117, 114, 117, 127, 115, 130, 128, 118, 114, 113, 136, 126, 124, 129, 135, 138, 109, 128, 130, 131, 123, 121, 128, 139, 112, 137, 95, 127, 123, 135, 119, 103, 126, 125, 136, 131, 134, 131, 133, 123, 138, 121, 126, 121, 132, 137, 123, 118, 106, 136, 109, 136, 123, 106, 133, 127, 118, 121, 113, 127, 128, 127, 130, 126, 133, 138, 126, 145, 115, 110, 134, 124, 130, 115, 131, 110, 124, 114, 127, 136, 126, 128, 128, 131, 134, 138, 121, 131, 140, 121, 120, 133, 127, 128, 109, 128, 133, 117, 117, 126, 118, 123, 110, 113, 124, 125, 107, 121, 118, 124, 139, 130, 112, 120, 138, 119, 127, 110, 111, 123, 128, 128, 126, 110, 125, 139, 119, 144, 131, 116, 124, 122, 140, 111, 126, 117, 113, 127, 127, 118, 119, 122, 131, 135, 130, 94, 108, 129, 144, 119, 100, 115, 139, 135, 116, 113, 140, 129, 131, 123, 131, 129, 120, 119, 117, 125, 131, 108, 138, 132, 112, 125, 159, 139, 117, 133, 124, 116, 118, 109, 142, 119, 132, 118, 98, 110, 112, 128, 127, 136, 128, 114, 143, 118, 129, 131, 117, 130, 160, 127, 136, 123, 119, 132, 103, 137, 113, 120, 112, 118, 108, 122, 131, 123, 121, 130, 123, 119, 125, 114, 110, 127, 135, 109, 124, 123, 150, 129, 113, 124, 122, 117, 125, 138, 97, 122, 128, 126, 141, 127, 131, 138, 118, 113, 130, 117, 134, 106, 129, 109, 120, 141, 125, 131, 126, 119, 127, 138, 123, 125, 126, 121, 109, 120, 136, 120, 119, 128, 125, 115, 109, 108, 132, 114, 119, 142, 99, 133, 142, 119, 130, 124, 129, 128, 140, 124, 134, 133, 122, 122, 128, 108, 123, 127, 134, 116, 120, 132, 135, 115, 139, 126, 131, 126, 107, 143, 133, 145, 131, 137, 111, 127, 145, 127, 122, 126, 113, 126, 126, 139, 124, 123, 129, 124, 119, 122, 128, 139, 125, 126, 143, 139, 110, 123, 124, 115, 129, 118, 117, 135, 136, 138, 126, 145, 122, 134, 122, 127, 132, 134, 137, 119, 127, 129, 137, 124, 136, 127, 116, 110, 124, 134, 124, 110, 115, 134, 136, 131, 134, 142, 116, 132, 138, 110, 121, 125, 135, 133, 136, 123, 121, 114, 127, 106, 106, 106, 122, 125, 131, 122, 125, 138, 126, 137, 111, 120, 123, 134, 141, 120, 108, 138, 122, 127, 140, 135, 124, 109, 140, 124, 131, 123, 130, 133, 109, 139, 117, 122, 116, 120, 129, 128, 117, 112, 132, 116, 131, 111, 138, 129, 137, 111, 129, 128, 112, 129, 117, 134, 119, 129, 130, 120, 122, 141, 110, 124, 142, 121, 118, 126, 120, 111, 115, 128, 123, 139, 148, 123, 131, 120, 115, 133, 112, 135, 120, 131, 125, 135, 123, 138, 126, 135, 123, 110, 153, 131, 128, 122, 116, 123, 115, 139, 124, 126, 123, 150, 122, 120, 111, 106, 140, 117, 128, 126, 126, 140, 123, 139, 115, 141, 126, 139, 122, 134, 116, 112, 114, 137, 97, 117, 123, 135, 126, 103, 134, 150, 124, 135, 145, 123, 115, 125, 152, 137, 148, 130, 128, 131, 127, 128, 121, 128, 118, 120, 143, 120, 120, 107, 147, 121, 120, 120, 130, 124, 126, 131, 140, 129, 112, 113, 139, 119, 118, 144, 126, 128, 107, 115, 125, 119, 114, 124, 124, 130, 127, 123, 129, 126, 137, 114, 120, 104, 117, 137, 132, 123, 140, 119, 131, 123, 107, 121, 123, 144, 117, 127, 126, 135, 126, 117, 131, 115, 123, 127, 141, 122, 133, 135, 118, 142, 115, 119, 137, 123, 113, 120, 139, 139, 116, 137, 128, 110, 114, 144, 143, 126, 129, 126, 122, 110, 129, 128, 115, 138, 110, 144, 115, 132, 131, 119, 107, 128, 113, 143, 103, 120, 118, 150, 114, 99, 114, 122, 125, 105, 116, 123, 122, 114, 129, 100, 142, 148, 132, 124, 126, 120, 118, 117, 122, 133, 149, 116, 115, 136, 121, 140, 137, 130, 113, 140, 135, 129, 133, 116, 143, 117, 127, 130, 136, 116, 136, 127, 135, 113, 128, 135, 123, 128, 115, 116, 122, 115, 118, 115, 125, 112, 126, 120, 122, 137, 115, 116, 114, 122, 112, 135, 102, 119, 129, 132, 114, 138, 122, 117, 124, 132, 142, 122, 120, 125, 114, 122, 149, 130, 138, 131, 138, 123, 128, 120, 124, 122, 129, 131, 125, 121, 120, 131, 130, 125, 128, 124, 146, 121, 111, 126, 117, 116, 141, 133, 133, 115, 114, 126, 142, 131, 135, 111, 131, 127, 124, 134, 123, 118, 119, 119, 111, 113, 116, 116, 126, 125, 153, 128, 125, 140, 122, 138, 126, 135, 125, 116, 136, 113, 117, 128, 129, 129, 138, 124, 128, 132, 123, 122, 126, 131, 128, 129, 118, 123, 115, 121, 122, 111, 142, 128, 109, 127, 120, 135, 133, 126, 132, 135, 123, 112, 121, 131, 110, 120, 135, 119, 126, 120, 118, 116, 137, 106, 127, 127, 134, 118, 134, 133, 124, 141, 126, 126, 136, 111, 113, 115, 108, 123, 127, 122, 121, 125, 145, 138, 103, 132, 114, 123, 131, 123, 141, 109, 116, 119, 126, 120, 114, 109, 117, 125, 125, 117, 103, 110, 151, 139, 126, 138, 150, 129, 127, 129, 123, 144, 120, 133, 126, 119, 117, 127, 123, 126, 104, 115, 123, 120, 107, 119, 123, 144, 130, 141, 119, 123, 127, 128, 133, 119, 123, 155, 124, 114, 117, 120, 134, 134, 119, 125, 118, 115, 141, 128, 115, 115, 134, 123, 146, 136, 121, 117, 135, 128, 133, 140, 123, 117, 136, 111, 131, 144, 143, 120, 128, 127, 124, 128, 119, 132, 134, 122, 111, 104, 115, 127, 123, 133, 125, 113, 139, 126, 133, 113, 118, 115, 122, 111, 125, 120, 129, 113, 140, 123, 104, 138, 130, 111, 121, 127, 130, 120, 145, 137, 123, 119, 119, 131, 144, 106, 121, 135, 125, 113, 122, 131, 105, 124, 130, 123, 119, 124, 139, 137, 124, 118, 142, 135, 143, 120, 102, 114, 117, 132, 117, 128, 131, 114, 131, 123, 150, 109, 127, 135, 132, 123, 137, 153, 122, 129, 136, 132, 120, 110, 126, 125, 132, 118, 131, 117, 126, 126, 130, 141, 112, 126, 117, 117, 134, 124, 121, 131, 130, 120, 128, 126, 129, 109, 119, 129, 128, 138, 133, 130, 122, 137, 114, 133, 117, 119, 137, 122, 129, 122, 121, 123, 129, 118, 137, 132, 130, 119, 131, 124, 133, 127, 129, 109, 120, 112, 116, 124, 129, 134, 124, 106, 121, 115, 128, 126, 132, 120, 122, 124, 146, 113, 112, 133, 127, 124, 130, 132, 122, 147, 120, 127, 127, 134, 143, 131, 111, 130, 136, 119, 134, 129, 127, 131, 136, 122, 140, 122, 117, 122, 136, 129, 119, 131, 114, 110, 118, 138, 121, 136, 118, 120, 149, 133, 123, 105, 119, 127, 113, 115, 131, 116, 127, 133, 135, 121, 112, 134, 131, 115, 121, 129, 125, 119, 130, 138, 117, 130, 132, 137, 139, 132, 150, 110, 112, 125, 128, 127, 111, 136, 142, 135, 131, 121, 134, 133, 118, 135, 113, 137, 113, 137, 120, 121, 121, 132, 111, 117, 135, 134, 117, 109, 126, 131, 108, 146, 141, 106, 132, 125, 128, 133, 128, 123, 119, 117, 114, 129, 123, 106, 138, 126, 134, 116, 155, 120, 141, 127, 124, 123, 116, 126, 133, 125, 111, 133, 119, 123, 130, 125, 119, 137, 125, 114, 125, 140, 120, 121, 132, 130, 123, 115, 122, 129, 127, 124, 122, 135, 108, 131, 131, 119, 133, 119, 137, 108, 140, 126, 125, 156, 135, 138, 134, 118, 126, 113, 164, 115, 123, 119, 122, 129, 118, 122, 120, 126, 125, 111, 99, 122, 122, 126, 122, 118, 134, 132, 134, 129, 131, 124, 129, 112, 124, 124, 143, 126, 129, 126, 129, 118, 115, 126, 111, 122, 113, 115, 113, 144, 138, 138, 109, 134, 137, 129, 125, 120, 137, 134, 112, 149, 124, 124, 112, 113, 124, 128, 122, 114, 126, 143, 127, 135, 121, 123, 126, 133, 135, 127, 133, 120, 111, 128, 118, 109, 114, 124, 121, 121, 130, 137, 113, 109, 118, 123, 134, 125, 121, 120, 121, 131, 130, 110, 125, 130, 128, 128, 135, 133, 119, 128, 120, 120, 133, 121, 123, 122, 133, 134, 136, 139, 126, 126, 111, 93, 116, 121, 123, 127, 128, 128, 121, 109, 150, 141, 124, 131, 119, 139, 119, 142, 142, 124, 124, 117, 136, 110, 130, 119, 129, 120, 126, 116, 120, 126, 128, 124, 124, 125, 121, 124, 123, 119, 114, 127, 127, 135, 124, 138, 135, 139, 126, 123, 132, 126, 133, 121, 133, 114, 130, 123, 128, 117, 132, 132, 124, 118, 126, 126, 111, 123, 109, 103, 136, 138, 126, 115, 116, 145, 120, 128, 125, 113, 123, 127, 129, 127, 139, 110, 126, 124, 132, 107, 119, 110, 132, 127, 127, 131, 118, 130, 128, 124, 134, 111, 125, 127, 127, 114, 131, 121, 118, 112, 146, 123, 111, 113, 131, 129, 135, 121, 113, 127, 119, 123, 126, 100, 118, 141, 137, 132, 114, 132, 131, 129, 125, 136, 104, 132, 120, 124, 115, 114, 117, 120, 134, 123, 120, 101, 133, 124, 135, 135, 119, 146, 122, 135, 129, 140, 120, 114, 126, 133, 126, 124, 116, 133, 109, 126, 125, 118, 123, 149, 119, 123, 146, 118, 136, 132, 130, 118, 115, 120, 133, 131, 148, 123, 133, 127, 113, 136, 112, 131, 118, 103, 134, 119, 109, 134, 126, 154, 128, 131, 125, 128, 109, 125, 118, 145, 133, 149, 115, 157, 138, 138, 115, 123, 133, 117, 83, 134, 143, 130, 122, 113, 123, 123, 129, 126, 121, 121, 125, 124, 120, 116, 118, 123, 133, 115, 130, 131, 128, 118, 137, 131, 120, 117, 134, 134, 129, 128, 134, 109, 111, 125, 149, 143, 115, 123, 134, 115, 99, 121, 125, 124, 130, 119, 121, 121, 137, 135, 124, 111, 114, 128, 112, 134, 142, 136, 144, 114, 139, 121, 117, 139, 138, 120, 130, 133, 128, 134, 117, 147, 153, 129, 128, 120, 116, 129, 117, 130, 129, 135, 122, 111, 114, 135, 133, 132, 121, 129, 137, 124, 132, 108, 143, 127, 127, 122, 126, 129, 158, 115, 110, 137, 118, 114, 135, 111, 117, 127, 116, 142, 129, 124, 102, 118, 122, 102, 122, 115, 133, 133, 130, 114, 110, 127, 118, 141, 132, 113, 121, 121, 107, 124, 134, 126, 139, 127, 115, 118, 121, 120, 125, 114, 141, 121, 119, 126, 126, 133, 97, 143, 114, 122, 124, 131, 126, 118, 148, 126, 124, 126, 130, 127, 123, 126, 154, 122, 129, 112, 126, 142, 126, 131, 124, 125, 136, 134, 103, 122, 148, 140, 136, 129, 113, 115, 115, 115, 111, 123, 134, 113, 121, 141, 126, 122, 132, 134, 122, 139, 133, 134, 129, 132, 109, 128, 137, 141, 126, 131, 126, 116, 122, 126, 96, 140, 123, 123, 122, 116, 123, 136, 117, 124, 132, 118, 129, 118, 104, 112, 133, 109, 134, 128, 132, 129, 115, 129, 110, 128, 122, 124, 131, 124, 117, 123, 125, 119, 132, 123, 124, 130, 116, 138, 124, 132, 110, 120, 125, 140, 131, 133, 114, 124, 129, 136, 112, 109, 134, 109, 137, 132, 129, 128, 117, 121, 118, 129, 123, 125, 134, 131, 116, 127, 131, 119, 119, 115, 129, 129, 115, 122, 126, 135, 131, 107, 111, 143, 134, 124, 133, 127, 141, 103, 141, 112, 131, 134, 127, 120, 138, 122, 121, 129, 118, 145, 129, 109, 124, 124, 124, 110, 140, 130, 135, 128, 126, 134, 122, 124, 115, 109, 114, 145, 127, 137, 131, 135, 120, 122, 115, 112, 129, 131, 121, 127, 117, 138, 132, 122, 133, 128, 123, 123, 135, 129, 126, 109, 124, 136, 133, 151, 108, 121, 125, 128, 114, 125, 116, 118, 120, 128, 114, 111, 121, 119, 115, 110, 121, 127, 135, 133, 129, 129, 136, 130, 124, 129, 130, 122, 127, 133, 128, 122, 119, 128, 118, 127, 113, 140, 123, 102, 131, 132, 119, 123, 124, 109, 128, 115, 131, 133, 127, 123, 117, 135, 106, 113, 132, 126, 134, 121, 122, 115, 135, 120, 117, 134, 114, 135, 136, 128, 117, 141, 146, 130, 117, 139, 130, 134, 136, 112, 129, 136, 134, 138, 126, 117, 99, 119, 119, 121, 134, 111, 115, 121, 129, 128, 132, 109, 133, 114, 126, 121, 117, 119, 127, 135, 120, 134, 131, 128, 140, 127, 122, 113, 128, 122, 154, 137, 131, 122, 131, 109, 114, 128, 133, 111, 130, 128, 146, 130, 146, 109, 130, 111, 119, 128, 127, 142, 104, 126, 115, 114, 135, 132, 130, 119, 112, 112, 135, 131, 128, 137, 122, 129, 118, 139, 126, 139, 120, 113, 123, 121, 127, 114, 132, 140, 106, 122, 117, 117, 116, 119, 115, 137, 142, 128, 115, 124, 106, 119, 153, 118, 132, 126, 117, 109, 103, 123, 133, 125, 116, 138, 141, 108, 139, 122, 111, 116, 139, 128, 119, 153, 126, 124, 123, 116, 128, 125, 126, 135, 137, 125, 144, 109, 134, 134, 121, 129, 117, 128, 101, 129, 126, 111, 138, 114, 102, 139, 138, 119, 112, 140, 122, 129, 136, 122, 108, 133, 143, 119, 148, 121, 144, 118, 121, 117, 122, 140, 137, 131, 105, 119, 116, 125, 152, 126, 131, 134, 130, 127, 153, 119, 118, 135, 132, 121, 134, 137, 138, 126, 129, 134, 128, 141, 136, 138, 123, 129, 134, 129, 132, 130, 121, 126, 130, 119, 119, 115, 127, 136, 117, 131, 130, 137, 126, 117, 123, 135, 127, 113, 138, 117, 125, 133, 123, 110, 106, 144, 126, 128, 125, 124, 115, 104, 125, 138, 122, 138, 141, 113, 122, 143, 127, 147, 123, 122, 103, 143, 134, 132, 124, 129, 133, 128, 121, 114, 112, 138, 122, 112, 117, 112, 131, 118, 127, 135, 113, 115, 114, 111, 149, 124, 130, 119, 143, 116, 125, 113, 122, 132, 134, 122, 113, 127, 141, 136, 110, 117, 141, 106, 129, 122, 105, 142, 124, 122, 145, 137, 127, 105, 116, 107, 115, 113, 131, 126, 127, 127, 107, 147, 119, 122, 120, 128, 119, 139, 136, 135, 118, 112, 124, 126, 127, 110, 121, 126, 115, 135, 135, 117, 129, 137, 143, 147, 131, 117, 142, 140, 140, 128, 103, 132, 121, 127, 116, 105, 126, 126, 117, 147, 127, 120, 136, 137, 146, 121, 120, 134, 130, 117, 128, 109, 124, 146, 110, 134, 129, 165, 118, 116, 130, 148, 125, 108, 121, 117, 115, 128, 120, 131, 134, 111, 118, 88, 133, 133, 117, 132, 135, 134, 124, 131, 129, 126, 120, 131, 121, 132, 134, 130, 108, 109, 160, 125, 134, 119, 137, 135, 125, 122, 120, 99, 140, 137, 119, 122, 121, 124, 142, 128, 151, 113, 139, 141, 104, 132, 131, 118, 123, 112, 134, 114, 120, 129, 129, 125, 129, 126, 114, 110, 113, 129, 127, 123, 116, 129, 128, 127, 143, 122, 125, 131, 102, 126, 135, 135, 125, 133, 123, 134, 128, 135, 119, 113, 124, 136, 107, 121, 130, 128, 117, 117, 114, 110, 112, 126, 138, 127, 110, 125, 138, 117, 157, 112, 134, 129, 119, 122, 125, 136, 113, 140, 121, 109, 117, 127, 114, 126, 129, 130, 125, 137, 112, 118, 122, 139, 118, 117, 132, 123, 131, 116, 131, 145, 111, 117, 111, 130, 136, 134, 146, 134, 121, 115, 113, 121, 126, 126, 121, 130, 122, 110, 115, 129, 140, 92, 109, 134, 122, 129, 138, 144, 143, 137, 114, 140, 119, 119, 111, 105, 108, 138, 152, 120, 123, 119, 124, 127, 129, 129, 112, 120, 129, 122, 107, 127, 119, 129, 126, 127, 126, 152, 134, 122, 119, 140, 116, 125, 123, 142, 95, 130, 123, 121, 119, 111, 117, 119, 114, 122, 119, 142, 128, 130, 127, 118, 126, 130, 123, 125, 117, 125, 132, 124, 105, 129, 119, 118, 133, 119, 125, 138, 133, 115, 122, 110, 132, 114, 145, 116, 124, 121, 127, 137, 140, 122, 122, 132, 122, 137, 131, 128, 112, 107, 144, 114, 109, 130, 116, 132, 128, 125, 131, 126, 119, 147, 129, 121, 132, 128, 129, 139, 125, 126, 111, 114, 149, 126, 137, 113, 135, 129, 121, 156, 146, 113, 115, 118, 141, 126, 120, 132, 138, 142, 134, 127, 121, 125, 129, 144, 137, 132, 131, 128, 126, 104, 113, 120, 119, 145, 109, 118, 118, 117, 130, 119, 116, 119, 120, 103, 129, 114, 109, 102, 124, 117, 144, 111, 131, 117, 127, 132, 123, 127, 109, 109, 132, 133, 136, 134, 133, 128, 125, 123, 117, 138, 106, 117, 113, 128, 135, 125, 119, 128, 100, 130, 96, 122, 128, 119, 144, 125, 105, 128, 126, 115, 122, 124, 134, 110, 129, 126, 117, 134, 128, 127, 119, 129, 123, 138, 101, 120, 129, 120, 105, 110, 138, 119, 152, 139, 136, 124, 142, 134, 120, 126, 143, 137, 117, 136, 126, 127, 122, 126, 111, 132, 133, 122, 145, 142, 118, 117, 131, 121, 119, 128, 132, 151, 129, 135, 125, 121, 112, 127, 125, 108, 122, 133, 129, 137, 130, 127, 132, 121, 133, 135, 119, 138, 108, 141, 128, 104, 125, 134, 120, 119, 132, 120, 105, 143, 130, 131, 115, 131, 113, 125, 132, 123, 142, 126, 110, 109, 125, 107, 113, 132, 124, 124, 126, 139, 139, 126, 144, 142, 132, 126, 134, 129, 136, 129, 138, 113, 122, 121, 130, 126, 119, 123, 112, 124, 126, 127, 128, 133, 117, 124, 118, 138, 122, 122, 111, 110, 131, 128, 122, 116, 128, 112, 132, 128, 121, 119, 119, 105, 126, 133, 127, 137, 126, 121, 119, 127, 132, 124, 123, 132, 130, 128, 142, 143, 128, 113, 109, 114, 115, 129, 119, 140, 128, 135, 113, 157, 121, 136, 143, 121, 128, 127, 117, 124, 132, 126, 136, 136, 139, 127, 133, 112, 125, 119, 137, 110, 128, 131, 142, 135, 126, 123, 137, 131, 145, 116, 123, 109, 133, 122, 125, 128, 109, 137, 126, 108, 123, 125, 131, 135, 111, 125, 135, 146, 107, 116, 127, 127, 128, 116, 132, 147, 138, 130, 122, 112, 121, 127, 129, 115, 127, 124, 127, 121, 125, 137, 132, 116, 141, 122, 130, 117, 114, 133, 97, 133, 126, 132, 141, 147, 118, 124, 141, 114, 121, 123, 145, 153, 130, 123, 135, 113, 131, 123, 137, 133, 143, 121, 128, 106, 142, 121, 127, 129, 123, 115, 96, 128, 106, 113, 110, 131, 114, 121, 117, 142, 117, 145, 116, 139, 137, 125, 115, 135, 105, 119, 136, 107, 100, 123, 125, 145, 127, 125, 108, 118, 132, 105, 118, 129, 118, 113, 127, 128, 133, 129, 134, 120, 122, 130, 132, 128, 140, 129, 125, 138, 130, 145, 144, 105, 132, 112, 128, 121, 125, 112, 100, 127, 125, 112, 126, 120, 115, 114, 118, 119, 133, 130, 124, 135, 134, 101, 106, 125, 136, 113, 109, 113, 128, 135, 124, 124, 132, 133, 126, 121, 123, 130, 133, 113, 118, 110, 133, 121, 121, 121, 120, 125, 133, 130, 110, 118, 91, 119, 121, 119, 118, 122, 106, 142, 136, 111, 130, 137, 119, 114, 115, 123, 135, 114, 121, 114, 113, 136, 111, 129, 122, 119, 117, 152, 126, 130, 127, 128, 140, 136, 119, 132, 150, 140, 111, 113, 118, 126, 112, 132, 120, 123, 110, 145, 116, 136, 118, 118, 125, 118, 125, 139, 120, 115, 102, 113, 129, 113, 114, 133, 113, 110, 116, 141, 114, 121, 136, 122, 129, 125, 111, 122, 119, 130, 128, 112, 125, 124, 119, 113, 138, 113, 116, 127, 147, 137, 126, 132, 101, 123, 135, 128, 141, 122, 110, 137, 134, 143, 142, 134, 136, 115, 111, 140, 140, 130, 128, 117, 150, 134, 140, 137, 123, 118, 129, 128, 122, 134, 122, 130, 132, 126, 119, 107, 129, 133, 124, 129, 135, 98, 122, 144, 124, 126, 128, 109, 123, 123, 127, 119, 132, 127, 142, 146, 124, 117, 136, 123, 126, 132, 122, 132, 115, 138, 113, 119, 139, 105, 137, 121, 129, 117, 128, 126, 100, 116, 126, 118, 118, 99, 144, 126, 116, 135, 121, 121, 129, 128, 140, 128, 143, 102, 116, 112, 116, 119, 122, 117, 125, 134, 114, 132, 127, 115, 98, 122, 121, 120, 141, 123, 118, 110, 138, 120, 141, 130, 141, 135, 116, 118, 117, 116, 119, 132, 125, 120, 138, 109, 144, 128, 126, 129, 133, 124, 128, 136, 119, 119, 137, 117, 129, 117, 116, 137, 123, 118, 134, 128, 113, 140, 115, 116, 121, 130, 129, 129, 138, 135, 125, 122, 122, 122, 132, 116, 129, 122, 136, 143, 137, 120, 118, 114, 120, 131, 142, 118, 125, 132, 137, 127, 117, 120, 132, 110, 124, 131, 126, 127, 144, 106, 127, 145, 138, 120, 130, 114, 115, 144, 132, 117, 122, 124, 120, 139, 122, 116, 122, 105, 131, 118, 116, 121, 113, 121, 130, 114, 113, 123, 151, 123, 108, 138, 118, 108, 129, 134, 123, 117, 123, 120, 121, 118, 137, 126, 115, 106, 121, 127, 131, 131, 130, 108, 122, 148, 147, 128, 114, 121, 117, 115, 117, 126, 123, 118, 117, 120, 119, 110, 137, 122, 116, 131, 131, 113, 111, 124, 123, 139, 138, 115, 141, 135, 126, 117, 117, 122, 139, 128, 116, 117, 132, 115, 123, 116, 106, 128, 117, 128, 118, 121, 120, 126, 125, 129, 130, 151, 138, 132, 132, 114, 126, 122, 123, 101, 112, 115, 138, 131, 123, 112, 99, 132, 114, 128, 136, 104, 153, 125, 124, 137, 112, 127, 131, 123, 112, 133, 138, 132, 109, 117, 147, 135, 139, 146, 144, 116, 123, 126, 135, 120, 126, 136, 122, 121, 129, 136, 113, 132, 126, 131, 122, 126, 123, 109, 120, 123, 133, 123, 122, 122, 111, 121, 118, 123, 145, 124, 124, 136, 122, 125, 118, 108, 106, 136, 143, 144, 97, 114, 115, 127, 131, 124, 113, 137, 120, 133, 142, 117, 124, 113, 120, 121, 128, 123, 134, 146, 130, 118, 133, 127, 138, 111, 119, 122, 100, 120, 111, 113, 116, 113, 133, 143, 139, 98, 135, 117, 99, 117, 113, 123, 106, 119, 121, 136, 106, 141, 139, 136, 126, 125, 134, 142, 119, 108, 122, 119, 118, 127, 136, 130, 133, 130, 111, 136, 117, 136, 116, 142, 139, 129, 148, 111, 120, 121, 129, 110, 132, 113, 122, 125, 139, 129, 100, 120, 143, 116, 108, 116, 134, 123, 122, 129, 131, 119, 116, 125, 121, 111, 138, 120, 125, 112, 125, 119, 120, 123, 124, 117, 117, 126, 98, 134, 125, 122, 118, 136, 116, 136, 127, 133, 134, 115, 97, 116, 125, 120, 129, 136, 133, 126, 146, 135, 111, 134, 120, 124, 110, 119, 135, 130, 114, 129, 139, 123, 121, 131, 127, 118, 138, 118, 133, 136, 110, 125, 140, 125, 121, 133, 127, 117, 115, 125, 111, 137, 138, 119, 120, 119, 117, 134, 118, 115, 136, 113, 135, 132, 115, 116, 115, 128, 132, 141, 122, 131, 133, 121, 126, 131, 133, 120, 130, 122, 143, 154, 141, 146, 109, 130, 123, 140, 130, 106, 121, 124, 116, 133, 100, 123, 109, 116, 138, 122, 125, 138, 111, 116, 123, 138, 123, 125, 129, 109, 134, 114, 126, 126, 125, 110, 131, 112, 116, 117, 122, 110, 121, 129, 139, 127, 111, 130, 117, 114, 138, 131, 126, 121, 129, 120, 166, 131, 137, 115, 131, 124, 120, 124, 131, 124, 108, 138, 117, 119, 121, 131, 119, 106, 132, 107, 118, 129, 140, 124, 127, 127, 132, 126, 122, 129, 113, 128, 111, 145, 126, 120, 127, 111, 125, 128, 112, 135, 111, 116, 138, 118, 131, 146, 111, 131, 134, 123, 129, 125, 120, 134, 103, 132, 125, 115, 115, 113, 131, 117, 115, 136, 134, 118, 123, 105, 125, 138, 137, 122, 115, 128, 115, 121, 114, 135, 108, 109, 119, 130, 120, 123, 135, 115, 128, 134, 116, 124, 125, 121, 125, 124, 136, 130, 128, 127, 131, 102, 129, 119, 112, 145, 113, 133, 117, 141, 117, 131, 120, 139, 138, 122, 145, 118, 125, 118, 126, 114, 114, 128, 123, 113, 133, 117, 142, 132, 116, 131, 142, 121, 114, 123, 133, 143, 141, 135, 122, 130, 143, 104, 111, 119, 114, 118, 121, 126, 124, 122, 127, 122, 133, 128, 134, 119, 123, 146, 130, 120, 143, 116, 119, 133, 118, 106, 145, 120, 115, 117, 130, 120, 108, 117, 117, 128, 122, 154, 107, 119, 139, 127, 136, 136, 138, 129, 112, 126, 134, 141, 143, 128, 117, 124, 112, 133, 113, 132, 104, 132, 145, 119, 132, 123, 107, 132, 147, 148, 120, 122, 129, 121, 132, 135, 126, 128, 144, 119, 89, 114, 128, 106, 138, 128, 148, 129, 113, 108, 128, 118, 125, 136, 117, 144, 132, 127, 126, 133, 123, 130, 140, 126, 145, 97, 112, 114, 114, 142, 112, 127, 111, 127, 149, 124, 128, 142, 125, 113, 131, 134, 118, 129, 126, 131, 119, 121, 87, 135, 122, 118, 112, 132, 122, 103, 105, 119, 139, 107, 135, 99, 137, 116, 152, 131, 132, 113, 125, 116, 124, 128, 130, 123, 107, 122, 120, 123, 123, 138, 127, 115, 114, 138, 108, 120, 129, 125, 130, 113, 150, 127, 151, 144, 117, 129, 152, 122, 117, 100, 124, 132, 128, 146, 135, 116, 126, 134, 116, 137, 128, 130, 139, 127, 123, 119, 128, 127, 105, 126, 136, 142, 143, 144, 118, 126, 105, 132, 133, 128, 126, 111, 131, 117, 125, 119, 123, 124, 115, 121, 128, 128, 132, 120, 108, 131, 127, 117, 116, 113, 146, 134, 112, 144, 136, 119, 129, 133, 127, 126, 138, 134, 141, 133, 123, 108, 120, 133, 139, 122, 128, 163, 116, 132, 146, 111, 111, 134, 129, 122, 117, 110, 112, 122, 115, 117, 125, 115, 124, 112, 135, 131, 108, 146, 112, 136, 132, 122, 110, 118, 126, 140, 121, 131, 117, 119, 114, 122, 122, 135, 131, 136, 132, 114, 115, 124, 130, 117, 119, 123, 132, 122, 134, 125, 120, 145, 128, 120, 123, 109, 122, 116, 107, 131, 116, 118, 140, 120, 124, 119, 128, 103, 141, 116, 135, 123, 106, 138, 124, 141, 133, 139, 110, 109, 126, 123, 117, 138, 130, 115, 133, 112, 131, 116, 129, 124, 125, 122, 130, 126, 119, 138, 125, 111, 136, 121, 122, 119, 140, 124, 128, 122, 140, 111, 108, 141, 116, 129, 122, 117, 139, 121, 119, 142, 112, 107, 123, 121, 130, 112, 114, 123, 108, 123, 103, 131, 115, 121, 109, 121, 140, 142, 133, 99, 134, 121, 130, 129, 106, 118, 131, 109, 116, 133, 125, 103, 124, 134, 128, 143, 142, 152, 135, 119, 136, 107, 125, 132, 137, 119, 125, 129, 124, 122, 120, 110, 120, 133, 127, 124, 113, 149, 119, 127, 130, 127, 138, 123, 131, 132, 144, 116, 126, 116, 129, 115, 133, 109, 116, 138, 112, 141, 100, 117, 134, 133, 128, 118, 144, 118, 128, 130, 136, 100, 135, 119, 109, 125, 131, 117, 134, 116, 124, 127, 124, 111, 102, 132, 135, 140, 138, 131, 117, 131, 135, 119, 106, 120, 129, 134, 122, 127, 124, 116, 127, 129, 115, 117, 150, 125, 138, 147, 117, 109, 115, 117, 139, 118, 123, 128, 134, 119, 130, 118, 124, 120, 137, 133, 129, 138, 125, 117, 120, 132, 137, 124, 127, 113, 121, 124, 138, 113, 129, 122, 122, 131, 141, 121, 130, 115, 121, 144, 120, 129, 111, 136, 132, 117, 129, 126, 139, 121, 119, 134, 136, 123, 128, 127, 128, 123, 132, 125, 124, 127, 131, 123, 124, 128, 127, 126, 129, 115, 130, 122, 116, 135, 129, 131, 133, 114, 131, 131, 106, 110, 128, 128, 131, 124, 132, 125, 115, 135, 143, 130, 124, 119, 114, 114, 115, 130, 145, 133, 109, 128, 129, 140, 122, 129, 138, 133, 118, 126, 135, 135, 115, 138, 125, 122, 120, 139, 133, 147, 123, 118, 142, 141, 130, 141, 148, 114, 142, 124, 118, 120, 142, 122, 113, 130, 131, 115, 115, 133, 118, 122, 116, 118, 144, 122, 124, 128, 133, 114, 131, 128, 132, 126, 132, 106, 115, 114, 106, 116, 124, 133, 122, 141, 103, 121, 112, 121, 120, 130, 121, 123, 126, 111, 106, 127, 136, 133, 131, 133, 124, 142, 127, 137, 137, 129, 114, 140, 122, 117, 115, 114, 112, 130, 126, 109, 132, 143, 124, 129, 167, 122, 116, 131, 108, 121, 118, 109, 112, 151, 111, 135, 120, 118, 118, 116, 121, 115, 136, 142, 115, 122, 122, 101, 127, 124, 112, 131, 134, 125, 143, 117, 117, 128, 138, 117, 132, 133, 117, 133, 132, 112, 113, 118, 125, 129, 118, 112, 126, 127, 137, 121, 122, 125, 130, 134, 123, 133, 132, 123, 124, 128, 134, 121, 123, 130, 132, 149, 121, 118, 131, 123, 114, 109, 123, 126, 130, 123, 102, 122, 131, 131, 118, 147, 139, 112, 127, 148, 130, 133, 95, 133, 115, 122, 117, 133, 121, 114, 118, 120, 130, 117, 130, 121, 136, 128, 134, 118, 138, 124, 113, 122, 113, 130, 140, 139, 133, 115, 132, 98, 131, 136, 126, 119, 125, 119, 107, 118, 129, 128, 121, 115, 112, 133, 95, 131, 154, 156, 136, 126, 119, 130, 123, 143, 113, 119, 105, 117, 127, 140, 115, 121, 141, 119, 144, 126, 137, 127, 141, 148, 124, 113, 141, 124, 125, 118, 122, 108, 134, 118, 121, 116, 129, 137, 125, 119, 124, 116, 116, 121, 132, 139, 132, 134, 141, 122, 123, 135, 121, 127, 125, 133, 118, 129, 119, 138, 116, 124, 120, 126, 129, 139, 106, 123, 124, 132, 121, 138, 119, 136, 134, 138, 99, 133, 93, 124, 115, 117, 131, 118, 146, 132, 132, 151, 120, 117, 131, 123, 131, 151, 116, 122, 130, 128, 137, 124, 133, 118, 130, 119, 124, 116, 127, 118, 127, 144, 138, 126, 122, 123, 130, 127, 144, 116, 145, 131, 123, 131, 136, 117, 126, 133, 135, 119, 129, 143, 125, 112, 113, 145, 114, 113, 119, 108, 116, 121, 139, 129, 140, 113, 127, 126, 112, 134, 123, 128, 120, 119, 135, 121, 124, 137, 129, 113, 116, 131, 129, 118, 126, 127, 135, 117, 126, 112, 126, 137, 128, 115, 112, 122, 122, 109, 141, 122, 129, 138, 123, 126, 127, 139, 136, 125, 119, 109, 128, 143, 132, 124, 122, 115, 131, 111, 129, 145, 124, 128, 130, 103, 132, 119, 130, 141, 130, 115, 137, 135, 128, 119, 129, 130, 122, 117, 124, 141, 116, 137, 114, 114, 119, 120, 137, 137, 150, 129, 119, 134, 140, 128, 116, 125, 134, 124, 139, 125, 128, 122, 121, 130, 127, 142, 120, 117, 135, 126, 113, 122, 132, 117, 118, 131, 128, 135, 138, 119, 110, 114, 106, 123, 102, 125, 131, 118, 116, 119, 111, 117, 137, 117, 143, 141, 110, 123, 129, 126, 123, 125, 130, 124, 136, 144, 117, 113, 119, 105, 129, 147, 113, 127, 112, 119, 117, 140, 128, 126, 126, 114, 117, 115, 138, 118, 129, 128, 127, 127, 125, 120, 140, 119, 138, 113, 145, 123, 142, 119, 129, 133, 117, 145, 133, 125, 134, 140, 125, 150, 113, 128, 121, 115, 120, 111, 137, 124, 135, 135, 131, 159, 126, 100, 118, 136, 120, 120, 101, 127, 119, 121, 107, 137, 120, 106, 124, 147, 125, 113, 146, 126, 142, 127, 123, 127, 135, 139, 129, 135, 108, 124, 123, 124, 117, 130, 116, 129, 121, 120, 140, 117, 131, 120, 137, 97, 127, 132, 126, 108, 123, 132, 108, 128, 123, 130, 120, 114, 122, 129, 114, 135, 130, 127, 118, 135, 119, 103, 125, 106, 112, 134, 117, 137, 107, 127, 142, 139, 121, 124, 131, 131, 112, 126, 125, 117, 112, 121, 114, 113, 124, 136, 131, 117, 122, 102, 116, 135, 97, 140, 131, 115, 117, 137, 127, 126, 139, 136, 142, 136, 134, 152, 132, 136, 125, 124, 115, 119, 129, 129, 145, 140, 133, 136, 127, 136, 137, 132, 147, 120, 126, 108, 131, 126, 127, 132, 122, 116, 131, 121, 142, 125, 117, 124, 123, 126, 115, 128, 127, 130, 121, 118, 125, 116, 120, 122, 131, 146, 136, 113, 127, 131, 133, 119, 122, 131, 137, 136, 143, 117, 122, 127, 126, 119, 117, 123, 126, 123, 109, 125, 143, 133, 145, 118, 116, 122, 113, 136, 123, 121, 126, 120, 122, 121, 121, 126, 133, 122, 132, 130, 120, 138, 124, 119, 128, 132, 135, 137, 118, 128, 139, 118, 127, 138, 120, 121, 115, 113, 130, 112, 136, 131, 135, 135, 107, 127, 154, 109, 120, 124, 128, 121, 118, 135, 122, 133, 128, 119, 142, 137, 119, 122, 133, 136, 126, 115, 144, 130, 118, 132, 106, 112, 133, 130, 143, 115, 113, 127, 128, 122, 138, 112, 114, 120, 114, 122, 132, 141, 121, 121, 122, 119, 126, 118, 157, 118, 110, 121, 111, 91, 113, 138, 136, 124, 130, 118, 139, 126, 136, 143, 125, 139, 125, 108, 136, 121, 110, 132, 123, 129, 141, 111, 132, 128, 134, 121, 119, 114, 135, 123, 125, 113, 138, 124, 115, 103, 150, 119, 129, 110, 120, 114, 130, 139, 137, 142, 128, 143, 111, 118, 103, 95, 113, 131, 126, 99, 130, 124, 129, 136, 120, 131, 122, 137, 109, 148, 133, 120, 121, 122, 127, 121, 127, 108, 112, 142, 121, 125, 109, 116, 131, 134, 149, 131, 124, 108, 125, 123, 129, 123, 133, 116, 137, 128, 133, 126, 108, 124, 117, 131, 114, 129, 127, 126, 128, 130, 125, 126, 124, 129, 128, 141, 127, 129, 129, 118, 129, 119, 158, 129, 132, 129, 130, 127, 130, 115, 131, 118, 139, 137, 117, 117, 123, 138, 127, 135, 122, 125, 132, 108, 117, 129, 129, 118, 123, 125, 140, 113, 131, 125, 123, 109, 114, 119, 119, 129, 122, 122, 112, 127, 126, 116, 126, 114, 120, 124, 115, 127, 108, 140, 116, 112, 126, 125, 122, 135, 120, 124, 123, 127, 141, 126, 131, 136, 157, 123, 124, 125, 129, 106, 127, 122, 120, 127, 131, 138, 141, 126, 116, 117, 125, 124, 109, 128, 127, 125, 124, 126, 118, 116, 105, 124, 119, 126, 93, 123, 102, 130, 115, 119, 142, 125, 120, 124, 123, 128, 112, 132, 127, 123, 110, 119, 108, 116, 152, 121, 118, 114, 122, 132, 124, 120, 142, 119, 138, 123, 121, 133, 126, 131, 121, 130, 118, 126, 111, 133, 121, 120, 130, 126, 132, 138, 126, 116, 113, 164, 131, 120, 119, 118, 139, 104, 129, 108, 107, 123, 103, 127, 116, 118, 104, 139, 126, 115, 118, 117, 132, 139, 131, 124, 132, 143, 133, 127, 114, 130, 129, 116, 122, 114, 126, 127, 119, 124, 126, 124, 119, 108, 125, 118, 114, 151, 131, 129, 122, 132, 120, 129, 125, 151, 117, 112, 142, 142, 116, 127, 112, 141, 122, 122, 124, 129, 127, 92, 124, 129, 132, 113, 125, 129, 113, 134, 113, 140, 137, 130, 119, 132, 128, 113, 134, 136, 100, 128, 125, 130, 126, 134, 131, 113, 140, 132, 123, 122, 125, 115, 128, 109, 125, 138, 126, 122, 112, 122, 121, 144, 124, 134, 119, 126, 111, 142, 138, 154, 138, 127, 133, 118, 113, 126, 118, 115, 144, 112, 136, 106, 106, 123, 149, 111, 139, 126, 105, 139, 105, 131, 132, 111, 133, 118, 127, 137, 134, 130, 119, 120, 133, 135, 119, 113, 136, 100, 128, 126, 113, 115, 125, 157, 112, 110, 122, 145, 148, 127, 129, 115, 116, 134, 110, 131, 91, 123, 120, 139, 152, 96, 127, 124, 126, 125, 116, 160, 127, 136, 134, 125, 129, 102, 123, 117, 122, 122, 144, 130, 112, 120, 112, 112, 134, 120, 140, 132, 119, 118, 111, 122, 132, 105, 149, 116, 120, 122, 127, 113, 125, 153, 96, 118, 116, 129, 118, 121, 126, 139, 129, 121, 110, 141, 124, 116, 118, 128, 126, 131, 135, 126, 122, 118, 120, 124, 95, 127, 118, 133, 114, 113, 118, 116, 129, 145, 134, 132, 118, 116, 128, 118, 115, 138, 118, 114, 121, 119, 134, 124, 103, 144, 125, 113, 140, 115, 105, 125, 111, 134, 121, 140, 116, 133, 133, 128, 124, 110, 115, 132, 120, 114, 137, 141, 124, 129, 125, 109, 126, 136, 131, 117, 121, 123, 134, 122, 127, 127, 117, 119, 115, 143, 111, 142, 129, 120, 137, 131, 134, 130, 117, 116, 121, 123, 134, 117, 111, 120, 130, 115, 118, 118, 114, 96, 127, 114, 130, 121, 133, 121, 131, 131, 136, 105, 143, 135, 118, 109, 124, 135, 130, 116, 142, 113, 123, 134, 143, 135, 122, 122, 111, 135, 112, 113, 124, 127, 133, 127, 115, 137, 131, 100, 130, 143, 132, 126, 121, 129, 118, 124, 135, 121, 116, 114, 130, 113, 108, 132, 128, 125, 117, 117, 128, 130, 132, 134, 137, 125, 129, 113, 118, 98, 119, 112, 144, 125, 127, 122, 135, 133, 133, 127, 136, 113, 136, 129, 127, 130, 124, 129, 127, 115, 129, 128, 143, 123, 112, 136, 128, 126, 130, 128, 114, 129, 119, 155, 118, 122, 140, 123, 134, 127, 119, 126, 135, 120, 127, 139, 122, 123, 104, 123, 119, 136, 113, 125, 142, 132, 152, 123, 127, 119, 131, 108, 124, 135, 143, 127, 119, 118, 133, 130, 128, 122, 142, 133, 138, 116, 120, 126, 111, 125, 120, 116, 130, 128, 110, 120, 116, 138, 120, 87, 126, 119, 119, 123, 117, 120, 118, 142, 125, 132, 124, 130, 124, 123, 106, 119, 132, 142, 112, 116, 123, 103, 118, 143, 124, 116, 122, 102, 131, 123, 128, 103, 128, 115, 127, 141, 113, 122, 119, 149, 119, 121, 136, 123, 126, 128, 120, 130, 113, 127, 137, 130, 109, 142, 154, 137, 129, 125, 141, 110, 123, 119, 86, 117, 126, 124, 121, 138, 101, 128, 130, 121, 139, 113, 132, 127, 125, 134, 119, 104, 133, 115, 132, 136, 129, 119, 125, 132, 113, 129, 114, 113, 141, 106, 106, 118, 128, 119, 112, 124, 116, 126, 131, 129, 131, 121, 118, 155, 122, 131, 127, 127, 133, 128, 125, 140, 128, 132, 141, 124, 124, 135, 140, 133, 128, 143, 133, 136, 120, 101, 119, 119, 112, 127, 117, 125, 132, 120, 138, 122, 115, 106, 108, 143, 116, 120, 126, 126, 133, 130, 115, 125, 134, 109, 143, 128, 121, 113, 132, 121, 125, 133, 129, 138, 118, 125, 107, 115, 131, 119, 129, 130, 143, 133, 112, 134, 106, 140, 130, 145, 131, 157, 133, 143, 146, 131, 134, 122, 127, 125, 125, 125, 128, 118, 128, 124, 113, 126, 121, 134, 129, 118, 129, 138, 111, 114, 127, 118, 129, 118, 134, 120, 134, 117, 117, 144, 124, 105, 128, 141, 135, 129, 125, 126, 115, 135, 114, 119, 137, 123, 143, 122, 129, 120, 126, 113, 127, 112, 124, 126, 122, 126, 125, 119, 123, 125, 116, 134, 132, 120, 118, 130, 113, 118, 135, 119, 117, 129, 118, 126, 115, 123, 130, 127, 139, 117, 123, 114, 126, 138, 115, 129, 119, 118, 140, 130, 122, 113, 119, 134, 119, 114, 124, 121, 125, 124, 124, 121, 131, 102, 140, 115, 149, 133, 131, 133, 130, 114, 126, 143, 133, 127, 119, 136, 129, 131, 101, 133, 134, 135, 116, 116, 126, 123, 132, 113, 115, 126, 118, 105, 123, 109, 140, 122, 124, 134, 128, 118, 133, 133, 136, 129, 116, 140, 136, 122, 137, 116, 118, 105, 115, 139, 138, 152, 131, 124, 123, 111, 125, 131, 108, 133, 136, 134, 131, 119, 118, 117, 125, 130, 126, 111, 129, 98, 120, 137, 120, 124, 116, 124, 121, 132, 128, 129, 113, 136, 150, 122, 110, 134, 148, 143, 134, 102, 131, 128, 114, 125, 120, 115, 121, 115, 128, 118, 123, 136, 119, 146, 121, 134, 136, 117, 137, 125, 107, 120, 119, 119, 126, 131, 116, 102, 122, 144, 135, 125, 126, 131, 117, 135, 117, 132, 143, 116, 122, 127, 140, 155, 114, 122, 115, 135, 122, 114, 134, 124, 111, 133, 119, 121, 121, 126, 115, 124, 128, 114, 121, 128, 120, 121, 129, 127, 113, 110, 136, 124, 126, 129, 127, 129, 147, 120, 136, 134, 134, 124, 107, 138, 136, 133, 143, 119, 124, 150, 138, 121, 112, 129, 126, 110, 140, 128, 110, 134, 101, 122, 107, 111, 134, 110, 103, 123, 137, 140, 130, 128, 133, 121, 116, 157, 129, 129, 122, 127, 122, 132, 134, 114, 144, 121, 140, 121, 108, 141, 122, 137, 134, 138, 125, 104, 106, 133, 140, 131, 134, 137, 133, 117, 154, 139, 120, 129, 127, 129, 125, 122, 131, 114, 125, 144, 113, 124, 117, 124, 115, 131, 117, 135, 124, 121, 119, 127, 123, 122, 131, 125, 133, 140, 130, 108, 114, 132, 133, 121, 135, 113, 114, 131, 120, 129, 130, 128, 113, 137, 130, 132, 117, 126, 122, 117, 136, 119, 135, 134, 115, 124, 118, 125, 117, 126, 135, 131, 140, 130, 130, 124, 120, 115, 112, 119, 126, 122, 122, 129, 125, 130, 131, 131, 109, 131, 134, 115, 126, 148, 122, 137, 106, 126, 123, 139, 123, 132, 131, 139, 108, 122, 117, 136, 131, 110, 117, 106, 118, 120, 111, 118, 139, 142, 144, 130, 132, 126, 120, 132, 108, 136, 118, 121, 140, 125, 119, 120, 144, 112, 113, 125, 121, 112, 129, 149, 103, 121, 122, 138, 109, 124, 117, 127, 95, 138, 121, 132, 110, 128, 147, 126, 125, 128, 122, 123, 147, 127, 118, 139, 108, 113, 117, 142, 135, 123, 122, 124, 115, 109, 122, 116, 117, 125, 114, 139, 124, 117, 127, 114, 120, 115, 139, 106, 106, 124, 130, 130, 125, 119, 119, 144, 139, 123, 125, 140, 118, 122, 128, 131, 125, 121, 123, 129, 137, 125, 136, 144, 135, 109, 141, 118, 122, 142, 119, 117, 112, 125, 136, 154, 131, 128, 136, 129, 111, 124, 145, 124, 114, 123, 125, 135, 120, 130, 125, 118, 126, 142, 130, 123, 130, 121, 119, 121, 125, 118, 132, 123, 121, 123, 123, 128, 119, 140, 104, 122, 124, 115, 155, 131, 110, 123, 130, 127, 124, 121, 116, 131, 124, 119, 111, 123, 122, 111, 130, 117, 132, 118, 123, 117, 128, 117, 124, 108, 117, 152, 119, 124, 103, 149, 127, 116, 133, 128, 148, 121, 129, 132, 105, 132, 126, 118, 115, 96, 116, 139, 126, 103, 116, 125, 127, 121, 127, 125, 127, 130, 131, 106, 133, 121, 128, 126, 112, 123, 139, 137, 101, 124, 110, 143, 115, 129, 126, 138, 117, 126, 114, 121, 131, 141, 120, 152, 123, 118, 147, 117, 128, 122, 143, 124, 128, 132, 140, 138, 151, 132, 134, 117, 126, 126, 128, 132, 138, 138, 137, 148, 133, 118, 125, 134, 116, 123, 110, 124, 122, 117, 140, 126, 128, 108, 124, 129, 123, 111, 115, 150, 116, 124, 136, 148, 109, 140, 133, 112, 132, 136, 104, 135, 129, 111, 115, 129, 137, 129, 109, 133, 134, 117, 141, 138, 137, 112, 122, 127, 101, 119, 125, 141, 122, 118, 121, 124, 129, 113, 132, 120, 105, 145, 125, 128, 125, 129, 118, 142, 123, 137, 128, 148, 129, 153, 133, 130, 150, 116, 105, 138, 129, 116, 122, 114, 128, 112, 126, 117, 117, 124, 137, 126, 131, 139, 134, 129, 128, 116, 128, 115, 119, 132, 114, 133, 133, 102, 120, 125, 132, 112, 137, 130, 131, 132, 144, 133, 105, 130, 116, 136, 133, 139, 115, 118, 143, 125, 126, 122, 147, 128, 123, 125, 108, 107, 128, 130, 117, 118, 132, 130, 139, 124, 125, 116, 121, 111, 116, 107, 135, 114, 142, 131, 121, 126, 145, 120, 136, 120, 137, 117, 122, 124, 131, 116, 124, 137, 123, 122, 106, 125, 123, 117, 110, 142, 125, 124, 139, 148, 120, 108, 133, 119, 115, 117, 122, 135, 138, 124, 129, 122, 126, 117, 105, 116, 121, 99, 124, 136, 136, 129, 134, 122, 128, 144, 141, 147, 124, 128, 117, 120, 126, 132, 124, 140, 123, 131, 132, 100, 114, 135, 124, 121, 125, 129, 118, 128, 134, 112, 119, 140, 133, 124, 133, 109, 130, 130, 124, 115, 133, 139, 127, 118, 124, 137, 130, 126, 122, 132, 124, 122, 114, 136, 124, 136, 135, 123, 130, 130, 139, 113, 130, 127, 140, 110, 132, 110, 111, 115, 123, 129, 130, 124, 137, 124, 118, 125, 130, 124, 132, 121, 133, 111, 139, 123, 120, 145, 138, 122, 140, 138, 120, 134, 106, 119, 123, 134, 123, 124, 117, 134, 131, 119, 131, 131, 113, 138, 130, 126, 125, 134, 124, 131, 133, 118, 121, 134, 104, 120, 136, 134, 126, 122, 113, 142, 132, 133, 128, 126, 131, 130, 145, 126, 127, 124, 117, 136, 128, 142, 135, 129, 114, 127, 136, 123, 133, 126, 135, 123, 124, 116, 117, 119, 119, 104, 126, 138, 124, 126, 129, 127, 109, 133, 128, 124, 93, 128, 137, 132, 125, 134, 120, 137, 137, 127, 112, 137, 119, 109, 131, 114, 126, 115, 124, 135, 124, 104, 134, 125, 122, 123, 123, 144, 110, 136, 106, 115, 147, 127, 121, 140, 132, 107, 134, 125, 133, 128, 112, 124, 127, 115, 130, 120, 117, 123, 127, 132, 122, 118, 150, 133, 123, 128, 128, 120, 132, 117, 121, 131, 123, 109, 130, 120, 131, 114, 109, 153, 113, 110, 115, 113, 125, 127, 133, 122, 127, 124, 111, 120, 127, 98, 129, 129, 121, 111, 123, 106, 121, 137, 118, 124, 114, 136, 105, 132, 124, 131, 128, 120, 120, 120, 139, 118, 138, 136, 127, 114, 122, 122, 126, 126, 132, 113, 123, 110, 118, 128, 101, 133, 127, 127, 131, 116, 111, 122, 142, 131, 135, 129, 124, 113, 116, 128, 137, 118, 123, 116, 127, 126, 127, 128, 146, 116, 118, 148, 117, 117, 123, 126, 124, 140, 139, 120, 99, 121, 128, 118, 121, 128, 121, 133, 115, 144, 105, 127, 135, 139, 139, 130, 101, 126, 121, 137, 151, 121, 138, 125, 124, 128, 130, 119, 129, 125, 137, 131, 113, 122, 118, 128, 126, 110, 113, 136, 127, 148, 123, 118, 112, 129, 115, 120, 115, 127, 133, 122, 130, 125, 128, 129, 145, 106, 126, 125, 129, 120, 131, 128, 125, 128, 130, 122, 137, 118, 123, 136, 135, 128, 125, 133, 107, 124, 112, 123, 123, 122, 117, 124, 136, 126, 128, 139, 120, 127, 117, 132, 131, 110, 100, 116, 117, 120, 134, 124, 113, 114, 121, 106, 120, 142, 112, 109, 124, 149, 135, 117, 117, 130, 126, 126, 135, 126, 145, 131, 133, 167, 130, 127, 127, 128, 130, 121, 128, 126, 139, 116, 107, 132, 116, 117, 133, 132, 120, 132, 146, 139, 130, 106, 128, 110, 108, 130, 125, 120, 108, 122, 101, 128, 107, 130, 134, 137, 115, 133, 129, 137, 143, 116, 121, 131, 129, 138, 127, 127, 113, 129, 116, 128, 142, 113, 113, 138, 133, 134, 146, 132, 133, 127, 118, 139, 125, 122, 118, 131, 118, 136, 112, 112, 116, 114, 147, 107, 145, 116, 126, 127, 115, 123, 134, 144, 128, 131, 121, 126, 147, 122, 120, 124, 117, 130, 128, 124, 128, 118, 115, 132, 131, 127, 105, 124, 111, 124, 114, 127, 131, 129, 129, 127, 138, 141, 144, 130, 132, 122, 139, 112, 133, 132, 111, 114, 122, 117, 144, 108, 119, 104, 135, 115, 122, 113, 140, 119, 122, 124, 134, 137, 122, 136, 145, 135, 125, 137, 111, 122, 125, 100, 138, 127, 107, 125, 151, 121, 141, 131, 133, 135, 122, 122, 136, 99, 122, 129, 125, 106, 127, 127, 123, 139, 121, 134, 119, 117, 135, 128, 127, 120, 126, 123, 122, 110, 116, 134, 133, 104, 116, 144, 113, 134, 132, 131, 123, 148, 137, 117, 130, 121, 125, 129, 124, 126, 108, 131, 124, 149, 114, 114, 131, 139, 142, 125, 107, 117, 137, 159, 115, 126, 128, 125, 110, 142, 128, 105, 112, 146, 134, 120, 122, 126, 116, 113, 115, 132, 115, 115, 110, 138, 134, 150, 138, 123, 129, 121, 114, 105, 134, 143, 121, 130, 137, 122, 124, 127, 132, 114, 130, 126, 110, 123, 123, 117, 140, 136, 128, 129, 137, 119, 144, 122, 129, 140, 135, 131, 127, 110, 121, 107, 129, 135, 115, 110, 111, 144, 137, 132, 128, 127, 129, 121, 138, 122, 117, 127, 124, 142, 125, 111, 128, 117, 116, 123, 124, 108, 135, 132, 133, 117, 135, 118, 123, 122, 112, 145, 114, 118, 136, 128, 130, 122, 130, 133, 132, 136, 131, 117, 125, 114, 124, 128, 123, 150, 130, 121, 131, 133, 124, 140, 139, 132, 135, 125, 140, 137, 131, 131, 120, 123, 115, 129, 127, 122, 135, 147, 130, 114, 136, 134, 119, 120, 123, 125, 127, 121, 131, 119, 116, 120, 121, 116, 123, 122, 119, 131, 116, 139, 124, 134, 143, 134, 134, 133, 130, 132, 113, 117, 122, 117, 110, 118, 131, 125, 126, 120, 118, 145, 131, 120, 121, 121, 125, 136, 129, 132, 122, 133, 116, 126, 129, 128, 131, 119, 114, 132, 123, 136, 131, 140, 117, 118, 133, 107, 136, 118, 113, 131, 96, 123, 119, 123, 120, 119, 122, 104, 120, 128, 133, 135, 128, 119, 139, 133, 115, 129, 115, 133, 129, 124, 121, 136, 122, 134, 131, 130, 119, 134, 140, 109, 133, 113, 120, 131, 139, 124, 125, 134, 141, 125, 128, 107, 124, 115, 118, 136, 129, 124, 131, 140, 128, 147, 112, 125, 130, 117, 131, 119, 132, 133, 116, 120, 108, 127, 145, 124, 112, 116, 124, 124, 121, 127, 111, 120, 117, 114, 143, 143, 112, 147, 138, 117, 131, 124, 105, 141, 101, 137, 120, 111, 119, 128, 139, 117, 137, 133, 126, 143, 132, 125, 139, 122, 132, 124, 131, 131, 123, 137, 138, 127, 129, 123, 146, 137, 137, 114, 132, 117, 114, 141, 125, 134, 129, 129, 139, 117, 115, 122, 118, 121, 123, 142, 134, 135, 139, 126, 135, 131, 116, 127, 130, 130, 137, 124, 150, 137, 117, 123, 117, 126, 116, 134, 124, 116, 110, 133, 110, 127, 130, 116, 137, 109, 130, 113, 124, 137, 119, 138, 120, 138, 120, 126, 134, 125, 119, 116, 120, 135, 131, 140, 130, 120, 118, 134, 130, 129, 115, 122, 127, 158, 118, 121, 140, 125, 121, 122, 120, 100, 111, 126, 138, 117, 135, 128, 124, 125, 126, 116, 128, 128, 128, 124, 148, 133, 121, 141, 132, 126, 126, 125, 131, 144, 130, 121, 106, 117, 126, 129, 113, 123, 123, 130, 128, 122, 131, 153, 107, 134, 127, 121, 132, 125, 125, 134, 145, 130, 138, 133, 131, 120, 126, 125, 118, 138, 122, 118, 121, 122, 113, 142, 120, 134, 125, 123, 115, 135, 125, 124, 102, 125, 132, 124, 128, 120, 115, 129, 132, 139, 134, 123, 138, 130, 122, 138, 115, 146, 125, 138, 128, 116, 127, 133, 111, 132, 101, 135, 121, 103, 121, 117, 121, 138, 133, 111, 126, 123, 119, 155, 118, 124, 119, 108, 125, 102, 119, 125, 128, 126, 124, 118, 127, 129, 122, 105, 123, 115, 126, 126, 136, 121, 113, 143, 136, 133, 129, 120, 114, 132, 123, 112, 131, 129, 115, 123, 119, 141, 124, 133, 127, 117, 118, 148, 119, 110, 118, 125, 117, 122, 127, 135, 124, 126, 130, 126, 122, 113, 124, 139, 115, 125, 134, 107, 133, 135, 118, 118, 111, 128, 131, 134, 123, 123, 126, 116, 128, 136, 123, 118, 128, 132, 126, 106, 132, 125, 127, 122, 105, 95, 111, 107, 113, 116, 131, 134, 133, 137, 112, 139, 125, 142, 121, 127, 141, 127, 129, 112, 136, 115, 126, 135, 119, 143, 131, 128, 123, 120, 135, 103, 125, 121, 118, 117, 120, 122, 126, 110, 131, 118, 121, 121, 113, 149, 136, 128, 121, 122, 135, 136, 126, 112, 126, 122, 114, 119, 132, 134, 141, 128, 128, 128, 142, 123, 134, 124, 117, 128, 112, 125, 120, 137, 127, 123, 123, 121, 128, 135, 134, 112, 140, 119, 129, 131, 135, 124, 117, 119, 118, 110, 113, 132, 147, 124, 125, 117, 119, 116, 124, 135, 139, 115, 137, 123, 110, 136, 128, 123, 134, 148, 128, 118, 139, 131, 132, 118, 131, 129, 114, 123, 147, 125, 114, 141, 121, 129, 120, 157, 115, 124, 114, 146, 131, 123, 129, 106, 126, 127, 119, 123, 144, 127, 122, 124, 132, 126, 122, 139, 127, 131, 134, 119, 113, 134, 149, 91, 130, 130, 123, 113, 126, 132, 125, 126, 110, 128, 122, 115, 111, 120, 125, 151, 135, 126, 108, 123, 112, 154, 123, 127, 118, 110, 121, 138, 125, 125, 119, 127, 111, 117, 129, 116, 124, 113, 111, 124, 125, 143, 120, 144, 139, 94, 116, 130, 125, 118, 135, 114, 135, 142, 140, 148, 127, 137, 118, 106, 111, 130, 127, 127, 114, 124, 118, 122, 140, 121, 127, 126, 129, 120, 127, 130, 131, 128, 123, 124, 132, 118, 131, 133, 126, 118, 129, 135, 131, 124, 132, 127, 120, 123, 107, 131, 105, 132, 131, 138, 104, 138, 128, 109, 123, 122, 119, 114, 143, 127, 135, 120, 121, 128, 127, 126, 119, 118, 120, 136, 130, 119, 131, 136, 165, 137, 124, 105, 134, 133, 121, 115, 136, 139, 127, 135, 143, 124, 123, 124, 121, 130, 125, 124, 123, 123, 116, 133, 111, 110, 126, 126, 136, 125, 129, 132, 125, 127, 149, 144, 139, 121, 115, 126, 129, 127, 110, 112, 145, 126, 116, 129, 134, 125, 123, 121, 123, 129, 119, 122, 136, 120, 136, 133, 126, 130, 116, 125, 122, 124, 121, 125, 140, 138, 111, 136, 120, 138, 115, 106, 130, 136, 125, 114, 98, 119, 123, 127, 119, 126, 121, 129, 123, 120, 132, 127, 117, 119, 110, 119, 117, 111, 128, 140, 110, 111, 132, 120, 120, 114, 118, 126, 117, 134, 123, 141, 106, 131, 134, 116, 123, 137, 125, 120, 126, 142, 142, 134, 114, 136, 107, 121, 135, 113, 120, 126, 125, 123, 130, 118, 140, 141, 115, 129, 118, 100, 142, 128, 104, 130, 108, 122, 115, 115, 136, 116, 128, 115, 145, 110, 118, 117, 114, 132, 111, 123, 109, 146, 123, 121, 111, 121, 125, 129, 120, 106, 130, 120, 142, 117, 152, 129, 138, 122, 117, 125, 117, 144, 113, 115, 135, 121, 129, 113, 114, 131, 132, 125, 113, 121, 144, 121, 117, 121, 129, 116, 109, 121, 130, 126, 135, 143, 127, 117, 127, 124, 134, 118, 146, 119, 129, 123, 117, 125, 132, 122, 131, 130, 121, 121, 135, 96, 126, 119, 115, 131, 118, 119, 111, 136, 121, 126, 115, 126, 131, 121, 129, 117, 122, 122, 123, 127, 133, 136, 114, 121, 132, 125, 127, 132, 129, 130, 139, 137, 107, 107, 112, 115, 137, 126, 115, 127, 111, 134, 123, 132, 110, 125, 120, 115, 122, 134, 140, 128, 132, 147, 118, 142, 121, 136, 111, 127, 126, 117, 121, 119, 134, 120, 133, 135, 109, 132, 117, 127, 140, 116, 109, 125, 132, 136, 113, 130, 127, 130, 114, 129, 144, 125, 111, 125, 98, 124, 127, 125, 118, 155, 124, 119, 119, 112, 123, 136, 116, 114, 123, 127, 124, 110, 146, 114, 119, 126, 118, 126, 116, 126, 141, 136, 126, 150, 140, 128, 122, 122, 128, 124, 125, 133, 139, 143, 136, 120, 127, 135, 123, 108, 125, 138, 127, 122, 132, 138, 109, 126, 98, 131, 122, 126, 154, 119, 121, 112, 132, 111, 117, 128, 119, 131, 124, 116, 133, 149, 129, 132, 134, 119, 113, 121, 134, 131, 129, 123, 106, 124, 129, 133, 121, 120, 124, 128, 129, 115, 119, 129, 126, 124, 152, 132, 128, 128, 125, 139, 102, 148, 124, 122, 128, 128, 114, 121, 154, 126, 120, 130, 128, 144, 128, 126, 125, 129, 130, 120, 137, 127, 140, 155, 131, 115, 134, 119, 115, 145, 107, 129, 115, 127, 131, 117, 121, 143, 128, 111, 120, 132, 131, 114, 129, 122, 125, 113, 124, 129, 113, 119, 123, 109, 134, 120, 110, 115, 115, 117, 117, 114, 113, 125, 116, 136, 119, 120, 121, 136, 140, 116, 101, 131, 122, 112, 141, 115, 126, 116, 105, 114, 130, 122, 131, 127, 122, 134, 119, 128, 132, 129, 134, 133, 122, 133, 119, 122, 120, 119, 124, 124, 143, 132, 111, 140, 132, 125, 114, 138, 129, 106, 127, 111, 108, 139, 126, 119, 123, 128, 95, 127, 133, 134, 132, 131, 127, 123, 119, 119, 131, 121, 128, 139, 127, 120, 127, 116, 125, 126, 137, 125, 125, 116, 142, 123, 125, 125, 117, 120, 126, 129, 143, 112, 114, 135, 123, 121, 124, 117, 119, 120, 124, 128, 118, 117, 134, 140, 124, 138, 111, 131, 124, 135, 142, 130, 132, 147, 115, 138, 114, 123, 132, 118, 125, 145, 134, 123, 120, 134, 125, 146, 130, 130, 121, 127, 104, 122, 118, 121, 135, 133, 120, 120, 135, 108, 113, 98, 127, 137, 128, 120, 141, 136, 131, 134, 143, 115, 135, 120, 109, 128, 121, 126, 128, 119, 142, 133, 134, 126, 112, 117, 137, 123, 126, 127, 120, 116, 130, 114, 121, 110, 120, 128, 138, 118, 128, 115, 132, 136, 115, 127, 128, 99, 122, 114, 138, 118, 117, 121, 126, 142, 117, 104, 134, 115, 110, 117, 113, 125, 123, 139, 123, 122, 110, 126, 124, 122, 117, 137, 113, 131, 118, 122, 123, 132, 117, 129, 124, 128, 117, 120, 115, 106, 138, 123, 134, 134, 135, 129, 101, 125, 116, 109, 139, 127, 122, 132, 129, 116, 126, 117, 131, 119, 105, 144, 111, 115, 134, 127, 137, 124, 128, 127, 104, 130, 124, 125, 116, 120, 117, 121, 139, 125, 123, 156, 133, 116, 112, 126, 125, 134, 117, 148, 114, 134, 111, 138, 136, 141, 124, 135, 145, 123, 126, 132, 127, 129, 118, 127, 131, 98, 115, 127, 137, 159, 130, 121, 104, 109, 132, 126, 105, 136, 114, 115, 120, 137, 128, 125, 127, 125, 118, 118, 131, 142, 123, 130, 132, 129, 109, 124, 122, 115, 117, 117, 129, 141, 121, 118, 132, 112, 121, 91, 126, 118, 112, 109, 111, 133, 130, 120, 134, 135, 128, 136, 133, 112, 130, 122, 134, 114, 108, 125, 113, 121, 128, 119, 120, 140, 111, 136, 122, 132, 118, 127, 121, 116, 116, 126, 105, 114, 139, 121, 129, 135, 120, 132, 147, 131, 116, 129, 122, 115, 117, 138, 139, 133, 144, 129, 142, 126, 114, 122, 143, 115, 123, 113, 122, 127, 125, 132, 129, 139, 131, 121, 121, 118, 119, 140, 131, 131, 138, 123, 117, 137, 122, 126, 122, 120, 113, 140, 117, 120, 124, 137, 126, 121, 108, 128, 111, 110, 112, 122, 131, 129, 126, 123, 126, 121, 118, 112, 121, 147, 123, 134, 121, 117, 137, 123, 126, 144, 129, 125, 132, 128, 118, 142, 128, 140, 126, 123, 121, 132, 124, 127, 126, 112, 130, 133, 114, 121, 111, 128, 120, 125, 115, 121, 131, 116, 119, 127, 108, 152, 120, 116, 121, 119, 114, 145, 126, 149, 126, 120, 124, 116, 124, 135, 156, 131, 127, 112, 123, 123, 118, 123, 128, 135, 124, 132, 113, 118, 133, 134, 129, 125, 122, 104, 135, 132, 137, 111, 118, 132, 110, 126, 112, 118, 117, 129, 112, 124, 140, 126, 113, 135, 119, 114, 144, 126, 122, 131, 130, 113, 124, 138, 122, 131, 118, 124, 130, 119, 126, 124, 137, 118, 120, 119, 135, 115, 140, 133, 118, 124, 132, 122, 122, 126, 131, 122, 114, 131, 124, 111, 121, 128, 99, 107, 130, 122, 118, 123, 131, 137, 145, 123, 140, 126, 140, 147, 128, 136, 116, 127, 130, 130, 121, 126, 141, 120, 125, 121, 131, 136, 116, 123, 112, 133, 125, 131, 145, 109, 129, 133, 119, 132, 135, 133, 129, 142, 97, 126, 128, 126, 122, 124, 136, 106, 128, 139, 114, 121, 139, 119, 130, 136, 129, 136, 99, 122, 108, 127, 123, 150, 128, 131, 129, 118, 120, 135, 125, 108, 127, 130, 139, 118, 129, 118, 133, 123, 125, 136, 132, 120, 104, 126, 118, 132, 106, 129, 142, 142, 117, 132, 125, 107, 134, 125, 129, 129, 128, 147, 126, 123, 123, 128, 142, 120, 120, 113, 111, 125, 122, 113, 136, 120, 134, 127, 133, 143, 135, 136, 127, 114, 125, 125, 136, 121, 127, 121, 143, 113, 121, 122, 145, 136, 122, 125, 109, 117, 127, 111, 129, 125, 121, 135, 142, 124, 130, 126, 127, 122, 133, 128, 130, 112, 133, 129, 123, 114, 133, 134, 144, 118, 128, 138, 150, 117, 124, 123, 110, 131, 127, 114, 151, 126, 120, 120, 133, 118, 124, 121, 131, 123, 124, 111, 128, 124, 138, 125, 123, 131, 138, 128, 129, 121, 126, 113, 136, 130, 114, 151, 129, 117, 121, 125, 117, 131, 131, 141, 125, 111, 126, 142, 116, 117, 137, 117, 124, 128, 132, 115, 99, 87, 125, 131, 134, 120, 111, 114, 121, 110, 115, 143, 127, 125, 119, 125, 133, 104, 117, 131, 132, 160, 118, 127, 139, 107, 122, 125, 118, 131, 126, 126, 112, 148, 110, 132, 123, 133, 123, 117, 137, 127, 118, 126, 131, 120, 124, 130, 120, 121, 126, 126, 122, 130, 102, 121, 136, 117, 111, 105, 134, 120, 131, 122, 137, 127, 129, 122, 153, 132, 115, 133, 132, 133, 141, 119, 125, 123, 127, 112, 108, 96, 128, 102, 125, 140, 137, 112, 136, 134, 138, 118, 130, 129, 125, 111, 112, 99, 121, 123, 128, 120, 130, 135, 141, 127, 114, 108, 111, 116, 123, 132, 125, 114, 123, 114, 138, 112, 131, 118, 122, 111, 140, 120, 109, 120, 112, 135, 119, 126, 135, 106, 117, 123, 115, 112, 106, 117, 125, 119, 128, 133, 129, 153, 118, 135, 138, 123, 127, 144, 128, 135, 130, 124, 116, 108, 143, 130, 117, 125, 117, 124, 146, 121, 118, 121, 133, 123, 113, 128, 136, 135, 144, 142, 141, 114, 124, 138, 104, 107, 112, 147, 131, 117, 111, 127, 124, 129, 121, 123, 126, 102, 137, 136, 109, 118, 111, 120, 121, 142, 141, 125, 121, 102, 109, 108, 128, 138, 114, 115, 140, 123, 130, 124, 122, 141, 109, 114, 126, 122, 132, 115, 131, 119, 113, 118, 125, 120, 112, 112, 99, 111, 143, 143, 150, 122, 122, 148, 118, 116, 117, 116, 125, 140, 117, 111, 111, 124, 124, 144, 140, 121, 131, 122, 135, 148, 120, 113, 139, 121, 146, 131, 112, 115, 136, 124, 142, 130, 116, 143, 138, 135, 136, 124, 121, 130, 123, 156, 116, 120, 128, 118, 129, 146, 126, 122, 138, 131, 142, 123, 145, 140, 117, 129, 144, 120, 122, 116, 112, 127, 129, 117, 128, 123, 117, 142, 100, 129, 117, 135, 116, 128, 109, 122, 125, 114, 150, 120, 108, 107, 147, 132, 138, 107, 151, 107, 130, 134, 128, 127, 123, 135, 111, 118, 126, 139, 132, 131, 124, 127, 135, 119, 128, 127, 111, 128, 109, 121, 136, 124, 122, 131, 121, 120, 114, 116, 115, 148, 119, 134, 131, 133, 150, 112, 133, 128, 139, 115, 125, 115, 123, 131, 118, 134, 136, 116, 134, 126, 132, 120, 119, 134, 122, 131, 116, 115, 129, 130, 97, 124, 127, 134, 138, 120, 128, 129, 129, 120, 137, 128, 125, 139, 127, 127, 128, 119, 144, 134, 139, 125, 125, 132, 101, 129, 120, 122, 131, 150, 131, 97, 135, 109, 111, 134, 151, 148, 121, 121, 134, 135, 116, 155, 139, 101, 141, 134, 113, 130, 126, 131, 144, 109, 121, 138, 146, 100, 145, 121, 117, 131, 138, 154, 132, 132, 112, 127, 123, 127, 132, 143, 114, 138, 134, 106, 135, 122, 139, 138, 130, 124, 124, 147, 113, 120, 123, 124, 106, 111, 141, 129, 111, 120, 133, 101, 135, 155, 131, 141, 147, 128, 115, 132, 130, 139, 147, 128, 115, 126, 116, 120, 146, 137, 121, 118, 113, 130, 154, 137, 118, 117, 126, 111, 128, 131, 146, 137, 100, 140, 132, 111, 122, 116, 130, 115, 98, 124, 112, 131, 131, 144, 133, 118, 112, 127, 132, 131, 129, 124, 143, 122, 113, 117, 124, 114, 127, 142, 133, 114, 111, 144, 126, 134, 137, 134, 105, 132, 140, 127, 121, 124, 133, 127, 139, 137, 118, 127, 127, 115, 108, 135, 153, 124, 143, 144, 122, 126, 131, 101, 144, 114, 125, 117, 128, 121, 139, 141, 135, 129, 127, 119, 136, 127, 145, 117, 123, 131, 124, 115, 133, 117, 133, 119, 140, 133, 162, 126, 121, 124, 129, 135, 121, 104, 121, 120, 133, 144, 125, 135, 125, 103, 127, 115, 118, 123, 123, 111, 116, 128, 140, 126, 100, 138, 141, 118, 137, 112, 118, 112, 134, 130, 133, 124, 117, 121, 107, 146, 132, 130, 119, 119, 126, 111, 133, 132, 123, 111, 132, 108, 121, 121, 106, 118, 106, 121, 108, 127, 104, 130, 113, 128, 128, 114, 121, 123, 122, 124, 126, 122, 123, 142, 114, 118, 124, 116, 120, 117, 118, 123, 121, 131, 122, 105, 137, 147, 110, 103, 122, 142, 142, 136, 139, 127, 129, 138, 131, 152, 108, 141, 126, 127, 108, 121, 137, 129, 125, 138, 130, 127, 119, 117, 135, 139, 124, 113, 121, 118, 123, 110, 139, 129, 114, 140, 132, 127, 133, 93, 146, 120, 132, 103, 131, 123, 114, 122, 127, 124, 129, 135, 130, 154, 115, 124, 130, 122, 117, 121, 133, 103, 140, 120, 124, 113, 126, 125, 121, 131, 125, 120, 141, 130, 123, 120, 154, 136, 124, 135, 131, 116, 124, 118, 139, 101, 131, 99, 111, 136, 127, 114, 135, 130, 135, 110, 131, 102, 123, 121, 131, 108, 139, 130, 137, 122, 130, 124, 112, 134, 123, 124, 109, 118, 99, 124, 127, 131, 125, 125, 146, 129, 129, 122, 101, 126, 115, 123, 108, 128, 134, 116, 116, 123, 118, 112, 117, 111, 140, 120, 118, 122, 123, 129, 121, 120, 110, 130, 130, 124, 113, 121, 138, 137, 120, 121, 116, 126, 105, 126, 153, 123, 132, 121, 125, 119, 122, 125, 129, 132, 123, 127, 128, 120, 124, 117, 121, 112, 125, 129, 123, 144, 108, 125, 135, 114, 131, 135, 134, 145, 120, 117, 139, 135, 128, 133, 133, 136, 125, 140, 153, 94, 130, 113, 128, 99, 128, 122, 125, 143, 144, 109, 124, 123, 117, 112, 146, 110, 116, 137, 103, 121, 115, 126, 131, 145, 132, 119, 129, 112, 112, 132, 125, 119, 116, 133, 140, 138, 103, 133, 115, 128, 128, 113, 120, 115, 118, 129, 137, 125, 122, 158, 137, 127, 134, 127, 106, 128, 125, 126, 115, 127, 112, 116, 123, 135, 129, 93, 115, 109, 128, 121, 113, 137, 138, 123, 113, 150, 140, 120, 111, 139, 135, 112, 138, 140, 104, 113, 146, 135, 120, 125, 116, 129, 126, 126, 124, 104, 123, 111, 135, 135, 136, 124, 119, 115, 132, 136, 125, 124, 124, 127, 133, 117, 112, 151, 133, 130, 98, 122, 133, 120, 123, 129, 127, 117, 106, 124, 122, 94, 114, 123, 142, 108, 117, 129, 134, 113, 121, 140, 104, 126, 134, 121, 112, 116, 145, 126, 136, 122, 118, 144, 121, 110, 125, 112, 134, 130, 127, 119, 132, 151, 130, 163, 134, 123, 125, 124, 130, 120, 99, 133, 134, 121, 116, 124, 124, 130, 117, 115, 132, 116, 134, 124, 126, 140, 111, 120, 129, 138, 126, 117, 105, 119, 112, 119, 118, 138, 126, 118, 141, 112, 134, 121, 117, 118, 120, 106, 145, 125, 122, 120, 122, 118, 133, 128, 117, 124, 127, 130, 108, 123, 114, 126, 134, 138, 141, 118, 136, 136, 105, 100, 138, 120, 131, 114, 119, 129, 126, 120, 118, 112, 124, 105, 125, 116, 152, 133, 137, 134, 140, 130, 124, 129, 128, 122, 106, 129, 135, 115, 131, 122, 132, 132, 121, 125, 130, 134, 136, 117, 143, 126, 129, 128, 133, 127, 114, 135, 125, 121, 110, 121, 148, 117, 123, 115, 123, 129, 121, 106, 110, 139, 122, 115, 123, 143, 114, 131, 131, 103, 141, 114, 121, 114, 125, 121, 145, 95, 125, 119, 113, 134, 134, 113, 137, 112, 133, 129, 112, 136, 126, 120, 109, 117, 130, 118, 139, 123, 108, 131, 121, 134, 118, 125, 129, 126, 113, 128, 118, 105, 103, 110, 117, 136, 111, 113, 111, 124, 129, 103, 105, 131, 126, 122, 99, 141, 109, 119, 127, 132, 135, 125, 130, 125, 132, 129, 119, 117, 134, 161, 130, 126, 126, 111, 124, 99, 122, 110, 120, 127, 118, 125, 126, 129, 127, 102, 127, 124, 117, 114, 130, 130, 117, 125, 123, 138, 129, 122, 114, 138, 110, 115, 126, 142, 128, 125, 143, 119, 114, 113, 137, 127, 122, 132, 137, 134, 151, 132, 128, 126, 111, 137, 122, 122, 126, 122, 133, 141, 144, 126, 129, 126, 123, 138, 124, 120, 119, 122, 138, 110, 129, 116, 112, 131, 108, 110, 124, 142, 144, 137, 122, 136, 105, 129, 124, 123, 118, 117, 148, 129, 126, 106, 124, 129, 123, 121, 122, 127, 141, 131, 109, 118, 134, 114, 140, 120, 111, 137, 119, 135, 129, 127, 136, 137, 110, 128, 140, 131, 132, 122, 114, 129, 128, 100, 120, 107, 113, 117, 131, 128, 133, 127, 116, 120, 125, 125, 128, 137, 112, 149, 129, 133, 141, 124, 130, 126, 125, 94, 134, 129, 128, 117, 142, 146, 121, 127, 119, 130, 124, 138, 126, 114, 153, 125, 126, 125, 135, 135, 118, 141, 127, 136, 133, 109, 138, 108, 118, 127, 119, 139, 119, 117, 145, 104, 131, 137, 133, 117, 127, 124, 116, 132, 123, 119, 135, 121, 112, 118, 108, 107, 130, 124, 118, 133, 121, 130, 126, 137, 121, 127, 115, 130, 132, 126, 125, 120, 121, 122, 121, 143, 131, 126, 113, 131, 118, 140, 134, 111, 131, 111, 110, 127, 126, 126, 112, 133, 132, 115, 108, 116, 124, 119, 115, 139, 119, 126, 135, 130, 131, 140, 122, 117, 108, 126, 128, 140, 129, 118, 122, 132, 118, 120, 135, 130, 122, 116, 118, 125, 129, 99, 127, 134, 119, 120, 97, 122, 128, 130, 127, 111, 103, 124, 104, 117, 117, 138, 144, 112, 110, 131, 115, 121, 134, 119, 131, 134, 128, 131, 125, 120, 147, 128, 132, 128, 119, 108, 111, 145, 131, 119, 116, 135, 116, 128, 131, 112, 119, 108, 119, 135, 107, 103, 133, 131, 126, 119, 131, 139, 102, 107, 125, 132, 121, 141, 131, 138, 128, 121, 116, 113, 131, 136, 151, 124, 132, 137, 122, 145, 126, 151, 118, 114, 111, 143, 130, 139, 112, 126, 109, 132, 125, 119, 129, 111, 115, 130, 133, 122, 113, 127, 119, 146, 131, 106, 129, 127, 119, 136, 128, 123, 121, 140, 142, 110, 90, 130, 128, 135, 114, 128, 142, 121, 108, 99, 118, 116, 124, 125, 123, 140, 124, 125, 104, 127, 139, 117, 133, 132, 121, 134, 128, 118, 125, 113, 140, 124, 112, 114, 118, 128, 162, 122, 108, 147, 123, 103, 149, 137, 124, 105, 152, 133, 112, 121, 127, 131, 123, 116, 129, 124, 133, 118, 119, 124, 119, 125, 124, 124, 131, 121, 119, 129, 116, 142, 119, 134, 133, 136, 127, 123, 120, 115, 120, 123, 138, 137, 107, 122, 140, 117, 128, 115, 129, 109, 122, 126, 117, 132, 143, 116, 140, 116, 135, 121, 134, 115, 107, 111, 125, 126, 137, 117, 137, 125, 124, 118, 124, 134, 133, 135, 120, 113, 136, 117, 114, 130, 112, 114, 115, 116, 147, 125, 133, 120, 124, 135, 117, 127, 135, 136, 121, 110, 124, 126, 113, 133, 137, 123, 135, 118, 141, 121, 119, 110, 121, 113, 122, 125, 125, 130, 147, 135, 144, 132, 136, 120, 122, 124, 127, 112, 123, 144, 122, 121, 135, 122, 116, 115, 129, 124, 121, 145, 130, 130, 131, 116, 121, 117, 128, 119, 111, 108, 120, 111, 120, 120, 119, 113, 126, 136, 135, 126, 121, 129, 131, 126, 116, 132, 135, 124, 142, 139, 114, 132, 117, 130, 126, 112, 117, 119, 141, 124, 125, 116, 128, 138, 125, 120, 134, 138, 132, 105, 108, 113, 129, 124, 135, 117, 121, 142, 135, 127, 131, 115, 112, 125, 116, 113, 123, 124, 119, 118, 131, 126, 126, 119, 118, 116, 131, 122, 134, 124, 117, 112, 103, 114, 136, 135, 133, 144, 144, 123, 122, 142, 137, 126, 126, 122, 105, 105, 141, 106, 101, 137, 124, 126, 132, 117, 129, 150, 133, 116, 129, 126, 119, 112, 123, 112, 114, 137, 139, 131, 128, 117, 110, 137, 130, 103, 126, 146, 123, 125, 115, 125, 138, 120, 109, 115, 128, 121, 117, 116, 112, 131, 136, 112, 141, 135, 140, 131, 126, 120, 118, 113, 127, 131, 132, 113, 138, 119, 112, 106, 119, 107, 147, 132, 113, 122, 120, 131, 124, 114, 114, 96, 125, 129, 118, 136, 142, 128, 121, 103, 123, 135, 148, 118, 116, 119, 128, 139, 138, 125, 119, 118, 139, 116, 128, 118, 134, 131, 122, 112, 122, 125, 118, 111, 143, 102, 101, 118, 127, 118, 130, 120, 131, 114, 132, 120, 118, 104, 132, 127, 124, 115, 132, 118, 136, 138, 132, 148, 137, 119, 133, 115, 153, 137, 129, 131, 117, 124, 124, 118, 156, 100, 131, 125, 121, 160, 142, 116, 132, 107, 114, 118, 131, 121, 141, 119, 135, 124, 127, 111, 119, 123, 117, 115, 121, 131, 124, 143, 126, 125, 124, 128, 131, 118, 112, 135, 124, 137, 129, 126, 136, 123, 113, 131, 116, 124, 132, 118, 140, 125, 130, 118, 122, 128, 103, 122, 138, 131, 128, 119, 140, 115, 111, 123, 117, 137, 138, 121, 139, 138, 134, 126, 126, 137, 152, 126, 110, 127, 136, 134, 114, 103, 110, 126, 121, 131, 113, 137, 122, 126, 129, 130, 126, 111, 131, 109, 117, 110, 119, 122, 152, 124, 125, 108, 124, 121, 133, 111, 105, 123, 141, 119, 135, 141, 124, 117, 123, 114, 142, 125, 113, 135, 122, 106, 117, 132, 115, 125, 128, 127, 144, 123, 117, 130, 124, 149, 131, 156, 134, 122, 129, 117, 120, 124, 121, 128, 112, 144, 110, 106, 129, 102, 136, 134, 131, 116, 124, 123, 126, 114, 109, 119, 132, 140, 124, 119, 125, 129, 127, 112, 116, 122, 114, 125, 139, 124, 108, 130, 121, 127, 120, 96, 118, 117, 118, 125, 127, 130, 130, 133, 122, 128, 124, 115, 114, 128, 117, 110, 128, 128, 125, 133, 132, 106, 118, 126, 124, 127, 132, 124, 137, 105, 131, 107, 119, 123, 119, 118, 131, 135, 129, 127, 113, 127, 120, 126, 105, 123, 122, 139, 119, 117, 141, 122, 138, 120, 124, 103, 115, 118, 136, 131, 117, 122, 127, 111, 122, 121, 127, 140, 125, 134, 108, 126, 119, 135, 126, 136, 138, 128, 118, 104, 126, 118, 133, 134, 137, 125, 123, 120, 128, 127, 143, 145, 120, 134, 136, 140, 125, 124, 114, 98, 129, 145, 134, 109, 127, 120, 122, 119, 115, 117, 114, 122, 117, 124, 114, 138, 133, 120, 141, 134, 128, 120, 131, 119, 116, 118, 124, 131, 136, 127, 123, 118, 113, 123, 129, 129, 121, 131, 108, 134, 133, 138, 109, 118, 135, 139, 115, 135, 139, 121, 136, 116, 105, 119, 136, 119, 136, 126, 113, 115, 118, 126, 103, 136, 119, 117, 122, 115, 125, 117, 127, 131, 126, 132, 126, 125, 139, 110, 116, 139, 126, 130, 118, 122, 129, 111, 113, 137, 127, 123, 123, 125, 120, 127, 129, 121, 123, 116, 108, 136, 117, 119, 114, 139, 134, 113, 121, 126, 123, 119, 131, 116, 121, 115, 120, 130, 124, 139, 124, 124, 131, 130, 118, 130, 120, 141, 124, 135, 116, 134, 125, 117, 130, 131, 119, 119, 119, 120, 120, 114, 133, 113, 141, 130, 118, 122, 135, 137, 127, 120, 127, 131, 133, 143, 131, 145, 140, 111, 133, 125, 116, 118, 135, 116, 127, 136, 126, 119, 125, 124, 132, 120, 116, 129, 133, 108, 132, 113, 142, 129, 135, 139, 131, 116, 148, 132, 129, 126, 120, 112, 114, 121, 118, 109, 122, 127, 127, 114, 114, 124, 125, 136, 131, 139, 129, 113, 133, 120, 119, 124, 133, 129, 136, 121, 151, 115, 126, 130, 142, 118, 117, 122, 143, 138, 123, 129, 120, 115, 123, 141, 101, 96, 125, 123, 127, 113, 120, 130, 121, 119, 130, 121, 119, 98, 126, 139, 112, 129, 122, 127, 131, 113, 128, 119, 117, 109, 131, 117, 107, 126, 119, 125, 138, 131, 137, 138, 124, 111, 132, 110, 115, 128, 115, 135, 112, 129, 114, 111, 117, 130, 118, 118, 139, 117, 120, 132, 128, 129, 122, 135, 139, 114, 128, 129, 125, 122, 111, 126, 111, 134, 123, 130, 128, 115, 119, 127, 139, 105, 129, 132, 120, 129, 127, 124, 126, 137, 138, 162, 119, 129, 134, 121, 122, 137, 124, 117, 133, 128, 118, 123, 142, 107, 143, 117, 127, 132, 131, 127, 111, 128, 122, 137, 116, 125, 146, 113, 134, 127, 135, 112, 116, 135, 114, 122, 122, 138, 112, 85, 132, 124, 140, 126, 130, 137, 121, 119, 144, 117, 107, 105, 110, 141, 125, 125, 126, 125, 122, 124, 122, 127, 138, 124, 124, 119, 124, 122, 140, 116, 135, 125, 114, 115, 118, 101, 118, 118, 136, 128, 122, 116, 135, 115, 137, 135, 138, 116, 131, 121, 126, 139, 125, 119, 136, 124, 121, 137, 125, 122, 137, 123, 132, 123, 111, 109, 131, 119, 127, 123, 105, 138, 115, 114, 109, 113, 121, 126, 113, 130, 123, 129, 127, 111, 132, 126, 133, 123, 124, 139, 112, 138, 124, 122, 126, 126, 103, 108, 124, 132, 155, 132, 134, 125, 134, 117, 136, 123, 122, 127, 123, 132, 129, 112, 131, 114, 137, 105, 111, 119, 101, 111, 128, 120, 125, 129, 132, 125, 140, 113, 109, 119, 114, 123, 141, 107, 124, 153, 114, 116, 116, 132, 127, 133, 118, 121, 98, 109, 129, 128, 139, 115, 127, 117, 126, 134, 131, 121, 134, 129, 140, 132, 114, 136, 118, 125, 131, 125, 127, 131, 126, 124, 131, 120, 118, 140, 129, 127, 131, 120, 134, 121, 114, 117, 121, 118, 122, 134, 130, 136, 114, 130, 106, 120, 113, 125, 122, 130, 125, 120, 133, 129, 117, 123, 133, 147, 119, 115, 131, 132, 125, 134, 115, 120, 116, 138, 133, 116, 118, 155, 124, 120, 129, 114, 127, 123, 138, 124, 111, 127, 108, 135, 128, 112, 125, 134, 119, 110, 109, 145, 147, 125, 132, 113, 119, 124, 133, 125, 134, 131, 132, 126, 133, 117, 135, 123, 130, 133, 134, 108, 137, 109, 128, 131, 123, 114, 106, 129, 106, 124, 133, 131, 119, 138, 134, 121, 162, 117, 137, 131, 131, 129, 123, 122, 128, 114, 132, 136, 137, 120, 136, 127, 129, 133, 125, 117, 122, 131, 126, 130, 120, 135, 119, 127, 125, 129, 116, 130, 137, 129, 122, 118, 119, 143, 125, 116, 116, 143, 139, 124, 136, 134, 129, 130, 109, 119, 123, 122, 123, 120, 132, 118, 137, 143, 134, 95, 127, 132, 124, 116, 120, 118, 137, 134, 135, 131, 143, 129, 122, 136, 122, 143, 126, 128, 131, 106, 119, 123, 115, 130, 134, 120, 94, 132, 121, 115, 127, 132, 113, 119, 131, 137, 137, 119, 122, 110, 136, 131, 125, 121, 119, 114, 134, 116, 125, 119, 121, 115, 150, 124, 138, 130, 124, 114, 124, 120, 112, 117, 131, 113, 126, 126, 128, 123, 129, 117, 115, 118, 140, 137, 126, 127, 112, 119, 132, 126, 128, 112, 112, 132, 115, 124, 130, 125, 124, 139, 114, 123, 142, 132, 120, 131, 130, 127, 134, 140, 125, 117, 132, 125, 133, 111, 122, 132, 122, 120, 129, 125, 124, 110, 136, 128, 143, 126, 129, 128, 130, 138, 125, 125, 134, 107, 142, 126, 131, 126, 121, 118, 125, 132, 140, 112, 108, 122, 115, 121, 127, 119, 135, 143, 95, 108, 125, 118, 132, 126, 127, 128, 120, 134, 144, 119, 135, 133, 123, 112, 113, 120, 141, 105, 124, 128, 118, 115, 124, 116, 122, 117, 114, 120, 117, 109, 125, 115, 132, 130, 141, 138, 147, 113, 128, 129, 124, 123, 135, 121, 126, 134, 105, 115, 119, 144, 114, 147, 137, 155, 108, 126, 127, 103, 119, 114, 118, 106, 133, 126, 137, 121, 117, 123, 129, 119, 141, 140, 135, 132, 120, 112, 127, 135, 116, 146, 139, 127, 131, 129, 122, 116, 134, 140, 127, 129, 143, 140, 102, 137, 102, 123, 118, 139, 119, 113, 113, 130, 119, 112, 114, 124, 149, 127, 110, 143, 133, 107, 118, 134, 122, 145, 124, 128, 136, 112, 129, 129, 134, 131, 124, 138, 120, 113, 111, 120, 131, 115, 110, 112, 124, 130, 134, 134, 128, 125, 122, 127, 139, 125, 118, 119, 121, 142, 139, 141, 126, 112, 132, 125, 118, 135, 136, 124, 124, 144, 115, 137, 134, 131, 120, 122, 124, 119, 120, 128, 117, 119, 136, 109, 109, 128, 138, 146, 125, 125, 118, 124, 114, 137, 125, 116, 116, 130, 128, 125, 128, 113, 131, 135, 136, 118, 129, 114, 141, 117, 115, 138, 122, 120, 130, 115, 115, 138, 125, 132, 134, 125, 130, 126, 148, 120, 131, 134, 129, 124, 130, 132, 132, 108, 125, 121, 126, 130, 127, 123, 110, 130, 110, 121, 119, 137, 116, 132, 117, 118, 125, 125, 137, 113, 121, 106, 127, 144, 128, 119, 130, 112, 128, 133, 94, 136, 144, 132, 123, 114, 134, 128, 140, 126, 110, 126, 132, 125, 126, 137, 129, 116, 128, 134, 128, 124, 134, 129, 117, 122, 113, 133, 134, 113, 123, 102, 122, 122, 105, 132, 122, 104, 120, 118, 118, 129, 133, 141, 128, 135, 125, 132, 107, 124, 117, 131, 138, 114, 141, 119, 138, 138, 121, 123, 126, 115, 120, 111, 118, 118, 140, 131, 110, 123, 140, 117, 146, 113, 134, 94, 117, 118, 126, 102, 135, 120, 121, 140, 132, 139, 126, 137, 137, 115, 136, 134, 131, 107, 121, 112, 115, 122, 127, 117, 124, 144, 130, 119, 117, 127, 129, 118, 121, 102, 146, 119, 155, 134, 144, 109, 115, 125, 141, 148, 115, 142, 148, 130, 106, 122, 128, 140, 117, 121, 137, 117, 131, 114, 127, 118, 122, 119, 124, 138, 138, 106, 144, 121, 116, 120, 142, 122, 112, 124, 138, 116, 132, 128, 125, 144, 141, 132, 121, 133, 163, 136, 137, 128, 129, 150, 128, 113, 134, 116, 129, 149, 112, 126, 132, 121, 121, 133, 114, 141, 116, 139, 117, 129, 126, 128, 126, 143, 146, 151, 135, 130, 131, 127, 134, 143, 116, 143, 132, 137, 126, 122, 144, 117, 110, 143, 137, 138, 125, 121, 136, 124, 152, 154, 144, 132, 142, 129, 101, 129, 136, 154, 114, 115, 131, 106, 133, 124, 104, 129, 149, 143, 131, 118, 131, 101, 119, 138, 134, 117, 129, 106, 119, 143, 122, 139, 118, 122, 124, 133, 121, 138, 124, 120, 132, 140, 137, 137, 123, 137, 124, 126, 143, 137, 123, 117, 120, 118, 135, 120, 130, 124, 114, 129, 116, 124, 115, 127, 115, 120, 131, 116, 132, 111, 118, 127, 119, 116, 147, 124, 116, 118, 116, 117, 140, 120, 108, 132, 121, 117, 124, 127, 125, 118, 126, 126, 126, 135, 130, 145, 113, 125, 126, 129, 137, 127, 120, 136, 112, 120, 129, 122, 135, 123, 117, 116, 124, 112, 129, 137, 120, 118, 113, 115, 133, 136, 116, 119, 133, 126, 139, 129, 122, 125, 144, 125, 122, 123, 134, 128, 139, 111, 118, 134, 129, 119, 148, 111, 110, 113, 107, 111, 117, 114, 135, 137, 128, 122, 127, 120, 113, 118, 136, 121, 120, 122, 144, 117, 128, 120, 133, 138, 117, 136, 135, 138, 119, 141, 113, 118, 132, 149, 127, 115, 130, 106, 118, 123, 116, 131, 140, 107, 131, 126, 124, 140, 118, 134, 147, 120, 126, 127, 134, 129, 137, 110, 113, 124, 135, 120, 112, 124, 127, 106, 127, 120, 125, 127, 137, 141, 120, 115, 137, 123, 98, 113, 122, 111, 130, 134, 114, 115, 130, 112, 123, 137, 133, 137, 118, 140, 135, 141, 115, 131, 113, 126, 98, 139, 119, 134, 105, 125, 127, 124, 134, 138, 124, 115, 136, 128, 127, 124, 128, 127, 125, 123, 123, 131, 144, 126, 119, 123, 120, 139, 126, 136, 126, 136, 113, 134, 124, 127, 134, 134, 120, 149, 135, 128, 126, 104, 139, 135, 129, 150, 126, 117, 122, 132, 120, 123, 126, 125, 124, 141, 132, 140, 131, 122, 130, 135, 123, 127, 119, 136, 144, 136, 116, 147, 122, 132, 129, 132, 119, 122, 145, 141, 135, 134, 108, 127, 113, 133, 118, 136, 139, 140, 133, 132, 136, 126, 112, 113, 127, 97, 126, 125, 110, 129, 107, 131, 124, 137, 125, 128, 124, 118, 125, 124, 126, 135, 121, 130, 127, 129, 110, 123, 112, 115, 130, 142, 123, 118, 140, 120, 124, 134, 110, 124, 120, 134, 122, 129, 143, 137, 152, 121, 122, 136, 116, 124, 148, 120, 120, 122, 127, 109, 127, 105, 141, 134, 149, 133, 119, 107, 144, 127, 125, 137, 122, 121, 119, 111, 125, 119, 119, 110, 123, 95, 133, 119, 124, 124, 135, 133, 126, 103, 120, 132, 112, 130, 123, 117, 132, 131, 129, 111, 124, 118, 124, 126, 116, 103, 166, 129, 124, 120, 127, 116, 123, 146, 97, 131, 128, 128, 127, 143, 113, 111, 122, 108, 117, 124, 133, 128, 114, 130, 131, 127, 124, 136, 115, 102, 130, 121, 138, 126, 147, 107, 132, 109, 137, 136, 128, 129, 144, 130, 130, 130, 130, 112, 119, 121, 111, 148, 115, 135, 124, 133, 132, 131, 141, 127, 125, 131, 135, 117, 124, 123, 127, 124, 113, 137, 104, 121, 136, 122, 132, 127, 147, 123, 107, 145, 119, 127, 117, 117, 125, 133, 122, 119, 125, 134, 134, 112, 128, 129, 131, 114, 132, 120, 124, 141, 119, 113, 135, 122, 124, 113, 121, 130, 130, 133, 120, 125, 129, 138, 136, 111, 125, 123, 122, 132, 121, 116, 137, 119, 135, 120, 124, 134, 124, 126, 112, 129, 137, 122, 134, 128, 132, 142, 126, 123, 122, 133, 132, 127, 136, 111, 139, 123, 145, 117, 113, 135, 129, 117, 116, 101, 120, 124, 110, 115, 124, 130, 120, 128, 118, 114, 149, 123, 113, 128, 116, 130, 108, 130, 123, 132, 140, 116, 124, 142, 114, 132, 121, 129, 121, 133, 113, 130, 127, 122, 133, 126, 121, 120, 123, 123, 135, 137, 120, 119, 131, 139, 114, 142, 143, 131, 118, 110, 139, 136, 123, 144, 130, 124, 128, 122, 121, 121, 135, 138, 123, 133, 123, 108, 131, 135, 142, 126, 116, 127, 128, 128, 123, 105, 126, 129, 109, 130, 122, 127, 121, 133, 128, 130, 124, 96, 140, 117, 131, 126, 117, 130, 144, 135, 123, 146, 129, 127, 111, 107, 124, 142, 125, 132, 110, 125, 129, 119, 127, 129, 115, 121, 129, 118, 132, 124, 120, 126, 123, 106, 125, 152, 120, 134, 127, 140, 117, 121, 116, 122, 127, 126, 121, 116, 124, 110, 124, 112, 123, 122, 118, 120, 121, 137, 141, 128, 108, 126, 130, 125, 117, 126, 134, 123, 122, 114, 123, 154, 135, 141, 139, 124, 160, 129, 158, 120, 138, 123, 131, 130, 132, 121, 139, 117, 110, 134, 110, 143, 127, 116, 132, 125, 102, 121, 115, 115, 123, 111, 151, 127, 122, 145, 131, 127, 103, 126, 129, 135, 134, 118, 122, 147, 121, 114, 144, 132, 125, 114, 132, 121, 132, 142, 125, 120, 126, 125, 111, 119, 124, 128, 142, 125, 139, 120, 128, 128, 129, 139, 124, 123, 126, 125, 143, 124, 140, 124, 129, 139, 124, 129, 110, 115, 123, 114, 145, 107, 104, 122, 130, 126, 110, 133, 121, 122, 127, 129, 111, 116, 117, 123, 123, 123, 108, 119, 114, 122, 117, 118, 132, 145, 127, 114, 125, 102, 124, 132, 122, 123, 116, 109, 112, 124, 127, 129, 117, 109, 124, 125, 120, 114, 119, 125, 124, 112, 136, 122, 134, 110, 128, 138, 132, 130, 124, 118, 120, 133, 135, 135, 125, 126, 131, 121, 134, 141, 105, 118, 136, 122, 120, 122, 145, 136, 137, 134, 121, 117, 108, 138, 121, 123, 130, 125, 131, 132, 130, 129, 131, 116, 112, 122, 143, 128, 133, 112, 118, 136, 131, 129, 128, 122, 120, 113, 121, 119, 123, 122, 121, 130, 130, 134, 97, 122, 116, 123, 118, 141, 123, 114, 131, 127, 112, 124, 129, 116, 130, 140, 125, 119, 121, 124, 111, 122, 118, 123, 115, 134, 121, 147, 128, 141, 109, 122, 122, 121, 137, 122, 119, 123, 139, 137, 123, 112, 128, 112, 136, 110, 125, 146, 109, 140, 143, 140, 140, 124, 108, 132, 123, 133, 124, 127, 123, 121, 120, 139, 122, 133, 135, 123, 110, 140, 137, 129, 110, 121, 119, 125, 145, 128, 125, 119, 135, 137, 136, 140, 129, 123, 129, 122, 123, 148, 117, 123, 136, 117, 107, 109, 115, 108, 131, 109, 130, 126, 131, 149, 135, 133, 140, 122, 131, 133, 110, 131, 141, 110, 124, 113, 121, 126, 128, 126, 134, 137, 121, 113, 124, 120, 142, 142, 118, 117, 116, 114, 124, 131, 116, 118, 127, 159, 106, 123, 107, 131, 136, 133, 112, 112, 128, 107, 121, 120, 119, 129, 125, 104, 135, 119, 124, 123, 138, 141, 127, 117, 126, 128, 118, 129, 142, 129, 118, 121, 109, 144, 119, 131, 140, 135, 109, 138, 109, 116, 136, 126, 134, 140, 120, 147, 124, 123, 116, 127, 117, 126, 121, 128, 127, 133, 119, 117, 121, 136, 134, 130, 134, 109, 135, 130, 124, 123, 133, 137, 124, 125, 120, 126, 140, 130, 108, 115, 133, 117, 112, 137, 139, 138, 125, 113, 115, 116, 146, 137, 125, 137, 122, 111, 139, 140, 117, 114, 110, 151, 119, 141, 139, 122, 138, 112, 121, 126, 125, 120, 130, 129, 129, 128, 121, 110, 116, 126, 121, 122, 130, 126, 127, 125, 116, 134, 129, 114, 103, 140, 117, 118, 112, 132, 109, 126, 119, 127, 122, 108, 113, 125, 133, 122, 131, 123, 115, 127, 114, 131, 103, 122, 126, 116, 144, 123, 144, 124, 128, 126, 120, 142, 117, 114, 121, 122, 122, 114, 135, 129, 125, 135, 111, 150, 136, 130, 126, 131, 124, 115, 141, 140, 129, 132, 113, 126, 111, 125, 127, 136, 127, 133, 152, 116, 112, 123, 128, 144, 122, 132, 137, 131, 129, 135, 120, 109, 151, 126, 115, 116, 145, 122, 129, 120, 115, 122, 136, 132, 140, 119, 109, 140, 116, 111, 125, 129, 123, 100, 130, 134, 136, 127, 129, 121, 125, 133, 150, 104, 136, 128, 130, 135, 106, 137, 137, 121, 130, 128, 122, 121, 128, 131, 136, 120, 131, 136, 119, 128, 145, 121, 137, 121, 128, 125, 113, 126, 131, 131, 136, 121, 112, 122, 125, 112, 117, 111, 128, 128, 133, 127, 129, 119, 112, 123, 133, 129, 129, 120, 125, 117, 120, 117, 122, 128, 122, 127, 135, 126, 123, 118, 126, 122, 129, 135, 119, 117, 128, 128, 151, 123, 116, 132, 123, 124, 124, 127, 125, 124, 114, 124, 136, 113, 129, 124, 129, 129, 124, 125, 135, 112, 133, 133, 125, 133, 126, 138, 131, 124, 131, 145, 137, 139, 126, 121, 119, 129, 123, 128, 125, 128, 133, 135, 165, 120, 110, 123, 121, 145, 118, 132, 135, 141, 107, 120, 112, 112, 123, 144, 113, 139, 118, 112, 133, 123, 107, 128, 129, 117, 129, 132, 129, 131, 138, 119, 137, 123, 115, 130, 136, 138, 123, 118, 118, 110, 133, 136, 144, 131, 116, 135, 136, 146, 134, 117, 121, 120, 116, 101, 127, 129, 129, 115, 126, 113, 148, 133, 125, 117, 112, 129, 140, 109, 121, 120, 139, 119, 146, 109, 126, 123, 112, 124, 118, 115, 124, 119, 141, 138, 121, 128, 119, 124, 140, 118, 136, 121, 113, 127, 135, 107, 140, 106, 127, 133, 135, 111, 140, 115, 143, 113, 127, 141, 120, 115, 131, 136, 115, 122, 135, 111, 123, 127, 137, 110, 114, 127, 114, 118, 130, 119, 140, 148, 120, 136, 156, 127, 82, 146, 123, 127, 116, 122, 114, 128, 132, 108, 118, 142, 146, 113, 140, 117, 147, 115, 118, 127, 148, 124, 117, 134, 115, 139, 157, 136, 124, 127, 125, 133, 109, 127, 119, 123, 118, 115, 118, 113, 132, 118, 120, 116, 117, 125, 124, 136, 128, 107, 112, 131, 106, 120, 116, 124, 126, 111, 111, 127, 119, 129, 135, 120, 117, 125, 130, 125, 130, 116, 121, 116, 120, 118, 107, 125, 145, 132, 135, 115, 120, 116, 163, 118, 121, 131, 130, 136, 128, 142, 119, 112, 117, 121, 114, 131, 124, 125, 114, 106, 116, 123, 117, 114, 130, 126, 129, 111, 115, 130, 125, 131, 126, 161, 107, 118, 117, 134, 122, 125, 133, 111, 116, 129, 109, 139, 139, 128, 114, 128, 141, 119, 116, 123, 130, 129, 119, 130, 124, 122, 119, 112, 121, 117, 127, 107, 137, 130, 119, 122, 138, 132, 120, 122, 114, 128, 127, 122, 122, 124, 122, 128, 132, 112, 127, 121, 133, 135, 134, 138, 117, 133, 104, 120, 108, 116, 119, 132, 130, 127, 124, 141, 113, 120, 140, 142, 120, 126, 127, 125, 117, 131, 140, 141, 115, 125, 121, 124, 122, 118, 141, 125, 121, 121, 104, 125, 121, 110, 134, 124, 131, 126, 113, 122, 111, 123, 122, 120, 122, 130, 115, 153, 116, 131, 143, 112, 136, 128, 114, 142, 128, 117, 126, 124, 118, 134, 113, 145, 127, 114, 131, 141, 124, 143, 118, 109, 137, 117, 134, 129, 114, 124, 144, 131, 117, 130, 132, 133, 122, 120, 115, 132, 130, 130, 145, 139, 120, 127, 132, 117, 111, 117, 132, 125, 124, 129, 112, 119, 140, 129, 141, 129, 120, 121, 128, 118, 133, 116, 120, 117, 115, 128, 141, 137, 131, 100, 145, 119, 122, 120, 115, 162, 132, 123, 124, 133, 121, 122, 152, 127, 119, 117, 127, 122, 128, 125, 119, 141, 122, 129, 129, 140, 117, 155, 128, 113, 107, 106, 139, 134, 119, 127, 136, 137, 132, 127, 147, 144, 139, 114, 122, 129, 134, 130, 124, 114, 124, 134, 119, 129, 132, 125, 134, 127, 118, 117, 114, 108, 128, 132, 117, 122, 123, 116, 155, 139, 133, 136, 123, 108, 115, 113, 128, 124, 135, 116, 139, 145, 124, 125, 126, 113, 125, 144, 137, 114, 117, 134, 121, 139, 129, 125, 117, 113, 119, 142, 144, 118, 129, 110, 109, 141, 146, 144, 105, 125, 126, 122, 138, 122, 133, 122, 131, 117, 123, 110, 114, 125, 112, 108, 124, 146, 124, 133, 125, 115, 106, 139, 135, 128, 121, 138, 130, 133, 136, 109, 127, 148, 114, 129, 108, 117, 110, 126, 116, 108, 122, 143, 141, 132, 117, 132, 108, 97, 117, 140, 133, 117, 114, 125, 113, 125, 123, 129, 117, 120, 126, 105, 148, 137, 124, 125, 130, 127, 116, 109, 142, 146, 111, 134, 128, 112, 132, 113, 108, 145, 115, 130, 121, 120, 130, 120, 122, 120, 112, 119, 135, 154, 116, 129, 120, 133, 119, 125, 134, 122, 123, 125, 126, 112, 131, 122, 117, 137, 114, 123, 112, 131, 138, 119, 117, 137, 130, 117, 115, 129, 121, 121, 137, 120, 110, 98, 135, 98, 131, 142, 117, 134, 113, 128, 131, 143, 123, 128, 117, 125, 129, 116, 148, 138, 125, 129, 131, 119, 110, 123, 142, 124, 123, 115, 140, 97, 112, 127, 132, 134, 120, 132, 142, 129, 128, 126, 138, 123, 108, 123, 103, 115, 118, 133, 126, 130, 108, 115, 139, 132, 119, 136, 121, 115, 137, 134, 127, 119, 128, 117, 127, 128, 130, 148, 134, 141, 124, 128, 129, 131, 129, 113, 127, 131, 135, 122, 92, 117, 121, 128, 121, 128, 131, 129, 140, 120, 140, 126, 122, 116, 117, 123, 122, 129, 131, 120, 120, 108, 129, 120, 117, 135, 160, 110, 130, 122, 125, 105, 137, 130, 126, 134, 130, 131, 126, 125, 130, 116, 124, 143, 100, 134, 115, 113, 125, 122, 134, 126, 129, 119, 144, 132, 126, 129, 118, 112, 132, 137, 104, 117, 127, 127, 120, 122, 133, 112, 137, 125, 123, 131, 136, 128, 128, 131, 130, 149, 123, 123, 143, 126, 94, 117, 135, 124, 121, 133, 134, 145, 137, 117, 116, 103, 124, 118, 137, 118, 153, 143, 119, 134, 138, 118, 123, 127, 121, 135, 115, 124, 125, 119, 152, 111, 113, 123, 121, 120, 104, 120, 124, 121, 139, 122, 123, 137, 123, 127, 118, 114, 125, 123, 122, 125, 131, 112, 123, 135, 133, 142, 119, 128, 124, 140, 121, 105, 118, 110, 113, 126, 133, 120, 114, 146, 113, 140, 135, 117, 122, 141, 126, 126, 119, 110, 127, 124, 116, 116, 119, 106, 139, 142, 110, 116, 117, 123, 139, 115, 155, 126, 106, 142, 117, 115, 156, 119, 134, 139, 121, 122, 119, 138, 112, 129, 101, 129, 129, 137, 145, 122, 104, 120, 131, 140, 110, 117, 101, 135, 123, 130, 126, 141, 108, 118, 138, 129, 131, 130, 115, 112, 131, 128, 102, 107, 138, 116, 116, 106, 134, 117, 128, 112, 128, 148, 134, 145, 110, 128, 120, 120, 129, 147, 118, 123, 135, 130, 111, 134, 130, 132, 111, 135, 142, 127, 134, 112, 118, 127, 116, 121, 126, 121, 121, 114, 138, 125, 120, 119, 147, 100, 117, 130, 116, 127, 130, 112, 128, 141, 114, 115, 139, 116, 128, 135, 123, 125, 135, 143, 141, 124, 135, 129, 126, 109, 131, 128, 141, 110, 130, 124, 144, 121, 124, 119, 139, 113, 141, 122, 137, 112, 100, 108, 146, 120, 123, 110, 112, 110, 121, 138, 127, 127, 118, 119, 134, 125, 127, 126, 124, 122, 125, 131, 135, 145, 145, 125, 129, 114, 132, 138, 120, 127, 147, 116, 143, 115, 116, 126, 128, 146, 146, 128, 130, 130, 127, 123, 117, 103, 134, 111, 124, 121, 130, 141, 108, 106, 122, 126, 145, 117, 124, 124, 122, 135, 134, 125, 114, 130, 118, 131, 125, 114, 122, 116, 123, 130, 110, 124, 127, 102, 125, 136, 140, 126, 133, 137, 117, 134, 121, 103, 127, 117, 105, 128, 127, 117, 132, 131, 106, 121, 119, 128, 116, 129, 135, 128, 114, 119, 116, 142, 114, 137, 131, 113, 125, 129, 131, 120, 124, 136, 113, 125, 115, 122, 120, 125, 113, 132, 132, 125, 127, 119, 123, 122, 130, 122, 126, 115, 138, 114, 138, 131, 118, 148, 114, 123, 124, 144, 112, 124, 141, 121, 129, 128, 114, 124, 110, 131, 121, 123, 126, 110, 118, 131, 127, 133, 103, 126, 121, 113, 136, 150, 118, 110, 129, 116, 109, 138, 120, 118, 117, 117, 116, 122, 127, 123, 116, 118, 109, 138, 121, 122, 129, 127, 125, 115, 118, 121, 126, 115, 121, 120, 146, 133, 117, 113, 132, 127, 130, 113, 139, 144, 127, 135, 133, 117, 120, 117, 136, 126, 125, 114, 125, 125, 114, 125, 134, 139, 119, 127, 99, 149, 126, 103, 122, 120, 109, 116, 151, 124, 124, 113, 131, 139, 127, 132, 128, 135, 125, 119, 106, 116, 126, 131, 115, 118, 119, 109, 130, 123, 121, 131, 117, 139, 112, 118, 120, 131, 119, 138, 129, 116, 122, 132, 131, 150, 115, 134, 118, 130, 124, 128, 130, 112, 130, 131, 130, 114, 128, 110, 112, 126, 126, 128, 131, 138, 126, 130, 139, 106, 139, 130, 129, 119, 111, 129, 122, 119, 107, 127, 156, 109, 133, 124, 133, 118, 119, 121, 122, 129, 111, 135, 123, 106, 110, 128, 135, 135, 128, 133, 134, 132, 130, 128, 124, 138, 129, 111, 147, 135, 143, 124, 138, 117, 135, 131, 113, 125, 140, 146, 133, 115, 126, 135, 122, 158, 134, 109, 134, 153, 132, 119, 127, 126, 136, 120, 125, 116, 135, 121, 127, 114, 131, 142, 124, 123, 113, 136, 127, 128, 123, 123, 127, 129, 122, 139, 139, 112, 134, 122, 125, 100, 130, 113, 144, 138, 118, 125, 130, 117, 129, 138, 114, 124, 122, 128, 147, 131, 107, 119, 145, 126, 103, 103, 121, 122, 122, 129, 148, 129, 123, 143, 130, 130, 110, 134, 137, 130, 112, 116, 126, 114, 136, 125, 122, 117, 120, 123, 135, 118, 129, 126, 98, 156, 121, 146, 122, 139, 129, 116, 111, 132, 123, 135, 125, 117, 111, 115, 116, 114, 148, 122, 109, 140, 132, 125, 141, 116, 104, 144, 119, 136, 147, 128, 126, 110, 96, 135, 135, 138, 119, 136, 127, 125, 136, 140, 110, 133, 125, 110, 132, 136, 116, 113, 136, 121, 113, 125, 136, 135, 118, 130, 148, 118, 132, 106, 122, 126, 129, 100, 111, 121, 117, 122, 128, 128, 150, 117, 115, 140, 113, 118, 132, 121, 153, 140, 120, 138, 133, 141, 139, 132, 120, 122, 105, 139, 133, 139, 124, 126, 126, 123, 115, 121, 142, 136, 118, 126, 111, 121, 124, 132, 135, 124, 130, 130, 128, 116, 115, 120, 119, 124, 116, 120, 142, 128, 137, 110, 142, 146, 139, 128, 127, 115, 124, 118, 106, 120, 130, 134, 109, 146, 128, 123, 116, 112, 120, 136, 115, 121, 120, 126, 140, 147, 129, 117, 129, 119, 121, 125, 124, 115, 139, 132, 119, 118, 107, 123, 119, 102, 129, 117, 116, 122, 134, 125, 127, 111, 128, 125, 144, 140, 102, 133, 115, 114, 120, 125, 128, 122, 120, 115, 117, 113, 110, 137, 136, 125, 113, 119, 142, 134, 136, 128, 105, 110, 120, 128, 114, 119, 125, 128, 135, 131, 122, 139, 115, 125, 120, 126, 125, 129, 127, 122, 149, 128, 125, 129, 137, 115, 135, 123, 143, 117, 138, 129, 127, 119, 124, 123, 123, 128, 122, 131, 138, 136, 106, 128, 127, 118, 134, 108, 127, 108, 120, 126, 108, 115, 135, 125, 135, 127, 114, 119, 148, 131, 119, 123, 115, 120, 128, 138, 114, 130, 115, 135, 118, 124, 128, 124, 132, 108, 125, 137, 114, 114, 112, 105, 122, 117, 120, 148, 146, 114, 125, 115, 123, 147, 120, 126, 151, 118, 134, 122, 137, 124, 120, 118, 130, 129, 119, 129, 106, 123, 146, 128, 139, 98, 120, 133, 124, 131, 126, 133, 132, 125, 137, 122, 128, 128, 117, 134, 115, 136, 131, 125, 116, 128, 130, 103, 134, 115, 121, 107, 116, 146, 107, 112, 127, 112, 110, 118, 108, 137, 133, 132, 125, 113, 130, 123, 127, 130, 116, 130, 133, 137, 127, 122, 125, 132, 127, 120, 132, 134, 114, 115, 126, 116, 125, 128, 130, 113, 111, 115, 127, 140, 133, 131, 131, 118, 115, 130, 126, 126, 109, 114, 123, 112, 127, 115, 135, 111, 110, 124, 125, 111, 115, 126, 117, 121, 108, 125, 113, 115, 99, 124, 125, 112, 133, 123, 116, 135, 128, 113, 137, 128, 105, 114, 107, 113, 127, 114, 138, 137, 135, 123, 126, 120, 102, 124, 145, 148, 138, 144, 159, 128, 134, 120, 120, 123, 130, 129, 125, 114, 121, 120, 125, 131, 128, 117, 122, 134, 131, 121, 117, 107, 130, 122, 124, 129, 145, 122, 128, 127, 129, 123, 137, 124, 114, 132, 111, 110, 108, 129, 115, 123, 123, 117, 113, 129, 127, 126, 124, 125, 110, 106, 140, 140, 127, 125, 111, 129, 122, 127, 140, 150, 115, 120, 132, 128, 134, 121, 125, 127, 131, 125, 128, 134, 133, 121, 118, 140, 145, 121, 126, 128, 114, 124, 110, 140, 135, 119, 119, 107, 134, 110, 125, 130, 132, 119, 147, 114, 108, 135, 133, 123, 141, 124, 124, 122, 126, 113, 137, 119, 124, 130, 121, 123, 124, 110, 145, 133, 122, 126, 124, 128, 116, 139, 132, 110, 124, 121, 138, 122, 120, 135, 140, 125, 124, 138, 113, 114, 115, 145, 135, 144, 105, 157, 124, 135, 137, 142, 125, 113, 128, 120, 132, 124, 142, 134, 126, 113, 134, 118, 114, 109, 124, 141, 122, 114, 127, 141, 134, 134, 131, 131, 112, 117, 136, 106, 126, 117, 121, 133, 137, 127, 130, 123, 130, 130, 113, 95, 124, 131, 128, 122, 125, 121, 111, 132, 122, 111, 130, 134, 119, 113, 121, 120, 128, 125, 133, 112, 117, 116, 134, 133, 135, 123, 119, 139, 111, 133, 127, 124, 141, 116, 130, 127, 131, 116, 127, 120, 112, 116, 116, 129, 122, 116, 104, 120, 114, 127, 155, 119, 136, 127, 120, 128, 123, 119, 126, 120, 129, 123, 118, 140, 129, 127, 124, 122, 131, 133, 104, 126, 128, 128, 114, 126, 121, 127, 127, 127, 119, 142, 128, 118, 124, 125, 126, 144, 132, 129, 103, 125, 132, 117, 105, 136, 109, 129, 130, 113, 135, 140, 124, 138, 129, 119, 100, 116, 128, 105, 120, 118, 113, 121, 112, 112, 118, 133, 135, 112, 119, 109, 123, 121, 129, 134, 147, 140, 130, 129, 134, 135, 141, 132, 120, 123, 116, 134, 123, 140, 123, 130, 115, 124, 134, 121, 144, 120, 130, 123, 133, 132, 132, 137, 136, 121, 125, 143, 110, 123, 113, 132, 139, 133, 116, 117, 153, 130, 115, 132, 123, 123, 142, 124, 118, 119, 135, 116, 115, 130, 117, 130, 141, 130, 126, 120, 115, 142, 134, 114, 121, 114, 132, 115, 128, 127, 113, 123, 114, 128, 132, 137, 129, 124, 136, 122, 126, 132, 122, 133, 118, 120, 117, 123, 111, 129, 125, 142, 120, 123, 147, 128, 142, 119, 126, 132, 124, 128, 124, 113, 122, 111, 131, 138, 122, 111, 135, 132, 131, 130, 124, 125, 118, 118, 134, 126, 135, 102, 124, 131, 122, 112, 118, 121, 118, 123, 117, 130, 131, 128, 119, 133, 118, 112, 121, 124, 102, 116, 115, 129, 100, 139, 137, 122, 113, 108, 106, 143, 136, 121, 124, 123, 115, 115, 133, 128, 113, 139, 113, 123, 117, 136, 141, 105, 111, 111, 114, 119, 136, 119, 127, 125, 131, 132, 122, 117, 126, 121, 134, 132, 133, 109, 125, 124, 112, 112, 124, 122, 112, 126, 130, 121, 131, 116, 125, 118, 124, 124, 118, 133, 117, 122, 133, 104, 123, 107, 137, 127, 140, 122, 123, 125, 128, 120, 118, 129, 136, 130, 131, 118, 134, 124, 124, 116, 119, 128, 121, 121, 137, 126, 119, 119, 148, 150, 128, 112, 117, 127, 139, 132, 148, 132, 142, 137, 112, 134, 129, 120, 116, 122, 121, 141, 124, 135, 131, 151, 155, 121, 110, 132, 126, 130, 140, 121, 136, 124, 116, 117, 121, 127, 128, 137, 148, 127, 126, 124, 126, 138, 106, 109, 122, 121, 134, 100, 125, 146, 128, 143, 120, 129, 136, 119, 110, 136, 137, 148, 122, 136, 136, 118, 125, 135, 124, 109, 127, 135, 130, 115, 148, 116, 125, 134, 119, 114, 137, 117, 126, 108, 122, 141, 118, 124, 119, 126, 115, 117, 122, 120, 117, 134, 129, 118, 114, 117, 106, 135, 122, 115, 140, 135, 128, 133, 118, 130, 112, 132, 125, 126, 124, 125, 116, 115, 137, 125, 125, 133, 120, 124, 138, 144, 118, 133, 134, 128, 138, 125, 125, 134, 132, 123, 120, 127, 108, 141, 115, 119, 121, 118, 141, 135, 105, 123, 111, 127, 123, 128, 125, 110, 140, 119, 130, 119, 119, 130, 117, 133, 119, 117, 133, 115, 107, 120, 126, 123, 156, 141, 113, 134, 115, 127, 114, 112, 107, 114, 109, 127, 137, 138, 104, 130, 124, 124, 129, 140, 96, 139, 138, 108, 133, 109, 129, 116, 127, 149, 132, 114, 139, 135, 135, 129, 117, 130, 118, 129, 99, 122, 142, 141, 101, 121, 129, 112, 120, 131, 105, 139, 124, 126, 131, 104, 130, 122, 111, 126, 116, 140, 125, 129, 161, 141, 122, 134, 113, 123, 123, 123, 148, 131, 104, 135, 120, 120, 136, 111, 122, 121, 167, 125, 118, 143, 139, 125, 137, 116, 126, 120, 118, 135, 123, 145, 133, 130, 123, 128, 110, 121, 99, 111, 149, 130, 119, 112, 116, 129, 123, 129, 127, 114, 110, 117, 128, 149, 118, 119, 134, 123, 123, 132, 123, 132, 137, 111, 124, 118, 125, 140, 125, 128, 120, 132, 130, 128, 139, 135, 147, 134, 127, 101, 134, 118, 117, 131, 131, 126, 121, 133, 123, 129, 123, 111, 111, 129, 106, 103, 149, 113, 127, 123, 130, 128, 120, 116, 113, 133, 114, 139, 128, 128, 137, 133, 124, 116, 114, 114, 125, 130, 130, 130, 127, 146, 125, 107, 130, 138, 112, 106, 120, 126, 151, 141, 117, 102, 125, 141, 138, 128, 93, 122, 130, 115, 121, 110, 129, 132, 120, 133, 130, 120, 121, 107, 111, 126, 122, 131, 127, 111, 134, 140, 131, 126, 130, 138, 121, 129, 121, 115, 125, 119, 138, 113, 129, 123, 120, 128, 134, 131, 123, 132, 125, 136, 125, 147, 143, 123, 129, 133, 118, 117, 129, 129, 123, 127, 132, 117, 139, 134, 134, 123, 119, 138, 117, 118, 116, 133, 109, 132, 126, 134, 141, 123, 130, 135, 110, 120, 127, 139, 123, 129, 126, 137, 140, 117, 118, 149, 123, 129, 107, 131, 120, 116, 119, 136, 132, 137, 127, 147, 128, 125, 128, 125, 97, 130, 128, 117, 134, 122, 121, 136, 128, 125, 135, 116, 114, 119, 132, 120, 136, 139, 148, 152, 139, 127, 109, 120, 142, 126, 114, 127, 109, 144, 112, 137, 121, 124, 125, 122, 121, 133, 111, 118, 130, 125, 118, 116, 122, 116, 109, 138, 125, 124, 136, 109, 135, 125, 133, 103, 144, 122, 125, 123, 132, 135, 128, 148, 127, 95, 127, 130, 123, 121, 142, 113, 114, 127, 129, 121, 126, 128, 118, 110, 117, 142, 125, 139, 110, 109, 125, 120, 122, 117, 124, 127, 135, 120, 129, 132, 131, 119, 133, 113, 115, 121, 123, 121, 115, 121, 123, 125, 133, 135, 134, 136, 133, 121, 145, 107, 131, 117, 121, 126, 122, 116, 118, 135, 130, 121, 138, 126, 115, 130, 111, 128, 132, 124, 122, 118, 132, 114, 142, 92, 134, 147, 120, 142, 114, 132, 111, 119, 129, 140, 122, 113, 126, 117, 109, 108, 132, 136, 110, 137, 141, 125, 139, 131, 111, 113, 119, 112, 119, 140, 142, 117, 124, 137, 122, 124, 115, 131, 121, 116, 117, 141, 145, 131, 116, 135, 123, 105, 103, 107, 124, 121, 100, 127, 130, 135, 137, 137, 131, 110, 132, 137, 127, 118, 109, 129, 140, 133, 96, 146, 129, 133, 143, 135, 127, 115, 124, 127, 114, 136, 121, 138, 115, 121, 107, 125, 125, 137, 124, 134, 116, 127, 136, 117, 126, 114, 134, 132, 108, 127, 131, 123, 131, 142, 130, 140, 121, 122, 133, 117, 114, 130, 126, 135, 131, 135, 131, 98, 123, 118, 119, 119, 140, 133, 123, 133, 113, 127, 128, 139, 123, 134, 124, 124, 135, 105, 141, 121, 118, 122, 114, 105, 134, 122, 121, 126, 112, 118, 137, 112, 136, 122, 128, 125, 128, 113, 141, 115, 118, 122, 109, 134, 140, 131, 119, 126, 145, 117, 136, 146, 130, 125, 124, 139, 139, 147, 131, 134, 111, 129, 127, 133, 109, 117, 137, 126, 127, 147, 148, 120, 124, 116, 114, 117, 143, 136, 132, 143, 130, 136, 123, 115, 101, 131, 126, 138, 124, 129, 141, 124, 115, 101, 120, 120, 115, 131, 129, 131, 125, 123, 141, 112, 107, 111, 114, 125, 110, 126, 127, 121, 107, 111, 113, 116, 124, 114, 128, 110, 127, 123, 105, 116, 126, 120, 140, 133, 140, 127, 118, 91, 105, 122, 106, 125, 129, 128, 139, 121, 114, 131, 119, 119, 127, 127, 125, 129, 120, 116, 141, 131, 133, 121, 122, 122, 126, 140, 126, 118, 116, 126, 128, 133, 125, 103, 127, 134, 129, 139, 133, 117, 119, 126, 115, 118, 139, 123, 132, 126, 147, 119, 135, 145, 129, 141, 123, 127, 134, 112, 126, 131, 122, 135, 143, 119, 143, 130, 124, 114, 114, 113, 126, 140, 115, 120, 112, 123, 116, 110, 115, 133, 130, 111, 114, 118, 109, 125, 112, 131, 128, 120, 108, 110, 125, 110, 138, 123, 132, 130, 120, 124, 127, 138, 128, 129, 98, 121, 129, 125, 125, 125, 120, 128, 130, 105, 128, 153, 128, 124, 130, 118, 141, 134, 148, 116, 133, 122, 121, 104, 126, 115, 137, 130, 118, 127, 133, 142, 112, 119, 129, 114, 117, 112, 138, 117, 116, 134, 134, 141, 128, 139, 105, 123, 133, 122, 122, 129, 113, 134, 110, 122, 120, 127, 124, 130, 117, 123, 141, 118, 145, 118, 112, 108, 124, 122, 123, 119, 134, 114, 119, 115, 142, 105, 127, 128, 133, 117, 118, 135, 124, 124, 123, 126, 109, 139, 131, 126, 125, 133, 127, 112, 116, 122, 150, 143, 125, 123, 106, 104, 129, 146, 114, 136, 139, 136, 149, 105, 121, 127, 123, 125, 122, 139, 176, 115, 135, 98, 123, 126, 116, 126, 137, 137, 137, 144, 124, 129, 129, 125, 124, 82, 106, 130, 111, 140, 125, 136, 126, 116, 122, 126, 120, 129, 102, 120, 116, 122, 140, 97, 127, 112, 137, 124, 119, 132, 122, 120, 118, 112, 123, 118, 119, 119, 157, 137, 132, 118, 124, 112, 133, 137, 127, 107, 141, 132, 119, 127, 131, 124, 117, 105, 129, 128, 122, 128, 159, 126, 132, 130, 129, 118, 137, 129, 149, 119, 110, 136, 130, 115, 134, 126, 133, 107, 132, 123, 122, 126, 127, 128, 122, 116, 114, 135, 119, 145, 136, 131, 127, 124, 132, 129, 136, 130, 137, 118, 128, 123, 134, 108, 129, 141, 154, 136, 137, 133, 140, 133, 115, 131, 131, 119, 135, 139, 128, 142, 142, 130, 131, 138, 130, 125, 132, 120, 122, 119, 129, 131, 118, 113, 129, 135, 119, 125, 135, 127, 128, 132, 128, 131, 112, 128, 125, 125, 143, 117, 112, 121, 138, 132, 121, 112, 110, 125, 135, 136, 109, 122, 105, 125, 124, 90, 121, 138, 109, 123, 131, 134, 127, 123, 121, 119, 122, 126, 131, 116, 132, 125, 128, 135, 128, 116, 139, 126, 127, 134, 117, 141, 131, 117, 105, 131, 137, 119, 122, 114, 135, 131, 133, 113, 135, 122, 138, 115, 120, 148, 141, 120, 119, 142, 127, 121, 145, 130, 112, 136, 140, 129, 146, 132, 120, 134, 126, 147, 116, 121, 132, 117, 122, 134, 104, 113, 113, 104, 108, 122, 123, 128, 121, 129, 123, 120, 136, 140, 112, 120, 131, 119, 116, 126, 122, 108, 125, 129, 129, 121, 113, 134, 134, 122, 120, 150, 147, 132, 125, 139, 102, 123, 129, 132, 138, 131, 131, 118, 136, 111, 108, 123, 117, 135, 131, 127, 136, 130, 122, 143, 124, 143, 125, 117, 118, 122, 121, 131, 135, 127, 105, 122, 124, 117, 117, 127, 127, 133, 132, 131, 126, 119, 115, 125, 120, 131, 139, 132, 121, 150, 107, 134, 125, 94, 117, 130, 133, 113, 129, 114, 126, 124, 129, 120, 131, 122, 121, 132, 126, 120, 124, 123, 125, 127, 115, 122, 116, 119, 114, 119, 135, 122, 119, 129, 124, 107, 148, 129, 141, 128, 127, 129, 117, 134, 134, 134, 110, 125, 124, 117, 115, 130, 102, 117, 116, 125, 136, 133, 122, 125, 118, 116, 115, 116, 112, 144, 111, 131, 132, 131, 124, 117, 126, 124, 112, 129, 120, 115, 124, 126, 141, 141, 101, 131, 132, 116, 147, 125, 138, 132, 139, 128, 140, 131, 135, 127, 133, 131, 123, 126, 138, 127, 120, 129, 133, 113, 118, 133, 110, 127, 106, 132, 115, 134, 126, 135, 128, 110, 107, 118, 128, 130, 130, 104, 122, 113, 118, 113, 123, 137, 109, 128, 115, 124, 132, 126, 138, 121, 124, 126, 134, 121, 117, 123, 121, 130, 132, 131, 121, 142, 137, 128, 125, 101, 132, 121, 137, 127, 112, 136, 130, 138, 118, 122, 124, 110, 126, 101, 116, 138, 105, 105, 129, 122, 118, 130, 119, 114, 126, 117, 137, 126, 128, 122, 133, 124, 170, 113, 119, 138, 126, 99, 129, 100, 122, 138, 112, 116, 121, 120, 134, 127, 123, 136, 118, 125, 130, 116, 120, 112, 130, 126, 131, 129, 128, 120, 116, 126, 120, 126, 121, 129, 129, 134, 115, 138, 137, 107, 128, 108, 144, 107, 126, 133, 146, 145, 139, 129, 113, 109, 131, 110, 121, 116, 117, 118, 127, 119, 125, 117, 138, 126, 140, 123, 117, 121, 136, 142, 141, 131, 127, 125, 119, 128, 121, 134, 129, 132, 97, 123, 114, 140, 115, 132, 142, 125, 127, 129, 129, 125, 118, 130, 139, 115, 143, 135, 109, 138, 106, 128, 119, 99, 127, 114, 113, 116, 123, 109, 141, 118, 122, 115, 120, 124, 123, 115, 121, 132, 130, 112, 128, 102, 136, 137, 114, 115, 137, 121, 136, 136, 112, 110, 133, 138, 127, 123, 129, 122, 129, 111, 133, 132, 130, 137, 121, 136, 136, 128, 129, 126, 115, 121, 104, 99, 129, 147, 122, 119, 127, 119, 127, 123, 135, 128, 126, 120, 115, 138, 109, 107, 126, 129, 112, 119, 126, 123, 123, 124, 133, 128, 129, 136, 123, 114, 128, 120, 123, 142, 115, 114, 113, 130, 117, 129, 153, 152, 128, 130, 130, 121, 106, 129, 132, 112, 138, 138, 122, 134, 118, 133, 107, 117, 110, 154, 159, 130, 111, 115, 126, 118, 123, 134, 131, 121, 127, 122, 126, 117, 107, 102, 130, 146, 146, 127, 119, 128, 142, 124, 122, 124, 127, 121, 125, 110, 127, 132, 111, 131, 127, 131, 120, 129, 125, 139, 124, 138, 125, 155, 124, 116, 132, 115, 129, 144, 116, 106, 119, 126, 130, 124, 123, 116, 126, 118, 128, 123, 135, 116, 128, 142, 135, 125, 129, 122, 128, 120, 127, 109, 143, 129, 105, 123, 140, 137, 127, 125, 140, 124, 127, 122, 107, 135, 122, 133, 119, 131, 132, 127, 130, 135, 119, 144, 109, 127, 111, 118, 113, 112, 125, 121, 127, 141, 128, 121, 137, 131, 124, 151, 106, 118, 119, 126, 128, 125, 119, 134, 126, 126, 127, 127, 131, 134, 124, 132, 138, 138, 117, 125, 127, 140, 123, 108, 157, 132, 122, 127, 145, 119, 114, 135, 124, 125, 148, 133, 109, 121, 120, 136, 112, 148, 109, 128, 134, 125, 126, 111, 118, 128, 133, 126, 115, 132, 138, 120, 143, 133, 121, 137, 119, 132, 127, 130, 114, 127, 123, 134, 117, 128, 134, 135, 131, 117, 141, 125, 132, 129, 143, 119, 116, 122, 126, 127, 120, 138, 142, 143, 139, 121, 115, 130, 129, 121, 110, 110, 124, 117, 129, 133, 103, 136, 134, 127, 134, 96, 136, 120, 111, 129, 120, 116, 109, 127, 137, 114, 145, 129, 121, 108, 119, 117, 115, 131, 118, 115, 118, 145, 151, 122, 136, 115, 143, 127, 135, 119, 113, 129, 127, 130, 110, 107, 121, 143, 119, 118, 131, 121, 116, 124, 129, 119, 132, 128, 105, 109, 142, 126, 149, 138, 145, 145, 115, 135, 110, 133, 134, 113, 129, 118, 132, 112, 124, 125, 129, 145, 124, 135, 120, 118, 123, 132, 133, 134, 117, 130, 120, 125, 123, 131, 117, 144, 104, 134, 114, 123, 129, 120, 100, 134, 114, 134, 120, 143, 117, 115, 136, 118, 131, 129, 116, 119, 128, 138, 131, 139, 134, 115, 125, 110, 126, 130, 140, 98, 130, 125, 129, 118, 118, 100, 136, 128, 114, 140, 114, 118, 111, 128, 98, 122, 118, 125, 121, 130, 130, 129, 123, 118, 117, 129, 136, 110, 104, 141, 127, 117, 114, 130, 108, 132, 121, 117, 145, 138, 126, 127, 145, 120, 124, 122, 115, 156, 125, 128, 104, 119, 121, 131, 113, 129, 131, 125, 127, 127, 132, 115, 132, 121, 118, 122, 126, 122, 130, 119, 117, 138, 125, 119, 124, 124, 121, 132, 112, 134, 131, 143, 99, 129, 116, 112, 139, 120, 114, 131, 123, 130, 124, 123, 114, 130, 123, 137, 132, 136, 139, 127, 137, 126, 139, 118, 114, 112, 113, 107, 120, 131, 160, 111, 137, 126, 141, 120, 127, 103, 122, 121, 144, 142, 136, 136, 129, 125, 146, 124, 162, 114, 128, 119, 116, 139, 136, 124, 129, 129, 130, 123, 152, 120, 129, 114, 131, 155, 140, 122, 154, 118, 129, 124, 135, 122, 120, 114, 122, 139, 129, 127, 122, 140, 106, 118, 126, 129, 139, 131, 129, 134, 128, 147, 128, 121, 129, 111, 121, 112, 136, 123, 114, 129, 131, 115, 138, 127, 149, 130, 138, 145, 123, 128, 125, 130, 138, 120, 125, 112, 113, 120, 118, 128, 119, 136, 128, 125, 119, 127, 113, 112, 155, 127, 134, 117, 121, 131, 134, 132, 134, 123, 118, 137, 122, 117, 141, 135, 119, 127, 149, 125, 139, 149, 136, 124, 123, 140, 127, 134, 131, 131, 122, 110, 143, 106, 117, 145, 114, 107, 121, 109, 113, 121, 126, 119, 129, 139, 112, 132, 136, 115, 112, 118, 137, 121, 128, 113, 126, 117, 131, 119, 108, 124, 120, 133, 111, 121, 119, 114, 120, 138, 131, 100, 120, 122, 126, 130, 133, 123, 135, 125, 117, 132, 121, 128, 123, 141, 128, 145, 110, 107, 119, 117, 130, 129, 136, 142, 107, 121, 139, 114, 94, 124, 129, 119, 110, 117, 122, 136, 129, 134, 126, 116, 131, 107, 117, 120, 133, 137, 116, 131, 122, 124, 120, 117, 130, 127, 125, 126, 130, 127, 145, 116, 140, 140, 125, 135, 131, 135, 120, 116, 136, 126, 129, 121, 141, 102, 124, 133, 129, 102, 150, 108, 137, 121, 125, 121, 125, 135, 117, 121, 130, 142, 124, 124, 105, 143, 127, 116, 133, 108, 121, 133, 127, 114, 141, 122, 130, 117, 120, 124, 117, 131, 126, 123, 142, 116, 120, 150, 117, 119, 127, 107, 121, 134, 125, 110, 158, 129, 133, 132, 136, 127, 130, 120, 115, 121, 120, 118, 113, 138, 122, 139, 129, 127, 119, 126, 121, 117, 114, 135, 132, 134, 126, 128, 114, 159, 133, 120, 126, 133, 121, 118, 125, 121, 143, 142, 133, 128, 123, 134, 124, 149, 120, 139, 118, 133, 122, 117, 127, 127, 139, 142, 119, 130, 119, 109, 146, 127, 127, 133, 122, 136, 139, 142, 123, 112, 120, 112, 132, 130, 119, 123, 120, 120, 124, 105, 120, 121, 121, 142, 134, 134, 131, 120, 139, 113, 116, 131, 138, 131, 130, 113, 131, 140, 118, 127, 131, 120, 104, 123, 123, 120, 129, 142, 132, 113, 105, 129, 119, 136, 117, 132, 117, 152, 137, 125, 138, 126, 112, 107, 118, 120, 130, 125, 115, 130, 135, 138, 128, 139, 137, 137, 130, 141, 126, 122, 129, 106, 106, 120, 119, 112, 139, 119, 127, 129, 113, 122, 123, 130, 144, 109, 114, 134, 110, 115, 108, 120, 122, 121, 142, 105, 131, 129, 119, 144, 138, 137, 128, 111, 148, 135, 121, 123, 123, 140, 149, 132, 118, 103, 122, 125, 144, 133, 105, 129, 127, 109, 125, 125, 128, 116, 109, 130, 102, 129, 118, 152, 130, 117, 120, 124, 134, 111, 137, 112, 118, 114, 134, 126, 117, 119, 132, 109, 118, 130, 117, 114, 119, 113, 120, 115, 125, 122, 117, 150, 110, 127, 114, 121, 125, 116, 137, 122, 125, 114, 109, 126, 132, 134, 117, 137, 111, 133, 115, 153, 121, 122, 133, 127, 124, 123, 128, 115, 123, 118, 127, 136, 125, 119, 138, 118, 128, 115, 115, 127, 114, 122, 122, 128, 138, 117, 130, 118, 122, 135, 109, 132, 129, 138, 132, 135, 128, 131, 127, 106, 134, 129, 118, 124, 143, 137, 121, 108, 112, 114, 125, 136, 124, 135, 128, 127, 123, 128, 124, 134, 132, 116, 124, 106, 125, 117, 118, 155, 142, 115, 136, 131, 125, 130, 133, 129, 115, 133, 125, 137, 119, 129, 128, 105, 97, 133, 126, 125, 117, 120, 152, 110, 125, 124, 116, 123, 110, 133, 125, 121, 125, 147, 127, 132, 134, 128, 134, 120, 129, 127, 138, 124, 128, 122, 127, 132, 126, 120, 131, 132, 128, 127, 132, 124, 146, 130, 122, 108, 133, 118, 120, 125, 122, 128, 139, 119, 126, 136, 115, 135, 121, 128, 133, 117, 124, 126, 125, 115, 123, 138, 143, 125, 129, 110, 125, 137, 105, 136, 124, 122, 135, 110, 122, 114, 112, 131, 135, 135, 117, 144, 123, 118, 129, 110, 124, 126, 124, 118, 116, 129, 121, 135, 108, 124, 108, 119, 136, 123, 130, 153, 118, 123, 100, 137, 106, 154, 119, 120, 143, 116, 143, 108, 132, 123, 121, 135, 131, 112, 142, 141, 124, 116, 123, 119, 119, 130, 122, 131, 132, 141, 110, 121, 147, 123, 127, 126, 127, 128, 127, 125, 127, 112, 114, 126, 126, 136, 127, 133, 111, 109, 105, 129, 121, 125, 133, 114, 134, 119, 116, 128, 118, 113, 130, 142, 121, 128, 107, 132, 127, 104, 145, 125, 138, 131, 127, 121, 122, 127, 117, 150, 125, 106, 119, 150, 140, 112, 136, 155, 128, 126, 133, 121, 108, 121, 136, 137, 124, 139, 135, 119, 154, 124, 111, 134, 169, 120, 139, 124, 105, 114, 135, 142, 120, 114, 154, 122, 131, 126, 144, 131, 123, 127, 135, 111, 129, 126, 109, 106, 123, 126, 149, 115, 131, 126, 133, 123, 120, 145, 122, 138, 126, 117, 117, 131, 122, 109, 132, 115, 132, 120, 127, 112, 106, 105, 127, 138, 134, 132, 118, 123, 132, 131, 107, 116, 122, 114, 134, 141, 145, 144, 122, 130, 125, 137, 131, 99, 120, 136, 129, 122, 129, 108, 101, 144, 131, 111, 124, 130, 124, 118, 127, 111, 135, 118, 129, 108, 134, 123, 89, 117, 137, 126, 122, 114, 112, 119, 127, 130, 144, 126, 153, 122, 122, 144, 134, 127, 132, 100, 124, 119, 135, 115, 137, 115, 129, 110, 108, 105, 115, 140, 113, 121, 123, 143, 126, 108, 122, 106, 145, 123, 106, 115, 123, 122, 95, 109, 127, 129, 123, 132, 129, 112, 102, 128, 146, 128, 133, 130, 138, 136, 141, 116, 111, 111, 122, 129, 132, 120, 110, 130, 118, 129, 125, 130, 151, 125, 101, 134, 128, 135, 128, 118, 123, 122, 125, 132, 136, 116, 112, 124, 127, 131, 127, 150, 135, 137, 112, 122, 119, 116, 118, 133, 115, 136, 134, 124, 120, 112, 127, 117, 136, 114, 135, 127, 114, 126, 133, 131, 115, 119, 121, 128, 126, 119, 115, 126, 106, 123, 113, 126, 140, 131, 123, 138, 111, 116, 127, 110, 112, 143, 135, 108, 129, 119, 117, 139, 128, 138, 134, 139, 133, 114, 133, 120, 134, 121, 109, 133, 111, 134, 120, 124, 135, 111, 130, 117, 139, 118, 126, 121, 131, 112, 105, 119, 117, 104, 142, 102, 119, 125, 142, 136, 123, 133, 115, 115, 137, 134, 126, 121, 126, 130, 145, 132, 118, 112, 131, 127, 123, 132, 121, 123, 139, 112, 143, 129, 139, 132, 124, 133, 148, 135, 131, 130, 132, 121, 133, 122, 112, 129, 115, 121, 127, 109, 131, 127, 129, 132, 124, 126, 119, 126, 122, 129, 114, 101, 123, 136, 120, 135, 113, 129, 123, 120, 116, 131, 125, 124, 107, 100, 127, 129, 114, 127, 114, 117, 121, 111, 119, 128, 126, 110, 95, 136, 130, 122, 129, 120, 119, 126, 132, 127, 135, 133, 118, 133, 127, 108, 135, 129, 127, 139, 137, 119, 134, 121, 105, 119, 136, 118, 126, 138, 107, 114, 123, 136, 116, 141, 143, 115, 120, 133, 126, 129, 160, 109, 127, 130, 142, 122, 118, 125, 125, 126, 109, 110, 131, 121, 142, 126, 124, 125, 134, 143, 113, 110, 132, 110, 113, 120, 134, 118, 116, 129, 119, 139, 114, 111, 108, 112, 115, 120, 113, 122, 137, 138, 115, 118, 128, 120, 123, 113, 125, 110, 120, 114, 142, 121, 109, 126, 124, 121, 126, 130, 118, 124, 125, 137, 131, 127, 115, 124, 127, 122, 126, 124, 106, 146, 128, 123, 136, 115, 137, 132, 118, 103, 130, 130, 112, 135, 113, 114, 129, 118, 139, 129, 118, 116, 126, 135, 129, 147, 117, 124, 129, 127, 140, 133, 133, 115, 124, 122, 125, 122, 120, 106, 125, 112, 129, 122, 132, 119, 141, 141, 118, 116, 124, 144, 128, 129, 118, 111, 117, 128, 116, 116, 128, 119, 119, 126, 145, 142, 117, 141, 112, 115, 121, 135, 123, 124, 120, 132, 121, 113, 92, 128, 137, 140, 139, 114, 132, 125, 117, 116, 103, 136, 124, 110, 100, 126, 122, 129, 125, 112, 125, 122, 137, 123, 119, 146, 137, 120, 153, 124, 146, 150, 129, 110, 132, 118, 144, 121, 120, 149, 133, 108, 122, 115, 138, 128, 150, 135, 124, 126, 128, 118, 114, 130, 129, 126, 135, 134, 121, 116, 131, 112, 135, 119, 113, 117, 148, 98, 132, 100, 133, 122, 130, 117, 119, 116, 129, 113, 127, 130, 131, 133, 109, 121, 127, 129, 124, 109, 124, 128, 137, 132, 114, 130, 118, 121, 112, 124, 144, 122, 131, 147, 128, 129, 116, 122, 116, 129, 125, 116, 139, 131, 147, 126, 126, 122, 116, 126, 122, 114, 128, 128, 129, 121, 141, 116, 114, 138, 113, 108, 128, 142, 144, 123, 117, 150, 118, 130, 134, 106, 131, 113, 121, 127, 127, 127, 121, 129, 131, 114, 130, 109, 126, 114, 124, 138, 126, 124, 125, 124, 123, 136, 120, 115, 130, 117, 125, 101, 113, 120, 138, 123, 112, 135, 139, 129, 139, 116, 115, 132, 129, 125, 118, 122, 136, 138, 114, 118, 109, 149, 132, 135, 126, 125, 107, 117, 116, 142, 123, 131, 128, 135, 128, 117, 132, 121, 119, 111, 114, 118, 116, 127, 128, 136, 122, 107, 130, 121, 113, 132, 141, 144, 134, 135, 110, 131, 123, 123, 122, 125, 124, 121, 131, 137, 128, 119, 134, 134, 105, 121, 153, 129, 116, 117, 131, 130, 119, 128, 144, 146, 135, 139, 124, 122, 122, 127, 111, 145, 132, 124, 126, 119, 127, 130, 105, 138, 115, 139, 123, 120, 118, 120, 115, 140, 116, 146, 130, 126, 121, 126, 123, 122, 127, 123, 140, 135, 122, 124, 127, 120, 126, 134, 125, 128, 129, 138, 123, 126, 124, 139, 129, 134, 109, 113, 101, 134, 127, 133, 135, 111, 130, 116, 113, 144, 129, 132, 130, 111, 125, 147, 140, 134, 123, 115, 134, 145, 124, 113, 106, 116, 140, 141, 145, 126, 146, 119, 136, 133, 133, 113, 138, 135, 111, 128, 124, 129, 136, 138, 126, 131, 138, 114, 132, 117, 117, 107, 133, 129, 138, 138, 113, 133, 129, 117, 106, 133, 121, 117, 129, 119, 134, 141, 136, 114, 112, 106, 114, 133, 136, 136, 107, 135, 134, 141, 133, 129, 115, 118, 140, 141, 101, 114, 115, 124, 131, 118, 164, 126, 134, 117, 116, 113, 125, 133, 130, 114, 140, 118, 138, 121, 129, 137, 127, 115, 133, 134, 122, 106, 128, 138, 128, 121, 141, 140, 106, 128, 133, 116, 124, 107, 113, 128, 121, 128, 127, 121, 119, 127, 133, 126, 134, 120, 119, 121, 133, 130, 120, 131, 127, 125, 120, 127, 130, 126, 106, 137, 112, 127, 125, 120, 111, 146, 139, 129, 114, 123, 138, 121, 111, 124, 120, 129, 140, 132, 125, 117, 127, 117, 127, 139, 126, 128, 145, 135, 148, 137, 126, 128, 132, 121, 113, 136, 120, 137, 144, 128, 120, 137, 124, 126, 125, 129, 121, 127, 120, 129, 115, 135, 137, 140, 150, 130, 126, 121, 133, 122, 132, 124, 139, 124, 111, 119, 124, 137, 118, 121, 117, 123, 125, 128, 114, 121, 134, 133, 120, 125, 118, 118, 141, 109, 113, 122, 97, 117, 118, 115, 118, 123, 113, 110, 137, 139, 113, 130, 106, 113, 127, 124, 148, 103, 127, 121, 132, 118, 141, 131, 118, 126, 116, 128, 135, 130, 134, 120, 125, 136, 129, 117, 124, 136, 128, 128, 130, 148, 143, 125, 130, 127, 114, 123, 140, 133, 103, 127, 127, 118, 108, 137, 132, 126, 137, 119, 123, 123, 122, 117, 135, 119, 118, 132, 144, 130, 138, 124, 124, 124, 126, 126, 126, 121, 150, 110, 135, 127, 113, 117, 130, 132, 104, 113, 126, 96, 126, 111, 125, 128, 119, 123, 114, 129, 129, 119, 136, 131, 135, 129, 127, 126, 138, 113, 118, 115, 135, 115, 138, 113, 114, 129, 125, 111, 122, 140, 133, 126, 116, 101, 107, 108, 121, 133, 133, 144, 113, 138, 117, 137, 136, 127, 133, 133, 129, 121, 125, 136, 121, 129, 142, 117, 122, 117, 134, 123, 114, 133, 127, 117, 111, 134, 116, 137, 115, 146, 131, 106, 126, 127, 130, 123, 109, 121, 107, 129, 109, 143, 119, 119, 148, 129, 136, 125, 146, 117, 141, 114, 112, 114, 137, 134, 118, 127, 124, 126, 110, 125, 137, 130, 133, 132, 139, 116, 138, 122, 117, 113, 121, 118, 131, 117, 144, 139, 110, 111, 132, 134, 107, 135, 116, 115, 128, 116, 139, 102, 125, 112, 124, 123, 132, 137, 129, 129, 136, 126, 117, 114, 129, 117, 136, 115, 129, 137, 140, 123, 130, 141, 138, 137, 119, 118, 119, 153, 167, 116, 130, 120, 137, 123, 109, 120, 118, 121, 140, 127, 125, 124, 119, 118, 117, 121, 128, 132, 114, 125, 117, 130, 150, 130, 138, 124, 121, 126, 135, 115, 133, 137, 126, 152, 132, 103, 114, 135, 129, 116, 135, 123, 127, 126, 107, 112, 128, 124, 128, 128, 136, 152, 132, 154, 110, 111, 105, 137, 130, 114, 132, 123, 114, 117, 122, 126, 116, 137, 128, 123, 118, 143, 131, 131, 120, 132, 121, 115, 147, 120, 134, 147, 112, 133, 125, 162, 125, 128, 126, 143, 135, 133, 116, 141, 114, 131, 122, 138, 128, 137, 128, 141, 131, 135, 141, 116, 125, 119, 132, 122, 119, 113, 115, 129, 116, 113, 132, 109, 150, 129, 125, 122, 113, 132, 129, 123, 114, 115, 123, 120, 127, 137, 139, 128, 114, 127, 127, 133, 132, 133, 112, 122, 118, 126, 127, 124, 111, 111, 121, 127, 126, 124, 123, 135, 127, 122, 130, 133, 138, 123, 122, 121, 128, 127, 120, 107, 105, 121, 148, 129, 129, 121, 134, 121, 136, 131, 125, 134, 149, 116, 123, 126, 125, 124, 132, 112, 130, 131, 130, 109, 118, 116, 101, 136, 119, 109, 114, 137, 145, 120, 127, 98, 124, 121, 125, 124, 117, 133, 123, 114, 128, 118, 140, 108, 139, 121, 138, 131, 130, 150, 127, 132, 128, 130, 126, 120, 122, 124, 128, 114, 121, 125, 135, 141, 142, 144, 129, 135, 93, 135, 129, 131, 132, 130, 123, 114, 123, 129, 126, 110, 137, 120, 92, 142, 146, 124, 122, 125, 126, 108, 126, 126, 127, 126, 121, 120, 134, 118, 126, 131, 133, 130, 131, 114, 129, 130, 118, 110, 134, 119, 108, 130, 127, 136, 137, 146, 126, 134, 118, 117, 117, 110, 113, 133, 120, 119, 113, 132, 113, 129, 121, 103, 133, 132, 123, 125, 128, 120, 137, 120, 121, 127, 111, 129, 126, 128, 138, 118, 118, 117, 128, 145, 120, 124, 114, 113, 136, 126, 122, 124, 118, 112, 134, 146, 132, 137, 121, 124, 138, 114, 121, 114, 121, 111, 113, 116, 118, 108, 129, 132, 123, 122, 109, 127, 122, 136, 139, 117, 122, 96, 117, 130, 134, 131, 118, 133, 128, 124, 145, 119, 129, 143, 124, 124, 125, 135, 137, 118, 108, 132, 118, 132, 122, 122, 125, 121, 139, 123, 130, 112, 120, 126, 108, 131, 116, 144, 131, 121, 125, 113, 140, 139, 116, 130, 119, 129, 127, 135, 115, 125, 123, 132, 134, 123, 128, 113, 124, 118, 114, 115, 132, 141, 121, 110, 127, 114, 117, 134, 137, 128, 125, 124, 134, 113, 133, 136, 132, 134, 118, 131, 123, 119, 124, 126, 127, 138, 131, 109, 133, 146, 138, 117, 136, 115, 128, 126, 107, 125, 125, 118, 115, 130, 135, 127, 132, 125, 125, 120, 134, 133, 136, 131, 128, 121, 114, 125, 126, 138, 126, 136, 133, 127, 129, 130, 122, 118, 117, 146, 123, 129, 126, 129, 118, 127, 119, 117, 123, 117, 133, 131, 135, 142, 125, 136, 133, 131, 115, 117, 128, 109, 126, 125, 122, 107, 118, 113, 117, 122, 141, 140, 137, 129, 133, 132, 121, 141, 114, 135, 122, 131, 120, 126, 115, 131, 139, 118, 123, 147, 108, 112, 133, 131, 122, 125, 123, 135, 123, 128, 108, 118, 138, 136, 116, 148, 128, 108, 122, 136, 132, 138, 130, 132, 126, 120, 125, 131, 131, 124, 130, 114, 132, 143, 113, 130, 124, 109, 132, 122, 111, 109, 126, 130, 128, 121, 127, 122, 114, 131, 120, 118, 141, 127, 120, 139, 127, 119, 102, 127, 133, 115, 135, 134, 113, 134, 117, 126, 123, 133, 133, 123, 111, 136, 139, 110, 128, 122, 142, 119, 128, 136, 114, 134, 120, 112, 139, 125, 121, 127, 112, 129, 114, 122, 133, 112, 114, 131, 104, 115, 119, 131, 136, 125, 124, 125, 133, 109, 132, 106, 122, 122, 112, 123, 116, 135, 99, 146, 132, 142, 138, 132, 126, 137, 138, 130, 119, 122, 131, 130, 143, 119, 117, 125, 130, 123, 109, 126, 116, 119, 136, 119, 113, 122, 127, 133, 130, 126, 133, 131, 129, 115, 123, 116, 119, 137, 123, 113, 119, 111, 132, 129, 128, 130, 124, 123, 100, 140, 134, 93, 132, 112, 123, 124, 104, 145, 113, 117, 117, 131, 131, 143, 129, 120, 121, 134, 138, 129, 137, 117, 159, 122, 124, 126, 127, 121, 121, 132, 131, 121, 123, 112, 128, 126, 128, 135, 124, 104, 119, 122, 112, 133, 119, 122, 128, 132, 127, 114, 140, 131, 108, 123, 130, 135, 115, 112, 116, 143, 123, 120, 124, 137, 113, 128, 109, 108, 116, 110, 114, 125, 112, 129, 126, 123, 132, 117, 124, 124, 125, 137, 136, 116, 109, 112, 106, 123, 106, 147, 123, 118, 117, 132, 130, 125, 137, 129, 129, 119, 130, 130, 133, 125, 116, 132, 133, 110, 130, 124, 144, 132, 100, 118, 125, 128, 123, 128, 122, 122, 124, 123, 124, 114, 122, 136, 116, 117, 132, 120, 130, 131, 131, 134, 112, 132, 108, 132, 129, 112, 123, 121, 132, 137, 136, 133, 126, 129, 117, 131, 117, 121, 126, 124, 122, 125, 136, 124, 118, 130, 121, 154, 120, 127, 130, 126, 114, 109, 128, 129, 125, 132, 148, 119, 143, 105, 105, 118, 121, 127, 126, 140, 120, 113, 120, 124, 116, 132, 124, 121, 133, 129, 140, 109, 121, 135, 123, 107, 130, 131, 112, 119, 131, 131, 137, 127, 123, 134, 115, 122, 138, 127, 132, 137, 143, 112, 113, 124, 131, 116, 126, 118, 135, 116, 129, 134, 119, 147, 118, 122, 132, 138, 136, 120, 116, 138, 105, 125, 130, 140, 113, 133, 114, 118, 131, 142, 138, 135, 101, 126, 124, 116, 138, 153, 117, 126, 127, 127, 110, 106, 118, 143, 151, 136, 112, 121, 141, 129, 133, 128, 131, 115, 135, 118, 128, 127, 151, 125, 121, 91, 116, 116, 126, 126, 138, 114, 119, 126, 133, 135, 112, 122, 126, 132, 122, 125, 120, 108, 143, 128, 136, 115, 127, 106, 125, 144, 126, 125, 140, 133, 134, 119, 131, 118, 136, 128, 121, 110, 120, 126, 110, 135, 152, 116, 118, 104, 117, 122, 129, 126, 104, 135, 140, 114, 117, 117, 128, 124, 127, 117, 135, 117, 115, 124, 114, 104, 133, 136, 125, 134, 125, 110, 128, 127, 126, 128, 126, 123, 114, 142, 127, 113, 117, 117, 113, 117, 119, 138, 125, 135, 123, 116, 146, 129, 131, 120, 125, 112, 113, 119, 120, 127, 130, 116, 128, 135, 125, 106, 114, 111, 113, 120, 123, 127, 122, 133, 101, 133, 124, 131, 133, 136, 141, 128, 122, 155, 117, 113, 136, 131, 127, 124, 129, 116, 126, 125, 135, 115, 141, 132, 116, 100, 106, 115, 133, 148, 137, 116, 138, 136, 128, 130, 133, 108, 146, 139, 127, 121, 125, 153, 122, 135, 119, 129, 138, 122, 112, 119, 125, 120, 117, 117, 122, 131, 122, 110, 111, 118, 133, 125, 137, 124, 122, 130, 116, 127, 95, 130, 128, 123, 125, 133, 118, 147, 133, 127, 116, 108, 113, 118, 119, 121, 136, 109, 124, 136, 131, 124, 130, 124, 126, 114, 130, 138, 119, 126, 124, 141, 122, 122, 131, 123, 132, 130, 133, 129, 141, 141, 132, 115, 140, 124, 138, 132, 126, 127, 122, 131, 134, 115, 137, 125, 112, 128, 129, 120, 143, 119, 128, 112, 121, 135, 106, 123, 136, 131, 119, 129, 118, 107, 134, 121, 150, 107, 119, 141, 130, 132, 119, 120, 118, 125, 121, 118, 124, 126, 124, 111, 129, 139, 139, 128, 126, 129, 103, 123, 127, 103, 120, 123, 133, 128, 126, 126, 130, 112, 115, 128, 128, 116, 131, 132, 117, 128, 111, 122, 129, 127, 124, 135, 122, 135, 133, 144, 128, 123, 124, 126, 125, 126, 121, 117, 144, 116, 136, 134, 138, 130, 131, 119, 126, 123, 130, 111, 117, 124, 117, 106, 127, 116, 129, 119, 121, 130, 155, 130, 111, 117, 125, 119, 136, 136, 132, 119, 142, 126, 142, 117, 106, 115, 135, 125, 131, 112, 140, 113, 130, 108, 140, 134, 116, 118, 134, 116, 113, 141, 126, 130, 121, 133, 129, 127, 114, 123, 130, 113, 114, 128, 119, 120, 119, 119, 112, 129, 138, 121, 121, 109, 125, 128, 115, 129, 122, 119, 127, 137, 132, 125, 115, 124, 122, 124, 140, 132, 128, 124, 117, 126, 121, 116, 117, 126, 114, 123, 122, 131, 140, 129, 127, 115, 118, 126, 130, 134, 137, 129, 141, 127, 149, 101, 129, 111, 130, 126, 114, 115, 130, 106, 132, 121, 122, 137, 121, 123, 111, 129, 129, 131, 114, 128, 111, 120, 135, 144, 99, 91, 136, 149, 145, 109, 130, 132, 128, 136, 128, 120, 126, 130, 118, 148, 111, 127, 131, 114, 141, 113, 137, 117, 124, 129, 140, 117, 110, 119, 122, 129, 127, 120, 125, 104, 134, 155, 116, 111, 98, 125, 120, 116, 133, 122, 126, 149, 118, 133, 112, 131, 140, 111, 113, 146, 121, 140, 130, 105, 136, 128, 120, 134, 127, 164, 121, 132, 106, 119, 134, 142, 123, 109, 136, 124, 132, 115, 105, 128, 119, 141, 120, 135, 128, 112, 129, 134, 112, 133, 130, 135, 124, 128, 134, 138, 117, 152, 134, 134, 138, 114, 150, 126, 128, 101, 124, 117, 115, 130, 133, 118, 116, 124, 120, 118, 138, 131, 121, 132, 115, 117, 128, 130, 124, 119, 137, 136, 142, 121, 117, 129, 135, 127, 142, 133, 123, 122, 128, 116, 132, 119, 133, 133, 123, 125, 135, 121, 117, 127, 130, 127, 130, 113, 129, 123, 124, 127, 114, 128, 123, 126, 123, 127, 145, 143, 121, 100, 125, 104, 133, 126, 125, 120, 123, 104, 129, 119, 115, 138, 123, 127, 119, 126, 135, 124, 116, 127, 124, 130, 136, 113, 132, 121, 146, 115, 127, 135, 120, 128, 126, 120, 141, 121, 127, 122, 111, 131, 111, 112, 120, 123, 143, 103, 112, 130, 123, 123, 137, 120, 124, 143, 138, 113, 123, 128, 123, 122, 114, 118, 135, 116, 155, 102, 125, 124, 112, 132, 108, 122, 122, 138, 119, 145, 125, 127, 127, 139, 129, 127, 156, 119, 123, 128, 124, 141, 116, 128, 132, 104, 127, 122, 124, 129, 105, 115, 137, 123, 113, 104, 128, 114, 114, 114, 124, 125, 142, 117, 114, 118, 119, 101, 124, 115, 140, 121, 149, 128, 126, 121, 146, 116, 118, 125, 115, 122, 131, 133, 115, 129, 122, 97, 118, 113, 127, 123, 135, 100, 139, 135, 127, 101, 143, 106, 121, 109, 118, 151, 116, 123, 134, 149, 137, 127, 131, 146, 111, 118, 130, 119, 119, 120, 124, 126, 116, 123, 111, 133, 113, 120, 133, 123, 141, 128, 136, 124, 118, 129, 126, 115, 134, 138, 118, 131, 109, 118, 127, 116, 133, 133, 130, 123, 131, 127, 112, 118, 126, 97, 113, 119, 130, 148, 116, 129, 124, 157, 130, 124, 133, 116, 110, 126, 140, 130, 144, 129, 136, 141, 132, 122, 119, 147, 129, 135, 128, 109, 120, 116, 132, 125, 120, 117, 143, 122, 134, 132, 118, 135, 122, 119, 109, 132, 110, 121, 124, 119, 123, 113, 117, 130, 131, 107, 118, 138, 120, 132, 171, 134, 126, 148, 128, 139, 115, 121, 124, 144, 124, 121, 119, 152, 116, 126, 114, 132, 131, 129, 126, 130, 134, 126, 116, 116, 137, 140, 136, 118, 104, 113, 132, 116, 136, 131, 113, 122, 107, 123, 108, 125, 146, 123, 128, 151, 124, 119, 111, 109, 122, 119, 123, 140, 133, 139, 126, 137, 120, 132, 136, 111, 120, 114, 119, 137, 136, 123, 142, 139, 123, 120, 119, 149, 120, 140, 125, 125, 131, 126, 140, 146, 103, 146, 128, 130, 125, 129, 126, 140, 133, 123, 112, 105, 118, 126, 126, 110, 141, 110, 131, 141, 118, 116, 126, 122, 126, 151, 134, 134, 127, 105, 117, 135, 116, 130, 121, 115, 134, 118, 132, 115, 136, 127, 134, 119, 105, 128, 125, 129, 110, 137, 138, 128, 119, 129, 117, 132, 130, 107, 117, 117, 115, 126, 121, 128, 127, 120, 132, 126, 121, 118, 122, 121, 142, 113, 113, 125, 129, 131, 136, 112, 129, 127, 129, 126, 101, 118, 125, 128, 136, 129, 125, 149, 132, 118, 117, 131, 165, 155, 133, 123, 117, 132, 111, 124, 123, 119, 124, 149, 119, 118, 129, 128, 139, 127, 121, 120, 128, 136, 142, 128, 125, 113, 112, 135, 102, 129, 132, 107, 141, 134, 124, 128, 135, 125, 110, 131, 134, 112, 121, 119, 123, 126, 136, 118, 117, 110, 132, 113, 127, 130, 119, 129, 112, 134, 115, 121, 111, 122, 111, 125, 122, 116, 138, 134, 129, 132, 118, 126, 111, 118, 102, 124, 134, 125, 118, 121, 123, 124, 122, 123, 138, 130, 128, 134, 122, 109, 117, 131, 145, 125, 124, 126, 125, 142, 119, 127, 140, 132, 96, 121, 123, 122, 123, 130, 129, 120, 124, 125, 113, 118, 105, 120, 123, 114, 130, 136, 115, 135, 133, 131, 126, 122, 120, 107, 115, 128, 117, 116, 130, 158, 167, 122, 130, 129, 110, 145, 134, 130, 128, 129, 126, 118, 125, 138, 137, 121, 122, 129, 140, 146, 138, 127, 135, 145, 144, 126, 135, 125, 150, 122, 139, 133, 119, 121, 119, 116, 128, 138, 123, 114, 117, 115, 130, 137, 127, 122, 135, 117, 108, 125, 129, 111, 106, 117, 117, 121, 119, 128, 120, 128, 125, 131, 117, 147, 124, 107, 115, 116, 136, 133, 123, 130, 142, 132, 122, 129, 137, 123, 123, 121, 125, 161, 135, 125, 126, 143, 128, 133, 105, 117, 115, 126, 131, 136, 119, 105, 125, 142, 117, 115, 121, 113, 142, 123, 127, 113, 129, 128, 120, 115, 120, 119, 110, 111, 134, 117, 111, 143, 128, 139, 125, 136, 117, 118, 134, 136, 121, 134, 135, 122, 125, 137, 127, 121, 129, 140, 132, 113, 129, 120, 130, 125, 133, 122, 126, 127, 132, 124, 121, 128, 131, 126, 126, 130, 131, 135, 116, 142, 113, 131, 139, 136, 125, 137, 133, 133, 127, 122, 130, 123, 112, 99, 119, 105, 129, 111, 132, 116, 111, 135, 112, 124, 142, 110, 120, 125, 117, 125, 123, 120, 130, 135, 108, 111, 109, 129, 138, 112, 124, 127, 118, 118, 135, 123, 125, 121, 134, 107, 118, 118, 108, 123, 104, 122, 134, 119, 158, 144, 137, 109, 133, 128, 131, 127, 123, 130, 120, 117, 121, 113, 112, 130, 135, 115, 134, 126, 125, 119, 116, 111, 117, 124, 123, 113, 151, 147, 133, 126, 123, 113, 91, 125, 115, 120, 127, 121, 134, 110, 103, 115, 121, 114, 114, 126, 120, 165, 122, 126, 110, 119, 125, 155, 115, 112, 133, 119, 112, 127, 115, 117, 133, 119, 118, 109, 118, 119, 134, 117, 132, 133, 139, 125, 110, 118, 114, 118, 132, 120, 117, 121, 130, 115, 126, 132, 122, 110, 129, 140, 125, 119, 116, 126, 120, 141, 125, 119, 124, 105, 121, 120, 108, 129, 114, 127, 136, 113, 116, 126, 112, 102, 120, 139, 139, 131, 134, 122, 128, 116, 120, 122, 119, 119, 124, 127, 123, 123, 123, 124, 133, 133, 110, 138, 132, 130, 121, 131, 115, 115, 128, 127, 131, 110, 142, 106, 125, 117, 126, 112, 132, 106, 121, 150, 119, 138, 126, 109, 125, 145, 140, 108, 133, 139, 128, 109, 126, 142, 103, 122, 133, 131, 120, 115, 127, 127, 110, 120, 116, 111, 114, 111, 119, 113, 117, 121, 138, 117, 144, 111, 112, 134, 115, 113, 120, 130, 137, 130, 106, 108, 117, 110, 123, 151, 128, 152, 148, 140, 136, 134, 125, 123, 108, 118, 125, 139, 157, 126, 126, 126, 134, 125, 111, 120, 121, 125, 134, 127, 133, 133, 145, 118, 129, 138, 118, 125, 125, 128, 141, 116, 143, 119, 108, 131, 115, 116, 126, 104, 132, 122, 129, 131, 146, 130, 133, 136, 125, 132, 112, 104, 127, 102, 127, 112, 121, 102, 140, 121, 135, 112, 117, 110, 137, 128, 135, 114, 123, 104, 139, 115, 137, 142, 150, 120, 133, 122, 118, 131, 140, 116, 128, 126, 110, 120, 103, 114, 126, 123, 121, 114, 119, 127, 111, 128, 124, 116, 135, 131, 126, 133, 106, 123, 112, 124, 128, 122, 131, 121, 132, 125, 129, 144, 146, 124, 120, 117, 127, 133, 128, 127, 133, 137, 126, 132, 131, 112, 130, 114, 131, 118, 126, 129, 134, 123, 138, 114, 135, 145, 110, 160, 143, 98, 113, 136, 125, 109, 139, 116, 117, 108, 122, 136, 141, 123, 121, 141, 126, 118, 116, 109, 125, 108, 134, 129, 130, 121, 114, 130, 131, 121, 133, 129, 130, 108, 109, 118, 113, 106, 129, 114, 129, 123, 138, 110, 135, 118, 128, 112, 115, 145, 117, 122, 133, 113, 134, 109, 116, 115, 128, 137, 119, 117, 139, 128, 135, 124, 132, 132, 121, 127, 132, 128, 133, 132, 126, 119, 132, 137, 146, 119, 120, 132, 116, 122, 123, 124, 121, 111, 113, 119, 113, 120, 110, 125, 118, 118, 122, 138, 135, 117, 138, 120, 125, 108, 127, 139, 125, 129, 121, 155, 119, 120, 127, 119, 118, 127, 131, 124, 106, 128, 126, 109, 114, 123, 130, 140, 134, 122, 136, 120, 131, 119, 121, 111, 115, 127, 155, 124, 139, 122, 122, 112, 131, 142, 129, 132, 118, 129, 130, 125, 129, 112, 118, 129, 116, 98, 133, 121, 129, 129, 121, 122, 103, 143, 119, 125, 111, 146, 132, 139, 105, 124, 131, 129, 129, 124, 119, 134, 127, 134, 128, 124, 118, 126, 137, 140, 138, 110, 137, 166, 158, 118, 147, 119, 123, 121, 128, 126, 133, 131, 142, 113, 136, 134, 137, 124, 144, 130, 124, 131, 156, 117, 122, 135, 141, 118, 131, 117, 129, 124, 125, 120, 122, 120, 112, 132, 132, 132, 122, 136, 133, 114, 117, 136, 122, 122, 127, 116, 124, 119, 129, 142, 142, 131, 120, 133, 136, 129, 137, 121, 96, 122, 113, 132, 125, 117, 140, 117, 143, 106, 121, 123, 128, 114, 135, 123, 136, 112, 107, 111, 136, 114, 103, 114, 114, 111, 155, 131, 123, 126, 122, 123, 106, 122, 110, 130, 129, 125, 112, 142, 135, 148, 121, 123, 121, 121, 106, 111, 117, 134, 128, 135, 102, 138, 118, 162, 122, 124, 144, 137, 144, 143, 135, 148, 132, 136, 125, 109, 120, 129, 134, 136, 131, 119, 130, 92, 132, 126, 131, 127, 130, 134, 129, 113, 132, 124, 127, 107, 135, 132, 128, 126, 108, 124, 128, 132, 126, 139, 128, 120, 109, 126, 114, 114, 129, 118, 112, 119, 112, 126, 128, 133, 131, 122, 129, 124, 123, 122, 120, 116, 109, 139, 120, 119, 117, 136, 107, 127, 137, 137, 138, 109, 122, 108, 128, 119, 114, 122, 126, 135, 121, 127, 108, 102, 120, 131, 105, 123, 134, 132, 118, 128, 135, 114, 129, 116, 114, 108, 112, 132, 129, 104, 119, 117, 129, 138, 164, 142, 118, 127, 121, 119, 128, 125, 116, 115, 129, 130, 101, 124, 133, 131, 123, 112, 114, 118, 134, 130, 135, 109, 103, 124, 132, 136, 125, 142, 138, 117, 143, 115, 136, 141, 116, 118, 116, 149, 149, 130, 132, 125, 123, 111, 110, 125, 119, 123, 148, 120, 111, 123, 127, 142, 130, 110, 132, 132, 127, 132, 117, 137, 126, 125, 141, 119, 119, 107, 119, 132, 112, 120, 116, 128, 132, 123, 120, 110, 101, 114, 116, 133, 136, 139, 142, 126, 141, 112, 121, 135, 126, 123, 137, 154, 132, 128, 128, 118, 124, 122, 106, 121, 122, 125, 122, 120, 122, 106, 129, 132, 132, 145, 126, 137, 142, 132, 108, 138, 130, 119, 124, 133, 106, 119, 129, 122, 133, 130, 126, 132, 113, 120, 136, 126, 119, 116, 139, 116, 140, 111, 126, 118, 120, 108, 116, 126, 128, 131, 123, 124, 149, 118, 102, 113, 114, 128, 125, 128, 124, 114, 108, 152, 117, 113, 126, 130, 145, 118, 124, 132, 139, 101, 124, 132, 139, 143, 122, 115, 132, 127, 127, 129, 110, 111, 118, 115, 125, 115, 133, 118, 131, 129, 135, 120, 123, 130, 120, 124, 130, 104, 127, 136, 123, 128, 144, 107, 123, 112, 116, 118, 126, 136, 125, 113, 124, 120, 129, 114, 128, 119, 134, 112, 116, 125, 121, 135, 146, 119, 122, 131, 124, 126, 121, 113, 106, 127, 134, 110, 120, 129, 132, 124, 118, 126, 138, 130, 140, 138, 120, 135, 139, 109, 122, 122, 131, 124, 113, 123, 105, 115, 126, 119, 131, 124, 132, 129, 132, 119, 118, 131, 125, 119, 132, 141, 126, 136, 114, 119, 131, 141, 140, 116, 134, 111, 133, 124, 115, 115, 123, 131, 141, 131, 134, 118, 129, 126, 118, 134, 139, 125, 135, 133, 134, 139, 141, 136, 137, 125, 88, 127, 115, 131, 140, 127, 147, 122, 113, 118, 120, 137, 153, 136, 143, 121, 124, 129, 130, 125, 128, 110, 134, 128, 137, 129, 119, 141, 138, 114, 123, 129, 121, 121, 145, 102, 115, 130, 111, 131, 116, 130, 108, 125, 126, 141, 126, 129, 139, 122, 117, 117, 121, 130, 122, 124, 130, 124, 132, 137, 122, 101, 124, 128, 117, 131, 135, 133, 128, 129, 131, 121, 126, 131, 129, 125, 124, 121, 127, 106, 126, 105, 120, 135, 120, 145, 105, 140, 122, 132, 117, 122, 132, 109, 116, 122, 125, 123, 135, 127, 129, 126, 114, 107, 107, 130, 138, 115, 125, 111, 128, 137, 150, 119, 128, 125, 124, 138, 129, 126, 124, 142, 131, 122, 122, 125, 126, 112, 132, 134, 111, 128, 134, 121, 122, 128, 117, 123, 132, 120, 114, 133, 98, 109, 138, 131, 119, 110, 130, 132, 114, 130, 147, 136, 136, 127, 137, 123, 114, 128, 135, 134, 122, 119, 145, 124, 106, 141, 116, 129, 125, 118, 141, 129, 127, 132, 116, 121, 132, 132, 134, 122, 114, 133, 130, 131, 132, 113, 133, 113, 126, 140, 127, 122, 118, 110, 134, 123, 129, 139, 101, 123, 123, 115, 132, 143, 124, 124, 120, 131, 138, 119, 135, 148, 105, 122, 131, 122, 140, 126, 125, 124, 145, 119, 140, 135, 116, 125, 129, 114, 130, 133, 122, 122, 122, 118, 113, 118, 103, 118, 136, 125, 125, 112, 120, 127, 113, 122, 116, 151, 129, 169, 111, 126, 122, 131, 122, 110, 131, 118, 110, 144, 125, 125, 113, 124, 124, 115, 106, 126, 130, 113, 129, 121, 121, 135, 134, 113, 115, 131, 108, 129, 129, 136, 115, 126, 140, 121, 103, 121, 130, 131, 125, 126, 126, 135, 128, 148, 140, 122, 116, 130, 121, 124, 127, 113, 121, 126, 120, 134, 122, 124, 138, 132, 135, 116, 112, 124, 126, 120, 116, 124, 130, 137, 128, 121, 128, 121, 131, 127, 127, 144, 115, 125, 121, 110, 132, 147, 117, 136, 132, 127, 115, 132, 126, 137, 137, 119, 113, 98, 130, 123, 129, 121, 135, 128, 145, 118, 128, 117, 122, 127, 110, 125, 136, 122, 109, 129, 130, 116, 117, 133, 127, 143, 120, 129, 121, 129, 124, 130, 124, 135, 136, 110, 154, 122, 128, 126, 117, 125, 123, 106, 130, 127, 138, 107, 128, 128, 138, 122, 123, 123, 116, 113, 129, 125, 128, 128, 132, 119, 130, 121, 121, 120, 133, 117, 128, 112, 125, 113, 124, 119, 128, 113, 117, 125, 135, 132, 128, 135, 115, 122, 114, 115, 120, 124, 121, 121, 121, 119, 129, 117, 119, 140, 130, 128, 130, 130, 122, 133, 113, 115, 142, 152, 123, 113, 110, 130, 126, 128, 114, 128, 119, 124, 130, 136, 105, 129, 133, 118, 132, 120, 133, 129, 134, 138, 128, 111, 116, 133, 119, 137, 122, 113, 124, 117, 106, 123, 150, 112, 132, 128, 120, 133, 126, 136, 124, 117, 165, 121, 126, 124, 119, 120, 120, 125, 141, 119, 130, 140, 135, 126, 144, 113, 121, 121, 114, 133, 122, 126, 111, 115, 124, 114, 138, 133, 129, 103, 119, 131, 104, 136, 109, 131, 147, 144, 115, 131, 123, 122, 150, 136, 118, 133, 122, 116, 140, 124, 113, 117, 131, 133, 135, 118, 133, 146, 142, 126, 125, 129, 130, 107, 124, 133, 123, 126, 135, 131, 104, 114, 123, 137, 131, 132, 118, 135, 132, 115, 124, 126, 132, 142, 136, 124, 114, 125, 121, 138, 136, 124, 125, 145, 122, 117, 139, 112, 134, 106, 123, 126, 119, 119, 132, 125, 117, 136, 137, 113, 126, 111, 137, 123, 131, 137, 125, 121, 129, 132, 122, 128, 121, 107, 124, 130, 127, 125, 129, 104, 129, 123, 123, 127, 137, 132, 115, 126, 131, 142, 124, 127, 130, 141, 138, 113, 139, 141, 127, 112, 130, 115, 129, 122, 112, 126, 127, 115, 115, 124, 120, 113, 122, 126, 116, 143, 138, 112, 135, 144, 125, 121, 136, 123, 133, 122, 113, 124, 133, 133, 131, 151, 116, 143, 117, 108, 138, 132, 121, 113, 142, 130, 122, 118, 113, 100, 113, 126, 128, 126, 132, 112, 126, 123, 116, 136, 106, 124, 123, 121, 124, 127, 123, 122, 114, 116, 131, 126, 140, 144, 106, 130, 126, 141, 129, 115, 131, 147, 130, 116, 135, 121, 133, 132, 122, 122, 126, 134, 121, 105, 119, 125, 114, 133, 133, 137, 120, 142, 140, 126, 130, 127, 143, 138, 117, 106, 119, 131, 123, 130, 121, 134, 115, 134, 107, 120, 130, 123, 122, 126, 121, 106, 121, 106, 133, 101, 121, 123, 127, 126, 105, 117, 145, 115, 128, 137, 133, 133, 129, 108, 115, 115, 123, 142, 119, 131, 142, 139, 104, 124, 146, 135, 140, 132, 127, 125, 130, 148, 125, 118, 132, 121, 116, 99, 116, 116, 124, 141, 131, 127, 128, 120, 125, 118, 133, 134, 129, 144, 120, 121, 133, 134, 120, 112, 143, 137, 121, 125, 113, 130, 128, 129, 130, 113, 128, 113, 128, 141, 107, 125, 112, 127, 131, 112, 129, 141, 122, 117, 122, 125, 124, 128, 105, 136, 117, 138, 126, 142, 117, 123, 128, 144, 114, 134, 131, 155, 132, 122, 143, 126, 115, 119, 135, 128, 131, 125, 128, 133, 119, 122, 125, 119, 128, 123, 127, 139, 148, 133, 121, 125, 127, 118, 141, 129, 123, 135, 126, 124, 129, 119, 119, 145, 135, 142, 122, 129, 129, 152, 91, 112, 129, 112, 130, 134, 96, 126, 144, 127, 130, 128, 135, 140, 149, 122, 120, 123, 109, 118, 122, 114, 112, 124, 116, 114, 129, 137, 123, 115, 131, 121, 123, 119, 121, 125, 133, 129, 116, 111, 129, 111, 124, 127, 111, 119, 117, 122, 107, 122, 127, 113, 117, 125, 130, 131, 129, 110, 142, 138, 136, 140, 130, 155, 119, 126, 128, 117, 141, 124, 122, 112, 147, 134, 120, 120, 116, 127, 126, 125, 127, 122, 127, 119, 121, 133, 135, 132, 107, 115, 119, 125, 116, 121, 95, 115, 124, 131, 133, 108, 128, 121, 131, 117, 125, 110, 122, 115, 130, 120, 110, 118, 150, 121, 126, 124, 120, 120, 133, 118, 139, 114, 127, 132, 121, 113, 148, 135, 135, 135, 154, 139, 125, 125, 122, 111, 138, 105, 108, 132, 121, 131, 126, 140, 107, 120, 111, 119, 120, 138, 117, 112, 116, 120, 122, 131, 138, 125, 143, 138, 131, 131, 137, 123, 123, 133, 107, 136, 122, 114, 135, 136, 111, 120, 129, 121, 135, 125, 131, 120, 145, 116, 122, 130, 123, 116, 131, 119, 116, 129, 124, 130, 134, 126, 114, 115, 118, 128, 110, 122, 136, 102, 148, 137, 121, 126, 135, 116, 123, 110, 131, 130, 122, 137, 140, 135, 137, 130, 131, 129, 129, 133, 107, 124, 129, 115, 123, 136, 119, 111, 120, 131, 126, 111, 121, 134, 121, 139, 130, 141, 135, 129, 134, 116, 125, 123, 123, 140, 124, 152, 126, 130, 146, 112, 127, 120, 123, 120, 145, 123, 138, 135, 133, 119, 125, 117, 129, 126, 121, 119, 123, 120, 131, 117, 126, 127, 125, 128, 150, 131, 133, 121, 144, 134, 114, 129, 126, 125, 116, 117, 132, 125, 147, 120, 142, 132, 119, 125, 137, 132, 111, 119, 117, 121, 103, 109, 134, 114, 149, 128, 110, 150, 140, 121, 119, 119, 127, 102, 132, 124, 124, 121, 125, 127, 135, 118, 124, 133, 130, 118, 99, 127, 135, 117, 124, 132, 139, 118, 118, 126, 113, 133, 114, 129, 134, 141, 114, 125, 145, 105, 127, 106, 117, 118, 104, 119, 144, 153, 132, 91, 126, 128, 119, 128, 128, 119, 120, 125, 141, 129, 119, 142, 104, 106, 103, 131, 129, 125, 109, 105, 106, 112, 114, 114, 115, 132, 114, 127, 133, 149, 125, 124, 136, 106, 122, 116, 126, 149, 107, 115, 148, 124, 140, 136, 131, 113, 132, 111, 131, 118, 115, 108, 140, 112, 147, 114, 126, 123, 130, 136, 130, 142, 128, 149, 125, 118, 122, 153, 136, 143, 113, 111, 119, 130, 108, 122, 135, 139, 134, 113, 140, 133, 119, 126, 121, 117, 122, 128, 116, 99, 131, 140, 119, 122, 143, 130, 119, 122, 105, 124, 118, 152, 126, 115, 129, 128, 128, 111, 140, 105, 138, 133, 127, 120, 137, 126, 114, 125, 107, 118, 122, 135, 126, 130, 105, 125, 118, 121, 123, 127, 117, 106, 87, 130, 134, 126, 121, 123, 126, 137, 120, 129, 123, 119, 141, 149, 129, 132, 119, 130, 139, 102, 118, 109, 138, 125, 112, 128, 118, 127, 138, 132, 131, 127, 112, 133, 145, 113, 131, 126, 124, 115, 133, 131, 124, 155, 118, 141, 120, 115, 120, 125, 128, 117, 119, 132, 122, 127, 124, 131, 129, 119, 127, 140, 109, 137, 125, 153, 123, 148, 123, 143, 126, 124, 132, 125, 119, 115, 109, 128, 125, 120, 123, 137, 112, 131, 140, 139, 145, 138, 119, 112, 121, 127, 137, 123, 101, 152, 123, 118, 118, 117, 113, 143, 131, 137, 133, 145, 115, 124, 126, 127, 109, 130, 110, 118, 127, 139, 121, 141, 120, 115, 137, 126, 155, 137, 119, 135, 123, 122, 133, 130, 122, 118, 107, 150, 123, 126, 122, 101, 122, 113, 136, 106, 113, 117, 127, 122, 136, 121, 116, 120, 139, 116, 119, 137, 123, 128, 132, 136, 132, 119, 104, 139, 118, 119, 125, 118, 138, 129, 131, 163, 126, 102, 117, 136, 133, 117, 134, 131, 134, 115, 116, 106, 122, 118, 136, 110, 124, 140, 122, 127, 125, 145, 125, 128, 115, 134, 120, 128, 139, 134, 115, 140, 111, 122, 128, 119, 127, 129, 122, 116, 136, 126, 131, 134, 140, 135, 125, 125, 123, 137, 101, 127, 118, 120, 109, 112, 130, 129, 132, 109, 105, 139, 135, 124, 117, 110, 110, 125, 122, 137, 126, 124, 130, 129, 109, 113, 118, 141, 123, 125, 95, 94, 131, 117, 128, 108, 116, 119, 123, 133, 121, 124, 137, 122, 101, 128, 120, 127, 152, 118, 129, 122, 115, 129, 110, 121, 126, 143, 133, 115, 120, 135, 131, 118, 117, 127, 143, 111, 119, 126, 119, 129, 141, 125, 127, 121, 129, 118, 128, 126, 133, 111, 138, 117, 105, 143, 132, 134, 132, 140, 141, 128, 144, 109, 122, 144, 117, 140, 129, 139, 125, 127, 126, 136, 137, 124, 123, 149, 117, 139, 126, 137, 137, 120, 134, 120, 132, 114, 121, 127, 132, 115, 104, 131, 149, 131, 140, 113, 124, 112, 146, 111, 117, 145, 105, 116, 124, 129, 126, 128, 111, 115, 134, 129, 125, 126, 119, 133, 107, 110, 115, 135, 116, 131, 134, 107, 113, 129, 124, 129, 117, 109, 135, 99, 129, 115, 131, 131, 122, 156, 112, 118, 121, 108, 133, 130, 117, 128, 121, 140, 133, 133, 141, 121, 110, 135, 124, 119, 130, 129, 130, 128, 150, 118, 119, 141, 134, 138, 121, 112, 121, 100, 124, 130, 130, 116, 115, 102, 116, 123, 119, 136, 120, 123, 137, 131, 126, 119, 133, 102, 120, 138, 129, 140, 124, 130, 123, 110, 133, 132, 106, 132, 100, 124, 124, 116, 139, 120, 132, 129, 119, 122, 140, 125, 108, 130, 115, 135, 119, 122, 139, 130, 117, 138, 135, 117, 131, 127, 123, 139, 122, 124, 109, 131, 123, 128, 118, 106, 106, 122, 128, 113, 141, 133, 137, 123, 111, 120, 134, 109, 138, 130, 133, 105, 122, 141, 136, 108, 114, 122, 100, 119, 124, 129, 124, 100, 118, 137, 125, 131, 111, 135, 124, 128, 130, 136, 111, 114, 116, 110, 122, 129, 122, 123, 126, 119, 134, 124, 128, 106, 124, 115, 117, 123, 135, 134, 149, 116, 127, 129, 131, 121, 123, 136, 125, 124, 117, 138, 120, 115, 130, 122, 136, 109, 136, 126, 108, 109, 115, 114, 115, 138, 127, 107, 135, 127, 109, 132, 133, 131, 141, 136, 120, 127, 111, 138, 149, 117, 137, 112, 121, 95, 116, 120, 134, 129, 121, 140, 137, 122, 116, 131, 127, 131, 149, 132, 116, 125, 121, 133, 117, 127, 136, 129, 106, 120, 129, 122, 121, 130, 131, 126, 120, 126, 117, 144, 114, 115, 118, 133, 111, 140, 122, 133, 136, 128, 115, 143, 117, 111, 132, 140, 113, 137, 130, 115, 138, 139, 132, 126, 121, 150, 142, 128, 128, 133, 126, 137, 145, 107, 122, 129, 135, 106, 137, 120, 116, 126, 130, 137, 115, 151, 137, 113, 114, 112, 134, 112, 121, 118, 132, 134, 120, 141, 114, 107, 137, 131, 121, 117, 126, 107, 129, 144, 114, 134, 130, 119, 122, 133, 137, 119, 109, 119, 118, 115, 135, 148, 116, 123, 120, 122, 119, 131, 150, 150, 114, 134, 126, 118, 134, 121, 117, 121, 121, 109, 132, 136, 122, 125, 131, 143, 131, 136, 125, 127, 119, 150, 127, 156, 122, 117, 122, 135, 119, 131, 108, 132, 144, 114, 136, 108, 130, 124, 142, 130, 121, 133, 120, 133, 134, 117, 119, 130, 116, 123, 120, 131, 111, 116, 121, 105, 144, 123, 146, 124, 132, 102, 115, 123, 143, 137, 144, 147, 122, 137, 140, 123, 130, 129, 135, 128, 140, 108, 127, 129, 130, 121, 125, 124, 127, 116, 152, 121, 136, 130, 133, 141, 124, 127, 154, 134, 131, 122, 113, 110, 122, 142, 148, 139, 128, 116, 126, 120, 121, 130, 136, 133, 121, 110, 112, 120, 109, 140, 120, 115, 136, 104, 132, 132, 131, 136, 136, 117, 117, 117, 126, 130, 123, 108, 123, 140, 133, 126, 144, 131, 123, 123, 129, 133, 121, 124, 130, 114, 116, 126, 123, 139, 97, 124, 134, 115, 112, 107, 112, 134, 123, 140, 134, 126, 109, 133, 134, 118, 127, 105, 119, 113, 134, 127, 117, 131, 131, 127, 126, 123, 130, 119, 127, 134, 107, 124, 137, 134, 132, 108, 147, 100, 115, 107, 116, 111, 132, 126, 120, 141, 124, 122, 129, 127, 131, 129, 126, 106, 132, 123, 120, 120, 122, 122, 142, 139, 118, 125, 115, 123, 124, 145, 134, 126, 130, 121, 123, 124, 118, 114, 134, 119, 146, 130, 141, 128, 159, 132, 141, 117, 133, 138, 115, 116, 124, 132, 137, 133, 114, 110, 140, 129, 145, 125, 141, 118, 128, 127, 122, 116, 120, 135, 135, 121, 127, 127, 122, 130, 122, 145, 137, 123, 128, 127, 132, 129, 105, 125, 129, 128, 127, 115, 116, 142, 108, 129, 137, 126, 118, 108, 131, 121, 117, 119, 119, 109, 135, 126, 124, 135, 145, 112, 125, 105, 130, 124, 103, 126, 120, 117, 128, 144, 124, 113, 129, 137, 147, 137, 100, 118, 125, 132, 129, 132, 119, 117, 114, 132, 127, 124, 110, 121, 108, 141, 108, 110, 141, 124, 117, 134, 122, 121, 128, 131, 117, 124, 113, 118, 137, 159, 123, 122, 138, 133, 126, 124, 129, 138, 131, 153, 117, 113, 135, 144, 133, 129, 115, 121, 125, 113, 131, 135, 129, 125, 106, 134, 100, 113, 127, 122, 106, 140, 132, 128, 134, 127, 123, 120, 123, 113, 123, 114, 140, 127, 130, 116, 139, 142, 153, 118, 130, 114, 110, 112, 119, 124, 103, 121, 101, 122, 134, 126, 147, 122, 118, 126, 135, 119, 112, 112, 119, 139, 132, 119, 130, 120, 115, 114, 141, 125, 91, 135, 115, 119, 149, 104, 130, 123, 111, 149, 114, 121, 136, 133, 111, 131, 126, 112, 145, 121, 110, 129, 112, 126, 120, 120, 128, 99, 111, 111, 139, 127, 138, 124, 148, 110, 124, 126, 146, 131, 137, 97, 120, 119, 119, 108, 120, 119, 108, 124, 136, 124, 119, 118, 108, 121, 138, 118, 131, 134, 124, 126, 121, 127, 115, 119, 108, 138, 126, 117, 120, 131, 126, 117, 131, 118, 126, 136, 124, 130, 139, 121, 126, 124, 131, 128, 131, 127, 119, 125, 112, 127, 127, 134, 109, 114, 118, 122, 134, 120, 141, 119, 121, 115, 129, 122, 127, 128, 122, 130, 118, 121, 90, 127, 136, 132, 134, 115, 113, 130, 123, 123, 147, 132, 120, 149, 142, 143, 134, 110, 110, 121, 125, 112, 113, 150, 132, 116, 143, 113, 130, 136, 103, 122, 128, 129, 115, 127, 151, 129, 120, 121, 135, 118, 125, 124, 125, 128, 130, 122, 138, 131, 118, 120, 104, 130, 121, 121, 119, 118, 122, 132, 135, 128, 125, 122, 133, 122, 100, 133, 115, 116, 122, 122, 134, 114, 136, 120, 133, 126, 101, 114, 128, 120, 132, 124, 131, 95, 117, 152, 92, 134, 139, 130, 133, 134, 146, 106, 108, 145, 128, 119, 115, 122, 129, 125, 136, 135, 123, 121, 114, 119, 120, 134, 145, 127, 110, 123, 116, 131, 124, 130, 113, 114, 108, 122, 139, 110, 116, 150, 133, 131, 110, 112, 122, 122, 129, 119, 120, 127, 130, 123, 145, 109, 134, 110, 113, 132, 141, 116, 135, 104, 124, 131, 131, 131, 108, 128, 124, 114, 129, 124, 151, 113, 121, 143, 118, 112, 126, 112, 112, 126, 114, 125, 133, 125, 122, 151, 105, 116, 136, 102, 144, 133, 132, 122, 122, 116, 123, 106, 115, 138, 112, 136, 118, 135, 123, 118, 115, 124, 120, 132, 135, 122, 154, 123, 112, 124, 123, 129, 125, 140, 144, 120, 130, 131, 132, 110, 131, 129, 141, 119, 138, 121, 108, 137, 103, 119, 127, 121, 117, 135, 111, 133, 132, 122, 123, 111, 112, 114, 130, 115, 128, 109, 133, 123, 123, 127, 137, 117, 111, 127, 113, 122, 130, 118, 136, 110, 147, 113, 118, 140, 128, 124, 141, 140, 134, 124, 123, 112, 122, 130, 126, 119, 133, 131, 143, 136, 138, 127, 130, 121, 129, 121, 122, 138, 124, 114, 123, 134, 119, 129, 92, 137, 120, 124, 117, 128, 130, 116, 130, 136, 111, 117, 122, 119, 122, 135, 129, 118, 113, 124, 123, 112, 163, 114, 134, 128, 126, 118, 136, 113, 113, 140, 121, 124, 127, 122, 130, 110, 127, 130, 112, 129, 118, 132, 118, 131, 134, 135, 114, 142, 107, 111, 122, 127, 124, 113, 126, 126, 134, 127, 135, 122, 117, 126, 142, 129, 120, 138, 122, 114, 114, 118, 135, 123, 125, 118, 127, 115, 136, 127, 135, 138, 136, 132, 136, 134, 128, 120, 125, 130, 136, 145, 129, 116, 121, 135, 130, 128, 135, 118, 152, 149, 121, 126, 129, 115, 143, 123, 112, 132, 128, 126, 130, 113, 116, 117, 120, 127, 153, 135, 136, 105, 126, 143, 122, 120, 123, 142, 117, 126, 128, 131, 139, 112, 111, 135, 147, 129, 125, 131, 124, 112, 120, 123, 124, 133, 112, 122, 126, 112, 131, 150, 116, 127, 115, 133, 114, 140, 109, 123, 122, 143, 125, 105, 143, 139, 140, 120, 113, 139, 115, 141, 136, 115, 127, 117, 134, 126, 129, 138, 104, 126, 121, 115, 111, 129, 134, 142, 106, 106, 120, 110, 121, 132, 131, 110, 140, 107, 96, 147, 118, 127, 112, 120, 135, 121, 129, 106, 131, 132, 131, 110, 122, 113, 117, 110, 126, 138, 120, 136, 118, 120, 117, 131, 113, 105, 129, 126, 138, 113, 115, 131, 116, 148, 112, 122, 115, 139, 139, 119, 121, 139, 111, 114, 128, 130, 112, 144, 123, 156, 123, 118, 135, 159, 142, 126, 121, 119, 133, 113, 124, 110, 121, 118, 127, 124, 132, 123, 117, 112, 116, 126, 119, 114, 125, 124, 147, 112, 136, 119, 121, 128, 112, 131, 124, 131, 113, 127, 123, 114, 118, 127, 125, 141, 119, 135, 127, 119, 121, 125, 122, 136, 141, 145, 119, 123, 116, 128, 127, 118, 128, 98, 106, 121, 118, 136, 113, 122, 119, 122, 123, 120, 117, 112, 121, 124, 128, 101, 139, 109, 108, 126, 154, 128, 125, 122, 117, 148, 116, 139, 116, 134, 130, 114, 125, 125, 110, 107, 123, 131, 123, 124, 125, 143, 123, 122, 109, 153, 116, 135, 130, 133, 137, 144, 125, 125, 103, 141, 113, 145, 120, 127, 130, 125, 131, 137, 114, 142, 117, 115, 133, 120, 130, 113, 118, 116, 112, 113, 124, 135, 136, 129, 103, 130, 136, 112, 110, 128, 134, 123, 124, 125, 125, 154, 124, 134, 133, 139, 110, 118, 122, 121, 132, 140, 147, 130, 112, 142, 127, 114, 124, 139, 125, 135, 124, 122, 127, 139, 116, 145, 133, 127, 140, 128, 133, 120, 131, 126, 116, 132, 132, 126, 132, 137, 126, 124, 119, 127, 121, 114, 96, 135, 121, 107, 107, 124, 136, 109, 121, 104, 102, 106, 127, 125, 128, 118, 107, 122, 129, 121, 126, 122, 140, 126, 118, 135, 135, 119, 143, 125, 112, 120, 123, 131, 127, 144, 130, 138, 131, 113, 131, 113, 113, 139, 105, 122, 121, 140, 139, 142, 131, 103, 122, 131, 115, 132, 130, 146, 115, 129, 92, 124, 123, 108, 138, 138, 124, 105, 112, 111, 130, 123, 131, 130, 122, 122, 118, 111, 110, 133, 134, 119, 107, 148, 120, 125, 122, 139, 118, 138, 120, 109, 124, 134, 133, 137, 134, 109, 140, 126, 130, 119, 183, 138, 128, 109, 137, 128, 111, 131, 124, 118, 127, 119, 131, 135, 115, 119, 122, 112, 139, 129, 114, 124, 129, 111, 106, 126, 133, 141, 114, 133, 133, 135, 105, 131, 126, 111, 156, 120, 125, 116, 128, 139, 135, 129, 122, 124, 133, 137, 118, 121, 113, 123, 122, 110, 134, 129, 106, 129, 137, 116, 116, 129, 123, 111, 127, 140, 96, 121, 125, 112, 123, 131, 135, 134, 118, 128, 125, 134, 133, 127, 119, 118, 104, 123, 133, 134, 108, 130, 137, 106, 123, 137, 131, 117, 123, 139, 107, 126, 112, 117, 126, 137, 129, 147, 129, 142, 120, 142, 113, 131, 132, 128, 105, 116, 134, 123, 125, 135, 137, 140, 115, 117, 123, 127, 112, 125, 115, 144, 106, 116, 134, 123, 125, 145, 133, 135, 129, 121, 108, 127, 129, 125, 137, 122, 127, 118, 124, 117, 137, 132, 115, 118, 126, 123, 127, 127, 126, 139, 127, 109, 133, 133, 113, 128, 107, 112, 141, 117, 110, 120, 129, 130, 151, 118, 133, 117, 131, 135, 118, 129, 132, 104, 124, 125, 113, 115, 132, 123, 125, 112, 134, 103, 106, 128, 125, 136, 141, 121, 128, 145, 144, 134, 122, 132, 143, 132, 120, 110, 127, 119, 135, 143, 136, 127, 149, 111, 121, 113, 109, 134, 124, 129, 138, 111, 125, 129, 125, 119, 137, 93, 119, 138, 124, 132, 137, 123, 117, 143, 121, 127, 125, 100, 125, 126, 126, 131, 121, 120, 113, 122, 127, 129, 128, 137, 132, 114, 127, 110, 126, 136, 140, 138, 108, 110, 122, 142, 114, 136, 135, 126, 124, 126, 128, 121, 124, 147, 124, 120, 134, 143, 133, 126, 113, 115, 129, 119, 144, 136, 114, 126, 121, 126, 131, 133, 112, 155, 134, 120, 125, 126, 108, 144, 131, 118, 112, 116, 138, 111, 135, 129, 126, 133, 149, 132, 121, 103, 118, 119, 113, 129, 118, 113, 128, 137, 133, 132, 116, 117, 117, 112, 131, 105, 141, 117, 128, 124, 149, 133, 120, 125, 124, 138, 124, 128, 123, 106, 124, 112, 147, 133, 121, 118, 129, 132, 123, 127, 127, 122, 125, 125, 125, 120, 125, 135, 133, 122, 123, 144, 134, 118, 115, 111, 123, 118, 98, 116, 141, 106, 121, 113, 121, 123, 140, 124, 127, 112, 126, 128, 127, 110, 141, 134, 105, 143, 114, 147, 125, 123, 149, 142, 116, 134, 126, 125, 131, 131, 111, 113, 132, 129, 115, 120, 132, 128, 118, 127, 128, 126, 132, 122, 115, 113, 129, 145, 126, 121, 113, 105, 123, 123, 116, 125, 112, 122, 120, 125, 135, 124, 125, 114, 115, 123, 121, 126, 129, 138, 130, 140, 122, 123, 123, 135, 136, 115, 128, 130, 120, 106, 114, 121, 146, 128, 129, 121, 115, 121, 136, 138, 89, 119, 150, 129, 110, 99, 132, 136, 115, 138, 117, 127, 134, 115, 127, 137, 139, 117, 147, 132, 126, 127, 122, 108, 128, 117, 120, 117, 112, 108, 119, 99, 129, 123, 119, 136, 117, 119, 123, 124, 124, 120, 121, 128, 99, 115, 127, 112, 134, 128, 133, 112, 124, 120, 160, 156, 129, 128, 128, 129, 124, 156, 126, 117, 132, 125, 139, 130, 116, 132, 128, 133, 142, 132, 114, 119, 134, 119, 124, 123, 126, 140, 123, 127, 130, 124, 125, 104, 121, 118, 142, 137, 114, 124, 116, 139, 135, 154, 122, 107, 118, 130, 112, 131, 120, 134, 128, 123, 123, 110, 117, 124, 125, 137, 127, 130, 117, 123, 123, 145, 125, 130, 106, 130, 125, 112, 109, 121, 121, 110, 135, 99, 128, 125, 130, 111, 127, 117, 119, 138, 143, 118, 143, 121, 118, 125, 128, 141, 139, 138, 129, 120, 132, 144, 125, 122, 114, 140, 144, 127, 124, 139, 149, 147, 116, 121, 150, 123, 124, 136, 112, 132, 127, 127, 117, 118, 118, 141, 131, 129, 134, 134, 131, 142, 120, 137, 133, 123, 127, 126, 122, 137, 140, 113, 129, 138, 120, 122, 134, 127, 152, 120, 116, 107, 125, 121, 117, 130, 130, 120, 124, 118, 123, 123, 120, 124, 138, 125, 125, 130, 113, 128, 127, 109, 123, 125, 116, 115, 134, 128, 129, 122, 135, 132, 125, 114, 130, 143, 122, 120, 113, 145, 127, 128, 127, 114, 137, 105, 113, 119, 135, 130, 129, 136, 138, 117, 126, 133, 149, 129, 106, 113, 113, 127, 123, 119, 127, 128, 130, 118, 117, 131, 135, 130, 132, 122, 143, 132, 121, 121, 129, 113, 124, 125, 127, 125, 117, 133, 136, 130, 131, 121, 119, 131, 128, 137, 126, 106, 105, 109, 124, 127, 136, 111, 128, 113, 139, 153, 139, 120, 119, 112, 107, 126, 117, 129, 123, 145, 120, 138, 127, 129, 120, 128, 132, 116, 128, 112, 125, 119, 131, 109, 122, 125, 136, 126, 128, 122, 143, 130, 124, 127, 121, 122, 139, 104, 123, 134, 118, 135, 124, 110, 127, 122, 146, 129, 128, 129, 139, 112, 119, 136, 126, 127, 115, 123, 113, 129, 128, 112, 112, 103, 127, 130, 134, 133, 126, 124, 118, 131, 116, 129, 120, 142, 127, 135, 118, 123, 117, 110, 129, 110, 119, 138, 138, 125, 117, 116, 119, 136, 120, 118, 136, 125, 132, 115, 117, 131, 100, 131, 131, 126, 119, 142, 132, 130, 108, 125, 132, 134, 122, 132, 135, 119, 119, 124, 129, 159, 131, 126, 98, 123, 131, 119, 133, 130, 111, 130, 126, 137, 118, 139, 135, 149, 150, 117, 123, 144, 123, 118, 129, 117, 130, 114, 122, 147, 142, 150, 128, 121, 130, 132, 101, 139, 106, 133, 137, 120, 153, 123, 144, 106, 122, 127, 133, 101, 137, 146, 138, 123, 136, 122, 133, 110, 118, 120, 137, 114, 135, 138, 122, 124, 117, 133, 117, 93, 121, 132, 111, 131, 107, 118, 125, 120, 125, 139, 120, 118, 120, 117, 128, 112, 121, 130, 122, 136, 129, 141, 129, 123, 134, 132, 120, 119, 134, 137, 125, 132, 141, 132, 127, 142, 130, 129, 128, 118, 116, 117, 130, 121, 135, 128, 104, 120, 119, 123, 124, 131, 132, 131, 125, 156, 111, 118, 118, 111, 138, 134, 146, 122, 129, 116, 121, 107, 120, 147, 132, 121, 125, 115, 112, 115, 136, 112, 121, 131, 143, 108, 125, 134, 107, 124, 120, 116, 129, 118, 114, 122, 141, 131, 129, 123, 130, 128, 132, 127, 121, 127, 131, 116, 130, 118, 122, 117, 134, 118, 143, 112, 114, 126, 104, 128, 130, 143, 126, 117, 123, 125, 125, 106, 102, 132, 134, 131, 130, 93, 132, 136, 128, 107, 139, 114, 123, 109, 124, 112, 118, 127, 118, 127, 126, 120, 120, 141, 125, 119, 112, 120, 100, 140, 126, 134, 132, 111, 149, 118, 127, 121, 125, 136, 133, 130, 124, 105, 111, 120, 113, 128, 125, 138, 112, 121, 141, 127, 119, 124, 129, 132, 120, 109, 121, 136, 115, 125, 122, 112, 112, 117, 115, 113, 121, 119, 134, 119, 119, 131, 94, 137, 123, 136, 138, 121, 131, 128, 106, 120, 133, 134, 121, 131, 131, 129, 126, 117, 126, 123, 117, 123, 130, 119, 136, 134, 119, 129, 131, 134, 126, 137, 131, 130, 118, 122, 142, 133, 110, 155, 121, 124, 123, 112, 145, 131, 127, 116, 132, 126, 148, 127, 131, 113, 128, 118, 119, 128, 110, 125, 125, 121, 126, 116, 131, 128, 138, 117, 126, 157, 128, 122, 127, 112, 124, 123, 107, 136, 119, 125, 137, 137, 116, 132, 134, 122, 119, 123, 133, 129, 134, 121, 115, 128, 116, 120, 134, 125, 134, 127, 142, 128, 113, 123, 123, 121, 142, 127, 131, 132, 115, 127, 120, 117, 121, 121, 154, 140, 129, 128, 133, 132, 117, 146, 117, 110, 113, 142, 124, 118, 117, 119, 120, 118, 135, 144, 140, 131, 128, 133, 121, 119, 132, 131, 127, 128, 124, 134, 129, 133, 142, 136, 134, 117, 118, 116, 122, 108, 121, 131, 129, 154, 125, 126, 107, 111, 133, 121, 143, 128, 106, 126, 111, 118, 130, 136, 115, 117, 116, 130, 134, 131, 122, 121, 140, 128, 132, 112, 134, 143, 117, 114, 117, 115, 133, 115, 120, 135, 124, 121, 119, 107, 121, 121, 123, 126, 137, 120, 137, 141, 124, 135, 121, 128, 122, 111, 125, 126, 124, 138, 123, 154, 121, 132, 131, 146, 128, 124, 140, 122, 110, 103, 123, 130, 123, 126, 140, 122, 118, 114, 123, 141, 136, 117, 116, 128, 118, 126, 128, 123, 120, 123, 129, 131, 149, 120, 127, 138, 127, 133, 131, 137, 133, 112, 137, 120, 130, 148, 101, 141, 129, 131, 146, 107, 134, 132, 127, 131, 132, 137, 120, 122, 122, 134, 131, 115, 118, 129, 123, 135, 129, 131, 134, 116, 137, 124, 128, 138, 130, 134, 123, 121, 127, 114, 121, 133, 125, 115, 123, 126, 139, 112, 124, 111, 135, 126, 126, 108, 123, 121, 129, 155, 136, 124, 130, 141, 127, 126, 132, 126, 130, 129, 123, 119, 127, 138, 121, 126, 127, 129, 101, 127, 143, 116, 114, 117, 120, 114, 126, 114, 116, 102, 142, 112, 133, 141, 145, 126, 118, 133, 125, 127, 109, 113, 125, 122, 109, 130, 116, 138, 104, 122, 136, 127, 120, 121, 149, 133, 136, 112, 127, 117, 111, 101, 120, 137, 125, 109, 127, 133, 113, 112, 129, 130, 154, 115, 125, 133, 123, 122, 137, 130, 109, 128, 107, 108, 123, 140, 145, 130, 121, 118, 122, 126, 140, 131, 121, 112, 133, 144, 121, 114, 127, 123, 130, 131, 127, 120, 125, 117, 124, 120, 114, 128, 129, 115, 122, 124, 124, 116, 139, 112, 122, 114, 131, 123, 104, 126, 126, 136, 130, 129, 125, 112, 140, 124, 100, 158, 127, 105, 121, 127, 125, 114, 121, 128, 131, 119, 133, 130, 109, 127, 119, 128, 118, 123, 114, 145, 127, 118, 98, 117, 120, 98, 125, 119, 122, 125, 125, 148, 141, 123, 124, 131, 133, 123, 116, 127, 128, 136, 113, 101, 119, 133, 106, 116, 126, 111, 121, 134, 114, 123, 150, 108, 136, 139, 138, 112, 118, 105, 123, 106, 121, 137, 117, 126, 115, 133, 126, 134, 124, 117, 139, 142, 117, 120, 127, 126, 128, 127, 126, 110, 114, 128, 125, 113, 139, 133, 133, 142, 115, 111, 120, 122, 147, 133, 131, 123, 132, 137, 130, 122, 107, 132, 120, 123, 118, 121, 123, 149, 123, 113, 110, 121, 117, 145, 126, 115, 128, 139, 132, 124, 119, 123, 123, 119, 131, 112, 121, 115, 127, 139, 133, 132, 144, 160, 131, 128, 131, 130, 133, 152, 117, 121, 144, 114, 123, 124, 117, 124, 126, 110, 123, 120, 132, 126, 134, 133, 117, 124, 128, 109, 132, 123, 119, 113, 129, 117, 134, 135, 129, 134, 106, 111, 143, 107, 126, 115, 130, 110, 128, 126, 116, 131, 115, 114, 132, 140, 124, 126, 124, 125, 125, 128, 130, 138, 128, 132, 129, 123, 122, 105, 106, 121, 114, 130, 137, 140, 139, 132, 145, 111, 125, 135, 121, 121, 131, 129, 139, 113, 105, 131, 119, 127, 128, 114, 122, 117, 106, 127, 112, 140, 127, 129, 135, 125, 124, 129, 122, 123, 119, 126, 123, 118, 102, 123, 127, 118, 132, 116, 147, 137, 122, 120, 116, 116, 137, 123, 114, 118, 135, 102, 141, 122, 124, 142, 127, 129, 130, 127, 126, 126, 120, 137, 133, 129, 132, 123, 131, 118, 114, 125, 136, 132, 142, 126, 144, 106, 114, 122, 112, 125, 121, 133, 149, 106, 129, 128, 124, 116, 135, 123, 117, 148, 125, 137, 130, 133, 122, 110, 121, 117, 125, 135, 115, 108, 117, 127, 132, 122, 117, 122, 113, 111, 124, 129, 116, 138, 120, 122, 126, 118, 117, 126, 136, 124, 130, 122, 143, 116, 125, 144, 129, 122, 122, 132, 117, 133, 119, 135, 138, 135, 127, 133, 119, 125, 135, 133, 141, 109, 120, 111, 114, 114, 126, 115, 118, 105, 122, 129, 119, 118, 127, 130, 125, 127, 136, 110, 106, 126, 117, 119, 119, 126, 123, 131, 140, 133, 121, 129, 130, 134, 131, 118, 135, 120, 140, 132, 126, 126, 125, 112, 124, 129, 110, 119, 118, 132, 136, 140, 108, 122, 125, 124, 126, 143, 111, 162, 127, 121, 119, 122, 117, 140, 108, 132, 129, 153, 134, 120, 127, 116, 132, 120, 135, 127, 114, 148, 118, 121, 125, 105, 123, 152, 119, 126, 127, 109, 118, 125, 111, 109, 129, 116, 114, 165, 123, 122, 139, 133, 122, 131, 121, 119, 123, 125, 145, 137, 115, 113, 119, 107, 114, 127, 126, 107, 108, 119, 123, 127, 119, 135, 137, 126, 129, 121, 132, 118, 114, 123, 153, 115, 114, 126, 115, 125, 124, 126, 106, 135, 138, 118, 140, 126, 138, 128, 150, 125, 131, 136, 111, 131, 132, 120, 136, 116, 131, 121, 142, 122, 108, 123, 133, 121, 128, 122, 125, 134, 125, 136, 119, 137, 125, 134, 135, 130, 122, 138, 139, 126, 130, 124, 111, 129, 125, 123, 118, 115, 115, 123, 125, 126, 132, 129, 114, 127, 136, 116, 129, 128, 138, 118, 104, 91, 120, 125, 114, 132, 123, 118, 123, 147, 135, 128, 117, 128, 124, 137, 117, 127, 113, 119, 134, 122, 132, 115, 131, 132, 121, 128, 124, 133, 111, 137, 129, 118, 118, 121, 132, 114, 136, 133, 144, 129, 120, 124, 121, 118, 126, 118, 122, 110, 121, 119, 127, 129, 107, 114, 131, 102, 128, 136, 127, 112, 139, 123, 112, 122, 127, 124, 119, 108, 110, 115, 125, 135, 133, 119, 137, 145, 112, 114, 113, 134, 130, 128, 132, 118, 126, 121, 134, 125, 108, 123, 118, 130, 127, 111, 133, 109, 127, 126, 115, 114, 126, 126, 128, 121, 150, 118, 119, 115, 110, 138, 116, 120, 136, 140, 135, 127, 129, 125, 105, 134, 119, 112, 110, 123, 128, 134, 117, 126, 134, 128, 129, 122, 129, 114, 123, 129, 113, 123, 127, 131, 130, 124, 109, 139, 138, 124, 145, 115, 131, 128, 151, 112, 120, 128, 125, 126, 115, 118, 110, 111, 133, 122, 126, 134, 99, 126, 122, 135, 152, 145, 138, 135, 132, 123, 135, 135, 116, 129, 147, 130, 96, 129, 131, 114, 104, 127, 116, 144, 132, 127, 128, 134, 121, 109, 135, 120, 130, 123, 129, 123, 143, 130, 133, 131, 105, 109, 126, 113, 130, 121, 113, 128, 112, 122, 115, 132, 123, 136, 121, 120, 122, 127, 128, 114, 144, 112, 115, 135, 131, 119, 126, 115, 129, 138, 123, 118, 116, 118, 127, 123, 116, 135, 116, 136, 129, 109, 128, 119, 125, 127, 117, 127, 126, 121, 123, 135, 128, 128, 103, 111, 109, 111, 117, 134, 103, 132, 120, 121, 111, 126, 123, 128, 139, 142, 121, 118, 115, 121, 139, 93, 136, 113, 139, 129, 118, 126, 133, 141, 128, 117, 142, 125, 139, 124, 115, 127, 152, 130, 126, 118, 126, 132, 118, 118, 122, 115, 134, 125, 115, 129, 148, 114, 125, 147, 136, 142, 121, 135, 114, 127, 128, 133, 130, 128, 131, 119, 146, 136, 112, 116, 134, 115, 128, 156, 113, 134, 139, 131, 132, 93, 113, 125, 116, 122, 129, 114, 113, 117, 121, 107, 130, 102, 143, 123, 125, 128, 126, 123, 106, 110, 136, 121, 117, 113, 117, 121, 114, 121, 123, 132, 130, 114, 131, 143, 132, 130, 132, 137, 124, 113, 127, 131, 111, 112, 133, 126, 137, 130, 132, 116, 115, 134, 116, 122, 107, 125, 121, 140, 122, 105, 140, 136, 101, 133, 126, 132, 125, 104, 138, 128, 144, 133, 132, 125, 134, 141, 122, 131, 125, 142, 125, 132, 121, 128, 120, 115, 108, 126, 140, 134, 132, 144, 144, 132, 136, 106, 121, 113, 126, 149, 104, 123, 123, 124, 106, 119, 139, 119, 109, 142, 110, 123, 115, 117, 115, 115, 129, 119, 133, 129, 115, 115, 129, 130, 127, 140, 128, 119, 118, 124, 117, 121, 131, 128, 121, 120, 105, 124, 118, 115, 130, 134, 123, 116, 127, 123, 135, 124, 114, 129, 130, 128, 128, 129, 125, 126, 126, 119, 123, 129, 149, 140, 128, 130, 126, 129, 120, 109, 125, 136, 115, 146, 123, 115, 136, 113, 133, 115, 124, 131, 129, 118, 102, 116, 127, 113, 124, 158, 127, 111, 137, 122, 119, 134, 121, 129, 136, 137, 149, 133, 126, 132, 125, 136, 127, 121, 119, 136, 108, 133, 137, 125, 119, 125, 104, 110, 138, 114, 125, 131, 123, 133, 111, 123, 128, 125, 126, 116, 121, 130, 119, 127, 127, 119, 121, 125, 117, 118, 127, 118, 138, 128, 132, 108, 109, 130, 119, 143, 127, 140, 125, 107, 118, 119, 129, 116, 129, 135, 109, 127, 112, 119, 121, 131, 132, 140, 142, 126, 111, 119, 117, 117, 126, 124, 123, 122, 130, 119, 123, 122, 131, 117, 128, 131, 136, 126, 104, 134, 125, 125, 139, 135, 120, 143, 138, 115, 152, 121, 136, 120, 126, 127, 117, 123, 131, 137, 138, 123, 146, 112, 131, 113, 124, 120, 130, 135, 115, 116, 117, 119, 110, 110, 124, 137, 124, 132, 143, 130, 130, 116, 126, 129, 127, 127, 120, 122, 127, 140, 119, 127, 129, 126, 111, 123, 126, 118, 131, 114, 126, 115, 136, 117, 133, 123, 113, 100, 113, 127, 119, 148, 124, 108, 117, 135, 127, 125, 106, 123, 132, 129, 119, 129, 116, 119, 127, 139, 137, 129, 137, 122, 135, 101, 133, 123, 123, 121, 122, 134, 124, 129, 126, 137, 135, 126, 121, 122, 129, 110, 129, 133, 100, 130, 129, 132, 119, 127, 135, 123, 114, 150, 128, 135, 131, 115, 117, 128, 126, 128, 117, 142, 130, 132, 122, 145, 150, 131, 116, 130, 129, 121, 114, 119, 140, 114, 138, 142, 119, 129, 122, 120, 120, 140, 135, 127, 119, 125, 129, 107, 128, 120, 144, 118, 130, 140, 130, 130, 125, 134, 132, 118, 124, 128, 131, 127, 127, 135, 127, 124, 123, 132, 122, 135, 129, 126, 123, 123, 128, 133, 107, 149, 114, 113, 132, 111, 123, 113, 121, 128, 120, 142, 110, 108, 131, 128, 114, 135, 163, 109, 116, 113, 137, 123, 119, 140, 94, 104, 113, 115, 125, 136, 122, 106, 114, 137, 130, 129, 136, 111, 132, 128, 143, 124, 132, 133, 124, 112, 151, 130, 121, 134, 128, 149, 118, 139, 123, 131, 133, 124, 116, 131, 128, 127, 136, 122, 126, 130, 125, 141, 128, 119, 134, 130, 127, 98, 126, 124, 109, 122, 122, 131, 129, 133, 116, 119, 140, 131, 119, 122, 114, 131, 116, 140, 133, 121, 133, 116, 130, 124, 139, 139, 141, 129, 119, 125, 124, 132, 133, 113, 114, 130, 124, 107, 120, 121, 162, 141, 130, 114, 139, 110, 121, 123, 124, 131, 118, 133, 132, 126, 138, 121, 100, 126, 132, 136, 124, 126, 115, 119, 115, 118, 136, 123, 147, 131, 120, 129, 121, 131, 128, 140, 116, 131, 145, 127, 121, 126, 127, 132, 111, 110, 131, 125, 131, 119, 135, 116, 114, 127, 141, 148, 129, 130, 130, 114, 138, 134, 129, 124, 120, 149, 120, 136, 125, 119, 121, 126, 134, 125, 124, 120, 134, 131, 106, 141, 116, 120, 136, 143, 122, 140, 136, 121, 132, 124, 113, 146, 108, 132, 141, 121, 128, 113, 114, 109, 123, 129, 134, 121, 131, 120, 133, 120, 112, 119, 141, 126, 125, 135, 120, 129, 110, 136, 119, 138, 126, 134, 133, 130, 130, 129, 147, 128, 127, 116, 140, 130, 141, 109, 125, 118, 118, 130, 106, 127, 132, 115, 97, 122, 123, 132, 109, 134, 114, 134, 129, 123, 126, 128, 134, 137, 135, 120, 132, 131, 128, 112, 127, 121, 131, 145, 136, 118, 132, 134, 128, 137, 131, 120, 140, 126, 119, 110, 116, 132, 118, 110, 130, 116, 124, 108, 131, 126, 122, 116, 120, 119, 133, 122, 133, 148, 121, 154, 123, 118, 124, 127, 142, 126, 124, 135, 147, 116, 121, 142, 148, 132, 134, 144, 127, 143, 106, 123, 115, 123, 105, 125, 130, 139, 134, 118, 123, 119, 130, 136, 132, 119, 147, 129, 112, 127, 134, 139, 119, 127, 123, 118, 123, 117, 111, 132, 117, 123, 126, 120, 112, 108, 130, 123, 118, 125, 128, 133, 143, 124, 114, 98, 124, 129, 115, 135, 131, 134, 118, 125, 140, 117, 127, 123, 120, 129, 115, 138, 130, 140, 122, 116, 121, 112, 126, 126, 116, 128, 125, 121, 134, 134, 123, 108, 142, 95, 124, 122, 126, 123, 121, 127, 125, 121, 129, 132, 118, 120, 135, 126, 122, 120, 145, 120, 137, 131, 126, 123, 114, 118, 140, 130, 150, 112, 131, 122, 126, 106, 132, 136, 141, 112, 114, 114, 125, 133, 115, 116, 127, 126, 105, 133, 123, 103, 119, 118, 126, 134, 126, 121, 128, 128, 120, 115, 137, 115, 128, 123, 113, 117, 127, 119, 128, 118, 114, 127, 135, 125, 143, 126, 113, 113, 141, 130, 143, 116, 130, 100, 133, 122, 123, 127, 113, 123, 124, 120, 136, 137, 110, 107, 118, 139, 121, 122, 125, 150, 129, 132, 94, 131, 123, 132, 134, 118, 147, 138, 119, 127, 106, 131, 124, 132, 121, 121, 142, 134, 136, 128, 118, 108, 130, 117, 107, 120, 128, 116, 110, 141, 121, 123, 125, 142, 113, 121, 130, 119, 129, 122, 109, 147, 130, 132, 125, 117, 139, 108, 127, 113, 128, 121, 148, 118, 124, 140, 114, 125, 126, 121, 129, 122, 122, 123, 127, 113, 120, 110, 123, 128, 130, 137, 136, 126, 121, 120, 104, 115, 136, 117, 120, 124, 130, 116, 139, 108, 130, 108, 136, 136, 121, 116, 131, 135, 137, 125, 121, 110, 117, 120, 142, 109, 131, 98, 109, 127, 114, 142, 115, 126, 130, 127, 110, 121, 116, 126, 117, 108, 119, 126, 120, 110, 116, 121, 113, 122, 125, 128, 142, 132, 127, 124, 132, 104, 125, 147, 146, 104, 117, 106, 116, 146, 134, 124, 127, 114, 144, 131, 126, 118, 129, 117, 130, 129, 116, 132, 127, 131, 134, 122, 119, 122, 116, 122, 146, 138, 142, 141, 130, 133, 121, 109, 151, 111, 123, 132, 132, 145, 118, 107, 119, 116, 121, 140, 117, 122, 125, 132, 122, 108, 107, 118, 120, 135, 121, 143, 108, 119, 144, 111, 119, 126, 126, 135, 130, 135, 123, 129, 120, 118, 120, 129, 130, 140, 116, 127, 111, 128, 121, 136, 121, 133, 135, 143, 126, 113, 115, 116, 132, 124, 107, 133, 121, 127, 126, 130, 126, 124, 116, 123, 129, 130, 130, 117, 111, 133, 145, 130, 128, 120, 129, 114, 141, 107, 107, 120, 148, 118, 136, 117, 120, 120, 130, 115, 116, 102, 119, 120, 128, 120, 134, 134, 123, 124, 111, 119, 111, 121, 120, 116, 116, 99, 108, 136, 129, 143, 120, 115, 118, 139, 118, 134, 122, 133, 135, 119, 139, 120, 120, 137, 113, 142, 120, 144, 116, 121, 130, 141, 129, 141, 121, 122, 112, 127, 124, 134, 111, 122, 130, 116, 135, 124, 121, 123, 116, 141, 93, 126, 136, 123, 137, 122, 109, 108, 124, 142, 112, 117, 125, 138, 121, 126, 130, 129, 117, 138, 119, 120, 136, 103, 119, 129, 127, 121, 130, 117, 121, 120, 135, 125, 139, 129, 129, 111, 117, 149, 128, 126, 132, 120, 136, 140, 110, 117, 131, 122, 130, 118, 130, 132, 137, 122, 128, 114, 128, 123, 107, 117, 133, 135, 96, 114, 138, 121, 109, 122, 121, 129, 112, 121, 150, 96, 146, 118, 140, 140, 117, 99, 136, 110, 125, 103, 116, 146, 127, 129, 130, 102, 124, 118, 138, 121, 134, 109, 114, 107, 128, 124, 162, 116, 136, 132, 143, 130, 115, 127, 120, 118, 137, 107, 119, 126, 127, 131, 123, 128, 129, 121, 111, 128, 139, 128, 121, 128, 135, 139, 119, 133, 136, 150, 120, 108, 131, 135, 126, 105, 116, 145, 119, 123, 137, 118, 115, 129, 106, 114, 126, 118, 135, 117, 124, 131, 110, 150, 151, 117, 118, 145, 108, 114, 128, 130, 111, 109, 112, 146, 123, 141, 116, 122, 131, 120, 106, 126, 108, 128, 123, 117, 119, 125, 151, 106, 133, 139, 129, 121, 125, 126, 120, 123, 151, 124, 123, 113, 132, 132, 139, 114, 129, 128, 117, 131, 116, 121, 118, 138, 132, 119, 130, 126, 133, 116, 127, 132, 131, 135, 121, 142, 131, 119, 113, 117, 118, 120, 135, 112, 116, 122, 133, 135, 110, 125, 127, 124, 126, 129, 102, 127, 132, 140, 120, 133, 141, 138, 112, 136, 118, 136, 120, 142, 122, 132, 121, 115, 138, 126, 141, 121, 100, 137, 112, 120, 128, 137, 145, 92, 115, 134, 122, 116, 109, 124, 115, 131, 138, 137, 132, 118, 152, 131, 133, 122, 115, 122, 129, 129, 136, 115, 106, 133, 133, 111, 116, 128, 131, 127, 107, 106, 120, 124, 133, 121, 139, 136, 106, 117, 120, 140, 138, 114, 131, 126, 123, 121, 146, 127, 113, 132, 138, 117, 129, 121, 118, 107, 119, 126, 126, 130, 113, 130, 128, 126, 119, 129, 101, 133, 130, 143, 117, 126, 115, 114, 127, 133, 135, 114, 128, 109, 126, 137, 155, 133, 124, 137, 125, 114, 118, 127, 141, 125, 120, 127, 138, 125, 131, 120, 126, 123, 128, 123, 138, 125, 143, 125, 98, 104, 121, 97, 120, 123, 128, 116, 125, 123, 106, 118, 133, 136, 121, 109, 118, 127, 134, 143, 146, 135, 123, 138, 123, 143, 127, 121, 150, 115, 140, 136, 127, 137, 124, 132, 135, 131, 118, 148, 131, 138, 140, 119, 126, 129, 133, 153, 117, 120, 123, 116, 124, 141, 126, 113, 116, 137, 137, 128, 119, 120, 128, 116, 144, 129, 120, 135, 115, 127, 113, 110, 126, 116, 138, 127, 126, 111, 126, 112, 124, 143, 118, 130, 131, 131, 126, 139, 110, 115, 116, 126, 133, 109, 132, 145, 137, 122, 119, 131, 137, 119, 121, 138, 139, 118, 108, 151, 119, 119, 126, 117, 103, 109, 107, 126, 113, 155, 116, 142, 124, 126, 123, 128, 124, 136, 138, 124, 103, 131, 133, 130, 142, 127, 108, 142, 125, 109, 133, 130, 126, 122, 123, 131, 137, 134, 128, 130, 125, 129, 120, 131, 112, 137, 128, 130, 122, 127, 114, 108, 111, 129, 137, 135, 138, 102, 115, 129, 140, 122, 117, 118, 148, 123, 118, 125, 132, 118, 144, 129, 122, 126, 123, 135, 131, 131, 97, 99, 130, 129, 126, 130, 138, 114, 128, 138, 114, 110, 113, 140, 130, 131, 122, 123, 136, 130, 129, 112, 118, 134, 133, 109, 123, 137, 118, 126, 144, 109, 134, 129, 127, 120, 138, 110, 116, 117, 118, 139, 132, 130, 119, 121, 112, 122, 142, 150, 133, 115, 122, 117, 116, 124, 129, 113, 125, 146, 137, 136, 130, 97, 128, 128, 125, 120, 136, 142, 120, 116, 119, 110, 141, 131, 125, 125, 143, 119, 127, 112, 127, 142, 133, 120, 133, 99, 106, 132, 110, 139, 151, 120, 121, 132, 121, 125, 122, 129, 129, 112, 107, 124, 121, 114, 139, 123, 129, 126, 129, 107, 127, 114, 119, 129, 143, 131, 114, 135, 115, 136, 123, 114, 132, 137, 104, 136, 116, 127, 111, 118, 122, 123, 128, 151, 137, 143, 134, 124, 111, 119, 136, 117, 111, 121, 132, 115, 130, 123, 122, 134, 133, 118, 137, 138, 138, 129, 137, 102, 130, 119, 119, 122, 116, 116, 125, 110, 119, 112, 149, 119, 112, 111, 127, 134, 127, 123, 126, 95, 144, 127, 140, 140, 130, 136, 133, 118, 121, 126, 124, 123, 140, 123, 124, 119, 139, 110, 133, 134, 135, 123, 141, 112, 113, 119, 112, 106, 137, 128, 105, 128, 116, 128, 147, 121, 119, 111, 142, 131, 124, 119, 119, 112, 134, 121, 127, 126, 140, 125, 113, 108, 118, 128, 127, 131, 137, 123, 105, 125, 128, 109, 131, 102, 116, 119, 144, 119, 121, 111, 129, 124, 123, 109, 141, 133, 129, 125, 127, 144, 129, 124, 120, 107, 122, 120, 154, 131, 126, 121, 120, 124, 112, 100, 132, 123, 103, 152, 144, 136, 130, 128, 125, 142, 107, 127, 120, 109, 116, 128, 139, 121, 126, 140, 113, 129, 125, 132, 131, 103, 127, 122, 132, 135, 113, 139, 123, 141, 127, 136, 124, 126, 112, 121, 110, 114, 140, 138, 119, 117, 133, 127, 131, 126, 112, 95, 123, 120, 110, 128, 121, 127, 112, 115, 127, 119, 110, 116, 130, 129, 133, 114, 114, 120, 128, 111, 109, 125, 118, 125, 139, 116, 124, 126, 135, 107, 123, 125, 128, 138, 130, 98, 116, 126, 138, 132, 130, 132, 117, 105, 137, 135, 118, 119, 146, 149, 146, 119, 134, 113, 112, 118, 119, 124, 122, 130, 155, 126, 124, 126, 125, 120, 125, 128, 120, 129, 126, 130, 122, 136, 119, 125, 141, 122, 133, 125, 113, 124, 135, 128, 105, 122, 125, 123, 127, 118, 133, 117, 122, 133, 124, 123, 143, 133, 148, 125, 127, 105, 117, 129, 136, 143, 119, 119, 116, 132, 132, 146, 132, 106, 130, 132, 121, 127, 136, 132, 121, 131, 110, 119, 117, 143, 128, 123, 129, 126, 130, 107, 114, 123, 139, 120, 135, 128, 117, 131, 120, 122, 134, 123, 124, 128, 142, 135, 135, 126, 122, 121, 112, 133, 131, 122, 119, 120, 129, 125, 132, 122, 123, 133, 117, 116, 128, 145, 112, 139, 125, 113, 128, 123, 109, 128, 117, 136, 133, 128, 99, 110, 121, 135, 122, 117, 163, 125, 129, 126, 119, 144, 128, 139, 118, 105, 119, 116, 116, 117, 122, 135, 126, 112, 134, 130, 118, 122, 144, 127, 127, 128, 114, 130, 130, 144, 136, 136, 139, 124, 133, 115, 121, 119, 126, 126, 118, 129, 122, 130, 142, 133, 118, 145, 112, 118, 130, 129, 142, 124, 147, 121, 125, 137, 125, 120, 138, 94, 124, 108, 142, 126, 134, 131, 122, 149, 129, 130, 140, 109, 91, 138, 116, 126, 143, 116, 125, 156, 112, 130, 132, 138, 134, 129, 113, 142, 128, 118, 152, 115, 132, 129, 114, 128, 115, 125, 128, 111, 128, 131, 139, 123, 121, 134, 122, 122, 125, 118, 143, 125, 152, 121, 119, 114, 129, 128, 117, 113, 118, 124, 137, 127, 115, 118, 119, 113, 119, 123, 137, 117, 114, 118, 146, 130, 123, 126, 128, 112, 131, 139, 114, 122, 116, 150, 135, 118, 116, 118, 127, 125, 133, 134, 120, 134, 99, 112, 117, 116, 121, 115, 135, 121, 162, 110, 133, 127, 123, 130, 124, 129, 129, 131, 122, 118, 130, 117, 139, 125, 121, 121, 114, 114, 129, 135, 134, 120, 125, 138, 115, 120, 132, 105, 114, 120, 105, 108, 135, 113, 118, 117, 108, 154, 139, 148, 138, 133, 110, 123, 114, 138, 129, 116, 106, 134, 117, 138, 124, 116, 129, 115, 136, 127, 127, 107, 130, 124, 131, 127, 132, 108, 115, 115, 140, 121, 121, 124, 142, 117, 125, 145, 125, 135, 111, 114, 130, 124, 128, 131, 120, 126, 127, 130, 121, 126, 126, 120, 124, 125, 118, 140, 117, 129, 137, 119, 156, 128, 127, 114, 149, 138, 129, 128, 124, 121, 122, 125, 121, 123, 99, 119, 120, 126, 120, 113, 126, 124, 126, 127, 115, 118, 114, 116, 105, 104, 153, 125, 124, 122, 133, 130, 118, 144, 137, 131, 131, 122, 112, 125, 119, 116, 126, 124, 132, 112, 130, 119, 123, 126, 123, 118, 126, 122, 97, 128, 123, 128, 132, 107, 95, 128, 110, 132, 123, 141, 120, 129, 99, 129, 118, 135, 122, 125, 147, 124, 133, 125, 133, 118, 124, 145, 133, 133, 112, 128, 125, 122, 114, 124, 102, 134, 115, 117, 120, 131, 127, 129, 120, 151, 107, 119, 135, 118, 134, 144, 116, 130, 125, 147, 142, 126, 122, 150, 119, 128, 107, 122, 148, 121, 141, 129, 135, 133, 109, 107, 143, 112, 137, 138, 117, 124, 118, 113, 122, 117, 127, 123, 155, 131, 117, 114, 126, 141, 119, 123, 126, 124, 137, 128, 135, 114, 152, 126, 131, 118, 127, 128, 129, 102, 111, 129, 123, 136, 131, 119, 144, 131, 123, 128, 128, 141, 120, 128, 102, 121, 133, 130, 123, 111, 116, 137, 114, 127, 125, 129, 121, 133, 145, 139, 113, 130, 114, 102, 125, 133, 113, 124, 105, 131, 133, 157, 121, 107, 118, 131, 115, 117, 111, 122, 127, 129, 124, 122, 135, 119, 140, 132, 124, 129, 108, 123, 130, 125, 115, 106, 130, 135, 121, 118, 126, 124, 117, 129, 133, 135, 144, 128, 116, 127, 128, 125, 126, 129, 116, 131, 118, 104, 130, 112, 106, 120, 114, 136, 117, 117, 136, 114, 126, 112, 126, 142, 119, 144, 132, 115, 116, 123, 128, 142, 119, 135, 117, 114, 117, 134, 125, 135, 140, 132, 106, 132, 117, 152, 126, 119, 126, 115, 115, 139, 133, 115, 140, 140, 122, 114, 131, 128, 140, 113, 120, 126, 130, 134, 118, 128, 129, 122, 126, 150, 144, 109, 120, 101, 117, 124, 117, 135, 123, 128, 131, 138, 132, 125, 132, 113, 143, 138, 108, 141, 132, 115, 136, 125, 118, 125, 119, 144, 138, 125, 134, 125, 134, 124, 112, 126, 139, 128, 119, 131, 137, 119, 147, 129, 124, 132, 107, 120, 139, 135, 119, 137, 129, 136, 121, 127, 145, 138, 119, 127, 134, 122, 118, 111, 112, 118, 149, 123, 131, 123, 126, 118, 113, 119, 145, 117, 118, 127, 122, 123, 116, 118, 118, 120, 144, 115, 133, 131, 120, 128, 119, 130, 139, 122, 125, 121, 140, 135, 132, 113, 126, 146, 131, 132, 112, 135, 116, 138, 111, 118, 151, 131, 125, 149, 145, 114, 116, 134, 117, 108, 137, 107, 136, 131, 121, 123, 127, 131, 123, 122, 153, 130, 120, 123, 129, 127, 122, 114, 132, 120, 134, 98, 102, 130, 132, 131, 119, 127, 133, 153, 121, 130, 112, 150, 128, 117, 121, 125, 128, 118, 123, 126, 135, 135, 124, 136, 118, 115, 122, 138, 131, 113, 121, 107, 124, 122, 120, 134, 116, 114, 125, 127, 129, 121, 134, 121, 101, 114, 120, 125, 121, 122, 110, 123, 126, 128, 121, 123, 129, 146, 105, 116, 150, 128, 106, 122, 111, 141, 123, 115, 118, 121, 129, 126, 117, 121, 130, 136, 135, 116, 126, 134, 155, 137, 119, 120, 146, 97, 128, 133, 125, 118, 106, 108, 119, 168, 114, 126, 128, 131, 133, 122, 126, 116, 127, 124, 109, 106, 116, 120, 137, 129, 128, 126, 119, 120, 116, 129, 122, 135, 122, 116, 127, 122, 126, 122, 107, 127, 121, 126, 125, 120, 119, 123, 131, 130, 130, 123, 108, 129, 124, 119, 115, 106, 119, 110, 143, 128, 124, 121, 130, 126, 133, 126, 126, 123, 127, 140, 133, 139, 132, 114, 119, 137, 117, 104, 130, 122, 121, 139, 130, 117, 135, 125, 133, 128, 128, 125, 121, 125, 119, 126, 142, 120, 137, 127, 124, 134, 114, 120, 115, 137, 122, 132, 119, 127, 121, 131, 138, 166, 147, 118, 120, 128, 146, 132, 136, 119, 148, 131, 110, 138, 137, 120, 125, 155, 103, 123, 138, 120, 120, 105, 110, 141, 138, 135, 123, 133, 122, 125, 118, 128, 116, 103, 118, 113, 122, 133, 100, 120, 118, 121, 115, 128, 140, 129, 108, 109, 121, 139, 101, 130, 138, 116, 114, 114, 124, 115, 135, 141, 137, 109, 120, 131, 120, 140, 134, 141, 122, 123, 129, 106, 136, 108, 125, 116, 136, 103, 137, 119, 129, 124, 134, 141, 129, 123, 98, 119, 147, 137, 120, 123, 142, 136, 123, 138, 122, 124, 128, 117, 115, 128, 126, 141, 138, 126, 119, 115, 117, 91, 129, 116, 122, 131, 109, 105, 109, 118, 129, 133, 135, 122, 134, 134, 139, 132, 122, 134, 121, 132, 123, 129, 128, 118, 129, 119, 120, 126, 118, 138, 117, 128, 127, 129, 117, 113, 134, 129, 114, 110, 102, 120, 137, 123, 129, 109, 104, 115, 129, 129, 138, 115, 117, 115, 118, 136, 161, 118, 112, 123, 123, 125, 119, 126, 100, 107, 130, 134, 136, 130, 132, 103, 114, 126, 120, 135, 123, 119, 121, 124, 110, 105, 119, 127, 110, 129, 132, 123, 123, 111, 127, 119, 126, 113, 127, 130, 118, 128, 127, 117, 123, 128, 119, 122, 161, 125, 113, 127, 128, 141, 133, 115, 118, 132, 143, 126, 122, 147, 108, 124, 140, 106, 117, 118, 138, 126, 123, 113, 116, 113, 124, 138, 118, 107, 124, 124, 120, 130, 121, 128, 125, 127, 123, 129, 133, 137, 134, 138, 114, 115, 134, 128, 130, 122, 115, 122, 147, 117, 119, 136, 127, 175, 128, 129, 127, 122, 119, 108, 115, 114, 122, 114, 122, 130, 125, 139, 112, 125, 127, 146, 127, 129, 139, 129, 132, 134, 116, 112, 128, 129, 127, 119, 128, 104, 124, 125, 137, 114, 119, 115, 119, 128, 143, 120, 113, 124, 134, 110, 133, 139, 122, 125, 132, 117, 126, 121, 124, 120, 134, 117, 124, 106, 152, 119, 133, 126, 128, 120, 122, 130, 118, 126, 137, 114, 139, 129, 141, 130, 129, 128, 140, 126, 120, 137, 115, 115, 107, 136, 115, 139, 113, 128, 111, 116, 125, 120, 131, 143, 124, 118, 122, 127, 123, 121, 135, 121, 130, 115, 124, 124, 114, 126, 127, 129, 144, 113, 119, 112, 130, 119, 142, 123, 122, 123, 106, 113, 117, 120, 136, 128, 131, 132, 135, 102, 139, 124, 122, 94, 133, 125, 126, 121, 127, 130, 125, 114, 121, 110, 131, 140, 118, 130, 133, 123, 122, 121, 139, 131, 132, 117, 112, 133, 120, 101, 127, 121, 114, 127, 133, 115, 116, 122, 148, 131, 119, 117, 131, 119, 129, 125, 129, 109, 130, 129, 123, 135, 113, 119, 94, 130, 127, 119, 141, 116, 121, 128, 146, 115, 149, 138, 133, 118, 118, 125, 144, 127, 116, 113, 132, 89, 127, 127, 103, 125, 110, 141, 115, 119, 122, 130, 125, 128, 125, 131, 123, 139, 139, 128, 121, 121, 118, 131, 134, 137, 127, 120, 137, 143, 126, 131, 115, 122, 130, 130, 129, 140, 117, 114, 124, 133, 125, 104, 119, 136, 117, 125, 130, 127, 112, 134, 143, 147, 125, 115, 117, 125, 127, 126, 129, 124, 133, 114, 118, 114, 114, 109, 114, 118, 113, 118, 149, 138, 126, 126, 119, 131, 135, 131, 120, 122, 118, 118, 124, 128, 126, 121, 125, 104, 139, 128, 116, 121, 114, 112, 120, 124, 137, 123, 135, 142, 119, 112, 115, 132, 136, 133, 120, 111, 115, 139, 127, 141, 137, 131, 134, 92, 128, 125, 105, 129, 118, 142, 114, 133, 125, 130, 128, 138, 117, 123, 107, 135, 116, 108, 120, 124, 94, 119, 123, 128, 146, 126, 134, 110, 104, 140, 106, 117, 120, 113, 139, 128, 149, 167, 131, 128, 135, 123, 128, 135, 124, 125, 113, 119, 126, 111, 140, 126, 122, 126, 126, 135, 124, 136, 120, 132, 118, 125, 108, 119, 121, 119, 121, 134, 135, 139, 128, 117, 113, 118, 134, 127, 121, 134, 120, 119, 120, 106, 127, 125, 135, 120, 126, 113, 142, 117, 142, 129, 125, 99, 117, 125, 119, 125, 125, 139, 123, 113, 113, 138, 117, 132, 122, 135, 126, 119, 117, 127, 132, 125, 120, 118, 112, 140, 112, 134, 112, 125, 122, 106, 129, 136, 126, 134, 127, 112, 122, 122, 127, 99, 104, 117, 141, 133, 101, 156, 116, 116, 125, 137, 115, 124, 123, 105, 124, 122, 129, 139, 120, 136, 121, 125, 130, 121, 116, 128, 147, 132, 111, 120, 115, 137, 120, 153, 104, 114, 119, 127, 127, 136, 124, 109, 120, 125, 132, 134, 125, 128, 151, 132, 128, 131, 115, 128, 133, 128, 144, 119, 127, 122, 128, 120, 130, 129, 137, 125, 120, 124, 134, 107, 134, 131, 112, 134, 130, 147, 123, 109, 119, 117, 127, 117, 114, 120, 133, 111, 143, 117, 141, 109, 128, 123, 131, 141, 102, 112, 127, 123, 117, 123, 120, 124, 132, 133, 132, 117, 111, 127, 143, 138, 104, 123, 122, 119, 128, 137, 135, 119, 117, 153, 132, 122, 124, 132, 133, 115, 126, 123, 145, 126, 136, 118, 141, 143, 123, 113, 125, 114, 123, 137, 126, 123, 116, 121, 124, 125, 109, 138, 134, 125, 129, 140, 128, 124, 134, 104, 132, 124, 114, 127, 123, 128, 123, 107, 130, 125, 136, 127, 118, 129, 121, 123, 129, 135, 125, 137, 111, 137, 116, 123, 123, 120, 123, 122, 131, 145, 135, 127, 118, 136, 125, 135, 132, 135, 126, 124, 109, 134, 125, 136, 133, 135, 128, 118, 111, 110, 124, 125, 110, 126, 118, 136, 123, 133, 127, 143, 118, 119, 124, 130, 122, 124, 120, 114, 122, 140, 124, 129, 121, 123, 112, 112, 127, 134, 114, 118, 127, 124, 145, 129, 117, 128, 124, 144, 117, 124, 137, 126, 106, 131, 127, 122, 130, 124, 115, 125, 119, 151, 131, 119, 128, 121, 138, 143, 135, 111, 131, 132, 129, 130, 119, 121, 134, 131, 120, 117, 133, 132, 130, 122, 114, 137, 153, 136, 124, 144, 130, 130, 96, 119, 127, 129, 129, 117, 141, 118, 108, 125, 120, 117, 125, 117, 116, 137, 142, 123, 135, 135, 112, 136, 147, 126, 118, 124, 122, 118, 116, 131, 128, 109, 112, 129, 117, 130, 133, 121, 117, 130, 116, 128, 137, 120, 125, 127, 119, 120, 116, 115, 106, 121, 117, 124, 142, 120, 117, 130, 103, 117, 119, 124, 130, 120, 121, 109, 104, 127, 126, 126, 147, 131, 135, 113, 123, 121, 133, 135, 108, 129, 113, 111, 131, 118, 137, 131, 117, 117, 127, 124, 124, 123, 129, 113, 99, 119, 104, 127, 126, 127, 130, 124, 122, 111, 130, 128, 126, 134, 120, 116, 128, 124, 102, 124, 122, 121, 122, 134, 143, 119, 136, 137, 111, 127, 113, 106, 118, 126, 126, 133, 124, 120, 121, 120, 130, 124, 115, 152, 141, 131, 126, 135, 128, 130, 130, 121, 138, 140, 119, 126, 136, 141, 128, 121, 139, 113, 122, 120, 118, 118, 109, 133, 134, 133, 145, 124, 117, 121, 135, 123, 107, 129, 123, 130, 120, 134, 115, 145, 112, 128, 133, 135, 125, 134, 122, 119, 111, 133, 117, 124, 119, 126, 119, 126, 134, 119, 124, 130, 111, 142, 125, 138, 139, 134, 128, 128, 114, 136, 116, 146, 126, 138, 130, 141, 129, 127, 125, 124, 109, 112, 126, 136, 117, 124, 111, 127, 120, 125, 129, 130, 131, 122, 134, 123, 110, 135, 109, 114, 125, 126, 121, 120, 129, 115, 122, 104, 128, 125, 129, 125, 127, 132, 123, 124, 111, 122, 132, 130, 116, 134, 123, 125, 133, 133, 132, 122, 119, 108, 131, 118, 144, 133, 119, 139, 122, 117, 131, 125, 140, 132, 138, 125, 124, 108, 138, 127, 139, 139, 127, 117, 125, 132, 123, 129, 135, 132, 107, 117, 130, 137, 131, 131, 115, 136, 122, 139, 136, 119, 139, 128, 130, 121, 120, 99, 127, 132, 126, 106, 118, 131, 127, 134, 113, 140, 130, 121, 145, 125, 123, 139, 130, 120, 118, 136, 123, 123, 102, 137, 125, 121, 113, 128, 129, 117, 140, 124, 125, 136, 121, 125, 124, 127, 117, 132, 125, 113, 121, 132, 123, 128, 115, 155, 114, 145, 125, 120, 133, 133, 113, 106, 120, 136, 118, 114, 126, 121, 142, 123, 130, 115, 127, 122, 135, 122, 115, 131, 119, 120, 137, 129, 120, 118, 139, 136, 136, 112, 116, 123, 108, 132, 128, 126, 127, 111, 134, 131, 131, 151, 106, 112, 141, 124, 134, 132, 119, 129, 137, 119, 142, 132, 107, 130, 125, 126, 137, 119, 107, 123, 136, 105, 126, 117, 138, 125, 125, 140, 121, 129, 116, 130, 106, 125, 136, 118, 107, 129, 113, 120, 100, 135, 125, 127, 114, 127, 151, 130, 139, 128, 126, 120, 123, 120, 123, 120, 117, 119, 125, 133, 126, 138, 118, 111, 124, 118, 124, 124, 133, 119, 132, 123, 126, 98, 131, 136, 118, 126, 118, 121, 124, 116, 114, 139, 124, 116, 132, 116, 125, 114, 145, 123, 130, 132, 121, 114, 118, 109, 120, 121, 118, 118, 141, 124, 121, 134, 131, 140, 121, 130, 123, 129, 115, 106, 125, 120, 128, 130, 125, 124, 135, 100, 128, 123, 145, 134, 109, 115, 112, 118, 121, 124, 111, 125, 126, 126, 131, 120, 139, 139, 141, 125, 110, 131, 126, 144, 121, 128, 124, 119, 138, 123, 119, 141, 116, 128, 121, 139, 125, 137, 122, 127, 126, 139, 120, 120, 150, 124, 117, 116, 113, 113, 146, 130, 121, 125, 114, 143, 110, 131, 102, 112, 129, 131, 112, 114, 117, 125, 138, 145, 128, 123, 111, 129, 124, 118, 129, 124, 132, 115, 113, 141, 132, 113, 130, 142, 132, 129, 135, 137, 119, 142, 118, 145, 115, 117, 114, 118, 133, 124, 125, 126, 123, 110, 105, 122, 129, 126, 127, 117, 108, 119, 121, 127, 113, 125, 120, 135, 128, 114, 117, 106, 122, 120, 134, 133, 129, 119, 113, 109, 130, 138, 106, 128, 127, 142, 127, 133, 132, 121, 130, 131, 132, 123, 120, 123, 116, 128, 119, 137, 131, 137, 120, 105, 113, 134, 122, 117, 125, 119, 119, 128, 123, 127, 136, 130, 130, 114, 139, 130, 127, 112, 106, 128, 133, 118, 120, 136, 129, 120, 122, 133, 125, 130, 127, 122, 116, 120, 125, 109, 113, 132, 133, 114, 121, 123, 123, 123, 131, 127, 133, 140, 135, 125, 136, 130, 127, 126, 123, 127, 125, 127, 109, 99, 133, 120, 138, 127, 141, 132, 134, 122, 127, 114, 125, 133, 121, 115, 121, 126, 122, 110, 124, 123, 129, 129, 121, 125, 127, 127, 132, 124, 131, 136, 133, 120, 123, 122, 122, 93, 138, 118, 129, 131, 125, 136, 124, 136, 124, 119, 125, 118, 119, 113, 121, 118, 124, 116, 113, 115, 128, 137, 117, 142, 122, 140, 130, 123, 118, 131, 122, 125, 124, 116, 118, 127, 130, 130, 140, 126, 134, 108, 125, 136, 125, 133, 137, 105, 131, 102, 137, 119, 130, 123, 119, 120, 117, 120, 144, 127, 133, 117, 137, 119, 135, 123, 142, 130, 141, 108, 125, 113, 121, 121, 129, 109, 134, 141, 136, 103, 126, 120, 118, 111, 123, 143, 109, 118, 123, 151, 116, 132, 125, 131, 131, 137, 129, 130, 112, 137, 115, 123, 113, 122, 142, 121, 125, 125, 127, 111, 128, 115, 117, 132, 106, 118, 106, 139, 127, 119, 121, 117, 130, 116, 125, 126, 118, 117, 109, 129, 113, 127, 123, 136, 124, 120, 118, 126, 132, 128, 108, 126, 117, 126, 110, 129, 114, 123, 123, 136, 128, 115, 112, 116, 143, 143, 124, 119, 130, 131, 126, 128, 103, 129, 114, 121, 140, 130, 120, 139, 135, 109, 119, 124, 125, 116, 146, 128, 127, 120, 132, 124, 147, 132, 115, 120, 120, 110, 126, 127, 123, 127, 131, 126, 111, 140, 144, 116, 135, 125, 128, 126, 126, 124, 114, 124, 138, 118, 129, 132, 112, 140, 111, 128, 153, 139, 114, 122, 138, 122, 115, 130, 117, 125, 128, 116, 124, 136, 125, 135, 126, 116, 118, 115, 128, 132, 139, 126, 150, 131, 132, 121, 104, 149, 125, 134, 125, 107, 113, 121, 119, 102, 111, 141, 112, 127, 119, 130, 123, 138, 126, 116, 132, 128, 125, 144, 106, 121, 131, 110, 114, 132, 121, 123, 122, 129, 116, 109, 134, 120, 122, 123, 116, 111, 113, 116, 117, 132, 131, 120, 133, 129, 135, 138, 124, 120, 116, 137, 115, 127, 126, 113, 121, 114, 130, 115, 116, 128, 137, 131, 124, 109, 122, 119, 128, 116, 135, 131, 141, 135, 110, 138, 141, 140, 112, 125, 120, 118, 121, 129, 135, 114, 129, 120, 118, 123, 128, 125, 119, 122, 138, 121, 138, 116, 129, 120, 123, 126, 128, 122, 118, 126, 138, 119, 114, 109, 112, 126, 129, 107, 116, 163, 122, 136, 120, 128, 121, 97, 128, 126, 122, 123, 113, 139, 118, 123, 127, 134, 124, 116, 143, 128, 129, 114, 116, 116, 110, 119, 135, 115, 122, 117, 104, 143, 133, 114, 119, 118, 134, 118, 120, 131, 114, 137, 125, 116, 145, 119, 114, 128, 126, 138, 127, 122, 114, 126, 122, 114, 142, 120, 125, 133, 135, 133, 126, 136, 137, 120, 109, 150, 118, 130, 135, 137, 112, 110, 112, 134, 120, 126, 127, 121, 120, 129, 109, 126, 138, 123, 119, 113, 133, 124, 139, 123, 130, 106, 126, 154, 128, 132, 110, 120, 137, 130, 147, 133, 117, 132, 114, 121, 116, 120, 148, 135, 135, 130, 139, 130, 145, 112, 131, 139, 119, 126, 112, 121, 118, 140, 115, 135, 119, 147, 136, 110, 128, 134, 125, 128, 112, 125, 120, 129, 120, 129, 138, 128, 105, 134, 109, 127, 126, 133, 120, 124, 135, 120, 120, 124, 132, 116, 138, 135, 123, 123, 132, 116, 122, 121, 108, 122, 126, 127, 124, 122, 111, 109, 132, 126, 123, 129, 125, 123, 134, 116, 130, 130, 122, 127, 120, 121, 127, 121, 120, 123, 133, 109, 122, 132, 127, 122, 117, 141, 133, 144, 128, 122, 106, 112, 151, 118, 118, 145, 124, 102, 128, 126, 142, 123, 131, 123, 143, 123, 125, 129, 122, 117, 132, 126, 118, 127, 140, 123, 122, 116, 123, 133, 120, 116, 137, 125, 133, 105, 116, 129, 123, 138, 117, 116, 134, 120, 122, 126, 106, 127, 105, 124, 129, 113, 136, 125, 105, 132, 108, 115, 139, 122, 138, 129, 156, 121, 128, 108, 117, 134, 132, 131, 128, 127, 113, 102, 128, 121, 149, 132, 112, 129, 110, 118, 111, 131, 118, 137, 124, 128, 127, 116, 155, 129, 130, 108, 127, 142, 121, 130, 141, 99, 139, 119, 116, 130, 128, 119, 149, 125, 113, 130, 124, 129, 148, 130, 136, 121, 137, 116, 157, 102, 107, 133, 108, 139, 122, 136, 144, 130, 135, 133, 113, 113, 132, 120, 149, 106, 126, 115, 134, 117, 123, 126, 138, 126, 120, 127, 110, 130, 127, 113, 135, 126, 132, 141, 131, 121, 135, 129, 138, 126, 109, 132, 143, 124, 134, 116, 131, 128, 118, 130, 130, 104, 117, 125, 149, 128, 113, 134, 115, 118, 124, 117, 150, 127, 112, 118, 135, 135, 126, 126, 121, 124, 133, 128, 122, 132, 132, 123, 117, 118, 119, 124, 127, 117, 129, 117, 121, 138, 132, 124, 119, 142, 127, 133, 139, 122, 121, 114, 134, 114, 147, 135, 120, 138, 122, 129, 130, 118, 143, 118, 122, 132, 136, 117, 113, 112, 114, 119, 120, 125, 132, 118, 139, 124, 129, 129, 116, 136, 127, 128, 133, 132, 147, 144, 123, 118, 118, 122, 136, 130, 122, 108, 137, 120, 122, 132, 114, 127, 126, 119, 121, 125, 123, 122, 115, 128, 115, 112, 140, 123, 125, 137, 129, 130, 136, 116, 141, 145, 118, 126, 123, 143, 137, 115, 140, 133, 136, 125, 122, 130, 110, 108, 135, 112, 111, 118, 122, 116, 135, 138, 129, 112, 109, 120, 121, 116, 141, 115, 124, 124, 129, 132, 150, 128, 130, 127, 129, 148, 142, 141, 134, 143, 111, 124, 116, 132, 143, 129, 123, 129, 143, 110, 144, 123, 107, 137, 131, 116, 122, 130, 137, 139, 117, 125, 139, 122, 137, 135, 131, 145, 121, 137, 119, 119, 122, 119, 130, 122, 110, 129, 131, 126, 126, 133, 136, 128, 113, 130, 112, 105, 139, 126, 132, 121, 138, 132, 109, 124, 136, 135, 129, 119, 119, 124, 129, 133, 132, 109, 139, 122, 123, 112, 105, 121, 122, 134, 128, 122, 128, 124, 141, 139, 128, 107, 136, 129, 118, 126, 139, 119, 118, 124, 119, 129, 120, 139, 144, 133, 111, 110, 134, 116, 120, 144, 123, 115, 132, 119, 129, 114, 131, 132, 117, 129, 130, 129, 125, 123, 117, 127, 126, 131, 113, 133, 119, 128, 134, 124, 111, 127, 129, 139, 134, 116, 138, 130, 132, 114, 122, 114, 129, 122, 128, 135, 105, 130, 132, 134, 122, 139, 127, 119, 115, 124, 128, 137, 111, 129, 117, 131, 132, 123, 132, 122, 132, 139, 119, 130, 124, 117, 116, 130, 139, 121, 115, 104, 137, 128, 123, 113, 123, 117, 123, 127, 127, 138, 124, 123, 113, 133, 130, 133, 121, 112, 109, 130, 106, 134, 130, 123, 131, 118, 133, 125, 121, 116, 119, 119, 149, 125, 130, 122, 122, 129, 120, 126, 120, 121, 121, 145, 137, 117, 125, 113, 115, 112, 132, 132, 122, 91, 137, 123, 121, 139, 113, 130, 119, 124, 118, 127, 125, 135, 119, 138, 124, 136, 115, 134, 125, 106, 126, 139, 126, 119, 135, 127, 112, 106, 130, 149, 122, 134, 131, 117, 136, 126, 120, 123, 113, 113, 116, 114, 127, 113, 129, 130, 139, 115, 144, 147, 113, 126, 126, 103, 113, 133, 128, 122, 150, 149, 150, 103, 124, 141, 133, 118, 127, 138, 120, 130, 123, 124, 135, 116, 140, 117, 137, 124, 126, 125, 139, 123, 120, 150, 129, 128, 129, 113, 133, 130, 120, 117, 112, 114, 115, 126, 119, 132, 129, 142, 114, 123, 122, 144, 117, 131, 112, 119, 125, 122, 106, 141, 116, 140, 127, 122, 127, 130, 125, 142, 151, 117, 127, 152, 127, 116, 125, 127, 132, 131, 144, 140, 128, 127, 126, 136, 131, 121, 122, 127, 131, 114, 116, 126, 131, 123, 134, 126, 117, 110, 121, 118, 117, 142, 112, 122, 98, 146, 131, 127, 149, 119, 133, 134, 121, 126, 145, 114, 143, 113, 118, 135, 130, 131, 119, 120, 112, 121, 125, 122, 124, 129, 127, 134, 157, 144, 127, 129, 115, 118, 123, 143, 138, 124, 133, 130, 122, 121, 136, 125, 129, 107, 126, 121, 119, 134, 119, 119, 130, 129, 123, 144, 120, 123, 131, 132, 130, 115, 149, 122, 134, 119, 126, 132, 131, 118, 117, 128, 143, 137, 131, 118, 127, 128, 126, 131, 106, 99, 116, 116, 122, 125, 124, 135, 126, 119, 139, 117, 135, 109, 119, 128, 128, 131, 114, 123, 119, 107, 103, 122, 109, 109, 130, 117, 110, 121, 154, 104, 142, 134, 134, 128, 115, 135, 102, 138, 125, 132, 144, 136, 142, 121, 118, 117, 126, 123, 119, 120, 129, 135, 141, 116, 145, 106, 133, 118, 126, 124, 132, 130, 132, 136, 134, 131, 113, 133, 123, 137, 99, 122, 100, 135, 131, 111, 115, 133, 132, 128, 132, 126, 118, 130, 122, 123, 124, 120, 118, 135, 135, 130, 139, 128, 155, 133, 130, 117, 113, 119, 118, 125, 136, 129, 147, 117, 126, 130, 130, 133, 123, 109, 124, 135, 115, 129, 121, 112, 127, 133, 121, 120, 119, 131, 121, 128, 129, 116, 118, 118, 137, 131, 126, 127, 122, 119, 129, 122, 129, 112, 115, 119, 115, 135, 134, 135, 110, 127, 129, 115, 113, 124, 125, 131, 117, 120, 105, 118, 133, 138, 139, 136, 134, 100, 133, 123, 135, 122, 128, 129, 112, 133, 127, 127, 111, 107, 131, 108, 119, 118, 133, 123, 112, 144, 140, 130, 118, 143, 117, 132, 130, 118, 135, 112, 136, 128, 126, 128, 127, 126, 133, 126, 112, 112, 125, 118, 132, 122, 106, 127, 123, 110, 125, 139, 123, 117, 136, 121, 119, 130, 123, 128, 118, 127, 130, 129, 107, 141, 107, 130, 122, 109, 143, 111, 119, 130, 121, 129, 142, 115, 129, 144, 141, 117, 131, 128, 140, 126, 117, 122, 138, 116, 121, 156, 145, 121, 123, 106, 126, 134, 132, 122, 124, 119, 114, 123, 127, 120, 129, 109, 131, 133, 115, 127, 110, 128, 111, 138, 118, 108, 108, 132, 134, 127, 126, 128, 131, 124, 143, 120, 132, 124, 107, 131, 122, 125, 137, 128, 116, 116, 147, 139, 120, 124, 115, 120, 138, 124, 132, 123, 118, 120, 123, 112, 133, 127, 126, 130, 131, 125, 116, 128, 126, 127, 106, 126, 118, 144, 119, 117, 114, 117, 121, 124, 132, 123, 120, 125, 126, 118, 137, 107, 133, 131, 118, 104, 117, 124, 136, 126, 131, 111, 119, 123, 138, 132, 118, 97, 114, 149, 140, 127, 128, 126, 125, 125, 133, 122, 116, 131, 145, 123, 129, 108, 136, 138, 126, 114, 124, 144, 112, 128, 127, 116, 119, 121, 117, 108, 124, 108, 126, 115, 132, 135, 115, 129, 126, 125, 132, 106, 136, 143, 132, 140, 120, 121, 110, 137, 119, 115, 120, 129, 119, 131, 132, 119, 113, 115, 126, 123, 125, 104, 133, 124, 101, 140, 103, 124, 127, 141, 152, 125, 127, 118, 114, 116, 125, 124, 115, 117, 139, 132, 118, 142, 118, 143, 128, 120, 113, 124, 136, 129, 109, 135, 118, 114, 137, 123, 131, 141, 118, 125, 123, 121, 128, 119, 137, 118, 132, 135, 136, 135, 132, 119, 120, 125, 124, 122, 126, 117, 131, 142, 115, 138, 121, 130, 119, 126, 123, 125, 125, 145, 109, 102, 105, 110, 123, 114, 124, 135, 126, 126, 155, 119, 124, 118, 134, 128, 138, 126, 135, 117, 129, 139, 124, 119, 128, 99, 120, 117, 120, 117, 121, 142, 137, 127, 127, 121, 111, 140, 140, 122, 119, 134, 148, 141, 112, 135, 105, 135, 137, 137, 125, 125, 134, 131, 132, 135, 114, 127, 135, 116, 145, 105, 140, 112, 143, 122, 115, 100, 122, 107, 134, 112, 124, 142, 127, 115, 121, 134, 140, 113, 114, 138, 132, 125, 137, 124, 137, 130, 129, 122, 134, 126, 138, 137, 115, 120, 124, 115, 132, 125, 125, 144, 118, 109, 110, 132, 125, 118, 131, 131, 103, 118, 137, 137, 145, 114, 143, 124, 117, 119, 114, 123, 122, 128, 138, 131, 128, 121, 127, 115, 113, 130, 126, 132, 139, 107, 137, 106, 140, 147, 130, 125, 127, 146, 144, 120, 129, 132, 118, 127, 118, 120, 135, 125, 120, 108, 122, 125, 112, 129, 124, 133, 140, 126, 134, 127, 124, 135, 103, 144, 116, 110, 134, 137, 135, 116, 124, 141, 124, 118, 131, 127, 141, 120, 103, 136, 123, 138, 122, 123, 135, 121, 116, 131, 107, 126, 118, 119, 122, 120, 112, 115, 140, 118, 112, 121, 116, 119, 115, 112, 117, 118, 130, 132, 139, 128, 127, 122, 127, 134, 106, 128, 132, 122, 126, 126, 130, 122, 120, 119, 129, 139, 129, 129, 135, 125, 128, 137, 129, 111, 130, 119, 128, 122, 146, 127, 126, 134, 121, 125, 121, 123, 121, 125, 111, 114, 125, 120, 121, 131, 129, 157, 151, 106, 128, 125, 127, 110, 150, 126, 128, 126, 115, 132, 128, 120, 113, 125, 138, 122, 120, 137, 124, 124, 118, 142, 121, 112, 128, 117, 130, 129, 138, 126, 115, 116, 135, 107, 124, 132, 110, 132, 126, 128, 112, 109, 110, 103, 121, 128, 120, 153, 122, 116, 129, 122, 129, 122, 123, 142, 126, 134, 132, 120, 109, 149, 104, 105, 140, 134, 135, 137, 132, 116, 138, 129, 116, 121, 129, 114, 122, 122, 120, 124, 135, 129, 128, 142, 139, 131, 115, 120, 129, 116, 110, 113, 126, 131, 124, 135, 128, 137, 118, 117, 131, 123, 135, 109, 123, 148, 148, 137, 145, 143, 136, 129, 141, 112, 135, 129, 123, 149, 135, 134, 138, 119, 133, 122, 126, 135, 128, 112, 127, 126, 103, 101, 131, 125, 111, 125, 116, 116, 130, 105, 124, 132, 123, 135, 111, 110, 122, 123, 116, 115, 133, 112, 132, 118, 119, 117, 131, 117, 106, 118, 129, 128, 131, 126, 121, 131, 125, 131, 141, 124, 151, 111, 126, 119, 123, 134, 125, 137, 132, 127, 118, 120, 126, 121, 132, 128, 123, 141, 122, 142, 116, 125, 133, 123, 112, 121, 125, 116, 110, 141, 122, 119, 112, 133, 112, 113, 109, 121, 121, 132, 124, 117, 134, 138, 131, 130, 146, 143, 131, 122, 112, 129, 111, 126, 133, 130, 121, 126, 142, 116, 141, 142, 140, 117, 134, 135, 134, 106, 124, 118, 95, 141, 120, 123, 145, 140, 124, 127, 137, 127, 135, 122, 130, 117, 112, 137, 124, 122, 127, 140, 113, 123, 129, 125, 139, 125, 132, 111, 144, 112, 144, 133, 112, 142, 121, 130, 132, 135, 132, 124, 126, 132, 127, 110, 123, 113, 125, 120, 115, 124, 136, 103, 120, 123, 114, 104, 141, 104, 116, 105, 122, 134, 133, 123, 136, 132, 118, 114, 115, 131, 111, 118, 127, 135, 121, 116, 119, 133, 100, 108, 133, 104, 133, 139, 123, 120, 121, 138, 138, 126, 117, 119, 123, 136, 121, 129, 120, 132, 131, 129, 128, 140, 113, 98, 102, 136, 120, 133, 126, 117, 121, 127, 124, 129, 136, 125, 137, 110, 125, 117, 124, 133, 139, 121, 133, 119, 126, 115, 122, 119, 122, 114, 141, 127, 136, 131, 120, 123, 130, 119, 113, 122, 136, 114, 130, 136, 132, 112, 115, 117, 126, 130, 126, 120, 131, 96, 118, 129, 134, 116, 126, 140, 135, 142, 110, 121, 137, 108, 114, 148, 134, 141, 127, 130, 128, 114, 113, 152, 135, 132, 130, 129, 130, 116, 117, 126, 133, 125, 119, 109, 116, 117, 136, 107, 123, 132, 128, 119, 103, 125, 128, 136, 120, 121, 123, 146, 118, 131, 123, 128, 124, 117, 130, 139, 139, 127, 126, 116, 133, 131, 135, 106, 137, 132, 113, 143, 113, 131, 121, 121, 120, 131, 125, 132, 131, 134, 128, 131, 124, 122, 108, 118, 129, 123, 127, 128, 117, 123, 126, 116, 104, 122, 145, 130, 120, 132, 146, 140, 107, 128, 106, 113, 131, 128, 116, 124, 129, 131, 124, 115, 146, 137, 124, 119, 126, 123, 133, 128, 112, 133, 113, 142, 119, 133, 141, 126, 115, 143, 136, 145, 123, 129, 122, 143, 129, 111, 131, 113, 132, 117, 133, 148, 144, 139, 113, 125, 127, 121, 153, 122, 121, 119, 108, 100, 121, 114, 127, 140, 112, 132, 139, 126, 123, 115, 138, 119, 140, 140, 129, 135, 131, 121, 118, 129, 130, 117, 121, 124, 120, 115, 127, 120, 112, 126, 137, 132, 122, 102, 153, 118, 141, 131, 120, 112, 153, 132, 119, 135, 136, 119, 134, 151, 135, 113, 114, 128, 116, 120, 119, 127, 116, 120, 121, 126, 126, 126, 130, 132, 113, 127, 125, 137, 117, 109, 129, 107, 128, 135, 123, 147, 118, 125, 122, 135, 138, 135, 125, 122, 131, 140, 127, 120, 124, 120, 144, 127, 126, 111, 131, 127, 137, 123, 121, 124, 128, 116, 119, 117, 109, 139, 112, 124, 122, 107, 126, 127, 128, 125, 114, 128, 123, 120, 153, 136, 115, 132, 130, 133, 128, 118, 129, 125, 118, 122, 138, 134, 122, 116, 139, 142, 125, 117, 131, 118, 125, 128, 108, 139, 131, 131, 105, 118, 117, 120, 117, 120, 115, 113, 127, 128, 119, 121, 128, 127, 121, 138, 115, 135, 124, 122, 130, 135, 131, 121, 135, 134, 134, 121, 119, 123, 119, 132, 139, 115, 131, 114, 126, 117, 110, 123, 119, 131, 119, 121, 126, 129, 139, 127, 147, 122, 117, 120, 138, 128, 125, 111, 125, 133, 137, 131, 137, 126, 118, 139, 111, 120, 124, 112, 140, 135, 137, 137, 128, 113, 120, 133, 129, 108, 129, 136, 122, 117, 133, 139, 124, 143, 127, 131, 112, 129, 130, 128, 123, 120, 127, 133, 117, 113, 125, 142, 119, 120, 135, 128, 130, 119, 123, 125, 134, 108, 122, 108, 124, 111, 116, 131, 121, 132, 143, 110, 121, 108, 117, 125, 135, 143, 128, 110, 120, 140, 112, 110, 118, 132, 129, 127, 124, 120, 112, 128, 131, 131, 127, 128, 123, 130, 114, 96, 132, 138, 132, 124, 115, 93, 118, 129, 110, 114, 106, 123, 126, 115, 132, 135, 124, 104, 132, 116, 135, 134, 107, 135, 124, 141, 126, 127, 133, 127, 120, 122, 131, 130, 121, 110, 127, 123, 100, 119, 116, 120, 126, 123, 115, 122, 131, 135, 137, 130, 127, 128, 131, 120, 117, 136, 136, 141, 134, 125, 139, 110, 126, 121, 133, 117, 128, 115, 119, 128, 130, 107, 136, 134, 126, 119, 143, 121, 119, 141, 130, 125, 122, 122, 125, 138, 138, 125, 112, 132, 138, 114, 128, 126, 140, 147, 130, 128, 117, 109, 109, 131, 115, 137, 108, 134, 134, 138, 135, 135, 145, 126, 115, 127, 119, 123, 132, 138, 111, 146, 143, 122, 119, 126, 119, 102, 143, 123, 152, 133, 132, 109, 128, 121, 123, 117, 132, 118, 133, 137, 133, 131, 129, 138, 124, 113, 122, 119, 132, 119, 132, 125, 123, 143, 121, 123, 131, 83, 139, 125, 120, 118, 140, 110, 107, 110, 125, 124, 135, 114, 124, 127, 123, 122, 101, 121, 116, 124, 125, 132, 127, 135, 126, 97, 121, 126, 134, 126, 129, 110, 115, 139, 107, 127, 99, 129, 136, 128, 111, 119, 119, 136, 103, 122, 122, 145, 107, 124, 131, 119, 112, 116, 146, 128, 123, 130, 124, 130, 115, 105, 128, 133, 119, 136, 126, 137, 139, 127, 117, 116, 101, 123, 123, 134, 125, 118, 130, 123, 120, 115, 110, 134, 116, 123, 118, 124, 112, 121, 139, 131, 117, 115, 138, 139, 134, 130, 112, 120, 120, 129, 117, 120, 119, 135, 132, 124, 124, 122, 125, 124, 114, 113, 144, 101, 143, 124, 164, 138, 138, 117, 130, 125, 117, 143, 130, 127, 124, 119, 135, 126, 141, 117, 115, 119, 116, 122, 141, 113, 124, 123, 126, 130, 124, 110, 108, 127, 133, 118, 136, 138, 119, 126, 117, 113, 141, 116, 129, 134, 147, 128, 123, 120, 132, 124, 120, 148, 123, 124, 132, 123, 123, 134, 128, 118, 128, 114, 106, 132, 126, 115, 125, 131, 125, 124, 121, 121, 142, 130, 121, 125, 103, 119, 123, 128, 124, 127, 113, 129, 137, 124, 127, 118, 126, 137, 141, 96, 123, 117, 134, 124, 115, 139, 122, 102, 137, 131, 114, 145, 137, 116, 137, 106, 137, 145, 149, 146, 126, 136, 123, 124, 126, 125, 127, 120, 128, 127, 140, 129, 111, 138, 124, 127, 112, 138, 114, 114, 149, 136, 129, 117, 120, 117, 112, 117, 131, 115, 135, 136, 106, 123, 143, 127, 120, 122, 134, 125, 137, 130, 119, 123, 123, 133, 129, 128, 93, 126, 116, 122, 125, 136, 128, 125, 120, 104, 120, 125, 141, 133, 129, 140, 133, 121, 100, 116, 121, 111, 126, 135, 128, 116, 133, 122, 129, 119, 127, 104, 143, 119, 127, 138, 117, 101, 127, 132, 123, 130, 126, 128, 117, 143, 132, 130, 131, 128, 139, 117, 125, 138, 125, 127, 134, 116, 132, 123, 113, 141, 124, 136, 125, 125, 132, 133, 123, 124, 114, 129, 123, 113, 136, 120, 125, 113, 109, 119, 138, 116, 134, 119, 128, 118, 117, 124, 124, 124, 116, 117, 121, 120, 138, 134, 132, 116, 153, 131, 136, 132, 122, 116, 107, 113, 125, 129, 113, 115, 119, 128, 128, 139, 113, 139, 114, 119, 126, 122, 114, 119, 129, 119, 122, 119, 122, 106, 124, 132, 128, 125, 111, 128, 130, 127, 131, 134, 126, 142, 120, 132, 122, 133, 119, 137, 107, 123, 131, 127, 128, 132, 121, 130, 118, 125, 126, 107, 139, 114, 116, 111, 130, 110, 127, 124, 133, 106, 102, 118, 129, 131, 139, 119, 108, 121, 114, 127, 116, 125, 128, 119, 129, 142, 126, 128, 111, 139, 116, 104, 135, 124, 120, 117, 130, 125, 112, 126, 120, 126, 101, 126, 127, 140, 126, 107, 114, 116, 119, 122, 127, 120, 126, 113, 129, 136, 121, 130, 138, 119, 142, 160, 130, 127, 129, 117, 122, 108, 137, 136, 124, 117, 127, 121, 121, 135, 114, 112, 142, 125, 119, 124, 126, 131, 123, 122, 114, 132, 120, 128, 117, 130, 113, 150, 115, 115, 118, 111, 117, 129, 131, 119, 141, 117, 117, 129, 133, 120, 138, 135, 114, 124, 128, 142, 119, 130, 109, 116, 138, 133, 128, 125, 120, 132, 114, 128, 122, 128, 129, 116, 117, 118, 132, 119, 143, 122, 126, 110, 115, 134, 136, 128, 150, 145, 112, 125, 144, 113, 122, 137, 129, 113, 122, 126, 116, 117, 127, 136, 117, 133, 121, 129, 147, 139, 125, 121, 131, 130, 145, 113, 102, 142, 141, 124, 142, 120, 137, 139, 115, 110, 136, 119, 109, 115, 130, 131, 147, 124, 147, 129, 115, 107, 123, 125, 114, 116, 120, 135, 124, 131, 118, 120, 149, 144, 110, 121, 114, 114, 161, 108, 123, 146, 133, 134, 122, 141, 125, 126, 127, 146, 131, 131, 115, 122, 122, 143, 144, 108, 107, 123, 127, 127, 127, 120, 130, 119, 122, 117, 122, 123, 139, 117, 131, 126, 104, 118, 129, 139, 124, 125, 130, 121, 114, 122, 115, 131, 113, 131, 149, 118, 125, 124, 136, 124, 127, 115, 123, 105, 132, 118, 118, 144, 123, 141, 121, 114, 117, 103, 124, 137, 123, 125, 122, 115, 133, 112, 133, 157, 122, 109, 143, 123, 131, 130, 147, 113, 125, 126, 154, 121, 115, 135, 128, 137, 135, 114, 124, 121, 152, 136, 127, 121, 147, 122, 127, 130, 130, 121, 130, 143, 123, 144, 105, 138, 118, 118, 132, 126, 134, 107, 121, 129, 140, 134, 116, 121, 139, 125, 114, 136, 123, 134, 111, 139, 130, 138, 125, 112, 126, 116, 122, 108, 137, 123, 132, 121, 128, 129, 108, 121, 129, 129, 119, 128, 116, 123, 130, 142, 113, 127, 105, 139, 116, 122, 121, 135, 115, 132, 136, 124, 114, 133, 128, 104, 142, 110, 125, 131, 117, 122, 102, 124, 136, 139, 131, 117, 128, 110, 152, 143, 130, 127, 125, 128, 114, 143, 142, 113, 131, 109, 113, 130, 116, 123, 117, 117, 113, 128, 134, 122, 124, 136, 115, 130, 119, 132, 125, 132, 119, 119, 132, 129, 121, 137, 125, 119, 126, 127, 122, 117, 113, 142, 123, 127, 147, 119, 121, 124, 122, 95, 125, 142, 115, 112, 121, 133, 125, 125, 119, 124, 117, 127, 129, 112, 112, 108, 108, 118, 131, 111, 114, 131, 125, 111, 128, 133, 137, 115, 126, 123, 115, 147, 101, 136, 118, 126, 127, 143, 128, 106, 123, 112, 120, 141, 120, 127, 137, 132, 140, 120, 126, 116, 132, 122, 112, 132, 136, 120, 146, 119, 117, 119, 130, 140, 117, 136, 126, 117, 135, 103, 136, 131, 118, 140, 115, 126, 134, 131, 116, 108, 133, 130, 112, 118, 125, 119, 124, 135, 122, 123, 117, 122, 134, 123, 137, 119, 146, 145, 118, 120, 110, 130, 115, 110, 121, 142, 124, 112, 121, 135, 106, 124, 136, 123, 128, 153, 108, 143, 118, 127, 131, 116, 114, 129, 147, 121, 112, 119, 122, 120, 125, 108, 128, 137, 113, 135, 119, 139, 121, 123, 120, 129, 105, 127, 120, 122, 114, 118, 120, 129, 105, 136, 122, 131, 124, 136, 127, 121, 131, 121, 121, 130, 129, 135, 119, 120, 145, 129, 131, 134, 128, 135, 141, 129, 118, 133, 125, 130, 122, 132, 116, 129, 144, 131, 123, 124, 117, 123, 122, 128, 132, 120, 125, 132, 126, 111, 128, 118, 115, 106, 105, 123, 126, 128, 108, 122, 120, 126, 131, 108, 128, 134, 134, 137, 102, 138, 117, 133, 122, 113, 127, 137, 147, 109, 122, 119, 129, 147, 132, 136, 115, 133, 121, 140, 126, 109, 122, 123, 106, 126, 127, 121, 124, 135, 127, 145, 133, 120, 142, 123, 120, 120, 132, 128, 130, 114, 117, 123, 136, 135, 114, 126, 132, 124, 110, 102, 114, 120, 112, 132, 130, 127, 125, 131, 116, 120, 131, 113, 115, 124, 150, 118, 126, 120, 112, 127, 126, 116, 121, 117, 127, 128, 121, 112, 132, 111, 117, 129, 139, 124, 146, 119, 115, 112, 105, 123, 148, 116, 132, 135, 132, 118, 134, 109, 126, 122, 135, 126, 134, 127, 128, 134, 115, 127, 123, 127, 121, 110, 123, 127, 131, 122, 128, 127, 135, 131, 139, 109, 125, 107, 127, 127, 117, 110, 126, 119, 114, 126, 131, 125, 118, 121, 111, 132, 103, 131, 135, 133, 124, 126, 131, 109, 125, 114, 113, 152, 142, 131, 129, 134, 104, 137, 116, 124, 116, 121, 121, 131, 122, 127, 117, 125, 142, 112, 117, 130, 133, 117, 123, 121, 110, 129, 121, 126, 123, 114, 118, 125, 114, 121, 140, 141, 126, 107, 129, 133, 124, 115, 109, 122, 128, 118, 127, 121, 111, 119, 129, 120, 136, 136, 121, 135, 123, 126, 124, 149, 123, 126, 119, 126, 125, 136, 111, 133, 122, 120, 111, 128, 112, 138, 148, 125, 128, 119, 127, 143, 130, 125, 130, 118, 119, 119, 121, 114, 127, 135, 117, 123, 127, 135, 146, 126, 112, 118, 134, 113, 123, 143, 115, 112, 93, 129, 128, 129, 134, 125, 116, 97, 133, 116, 121, 127, 132, 112, 135, 141, 133, 162, 131, 110, 108, 115, 126, 131, 133, 120, 127, 114, 141, 121, 138, 121, 114, 135, 133, 143, 113, 145, 112, 131, 121, 121, 136, 108, 140, 137, 117, 141, 108, 114, 114, 130, 117, 118, 110, 128, 125, 128, 125, 142, 125, 122, 132, 130, 120, 128, 126, 133, 106, 124, 127, 133, 137, 127, 111, 135, 133, 126, 130, 134, 117, 129, 119, 152, 118, 132, 117, 129, 132, 124, 129, 136, 148, 134, 110, 117, 133, 122, 119, 152, 129, 126, 125, 114, 117, 116, 124, 102, 119, 120, 127, 131, 134, 122, 131, 133, 122, 117, 119, 116, 108, 123, 131, 130, 139, 124, 118, 137, 129, 141, 154, 120, 107, 144, 129, 115, 134, 125, 125, 129, 116, 105, 113, 123, 144, 127, 143, 111, 129, 116, 128, 123, 140, 129, 134, 157, 107, 107, 116, 111, 145, 127, 113, 136, 124, 120, 123, 120, 118, 139, 130, 116, 125, 126, 137, 109, 119, 132, 124, 127, 115, 124, 124, 129, 121, 124, 123, 141, 118, 123, 135, 128, 109, 122, 127, 137, 127, 120, 126, 126, 127, 130, 121, 131, 119, 136, 124, 126, 123, 119, 113, 158, 125, 125, 123, 133, 121, 121, 127, 115, 123, 132, 111, 114, 126, 125, 128, 127, 124, 139, 123, 121, 137, 109, 120, 130, 131, 133, 121, 131, 123, 122, 118, 136, 121, 133, 114, 124, 118, 112, 133, 139, 129, 129, 105, 127, 101, 120, 126, 122, 120, 124, 123, 106, 124, 107, 136, 128, 112, 139, 140, 125, 140, 128, 126, 113, 115, 136, 119, 134, 132, 122, 121, 121, 114, 117, 128, 116, 139, 135, 125, 113, 149, 114, 136, 122, 131, 141, 132, 122, 133, 147, 136, 124, 135, 128, 142, 122, 128, 142, 115, 140, 116, 119, 115, 115, 118, 129, 123, 136, 132, 126, 110, 128, 120, 129, 134, 124, 117, 137, 123, 126, 136, 128, 120, 127, 130, 117, 136, 137, 128, 118, 140, 124, 122, 122, 122, 142, 120, 139, 121, 124, 128, 123, 114, 142, 123, 134, 115, 112, 118, 107, 138, 127, 138, 154, 146, 127, 120, 116, 125, 140, 139, 123, 128, 149, 122, 127, 132, 137, 121, 126, 128, 123, 130, 125, 121, 139, 126, 132, 110, 141, 100, 133, 133, 126, 141, 111, 133, 137, 126, 135, 132, 134, 120, 123, 123, 156, 135, 125, 117, 137, 115, 126, 124, 124, 115, 121, 124, 133, 121, 121, 118, 141, 128, 138, 122, 127, 126, 110, 120, 127, 134, 119, 118, 118, 123, 102, 135, 127, 134, 121, 116, 111, 127, 138, 126, 134, 113, 129, 125, 116, 130, 141, 115, 119, 120, 136, 130, 117, 113, 125, 113, 124, 127, 125, 135, 131, 117, 125, 135, 144, 121, 133, 120, 136, 127, 118, 117, 133, 144, 113, 151, 129, 127, 132, 120, 119, 123, 116, 121, 133, 125, 134, 149, 130, 121, 119, 122, 126, 136, 146, 129, 139, 127, 122, 126, 129, 117, 131, 131, 128, 135, 112, 147, 116, 129, 130, 130, 113, 120, 121, 116, 116, 138, 123, 128, 127, 108, 102, 139, 125, 125, 149, 133, 120, 134, 114, 119, 125, 136, 126, 130, 115, 125, 136, 135, 122, 127, 121, 122, 124, 119, 129, 128, 111, 145, 110, 157, 135, 128, 122, 134, 128, 127, 133, 141, 141, 127, 119, 120, 132, 130, 138, 122, 119, 126, 105, 122, 121, 122, 138, 128, 113, 123, 127, 121, 129, 126, 129, 119, 127, 137, 142, 116, 127, 132, 124, 134, 125, 140, 145, 125, 155, 122, 131, 108, 130, 118, 122, 124, 123, 136, 112, 122, 129, 129, 131, 119, 140, 113, 126, 118, 125, 135, 110, 121, 122, 114, 127, 138, 135, 137, 132, 118, 129, 127, 115, 122, 121, 127, 117, 122, 110, 130, 137, 127, 134, 119, 115, 121, 106, 118, 144, 132, 119, 131, 111, 120, 134, 126, 120, 115, 130, 136, 123, 96, 122, 117, 128, 151, 126, 113, 125, 128, 123, 140, 130, 115, 127, 134, 121, 139, 107, 103, 107, 138, 118, 118, 110, 131, 116, 116, 126, 125, 115, 107, 117, 111, 127, 144, 111, 138, 124, 109, 127, 122, 122, 123, 119, 120, 134, 131, 116, 105, 120, 122, 126, 117, 126, 120, 113, 120, 116, 111, 120, 129, 142, 126, 134, 117, 117, 109, 126, 144, 133, 121, 116, 113, 106, 97, 120, 112, 150, 128, 143, 108, 134, 108, 119, 127, 127, 106, 108, 117, 138, 110, 135, 144, 114, 127, 123, 123, 127, 142, 127, 131, 116, 135, 124, 122, 127, 155, 130, 123, 142, 127, 129, 110, 111, 114, 135, 121, 99, 131, 118, 116, 132, 125, 144, 128, 131, 122, 119, 108, 140, 103, 138, 121, 117, 127, 137, 121, 131, 98, 116, 118, 105, 102, 125, 118, 107, 138, 106, 124, 118, 126, 120, 119, 116, 125, 147, 111, 112, 128, 109, 131, 116, 125, 132, 134, 137, 109, 133, 132, 127, 117, 129, 129, 135, 121, 102, 128, 119, 129, 133, 129, 111, 126, 127, 117, 119, 138, 143, 121, 138, 141, 110, 114, 123, 139, 129, 136, 137, 130, 142, 139, 120, 115, 132, 142, 118, 129, 116, 132, 115, 139, 119, 115, 110, 136, 131, 129, 116, 134, 113, 140, 119, 127, 126, 119, 111, 111, 125, 127, 129, 114, 129, 116, 141, 102, 109, 131, 126, 135, 136, 122, 131, 119, 117, 120, 148, 144, 120, 123, 122, 142, 133, 124, 120, 121, 121, 105, 143, 137, 120, 142, 130, 115, 121, 108, 123, 147, 129, 140, 133, 128, 124, 135, 137, 152, 123, 135, 117, 112, 135, 115, 125, 118, 136, 132, 139, 120, 104, 117, 138, 130, 104, 131, 128, 136, 121, 127, 116, 116, 128, 131, 113, 114, 121, 116, 121, 130, 141, 130, 124, 114, 103, 118, 128, 132, 118, 130, 125, 118, 121, 121, 129, 126, 149, 120, 135, 123, 122, 131, 129, 124, 113, 126, 119, 117, 111, 129, 114, 109, 143, 118, 144, 124, 131, 111, 114, 116, 147, 140, 121, 126, 123, 120, 125, 121, 135, 115, 144, 132, 110, 131, 149, 118, 111, 131, 126, 115, 131, 134, 134, 120, 120, 141, 125, 128, 131, 141, 126, 128, 99, 120, 151, 138, 130, 135, 128, 142, 108, 133, 117, 114, 139, 118, 138, 140, 119, 127, 127, 130, 126, 128, 132, 132, 121, 136, 120, 139, 125, 108, 126, 121, 128, 113, 119, 124, 138, 116, 115, 124, 124, 130, 114, 129, 129, 125, 141, 132, 134, 143, 119, 124, 116, 117, 129, 120, 122, 122, 127, 128, 121, 132, 134, 135, 123, 124, 124, 112, 112, 128, 120, 117, 135, 110, 124, 126, 109, 120, 105, 131, 105, 120, 135, 113, 126, 134, 121, 138, 130, 126, 126, 135, 108, 105, 140, 125, 98, 129, 134, 133, 130, 137, 127, 142, 137, 129, 130, 132, 132, 125, 136, 114, 139, 133, 110, 128, 125, 146, 122, 132, 122, 135, 138, 123, 113, 125, 138, 120, 125, 106, 115, 134, 117, 130, 141, 126, 113, 126, 134, 132, 130, 130, 127, 123, 120, 123, 120, 123, 131, 138, 114, 130, 131, 128, 132, 113, 129, 121, 131, 134, 133, 127, 105, 107, 127, 139, 114, 131, 140, 117, 146, 110, 113, 129, 145, 116, 137, 122, 122, 139, 132, 131, 121, 114, 114, 132, 121, 126, 120, 127, 112, 135, 121, 120, 120, 113, 134, 110, 123, 124, 136, 108, 118, 128, 139, 134, 123, 135, 120, 123, 139, 140, 132, 106, 115, 125, 125, 128, 119, 127, 134, 144, 123, 131, 122, 103, 137, 119, 135, 142, 124, 102, 134, 120, 126, 136, 119, 122, 117, 123, 114, 126, 137, 125, 119, 127, 127, 124, 129, 148, 118, 129, 122, 113, 131, 147, 117, 118, 130, 134, 125, 122, 126, 115, 119, 145, 109, 126, 118, 134, 124, 128, 113, 125, 130, 120, 104, 126, 114, 104, 118, 128, 138, 122, 135, 134, 130, 129, 123, 134, 119, 108, 110, 122, 118, 121, 118, 122, 124, 117, 135, 118, 127, 134, 128, 122, 132, 129, 136, 122, 125, 99, 136, 126, 132, 127, 132, 129, 139, 147, 122, 136, 117, 133, 127, 128, 122, 132, 120, 145, 123, 123, 141, 115, 134, 124, 140, 108, 119, 104, 123, 126, 134, 123, 118, 133, 126, 105, 113, 110, 115, 125, 140, 119, 125, 126, 128, 120, 143, 114, 131, 105, 114, 116, 122, 132, 110, 124, 120, 127, 117, 123, 122, 120, 132, 114, 125, 137, 124, 111, 148, 139, 115, 114, 114, 119, 135, 152, 119, 126, 120, 120, 130, 131, 132, 116, 119, 139, 134, 145, 132, 123, 126, 125, 130, 150, 148, 117, 137, 127, 133, 114, 123, 119, 121, 127, 139, 127, 106, 136, 135, 111, 127, 128, 135, 124, 114, 121, 116, 139, 142, 113, 124, 133, 124, 135, 114, 114, 132, 131, 127, 128, 111, 140, 137, 134, 114, 138, 119, 128, 129, 117, 137, 135, 114, 131, 129, 122, 111, 127, 129, 117, 124, 118, 128, 111, 108, 113, 115, 128, 136, 92, 135, 128, 121, 112, 126, 117, 127, 119, 134, 138, 127, 151, 120, 131, 128, 122, 130, 121, 127, 110, 121, 121, 144, 114, 130, 128, 128, 129, 123, 122, 141, 145, 147, 123, 125, 134, 127, 133, 135, 128, 136, 134, 114, 146, 121, 135, 125, 133, 131, 123, 128, 123, 139, 124, 122, 121, 119, 123, 117, 130, 124, 126, 112, 132, 137, 123, 130, 134, 141, 114, 145, 110, 120, 124, 128, 98, 106, 141, 121, 120, 125, 142, 130, 129, 129, 139, 128, 127, 139, 132, 119, 141, 122, 138, 131, 116, 128, 140, 135, 129, 126, 119, 135, 116, 123, 109, 129, 120, 121, 129, 110, 106, 134, 124, 133, 112, 130, 132, 132, 135, 128, 130, 140, 137, 110, 121, 121, 130, 140, 99, 106, 103, 118, 123, 119, 109, 116, 125, 122, 123, 125, 138, 126, 139, 133, 122, 120, 126, 129, 122, 112, 142, 122, 131, 113, 140, 118, 136, 122, 130, 132, 128, 126, 112, 121, 116, 104, 131, 128, 126, 101, 116, 133, 128, 128, 126, 127, 106, 137, 124, 132, 126, 140, 135, 130, 133, 130, 133, 126, 108, 129, 108, 148, 125, 131, 123, 142, 106, 124, 129, 125, 122, 126, 128, 113, 143, 115, 131, 122, 120, 137, 132, 122, 135, 119, 131, 172, 103, 135, 131, 131, 140, 121, 126, 121, 123, 127, 131, 105, 119, 128, 118, 127, 125, 123, 127, 122, 131, 119, 138, 134, 139, 130, 135, 131, 119, 138, 128, 129, 115, 138, 142, 121, 109, 112, 123, 124, 111, 100, 134, 115, 133, 120, 131, 142, 116, 117, 113, 126, 125, 153, 131, 144, 124, 129, 141, 140, 141, 123, 135, 112, 97, 149, 122, 129, 136, 130, 144, 106, 118, 136, 128, 120, 130, 139, 116, 127, 139, 127, 145, 115, 135, 107, 112, 127, 133, 113, 124, 120, 118, 150, 121, 128, 143, 145, 110, 106, 103, 111, 119, 124, 149, 114, 145, 131, 133, 150, 119, 125, 163, 154, 125, 127, 135, 130, 133, 133, 121, 137, 129, 119, 111, 109, 130, 138, 110, 117, 129, 123, 123, 130, 112, 139, 140, 125, 96, 128, 132, 135, 120, 129, 149, 123, 118, 129, 152, 126, 125, 139, 106, 113, 131, 134, 123, 139, 129, 133, 130, 117, 140, 126, 116, 120, 131, 137, 142, 130, 133, 137, 114, 117, 138, 116, 124, 130, 121, 113, 131, 141, 115, 141, 132, 133, 116, 116, 132, 143, 116, 136, 124, 114, 128, 132, 124, 97, 120, 111, 111, 136, 119, 128, 134, 148, 139, 138, 123, 147, 109, 120, 119, 131, 126, 122, 123, 117, 140, 125, 124, 150, 141, 144, 132, 134, 116, 137, 130, 121, 112, 127, 139, 118, 121, 134, 133, 122, 112, 127, 116, 127, 125, 127, 118, 145, 122, 123, 125, 120, 122, 127, 134, 131, 135, 103, 113, 120, 109, 119, 127, 123, 118, 116, 131, 131, 117, 133, 125, 133, 113, 120, 123, 119, 126, 129, 153, 116, 124, 115, 128, 120, 112, 142, 134, 128, 129, 144, 123, 133, 119, 104, 119, 129, 110, 157, 116, 129, 123, 125, 126, 125, 131, 125, 117, 130, 136, 123, 130, 121, 115, 118, 135, 146, 128, 115, 120, 119, 137, 120, 131, 124, 143, 118, 121, 117, 144, 139, 129, 120, 122, 133, 140, 118, 138, 110, 119, 132, 143, 118, 125, 104, 147, 114, 114, 127, 119, 117, 117, 131, 118, 138, 135, 138, 134, 119, 103, 127, 141, 142, 121, 110, 136, 114, 122, 118, 117, 120, 135, 124, 140, 140, 114, 110, 136, 141, 129, 126, 127, 136, 117, 117, 120, 100, 142, 115, 116, 115, 104, 127, 119, 123, 142, 110, 106, 124, 124, 122, 142, 134, 131, 135, 132, 135, 127, 113, 102, 119, 115, 135, 124, 121, 132, 121, 132, 115, 122, 96, 119, 131, 110, 116, 147, 122, 130, 110, 115, 115, 119, 120, 111, 122, 134, 122, 114, 129, 136, 139, 118, 111, 117, 119, 137, 120, 134, 126, 145, 108, 120, 125, 126, 136, 133, 123, 116, 120, 141, 108, 100, 114, 117, 138, 123, 121, 112, 126, 139, 142, 134, 125, 123, 137, 132, 113, 124, 132, 133, 125, 123, 108, 131, 120, 128, 119, 142, 126, 117, 129, 114, 108, 124, 139, 138, 145, 127, 136, 116, 121, 130, 141, 127, 122, 126, 116, 101, 122, 107, 133, 144, 133, 120, 147, 124, 119, 122, 123, 125, 128, 117, 122, 125, 146, 123, 118, 125, 101, 116, 121, 127, 148, 125, 109, 118, 136, 125, 126, 138, 117, 123, 120, 107, 135, 117, 145, 120, 128, 120, 120, 115, 110, 140, 117, 140, 104, 138, 138, 117, 119, 135, 125, 143, 143, 136, 147, 121, 123, 146, 128, 135, 117, 129, 138, 121, 124, 117, 116, 116, 146, 140, 147, 126, 113, 147, 148, 129, 149, 134, 131, 120, 114, 130, 129, 135, 146, 143, 119, 112, 129, 120, 134, 146, 125, 125, 130, 129, 92, 120, 131, 125, 117, 138, 136, 128, 119, 127, 127, 123, 113, 133, 111, 129, 122, 121, 139, 114, 124, 125, 122, 130, 115, 105, 134, 133, 125, 116, 120, 130, 133, 140, 108, 145, 128, 134, 129, 148, 144, 133, 128, 111, 129, 128, 133, 121, 125, 131, 119, 119, 130, 132, 120, 117, 126, 130, 120, 114, 101, 120, 120, 132, 126, 109, 121, 147, 117, 130, 125, 99, 115, 127, 111, 142, 119, 127, 121, 113, 119, 126, 112, 116, 117, 113, 128, 124, 131, 115, 116, 139, 116, 134, 130, 130, 105, 131, 137, 115, 129, 116, 119, 146, 128, 121, 149, 143, 125, 121, 133, 117, 120, 133, 132, 118, 119, 124, 114, 138, 116, 135, 123, 107, 129, 115, 116, 121, 113, 136, 123, 111, 119, 121, 137, 120, 119, 133, 128, 121, 125, 129, 153, 145, 139, 115, 132, 127, 114, 136, 126, 119, 145, 141, 142, 120, 122, 118, 136, 123, 111, 118, 127, 133, 127, 130, 113, 112, 114, 121, 118, 118, 116, 140, 132, 109, 101, 147, 117, 136, 119, 148, 125, 104, 100, 121, 141, 151, 118, 115, 132, 116, 119, 134, 132, 130, 120, 130, 118, 106, 126, 131, 141, 102, 108, 125, 106, 119, 117, 128, 132, 124, 123, 131, 121, 122, 115, 116, 131, 121, 121, 118, 123, 135, 107, 126, 141, 124, 119, 125, 122, 115, 147, 120, 122, 132, 126, 128, 111, 135, 120, 146, 124, 132, 116, 114, 115, 100, 121, 127, 132, 142, 116, 132, 132, 109, 116, 111, 123, 124, 123, 130, 133, 113, 136, 110, 114, 113, 132, 119, 123, 131, 123, 126, 117, 119, 127, 139, 128, 125, 140, 118, 122, 125, 129, 119, 110, 113, 114, 125, 113, 123, 169, 129, 130, 119, 120, 117, 129, 149, 132, 124, 127, 125, 144, 118, 124, 124, 101, 126, 151, 138, 112, 121, 124, 127, 121, 133, 120, 111, 127, 126, 112, 125, 124, 124, 142, 139, 154, 130, 122, 136, 111, 122, 120, 138, 126, 125, 116, 131, 137, 144, 132, 104, 120, 122, 134, 129, 136, 135, 134, 131, 116, 127, 110, 135, 114, 137, 136, 123, 126, 135, 118, 133, 122, 117, 122, 125, 115, 141, 114, 126, 119, 123, 108, 114, 112, 117, 127, 128, 122, 114, 111, 133, 106, 140, 121, 131, 140, 115, 134, 124, 126, 105, 125, 123, 132, 130, 109, 113, 112, 120, 145, 123, 116, 144, 125, 118, 114, 128, 136, 143, 121, 124, 124, 112, 120, 133, 155, 122, 134, 127, 114, 149, 129, 113, 135, 125, 121, 113, 135, 110, 115, 137, 120, 126, 107, 131, 117, 136, 122, 104, 140, 151, 130, 111, 129, 119, 125, 105, 128, 131, 116, 121, 133, 129, 137, 125, 125, 128, 142, 135, 145, 131, 111, 132, 119, 118, 121, 134, 130, 122, 134, 125, 131, 116, 114, 133, 119, 129, 136, 121, 131, 112, 123, 121, 107, 125, 151, 121, 129, 117, 125, 121, 127, 134, 103, 119, 134, 139, 122, 110, 119, 119, 143, 107, 126, 129, 117, 135, 132, 125, 137, 118, 124, 146, 146, 136, 125, 110, 116, 137, 126, 114, 131, 108, 110, 119, 128, 124, 143, 114, 129, 130, 119, 117, 127, 131, 111, 129, 137, 135, 125, 114, 133, 132, 139, 131, 132, 122, 125, 140, 133, 120, 140, 129, 116, 119, 135, 144, 123, 125, 121, 112, 120, 146, 109, 116, 122, 111, 113, 125, 111, 126, 124, 120, 109, 143, 126, 133, 134, 129, 137, 135, 146, 126, 121, 142, 139, 113, 134, 140, 132, 122, 114, 113, 126, 120, 107, 139, 111, 124, 117, 134, 124, 133, 123, 122, 141, 130, 111, 128, 115, 112, 128, 118, 122, 127, 145, 146, 127, 119, 132, 132, 113, 111, 119, 135, 136, 109, 115, 123, 106, 121, 129, 129, 118, 134, 132, 126, 121, 141, 132, 128, 130, 130, 126, 138, 132, 118, 119, 125, 122, 113, 126, 120, 131, 117, 136, 127, 141, 134, 130, 127, 128, 118, 105, 127, 124, 148, 124, 119, 137, 128, 111, 131, 110, 132, 131, 129, 123, 132, 132, 130, 133, 119, 121, 127, 115, 133, 136, 134, 123, 121, 126, 138, 143, 126, 130, 129, 119, 142, 95, 117, 120, 116, 135, 121, 137, 131, 122, 145, 144, 112, 124, 126, 130, 155, 121, 121, 125, 118, 122, 124, 126, 136, 134, 119, 116, 125, 131, 138, 117, 122, 107, 113, 107, 127, 109, 115, 136, 129, 129, 135, 130, 142, 131, 118, 119, 130, 129, 131, 139, 124, 122, 135, 125, 114, 123, 118, 148, 114, 104, 137, 114, 144, 134, 106, 145, 128, 126, 131, 125, 110, 125, 127, 121, 119, 130, 141, 124, 132, 118, 135, 129, 133, 112, 117, 130, 130, 115, 133, 128, 122, 104, 129, 118, 152, 122, 127, 128, 117, 142, 127, 130, 145, 155, 146, 127, 130, 141, 146, 114, 118, 113, 112, 136, 110, 138, 129, 123, 131, 112, 135, 128, 114, 134, 141, 124, 115, 136, 125, 120, 128, 120, 126, 103, 125, 142, 120, 128, 140, 108, 117, 106, 130, 127, 137, 125, 116, 125, 109, 160, 132, 104, 130, 123, 117, 122, 114, 114, 127, 133, 116, 141, 126, 117, 129, 115, 135, 134, 122, 140, 127, 117, 132, 132, 138, 123, 115, 125, 118, 122, 110, 130, 126, 122, 126, 121, 114, 127, 124, 118, 138, 130, 106, 136, 122, 115, 128, 130, 131, 122, 134, 154, 120, 126, 115, 132, 105, 125, 134, 126, 129, 103, 144, 111, 127, 123, 126, 110, 133, 123, 122, 137, 133, 113, 118, 131, 126, 121, 131, 120, 118, 140, 139, 120, 136, 128, 127, 116, 134, 123, 123, 128, 123, 127, 121, 134, 126, 114, 120, 106, 154, 129, 135, 143, 120, 132, 124, 127, 129, 133, 120, 136, 127, 120, 138, 102, 132, 123, 118, 118, 126, 131, 117, 135, 127, 136, 136, 107, 116, 122, 125, 128, 116, 132, 105, 117, 132, 136, 133, 126, 113, 117, 135, 112, 121, 131, 136, 124, 122, 122, 131, 118, 137, 128, 123, 137, 123, 137, 120, 147, 125, 133, 118, 130, 140, 108, 136, 137, 130, 126, 127, 96, 111, 132, 115, 121, 118, 125, 116, 117, 122, 138, 113, 112, 160, 98, 123, 141, 108, 139, 119, 108, 115, 121, 129, 109, 117, 124, 122, 122, 132, 131, 133, 117, 127, 124, 117, 118, 120, 121, 116, 116, 136, 108, 143, 132, 138, 114, 102, 117, 120, 118, 122, 117, 123, 140, 140, 109, 137, 136, 143, 125, 137, 102, 143, 114, 123, 129, 112, 119, 102, 102, 141, 115, 152, 114, 120, 114, 124, 123, 104, 124, 125, 127, 135, 118, 140, 116, 109, 142, 121, 141, 132, 105, 123, 128, 123, 118, 133, 137, 111, 140, 107, 121, 113, 134, 122, 131, 127, 134, 124, 121, 121, 111, 114, 129, 122, 137, 147, 127, 127, 127, 116, 116, 120, 128, 130, 123, 142, 127, 107, 127, 131, 125, 116, 125, 122, 132, 137, 140, 116, 149, 115, 100, 132, 136, 106, 128, 133, 136, 125, 141, 125, 112, 124, 126, 126, 111, 115, 148, 106, 122, 143, 125, 130, 142, 131, 121, 138, 113, 129, 131, 129, 133, 116, 119, 114, 135, 132, 126, 113, 138, 119, 134, 127, 116, 118, 134, 121, 99, 119, 118, 116, 146, 119, 124, 116, 122, 111, 110, 142, 119, 122, 124, 124, 126, 123, 110, 142, 123, 128, 116, 117, 119, 123, 135, 119, 128, 102, 102, 133, 113, 123, 154, 121, 124, 129, 143, 116, 143, 136, 136, 141, 109, 117, 127, 133, 137, 134, 129, 142, 125, 120, 116, 127, 123, 122, 106, 117, 124, 142, 127, 141, 127, 114, 119, 131, 147, 121, 126, 129, 126, 138, 124, 128, 127, 112, 119, 129, 123, 122, 131, 111, 106, 129, 126, 140, 127, 127, 110, 125, 134, 136, 125, 118, 133, 117, 121, 135, 143, 127, 135, 102, 125, 120, 136, 137, 117, 120, 114, 139, 105, 126, 101, 123, 115, 119, 122, 123, 135, 129, 119, 124, 143, 128, 124, 121, 114, 125, 138, 128, 127, 121, 141, 103, 131, 125, 135, 124, 123, 108, 141, 138, 137, 110, 128, 129, 120, 122, 107, 121, 120, 124, 134, 129, 132, 142, 129, 126, 129, 120, 142, 115, 112, 133, 113, 135, 109, 134, 130, 114, 124, 131, 90, 104, 142, 118, 125, 126, 109, 129, 119, 135, 117, 124, 117, 132, 139, 129, 132, 131, 131, 115, 141, 131, 144, 140, 113, 137, 116, 123, 116, 119, 136, 109, 109, 132, 124, 112, 110, 126, 120, 127, 116, 117, 117, 118, 120, 123, 114, 125, 112, 137, 123, 130, 110, 127, 128, 132, 105, 124, 107, 124, 116, 129, 130, 132, 101, 106, 126, 111, 108, 134, 127, 124, 119, 124, 155, 131, 152, 138, 141, 112, 119, 128, 128, 117, 122, 125, 141, 142, 117, 116, 130, 124, 103, 124, 123, 124, 124, 132, 131, 123, 119, 124, 123, 114, 117, 130, 130, 137, 121, 125, 124, 129, 144, 125, 139, 124, 121, 136, 126, 132, 120, 121, 109, 127, 113, 112, 122, 115, 134, 127, 124, 135, 130, 143, 125, 118, 117, 139, 121, 133, 119, 108, 120, 122, 127, 123, 141, 133, 123, 129, 118, 123, 124, 144, 112, 121, 135, 121, 141, 116, 112, 131, 119, 112, 114, 118, 120, 143, 135, 117, 124, 115, 126, 126, 129, 128, 118, 121, 133, 121, 139, 126, 119, 141, 122, 110, 128, 110, 135, 118, 119, 129, 121, 123, 129, 111, 130, 118, 153, 123, 116, 129, 148, 128, 126, 112, 108, 119, 116, 147, 122, 127, 128, 122, 142, 110, 125, 120, 129, 116, 124, 132, 138, 137, 132, 102, 126, 117, 150, 117, 112, 127, 122, 113, 118, 135, 109, 122, 112, 124, 121, 148, 128, 135, 126, 125, 128, 122, 120, 126, 163, 126, 116, 106, 144, 126, 136, 134, 127, 121, 119, 121, 134, 142, 128, 118, 135, 139, 124, 126, 122, 117, 125, 112, 116, 123, 122, 137, 149, 138, 120, 136, 119, 118, 124, 125, 118, 130, 121, 129, 114, 113, 134, 135, 141, 124, 126, 118, 121, 128, 126, 114, 133, 135, 134, 126, 126, 117, 135, 122, 135, 129, 135, 125, 108, 135, 126, 132, 125, 119, 127, 123, 112, 118, 112, 127, 121, 132, 123, 123, 125, 125, 130, 114, 108, 122, 136, 123, 127, 118, 127, 133, 132, 116, 134, 115, 101, 134, 114, 130, 110, 126, 134, 128, 124, 140, 133, 133, 130, 127, 129, 121, 123, 135, 141, 128, 136, 131, 128, 119, 116, 130, 124, 125, 130, 129, 128, 121, 124, 122, 110, 126, 127, 132, 126, 123, 128, 139, 117, 125, 125, 113, 136, 118, 135, 114, 128, 135, 119, 140, 131, 135, 134, 130, 135, 134, 121, 128, 102, 134, 137, 115, 114, 118, 125, 128, 126, 130, 122, 121, 109, 118, 109, 115, 132, 116, 130, 149, 105, 105, 117, 125, 122, 113, 140, 119, 116, 135, 121, 107, 127, 128, 138, 125, 120, 125, 147, 118, 113, 133, 118, 113, 130, 138, 112, 116, 130, 136, 120, 140, 137, 129, 120, 123, 126, 126, 128, 111, 121, 130, 128, 120, 133, 136, 130, 111, 119, 125, 114, 139, 131, 131, 116, 126, 127, 112, 128, 131, 127, 123, 130, 123, 136, 126, 132, 137, 122, 140, 134, 129, 131, 117, 142, 155, 125, 125, 131, 120, 130, 124, 125, 114, 121, 125, 135, 133, 111, 146, 115, 127, 123, 130, 127, 129, 131, 121, 124, 124, 119, 132, 128, 141, 128, 144, 127, 136, 138, 131, 113, 131, 119, 123, 109, 128, 124, 119, 155, 138, 97, 119, 125, 124, 131, 122, 123, 115, 122, 139, 119, 132, 117, 133, 138, 137, 129, 141, 127, 134, 108, 134, 126, 135, 131, 108, 140, 132, 117, 131, 126, 111, 125, 128, 120, 138, 127, 121, 123, 120, 145, 122, 125, 133, 121, 146, 133, 122, 129, 105, 114, 131, 128, 123, 128, 125, 141, 120, 118, 111, 129, 132, 123, 143, 120, 128, 123, 129, 127, 109, 107, 146, 121, 121, 129, 116, 121, 116, 134, 133, 123, 134, 116, 129, 119, 125, 119, 113, 116, 118, 105, 155, 123, 138, 132, 117, 134, 128, 119, 138, 100, 110, 138, 136, 121, 123, 139, 100, 126, 119, 129, 115, 121, 113, 146, 124, 125, 105, 103, 101, 120, 115, 115, 124, 119, 126, 133, 134, 114, 125, 129, 118, 142, 119, 121, 119, 111, 118, 113, 125, 126, 130, 122, 127, 112, 143, 123, 127, 121, 121, 128, 132, 122, 123, 147, 97, 119, 133, 125, 129, 128, 116, 126, 126, 118, 123, 125, 122, 127, 128, 108, 113, 109, 120, 114, 130, 112, 111, 135, 140, 128, 132, 93, 122, 116, 122, 111, 124, 143, 141, 139, 113, 118, 123, 128, 128, 125, 135, 133, 136, 120, 140, 129, 127, 123, 120, 104, 121, 132, 115, 101, 127, 114, 119, 115, 109, 129, 132, 104, 130, 125, 125, 140, 116, 134, 116, 99, 119, 114, 125, 133, 140, 133, 157, 112, 108, 122, 125, 118, 123, 116, 125, 116, 107, 115, 107, 123, 137, 119, 113, 119, 119, 140, 126, 122, 136, 131, 127, 125, 115, 118, 137, 132, 127, 152, 123, 135, 127, 135, 114, 133, 127, 122, 115, 116, 120, 131, 117, 110, 124, 106, 126, 139, 116, 113, 128, 132, 107, 123, 121, 121, 115, 126, 112, 136, 129, 150, 123, 123, 134, 115, 108, 122, 142, 134, 119, 156, 117, 122, 142, 124, 131, 133, 117, 113, 108, 133, 128, 125, 115, 127, 148, 128, 125, 123, 116, 116, 138, 132, 126, 123, 127, 131, 123, 134, 100, 120, 122, 103, 136, 104, 109, 133, 124, 121, 122, 124, 127, 125, 117, 146, 130, 124, 132, 128, 139, 119, 135, 119, 135, 113, 118, 119, 134, 132, 128, 119, 122, 126, 142, 110, 133, 121, 112, 142, 129, 145, 119, 141, 121, 120, 115, 123, 122, 137, 121, 120, 119, 126, 112, 122, 127, 128, 128, 126, 123, 120, 123, 111, 134, 125, 115, 148, 130, 121, 130, 118, 117, 142, 141, 112, 112, 133, 149, 136, 130, 128, 129, 117, 119, 129, 142, 125, 125, 104, 110, 120, 147, 141, 119, 122, 126, 114, 121, 105, 125, 131, 126, 135, 131, 118, 119, 135, 117, 145, 124, 161, 114, 131, 135, 122, 124, 136, 111, 131, 116, 120, 125, 128, 123, 130, 127, 132, 102, 129, 127, 123, 138, 140, 114, 119, 113, 114, 135, 138, 129, 134, 128, 133, 116, 123, 130, 135, 127, 121, 121, 136, 131, 116, 95, 99, 122, 116, 116, 118, 129, 122, 143, 131, 102, 116, 133, 127, 128, 100, 129, 115, 124, 127, 130, 126, 121, 134, 133, 113, 143, 130, 133, 120, 124, 113, 131, 113, 129, 117, 116, 108, 112, 99, 123, 124, 137, 102, 124, 128, 131, 133, 139, 122, 122, 131, 113, 121, 124, 112, 145, 117, 112, 133, 130, 121, 127, 131, 131, 119, 130, 125, 118, 117, 120, 123, 118, 113, 130, 126, 121, 130, 115, 121, 111, 132, 124, 124, 127, 136, 121, 122, 114, 124, 105, 144, 143, 102, 133, 125, 121, 130, 118, 130, 128, 121, 107, 110, 127, 117, 138, 114, 129, 109, 120, 125, 116, 147, 145, 136, 117, 106, 127, 140, 110, 130, 128, 123, 124, 127, 126, 119, 129, 116, 120, 111, 124, 126, 118, 141, 129, 130, 119, 151, 124, 134, 126, 150, 137, 126, 120, 120, 147, 119, 123, 134, 133, 132, 120, 119, 120, 132, 134, 114, 112, 125, 114, 122, 129, 131, 137, 137, 138, 129, 120, 136, 111, 124, 122, 113, 118, 131, 127, 128, 110, 128, 128, 131, 125, 130, 140, 114, 127, 129, 107, 109, 121, 125, 141, 113, 130, 120, 120, 132, 118, 118, 137, 123, 118, 134, 146, 126, 119, 122, 121, 132, 135, 118, 128, 138, 127, 116, 123, 139, 116, 132, 122, 113, 106, 110, 138, 119, 121, 136, 126, 114, 121, 117, 131, 120, 134, 111, 138, 122, 147, 119, 107, 127, 119, 127, 125, 124, 120, 100, 137, 124, 116, 134, 110, 143, 111, 145, 125, 127, 116, 119, 122, 122, 128, 122, 151, 119, 127, 131, 130, 141, 105, 106, 137, 119, 140, 122, 116, 137, 118, 134, 111, 144, 118, 136, 114, 116, 124, 124, 117, 121, 131, 130, 125, 124, 120, 134, 118, 129, 127, 125, 121, 125, 128, 130, 124, 140, 129, 113, 133, 130, 110, 136, 123, 124, 131, 119, 124, 148, 137, 124, 114, 123, 131, 123, 124, 138, 111, 122, 129, 125, 127, 124, 167, 121, 135, 136, 119, 117, 128, 136, 136, 127, 124, 126, 136, 124, 119, 135, 127, 125, 128, 124, 135, 106, 130, 144, 119, 135, 119, 115, 127, 127, 124, 136, 122, 132, 126, 111, 130, 121, 136, 110, 112, 107, 118, 129, 124, 131, 126, 118, 118, 131, 120, 120, 117, 126, 122, 132, 124, 116, 119, 121, 129, 120, 122, 125, 112, 119, 123, 130, 117, 122, 105, 136, 131, 122, 137, 110, 114, 127, 158, 125, 127, 108, 154, 130, 126, 118, 116, 126, 142, 139, 134, 124, 115, 121, 135, 119, 128, 123, 117, 109, 110, 140, 151, 122, 138, 114, 114, 135, 134, 118, 128, 139, 120, 115, 139, 128, 110, 117, 133, 120, 114, 124, 116, 137, 128, 138, 133, 124, 114, 125, 128, 140, 109, 117, 127, 135, 134, 140, 141, 150, 126, 116, 133, 136, 132, 137, 139, 121, 126, 124, 117, 130, 142, 121, 135, 126, 141, 133, 131, 109, 108, 123, 114, 127, 110, 126, 128, 115, 121, 116, 124, 126, 109, 131, 120, 135, 126, 125, 126, 124, 138, 125, 120, 119, 150, 130, 102, 123, 129, 110, 116, 126, 129, 131, 128, 131, 113, 137, 122, 128, 144, 120, 121, 138, 118, 140, 147, 109, 124, 127, 129, 124, 126, 129, 112, 126, 116, 120, 121, 117, 112, 137, 134, 141, 138, 124, 140, 131, 132, 117, 140, 111, 115, 107, 120, 130, 94, 124, 112, 138, 121, 121, 138, 131, 121, 112, 131, 138, 120, 128, 117, 127, 123, 149, 132, 121, 133, 129, 132, 134, 128, 144, 120, 125, 124, 133, 150, 137, 133, 111, 133, 145, 123, 107, 110, 107, 131, 118, 125, 120, 141, 120, 135, 129, 127, 122, 109, 108, 122, 130, 122, 155, 116, 137, 136, 119, 127, 143, 134, 133, 112, 120, 113, 128, 104, 124, 133, 129, 129, 127, 125, 128, 129, 128, 129, 131, 126, 109, 126, 117, 118, 123, 129, 104, 116, 129, 144, 126, 151, 128, 127, 127, 149, 114, 128, 121, 142, 122, 126, 140, 128, 132, 127, 124, 122, 134, 127, 123, 138, 123, 122, 116, 117, 120, 127, 131, 130, 127, 137, 126, 132, 130, 133, 128, 134, 126, 122, 126, 135, 126, 105, 115, 123, 130, 124, 130, 128, 131, 137, 127, 90, 125, 115, 129, 133, 112, 136, 137, 129, 120, 135, 155, 127, 111, 124, 117, 116, 116, 130, 121, 112, 131, 136, 128, 127, 109, 134, 133, 138, 124, 127, 115, 143, 126, 129, 112, 112, 134, 130, 124, 123, 138, 126, 138, 126, 121, 148, 130, 116, 122, 131, 113, 119, 127, 121, 118, 140, 107, 116, 121, 120, 115, 114, 115, 144, 114, 121, 116, 104, 121, 131, 134, 125, 124, 117, 121, 126, 146, 111, 146, 120, 124, 110, 109, 125, 120, 127, 114, 143, 135, 110, 120, 120, 137, 112, 135, 107, 125, 130, 127, 120, 137, 123, 122, 125, 117, 128, 133, 154, 131, 116, 129, 113, 126, 149, 118, 116, 132, 111, 110, 132, 119, 118, 146, 117, 122, 125, 125, 119, 114, 108, 137, 120, 121, 134, 123, 131, 134, 138, 137, 132, 141, 149, 106, 137, 148, 147, 129, 124, 120, 128, 124, 126, 110, 129, 117, 137, 127, 140, 127, 117, 122, 121, 124, 126, 125, 125, 120, 115, 110, 123, 111, 134, 122, 128, 129, 137, 133, 140, 121, 151, 122, 138, 159, 108, 121, 122, 127, 145, 115, 121, 144, 129, 123, 123, 131, 131, 115, 122, 125, 122, 109, 111, 124, 137, 124, 122, 129, 126, 127, 124, 120, 122, 131, 121, 111, 129, 109, 111, 141, 110, 130, 134, 134, 153, 120, 113, 142, 106, 112, 110, 117, 124, 129, 124, 116, 119, 129, 125, 123, 148, 133, 119, 120, 127, 136, 139, 108, 124, 144, 124, 127, 119, 140, 129, 130, 130, 127, 123, 120, 118, 120, 129, 136, 132, 123, 127, 106, 132, 133, 124, 129, 118, 117, 130, 123, 121, 122, 137, 138, 109, 126, 135, 129, 113, 132, 123, 111, 125, 124, 128, 131, 132, 124, 109, 126, 134, 130, 130, 124, 121, 126, 127, 131, 139, 130, 126, 128, 124, 125, 118, 120, 134, 135, 123, 143, 127, 134, 122, 104, 120, 161, 121, 137, 131, 124, 129, 120, 137, 142, 138, 129, 137, 124, 129, 125, 123, 117, 137, 121, 111, 115, 135, 122, 118, 127, 161, 127, 137, 127, 126, 124, 137, 143, 117, 112, 129, 122, 128, 137, 138, 129, 112, 121, 113, 130, 139, 139, 109, 131, 142, 112, 110, 125, 140, 129, 133, 132, 125, 107, 114, 141, 120, 120, 135, 107, 123, 109, 142, 121, 139, 141, 121, 140, 134, 131, 116, 117, 107, 133, 131, 135, 129, 122, 122, 132, 129, 145, 127, 122, 117, 111, 94, 114, 112, 130, 119, 133, 117, 128, 127, 127, 129, 116, 137, 122, 116, 102, 120, 117, 128, 135, 130, 139, 136, 130, 121, 130, 114, 121, 118, 109, 135, 139, 106, 102, 125, 140, 113, 135, 141, 126, 115, 114, 105, 123, 118, 130, 115, 137, 113, 129, 120, 132, 123, 132, 129, 115, 117, 140, 143, 122, 142, 129, 121, 115, 125, 120, 123, 119, 110, 128, 103, 137, 125, 115, 136, 116, 117, 124, 137, 119, 120, 125, 116, 142, 144, 137, 118, 123, 127, 123, 134, 132, 118, 122, 122, 107, 132, 131, 114, 129, 123, 119, 120, 108, 134, 126, 121, 128, 124, 134, 132, 146, 107, 132, 124, 132, 128, 127, 129, 134, 131, 113, 122, 107, 112, 119, 143, 120, 121, 124, 130, 126, 113, 141, 129, 131, 116, 122, 112, 134, 113, 118, 148, 141, 114, 131, 90, 126, 139, 121, 118, 126, 124, 117, 121, 124, 128, 133, 123, 123, 121, 129, 121, 126, 121, 115, 120, 136, 137, 115, 128, 136, 133, 120, 131, 111, 131, 128, 129, 134, 114, 120, 129, 122, 124, 137, 104, 142, 125, 121, 119, 124, 113, 122, 128, 133, 123, 113, 124, 115, 135, 121, 127, 124, 135, 126, 133, 113, 142, 116, 115, 107, 129, 118, 136, 153, 129, 119, 123, 124, 118, 119, 112, 116, 117, 107, 134, 147, 134, 127, 150, 114, 114, 137, 120, 119, 121, 148, 132, 127, 142, 115, 126, 129, 118, 130, 94, 104, 113, 148, 129, 129, 128, 147, 132, 124, 122, 124, 129, 124, 120, 117, 125, 142, 118, 125, 133, 115, 127, 146, 132, 121, 130, 133, 134, 114, 116, 143, 127, 109, 128, 120, 123, 121, 133, 134, 112, 130, 125, 117, 123, 131, 107, 131, 114, 132, 120, 108, 122, 144, 123, 125, 126, 131, 120, 115, 134, 112, 135, 120, 114, 107, 124, 138, 141, 130, 112, 131, 113, 121, 137, 136, 122, 145, 116, 109, 117, 129, 125, 113, 133, 126, 104, 131, 128, 131, 128, 121, 127, 134, 124, 108, 130, 116, 116, 129, 134, 146, 102, 132, 111, 136, 151, 118, 118, 121, 126, 128, 130, 109, 123, 118, 120, 126, 128, 135, 116, 111, 123, 138, 142, 118, 120, 163, 133, 113, 127, 140, 134, 136, 119, 100, 109, 126, 145, 138, 128, 131, 133, 124, 136, 130, 120, 117, 133, 119, 119, 137, 125, 123, 132, 118, 127, 115, 114, 114, 124, 136, 132, 123, 131, 135, 132, 123, 119, 121, 129, 128, 122, 121, 139, 125, 127, 130, 133, 127, 127, 134, 116, 114, 108, 124, 120, 122, 113, 108, 107, 137, 127, 137, 131, 123, 122, 114, 120, 118, 132, 126, 131, 115, 133, 137, 111, 115, 136, 121, 129, 135, 133, 125, 141, 124, 116, 112, 142, 119, 127, 116, 122, 105, 116, 105, 141, 125, 113, 115, 121, 120, 127, 115, 145, 117, 130, 135, 120, 133, 136, 125, 133, 122, 125, 119, 126, 126, 140, 121, 116, 97, 127, 99, 139, 117, 115, 134, 120, 118, 123, 137, 122, 118, 124, 114, 136, 120, 108, 131, 130, 125, 115, 121, 123, 123, 134, 131, 124, 152, 128, 130, 119, 129, 157, 114, 124, 128, 115, 127, 146, 121, 124, 130, 128, 128, 122, 123, 126, 119, 123, 118, 124, 139, 141, 140, 123, 120, 116, 109, 133, 139, 124, 110, 126, 111, 143, 128, 147, 121, 141, 99, 131, 131, 138, 127, 138, 110, 135, 133, 119, 119, 109, 136, 108, 126, 133, 112, 130, 130, 114, 123, 132, 125, 125, 134, 133, 121, 129, 123, 136, 126, 108, 120, 149, 118, 115, 115, 115, 117, 128, 126, 128, 112, 124, 132, 112, 119, 124, 122, 134, 125, 138, 126, 132, 131, 139, 129, 126, 114, 116, 114, 136, 124, 118, 146, 111, 123, 133, 144, 129, 128, 132, 116, 113, 130, 139, 123, 121, 126, 127, 139, 112, 124, 134, 120, 121, 132, 134, 122, 123, 162, 138, 125, 110, 123, 130, 109, 118, 130, 117, 139, 117, 135, 108, 139, 128, 110, 108, 124, 142, 110, 124, 116, 109, 139, 118, 119, 114, 104, 123, 133, 123, 123, 139, 132, 132, 124, 125, 119, 117, 119, 114, 128, 125, 136, 108, 101, 111, 143, 124, 129, 120, 134, 123, 132, 125, 170, 118, 111, 129, 109, 101, 128, 138, 115, 140, 111, 119, 133, 135, 129, 137, 113, 132, 134, 125, 144, 111, 140, 119, 121, 120, 125, 131, 129, 129, 129, 127, 144, 129, 124, 123, 143, 135, 125, 136, 111, 135, 133, 124, 123, 115, 129, 133, 144, 123, 135, 137, 140, 131, 136, 129, 136, 132, 115, 129, 122, 127, 125, 126, 123, 126, 110, 122, 116, 158, 120, 126, 121, 136, 133, 139, 119, 128, 127, 143, 117, 122, 127, 124, 125, 121, 121, 121, 128, 128, 118, 137, 117, 131, 120, 124, 111, 134, 113, 114, 129, 137, 118, 112, 101, 131, 143, 135, 128, 128, 123, 121, 147, 115, 124, 107, 125, 124, 131, 120, 126, 116, 122, 132, 140, 106, 126, 125, 143, 137, 118, 133, 146, 126, 124, 136, 120, 129, 115, 130, 129, 127, 133, 127, 133, 126, 106, 114, 117, 132, 127, 138, 117, 128, 115, 131, 123, 130, 115, 123, 131, 125, 130, 137, 132, 117, 125, 113, 131, 128, 138, 126, 121, 129, 126, 136, 120, 125, 101, 133, 129, 117, 114, 115, 127, 132, 138, 141, 134, 132, 126, 132, 112, 105, 113, 106, 122, 112, 130, 151, 117, 121, 101, 137, 120, 137, 119, 126, 114, 128, 119, 113, 151, 112, 122, 133, 138, 123, 118, 130, 126, 114, 148, 118, 116, 116, 132, 129, 115, 126, 132, 120, 137, 125, 117, 124, 132, 144, 116, 121, 120, 128, 137, 127, 141, 96, 118, 106, 98, 127, 134, 128, 138, 118, 118, 124, 106, 136, 97, 133, 144, 120, 142, 140, 113, 132, 145, 118, 119, 135, 127, 107, 130, 129, 133, 122, 139, 132, 105, 119, 132, 105, 140, 137, 114, 143, 123, 113, 119, 133, 130, 115, 135, 129, 118, 127, 115, 135, 134, 134, 127, 123, 117, 136, 120, 85, 129, 121, 109, 128, 105, 120, 121, 135, 89, 124, 124, 109, 121, 124, 126, 110, 121, 118, 124, 111, 110, 117, 108, 108, 129, 116, 109, 129, 122, 137, 108, 116, 118, 128, 117, 126, 123, 128, 126, 125, 125, 123, 140, 106, 145, 108, 138, 130, 125, 121, 117, 135, 148, 130, 125, 146, 119, 117, 126, 111, 122, 127, 141, 124, 146, 125, 125, 123, 93, 137, 144, 116, 117, 120, 134, 104, 152, 116, 137, 128, 128, 127, 124, 147, 137, 128, 133, 130, 117, 126, 131, 120, 150, 133, 121, 148, 126, 133, 107, 118, 142, 134, 129, 110, 135, 163, 127, 137, 130, 128, 131, 117, 131, 125, 113, 140, 139, 126, 110, 119, 134, 121, 134, 116, 133, 129, 110, 110, 112, 124, 136, 127, 126, 128, 127, 103, 122, 111, 142, 129, 130, 122, 122, 109, 113, 123, 110, 126, 151, 119, 129, 121, 120, 105, 108, 118, 120, 118, 131, 112, 138, 125, 123, 136, 114, 113, 124, 106, 133, 110, 118, 106, 120, 119, 122, 121, 129, 138, 128, 120, 118, 102, 128, 132, 120, 129, 137, 132, 135, 109, 123, 136, 130, 135, 112, 109, 137, 119, 127, 101, 138, 117, 118, 116, 109, 114, 119, 124, 133, 128, 130, 116, 115, 146, 130, 133, 123, 102, 127, 138, 135, 130, 126, 136, 116, 111, 133, 136, 109, 129, 123, 138, 126, 121, 116, 113, 138, 105, 125, 123, 112, 117, 123, 117, 127, 125, 121, 121, 110, 125, 134, 131, 144, 135, 135, 127, 114, 132, 121, 137, 113, 125, 112, 132, 119, 110, 133, 129, 124, 108, 134, 115, 81, 130, 128, 117, 120, 125, 146, 117, 127, 109, 104, 120, 131, 127, 125, 120, 119, 141, 137, 147, 122, 122, 113, 128, 120, 107, 100, 103, 135, 126, 126, 150, 115, 132, 125, 120, 120, 105, 128, 140, 132, 138, 116, 137, 125, 137, 121, 131, 123, 121, 116, 124, 117, 111, 109, 113, 108, 121, 121, 118, 137, 126, 160, 113, 126, 132, 119, 113, 136, 137, 131, 140, 117, 136, 116, 129, 116, 121, 117, 122, 123, 97, 120, 123, 131, 122, 124, 152, 126, 107, 130, 118, 132, 132, 130, 130, 123, 135, 117, 114, 131, 128, 147, 135, 125, 97, 92, 138, 138, 107, 115, 135, 135, 131, 130, 125, 141, 139, 139, 140, 127, 121, 129, 118, 124, 127, 142, 131, 117, 114, 133, 141, 135, 103, 122, 123, 124, 145, 123, 121, 135, 123, 138, 133, 121, 130, 121, 124, 126, 131, 124, 136, 128, 135, 120, 129, 124, 127, 114, 146, 145, 101, 138, 139, 137, 127, 123, 115, 114, 120, 136, 134, 119, 116, 125, 117, 133, 137, 123, 128, 127, 110, 118, 101, 128, 106, 123, 127, 123, 111, 110, 140, 116, 125, 119, 131, 143, 111, 112, 126, 110, 125, 121, 111, 117, 125, 134, 118, 137, 121, 145, 156, 149, 134, 127, 119, 122, 107, 117, 134, 120, 111, 157, 132, 132, 115, 129, 118, 130, 115, 127, 121, 108, 115, 148, 117, 148, 118, 124, 141, 103, 132, 124, 127, 106, 114, 131, 122, 126, 135, 113, 131, 135, 111, 134, 123, 113, 116, 158, 145, 150, 124, 122, 110, 114, 123, 122, 132, 141, 126, 118, 109, 115, 120, 128, 128, 113, 124, 122, 120, 113, 140, 112, 117, 121, 129, 128, 128, 133, 137, 120, 127, 129, 114, 140, 126, 142, 115, 171, 133, 134, 129, 147, 136, 140, 113, 129, 132, 123, 124, 129, 109, 130, 127, 131, 109, 127, 107, 131, 124, 120, 156, 126, 122, 131, 132, 111, 133, 120, 115, 121, 118, 118, 120, 127, 111, 133, 115, 97, 133, 135, 121, 109, 137, 136, 128, 137, 130, 147, 131, 124, 108, 129, 122, 125, 132, 134, 130, 130, 127, 129, 129, 115, 111, 111, 112, 119, 117, 126, 127, 129, 140, 129, 124, 132, 128, 123, 119, 111, 131, 123, 116, 135, 111, 106, 120, 123, 128, 132, 116, 126, 123, 126, 131, 122, 117, 134, 122, 126, 140, 122, 132, 133, 108, 139, 122, 137, 142, 135, 109, 111, 134, 116, 150, 133, 153, 116, 107, 158, 118, 107, 126, 134, 111, 118, 135, 127, 140, 85, 146, 142, 125, 114, 117, 148, 121, 136, 129, 120, 102, 125, 136, 139, 146, 123, 128, 125, 148, 118, 144, 123, 145, 116, 131, 135, 123, 110, 110, 114, 103, 117, 139, 136, 129, 120, 123, 144, 115, 129, 122, 95, 121, 132, 128, 128, 126, 129, 114, 131, 120, 112, 106, 137, 121, 131, 134, 119, 128, 149, 134, 115, 118, 124, 119, 124, 129, 144, 119, 114, 130, 108, 131, 135, 156, 119, 125, 112, 112, 127, 129, 109, 128, 144, 144, 121, 133, 121, 130, 123, 139, 125, 131, 142, 122, 124, 126, 107, 115, 115, 126, 106, 126, 116, 112, 127, 134, 130, 145, 138, 133, 127, 119, 116, 138, 132, 126, 139, 132, 113, 130, 133, 123, 109, 135, 119, 118, 113, 132, 145, 131, 129, 130, 133, 113, 122, 129, 120, 141, 107, 130, 115, 136, 114, 116, 116, 139, 108, 118, 127, 137, 140, 120, 123, 122, 129, 110, 116, 124, 113, 118, 134, 136, 116, 123, 121, 139, 130, 126, 105, 116, 119, 121, 104, 121, 120, 130, 95, 130, 101, 121, 120, 125, 121, 100, 142, 130, 133, 135, 119, 105, 122, 138, 126, 115, 126, 136, 108, 140, 152, 117, 124, 133, 118, 141, 119, 120, 126, 124, 121, 123, 135, 123, 101, 122, 118, 135, 124, 123, 126, 129, 117, 127, 111, 138, 117, 134, 124, 118, 129, 102, 118, 115, 115, 126, 116, 108, 119, 128, 131, 135, 123, 117, 132, 132, 128, 116, 132, 134, 131, 116, 129, 112, 128, 112, 137, 123, 118, 138, 124, 101, 125, 114, 114, 117, 140, 124, 140, 138, 135, 139, 138, 135, 112, 149, 120, 121, 128, 128, 136, 131, 121, 108, 139, 129, 125, 117, 142, 130, 119, 120, 135, 132, 126, 132, 128, 120, 131, 113, 132, 114, 126, 136, 134, 115, 111, 122, 105, 138, 116, 129, 79, 135, 117, 131, 141, 123, 122, 108, 118, 135, 129, 128, 122, 116, 136, 137, 122, 131, 123, 125, 137, 141, 123, 116, 141, 127, 130, 127, 120, 116, 124, 130, 127, 129, 112, 128, 130, 125, 126, 111, 122, 120, 106, 129, 117, 124, 128, 125, 141, 120, 118, 123, 128, 113, 119, 138, 124, 125, 127, 126, 123, 129, 124, 128, 115, 131, 115, 118, 122, 144, 132, 131, 133, 126, 125, 124, 118, 144, 124, 122, 125, 138, 117, 128, 110, 143, 127, 111, 115, 126, 126, 121, 118, 121, 124, 104, 119, 143, 113, 130, 116, 117, 135, 132, 124, 120, 117, 139, 114, 138, 135, 141, 142, 124, 132, 133, 122, 126, 135, 117, 133, 129, 123, 128, 132, 128, 132, 125, 108, 136, 129, 130, 132, 124, 134, 127, 127, 122, 119, 110, 143, 135, 134, 119, 126, 107, 125, 124, 131, 124, 125, 123, 123, 124, 132, 124, 109, 118, 117, 113, 131, 122, 118, 115, 117, 110, 134, 116, 126, 105, 138, 112, 126, 125, 129, 119, 118, 123, 127, 119, 141, 120, 124, 128, 138, 124, 116, 118, 123, 144, 116, 134, 120, 127, 124, 125, 127, 125, 113, 121, 115, 124, 124, 124, 123, 124, 142, 139, 129, 135, 111, 114, 135, 119, 128, 135, 121, 119, 122, 121, 122, 115, 124, 123, 129, 121, 124, 117, 114, 108, 124, 123, 123, 123, 132, 113, 132, 115, 116, 136, 122, 132, 118, 122, 114, 119, 136, 130, 115, 112, 127, 132, 121, 114, 109, 133, 138, 129, 132, 125, 122, 128, 127, 129, 130, 121, 137, 126, 131, 122, 110, 117, 133, 139, 130, 104, 148, 118, 126, 138, 131, 113, 115, 123, 130, 122, 119, 133, 118, 134, 128, 123, 143, 120, 132, 123, 121, 125, 124, 131, 130, 124, 124, 123, 117, 115, 114, 129, 125, 126, 131, 111, 116, 123, 129, 124, 112, 140, 126, 128, 120, 122, 129, 114, 113, 115, 119, 113, 117, 119, 135, 117, 141, 123, 123, 137, 131, 124, 116, 122, 127, 129, 135, 116, 119, 142, 121, 140, 116, 128, 134, 135, 112, 120, 129, 120, 138, 129, 138, 125, 134, 134, 130, 123, 117, 111, 130, 104, 122, 129, 123, 114, 106, 125, 121, 127, 143, 118, 114, 123, 110, 113, 121, 126, 152, 126, 144, 122, 116, 130, 124, 114, 111, 124, 122, 140, 124, 127, 127, 127, 127, 113, 142, 122, 121, 125, 118, 133, 129, 138, 130, 119, 114, 118, 126, 133, 123, 126, 129, 105, 139, 136, 124, 123, 118, 111, 117, 129, 127, 102, 138, 125, 125, 122, 127, 131, 132, 112, 124, 117, 129, 126, 129, 125, 131, 125, 127, 123, 116, 116, 121, 131, 119, 137, 135, 131, 114, 129, 120, 128, 121, 121, 123, 119, 124, 135, 121, 118, 119, 109, 124, 131, 126, 129, 142, 105, 135, 105, 138, 123, 128, 118, 132, 112, 128, 133, 129, 118, 134, 112, 123, 134, 145, 133, 156, 125, 121, 117, 122, 137, 126, 146, 125, 146, 136, 137, 133, 125, 128, 114, 129, 119, 136, 129, 143, 122, 133, 135, 132, 119, 137, 137, 116, 135, 103, 129, 121, 142, 121, 107, 120, 131, 125, 119, 125, 134, 131, 126, 126, 125, 133, 124, 117, 132, 144, 129, 125, 132, 120, 117, 136, 126, 123, 131, 132, 130, 119, 138, 116, 119, 128, 136, 114, 125, 139, 135, 126, 121, 125, 141, 134, 127, 122, 127, 124, 105, 130, 137, 123, 127, 110, 121, 129, 142, 138, 129, 120, 128, 116, 129, 133, 116, 120, 122, 126, 141, 117, 140, 128, 125, 127, 118, 120, 122, 122, 133, 122, 143, 127, 124, 129, 118, 120, 120, 125, 119, 118, 113, 122, 125, 119, 114, 116, 112, 126, 126, 112, 126, 146, 122, 140, 141, 113, 118, 139, 130, 115, 116, 112, 120, 141, 117, 128, 122, 116, 135, 133, 127, 137, 125, 123, 124, 139, 129, 111, 131, 139, 132, 119, 136, 122, 129, 127, 121, 121, 130, 118, 120, 130, 132, 125, 119, 131, 128, 143, 135, 119, 114, 120, 120, 124, 126, 122, 127, 147, 116, 124, 129, 120, 117, 120, 106, 131, 117, 138, 117, 123, 117, 117, 135, 120, 116, 117, 122, 134, 115, 136, 125, 115, 129, 106, 124, 133, 126, 130, 113, 104, 109, 143, 112, 125, 129, 129, 128, 118, 120, 117, 118, 126, 136, 162, 130, 115, 124, 127, 125, 72, 134, 120, 137, 140, 128, 115, 141, 124, 127, 134, 128, 112, 116, 126, 136, 115, 121, 128, 123, 133, 111, 145, 140, 141, 121, 147, 114, 104, 118, 135, 133, 106, 143, 135, 117, 113, 130, 132, 112, 129, 121, 115, 123, 121, 132, 120, 127, 120, 108, 136, 112, 124, 119, 116, 124, 127, 143, 112, 134, 151, 139, 125, 121, 140, 123, 108, 120, 129, 117, 101, 139, 116, 137, 115, 142, 110, 104, 108, 131, 120, 138, 117, 114, 139, 129, 132, 120, 115, 117, 120, 119, 111, 122, 122, 141, 124, 134, 107, 135, 100, 122, 119, 117, 129, 132, 134, 126, 133, 135, 130, 129, 103, 120, 116, 122, 125, 136, 130, 126, 147, 121, 126, 128, 131, 124, 123, 130, 127, 124, 137, 141, 129, 129, 129, 113, 118, 134, 124, 119, 124, 128, 119, 110, 138, 133, 125, 120, 115, 128, 126, 121, 132, 114, 135, 124, 131, 118, 117, 129, 118, 129, 125, 129, 124, 130, 123, 121, 127, 115, 118, 128, 113, 125, 115, 153, 123, 131, 120, 116, 119, 115, 138, 127, 129, 128, 129, 126, 129, 135, 135, 130, 123, 135, 122, 123, 122, 126, 118, 111, 112, 122, 121, 128, 129, 120, 112, 118, 124, 123, 123, 125, 142, 131, 123, 125, 136, 136, 114, 126, 136, 133, 111, 131, 149, 126, 122, 107, 132, 121, 125, 130, 113, 124, 128, 118, 125, 121, 127, 127, 115, 119, 136, 129, 109, 129, 135, 131, 128, 124, 128, 112, 130, 129, 119, 105, 130, 142, 132, 125, 113, 110, 116, 130, 109, 126, 140, 123, 128, 127, 133, 139, 115, 132, 136, 132, 115, 124, 119, 117, 126, 113, 127, 127, 131, 115, 151, 147, 122, 105, 118, 122, 134, 125, 115, 135, 133, 124, 127, 141, 119, 120, 123, 118, 133, 137, 115, 133, 115, 133, 136, 116, 117, 113, 120, 110, 122, 143, 122, 119, 117, 112, 122, 118, 126, 116, 115, 130, 103, 121, 124, 117, 138, 117, 110, 129, 124, 120, 125, 146, 108, 121, 131, 133, 124, 124, 104, 128, 104, 122, 119, 133, 108, 121, 118, 114, 121, 126, 116, 132, 115, 117, 137, 144, 131, 134, 124, 146, 140, 117, 125, 123, 134, 123, 122, 127, 131, 113, 110, 130, 137, 114, 144, 115, 130, 133, 132, 120, 140, 121, 132, 128, 130, 118, 127, 115, 123, 124, 116, 117, 132, 123, 132, 121, 136, 133, 134, 129, 140, 126, 122, 125, 138, 123, 123, 118, 128, 118, 127, 141, 114, 135, 130, 126, 132, 126, 129, 116, 129, 131, 108, 132, 121, 131, 118, 123, 121, 131, 137, 123, 120, 121, 130, 117, 110, 136, 142, 100, 120, 145, 126, 114, 119, 143, 141, 123, 115, 120, 119, 137, 109, 119, 152, 141, 116, 120, 126, 141, 153, 129, 132, 123, 137, 128, 150, 137, 118, 121, 131, 151, 109, 111, 124, 118, 128, 121, 118, 122, 124, 129, 117, 126, 120, 119, 123, 133, 128, 129, 110, 106, 137, 130, 129, 124, 121, 142, 127, 128, 127, 114, 114, 128, 121, 116, 118, 106, 121, 125, 129, 119, 126, 116, 116, 113, 118, 130, 147, 126, 132, 118, 126, 125, 136, 125, 130, 125, 124, 134, 127, 132, 123, 109, 139, 126, 132, 124, 135, 122, 122, 107, 127, 127, 133, 128, 113, 130, 121, 130, 120, 143, 143, 121, 119, 125, 114, 126, 125, 116, 128, 141, 118, 122, 114, 111, 109, 112, 112, 132, 117, 116, 113, 137, 128, 120, 120, 122, 129, 131, 126, 155, 144, 115, 128, 136, 126, 118, 131, 134, 117, 117, 129, 133, 119, 129, 132, 128, 122, 153, 121, 125, 123, 118, 128, 127, 134, 116, 118, 131, 107, 117, 122, 124, 112, 118, 126, 133, 109, 129, 110, 127, 143, 124, 106, 130, 130, 133, 97, 134, 129, 122, 123, 122, 126, 126, 129, 111, 138, 118, 125, 130, 116, 121, 110, 125, 135, 115, 120, 130, 135, 124, 98, 123, 139, 119, 127, 119, 138, 131, 115, 127, 152, 146, 119, 125, 123, 118, 119, 128, 132, 143, 132, 116, 139, 124, 118, 136, 109, 134, 118, 147, 121, 112, 120, 124, 128, 112, 125, 137, 121, 130, 114, 133, 121, 128, 132, 120, 124, 135, 120, 144, 135, 122, 129, 110, 133, 124, 131, 119, 123, 111, 125, 138, 134, 121, 143, 121, 137, 133, 130, 130, 112, 123, 125, 138, 130, 147, 129, 139, 134, 106, 145, 106, 134, 131, 119, 131, 115, 137, 128, 119, 109, 124, 132, 119, 145, 142, 137, 117, 146, 136, 128, 123, 127, 89, 124, 123, 125, 130, 106, 132, 125, 123, 121, 126, 130, 130, 114, 106, 122, 127, 123, 131, 139, 117, 132, 127, 117, 129, 125, 129, 117, 123, 125, 151, 130, 121, 141, 120, 136, 138, 129, 147, 130, 119, 115, 138, 121, 113, 140, 130, 119, 137, 146, 122, 129, 145, 110, 124, 144, 128, 133, 121, 131, 124, 122, 124, 135, 131, 116, 133, 120, 140, 131, 138, 135, 119, 135, 128, 129, 123, 152, 116, 127, 134, 126, 106, 128, 109, 137, 137, 130, 118, 128, 133, 115, 120, 129, 117, 130, 126, 122, 114, 119, 114, 127, 130, 121, 125, 126, 128, 136, 120, 134, 125, 118, 106, 133, 135, 121, 124, 135, 120, 119, 123, 109, 110, 120, 138, 117, 114, 119, 122, 130, 111, 120, 112, 125, 136, 129, 131, 120, 128, 125, 127, 129, 131, 124, 135, 133, 124, 134, 125, 122, 122, 111, 130, 125, 111, 117, 135, 125, 133, 135, 111, 132, 137, 116, 140, 129, 122, 128, 114, 146, 129, 151, 114, 147, 104, 132, 122, 127, 139, 132, 137, 135, 123, 132, 128, 136, 130, 131, 122, 123, 129, 140, 129, 116, 127, 130, 119, 131, 135, 127, 116, 114, 134, 125, 113, 147, 131, 119, 126, 124, 136, 116, 124, 135, 108, 114, 124, 142, 132, 122, 120, 121, 132, 129, 118, 122, 124, 140, 121, 143, 129, 125, 110, 130, 116, 117, 149, 134, 151, 121, 123, 128, 122, 127, 136, 131, 130, 125, 118, 127, 105, 139, 141, 122, 126, 140, 123, 118, 114, 129, 111, 120, 123, 129, 136, 118, 120, 114, 120, 122, 132, 131, 121, 122, 130, 114, 107, 130, 121, 132, 118, 112, 126, 130, 126, 113, 118, 131, 123, 112, 95, 130, 134, 108, 113, 138, 135, 133, 125, 134, 114, 127, 121, 125, 129, 123, 118, 114, 115, 132, 135, 119, 119, 127, 118, 108, 122, 125, 129, 117, 127, 125, 130, 127, 124, 141, 134, 122, 136, 138, 111, 144, 136, 126, 128, 124, 140, 135, 128, 130, 122, 114, 122, 118, 137, 121, 137, 113, 116, 138, 127, 117, 131, 123, 126, 147, 121, 121, 111, 129, 139, 116, 119, 139, 125, 132, 131, 120, 130, 121, 123, 131, 126, 138, 138, 123, 129, 138, 137, 120, 115, 132, 137, 105, 142, 114, 119, 125, 115, 137, 135, 120, 112, 125, 114, 127, 127, 123, 123, 137, 132, 121, 131, 124, 120, 125, 138, 124, 107, 130, 140, 127, 121, 126, 132, 127, 122, 135, 101, 110, 132, 134, 122, 112, 120, 121, 133, 120, 150, 116, 136, 136, 124, 122, 119, 139, 124, 127, 134, 135, 114, 112, 150, 119, 109, 132, 118, 103, 125, 113, 137, 135, 116, 142, 112, 131, 127, 119, 132, 109, 114, 135, 118, 116, 113, 125, 123, 134, 122, 113, 119, 129, 118, 115, 110, 128, 137, 130, 115, 138, 123, 126, 121, 109, 125, 119, 114, 99, 111, 126, 134, 135, 122, 128, 124, 123, 125, 122, 127, 128, 112, 117, 110, 128, 102, 135, 127, 103, 124, 115, 133, 124, 139, 135, 144, 131, 148, 118, 136, 122, 124, 116, 116, 133, 130, 153, 119, 118, 116, 150, 108, 121, 118, 104, 130, 135, 123, 132, 97, 127, 144, 123, 116, 132, 109, 137, 124, 130, 111, 129, 119, 115, 129, 129, 121, 116, 121, 119, 126, 135, 148, 103, 101, 117, 132, 113, 118, 139, 118, 144, 116, 113, 134, 120, 113, 128, 139, 108, 137, 124, 106, 118, 116, 106, 131, 129, 115, 133, 113, 122, 123, 133, 131, 141, 126, 143, 134, 140, 104, 135, 119, 129, 147, 109, 132, 117, 131, 126, 113, 128, 130, 127, 144, 131, 115, 132, 129, 107, 122, 131, 135, 127, 109, 121, 122, 121, 125, 101, 132, 99, 137, 118, 139, 122, 113, 150, 113, 136, 125, 115, 117, 128, 147, 134, 132, 117, 117, 91, 137, 123, 133, 126, 114, 119, 127, 131, 110, 130, 139, 123, 139, 123, 137, 123, 113, 136, 133, 131, 113, 128, 106, 130, 122, 124, 132, 120, 115, 135, 119, 118, 122, 113, 136, 99, 127, 136, 120, 132, 116, 116, 132, 122, 124, 136, 140, 107, 115, 118, 117, 122, 129, 116, 115, 118, 123, 113, 136, 136, 136, 122, 108, 115, 125, 130, 124, 134, 103, 128, 114, 136, 106, 132, 122, 127, 127, 143, 130, 127, 121, 142, 124, 112, 116, 125, 124, 106, 124, 116, 123, 123, 121, 109, 124, 127, 109, 112, 132, 109, 120, 118, 124, 113, 125, 115, 116, 130, 131, 123, 135, 133, 140, 123, 127, 144, 131, 131, 151, 132, 121, 123, 117, 123, 120, 125, 122, 104, 124, 109, 121, 126, 136, 123, 139, 134, 137, 119, 141, 110, 125, 125, 113, 124, 141, 142, 106, 137, 122, 135, 133, 152, 113, 117, 117, 130, 124, 121, 116, 126, 133, 133, 142, 106, 134, 124, 122, 122, 107, 115, 133, 125, 117, 145, 113, 119, 132, 133, 128, 132, 130, 116, 118, 117, 149, 123, 116, 114, 161, 120, 106, 126, 120, 130, 118, 125, 131, 128, 105, 127, 139, 87, 114, 104, 125, 111, 108, 133, 114, 124, 130, 124, 125, 138, 129, 137, 146, 126, 119, 117, 125, 132, 140, 124, 131, 131, 128, 127, 110, 136, 142, 135, 133, 137, 126, 129, 135, 115, 114, 132, 128, 114, 124, 140, 122, 131, 134, 123, 129, 117, 138, 130, 147, 142, 139, 125, 131, 123, 135, 128, 131, 129, 121, 130, 125, 128, 116, 153, 136, 95, 129, 142, 115, 143, 102, 129, 121, 144, 122, 108, 139, 121, 120, 116, 125, 125, 145, 126, 100, 123, 122, 140, 131, 113, 127, 123, 131, 138, 133, 115, 160, 130, 128, 142, 121, 131, 102, 131, 142, 133, 133, 91, 104, 112, 138, 143, 119, 147, 151, 147, 123, 141, 125, 147, 121, 120, 121, 122, 140, 122, 133, 123, 139, 120, 113, 117, 133, 119, 117, 140, 131, 136, 125, 133, 121, 113, 140, 117, 115, 125, 127, 123, 138, 132, 108, 116, 116, 121, 139, 134, 124, 130, 125, 133, 125, 129, 126, 128, 148, 135, 140, 97, 121, 131, 124, 96, 136, 108, 124, 119, 125, 128, 151, 145, 129, 122, 127, 135, 126, 140, 133, 131, 118, 123, 121, 123, 121, 141, 131, 131, 117, 125, 103, 129, 121, 132, 117, 125, 132, 135, 131, 136, 123, 118, 121, 107, 144, 131, 121, 113, 125, 124, 116, 132, 120, 137, 129, 121, 149, 130, 119, 111, 121, 123, 137, 132, 142, 117, 102, 121, 116, 118, 138, 105, 135, 123, 119, 114, 124, 115, 129, 109, 110, 140, 108, 134, 126, 140, 118, 142, 116, 130, 132, 129, 125, 127, 108, 133, 124, 149, 127, 146, 144, 115, 102, 126, 120, 148, 115, 122, 136, 142, 120, 131, 123, 134, 114, 133, 108, 140, 125, 120, 123, 129, 132, 119, 132, 125, 129, 111, 130, 124, 124, 125, 140, 116, 128, 123, 116, 146, 142, 123, 130, 124, 123, 113, 152, 135, 105, 137, 116, 128, 116, 121, 125, 128, 134, 129, 137, 135, 133, 108, 103, 131, 139, 126, 115, 137, 106, 131, 132, 111, 121, 111, 131, 122, 128, 115, 118, 127, 140, 118, 119, 110, 111, 145, 128, 124, 142, 120, 120, 128, 116, 111, 115, 119, 130, 130, 140, 141, 125, 128, 125, 138, 128, 141, 124, 109, 125, 114, 112, 150, 124, 116, 121, 145, 134, 122, 130, 149, 122, 115, 134, 130, 124, 113, 141, 140, 111, 133, 136, 126, 112, 133, 125, 139, 116, 143, 132, 146, 128, 125, 125, 125, 139, 124, 154, 138, 116, 139, 134, 135, 130, 122, 118, 141, 122, 128, 138, 120, 127, 138, 130, 127, 136, 147, 122, 133, 133, 132, 135, 119, 122, 111, 128, 143, 139, 134, 131, 132, 140, 125, 124, 148, 123, 120, 123, 114, 121, 121, 133, 115, 154, 140, 111, 135, 119, 123, 139, 130, 123, 119, 123, 117, 129, 120, 126, 111, 110, 112, 137, 134, 138, 112, 104, 143, 120, 109, 121, 116, 125, 111, 148, 133, 122, 141, 138, 122, 130, 93, 123, 125, 135, 132, 140, 129, 130, 128, 106, 117, 118, 128, 123, 126, 124, 146, 123, 125, 119, 107, 126, 125, 111, 127, 140, 145, 127, 118, 112, 132, 133, 126, 121, 127, 113, 130, 120, 126, 118, 129, 111, 118, 141, 110, 122, 127, 107, 126, 132, 123, 130, 110, 123, 136, 130, 116, 142, 114, 130, 122, 141, 129, 117, 108, 125, 134, 128, 132, 149, 123, 108, 129, 138, 139, 139, 116, 110, 114, 111, 128, 120, 128, 113, 111, 122, 112, 136, 118, 123, 117, 130, 117, 112, 116, 116, 86, 112, 117, 133, 125, 132, 133, 133, 135, 129, 111, 141, 130, 122, 123, 132, 112, 128, 118, 126, 131, 122, 140, 133, 127, 132, 126, 100, 127, 127, 137, 115, 119, 131, 131, 138, 136, 122, 111, 159, 127, 129, 119, 137, 101, 135, 121, 113, 149, 129, 132, 124, 131, 116, 130, 136, 130, 124, 123, 118, 119, 127, 126, 124, 120, 132, 130, 120, 126, 130, 103, 132, 118, 121, 140, 134, 106, 137, 123, 132, 132, 130, 110, 147, 130, 104, 131, 141, 130, 120, 119, 131, 117, 129, 135, 128, 112, 116, 130, 132, 134, 123, 136, 141, 135, 122, 107, 138, 123, 125, 130, 136, 131, 116, 133, 119, 118, 119, 131, 118, 119, 101, 116, 123, 139, 151, 123, 141, 132, 135, 127, 117, 121, 139, 119, 117, 124, 128, 128, 127, 130, 120, 112, 124, 135, 119, 110, 112, 128, 130, 101, 128, 131, 125, 146, 131, 140, 115, 120, 136, 134, 123, 101, 112, 115, 137, 126, 131, 121, 131, 124, 109, 142, 137, 122, 115, 122, 124, 136, 117, 125, 131, 110, 127, 121, 121, 136, 128, 138, 132, 125, 116, 117, 141, 139, 120, 118, 134, 130, 132, 121, 98, 127, 124, 125, 118, 137, 110, 128, 132, 116, 125, 118, 124, 117, 141, 122, 134, 117, 130, 128, 116, 135, 119, 119, 123, 115, 121, 129, 123, 120, 118, 137, 125, 120, 119, 130, 127, 117, 128, 106, 123, 121, 140, 118, 136, 135, 126, 125, 128, 119, 125, 129, 123, 115, 119, 130, 137, 136, 129, 126, 120, 141, 112, 136, 127, 131, 130, 132, 138, 126, 129, 118, 133, 115, 116, 103, 122, 110, 109, 141, 121, 118, 133, 131, 133, 115, 136, 117, 123, 113, 118, 133, 125, 106, 129, 135, 118, 129, 132, 118, 120, 124, 117, 122, 125, 121, 117, 118, 123, 125, 120, 125, 105, 122, 129, 122, 134, 102, 124, 133, 128, 107, 135, 123, 139, 129, 131, 126, 109, 133, 131, 139, 125, 130, 123, 132, 130, 115, 128, 121, 110, 128, 135, 118, 131, 118, 154, 128, 132, 129, 119, 132, 122, 110, 133, 124, 124, 123, 141, 126, 121, 116, 109, 119, 124, 129, 132, 122, 137, 123, 106, 123, 110, 116, 117, 132, 122, 137, 130, 140, 130, 125, 146, 137, 119, 114, 117, 118, 120, 124, 113, 128, 127, 135, 117, 149, 111, 110, 126, 122, 135, 101, 111, 129, 140, 134, 136, 116, 124, 139, 125, 128, 131, 121, 130, 122, 109, 140, 125, 122, 135, 122, 130, 114, 134, 117, 111, 128, 124, 119, 122, 131, 129, 124, 121, 121, 120, 126, 124, 122, 129, 132, 153, 137, 122, 141, 129, 120, 120, 139, 141, 128, 120, 144, 136, 115, 141, 115, 126, 128, 109, 128, 125, 107, 130, 130, 132, 132, 117, 109, 116, 125, 123, 116, 134, 142, 122, 111, 128, 133, 119, 127, 132, 131, 113, 122, 117, 124, 123, 124, 113, 125, 113, 118, 137, 143, 113, 118, 132, 112, 136, 131, 125, 127, 116, 123, 126, 128, 125, 122, 135, 118, 133, 119, 133, 138, 131, 129, 127, 148, 125, 136, 106, 121, 120, 130, 123, 123, 133, 123, 131, 115, 121, 113, 124, 109, 127, 123, 125, 117, 124, 127, 110, 123, 124, 125, 122, 133, 129, 125, 114, 119, 121, 138, 101, 134, 132, 118, 111, 122, 129, 130, 103, 139, 119, 119, 116, 125, 128, 121, 129, 124, 121, 124, 136, 144, 114, 132, 132, 125, 117, 127, 108, 117, 119, 124, 123, 115, 124, 153, 112, 110, 140, 125, 140, 138, 144, 117, 120, 120, 134, 126, 137, 117, 127, 138, 143, 123, 118, 125, 112, 109, 118, 121, 132, 131, 119, 126, 128, 147, 132, 114, 116, 119, 126, 135, 119, 126, 119, 128, 127, 124, 122, 127, 127, 120, 140, 123, 121, 131, 117, 121, 130, 119, 116, 118, 130, 109, 120, 114, 126, 123, 132, 117, 111, 121, 124, 119, 132, 131, 100, 133, 129, 149, 115, 133, 131, 135, 138, 113, 125, 136, 126, 103, 136, 113, 135, 135, 130, 120, 117, 142, 139, 131, 119, 126, 121, 132, 126, 127, 117, 109, 134, 124, 124, 114, 127, 111, 125, 115, 130, 113, 136, 125, 134, 130, 117, 129, 112, 118, 121, 123, 138, 114, 117, 121, 140, 133, 113, 118, 123, 131, 123, 124, 128, 111, 128, 137, 110, 119, 113, 121, 122, 109, 140, 116, 126, 127, 138, 125, 117, 128, 115, 126, 118, 110, 115, 116, 120, 123, 113, 124, 128, 117, 125, 141, 135, 123, 105, 142, 132, 131, 115, 118, 117, 126, 118, 114, 132, 132, 141, 131, 132, 121, 134, 129, 112, 109, 124, 140, 129, 137, 128, 124, 135, 114, 114, 136, 128, 122, 123, 126, 115, 136, 134, 122, 127, 137, 135, 134, 121, 132, 122, 124, 114, 119, 136, 118, 123, 103, 126, 137, 127, 126, 140, 122, 119, 130, 129, 129, 142, 122, 121, 129, 124, 118, 126, 134, 124, 107, 121, 128, 124, 127, 125, 142, 139, 129, 137, 123, 142, 116, 116, 131, 120, 124, 144, 127, 119, 127, 134, 123, 113, 124, 137, 113, 123, 123, 126, 133, 120, 108, 125, 119, 130, 125, 127, 127, 114, 109, 115, 115, 120, 115, 119, 105, 115, 117, 117, 122, 109, 119, 136, 135, 127, 120, 127, 131, 135, 125, 146, 118, 121, 122, 121, 116, 80, 127, 116, 139, 132, 131, 126, 142, 133, 128, 140, 139, 111, 128, 129, 124, 108, 120, 117, 116, 140, 128, 123, 133, 124, 124, 111, 124, 127, 121, 136, 128, 122, 124, 123, 140, 134, 130, 107, 131, 119, 112, 112, 110, 118, 145, 119, 135, 109, 130, 134, 117, 131, 124, 153, 119, 128, 117, 132, 123, 126, 121, 129, 102, 121, 117, 142, 129, 136, 118, 123, 123, 131, 137, 129, 138, 122, 121, 130, 115, 126, 126, 132, 141, 135, 135, 119, 120, 127, 115, 129, 124, 141, 130, 130, 133, 126, 126, 125, 129, 133, 123, 115, 135, 123, 134, 118, 131, 115, 130, 111, 108, 112, 121, 129, 136, 118, 120, 130, 130, 126, 138, 108, 119, 136, 130, 139, 133, 120, 119, 130, 133, 126, 141, 122, 136, 115, 104, 130, 120, 124, 146, 119, 126, 118, 120, 115, 144, 140, 121, 117, 122, 120, 118, 120, 135, 118, 109, 124, 119, 113, 120, 140, 140, 124, 122, 138, 113, 118, 139, 133, 118, 112, 126, 121, 136, 132, 117, 135, 123, 135, 126, 129, 114, 121, 108, 121, 134, 108, 111, 133, 117, 122, 131, 120, 135, 127, 122, 128, 117, 127, 125, 145, 115, 134, 126, 105, 128, 120, 111, 130, 126, 105, 120, 120, 136, 124, 126, 124, 141, 113, 124, 108, 99, 124, 126, 120, 116, 131, 117, 130, 128, 142, 113, 124, 121, 134, 128, 133, 133, 128, 129, 107, 128, 111, 144, 113, 119, 140, 132, 131, 136, 117, 118, 130, 135, 135, 114, 125, 140, 109, 122, 97, 151, 129, 121, 126, 128, 121, 130, 127, 120, 129, 129, 116, 146, 128, 127, 122, 134, 136, 123, 126, 113, 118, 113, 113, 122, 130, 111, 112, 126, 132, 134, 128, 126, 133, 114, 112, 127, 146, 151, 136, 128, 130, 129, 115, 132, 95, 114, 131, 115, 124, 97, 134, 123, 133, 132, 131, 120, 94, 119, 139, 111, 116, 127, 125, 129, 122, 123, 135, 92, 129, 149, 133, 137, 134, 131, 124, 119, 136, 113, 148, 132, 140, 143, 115, 133, 119, 131, 133, 126, 113, 113, 127, 150, 116, 131, 126, 122, 124, 128, 140, 111, 112, 119, 128, 130, 139, 122, 125, 144, 100, 132, 133, 116, 121, 116, 110, 131, 122, 113, 133, 131, 124, 118, 124, 134, 135, 124, 122, 118, 118, 118, 130, 122, 139, 131, 107, 138, 122, 118, 135, 136, 123, 122, 123, 115, 123, 104, 125, 142, 108, 108, 139, 109, 139, 130, 119, 120, 136, 146, 128, 128, 124, 131, 123, 120, 114, 132, 129, 133, 133, 125, 121, 126, 124, 123, 128, 121, 137, 135, 128, 127, 137, 109, 124, 128, 114, 130, 136, 123, 124, 128, 125, 129, 142, 153, 134, 114, 125, 137, 132, 127, 126, 109, 134, 98, 137, 116, 141, 116, 122, 149, 146, 133, 120, 127, 117, 121, 118, 110, 126, 128, 122, 126, 142, 128, 133, 112, 142, 125, 141, 116, 129, 119, 132, 127, 118, 110, 124, 125, 127, 114, 100, 151, 120, 117, 140, 142, 130, 152, 116, 144, 128, 119, 134, 122, 113, 121, 119, 128, 122, 134, 120, 134, 122, 132, 113, 130, 137, 141, 120, 138, 123, 124, 127, 135, 112, 143, 118, 134, 125, 135, 116, 116, 120, 133, 127, 111, 128, 117, 123, 121, 108, 128, 132, 120, 154, 126, 116, 116, 123, 122, 126, 108, 140, 126, 131, 134, 122, 123, 121, 139, 117, 118, 126, 120, 127, 108, 118, 118, 114, 123, 120, 137, 128, 121, 116, 136, 145, 122, 129, 135, 122, 121, 131, 138, 128, 123, 126, 134, 110, 129, 142, 127, 117, 134, 143, 123, 122, 121, 113, 98, 125, 136, 132, 123, 125, 125, 125, 122, 118, 115, 135, 115, 128, 135, 107, 127, 113, 126, 114, 133, 124, 126, 136, 125, 131, 114, 123, 121, 119, 115, 109, 119, 139, 108, 130, 112, 114, 129, 126, 120, 118, 134, 113, 119, 129, 127, 128, 124, 117, 102, 128, 131, 129, 106, 119, 123, 119, 127, 123, 121, 123, 113, 113, 124, 115, 96, 129, 116, 135, 120, 124, 111, 121, 121, 135, 133, 137, 117, 126, 123, 121, 126, 124, 132, 121, 122, 111, 125, 113, 121, 128, 131, 104, 131, 129, 128, 120, 130, 107, 126, 126, 109, 126, 129, 122, 117, 111, 126, 130, 149, 129, 143, 124, 96, 135, 129, 134, 138, 131, 146, 125, 137, 133, 124, 128, 114, 124, 113, 131, 127, 119, 144, 103, 141, 113, 122, 125, 131, 134, 113, 108, 130, 116, 124, 110, 115, 136, 115, 109, 137, 121, 126, 122, 127, 120, 115, 131, 119, 123, 119, 126, 116, 144, 133, 150, 125, 121, 129, 106, 112, 142, 148, 122, 133, 106, 125, 129, 129, 126, 160, 135, 134, 137, 120, 116, 119, 130, 134, 128, 122, 106, 130, 143, 122, 119, 126, 113, 124, 124, 121, 133, 134, 135, 125, 121, 108, 129, 120, 133, 135, 137, 116, 113, 128, 114, 123, 130, 116, 135, 127, 106, 110, 142, 129, 126, 133, 132, 125, 109, 123, 125, 103, 117, 123, 122, 112, 127, 121, 117, 127, 110, 141, 140, 126, 125, 135, 116, 134, 126, 133, 126, 128, 136, 130, 136, 127, 132, 131, 125, 123, 131, 129, 126, 107, 111, 129, 123, 112, 127, 126, 120, 123, 131, 152, 121, 131, 113, 123, 113, 112, 146, 120, 121, 132, 127, 117, 121, 116, 117, 106, 118, 128, 128, 129, 109, 129, 127, 126, 110, 116, 125, 123, 126, 117, 113, 126, 118, 121, 131, 135, 138, 116, 123, 132, 117, 116, 133, 126, 153, 110, 130, 119, 118, 131, 148, 124, 131, 124, 121, 99, 113, 105, 110, 121, 130, 141, 121, 113, 132, 119, 125, 121, 138, 115, 141, 129, 125, 127, 138, 112, 114, 104, 117, 135, 122, 128, 136, 131, 143, 105, 128, 135, 128, 118, 134, 124, 114, 117, 133, 125, 126, 107, 143, 100, 112, 115, 135, 127, 124, 127, 131, 148, 103, 113, 129, 109, 132, 131, 120, 124, 132, 111, 124, 108, 124, 138, 114, 129, 125, 132, 123, 131, 121, 130, 114, 115, 101, 113, 113, 120, 108, 102, 117, 116, 122, 115, 111, 144, 135, 131, 119, 134, 119, 121, 111, 127, 138, 125, 121, 123, 104, 114, 128, 140, 139, 136, 122, 111, 115, 118, 120, 125, 112, 134, 119, 142, 128, 132, 125, 116, 127, 132, 117, 122, 125, 114, 119, 127, 124, 111, 115, 118, 116, 126, 142, 134, 114, 134, 115, 120, 115, 119, 130, 146, 122, 124, 137, 118, 140, 113, 129, 141, 124, 119, 127, 108, 133, 122, 143, 124, 111, 114, 135, 120, 105, 126, 126, 131, 137, 109, 133, 145, 121, 128, 125, 110, 136, 131, 123, 126, 122, 127, 106, 130, 136, 108, 142, 122, 143, 130, 142, 108, 138, 121, 128, 121, 117, 129, 133, 100, 126, 123, 137, 110, 126, 130, 122, 124, 114, 121, 121, 119, 128, 111, 115, 125, 124, 119, 123, 120, 112, 139, 96, 130, 119, 114, 133, 140, 133, 104, 132, 123, 131, 133, 134, 121, 124, 121, 123, 106, 138, 145, 106, 144, 125, 127, 127, 130, 110, 127, 121, 131, 140, 130, 129, 126, 127, 119, 100, 133, 132, 142, 130, 114, 129, 120, 115, 116, 132, 128, 129, 129, 118, 135, 122, 124, 129, 124, 126, 140, 101, 129, 121, 118, 132, 121, 111, 133, 140, 146, 127, 121, 146, 123, 121, 123, 103, 130, 145, 110, 126, 137, 131, 115, 127, 118, 126, 113, 99, 135, 112, 137, 117, 115, 123, 122, 120, 120, 128, 138, 112, 122, 120, 145, 117, 126, 122, 126, 129, 129, 125, 121, 115, 105, 122, 131, 104, 122, 110, 106, 115, 119, 134, 140, 116, 117, 121, 112, 137, 142, 130, 127, 114, 126, 111, 130, 127, 109, 115, 129, 125, 129, 120, 137, 143, 129, 125, 141, 110, 115, 131, 118, 101, 125, 139, 138, 105, 127, 132, 145, 129, 127, 123, 122, 110, 128, 124, 124, 112, 117, 116, 127, 113, 129, 127, 129, 127, 125, 122, 133, 122, 124, 117, 129, 134, 130, 124, 123, 129, 123, 130, 119, 114, 107, 133, 115, 126, 113, 121, 130, 117, 128, 157, 129, 126, 120, 118, 141, 121, 126, 135, 109, 126, 121, 117, 132, 125, 126, 122, 147, 113, 137, 114, 123, 123, 112, 131, 131, 121, 137, 129, 121, 142, 112, 114, 137, 140, 124, 115, 136, 120, 143, 125, 143, 120, 116, 138, 119, 111, 126, 118, 124, 127, 132, 134, 126, 128, 129, 146, 126, 119, 115, 129, 131, 113, 131, 128, 111, 140, 135, 138, 122, 127, 127, 124, 120, 136, 115, 119, 125, 120, 136, 109, 126, 131, 129, 119, 128, 147, 122, 127, 132, 126, 117, 124, 130, 150, 118, 124, 115, 135, 115, 126, 108, 118, 114, 115, 131, 135, 116, 124, 142, 130, 138, 139, 136, 103, 139, 122, 134, 137, 119, 127, 120, 119, 126, 123, 134, 134, 119, 140, 139, 136, 123, 132, 120, 135, 127, 114, 124, 128, 143, 106, 132, 132, 122, 134, 120, 122, 124, 131, 130, 121, 135, 130, 101, 120, 117, 118, 126, 116, 121, 126, 137, 126, 120, 120, 117, 137, 109, 130, 117, 115, 137, 146, 124, 141, 122, 128, 125, 121, 129, 120, 116, 119, 116, 102, 117, 139, 115, 129, 124, 120, 134, 133, 137, 147, 119, 114, 127, 126, 112, 125, 115, 117, 113, 126, 109, 118, 114, 120, 121, 148, 139, 111, 123, 120, 108, 128, 112, 137, 108, 126, 130, 118, 117, 122, 138, 126, 126, 118, 129, 115, 106, 97, 141, 128, 122, 123, 103, 125, 130, 109, 109, 115, 127, 115, 115, 134, 124, 124, 138, 133, 103, 118, 124, 142, 125, 123, 121, 113, 130, 113, 132, 139, 126, 138, 132, 117, 116, 137, 121, 114, 121, 113, 116, 126, 149, 130, 122, 122, 120, 114, 147, 119, 127, 118, 134, 119, 130, 131, 149, 130, 126, 117, 125, 122, 123, 116, 102, 119, 129, 124, 140, 125, 133, 114, 141, 131, 118, 120, 117, 122, 131, 124, 133, 113, 118, 130, 104, 128, 126, 125, 113, 135, 128, 130, 129, 122, 131, 115, 127, 104, 134, 115, 124, 127, 110, 108, 126, 125, 135, 130, 121, 127, 115, 111, 135, 122, 122, 124, 111, 127, 117, 130, 98, 139, 130, 125, 123, 137, 120, 111, 125, 119, 132, 133, 119, 132, 141, 141, 124, 125, 102, 134, 105, 131, 132, 129, 121, 123, 121, 140, 123, 118, 130, 120, 134, 125, 128, 138, 116, 139, 119, 123, 120, 146, 126, 99, 134, 117, 128, 132, 126, 137, 124, 120, 130, 134, 132, 131, 121, 109, 123, 116, 118, 131, 126, 129, 124, 132, 139, 119, 135, 113, 143, 136, 128, 118, 135, 129, 136, 124, 132, 103, 131, 118, 116, 119, 131, 123, 140, 128, 125, 122, 136, 116, 114, 104, 126, 116, 143, 133, 117, 125, 126, 121, 115, 128, 132, 126, 120, 132, 106, 122, 136, 133, 126, 99, 123, 132, 115, 114, 118, 135, 144, 120, 130, 117, 120, 132, 115, 115, 124, 113, 133, 107, 110, 120, 126, 140, 129, 134, 126, 123, 126, 123, 124, 139, 138, 135, 116, 127, 116, 125, 96, 133, 118, 138, 124, 124, 128, 127, 133, 117, 123, 121, 137, 126, 139, 124, 117, 125, 120, 141, 132, 126, 123, 133, 123, 131, 126, 123, 141, 113, 125, 131, 120, 121, 127, 121, 135, 118, 123, 125, 135, 124, 127, 111, 138, 116, 133, 123, 104, 117, 118, 117, 131, 124, 123, 130, 132, 124, 125, 125, 117, 146, 140, 131, 141, 139, 125, 145, 131, 136, 136, 134, 128, 134, 152, 123, 118, 127, 131, 122, 138, 132, 139, 154, 129, 116, 135, 106, 113, 146, 125, 120, 109, 143, 116, 136, 125, 129, 138, 120, 99, 109, 136, 103, 123, 120, 109, 112, 136, 147, 129, 119, 103, 123, 135, 123, 139, 123, 118, 102, 128, 138, 124, 126, 127, 109, 115, 129, 119, 113, 136, 104, 146, 139, 125, 112, 131, 128, 146, 131, 110, 118, 125, 129, 141, 130, 130, 113, 134, 125, 120, 134, 134, 121, 134, 128, 137, 120, 118, 129, 121, 123, 122, 137, 118, 126, 109, 119, 113, 115, 127, 140, 106, 131, 129, 117, 130, 114, 119, 123, 120, 135, 130, 134, 111, 129, 141, 124, 121, 110, 120, 102, 117, 132, 126, 124, 140, 136, 117, 118, 132, 125, 119, 124, 130, 122, 126, 126, 117, 159, 119, 112, 147, 134, 105, 141, 121, 117, 126, 117, 107, 123, 125, 111, 117, 123, 139, 113, 143, 124, 126, 124, 114, 118, 118, 119, 146, 137, 125, 117, 117, 116, 118, 139, 147, 126, 127, 126, 129, 131, 136, 117, 117, 137, 132, 127, 108, 127, 108, 142, 146, 137, 136, 151, 130, 129, 125, 137, 126, 118, 121, 142, 128, 139, 125, 128, 111, 123, 104, 121, 123, 131, 125, 131, 134, 104, 131, 122, 113, 126, 140, 133, 119, 112, 130, 131, 108, 134, 107, 116, 130, 139, 117, 128, 124, 118, 117, 100, 137, 118, 128, 127, 121, 110, 133, 126, 124, 122, 111, 125, 126, 161, 117, 124, 122, 121, 113, 127, 121, 132, 134, 123, 120, 125, 116, 123, 117, 121, 124, 114, 140, 122, 140, 129, 114, 124, 131, 106, 115, 132, 123, 124, 129, 113, 118, 135, 130, 131, 127, 124, 110, 132, 129, 128, 122, 103, 119, 112, 132, 130, 119, 115, 131, 121, 130, 127, 156, 148, 127, 127, 125, 149, 137, 128, 131, 121, 127, 118, 145, 114, 138, 127, 128, 117, 128, 122, 118, 136, 117, 151, 97, 135, 119, 115, 129, 131, 121, 125, 110, 127, 108, 137, 115, 130, 113, 132, 131, 121, 137, 133, 143, 109, 125, 113, 125, 106, 126, 127, 142, 110, 117, 106, 134, 122, 97, 103, 120, 127, 121, 127, 130, 133, 107, 132, 106, 116, 123, 132, 106, 126, 129, 126, 120, 123, 122, 136, 120, 120, 130, 129, 127, 114, 133, 129, 109, 138, 109, 107, 114, 126, 106, 143, 138, 117, 134, 129, 131, 101, 116, 136, 126, 123, 117, 132, 129, 136, 116, 128, 122, 129, 107, 143, 146, 116, 117, 102, 128, 116, 136, 123, 129, 136, 130, 129, 135, 109, 129, 131, 144, 124, 117, 128, 112, 106, 126, 117, 133, 116, 125, 134, 108, 146, 134, 125, 125, 120, 134, 133, 141, 122, 98, 120, 137, 121, 138, 109, 117, 126, 136, 117, 115, 123, 113, 121, 117, 116, 124, 125, 129, 133, 139, 141, 123, 127, 131, 127, 120, 128, 122, 141, 117, 128, 132, 124, 119, 138, 128, 143, 115, 109, 130, 122, 133, 121, 116, 126, 126, 125, 132, 141, 154, 140, 114, 125, 122, 133, 128, 133, 156, 120, 112, 112, 114, 125, 119, 115, 131, 113, 127, 143, 140, 120, 127, 134, 123, 143, 142, 133, 122, 102, 140, 127, 128, 123, 131, 119, 131, 126, 129, 116, 131, 122, 105, 118, 135, 130, 121, 141, 122, 109, 118, 120, 129, 117, 116, 120, 133, 130, 137, 112, 142, 122, 107, 106, 111, 125, 121, 117, 118, 136, 133, 121, 117, 118, 123, 120, 121, 130, 132, 112, 108, 114, 125, 143, 121, 121, 113, 142, 126, 118, 132, 117, 145, 114, 103, 122, 129, 127, 154, 125, 139, 121, 133, 121, 135, 132, 137, 135, 126, 126, 139, 110, 131, 122, 110, 125, 134, 112, 128, 133, 132, 122, 119, 114, 129, 117, 105, 119, 137, 129, 117, 148, 111, 119, 131, 137, 133, 122, 127, 115, 127, 126, 131, 147, 120, 112, 125, 139, 125, 131, 119, 133, 123, 117, 121, 125, 155, 125, 114, 135, 124, 125, 124, 140, 127, 108, 128, 126, 143, 136, 124, 139, 121, 129, 105, 119, 115, 133, 151, 130, 148, 117, 128, 140, 108, 128, 116, 136, 119, 119, 135, 122, 127, 126, 123, 117, 133, 117, 124, 116, 147, 123, 124, 125, 122, 132, 134, 135, 143, 121, 130, 110, 123, 127, 123, 146, 120, 118, 125, 125, 119, 128, 127, 116, 135, 115, 114, 120, 127, 136, 131, 129, 111, 119, 123, 136, 127, 129, 112, 116, 114, 121, 133, 119, 138, 133, 125, 129, 146, 142, 141, 123, 137, 136, 122, 117, 117, 137, 119, 133, 135, 122, 97, 122, 108, 133, 134, 132, 134, 129, 127, 112, 131, 110, 124, 127, 125, 114, 118, 136, 125, 118, 124, 130, 154, 124, 122, 125, 129, 117, 125, 119, 121, 110, 128, 138, 127, 121, 123, 128, 121, 111, 118, 109, 129, 129, 114, 107, 125, 116, 128, 130, 126, 142, 107, 151, 132, 121, 124, 134, 117, 148, 121, 122, 128, 145, 106, 126, 132, 121, 132, 138, 141, 130, 129, 123, 126, 120, 102, 111, 132, 144, 123, 108, 129, 130, 140, 141, 124, 114, 117, 133, 127, 113, 125, 127, 120, 122, 117, 111, 115, 120, 107, 127, 126, 111, 129, 124, 125, 114, 125, 115, 111, 116, 108, 115, 134, 125, 116, 112, 104, 146, 121, 99, 104, 107, 119, 117, 115, 132, 145, 103, 134, 135, 135, 116, 130, 125, 108, 134, 133, 123, 127, 130, 141, 122, 129, 127, 104, 123, 125, 120, 127, 127, 122, 113, 123, 139, 119, 133, 134, 153, 104, 108, 135, 125, 126, 129, 133, 141, 127, 108, 132, 114, 140, 132, 131, 130, 137, 118, 139, 125, 114, 119, 131, 136, 121, 131, 124, 121, 120, 123, 126, 143, 125, 123, 117, 136, 112, 132, 124, 106, 131, 145, 128, 131, 124, 139, 129, 104, 115, 146, 140, 129, 132, 133, 118, 124, 153, 124, 123, 124, 123, 135, 133, 131, 131, 130, 128, 119, 117, 131, 114, 136, 116, 127, 141, 103, 133, 123, 103, 114, 122, 120, 127, 135, 123, 124, 126, 120, 120, 136, 108, 150, 115, 139, 137, 125, 122, 116, 115, 117, 120, 121, 119, 122, 132, 130, 143, 125, 111, 125, 106, 125, 121, 125, 112, 113, 109, 132, 130, 130, 130, 119, 145, 131, 115, 125, 125, 111, 136, 139, 133, 130, 128, 126, 108, 126, 116, 118, 132, 123, 126, 115, 130, 114, 115, 124, 120, 139, 132, 114, 106, 134, 130, 107, 116, 151, 123, 118, 122, 116, 118, 117, 122, 139, 131, 131, 131, 131, 145, 139, 131, 112, 147, 115, 106, 102, 111, 101, 112, 124, 139, 116, 109, 116, 140, 120, 129, 120, 134, 127, 129, 127, 122, 150, 126, 115, 117, 121, 138, 114, 131, 120, 129, 115, 140, 112, 118, 136, 125, 123, 122, 125, 108, 136, 158, 137, 124, 138, 121, 114, 133, 128, 118, 117, 110, 129, 121, 115, 119, 121, 132, 122, 120, 132, 111, 125, 149, 135, 130, 121, 123, 111, 133, 138, 123, 127, 133, 129, 127, 132, 130, 124, 126, 131, 120, 125, 136, 128, 128, 130, 142, 116, 149, 129, 116, 131, 117, 126, 132, 131, 136, 130, 120, 128, 138, 127, 116, 114, 130, 112, 131, 141, 122, 154, 108, 112, 123, 116, 134, 131, 122, 125, 143, 119, 131, 126, 133, 127, 122, 131, 121, 125, 128, 117, 122, 137, 133, 137, 109, 114, 131, 121, 135, 134, 132, 120, 111, 124, 121, 124, 128, 122, 96, 129, 131, 128, 141, 132, 120, 130, 141, 125, 112, 133, 129, 125, 123, 113, 119, 120, 122, 128, 133, 139, 96, 133, 121, 139, 125, 120, 148, 110, 121, 123, 123, 81, 138, 132, 127, 123, 114, 118, 102, 125, 127, 116, 152, 144, 125, 103, 125, 137, 115, 157, 131, 111, 136, 114, 127, 133, 137, 133, 122, 123, 125, 122, 109, 126, 105, 136, 125, 130, 127, 141, 123, 122, 118, 138, 120, 120, 129, 124, 134, 143, 134, 107, 128, 138, 110, 130, 116, 152, 126, 132, 97, 129, 114, 130, 121, 132, 128, 143, 132, 133, 135, 123, 130, 154, 115, 123, 133, 87, 134, 108, 124, 130, 110, 128, 137, 127, 137, 133, 139, 116, 138, 125, 126, 130, 120, 124, 135, 125, 138, 119, 143, 120, 128, 115, 127, 122, 119, 98, 128, 119, 117, 120, 127, 113, 116, 129, 128, 108, 129, 117, 148, 151, 101, 125, 119, 118, 130, 142, 123, 130, 131, 140, 110, 125, 126, 122, 130, 113, 102, 121, 136, 126, 130, 133, 120, 105, 124, 106, 103, 103, 140, 141, 113, 112, 110, 126, 118, 119, 137, 127, 132, 133, 108, 126, 121, 118, 122, 131, 137, 121, 140, 126, 116, 129, 116, 107, 122, 130, 120, 126, 117, 123, 127, 125, 113, 127, 126, 122, 117, 115, 114, 125, 129, 123, 137, 127, 115, 149, 116, 121, 117, 138, 118, 108, 126, 125, 134, 124, 120, 110, 118, 148, 132, 130, 118, 136, 127, 135, 115, 137, 134, 122, 127, 127, 117, 120, 124, 118, 134, 129, 123, 142, 117, 123, 116, 117, 114, 124, 119, 130, 131, 122, 126, 130, 119, 120, 118, 130, 137, 120, 122, 136, 105, 108, 122, 126, 118, 118, 134, 164, 116, 120, 135, 125, 118, 106, 120, 109, 129, 134, 111, 129, 117, 138, 140, 135, 114, 129, 130, 125, 133, 158, 114, 123, 141, 131, 126, 109, 129, 130, 123, 125, 147, 143, 123, 142, 118, 126, 127, 139, 104, 119, 148, 122, 119, 141, 114, 125, 133, 122, 116, 123, 128, 129, 125, 126, 107, 104, 138, 111, 101, 126, 133, 126, 118, 137, 136, 125, 137, 116, 140, 116, 105, 127, 122, 134, 117, 112, 126, 121, 112, 125, 126, 125, 135, 136, 117, 113, 133, 134, 136, 128, 112, 132, 127, 121, 123, 103, 133, 134, 128, 136, 145, 122, 128, 112, 134, 148, 118, 124, 129, 117, 129, 128, 112, 146, 121, 129, 143, 124, 110, 125, 126, 129, 125, 126, 133, 143, 133, 140, 113, 122, 122, 110, 137, 138, 129, 131, 142, 117, 132, 113, 122, 104, 120, 144, 120, 109, 112, 109, 101, 128, 141, 112, 108, 136, 134, 132, 121, 114, 121, 130, 122, 129, 111, 130, 131, 127, 119, 116, 129, 132, 117, 115, 146, 117, 127, 119, 124, 121, 123, 126, 134, 121, 117, 121, 122, 121, 122, 123, 116, 130, 118, 126, 137, 106, 128, 120, 120, 120, 124, 133, 141, 128, 116, 122, 132, 143, 117, 130, 138, 125, 126, 139, 116, 123, 115, 126, 145, 132, 114, 126, 105, 130, 134, 120, 128, 133, 119, 119, 129, 110, 136, 119, 123, 124, 117, 123, 117, 123, 130, 108, 118, 111, 119, 133, 116, 129, 133, 127, 116, 129, 149, 132, 102, 118, 119, 116, 121, 140, 113, 130, 124, 124, 114, 142, 111, 110, 136, 110, 129, 135, 130, 127, 126, 129, 120, 128, 130, 122, 137, 126, 134, 129, 111, 132, 122, 125, 126, 164, 129, 143, 116, 108, 133, 122, 122, 121, 128, 138, 136, 130, 121, 143, 130, 129, 135, 110, 133, 111, 122, 104, 118, 136, 136, 124, 125, 128, 133, 141, 138, 130, 119, 115, 136, 134, 114, 140, 134, 122, 123, 122, 118, 117, 125, 144, 118, 115, 136, 145, 160, 134, 113, 136, 122, 123, 117, 130, 102, 103, 136, 138, 133, 128, 125, 129, 118, 125, 120, 122, 122, 126, 124, 136, 127, 121, 125, 128, 137, 105, 121, 120, 117, 126, 125, 106, 114, 131, 131, 115, 133, 140, 123, 122, 132, 115, 126, 120, 129, 126, 104, 121, 132, 133, 123, 128, 125, 110, 128, 118, 121, 129, 114, 153, 142, 133, 117, 125, 122, 123, 111, 133, 124, 97, 108, 123, 130, 141, 143, 131, 118, 105, 116, 116, 134, 148, 119, 121, 119, 139, 116, 144, 129, 114, 142, 121, 132, 120, 129, 137, 134, 103, 154, 144, 105, 131, 111, 126, 106, 127, 131, 118, 131, 136, 121, 133, 133, 128, 131, 138, 122, 122, 110, 121, 113, 131, 112, 115, 119, 117, 127, 104, 139, 129, 120, 126, 138, 105, 130, 113, 141, 132, 134, 125, 146, 128, 106, 107, 147, 131, 108, 138, 126, 129, 134, 121, 109, 126, 116, 113, 118, 124, 127, 123, 119, 117, 123, 105, 121, 113, 114, 129, 119, 126, 114, 131, 118, 131, 130, 118, 125, 123, 127, 112, 121, 127, 125, 118, 127, 123, 112, 110, 105, 130, 114, 119, 121, 120, 109, 127, 144, 125, 131, 109, 123, 111, 126, 125, 122, 121, 119, 130, 130, 136, 142, 132, 118, 92, 118, 108, 123, 124, 140, 111, 77, 137, 130, 118, 110, 122, 142, 137, 117, 118, 116, 117, 101, 125, 117, 102, 138, 115, 129, 128, 117, 122, 121, 151, 128, 131, 139, 127, 138, 128, 93, 114, 136, 112, 139, 146, 116, 130, 121, 125, 128, 142, 130, 100, 132, 112, 128, 119, 125, 119, 136, 124, 121, 120, 114, 131, 129, 137, 137, 137, 130, 120, 118, 121, 113, 114, 122, 137, 117, 110, 105, 122, 124, 129, 138, 73, 142, 122, 99, 126, 131, 132, 107, 131, 128, 115, 129, 115, 126, 119, 124, 140, 124, 120, 136, 128, 123, 125, 128, 136, 114, 114, 143, 131, 124, 108, 114, 125, 127, 136, 125, 140, 137, 142, 119, 138, 137, 126, 131, 124, 145, 99, 135, 128, 122, 130, 133, 117, 100, 118, 120, 120, 124, 136, 141, 135, 135, 106, 123, 111, 121, 135, 129, 120, 115, 141, 123, 124, 104, 124, 136, 131, 118, 139, 108, 148, 144, 121, 113, 132, 129, 143, 135, 125, 123, 127, 142, 126, 125, 116, 116, 134, 126, 125, 126, 123, 128, 110, 124, 131, 134, 122, 106, 113, 123, 142, 103, 135, 125, 116, 122, 137, 121, 134, 121, 131, 104, 138, 98, 133, 114, 139, 121, 110, 116, 131, 133, 128, 122, 125, 133, 121, 145, 139, 122, 128, 114, 124, 125, 128, 120, 110, 119, 127, 108, 148, 122, 109, 144, 120, 106, 127, 151, 123, 124, 125, 131, 131, 122, 120, 154, 124, 128, 129, 148, 122, 134, 125, 152, 96, 119, 131, 129, 141, 128, 121, 150, 147, 121, 130, 130, 122, 120, 144, 124, 125, 128, 129, 116, 126, 116, 118, 122, 120, 119, 129, 121, 130, 117, 120, 123, 120, 147, 125, 127, 128, 128, 142, 111, 104, 125, 132, 115, 119, 119, 118, 125, 119, 129, 132, 117, 123, 125, 141, 134, 123, 138, 117, 126, 118, 106, 125, 99, 141, 120, 119, 119, 133, 122, 128, 124, 131, 139, 125, 135, 121, 113, 122, 97, 125, 126, 119, 141, 125, 124, 117, 119, 126, 120, 142, 127, 146, 142, 129, 132, 122, 140, 130, 141, 142, 113, 123, 132, 124, 120, 131, 122, 130, 133, 119, 118, 131, 132, 116, 144, 120, 115, 121, 133, 131, 125, 139, 130, 122, 125, 124, 117, 135, 122, 129, 117, 136, 118, 90, 122, 119, 109, 117, 123, 115, 136, 118, 124, 126, 139, 116, 137, 137, 132, 122, 119, 131, 114, 127, 133, 120, 137, 120, 127, 138, 119, 127, 119, 128, 127, 131, 114, 120, 136, 144, 117, 133, 128, 126, 120, 124, 123, 123, 123, 126, 120, 131, 116, 119, 115, 120, 114, 115, 121, 128, 122, 117, 102, 116, 117, 138, 125, 131, 135, 120, 121, 119, 115, 132, 121, 126, 120, 127, 121, 143, 110, 134, 121, 121, 124, 124, 141, 111, 121, 123, 131, 109, 117, 125, 140, 127, 136, 125, 113, 140, 124, 120, 138, 132, 127, 113, 133, 145, 130, 145, 139, 129, 135, 112, 138, 130, 111, 128, 118, 137, 130, 120, 122, 140, 125, 119, 115, 122, 129, 133, 103, 126, 121, 117, 142, 131, 123, 122, 122, 136, 101, 129, 127, 122, 125, 109, 123, 129, 115, 125, 106, 127, 118, 110, 140, 121, 131, 136, 127, 109, 132, 131, 129, 119, 132, 117, 131, 146, 128, 125, 122, 116, 129, 124, 123, 110, 118, 119, 111, 150, 119, 121, 123, 128, 131, 118, 135, 118, 142, 125, 143, 106, 131, 134, 123, 128, 144, 127, 131, 137, 118, 124, 121, 136, 102, 118, 113, 133, 122, 123, 112, 122, 122, 142, 110, 128, 111, 143, 139, 109, 122, 114, 136, 104, 136, 140, 115, 117, 120, 130, 133, 112, 119, 123, 99, 136, 128, 129, 134, 122, 127, 115, 144, 116, 137, 156, 124, 112, 143, 121, 122, 126, 115, 116, 120, 169, 123, 122, 139, 119, 122, 121, 117, 114, 120, 113, 135, 127, 131, 142, 114, 105, 112, 134, 110, 123, 139, 109, 132, 129, 128, 135, 122, 137, 132, 118, 124, 135, 128, 123, 113, 137, 123, 122, 145, 117, 117, 131, 129, 112, 126, 115, 113, 127, 131, 130, 130, 126, 137, 124, 136, 118, 131, 103, 118, 126, 110, 128, 127, 109, 127, 118, 145, 129, 118, 118, 126, 124, 127, 139, 121, 159, 116, 134, 104, 144, 109, 122, 119, 123, 132, 117, 127, 120, 139, 125, 114, 113, 129, 129, 128, 123, 127, 122, 133, 127, 114, 119, 118, 121, 121, 118, 119, 122, 129, 119, 100, 125, 127, 127, 137, 130, 137, 110, 148, 131, 140, 112, 101, 120, 137, 126, 127, 140, 115, 122, 124, 122, 130, 128, 128, 109, 114, 127, 134, 128, 122, 130, 122, 127, 130, 118, 142, 123, 130, 135, 109, 105, 118, 131, 123, 109, 105, 123, 135, 128, 117, 121, 127, 129, 129, 134, 127, 144, 122, 138, 140, 131, 131, 116, 126, 96, 136, 119, 128, 118, 110, 127, 129, 133, 114, 102, 131, 130, 149, 133, 132, 117, 125, 121, 105, 144, 112, 114, 109, 136, 121, 118, 125, 114, 145, 133, 122, 125, 124, 116, 124, 147, 143, 122, 135, 115, 135, 124, 131, 122, 103, 124, 122, 128, 136, 137, 142, 114, 126, 113, 132, 125, 120, 123, 118, 126, 121, 125, 121, 137, 136, 126, 116, 125, 122, 115, 115, 122, 118, 121, 141, 123, 109, 134, 128, 126, 116, 125, 131, 127, 130, 133, 139, 134, 119, 124, 128, 117, 102, 133, 115, 128, 143, 109, 126, 125, 124, 136, 116, 128, 115, 127, 135, 125, 130, 140, 141, 118, 130, 125, 119, 112, 113, 122, 128, 129, 126, 133, 139, 149, 144, 123, 145, 122, 151, 114, 130, 139, 124, 123, 128, 128, 145, 120, 148, 119, 112, 110, 110, 128, 117, 116, 116, 123, 127, 119, 128, 120, 119, 146, 128, 126, 117, 134, 137, 132, 125, 118, 134, 110, 150, 131, 125, 113, 114, 128, 122, 120, 129, 116, 130, 114, 122, 103, 116, 116, 132, 103, 114, 133, 129, 121, 122, 144, 149, 140, 139, 116, 129, 131, 135, 112, 137, 113, 117, 137, 130, 116, 100, 125, 121, 129, 129, 119, 123, 108, 142, 96, 114, 108, 124, 115, 114, 132, 124, 123, 128, 105, 115, 134, 145, 130, 127, 124, 119, 143, 122, 107, 136, 133, 130, 130, 120, 123, 113, 126, 120, 123, 119, 133, 129, 131, 122, 124, 121, 117, 140, 119, 131, 147, 119, 152, 129, 133, 113, 128, 118, 122, 125, 147, 134, 133, 124, 141, 145, 136, 119, 126, 113, 123, 124, 112, 129, 119, 112, 141, 122, 130, 115, 132, 121, 136, 135, 124, 135, 116, 131, 136, 118, 132, 121, 136, 139, 136, 133, 115, 132, 110, 124, 126, 125, 130, 129, 121, 116, 117, 132, 135, 111, 126, 125, 119, 134, 136, 136, 133, 129, 116, 133, 119, 117, 114, 136, 125, 126, 123, 132, 118, 143, 128, 132, 132, 127, 124, 116, 142, 137, 113, 138, 110, 118, 130, 104, 121, 129, 123, 138, 128, 124, 135, 143, 113, 131, 133, 129, 127, 112, 128, 137, 108, 125, 122, 129, 126, 122, 117, 128, 112, 125, 125, 129, 132, 130, 122, 123, 116, 128, 135, 110, 137, 119, 115, 115, 102, 126, 123, 136, 132, 123, 128, 126, 122, 120, 118, 110, 126, 120, 96, 106, 130, 129, 136, 126, 124, 121, 138, 140, 113, 113, 117, 116, 127, 142, 121, 134, 104, 109, 129, 126, 132, 131, 137, 124, 147, 126, 132, 136, 131, 119, 132, 135, 131, 114, 118, 126, 127, 107, 135, 120, 129, 137, 111, 124, 129, 136, 128, 132, 127, 104, 109, 110, 143, 112, 136, 118, 117, 122, 111, 117, 129, 128, 116, 117, 134, 131, 116, 134, 151, 128, 146, 115, 128, 130, 129, 121, 129, 99, 130, 106, 142, 124, 120, 130, 133, 121, 126, 130, 120, 146, 127, 135, 137, 132, 128, 124, 133, 124, 123, 114, 120, 113, 112, 123, 140, 118, 136, 131, 114, 115, 121, 103, 135, 121, 111, 127, 141, 129, 136, 130, 112, 123, 121, 120, 112, 122, 126, 118, 118, 115, 133, 131, 127, 135, 132, 130, 141, 124, 118, 107, 141, 128, 126, 117, 130, 136, 115, 111, 141, 119, 130, 115, 125, 126, 139, 115, 121, 131, 117, 136, 121, 116, 142, 136, 150, 135, 121, 141, 134, 132, 118, 140, 117, 132, 118, 132, 122, 125, 107, 125, 105, 126, 112, 131, 127, 135, 132, 101, 141, 129, 131, 108, 127, 129, 126, 129, 120, 128, 121, 115, 117, 131, 129, 114, 127, 132, 125, 133, 96, 118, 111, 141, 156, 119, 129, 128, 130, 128, 122, 127, 113, 111, 122, 119, 123, 130, 128, 111, 144, 134, 106, 138, 132, 148, 129, 139, 114, 120, 124, 118, 104, 138, 127, 145, 115, 111, 131, 129, 144, 132, 127, 138, 125, 118, 132, 108, 125, 124, 118, 141, 140, 136, 125, 125, 126, 142, 121, 131, 126, 115, 131, 102, 124, 126, 124, 120, 94, 131, 123, 121, 114, 133, 128, 112, 127, 141, 133, 129, 136, 133, 127, 126, 111, 140, 124, 123, 145, 122, 122, 110, 129, 129, 140, 124, 125, 122, 139, 112, 126, 115, 132, 129, 138, 129, 116, 149, 131, 110, 133, 120, 117, 123, 129, 128, 142, 122, 96, 126, 131, 113, 118, 136, 124, 124, 114, 134, 132, 137, 130, 115, 122, 131, 141, 123, 135, 114, 115, 118, 111, 128, 127, 152, 128, 155, 131, 133, 121, 111, 131, 124, 115, 117, 128, 114, 151, 130, 106, 150, 126, 123, 128, 127, 123, 121, 124, 120, 127, 118, 123, 125, 119, 108, 127, 117, 144, 129, 128, 130, 105, 129, 123, 126, 111, 126, 141, 126, 115, 125, 126, 116, 122, 112, 118, 115, 150, 148, 121, 141, 122, 125, 124, 120, 113, 121, 146, 138, 133, 139, 137, 128, 114, 135, 120, 105, 116, 126, 128, 110, 135, 110, 131, 131, 113, 115, 132, 123, 120, 125, 146, 129, 146, 120, 119, 133, 123, 119, 117, 124, 108, 143, 131, 110, 138, 125, 118, 118, 141, 118, 118, 134, 132, 131, 144, 144, 112, 123, 126, 111, 123, 125, 91, 117, 126, 126, 126, 118, 128, 144, 117, 127, 111, 133, 133, 143, 131, 133, 126, 114, 120, 115, 116, 142, 141, 120, 119, 126, 119, 127, 120, 113, 131, 120, 124, 133, 132, 108, 130, 125, 136, 121, 116, 117, 113, 141, 114, 136, 125, 131, 139, 127, 136, 130, 113, 112, 111, 122, 120, 123, 142, 130, 134, 118, 117, 128, 129, 121, 122, 126, 123, 137, 134, 139, 123, 140, 145, 139, 119, 127, 140, 123, 129, 126, 118, 111, 134, 130, 127, 122, 146, 132, 124, 124, 131, 122, 138, 141, 130, 118, 111, 131, 129, 105, 126, 129, 139, 113, 138, 126, 130, 129, 139, 115, 109, 138, 112, 144, 106, 135, 131, 135, 131, 123, 130, 126, 124, 119, 138, 114, 137, 126, 126, 141, 150, 127, 136, 122, 112, 124, 132, 118, 123, 120, 133, 126, 129, 127, 128, 130, 117, 118, 129, 131, 122, 135, 105, 127, 126, 128, 123, 117, 142, 127, 124, 126, 123, 114, 148, 134, 130, 154, 132, 131, 136, 122, 118, 135, 126, 128, 120, 116, 128, 117, 132, 114, 125, 130, 135, 122, 128, 132, 121, 114, 130, 114, 134, 126, 119, 116, 121, 117, 113, 122, 124, 137, 132, 112, 120, 128, 139, 118, 113, 109, 114, 104, 132, 134, 117, 129, 114, 121, 134, 103, 136, 129, 133, 140, 134, 124, 115, 131, 141, 151, 129, 121, 123, 133, 137, 132, 131, 108, 114, 129, 126, 126, 118, 122, 114, 125, 133, 135, 112, 131, 135, 129, 123, 119, 102, 128, 123, 120, 119, 130, 118, 127, 129, 117, 130, 132, 122, 127, 109, 124, 103, 133, 132, 101, 120, 135, 128, 127, 134, 118, 125, 132, 130, 124, 126, 118, 121, 132, 121, 142, 140, 116, 108, 136, 127, 121, 116, 114, 128, 129, 107, 120, 133, 132, 126, 104, 119, 124, 112, 125, 116, 125, 123, 136, 117, 125, 104, 112, 110, 120, 151, 143, 130, 118, 112, 129, 127, 108, 113, 131, 116, 119, 127, 129, 134, 129, 132, 127, 129, 133, 138, 142, 123, 119, 127, 128, 128, 139, 115, 135, 133, 120, 144, 119, 98, 132, 116, 129, 115, 129, 114, 118, 139, 137, 120, 104, 129, 147, 126, 109, 129, 123, 127, 116, 140, 102, 158, 117, 121, 128, 132, 111, 139, 143, 134, 106, 124, 121, 129, 112, 109, 133, 130, 132, 121, 126, 95, 132, 132, 124, 136, 132, 139, 135, 147, 113, 120, 146, 130, 105, 124, 117, 137, 121, 117, 118, 135, 124, 132, 121, 124, 121, 127, 133, 138, 147, 135, 115, 123, 119, 114, 127, 121, 127, 114, 113, 132, 132, 119, 114, 134, 111, 130, 134, 129, 126, 128, 154, 130, 145, 128, 137, 122, 104, 133, 107, 114, 119, 129, 118, 118, 131, 123, 123, 125, 121, 134, 119, 139, 135, 124, 136, 133, 133, 130, 118, 122, 118, 124, 90, 109, 124, 123, 112, 116, 96, 144, 127, 116, 115, 120, 122, 136, 104, 131, 118, 122, 121, 133, 132, 139, 125, 131, 114, 131, 132, 124, 122, 136, 144, 113, 132, 125, 108, 112, 108, 121, 131, 125, 119, 141, 124, 131, 120, 141, 141, 124, 120, 131, 124, 129, 132, 117, 132, 134, 111, 107, 130, 106, 119, 131, 120, 120, 128, 127, 141, 131, 120, 134, 129, 111, 122, 127, 109, 133, 119, 133, 109, 139, 119, 111, 125, 125, 113, 143, 110, 135, 130, 126, 134, 126, 126, 115, 114, 147, 124, 130, 138, 116, 114, 131, 107, 118, 122, 131, 129, 143, 122, 124, 137, 135, 118, 118, 116, 113, 104, 126, 128, 124, 118, 131, 129, 126, 117, 115, 106, 116, 130, 141, 122, 111, 134, 125, 141, 126, 127, 128, 118, 130, 101, 114, 118, 121, 127, 127, 123, 138, 146, 126, 110, 110, 128, 102, 130, 137, 131, 127, 112, 134, 123, 134, 117, 125, 140, 136, 121, 110, 106, 112, 100, 126, 112, 124, 129, 128, 120, 131, 127, 116, 111, 124, 125, 142, 133, 117, 128, 110, 132, 138, 109, 111, 122, 119, 123, 115, 147, 133, 117, 141, 110, 130, 125, 135, 122, 115, 102, 132, 128, 128, 125, 123, 125, 126, 137, 117, 136, 124, 122, 151, 123, 130, 133, 142, 129, 115, 127, 159, 126, 126, 110, 129, 159, 120, 119, 105, 101, 110, 116, 117, 134, 142, 115, 127, 108, 118, 148, 127, 115, 136, 128, 138, 123, 106, 125, 131, 114, 135, 126, 118, 114, 132, 117, 129, 127, 130, 108, 125, 131, 138, 115, 130, 120, 121, 121, 116, 149, 125, 132, 145, 128, 140, 122, 103, 130, 124, 138, 126, 122, 124, 124, 128, 119, 138, 127, 123, 134, 129, 120, 131, 129, 130, 136, 142, 118, 147, 130, 115, 130, 132, 130, 146, 137, 120, 140, 142, 127, 120, 123, 114, 127, 129, 127, 136, 107, 124, 150, 126, 117, 141, 107, 135, 136, 112, 119, 135, 116, 139, 118, 137, 130, 135, 124, 148, 128, 136, 127, 113, 143, 134, 123, 135, 136, 109, 124, 127, 139, 114, 122, 128, 122, 136, 129, 144, 133, 139, 141, 115, 144, 120, 131, 106, 133, 135, 129, 126, 138, 140, 121, 117, 133, 138, 132, 128, 106, 127, 120, 144, 117, 127, 139, 112, 139, 131, 119, 126, 123, 126, 121, 125, 128, 146, 109, 130, 144, 120, 114, 126, 108, 141, 150, 112, 120, 125, 105, 126, 133, 107, 130, 141, 124, 133, 117, 125, 117, 123, 149, 119, 130, 134, 135, 118, 120, 137, 125, 117, 117, 124, 127, 125, 135, 113, 142, 118, 139, 129, 119, 141, 133, 119, 132, 120, 140, 119, 127, 130, 137, 125, 121, 137, 139, 123, 114, 126, 145, 119, 139, 117, 133, 125, 122, 140, 127, 133, 130, 123, 119, 126, 119, 147, 118, 120, 129, 121, 133, 99, 122, 131, 113, 127, 113, 134, 108, 155, 107, 134, 145, 126, 125, 139, 112, 108, 136, 125, 122, 129, 117, 133, 143, 121, 134, 141, 139, 109, 121, 122, 126, 126, 129, 127, 108, 149, 137, 109, 116, 131, 132, 123, 120, 116, 141, 133, 127, 114, 119, 129, 121, 109, 138, 128, 130, 120, 133, 120, 108, 138, 117, 123, 138, 134, 116, 120, 117, 116, 126, 120, 128, 114, 117, 138, 112, 124, 127, 128, 139, 117, 130, 113, 136, 134, 116, 116, 122, 114, 134, 134, 118, 123, 107, 109, 123, 126, 135, 125, 120, 111, 135, 132, 123, 121, 121, 111, 106, 131, 125, 138, 153, 115, 134, 117, 129, 135, 134, 119, 142, 130, 124, 97, 123, 121, 130, 136, 126, 141, 120, 117, 127, 123, 114, 121, 123, 134, 119, 112, 125, 121, 122, 129, 136, 133, 133, 132, 118, 115, 132, 125, 118, 110, 131, 122, 116, 143, 103, 116, 118, 117, 139, 137, 124, 114, 119, 123, 127, 114, 142, 151, 127, 112, 118, 133, 119, 140, 115, 118, 102, 129, 128, 137, 119, 105, 143, 135, 127, 111, 122, 115, 119, 112, 125, 113, 120, 109, 134, 117, 121, 120, 142, 114, 124, 130, 148, 114, 118, 124, 136, 130, 125, 127, 104, 121, 129, 124, 126, 111, 128, 131, 118, 119, 127, 135, 128, 116, 138, 137, 103, 122, 127, 124, 120, 132, 112, 131, 138, 104, 97, 121, 142, 136, 128, 119, 138, 139, 119, 117, 127, 118, 140, 128, 121, 119, 102, 118, 120, 120, 117, 119, 113, 111, 113, 118, 126, 122, 122, 124, 104, 137, 136, 136, 119, 106, 143, 144, 136, 105, 130, 115, 114, 115, 145, 134, 108, 106, 129, 120, 132, 128, 117, 129, 128, 137, 130, 127, 121, 120, 117, 115, 140, 122, 126, 124, 128, 124, 117, 109, 123, 127, 142, 113, 132, 119, 138, 132, 133, 136, 133, 126, 115, 105, 105, 97, 114, 131, 130, 122, 138, 108, 118, 139, 118, 125, 140, 129, 126, 120, 123, 129, 121, 133, 128, 129, 147, 101, 114, 119, 106, 132, 122, 107, 125, 122, 142, 139, 115, 118, 133, 121, 137, 122, 119, 123, 110, 123, 120, 108, 121, 116, 131, 121, 137, 132, 126, 126, 114, 128, 135, 114, 110, 124, 117, 127, 115, 127, 104, 129, 116, 107, 115, 118, 130, 100, 110, 112, 132, 142, 125, 122, 130, 143, 120, 120, 112, 136, 144, 134, 123, 136, 130, 133, 115, 120, 109, 126, 130, 124, 149, 129, 146, 139, 121, 108, 117, 112, 113, 103, 127, 107, 119, 129, 132, 148, 133, 124, 138, 140, 111, 130, 123, 141, 107, 112, 124, 119, 124, 125, 122, 122, 121, 128, 119, 117, 121, 135, 113, 148, 119, 136, 132, 118, 117, 122, 131, 121, 119, 105, 111, 117, 114, 137, 124, 130, 118, 131, 132, 117, 135, 122, 119, 131, 121, 120, 116, 116, 104, 126, 128, 106, 131, 124, 140, 118, 100, 128, 119, 123, 109, 123, 122, 117, 127, 138, 133, 132, 121, 143, 146, 116, 114, 125, 108, 109, 114, 119, 138, 147, 118, 118, 114, 118, 125, 126, 127, 126, 127, 122, 139, 122, 122, 101, 118, 121, 139, 128, 128, 123, 125, 117, 129, 114, 119, 118, 126, 110, 117, 145, 122, 129, 123, 143, 115, 130, 134, 143, 129, 132, 117, 140, 134, 116, 126, 106, 148, 112, 143, 138, 112, 129, 129, 113, 120, 122, 134, 133, 138, 127, 130, 113, 117, 146, 123, 119, 107, 125, 126, 131, 126, 130, 109, 122, 122, 115, 122, 120, 126, 115, 123, 137, 123, 119, 143, 146, 111, 134, 116, 116, 113, 127, 119, 126, 111, 129, 121, 143, 123, 116, 145, 118, 125, 135, 126, 133, 141, 130, 109, 137, 133, 134, 130, 128, 149, 142, 126, 124, 126, 125, 129, 115, 127, 117, 124, 124, 127, 117, 116, 125, 131, 131, 104, 130, 132, 130, 124, 115, 126, 114, 141, 127, 127, 114, 127, 146, 139, 141, 120, 137, 141, 114, 118, 110, 125, 125, 124, 139, 127, 125, 130, 123, 128, 101, 126, 122, 124, 142, 122, 131, 117, 127, 115, 121, 121, 138, 113, 125, 142, 108, 134, 109, 120, 109, 137, 130, 135, 124, 125, 114, 139, 133, 113, 122, 138, 131, 130, 133, 120, 109, 131, 121, 118, 115, 133, 122, 127, 112, 125, 118, 123, 120, 120, 126, 103, 130, 124, 129, 140, 124, 128, 115, 129, 124, 123, 124, 106, 132, 135, 125, 128, 123, 130, 124, 121, 159, 121, 127, 122, 124, 128, 133, 119, 128, 116, 129, 119, 108, 117, 122, 106, 133, 144, 137, 116, 139, 133, 112, 116, 128, 118, 118, 145, 128, 124, 134, 117, 118, 117, 117, 114, 146, 113, 129, 134, 146, 138, 122, 126, 118, 138, 137, 118, 125, 113, 132, 124, 126, 131, 114, 136, 135, 126, 124, 120, 116, 135, 127, 130, 128, 144, 118, 128, 126, 131, 113, 132, 117, 135, 121, 124, 140, 120, 132, 125, 130, 127, 152, 124, 125, 130, 114, 128, 117, 123, 122, 113, 113, 128, 127, 128, 141, 133, 136, 132, 134, 132, 130, 132, 128, 115, 119, 130, 118, 136, 129, 109, 124, 124, 117, 132, 114, 131, 128, 115, 142, 126, 121, 132, 144, 135, 136, 126, 132, 128, 109, 123, 117, 128, 127, 122, 136, 127, 130, 124, 107, 136, 125, 124, 109, 124, 121, 126, 113, 121, 122, 133, 117, 99, 138, 123, 138, 139, 125, 110, 123, 128, 121, 117, 110, 145, 121, 120, 138, 135, 117, 148, 122, 113, 112, 124, 144, 112, 127, 132, 127, 130, 113, 119, 101, 124, 130, 122, 120, 119, 121, 128, 155, 113, 127, 128, 117, 107, 130, 128, 122, 128, 124, 117, 118, 129, 120, 138, 129, 133, 128, 110, 125, 113, 115, 122, 123, 117, 138, 119, 131, 125, 116, 127, 137, 107, 123, 124, 135, 129, 135, 129, 138, 132, 131, 117, 120, 127, 110, 115, 127, 115, 115, 126, 121, 133, 118, 130, 115, 132, 115, 133, 140, 118, 123, 116, 131, 123, 100, 113, 121, 106, 134, 128, 125, 129, 124, 135, 106, 131, 136, 107, 153, 102, 121, 124, 103, 107, 119, 137, 111, 137, 127, 132, 123, 119, 112, 131, 131, 125, 136, 131, 120, 120, 127, 129, 148, 108, 112, 129, 137, 128, 122, 128, 142, 118, 120, 124, 120, 140, 116, 164, 118, 135, 134, 130, 121, 128, 108, 123, 121, 142, 137, 148, 125, 122, 128, 112, 111, 122, 136, 127, 126, 110, 117, 132, 119, 121, 137, 137, 113, 110, 113, 139, 134, 125, 123, 134, 125, 120, 133, 136, 137, 123, 113, 145, 120, 123, 124, 133, 124, 109, 129, 128, 123, 132, 127, 131, 110, 119, 128, 104, 130, 139, 130, 135, 133, 133, 128, 135, 139, 108, 127, 128, 125, 136, 124, 150, 121, 137, 126, 126, 130, 119, 121, 137, 112, 105, 125, 120, 129, 125, 112, 119, 117, 124, 121, 124, 120, 146, 133, 127, 121, 108, 119, 123, 110, 122, 140, 127, 113, 134, 136, 119, 131, 131, 131, 129, 124, 121, 134, 142, 138, 128, 100, 139, 123, 127, 119, 127, 133, 112, 111, 121, 126, 113, 112, 129, 132, 128, 129, 117, 126, 130, 134, 123, 126, 133, 113, 133, 125, 106, 119, 131, 126, 128, 125, 113, 132, 131, 116, 118, 143, 128, 137, 122, 121, 100, 146, 134, 130, 123, 131, 126, 120, 127, 111, 126, 117, 120, 98, 120, 120, 103, 120, 120, 129, 124, 116, 115, 120, 109, 131, 124, 126, 135, 125, 123, 138, 138, 129, 118, 134, 129, 145, 110, 126, 118, 98, 114, 124, 131, 132, 151, 118, 124, 121, 116, 123, 138, 125, 135, 132, 132, 131, 125, 112, 110, 126, 119, 120, 129, 122, 104, 115, 108, 130, 116, 124, 115, 128, 143, 130, 119, 119, 132, 129, 109, 121, 121, 122, 123, 131, 127, 115, 129, 121, 127, 127, 111, 119, 134, 117, 121, 136, 126, 143, 130, 131, 129, 143, 130, 135, 136, 131, 124, 137, 124, 133, 119, 123, 121, 128, 136, 124, 125, 119, 130, 123, 143, 117, 135, 127, 129, 101, 127, 121, 117, 114, 133, 135, 113, 134, 108, 103, 134, 141, 145, 122, 115, 118, 113, 126, 124, 143, 129, 114, 132, 107, 136, 131, 122, 138, 152, 123, 127, 139, 117, 145, 121, 132, 120, 118, 125, 119, 119, 137, 113, 131, 133, 131, 123, 144, 124, 132, 131, 133, 119, 135, 116, 111, 115, 119, 113, 128, 120, 108, 143, 138, 132, 110, 128, 137, 137, 130, 133, 142, 136, 119, 130, 131, 137, 137, 125, 139, 118, 117, 123, 108, 137, 125, 121, 108, 126, 120, 135, 119, 124, 131, 123, 130, 140, 138, 141, 128, 109, 128, 129, 132, 143, 125, 140, 115, 122, 154, 154, 118, 119, 119, 143, 135, 124, 127, 123, 119, 140, 110, 127, 121, 134, 124, 118, 126, 100, 112, 145, 108, 130, 130, 130, 128, 119, 122, 111, 130, 139, 128, 107, 114, 128, 129, 134, 133, 126, 141, 128, 135, 117, 113, 113, 115, 133, 127, 118, 125, 134, 124, 139, 146, 141, 113, 135, 116, 136, 142, 123, 117, 134, 131, 124, 111, 131, 136, 147, 133, 152, 134, 106, 125, 131, 119, 125, 141, 141, 136, 120, 124, 121, 132, 159, 124, 118, 125, 115, 126, 119, 138, 126, 128, 120, 130, 126, 136, 122, 122, 139, 152, 109, 119, 133, 118, 121, 152, 120, 135, 140, 138, 110, 130, 114, 120, 131, 135, 130, 135, 130, 130, 115, 111, 125, 121, 125, 130, 125, 116, 128, 116, 118, 129, 153, 127, 120, 121, 123, 128, 108, 127, 125, 123, 137, 112, 140, 122, 134, 131, 114, 127, 140, 122, 130, 134, 126, 128, 126, 120, 122, 136, 125, 118, 115, 129, 120, 136, 117, 140, 116, 123, 123, 149, 130, 130, 120, 121, 108, 141, 137, 122, 132, 130, 140, 134, 129, 122, 125, 142, 120, 119, 132, 125, 118, 117, 104, 124, 120, 117, 134, 129, 124, 129, 131, 127, 118, 121, 122, 117, 107, 109, 132, 133, 131, 120, 120, 144, 126, 111, 119, 123, 123, 136, 136, 119, 130, 139, 124, 124, 132, 127, 118, 122, 133, 116, 125, 137, 124, 109, 121, 132, 132, 120, 132, 120, 130, 120, 132, 115, 120, 129, 112, 134, 129, 134, 122, 131, 116, 120, 127, 140, 139, 145, 115, 112, 117, 120, 133, 124, 118, 115, 130, 112, 141, 144, 148, 125, 107, 131, 111, 125, 124, 117, 122, 110, 140, 121, 123, 131, 126, 134, 136, 138, 127, 121, 126, 133, 126, 116, 124, 133, 123, 122, 116, 134, 117, 122, 118, 130, 117, 114, 137, 124, 117, 131, 112, 124, 128, 125, 134, 114, 112, 126, 117, 123, 126, 141, 139, 117, 126, 110, 131, 124, 121, 120, 108, 128, 119, 123, 109, 131, 124, 134, 122, 113, 116, 118, 136, 123, 97, 139, 130, 114, 139, 138, 116, 115, 124, 140, 130, 120, 128, 128, 143, 128, 116, 133, 126, 134, 125, 129, 122, 131, 127, 112, 147, 120, 125, 124, 143, 100, 123, 131, 142, 131, 139, 136, 107, 146, 123, 125, 117, 122, 134, 124, 144, 118, 106, 113, 140, 123, 130, 120, 139, 120, 144, 141, 129, 137, 113, 109, 121, 136, 119, 124, 129, 127, 111, 113, 113, 119, 147, 134, 126, 138, 115, 122, 119, 127, 137, 120, 142, 118, 107, 117, 127, 121, 137, 114, 115, 139, 129, 123, 115, 122, 132, 131, 130, 107, 116, 119, 145, 121, 122, 125, 136, 122, 142, 115, 112, 133, 114, 134, 125, 112, 115, 117, 128, 105, 136, 108, 129, 133, 129, 137, 139, 101, 114, 112, 145, 125, 133, 135, 133, 119, 130, 110, 133, 128, 125, 140, 108, 115, 126, 131, 114, 125, 126, 140, 128, 124, 133, 125, 120, 131, 114, 133, 143, 115, 125, 140, 111, 131, 137, 115, 117, 145, 118, 127, 121, 125, 152, 120, 92, 142, 120, 138, 118, 135, 124, 113, 128, 103, 146, 129, 136, 122, 134, 126, 121, 124, 133, 143, 130, 120, 144, 127, 134, 110, 136, 118, 120, 126, 128, 129, 121, 122, 122, 136, 131, 124, 139, 126, 122, 123, 116, 110, 113, 137, 127, 133, 123, 120, 111, 118, 131, 138, 130, 150, 127, 133, 130, 113, 148, 125, 129, 126, 110, 122, 125, 128, 127, 151, 123, 127, 140, 146, 109, 119, 110, 121, 121, 104, 118, 134, 110, 128, 121, 127, 132, 129, 149, 112, 141, 119, 133, 134, 137, 112, 116, 132, 135, 136, 138, 118, 127, 116, 130, 116, 122, 123, 123, 117, 117, 135, 121, 123, 106, 122, 128, 140, 135, 124, 122, 129, 136, 113, 127, 120, 127, 128, 131, 145, 134, 117, 127, 113, 120, 132, 125, 131, 126, 133, 133, 119, 128, 127, 107, 119, 126, 115, 131, 132, 141, 125, 123, 126, 112, 115, 137, 119, 115, 125, 140, 128, 110, 122, 107, 117, 116, 119, 127, 129, 114, 136, 131, 140, 130, 127, 119, 113, 118, 120, 131, 134, 131, 131, 125, 117, 132, 129, 132, 112, 125, 110, 129, 116, 139, 119, 120, 125, 140, 118, 119, 122, 121, 138, 154, 128, 109, 114, 139, 119, 110, 123, 124, 108, 119, 138, 134, 130, 118, 125, 130, 113, 142, 129, 121, 120, 131, 128, 132, 126, 116, 130, 120, 105, 121, 121, 110, 125, 99, 136, 125, 125, 126, 134, 130, 135, 125, 122, 128, 129, 111, 121, 119, 119, 135, 120, 130, 110, 131, 118, 126, 116, 122, 134, 106, 124, 133, 143, 119, 140, 114, 119, 120, 134, 119, 126, 128, 125, 136, 120, 110, 110, 132, 117, 123, 127, 120, 138, 120, 117, 140, 127, 126, 128, 141, 133, 124, 127, 150, 141, 131, 124, 128, 111, 122, 136, 118, 134, 120, 125, 128, 123, 134, 128, 119, 123, 141, 130, 122, 134, 114, 124, 122, 125, 139, 117, 113, 131, 105, 136, 143, 107, 121, 115, 132, 124, 126, 115, 115, 121, 125, 124, 116, 127, 112, 131, 132, 120, 135, 126, 123, 127, 130, 125, 122, 136, 140, 124, 117, 144, 145, 121, 111, 132, 134, 133, 135, 126, 120, 128, 136, 141, 108, 128, 123, 146, 127, 133, 120, 141, 183, 131, 126, 125, 134, 116, 126, 132, 115, 120, 129, 115, 118, 133, 123, 143, 125, 115, 120, 120, 136, 132, 119, 131, 132, 131, 124, 129, 126, 119, 135, 143, 128, 119, 129, 121, 103, 119, 120, 121, 145, 113, 136, 130, 142, 127, 133, 130, 99, 119, 114, 110, 124, 128, 136, 133, 127, 92, 136, 120, 141, 128, 108, 116, 127, 119, 127, 122, 136, 141, 115, 120, 128, 113, 126, 122, 143, 131, 135, 115, 103, 115, 133, 126, 120, 143, 116, 126, 121, 124, 129, 136, 119, 114, 135, 127, 132, 137, 132, 120, 132, 142, 131, 128, 115, 125, 121, 119, 122, 120, 130, 138, 112, 126, 117, 123, 98, 122, 131, 120, 120, 135, 131, 131, 121, 147, 127, 127, 114, 105, 134, 122, 131, 131, 125, 126, 120, 136, 137, 112, 140, 123, 137, 116, 124, 143, 129, 124, 115, 119, 107, 150, 107, 120, 135, 118, 111, 127, 126, 131, 106, 118, 128, 127, 131, 128, 126, 118, 114, 116, 112, 132, 128, 134, 126, 108, 123, 127, 116, 131, 133, 106, 127, 119, 142, 153, 115, 123, 124, 132, 131, 119, 116, 127, 129, 134, 123, 139, 93, 119, 119, 129, 127, 123, 137, 123, 102, 128, 126, 114, 119, 116, 119, 127, 105, 133, 132, 121, 119, 146, 139, 130, 121, 132, 139, 139, 135, 131, 138, 135, 128, 133, 118, 132, 132, 117, 124, 130, 122, 127, 114, 125, 112, 130, 123, 128, 134, 126, 111, 120, 129, 117, 128, 123, 124, 143, 119, 127, 122, 130, 126, 123, 123, 123, 116, 113, 113, 133, 144, 140, 135, 134, 137, 134, 134, 121, 121, 125, 122, 148, 117, 134, 126, 128, 129, 120, 119, 128, 117, 131, 123, 133, 129, 115, 116, 136, 141, 132, 104, 123, 111, 110, 134, 115, 115, 121, 113, 121, 115, 141, 126, 116, 125, 124, 125, 109, 131, 129, 116, 135, 130, 133, 139, 123, 117, 132, 122, 125, 122, 138, 131, 142, 122, 126, 120, 122, 123, 122, 116, 113, 137, 130, 112, 137, 124, 129, 117, 109, 122, 124, 118, 133, 145, 111, 138, 121, 135, 116, 119, 131, 123, 121, 122, 127, 120, 119, 130, 108, 123, 107, 136, 115, 126, 131, 127, 114, 122, 118, 132, 127, 131, 124, 110, 132, 123, 118, 124, 123, 129, 136, 130, 127, 122, 124, 129, 138, 138, 131, 114, 125, 111, 120, 111, 122, 132, 120, 154, 131, 119, 115, 125, 125, 115, 114, 114, 129, 119, 145, 124, 120, 123, 130, 122, 127, 117, 125, 132, 127, 114, 141, 140, 128, 127, 135, 122, 123, 140, 122, 126, 136, 120, 130, 124, 113, 124, 127, 124, 130, 124, 117, 113, 118, 135, 114, 125, 129, 120, 114, 121, 115, 113, 137, 125, 123, 133, 126, 130, 134, 123, 117, 142, 159, 121, 136, 116, 126, 134, 131, 124, 134, 130, 111, 122, 132, 112, 152, 121, 104, 130, 117, 103, 112, 113, 107, 133, 107, 139, 130, 120, 119, 115, 123, 130, 124, 115, 109, 130, 119, 112, 132, 140, 129, 121, 131, 118, 118, 123, 133, 123, 113, 134, 131, 120, 113, 137, 127, 120, 121, 115, 125, 123, 126, 128, 121, 124, 134, 125, 130, 134, 122, 132, 132, 121, 133, 121, 127, 117, 147, 116, 117, 140, 125, 110, 125, 131, 121, 127, 131, 111, 136, 126, 120, 138, 104, 134, 133, 136, 127, 128, 114, 128, 131, 135, 112, 124, 120, 132, 125, 119, 110, 120, 124, 126, 139, 128, 122, 139, 132, 112, 135, 117, 110, 122, 119, 121, 120, 146, 110, 113, 156, 105, 141, 119, 135, 118, 120, 162, 114, 126, 126, 129, 138, 142, 121, 124, 131, 118, 118, 125, 120, 121, 124, 115, 139, 132, 135, 114, 125, 117, 131, 125, 126, 130, 131, 133, 127, 113, 138, 117, 148, 132, 140, 127, 126, 115, 143, 143, 131, 118, 128, 119, 125, 127, 139, 112, 120, 126, 115, 129, 134, 121, 120, 116, 128, 125, 130, 130, 107, 137, 127, 132, 120, 130, 120, 126, 118, 106, 116, 120, 136, 130, 125, 119, 122, 135, 126, 129, 124, 130, 117, 115, 125, 135, 122, 131, 115, 123, 112, 113, 126, 146, 120, 117, 113, 114, 158, 135, 120, 128, 116, 136, 124, 136, 128, 120, 130, 139, 123, 134, 133, 116, 97, 124, 108, 133, 103, 129, 138, 123, 119, 131, 121, 118, 127, 112, 123, 117, 126, 139, 111, 123, 142, 134, 137, 128, 114, 134, 139, 118, 131, 130, 142, 129, 124, 109, 124, 137, 133, 106, 125, 134, 109, 135, 101, 120, 123, 124, 137, 130, 159, 120, 124, 138, 117, 122, 117, 115, 120, 124, 115, 121, 135, 123, 117, 139, 120, 125, 134, 126, 149, 128, 128, 128, 117, 120, 122, 126, 112, 128, 126, 129, 135, 132, 125, 129, 121, 113, 114, 127, 130, 139, 125, 122, 117, 116, 122, 125, 137, 119, 131, 114, 128, 132, 117, 124, 131, 109, 126, 110, 131, 136, 131, 140, 134, 133, 123, 120, 126, 107, 112, 115, 122, 133, 131, 122, 115, 134, 119, 125, 122, 124, 119, 123, 159, 109, 121, 119, 109, 114, 122, 123, 126, 123, 124, 130, 111, 119, 142, 121, 126, 114, 128, 138, 136, 117, 121, 127, 121, 134, 118, 111, 127, 123, 141, 130, 120, 130, 143, 114, 123, 122, 133, 135, 116, 132, 136, 120, 140, 135, 107, 117, 127, 138, 127, 141, 137, 106, 123, 133, 118, 139, 123, 123, 114, 95, 132, 124, 126, 121, 137, 126, 127, 136, 131, 121, 142, 113, 105, 111, 120, 121, 124, 130, 124, 124, 132, 114, 128, 129, 133, 141, 115, 133, 141, 116, 128, 114, 127, 129, 127, 151, 134, 118, 140, 132, 122, 123, 112, 113, 134, 134, 139, 112, 119, 119, 108, 114, 112, 123, 157, 119, 132, 102, 124, 125, 120, 123, 131, 118, 132, 134, 114, 126, 130, 117, 132, 125, 125, 128, 133, 108, 127, 133, 113, 119, 125, 121, 133, 134, 125, 126, 115, 108, 114, 136, 128, 137, 111, 138, 133, 119, 137, 125, 139, 130, 118, 127, 139, 117, 129, 134, 128, 115, 122, 116, 124, 117, 114, 118, 122, 132, 144, 132, 137, 129, 136, 146, 139, 121, 120, 120, 125, 114, 118, 129, 113, 147, 148, 123, 119, 110, 135, 138, 108, 132, 134, 136, 111, 120, 101, 110, 119, 110, 123, 127, 116, 122, 142, 118, 125, 105, 129, 126, 127, 117, 119, 135, 151, 125, 128, 123, 124, 127, 135, 128, 125, 125, 114, 122, 144, 120, 128, 113, 112, 131, 134, 121, 121, 119, 133, 112, 132, 127, 130, 120, 122, 131, 130, 129, 122, 124, 131, 119, 115, 129, 121, 111, 136, 134, 134, 119, 124, 131, 131, 121, 133, 117, 104, 119, 127, 118, 129, 120, 116, 107, 130, 119, 129, 128, 125, 141, 130, 137, 126, 130, 120, 122, 112, 116, 119, 101, 122, 127, 126, 107, 126, 138, 113, 124, 123, 142, 139, 148, 140, 120, 135, 133, 125, 114, 123, 111, 125, 124, 130, 121, 122, 116, 145, 119, 127, 119, 105, 117, 110, 133, 120, 146, 130, 122, 128, 115, 120, 129, 131, 113, 136, 120, 109, 127, 129, 112, 123, 114, 127, 129, 134, 143, 143, 115, 136, 131, 109, 120, 126, 123, 118, 117, 135, 132, 120, 130, 133, 126, 130, 132, 138, 129, 143, 126, 122, 116, 130, 111, 129, 122, 119, 129, 129, 120, 128, 132, 132, 119, 126, 124, 122, 139, 123, 113, 130, 112, 125, 126, 133, 126, 129, 115, 139, 126, 147, 119, 122, 130, 150, 137, 122, 143, 120, 141, 141, 120, 141, 116, 119, 132, 128, 110, 116, 119, 125, 138, 111, 123, 132, 132, 121, 119, 129, 134, 124, 117, 138, 119, 124, 118, 132, 101, 143, 127, 122, 133, 141, 114, 116, 135, 125, 136, 127, 109, 125, 133, 126, 123, 120, 131, 122, 115, 133, 128, 131, 143, 132, 116, 126, 153, 124, 134, 125, 141, 128, 114, 138, 120, 141, 129, 135, 135, 138, 119, 126, 129, 113, 123, 113, 137, 131, 135, 137, 123, 112, 116, 126, 119, 110, 105, 124, 127, 107, 124, 130, 109, 108, 129, 120, 133, 129, 132, 109, 110, 120, 118, 139, 117, 137, 128, 139, 140, 135, 143, 118, 121, 115, 140, 123, 123, 124, 126, 109, 116, 126, 116, 125, 130, 130, 113, 131, 128, 117, 137, 127, 131, 114, 129, 135, 138, 135, 118, 144, 117, 108, 126, 139, 139, 129, 119, 122, 118, 109, 120, 122, 124, 130, 115, 112, 130, 135, 122, 123, 134, 120, 114, 141, 112, 123, 134, 130, 142, 121, 120, 132, 133, 126, 130, 117, 111, 122, 140, 123, 121, 129, 120, 133, 130, 141, 119, 116, 140, 130, 125, 136, 133, 114, 125, 132, 136, 115, 112, 128, 124, 133, 146, 132, 132, 103, 129, 117, 110, 144, 128, 115, 133, 127, 129, 123, 125, 140, 118, 106, 111, 143, 120, 123, 120, 129, 133, 115, 126, 127, 123, 112, 141, 135, 132, 112, 128, 120, 126, 121, 118, 115, 123, 115, 139, 123, 127, 125, 119, 117, 137, 129, 115, 111, 123, 113, 141, 118, 128, 124, 135, 101, 131, 142, 129, 122, 126, 140, 142, 138, 129, 126, 154, 119, 131, 146, 108, 123, 132, 128, 151, 122, 113, 135, 116, 129, 113, 119, 121, 126, 127, 122, 117, 137, 132, 123, 118, 132, 119, 108, 115, 121, 121, 133, 115, 110, 117, 125, 145, 131, 141, 130, 123, 133, 132, 119, 115, 137, 133, 121, 104, 140, 122, 116, 128, 109, 140, 119, 108, 138, 137, 131, 132, 112, 115, 131, 125, 119, 128, 128, 122, 121, 114, 111, 132, 116, 125, 149, 111, 123, 115, 112, 119, 134, 127, 107, 113, 105, 124, 128, 130, 129, 130, 111, 133, 124, 114, 118, 112, 119, 134, 134, 106, 137, 138, 122, 123, 118, 114, 136, 134, 140, 117, 120, 109, 123, 116, 124, 129, 126, 132, 120, 136, 104, 127, 143, 124, 127, 133, 129, 130, 127, 122, 135, 133, 127, 122, 137, 130, 130, 127, 125, 130, 115, 125, 121, 127, 111, 136, 111, 120, 122, 144, 125, 109, 142, 109, 121, 128, 117, 115, 140, 115, 115, 123, 140, 122, 94, 109, 135, 106, 120, 112, 142, 114, 116, 129, 115, 121, 129, 135, 108, 126, 118, 130, 131, 112, 136, 130, 113, 122, 124, 120, 119, 132, 142, 136, 142, 146, 131, 121, 127, 145, 122, 143, 131, 164, 148, 119, 117, 124, 123, 132, 119, 121, 138, 121, 152, 136, 124, 141, 140, 123, 135, 133, 137, 117, 132, 135, 118, 131, 116, 116, 151, 100, 138, 113, 94, 123, 117, 124, 140, 123, 131, 123, 124, 123, 138, 122, 123, 125, 127, 133, 114, 130, 130, 133, 126, 139, 113, 136, 136, 127, 124, 138, 129, 124, 135, 121, 120, 116, 121, 126, 125, 129, 115, 128, 132, 128, 125, 123, 111, 127, 126, 115, 123, 126, 134, 132, 117, 139, 112, 135, 127, 127, 112, 122, 140, 129, 129, 130, 124, 112, 112, 130, 122, 136, 137, 119, 135, 130, 122, 133, 138, 131, 136, 124, 127, 131, 127, 123, 135, 110, 118, 111, 122, 128, 125, 148, 131, 111, 131, 137, 134, 140, 138, 116, 132, 119, 123, 128, 121, 132, 139, 119, 129, 118, 119, 127, 121, 122, 115, 122, 132, 120, 115, 134, 131, 125, 117, 130, 129, 127, 115, 124, 132, 115, 132, 116, 127, 111, 140, 119, 132, 132, 128, 121, 129, 103, 131, 135, 134, 130, 131, 144, 140, 132, 137, 110, 129, 115, 139, 109, 121, 133, 122, 134, 125, 137, 135, 115, 99, 141, 128, 114, 126, 114, 130, 124, 135, 132, 138, 132, 130, 121, 137, 119, 134, 121, 125, 126, 115, 134, 126, 112, 127, 124, 110, 133, 139, 131, 132, 119, 130, 110, 128, 123, 116, 133, 125, 135, 121, 121, 124, 102, 131, 124, 137, 130, 117, 120, 135, 125, 134, 114, 116, 126, 108, 122, 153, 115, 115, 121, 124, 110, 140, 137, 108, 128, 119, 119, 137, 125, 129, 130, 125, 123, 124, 135, 134, 122, 116, 116, 132, 138, 119, 115, 124, 126, 117, 139, 122, 131, 128, 143, 138, 120, 123, 121, 123, 108, 137, 112, 115, 117, 139, 129, 136, 142, 124, 116, 136, 111, 108, 142, 128, 134, 130, 115, 118, 117, 130, 149, 107, 122, 153, 134, 134, 116, 117, 135, 116, 127, 105, 117, 121, 130, 108, 121, 128, 145, 124, 125, 122, 139, 113, 114, 118, 134, 129, 110, 118, 118, 153, 119, 123, 122, 113, 124, 140, 122, 121, 119, 121, 125, 120, 118, 119, 120, 134, 124, 131, 132, 115, 131, 122, 128, 112, 127, 129, 127, 125, 127, 108, 132, 108, 136, 121, 133, 126, 126, 133, 112, 135, 133, 133, 134, 150, 119, 130, 127, 147, 127, 124, 146, 118, 111, 123, 117, 119, 127, 133, 127, 129, 125, 117, 135, 130, 131, 132, 116, 116, 129, 119, 123, 132, 112, 127, 118, 134, 130, 132, 94, 116, 121, 124, 139, 109, 108, 118, 134, 121, 130, 131, 126, 124, 118, 137, 134, 123, 132, 109, 135, 127, 118, 126, 127, 132, 143, 130, 138, 130, 110, 137, 137, 131, 122, 135, 113, 121, 124, 130, 127, 125, 106, 101, 116, 123, 135, 133, 127, 122, 129, 126, 113, 127, 135, 131, 129, 142, 122, 125, 129, 130, 138, 137, 126, 128, 113, 136, 120, 133, 123, 121, 129, 113, 133, 130, 133, 116, 131, 136, 117, 115, 119, 120, 128, 149, 114, 131, 110, 121, 117, 110, 138, 126, 147, 123, 131, 128, 121, 120, 124, 129, 140, 138, 130, 115, 125, 117, 118, 112, 127, 127, 130, 118, 127, 107, 110, 121, 116, 151, 111, 119, 126, 109, 132, 137, 116, 129, 119, 132, 111, 110, 130, 123, 140, 128, 125, 130, 91, 125, 127, 121, 116, 116, 105, 131, 115, 121, 137, 135, 128, 114, 120, 125, 119, 138, 121, 112, 123, 116, 120, 125, 123, 116, 149, 140, 118, 118, 119, 128, 110, 147, 130, 140, 132, 112, 129, 112, 116, 117, 110, 129, 129, 116, 131, 139, 110, 132, 117, 132, 118, 139, 138, 114, 117, 122, 119, 124, 117, 133, 121, 142, 117, 123, 124, 115, 125, 111, 120, 99, 105, 126, 110, 129, 118, 131, 152, 114, 113, 138, 129, 121, 124, 124, 124, 132, 127, 143, 101, 116, 120, 133, 123, 123, 111, 120, 112, 125, 133, 130, 126, 126, 123, 123, 113, 129, 123, 141, 115, 128, 132, 121, 122, 125, 128, 133, 123, 144, 128, 106, 115, 112, 128, 127, 124, 117, 130, 134, 125, 137, 143, 142, 126, 123, 135, 136, 100, 138, 121, 151, 148, 143, 129, 108, 151, 142, 121, 129, 121, 126, 120, 140, 115, 113, 133, 114, 125, 129, 129, 136, 113, 126, 124, 105, 121, 117, 116, 126, 127, 122, 134, 128, 112, 133, 127, 131, 120, 134, 126, 153, 120, 125, 143, 127, 128, 141, 121, 104, 146, 120, 130, 121, 131, 113, 139, 119, 130, 138, 140, 123, 131, 110, 125, 132, 139, 126, 100, 129, 121, 144, 129, 139, 136, 129, 132, 124, 123, 122, 137, 114, 121, 153, 117, 121, 124, 103, 129, 106, 99, 118, 133, 114, 111, 138, 135, 115, 124, 133, 114, 125, 135, 124, 120, 126, 133, 130, 113, 126, 134, 125, 122, 135, 121, 123, 120, 136, 117, 117, 122, 135, 126, 121, 125, 119, 135, 128, 136, 118, 130, 121, 105, 152, 113, 119, 127, 130, 126, 108, 135, 138, 109, 131, 142, 118, 104, 123, 120, 140, 130, 125, 116, 125, 126, 134, 123, 144, 120, 126, 130, 128, 124, 127, 118, 131, 123, 129, 117, 129, 140, 129, 128, 137, 124, 137, 123, 102, 122, 97, 127, 119, 145, 111, 115, 128, 140, 135, 117, 122, 126, 121, 127, 121, 126, 96, 104, 103, 116, 131, 142, 125, 124, 127, 129, 112, 129, 103, 130, 128, 135, 132, 89, 135, 107, 124, 119, 141, 127, 133, 138, 121, 123, 130, 120, 139, 124, 142, 123, 121, 136, 110, 146, 118, 112, 123, 128, 134, 111, 125, 121, 114, 109, 121, 120, 129, 120, 116, 119, 127, 114, 107, 125, 133, 122, 123, 134, 109, 115, 122, 126, 130, 114, 115, 122, 135, 132, 114, 139, 127, 115, 128, 119, 112, 164, 131, 104, 127, 112, 134, 109, 114, 126, 124, 130, 134, 121, 143, 120, 121, 115, 131, 124, 121, 102, 126, 148, 129, 103, 107, 94, 124, 145, 125, 118, 113, 129, 135, 120, 125, 128, 117, 141, 125, 128, 123, 132, 135, 115, 118, 125, 116, 155, 116, 123, 117, 118, 109, 107, 130, 128, 123, 114, 122, 126, 132, 141, 128, 118, 115, 121, 132, 130, 116, 134, 126, 127, 140, 90, 152, 141, 123, 130, 133, 131, 131, 127, 128, 120, 122, 127, 147, 120, 110, 114, 158, 137, 109, 124, 140, 136, 135, 144, 123, 117, 143, 124, 139, 122, 120, 106, 120, 112, 141, 124, 136, 121, 111, 136, 136, 122, 137, 140, 115, 122, 111, 125, 121, 138, 143, 104, 122, 127, 148, 125, 116, 128, 109, 126, 119, 120, 126, 134, 123, 124, 133, 133, 128, 139, 139, 110, 109, 123, 103, 126, 100, 117, 126, 129, 124, 127, 148, 134, 152, 138, 107, 124, 117, 105, 125, 116, 130, 125, 140, 136, 114, 134, 115, 137, 130, 115, 97, 106, 104, 143, 125, 134, 112, 148, 121, 159, 130, 124, 114, 117, 121, 148, 131, 137, 126, 129, 132, 130, 144, 132, 96, 121, 120, 131, 138, 118, 128, 119, 146, 122, 119, 111, 117, 117, 113, 115, 121, 134, 121, 122, 118, 109, 122, 126, 127, 127, 113, 131, 112, 147, 102, 142, 127, 124, 128, 133, 123, 125, 132, 128, 110, 119, 124, 118, 126, 127, 122, 123, 125, 130, 126, 140, 106, 116, 119, 124, 122, 143, 138, 120, 128, 127, 116, 119, 155, 124, 137, 137, 138, 119, 129, 142, 148, 106, 121, 124, 129, 119, 136, 102, 140, 129, 127, 139, 131, 140, 137, 107, 118, 105, 135, 128, 111, 128, 132, 108, 124, 110, 126, 130, 148, 130, 144, 126, 125, 128, 128, 127, 132, 134, 120, 135, 118, 109, 118, 134, 134, 130, 128, 115, 117, 133, 123, 135, 135, 132, 129, 133, 129, 127, 132, 123, 120, 157, 138, 127, 131, 136, 137, 116, 127, 128, 114, 130, 113, 120, 124, 120, 135, 123, 128, 134, 106, 127, 139, 123, 128, 108, 126, 121, 111, 160, 141, 115, 142, 135, 129, 120, 113, 114, 128, 124, 132, 124, 106, 117, 129, 136, 132, 125, 134, 119, 113, 122, 131, 126, 128, 112, 123, 95, 126, 133, 129, 135, 125, 119, 119, 118, 128, 114, 116, 117, 120, 134, 128, 118, 119, 120, 134, 139, 135, 130, 123, 132, 108, 138, 114, 121, 135, 110, 115, 132, 118, 131, 147, 135, 139, 126, 109, 119, 122, 128, 130, 125, 127, 106, 110, 122, 140, 128, 124, 142, 124, 144, 126, 126, 132, 125, 120, 142, 127, 127, 131, 142, 124, 120, 112, 104, 111, 138, 124, 122, 132, 159, 136, 104, 123, 113, 108, 120, 131, 137, 123, 135, 129, 122, 127, 112, 145, 119, 122, 118, 131, 112, 134, 133, 139, 104, 109, 150, 123, 135, 101, 135, 120, 129, 120, 143, 131, 142, 105, 123, 133, 124, 154, 137, 141, 123, 128, 128, 122, 136, 146, 125, 134, 128, 125, 116, 121, 148, 127, 119, 126, 128, 126, 109, 134, 139, 135, 120, 120, 107, 121, 119, 114, 114, 114, 139, 122, 118, 125, 130, 110, 125, 124, 124, 133, 119, 140, 127, 128, 104, 138, 109, 123, 114, 134, 108, 119, 125, 130, 130, 115, 109, 130, 130, 125, 132, 139, 134, 122, 131, 121, 141, 109, 134, 148, 130, 137, 114, 122, 124, 131, 118, 109, 127, 127, 135, 128, 130, 140, 127, 126, 124, 136, 124, 120, 126, 128, 127, 111, 113, 125, 113, 128, 139, 129, 130, 127, 136, 117, 106, 119, 133, 115, 109, 136, 121, 135, 114, 117, 137, 123, 122, 133, 133, 113, 118, 114, 125, 125, 113, 129, 126, 124, 127, 107, 123, 126, 138, 111, 126, 138, 131, 127, 128, 110, 112, 113, 122, 105, 141, 131, 110, 125, 116, 131, 113, 145, 126, 123, 107, 130, 132, 154, 141, 126, 132, 132, 92, 119, 132, 138, 137, 126, 120, 119, 135, 132, 129, 139, 125, 142, 130, 114, 126, 126, 123, 132, 130, 119, 112, 125, 137, 118, 119, 121, 131, 129, 124, 155, 128, 123, 127, 123, 129, 127, 118, 130, 128, 140, 123, 119, 97, 125, 122, 125, 119, 127, 113, 114, 123, 134, 133, 133, 143, 113, 111, 145, 131, 110, 125, 133, 147, 110, 129, 115, 128, 127, 121, 119, 122, 128, 126, 130, 119, 131, 134, 119, 119, 128, 120, 124, 127, 100, 131, 109, 103, 120, 126, 135, 126, 121, 137, 129, 106, 118, 133, 128, 123, 134, 126, 114, 126, 129, 126, 122, 110, 120, 132, 120, 107, 129, 123, 136, 117, 122, 136, 119, 109, 121, 126, 126, 150, 137, 121, 133, 114, 140, 112, 124, 124, 140, 122, 117, 133, 135, 129, 111, 120, 135, 127, 127, 116, 112, 123, 121, 127, 120, 119, 143, 137, 119, 120, 129, 127, 124, 127, 127, 136, 122, 140, 123, 117, 131, 134, 123, 146, 123, 111, 118, 134, 133, 134, 134, 140, 150, 110, 124, 124, 122, 116, 138, 136, 116, 118, 136, 137, 123, 113, 117, 142, 125, 127, 125, 124, 116, 145, 131, 137, 127, 123, 132, 140, 139, 119, 124, 107, 129, 110, 129, 126, 121, 122, 107, 133, 126, 117, 122, 128, 131, 120, 132, 138, 144, 144, 117, 140, 119, 128, 122, 123, 130, 135, 106, 121, 144, 127, 125, 126, 129, 136, 119, 161, 129, 119, 126, 110, 114, 118, 127, 136, 128, 136, 134, 128, 126, 120, 142, 123, 117, 110, 140, 122, 141, 134, 127, 140, 133, 130, 103, 117, 131, 134, 119, 120, 126, 126, 128, 118, 113, 136, 113, 121, 133, 122, 129, 121, 122, 114, 113, 128, 117, 113, 130, 108, 125, 129, 127, 124, 125, 124, 127, 120, 131, 119, 142, 120, 127, 121, 125, 121, 136, 130, 124, 120, 120, 124, 126, 131, 136, 126, 131, 132, 116, 136, 132, 126, 122, 121, 131, 133, 103, 116, 136, 125, 120, 118, 130, 141, 130, 121, 128, 119, 125, 104, 137, 126, 127, 138, 128, 117, 116, 120, 119, 131, 122, 124, 98, 121, 136, 116, 119, 97, 138, 133, 116, 119, 111, 123, 122, 111, 131, 116, 131, 130, 122, 120, 113, 133, 129, 121, 121, 113, 123, 121, 123, 111, 121, 126, 105, 138, 131, 120, 119, 116, 138, 122, 137, 117, 134, 126, 132, 127, 119, 133, 129, 114, 122, 112, 125, 135, 136, 118, 123, 123, 129, 142, 141, 108, 117, 133, 109, 122, 118, 124, 107, 119, 138, 116, 148, 135, 125, 119, 132, 118, 126, 125, 140, 125, 138, 118, 132, 125, 128, 130, 132, 116, 141, 133, 126, 123, 133, 108, 109, 146, 127, 128, 135, 130, 103, 131, 118, 115, 134, 131, 112, 139, 115, 95, 134, 139, 125, 120, 134, 121, 135, 144, 153, 128, 116, 126, 128, 111, 106, 131, 112, 130, 134, 134, 124, 122, 111, 145, 141, 115, 128, 130, 130, 123, 140, 119, 127, 135, 140, 133, 130, 127, 130, 123, 118, 122, 118, 124, 125, 123, 129, 126, 112, 128, 128, 139, 139, 114, 109, 132, 136, 128, 129, 105, 141, 115, 113, 143, 115, 124, 123, 120, 148, 113, 115, 129, 127, 131, 133, 134, 116, 105, 130, 132, 129, 133, 131, 123, 128, 128, 126, 119, 132, 137, 142, 128, 120, 122, 126, 128, 131, 138, 138, 122, 116, 135, 116, 118, 115, 111, 137, 120, 119, 118, 129, 145, 138, 119, 132, 146, 121, 135, 110, 133, 127, 124, 113, 135, 103, 121, 118, 110, 127, 125, 120, 120, 136, 119, 127, 127, 147, 118, 126, 129, 122, 124, 119, 113, 141, 140, 144, 120, 123, 125, 141, 121, 132, 119, 129, 113, 123, 122, 118, 130, 127, 113, 139, 122, 133, 139, 122, 120, 134, 120, 129, 138, 125, 104, 128, 127, 137, 125, 116, 127, 141, 114, 125, 118, 123, 117, 113, 99, 143, 138, 127, 113, 129, 126, 125, 132, 124, 111, 130, 121, 136, 125, 125, 119, 125, 122, 120, 129, 132, 131, 114, 124, 120, 111, 123, 122, 115, 129, 133, 122, 146, 122, 117, 134, 140, 109, 134, 118, 123, 131, 106, 113, 127, 121, 123, 118, 138, 123, 150, 118, 142, 126, 137, 121, 122, 117, 142, 117, 135, 128, 111, 123, 108, 125, 125, 133, 115, 119, 118, 130, 134, 114, 125, 113, 129, 127, 123, 134, 124, 116, 129, 108, 123, 119, 117, 133, 122, 123, 129, 126, 98, 135, 129, 132, 115, 125, 126, 125, 136, 130, 131, 115, 132, 130, 130, 140, 113, 130, 130, 104, 136, 133, 128, 123, 95, 115, 135, 128, 142, 119, 120, 122, 127, 136, 120, 115, 123, 116, 118, 122, 106, 135, 135, 125, 125, 113, 130, 137, 119, 133, 121, 127, 117, 127, 124, 141, 140, 129, 123, 132, 117, 126, 112, 130, 108, 129, 127, 117, 114, 142, 132, 119, 137, 110, 131, 166, 137, 137, 123, 124, 126, 121, 106, 114, 119, 122, 118, 126, 119, 127, 126, 132, 122, 132, 100, 116, 126, 133, 123, 134, 132, 128, 134, 132, 119, 121, 120, 154, 124, 123, 128, 128, 144, 118, 129, 117, 138, 112, 136, 117, 118, 125, 133, 130, 127, 104, 117, 115, 140, 122, 129, 126, 141, 118, 143, 121, 141, 117, 130, 134, 133, 136, 130, 136, 109, 122, 121, 127, 127, 134, 128, 116, 129, 128, 127, 123, 134, 135, 125, 113, 124, 125, 122, 133, 142, 122, 140, 130, 137, 121, 125, 124, 103, 130, 123, 114, 126, 138, 124, 121, 124, 128, 110, 125, 137, 156, 123, 130, 139, 122, 133, 127, 122, 111, 119, 145, 137, 109, 147, 129, 122, 112, 115, 128, 111, 115, 121, 119, 114, 134, 127, 129, 121, 116, 129, 124, 124, 102, 116, 137, 139, 109, 120, 134, 128, 122, 129, 126, 122, 120, 132, 127, 142, 129, 128, 112, 124, 135, 133, 142, 119, 120, 121, 132, 117, 136, 115, 112, 129, 110, 138, 123, 134, 119, 158, 132, 137, 113, 121, 113, 128, 105, 128, 127, 126, 119, 120, 132, 122, 124, 105, 122, 126, 96, 92, 135, 134, 133, 131, 131, 102, 109, 139, 123, 125, 144, 131, 133, 122, 114, 105, 124, 109, 129, 113, 131, 130, 131, 121, 108, 125, 134, 123, 139, 131, 120, 145, 147, 123, 116, 122, 119, 119, 137, 131, 128, 150, 121, 144, 111, 127, 124, 107, 129, 112, 127, 132, 124, 132, 156, 125, 134, 118, 127, 133, 122, 107, 118, 138, 120, 121, 139, 138, 128, 112, 137, 129, 123, 117, 140, 127, 127, 120, 110, 120, 134, 123, 132, 105, 115, 108, 116, 130, 132, 124, 109, 125, 110, 133, 129, 139, 111, 124, 143, 123, 118, 126, 131, 135, 107, 142, 132, 143, 131, 126, 119, 131, 128, 133, 122, 116, 134, 136, 140, 136, 130, 109, 149, 115, 135, 121, 119, 123, 131, 108, 134, 153, 126, 112, 137, 125, 122, 106, 121, 128, 116, 134, 116, 140, 139, 133, 124, 148, 126, 101, 124, 128, 140, 106, 114, 135, 129, 129, 109, 110, 117, 117, 132, 138, 128, 115, 113, 113, 138, 113, 118, 119, 141, 156, 121, 114, 128, 133, 134, 128, 133, 113, 123, 126, 91, 129, 127, 141, 131, 129, 123, 124, 123, 137, 114, 144, 132, 130, 121, 130, 128, 126, 128, 126, 126, 132, 139, 114, 112, 115, 111, 122, 151, 99, 120, 119, 126, 105, 126, 128, 129, 124, 119, 135, 108, 126, 125, 99, 132, 128, 139, 110, 133, 127, 112, 133, 116, 119, 87, 127, 122, 122, 121, 126, 124, 123, 133, 134, 145, 121, 128, 134, 134, 121, 111, 134, 128, 112, 118, 143, 139, 119, 124, 131, 116, 119, 138, 136, 139, 127, 113, 114, 139, 121, 122, 108, 140, 135, 110, 113, 107, 126, 113, 141, 122, 127, 132, 124, 149, 127, 121, 128, 126, 112, 118, 120, 120, 126, 116, 146, 129, 143, 142, 126, 129, 112, 118, 129, 129, 143, 116, 112, 121, 136, 115, 109, 124, 109, 115, 128, 125, 108, 118, 126, 126, 112, 143, 109, 117, 139, 117, 110, 129, 143, 117, 124, 126, 133, 140, 103, 129, 97, 120, 135, 125, 177, 126, 109, 105, 109, 122, 122, 125, 128, 128, 130, 132, 122, 136, 123, 134, 102, 130, 123, 111, 127, 144, 110, 132, 135, 130, 136, 129, 114, 125, 123, 122, 147, 136, 119, 122, 91, 120, 125, 130, 120, 137, 160, 132, 127, 132, 141, 118, 124, 138, 100, 132, 131, 116, 127, 112, 120, 126, 99, 132, 129, 128, 116, 128, 141, 128, 119, 140, 118, 147, 125, 124, 143, 110, 121, 130, 147, 116, 107, 130, 134, 123, 122, 110, 131, 113, 142, 132, 126, 124, 152, 122, 123, 133, 126, 127, 130, 139, 125, 125, 122, 118, 142, 146, 120, 117, 137, 131, 132, 113, 128, 133, 113, 134, 122, 113, 138, 114, 138, 129, 118, 129, 132, 129, 114, 135, 134, 107, 120, 119, 104, 122, 121, 117, 122, 134, 117, 124, 121, 127, 128, 100, 128, 139, 120, 123, 117, 135, 143, 103, 113, 121, 133, 136, 128, 124, 124, 127, 132, 121, 124, 134, 114, 116, 137, 145, 121, 123, 118, 135, 119, 124, 133, 128, 113, 128, 135, 121, 121, 143, 134, 126, 106, 118, 119, 143, 107, 152, 139, 138, 133, 117, 117, 121, 125, 113, 160, 137, 128, 121, 111, 124, 138, 124, 122, 134, 128, 134, 138, 139, 105, 120, 114, 117, 121, 121, 140, 112, 107, 116, 150, 117, 125, 133, 136, 124, 138, 145, 106, 136, 125, 135, 124, 150, 121, 138, 126, 113, 132, 122, 121, 127, 104, 133, 155, 120, 117, 129, 124, 120, 133, 119, 121, 137, 127, 128, 132, 133, 131, 133, 141, 131, 130, 115, 135, 114, 117, 127, 117, 122, 114, 118, 124, 132, 116, 135, 139, 102, 127, 129, 118, 127, 137, 143, 119, 134, 122, 108, 134, 136, 115, 124, 124, 139, 132, 115, 125, 137, 139, 136, 128, 140, 118, 131, 130, 120, 102, 119, 97, 128, 109, 133, 131, 145, 131, 121, 113, 123, 124, 108, 124, 131, 125, 141, 128, 127, 132, 122, 128, 139, 129, 135, 122, 115, 114, 131, 141, 131, 125, 129, 123, 127, 126, 124, 129, 122, 143, 130, 114, 117, 99, 115, 116, 126, 104, 121, 131, 118, 143, 125, 129, 121, 134, 122, 123, 129, 116, 129, 121, 115, 134, 122, 119, 131, 136, 124, 128, 123, 133, 127, 121, 125, 128, 140, 132, 106, 128, 135, 115, 125, 135, 127, 116, 121, 110, 131, 117, 120, 124, 124, 141, 112, 121, 118, 139, 118, 136, 106, 131, 126, 119, 125, 116, 120, 133, 119, 123, 124, 120, 121, 126, 132, 107, 128, 113, 119, 137, 127, 154, 117, 103, 121, 120, 135, 132, 126, 126, 116, 131, 133, 125, 135, 130, 122, 142, 130, 138, 146, 133, 113, 124, 127, 132, 133, 130, 117, 115, 94, 109, 111, 119, 112, 134, 125, 126, 125, 142, 126, 116, 133, 94, 138, 141, 153, 134, 124, 132, 122, 119, 127, 128, 128, 141, 110, 122, 135, 131, 129, 112, 115, 133, 110, 122, 127, 130, 124, 124, 126, 115, 116, 134, 122, 137, 121, 114, 132, 117, 117, 131, 115, 143, 122, 128, 130, 110, 124, 122, 138, 135, 114, 125, 138, 119, 134, 106, 129, 125, 114, 140, 122, 123, 130, 124, 133, 138, 127, 135, 133, 133, 125, 115, 131, 125, 120, 125, 126, 122, 110, 118, 124, 133, 110, 125, 121, 124, 121, 123, 116, 134, 126, 124, 121, 125, 110, 125, 123, 137, 128, 121, 120, 116, 127, 132, 124, 109, 112, 126, 138, 130, 104, 120, 133, 132, 126, 122, 125, 133, 135, 115, 119, 119, 108, 132, 113, 121, 125, 116, 136, 137, 123, 116, 137, 133, 116, 107, 100, 133, 117, 111, 135, 120, 152, 129, 132, 124, 113, 141, 120, 127, 134, 117, 127, 137, 144, 134, 105, 131, 117, 137, 140, 116, 125, 140, 125, 118, 128, 123, 127, 129, 128, 100, 124, 133, 122, 138, 130, 125, 129, 135, 111, 122, 117, 116, 117, 117, 117, 127, 149, 134, 129, 131, 131, 126, 119, 131, 115, 128, 117, 114, 112, 117, 131, 133, 127, 116, 156, 119, 109, 125, 135, 145, 130, 126, 126, 131, 143, 136, 133, 132, 124, 105, 121, 145, 132, 123, 119, 132, 145, 123, 132, 130, 119, 122, 124, 130, 130, 121, 114, 137, 143, 129, 130, 112, 137, 123, 127, 119, 127, 124, 140, 133, 113, 122, 119, 136, 115, 122, 114, 134, 121, 122, 127, 145, 118, 125, 140, 123, 134, 141, 130, 119, 132, 135, 115, 129, 117, 134, 139, 127, 130, 128, 138, 142, 134, 119, 138, 138, 133, 123, 122, 122, 129, 113, 118, 139, 110, 133, 129, 131, 121, 114, 94, 128, 145, 132, 120, 137, 114, 128, 131, 127, 136, 136, 123, 139, 125, 122, 115, 129, 146, 125, 125, 111, 129, 125, 115, 128, 120, 116, 124, 98, 126, 133, 147, 134, 110, 133, 112, 144, 123, 129, 142, 130, 115, 123, 113, 117, 120, 117, 124, 135, 129, 130, 131, 128, 115, 127, 111, 131, 127, 118, 131, 127, 135, 133, 136, 119, 111, 129, 115, 147, 134, 122, 135, 125, 133, 126, 131, 123, 130, 134, 136, 140, 119, 130, 131, 116, 125, 134, 130, 136, 133, 127, 133, 123, 114, 138, 134, 128, 106, 136, 123, 123, 126, 131, 122, 119, 117, 122, 119, 150, 116, 134, 122, 116, 139, 110, 115, 132, 121, 112, 107, 131, 125, 124, 119, 141, 120, 130, 123, 133, 126, 128, 118, 126, 115, 132, 135, 125, 127, 116, 132, 118, 122, 102, 128, 117, 105, 124, 118, 137, 109, 126, 145, 92, 115, 131, 144, 123, 132, 124, 141, 132, 129, 132, 119, 131, 141, 112, 137, 119, 141, 130, 125, 97, 146, 136, 88, 124, 120, 135, 141, 108, 127, 119, 122, 109, 123, 123, 126, 125, 144, 127, 109, 121, 135, 109, 134, 126, 115, 131, 129, 126, 113, 115, 128, 119, 111, 106, 128, 130, 116, 121, 123, 115, 134, 127, 121, 122, 129, 129, 116, 106, 118, 128, 142, 110, 139, 122, 110, 116, 127, 121, 120, 114, 106, 118, 108, 132, 136, 112, 116, 107, 123, 138, 135, 120, 126, 116, 132, 118, 129, 136, 125, 116, 128, 123, 122, 123, 125, 123, 133, 142, 129, 131, 126, 129, 130, 129, 121, 124, 128, 126, 135, 130, 138, 126, 103, 124, 121, 120, 130, 115, 138, 137, 128, 109, 116, 141, 121, 134, 131, 129, 110, 126, 157, 148, 125, 124, 128, 125, 98, 124, 117, 109, 127, 130, 128, 122, 102, 126, 121, 132, 116, 130, 125, 126, 112, 134, 119, 121, 140, 125, 125, 138, 138, 140, 126, 97, 126, 136, 123, 113, 119, 130, 126, 125, 118, 130, 126, 120, 143, 120, 129, 124, 120, 124, 130, 134, 129, 127, 129, 128, 100, 127, 144, 131, 112, 117, 121, 118, 123, 102, 130, 111, 118, 116, 123, 131, 117, 127, 125, 124, 138, 111, 122, 133, 123, 122, 140, 104, 123, 134, 129, 125, 100, 119, 110, 136, 148, 134, 123, 121, 109, 115, 125, 133, 127, 108, 121, 135, 137, 130, 136, 134, 116, 114, 136, 120, 141, 128, 133, 143, 111, 127, 133, 106, 135, 136, 116, 123, 120, 139, 120, 122, 159, 124, 118, 123, 109, 133, 137, 119, 136, 113, 129, 119, 126, 142, 132, 113, 132, 119, 137, 137, 107, 127, 129, 114, 117, 125, 135, 126, 127, 123, 103, 137, 127, 110, 128, 123, 138, 127, 117, 139, 137, 121, 130, 109, 118, 116, 149, 128, 121, 136, 119, 127, 129, 126, 128, 104, 126, 127, 130, 120, 129, 116, 120, 135, 124, 125, 141, 124, 117, 128, 131, 135, 125, 124, 130, 123, 130, 137, 125, 126, 109, 120, 145, 135, 132, 109, 120, 119, 115, 142, 133, 110, 136, 113, 138, 115, 107, 125, 124, 116, 132, 123, 112, 128, 143, 142, 128, 126, 144, 128, 138, 115, 131, 94, 133, 122, 119, 133, 139, 110, 144, 116, 150, 118, 131, 125, 101, 128, 129, 145, 117, 121, 127, 130, 129, 103, 112, 130, 119, 123, 123, 135, 110, 114, 120, 115, 109, 117, 122, 125, 131, 126, 125, 140, 144, 137, 129, 143, 127, 125, 128, 150, 134, 123, 122, 110, 120, 136, 124, 116, 136, 134, 125, 132, 123, 123, 131, 136, 107, 118, 128, 105, 110, 131, 146, 147, 120, 133, 113, 139, 127, 116, 124, 126, 124, 138, 143, 132, 115, 116, 123, 135, 105, 111, 110, 120, 121, 133, 123, 129, 133, 124, 117, 135, 141, 147, 139, 130, 128, 117, 127, 126, 113, 132, 119, 119, 131, 130, 134, 131, 117, 115, 143, 117, 119, 125, 123, 133, 133, 132, 128, 123, 113, 126, 131, 150, 117, 122, 121, 114, 120, 127, 138, 131, 138, 120, 129, 110, 124, 111, 123, 105, 104, 106, 124, 127, 131, 127, 132, 132, 136, 135, 128, 114, 116, 127, 138, 110, 126, 125, 134, 122, 150, 119, 137, 133, 165, 129, 106, 115, 119, 109, 135, 123, 128, 145, 120, 107, 118, 125, 133, 128, 133, 126, 133, 143, 125, 132, 128, 106, 113, 102, 114, 119, 141, 127, 131, 118, 137, 121, 139, 136, 116, 149, 125, 131, 126, 123, 126, 127, 121, 127, 115, 107, 125, 115, 136, 146, 116, 142, 109, 141, 122, 108, 140, 131, 134, 124, 111, 118, 119, 145, 130, 126, 126, 134, 114, 131, 119, 118, 112, 138, 119, 123, 130, 137, 126, 122, 126, 102, 124, 115, 108, 111, 119, 132, 138, 136, 127, 123, 138, 121, 126, 128, 127, 120, 115, 139, 125, 123, 111, 125, 125, 124, 120, 108, 129, 130, 126, 137, 126, 120, 126, 131, 115, 110, 115, 129, 126, 121, 147, 115, 119, 115, 134, 129, 125, 127, 109, 149, 136, 129, 117, 130, 108, 146, 136, 120, 120, 115, 131, 124, 112, 137, 130, 126, 133, 135, 107, 139, 132, 131, 122, 119, 137, 110, 114, 127, 126, 131, 119, 120, 139, 134, 116, 136, 119, 121, 123, 114, 123, 138, 124, 117, 97, 127, 116, 127, 114, 128, 108, 142, 119, 127, 140, 127, 131, 124, 126, 123, 97, 117, 119, 112, 121, 130, 132, 124, 109, 130, 118, 128, 115, 117, 120, 127, 123, 124, 120, 125, 122, 122, 136, 137, 120, 122, 128, 117, 125, 110, 128, 121, 120, 114, 129, 137, 117, 115, 138, 131, 119, 127, 128, 146, 120, 128, 120, 133, 121, 127, 135, 127, 139, 121, 120, 107, 125, 111, 123, 122, 129, 124, 146, 128, 132, 104, 126, 127, 123, 155, 120, 122, 110, 118, 125, 130, 121, 121, 130, 131, 134, 111, 129, 141, 124, 132, 128, 125, 118, 123, 126, 111, 140, 118, 127, 147, 121, 129, 135, 109, 109, 147, 123, 116, 122, 122, 135, 116, 119, 134, 135, 114, 127, 116, 124, 124, 139, 133, 108, 107, 121, 103, 130, 112, 120, 131, 149, 129, 130, 130, 121, 122, 110, 128, 124, 136, 118, 122, 118, 124, 135, 131, 118, 130, 125, 104, 128, 123, 129, 110, 118, 116, 128, 119, 125, 130, 124, 107, 119, 128, 125, 129, 131, 119, 133, 131, 120, 137, 132, 128, 131, 117, 128, 130, 130, 109, 136, 116, 143, 113, 140, 106, 131, 121, 127, 121, 126, 127, 127, 120, 134, 122, 131, 114, 138, 141, 113, 131, 136, 131, 118, 118, 111, 121, 117, 125, 123, 130, 134, 133, 114, 132, 138, 116, 127, 141, 117, 132, 133, 125, 128, 143, 131, 129, 116, 117, 135, 137, 127, 134, 129, 129, 116, 132, 126, 123, 129, 111, 105, 121, 135, 131, 125, 130, 137, 114, 132, 120, 124, 116, 110, 116, 121, 131, 124, 121, 102, 125, 135, 142, 124, 137, 133, 126, 135, 138, 105, 128, 139, 95, 134, 115, 136, 129, 129, 119, 114, 128, 131, 138, 139, 109, 127, 129, 128, 116, 142, 145, 133, 115, 121, 133, 131, 121, 118, 127, 106, 139, 116, 130, 143, 128, 111, 118, 116, 119, 135, 129, 118, 127, 121, 139, 126, 132, 133, 134, 137, 123, 132, 119, 113, 129, 115, 121, 125, 112, 122, 127, 129, 130, 128, 142, 122, 118, 122, 131, 123, 131, 128, 125, 140, 134, 124, 128, 127, 136, 108, 120, 141, 128, 105, 128, 132, 113, 127, 132, 135, 135, 121, 103, 145, 112, 120, 144, 120, 113, 139, 123, 120, 116, 132, 121, 128, 120, 129, 122, 114, 143, 132, 133, 111, 138, 129, 135, 122, 128, 130, 121, 119, 108, 126, 134, 119, 115, 133, 127, 118, 134, 136, 131, 133, 116, 125, 116, 131, 121, 109, 140, 120, 129, 134, 137, 141, 142, 127, 116, 141, 117, 124, 144, 129, 105, 138, 140, 141, 138, 133, 116, 127, 133, 127, 110, 125, 142, 129, 123, 132, 125, 113, 119, 105, 129, 148, 136, 110, 136, 121, 117, 124, 130, 113, 137, 134, 126, 125, 132, 120, 131, 125, 145, 122, 136, 132, 131, 117, 120, 134, 139, 122, 125, 121, 114, 129, 125, 121, 126, 125, 130, 136, 134, 114, 137, 134, 115, 134, 101, 120, 128, 118, 120, 129, 114, 116, 114, 124, 106, 120, 122, 125, 125, 135, 144, 123, 98, 134, 134, 136, 129, 114, 124, 118, 122, 116, 125, 122, 125, 136, 141, 91, 113, 117, 123, 132, 111, 129, 121, 133, 115, 131, 111, 128, 123, 130, 131, 96, 127, 122, 127, 120, 128, 136, 110, 119, 136, 127, 117, 119, 135, 105, 122, 116, 111, 143, 125, 123, 131, 126, 118, 145, 125, 133, 116, 109, 134, 108, 123, 148, 139, 132, 124, 131, 120, 130, 124, 122, 112, 139, 132, 138, 127, 122, 115, 121, 128, 118, 121, 134, 120, 161, 132, 130, 128, 135, 139, 132, 141, 138, 124, 125, 119, 116, 130, 132, 128, 130, 124, 135, 151, 123, 124, 138, 147, 126, 132, 131, 127, 131, 138, 116, 106, 139, 132, 113, 125, 132, 133, 113, 131, 119, 141, 119, 112, 125, 126, 116, 113, 128, 131, 124, 135, 128, 137, 120, 125, 135, 119, 119, 119, 122, 131, 143, 135, 121, 122, 126, 120, 121, 136, 124, 114, 142, 123, 114, 125, 90, 118, 115, 140, 119, 128, 137, 128, 109, 121, 114, 139, 137, 134, 115, 129, 107, 153, 126, 130, 116, 119, 128, 134, 140, 139, 120, 129, 118, 115, 146, 132, 125, 119, 125, 134, 127, 140, 139, 142, 116, 129, 126, 120, 131, 145, 127, 117, 121, 131, 121, 133, 140, 137, 122, 123, 109, 133, 132, 108, 119, 133, 110, 122, 114, 115, 106, 145, 146, 124, 127, 128, 130, 138, 134, 126, 108, 135, 137, 141, 118, 124, 137, 129, 128, 108, 125, 119, 129, 134, 125, 123, 130, 135, 113, 104, 133, 110, 126, 125, 144, 117, 115, 121, 134, 125, 114, 119, 122, 148, 140, 115, 131, 147, 120, 120, 118, 130, 120, 118, 124, 125, 121, 113, 122, 127, 126, 122, 111, 126, 134, 115, 139, 132, 137, 143, 123, 141, 128, 121, 125, 123, 127, 124, 135, 128, 119, 125, 117, 122, 135, 104, 134, 158, 122, 135, 131, 140, 133, 119, 133, 125, 96, 136, 125, 97, 132, 136, 119, 116, 134, 133, 127, 117, 114, 116, 114, 126, 122, 113, 143, 117, 134, 129, 111, 133, 117, 129, 135, 129, 125, 130, 129, 108, 125, 110, 118, 132, 124, 129, 114, 110, 126, 123, 136, 141, 129, 107, 132, 143, 133, 127, 140, 126, 134, 132, 135, 132, 131, 138, 132, 127, 111, 128, 108, 116, 133, 109, 127, 126, 117, 116, 140, 108, 126, 131, 123, 123, 125, 137, 106, 124, 118, 134, 122, 131, 124, 129, 108, 132, 120, 144, 111, 136, 132, 130, 144, 126, 133, 135, 103, 125, 143, 120, 110, 132, 134, 127, 127, 123, 134, 122, 146, 115, 111, 121, 134, 123, 139, 107, 112, 109, 121, 125, 134, 109, 103, 122, 109, 122, 124, 130, 136, 119, 126, 138, 133, 130, 114, 129, 125, 117, 130, 124, 134, 135, 106, 127, 135, 128, 117, 111, 120, 114, 113, 131, 113, 110, 119, 127, 123, 110, 129, 137, 109, 140, 123, 131, 135, 117, 101, 136, 121, 125, 131, 115, 118, 126, 136, 129, 124, 133, 122, 135, 162, 139, 137, 126, 122, 132, 129, 137, 135, 122, 111, 108, 116, 107, 127, 136, 113, 120, 118, 130, 121, 140, 125, 147, 129, 118, 133, 128, 119, 127, 125, 120, 109, 111, 122, 122, 118, 109, 114, 131, 138, 122, 107, 92, 140, 118, 109, 117, 118, 123, 116, 102, 126, 139, 121, 107, 119, 124, 124, 126, 125, 125, 135, 110, 140, 137, 141, 97, 146, 120, 137, 124, 121, 141, 115, 132, 116, 109, 135, 134, 101, 117, 117, 138, 124, 148, 122, 143, 118, 119, 115, 132, 131, 145, 134, 124, 125, 129, 127, 122, 129, 127, 122, 129, 100, 113, 114, 132, 124, 124, 127, 129, 127, 114, 125, 126, 106, 110, 132, 130, 113, 102, 120, 129, 125, 121, 127, 124, 129, 127, 121, 119, 132, 121, 151, 111, 137, 123, 112, 134, 97, 121, 129, 119, 115, 116, 125, 130, 129, 121, 122, 130, 99, 157, 137, 138, 129, 124, 130, 121, 130, 120, 128, 133, 116, 105, 127, 127, 122, 131, 121, 116, 128, 126, 110, 120, 102, 103, 134, 129, 116, 98, 125, 134, 128, 120, 139, 124, 130, 124, 115, 118, 130, 128, 124, 114, 146, 118, 120, 125, 124, 136, 123, 119, 130, 98, 116, 115, 120, 143, 134, 131, 118, 141, 143, 97, 129, 134, 129, 134, 116, 119, 134, 143, 134, 125, 131, 118, 132, 124, 134, 132, 128, 133, 150, 128, 127, 102, 132, 125, 145, 125, 133, 133, 136, 132, 136, 122, 134, 139, 99, 119, 136, 110, 119, 135, 130, 134, 135, 125, 155, 105, 140, 143, 122, 85, 125, 132, 123, 125, 116, 122, 126, 115, 134, 110, 118, 125, 114, 142, 134, 140, 130, 132, 120, 121, 132, 124, 127, 141, 128, 138, 134, 117, 109, 140, 137, 122, 114, 123, 121, 127, 137, 112, 115, 114, 132, 137, 142, 117, 152, 100, 105, 132, 119, 128, 129, 122, 123, 133, 129, 122, 125, 122, 123, 134, 139, 127, 127, 135, 134, 148, 129, 114, 127, 132, 115, 113, 117, 155, 124, 125, 104, 106, 127, 129, 129, 96, 133, 126, 125, 122, 119, 139, 137, 125, 129, 129, 126, 139, 118, 118, 125, 122, 126, 115, 127, 123, 114, 117, 125, 110, 127, 112, 113, 124, 125, 127, 133, 123, 114, 119, 114, 121, 124, 111, 125, 119, 115, 128, 130, 126, 124, 137, 111, 147, 116, 125, 111, 156, 139, 130, 129, 121, 124, 122, 112, 112, 116, 125, 116, 125, 130, 136, 124, 129, 125, 128, 118, 127, 114, 146, 111, 128, 113, 139, 148, 121, 131, 119, 135, 130, 116, 131, 126, 134, 126, 126, 127, 122, 139, 139, 114, 134, 145, 122, 129, 107, 113, 122, 113, 122, 103, 110, 133, 125, 127, 136, 131, 127, 128, 124, 125, 98, 114, 136, 129, 124, 152, 140, 114, 118, 132, 123, 123, 122, 124, 152, 125, 129, 133, 122, 114, 107, 126, 122, 121, 135, 125, 113, 113, 142, 158, 109, 126, 148, 116, 140, 112, 112, 104, 122, 125, 133, 126, 113, 114, 120, 110, 130, 122, 117, 127, 126, 131, 114, 130, 117, 132, 120, 115, 123, 150, 127, 117, 143, 106, 111, 114, 142, 132, 149, 142, 129, 138, 136, 133, 133, 139, 116, 142, 120, 118, 104, 132, 118, 134, 128, 146, 128, 128, 95, 103, 116, 111, 129, 133, 132, 141, 126, 134, 117, 129, 119, 148, 148, 128, 114, 138, 100, 120, 107, 135, 129, 138, 121, 110, 123, 117, 128, 96, 126, 120, 126, 121, 113, 121, 140, 132, 136, 129, 138, 107, 105, 145, 122, 120, 127, 101, 124, 102, 126, 126, 122, 127, 125, 119, 111, 141, 142, 106, 141, 128, 122, 106, 123, 146, 125, 120, 126, 118, 123, 125, 115, 128, 110, 122, 116, 124, 128, 115, 135, 139, 155, 117, 113, 134, 132, 124, 127, 127, 119, 122, 142, 134, 140, 139, 130, 121, 122, 124, 135, 130, 124, 133, 119, 130, 142, 122, 108, 145, 122, 122, 120, 134, 135, 121, 137, 139, 139, 120, 119, 131, 138, 117, 142, 141, 137, 112, 124, 128, 115, 109, 124, 122, 129, 126, 134, 128, 123, 137, 111, 116, 120, 122, 131, 111, 136, 149, 144, 141, 121, 127, 132, 129, 183, 106, 124, 119, 122, 133, 132, 140, 125, 142, 125, 123, 115, 119, 149, 113, 130, 135, 122, 130, 114, 109, 112, 128, 129, 137, 125, 125, 131, 134, 123, 120, 135, 92, 141, 127, 118, 100, 111, 131, 124, 135, 135, 117, 135, 116, 122, 113, 138, 119, 132, 120, 111, 124, 125, 127, 139, 148, 127, 123, 110, 119, 128, 131, 136, 141, 110, 133, 113, 149, 122, 133, 128, 119, 165, 137, 107, 134, 127, 113, 126, 136, 138, 123, 133, 130, 135, 122, 123, 131, 111, 133, 113, 114, 129, 126, 134, 119, 160, 127, 108, 137, 107, 115, 127, 131, 135, 122, 110, 124, 126, 131, 104, 114, 115, 135, 124, 132, 111, 127, 123, 115, 124, 108, 124, 133, 158, 138, 134, 136, 132, 117, 125, 140, 106, 141, 133, 103, 130, 116, 114, 121, 137, 95, 133, 116, 157, 116, 118, 131, 113, 110, 120, 143, 118, 134, 139, 128, 127, 132, 137, 154, 112, 119, 118, 141, 95, 129, 118, 137, 123, 133, 123, 151, 136, 141, 127, 130, 132, 161, 116, 136, 108, 124, 136, 110, 125, 127, 93, 120, 141, 143, 118, 118, 117, 100, 144, 128, 141, 118, 121, 97, 125, 136, 92, 122, 110, 103, 130, 139, 135, 131, 148, 136, 117, 124, 109, 124, 133, 135, 131, 126, 149, 140, 131, 122, 119, 134, 127, 110, 134, 121, 137, 131, 131, 114, 133, 131, 146, 121, 112, 118, 137, 100, 143, 137, 131, 124, 130, 126, 134, 124, 124, 123, 113, 138, 123, 142, 116, 120, 127, 121, 129, 119, 139, 118, 147, 121, 117, 126, 133, 122, 130, 137, 113, 111, 138, 126, 125, 131, 164, 121, 123, 134, 127, 110, 131, 147, 133, 118, 124, 122, 116, 112, 112, 111, 97, 129, 118, 156, 145, 109, 133, 122, 141, 131, 121, 120, 134, 146, 125, 101, 133, 112, 134, 151, 121, 125, 120, 105, 126, 145, 122, 116, 115, 137, 115, 122, 120, 124, 99, 130, 115, 122, 157, 118, 130, 124, 126, 122, 98, 123, 117, 110, 112, 108, 118, 125, 116, 122, 132, 126, 128, 131, 120, 141, 134, 141, 116, 123, 129, 136, 117, 117, 138, 133, 133, 127, 122, 138, 128, 121, 133, 101, 100, 126, 122, 125, 126, 139, 114, 131, 133, 134, 132, 120, 135, 121, 119, 141, 121, 111, 128, 128, 134, 123, 142, 139, 137, 126, 135, 98, 136, 124, 129, 131, 122, 130, 119, 122, 116, 121, 114, 130, 120, 118, 135, 131, 131, 124, 132, 145, 119, 121, 124, 139, 120, 113, 120, 118, 126, 124, 116, 118, 124, 134, 137, 116, 128, 132, 120, 121, 110, 126, 106, 125, 119, 126, 131, 113, 129, 119, 132, 143, 123, 119, 142, 134, 125, 120, 125, 125, 117, 145, 132, 138, 117, 109, 121, 132, 112, 118, 105, 133, 124, 143, 107, 115, 114, 106, 123, 143, 119, 107, 134, 119, 110, 139, 133, 126, 115, 123, 113, 117, 136, 119, 126, 143, 128, 134, 130, 104, 125, 124, 132, 126, 130, 131, 127, 119, 121, 143, 119, 122, 124, 134, 114, 121, 136, 121, 125, 127, 126, 118, 139, 121, 136, 128, 135, 132, 120, 126, 124, 125, 124, 124, 133, 136, 125, 129, 100, 128, 112, 125, 135, 121, 125, 133, 136, 132, 108, 133, 127, 125, 143, 119, 121, 121, 120, 105, 117, 121, 109, 116, 124, 128, 119, 120, 125, 118, 126, 124, 111, 116, 127, 116, 134, 115, 122, 141, 126, 109, 120, 123, 111, 118, 145, 115, 135, 123, 131, 121, 140, 124, 114, 123, 119, 115, 138, 142, 137, 134, 117, 117, 131, 134, 129, 114, 142, 127, 131, 117, 151, 114, 129, 140, 125, 128, 104, 120, 127, 127, 143, 133, 147, 117, 127, 125, 114, 125, 125, 120, 127, 119, 131, 115, 128, 135, 119, 119, 122, 115, 130, 111, 112, 125, 122, 117, 131, 131, 124, 114, 122, 120, 122, 104, 137, 128, 130, 123, 121, 126, 120, 127, 125, 114, 126, 134, 150, 140, 139, 121, 111, 124, 127, 139, 121, 129, 124, 127, 126, 149, 134, 137, 141, 126, 128, 127, 118, 128, 126, 105, 117, 128, 119, 124, 117, 111, 117, 120, 117, 123, 122, 121, 127, 126, 117, 136, 121, 121, 133, 118, 125, 120, 109, 129, 132, 133, 141, 135, 121, 125, 130, 130, 108, 116, 134, 126, 140, 117, 122, 112, 113, 137, 132, 116, 123, 120, 128, 122, 126, 131, 141, 116, 109, 120, 121, 143, 117, 121, 132, 137, 123, 134, 112, 125, 147, 98, 139, 118, 124, 123, 135, 122, 132, 117, 120, 122, 110, 108, 127, 123, 116, 128, 120, 125, 136, 136, 110, 118, 133, 126, 128, 139, 111, 116, 101, 126, 119, 109, 137, 140, 129, 106, 138, 113, 118, 121, 127, 136, 125, 126, 120, 124, 123, 142, 135, 151, 116, 121, 122, 114, 110, 115, 137, 117, 133, 125, 118, 116, 137, 118, 116, 119, 139, 109, 133, 125, 105, 121, 118, 125, 102, 105, 130, 143, 124, 125, 140, 131, 125, 137, 131, 107, 113, 130, 112, 154, 113, 124, 134, 127, 140, 122, 124, 130, 136, 130, 144, 130, 127, 109, 133, 134, 111, 126, 121, 128, 138, 134, 143, 126, 130, 120, 114, 129, 145, 117, 131, 108, 111, 132, 130, 120, 118, 128, 130, 119, 135, 128, 124, 133, 121, 127, 109, 125, 118, 131, 134, 139, 120, 135, 129, 126, 103, 130, 145, 110, 116, 129, 116, 105, 135, 117, 124, 137, 148, 117, 132, 122, 136, 131, 114, 111, 126, 126, 145, 137, 122, 135, 135, 135, 131, 112, 119, 123, 112, 118, 133, 120, 124, 127, 114, 128, 128, 147, 108, 123, 143, 149, 109, 113, 131, 129, 112, 159, 131, 127, 133, 116, 123, 134, 109, 134, 121, 154, 124, 125, 111, 119, 105, 121, 146, 123, 128, 131, 121, 125, 123, 125, 127, 127, 118, 125, 160, 113, 130, 136, 126, 117, 122, 112, 111, 127, 117, 116, 133, 126, 127, 136, 122, 127, 127, 117, 124, 116, 133, 139, 115, 120, 107, 127, 125, 119, 116, 141, 141, 132, 113, 124, 131, 120, 137, 122, 141, 128, 111, 132, 134, 117, 133, 124, 131, 135, 126, 131, 123, 124, 132, 122, 126, 135, 133, 128, 128, 115, 117, 132, 117, 137, 131, 131, 117, 116, 137, 141, 132, 123, 136, 129, 143, 136, 144, 129, 121, 131, 129, 121, 113, 130, 129, 113, 128, 124, 118, 140, 98, 108, 112, 120, 147, 133, 126, 137, 115, 112, 139, 130, 122, 115, 131, 133, 108, 126, 137, 132, 117, 109, 125, 122, 105, 136, 136, 142, 124, 130, 144, 118, 121, 138, 133, 118, 121, 138, 119, 112, 113, 132, 132, 123, 112, 129, 126, 110, 123, 137, 114, 115, 145, 124, 119, 129, 125, 127, 115, 113, 127, 134, 125, 131, 111, 140, 129, 128, 121, 125, 132, 142, 127, 131, 132, 139, 148, 131, 136, 142, 129, 132, 128, 125, 100, 108, 123, 122, 114, 136, 122, 128, 119, 142, 122, 126, 116, 130, 113, 119, 127, 112, 135, 110, 147, 133, 127, 122, 124, 127, 127, 111, 128, 129, 145, 134, 118, 136, 130, 133, 118, 110, 128, 136, 129, 121, 131, 121, 124, 126, 113, 147, 131, 133, 121, 128, 120, 124, 134, 117, 125, 121, 126, 120, 123, 123, 116, 127, 125, 124, 136, 119, 133, 122, 126, 110, 138, 122, 132, 110, 111, 110, 125, 116, 109, 125, 116, 131, 134, 128, 150, 134, 149, 108, 129, 120, 132, 119, 118, 140, 134, 125, 138, 124, 128, 160, 118, 123, 133, 140, 135, 136, 130, 155, 108, 129, 115, 123, 132, 142, 123, 119, 132, 131, 108, 128, 124, 117, 111, 126, 126, 104, 146, 130, 126, 117, 125, 134, 120, 119, 127, 111, 114, 124, 131, 127, 125, 119, 121, 112, 127, 139, 137, 124, 143, 123, 131, 115, 134, 119, 104, 116, 127, 122, 122, 126, 138, 123, 133, 132, 124, 109, 120, 141, 134, 127, 129, 118, 132, 121, 144, 112, 116, 129, 120, 125, 124, 130, 148, 126, 136, 118, 133, 131, 135, 127, 96, 134, 137, 138, 101, 115, 125, 132, 145, 112, 107, 118, 151, 130, 93, 115, 141, 131, 147, 124, 111, 123, 130, 126, 119, 140, 120, 113, 117, 150, 99, 126, 116, 133, 124, 121, 110, 130, 133, 114, 122, 144, 124, 111, 123, 128, 138, 114, 118, 116, 137, 122, 128, 120, 127, 119, 134, 129, 96, 121, 102, 121, 120, 139, 142, 110, 139, 130, 125, 105, 114, 140, 127, 117, 142, 136, 131, 148, 139, 132, 115, 118, 126, 122, 146, 121, 120, 135, 112, 133, 148, 130, 120, 118, 129, 130, 112, 140, 112, 115, 131, 130, 131, 107, 122, 122, 140, 114, 116, 132, 137, 122, 123, 133, 134, 120, 136, 122, 122, 117, 127, 124, 137, 128, 111, 139, 143, 112, 123, 128, 132, 132, 134, 126, 122, 142, 134, 111, 126, 137, 128, 110, 138, 134, 127, 124, 128, 135, 136, 124, 125, 120, 99, 118, 111, 119, 138, 108, 139, 117, 133, 133, 123, 121, 126, 130, 130, 115, 132, 129, 128, 119, 104, 131, 113, 128, 125, 122, 135, 114, 132, 129, 117, 126, 119, 135, 124, 130, 133, 115, 116, 117, 99, 129, 122, 111, 118, 114, 120, 127, 131, 134, 118, 124, 127, 112, 140, 124, 125, 141, 111, 131, 119, 153, 127, 135, 138, 124, 119, 120, 114, 153, 129, 143, 109, 133, 153, 113, 132, 120, 130, 120, 138, 120, 127, 123, 116, 141, 120, 120, 116, 127, 137, 132, 122, 128, 118, 116, 120, 130, 119, 119, 134, 122, 124, 122, 136, 147, 131, 134, 105, 118, 136, 107, 136, 111, 132, 121, 125, 123, 145, 131, 121, 142, 139, 143, 122, 126, 81, 124, 116, 141, 139, 134, 127, 123, 128, 128, 138, 117, 103, 129, 100, 109, 111, 131, 113, 125, 114, 122, 111, 121, 115, 126, 138, 114, 129, 119, 103, 129, 136, 123, 115, 111, 152, 111, 113, 100, 128, 121, 133, 128, 114, 121, 133, 118, 151, 129, 122, 126, 127, 132, 140, 129, 125, 129, 126, 121, 127, 123, 126, 112, 137, 140, 129, 145, 117, 136, 133, 120, 117, 120, 148, 133, 129, 135, 120, 127, 135, 124, 82, 131, 141, 122, 117, 126, 116, 137, 128, 144, 115, 135, 134, 115, 124, 126, 132, 134, 122, 118, 102, 96, 118, 140, 119, 128, 126, 121, 123, 112, 99, 156, 124, 119, 123, 111, 124, 99, 127, 112, 121, 114, 132, 103, 126, 124, 138, 134, 129, 122, 130, 139, 135, 118, 125, 103, 118, 135, 135, 127, 108, 138, 130, 135, 136, 128, 121, 129, 106, 124, 130, 127, 131, 124, 134, 127, 131, 135, 112, 122, 124, 131, 119, 101, 111, 136, 134, 130, 129, 124, 122, 100, 114, 138, 121, 150, 111, 113, 131, 126, 117, 124, 125, 125, 128, 115, 117, 111, 116, 121, 115, 113, 127, 138, 120, 117, 118, 110, 129, 143, 138, 110, 137, 139, 117, 121, 148, 139, 118, 134, 113, 118, 114, 137, 126, 137, 91, 130, 125, 133, 124, 130, 88, 118, 141, 122, 138, 123, 119, 125, 143, 151, 130, 134, 127, 119, 118, 119, 115, 111, 113, 119, 128, 121, 126, 112, 126, 109, 133, 133, 104, 117, 114, 122, 138, 122, 133, 157, 118, 116, 143, 129, 124, 131, 123, 130, 115, 120, 113, 135, 114, 129, 126, 125, 133, 122, 121, 110, 134, 136, 141, 126, 134, 125, 127, 138, 124, 116, 109, 131, 128, 113, 110, 115, 124, 119, 138, 120, 140, 114, 133, 105, 122, 128, 130, 124, 129, 129, 137, 85, 137, 146, 117, 137, 125, 130, 136, 112, 120, 127, 116, 127, 109, 106, 122, 127, 146, 129, 124, 141, 136, 121, 125, 113, 131, 106, 130, 133, 149, 134, 125, 132, 122, 127, 129, 125, 123, 129, 122, 114, 130, 122, 124, 123, 119, 125, 132, 123, 114, 111, 136, 121, 109, 119, 120, 122, 132, 123, 125, 122, 114, 108, 127, 140, 121, 128, 142, 111, 135, 131, 93, 117, 118, 140, 119, 130, 128, 133, 123, 134, 129, 132, 127, 130, 119, 121, 137, 129, 119, 124, 119, 123, 121, 124, 127, 118, 111, 119, 127, 130, 118, 105, 87, 135, 107, 119, 132, 106, 123, 127, 130, 111, 131, 121, 124, 128, 118, 125, 112, 127, 117, 121, 152, 120, 95, 128, 130, 129, 135, 111, 106, 129, 137, 129, 126, 120, 123, 129, 149, 122, 143, 116, 123, 110, 147, 89, 148, 122, 120, 123, 134, 125, 130, 133, 120, 122, 119, 116, 104, 132, 124, 128, 129, 119, 143, 138, 115, 116, 123, 121, 130, 122, 122, 134, 113, 120, 132, 112, 136, 116, 114, 146, 127, 141, 128, 129, 130, 128, 112, 131, 126, 132, 129, 127, 127, 136, 153, 122, 113, 123, 131, 125, 149, 129, 134, 143, 131, 137, 121, 113, 113, 125, 121, 116, 119, 123, 122, 120, 126, 124, 149, 141, 119, 115, 124, 137, 123, 126, 129, 123, 118, 130, 123, 135, 139, 134, 113, 128, 122, 118, 109, 145, 109, 113, 113, 127, 127, 124, 125, 131, 116, 130, 133, 110, 125, 128, 132, 115, 122, 117, 131, 132, 135, 110, 124, 135, 132, 121, 136, 135, 114, 125, 133, 150, 117, 119, 118, 136, 127, 129, 101, 120, 115, 116, 99, 121, 123, 137, 109, 133, 120, 115, 133, 104, 144, 103, 135, 112, 143, 123, 126, 135, 128, 117, 143, 119, 123, 125, 134, 117, 144, 113, 113, 127, 110, 122, 137, 127, 124, 117, 127, 145, 123, 125, 138, 143, 139, 136, 128, 148, 129, 112, 149, 120, 137, 121, 130, 126, 132, 128, 121, 106, 129, 120, 125, 123, 127, 126, 125, 148, 132, 92, 121, 122, 130, 145, 159, 131, 124, 131, 130, 125, 118, 136, 116, 132, 127, 122, 139, 142, 117, 135, 129, 128, 126, 106, 115, 119, 123, 111, 122, 122, 144, 124, 135, 131, 148, 137, 128, 140, 120, 115, 128, 121, 118, 123, 116, 109, 136, 119, 113, 131, 132, 125, 142, 134, 126, 120, 127, 101, 129, 121, 130, 117, 129, 122, 145, 138, 127, 129, 127, 125, 131, 131, 124, 130, 99, 114, 112, 136, 127, 106, 128, 145, 127, 129, 130, 130, 129, 93, 136, 122, 109, 107, 129, 121, 151, 121, 114, 125, 139, 102, 138, 113, 129, 138, 142, 115, 116, 127, 114, 111, 149, 121, 117, 113, 135, 115, 129, 122, 139, 126, 99, 122, 103, 141, 113, 129, 103, 115, 110, 134, 132, 121, 133, 135, 111, 119, 127, 132, 149, 115, 125, 113, 135, 140, 132, 129, 142, 137, 129, 134, 128, 111, 127, 113, 133, 118, 136, 111, 135, 115, 108, 114, 142, 133, 135, 132, 122, 119, 132, 124, 118, 138, 128, 131, 138, 136, 129, 136, 124, 132, 104, 132, 116, 135, 114, 143, 117, 145, 131, 122, 116, 118, 124, 124, 105, 126, 124, 113, 105, 131, 129, 118, 129, 117, 109, 124, 127, 121, 120, 124, 125, 126, 139, 118, 133, 117, 143, 129, 119, 116, 121, 129, 109, 120, 120, 126, 112, 115, 114, 127, 121, 110, 123, 113, 132, 113, 127, 137, 124, 127, 112, 104, 122, 120, 113, 127, 122, 114, 119, 127, 118, 125, 127, 136, 124, 135, 140, 123, 125, 111, 147, 132, 124, 115, 126, 130, 131, 134, 132, 116, 121, 129, 144, 137, 98, 140, 125, 141, 120, 107, 121, 126, 107, 106, 128, 132, 120, 115, 120, 128, 126, 118, 119, 140, 133, 125, 125, 135, 103, 121, 136, 116, 126, 134, 130, 112, 139, 131, 126, 136, 148, 136, 124, 131, 138, 131, 119, 128, 128, 136, 132, 120, 126, 145, 133, 128, 145, 138, 111, 131, 124, 123, 128, 113, 116, 117, 144, 115, 127, 142, 125, 135, 119, 119, 128, 134, 128, 121, 117, 132, 130, 104, 117, 122, 128, 118, 120, 143, 120, 97, 124, 133, 135, 104, 114, 127, 118, 128, 106, 123, 137, 133, 131, 133, 124, 128, 124, 126, 137, 132, 121, 107, 122, 114, 125, 118, 144, 119, 129, 143, 128, 135, 113, 115, 121, 138, 155, 133, 129, 126, 120, 133, 119, 141, 125, 125, 114, 127, 128, 122, 126, 109, 128, 137, 125, 128, 128, 122, 130, 122, 112, 124, 119, 118, 136, 126, 138, 156, 131, 120, 115, 126, 124, 131, 120, 104, 121, 126, 138, 145, 119, 133, 123, 121, 125, 145, 148, 122, 130, 134, 121, 123, 138, 132, 120, 126, 123, 131, 123, 109, 125, 123, 130, 127, 122, 108, 127, 136, 121, 116, 118, 135, 119, 136, 137, 113, 113, 123, 131, 123, 122, 130, 119, 130, 132, 131, 123, 129, 106, 107, 127, 130, 134, 130, 122, 119, 130, 115, 129, 124, 113, 132, 110, 123, 122, 128, 124, 139, 139, 132, 131, 121, 117, 137, 126, 131, 156, 111, 124, 132, 156, 122, 125, 109, 135, 129, 108, 121, 133, 126, 129, 121, 121, 117, 125, 116, 124, 122, 99, 130, 109, 128, 122, 114, 118, 134, 133, 136, 133, 151, 115, 135, 137, 137, 147, 119, 113, 133, 127, 129, 105, 138, 117, 126, 104, 114, 127, 129, 113, 130, 113, 135, 118, 126, 131, 130, 110, 126, 121, 113, 137, 130, 112, 133, 126, 113, 119, 121, 146, 120, 121, 134, 129, 129, 123, 130, 133, 112, 116, 127, 114, 124, 132, 115, 132, 122, 132, 118, 117, 114, 118, 133, 112, 133, 122, 108, 116, 128, 131, 139, 110, 136, 125, 151, 126, 124, 139, 140, 135, 138, 143, 137, 120, 126, 120, 131, 124, 140, 132, 129, 121, 140, 134, 104, 124, 132, 124, 134, 116, 108, 140, 124, 124, 142, 122, 129, 128, 124, 114, 134, 114, 124, 126, 131, 122, 122, 124, 125, 120, 115, 112, 133, 112, 136, 136, 132, 126, 106, 114, 131, 138, 125, 128, 130, 122, 129, 122, 122, 116, 106, 122, 133, 128, 128, 131, 124, 126, 130, 133, 134, 113, 112, 112, 137, 126, 133, 140, 154, 126, 137, 131, 112, 121, 123, 114, 132, 115, 114, 129, 137, 131, 124, 135, 130, 119, 127, 135, 139, 119, 129, 132, 131, 123, 117, 127, 130, 114, 134, 122, 130, 129, 134, 129, 111, 123, 125, 124, 128, 105, 128, 125, 140, 126, 147, 124, 134, 133, 141, 123, 130, 123, 130, 105, 140, 130, 128, 131, 135, 116, 141, 125, 135, 117, 123, 111, 111, 130, 131, 119, 120, 114, 137, 138, 135, 121, 142, 125, 125, 134, 130, 104, 116, 148, 122, 124, 117, 130, 124, 138, 124, 127, 122, 132, 128, 141, 125, 128, 118, 129, 127, 109, 125, 117, 122, 123, 123, 124, 125, 136, 112, 121, 146, 118, 133, 108, 127, 122, 139, 131, 147, 125, 137, 124, 113, 135, 146, 131, 127, 120, 126, 123, 123, 136, 127, 129, 121, 116, 126, 120, 137, 117, 130, 135, 138, 117, 133, 126, 114, 109, 108, 127, 109, 131, 130, 123, 130, 136, 124, 134, 144, 125, 124, 119, 120, 127, 116, 106, 109, 136, 115, 139, 122, 115, 128, 112, 122, 120, 138, 111, 117, 135, 127, 105, 114, 131, 123, 133, 128, 119, 106, 133, 139, 131, 123, 133, 102, 117, 128, 126, 112, 119, 139, 139, 149, 106, 98, 133, 121, 124, 134, 122, 136, 132, 144, 127, 131, 127, 113, 122, 114, 135, 125, 126, 122, 107, 107, 141, 113, 122, 124, 130, 120, 119, 119, 126, 123, 132, 127, 123, 135, 136, 116, 127, 126, 152, 126, 125, 131, 124, 135, 107, 129, 123, 124, 120, 112, 119, 133, 127, 127, 124, 139, 117, 117, 127, 119, 111, 109, 102, 139, 141, 141, 121, 128, 126, 125, 133, 134, 137, 118, 131, 138, 111, 138, 123, 107, 130, 154, 139, 125, 123, 107, 131, 127, 127, 124, 133, 121, 122, 114, 125, 105, 139, 130, 132, 122, 118, 132, 125, 100, 134, 119, 133, 121, 123, 128, 112, 126, 122, 109, 121, 124, 111, 131, 110, 130, 112, 122, 133, 133, 122, 121, 141, 125, 104, 123, 117, 115, 137, 117, 108, 116, 135, 127, 106, 140, 122, 111, 119, 125, 132, 111, 115, 135, 125, 117, 119, 127, 131, 129, 138, 138, 113, 113, 138, 130, 142, 119, 105, 125, 134, 108, 136, 127, 131, 114, 130, 127, 129, 113, 126, 139, 108, 124, 129, 127, 134, 126, 127, 136, 139, 135, 120, 122, 124, 129, 134, 131, 121, 126, 138, 127, 146, 140, 129, 138, 121, 107, 133, 140, 125, 111, 127, 120, 127, 114, 120, 105, 147, 119, 122, 116, 125, 120, 113, 107, 120, 133, 111, 114, 134, 113, 145, 123, 113, 118, 112, 111, 129, 140, 128, 125, 141, 136, 114, 132, 120, 127, 134, 135, 126, 120, 129, 131, 94, 141, 123, 132, 139, 105, 129, 127, 141, 130, 127, 108, 131, 136, 117, 126, 129, 130, 133, 127, 133, 138, 122, 127, 101, 127, 131, 138, 116, 112, 151, 139, 120, 135, 125, 123, 124, 124, 126, 123, 125, 138, 131, 143, 135, 126, 129, 109, 112, 109, 127, 128, 120, 135, 129, 108, 128, 129, 131, 121, 127, 128, 125, 104, 121, 117, 131, 125, 113, 130, 142, 122, 134, 119, 109, 110, 120, 128, 132, 120, 125, 121, 113, 128, 131, 130, 116, 120, 144, 138, 127, 124, 129, 123, 117, 134, 104, 110, 123, 116, 112, 122, 135, 131, 109, 127, 123, 117, 126, 129, 129, 119, 138, 135, 107, 120, 112, 123, 119, 107, 143, 117, 140, 129, 122, 115, 136, 121, 122, 113, 132, 112, 122, 111, 129, 112, 128, 133, 122, 130, 128, 127, 135, 138, 115, 129, 134, 126, 124, 136, 123, 134, 111, 120, 126, 120, 122, 125, 135, 116, 113, 134, 114, 117, 124, 136, 124, 137, 119, 137, 119, 140, 111, 132, 130, 113, 140, 130, 124, 129, 132, 134, 133, 142, 113, 127, 134, 131, 117, 123, 114, 119, 129, 125, 116, 106, 116, 111, 126, 118, 119, 130, 124, 119, 99, 122, 136, 122, 129, 129, 126, 126, 120, 131, 149, 119, 129, 153, 123, 131, 130, 132, 118, 134, 135, 120, 124, 122, 135, 128, 111, 136, 107, 129, 131, 130, 140, 114, 129, 119, 128, 125, 131, 120, 126, 133, 117, 114, 112, 124, 150, 135, 123, 121, 132, 153, 134, 116, 117, 117, 135, 117, 139, 131, 117, 130, 121, 137, 131, 134, 128, 109, 124, 127, 130, 130, 127, 128, 119, 123, 121, 142, 109, 120, 123, 117, 139, 115, 108, 127, 151, 122, 130, 119, 128, 128, 140, 121, 120, 131, 129, 120, 154, 119, 131, 117, 140, 123, 110, 108, 108, 125, 131, 132, 127, 127, 108, 130, 126, 109, 119, 122, 126, 114, 141, 119, 126, 127, 116, 121, 133, 131, 115, 125, 110, 132, 103, 106, 126, 62, 130, 121, 118, 136, 120, 136, 132, 111, 117, 116, 133, 120, 147, 124, 120, 112, 127, 116, 117, 141, 126, 135, 130, 129, 129, 121, 126, 130, 126, 122, 119, 123, 135, 123, 115, 139, 143, 130, 129, 126, 130, 126, 129, 128, 125, 104, 119, 123, 122, 120, 128, 130, 131, 139, 126, 135, 126, 128, 136, 109, 117, 122, 122, 117, 115, 119, 110, 118, 104, 117, 103, 114, 128, 106, 139, 142, 117, 128, 146, 106, 128, 129, 147, 114, 131, 121, 128, 129, 123, 130, 126, 132, 127, 114, 126, 129, 120, 114, 138, 124, 129, 126, 130, 128, 90, 139, 128, 128, 131, 134, 126, 129, 126, 145, 126, 120, 131, 114, 129, 117, 112, 137, 109, 122, 122, 125, 148, 132, 129, 136, 136, 117, 135, 113, 147, 117, 137, 127, 105, 142, 121, 132, 123, 135, 114, 115, 115, 118, 118, 131, 150, 123, 138, 132, 117, 116, 131, 128, 127, 134, 135, 134, 121, 125, 115, 119, 121, 111, 116, 110, 127, 126, 122, 118, 151, 111, 121, 120, 117, 128, 136, 112, 116, 119, 137, 124, 125, 127, 143, 132, 122, 116, 115, 109, 148, 124, 119, 118, 121, 117, 124, 116, 124, 106, 129, 143, 116, 105, 118, 132, 109, 136, 137, 130, 116, 122, 127, 116, 132, 128, 128, 115, 113, 137, 130, 125, 122, 125, 133, 122, 131, 120, 116, 116, 140, 140, 122, 120, 111, 137, 126, 141, 128, 118, 133, 105, 123, 119, 127, 117, 124, 141, 133, 125, 132, 133, 114, 115, 136, 106, 125, 149, 97, 105, 131, 116, 127, 109, 126, 129, 133, 116, 131, 115, 115, 110, 123, 131, 122, 140, 133, 138, 128, 113, 122, 108, 126, 110, 135, 122, 115, 114, 125, 103, 129, 131, 117, 143, 120, 124, 107, 138, 128, 125, 130, 109, 129, 115, 128, 120, 107, 129, 126, 119, 110, 128, 126, 138, 127, 123, 139, 129, 120, 128, 134, 123, 133, 120, 122, 120, 127, 118, 125, 119, 118, 119, 128, 127, 118, 118, 122, 120, 117, 116, 125, 108, 133, 115, 108, 118, 116, 134, 132, 109, 142, 113, 137, 122, 113, 131, 122, 123, 120, 144, 110, 124, 107, 146, 122, 121, 109, 130, 110, 136, 122, 112, 128, 131, 115, 111, 126, 127, 128, 108, 124, 111, 130, 139, 133, 111, 116, 115, 110, 128, 108, 116, 131, 128, 125, 121, 121, 119, 107, 130, 117, 116, 128, 134, 108, 124, 108, 123, 136, 135, 139, 126, 128, 119, 119, 118, 126, 138, 138, 119, 126, 129, 122, 119, 115, 151, 113, 112, 111, 137, 115, 110, 102, 134, 110, 128, 108, 118, 112, 124, 135, 129, 122, 108, 126, 109, 123, 135, 119, 115, 132, 120, 134, 124, 137, 133, 123, 94, 129, 114, 123, 130, 124, 118, 128, 112, 110, 129, 124, 125, 126, 132, 136, 133, 120, 123, 119, 128, 129, 115, 125, 128, 144, 98, 146, 117, 115, 126, 131, 142, 124, 126, 118, 111, 108, 116, 111, 113, 126, 123, 114, 121, 111, 121, 129, 113, 127, 104, 123, 133, 126, 127, 128, 113, 137, 138, 151, 154, 135, 117, 110, 125, 131, 110, 128, 118, 129, 136, 138, 123, 130, 124, 133, 120, 117, 118, 130, 126, 114, 111, 126, 126, 123, 123, 132, 137, 129, 125, 127, 146, 121, 134, 117, 135, 101, 128, 115, 113, 115, 139, 125, 120, 131, 99, 137, 138, 123, 136, 123, 124, 136, 126, 124, 146, 121, 114, 127, 137, 122, 123, 123, 116, 128, 127, 109, 129, 106, 137, 123, 113, 119, 126, 129, 119, 128, 117, 123, 105, 108, 124, 130, 125, 133, 125, 107, 119, 109, 130, 126, 127, 131, 121, 119, 117, 135, 133, 133, 117, 107, 115, 111, 133, 122, 123, 147, 141, 113, 141, 125, 124, 132, 119, 149, 123, 113, 108, 120, 124, 139, 119, 133, 128, 128, 120, 132, 117, 116, 112, 118, 139, 109, 116, 127, 127, 110, 123, 129, 104, 132, 125, 134, 133, 133, 106, 107, 134, 119, 127, 127, 109, 127, 129, 114, 131, 112, 148, 119, 118, 145, 128, 134, 117, 137, 119, 135, 151, 107, 126, 120, 128, 138, 124, 124, 110, 127, 139, 138, 128, 110, 120, 128, 123, 123, 118, 136, 125, 152, 137, 122, 127, 123, 136, 131, 131, 135, 122, 122, 128, 129, 125, 140, 123, 118, 118, 144, 138, 121, 130, 133, 117, 129, 131, 151, 160, 123, 128, 130, 139, 121, 121, 128, 126, 106, 120, 129, 129, 118, 127, 112, 130, 145, 120, 105, 109, 135, 132, 109, 115, 139, 112, 112, 115, 133, 111, 129, 119, 119, 123, 134, 111, 116, 111, 124, 125, 136, 126, 113, 117, 109, 131, 125, 113, 102, 96, 122, 127, 141, 128, 122, 134, 126, 132, 115, 130, 132, 123, 123, 108, 116, 120, 140, 125, 127, 118, 128, 100, 113, 110, 133, 135, 126, 111, 135, 139, 128, 141, 117, 116, 120, 111, 121, 122, 115, 125, 123, 138, 114, 127, 127, 123, 104, 96, 124, 125, 116, 125, 130, 114, 130, 119, 134, 121, 140, 116, 134, 144, 136, 123, 135, 124, 131, 147, 123, 131, 136, 133, 117, 142, 132, 129, 118, 146, 127, 130, 107, 108, 114, 128, 124, 117, 133, 126, 128, 123, 149, 130, 129, 123, 127, 127, 112, 131, 107, 105, 130, 120, 116, 124, 139, 128, 141, 128, 120, 124, 138, 91, 110, 120, 135, 130, 131, 119, 139, 117, 134, 121, 120, 126, 108, 133, 122, 126, 124, 123, 113, 125, 124, 146, 115, 122, 117, 133, 139, 128, 147, 116, 125, 116, 138, 128, 138, 122, 123, 122, 116, 104, 119, 143, 116, 120, 136, 128, 113, 125, 133, 135, 127, 135, 141, 147, 123, 120, 123, 158, 123, 112, 131, 108, 135, 132, 127, 122, 112, 136, 109, 117, 119, 128, 129, 142, 121, 116, 126, 117, 126, 115, 116, 111, 143, 136, 134, 108, 141, 135, 116, 132, 117, 141, 111, 135, 150, 123, 126, 130, 118, 132, 120, 121, 130, 125, 125, 149, 117, 134, 128, 131, 126, 121, 120, 111, 114, 122, 134, 117, 135, 128, 120, 140, 132, 116, 134, 114, 112, 127, 123, 130, 123, 141, 120, 130, 130, 133, 127, 121, 105, 129, 120, 130, 123, 127, 140, 132, 145, 119, 125, 126, 125, 119, 108, 133, 119, 120, 117, 126, 106, 136, 136, 133, 124, 129, 117, 141, 121, 122, 142, 130, 127, 131, 132, 118, 121, 126, 123, 133, 130, 114, 129, 123, 123, 110, 128, 131, 132, 123, 143, 121, 120, 110, 112, 138, 106, 125, 114, 115, 126, 138, 116, 120, 112, 105, 133, 118, 126, 115, 140, 137, 117, 143, 135, 119, 102, 110, 123, 134, 130, 129, 126, 148, 134, 119, 125, 117, 117, 129, 133, 133, 139, 124, 138, 117, 129, 131, 115, 135, 125, 122, 138, 150, 125, 116, 145, 120, 137, 142, 125, 137, 130, 134, 129, 116, 103, 120, 119, 125, 132, 111, 113, 140, 132, 119, 130, 118, 144, 107, 113, 113, 118, 140, 107, 136, 135, 132, 126, 119, 130, 105, 119, 122, 136, 142, 153, 115, 131, 128, 111, 118, 117, 141, 121, 119, 126, 105, 99, 132, 138, 125, 124, 121, 142, 122, 132, 133, 101, 151, 124, 132, 118, 127, 116, 130, 122, 117, 122, 133, 129, 136, 118, 121, 121, 130, 150, 129, 120, 135, 122, 118, 118, 127, 119, 117, 128, 131, 121, 138, 129, 141, 140, 123, 139, 101, 119, 124, 127, 131, 111, 133, 125, 123, 130, 120, 145, 126, 127, 103, 126, 131, 133, 123, 125, 140, 122, 129, 122, 124, 120, 131, 113, 144, 126, 107, 131, 147, 123, 128, 119, 132, 133, 131, 132, 110, 122, 133, 129, 134, 120, 137, 130, 145, 131, 133, 135, 116, 100, 117, 137, 127, 121, 121, 130, 132, 127, 132, 129, 125, 117, 130, 115, 121, 129, 129, 126, 112, 120, 111, 119, 144, 112, 113, 114, 115, 129, 122, 113, 123, 131, 136, 119, 120, 167, 122, 106, 115, 106, 140, 128, 135, 117, 130, 114, 136, 132, 113, 128, 119, 129, 129, 121, 130, 121, 145, 118, 114, 113, 127, 114, 127, 133, 127, 111, 124, 156, 116, 127, 146, 127, 129, 125, 125, 122, 123, 145, 119, 122, 111, 120, 116, 126, 121, 125, 125, 123, 106, 146, 136, 127, 127, 128, 132, 133, 134, 125, 114, 114, 125, 126, 129, 121, 129, 118, 137, 117, 121, 123, 109, 124, 130, 128, 109, 120, 126, 116, 135, 116, 125, 118, 115, 113, 113, 127, 129, 118, 114, 132, 122, 117, 112, 131, 127, 112, 123, 148, 139, 131, 112, 113, 135, 130, 126, 123, 138, 122, 124, 118, 136, 119, 139, 140, 137, 136, 138, 136, 119, 135, 131, 110, 125, 130, 118, 120, 108, 123, 112, 118, 120, 130, 132, 138, 125, 126, 123, 143, 117, 133, 126, 136, 123, 117, 124, 120, 106, 118, 122, 98, 110, 129, 143, 144, 111, 131, 119, 123, 125, 122, 119, 133, 145, 130, 123, 130, 129, 109, 133, 126, 113, 115, 120, 135, 104, 113, 115, 116, 125, 110, 113, 115, 116, 120, 115, 124, 118, 116, 121, 121, 128, 106, 119, 114, 123, 132, 124, 115, 114, 119, 118, 107, 135, 131, 118, 131, 130, 120, 116, 125, 107, 153, 115, 109, 128, 126, 110, 118, 135, 131, 128, 122, 122, 129, 123, 121, 105, 114, 140, 142, 120, 124, 118, 136, 124, 141, 121, 120, 123, 102, 114, 115, 128, 119, 138, 142, 146, 144, 142, 131, 119, 106, 118, 133, 141, 131, 120, 130, 133, 122, 109, 139, 112, 115, 124, 124, 119, 124, 98, 121, 131, 141, 122, 116, 112, 133, 120, 120, 127, 122, 114, 138, 129, 126, 136, 136, 129, 126, 107, 144, 144, 132, 139, 121, 144, 132, 118, 116, 125, 121, 132, 137, 125, 135, 144, 123, 146, 112, 117, 120, 112, 131, 116, 135, 108, 122, 145, 120, 105, 137, 138, 134, 134, 106, 124, 121, 123, 132, 137, 112, 130, 126, 122, 133, 131, 138, 122, 103, 125, 123, 111, 115, 145, 124, 124, 111, 129, 126, 126, 137, 137, 124, 123, 109, 127, 129, 135, 112, 122, 139, 118, 117, 112, 109, 118, 123, 133, 106, 125, 130, 106, 113, 130, 109, 120, 131, 127, 131, 133, 123, 128, 132, 123, 124, 117, 126, 108, 128, 129, 115, 93, 150, 125, 117, 116, 126, 152, 124, 119, 133, 118, 116, 104, 113, 112, 130, 127, 133, 129, 124, 130, 135, 139, 119, 129, 121, 118, 129, 112, 123, 128, 118, 141, 134, 122, 134, 111, 144, 124, 130, 130, 128, 133, 114, 110, 123, 139, 132, 138, 116, 109, 118, 117, 134, 125, 132, 136, 128, 118, 115, 118, 113, 146, 115, 132, 131, 130, 140, 130, 124, 125, 124, 119, 130, 116, 128, 113, 127, 102, 126, 123, 127, 126, 122, 138, 110, 136, 113, 114, 115, 123, 127, 128, 134, 135, 140, 107, 136, 121, 112, 129, 139, 117, 127, 110, 141, 131, 135, 140, 140, 138, 135, 127, 116, 112, 122, 102, 109, 117, 135, 127, 115, 125, 121, 131, 118, 119, 122, 121, 136, 134, 120, 126, 114, 132, 119, 122, 130, 124, 135, 117, 99, 111, 121, 117, 108, 118, 121, 114, 118, 121, 123, 130, 118, 129, 132, 136, 119, 122, 115, 155, 150, 136, 113, 137, 113, 127, 127, 123, 125, 120, 121, 132, 114, 118, 118, 136, 127, 117, 132, 118, 118, 138, 143, 136, 114, 127, 136, 126, 122, 123, 116, 110, 107, 124, 131, 126, 110, 152, 127, 131, 130, 132, 106, 125, 121, 136, 112, 121, 115, 124, 124, 132, 111, 137, 120, 118, 128, 109, 128, 125, 122, 119, 126, 127, 124, 118, 134, 114, 124, 115, 120, 121, 136, 118, 120, 112, 125, 132, 126, 126, 113, 131, 110, 119, 115, 125, 115, 137, 145, 113, 138, 127, 113, 121, 136, 128, 117, 120, 115, 129, 131, 126, 130, 125, 116, 121, 121, 134, 105, 117, 102, 144, 130, 122, 129, 133, 127, 129, 145, 127, 115, 103, 124, 127, 140, 128, 122, 135, 111, 120, 116, 123, 109, 136, 134, 121, 107, 121, 145, 135, 143, 132, 121, 138, 124, 134, 120, 119, 126, 125, 112, 127, 112, 144, 130, 124, 120, 127, 122, 119, 128, 121, 133, 127, 134, 127, 131, 117, 129, 118, 123, 127, 120, 125, 123, 127, 115, 127, 125, 144, 127, 121, 133, 126, 127, 109, 124, 132, 114, 137, 111, 137, 137, 115, 129, 124, 122, 134, 129, 138, 120, 119, 127, 122, 134, 127, 121, 126, 126, 143, 130, 123, 109, 142, 126, 129, 135, 124, 111, 136, 133, 121, 118, 127, 132, 128, 125, 131, 124, 97, 124, 117, 107, 121, 143, 124, 129, 118, 118, 126, 119, 138, 112, 114, 130, 137, 111, 129, 127, 144, 142, 152, 136, 128, 129, 124, 112, 121, 122, 121, 139, 108, 110, 130, 112, 121, 138, 112, 141, 126, 126, 127, 114, 128, 139, 124, 134, 117, 124, 130, 129, 127, 124, 131, 125, 114, 129, 123, 118, 137, 122, 126, 116, 126, 110, 118, 146, 126, 119, 131, 131, 134, 119, 118, 129, 126, 119, 133, 112, 115, 121, 121, 113, 116, 126, 140, 115, 124, 136, 135, 119, 122, 121, 121, 108, 122, 137, 128, 115, 121, 105, 131, 146, 103, 118, 128, 140, 139, 101, 136, 127, 118, 128, 124, 135, 145, 135, 119, 140, 129, 144, 133, 122, 117, 128, 138, 130, 119, 147, 127, 115, 117, 126, 128, 120, 144, 128, 131, 126, 134, 110, 131, 128, 109, 123, 127, 125, 121, 137, 141, 129, 109, 135, 119, 126, 119, 137, 125, 124, 113, 135, 113, 114, 113, 124, 123, 118, 116, 140, 138, 126, 125, 146, 116, 106, 142, 137, 123, 101, 133, 115, 134, 128, 116, 142, 112, 139, 126, 147, 130, 128, 105, 102, 126, 123, 133, 129, 117, 127, 118, 133, 143, 122, 131, 141, 125, 129, 113, 134, 139, 114, 160, 125, 124, 110, 118, 110, 146, 140, 97, 134, 98, 136, 111, 144, 116, 117, 116, 113, 134, 111, 126, 122, 116, 135, 133, 134, 137, 125, 121, 119, 120, 127, 146, 137, 120, 145, 137, 115, 134, 134, 124, 127, 139, 135, 139, 118, 125, 119, 140, 151, 133, 129, 138, 125, 123, 119, 119, 135, 124, 130, 132, 113, 130, 121, 122, 122, 116, 129, 121, 127, 130, 140, 126, 136, 139, 117, 132, 120, 103, 136, 115, 125, 121, 121, 124, 133, 120, 125, 131, 102, 121, 141, 126, 130, 120, 132, 131, 120, 115, 126, 122, 118, 124, 125, 135, 111, 117, 129, 137, 139, 118, 127, 119, 128, 119, 124, 133, 135, 140, 114, 134, 105, 91, 132, 129, 124, 135, 124, 124, 136, 127, 124, 136, 134, 114, 138, 126, 126, 136, 120, 119, 142, 122, 111, 134, 118, 132, 120, 129, 111, 132, 120, 141, 120, 126, 132, 126, 131, 130, 136, 113, 128, 115, 123, 111, 115, 132, 120, 134, 108, 132, 118, 116, 131, 121, 108, 119, 128, 126, 138, 123, 138, 127, 122, 158, 121, 116, 145, 127, 131, 130, 134, 121, 118, 116, 130, 124, 114, 118, 127, 114, 136, 117, 136, 124, 132, 126, 137, 119, 120, 155, 110, 127, 119, 137, 145, 120, 133, 116, 113, 114, 135, 136, 117, 123, 141, 122, 122, 125, 129, 129, 130, 117, 116, 114, 119, 116, 132, 121, 131, 119, 135, 127, 122, 120, 120, 124, 114, 134, 134, 123, 132, 127, 110, 113, 119, 116, 121, 135, 136, 128, 126, 116, 120, 134, 127, 133, 114, 137, 131, 127, 123, 131, 118, 151, 127, 126, 142, 122, 115, 112, 128, 109, 127, 125, 112, 142, 125, 122, 134, 127, 136, 120, 120, 127, 117, 117, 141, 144, 130, 112, 151, 122, 120, 128, 136, 111, 126, 145, 136, 125, 117, 131, 135, 124, 147, 115, 118, 135, 127, 123, 124, 113, 117, 116, 125, 123, 135, 135, 119, 123, 132, 134, 132, 141, 113, 138, 121, 124, 135, 136, 129, 125, 126, 124, 142, 131, 134, 124, 130, 144, 126, 122, 143, 129, 108, 107, 123, 114, 119, 121, 110, 132, 122, 131, 128, 135, 133, 130, 120, 111, 130, 115, 145, 112, 117, 131, 103, 126, 138, 129, 138, 148, 115, 119, 140, 131, 118, 128, 132, 142, 122, 114, 123, 117, 131, 119, 113, 141, 132, 124, 149, 155, 124, 134, 126, 133, 128, 121, 133, 121, 121, 120, 128, 123, 116, 110, 136, 132, 121, 134, 136, 110, 139, 131, 122, 122, 121, 128, 115, 138, 104, 146, 131, 135, 121, 139, 121, 144, 119, 125, 110, 140, 103, 130, 127, 121, 140, 112, 128, 112, 128, 132, 136, 133, 118, 112, 125, 106, 111, 140, 127, 126, 131, 146, 137, 112, 108, 134, 123, 109, 121, 133, 119, 117, 122, 127, 119, 123, 120, 117, 116, 137, 119, 109, 112, 125, 138, 135, 132, 151, 103, 118, 121, 106, 127, 123, 130, 125, 127, 130, 128, 114, 134, 131, 135, 126, 126, 138, 131, 113, 104, 140, 122, 125, 118, 115, 128, 132, 133, 138, 135, 123, 122, 127, 130, 119, 144, 129, 106, 137, 108, 121, 124, 129, 116, 124, 120, 130, 110, 102, 138, 138, 115, 108, 126, 130, 121, 143, 118, 122, 124, 130, 116, 132, 111, 114, 114, 121, 131, 132, 132, 126, 103, 126, 128, 122, 135, 119, 143, 119, 145, 123, 132, 134, 139, 119, 137, 125, 123, 130, 130, 125, 140, 126, 136, 125, 120, 116, 111, 125, 118, 117, 134, 133, 131, 128, 145, 124, 128, 128, 121, 124, 131, 126, 124, 116, 126, 133, 141, 132, 128, 127, 106, 131, 131, 121, 134, 118, 109, 123, 113, 103, 138, 124, 131, 126, 128, 131, 120, 137, 126, 140, 122, 118, 121, 126, 119, 118, 117, 126, 124, 121, 132, 111, 130, 132, 132, 131, 128, 110, 124, 131, 141, 126, 120, 120, 121, 115, 113, 134, 120, 108, 133, 109, 109, 121, 127, 143, 118, 146, 132, 117, 137, 103, 140, 133, 119, 134, 122, 132, 131, 136, 123, 135, 115, 106, 132, 118, 134, 117, 123, 129, 125, 122, 111, 127, 129, 123, 123, 119, 108, 131, 124, 109, 146, 125, 105, 107, 129, 123, 120, 134, 118, 137, 134, 106, 131, 127, 126, 117, 142, 130, 128, 146, 118, 127, 138, 106, 144, 128, 146, 134, 110, 127, 140, 140, 107, 120, 119, 135, 115, 122, 127, 113, 118, 105, 134, 126, 113, 127, 132, 122, 117, 133, 109, 124, 134, 111, 129, 112, 109, 120, 134, 121, 104, 121, 135, 118, 120, 136, 140, 149, 134, 131, 138, 136, 141, 152, 122, 129, 119, 126, 146, 145, 120, 118, 135, 124, 137, 121, 129, 126, 133, 129, 124, 123, 128, 121, 120, 120, 136, 154, 110, 124, 120, 115, 114, 140, 148, 115, 132, 131, 119, 124, 119, 129, 145, 135, 127, 127, 120, 123, 135, 119, 119, 136, 135, 112, 127, 140, 124, 122, 128, 124, 133, 139, 124, 114, 128, 140, 97, 149, 116, 138, 144, 135, 146, 141, 129, 135, 139, 117, 129, 127, 109, 131, 133, 129, 130, 111, 126, 121, 115, 132, 122, 109, 142, 120, 130, 114, 137, 122, 113, 131, 125, 142, 121, 141, 132, 128, 108, 128, 106, 132, 140, 122, 132, 118, 129, 126, 126, 119, 114, 122, 103, 125, 118, 128, 121, 140, 118, 130, 106, 133, 123, 146, 140, 128, 125, 130, 114, 127, 132, 130, 130, 118, 138, 124, 129, 127, 106, 133, 146, 145, 136, 113, 128, 122, 123, 115, 128, 117, 119, 138, 127, 120, 130, 131, 127, 122, 130, 129, 116, 107, 136, 120, 118, 115, 141, 129, 126, 106, 115, 113, 106, 141, 143, 124, 89, 123, 113, 106, 122, 129, 124, 119, 124, 134, 143, 102, 120, 126, 143, 126, 107, 120, 130, 112, 128, 120, 123, 115, 116, 134, 137, 128, 129, 118, 141, 135, 118, 113, 129, 109, 121, 138, 132, 128, 121, 119, 154, 115, 127, 112, 134, 117, 119, 134, 137, 132, 116, 139, 140, 121, 114, 129, 127, 131, 122, 129, 129, 121, 103, 109, 126, 120, 111, 130, 125, 110, 125, 119, 125, 121, 153, 122, 105, 145, 120, 122, 121, 117, 131, 116, 140, 107, 124, 132, 139, 130, 127, 120, 127, 130, 132, 110, 117, 117, 127, 103, 129, 133, 112, 125, 140, 144, 140, 127, 136, 121, 133, 117, 133, 130, 145, 129, 133, 119, 118, 117, 122, 114, 129, 132, 106, 121, 118, 123, 133, 106, 118, 115, 131, 120, 122, 136, 141, 125, 125, 107, 132, 125, 126, 120, 123, 109, 122, 132, 124, 135, 122, 113, 127, 126, 121, 129, 131, 129, 130, 96, 139, 134, 129, 124, 115, 135, 129, 109, 122, 128, 125, 116, 129, 109, 133, 128, 124, 105, 128, 116, 113, 134, 126, 121, 116, 127, 133, 138, 102, 116, 122, 131, 125, 128, 127, 139, 119, 142, 130, 123, 132, 129, 127, 122, 133, 132, 107, 120, 132, 112, 129, 117, 142, 124, 126, 133, 106, 145, 127, 123, 113, 118, 123, 116, 136, 120, 127, 137, 103, 126, 112, 132, 133, 132, 117, 118, 124, 125, 138, 132, 115, 130, 128, 129, 132, 159, 120, 132, 136, 131, 136, 109, 116, 127, 136, 131, 140, 126, 106, 133, 109, 120, 120, 121, 139, 109, 112, 127, 146, 107, 127, 132, 168, 112, 113, 135, 133, 126, 116, 133, 121, 129, 141, 112, 125, 127, 113, 123, 136, 116, 108, 123, 126, 113, 128, 113, 134, 125, 142, 123, 146, 122, 140, 153, 112, 133, 101, 126, 119, 128, 118, 115, 138, 132, 123, 124, 122, 152, 115, 120, 131, 135, 123, 120, 135, 136, 128, 135, 120, 116, 109, 137, 117, 117, 110, 106, 119, 122, 136, 123, 127, 109, 142, 110, 120, 112, 123, 125, 125, 135, 134, 123, 108, 124, 122, 131, 129, 118, 126, 138, 121, 122, 144, 123, 133, 126, 110, 119, 142, 137, 135, 122, 129, 128, 119, 116, 122, 133, 149, 122, 124, 120, 129, 130, 98, 116, 135, 138, 121, 112, 120, 125, 113, 134, 116, 136, 122, 122, 131, 126, 144, 121, 114, 121, 129, 135, 124, 121, 150, 128, 126, 119, 155, 136, 110, 139, 147, 131, 111, 132, 113, 129, 118, 126, 113, 136, 132, 126, 124, 122, 120, 116, 133, 123, 139, 121, 117, 139, 120, 122, 96, 134, 125, 134, 127, 120, 133, 118, 131, 108, 124, 125, 128, 109, 122, 137, 119, 131, 146, 120, 119, 127, 122, 130, 117, 133, 126, 111, 116, 140, 111, 128, 98, 130, 132, 114, 129, 109, 122, 128, 133, 111, 143, 112, 120, 119, 132, 127, 129, 132, 125, 136, 133, 107, 121, 132, 140, 134, 129, 101, 128, 129, 117, 128, 140, 120, 129, 116, 122, 119, 129, 112, 123, 124, 115, 111, 118, 128, 114, 120, 126, 131, 124, 128, 121, 130, 113, 125, 129, 131, 134, 126, 122, 144, 163, 141, 126, 124, 122, 108, 125, 115, 130, 115, 117, 139, 126, 140, 123, 119, 128, 122, 109, 115, 123, 127, 114, 118, 131, 123, 123, 151, 139, 117, 139, 125, 129, 141, 112, 124, 130, 126, 122, 118, 115, 121, 120, 138, 137, 136, 115, 118, 141, 125, 117, 145, 130, 114, 111, 139, 134, 117, 122, 120, 125, 141, 137, 129, 112, 128, 118, 119, 115, 119, 139, 111, 131, 128, 122, 130, 105, 123, 134, 135, 149, 128, 109, 131, 129, 129, 127, 119, 118, 125, 125, 132, 129, 123, 113, 149, 121, 117, 136, 129, 117, 134, 132, 115, 119, 135, 106, 115, 117, 114, 138, 130, 117, 148, 120, 133, 126, 125, 139, 124, 134, 135, 124, 116, 142, 126, 115, 147, 123, 120, 136, 133, 103, 129, 118, 155, 109, 133, 129, 145, 134, 127, 136, 129, 130, 130, 132, 110, 114, 133, 118, 139, 131, 141, 131, 143, 133, 148, 116, 131, 125, 120, 130, 132, 134, 139, 103, 133, 108, 129, 123, 126, 125, 131, 120, 135, 112, 136, 124, 125, 123, 133, 125, 127, 129, 120, 108, 119, 134, 133, 127, 116, 126, 125, 106, 140, 134, 142, 113, 119, 124, 134, 115, 121, 147, 127, 113, 132, 127, 134, 134, 116, 117, 137, 132, 133, 94, 119, 130, 104, 124, 104, 112, 128, 129, 119, 126, 127, 127, 143, 135, 125, 136, 117, 127, 123, 113, 127, 145, 121, 117, 136, 118, 127, 115, 111, 137, 122, 115, 130, 130, 124, 145, 126, 120, 140, 114, 143, 113, 114, 145, 111, 114, 136, 130, 131, 126, 122, 112, 125, 139, 112, 115, 137, 152, 125, 111, 115, 122, 134, 130, 134, 125, 124, 125, 128, 133, 125, 136, 104, 126, 110, 116, 119, 155, 118, 109, 121, 110, 121, 121, 116, 114, 122, 141, 140, 125, 121, 120, 128, 134, 117, 137, 124, 123, 134, 130, 131, 117, 130, 120, 123, 130, 127, 128, 111, 137, 123, 130, 124, 130, 121, 118, 123, 134, 137, 135, 136, 123, 116, 124, 110, 116, 117, 137, 129, 119, 127, 118, 123, 127, 135, 122, 136, 98, 148, 114, 127, 98, 117, 122, 117, 132, 118, 141, 133, 116, 117, 150, 149, 131, 129, 137, 113, 99, 122, 135, 115, 127, 113, 116, 112, 130, 123, 125, 141, 117, 139, 138, 133, 126, 134, 121, 135, 141, 122, 111, 137, 130, 113, 126, 111, 121, 138, 110, 148, 107, 108, 119, 133, 118, 118, 123, 138, 131, 147, 103, 115, 112, 125, 146, 126, 145, 129, 128, 141, 130, 116, 118, 120, 137, 120, 130, 144, 121, 129, 137, 121, 119, 132, 123, 157, 120, 137, 124, 109, 123, 110, 136, 137, 146, 117, 136, 129, 124, 113, 132, 110, 142, 126, 110, 128, 121, 115, 140, 126, 130, 105, 102, 115, 120, 121, 97, 129, 121, 124, 133, 135, 110, 118, 133, 126, 130, 117, 124, 140, 150, 129, 129, 114, 123, 116, 127, 131, 115, 107, 130, 125, 122, 123, 122, 161, 137, 121, 125, 109, 117, 115, 115, 128, 121, 117, 127, 120, 136, 119, 112, 157, 136, 124, 113, 124, 141, 134, 115, 144, 116, 123, 123, 138, 131, 146, 120, 147, 119, 122, 127, 122, 127, 123, 128, 123, 121, 118, 114, 128, 134, 114, 131, 112, 128, 138, 131, 133, 135, 118, 116, 110, 140, 115, 114, 125, 135, 114, 121, 120, 125, 130, 148, 117, 136, 130, 102, 119, 118, 113, 138, 111, 121, 140, 129, 136, 131, 128, 135, 131, 127, 134, 126, 122, 114, 129, 127, 134, 126, 128, 127, 119, 128, 126, 146, 99, 106, 140, 119, 124, 135, 130, 112, 125, 125, 123, 133, 131, 112, 132, 120, 118, 122, 130, 118, 101, 115, 127, 121, 130, 135, 121, 116, 127, 110, 126, 134, 106, 119, 116, 129, 139, 132, 138, 142, 110, 124, 123, 135, 126, 128, 112, 120, 140, 130, 125, 133, 140, 125, 115, 133, 125, 127, 135, 123, 117, 132, 125, 132, 137, 134, 104, 152, 122, 140, 120, 106, 128, 114, 123, 130, 121, 114, 125, 138, 131, 123, 109, 123, 141, 129, 134, 141, 132, 117, 127, 116, 121, 126, 134, 115, 122, 141, 124, 129, 120, 146, 129, 123, 143, 122, 120, 133, 120, 125, 119, 127, 136, 117, 120, 136, 118, 120, 131, 115, 136, 119, 130, 141, 115, 122, 116, 121, 120, 106, 120, 116, 126, 112, 112, 134, 123, 111, 129, 124, 116, 124, 125, 133, 128, 140, 117, 132, 128, 104, 130, 124, 129, 127, 114, 128, 124, 103, 140, 131, 142, 118, 124, 125, 125, 106, 112, 116, 116, 160, 136, 114, 114, 102, 130, 120, 120, 131, 133, 115, 107, 115, 124, 115, 114, 130, 140, 119, 128, 130, 121, 126, 130, 130, 133, 143, 135, 126, 124, 127, 141, 134, 144, 101, 122, 133, 114, 140, 128, 123, 117, 139, 110, 127, 124, 117, 129, 130, 119, 134, 139, 132, 121, 118, 109, 112, 113, 112, 146, 136, 122, 136, 124, 125, 108, 136, 132, 102, 162, 130, 121, 121, 128, 114, 123, 143, 132, 118, 105, 139, 125, 135, 129, 145, 122, 108, 139, 128, 139, 108, 135, 155, 143, 137, 147, 118, 123, 90, 113, 117, 118, 118, 120, 140, 132, 131, 129, 137, 112, 120, 120, 135, 143, 132, 140, 131, 150, 132, 106, 144, 134, 114, 129, 103, 145, 113, 137, 136, 129, 104, 134, 127, 123, 118, 150, 142, 131, 120, 140, 134, 120, 129, 116, 143, 135, 114, 92, 115, 134, 127, 118, 122, 128, 134, 132, 133, 128, 128, 129, 123, 121, 123, 133, 129, 114, 111, 112, 119, 121, 128, 120, 116, 136, 126, 129, 119, 130, 127, 120, 115, 125, 151, 129, 139, 126, 130, 127, 142, 122, 133, 115, 103, 117, 126, 121, 131, 128, 107, 118, 124, 117, 138, 106, 133, 128, 112, 120, 108, 120, 142, 117, 125, 103, 123, 129, 125, 118, 144, 122, 132, 123, 111, 127, 133, 124, 126, 119, 130, 137, 142, 114, 134, 130, 128, 134, 110, 123, 127, 122, 110, 110, 110, 104, 141, 141, 125, 127, 122, 105, 112, 120, 120, 123, 122, 122, 124, 122, 146, 119, 125, 125, 122, 117, 146, 127, 108, 124, 113, 126, 136, 125, 125, 121, 126, 123, 117, 137, 123, 126, 114, 132, 119, 109, 119, 126, 118, 122, 114, 118, 127, 118, 101, 114, 117, 142, 124, 148, 128, 123, 132, 123, 124, 135, 130, 125, 136, 118, 128, 139, 134, 94, 125, 140, 131, 116, 126, 130, 127, 134, 129, 132, 125, 135, 116, 122, 134, 118, 108, 136, 115, 127, 124, 118, 107, 141, 107, 109, 141, 131, 120, 123, 129, 135, 119, 137, 114, 130, 136, 119, 150, 131, 128, 110, 122, 127, 121, 137, 119, 146, 150, 137, 125, 126, 122, 136, 130, 135, 146, 130, 129, 109, 134, 125, 144, 129, 124, 131, 136, 104, 142, 127, 111, 123, 124, 133, 129, 129, 116, 133, 126, 131, 124, 113, 182, 125, 123, 110, 120, 131, 146, 119, 116, 131, 135, 125, 126, 121, 140, 146, 135, 143, 122, 121, 131, 129, 126, 135, 126, 123, 122, 117, 124, 117, 126, 118, 138, 117, 116, 110, 107, 134, 127, 119, 135, 136, 130, 123, 131, 130, 131, 142, 127, 119, 130, 121, 127, 120, 127, 134, 126, 134, 122, 126, 119, 134, 119, 128, 124, 124, 129, 114, 128, 124, 122, 146, 112, 137, 130, 111, 114, 120, 105, 113, 112, 121, 133, 126, 125, 126, 124, 135, 132, 131, 131, 128, 122, 136, 126, 123, 124, 122, 119, 134, 96, 148, 126, 139, 129, 140, 128, 118, 139, 124, 129, 121, 117, 121, 113, 111, 118, 113, 116, 134, 107, 123, 125, 126, 116, 113, 147, 131, 122, 128, 121, 132, 123, 109, 125, 125, 102, 133, 122, 106, 119, 129, 129, 123, 123, 122, 116, 120, 128, 102, 138, 126, 116, 96, 132, 121, 119, 116, 139, 116, 109, 127, 119, 121, 106, 109, 125, 125, 127, 143, 130, 142, 120, 123, 130, 142, 126, 134, 112, 123, 134, 133, 130, 139, 110, 117, 118, 124, 127, 122, 115, 124, 127, 135, 119, 123, 126, 139, 133, 117, 114, 109, 105, 121, 121, 125, 124, 122, 110, 122, 119, 127, 105, 121, 101, 136, 124, 121, 126, 105, 130, 131, 122, 121, 140, 124, 132, 131, 116, 122, 110, 119, 121, 113, 126, 136, 120, 132, 139, 127, 126, 127, 121, 130, 129, 135, 144, 117, 133, 125, 130, 106, 122, 122, 140, 129, 130, 115, 133, 116, 118, 103, 121, 147, 114, 124, 142, 126, 135, 126, 112, 126, 111, 121, 126, 133, 121, 122, 130, 127, 132, 134, 113, 128, 116, 119, 122, 132, 125, 125, 140, 147, 111, 127, 127, 126, 124, 117, 122, 125, 145, 120, 124, 132, 132, 125, 116, 127, 141, 135, 116, 131, 120, 112, 118, 158, 119, 131, 121, 122, 134, 129, 141, 104, 118, 128, 127, 141, 127, 113, 134, 128, 117, 127, 124, 121, 121, 131, 106, 103, 121, 109, 121, 128, 115, 139, 120, 124, 130, 111, 147, 113, 122, 124, 128, 133, 121, 130, 132, 152, 127, 116, 125, 117, 124, 100, 128, 122, 122, 135, 140, 124, 148, 130, 125, 132, 130, 155, 125, 130, 113, 122, 133, 129, 135, 125, 137, 127, 119, 126, 148, 146, 120, 123, 110, 123, 143, 135, 135, 141, 130, 112, 115, 118, 107, 144, 120, 134, 128, 131, 120, 139, 108, 112, 125, 129, 137, 120, 116, 140, 117, 142, 126, 126, 124, 125, 135, 147, 106, 115, 117, 124, 112, 127, 128, 119, 128, 111, 125, 129, 118, 133, 104, 152, 118, 122, 117, 130, 133, 141, 114, 112, 153, 125, 122, 130, 143, 118, 125, 135, 125, 116, 117, 121, 124, 131, 109, 134, 127, 141, 147, 125, 117, 116, 144, 127, 131, 103, 144, 131, 115, 111, 137, 138, 122, 128, 115, 121, 111, 110, 120, 109, 127, 130, 128, 128, 120, 117, 136, 128, 122, 122, 115, 113, 121, 128, 129, 125, 124, 110, 127, 122, 141, 123, 150, 118, 124, 148, 122, 125, 119, 144, 133, 104, 117, 135, 122, 98, 118, 130, 140, 135, 111, 137, 111, 117, 126, 122, 100, 123, 125, 147, 117, 145, 121, 137, 139, 128, 131, 121, 122, 129, 139, 130, 136, 120, 129, 124, 128, 135, 136, 120, 145, 110, 118, 130, 117, 116, 137, 123, 121, 120, 120, 139, 150, 139, 127, 122, 116, 135, 147, 121, 121, 135, 138, 123, 126, 132, 131, 117, 138, 116, 126, 128, 137, 126, 120, 134, 122, 135, 134, 125, 137, 141, 140, 145, 126, 123, 111, 115, 126, 131, 118, 121, 121, 129, 123, 123, 127, 133, 115, 141, 131, 120, 139, 111, 121, 141, 121, 119, 129, 147, 117, 118, 115, 121, 106, 123, 131, 128, 122, 128, 109, 122, 96, 127, 120, 117, 147, 109, 140, 129, 126, 126, 122, 141, 136, 119, 126, 119, 126, 131, 120, 136, 135, 137, 133, 134, 116, 146, 131, 122, 126, 128, 132, 140, 137, 115, 133, 152, 128, 127, 135, 129, 126, 132, 120, 132, 117, 136, 133, 121, 131, 125, 117, 114, 132, 108, 111, 147, 110, 128, 141, 140, 133, 115, 118, 133, 123, 126, 128, 119, 118, 128, 138, 135, 124, 137, 118, 128, 123, 136, 142, 110, 118, 108, 135, 139, 132, 124, 153, 127, 136, 120, 124, 123, 129, 113, 124, 126, 118, 130, 114, 125, 118, 133, 114, 145, 123, 115, 104, 131, 138, 135, 134, 123, 136, 122, 129, 136, 120, 131, 119, 116, 140, 119, 126, 145, 134, 126, 138, 124, 124, 130, 124, 125, 115, 123, 114, 134, 128, 131, 146, 124, 137, 119, 153, 129, 103, 130, 122, 123, 125, 128, 120, 113, 139, 122, 118, 120, 112, 133, 145, 127, 132, 128, 140, 118, 128, 126, 130, 111, 140, 129, 114, 121, 131, 122, 119, 118, 116, 124, 120, 111, 134, 130, 119, 107, 113, 127, 131, 120, 135, 136, 126, 131, 133, 114, 121, 117, 108, 113, 108, 107, 121, 117, 118, 136, 137, 140, 125, 125, 117, 130, 123, 133, 118, 130, 126, 109, 125, 141, 138, 111, 136, 118, 126, 137, 137, 140, 127, 101, 118, 104, 122, 125, 111, 122, 137, 114, 112, 128, 133, 141, 115, 95, 122, 121, 145, 117, 117, 107, 121, 144, 147, 116, 119, 113, 128, 127, 131, 131, 114, 131, 123, 131, 127, 146, 113, 115, 107, 133, 117, 124, 128, 136, 132, 127, 132, 123, 124, 122, 118, 130, 118, 112, 103, 98, 126, 114, 101, 110, 135, 125, 149, 115, 141, 138, 119, 114, 133, 126, 125, 132, 128, 118, 135, 110, 138, 120, 124, 137, 117, 127, 127, 137, 99, 137, 123, 95, 119, 117, 123, 128, 129, 108, 120, 109, 101, 122, 117, 126, 132, 140, 112, 114, 122, 136, 122, 147, 132, 116, 143, 100, 134, 119, 128, 125, 126, 130, 147, 135, 129, 135, 142, 126, 113, 126, 106, 117, 118, 120, 116, 126, 123, 134, 138, 124, 127, 128, 124, 110, 121, 142, 126, 125, 128, 105, 107, 109, 143, 127, 121, 141, 115, 127, 114, 114, 136, 108, 134, 101, 125, 118, 136, 127, 135, 132, 113, 140, 112, 134, 140, 121, 131, 121, 127, 131, 134, 128, 129, 127, 135, 128, 127, 124, 157, 130, 138, 123, 125, 129, 142, 116, 139, 116, 129, 154, 136, 120, 100, 106, 109, 123, 131, 131, 113, 142, 121, 134, 122, 148, 110, 124, 103, 122, 133, 104, 138, 125, 143, 118, 127, 114, 124, 125, 130, 141, 109, 123, 128, 122, 145, 125, 122, 146, 134, 134, 139, 119, 140, 118, 131, 144, 117, 118, 129, 117, 118, 133, 132, 125, 122, 119, 140, 141, 128, 138, 137, 118, 119, 141, 121, 133, 119, 109, 141, 123, 111, 124, 156, 122, 134, 103, 131, 119, 116, 119, 147, 106, 117, 120, 139, 140, 133, 144, 133, 113, 124, 138, 116, 130, 120, 134, 131, 146, 146, 122, 122, 125, 113, 128, 125, 143, 124, 103, 113, 137, 113, 137, 118, 130, 107, 139, 144, 134, 133, 133, 116, 106, 125, 123, 138, 118, 132, 114, 121, 100, 128, 147, 128, 122, 134, 115, 118, 118, 105, 119, 120, 129, 133, 132, 112, 140, 132, 138, 118, 118, 127, 122, 142, 134, 132, 110, 123, 135, 118, 108, 137, 113, 120, 119, 123, 124, 117, 129, 149, 127, 122, 134, 130, 112, 133, 131, 117, 115, 115, 114, 122, 111, 117, 90, 136, 131, 110, 148, 139, 125, 123, 89, 132, 122, 121, 120, 127, 134, 122, 130, 106, 118, 124, 120, 129, 125, 131, 131, 119, 126, 125, 115, 116, 117, 136, 112, 119, 127, 116, 123, 124, 129, 108, 122, 126, 125, 113, 123, 125, 125, 132, 124, 129, 123, 132, 130, 129, 147, 118, 114, 117, 132, 126, 106, 137, 132, 126, 136, 110, 129, 130, 134, 136, 136, 122, 124, 111, 113, 137, 139, 136, 133, 128, 127, 116, 134, 126, 121, 119, 125, 136, 117, 126, 111, 127, 146, 134, 154, 124, 124, 141, 140, 114, 108, 134, 103, 126, 121, 120, 130, 123, 115, 140, 119, 147, 113, 116, 122, 131, 119, 119, 134, 133, 135, 117, 134, 128, 121, 135, 125, 127, 144, 104, 142, 130, 110, 141, 136, 128, 150, 133, 104, 118, 120, 118, 120, 125, 125, 130, 121, 115, 129, 118, 114, 112, 124, 135, 151, 105, 130, 145, 127, 121, 126, 128, 125, 135, 129, 123, 123, 120, 134, 108, 138, 120, 134, 131, 138, 125, 122, 103, 119, 108, 123, 132, 139, 117, 123, 119, 125, 128, 126, 119, 147, 141, 115, 134, 132, 111, 130, 123, 121, 109, 131, 120, 124, 126, 129, 104, 123, 110, 135, 124, 123, 126, 130, 137, 124, 131, 122, 108, 124, 126, 114, 121, 128, 122, 119, 113, 127, 132, 130, 138, 106, 122, 130, 122, 145, 146, 132, 127, 120, 127, 125, 128, 100, 130, 135, 138, 137, 117, 125, 113, 126, 123, 99, 125, 122, 118, 119, 121, 130, 146, 138, 113, 108, 105, 126, 127, 121, 110, 114, 140, 136, 116, 123, 126, 128, 136, 122, 113, 122, 135, 121, 136, 119, 128, 131, 87, 120, 135, 124, 126, 143, 118, 112, 131, 132, 112, 141, 115, 123, 145, 122, 119, 126, 129, 130, 156, 128, 121, 125, 106, 126, 145, 135, 118, 129, 125, 128, 137, 137, 134, 138, 110, 125, 131, 132, 138, 126, 103, 134, 135, 115, 125, 136, 113, 111, 139, 131, 121, 143, 116, 117, 114, 135, 115, 132, 124, 97, 129, 110, 135, 151, 150, 133, 131, 135, 132, 123, 107, 137, 112, 118, 115, 116, 114, 107, 135, 152, 131, 136, 135, 129, 120, 132, 143, 127, 129, 125, 152, 124, 125, 130, 107, 131, 115, 131, 121, 128, 134, 124, 125, 133, 110, 140, 126, 140, 132, 131, 130, 131, 131, 126, 111, 105, 108, 132, 112, 122, 135, 124, 123, 123, 132, 125, 128, 106, 129, 142, 129, 105, 134, 118, 132, 128, 129, 142, 128, 110, 123, 118, 137, 126, 133, 109, 141, 144, 119, 131, 130, 110, 115, 141, 146, 129, 111, 141, 125, 144, 132, 114, 130, 128, 117, 134, 118, 118, 128, 119, 119, 126, 115, 124, 121, 135, 143, 122, 132, 113, 154, 119, 119, 135, 117, 112, 119, 115, 126, 140, 139, 130, 124, 119, 105, 120, 130, 124, 131, 135, 140, 134, 119, 109, 120, 113, 131, 123, 143, 130, 125, 141, 120, 142, 118, 115, 112, 103, 137, 129, 131, 138, 130, 135, 121, 115, 125, 136, 101, 143, 133, 122, 136, 125, 118, 136, 117, 129, 115, 130, 131, 133, 128, 147, 134, 137, 137, 128, 136, 125, 119, 126, 138, 122, 119, 118, 155, 128, 135, 124, 115, 123, 127, 126, 132, 135, 135, 131, 126, 138, 133, 121, 130, 129, 120, 130, 116, 140, 122, 124, 143, 133, 149, 115, 119, 115, 122, 119, 131, 112, 126, 131, 120, 121, 133, 122, 137, 124, 118, 126, 130, 109, 136, 127, 144, 136, 125, 130, 113, 122, 108, 130, 114, 143, 123, 132, 118, 152, 122, 130, 110, 127, 133, 140, 129, 125, 131, 127, 105, 119, 116, 132, 119, 121, 115, 116, 129, 114, 133, 145, 122, 133, 116, 133, 118, 111, 110, 136, 121, 115, 127, 133, 133, 123, 121, 121, 115, 123, 127, 111, 114, 121, 134, 124, 115, 118, 135, 119, 124, 124, 121, 127, 147, 127, 128, 157, 130, 112, 116, 130, 130, 126, 128, 115, 121, 129, 120, 126, 120, 126, 128, 129, 123, 116, 126, 137, 125, 118, 128, 118, 127, 132, 136, 132, 135, 140, 133, 116, 134, 138, 117, 147, 128, 147, 119, 124, 128, 121, 143, 105, 139, 100, 143, 111, 119, 114, 119, 119, 129, 119, 124, 126, 134, 125, 103, 127, 129, 124, 107, 145, 112, 108, 123, 148, 119, 146, 115, 131, 119, 123, 123, 131, 129, 120, 141, 101, 125, 124, 134, 120, 124, 120, 142, 102, 124, 116, 124, 116, 134, 132, 122, 116, 112, 119, 141, 123, 118, 124, 130, 126, 121, 132, 119, 131, 113, 138, 119, 123, 140, 129, 129, 124, 127, 140, 121, 135, 130, 106, 122, 105, 120, 118, 127, 132, 143, 127, 139, 109, 130, 121, 125, 127, 122, 114, 124, 117, 125, 131, 123, 123, 133, 118, 140, 121, 119, 141, 135, 138, 144, 149, 120, 124, 150, 129, 136, 133, 134, 117, 130, 132, 135, 128, 126, 119, 139, 128, 126, 140, 154, 123, 112, 120, 109, 132, 141, 142, 120, 130, 118, 119, 107, 128, 127, 139, 110, 134, 127, 111, 115, 129, 141, 107, 114, 113, 105, 124, 139, 131, 128, 132, 139, 135, 108, 119, 134, 138, 112, 135, 129, 128, 115, 130, 125, 130, 135, 121, 113, 123, 137, 138, 111, 142, 125, 122, 140, 111, 125, 132, 124, 139, 128, 92, 115, 141, 139, 119, 118, 121, 129, 129, 120, 121, 119, 115, 137, 140, 134, 126, 126, 126, 119, 132, 120, 111, 132, 115, 117, 118, 120, 104, 128, 133, 134, 142, 118, 114, 116, 118, 169, 127, 146, 119, 123, 142, 128, 119, 141, 129, 134, 107, 120, 108, 120, 133, 123, 133, 131, 142, 133, 131, 134, 124, 107, 126, 127, 124, 110, 120, 112, 131, 144, 124, 135, 122, 111, 119, 136, 122, 130, 145, 118, 120, 128, 123, 114, 136, 128, 121, 130, 129, 135, 123, 130, 106, 118, 119, 117, 135, 127, 97, 112, 120, 122, 121, 121, 123, 125, 105, 122, 118, 121, 129, 126, 139, 112, 135, 139, 149, 128, 132, 143, 111, 116, 122, 114, 129, 142, 124, 136, 115, 134, 139, 132, 119, 115, 128, 116, 112, 110, 127, 125, 137, 137, 129, 137, 145, 107, 123, 130, 107, 118, 129, 130, 131, 126, 127, 123, 158, 129, 137, 136, 131, 136, 135, 130, 123, 120, 125, 124, 129, 117, 117, 125, 141, 124, 107, 141, 146, 132, 128, 122, 120, 122, 115, 139, 107, 117, 121, 134, 131, 126, 136, 114, 139, 115, 148, 113, 120, 126, 120, 107, 114, 126, 128, 118, 109, 126, 126, 134, 126, 128, 121, 118, 134, 123, 127, 138, 119, 131, 127, 114, 137, 120, 122, 134, 112, 121, 119, 130, 136, 122, 107, 140, 119, 107, 127, 131, 113, 126, 112, 140, 103, 134, 132, 123, 134, 126, 131, 120, 120, 101, 109, 143, 125, 120, 133, 122, 131, 138, 116, 121, 152, 138, 122, 129, 117, 127, 127, 114, 134, 138, 116, 112, 132, 125, 132, 127, 133, 121, 127, 94, 146, 130, 134, 118, 138, 133, 142, 133, 147, 142, 132, 121, 128, 104, 120, 120, 128, 134, 139, 129, 119, 126, 134, 130, 154, 130, 132, 130, 132, 136, 130, 116, 118, 134, 126, 111, 140, 134, 129, 126, 137, 134, 108, 129, 115, 130, 134, 130, 141, 136, 124, 133, 125, 131, 127, 134, 120, 124, 115, 116, 139, 122, 128, 127, 117, 116, 141, 117, 151, 118, 116, 96, 116, 132, 120, 131, 108, 137, 114, 128, 115, 147, 120, 124, 143, 127, 144, 116, 126, 120, 147, 112, 105, 120, 144, 123, 120, 117, 122, 123, 115, 112, 117, 111, 113, 156, 123, 138, 131, 128, 144, 114, 141, 132, 128, 124, 124, 146, 117, 132, 137, 129, 116, 137, 120, 143, 124, 133, 141, 131, 114, 132, 131, 112, 115, 122, 125, 118, 118, 124, 119, 123, 127, 110, 122, 131, 141, 118, 134, 126, 140, 129, 113, 105, 136, 125, 112, 135, 120, 110, 141, 127, 133, 120, 132, 133, 137, 111, 122, 105, 137, 134, 120, 115, 114, 120, 117, 129, 120, 145, 154, 121, 125, 136, 120, 129, 145, 131, 120, 121, 130, 124, 116, 130, 121, 113, 123, 125, 129, 132, 133, 138, 140, 123, 130, 149, 143, 124, 109, 134, 104, 129, 124, 136, 130, 123, 119, 104, 134, 131, 129, 125, 117, 109, 124, 116, 124, 103, 116, 131, 117, 136, 126, 108, 126, 131, 110, 114, 130, 123, 131, 142, 130, 131, 129, 145, 121, 121, 121, 142, 118, 124, 119, 111, 135, 119, 119, 128, 138, 118, 123, 129, 125, 134, 121, 112, 108, 125, 123, 136, 121, 123, 116, 146, 135, 140, 108, 124, 117, 129, 133, 140, 124, 126, 132, 133, 111, 136, 128, 121, 123, 118, 132, 134, 126, 123, 114, 115, 122, 130, 121, 125, 126, 135, 123, 108, 141, 115, 126, 144, 132, 114, 124, 116, 138, 127, 135, 124, 124, 129, 139, 129, 135, 138, 122, 109, 118, 121, 126, 113, 132, 138, 120, 121, 137, 130, 121, 134, 127, 89, 118, 143, 112, 116, 119, 116, 117, 122, 132, 131, 127, 122, 128, 131, 132, 139, 119, 138, 113, 118, 121, 127, 135, 133, 137, 120, 123, 130, 117, 121, 127, 125, 142, 152, 144, 126, 141, 142, 131, 131, 134, 122, 131, 119, 135, 129, 125, 114, 120, 125, 126, 130, 121, 111, 97, 118, 116, 121, 128, 122, 119, 116, 112, 102, 122, 130, 125, 133, 129, 131, 125, 122, 120, 131, 119, 118, 131, 143, 106, 104, 120, 105, 109, 129, 120, 144, 116, 115, 117, 104, 113, 120, 137, 121, 115, 124, 128, 119, 119, 134, 126, 124, 126, 105, 131, 126, 121, 140, 142, 140, 149, 141, 118, 109, 115, 129, 119, 117, 145, 119, 113, 100, 118, 124, 140, 136, 125, 126, 125, 132, 127, 116, 123, 126, 133, 119, 111, 141, 130, 123, 110, 128, 124, 124, 132, 129, 123, 108, 115, 129, 129, 127, 125, 122, 130, 120, 112, 139, 117, 141, 126, 116, 127, 146, 131, 120, 119, 142, 114, 124, 127, 119, 112, 146, 132, 128, 128, 153, 137, 117, 135, 116, 115, 136, 117, 122, 136, 134, 131, 128, 115, 126, 138, 114, 130, 118, 129, 117, 123, 119, 122, 124, 112, 116, 124, 124, 132, 139, 116, 132, 123, 121, 118, 116, 123, 137, 127, 128, 120, 117, 145, 132, 136, 134, 142, 123, 135, 106, 111, 122, 132, 125, 146, 111, 126, 132, 131, 121, 124, 125, 129, 127, 143, 124, 149, 135, 99, 136, 112, 122, 136, 121, 109, 123, 132, 119, 117, 126, 125, 136, 127, 121, 134, 131, 125, 124, 130, 123, 120, 112, 92, 129, 128, 131, 134, 131, 126, 134, 129, 141, 115, 117, 128, 138, 123, 125, 122, 122, 116, 134, 130, 117, 125, 110, 130, 127, 136, 121, 135, 130, 130, 133, 131, 120, 109, 145, 135, 126, 131, 136, 127, 138, 115, 113, 122, 126, 125, 125, 115, 129, 124, 132, 142, 101, 118, 132, 134, 133, 122, 124, 130, 138, 145, 120, 140, 108, 135, 124, 134, 138, 121, 134, 127, 98, 117, 140, 128, 119, 121, 125, 109, 113, 119, 149, 110, 127, 107, 124, 152, 128, 116, 116, 138, 117, 137, 134, 118, 130, 131, 120, 127, 140, 130, 140, 97, 116, 126, 114, 129, 118, 113, 131, 117, 118, 116, 118, 133, 133, 126, 123, 124, 115, 128, 127, 103, 109, 122, 116, 119, 127, 113, 114, 133, 127, 95, 133, 137, 125, 134, 126, 120, 122, 118, 118, 122, 127, 113, 114, 132, 122, 126, 110, 121, 125, 129, 124, 137, 148, 112, 135, 137, 128, 109, 133, 113, 123, 124, 133, 117, 130, 125, 136, 130, 113, 128, 118, 136, 124, 119, 124, 113, 118, 114, 125, 122, 134, 113, 115, 117, 138, 117, 120, 141, 147, 122, 137, 120, 128, 128, 129, 121, 114, 122, 122, 146, 120, 133, 127, 120, 116, 149, 125, 135, 136, 129, 118, 117, 102, 121, 120, 125, 110, 113, 133, 132, 134, 124, 130, 128, 118, 135, 135, 133, 110, 119, 152, 129, 126, 122, 134, 121, 126, 128, 120, 118, 107, 138, 131, 154, 114, 132, 129, 139, 133, 125, 121, 119, 122, 136, 114, 117, 120, 116, 118, 122, 117, 126, 142, 123, 137, 130, 127, 122, 122, 122, 138, 132, 139, 118, 149, 123, 120, 134, 132, 135, 134, 125, 127, 117, 120, 139, 124, 124, 124, 146, 128, 127, 133, 128, 125, 131, 124, 117, 121, 135, 122, 122, 125, 145, 114, 145, 121, 119, 145, 118, 125, 141, 132, 119, 118, 126, 129, 119, 114, 141, 122, 129, 110, 124, 129, 132, 104, 131, 125, 120, 148, 127, 130, 118, 111, 137, 128, 127, 132, 128, 118, 119, 137, 135, 120, 115, 127, 133, 144, 147, 132, 125, 111, 126, 128, 117, 144, 121, 126, 125, 130, 139, 107, 103, 118, 154, 118, 90, 128, 116, 121, 123, 127, 134, 119, 126, 119, 128, 113, 112, 114, 122, 129, 132, 125, 134, 119, 127, 144, 124, 126, 147, 126, 125, 137, 112, 114, 115, 138, 134, 134, 131, 127, 135, 142, 128, 140, 124, 108, 125, 127, 114, 139, 115, 130, 123, 127, 129, 132, 142, 130, 118, 135, 134, 117, 113, 137, 131, 123, 129, 110, 122, 117, 116, 151, 121, 122, 121, 127, 131, 128, 133, 111, 125, 135, 122, 126, 103, 124, 111, 116, 127, 134, 126, 118, 143, 112, 131, 117, 112, 123, 107, 119, 125, 125, 128, 128, 121, 126, 125, 125, 130, 126, 119, 123, 139, 120, 105, 131, 145, 134, 134, 106, 124, 132, 119, 123, 131, 114, 116, 120, 129, 121, 128, 109, 109, 134, 135, 113, 153, 130, 138, 132, 127, 122, 117, 112, 114, 122, 118, 133, 137, 123, 117, 140, 118, 112, 119, 139, 121, 125, 136, 134, 127, 119, 118, 114, 119, 118, 107, 135, 146, 139, 135, 124, 120, 141, 127, 130, 132, 112, 148, 115, 133, 131, 124, 123, 115, 132, 131, 111, 125, 133, 124, 141, 138, 112, 129, 127, 134, 123, 118, 122, 122, 127, 148, 111, 121, 121, 121, 120, 128, 129, 137, 132, 135, 137, 127, 132, 107, 131, 129, 110, 123, 130, 114, 123, 122, 137, 117, 139, 132, 128, 145, 112, 123, 122, 123, 129, 125, 115, 124, 143, 117, 111, 146, 129, 128, 123, 128, 109, 137, 126, 134, 122, 112, 135, 117, 116, 133, 125, 130, 131, 130, 131, 131, 117, 125, 128, 120, 139, 129, 109, 117, 155, 137, 144, 126, 135, 114, 132, 124, 123, 122, 119, 124, 131, 123, 124, 120, 144, 123, 116, 120, 122, 147, 127, 126, 114, 140, 116, 123, 125, 110, 135, 120, 121, 133, 135, 146, 135, 117, 133, 129, 119, 121, 130, 112, 129, 142, 135, 112, 136, 126, 111, 133, 127, 131, 145, 127, 106, 122, 133, 133, 134, 138, 110, 102, 118, 129, 128, 123, 125, 131, 112, 110, 141, 142, 115, 138, 129, 140, 130, 126, 127, 153, 123, 131, 134, 127, 126, 134, 110, 123, 145, 139, 127, 137, 124, 126, 130, 113, 134, 139, 134, 136, 143, 123, 106, 137, 143, 110, 123, 147, 131, 124, 112, 141, 107, 137, 112, 137, 132, 133, 124, 133, 130, 111, 111, 118, 133, 119, 119, 113, 122, 124, 124, 109, 132, 123, 125, 105, 125, 137, 125, 115, 111, 139, 118, 130, 134, 128, 131, 141, 129, 118, 134, 112, 128, 108, 115, 117, 141, 127, 134, 122, 106, 148, 123, 113, 134, 125, 118, 128, 120, 135, 119, 120, 147, 132, 112, 115, 130, 118, 119, 127, 141, 125, 98, 143, 123, 123, 142, 116, 133, 119, 132, 140, 139, 133, 129, 118, 124, 124, 130, 152, 138, 144, 118, 115, 120, 115, 116, 105, 99, 117, 129, 126, 135, 150, 110, 114, 143, 129, 135, 121, 127, 126, 134, 127, 122, 137, 119, 126, 114, 128, 120, 124, 125, 115, 130, 137, 145, 131, 115, 131, 137, 118, 124, 125, 119, 123, 125, 126, 133, 137, 106, 131, 121, 117, 115, 129, 129, 122, 141, 124, 140, 117, 150, 131, 119, 114, 137, 138, 119, 118, 128, 137, 131, 139, 118, 117, 129, 113, 121, 134, 131, 152, 123, 146, 133, 118, 135, 115, 126, 154, 133, 135, 112, 118, 128, 140, 138, 127, 134, 140, 121, 123, 122, 114, 126, 114, 120, 139, 131, 118, 126, 121, 113, 137, 119, 150, 135, 117, 124, 114, 138, 111, 128, 111, 132, 123, 128, 137, 121, 102, 142, 141, 113, 127, 139, 113, 146, 94, 115, 123, 132, 124, 117, 146, 115, 118, 110, 110, 123, 119, 116, 129, 121, 121, 131, 123, 138, 123, 119, 125, 126, 120, 140, 128, 123, 117, 147, 113, 122, 127, 125, 129, 133, 142, 121, 125, 123, 118, 124, 113, 124, 117, 147, 135, 123, 128, 117, 129, 123, 121, 113, 132, 123, 95, 135, 99, 115, 125, 128, 128, 122, 103, 125, 119, 129, 122, 123, 118, 112, 140, 131, 127, 98, 120, 134, 116, 122, 123, 135, 130, 134, 125, 110, 120, 138, 147, 105, 145, 134, 117, 125, 138, 118, 140, 114, 135, 121, 132, 118, 138, 90, 128, 122, 116, 137, 111, 133, 121, 119, 99, 136, 127, 126, 142, 117, 123, 116, 136, 110, 122, 124, 137, 115, 142, 117, 121, 122, 121, 126, 116, 129, 105, 101, 134, 133, 128, 141, 121, 134, 134, 125, 120, 146, 128, 138, 123, 130, 122, 137, 117, 128, 110, 126, 133, 126, 112, 113, 129, 123, 128, 125, 125, 110, 125, 122, 126, 117, 130, 119, 121, 123, 120, 105, 111, 116, 110, 126, 106, 132, 114, 123, 116, 154, 123, 112, 136, 122, 126, 132, 126, 144, 115, 125, 120, 126, 130, 136, 135, 140, 132, 125, 124, 127, 126, 121, 116, 117, 101, 125, 114, 118, 116, 114, 144, 110, 116, 137, 125, 127, 133, 120, 131, 121, 127, 118, 118, 119, 132, 151, 140, 149, 144, 110, 128, 134, 129, 126, 119, 107, 115, 146, 117, 129, 109, 135, 126, 128, 117, 124, 128, 146, 105, 123, 133, 126, 130, 128, 125, 144, 136, 120, 127, 122, 118, 131, 114, 99, 127, 136, 126, 106, 143, 124, 118, 129, 126, 106, 118, 120, 125, 141, 118, 132, 132, 115, 118, 118, 127, 134, 127, 115, 108, 119, 119, 107, 129, 111, 123, 131, 124, 141, 137, 118, 113, 134, 120, 145, 122, 142, 117, 110, 104, 108, 132, 124, 131, 138, 121, 130, 136, 136, 124, 122, 129, 124, 123, 125, 140, 98, 122, 123, 145, 125, 127, 147, 121, 121, 117, 106, 120, 125, 124, 106, 123, 121, 118, 133, 139, 117, 128, 125, 139, 115, 113, 120, 110, 129, 130, 124, 132, 121, 123, 127, 137, 126, 140, 135, 127, 111, 125, 129, 130, 147, 134, 130, 120, 138, 135, 117, 113, 133, 126, 132, 138, 115, 125, 135, 116, 150, 124, 137, 130, 116, 110, 113, 108, 121, 120, 125, 129, 140, 119, 134, 112, 160, 126, 124, 118, 135, 130, 120, 143, 136, 128, 121, 137, 126, 137, 116, 109, 133, 136, 113, 132, 132, 140, 114, 113, 131, 137, 108, 131, 122, 118, 148, 125, 118, 137, 121, 117, 125, 114, 121, 135, 118, 126, 110, 122, 144, 125, 129, 128, 120, 121, 125, 123, 118, 158, 125, 112, 115, 122, 132, 133, 127, 118, 131, 118, 135, 129, 108, 134, 145, 132, 105, 147, 130, 113, 127, 129, 115, 122, 124, 131, 116, 128, 129, 115, 133, 111, 105, 118, 134, 126, 140, 124, 134, 111, 99, 113, 106, 116, 143, 111, 103, 142, 143, 110, 123, 142, 147, 116, 139, 121, 123, 144, 119, 121, 132, 136, 115, 98, 126, 115, 117, 131, 121, 133, 130, 138, 122, 135, 124, 118, 128, 125, 117, 121, 119, 141, 141, 130, 151, 119, 109, 131, 126, 141, 129, 151, 132, 122, 113, 121, 134, 135, 125, 129, 129, 117, 132, 128, 125, 134, 133, 125, 139, 103, 121, 131, 115, 124, 122, 144, 133, 115, 119, 122, 130, 118, 130, 132, 124, 119, 130, 112, 131, 116, 123, 129, 140, 122, 116, 120, 135, 119, 141, 105, 106, 120, 146, 148, 125, 118, 118, 114, 130, 135, 116, 118, 119, 134, 146, 140, 120, 126, 119, 116, 137, 121, 142, 131, 127, 123, 139, 115, 114, 119, 135, 113, 125, 126, 111, 112, 116, 116, 121, 137, 108, 127, 133, 134, 128, 116, 122, 117, 109, 129, 126, 117, 127, 107, 138, 140, 139, 124, 118, 124, 141, 128, 147, 92, 130, 136, 113, 126, 151, 108, 126, 124, 142, 107, 95, 143, 108, 129, 122, 133, 136, 110, 124, 129, 119, 122, 132, 142, 129, 111, 133, 143, 121, 132, 133, 138, 140, 128, 149, 118, 141, 132, 135, 137, 123, 117, 125, 123, 111, 141, 126, 116, 128, 126, 120, 117, 120, 121, 134, 129, 128, 135, 118, 127, 114, 123, 135, 129, 137, 112, 143, 141, 113, 130, 114, 120, 121, 116, 113, 147, 122, 119, 130, 116, 116, 122, 116, 135, 138, 123, 129, 126, 117, 101, 114, 127, 128, 107, 128, 104, 130, 129, 125, 135, 107, 129, 106, 121, 112, 127, 132, 119, 140, 139, 116, 141, 121, 107, 121, 115, 113, 121, 126, 119, 112, 142, 130, 120, 151, 126, 121, 123, 144, 126, 116, 119, 116, 120, 128, 137, 146, 121, 117, 117, 144, 137, 120, 116, 130, 122, 127, 115, 137, 116, 129, 119, 125, 135, 120, 128, 106, 136, 120, 126, 123, 142, 125, 132, 116, 130, 138, 123, 100, 121, 123, 134, 107, 129, 116, 132, 121, 130, 104, 129, 129, 120, 129, 125, 128, 124, 112, 122, 124, 112, 130, 129, 128, 121, 142, 113, 121, 130, 110, 119, 158, 113, 122, 128, 118, 109, 132, 125, 130, 117, 122, 125, 129, 113, 125, 111, 153, 114, 108, 138, 135, 137, 114, 133, 134, 124, 136, 114, 136, 147, 113, 131, 117, 133, 121, 121, 147, 125, 117, 130, 130, 129, 134, 109, 141, 120, 139, 122, 132, 138, 114, 144, 145, 120, 125, 125, 126, 116, 128, 128, 130, 127, 127, 143, 125, 119, 117, 126, 117, 108, 112, 128, 122, 113, 111, 122, 115, 135, 131, 128, 142, 124, 129, 124, 143, 128, 129, 107, 118, 136, 131, 128, 114, 119, 117, 127, 139, 133, 129, 117, 120, 131, 130, 129, 111, 128, 125, 114, 124, 126, 117, 110, 134, 135, 126, 131, 117, 114, 107, 133, 121, 124, 121, 105, 131, 126, 114, 124, 119, 122, 134, 123, 136, 123, 113, 129, 124, 115, 126, 122, 132, 135, 133, 128, 121, 137, 118, 126, 139, 136, 115, 127, 103, 135, 144, 113, 121, 138, 117, 100, 118, 131, 131, 125, 111, 113, 131, 120, 115, 140, 123, 115, 112, 106, 115, 131, 116, 124, 124, 126, 124, 125, 114, 136, 121, 123, 115, 134, 126, 143, 132, 126, 131, 127, 119, 134, 135, 136, 136, 127, 106, 111, 134, 142, 103, 122, 130, 129, 129, 123, 118, 135, 136, 131, 132, 129, 125, 126, 129, 112, 128, 123, 110, 119, 132, 129, 127, 137, 120, 126, 118, 129, 138, 127, 116, 143, 123, 132, 151, 134, 140, 118, 142, 140, 148, 116, 128, 125, 113, 107, 127, 134, 116, 109, 132, 135, 115, 135, 127, 133, 130, 126, 125, 127, 144, 108, 121, 125, 140, 124, 135, 128, 105, 132, 133, 108, 144, 117, 131, 121, 109, 143, 119, 115, 130, 116, 146, 126, 129, 114, 128, 151, 128, 125, 134, 105, 104, 124, 150, 119, 128, 101, 116, 123, 130, 124, 110, 122, 134, 122, 135, 131, 116, 96, 120, 138, 103, 135, 112, 104, 132, 121, 125, 118, 139, 134, 129, 118, 124, 112, 131, 126, 121, 120, 127, 132, 130, 131, 119, 112, 121, 135, 133, 132, 134, 130, 118, 130, 118, 123, 123, 132, 129, 94, 115, 104, 124, 132, 126, 121, 121, 118, 125, 120, 131, 117, 118, 128, 117, 111, 130, 116, 120, 125, 115, 128, 131, 125, 123, 119, 103, 134, 122, 139, 147, 127, 124, 136, 131, 145, 131, 119, 123, 114, 122, 109, 130, 129, 118, 106, 137, 118, 119, 139, 133, 124, 109, 119, 119, 128, 119, 109, 120, 136, 131, 114, 132, 122, 123, 112, 136, 124, 124, 124, 102, 114, 112, 113, 127, 119, 127, 119, 108, 120, 100, 153, 126, 132, 109, 127, 134, 130, 124, 127, 119, 113, 118, 116, 148, 153, 148, 108, 125, 140, 131, 111, 142, 127, 118, 137, 115, 137, 123, 124, 119, 101, 123, 117, 111, 111, 109, 121, 134, 118, 124, 133, 122, 123, 128, 136, 147, 133, 131, 117, 109, 129, 135, 137, 135, 113, 125, 132, 123, 139, 144, 119, 113, 130, 132, 136, 121, 119, 127, 131, 122, 123, 119, 142, 121, 138, 115, 123, 139, 139, 109, 120, 127, 111, 134, 118, 105, 133, 137, 138, 120, 125, 130, 130, 123, 149, 130, 127, 105, 136, 138, 120, 128, 142, 119, 128, 111, 104, 136, 124, 141, 133, 113, 123, 126, 130, 134, 138, 101, 125, 143, 110, 135, 118, 125, 130, 115, 120, 118, 120, 133, 122, 107, 123, 133, 122, 133, 113, 129, 127, 105, 150, 143, 99, 136, 139, 106, 132, 135, 134, 123, 130, 136, 130, 129, 143, 133, 113, 122, 120, 144, 122, 120, 127, 128, 116, 136, 116, 122, 124, 124, 117, 112, 113, 112, 122, 152, 136, 125, 125, 102, 143, 132, 118, 128, 118, 143, 132, 109, 103, 131, 113, 128, 126, 136, 133, 133, 122, 139, 132, 118, 111, 116, 121, 136, 121, 123, 138, 117, 131, 125, 122, 121, 109, 129, 112, 129, 124, 135, 126, 122, 125, 122, 117, 129, 105, 127, 115, 120, 132, 129, 116, 120, 131, 129, 118, 123, 120, 125, 102, 139, 121, 117, 147, 137, 122, 120, 129, 123, 123, 139, 127, 114, 129, 118, 135, 134, 124, 117, 137, 131, 130, 115, 121, 117, 114, 116, 112, 129, 107, 118, 108, 132, 121, 132, 136, 135, 122, 102, 131, 154, 126, 134, 126, 128, 149, 126, 133, 106, 133, 135, 139, 125, 128, 120, 113, 128, 124, 126, 130, 131, 112, 132, 119, 138, 119, 135, 129, 145, 140, 126, 134, 115, 128, 124, 127, 130, 127, 118, 129, 112, 153, 124, 140, 135, 141, 118, 116, 131, 128, 124, 128, 141, 122, 111, 122, 135, 120, 124, 131, 117, 130, 126, 121, 134, 121, 130, 122, 135, 128, 135, 134, 131, 126, 136, 147, 120, 114, 123, 140, 120, 131, 129, 129, 125, 129, 112, 113, 115, 132, 118, 106, 120, 113, 133, 123, 126, 131, 130, 145, 125, 130, 124, 116, 112, 142, 125, 118, 121, 129, 118, 132, 139, 134, 122, 121, 122, 98, 125, 125, 114, 111, 129, 145, 115, 134, 132, 130, 124, 126, 143, 123, 134, 141, 119, 130, 109, 126, 129, 134, 115, 123, 102, 126, 130, 138, 126, 118, 123, 127, 136, 110, 123, 120, 101, 138, 145, 120, 137, 117, 111, 126, 113, 127, 111, 146, 130, 133, 111, 131, 130, 140, 125, 143, 142, 107, 111, 143, 115, 122, 118, 122, 126, 128, 128, 119, 135, 128, 121, 114, 128, 120, 122, 118, 130, 117, 124, 134, 120, 126, 121, 116, 126, 116, 110, 115, 129, 144, 119, 130, 137, 124, 118, 126, 128, 116, 144, 116, 134, 132, 135, 124, 153, 109, 126, 144, 122, 109, 128, 122, 138, 130, 127, 131, 126, 107, 126, 130, 135, 128, 122, 118, 120, 126, 115, 140, 118, 102, 121, 113, 123, 137, 141, 115, 119, 134, 132, 116, 123, 120, 109, 103, 125, 135, 131, 138, 129, 123, 118, 138, 126, 114, 113, 146, 122, 132, 132, 120, 117, 126, 114, 115, 120, 124, 107, 124, 126, 112, 120, 120, 111, 123, 98, 123, 127, 112, 147, 127, 132, 137, 132, 119, 124, 122, 129, 128, 132, 134, 134, 119, 131, 138, 133, 120, 119, 136, 146, 133, 130, 118, 121, 132, 110, 116, 123, 124, 128, 118, 122, 136, 135, 115, 139, 114, 120, 133, 127, 134, 146, 112, 126, 135, 116, 132, 135, 122, 129, 121, 138, 131, 120, 124, 132, 124, 131, 131, 136, 121, 133, 121, 132, 123, 125, 135, 116, 134, 134, 110, 134, 113, 133, 129, 122, 119, 132, 136, 131, 130, 127, 127, 118, 117, 139, 116, 118, 106, 128, 120, 136, 126, 124, 130, 129, 111, 127, 118, 121, 123, 122, 121, 128, 129, 112, 113, 128, 140, 130, 121, 124, 138, 124, 121, 124, 118, 124, 104, 131, 127, 124, 96, 127, 125, 125, 116, 128, 124, 127, 128, 132, 127, 112, 124, 131, 134, 121, 128, 137, 137, 142, 141, 129, 127, 98, 134, 118, 130, 127, 130, 130, 117, 132, 137, 115, 121, 121, 125, 140, 153, 119, 116, 130, 138, 135, 125, 118, 129, 105, 103, 122, 114, 124, 123, 137, 121, 129, 96, 126, 138, 140, 125, 102, 124, 118, 128, 124, 117, 134, 118, 118, 138, 119, 119, 127, 106, 133, 112, 112, 128, 96, 122, 129, 128, 114, 140, 116, 111, 140, 121, 130, 130, 134, 124, 120, 140, 121, 121, 123, 134, 119, 100, 130, 133, 137, 135, 129, 130, 130, 104, 127, 134, 134, 132, 132, 110, 121, 139, 111, 114, 131, 110, 151, 139, 112, 116, 126, 123, 118, 130, 130, 123, 128, 124, 108, 133, 130, 126, 117, 107, 136, 130, 131, 119, 128, 104, 126, 130, 124, 132, 119, 123, 126, 134, 117, 128, 119, 136, 115, 134, 123, 124, 130, 122, 105, 144, 114, 141, 127, 115, 143, 128, 102, 130, 113, 113, 106, 119, 127, 136, 121, 139, 124, 122, 113, 122, 134, 123, 128, 130, 130, 122, 127, 115, 142, 129, 117, 127, 118, 121, 124, 112, 122, 106, 142, 127, 127, 110, 141, 106, 124, 116, 116, 127, 121, 132, 130, 120, 114, 107, 117, 135, 120, 121, 141, 132, 119, 116, 127, 136, 130, 123, 115, 110, 121, 125, 120, 124, 120, 120, 138, 121, 121, 131, 111, 124, 132, 102, 143, 121, 143, 109, 117, 119, 144, 120, 122, 110, 137, 124, 133, 146, 122, 115, 126, 120, 124, 134, 132, 110, 123, 127, 144, 126, 137, 121, 131, 121, 133, 113, 114, 118, 118, 129, 145, 135, 119, 132, 126, 138, 135, 129, 116, 98, 113, 130, 125, 128, 145, 128, 138, 118, 125, 161, 120, 122, 113, 146, 129, 129, 131, 126, 128, 143, 127, 117, 119, 114, 125, 116, 112, 109, 140, 141, 134, 115, 124, 136, 132, 111, 159, 125, 132, 111, 139, 123, 130, 122, 126, 118, 109, 135, 121, 127, 109, 132, 124, 132, 129, 120, 126, 121, 133, 109, 122, 129, 124, 112, 134, 107, 122, 119, 113, 134, 122, 108, 136, 133, 124, 133, 143, 124, 135, 130, 114, 138, 124, 129, 133, 120, 127, 138, 129, 122, 114, 124, 122, 129, 105, 133, 132, 120, 120, 104, 129, 137, 120, 119, 112, 135, 123, 125, 118, 115, 134, 123, 135, 121, 108, 127, 124, 121, 127, 118, 131, 125, 122, 128, 151, 122, 132, 137, 128, 116, 129, 153, 113, 136, 141, 104, 108, 99, 140, 141, 127, 116, 123, 123, 121, 124, 146, 128, 143, 121, 125, 131, 115, 116, 120, 121, 117, 114, 107, 132, 128, 119, 137, 114, 142, 127, 131, 128, 135, 129, 124, 111, 124, 110, 119, 135, 118, 131, 127, 128, 134, 129, 118, 132, 123, 112, 130, 125, 121, 118, 149, 131, 131, 131, 147, 138, 133, 111, 117, 107, 120, 127, 126, 118, 120, 106, 127, 139, 120, 138, 123, 119, 123, 134, 102, 126, 131, 130, 111, 129, 142, 125, 116, 138, 138, 125, 143, 136, 122, 148, 118, 123, 146, 111, 114, 134, 111, 124, 121, 121, 126, 118, 124, 132, 117, 120, 128, 117, 133, 118, 127, 123, 126, 122, 122, 113, 104, 116, 131, 115, 109, 140, 117, 130, 129, 124, 121, 139, 133, 124, 115, 121, 140, 119, 122, 122, 128, 123, 132, 117, 98, 112, 132, 135, 128, 121, 130, 128, 108, 122, 117, 120, 131, 136, 130, 118, 112, 115, 108, 123, 125, 118, 115, 125, 133, 130, 117, 118, 137, 138, 121, 119, 116, 115, 118, 111, 133, 106, 155, 111, 135, 129, 121, 122, 119, 141, 131, 125, 122, 129, 106, 138, 135, 125, 113, 130, 125, 119, 123, 101, 132, 126, 129, 124, 126, 124, 125, 129, 108, 132, 126, 130, 127, 121, 141, 128, 125, 114, 134, 105, 123, 109, 119, 141, 125, 127, 118, 127, 102, 133, 124, 154, 120, 119, 117, 130, 121, 93, 138, 125, 134, 126, 133, 121, 129, 115, 114, 134, 133, 101, 136, 144, 135, 101, 123, 140, 129, 137, 126, 114, 133, 129, 123, 127, 112, 125, 124, 128, 122, 112, 129, 115, 126, 126, 119, 112, 125, 112, 112, 122, 131, 112, 143, 137, 123, 130, 120, 119, 137, 123, 110, 130, 113, 119, 106, 125, 136, 127, 139, 122, 114, 123, 139, 126, 125, 110, 132, 125, 124, 119, 134, 132, 140, 111, 133, 129, 135, 117, 118, 138, 114, 154, 112, 114, 125, 129, 110, 116, 115, 122, 127, 132, 125, 120, 132, 122, 122, 117, 135, 138, 122, 115, 132, 138, 124, 129, 134, 110, 116, 116, 129, 114, 136, 124, 132, 138, 141, 116, 134, 127, 120, 104, 132, 122, 131, 145, 131, 111, 119, 155, 138, 121, 135, 125, 111, 117, 122, 125, 112, 122, 132, 109, 125, 125, 111, 127, 122, 112, 120, 122, 138, 141, 121, 112, 136, 134, 122, 122, 135, 117, 127, 111, 119, 125, 133, 110, 119, 129, 133, 134, 133, 102, 113, 139, 118, 134, 129, 114, 119, 120, 128, 108, 125, 121, 137, 127, 118, 110, 134, 129, 121, 123, 125, 133, 129, 118, 137, 127, 114, 125, 118, 132, 122, 127, 122, 126, 130, 137, 127, 106, 129, 114, 122, 155, 127, 128, 127, 143, 111, 121, 137, 134, 113, 123, 120, 120, 137, 132, 134, 146, 139, 132, 117, 110, 116, 131, 141, 132, 120, 124, 115, 134, 125, 118, 127, 121, 142, 118, 125, 125, 122, 113, 142, 125, 148, 117, 135, 123, 106, 135, 101, 117, 136, 117, 130, 119, 135, 115, 118, 116, 123, 131, 134, 126, 116, 123, 113, 119, 134, 119, 128, 130, 139, 118, 119, 132, 126, 131, 131, 115, 154, 135, 130, 101, 133, 115, 136, 112, 119, 152, 120, 123, 114, 142, 123, 108, 125, 108, 117, 133, 121, 127, 131, 120, 148, 115, 116, 113, 133, 121, 124, 132, 123, 129, 125, 101, 120, 132, 135, 111, 118, 134, 128, 117, 132, 119, 120, 125, 141, 107, 117, 128, 112, 127, 136, 119, 117, 128, 121, 121, 114, 128, 119, 132, 148, 123, 128, 135, 121, 117, 109, 110, 129, 137, 126, 120, 116, 118, 133, 113, 128, 119, 129, 127, 128, 137, 119, 148, 121, 114, 110, 125, 143, 139, 118, 135, 135, 127, 118, 138, 116, 130, 111, 149, 132, 119, 141, 137, 127, 140, 136, 129, 146, 129, 132, 123, 132, 115, 108, 111, 144, 132, 113, 110, 128, 104, 105, 128, 138, 132, 135, 132, 126, 121, 130, 108, 112, 123, 127, 135, 117, 125, 123, 126, 131, 125, 128, 155, 125, 143, 129, 125, 141, 116, 123, 113, 108, 126, 123, 119, 117, 117, 131, 116, 137, 137, 121, 124, 123, 111, 125, 129, 121, 119, 125, 142, 134, 139, 123, 120, 131, 104, 126, 116, 138, 139, 119, 143, 124, 124, 125, 126, 119, 139, 117, 140, 132, 126, 140, 125, 128, 112, 123, 128, 122, 129, 132, 123, 121, 133, 116, 131, 136, 123, 107, 115, 120, 114, 120, 122, 134, 128, 105, 124, 86, 117, 137, 128, 127, 111, 146, 117, 115, 128, 72, 81, 123, 115, 106, 104, 128, 129, 123, 135, 118, 138, 126, 119, 119, 113, 123, 129, 124, 109, 137, 132, 139, 122, 123, 127, 150, 99, 130, 128, 132, 136, 128, 126, 125, 121, 115, 129, 123, 126, 105, 114, 147, 133, 122, 114, 133, 138, 133, 112, 130, 130, 149, 131, 122, 109, 133, 136, 134, 135, 126, 123, 144, 125, 131, 137, 130, 123, 156, 126, 126, 116, 121, 135, 127, 128, 127, 117, 113, 115, 114, 122, 125, 127, 126, 113, 128, 129, 122, 130, 124, 118, 116, 124, 134, 116, 131, 95, 126, 126, 137, 117, 128, 133, 131, 108, 116, 108, 132, 127, 125, 132, 109, 142, 138, 137, 127, 136, 122, 124, 115, 121, 148, 122, 121, 136, 130, 132, 137, 123, 128, 109, 125, 133, 135, 129, 130, 124, 134, 121, 123, 116, 132, 113, 117, 117, 123, 120, 114, 114, 134, 137, 137, 154, 122, 117, 108, 121, 126, 148, 136, 128, 133, 117, 124, 130, 137, 120, 136, 103, 130, 131, 125, 117, 132, 115, 114, 126, 112, 103, 123, 124, 108, 119, 116, 128, 123, 138, 117, 140, 104, 118, 145, 117, 130, 132, 121, 140, 144, 136, 113, 110, 123, 129, 123, 135, 127, 104, 135, 120, 118, 127, 130, 136, 106, 114, 127, 113, 137, 147, 117, 128, 124, 120, 99, 134, 105, 140, 131, 124, 128, 138, 135, 118, 122, 117, 135, 122, 117, 132, 103, 141, 106, 133, 122, 113, 130, 116, 123, 137, 135, 133, 124, 110, 106, 106, 101, 130, 132, 137, 130, 128, 131, 127, 132, 127, 124, 134, 116, 111, 103, 123, 113, 116, 143, 112, 128, 109, 115, 136, 124, 135, 125, 104, 129, 106, 117, 140, 109, 117, 117, 130, 131, 125, 120, 112, 111, 147, 114, 104, 131, 104, 122, 125, 116, 169, 111, 122, 132, 109, 133, 128, 132, 119, 135, 134, 119, 124, 133, 114, 120, 129, 148, 139, 126, 127, 131, 110, 131, 111, 112, 85, 128, 136, 119, 132, 123, 122, 123, 113, 93, 118, 135, 119, 121, 126, 137, 141, 139, 135, 119, 114, 120, 133, 135, 120, 115, 131, 135, 128, 115, 123, 131, 121, 134, 125, 126, 138, 119, 123, 104, 118, 114, 137, 124, 111, 129, 112, 100, 111, 139, 118, 110, 108, 128, 138, 120, 127, 148, 134, 136, 120, 129, 118, 126, 121, 141, 114, 117, 131, 127, 128, 118, 138, 145, 118, 125, 124, 115, 126, 122, 138, 131, 120, 120, 147, 130, 105, 124, 140, 116, 135, 144, 103, 127, 102, 121, 129, 136, 135, 114, 127, 120, 123, 127, 120, 145, 139, 127, 119, 145, 109, 149, 140, 118, 110, 129, 132, 130, 120, 128, 117, 127, 114, 110, 121, 135, 129, 152, 133, 120, 127, 127, 131, 137, 147, 130, 153, 132, 123, 121, 134, 125, 131, 118, 123, 117, 121, 132, 113, 127, 132, 113, 129, 119, 123, 125, 131, 130, 126, 151, 118, 121, 155, 130, 126, 124, 95, 124, 117, 103, 141, 121, 135, 146, 123, 121, 133, 120, 129, 131, 130, 129, 119, 136, 129, 151, 132, 121, 137, 131, 131, 119, 138, 117, 131, 135, 128, 150, 119, 141, 116, 115, 118, 122, 132, 137, 126, 132, 127, 117, 129, 128, 123, 122, 128, 148, 108, 131, 111, 120, 125, 134, 128, 118, 122, 130, 116, 118, 114, 137, 116, 111, 115, 128, 125, 125, 118, 122, 120, 140, 140, 132, 133, 117, 121, 147, 134, 117, 129, 130, 113, 142, 125, 127, 126, 128, 117, 122, 129, 120, 122, 124, 135, 119, 136, 119, 144, 109, 120, 113, 138, 116, 127, 128, 128, 132, 129, 124, 121, 122, 127, 126, 123, 113, 124, 123, 119, 128, 108, 124, 108, 109, 163, 118, 126, 124, 132, 122, 130, 119, 138, 139, 121, 145, 115, 136, 116, 122, 120, 123, 129, 108, 113, 132, 113, 135, 128, 124, 116, 123, 125, 128, 124, 105, 129, 126, 124, 122, 133, 123, 142, 130, 133, 134, 133, 116, 120, 120, 123, 136, 141, 124, 107, 113, 127, 140, 120, 121, 142, 109, 123, 125, 135, 112, 106, 125, 132, 132, 119, 126, 122, 142, 124, 116, 122, 127, 127, 138, 143, 118, 128, 118, 127, 143, 123, 128, 127, 122, 122, 130, 107, 136, 127, 94, 142, 126, 136, 126, 135, 117, 145, 130, 126, 85, 111, 106, 132, 115, 132, 107, 127, 136, 119, 134, 135, 138, 133, 117, 123, 122, 127, 121, 121, 135, 120, 128, 129, 126, 117, 114, 130, 122, 125, 129, 131, 132, 127, 103, 114, 127, 132, 120, 141, 137, 118, 129, 108, 122, 126, 128, 113, 133, 114, 130, 114, 130, 119, 152, 121, 110, 122, 109, 138, 142, 114, 136, 128, 133, 143, 128, 127, 122, 113, 106, 134, 139, 132, 101, 128, 139, 145, 101, 103, 128, 122, 132, 120, 119, 116, 120, 117, 133, 124, 122, 133, 118, 110, 122, 127, 122, 124, 130, 132, 154, 124, 125, 126, 129, 109, 122, 133, 123, 123, 129, 122, 124, 122, 114, 113, 145, 114, 125, 104, 146, 110, 124, 138, 147, 113, 117, 132, 120, 124, 118, 108, 143, 118, 117, 118, 125, 110, 147, 117, 129, 138, 121, 119, 128, 134, 127, 115, 116, 130, 130, 142, 125, 118, 131, 116, 138, 126, 135, 135, 131, 134, 139, 101, 127, 119, 139, 140, 133, 108, 136, 126, 139, 125, 116, 137, 139, 133, 113, 102, 120, 119, 138, 129, 130, 124, 125, 125, 139, 138, 127, 105, 118, 121, 129, 119, 117, 148, 124, 131, 115, 122, 120, 120, 126, 118, 117, 120, 135, 127, 111, 121, 141, 129, 126, 110, 121, 135, 149, 116, 130, 117, 139, 136, 122, 137, 125, 128, 133, 119, 127, 117, 116, 125, 131, 124, 129, 116, 132, 133, 151, 121, 110, 150, 115, 136, 126, 127, 108, 129, 124, 123, 116, 117, 129, 122, 132, 106, 129, 131, 141, 112, 127, 127, 131, 123, 119, 143, 131, 132, 121, 130, 133, 145, 121, 127, 129, 123, 126, 124, 130, 119, 124, 118, 117, 135, 126, 132, 119, 148, 135, 118, 136, 139, 139, 120, 125, 128, 135, 119, 133, 116, 123, 133, 124, 117, 109, 138, 119, 113, 105, 117, 125, 122, 123, 115, 135, 122, 139, 125, 120, 134, 138, 132, 134, 119, 131, 111, 136, 120, 132, 118, 140, 128, 137, 130, 114, 121, 111, 115, 113, 108, 139, 135, 118, 132, 144, 134, 124, 117, 131, 113, 133, 117, 117, 117, 111, 144, 122, 139, 128, 126, 123, 127, 124, 125, 122, 126, 143, 131, 116, 145, 124, 118, 130, 133, 131, 121, 119, 127, 124, 134, 127, 112, 118, 127, 122, 134, 118, 115, 117, 108, 128, 148, 140, 123, 120, 107, 124, 119, 139, 147, 111, 113, 131, 137, 115, 132, 126, 119, 119, 122, 126, 135, 123, 141, 128, 96, 134, 125, 135, 132, 121, 131, 112, 115, 125, 132, 132, 115, 128, 137, 132, 134, 126, 148, 108, 122, 126, 139, 118, 125, 105, 136, 127, 124, 130, 113, 122, 121, 126, 131, 107, 114, 118, 127, 116, 141, 120, 110, 132, 138, 138, 123, 118, 124, 119, 135, 129, 111, 134, 123, 132, 116, 106, 129, 135, 117, 110, 106, 104, 127, 127, 114, 116, 115, 119, 148, 106, 121, 135, 129, 133, 119, 132, 136, 115, 132, 131, 126, 137, 115, 127, 130, 134, 122, 136, 133, 115, 120, 141, 116, 116, 133, 108, 119, 115, 125, 111, 108, 128, 145, 133, 114, 119, 130, 115, 128, 129, 129, 113, 156, 111, 125, 124, 128, 120, 138, 131, 139, 111, 127, 105, 130, 132, 147, 128, 131, 120, 135, 132, 106, 117, 135, 102, 136, 119, 140, 120, 138, 118, 114, 137, 150, 141, 125, 131, 129, 115, 139, 129, 137, 113, 120, 143, 126, 120, 114, 126, 136, 116, 118, 128, 118, 128, 131, 115, 133, 121, 143, 134, 110, 132, 131, 126, 117, 141, 120, 134, 129, 104, 142, 116, 122, 141, 114, 128, 124, 128, 125, 98, 125, 142, 124, 138, 124, 124, 115, 135, 154, 124, 129, 148, 122, 122, 126, 138, 129, 123, 130, 124, 111, 125, 127, 131, 121, 120, 123, 131, 121, 127, 130, 119, 133, 147, 140, 136, 132, 139, 130, 124, 117, 122, 128, 137, 146, 125, 118, 121, 117, 125, 129, 131, 123, 116, 132, 147, 104, 137, 121, 126, 113, 127, 103, 113, 145, 107, 141, 131, 94, 133, 123, 123, 136, 110, 135, 124, 133, 125, 126, 128, 99, 122, 122, 128, 121, 133, 126, 120, 129, 127, 110, 100, 116, 120, 125, 121, 152, 129, 136, 122, 126, 131, 125, 139, 126, 110, 117, 129, 145, 130, 119, 125, 103, 123, 123, 137, 144, 125, 128, 111, 132, 120, 136, 114, 101, 126, 125, 115, 117, 120, 131, 132, 145, 116, 119, 129, 122, 125, 141, 139, 154, 140, 124, 117, 126, 141, 121, 128, 125, 145, 132, 109, 127, 131, 114, 124, 124, 128, 106, 131, 130, 126, 130, 111, 110, 116, 128, 131, 124, 141, 120, 114, 96, 133, 148, 124, 141, 113, 109, 106, 117, 110, 125, 133, 139, 133, 142, 117, 144, 125, 113, 133, 122, 147, 117, 137, 142, 131, 133, 121, 117, 115, 127, 125, 116, 109, 125, 129, 127, 132, 138, 115, 127, 112, 125, 117, 127, 130, 113, 108, 131, 125, 120, 133, 118, 119, 133, 125, 120, 115, 114, 116, 114, 112, 116, 113, 128, 126, 109, 126, 135, 125, 137, 123, 119, 130, 108, 143, 104, 115, 120, 118, 123, 123, 138, 117, 123, 131, 121, 100, 111, 128, 140, 119, 127, 129, 140, 116, 116, 136, 112, 111, 132, 131, 119, 121, 111, 119, 107, 129, 116, 132, 135, 110, 111, 130, 116, 113, 127, 137, 117, 132, 120, 114, 117, 140, 138, 129, 118, 135, 121, 131, 115, 138, 101, 115, 123, 112, 130, 121, 135, 130, 125, 127, 112, 133, 130, 105, 126, 125, 103, 122, 129, 122, 129, 121, 118, 134, 135, 137, 143, 106, 121, 130, 133, 128, 114, 119, 123, 117, 110, 131, 113, 116, 128, 121, 116, 113, 119, 140, 122, 126, 127, 122, 122, 121, 134, 141, 125, 122, 136, 132, 129, 125, 138, 120, 130, 151, 135, 129, 119, 118, 129, 116, 127, 133, 113, 124, 126, 103, 129, 130, 132, 137, 124, 137, 116, 129, 127, 133, 137, 126, 124, 126, 103, 117, 129, 131, 118, 127, 122, 116, 113, 116, 146, 120, 119, 115, 142, 144, 119, 125, 117, 136, 120, 151, 114, 118, 124, 135, 138, 142, 133, 133, 130, 139, 130, 117, 125, 129, 137, 139, 119, 115, 131, 122, 134, 114, 134, 140, 118, 135, 125, 135, 134, 110, 125, 132, 115, 138, 133, 133, 122, 108, 102, 125, 122, 117, 119, 133, 127, 104, 126, 119, 134, 144, 142, 134, 127, 113, 123, 122, 125, 128, 121, 125, 127, 124, 134, 123, 111, 132, 117, 128, 138, 128, 119, 126, 127, 137, 121, 115, 121, 111, 134, 119, 129, 133, 137, 135, 118, 136, 114, 105, 127, 125, 119, 121, 113, 124, 113, 126, 128, 124, 127, 134, 120, 128, 123, 125, 120, 113, 108, 126, 117, 122, 113, 123, 129, 106, 121, 122, 137, 106, 123, 111, 127, 139, 131, 91, 134, 118, 118, 129, 131, 118, 109, 139, 132, 138, 140, 117, 112, 122, 127, 129, 124, 128, 130, 121, 118, 138, 139, 144, 114, 140, 123, 127, 111, 133, 115, 125, 106, 134, 121, 124, 113, 120, 116, 130, 114, 123, 120, 114, 112, 128, 131, 104, 129, 111, 138, 129, 108, 132, 127, 105, 126, 120, 106, 127, 141, 120, 124, 116, 126, 132, 131, 120, 131, 127, 125, 129, 116, 150, 129, 121, 124, 118, 143, 138, 122, 119, 126, 128, 137, 127, 136, 117, 109, 125, 129, 134, 134, 139, 129, 126, 91, 120, 125, 135, 136, 121, 126, 112, 136, 127, 126, 129, 105, 125, 124, 115, 124, 127, 123, 126, 102, 108, 123, 131, 124, 107, 120, 131, 128, 131, 128, 124, 118, 103, 134, 132, 136, 125, 116, 141, 133, 130, 129, 142, 111, 108, 134, 125, 120, 123, 131, 134, 110, 133, 127, 134, 123, 143, 140, 136, 122, 129, 125, 129, 120, 119, 135, 129, 110, 126, 128, 127, 123, 128, 115, 141, 152, 133, 137, 123, 137, 131, 111, 127, 138, 126, 123, 124, 136, 122, 136, 114, 123, 121, 147, 121, 133, 128, 125, 136, 130, 140, 133, 133, 115, 128, 104, 151, 148, 119, 130, 92, 121, 118, 135, 128, 130, 155, 121, 115, 119, 108, 111, 131, 120, 151, 111, 137, 115, 114, 127, 121, 142, 118, 116, 107, 131, 138, 137, 115, 127, 107, 126, 142, 96, 118, 133, 129, 147, 134, 133, 127, 127, 124, 130, 117, 131, 131, 134, 113, 141, 122, 136, 126, 135, 121, 142, 113, 133, 124, 137, 119, 122, 102, 124, 114, 125, 139, 129, 133, 132, 98, 116, 121, 123, 125, 127, 117, 113, 146, 102, 115, 119, 141, 102, 113, 111, 124, 143, 125, 145, 139, 110, 131, 129, 136, 127, 137, 144, 121, 120, 127, 135, 130, 154, 125, 123, 117, 129, 129, 126, 127, 124, 102, 134, 129, 128, 124, 126, 126, 152, 134, 124, 138, 124, 114, 127, 120, 124, 125, 117, 108, 118, 123, 121, 119, 143, 130, 125, 124, 133, 125, 111, 115, 140, 127, 129, 119, 115, 135, 106, 131, 113, 140, 98, 131, 125, 134, 135, 131, 123, 111, 120, 126, 116, 133, 131, 124, 137, 110, 140, 133, 130, 125, 129, 98, 122, 142, 130, 126, 127, 138, 120, 139, 120, 132, 135, 145, 130, 127, 134, 131, 126, 129, 129, 115, 122, 124, 126, 140, 130, 122, 136, 105, 118, 120, 132, 125, 137, 120, 121, 134, 137, 122, 132, 119, 136, 135, 127, 123, 127, 118, 127, 113, 116, 108, 123, 140, 125, 120, 125, 128, 127, 131, 120, 144, 126, 130, 132, 121, 125, 119, 121, 132, 135, 136, 126, 123, 133, 135, 99, 109, 111, 129, 119, 116, 121, 117, 112, 126, 119, 127, 134, 131, 134, 126, 142, 121, 134, 128, 124, 112, 126, 130, 122, 124, 111, 145, 107, 122, 121, 135, 139, 129, 118, 119, 126, 119, 134, 136, 126, 124, 127, 141, 123, 119, 116, 114, 110, 137, 136, 118, 129, 115, 140, 128, 132, 119, 138, 125, 116, 154, 123, 126, 136, 127, 122, 113, 121, 130, 111, 124, 136, 106, 123, 121, 131, 129, 136, 138, 130, 124, 112, 122, 115, 156, 142, 129, 137, 103, 125, 115, 134, 152, 125, 129, 101, 118, 118, 134, 147, 129, 136, 129, 116, 114, 114, 143, 112, 131, 127, 120, 135, 124, 136, 131, 120, 140, 139, 125, 106, 132, 126, 126, 125, 127, 129, 133, 125, 126, 121, 130, 132, 119, 109, 126, 142, 123, 137, 128, 124, 121, 140, 130, 133, 111, 113, 127, 129, 107, 133, 135, 122, 136, 126, 140, 107, 140, 125, 133, 127, 126, 114, 120, 134, 134, 133, 115, 110, 120, 127, 129, 118, 123, 121, 117, 148, 156, 132, 113, 125, 128, 127, 118, 133, 111, 125, 120, 121, 130, 119, 130, 115, 123, 138, 125, 130, 133, 119, 116, 126, 106, 136, 116, 107, 128, 131, 120, 133, 130, 113, 115, 113, 125, 123, 120, 118, 110, 131, 132, 119, 133, 142, 120, 124, 116, 128, 112, 120, 122, 133, 105, 118, 110, 143, 130, 121, 121, 127, 133, 127, 104, 125, 116, 121, 129, 130, 117, 132, 122, 110, 112, 132, 123, 143, 123, 138, 106, 117, 137, 120, 127, 102, 110, 133, 131, 131, 143, 127, 109, 134, 153, 111, 143, 148, 124, 145, 121, 124, 136, 125, 135, 113, 123, 120, 122, 146, 138, 114, 116, 122, 134, 123, 126, 114, 113, 146, 114, 119, 139, 119, 137, 118, 126, 125, 139, 112, 107, 126, 117, 147, 117, 130, 136, 110, 126, 109, 122, 124, 115, 131, 122, 127, 128, 118, 122, 126, 115, 117, 133, 125, 121, 123, 126, 134, 139, 121, 125, 121, 120, 129, 126, 107, 126, 134, 130, 139, 127, 118, 139, 121, 140, 110, 120, 126, 127, 113, 122, 125, 119, 130, 143, 142, 132, 117, 152, 114, 145, 125, 127, 149, 147, 136, 136, 136, 148, 119, 124, 119, 136, 120, 128, 121, 128, 138, 125, 114, 123, 121, 109, 123, 110, 127, 126, 117, 130, 126, 133, 112, 123, 115, 139, 120, 122, 124, 121, 145, 119, 131, 128, 127, 124, 115, 130, 124, 115, 128, 134, 126, 130, 130, 135, 121, 137, 129, 123, 119, 161, 123, 110, 140, 150, 116, 122, 120, 113, 121, 130, 119, 133, 134, 126, 127, 133, 113, 116, 126, 142, 128, 126, 117, 124, 123, 128, 120, 140, 138, 126, 119, 107, 124, 105, 119, 124, 122, 119, 124, 124, 113, 120, 123, 121, 141, 115, 134, 126, 118, 133, 102, 124, 121, 122, 123, 112, 119, 130, 147, 114, 112, 103, 114, 117, 124, 139, 108, 129, 119, 148, 112, 128, 122, 131, 121, 132, 149, 149, 122, 112, 128, 120, 132, 134, 127, 138, 121, 119, 119, 130, 134, 127, 137, 129, 121, 121, 136, 129, 138, 123, 103, 114, 130, 131, 124, 126, 122, 125, 126, 125, 129, 130, 128, 121, 140, 118, 133, 137, 119, 132, 123, 120, 107, 132, 116, 124, 125, 124, 132, 120, 133, 118, 132, 128, 117, 113, 134, 124, 125, 124, 129, 114, 123, 128, 105, 129, 133, 134, 127, 132, 138, 111, 127, 126, 117, 129, 123, 138, 135, 124, 101, 139, 126, 125, 139, 123, 137, 125, 108, 110, 136, 104, 137, 123, 141, 120, 133, 126, 122, 126, 138, 127, 125, 146, 121, 129, 135, 128, 123, 134, 145, 126, 118, 122, 136, 100, 128, 115, 132, 117, 119, 116, 136, 118, 137, 133, 122, 116, 122, 129, 128, 133, 128, 134, 123, 124, 116, 119, 131, 121, 118, 121, 124, 135, 138, 127, 123, 121, 127, 122, 131, 122, 131, 114, 124, 117, 142, 124, 120, 119, 117, 117, 132, 124, 115, 136, 137, 122, 118, 121, 131, 121, 118, 141, 134, 117, 133, 124, 140, 138, 131, 139, 111, 122, 130, 127, 137, 134, 128, 113, 125, 147, 131, 113, 132, 91, 134, 130, 150, 121, 110, 103, 124, 128, 127, 131, 127, 121, 117, 127, 129, 128, 122, 133, 122, 112, 140, 118, 119, 114, 129, 118, 118, 125, 121, 144, 122, 125, 111, 117, 112, 118, 125, 131, 127, 117, 130, 146, 128, 116, 132, 124, 108, 122, 132, 132, 144, 147, 109, 123, 120, 109, 111, 149, 140, 127, 128, 134, 130, 117, 131, 124, 113, 145, 138, 130, 137, 141, 131, 117, 130, 127, 116, 146, 118, 134, 118, 115, 123, 107, 134, 120, 134, 98, 138, 107, 132, 123, 132, 121, 143, 110, 135, 126, 129, 130, 128, 130, 135, 122, 137, 128, 140, 125, 133, 122, 130, 113, 140, 123, 139, 128, 135, 119, 126, 96, 122, 157, 141, 115, 98, 126, 123, 111, 124, 141, 119, 122, 127, 125, 134, 124, 129, 125, 117, 132, 94, 116, 121, 137, 132, 121, 137, 128, 146, 130, 126, 116, 119, 138, 115, 127, 151, 130, 124, 140, 154, 113, 120, 134, 108, 131, 120, 119, 125, 128, 126, 110, 122, 120, 108, 126, 123, 105, 112, 138, 113, 121, 137, 118, 121, 117, 122, 110, 109, 127, 113, 130, 123, 129, 111, 130, 125, 134, 128, 129, 114, 126, 123, 107, 136, 141, 121, 134, 116, 126, 132, 131, 118, 126, 119, 120, 123, 126, 139, 124, 135, 124, 115, 132, 118, 119, 135, 128, 124, 86, 96, 127, 124, 141, 122, 110, 130, 108, 129, 128, 118, 129, 129, 125, 130, 118, 139, 124, 128, 132, 127, 115, 129, 130, 124, 129, 116, 128, 124, 131, 118, 133, 102, 113, 159, 131, 109, 121, 121, 124, 133, 129, 137, 136, 127, 115, 129, 128, 120, 120, 124, 124, 106, 130, 118, 115, 125, 138, 136, 127, 128, 128, 132, 122, 100, 129, 150, 124, 139, 124, 115, 131, 133, 137, 124, 136, 143, 110, 130, 128, 133, 141, 122, 123, 113, 122, 113, 129, 128, 120, 126, 131, 107, 122, 115, 126, 130, 114, 124, 130, 117, 122, 118, 111, 110, 125, 126, 144, 119, 122, 126, 146, 127, 125, 119, 117, 143, 133, 126, 149, 127, 129, 108, 149, 134, 121, 115, 126, 130, 130, 121, 133, 107, 125, 111, 108, 111, 107, 113, 118, 129, 126, 120, 135, 131, 123, 141, 127, 129, 127, 132, 121, 133, 143, 125, 131, 116, 150, 129, 140, 138, 117, 117, 119, 137, 108, 122, 127, 119, 123, 116, 122, 122, 122, 127, 126, 111, 125, 130, 128, 122, 125, 119, 117, 125, 124, 122, 127, 113, 110, 130, 116, 119, 121, 117, 121, 131, 135, 151, 102, 132, 131, 121, 130, 131, 119, 112, 136, 121, 130, 104, 121, 124, 146, 141, 132, 110, 137, 125, 128, 136, 151, 126, 121, 123, 125, 133, 139, 127, 130, 135, 133, 123, 122, 110, 119, 132, 132, 132, 127, 131, 117, 130, 114, 105, 122, 125, 124, 118, 139, 116, 114, 109, 140, 114, 127, 117, 119, 141, 108, 130, 110, 114, 123, 111, 119, 107, 122, 154, 107, 127, 138, 130, 122, 132, 136, 115, 126, 127, 128, 134, 120, 124, 126, 142, 128, 115, 140, 113, 121, 140, 143, 126, 124, 131, 132, 139, 117, 128, 126, 118, 129, 129, 133, 125, 124, 130, 134, 128, 119, 132, 128, 130, 123, 115, 139, 119, 114, 134, 116, 107, 116, 124, 119, 112, 122, 120, 126, 134, 130, 98, 139, 115, 129, 119, 119, 119, 134, 140, 117, 135, 103, 119, 123, 130, 118, 129, 126, 128, 113, 115, 127, 114, 129, 124, 125, 151, 115, 135, 123, 132, 133, 125, 137, 125, 121, 145, 133, 130, 122, 124, 131, 126, 128, 116, 101, 124, 110, 125, 118, 125, 130, 130, 140, 131, 149, 131, 119, 128, 130, 128, 128, 113, 122, 132, 135, 139, 140, 104, 145, 113, 142, 131, 129, 139, 123, 143, 123, 119, 121, 138, 135, 141, 137, 125, 118, 127, 128, 119, 120, 130, 140, 110, 133, 97, 132, 132, 132, 132, 109, 139, 126, 130, 125, 121, 126, 135, 135, 142, 128, 129, 118, 139, 126, 141, 123, 120, 135, 135, 122, 128, 122, 131, 133, 133, 112, 136, 131, 116, 116, 126, 131, 114, 131, 133, 129, 123, 116, 132, 114, 124, 132, 134, 108, 117, 119, 120, 127, 120, 120, 115, 131, 136, 132, 117, 121, 123, 118, 119, 124, 122, 131, 126, 127, 127, 125, 137, 127, 129, 136, 127, 134, 138, 135, 110, 124, 112, 113, 126, 119, 120, 119, 125, 121, 115, 143, 125, 132, 125, 102, 133, 106, 97, 131, 139, 116, 104, 131, 127, 106, 129, 142, 128, 120, 130, 110, 127, 144, 138, 138, 130, 115, 112, 139, 112, 121, 111, 129, 125, 106, 134, 113, 152, 115, 135, 123, 137, 124, 137, 127, 134, 127, 136, 114, 124, 134, 118, 129, 113, 123, 119, 116, 113, 123, 122, 132, 131, 128, 111, 97, 115, 121, 120, 139, 118, 133, 131, 121, 121, 133, 119, 119, 133, 125, 129, 133, 111, 119, 132, 122, 134, 129, 132, 154, 136, 122, 148, 125, 124, 118, 137, 127, 154, 132, 117, 123, 129, 106, 102, 108, 129, 120, 124, 115, 112, 127, 107, 122, 120, 139, 126, 127, 128, 129, 128, 114, 102, 120, 125, 113, 130, 131, 137, 120, 136, 117, 107, 120, 117, 124, 112, 122, 121, 108, 132, 106, 136, 120, 104, 110, 141, 109, 128, 108, 131, 120, 135, 122, 136, 131, 135, 118, 102, 110, 97, 107, 101, 116, 105, 132, 125, 118, 111, 119, 127, 134, 98, 126, 137, 149, 118, 139, 121, 130, 131, 107, 112, 117, 113, 138, 113, 111, 126, 126, 134, 122, 111, 126, 131, 126, 137, 133, 115, 129, 127, 122, 117, 121, 141, 136, 139, 142, 108, 124, 136, 124, 131, 124, 127, 135, 140, 118, 148, 130, 151, 132, 138, 128, 140, 130, 112, 125, 133, 133, 99, 124, 128, 130, 136, 152, 114, 131, 114, 127, 136, 125, 119, 114, 120, 135, 122, 121, 117, 141, 109, 108, 111, 122, 135, 136, 117, 123, 142, 116, 101, 121, 119, 135, 125, 125, 127, 116, 112, 112, 141, 134, 114, 132, 123, 121, 109, 144, 140, 121, 124, 117, 134, 126, 137, 124, 130, 143, 137, 125, 148, 118, 120, 120, 121, 118, 125, 116, 141, 121, 134, 132, 115, 112, 129, 129, 125, 134, 141, 117, 128, 115, 119, 116, 156, 135, 120, 138, 124, 107, 91, 111, 122, 130, 142, 120, 128, 127, 115, 130, 130, 140, 148, 126, 128, 126, 108, 126, 124, 127, 119, 130, 138, 126, 138, 114, 125, 135, 124, 138, 126, 96, 130, 130, 137, 107, 122, 123, 117, 109, 94, 140, 138, 111, 135, 121, 116, 114, 112, 124, 123, 130, 121, 119, 113, 116, 133, 122, 130, 129, 119, 155, 124, 142, 124, 116, 127, 128, 141, 117, 116, 129, 139, 126, 132, 118, 143, 119, 109, 144, 120, 119, 120, 132, 111, 128, 108, 114, 108, 126, 131, 115, 121, 141, 133, 120, 125, 121, 138, 119, 109, 120, 114, 123, 138, 130, 133, 116, 138, 120, 139, 123, 123, 123, 149, 117, 136, 130, 120, 149, 121, 129, 128, 124, 133, 120, 149, 131, 112, 114, 100, 122, 119, 130, 111, 130, 127, 108, 114, 138, 121, 110, 130, 124, 114, 116, 136, 129, 134, 140, 130, 146, 111, 124, 111, 113, 110, 134, 115, 131, 111, 126, 139, 115, 106, 130, 116, 108, 89, 133, 144, 117, 129, 123, 111, 127, 133, 126, 116, 114, 125, 137, 113, 138, 121, 114, 125, 113, 128, 136, 140, 103, 133, 115, 112, 139, 130, 119, 110, 131, 127, 141, 117, 120, 132, 129, 122, 121, 124, 128, 131, 118, 133, 120, 122, 123, 134, 120, 122, 126, 126, 117, 116, 116, 138, 116, 130, 126, 111, 129, 109, 134, 114, 124, 140, 119, 122, 103, 138, 119, 129, 118, 135, 140, 114, 135, 108, 129, 123, 124, 130, 114, 114, 123, 136, 124, 117, 117, 138, 151, 115, 121, 130, 147, 128, 128, 143, 119, 129, 124, 129, 143, 127, 142, 119, 128, 109, 108, 113, 125, 115, 129, 121, 129, 114, 122, 114, 114, 133, 131, 121, 115, 134, 132, 121, 105, 129, 110, 127, 139, 134, 128, 113, 133, 128, 134, 111, 156, 129, 109, 133, 137, 144, 152, 115, 148, 117, 119, 155, 140, 137, 134, 119, 110, 131, 124, 123, 119, 114, 123, 110, 117, 131, 108, 116, 113, 143, 110, 130, 128, 126, 129, 131, 134, 127, 121, 137, 126, 113, 127, 127, 119, 142, 135, 123, 120, 117, 125, 129, 114, 126, 115, 124, 121, 126, 133, 138, 121, 124, 128, 100, 136, 117, 124, 111, 115, 146, 117, 112, 119, 119, 104, 128, 115, 115, 138, 110, 136, 138, 141, 128, 123, 122, 117, 128, 110, 124, 126, 132, 133, 138, 129, 105, 106, 121, 128, 116, 120, 128, 139, 142, 128, 124, 138, 150, 116, 126, 116, 125, 136, 116, 102, 111, 160, 137, 126, 125, 119, 131, 127, 111, 125, 96, 140, 120, 122, 132, 122, 126, 137, 131, 134, 142, 137, 121, 123, 123, 92, 135, 128, 115, 124, 130, 139, 130, 136, 128, 120, 139, 108, 114, 126, 125, 125, 125, 138, 130, 135, 143, 129, 125, 104, 134, 132, 142, 123, 122, 134, 134, 130, 112, 125, 132, 124, 119, 105, 126, 107, 119, 111, 119, 142, 132, 131, 133, 111, 103, 131, 129, 131, 155, 136, 146, 128, 148, 121, 117, 140, 134, 119, 142, 96, 115, 116, 134, 117, 124, 117, 138, 137, 118, 123, 120, 112, 112, 141, 110, 128, 104, 126, 123, 122, 114, 125, 137, 135, 126, 138, 123, 129, 137, 114, 102, 117, 150, 124, 109, 129, 119, 132, 126, 106, 108, 123, 113, 124, 128, 130, 124, 129, 124, 133, 119, 104, 138, 112, 131, 120, 109, 146, 149, 125, 129, 136, 115, 114, 127, 129, 140, 115, 130, 116, 134, 139, 117, 120, 112, 124, 132, 100, 112, 113, 143, 120, 119, 143, 125, 125, 132, 152, 140, 123, 146, 139, 128, 129, 125, 147, 131, 131, 114, 139, 112, 129, 123, 125, 128, 137, 113, 127, 131, 137, 111, 131, 112, 137, 116, 115, 105, 114, 138, 128, 132, 139, 131, 133, 125, 113, 127, 128, 125, 110, 126, 126, 143, 116, 123, 120, 113, 126, 141, 109, 129, 138, 123, 105, 117, 131, 120, 133, 139, 119, 122, 149, 132, 120, 120, 123, 120, 119, 134, 119, 104, 125, 134, 109, 118, 113, 116, 111, 126, 118, 149, 136, 95, 124, 111, 116, 126, 130, 123, 122, 125, 140, 120, 137, 116, 153, 125, 130, 129, 113, 120, 116, 106, 135, 131, 124, 138, 113, 138, 136, 117, 106, 114, 107, 121, 124, 123, 109, 124, 140, 128, 126, 116, 121, 126, 105, 121, 124, 120, 126, 127, 131, 127, 129, 149, 139, 132, 124, 130, 113, 127, 130, 146, 119, 126, 129, 138, 106, 123, 129, 107, 118, 111, 122, 131, 123, 115, 134, 123, 126, 122, 124, 140, 105, 125, 129, 133, 127, 136, 110, 151, 133, 135, 133, 114, 125, 117, 114, 145, 134, 136, 126, 126, 126, 130, 121, 132, 128, 130, 123, 127, 114, 144, 135, 132, 125, 122, 119, 116, 117, 138, 117, 141, 133, 122, 121, 118, 142, 100, 124, 115, 134, 134, 119, 101, 120, 149, 128, 130, 129, 118, 133, 123, 128, 124, 117, 131, 103, 121, 139, 114, 114, 124, 130, 121, 137, 117, 126, 116, 123, 125, 129, 136, 136, 117, 129, 127, 111, 109, 132, 118, 134, 104, 131, 128, 120, 135, 148, 98, 120, 130, 145, 117, 128, 108, 118, 110, 142, 109, 125, 104, 114, 110, 106, 121, 115, 115, 115, 122, 137, 140, 113, 157, 129, 117, 117, 127, 126, 122, 117, 119, 118, 124, 122, 120, 133, 119, 129, 115, 132, 112, 126, 107, 127, 131, 108, 117, 99, 89, 128, 124, 134, 124, 141, 131, 121, 122, 132, 146, 125, 120, 131, 113, 117, 107, 134, 128, 130, 134, 134, 120, 135, 110, 124, 124, 134, 119, 120, 131, 142, 123, 138, 136, 127, 126, 133, 118, 121, 135, 130, 127, 121, 105, 142, 115, 113, 123, 133, 120, 139, 125, 141, 120, 142, 114, 135, 110, 127, 131, 128, 125, 128, 120, 133, 127, 137, 124, 143, 121, 129, 160, 139, 122, 127, 123, 132, 121, 132, 123, 114, 116, 125, 134, 101, 137, 142, 133, 138, 142, 119, 132, 109, 119, 146, 134, 124, 127, 125, 130, 132, 121, 136, 112, 124, 119, 121, 124, 109, 118, 114, 130, 128, 142, 126, 118, 136, 132, 129, 143, 125, 121, 122, 122, 115, 124, 121, 117, 127, 133, 132, 127, 131, 136, 120, 113, 136, 129, 115, 135, 120, 107, 128, 137, 131, 114, 117, 136, 129, 133, 135, 125, 118, 134, 124, 113, 130, 118, 126, 121, 137, 109, 111, 119, 113, 127, 128, 138, 145, 110, 147, 120, 148, 123, 117, 126, 117, 130, 118, 126, 121, 146, 129, 127, 122, 125, 131, 141, 139, 129, 125, 122, 124, 120, 132, 116, 127, 142, 131, 111, 123, 112, 139, 129, 145, 132, 120, 121, 120, 118, 115, 127, 118, 114, 147, 127, 103, 125, 130, 120, 119, 125, 136, 141, 138, 118, 148, 117, 126, 132, 129, 123, 125, 108, 135, 125, 121, 108, 116, 136, 156, 113, 126, 142, 113, 119, 120, 142, 131, 120, 109, 130, 128, 142, 122, 119, 118, 114, 128, 131, 129, 117, 121, 125, 121, 134, 138, 106, 129, 135, 136, 124, 120, 131, 116, 115, 156, 107, 122, 115, 118, 137, 152, 101, 109, 141, 131, 107, 113, 125, 125, 129, 131, 132, 152, 135, 112, 144, 129, 117, 115, 125, 125, 111, 131, 96, 129, 135, 122, 134, 125, 127, 121, 128, 135, 142, 134, 141, 135, 115, 122, 113, 107, 135, 147, 134, 133, 128, 119, 112, 127, 133, 116, 123, 102, 120, 130, 126, 129, 114, 128, 131, 115, 127, 139, 116, 151, 118, 122, 119, 119, 144, 113, 138, 137, 133, 120, 133, 110, 139, 145, 121, 138, 145, 128, 138, 126, 125, 124, 123, 130, 130, 123, 124, 122, 132, 133, 123, 137, 134, 137, 144, 115, 106, 121, 121, 145, 124, 139, 132, 106, 119, 114, 149, 127, 131, 136, 145, 124, 124, 139, 124, 153, 110, 131, 135, 136, 129, 119, 127, 116, 131, 129, 130, 126, 121, 94, 121, 128, 120, 133, 104, 133, 121, 117, 106, 109, 132, 131, 129, 129, 133, 120, 122, 135, 137, 122, 97, 117, 123, 119, 123, 135, 129, 117, 116, 132, 107, 122, 124, 136, 126, 123, 125, 119, 120, 140, 132, 129, 111, 138, 138, 132, 117, 134, 121, 119, 138, 118, 116, 122, 101, 133, 137, 122, 124, 123, 134, 117, 124, 140, 133, 120, 119, 131, 111, 107, 132, 114, 134, 123, 121, 139, 138, 154, 128, 128, 96, 121, 130, 119, 118, 120, 137, 128, 129, 120, 125, 123, 122, 144, 128, 123, 158, 122, 121, 104, 132, 125, 125, 128, 131, 133, 128, 128, 131, 114, 121, 121, 124, 127, 130, 124, 113, 130, 126, 123, 121, 115, 113, 115, 133, 121, 127, 129, 123, 126, 97, 121, 124, 136, 134, 118, 114, 120, 133, 123, 144, 129, 125, 122, 124, 136, 136, 136, 110, 125, 116, 101, 109, 124, 128, 108, 130, 100, 126, 120, 121, 125, 126, 133, 143, 124, 118, 134, 146, 131, 135, 126, 129, 128, 129, 122, 118, 123, 136, 125, 145, 133, 125, 112, 126, 112, 121, 125, 128, 129, 119, 121, 135, 113, 122, 136, 104, 129, 135, 113, 123, 131, 120, 108, 123, 122, 122, 127, 126, 134, 132, 141, 132, 114, 135, 92, 131, 117, 125, 128, 125, 126, 139, 117, 151, 144, 125, 141, 128, 132, 118, 125, 111, 129, 136, 121, 120, 123, 131, 141, 122, 125, 121, 120, 119, 144, 140, 105, 126, 135, 110, 123, 107, 132, 136, 131, 120, 136, 129, 129, 137, 117, 137, 128, 100, 126, 125, 149, 129, 126, 121, 120, 124, 124, 138, 154, 118, 120, 125, 119, 129, 135, 120, 109, 134, 129, 115, 130, 134, 110, 102, 117, 134, 110, 130, 119, 135, 134, 110, 136, 130, 122, 126, 134, 128, 118, 130, 126, 117, 123, 124, 124, 115, 127, 101, 129, 115, 131, 118, 111, 125, 128, 134, 125, 110, 119, 114, 122, 134, 111, 101, 138, 114, 132, 131, 113, 123, 115, 136, 112, 112, 137, 127, 117, 139, 121, 103, 133, 117, 122, 120, 141, 146, 107, 141, 112, 136, 127, 109, 120, 124, 138, 114, 112, 115, 137, 156, 140, 113, 141, 127, 123, 131, 126, 143, 127, 127, 117, 125, 117, 134, 135, 102, 124, 116, 136, 112, 138, 149, 128, 113, 113, 116, 121, 122, 125, 134, 118, 121, 133, 118, 136, 140, 128, 130, 116, 130, 139, 126, 97, 122, 132, 106, 153, 128, 127, 134, 141, 122, 125, 128, 116, 97, 128, 135, 124, 118, 130, 120, 133, 124, 120, 123, 122, 126, 139, 132, 131, 120, 125, 122, 144, 135, 124, 103, 141, 129, 111, 132, 112, 119, 123, 126, 97, 119, 130, 123, 140, 117, 116, 115, 126, 133, 125, 124, 136, 128, 129, 134, 138, 134, 114, 117, 139, 122, 137, 117, 137, 134, 128, 101, 118, 127, 143, 134, 147, 133, 130, 120, 139, 112, 136, 130, 117, 126, 133, 124, 109, 124, 127, 118, 149, 123, 123, 119, 116, 133, 128, 151, 123, 114, 122, 121, 122, 107, 121, 125, 123, 115, 130, 108, 113, 120, 122, 135, 124, 129, 117, 114, 142, 127, 113, 125, 139, 131, 133, 121, 109, 128, 131, 118, 128, 127, 123, 125, 120, 133, 130, 135, 150, 127, 122, 121, 117, 111, 124, 132, 136, 147, 136, 133, 118, 129, 119, 126, 128, 138, 141, 135, 120, 123, 124, 132, 124, 136, 124, 128, 117, 139, 114, 129, 138, 119, 126, 138, 129, 126, 125, 130, 138, 122, 118, 126, 121, 138, 107, 120, 142, 116, 143, 106, 131, 125, 111, 119, 132, 131, 128, 137, 121, 144, 121, 126, 123, 127, 130, 108, 124, 117, 115, 112, 114, 120, 139, 167, 134, 115, 115, 126, 126, 117, 127, 111, 129, 126, 129, 132, 115, 117, 135, 138, 123, 128, 133, 112, 133, 121, 122, 114, 129, 112, 131, 112, 134, 131, 115, 123, 130, 118, 128, 138, 135, 112, 98, 134, 141, 132, 117, 116, 134, 139, 124, 117, 125, 137, 129, 109, 124, 129, 133, 120, 143, 132, 126, 124, 127, 119, 132, 117, 136, 132, 114, 111, 123, 127, 133, 118, 115, 118, 108, 143, 125, 128, 116, 124, 126, 133, 118, 104, 121, 129, 137, 126, 128, 127, 119, 128, 145, 136, 134, 121, 100, 140, 127, 110, 124, 120, 145, 125, 119, 131, 128, 111, 130, 98, 133, 127, 132, 125, 126, 126, 134, 124, 122, 130, 128, 111, 119, 126, 129, 116, 135, 125, 128, 134, 107, 139, 116, 110, 132, 145, 121, 108, 120, 123, 128, 125, 113, 117, 127, 112, 122, 128, 136, 120, 128, 109, 135, 122, 127, 136, 131, 118, 113, 113, 132, 120, 125, 130, 114, 125, 134, 126, 121, 127, 140, 116, 122, 123, 125, 128, 133, 117, 129, 137, 137, 130, 121, 107, 145, 132, 140, 109, 136, 116, 123, 139, 129, 115, 116, 115, 126, 113, 104, 135, 109, 125, 127, 134, 121, 124, 117, 134, 128, 107, 106, 127, 119, 119, 130, 143, 133, 135, 117, 115, 138, 121, 112, 133, 127, 148, 113, 117, 137, 119, 118, 133, 120, 133, 141, 114, 129, 132, 108, 121, 149, 123, 135, 116, 117, 119, 116, 119, 137, 118, 132, 116, 136, 125, 134, 122, 128, 132, 123, 114, 142, 146, 122, 123, 128, 103, 119, 133, 118, 116, 119, 111, 126, 124, 122, 136, 127, 130, 125, 137, 111, 131, 127, 140, 131, 134, 138, 106, 131, 119, 152, 133, 127, 138, 119, 147, 121, 126, 134, 122, 129, 111, 140, 103, 126, 136, 120, 121, 105, 129, 103, 126, 133, 128, 141, 131, 124, 128, 117, 126, 128, 124, 124, 126, 124, 144, 115, 122, 129, 116, 111, 122, 126, 137, 120, 120, 134, 105, 118, 135, 113, 137, 119, 133, 134, 145, 127, 123, 115, 127, 115, 115, 115, 136, 136, 140, 122, 137, 135, 114, 124, 117, 144, 136, 119, 120, 113, 121, 125, 127, 131, 109, 134, 148, 128, 141, 136, 126, 137, 131, 149, 133, 137, 116, 131, 138, 126, 125, 130, 141, 127, 130, 101, 123, 126, 127, 115, 124, 130, 147, 120, 136, 129, 131, 119, 129, 120, 138, 132, 120, 121, 125, 114, 132, 120, 138, 122, 147, 129, 136, 125, 139, 141, 105, 127, 115, 127, 121, 123, 110, 128, 109, 134, 117, 131, 148, 114, 144, 129, 122, 121, 122, 119, 141, 140, 129, 134, 131, 132, 118, 135, 114, 119, 128, 129, 127, 133, 134, 131, 125, 134, 111, 138, 112, 136, 124, 109, 127, 104, 132, 123, 117, 119, 132, 134, 138, 131, 135, 122, 122, 130, 132, 127, 124, 123, 120, 132, 115, 126, 121, 131, 117, 126, 123, 107, 138, 122, 130, 128, 129, 132, 111, 116, 137, 136, 122, 119, 126, 136, 105, 117, 124, 98, 134, 132, 115, 121, 117, 122, 118, 132, 136, 134, 124, 155, 104, 130, 132, 123, 136, 140, 130, 148, 112, 128, 109, 121, 132, 88, 120, 121, 106, 118, 140, 124, 108, 139, 112, 126, 126, 135, 130, 122, 127, 137, 116, 129, 133, 122, 130, 126, 124, 134, 145, 123, 138, 146, 125, 118, 136, 122, 130, 148, 121, 116, 140, 106, 125, 133, 135, 126, 122, 128, 118, 134, 125, 132, 137, 119, 122, 137, 136, 147, 126, 131, 124, 122, 107, 120, 127, 141, 125, 118, 121, 117, 129, 142, 126, 130, 127, 114, 127, 118, 142, 123, 126, 129, 120, 115, 121, 123, 143, 126, 115, 127, 114, 124, 123, 108, 145, 113, 115, 118, 118, 139, 111, 127, 111, 122, 120, 129, 119, 124, 135, 126, 129, 101, 115, 124, 115, 130, 125, 121, 128, 123, 114, 116, 130, 119, 127, 116, 105, 121, 124, 122, 116, 109, 126, 132, 150, 144, 124, 107, 141, 122, 141, 139, 126, 113, 138, 127, 95, 134, 144, 109, 126, 119, 118, 140, 122, 126, 112, 122, 126, 105, 139, 117, 145, 136, 121, 101, 119, 129, 123, 141, 122, 140, 131, 125, 116, 139, 121, 120, 123, 124, 120, 116, 115, 144, 112, 114, 112, 129, 109, 127, 115, 143, 125, 109, 131, 134, 122, 143, 131, 109, 138, 123, 136, 121, 139, 136, 119, 143, 116, 130, 111, 119, 127, 137, 115, 129, 139, 136, 127, 123, 121, 141, 118, 154, 143, 138, 138, 130, 115, 129, 112, 108, 144, 126, 132, 119, 111, 133, 119, 147, 129, 125, 121, 118, 113, 127, 149, 117, 120, 117, 122, 121, 136, 131, 122, 118, 128, 132, 125, 120, 125, 124, 115, 136, 124, 122, 118, 116, 123, 111, 136, 146, 122, 126, 133, 128, 119, 126, 118, 114, 135, 121, 116, 118, 149, 112, 99, 123, 134, 131, 132, 127, 133, 145, 126, 139, 140, 133, 108, 146, 144, 127, 122, 115, 128, 114, 113, 119, 118, 122, 121, 113, 117, 124, 123, 128, 117, 96, 113, 115, 116, 151, 134, 99, 116, 102, 125, 131, 123, 116, 119, 117, 122, 133, 121, 109, 110, 142, 133, 138, 133, 123, 131, 136, 133, 135, 111, 129, 127, 118, 123, 114, 118, 118, 114, 129, 128, 132, 133, 113, 130, 125, 122, 131, 115, 111, 126, 121, 118, 131, 147, 122, 137, 127, 121, 118, 121, 128, 117, 138, 129, 121, 122, 118, 128, 138, 113, 130, 124, 115, 117, 107, 116, 119, 124, 114, 126, 141, 107, 142, 143, 125, 145, 124, 135, 140, 131, 118, 138, 111, 116, 108, 121, 120, 118, 119, 109, 110, 142, 112, 117, 128, 127, 121, 129, 131, 124, 121, 144, 128, 114, 133, 125, 133, 129, 118, 132, 142, 110, 128, 113, 122, 124, 122, 126, 125, 134, 124, 110, 159, 121, 121, 124, 128, 136, 138, 120, 126, 131, 137, 111, 123, 115, 103, 126, 129, 121, 134, 113, 122, 153, 131, 127, 119, 122, 121, 124, 121, 128, 134, 127, 134, 135, 120, 110, 117, 126, 119, 115, 130, 129, 117, 124, 124, 111, 120, 127, 142, 133, 129, 129, 131, 133, 128, 129, 131, 123, 129, 126, 121, 136, 147, 127, 118, 116, 123, 114, 137, 132, 123, 120, 142, 133, 134, 113, 134, 108, 137, 142, 121, 128, 134, 113, 129, 126, 136, 122, 115, 126, 130, 126, 131, 119, 125, 117, 141, 147, 126, 101, 115, 129, 130, 129, 117, 142, 112, 121, 138, 116, 133, 120, 109, 120, 113, 139, 111, 125, 103, 120, 140, 116, 126, 101, 122, 113, 149, 115, 146, 123, 124, 141, 105, 119, 119, 127, 125, 120, 118, 122, 118, 117, 129, 130, 122, 146, 123, 136, 127, 128, 129, 97, 128, 121, 130, 137, 140, 128, 122, 106, 146, 123, 106, 129, 113, 123, 109, 142, 126, 129, 147, 128, 135, 117, 130, 138, 114, 140, 126, 118, 116, 125, 119, 121, 107, 116, 90, 132, 144, 118, 131, 123, 116, 137, 134, 132, 121, 114, 127, 132, 144, 113, 122, 121, 127, 118, 114, 126, 131, 130, 116, 120, 130, 122, 131, 123, 86, 112, 122, 130, 127, 110, 140, 119, 123, 155, 120, 129, 118, 130, 130, 141, 120, 128, 121, 117, 126, 126, 106, 128, 125, 125, 136, 128, 120, 135, 123, 131, 127, 136, 134, 140, 120, 144, 139, 143, 109, 124, 142, 139, 105, 133, 128, 129, 125, 132, 121, 122, 136, 124, 151, 137, 142, 111, 128, 126, 126, 131, 115, 133, 144, 133, 130, 117, 116, 124, 121, 129, 130, 136, 112, 135, 140, 122, 132, 141, 121, 123, 137, 138, 130, 126, 131, 130, 143, 148, 134, 145, 122, 117, 139, 134, 131, 114, 133, 126, 124, 127, 112, 154, 126, 131, 116, 127, 120, 122, 123, 119, 132, 119, 109, 134, 122, 127, 123, 112, 115, 127, 131, 148, 125, 128, 121, 115, 118, 124, 134, 122, 114, 123, 127, 119, 136, 127, 130, 112, 129, 118, 123, 145, 124, 128, 139, 125, 121, 122, 140, 126, 109, 136, 102, 131, 137, 111, 114, 139, 138, 113, 118, 122, 131, 126, 129, 123, 125, 113, 116, 118, 104, 117, 123, 136, 123, 104, 120, 151, 112, 121, 122, 124, 126, 116, 116, 107, 120, 120, 112, 135, 146, 121, 102, 107, 111, 149, 122, 125, 142, 123, 113, 112, 123, 122, 113, 123, 117, 114, 142, 124, 114, 115, 128, 113, 134, 117, 118, 122, 119, 121, 121, 139, 135, 117, 115, 124, 117, 130, 131, 137, 124, 132, 115, 109, 113, 111, 119, 124, 127, 132, 131, 121, 114, 125, 120, 106, 119, 117, 121, 134, 121, 126, 117, 103, 128, 131, 129, 118, 119, 129, 131, 137, 137, 145, 96, 130, 126, 119, 116, 111, 138, 126, 149, 116, 117, 123, 114, 132, 129, 127, 125, 114, 120, 138, 118, 115, 127, 142, 111, 113, 119, 118, 139, 111, 133, 110, 111, 135, 116, 123, 119, 131, 124, 137, 134, 130, 127, 120, 124, 131, 125, 131, 120, 140, 118, 127, 123, 124, 99, 145, 125, 132, 123, 123, 129, 140, 137, 145, 127, 135, 122, 118, 126, 131, 125, 123, 118, 116, 138, 126, 119, 128, 120, 124, 113, 127, 116, 126, 111, 120, 121, 128, 129, 145, 136, 122, 140, 120, 134, 125, 120, 110, 138, 120, 103, 119, 143, 136, 119, 125, 119, 137, 110, 118, 139, 139, 121, 127, 107, 144, 123, 119, 115, 115, 117, 122, 130, 121, 119, 125, 131, 138, 129, 118, 129, 146, 124, 131, 105, 120, 110, 135, 135, 130, 119, 135, 130, 122, 116, 118, 111, 117, 129, 124, 118, 139, 118, 119, 130, 110, 130, 130, 123, 121, 129, 136, 115, 117, 126, 132, 121, 139, 130, 138, 141, 145, 123, 106, 132, 127, 127, 131, 148, 124, 130, 125, 138, 124, 114, 114, 135, 117, 131, 109, 118, 126, 108, 128, 135, 118, 114, 107, 134, 96, 137, 115, 136, 152, 112, 137, 128, 130, 132, 131, 133, 130, 137, 133, 143, 125, 117, 121, 113, 123, 144, 119, 125, 134, 131, 137, 137, 124, 116, 122, 137, 135, 125, 131, 134, 108, 130, 139, 132, 129, 136, 122, 130, 117, 130, 123, 122, 125, 125, 122, 117, 125, 134, 122, 129, 107, 146, 129, 98, 122, 118, 132, 129, 120, 116, 128, 130, 126, 130, 112, 131, 124, 132, 123, 109, 132, 121, 119, 123, 139, 136, 130, 118, 110, 111, 128, 116, 116, 112, 129, 116, 121, 111, 128, 140, 122, 121, 112, 151, 110, 122, 138, 127, 130, 111, 130, 120, 122, 134, 134, 125, 133, 128, 132, 142, 116, 121, 122, 127, 140, 131, 130, 122, 112, 141, 113, 126, 101, 111, 116, 131, 140, 117, 128, 118, 143, 142, 125, 122, 115, 128, 118, 147, 114, 139, 124, 109, 144, 122, 123, 121, 133, 126, 148, 129, 129, 123, 138, 118, 130, 130, 131, 115, 134, 126, 122, 130, 127, 107, 117, 127, 125, 113, 125, 123, 118, 117, 124, 105, 110, 140, 115, 135, 116, 117, 125, 129, 130, 113, 134, 121, 116, 125, 135, 128, 121, 122, 141, 154, 127, 129, 101, 109, 169, 124, 123, 127, 124, 115, 131, 121, 113, 133, 129, 128, 119, 122, 119, 143, 131, 119, 137, 100, 123, 122, 125, 133, 136, 121, 135, 125, 123, 106, 118, 124, 112, 121, 131, 129, 117, 125, 125, 114, 119, 124, 123, 119, 123, 114, 138, 138, 122, 126, 125, 121, 112, 130, 122, 134, 125, 129, 144, 132, 144, 118, 119, 109, 127, 124, 136, 111, 128, 134, 135, 127, 120, 131, 119, 156, 131, 126, 130, 115, 131, 124, 115, 102, 124, 129, 123, 121, 124, 128, 125, 131, 133, 126, 118, 130, 159, 129, 116, 119, 132, 123, 123, 127, 116, 137, 112, 127, 125, 118, 121, 134, 143, 132, 131, 149, 127, 113, 123, 121, 118, 119, 116, 116, 105, 127, 127, 129, 127, 122, 110, 138, 114, 116, 135, 149, 136, 118, 120, 158, 118, 134, 126, 120, 124, 128, 126, 112, 108, 134, 129, 120, 117, 127, 126, 120, 116, 116, 119, 129, 118, 124, 129, 117, 144, 142, 128, 130, 120, 121, 120, 124, 128, 121, 115, 121, 125, 115, 140, 131, 119, 117, 117, 126, 136, 124, 121, 118, 120, 124, 127, 117, 124, 125, 132, 130, 127, 127, 120, 129, 121, 126, 123, 138, 130, 109, 124, 128, 132, 136, 124, 129, 122, 125, 126, 137, 130, 149, 123, 103, 141, 113, 115, 122, 123, 127, 123, 109, 115, 116, 135, 98, 122, 131, 124, 118, 137, 122, 102, 124, 122, 118, 118, 124, 122, 126, 121, 132, 118, 125, 127, 118, 121, 119, 128, 129, 128, 128, 135, 119, 126, 122, 115, 128, 136, 137, 117, 143, 114, 145, 118, 131, 121, 136, 131, 120, 130, 116, 147, 131, 128, 139, 124, 135, 122, 123, 122, 126, 140, 125, 111, 115, 128, 128, 135, 135, 125, 131, 106, 133, 125, 133, 120, 130, 124, 123, 120, 123, 117, 128, 107, 130, 111, 127, 134, 126, 121, 118, 128, 133, 115, 119, 148, 105, 113, 126, 140, 134, 154, 110, 130, 113, 112, 125, 119, 121, 119, 115, 120, 117, 126, 116, 118, 110, 123, 120, 125, 128, 127, 112, 111, 123, 121, 133, 129, 104, 118, 121, 120, 125, 149, 134, 111, 123, 142, 132, 121, 116, 134, 147, 126, 121, 126, 138, 138, 125, 124, 140, 120, 138, 134, 115, 124, 130, 120, 119, 121, 125, 121, 120, 123, 141, 114, 127, 140, 129, 135, 115, 143, 136, 128, 124, 129, 130, 134, 115, 116, 122, 113, 122, 119, 128, 132, 109, 114, 118, 144, 133, 136, 129, 142, 144, 113, 119, 127, 98, 136, 129, 103, 109, 125, 123, 107, 129, 112, 130, 121, 105, 131, 117, 107, 111, 131, 131, 114, 116, 132, 132, 107, 121, 113, 131, 120, 127, 125, 133, 124, 145, 122, 129, 119, 104, 130, 108, 119, 127, 112, 122, 126, 124, 133, 120, 135, 134, 131, 135, 123, 136, 118, 116, 107, 116, 127, 133, 128, 119, 122, 124, 147, 106, 114, 130, 126, 130, 123, 114, 127, 140, 133, 135, 115, 121, 121, 120, 126, 119, 113, 117, 137, 118, 111, 108, 114, 144, 119, 142, 102, 129, 115, 135, 95, 143, 124, 117, 134, 129, 126, 127, 116, 122, 131, 122, 146, 124, 142, 129, 132, 114, 127, 110, 135, 126, 139, 136, 119, 113, 131, 126, 123, 132, 125, 129, 124, 121, 109, 118, 133, 124, 133, 119, 122, 124, 121, 117, 139, 122, 126, 97, 115, 128, 127, 126, 119, 129, 139, 146, 100, 125, 124, 122, 111, 141, 135, 111, 132, 137, 114, 136, 132, 112, 111, 128, 131, 126, 137, 116, 123, 144, 131, 118, 120, 105, 121, 109, 130, 129, 130, 135, 132, 114, 125, 118, 141, 126, 106, 130, 113, 143, 132, 130, 103, 118, 128, 135, 122, 130, 110, 118, 135, 127, 141, 137, 126, 109, 134, 115, 118, 143, 135, 130, 119, 127, 112, 132, 119, 116, 117, 138, 122, 124, 104, 126, 119, 137, 117, 109, 126, 124, 114, 145, 124, 140, 103, 150, 127, 124, 132, 135, 132, 114, 120, 137, 128, 121, 105, 119, 118, 131, 131, 118, 128, 111, 126, 130, 128, 123, 130, 128, 129, 119, 121, 119, 125, 104, 121, 117, 116, 122, 131, 129, 115, 118, 117, 136, 115, 134, 136, 110, 138, 108, 133, 136, 115, 147, 114, 138, 129, 127, 134, 120, 130, 113, 119, 120, 113, 121, 128, 127, 119, 124, 137, 118, 134, 111, 136, 124, 138, 138, 150, 119, 125, 129, 98, 113, 131, 113, 129, 112, 129, 127, 109, 131, 122, 118, 126, 119, 124, 113, 130, 125, 133, 137, 127, 126, 124, 130, 134, 126, 131, 151, 121, 139, 143, 129, 143, 125, 123, 119, 112, 136, 120, 139, 108, 118, 108, 108, 124, 126, 124, 123, 118, 140, 138, 135, 133, 131, 117, 137, 133, 115, 124, 125, 116, 159, 138, 128, 125, 114, 126, 128, 127, 126, 124, 126, 107, 119, 126, 128, 123, 136, 115, 137, 141, 116, 104, 123, 120, 130, 125, 126, 131, 128, 119, 138, 129, 143, 138, 140, 119, 122, 123, 119, 124, 124, 122, 116, 124, 130, 115, 133, 128, 134, 112, 129, 125, 133, 119, 114, 115, 127, 128, 120, 138, 120, 124, 116, 127, 125, 130, 104, 104, 116, 130, 138, 135, 119, 129, 137, 125, 133, 117, 129, 113, 106, 127, 122, 115, 121, 133, 112, 116, 127, 127, 134, 141, 123, 128, 122, 108, 140, 117, 141, 126, 130, 127, 120, 120, 115, 129, 128, 115, 113, 123, 111, 139, 111, 121, 140, 112, 127, 102, 126, 124, 110, 123, 103, 153, 122, 123, 126, 140, 121, 117, 130, 128, 122, 133, 126, 127, 120, 113, 138, 128, 124, 126, 116, 112, 133, 127, 130, 133, 116, 138, 112, 130, 128, 121, 126, 130, 122, 111, 131, 118, 129, 136, 142, 113, 119, 123, 130, 106, 130, 120, 133, 124, 117, 121, 121, 150, 139, 130, 124, 132, 103, 128, 109, 121, 140, 135, 113, 119, 131, 103, 114, 130, 126, 134, 130, 135, 131, 115, 124, 138, 119, 125, 144, 131, 144, 116, 126, 123, 145, 121, 112, 121, 122, 119, 120, 134, 121, 131, 113, 124, 127, 102, 117, 116, 127, 122, 133, 114, 121, 135, 128, 112, 140, 117, 118, 128, 110, 126, 129, 135, 131, 120, 120, 116, 117, 132, 121, 136, 128, 140, 123, 143, 130, 114, 116, 136, 127, 123, 120, 132, 137, 89, 121, 121, 125, 126, 148, 140, 127, 123, 127, 139, 125, 124, 127, 134, 133, 128, 111, 112, 112, 111, 120, 114, 102, 124, 130, 131, 138, 138, 107, 131, 120, 114, 134, 114, 122, 122, 128, 130, 121, 107, 110, 96, 114, 117, 117, 125, 125, 132, 102, 123, 129, 129, 123, 130, 108, 114, 106, 127, 121, 118, 127, 113, 123, 105, 123, 122, 105, 110, 121, 123, 121, 121, 128, 131, 115, 128, 132, 127, 124, 141, 141, 116, 116, 132, 134, 124, 127, 128, 106, 129, 134, 121, 138, 127, 122, 107, 112, 122, 113, 130, 140, 133, 126, 117, 110, 132, 138, 134, 129, 136, 123, 130, 135, 118, 126, 108, 139, 121, 125, 125, 124, 123, 131, 116, 117, 122, 122, 115, 146, 131, 119, 123, 116, 128, 121, 144, 116, 151, 114, 112, 120, 127, 120, 113, 123, 125, 119, 121, 131, 110, 118, 124, 115, 110, 114, 130, 125, 124, 133, 119, 117, 110, 125, 131, 141, 150, 129, 116, 129, 146, 120, 134, 134, 130, 126, 147, 123, 112, 121, 123, 141, 126, 132, 124, 125, 123, 128, 129, 116, 139, 135, 124, 119, 122, 124, 126, 133, 114, 136, 127, 131, 114, 137, 127, 118, 125, 138, 137, 145, 132, 120, 138, 134, 138, 110, 117, 123, 120, 130, 114, 123, 110, 145, 122, 138, 118, 119, 136, 128, 118, 140, 119, 117, 138, 131, 128, 134, 109, 128, 142, 110, 133, 131, 126, 136, 145, 132, 120, 126, 115, 128, 123, 137, 121, 120, 133, 132, 127, 120, 132, 122, 129, 146, 115, 136, 124, 130, 114, 121, 112, 132, 119, 138, 124, 127, 128, 108, 151, 147, 118, 134, 116, 135, 118, 127, 101, 120, 126, 136, 124, 149, 127, 128, 120, 142, 136, 132, 128, 127, 115, 112, 146, 137, 147, 129, 122, 116, 121, 137, 131, 137, 134, 133, 122, 133, 124, 130, 142, 122, 121, 103, 111, 121, 98, 123, 123, 128, 120, 130, 141, 129, 129, 107, 123, 123, 125, 122, 128, 128, 135, 128, 116, 132, 133, 127, 133, 132, 124, 116, 135, 121, 123, 123, 121, 122, 132, 121, 134, 106, 142, 118, 103, 121, 124, 120, 125, 138, 118, 131, 130, 114, 122, 124, 122, 133, 119, 105, 125, 131, 117, 136, 114, 118, 126, 128, 127, 137, 117, 129, 110, 136, 120, 137, 130, 158, 118, 125, 109, 136, 133, 108, 138, 129, 128, 117, 148, 143, 144, 110, 111, 124, 137, 117, 136, 133, 119, 115, 126, 129, 132, 114, 117, 128, 153, 114, 128, 112, 110, 134, 132, 123, 122, 107, 134, 150, 127, 121, 131, 95, 133, 148, 142, 121, 143, 109, 120, 117, 120, 127, 105, 117, 119, 127, 125, 127, 118, 116, 135, 133, 119, 133, 122, 104, 115, 140, 123, 123, 126, 127, 117, 129, 139, 128, 140, 119, 130, 138, 123, 138, 117, 133, 129, 118, 126, 132, 140, 141, 132, 124, 129, 128, 125, 135, 136, 141, 112, 133, 124, 128, 127, 127, 118, 118, 117, 104, 125, 121, 115, 138, 121, 117, 111, 124, 140, 120, 123, 123, 124, 114, 130, 130, 114, 134, 127, 138, 133, 127, 112, 116, 116, 126, 124, 143, 121, 124, 123, 126, 130, 123, 127, 118, 127, 109, 122, 121, 122, 120, 109, 134, 127, 118, 129, 129, 107, 128, 124, 126, 119, 125, 117, 120, 119, 131, 124, 123, 127, 141, 112, 129, 156, 127, 130, 114, 115, 126, 151, 138, 108, 139, 139, 117, 122, 114, 129, 122, 103, 120, 111, 119, 129, 123, 132, 126, 132, 139, 132, 135, 130, 117, 128, 147, 106, 136, 110, 129, 122, 116, 124, 129, 126, 132, 140, 117, 120, 121, 129, 124, 123, 111, 120, 140, 122, 128, 108, 135, 130, 126, 129, 124, 120, 114, 122, 116, 130, 115, 142, 128, 119, 127, 123, 122, 135, 138, 134, 126, 121, 125, 105, 136, 136, 102, 115, 123, 117, 119, 129, 129, 130, 127, 107, 109, 138, 137, 138, 119, 124, 135, 123, 143, 109, 124, 142, 126, 128, 134, 136, 118, 125, 120, 110, 121, 139, 120, 118, 113, 149, 144, 134, 108, 126, 138, 134, 131, 129, 123, 117, 112, 108, 130, 126, 125, 130, 119, 112, 132, 134, 132, 108, 133, 122, 128, 141, 134, 125, 127, 135, 132, 125, 110, 116, 118, 122, 142, 140, 120, 123, 117, 135, 133, 104, 122, 117, 133, 148, 110, 123, 125, 129, 132, 133, 126, 127, 120, 120, 127, 122, 134, 133, 120, 119, 134, 133, 120, 122, 125, 119, 126, 111, 137, 142, 118, 124, 117, 130, 112, 124, 115, 123, 141, 139, 127, 129, 133, 129, 141, 131, 110, 138, 125, 105, 110, 137, 123, 137, 121, 110, 138, 131, 143, 129, 130, 128, 119, 108, 110, 137, 122, 145, 108, 109, 124, 112, 133, 110, 134, 122, 133, 122, 114, 121, 100, 120, 132, 128, 140, 140, 129, 122, 121, 121, 135, 130, 135, 133, 118, 148, 118, 127, 100, 126, 157, 111, 118, 139, 113, 124, 134, 100, 118, 112, 115, 126, 134, 122, 120, 125, 111, 117, 137, 115, 120, 122, 131, 117, 126, 131, 137, 108, 123, 116, 122, 121, 129, 126, 125, 117, 120, 122, 142, 113, 132, 124, 131, 128, 117, 123, 131, 129, 116, 124, 114, 119, 133, 121, 128, 104, 135, 123, 119, 116, 113, 135, 115, 128, 126, 116, 140, 110, 137, 122, 126, 127, 128, 116, 132, 123, 131, 114, 143, 133, 96, 122, 119, 128, 138, 131, 122, 124, 132, 123, 128, 133, 130, 143, 132, 137, 133, 128, 129, 117, 118, 132, 119, 130, 126, 137, 133, 146, 117, 138, 109, 109, 123, 117, 129, 123, 127, 128, 140, 128, 123, 138, 139, 132, 131, 124, 111, 117, 110, 150, 114, 115, 124, 130, 131, 122, 131, 121, 129, 124, 112, 124, 118, 119, 134, 126, 140, 111, 144, 115, 130, 132, 139, 131, 111, 129, 115, 147, 118, 123, 126, 107, 115, 122, 127, 110, 127, 120, 125, 130, 134, 140, 126, 127, 140, 118, 123, 125, 132, 124, 126, 120, 124, 123, 111, 119, 148, 136, 130, 140, 125, 135, 129, 125, 138, 125, 134, 125, 124, 124, 115, 129, 117, 117, 127, 133, 122, 120, 119, 106, 128, 128, 125, 113, 130, 128, 125, 121, 117, 130, 128, 123, 116, 133, 122, 128, 131, 115, 120, 108, 137, 122, 143, 128, 122, 132, 126, 121, 121, 111, 126, 129, 130, 124, 121, 116, 137, 125, 122, 117, 151, 127, 146, 130, 126, 125, 123, 119, 123, 142, 136, 113, 109, 116, 125, 128, 120, 131, 113, 139, 120, 121, 122, 105, 130, 132, 128, 119, 119, 124, 135, 123, 124, 120, 111, 113, 144, 124, 120, 124, 122, 138, 121, 141, 126, 129, 138, 117, 136, 126, 132, 127, 117, 143, 116, 104, 105, 133, 131, 126, 136, 115, 110, 124, 136, 121, 122, 123, 131, 124, 130, 126, 100, 134, 110, 131, 120, 146, 123, 124, 126, 128, 120, 122, 120, 124, 126, 134, 124, 106, 131, 127, 127, 115, 121, 91, 122, 112, 117, 124, 122, 129, 127, 124, 126, 148, 128, 111, 128, 124, 125, 133, 121, 130, 137, 125, 137, 130, 112, 116, 124, 122, 122, 114, 130, 131, 124, 130, 132, 127, 141, 127, 114, 112, 132, 144, 121, 113, 115, 130, 118, 121, 129, 116, 118, 142, 120, 137, 123, 130, 131, 125, 135, 114, 137, 129, 116, 117, 118, 122, 147, 137, 117, 109, 128, 119, 136, 127, 130, 132, 132, 114, 136, 124, 127, 119, 114, 135, 118, 113, 119, 137, 125, 113, 115, 122, 125, 134, 124, 133, 118, 118, 142, 134, 115, 118, 135, 126, 120, 127, 121, 125, 119, 132, 133, 125, 128, 134, 123, 118, 128, 130, 126, 128, 135, 131, 128, 113, 135, 123, 131, 135, 144, 114, 127, 125, 107, 145, 130, 136, 128, 151, 130, 126, 130, 127, 130, 123, 118, 126, 116, 120, 131, 134, 122, 125, 128, 117, 110, 139, 129, 116, 122, 109, 122, 140, 129, 113, 132, 113, 103, 131, 129, 116, 117, 132, 123, 111, 129, 112, 130, 120, 112, 131, 114, 126, 122, 129, 136, 136, 129, 121, 132, 121, 128, 126, 126, 140, 139, 126, 131, 137, 116, 133, 127, 137, 111, 121, 127, 106, 122, 121, 140, 136, 134, 127, 130, 117, 139, 124, 117, 127, 128, 116, 117, 124, 119, 121, 131, 143, 106, 120, 132, 114, 149, 131, 129, 121, 119, 121, 132, 138, 144, 126, 125, 120, 128, 152, 135, 135, 120, 125, 103, 139, 119, 123, 116, 118, 135, 135, 130, 123, 123, 128, 119, 139, 139, 109, 118, 129, 131, 118, 132, 131, 127, 120, 122, 124, 121, 127, 135, 128, 139, 127, 105, 123, 120, 116, 138, 130, 113, 133, 120, 133, 119, 114, 125, 126, 122, 126, 113, 130, 117, 150, 128, 125, 120, 134, 125, 155, 98, 129, 127, 117, 132, 129, 118, 134, 121, 123, 127, 121, 126, 125, 119, 130, 127, 145, 131, 131, 125, 127, 117, 120, 107, 109, 129, 118, 125, 139, 122, 122, 120, 121, 125, 135, 127, 143, 126, 134, 121, 118, 135, 125, 129, 116, 118, 133, 133, 129, 140, 134, 129, 149, 121, 114, 123, 110, 115, 104, 119, 108, 132, 121, 111, 138, 120, 140, 119, 130, 121, 123, 117, 126, 116, 126, 135, 129, 136, 105, 123, 105, 110, 126, 132, 132, 122, 130, 133, 120, 124, 137, 128, 124, 130, 135, 104, 122, 113, 129, 128, 140, 117, 121, 124, 138, 129, 128, 119, 121, 121, 138, 142, 128, 126, 113, 135, 123, 117, 135, 134, 127, 125, 123, 124, 116, 131, 132, 134, 116, 109, 125, 125, 118, 140, 157, 129, 124, 108, 113, 134, 149, 113, 108, 127, 118, 152, 130, 119, 132, 123, 125, 138, 135, 109, 136, 124, 134, 140, 132, 116, 144, 130, 109, 134, 126, 113, 114, 126, 125, 124, 124, 137, 118, 133, 131, 129, 135, 127, 132, 125, 129, 123, 121, 152, 124, 136, 124, 122, 112, 122, 122, 121, 122, 109, 125, 122, 144, 133, 116, 115, 110, 120, 126, 112, 130, 129, 107, 116, 128, 133, 125, 132, 120, 131, 137, 123, 119, 121, 141, 156, 150, 119, 143, 120, 125, 120, 127, 111, 115, 107, 121, 127, 126, 129, 132, 118, 101, 119, 117, 127, 109, 128, 123, 134, 132, 124, 122, 131, 128, 123, 139, 114, 121, 130, 126, 132, 115, 132, 142, 127, 126, 129, 112, 119, 129, 140, 137, 124, 131, 113, 118, 127, 126, 104, 133, 139, 133, 120, 121, 119, 109, 143, 132, 118, 122, 123, 125, 127, 127, 114, 122, 120, 130, 143, 124, 124, 131, 136, 117, 107, 143, 136, 122, 117, 130, 127, 119, 120, 113, 134, 136, 119, 139, 120, 128, 124, 111, 124, 135, 121, 109, 117, 125, 136, 122, 133, 136, 122, 114, 130, 132, 121, 119, 117, 137, 142, 130, 132, 130, 132, 129, 120, 132, 122, 129, 126, 119, 129, 122, 122, 135, 112, 125, 132, 121, 127, 126, 126, 137, 129, 107, 126, 131, 124, 122, 131, 126, 129, 124, 130, 133, 125, 136, 122, 124, 121, 118, 129, 119, 131, 136, 142, 123, 127, 133, 129, 112, 137, 118, 117, 131, 133, 126, 132, 111, 121, 126, 138, 107, 134, 131, 109, 113, 128, 129, 150, 127, 120, 151, 121, 129, 120, 146, 131, 119, 115, 124, 135, 125, 126, 116, 125, 132, 131, 134, 125, 146, 133, 137, 136, 120, 131, 128, 123, 115, 133, 121, 130, 122, 132, 119, 129, 124, 132, 134, 111, 126, 124, 142, 129, 110, 142, 118, 116, 127, 113, 122, 105, 127, 129, 128, 125, 142, 118, 115, 123, 120, 115, 138, 131, 129, 123, 134, 120, 124, 134, 130, 124, 115, 119, 141, 122, 118, 122, 125, 132, 138, 121, 129, 132, 126, 120, 131, 128, 143, 108, 117, 127, 133, 110, 122, 110, 117, 119, 124, 117, 144, 124, 114, 136, 125, 116, 125, 122, 114, 152, 146, 136, 140, 118, 125, 112, 128, 130, 126, 116, 129, 132, 132, 118, 115, 122, 125, 129, 114, 124, 123, 137, 127, 139, 111, 92, 156, 119, 117, 114, 129, 132, 121, 118, 85, 112, 119, 146, 136, 118, 128, 149, 120, 128, 120, 136, 112, 132, 123, 136, 124, 120, 126, 128, 127, 136, 172, 131, 136, 108, 128, 120, 133, 134, 115, 112, 132, 112, 138, 135, 137, 117, 120, 122, 105, 132, 133, 130, 140, 149, 130, 140, 115, 119, 95, 127, 122, 131, 134, 122, 113, 127, 101, 123, 124, 132, 107, 132, 135, 123, 116, 136, 112, 125, 115, 112, 110, 107, 124, 133, 113, 120, 127, 151, 116, 130, 101, 127, 124, 145, 126, 128, 138, 126, 124, 150, 119, 129, 122, 125, 126, 128, 121, 113, 128, 131, 124, 126, 115, 137, 140, 130, 134, 129, 109, 140, 129, 132, 128, 147, 134, 108, 123, 105, 146, 134, 133, 127, 131, 126, 121, 121, 125, 123, 125, 134, 128, 125, 125, 113, 128, 118, 133, 127, 135, 132, 126, 123, 140, 123, 130, 134, 113, 114, 121, 129, 139, 120, 124, 113, 128, 138, 130, 122, 129, 140, 121, 137, 132, 120, 148, 123, 133, 112, 113, 125, 114, 116, 129, 134, 109, 121, 123, 135, 134, 121, 111, 131, 115, 116, 138, 123, 131, 115, 133, 107, 122, 120, 109, 138, 137, 117, 109, 107, 125, 135, 117, 103, 127, 146, 104, 138, 121, 133, 117, 114, 139, 119, 146, 141, 134, 140, 147, 120, 120, 135, 131, 137, 131, 119, 131, 139, 132, 134, 145, 148, 127, 120, 120, 126, 114, 125, 121, 123, 140, 129, 118, 121, 134, 124, 121, 140, 125, 120, 144, 126, 139, 131, 133, 122, 126, 128, 123, 126, 129, 132, 137, 146, 123, 122, 122, 123, 123, 113, 125, 118, 119, 130, 115, 130, 116, 123, 124, 129, 125, 116, 109, 127, 119, 142, 109, 133, 111, 139, 126, 123, 121, 107, 119, 122, 113, 118, 108, 143, 122, 125, 122, 128, 126, 118, 139, 131, 111, 129, 125, 124, 143, 130, 128, 102, 139, 123, 103, 136, 127, 133, 131, 118, 129, 110, 121, 128, 132, 154, 135, 116, 110, 127, 119, 120, 117, 110, 137, 119, 114, 122, 136, 115, 110, 131, 134, 124, 120, 116, 125, 138, 123, 111, 123, 123, 136, 119, 138, 139, 120, 147, 140, 125, 123, 124, 133, 119, 136, 120, 115, 132, 110, 124, 162, 117, 120, 133, 131, 122, 125, 124, 122, 128, 135, 129, 125, 136, 127, 135, 123, 141, 129, 137, 117, 108, 125, 112, 126, 128, 142, 130, 108, 104, 116, 121, 124, 117, 121, 137, 129, 128, 135, 132, 112, 121, 158, 137, 128, 146, 135, 137, 144, 116, 130, 153, 113, 118, 115, 125, 123, 127, 122, 120, 134, 119, 131, 114, 118, 117, 96, 138, 122, 125, 137, 127, 120, 123, 142, 113, 129, 128, 118, 125, 133, 137, 124, 121, 107, 130, 135, 134, 117, 122, 119, 128, 115, 111, 132, 113, 121, 143, 133, 111, 136, 139, 126, 130, 121, 113, 120, 124, 130, 126, 118, 137, 118, 135, 121, 118, 115, 127, 134, 112, 111, 117, 144, 111, 126, 139, 124, 110, 103, 117, 87, 140, 112, 118, 116, 121, 130, 123, 121, 137, 125, 123, 127, 133, 119, 120, 124, 121, 135, 143, 141, 124, 135, 118, 123, 129, 126, 136, 125, 115, 119, 132, 113, 131, 101, 134, 142, 129, 127, 126, 110, 140, 126, 132, 129, 130, 132, 123, 123, 118, 120, 123, 115, 126, 125, 143, 131, 126, 146, 135, 120, 116, 116, 109, 125, 133, 109, 112, 138, 122, 126, 140, 135, 136, 133, 126, 128, 128, 131, 124, 129, 117, 90, 130, 118, 118, 120, 109, 114, 135, 112, 133, 120, 140, 126, 118, 128, 116, 146, 146, 122, 124, 121, 121, 123, 145, 107, 126, 111, 137, 119, 138, 122, 137, 126, 137, 114, 132, 121, 118, 111, 149, 127, 129, 132, 115, 129, 137, 133, 121, 116, 127, 115, 127, 125, 127, 129, 127, 123, 114, 125, 127, 108, 117, 119, 112, 156, 103, 128, 111, 117, 137, 136, 130, 129, 134, 124, 121, 118, 140, 100, 149, 131, 132, 141, 130, 126, 148, 112, 125, 123, 122, 131, 122, 131, 129, 126, 116, 110, 110, 141, 112, 119, 129, 111, 133, 127, 120, 117, 123, 119, 126, 147, 115, 100, 141, 118, 126, 122, 118, 134, 120, 116, 133, 133, 117, 121, 133, 124, 135, 108, 111, 119, 109, 137, 130, 131, 127, 118, 158, 109, 118, 137, 119, 131, 140, 118, 120, 126, 110, 107, 106, 112, 118, 126, 111, 132, 134, 125, 128, 114, 137, 133, 108, 135, 121, 124, 125, 117, 125, 125, 126, 139, 129, 138, 118, 126, 117, 135, 132, 130, 111, 138, 139, 146, 137, 135, 127, 134, 125, 118, 112, 122, 117, 126, 145, 150, 121, 123, 117, 125, 131, 122, 99, 144, 119, 133, 126, 106, 123, 127, 123, 121, 135, 128, 125, 123, 124, 128, 113, 125, 125, 128, 131, 111, 145, 119, 135, 117, 134, 126, 135, 126, 105, 124, 116, 116, 112, 124, 132, 124, 127, 120, 136, 146, 123, 130, 131, 118, 110, 120, 124, 135, 127, 111, 99, 108, 137, 122, 125, 127, 129, 112, 129, 119, 126, 111, 130, 129, 138, 114, 136, 132, 140, 107, 117, 107, 125, 113, 123, 109, 136, 130, 126, 131, 114, 107, 128, 122, 130, 130, 131, 120, 125, 127, 125, 130, 110, 134, 112, 136, 137, 127, 140, 128, 104, 130, 137, 126, 114, 124, 134, 131, 129, 117, 127, 133, 148, 126, 124, 126, 109, 105, 128, 123, 112, 116, 138, 121, 159, 125, 125, 144, 141, 119, 126, 135, 120, 141, 127, 128, 113, 132, 133, 112, 136, 138, 123, 125, 130, 119, 129, 117, 108, 134, 135, 97, 121, 139, 122, 135, 125, 142, 125, 122, 134, 125, 138, 126, 105, 138, 156, 133, 129, 111, 135, 113, 102, 106, 138, 135, 130, 122, 135, 129, 123, 129, 108, 133, 121, 122, 122, 114, 134, 116, 112, 146, 124, 111, 129, 136, 143, 134, 128, 127, 126, 118, 126, 125, 128, 126, 121, 130, 135, 134, 95, 123, 133, 126, 125, 135, 127, 134, 118, 126, 127, 116, 117, 131, 119, 129, 126, 137, 122, 143, 132, 129, 111, 130, 132, 142, 130, 124, 138, 129, 132, 129, 128, 129, 113, 107, 116, 127, 150, 127, 128, 123, 126, 124, 122, 116, 133, 128, 112, 132, 133, 122, 125, 128, 121, 124, 120, 101, 114, 132, 126, 135, 132, 109, 138, 106, 140, 124, 141, 134, 142, 128, 135, 101, 125, 131, 123, 116, 132, 134, 119, 124, 127, 121, 111, 118, 126, 137, 112, 115, 147, 123, 137, 115, 121, 130, 132, 126, 107, 134, 122, 125, 113, 134, 147, 107, 120, 125, 120, 113, 131, 125, 118, 157, 115, 123, 135, 114, 139, 117, 116, 122, 139, 118, 118, 113, 103, 141, 116, 146, 138, 128, 131, 118, 131, 116, 131, 125, 126, 132, 103, 113, 112, 129, 123, 99, 135, 132, 111, 118, 130, 133, 115, 112, 137, 97, 135, 121, 135, 106, 106, 133, 119, 104, 134, 148, 123, 125, 149, 119, 119, 115, 136, 127, 127, 112, 114, 118, 127, 154, 121, 123, 111, 126, 128, 112, 138, 118, 140, 115, 126, 126, 106, 117, 148, 119, 125, 132, 121, 117, 135, 127, 115, 120, 112, 112, 114, 123, 140, 121, 146, 120, 129, 129, 136, 113, 70, 131, 130, 120, 136, 132, 138, 123, 130, 116, 125, 116, 150, 118, 113, 127, 127, 126, 137, 132, 127, 120, 109, 130, 125, 124, 133, 132, 116, 126, 138, 139, 137, 122, 117, 128, 119, 123, 124, 121, 136, 119, 112, 131, 139, 133, 128, 112, 150, 124, 144, 118, 150, 127, 113, 149, 133, 115, 132, 132, 128, 112, 104, 125, 117, 130, 126, 133, 140, 135, 138, 136, 118, 135, 126, 130, 138, 119, 117, 118, 113, 136, 121, 134, 135, 122, 126, 144, 144, 130, 128, 104, 149, 140, 119, 117, 119, 111, 121, 137, 135, 137, 134, 120, 117, 121, 135, 133, 125, 125, 134, 126, 123, 135, 106, 134, 136, 139, 123, 136, 128, 120, 118, 119, 134, 139, 113, 124, 111, 125, 122, 122, 124, 122, 127, 146, 130, 114, 127, 140, 142, 134, 131, 136, 122, 122, 123, 127, 136, 123, 134, 140, 122, 112, 129, 138, 134, 120, 120, 141, 149, 110, 113, 119, 121, 137, 118, 142, 154, 138, 141, 128, 141, 140, 129, 115, 127, 127, 130, 122, 127, 116, 108, 126, 141, 131, 141, 121, 118, 113, 142, 129, 128, 122, 127, 128, 141, 120, 121, 126, 131, 120, 137, 127, 124, 127, 132, 131, 124, 127, 136, 124, 129, 119, 114, 134, 126, 112, 136, 121, 124, 131, 125, 132, 131, 134, 103, 144, 139, 114, 125, 115, 120, 124, 109, 113, 107, 131, 130, 120, 117, 125, 124, 116, 130, 132, 116, 113, 125, 111, 124, 143, 114, 115, 152, 123, 139, 139, 133, 142, 137, 122, 114, 124, 132, 138, 114, 127, 141, 112, 126, 140, 123, 139, 104, 122, 124, 140, 123, 134, 117, 136, 123, 124, 126, 120, 133, 125, 126, 139, 108, 133, 139, 132, 130, 126, 118, 122, 122, 137, 137, 121, 137, 114, 107, 108, 104, 145, 120, 107, 130, 97, 132, 125, 102, 127, 121, 126, 145, 138, 130, 120, 143, 137, 135, 146, 117, 122, 132, 151, 123, 142, 131, 125, 112, 128, 108, 116, 136, 115, 121, 132, 124, 137, 136, 123, 133, 121, 118, 138, 158, 129, 124, 126, 136, 110, 127, 96, 135, 131, 128, 109, 160, 146, 128, 118, 121, 132, 102, 128, 124, 138, 114, 121, 130, 120, 120, 136, 129, 139, 146, 127, 126, 125, 117, 121, 122, 99, 121, 114, 114, 121, 133, 143, 103, 113, 141, 129, 134, 116, 121, 142, 127, 127, 131, 128, 111, 143, 131, 135, 118, 114, 122, 122, 141, 127, 117, 103, 132, 120, 131, 111, 119, 126, 124, 109, 144, 113, 119, 134, 122, 101, 117, 131, 125, 128, 127, 107, 136, 123, 121, 129, 129, 114, 133, 122, 111, 111, 127, 141, 136, 122, 126, 105, 141, 120, 142, 117, 120, 137, 144, 144, 146, 118, 113, 129, 117, 130, 135, 122, 134, 124, 87, 106, 131, 133, 123, 130, 117, 117, 124, 137, 112, 117, 121, 116, 133, 140, 135, 124, 121, 125, 140, 137, 134, 135, 122, 103, 120, 124, 123, 109, 123, 123, 140, 116, 119, 110, 103, 135, 125, 118, 135, 128, 114, 102, 125, 123, 133, 127, 117, 120, 125, 119, 148, 126, 129, 138, 132, 110, 135, 125, 132, 129, 94, 114, 131, 120, 123, 116, 133, 134, 141, 124, 110, 131, 128, 133, 114, 131, 133, 134, 135, 123, 126, 127, 131, 125, 99, 129, 122, 116, 119, 105, 130, 105, 120, 129, 111, 99, 123, 125, 125, 157, 117, 120, 131, 134, 114, 126, 105, 119, 123, 114, 129, 114, 123, 133, 117, 128, 97, 132, 134, 136, 112, 111, 143, 121, 146, 125, 143, 128, 108, 130, 132, 128, 120, 136, 125, 114, 95, 109, 119, 129, 118, 121, 127, 121, 128, 127, 126, 106, 129, 131, 134, 112, 131, 118, 134, 121, 130, 129, 130, 143, 133, 136, 114, 123, 122, 134, 131, 129, 113, 130, 106, 125, 123, 137, 127, 125, 124, 139, 125, 141, 127, 129, 130, 124, 105, 137, 128, 138, 130, 120, 126, 106, 101, 121, 120, 138, 117, 140, 123, 114, 121, 127, 137, 98, 131, 127, 136, 115, 129, 111, 125, 131, 117, 125, 128, 126, 115, 144, 125, 126, 132, 125, 125, 143, 130, 123, 134, 131, 126, 117, 127, 144, 127, 136, 119, 128, 101, 132, 113, 132, 131, 113, 123, 116, 123, 125, 140, 118, 108, 107, 129, 133, 132, 132, 120, 130, 132, 141, 133, 127, 125, 149, 128, 129, 135, 129, 162, 115, 131, 118, 135, 131, 98, 121, 127, 133, 120, 113, 128, 136, 122, 143, 109, 124, 122, 129, 118, 139, 135, 130, 143, 136, 126, 121, 129, 122, 110, 120, 135, 123, 131, 121, 129, 131, 116, 129, 118, 140, 109, 121, 127, 96, 122, 110, 133, 122, 123, 140, 132, 132, 127, 111, 120, 127, 143, 130, 138, 111, 116, 122, 109, 121, 138, 157, 119, 131, 128, 132, 109, 129, 109, 121, 126, 130, 122, 120, 141, 110, 134, 138, 133, 128, 123, 107, 131, 122, 120, 127, 123, 130, 126, 115, 140, 121, 118, 106, 115, 122, 123, 115, 139, 126, 127, 110, 126, 130, 116, 122, 112, 111, 133, 123, 106, 122, 133, 139, 132, 112, 136, 132, 128, 128, 124, 110, 102, 122, 118, 139, 132, 127, 126, 134, 124, 116, 153, 139, 128, 120, 122, 123, 133, 131, 122, 127, 124, 146, 136, 120, 129, 122, 120, 148, 136, 117, 139, 123, 133, 132, 138, 127, 144, 102, 129, 125, 140, 121, 114, 117, 121, 123, 127, 126, 117, 117, 132, 120, 110, 110, 143, 139, 118, 112, 134, 133, 119, 119, 132, 139, 137, 118, 121, 115, 121, 117, 104, 128, 135, 146, 114, 127, 110, 120, 141, 104, 119, 121, 114, 129, 115, 120, 112, 122, 112, 114, 131, 98, 127, 113, 129, 114, 124, 124, 112, 128, 122, 123, 125, 117, 121, 124, 133, 132, 127, 142, 148, 98, 112, 127, 129, 140, 130, 111, 114, 113, 132, 127, 120, 137, 141, 125, 133, 118, 131, 124, 116, 147, 138, 127, 126, 143, 130, 123, 128, 128, 126, 121, 122, 126, 147, 116, 124, 128, 119, 150, 132, 135, 131, 120, 105, 135, 136, 123, 116, 134, 107, 131, 142, 137, 116, 128, 142, 124, 124, 132, 136, 126, 122, 111, 129, 132, 140, 129, 114, 140, 115, 129, 128, 137, 122, 131, 103, 119, 117, 126, 122, 127, 122, 116, 119, 132, 132, 122, 120, 127, 115, 121, 130, 124, 126, 130, 118, 117, 115, 103, 115, 140, 121, 124, 108, 127, 114, 105, 136, 108, 131, 103, 122, 141, 122, 134, 113, 128, 112, 114, 134, 135, 135, 122, 139, 129, 150, 130, 124, 121, 131, 139, 132, 119, 128, 128, 116, 124, 129, 130, 115, 134, 132, 126, 112, 106, 127, 121, 119, 122, 116, 133, 115, 118, 113, 126, 116, 131, 115, 136, 131, 149, 125, 105, 125, 132, 122, 133, 106, 129, 138, 127, 127, 130, 140, 120, 124, 123, 125, 110, 124, 122, 117, 131, 118, 124, 119, 118, 129, 126, 127, 140, 107, 105, 111, 120, 121, 123, 116, 140, 120, 126, 122, 130, 110, 126, 114, 125, 117, 144, 115, 145, 115, 123, 114, 127, 115, 130, 107, 106, 107, 122, 128, 125, 109, 115, 142, 127, 125, 130, 133, 136, 157, 131, 147, 122, 131, 122, 119, 123, 122, 130, 134, 124, 135, 126, 110, 135, 125, 136, 133, 128, 114, 127, 125, 123, 132, 131, 122, 138, 118, 122, 145, 129, 139, 123, 122, 110, 134, 125, 135, 124, 125, 119, 125, 115, 124, 130, 116, 127, 132, 133, 140, 115, 132, 117, 125, 149, 117, 123, 133, 136, 134, 120, 120, 137, 129, 114, 142, 120, 134, 129, 108, 118, 114, 132, 142, 120, 131, 125, 127, 146, 138, 143, 124, 125, 132, 118, 121, 135, 121, 141, 116, 115, 136, 126, 113, 121, 128, 135, 131, 139, 131, 133, 125, 113, 130, 116, 131, 126, 120, 114, 127, 121, 121, 124, 127, 136, 136, 109, 128, 116, 131, 117, 120, 118, 130, 118, 118, 132, 133, 125, 118, 94, 120, 125, 116, 128, 147, 121, 113, 120, 114, 121, 113, 135, 125, 136, 119, 116, 128, 123, 133, 120, 131, 118, 113, 112, 111, 152, 112, 118, 116, 139, 148, 104, 134, 127, 117, 120, 146, 135, 150, 116, 115, 128, 115, 140, 129, 129, 127, 122, 139, 134, 112, 130, 122, 119, 122, 142, 120, 123, 133, 132, 114, 135, 105, 123, 128, 122, 128, 143, 119, 121, 119, 117, 125, 127, 123, 123, 146, 133, 119, 105, 119, 133, 114, 119, 128, 123, 118, 121, 118, 127, 112, 130, 124, 135, 133, 134, 115, 113, 106, 118, 148, 125, 126, 130, 133, 119, 119, 153, 129, 129, 119, 130, 119, 121, 137, 128, 127, 109, 118, 121, 129, 135, 143, 124, 130, 122, 126, 144, 123, 127, 132, 137, 127, 118, 120, 129, 130, 127, 133, 126, 111, 114, 110, 118, 119, 128, 135, 116, 115, 129, 135, 128, 122, 127, 142, 129, 129, 135, 134, 130, 111, 104, 113, 105, 118, 129, 125, 134, 131, 140, 116, 126, 123, 124, 120, 111, 133, 123, 136, 141, 136, 123, 143, 104, 119, 129, 128, 125, 130, 153, 128, 119, 122, 128, 119, 119, 102, 138, 122, 128, 132, 130, 106, 117, 123, 135, 150, 119, 133, 123, 128, 137, 141, 145, 126, 149, 109, 121, 122, 121, 123, 135, 127, 132, 124, 133, 129, 135, 130, 151, 115, 115, 120, 150, 134, 126, 135, 113, 132, 135, 134, 140, 151, 115, 126, 141, 138, 133, 135, 126, 139, 129, 129, 135, 118, 120, 134, 118, 125, 134, 129, 121, 113, 119, 103, 135, 107, 129, 129, 124, 132, 118, 125, 124, 136, 146, 116, 119, 116, 145, 118, 139, 122, 129, 141, 115, 132, 145, 124, 134, 128, 115, 127, 119, 131, 129, 123, 112, 130, 132, 123, 120, 135, 124, 119, 140, 122, 148, 141, 134, 119, 130, 114, 134, 128, 123, 127, 125, 113, 117, 118, 134, 116, 130, 123, 134, 130, 118, 131, 83, 137, 126, 136, 135, 117, 130, 135, 129, 112, 104, 141, 118, 127, 126, 143, 118, 154, 127, 139, 116, 116, 115, 131, 130, 133, 117, 127, 117, 142, 116, 129, 132, 121, 111, 118, 140, 123, 125, 123, 121, 130, 124, 131, 112, 131, 105, 122, 122, 117, 122, 120, 109, 108, 136, 142, 144, 132, 121, 122, 110, 130, 117, 145, 122, 119, 149, 130, 110, 121, 128, 130, 123, 111, 120, 125, 104, 124, 115, 135, 118, 115, 117, 119, 136, 124, 135, 126, 141, 121, 136, 125, 124, 132, 114, 141, 117, 132, 129, 123, 152, 131, 129, 125, 103, 115, 137, 128, 115, 129, 123, 127, 132, 109, 142, 129, 137, 124, 126, 131, 120, 115, 129, 123, 120, 141, 128, 106, 122, 109, 130, 129, 117, 142, 125, 131, 121, 127, 121, 132, 126, 124, 129, 118, 125, 133, 122, 96, 139, 122, 127, 136, 132, 123, 122, 129, 135, 139, 117, 137, 114, 124, 130, 116, 121, 112, 134, 117, 130, 108, 131, 130, 122, 126, 118, 137, 119, 133, 129, 125, 131, 136, 135, 117, 121, 121, 125, 128, 106, 141, 132, 130, 131, 130, 120, 137, 128, 136, 134, 120, 133, 115, 127, 137, 125, 127, 113, 127, 145, 132, 126, 105, 138, 123, 112, 134, 110, 132, 137, 124, 110, 135, 123, 113, 130, 141, 115, 116, 133, 113, 105, 131, 128, 124, 114, 123, 127, 131, 127, 113, 137, 116, 120, 120, 111, 132, 133, 143, 135, 153, 116, 121, 114, 134, 119, 119, 125, 113, 130, 136, 112, 128, 111, 113, 119, 130, 144, 127, 119, 119, 134, 112, 120, 127, 130, 132, 121, 117, 125, 126, 125, 118, 134, 114, 122, 147, 118, 127, 131, 107, 126, 124, 102, 129, 112, 109, 122, 129, 115, 122, 136, 129, 135, 118, 125, 118, 133, 137, 112, 103, 134, 131, 118, 133, 125, 129, 131, 115, 119, 99, 133, 106, 148, 123, 113, 125, 115, 130, 128, 130, 132, 128, 145, 113, 135, 116, 117, 136, 137, 119, 132, 128, 122, 122, 138, 133, 117, 135, 145, 140, 116, 130, 113, 112, 128, 105, 104, 132, 128, 127, 135, 129, 124, 126, 112, 134, 123, 117, 121, 121, 125, 116, 130, 118, 129, 121, 134, 128, 121, 145, 119, 122, 114, 120, 127, 107, 116, 125, 137, 115, 125, 124, 136, 125, 110, 111, 125, 111, 121, 124, 133, 139, 126, 128, 130, 142, 132, 115, 128, 115, 124, 125, 140, 122, 127, 116, 120, 149, 137, 137, 116, 138, 131, 112, 120, 128, 122, 131, 110, 134, 123, 148, 118, 111, 123, 124, 119, 123, 146, 123, 132, 120, 119, 127, 137, 126, 116, 125, 133, 116, 120, 122, 108, 121, 133, 131, 135, 111, 126, 137, 134, 129, 108, 117, 119, 137, 136, 140, 117, 112, 133, 125, 123, 111, 116, 126, 129, 121, 132, 114, 147, 110, 125, 116, 150, 123, 139, 126, 121, 108, 129, 121, 112, 137, 132, 132, 118, 129, 124, 153, 130, 129, 113, 120, 118, 130, 127, 130, 128, 142, 114, 114, 122, 140, 116, 128, 116, 127, 111, 129, 105, 120, 123, 126, 137, 127, 131, 134, 112, 131, 112, 142, 132, 133, 125, 121, 115, 125, 134, 112, 142, 126, 128, 132, 137, 139, 131, 106, 138, 147, 121, 127, 127, 122, 112, 130, 118, 144, 145, 128, 122, 123, 123, 136, 123, 133, 125, 111, 123, 130, 111, 126, 133, 132, 108, 122, 126, 108, 133, 104, 142, 128, 128, 117, 140, 125, 131, 114, 123, 144, 132, 123, 125, 115, 127, 126, 140, 127, 119, 126, 117, 148, 99, 112, 136, 119, 136, 103, 133, 127, 130, 136, 114, 111, 123, 126, 104, 126, 106, 131, 131, 105, 119, 108, 137, 138, 133, 134, 142, 137, 134, 117, 126, 135, 113, 122, 130, 139, 123, 113, 127, 129, 145, 121, 120, 126, 114, 143, 126, 125, 134, 128, 117, 119, 124, 106, 118, 126, 116, 131, 127, 116, 123, 124, 131, 145, 124, 139, 124, 158, 139, 109, 129, 114, 135, 137, 129, 135, 136, 126, 117, 104, 140, 108, 130, 117, 130, 109, 131, 128, 107, 102, 116, 142, 129, 142, 114, 125, 134, 103, 128, 120, 122, 120, 134, 138, 127, 126, 134, 118, 114, 132, 135, 117, 116, 122, 123, 120, 133, 124, 123, 119, 123, 120, 129, 113, 139, 128, 118, 132, 141, 137, 129, 120, 109, 122, 124, 141, 139, 121, 133, 144, 119, 109, 133, 117, 139, 127, 110, 120, 130, 124, 135, 131, 109, 123, 104, 126, 129, 111, 118, 144, 134, 136, 119, 123, 142, 119, 134, 136, 126, 134, 106, 100, 127, 129, 127, 125, 126, 143, 121, 121, 146, 123, 132, 117, 114, 127, 120, 141, 126, 134, 144, 130, 132, 121, 141, 119, 137, 121, 118, 116, 111, 114, 128, 130, 108, 138, 118, 117, 130, 122, 136, 127, 131, 132, 142, 127, 115, 121, 127, 128, 124, 148, 135, 120, 147, 122, 116, 116, 125, 124, 135, 138, 131, 126, 119, 124, 122, 119, 139, 127, 109, 119, 119, 131, 129, 133, 121, 140, 127, 127, 143, 117, 122, 151, 130, 120, 136, 120, 126, 129, 107, 126, 123, 125, 111, 113, 136, 112, 116, 131, 140, 128, 152, 140, 128, 125, 100, 118, 126, 121, 117, 131, 128, 127, 132, 124, 144, 119, 126, 123, 130, 125, 129, 122, 128, 105, 118, 130, 124, 107, 136, 122, 140, 126, 119, 116, 121, 124, 135, 133, 139, 120, 126, 119, 116, 118, 125, 101, 133, 120, 136, 119, 120, 130, 105, 118, 132, 133, 126, 110, 122, 119, 135, 124, 136, 142, 136, 119, 156, 141, 143, 135, 133, 128, 118, 135, 131, 97, 114, 123, 132, 113, 129, 120, 119, 139, 108, 112, 114, 127, 131, 106, 116, 126, 121, 106, 125, 119, 125, 127, 131, 112, 124, 123, 118, 122, 109, 118, 112, 129, 140, 132, 127, 111, 129, 117, 116, 138, 147, 129, 129, 118, 134, 130, 138, 137, 129, 97, 138, 111, 136, 135, 109, 121, 124, 136, 120, 124, 128, 123, 105, 134, 102, 119, 112, 125, 124, 118, 116, 124, 115, 133, 125, 105, 129, 132, 123, 116, 113, 116, 113, 123, 129, 137, 130, 133, 126, 140, 124, 108, 125, 131, 116, 119, 114, 127, 113, 122, 137, 141, 108, 114, 114, 128, 116, 155, 133, 128, 115, 124, 121, 124, 112, 129, 116, 121, 126, 126, 127, 127, 118, 127, 141, 150, 148, 131, 125, 105, 136, 137, 105, 116, 125, 134, 128, 113, 136, 134, 127, 127, 118, 128, 133, 112, 131, 114, 134, 128, 128, 129, 113, 117, 139, 142, 123, 120, 113, 125, 133, 134, 140, 116, 143, 149, 130, 131, 125, 122, 123, 128, 132, 128, 115, 116, 140, 141, 134, 130, 133, 141, 151, 113, 125, 129, 124, 140, 108, 128, 117, 148, 119, 122, 116, 118, 117, 142, 128, 128, 129, 127, 130, 137, 110, 117, 119, 92, 119, 125, 137, 138, 118, 120, 123, 123, 125, 141, 120, 130, 120, 115, 117, 107, 117, 132, 137, 105, 126, 131, 132, 104, 140, 124, 140, 137, 132, 124, 144, 109, 123, 134, 113, 123, 125, 135, 106, 119, 113, 127, 111, 132, 119, 118, 121, 136, 125, 126, 129, 136, 124, 136, 133, 126, 134, 113, 103, 127, 109, 112, 131, 132, 129, 120, 129, 112, 122, 121, 127, 129, 125, 132, 124, 143, 125, 143, 111, 126, 132, 132, 139, 132, 129, 117, 133, 120, 110, 116, 120, 121, 131, 104, 116, 119, 128, 136, 122, 117, 119, 131, 124, 123, 130, 134, 125, 122, 142, 135, 118, 112, 130, 130, 130, 122, 154, 116, 114, 152, 135, 131, 115, 141, 124, 139, 147, 117, 113, 119, 107, 107, 117, 126, 119, 138, 124, 125, 132, 120, 103, 119, 131, 121, 143, 133, 134, 121, 121, 133, 140, 141, 133, 114, 138, 129, 122, 134, 136, 123, 125, 135, 100, 120, 133, 138, 124, 113, 133, 120, 130, 129, 137, 118, 162, 130, 120, 121, 134, 125, 125, 116, 123, 117, 128, 127, 110, 141, 126, 119, 129, 132, 127, 122, 122, 119, 130, 122, 122, 132, 113, 129, 132, 90, 117, 120, 137, 119, 135, 124, 120, 131, 130, 129, 122, 130, 123, 142, 121, 117, 120, 142, 128, 138, 137, 131, 126, 142, 122, 139, 129, 111, 134, 143, 113, 144, 134, 120, 116, 117, 119, 132, 145, 120, 131, 111, 136, 116, 137, 136, 130, 133, 135, 133, 122, 136, 133, 125, 133, 142, 115, 133, 128, 109, 120, 142, 130, 127, 115, 134, 123, 104, 123, 125, 135, 127, 126, 135, 119, 145, 133, 101, 126, 126, 142, 114, 136, 139, 124, 125, 116, 137, 125, 138, 117, 122, 124, 144, 121, 119, 119, 128, 126, 107, 137, 112, 139, 127, 106, 113, 125, 132, 111, 123, 111, 109, 105, 133, 136, 120, 136, 133, 135, 133, 113, 126, 135, 129, 115, 107, 125, 127, 122, 115, 117, 126, 111, 111, 131, 118, 106, 148, 139, 121, 124, 117, 130, 133, 101, 133, 119, 123, 121, 123, 135, 131, 112, 116, 108, 124, 132, 130, 128, 116, 133, 126, 139, 126, 100, 155, 124, 119, 130, 115, 108, 116, 108, 129, 136, 118, 144, 120, 143, 109, 135, 139, 132, 110, 115, 120, 126, 133, 120, 133, 117, 130, 109, 119, 123, 128, 131, 123, 132, 112, 122, 124, 121, 121, 131, 114, 129, 122, 119, 116, 134, 140, 142, 127, 143, 127, 127, 133, 119, 124, 144, 126, 132, 131, 137, 140, 127, 137, 129, 123, 137, 123, 126, 120, 118, 95, 137, 131, 126, 115, 128, 124, 138, 128, 132, 137, 116, 147, 133, 119, 115, 98, 117, 126, 117, 130, 122, 144, 125, 123, 116, 130, 130, 126, 140, 122, 140, 126, 125, 116, 130, 123, 119, 138, 123, 130, 122, 117, 117, 135, 122, 118, 147, 139, 110, 105, 121, 123, 120, 121, 133, 142, 118, 124, 122, 128, 132, 130, 123, 116, 127, 124, 123, 144, 113, 118, 136, 121, 130, 111, 138, 117, 105, 113, 145, 133, 138, 128, 111, 106, 105, 115, 118, 123, 131, 120, 127, 122, 119, 137, 132, 135, 113, 118, 140, 125, 142, 118, 116, 129, 132, 135, 133, 108, 131, 143, 115, 98, 135, 139, 135, 111, 123, 130, 115, 114, 109, 134, 114, 124, 127, 127, 141, 127, 141, 118, 115, 135, 129, 107, 118, 144, 137, 123, 123, 117, 112, 114, 124, 124, 104, 131, 139, 146, 123, 120, 116, 131, 115, 118, 110, 151, 134, 115, 124, 117, 133, 136, 147, 126, 124, 129, 137, 131, 122, 100, 127, 140, 118, 131, 137, 128, 97, 115, 123, 111, 120, 141, 113, 115, 130, 134, 130, 101, 133, 136, 125, 123, 136, 133, 128, 119, 119, 117, 132, 146, 147, 117, 140, 120, 145, 154, 129, 129, 121, 111, 102, 129, 130, 126, 127, 145, 126, 136, 125, 137, 124, 145, 129, 121, 130, 140, 113, 136, 140, 138, 114, 112, 126, 131, 123, 148, 151, 135, 122, 148, 134, 124, 143, 131, 110, 109, 141, 133, 128, 138, 131, 121, 123, 123, 111, 131, 120, 116, 122, 144, 118, 138, 113, 104, 102, 133, 146, 112, 137, 113, 135, 139, 134, 120, 119, 142, 135, 126, 119, 125, 135, 121, 117, 113, 118, 124, 113, 123, 121, 112, 130, 123, 114, 128, 114, 122, 125, 146, 109, 152, 130, 127, 126, 117, 130, 122, 137, 138, 130, 127, 122, 132, 104, 136, 143, 128, 114, 132, 128, 141, 118, 107, 136, 116, 122, 125, 119, 137, 133, 99, 118, 127, 136, 141, 130, 133, 126, 143, 123, 119, 124, 122, 123, 123, 114, 135, 127, 135, 124, 108, 122, 142, 102, 117, 120, 130, 114, 109, 114, 127, 130, 130, 126, 110, 138, 133, 127, 109, 126, 139, 137, 118, 122, 145, 125, 126, 151, 122, 135, 137, 136, 119, 129, 149, 145, 108, 120, 124, 116, 118, 120, 128, 127, 105, 148, 121, 126, 144, 115, 121, 120, 121, 129, 131, 118, 114, 122, 127, 136, 122, 115, 125, 143, 132, 132, 123, 136, 128, 143, 128, 137, 118, 134, 118, 125, 122, 135, 112, 135, 121, 129, 129, 123, 122, 144, 117, 131, 131, 129, 126, 147, 139, 113, 119, 131, 143, 116, 134, 121, 109, 125, 145, 124, 133, 131, 124, 111, 144, 121, 118, 118, 110, 150, 124, 110, 140, 121, 133, 121, 134, 113, 133, 114, 119, 116, 109, 116, 122, 124, 120, 93, 125, 126, 121, 119, 126, 143, 145, 125, 117, 113, 128, 137, 123, 131, 126, 121, 132, 137, 129, 132, 133, 119, 146, 121, 122, 106, 127, 121, 135, 146, 126, 102, 124, 128, 126, 128, 144, 130, 129, 125, 131, 120, 128, 132, 111, 126, 128, 117, 116, 104, 107, 119, 125, 128, 130, 122, 124, 119, 124, 110, 123, 115, 106, 110, 122, 130, 135, 129, 111, 134, 128, 140, 125, 126, 134, 135, 111, 130, 120, 138, 138, 133, 108, 110, 125, 146, 139, 129, 118, 112, 119, 121, 124, 118, 146, 143, 120, 120, 132, 153, 139, 118, 136, 124, 106, 120, 114, 127, 116, 146, 114, 117, 139, 122, 132, 106, 135, 131, 134, 125, 117, 136, 123, 116, 110, 123, 106, 123, 119, 123, 117, 124, 114, 115, 117, 118, 126, 123, 134, 122, 123, 124, 125, 115, 134, 135, 118, 132, 124, 114, 135, 112, 120, 123, 122, 113, 118, 118, 107, 117, 123, 121, 122, 126, 117, 131, 129, 114, 120, 133, 123, 122, 113, 116, 129, 112, 129, 142, 117, 125, 132, 113, 117, 149, 126, 127, 125, 128, 123, 131, 114, 121, 125, 123, 146, 135, 123, 134, 115, 114, 139, 116, 127, 117, 131, 125, 121, 125, 127, 133, 122, 127, 124, 122, 117, 133, 128, 117, 143, 122, 116, 114, 128, 114, 118, 123, 124, 136, 108, 134, 115, 115, 115, 120, 111, 126, 115, 110, 115, 136, 148, 113, 123, 139, 112, 144, 105, 126, 122, 121, 133, 132, 118, 143, 139, 114, 115, 126, 137, 117, 118, 136, 114, 113, 116, 123, 112, 108, 127, 140, 122, 145, 109, 140, 129, 122, 110, 122, 106, 124, 117, 141, 117, 133, 128, 125, 149, 125, 150, 140, 122, 123, 128, 115, 116, 118, 122, 131, 132, 131, 133, 131, 131, 122, 127, 109, 97, 136, 128, 119, 124, 128, 146, 124, 133, 130, 137, 126, 123, 123, 109, 134, 98, 113, 116, 105, 126, 126, 120, 126, 142, 120, 121, 125, 99, 130, 144, 120, 129, 117, 122, 132, 110, 146, 116, 112, 122, 125, 130, 124, 125, 119, 117, 123, 115, 131, 115, 112, 143, 115, 140, 137, 139, 129, 141, 124, 105, 124, 127, 123, 123, 130, 128, 124, 127, 124, 157, 130, 126, 148, 119, 122, 141, 127, 113, 127, 128, 105, 128, 116, 134, 127, 133, 124, 118, 128, 114, 120, 141, 160, 128, 160, 102, 129, 117, 145, 120, 120, 145, 134, 125, 132, 119, 128, 134, 124, 139, 114, 109, 142, 137, 119, 126, 119, 126, 123, 127, 128, 126, 113, 118, 125, 131, 129, 102, 114, 132, 132, 124, 129, 126, 131, 133, 115, 148, 123, 123, 114, 142, 136, 133, 130, 134, 123, 119, 91, 120, 121, 120, 127, 128, 111, 147, 142, 120, 123, 131, 138, 117, 124, 117, 131, 116, 128, 126, 141, 135, 128, 127, 132, 115, 123, 137, 119, 120, 139, 130, 114, 145, 101, 126, 141, 116, 100, 130, 121, 122, 115, 131, 121, 130, 127, 113, 130, 121, 119, 140, 124, 125, 121, 107, 131, 125, 108, 111, 122, 125, 127, 122, 114, 120, 129, 136, 136, 131, 110, 123, 128, 118, 135, 112, 148, 127, 144, 136, 123, 117, 133, 120, 131, 129, 137, 93, 119, 152, 131, 117, 110, 130, 115, 111, 114, 124, 133, 111, 103, 130, 126, 117, 129, 137, 119, 126, 129, 140, 123, 112, 124, 145, 117, 101, 119, 106, 124, 140, 123, 118, 128, 124, 135, 132, 100, 122, 119, 130, 132, 116, 102, 132, 124, 118, 111, 116, 112, 116, 139, 135, 141, 131, 131, 123, 137, 109, 110, 124, 142, 142, 124, 138, 120, 133, 119, 125, 146, 114, 128, 132, 145, 121, 123, 145, 132, 105, 116, 127, 114, 133, 136, 115, 139, 118, 129, 130, 142, 129, 114, 132, 160, 147, 121, 137, 127, 113, 133, 101, 132, 129, 124, 141, 137, 131, 126, 144, 133, 134, 128, 123, 146, 121, 123, 128, 116, 118, 123, 145, 135, 147, 129, 109, 127, 128, 124, 130, 126, 123, 121, 116, 129, 120, 126, 123, 109, 135, 150, 119, 122, 126, 115, 138, 140, 125, 119, 131, 116, 114, 136, 120, 125, 125, 127, 133, 124, 128, 141, 152, 123, 150, 119, 132, 122, 140, 135, 131, 121, 123, 125, 125, 134, 140, 123, 130, 119, 114, 117, 113, 135, 137, 126, 117, 117, 126, 121, 126, 145, 130, 119, 122, 133, 104, 127, 132, 114, 137, 135, 120, 122, 122, 130, 137, 100, 128, 134, 123, 118, 118, 126, 134, 129, 127, 121, 124, 139, 138, 112, 121, 115, 122, 125, 137, 124, 132, 120, 127, 127, 126, 115, 127, 112, 108, 138, 123, 109, 135, 118, 134, 129, 116, 115, 121, 128, 143, 119, 105, 131, 129, 119, 123, 131, 129, 126, 107, 135, 132, 117, 136, 130, 115, 118, 153, 125, 138, 138, 137, 132, 139, 127, 117, 120, 133, 101, 128, 117, 125, 126, 146, 129, 130, 122, 109, 123, 132, 132, 126, 127, 121, 128, 120, 114, 119, 128, 140, 122, 128, 139, 141, 143, 138, 140, 135, 124, 127, 122, 114, 144, 137, 115, 120, 133, 123, 120, 114, 119, 130, 134, 110, 109, 138, 132, 137, 120, 122, 111, 128, 120, 132, 127, 135, 121, 160, 124, 144, 122, 146, 132, 134, 138, 131, 115, 118, 139, 120, 117, 123, 113, 120, 117, 138, 121, 130, 115, 117, 112, 134, 117, 118, 127, 131, 115, 129, 128, 137, 108, 127, 134, 121, 121, 124, 93, 127, 136, 131, 110, 133, 133, 120, 120, 142, 131, 132, 124, 106, 134, 132, 106, 142, 155, 116, 113, 136, 133, 158, 134, 132, 159, 132, 120, 121, 125, 127, 114, 126, 118, 132, 116, 134, 135, 133, 133, 120, 117, 133, 124, 133, 130, 141, 119, 136, 140, 115, 144, 104, 109, 137, 119, 130, 136, 111, 131, 127, 122, 130, 119, 135, 135, 117, 126, 113, 111, 132, 97, 117, 142, 126, 113, 122, 132, 114, 124, 123, 142, 142, 123, 142, 116, 122, 126, 119, 128, 139, 122, 138, 120, 132, 114, 108, 116, 132, 129, 135, 117, 135, 126, 121, 128, 129, 124, 135, 126, 133, 116, 131, 116, 137, 138, 136, 117, 125, 124, 130, 133, 121, 127, 139, 143, 129, 130, 138, 143, 115, 138, 125, 110, 116, 137, 111, 143, 102, 120, 126, 115, 117, 121, 109, 118, 124, 129, 128, 122, 131, 98, 138, 120, 137, 125, 113, 133, 153, 136, 120, 125, 139, 125, 114, 130, 137, 127, 123, 114, 130, 132, 127, 124, 105, 134, 138, 125, 128, 137, 120, 104, 128, 133, 125, 112, 140, 122, 108, 113, 142, 132, 128, 118, 124, 129, 121, 130, 121, 130, 122, 145, 119, 120, 133, 129, 130, 124, 127, 120, 132, 123, 121, 129, 131, 120, 122, 135, 116, 120, 140, 119, 104, 119, 124, 111, 130, 105, 109, 135, 116, 123, 126, 139, 124, 104, 139, 120, 129, 125, 113, 136, 124, 121, 138, 133, 117, 123, 140, 101, 133, 122, 125, 113, 110, 123, 128, 118, 109, 124, 143, 122, 130, 120, 107, 124, 141, 120, 112, 135, 121, 112, 129, 115, 116, 136, 115, 124, 120, 131, 105, 111, 123, 126, 107, 132, 133, 127, 121, 116, 136, 126, 138, 116, 101, 125, 114, 129, 128, 124, 139, 121, 119, 121, 111, 133, 105, 139, 116, 148, 120, 129, 124, 124, 116, 119, 115, 132, 132, 118, 112, 133, 117, 137, 145, 113, 128, 129, 116, 121, 145, 106, 138, 118, 118, 106, 108, 127, 121, 110, 133, 120, 137, 127, 120, 108, 127, 122, 130, 139, 142, 121, 111, 148, 116, 132, 139, 132, 128, 111, 117, 126, 116, 124, 126, 154, 133, 139, 126, 128, 115, 116, 109, 106, 126, 118, 116, 131, 124, 113, 118, 149, 119, 126, 109, 130, 129, 147, 129, 114, 134, 126, 126, 133, 129, 124, 126, 99, 124, 130, 121, 129, 108, 129, 130, 128, 127, 110, 135, 118, 121, 122, 126, 108, 124, 119, 138, 140, 117, 133, 117, 118, 130, 121, 130, 124, 122, 113, 139, 124, 128, 121, 124, 130, 120, 124, 129, 141, 115, 130, 137, 113, 128, 148, 135, 120, 120, 115, 134, 130, 113, 129, 116, 133, 129, 124, 114, 121, 128, 112, 147, 132, 137, 128, 116, 126, 133, 139, 124, 129, 113, 93, 115, 117, 135, 124, 126, 121, 107, 122, 132, 119, 117, 125, 127, 119, 124, 118, 134, 130, 135, 114, 98, 130, 126, 138, 106, 121, 128, 107, 126, 125, 131, 118, 107, 120, 139, 128, 110, 142, 133, 131, 115, 125, 132, 134, 127, 106, 127, 109, 133, 134, 121, 140, 149, 134, 128, 114, 142, 131, 121, 128, 130, 133, 129, 125, 126, 116, 126, 111, 106, 123, 122, 127, 120, 128, 118, 120, 135, 125, 106, 124, 130, 128, 125, 128, 149, 125, 133, 123, 113, 128, 101, 140, 117, 139, 123, 142, 140, 129, 113, 131, 116, 127, 148, 123, 113, 125, 102, 118, 121, 113, 120, 124, 141, 120, 103, 131, 128, 145, 139, 129, 111, 121, 116, 123, 136, 128, 123, 123, 118, 126, 126, 118, 125, 128, 126, 120, 114, 127, 105, 117, 124, 112, 120, 128, 116, 113, 116, 113, 124, 119, 121, 138, 132, 124, 147, 137, 117, 127, 134, 123, 127, 124, 133, 112, 123, 128, 127, 128, 139, 128, 131, 120, 129, 120, 124, 126, 119, 134, 133, 142, 132, 136, 147, 121, 109, 134, 134, 131, 128, 133, 136, 126, 135, 121, 120, 117, 121, 120, 124, 124, 125, 128, 148, 122, 131, 123, 123, 121, 113, 114, 127, 158, 120, 127, 168, 135, 115, 125, 124, 125, 111, 139, 144, 125, 117, 120, 113, 128, 116, 116, 110, 114, 129, 132, 110, 121, 109, 130, 141, 118, 134, 125, 113, 117, 115, 138, 124, 146, 118, 134, 128, 148, 117, 129, 121, 109, 150, 129, 130, 139, 130, 118, 134, 122, 152, 110, 120, 120, 131, 124, 131, 116, 138, 124, 128, 123, 153, 114, 117, 135, 137, 140, 124, 116, 133, 139, 141, 146, 108, 144, 120, 125, 119, 115, 143, 109, 131, 141, 140, 123, 117, 145, 106, 127, 118, 129, 117, 124, 116, 130, 145, 134, 144, 120, 117, 136, 163, 146, 129, 115, 123, 108, 126, 124, 105, 122, 108, 124, 127, 128, 130, 123, 137, 113, 137, 123, 130, 131, 118, 130, 117, 119, 142, 139, 127, 131, 130, 123, 126, 140, 128, 132, 121, 111, 111, 142, 101, 122, 120, 161, 144, 140, 118, 113, 112, 117, 106, 125, 127, 137, 118, 133, 107, 122, 132, 129, 118, 129, 127, 125, 104, 109, 141, 129, 131, 123, 131, 123, 115, 128, 122, 123, 136, 132, 121, 106, 139, 120, 134, 123, 130, 111, 133, 139, 124, 147, 120, 137, 122, 133, 133, 100, 133, 135, 108, 107, 133, 136, 130, 132, 101, 121, 120, 143, 127, 139, 102, 111, 131, 119, 132, 124, 124, 128, 147, 127, 138, 132, 124, 123, 117, 121, 126, 132, 129, 135, 132, 129, 132, 113, 106, 130, 129, 137, 131, 111, 122, 129, 131, 137, 123, 136, 122, 120, 129, 117, 132, 132, 136, 122, 126, 144, 119, 135, 124, 152, 134, 118, 130, 117, 115, 111, 121, 114, 126, 132, 108, 134, 132, 126, 128, 124, 132, 137, 128, 125, 106, 118, 124, 136, 132, 140, 116, 135, 117, 129, 138, 137, 139, 143, 120, 127, 133, 123, 129, 105, 111, 141, 119, 118, 122, 124, 120, 108, 125, 122, 117, 134, 147, 123, 133, 128, 145, 123, 112, 131, 116, 115, 112, 127, 122, 148, 127, 126, 134, 118, 150, 126, 123, 124, 119, 123, 115, 131, 132, 137, 135, 126, 134, 118, 116, 137, 131, 125, 116, 127, 104, 104, 136, 114, 134, 130, 137, 137, 112, 137, 143, 113, 115, 128, 108, 140, 114, 109, 107, 133, 128, 129, 123, 118, 94, 117, 128, 128, 110, 128, 119, 130, 125, 138, 94, 131, 121, 128, 115, 105, 138, 121, 131, 113, 116, 117, 120, 128, 124, 116, 134, 116, 130, 128, 129, 115, 126, 117, 128, 133, 114, 111, 126, 127, 115, 141, 138, 130, 118, 109, 115, 137, 125, 147, 126, 136, 126, 129, 114, 106, 131, 134, 119, 139, 136, 142, 112, 146, 125, 120, 118, 122, 132, 117, 135, 106, 125, 121, 137, 128, 130, 117, 132, 136, 149, 114, 131, 122, 150, 127, 120, 127, 116, 136, 126, 114, 126, 134, 144, 117, 133, 134, 130, 142, 130, 117, 116, 135, 117, 148, 119, 130, 146, 119, 131, 120, 117, 120, 120, 140, 113, 124, 126, 114, 127, 121, 132, 122, 132, 125, 131, 138, 133, 128, 117, 122, 117, 121, 124, 123, 112, 129, 125, 135, 118, 106, 127, 108, 121, 122, 134, 132, 125, 130, 110, 119, 139, 113, 122, 122, 110, 113, 139, 132, 138, 127, 126, 124, 117, 126, 114, 112, 131, 129, 114, 138, 113, 126, 113, 120, 119, 110, 130, 109, 118, 124, 116, 112, 129, 129, 143, 121, 115, 133, 126, 135, 130, 125, 117, 117, 120, 113, 128, 133, 135, 135, 135, 124, 130, 128, 135, 104, 131, 126, 123, 111, 124, 127, 130, 131, 125, 118, 136, 142, 116, 123, 132, 117, 124, 123, 141, 143, 115, 116, 144, 118, 127, 130, 124, 129, 123, 123, 118, 136, 129, 132, 143, 119, 121, 131, 128, 124, 123, 131, 126, 117, 129, 114, 128, 117, 116, 129, 135, 146, 122, 116, 134, 134, 139, 120, 115, 116, 131, 129, 133, 107, 114, 106, 126, 134, 129, 108, 126, 141, 118, 118, 124, 122, 121, 123, 117, 104, 140, 130, 137, 121, 97, 129, 117, 136, 126, 119, 118, 134, 119, 128, 125, 136, 121, 138, 138, 119, 120, 129, 123, 125, 123, 128, 145, 114, 115, 126, 119, 130, 113, 135, 136, 120, 132, 130, 135, 134, 129, 129, 147, 130, 114, 122, 126, 138, 144, 119, 127, 119, 138, 128, 119, 127, 107, 141, 113, 137, 116, 122, 112, 143, 127, 135, 135, 109, 110, 119, 125, 130, 108, 127, 136, 124, 127, 130, 121, 106, 108, 122, 125, 129, 139, 121, 133, 136, 131, 116, 139, 122, 140, 127, 133, 127, 128, 150, 125, 123, 124, 122, 120, 120, 117, 122, 127, 129, 119, 137, 120, 132, 127, 115, 123, 129, 119, 113, 126, 133, 134, 122, 129, 133, 123, 136, 119, 128, 121, 130, 114, 113, 126, 112, 116, 123, 137, 146, 122, 128, 129, 140, 116, 136, 132, 132, 112, 125, 105, 129, 133, 126, 124, 127, 122, 139, 121, 122, 133, 113, 124, 127, 141, 144, 133, 116, 138, 129, 130, 127, 150, 131, 140, 110, 124, 121, 124, 124, 110, 122, 119, 142, 114, 127, 120, 121, 114, 104, 110, 138, 119, 116, 146, 124, 127, 142, 132, 129, 124, 118, 121, 148, 132, 132, 118, 124, 126, 125, 107, 143, 130, 140, 127, 129, 119, 123, 139, 137, 132, 121, 131, 132, 138, 116, 129, 147, 139, 124, 129, 114, 133, 100, 114, 124, 120, 129, 127, 119, 124, 124, 113, 131, 122, 126, 119, 127, 115, 121, 131, 125, 130, 130, 125, 123, 117, 111, 120, 132, 120, 118, 111, 124, 116, 131, 118, 123, 117, 123, 126, 110, 130, 114, 127, 121, 123, 121, 126, 154, 114, 132, 116, 128, 114, 122, 114, 105, 140, 137, 124, 152, 132, 122, 132, 123, 123, 141, 128, 124, 123, 118, 122, 144, 141, 143, 124, 131, 116, 129, 141, 104, 118, 126, 121, 137, 128, 127, 114, 125, 126, 117, 120, 137, 130, 123, 125, 119, 140, 129, 147, 132, 138, 132, 113, 112, 144, 125, 127, 114, 119, 118, 134, 120, 130, 130, 116, 134, 136, 123, 115, 105, 114, 127, 125, 92, 123, 123, 127, 139, 135, 132, 123, 115, 114, 132, 117, 134, 127, 117, 126, 114, 132, 113, 128, 136, 124, 114, 104, 127, 135, 124, 137, 121, 118, 104, 120, 118, 111, 126, 133, 122, 133, 108, 121, 119, 115, 129, 127, 113, 130, 133, 118, 122, 129, 116, 123, 149, 133, 137, 128, 109, 115, 115, 126, 130, 128, 116, 122, 126, 114, 141, 135, 133, 130, 129, 124, 133, 134, 125, 122, 126, 126, 123, 113, 122, 135, 124, 121, 133, 119, 120, 123, 120, 133, 128, 117, 140, 116, 132, 128, 131, 126, 109, 120, 129, 141, 134, 135, 129, 125, 128, 126, 132, 113, 124, 129, 122, 128, 116, 104, 128, 126, 130, 124, 120, 126, 115, 134, 118, 138, 127, 142, 146, 137, 125, 108, 134, 135, 139, 141, 124, 121, 122, 128, 140, 125, 127, 131, 130, 107, 115, 126, 116, 125, 132, 131, 124, 121, 140, 141, 128, 108, 115, 127, 104, 120, 131, 130, 111, 131, 121, 112, 140, 124, 134, 127, 130, 120, 108, 121, 106, 119, 119, 128, 107, 118, 142, 135, 128, 142, 145, 117, 109, 142, 122, 143, 124, 137, 117, 120, 127, 106, 133, 112, 150, 134, 110, 119, 131, 141, 124, 120, 118, 114, 129, 120, 147, 128, 130, 133, 131, 143, 134, 108, 121, 118, 132, 127, 121, 128, 124, 124, 151, 139, 122, 127, 138, 123, 122, 142, 123, 125, 120, 132, 126, 117, 124, 137, 124, 133, 121, 119, 117, 108, 127, 115, 130, 120, 125, 114, 132, 124, 116, 119, 126, 119, 139, 133, 133, 110, 120, 131, 119, 128, 118, 116, 118, 110, 121, 114, 131, 121, 145, 125, 117, 118, 129, 124, 146, 134, 118, 109, 127, 136, 115, 116, 108, 141, 143, 112, 135, 125, 128, 126, 116, 122, 124, 128, 118, 123, 124, 118, 128, 137, 126, 124, 111, 121, 136, 121, 126, 129, 127, 141, 136, 126, 128, 131, 137, 119, 137, 125, 117, 134, 123, 123, 130, 130, 116, 107, 128, 134, 136, 133, 138, 122, 112, 143, 125, 99, 105, 131, 135, 125, 129, 121, 116, 114, 137, 130, 125, 138, 114, 112, 131, 125, 121, 139, 116, 129, 153, 137, 130, 115, 125, 123, 102, 122, 120, 126, 124, 118, 111, 121, 149, 123, 118, 131, 131, 125, 122, 122, 132, 111, 125, 114, 119, 124, 119, 138, 137, 134, 136, 126, 138, 126, 147, 114, 118, 137, 121, 121, 107, 149, 121, 125, 117, 134, 133, 143, 97, 145, 137, 126, 125, 141, 128, 128, 131, 128, 129, 117, 131, 117, 120, 129, 121, 123, 123, 121, 127, 109, 129, 139, 127, 130, 134, 127, 107, 135, 126, 125, 137, 124, 110, 122, 127, 147, 115, 121, 154, 122, 148, 128, 132, 119, 120, 111, 130, 142, 113, 116, 120, 126, 132, 125, 113, 130, 132, 134, 125, 134, 133, 138, 113, 145, 149, 119, 114, 118, 135, 125, 118, 138, 124, 127, 107, 129, 127, 123, 122, 108, 135, 122, 134, 130, 133, 116, 105, 124, 114, 129, 134, 138, 130, 120, 112, 115, 118, 128, 107, 125, 135, 113, 115, 133, 128, 130, 113, 105, 130, 142, 107, 147, 117, 135, 122, 144, 120, 124, 133, 125, 135, 145, 138, 122, 132, 127, 134, 127, 129, 134, 133, 127, 122, 139, 118, 138, 126, 115, 143, 123, 128, 121, 116, 117, 113, 121, 131, 156, 132, 127, 111, 106, 129, 122, 131, 131, 116, 124, 133, 122, 78, 122, 129, 122, 132, 123, 117, 123, 123, 109, 122, 130, 122, 138, 132, 114, 106, 128, 117, 133, 135, 132, 133, 120, 131, 113, 126, 128, 135, 135, 122, 139, 114, 123, 115, 116, 133, 116, 118, 126, 133, 125, 128, 129, 126, 118, 133, 136, 126, 127, 136, 138, 125, 116, 124, 120, 114, 120, 134, 123, 126, 134, 119, 120, 126, 133, 129, 120, 123, 105, 126, 118, 121, 127, 130, 130, 111, 126, 133, 130, 122, 128, 129, 110, 121, 111, 124, 144, 137, 140, 131, 112, 120, 126, 137, 124, 123, 117, 134, 119, 129, 128, 120, 127, 135, 131, 117, 130, 137, 156, 104, 126, 138, 136, 147, 126, 114, 124, 133, 123, 119, 117, 121, 139, 118, 119, 124, 112, 112, 124, 112, 121, 127, 136, 133, 120, 141, 132, 147, 123, 118, 140, 118, 120, 138, 113, 112, 106, 151, 103, 115, 129, 143, 120, 112, 110, 120, 133, 123, 126, 134, 108, 123, 105, 135, 114, 137, 136, 113, 138, 132, 119, 124, 118, 126, 130, 132, 123, 129, 128, 139, 125, 126, 142, 129, 134, 131, 119, 131, 127, 137, 134, 129, 135, 136, 128, 104, 128, 131, 126, 123, 125, 124, 122, 119, 121, 123, 117, 133, 110, 126, 119, 126, 115, 119, 126, 118, 121, 121, 132, 131, 122, 139, 136, 110, 121, 110, 124, 116, 139, 121, 118, 126, 126, 138, 128, 104, 118, 129, 125, 121, 131, 107, 143, 127, 133, 122, 126, 143, 127, 114, 117, 130, 127, 127, 123, 117, 113, 127, 129, 137, 138, 123, 114, 113, 130, 130, 104, 111, 116, 121, 119, 130, 114, 124, 116, 122, 116, 123, 129, 127, 152, 121, 132, 143, 132, 130, 127, 109, 110, 143, 134, 98, 125, 118, 136, 123, 136, 114, 130, 135, 134, 103, 107, 127, 125, 127, 127, 125, 117, 122, 119, 119, 134, 118, 144, 144, 135, 131, 113, 129, 117, 137, 115, 138, 135, 129, 124, 122, 128, 120, 126, 145, 119, 122, 111, 122, 117, 132, 132, 133, 124, 120, 140, 130, 119, 129, 136, 134, 133, 114, 123, 134, 107, 120, 142, 118, 119, 116, 132, 151, 129, 136, 119, 124, 132, 115, 115, 118, 129, 114, 116, 121, 148, 137, 115, 116, 119, 126, 122, 114, 130, 132, 131, 126, 135, 124, 139, 118, 123, 118, 124, 120, 125, 140, 115, 137, 123, 132, 118, 108, 139, 132, 133, 140, 112, 149, 129, 123, 118, 132, 117, 124, 131, 127, 103, 115, 127, 128, 125, 141, 141, 132, 107, 133, 138, 131, 124, 118, 120, 126, 113, 100, 121, 137, 117, 128, 120, 133, 128, 130, 115, 123, 135, 126, 128, 129, 123, 131, 129, 123, 112, 116, 128, 117, 124, 132, 128, 129, 135, 146, 139, 134, 126, 116, 141, 137, 132, 120, 135, 139, 116, 132, 94, 127, 135, 119, 124, 124, 123, 121, 126, 111, 118, 136, 131, 134, 107, 135, 114, 128, 135, 136, 120, 119, 131, 134, 115, 128, 137, 114, 115, 120, 115, 133, 120, 120, 99, 116, 125, 129, 113, 124, 122, 123, 128, 117, 126, 134, 130, 135, 117, 124, 122, 133, 111, 116, 128, 132, 121, 144, 125, 124, 120, 137, 141, 130, 133, 115, 124, 120, 123, 118, 111, 121, 124, 130, 130, 125, 125, 123, 113, 139, 119, 130, 132, 129, 124, 138, 131, 130, 134, 126, 154, 116, 120, 121, 129, 125, 124, 93, 117, 112, 125, 134, 120, 130, 113, 129, 127, 113, 121, 119, 115, 114, 144, 125, 126, 130, 122, 117, 128, 119, 120, 126, 123, 122, 121, 119, 110, 133, 115, 148, 138, 118, 147, 124, 130, 123, 137, 129, 115, 131, 120, 125, 129, 118, 124, 127, 117, 118, 122, 138, 128, 123, 124, 120, 118, 103, 122, 124, 119, 136, 119, 116, 114, 117, 117, 113, 124, 140, 116, 99, 122, 118, 112, 135, 138, 121, 111, 115, 126, 128, 109, 123, 136, 131, 131, 149, 119, 118, 127, 118, 114, 139, 105, 116, 131, 130, 130, 114, 131, 123, 120, 128, 101, 130, 126, 132, 118, 121, 124, 126, 119, 115, 96, 122, 125, 114, 131, 126, 129, 120, 123, 141, 136, 140, 126, 130, 116, 125, 128, 128, 134, 135, 124, 143, 135, 121, 110, 124, 131, 91, 123, 122, 121, 127, 126, 127, 107, 120, 123, 124, 120, 129, 124, 127, 113, 128, 141, 129, 124, 154, 110, 112, 127, 126, 116, 107, 117, 141, 137, 105, 132, 119, 121, 131, 123, 129, 113, 119, 116, 127, 134, 117, 116, 114, 122, 109, 116, 92, 132, 124, 135, 128, 123, 125, 114, 130, 132, 132, 114, 149, 125, 119, 134, 116, 115, 133, 131, 128, 126, 124, 122, 124, 135, 133, 137, 135, 129, 132, 145, 125, 121, 119, 125, 129, 137, 123, 142, 112, 137, 123, 106, 117, 132, 118, 124, 107, 124, 119, 129, 127, 127, 117, 118, 131, 127, 127, 128, 115, 116, 141, 138, 127, 122, 124, 133, 140, 118, 120, 129, 119, 135, 122, 124, 127, 133, 135, 134, 115, 114, 124, 119, 121, 123, 147, 127, 130, 123, 131, 141, 115, 120, 129, 122, 120, 127, 113, 123, 125, 118, 98, 122, 135, 136, 140, 123, 114, 148, 138, 113, 132, 124, 134, 115, 129, 105, 119, 129, 127, 131, 138, 122, 133, 130, 122, 121, 115, 150, 138, 119, 116, 137, 124, 122, 122, 131, 125, 129, 127, 151, 135, 120, 119, 121, 129, 132, 108, 120, 117, 118, 135, 117, 130, 113, 126, 123, 129, 121, 123, 121, 117, 118, 118, 116, 112, 125, 124, 116, 117, 132, 137, 128, 133, 126, 126, 127, 131, 121, 112, 123, 119, 128, 124, 119, 142, 101, 119, 133, 126, 126, 145, 129, 123, 122, 124, 128, 137, 138, 121, 116, 118, 132, 119, 111, 122, 125, 122, 144, 123, 152, 137, 124, 117, 130, 128, 126, 126, 127, 112, 105, 141, 124, 134, 128, 138, 119, 122, 138, 112, 120, 126, 110, 121, 121, 124, 143, 136, 136, 129, 122, 111, 118, 106, 131, 129, 125, 116, 154, 127, 134, 148, 150, 139, 140, 125, 117, 114, 118, 140, 129, 122, 131, 128, 116, 116, 127, 125, 122, 122, 117, 121, 113, 129, 143, 124, 127, 139, 114, 110, 106, 133, 134, 120, 122, 120, 130, 120, 104, 132, 133, 132, 123, 128, 123, 110, 127, 118, 133, 115, 116, 118, 131, 119, 123, 128, 137, 131, 120, 117, 107, 108, 140, 119, 120, 131, 122, 137, 121, 130, 126, 123, 128, 144, 113, 121, 101, 129, 111, 125, 144, 132, 132, 122, 115, 104, 133, 129, 117, 118, 125, 113, 128, 122, 134, 130, 134, 113, 148, 115, 118, 124, 122, 130, 122, 128, 124, 122, 109, 142, 133, 137, 117, 131, 132, 137, 137, 126, 119, 119, 122, 122, 130, 147, 130, 115, 116, 134, 124, 112, 133, 123, 120, 114, 120, 141, 122, 133, 139, 130, 138, 114, 142, 133, 113, 130, 127, 123, 129, 119, 129, 145, 137, 107, 110, 121, 125, 129, 117, 109, 112, 122, 117, 125, 93, 140, 122, 123, 136, 117, 135, 96, 133, 121, 109, 125, 104, 125, 131, 124, 127, 131, 134, 130, 133, 139, 102, 113, 157, 135, 115, 97, 138, 113, 120, 142, 117, 109, 126, 115, 126, 102, 137, 121, 125, 136, 105, 156, 113, 110, 121, 128, 128, 130, 122, 155, 126, 119, 127, 114, 128, 121, 110, 130, 116, 123, 125, 151, 125, 139, 115, 125, 126, 113, 139, 125, 123, 147, 130, 121, 110, 115, 126, 129, 124, 132, 116, 134, 121, 122, 128, 127, 120, 125, 118, 131, 129, 123, 118, 119, 119, 118, 140, 130, 120, 134, 127, 119, 112, 141, 130, 138, 147, 139, 95, 124, 117, 123, 117, 139, 137, 131, 102, 112, 102, 127, 115, 146, 129, 115, 118, 120, 108, 128, 126, 94, 118, 114, 129, 125, 119, 123, 105, 129, 149, 96, 133, 129, 127, 125, 132, 117, 134, 127, 125, 134, 131, 142, 110, 132, 132, 122, 142, 121, 131, 118, 119, 146, 105, 114, 123, 111, 123, 116, 122, 131, 118, 127, 142, 133, 106, 112, 132, 125, 120, 124, 116, 132, 131, 114, 127, 125, 134, 128, 111, 135, 118, 138, 142, 143, 117, 131, 116, 113, 111, 126, 114, 106, 144, 123, 121, 135, 111, 123, 134, 135, 139, 120, 130, 115, 117, 111, 132, 122, 121, 117, 118, 119, 132, 129, 137, 140, 127, 108, 138, 125, 127, 130, 140, 130, 110, 145, 87, 126, 113, 112, 128, 116, 129, 114, 131, 124, 133, 132, 126, 125, 134, 114, 131, 116, 125, 129, 107, 119, 126, 114, 118, 134, 129, 136, 126, 133, 126, 131, 128, 105, 123, 136, 136, 131, 146, 119, 137, 113, 154, 129, 122, 103, 113, 131, 120, 129, 135, 149, 140, 145, 140, 107, 137, 143, 110, 138, 143, 149, 136, 115, 110, 131, 131, 100, 145, 111, 108, 125, 107, 127, 108, 128, 146, 131, 110, 127, 114, 118, 128, 106, 139, 129, 101, 126, 110, 121, 141, 104, 138, 140, 128, 139, 137, 108, 135, 131, 135, 121, 126, 124, 122, 129, 131, 122, 117, 126, 109, 114, 116, 124, 135, 141, 126, 140, 114, 120, 117, 126, 124, 122, 125, 124, 112, 114, 133, 132, 128, 113, 141, 125, 125, 132, 122, 143, 111, 131, 125, 124, 115, 103, 150, 121, 137, 132, 124, 123, 119, 125, 128, 132, 110, 137, 137, 105, 121, 118, 115, 124, 119, 117, 129, 106, 128, 125, 117, 145, 169, 124, 129, 130, 123, 121, 120, 100, 127, 124, 131, 126, 141, 125, 124, 130, 136, 109, 129, 127, 134, 116, 130, 131, 108, 132, 123, 117, 125, 131, 137, 112, 133, 133, 127, 127, 135, 139, 112, 115, 121, 120, 129, 127, 142, 124, 121, 111, 117, 132, 165, 128, 130, 122, 115, 134, 144, 124, 123, 115, 120, 139, 133, 116, 128, 133, 117, 126, 115, 116, 109, 129, 137, 141, 112, 111, 137, 118, 110, 119, 124, 143, 126, 120, 114, 124, 117, 120, 125, 116, 119, 139, 115, 128, 117, 132, 123, 126, 116, 124, 147, 118, 124, 121, 130, 105, 89, 121, 133, 114, 128, 136, 129, 130, 132, 142, 128, 130, 143, 131, 121, 136, 120, 115, 123, 136, 119, 120, 128, 124, 133, 130, 121, 122, 125, 129, 139, 123, 131, 125, 114, 125, 118, 131, 128, 110, 118, 130, 136, 114, 130, 117, 130, 118, 128, 112, 136, 121, 132, 138, 140, 123, 138, 118, 122, 127, 126, 82, 127, 124, 122, 138, 131, 135, 115, 143, 146, 120, 128, 127, 95, 117, 124, 129, 132, 127, 119, 131, 124, 130, 135, 131, 130, 135, 139, 113, 111, 134, 107, 142, 138, 124, 122, 113, 123, 126, 131, 106, 128, 137, 139, 144, 154, 117, 125, 136, 126, 125, 120, 116, 141, 130, 124, 121, 121, 123, 109, 128, 112, 142, 119, 135, 124, 115, 108, 148, 126, 137, 119, 128, 131, 110, 129, 127, 120, 121, 131, 129, 130, 142, 124, 136, 127, 117, 108, 118, 145, 126, 134, 127, 119, 132, 136, 120, 130, 119, 127, 121, 128, 149, 125, 142, 135, 131, 116, 131, 124, 134, 155, 119, 123, 115, 138, 126, 107, 137, 145, 124, 145, 124, 106, 130, 127, 110, 135, 121, 122, 143, 118, 143, 111, 112, 129, 110, 111, 123, 144, 115, 119, 112, 133, 132, 123, 125, 150, 124, 155, 130, 142, 123, 116, 131, 128, 116, 106, 129, 128, 136, 124, 118, 127, 123, 128, 113, 112, 125, 121, 134, 128, 122, 121, 128, 119, 114, 125, 115, 107, 125, 120, 141, 150, 101, 117, 139, 123, 128, 116, 94, 116, 122, 118, 137, 111, 130, 127, 123, 132, 128, 113, 122, 128, 143, 126, 117, 119, 136, 115, 131, 147, 117, 127, 142, 121, 140, 121, 114, 134, 125, 124, 131, 125, 120, 90, 118, 133, 105, 132, 138, 134, 128, 121, 134, 122, 130, 134, 122, 127, 133, 119, 134, 118, 106, 124, 114, 115, 105, 140, 127, 127, 125, 155, 134, 134, 142, 126, 135, 106, 120, 109, 124, 144, 133, 146, 136, 122, 137, 135, 112, 128, 119, 121, 114, 120, 111, 135, 128, 150, 122, 103, 117, 124, 119, 129, 118, 116, 135, 108, 105, 128, 118, 113, 131, 106, 123, 120, 133, 136, 140, 132, 142, 104, 144, 130, 118, 154, 124, 110, 137, 120, 146, 120, 125, 118, 112, 145, 132, 123, 147, 140, 121, 130, 144, 122, 110, 116, 130, 133, 138, 117, 114, 139, 117, 133, 130, 131, 153, 135, 120, 131, 137, 122, 122, 149, 138, 130, 132, 118, 129, 105, 155, 133, 103, 133, 110, 144, 125, 125, 143, 129, 149, 141, 157, 143, 144, 111, 129, 121, 126, 144, 123, 129, 121, 135, 137, 118, 129, 120, 127, 129, 114, 111, 120, 135, 116, 113, 137, 140, 121, 100, 145, 115, 108, 148, 104, 140, 112, 120, 138, 120, 113, 110, 114, 152, 123, 124, 120, 128, 128, 142, 139, 126, 128, 128, 116, 118, 113, 116, 138, 118, 125, 105, 115, 107, 127, 129, 113, 118, 136, 127, 132, 115, 120, 122, 138, 119, 128, 135, 112, 141, 144, 116, 126, 123, 128, 118, 153, 126, 136, 127, 133, 108, 129, 125, 117, 121, 121, 140, 125, 133, 122, 136, 140, 132, 127, 128, 133, 111, 132, 115, 111, 112, 117, 124, 124, 134, 122, 138, 126, 114, 136, 120, 132, 114, 119, 118, 130, 137, 121, 118, 112, 108, 126, 115, 124, 145, 137, 118, 143, 117, 129, 122, 145, 139, 124, 110, 120, 123, 129, 121, 125, 121, 123, 108, 110, 137, 125, 99, 125, 120, 128, 134, 121, 136, 144, 125, 123, 115, 126, 104, 123, 130, 128, 103, 137, 134, 130, 128, 136, 129, 126, 121, 122, 139, 127, 105, 130, 135, 129, 122, 129, 111, 109, 131, 125, 131, 132, 145, 126, 146, 130, 95, 115, 129, 119, 124, 117, 134, 130, 131, 131, 130, 121, 130, 127, 132, 136, 120, 115, 136, 123, 111, 119, 115, 116, 127, 104, 131, 107, 123, 124, 125, 125, 120, 130, 105, 120, 124, 124, 146, 116, 118, 139, 125, 131, 132, 116, 124, 129, 120, 130, 123, 106, 133, 138, 129, 106, 136, 150, 123, 129, 126, 115, 113, 130, 114, 120, 117, 125, 127, 133, 112, 109, 134, 125, 127, 125, 130, 130, 127, 134, 118, 117, 94, 121, 118, 158, 118, 123, 126, 108, 131, 152, 118, 126, 130, 133, 140, 124, 120, 153, 107, 122, 120, 134, 115, 114, 142, 136, 112, 120, 122, 132, 130, 137, 140, 127, 118, 119, 121, 123, 125, 133, 126, 120, 134, 140, 120, 113, 147, 133, 129, 113, 108, 120, 124, 151, 129, 114, 115, 113, 131, 128, 133, 120, 131, 145, 118, 120, 130, 123, 135, 125, 135, 144, 106, 115, 117, 121, 108, 138, 110, 116, 125, 126, 140, 120, 133, 131, 127, 109, 124, 121, 128, 141, 138, 120, 111, 142, 117, 137, 123, 110, 144, 115, 129, 144, 117, 121, 148, 138, 133, 101, 121, 94, 123, 124, 132, 116, 134, 141, 121, 131, 115, 131, 120, 117, 140, 130, 122, 127, 125, 122, 118, 136, 131, 135, 147, 137, 134, 146, 102, 104, 125, 99, 124, 125, 99, 130, 133, 145, 119, 111, 124, 143, 104, 128, 116, 135, 141, 107, 129, 126, 141, 126, 120, 126, 144, 125, 131, 134, 133, 144, 120, 125, 131, 138, 131, 126, 110, 131, 119, 111, 129, 122, 122, 116, 124, 139, 125, 126, 115, 136, 106, 111, 138, 123, 123, 129, 121, 129, 128, 123, 136, 123, 130, 142, 133, 134, 138, 118, 116, 112, 132, 120, 152, 130, 156, 124, 115, 118, 109, 123, 129, 122, 114, 112, 107, 127, 119, 140, 133, 105, 121, 118, 123, 118, 129, 140, 120, 124, 121, 130, 109, 141, 116, 138, 139, 106, 122, 115, 128, 154, 131, 131, 113, 135, 123, 134, 131, 141, 128, 134, 117, 140, 128, 131, 124, 119, 112, 150, 108, 131, 135, 111, 130, 146, 140, 117, 123, 148, 147, 117, 116, 118, 127, 133, 122, 124, 116, 118, 129, 133, 121, 123, 139, 101, 145, 126, 128, 133, 114, 109, 125, 131, 116, 137, 132, 143, 126, 119, 119, 130, 123, 136, 105, 143, 137, 96, 133, 125, 125, 121, 114, 125, 137, 135, 124, 126, 130, 119, 127, 114, 117, 110, 111, 141, 123, 137, 138, 120, 122, 143, 137, 127, 118, 127, 125, 133, 116, 125, 144, 123, 130, 143, 116, 143, 131, 123, 118, 105, 124, 120, 129, 133, 130, 129, 122, 128, 128, 142, 121, 124, 131, 124, 118, 112, 134, 102, 128, 123, 118, 141, 122, 137, 126, 142, 127, 111, 133, 129, 135, 135, 129, 128, 126, 149, 123, 119, 124, 118, 127, 130, 134, 115, 130, 145, 124, 117, 139, 151, 124, 133, 142, 100, 131, 136, 115, 123, 138, 106, 108, 131, 144, 119, 113, 136, 125, 125, 104, 125, 137, 126, 117, 159, 107, 105, 119, 116, 113, 130, 137, 119, 120, 135, 110, 149, 126, 126, 116, 139, 121, 135, 120, 112, 120, 145, 108, 131, 115, 131, 110, 122, 112, 130, 108, 98, 105, 111, 143, 126, 135, 135, 118, 128, 111, 128, 113, 120, 139, 126, 127, 122, 130, 119, 127, 135, 134, 123, 110, 137, 115, 123, 116, 119, 107, 126, 117, 130, 93, 147, 114, 132, 128, 113, 134, 121, 121, 102, 130, 133, 136, 127, 135, 127, 145, 122, 129, 117, 133, 106, 132, 126, 129, 143, 129, 114, 122, 124, 115, 143, 117, 134, 134, 119, 117, 102, 139, 118, 133, 121, 129, 118, 124, 97, 144, 133, 120, 118, 135, 133, 137, 125, 121, 132, 123, 127, 147, 132, 121, 114, 123, 151, 121, 104, 143, 122, 110, 126, 127, 126, 125, 127, 125, 116, 142, 120, 106, 120, 126, 103, 120, 133, 139, 131, 143, 131, 139, 126, 147, 122, 136, 123, 124, 122, 137, 135, 135, 127, 131, 121, 125, 123, 136, 96, 110, 122, 119, 144, 145, 112, 107, 133, 142, 132, 132, 132, 118, 104, 124, 125, 123, 122, 134, 97, 130, 133, 125, 140, 119, 121, 129, 125, 137, 118, 141, 114, 126, 132, 136, 109, 133, 118, 117, 133, 134, 133, 128, 124, 151, 91, 126, 98, 133, 122, 134, 124, 129, 127, 114, 116, 148, 134, 139, 116, 127, 111, 136, 137, 124, 105, 125, 129, 132, 136, 128, 118, 119, 119, 142, 119, 132, 152, 122, 119, 120, 123, 144, 126, 116, 148, 120, 137, 113, 119, 119, 128, 136, 131, 135, 126, 114, 154, 121, 112, 123, 130, 145, 130, 115, 127, 121, 138, 135, 125, 148, 117, 117, 125, 123, 143, 134, 118, 120, 128, 123, 132, 123, 126, 118, 111, 136, 110, 119, 148, 151, 136, 133, 126, 139, 112, 140, 133, 122, 110, 116, 149, 129, 118, 109, 112, 137, 102, 124, 119, 123, 142, 116, 122, 121, 116, 94, 130, 127, 122, 135, 117, 135, 128, 143, 134, 132, 120, 133, 137, 115, 122, 130, 113, 151, 127, 124, 138, 122, 128, 119, 117, 128, 117, 140, 127, 118, 128, 120, 135, 119, 140, 149, 106, 119, 139, 119, 128, 100, 105, 110, 120, 121, 113, 134, 106, 130, 115, 143, 139, 129, 122, 132, 153, 131, 130, 105, 119, 137, 124, 126, 118, 127, 156, 120, 122, 121, 114, 119, 128, 139, 111, 116, 122, 129, 111, 115, 148, 139, 129, 130, 119, 127, 129, 136, 120, 120, 135, 121, 132, 126, 147, 123, 138, 134, 127, 123, 128, 123, 109, 116, 123, 122, 123, 136, 118, 127, 135, 127, 139, 132, 125, 125, 132, 138, 129, 135, 133, 140, 130, 127, 147, 129, 113, 124, 118, 125, 153, 111, 123, 121, 130, 106, 129, 133, 135, 117, 132, 129, 117, 123, 115, 129, 133, 130, 135, 131, 132, 130, 115, 131, 136, 122, 120, 118, 129, 138, 145, 133, 140, 140, 113, 126, 128, 130, 124, 119, 133, 135, 120, 143, 126, 136, 111, 142, 128, 135, 120, 143, 120, 120, 140, 126, 122, 141, 123, 109, 123, 121, 131, 118, 109, 113, 126, 139, 129, 128, 137, 121, 140, 126, 123, 130, 111, 122, 105, 124, 122, 123, 108, 120, 116, 129, 136, 121, 125, 121, 132, 117, 125, 131, 138, 126, 117, 119, 118, 136, 108, 122, 132, 122, 103, 134, 129, 151, 126, 133, 143, 137, 131, 127, 123, 118, 146, 149, 112, 147, 141, 142, 149, 132, 129, 124, 119, 130, 118, 139, 120, 124, 143, 106, 118, 132, 127, 141, 114, 144, 130, 122, 125, 149, 120, 122, 122, 125, 130, 125, 124, 110, 119, 115, 109, 141, 111, 140, 121, 115, 120, 126, 128, 128, 139, 119, 122, 122, 109, 111, 113, 127, 134, 133, 120, 124, 139, 124, 122, 147, 117, 127, 138, 132, 130, 146, 128, 112, 122, 125, 125, 136, 132, 137, 105, 113, 125, 125, 120, 124, 112, 126, 105, 141, 136, 134, 131, 134, 123, 131, 139, 123, 127, 135, 129, 124, 125, 135, 113, 133, 109, 131, 122, 132, 114, 127, 124, 113, 115, 136, 112, 96, 130, 120, 140, 141, 110, 122, 118, 118, 123, 128, 120, 133, 120, 132, 115, 145, 121, 100, 124, 115, 118, 127, 132, 103, 100, 117, 129, 126, 128, 121, 122, 115, 112, 118, 119, 121, 118, 121, 143, 122, 108, 114, 116, 136, 132, 121, 118, 140, 133, 137, 123, 112, 128, 105, 134, 118, 111, 125, 123, 132, 106, 140, 129, 101, 125, 133, 128, 134, 122, 127, 139, 121, 113, 115, 127, 129, 115, 141, 135, 134, 118, 126, 120, 117, 126, 145, 119, 128, 132, 116, 130, 129, 133, 118, 144, 128, 129, 140, 122, 127, 133, 135, 131, 121, 128, 125, 126, 102, 113, 129, 124, 143, 113, 125, 118, 112, 119, 117, 125, 115, 139, 136, 120, 124, 98, 144, 129, 133, 155, 139, 107, 127, 137, 111, 130, 146, 110, 97, 116, 140, 114, 121, 110, 116, 129, 143, 114, 122, 114, 126, 122, 122, 106, 131, 120, 115, 95, 126, 98, 116, 124, 118, 112, 117, 136, 120, 120, 138, 133, 131, 123, 136, 130, 142, 130, 127, 137, 130, 125, 130, 130, 116, 113, 112, 129, 136, 144, 139, 137, 108, 128, 139, 110, 115, 120, 126, 125, 123, 134, 114, 123, 135, 113, 118, 115, 132, 123, 135, 132, 146, 118, 121, 115, 125, 107, 122, 127, 130, 130, 115, 123, 137, 130, 117, 114, 123, 116, 120, 124, 118, 106, 130, 109, 123, 121, 116, 146, 132, 128, 126, 131, 138, 124, 129, 120, 114, 125, 119, 121, 131, 120, 129, 116, 132, 119, 130, 127, 123, 138, 124, 119, 141, 126, 104, 133, 152, 120, 127, 129, 103, 133, 121, 119, 118, 133, 136, 116, 114, 123, 121, 142, 103, 116, 118, 118, 126, 115, 128, 135, 123, 122, 111, 129, 111, 129, 127, 128, 132, 117, 127, 119, 88, 136, 123, 132, 130, 134, 131, 138, 124, 123, 138, 121, 121, 140, 112, 129, 122, 131, 121, 127, 107, 116, 141, 123, 104, 151, 121, 121, 111, 126, 124, 129, 125, 133, 125, 124, 122, 133, 108, 117, 116, 129, 125, 105, 136, 107, 131, 130, 132, 124, 135, 129, 111, 118, 125, 138, 113, 126, 121, 120, 116, 118, 135, 136, 119, 125, 119, 114, 124, 116, 104, 133, 120, 132, 129, 125, 142, 110, 119, 126, 122, 121, 138, 126, 118, 144, 123, 121, 124, 120, 124, 128, 141, 114, 114, 115, 135, 113, 110, 131, 137, 101, 132, 131, 137, 128, 132, 119, 127, 146, 112, 134, 116, 123, 130, 122, 127, 117, 120, 121, 121, 120, 117, 131, 114, 120, 108, 112, 127, 126, 130, 128, 115, 111, 124, 133, 134, 125, 131, 129, 144, 123, 133, 103, 137, 121, 112, 126, 137, 129, 125, 134, 135, 128, 135, 137, 128, 120, 130, 111, 117, 117, 123, 116, 113, 117, 130, 123, 121, 107, 115, 137, 128, 132, 117, 110, 132, 110, 115, 144, 133, 125, 116, 118, 138, 131, 126, 118, 127, 114, 132, 114, 130, 126, 129, 122, 135, 99, 126, 122, 125, 124, 104, 114, 127, 125, 118, 101, 122, 119, 116, 130, 128, 132, 142, 114, 120, 131, 128, 113, 113, 136, 126, 116, 139, 124, 122, 124, 125, 132, 127, 127, 119, 127, 118, 120, 115, 135, 135, 123, 114, 133, 132, 129, 133, 134, 126, 118, 143, 130, 126, 132, 138, 139, 134, 142, 143, 123, 129, 129, 119, 109, 128, 113, 126, 106, 128, 120, 119, 140, 121, 141, 120, 110, 134, 131, 119, 119, 143, 119, 131, 112, 122, 125, 115, 119, 141, 132, 131, 131, 126, 119, 135, 134, 127, 116, 117, 123, 112, 137, 134, 127, 117, 107, 113, 130, 146, 116, 114, 131, 105, 134, 116, 129, 127, 105, 139, 138, 126, 131, 125, 130, 126, 107, 112, 145, 101, 142, 126, 127, 108, 131, 122, 126, 136, 132, 133, 121, 126, 124, 127, 120, 128, 124, 139, 124, 142, 127, 134, 150, 119, 127, 130, 136, 125, 128, 121, 121, 123, 102, 119, 119, 113, 127, 121, 110, 137, 124, 121, 140, 104, 135, 127, 121, 124, 116, 122, 109, 143, 118, 118, 122, 142, 139, 115, 110, 133, 138, 124, 132, 142, 128, 137, 99, 123, 132, 135, 144, 125, 125, 133, 123, 132, 125, 117, 127, 120, 123, 123, 107, 119, 132, 124, 107, 139, 127, 120, 130, 129, 122, 147, 122, 141, 129, 118, 114, 128, 114, 105, 123, 113, 137, 143, 138, 137, 130, 146, 111, 120, 103, 115, 119, 123, 115, 134, 125, 109, 131, 120, 128, 124, 136, 123, 145, 117, 128, 125, 132, 117, 132, 124, 137, 105, 119, 123, 104, 123, 120, 130, 109, 135, 123, 126, 145, 130, 127, 140, 100, 113, 132, 133, 130, 118, 133, 110, 121, 131, 113, 123, 132, 105, 134, 132, 120, 110, 119, 156, 112, 118, 123, 118, 129, 113, 118, 124, 117, 143, 120, 124, 125, 123, 133, 121, 147, 119, 137, 129, 110, 103, 134, 128, 134, 135, 137, 129, 131, 118, 122, 134, 136, 125, 112, 126, 123, 148, 123, 118, 135, 138, 136, 121, 134, 130, 122, 114, 123, 125, 114, 114, 119, 118, 103, 108, 120, 144, 119, 134, 114, 131, 119, 145, 126, 127, 114, 123, 129, 132, 138, 136, 118, 118, 118, 130, 125, 148, 129, 124, 116, 127, 138, 146, 125, 125, 114, 135, 116, 123, 128, 133, 135, 125, 114, 146, 117, 119, 125, 104, 126, 135, 116, 117, 124, 119, 118, 142, 126, 124, 110, 122, 130, 106, 131, 130, 113, 119, 131, 123, 124, 139, 123, 159, 119, 119, 132, 133, 123, 121, 133, 110, 138, 131, 122, 127, 104, 137, 139, 116, 133, 119, 126, 121, 137, 125, 129, 133, 145, 129, 139, 132, 142, 118, 126, 102, 132, 138, 131, 141, 112, 125, 102, 129, 132, 130, 135, 121, 125, 110, 120, 131, 137, 143, 121, 150, 140, 129, 126, 131, 99, 119, 128, 123, 128, 126, 117, 127, 132, 121, 109, 124, 123, 137, 125, 137, 123, 139, 129, 150, 126, 147, 122, 122, 114, 117, 116, 130, 134, 136, 112, 136, 123, 133, 128, 115, 130, 111, 134, 116, 124, 123, 134, 127, 125, 114, 130, 103, 125, 124, 131, 131, 123, 153, 115, 157, 125, 96, 118, 124, 121, 120, 118, 128, 111, 122, 129, 125, 124, 136, 132, 128, 133, 130, 147, 111, 141, 116, 116, 119, 132, 102, 125, 112, 123, 138, 121, 130, 120, 121, 133, 103, 135, 97, 138, 136, 141, 119, 120, 114, 133, 147, 137, 122, 131, 138, 126, 140, 125, 136, 136, 127, 118, 130, 131, 137, 127, 124, 122, 106, 134, 112, 141, 135, 143, 135, 137, 135, 129, 128, 114, 126, 134, 114, 112, 132, 132, 124, 109, 118, 107, 144, 120, 129, 122, 116, 121, 134, 125, 133, 138, 119, 133, 112, 121, 130, 142, 107, 132, 134, 124, 124, 116, 113, 122, 115, 112, 147, 146, 122, 121, 141, 107, 144, 120, 99, 106, 137, 148, 122, 129, 146, 123, 140, 141, 111, 126, 133, 145, 123, 139, 137, 157, 122, 122, 119, 130, 125, 126, 124, 119, 111, 118, 124, 131, 116, 128, 140, 130, 106, 132, 136, 141, 104, 119, 124, 112, 104, 110, 111, 134, 122, 119, 119, 134, 135, 132, 121, 126, 109, 130, 140, 136, 118, 128, 115, 145, 131, 89, 111, 137, 130, 138, 122, 122, 114, 142, 96, 142, 134, 122, 122, 107, 122, 117, 143, 106, 114, 115, 140, 124, 130, 126, 128, 132, 131, 110, 138, 126, 112, 135, 113, 135, 125, 133, 107, 138, 135, 111, 130, 125, 111, 125, 123, 128, 128, 142, 101, 123, 131, 135, 140, 115, 144, 150, 133, 119, 125, 122, 133, 122, 107, 110, 129, 135, 116, 124, 118, 137, 139, 118, 129, 140, 131, 130, 100, 131, 126, 121, 112, 136, 122, 137, 127, 123, 133, 137, 112, 125, 129, 129, 125, 106, 106, 137, 141, 139, 143, 125, 129, 131, 130, 110, 121, 133, 119, 134, 138, 116, 125, 127, 126, 113, 117, 129, 139, 114, 112, 125, 128, 120, 144, 138, 129, 128, 126, 127, 144, 111, 120, 121, 127, 129, 134, 119, 144, 142, 129, 117, 120, 123, 112, 121, 120, 131, 114, 111, 132, 109, 127, 129, 121, 119, 108, 148, 148, 132, 135, 134, 130, 140, 114, 117, 122, 122, 116, 117, 123, 91, 107, 125, 109, 120, 141, 113, 127, 137, 131, 108, 142, 106, 135, 111, 140, 113, 127, 140, 118, 141, 123, 133, 118, 120, 119, 140, 119, 130, 134, 128, 117, 116, 120, 134, 102, 112, 131, 139, 128, 114, 124, 121, 129, 117, 123, 110, 115, 114, 128, 125, 125, 119, 143, 120, 119, 107, 113, 109, 130, 123, 127, 144, 118, 154, 115, 141, 118, 122, 126, 146, 137, 117, 135, 124, 132, 113, 146, 119, 125, 128, 124, 102, 152, 117, 117, 99, 110, 113, 145, 135, 143, 117, 113, 132, 123, 114, 138, 122, 143, 116, 119, 127, 128, 121, 121, 121, 121, 126, 115, 120, 108, 123, 115, 122, 127, 136, 123, 118, 128, 126, 117, 137, 111, 111, 129, 116, 125, 102, 123, 131, 131, 127, 136, 141, 122, 111, 125, 146, 143, 124, 126, 102, 130, 142, 124, 123, 137, 150, 127, 135, 126, 128, 138, 131, 126, 123, 127, 127, 126, 127, 156, 130, 115, 135, 134, 111, 116, 128, 127, 132, 127, 124, 117, 127, 135, 132, 118, 145, 128, 123, 126, 125, 140, 116, 119, 112, 124, 119, 124, 112, 130, 137, 130, 125, 105, 117, 126, 125, 125, 121, 144, 127, 122, 111, 147, 113, 115, 132, 115, 132, 139, 139, 125, 129, 136, 140, 129, 124, 124, 143, 121, 122, 131, 126, 119, 135, 116, 138, 125, 132, 136, 113, 128, 106, 122, 101, 121, 115, 115, 135, 134, 144, 150, 110, 110, 114, 128, 130, 148, 129, 123, 102, 131, 127, 128, 140, 121, 128, 126, 118, 128, 126, 134, 125, 122, 127, 127, 121, 116, 127, 142, 124, 134, 119, 124, 148, 124, 130, 139, 131, 118, 137, 115, 112, 124, 122, 127, 118, 115, 128, 147, 125, 133, 130, 109, 96, 124, 140, 131, 125, 123, 130, 105, 115, 132, 124, 123, 131, 132, 119, 156, 113, 128, 130, 129, 128, 144, 110, 112, 124, 118, 111, 122, 109, 128, 115, 102, 112, 131, 122, 126, 126, 118, 139, 137, 134, 131, 107, 140, 118, 118, 133, 137, 125, 140, 130, 136, 129, 121, 132, 143, 127, 125, 152, 117, 121, 118, 114, 122, 134, 133, 135, 137, 124, 121, 128, 123, 122, 123, 131, 125, 124, 144, 127, 121, 128, 100, 121, 128, 110, 127, 135, 116, 122, 120, 133, 116, 117, 124, 122, 133, 139, 110, 129, 124, 124, 112, 118, 141, 142, 137, 138, 129, 144, 111, 127, 129, 129, 124, 134, 117, 121, 137, 110, 127, 132, 121, 126, 114, 113, 139, 123, 127, 118, 113, 126, 156, 146, 139, 147, 144, 135, 132, 121, 122, 124, 123, 133, 124, 133, 148, 118, 119, 124, 129, 134, 118, 134, 123, 133, 119, 123, 132, 126, 123, 150, 125, 133, 120, 125, 93, 109, 120, 122, 138, 132, 123, 134, 124, 129, 113, 129, 130, 122, 146, 127, 114, 129, 117, 132, 106, 106, 148, 129, 133, 110, 114, 115, 118, 130, 126, 110, 143, 110, 137, 129, 137, 123, 97, 114, 132, 135, 132, 148, 125, 134, 129, 146, 120, 111, 126, 125, 124, 132, 139, 128, 128, 123, 126, 131, 130, 114, 124, 121, 136, 118, 136, 124, 136, 127, 132, 153, 131, 128, 121, 130, 138, 146, 144, 114, 129, 129, 112, 147, 134, 123, 131, 123, 130, 136, 101, 144, 138, 131, 106, 136, 125, 114, 111, 129, 111, 143, 116, 118, 115, 132, 126, 115, 147, 124, 145, 133, 127, 119, 151, 105, 117, 115, 107, 126, 135, 139, 121, 122, 115, 119, 118, 149, 125, 134, 125, 117, 134, 131, 128, 123, 132, 141, 132, 112, 118, 134, 120, 133, 116, 145, 119, 126, 128, 116, 123, 117, 127, 127, 104, 125, 128, 116, 121, 129, 147, 134, 110, 138, 116, 131, 128, 110, 127, 128, 118, 128, 137, 125, 123, 136, 107, 121, 115, 111, 115, 120, 127, 136, 109, 116, 112, 129, 119, 123, 125, 124, 114, 119, 133, 127, 122, 119, 114, 128, 132, 126, 121, 150, 130, 129, 135, 125, 112, 149, 123, 144, 123, 133, 120, 109, 130, 132, 130, 107, 132, 137, 130, 111, 120, 118, 114, 119, 115, 116, 141, 129, 119, 134, 132, 115, 141, 121, 136, 111, 123, 115, 126, 120, 110, 109, 118, 105, 116, 125, 134, 139, 110, 113, 119, 111, 141, 111, 116, 127, 109, 139, 124, 131, 131, 136, 132, 154, 107, 133, 127, 139, 149, 109, 130, 119, 136, 107, 123, 141, 121, 109, 129, 107, 133, 135, 131, 115, 119, 115, 106, 126, 138, 125, 131, 129, 127, 115, 109, 132, 135, 142, 146, 124, 118, 118, 110, 112, 131, 119, 150, 130, 110, 139, 125, 146, 129, 122, 130, 107, 125, 142, 124, 115, 124, 132, 119, 117, 108, 124, 121, 111, 147, 110, 137, 137, 157, 107, 104, 112, 121, 124, 123, 118, 99, 130, 97, 105, 106, 111, 123, 135, 122, 116, 136, 133, 141, 132, 136, 130, 115, 140, 134, 114, 113, 116, 136, 131, 136, 107, 144, 130, 143, 118, 122, 118, 128, 135, 131, 121, 118, 133, 136, 121, 116, 126, 130, 121, 127, 124, 144, 123, 136, 124, 134, 117, 113, 124, 134, 116, 114, 156, 140, 138, 119, 110, 126, 108, 134, 137, 119, 117, 120, 124, 138, 122, 134, 123, 109, 126, 141, 144, 118, 105, 126, 115, 132, 129, 127, 132, 119, 116, 138, 131, 130, 135, 119, 124, 138, 137, 136, 121, 123, 126, 137, 130, 147, 122, 126, 118, 112, 130, 126, 114, 127, 112, 127, 119, 110, 130, 126, 115, 120, 128, 134, 143, 129, 117, 126, 131, 121, 139, 134, 140, 137, 119, 132, 135, 132, 120, 125, 136, 133, 133, 144, 121, 130, 138, 139, 117, 120, 124, 115, 123, 105, 126, 107, 137, 122, 135, 113, 128, 105, 108, 125, 136, 120, 126, 127, 135, 114, 143, 133, 123, 112, 124, 131, 122, 116, 110, 117, 126, 100, 130, 115, 123, 123, 129, 110, 134, 125, 117, 122, 126, 153, 129, 120, 132, 128, 138, 122, 136, 122, 124, 122, 143, 139, 120, 114, 146, 142, 120, 140, 131, 104, 115, 121, 131, 102, 110, 108, 130, 111, 144, 110, 139, 127, 121, 153, 124, 128, 123, 121, 120, 135, 109, 151, 136, 116, 127, 134, 114, 123, 127, 97, 115, 140, 102, 134, 115, 116, 124, 131, 135, 138, 127, 131, 129, 110, 132, 124, 130, 111, 111, 121, 139, 110, 114, 129, 130, 122, 115, 105, 120, 119, 135, 130, 138, 114, 121, 131, 115, 128, 123, 136, 121, 138, 115, 117, 136, 125, 169, 122, 139, 119, 132, 124, 139, 136, 143, 111, 137, 130, 119, 111, 118, 116, 115, 117, 131, 123, 111, 117, 116, 120, 128, 134, 127, 136, 129, 128, 145, 133, 129, 121, 127, 126, 123, 118, 127, 129, 114, 150, 111, 122, 140, 108, 107, 137, 111, 114, 123, 126, 132, 122, 106, 126, 117, 123, 111, 96, 126, 126, 136, 132, 110, 119, 123, 115, 137, 139, 146, 133, 129, 137, 140, 140, 121, 124, 129, 136, 112, 116, 131, 120, 122, 132, 129, 121, 101, 125, 129, 119, 127, 122, 115, 123, 143, 112, 134, 133, 106, 117, 132, 139, 125, 132, 128, 121, 115, 150, 116, 116, 134, 100, 137, 119, 139, 127, 142, 106, 123, 144, 131, 122, 129, 141, 110, 137, 122, 112, 110, 128, 135, 108, 111, 137, 122, 132, 132, 128, 113, 119, 131, 113, 140, 113, 128, 117, 112, 115, 134, 132, 118, 121, 139, 101, 111, 137, 144, 125, 130, 123, 122, 125, 120, 122, 110, 127, 132, 131, 111, 134, 142, 130, 122, 116, 123, 130, 119, 116, 150, 116, 123, 121, 126, 132, 111, 121, 128, 120, 144, 125, 115, 125, 126, 129, 126, 122, 132, 129, 122, 118, 125, 153, 133, 113, 103, 125, 124, 120, 115, 124, 122, 126, 131, 137, 139, 114, 138, 131, 132, 118, 127, 106, 139, 125, 104, 120, 120, 117, 127, 142, 131, 118, 132, 140, 118, 135, 120, 134, 122, 129, 122, 144, 124, 146, 124, 148, 125, 109, 113, 111, 133, 110, 137, 135, 124, 119, 107, 121, 128, 140, 124, 138, 143, 126, 129, 133, 114, 109, 125, 130, 151, 127, 122, 124, 131, 116, 146, 119, 141, 119, 135, 140, 99, 124, 136, 133, 112, 132, 127, 123, 129, 137, 132, 117, 127, 133, 130, 131, 119, 144, 111, 132, 125, 138, 123, 129, 101, 120, 118, 119, 133, 130, 121, 122, 138, 121, 102, 127, 128, 122, 125, 121, 121, 114, 126, 118, 119, 115, 131, 113, 134, 141, 131, 122, 119, 121, 122, 133, 119, 124, 129, 117, 125, 127, 127, 119, 115, 126, 121, 123, 127, 125, 137, 120, 127, 134, 127, 123, 124, 125, 121, 135, 132, 122, 131, 134, 141, 101, 121, 134, 128, 121, 117, 128, 110, 141, 120, 125, 116, 125, 125, 123, 118, 135, 122, 129, 135, 135, 132, 126, 127, 118, 116, 111, 138, 126, 110, 143, 123, 144, 132, 109, 129, 112, 127, 111, 149, 130, 118, 135, 125, 118, 117, 132, 122, 133, 145, 129, 116, 126, 129, 105, 123, 123, 126, 130, 139, 129, 118, 128, 110, 122, 117, 128, 129, 130, 125, 128, 128, 112, 129, 118, 112, 117, 130, 130, 128, 128, 126, 120, 113, 119, 113, 131, 113, 125, 126, 125, 120, 125, 116, 126, 120, 126, 118, 120, 142, 128, 117, 133, 131, 129, 121, 133, 120, 146, 103, 124, 130, 116, 117, 121, 135, 116, 122, 116, 115, 123, 121, 130, 131, 123, 139, 123, 122, 132, 123, 116, 135, 133, 110, 121, 126, 127, 146, 133, 120, 118, 133, 131, 117, 125, 136, 161, 118, 113, 130, 122, 110, 122, 112, 132, 124, 121, 129, 111, 114, 128, 112, 127, 130, 135, 142, 122, 113, 114, 123, 122, 124, 121, 125, 137, 130, 136, 123, 138, 118, 124, 117, 120, 125, 134, 113, 137, 123, 120, 126, 140, 128, 119, 140, 141, 123, 140, 119, 126, 117, 137, 120, 131, 115, 154, 119, 123, 124, 116, 124, 136, 128, 114, 101, 125, 120, 117, 131, 126, 123, 132, 130, 133, 138, 142, 144, 120, 128, 123, 130, 126, 138, 140, 132, 118, 130, 132, 113, 112, 108, 128, 121, 111, 137, 119, 121, 139, 113, 133, 123, 113, 133, 142, 141, 144, 122, 116, 117, 132, 126, 127, 111, 109, 146, 139, 133, 132, 110, 106, 142, 115, 147, 116, 119, 139, 144, 130, 137, 123, 123, 116, 149, 104, 131, 129, 109, 127, 126, 118, 114, 150, 131, 119, 132, 146, 135, 132, 109, 112, 121, 139, 123, 123, 136, 108, 133, 117, 108, 128, 113, 123, 111, 130, 113, 144, 114, 121, 151, 119, 142, 137, 122, 126, 120, 111, 115, 139, 131, 125, 110, 125, 132, 143, 133, 134, 123, 131, 130, 143, 124, 112, 132, 131, 111, 120, 130, 129, 136, 125, 128, 126, 140, 113, 102, 119, 137, 144, 109, 123, 122, 116, 134, 141, 132, 119, 114, 131, 123, 109, 123, 121, 119, 122, 135, 124, 116, 127, 123, 131, 120, 113, 126, 132, 137, 124, 120, 138, 107, 132, 120, 126, 127, 121, 105, 135, 151, 138, 130, 127, 126, 115, 129, 137, 128, 134, 117, 130, 129, 142, 130, 127, 127, 135, 130, 132, 119, 103, 122, 129, 132, 129, 102, 127, 128, 126, 140, 103, 117, 111, 131, 106, 120, 151, 121, 122, 123, 127, 139, 123, 120, 136, 112, 122, 114, 128, 129, 133, 124, 129, 127, 117, 133, 128, 123, 125, 131, 135, 119, 134, 117, 117, 133, 122, 103, 142, 125, 135, 130, 131, 123, 135, 119, 128, 128, 148, 129, 127, 122, 118, 112, 127, 117, 141, 129, 126, 120, 135, 129, 126, 111, 131, 124, 125, 134, 121, 129, 124, 135, 134, 119, 113, 134, 123, 128, 121, 123, 125, 144, 140, 108, 133, 124, 97, 132, 138, 111, 111, 123, 126, 104, 130, 125, 113, 141, 111, 119, 113, 131, 123, 135, 138, 128, 136, 116, 124, 127, 111, 127, 123, 128, 118, 111, 138, 119, 157, 137, 126, 124, 134, 124, 126, 122, 116, 120, 123, 135, 125, 133, 143, 129, 124, 120, 131, 127, 122, 138, 121, 125, 136, 137, 124, 145, 119, 141, 113, 117, 128, 131, 131, 112, 132, 119, 112, 118, 102, 119, 134, 108, 135, 138, 113, 114, 133, 116, 122, 122, 138, 126, 138, 128, 108, 124, 122, 119, 129, 111, 134, 123, 127, 145, 114, 136, 126, 137, 117, 128, 123, 127, 147, 124, 132, 108, 108, 137, 122, 112, 119, 125, 153, 114, 127, 135, 126, 121, 129, 125, 116, 123, 121, 127, 113, 132, 129, 136, 114, 124, 124, 125, 117, 123, 117, 129, 126, 129, 131, 122, 120, 114, 117, 128, 116, 125, 132, 130, 113, 121, 122, 120, 111, 105, 132, 137, 128, 127, 131, 118, 123, 130, 120, 116, 123, 137, 135, 107, 122, 138, 114, 120, 111, 149, 145, 135, 110, 133, 135, 124, 108, 129, 124, 123, 128, 123, 117, 110, 121, 116, 116, 104, 132, 119, 148, 122, 122, 114, 139, 115, 116, 129, 106, 133, 134, 127, 121, 132, 126, 133, 131, 118, 122, 123, 147, 131, 113, 125, 135, 138, 116, 120, 123, 130, 133, 129, 140, 132, 134, 103, 116, 133, 128, 115, 118, 147, 115, 118, 146, 120, 142, 134, 136, 125, 142, 124, 129, 123, 118, 124, 131, 116, 109, 124, 147, 126, 141, 133, 119, 119, 118, 112, 100, 130, 148, 115, 125, 137, 110, 122, 107, 123, 138, 129, 134, 105, 148, 129, 118, 117, 117, 85, 135, 140, 150, 126, 124, 126, 104, 114, 127, 127, 120, 125, 92, 135, 131, 131, 112, 123, 116, 120, 114, 130, 115, 126, 121, 102, 119, 130, 124, 129, 121, 135, 132, 121, 93, 124, 114, 136, 114, 116, 117, 133, 135, 101, 132, 152, 116, 127, 126, 110, 124, 137, 131, 137, 129, 117, 112, 133, 138, 135, 136, 121, 132, 101, 115, 137, 131, 124, 113, 131, 131, 135, 122, 147, 125, 128, 122, 129, 125, 127, 130, 140, 122, 114, 121, 118, 135, 138, 115, 118, 118, 130, 110, 137, 128, 147, 124, 129, 120, 141, 130, 119, 136, 116, 128, 121, 148, 128, 133, 112, 129, 133, 125, 118, 113, 106, 124, 111, 120, 111, 139, 141, 126, 122, 150, 138, 119, 119, 119, 139, 120, 123, 128, 118, 135, 120, 121, 139, 119, 141, 142, 136, 148, 110, 104, 122, 151, 104, 130, 111, 106, 131, 124, 118, 137, 129, 103, 127, 126, 139, 122, 137, 149, 133, 127, 114, 133, 111, 129, 139, 118, 100, 117, 133, 127, 109, 134, 113, 115, 113, 130, 129, 131, 137, 130, 139, 132, 146, 128, 121, 121, 109, 141, 136, 108, 146, 122, 115, 132, 128, 109, 131, 125, 124, 123, 104, 130, 128, 128, 104, 121, 114, 124, 141, 115, 116, 128, 121, 130, 119, 115, 109, 111, 129, 125, 104, 111, 122, 130, 126, 134, 150, 133, 117, 136, 135, 120, 123, 104, 127, 125, 134, 108, 135, 120, 125, 126, 124, 123, 137, 129, 120, 119, 128, 125, 125, 110, 113, 131, 123, 128, 130, 124, 134, 135, 128, 147, 125, 153, 120, 134, 121, 121, 136, 142, 126, 113, 111, 121, 124, 126, 125, 103, 127, 124, 136, 134, 131, 128, 123, 122, 123, 127, 116, 125, 140, 127, 113, 133, 114, 139, 121, 126, 128, 147, 131, 140, 129, 127, 118, 117, 115, 135, 101, 134, 138, 121, 128, 140, 110, 120, 132, 131, 129, 126, 140, 117, 141, 133, 143, 131, 117, 114, 121, 117, 105, 118, 118, 120, 119, 140, 117, 155, 126, 120, 119, 140, 151, 129, 128, 131, 125, 127, 110, 131, 100, 113, 130, 111, 144, 129, 126, 138, 133, 114, 91, 125, 132, 132, 119, 134, 122, 109, 115, 131, 112, 105, 117, 138, 136, 126, 138, 108, 129, 142, 122, 126, 134, 120, 130, 123, 133, 126, 114, 129, 126, 124, 122, 132, 120, 125, 133, 131, 127, 123, 124, 122, 151, 135, 127, 117, 112, 117, 115, 141, 131, 93, 125, 117, 135, 128, 113, 126, 113, 121, 110, 133, 137, 117, 135, 123, 135, 119, 112, 127, 112, 116, 87, 107, 117, 117, 131, 118, 137, 118, 140, 114, 113, 129, 137, 125, 127, 119, 123, 115, 131, 117, 142, 104, 130, 113, 119, 111, 124, 120, 119, 128, 157, 123, 131, 128, 119, 127, 120, 126, 131, 137, 144, 136, 145, 116, 124, 117, 127, 145, 119, 137, 113, 133, 109, 104, 134, 120, 123, 134, 119, 123, 119, 128, 138, 149, 137, 120, 116, 125, 129, 121, 122, 118, 130, 115, 130, 125, 106, 117, 118, 118, 135, 130, 124, 118, 120, 146, 125, 161, 138, 136, 134, 137, 130, 118, 100, 118, 121, 128, 138, 144, 119, 125, 110, 144, 120, 127, 139, 120, 138, 124, 122, 124, 124, 127, 107, 115, 106, 128, 130, 120, 146, 106, 131, 121, 125, 148, 114, 112, 126, 125, 83, 143, 117, 117, 139, 121, 111, 170, 126, 128, 135, 113, 128, 130, 129, 133, 102, 127, 114, 141, 110, 105, 137, 131, 110, 142, 120, 119, 138, 138, 133, 126, 119, 114, 144, 120, 137, 110, 142, 109, 111, 128, 115, 131, 117, 140, 126, 107, 133, 125, 134, 122, 139, 133, 121, 115, 147, 119, 142, 122, 136, 130, 110, 128, 122, 125, 130, 146, 145, 105, 125, 137, 124, 137, 121, 118, 138, 115, 127, 122, 129, 124, 122, 132, 132, 125, 123, 113, 130, 106, 138, 119, 116, 144, 115, 142, 150, 121, 127, 133, 111, 128, 117, 133, 122, 133, 128, 136, 142, 124, 131, 130, 125, 133, 111, 129, 141, 141, 107, 131, 127, 112, 141, 125, 117, 133, 124, 140, 127, 110, 144, 131, 143, 135, 117, 143, 125, 118, 125, 110, 112, 105, 136, 144, 117, 115, 121, 120, 114, 123, 140, 113, 133, 119, 125, 123, 107, 131, 148, 124, 111, 139, 116, 113, 103, 133, 129, 155, 139, 112, 124, 100, 136, 121, 119, 124, 122, 138, 102, 129, 112, 115, 125, 111, 118, 122, 125, 122, 142, 137, 136, 119, 124, 142, 118, 119, 123, 140, 129, 124, 112, 111, 98, 117, 114, 123, 119, 115, 119, 122, 115, 114, 141, 108, 111, 128, 128, 122, 138, 107, 115, 125, 128, 115, 132, 146, 117, 123, 114, 129, 112, 136, 122, 103, 116, 137, 145, 118, 128, 139, 129, 113, 143, 148, 128, 121, 90, 110, 120, 114, 92, 124, 112, 126, 114, 139, 112, 109, 124, 126, 117, 138, 133, 131, 107, 110, 131, 138, 116, 135, 131, 128, 146, 125, 124, 118, 126, 138, 132, 110, 126, 124, 129, 139, 136, 130, 114, 134, 124, 121, 123, 132, 133, 124, 131, 115, 118, 146, 127, 143, 122, 144, 111, 149, 120, 134, 125, 138, 111, 132, 119, 128, 123, 126, 134, 110, 136, 126, 125, 123, 100, 126, 129, 172, 102, 132, 119, 126, 120, 113, 115, 125, 149, 134, 125, 118, 137, 114, 127, 137, 134, 134, 132, 127, 111, 125, 118, 128, 110, 131, 125, 135, 124, 115, 129, 141, 130, 132, 128, 114, 115, 99, 146, 126, 151, 113, 127, 131, 140, 138, 123, 121, 111, 133, 104, 137, 112, 122, 128, 127, 128, 139, 129, 130, 113, 132, 121, 124, 124, 125, 117, 112, 148, 149, 133, 115, 119, 131, 119, 127, 125, 121, 125, 130, 116, 124, 118, 147, 135, 122, 125, 123, 119, 126, 117, 126, 112, 121, 110, 101, 116, 116, 157, 117, 121, 125, 112, 122, 125, 122, 111, 99, 132, 130, 110, 116, 136, 124, 134, 138, 105, 125, 136, 127, 118, 107, 126, 141, 106, 114, 115, 124, 112, 122, 109, 127, 97, 127, 132, 130, 139, 101, 120, 124, 144, 122, 121, 129, 117, 95, 122, 128, 131, 120, 111, 130, 142, 131, 135, 143, 134, 121, 131, 134, 132, 128, 133, 129, 128, 125, 125, 113, 128, 114, 129, 128, 114, 124, 126, 141, 136, 119, 119, 111, 150, 128, 121, 131, 137, 109, 118, 116, 124, 121, 110, 115, 131, 120, 110, 122, 129, 130, 124, 130, 140, 112, 117, 128, 139, 110, 127, 131, 120, 131, 129, 123, 147, 121, 122, 118, 117, 135, 117, 126, 130, 138, 123, 131, 135, 128, 125, 129, 124, 120, 134, 124, 112, 118, 126, 116, 113, 127, 116, 120, 121, 137, 119, 117, 118, 118, 135, 134, 142, 134, 130, 118, 136, 109, 133, 118, 127, 146, 128, 128, 125, 133, 114, 118, 130, 113, 133, 133, 128, 98, 120, 122, 133, 125, 106, 129, 125, 127, 144, 108, 125, 147, 124, 121, 153, 143, 112, 140, 127, 149, 131, 131, 139, 113, 119, 124, 152, 125, 117, 121, 121, 115, 131, 105, 126, 139, 113, 139, 105, 112, 117, 143, 124, 110, 138, 134, 136, 131, 128, 126, 119, 130, 145, 111, 131, 135, 139, 118, 116, 108, 132, 128, 135, 115, 143, 125, 133, 123, 138, 130, 124, 125, 132, 126, 124, 124, 121, 111, 134, 105, 110, 124, 124, 123, 116, 144, 129, 130, 133, 132, 139, 122, 133, 122, 131, 139, 137, 119, 124, 124, 129, 115, 140, 121, 113, 126, 108, 130, 134, 138, 118, 116, 121, 121, 126, 121, 120, 117, 116, 108, 123, 139, 123, 114, 122, 119, 130, 138, 134, 113, 114, 124, 119, 127, 126, 119, 113, 126, 134, 109, 124, 132, 133, 117, 135, 128, 138, 133, 117, 132, 145, 134, 131, 118, 133, 125, 113, 126, 116, 126, 123, 140, 98, 139, 131, 120, 125, 128, 115, 121, 124, 128, 129, 127, 122, 117, 111, 143, 133, 124, 130, 135, 152, 132, 115, 150, 135, 129, 130, 122, 124, 110, 125, 127, 116, 120, 108, 105, 112, 141, 125, 113, 129, 144, 131, 124, 117, 132, 128, 132, 129, 130, 130, 135, 112, 116, 133, 117, 121, 132, 107, 124, 136, 120, 128, 151, 121, 142, 144, 129, 116, 130, 132, 118, 136, 128, 123, 117, 124, 121, 107, 112, 137, 141, 120, 140, 124, 138, 127, 143, 142, 130, 131, 115, 130, 130, 122, 135, 116, 116, 124, 142, 128, 116, 117, 127, 126, 127, 128, 128, 116, 119, 117, 149, 126, 114, 143, 128, 140, 134, 125, 137, 129, 119, 122, 103, 127, 112, 128, 126, 132, 109, 131, 111, 119, 134, 118, 139, 121, 120, 120, 133, 119, 119, 126, 133, 112, 124, 126, 120, 123, 124, 120, 121, 115, 127, 128, 141, 139, 126, 112, 120, 126, 109, 128, 151, 114, 137, 133, 133, 121, 116, 138, 112, 124, 122, 126, 109, 122, 130, 136, 118, 120, 132, 134, 116, 132, 119, 116, 112, 123, 143, 142, 124, 128, 133, 119, 123, 122, 131, 138, 127, 144, 137, 107, 132, 125, 111, 103, 118, 118, 125, 127, 115, 135, 124, 139, 115, 139, 129, 137, 134, 154, 112, 107, 136, 143, 132, 124, 128, 121, 117, 138, 114, 119, 147, 129, 126, 133, 130, 133, 115, 129, 133, 128, 131, 120, 122, 129, 116, 123, 114, 131, 114, 129, 119, 121, 116, 126, 122, 128, 134, 135, 121, 109, 113, 130, 122, 117, 139, 129, 122, 130, 122, 122, 143, 122, 130, 128, 125, 143, 100, 117, 124, 139, 131, 119, 113, 133, 121, 135, 130, 134, 137, 140, 117, 112, 145, 125, 142, 107, 133, 103, 119, 129, 121, 131, 113, 132, 113, 132, 106, 117, 129, 122, 134, 133, 127, 100, 113, 129, 125, 127, 125, 117, 113, 123, 134, 119, 116, 135, 144, 125, 123, 122, 102, 145, 111, 124, 127, 124, 117, 128, 129, 136, 132, 122, 133, 132, 124, 135, 122, 122, 136, 131, 131, 118, 113, 134, 129, 135, 107, 135, 131, 126, 112, 124, 104, 126, 116, 120, 138, 130, 137, 145, 138, 127, 126, 123, 130, 117, 129, 116, 121, 119, 145, 142, 110, 104, 118, 116, 110, 109, 122, 127, 124, 121, 132, 117, 131, 131, 128, 134, 125, 138, 130, 126, 119, 148, 132, 101, 138, 123, 125, 126, 125, 118, 124, 125, 113, 115, 135, 119, 134, 128, 133, 111, 130, 124, 132, 134, 126, 144, 125, 121, 120, 115, 116, 141, 127, 128, 115, 146, 122, 148, 147, 127, 142, 127, 125, 128, 131, 115, 129, 130, 129, 132, 119, 123, 137, 136, 120, 153, 144, 125, 110, 122, 128, 128, 123, 130, 126, 123, 126, 111, 118, 120, 112, 129, 127, 133, 113, 113, 116, 125, 120, 132, 100, 113, 119, 111, 118, 135, 109, 130, 126, 132, 119, 124, 124, 115, 134, 136, 135, 129, 120, 135, 114, 130, 127, 131, 127, 138, 143, 117, 117, 141, 127, 126, 121, 108, 118, 136, 122, 117, 127, 133, 123, 120, 113, 128, 117, 107, 126, 133, 123, 125, 124, 129, 123, 117, 136, 123, 117, 116, 125, 127, 129, 125, 145, 112, 116, 131, 122, 127, 133, 109, 110, 134, 135, 125, 119, 133, 119, 124, 129, 119, 111, 117, 116, 114, 121, 121, 131, 127, 138, 113, 113, 119, 131, 120, 135, 106, 137, 122, 125, 123, 125, 135, 122, 129, 132, 137, 121, 135, 112, 122, 130, 114, 130, 117, 142, 140, 123, 126, 127, 103, 129, 119, 128, 131, 138, 121, 127, 124, 127, 106, 118, 128, 113, 113, 127, 146, 121, 130, 109, 143, 113, 130, 115, 115, 125, 126, 138, 112, 123, 124, 129, 123, 140, 132, 151, 133, 129, 134, 142, 129, 140, 130, 123, 112, 129, 120, 118, 122, 118, 121, 135, 118, 120, 124, 113, 133, 137, 108, 144, 134, 126, 130, 120, 130, 129, 133, 129, 122, 135, 141, 149, 122, 126, 129, 137, 128, 125, 137, 132, 129, 131, 127, 117, 132, 111, 129, 123, 163, 120, 121, 124, 128, 145, 133, 128, 130, 103, 122, 99, 124, 118, 130, 136, 101, 112, 136, 129, 115, 119, 129, 133, 123, 116, 133, 114, 123, 129, 128, 129, 121, 136, 103, 127, 124, 131, 126, 130, 125, 139, 138, 126, 173, 140, 122, 118, 134, 136, 115, 123, 133, 126, 133, 124, 111, 126, 125, 135, 124, 125, 115, 137, 122, 114, 127, 132, 120, 103, 111, 117, 118, 127, 129, 136, 130, 112, 131, 138, 129, 124, 129, 132, 112, 131, 131, 122, 141, 129, 136, 103, 117, 116, 124, 123, 142, 122, 129, 119, 118, 111, 135, 115, 113, 136, 140, 155, 118, 130, 126, 139, 127, 99, 117, 131, 119, 119, 140, 118, 122, 133, 133, 112, 122, 122, 127, 119, 117, 124, 150, 116, 127, 122, 142, 118, 118, 129, 111, 121, 115, 123, 123, 138, 116, 117, 117, 113, 139, 140, 119, 121, 109, 115, 136, 141, 129, 124, 133, 112, 128, 110, 123, 119, 135, 113, 126, 143, 151, 132, 121, 124, 128, 124, 118, 122, 126, 111, 128, 122, 137, 118, 112, 127, 122, 132, 134, 127, 130, 117, 123, 130, 153, 130, 116, 127, 115, 113, 143, 117, 120, 116, 120, 139, 128, 120, 137, 135, 116, 133, 131, 134, 125, 124, 122, 122, 118, 121, 127, 138, 114, 106, 116, 137, 106, 110, 119, 143, 121, 122, 124, 123, 133, 133, 122, 135, 119, 113, 122, 141, 120, 129, 111, 125, 133, 110, 143, 142, 150, 130, 125, 134, 113, 130, 130, 123, 122, 127, 102, 141, 132, 127, 140, 106, 122, 122, 131, 144, 139, 131, 135, 117, 122, 115, 140, 141, 116, 136, 133, 129, 127, 122, 135, 118, 119, 120, 129, 115, 122, 120, 115, 135, 131, 125, 132, 142, 136, 117, 139, 119, 114, 130, 129, 129, 125, 104, 140, 133, 121, 134, 121, 126, 110, 122, 126, 122, 108, 117, 104, 110, 119, 124, 104, 134, 131, 118, 142, 127, 120, 113, 119, 125, 130, 125, 115, 117, 118, 124, 131, 110, 127, 121, 136, 134, 129, 124, 134, 126, 120, 142, 108, 127, 121, 133, 132, 124, 105, 132, 128, 128, 135, 130, 129, 119, 119, 114, 116, 122, 103, 136, 124, 122, 149, 114, 116, 130, 107, 126, 126, 114, 110, 133, 153, 133, 115, 117, 131, 91, 112, 109, 147, 129, 123, 120, 126, 126, 129, 117, 133, 119, 133, 124, 113, 125, 137, 127, 105, 119, 126, 111, 134, 128, 147, 120, 119, 108, 124, 134, 95, 132, 133, 120, 152, 116, 125, 127, 138, 111, 142, 98, 132, 122, 124, 128, 115, 129, 125, 129, 125, 127, 112, 134, 116, 145, 124, 117, 111, 129, 109, 104, 126, 116, 125, 123, 138, 134, 110, 127, 138, 116, 119, 117, 116, 147, 117, 137, 126, 132, 130, 137, 129, 140, 130, 124, 134, 108, 133, 126, 127, 125, 123, 137, 122, 117, 126, 131, 130, 138, 132, 125, 143, 130, 122, 105, 111, 121, 123, 119, 123, 107, 134, 121, 137, 121, 108, 129, 142, 129, 127, 153, 139, 136, 105, 102, 129, 119, 120, 109, 127, 137, 128, 126, 128, 129, 138, 129, 137, 127, 138, 128, 128, 127, 112, 129, 149, 119, 112, 110, 125, 115, 147, 130, 132, 125, 117, 128, 138, 129, 127, 134, 121, 130, 112, 136, 122, 113, 132, 110, 129, 135, 123, 133, 128, 122, 130, 103, 120, 120, 99, 125, 125, 133, 140, 135, 137, 128, 119, 133, 131, 126, 134, 138, 115, 121, 126, 128, 118, 145, 125, 114, 133, 130, 127, 119, 112, 127, 119, 126, 116, 129, 132, 121, 128, 123, 113, 121, 123, 129, 128, 125, 104, 112, 129, 125, 122, 129, 122, 122, 120, 127, 128, 126, 127, 118, 121, 119, 134, 120, 134, 119, 141, 131, 128, 113, 127, 142, 127, 140, 136, 137, 123, 123, 118, 119, 118, 139, 137, 151, 114, 127, 133, 113, 130, 116, 116, 151, 121, 127, 135, 131, 149, 153, 112, 126, 133, 125, 134, 106, 134, 120, 107, 114, 136, 135, 128, 131, 129, 141, 130, 122, 113, 135, 123, 124, 127, 110, 122, 136, 139, 143, 117, 120, 139, 135, 116, 129, 123, 126, 120, 123, 123, 141, 116, 134, 142, 132, 141, 130, 127, 122, 137, 118, 121, 132, 132, 115, 118, 147, 123, 109, 126, 137, 123, 127, 120, 120, 134, 134, 134, 124, 120, 132, 130, 138, 111, 109, 108, 128, 140, 118, 133, 123, 118, 112, 126, 144, 116, 127, 122, 128, 113, 107, 129, 144, 109, 112, 115, 138, 129, 130, 117, 115, 127, 114, 118, 126, 137, 127, 127, 104, 146, 115, 128, 117, 119, 126, 126, 108, 109, 127, 133, 128, 127, 116, 132, 127, 140, 121, 130, 127, 132, 120, 138, 135, 102, 134, 130, 135, 140, 120, 122, 118, 134, 129, 123, 119, 124, 129, 110, 142, 137, 120, 111, 112, 132, 126, 129, 118, 114, 117, 117, 116, 125, 120, 107, 126, 135, 108, 121, 120, 144, 119, 133, 131, 121, 110, 123, 104, 109, 139, 118, 122, 129, 143, 134, 118, 112, 122, 127, 129, 128, 111, 131, 125, 132, 127, 114, 132, 113, 122, 135, 115, 104, 121, 128, 135, 122, 126, 135, 121, 144, 121, 133, 118, 157, 130, 136, 116, 123, 110, 137, 129, 136, 116, 120, 138, 110, 130, 140, 134, 147, 129, 129, 134, 105, 115, 121, 136, 133, 124, 111, 123, 121, 124, 132, 117, 124, 122, 121, 148, 120, 145, 131, 135, 169, 124, 133, 124, 120, 115, 134, 133, 125, 118, 134, 131, 126, 133, 133, 142, 148, 117, 122, 138, 130, 128, 135, 129, 123, 130, 115, 130, 128, 129, 113, 119, 134, 113, 151, 126, 126, 135, 123, 123, 130, 119, 132, 129, 126, 121, 127, 120, 122, 125, 125, 126, 132, 128, 113, 121, 105, 127, 124, 123, 123, 123, 118, 117, 123, 126, 129, 96, 136, 117, 129, 111, 118, 139, 124, 133, 120, 97, 121, 109, 137, 138, 139, 125, 134, 104, 136, 127, 140, 132, 114, 139, 121, 120, 152, 136, 120, 125, 116, 125, 131, 123, 110, 130, 117, 122, 120, 136, 125, 96, 126, 117, 125, 116, 132, 120, 122, 117, 116, 125, 117, 123, 128, 124, 113, 131, 105, 134, 124, 128, 118, 125, 119, 138, 146, 122, 121, 128, 123, 121, 129, 130, 123, 111, 122, 103, 136, 124, 130, 132, 123, 137, 115, 113, 126, 132, 125, 141, 136, 143, 128, 111, 133, 124, 129, 128, 131, 112, 107, 128, 148, 120, 144, 137, 116, 121, 132, 121, 129, 123, 102, 132, 125, 129, 107, 144, 124, 128, 118, 122, 124, 124, 138, 120, 112, 128, 118, 118, 126, 119, 119, 110, 122, 135, 122, 130, 109, 122, 152, 115, 128, 128, 135, 121, 140, 140, 112, 117, 131, 132, 136, 113, 126, 134, 140, 132, 137, 136, 116, 114, 134, 127, 112, 112, 122, 115, 134, 130, 132, 129, 130, 105, 119, 125, 125, 127, 134, 130, 120, 120, 129, 126, 117, 126, 127, 134, 114, 129, 133, 127, 115, 144, 117, 118, 128, 137, 154, 121, 120, 122, 124, 126, 136, 127, 136, 126, 96, 110, 131, 118, 130, 116, 109, 110, 143, 139, 133, 135, 125, 122, 129, 132, 127, 116, 128, 130, 132, 117, 128, 133, 119, 112, 123, 118, 120, 134, 129, 119, 123, 128, 108, 140, 129, 129, 128, 118, 144, 119, 119, 128, 120, 130, 121, 118, 140, 126, 125, 117, 125, 119, 125, 107, 108, 131, 135, 125, 104, 126, 119, 122, 132, 134, 133, 126, 117, 114, 118, 134, 134, 125, 125, 122, 107, 114, 125, 115, 112, 116, 149, 120, 118, 120, 136, 122, 118, 120, 132, 131, 137, 123, 120, 119, 137, 124, 127, 126, 142, 133, 126, 129, 129, 118, 111, 121, 125, 126, 131, 116, 127, 118, 132, 121, 100, 101, 142, 111, 129, 117, 138, 129, 104, 135, 124, 112, 133, 124, 127, 125, 116, 129, 116, 118, 125, 152, 131, 130, 122, 129, 128, 124, 124, 141, 105, 110, 107, 117, 135, 124, 117, 122, 136, 134, 132, 139, 124, 114, 122, 129, 103, 130, 149, 135, 126, 134, 133, 144, 118, 124, 127, 121, 134, 130, 119, 142, 116, 124, 97, 124, 121, 122, 118, 117, 119, 115, 139, 136, 125, 141, 132, 146, 129, 125, 120, 124, 127, 113, 134, 128, 137, 124, 118, 134, 126, 103, 125, 130, 132, 130, 128, 138, 137, 123, 131, 122, 132, 118, 121, 140, 124, 120, 120, 110, 127, 117, 130, 115, 121, 113, 125, 117, 118, 115, 138, 141, 141, 148, 115, 120, 98, 119, 137, 143, 110, 143, 124, 120, 127, 134, 97, 126, 133, 119, 120, 104, 130, 122, 122, 136, 134, 139, 144, 129, 144, 119, 121, 137, 140, 128, 133, 133, 108, 140, 118, 128, 110, 119, 125, 122, 117, 110, 122, 115, 118, 143, 119, 127, 103, 136, 132, 131, 125, 109, 118, 105, 120, 131, 125, 137, 124, 130, 120, 101, 120, 130, 129, 144, 111, 124, 122, 111, 141, 135, 121, 126, 138, 121, 116, 121, 108, 120, 141, 125, 123, 114, 121, 129, 123, 132, 123, 105, 141, 119, 118, 134, 113, 108, 124, 114, 126, 147, 121, 112, 138, 122, 128, 116, 103, 128, 119, 132, 131, 133, 123, 107, 125, 135, 136, 129, 155, 130, 143, 119, 121, 101, 120, 127, 139, 126, 112, 106, 129, 131, 125, 134, 125, 131, 122, 114, 130, 112, 139, 118, 119, 134, 124, 125, 121, 108, 128, 132, 127, 132, 116, 115, 123, 138, 121, 119, 107, 148, 126, 138, 136, 122, 122, 106, 123, 139, 93, 150, 119, 115, 125, 140, 143, 124, 126, 141, 130, 140, 138, 102, 131, 108, 112, 126, 131, 133, 134, 126, 125, 132, 131, 140, 116, 118, 136, 133, 123, 137, 131, 105, 141, 118, 112, 113, 125, 130, 140, 143, 136, 114, 138, 134, 128, 118, 117, 104, 122, 113, 110, 134, 112, 129, 112, 131, 141, 130, 120, 132, 110, 121, 121, 109, 116, 112, 135, 112, 124, 144, 146, 127, 141, 116, 128, 106, 139, 115, 123, 124, 126, 145, 135, 152, 123, 117, 130, 130, 146, 117, 144, 124, 134, 128, 104, 130, 124, 132, 122, 128, 112, 129, 135, 125, 124, 126, 118, 131, 122, 130, 117, 131, 116, 110, 113, 122, 121, 124, 125, 125, 122, 125, 124, 144, 142, 126, 142, 109, 130, 120, 135, 118, 129, 124, 119, 124, 135, 132, 132, 114, 119, 121, 118, 134, 115, 146, 134, 136, 131, 124, 136, 135, 150, 126, 125, 102, 161, 145, 121, 132, 122, 126, 151, 129, 136, 133, 119, 115, 133, 147, 115, 105, 126, 122, 148, 110, 134, 124, 129, 138, 139, 125, 114, 142, 136, 124, 98, 121, 130, 124, 125, 117, 136, 134, 128, 121, 125, 126, 124, 119, 132, 130, 123, 143, 116, 135, 134, 133, 123, 116, 118, 112, 133, 105, 123, 128, 132, 134, 122, 129, 116, 110, 137, 139, 126, 127, 108, 139, 134, 129, 121, 124, 137, 108, 109, 152, 125, 121, 138, 128, 125, 119, 122, 129, 118, 132, 117, 119, 134, 136, 128, 137, 131, 132, 135, 116, 138, 113, 127, 131, 123, 131, 122, 129, 116, 108, 136, 119, 133, 129, 133, 125, 124, 143, 120, 113, 119, 119, 147, 151, 126, 129, 123, 120, 133, 140, 131, 132, 114, 115, 133, 119, 122, 118, 126, 126, 132, 122, 130, 108, 125, 124, 128, 111, 126, 126, 127, 135, 123, 133, 124, 125, 126, 118, 113, 119, 126, 128, 131, 114, 122, 127, 136, 144, 120, 114, 130, 126, 128, 128, 131, 133, 129, 136, 107, 126, 131, 130, 124, 126, 125, 125, 121, 127, 127, 131, 138, 126, 124, 109, 127, 133, 135, 135, 117, 136, 109, 138, 128, 125, 124, 128, 135, 146, 134, 141, 128, 126, 123, 120, 122, 113, 119, 128, 116, 143, 125, 132, 115, 128, 145, 132, 138, 110, 147, 120, 121, 124, 130, 141, 120, 123, 135, 131, 117, 149, 135, 140, 135, 122, 126, 131, 113, 130, 127, 135, 127, 127, 129, 121, 128, 123, 111, 141, 138, 127, 107, 131, 114, 125, 129, 134, 144, 133, 133, 149, 108, 152, 125, 119, 118, 128, 93, 128, 116, 132, 131, 127, 125, 127, 119, 109, 128, 127, 122, 146, 135, 99, 136, 132, 111, 147, 136, 133, 120, 115, 123, 123, 127, 101, 128, 124, 115, 147, 136, 139, 108, 132, 116, 135, 126, 137, 130, 129, 130, 132, 132, 131, 112, 137, 128, 139, 123, 146, 105, 132, 131, 123, 135, 125, 122, 116, 122, 133, 124, 123, 129, 129, 115, 126, 114, 122, 131, 111, 135, 109, 121, 120, 122, 120, 126, 129, 117, 137, 100, 118, 117, 131, 112, 127, 106, 143, 156, 125, 128, 107, 125, 128, 141, 132, 124, 105, 135, 125, 122, 110, 136, 133, 120, 140, 117, 131, 134, 128, 115, 167, 149, 132, 131, 119, 132, 133, 122, 140, 127, 111, 126, 126, 141, 129, 121, 128, 139, 126, 111, 131, 122, 112, 116, 133, 118, 125, 131, 125, 125, 121, 118, 123, 111, 133, 137, 124, 122, 114, 128, 151, 132, 121, 142, 125, 119, 137, 130, 126, 132, 138, 124, 132, 134, 120, 146, 151, 116, 121, 124, 123, 138, 128, 129, 136, 124, 130, 136, 116, 111, 115, 143, 139, 135, 154, 115, 124, 118, 122, 125, 138, 111, 134, 117, 113, 132, 139, 117, 133, 133, 142, 131, 105, 114, 108, 106, 107, 121, 110, 126, 111, 121, 121, 128, 114, 127, 126, 133, 135, 129, 121, 107, 105, 121, 120, 126, 127, 124, 124, 119, 117, 111, 131, 133, 124, 116, 126, 119, 122, 133, 120, 138, 135, 127, 124, 103, 136, 139, 124, 143, 113, 118, 131, 137, 119, 122, 121, 133, 122, 106, 118, 143, 119, 130, 122, 138, 127, 117, 129, 122, 130, 122, 137, 130, 126, 122, 107, 112, 133, 121, 128, 132, 135, 120, 121, 127, 120, 134, 124, 128, 112, 121, 128, 117, 134, 131, 117, 128, 120, 119, 152, 134, 126, 131, 119, 128, 114, 106, 127, 131, 141, 125, 140, 117, 125, 129, 123, 129, 138, 123, 118, 113, 102, 132, 143, 139, 131, 127, 123, 103, 125, 120, 136, 116, 117, 118, 130, 143, 127, 139, 119, 139, 139, 122, 114, 133, 141, 121, 131, 135, 141, 127, 120, 134, 135, 107, 110, 127, 127, 121, 133, 109, 105, 121, 134, 137, 119, 142, 139, 128, 113, 130, 137, 134, 132, 133, 119, 132, 136, 129, 105, 117, 131, 113, 121, 112, 109, 134, 120, 130, 135, 118, 121, 131, 138, 123, 129, 133, 114, 117, 128, 123, 116, 119, 129, 118, 126, 118, 135, 118, 132, 125, 129, 128, 128, 132, 118, 109, 140, 133, 113, 125, 130, 127, 122, 126, 150, 115, 111, 107, 146, 115, 107, 120, 145, 130, 111, 118, 136, 122, 128, 136, 114, 132, 135, 152, 139, 135, 120, 137, 133, 113, 129, 120, 119, 120, 133, 126, 130, 126, 115, 126, 126, 126, 119, 139, 135, 132, 121, 139, 112, 117, 106, 136, 113, 127, 121, 117, 116, 141, 124, 139, 125, 120, 132, 113, 129, 123, 114, 115, 135, 130, 139, 117, 125, 140, 135, 132, 139, 151, 120, 130, 121, 143, 125, 114, 112, 130, 116, 136, 139, 114, 146, 150, 118, 124, 134, 111, 115, 107, 126, 126, 130, 131, 136, 130, 130, 122, 123, 111, 131, 142, 121, 116, 96, 136, 122, 118, 133, 121, 102, 103, 129, 120, 125, 114, 131, 132, 117, 125, 114, 127, 126, 113, 121, 123, 114, 119, 150, 130, 133, 120, 121, 134, 125, 113, 135, 126, 120, 139, 113, 108, 123, 126, 114, 133, 111, 121, 116, 114, 133, 132, 114, 110, 119, 139, 122, 107, 119, 122, 112, 122, 133, 122, 117, 106, 137, 130, 129, 122, 140, 133, 146, 125, 94, 142, 125, 114, 133, 141, 120, 130, 118, 130, 134, 138, 115, 123, 122, 128, 111, 133, 113, 117, 133, 127, 124, 133, 144, 115, 116, 135, 121, 126, 133, 123, 123, 117, 119, 124, 135, 135, 140, 137, 111, 130, 123, 122, 123, 119, 106, 116, 129, 123, 121, 133, 123, 122, 131, 117, 111, 123, 116, 124, 138, 110, 111, 144, 117, 129, 141, 123, 131, 132, 114, 116, 136, 127, 115, 125, 122, 134, 134, 126, 140, 123, 124, 125, 136, 134, 133, 122, 137, 137, 116, 163, 114, 124, 126, 117, 132, 114, 114, 119, 133, 118, 120, 125, 120, 136, 122, 127, 135, 128, 128, 114, 121, 136, 146, 133, 136, 142, 127, 137, 103, 132, 117, 127, 120, 117, 109, 127, 141, 100, 138, 124, 125, 131, 122, 128, 128, 117, 142, 135, 125, 124, 117, 110, 124, 135, 124, 127, 133, 118, 120, 122, 121, 125, 143, 140, 118, 119, 131, 123, 131, 133, 127, 134, 120, 123, 107, 113, 125, 133, 138, 133, 126, 119, 132, 123, 119, 127, 123, 132, 151, 127, 127, 125, 144, 119, 128, 123, 125, 130, 116, 136, 124, 144, 138, 124, 125, 130, 124, 113, 119, 131, 125, 146, 128, 119, 116, 118, 131, 139, 109, 119, 113, 130, 134, 127, 119, 117, 134, 131, 135, 130, 130, 142, 109, 131, 125, 144, 118, 129, 124, 122, 116, 122, 124, 132, 114, 122, 122, 124, 114, 135, 117, 123, 114, 128, 125, 135, 118, 137, 135, 131, 124, 126, 138, 129, 125, 131, 113, 127, 148, 123, 122, 155, 118, 129, 149, 118, 129, 112, 107, 117, 119, 125, 111, 106, 114, 133, 112, 126, 129, 137, 131, 119, 122, 133, 130, 123, 120, 118, 127, 111, 147, 126, 119, 107, 121, 109, 148, 115, 138, 115, 118, 131, 136, 128, 110, 142, 145, 141, 130, 113, 131, 142, 116, 132, 117, 134, 141, 126, 140, 124, 124, 115, 143, 116, 129, 146, 129, 130, 114, 129, 133, 124, 127, 117, 132, 134, 117, 108, 127, 116, 111, 130, 125, 128, 126, 136, 133, 122, 121, 133, 110, 111, 115, 117, 113, 122, 136, 121, 141, 137, 117, 113, 110, 120, 133, 124, 117, 126, 143, 135, 130, 119, 131, 125, 120, 140, 123, 138, 109, 133, 124, 133, 124, 117, 131, 124, 120, 123, 114, 124, 122, 130, 119, 121, 106, 120, 129, 141, 105, 133, 133, 123, 133, 132, 119, 130, 128, 131, 111, 119, 124, 122, 116, 126, 130, 140, 124, 116, 131, 130, 132, 115, 138, 135, 117, 100, 133, 124, 117, 122, 134, 131, 126, 112, 122, 128, 131, 109, 118, 122, 127, 112, 146, 129, 138, 145, 120, 114, 105, 122, 119, 113, 137, 123, 125, 132, 119, 118, 135, 125, 132, 153, 117, 139, 119, 117, 104, 123, 143, 118, 133, 117, 126, 127, 142, 136, 136, 125, 128, 123, 122, 139, 131, 142, 116, 155, 133, 126, 102, 126, 119, 115, 118, 125, 122, 114, 125, 131, 129, 115, 129, 136, 123, 128, 121, 124, 125, 115, 126, 125, 115, 126, 104, 142, 128, 122, 115, 116, 124, 134, 139, 118, 146, 113, 122, 123, 126, 105, 126, 131, 131, 121, 138, 156, 128, 114, 136, 126, 122, 109, 128, 138, 123, 110, 103, 110, 127, 122, 111, 121, 135, 131, 127, 119, 137, 126, 130, 114, 128, 121, 93, 125, 142, 131, 129, 132, 121, 141, 129, 120, 137, 126, 122, 114, 138, 112, 126, 133, 136, 112, 109, 121, 132, 126, 137, 133, 118, 121, 123, 132, 124, 114, 131, 121, 124, 124, 130, 122, 135, 118, 134, 135, 132, 147, 108, 126, 156, 127, 145, 119, 131, 127, 134, 124, 137, 113, 114, 120, 120, 106, 124, 141, 124, 136, 110, 117, 115, 140, 120, 128, 114, 129, 131, 138, 123, 122, 120, 121, 129, 129, 115, 139, 143, 114, 122, 129, 126, 118, 128, 126, 117, 135, 127, 136, 125, 136, 120, 128, 130, 113, 130, 125, 106, 150, 123, 133, 125, 132, 126, 138, 128, 125, 112, 130, 107, 127, 133, 124, 119, 122, 113, 143, 134, 114, 130, 121, 116, 122, 142, 114, 124, 125, 133, 133, 135, 139, 125, 121, 118, 141, 133, 114, 128, 123, 128, 129, 131, 132, 138, 112, 121, 115, 125, 129, 134, 125, 129, 116, 114, 131, 126, 122, 148, 129, 133, 141, 113, 114, 129, 128, 140, 113, 114, 126, 121, 109, 137, 113, 129, 109, 145, 128, 137, 130, 124, 122, 126, 125, 138, 132, 132, 123, 110, 122, 124, 130, 122, 140, 133, 112, 122, 109, 135, 127, 122, 129, 135, 125, 119, 103, 123, 121, 120, 152, 120, 117, 134, 107, 131, 126, 132, 110, 129, 106, 129, 121, 143, 128, 125, 137, 119, 130, 123, 112, 148, 121, 128, 122, 130, 95, 119, 147, 116, 117, 120, 131, 132, 117, 131, 119, 129, 121, 125, 116, 140, 108, 119, 139, 128, 128, 121, 112, 128, 145, 127, 119, 145, 116, 115, 113, 131, 132, 114, 121, 108, 100, 135, 124, 120, 120, 116, 121, 124, 125, 131, 128, 137, 133, 103, 132, 115, 145, 122, 123, 135, 119, 122, 140, 117, 140, 128, 117, 112, 115, 128, 133, 137, 127, 124, 127, 132, 111, 125, 120, 126, 131, 128, 136, 135, 141, 111, 99, 135, 117, 139, 114, 127, 126, 128, 117, 139, 127, 129, 121, 104, 136, 128, 123, 115, 115, 124, 124, 105, 132, 130, 135, 119, 133, 134, 119, 124, 130, 128, 126, 138, 112, 135, 126, 142, 150, 133, 117, 119, 130, 120, 114, 136, 149, 129, 133, 120, 130, 130, 111, 141, 140, 142, 125, 134, 138, 131, 123, 133, 127, 124, 134, 130, 123, 119, 123, 127, 120, 121, 119, 116, 122, 121, 122, 113, 129, 140, 114, 130, 130, 125, 122, 143, 140, 115, 129, 149, 132, 131, 126, 133, 129, 130, 137, 124, 127, 138, 131, 143, 139, 147, 126, 127, 125, 141, 123, 106, 137, 111, 128, 130, 141, 137, 132, 127, 120, 125, 140, 142, 113, 136, 116, 126, 127, 118, 133, 146, 126, 117, 120, 113, 128, 137, 129, 134, 124, 109, 132, 114, 123, 130, 122, 110, 113, 120, 93, 122, 133, 106, 120, 142, 127, 110, 118, 123, 121, 133, 142, 127, 139, 132, 127, 128, 124, 143, 132, 129, 131, 126, 104, 128, 121, 115, 138, 140, 108, 139, 111, 135, 119, 136, 125, 126, 135, 103, 118, 132, 123, 128, 109, 115, 133, 132, 114, 129, 114, 147, 140, 108, 131, 136, 118, 109, 122, 126, 122, 126, 146, 119, 122, 145, 136, 120, 132, 131, 130, 124, 114, 124, 113, 115, 124, 128, 127, 128, 134, 121, 134, 128, 124, 136, 137, 136, 121, 128, 119, 117, 115, 127, 120, 119, 103, 115, 110, 118, 117, 125, 134, 128, 116, 121, 138, 127, 118, 121, 125, 124, 127, 139, 122, 144, 115, 123, 119, 130, 102, 119, 126, 131, 141, 128, 119, 152, 121, 144, 112, 125, 124, 118, 114, 128, 124, 152, 112, 150, 117, 126, 110, 119, 136, 116, 130, 134, 119, 130, 124, 142, 120, 128, 123, 123, 133, 115, 131, 132, 107, 125, 108, 110, 116, 123, 141, 130, 127, 113, 137, 127, 117, 134, 122, 125, 118, 143, 114, 115, 109, 127, 130, 141, 130, 120, 149, 136, 106, 118, 129, 113, 115, 120, 123, 154, 117, 124, 120, 120, 121, 121, 116, 124, 112, 117, 120, 124, 119, 135, 139, 141, 137, 142, 118, 117, 109, 135, 126, 121, 125, 132, 123, 137, 122, 144, 125, 139, 133, 124, 127, 129, 136, 126, 140, 99, 138, 139, 123, 120, 135, 132, 127, 113, 125, 121, 129, 111, 105, 122, 119, 95, 112, 102, 125, 139, 122, 111, 113, 124, 120, 118, 123, 117, 128, 123, 116, 128, 119, 112, 130, 112, 117, 130, 119, 113, 129, 132, 119, 127, 135, 125, 123, 124, 134, 131, 132, 114, 106, 122, 115, 130, 130, 133, 138, 124, 124, 131, 134, 119, 122, 124, 106, 130, 118, 128, 112, 131, 126, 121, 123, 116, 121, 131, 115, 119, 141, 137, 141, 132, 123, 111, 121, 126, 122, 133, 125, 131, 119, 116, 140, 124, 127, 118, 123, 128, 137, 120, 125, 125, 142, 129, 124, 115, 109, 109, 168, 128, 130, 118, 133, 126, 111, 153, 118, 135, 137, 122, 123, 125, 128, 147, 126, 135, 125, 141, 123, 149, 108, 107, 114, 131, 141, 129, 146, 126, 117, 131, 130, 130, 134, 145, 136, 121, 135, 101, 125, 133, 148, 126, 134, 120, 108, 115, 130, 135, 115, 115, 125, 123, 114, 128, 114, 129, 132, 134, 139, 122, 151, 123, 117, 112, 128, 130, 121, 127, 120, 122, 123, 129, 129, 130, 101, 134, 117, 126, 113, 116, 128, 132, 130, 122, 136, 130, 120, 129, 124, 131, 135, 141, 130, 130, 145, 117, 129, 151, 126, 123, 118, 138, 120, 128, 107, 128, 141, 144, 135, 124, 144, 134, 131, 125, 135, 132, 121, 132, 120, 127, 135, 109, 123, 123, 130, 129, 123, 111, 132, 145, 136, 110, 142, 111, 126, 128, 134, 94, 124, 127, 128, 111, 119, 127, 136, 102, 121, 124, 119, 151, 131, 123, 112, 124, 118, 117, 121, 116, 122, 119, 126, 126, 130, 133, 140, 136, 123, 114, 124, 139, 138, 112, 125, 101, 111, 138, 145, 115, 126, 133, 136, 130, 124, 133, 149, 143, 129, 110, 134, 124, 132, 119, 100, 133, 134, 120, 139, 108, 129, 132, 127, 114, 130, 127, 127, 153, 122, 136, 116, 117, 126, 122, 120, 98, 116, 96, 125, 124, 125, 106, 127, 117, 129, 99, 112, 102, 118, 132, 113, 128, 127, 130, 122, 134, 117, 137, 129, 135, 113, 127, 134, 129, 132, 125, 136, 148, 129, 108, 131, 142, 132, 136, 148, 146, 131, 111, 142, 134, 130, 111, 120, 120, 120, 112, 120, 93, 145, 139, 124, 136, 138, 123, 121, 121, 125, 127, 129, 114, 134, 129, 115, 109, 117, 117, 121, 117, 133, 126, 115, 133, 125, 129, 147, 123, 116, 143, 146, 132, 123, 110, 129, 130, 130, 124, 125, 121, 125, 121, 124, 126, 138, 122, 128, 133, 119, 122, 133, 130, 123, 141, 127, 120, 126, 126, 126, 141, 139, 156, 129, 134, 134, 130, 121, 133, 105, 119, 128, 129, 123, 134, 124, 134, 147, 123, 138, 113, 130, 121, 124, 140, 126, 114, 140, 128, 135, 129, 139, 132, 106, 118, 129, 129, 126, 135, 121, 141, 128, 136, 123, 124, 131, 122, 116, 113, 124, 123, 121, 116, 113, 123, 145, 122, 119, 88, 126, 137, 129, 144, 134, 125, 111, 119, 135, 127, 116, 131, 145, 122, 118, 122, 126, 123, 126, 136, 128, 128, 122, 115, 119, 125, 125, 123, 128, 143, 132, 135, 113, 132, 123, 133, 119, 123, 116, 130, 114, 110, 123, 109, 131, 106, 127, 124, 142, 129, 118, 130, 128, 123, 134, 100, 126, 114, 117, 113, 125, 101, 127, 107, 123, 136, 110, 130, 120, 129, 128, 113, 129, 137, 138, 123, 121, 137, 132, 125, 138, 117, 123, 116, 127, 127, 122, 121, 116, 117, 127, 134, 101, 125, 107, 127, 136, 144, 135, 137, 121, 137, 115, 119, 124, 118, 141, 132, 117, 147, 124, 109, 141, 125, 101, 127, 130, 126, 141, 99, 130, 147, 144, 107, 121, 149, 138, 120, 131, 121, 119, 128, 124, 127, 121, 127, 120, 123, 139, 116, 126, 118, 107, 140, 113, 127, 115, 112, 138, 140, 126, 140, 131, 130, 139, 125, 130, 125, 122, 119, 63, 127, 124, 114, 133, 149, 127, 132, 123, 118, 140, 148, 133, 126, 135, 139, 133, 125, 137, 123, 128, 133, 117, 111, 104, 116, 121, 134, 119, 134, 127, 142, 119, 107, 108, 126, 121, 126, 122, 127, 105, 140, 125, 140, 118, 124, 125, 114, 134, 120, 139, 141, 141, 127, 112, 95, 121, 116, 119, 116, 138, 116, 139, 126, 120, 126, 125, 134, 112, 111, 104, 136, 129, 128, 116, 115, 121, 114, 119, 122, 130, 120, 125, 124, 125, 125, 115, 124, 120, 129, 114, 134, 126, 108, 117, 135, 133, 99, 142, 125, 119, 122, 120, 119, 117, 122, 115, 128, 139, 130, 122, 123, 119, 128, 134, 112, 129, 126, 133, 127, 118, 117, 130, 157, 113, 135, 124, 131, 112, 113, 130, 122, 102, 128, 132, 133, 117, 143, 129, 115, 124, 125, 119, 120, 109, 130, 116, 134, 119, 112, 119, 127, 124, 150, 128, 123, 135, 129, 123, 125, 106, 113, 111, 126, 133, 123, 133, 133, 129, 132, 129, 138, 130, 129, 118, 114, 106, 121, 140, 131, 127, 121, 110, 139, 109, 127, 116, 125, 123, 111, 128, 131, 130, 135, 137, 117, 107, 143, 136, 130, 115, 145, 124, 127, 132, 120, 124, 120, 127, 126, 115, 119, 131, 134, 110, 108, 119, 137, 118, 123, 120, 141, 130, 114, 122, 123, 128, 130, 141, 113, 102, 132, 128, 130, 134, 113, 119, 117, 123, 135, 115, 127, 141, 106, 113, 120, 130, 131, 149, 143, 129, 124, 119, 133, 126, 118, 125, 128, 136, 123, 116, 121, 121, 141, 121, 135, 130, 129, 125, 127, 119, 142, 122, 120, 149, 105, 130, 123, 126, 138, 96, 131, 119, 109, 131, 136, 139, 138, 133, 134, 137, 130, 129, 129, 116, 144, 117, 132, 124, 150, 126, 127, 138, 132, 128, 138, 127, 110, 131, 121, 117, 130, 124, 143, 124, 116, 130, 133, 128, 131, 122, 137, 119, 139, 124, 125, 129, 127, 121, 126, 136, 123, 118, 114, 121, 109, 124, 122, 137, 127, 125, 125, 133, 124, 117, 137, 129, 119, 122, 136, 121, 131, 148, 110, 116, 111, 122, 126, 137, 121, 121, 126, 128, 117, 125, 142, 128, 114, 123, 125, 135, 135, 117, 116, 114, 124, 127, 122, 139, 127, 141, 128, 125, 132, 122, 110, 123, 146, 114, 118, 124, 143, 120, 124, 120, 121, 134, 132, 124, 120, 136, 131, 114, 135, 124, 121, 114, 126, 115, 132, 130, 117, 130, 136, 114, 136, 121, 126, 125, 122, 138, 143, 119, 116, 122, 115, 141, 143, 133, 122, 140, 136, 115, 123, 122, 128, 135, 117, 129, 139, 129, 114, 120, 136, 128, 124, 139, 124, 133, 123, 124, 127, 122, 123, 129, 129, 136, 142, 120, 126, 123, 128, 137, 134, 127, 124, 138, 127, 131, 141, 144, 137, 126, 125, 133, 129, 131, 121, 133, 117, 125, 127, 124, 124, 118, 115, 118, 108, 132, 130, 127, 118, 113, 122, 121, 119, 124, 122, 112, 125, 111, 135, 120, 135, 124, 132, 114, 110, 139, 140, 112, 133, 132, 122, 150, 122, 113, 120, 130, 140, 109, 132, 119, 122, 125, 120, 129, 123, 142, 125, 119, 132, 120, 129, 115, 130, 105, 126, 107, 125, 118, 131, 134, 111, 114, 120, 124, 125, 119, 136, 127, 104, 123, 128, 116, 109, 119, 112, 136, 134, 129, 108, 118, 142, 125, 137, 128, 116, 134, 134, 126, 129, 120, 87, 132, 119, 103, 124, 130, 129, 137, 131, 120, 110, 138, 125, 118, 118, 135, 126, 116, 154, 116, 131, 130, 119, 118, 144, 129, 130, 147, 112, 113, 144, 116, 147, 123, 141, 133, 126, 106, 133, 122, 126, 133, 144, 123, 110, 121, 109, 127, 130, 116, 141, 141, 118, 133, 140, 140, 93, 130, 119, 97, 125, 121, 118, 132, 116, 126, 126, 140, 123, 131, 129, 124, 137, 127, 147, 129, 109, 138, 130, 126, 123, 125, 108, 130, 105, 125, 121, 124, 132, 133, 109, 149, 120, 135, 111, 131, 123, 111, 155, 126, 138, 114, 110, 124, 118, 108, 113, 123, 138, 138, 140, 132, 122, 133, 110, 139, 123, 134, 142, 103, 142, 127, 122, 139, 115, 139, 114, 143, 125, 122, 119, 114, 108, 130, 140, 126, 130, 134, 126, 120, 113, 108, 126, 126, 111, 112, 128, 124, 112, 130, 118, 129, 112, 124, 134, 125, 124, 124, 122, 113, 132, 104, 139, 126, 120, 114, 112, 126, 140, 137, 134, 133, 129, 143, 133, 110, 129, 114, 119, 130, 147, 133, 123, 128, 118, 126, 127, 112, 136, 131, 134, 132, 141, 140, 133, 108, 150, 118, 111, 147, 134, 128, 127, 115, 129, 125, 137, 130, 141, 127, 126, 129, 126, 124, 123, 118, 138, 138, 145, 139, 120, 127, 128, 125, 139, 137, 118, 115, 112, 127, 125, 124, 134, 123, 130, 127, 127, 135, 111, 127, 116, 111, 132, 132, 137, 119, 141, 119, 123, 120, 140, 125, 117, 117, 135, 121, 115, 122, 140, 136, 122, 127, 116, 111, 126, 114, 126, 133, 139, 131, 130, 120, 120, 120, 128, 136, 119, 125, 120, 122, 141, 136, 122, 123, 108, 122, 109, 118, 118, 117, 137, 113, 123, 123, 135, 128, 134, 109, 115, 137, 127, 132, 129, 127, 134, 144, 120, 119, 127, 154, 111, 138, 112, 105, 141, 114, 138, 126, 139, 132, 125, 120, 121, 120, 130, 123, 100, 131, 123, 127, 135, 136, 108, 131, 120, 140, 113, 130, 108, 128, 139, 110, 99, 129, 129, 118, 124, 133, 130, 148, 113, 110, 133, 107, 128, 117, 105, 139, 132, 118, 146, 123, 117, 125, 128, 116, 127, 124, 140, 125, 134, 117, 128, 117, 156, 129, 128, 150, 107, 127, 118, 120, 119, 128, 126, 112, 122, 137, 134, 150, 121, 107, 149, 126, 131, 124, 151, 127, 129, 123, 109, 97, 155, 122, 135, 132, 141, 131, 119, 142, 121, 127, 127, 104, 117, 135, 125, 111, 134, 134, 129, 123, 114, 124, 124, 130, 110, 133, 126, 131, 148, 125, 126, 124, 122, 135, 128, 131, 102, 132, 120, 124, 113, 126, 122, 129, 133, 105, 131, 130, 135, 134, 141, 141, 112, 114, 114, 126, 131, 127, 127, 125, 101, 141, 125, 122, 116, 129, 126, 131, 106, 128, 128, 122, 119, 133, 110, 131, 141, 95, 131, 119, 125, 138, 131, 118, 109, 123, 129, 123, 136, 128, 146, 117, 143, 116, 134, 120, 113, 114, 134, 115, 116, 125, 135, 123, 117, 118, 141, 156, 137, 120, 141, 121, 131, 111, 121, 111, 133, 121, 124, 104, 106, 135, 128, 113, 134, 127, 141, 115, 137, 107, 125, 118, 123, 131, 123, 160, 115, 122, 124, 130, 137, 123, 106, 123, 114, 104, 124, 125, 125, 149, 113, 112, 118, 131, 129, 120, 131, 150, 121, 121, 115, 148, 122, 125, 100, 123, 113, 126, 134, 114, 116, 124, 125, 126, 145, 128, 121, 126, 107, 117, 127, 132, 114, 126, 123, 114, 130, 141, 115, 116, 132, 119, 136, 115, 117, 117, 116, 128, 128, 141, 127, 122, 129, 137, 101, 117, 119, 123, 111, 132, 132, 109, 113, 125, 116, 129, 122, 117, 115, 126, 135, 120, 133, 117, 129, 119, 122, 143, 128, 118, 123, 123, 138, 129, 107, 116, 131, 133, 136, 125, 141, 136, 127, 133, 135, 123, 125, 129, 120, 131, 117, 119, 110, 122, 125, 118, 140, 125, 115, 129, 133, 122, 125, 139, 122, 119, 113, 120, 129, 112, 132, 152, 102, 121, 131, 122, 131, 134, 129, 123, 123, 106, 101, 127, 133, 142, 145, 129, 116, 134, 124, 129, 117, 119, 130, 116, 132, 130, 142, 117, 129, 116, 131, 115, 133, 132, 128, 121, 138, 129, 122, 120, 121, 117, 119, 133, 130, 125, 128, 120, 117, 115, 138, 116, 112, 120, 108, 122, 117, 114, 149, 132, 113, 124, 144, 129, 127, 126, 136, 120, 116, 126, 136, 113, 136, 112, 127, 137, 119, 134, 134, 123, 117, 132, 121, 131, 128, 131, 125, 109, 123, 129, 128, 131, 136, 131, 127, 117, 127, 131, 126, 120, 139, 137, 134, 119, 133, 134, 111, 129, 120, 122, 141, 138, 133, 122, 121, 124, 116, 107, 133, 114, 112, 124, 125, 140, 120, 116, 128, 111, 127, 122, 130, 147, 133, 140, 123, 125, 113, 120, 128, 124, 132, 135, 129, 143, 134, 128, 127, 134, 104, 119, 122, 133, 128, 115, 137, 109, 133, 126, 128, 123, 115, 116, 127, 139, 117, 132, 110, 111, 123, 139, 119, 120, 113, 158, 124, 125, 110, 129, 118, 127, 137, 115, 128, 132, 123, 111, 137, 118, 115, 136, 113, 104, 136, 130, 130, 112, 151, 110, 126, 119, 138, 138, 133, 156, 114, 121, 127, 116, 141, 111, 125, 127, 129, 141, 133, 116, 117, 119, 114, 119, 132, 115, 123, 122, 127, 128, 126, 129, 134, 129, 127, 134, 122, 121, 114, 126, 126, 126, 128, 133, 135, 128, 147, 108, 120, 123, 142, 128, 128, 132, 118, 118, 117, 127, 134, 129, 128, 135, 126, 130, 133, 113, 111, 129, 123, 121, 139, 122, 137, 130, 113, 127, 142, 139, 134, 120, 135, 118, 117, 123, 136, 133, 142, 138, 105, 128, 137, 133, 129, 129, 133, 139, 128, 123, 118, 112, 111, 141, 137, 117, 129, 120, 118, 130, 139, 121, 126, 121, 136, 117, 125, 119, 132, 140, 129, 128, 128, 115, 126, 127, 98, 124, 141, 129, 127, 122, 113, 107, 124, 116, 120, 130, 135, 129, 135, 127, 128, 149, 128, 137, 142, 118, 130, 105, 111, 120, 118, 130, 112, 98, 109, 130, 151, 133, 129, 128, 119, 118, 137, 134, 147, 116, 135, 139, 114, 126, 139, 141, 129, 137, 129, 128, 117, 129, 111, 142, 120, 108, 126, 144, 124, 125, 113, 123, 124, 125, 119, 110, 131, 129, 125, 113, 105, 133, 103, 128, 118, 126, 125, 116, 107, 110, 143, 142, 124, 107, 147, 125, 134, 121, 142, 146, 131, 117, 132, 129, 169, 124, 130, 129, 124, 156, 114, 142, 120, 121, 130, 150, 122, 130, 109, 134, 113, 112, 109, 136, 114, 137, 137, 120, 109, 143, 118, 115, 122, 103, 124, 134, 137, 134, 111, 136, 117, 124, 125, 124, 108, 136, 128, 129, 103, 123, 132, 112, 120, 141, 153, 138, 123, 122, 144, 127, 128, 118, 137, 120, 138, 130, 116, 121, 122, 111, 125, 120, 127, 120, 120, 123, 120, 139, 127, 136, 138, 125, 142, 130, 125, 122, 136, 116, 135, 123, 111, 140, 132, 141, 117, 110, 124, 102, 138, 125, 121, 135, 117, 125, 134, 117, 136, 143, 117, 120, 127, 113, 119, 131, 115, 120, 111, 124, 131, 111, 118, 126, 115, 127, 105, 127, 123, 112, 119, 135, 120, 128, 130, 104, 123, 118, 135, 143, 129, 142, 125, 123, 141, 123, 139, 125, 132, 124, 142, 120, 121, 133, 100, 138, 114, 143, 132, 130, 129, 131, 126, 102, 128, 115, 112, 147, 119, 124, 132, 132, 123, 120, 147, 131, 113, 139, 127, 122, 116, 133, 132, 127, 114, 112, 123, 131, 120, 121, 125, 124, 124, 111, 134, 113, 146, 109, 120, 153, 121, 126, 118, 121, 133, 114, 132, 123, 121, 124, 104, 139, 105, 124, 119, 125, 110, 133, 122, 142, 125, 130, 114, 122, 139, 114, 122, 106, 133, 127, 133, 123, 116, 127, 131, 133, 123, 142, 127, 155, 108, 117, 109, 125, 126, 124, 121, 131, 122, 124, 138, 110, 112, 138, 131, 118, 122, 119, 141, 119, 116, 127, 124, 128, 112, 132, 113, 94, 112, 115, 133, 110, 129, 119, 106, 121, 106, 124, 133, 127, 107, 139, 128, 137, 123, 114, 128, 129, 126, 135, 132, 121, 118, 141, 130, 148, 129, 129, 122, 121, 117, 122, 119, 119, 119, 117, 116, 141, 148, 130, 126, 124, 120, 119, 122, 123, 123, 131, 122, 147, 135, 132, 128, 129, 129, 138, 130, 113, 117, 122, 103, 138, 96, 149, 120, 125, 138, 130, 123, 130, 133, 112, 139, 126, 145, 151, 127, 116, 121, 108, 135, 131, 132, 126, 137, 113, 130, 134, 134, 146, 126, 115, 125, 127, 145, 131, 120, 130, 131, 120, 131, 118, 128, 118, 126, 129, 96, 121, 118, 128, 121, 130, 133, 135, 134, 127, 131, 126, 121, 97, 141, 145, 113, 117, 108, 118, 120, 126, 132, 132, 125, 117, 137, 121, 121, 133, 124, 132, 149, 116, 130, 125, 128, 149, 125, 139, 136, 136, 117, 128, 143, 123, 114, 127, 132, 123, 126, 114, 130, 151, 140, 124, 125, 148, 118, 123, 110, 106, 121, 103, 114, 120, 133, 145, 122, 122, 128, 111, 130, 123, 133, 107, 113, 129, 129, 118, 129, 127, 139, 126, 126, 135, 139, 131, 108, 119, 126, 121, 125, 116, 138, 132, 120, 135, 132, 113, 132, 115, 136, 130, 129, 119, 117, 118, 110, 94, 137, 137, 111, 121, 147, 133, 134, 123, 104, 115, 128, 137, 127, 127, 128, 125, 143, 134, 127, 130, 109, 122, 145, 126, 129, 130, 123, 120, 129, 116, 144, 122, 120, 119, 123, 112, 106, 116, 114, 132, 121, 113, 102, 126, 122, 151, 136, 134, 127, 127, 135, 121, 122, 111, 120, 120, 142, 133, 118, 123, 141, 123, 118, 119, 122, 106, 123, 121, 127, 129, 118, 135, 118, 115, 128, 120, 145, 119, 115, 121, 127, 130, 125, 108, 132, 120, 134, 128, 129, 121, 144, 140, 122, 120, 127, 135, 125, 128, 127, 110, 144, 124, 115, 115, 118, 129, 149, 128, 127, 132, 122, 115, 119, 128, 133, 132, 115, 116, 134, 156, 112, 133, 109, 130, 128, 124, 126, 142, 136, 130, 136, 136, 124, 122, 109, 123, 127, 125, 131, 124, 147, 125, 124, 134, 120, 107, 131, 132, 138, 129, 136, 129, 111, 129, 133, 109, 132, 117, 131, 127, 121, 127, 135, 129, 121, 114, 132, 119, 123, 118, 139, 123, 121, 125, 125, 128, 130, 115, 132, 137, 115, 130, 99, 128, 128, 137, 123, 125, 96, 144, 129, 153, 131, 129, 102, 128, 124, 131, 125, 116, 125, 147, 138, 134, 125, 117, 130, 134, 124, 107, 140, 138, 118, 137, 133, 142, 131, 133, 116, 120, 120, 113, 126, 134, 148, 143, 128, 115, 119, 128, 132, 124, 125, 120, 142, 120, 117, 132, 122, 125, 122, 125, 123, 110, 124, 112, 125, 119, 119, 120, 127, 127, 148, 133, 144, 143, 125, 125, 133, 131, 146, 134, 136, 117, 126, 129, 111, 123, 131, 127, 122, 138, 136, 115, 137, 136, 114, 112, 131, 123, 137, 117, 139, 107, 120, 143, 111, 109, 123, 121, 133, 141, 122, 136, 116, 132, 129, 122, 130, 144, 131, 130, 121, 110, 112, 134, 122, 119, 126, 129, 110, 127, 131, 130, 131, 129, 122, 137, 114, 116, 136, 114, 128, 154, 137, 136, 129, 145, 130, 120, 126, 108, 121, 130, 117, 104, 119, 128, 126, 129, 133, 115, 110, 127, 123, 131, 141, 153, 133, 134, 138, 102, 136, 127, 126, 111, 140, 134, 137, 136, 125, 125, 112, 128, 124, 112, 116, 117, 134, 125, 108, 118, 139, 115, 135, 131, 119, 133, 133, 114, 114, 132, 138, 130, 139, 109, 126, 111, 123, 134, 89, 145, 117, 136, 127, 110, 129, 118, 136, 127, 112, 115, 116, 120, 125, 128, 134, 125, 127, 124, 120, 116, 127, 122, 123, 161, 141, 128, 117, 136, 128, 141, 118, 118, 122, 122, 123, 122, 117, 103, 116, 148, 129, 119, 125, 137, 148, 130, 125, 142, 132, 109, 142, 123, 120, 148, 117, 139, 128, 138, 113, 116, 126, 112, 125, 122, 138, 114, 114, 112, 117, 123, 108, 127, 106, 110, 117, 130, 101, 124, 101, 128, 109, 111, 127, 116, 116, 128, 128, 100, 121, 123, 125, 123, 137, 138, 120, 127, 137, 131, 140, 122, 116, 132, 123, 123, 137, 116, 107, 119, 134, 121, 115, 114, 133, 127, 128, 118, 122, 125, 137, 123, 129, 127, 107, 133, 121, 148, 139, 127, 134, 111, 128, 124, 114, 129, 125, 123, 120, 132, 110, 128, 117, 112, 126, 130, 130, 116, 126, 111, 115, 115, 143, 131, 126, 124, 143, 131, 135, 133, 117, 123, 128, 115, 134, 118, 128, 145, 125, 123, 126, 117, 139, 114, 117, 112, 136, 127, 125, 122, 107, 129, 108, 122, 130, 135, 121, 134, 134, 132, 112, 132, 119, 123, 135, 111, 128, 133, 123, 114, 124, 114, 124, 136, 115, 129, 117, 135, 110, 124, 136, 120, 111, 141, 137, 112, 138, 128, 131, 130, 122, 123, 134, 107, 124, 127, 125, 137, 129, 134, 120, 122, 118, 123, 123, 115, 128, 129, 133, 118, 144, 116, 116, 109, 118, 120, 113, 131, 124, 136, 113, 126, 108, 125, 110, 137, 114, 127, 117, 115, 120, 134, 129, 140, 130, 140, 120, 131, 119, 118, 143, 137, 118, 135, 114, 121, 115, 136, 127, 118, 113, 132, 111, 131, 122, 132, 121, 133, 127, 146, 111, 116, 108, 136, 124, 126, 108, 129, 131, 122, 128, 130, 120, 114, 127, 135, 117, 139, 124, 137, 128, 114, 139, 122, 120, 116, 136, 126, 122, 100, 115, 126, 131, 131, 127, 138, 113, 116, 137, 134, 143, 122, 130, 127, 110, 122, 142, 115, 131, 131, 135, 127, 107, 124, 132, 138, 124, 137, 129, 127, 138, 126, 127, 108, 123, 133, 120, 123, 106, 133, 135, 137, 126, 121, 123, 134, 110, 135, 125, 122, 132, 124, 134, 123, 130, 128, 131, 138, 137, 115, 128, 114, 115, 118, 135, 128, 121, 131, 141, 131, 115, 118, 141, 116, 126, 115, 122, 138, 112, 119, 127, 123, 136, 109, 114, 136, 121, 119, 131, 136, 139, 130, 145, 111, 114, 127, 130, 127, 115, 117, 130, 121, 111, 116, 135, 137, 127, 126, 136, 141, 119, 123, 113, 124, 112, 138, 143, 141, 136, 89, 128, 147, 130, 130, 123, 131, 123, 128, 120, 131, 143, 142, 116, 132, 109, 118, 132, 138, 117, 122, 135, 135, 120, 119, 137, 125, 132, 131, 148, 135, 116, 115, 114, 124, 128, 109, 120, 130, 111, 107, 126, 144, 118, 120, 122, 125, 148, 114, 125, 125, 141, 148, 125, 129, 131, 125, 134, 111, 110, 125, 134, 144, 121, 127, 148, 121, 131, 124, 98, 122, 112, 132, 120, 121, 130, 113, 131, 131, 117, 120, 134, 119, 124, 128, 124, 102, 132, 125, 119, 139, 133, 121, 119, 135, 109, 129, 112, 117, 132, 119, 130, 122, 112, 129, 129, 131, 130, 122, 132, 119, 131, 135, 139, 130, 134, 115, 155, 140, 107, 129, 133, 136, 121, 130, 116, 131, 127, 134, 119, 120, 124, 118, 119, 130, 125, 128, 122, 115, 138, 135, 143, 116, 129, 128, 124, 112, 106, 130, 128, 134, 122, 115, 135, 120, 103, 138, 137, 123, 109, 118, 118, 138, 123, 118, 113, 124, 125, 115, 126, 101, 121, 127, 129, 128, 122, 122, 129, 115, 130, 143, 125, 131, 117, 130, 122, 111, 126, 114, 116, 117, 120, 138, 124, 110, 120, 136, 107, 116, 129, 124, 104, 136, 137, 134, 121, 141, 129, 119, 124, 137, 118, 127, 129, 133, 132, 108, 131, 132, 125, 130, 112, 124, 123, 112, 132, 125, 132, 141, 141, 145, 121, 122, 121, 134, 128, 119, 135, 132, 107, 123, 133, 127, 141, 127, 122, 130, 143, 126, 143, 118, 124, 127, 115, 126, 127, 128, 126, 129, 127, 119, 127, 130, 164, 125, 118, 121, 121, 121, 138, 126, 137, 122, 118, 114, 122, 109, 128, 137, 113, 116, 134, 140, 130, 124, 134, 122, 133, 126, 120, 110, 132, 131, 121, 143, 118, 126, 116, 129, 141, 141, 137, 136, 126, 115, 134, 107, 126, 138, 141, 108, 131, 132, 121, 120, 137, 116, 132, 122, 142, 117, 127, 131, 131, 132, 129, 142, 129, 125, 123, 136, 121, 129, 133, 123, 116, 127, 133, 118, 131, 120, 140, 126, 126, 132, 135, 130, 128, 106, 115, 140, 142, 109, 133, 119, 132, 118, 128, 124, 119, 116, 131, 116, 135, 127, 127, 113, 115, 135, 116, 118, 123, 123, 134, 124, 139, 126, 130, 140, 127, 118, 124, 119, 134, 115, 113, 128, 133, 132, 99, 129, 126, 123, 128, 126, 101, 111, 125, 121, 112, 124, 136, 113, 121, 125, 142, 128, 110, 130, 129, 146, 123, 112, 132, 125, 137, 140, 140, 119, 138, 119, 135, 133, 122, 120, 124, 120, 119, 112, 135, 125, 137, 128, 133, 117, 117, 152, 129, 129, 128, 133, 139, 116, 134, 146, 130, 124, 140, 121, 121, 114, 128, 126, 125, 125, 121, 122, 116, 103, 138, 134, 136, 124, 151, 123, 111, 134, 113, 116, 100, 124, 116, 143, 148, 107, 129, 119, 146, 113, 130, 132, 130, 127, 124, 132, 129, 130, 117, 115, 129, 122, 130, 121, 128, 135, 130, 115, 102, 118, 131, 112, 126, 118, 147, 129, 127, 116, 127, 119, 147, 100, 129, 121, 116, 126, 135, 121, 128, 135, 138, 139, 134, 129, 119, 130, 130, 124, 140, 134, 120, 134, 129, 125, 137, 119, 125, 122, 141, 116, 114, 134, 118, 144, 131, 120, 121, 124, 142, 130, 132, 136, 135, 131, 118, 129, 115, 118, 131, 133, 132, 117, 126, 135, 140, 122, 131, 123, 122, 120, 128, 112, 117, 118, 118, 113, 123, 112, 120, 139, 110, 116, 131, 126, 126, 118, 129, 122, 119, 137, 140, 112, 122, 146, 136, 117, 115, 109, 125, 118, 126, 132, 140, 111, 134, 120, 115, 118, 121, 126, 116, 136, 144, 137, 119, 118, 129, 122, 126, 133, 120, 123, 139, 117, 123, 125, 137, 129, 112, 128, 127, 122, 127, 112, 137, 129, 129, 116, 112, 129, 137, 150, 126, 115, 151, 132, 122, 126, 135, 143, 109, 115, 114, 118, 125, 146, 119, 125, 118, 119, 130, 136, 131, 128, 111, 131, 115, 130, 124, 128, 128, 132, 141, 145, 117, 120, 126, 132, 132, 135, 120, 130, 134, 134, 131, 131, 129, 145, 134, 128, 137, 124, 119, 114, 114, 121, 123, 135, 136, 132, 118, 103, 141, 120, 134, 123, 112, 119, 123, 130, 128, 123, 116, 132, 140, 119, 131, 113, 135, 115, 123, 121, 132, 118, 134, 112, 120, 138, 135, 129, 136, 118, 119, 133, 137, 113, 104, 120, 114, 121, 127, 113, 131, 121, 130, 120, 118, 128, 139, 126, 119, 119, 119, 109, 125, 137, 119, 121, 127, 112, 119, 121, 143, 125, 126, 123, 105, 115, 101, 140, 127, 117, 143, 110, 118, 129, 126, 129, 140, 147, 140, 105, 129, 128, 123, 131, 148, 115, 124, 124, 121, 115, 137, 126, 117, 137, 145, 137, 127, 125, 112, 123, 109, 147, 122, 131, 111, 140, 126, 138, 120, 129, 110, 133, 135, 120, 116, 99, 135, 117, 123, 127, 138, 104, 123, 121, 139, 124, 126, 125, 126, 126, 101, 143, 116, 116, 118, 122, 120, 131, 126, 138, 129, 123, 146, 123, 123, 137, 146, 119, 130, 119, 119, 136, 147, 138, 129, 137, 124, 145, 118, 112, 137, 132, 125, 133, 119, 122, 118, 124, 152, 135, 126, 113, 135, 102, 119, 128, 112, 127, 138, 130, 114, 123, 133, 130, 127, 121, 133, 128, 138, 131, 116, 117, 110, 125, 121, 129, 143, 134, 147, 117, 132, 130, 132, 137, 101, 111, 137, 110, 104, 119, 121, 135, 129, 112, 133, 142, 147, 113, 146, 131, 138, 121, 120, 121, 131, 132, 125, 126, 118, 109, 135, 102, 130, 128, 131, 136, 120, 128, 137, 124, 120, 118, 127, 131, 120, 128, 130, 113, 126, 140, 138, 120, 132, 118, 127, 132, 112, 130, 133, 106, 139, 113, 142, 118, 142, 118, 133, 115, 123, 112, 128, 122, 127, 121, 107, 117, 139, 113, 120, 119, 122, 123, 120, 111, 119, 115, 141, 116, 129, 138, 118, 133, 109, 120, 123, 123, 124, 121, 119, 122, 150, 124, 120, 131, 128, 132, 122, 118, 118, 123, 111, 132, 126, 126, 147, 125, 135, 149, 133, 145, 126, 132, 141, 139, 132, 132, 114, 104, 118, 129, 120, 116, 104, 130, 114, 127, 126, 107, 145, 122, 126, 119, 131, 125, 117, 122, 131, 152, 124, 116, 124, 141, 129, 125, 129, 124, 133, 138, 123, 126, 128, 117, 127, 121, 118, 131, 121, 125, 135, 121, 120, 117, 134, 116, 146, 144, 161, 134, 137, 107, 129, 123, 128, 129, 125, 126, 148, 126, 140, 118, 120, 122, 106, 156, 133, 131, 126, 138, 128, 121, 134, 122, 114, 123, 139, 118, 119, 122, 137, 133, 135, 133, 116, 136, 121, 134, 140, 121, 120, 135, 131, 126, 127, 132, 137, 146, 129, 112, 114, 117, 148, 138, 129, 124, 122, 119, 126, 116, 103, 132, 125, 110, 114, 124, 132, 134, 116, 141, 127, 126, 119, 130, 121, 99, 143, 126, 132, 121, 146, 130, 123, 137, 128, 142, 141, 115, 144, 125, 115, 141, 129, 121, 116, 115, 116, 126, 127, 106, 118, 115, 154, 134, 105, 119, 111, 144, 112, 127, 124, 112, 136, 116, 137, 133, 116, 133, 131, 114, 135, 129, 114, 119, 128, 108, 124, 134, 135, 123, 130, 160, 127, 129, 142, 148, 127, 128, 120, 141, 126, 136, 135, 156, 135, 122, 129, 116, 133, 119, 127, 122, 116, 151, 119, 114, 105, 131, 141, 122, 119, 115, 118, 124, 140, 122, 133, 114, 131, 130, 156, 121, 135, 122, 106, 120, 134, 130, 126, 127, 139, 136, 125, 116, 118, 130, 132, 108, 114, 108, 117, 135, 115, 125, 117, 128, 115, 109, 122, 121, 122, 127, 136, 119, 133, 138, 126, 133, 134, 127, 121, 121, 127, 116, 119, 122, 134, 126, 155, 127, 123, 117, 116, 126, 143, 119, 140, 138, 125, 143, 140, 119, 135, 138, 126, 130, 140, 144, 114, 134, 131, 120, 113, 138, 105, 124, 109, 133, 122, 129, 126, 135, 101, 120, 135, 115, 142, 122, 146, 122, 127, 115, 117, 110, 136, 130, 113, 123, 128, 124, 126, 120, 113, 129, 131, 123, 138, 105, 119, 117, 133, 152, 139, 107, 127, 139, 141, 128, 143, 127, 123, 111, 120, 123, 112, 120, 121, 120, 138, 140, 120, 130, 140, 123, 138, 112, 113, 128, 119, 135, 122, 128, 123, 122, 126, 93, 111, 135, 134, 113, 132, 120, 126, 127, 131, 125, 121, 127, 128, 122, 122, 93, 142, 121, 134, 115, 130, 121, 118, 117, 122, 108, 137, 139, 150, 130, 125, 125, 118, 128, 104, 135, 103, 130, 126, 107, 132, 147, 113, 120, 123, 118, 123, 132, 149, 124, 109, 143, 126, 147, 137, 120, 125, 114, 131, 128, 112, 132, 119, 127, 99, 146, 125, 122, 112, 119, 104, 137, 102, 119, 118, 124, 138, 127, 130, 124, 127, 119, 137, 150, 115, 129, 127, 123, 142, 145, 134, 136, 122, 133, 134, 130, 123, 128, 117, 151, 113, 131, 134, 121, 120, 131, 117, 141, 127, 124, 120, 112, 124, 125, 143, 127, 129, 114, 136, 123, 97, 134, 131, 117, 123, 127, 128, 153, 123, 113, 123, 103, 136, 127, 122, 142, 127, 126, 127, 131, 112, 125, 122, 141, 123, 112, 115, 121, 138, 141, 122, 126, 122, 122, 129, 149, 139, 135, 151, 122, 121, 128, 119, 123, 126, 119, 129, 136, 116, 122, 116, 129, 139, 113, 132, 119, 125, 106, 118, 134, 135, 138, 129, 115, 146, 124, 130, 101, 130, 112, 126, 150, 137, 118, 122, 140, 125, 128, 119, 117, 126, 111, 131, 130, 120, 122, 129, 129, 126, 115, 120, 125, 129, 98, 140, 116, 102, 131, 138, 120, 110, 108, 106, 124, 115, 101, 121, 137, 113, 103, 122, 138, 137, 113, 124, 104, 124, 114, 126, 137, 101, 105, 146, 149, 137, 126, 119, 116, 131, 117, 121, 121, 117, 126, 137, 126, 127, 132, 101, 112, 120, 110, 130, 103, 112, 124, 126, 114, 136, 105, 117, 132, 115, 139, 127, 127, 125, 125, 138, 126, 108, 143, 137, 131, 122, 107, 149, 128, 141, 142, 108, 153, 117, 133, 118, 145, 131, 105, 130, 115, 124, 118, 127, 110, 134, 127, 112, 120, 118, 107, 120, 123, 130, 130, 115, 119, 143, 126, 141, 124, 150, 136, 123, 128, 131, 124, 138, 118, 133, 113, 116, 138, 121, 130, 98, 125, 136, 139, 137, 118, 98, 125, 139, 133, 126, 104, 115, 127, 148, 136, 116, 121, 122, 131, 129, 114, 130, 109, 131, 124, 137, 105, 141, 117, 126, 116, 124, 111, 142, 125, 123, 130, 133, 125, 121, 132, 118, 124, 136, 122, 127, 135, 128, 142, 138, 123, 138, 125, 126, 120, 141, 115, 143, 134, 136, 147, 124, 125, 110, 141, 127, 112, 140, 104, 123, 121, 146, 120, 119, 122, 140, 130, 118, 111, 126, 127, 126, 119, 107, 126, 124, 137, 133, 115, 123, 129, 121, 127, 135, 108, 109, 129, 113, 132, 119, 122, 121, 128, 115, 122, 139, 122, 116, 127, 119, 128, 131, 116, 132, 135, 135, 144, 115, 121, 138, 121, 133, 127, 125, 137, 125, 126, 136, 115, 132, 126, 134, 118, 100, 124, 103, 125, 118, 110, 120, 136, 125, 121, 120, 107, 111, 132, 117, 132, 133, 121, 107, 131, 120, 115, 111, 122, 127, 128, 121, 123, 113, 117, 125, 122, 129, 144, 127, 112, 104, 120, 117, 127, 116, 131, 136, 128, 132, 124, 132, 120, 139, 131, 120, 136, 112, 107, 131, 132, 114, 109, 136, 120, 128, 123, 124, 124, 119, 133, 136, 132, 132, 119, 114, 131, 128, 137, 119, 126, 126, 141, 107, 138, 120, 124, 126, 130, 127, 128, 123, 121, 120, 123, 124, 126, 118, 123, 129, 127, 136, 127, 134, 119, 121, 120, 116, 133, 129, 142, 120, 120, 137, 135, 104, 124, 134, 109, 124, 110, 130, 139, 119, 123, 121, 125, 132, 133, 122, 125, 115, 118, 131, 137, 107, 136, 124, 127, 125, 118, 129, 122, 117, 116, 114, 127, 124, 135, 128, 129, 127, 147, 121, 136, 129, 127, 126, 120, 140, 122, 121, 115, 119, 126, 116, 111, 117, 135, 140, 118, 115, 107, 117, 111, 132, 134, 126, 125, 125, 122, 118, 131, 145, 126, 130, 118, 123, 112, 108, 130, 116, 138, 126, 130, 117, 119, 113, 126, 110, 138, 123, 129, 130, 123, 128, 129, 135, 127, 132, 148, 140, 111, 105, 111, 125, 141, 114, 134, 128, 130, 133, 124, 136, 124, 148, 134, 130, 129, 129, 112, 127, 121, 114, 143, 123, 122, 127, 115, 127, 139, 132, 132, 136, 116, 125, 121, 131, 133, 116, 127, 110, 135, 118, 139, 99, 136, 133, 112, 128, 139, 131, 129, 143, 129, 121, 109, 121, 132, 123, 125, 136, 126, 128, 124, 127, 131, 142, 119, 129, 119, 121, 142, 140, 127, 126, 153, 114, 118, 131, 115, 124, 117, 135, 99, 109, 119, 139, 151, 126, 119, 124, 124, 117, 125, 130, 121, 133, 116, 123, 133, 117, 142, 126, 108, 116, 122, 131, 111, 124, 127, 135, 141, 121, 138, 120, 124, 141, 136, 133, 131, 125, 123, 122, 127, 115, 127, 107, 120, 133, 141, 117, 123, 147, 125, 131, 140, 129, 132, 124, 129, 104, 104, 113, 107, 152, 119, 123, 118, 119, 145, 122, 129, 123, 111, 138, 134, 123, 117, 123, 128, 124, 136, 131, 164, 121, 140, 129, 105, 125, 135, 125, 102, 127, 132, 124, 130, 128, 127, 106, 115, 117, 122, 125, 108, 141, 130, 111, 128, 118, 120, 122, 123, 112, 122, 141, 137, 138, 103, 152, 135, 119, 124, 109, 118, 136, 130, 120, 131, 119, 137, 127, 136, 120, 123, 123, 141, 109, 118, 143, 139, 111, 113, 115, 130, 126, 120, 116, 118, 132, 118, 134, 141, 116, 125, 149, 124, 131, 130, 131, 128, 163, 117, 136, 121, 129, 128, 122, 127, 117, 118, 113, 134, 132, 121, 140, 126, 136, 118, 133, 146, 119, 120, 120, 112, 117, 119, 119, 116, 115, 120, 135, 131, 120, 140, 113, 132, 124, 120, 131, 136, 136, 124, 138, 140, 133, 149, 137, 113, 123, 119, 138, 152, 138, 116, 92, 136, 130, 129, 124, 129, 99, 124, 137, 105, 139, 129, 130, 123, 112, 112, 119, 113, 128, 135, 119, 111, 119, 125, 127, 133, 129, 120, 133, 125, 142, 137, 143, 132, 121, 112, 106, 111, 134, 107, 142, 130, 131, 130, 147, 130, 132, 133, 145, 143, 121, 118, 109, 133, 126, 131, 127, 136, 126, 152, 141, 123, 127, 125, 109, 127, 129, 132, 138, 118, 114, 126, 124, 130, 114, 123, 132, 123, 128, 118, 157, 132, 118, 130, 96, 113, 134, 136, 118, 142, 137, 130, 119, 125, 118, 117, 123, 145, 108, 129, 114, 149, 117, 120, 132, 123, 125, 115, 116, 122, 108, 120, 108, 128, 138, 120, 101, 139, 129, 130, 135, 114, 113, 128, 122, 139, 132, 117, 124, 138, 128, 124, 123, 139, 115, 136, 111, 135, 111, 124, 116, 147, 118, 116, 127, 126, 119, 128, 130, 130, 144, 135, 104, 119, 119, 122, 118, 138, 132, 126, 127, 122, 131, 113, 123, 116, 112, 127, 122, 116, 134, 135, 110, 109, 141, 122, 127, 119, 118, 133, 125, 107, 131, 105, 111, 145, 126, 108, 117, 130, 126, 125, 125, 127, 121, 124, 126, 128, 124, 136, 123, 122, 117, 121, 122, 121, 121, 119, 129, 121, 149, 124, 109, 131, 112, 112, 132, 140, 128, 150, 130, 129, 128, 134, 128, 125, 121, 131, 115, 124, 124, 133, 142, 130, 129, 136, 138, 123, 126, 127, 132, 113, 124, 135, 138, 132, 133, 134, 118, 110, 123, 138, 125, 116, 123, 120, 131, 144, 119, 133, 132, 111, 130, 130, 116, 133, 132, 139, 116, 128, 137, 132, 106, 127, 118, 123, 131, 121, 124, 136, 155, 108, 132, 144, 133, 120, 117, 111, 135, 147, 119, 115, 139, 125, 127, 118, 130, 111, 114, 122, 130, 119, 135, 111, 120, 130, 110, 168, 148, 136, 136, 133, 130, 119, 123, 132, 138, 130, 124, 137, 134, 130, 141, 130, 116, 145, 123, 125, 124, 134, 120, 141, 126, 135, 133, 110, 101, 122, 127, 119, 120, 123, 114, 107, 117, 113, 122, 128, 140, 135, 136, 125, 133, 130, 131, 129, 134, 128, 123, 119, 126, 116, 107, 130, 142, 128, 133, 118, 131, 128, 117, 135, 131, 114, 130, 116, 141, 157, 121, 140, 114, 117, 131, 112, 138, 126, 121, 129, 130, 115, 121, 117, 135, 119, 123, 119, 137, 119, 103, 130, 115, 139, 115, 133, 125, 124, 148, 117, 144, 120, 136, 141, 118, 124, 132, 123, 116, 145, 141, 126, 122, 120, 130, 113, 132, 124, 129, 131, 137, 119, 124, 138, 127, 122, 150, 115, 131, 156, 117, 125, 102, 107, 122, 125, 127, 115, 118, 122, 137, 141, 145, 133, 130, 125, 129, 108, 124, 130, 129, 131, 120, 132, 121, 128, 117, 121, 116, 121, 127, 154, 138, 119, 123, 125, 108, 120, 129, 115, 120, 126, 125, 110, 126, 125, 133, 123, 138, 119, 125, 119, 110, 135, 113, 126, 124, 116, 136, 122, 117, 127, 121, 122, 126, 139, 138, 123, 147, 118, 130, 127, 135, 114, 134, 106, 129, 107, 141, 136, 128, 125, 121, 129, 115, 133, 135, 128, 121, 106, 124, 136, 130, 142, 130, 127, 133, 126, 131, 118, 135, 130, 129, 109, 119, 131, 121, 141, 115, 121, 135, 120, 115, 131, 132, 129, 116, 124, 134, 123, 124, 106, 125, 106, 138, 127, 131, 137, 113, 122, 139, 129, 131, 136, 136, 122, 117, 146, 132, 118, 113, 132, 127, 134, 134, 140, 140, 145, 116, 144, 131, 105, 114, 128, 112, 125, 117, 131, 120, 138, 128, 128, 135, 144, 114, 115, 152, 132, 114, 123, 123, 127, 112, 133, 136, 141, 152, 107, 135, 128, 133, 120, 137, 127, 143, 134, 111, 114, 147, 130, 134, 124, 124, 126, 126, 134, 116, 129, 117, 127, 134, 129, 129, 133, 127, 127, 128, 114, 124, 150, 113, 107, 114, 154, 107, 120, 138, 124, 137, 127, 134, 126, 135, 121, 126, 128, 138, 124, 129, 125, 128, 118, 136, 116, 119, 104, 132, 135, 117, 135, 111, 124, 129, 127, 121, 118, 121, 100, 135, 131, 114, 129, 120, 138, 125, 121, 123, 118, 112, 108, 124, 115, 125, 132, 122, 121, 115, 127, 138, 137, 120, 140, 140, 132, 135, 123, 122, 132, 133, 124, 109, 132, 126, 128, 131, 130, 118, 123, 131, 150, 122, 113, 138, 123, 129, 120, 135, 106, 129, 116, 132, 131, 133, 143, 133, 118, 103, 125, 119, 130, 132, 132, 133, 117, 126, 131, 129, 135, 128, 122, 125, 113, 140, 113, 119, 113, 128, 96, 121, 125, 132, 135, 114, 107, 117, 142, 133, 123, 107, 120, 137, 101, 119, 118, 110, 128, 120, 121, 142, 122, 122, 126, 137, 127, 123, 135, 121, 125, 123, 127, 128, 121, 120, 115, 122, 115, 123, 128, 114, 116, 121, 114, 135, 105, 138, 101, 125, 115, 128, 123, 111, 131, 135, 113, 120, 127, 128, 153, 123, 133, 104, 143, 132, 111, 104, 138, 103, 103, 115, 124, 148, 125, 124, 116, 123, 131, 101, 139, 135, 132, 117, 123, 125, 130, 121, 122, 119, 149, 118, 133, 139, 126, 111, 126, 138, 121, 144, 152, 124, 126, 121, 125, 120, 125, 116, 110, 118, 137, 127, 124, 100, 129, 132, 131, 121, 121, 125, 150, 120, 111, 137, 131, 141, 125, 146, 130, 126, 135, 128, 121, 124, 100, 118, 121, 130, 138, 129, 128, 116, 118, 120, 140, 131, 113, 104, 96, 129, 124, 134, 120, 133, 125, 120, 138, 120, 108, 118, 106, 139, 137, 135, 126, 136, 117, 117, 122, 139, 112, 118, 131, 131, 121, 120, 134, 120, 129, 122, 125, 136, 126, 110, 138, 131, 109, 117, 110, 129, 136, 129, 116, 144, 120, 126, 135, 125, 128, 109, 124, 152, 137, 128, 125, 125, 145, 121, 126, 108, 126, 123, 111, 134, 123, 134, 112, 122, 138, 139, 118, 108, 130, 127, 123, 133, 109, 120, 117, 131, 123, 119, 136, 124, 142, 129, 130, 129, 148, 135, 128, 128, 119, 122, 121, 129, 130, 140, 141, 129, 115, 131, 111, 120, 120, 124, 133, 119, 143, 133, 130, 137, 114, 141, 109, 109, 114, 121, 129, 115, 116, 138, 127, 100, 117, 135, 120, 129, 125, 107, 115, 126, 116, 133, 127, 143, 126, 125, 125, 127, 115, 136, 122, 115, 118, 118, 111, 122, 133, 130, 128, 136, 112, 112, 136, 126, 124, 138, 122, 125, 133, 137, 125, 119, 131, 122, 129, 128, 124, 116, 132, 123, 131, 127, 117, 126, 125, 108, 118, 136, 116, 124, 127, 120, 125, 125, 120, 136, 121, 141, 123, 141, 127, 138, 143, 140, 119, 131, 153, 120, 131, 135, 118, 136, 128, 118, 119, 135, 133, 131, 117, 130, 116, 122, 120, 108, 133, 135, 113, 129, 130, 138, 111, 126, 124, 127, 132, 124, 150, 110, 128, 115, 117, 124, 114, 126, 125, 98, 111, 144, 123, 141, 131, 115, 120, 128, 124, 118, 117, 130, 126, 133, 115, 139, 140, 134, 157, 123, 125, 137, 134, 115, 136, 121, 128, 142, 119, 131, 143, 111, 102, 116, 121, 147, 130, 125, 138, 132, 126, 149, 132, 112, 127, 125, 118, 124, 136, 127, 128, 118, 106, 127, 118, 133, 128, 122, 117, 127, 134, 141, 127, 124, 128, 107, 147, 116, 134, 119, 128, 114, 122, 122, 117, 122, 140, 122, 118, 113, 133, 136, 120, 113, 141, 150, 130, 126, 125, 142, 114, 124, 122, 135, 123, 120, 128, 124, 127, 102, 144, 123, 116, 128, 124, 118, 137, 137, 121, 138, 120, 129, 136, 123, 123, 146, 113, 135, 147, 127, 154, 115, 126, 134, 105, 120, 122, 136, 116, 129, 118, 125, 91, 121, 107, 135, 120, 125, 114, 127, 124, 118, 114, 132, 130, 123, 132, 142, 146, 119, 129, 105, 115, 114, 131, 128, 144, 101, 108, 133, 121, 123, 118, 123, 127, 122, 107, 111, 113, 141, 133, 163, 122, 104, 120, 117, 119, 120, 106, 138, 147, 157, 118, 114, 127, 125, 131, 131, 115, 145, 131, 132, 113, 109, 129, 118, 128, 117, 137, 107, 127, 127, 124, 126, 135, 141, 108, 141, 116, 131, 129, 135, 116, 137, 137, 124, 130, 119, 143, 130, 112, 120, 121, 121, 119, 127, 116, 137, 135, 122, 131, 123, 111, 108, 137, 115, 131, 142, 125, 107, 125, 129, 127, 116, 131, 120, 134, 111, 130, 138, 144, 113, 120, 122, 115, 149, 134, 125, 119, 122, 116, 133, 125, 122, 124, 143, 135, 110, 117, 120, 129, 139, 129, 138, 125, 122, 112, 127, 112, 116, 122, 134, 132, 135, 124, 130, 115, 115, 111, 135, 136, 132, 120, 118, 112, 139, 115, 117, 135, 124, 116, 123, 120, 117, 130, 128, 126, 120, 112, 132, 131, 108, 123, 109, 124, 126, 125, 116, 123, 112, 159, 123, 128, 130, 124, 109, 133, 128, 134, 128, 131, 126, 140, 131, 108, 101, 129, 109, 133, 129, 124, 117, 123, 108, 138, 126, 122, 128, 134, 135, 118, 141, 125, 125, 124, 135, 112, 142, 137, 96, 109, 131, 137, 112, 119, 127, 127, 130, 131, 125, 130, 124, 118, 115, 108, 125, 110, 136, 118, 137, 142, 136, 139, 121, 136, 121, 135, 140, 115, 110, 103, 111, 135, 126, 135, 113, 143, 114, 133, 117, 122, 122, 118, 113, 125, 119, 110, 118, 117, 131, 117, 119, 131, 130, 118, 119, 136, 126, 128, 120, 112, 121, 131, 141, 118, 132, 119, 118, 133, 123, 134, 127, 121, 131, 111, 145, 127, 126, 144, 127, 112, 114, 129, 129, 124, 130, 127, 121, 123, 121, 126, 143, 122, 127, 125, 112, 114, 120, 114, 124, 137, 123, 118, 128, 130, 118, 124, 112, 123, 114, 132, 132, 129, 124, 120, 111, 116, 120, 146, 122, 110, 115, 134, 117, 120, 145, 101, 122, 121, 112, 122, 122, 128, 123, 129, 120, 134, 115, 119, 124, 127, 117, 124, 141, 126, 129, 135, 111, 132, 120, 133, 111, 108, 128, 115, 123, 123, 140, 109, 91, 119, 109, 128, 130, 122, 132, 136, 130, 108, 131, 116, 138, 127, 128, 137, 136, 128, 125, 125, 95, 128, 141, 135, 131, 131, 140, 126, 127, 110, 126, 109, 131, 119, 111, 129, 130, 104, 128, 140, 138, 115, 102, 148, 98, 115, 136, 125, 118, 125, 116, 128, 128, 119, 130, 128, 133, 103, 132, 133, 136, 131, 140, 120, 118, 118, 122, 127, 126, 120, 109, 121, 102, 116, 119, 132, 124, 148, 112, 141, 125, 127, 120, 134, 126, 138, 121, 119, 135, 120, 136, 129, 128, 137, 131, 134, 132, 125, 117, 127, 118, 127, 134, 130, 143, 132, 127, 123, 117, 129, 112, 115, 115, 131, 126, 141, 131, 109, 105, 109, 105, 123, 110, 125, 127, 110, 142, 110, 103, 117, 111, 123, 125, 123, 126, 130, 115, 113, 124, 127, 113, 128, 130, 129, 118, 114, 117, 122, 119, 152, 112, 116, 139, 123, 131, 128, 125, 118, 118, 112, 111, 139, 145, 135, 127, 123, 132, 119, 134, 120, 103, 118, 124, 134, 150, 127, 125, 140, 123, 123, 111, 127, 125, 116, 131, 100, 114, 104, 127, 109, 132, 131, 115, 133, 133, 117, 150, 113, 124, 116, 122, 139, 145, 136, 150, 122, 114, 131, 126, 128, 142, 133, 126, 108, 108, 139, 136, 109, 120, 110, 118, 132, 132, 132, 114, 134, 116, 126, 124, 126, 116, 123, 127, 135, 109, 114, 121, 130, 123, 121, 137, 128, 122, 132, 116, 126, 129, 114, 113, 111, 126, 144, 107, 117, 160, 106, 122, 122, 127, 136, 127, 105, 124, 100, 122, 142, 141, 131, 114, 119, 122, 139, 153, 123, 137, 130, 137, 111, 137, 146, 135, 124, 136, 126, 130, 117, 118, 124, 113, 120, 127, 105, 163, 123, 128, 142, 122, 135, 109, 113, 127, 128, 116, 148, 117, 123, 135, 128, 144, 117, 119, 119, 136, 114, 130, 121, 129, 142, 123, 125, 130, 120, 127, 140, 114, 135, 117, 140, 109, 110, 113, 124, 133, 116, 113, 116, 111, 133, 123, 136, 124, 121, 134, 132, 127, 123, 132, 120, 114, 123, 134, 111, 131, 142, 122, 100, 125, 132, 120, 124, 118, 131, 113, 120, 130, 120, 117, 119, 121, 109, 119, 124, 128, 125, 119, 130, 114, 122, 122, 133, 127, 107, 111, 135, 127, 124, 114, 127, 130, 141, 137, 125, 108, 135, 116, 127, 120, 130, 131, 140, 127, 127, 140, 111, 122, 110, 134, 116, 132, 121, 148, 113, 118, 119, 124, 146, 121, 127, 132, 137, 110, 126, 147, 126, 133, 120, 109, 129, 115, 110, 116, 122, 131, 129, 136, 108, 119, 131, 127, 127, 129, 122, 133, 108, 122, 128, 132, 127, 133, 128, 121, 116, 129, 137, 124, 143, 128, 134, 107, 146, 140, 141, 137, 122, 120, 112, 136, 131, 115, 131, 133, 129, 116, 114, 147, 119, 126, 114, 122, 145, 126, 109, 138, 151, 121, 113, 117, 132, 123, 131, 123, 118, 104, 118, 131, 135, 122, 125, 132, 113, 129, 142, 143, 125, 132, 117, 131, 113, 124, 109, 153, 129, 131, 120, 135, 134, 116, 120, 115, 123, 122, 134, 143, 117, 135, 117, 116, 138, 143, 123, 152, 144, 133, 122, 100, 127, 112, 120, 116, 118, 123, 131, 119, 121, 120, 116, 116, 139, 123, 135, 136, 147, 131, 151, 142, 132, 128, 125, 119, 100, 132, 133, 144, 127, 122, 127, 135, 122, 148, 132, 110, 111, 136, 143, 119, 108, 120, 121, 121, 118, 121, 144, 122, 114, 122, 110, 117, 157, 135, 130, 118, 111, 131, 133, 135, 126, 138, 91, 135, 113, 114, 124, 125, 133, 125, 136, 119, 136, 133, 144, 130, 115, 140, 135, 134, 117, 128, 114, 119, 116, 132, 125, 125, 126, 124, 125, 129, 120, 118, 121, 110, 121, 115, 133, 139, 111, 130, 128, 124, 118, 139, 122, 127, 145, 121, 117, 111, 122, 121, 128, 120, 128, 120, 110, 135, 128, 146, 110, 110, 120, 119, 140, 120, 114, 116, 140, 127, 114, 139, 129, 127, 114, 129, 132, 121, 127, 122, 124, 123, 127, 143, 119, 133, 123, 143, 120, 103, 114, 130, 146, 140, 124, 128, 130, 131, 111, 128, 125, 140, 140, 132, 121, 125, 133, 108, 139, 115, 148, 131, 119, 135, 128, 119, 137, 124, 131, 124, 120, 138, 109, 113, 133, 133, 130, 130, 141, 135, 121, 113, 130, 122, 133, 119, 132, 118, 145, 117, 131, 124, 123, 120, 108, 139, 128, 104, 148, 127, 133, 120, 159, 98, 119, 122, 119, 128, 121, 129, 127, 120, 124, 143, 141, 124, 112, 127, 131, 121, 115, 130, 120, 134, 134, 135, 135, 130, 115, 140, 130, 122, 134, 135, 139, 125, 114, 134, 109, 145, 129, 138, 122, 135, 134, 131, 121, 119, 112, 114, 96, 123, 119, 133, 128, 122, 109, 115, 134, 137, 129, 116, 132, 126, 128, 127, 107, 123, 141, 124, 114, 118, 110, 116, 116, 113, 125, 127, 136, 138, 128, 138, 132, 133, 126, 112, 119, 123, 129, 140, 127, 143, 138, 123, 106, 129, 137, 123, 128, 117, 126, 134, 103, 124, 126, 136, 132, 138, 137, 138, 136, 119, 137, 122, 125, 112, 131, 116, 111, 97, 103, 135, 123, 126, 134, 138, 120, 127, 107, 139, 115, 149, 121, 138, 107, 154, 123, 125, 110, 113, 118, 126, 126, 135, 125, 142, 128, 133, 128, 130, 109, 141, 139, 133, 122, 118, 140, 119, 105, 129, 132, 139, 133, 120, 114, 106, 123, 134, 122, 115, 121, 117, 123, 109, 129, 130, 121, 126, 126, 136, 143, 119, 138, 126, 136, 123, 124, 127, 138, 127, 133, 123, 137, 121, 138, 123, 121, 133, 135, 136, 134, 125, 157, 124, 129, 123, 123, 123, 121, 126, 128, 132, 122, 127, 132, 110, 118, 112, 123, 133, 125, 127, 117, 123, 144, 117, 151, 129, 122, 106, 118, 130, 140, 113, 134, 118, 120, 116, 103, 125, 140, 115, 118, 112, 115, 121, 116, 123, 121, 115, 113, 136, 129, 126, 138, 119, 144, 119, 138, 112, 113, 125, 130, 106, 126, 110, 128, 126, 137, 147, 122, 119, 133, 118, 115, 142, 109, 155, 122, 139, 118, 138, 132, 127, 126, 113, 125, 147, 122, 136, 122, 143, 130, 137, 127, 130, 129, 115, 124, 112, 115, 128, 127, 118, 126, 137, 119, 148, 131, 134, 140, 124, 111, 127, 135, 121, 137, 132, 114, 125, 133, 126, 134, 123, 124, 114, 140, 114, 130, 128, 132, 123, 135, 126, 126, 126, 129, 145, 137, 135, 135, 122, 135, 138, 149, 132, 127, 119, 136, 133, 131, 136, 122, 134, 118, 123, 131, 144, 119, 131, 112, 118, 134, 110, 122, 134, 121, 123, 107, 123, 114, 116, 119, 133, 122, 115, 137, 125, 125, 138, 135, 113, 126, 112, 139, 136, 149, 140, 114, 127, 136, 103, 140, 121, 132, 132, 119, 131, 137, 130, 113, 113, 121, 118, 137, 114, 129, 125, 140, 121, 127, 138, 136, 106, 133, 124, 140, 113, 123, 124, 138, 126, 118, 140, 116, 133, 131, 135, 138, 134, 125, 128, 121, 115, 104, 133, 111, 133, 132, 133, 136, 135, 120, 129, 125, 139, 145, 133, 126, 116, 132, 132, 116, 133, 127, 107, 133, 128, 135, 121, 116, 119, 124, 116, 120, 146, 118, 128, 118, 131, 127, 112, 138, 113, 124, 135, 81, 127, 123, 148, 140, 134, 126, 130, 144, 140, 121, 137, 133, 116, 125, 129, 125, 116, 126, 134, 135, 135, 122, 127, 127, 119, 133, 116, 134, 131, 138, 105, 124, 106, 123, 104, 124, 131, 145, 114, 124, 124, 111, 131, 139, 125, 135, 131, 110, 117, 123, 122, 141, 132, 120, 153, 129, 134, 123, 134, 111, 128, 117, 112, 117, 105, 134, 130, 117, 137, 120, 131, 116, 140, 126, 131, 124, 129, 117, 139, 117, 132, 134, 127, 116, 138, 140, 112, 122, 135, 129, 123, 114, 137, 121, 118, 129, 130, 138, 124, 116, 136, 128, 118, 126, 100, 128, 133, 135, 139, 131, 119, 134, 118, 117, 132, 139, 120, 128, 118, 135, 130, 117, 128, 105, 126, 110, 129, 133, 137, 110, 126, 111, 123, 118, 117, 147, 141, 139, 135, 127, 147, 125, 118, 101, 138, 114, 131, 127, 109, 133, 117, 123, 122, 129, 126, 143, 114, 124, 132, 129, 126, 117, 130, 143, 133, 132, 140, 134, 130, 117, 120, 118, 136, 133, 124, 120, 121, 104, 124, 124, 124, 117, 119, 121, 119, 108, 101, 108, 135, 141, 97, 132, 109, 111, 128, 116, 114, 128, 114, 119, 127, 121, 128, 122, 118, 129, 122, 128, 131, 127, 135, 140, 131, 118, 117, 131, 114, 133, 133, 145, 136, 121, 132, 122, 145, 130, 111, 122, 117, 125, 119, 123, 156, 138, 131, 135, 142, 122, 119, 117, 146, 129, 115, 139, 115, 137, 123, 127, 132, 112, 112, 123, 131, 126, 123, 105, 125, 130, 113, 115, 132, 110, 115, 133, 121, 125, 124, 128, 125, 124, 117, 131, 127, 111, 135, 116, 126, 132, 134, 114, 117, 130, 128, 127, 117, 103, 137, 131, 116, 128, 127, 135, 133, 133, 115, 127, 103, 114, 120, 127, 125, 123, 103, 140, 120, 121, 133, 121, 137, 117, 129, 120, 120, 116, 117, 114, 134, 140, 131, 119, 129, 136, 127, 136, 128, 144, 134, 126, 135, 125, 126, 115, 113, 144, 133, 149, 130, 141, 110, 136, 119, 136, 137, 125, 123, 123, 133, 118, 109, 134, 121, 114, 124, 146, 126, 129, 118, 123, 134, 129, 136, 118, 113, 112, 117, 131, 115, 122, 118, 138, 132, 115, 133, 128, 122, 121, 109, 115, 135, 128, 145, 106, 116, 134, 134, 119, 117, 129, 122, 124, 112, 121, 131, 138, 123, 131, 139, 122, 125, 104, 120, 122, 131, 124, 134, 112, 128, 123, 117, 119, 121, 130, 133, 127, 131, 132, 113, 116, 111, 133, 137, 129, 129, 148, 127, 122, 126, 119, 124, 111, 118, 118, 140, 124, 115, 117, 112, 118, 144, 129, 107, 110, 107, 143, 122, 126, 118, 127, 132, 118, 129, 113, 132, 117, 128, 111, 148, 126, 128, 121, 137, 119, 139, 132, 125, 118, 131, 127, 105, 120, 137, 125, 134, 121, 122, 124, 133, 135, 132, 123, 122, 131, 130, 131, 144, 115, 124, 108, 122, 128, 134, 125, 111, 121, 118, 136, 120, 104, 124, 110, 128, 123, 130, 138, 120, 135, 114, 118, 133, 113, 138, 134, 122, 131, 111, 122, 145, 113, 115, 118, 133, 112, 114, 144, 122, 123, 142, 131, 137, 129, 144, 122, 145, 105, 108, 143, 122, 115, 140, 129, 128, 125, 125, 142, 126, 129, 131, 121, 115, 122, 125, 115, 139, 127, 135, 135, 134, 113, 144, 129, 119, 138, 151, 130, 106, 120, 142, 126, 133, 128, 108, 124, 147, 125, 145, 126, 112, 135, 115, 126, 123, 122, 128, 110, 134, 119, 134, 133, 118, 105, 127, 129, 131, 132, 142, 135, 130, 127, 116, 119, 127, 125, 107, 118, 120, 143, 102, 123, 114, 133, 122, 117, 121, 128, 134, 136, 121, 99, 127, 109, 128, 137, 115, 133, 122, 117, 126, 121, 136, 133, 133, 122, 137, 115, 113, 121, 122, 133, 113, 124, 125, 135, 141, 129, 113, 114, 120, 132, 130, 117, 126, 102, 138, 155, 117, 130, 132, 120, 126, 126, 111, 133, 120, 126, 109, 115, 136, 133, 127, 131, 140, 125, 118, 136, 106, 121, 124, 132, 108, 129, 119, 151, 133, 127, 135, 131, 124, 118, 124, 136, 118, 145, 125, 126, 128, 136, 104, 120, 115, 115, 131, 137, 124, 130, 117, 122, 116, 120, 111, 133, 133, 116, 110, 119, 129, 121, 113, 120, 137, 128, 121, 149, 125, 126, 120, 123, 121, 117, 107, 118, 123, 122, 126, 138, 119, 106, 128, 139, 131, 118, 149, 131, 112, 126, 130, 144, 115, 119, 137, 117, 124, 106, 117, 148, 135, 130, 123, 129, 132, 133, 138, 120, 133, 143, 112, 115, 129, 113, 129, 121, 116, 118, 113, 127, 119, 129, 122, 95, 118, 135, 122, 138, 105, 135, 123, 125, 132, 123, 126, 108, 133, 134, 134, 127, 117, 140, 109, 124, 129, 137, 122, 106, 137, 129, 126, 127, 130, 127, 120, 131, 125, 117, 125, 121, 125, 127, 124, 120, 123, 142, 139, 119, 119, 137, 114, 118, 126, 133, 115, 127, 121, 138, 134, 139, 109, 130, 123, 113, 129, 134, 130, 118, 121, 125, 121, 129, 111, 113, 135, 118, 118, 124, 133, 114, 128, 123, 132, 125, 113, 114, 136, 149, 139, 129, 111, 108, 124, 111, 119, 123, 116, 131, 115, 105, 117, 126, 139, 134, 113, 116, 124, 117, 149, 129, 124, 148, 131, 131, 119, 132, 108, 119, 129, 132, 124, 129, 130, 127, 119, 140, 116, 119, 121, 136, 128, 129, 134, 108, 127, 105, 109, 126, 128, 127, 122, 131, 122, 108, 119, 116, 137, 116, 126, 116, 108, 120, 115, 129, 122, 113, 116, 120, 129, 125, 115, 126, 152, 121, 107, 115, 137, 118, 131, 130, 124, 121, 137, 101, 119, 111, 120, 121, 106, 130, 143, 97, 121, 126, 130, 127, 125, 131, 137, 127, 108, 122, 129, 122, 126, 121, 119, 128, 133, 123, 133, 124, 125, 116, 124, 135, 112, 119, 144, 129, 125, 125, 125, 125, 121, 113, 124, 110, 138, 133, 134, 120, 91, 125, 95, 144, 121, 126, 121, 117, 115, 113, 128, 127, 114, 127, 134, 119, 125, 142, 137, 116, 121, 111, 126, 144, 117, 125, 105, 139, 130, 121, 132, 126, 122, 119, 135, 123, 130, 121, 143, 123, 124, 123, 126, 119, 107, 137, 106, 112, 124, 114, 130, 112, 127, 122, 128, 123, 126, 125, 120, 117, 130, 139, 136, 120, 125, 129, 118, 123, 128, 119, 112, 132, 116, 120, 117, 107, 123, 141, 120, 122, 109, 125, 131, 129, 127, 120, 132, 130, 143, 111, 110, 131, 120, 119, 130, 126, 107, 127, 119, 128, 149, 121, 148, 132, 136, 123, 151, 122, 135, 127, 118, 107, 133, 109, 132, 113, 134, 108, 114, 114, 118, 121, 126, 130, 114, 147, 112, 129, 116, 144, 129, 102, 134, 140, 133, 115, 113, 132, 122, 112, 121, 130, 137, 123, 132, 136, 119, 128, 130, 113, 132, 113, 125, 116, 136, 108, 117, 138, 130, 122, 141, 117, 113, 120, 129, 116, 127, 124, 134, 131, 123, 131, 138, 130, 127, 97, 125, 144, 146, 104, 133, 137, 113, 125, 127, 136, 103, 133, 117, 130, 114, 125, 142, 118, 132, 131, 118, 141, 127, 134, 129, 124, 113, 146, 133, 115, 126, 137, 113, 136, 128, 126, 145, 140, 118, 132, 111, 127, 110, 125, 134, 135, 124, 115, 137, 107, 117, 132, 125, 117, 142, 129, 111, 116, 132, 123, 113, 102, 124, 131, 131, 116, 130, 130, 110, 129, 130, 146, 123, 127, 139, 158, 121, 135, 125, 105, 118, 121, 118, 114, 134, 122, 138, 140, 132, 134, 125, 139, 122, 122, 130, 129, 115, 123, 127, 114, 128, 126, 119, 128, 128, 132, 134, 131, 121, 140, 123, 119, 114, 128, 129, 126, 125, 115, 130, 139, 125, 122, 118, 145, 116, 107, 134, 117, 120, 124, 130, 122, 124, 122, 124, 113, 125, 121, 102, 129, 140, 114, 134, 138, 121, 123, 141, 130, 111, 125, 118, 106, 119, 133, 139, 120, 116, 126, 119, 111, 125, 114, 112, 114, 133, 113, 138, 139, 117, 131, 116, 121, 135, 132, 124, 113, 133, 117, 113, 138, 123, 112, 118, 121, 128, 132, 111, 120, 127, 115, 129, 127, 128, 112, 126, 129, 127, 125, 148, 133, 147, 145, 123, 130, 129, 126, 133, 126, 115, 121, 108, 123, 133, 112, 134, 133, 112, 107, 110, 135, 134, 129, 132, 119, 121, 136, 127, 118, 130, 121, 126, 126, 126, 120, 123, 137, 124, 127, 137, 117, 128, 145, 128, 122, 136, 121, 138, 121, 126, 119, 100, 117, 113, 129, 137, 127, 120, 159, 108, 110, 115, 140, 115, 128, 132, 122, 129, 138, 130, 148, 135, 114, 131, 129, 124, 132, 125, 113, 122, 124, 136, 114, 140, 128, 132, 120, 116, 133, 116, 131, 118, 130, 136, 116, 161, 121, 127, 132, 130, 118, 117, 121, 143, 111, 113, 138, 137, 106, 122, 128, 136, 115, 141, 141, 134, 129, 125, 125, 128, 134, 140, 131, 129, 111, 119, 139, 119, 114, 120, 128, 123, 129, 119, 118, 145, 136, 114, 142, 122, 134, 133, 131, 131, 109, 141, 117, 123, 110, 114, 123, 113, 119, 131, 127, 129, 126, 119, 118, 123, 126, 139, 126, 114, 134, 129, 128, 116, 127, 129, 117, 124, 130, 121, 122, 133, 134, 156, 110, 138, 125, 123, 123, 126, 114, 127, 131, 124, 122, 127, 121, 135, 141, 122, 132, 130, 134, 131, 126, 118, 90, 147, 130, 119, 115, 134, 117, 132, 127, 137, 124, 120, 140, 114, 125, 127, 125, 131, 124, 137, 118, 128, 128, 138, 133, 117, 107, 129, 131, 130, 134, 132, 126, 115, 133, 141, 137, 125, 112, 119, 124, 142, 116, 150, 126, 112, 112, 134, 127, 127, 120, 129, 122, 117, 125, 125, 126, 119, 118, 123, 123, 139, 126, 108, 124, 122, 126, 117, 127, 120, 120, 128, 127, 129, 117, 138, 120, 103, 112, 123, 126, 138, 123, 126, 105, 126, 129, 135, 122, 112, 128, 110, 112, 135, 104, 130, 127, 121, 128, 147, 109, 120, 125, 134, 123, 122, 112, 130, 131, 113, 130, 130, 125, 125, 130, 138, 129, 115, 140, 131, 117, 142, 125, 125, 108, 147, 148, 124, 127, 115, 105, 123, 132, 149, 132, 131, 137, 110, 115, 108, 133, 101, 121, 126, 119, 117, 131, 118, 127, 144, 134, 113, 104, 121, 124, 133, 118, 134, 122, 113, 133, 126, 136, 118, 117, 120, 101, 136, 140, 115, 129, 117, 121, 116, 143, 99, 131, 126, 140, 127, 121, 121, 136, 140, 126, 120, 145, 125, 125, 106, 134, 126, 134, 148, 128, 138, 139, 126, 123, 134, 132, 136, 111, 152, 127, 146, 130, 124, 126, 129, 135, 119, 128, 130, 110, 126, 124, 129, 128, 120, 145, 131, 128, 125, 108, 148, 105, 99, 121, 133, 120, 120, 110, 126, 143, 122, 114, 130, 150, 132, 124, 133, 125, 123, 120, 138, 142, 134, 146, 112, 132, 133, 120, 116, 114, 129, 129, 118, 133, 123, 119, 128, 123, 125, 119, 135, 108, 130, 124, 114, 134, 156, 130, 124, 123, 124, 138, 125, 110, 130, 129, 126, 133, 111, 122, 110, 116, 129, 118, 121, 135, 130, 115, 126, 131, 120, 104, 115, 126, 110, 121, 128, 115, 121, 123, 138, 136, 118, 123, 134, 125, 142, 118, 136, 129, 132, 127, 122, 137, 123, 144, 121, 125, 118, 128, 140, 120, 124, 112, 119, 131, 114, 119, 127, 138, 111, 125, 128, 122, 118, 135, 129, 120, 123, 126, 137, 127, 135, 122, 124, 134, 132, 130, 114, 129, 125, 143, 130, 122, 116, 116, 137, 126, 125, 123, 115, 131, 116, 116, 115, 99, 119, 124, 130, 126, 129, 132, 117, 122, 134, 119, 111, 120, 123, 123, 140, 128, 111, 129, 114, 138, 123, 113, 125, 122, 135, 111, 124, 138, 136, 125, 116, 117, 134, 121, 127, 116, 118, 129, 138, 125, 125, 118, 102, 120, 121, 111, 121, 131, 130, 113, 134, 120, 110, 117, 130, 130, 124, 132, 118, 132, 154, 130, 126, 122, 125, 146, 135, 113, 126, 129, 115, 116, 123, 143, 129, 131, 133, 135, 105, 120, 124, 110, 130, 133, 116, 144, 130, 132, 116, 124, 123, 133, 111, 113, 134, 124, 119, 132, 110, 121, 133, 122, 115, 132, 120, 105, 114, 149, 125, 144, 109, 132, 139, 132, 128, 129, 145, 113, 141, 134, 130, 141, 117, 103, 123, 127, 128, 123, 116, 133, 136, 129, 134, 131, 118, 132, 126, 132, 127, 143, 140, 130, 129, 110, 135, 129, 108, 119, 133, 132, 133, 135, 133, 118, 116, 108, 132, 145, 147, 140, 115, 112, 120, 144, 136, 121, 123, 128, 120, 129, 134, 110, 123, 140, 129, 123, 115, 123, 112, 128, 126, 101, 114, 115, 135, 136, 145, 138, 115, 127, 145, 110, 136, 133, 134, 108, 109, 121, 135, 134, 135, 126, 121, 121, 119, 125, 133, 127, 121, 114, 134, 128, 146, 106, 131, 121, 144, 127, 131, 123, 141, 122, 122, 142, 115, 127, 123, 114, 114, 139, 124, 122, 135, 102, 119, 150, 114, 129, 128, 122, 147, 115, 115, 114, 128, 130, 117, 121, 109, 124, 116, 122, 123, 139, 128, 125, 119, 149, 160, 126, 131, 123, 123, 137, 127, 120, 122, 130, 123, 124, 116, 124, 128, 138, 144, 137, 141, 129, 123, 121, 127, 123, 127, 104, 124, 117, 120, 112, 123, 127, 112, 112, 120, 122, 133, 120, 117, 106, 104, 108, 117, 124, 134, 130, 133, 129, 128, 116, 117, 110, 112, 143, 114, 129, 111, 146, 125, 115, 111, 117, 119, 126, 128, 126, 134, 109, 135, 144, 118, 122, 133, 139, 129, 112, 137, 114, 141, 133, 126, 127, 123, 123, 139, 119, 122, 118, 135, 116, 125, 134, 126, 131, 112, 118, 135, 126, 127, 126, 126, 131, 124, 155, 102, 130, 124, 122, 145, 150, 125, 107, 156, 116, 113, 138, 132, 133, 145, 129, 119, 133, 105, 132, 132, 137, 128, 124, 102, 136, 133, 101, 142, 128, 122, 116, 134, 102, 138, 126, 133, 104, 147, 139, 136, 134, 118, 111, 106, 125, 107, 101, 129, 128, 116, 126, 123, 132, 117, 138, 110, 120, 141, 148, 107, 124, 126, 118, 129, 127, 145, 119, 130, 135, 137, 133, 106, 125, 131, 152, 85, 142, 111, 106, 122, 119, 133, 124, 117, 106, 138, 129, 130, 136, 114, 125, 131, 123, 120, 144, 134, 125, 127, 130, 124, 161, 141, 113, 122, 107, 130, 118, 110, 144, 129, 129, 115, 127, 126, 131, 118, 132, 121, 124, 110, 111, 133, 130, 143, 136, 134, 117, 129, 111, 109, 114, 138, 116, 117, 105, 119, 132, 116, 123, 127, 118, 111, 134, 133, 108, 113, 120, 114, 120, 125, 114, 100, 147, 127, 119, 132, 125, 118, 111, 132, 120, 138, 118, 126, 130, 129, 117, 132, 146, 131, 100, 124, 125, 130, 103, 122, 129, 124, 131, 129, 133, 117, 124, 120, 138, 104, 134, 136, 119, 109, 145, 122, 147, 114, 135, 137, 130, 119, 120, 123, 127, 129, 121, 113, 133, 124, 112, 131, 124, 125, 120, 138, 127, 132, 111, 140, 125, 139, 118, 121, 127, 121, 124, 132, 135, 121, 113, 129, 102, 116, 125, 127, 129, 125, 135, 136, 127, 130, 128, 119, 120, 129, 115, 126, 109, 125, 110, 109, 130, 131, 133, 120, 133, 122, 121, 112, 135, 135, 110, 129, 137, 136, 136, 127, 120, 129, 135, 114, 127, 118, 118, 113, 117, 115, 121, 124, 118, 139, 101, 108, 134, 124, 121, 117, 115, 130, 126, 123, 131, 139, 97, 136, 135, 125, 117, 132, 116, 131, 139, 137, 118, 128, 111, 96, 129, 120, 129, 119, 117, 138, 138, 128, 137, 130, 115, 109, 123, 125, 129, 136, 131, 124, 127, 137, 125, 125, 128, 124, 128, 122, 113, 139, 127, 119, 141, 115, 119, 136, 115, 136, 115, 116, 135, 126, 131, 95, 116, 124, 120, 101, 106, 122, 129, 131, 124, 129, 134, 117, 151, 125, 114, 112, 133, 103, 133, 120, 132, 140, 120, 134, 107, 128, 121, 127, 124, 122, 110, 125, 116, 118, 121, 117, 133, 124, 107, 126, 125, 127, 122, 109, 130, 121, 124, 153, 105, 128, 119, 139, 135, 125, 126, 123, 127, 131, 125, 123, 120, 113, 110, 106, 133, 119, 132, 131, 124, 127, 151, 134, 136, 96, 124, 117, 136, 147, 128, 127, 122, 122, 149, 111, 128, 113, 116, 82, 121, 110, 118, 130, 130, 134, 122, 120, 114, 126, 135, 125, 127, 120, 119, 112, 125, 119, 130, 117, 126, 123, 144, 139, 134, 114, 114, 113, 132, 142, 124, 130, 120, 120, 119, 132, 110, 143, 122, 145, 131, 129, 132, 133, 126, 111, 126, 124, 144, 129, 129, 129, 142, 136, 125, 129, 129, 120, 125, 142, 113, 131, 120, 137, 130, 108, 113, 130, 127, 123, 131, 136, 122, 123, 118, 112, 132, 122, 143, 128, 120, 119, 131, 123, 107, 124, 132, 126, 120, 116, 142, 98, 115, 133, 128, 127, 128, 121, 112, 114, 100, 137, 107, 123, 146, 112, 133, 129, 114, 124, 124, 133, 119, 141, 107, 113, 125, 117, 133, 129, 132, 115, 119, 148, 117, 119, 122, 135, 127, 103, 124, 133, 105, 116, 119, 124, 102, 140, 122, 122, 132, 136, 106, 121, 137, 99, 133, 120, 148, 120, 130, 124, 117, 118, 122, 129, 107, 117, 107, 125, 123, 150, 143, 127, 122, 114, 143, 113, 143, 130, 117, 127, 125, 135, 138, 129, 139, 121, 125, 126, 135, 126, 114, 131, 126, 123, 124, 130, 137, 128, 120, 126, 137, 120, 128, 111, 132, 112, 139, 133, 138, 131, 126, 139, 127, 96, 115, 122, 129, 123, 127, 117, 128, 130, 113, 138, 126, 123, 114, 136, 134, 122, 136, 111, 114, 109, 97, 127, 124, 138, 108, 121, 137, 120, 116, 129, 126, 114, 131, 132, 132, 136, 117, 123, 150, 125, 135, 137, 115, 140, 124, 115, 116, 127, 129, 113, 121, 114, 135, 117, 121, 142, 129, 124, 126, 139, 112, 118, 113, 122, 127, 124, 121, 132, 116, 111, 132, 128, 108, 128, 128, 143, 132, 113, 119, 136, 119, 139, 138, 126, 110, 132, 147, 116, 125, 127, 125, 120, 124, 128, 123, 139, 146, 132, 118, 130, 132, 141, 118, 105, 114, 120, 105, 143, 133, 132, 127, 127, 127, 124, 114, 135, 108, 137, 90, 133, 119, 132, 126, 140, 127, 110, 119, 110, 149, 119, 122, 115, 129, 109, 116, 115, 158, 143, 137, 130, 136, 132, 141, 132, 122, 126, 125, 131, 139, 115, 120, 134, 115, 121, 117, 127, 126, 124, 126, 108, 149, 99, 119, 137, 139, 139, 147, 131, 128, 119, 119, 131, 120, 121, 111, 184, 121, 121, 139, 138, 129, 112, 127, 123, 147, 123, 126, 113, 143, 117, 128, 113, 133, 149, 123, 118, 124, 131, 128, 125, 131, 119, 119, 122, 122, 122, 127, 125, 122, 126, 114, 130, 127, 132, 113, 135, 117, 121, 113, 112, 137, 137, 110, 116, 133, 124, 145, 138, 121, 128, 109, 125, 126, 139, 125, 123, 120, 124, 119, 118, 131, 117, 120, 107, 121, 134, 131, 138, 109, 123, 139, 128, 118, 113, 140, 126, 143, 115, 153, 119, 128, 116, 116, 142, 107, 131, 130, 124, 111, 127, 133, 138, 131, 134, 141, 127, 123, 118, 143, 128, 131, 122, 134, 128, 127, 117, 128, 116, 110, 119, 112, 118, 122, 108, 125, 128, 120, 106, 130, 119, 104, 118, 142, 121, 118, 132, 123, 112, 126, 104, 117, 129, 130, 124, 130, 101, 107, 108, 131, 122, 134, 113, 109, 140, 112, 125, 127, 119, 129, 123, 137, 137, 127, 124, 115, 136, 125, 122, 134, 113, 115, 141, 128, 128, 121, 120, 123, 138, 124, 138, 110, 118, 122, 130, 121, 113, 134, 126, 131, 136, 131, 119, 126, 129, 142, 137, 115, 106, 144, 128, 140, 118, 125, 123, 103, 125, 127, 123, 114, 138, 130, 113, 125, 128, 125, 130, 130, 126, 155, 139, 106, 135, 123, 114, 140, 127, 116, 133, 119, 110, 126, 110, 123, 132, 111, 126, 127, 130, 130, 133, 129, 122, 116, 131, 132, 141, 119, 122, 143, 116, 135, 116, 129, 127, 122, 117, 100, 129, 119, 119, 125, 142, 109, 115, 117, 143, 107, 130, 133, 127, 131, 129, 154, 131, 143, 144, 133, 131, 101, 113, 102, 129, 144, 99, 133, 108, 117, 134, 125, 114, 107, 128, 112, 110, 124, 129, 121, 121, 112, 151, 125, 124, 147, 134, 118, 125, 133, 142, 128, 144, 122, 116, 130, 117, 141, 106, 111, 134, 123, 132, 143, 113, 134, 143, 128, 133, 122, 127, 117, 116, 127, 110, 129, 110, 116, 135, 124, 121, 125, 130, 118, 139, 118, 124, 133, 125, 109, 104, 112, 115, 109, 107, 134, 134, 120, 113, 150, 134, 119, 122, 112, 124, 145, 127, 122, 117, 120, 128, 129, 137, 121, 110, 105, 125, 130, 107, 104, 116, 121, 114, 117, 139, 138, 120, 125, 113, 120, 137, 112, 125, 110, 122, 127, 111, 135, 147, 126, 123, 121, 121, 135, 124, 124, 134, 139, 115, 117, 126, 145, 122, 126, 133, 116, 118, 146, 130, 112, 141, 123, 135, 113, 138, 116, 125, 141, 127, 133, 142, 118, 126, 129, 112, 127, 111, 130, 120, 101, 124, 131, 123, 130, 129, 122, 143, 126, 146, 125, 133, 116, 138, 123, 119, 123, 120, 133, 133, 117, 120, 124, 120, 110, 109, 116, 114, 124, 154, 106, 134, 117, 118, 146, 137, 124, 118, 128, 148, 113, 117, 120, 111, 145, 137, 133, 124, 115, 128, 105, 117, 109, 139, 120, 153, 123, 131, 128, 113, 129, 118, 122, 120, 132, 138, 132, 123, 111, 137, 106, 113, 133, 122, 117, 130, 123, 133, 121, 138, 124, 145, 111, 123, 129, 117, 123, 124, 106, 114, 131, 120, 122, 114, 98, 110, 131, 114, 132, 140, 126, 105, 133, 137, 135, 104, 117, 114, 126, 125, 148, 147, 116, 143, 131, 132, 119, 108, 135, 134, 133, 131, 134, 117, 126, 126, 134, 137, 119, 122, 110, 121, 124, 128, 131, 120, 113, 125, 113, 111, 124, 113, 125, 109, 139, 130, 131, 150, 128, 132, 105, 113, 116, 142, 115, 118, 109, 122, 137, 116, 116, 113, 109, 150, 120, 118, 101, 145, 128, 131, 119, 127, 115, 146, 139, 146, 114, 118, 119, 131, 136, 114, 132, 132, 116, 125, 142, 142, 124, 139, 128, 122, 124, 126, 128, 125, 109, 139, 127, 116, 127, 120, 129, 148, 125, 137, 110, 136, 124, 127, 122, 113, 134, 137, 124, 132, 123, 133, 133, 143, 126, 129, 110, 135, 135, 130, 115, 104, 123, 133, 119, 124, 123, 126, 121, 133, 131, 131, 120, 146, 135, 122, 129, 107, 130, 122, 121, 143, 112, 121, 133, 117, 135, 128, 117, 126, 140, 128, 110, 141, 132, 121, 140, 150, 125, 120, 127, 125, 141, 137, 109, 113, 125, 130, 149, 120, 122, 121, 135, 116, 124, 127, 128, 126, 135, 124, 118, 120, 117, 117, 112, 128, 113, 135, 122, 135, 123, 131, 126, 136, 118, 136, 123, 111, 103, 133, 129, 122, 128, 126, 121, 143, 123, 143, 119, 108, 137, 118, 135, 133, 134, 123, 126, 135, 147, 128, 123, 128, 124, 128, 131, 119, 137, 107, 135, 123, 130, 125, 126, 117, 130, 119, 128, 131, 117, 118, 114, 105, 133, 123, 126, 130, 129, 128, 142, 128, 114, 113, 137, 117, 114, 123, 126, 127, 118, 128, 135, 132, 150, 132, 117, 138, 127, 111, 128, 116, 115, 128, 118, 129, 124, 136, 109, 122, 120, 136, 130, 157, 115, 107, 119, 130, 115, 129, 119, 127, 133, 122, 130, 112, 121, 104, 106, 123, 130, 150, 113, 126, 118, 145, 122, 132, 124, 131, 124, 145, 121, 118, 137, 119, 115, 129, 113, 112, 146, 120, 112, 127, 117, 111, 137, 130, 127, 124, 113, 125, 125, 147, 100, 138, 102, 100, 109, 132, 110, 133, 129, 128, 99, 109, 129, 90, 132, 101, 131, 121, 108, 126, 138, 131, 125, 128, 116, 109, 144, 107, 134, 130, 116, 139, 146, 134, 124, 105, 124, 152, 120, 114, 144, 125, 131, 113, 137, 131, 159, 142, 122, 113, 127, 124, 123, 120, 131, 127, 118, 108, 115, 133, 97, 108, 132, 125, 127, 121, 104, 117, 126, 128, 98, 147, 113, 127, 115, 131, 120, 127, 133, 129, 121, 131, 127, 123, 121, 90, 130, 117, 144, 137, 119, 132, 113, 113, 134, 113, 123, 129, 120, 120, 119, 120, 115, 135, 129, 143, 116, 134, 138, 124, 119, 123, 127, 127, 106, 129, 142, 128, 115, 124, 121, 136, 129, 120, 95, 114, 112, 119, 122, 118, 122, 128, 148, 127, 133, 131, 125, 124, 133, 117, 124, 131, 116, 130, 108, 116, 119, 121, 120, 118, 143, 127, 124, 113, 149, 113, 122, 133, 146, 119, 127, 116, 121, 123, 124, 133, 123, 123, 124, 141, 118, 148, 116, 120, 135, 129, 141, 139, 128, 137, 118, 111, 109, 131, 130, 135, 121, 118, 121, 122, 122, 121, 136, 151, 118, 129, 135, 128, 128, 132, 137, 135, 123, 123, 123, 123, 117, 124, 122, 123, 89, 126, 129, 117, 119, 128, 130, 130, 153, 125, 139, 131, 127, 115, 133, 121, 126, 125, 134, 129, 133, 138, 124, 119, 111, 119, 115, 122, 113, 125, 118, 115, 147, 130, 135, 127, 122, 116, 126, 129, 109, 119, 127, 130, 150, 124, 130, 139, 117, 142, 105, 124, 103, 125, 114, 130, 123, 138, 113, 109, 117, 127, 112, 124, 121, 113, 115, 122, 122, 116, 144, 127, 140, 123, 133, 137, 130, 132, 106, 131, 132, 125, 145, 113, 119, 129, 135, 122, 141, 111, 147, 114, 131, 122, 132, 134, 118, 123, 139, 117, 130, 133, 111, 131, 114, 135, 123, 130, 120, 113, 112, 114, 110, 125, 131, 136, 119, 122, 119, 114, 115, 107, 130, 139, 121, 147, 146, 113, 116, 108, 112, 122, 136, 123, 112, 122, 131, 110, 123, 111, 138, 145, 119, 132, 134, 126, 125, 130, 124, 129, 129, 116, 128, 124, 129, 131, 129, 123, 114, 125, 108, 139, 108, 125, 127, 126, 111, 125, 125, 129, 98, 128, 140, 120, 127, 119, 114, 124, 137, 121, 107, 134, 122, 115, 128, 135, 131, 131, 121, 127, 136, 125, 140, 138, 169, 107, 119, 119, 121, 135, 138, 122, 118, 119, 132, 145, 118, 140, 133, 117, 147, 121, 137, 113, 121, 116, 128, 117, 105, 133, 125, 130, 122, 130, 132, 103, 134, 132, 107, 116, 148, 135, 111, 134, 111, 117, 142, 131, 128, 147, 139, 110, 125, 122, 138, 104, 136, 127, 124, 102, 116, 118, 125, 116, 118, 121, 134, 111, 123, 101, 137, 132, 130, 133, 125, 123, 122, 129, 143, 133, 133, 107, 139, 111, 136, 116, 123, 148, 159, 123, 126, 131, 116, 135, 119, 133, 137, 124, 130, 141, 145, 118, 100, 124, 120, 112, 135, 118, 134, 126, 129, 125, 132, 142, 131, 139, 139, 126, 108, 136, 125, 113, 112, 121, 137, 136, 131, 131, 130, 135, 114, 117, 127, 126, 115, 131, 143, 127, 121, 142, 115, 131, 124, 134, 137, 108, 122, 127, 133, 131, 133, 125, 111, 124, 121, 114, 122, 122, 140, 122, 116, 112, 138, 136, 116, 124, 121, 109, 114, 126, 128, 118, 119, 141, 127, 137, 118, 122, 101, 128, 140, 126, 111, 139, 126, 124, 125, 113, 134, 146, 115, 145, 128, 127, 118, 130, 129, 112, 126, 117, 126, 127, 112, 130, 125, 101, 126, 125, 143, 117, 130, 116, 113, 131, 125, 118, 129, 117, 121, 114, 135, 139, 126, 115, 135, 155, 108, 117, 116, 124, 132, 118, 122, 116, 129, 131, 110, 110, 132, 122, 117, 129, 123, 138, 120, 110, 110, 134, 143, 145, 136, 132, 127, 122, 125, 146, 152, 126, 137, 119, 132, 133, 132, 129, 126, 105, 111, 105, 115, 136, 128, 114, 122, 120, 140, 122, 146, 129, 132, 129, 130, 124, 112, 127, 133, 130, 123, 125, 122, 136, 129, 119, 132, 131, 111, 130, 121, 133, 109, 113, 124, 120, 107, 132, 124, 127, 115, 132, 122, 134, 120, 125, 118, 138, 115, 138, 157, 119, 131, 125, 131, 108, 125, 109, 123, 109, 133, 131, 114, 115, 128, 134, 114, 117, 109, 111, 139, 129, 132, 150, 125, 119, 122, 133, 129, 134, 113, 132, 129, 127, 137, 130, 126, 119, 125, 116, 134, 120, 136, 117, 104, 127, 109, 126, 131, 138, 109, 118, 126, 137, 132, 135, 107, 127, 97, 119, 113, 129, 143, 132, 121, 119, 138, 125, 148, 127, 115, 130, 125, 117, 130, 122, 113, 113, 102, 132, 136, 123, 124, 113, 126, 113, 123, 133, 129, 130, 153, 130, 105, 123, 140, 117, 131, 109, 129, 131, 144, 125, 124, 119, 123, 122, 116, 144, 129, 128, 114, 114, 160, 144, 147, 128, 136, 120, 128, 122, 102, 124, 126, 113, 124, 122, 123, 118, 116, 136, 125, 115, 123, 108, 112, 133, 136, 118, 146, 112, 129, 138, 132, 116, 125, 121, 152, 110, 125, 130, 132, 146, 120, 131, 143, 125, 129, 123, 123, 123, 120, 111, 132, 113, 113, 104, 118, 100, 123, 121, 136, 139, 119, 125, 132, 138, 123, 126, 134, 136, 129, 152, 122, 135, 98, 123, 118, 143, 121, 122, 132, 113, 118, 136, 128, 133, 119, 152, 129, 121, 124, 115, 131, 125, 136, 122, 121, 121, 118, 135, 132, 106, 127, 135, 130, 127, 122, 116, 112, 142, 123, 92, 132, 128, 130, 118, 117, 147, 150, 129, 118, 116, 130, 125, 118, 125, 136, 119, 149, 122, 135, 148, 130, 116, 120, 115, 130, 123, 120, 143, 116, 110, 125, 113, 126, 127, 114, 124, 124, 129, 149, 118, 123, 141, 129, 127, 131, 120, 113, 119, 109, 138, 121, 108, 141, 135, 129, 118, 115, 135, 125, 145, 106, 115, 124, 145, 140, 134, 119, 130, 133, 113, 137, 103, 127, 130, 123, 135, 114, 132, 104, 144, 115, 113, 144, 140, 140, 108, 128, 148, 105, 113, 121, 118, 100, 124, 105, 113, 118, 135, 118, 136, 121, 112, 115, 149, 131, 156, 127, 145, 111, 125, 135, 140, 113, 123, 138, 116, 128, 137, 116, 119, 122, 137, 141, 132, 119, 120, 121, 134, 135, 134, 124, 138, 132, 138, 120, 139, 118, 114, 115, 128, 133, 134, 115, 147, 115, 130, 115, 127, 133, 127, 139, 128, 119, 134, 131, 127, 137, 103, 134, 101, 116, 131, 129, 98, 112, 127, 131, 142, 123, 120, 141, 118, 136, 131, 136, 127, 141, 124, 140, 114, 117, 148, 132, 139, 125, 142, 133, 114, 134, 131, 100, 138, 151, 128, 126, 125, 135, 147, 119, 121, 123, 119, 135, 142, 134, 117, 107, 129, 130, 147, 128, 141, 125, 121, 131, 120, 132, 141, 148, 130, 115, 109, 122, 97, 127, 136, 128, 122, 119, 116, 109, 123, 115, 140, 133, 118, 119, 129, 131, 131, 127, 140, 121, 126, 124, 127, 119, 116, 145, 105, 121, 122, 142, 144, 126, 115, 121, 125, 125, 136, 125, 114, 120, 123, 116, 127, 126, 122, 123, 108, 122, 109, 131, 129, 142, 125, 123, 117, 117, 151, 123, 124, 131, 110, 127, 104, 123, 133, 134, 131, 161, 123, 153, 124, 115, 107, 138, 130, 128, 128, 104, 126, 121, 129, 121, 124, 133, 125, 114, 143, 121, 113, 141, 119, 124, 115, 130, 112, 128, 121, 149, 129, 122, 121, 121, 140, 138, 129, 118, 130, 152, 110, 118, 114, 124, 109, 139, 131, 130, 121, 118, 117, 168, 120, 125, 133, 137, 130, 119, 123, 143, 135, 135, 94, 134, 140, 121, 123, 112, 109, 126, 126, 143, 122, 126, 137, 124, 130, 133, 126, 114, 107, 129, 126, 124, 110, 142, 138, 130, 112, 132, 135, 123, 130, 133, 123, 118, 119, 145, 130, 128, 114, 117, 124, 107, 127, 130, 132, 121, 132, 148, 124, 121, 133, 130, 109, 121, 108, 125, 133, 120, 135, 124, 127, 118, 133, 115, 115, 134, 107, 130, 153, 123, 116, 122, 144, 124, 137, 124, 135, 120, 132, 119, 121, 126, 120, 137, 137, 114, 118, 133, 145, 128, 114, 114, 100, 118, 119, 150, 123, 119, 117, 124, 111, 127, 111, 134, 149, 107, 122, 131, 112, 118, 129, 126, 120, 132, 119, 139, 127, 122, 118, 116, 141, 107, 130, 118, 114, 127, 145, 122, 115, 143, 136, 132, 127, 135, 111, 126, 131, 141, 115, 123, 108, 128, 113, 122, 136, 134, 130, 135, 122, 146, 120, 132, 119, 115, 127, 106, 105, 126, 111, 107, 105, 116, 158, 113, 138, 136, 126, 132, 123, 116, 115, 117, 109, 122, 105, 108, 126, 145, 139, 148, 142, 137, 115, 110, 114, 143, 115, 123, 129, 130, 102, 128, 134, 129, 121, 128, 134, 128, 122, 141, 111, 123, 112, 120, 124, 113, 132, 134, 125, 128, 107, 132, 126, 107, 91, 126, 128, 118, 131, 128, 148, 108, 118, 140, 154, 125, 106, 146, 104, 111, 138, 112, 113, 125, 146, 109, 122, 116, 125, 120, 122, 121, 120, 123, 145, 128, 119, 126, 122, 109, 122, 135, 129, 127, 123, 119, 136, 113, 127, 112, 125, 111, 113, 117, 125, 113, 136, 142, 128, 125, 136, 121, 126, 133, 120, 136, 136, 132, 127, 135, 127, 121, 131, 122, 125, 103, 106, 123, 121, 120, 101, 131, 120, 118, 132, 133, 148, 120, 121, 128, 116, 102, 129, 136, 117, 132, 127, 121, 126, 119, 136, 125, 103, 138, 121, 143, 128, 121, 136, 121, 101, 91, 110, 126, 115, 108, 125, 113, 112, 126, 106, 135, 129, 133, 132, 109, 108, 120, 127, 127, 116, 117, 130, 117, 127, 141, 122, 135, 133, 116, 121, 128, 139, 121, 115, 115, 123, 114, 91, 119, 137, 126, 122, 128, 125, 126, 137, 120, 135, 119, 128, 130, 130, 117, 126, 106, 120, 118, 115, 123, 126, 131, 145, 110, 122, 122, 122, 121, 143, 115, 128, 131, 131, 99, 127, 135, 127, 126, 145, 124, 129, 133, 122, 140, 134, 118, 114, 119, 130, 124, 143, 140, 124, 132, 125, 133, 128, 122, 121, 108, 123, 132, 138, 140, 125, 118, 129, 125, 130, 136, 132, 127, 138, 115, 129, 116, 117, 128, 129, 116, 119, 136, 130, 129, 120, 111, 119, 128, 107, 138, 128, 108, 124, 150, 111, 112, 125, 119, 124, 118, 118, 142, 130, 120, 139, 126, 126, 131, 142, 132, 110, 129, 131, 139, 128, 137, 137, 127, 127, 125, 127, 129, 120, 124, 121, 120, 123, 116, 124, 128, 106, 112, 123, 111, 137, 161, 146, 130, 132, 138, 132, 128, 128, 113, 129, 115, 132, 126, 129, 118, 129, 127, 137, 132, 133, 117, 128, 121, 109, 118, 122, 127, 131, 128, 126, 125, 127, 126, 121, 112, 115, 129, 134, 128, 116, 131, 135, 129, 129, 135, 116, 112, 125, 128, 126, 143, 119, 130, 132, 145, 132, 119, 123, 130, 117, 118, 116, 128, 133, 116, 123, 129, 118, 109, 119, 123, 114, 112, 134, 127, 124, 109, 126, 107, 106, 138, 117, 124, 140, 118, 122, 127, 132, 119, 132, 107, 139, 140, 114, 117, 142, 128, 115, 116, 130, 119, 128, 120, 129, 122, 124, 133, 114, 138, 119, 102, 129, 115, 114, 115, 135, 115, 123, 112, 125, 116, 59, 121, 133, 118, 134, 117, 123, 123, 133, 125, 122, 129, 135, 124, 141, 117, 132, 110, 105, 116, 139, 150, 138, 131, 125, 136, 109, 120, 132, 130, 128, 129, 125, 119, 128, 130, 101, 136, 126, 117, 139, 125, 128, 127, 134, 133, 130, 132, 136, 122, 127, 114, 143, 114, 133, 126, 114, 125, 118, 107, 115, 128, 123, 109, 126, 124, 125, 110, 134, 129, 119, 136, 142, 109, 124, 123, 110, 122, 115, 142, 125, 127, 141, 128, 127, 116, 122, 134, 152, 106, 136, 136, 138, 124, 120, 122, 122, 146, 122, 113, 120, 128, 108, 129, 111, 121, 123, 114, 126, 136, 143, 134, 144, 129, 126, 133, 131, 130, 127, 124, 144, 110, 124, 124, 129, 142, 124, 113, 138, 135, 129, 119, 118, 114, 129, 124, 154, 104, 116, 130, 103, 120, 123, 121, 117, 132, 114, 127, 114, 118, 118, 124, 139, 126, 109, 135, 116, 126, 117, 107, 128, 127, 135, 118, 134, 110, 123, 130, 128, 136, 130, 130, 116, 137, 118, 116, 141, 127, 110, 136, 119, 128, 124, 141, 121, 130, 125, 140, 116, 126, 129, 121, 127, 127, 97, 139, 126, 124, 131, 118, 124, 105, 120, 140, 91, 125, 139, 131, 131, 126, 132, 112, 149, 105, 128, 130, 129, 130, 125, 122, 137, 120, 110, 135, 132, 124, 137, 128, 125, 140, 129, 117, 130, 132, 129, 124, 115, 139, 136, 118, 121, 127, 125, 131, 116, 122, 127, 119, 116, 109, 142, 119, 113, 130, 130, 119, 132, 126, 135, 131, 144, 142, 108, 126, 134, 111, 138, 127, 123, 128, 124, 122, 122, 145, 127, 128, 118, 137, 109, 130, 126, 131, 114, 131, 129, 120, 136, 122, 132, 116, 124, 127, 109, 131, 140, 144, 110, 128, 130, 130, 130, 157, 135, 126, 125, 135, 130, 122, 128, 134, 119, 112, 123, 121, 122, 127, 128, 131, 131, 129, 132, 118, 133, 114, 120, 131, 135, 125, 121, 132, 112, 112, 132, 135, 108, 118, 139, 135, 120, 138, 131, 133, 134, 126, 121, 143, 138, 132, 128, 141, 127, 122, 117, 122, 108, 117, 120, 112, 149, 124, 107, 136, 112, 144, 119, 117, 143, 137, 126, 115, 123, 129, 125, 137, 129, 113, 137, 124, 135, 128, 136, 128, 124, 122, 128, 128, 115, 131, 126, 123, 116, 123, 137, 122, 118, 137, 118, 120, 113, 126, 126, 123, 126, 121, 122, 124, 120, 97, 122, 105, 124, 130, 126, 137, 127, 129, 116, 126, 125, 103, 131, 112, 97, 135, 123, 129, 119, 113, 93, 113, 125, 142, 125, 122, 109, 139, 119, 130, 139, 117, 123, 121, 118, 132, 124, 143, 136, 122, 129, 122, 121, 123, 133, 120, 113, 137, 132, 121, 113, 126, 114, 147, 129, 134, 130, 125, 136, 131, 110, 121, 129, 107, 114, 134, 122, 105, 123, 133, 116, 140, 129, 111, 117, 126, 113, 126, 156, 123, 130, 120, 110, 133, 115, 131, 114, 139, 126, 119, 138, 132, 128, 121, 118, 105, 118, 121, 118, 133, 128, 124, 117, 107, 118, 123, 118, 128, 128, 114, 113, 125, 124, 135, 121, 132, 106, 113, 124, 112, 113, 127, 119, 128, 124, 124, 113, 130, 126, 121, 135, 131, 139, 124, 137, 127, 130, 124, 147, 120, 132, 123, 133, 126, 111, 117, 144, 140, 109, 141, 131, 105, 125, 122, 107, 120, 129, 127, 128, 138, 119, 123, 143, 126, 122, 122, 132, 138, 124, 129, 124, 126, 127, 111, 120, 116, 125, 119, 119, 139, 134, 121, 121, 127, 126, 138, 111, 116, 117, 129, 100, 129, 112, 123, 121, 118, 134, 111, 133, 123, 113, 124, 115, 119, 128, 151, 128, 118, 109, 111, 130, 127, 127, 138, 117, 147, 134, 126, 142, 121, 125, 130, 121, 137, 133, 116, 115, 123, 121, 127, 149, 130, 111, 134, 116, 109, 133, 133, 132, 133, 116, 136, 116, 138, 140, 128, 133, 117, 123, 109, 115, 118, 133, 130, 114, 126, 120, 123, 118, 110, 125, 120, 117, 114, 120, 111, 123, 125, 130, 137, 125, 111, 125, 135, 133, 125, 121, 136, 125, 122, 121, 118, 115, 130, 129, 151, 107, 132, 123, 118, 112, 126, 150, 129, 135, 143, 117, 126, 140, 129, 120, 143, 126, 150, 149, 126, 130, 122, 140, 123, 130, 131, 124, 137, 138, 138, 129, 119, 136, 121, 120, 121, 122, 140, 128, 121, 129, 119, 113, 131, 112, 127, 131, 144, 120, 144, 121, 122, 135, 122, 119, 123, 133, 113, 113, 121, 117, 123, 136, 134, 109, 118, 129, 135, 138, 132, 134, 132, 119, 123, 122, 131, 120, 129, 114, 130, 127, 118, 117, 121, 137, 118, 118, 144, 100, 133, 124, 129, 143, 98, 120, 115, 144, 109, 117, 128, 109, 128, 100, 115, 130, 127, 126, 148, 117, 135, 114, 132, 133, 116, 116, 115, 120, 125, 118, 133, 115, 127, 120, 113, 130, 126, 119, 111, 118, 117, 127, 122, 127, 123, 120, 118, 118, 112, 136, 118, 147, 123, 97, 130, 116, 142, 131, 111, 139, 126, 115, 126, 122, 142, 141, 128, 122, 96, 117, 129, 124, 120, 116, 124, 128, 130, 130, 102, 144, 119, 134, 122, 122, 127, 109, 138, 115, 128, 121, 124, 114, 138, 127, 134, 110, 127, 134, 115, 137, 119, 116, 141, 120, 121, 125, 118, 144, 118, 123, 122, 134, 91, 105, 112, 122, 111, 125, 118, 126, 115, 121, 134, 120, 127, 111, 110, 109, 131, 127, 106, 115, 136, 116, 138, 124, 114, 127, 116, 135, 134, 139, 118, 112, 115, 125, 118, 118, 114, 120, 108, 116, 135, 137, 147, 139, 131, 132, 145, 109, 101, 122, 129, 135, 113, 109, 129, 98, 120, 138, 116, 128, 103, 116, 120, 108, 142, 138, 114, 126, 136, 126, 115, 134, 137, 118, 124, 122, 133, 121, 137, 121, 134, 121, 124, 139, 125, 118, 117, 137, 127, 128, 117, 144, 120, 120, 123, 135, 125, 129, 119, 126, 130, 111, 147, 130, 142, 135, 126, 133, 123, 122, 121, 129, 128, 136, 119, 131, 138, 101, 136, 136, 124, 133, 128, 130, 128, 135, 114, 116, 124, 134, 106, 144, 125, 136, 124, 112, 125, 140, 141, 126, 127, 126, 121, 131, 120, 109, 114, 111, 122, 145, 123, 126, 123, 113, 129, 124, 117, 136, 122, 113, 126, 128, 121, 125, 117, 105, 111, 124, 138, 129, 132, 110, 120, 120, 125, 142, 117, 128, 117, 126, 122, 138, 113, 130, 129, 106, 122, 126, 115, 112, 120, 128, 124, 130, 118, 116, 123, 118, 121, 121, 132, 149, 116, 140, 121, 124, 120, 127, 120, 129, 109, 118, 124, 122, 134, 115, 129, 125, 122, 116, 110, 127, 123, 129, 128, 126, 138, 139, 119, 129, 134, 116, 140, 116, 123, 116, 121, 122, 135, 131, 96, 122, 133, 124, 121, 136, 121, 122, 118, 130, 138, 124, 115, 142, 138, 105, 121, 135, 133, 137, 131, 131, 120, 107, 118, 123, 126, 128, 118, 109, 115, 134, 110, 131, 127, 116, 137, 112, 118, 127, 121, 112, 127, 127, 133, 117, 127, 145, 107, 124, 130, 128, 117, 120, 120, 117, 127, 120, 125, 127, 119, 131, 146, 124, 99, 131, 130, 124, 118, 120, 120, 125, 113, 124, 156, 133, 128, 144, 111, 130, 118, 131, 127, 124, 117, 115, 111, 117, 126, 127, 108, 126, 123, 134, 137, 118, 118, 112, 113, 123, 123, 124, 113, 119, 154, 127, 126, 146, 119, 116, 118, 150, 117, 126, 132, 109, 144, 113, 128, 131, 145, 126, 138, 120, 142, 127, 147, 107, 120, 117, 117, 124, 112, 120, 105, 126, 135, 115, 131, 110, 127, 117, 130, 123, 156, 126, 123, 145, 128, 136, 136, 121, 132, 116, 134, 140, 115, 138, 119, 117, 131, 114, 141, 110, 121, 127, 109, 138, 127, 118, 125, 129, 122, 118, 136, 130, 126, 121, 118, 101, 122, 131, 118, 122, 131, 123, 129, 131, 118, 131, 135, 120, 135, 125, 119, 116, 131, 122, 131, 114, 114, 131, 131, 137, 107, 132, 98, 132, 133, 126, 125, 142, 110, 122, 111, 147, 114, 122, 124, 120, 135, 116, 118, 119, 135, 116, 114, 144, 124, 113, 127, 124, 129, 132, 145, 137, 117, 105, 133, 141, 134, 119, 121, 119, 113, 122, 122, 126, 98, 114, 131, 123, 120, 149, 116, 133, 128, 133, 131, 120, 108, 101, 142, 135, 153, 129, 139, 113, 149, 138, 138, 137, 128, 144, 135, 127, 136, 118, 139, 127, 131, 138, 136, 143, 106, 132, 138, 126, 120, 132, 138, 134, 128, 112, 128, 139, 128, 113, 120, 124, 124, 131, 133, 128, 134, 115, 113, 131, 134, 113, 142, 118, 119, 130, 140, 132, 122, 130, 117, 121, 111, 128, 127, 132, 108, 135, 127, 117, 131, 131, 114, 117, 125, 125, 110, 125, 120, 124, 127, 125, 140, 122, 136, 134, 139, 122, 132, 120, 139, 110, 122, 127, 144, 128, 128, 135, 126, 141, 130, 126, 105, 127, 122, 137, 113, 135, 134, 117, 128, 132, 139, 120, 125, 123, 133, 117, 126, 114, 137, 123, 138, 120, 129, 117, 145, 136, 108, 152, 104, 132, 115, 124, 118, 122, 123, 122, 112, 122, 146, 146, 141, 113, 137, 122, 127, 146, 116, 121, 121, 130, 120, 111, 125, 140, 96, 114, 132, 125, 120, 126, 113, 108, 113, 137, 126, 109, 131, 113, 127, 136, 147, 130, 123, 127, 135, 131, 126, 128, 114, 120, 114, 119, 111, 137, 133, 116, 130, 142, 126, 128, 135, 133, 121, 130, 128, 118, 136, 151, 134, 126, 122, 133, 130, 151, 140, 112, 120, 121, 131, 115, 111, 134, 121, 130, 124, 137, 122, 136, 130, 125, 146, 138, 125, 147, 129, 123, 142, 134, 120, 114, 125, 125, 96, 122, 118, 108, 121, 115, 113, 121, 125, 130, 124, 142, 116, 117, 125, 131, 135, 116, 135, 118, 118, 136, 131, 131, 120, 110, 128, 124, 113, 118, 117, 119, 125, 126, 108, 115, 117, 123, 128, 136, 121, 135, 127, 121, 141, 136, 142, 143, 115, 135, 138, 126, 126, 153, 108, 129, 137, 141, 131, 119, 135, 114, 135, 130, 111, 113, 120, 143, 129, 121, 123, 136, 132, 130, 144, 131, 114, 124, 131, 128, 149, 129, 113, 136, 143, 119, 117, 108, 140, 123, 127, 133, 115, 141, 124, 131, 121, 143, 112, 130, 114, 129, 126, 123, 136, 122, 128, 105, 120, 128, 148, 158, 130, 120, 137, 143, 114, 123, 142, 116, 123, 123, 111, 135, 126, 116, 111, 130, 111, 129, 120, 113, 121, 132, 146, 105, 121, 129, 117, 129, 133, 117, 131, 116, 133, 142, 134, 128, 134, 119, 124, 116, 116, 115, 121, 143, 118, 126, 125, 132, 113, 119, 111, 128, 121, 107, 133, 129, 142, 133, 109, 153, 129, 130, 107, 131, 118, 124, 120, 104, 133, 131, 118, 125, 132, 121, 128, 126, 131, 124, 122, 123, 133, 118, 119, 132, 126, 118, 139, 139, 126, 131, 123, 132, 105, 123, 120, 121, 133, 115, 116, 115, 118, 132, 118, 120, 128, 127, 107, 120, 143, 128, 143, 125, 105, 123, 123, 119, 125, 116, 120, 140, 118, 119, 118, 126, 126, 127, 108, 136, 132, 126, 132, 100, 110, 115, 119, 127, 121, 95, 113, 114, 137, 133, 118, 128, 113, 127, 111, 98, 120, 138, 121, 122, 126, 129, 122, 110, 116, 133, 130, 127, 125, 102, 137, 125, 122, 128, 126, 126, 127, 133, 133, 118, 114, 113, 126, 127, 134, 133, 118, 123, 143, 142, 105, 121, 132, 133, 146, 111, 110, 129, 134, 113, 145, 152, 129, 117, 125, 108, 121, 134, 131, 117, 121, 137, 136, 116, 127, 137, 126, 120, 120, 117, 161, 126, 132, 111, 106, 117, 156, 111, 106, 124, 109, 130, 125, 114, 117, 137, 122, 136, 151, 127, 134, 135, 116, 124, 124, 132, 135, 127, 118, 117, 128, 136, 144, 104, 134, 148, 121, 123, 127, 113, 105, 129, 135, 118, 130, 112, 129, 117, 139, 111, 112, 123, 113, 102, 139, 126, 136, 148, 125, 112, 142, 117, 129, 126, 137, 106, 107, 136, 117, 149, 123, 123, 101, 122, 142, 142, 130, 125, 112, 117, 122, 118, 124, 126, 115, 109, 143, 120, 125, 125, 115, 137, 122, 112, 129, 129, 117, 136, 133, 124, 145, 124, 111, 142, 118, 143, 117, 119, 131, 132, 134, 127, 114, 128, 107, 133, 127, 125, 112, 132, 124, 130, 110, 117, 120, 125, 111, 115, 127, 146, 132, 139, 119, 150, 129, 119, 123, 129, 141, 120, 122, 139, 128, 140, 129, 126, 117, 123, 110, 115, 120, 114, 125, 125, 123, 127, 153, 123, 129, 117, 125, 144, 123, 126, 118, 133, 114, 127, 146, 126, 130, 116, 129, 128, 127, 135, 130, 147, 137, 146, 117, 114, 112, 124, 131, 131, 120, 143, 119, 124, 125, 124, 126, 124, 131, 120, 136, 134, 138, 125, 136, 110, 124, 110, 134, 129, 112, 133, 123, 104, 122, 111, 108, 137, 129, 115, 131, 129, 120, 114, 130, 136, 135, 124, 126, 122, 124, 111, 120, 130, 115, 130, 132, 121, 120, 105, 98, 121, 113, 149, 138, 113, 140, 123, 147, 146, 121, 113, 112, 129, 130, 104, 113, 120, 122, 122, 133, 129, 110, 117, 117, 132, 134, 143, 152, 133, 130, 137, 131, 121, 116, 123, 144, 117, 108, 129, 122, 127, 111, 126, 117, 118, 133, 131, 131, 116, 128, 117, 129, 132, 120, 122, 96, 145, 110, 119, 123, 93, 131, 148, 124, 126, 118, 130, 125, 113, 121, 124, 125, 113, 135, 134, 134, 127, 125, 125, 126, 135, 128, 126, 141, 120, 132, 131, 125, 127, 135, 114, 116, 114, 127, 128, 139, 132, 127, 118, 115, 123, 125, 128, 135, 126, 127, 127, 135, 124, 102, 112, 122, 126, 130, 120, 135, 130, 126, 119, 114, 122, 134, 125, 123, 115, 110, 117, 132, 130, 107, 133, 108, 133, 123, 125, 132, 137, 108, 118, 120, 133, 136, 128, 133, 140, 133, 107, 125, 121, 146, 140, 111, 127, 124, 119, 105, 126, 127, 132, 121, 122, 121, 113, 135, 120, 148, 122, 115, 136, 123, 102, 133, 130, 115, 129, 125, 131, 115, 118, 127, 144, 120, 126, 121, 129, 132, 120, 140, 138, 134, 118, 133, 132, 128, 116, 139, 138, 134, 124, 125, 125, 119, 146, 133, 129, 129, 114, 124, 119, 141, 131, 128, 132, 121, 115, 142, 104, 142, 129, 132, 123, 128, 112, 121, 122, 129, 114, 133, 137, 126, 140, 113, 136, 128, 123, 125, 114, 136, 117, 123, 121, 130, 120, 125, 118, 134, 120, 133, 122, 129, 118, 137, 130, 100, 134, 109, 120, 124, 122, 112, 130, 130, 127, 135, 130, 133, 128, 124, 130, 149, 109, 111, 119, 134, 127, 148, 130, 131, 145, 116, 119, 109, 140, 126, 131, 119, 122, 129, 110, 135, 131, 124, 132, 119, 130, 122, 126, 139, 122, 119, 121, 108, 128, 138, 123, 119, 107, 132, 128, 127, 126, 128, 122, 125, 127, 120, 125, 103, 110, 121, 136, 140, 107, 136, 127, 130, 139, 122, 117, 135, 125, 117, 126, 130, 123, 117, 128, 111, 98, 119, 137, 132, 133, 116, 125, 128, 138, 120, 129, 124, 122, 128, 119, 127, 135, 137, 133, 122, 134, 123, 126, 114, 128, 118, 126, 132, 125, 129, 126, 124, 126, 138, 132, 122, 109, 138, 111, 119, 117, 133, 116, 127, 136, 128, 114, 128, 131, 117, 126, 111, 125, 128, 114, 114, 119, 115, 126, 107, 119, 117, 151, 133, 135, 138, 132, 151, 135, 132, 122, 131, 133, 115, 115, 126, 109, 128, 123, 137, 113, 110, 128, 132, 117, 112, 108, 126, 112, 120, 130, 116, 147, 123, 114, 109, 147, 128, 113, 115, 132, 115, 107, 129, 125, 119, 120, 128, 129, 120, 119, 121, 123, 137, 102, 111, 122, 120, 121, 136, 113, 115, 135, 123, 129, 121, 127, 116, 126, 134, 140, 128, 134, 132, 137, 119, 123, 135, 116, 134, 111, 134, 112, 138, 111, 123, 129, 135, 127, 127, 122, 132, 123, 143, 130, 129, 139, 129, 126, 131, 115, 123, 132, 135, 123, 130, 132, 107, 142, 138, 138, 117, 128, 134, 137, 114, 113, 127, 113, 129, 126, 136, 138, 119, 120, 117, 126, 133, 132, 126, 121, 133, 124, 122, 125, 123, 120, 119, 142, 126, 99, 99, 138, 144, 136, 120, 135, 115, 138, 140, 129, 118, 111, 137, 134, 118, 125, 130, 130, 113, 120, 133, 139, 126, 142, 129, 110, 102, 113, 119, 115, 134, 120, 108, 132, 127, 121, 136, 130, 135, 131, 133, 122, 114, 132, 116, 124, 116, 120, 120, 139, 110, 117, 134, 111, 140, 139, 133, 130, 138, 133, 147, 122, 123, 129, 106, 127, 129, 107, 103, 112, 131, 128, 120, 118, 129, 119, 125, 125, 136, 109, 144, 132, 149, 120, 140, 130, 128, 123, 135, 124, 116, 139, 148, 141, 137, 140, 138, 114, 120, 126, 129, 124, 133, 130, 115, 115, 101, 151, 110, 130, 112, 120, 113, 129, 144, 116, 120, 133, 129, 145, 123, 117, 130, 113, 124, 130, 141, 126, 107, 122, 128, 122, 139, 121, 110, 120, 115, 130, 138, 127, 127, 127, 122, 129, 137, 111, 126, 140, 127, 114, 127, 158, 104, 114, 107, 116, 123, 136, 133, 126, 126, 134, 137, 139, 137, 145, 85, 114, 122, 122, 134, 120, 138, 121, 110, 118, 121, 136, 120, 128, 126, 136, 146, 119, 109, 141, 130, 129, 115, 133, 140, 131, 136, 117, 135, 129, 129, 138, 112, 113, 112, 128, 122, 130, 121, 129, 124, 118, 121, 130, 119, 122, 127, 110, 131, 127, 121, 132, 127, 127, 141, 121, 126, 130, 117, 125, 119, 120, 119, 118, 114, 144, 126, 116, 123, 122, 109, 121, 112, 126, 156, 128, 123, 123, 138, 117, 125, 125, 118, 116, 129, 173, 126, 119, 135, 127, 120, 135, 125, 128, 132, 121, 115, 133, 133, 115, 134, 123, 136, 144, 132, 121, 127, 139, 147, 124, 133, 134, 120, 131, 132, 123, 143, 111, 147, 120, 130, 133, 106, 139, 146, 116, 137, 132, 132, 106, 131, 131, 127, 117, 114, 114, 116, 123, 133, 123, 127, 120, 126, 124, 139, 128, 114, 118, 110, 128, 134, 128, 129, 133, 128, 135, 132, 150, 123, 115, 121, 125, 132, 121, 124, 130, 127, 134, 122, 118, 132, 116, 129, 136, 124, 136, 126, 124, 148, 109, 124, 112, 138, 129, 131, 135, 128, 128, 127, 123, 127, 130, 130, 110, 121, 130, 127, 127, 124, 113, 159, 121, 126, 131, 118, 124, 124, 123, 116, 120, 139, 131, 119, 137, 113, 106, 136, 138, 131, 135, 124, 103, 132, 116, 137, 114, 123, 113, 129, 136, 129, 121, 131, 134, 134, 109, 118, 131, 129, 151, 129, 122, 144, 120, 130, 128, 129, 126, 123, 103, 125, 124, 121, 87, 129, 121, 126, 122, 124, 125, 136, 129, 126, 124, 119, 131, 136, 150, 117, 121, 131, 140, 131, 116, 136, 137, 106, 111, 116, 126, 121, 118, 121, 118, 116, 129, 119, 138, 119, 130, 136, 131, 118, 113, 134, 136, 130, 129, 133, 121, 110, 127, 119, 130, 130, 142, 111, 135, 126, 137, 114, 117, 133, 120, 113, 132, 114, 115, 130, 117, 100, 143, 130, 102, 134, 138, 114, 117, 123, 108, 131, 131, 133, 133, 114, 135, 138, 120, 125, 116, 142, 126, 129, 136, 120, 123, 118, 111, 135, 138, 120, 103, 123, 121, 135, 123, 125, 131, 127, 127, 119, 132, 126, 125, 130, 126, 125, 130, 132, 124, 118, 131, 128, 119, 124, 147, 156, 121, 122, 105, 136, 115, 123, 128, 141, 111, 114, 140, 141, 148, 116, 127, 137, 117, 129, 127, 124, 117, 126, 130, 124, 113, 110, 135, 139, 131, 126, 127, 117, 116, 127, 102, 124, 127, 132, 127, 123, 125, 136, 130, 129, 116, 110, 134, 115, 147, 105, 115, 123, 150, 127, 121, 130, 119, 110, 113, 133, 135, 140, 154, 141, 130, 131, 129, 135, 120, 119, 127, 113, 115, 131, 127, 131, 110, 125, 139, 133, 104, 134, 110, 135, 120, 133, 130, 129, 137, 124, 133, 122, 135, 127, 153, 116, 129, 122, 124, 129, 128, 116, 135, 127, 119, 130, 123, 118, 111, 119, 117, 121, 125, 100, 127, 123, 113, 117, 122, 130, 134, 130, 121, 122, 126, 126, 123, 120, 121, 134, 127, 132, 126, 111, 148, 115, 124, 126, 124, 118, 108, 117, 121, 151, 119, 126, 125, 121, 125, 123, 133, 127, 134, 130, 115, 123, 115, 133, 116, 147, 123, 120, 145, 128, 125, 119, 123, 132, 121, 131, 135, 124, 123, 133, 125, 142, 120, 127, 126, 135, 120, 115, 120, 131, 119, 127, 116, 127, 120, 125, 122, 132, 103, 118, 155, 116, 124, 131, 136, 120, 117, 123, 140, 103, 139, 122, 146, 117, 126, 121, 148, 121, 110, 133, 134, 131, 123, 118, 125, 115, 125, 132, 135, 112, 125, 135, 126, 121, 129, 132, 125, 137, 137, 108, 138, 124, 123, 106, 121, 137, 117, 132, 134, 128, 115, 140, 132, 123, 109, 125, 135, 121, 123, 112, 113, 113, 147, 128, 122, 138, 124, 119, 118, 121, 124, 133, 115, 124, 131, 127, 121, 117, 129, 124, 115, 131, 143, 116, 127, 122, 111, 122, 139, 127, 129, 109, 99, 122, 137, 119, 131, 128, 133, 127, 133, 130, 128, 123, 125, 133, 120, 131, 130, 134, 118, 137, 122, 148, 128, 115, 116, 133, 118, 126, 123, 142, 132, 129, 126, 117, 119, 126, 121, 129, 111, 136, 120, 121, 126, 137, 117, 120, 120, 138, 123, 128, 134, 129, 118, 125, 126, 135, 123, 131, 136, 133, 107, 121, 118, 118, 130, 116, 130, 123, 118, 129, 122, 133, 136, 131, 132, 120, 128, 110, 118, 111, 122, 117, 113, 127, 109, 105, 118, 127, 133, 127, 138, 134, 114, 122, 135, 123, 119, 135, 138, 128, 153, 144, 114, 132, 111, 115, 115, 119, 122, 129, 124, 137, 126, 115, 137, 131, 136, 113, 127, 130, 126, 136, 131, 120, 114, 121, 123, 113, 118, 136, 119, 127, 121, 126, 141, 130, 117, 118, 107, 117, 127, 130, 127, 118, 129, 125, 131, 126, 115, 114, 109, 121, 131, 120, 133, 128, 119, 118, 139, 132, 131, 103, 122, 129, 129, 130, 122, 128, 138, 123, 131, 112, 135, 133, 133, 122, 125, 127, 124, 120, 124, 133, 129, 123, 119, 116, 130, 108, 111, 124, 143, 122, 140, 139, 124, 118, 121, 126, 120, 108, 125, 123, 133, 150, 112, 128, 134, 116, 120, 138, 110, 135, 114, 119, 119, 134, 117, 143, 135, 108, 111, 130, 123, 136, 137, 140, 141, 133, 129, 141, 116, 131, 142, 125, 129, 137, 119, 122, 133, 126, 127, 122, 132, 126, 129, 124, 112, 109, 120, 114, 132, 122, 117, 127, 131, 121, 159, 128, 125, 127, 119, 117, 143, 123, 116, 135, 128, 126, 116, 119, 116, 122, 133, 117, 135, 125, 129, 143, 145, 121, 122, 134, 119, 131, 133, 116, 116, 141, 130, 129, 129, 125, 112, 132, 131, 139, 122, 128, 117, 133, 122, 114, 133, 130, 126, 137, 130, 114, 137, 108, 142, 123, 127, 120, 133, 131, 134, 129, 127, 132, 126, 135, 129, 119, 126, 134, 128, 127, 128, 116, 99, 133, 120, 122, 133, 130, 113, 130, 113, 134, 121, 113, 123, 117, 129, 113, 131, 118, 150, 114, 108, 133, 117, 120, 113, 116, 117, 131, 126, 134, 113, 124, 120, 115, 144, 114, 124, 114, 115, 112, 112, 114, 109, 135, 116, 128, 118, 131, 116, 137, 133, 134, 113, 107, 121, 97, 147, 135, 117, 136, 117, 118, 102, 117, 120, 132, 117, 121, 134, 127, 108, 110, 140, 124, 113, 100, 129, 128, 117, 138, 129, 133, 126, 125, 129, 111, 121, 109, 124, 135, 120, 141, 133, 143, 111, 128, 126, 143, 118, 117, 121, 119, 140, 119, 126, 121, 139, 139, 131, 113, 116, 144, 125, 151, 129, 128, 141, 133, 126, 140, 122, 116, 133, 132, 115, 122, 123, 119, 116, 122, 124, 128, 120, 128, 118, 115, 123, 125, 107, 129, 117, 117, 130, 148, 130, 121, 122, 121, 112, 140, 130, 121, 126, 128, 126, 149, 98, 114, 115, 120, 115, 128, 113, 114, 130, 114, 111, 127, 125, 138, 128, 128, 133, 137, 133, 117, 118, 137, 129, 112, 128, 135, 133, 117, 134, 124, 151, 112, 124, 123, 127, 136, 127, 121, 151, 137, 126, 115, 114, 125, 134, 134, 143, 130, 118, 133, 142, 112, 117, 142, 123, 126, 123, 121, 120, 131, 127, 129, 123, 126, 107, 118, 146, 114, 118, 123, 130, 132, 125, 136, 124, 138, 128, 120, 118, 108, 113, 132, 130, 128, 126, 120, 131, 123, 117, 120, 122, 136, 128, 137, 132, 120, 146, 121, 129, 121, 113, 127, 122, 114, 136, 126, 137, 139, 106, 118, 121, 111, 97, 143, 144, 116, 130, 119, 129, 136, 120, 117, 121, 116, 131, 131, 127, 135, 148, 122, 132, 139, 120, 138, 130, 110, 122, 136, 114, 123, 124, 124, 126, 125, 123, 132, 133, 129, 121, 136, 130, 144, 110, 131, 123, 131, 129, 150, 134, 127, 132, 106, 103, 125, 128, 142, 124, 119, 126, 137, 129, 109, 117, 129, 137, 127, 132, 121, 130, 119, 131, 136, 132, 115, 121, 132, 136, 123, 114, 124, 113, 117, 136, 112, 112, 116, 134, 119, 111, 134, 127, 96, 134, 124, 128, 110, 124, 129, 128, 130, 122, 128, 140, 120, 148, 122, 142, 140, 115, 117, 126, 135, 131, 125, 129, 148, 128, 154, 116, 106, 120, 122, 141, 135, 118, 130, 129, 126, 109, 125, 124, 141, 116, 131, 165, 126, 131, 133, 106, 136, 115, 124, 134, 114, 141, 115, 114, 127, 112, 131, 139, 162, 116, 111, 117, 141, 125, 119, 135, 124, 127, 122, 129, 112, 125, 108, 113, 142, 127, 126, 121, 119, 119, 149, 132, 120, 118, 124, 122, 137, 116, 133, 141, 126, 138, 120, 92, 129, 118, 132, 134, 142, 139, 123, 150, 127, 127, 124, 113, 135, 132, 122, 127, 130, 125, 122, 123, 135, 125, 102, 128, 120, 132, 142, 120, 139, 144, 109, 128, 120, 125, 114, 111, 138, 111, 130, 144, 121, 126, 108, 121, 145, 116, 131, 124, 133, 136, 128, 129, 110, 124, 111, 131, 131, 139, 112, 157, 124, 125, 148, 116, 140, 125, 116, 121, 125, 121, 122, 120, 135, 138, 132, 118, 126, 106, 120, 112, 112, 124, 124, 143, 144, 140, 119, 116, 109, 130, 116, 143, 106, 125, 134, 119, 121, 129, 137, 127, 129, 111, 120, 123, 144, 122, 130, 111, 141, 157, 128, 114, 126, 118, 118, 134, 146, 127, 112, 137, 121, 109, 136, 132, 127, 103, 113, 138, 117, 132, 118, 138, 115, 124, 123, 118, 131, 116, 129, 135, 110, 138, 123, 117, 127, 125, 130, 118, 110, 120, 110, 108, 121, 140, 125, 124, 127, 136, 125, 130, 110, 141, 117, 115, 112, 129, 133, 105, 132, 117, 112, 125, 131, 137, 114, 117, 116, 121, 125, 131, 122, 132, 97, 133, 125, 125, 113, 124, 135, 135, 125, 109, 114, 115, 125, 99, 122, 113, 126, 140, 123, 122, 129, 105, 130, 126, 120, 119, 126, 129, 109, 152, 135, 130, 131, 123, 122, 117, 128, 138, 108, 118, 138, 128, 127, 133, 133, 141, 132, 111, 125, 133, 128, 133, 132, 109, 117, 122, 114, 122, 108, 130, 133, 121, 128, 118, 119, 120, 119, 115, 137, 123, 111, 126, 141, 119, 120, 123, 130, 112, 124, 133, 124, 115, 114, 129, 127, 124, 117, 158, 125, 128, 129, 129, 125, 133, 112, 120, 138, 132, 124, 114, 123, 122, 131, 125, 117, 123, 118, 127, 113, 133, 114, 122, 110, 128, 134, 124, 148, 152, 123, 122, 132, 112, 103, 109, 118, 118, 125, 122, 118, 116, 126, 142, 122, 124, 133, 112, 123, 109, 121, 133, 125, 116, 121, 119, 124, 147, 110, 114, 152, 134, 127, 124, 141, 128, 110, 127, 121, 122, 131, 116, 122, 124, 114, 105, 124, 107, 146, 125, 126, 119, 114, 121, 140, 128, 130, 121, 129, 120, 129, 131, 142, 131, 122, 108, 131, 151, 120, 119, 122, 120, 127, 134, 126, 124, 109, 118, 128, 122, 116, 143, 111, 126, 117, 125, 115, 139, 130, 142, 134, 135, 122, 156, 133, 147, 123, 112, 122, 125, 124, 112, 110, 119, 153, 132, 137, 136, 136, 115, 124, 114, 128, 139, 113, 133, 127, 131, 115, 147, 121, 109, 105, 139, 113, 151, 126, 122, 136, 136, 129, 118, 128, 134, 128, 114, 128, 122, 131, 127, 107, 133, 123, 133, 128, 129, 132, 123, 135, 115, 110, 149, 116, 137, 121, 137, 136, 129, 143, 127, 120, 130, 113, 127, 125, 120, 127, 125, 137, 128, 134, 112, 108, 113, 123, 125, 134, 140, 121, 140, 131, 112, 130, 117, 124, 100, 116, 126, 121, 124, 120, 112, 122, 114, 118, 111, 146, 145, 132, 132, 123, 124, 137, 146, 108, 138, 124, 130, 125, 133, 114, 122, 126, 126, 120, 129, 117, 146, 135, 114, 129, 108, 164, 123, 121, 136, 117, 129, 115, 116, 139, 136, 97, 122, 133, 131, 127, 124, 112, 124, 147, 125, 112, 113, 111, 138, 122, 150, 130, 120, 124, 131, 147, 132, 128, 120, 139, 123, 131, 137, 120, 126, 126, 148, 124, 114, 119, 114, 135, 151, 122, 117, 143, 124, 113, 120, 131, 136, 144, 115, 132, 118, 117, 120, 133, 130, 121, 141, 121, 118, 107, 115, 131, 125, 118, 126, 116, 130, 125, 134, 126, 135, 108, 132, 123, 144, 121, 117, 127, 119, 126, 115, 116, 122, 156, 111, 137, 117, 138, 112, 128, 143, 127, 115, 114, 118, 121, 129, 129, 123, 107, 139, 138, 127, 129, 136, 106, 107, 130, 143, 110, 116, 125, 139, 125, 145, 128, 123, 138, 126, 133, 113, 124, 124, 106, 119, 112, 126, 139, 125, 121, 132, 136, 125, 112, 137, 127, 123, 112, 134, 135, 150, 107, 138, 131, 142, 133, 145, 122, 139, 116, 119, 155, 128, 114, 126, 122, 126, 111, 134, 129, 132, 132, 132, 145, 92, 115, 136, 121, 123, 117, 130, 136, 141, 136, 119, 159, 112, 125, 115, 120, 122, 126, 105, 121, 125, 108, 122, 88, 125, 130, 117, 126, 108, 155, 135, 140, 123, 113, 120, 119, 124, 120, 132, 110, 117, 120, 135, 137, 127, 110, 124, 133, 136, 116, 133, 115, 132, 130, 124, 116, 118, 130, 104, 147, 104, 154, 100, 115, 121, 128, 139, 136, 133, 138, 111, 138, 111, 121, 130, 103, 116, 137, 115, 141, 112, 117, 129, 116, 121, 134, 133, 124, 103, 110, 122, 141, 104, 119, 121, 157, 141, 115, 113, 123, 107, 132, 107, 122, 131, 134, 112, 122, 138, 130, 136, 128, 114, 111, 145, 125, 149, 135, 128, 117, 126, 125, 139, 133, 169, 132, 132, 115, 127, 128, 128, 155, 129, 114, 116, 115, 125, 128, 121, 112, 135, 124, 127, 103, 97, 97, 140, 111, 124, 132, 116, 138, 133, 119, 113, 122, 126, 112, 131, 107, 101, 125, 124, 124, 119, 125, 132, 126, 102, 126, 123, 144, 123, 109, 125, 112, 118, 144, 123, 111, 124, 129, 128, 125, 115, 122, 125, 138, 139, 134, 123, 135, 141, 128, 121, 113, 121, 138, 111, 136, 109, 131, 132, 117, 116, 135, 136, 126, 135, 116, 112, 112, 126, 137, 118, 136, 107, 148, 129, 134, 131, 127, 100, 122, 149, 118, 123, 127, 128, 128, 133, 129, 115, 123, 132, 124, 129, 126, 123, 110, 123, 138, 126, 112, 120, 121, 114, 112, 133, 137, 126, 127, 116, 124, 107, 127, 133, 117, 141, 146, 126, 115, 115, 119, 126, 131, 118, 125, 112, 111, 123, 131, 138, 114, 123, 127, 116, 110, 119, 127, 119, 128, 133, 118, 116, 131, 122, 120, 122, 129, 115, 120, 129, 120, 112, 117, 139, 142, 115, 124, 137, 114, 129, 115, 118, 127, 128, 131, 143, 108, 122, 126, 136, 138, 132, 114, 151, 107, 127, 129, 111, 108, 107, 132, 123, 121, 128, 132, 136, 127, 139, 115, 123, 132, 129, 123, 144, 123, 126, 133, 107, 122, 127, 123, 144, 114, 132, 130, 124, 135, 127, 138, 127, 129, 117, 127, 116, 109, 135, 121, 106, 123, 140, 124, 105, 135, 126, 132, 129, 122, 117, 123, 130, 117, 127, 127, 125, 123, 137, 111, 130, 134, 151, 118, 119, 126, 130, 129, 139, 143, 115, 116, 128, 132, 119, 112, 122, 114, 112, 133, 119, 127, 97, 127, 138, 121, 123, 134, 116, 120, 117, 97, 115, 123, 130, 125, 127, 121, 122, 133, 111, 126, 121, 108, 153, 131, 117, 119, 136, 132, 128, 138, 128, 120, 123, 108, 142, 111, 122, 127, 147, 117, 119, 132, 133, 129, 122, 127, 111, 114, 91, 119, 145, 130, 130, 124, 132, 129, 113, 107, 122, 100, 119, 117, 119, 134, 136, 112, 126, 106, 126, 137, 119, 119, 110, 126, 140, 103, 127, 107, 130, 132, 140, 136, 125, 127, 129, 110, 120, 109, 137, 122, 156, 135, 101, 120, 125, 113, 121, 101, 105, 143, 110, 125, 131, 142, 127, 139, 139, 137, 117, 120, 119, 114, 144, 132, 126, 123, 130, 121, 115, 136, 122, 117, 122, 126, 139, 127, 119, 120, 133, 125, 125, 119, 138, 135, 126, 124, 129, 129, 118, 119, 110, 141, 132, 159, 116, 122, 117, 127, 121, 131, 129, 129, 140, 124, 130, 113, 125, 123, 106, 124, 132, 126, 124, 130, 135, 129, 136, 115, 95, 129, 125, 125, 134, 108, 124, 124, 128, 127, 125, 130, 137, 126, 123, 134, 154, 110, 117, 122, 130, 134, 134, 129, 141, 133, 134, 139, 116, 123, 116, 131, 126, 137, 142, 151, 118, 133, 124, 131, 119, 129, 117, 116, 123, 129, 112, 137, 131, 125, 93, 137, 133, 125, 122, 129, 126, 126, 127, 144, 121, 126, 118, 126, 141, 118, 151, 120, 130, 123, 132, 137, 120, 137, 110, 113, 130, 140, 121, 134, 143, 116, 139, 132, 119, 133, 129, 125, 144, 140, 119, 133, 108, 131, 122, 123, 100, 139, 126, 122, 116, 121, 109, 126, 133, 117, 132, 127, 130, 118, 119, 129, 136, 128, 140, 131, 105, 103, 126, 109, 114, 121, 131, 145, 137, 144, 129, 138, 119, 110, 119, 124, 110, 130, 125, 142, 119, 143, 122, 114, 122, 128, 141, 108, 128, 147, 107, 100, 135, 139, 125, 124, 115, 143, 116, 131, 117, 122, 113, 102, 140, 113, 122, 139, 109, 121, 111, 116, 123, 150, 122, 120, 154, 138, 126, 118, 131, 112, 115, 133, 123, 106, 117, 115, 117, 121, 122, 143, 131, 129, 117, 126, 122, 116, 141, 133, 126, 118, 142, 147, 123, 132, 100, 125, 128, 120, 117, 131, 124, 107, 128, 124, 113, 132, 127, 130, 119, 136, 120, 106, 113, 122, 112, 133, 126, 125, 129, 114, 149, 122, 124, 122, 133, 119, 132, 118, 118, 135, 119, 129, 111, 123, 114, 94, 126, 124, 107, 124, 117, 113, 102, 134, 128, 126, 122, 131, 114, 125, 137, 129, 131, 144, 115, 121, 122, 131, 134, 142, 109, 93, 115, 124, 134, 113, 114, 149, 132, 131, 143, 103, 141, 129, 141, 132, 123, 139, 114, 119, 128, 117, 125, 112, 133, 140, 149, 109, 116, 124, 131, 115, 111, 129, 134, 123, 127, 124, 139, 120, 117, 143, 134, 126, 138, 136, 129, 138, 131, 120, 129, 136, 120, 132, 129, 132, 111, 133, 144, 121, 117, 121, 129, 145, 122, 137, 126, 140, 132, 117, 124, 120, 110, 132, 133, 130, 145, 136, 139, 113, 147, 118, 130, 130, 151, 129, 121, 120, 130, 129, 136, 122, 109, 110, 132, 125, 134, 119, 128, 126, 117, 120, 142, 122, 131, 122, 127, 123, 135, 152, 114, 114, 126, 143, 114, 114, 121, 117, 128, 126, 121, 129, 151, 129, 140, 130, 136, 116, 123, 111, 130, 135, 111, 142, 128, 121, 119, 115, 132, 122, 132, 105, 131, 128, 145, 132, 131, 129, 124, 124, 145, 111, 114, 125, 121, 123, 155, 137, 142, 116, 122, 94, 115, 133, 121, 118, 123, 133, 126, 117, 129, 144, 121, 128, 123, 122, 129, 126, 113, 119, 116, 123, 146, 143, 139, 118, 119, 113, 130, 123, 125, 123, 132, 125, 118, 116, 136, 151, 108, 144, 124, 130, 126, 109, 139, 128, 118, 129, 110, 138, 136, 132, 129, 120, 113, 130, 128, 124, 144, 143, 121, 124, 121, 122, 125, 116, 126, 128, 144, 139, 114, 127, 138, 120, 126, 150, 117, 108, 113, 125, 126, 109, 123, 120, 122, 128, 169, 131, 133, 122, 135, 129, 134, 129, 134, 132, 154, 114, 131, 125, 115, 118, 126, 120, 117, 129, 125, 127, 123, 128, 117, 147, 137, 136, 131, 124, 131, 109, 144, 123, 129, 120, 132, 124, 126, 103, 116, 135, 118, 141, 142, 121, 137, 118, 123, 121, 116, 118, 142, 102, 115, 125, 133, 132, 122, 114, 111, 133, 110, 131, 118, 114, 125, 133, 116, 117, 125, 129, 121, 127, 130, 128, 128, 129, 136, 127, 114, 117, 139, 148, 120, 120, 120, 134, 117, 141, 123, 118, 123, 104, 121, 120, 123, 129, 121, 116, 126, 129, 127, 134, 120, 122, 137, 129, 120, 132, 125, 121, 116, 130, 119, 131, 106, 127, 125, 101, 136, 135, 131, 123, 142, 132, 115, 121, 127, 130, 142, 106, 139, 150, 117, 131, 115, 136, 119, 115, 127, 123, 133, 122, 113, 147, 120, 116, 129, 141, 133, 127, 125, 134, 132, 108, 106, 123, 125, 118, 124, 109, 134, 123, 149, 117, 121, 131, 141, 126, 119, 121, 139, 114, 124, 119, 109, 105, 135, 124, 134, 130, 128, 122, 130, 103, 111, 130, 130, 114, 125, 113, 113, 138, 124, 120, 141, 137, 130, 113, 141, 124, 114, 123, 141, 103, 117, 113, 132, 137, 115, 115, 138, 131, 112, 138, 126, 137, 124, 116, 120, 132, 130, 138, 134, 123, 136, 116, 125, 117, 109, 125, 121, 137, 119, 131, 110, 119, 105, 136, 125, 123, 137, 124, 118, 126, 120, 128, 121, 99, 112, 130, 126, 120, 135, 129, 123, 126, 134, 103, 135, 107, 125, 112, 146, 118, 159, 130, 120, 125, 130, 141, 118, 117, 127, 119, 115, 130, 148, 126, 111, 127, 118, 134, 126, 123, 124, 130, 119, 123, 131, 128, 137, 129, 124, 130, 125, 124, 143, 147, 124, 127, 126, 110, 121, 123, 117, 134, 128, 125, 131, 126, 137, 133, 126, 124, 124, 130, 121, 127, 106, 134, 133, 124, 136, 114, 129, 155, 109, 142, 135, 136, 132, 119, 117, 124, 127, 126, 134, 145, 132, 134, 107, 110, 122, 129, 112, 127, 127, 129, 114, 135, 148, 112, 132, 123, 123, 132, 133, 119, 110, 128, 124, 139, 112, 133, 136, 126, 143, 125, 133, 123, 124, 120, 121, 130, 109, 142, 125, 122, 124, 122, 117, 129, 113, 127, 132, 112, 127, 122, 144, 105, 124, 121, 126, 107, 114, 121, 123, 120, 104, 121, 127, 123, 126, 139, 130, 125, 126, 123, 130, 129, 104, 124, 119, 129, 109, 132, 133, 125, 123, 156, 120, 119, 103, 125, 130, 142, 120, 134, 137, 124, 131, 130, 125, 136, 106, 118, 142, 116, 111, 121, 120, 104, 130, 133, 130, 119, 112, 129, 124, 111, 126, 113, 106, 116, 135, 131, 127, 136, 114, 139, 130, 140, 124, 132, 116, 116, 134, 120, 128, 143, 111, 126, 133, 134, 136, 130, 130, 128, 137, 126, 116, 125, 127, 137, 131, 115, 109, 118, 138, 128, 136, 117, 126, 124, 131, 117, 130, 110, 123, 118, 114, 117, 119, 121, 123, 121, 134, 112, 121, 131, 118, 121, 125, 129, 126, 111, 126, 136, 140, 113, 122, 131, 113, 127, 125, 128, 120, 125, 119, 126, 128, 129, 117, 131, 124, 137, 128, 131, 114, 137, 123, 139, 130, 117, 118, 135, 117, 129, 123, 125, 109, 117, 110, 104, 114, 128, 112, 126, 135, 130, 116, 123, 122, 122, 127, 141, 135, 134, 132, 130, 143, 123, 113, 119, 127, 123, 129, 135, 146, 137, 120, 126, 130, 114, 129, 106, 112, 131, 137, 124, 118, 130, 117, 125, 117, 138, 130, 112, 130, 144, 123, 117, 113, 127, 119, 124, 109, 145, 120, 126, 119, 112, 116, 126, 116, 132, 119, 114, 142, 152, 121, 124, 120, 136, 128, 135, 122, 129, 127, 116, 124, 118, 117, 115, 146, 116, 134, 125, 109, 123, 123, 124, 119, 125, 137, 117, 129, 119, 128, 136, 131, 128, 122, 130, 131, 128, 156, 112, 140, 130, 121, 125, 116, 136, 116, 134, 122, 120, 135, 115, 138, 119, 133, 128, 125, 114, 123, 133, 123, 139, 126, 121, 127, 129, 133, 122, 109, 107, 92, 132, 146, 116, 120, 130, 119, 140, 135, 139, 129, 111, 124, 143, 132, 128, 126, 140, 117, 130, 123, 128, 118, 121, 122, 122, 130, 116, 124, 128, 111, 117, 148, 120, 133, 107, 122, 122, 123, 113, 121, 127, 112, 126, 129, 111, 113, 122, 141, 113, 121, 141, 129, 126, 122, 125, 117, 123, 122, 124, 125, 124, 132, 112, 135, 114, 131, 136, 121, 123, 118, 126, 113, 141, 122, 121, 126, 110, 127, 146, 123, 140, 109, 114, 124, 132, 123, 130, 128, 132, 132, 147, 139, 122, 114, 131, 107, 139, 143, 132, 101, 128, 137, 125, 132, 124, 135, 124, 126, 134, 129, 117, 113, 133, 120, 130, 118, 128, 119, 116, 133, 132, 131, 130, 120, 119, 124, 132, 140, 125, 109, 123, 108, 127, 147, 118, 123, 109, 113, 128, 126, 124, 110, 142, 109, 111, 115, 126, 112, 124, 138, 116, 121, 131, 124, 144, 127, 123, 143, 120, 123, 110, 122, 136, 105, 136, 129, 124, 131, 121, 129, 124, 127, 120, 123, 117, 110, 124, 132, 132, 120, 130, 125, 109, 96, 125, 117, 134, 133, 127, 112, 118, 115, 128, 125, 133, 123, 141, 129, 119, 119, 125, 119, 128, 114, 137, 120, 121, 130, 145, 132, 114, 133, 133, 132, 130, 110, 118, 118, 117, 128, 133, 120, 109, 164, 123, 127, 123, 130, 116, 130, 129, 139, 125, 153, 128, 108, 118, 135, 126, 137, 117, 127, 127, 105, 125, 128, 130, 120, 124, 137, 124, 118, 134, 126, 124, 125, 132, 123, 121, 125, 146, 130, 125, 127, 141, 120, 124, 115, 131, 117, 109, 146, 137, 123, 145, 120, 145, 111, 116, 140, 114, 132, 122, 119, 130, 129, 120, 115, 122, 121, 114, 129, 126, 121, 114, 136, 122, 124, 127, 132, 131, 129, 137, 106, 123, 130, 118, 128, 132, 140, 141, 109, 132, 119, 119, 132, 136, 145, 113, 123, 119, 118, 125, 122, 121, 125, 114, 124, 113, 129, 125, 111, 157, 117, 118, 124, 133, 116, 117, 122, 129, 123, 134, 134, 117, 123, 121, 122, 108, 115, 127, 138, 131, 135, 118, 115, 138, 138, 120, 133, 102, 127, 119, 131, 133, 140, 123, 129, 125, 127, 122, 122, 138, 121, 112, 130, 135, 126, 131, 126, 152, 126, 129, 129, 116, 128, 134, 135, 124, 131, 125, 119, 127, 101, 115, 113, 131, 123, 126, 132, 121, 133, 129, 118, 118, 124, 147, 83, 123, 138, 133, 138, 130, 129, 122, 132, 121, 124, 119, 132, 115, 124, 118, 129, 118, 118, 123, 125, 132, 130, 112, 127, 135, 120, 118, 126, 119, 137, 126, 120, 142, 121, 126, 136, 118, 116, 126, 125, 126, 115, 103, 139, 132, 127, 153, 125, 109, 131, 140, 125, 127, 120, 130, 129, 114, 118, 123, 99, 122, 119, 122, 114, 104, 111, 115, 125, 113, 130, 122, 129, 114, 130, 121, 131, 139, 135, 132, 130, 130, 141, 116, 106, 139, 137, 138, 139, 124, 120, 138, 115, 116, 128, 132, 117, 122, 117, 125, 123, 120, 109, 115, 118, 122, 113, 120, 108, 124, 132, 120, 122, 112, 128, 128, 122, 116, 120, 149, 115, 119, 141, 124, 119, 140, 120, 121, 121, 145, 128, 117, 128, 123, 125, 139, 137, 115, 124, 125, 115, 121, 132, 131, 119, 132, 139, 122, 110, 132, 125, 115, 112, 140, 141, 124, 119, 101, 119, 132, 105, 135, 105, 134, 119, 108, 121, 137, 128, 127, 125, 133, 120, 127, 130, 117, 134, 142, 124, 129, 144, 120, 120, 130, 120, 129, 124, 126, 138, 115, 126, 106, 125, 136, 121, 127, 143, 115, 123, 156, 103, 114, 136, 120, 128, 120, 133, 125, 114, 142, 131, 124, 121, 131, 132, 128, 116, 123, 128, 137, 127, 119, 124, 131, 116, 122, 120, 130, 131, 130, 134, 136, 128, 129, 124, 123, 124, 119, 114, 124, 115, 125, 138, 136, 127, 137, 128, 129, 125, 119, 138, 144, 114, 109, 138, 121, 124, 123, 129, 127, 107, 149, 119, 132, 118, 109, 122, 117, 125, 131, 129, 118, 144, 122, 118, 109, 124, 130, 124, 119, 141, 121, 131, 113, 143, 137, 123, 113, 127, 118, 126, 136, 125, 125, 117, 124, 147, 120, 116, 129, 134, 144, 113, 130, 130, 129, 111, 115, 123, 135, 124, 111, 125, 133, 119, 123, 136, 96, 132, 123, 123, 129, 119, 136, 133, 116, 145, 113, 114, 126, 114, 126, 136, 148, 136, 138, 132, 130, 128, 125, 131, 125, 138, 132, 138, 120, 136, 104, 134, 111, 127, 128, 124, 119, 127, 134, 102, 121, 133, 120, 116, 133, 120, 131, 121, 114, 113, 129, 119, 130, 129, 141, 125, 110, 145, 153, 129, 130, 136, 132, 122, 122, 117, 120, 132, 122, 142, 125, 139, 129, 115, 121, 123, 115, 136, 134, 124, 119, 121, 127, 124, 124, 125, 137, 124, 125, 140, 134, 132, 142, 123, 130, 106, 116, 124, 134, 137, 128, 130, 128, 129, 127, 116, 120, 112, 120, 142, 119, 122, 118, 100, 122, 140, 135, 122, 133, 98, 131, 145, 131, 131, 133, 122, 135, 133, 111, 123, 125, 135, 122, 144, 123, 110, 143, 129, 126, 136, 111, 122, 125, 121, 122, 105, 135, 122, 119, 127, 132, 118, 122, 117, 127, 125, 100, 112, 121, 136, 132, 122, 123, 115, 124, 138, 112, 126, 110, 117, 121, 118, 136, 125, 144, 129, 135, 121, 111, 126, 141, 130, 129, 121, 122, 116, 137, 120, 131, 134, 132, 133, 129, 153, 121, 121, 122, 122, 119, 129, 126, 116, 125, 113, 122, 131, 135, 138, 134, 137, 145, 114, 110, 130, 113, 147, 130, 134, 139, 115, 133, 141, 116, 131, 126, 151, 134, 137, 136, 130, 122, 137, 119, 123, 121, 119, 126, 126, 131, 137, 114, 106, 148, 128, 121, 138, 139, 121, 132, 126, 117, 154, 132, 144, 133, 102, 146, 118, 112, 150, 137, 117, 126, 135, 116, 128, 129, 151, 122, 126, 133, 117, 123, 117, 106, 117, 146, 145, 112, 136, 128, 113, 110, 133, 130, 126, 133, 126, 126, 122, 122, 127, 127, 118, 141, 136, 119, 132, 138, 140, 121, 128, 134, 129, 106, 121, 127, 127, 128, 128, 124, 128, 129, 122, 124, 134, 99, 121, 121, 121, 126, 122, 131, 150, 110, 116, 117, 127, 142, 116, 117, 151, 122, 140, 127, 132, 132, 136, 111, 113, 119, 135, 120, 120, 131, 114, 119, 120, 132, 125, 110, 130, 136, 133, 119, 117, 124, 124, 127, 122, 110, 123, 119, 138, 110, 119, 132, 125, 131, 115, 124, 107, 130, 138, 113, 125, 138, 127, 130, 129, 118, 136, 108, 132, 124, 114, 117, 145, 134, 125, 132, 125, 128, 117, 133, 158, 123, 122, 145, 120, 112, 111, 108, 116, 117, 100, 133, 115, 111, 127, 113, 124, 137, 109, 134, 115, 138, 142, 118, 118, 118, 129, 114, 131, 135, 125, 119, 127, 125, 134, 123, 124, 128, 94, 115, 124, 139, 118, 132, 121, 125, 111, 116, 105, 144, 130, 120, 122, 121, 119, 127, 121, 120, 125, 110, 133, 143, 115, 141, 96, 117, 144, 141, 151, 123, 151, 124, 117, 127, 126, 118, 119, 124, 119, 129, 135, 133, 124, 112, 115, 131, 119, 107, 134, 125, 118, 129, 105, 131, 132, 117, 114, 119, 109, 149, 118, 120, 126, 128, 116, 118, 114, 127, 111, 134, 130, 125, 129, 112, 112, 112, 122, 122, 138, 119, 112, 120, 115, 123, 142, 130, 136, 132, 121, 131, 152, 119, 122, 123, 134, 117, 133, 117, 113, 126, 124, 111, 125, 133, 144, 135, 125, 126, 119, 122, 117, 118, 129, 132, 126, 113, 131, 144, 118, 135, 118, 118, 117, 118, 122, 113, 138, 111, 114, 131, 115, 126, 125, 107, 120, 123, 124, 129, 149, 134, 137, 126, 112, 118, 128, 120, 125, 135, 112, 127, 118, 119, 142, 135, 130, 124, 118, 143, 151, 146, 117, 99, 125, 110, 117, 135, 127, 125, 130, 130, 132, 122, 120, 126, 138, 127, 130, 121, 116, 144, 118, 138, 148, 135, 128, 106, 123, 127, 124, 134, 128, 118, 135, 132, 127, 115, 132, 109, 138, 134, 114, 118, 127, 129, 128, 138, 125, 120, 108, 105, 134, 142, 122, 116, 137, 136, 124, 128, 138, 124, 158, 106, 123, 112, 138, 130, 128, 125, 106, 131, 143, 120, 123, 129, 142, 119, 143, 137, 139, 130, 134, 121, 128, 118, 147, 123, 139, 140, 138, 99, 123, 133, 122, 114, 148, 118, 135, 124, 122, 148, 118, 124, 120, 111, 107, 114, 138, 128, 121, 125, 133, 132, 129, 127, 136, 127, 146, 130, 107, 134, 135, 121, 135, 131, 155, 133, 124, 107, 140, 127, 133, 115, 111, 131, 123, 104, 119, 134, 110, 124, 120, 118, 109, 135, 134, 130, 123, 130, 125, 146, 113, 137, 106, 110, 110, 158, 115, 115, 115, 136, 120, 127, 132, 134, 130, 129, 102, 141, 126, 100, 148, 121, 153, 118, 96, 122, 128, 132, 128, 125, 130, 133, 122, 122, 135, 121, 129, 116, 111, 130, 131, 124, 136, 156, 111, 126, 123, 129, 125, 140, 136, 123, 129, 125, 128, 130, 121, 114, 129, 134, 128, 110, 116, 124, 131, 129, 126, 123, 119, 139, 120, 110, 139, 120, 120, 115, 117, 100, 121, 146, 149, 133, 136, 124, 153, 121, 133, 123, 133, 124, 133, 116, 112, 97, 135, 123, 111, 114, 128, 116, 120, 128, 126, 129, 130, 119, 130, 136, 110, 143, 133, 116, 123, 112, 130, 108, 126, 114, 128, 145, 129, 138, 135, 126, 150, 117, 106, 134, 132, 112, 116, 132, 131, 130, 129, 114, 137, 122, 116, 108, 133, 115, 127, 130, 128, 126, 134, 110, 102, 119, 133, 132, 137, 129, 122, 118, 137, 127, 125, 121, 137, 132, 121, 133, 128, 132, 111, 120, 141, 123, 140, 137, 126, 128, 121, 113, 134, 112, 109, 125, 126, 131, 132, 136, 121, 125, 124, 114, 131, 116, 101, 104, 118, 99, 124, 120, 127, 131, 111, 130, 130, 133, 122, 157, 125, 127, 116, 119, 141, 137, 116, 130, 123, 118, 128, 132, 112, 120, 118, 102, 100, 145, 134, 126, 125, 145, 128, 130, 121, 99, 120, 110, 128, 142, 117, 122, 109, 135, 125, 121, 141, 132, 142, 116, 118, 139, 128, 123, 133, 112, 118, 123, 118, 130, 122, 119, 134, 142, 134, 124, 125, 129, 139, 118, 126, 132, 149, 142, 99, 106, 97, 130, 104, 128, 126, 111, 117, 115, 121, 142, 118, 128, 124, 113, 122, 99, 129, 125, 127, 132, 127, 136, 115, 120, 122, 118, 128, 114, 123, 123, 126, 131, 137, 129, 115, 123, 124, 133, 110, 118, 150, 121, 123, 112, 137, 133, 125, 115, 125, 127, 129, 116, 120, 124, 115, 118, 125, 119, 131, 118, 124, 138, 124, 126, 129, 121, 125, 139, 131, 131, 121, 132, 123, 108, 119, 126, 131, 128, 133, 120, 134, 142, 115, 132, 131, 133, 128, 113, 138, 120, 144, 117, 136, 130, 124, 127, 131, 133, 123, 154, 121, 138, 126, 130, 127, 135, 121, 124, 116, 121, 126, 130, 119, 122, 142, 120, 130, 119, 115, 141, 124, 118, 134, 127, 144, 111, 125, 108, 129, 125, 119, 134, 119, 111, 125, 133, 125, 166, 103, 111, 124, 134, 127, 131, 128, 145, 146, 126, 125, 137, 135, 118, 104, 115, 121, 122, 141, 109, 142, 125, 136, 130, 123, 135, 136, 118, 119, 135, 131, 122, 145, 125, 130, 100, 128, 130, 137, 135, 132, 136, 134, 130, 120, 123, 122, 103, 123, 124, 132, 112, 100, 146, 124, 146, 130, 127, 134, 112, 114, 124, 134, 123, 102, 129, 119, 122, 138, 126, 134, 130, 131, 141, 127, 123, 135, 128, 130, 139, 118, 128, 112, 136, 127, 132, 142, 130, 124, 106, 134, 118, 114, 128, 127, 124, 132, 113, 127, 144, 130, 122, 130, 121, 107, 127, 121, 158, 131, 113, 132, 118, 111, 115, 126, 108, 140, 131, 121, 117, 127, 119, 146, 132, 139, 122, 105, 124, 114, 105, 126, 112, 119, 108, 117, 131, 141, 113, 147, 140, 120, 122, 117, 108, 115, 141, 126, 116, 131, 135, 126, 123, 135, 144, 134, 131, 136, 103, 136, 128, 118, 109, 129, 116, 125, 134, 131, 143, 125, 115, 136, 123, 114, 129, 141, 133, 112, 137, 124, 113, 128, 136, 142, 123, 107, 133, 142, 111, 146, 110, 123, 146, 122, 128, 135, 116, 125, 132, 125, 131, 125, 134, 119, 127, 136, 131, 119, 131, 125, 120, 142, 106, 125, 106, 119, 134, 155, 128, 122, 111, 117, 138, 110, 130, 129, 125, 126, 125, 119, 112, 130, 118, 114, 124, 131, 141, 120, 116, 143, 124, 131, 150, 144, 125, 112, 131, 119, 129, 126, 104, 129, 128, 143, 111, 122, 149, 130, 119, 136, 141, 122, 119, 115, 146, 121, 146, 132, 139, 119, 112, 133, 129, 146, 138, 119, 115, 113, 118, 125, 118, 119, 145, 129, 115, 136, 142, 136, 101, 127, 150, 129, 140, 115, 126, 124, 116, 120, 138, 140, 107, 139, 122, 133, 139, 121, 120, 113, 116, 115, 123, 129, 127, 139, 125, 123, 130, 151, 144, 112, 121, 121, 123, 121, 153, 126, 153, 122, 133, 115, 133, 116, 137, 119, 132, 117, 124, 128, 120, 138, 134, 127, 121, 133, 114, 136, 131, 135, 124, 131, 131, 105, 129, 129, 118, 113, 120, 103, 136, 124, 136, 123, 106, 136, 128, 146, 124, 132, 126, 138, 121, 128, 135, 124, 126, 130, 124, 137, 127, 137, 123, 137, 118, 138, 111, 117, 118, 117, 125, 114, 129, 134, 129, 131, 124, 119, 126, 127, 153, 118, 117, 117, 113, 120, 117, 126, 126, 106, 135, 150, 131, 123, 144, 130, 126, 127, 116, 119, 130, 112, 120, 129, 139, 130, 126, 131, 127, 120, 127, 116, 134, 122, 136, 110, 104, 136, 113, 125, 114, 127, 136, 115, 120, 134, 142, 117, 122, 125, 130, 129, 114, 119, 126, 123, 115, 129, 124, 127, 134, 118, 117, 121, 123, 61, 134, 130, 111, 125, 122, 114, 117, 145, 114, 111, 119, 121, 129, 118, 122, 139, 137, 112, 131, 125, 109, 121, 126, 111, 139, 112, 117, 132, 107, 126, 144, 124, 135, 132, 125, 107, 145, 128, 125, 132, 122, 132, 128, 131, 133, 119, 143, 144, 127, 128, 126, 130, 137, 120, 142, 128, 133, 128, 125, 104, 129, 115, 130, 133, 111, 130, 117, 156, 137, 136, 119, 106, 120, 125, 135, 134, 125, 125, 132, 135, 142, 112, 119, 134, 111, 130, 127, 129, 127, 130, 135, 123, 123, 113, 109, 131, 131, 122, 133, 123, 124, 124, 122, 129, 110, 127, 124, 137, 118, 137, 142, 120, 132, 119, 109, 112, 124, 127, 127, 123, 140, 104, 106, 119, 113, 131, 135, 132, 117, 113, 130, 137, 127, 129, 136, 139, 121, 118, 128, 140, 130, 123, 130, 118, 128, 113, 136, 119, 122, 122, 111, 116, 135, 135, 140, 117, 123, 137, 135, 111, 123, 120, 110, 129, 133, 116, 140, 140, 134, 122, 118, 111, 136, 122, 129, 135, 120, 133, 123, 117, 127, 132, 130, 125, 118, 132, 116, 133, 120, 118, 120, 115, 124, 115, 137, 118, 124, 140, 122, 133, 125, 121, 117, 114, 140, 140, 114, 124, 118, 130, 126, 123, 118, 125, 119, 83, 116, 129, 116, 129, 128, 133, 125, 138, 122, 146, 107, 134, 128, 116, 111, 116, 133, 144, 135, 122, 133, 123, 117, 129, 128, 133, 133, 107, 120, 119, 118, 121, 124, 139, 118, 121, 123, 131, 118, 141, 131, 120, 127, 122, 139, 139, 121, 114, 123, 88, 130, 134, 110, 130, 136, 110, 118, 117, 126, 140, 121, 152, 132, 113, 149, 130, 116, 118, 115, 133, 132, 126, 124, 129, 134, 119, 122, 136, 132, 121, 129, 136, 127, 111, 117, 118, 137, 116, 127, 120, 146, 119, 127, 136, 128, 135, 119, 139, 120, 132, 139, 147, 135, 128, 126, 133, 115, 124, 120, 133, 131, 129, 122, 126, 125, 139, 131, 116, 118, 133, 125, 124, 140, 130, 129, 116, 132, 110, 139, 114, 120, 126, 120, 126, 135, 133, 103, 127, 138, 117, 121, 129, 129, 118, 109, 120, 134, 125, 120, 117, 127, 121, 144, 111, 120, 119, 126, 141, 122, 125, 136, 115, 122, 113, 128, 123, 126, 111, 123, 118, 124, 124, 129, 113, 137, 135, 138, 117, 131, 129, 122, 109, 127, 114, 132, 119, 145, 129, 124, 122, 116, 130, 125, 134, 129, 123, 118, 120, 142, 125, 136, 135, 114, 140, 120, 133, 133, 126, 134, 114, 128, 119, 123, 114, 140, 134, 133, 102, 122, 135, 130, 136, 124, 139, 126, 117, 128, 130, 133, 134, 115, 139, 135, 118, 124, 141, 122, 126, 120, 126, 123, 132, 127, 128, 128, 124, 127, 132, 118, 135, 132, 137, 124, 121, 115, 114, 126, 135, 142, 118, 115, 109, 128, 124, 137, 128, 120, 124, 119, 121, 116, 133, 130, 118, 129, 138, 139, 138, 141, 113, 115, 121, 127, 120, 129, 139, 113, 139, 145, 129, 114, 115, 135, 110, 102, 139, 138, 131, 128, 131, 141, 158, 124, 101, 126, 101, 145, 139, 130, 143, 124, 125, 111, 118, 110, 129, 139, 130, 132, 131, 121, 127, 131, 106, 116, 138, 115, 152, 121, 141, 134, 133, 113, 164, 119, 132, 125, 128, 135, 137, 122, 130, 129, 143, 134, 136, 138, 141, 139, 130, 119, 130, 135, 120, 135, 132, 128, 125, 126, 117, 121, 136, 122, 127, 133, 121, 113, 128, 116, 135, 138, 135, 115, 128, 137, 127, 139, 123, 122, 136, 110, 119, 139, 114, 129, 130, 132, 133, 130, 106, 123, 131, 139, 150, 133, 118, 126, 123, 119, 121, 135, 115, 153, 122, 126, 128, 139, 115, 130, 132, 102, 125, 129, 125, 113, 130, 106, 106, 129, 124, 115, 111, 156, 110, 122, 139, 122, 113, 134, 134, 123, 115, 127, 132, 126, 111, 127, 105, 110, 130, 108, 105, 125, 135, 113, 120, 130, 111, 107, 142, 111, 122, 122, 121, 119, 123, 128, 119, 116, 128, 91, 145, 145, 120, 127, 135, 123, 122, 124, 139, 143, 129, 118, 116, 124, 146, 128, 136, 134, 112, 133, 125, 125, 123, 127, 125, 146, 106, 123, 120, 125, 127, 125, 129, 137, 147, 112, 117, 122, 120, 126, 130, 131, 142, 107, 132, 134, 129, 117, 122, 147, 138, 136, 125, 122, 121, 140, 121, 140, 142, 127, 130, 115, 128, 139, 123, 106, 132, 142, 128, 109, 133, 105, 120, 116, 131, 136, 121, 119, 134, 116, 113, 127, 120, 119, 112, 130, 124, 143, 117, 123, 135, 141, 134, 131, 121, 126, 125, 118, 150, 107, 121, 133, 106, 136, 132, 131, 120, 118, 126, 120, 121, 131, 129, 140, 132, 139, 123, 152, 90, 122, 133, 134, 150, 129, 113, 122, 121, 125, 129, 146, 128, 110, 135, 120, 118, 120, 103, 132, 109, 132, 122, 116, 160, 124, 138, 115, 138, 128, 113, 110, 109, 111, 129, 119, 121, 123, 118, 123, 130, 118, 127, 121, 120, 125, 100, 118, 129, 152, 125, 119, 107, 110, 140, 136, 127, 112, 123, 138, 125, 120, 145, 134, 127, 126, 127, 121, 122, 131, 115, 127, 124, 136, 115, 118, 124, 130, 117, 130, 137, 114, 113, 111, 140, 124, 125, 127, 117, 125, 125, 138, 130, 127, 122, 115, 125, 125, 130, 138, 128, 120, 134, 110, 121, 127, 126, 112, 113, 128, 123, 124, 137, 123, 139, 126, 110, 120, 120, 127, 130, 119, 113, 139, 109, 137, 144, 142, 130, 114, 126, 111, 123, 127, 117, 122, 130, 126, 115, 122, 112, 123, 116, 132, 117, 112, 117, 128, 119, 136, 131, 113, 127, 135, 130, 118, 123, 136, 118, 114, 118, 109, 119, 126, 117, 119, 139, 112, 116, 119, 124, 124, 115, 143, 111, 123, 124, 140, 132, 123, 119, 118, 127, 131, 120, 131, 110, 116, 109, 122, 133, 136, 133, 140, 112, 117, 132, 126, 115, 113, 122, 132, 127, 120, 99, 117, 122, 142, 117, 115, 139, 130, 115, 131, 127, 148, 110, 132, 115, 128, 117, 130, 109, 151, 124, 127, 137, 140, 122, 129, 147, 119, 118, 124, 134, 122, 116, 133, 132, 137, 113, 135, 127, 128, 120, 129, 136, 135, 126, 128, 117, 140, 133, 122, 121, 148, 135, 119, 143, 127, 116, 112, 133, 139, 140, 121, 121, 124, 132, 136, 136, 125, 129, 119, 135, 124, 133, 153, 128, 119, 117, 132, 124, 128, 124, 123, 111, 124, 146, 132, 128, 99, 134, 123, 111, 131, 125, 122, 109, 114, 121, 111, 123, 105, 123, 125, 103, 127, 127, 105, 132, 115, 132, 126, 129, 130, 124, 123, 132, 130, 102, 118, 113, 115, 121, 119, 128, 134, 123, 132, 139, 125, 115, 125, 146, 130, 124, 130, 121, 127, 132, 119, 128, 133, 125, 131, 133, 123, 138, 113, 125, 135, 135, 127, 135, 118, 147, 119, 123, 141, 122, 116, 124, 111, 121, 131, 125, 139, 124, 128, 117, 121, 122, 116, 119, 121, 129, 112, 119, 114, 111, 101, 140, 124, 116, 117, 118, 130, 121, 120, 137, 133, 126, 140, 126, 91, 128, 117, 130, 122, 131, 122, 121, 125, 132, 122, 116, 167, 121, 124, 118, 120, 116, 126, 121, 125, 120, 118, 118, 128, 124, 106, 109, 135, 108, 139, 104, 140, 114, 129, 131, 118, 122, 126, 133, 154, 111, 136, 131, 129, 118, 116, 119, 122, 129, 127, 117, 97, 126, 111, 120, 124, 131, 133, 123, 119, 143, 127, 136, 132, 113, 116, 130, 110, 139, 135, 127, 113, 136, 113, 146, 145, 117, 120, 137, 136, 119, 123, 123, 120, 118, 122, 130, 129, 124, 135, 115, 112, 121, 135, 127, 132, 124, 131, 128, 125, 141, 129, 111, 114, 138, 116, 134, 130, 126, 125, 121, 127, 125, 128, 128, 118, 130, 132, 124, 129, 121, 128, 153, 119, 115, 131, 130, 118, 135, 124, 151, 128, 123, 130, 127, 130, 129, 125, 127, 126, 126, 122, 129, 120, 137, 128, 126, 126, 132, 125, 130, 114, 143, 127, 119, 139, 154, 120, 130, 127, 119, 119, 119, 115, 129, 128, 123, 126, 120, 117, 116, 120, 158, 120, 136, 121, 116, 110, 130, 125, 150, 122, 143, 123, 129, 154, 120, 122, 139, 137, 136, 128, 134, 115, 109, 125, 122, 140, 127, 124, 118, 139, 131, 119, 120, 118, 123, 129, 120, 131, 136, 125, 116, 121, 119, 125, 119, 138, 126, 117, 107, 123, 122, 121, 124, 108, 121, 143, 122, 118, 130, 110, 136, 129, 116, 151, 131, 128, 125, 142, 116, 127, 127, 140, 119, 124, 126, 125, 117, 126, 124, 116, 105, 134, 125, 120, 126, 130, 101, 111, 139, 118, 131, 124, 140, 133, 123, 124, 123, 141, 125, 139, 125, 123, 120, 107, 117, 130, 124, 129, 125, 134, 149, 122, 129, 119, 130, 121, 117, 128, 135, 131, 138, 134, 124, 123, 120, 134, 129, 119, 117, 123, 127, 128, 126, 112, 119, 128, 130, 137, 149, 145, 123, 135, 114, 116, 140, 111, 118, 127, 122, 107, 120, 131, 119, 127, 123, 123, 108, 139, 119, 125, 134, 135, 119, 130, 135, 135, 127, 134, 141, 130, 117, 116, 132, 119, 120, 132, 132, 138, 125, 129, 123, 111, 123, 125, 132, 128, 126, 139, 129, 118, 121, 125, 116, 136, 129, 126, 116, 124, 121, 124, 117, 148, 124, 124, 111, 135, 143, 138, 128, 123, 127, 118, 125, 123, 126, 109, 140, 118, 121, 130, 109, 115, 137, 100, 115, 108, 141, 113, 110, 129, 123, 128, 125, 125, 144, 127, 122, 122, 123, 121, 117, 106, 123, 123, 133, 116, 136, 145, 121, 130, 122, 125, 148, 111, 123, 122, 143, 108, 108, 118, 126, 127, 121, 136, 145, 111, 132, 127, 123, 126, 125, 122, 130, 141, 111, 111, 141, 119, 137, 128, 110, 121, 126, 122, 136, 124, 115, 128, 132, 122, 138, 137, 112, 134, 118, 112, 123, 138, 144, 113, 132, 151, 122, 125, 121, 117, 133, 139, 123, 115, 143, 126, 108, 136, 118, 145, 131, 117, 126, 123, 123, 127, 134, 133, 112, 126, 127, 130, 139, 134, 122, 116, 121, 117, 127, 124, 136, 145, 125, 123, 123, 137, 121, 125, 116, 137, 128, 120, 145, 115, 115, 130, 116, 124, 128, 139, 124, 121, 127, 118, 133, 119, 127, 132, 118, 151, 131, 138, 130, 135, 129, 129, 133, 111, 97, 122, 120, 126, 128, 129, 106, 117, 125, 115, 126, 135, 124, 127, 136, 124, 125, 120, 120, 115, 114, 131, 129, 108, 130, 135, 122, 133, 119, 122, 146, 119, 114, 118, 126, 125, 130, 111, 129, 127, 122, 124, 124, 149, 136, 131, 114, 128, 138, 125, 121, 119, 113, 108, 126, 110, 144, 122, 125, 108, 114, 127, 117, 119, 124, 114, 144, 131, 118, 134, 117, 129, 122, 128, 131, 121, 125, 120, 146, 136, 139, 131, 133, 116, 139, 128, 116, 140, 134, 137, 130, 139, 115, 122, 134, 123, 131, 143, 116, 149, 119, 109, 126, 134, 133, 128, 106, 125, 145, 127, 121, 115, 106, 126, 124, 131, 124, 132, 130, 121, 119, 121, 133, 144, 138, 130, 126, 122, 123, 121, 123, 128, 135, 138, 156, 114, 135, 114, 124, 111, 118, 113, 133, 118, 125, 117, 109, 135, 127, 120, 122, 129, 126, 135, 126, 138, 122, 144, 125, 119, 139, 123, 118, 137, 115, 134, 116, 125, 120, 124, 123, 124, 158, 108, 107, 114, 130, 130, 131, 129, 131, 118, 113, 121, 132, 127, 111, 128, 135, 123, 136, 144, 138, 131, 118, 109, 119, 145, 139, 115, 134, 112, 119, 134, 102, 133, 127, 124, 133, 129, 116, 130, 132, 128, 128, 130, 131, 110, 121, 124, 122, 141, 129, 116, 126, 124, 138, 109, 129, 128, 127, 118, 120, 132, 125, 128, 141, 117, 109, 130, 113, 116, 111, 106, 122, 132, 113, 151, 145, 117, 118, 122, 137, 136, 132, 111, 100, 130, 120, 140, 125, 127, 114, 110, 123, 115, 129, 126, 126, 131, 118, 130, 123, 111, 127, 149, 125, 153, 122, 109, 134, 156, 105, 113, 121, 113, 137, 114, 132, 119, 115, 133, 133, 128, 125, 108, 128, 115, 112, 135, 151, 135, 126, 115, 131, 136, 111, 137, 119, 133, 134, 138, 122, 137, 121, 125, 116, 138, 130, 128, 124, 124, 117, 128, 99, 126, 126, 130, 116, 126, 118, 114, 118, 119, 127, 141, 127, 129, 108, 129, 108, 130, 121, 117, 136, 129, 125, 124, 131, 122, 126, 124, 120, 129, 120, 144, 125, 128, 139, 135, 135, 126, 122, 139, 116, 126, 118, 126, 131, 118, 125, 112, 143, 114, 151, 140, 118, 130, 117, 122, 114, 132, 138, 119, 120, 125, 131, 127, 112, 130, 119, 112, 122, 125, 128, 137, 123, 130, 116, 111, 136, 148, 117, 127, 130, 132, 125, 142, 133, 111, 115, 123, 115, 126, 101, 123, 132, 126, 133, 127, 141, 122, 127, 146, 132, 137, 146, 123, 127, 104, 124, 120, 112, 104, 127, 137, 146, 113, 143, 125, 119, 135, 96, 126, 119, 129, 141, 144, 153, 134, 120, 106, 132, 125, 128, 124, 132, 133, 122, 113, 131, 118, 114, 125, 129, 119, 123, 124, 126, 128, 128, 112, 115, 136, 136, 119, 116, 124, 127, 137, 127, 128, 126, 122, 121, 122, 104, 124, 119, 112, 125, 109, 123, 142, 136, 110, 125, 123, 128, 108, 133, 128, 121, 117, 131, 103, 123, 120, 139, 121, 102, 142, 124, 139, 121, 123, 124, 109, 127, 114, 114, 110, 130, 128, 105, 129, 111, 130, 113, 125, 115, 113, 120, 148, 128, 123, 131, 108, 112, 132, 121, 109, 140, 136, 126, 106, 130, 128, 121, 130, 119, 126, 114, 121, 130, 126, 133, 122, 119, 101, 143, 129, 123, 124, 139, 138, 125, 126, 133, 115, 137, 117, 125, 112, 137, 125, 128, 133, 139, 120, 120, 148, 112, 135, 112, 121, 103, 127, 119, 124, 116, 107, 135, 112, 130, 132, 129, 128, 116, 117, 118, 127, 115, 120, 132, 114, 121, 137, 140, 135, 123, 127, 141, 137, 131, 122, 127, 99, 122, 128, 139, 118, 122, 120, 124, 115, 125, 132, 126, 124, 118, 124, 124, 121, 123, 140, 117, 130, 116, 131, 154, 127, 125, 126, 143, 119, 143, 131, 108, 121, 126, 156, 125, 117, 127, 112, 121, 141, 115, 132, 122, 124, 134, 123, 123, 127, 123, 116, 120, 146, 123, 126, 115, 132, 122, 148, 138, 131, 125, 123, 107, 121, 131, 112, 128, 111, 120, 126, 114, 125, 120, 118, 123, 110, 111, 124, 130, 130, 126, 124, 132, 149, 135, 127, 129, 110, 121, 121, 108, 117, 148, 129, 131, 129, 132, 130, 106, 112, 123, 125, 114, 123, 117, 131, 132, 137, 143, 129, 123, 115, 128, 125, 124, 123, 129, 122, 128, 122, 113, 115, 116, 119, 111, 123, 98, 126, 127, 100, 145, 106, 116, 112, 127, 126, 123, 119, 128, 125, 127, 117, 118, 130, 127, 124, 107, 126, 126, 129, 116, 145, 130, 123, 123, 117, 118, 122, 116, 116, 149, 118, 131, 124, 121, 112, 130, 113, 140, 129, 126, 133, 122, 109, 116, 124, 129, 118, 117, 128, 133, 139, 127, 133, 110, 105, 130, 108, 131, 109, 133, 109, 113, 141, 108, 135, 105, 138, 125, 110, 124, 124, 123, 128, 129, 133, 123, 131, 130, 145, 129, 125, 129, 126, 115, 113, 121, 107, 120, 139, 136, 127, 110, 117, 117, 130, 131, 129, 121, 121, 135, 116, 115, 147, 118, 126, 129, 116, 143, 106, 119, 127, 129, 119, 117, 123, 105, 130, 121, 132, 132, 116, 115, 118, 129, 128, 140, 126, 137, 129, 124, 119, 123, 157, 135, 129, 119, 121, 143, 112, 117, 134, 126, 137, 116, 132, 138, 140, 129, 122, 123, 131, 100, 124, 132, 107, 126, 126, 108, 128, 113, 109, 102, 102, 115, 134, 112, 124, 127, 119, 132, 125, 118, 122, 133, 170, 156, 139, 125, 120, 119, 123, 116, 121, 116, 135, 127, 87, 121, 102, 129, 128, 117, 124, 126, 123, 118, 133, 104, 135, 114, 127, 133, 143, 139, 142, 143, 131, 130, 134, 137, 123, 148, 139, 107, 115, 134, 138, 140, 112, 139, 128, 116, 129, 106, 119, 110, 120, 123, 123, 134, 129, 125, 137, 132, 122, 126, 145, 133, 116, 143, 125, 99, 129, 118, 133, 127, 111, 133, 116, 116, 123, 125, 126, 124, 121, 121, 119, 123, 114, 130, 123, 113, 112, 131, 119, 116, 101, 122, 119, 110, 128, 119, 125, 129, 135, 132, 126, 126, 124, 128, 113, 121, 119, 116, 117, 124, 111, 136, 126, 134, 127, 114, 131, 113, 127, 108, 126, 121, 117, 112, 134, 140, 116, 135, 112, 122, 114, 125, 132, 120, 128, 136, 133, 137, 127, 127, 155, 121, 118, 127, 117, 129, 130, 127, 119, 123, 132, 137, 123, 127, 120, 132, 125, 121, 117, 132, 149, 119, 149, 127, 119, 121, 109, 110, 113, 120, 131, 122, 138, 127, 118, 133, 127, 124, 114, 135, 151, 117, 112, 111, 126, 118, 134, 136, 141, 118, 129, 121, 134, 144, 114, 119, 113, 125, 116, 134, 137, 131, 111, 116, 119, 121, 123, 122, 141, 117, 139, 122, 124, 132, 134, 141, 137, 119, 132, 121, 124, 121, 118, 104, 151, 139, 136, 108, 110, 139, 127, 118, 119, 103, 139, 127, 126, 136, 129, 124, 123, 122, 125, 129, 142, 126, 122, 123, 129, 112, 123, 102, 133, 117, 137, 125, 118, 118, 125, 121, 129, 123, 120, 135, 108, 126, 117, 115, 99, 127, 119, 120, 152, 138, 129, 138, 138, 118, 117, 119, 127, 119, 113, 121, 116, 130, 131, 129, 144, 118, 116, 121, 114, 110, 126, 128, 113, 150, 109, 126, 130, 115, 132, 109, 128, 123, 137, 136, 137, 115, 120, 123, 127, 124, 135, 141, 141, 140, 102, 101, 132, 113, 113, 125, 113, 133, 115, 128, 123, 110, 135, 137, 139, 148, 112, 110, 106, 117, 123, 126, 116, 146, 99, 138, 126, 126, 117, 129, 116, 124, 122, 145, 147, 138, 132, 111, 131, 139, 120, 128, 114, 94, 114, 105, 125, 120, 119, 117, 125, 111, 120, 141, 105, 122, 130, 110, 133, 120, 132, 109, 136, 132, 114, 113, 120, 133, 115, 115, 115, 102, 138, 109, 121, 136, 124, 129, 114, 116, 144, 138, 118, 131, 131, 148, 112, 126, 137, 140, 131, 138, 121, 142, 128, 87, 117, 125, 136, 124, 112, 121, 139, 114, 117, 112, 125, 124, 127, 106, 105, 131, 116, 117, 127, 137, 133, 132, 128, 118, 111, 121, 128, 105, 121, 119, 119, 122, 113, 133, 118, 123, 122, 111, 122, 125, 130, 123, 125, 117, 137, 136, 131, 115, 111, 140, 114, 114, 127, 121, 129, 132, 121, 113, 110, 110, 121, 137, 143, 131, 108, 128, 108, 142, 124, 120, 124, 153, 128, 125, 145, 119, 112, 114, 126, 126, 113, 125, 140, 114, 131, 119, 118, 119, 121, 126, 110, 113, 122, 130, 125, 121, 120, 117, 143, 125, 146, 153, 87, 129, 132, 102, 128, 130, 131, 111, 136, 123, 108, 137, 114, 94, 110, 132, 117, 110, 119, 143, 126, 125, 112, 122, 133, 138, 140, 117, 127, 107, 135, 131, 133, 133, 101, 134, 134, 130, 121, 128, 122, 120, 117, 128, 124, 129, 126, 132, 124, 131, 122, 130, 117, 118, 144, 118, 127, 106, 115, 111, 128, 112, 121, 115, 124, 125, 112, 109, 135, 129, 122, 108, 150, 114, 128, 126, 141, 121, 124, 129, 120, 143, 121, 122, 112, 137, 128, 121, 108, 133, 133, 118, 111, 123, 98, 110, 153, 145, 132, 115, 142, 143, 99, 116, 113, 108, 114, 126, 118, 128, 129, 121, 135, 127, 111, 132, 145, 124, 111, 114, 133, 122, 129, 120, 132, 112, 132, 130, 148, 121, 126, 105, 140, 101, 137, 121, 126, 129, 125, 108, 123, 118, 122, 123, 114, 123, 115, 144, 113, 124, 126, 126, 117, 119, 127, 122, 135, 108, 129, 114, 134, 125, 128, 104, 115, 106, 107, 145, 118, 119, 117, 105, 135, 121, 118, 117, 111, 136, 117, 132, 122, 126, 146, 138, 120, 119, 112, 114, 122, 130, 134, 127, 134, 117, 126, 114, 125, 124, 123, 133, 127, 148, 125, 113, 130, 119, 129, 102, 134, 144, 122, 133, 104, 132, 120, 106, 133, 113, 122, 143, 132, 116, 117, 124, 120, 109, 120, 127, 126, 123, 113, 126, 108, 120, 114, 105, 130, 153, 122, 117, 128, 114, 146, 144, 124, 130, 136, 111, 122, 142, 142, 116, 132, 126, 123, 112, 114, 120, 123, 128, 138, 126, 110, 126, 147, 124, 130, 107, 149, 134, 127, 116, 126, 115, 114, 130, 98, 125, 132, 131, 130, 147, 139, 133, 125, 115, 136, 136, 129, 136, 140, 141, 126, 119, 115, 127, 121, 128, 128, 106, 98, 103, 123, 128, 127, 108, 135, 132, 134, 117, 125, 125, 106, 119, 132, 145, 132, 124, 126, 88, 121, 131, 131, 129, 127, 114, 122, 115, 131, 120, 133, 120, 119, 143, 127, 129, 128, 113, 128, 119, 124, 127, 140, 134, 127, 122, 130, 127, 129, 135, 122, 137, 107, 124, 121, 137, 127, 127, 105, 133, 120, 142, 124, 120, 128, 116, 124, 133, 136, 110, 136, 138, 130, 131, 135, 109, 146, 116, 143, 118, 109, 116, 118, 132, 137, 116, 111, 108, 131, 140, 109, 129, 134, 115, 110, 115, 114, 127, 118, 118, 122, 111, 123, 136, 116, 116, 129, 125, 133, 122, 129, 131, 126, 161, 111, 128, 121, 144, 116, 132, 137, 153, 120, 128, 128, 126, 122, 137, 130, 124, 125, 133, 128, 120, 115, 147, 116, 117, 123, 124, 117, 126, 134, 124, 120, 135, 122, 123, 131, 116, 116, 108, 143, 126, 144, 158, 113, 138, 115, 134, 122, 128, 119, 130, 121, 119, 123, 120, 115, 123, 116, 125, 117, 141, 117, 143, 142, 130, 132, 133, 115, 128, 133, 116, 135, 136, 105, 125, 131, 124, 135, 123, 127, 128, 138, 105, 128, 112, 113, 136, 127, 144, 131, 151, 113, 126, 118, 139, 120, 135, 122, 115, 120, 124, 108, 111, 131, 119, 139, 120, 112, 134, 121, 113, 151, 136, 143, 135, 107, 118, 125, 136, 125, 136, 116, 137, 135, 132, 101, 133, 123, 112, 110, 123, 122, 117, 131, 124, 117, 124, 134, 126, 116, 132, 123, 116, 128, 133, 148, 131, 115, 117, 139, 124, 98, 115, 109, 112, 130, 145, 125, 122, 120, 117, 125, 127, 133, 112, 127, 108, 111, 110, 131, 119, 132, 121, 115, 130, 120, 127, 124, 134, 138, 129, 136, 136, 126, 129, 109, 131, 119, 131, 130, 121, 126, 146, 121, 132, 138, 117, 119, 120, 124, 132, 121, 144, 131, 130, 97, 114, 133, 139, 124, 128, 128, 147, 115, 113, 117, 101, 101, 126, 120, 114, 132, 126, 134, 128, 114, 139, 126, 123, 116, 128, 114, 119, 112, 123, 132, 128, 116, 122, 117, 130, 143, 140, 139, 140, 129, 121, 138, 128, 124, 135, 116, 139, 123, 139, 118, 119, 115, 118, 149, 124, 125, 120, 126, 116, 129, 123, 124, 121, 110, 117, 95, 120, 117, 120, 126, 134, 107, 121, 125, 119, 127, 146, 141, 110, 123, 120, 135, 119, 123, 148, 138, 123, 138, 114, 128, 138, 132, 131, 158, 142, 128, 123, 129, 135, 124, 145, 129, 126, 125, 116, 117, 114, 111, 121, 103, 137, 119, 143, 126, 133, 132, 113, 127, 136, 147, 122, 124, 129, 129, 113, 135, 132, 127, 119, 112, 111, 108, 144, 115, 118, 134, 115, 114, 139, 113, 125, 140, 118, 121, 130, 124, 131, 116, 128, 142, 83, 131, 113, 131, 128, 119, 123, 127, 115, 131, 124, 117, 129, 112, 121, 125, 129, 136, 122, 126, 123, 129, 132, 140, 130, 114, 130, 129, 127, 130, 136, 120, 131, 122, 121, 128, 127, 130, 127, 123, 111, 123, 131, 114, 125, 140, 135, 131, 125, 127, 111, 134, 139, 128, 141, 123, 121, 129, 130, 140, 129, 129, 122, 124, 133, 116, 116, 136, 125, 114, 131, 147, 119, 137, 133, 111, 125, 127, 127, 126, 136, 132, 140, 154, 134, 127, 128, 150, 123, 120, 133, 120, 123, 104, 144, 133, 116, 137, 126, 119, 116, 117, 138, 130, 122, 135, 131, 119, 131, 133, 116, 124, 132, 136, 121, 142, 115, 122, 139, 128, 130, 124, 119, 114, 115, 137, 123, 133, 98, 118, 138, 113, 109, 131, 111, 142, 121, 122, 122, 125, 114, 117, 121, 126, 134, 117, 120, 136, 112, 110, 128, 112, 131, 120, 115, 117, 115, 126, 125, 133, 111, 137, 118, 132, 133, 127, 137, 124, 137, 115, 111, 133, 121, 112, 112, 128, 140, 133, 143, 117, 112, 131, 123, 126, 119, 114, 114, 125, 115, 130, 112, 142, 124, 120, 131, 132, 130, 125, 129, 118, 126, 108, 119, 121, 127, 135, 133, 112, 147, 129, 122, 138, 128, 160, 90, 131, 119, 135, 144, 106, 128, 126, 122, 102, 129, 124, 127, 130, 125, 116, 118, 126, 109, 112, 111, 113, 126, 135, 126, 133, 132, 124, 121, 124, 130, 148, 137, 131, 130, 118, 129, 126, 118, 144, 127, 141, 122, 130, 119, 116, 114, 141, 133, 159, 120, 107, 148, 126, 119, 119, 129, 141, 118, 139, 132, 101, 90, 140, 124, 138, 128, 118, 140, 113, 128, 128, 108, 108, 136, 102, 112, 129, 142, 122, 112, 133, 152, 116, 123, 119, 131, 103, 127, 112, 137, 133, 104, 126, 125, 117, 128, 124, 120, 130, 117, 128, 122, 140, 125, 129, 113, 122, 75, 128, 119, 134, 116, 122, 123, 114, 129, 143, 135, 132, 138, 128, 133, 106, 127, 125, 107, 128, 122, 108, 128, 117, 109, 121, 118, 115, 138, 120, 127, 131, 115, 122, 112, 128, 125, 100, 109, 130, 126, 135, 122, 133, 124, 131, 148, 140, 126, 141, 137, 88, 126, 123, 130, 125, 112, 121, 125, 112, 110, 146, 114, 127, 135, 125, 131, 140, 123, 140, 138, 136, 134, 109, 131, 110, 115, 147, 136, 120, 113, 129, 129, 133, 124, 112, 119, 146, 132, 129, 119, 121, 90, 135, 105, 116, 121, 124, 137, 122, 123, 132, 148, 124, 122, 134, 114, 119, 131, 120, 129, 148, 117, 139, 141, 122, 129, 105, 134, 121, 125, 132, 128, 131, 112, 139, 111, 127, 116, 109, 120, 125, 111, 120, 136, 108, 118, 128, 104, 96, 126, 142, 125, 114, 125, 127, 141, 137, 114, 121, 120, 130, 134, 127, 119, 127, 123, 108, 116, 137, 139, 116, 137, 116, 102, 133, 111, 127, 117, 118, 144, 135, 126, 129, 139, 139, 127, 123, 111, 140, 130, 124, 116, 123, 121, 126, 121, 116, 124, 129, 144, 134, 142, 143, 152, 130, 128, 117, 143, 124, 130, 114, 114, 127, 113, 115, 135, 135, 145, 123, 136, 130, 130, 122, 138, 134, 131, 139, 136, 132, 127, 115, 121, 138, 120, 131, 123, 125, 125, 128, 127, 123, 131, 102, 118, 114, 127, 155, 143, 117, 124, 124, 136, 133, 113, 121, 114, 123, 135, 117, 120, 165, 130, 127, 135, 123, 136, 112, 120, 135, 115, 130, 141, 126, 123, 131, 126, 125, 127, 114, 119, 116, 113, 128, 126, 123, 113, 125, 109, 116, 111, 135, 144, 122, 128, 134, 142, 118, 124, 105, 117, 121, 148, 138, 120, 137, 127, 126, 120, 130, 109, 143, 121, 122, 126, 122, 120, 141, 114, 123, 121, 114, 129, 133, 119, 125, 126, 129, 116, 120, 114, 113, 138, 119, 139, 119, 141, 128, 119, 119, 117, 112, 127, 137, 137, 113, 140, 100, 132, 127, 140, 131, 132, 127, 138, 132, 126, 124, 133, 113, 140, 138, 121, 121, 123, 114, 142, 124, 121, 127, 134, 128, 124, 128, 110, 136, 140, 113, 120, 118, 133, 122, 118, 138, 130, 99, 154, 107, 123, 121, 138, 115, 121, 141, 116, 133, 145, 122, 123, 133, 135, 121, 128, 132, 129, 108, 128, 138, 129, 129, 124, 116, 128, 118, 107, 135, 139, 130, 144, 139, 139, 121, 113, 123, 126, 134, 105, 129, 119, 114, 132, 138, 132, 111, 136, 111, 125, 136, 141, 116, 114, 122, 118, 117, 114, 123, 117, 130, 126, 159, 140, 101, 102, 130, 110, 117, 107, 119, 116, 135, 118, 134, 145, 116, 127, 142, 122, 119, 141, 128, 110, 121, 108, 127, 127, 118, 129, 129, 121, 136, 133, 123, 134, 121, 98, 120, 127, 118, 126, 115, 131, 111, 92, 107, 128, 128, 136, 119, 134, 115, 130, 127, 129, 116, 126, 123, 135, 145, 128, 128, 149, 141, 110, 91, 105, 126, 123, 125, 119, 119, 134, 134, 137, 132, 124, 146, 142, 125, 130, 117, 126, 112, 127, 140, 125, 121, 110, 129, 131, 134, 112, 104, 137, 115, 130, 130, 109, 105, 140, 123, 138, 117, 110, 128, 126, 108, 131, 120, 128, 147, 136, 132, 120, 111, 143, 119, 146, 102, 128, 128, 113, 123, 124, 128, 114, 157, 128, 109, 145, 101, 131, 132, 119, 131, 130, 108, 115, 117, 123, 109, 120, 131, 131, 111, 143, 124, 129, 144, 118, 116, 119, 142, 134, 124, 129, 134, 132, 123, 109, 136, 121, 112, 129, 103, 113, 116, 132, 118, 133, 104, 135, 120, 132, 140, 138, 114, 110, 120, 130, 135, 116, 98, 126, 111, 117, 123, 103, 145, 117, 136, 117, 131, 132, 128, 125, 124, 126, 114, 137, 117, 122, 126, 119, 113, 118, 125, 123, 130, 125, 128, 139, 138, 117, 113, 101, 117, 129, 114, 127, 121, 149, 124, 121, 124, 111, 139, 92, 122, 137, 98, 125, 120, 153, 139, 124, 138, 114, 135, 95, 103, 123, 122, 138, 146, 138, 111, 125, 108, 125, 110, 138, 139, 118, 107, 126, 117, 120, 126, 135, 120, 124, 122, 125, 107, 125, 131, 128, 115, 148, 124, 121, 120, 128, 122, 116, 130, 116, 140, 124, 121, 115, 133, 130, 110, 112, 143, 125, 115, 130, 137, 131, 128, 126, 128, 123, 137, 126, 112, 136, 138, 124, 127, 128, 119, 144, 120, 128, 125, 125, 142, 125, 136, 144, 105, 128, 114, 121, 117, 139, 118, 127, 133, 124, 147, 132, 106, 131, 118, 150, 126, 129, 112, 121, 104, 114, 129, 136, 128, 117, 126, 125, 123, 122, 105, 110, 123, 121, 113, 130, 139, 125, 116, 129, 141, 112, 127, 149, 135, 112, 133, 106, 119, 114, 129, 112, 138, 129, 113, 132, 98, 120, 126, 124, 121, 132, 110, 129, 122, 123, 110, 106, 118, 138, 103, 116, 109, 130, 132, 126, 120, 141, 118, 133, 128, 128, 127, 120, 121, 133, 123, 142, 118, 126, 131, 124, 120, 117, 119, 132, 132, 134, 122, 113, 123, 118, 128, 117, 120, 138, 127, 131, 114, 141, 129, 122, 134, 123, 127, 129, 143, 121, 124, 134, 138, 115, 128, 130, 131, 135, 125, 107, 115, 109, 142, 141, 130, 134, 141, 123, 118, 128, 107, 130, 132, 110, 127, 119, 128, 124, 121, 131, 124, 125, 110, 121, 127, 134, 115, 118, 132, 113, 128, 122, 143, 128, 138, 117, 124, 135, 127, 138, 122, 125, 116, 101, 157, 130, 125, 127, 126, 147, 124, 123, 139, 128, 128, 118, 122, 135, 97, 120, 124, 129, 132, 133, 125, 137, 118, 118, 118, 112, 134, 143, 129, 104, 139, 140, 122, 132, 126, 114, 121, 134, 128, 125, 143, 123, 132, 129, 115, 121, 142, 139, 116, 117, 107, 113, 131, 125, 118, 125, 132, 126, 138, 125, 125, 122, 114, 101, 130, 116, 109, 128, 121, 125, 124, 138, 129, 134, 132, 137, 114, 133, 117, 136, 121, 111, 124, 120, 131, 137, 137, 123, 109, 137, 127, 121, 128, 119, 144, 128, 137, 115, 133, 121, 124, 138, 133, 129, 110, 127, 140, 130, 130, 121, 129, 143, 127, 158, 118, 125, 114, 139, 114, 131, 119, 121, 120, 119, 118, 120, 113, 134, 120, 90, 94, 117, 128, 132, 88, 126, 115, 126, 145, 121, 116, 120, 120, 132, 138, 133, 130, 131, 128, 122, 134, 126, 99, 139, 128, 107, 115, 126, 116, 107, 133, 113, 125, 134, 124, 111, 131, 131, 134, 124, 120, 131, 141, 132, 123, 112, 127, 121, 115, 125, 128, 125, 122, 120, 127, 122, 116, 129, 122, 140, 130, 127, 135, 129, 122, 123, 146, 117, 107, 108, 122, 129, 133, 131, 116, 109, 111, 110, 118, 126, 126, 126, 134, 136, 116, 119, 120, 112, 124, 143, 139, 110, 129, 129, 137, 118, 126, 135, 145, 138, 115, 135, 142, 127, 117, 126, 141, 124, 127, 109, 119, 137, 129, 100, 113, 122, 125, 135, 126, 126, 132, 130, 130, 142, 122, 117, 116, 130, 145, 133, 110, 132, 140, 122, 128, 139, 115, 139, 128, 102, 130, 133, 130, 123, 129, 125, 140, 126, 135, 121, 111, 108, 120, 112, 140, 126, 134, 132, 120, 118, 104, 116, 150, 121, 119, 117, 119, 130, 121, 114, 105, 141, 114, 106, 109, 129, 133, 125, 126, 128, 122, 129, 141, 147, 122, 106, 146, 143, 108, 128, 152, 135, 126, 106, 114, 109, 115, 108, 138, 115, 132, 105, 110, 130, 130, 135, 119, 119, 137, 134, 122, 144, 130, 123, 127, 130, 112, 117, 128, 118, 136, 128, 113, 129, 110, 131, 129, 125, 127, 111, 120, 127, 139, 129, 102, 127, 120, 130, 131, 125, 120, 116, 114, 126, 129, 110, 130, 104, 121, 131, 129, 131, 134, 115, 110, 115, 115, 122, 136, 118, 121, 111, 115, 127, 131, 126, 146, 132, 120, 136, 130, 136, 113, 124, 128, 121, 139, 134, 121, 123, 115, 143, 103, 109, 139, 121, 129, 144, 146, 121, 106, 131, 137, 127, 119, 111, 134, 135, 131, 95, 117, 131, 145, 128, 123, 125, 118, 138, 132, 123, 117, 126, 128, 121, 130, 114, 105, 119, 120, 118, 131, 130, 128, 123, 121, 135, 114, 131, 127, 122, 134, 148, 136, 120, 113, 129, 121, 141, 116, 130, 136, 145, 145, 106, 155, 126, 106, 119, 125, 129, 142, 142, 130, 103, 138, 116, 123, 112, 114, 128, 124, 106, 109, 142, 115, 123, 126, 131, 135, 137, 98, 112, 118, 120, 129, 121, 129, 154, 132, 120, 125, 137, 118, 101, 134, 123, 123, 118, 112, 114, 144, 123, 132, 137, 91, 128, 138, 139, 121, 126, 160, 123, 134, 136, 118, 108, 120, 117, 114, 127, 125, 122, 107, 138, 114, 130, 132, 105, 132, 130, 117, 123, 103, 117, 113, 134, 133, 134, 122, 118, 130, 116, 119, 105, 121, 145, 124, 112, 138, 114, 116, 116, 110, 127, 110, 160, 143, 122, 122, 129, 141, 123, 109, 126, 132, 139, 127, 120, 134, 127, 109, 115, 144, 135, 121, 122, 149, 117, 122, 153, 121, 124, 128, 138, 131, 138, 141, 105, 138, 113, 110, 132, 130, 116, 115, 122, 143, 115, 135, 129, 125, 102, 130, 131, 137, 157, 111, 125, 104, 128, 134, 95, 117, 147, 119, 133, 123, 125, 119, 126, 131, 134, 133, 97, 121, 127, 120, 125, 135, 135, 135, 145, 135, 131, 122, 130, 113, 119, 132, 120, 137, 116, 140, 127, 127, 116, 135, 128, 124, 142, 126, 121, 133, 127, 110, 125, 112, 135, 133, 131, 130, 105, 113, 114, 122, 128, 120, 123, 132, 108, 123, 134, 124, 114, 128, 136, 145, 144, 135, 127, 113, 126, 110, 134, 142, 119, 145, 115, 113, 107, 117, 125, 122, 140, 114, 120, 141, 133, 130, 158, 129, 139, 110, 119, 147, 124, 129, 163, 123, 127, 120, 139, 118, 136, 115, 124, 124, 151, 137, 128, 115, 142, 136, 139, 122, 133, 102, 125, 133, 123, 126, 122, 123, 134, 123, 113, 135, 139, 122, 123, 129, 127, 103, 122, 148, 157, 105, 107, 123, 132, 133, 133, 134, 114, 112, 137, 128, 128, 137, 157, 118, 122, 122, 128, 139, 134, 106, 122, 139, 120, 126, 124, 148, 103, 119, 122, 138, 137, 124, 140, 116, 135, 111, 134, 122, 116, 124, 129, 131, 117, 129, 133, 141, 111, 145, 122, 129, 122, 122, 133, 135, 122, 117, 118, 135, 112, 118, 125, 127, 140, 113, 127, 128, 145, 143, 127, 133, 125, 144, 143, 122, 116, 122, 124, 112, 118, 134, 116, 129, 131, 130, 122, 133, 121, 115, 128, 108, 111, 123, 134, 115, 121, 127, 143, 121, 130, 126, 122, 136, 119, 137, 123, 140, 136, 117, 128, 137, 140, 138, 139, 107, 119, 122, 136, 127, 118, 133, 145, 149, 124, 138, 136, 127, 136, 123, 117, 127, 120, 108, 140, 140, 115, 116, 123, 128, 114, 124, 124, 124, 139, 126, 122, 115, 130, 130, 131, 115, 119, 133, 129, 137, 128, 134, 131, 118, 118, 122, 123, 146, 134, 146, 115, 126, 123, 120, 119, 127, 151, 133, 119, 125, 124, 117, 127, 128, 124, 129, 125, 129, 122, 113, 128, 130, 119, 116, 138, 113, 112, 139, 103, 118, 135, 127, 120, 123, 122, 132, 113, 117, 110, 132, 128, 131, 110, 128, 122, 135, 136, 117, 127, 124, 132, 128, 128, 108, 129, 135, 123, 121, 114, 123, 141, 148, 117, 119, 114, 124, 122, 132, 126, 126, 116, 127, 131, 129, 130, 120, 121, 123, 118, 125, 135, 119, 131, 132, 117, 133, 124, 127, 105, 106, 119, 134, 113, 103, 125, 133, 123, 122, 110, 116, 140, 121, 129, 144, 121, 136, 130, 122, 127, 136, 125, 131, 122, 138, 126, 129, 128, 118, 134, 117, 115, 117, 120, 119, 121, 113, 126, 120, 139, 117, 121, 122, 129, 128, 132, 123, 104, 124, 114, 127, 138, 129, 119, 146, 103, 120, 122, 122, 133, 117, 132, 133, 137, 127, 124, 129, 136, 127, 126, 146, 137, 129, 125, 120, 121, 122, 129, 130, 145, 127, 129, 100, 109, 128, 134, 131, 129, 134, 107, 126, 123, 124, 130, 136, 122, 131, 111, 122, 135, 145, 144, 119, 121, 128, 119, 121, 123, 150, 125, 124, 136, 128, 134, 127, 128, 128, 139, 118, 122, 135, 125, 136, 134, 145, 128, 116, 137, 126, 114, 125, 133, 136, 129, 129, 137, 128, 117, 115, 120, 118, 132, 124, 135, 124, 122, 130, 119, 132, 140, 129, 124, 122, 129, 126, 137, 117, 136, 121, 132, 120, 128, 115, 116, 123, 124, 118, 122, 123, 141, 111, 131, 118, 120, 119, 127, 131, 119, 126, 134, 126, 113, 112, 127, 126, 125, 123, 127, 119, 128, 109, 123, 115, 131, 132, 120, 142, 121, 138, 133, 128, 136, 124, 120, 123, 128, 124, 117, 117, 127, 122, 128, 106, 121, 107, 128, 112, 113, 127, 134, 131, 141, 109, 128, 124, 128, 126, 115, 124, 131, 134, 128, 94, 116, 122, 122, 126, 116, 125, 134, 122, 110, 127, 128, 135, 118, 145, 106, 115, 128, 125, 126, 131, 134, 114, 131, 124, 130, 153, 121, 126, 120, 132, 115, 106, 142, 138, 115, 129, 139, 126, 141, 125, 128, 127, 112, 135, 156, 125, 120, 115, 130, 106, 108, 120, 122, 117, 121, 123, 120, 111, 123, 125, 114, 125, 137, 127, 127, 128, 115, 141, 129, 138, 125, 117, 102, 130, 113, 135, 124, 135, 126, 127, 149, 125, 121, 125, 129, 118, 143, 123, 124, 122, 131, 124, 121, 121, 119, 123, 123, 129, 129, 115, 135, 143, 142, 104, 125, 129, 117, 121, 127, 114, 121, 124, 129, 121, 125, 130, 136, 137, 130, 124, 122, 122, 115, 133, 132, 137, 112, 124, 123, 122, 115, 122, 123, 134, 110, 122, 116, 122, 128, 117, 116, 112, 121, 118, 122, 121, 129, 125, 133, 132, 117, 142, 113, 131, 113, 132, 128, 124, 132, 120, 132, 133, 116, 120, 148, 128, 135, 138, 136, 131, 145, 124, 139, 123, 128, 140, 137, 126, 133, 136, 131, 130, 138, 121, 131, 148, 137, 115, 105, 122, 136, 107, 120, 129, 129, 139, 123, 122, 114, 126, 132, 135, 127, 130, 113, 113, 128, 116, 114, 130, 114, 111, 123, 136, 129, 108, 129, 124, 121, 124, 116, 130, 126, 132, 116, 117, 135, 129, 118, 133, 129, 118, 117, 126, 135, 133, 130, 122, 120, 117, 119, 129, 124, 119, 140, 128, 125, 120, 124, 120, 136, 127, 137, 119, 109, 122, 133, 124, 132, 103, 138, 128, 117, 132, 132, 113, 129, 105, 114, 126, 125, 136, 147, 137, 133, 123, 128, 129, 149, 128, 121, 134, 113, 138, 131, 124, 124, 124, 139, 123, 127, 125, 111, 134, 129, 137, 127, 137, 137, 125, 118, 138, 129, 134, 117, 135, 130, 127, 121, 138, 119, 138, 130, 130, 117, 124, 124, 139, 134, 121, 122, 123, 130, 128, 123, 113, 127, 116, 115, 129, 138, 114, 125, 119, 134, 128, 122, 122, 119, 135, 111, 123, 105, 140, 120, 119, 140, 119, 130, 135, 138, 123, 119, 124, 111, 114, 138, 94, 121, 120, 147, 117, 128, 126, 113, 127, 116, 134, 136, 119, 129, 131, 129, 138, 133, 125, 133, 135, 124, 140, 127, 126, 140, 134, 127, 128, 101, 136, 120, 129, 127, 133, 134, 125, 123, 122, 123, 112, 126, 124, 128, 126, 129, 130, 125, 112, 120, 127, 118, 118, 105, 122, 139, 126, 146, 119, 125, 115, 115, 143, 129, 150, 128, 112, 128, 130, 131, 119, 128, 132, 139, 110, 131, 124, 116, 119, 126, 130, 117, 127, 126, 128, 110, 127, 114, 118, 139, 122, 140, 125, 120, 117, 125, 133, 126, 128, 126, 115, 136, 126, 144, 134, 140, 105, 118, 117, 140, 111, 138, 108, 134, 114, 131, 118, 140, 135, 127, 137, 123, 122, 118, 114, 129, 129, 143, 141, 125, 132, 129, 124, 147, 127, 119, 130, 114, 130, 126, 115, 129, 129, 135, 146, 135, 110, 118, 107, 119, 119, 129, 133, 130, 116, 136, 130, 111, 123, 122, 139, 150, 137, 129, 145, 137, 116, 118, 126, 129, 129, 128, 122, 130, 126, 132, 123, 98, 131, 138, 127, 109, 122, 97, 132, 133, 123, 114, 121, 135, 131, 132, 130, 128, 117, 126, 123, 148, 135, 131, 131, 113, 127, 121, 130, 109, 119, 141, 118, 118, 128, 142, 133, 131, 126, 132, 135, 111, 141, 120, 112, 110, 114, 117, 120, 128, 129, 118, 108, 118, 121, 131, 130, 118, 112, 129, 127, 101, 123, 140, 135, 130, 111, 132, 118, 132, 112, 105, 128, 130, 118, 132, 111, 125, 117, 117, 128, 118, 124, 94, 111, 133, 108, 98, 122, 151, 138, 118, 114, 112, 117, 128, 128, 118, 118, 123, 107, 119, 123, 120, 134, 123, 150, 129, 114, 111, 144, 120, 129, 161, 125, 127, 134, 142, 114, 125, 110, 135, 122, 131, 131, 138, 140, 123, 118, 113, 115, 138, 123, 134, 130, 125, 127, 143, 119, 112, 119, 109, 111, 111, 104, 133, 132, 129, 117, 152, 150, 137, 123, 104, 107, 119, 118, 118, 122, 141, 121, 134, 125, 129, 129, 115, 135, 138, 153, 121, 121, 120, 126, 132, 131, 120, 141, 124, 110, 125, 122, 118, 122, 135, 113, 117, 116, 110, 110, 116, 106, 124, 121, 135, 124, 120, 136, 132, 151, 126, 133, 123, 133, 126, 132, 137, 121, 158, 130, 110, 134, 128, 127, 131, 123, 124, 124, 127, 120, 136, 118, 137, 111, 129, 127, 136, 120, 120, 128, 120, 137, 147, 118, 131, 129, 117, 124, 123, 128, 126, 126, 133, 133, 132, 118, 130, 121, 123, 123, 125, 127, 115, 117, 126, 125, 105, 108, 143, 129, 112, 106, 123, 138, 129, 125, 125, 129, 127, 122, 124, 117, 126, 116, 130, 141, 118, 131, 134, 125, 125, 119, 137, 103, 139, 116, 145, 130, 120, 131, 118, 116, 115, 127, 110, 118, 122, 131, 116, 131, 121, 145, 109, 119, 127, 122, 136, 108, 133, 113, 125, 112, 116, 105, 116, 115, 126, 118, 113, 132, 120, 126, 125, 104, 144, 135, 132, 115, 121, 116, 130, 125, 124, 134, 120, 123, 123, 130, 116, 130, 127, 128, 113, 124, 127, 117, 139, 110, 136, 130, 106, 122, 122, 122, 118, 132, 137, 123, 122, 138, 127, 117, 124, 146, 142, 130, 111, 116, 144, 123, 139, 127, 118, 138, 141, 128, 135, 130, 124, 126, 124, 114, 114, 128, 117, 117, 137, 123, 107, 118, 135, 123, 149, 117, 124, 137, 137, 112, 138, 115, 122, 113, 113, 127, 141, 139, 127, 125, 121, 150, 132, 116, 107, 129, 142, 105, 128, 117, 119, 122, 124, 112, 111, 98, 127, 128, 112, 137, 125, 132, 107, 139, 128, 126, 133, 129, 117, 115, 137, 129, 137, 129, 119, 126, 129, 126, 122, 126, 142, 123, 118, 117, 130, 130, 128, 127, 122, 128, 125, 117, 118, 133, 132, 129, 101, 116, 141, 127, 155, 111, 144, 137, 124, 111, 121, 130, 125, 112, 125, 110, 121, 115, 124, 126, 141, 118, 141, 143, 126, 121, 127, 118, 107, 128, 143, 126, 113, 123, 124, 130, 123, 146, 110, 98, 134, 116, 124, 124, 144, 126, 129, 128, 124, 111, 128, 125, 119, 121, 134, 127, 126, 141, 147, 110, 119, 150, 128, 119, 125, 129, 122, 129, 118, 134, 129, 145, 125, 135, 116, 111, 134, 125, 131, 134, 126, 108, 120, 130, 135, 135, 126, 116, 121, 128, 122, 120, 126, 139, 125, 109, 125, 127, 118, 107, 124, 109, 125, 112, 125, 121, 124, 132, 126, 120, 128, 121, 108, 129, 112, 134, 162, 131, 135, 129, 126, 128, 135, 117, 149, 124, 141, 114, 145, 130, 138, 131, 140, 137, 107, 128, 137, 115, 129, 105, 107, 136, 126, 123, 129, 121, 113, 126, 140, 126, 126, 109, 134, 123, 127, 115, 124, 123, 131, 129, 122, 106, 120, 135, 119, 110, 110, 143, 125, 135, 108, 133, 129, 124, 114, 131, 121, 125, 110, 130, 145, 131, 96, 118, 134, 129, 133, 118, 115, 131, 114, 129, 124, 133, 141, 138, 133, 124, 128, 115, 122, 132, 124, 122, 124, 153, 124, 130, 126, 137, 127, 125, 120, 119, 131, 112, 113, 125, 116, 126, 125, 108, 120, 124, 135, 114, 131, 112, 126, 107, 138, 116, 116, 132, 104, 122, 145, 115, 123, 133, 135, 118, 124, 124, 110, 126, 134, 143, 132, 130, 130, 115, 94, 120, 133, 120, 130, 127, 129, 125, 123, 130, 138, 121, 111, 134, 133, 143, 139, 115, 134, 130, 115, 133, 124, 151, 119, 125, 128, 114, 129, 124, 139, 143, 125, 113, 114, 116, 122, 118, 125, 128, 126, 109, 124, 127, 140, 140, 135, 112, 128, 106, 121, 129, 146, 120, 122, 138, 136, 117, 119, 113, 125, 103, 130, 122, 129, 136, 116, 128, 105, 127, 114, 130, 137, 123, 118, 123, 141, 129, 123, 127, 128, 105, 121, 122, 134, 117, 119, 132, 107, 117, 112, 107, 117, 120, 143, 143, 128, 118, 112, 128, 130, 120, 138, 131, 117, 124, 139, 135, 114, 124, 122, 119, 126, 119, 117, 136, 108, 140, 137, 125, 113, 117, 124, 133, 116, 114, 108, 112, 124, 127, 138, 126, 131, 128, 128, 125, 126, 150, 124, 128, 121, 125, 142, 109, 124, 109, 130, 126, 120, 122, 138, 126, 111, 120, 127, 136, 114, 132, 110, 126, 114, 125, 109, 120, 130, 130, 126, 125, 121, 127, 125, 118, 127, 109, 133, 134, 129, 108, 129, 131, 120, 126, 128, 117, 129, 116, 125, 117, 111, 119, 136, 141, 130, 127, 128, 99, 125, 111, 131, 132, 130, 143, 114, 114, 114, 123, 140, 118, 124, 116, 118, 127, 120, 121, 126, 115, 138, 129, 129, 129, 115, 117, 129, 129, 133, 134, 131, 124, 146, 121, 136, 130, 121, 128, 126, 123, 128, 124, 114, 126, 128, 124, 126, 127, 134, 130, 120, 137, 109, 143, 126, 107, 114, 110, 126, 126, 117, 127, 125, 117, 146, 135, 131, 110, 120, 118, 124, 117, 127, 119, 100, 126, 105, 128, 113, 113, 134, 135, 114, 139, 126, 122, 122, 124, 107, 146, 138, 130, 127, 131, 128, 114, 114, 124, 112, 124, 134, 118, 115, 118, 109, 140, 110, 122, 135, 115, 123, 110, 135, 131, 142, 134, 137, 121, 119, 109, 125, 121, 121, 126, 118, 131, 109, 119, 119, 124, 128, 125, 117, 100, 131, 123, 127, 140, 129, 128, 129, 131, 118, 127, 118, 146, 127, 126, 122, 107, 139, 144, 120, 137, 124, 117, 125, 125, 131, 126, 122, 121, 130, 101, 140, 128, 128, 126, 118, 115, 126, 128, 125, 126, 127, 110, 113, 131, 112, 146, 122, 134, 121, 124, 127, 127, 126, 126, 152, 127, 132, 120, 130, 131, 113, 135, 140, 132, 146, 135, 134, 129, 113, 117, 131, 129, 123, 130, 118, 113, 115, 137, 116, 115, 122, 129, 107, 123, 130, 124, 141, 115, 137, 107, 130, 130, 126, 116, 128, 124, 120, 121, 146, 136, 120, 121, 130, 126, 120, 109, 127, 112, 124, 131, 107, 129, 114, 129, 116, 116, 116, 132, 123, 121, 131, 132, 125, 128, 132, 116, 121, 117, 120, 134, 128, 97, 118, 128, 125, 132, 137, 108, 131, 119, 124, 133, 124, 141, 126, 126, 124, 137, 125, 122, 126, 131, 122, 117, 134, 142, 120, 133, 159, 116, 130, 122, 138, 113, 143, 126, 124, 120, 148, 118, 124, 119, 144, 124, 127, 136, 136, 126, 124, 118, 134, 112, 120, 123, 125, 124, 118, 123, 118, 135, 139, 130, 125, 138, 136, 111, 136, 135, 147, 137, 124, 125, 122, 126, 120, 135, 138, 117, 138, 135, 130, 122, 136, 128, 119, 137, 129, 128, 126, 151, 133, 114, 117, 117, 132, 134, 136, 121, 142, 131, 119, 113, 123, 126, 113, 136, 122, 117, 124, 131, 141, 127, 115, 139, 119, 128, 140, 125, 139, 123, 116, 130, 139, 128, 122, 108, 112, 119, 134, 127, 126, 151, 115, 128, 125, 140, 132, 122, 112, 115, 119, 115, 117, 95, 114, 146, 102, 128, 129, 123, 127, 107, 119, 129, 129, 121, 111, 140, 128, 106, 127, 115, 122, 130, 128, 113, 112, 123, 124, 144, 130, 126, 102, 125, 135, 121, 139, 126, 121, 120, 131, 118, 114, 114, 126, 121, 103, 117, 132, 129, 115, 125, 119, 116, 125, 125, 110, 129, 117, 116, 112, 114, 122, 141, 117, 122, 146, 127, 132, 122, 143, 115, 104, 120, 135, 124, 116, 124, 129, 130, 137, 116, 121, 136, 134, 115, 121, 137, 128, 107, 117, 145, 132, 117, 102, 132, 127, 122, 110, 134, 123, 150, 133, 130, 139, 124, 128, 120, 113, 119, 142, 118, 126, 134, 121, 121, 129, 123, 129, 130, 135, 125, 125, 127, 109, 145, 126, 122, 117, 126, 116, 126, 126, 133, 120, 116, 128, 140, 129, 135, 142, 120, 114, 133, 126, 124, 125, 141, 118, 121, 134, 110, 109, 123, 135, 140, 126, 143, 118, 141, 121, 128, 137, 109, 152, 115, 133, 116, 126, 132, 126, 125, 118, 144, 126, 109, 115, 129, 125, 130, 126, 132, 133, 140, 124, 105, 115, 133, 117, 136, 120, 138, 125, 119, 127, 139, 117, 113, 114, 149, 117, 118, 143, 128, 120, 136, 107, 138, 115, 134, 120, 116, 139, 128, 117, 125, 114, 117, 121, 109, 132, 111, 138, 123, 144, 115, 153, 120, 114, 132, 143, 136, 133, 124, 119, 122, 124, 124, 104, 130, 114, 115, 117, 120, 126, 123, 102, 127, 119, 129, 135, 127, 117, 129, 122, 127, 116, 125, 112, 130, 126, 132, 122, 150, 129, 142, 113, 114, 151, 131, 125, 157, 134, 130, 126, 127, 143, 113, 130, 134, 128, 120, 121, 137, 118, 130, 127, 141, 136, 116, 128, 111, 129, 125, 133, 140, 114, 112, 126, 131, 110, 118, 126, 131, 143, 124, 133, 116, 133, 132, 141, 117, 104, 122, 145, 132, 124, 126, 132, 123, 122, 129, 122, 116, 127, 133, 137, 125, 131, 121, 115, 125, 119, 124, 115, 106, 120, 137, 114, 135, 140, 140, 131, 123, 125, 130, 143, 154, 128, 110, 134, 121, 120, 135, 129, 107, 98, 134, 130, 129, 122, 124, 120, 116, 134, 112, 129, 128, 138, 131, 134, 132, 131, 139, 121, 139, 133, 134, 107, 122, 122, 132, 132, 144, 125, 112, 114, 146, 114, 148, 120, 129, 126, 122, 123, 134, 134, 121, 113, 136, 121, 132, 135, 145, 132, 128, 136, 117, 110, 138, 137, 128, 124, 133, 129, 115, 116, 127, 146, 129, 140, 118, 137, 112, 116, 130, 114, 121, 122, 136, 134, 126, 130, 135, 118, 115, 132, 120, 120, 131, 128, 114, 100, 116, 125, 116, 118, 117, 132, 115, 105, 127, 137, 128, 125, 130, 128, 130, 119, 137, 136, 142, 133, 144, 120, 114, 137, 131, 142, 148, 112, 120, 131, 107, 128, 99, 137, 121, 127, 120, 127, 125, 109, 130, 129, 127, 131, 126, 128, 132, 148, 150, 125, 124, 111, 101, 118, 139, 123, 146, 121, 135, 128, 125, 122, 118, 147, 119, 136, 124, 125, 115, 134, 123, 135, 124, 133, 119, 125, 131, 129, 126, 128, 140, 125, 110, 119, 117, 139, 130, 127, 134, 114, 122, 123, 120, 130, 117, 117, 130, 135, 123, 109, 129, 124, 154, 134, 147, 106, 109, 113, 132, 115, 126, 120, 119, 129, 121, 132, 137, 133, 121, 119, 133, 128, 119, 120, 130, 133, 129, 136, 124, 126, 128, 127, 127, 117, 108, 118, 117, 135, 122, 130, 142, 109, 148, 142, 113, 125, 117, 128, 125, 108, 116, 130, 142, 107, 121, 124, 115, 148, 123, 128, 122, 142, 132, 152, 132, 119, 144, 112, 123, 109, 133, 123, 116, 131, 122, 133, 136, 116, 135, 132, 110, 137, 106, 131, 124, 136, 107, 132, 125, 124, 136, 115, 121, 124, 135, 117, 128, 122, 132, 133, 129, 124, 120, 134, 125, 127, 119, 133, 116, 144, 124, 102, 126, 117, 118, 121, 130, 122, 126, 114, 139, 145, 110, 135, 138, 127, 125, 120, 118, 132, 134, 118, 125, 129, 132, 145, 99, 130, 136, 126, 127, 134, 130, 132, 126, 122, 117, 132, 147, 124, 126, 124, 124, 145, 142, 131, 129, 117, 122, 126, 146, 131, 110, 134, 121, 121, 142, 125, 120, 127, 137, 126, 123, 123, 122, 129, 134, 130, 127, 143, 126, 128, 139, 144, 121, 133, 127, 132, 114, 109, 114, 113, 123, 125, 122, 140, 121, 121, 132, 135, 121, 129, 118, 128, 121, 135, 134, 113, 109, 128, 121, 148, 110, 122, 132, 126, 126, 124, 120, 138, 144, 145, 130, 114, 133, 123, 138, 143, 123, 128, 110, 127, 128, 110, 136, 123, 123, 131, 105, 106, 123, 111, 112, 141, 120, 109, 141, 137, 120, 125, 122, 120, 128, 145, 102, 125, 120, 126, 130, 117, 130, 109, 138, 144, 124, 148, 116, 131, 114, 117, 130, 136, 117, 134, 144, 120, 129, 113, 129, 116, 150, 124, 121, 133, 128, 119, 124, 120, 118, 132, 126, 119, 112, 119, 147, 117, 117, 106, 123, 123, 104, 131, 137, 156, 106, 124, 123, 115, 126, 148, 118, 116, 119, 138, 130, 131, 134, 117, 102, 117, 123, 104, 147, 143, 132, 112, 144, 113, 113, 119, 109, 131, 121, 133, 119, 120, 112, 125, 133, 131, 110, 108, 141, 116, 112, 123, 123, 118, 124, 123, 125, 125, 119, 132, 120, 121, 122, 131, 139, 127, 132, 108, 109, 115, 111, 137, 108, 124, 134, 108, 107, 125, 138, 116, 133, 142, 147, 129, 121, 104, 118, 126, 123, 136, 126, 119, 133, 133, 127, 109, 116, 131, 124, 135, 121, 117, 135, 123, 115, 104, 107, 106, 132, 109, 146, 125, 118, 100, 143, 128, 122, 130, 121, 130, 108, 133, 124, 142, 145, 105, 115, 118, 116, 127, 127, 127, 125, 127, 128, 138, 110, 116, 146, 138, 124, 127, 106, 123, 112, 132, 135, 107, 135, 135, 138, 116, 132, 109, 116, 126, 134, 116, 121, 130, 113, 103, 130, 120, 125, 130, 132, 134, 123, 119, 127, 129, 137, 125, 142, 133, 124, 122, 115, 101, 121, 124, 122, 116, 135, 137, 117, 112, 112, 127, 137, 132, 114, 124, 115, 139, 125, 141, 123, 138, 123, 126, 132, 114, 126, 114, 107, 140, 132, 139, 126, 108, 124, 133, 138, 124, 129, 132, 129, 124, 121, 105, 133, 131, 111, 115, 121, 121, 118, 126, 129, 116, 128, 102, 120, 128, 130, 129, 120, 121, 122, 112, 113, 114, 127, 130, 128, 136, 130, 128, 116, 121, 126, 119, 123, 111, 130, 125, 136, 131, 134, 120, 147, 125, 122, 133, 131, 119, 118, 123, 124, 111, 119, 119, 121, 139, 126, 138, 101, 127, 105, 107, 109, 133, 120, 132, 123, 110, 122, 130, 122, 133, 127, 124, 100, 124, 122, 115, 123, 127, 118, 135, 102, 107, 112, 122, 121, 135, 116, 129, 123, 124, 128, 116, 134, 121, 114, 140, 138, 146, 145, 132, 124, 119, 133, 113, 132, 125, 110, 135, 157, 133, 131, 131, 122, 116, 119, 129, 113, 133, 120, 129, 127, 140, 131, 123, 134, 128, 119, 111, 127, 124, 129, 126, 130, 124, 131, 141, 134, 132, 128, 110, 122, 110, 121, 139, 138, 145, 121, 131, 123, 132, 112, 126, 142, 115, 143, 119, 127, 137, 126, 107, 125, 126, 114, 124, 118, 125, 108, 116, 123, 118, 134, 128, 125, 137, 128, 119, 118, 109, 126, 131, 109, 135, 144, 137, 123, 144, 139, 137, 125, 129, 132, 131, 113, 127, 122, 133, 110, 123, 126, 113, 119, 136, 110, 143, 138, 122, 116, 147, 131, 103, 128, 109, 108, 133, 136, 146, 122, 137, 110, 102, 137, 126, 130, 121, 128, 130, 131, 134, 141, 130, 122, 115, 124, 120, 144, 115, 125, 124, 137, 114, 137, 133, 125, 115, 134, 146, 120, 135, 125, 125, 130, 119, 115, 138, 135, 119, 123, 135, 128, 116, 128, 117, 124, 153, 136, 124, 136, 107, 122, 136, 131, 134, 122, 108, 137, 135, 119, 123, 107, 113, 147, 145, 124, 134, 132, 128, 123, 116, 142, 139, 128, 146, 131, 108, 128, 139, 130, 123, 122, 141, 106, 113, 135, 125, 141, 104, 127, 134, 124, 135, 127, 132, 152, 89, 120, 122, 125, 110, 130, 119, 107, 117, 151, 130, 134, 127, 152, 127, 115, 132, 133, 133, 122, 124, 112, 133, 118, 136, 129, 124, 133, 123, 136, 119, 103, 129, 143, 136, 134, 126, 124, 153, 126, 137, 111, 136, 128, 135, 122, 134, 153, 119, 140, 114, 142, 116, 135, 126, 120, 115, 131, 124, 126, 136, 120, 130, 125, 131, 127, 121, 107, 123, 130, 139, 115, 121, 120, 127, 123, 112, 137, 114, 129, 118, 129, 126, 123, 121, 128, 131, 117, 159, 99, 147, 120, 116, 125, 116, 127, 133, 125, 113, 123, 129, 140, 126, 111, 122, 97, 122, 131, 130, 113, 118, 129, 135, 120, 130, 122, 133, 140, 113, 149, 117, 123, 111, 108, 121, 150, 115, 135, 108, 116, 105, 121, 140, 94, 121, 113, 128, 107, 137, 117, 127, 133, 125, 132, 115, 146, 151, 94, 118, 112, 111, 121, 124, 122, 130, 118, 106, 137, 130, 131, 113, 151, 126, 128, 111, 110, 117, 135, 113, 130, 131, 129, 143, 135, 142, 125, 119, 128, 143, 130, 135, 133, 144, 137, 132, 117, 111, 153, 124, 156, 108, 136, 105, 119, 105, 117, 131, 137, 111, 135, 156, 122, 145, 135, 131, 113, 138, 126, 117, 135, 119, 136, 129, 127, 134, 129, 104, 120, 132, 122, 111, 142, 134, 102, 126, 114, 132, 156, 114, 130, 110, 115, 141, 132, 122, 130, 133, 142, 113, 132, 120, 117, 128, 126, 128, 153, 133, 137, 108, 119, 132, 136, 122, 127, 123, 136, 106, 120, 119, 129, 119, 102, 123, 132, 122, 136, 129, 137, 141, 110, 112, 113, 113, 142, 142, 146, 135, 137, 121, 138, 135, 111, 126, 135, 132, 119, 141, 131, 104, 149, 124, 124, 121, 136, 128, 118, 123, 131, 108, 152, 126, 136, 130, 141, 120, 127, 105, 112, 131, 138, 134, 138, 129, 117, 122, 121, 120, 144, 121, 117, 115, 137, 121, 117, 123, 141, 124, 139, 141, 139, 121, 126, 132, 138, 127, 133, 136, 121, 143, 115, 117, 128, 121, 129, 127, 129, 125, 136, 124, 129, 125, 137, 132, 129, 129, 119, 114, 117, 125, 140, 123, 136, 135, 113, 128, 117, 108, 108, 125, 128, 114, 138, 121, 125, 116, 144, 144, 128, 127, 135, 117, 119, 123, 141, 137, 104, 120, 152, 128, 128, 107, 137, 132, 136, 81, 118, 125, 129, 118, 112, 123, 128, 121, 141, 138, 118, 134, 125, 127, 115, 144, 125, 128, 132, 126, 110, 138, 138, 125, 127, 112, 128, 137, 132, 122, 115, 134, 129, 131, 123, 105, 123, 124, 118, 130, 118, 123, 111, 115, 113, 145, 115, 134, 111, 137, 131, 122, 109, 138, 130, 110, 100, 132, 132, 135, 137, 112, 123, 121, 124, 122, 128, 116, 114, 133, 129, 123, 123, 121, 143, 120, 122, 139, 117, 106, 118, 136, 129, 142, 139, 132, 137, 116, 105, 113, 103, 118, 115, 133, 122, 119, 123, 116, 147, 143, 128, 135, 113, 136, 147, 122, 132, 123, 132, 132, 124, 128, 124, 142, 120, 128, 132, 116, 124, 119, 128, 114, 121, 123, 121, 136, 114, 115, 134, 148, 109, 126, 142, 141, 117, 112, 133, 134, 128, 119, 119, 127, 132, 119, 110, 122, 120, 111, 117, 131, 134, 123, 117, 126, 128, 119, 124, 127, 124, 136, 125, 110, 141, 108, 122, 121, 115, 120, 124, 145, 127, 135, 115, 116, 116, 133, 124, 132, 113, 111, 126, 123, 120, 105, 126, 140, 135, 110, 114, 131, 133, 115, 138, 120, 123, 117, 121, 122, 136, 138, 134, 130, 130, 128, 109, 115, 140, 128, 112, 116, 110, 124, 133, 148, 107, 135, 117, 123, 123, 123, 130, 127, 125, 131, 129, 142, 129, 130, 133, 113, 123, 150, 119, 134, 104, 140, 119, 126, 123, 118, 138, 130, 145, 132, 134, 124, 136, 118, 117, 107, 146, 121, 148, 139, 127, 122, 131, 113, 126, 122, 141, 140, 126, 135, 129, 130, 132, 105, 132, 126, 121, 119, 121, 113, 114, 133, 120, 131, 128, 130, 118, 116, 140, 115, 132, 130, 117, 138, 115, 129, 119, 118, 129, 126, 130, 111, 129, 134, 112, 124, 130, 119, 138, 133, 110, 138, 116, 119, 142, 121, 128, 141, 125, 138, 127, 99, 115, 126, 130, 139, 126, 118, 109, 133, 124, 121, 121, 108, 123, 132, 138, 135, 125, 124, 123, 133, 140, 125, 129, 131, 124, 129, 115, 136, 126, 127, 111, 132, 124, 125, 111, 137, 126, 129, 113, 132, 102, 139, 127, 139, 126, 125, 125, 144, 134, 142, 125, 115, 107, 140, 122, 122, 130, 147, 120, 117, 110, 113, 134, 119, 116, 125, 117, 132, 136, 129, 123, 115, 146, 129, 127, 134, 111, 117, 124, 138, 130, 124, 120, 148, 151, 136, 130, 134, 133, 121, 115, 117, 115, 125, 106, 120, 129, 122, 136, 143, 119, 138, 123, 108, 116, 132, 140, 103, 121, 131, 102, 132, 122, 121, 123, 116, 116, 108, 133, 137, 121, 132, 120, 112, 148, 123, 119, 114, 116, 135, 141, 113, 129, 133, 135, 136, 131, 128, 114, 104, 119, 114, 124, 132, 121, 123, 137, 128, 114, 137, 128, 134, 137, 129, 125, 149, 119, 131, 118, 136, 121, 116, 131, 128, 121, 108, 133, 145, 146, 135, 125, 122, 123, 129, 130, 123, 119, 128, 123, 127, 130, 120, 131, 147, 124, 132, 132, 106, 129, 128, 118, 113, 115, 134, 140, 117, 140, 128, 135, 119, 127, 114, 142, 118, 119, 132, 127, 143, 139, 120, 128, 129, 119, 132, 136, 124, 115, 120, 140, 123, 123, 132, 124, 124, 141, 131, 127, 120, 118, 123, 112, 129, 110, 128, 128, 115, 106, 138, 149, 116, 125, 118, 122, 121, 108, 121, 128, 109, 116, 128, 112, 106, 131, 140, 141, 129, 115, 119, 134, 107, 128, 118, 136, 126, 111, 114, 127, 129, 113, 125, 119, 133, 135, 112, 121, 123, 119, 122, 121, 112, 119, 137, 140, 104, 105, 128, 119, 112, 112, 113, 127, 127, 120, 150, 108, 112, 125, 124, 140, 130, 130, 143, 109, 125, 128, 121, 127, 121, 134, 124, 138, 107, 114, 139, 123, 133, 130, 114, 125, 128, 134, 124, 148, 138, 118, 136, 148, 124, 136, 117, 117, 139, 127, 130, 131, 127, 135, 135, 112, 123, 119, 117, 137, 124, 143, 143, 126, 129, 127, 121, 124, 133, 152, 141, 126, 136, 112, 126, 120, 115, 124, 113, 114, 134, 120, 129, 133, 124, 136, 132, 119, 131, 155, 120, 121, 128, 123, 135, 122, 119, 130, 134, 139, 147, 126, 135, 142, 148, 138, 128, 117, 124, 121, 134, 129, 134, 124, 121, 125, 139, 130, 128, 127, 132, 120, 115, 143, 126, 126, 124, 126, 126, 129, 137, 148, 125, 127, 113, 129, 125, 129, 138, 125, 146, 121, 119, 133, 129, 128, 124, 150, 126, 133, 124, 127, 120, 105, 138, 112, 134, 117, 106, 118, 123, 131, 119, 127, 132, 129, 121, 141, 143, 132, 130, 141, 127, 132, 128, 140, 114, 126, 116, 141, 145, 134, 150, 122, 129, 130, 126, 125, 127, 119, 128, 117, 128, 129, 115, 123, 123, 133, 124, 124, 124, 122, 137, 138, 117, 134, 138, 119, 131, 120, 115, 130, 125, 130, 128, 124, 121, 123, 121, 122, 119, 131, 112, 121, 122, 117, 124, 131, 119, 131, 118, 116, 114, 123, 128, 112, 129, 114, 121, 142, 127, 125, 125, 129, 109, 142, 114, 130, 122, 122, 125, 124, 142, 133, 128, 127, 134, 112, 109, 134, 120, 121, 122, 134, 104, 115, 131, 142, 117, 130, 115, 121, 133, 119, 116, 115, 128, 116, 127, 134, 127, 138, 146, 130, 126, 119, 135, 125, 156, 115, 115, 114, 122, 115, 123, 133, 118, 139, 130, 124, 125, 121, 113, 113, 135, 128, 127, 120, 136, 121, 124, 127, 124, 125, 127, 124, 140, 133, 128, 127, 123, 115, 141, 124, 126, 127, 124, 127, 135, 130, 118, 121, 140, 123, 123, 130, 120, 123, 130, 115, 146, 118, 126, 127, 132, 110, 127, 142, 132, 121, 119, 115, 122, 141, 127, 134, 121, 127, 136, 119, 105, 118, 126, 129, 134, 120, 133, 131, 137, 116, 123, 129, 117, 129, 115, 139, 122, 130, 131, 121, 145, 132, 120, 133, 120, 135, 139, 121, 128, 121, 121, 124, 157, 127, 134, 127, 144, 119, 127, 132, 118, 119, 126, 128, 96, 118, 122, 118, 126, 124, 118, 130, 112, 139, 128, 126, 117, 116, 136, 121, 120, 118, 113, 135, 117, 112, 109, 116, 119, 143, 135, 114, 122, 101, 129, 124, 134, 134, 127, 121, 122, 127, 136, 140, 126, 129, 117, 120, 137, 132, 117, 121, 102, 126, 129, 129, 139, 129, 136, 107, 115, 114, 121, 121, 128, 128, 121, 111, 109, 121, 131, 132, 124, 122, 120, 131, 127, 109, 114, 125, 138, 123, 136, 147, 135, 124, 141, 123, 128, 120, 136, 138, 130, 96, 125, 128, 107, 117, 113, 133, 139, 128, 120, 125, 109, 136, 127, 134, 129, 117, 126, 161, 126, 123, 120, 123, 115, 133, 141, 113, 119, 126, 126, 116, 116, 125, 125, 126, 114, 118, 133, 134, 126, 112, 132, 108, 122, 124, 118, 123, 124, 117, 145, 133, 127, 126, 139, 122, 141, 131, 114, 127, 125, 124, 136, 125, 132, 125, 143, 114, 125, 131, 115, 113, 135, 121, 106, 113, 131, 128, 143, 133, 122, 128, 107, 119, 119, 149, 109, 131, 124, 125, 131, 147, 109, 126, 123, 123, 128, 132, 145, 139, 129, 119, 137, 123, 140, 141, 104, 153, 140, 118, 112, 142, 125, 116, 150, 109, 130, 122, 119, 140, 126, 123, 133, 121, 118, 116, 132, 147, 131, 135, 127, 127, 132, 130, 122, 126, 127, 140, 119, 118, 135, 119, 130, 143, 138, 128, 124, 132, 130, 127, 116, 119, 129, 123, 123, 123, 119, 138, 123, 130, 133, 115, 137, 130, 136, 127, 117, 117, 123, 143, 112, 122, 120, 141, 124, 127, 124, 121, 127, 105, 130, 125, 127, 108, 128, 130, 138, 130, 123, 129, 109, 121, 122, 130, 123, 131, 117, 132, 127, 128, 137, 126, 134, 124, 136, 123, 146, 134, 123, 119, 124, 125, 118, 116, 106, 130, 122, 115, 137, 133, 122, 113, 111, 117, 140, 134, 127, 127, 111, 127, 125, 114, 117, 114, 115, 122, 129, 130, 134, 129, 121, 135, 122, 139, 137, 124, 136, 102, 118, 118, 132, 144, 140, 116, 130, 114, 124, 131, 127, 122, 134, 124, 128, 119, 132, 129, 118, 123, 117, 127, 121, 113, 104, 120, 136, 121, 120, 129, 116, 121, 102, 110, 117, 127, 130, 122, 136, 121, 147, 131, 123, 124, 112, 120, 134, 125, 129, 119, 118, 130, 129, 115, 133, 131, 134, 126, 127, 122, 114, 126, 109, 125, 131, 143, 111, 135, 130, 112, 118, 113, 121, 122, 120, 130, 122, 135, 135, 125, 118, 100, 120, 121, 127, 140, 138, 124, 125, 122, 148, 112, 126, 98, 123, 127, 119, 126, 132, 140, 139, 121, 134, 140, 142, 130, 136, 111, 133, 134, 133, 120, 135, 127, 123, 122, 123, 125, 129, 121, 127, 131, 126, 121, 122, 96, 121, 119, 125, 130, 123, 122, 134, 139, 99, 150, 122, 141, 111, 132, 122, 113, 122, 112, 129, 128, 127, 130, 125, 116, 126, 109, 147, 117, 127, 119, 131, 125, 125, 111, 131, 126, 109, 119, 131, 132, 114, 119, 118, 126, 142, 133, 120, 118, 101, 127, 135, 120, 121, 144, 118, 139, 124, 134, 107, 129, 135, 123, 104, 123, 114, 108, 119, 130, 131, 128, 134, 139, 126, 135, 98, 129, 120, 132, 118, 132, 126, 127, 115, 122, 104, 121, 140, 122, 131, 129, 132, 135, 111, 142, 114, 122, 129, 147, 120, 119, 134, 141, 138, 125, 122, 125, 101, 122, 135, 122, 118, 122, 122, 136, 122, 120, 131, 137, 110, 126, 119, 126, 135, 123, 119, 124, 120, 124, 137, 108, 131, 131, 111, 127, 124, 120, 116, 137, 126, 116, 114, 121, 128, 108, 137, 112, 121, 120, 111, 116, 138, 138, 119, 121, 128, 112, 123, 124, 117, 137, 120, 114, 109, 95, 131, 136, 134, 132, 119, 125, 112, 131, 124, 114, 136, 120, 124, 137, 116, 133, 131, 117, 106, 125, 136, 123, 120, 122, 127, 112, 128, 130, 119, 127, 116, 129, 114, 114, 115, 132, 107, 121, 123, 118, 132, 126, 132, 125, 136, 123, 131, 140, 123, 129, 131, 135, 117, 110, 119, 117, 129, 129, 135, 119, 111, 120, 112, 107, 110, 120, 143, 143, 118, 125, 136, 126, 119, 146, 112, 131, 120, 115, 136, 112, 95, 136, 124, 124, 140, 120, 112, 135, 126, 120, 132, 124, 123, 131, 109, 155, 117, 127, 119, 134, 129, 126, 114, 138, 123, 137, 124, 119, 115, 133, 119, 107, 128, 114, 106, 113, 129, 110, 119, 115, 117, 147, 136, 125, 138, 129, 114, 121, 134, 130, 129, 119, 108, 122, 130, 125, 132, 135, 140, 147, 111, 123, 111, 122, 118, 136, 137, 126, 131, 124, 125, 116, 152, 133, 120, 122, 120, 127, 115, 124, 132, 114, 121, 129, 125, 138, 121, 144, 146, 115, 128, 131, 110, 130, 135, 123, 126, 118, 124, 134, 128, 109, 129, 131, 116, 125, 111, 146, 113, 137, 119, 109, 112, 134, 116, 130, 114, 119, 117, 135, 128, 123, 143, 140, 119, 129, 129, 130, 138, 135, 116, 139, 123, 131, 126, 133, 123, 123, 139, 128, 105, 137, 136, 157, 127, 128, 134, 134, 134, 102, 140, 107, 126, 127, 120, 137, 126, 136, 113, 132, 123, 129, 128, 131, 115, 129, 127, 123, 112, 137, 114, 119, 126, 136, 127, 127, 106, 115, 115, 132, 127, 124, 113, 132, 139, 116, 129, 132, 154, 128, 122, 144, 137, 118, 132, 119, 128, 136, 110, 136, 124, 109, 138, 138, 129, 112, 144, 118, 130, 137, 132, 124, 122, 112, 131, 112, 101, 130, 130, 123, 134, 125, 101, 128, 126, 119, 150, 127, 115, 119, 122, 126, 117, 123, 123, 125, 112, 151, 127, 135, 115, 138, 133, 124, 127, 124, 124, 126, 123, 115, 116, 125, 120, 112, 122, 135, 124, 121, 147, 115, 129, 121, 123, 104, 125, 140, 110, 139, 140, 125, 114, 110, 113, 128, 134, 112, 133, 124, 133, 112, 126, 134, 141, 114, 124, 126, 118, 120, 137, 123, 146, 109, 130, 128, 110, 132, 131, 133, 129, 139, 131, 120, 125, 133, 129, 134, 134, 137, 119, 115, 133, 129, 122, 134, 137, 129, 125, 113, 122, 116, 113, 135, 129, 136, 130, 101, 139, 134, 124, 134, 128, 126, 130, 118, 117, 125, 122, 125, 98, 134, 128, 125, 129, 129, 126, 128, 129, 134, 116, 133, 142, 113, 114, 129, 106, 121, 127, 111, 128, 141, 115, 113, 139, 122, 128, 106, 138, 122, 139, 124, 106, 115, 128, 144, 105, 122, 130, 118, 132, 164, 123, 128, 124, 117, 133, 129, 120, 143, 137, 126, 113, 126, 134, 131, 115, 122, 114, 123, 129, 123, 139, 119, 123, 126, 116, 119, 118, 119, 128, 127, 139, 122, 121, 135, 117, 135, 122, 122, 112, 121, 121, 128, 127, 128, 134, 132, 124, 121, 120, 115, 133, 127, 126, 116, 127, 117, 132, 126, 129, 118, 117, 132, 134, 128, 123, 128, 118, 160, 133, 134, 124, 121, 120, 134, 113, 135, 109, 127, 138, 128, 133, 126, 120, 125, 136, 131, 110, 138, 117, 121, 137, 130, 125, 125, 119, 123, 120, 137, 131, 124, 126, 124, 117, 119, 135, 113, 140, 126, 124, 134, 110, 135, 119, 112, 122, 135, 130, 118, 129, 128, 126, 132, 131, 131, 129, 128, 122, 134, 119, 122, 121, 141, 112, 112, 130, 123, 130, 122, 136, 111, 112, 123, 116, 114, 116, 108, 128, 119, 108, 132, 129, 125, 125, 129, 121, 120, 116, 111, 128, 121, 140, 131, 130, 117, 125, 126, 132, 130, 125, 117, 128, 133, 123, 122, 124, 120, 125, 109, 126, 114, 144, 118, 134, 122, 136, 111, 118, 120, 122, 120, 120, 133, 127, 104, 130, 116, 117, 121, 121, 122, 136, 139, 136, 127, 111, 123, 112, 115, 126, 145, 120, 121, 125, 112, 130, 140, 113, 127, 132, 108, 129, 119, 143, 125, 112, 129, 135, 123, 123, 116, 134, 141, 109, 147, 127, 123, 118, 123, 111, 132, 112, 121, 118, 139, 127, 129, 153, 112, 121, 118, 138, 133, 137, 121, 134, 129, 121, 116, 120, 121, 120, 126, 125, 113, 118, 126, 123, 134, 118, 127, 117, 120, 118, 120, 141, 111, 139, 126, 124, 123, 122, 135, 122, 138, 131, 128, 126, 123, 127, 132, 116, 129, 158, 123, 127, 129, 123, 120, 134, 133, 128, 119, 126, 117, 125, 130, 123, 107, 134, 136, 133, 110, 122, 118, 135, 138, 149, 132, 123, 129, 127, 125, 136, 133, 134, 125, 135, 131, 119, 130, 123, 138, 126, 131, 131, 121, 120, 128, 116, 127, 124, 139, 120, 129, 127, 144, 124, 133, 131, 145, 137, 116, 128, 134, 125, 125, 117, 136, 130, 112, 119, 116, 111, 121, 112, 123, 122, 110, 122, 128, 119, 130, 141, 131, 144, 103, 132, 128, 137, 131, 109, 119, 120, 147, 132, 133, 143, 129, 122, 117, 116, 145, 126, 127, 126, 120, 114, 108, 128, 141, 136, 132, 123, 113, 138, 118, 115, 123, 138, 116, 126, 122, 130, 116, 133, 116, 133, 130, 132, 132, 122, 140, 125, 111, 124, 131, 121, 122, 127, 127, 132, 135, 130, 121, 136, 130, 119, 113, 122, 112, 133, 106, 131, 116, 126, 128, 123, 118, 112, 113, 131, 113, 129, 122, 111, 128, 129, 123, 129, 120, 110, 126, 129, 127, 133, 129, 128, 133, 124, 119, 124, 123, 116, 108, 118, 128, 117, 127, 114, 130, 127, 126, 124, 133, 116, 122, 126, 121, 125, 125, 119, 132, 129, 131, 140, 130, 125, 133, 130, 140, 112, 116, 126, 138, 131, 121, 125, 123, 113, 126, 141, 127, 110, 116, 121, 112, 122, 117, 115, 114, 127, 130, 128, 111, 122, 119, 131, 134, 128, 131, 104, 118, 114, 122, 130, 123, 126, 140, 113, 117, 124, 109, 126, 132, 126, 123, 112, 126, 130, 139, 137, 133, 125, 136, 113, 124, 121, 123, 142, 116, 114, 125, 118, 124, 128, 133, 134, 137, 131, 134, 125, 126, 128, 135, 129, 132, 111, 117, 114, 118, 122, 118, 129, 141, 134, 123, 125, 130, 129, 118, 111, 124, 119, 118, 106, 125, 122, 133, 136, 130, 137, 125, 135, 156, 130, 110, 115, 142, 127, 123, 121, 130, 120, 105, 127, 115, 137, 124, 132, 141, 154, 124, 130, 121, 133, 126, 142, 136, 114, 119, 111, 126, 131, 122, 120, 140, 129, 124, 127, 120, 127, 117, 135, 155, 134, 114, 127, 126, 128, 123, 113, 128, 113, 125, 123, 121, 120, 117, 122, 114, 129, 133, 134, 125, 126, 130, 122, 124, 117, 139, 125, 122, 119, 132, 137, 132, 130, 142, 136, 134, 127, 128, 126, 127, 116, 125, 122, 143, 124, 121, 128, 124, 119, 124, 125, 137, 130, 136, 123, 121, 139, 123, 129, 128, 123, 120, 130, 123, 130, 111, 130, 112, 138, 118, 128, 138, 135, 100, 128, 121, 141, 103, 122, 112, 121, 127, 124, 117, 146, 124, 119, 106, 138, 139, 121, 123, 126, 130, 120, 115, 124, 134, 140, 140, 117, 132, 122, 118, 111, 129, 131, 125, 123, 124, 121, 117, 123, 115, 114, 126, 139, 126, 113, 133, 110, 134, 129, 124, 117, 127, 118, 111, 129, 133, 129, 116, 122, 119, 124, 137, 114, 129, 123, 137, 134, 123, 143, 135, 129, 122, 125, 130, 130, 133, 121, 125, 137, 108, 134, 120, 145, 123, 124, 125, 138, 123, 132, 129, 127, 113, 126, 98, 125, 151, 105, 122, 122, 111, 122, 131, 124, 126, 114, 138, 119, 117, 110, 126, 109, 119, 107, 148, 123, 113, 130, 136, 135, 126, 125, 132, 112, 119, 129, 127, 135, 135, 120, 124, 130, 121, 138, 130, 137, 115, 135, 130, 126, 118, 117, 126, 145, 118, 121, 124, 126, 123, 115, 114, 121, 120, 131, 112, 138, 105, 116, 112, 137, 115, 123, 116, 122, 128, 135, 117, 112, 115, 117, 122, 131, 126, 122, 102, 127, 127, 128, 134, 135, 126, 117, 128, 125, 128, 117, 127, 118, 129, 144, 125, 132, 129, 119, 119, 128, 138, 120, 142, 119, 117, 119, 121, 113, 120, 124, 121, 134, 144, 116, 138, 130, 120, 135, 134, 136, 125, 114, 120, 125, 130, 124, 139, 116, 137, 131, 116, 121, 124, 124, 134, 108, 123, 119, 125, 138, 140, 137, 125, 116, 135, 112, 127, 129, 131, 124, 120, 123, 133, 135, 131, 130, 121, 115, 139, 133, 124, 120, 126, 137, 129, 137, 131, 134, 123, 127, 119, 130, 132, 125, 120, 130, 129, 134, 117, 133, 130, 135, 158, 129, 131, 131, 110, 119, 130, 123, 131, 130, 122, 142, 118, 131, 115, 106, 124, 136, 134, 127, 129, 133, 121, 123, 103, 120, 125, 128, 112, 136, 134, 123, 139, 139, 118, 136, 122, 122, 138, 123, 116, 122, 126, 106, 128, 122, 124, 130, 124, 109, 129, 131, 138, 123, 142, 118, 134, 139, 125, 110, 139, 126, 120, 125, 126, 134, 113, 134, 151, 124, 139, 121, 102, 135, 145, 103, 129, 114, 121, 136, 138, 87, 110, 120, 126, 102, 119, 120, 111, 144, 134, 123, 139, 115, 118, 106, 123, 101, 136, 127, 126, 113, 138, 106, 132, 140, 138, 115, 127, 117, 136, 119, 146, 137, 121, 127, 106, 136, 139, 132, 108, 113, 117, 117, 139, 106, 120, 145, 125, 119, 139, 123, 136, 95, 122, 133, 128, 143, 129, 135, 128, 128, 110, 122, 135, 135, 123, 111, 128, 138, 120, 123, 123, 120, 115, 125, 127, 124, 134, 122, 135, 122, 139, 117, 140, 124, 102, 145, 135, 119, 112, 128, 119, 133, 129, 143, 119, 125, 119, 133, 137, 128, 128, 115, 127, 137, 112, 115, 125, 123, 131, 124, 135, 127, 115, 117, 133, 126, 115, 145, 130, 120, 139, 129, 139, 120, 131, 111, 130, 121, 122, 124, 135, 124, 136, 128, 115, 127, 126, 118, 141, 115, 129, 118, 138, 121, 139, 125, 110, 125, 118, 124, 127, 133, 123, 141, 125, 128, 139, 123, 111, 131, 129, 115, 130, 129, 123, 135, 97, 143, 133, 123, 124, 130, 140, 122, 129, 152, 135, 133, 117, 132, 131, 129, 118, 132, 128, 112, 128, 109, 131, 142, 132, 131, 128, 111, 122, 127, 114, 122, 138, 110, 124, 114, 130, 121, 117, 124, 133, 107, 127, 113, 115, 147, 144, 124, 113, 128, 130, 124, 118, 96, 135, 126, 103, 135, 111, 131, 136, 133, 127, 118, 131, 128, 136, 134, 139, 157, 122, 140, 127, 114, 145, 118, 140, 113, 118, 109, 134, 129, 114, 126, 132, 123, 101, 116, 141, 121, 119, 154, 121, 124, 123, 130, 139, 129, 135, 120, 117, 127, 124, 134, 122, 124, 122, 128, 118, 118, 130, 110, 119, 136, 131, 131, 118, 122, 125, 129, 112, 148, 120, 118, 126, 122, 125, 122, 122, 121, 110, 141, 126, 125, 126, 111, 117, 122, 127, 134, 122, 126, 119, 135, 127, 115, 95, 131, 119, 132, 140, 122, 118, 116, 129, 115, 133, 109, 143, 134, 125, 145, 120, 131, 110, 130, 116, 132, 122, 136, 140, 124, 115, 121, 116, 127, 104, 128, 113, 109, 137, 102, 136, 117, 131, 147, 139, 131, 119, 117, 129, 120, 144, 96, 131, 137, 136, 116, 145, 124, 133, 123, 124, 134, 119, 141, 124, 141, 140, 122, 129, 123, 112, 114, 152, 150, 128, 135, 126, 134, 82, 127, 120, 125, 104, 119, 139, 120, 127, 141, 129, 121, 137, 114, 140, 128, 123, 120, 121, 132, 125, 116, 108, 136, 142, 127, 135, 140, 119, 139, 131, 145, 135, 124, 150, 110, 105, 126, 132, 126, 126, 130, 109, 110, 139, 107, 137, 131, 128, 119, 126, 107, 121, 119, 116, 133, 132, 126, 122, 138, 121, 127, 129, 125, 132, 151, 123, 135, 132, 144, 102, 117, 117, 120, 135, 115, 100, 111, 106, 133, 128, 136, 137, 115, 121, 105, 125, 122, 130, 119, 138, 136, 112, 133, 133, 110, 132, 136, 110, 125, 127, 135, 117, 123, 125, 138, 127, 133, 114, 121, 125, 133, 117, 108, 105, 125, 128, 124, 123, 139, 135, 140, 117, 109, 152, 122, 147, 138, 113, 133, 121, 142, 141, 125, 120, 132, 126, 142, 118, 123, 105, 140, 130, 124, 140, 136, 126, 129, 141, 140, 88, 130, 129, 124, 120, 112, 119, 128, 111, 106, 117, 122, 125, 117, 144, 120, 137, 134, 128, 129, 131, 133, 114, 92, 136, 121, 136, 130, 118, 134, 111, 135, 128, 109, 126, 125, 110, 110, 131, 108, 101, 117, 128, 125, 128, 134, 125, 127, 137, 108, 122, 120, 124, 121, 111, 117, 115, 115, 152, 143, 127, 141, 142, 126, 131, 141, 134, 131, 118, 128, 119, 142, 131, 138, 120, 108, 116, 140, 139, 96, 125, 129, 116, 103, 140, 112, 119, 136, 112, 127, 123, 127, 122, 128, 114, 111, 122, 132, 123, 134, 123, 129, 136, 125, 118, 142, 124, 133, 136, 124, 110, 122, 146, 138, 140, 132, 122, 124, 122, 122, 116, 133, 111, 140, 141, 136, 135, 128, 139, 121, 135, 103, 126, 147, 144, 114, 133, 131, 125, 121, 126, 129, 131, 122, 113, 126, 147, 121, 125, 132, 127, 122, 126, 125, 121, 138, 124, 115, 128, 108, 125, 124, 119, 119, 131, 153, 126, 127, 115, 108, 129, 126, 125, 126, 143, 137, 124, 118, 125, 137, 128, 142, 125, 133, 129, 103, 131, 111, 135, 106, 150, 105, 120, 127, 128, 119, 130, 116, 108, 127, 129, 131, 131, 135, 114, 115, 130, 131, 140, 105, 134, 109, 129, 114, 133, 136, 117, 131, 121, 118, 130, 107, 128, 122, 110, 128, 138, 120, 145, 125, 129, 129, 124, 132, 110, 127, 127, 111, 107, 133, 99, 134, 125, 130, 133, 124, 119, 118, 125, 110, 125, 123, 119, 125, 92, 113, 122, 119, 129, 130, 88, 117, 117, 113, 134, 119, 133, 117, 135, 125, 128, 107, 136, 133, 123, 135, 123, 130, 144, 120, 117, 117, 116, 112, 139, 116, 130, 117, 128, 126, 123, 124, 125, 139, 119, 110, 126, 130, 116, 130, 131, 104, 118, 136, 120, 119, 105, 139, 141, 116, 128, 113, 116, 122, 107, 131, 126, 103, 120, 131, 101, 113, 92, 127, 135, 122, 127, 112, 122, 127, 119, 133, 127, 139, 137, 118, 137, 127, 128, 120, 117, 111, 110, 127, 113, 135, 135, 123, 127, 135, 121, 170, 126, 135, 117, 122, 134, 128, 136, 118, 124, 133, 143, 139, 139, 110, 115, 127, 114, 139, 136, 126, 114, 117, 129, 140, 131, 117, 126, 129, 120, 122, 98, 140, 101, 125, 136, 133, 134, 116, 123, 128, 130, 133, 140, 139, 124, 130, 116, 132, 113, 122, 112, 131, 147, 134, 124, 113, 132, 127, 117, 122, 124, 140, 117, 121, 102, 111, 130, 114, 118, 120, 118, 127, 126, 136, 122, 130, 118, 106, 126, 127, 130, 121, 132, 131, 131, 114, 137, 127, 124, 102, 131, 122, 122, 115, 118, 108, 94, 131, 111, 110, 96, 111, 132, 125, 133, 152, 120, 123, 108, 133, 119, 123, 133, 118, 113, 128, 112, 144, 129, 133, 128, 116, 125, 124, 115, 134, 116, 126, 109, 114, 127, 138, 133, 118, 129, 120, 131, 143, 130, 136, 134, 123, 111, 142, 116, 125, 114, 111, 120, 120, 132, 136, 120, 119, 125, 121, 138, 136, 127, 125, 131, 114, 116, 124, 142, 139, 137, 140, 116, 135, 125, 122, 114, 127, 145, 106, 114, 115, 129, 113, 92, 117, 158, 132, 138, 139, 139, 110, 128, 120, 125, 132, 113, 111, 116, 127, 124, 117, 122, 133, 153, 132, 129, 128, 123, 117, 117, 136, 103, 110, 119, 124, 113, 134, 133, 124, 118, 113, 133, 111, 133, 133, 137, 125, 123, 130, 141, 127, 114, 123, 129, 123, 124, 120, 130, 124, 134, 131, 149, 129, 136, 119, 118, 112, 118, 120, 119, 128, 124, 126, 130, 127, 121, 134, 153, 123, 144, 128, 118, 140, 116, 113, 138, 115, 125, 125, 122, 126, 128, 115, 127, 107, 128, 121, 112, 119, 118, 120, 133, 122, 145, 143, 127, 121, 130, 139, 118, 152, 124, 119, 124, 113, 102, 130, 142, 132, 127, 135, 127, 121, 131, 138, 140, 149, 121, 132, 127, 117, 142, 122, 134, 123, 132, 121, 125, 130, 133, 125, 131, 114, 137, 125, 115, 116, 144, 105, 135, 132, 129, 114, 143, 123, 136, 86, 125, 145, 112, 136, 138, 121, 117, 132, 123, 136, 122, 117, 117, 137, 118, 132, 130, 118, 135, 119, 138, 108, 139, 117, 110, 123, 127, 118, 131, 122, 121, 115, 129, 134, 120, 136, 119, 119, 122, 120, 124, 115, 135, 122, 120, 122, 108, 118, 118, 117, 105, 137, 119, 137, 124, 120, 118, 116, 120, 116, 112, 127, 103, 125, 129, 152, 143, 128, 123, 120, 130, 142, 105, 101, 132, 113, 124, 128, 128, 119, 134, 125, 124, 134, 130, 112, 108, 139, 127, 122, 126, 119, 136, 112, 93, 128, 135, 145, 126, 120, 110, 110, 131, 122, 118, 128, 129, 112, 138, 123, 123, 120, 127, 118, 131, 119, 140, 130, 133, 126, 124, 116, 123, 125, 130, 144, 125, 116, 117, 144, 129, 117, 109, 130, 122, 123, 134, 117, 123, 130, 134, 126, 125, 122, 103, 136, 134, 138, 93, 134, 138, 126, 137, 129, 113, 139, 126, 107, 129, 104, 115, 127, 120, 136, 121, 126, 129, 120, 128, 128, 138, 119, 136, 145, 126, 117, 128, 118, 110, 131, 129, 124, 128, 113, 121, 125, 126, 114, 109, 137, 118, 114, 134, 118, 122, 138, 131, 125, 111, 116, 137, 115, 119, 112, 118, 101, 120, 113, 131, 128, 155, 121, 131, 124, 109, 118, 127, 148, 125, 124, 115, 131, 135, 121, 137, 119, 133, 132, 121, 112, 125, 122, 109, 130, 139, 109, 128, 122, 128, 133, 131, 119, 119, 124, 126, 121, 123, 106, 110, 135, 132, 120, 122, 128, 131, 145, 136, 122, 135, 113, 127, 125, 137, 112, 131, 135, 124, 132, 109, 118, 135, 132, 128, 123, 114, 128, 136, 139, 110, 131, 122, 112, 129, 110, 124, 124, 103, 122, 131, 112, 140, 127, 135, 122, 116, 137, 121, 126, 117, 117, 135, 126, 104, 138, 123, 144, 132, 138, 132, 143, 129, 118, 127, 118, 120, 130, 132, 127, 124, 119, 131, 118, 132, 131, 122, 143, 135, 120, 133, 111, 144, 114, 126, 119, 114, 125, 124, 112, 113, 121, 132, 131, 133, 134, 111, 138, 131, 118, 125, 116, 99, 137, 136, 129, 119, 124, 130, 130, 119, 129, 128, 133, 118, 143, 142, 129, 96, 128, 120, 128, 120, 131, 114, 132, 122, 119, 117, 137, 113, 125, 128, 117, 108, 149, 113, 120, 123, 144, 122, 125, 128, 116, 112, 109, 116, 138, 119, 117, 115, 124, 134, 128, 130, 133, 132, 130, 136, 127, 115, 137, 120, 116, 121, 108, 129, 112, 123, 105, 122, 128, 151, 107, 127, 132, 139, 127, 135, 129, 123, 136, 120, 139, 113, 124, 127, 126, 135, 133, 118, 128, 121, 141, 130, 122, 132, 115, 117, 123, 138, 130, 129, 129, 128, 122, 134, 130, 143, 134, 120, 118, 111, 120, 133, 117, 135, 128, 143, 140, 130, 127, 126, 135, 131, 121, 104, 131, 127, 117, 136, 122, 129, 127, 124, 120, 130, 132, 102, 134, 133, 137, 142, 114, 131, 99, 115, 106, 129, 142, 142, 135, 120, 123, 130, 138, 112, 127, 116, 136, 123, 127, 105, 129, 99, 123, 147, 111, 126, 125, 127, 126, 121, 81, 144, 137, 124, 131, 117, 143, 139, 124, 91, 116, 132, 133, 139, 123, 124, 125, 112, 123, 122, 131, 121, 116, 140, 117, 122, 116, 116, 129, 118, 110, 120, 116, 100, 137, 136, 128, 131, 131, 147, 112, 124, 114, 138, 118, 121, 148, 128, 108, 120, 118, 126, 115, 120, 117, 132, 135, 135, 125, 118, 117, 127, 136, 132, 125, 105, 112, 134, 114, 126, 126, 125, 126, 130, 150, 145, 138, 125, 138, 123, 123, 134, 143, 120, 130, 106, 118, 132, 137, 124, 121, 145, 141, 125, 121, 132, 105, 116, 129, 119, 120, 139, 128, 121, 114, 137, 126, 130, 122, 116, 119, 117, 126, 119, 127, 125, 123, 139, 123, 127, 138, 135, 102, 123, 127, 131, 115, 124, 124, 117, 140, 140, 126, 125, 122, 111, 99, 129, 115, 142, 157, 126, 139, 107, 131, 157, 145, 126, 133, 138, 138, 120, 122, 104, 123, 115, 141, 124, 133, 128, 122, 134, 116, 122, 142, 110, 128, 117, 133, 125, 132, 116, 128, 126, 120, 112, 121, 134, 130, 123, 134, 117, 122, 126, 142, 124, 128, 137, 130, 130, 100, 128, 117, 129, 120, 132, 132, 132, 117, 108, 115, 118, 117, 130, 108, 113, 110, 121, 139, 127, 148, 126, 112, 141, 119, 125, 122, 124, 111, 117, 139, 109, 137, 121, 119, 123, 121, 121, 112, 120, 133, 118, 127, 122, 115, 129, 120, 129, 121, 110, 126, 119, 134, 132, 129, 109, 129, 143, 129, 117, 128, 116, 128, 140, 100, 132, 110, 125, 134, 125, 117, 119, 147, 135, 120, 123, 126, 126, 123, 122, 120, 122, 129, 121, 117, 140, 149, 122, 123, 156, 126, 128, 108, 126, 131, 132, 127, 124, 124, 135, 126, 113, 119, 146, 120, 126, 123, 136, 127, 116, 112, 137, 140, 123, 122, 132, 120, 127, 123, 133, 129, 109, 131, 134, 118, 152, 113, 137, 122, 136, 139, 128, 125, 137, 125, 137, 131, 119, 124, 133, 109, 137, 140, 116, 116, 124, 123, 138, 127, 122, 139, 138, 111, 129, 114, 132, 135, 95, 121, 115, 122, 124, 120, 137, 120, 122, 140, 135, 113, 127, 129, 111, 141, 123, 116, 117, 136, 120, 141, 98, 133, 135, 94, 127, 130, 128, 150, 110, 134, 132, 131, 123, 109, 130, 126, 120, 106, 155, 142, 113, 138, 132, 144, 128, 130, 125, 106, 128, 128, 106, 117, 140, 135, 102, 124, 141, 135, 119, 121, 123, 114, 124, 130, 117, 126, 122, 135, 133, 120, 112, 114, 142, 117, 128, 140, 117, 129, 133, 121, 123, 138, 132, 111, 114, 126, 124, 130, 129, 132, 112, 123, 116, 139, 124, 133, 125, 119, 96, 127, 125, 121, 97, 125, 130, 93, 122, 117, 111, 121, 113, 146, 120, 125, 133, 127, 121, 146, 137, 124, 133, 119, 129, 124, 137, 125, 123, 128, 138, 135, 130, 121, 133, 103, 112, 116, 136, 117, 116, 107, 128, 116, 133, 113, 116, 128, 130, 132, 139, 114, 126, 128, 110, 110, 127, 123, 122, 129, 124, 119, 123, 137, 121, 115, 127, 127, 133, 117, 142, 116, 143, 131, 129, 136, 120, 127, 120, 120, 117, 128, 119, 124, 130, 114, 113, 132, 128, 129, 132, 143, 114, 135, 145, 128, 115, 147, 112, 136, 134, 141, 108, 116, 122, 129, 132, 123, 132, 118, 111, 114, 141, 109, 116, 122, 122, 130, 155, 121, 137, 131, 127, 107, 107, 122, 134, 107, 121, 135, 133, 131, 129, 122, 132, 128, 119, 139, 136, 129, 117, 125, 126, 128, 134, 112, 123, 123, 118, 139, 105, 124, 120, 128, 123, 115, 123, 106, 137, 118, 137, 103, 113, 117, 133, 150, 130, 127, 107, 122, 123, 123, 128, 124, 131, 115, 118, 110, 120, 121, 114, 135, 113, 144, 150, 119, 138, 123, 113, 120, 126, 141, 157, 124, 119, 127, 130, 131, 120, 142, 128, 126, 122, 130, 139, 128, 132, 122, 139, 142, 139, 117, 117, 136, 123, 152, 132, 150, 121, 133, 116, 127, 125, 121, 136, 127, 123, 125, 115, 112, 115, 137, 134, 150, 124, 111, 146, 115, 132, 114, 130, 114, 131, 131, 135, 125, 128, 114, 127, 137, 140, 126, 117, 132, 112, 115, 142, 118, 114, 120, 135, 128, 130, 101, 127, 137, 141, 122, 102, 117, 125, 117, 126, 133, 158, 118, 132, 116, 135, 134, 135, 135, 150, 120, 135, 128, 124, 137, 124, 131, 129, 133, 134, 134, 139, 138, 113, 132, 135, 99, 129, 124, 120, 143, 138, 131, 116, 136, 108, 124, 144, 134, 114, 129, 126, 138, 138, 135, 121, 102, 127, 122, 125, 125, 123, 115, 136, 122, 120, 131, 125, 151, 129, 106, 117, 135, 124, 119, 126, 144, 127, 112, 126, 141, 126, 123, 121, 116, 133, 123, 122, 134, 121, 130, 117, 106, 136, 139, 123, 125, 119, 127, 129, 126, 114, 133, 135, 134, 117, 116, 126, 130, 117, 128, 120, 134, 131, 125, 116, 123, 136, 138, 134, 135, 126, 127, 116, 120, 126, 136, 131, 114, 122, 118, 131, 111, 128, 105, 129, 119, 127, 126, 123, 128, 114, 122, 133, 131, 124, 136, 110, 123, 153, 126, 120, 112, 128, 120, 109, 122, 128, 118, 144, 104, 120, 148, 136, 127, 117, 115, 114, 131, 146, 119, 126, 126, 128, 126, 111, 120, 124, 139, 149, 107, 148, 130, 127, 121, 106, 123, 119, 130, 131, 111, 142, 123, 130, 127, 125, 125, 118, 148, 123, 138, 120, 135, 134, 115, 111, 122, 131, 119, 119, 113, 122, 129, 124, 135, 129, 119, 131, 140, 125, 137, 127, 126, 129, 137, 125, 103, 110, 137, 108, 123, 130, 139, 120, 127, 142, 138, 105, 132, 129, 115, 106, 145, 129, 130, 110, 115, 111, 122, 117, 130, 142, 127, 126, 125, 115, 130, 125, 111, 122, 109, 132, 127, 123, 141, 122, 118, 135, 116, 120, 110, 122, 130, 115, 138, 116, 139, 133, 130, 126, 122, 119, 118, 128, 144, 124, 125, 131, 135, 130, 126, 131, 106, 133, 107, 131, 125, 98, 122, 119, 122, 135, 135, 114, 126, 110, 139, 149, 125, 132, 112, 130, 132, 125, 128, 122, 141, 118, 108, 139, 109, 145, 137, 128, 132, 129, 122, 118, 107, 126, 116, 120, 115, 117, 108, 132, 119, 109, 125, 148, 120, 129, 124, 104, 118, 131, 111, 124, 132, 113, 125, 108, 133, 122, 109, 128, 132, 130, 125, 132, 118, 135, 122, 125, 118, 129, 108, 141, 117, 122, 128, 119, 127, 135, 137, 121, 129, 127, 136, 125, 129, 129, 116, 129, 140, 120, 145, 120, 130, 109, 118, 122, 121, 124, 120, 137, 130, 126, 120, 113, 117, 123, 109, 122, 116, 118, 133, 128, 115, 119, 127, 140, 133, 115, 125, 159, 122, 132, 135, 126, 124, 120, 132, 155, 142, 131, 119, 134, 128, 114, 141, 108, 119, 153, 123, 101, 139, 120, 134, 121, 113, 125, 137, 122, 130, 109, 129, 134, 125, 117, 130, 130, 110, 137, 107, 133, 132, 117, 132, 136, 112, 130, 115, 126, 110, 127, 109, 149, 127, 118, 144, 128, 146, 117, 136, 144, 110, 144, 122, 108, 133, 102, 118, 123, 122, 134, 114, 120, 128, 129, 130, 112, 136, 139, 149, 129, 134, 120, 137, 134, 126, 122, 134, 115, 122, 124, 120, 120, 129, 134, 121, 149, 118, 138, 131, 131, 141, 120, 113, 128, 108, 123, 130, 130, 128, 123, 132, 106, 116, 118, 126, 122, 110, 128, 128, 127, 141, 136, 120, 118, 121, 112, 127, 117, 121, 146, 139, 130, 137, 128, 117, 106, 139, 139, 121, 146, 141, 134, 129, 130, 137, 124, 117, 106, 135, 125, 135, 111, 125, 132, 129, 117, 86, 118, 122, 129, 129, 136, 125, 127, 133, 128, 137, 165, 132, 139, 116, 113, 135, 121, 130, 134, 116, 133, 113, 134, 118, 124, 136, 96, 109, 114, 115, 132, 130, 129, 135, 126, 122, 140, 134, 123, 101, 128, 142, 123, 109, 133, 117, 124, 133, 140, 116, 134, 120, 113, 136, 119, 124, 139, 117, 127, 135, 113, 144, 131, 113, 124, 145, 123, 122, 130, 118, 120, 136, 99, 103, 114, 112, 124, 133, 128, 115, 124, 122, 131, 134, 125, 120, 120, 117, 154, 150, 120, 142, 135, 135, 133, 95, 117, 134, 94, 119, 134, 124, 129, 122, 135, 106, 125, 123, 139, 143, 96, 117, 127, 135, 137, 137, 130, 114, 144, 116, 117, 119, 117, 152, 129, 118, 140, 124, 123, 126, 128, 130, 127, 115, 110, 125, 127, 130, 122, 132, 117, 137, 109, 111, 131, 127, 126, 116, 129, 121, 111, 128, 124, 143, 114, 129, 139, 114, 109, 124, 124, 109, 126, 128, 152, 130, 122, 132, 133, 118, 131, 117, 114, 114, 128, 121, 127, 119, 137, 117, 149, 122, 136, 122, 113, 130, 125, 116, 116, 125, 123, 124, 122, 131, 125, 133, 131, 120, 115, 122, 117, 121, 132, 95, 143, 145, 133, 113, 125, 133, 141, 112, 115, 140, 123, 134, 148, 110, 118, 129, 138, 123, 119, 138, 111, 139, 127, 131, 115, 128, 137, 127, 122, 148, 127, 123, 125, 125, 128, 134, 141, 136, 123, 136, 121, 123, 119, 127, 121, 110, 123, 120, 127, 130, 118, 135, 126, 141, 126, 116, 130, 115, 132, 123, 129, 117, 131, 110, 117, 123, 107, 140, 125, 117, 124, 135, 124, 113, 139, 130, 143, 106, 131, 119, 144, 117, 97, 117, 126, 122, 121, 120, 125, 110, 116, 113, 132, 114, 123, 119, 141, 107, 121, 129, 138, 129, 148, 121, 122, 118, 120, 120, 134, 133, 113, 120, 134, 129, 116, 144, 127, 126, 120, 119, 144, 134, 142, 116, 127, 119, 134, 111, 125, 138, 125, 101, 131, 104, 85, 134, 127, 133, 120, 141, 121, 113, 128, 118, 114, 140, 133, 134, 146, 127, 115, 118, 122, 136, 133, 138, 107, 140, 142, 132, 116, 122, 135, 140, 108, 131, 148, 127, 135, 131, 131, 134, 119, 127, 100, 125, 131, 102, 118, 124, 121, 134, 135, 119, 106, 122, 120, 131, 112, 119, 120, 124, 129, 124, 118, 125, 146, 132, 121, 130, 134, 105, 131, 110, 125, 133, 138, 122, 113, 129, 113, 129, 123, 120, 135, 130, 116, 128, 120, 123, 124, 128, 127, 132, 127, 117, 144, 128, 114, 126, 145, 127, 113, 122, 129, 130, 147, 115, 123, 93, 143, 136, 118, 134, 107, 134, 131, 133, 109, 126, 129, 127, 128, 126, 141, 144, 147, 111, 116, 152, 109, 126, 123, 114, 116, 126, 98, 127, 117, 117, 131, 122, 130, 132, 149, 121, 129, 124, 116, 125, 121, 109, 104, 115, 125, 120, 148, 114, 134, 121, 122, 122, 130, 123, 117, 123, 129, 131, 116, 104, 125, 128, 116, 117, 134, 131, 122, 127, 102, 108, 140, 129, 125, 129, 130, 110, 100, 121, 124, 131, 128, 126, 130, 125, 123, 137, 118, 133, 145, 135, 116, 120, 123, 123, 120, 129, 114, 125, 136, 122, 131, 126, 126, 122, 120, 99, 128, 131, 109, 110, 123, 123, 126, 117, 140, 120, 132, 127, 128, 145, 123, 118, 138, 125, 129, 134, 129, 123, 116, 136, 117, 136, 125, 135, 126, 140, 123, 116, 120, 124, 126, 116, 132, 122, 120, 137, 121, 141, 106, 132, 125, 120, 109, 132, 125, 124, 122, 168, 124, 133, 120, 112, 135, 113, 125, 118, 126, 123, 121, 138, 133, 132, 125, 123, 121, 128, 109, 127, 107, 112, 123, 122, 145, 119, 113, 127, 135, 120, 119, 109, 125, 110, 130, 116, 130, 118, 127, 151, 133, 124, 122, 125, 121, 128, 138, 127, 129, 108, 131, 115, 110, 136, 110, 113, 125, 118, 114, 116, 129, 127, 130, 105, 134, 113, 125, 126, 115, 126, 127, 118, 134, 135, 125, 138, 123, 119, 130, 133, 126, 124, 119, 142, 127, 133, 120, 113, 124, 141, 126, 139, 120, 105, 122, 132, 118, 146, 129, 142, 136, 144, 131, 122, 152, 128, 119, 119, 119, 110, 153, 121, 113, 113, 130, 118, 140, 133, 129, 123, 135, 130, 115, 123, 132, 129, 134, 135, 131, 109, 128, 133, 116, 130, 114, 146, 120, 148, 125, 130, 129, 128, 129, 131, 129, 126, 132, 124, 140, 87, 129, 129, 127, 143, 116, 119, 125, 113, 143, 123, 128, 142, 129, 150, 126, 131, 109, 131, 121, 111, 137, 108, 93, 120, 122, 137, 101, 109, 120, 110, 110, 131, 139, 141, 120, 125, 123, 125, 131, 114, 126, 127, 123, 117, 134, 101, 132, 121, 96, 116, 131, 134, 131, 116, 132, 124, 131, 113, 135, 140, 138, 148, 120, 145, 123, 105, 140, 110, 148, 120, 103, 134, 132, 135, 130, 136, 129, 126, 117, 123, 137, 110, 101, 103, 99, 125, 130, 135, 139, 143, 114, 113, 123, 124, 110, 109, 115, 120, 111, 122, 127, 114, 115, 118, 117, 139, 118, 134, 156, 125, 112, 128, 119, 114, 122, 129, 119, 122, 127, 137, 119, 124, 115, 142, 130, 127, 117, 128, 121, 120, 102, 106, 132, 135, 118, 140, 121, 130, 134, 141, 118, 125, 111, 122, 111, 124, 108, 133, 125, 118, 122, 100, 115, 138, 112, 125, 125, 114, 109, 142, 127, 113, 114, 132, 118, 114, 130, 126, 111, 121, 116, 122, 117, 127, 120, 115, 117, 119, 131, 109, 122, 141, 131, 133, 119, 129, 115, 121, 120, 126, 117, 137, 110, 137, 113, 124, 132, 136, 140, 119, 130, 120, 129, 148, 115, 119, 125, 138, 133, 122, 119, 128, 111, 133, 134, 120, 128, 139, 126, 137, 127, 126, 133, 123, 124, 117, 141, 125, 124, 123, 130, 133, 116, 123, 134, 130, 114, 114, 127, 137, 114, 135, 152, 117, 137, 130, 105, 117, 146, 121, 118, 114, 141, 131, 132, 126, 106, 128, 115, 133, 122, 122, 121, 116, 142, 128, 126, 118, 125, 120, 125, 119, 124, 112, 133, 120, 126, 114, 130, 113, 130, 126, 135, 122, 126, 132, 145, 137, 117, 127, 121, 123, 106, 141, 118, 123, 129, 132, 126, 155, 117, 142, 117, 123, 150, 132, 157, 113, 123, 131, 129, 119, 145, 131, 122, 121, 126, 105, 113, 138, 137, 117, 135, 128, 115, 129, 130, 139, 105, 125, 118, 119, 104, 123, 117, 128, 127, 129, 139, 115, 113, 101, 116, 117, 115, 110, 152, 123, 132, 116, 136, 131, 120, 125, 114, 128, 131, 130, 138, 119, 127, 140, 131, 135, 113, 137, 128, 126, 133, 123, 141, 138, 113, 130, 108, 109, 115, 131, 128, 131, 132, 137, 130, 135, 124, 128, 133, 133, 124, 134, 89, 113, 130, 112, 118, 119, 128, 130, 136, 105, 142, 121, 114, 138, 112, 110, 123, 126, 129, 127, 113, 130, 111, 119, 117, 116, 127, 108, 126, 138, 111, 114, 120, 136, 136, 121, 121, 130, 136, 132, 120, 110, 126, 125, 133, 136, 133, 134, 133, 142, 132, 134, 139, 129, 136, 146, 140, 137, 133, 129, 133, 119, 120, 118, 115, 115, 143, 119, 113, 118, 100, 124, 127, 127, 114, 132, 144, 121, 121, 122, 116, 124, 122, 132, 124, 129, 136, 133, 141, 110, 130, 119, 124, 125, 138, 133, 128, 121, 117, 119, 135, 105, 124, 123, 122, 132, 125, 129, 101, 126, 119, 124, 123, 127, 125, 149, 129, 121, 119, 117, 128, 125, 130, 129, 124, 126, 119, 137, 115, 120, 129, 115, 107, 117, 131, 123, 116, 123, 123, 121, 108, 117, 125, 142, 124, 132, 156, 106, 126, 124, 125, 136, 111, 138, 116, 130, 127, 135, 122, 123, 139, 133, 110, 127, 117, 103, 118, 132, 129, 127, 122, 117, 142, 129, 108, 118, 125, 134, 142, 120, 130, 131, 138, 123, 127, 110, 144, 127, 130, 120, 139, 125, 115, 124, 152, 124, 124, 110, 122, 119, 111, 122, 104, 128, 131, 149, 127, 137, 130, 129, 106, 119, 137, 131, 122, 121, 123, 111, 123, 120, 128, 142, 131, 134, 132, 146, 120, 117, 122, 125, 135, 136, 132, 106, 133, 116, 125, 132, 126, 116, 125, 133, 141, 131, 141, 135, 129, 119, 134, 117, 135, 133, 95, 115, 131, 119, 132, 129, 129, 126, 115, 144, 116, 124, 109, 123, 107, 128, 118, 130, 120, 130, 117, 116, 140, 127, 135, 96, 122, 116, 131, 119, 126, 118, 134, 131, 122, 123, 118, 104, 108, 119, 129, 126, 125, 123, 135, 128, 118, 123, 136, 119, 123, 127, 136, 113, 127, 114, 118, 111, 120, 124, 124, 150, 92, 119, 107, 127, 116, 138, 116, 144, 101, 112, 114, 138, 120, 132, 137, 125, 122, 110, 127, 125, 121, 114, 134, 132, 161, 130, 133, 129, 138, 147, 149, 138, 131, 133, 121, 126, 122, 128, 128, 122, 138, 108, 135, 120, 116, 111, 127, 121, 118, 132, 147, 135, 130, 125, 124, 127, 120, 149, 118, 115, 130, 134, 132, 134, 147, 134, 135, 125, 136, 132, 127, 139, 120, 138, 116, 124, 119, 98, 140, 130, 112, 144, 124, 121, 131, 120, 123, 127, 133, 118, 119, 126, 116, 153, 131, 112, 135, 140, 125, 121, 136, 129, 138, 117, 120, 134, 135, 118, 124, 130, 112, 131, 125, 110, 112, 120, 146, 128, 118, 121, 143, 121, 124, 137, 137, 124, 141, 137, 135, 118, 124, 116, 132, 116, 134, 135, 125, 127, 115, 113, 122, 130, 148, 145, 108, 114, 131, 130, 152, 139, 126, 114, 132, 128, 127, 127, 115, 123, 118, 127, 131, 144, 136, 126, 133, 139, 125, 132, 125, 112, 120, 136, 117, 127, 134, 137, 120, 130, 119, 120, 126, 142, 138, 135, 126, 111, 128, 149, 135, 121, 121, 126, 124, 143, 122, 134, 137, 120, 126, 112, 128, 115, 136, 120, 129, 130, 114, 121, 151, 105, 123, 123, 136, 130, 128, 122, 123, 121, 116, 115, 124, 136, 124, 146, 134, 121, 146, 146, 124, 131, 136, 128, 118, 133, 125, 125, 122, 118, 134, 126, 134, 142, 144, 143, 128, 104, 125, 128, 140, 137, 148, 137, 136, 136, 126, 122, 142, 135, 132, 123, 115, 131, 126, 132, 133, 134, 120, 134, 123, 116, 122, 114, 127, 119, 131, 128, 130, 125, 137, 150, 125, 131, 130, 119, 140, 120, 133, 128, 127, 135, 119, 123, 135, 126, 132, 124, 109, 134, 123, 142, 123, 139, 134, 126, 124, 109, 114, 131, 125, 118, 122, 121, 113, 131, 126, 111, 134, 110, 126, 126, 121, 126, 120, 127, 121, 117, 117, 127, 142, 128, 139, 139, 131, 119, 123, 118, 131, 142, 131, 132, 128, 114, 115, 128, 127, 115, 131, 122, 125, 117, 124, 132, 129, 132, 110, 112, 137, 132, 114, 123, 120, 130, 115, 136, 118, 123, 118, 125, 134, 134, 116, 114, 134, 138, 139, 138, 123, 123, 119, 139, 120, 108, 130, 133, 130, 133, 128, 113, 137, 136, 118, 116, 134, 123, 116, 135, 115, 133, 129, 146, 118, 123, 132, 134, 119, 119, 137, 132, 122, 134, 124, 116, 133, 143, 130, 131, 140, 125, 137, 117, 128, 128, 111, 117, 104, 142, 132, 102, 143, 130, 133, 126, 136, 131, 123, 125, 112, 127, 111, 118, 137, 129, 118, 127, 124, 135, 122, 131, 122, 126, 148, 124, 112, 124, 118, 132, 135, 124, 123, 135, 114, 135, 135, 115, 112, 133, 134, 127, 143, 129, 114, 155, 128, 142, 117, 122, 117, 117, 145, 125, 121, 121, 126, 122, 124, 133, 139, 135, 135, 127, 115, 117, 124, 119, 126, 135, 112, 115, 145, 136, 118, 132, 126, 136, 141, 128, 114, 122, 113, 133, 126, 118, 156, 156, 125, 124, 127, 126, 114, 110, 116, 112, 125, 128, 124, 123, 114, 142, 129, 126, 116, 146, 126, 125, 116, 125, 122, 131, 122, 136, 124, 134, 113, 102, 117, 127, 117, 123, 122, 150, 127, 120, 133, 123, 138, 118, 132, 117, 136, 141, 132, 125, 133, 138, 129, 124, 116, 124, 128, 130, 131, 133, 108, 112, 121, 142, 113, 120, 115, 117, 114, 125, 126, 120, 130, 134, 121, 139, 138, 124, 135, 109, 132, 136, 118, 107, 105, 133, 123, 127, 119, 121, 126, 115, 121, 139, 121, 131, 126, 133, 126, 117, 126, 134, 121, 117, 131, 119, 132, 117, 135, 128, 117, 121, 119, 119, 109, 117, 122, 115, 112, 139, 120, 124, 137, 122, 129, 134, 119, 115, 114, 117, 116, 118, 108, 123, 136, 125, 119, 121, 130, 120, 136, 130, 122, 132, 124, 136, 114, 123, 136, 137, 123, 126, 131, 117, 126, 134, 143, 141, 124, 120, 107, 131, 127, 137, 150, 130, 126, 156, 136, 131, 148, 123, 118, 117, 131, 134, 124, 113, 137, 128, 135, 121, 137, 121, 139, 123, 103, 117, 114, 116, 125, 153, 113, 123, 135, 130, 130, 122, 108, 119, 127, 105, 124, 119, 137, 132, 118, 126, 120, 129, 115, 132, 115, 135, 128, 108, 110, 130, 113, 127, 118, 109, 132, 109, 116, 127, 126, 129, 125, 117, 121, 131, 132, 110, 112, 145, 123, 133, 128, 112, 115, 128, 115, 119, 122, 121, 138, 123, 123, 117, 141, 139, 127, 121, 152, 119, 128, 132, 126, 122, 130, 121, 126, 109, 116, 127, 118, 131, 114, 126, 120, 136, 123, 115, 121, 135, 120, 132, 112, 151, 117, 126, 133, 115, 119, 118, 133, 134, 119, 120, 110, 123, 121, 153, 131, 139, 125, 136, 130, 117, 136, 127, 122, 120, 126, 130, 139, 111, 126, 144, 130, 123, 131, 142, 129, 131, 120, 129, 118, 127, 133, 129, 137, 131, 116, 126, 129, 128, 142, 148, 126, 116, 130, 119, 125, 108, 122, 113, 125, 139, 118, 131, 131, 131, 154, 118, 126, 127, 135, 135, 119, 149, 125, 129, 123, 135, 138, 137, 131, 138, 103, 149, 133, 123, 116, 101, 124, 109, 120, 132, 129, 123, 124, 115, 117, 105, 116, 126, 129, 124, 117, 111, 124, 137, 136, 125, 123, 144, 113, 138, 139, 143, 120, 140, 131, 119, 129, 117, 133, 121, 107, 128, 126, 119, 115, 101, 127, 121, 126, 115, 138, 116, 113, 123, 114, 129, 116, 131, 127, 124, 134, 123, 127, 118, 148, 109, 119, 125, 124, 127, 160, 128, 120, 116, 113, 129, 109, 126, 120, 123, 129, 144, 116, 131, 140, 124, 121, 134, 114, 112, 120, 122, 121, 116, 133, 132, 126, 119, 147, 146, 140, 137, 137, 122, 124, 129, 137, 121, 119, 136, 128, 153, 154, 100, 122, 121, 110, 126, 124, 126, 123, 101, 132, 130, 145, 152, 140, 122, 135, 117, 134, 141, 108, 124, 120, 132, 127, 132, 118, 138, 132, 129, 124, 134, 138, 114, 129, 124, 129, 123, 119, 130, 114, 135, 128, 94, 116, 121, 117, 130, 150, 124, 130, 115, 126, 116, 125, 111, 127, 97, 128, 139, 121, 98, 147, 125, 127, 134, 120, 125, 115, 112, 133, 131, 113, 127, 130, 141, 122, 120, 145, 139, 123, 153, 136, 133, 120, 118, 119, 117, 121, 118, 140, 133, 127, 128, 129, 135, 121, 111, 129, 121, 126, 133, 121, 138, 124, 131, 107, 143, 139, 131, 112, 128, 132, 142, 146, 129, 107, 136, 125, 131, 134, 139, 134, 131, 130, 120, 127, 116, 118, 152, 131, 118, 121, 123, 129, 129, 135, 129, 128, 123, 130, 134, 113, 135, 111, 123, 116, 127, 118, 114, 123, 129, 125, 138, 116, 108, 116, 134, 118, 127, 122, 110, 133, 125, 128, 121, 136, 128, 132, 144, 127, 117, 124, 125, 125, 140, 122, 123, 143, 149, 92, 113, 127, 137, 115, 128, 128, 148, 140, 121, 140, 128, 133, 117, 139, 111, 147, 124, 127, 112, 118, 131, 116, 107, 131, 148, 113, 128, 120, 127, 124, 130, 113, 117, 127, 133, 123, 123, 116, 139, 132, 143, 139, 121, 123, 118, 118, 114, 124, 119, 129, 126, 134, 125, 96, 117, 126, 127, 132, 122, 109, 129, 125, 123, 104, 142, 134, 126, 118, 126, 113, 126, 126, 128, 124, 127, 130, 140, 135, 140, 112, 122, 139, 127, 118, 121, 118, 127, 134, 135, 123, 132, 131, 122, 125, 112, 117, 135, 128, 112, 114, 130, 131, 127, 139, 151, 148, 125, 138, 129, 118, 130, 131, 113, 127, 114, 87, 122, 140, 134, 117, 141, 111, 126, 144, 124, 126, 139, 136, 123, 125, 122, 120, 138, 127, 130, 94, 125, 129, 118, 121, 131, 147, 147, 144, 126, 119, 124, 130, 149, 118, 145, 119, 142, 140, 124, 130, 113, 120, 140, 130, 127, 124, 126, 119, 124, 126, 116, 120, 118, 125, 120, 125, 134, 129, 112, 129, 125, 101, 142, 135, 136, 129, 138, 123, 120, 119, 144, 144, 121, 135, 113, 139, 107, 138, 146, 120, 112, 126, 113, 133, 116, 123, 108, 120, 132, 123, 128, 127, 129, 109, 112, 129, 137, 121, 136, 124, 121, 127, 122, 125, 126, 123, 110, 128, 124, 135, 128, 129, 135, 133, 138, 146, 113, 128, 115, 131, 126, 135, 115, 127, 138, 123, 121, 112, 133, 144, 128, 127, 128, 124, 130, 133, 130, 122, 117, 136, 122, 125, 115, 128, 114, 113, 139, 121, 114, 130, 130, 126, 130, 129, 129, 129, 121, 121, 124, 135, 124, 126, 133, 117, 116, 126, 120, 134, 136, 131, 114, 110, 143, 110, 131, 122, 141, 128, 136, 108, 105, 135, 120, 126, 135, 132, 131, 135, 121, 115, 132, 112, 124, 119, 130, 120, 112, 140, 117, 128, 125, 124, 128, 118, 107, 121, 114, 128, 117, 138, 133, 132, 112, 124, 120, 111, 128, 139, 133, 132, 127, 126, 137, 123, 132, 136, 124, 124, 125, 132, 126, 129, 136, 125, 149, 117, 117, 121, 121, 142, 148, 116, 123, 134, 135, 136, 120, 136, 114, 121, 122, 111, 134, 129, 124, 116, 118, 113, 126, 119, 132, 128, 134, 132, 125, 127, 112, 145, 128, 143, 130, 132, 126, 122, 113, 139, 111, 110, 126, 124, 134, 121, 139, 115, 131, 127, 125, 130, 106, 120, 133, 120, 120, 145, 111, 136, 124, 123, 146, 108, 120, 127, 125, 128, 151, 149, 116, 134, 139, 122, 134, 106, 118, 117, 115, 154, 135, 128, 122, 144, 126, 128, 121, 127, 124, 118, 134, 113, 127, 123, 123, 142, 131, 165, 140, 117, 115, 134, 100, 123, 118, 120, 123, 126, 124, 142, 128, 123, 132, 130, 118, 122, 125, 130, 141, 114, 114, 123, 126, 123, 142, 132, 123, 135, 124, 138, 144, 123, 131, 106, 108, 130, 129, 138, 130, 129, 120, 110, 122, 117, 133, 133, 119, 137, 117, 119, 122, 107, 126, 123, 123, 88, 106, 126, 127, 120, 130, 122, 128, 121, 114, 131, 133, 146, 138, 138, 121, 121, 113, 131, 140, 136, 118, 117, 117, 138, 118, 116, 122, 134, 140, 116, 136, 117, 131, 121, 129, 131, 143, 139, 132, 132, 118, 137, 124, 125, 144, 153, 133, 127, 141, 119, 117, 122, 138, 129, 141, 142, 126, 132, 121, 116, 111, 132, 140, 112, 134, 118, 140, 134, 109, 140, 119, 131, 133, 123, 126, 139, 121, 122, 129, 122, 141, 125, 135, 120, 122, 139, 113, 121, 125, 140, 117, 130, 138, 126, 123, 115, 109, 115, 126, 123, 117, 140, 132, 114, 111, 141, 132, 125, 128, 108, 133, 124, 108, 133, 129, 121, 107, 116, 115, 124, 118, 125, 139, 124, 130, 152, 129, 118, 124, 116, 129, 127, 134, 130, 120, 136, 147, 140, 114, 120, 132, 126, 122, 115, 126, 119, 126, 128, 127, 133, 120, 116, 139, 134, 121, 120, 106, 138, 99, 118, 111, 122, 130, 125, 119, 114, 133, 108, 143, 133, 144, 131, 139, 122, 113, 131, 143, 118, 166, 116, 120, 129, 115, 131, 129, 117, 124, 136, 145, 115, 101, 127, 129, 128, 134, 130, 115, 122, 117, 145, 123, 119, 120, 142, 118, 123, 130, 135, 122, 108, 117, 116, 121, 126, 129, 128, 126, 128, 137, 118, 120, 125, 127, 112, 140, 131, 145, 121, 122, 131, 115, 132, 115, 117, 119, 105, 118, 116, 115, 120, 127, 139, 122, 117, 124, 160, 123, 129, 139, 141, 124, 121, 148, 107, 126, 143, 124, 124, 141, 128, 134, 104, 124, 118, 132, 124, 133, 132, 131, 136, 130, 103, 120, 128, 122, 114, 120, 141, 116, 119, 128, 140, 129, 138, 126, 109, 137, 141, 126, 131, 131, 121, 135, 142, 118, 134, 123, 120, 116, 108, 115, 140, 127, 135, 112, 127, 124, 134, 110, 136, 132, 131, 120, 114, 109, 131, 119, 159, 146, 123, 128, 110, 134, 132, 120, 124, 136, 136, 125, 116, 118, 142, 130, 123, 122, 130, 136, 122, 131, 130, 128, 120, 115, 135, 142, 125, 118, 118, 115, 106, 118, 128, 115, 104, 137, 121, 136, 141, 123, 116, 122, 115, 116, 139, 117, 127, 126, 117, 129, 109, 126, 148, 132, 105, 117, 134, 124, 106, 133, 136, 139, 112, 121, 142, 136, 113, 127, 120, 143, 125, 131, 134, 131, 137, 131, 113, 119, 133, 137, 119, 121, 132, 128, 134, 129, 128, 139, 113, 121, 122, 134, 118, 112, 129, 122, 151, 134, 130, 108, 127, 124, 126, 126, 132, 128, 116, 121, 121, 133, 129, 123, 124, 120, 134, 109, 129, 128, 129, 127, 133, 129, 124, 116, 113, 130, 130, 128, 116, 117, 113, 120, 132, 134, 125, 128, 146, 113, 124, 148, 135, 131, 127, 112, 132, 124, 107, 113, 119, 128, 148, 121, 115, 133, 130, 135, 118, 109, 121, 142, 128, 129, 136, 123, 113, 111, 137, 122, 129, 143, 134, 118, 125, 108, 131, 106, 122, 124, 138, 115, 126, 116, 116, 112, 135, 136, 122, 133, 145, 128, 115, 122, 127, 114, 136, 127, 123, 130, 130, 129, 129, 123, 121, 125, 114, 126, 117, 129, 113, 119, 132, 149, 124, 114, 123, 123, 109, 122, 114, 128, 134, 138, 112, 139, 93, 122, 120, 125, 127, 127, 156, 122, 124, 134, 122, 120, 137, 135, 127, 137, 137, 115, 136, 136, 140, 136, 130, 116, 118, 125, 124, 125, 134, 110, 127, 114, 134, 134, 122, 125, 130, 129, 145, 138, 107, 156, 121, 120, 122, 125, 126, 115, 134, 129, 126, 128, 113, 130, 116, 114, 141, 137, 125, 113, 120, 136, 128, 133, 118, 130, 121, 127, 109, 114, 132, 126, 114, 117, 128, 125, 112, 125, 125, 113, 131, 110, 123, 124, 138, 126, 127, 126, 134, 105, 129, 118, 120, 153, 125, 139, 132, 134, 127, 117, 127, 117, 123, 137, 109, 101, 130, 116, 133, 125, 108, 119, 130, 123, 125, 144, 114, 130, 129, 100, 142, 121, 124, 123, 123, 124, 124, 110, 127, 119, 122, 114, 132, 124, 110, 126, 109, 118, 109, 137, 136, 122, 122, 147, 130, 134, 125, 110, 113, 118, 151, 127, 142, 119, 150, 95, 131, 125, 122, 111, 124, 87, 121, 119, 116, 137, 122, 115, 119, 124, 143, 110, 134, 110, 127, 141, 122, 127, 101, 133, 133, 127, 114, 140, 120, 127, 131, 139, 130, 133, 123, 126, 139, 124, 137, 125, 109, 129, 112, 136, 126, 111, 154, 133, 122, 126, 126, 126, 126, 133, 120, 129, 108, 123, 120, 105, 143, 121, 122, 109, 130, 127, 122, 128, 127, 121, 147, 125, 126, 118, 131, 130, 116, 117, 134, 130, 130, 118, 119, 117, 122, 126, 128, 115, 109, 115, 128, 112, 132, 108, 122, 121, 121, 121, 109, 136, 121, 140, 118, 128, 138, 133, 143, 113, 140, 123, 137, 120, 109, 138, 131, 123, 123, 129, 145, 114, 120, 130, 117, 121, 144, 129, 129, 123, 121, 126, 102, 121, 134, 149, 110, 128, 105, 111, 124, 114, 137, 117, 121, 128, 132, 97, 104, 112, 131, 118, 113, 123, 107, 127, 132, 131, 121, 130, 136, 129, 121, 107, 122, 126, 118, 133, 139, 118, 135, 121, 132, 133, 111, 108, 127, 124, 133, 118, 132, 153, 115, 119, 117, 130, 102, 114, 129, 111, 130, 112, 112, 113, 117, 120, 148, 116, 121, 122, 132, 139, 103, 123, 139, 137, 122, 136, 122, 134, 111, 145, 137, 118, 129, 123, 127, 111, 128, 124, 125, 129, 118, 124, 126, 154, 117, 128, 144, 120, 112, 110, 120, 130, 130, 111, 126, 119, 129, 121, 133, 120, 124, 140, 129, 126, 135, 135, 144, 132, 121, 124, 139, 129, 126, 117, 128, 124, 148, 121, 137, 128, 112, 115, 111, 133, 125, 122, 126, 118, 119, 119, 153, 135, 142, 120, 102, 130, 140, 117, 136, 124, 119, 103, 124, 121, 131, 115, 129, 123, 135, 118, 120, 113, 98, 137, 144, 128, 116, 118, 144, 124, 126, 121, 122, 132, 128, 105, 125, 129, 142, 99, 125, 111, 119, 121, 113, 138, 130, 129, 117, 129, 109, 122, 129, 121, 115, 129, 118, 134, 149, 117, 110, 129, 129, 140, 131, 120, 126, 119, 128, 119, 123, 133, 132, 137, 137, 124, 122, 124, 116, 126, 127, 134, 112, 143, 139, 127, 132, 129, 131, 117, 106, 136, 124, 126, 108, 138, 121, 122, 107, 112, 143, 127, 124, 103, 130, 126, 116, 131, 131, 140, 115, 128, 128, 109, 107, 121, 127, 116, 125, 123, 120, 128, 124, 125, 121, 126, 117, 137, 124, 150, 138, 107, 120, 124, 114, 130, 110, 124, 141, 146, 132, 115, 116, 130, 127, 128, 109, 126, 125, 108, 122, 132, 111, 125, 101, 129, 124, 132, 126, 108, 122, 118, 116, 136, 124, 131, 131, 128, 115, 133, 135, 131, 121, 116, 138, 129, 124, 128, 109, 113, 117, 126, 120, 111, 102, 128, 112, 114, 121, 136, 126, 128, 113, 130, 134, 135, 126, 131, 140, 122, 126, 135, 119, 126, 129, 131, 129, 137, 146, 122, 128, 131, 135, 132, 119, 137, 125, 120, 124, 120, 124, 117, 152, 115, 123, 121, 125, 135, 102, 135, 137, 129, 128, 119, 126, 115, 126, 127, 127, 120, 122, 117, 119, 130, 120, 128, 132, 131, 120, 114, 104, 111, 129, 127, 139, 138, 141, 124, 132, 129, 122, 114, 137, 107, 119, 137, 122, 111, 118, 117, 125, 128, 124, 121, 122, 129, 138, 113, 143, 137, 126, 139, 116, 149, 132, 125, 123, 129, 124, 131, 129, 142, 116, 101, 121, 122, 116, 114, 139, 144, 154, 130, 108, 133, 141, 133, 162, 128, 130, 142, 114, 158, 115, 114, 131, 122, 131, 124, 121, 127, 121, 117, 148, 150, 120, 126, 129, 139, 119, 134, 141, 114, 140, 128, 120, 126, 142, 135, 125, 100, 136, 130, 121, 120, 122, 136, 129, 106, 115, 131, 128, 115, 127, 121, 106, 153, 118, 156, 125, 123, 135, 127, 128, 122, 129, 132, 128, 119, 133, 99, 137, 125, 140, 137, 128, 105, 131, 141, 131, 140, 134, 140, 127, 129, 117, 147, 114, 130, 128, 123, 123, 118, 124, 116, 120, 127, 125, 139, 123, 129, 143, 130, 146, 132, 128, 134, 142, 138, 125, 127, 119, 127, 136, 113, 141, 122, 122, 127, 140, 124, 133, 99, 115, 135, 138, 110, 110, 113, 127, 106, 149, 123, 124, 127, 126, 111, 121, 131, 140, 120, 140, 121, 118, 126, 122, 123, 107, 124, 135, 122, 122, 125, 124, 128, 121, 125, 122, 115, 101, 112, 108, 135, 136, 117, 135, 126, 121, 125, 112, 110, 134, 129, 149, 117, 122, 110, 121, 131, 131, 127, 127, 145, 124, 104, 126, 120, 134, 132, 125, 124, 110, 121, 141, 139, 123, 123, 122, 132, 133, 120, 124, 139, 130, 116, 144, 129, 138, 120, 114, 134, 126, 131, 121, 113, 113, 140, 132, 160, 125, 129, 131, 137, 126, 124, 121, 120, 142, 106, 122, 134, 140, 131, 138, 125, 156, 151, 101, 136, 125, 112, 133, 151, 117, 119, 130, 112, 125, 133, 121, 110, 160, 124, 126, 126, 128, 134, 120, 129, 133, 124, 127, 117, 122, 117, 121, 129, 98, 98, 121, 116, 109, 126, 135, 145, 121, 125, 121, 111, 121, 125, 112, 122, 117, 132, 115, 122, 120, 127, 112, 132, 126, 164, 114, 147, 124, 123, 117, 129, 131, 121, 138, 122, 106, 116, 129, 111, 131, 114, 134, 144, 124, 125, 117, 122, 126, 132, 119, 128, 153, 123, 126, 127, 124, 129, 114, 135, 132, 114, 124, 145, 128, 138, 136, 106, 124, 122, 123, 135, 122, 125, 117, 135, 122, 119, 136, 125, 126, 124, 116, 124, 128, 119, 129, 111, 112, 127, 128, 121, 104, 94, 133, 129, 115, 134, 116, 147, 98, 145, 119, 123, 118, 105, 119, 121, 102, 130, 117, 136, 119, 122, 127, 126, 133, 127, 125, 140, 130, 108, 121, 123, 112, 115, 120, 135, 141, 125, 126, 122, 122, 113, 132, 145, 151, 129, 129, 118, 129, 124, 117, 111, 125, 117, 119, 124, 115, 138, 110, 114, 131, 120, 133, 131, 135, 121, 133, 115, 146, 140, 113, 128, 130, 117, 115, 117, 114, 117, 142, 136, 131, 108, 123, 107, 123, 129, 127, 134, 123, 120, 127, 115, 132, 148, 111, 123, 136, 120, 131, 121, 115, 124, 120, 113, 136, 136, 121, 107, 139, 132, 137, 112, 139, 126, 112, 120, 109, 128, 115, 144, 134, 134, 118, 124, 126, 142, 132, 108, 116, 144, 105, 116, 126, 135, 94, 116, 125, 120, 127, 125, 124, 130, 117, 107, 131, 124, 111, 123, 133, 122, 130, 123, 122, 115, 117, 120, 138, 123, 135, 114, 123, 147, 114, 129, 119, 136, 125, 131, 127, 120, 126, 116, 134, 144, 128, 137, 131, 108, 133, 115, 126, 104, 131, 133, 141, 136, 135, 118, 118, 121, 133, 127, 97, 144, 126, 137, 119, 139, 117, 125, 138, 121, 127, 125, 125, 138, 127, 115, 141, 119, 142, 139, 124, 137, 141, 114, 134, 133, 113, 122, 98, 129, 127, 120, 123, 127, 133, 122, 114, 131, 139, 119, 124, 146, 111, 138, 142, 126, 117, 126, 144, 140, 129, 138, 113, 136, 126, 111, 108, 110, 135, 99, 126, 130, 122, 127, 125, 120, 123, 126, 107, 140, 118, 113, 116, 123, 142, 115, 133, 131, 117, 130, 136, 130, 122, 125, 124, 135, 150, 131, 111, 127, 124, 107, 140, 130, 129, 132, 111, 120, 133, 120, 120, 125, 123, 124, 126, 112, 117, 126, 103, 114, 120, 143, 126, 131, 125, 115, 111, 148, 124, 120, 113, 107, 128, 114, 127, 102, 126, 135, 125, 118, 108, 114, 113, 125, 121, 153, 104, 117, 115, 120, 132, 124, 124, 117, 122, 133, 111, 134, 126, 111, 146, 122, 128, 129, 140, 123, 138, 132, 126, 139, 120, 124, 129, 124, 118, 128, 117, 119, 128, 137, 126, 101, 135, 118, 128, 128, 111, 118, 128, 125, 131, 136, 124, 130, 129, 130, 113, 149, 121, 130, 104, 126, 142, 121, 125, 124, 130, 139, 114, 132, 118, 99, 135, 137, 128, 120, 132, 145, 121, 123, 107, 110, 138, 128, 128, 123, 132, 124, 132, 120, 116, 115, 135, 126, 136, 129, 123, 132, 123, 135, 131, 113, 127, 114, 108, 123, 121, 116, 120, 123, 136, 135, 111, 123, 130, 122, 127, 130, 124, 119, 124, 122, 120, 127, 115, 123, 125, 143, 137, 112, 117, 116, 108, 114, 110, 127, 118, 122, 122, 118, 117, 137, 142, 109, 126, 120, 128, 128, 125, 127, 131, 128, 138, 118, 112, 123, 139, 122, 120, 124, 146, 124, 122, 141, 126, 144, 125, 126, 121, 132, 135, 120, 120, 128, 123, 118, 111, 123, 126, 140, 133, 131, 121, 123, 124, 133, 108, 126, 132, 126, 133, 120, 134, 135, 138, 139, 148, 130, 118, 133, 136, 117, 116, 126, 138, 131, 119, 117, 125, 129, 125, 138, 118, 131, 127, 138, 135, 124, 124, 125, 118, 136, 126, 133, 127, 161, 133, 109, 114, 112, 120, 135, 120, 133, 117, 126, 129, 131, 120, 159, 110, 132, 122, 117, 148, 139, 126, 115, 127, 125, 121, 131, 152, 144, 128, 118, 135, 129, 119, 126, 150, 114, 132, 162, 133, 121, 137, 131, 131, 127, 112, 134, 115, 125, 126, 133, 118, 118, 123, 126, 128, 111, 125, 121, 117, 126, 118, 101, 110, 122, 133, 147, 125, 131, 118, 129, 105, 131, 138, 132, 129, 126, 121, 125, 126, 133, 133, 125, 126, 134, 123, 121, 109, 102, 112, 122, 120, 103, 119, 125, 132, 125, 114, 130, 130, 125, 128, 140, 111, 126, 135, 121, 122, 129, 140, 126, 133, 126, 125, 131, 130, 120, 119, 125, 123, 133, 109, 110, 130, 109, 121, 126, 142, 117, 119, 123, 121, 121, 129, 142, 124, 124, 126, 125, 123, 135, 116, 110, 136, 140, 105, 128, 124, 128, 122, 127, 133, 164, 137, 130, 121, 135, 108, 121, 124, 126, 137, 129, 127, 119, 125, 134, 118, 118, 127, 138, 122, 125, 118, 109, 131, 129, 141, 134, 121, 120, 134, 123, 127, 134, 127, 120, 126, 131, 111, 109, 109, 128, 133, 121, 119, 123, 120, 121, 134, 115, 119, 121, 126, 131, 129, 134, 130, 102, 130, 121, 129, 110, 135, 130, 125, 114, 122, 124, 143, 101, 130, 139, 131, 141, 127, 134, 122, 104, 134, 132, 135, 128, 129, 109, 119, 119, 116, 127, 107, 120, 123, 115, 120, 132, 114, 115, 129, 135, 128, 123, 122, 108, 107, 142, 140, 127, 133, 131, 126, 119, 94, 129, 128, 133, 124, 113, 125, 128, 122, 136, 132, 127, 127, 131, 120, 131, 135, 118, 138, 127, 138, 116, 142, 132, 132, 115, 117, 119, 137, 117, 128, 115, 123, 120, 136, 126, 111, 120, 121, 123, 130, 115, 122, 121, 126, 112, 124, 127, 112, 123, 120, 127, 127, 131, 122, 120, 121, 122, 129, 138, 107, 118, 119, 126, 142, 117, 136, 120, 139, 138, 113, 122, 133, 117, 134, 114, 146, 123, 126, 129, 144, 128, 124, 127, 115, 133, 121, 141, 121, 115, 129, 134, 126, 119, 125, 126, 116, 126, 129, 127, 122, 123, 147, 133, 108, 135, 125, 134, 128, 137, 121, 115, 126, 117, 121, 118, 116, 144, 126, 134, 131, 135, 123, 141, 126, 109, 141, 108, 142, 110, 117, 132, 139, 131, 96, 120, 130, 130, 122, 127, 121, 128, 126, 124, 124, 101, 118, 127, 117, 118, 124, 116, 136, 125, 120, 135, 130, 121, 135, 134, 122, 128, 152, 128, 111, 111, 128, 123, 129, 115, 121, 125, 111, 129, 128, 129, 112, 128, 129, 140, 135, 134, 119, 130, 126, 103, 139, 133, 114, 121, 110, 115, 137, 130, 126, 113, 121, 135, 116, 123, 129, 126, 126, 114, 126, 137, 103, 112, 121, 115, 143, 111, 148, 116, 116, 118, 127, 137, 117, 132, 134, 142, 121, 123, 134, 111, 140, 117, 132, 128, 127, 119, 121, 134, 136, 113, 131, 132, 117, 146, 137, 125, 126, 122, 135, 122, 115, 111, 97, 135, 122, 102, 115, 116, 118, 139, 126, 129, 132, 143, 131, 140, 119, 123, 118, 120, 121, 112, 138, 123, 120, 142, 118, 124, 114, 121, 124, 113, 136, 131, 121, 98, 125, 110, 121, 138, 148, 122, 128, 116, 123, 120, 112, 122, 130, 128, 113, 111, 122, 120, 127, 152, 111, 116, 125, 128, 132, 122, 137, 142, 114, 115, 127, 126, 130, 129, 118, 121, 137, 117, 114, 105, 136, 131, 117, 133, 119, 139, 129, 127, 120, 139, 120, 132, 131, 137, 126, 123, 116, 126, 125, 131, 118, 137, 138, 137, 126, 142, 128, 113, 115, 117, 120, 116, 126, 126, 185, 128, 115, 111, 139, 128, 125, 128, 122, 115, 133, 124, 125, 122, 130, 135, 129, 133, 126, 120, 132, 120, 127, 135, 113, 125, 135, 134, 123, 119, 134, 147, 115, 150, 106, 135, 112, 124, 122, 126, 120, 143, 105, 114, 128, 129, 127, 130, 135, 141, 126, 131, 123, 113, 142, 131, 125, 141, 126, 126, 129, 116, 128, 121, 126, 122, 139, 123, 124, 127, 130, 126, 125, 121, 120, 140, 112, 134, 130, 128, 131, 117, 116, 120, 124, 122, 112, 115, 135, 135, 129, 131, 123, 128, 127, 126, 127, 133, 123, 128, 123, 123, 119, 118, 122, 123, 120, 136, 116, 123, 115, 128, 117, 137, 123, 127, 133, 123, 119, 114, 123, 138, 131, 123, 131, 140, 128, 128, 117, 118, 140, 147, 115, 132, 128, 145, 132, 127, 129, 130, 122, 118, 117, 135, 141, 124, 107, 118, 112, 132, 128, 129, 123, 124, 140, 163, 113, 134, 109, 119, 128, 122, 133, 122, 104, 133, 122, 125, 146, 133, 122, 118, 112, 117, 122, 122, 119, 128, 139, 126, 125, 129, 122, 115, 147, 135, 151, 122, 111, 118, 131, 129, 130, 124, 128, 134, 124, 118, 135, 114, 121, 114, 125, 132, 123, 125, 126, 124, 126, 112, 108, 131, 131, 123, 120, 123, 118, 116, 129, 135, 117, 135, 138, 121, 146, 133, 115, 114, 142, 111, 131, 127, 124, 111, 117, 115, 120, 115, 112, 113, 121, 132, 130, 125, 121, 117, 128, 143, 119, 94, 120, 114, 126, 126, 121, 118, 137, 133, 131, 131, 135, 121, 120, 126, 123, 125, 114, 120, 143, 143, 101, 143, 122, 105, 115, 113, 126, 139, 119, 132, 125, 111, 132, 120, 143, 128, 123, 137, 123, 109, 128, 116, 122, 126, 106, 136, 144, 113, 108, 109, 123, 124, 125, 113, 121, 122, 122, 116, 118, 126, 117, 110, 130, 140, 129, 138, 116, 118, 107, 136, 125, 126, 118, 125, 119, 118, 133, 127, 128, 131, 138, 103, 132, 126, 127, 127, 140, 130, 123, 120, 119, 146, 119, 122, 119, 131, 112, 120, 120, 106, 142, 128, 145, 120, 128, 117, 121, 133, 119, 125, 129, 139, 124, 112, 119, 127, 125, 138, 137, 134, 123, 142, 116, 131, 120, 135, 127, 121, 132, 125, 106, 127, 121, 112, 120, 94, 114, 118, 115, 115, 119, 139, 126, 132, 117, 107, 143, 102, 131, 122, 126, 107, 131, 118, 121, 136, 120, 124, 118, 109, 132, 134, 100, 119, 126, 113, 114, 132, 120, 120, 127, 134, 127, 138, 137, 110, 129, 121, 124, 116, 127, 134, 142, 112, 114, 136, 132, 129, 133, 127, 137, 113, 105, 128, 151, 118, 125, 106, 118, 147, 135, 136, 136, 121, 131, 115, 132, 129, 114, 137, 123, 112, 134, 130, 146, 115, 129, 110, 129, 122, 121, 142, 129, 129, 132, 133, 119, 126, 114, 113, 136, 144, 129, 125, 115, 108, 130, 129, 121, 115, 116, 134, 114, 134, 101, 148, 131, 130, 123, 148, 128, 138, 107, 131, 121, 145, 123, 116, 116, 131, 133, 118, 113, 137, 133, 132, 110, 118, 128, 111, 129, 124, 115, 134, 134, 119, 117, 143, 148, 123, 114, 120, 132, 123, 129, 111, 114, 111, 121, 107, 142, 125, 128, 132, 127, 129, 123, 111, 121, 127, 126, 115, 119, 118, 121, 130, 133, 110, 151, 115, 133, 127, 132, 126, 134, 118, 135, 129, 117, 141, 125, 120, 125, 115, 123, 121, 123, 117, 122, 117, 105, 131, 107, 126, 130, 125, 122, 130, 125, 120, 136, 115, 113, 137, 131, 136, 131, 125, 144, 126, 103, 118, 116, 121, 121, 118, 118, 144, 136, 128, 120, 123, 127, 129, 128, 129, 117, 127, 131, 129, 104, 128, 128, 125, 136, 114, 90, 135, 135, 130, 111, 133, 116, 131, 117, 115, 120, 116, 146, 133, 136, 132, 126, 129, 145, 107, 115, 127, 150, 119, 128, 127, 150, 148, 119, 122, 120, 108, 112, 121, 122, 114, 106, 121, 133, 120, 116, 126, 146, 121, 122, 108, 133, 120, 118, 123, 132, 139, 107, 141, 127, 127, 118, 124, 119, 115, 144, 125, 123, 125, 122, 126, 120, 124, 115, 122, 136, 125, 122, 117, 107, 126, 139, 117, 128, 128, 118, 144, 129, 120, 127, 125, 118, 127, 129, 142, 124, 131, 104, 120, 127, 132, 143, 113, 129, 124, 111, 118, 125, 136, 147, 119, 115, 121, 142, 123, 127, 129, 124, 128, 128, 108, 127, 129, 121, 115, 114, 133, 111, 114, 120, 134, 114, 114, 122, 125, 126, 114, 118, 114, 130, 133, 136, 131, 116, 117, 123, 132, 132, 121, 129, 120, 123, 137, 124, 124, 111, 130, 113, 133, 133, 124, 117, 134, 136, 115, 116, 118, 113, 134, 113, 130, 117, 130, 139, 135, 110, 124, 131, 126, 132, 118, 136, 115, 132, 146, 136, 129, 121, 131, 128, 110, 148, 131, 111, 131, 118, 125, 118, 132, 137, 145, 134, 143, 134, 119, 128, 133, 112, 138, 127, 135, 124, 134, 129, 114, 129, 124, 134, 136, 120, 135, 125, 138, 125, 136, 130, 131, 114, 134, 109, 115, 124, 142, 123, 134, 119, 125, 135, 109, 118, 135, 120, 122, 133, 121, 109, 123, 119, 122, 128, 122, 131, 138, 135, 117, 128, 121, 116, 106, 133, 144, 143, 120, 122, 100, 145, 140, 111, 139, 135, 90, 118, 127, 124, 120, 119, 118, 118, 115, 119, 110, 102, 120, 120, 126, 118, 117, 115, 128, 108, 134, 141, 115, 118, 131, 120, 149, 114, 129, 140, 117, 113, 134, 113, 127, 124, 150, 112, 132, 112, 129, 126, 146, 113, 125, 139, 139, 131, 131, 128, 135, 122, 129, 132, 122, 135, 127, 128, 107, 119, 117, 126, 131, 117, 104, 119, 122, 124, 121, 116, 119, 119, 108, 127, 129, 140, 109, 126, 131, 126, 113, 133, 118, 113, 125, 130, 130, 127, 128, 141, 128, 132, 137, 131, 125, 120, 120, 105, 134, 128, 123, 118, 122, 128, 117, 141, 118, 130, 101, 133, 148, 116, 146, 122, 131, 132, 121, 159, 131, 121, 112, 137, 114, 122, 97, 142, 130, 110, 113, 119, 125, 118, 126, 113, 139, 136, 117, 118, 110, 134, 114, 135, 113, 121, 124, 128, 143, 116, 128, 137, 113, 126, 122, 113, 122, 128, 119, 129, 119, 133, 128, 122, 132, 129, 119, 134, 124, 130, 133, 128, 115, 121, 129, 120, 114, 133, 137, 121, 126, 122, 130, 128, 107, 117, 121, 117, 122, 124, 145, 110, 135, 134, 116, 123, 118, 132, 118, 125, 111, 130, 129, 140, 123, 122, 127, 127, 109, 129, 122, 127, 133, 133, 109, 119, 115, 109, 132, 149, 131, 124, 137, 124, 131, 131, 151, 137, 118, 121, 127, 123, 135, 141, 123, 135, 116, 123, 121, 122, 138, 125, 121, 136, 110, 127, 117, 124, 140, 130, 128, 111, 122, 110, 137, 124, 125, 128, 110, 120, 111, 130, 119, 137, 130, 136, 121, 116, 118, 132, 122, 113, 125, 145, 132, 140, 124, 147, 111, 132, 116, 131, 130, 107, 129, 125, 130, 120, 119, 120, 114, 127, 155, 111, 138, 132, 130, 99, 105, 134, 138, 126, 131, 133, 117, 129, 115, 122, 125, 148, 111, 118, 125, 97, 137, 139, 122, 130, 115, 110, 133, 126, 133, 124, 137, 125, 134, 128, 137, 133, 126, 120, 123, 138, 124, 150, 117, 129, 126, 119, 138, 126, 109, 130, 117, 118, 124, 102, 130, 120, 133, 131, 123, 137, 113, 139, 114, 130, 142, 125, 92, 118, 125, 126, 124, 113, 125, 90, 130, 133, 103, 138, 97, 137, 136, 124, 117, 124, 121, 131, 132, 120, 128, 119, 133, 115, 136, 126, 117, 131, 125, 122, 129, 135, 118, 112, 122, 121, 119, 150, 123, 114, 116, 119, 144, 130, 124, 128, 129, 117, 110, 138, 132, 115, 131, 124, 125, 116, 129, 116, 142, 118, 134, 127, 130, 133, 133, 109, 108, 111, 131, 128, 145, 128, 138, 124, 115, 125, 110, 139, 109, 132, 114, 122, 112, 119, 126, 122, 122, 119, 119, 108, 123, 138, 115, 123, 112, 148, 120, 133, 126, 123, 119, 143, 124, 128, 148, 111, 127, 134, 108, 130, 123, 137, 134, 125, 152, 121, 123, 133, 121, 98, 132, 122, 144, 131, 129, 139, 125, 125, 138, 129, 120, 119, 136, 115, 122, 130, 121, 98, 119, 118, 116, 122, 136, 136, 131, 128, 119, 127, 122, 131, 124, 111, 121, 133, 130, 107, 153, 131, 133, 126, 107, 126, 127, 108, 133, 139, 138, 124, 118, 113, 133, 123, 146, 123, 129, 115, 123, 131, 125, 138, 122, 133, 112, 133, 123, 119, 135, 125, 122, 122, 129, 123, 137, 110, 132, 126, 130, 127, 127, 128, 120, 131, 129, 124, 148, 131, 145, 135, 129, 136, 131, 115, 134, 120, 147, 133, 117, 101, 125, 118, 137, 142, 122, 107, 133, 117, 132, 123, 132, 131, 118, 133, 122, 135, 114, 112, 130, 140, 136, 135, 122, 109, 134, 127, 112, 114, 117, 131, 120, 135, 113, 130, 123, 125, 138, 131, 130, 134, 140, 112, 137, 130, 135, 127, 119, 103, 132, 126, 129, 137, 129, 136, 131, 124, 127, 127, 117, 140, 122, 121, 125, 122, 145, 126, 128, 140, 146, 106, 138, 120, 125, 121, 120, 134, 127, 126, 124, 145, 131, 106, 137, 125, 126, 122, 133, 151, 117, 125, 112, 131, 131, 123, 113, 120, 115, 109, 124, 128, 113, 115, 136, 126, 122, 122, 131, 138, 129, 112, 134, 134, 130, 110, 125, 132, 122, 124, 111, 116, 141, 107, 121, 125, 123, 111, 121, 118, 103, 129, 120, 121, 112, 147, 135, 105, 121, 114, 119, 108, 111, 109, 128, 158, 134, 130, 141, 136, 123, 137, 108, 138, 138, 125, 141, 131, 139, 132, 112, 128, 120, 122, 129, 140, 120, 119, 128, 144, 126, 111, 118, 119, 115, 145, 134, 100, 122, 128, 109, 152, 123, 113, 147, 125, 113, 116, 122, 122, 118, 135, 137, 127, 125, 160, 145, 128, 138, 133, 128, 133, 120, 122, 121, 135, 144, 143, 129, 120, 119, 115, 110, 125, 129, 130, 119, 118, 125, 115, 122, 99, 128, 148, 139, 132, 123, 112, 129, 137, 128, 132, 144, 125, 123, 150, 119, 124, 129, 116, 137, 126, 123, 117, 137, 137, 120, 149, 152, 119, 130, 109, 127, 120, 105, 131, 114, 122, 121, 129, 117, 134, 131, 127, 131, 123, 134, 140, 139, 134, 133, 130, 128, 136, 124, 128, 137, 132, 140, 119, 116, 131, 113, 121, 98, 136, 137, 132, 105, 126, 119, 128, 111, 109, 134, 129, 132, 117, 148, 137, 133, 118, 130, 113, 107, 145, 130, 129, 140, 126, 133, 121, 130, 122, 123, 131, 113, 125, 113, 119, 111, 128, 119, 128, 114, 131, 142, 127, 140, 121, 122, 115, 122, 133, 121, 127, 145, 133, 147, 134, 131, 120, 121, 150, 125, 130, 124, 125, 130, 125, 115, 128, 111, 129, 128, 130, 137, 127, 121, 137, 138, 109, 130, 116, 128, 135, 128, 136, 119, 117, 131, 126, 136, 129, 120, 130, 119, 153, 123, 129, 132, 143, 147, 124, 120, 104, 119, 121, 122, 107, 120, 120, 131, 110, 122, 119, 118, 124, 123, 113, 125, 136, 125, 105, 106, 121, 122, 110, 113, 133, 122, 132, 135, 118, 118, 142, 133, 125, 124, 121, 129, 132, 136, 120, 115, 127, 127, 122, 131, 125, 140, 142, 127, 112, 136, 130, 127, 117, 148, 120, 110, 122, 149, 126, 135, 119, 121, 138, 122, 138, 125, 125, 137, 127, 120, 127, 123, 132, 120, 127, 129, 126, 128, 129, 126, 120, 128, 119, 125, 123, 109, 113, 127, 116, 118, 141, 121, 130, 120, 121, 131, 139, 117, 118, 115, 126, 118, 118, 135, 106, 133, 120, 139, 123, 108, 121, 125, 130, 107, 138, 113, 126, 108, 124, 128, 123, 115, 131, 139, 132, 136, 129, 122, 125, 133, 130, 140, 88, 138, 137, 136, 126, 114, 124, 124, 127, 122, 124, 143, 127, 117, 125, 132, 115, 110, 125, 134, 126, 120, 116, 121, 121, 136, 128, 117, 130, 146, 110, 138, 133, 119, 140, 103, 123, 121, 127, 113, 109, 144, 121, 129, 101, 133, 130, 103, 124, 142, 123, 118, 123, 138, 137, 131, 138, 109, 110, 109, 130, 135, 105, 123, 122, 117, 126, 117, 120, 118, 117, 128, 147, 119, 101, 116, 127, 115, 108, 124, 111, 128, 121, 109, 127, 118, 114, 123, 120, 133, 105, 127, 153, 136, 132, 132, 113, 118, 118, 124, 114, 126, 71, 116, 110, 114, 116, 126, 135, 128, 130, 119, 140, 136, 123, 140, 130, 115, 127, 124, 129, 137, 130, 125, 119, 137, 140, 99, 124, 134, 113, 140, 133, 138, 121, 113, 123, 136, 120, 146, 109, 133, 136, 127, 114, 125, 117, 117, 146, 124, 129, 118, 118, 128, 117, 122, 132, 142, 123, 138, 136, 118, 134, 120, 135, 105, 123, 143, 119, 122, 118, 143, 131, 121, 126, 133, 133, 129, 125, 137, 142, 149, 108, 131, 120, 130, 124, 141, 137, 111, 123, 121, 111, 146, 116, 114, 131, 114, 113, 122, 130, 127, 129, 132, 119, 131, 112, 122, 123, 119, 137, 137, 124, 120, 122, 139, 130, 147, 137, 118, 142, 128, 114, 117, 102, 128, 137, 136, 137, 140, 140, 128, 148, 117, 123, 131, 116, 143, 131, 125, 128, 128, 126, 139, 162, 123, 127, 118, 131, 119, 145, 130, 109, 120, 134, 108, 137, 121, 130, 121, 135, 130, 141, 118, 122, 99, 114, 115, 140, 119, 115, 119, 132, 127, 139, 131, 116, 112, 117, 138, 105, 121, 125, 136, 127, 130, 137, 122, 124, 132, 136, 145, 130, 124, 123, 131, 119, 124, 140, 128, 135, 129, 129, 130, 122, 108, 135, 130, 123, 121, 127, 127, 100, 135, 120, 118, 134, 131, 100, 130, 133, 130, 124, 133, 129, 109, 124, 116, 121, 132, 129, 125, 103, 127, 116, 136, 130, 133, 129, 115, 145, 140, 105, 133, 113, 126, 129, 127, 139, 135, 127, 122, 123, 108, 116, 127, 130, 130, 131, 116, 129, 107, 117, 124, 111, 122, 130, 107, 142, 146, 121, 115, 131, 135, 119, 131, 121, 117, 146, 132, 101, 121, 127, 122, 123, 118, 120, 130, 126, 131, 124, 125, 127, 129, 116, 117, 134, 120, 115, 119, 128, 131, 126, 125, 123, 131, 126, 121, 127, 119, 108, 113, 124, 98, 112, 134, 112, 126, 132, 131, 115, 115, 124, 143, 123, 149, 114, 119, 134, 136, 113, 125, 121, 124, 121, 138, 137, 141, 130, 104, 131, 125, 117, 126, 115, 131, 156, 106, 134, 106, 137, 127, 132, 139, 116, 123, 140, 146, 129, 115, 115, 109, 125, 134, 123, 110, 131, 130, 143, 135, 133, 132, 118, 109, 126, 111, 138, 138, 125, 152, 123, 122, 116, 115, 113, 128, 125, 120, 134, 122, 115, 114, 131, 128, 123, 130, 124, 122, 145, 138, 115, 97, 111, 125, 137, 109, 118, 125, 126, 128, 106, 110, 140, 133, 136, 128, 129, 121, 123, 125, 127, 98, 144, 131, 107, 122, 119, 126, 139, 121, 114, 135, 123, 130, 122, 110, 131, 120, 130, 120, 125, 118, 142, 124, 120, 132, 126, 120, 115, 127, 132, 125, 140, 131, 127, 120, 130, 117, 137, 136, 130, 129, 126, 122, 124, 125, 118, 144, 116, 121, 147, 122, 127, 120, 103, 132, 117, 132, 140, 132, 111, 120, 121, 125, 129, 129, 122, 142, 125, 117, 128, 129, 125, 128, 136, 148, 130, 117, 121, 126, 119, 156, 131, 122, 123, 132, 133, 130, 133, 123, 128, 120, 127, 121, 126, 104, 119, 135, 115, 142, 124, 125, 128, 140, 122, 125, 119, 121, 126, 118, 124, 147, 120, 120, 140, 119, 123, 141, 124, 119, 118, 124, 132, 117, 102, 117, 143, 125, 119, 143, 110, 110, 125, 117, 129, 135, 125, 118, 131, 119, 123, 123, 131, 148, 143, 137, 112, 136, 128, 128, 141, 135, 127, 125, 119, 127, 115, 113, 122, 115, 141, 145, 120, 124, 137, 133, 134, 134, 125, 122, 114, 134, 127, 120, 137, 137, 116, 122, 138, 128, 115, 133, 116, 113, 108, 115, 124, 151, 121, 144, 116, 121, 144, 128, 136, 119, 114, 121, 120, 109, 129, 139, 125, 116, 125, 126, 127, 119, 141, 111, 115, 113, 113, 93, 107, 123, 120, 130, 123, 117, 144, 140, 117, 128, 137, 134, 107, 129, 117, 144, 106, 122, 127, 123, 122, 124, 134, 108, 129, 110, 115, 117, 131, 143, 130, 106, 127, 129, 117, 125, 124, 135, 130, 110, 161, 126, 129, 120, 117, 111, 120, 118, 142, 131, 106, 119, 119, 112, 116, 106, 134, 121, 143, 131, 151, 109, 142, 98, 119, 132, 133, 133, 112, 128, 136, 117, 133, 110, 113, 119, 105, 118, 111, 128, 137, 143, 115, 133, 118, 124, 144, 118, 113, 110, 126, 124, 126, 118, 143, 112, 114, 154, 137, 128, 119, 110, 119, 108, 115, 145, 131, 121, 125, 129, 116, 126, 132, 122, 153, 116, 117, 122, 138, 132, 129, 122, 122, 122, 129, 141, 120, 108, 113, 116, 129, 123, 129, 141, 129, 123, 131, 104, 124, 129, 132, 128, 129, 117, 135, 126, 123, 134, 106, 131, 125, 135, 117, 121, 135, 108, 139, 117, 126, 124, 117, 136, 137, 135, 144, 126, 113, 122, 111, 128, 123, 124, 131, 119, 151, 104, 134, 132, 111, 128, 124, 133, 139, 130, 112, 127, 123, 136, 111, 112, 127, 126, 112, 131, 127, 122, 122, 111, 127, 130, 119, 127, 127, 129, 120, 144, 133, 126, 122, 128, 113, 142, 122, 132, 132, 128, 116, 131, 118, 135, 112, 152, 127, 143, 134, 111, 116, 129, 133, 125, 118, 114, 122, 125, 130, 138, 122, 128, 152, 137, 132, 128, 115, 125, 125, 125, 125, 140, 108, 132, 113, 124, 118, 132, 120, 117, 133, 112, 118, 122, 120, 122, 107, 121, 109, 131, 136, 129, 111, 144, 122, 137, 112, 142, 128, 145, 125, 129, 120, 129, 114, 123, 148, 112, 126, 130, 120, 124, 133, 119, 119, 122, 130, 126, 96, 129, 144, 127, 133, 115, 125, 143, 125, 125, 126, 122, 139, 129, 140, 133, 104, 118, 117, 128, 119, 130, 124, 124, 137, 132, 134, 103, 127, 125, 115, 141, 132, 100, 115, 125, 123, 126, 127, 127, 124, 133, 128, 126, 134, 136, 120, 134, 116, 123, 94, 119, 134, 117, 133, 118, 124, 138, 130, 120, 134, 117, 116, 124, 159, 142, 118, 99, 136, 117, 121, 123, 141, 123, 123, 120, 135, 115, 129, 113, 131, 112, 140, 125, 126, 134, 114, 151, 121, 134, 128, 123, 117, 128, 121, 123, 118, 133, 138, 116, 133, 130, 131, 135, 122, 159, 124, 104, 135, 139, 113, 121, 135, 148, 106, 126, 126, 137, 124, 131, 129, 141, 108, 116, 128, 130, 136, 119, 124, 121, 121, 124, 130, 126, 115, 121, 128, 130, 123, 141, 119, 121, 93, 125, 104, 102, 128, 125, 132, 124, 127, 123, 119, 115, 121, 136, 141, 127, 134, 116, 130, 133, 138, 128, 148, 146, 136, 140, 109, 146, 112, 110, 135, 119, 122, 123, 144, 122, 128, 121, 124, 143, 126, 133, 110, 143, 137, 121, 117, 139, 140, 155, 122, 134, 134, 114, 121, 125, 123, 127, 122, 115, 125, 120, 112, 121, 112, 120, 123, 130, 121, 130, 136, 126, 126, 134, 134, 106, 132, 125, 127, 126, 126, 133, 109, 138, 129, 144, 151, 139, 115, 134, 131, 132, 128, 123, 127, 147, 129, 130, 111, 140, 127, 119, 104, 136, 114, 139, 111, 107, 125, 122, 136, 123, 119, 127, 136, 121, 107, 112, 128, 118, 126, 145, 141, 121, 120, 116, 124, 114, 144, 121, 106, 125, 134, 132, 100, 121, 124, 125, 121, 135, 139, 137, 124, 133, 125, 126, 124, 115, 121, 132, 122, 114, 122, 108, 142, 131, 119, 124, 115, 112, 111, 146, 112, 123, 132, 109, 134, 120, 108, 133, 127, 145, 123, 123, 122, 127, 148, 104, 94, 123, 103, 108, 125, 108, 113, 115, 113, 121, 149, 118, 107, 113, 123, 141, 137, 123, 145, 112, 130, 121, 127, 119, 118, 119, 116, 134, 123, 122, 127, 136, 132, 112, 122, 129, 141, 122, 135, 143, 130, 125, 137, 125, 133, 112, 113, 126, 128, 151, 121, 113, 119, 123, 117, 111, 117, 140, 136, 131, 138, 122, 107, 137, 126, 138, 137, 115, 124, 139, 131, 127, 120, 124, 117, 123, 135, 122, 127, 106, 126, 137, 129, 118, 114, 120, 129, 133, 137, 139, 101, 130, 125, 126, 137, 111, 115, 110, 129, 117, 123, 127, 125, 134, 142, 114, 133, 124, 121, 124, 124, 126, 120, 115, 123, 125, 140, 119, 123, 136, 123, 124, 127, 134, 133, 133, 109, 137, 119, 137, 135, 124, 127, 134, 126, 144, 120, 122, 117, 125, 122, 129, 130, 136, 122, 118, 123, 125, 129, 126, 128, 115, 117, 110, 146, 124, 104, 139, 129, 112, 128, 139, 121, 137, 117, 115, 115, 120, 126, 125, 139, 121, 132, 125, 118, 114, 139, 122, 129, 116, 137, 120, 123, 128, 118, 132, 117, 141, 126, 154, 129, 144, 137, 115, 120, 124, 113, 118, 129, 112, 130, 115, 122, 124, 123, 134, 136, 132, 116, 118, 120, 122, 142, 121, 126, 116, 122, 116, 119, 136, 126, 106, 122, 125, 110, 106, 126, 115, 118, 149, 122, 114, 136, 114, 109, 109, 124, 117, 125, 118, 128, 120, 115, 108, 110, 121, 125, 131, 122, 139, 132, 128, 125, 128, 96, 123, 123, 114, 117, 128, 121, 118, 153, 134, 131, 133, 119, 121, 128, 135, 147, 124, 138, 125, 119, 115, 118, 125, 119, 138, 128, 118, 111, 135, 120, 139, 120, 117, 131, 116, 128, 127, 130, 130, 125, 118, 140, 134, 141, 140, 132, 132, 116, 126, 143, 119, 124, 102, 131, 121, 121, 134, 108, 133, 141, 130, 128, 125, 109, 129, 133, 139, 132, 146, 127, 131, 151, 127, 98, 116, 131, 122, 128, 137, 122, 127, 109, 132, 121, 137, 135, 110, 129, 122, 144, 144, 117, 148, 126, 121, 132, 133, 137, 131, 135, 130, 121, 128, 133, 118, 127, 129, 112, 125, 136, 124, 127, 115, 118, 136, 128, 125, 112, 114, 123, 129, 136, 146, 128, 125, 129, 144, 127, 114, 121, 87, 129, 111, 119, 136, 115, 125, 113, 154, 140, 102, 131, 141, 114, 131, 129, 145, 107, 106, 123, 113, 134, 125, 141, 122, 123, 129, 113, 131, 129, 115, 133, 119, 131, 129, 132, 123, 134, 128, 132, 122, 134, 125, 120, 135, 116, 118, 123, 128, 126, 124, 111, 122, 107, 99, 136, 132, 137, 128, 134, 133, 115, 144, 120, 119, 135, 116, 124, 137, 124, 137, 130, 145, 134, 127, 153, 135, 139, 145, 127, 110, 118, 139, 125, 124, 125, 121, 141, 132, 106, 119, 145, 116, 117, 126, 121, 129, 124, 139, 123, 143, 132, 157, 105, 127, 135, 125, 129, 123, 137, 135, 106, 117, 147, 105, 131, 127, 124, 120, 114, 127, 113, 117, 132, 124, 142, 134, 121, 140, 130, 115, 137, 127, 113, 128, 115, 120, 133, 110, 121, 159, 110, 118, 137, 131, 115, 122, 140, 123, 121, 112, 130, 120, 122, 137, 139, 129, 127, 99, 122, 127, 122, 133, 126, 118, 118, 119, 126, 125, 145, 144, 125, 118, 122, 123, 123, 133, 142, 122, 144, 114, 116, 119, 110, 142, 126, 131, 136, 133, 120, 129, 121, 113, 115, 126, 136, 138, 114, 125, 146, 117, 121, 120, 122, 123, 121, 128, 108, 124, 128, 126, 127, 116, 133, 127, 136, 124, 129, 107, 129, 131, 140, 119, 131, 146, 128, 118, 120, 132, 108, 125, 117, 123, 117, 114, 126, 125, 128, 119, 119, 131, 146, 136, 133, 129, 123, 121, 151, 140, 136, 138, 150, 105, 147, 89, 116, 129, 122, 121, 134, 135, 130, 113, 124, 130, 137, 139, 132, 124, 119, 118, 134, 144, 122, 103, 144, 127, 130, 123, 140, 155, 142, 116, 127, 129, 104, 137, 119, 128, 114, 129, 136, 124, 125, 134, 116, 122, 130, 119, 131, 126, 127, 129, 138, 129, 125, 124, 126, 136, 99, 130, 132, 127, 115, 126, 129, 136, 133, 148, 126, 116, 150, 128, 115, 125, 122, 122, 107, 116, 135, 129, 135, 131, 118, 117, 131, 132, 120, 128, 121, 118, 133, 126, 121, 125, 133, 125, 128, 112, 114, 131, 140, 135, 134, 120, 128, 121, 146, 131, 110, 107, 125, 140, 133, 114, 127, 112, 138, 140, 132, 105, 117, 112, 115, 123, 132, 118, 126, 122, 129, 118, 133, 124, 157, 124, 136, 135, 115, 111, 132, 130, 137, 131, 122, 123, 130, 122, 93, 106, 107, 109, 123, 129, 141, 118, 120, 137, 130, 112, 115, 125, 132, 140, 131, 117, 129, 118, 119, 132, 135, 133, 109, 109, 103, 115, 112, 126, 118, 111, 119, 114, 103, 111, 124, 119, 100, 130, 119, 123, 128, 119, 126, 130, 124, 116, 128, 110, 117, 143, 111, 116, 118, 122, 115, 126, 131, 118, 124, 117, 146, 118, 123, 128, 145, 124, 125, 137, 113, 129, 155, 120, 124, 119, 134, 139, 133, 103, 127, 131, 121, 103, 119, 132, 134, 126, 129, 130, 125, 128, 114, 125, 131, 122, 124, 143, 119, 132, 127, 131, 120, 130, 118, 108, 127, 120, 110, 123, 127, 133, 155, 104, 115, 138, 125, 125, 126, 128, 104, 122, 130, 113, 165, 126, 123, 129, 126, 113, 138, 142, 144, 135, 130, 131, 132, 118, 131, 124, 131, 122, 119, 119, 148, 137, 105, 128, 111, 109, 137, 126, 149, 121, 124, 126, 117, 106, 114, 119, 129, 120, 130, 109, 143, 153, 118, 125, 123, 125, 136, 108, 155, 126, 146, 116, 125, 123, 115, 114, 134, 116, 121, 120, 140, 131, 129, 114, 132, 132, 135, 137, 117, 124, 125, 137, 136, 126, 132, 113, 117, 127, 130, 124, 139, 80, 129, 118, 129, 103, 148, 134, 134, 134, 113, 134, 135, 131, 120, 133, 133, 131, 122, 104, 135, 146, 130, 119, 129, 128, 128, 120, 125, 118, 130, 111, 127, 124, 135, 124, 131, 117, 130, 122, 130, 112, 125, 129, 107, 120, 122, 124, 111, 123, 125, 103, 126, 119, 129, 133, 124, 127, 148, 126, 119, 120, 115, 123, 107, 119, 122, 126, 132, 117, 115, 122, 108, 134, 112, 137, 137, 140, 152, 123, 144, 127, 148, 120, 107, 121, 128, 141, 129, 110, 119, 105, 134, 129, 139, 134, 104, 117, 112, 125, 107, 145, 132, 123, 121, 117, 111, 117, 130, 129, 116, 116, 119, 136, 128, 129, 131, 124, 136, 128, 119, 130, 116, 133, 136, 126, 123, 122, 120, 117, 133, 142, 134, 121, 114, 127, 120, 124, 125, 140, 134, 114, 128, 134, 123, 116, 129, 120, 126, 122, 137, 112, 123, 128, 115, 123, 105, 115, 141, 109, 120, 129, 106, 102, 112, 111, 115, 125, 134, 133, 118, 87, 135, 116, 142, 115, 116, 127, 133, 118, 124, 125, 134, 107, 126, 126, 138, 129, 98, 123, 121, 126, 129, 131, 137, 106, 133, 157, 123, 131, 137, 119, 120, 151, 139, 131, 129, 123, 116, 124, 116, 134, 127, 139, 117, 111, 131, 139, 129, 121, 108, 122, 121, 133, 130, 131, 123, 127, 117, 149, 129, 138, 125, 119, 111, 147, 117, 138, 118, 124, 111, 138, 131, 136, 115, 110, 147, 125, 120, 119, 126, 122, 130, 131, 124, 112, 118, 121, 113, 144, 91, 145, 120, 139, 124, 129, 134, 134, 114, 130, 142, 129, 107, 127, 131, 130, 120, 121, 127, 123, 124, 124, 132, 141, 131, 136, 115, 137, 144, 123, 122, 123, 133, 134, 136, 115, 119, 126, 120, 118, 115, 118, 113, 134, 133, 123, 131, 114, 134, 140, 125, 98, 145, 119, 129, 133, 129, 135, 136, 116, 137, 133, 132, 113, 119, 142, 148, 129, 140, 124, 115, 117, 115, 126, 135, 114, 122, 134, 114, 131, 70, 122, 136, 126, 122, 122, 109, 113, 123, 130, 130, 128, 133, 120, 124, 128, 128, 135, 112, 129, 116, 88, 123, 122, 111, 126, 137, 112, 142, 132, 112, 119, 129, 131, 133, 130, 118, 147, 99, 126, 121, 122, 107, 120, 144, 113, 105, 124, 129, 139, 120, 125, 135, 112, 131, 120, 128, 130, 149, 123, 149, 119, 128, 125, 127, 131, 131, 144, 122, 121, 136, 149, 121, 132, 133, 131, 143, 121, 114, 136, 125, 138, 145, 154, 132, 145, 117, 123, 118, 127, 130, 124, 123, 121, 126, 130, 121, 97, 137, 123, 118, 130, 105, 108, 120, 106, 111, 138, 128, 118, 123, 130, 134, 118, 124, 136, 119, 114, 121, 116, 132, 126, 134, 125, 135, 113, 118, 116, 138, 120, 151, 123, 148, 119, 134, 137, 128, 155, 128, 107, 137, 114, 119, 129, 125, 120, 120, 135, 131, 124, 119, 114, 133, 128, 122, 120, 119, 131, 127, 123, 116, 116, 120, 121, 104, 124, 116, 126, 141, 125, 116, 121, 121, 108, 126, 122, 117, 132, 120, 121, 127, 134, 139, 125, 110, 125, 131, 116, 128, 146, 120, 131, 110, 93, 143, 131, 109, 111, 152, 114, 105, 135, 129, 122, 134, 116, 99, 126, 119, 129, 131, 137, 105, 129, 127, 112, 138, 137, 124, 124, 131, 100, 145, 130, 125, 121, 132, 126, 120, 125, 137, 118, 127, 129, 120, 129, 114, 142, 101, 127, 121, 138, 121, 127, 130, 118, 119, 167, 132, 121, 113, 115, 127, 131, 109, 126, 109, 135, 123, 131, 101, 132, 112, 115, 129, 122, 125, 136, 111, 138, 120, 141, 130, 147, 134, 121, 128, 129, 116, 115, 117, 137, 119, 124, 106, 119, 111, 104, 114, 115, 113, 114, 137, 115, 109, 134, 138, 102, 134, 119, 111, 148, 151, 113, 128, 144, 115, 132, 145, 128, 132, 122, 123, 123, 125, 107, 121, 122, 142, 149, 139, 121, 122, 140, 128, 129, 126, 136, 133, 125, 127, 143, 114, 115, 130, 121, 114, 141, 119, 114, 132, 130, 148, 120, 139, 132, 100, 150, 126, 122, 123, 109, 126, 123, 130, 133, 120, 127, 123, 106, 137, 121, 112, 118, 124, 113, 126, 119, 109, 128, 141, 109, 134, 132, 140, 123, 120, 130, 133, 127, 124, 127, 137, 124, 127, 134, 108, 123, 145, 127, 131, 114, 130, 131, 130, 120, 138, 132, 112, 141, 119, 100, 117, 114, 121, 121, 128, 121, 132, 128, 134, 124, 137, 132, 143, 117, 110, 126, 123, 125, 118, 114, 129, 125, 125, 131, 120, 145, 130, 113, 128, 123, 130, 136, 140, 110, 114, 116, 122, 124, 127, 100, 142, 132, 135, 112, 123, 137, 125, 138, 121, 126, 132, 135, 120, 111, 121, 120, 124, 136, 120, 114, 129, 123, 128, 132, 127, 120, 123, 121, 120, 120, 121, 110, 131, 129, 125, 123, 111, 121, 129, 125, 112, 146, 128, 119, 128, 138, 105, 134, 114, 123, 143, 129, 124, 120, 139, 115, 118, 116, 125, 127, 144, 130, 123, 127, 116, 115, 121, 130, 134, 116, 135, 130, 132, 126, 138, 131, 147, 138, 122, 141, 126, 129, 114, 100, 145, 134, 123, 126, 139, 117, 118, 124, 108, 116, 114, 115, 134, 140, 102, 114, 137, 141, 116, 124, 130, 110, 134, 121, 124, 149, 132, 125, 136, 120, 122, 131, 118, 132, 127, 117, 131, 129, 141, 151, 134, 128, 123, 147, 137, 134, 136, 136, 128, 144, 127, 127, 115, 138, 110, 127, 157, 130, 127, 114, 130, 122, 120, 119, 108, 131, 119, 111, 116, 115, 120, 137, 126, 141, 136, 126, 110, 131, 114, 141, 127, 120, 124, 128, 148, 116, 133, 113, 119, 132, 117, 130, 102, 167, 140, 111, 114, 113, 114, 121, 143, 129, 126, 125, 102, 119, 144, 124, 142, 121, 141, 147, 101, 145, 116, 137, 146, 113, 117, 116, 110, 123, 131, 148, 128, 122, 130, 111, 103, 128, 116, 116, 118, 124, 116, 111, 134, 125, 118, 139, 135, 107, 117, 137, 132, 137, 133, 126, 152, 128, 117, 111, 124, 121, 126, 95, 137, 121, 113, 134, 151, 107, 142, 131, 132, 120, 124, 124, 111, 129, 113, 131, 130, 117, 126, 129, 119, 118, 127, 129, 148, 121, 124, 95, 111, 130, 141, 106, 141, 141, 111, 113, 114, 119, 131, 113, 123, 115, 129, 127, 103, 126, 111, 108, 122, 115, 133, 120, 107, 148, 139, 120, 103, 130, 148, 132, 108, 109, 123, 116, 108, 151, 123, 118, 139, 120, 140, 133, 134, 142, 135, 132, 135, 123, 148, 111, 139, 121, 141, 132, 145, 126, 131, 132, 129, 131, 135, 117, 138, 128, 107, 123, 116, 132, 140, 124, 104, 112, 113, 113, 99, 130, 130, 126, 136, 127, 115, 125, 126, 133, 129, 129, 122, 122, 127, 122, 121, 126, 127, 117, 118, 128, 129, 136, 103, 132, 135, 138, 121, 143, 142, 129, 145, 126, 119, 117, 129, 116, 135, 115, 129, 135, 113, 123, 100, 124, 126, 124, 131, 123, 138, 129, 140, 124, 131, 137, 146, 130, 121, 126, 133, 128, 110, 126, 148, 131, 119, 134, 132, 121, 123, 128, 121, 118, 122, 116, 126, 133, 116, 134, 115, 126, 113, 136, 142, 107, 126, 124, 124, 133, 146, 135, 116, 136, 128, 116, 141, 132, 119, 125, 138, 124, 106, 119, 124, 130, 125, 119, 135, 118, 108, 122, 136, 132, 129, 120, 126, 128, 138, 126, 119, 135, 134, 119, 139, 122, 151, 141, 130, 117, 123, 111, 119, 128, 116, 114, 127, 130, 153, 117, 130, 122, 135, 124, 117, 114, 123, 127, 114, 131, 124, 136, 131, 120, 117, 118, 113, 126, 132, 132, 125, 121, 129, 125, 136, 106, 134, 129, 121, 127, 104, 137, 129, 124, 120, 147, 129, 130, 122, 112, 145, 145, 116, 154, 122, 128, 123, 125, 128, 135, 134, 114, 143, 117, 133, 115, 133, 105, 132, 144, 138, 133, 130, 125, 124, 150, 140, 130, 110, 113, 145, 127, 113, 129, 126, 131, 132, 113, 121, 118, 111, 127, 132, 148, 119, 125, 119, 137, 128, 138, 116, 111, 112, 139, 117, 142, 149, 126, 118, 133, 134, 125, 129, 128, 127, 127, 107, 120, 123, 119, 122, 123, 124, 119, 130, 122, 113, 129, 102, 123, 123, 104, 100, 132, 119, 112, 125, 127, 120, 146, 149, 107, 115, 124, 139, 115, 130, 140, 118, 119, 124, 124, 151, 133, 130, 146, 122, 138, 119, 120, 121, 119, 122, 129, 120, 120, 129, 128, 135, 146, 119, 113, 122, 117, 116, 121, 129, 111, 126, 140, 100, 126, 139, 131, 123, 108, 128, 119, 126, 146, 145, 122, 101, 142, 125, 128, 114, 130, 126, 122, 119, 161, 113, 121, 113, 111, 122, 128, 167, 120, 117, 124, 118, 140, 132, 119, 127, 131, 118, 137, 127, 99, 142, 132, 132, 128, 134, 130, 118, 124, 132, 135, 131, 119, 126, 112, 127, 110, 137, 126, 107, 114, 124, 126, 132, 94, 112, 96, 123, 122, 133, 125, 130, 112, 123, 113, 108, 144, 135, 107, 114, 121, 138, 119, 116, 126, 158, 121, 116, 143, 119, 119, 144, 124, 121, 125, 134, 121, 122, 136, 93, 128, 104, 136, 113, 124, 114, 124, 137, 127, 136, 140, 137, 134, 119, 150, 124, 133, 115, 119, 137, 122, 120, 139, 129, 126, 124, 151, 115, 116, 129, 124, 142, 114, 113, 128, 125, 111, 130, 114, 145, 140, 118, 115, 135, 136, 124, 129, 147, 122, 151, 127, 102, 126, 121, 112, 132, 135, 129, 123, 123, 119, 134, 123, 133, 142, 128, 125, 141, 122, 116, 99, 133, 128, 123, 145, 112, 119, 122, 126, 125, 115, 139, 121, 133, 120, 122, 134, 131, 124, 133, 143, 130, 142, 98, 116, 104, 123, 130, 128, 115, 130, 110, 112, 111, 131, 119, 116, 139, 131, 141, 112, 109, 105, 144, 127, 118, 115, 126, 119, 134, 133, 110, 142, 126, 135, 124, 127, 106, 115, 130, 118, 120, 141, 119, 124, 125, 139, 122, 116, 115, 103, 105, 141, 115, 120, 97, 133, 114, 106, 134, 128, 136, 133, 124, 143, 121, 142, 126, 115, 112, 112, 117, 131, 113, 107, 91, 125, 140, 137, 111, 130, 131, 152, 134, 107, 124, 121, 149, 115, 129, 127, 131, 141, 133, 126, 127, 114, 128, 140, 134, 129, 104, 115, 137, 133, 153, 109, 135, 130, 120, 144, 129, 112, 143, 130, 117, 144, 149, 127, 128, 127, 131, 117, 122, 138, 125, 127, 130, 144, 120, 117, 116, 117, 124, 133, 117, 141, 109, 122, 114, 120, 127, 127, 120, 116, 139, 134, 114, 112, 123, 136, 136, 123, 115, 132, 136, 132, 112, 89, 137, 116, 122, 120, 122, 124, 148, 103, 122, 116, 122, 131, 135, 135, 112, 121, 107, 105, 115, 132, 110, 122, 113, 143, 108, 121, 131, 137, 118, 129, 114, 128, 132, 134, 138, 122, 123, 133, 151, 138, 132, 102, 117, 125, 140, 100, 116, 126, 149, 129, 136, 126, 134, 124, 131, 127, 131, 112, 119, 106, 134, 134, 131, 126, 126, 131, 127, 131, 109, 137, 122, 138, 124, 129, 116, 126, 127, 125, 161, 126, 143, 129, 115, 117, 124, 125, 132, 116, 146, 140, 124, 120, 115, 121, 116, 122, 135, 130, 132, 121, 137, 118, 121, 135, 115, 120, 125, 118, 133, 121, 128, 128, 100, 108, 120, 121, 127, 135, 131, 134, 125, 121, 113, 111, 123, 111, 136, 131, 132, 139, 128, 112, 147, 113, 129, 129, 120, 127, 135, 118, 125, 118, 109, 111, 116, 127, 148, 114, 161, 138, 132, 131, 116, 118, 126, 113, 133, 120, 122, 117, 149, 127, 126, 125, 126, 142, 110, 138, 143, 113, 113, 118, 119, 131, 121, 125, 127, 124, 121, 133, 135, 118, 134, 139, 135, 125, 117, 114, 111, 148, 130, 119, 122, 122, 137, 131, 119, 125, 125, 122, 114, 124, 115, 111, 132, 135, 125, 120, 136, 123, 122, 130, 113, 99, 122, 144, 134, 131, 125, 132, 127, 124, 129, 139, 116, 135, 132, 122, 127, 135, 120, 125, 112, 128, 103, 129, 153, 141, 124, 114, 142, 127, 127, 120, 128, 108, 132, 117, 114, 149, 129, 118, 126, 120, 97, 116, 121, 139, 120, 125, 118, 133, 117, 139, 139, 117, 115, 121, 121, 130, 124, 129, 138, 132, 127, 128, 108, 121, 124, 127, 117, 137, 111, 127, 128, 118, 131, 105, 131, 111, 152, 132, 132, 117, 124, 113, 131, 134, 131, 126, 123, 106, 105, 119, 109, 106, 141, 136, 108, 134, 123, 136, 102, 130, 135, 113, 118, 114, 126, 126, 131, 125, 125, 116, 119, 126, 110, 137, 131, 141, 125, 132, 130, 123, 101, 128, 134, 123, 132, 121, 131, 108, 121, 135, 142, 122, 124, 131, 109, 139, 119, 133, 150, 142, 113, 125, 118, 101, 146, 116, 114, 118, 116, 111, 114, 125, 126, 112, 120, 128, 124, 144, 113, 126, 117, 146, 137, 122, 110, 120, 145, 111, 127, 125, 123, 117, 137, 136, 118, 119, 139, 115, 140, 141, 139, 128, 138, 118, 126, 117, 122, 138, 123, 132, 109, 128, 142, 136, 136, 138, 128, 136, 131, 125, 118, 114, 120, 112, 128, 135, 137, 126, 119, 116, 146, 118, 142, 122, 126, 126, 114, 124, 126, 128, 123, 111, 135, 114, 132, 139, 139, 141, 143, 128, 137, 125, 145, 130, 114, 116, 124, 112, 140, 147, 128, 127, 151, 111, 129, 140, 137, 132, 123, 130, 132, 114, 127, 131, 106, 123, 123, 127, 131, 137, 123, 148, 137, 146, 121, 99, 111, 107, 123, 124, 142, 152, 109, 124, 131, 132, 119, 144, 132, 117, 121, 114, 145, 128, 129, 125, 125, 112, 139, 133, 130, 124, 131, 128, 128, 117, 118, 129, 129, 109, 126, 110, 124, 120, 109, 127, 109, 119, 136, 134, 115, 131, 114, 124, 132, 123, 125, 135, 122, 125, 124, 109, 131, 127, 116, 110, 140, 135, 134, 126, 132, 130, 114, 132, 125, 116, 120, 131, 129, 121, 134, 128, 140, 136, 118, 135, 125, 147, 134, 116, 114, 122, 126, 126, 130, 121, 114, 116, 125, 138, 117, 122, 110, 117, 120, 122, 136, 117, 120, 122, 133, 119, 123, 112, 124, 130, 122, 137, 153, 115, 125, 134, 133, 120, 129, 130, 141, 126, 119, 161, 107, 139, 129, 117, 120, 116, 131, 136, 107, 114, 129, 134, 120, 130, 131, 127, 111, 141, 129, 121, 130, 124, 109, 121, 122, 119, 125, 135, 128, 142, 125, 124, 121, 115, 119, 108, 129, 125, 125, 114, 148, 111, 121, 124, 135, 132, 114, 152, 115, 122, 122, 128, 116, 130, 123, 109, 114, 132, 120, 125, 120, 111, 113, 107, 129, 117, 127, 119, 122, 142, 115, 130, 132, 132, 133, 145, 124, 119, 127, 127, 102, 124, 115, 154, 157, 118, 127, 155, 108, 118, 126, 116, 119, 125, 121, 110, 116, 131, 126, 114, 124, 118, 126, 128, 133, 115, 127, 120, 117, 126, 121, 120, 120, 116, 139, 118, 113, 130, 135, 133, 121, 151, 132, 123, 112, 132, 122, 125, 130, 156, 150, 127, 133, 109, 110, 115, 128, 124, 124, 122, 138, 124, 142, 112, 117, 116, 134, 119, 128, 125, 128, 128, 127, 144, 128, 130, 145, 123, 114, 113, 119, 127, 121, 129, 133, 136, 129, 120, 116, 121, 124, 128, 142, 125, 136, 143, 110, 118, 128, 124, 114, 128, 136, 130, 99, 125, 133, 117, 115, 133, 123, 139, 124, 123, 128, 125, 122, 109, 159, 121, 135, 133, 119, 111, 117, 122, 130, 121, 127, 130, 116, 129, 109, 115, 126, 134, 129, 134, 133, 128, 128, 143, 123, 96, 124, 118, 110, 120, 133, 119, 121, 134, 131, 147, 126, 119, 118, 117, 122, 103, 121, 118, 128, 142, 142, 144, 129, 120, 130, 136, 126, 125, 127, 133, 134, 130, 134, 137, 125, 130, 123, 131, 121, 114, 118, 126, 135, 123, 138, 129, 120, 129, 123, 137, 135, 122, 147, 120, 126, 127, 126, 129, 104, 130, 125, 118, 109, 142, 134, 122, 128, 113, 110, 121, 113, 151, 121, 133, 124, 118, 109, 127, 137, 127, 127, 125, 126, 144, 130, 119, 144, 114, 135, 125, 132, 130, 158, 113, 117, 123, 100, 132, 129, 136, 129, 134, 134, 136, 115, 118, 113, 123, 124, 137, 137, 122, 126, 120, 129, 131, 111, 146, 131, 108, 126, 115, 100, 118, 136, 99, 122, 112, 122, 127, 127, 139, 135, 120, 127, 129, 136, 120, 130, 128, 138, 133, 124, 118, 146, 121, 119, 139, 123, 117, 133, 128, 122, 127, 126, 131, 124, 124, 111, 120, 131, 134, 119, 119, 127, 108, 116, 100, 122, 137, 126, 133, 122, 131, 138, 115, 130, 123, 150, 109, 124, 134, 118, 134, 146, 108, 139, 139, 127, 116, 107, 143, 136, 115, 114, 149, 124, 117, 127, 132, 129, 128, 130, 131, 135, 137, 129, 127, 141, 136, 117, 120, 132, 127, 116, 123, 130, 111, 134, 110, 145, 127, 125, 125, 108, 123, 121, 124, 119, 128, 129, 113, 124, 134, 142, 130, 111, 118, 138, 108, 150, 115, 135, 118, 134, 105, 123, 126, 138, 129, 107, 135, 122, 140, 126, 113, 123, 136, 129, 114, 121, 128, 123, 130, 130, 128, 115, 120, 134, 122, 135, 117, 127, 128, 127, 120, 136, 124, 126, 121, 124, 147, 131, 119, 120, 165, 107, 128, 128, 125, 131, 133, 137, 136, 143, 143, 123, 140, 135, 105, 106, 126, 134, 132, 119, 129, 140, 124, 116, 118, 119, 147, 126, 115, 122, 127, 101, 127, 127, 114, 149, 134, 137, 125, 100, 135, 120, 115, 121, 127, 117, 137, 126, 120, 123, 118, 113, 119, 109, 120, 130, 121, 135, 122, 132, 134, 130, 124, 141, 128, 130, 126, 143, 114, 117, 120, 112, 121, 126, 126, 131, 122, 125, 135, 121, 127, 140, 116, 135, 120, 118, 132, 125, 127, 126, 128, 144, 129, 104, 127, 115, 126, 134, 136, 120, 126, 121, 136, 130, 127, 122, 102, 132, 134, 115, 122, 130, 127, 127, 112, 118, 121, 131, 134, 142, 120, 129, 121, 110, 140, 126, 121, 132, 131, 108, 132, 117, 138, 117, 116, 110, 117, 117, 126, 132, 136, 126, 117, 122, 131, 124, 96, 123, 146, 114, 105, 112, 114, 126, 139, 132, 136, 133, 127, 125, 123, 132, 106, 142, 126, 130, 122, 136, 128, 138, 114, 135, 141, 134, 126, 133, 124, 123, 144, 126, 136, 133, 133, 129, 119, 113, 110, 125, 134, 126, 124, 125, 118, 142, 138, 105, 131, 122, 134, 126, 119, 132, 123, 122, 124, 113, 133, 128, 120, 123, 109, 137, 120, 124, 121, 125, 126, 132, 125, 146, 124, 142, 130, 107, 111, 137, 128, 117, 142, 128, 115, 124, 120, 119, 115, 133, 133, 131, 133, 117, 129, 135, 109, 122, 142, 139, 116, 118, 128, 118, 134, 138, 127, 126, 123, 132, 133, 125, 139, 125, 121, 128, 103, 137, 113, 120, 140, 124, 113, 138, 123, 137, 121, 131, 125, 122, 128, 107, 130, 130, 136, 135, 139, 109, 125, 107, 124, 132, 98, 138, 121, 134, 123, 124, 137, 129, 125, 135, 123, 105, 130, 114, 116, 138, 128, 127, 121, 118, 135, 129, 115, 136, 127, 124, 134, 117, 125, 136, 116, 130, 120, 127, 115, 109, 119, 121, 123, 111, 118, 117, 120, 121, 123, 120, 117, 142, 128, 132, 125, 129, 122, 132, 127, 122, 119, 113, 121, 120, 124, 133, 128, 117, 133, 131, 128, 139, 132, 108, 138, 126, 123, 146, 132, 131, 139, 125, 122, 129, 142, 134, 127, 117, 137, 136, 132, 112, 126, 121, 119, 116, 141, 127, 126, 119, 136, 127, 134, 109, 124, 112, 133, 124, 120, 118, 137, 118, 121, 123, 125, 120, 115, 121, 136, 136, 121, 119, 133, 121, 118, 120, 125, 126, 135, 131, 134, 113, 125, 144, 137, 117, 123, 118, 115, 104, 134, 123, 115, 129, 122, 116, 136, 115, 119, 129, 124, 119, 131, 126, 121, 124, 140, 121, 132, 129, 122, 120, 135, 127, 122, 120, 129, 115, 112, 125, 127, 129, 130, 110, 136, 120, 120, 125, 129, 120, 124, 133, 132, 128, 132, 128, 124, 139, 121, 133, 107, 129, 117, 127, 126, 141, 120, 149, 130, 148, 121, 133, 119, 110, 124, 116, 116, 129, 120, 118, 124, 114, 124, 136, 118, 128, 123, 124, 130, 121, 126, 129, 121, 127, 121, 111, 137, 136, 122, 123, 132, 119, 120, 117, 114, 118, 127, 132, 115, 128, 110, 134, 119, 128, 115, 111, 129, 124, 114, 127, 140, 146, 120, 114, 116, 145, 125, 126, 126, 133, 110, 140, 129, 113, 138, 110, 147, 114, 124, 125, 122, 127, 121, 126, 124, 122, 126, 124, 138, 128, 125, 125, 132, 112, 120, 127, 124, 130, 112, 107, 117, 113, 123, 118, 139, 119, 130, 118, 129, 126, 126, 127, 119, 109, 129, 135, 132, 121, 123, 135, 122, 121, 133, 120, 109, 118, 131, 128, 132, 126, 116, 112, 102, 127, 127, 125, 108, 137, 131, 124, 113, 135, 128, 137, 128, 141, 128, 118, 139, 119, 120, 127, 125, 121, 120, 111, 115, 111, 135, 134, 131, 119, 145, 112, 129, 133, 114, 109, 148, 113, 118, 135, 137, 127, 117, 121, 126, 121, 129, 129, 122, 123, 127, 120, 125, 129, 123, 133, 115, 112, 138, 131, 113, 122, 124, 113, 126, 123, 133, 126, 123, 130, 119, 130, 131, 117, 119, 127, 110, 136, 100, 117, 125, 131, 142, 118, 119, 131, 121, 126, 139, 125, 128, 115, 127, 140, 127, 131, 115, 135, 134, 126, 136, 111, 127, 121, 126, 130, 120, 140, 138, 126, 107, 131, 116, 132, 131, 133, 113, 141, 120, 125, 117, 118, 122, 119, 118, 130, 130, 121, 118, 131, 130, 117, 132, 140, 122, 127, 115, 118, 151, 143, 128, 129, 118, 119, 110, 106, 134, 111, 123, 109, 123, 138, 127, 132, 118, 135, 129, 149, 122, 129, 117, 128, 117, 118, 130, 117, 138, 131, 129, 126, 128, 134, 108, 113, 124, 143, 110, 126, 122, 114, 119, 137, 134, 109, 123, 126, 137, 123, 125, 112, 113, 130, 121, 128, 111, 131, 132, 136, 124, 143, 122, 123, 112, 131, 110, 126, 133, 119, 132, 117, 128, 121, 117, 122, 115, 129, 122, 124, 124, 121, 128, 117, 119, 128, 131, 121, 126, 132, 102, 122, 138, 124, 134, 134, 124, 135, 130, 116, 140, 120, 135, 135, 127, 118, 126, 120, 130, 123, 122, 140, 137, 130, 123, 124, 117, 122, 121, 113, 121, 116, 114, 109, 134, 124, 121, 128, 135, 105, 115, 132, 124, 129, 104, 115, 134, 119, 154, 121, 129, 121, 126, 138, 121, 123, 133, 123, 132, 137, 154, 124, 122, 120, 116, 147, 120, 110, 116, 117, 105, 129, 125, 126, 121, 118, 131, 129, 126, 134, 133, 123, 122, 116, 148, 129, 123, 133, 116, 141, 128, 145, 134, 126, 140, 142, 123, 126, 118, 134, 105, 134, 111, 118, 123, 125, 120, 114, 139, 145, 124, 120, 121, 130, 105, 121, 126, 116, 140, 157, 107, 111, 122, 104, 124, 136, 125, 135, 130, 128, 134, 121, 131, 139, 137, 112, 129, 131, 140, 122, 127, 127, 97, 126, 115, 130, 108, 115, 122, 126, 121, 141, 128, 140, 111, 114, 118, 123, 121, 121, 103, 127, 107, 120, 134, 142, 124, 118, 119, 141, 109, 116, 135, 142, 124, 119, 138, 115, 127, 132, 133, 134, 133, 136, 126, 127, 128, 111, 115, 109, 125, 125, 140, 141, 124, 133, 132, 100, 141, 126, 122, 123, 125, 125, 118, 132, 131, 121, 122, 118, 110, 124, 114, 114, 136, 132, 134, 116, 132, 131, 115, 111, 134, 156, 137, 128, 129, 142, 123, 131, 144, 117, 125, 127, 133, 132, 131, 115, 123, 100, 128, 112, 123, 120, 113, 123, 146, 112, 116, 118, 137, 129, 132, 132, 124, 119, 135, 125, 124, 103, 137, 117, 126, 129, 140, 130, 137, 119, 124, 130, 132, 122, 124, 128, 119, 129, 126, 126, 129, 129, 129, 121, 141, 120, 129, 117, 135, 136, 120, 123, 125, 112, 125, 132, 120, 124, 128, 115, 117, 137, 124, 118, 137, 134, 113, 124, 122, 129, 128, 117, 149, 115, 116, 129, 126, 125, 121, 135, 122, 121, 128, 118, 127, 135, 112, 118, 124, 133, 145, 134, 122, 145, 134, 103, 115, 121, 123, 131, 126, 127, 132, 124, 134, 121, 135, 114, 114, 107, 132, 128, 113, 109, 127, 114, 124, 145, 106, 115, 122, 125, 122, 123, 105, 124, 126, 138, 117, 125, 132, 146, 121, 126, 146, 125, 116, 120, 114, 109, 139, 113, 134, 123, 122, 121, 127, 122, 148, 130, 119, 108, 124, 119, 135, 127, 127, 144, 121, 123, 127, 129, 127, 138, 111, 134, 122, 128, 135, 138, 134, 124, 134, 118, 132, 111, 121, 128, 125, 112, 123, 99, 118, 119, 113, 121, 130, 122, 118, 129, 147, 138, 118, 113, 149, 130, 131, 124, 131, 125, 113, 115, 122, 109, 105, 139, 129, 118, 120, 112, 115, 140, 116, 119, 124, 117, 119, 113, 125, 131, 133, 113, 124, 115, 117, 147, 147, 123, 135, 110, 130, 126, 120, 118, 124, 126, 114, 145, 129, 127, 125, 134, 129, 119, 142, 128, 132, 118, 103, 119, 134, 116, 124, 133, 117, 127, 125, 109, 129, 131, 129, 113, 131, 132, 107, 123, 121, 123, 123, 120, 124, 119, 125, 118, 119, 130, 112, 123, 124, 136, 124, 133, 122, 137, 138, 132, 116, 121, 133, 141, 146, 120, 133, 139, 130, 124, 115, 118, 91, 139, 133, 123, 135, 144, 125, 138, 126, 112, 134, 121, 129, 114, 106, 141, 130, 126, 130, 137, 144, 123, 128, 100, 124, 118, 106, 123, 128, 126, 117, 99, 129, 111, 129, 116, 120, 115, 139, 114, 134, 138, 152, 109, 113, 120, 115, 109, 132, 136, 141, 122, 115, 124, 132, 135, 133, 136, 145, 143, 112, 131, 117, 126, 130, 134, 114, 120, 134, 127, 112, 112, 113, 148, 142, 121, 124, 116, 121, 112, 123, 142, 113, 123, 99, 113, 120, 146, 116, 114, 139, 130, 126, 122, 130, 133, 128, 136, 136, 136, 141, 150, 120, 120, 119, 138, 134, 126, 128, 120, 124, 143, 114, 124, 114, 119, 117, 129, 115, 112, 146, 107, 134, 130, 138, 127, 120, 124, 115, 123, 117, 106, 120, 119, 123, 117, 118, 132, 133, 112, 126, 152, 129, 115, 114, 122, 141, 124, 116, 118, 139, 127, 114, 104, 137, 119, 126, 121, 123, 130, 125, 130, 114, 137, 124, 131, 129, 109, 129, 124, 116, 107, 125, 121, 136, 145, 119, 112, 107, 128, 117, 125, 132, 112, 133, 115, 134, 120, 122, 131, 123, 124, 115, 139, 105, 126, 130, 135, 126, 133, 115, 124, 149, 111, 140, 106, 120, 115, 131, 137, 129, 119, 141, 140, 126, 121, 148, 118, 132, 126, 134, 108, 122, 104, 139, 125, 124, 137, 123, 125, 141, 132, 131, 122, 124, 100, 124, 122, 121, 111, 120, 130, 123, 129, 136, 113, 107, 118, 113, 124, 115, 121, 114, 157, 113, 120, 119, 128, 110, 122, 118, 122, 121, 109, 117, 142, 138, 139, 107, 138, 126, 124, 141, 136, 143, 125, 129, 141, 111, 123, 138, 124, 131, 138, 131, 125, 129, 117, 130, 126, 120, 125, 137, 123, 146, 135, 117, 115, 114, 122, 123, 119, 139, 142, 137, 116, 130, 126, 126, 128, 126, 124, 139, 117, 122, 108, 125, 128, 113, 143, 115, 122, 118, 130, 119, 141, 128, 114, 99, 107, 135, 125, 117, 133, 136, 122, 133, 106, 118, 125, 131, 123, 117, 141, 124, 120, 132, 120, 146, 116, 124, 130, 112, 122, 132, 140, 125, 122, 130, 114, 126, 139, 143, 117, 136, 137, 127, 122, 122, 139, 129, 118, 128, 130, 117, 132, 127, 118, 128, 117, 123, 127, 118, 137, 134, 136, 124, 140, 130, 121, 113, 124, 114, 140, 131, 132, 127, 124, 114, 140, 122, 143, 142, 106, 122, 127, 106, 120, 116, 123, 123, 126, 122, 119, 127, 133, 123, 130, 127, 105, 127, 116, 115, 139, 109, 139, 131, 121, 127, 129, 106, 127, 112, 129, 118, 128, 128, 137, 141, 124, 104, 121, 112, 138, 138, 124, 119, 132, 139, 104, 104, 114, 118, 149, 125, 115, 122, 129, 107, 130, 112, 111, 133, 143, 129, 130, 121, 119, 133, 131, 122, 120, 113, 121, 128, 126, 145, 124, 117, 139, 134, 121, 117, 124, 133, 121, 115, 126, 112, 114, 118, 124, 133, 116, 110, 131, 120, 126, 123, 129, 130, 132, 134, 121, 114, 118, 138, 138, 134, 132, 136, 123, 116, 106, 127, 117, 119, 130, 143, 123, 121, 140, 123, 115, 121, 110, 128, 135, 119, 119, 130, 151, 111, 155, 119, 143, 130, 128, 126, 127, 137, 126, 134, 126, 111, 126, 138, 111, 132, 135, 140, 140, 120, 161, 120, 120, 131, 103, 125, 116, 133, 116, 120, 116, 106, 121, 120, 113, 132, 113, 121, 125, 138, 130, 125, 140, 137, 106, 133, 128, 133, 133, 121, 146, 125, 138, 124, 130, 111, 130, 119, 121, 104, 118, 124, 109, 143, 118, 129, 113, 125, 144, 121, 115, 134, 124, 103, 129, 132, 114, 122, 127, 134, 125, 125, 129, 127, 132, 120, 128, 131, 144, 115, 132, 123, 113, 107, 123, 119, 125, 107, 131, 123, 122, 113, 131, 141, 140, 128, 121, 114, 127, 139, 123, 132, 126, 124, 128, 121, 127, 107, 125, 136, 129, 125, 115, 111, 112, 133, 108, 118, 114, 122, 123, 140, 115, 115, 121, 116, 121, 125, 136, 138, 140, 123, 140, 124, 109, 117, 107, 122, 122, 113, 142, 129, 127, 136, 123, 111, 132, 114, 114, 129, 138, 128, 156, 129, 111, 117, 142, 120, 124, 109, 123, 126, 139, 122, 125, 134, 134, 135, 127, 121, 121, 111, 127, 115, 112, 107, 112, 111, 128, 119, 121, 133, 116, 123, 148, 126, 133, 144, 122, 131, 121, 123, 116, 125, 114, 133, 109, 124, 122, 131, 132, 128, 107, 123, 113, 118, 109, 119, 113, 122, 112, 117, 115, 121, 126, 127, 104, 128, 116, 115, 125, 118, 131, 104, 119, 127, 119, 108, 123, 122, 122, 130, 126, 124, 130, 112, 102, 111, 115, 129, 119, 146, 126, 130, 138, 136, 148, 119, 101, 105, 113, 129, 121, 118, 128, 122, 129, 128, 110, 139, 121, 138, 125, 147, 117, 105, 119, 150, 115, 119, 121, 120, 117, 120, 119, 119, 123, 112, 126, 138, 128, 123, 114, 129, 118, 132, 132, 119, 126, 133, 127, 124, 132, 117, 127, 125, 135, 121, 115, 107, 112, 124, 113, 132, 132, 111, 130, 131, 146, 122, 142, 138, 141, 131, 121, 125, 130, 131, 147, 129, 130, 138, 146, 125, 133, 129, 129, 133, 123, 146, 122, 127, 131, 130, 131, 123, 147, 130, 133, 128, 143, 114, 125, 122, 142, 122, 129, 124, 131, 116, 133, 123, 137, 137, 139, 123, 106, 127, 111, 135, 139, 138, 137, 125, 121, 133, 134, 125, 137, 135, 129, 134, 117, 126, 127, 128, 126, 120, 113, 124, 114, 131, 143, 138, 103, 137, 103, 140, 110, 116, 128, 120, 137, 159, 118, 128, 129, 130, 134, 125, 134, 123, 127, 134, 119, 114, 140, 111, 124, 136, 120, 141, 115, 140, 123, 129, 113, 144, 126, 139, 111, 126, 107, 118, 112, 127, 128, 123, 128, 140, 151, 128, 143, 115, 135, 133, 129, 121, 129, 124, 122, 132, 132, 124, 118, 111, 142, 124, 117, 113, 125, 110, 132, 115, 122, 136, 118, 116, 132, 134, 128, 124, 133, 124, 128, 119, 119, 133, 124, 117, 122, 136, 126, 95, 116, 131, 142, 130, 133, 130, 133, 117, 143, 110, 109, 118, 141, 133, 134, 115, 121, 130, 119, 120, 106, 144, 118, 111, 126, 120, 115, 123, 123, 124, 128, 121, 118, 113, 141, 121, 121, 135, 109, 107, 124, 124, 130, 124, 137, 121, 135, 132, 123, 111, 126, 117, 128, 121, 115, 116, 131, 122, 127, 133, 116, 139, 105, 117, 123, 132, 131, 118, 126, 105, 131, 126, 129, 139, 124, 125, 109, 117, 136, 114, 134, 116, 122, 125, 116, 138, 130, 117, 130, 133, 118, 119, 122, 163, 127, 121, 119, 111, 126, 123, 115, 115, 131, 130, 105, 134, 112, 120, 125, 117, 143, 102, 117, 124, 108, 128, 122, 116, 115, 138, 122, 132, 117, 107, 156, 140, 128, 141, 121, 139, 118, 123, 111, 128, 127, 119, 125, 125, 127, 120, 111, 106, 114, 121, 109, 143, 128, 112, 110, 119, 126, 122, 129, 133, 128, 128, 126, 131, 119, 114, 117, 122, 131, 134, 135, 123, 126, 122, 116, 151, 124, 142, 134, 126, 123, 122, 123, 116, 123, 99, 144, 137, 124, 136, 130, 136, 139, 138, 124, 118, 118, 129, 147, 121, 123, 131, 128, 119, 130, 125, 135, 110, 131, 117, 132, 117, 130, 128, 116, 137, 117, 134, 134, 113, 126, 120, 121, 127, 144, 133, 123, 127, 126, 125, 123, 139, 140, 144, 137, 143, 158, 131, 109, 133, 133, 112, 123, 133, 135, 125, 108, 128, 134, 122, 109, 152, 124, 130, 129, 116, 131, 129, 136, 137, 132, 133, 134, 136, 109, 115, 108, 113, 123, 114, 124, 133, 105, 124, 126, 122, 109, 129, 131, 122, 137, 135, 126, 142, 120, 111, 124, 134, 121, 139, 111, 134, 126, 113, 122, 125, 129, 115, 134, 124, 116, 125, 115, 93, 121, 105, 125, 128, 121, 126, 125, 129, 117, 113, 140, 127, 135, 109, 124, 130, 132, 138, 123, 122, 131, 133, 124, 121, 123, 113, 123, 130, 136, 132, 124, 133, 109, 128, 125, 125, 139, 140, 139, 130, 115, 122, 130, 125, 136, 123, 135, 118, 117, 133, 133, 112, 123, 124, 139, 124, 121, 119, 115, 115, 116, 130, 117, 134, 124, 115, 130, 127, 138, 134, 128, 127, 135, 150, 134, 138, 125, 140, 127, 127, 129, 118, 114, 120, 123, 118, 137, 123, 136, 119, 118, 141, 124, 103, 134, 125, 88, 125, 129, 126, 125, 130, 135, 129, 132, 123, 136, 139, 114, 118, 118, 105, 125, 124, 130, 144, 108, 152, 125, 119, 139, 127, 138, 111, 124, 122, 121, 118, 114, 135, 121, 132, 120, 126, 129, 140, 112, 134, 131, 124, 120, 116, 117, 125, 137, 124, 114, 137, 114, 111, 110, 135, 123, 134, 108, 141, 127, 130, 117, 145, 122, 132, 113, 136, 129, 143, 126, 116, 120, 117, 139, 123, 115, 128, 134, 141, 118, 124, 137, 134, 124, 109, 131, 130, 121, 130, 116, 130, 113, 128, 133, 121, 143, 127, 137, 111, 99, 138, 138, 132, 128, 128, 123, 131, 146, 120, 126, 107, 124, 116, 129, 118, 123, 115, 136, 117, 117, 124, 119, 136, 136, 137, 111, 136, 125, 129, 116, 150, 131, 128, 128, 121, 126, 125, 122, 104, 108, 133, 121, 128, 138, 131, 136, 112, 115, 131, 131, 142, 126, 145, 130, 134, 113, 135, 122, 117, 145, 129, 129, 114, 121, 131, 128, 133, 123, 111, 141, 133, 147, 115, 146, 134, 111, 128, 143, 117, 152, 130, 111, 122, 146, 112, 108, 130, 118, 127, 116, 135, 110, 134, 128, 125, 144, 116, 120, 121, 126, 126, 145, 126, 116, 136, 130, 135, 132, 126, 135, 116, 133, 139, 140, 126, 124, 124, 128, 131, 139, 129, 119, 131, 118, 121, 135, 125, 122, 118, 112, 120, 118, 104, 126, 117, 121, 139, 122, 125, 112, 121, 126, 137, 120, 135, 121, 101, 137, 135, 139, 112, 127, 136, 129, 141, 132, 126, 136, 109, 112, 130, 140, 144, 135, 120, 125, 111, 124, 129, 101, 128, 123, 130, 113, 118, 132, 132, 118, 114, 139, 127, 144, 133, 134, 111, 143, 133, 132, 136, 120, 137, 139, 146, 117, 114, 110, 123, 113, 130, 122, 121, 120, 142, 127, 108, 95, 120, 120, 128, 124, 133, 115, 114, 136, 127, 112, 131, 128, 136, 128, 123, 115, 137, 126, 130, 141, 120, 128, 138, 118, 122, 125, 117, 107, 131, 140, 141, 130, 109, 115, 113, 124, 122, 111, 135, 128, 121, 133, 136, 128, 126, 133, 134, 136, 121, 132, 124, 137, 126, 143, 133, 112, 141, 127, 106, 96, 136, 137, 131, 121, 120, 126, 125, 123, 141, 136, 119, 136, 90, 140, 133, 126, 134, 130, 142, 115, 130, 145, 141, 127, 125, 115, 137, 131, 122, 127, 127, 128, 112, 132, 130, 124, 130, 117, 126, 131, 139, 140, 119, 119, 146, 138, 122, 116, 136, 143, 129, 116, 105, 125, 131, 115, 113, 121, 129, 111, 138, 109, 140, 129, 115, 121, 133, 132, 134, 132, 135, 125, 115, 126, 119, 119, 133, 130, 133, 129, 127, 132, 126, 117, 120, 121, 135, 105, 125, 149, 122, 144, 125, 120, 119, 127, 126, 117, 139, 121, 139, 140, 111, 112, 129, 123, 116, 134, 122, 128, 113, 106, 148, 126, 131, 120, 123, 125, 130, 108, 151, 116, 123, 157, 107, 146, 124, 135, 127, 129, 115, 110, 121, 129, 128, 135, 125, 116, 138, 115, 148, 135, 133, 134, 123, 143, 127, 134, 140, 131, 120, 133, 129, 113, 136, 126, 132, 127, 104, 120, 106, 125, 120, 116, 132, 108, 114, 118, 117, 137, 121, 122, 121, 132, 108, 125, 150, 125, 110, 131, 134, 139, 124, 121, 135, 136, 139, 126, 124, 134, 133, 122, 136, 135, 114, 133, 117, 110, 131, 112, 133, 117, 133, 119, 118, 118, 125, 139, 123, 124, 127, 132, 119, 136, 137, 111, 159, 114, 118, 121, 144, 123, 108, 128, 121, 124, 118, 127, 142, 126, 132, 107, 100, 132, 123, 129, 124, 99, 116, 118, 114, 122, 130, 139, 127, 125, 104, 136, 132, 124, 125, 108, 138, 114, 114, 122, 118, 127, 115, 147, 138, 107, 88, 119, 130, 109, 131, 129, 124, 122, 134, 133, 152, 116, 119, 118, 135, 133, 107, 127, 137, 131, 112, 122, 131, 117, 114, 133, 132, 127, 118, 126, 119, 146, 118, 107, 138, 118, 130, 141, 114, 126, 107, 131, 131, 112, 106, 146, 116, 126, 125, 123, 134, 129, 121, 129, 107, 128, 115, 101, 130, 115, 132, 118, 123, 122, 124, 122, 121, 115, 100, 138, 129, 146, 128, 148, 124, 124, 126, 133, 111, 109, 117, 126, 137, 127, 146, 110, 109, 121, 113, 126, 174, 125, 128, 125, 134, 125, 133, 129, 122, 127, 115, 121, 116, 106, 124, 129, 124, 140, 139, 130, 113, 120, 141, 132, 129, 120, 114, 137, 117, 116, 131, 142, 124, 132, 124, 136, 138, 125, 126, 115, 111, 138, 134, 122, 128, 126, 121, 114, 134, 131, 132, 130, 122, 122, 126, 166, 123, 102, 121, 119, 125, 126, 133, 130, 121, 146, 120, 129, 114, 127, 112, 119, 129, 126, 118, 143, 111, 126, 113, 111, 116, 133, 137, 136, 123, 147, 125, 123, 131, 116, 130, 123, 127, 134, 118, 128, 128, 119, 121, 112, 118, 106, 127, 126, 137, 111, 116, 131, 105, 124, 116, 123, 119, 121, 117, 112, 108, 109, 135, 141, 139, 119, 120, 129, 104, 125, 113, 124, 120, 115, 134, 147, 117, 132, 138, 109, 123, 113, 124, 111, 130, 110, 122, 139, 125, 110, 119, 132, 116, 124, 117, 133, 122, 110, 122, 137, 141, 119, 118, 118, 126, 136, 121, 123, 126, 115, 132, 142, 124, 131, 121, 111, 130, 137, 122, 115, 127, 126, 138, 113, 121, 132, 117, 134, 134, 121, 124, 112, 116, 135, 126, 126, 135, 117, 125, 146, 137, 128, 135, 103, 117, 113, 124, 145, 124, 128, 120, 139, 120, 130, 121, 139, 132, 92, 122, 124, 159, 131, 102, 136, 134, 133, 132, 109, 128, 129, 117, 138, 123, 134, 95, 141, 143, 121, 149, 117, 132, 129, 127, 109, 140, 146, 130, 129, 126, 112, 122, 134, 134, 130, 133, 134, 100, 120, 129, 131, 133, 120, 121, 125, 122, 134, 120, 129, 129, 118, 138, 135, 117, 112, 129, 133, 132, 136, 119, 101, 115, 113, 126, 110, 134, 100, 122, 120, 122, 114, 118, 124, 133, 139, 153, 134, 112, 130, 135, 122, 128, 120, 123, 115, 124, 128, 139, 139, 119, 111, 127, 139, 125, 112, 106, 132, 120, 130, 120, 119, 127, 124, 133, 127, 131, 125, 116, 117, 109, 124, 157, 136, 136, 109, 120, 143, 129, 126, 134, 115, 129, 127, 129, 121, 117, 146, 124, 127, 131, 120, 122, 123, 119, 108, 123, 123, 103, 149, 113, 125, 138, 119, 128, 156, 126, 142, 128, 132, 125, 130, 115, 140, 105, 125, 123, 149, 130, 112, 117, 133, 127, 121, 125, 117, 111, 126, 117, 145, 118, 117, 145, 133, 116, 131, 122, 128, 124, 121, 132, 122, 106, 118, 123, 114, 135, 134, 124, 137, 114, 137, 110, 110, 127, 128, 126, 117, 124, 111, 134, 135, 115, 147, 121, 138, 113, 112, 116, 107, 117, 113, 127, 129, 130, 125, 136, 112, 141, 128, 123, 124, 130, 156, 135, 124, 138, 136, 130, 127, 133, 131, 127, 124, 120, 144, 118, 133, 105, 132, 128, 123, 122, 111, 110, 128, 142, 152, 124, 117, 124, 130, 117, 119, 128, 119, 127, 117, 115, 124, 124, 125, 113, 122, 109, 130, 139, 117, 138, 128, 116, 122, 128, 118, 132, 119, 146, 132, 124, 114, 118, 133, 139, 133, 137, 124, 134, 116, 128, 130, 111, 127, 130, 131, 127, 121, 134, 109, 132, 134, 151, 137, 135, 123, 129, 138, 113, 105, 133, 121, 128, 155, 123, 135, 131, 113, 140, 124, 112, 119, 110, 145, 131, 100, 115, 141, 111, 104, 135, 123, 129, 106, 121, 134, 130, 129, 118, 121, 141, 129, 127, 140, 126, 121, 134, 114, 118, 139, 110, 148, 134, 112, 140, 134, 125, 99, 116, 124, 121, 112, 127, 129, 131, 124, 138, 151, 146, 116, 113, 121, 113, 135, 137, 135, 140, 128, 116, 139, 122, 123, 110, 125, 124, 115, 126, 145, 143, 121, 132, 137, 126, 123, 137, 124, 101, 120, 124, 129, 127, 125, 132, 108, 111, 127, 123, 137, 122, 124, 124, 121, 122, 122, 120, 124, 142, 133, 125, 133, 122, 111, 115, 145, 123, 115, 113, 129, 129, 118, 146, 137, 115, 130, 146, 133, 137, 104, 121, 129, 120, 119, 103, 102, 115, 110, 112, 122, 149, 127, 127, 130, 142, 123, 131, 124, 117, 136, 128, 145, 125, 112, 134, 113, 135, 113, 132, 128, 127, 135, 131, 118, 114, 108, 138, 154, 120, 115, 143, 133, 140, 115, 105, 125, 126, 133, 117, 141, 126, 128, 137, 139, 110, 139, 139, 115, 107, 138, 140, 126, 122, 126, 110, 116, 116, 133, 149, 129, 111, 139, 125, 126, 117, 131, 123, 133, 131, 129, 133, 118, 135, 133, 119, 148, 110, 114, 133, 120, 124, 147, 127, 125, 140, 114, 109, 135, 117, 144, 120, 127, 113, 125, 128, 122, 135, 110, 112, 124, 126, 134, 129, 116, 110, 123, 135, 115, 117, 117, 133, 130, 130, 118, 126, 137, 136, 139, 136, 111, 124, 104, 121, 127, 135, 130, 129, 127, 130, 118, 133, 109, 140, 128, 141, 134, 120, 132, 128, 141, 125, 130, 134, 127, 122, 109, 135, 122, 122, 111, 117, 121, 109, 121, 118, 130, 134, 124, 134, 119, 127, 119, 127, 122, 112, 96, 142, 126, 135, 133, 135, 132, 133, 136, 131, 120, 128, 127, 129, 128, 118, 134, 124, 126, 141, 129, 138, 128, 112, 123, 127, 124, 121, 118, 112, 117, 124, 137, 121, 113, 120, 131, 128, 134, 135, 130, 125, 101, 123, 124, 124, 152, 120, 135, 127, 118, 137, 129, 129, 125, 124, 114, 122, 138, 114, 127, 118, 104, 104, 142, 116, 134, 130, 134, 116, 127, 124, 130, 125, 123, 129, 116, 140, 134, 116, 135, 111, 129, 140, 116, 151, 126, 117, 110, 130, 138, 130, 128, 121, 129, 109, 137, 134, 117, 111, 147, 117, 135, 137, 149, 129, 121, 115, 133, 124, 137, 132, 124, 124, 120, 122, 127, 108, 113, 119, 122, 123, 129, 119, 124, 128, 120, 131, 113, 137, 119, 122, 141, 140, 142, 117, 116, 125, 134, 119, 117, 130, 131, 122, 132, 120, 123, 118, 127, 151, 117, 123, 123, 132, 128, 110, 121, 134, 115, 129, 127, 117, 130, 123, 128, 135, 126, 106, 123, 128, 113, 126, 111, 120, 121, 120, 117, 134, 119, 141, 113, 123, 112, 142, 117, 107, 119, 114, 132, 123, 130, 115, 120, 143, 126, 98, 142, 114, 136, 128, 116, 130, 114, 120, 122, 122, 137, 119, 117, 124, 122, 130, 119, 124, 133, 130, 127, 107, 122, 141, 119, 113, 132, 113, 131, 134, 108, 126, 130, 111, 114, 126, 115, 142, 126, 112, 124, 149, 140, 127, 129, 122, 125, 121, 122, 126, 126, 117, 111, 137, 122, 138, 98, 127, 139, 127, 129, 132, 125, 112, 134, 128, 120, 136, 128, 135, 123, 137, 108, 122, 134, 116, 132, 128, 145, 122, 129, 117, 129, 135, 115, 120, 125, 105, 136, 131, 124, 125, 125, 132, 115, 133, 118, 122, 126, 117, 133, 123, 116, 120, 140, 108, 102, 112, 115, 128, 131, 128, 121, 129, 120, 123, 131, 137, 124, 124, 120, 103, 122, 103, 133, 108, 128, 118, 109, 118, 131, 157, 122, 123, 137, 130, 115, 122, 124, 124, 127, 136, 130, 123, 108, 132, 116, 125, 113, 136, 127, 113, 127, 138, 135, 123, 113, 131, 131, 128, 127, 119, 144, 134, 135, 129, 112, 123, 125, 130, 112, 144, 128, 124, 113, 122, 137, 117, 122, 112, 117, 112, 111, 133, 126, 129, 123, 125, 121, 120, 126, 123, 137, 147, 131, 141, 127, 129, 123, 134, 126, 139, 116, 117, 124, 135, 122, 137, 113, 128, 109, 119, 119, 116, 133, 124, 140, 114, 114, 117, 126, 116, 138, 120, 127, 115, 126, 118, 124, 125, 131, 117, 132, 123, 130, 145, 120, 120, 117, 135, 124, 107, 117, 117, 123, 124, 104, 114, 123, 117, 129, 120, 113, 120, 128, 125, 139, 125, 120, 115, 123, 139, 122, 132, 131, 121, 116, 129, 121, 119, 138, 133, 133, 127, 128, 123, 126, 150, 131, 123, 142, 111, 140, 121, 143, 118, 107, 128, 121, 143, 127, 117, 119, 125, 128, 113, 116, 132, 128, 133, 122, 125, 125, 137, 111, 127, 123, 130, 135, 133, 125, 126, 151, 135, 126, 127, 143, 121, 134, 129, 119, 133, 119, 123, 132, 124, 137, 140, 125, 134, 128, 138, 121, 133, 130, 121, 127, 124, 133, 128, 122, 130, 118, 137, 125, 103, 127, 141, 139, 119, 118, 132, 120, 128, 129, 145, 121, 149, 123, 129, 121, 129, 140, 117, 109, 115, 110, 117, 125, 134, 132, 111, 124, 109, 149, 130, 127, 151, 118, 145, 132, 124, 123, 125, 131, 117, 126, 132, 127, 121, 127, 135, 136, 118, 124, 121, 116, 123, 116, 121, 141, 142, 115, 112, 132, 145, 123, 161, 129, 125, 134, 114, 133, 134, 118, 127, 123, 141, 113, 122, 115, 128, 134, 133, 137, 132, 117, 120, 128, 119, 116, 136, 139, 132, 120, 127, 128, 120, 141, 120, 132, 123, 121, 128, 117, 121, 118, 124, 133, 114, 129, 128, 105, 129, 135, 134, 126, 147, 137, 115, 121, 134, 126, 131, 116, 126, 127, 122, 127, 141, 118, 111, 102, 119, 133, 118, 127, 120, 125, 116, 128, 130, 127, 122, 126, 109, 113, 143, 130, 115, 140, 124, 115, 118, 143, 135, 120, 133, 138, 130, 124, 136, 112, 142, 127, 120, 132, 114, 141, 141, 122, 115, 126, 131, 137, 142, 131, 141, 166, 114, 114, 121, 122, 137, 141, 112, 115, 126, 119, 138, 124, 129, 115, 127, 104, 136, 134, 126, 137, 125, 127, 117, 126, 124, 111, 127, 133, 126, 126, 141, 106, 133, 131, 109, 123, 130, 114, 120, 121, 118, 143, 110, 120, 138, 118, 134, 126, 121, 130, 130, 140, 105, 133, 122, 136, 113, 115, 122, 109, 121, 130, 119, 120, 128, 124, 108, 132, 127, 128, 117, 122, 122, 108, 141, 133, 132, 128, 122, 130, 118, 127, 117, 121, 124, 134, 130, 135, 130, 128, 123, 152, 115, 115, 115, 125, 133, 126, 138, 118, 115, 130, 124, 133, 130, 121, 115, 137, 127, 153, 115, 127, 123, 125, 132, 118, 130, 143, 120, 113, 121, 108, 131, 126, 123, 120, 120, 117, 144, 131, 110, 130, 130, 113, 123, 118, 140, 128, 117, 133, 121, 117, 136, 127, 109, 121, 124, 119, 109, 112, 125, 116, 114, 118, 125, 123, 119, 129, 126, 109, 131, 96, 138, 114, 125, 133, 127, 131, 119, 117, 126, 136, 128, 134, 114, 127, 126, 117, 117, 116, 128, 130, 112, 117, 128, 132, 124, 121, 142, 118, 117, 118, 139, 125, 146, 114, 132, 137, 111, 129, 128, 136, 124, 129, 147, 124, 116, 106, 115, 118, 114, 144, 120, 109, 128, 116, 124, 118, 133, 131, 130, 137, 113, 127, 125, 130, 136, 112, 140, 121, 138, 136, 119, 118, 104, 129, 121, 107, 115, 108, 123, 111, 121, 122, 134, 120, 134, 114, 123, 112, 124, 127, 124, 117, 125, 121, 126, 116, 139, 119, 118, 137, 127, 124, 124, 127, 121, 134, 113, 125, 125, 122, 133, 114, 141, 109, 116, 128, 120, 115, 119, 120, 118, 132, 107, 119, 138, 135, 121, 134, 126, 124, 138, 136, 116, 129, 118, 130, 117, 118, 125, 129, 118, 138, 114, 130, 113, 126, 129, 121, 122, 124, 108, 128, 124, 136, 127, 119, 109, 122, 130, 125, 131, 119, 131, 137, 145, 127, 120, 136, 140, 104, 126, 102, 130, 122, 134, 109, 128, 128, 133, 132, 130, 127, 113, 122, 138, 132, 119, 142, 112, 129, 122, 126, 128, 122, 143, 129, 127, 119, 134, 123, 113, 134, 122, 132, 140, 117, 112, 136, 119, 120, 130, 122, 120, 124, 144, 110, 116, 109, 120, 106, 129, 130, 125, 123, 130, 110, 132, 117, 118, 136, 125, 126, 133, 120, 117, 120, 125, 137, 147, 129, 116, 129, 112, 121, 132, 133, 125, 138, 140, 128, 101, 121, 122, 125, 130, 142, 131, 104, 119, 122, 122, 125, 132, 144, 129, 110, 143, 123, 132, 137, 125, 138, 138, 126, 119, 142, 117, 129, 123, 115, 105, 123, 138, 124, 120, 120, 150, 125, 132, 138, 132, 126, 138, 124, 153, 125, 126, 138, 135, 154, 113, 139, 134, 136, 129, 119, 138, 118, 136, 123, 123, 123, 139, 141, 121, 121, 121, 122, 137, 119, 129, 133, 133, 120, 124, 150, 128, 137, 138, 119, 141, 128, 110, 111, 137, 140, 125, 109, 127, 120, 130, 127, 116, 118, 106, 130, 130, 136, 143, 109, 128, 122, 107, 105, 122, 134, 126, 119, 135, 129, 112, 132, 125, 123, 135, 125, 128, 121, 152, 117, 139, 135, 135, 123, 113, 111, 116, 122, 119, 134, 112, 130, 124, 127, 136, 120, 136, 129, 120, 140, 113, 122, 117, 122, 118, 130, 120, 118, 120, 142, 123, 120, 126, 110, 114, 135, 124, 122, 128, 113, 117, 119, 127, 137, 109, 139, 127, 113, 120, 143, 129, 111, 114, 103, 137, 124, 131, 128, 129, 129, 127, 144, 140, 121, 130, 109, 130, 132, 130, 125, 132, 140, 156, 120, 140, 116, 119, 141, 141, 109, 107, 122, 127, 127, 122, 131, 134, 102, 129, 124, 133, 115, 118, 128, 126, 129, 123, 125, 126, 144, 121, 137, 113, 127, 131, 115, 130, 121, 120, 131, 117, 128, 107, 144, 118, 127, 127, 122, 138, 136, 121, 131, 134, 110, 108, 120, 131, 125, 118, 120, 119, 120, 118, 126, 111, 133, 133, 120, 146, 138, 111, 117, 140, 124, 115, 114, 111, 134, 120, 126, 115, 147, 134, 110, 110, 134, 122, 138, 135, 110, 120, 116, 134, 135, 123, 130, 140, 118, 111, 121, 111, 142, 143, 133, 139, 128, 100, 145, 127, 130, 125, 119, 151, 123, 116, 137, 108, 124, 125, 115, 123, 140, 104, 125, 125, 127, 124, 123, 123, 119, 125, 133, 119, 125, 121, 121, 125, 140, 134, 156, 126, 133, 135, 126, 150, 113, 110, 108, 134, 132, 134, 111, 119, 103, 118, 129, 129, 103, 100, 115, 111, 116, 146, 134, 124, 116, 119, 120, 141, 145, 133, 126, 103, 128, 120, 120, 124, 134, 112, 128, 122, 134, 137, 125, 134, 123, 113, 128, 126, 133, 131, 129, 124, 132, 131, 112, 130, 147, 108, 124, 132, 119, 129, 130, 114, 98, 132, 116, 137, 113, 125, 135, 118, 143, 145, 126, 113, 125, 136, 123, 126, 118, 119, 111, 126, 107, 136, 128, 130, 142, 133, 128, 102, 121, 124, 135, 121, 116, 116, 122, 130, 120, 126, 115, 125, 120, 136, 115, 132, 128, 137, 133, 118, 132, 121, 133, 124, 127, 123, 125, 124, 148, 146, 128, 122, 136, 129, 116, 117, 122, 106, 129, 134, 131, 135, 123, 117, 116, 131, 105, 109, 134, 130, 116, 119, 114, 142, 131, 115, 124, 137, 125, 133, 121, 151, 119, 131, 132, 132, 128, 118, 126, 137, 123, 103, 117, 128, 124, 126, 134, 142, 149, 126, 109, 112, 126, 131, 123, 119, 143, 138, 115, 127, 140, 128, 126, 121, 122, 110, 129, 127, 112, 121, 101, 137, 114, 139, 112, 122, 131, 129, 131, 132, 117, 112, 131, 165, 120, 140, 117, 112, 127, 117, 138, 121, 141, 138, 109, 125, 116, 119, 133, 110, 124, 126, 125, 112, 132, 129, 127, 137, 123, 120, 128, 122, 116, 115, 124, 123, 105, 125, 128, 115, 125, 129, 117, 118, 120, 117, 121, 99, 129, 104, 114, 126, 114, 138, 131, 123, 127, 124, 116, 134, 137, 92, 139, 96, 120, 103, 105, 117, 131, 113, 108, 132, 116, 116, 117, 110, 111, 138, 122, 124, 129, 134, 143, 141, 123, 153, 121, 124, 101, 97, 140, 124, 112, 148, 129, 145, 125, 127, 120, 121, 117, 130, 133, 139, 128, 112, 123, 133, 117, 128, 122, 116, 114, 118, 104, 134, 125, 126, 157, 120, 115, 129, 120, 138, 117, 142, 115, 114, 106, 132, 131, 144, 120, 118, 138, 133, 132, 125, 112, 119, 143, 129, 125, 115, 124, 121, 125, 144, 127, 111, 110, 130, 137, 110, 124, 120, 127, 110, 129, 107, 120, 134, 108, 121, 113, 125, 141, 141, 132, 122, 102, 120, 138, 125, 113, 127, 121, 109, 121, 122, 118, 117, 113, 123, 123, 119, 128, 136, 106, 126, 105, 126, 123, 124, 156, 136, 119, 113, 132, 113, 139, 124, 140, 120, 142, 126, 132, 108, 135, 134, 116, 143, 112, 122, 134, 120, 120, 123, 115, 115, 132, 145, 119, 116, 107, 136, 143, 119, 122, 137, 117, 134, 110, 121, 124, 129, 121, 112, 131, 152, 140, 143, 134, 102, 120, 123, 113, 100, 127, 127, 115, 112, 135, 134, 130, 123, 116, 118, 137, 132, 90, 142, 126, 132, 138, 133, 119, 125, 111, 124, 131, 116, 121, 133, 124, 126, 119, 139, 124, 127, 142, 117, 110, 109, 127, 133, 120, 139, 129, 123, 133, 136, 126, 126, 120, 125, 120, 143, 100, 133, 121, 109, 130, 144, 128, 139, 130, 122, 149, 122, 113, 134, 130, 128, 123, 136, 123, 126, 127, 124, 127, 113, 124, 122, 123, 139, 127, 115, 123, 129, 119, 139, 144, 129, 123, 115, 125, 111, 143, 115, 114, 121, 116, 149, 138, 134, 119, 139, 136, 131, 104, 128, 137, 117, 128, 158, 123, 130, 131, 109, 119, 131, 135, 143, 133, 130, 130, 126, 131, 116, 117, 129, 124, 129, 142, 119, 114, 135, 137, 114, 128, 123, 123, 123, 126, 119, 106, 129, 133, 128, 113, 112, 119, 114, 110, 123, 125, 117, 132, 121, 130, 119, 123, 126, 154, 107, 125, 123, 126, 117, 135, 120, 132, 107, 122, 133, 138, 121, 121, 123, 125, 121, 112, 149, 122, 139, 108, 133, 126, 124, 135, 118, 133, 120, 136, 105, 126, 138, 118, 124, 107, 110, 112, 130, 123, 123, 151, 123, 125, 134, 117, 114, 122, 119, 135, 120, 131, 140, 130, 103, 108, 111, 94, 133, 117, 81, 124, 131, 124, 122, 136, 138, 111, 144, 125, 106, 123, 125, 131, 143, 119, 124, 124, 122, 148, 124, 137, 107, 128, 131, 108, 114, 126, 126, 123, 128, 125, 131, 130, 121, 127, 134, 118, 124, 93, 118, 127, 136, 123, 113, 122, 128, 125, 124, 130, 133, 137, 120, 103, 116, 147, 134, 136, 116, 107, 139, 132, 130, 117, 133, 131, 123, 103, 114, 126, 129, 122, 132, 124, 129, 119, 132, 145, 133, 140, 131, 114, 109, 114, 126, 144, 125, 125, 137, 121, 126, 134, 137, 122, 107, 135, 118, 129, 124, 118, 120, 129, 105, 115, 144, 120, 127, 148, 116, 131, 132, 120, 92, 126, 122, 119, 134, 134, 142, 132, 124, 118, 112, 111, 135, 115, 137, 119, 130, 127, 127, 133, 139, 127, 124, 133, 126, 106, 121, 122, 133, 120, 138, 121, 130, 124, 149, 98, 129, 123, 128, 114, 112, 127, 137, 124, 96, 101, 130, 153, 126, 113, 122, 124, 129, 132, 143, 122, 117, 145, 145, 122, 140, 131, 145, 153, 122, 110, 105, 127, 117, 146, 125, 119, 133, 129, 153, 146, 112, 119, 137, 131, 114, 130, 140, 129, 122, 122, 127, 119, 125, 145, 121, 133, 114, 126, 127, 126, 119, 116, 108, 130, 114, 141, 127, 119, 115, 130, 126, 114, 107, 119, 111, 134, 112, 136, 125, 138, 139, 146, 118, 135, 135, 120, 114, 135, 111, 151, 141, 122, 115, 120, 150, 141, 144, 106, 121, 130, 149, 137, 136, 87, 124, 133, 129, 126, 136, 143, 140, 142, 142, 136, 119, 118, 121, 120, 149, 115, 120, 140, 135, 130, 131, 123, 109, 132, 146, 100, 118, 131, 106, 144, 134, 103, 134, 130, 145, 126, 129, 128, 103, 122, 128, 114, 137, 121, 130, 123, 126, 142, 118, 128, 125, 117, 123, 132, 114, 126, 120, 120, 115, 116, 128, 128, 131, 111, 117, 130, 112, 129, 137, 145, 143, 107, 111, 104, 123, 117, 110, 128, 120, 108, 134, 117, 120, 126, 133, 115, 113, 124, 117, 139, 116, 106, 125, 145, 157, 129, 132, 134, 127, 116, 151, 129, 111, 138, 121, 121, 125, 134, 154, 131, 116, 115, 131, 137, 123, 133, 98, 125, 129, 135, 129, 118, 112, 120, 116, 119, 107, 114, 108, 123, 117, 121, 135, 111, 120, 125, 143, 102, 126, 131, 114, 125, 151, 125, 128, 112, 115, 137, 123, 94, 123, 142, 102, 142, 129, 116, 148, 130, 123, 122, 123, 135, 115, 112, 138, 104, 154, 137, 124, 128, 134, 135, 131, 111, 141, 133, 132, 130, 154, 137, 130, 127, 126, 110, 138, 97, 144, 110, 123, 130, 124, 118, 97, 124, 117, 115, 135, 128, 111, 144, 143, 125, 134, 142, 126, 129, 128, 107, 136, 142, 135, 123, 126, 117, 118, 113, 148, 125, 127, 122, 110, 118, 128, 132, 137, 131, 127, 125, 130, 118, 112, 105, 128, 136, 123, 154, 119, 137, 129, 129, 135, 105, 128, 113, 127, 136, 119, 118, 127, 100, 115, 128, 122, 135, 121, 143, 124, 117, 122, 98, 128, 113, 119, 107, 114, 127, 128, 112, 125, 96, 123, 120, 124, 138, 132, 140, 132, 138, 120, 143, 129, 110, 126, 135, 148, 145, 124, 109, 133, 129, 126, 117, 106, 115, 124, 142, 122, 130, 132, 121, 123, 94, 116, 122, 120, 128, 139, 124, 140, 105, 124, 115, 113, 116, 145, 128, 119, 143, 110, 126, 133, 118, 126, 99, 123, 128, 126, 131, 121, 134, 133, 129, 142, 146, 127, 96, 120, 136, 113, 127, 122, 129, 115, 119, 116, 131, 134, 116, 110, 133, 110, 127, 130, 99, 125, 150, 126, 126, 110, 114, 129, 126, 106, 144, 104, 119, 120, 123, 139, 137, 123, 123, 120, 134, 119, 115, 130, 109, 134, 114, 122, 105, 139, 118, 109, 142, 127, 121, 130, 140, 123, 137, 124, 127, 116, 134, 121, 115, 101, 104, 125, 108, 112, 123, 125, 104, 138, 121, 120, 122, 152, 124, 106, 130, 120, 127, 117, 152, 127, 132, 120, 146, 123, 128, 110, 129, 122, 124, 107, 136, 154, 131, 114, 125, 116, 136, 129, 146, 123, 132, 136, 120, 139, 128, 137, 115, 132, 122, 124, 132, 129, 136, 123, 135, 114, 101, 107, 122, 125, 131, 115, 117, 120, 142, 152, 130, 139, 124, 126, 117, 110, 119, 117, 100, 141, 127, 115, 115, 140, 125, 136, 129, 142, 129, 117, 120, 131, 132, 135, 132, 129, 126, 132, 112, 127, 111, 120, 127, 132, 116, 130, 129, 137, 116, 120, 107, 133, 146, 113, 137, 123, 136, 108, 139, 116, 129, 123, 123, 142, 139, 98, 122, 123, 121, 122, 133, 126, 122, 124, 126, 135, 122, 121, 121, 102, 132, 135, 134, 136, 155, 144, 111, 135, 119, 126, 138, 121, 107, 125, 117, 105, 122, 129, 113, 130, 116, 126, 150, 124, 133, 125, 128, 131, 114, 121, 115, 127, 123, 102, 124, 126, 127, 137, 105, 162, 120, 124, 123, 107, 124, 119, 135, 112, 129, 123, 131, 114, 141, 133, 129, 132, 137, 120, 125, 121, 107, 135, 122, 139, 122, 122, 107, 121, 129, 127, 100, 129, 109, 123, 112, 117, 130, 120, 122, 127, 111, 137, 141, 122, 135, 121, 114, 126, 120, 130, 112, 118, 132, 146, 114, 118, 122, 135, 115, 136, 113, 134, 123, 116, 128, 125, 137, 130, 125, 134, 122, 113, 128, 127, 136, 128, 120, 119, 113, 123, 119, 142, 140, 125, 134, 120, 123, 126, 116, 104, 110, 131, 130, 134, 131, 120, 116, 111, 116, 123, 128, 135, 126, 137, 121, 124, 134, 116, 125, 133, 142, 125, 138, 114, 121, 118, 118, 120, 126, 120, 137, 129, 119, 118, 124, 114, 131, 131, 121, 120, 129, 139, 123, 122, 133, 129, 141, 142, 113, 119, 123, 125, 128, 123, 118, 130, 134, 149, 111, 127, 129, 123, 149, 126, 142, 124, 127, 132, 120, 133, 128, 141, 142, 129, 111, 135, 112, 133, 117, 113, 136, 103, 138, 118, 132, 111, 121, 128, 136, 105, 119, 108, 129, 131, 136, 122, 133, 130, 108, 121, 127, 124, 119, 130, 99, 113, 130, 136, 114, 113, 141, 116, 129, 118, 106, 115, 114, 142, 125, 123, 122, 124, 135, 137, 121, 115, 140, 130, 131, 124, 124, 116, 133, 124, 133, 118, 126, 128, 122, 124, 118, 112, 137, 121, 131, 128, 145, 119, 136, 138, 113, 124, 124, 125, 129, 133, 133, 119, 115, 139, 117, 118, 130, 124, 124, 127, 115, 120, 148, 130, 142, 116, 126, 135, 141, 125, 116, 118, 123, 124, 122, 115, 126, 137, 120, 130, 147, 119, 130, 127, 123, 109, 128, 124, 120, 126, 130, 121, 107, 119, 135, 134, 126, 132, 128, 120, 118, 121, 125, 138, 141, 149, 136, 125, 125, 137, 136, 127, 132, 131, 121, 108, 128, 120, 112, 113, 117, 123, 111, 152, 136, 120, 124, 133, 124, 123, 112, 114, 116, 130, 139, 121, 126, 128, 120, 118, 118, 145, 120, 128, 127, 125, 129, 140, 124, 107, 123, 134, 116, 124, 124, 123, 118, 115, 130, 122, 124, 113, 111, 122, 115, 123, 137, 119, 122, 121, 112, 137, 102, 128, 119, 113, 121, 118, 117, 146, 129, 109, 128, 134, 132, 110, 141, 150, 127, 134, 138, 127, 121, 112, 104, 119, 126, 111, 131, 105, 117, 152, 145, 129, 127, 129, 128, 121, 109, 125, 122, 117, 103, 118, 134, 132, 126, 118, 133, 118, 118, 132, 131, 129, 115, 136, 116, 122, 136, 120, 125, 122, 121, 120, 117, 128, 116, 144, 131, 141, 140, 124, 118, 142, 111, 135, 123, 127, 115, 131, 134, 128, 126, 118, 129, 127, 120, 112, 120, 121, 132, 116, 119, 130, 114, 104, 122, 143, 133, 128, 121, 129, 136, 132, 126, 131, 138, 129, 102, 135, 120, 104, 136, 118, 109, 134, 131, 128, 117, 130, 113, 141, 124, 133, 131, 120, 121, 152, 123, 125, 113, 110, 115, 100, 129, 124, 138, 126, 125, 117, 119, 113, 110, 132, 127, 123, 148, 141, 120, 120, 126, 129, 111, 129, 131, 123, 134, 122, 113, 126, 110, 123, 137, 122, 112, 122, 122, 129, 127, 129, 140, 111, 123, 116, 115, 120, 130, 120, 135, 144, 127, 123, 133, 136, 125, 127, 122, 132, 122, 122, 132, 130, 113, 112, 137, 138, 136, 125, 123, 114, 121, 138, 127, 127, 130, 134, 147, 117, 120, 137, 114, 131, 129, 128, 126, 132, 131, 114, 126, 130, 133, 118, 109, 119, 153, 123, 125, 126, 138, 127, 132, 121, 132, 112, 132, 135, 123, 143, 107, 130, 138, 130, 127, 115, 115, 106, 114, 132, 116, 132, 110, 124, 114, 128, 140, 119, 121, 141, 143, 125, 128, 115, 143, 117, 122, 157, 125, 129, 128, 114, 120, 111, 120, 130, 119, 127, 136, 133, 132, 114, 121, 127, 118, 123, 134, 130, 121, 140, 138, 130, 140, 113, 105, 133, 127, 119, 121, 124, 144, 123, 138, 119, 125, 112, 140, 138, 124, 133, 139, 133, 119, 109, 118, 108, 128, 125, 111, 128, 120, 131, 134, 131, 100, 123, 104, 136, 120, 127, 110, 118, 111, 133, 122, 109, 127, 109, 128, 133, 122, 143, 129, 117, 134, 136, 120, 130, 125, 124, 134, 130, 123, 131, 125, 129, 115, 102, 124, 126, 134, 115, 131, 117, 123, 131, 132, 127, 139, 130, 137, 115, 120, 135, 121, 120, 125, 108, 110, 131, 140, 125, 126, 115, 118, 130, 146, 145, 136, 128, 129, 127, 118, 118, 128, 132, 133, 110, 131, 121, 131, 124, 127, 137, 115, 139, 128, 121, 112, 129, 129, 131, 126, 128, 131, 130, 148, 126, 128, 112, 121, 119, 122, 135, 123, 126, 117, 149, 122, 120, 140, 121, 127, 106, 136, 107, 131, 105, 126, 142, 131, 121, 109, 126, 123, 131, 127, 126, 116, 148, 114, 135, 133, 130, 119, 127, 130, 110, 125, 117, 133, 124, 128, 133, 133, 119, 110, 140, 138, 120, 123, 140, 123, 124, 129, 112, 113, 105, 149, 134, 132, 123, 137, 124, 139, 120, 141, 101, 125, 128, 148, 135, 122, 120, 125, 144, 110, 113, 123, 126, 114, 132, 128, 123, 107, 113, 134, 139, 120, 127, 125, 122, 118, 137, 129, 94, 119, 124, 142, 109, 131, 130, 131, 115, 109, 121, 121, 140, 113, 132, 118, 125, 125, 122, 137, 116, 126, 106, 116, 131, 139, 130, 124, 113, 111, 131, 119, 136, 147, 129, 119, 139, 142, 135, 115, 119, 134, 123, 124, 125, 126, 111, 131, 126, 127, 136, 122, 130, 135, 113, 155, 123, 131, 124, 111, 127, 124, 104, 141, 132, 112, 120, 119, 122, 127, 124, 124, 111, 145, 132, 132, 130, 136, 114, 133, 130, 125, 132, 128, 132, 135, 119, 120, 111, 103, 124, 131, 135, 124, 119, 121, 123, 113, 141, 122, 131, 123, 122, 134, 127, 121, 123, 132, 131, 129, 112, 141, 124, 128, 123, 115, 132, 125, 131, 137, 128, 122, 132, 118, 135, 117, 126, 117, 137, 118, 123, 109, 120, 141, 138, 128, 106, 123, 109, 130, 124, 133, 147, 130, 135, 134, 116, 141, 132, 133, 138, 122, 124, 119, 139, 121, 130, 122, 137, 134, 122, 123, 119, 130, 126, 124, 132, 122, 119, 141, 120, 129, 114, 133, 131, 96, 115, 130, 125, 121, 136, 134, 133, 132, 131, 119, 134, 112, 125, 128, 114, 166, 119, 139, 126, 124, 132, 123, 127, 125, 131, 126, 119, 103, 118, 123, 122, 137, 120, 119, 123, 129, 111, 115, 120, 111, 126, 120, 117, 117, 135, 121, 132, 142, 122, 120, 124, 135, 113, 122, 131, 114, 114, 113, 115, 131, 124, 103, 120, 140, 119, 121, 129, 137, 137, 118, 124, 114, 136, 128, 128, 156, 149, 133, 130, 106, 135, 145, 119, 121, 117, 129, 131, 114, 121, 143, 130, 110, 101, 112, 112, 111, 146, 112, 133, 127, 129, 155, 111, 126, 120, 124, 124, 130, 122, 122, 138, 111, 126, 125, 145, 122, 129, 121, 139, 133, 124, 116, 118, 141, 121, 125, 124, 119, 123, 124, 135, 165, 116, 119, 116, 134, 124, 109, 120, 109, 98, 111, 118, 119, 139, 116, 107, 133, 125, 108, 145, 111, 129, 135, 155, 114, 133, 132, 132, 128, 119, 144, 124, 92, 129, 146, 122, 156, 119, 154, 127, 142, 135, 107, 112, 122, 107, 124, 93, 131, 115, 110, 132, 101, 130, 134, 109, 141, 111, 133, 130, 125, 101, 156, 139, 121, 151, 134, 139, 140, 102, 127, 138, 157, 124, 101, 118, 132, 134, 135, 117, 151, 134, 150, 124, 132, 119, 125, 115, 98, 127, 133, 111, 127, 129, 116, 126, 121, 124, 122, 92, 126, 143, 135, 118, 151, 118, 124, 127, 115, 118, 123, 125, 137, 122, 122, 125, 119, 118, 118, 123, 132, 157, 142, 128, 114, 126, 120, 106, 142, 111, 128, 120, 128, 116, 139, 126, 127, 127, 146, 127, 137, 122, 125, 134, 110, 126, 136, 124, 137, 130, 114, 148, 128, 114, 122, 131, 111, 130, 132, 127, 112, 123, 137, 120, 142, 125, 118, 132, 135, 131, 121, 117, 115, 135, 141, 120, 154, 132, 111, 120, 114, 140, 123, 111, 121, 115, 128, 137, 132, 136, 117, 132, 128, 142, 120, 132, 115, 117, 131, 111, 119, 118, 125, 112, 118, 139, 115, 113, 120, 117, 113, 107, 149, 109, 121, 138, 122, 130, 130, 118, 124, 114, 129, 122, 119, 140, 138, 124, 132, 124, 128, 132, 136, 119, 132, 116, 113, 129, 140, 120, 122, 124, 132, 120, 126, 134, 153, 139, 116, 138, 138, 135, 115, 128, 123, 142, 133, 132, 122, 141, 126, 129, 146, 142, 136, 113, 132, 132, 117, 134, 143, 115, 130, 134, 117, 122, 127, 127, 112, 119, 142, 135, 132, 115, 116, 133, 140, 115, 114, 144, 128, 133, 112, 128, 128, 136, 117, 147, 114, 94, 133, 114, 119, 125, 116, 135, 123, 138, 111, 126, 118, 124, 120, 137, 126, 113, 112, 122, 130, 116, 116, 115, 123, 134, 129, 130, 110, 98, 119, 122, 131, 114, 116, 120, 125, 116, 134, 120, 127, 133, 133, 122, 144, 133, 122, 123, 109, 135, 111, 116, 131, 122, 126, 117, 135, 153, 125, 128, 131, 125, 132, 118, 138, 137, 94, 111, 130, 154, 122, 131, 138, 132, 128, 126, 149, 118, 124, 120, 135, 124, 106, 120, 119, 135, 126, 138, 137, 130, 130, 109, 127, 125, 133, 109, 121, 126, 116, 128, 134, 111, 129, 120, 112, 127, 122, 145, 131, 91, 113, 139, 117, 121, 128, 128, 115, 116, 112, 129, 108, 110, 120, 116, 142, 139, 138, 128, 146, 124, 135, 131, 132, 130, 117, 121, 110, 121, 137, 122, 136, 127, 123, 109, 111, 126, 124, 129, 122, 123, 120, 117, 121, 125, 119, 125, 131, 124, 128, 129, 138, 132, 121, 151, 124, 139, 122, 138, 138, 120, 118, 130, 119, 112, 117, 125, 129, 135, 132, 114, 118, 108, 109, 117, 128, 126, 128, 100, 122, 131, 143, 108, 146, 139, 116, 115, 116, 108, 113, 124, 127, 120, 132, 130, 101, 129, 126, 106, 125, 124, 129, 126, 134, 124, 137, 116, 119, 134, 111, 115, 124, 116, 112, 129, 120, 130, 133, 113, 127, 122, 111, 121, 127, 118, 126, 115, 121, 143, 109, 126, 133, 109, 133, 112, 139, 106, 123, 126, 112, 112, 137, 147, 129, 140, 133, 112, 137, 101, 132, 139, 123, 133, 110, 123, 140, 131, 127, 123, 134, 129, 113, 151, 112, 117, 137, 111, 104, 147, 136, 129, 108, 125, 118, 128, 104, 128, 124, 131, 130, 128, 126, 135, 117, 126, 117, 111, 123, 128, 137, 124, 121, 117, 121, 145, 107, 122, 133, 113, 142, 130, 118, 114, 132, 114, 135, 120, 106, 116, 118, 118, 122, 121, 115, 122, 110, 118, 131, 118, 119, 106, 117, 119, 123, 134, 128, 113, 126, 128, 111, 113, 147, 122, 122, 127, 145, 119, 138, 130, 131, 121, 142, 118, 110, 115, 122, 106, 114, 148, 134, 110, 146, 133, 108, 123, 125, 125, 147, 125, 113, 129, 108, 135, 131, 125, 127, 117, 136, 122, 138, 123, 136, 139, 125, 129, 100, 116, 118, 117, 128, 115, 118, 117, 126, 115, 126, 136, 129, 122, 121, 126, 116, 131, 123, 135, 125, 122, 144, 136, 133, 107, 133, 118, 115, 106, 140, 98, 140, 131, 108, 137, 128, 128, 131, 114, 113, 123, 131, 124, 143, 119, 133, 114, 138, 118, 111, 117, 124, 118, 126, 120, 124, 119, 115, 120, 98, 122, 145, 126, 120, 121, 123, 114, 131, 120, 118, 131, 125, 131, 135, 127, 124, 124, 133, 138, 132, 149, 114, 113, 131, 129, 126, 122, 114, 115, 146, 110, 117, 121, 122, 118, 109, 119, 112, 150, 144, 123, 110, 126, 118, 128, 135, 127, 113, 113, 122, 124, 129, 141, 131, 121, 122, 120, 133, 130, 134, 132, 153, 122, 136, 115, 123, 133, 132, 123, 107, 120, 121, 144, 113, 130, 121, 135, 131, 114, 116, 137, 124, 126, 140, 118, 126, 129, 112, 131, 128, 109, 126, 129, 114, 137, 120, 123, 122, 135, 118, 129, 114, 105, 126, 121, 153, 142, 131, 125, 141, 110, 131, 123, 129, 127, 119, 132, 107, 137, 130, 136, 125, 125, 128, 132, 114, 117, 110, 137, 130, 119, 129, 114, 131, 117, 126, 114, 119, 113, 129, 127, 138, 116, 130, 118, 132, 133, 115, 120, 130, 131, 125, 129, 138, 133, 127, 135, 124, 130, 139, 120, 117, 125, 115, 125, 134, 113, 110, 123, 117, 128, 109, 128, 123, 117, 121, 107, 117, 118, 118, 135, 114, 130, 106, 118, 114, 115, 122, 121, 133, 126, 123, 143, 134, 121, 138, 118, 120, 120, 126, 121, 116, 101, 112, 126, 120, 111, 131, 133, 129, 111, 162, 106, 142, 139, 124, 137, 126, 128, 133, 123, 117, 112, 119, 130, 103, 112, 124, 124, 128, 127, 128, 120, 107, 125, 127, 131, 112, 144, 121, 131, 134, 131, 139, 115, 124, 110, 123, 122, 126, 123, 126, 134, 119, 124, 135, 116, 125, 129, 135, 152, 132, 120, 122, 114, 119, 125, 122, 124, 135, 127, 133, 126, 122, 129, 129, 132, 138, 122, 130, 115, 132, 132, 117, 120, 123, 134, 115, 114, 109, 125, 121, 124, 116, 140, 122, 118, 119, 107, 103, 126, 102, 123, 148, 142, 134, 124, 124, 138, 125, 121, 131, 145, 136, 115, 117, 122, 135, 123, 130, 119, 121, 147, 133, 134, 119, 115, 122, 107, 119, 131, 130, 136, 124, 131, 125, 129, 134, 121, 117, 131, 137, 110, 146, 117, 142, 126, 140, 126, 145, 127, 120, 124, 147, 137, 125, 120, 145, 103, 127, 123, 140, 119, 134, 142, 124, 114, 130, 122, 115, 129, 119, 119, 127, 128, 122, 114, 118, 125, 107, 116, 119, 110, 120, 112, 115, 109, 141, 119, 102, 123, 103, 140, 126, 119, 109, 135, 121, 127, 151, 121, 143, 118, 129, 128, 118, 119, 124, 136, 145, 107, 118, 125, 128, 113, 122, 122, 126, 118, 123, 111, 135, 135, 119, 133, 118, 124, 106, 143, 113, 153, 117, 131, 145, 104, 149, 114, 105, 104, 142, 130, 125, 126, 100, 142, 106, 121, 135, 124, 149, 126, 123, 125, 139, 140, 115, 122, 140, 117, 115, 122, 126, 139, 116, 130, 125, 109, 155, 142, 125, 122, 129, 138, 131, 125, 120, 148, 104, 115, 122, 115, 144, 129, 138, 133, 136, 134, 121, 112, 123, 137, 111, 113, 134, 151, 123, 136, 130, 117, 118, 152, 151, 152, 125, 125, 143, 126, 123, 122, 128, 135, 127, 110, 122, 112, 115, 125, 120, 124, 121, 119, 120, 126, 106, 130, 129, 122, 151, 131, 127, 123, 128, 123, 70, 146, 129, 142, 122, 102, 122, 130, 108, 126, 123, 136, 135, 119, 117, 120, 120, 122, 141, 113, 128, 131, 134, 140, 134, 141, 128, 118, 112, 109, 136, 125, 116, 111, 128, 131, 126, 123, 107, 128, 122, 144, 123, 123, 129, 86, 121, 115, 119, 130, 121, 146, 131, 125, 130, 110, 144, 137, 128, 119, 118, 129, 133, 156, 104, 150, 135, 119, 126, 129, 129, 139, 154, 123, 126, 112, 118, 109, 118, 112, 112, 103, 119, 126, 116, 124, 125, 124, 130, 118, 117, 121, 137, 132, 132, 143, 139, 131, 131, 147, 133, 129, 133, 124, 136, 134, 120, 130, 101, 106, 136, 115, 136, 115, 103, 131, 131, 118, 122, 129, 124, 136, 152, 124, 134, 126, 133, 131, 125, 100, 124, 136, 116, 130, 151, 117, 130, 119, 124, 134, 139, 122, 121, 134, 117, 123, 130, 128, 139, 127, 114, 126, 135, 125, 134, 124, 116, 124, 118, 117, 121, 96, 126, 101, 125, 126, 131, 121, 117, 133, 119, 141, 137, 118, 130, 150, 115, 117, 126, 128, 120, 126, 137, 130, 128, 129, 122, 115, 129, 133, 121, 131, 126, 123, 113, 125, 124, 116, 110, 119, 118, 121, 129, 121, 122, 132, 133, 110, 135, 117, 120, 128, 132, 120, 122, 128, 131, 120, 119, 119, 110, 132, 127, 125, 130, 140, 112, 127, 114, 114, 127, 114, 120, 127, 122, 124, 122, 114, 122, 114, 117, 148, 124, 115, 122, 117, 130, 120, 126, 143, 127, 130, 130, 113, 137, 120, 124, 119, 107, 114, 136, 129, 121, 121, 114, 127, 118, 116, 106, 122, 116, 138, 115, 135, 107, 119, 126, 112, 113, 116, 122, 122, 136, 122, 131, 126, 114, 126, 133, 112, 121, 113, 122, 117, 121, 123, 125, 124, 133, 131, 117, 131, 124, 130, 127, 124, 111, 127, 129, 130, 138, 106, 119, 124, 128, 144, 112, 130, 114, 130, 102, 131, 130, 113, 120, 125, 118, 121, 123, 121, 144, 133, 121, 112, 123, 130, 124, 104, 136, 131, 128, 124, 140, 115, 126, 135, 122, 131, 128, 133, 128, 116, 132, 121, 125, 124, 129, 136, 129, 117, 150, 151, 121, 110, 123, 112, 112, 139, 137, 126, 113, 118, 117, 115, 132, 120, 124, 116, 109, 139, 146, 123, 118, 131, 123, 132, 128, 118, 110, 151, 122, 128, 114, 135, 120, 130, 125, 133, 130, 124, 119, 123, 106, 108, 117, 125, 118, 126, 144, 133, 112, 126, 121, 117, 129, 145, 104, 142, 105, 135, 118, 122, 139, 140, 135, 128, 132, 128, 144, 128, 138, 124, 113, 111, 140, 116, 117, 128, 132, 116, 123, 138, 123, 121, 136, 104, 140, 136, 104, 116, 151, 117, 126, 114, 118, 123, 127, 117, 118, 123, 143, 124, 130, 125, 132, 113, 132, 136, 118, 113, 136, 118, 127, 128, 137, 135, 117, 116, 114, 123, 126, 130, 108, 116, 123, 121, 124, 120, 123, 108, 111, 143, 116, 140, 127, 100, 126, 118, 115, 125, 117, 142, 157, 139, 138, 114, 129, 131, 107, 141, 138, 133, 128, 149, 125, 108, 107, 137, 138, 123, 136, 113, 115, 122, 127, 113, 97, 141, 132, 135, 127, 145, 122, 142, 121, 125, 111, 139, 117, 142, 118, 121, 127, 118, 142, 129, 122, 122, 113, 122, 135, 131, 134, 128, 117, 122, 116, 127, 126, 127, 113, 123, 108, 124, 102, 130, 133, 130, 122, 119, 127, 141, 123, 138, 111, 137, 137, 112, 134, 130, 131, 131, 145, 102, 129, 117, 134, 128, 125, 123, 126, 127, 118, 107, 141, 124, 115, 124, 112, 111, 107, 123, 116, 117, 117, 120, 112, 130, 137, 123, 132, 140, 126, 117, 128, 122, 110, 133, 106, 123, 143, 116, 127, 117, 124, 124, 130, 141, 114, 125, 121, 130, 128, 142, 111, 112, 121, 123, 129, 139, 129, 116, 124, 137, 128, 123, 134, 127, 114, 121, 126, 123, 137, 117, 129, 115, 116, 128, 117, 140, 123, 119, 124, 120, 130, 123, 121, 137, 132, 127, 121, 127, 128, 129, 117, 121, 118, 131, 129, 119, 101, 123, 152, 133, 114, 128, 136, 142, 112, 126, 121, 120, 142, 148, 124, 117, 139, 106, 121, 121, 132, 129, 134, 120, 115, 128, 127, 119, 131, 114, 136, 126, 125, 117, 116, 108, 123, 133, 119, 122, 115, 126, 153, 125, 122, 111, 128, 133, 117, 126, 142, 139, 117, 123, 127, 117, 112, 132, 123, 144, 140, 127, 112, 136, 132, 101, 142, 108, 127, 130, 119, 119, 139, 116, 117, 114, 123, 126, 107, 125, 125, 126, 117, 130, 127, 116, 131, 124, 119, 139, 136, 132, 107, 125, 109, 111, 118, 125, 143, 118, 139, 119, 120, 130, 103, 129, 128, 113, 108, 121, 154, 115, 120, 117, 135, 125, 136, 132, 120, 103, 124, 135, 143, 98, 118, 123, 118, 136, 114, 131, 119, 123, 131, 113, 125, 134, 119, 113, 137, 127, 133, 126, 122, 110, 141, 124, 122, 133, 113, 115, 128, 121, 106, 127, 133, 132, 133, 130, 107, 134, 126, 139, 122, 127, 122, 118, 126, 131, 130, 125, 115, 133, 122, 132, 119, 129, 123, 139, 122, 133, 136, 141, 105, 123, 136, 114, 123, 119, 118, 121, 118, 122, 143, 126, 115, 124, 124, 145, 103, 139, 143, 134, 132, 138, 127, 117, 127, 111, 111, 126, 131, 131, 129, 128, 123, 105, 120, 140, 141, 122, 134, 107, 121, 117, 139, 122, 120, 121, 156, 106, 136, 129, 116, 131, 150, 136, 144, 126, 115, 125, 126, 125, 120, 119, 136, 123, 115, 111, 116, 116, 127, 109, 113, 127, 137, 123, 142, 131, 128, 123, 116, 135, 117, 118, 119, 124, 109, 140, 122, 119, 128, 132, 116, 130, 126, 119, 110, 131, 116, 126, 124, 123, 107, 117, 112, 121, 123, 130, 125, 134, 111, 109, 137, 131, 126, 118, 122, 130, 112, 109, 104, 114, 128, 124, 133, 119, 127, 110, 137, 115, 123, 129, 133, 108, 126, 126, 113, 143, 135, 131, 121, 122, 151, 129, 124, 125, 112, 129, 117, 111, 127, 130, 124, 98, 131, 122, 124, 110, 138, 127, 143, 130, 126, 99, 126, 107, 129, 121, 136, 136, 113, 128, 124, 133, 123, 118, 120, 134, 117, 121, 111, 103, 122, 128, 115, 129, 132, 135, 118, 121, 134, 116, 128, 125, 116, 117, 139, 119, 118, 126, 135, 108, 128, 137, 115, 132, 116, 116, 110, 128, 120, 123, 122, 118, 122, 145, 124, 107, 132, 132, 118, 137, 130, 139, 120, 116, 133, 135, 130, 128, 113, 118, 129, 115, 118, 123, 120, 130, 130, 122, 119, 109, 120, 156, 114, 140, 113, 123, 112, 119, 116, 112, 110, 169, 124, 123, 126, 141, 145, 112, 145, 121, 107, 124, 129, 113, 129, 119, 122, 127, 133, 131, 130, 118, 129, 107, 122, 112, 131, 151, 142, 121, 134, 139, 134, 113, 120, 133, 141, 140, 129, 128, 139, 132, 131, 147, 123, 129, 136, 122, 132, 123, 131, 120, 126, 122, 126, 127, 128, 121, 107, 161, 128, 125, 120, 127, 121, 121, 130, 115, 133, 121, 137, 131, 116, 136, 110, 151, 119, 122, 155, 131, 127, 111, 133, 120, 122, 130, 120, 131, 114, 130, 128, 123, 142, 134, 108, 139, 124, 118, 119, 115, 141, 125, 117, 122, 131, 139, 131, 122, 125, 114, 136, 120, 140, 131, 101, 139, 142, 130, 125, 126, 137, 124, 136, 105, 127, 135, 122, 135, 131, 118, 108, 136, 128, 121, 125, 137, 129, 126, 103, 132, 121, 150, 143, 143, 143, 123, 132, 107, 132, 143, 141, 133, 119, 107, 133, 113, 122, 120, 111, 155, 152, 133, 140, 132, 132, 121, 129, 127, 136, 114, 123, 128, 118, 124, 109, 124, 111, 141, 124, 120, 105, 128, 102, 127, 115, 130, 128, 115, 127, 124, 114, 137, 105, 131, 134, 110, 132, 146, 129, 134, 107, 118, 130, 134, 122, 121, 140, 159, 118, 114, 142, 124, 117, 126, 119, 142, 127, 128, 125, 134, 136, 116, 135, 111, 118, 124, 121, 135, 122, 117, 138, 138, 120, 154, 113, 123, 116, 155, 105, 123, 121, 112, 118, 133, 136, 130, 130, 142, 117, 113, 125, 103, 123, 118, 118, 117, 116, 111, 131, 135, 106, 117, 115, 133, 107, 140, 117, 112, 137, 117, 139, 116, 137, 126, 135, 117, 131, 123, 141, 132, 126, 120, 125, 115, 119, 129, 126, 124, 123, 141, 117, 133, 107, 114, 135, 128, 130, 143, 134, 126, 102, 113, 112, 120, 132, 120, 118, 126, 118, 119, 116, 128, 118, 118, 133, 128, 140, 134, 131, 126, 146, 134, 116, 125, 137, 121, 131, 116, 123, 127, 117, 132, 113, 122, 124, 140, 133, 126, 129, 160, 139, 132, 127, 133, 112, 116, 104, 129, 130, 133, 117, 109, 117, 127, 120, 124, 134, 135, 151, 131, 138, 131, 137, 116, 124, 117, 109, 123, 121, 112, 129, 132, 133, 110, 140, 127, 137, 105, 140, 135, 121, 130, 147, 105, 121, 141, 108, 114, 133, 118, 148, 127, 144, 122, 146, 149, 140, 113, 134, 143, 108, 113, 128, 117, 132, 125, 107, 111, 121, 117, 122, 111, 127, 133, 135, 144, 129, 127, 121, 129, 115, 132, 139, 145, 108, 112, 136, 115, 111, 121, 142, 122, 151, 140, 143, 111, 134, 133, 129, 117, 120, 129, 123, 122, 122, 149, 111, 120, 132, 111, 128, 129, 121, 120, 116, 120, 122, 123, 126, 135, 142, 117, 126, 108, 119, 126, 123, 115, 117, 121, 128, 114, 118, 134, 118, 112, 127, 139, 121, 129, 126, 133, 134, 134, 133, 133, 111, 125, 134, 132, 139, 142, 144, 122, 125, 116, 131, 109, 122, 148, 148, 112, 133, 133, 132, 129, 145, 112, 125, 132, 128, 124, 130, 134, 131, 126, 126, 127, 118, 121, 121, 121, 115, 129, 123, 122, 119, 109, 134, 129, 112, 127, 129, 128, 98, 128, 120, 118, 118, 132, 119, 99, 126, 126, 125, 126, 120, 124, 115, 127, 142, 131, 124, 121, 129, 123, 127, 113, 135, 123, 137, 137, 124, 126, 129, 120, 140, 136, 127, 121, 122, 133, 113, 122, 119, 116, 128, 137, 140, 128, 132, 117, 133, 127, 119, 122, 125, 128, 142, 127, 116, 125, 125, 116, 133, 129, 127, 128, 160, 139, 130, 134, 122, 125, 112, 134, 136, 117, 123, 121, 131, 119, 132, 105, 116, 120, 123, 121, 127, 121, 145, 115, 132, 120, 119, 128, 128, 116, 137, 125, 117, 135, 115, 119, 152, 122, 133, 122, 132, 118, 127, 158, 132, 116, 116, 111, 131, 125, 110, 131, 112, 123, 122, 130, 121, 102, 120, 122, 124, 127, 137, 125, 125, 125, 117, 106, 138, 133, 145, 122, 108, 135, 120, 128, 103, 123, 110, 137, 129, 135, 140, 119, 116, 130, 133, 123, 131, 129, 121, 97, 119, 116, 111, 126, 126, 144, 124, 143, 130, 120, 133, 122, 116, 117, 130, 131, 144, 121, 129, 119, 134, 119, 126, 124, 99, 118, 125, 116, 109, 136, 145, 120, 126, 129, 127, 132, 147, 142, 121, 121, 142, 119, 132, 124, 107, 136, 134, 125, 132, 136, 136, 124, 141, 119, 116, 139, 120, 131, 118, 124, 127, 121, 140, 115, 119, 126, 130, 140, 120, 110, 115, 127, 107, 112, 124, 125, 113, 134, 120, 107, 105, 116, 118, 122, 129, 120, 124, 115, 138, 106, 103, 115, 138, 129, 137, 144, 113, 102, 115, 134, 119, 126, 118, 130, 124, 124, 136, 121, 153, 122, 127, 117, 125, 130, 131, 129, 127, 116, 134, 114, 106, 118, 109, 138, 138, 124, 131, 126, 136, 131, 126, 141, 123, 129, 125, 118, 121, 121, 128, 123, 143, 115, 130, 121, 130, 134, 118, 119, 116, 118, 116, 136, 126, 127, 99, 134, 120, 131, 128, 124, 129, 128, 100, 134, 127, 139, 131, 136, 146, 103, 130, 109, 117, 105, 105, 123, 115, 120, 126, 120, 115, 137, 128, 136, 117, 133, 123, 147, 145, 117, 139, 118, 141, 131, 112, 135, 125, 119, 108, 120, 131, 132, 120, 137, 141, 111, 120, 112, 113, 123, 101, 141, 129, 115, 125, 114, 133, 118, 120, 122, 122, 136, 129, 119, 143, 131, 117, 128, 111, 114, 106, 129, 133, 126, 132, 126, 114, 120, 125, 127, 125, 119, 150, 114, 131, 116, 117, 105, 125, 120, 140, 124, 140, 150, 111, 136, 120, 123, 106, 142, 105, 132, 138, 116, 125, 126, 140, 107, 129, 119, 133, 120, 118, 108, 139, 100, 139, 136, 125, 125, 98, 126, 111, 128, 129, 120, 138, 125, 110, 137, 118, 114, 124, 124, 118, 128, 130, 145, 134, 121, 131, 129, 118, 136, 128, 113, 125, 125, 118, 133, 108, 132, 125, 129, 134, 137, 129, 111, 123, 124, 127, 115, 110, 120, 145, 120, 113, 133, 125, 118, 143, 127, 124, 112, 114, 132, 109, 142, 138, 128, 119, 124, 132, 120, 110, 131, 156, 124, 125, 127, 121, 125, 114, 142, 117, 140, 128, 125, 126, 140, 120, 130, 111, 100, 130, 118, 138, 118, 130, 123, 115, 125, 113, 131, 131, 107, 144, 129, 134, 126, 108, 133, 123, 124, 108, 113, 115, 127, 118, 111, 118, 121, 121, 107, 121, 132, 137, 126, 138, 128, 126, 121, 124, 117, 128, 106, 125, 131, 120, 127, 133, 108, 122, 123, 113, 107, 125, 120, 134, 121, 129, 125, 137, 130, 119, 142, 116, 114, 122, 134, 126, 128, 134, 116, 126, 159, 137, 129, 147, 143, 112, 115, 141, 112, 141, 122, 121, 118, 138, 127, 112, 127, 143, 127, 116, 125, 134, 114, 117, 112, 111, 119, 113, 123, 114, 115, 119, 156, 121, 125, 117, 123, 129, 112, 133, 129, 138, 122, 133, 145, 115, 108, 128, 121, 126, 132, 114, 136, 136, 126, 126, 118, 115, 127, 129, 121, 115, 136, 118, 107, 135, 108, 114, 134, 131, 143, 114, 121, 144, 112, 112, 117, 113, 135, 103, 114, 102, 120, 126, 132, 120, 132, 133, 109, 108, 113, 123, 103, 129, 113, 127, 118, 126, 132, 151, 142, 116, 122, 123, 142, 137, 126, 120, 134, 142, 126, 131, 116, 126, 114, 136, 119, 132, 135, 140, 130, 132, 125, 128, 123, 128, 127, 135, 123, 118, 160, 141, 134, 129, 140, 131, 126, 131, 135, 120, 126, 146, 127, 114, 112, 123, 125, 133, 128, 127, 123, 109, 123, 121, 153, 112, 130, 119, 138, 112, 128, 136, 124, 121, 130, 109, 114, 126, 115, 122, 119, 127, 115, 114, 110, 134, 118, 130, 132, 105, 126, 145, 153, 125, 125, 131, 115, 129, 120, 126, 129, 136, 120, 115, 130, 131, 140, 123, 126, 140, 100, 131, 122, 119, 100, 127, 113, 135, 124, 145, 119, 121, 131, 136, 138, 121, 117, 121, 132, 110, 134, 133, 121, 137, 119, 128, 123, 135, 114, 111, 120, 130, 118, 128, 130, 137, 123, 134, 117, 130, 127, 139, 117, 122, 114, 127, 110, 134, 121, 128, 115, 155, 121, 127, 133, 122, 127, 103, 110, 129, 117, 138, 120, 130, 127, 119, 149, 147, 117, 144, 125, 109, 157, 139, 126, 130, 132, 124, 145, 118, 122, 152, 112, 124, 115, 139, 115, 151, 144, 110, 129, 112, 128, 123, 136, 123, 130, 117, 145, 136, 139, 134, 130, 106, 138, 129, 134, 119, 108, 111, 150, 140, 128, 117, 116, 132, 140, 118, 118, 124, 126, 118, 122, 116, 119, 150, 96, 123, 130, 134, 125, 134, 111, 101, 120, 134, 124, 120, 103, 132, 140, 154, 131, 124, 124, 138, 119, 141, 135, 128, 120, 126, 130, 120, 135, 132, 122, 127, 142, 127, 116, 137, 109, 108, 131, 121, 127, 137, 121, 122, 110, 121, 122, 134, 119, 117, 135, 127, 129, 124, 126, 113, 115, 118, 133, 131, 110, 130, 129, 136, 121, 122, 134, 118, 122, 151, 138, 122, 110, 124, 123, 117, 136, 109, 119, 135, 131, 126, 130, 124, 128, 118, 118, 139, 134, 114, 119, 133, 141, 125, 129, 117, 115, 136, 129, 108, 112, 110, 105, 123, 134, 149, 129, 135, 129, 116, 137, 129, 119, 109, 115, 128, 136, 117, 130, 122, 134, 96, 132, 132, 136, 110, 113, 120, 89, 122, 128, 119, 149, 123, 133, 138, 118, 147, 134, 120, 123, 123, 119, 108, 115, 133, 130, 120, 132, 116, 118, 121, 128, 106, 113, 129, 145, 124, 111, 115, 130, 125, 107, 125, 122, 142, 125, 120, 122, 121, 130, 138, 127, 123, 154, 122, 131, 103, 115, 131, 122, 141, 116, 131, 117, 123, 126, 105, 132, 130, 121, 143, 128, 125, 136, 124, 134, 113, 103, 146, 116, 115, 142, 131, 117, 124, 134, 141, 127, 130, 125, 130, 122, 138, 127, 128, 114, 118, 127, 133, 120, 145, 119, 133, 115, 112, 131, 153, 126, 145, 139, 137, 137, 114, 137, 112, 130, 122, 131, 137, 100, 132, 114, 142, 127, 103, 100, 133, 120, 128, 111, 125, 131, 115, 115, 144, 128, 126, 114, 123, 116, 131, 130, 122, 131, 128, 133, 112, 113, 123, 124, 128, 115, 117, 105, 107, 149, 131, 140, 111, 119, 116, 126, 117, 120, 107, 141, 133, 140, 141, 136, 124, 123, 150, 128, 129, 126, 114, 118, 136, 127, 117, 115, 115, 128, 137, 123, 130, 129, 132, 114, 129, 118, 122, 119, 137, 152, 114, 134, 111, 117, 107, 116, 131, 120, 128, 120, 128, 141, 118, 137, 126, 137, 139, 121, 126, 129, 122, 119, 123, 121, 128, 135, 123, 116, 125, 113, 141, 142, 117, 134, 125, 118, 124, 155, 116, 90, 107, 139, 137, 121, 136, 120, 119, 132, 117, 133, 130, 117, 125, 131, 124, 130, 120, 144, 140, 125, 135, 133, 136, 146, 134, 115, 124, 106, 111, 131, 119, 126, 129, 113, 132, 133, 131, 98, 121, 117, 144, 137, 115, 136, 105, 131, 127, 147, 122, 124, 115, 145, 141, 120, 146, 122, 137, 125, 121, 136, 129, 111, 128, 125, 126, 128, 119, 128, 128, 130, 126, 140, 147, 126, 135, 110, 128, 132, 133, 122, 140, 128, 128, 119, 135, 128, 120, 109, 136, 99, 124, 121, 104, 106, 108, 143, 120, 133, 132, 130, 134, 114, 134, 138, 130, 131, 121, 126, 132, 144, 115, 122, 144, 145, 124, 119, 130, 112, 131, 120, 135, 124, 120, 120, 128, 114, 113, 111, 143, 123, 140, 119, 119, 114, 120, 129, 131, 113, 116, 125, 157, 122, 129, 129, 117, 122, 128, 130, 123, 129, 147, 134, 135, 108, 136, 122, 132, 122, 119, 123, 117, 110, 100, 120, 123, 122, 128, 125, 120, 138, 125, 108, 124, 138, 126, 129, 119, 128, 120, 117, 125, 124, 121, 130, 135, 112, 115, 126, 146, 111, 120, 111, 112, 132, 128, 116, 135, 113, 130, 119, 127, 124, 136, 137, 122, 113, 124, 120, 139, 115, 136, 132, 120, 110, 130, 124, 148, 118, 94, 132, 120, 120, 134, 139, 149, 117, 128, 123, 145, 127, 123, 121, 98, 127, 108, 123, 148, 133, 111, 124, 127, 112, 108, 109, 108, 137, 114, 132, 114, 113, 119, 126, 123, 111, 125, 131, 130, 117, 132, 134, 110, 133, 105, 126, 115, 127, 126, 119, 134, 125, 129, 111, 130, 130, 112, 112, 129, 107, 115, 145, 109, 123, 127, 115, 112, 147, 120, 122, 147, 135, 135, 130, 124, 127, 118, 131, 118, 125, 126, 124, 129, 133, 116, 124, 121, 135, 137, 122, 109, 109, 145, 135, 103, 123, 112, 90, 140, 143, 125, 132, 117, 117, 124, 137, 121, 120, 141, 124, 139, 124, 117, 123, 129, 124, 131, 125, 145, 129, 122, 109, 108, 121, 129, 119, 121, 114, 136, 120, 119, 145, 108, 146, 114, 124, 128, 130, 133, 155, 119, 133, 113, 125, 78, 144, 115, 128, 91, 108, 119, 115, 148, 120, 141, 125, 126, 119, 115, 110, 147, 116, 127, 132, 136, 134, 128, 124, 145, 99, 123, 120, 115, 123, 134, 132, 123, 131, 118, 119, 138, 139, 125, 135, 138, 128, 118, 141, 122, 132, 134, 131, 118, 126, 127, 139, 111, 134, 109, 131, 114, 121, 113, 121, 132, 141, 105, 113, 132, 113, 122, 124, 134, 134, 120, 115, 131, 117, 139, 131, 141, 116, 124, 126, 130, 113, 130, 107, 153, 133, 123, 121, 117, 125, 124, 119, 105, 116, 118, 138, 118, 124, 115, 136, 125, 117, 118, 132, 131, 120, 150, 130, 127, 100, 118, 128, 114, 122, 136, 131, 115, 124, 129, 141, 126, 122, 129, 110, 124, 141, 93, 145, 134, 124, 132, 123, 139, 147, 113, 134, 128, 107, 122, 123, 125, 122, 107, 104, 144, 140, 129, 133, 133, 137, 113, 117, 127, 127, 126, 132, 115, 122, 126, 121, 116, 105, 131, 148, 113, 118, 141, 118, 117, 129, 135, 125, 112, 124, 118, 114, 137, 125, 129, 129, 118, 124, 135, 115, 133, 113, 132, 111, 112, 136, 131, 121, 128, 114, 121, 149, 137, 107, 115, 118, 102, 113, 130, 131, 132, 94, 113, 123, 130, 117, 148, 125, 111, 127, 145, 131, 112, 109, 120, 131, 114, 132, 107, 130, 134, 130, 119, 133, 125, 115, 133, 108, 117, 131, 120, 114, 125, 127, 119, 123, 121, 119, 126, 129, 134, 130, 138, 137, 124, 132, 118, 116, 125, 134, 129, 135, 120, 129, 104, 114, 101, 132, 127, 131, 109, 131, 130, 120, 123, 134, 122, 122, 128, 118, 129, 123, 110, 130, 122, 123, 122, 138, 111, 126, 121, 141, 126, 129, 134, 139, 125, 102, 116, 123, 114, 120, 108, 135, 127, 132, 121, 145, 136, 136, 123, 135, 138, 108, 128, 117, 118, 137, 118, 116, 123, 130, 118, 133, 108, 128, 138, 127, 128, 116, 124, 130, 141, 136, 124, 141, 120, 129, 121, 142, 140, 135, 122, 122, 124, 126, 129, 124, 135, 119, 122, 127, 121, 133, 131, 122, 110, 141, 125, 123, 143, 107, 123, 115, 149, 116, 125, 129, 140, 118, 135, 122, 126, 130, 121, 125, 121, 129, 130, 123, 126, 117, 130, 124, 143, 115, 121, 113, 129, 138, 134, 137, 136, 113, 113, 125, 132, 122, 123, 135, 122, 131, 128, 137, 125, 114, 138, 116, 126, 123, 137, 133, 150, 133, 113, 151, 147, 137, 140, 116, 128, 118, 103, 127, 160, 124, 114, 136, 122, 119, 123, 113, 118, 134, 122, 135, 109, 125, 132, 125, 136, 125, 128, 120, 120, 138, 132, 138, 127, 135, 120, 124, 114, 127, 133, 126, 125, 127, 115, 122, 105, 130, 112, 129, 129, 126, 136, 119, 127, 130, 123, 125, 118, 121, 128, 117, 117, 139, 127, 118, 120, 119, 123, 132, 123, 134, 122, 123, 129, 124, 110, 143, 125, 137, 135, 115, 127, 110, 118, 120, 128, 128, 108, 123, 125, 128, 139, 142, 108, 117, 127, 109, 117, 132, 113, 134, 105, 143, 138, 124, 146, 140, 142, 119, 124, 114, 116, 127, 130, 106, 120, 130, 112, 130, 117, 117, 143, 127, 132, 121, 130, 117, 115, 115, 139, 125, 129, 121, 134, 135, 125, 133, 133, 112, 127, 124, 136, 123, 148, 143, 123, 117, 119, 126, 123, 137, 136, 142, 117, 125, 119, 120, 126, 127, 124, 133, 140, 123, 119, 140, 128, 134, 112, 135, 131, 134, 130, 122, 124, 124, 141, 113, 117, 136, 113, 132, 118, 129, 128, 110, 102, 124, 134, 110, 129, 136, 100, 131, 108, 119, 103, 121, 111, 131, 120, 116, 128, 131, 133, 114, 124, 126, 120, 121, 125, 140, 120, 131, 125, 130, 119, 129, 133, 126, 121, 121, 140, 127, 105, 142, 109, 113, 109, 130, 138, 113, 114, 118, 117, 124, 126, 124, 120, 124, 116, 114, 126, 118, 117, 133, 112, 127, 128, 140, 132, 132, 125, 113, 138, 132, 113, 147, 123, 135, 120, 132, 147, 127, 123, 124, 128, 115, 115, 117, 123, 131, 102, 115, 124, 114, 125, 127, 121, 120, 126, 107, 126, 114, 131, 137, 117, 120, 133, 129, 127, 99, 136, 147, 112, 128, 125, 113, 132, 118, 113, 118, 117, 118, 116, 116, 126, 121, 123, 127, 110, 117, 111, 119, 128, 105, 129, 127, 125, 111, 116, 114, 121, 129, 126, 125, 127, 131, 122, 128, 116, 128, 130, 116, 115, 121, 117, 135, 103, 106, 111, 141, 113, 127, 133, 115, 130, 134, 125, 126, 138, 125, 124, 131, 134, 136, 141, 103, 118, 104, 127, 129, 132, 117, 131, 141, 128, 116, 137, 133, 123, 135, 133, 152, 114, 128, 107, 136, 122, 118, 126, 133, 131, 105, 126, 141, 116, 125, 127, 121, 123, 127, 105, 138, 113, 140, 116, 132, 133, 133, 130, 126, 118, 124, 121, 122, 125, 123, 110, 112, 123, 120, 114, 124, 121, 135, 116, 128, 136, 109, 137, 123, 130, 113, 139, 124, 130, 121, 134, 121, 121, 155, 129, 141, 115, 123, 138, 133, 138, 109, 122, 135, 137, 137, 115, 143, 120, 123, 142, 140, 113, 132, 98, 130, 115, 132, 150, 134, 124, 145, 126, 126, 122, 127, 122, 124, 107, 108, 104, 122, 136, 129, 133, 134, 130, 128, 110, 120, 136, 117, 131, 148, 125, 116, 133, 131, 127, 141, 133, 130, 126, 125, 137, 125, 116, 122, 121, 122, 110, 141, 125, 134, 125, 116, 126, 128, 131, 124, 128, 126, 144, 121, 112, 135, 138, 117, 115, 105, 128, 141, 106, 116, 120, 115, 129, 123, 116, 130, 118, 118, 128, 117, 126, 119, 127, 125, 122, 108, 131, 135, 121, 147, 129, 125, 111, 101, 123, 123, 123, 133, 124, 134, 119, 122, 126, 122, 133, 121, 123, 113, 148, 127, 143, 120, 117, 122, 107, 142, 128, 127, 121, 127, 120, 115, 130, 122, 133, 140, 119, 137, 118, 121, 132, 137, 128, 120, 108, 120, 112, 132, 128, 134, 117, 126, 116, 118, 129, 131, 138, 114, 120, 122, 135, 110, 127, 123, 116, 116, 118, 118, 140, 131, 134, 125, 120, 123, 134, 126, 128, 127, 125, 132, 136, 104, 120, 129, 128, 146, 133, 111, 107, 125, 133, 150, 126, 127, 126, 113, 137, 118, 121, 135, 135, 107, 135, 117, 129, 131, 113, 136, 114, 128, 125, 118, 115, 136, 121, 127, 114, 125, 107, 132, 115, 110, 138, 128, 125, 121, 142, 108, 129, 116, 136, 110, 118, 124, 134, 116, 136, 131, 121, 117, 128, 117, 120, 109, 118, 148, 142, 130, 128, 124, 139, 129, 114, 126, 129, 129, 128, 116, 140, 132, 130, 137, 135, 116, 135, 123, 132, 139, 110, 133, 127, 129, 122, 115, 133, 119, 118, 115, 127, 137, 135, 137, 122, 126, 123, 116, 119, 122, 101, 113, 108, 107, 121, 132, 121, 136, 128, 126, 116, 124, 112, 135, 129, 137, 133, 149, 123, 112, 132, 128, 127, 114, 134, 136, 140, 126, 132, 120, 120, 139, 139, 139, 122, 120, 129, 141, 127, 114, 119, 122, 108, 122, 120, 127, 135, 120, 128, 121, 124, 125, 119, 126, 107, 138, 134, 132, 128, 118, 130, 129, 120, 131, 128, 135, 115, 120, 120, 136, 129, 114, 122, 124, 112, 128, 104, 132, 109, 117, 132, 111, 128, 138, 117, 124, 121, 123, 115, 133, 119, 120, 105, 107, 123, 129, 126, 120, 134, 131, 148, 120, 145, 131, 128, 148, 134, 141, 128, 102, 117, 136, 125, 137, 131, 112, 134, 115, 131, 125, 145, 128, 131, 108, 132, 129, 124, 137, 134, 121, 119, 109, 115, 106, 134, 130, 125, 129, 127, 141, 128, 116, 126, 141, 132, 96, 133, 124, 144, 133, 117, 135, 136, 145, 137, 137, 140, 135, 102, 128, 115, 140, 134, 141, 131, 110, 127, 124, 121, 132, 127, 134, 122, 138, 126, 102, 114, 131, 121, 130, 120, 122, 136, 123, 122, 134, 121, 137, 147, 123, 113, 123, 125, 142, 145, 122, 103, 130, 141, 131, 118, 130, 132, 134, 136, 140, 113, 139, 138, 126, 124, 127, 124, 123, 121, 125, 131, 129, 126, 140, 120, 123, 126, 133, 127, 131, 110, 119, 124, 120, 139, 126, 129, 119, 138, 132, 113, 126, 127, 132, 117, 130, 127, 127, 134, 124, 140, 134, 111, 129, 114, 112, 118, 136, 120, 108, 135, 128, 131, 121, 111, 116, 118, 131, 106, 135, 120, 135, 120, 131, 129, 112, 126, 133, 116, 126, 113, 120, 130, 141, 135, 131, 131, 117, 126, 117, 127, 137, 118, 125, 104, 111, 106, 130, 123, 132, 136, 119, 127, 127, 134, 111, 111, 124, 125, 124, 116, 125, 120, 114, 139, 133, 131, 131, 132, 132, 140, 135, 111, 123, 140, 119, 125, 119, 131, 140, 116, 102, 126, 112, 126, 117, 122, 120, 136, 125, 133, 141, 121, 113, 134, 123, 125, 122, 137, 122, 121, 118, 126, 114, 127, 127, 115, 116, 126, 116, 129, 122, 118, 131, 123, 125, 135, 117, 134, 132, 132, 134, 144, 135, 128, 126, 136, 115, 128, 116, 124, 118, 118, 136, 125, 136, 131, 138, 138, 132, 119, 147, 108, 121, 113, 137, 140, 128, 129, 120, 135, 139, 123, 105, 137, 139, 136, 124, 135, 125, 112, 114, 133, 142, 122, 125, 134, 123, 127, 125, 129, 104, 152, 125, 121, 132, 117, 133, 132, 142, 111, 119, 121, 118, 131, 112, 118, 125, 129, 141, 112, 131, 123, 119, 132, 139, 120, 119, 135, 126, 116, 141, 117, 130, 132, 141, 129, 128, 118, 120, 110, 131, 127, 104, 127, 120, 127, 135, 133, 126, 124, 123, 123, 146, 128, 135, 124, 132, 116, 133, 127, 113, 134, 129, 135, 120, 113, 115, 124, 128, 110, 128, 143, 115, 134, 112, 128, 111, 132, 115, 111, 124, 136, 149, 122, 133, 121, 115, 117, 111, 122, 108, 118, 130, 101, 117, 126, 120, 123, 123, 136, 123, 106, 122, 126, 118, 121, 141, 124, 128, 133, 133, 132, 117, 128, 124, 135, 133, 123, 121, 119, 114, 145, 128, 141, 136, 137, 121, 138, 135, 124, 114, 139, 143, 95, 129, 115, 127, 136, 129, 130, 126, 122, 120, 131, 137, 119, 114, 109, 128, 132, 124, 122, 134, 117, 149, 118, 121, 126, 120, 114, 117, 124, 117, 120, 124, 123, 113, 122, 128, 144, 133, 104, 133, 129, 121, 116, 132, 132, 112, 120, 117, 132, 129, 104, 119, 130, 142, 137, 121, 127, 126, 121, 122, 122, 121, 133, 118, 126, 125, 119, 150, 134, 119, 120, 137, 101, 141, 145, 133, 121, 138, 132, 129, 102, 142, 139, 146, 127, 123, 132, 127, 131, 138, 125, 133, 123, 143, 132, 128, 122, 127, 137, 117, 118, 120, 138, 133, 113, 120, 106, 139, 128, 130, 148, 132, 124, 135, 117, 127, 126, 141, 119, 145, 135, 115, 127, 126, 128, 115, 146, 121, 112, 114, 146, 139, 130, 133, 106, 112, 122, 137, 129, 133, 121, 125, 142, 121, 118, 128, 136, 120, 145, 115, 117, 130, 114, 127, 125, 144, 116, 130, 117, 110, 143, 120, 127, 114, 127, 119, 131, 116, 131, 137, 127, 130, 118, 140, 134, 128, 123, 134, 135, 125, 122, 117, 119, 132, 114, 144, 134, 123, 148, 127, 147, 122, 140, 104, 132, 107, 134, 119, 113, 117, 119, 130, 115, 115, 136, 127, 124, 139, 127, 127, 117, 137, 138, 123, 119, 125, 138, 112, 123, 131, 114, 130, 123, 130, 141, 119, 131, 111, 126, 134, 111, 117, 108, 129, 116, 127, 134, 138, 136, 144, 126, 140, 127, 123, 123, 126, 141, 147, 128, 124, 124, 127, 133, 130, 118, 128, 126, 113, 117, 123, 144, 141, 127, 114, 126, 129, 124, 134, 103, 123, 131, 126, 143, 129, 126, 117, 122, 139, 142, 105, 126, 117, 136, 127, 119, 126, 130, 118, 115, 125, 140, 135, 125, 119, 141, 123, 131, 139, 131, 118, 143, 136, 137, 146, 130, 109, 132, 109, 120, 108, 126, 117, 122, 116, 138, 121, 126, 123, 115, 141, 127, 137, 108, 122, 136, 131, 125, 132, 142, 125, 120, 123, 112, 113, 145, 118, 130, 140, 139, 143, 124, 124, 124, 115, 126, 129, 129, 130, 134, 133, 137, 116, 118, 114, 125, 131, 129, 100, 148, 127, 125, 114, 143, 117, 127, 128, 135, 123, 128, 124, 133, 127, 138, 130, 127, 126, 118, 111, 128, 111, 141, 118, 119, 119, 140, 130, 112, 121, 130, 124, 142, 129, 128, 130, 130, 120, 142, 122, 120, 138, 123, 125, 122, 137, 111, 116, 123, 137, 138, 126, 115, 137, 135, 119, 128, 118, 124, 136, 114, 135, 98, 133, 123, 134, 139, 112, 133, 116, 127, 113, 132, 120, 142, 116, 138, 135, 121, 144, 131, 122, 120, 131, 119, 124, 136, 129, 130, 132, 132, 131, 117, 121, 135, 125, 119, 126, 122, 130, 143, 131, 127, 147, 114, 124, 118, 126, 118, 139, 120, 136, 107, 129, 125, 140, 127, 121, 116, 129, 126, 111, 108, 129, 118, 111, 118, 116, 118, 144, 117, 115, 137, 137, 118, 126, 136, 141, 128, 133, 131, 112, 124, 114, 135, 136, 118, 119, 124, 120, 126, 106, 141, 133, 121, 130, 130, 146, 118, 133, 106, 121, 153, 108, 124, 116, 129, 121, 110, 125, 120, 150, 118, 120, 128, 129, 127, 135, 119, 133, 131, 108, 128, 118, 132, 127, 144, 122, 120, 150, 129, 111, 113, 136, 117, 139, 130, 119, 122, 120, 104, 129, 127, 120, 111, 105, 112, 144, 120, 125, 130, 138, 102, 128, 129, 138, 129, 124, 115, 113, 127, 132, 128, 117, 121, 125, 132, 127, 116, 112, 107, 107, 123, 136, 127, 123, 129, 131, 133, 137, 125, 121, 135, 144, 129, 131, 130, 119, 133, 116, 130, 110, 120, 142, 133, 134, 145, 128, 129, 133, 137, 120, 134, 113, 125, 110, 134, 125, 118, 113, 132, 115, 130, 129, 131, 124, 117, 118, 109, 139, 130, 121, 116, 115, 105, 128, 122, 119, 128, 131, 103, 131, 112, 139, 120, 114, 143, 135, 115, 104, 118, 132, 129, 134, 127, 119, 126, 123, 128, 111, 124, 126, 123, 116, 133, 125, 116, 117, 118, 145, 123, 127, 142, 128, 133, 120, 122, 109, 107, 125, 117, 131, 125, 123, 137, 127, 127, 124, 142, 109, 156, 131, 140, 122, 144, 122, 119, 138, 125, 117, 108, 136, 128, 140, 117, 112, 115, 140, 118, 121, 119, 123, 114, 129, 117, 117, 106, 126, 129, 114, 124, 110, 143, 119, 128, 118, 112, 100, 127, 111, 129, 123, 140, 133, 137, 121, 140, 132, 124, 121, 113, 126, 110, 131, 123, 137, 123, 120, 120, 132, 119, 118, 122, 120, 130, 130, 126, 110, 131, 127, 108, 128, 128, 120, 142, 130, 136, 140, 128, 127, 111, 129, 132, 133, 107, 142, 137, 133, 120, 120, 142, 134, 128, 115, 120, 123, 115, 120, 119, 140, 133, 117, 136, 145, 123, 99, 112, 134, 120, 120, 121, 117, 135, 117, 126, 103, 127, 126, 130, 127, 133, 126, 110, 140, 129, 128, 120, 109, 138, 121, 125, 127, 138, 134, 122, 110, 129, 118, 137, 101, 125, 118, 111, 125, 108, 129, 117, 135, 117, 122, 121, 145, 128, 132, 117, 135, 129, 123, 131, 131, 118, 124, 117, 117, 141, 133, 123, 124, 125, 115, 127, 132, 121, 127, 130, 129, 118, 125, 119, 127, 134, 120, 128, 125, 121, 93, 129, 134, 120, 130, 121, 110, 122, 124, 122, 141, 120, 147, 117, 125, 128, 128, 118, 113, 133, 130, 135, 119, 125, 121, 117, 119, 138, 135, 119, 126, 132, 118, 116, 122, 140, 125, 146, 134, 121, 110, 123, 118, 125, 139, 123, 125, 114, 121, 132, 140, 125, 123, 134, 127, 133, 122, 148, 133, 122, 133, 125, 127, 112, 122, 120, 133, 134, 132, 141, 139, 124, 124, 133, 120, 121, 108, 112, 126, 138, 126, 120, 135, 106, 119, 128, 119, 135, 128, 126, 126, 132, 122, 117, 118, 147, 125, 136, 132, 133, 132, 125, 128, 121, 126, 113, 125, 130, 124, 128, 130, 131, 128, 107, 139, 121, 122, 144, 127, 132, 130, 130, 127, 123, 122, 121, 108, 127, 131, 112, 133, 121, 121, 126, 130, 139, 127, 106, 135, 132, 140, 141, 116, 119, 138, 139, 123, 117, 135, 131, 134, 126, 127, 130, 127, 127, 128, 130, 125, 123, 116, 89, 106, 126, 136, 123, 123, 114, 113, 119, 122, 126, 123, 132, 139, 120, 135, 134, 125, 126, 124, 125, 108, 129, 121, 133, 104, 128, 138, 116, 136, 128, 134, 116, 127, 123, 127, 121, 123, 130, 118, 112, 133, 128, 122, 131, 138, 124, 137, 136, 113, 126, 118, 109, 139, 130, 125, 121, 149, 123, 125, 117, 125, 122, 108, 125, 119, 122, 103, 122, 115, 131, 135, 114, 130, 127, 139, 129, 132, 128, 132, 120, 126, 118, 117, 122, 120, 134, 119, 139, 129, 132, 129, 123, 118, 125, 123, 117, 131, 132, 106, 122, 120, 139, 114, 128, 141, 123, 108, 116, 139, 125, 124, 134, 141, 123, 146, 112, 92, 128, 122, 118, 128, 130, 102, 142, 141, 130, 125, 128, 120, 116, 143, 125, 110, 115, 135, 120, 124, 122, 135, 134, 131, 128, 145, 116, 127, 122, 134, 120, 146, 118, 129, 140, 128, 113, 134, 134, 128, 128, 128, 122, 118, 132, 122, 131, 133, 129, 109, 127, 109, 125, 126, 118, 140, 132, 134, 112, 121, 135, 131, 119, 128, 128, 126, 99, 129, 124, 111, 137, 118, 126, 133, 121, 131, 122, 130, 119, 122, 124, 130, 132, 132, 117, 129, 133, 143, 104, 132, 121, 136, 128, 111, 144, 117, 111, 127, 120, 141, 117, 112, 116, 122, 116, 138, 131, 113, 145, 121, 131, 120, 124, 128, 130, 128, 126, 119, 138, 116, 137, 122, 122, 129, 124, 117, 115, 117, 133, 113, 117, 120, 126, 128, 113, 113, 121, 130, 124, 123, 121, 135, 139, 126, 120, 122, 125, 125, 116, 137, 152, 123, 127, 130, 123, 132, 126, 121, 129, 138, 113, 122, 119, 123, 127, 125, 132, 109, 133, 122, 133, 119, 124, 141, 127, 127, 130, 118, 131, 123, 119, 112, 134, 126, 114, 135, 121, 127, 120, 124, 123, 119, 112, 125, 118, 123, 139, 106, 117, 123, 124, 113, 114, 125, 127, 124, 128, 125, 110, 121, 117, 128, 121, 125, 126, 127, 133, 128, 131, 125, 111, 124, 131, 128, 132, 116, 110, 126, 124, 127, 130, 140, 135, 139, 120, 114, 143, 117, 122, 123, 116, 134, 106, 139, 126, 138, 123, 120, 130, 130, 123, 132, 139, 117, 121, 134, 107, 128, 124, 122, 141, 147, 118, 126, 118, 118, 120, 122, 139, 127, 128, 121, 123, 125, 131, 132, 143, 120, 120, 123, 124, 115, 134, 97, 126, 125, 119, 137, 123, 119, 123, 123, 128, 133, 115, 129, 126, 123, 127, 126, 121, 130, 119, 124, 119, 116, 133, 132, 128, 120, 115, 132, 129, 135, 131, 139, 116, 131, 133, 115, 107, 134, 135, 123, 130, 141, 124, 129, 130, 129, 139, 124, 119, 130, 126, 128, 117, 126, 129, 142, 108, 133, 126, 127, 110, 125, 135, 109, 126, 106, 126, 123, 132, 148, 141, 143, 132, 134, 127, 135, 137, 119, 153, 139, 136, 131, 112, 113, 123, 113, 128, 136, 133, 120, 135, 125, 141, 122, 130, 127, 132, 125, 121, 130, 122, 136, 127, 129, 132, 121, 121, 125, 141, 127, 129, 124, 126, 112, 122, 137, 142, 116, 131, 121, 126, 128, 112, 101, 122, 119, 119, 116, 125, 135, 136, 110, 131, 128, 121, 111, 138, 124, 108, 123, 119, 128, 131, 122, 135, 105, 126, 137, 128, 142, 127, 125, 129, 128, 106, 128, 150, 127, 103, 124, 123, 137, 120, 131, 122, 119, 134, 153, 126, 125, 112, 127, 141, 131, 129, 123, 127, 125, 132, 122, 95, 107, 120, 137, 113, 114, 111, 136, 119, 127, 125, 137, 131, 134, 123, 134, 121, 130, 123, 119, 130, 146, 125, 131, 134, 124, 104, 127, 115, 105, 128, 120, 120, 129, 138, 128, 120, 137, 116, 123, 123, 122, 116, 128, 137, 126, 125, 138, 128, 119, 126, 115, 130, 126, 110, 117, 110, 140, 124, 113, 116, 130, 119, 132, 111, 118, 132, 131, 119, 123, 121, 132, 135, 118, 118, 118, 128, 117, 131, 122, 133, 125, 131, 127, 107, 118, 141, 122, 121, 121, 118, 111, 112, 117, 123, 131, 116, 126, 127, 118, 103, 127, 122, 119, 126, 122, 135, 117, 135, 139, 127, 120, 132, 113, 130, 130, 131, 123, 133, 115, 122, 126, 139, 113, 123, 135, 137, 136, 109, 131, 111, 125, 130, 122, 130, 121, 122, 109, 124, 124, 119, 131, 121, 118, 120, 121, 136, 131, 129, 120, 125, 145, 120, 122, 135, 121, 131, 131, 116, 120, 133, 123, 110, 128, 122, 134, 126, 127, 125, 135, 119, 130, 127, 135, 117, 111, 130, 135, 127, 118, 130, 149, 113, 125, 120, 125, 129, 137, 113, 128, 113, 136, 119, 116, 120, 125, 134, 107, 118, 137, 135, 128, 124, 136, 135, 111, 107, 126, 125, 138, 101, 128, 126, 143, 113, 120, 109, 121, 129, 107, 124, 113, 139, 131, 111, 134, 116, 116, 146, 129, 120, 140, 153, 131, 124, 113, 107, 113, 106, 124, 113, 123, 130, 117, 122, 114, 124, 125, 149, 132, 122, 110, 123, 108, 138, 118, 109, 134, 134, 121, 116, 119, 138, 134, 146, 125, 126, 120, 127, 127, 120, 117, 109, 138, 128, 122, 119, 122, 122, 130, 119, 127, 128, 127, 122, 129, 119, 114, 131, 122, 113, 138, 117, 120, 111, 133, 139, 110, 149, 120, 142, 122, 110, 139, 124, 133, 127, 144, 119, 113, 124, 119, 124, 151, 120, 116, 115, 100, 136, 120, 104, 126, 126, 140, 113, 122, 106, 133, 127, 117, 115, 126, 103, 122, 133, 103, 132, 109, 121, 129, 129, 138, 125, 137, 120, 142, 120, 138, 139, 115, 145, 117, 107, 116, 128, 128, 115, 128, 111, 114, 132, 124, 127, 138, 115, 135, 127, 112, 139, 115, 116, 121, 109, 126, 120, 122, 123, 127, 124, 117, 153, 130, 122, 117, 125, 127, 115, 115, 119, 134, 120, 126, 130, 130, 125, 136, 109, 111, 129, 121, 135, 119, 121, 134, 128, 122, 121, 138, 145, 124, 116, 111, 125, 133, 121, 126, 130, 117, 120, 117, 138, 111, 117, 117, 124, 133, 138, 146, 129, 108, 129, 139, 138, 132, 118, 126, 127, 130, 123, 120, 131, 113, 124, 113, 141, 132, 117, 129, 121, 106, 129, 143, 119, 131, 137, 134, 127, 122, 111, 104, 134, 117, 128, 122, 117, 125, 142, 127, 107, 105, 106, 121, 128, 130, 113, 125, 104, 124, 126, 134, 140, 128, 112, 139, 130, 135, 149, 137, 133, 131, 150, 139, 118, 129, 125, 118, 150, 121, 123, 111, 119, 141, 125, 124, 113, 147, 134, 137, 120, 136, 126, 124, 123, 120, 130, 136, 120, 117, 134, 126, 118, 131, 114, 135, 129, 129, 123, 122, 142, 119, 114, 123, 124, 124, 143, 115, 134, 134, 143, 135, 134, 128, 124, 126, 135, 132, 122, 105, 138, 122, 115, 124, 128, 113, 132, 127, 122, 136, 128, 137, 101, 148, 130, 129, 144, 132, 124, 111, 132, 133, 132, 129, 126, 136, 140, 126, 127, 123, 130, 133, 119, 117, 120, 119, 145, 122, 98, 115, 116, 124, 127, 126, 128, 126, 131, 124, 123, 131, 130, 140, 130, 115, 138, 122, 141, 134, 123, 116, 123, 116, 120, 116, 127, 132, 122, 117, 125, 119, 139, 119, 116, 124, 114, 130, 130, 133, 134, 129, 144, 119, 129, 122, 143, 133, 125, 129, 129, 125, 147, 137, 132, 139, 129, 122, 112, 128, 120, 128, 123, 116, 117, 119, 132, 124, 108, 132, 121, 106, 145, 115, 105, 113, 123, 130, 134, 111, 118, 130, 122, 113, 100, 136, 119, 124, 113, 142, 134, 111, 143, 139, 132, 126, 119, 120, 121, 135, 143, 114, 105, 100, 124, 116, 130, 120, 124, 137, 120, 129, 114, 107, 115, 122, 124, 105, 115, 121, 111, 106, 112, 126, 106, 116, 132, 140, 117, 119, 112, 138, 125, 124, 143, 130, 119, 127, 131, 131, 132, 114, 129, 134, 128, 133, 140, 133, 133, 110, 149, 135, 122, 117, 125, 120, 120, 138, 138, 139, 131, 122, 123, 111, 113, 127, 127, 136, 118, 119, 149, 130, 115, 109, 120, 130, 117, 128, 120, 130, 136, 130, 135, 123, 121, 118, 113, 138, 109, 139, 112, 133, 150, 114, 136, 133, 134, 129, 114, 112, 143, 125, 114, 123, 128, 121, 115, 120, 124, 122, 130, 125, 130, 117, 112, 133, 135, 127, 123, 110, 139, 132, 123, 159, 119, 126, 119, 127, 132, 124, 138, 121, 124, 133, 123, 149, 117, 124, 120, 134, 128, 122, 122, 107, 137, 108, 130, 118, 125, 124, 119, 121, 131, 136, 123, 117, 126, 125, 124, 136, 101, 128, 124, 127, 131, 116, 118, 116, 126, 128, 127, 123, 134, 125, 125, 131, 143, 101, 116, 141, 113, 128, 130, 136, 131, 142, 120, 128, 124, 127, 129, 110, 118, 147, 119, 122, 103, 126, 132, 138, 131, 129, 135, 123, 122, 121, 103, 117, 119, 120, 109, 136, 118, 109, 116, 121, 118, 132, 117, 122, 126, 130, 134, 118, 154, 128, 143, 117, 127, 120, 121, 128, 136, 132, 133, 117, 127, 118, 136, 121, 114, 133, 105, 139, 129, 123, 123, 120, 119, 141, 125, 119, 127, 125, 157, 106, 135, 120, 125, 125, 123, 128, 150, 124, 125, 151, 128, 119, 132, 120, 122, 123, 128, 139, 126, 138, 138, 125, 123, 111, 129, 119, 114, 130, 128, 129, 115, 135, 109, 141, 117, 116, 129, 116, 138, 117, 125, 141, 120, 120, 112, 138, 121, 126, 126, 125, 129, 124, 122, 122, 133, 127, 114, 118, 140, 125, 129, 115, 111, 130, 104, 122, 117, 121, 127, 115, 124, 122, 116, 123, 125, 127, 115, 129, 126, 118, 137, 119, 109, 110, 128, 108, 127, 132, 120, 110, 100, 136, 127, 123, 132, 138, 138, 142, 117, 123, 124, 121, 137, 131, 132, 147, 105, 112, 114, 112, 133, 120, 117, 139, 142, 150, 131, 127, 128, 132, 134, 125, 127, 113, 122, 112, 144, 121, 131, 126, 126, 127, 106, 120, 134, 127, 146, 138, 132, 137, 126, 122, 97, 119, 110, 131, 144, 114, 134, 135, 136, 116, 111, 125, 110, 129, 132, 149, 147, 117, 118, 136, 129, 133, 128, 133, 116, 145, 129, 138, 139, 146, 114, 116, 115, 113, 124, 103, 119, 122, 122, 135, 128, 122, 120, 128, 118, 110, 125, 136, 106, 130, 105, 115, 131, 143, 133, 135, 138, 119, 134, 140, 118, 121, 136, 120, 111, 124, 103, 125, 108, 136, 130, 133, 119, 133, 125, 131, 127, 142, 125, 128, 104, 132, 125, 125, 122, 116, 112, 121, 125, 127, 125, 113, 135, 139, 124, 114, 121, 120, 128, 129, 129, 124, 142, 119, 131, 112, 114, 129, 139, 125, 111, 143, 120, 127, 141, 125, 133, 133, 143, 131, 122, 129, 129, 129, 131, 117, 123, 124, 131, 128, 136, 120, 104, 129, 136, 131, 135, 148, 131, 115, 132, 120, 136, 130, 129, 111, 138, 115, 135, 142, 141, 114, 124, 124, 139, 120, 116, 125, 125, 132, 143, 125, 151, 135, 126, 133, 119, 120, 119, 123, 121, 127, 117, 126, 99, 118, 118, 134, 124, 128, 127, 138, 134, 127, 139, 111, 133, 135, 119, 131, 137, 136, 139, 134, 126, 147, 122, 136, 125, 110, 126, 130, 121, 116, 120, 134, 138, 111, 110, 112, 127, 116, 119, 120, 144, 130, 144, 127, 121, 129, 121, 135, 113, 133, 135, 106, 113, 140, 124, 129, 128, 127, 118, 126, 127, 127, 132, 126, 119, 129, 125, 120, 118, 118, 139, 112, 116, 125, 114, 122, 112, 115, 112, 127, 120, 119, 130, 126, 134, 133, 122, 112, 127, 119, 110, 129, 112, 125, 123, 133, 123, 116, 116, 119, 142, 121, 136, 103, 134, 121, 123, 119, 124, 105, 117, 112, 139, 129, 124, 103, 115, 120, 121, 130, 132, 145, 124, 117, 137, 116, 137, 122, 122, 112, 118, 105, 151, 106, 129, 125, 129, 117, 130, 112, 113, 129, 129, 129, 124, 127, 137, 126, 130, 119, 121, 132, 144, 119, 137, 119, 116, 114, 125, 129, 133, 149, 110, 129, 140, 126, 123, 128, 137, 130, 131, 117, 118, 129, 112, 126, 147, 114, 124, 129, 126, 133, 115, 112, 117, 117, 125, 143, 130, 107, 144, 128, 118, 117, 122, 132, 116, 131, 126, 122, 150, 126, 122, 116, 113, 121, 124, 119, 121, 125, 133, 117, 146, 131, 135, 120, 130, 117, 122, 135, 117, 156, 134, 114, 125, 133, 150, 124, 136, 132, 139, 119, 135, 128, 126, 128, 120, 123, 111, 102, 112, 107, 117, 118, 109, 126, 123, 131, 141, 125, 146, 133, 134, 127, 128, 141, 129, 122, 114, 125, 122, 147, 125, 120, 117, 135, 110, 121, 122, 116, 121, 138, 114, 130, 119, 125, 114, 118, 116, 116, 141, 110, 118, 128, 113, 129, 120, 118, 129, 120, 131, 127, 131, 119, 125, 129, 120, 140, 127, 131, 125, 119, 126, 126, 129, 128, 130, 113, 137, 121, 131, 117, 131, 113, 112, 126, 120, 128, 141, 135, 126, 127, 115, 129, 118, 132, 128, 118, 130, 126, 139, 110, 123, 130, 129, 130, 114, 131, 133, 110, 128, 121, 128, 139, 132, 137, 121, 135, 131, 120, 117, 137, 138, 94, 123, 130, 122, 118, 117, 145, 138, 135, 127, 130, 127, 128, 142, 130, 111, 116, 126, 120, 120, 134, 121, 140, 138, 123, 130, 118, 118, 138, 120, 122, 124, 117, 126, 116, 123, 121, 125, 121, 122, 136, 132, 124, 123, 124, 144, 123, 130, 134, 130, 128, 126, 111, 130, 108, 130, 130, 121, 109, 124, 126, 122, 116, 131, 129, 134, 116, 125, 116, 120, 128, 118, 133, 131, 146, 129, 122, 134, 129, 113, 115, 115, 114, 103, 129, 143, 124, 122, 111, 117, 117, 139, 116, 132, 134, 116, 127, 135, 122, 121, 123, 115, 128, 117, 122, 123, 128, 127, 106, 115, 116, 139, 127, 131, 103, 134, 125, 121, 121, 111, 124, 128, 114, 116, 116, 125, 103, 124, 128, 116, 115, 112, 121, 126, 126, 133, 125, 128, 129, 125, 123, 119, 136, 113, 107, 110, 141, 120, 123, 134, 115, 116, 123, 124, 127, 140, 141, 124, 132, 112, 148, 134, 131, 128, 120, 135, 122, 127, 136, 126, 119, 136, 143, 120, 118, 105, 122, 129, 118, 130, 126, 137, 121, 132, 118, 131, 141, 128, 139, 131, 120, 120, 139, 124, 122, 132, 123, 132, 128, 141, 101, 131, 119, 116, 131, 124, 122, 110, 130, 127, 133, 116, 135, 125, 110, 123, 117, 119, 131, 144, 109, 148, 116, 137, 117, 130, 127, 121, 111, 119, 124, 126, 120, 130, 128, 125, 120, 136, 147, 125, 110, 131, 139, 122, 124, 105, 143, 122, 109, 150, 128, 111, 118, 135, 132, 125, 128, 129, 130, 110, 134, 124, 124, 139, 129, 129, 127, 123, 114, 132, 126, 130, 112, 110, 128, 124, 134, 143, 126, 129, 131, 134, 131, 127, 126, 132, 140, 119, 120, 110, 119, 125, 114, 132, 121, 122, 138, 105, 129, 122, 133, 135, 117, 125, 121, 138, 130, 122, 137, 119, 120, 130, 107, 131, 124, 151, 120, 118, 130, 136, 103, 137, 127, 145, 120, 110, 112, 131, 144, 124, 126, 118, 132, 95, 124, 144, 132, 131, 114, 125, 118, 115, 111, 139, 128, 140, 128, 135, 116, 139, 128, 126, 114, 105, 129, 134, 124, 115, 128, 118, 124, 153, 135, 123, 111, 127, 108, 108, 152, 119, 129, 121, 139, 135, 115, 119, 108, 131, 127, 115, 126, 116, 139, 128, 111, 112, 128, 128, 133, 114, 103, 126, 125, 110, 128, 132, 135, 121, 105, 113, 124, 97, 115, 126, 110, 115, 130, 132, 122, 131, 132, 117, 132, 143, 115, 133, 124, 118, 130, 99, 98, 124, 119, 113, 108, 118, 125, 115, 154, 102, 140, 108, 132, 122, 138, 126, 109, 128, 102, 132, 117, 124, 112, 129, 117, 100, 118, 123, 129, 129, 121, 126, 135, 121, 128, 129, 110, 126, 127, 124, 131, 119, 129, 129, 117, 143, 109, 133, 120, 123, 119, 112, 127, 124, 134, 115, 133, 125, 127, 121, 105, 136, 146, 129, 125, 135, 128, 140, 120, 129, 131, 133, 134, 116, 133, 106, 123, 135, 132, 125, 130, 127, 136, 130, 123, 119, 124, 113, 119, 133, 135, 135, 130, 131, 128, 132, 117, 137, 130, 133, 119, 112, 119, 153, 116, 101, 132, 121, 126, 111, 137, 125, 112, 120, 121, 124, 142, 126, 124, 114, 109, 124, 123, 105, 141, 115, 119, 96, 133, 115, 118, 125, 130, 116, 130, 122, 128, 127, 131, 138, 140, 120, 124, 150, 133, 131, 131, 124, 120, 135, 123, 120, 102, 126, 134, 115, 127, 131, 122, 130, 115, 133, 130, 125, 131, 128, 117, 106, 126, 131, 135, 125, 116, 116, 123, 116, 121, 131, 122, 137, 140, 130, 135, 129, 121, 138, 139, 119, 123, 112, 123, 127, 128, 122, 135, 124, 116, 121, 128, 134, 135, 144, 122, 119, 144, 121, 115, 125, 147, 138, 121, 125, 129, 137, 132, 139, 136, 113, 117, 131, 134, 125, 130, 116, 128, 128, 131, 118, 116, 135, 120, 134, 124, 132, 140, 138, 133, 134, 141, 124, 120, 107, 150, 129, 119, 112, 129, 89, 140, 130, 123, 139, 146, 130, 126, 118, 136, 135, 129, 127, 130, 107, 147, 122, 108, 131, 136, 115, 137, 123, 131, 139, 157, 123, 119, 135, 124, 120, 126, 144, 125, 131, 113, 124, 109, 122, 124, 112, 136, 125, 133, 117, 126, 120, 127, 136, 128, 122, 129, 127, 127, 138, 126, 128, 104, 122, 112, 118, 131, 145, 121, 109, 128, 143, 132, 129, 130, 121, 133, 142, 127, 126, 122, 121, 152, 128, 109, 133, 120, 117, 117, 114, 122, 125, 118, 119, 123, 119, 129, 123, 126, 132, 107, 117, 148, 139, 122, 128, 140, 110, 138, 143, 137, 121, 121, 108, 116, 119, 121, 120, 131, 124, 135, 122, 122, 115, 133, 115, 124, 123, 143, 97, 128, 122, 104, 130, 139, 126, 131, 128, 127, 121, 111, 126, 118, 110, 126, 121, 115, 140, 140, 112, 123, 132, 127, 110, 134, 120, 111, 105, 145, 121, 118, 124, 124, 119, 139, 125, 118, 124, 129, 120, 122, 119, 122, 125, 132, 131, 129, 145, 126, 130, 117, 151, 122, 121, 116, 109, 121, 127, 125, 128, 115, 120, 121, 114, 138, 135, 133, 110, 131, 119, 134, 129, 128, 136, 129, 119, 126, 121, 122, 125, 121, 122, 108, 106, 132, 120, 136, 138, 119, 121, 117, 128, 140, 124, 123, 131, 122, 117, 140, 148, 132, 136, 124, 127, 133, 108, 138, 135, 121, 120, 140, 118, 111, 129, 134, 119, 107, 123, 130, 128, 128, 125, 142, 141, 126, 129, 136, 139, 119, 130, 114, 111, 128, 122, 129, 131, 142, 121, 117, 122, 126, 143, 134, 122, 126, 116, 122, 125, 118, 126, 113, 138, 118, 125, 151, 127, 117, 107, 129, 125, 135, 113, 140, 121, 131, 141, 141, 113, 116, 124, 110, 129, 125, 130, 142, 132, 115, 100, 137, 119, 118, 120, 129, 126, 125, 118, 115, 134, 121, 139, 128, 136, 123, 141, 115, 136, 112, 118, 110, 118, 118, 111, 114, 125, 124, 126, 125, 112, 132, 148, 118, 118, 110, 101, 122, 126, 128, 121, 126, 126, 118, 132, 123, 112, 132, 125, 137, 129, 143, 118, 108, 116, 120, 132, 142, 125, 121, 132, 118, 125, 121, 135, 137, 131, 117, 115, 135, 138, 123, 117, 130, 127, 127, 131, 125, 130, 112, 117, 144, 134, 118, 145, 138, 154, 115, 125, 129, 125, 114, 125, 112, 127, 153, 114, 120, 109, 103, 115, 130, 111, 135, 115, 127, 126, 124, 117, 124, 121, 122, 131, 132, 133, 117, 134, 118, 130, 111, 114, 125, 107, 114, 130, 129, 140, 119, 109, 125, 122, 130, 144, 139, 120, 121, 111, 117, 114, 126, 113, 122, 129, 116, 134, 127, 127, 144, 113, 117, 128, 131, 117, 111, 125, 128, 130, 125, 130, 130, 108, 126, 122, 139, 124, 128, 137, 118, 98, 123, 138, 127, 135, 126, 135, 105, 115, 111, 147, 132, 133, 125, 119, 116, 143, 126, 120, 132, 140, 131, 121, 119, 133, 108, 130, 117, 133, 125, 131, 121, 134, 119, 122, 130, 113, 122, 122, 132, 113, 137, 124, 139, 119, 120, 123, 142, 119, 129, 124, 119, 120, 137, 130, 142, 145, 115, 133, 112, 111, 120, 123, 113, 134, 126, 126, 125, 121, 129, 119, 145, 115, 122, 110, 127, 128, 108, 137, 136, 114, 129, 115, 125, 116, 147, 134, 120, 127, 122, 105, 115, 127, 134, 134, 122, 111, 92, 131, 121, 124, 117, 126, 127, 127, 122, 135, 116, 133, 114, 142, 135, 101, 124, 119, 138, 130, 116, 133, 109, 131, 145, 115, 131, 128, 139, 123, 120, 135, 125, 123, 139, 108, 126, 143, 115, 119, 112, 128, 134, 123, 124, 135, 122, 131, 130, 112, 126, 116, 129, 128, 115, 114, 120, 112, 114, 122, 134, 121, 120, 119, 128, 131, 116, 116, 129, 138, 122, 126, 118, 125, 126, 128, 123, 127, 131, 119, 121, 129, 116, 136, 109, 112, 125, 121, 116, 118, 131, 116, 137, 131, 134, 101, 134, 108, 110, 136, 130, 105, 127, 129, 114, 132, 122, 125, 125, 130, 142, 129, 141, 131, 130, 129, 124, 140, 137, 116, 110, 110, 125, 129, 114, 131, 119, 125, 143, 129, 144, 139, 119, 141, 131, 131, 136, 119, 135, 126, 110, 125, 142, 135, 112, 121, 116, 128, 114, 132, 131, 128, 111, 123, 124, 119, 126, 119, 114, 149, 124, 124, 143, 115, 133, 129, 117, 127, 124, 101, 129, 124, 123, 116, 116, 123, 105, 118, 115, 127, 136, 124, 129, 127, 124, 147, 119, 115, 110, 126, 113, 140, 130, 126, 140, 131, 124, 135, 109, 134, 117, 114, 129, 132, 119, 116, 133, 108, 138, 116, 122, 110, 130, 129, 125, 115, 108, 128, 122, 130, 136, 130, 132, 145, 137, 115, 130, 119, 118, 118, 109, 128, 105, 126, 108, 121, 128, 102, 119, 128, 103, 121, 108, 116, 130, 134, 129, 130, 112, 122, 127, 141, 124, 131, 139, 121, 126, 123, 121, 119, 120, 135, 130, 126, 117, 131, 121, 140, 122, 115, 123, 133, 120, 123, 142, 127, 140, 132, 125, 128, 110, 148, 118, 139, 132, 122, 131, 128, 137, 165, 124, 114, 129, 83, 119, 127, 121, 122, 114, 134, 138, 126, 135, 139, 132, 112, 117, 126, 134, 119, 128, 119, 130, 130, 130, 130, 133, 136, 143, 116, 105, 132, 120, 117, 133, 127, 126, 141, 102, 125, 127, 128, 134, 115, 123, 121, 131, 142, 125, 133, 136, 145, 125, 146, 137, 121, 120, 126, 131, 121, 131, 134, 120, 138, 111, 133, 135, 132, 133, 110, 115, 131, 122, 124, 123, 133, 140, 128, 125, 138, 149, 105, 119, 130, 141, 134, 153, 127, 112, 110, 118, 134, 129, 128, 129, 117, 101, 135, 109, 128, 135, 113, 110, 113, 143, 129, 121, 127, 126, 134, 145, 128, 119, 116, 122, 130, 111, 137, 126, 137, 119, 127, 145, 122, 138, 113, 109, 141, 132, 98, 126, 121, 135, 124, 123, 129, 118, 121, 126, 138, 132, 126, 134, 118, 113, 139, 114, 111, 122, 116, 133, 150, 130, 128, 98, 122, 128, 122, 136, 135, 133, 135, 128, 138, 117, 124, 112, 126, 129, 134, 130, 134, 141, 125, 132, 128, 126, 116, 123, 132, 110, 145, 122, 119, 145, 126, 138, 122, 124, 126, 137, 140, 126, 131, 126, 141, 123, 117, 131, 132, 134, 130, 137, 137, 128, 124, 136, 132, 124, 122, 145, 137, 128, 154, 136, 127, 130, 130, 126, 135, 129, 146, 125, 113, 129, 125, 134, 119, 117, 115, 103, 132, 125, 124, 122, 127, 127, 143, 115, 133, 129, 134, 145, 124, 133, 123, 113, 114, 128, 126, 111, 117, 120, 115, 135, 127, 125, 124, 100, 119, 105, 104, 132, 135, 135, 133, 135, 97, 112, 136, 129, 144, 110, 127, 110, 153, 134, 118, 132, 101, 128, 120, 117, 146, 140, 127, 128, 114, 112, 137, 120, 132, 116, 128, 127, 127, 142, 135, 116, 112, 118, 111, 165, 138, 121, 117, 133, 126, 116, 117, 119, 141, 144, 113, 121, 134, 116, 128, 115, 117, 124, 119, 115, 117, 136, 114, 123, 113, 120, 123, 138, 114, 135, 135, 123, 137, 140, 125, 122, 119, 126, 133, 117, 111, 122, 116, 125, 129, 116, 153, 129, 129, 133, 119, 102, 113, 88, 120, 119, 119, 123, 106, 120, 127, 140, 139, 136, 130, 145, 125, 111, 125, 125, 143, 124, 129, 134, 116, 117, 134, 138, 114, 125, 120, 135, 145, 111, 121, 128, 134, 129, 122, 131, 114, 129, 96, 132, 96, 124, 114, 112, 115, 110, 141, 127, 131, 131, 126, 124, 116, 110, 124, 134, 129, 128, 103, 114, 133, 138, 103, 120, 131, 124, 128, 129, 112, 121, 132, 144, 124, 122, 112, 113, 113, 126, 131, 122, 123, 130, 99, 118, 117, 137, 112, 105, 124, 120, 131, 103, 135, 133, 134, 131, 129, 123, 110, 134, 108, 123, 111, 123, 113, 135, 125, 129, 141, 136, 133, 92, 115, 119, 117, 130, 122, 127, 128, 114, 133, 122, 114, 119, 149, 116, 129, 115, 133, 122, 130, 149, 115, 137, 108, 134, 124, 127, 122, 134, 119, 150, 132, 120, 127, 130, 110, 117, 133, 128, 113, 118, 118, 128, 123, 125, 122, 143, 138, 136, 143, 126, 125, 127, 123, 113, 117, 135, 126, 133, 123, 120, 136, 115, 105, 122, 136, 132, 127, 107, 118, 125, 139, 121, 108, 125, 132, 119, 124, 103, 130, 128, 131, 139, 141, 104, 127, 125, 117, 125, 111, 114, 109, 136, 124, 133, 123, 145, 109, 117, 126, 125, 115, 136, 120, 134, 145, 128, 117, 124, 131, 112, 132, 119, 124, 125, 137, 123, 125, 135, 129, 140, 123, 129, 114, 112, 122, 141, 110, 150, 121, 121, 113, 134, 129, 130, 123, 105, 120, 112, 118, 119, 109, 140, 121, 118, 116, 121, 125, 129, 118, 143, 105, 149, 118, 106, 136, 127, 126, 122, 119, 120, 119, 164, 133, 115, 129, 143, 129, 101, 141, 115, 132, 133, 129, 111, 133, 109, 122, 98, 120, 133, 135, 111, 114, 136, 115, 124, 123, 123, 137, 128, 123, 113, 113, 112, 138, 124, 138, 138, 118, 135, 124, 125, 141, 145, 119, 119, 147, 129, 136, 119, 120, 128, 130, 145, 125, 141, 118, 143, 127, 154, 121, 127, 120, 113, 112, 121, 140, 119, 117, 132, 129, 118, 120, 120, 143, 119, 141, 113, 123, 134, 117, 137, 131, 128, 132, 113, 136, 120, 122, 103, 137, 140, 130, 121, 93, 133, 139, 136, 116, 128, 136, 126, 120, 118, 131, 121, 119, 133, 153, 108, 115, 132, 119, 117, 115, 115, 126, 127, 121, 131, 121, 125, 128, 110, 125, 124, 123, 118, 137, 137, 115, 129, 138, 120, 137, 114, 112, 141, 122, 119, 131, 129, 127, 139, 117, 119, 101, 155, 134, 139, 125, 117, 114, 137, 118, 122, 116, 111, 119, 124, 124, 137, 126, 141, 141, 121, 135, 129, 134, 140, 122, 130, 106, 129, 133, 123, 129, 124, 133, 120, 122, 119, 121, 149, 132, 146, 118, 112, 113, 117, 136, 129, 126, 138, 135, 137, 118, 137, 137, 154, 138, 132, 133, 129, 111, 115, 144, 115, 122, 116, 120, 120, 117, 135, 124, 143, 101, 142, 121, 121, 112, 124, 115, 118, 132, 120, 117, 131, 127, 116, 131, 121, 125, 125, 116, 119, 152, 116, 129, 120, 116, 116, 128, 125, 125, 108, 131, 141, 146, 117, 136, 119, 127, 96, 131, 127, 138, 132, 135, 109, 145, 109, 121, 132, 125, 124, 113, 143, 135, 140, 140, 113, 108, 116, 121, 123, 126, 131, 138, 127, 123, 123, 112, 113, 132, 141, 130, 115, 133, 122, 130, 133, 97, 124, 118, 132, 149, 144, 115, 117, 132, 115, 134, 104, 127, 122, 138, 136, 129, 119, 127, 165, 130, 122, 129, 125, 139, 114, 110, 123, 128, 116, 135, 130, 136, 124, 114, 113, 126, 118, 134, 122, 121, 108, 126, 138, 140, 127, 116, 120, 140, 134, 127, 139, 127, 119, 119, 127, 115, 132, 123, 126, 151, 126, 140, 120, 114, 110, 132, 139, 118, 126, 123, 111, 127, 124, 131, 111, 110, 118, 116, 123, 115, 123, 125, 135, 111, 121, 116, 130, 112, 128, 139, 145, 119, 125, 110, 117, 131, 131, 116, 118, 98, 134, 131, 127, 126, 140, 142, 155, 125, 135, 137, 125, 120, 145, 114, 106, 124, 132, 130, 120, 111, 122, 118, 129, 116, 131, 130, 115, 115, 130, 95, 118, 126, 114, 123, 126, 131, 138, 123, 118, 126, 119, 117, 128, 127, 135, 140, 128, 115, 130, 126, 141, 122, 134, 135, 117, 134, 116, 125, 128, 111, 121, 140, 132, 129, 132, 132, 105, 125, 131, 129, 134, 114, 132, 142, 134, 122, 117, 140, 127, 133, 122, 143, 122, 132, 130, 111, 117, 122, 154, 123, 119, 132, 129, 112, 114, 121, 116, 112, 129, 127, 123, 148, 129, 121, 137, 130, 118, 128, 136, 134, 121, 119, 125, 118, 133, 117, 126, 118, 126, 108, 129, 119, 127, 126, 125, 141, 140, 122, 119, 116, 126, 125, 129, 141, 145, 130, 112, 130, 130, 117, 93, 128, 133, 128, 131, 109, 113, 128, 126, 115, 121, 121, 126, 130, 143, 138, 126, 134, 120, 126, 129, 119, 109, 106, 122, 130, 133, 113, 152, 156, 120, 122, 124, 131, 143, 106, 149, 133, 137, 131, 126, 112, 119, 134, 117, 116, 122, 126, 112, 120, 105, 122, 125, 109, 129, 112, 137, 110, 121, 126, 147, 131, 113, 127, 152, 139, 120, 122, 105, 115, 136, 117, 140, 129, 113, 125, 145, 126, 157, 128, 140, 145, 117, 141, 131, 125, 138, 132, 136, 105, 125, 119, 118, 126, 121, 129, 136, 134, 120, 139, 151, 121, 115, 136, 125, 122, 116, 127, 126, 109, 124, 104, 117, 131, 128, 135, 143, 129, 119, 119, 119, 120, 136, 126, 129, 123, 105, 123, 116, 129, 119, 122, 140, 122, 105, 111, 115, 117, 114, 116, 124, 122, 124, 118, 115, 142, 111, 135, 145, 138, 126, 124, 118, 135, 137, 123, 129, 130, 123, 134, 120, 136, 130, 125, 139, 133, 103, 142, 123, 143, 137, 147, 135, 124, 115, 118, 124, 119, 111, 122, 128, 110, 132, 102, 119, 113, 119, 132, 135, 113, 134, 135, 113, 121, 125, 117, 124, 146, 121, 136, 116, 134, 129, 111, 130, 131, 124, 127, 128, 104, 142, 133, 137, 119, 136, 147, 116, 116, 157, 112, 134, 116, 114, 126, 117, 120, 134, 123, 140, 119, 134, 136, 114, 129, 143, 122, 121, 123, 141, 134, 128, 123, 111, 130, 142, 127, 118, 119, 125, 139, 124, 117, 143, 112, 139, 117, 121, 152, 135, 139, 124, 123, 121, 131, 125, 116, 118, 127, 132, 119, 133, 116, 131, 133, 120, 131, 127, 137, 121, 120, 146, 115, 137, 115, 140, 130, 125, 127, 126, 132, 144, 137, 130, 139, 134, 125, 111, 128, 127, 116, 125, 139, 114, 141, 121, 123, 112, 127, 121, 121, 121, 121, 104, 134, 137, 124, 122, 109, 110, 123, 122, 90, 131, 138, 137, 156, 129, 108, 114, 127, 134, 157, 127, 118, 124, 132, 112, 126, 126, 134, 130, 140, 121, 146, 111, 104, 119, 119, 124, 139, 124, 126, 131, 131, 139, 126, 128, 127, 152, 147, 119, 105, 121, 134, 112, 123, 123, 118, 122, 133, 127, 127, 128, 124, 124, 110, 120, 124, 131, 129, 114, 119, 133, 143, 125, 128, 141, 118, 123, 130, 121, 154, 124, 125, 133, 114, 128, 140, 116, 127, 121, 146, 118, 138, 133, 142, 114, 106, 129, 123, 143, 110, 121, 123, 117, 119, 117, 115, 132, 141, 119, 102, 133, 113, 110, 140, 153, 133, 134, 141, 120, 145, 128, 136, 141, 105, 131, 125, 107, 123, 121, 128, 137, 131, 160, 108, 119, 131, 116, 110, 126, 122, 127, 122, 157, 136, 126, 127, 130, 127, 126, 121, 116, 111, 123, 124, 109, 139, 142, 111, 136, 121, 122, 122, 121, 119, 135, 128, 124, 126, 128, 114, 131, 119, 134, 119, 113, 112, 123, 133, 112, 126, 122, 115, 121, 129, 133, 113, 111, 111, 121, 148, 125, 139, 127, 123, 110, 128, 123, 132, 136, 113, 116, 130, 127, 137, 113, 119, 131, 126, 129, 117, 109, 110, 128, 131, 136, 119, 113, 125, 138, 119, 106, 127, 123, 121, 117, 118, 126, 128, 135, 123, 110, 135, 132, 120, 135, 110, 114, 128, 160, 110, 115, 117, 135, 133, 109, 113, 132, 107, 127, 124, 122, 122, 126, 147, 129, 131, 126, 112, 116, 124, 124, 115, 137, 134, 127, 128, 127, 124, 109, 139, 108, 132, 129, 136, 144, 135, 116, 119, 117, 118, 125, 127, 119, 131, 127, 120, 119, 109, 114, 133, 149, 113, 143, 135, 120, 119, 118, 121, 125, 147, 126, 120, 137, 105, 128, 118, 139, 119, 135, 126, 125, 128, 139, 141, 124, 111, 142, 122, 139, 116, 131, 149, 117, 132, 127, 110, 115, 120, 128, 120, 117, 114, 97, 113, 128, 129, 129, 144, 141, 122, 132, 122, 144, 113, 117, 108, 122, 119, 120, 127, 142, 131, 126, 140, 125, 127, 132, 129, 126, 120, 140, 122, 133, 123, 129, 129, 138, 116, 116, 158, 120, 121, 95, 123, 136, 128, 98, 124, 130, 136, 135, 147, 111, 133, 142, 117, 128, 125, 114, 120, 128, 131, 138, 129, 144, 95, 126, 116, 126, 110, 121, 144, 129, 152, 133, 138, 125, 119, 125, 136, 122, 129, 112, 124, 123, 116, 139, 108, 110, 125, 134, 120, 146, 144, 115, 117, 148, 133, 131, 121, 119, 137, 117, 143, 122, 118, 104, 126, 137, 144, 125, 133, 122, 120, 112, 130, 129, 109, 108, 136, 110, 117, 114, 120, 106, 142, 117, 111, 138, 122, 135, 131, 112, 128, 137, 134, 127, 131, 123, 121, 131, 127, 122, 133, 117, 120, 121, 135, 117, 130, 108, 117, 127, 152, 120, 116, 134, 117, 128, 134, 128, 125, 135, 126, 114, 128, 111, 125, 155, 108, 118, 121, 136, 122, 126, 105, 124, 124, 130, 123, 113, 137, 109, 114, 115, 129, 126, 110, 129, 121, 124, 136, 134, 112, 100, 124, 115, 122, 121, 131, 118, 112, 140, 98, 127, 127, 125, 139, 131, 125, 107, 143, 121, 123, 115, 122, 125, 121, 118, 161, 113, 116, 124, 119, 121, 123, 141, 126, 125, 127, 123, 109, 134, 137, 128, 122, 121, 124, 129, 127, 122, 135, 136, 113, 104, 137, 119, 146, 129, 130, 124, 113, 137, 114, 127, 130, 94, 123, 136, 122, 119, 136, 116, 135, 133, 130, 140, 123, 125, 131, 134, 126, 144, 137, 133, 127, 140, 120, 139, 148, 116, 128, 141, 99, 122, 134, 135, 132, 114, 117, 127, 126, 120, 118, 143, 112, 127, 123, 115, 135, 128, 101, 125, 134, 114, 132, 114, 121, 132, 114, 99, 129, 117, 139, 107, 141, 133, 125, 141, 117, 111, 107, 122, 133, 134, 124, 115, 101, 129, 131, 112, 136, 137, 123, 121, 131, 124, 116, 124, 135, 124, 109, 118, 129, 138, 130, 125, 116, 118, 128, 118, 136, 113, 135, 141, 143, 135, 120, 122, 114, 131, 129, 116, 125, 128, 134, 126, 119, 129, 114, 137, 116, 132, 104, 139, 139, 112, 137, 120, 111, 121, 118, 125, 124, 112, 132, 126, 117, 136, 110, 122, 123, 105, 134, 116, 127, 123, 119, 116, 117, 120, 123, 125, 130, 125, 136, 117, 122, 120, 133, 125, 114, 136, 124, 116, 113, 134, 136, 128, 146, 120, 117, 113, 120, 109, 118, 122, 115, 124, 140, 130, 129, 122, 137, 106, 116, 122, 128, 128, 119, 108, 129, 129, 118, 118, 116, 127, 123, 142, 130, 153, 145, 117, 108, 133, 115, 115, 118, 127, 127, 114, 116, 139, 122, 141, 120, 132, 134, 122, 133, 111, 117, 119, 109, 112, 120, 119, 128, 122, 126, 121, 121, 130, 132, 108, 119, 113, 113, 109, 126, 126, 129, 134, 144, 117, 129, 141, 122, 118, 135, 122, 126, 138, 114, 132, 123, 118, 132, 125, 114, 101, 124, 114, 139, 138, 121, 138, 127, 115, 133, 121, 126, 112, 117, 122, 117, 135, 129, 131, 142, 129, 115, 112, 115, 131, 109, 122, 119, 133, 128, 117, 111, 135, 108, 130, 123, 139, 125, 126, 113, 121, 127, 115, 129, 111, 129, 127, 142, 130, 138, 123, 122, 124, 120, 132, 122, 133, 135, 123, 116, 128, 122, 126, 129, 130, 133, 140, 144, 126, 123, 123, 135, 137, 152, 127, 125, 118, 111, 122, 149, 128, 133, 112, 134, 123, 123, 128, 128, 122, 131, 142, 125, 126, 138, 120, 109, 116, 152, 101, 134, 126, 133, 134, 131, 118, 119, 112, 128, 115, 117, 127, 113, 106, 139, 123, 122, 119, 121, 122, 136, 122, 123, 128, 125, 128, 137, 129, 131, 131, 122, 118, 124, 151, 127, 114, 129, 111, 113, 139, 134, 116, 122, 129, 129, 124, 126, 130, 122, 137, 128, 122, 131, 116, 125, 124, 110, 128, 112, 126, 108, 124, 115, 122, 114, 128, 132, 116, 117, 121, 122, 118, 126, 126, 117, 128, 118, 132, 118, 136, 115, 135, 115, 126, 110, 103, 140, 130, 111, 123, 125, 137, 114, 124, 135, 139, 127, 118, 145, 128, 113, 135, 132, 133, 140, 114, 120, 119, 142, 124, 126, 130, 124, 139, 126, 126, 115, 132, 124, 129, 129, 118, 131, 121, 131, 114, 130, 124, 132, 125, 105, 136, 111, 130, 116, 130, 134, 120, 143, 125, 139, 141, 120, 140, 128, 110, 119, 106, 122, 125, 126, 109, 137, 123, 133, 121, 132, 127, 134, 132, 126, 117, 125, 121, 132, 121, 128, 121, 124, 149, 147, 124, 127, 140, 121, 121, 112, 119, 124, 124, 125, 121, 110, 138, 113, 126, 119, 116, 105, 128, 103, 122, 131, 118, 121, 121, 126, 128, 147, 145, 117, 124, 143, 118, 124, 128, 129, 130, 119, 134, 112, 122, 133, 141, 121, 138, 134, 131, 120, 126, 134, 136, 112, 125, 142, 121, 156, 118, 137, 137, 122, 128, 144, 140, 149, 133, 129, 133, 118, 117, 134, 130, 133, 111, 129, 102, 126, 130, 128, 148, 127, 133, 132, 124, 130, 125, 124, 133, 105, 109, 117, 128, 122, 123, 119, 126, 132, 113, 139, 129, 115, 122, 138, 125, 117, 136, 132, 121, 129, 124, 131, 129, 139, 129, 123, 127, 131, 132, 123, 145, 135, 121, 143, 133, 126, 115, 154, 138, 133, 129, 131, 138, 128, 125, 129, 133, 117, 140, 124, 138, 128, 119, 125, 117, 126, 127, 128, 104, 123, 144, 123, 130, 134, 131, 140, 121, 132, 125, 137, 115, 115, 129, 129, 107, 134, 117, 125, 123, 144, 127, 134, 110, 125, 139, 122, 119, 125, 118, 129, 137, 126, 127, 116, 128, 135, 141, 119, 138, 127, 146, 138, 119, 141, 110, 134, 122, 113, 119, 123, 118, 124, 132, 129, 139, 127, 125, 116, 130, 122, 127, 109, 124, 129, 105, 107, 125, 129, 116, 124, 123, 112, 123, 135, 147, 111, 131, 114, 123, 125, 142, 122, 136, 117, 116, 155, 117, 120, 133, 124, 118, 130, 125, 121, 115, 121, 122, 125, 126, 132, 140, 145, 116, 118, 130, 145, 127, 137, 115, 125, 114, 111, 105, 117, 110, 119, 134, 120, 130, 129, 120, 141, 126, 128, 121, 129, 141, 134, 134, 110, 133, 130, 133, 131, 111, 123, 134, 125, 140, 130, 131, 123, 138, 122, 133, 132, 121, 124, 131, 120, 137, 143, 117, 129, 128, 126, 127, 116, 126, 131, 141, 125, 126, 131, 99, 125, 135, 131, 120, 115, 140, 129, 123, 127, 137, 116, 135, 120, 122, 106, 113, 129, 134, 129, 126, 128, 131, 119, 129, 113, 127, 124, 125, 130, 124, 115, 112, 121, 131, 126, 132, 113, 140, 142, 134, 146, 126, 140, 129, 125, 143, 136, 126, 128, 133, 110, 109, 121, 117, 114, 130, 130, 118, 123, 139, 112, 111, 145, 124, 121, 117, 125, 117, 144, 112, 129, 115, 128, 125, 128, 126, 116, 137, 135, 114, 128, 134, 116, 146, 130, 129, 117, 127, 135, 124, 127, 137, 128, 117, 128, 120, 117, 135, 127, 126, 124, 111, 120, 128, 119, 126, 112, 125, 132, 118, 135, 138, 121, 136, 119, 127, 124, 122, 140, 132, 145, 118, 147, 114, 137, 129, 122, 133, 129, 113, 142, 123, 126, 123, 128, 135, 133, 138, 125, 136, 142, 122, 106, 127, 123, 121, 125, 115, 114, 129, 123, 135, 132, 115, 130, 135, 130, 142, 133, 131, 116, 120, 122, 129, 131, 128, 129, 120, 139, 134, 123, 134, 140, 146, 124, 120, 109, 121, 119, 123, 146, 127, 121, 124, 127, 118, 132, 132, 133, 126, 124, 140, 118, 128, 140, 121, 132, 118, 133, 129, 123, 123, 118, 130, 137, 119, 128, 128, 117, 115, 127, 135, 108, 132, 119, 115, 122, 131, 140, 116, 119, 131, 128, 123, 121, 130, 123, 123, 123, 121, 136, 120, 137, 131, 128, 114, 130, 136, 128, 126, 115, 133, 132, 111, 125, 115, 120, 129, 123, 126, 124, 123, 125, 154, 135, 119, 138, 132, 130, 120, 126, 133, 132, 122, 137, 122, 127, 113, 125, 140, 112, 135, 151, 114, 130, 145, 122, 114, 120, 130, 145, 111, 112, 145, 128, 133, 127, 117, 132, 135, 141, 139, 125, 132, 116, 130, 119, 127, 126, 136, 151, 123, 134, 125, 126, 128, 132, 95, 121, 121, 117, 129, 133, 128, 126, 111, 120, 120, 134, 123, 116, 130, 150, 127, 127, 122, 130, 127, 118, 133, 128, 143, 129, 115, 108, 119, 125, 119, 114, 126, 139, 120, 141, 121, 130, 115, 109, 151, 126, 119, 113, 136, 148, 106, 124, 133, 142, 123, 125, 129, 134, 123, 132, 131, 119, 123, 141, 130, 130, 126, 114, 127, 117, 133, 118, 125, 121, 132, 140, 139, 144, 137, 125, 106, 140, 127, 120, 137, 119, 119, 136, 137, 129, 137, 130, 120, 125, 134, 122, 123, 133, 140, 129, 125, 126, 115, 122, 96, 131, 142, 120, 140, 120, 130, 124, 111, 117, 123, 107, 117, 123, 138, 123, 121, 144, 125, 123, 122, 124, 119, 140, 136, 130, 122, 111, 122, 133, 123, 115, 133, 128, 128, 125, 118, 128, 121, 118, 129, 117, 130, 126, 136, 119, 118, 126, 135, 142, 125, 138, 97, 127, 123, 137, 112, 147, 116, 106, 145, 120, 119, 134, 140, 131, 142, 135, 130, 119, 124, 137, 128, 123, 131, 135, 118, 146, 141, 132, 118, 131, 115, 127, 117, 134, 142, 125, 130, 140, 131, 139, 123, 130, 125, 122, 120, 127, 143, 125, 128, 132, 133, 117, 117, 127, 139, 128, 130, 132, 122, 118, 121, 113, 140, 124, 105, 141, 132, 122, 128, 125, 111, 132, 123, 117, 117, 128, 123, 119, 129, 138, 121, 120, 123, 123, 122, 120, 120, 140, 120, 108, 127, 138, 135, 134, 138, 139, 119, 141, 117, 146, 126, 142, 125, 126, 125, 128, 119, 126, 129, 122, 120, 123, 139, 140, 122, 137, 130, 121, 127, 134, 104, 120, 136, 114, 112, 126, 111, 111, 115, 131, 130, 128, 123, 111, 123, 125, 125, 117, 111, 121, 120, 137, 124, 111, 116, 117, 117, 135, 135, 125, 137, 103, 115, 139, 128, 115, 133, 123, 136, 121, 122, 131, 135, 117, 129, 111, 130, 128, 134, 114, 130, 144, 106, 116, 120, 150, 117, 138, 127, 122, 135, 117, 130, 116, 116, 157, 129, 117, 108, 115, 132, 130, 128, 129, 144, 121, 115, 108, 117, 118, 122, 123, 114, 116, 120, 121, 136, 123, 131, 137, 124, 113, 125, 120, 115, 115, 123, 127, 135, 134, 130, 139, 129, 109, 132, 129, 124, 116, 128, 126, 135, 110, 112, 121, 106, 131, 118, 133, 126, 125, 119, 120, 126, 129, 128, 121, 122, 134, 129, 128, 122, 123, 112, 117, 105, 136, 128, 114, 119, 114, 132, 115, 120, 131, 121, 122, 123, 113, 144, 116, 111, 118, 107, 116, 122, 107, 125, 122, 111, 118, 131, 121, 116, 119, 149, 133, 131, 132, 112, 116, 132, 117, 138, 120, 127, 117, 148, 118, 138, 139, 119, 116, 132, 115, 119, 126, 150, 143, 116, 136, 132, 116, 131, 135, 121, 126, 122, 132, 130, 123, 106, 116, 132, 131, 133, 118, 122, 119, 120, 126, 130, 133, 125, 117, 130, 123, 122, 136, 135, 119, 134, 130, 125, 141, 129, 134, 123, 128, 130, 128, 123, 139, 113, 130, 129, 134, 135, 125, 113, 137, 116, 129, 123, 115, 119, 126, 135, 114, 146, 131, 127, 108, 114, 116, 139, 122, 141, 141, 135, 123, 144, 133, 117, 122, 130, 128, 135, 112, 139, 115, 120, 131, 124, 124, 128, 113, 125, 134, 129, 128, 132, 136, 124, 125, 111, 116, 117, 107, 126, 126, 129, 111, 118, 139, 126, 130, 123, 134, 128, 115, 113, 122, 124, 113, 132, 134, 121, 122, 152, 120, 136, 137, 115, 109, 125, 126, 120, 131, 117, 100, 117, 124, 129, 141, 112, 137, 127, 121, 113, 130, 132, 112, 110, 108, 123, 109, 124, 146, 112, 120, 135, 137, 145, 137, 108, 125, 130, 136, 121, 117, 117, 138, 127, 149, 151, 120, 122, 130, 122, 129, 134, 118, 116, 114, 125, 117, 115, 116, 123, 115, 123, 104, 115, 117, 126, 128, 133, 149, 128, 116, 112, 140, 134, 121, 123, 122, 116, 119, 102, 124, 137, 116, 114, 130, 122, 112, 133, 131, 133, 133, 109, 117, 116, 137, 124, 130, 138, 107, 115, 128, 117, 132, 150, 129, 147, 111, 136, 134, 138, 130, 126, 134, 126, 129, 134, 123, 140, 132, 131, 131, 122, 120, 113, 125, 138, 131, 131, 114, 112, 123, 114, 110, 135, 138, 112, 134, 124, 145, 139, 136, 136, 137, 123, 130, 127, 150, 118, 133, 124, 115, 114, 127, 137, 124, 114, 129, 131, 116, 141, 133, 111, 135, 132, 129, 134, 130, 138, 120, 121, 136, 129, 129, 113, 123, 117, 137, 104, 123, 130, 125, 142, 126, 112, 126, 132, 127, 136, 125, 121, 127, 125, 108, 138, 111, 141, 119, 123, 125, 137, 140, 132, 132, 141, 131, 124, 126, 114, 126, 112, 125, 132, 103, 133, 128, 138, 115, 112, 150, 135, 131, 122, 134, 116, 113, 114, 128, 118, 130, 126, 139, 133, 110, 126, 127, 116, 116, 115, 135, 118, 141, 114, 111, 130, 130, 113, 123, 129, 137, 131, 133, 128, 134, 126, 133, 121, 135, 133, 149, 114, 139, 109, 127, 136, 125, 116, 107, 121, 127, 113, 99, 128, 141, 114, 109, 125, 122, 119, 120, 122, 148, 128, 117, 120, 134, 135, 114, 113, 124, 131, 115, 122, 120, 135, 116, 124, 150, 126, 116, 135, 142, 126, 134, 138, 133, 129, 119, 122, 148, 96, 122, 117, 119, 139, 123, 117, 119, 134, 125, 130, 135, 127, 112, 129, 118, 127, 120, 116, 118, 129, 123, 101, 132, 122, 120, 118, 141, 119, 117, 118, 119, 120, 127, 115, 109, 113, 115, 120, 123, 128, 117, 109, 126, 140, 110, 156, 115, 115, 117, 134, 134, 120, 126, 140, 138, 141, 129, 119, 113, 123, 131, 110, 128, 119, 124, 115, 115, 150, 131, 132, 126, 131, 127, 135, 129, 121, 127, 123, 110, 129, 128, 139, 115, 129, 116, 123, 122, 116, 134, 119, 131, 132, 122, 125, 126, 121, 128, 137, 117, 147, 125, 129, 123, 144, 120, 124, 137, 128, 120, 131, 122, 137, 127, 141, 131, 124, 114, 114, 118, 141, 120, 111, 138, 129, 133, 132, 129, 129, 118, 130, 125, 124, 112, 125, 131, 137, 114, 121, 117, 144, 116, 123, 126, 114, 122, 154, 122, 124, 113, 125, 111, 138, 133, 133, 117, 128, 127, 144, 126, 115, 115, 129, 138, 130, 131, 127, 120, 113, 124, 115, 121, 128, 123, 120, 130, 136, 124, 123, 137, 131, 139, 126, 121, 122, 132, 133, 120, 111, 118, 128, 126, 133, 113, 133, 124, 120, 161, 137, 127, 122, 122, 118, 131, 123, 109, 129, 132, 130, 140, 134, 124, 131, 134, 132, 130, 128, 124, 114, 127, 124, 124, 107, 135, 121, 116, 115, 126, 139, 133, 121, 123, 128, 113, 135, 130, 124, 123, 137, 141, 127, 137, 131, 140, 146, 129, 130, 123, 114, 138, 145, 122, 108, 136, 119, 106, 137, 105, 108, 113, 121, 137, 117, 132, 137, 107, 142, 132, 132, 128, 115, 131, 118, 121, 123, 133, 115, 113, 144, 136, 125, 128, 119, 132, 138, 129, 123, 134, 109, 121, 144, 122, 118, 147, 138, 132, 121, 121, 120, 128, 124, 116, 131, 119, 110, 123, 108, 128, 125, 122, 115, 124, 126, 123, 138, 126, 121, 133, 131, 139, 124, 103, 109, 128, 130, 124, 123, 118, 137, 119, 127, 127, 133, 128, 145, 127, 123, 120, 124, 124, 132, 131, 119, 129, 115, 155, 109, 110, 135, 117, 131, 122, 113, 126, 119, 124, 115, 118, 121, 123, 128, 126, 117, 117, 132, 144, 118, 159, 124, 118, 119, 137, 114, 112, 126, 115, 106, 108, 139, 122, 124, 127, 134, 120, 133, 109, 129, 133, 122, 133, 113, 127, 148, 129, 130, 129, 109, 134, 137, 132, 122, 123, 138, 118, 134, 130, 136, 124, 119, 118, 123, 127, 123, 104, 125, 123, 126, 122, 116, 136, 112, 115, 128, 123, 130, 129, 126, 118, 129, 118, 120, 116, 136, 130, 107, 125, 138, 115, 122, 122, 131, 130, 126, 112, 124, 119, 123, 119, 137, 113, 124, 115, 136, 112, 131, 113, 124, 127, 121, 100, 125, 133, 117, 125, 139, 124, 124, 100, 120, 131, 108, 128, 128, 118, 131, 111, 133, 143, 116, 125, 123, 117, 129, 109, 148, 124, 133, 119, 138, 116, 114, 130, 119, 137, 116, 106, 138, 115, 112, 131, 136, 129, 125, 140, 127, 119, 130, 113, 125, 116, 132, 120, 120, 123, 136, 124, 104, 137, 122, 122, 113, 129, 146, 124, 122, 133, 134, 118, 130, 131, 121, 133, 140, 115, 121, 113, 117, 120, 121, 139, 124, 122, 116, 107, 167, 125, 123, 113, 120, 129, 133, 121, 134, 137, 119, 129, 102, 144, 106, 121, 124, 116, 118, 98, 110, 128, 108, 130, 134, 115, 142, 143, 141, 120, 132, 116, 133, 120, 120, 132, 114, 120, 153, 111, 131, 126, 145, 116, 125, 141, 120, 130, 114, 117, 129, 134, 109, 132, 129, 120, 126, 119, 112, 130, 124, 137, 116, 134, 118, 131, 137, 127, 142, 123, 130, 109, 118, 140, 117, 132, 125, 109, 138, 132, 121, 99, 127, 139, 121, 112, 109, 142, 118, 105, 143, 119, 121, 122, 141, 125, 117, 126, 115, 113, 132, 137, 118, 134, 117, 129, 126, 121, 123, 138, 126, 123, 145, 123, 122, 127, 121, 116, 121, 134, 124, 131, 116, 136, 141, 146, 103, 154, 122, 124, 122, 135, 95, 135, 120, 118, 122, 130, 125, 121, 136, 112, 113, 120, 138, 127, 122, 124, 138, 124, 124, 115, 125, 127, 119, 128, 138, 102, 111, 132, 132, 133, 125, 130, 130, 136, 113, 142, 116, 140, 115, 128, 141, 143, 112, 134, 129, 146, 136, 119, 131, 125, 115, 117, 139, 125, 140, 136, 127, 128, 131, 108, 128, 127, 136, 145, 117, 137, 134, 115, 130, 131, 119, 140, 109, 130, 124, 110, 129, 114, 101, 120, 150, 131, 117, 143, 141, 101, 130, 127, 107, 121, 143, 99, 129, 127, 112, 110, 123, 140, 118, 133, 154, 135, 114, 104, 128, 137, 141, 117, 137, 118, 116, 127, 124, 123, 125, 127, 124, 108, 127, 111, 129, 132, 114, 141, 127, 114, 115, 139, 130, 131, 121, 131, 135, 129, 111, 132, 132, 128, 123, 130, 116, 112, 132, 125, 116, 121, 154, 125, 120, 115, 135, 114, 124, 122, 139, 114, 122, 123, 141, 127, 110, 141, 112, 127, 129, 114, 121, 122, 134, 132, 126, 124, 133, 131, 122, 110, 135, 140, 134, 116, 125, 127, 120, 124, 132, 114, 121, 120, 135, 116, 126, 122, 124, 130, 120, 129, 133, 123, 130, 128, 133, 115, 130, 142, 112, 114, 141, 132, 127, 129, 134, 132, 127, 122, 122, 134, 133, 119, 131, 129, 124, 118, 131, 145, 142, 117, 115, 159, 121, 114, 115, 123, 137, 142, 121, 124, 118, 122, 122, 122, 116, 118, 124, 111, 115, 125, 135, 110, 110, 130, 118, 122, 114, 129, 116, 102, 132, 122, 127, 131, 133, 131, 124, 133, 115, 124, 117, 116, 124, 124, 119, 124, 141, 121, 142, 109, 134, 119, 129, 141, 133, 122, 120, 138, 141, 145, 128, 131, 124, 120, 123, 124, 125, 118, 131, 117, 114, 124, 116, 127, 145, 112, 140, 121, 100, 132, 127, 123, 121, 119, 116, 117, 114, 119, 117, 118, 121, 136, 117, 124, 125, 116, 112, 113, 117, 128, 119, 128, 125, 133, 135, 123, 125, 124, 135, 138, 118, 134, 117, 127, 116, 122, 133, 122, 132, 124, 114, 140, 133, 125, 130, 127, 117, 144, 123, 143, 118, 112, 117, 113, 136, 132, 134, 116, 124, 117, 131, 115, 120, 132, 106, 123, 132, 125, 112, 130, 116, 127, 116, 126, 132, 126, 123, 140, 116, 135, 124, 111, 142, 115, 137, 110, 121, 151, 107, 123, 132, 124, 131, 111, 130, 131, 125, 124, 131, 135, 125, 140, 131, 117, 106, 105, 125, 113, 102, 140, 123, 128, 122, 109, 113, 124, 118, 131, 109, 116, 131, 131, 122, 124, 115, 143, 117, 120, 134, 128, 131, 129, 148, 120, 127, 131, 140, 131, 120, 121, 118, 127, 135, 117, 142, 134, 133, 120, 135, 130, 126, 126, 132, 107, 131, 129, 108, 108, 139, 132, 126, 122, 131, 121, 125, 112, 136, 111, 137, 125, 131, 128, 114, 128, 108, 98, 111, 124, 134, 134, 133, 138, 130, 102, 111, 131, 120, 123, 114, 125, 119, 143, 104, 124, 120, 119, 119, 114, 124, 125, 125, 126, 115, 160, 140, 154, 120, 130, 132, 117, 127, 116, 125, 128, 111, 115, 109, 136, 141, 130, 117, 120, 136, 122, 114, 142, 125, 120, 150, 141, 132, 133, 125, 131, 123, 120, 126, 130, 126, 125, 114, 116, 117, 127, 132, 127, 115, 123, 111, 125, 115, 118, 133, 125, 114, 138, 118, 132, 133, 130, 131, 111, 90, 135, 132, 143, 145, 115, 111, 132, 138, 119, 110, 125, 144, 113, 116, 129, 120, 127, 114, 118, 125, 117, 132, 127, 128, 132, 127, 115, 111, 110, 121, 131, 134, 119, 126, 124, 122, 113, 124, 118, 118, 132, 119, 113, 114, 128, 125, 129, 107, 131, 127, 118, 131, 127, 139, 110, 130, 161, 117, 118, 128, 113, 117, 131, 134, 109, 124, 127, 109, 103, 134, 137, 110, 138, 130, 123, 133, 131, 131, 115, 132, 121, 123, 143, 110, 129, 133, 112, 138, 113, 128, 111, 127, 136, 111, 129, 112, 124, 114, 110, 120, 112, 129, 139, 111, 98, 122, 136, 133, 111, 120, 126, 129, 111, 134, 117, 123, 148, 139, 127, 135, 120, 116, 126, 119, 130, 122, 122, 115, 118, 118, 122, 123, 129, 121, 119, 124, 125, 132, 122, 130, 147, 117, 129, 119, 134, 130, 123, 120, 127, 132, 110, 111, 119, 106, 126, 114, 125, 124, 119, 146, 122, 140, 108, 123, 126, 105, 143, 141, 138, 125, 128, 131, 125, 114, 136, 130, 110, 136, 116, 138, 115, 124, 112, 128, 127, 143, 109, 139, 111, 112, 119, 125, 125, 121, 123, 123, 118, 129, 137, 92, 133, 114, 121, 108, 116, 130, 121, 134, 106, 130, 118, 143, 123, 137, 129, 136, 128, 101, 120, 125, 131, 107, 125, 118, 109, 113, 130, 109, 110, 148, 107, 116, 119, 106, 113, 125, 122, 121, 135, 122, 138, 132, 114, 132, 109, 126, 142, 134, 139, 120, 153, 110, 90, 122, 132, 116, 117, 120, 120, 121, 140, 118, 114, 129, 120, 120, 120, 124, 118, 117, 126, 110, 135, 115, 139, 137, 105, 116, 115, 141, 133, 130, 132, 125, 138, 137, 126, 133, 115, 124, 114, 126, 116, 128, 130, 131, 124, 113, 140, 105, 128, 118, 125, 131, 133, 139, 132, 123, 118, 130, 130, 127, 148, 112, 127, 124, 114, 129, 150, 128, 131, 118, 144, 119, 117, 137, 132, 109, 135, 115, 130, 122, 135, 140, 126, 119, 132, 140, 123, 104, 95, 141, 128, 153, 117, 113, 126, 127, 110, 113, 115, 123, 123, 127, 119, 115, 119, 114, 124, 134, 99, 136, 131, 107, 138, 117, 119, 131, 126, 117, 131, 123, 122, 131, 128, 134, 143, 107, 125, 127, 124, 122, 108, 141, 126, 113, 139, 148, 107, 137, 123, 113, 123, 122, 131, 136, 124, 130, 119, 125, 129, 119, 117, 125, 103, 125, 122, 130, 125, 126, 140, 122, 135, 143, 133, 139, 118, 141, 132, 119, 119, 119, 124, 122, 122, 112, 123, 120, 137, 117, 128, 134, 120, 112, 127, 127, 121, 132, 117, 132, 142, 115, 130, 116, 134, 133, 120, 125, 143, 139, 111, 121, 124, 136, 132, 136, 105, 132, 124, 117, 122, 114, 139, 130, 125, 135, 114, 121, 116, 115, 120, 124, 129, 129, 129, 119, 115, 123, 136, 124, 128, 115, 125, 122, 118, 126, 119, 124, 116, 135, 144, 113, 114, 125, 120, 132, 124, 131, 103, 101, 127, 119, 125, 121, 101, 118, 119, 136, 126, 121, 131, 131, 117, 151, 129, 124, 128, 127, 122, 126, 125, 131, 123, 111, 127, 127, 122, 127, 121, 124, 110, 132, 132, 141, 114, 122, 129, 116, 124, 147, 131, 120, 125, 129, 107, 108, 130, 106, 137, 122, 124, 125, 131, 131, 115, 115, 125, 123, 128, 120, 135, 108, 125, 114, 120, 114, 125, 138, 119, 120, 129, 131, 110, 132, 122, 131, 129, 110, 132, 112, 124, 134, 126, 134, 142, 127, 117, 127, 124, 126, 122, 132, 122, 132, 121, 124, 120, 119, 123, 141, 130, 130, 123, 134, 136, 138, 128, 136, 128, 121, 120, 112, 110, 134, 135, 133, 128, 126, 114, 147, 125, 133, 118, 102, 126, 118, 118, 111, 128, 115, 141, 132, 109, 121, 118, 130, 118, 129, 124, 117, 142, 124, 134, 135, 105, 115, 122, 131, 133, 137, 123, 123, 119, 110, 118, 118, 142, 125, 140, 129, 133, 130, 110, 97, 104, 124, 127, 118, 134, 114, 130, 131, 107, 129, 114, 127, 123, 119, 124, 137, 131, 135, 145, 123, 121, 124, 103, 136, 119, 122, 128, 129, 129, 134, 134, 150, 122, 125, 111, 124, 123, 119, 118, 115, 136, 112, 124, 141, 123, 129, 109, 109, 110, 123, 135, 124, 116, 118, 119, 124, 118, 136, 111, 109, 126, 129, 126, 128, 132, 110, 127, 115, 103, 118, 125, 123, 98, 118, 116, 122, 117, 122, 122, 117, 112, 123, 110, 122, 124, 130, 134, 127, 128, 122, 130, 128, 120, 129, 115, 144, 137, 125, 125, 112, 116, 125, 110, 133, 115, 122, 130, 133, 133, 133, 113, 121, 122, 117, 128, 120, 113, 127, 122, 132, 135, 118, 128, 129, 116, 131, 132, 118, 126, 139, 133, 111, 108, 132, 122, 134, 120, 121, 134, 132, 120, 136, 119, 129, 115, 147, 128, 134, 111, 136, 124, 135, 116, 131, 141, 110, 115, 126, 121, 120, 123, 117, 149, 123, 148, 137, 109, 121, 105, 124, 127, 125, 118, 132, 122, 134, 114, 127, 128, 122, 128, 132, 132, 115, 137, 115, 119, 106, 124, 159, 120, 117, 122, 120, 110, 128, 124, 121, 128, 116, 127, 141, 129, 126, 127, 129, 134, 144, 113, 126, 111, 125, 137, 129, 128, 109, 136, 121, 126, 125, 128, 129, 121, 133, 113, 128, 127, 138, 125, 121, 122, 132, 123, 139, 131, 127, 121, 116, 121, 127, 126, 131, 126, 134, 126, 131, 142, 136, 113, 116, 134, 118, 132, 127, 124, 129, 130, 113, 134, 135, 146, 116, 112, 139, 134, 142, 122, 120, 125, 127, 126, 120, 126, 118, 137, 126, 133, 118, 136, 119, 117, 111, 125, 128, 136, 141, 120, 109, 128, 132, 129, 128, 115, 137, 115, 110, 105, 129, 130, 122, 127, 115, 125, 118, 127, 108, 144, 85, 128, 113, 118, 112, 125, 127, 126, 130, 116, 136, 130, 124, 134, 116, 111, 105, 127, 117, 115, 144, 132, 130, 136, 104, 125, 127, 155, 133, 108, 113, 120, 122, 132, 130, 114, 123, 119, 123, 124, 136, 130, 133, 126, 125, 124, 139, 140, 127, 132, 116, 127, 130, 130, 112, 141, 128, 114, 133, 138, 120, 133, 129, 129, 135, 145, 107, 133, 132, 127, 119, 123, 133, 128, 133, 116, 122, 126, 119, 154, 105, 131, 139, 117, 120, 143, 124, 116, 121, 118, 129, 117, 115, 133, 131, 129, 130, 102, 101, 133, 142, 120, 138, 118, 138, 112, 135, 151, 113, 136, 154, 119, 110, 125, 119, 131, 136, 120, 121, 146, 128, 129, 122, 141, 105, 120, 127, 108, 126, 103, 118, 130, 129, 114, 111, 140, 119, 130, 112, 130, 118, 118, 130, 125, 125, 119, 122, 117, 119, 122, 124, 128, 124, 139, 121, 126, 109, 115, 117, 136, 119, 145, 133, 128, 142, 125, 112, 120, 123, 127, 117, 125, 116, 126, 122, 126, 136, 132, 109, 128, 133, 110, 133, 116, 104, 132, 126, 125, 127, 115, 130, 134, 145, 111, 136, 109, 107, 121, 111, 121, 124, 131, 112, 129, 134, 130, 100, 130, 134, 142, 112, 131, 124, 125, 147, 132, 136, 129, 137, 146, 126, 129, 155, 143, 133, 126, 123, 120, 107, 121, 129, 126, 123, 136, 111, 110, 108, 106, 129, 136, 125, 112, 114, 107, 127, 128, 118, 124, 119, 123, 119, 121, 123, 128, 127, 145, 126, 125, 128, 116, 126, 112, 136, 144, 126, 102, 132, 119, 124, 140, 134, 133, 142, 117, 119, 124, 115, 132, 121, 128, 118, 118, 123, 105, 128, 118, 121, 115, 125, 120, 118, 124, 109, 129, 116, 121, 155, 105, 120, 127, 138, 108, 119, 117, 143, 129, 100, 127, 141, 131, 132, 127, 124, 145, 140, 123, 150, 128, 100, 133, 107, 126, 121, 135, 114, 130, 133, 137, 123, 123, 132, 136, 133, 120, 129, 115, 117, 125, 139, 115, 143, 119, 122, 134, 132, 130, 121, 123, 132, 113, 146, 131, 121, 108, 139, 122, 144, 131, 122, 151, 132, 136, 117, 131, 136, 141, 126, 115, 129, 131, 139, 136, 132, 117, 135, 134, 146, 121, 127, 139, 148, 124, 131, 112, 128, 136, 119, 132, 127, 132, 104, 111, 116, 116, 134, 127, 112, 142, 127, 117, 109, 119, 132, 122, 126, 125, 134, 149, 123, 128, 120, 135, 141, 120, 133, 117, 138, 104, 112, 122, 118, 98, 128, 144, 160, 114, 122, 108, 106, 138, 112, 123, 156, 125, 99, 131, 103, 133, 128, 140, 136, 133, 113, 120, 123, 128, 118, 105, 118, 122, 145, 120, 145, 130, 104, 112, 139, 111, 122, 114, 138, 119, 120, 149, 114, 121, 113, 129, 105, 122, 126, 132, 113, 128, 137, 127, 131, 127, 111, 146, 133, 141, 123, 135, 133, 114, 134, 124, 122, 117, 136, 139, 120, 132, 121, 125, 136, 119, 122, 128, 114, 130, 119, 109, 136, 123, 131, 110, 120, 138, 124, 124, 133, 129, 140, 124, 146, 121, 115, 129, 129, 145, 134, 121, 124, 131, 128, 119, 120, 117, 136, 128, 121, 123, 128, 147, 106, 121, 127, 113, 99, 124, 118, 107, 120, 137, 145, 111, 122, 131, 146, 140, 122, 124, 116, 136, 104, 127, 159, 134, 131, 104, 134, 133, 145, 135, 129, 120, 127, 122, 121, 115, 133, 132, 135, 154, 130, 125, 126, 133, 136, 128, 120, 119, 125, 110, 141, 120, 143, 112, 136, 124, 142, 142, 135, 116, 114, 125, 135, 135, 118, 114, 108, 122, 126, 118, 142, 129, 109, 129, 134, 128, 123, 143, 126, 118, 120, 128, 113, 108, 134, 129, 136, 131, 140, 135, 128, 109, 122, 98, 117, 115, 130, 125, 127, 107, 150, 156, 135, 135, 132, 123, 115, 125, 100, 126, 117, 116, 134, 133, 113, 110, 132, 120, 134, 116, 135, 138, 129, 122, 135, 124, 110, 136, 124, 111, 139, 132, 113, 128, 139, 113, 124, 123, 131, 129, 127, 129, 104, 122, 126, 133, 125, 104, 141, 112, 124, 123, 143, 129, 118, 123, 118, 124, 133, 104, 126, 127, 121, 129, 123, 123, 119, 125, 118, 110, 125, 137, 120, 122, 145, 135, 126, 122, 110, 129, 123, 127, 137, 136, 123, 121, 115, 136, 135, 121, 147, 133, 129, 105, 120, 128, 111, 129, 117, 123, 121, 136, 114, 121, 111, 124, 121, 103, 153, 125, 135, 133, 113, 143, 124, 124, 119, 117, 125, 117, 107, 127, 118, 121, 137, 135, 136, 115, 127, 126, 109, 135, 126, 120, 120, 142, 97, 131, 115, 105, 133, 126, 124, 113, 105, 116, 104, 123, 127, 129, 118, 125, 119, 126, 113, 129, 120, 113, 128, 108, 143, 130, 122, 119, 123, 143, 121, 128, 118, 105, 123, 127, 149, 115, 131, 127, 131, 133, 107, 135, 131, 107, 125, 134, 126, 125, 143, 122, 135, 126, 112, 122, 119, 134, 109, 128, 125, 126, 119, 97, 123, 125, 130, 112, 147, 133, 122, 108, 101, 119, 110, 112, 130, 138, 143, 130, 129, 122, 116, 128, 149, 148, 138, 127, 129, 118, 123, 131, 136, 122, 140, 105, 121, 108, 119, 140, 122, 130, 123, 126, 134, 106, 132, 128, 121, 134, 128, 137, 124, 139, 154, 130, 124, 138, 109, 138, 140, 143, 118, 105, 118, 117, 130, 138, 137, 142, 131, 117, 126, 131, 131, 127, 144, 130, 126, 123, 127, 144, 130, 120, 126, 123, 123, 138, 124, 120, 137, 120, 132, 135, 117, 119, 104, 124, 123, 163, 112, 133, 137, 124, 128, 130, 127, 111, 132, 143, 125, 123, 117, 120, 116, 127, 131, 138, 115, 131, 114, 126, 114, 119, 134, 125, 124, 121, 126, 126, 129, 119, 125, 139, 126, 120, 132, 117, 120, 119, 130, 136, 106, 138, 130, 129, 128, 133, 134, 118, 125, 116, 105, 116, 123, 139, 131, 128, 135, 118, 132, 116, 129, 121, 131, 133, 132, 125, 123, 115, 118, 127, 134, 153, 139, 132, 116, 132, 149, 107, 124, 135, 115, 119, 120, 142, 123, 126, 120, 132, 115, 134, 128, 117, 128, 120, 123, 122, 96, 102, 116, 134, 127, 114, 123, 121, 127, 123, 121, 119, 122, 130, 118, 128, 123, 120, 135, 127, 137, 117, 135, 138, 109, 129, 138, 125, 108, 121, 128, 131, 138, 128, 126, 116, 108, 120, 144, 126, 127, 137, 129, 119, 121, 122, 131, 117, 128, 132, 131, 113, 120, 121, 122, 140, 123, 109, 132, 143, 120, 132, 113, 96, 139, 129, 111, 113, 113, 124, 114, 103, 123, 133, 121, 128, 131, 120, 120, 123, 128, 134, 121, 125, 141, 130, 117, 119, 121, 129, 143, 137, 126, 102, 130, 132, 131, 119, 130, 140, 138, 128, 122, 138, 115, 117, 108, 111, 124, 121, 110, 127, 117, 123, 118, 121, 110, 111, 152, 120, 130, 135, 130, 131, 135, 112, 138, 108, 111, 123, 128, 141, 130, 114, 131, 124, 119, 129, 136, 125, 128, 148, 128, 124, 135, 132, 130, 114, 141, 130, 121, 114, 122, 106, 119, 122, 132, 121, 138, 122, 117, 115, 120, 122, 123, 128, 135, 129, 130, 116, 129, 143, 116, 144, 130, 146, 124, 126, 114, 141, 125, 124, 130, 112, 132, 108, 135, 118, 117, 128, 115, 124, 114, 127, 120, 115, 133, 114, 126, 119, 151, 124, 136, 134, 105, 116, 123, 134, 136, 142, 151, 120, 132, 116, 126, 136, 126, 126, 125, 119, 131, 125, 124, 115, 128, 142, 132, 117, 143, 131, 106, 117, 113, 156, 137, 120, 129, 109, 119, 114, 114, 119, 124, 111, 136, 120, 82, 139, 128, 117, 123, 131, 114, 106, 117, 129, 133, 113, 137, 124, 120, 130, 147, 124, 129, 121, 129, 134, 112, 123, 127, 132, 120, 108, 115, 139, 136, 125, 144, 140, 129, 129, 143, 120, 126, 117, 115, 152, 128, 121, 133, 127, 126, 117, 131, 119, 129, 136, 117, 126, 116, 135, 119, 137, 149, 138, 134, 133, 116, 121, 143, 129, 113, 130, 124, 143, 127, 135, 134, 130, 117, 142, 124, 135, 107, 101, 143, 130, 116, 122, 132, 126, 141, 123, 130, 119, 130, 127, 129, 126, 132, 138, 134, 114, 126, 125, 125, 138, 124, 142, 136, 123, 125, 118, 117, 134, 133, 129, 149, 136, 99, 155, 121, 147, 105, 131, 138, 122, 129, 147, 141, 124, 121, 119, 135, 138, 120, 131, 125, 128, 129, 126, 130, 120, 110, 111, 126, 122, 116, 125, 125, 129, 111, 119, 133, 133, 118, 135, 106, 120, 123, 133, 130, 117, 117, 120, 129, 112, 121, 126, 138, 132, 135, 138, 124, 134, 120, 118, 121, 127, 126, 115, 149, 129, 127, 146, 112, 142, 115, 127, 112, 124, 123, 109, 129, 97, 114, 124, 136, 123, 107, 134, 108, 131, 136, 133, 123, 124, 118, 125, 138, 124, 127, 104, 135, 126, 118, 136, 127, 125, 113, 131, 116, 127, 112, 127, 119, 130, 128, 121, 130, 131, 113, 121, 127, 108, 114, 116, 133, 122, 123, 142, 135, 133, 119, 130, 146, 136, 133, 110, 131, 123, 132, 130, 158, 130, 111, 126, 149, 117, 147, 128, 121, 131, 130, 124, 146, 120, 126, 129, 156, 138, 118, 112, 121, 124, 142, 123, 116, 110, 118, 127, 122, 114, 147, 104, 121, 129, 105, 125, 129, 122, 133, 117, 132, 144, 120, 131, 136, 131, 138, 129, 120, 109, 138, 120, 112, 111, 141, 107, 119, 125, 120, 120, 131, 135, 123, 139, 118, 127, 126, 109, 127, 120, 125, 122, 140, 141, 117, 142, 116, 114, 107, 121, 126, 138, 133, 112, 118, 133, 141, 126, 118, 133, 147, 131, 120, 148, 135, 124, 128, 114, 122, 120, 148, 131, 129, 131, 109, 113, 131, 146, 114, 125, 115, 141, 143, 128, 133, 119, 138, 133, 120, 122, 137, 123, 119, 118, 120, 108, 135, 133, 112, 128, 125, 131, 136, 89, 144, 108, 125, 130, 133, 115, 128, 137, 127, 126, 121, 125, 131, 125, 138, 121, 108, 131, 126, 124, 128, 124, 142, 135, 132, 136, 144, 123, 123, 132, 123, 122, 116, 135, 135, 124, 117, 104, 127, 144, 120, 128, 109, 140, 126, 127, 114, 129, 149, 132, 139, 125, 130, 122, 146, 121, 128, 126, 127, 125, 123, 118, 141, 124, 137, 109, 127, 127, 126, 137, 117, 121, 120, 124, 118, 109, 122, 122, 121, 140, 100, 119, 141, 97, 123, 144, 116, 121, 119, 130, 112, 107, 139, 133, 117, 104, 113, 117, 143, 111, 123, 131, 123, 128, 128, 98, 115, 135, 158, 124, 114, 124, 122, 121, 140, 103, 135, 108, 115, 117, 137, 122, 123, 124, 112, 127, 142, 119, 113, 119, 123, 137, 135, 133, 128, 139, 118, 139, 130, 123, 138, 138, 121, 127, 131, 141, 123, 133, 116, 117, 124, 125, 120, 140, 116, 145, 124, 120, 117, 123, 112, 136, 127, 143, 131, 116, 130, 113, 112, 114, 116, 128, 127, 134, 129, 115, 133, 124, 132, 128, 109, 119, 129, 112, 122, 120, 136, 140, 118, 127, 121, 137, 104, 121, 129, 112, 132, 119, 135, 117, 121, 137, 116, 136, 108, 139, 103, 123, 121, 117, 139, 135, 127, 134, 129, 137, 135, 124, 130, 124, 139, 127, 130, 144, 148, 119, 112, 131, 105, 134, 133, 121, 131, 120, 138, 144, 140, 134, 128, 139, 133, 124, 124, 129, 137, 100, 120, 136, 137, 130, 128, 131, 136, 112, 117, 127, 116, 137, 119, 132, 120, 131, 129, 143, 125, 134, 117, 139, 120, 119, 128, 111, 116, 117, 132, 113, 125, 128, 136, 128, 120, 127, 126, 115, 139, 121, 131, 124, 109, 113, 131, 127, 136, 116, 124, 121, 133, 126, 134, 141, 122, 116, 125, 142, 133, 111, 129, 112, 119, 117, 122, 135, 114, 121, 138, 136, 115, 118, 115, 131, 135, 112, 135, 150, 133, 113, 140, 132, 121, 119, 115, 137, 114, 111, 139, 105, 117, 120, 121, 100, 131, 109, 154, 127, 134, 111, 120, 137, 145, 125, 115, 110, 130, 99, 123, 134, 129, 140, 109, 117, 126, 134, 121, 112, 122, 129, 144, 120, 126, 126, 119, 122, 131, 132, 114, 115, 118, 113, 143, 124, 118, 119, 125, 141, 119, 142, 117, 135, 111, 123, 115, 126, 135, 134, 129, 112, 128, 128, 118, 128, 140, 120, 118, 150, 123, 152, 127, 122, 120, 126, 142, 116, 121, 115, 121, 110, 132, 127, 120, 124, 130, 124, 138, 112, 129, 126, 138, 113, 147, 111, 123, 114, 134, 145, 130, 137, 140, 109, 124, 118, 111, 125, 112, 118, 119, 135, 125, 127, 98, 123, 140, 123, 127, 130, 130, 124, 130, 114, 119, 128, 123, 116, 110, 117, 139, 134, 125, 121, 122, 127, 121, 122, 115, 149, 123, 122, 127, 144, 127, 139, 117, 117, 117, 133, 143, 127, 136, 137, 124, 123, 128, 112, 122, 121, 121, 124, 135, 132, 118, 145, 148, 139, 124, 107, 102, 106, 127, 102, 132, 122, 123, 129, 77, 127, 120, 139, 141, 124, 122, 88, 117, 116, 121, 117, 104, 117, 115, 125, 128, 128, 136, 119, 129, 120, 128, 132, 119, 119, 131, 126, 105, 121, 133, 117, 132, 126, 127, 131, 131, 155, 123, 109, 137, 121, 125, 127, 118, 134, 124, 109, 132, 114, 128, 139, 131, 139, 127, 133, 112, 129, 137, 118, 125, 130, 154, 134, 123, 114, 147, 115, 120, 116, 143, 121, 108, 99, 110, 130, 110, 133, 134, 131, 127, 116, 114, 117, 119, 122, 139, 136, 141, 116, 123, 120, 123, 118, 116, 123, 136, 140, 133, 124, 139, 126, 125, 120, 104, 121, 112, 119, 157, 131, 120, 121, 96, 108, 137, 108, 131, 135, 104, 106, 127, 120, 133, 133, 129, 120, 107, 128, 125, 117, 116, 131, 129, 136, 121, 122, 116, 118, 128, 113, 115, 109, 116, 119, 108, 133, 144, 132, 125, 138, 132, 137, 116, 113, 129, 115, 117, 124, 132, 129, 124, 120, 123, 115, 129, 130, 127, 120, 128, 121, 127, 147, 134, 131, 126, 119, 119, 140, 123, 118, 117, 129, 123, 142, 123, 108, 128, 123, 113, 113, 121, 117, 128, 132, 113, 121, 120, 153, 127, 111, 129, 120, 134, 115, 99, 136, 91, 133, 100, 101, 136, 112, 120, 125, 144, 121, 140, 110, 130, 128, 112, 119, 116, 117, 125, 131, 149, 104, 123, 126, 121, 140, 124, 121, 133, 129, 128, 132, 121, 116, 126, 118, 124, 107, 131, 128, 119, 114, 126, 104, 140, 124, 125, 138, 129, 151, 130, 112, 126, 133, 127, 120, 134, 129, 118, 109, 111, 141, 133, 113, 109, 112, 121, 119, 116, 125, 136, 122, 132, 95, 135, 112, 105, 121, 113, 131, 128, 138, 130, 124, 116, 116, 131, 145, 127, 122, 133, 139, 125, 150, 128, 107, 117, 142, 129, 116, 131, 123, 131, 125, 133, 143, 118, 122, 113, 133, 103, 115, 138, 109, 132, 130, 136, 121, 132, 112, 137, 124, 134, 124, 137, 121, 131, 122, 107, 131, 139, 114, 122, 149, 137, 116, 116, 115, 113, 136, 137, 112, 117, 125, 132, 145, 120, 115, 136, 122, 119, 128, 122, 147, 124, 128, 152, 120, 120, 107, 131, 123, 133, 127, 118, 113, 129, 131, 134, 146, 109, 102, 135, 106, 110, 96, 105, 138, 126, 97, 116, 113, 119, 138, 115, 122, 129, 126, 105, 122, 117, 122, 128, 138, 127, 115, 128, 118, 125, 124, 127, 141, 121, 119, 114, 136, 115, 124, 118, 117, 127, 107, 122, 136, 121, 116, 134, 115, 128, 103, 131, 114, 135, 125, 124, 137, 128, 126, 133, 127, 112, 139, 128, 123, 136, 114, 122, 112, 130, 116, 142, 120, 144, 134, 125, 108, 125, 124, 127, 113, 139, 140, 117, 133, 106, 128, 118, 121, 136, 136, 132, 111, 138, 132, 151, 115, 127, 117, 115, 115, 124, 121, 116, 124, 137, 131, 123, 135, 120, 116, 139, 125, 127, 129, 121, 130, 106, 110, 129, 129, 117, 135, 125, 121, 134, 115, 124, 117, 107, 118, 114, 118, 114, 112, 118, 108, 119, 124, 126, 123, 128, 117, 127, 117, 122, 134, 107, 117, 110, 115, 119, 124, 143, 131, 124, 118, 125, 119, 125, 125, 139, 137, 117, 121, 117, 141, 146, 115, 143, 110, 116, 137, 113, 110, 152, 118, 113, 137, 123, 126, 146, 111, 124, 114, 132, 121, 118, 127, 130, 125, 145, 134, 122, 125, 139, 120, 129, 119, 132, 109, 107, 135, 117, 135, 111, 130, 129, 122, 123, 134, 133, 125, 133, 138, 130, 116, 100, 119, 119, 137, 127, 112, 116, 117, 123, 116, 128, 100, 123, 123, 133, 115, 126, 139, 131, 143, 134, 131, 119, 131, 144, 115, 119, 123, 109, 108, 133, 129, 113, 141, 110, 129, 116, 124, 115, 120, 124, 150, 148, 125, 116, 117, 129, 131, 124, 146, 115, 115, 125, 132, 120, 128, 122, 126, 122, 133, 134, 119, 137, 123, 133, 140, 130, 122, 126, 126, 110, 127, 137, 124, 131, 119, 133, 124, 119, 101, 136, 134, 107, 118, 132, 138, 111, 132, 111, 109, 132, 130, 132, 119, 126, 122, 142, 133, 116, 145, 122, 117, 134, 114, 136, 132, 126, 132, 128, 134, 140, 113, 103, 125, 116, 121, 123, 106, 125, 115, 124, 131, 125, 134, 116, 126, 113, 142, 110, 126, 139, 131, 131, 136, 115, 128, 123, 105, 138, 119, 140, 125, 110, 122, 117, 124, 113, 131, 115, 109, 119, 120, 123, 96, 129, 117, 149, 124, 138, 111, 136, 127, 133, 113, 125, 129, 126, 139, 117, 131, 128, 143, 112, 117, 114, 131, 128, 127, 112, 125, 111, 122, 119, 121, 116, 122, 116, 136, 127, 131, 139, 125, 131, 105, 99, 125, 144, 136, 120, 125, 119, 115, 115, 122, 130, 121, 126, 153, 125, 122, 116, 125, 112, 112, 111, 119, 157, 133, 123, 131, 126, 123, 105, 138, 123, 141, 132, 143, 123, 124, 104, 131, 119, 136, 119, 150, 135, 121, 114, 120, 117, 142, 142, 114, 111, 106, 119, 124, 108, 146, 137, 122, 121, 128, 123, 136, 141, 120, 116, 127, 100, 123, 129, 137, 110, 117, 120, 111, 152, 123, 142, 127, 134, 119, 105, 133, 138, 123, 124, 129, 133, 124, 113, 128, 129, 150, 128, 118, 129, 126, 111, 128, 123, 124, 130, 118, 156, 132, 122, 122, 130, 130, 129, 111, 122, 118, 111, 117, 109, 141, 107, 129, 130, 108, 118, 116, 129, 121, 123, 120, 122, 116, 140, 137, 124, 108, 123, 119, 127, 131, 127, 122, 132, 137, 127, 120, 137, 128, 120, 120, 120, 116, 108, 120, 118, 122, 114, 96, 111, 126, 137, 109, 114, 111, 125, 122, 138, 134, 128, 136, 131, 121, 121, 145, 126, 132, 113, 124, 112, 136, 124, 122, 122, 106, 122, 122, 144, 128, 126, 107, 134, 134, 137, 124, 102, 111, 137, 128, 112, 130, 145, 133, 122, 111, 133, 127, 120, 120, 134, 146, 126, 114, 144, 130, 121, 121, 127, 115, 128, 111, 131, 128, 138, 147, 134, 123, 111, 115, 136, 128, 142, 146, 150, 142, 124, 142, 134, 110, 112, 107, 134, 114, 142, 84, 130, 142, 131, 120, 131, 128, 112, 144, 124, 116, 132, 135, 111, 113, 117, 121, 124, 117, 131, 149, 139, 129, 126, 111, 134, 131, 114, 127, 121, 123, 143, 110, 131, 141, 137, 128, 136, 139, 131, 119, 119, 132, 135, 123, 121, 129, 124, 132, 123, 130, 144, 137, 134, 116, 115, 118, 144, 133, 115, 139, 110, 132, 130, 108, 122, 132, 121, 134, 139, 116, 134, 111, 109, 132, 126, 137, 127, 127, 115, 120, 134, 112, 118, 110, 116, 120, 110, 129, 127, 127, 120, 127, 121, 120, 110, 128, 132, 143, 123, 127, 127, 131, 116, 114, 134, 137, 126, 140, 127, 125, 128, 124, 130, 120, 116, 138, 132, 111, 129, 140, 121, 125, 125, 123, 130, 148, 138, 127, 128, 125, 129, 133, 119, 115, 119, 120, 127, 121, 136, 124, 140, 131, 151, 127, 121, 129, 118, 142, 133, 127, 108, 119, 125, 133, 134, 128, 127, 123, 136, 144, 135, 138, 118, 93, 136, 138, 122, 135, 113, 128, 119, 116, 120, 130, 149, 118, 121, 124, 143, 122, 122, 134, 140, 118, 127, 125, 125, 124, 120, 128, 132, 125, 112, 128, 112, 133, 134, 127, 140, 124, 121, 130, 126, 135, 137, 108, 128, 126, 135, 131, 129, 133, 138, 124, 126, 134, 129, 110, 133, 120, 133, 127, 125, 110, 125, 145, 136, 108, 136, 128, 129, 113, 135, 106, 123, 125, 128, 124, 113, 124, 123, 151, 122, 123, 131, 150, 134, 142, 117, 122, 117, 125, 120, 122, 124, 147, 124, 126, 136, 125, 127, 130, 119, 120, 136, 164, 138, 113, 118, 140, 134, 120, 141, 125, 106, 122, 98, 121, 109, 93, 135, 113, 128, 119, 133, 126, 130, 125, 122, 134, 125, 126, 114, 138, 138, 116, 127, 102, 123, 112, 138, 115, 135, 130, 133, 132, 149, 113, 128, 119, 120, 112, 122, 132, 132, 115, 129, 111, 135, 113, 136, 129, 110, 129, 124, 123, 131, 127, 112, 128, 123, 112, 110, 115, 115, 121, 138, 127, 89, 125, 105, 125, 117, 121, 122, 122, 127, 123, 121, 128, 123, 138, 127, 121, 103, 129, 128, 124, 119, 129, 130, 132, 118, 130, 126, 123, 146, 135, 139, 129, 142, 123, 118, 125, 110, 112, 130, 128, 123, 103, 117, 120, 132, 102, 132, 112, 124, 127, 138, 134, 128, 116, 136, 107, 118, 128, 135, 123, 122, 110, 132, 129, 131, 143, 115, 130, 139, 112, 119, 114, 130, 124, 133, 140, 132, 119, 133, 143, 117, 133, 126, 116, 120, 112, 133, 119, 147, 135, 125, 119, 136, 110, 162, 122, 126, 126, 111, 130, 126, 128, 118, 110, 118, 124, 115, 128, 134, 133, 118, 123, 143, 115, 128, 114, 139, 129, 123, 120, 132, 126, 108, 107, 117, 124, 120, 121, 131, 128, 134, 114, 131, 126, 147, 127, 112, 124, 126, 127, 128, 127, 122, 142, 129, 117, 119, 122, 140, 150, 121, 107, 120, 105, 123, 113, 131, 120, 115, 123, 119, 116, 116, 110, 106, 113, 119, 113, 136, 143, 130, 125, 103, 134, 115, 137, 150, 130, 135, 127, 119, 122, 129, 122, 132, 121, 131, 132, 120, 98, 122, 113, 138, 120, 115, 130, 138, 134, 126, 130, 139, 141, 109, 121, 116, 106, 121, 124, 124, 111, 121, 121, 129, 145, 123, 122, 129, 122, 117, 128, 132, 128, 114, 120, 122, 139, 132, 129, 125, 119, 128, 130, 119, 119, 116, 114, 120, 138, 116, 143, 142, 112, 125, 100, 128, 122, 122, 107, 124, 146, 116, 133, 124, 116, 128, 117, 125, 122, 115, 139, 142, 132, 110, 110, 128, 133, 113, 121, 129, 129, 130, 136, 112, 134, 123, 118, 135, 111, 122, 114, 117, 116, 118, 102, 133, 121, 127, 133, 125, 128, 132, 110, 139, 140, 116, 133, 114, 114, 127, 114, 124, 126, 108, 127, 133, 137, 120, 114, 148, 142, 119, 110, 111, 144, 109, 134, 141, 134, 134, 122, 137, 122, 117, 128, 137, 124, 124, 110, 116, 123, 112, 122, 137, 128, 111, 120, 110, 146, 129, 131, 124, 115, 117, 123, 111, 135, 130, 133, 144, 126, 112, 109, 114, 124, 116, 116, 131, 137, 115, 113, 128, 133, 130, 120, 115, 126, 114, 128, 122, 125, 127, 130, 139, 129, 118, 127, 139, 123, 123, 134, 149, 110, 138, 126, 128, 121, 115, 131, 129, 142, 133, 126, 119, 129, 139, 131, 122, 128, 115, 121, 120, 130, 124, 143, 161, 123, 133, 121, 127, 146, 127, 102, 123, 117, 120, 126, 133, 127, 129, 125, 137, 117, 122, 118, 138, 125, 130, 130, 143, 105, 127, 113, 131, 121, 122, 120, 124, 114, 118, 123, 119, 115, 113, 113, 123, 104, 118, 125, 115, 143, 130, 118, 121, 127, 124, 116, 115, 116, 133, 125, 132, 116, 112, 130, 117, 149, 119, 135, 128, 121, 135, 117, 138, 139, 139, 131, 109, 132, 128, 124, 116, 113, 111, 122, 114, 123, 117, 113, 127, 108, 136, 126, 135, 126, 139, 111, 134, 115, 124, 114, 131, 128, 107, 132, 121, 122, 141, 105, 117, 123, 126, 139, 141, 111, 128, 115, 127, 138, 122, 126, 126, 121, 117, 126, 123, 125, 146, 143, 127, 109, 124, 143, 131, 116, 129, 117, 128, 132, 115, 127, 120, 112, 118, 138, 132, 135, 127, 140, 123, 127, 128, 132, 126, 126, 131, 132, 116, 122, 126, 139, 120, 120, 113, 117, 113, 138, 108, 125, 131, 131, 138, 137, 135, 131, 144, 119, 137, 131, 127, 128, 128, 120, 123, 117, 115, 129, 132, 117, 108, 108, 121, 124, 114, 118, 134, 125, 132, 128, 135, 131, 132, 123, 129, 115, 113, 118, 108, 123, 125, 112, 129, 127, 129, 133, 146, 124, 128, 127, 107, 114, 118, 121, 139, 126, 115, 133, 124, 118, 125, 122, 132, 116, 126, 116, 124, 140, 105, 134, 120, 139, 135, 115, 123, 138, 138, 138, 125, 124, 119, 117, 120, 122, 135, 120, 139, 122, 129, 119, 123, 125, 133, 138, 112, 98, 125, 151, 161, 132, 116, 122, 132, 106, 127, 132, 130, 135, 149, 142, 132, 114, 107, 125, 117, 138, 134, 132, 127, 129, 134, 142, 124, 111, 125, 126, 132, 131, 125, 128, 121, 126, 142, 121, 121, 137, 124, 128, 139, 125, 122, 125, 134, 125, 133, 135, 121, 129, 139, 124, 134, 127, 132, 118, 132, 143, 127, 140, 130, 133, 130, 124, 126, 125, 121, 132, 120, 119, 122, 137, 115, 138, 133, 112, 134, 122, 148, 121, 130, 118, 116, 116, 138, 124, 117, 123, 148, 141, 127, 128, 151, 130, 128, 117, 128, 143, 133, 124, 136, 128, 124, 126, 100, 125, 122, 124, 140, 138, 129, 127, 138, 135, 124, 138, 119, 115, 126, 123, 132, 128, 113, 135, 115, 132, 132, 130, 119, 121, 115, 126, 118, 136, 114, 119, 119, 122, 139, 120, 123, 140, 123, 122, 127, 137, 122, 124, 123, 139, 133, 135, 118, 140, 132, 119, 120, 135, 118, 119, 115, 146, 126, 123, 121, 122, 122, 124, 121, 123, 140, 129, 148, 103, 120, 133, 144, 128, 116, 107, 123, 118, 113, 119, 125, 122, 112, 125, 132, 125, 125, 126, 135, 146, 135, 114, 119, 131, 117, 135, 127, 133, 144, 129, 112, 129, 124, 123, 106, 145, 138, 138, 114, 95, 130, 125, 123, 133, 116, 129, 129, 145, 123, 136, 114, 126, 122, 122, 130, 123, 114, 127, 121, 147, 131, 132, 128, 129, 117, 119, 139, 129, 108, 129, 136, 120, 111, 127, 115, 135, 133, 96, 135, 127, 130, 133, 146, 135, 118, 106, 138, 128, 126, 126, 106, 113, 124, 144, 134, 131, 135, 119, 130, 126, 131, 135, 121, 122, 120, 122, 138, 130, 134, 128, 126, 124, 136, 120, 126, 127, 131, 123, 116, 127, 115, 125, 125, 136, 131, 121, 104, 121, 122, 118, 129, 125, 139, 118, 121, 123, 126, 129, 118, 120, 115, 118, 122, 130, 124, 112, 140, 108, 120, 128, 142, 111, 132, 135, 132, 109, 122, 142, 143, 126, 113, 116, 130, 126, 132, 124, 134, 126, 117, 128, 148, 146, 138, 127, 119, 128, 127, 141, 105, 113, 111, 123, 119, 141, 123, 123, 108, 130, 117, 130, 128, 131, 141, 115, 125, 127, 116, 120, 124, 130, 128, 119, 119, 133, 134, 129, 123, 123, 131, 135, 116, 117, 114, 120, 114, 122, 119, 134, 125, 141, 125, 135, 145, 118, 111, 141, 124, 143, 117, 132, 121, 132, 122, 113, 130, 121, 125, 120, 120, 125, 118, 143, 119, 124, 131, 118, 117, 134, 122, 121, 125, 114, 126, 124, 129, 145, 127, 119, 122, 115, 123, 119, 119, 131, 115, 127, 122, 130, 128, 127, 117, 124, 110, 141, 117, 131, 107, 133, 119, 133, 135, 118, 124, 113, 122, 131, 120, 138, 109, 113, 135, 115, 150, 126, 116, 119, 117, 99, 123, 136, 119, 117, 109, 127, 105, 127, 98, 122, 118, 151, 134, 124, 133, 124, 143, 135, 134, 138, 116, 107, 115, 105, 125, 131, 108, 119, 116, 111, 138, 118, 128, 130, 116, 103, 119, 116, 122, 134, 136, 128, 122, 119, 114, 102, 138, 126, 123, 117, 122, 138, 136, 125, 113, 130, 125, 120, 138, 130, 130, 132, 124, 123, 125, 127, 124, 135, 111, 115, 114, 110, 138, 125, 134, 124, 130, 118, 126, 131, 120, 144, 126, 127, 130, 118, 151, 137, 110, 124, 106, 119, 130, 130, 129, 133, 127, 122, 122, 119, 121, 126, 116, 109, 134, 134, 140, 118, 108, 117, 113, 126, 147, 136, 129, 118, 126, 128, 119, 128, 109, 112, 123, 124, 111, 137, 136, 106, 114, 134, 129, 129, 124, 125, 134, 137, 134, 125, 113, 133, 97, 112, 119, 132, 120, 124, 134, 133, 138, 125, 117, 126, 139, 129, 146, 102, 111, 122, 110, 131, 124, 127, 130, 129, 111, 133, 119, 115, 109, 112, 106, 140, 119, 124, 118, 141, 118, 139, 96, 119, 123, 135, 129, 111, 116, 117, 138, 122, 122, 135, 139, 129, 119, 126, 108, 109, 109, 153, 148, 107, 137, 111, 132, 121, 125, 127, 132, 112, 129, 127, 137, 129, 128, 124, 144, 130, 136, 121, 123, 151, 114, 110, 149, 135, 123, 135, 118, 100, 118, 144, 118, 128, 112, 132, 111, 127, 131, 130, 116, 150, 114, 129, 154, 119, 125, 146, 128, 116, 141, 112, 120, 126, 119, 135, 127, 127, 138, 117, 118, 113, 117, 124, 123, 119, 138, 125, 129, 136, 131, 122, 117, 119, 127, 127, 129, 127, 132, 129, 148, 135, 124, 139, 115, 125, 131, 142, 120, 137, 135, 128, 121, 126, 132, 136, 139, 140, 119, 141, 124, 114, 116, 120, 121, 107, 117, 122, 131, 128, 138, 119, 122, 134, 127, 119, 112, 126, 120, 120, 115, 116, 129, 135, 120, 122, 142, 135, 130, 138, 132, 122, 123, 112, 114, 125, 111, 122, 114, 120, 122, 117, 132, 146, 125, 126, 111, 114, 128, 121, 123, 109, 128, 124, 138, 120, 126, 127, 140, 117, 126, 128, 129, 116, 115, 118, 134, 126, 130, 133, 129, 134, 117, 124, 121, 125, 125, 123, 128, 104, 106, 117, 126, 120, 108, 119, 114, 128, 116, 144, 127, 131, 134, 128, 109, 126, 124, 126, 129, 104, 131, 107, 121, 115, 107, 146, 133, 133, 148, 122, 132, 116, 135, 140, 131, 138, 129, 118, 129, 99, 118, 116, 114, 132, 127, 114, 143, 123, 123, 123, 129, 112, 120, 116, 122, 132, 120, 112, 143, 122, 120, 118, 127, 114, 113, 140, 112, 122, 119, 117, 120, 128, 105, 125, 123, 116, 130, 112, 112, 136, 129, 123, 132, 112, 127, 123, 125, 119, 129, 125, 129, 125, 131, 119, 140, 142, 135, 146, 125, 118, 135, 114, 107, 98, 110, 111, 117, 125, 127, 129, 134, 135, 134, 133, 101, 138, 135, 142, 123, 121, 114, 126, 126, 144, 135, 114, 124, 115, 123, 124, 126, 126, 136, 128, 116, 124, 120, 127, 117, 113, 130, 129, 105, 112, 128, 124, 118, 121, 132, 120, 128, 129, 128, 127, 136, 113, 132, 139, 124, 152, 120, 113, 134, 129, 97, 123, 123, 115, 134, 118, 120, 138, 122, 152, 145, 123, 138, 124, 121, 140, 132, 115, 134, 114, 111, 117, 120, 112, 132, 128, 119, 119, 134, 144, 139, 109, 110, 130, 134, 140, 115, 138, 127, 133, 119, 111, 125, 134, 120, 120, 121, 125, 111, 133, 130, 122, 140, 135, 123, 121, 128, 121, 124, 110, 115, 115, 136, 122, 125, 96, 123, 121, 127, 130, 124, 135, 125, 135, 120, 117, 119, 133, 122, 123, 126, 126, 108, 112, 124, 112, 127, 132, 132, 103, 126, 121, 127, 121, 116, 134, 118, 115, 145, 118, 123, 117, 140, 124, 140, 120, 122, 118, 117, 115, 135, 119, 134, 114, 134, 142, 133, 134, 129, 140, 116, 120, 125, 113, 120, 120, 142, 109, 125, 140, 115, 121, 124, 121, 131, 126, 124, 140, 146, 125, 117, 145, 136, 128, 117, 158, 129, 113, 137, 128, 123, 124, 140, 136, 130, 129, 130, 126, 123, 108, 123, 140, 134, 112, 129, 123, 124, 141, 131, 118, 128, 120, 113, 144, 116, 134, 121, 127, 126, 119, 127, 108, 142, 130, 109, 128, 143, 113, 120, 121, 142, 123, 125, 118, 116, 117, 146, 147, 131, 120, 120, 129, 119, 118, 127, 124, 116, 130, 134, 140, 123, 127, 128, 126, 122, 128, 146, 119, 120, 150, 113, 126, 146, 125, 129, 122, 116, 119, 118, 135, 130, 152, 132, 139, 133, 129, 120, 131, 139, 134, 121, 130, 145, 132, 131, 125, 137, 129, 127, 137, 114, 121, 136, 126, 113, 140, 117, 114, 114, 125, 125, 135, 133, 104, 120, 132, 138, 125, 118, 126, 125, 110, 119, 98, 119, 114, 129, 144, 115, 134, 128, 122, 138, 111, 127, 129, 151, 124, 127, 138, 127, 125, 150, 117, 111, 131, 129, 132, 125, 119, 120, 110, 111, 112, 109, 123, 122, 122, 116, 141, 130, 125, 139, 110, 129, 124, 128, 116, 102, 112, 103, 128, 129, 121, 125, 121, 113, 104, 112, 129, 108, 139, 127, 127, 145, 132, 119, 116, 126, 138, 109, 104, 149, 129, 121, 148, 137, 134, 131, 125, 140, 129, 126, 126, 110, 139, 125, 126, 113, 123, 122, 127, 125, 117, 116, 127, 148, 131, 128, 123, 128, 119, 110, 127, 120, 117, 114, 113, 131, 132, 116, 118, 128, 126, 122, 134, 121, 129, 132, 119, 123, 119, 122, 143, 115, 128, 115, 121, 122, 128, 129, 139, 136, 113, 139, 129, 119, 123, 124, 133, 145, 136, 137, 132, 119, 134, 135, 129, 114, 138, 116, 125, 120, 122, 118, 131, 131, 118, 145, 144, 132, 134, 115, 119, 123, 147, 129, 126, 122, 116, 124, 115, 136, 126, 129, 134, 135, 112, 141, 135, 120, 115, 114, 114, 118, 131, 127, 117, 140, 129, 128, 112, 125, 145, 120, 123, 126, 118, 142, 128, 133, 121, 132, 134, 117, 115, 138, 128, 126, 149, 129, 134, 122, 105, 134, 124, 144, 123, 137, 110, 120, 130, 113, 116, 134, 127, 129, 118, 119, 126, 128, 128, 118, 145, 127, 120, 134, 124, 116, 121, 117, 136, 123, 119, 123, 124, 141, 118, 119, 133, 119, 109, 134, 125, 130, 99, 121, 111, 122, 115, 127, 126, 117, 118, 118, 107, 137, 130, 122, 122, 117, 128, 132, 130, 137, 117, 117, 122, 146, 122, 125, 100, 129, 132, 118, 123, 136, 141, 112, 119, 136, 115, 126, 116, 127, 133, 120, 132, 113, 145, 131, 123, 143, 160, 137, 128, 119, 137, 130, 114, 132, 130, 133, 127, 119, 118, 141, 122, 124, 145, 127, 124, 127, 132, 132, 130, 123, 121, 123, 136, 142, 127, 117, 117, 151, 122, 124, 116, 154, 110, 121, 121, 114, 132, 123, 138, 135, 122, 127, 131, 119, 120, 111, 130, 136, 114, 151, 127, 110, 112, 130, 123, 116, 120, 137, 134, 112, 136, 111, 123, 144, 140, 129, 117, 116, 110, 123, 118, 128, 132, 122, 122, 132, 133, 132, 123, 145, 140, 134, 125, 120, 132, 128, 125, 106, 143, 120, 141, 125, 146, 135, 104, 120, 127, 144, 133, 114, 134, 113, 115, 102, 121, 127, 131, 127, 119, 123, 143, 127, 140, 147, 113, 118, 113, 124, 128, 117, 125, 123, 119, 121, 119, 145, 142, 131, 131, 127, 112, 126, 142, 127, 122, 134, 122, 128, 129, 132, 131, 124, 119, 114, 128, 109, 133, 125, 124, 133, 126, 134, 117, 123, 123, 149, 119, 114, 134, 133, 125, 144, 113, 123, 109, 134, 130, 138, 116, 126, 122, 130, 120, 111, 135, 135, 134, 121, 128, 122, 116, 143, 127, 129, 114, 133, 126, 109, 135, 123, 128, 132, 134, 130, 114, 113, 118, 130, 121, 131, 118, 123, 133, 127, 115, 124, 127, 109, 121, 118, 108, 120, 114, 132, 129, 126, 117, 123, 106, 128, 102, 137, 138, 112, 120, 128, 117, 139, 126, 125, 124, 132, 126, 138, 132, 124, 126, 140, 116, 129, 124, 134, 132, 124, 120, 125, 131, 127, 127, 110, 129, 129, 139, 118, 106, 115, 106, 125, 142, 127, 119, 143, 133, 131, 125, 138, 140, 130, 126, 128, 122, 142, 123, 124, 126, 140, 126, 121, 124, 105, 128, 117, 100, 125, 138, 139, 120, 105, 103, 122, 122, 138, 133, 120, 134, 115, 106, 119, 141, 122, 127, 132, 130, 130, 125, 125, 135, 122, 129, 118, 123, 133, 124, 139, 120, 118, 126, 128, 120, 121, 141, 111, 143, 117, 114, 134, 114, 130, 108, 115, 124, 121, 137, 130, 123, 127, 127, 129, 124, 116, 120, 131, 113, 113, 135, 113, 139, 109, 119, 112, 115, 131, 142, 127, 99, 124, 121, 131, 131, 137, 130, 123, 129, 130, 118, 118, 131, 120, 113, 118, 122, 117, 132, 101, 129, 134, 124, 103, 97, 123, 152, 124, 140, 118, 93, 118, 129, 121, 124, 128, 152, 133, 142, 119, 135, 132, 115, 116, 124, 125, 136, 125, 113, 129, 139, 126, 126, 107, 126, 116, 105, 136, 132, 108, 132, 123, 130, 129, 124, 128, 119, 113, 111, 126, 116, 130, 137, 125, 135, 124, 118, 122, 116, 141, 147, 119, 96, 124, 122, 120, 111, 141, 123, 121, 112, 109, 131, 130, 136, 153, 114, 124, 119, 134, 114, 139, 126, 130, 127, 118, 124, 119, 116, 139, 113, 125, 138, 125, 108, 116, 114, 129, 140, 113, 113, 120, 132, 140, 116, 139, 119, 123, 99, 145, 146, 146, 125, 111, 132, 129, 125, 128, 122, 127, 130, 132, 129, 124, 131, 118, 133, 134, 132, 126, 109, 105, 136, 128, 107, 128, 123, 134, 94, 120, 115, 122, 115, 137, 131, 118, 126, 123, 125, 123, 117, 129, 133, 120, 130, 112, 111, 125, 135, 132, 116, 135, 133, 103, 119, 124, 131, 125, 121, 125, 98, 129, 121, 120, 126, 124, 129, 123, 133, 127, 111, 128, 124, 134, 123, 134, 120, 116, 127, 137, 127, 131, 118, 135, 129, 117, 120, 152, 119, 124, 111, 129, 130, 133, 117, 130, 126, 125, 140, 126, 130, 117, 133, 124, 134, 116, 128, 116, 125, 134, 120, 142, 111, 113, 112, 118, 130, 140, 128, 109, 122, 143, 107, 125, 113, 130, 132, 137, 125, 108, 151, 108, 129, 127, 120, 126, 117, 126, 131, 139, 135, 127, 138, 139, 109, 126, 116, 95, 115, 135, 126, 132, 115, 127, 124, 118, 118, 119, 121, 131, 139, 123, 114, 119, 115, 116, 135, 118, 121, 121, 139, 115, 120, 142, 120, 113, 123, 134, 131, 133, 127, 114, 138, 136, 114, 119, 130, 121, 120, 131, 116, 129, 118, 132, 130, 129, 117, 124, 123, 132, 129, 132, 135, 136, 119, 120, 115, 113, 124, 142, 145, 126, 113, 140, 131, 110, 128, 147, 118, 118, 116, 160, 124, 108, 110, 116, 121, 133, 129, 126, 128, 134, 125, 128, 116, 132, 121, 125, 138, 123, 129, 104, 115, 112, 115, 131, 124, 122, 138, 132, 117, 120, 129, 127, 116, 128, 115, 134, 126, 126, 120, 137, 133, 113, 107, 135, 140, 122, 120, 136, 118, 105, 148, 129, 110, 142, 129, 128, 112, 121, 127, 124, 123, 122, 125, 92, 116, 138, 131, 129, 135, 109, 135, 136, 114, 110, 108, 123, 122, 122, 118, 125, 111, 134, 130, 128, 133, 141, 99, 122, 121, 126, 118, 127, 125, 123, 110, 115, 114, 124, 126, 118, 125, 122, 133, 126, 124, 145, 142, 113, 131, 137, 125, 126, 128, 117, 106, 121, 132, 131, 127, 118, 125, 129, 151, 121, 124, 124, 138, 117, 128, 132, 120, 123, 128, 144, 116, 129, 98, 125, 134, 127, 130, 123, 109, 142, 120, 116, 102, 114, 124, 124, 134, 132, 128, 110, 136, 123, 115, 144, 133, 115, 114, 118, 140, 124, 133, 141, 122, 117, 131, 124, 118, 106, 124, 123, 138, 135, 115, 118, 117, 132, 136, 114, 159, 113, 115, 143, 111, 125, 132, 119, 115, 155, 147, 127, 131, 118, 144, 131, 140, 135, 127, 119, 124, 150, 141, 120, 127, 125, 143, 110, 112, 132, 137, 120, 126, 122, 117, 119, 147, 132, 126, 122, 111, 112, 132, 120, 134, 123, 121, 109, 126, 127, 124, 132, 122, 125, 121, 109, 135, 140, 119, 128, 124, 121, 115, 131, 124, 116, 148, 124, 126, 119, 128, 121, 125, 129, 118, 139, 122, 121, 125, 126, 135, 131, 111, 122, 108, 123, 114, 127, 130, 119, 124, 122, 113, 122, 145, 140, 120, 124, 133, 132, 136, 129, 128, 120, 142, 130, 115, 125, 128, 129, 114, 108, 131, 121, 133, 113, 117, 134, 93, 118, 120, 121, 134, 120, 131, 125, 132, 136, 128, 107, 124, 132, 141, 123, 144, 129, 129, 146, 132, 129, 128, 136, 121, 116, 113, 133, 126, 132, 128, 127, 133, 123, 128, 116, 136, 134, 118, 123, 139, 116, 126, 130, 124, 127, 119, 146, 118, 119, 148, 116, 130, 123, 128, 111, 117, 118, 139, 128, 114, 124, 118, 136, 130, 114, 141, 123, 107, 103, 141, 121, 115, 142, 119, 105, 129, 145, 121, 131, 123, 121, 134, 123, 125, 139, 124, 120, 120, 143, 120, 128, 117, 114, 126, 126, 143, 128, 127, 124, 111, 127, 113, 122, 123, 97, 132, 118, 140, 124, 114, 129, 137, 139, 134, 131, 123, 108, 147, 111, 145, 126, 121, 135, 120, 111, 124, 127, 139, 138, 134, 105, 111, 133, 122, 149, 127, 112, 120, 152, 114, 126, 124, 122, 131, 138, 113, 134, 132, 113, 129, 115, 140, 144, 129, 158, 120, 105, 130, 114, 124, 116, 126, 138, 138, 149, 118, 122, 119, 125, 126, 118, 125, 120, 121, 113, 123, 120, 117, 153, 110, 126, 113, 123, 123, 118, 119, 130, 140, 117, 124, 131, 119, 109, 102, 139, 114, 119, 132, 129, 125, 134, 121, 129, 114, 92, 136, 149, 120, 132, 139, 134, 114, 113, 114, 129, 125, 132, 120, 136, 125, 129, 114, 136, 140, 136, 130, 137, 123, 139, 135, 119, 119, 113, 135, 142, 139, 111, 134, 145, 140, 133, 111, 125, 118, 123, 115, 114, 124, 118, 110, 129, 108, 116, 123, 125, 121, 131, 130, 117, 125, 121, 131, 137, 121, 116, 122, 134, 110, 110, 117, 139, 124, 127, 130, 130, 122, 108, 117, 143, 123, 125, 132, 114, 124, 98, 122, 130, 131, 115, 101, 133, 129, 152, 113, 136, 120, 133, 124, 121, 146, 108, 116, 114, 135, 125, 124, 131, 148, 136, 127, 144, 121, 128, 124, 103, 129, 129, 137, 138, 112, 128, 112, 135, 124, 131, 121, 124, 130, 140, 136, 129, 124, 139, 122, 121, 106, 122, 142, 101, 136, 117, 114, 139, 141, 117, 118, 132, 138, 124, 123, 119, 124, 126, 123, 110, 123, 121, 114, 113, 123, 118, 132, 136, 114, 121, 132, 116, 137, 113, 121, 116, 122, 122, 112, 137, 120, 125, 127, 131, 116, 111, 121, 145, 147, 119, 111, 109, 132, 117, 138, 104, 98, 121, 135, 116, 145, 102, 134, 137, 167, 119, 115, 109, 115, 132, 143, 127, 125, 124, 126, 127, 114, 135, 127, 128, 124, 130, 134, 134, 104, 131, 133, 135, 132, 123, 127, 136, 128, 117, 133, 128, 134, 118, 120, 136, 113, 140, 122, 119, 133, 126, 124, 111, 106, 134, 126, 117, 115, 111, 134, 121, 127, 109, 125, 139, 123, 134, 134, 140, 120, 119, 135, 138, 130, 124, 126, 102, 119, 124, 120, 126, 128, 119, 126, 141, 157, 148, 130, 133, 121, 130, 133, 132, 134, 128, 112, 114, 121, 119, 133, 115, 124, 124, 119, 116, 136, 122, 107, 131, 112, 124, 127, 115, 137, 136, 123, 113, 128, 120, 125, 124, 123, 133, 121, 109, 110, 119, 123, 117, 112, 131, 132, 124, 128, 129, 107, 136, 129, 130, 132, 127, 129, 122, 121, 108, 116, 124, 116, 124, 119, 133, 130, 126, 134, 144, 117, 134, 120, 128, 128, 124, 131, 120, 136, 125, 130, 136, 119, 127, 126, 95, 128, 135, 112, 115, 106, 107, 104, 145, 124, 142, 111, 137, 131, 116, 125, 120, 114, 113, 129, 108, 123, 119, 126, 127, 146, 126, 102, 139, 133, 101, 120, 135, 128, 116, 124, 114, 121, 113, 109, 103, 119, 126, 122, 133, 131, 118, 138, 126, 128, 133, 116, 123, 124, 140, 122, 112, 118, 125, 113, 126, 120, 124, 121, 114, 115, 116, 122, 125, 123, 125, 125, 122, 136, 129, 121, 112, 126, 129, 128, 144, 131, 131, 120, 116, 120, 146, 106, 118, 123, 130, 123, 120, 119, 125, 120, 132, 114, 120, 122, 127, 156, 132, 129, 120, 114, 110, 129, 125, 128, 118, 115, 126, 142, 112, 123, 127, 108, 117, 127, 132, 125, 133, 130, 139, 118, 129, 133, 115, 129, 111, 138, 121, 124, 130, 136, 110, 129, 124, 114, 103, 124, 121, 112, 125, 121, 128, 121, 142, 119, 112, 120, 131, 120, 129, 131, 119, 123, 128, 115, 127, 104, 110, 136, 140, 127, 106, 119, 124, 125, 116, 135, 121, 136, 122, 126, 114, 105, 128, 127, 117, 141, 118, 151, 122, 115, 133, 135, 136, 120, 125, 118, 130, 157, 132, 125, 127, 109, 124, 104, 136, 122, 136, 121, 111, 128, 105, 133, 128, 129, 158, 120, 108, 133, 129, 122, 105, 124, 144, 133, 138, 125, 111, 122, 134, 134, 124, 136, 126, 120, 126, 127, 126, 110, 122, 124, 113, 137, 130, 124, 132, 132, 130, 106, 133, 113, 133, 145, 130, 122, 147, 131, 133, 131, 116, 123, 114, 122, 133, 116, 129, 116, 151, 131, 115, 139, 134, 133, 120, 138, 124, 121, 125, 144, 112, 139, 144, 124, 112, 135, 134, 112, 133, 134, 114, 147, 120, 143, 122, 134, 127, 132, 125, 121, 117, 126, 134, 136, 125, 126, 120, 127, 121, 122, 122, 132, 105, 123, 116, 116, 120, 113, 116, 133, 142, 119, 126, 127, 118, 112, 129, 126, 124, 130, 112, 123, 143, 128, 111, 118, 127, 127, 130, 128, 132, 129, 120, 114, 132, 132, 132, 116, 112, 138, 127, 126, 118, 141, 125, 117, 128, 123, 118, 113, 118, 110, 106, 125, 114, 123, 113, 128, 128, 115, 122, 139, 154, 129, 132, 128, 121, 128, 116, 111, 113, 120, 137, 120, 124, 134, 144, 130, 122, 125, 118, 126, 128, 116, 143, 120, 118, 135, 122, 120, 134, 148, 119, 114, 120, 127, 114, 98, 137, 132, 127, 111, 129, 111, 119, 109, 119, 122, 112, 138, 121, 124, 109, 117, 127, 140, 135, 139, 135, 128, 132, 141, 135, 123, 133, 147, 117, 113, 124, 101, 119, 127, 120, 133, 134, 134, 113, 123, 130, 134, 122, 124, 123, 134, 151, 124, 126, 125, 125, 134, 132, 97, 131, 112, 123, 120, 133, 123, 124, 113, 140, 119, 127, 124, 136, 118, 139, 113, 117, 111, 141, 123, 137, 129, 119, 151, 114, 138, 128, 132, 130, 121, 117, 122, 114, 117, 117, 125, 123, 123, 125, 103, 113, 117, 138, 124, 128, 134, 135, 113, 125, 135, 130, 123, 121, 136, 128, 123, 107, 128, 123, 102, 121, 125, 118, 124, 123, 137, 124, 125, 116, 124, 133, 112, 135, 131, 127, 125, 127, 134, 121, 123, 124, 133, 143, 111, 120, 122, 141, 139, 135, 120, 138, 110, 146, 119, 132, 136, 123, 136, 118, 127, 115, 127, 131, 127, 137, 142, 124, 121, 122, 153, 118, 128, 147, 121, 115, 122, 148, 135, 107, 115, 130, 134, 129, 128, 118, 115, 120, 140, 126, 120, 99, 119, 134, 112, 133, 138, 125, 135, 132, 136, 128, 125, 117, 102, 135, 136, 144, 113, 125, 138, 141, 127, 128, 133, 112, 125, 130, 125, 113, 125, 142, 126, 141, 118, 119, 128, 128, 119, 116, 119, 108, 120, 126, 115, 119, 128, 131, 105, 150, 112, 140, 107, 126, 145, 118, 120, 111, 122, 122, 133, 125, 148, 131, 131, 155, 111, 129, 109, 106, 128, 108, 131, 108, 127, 116, 108, 136, 137, 145, 126, 134, 127, 133, 117, 136, 113, 128, 122, 128, 112, 118, 128, 132, 133, 132, 125, 119, 114, 112, 121, 134, 115, 121, 122, 130, 111, 104, 134, 125, 132, 120, 104, 105, 121, 127, 124, 117, 128, 114, 147, 136, 116, 130, 126, 118, 120, 132, 105, 107, 152, 127, 136, 134, 127, 124, 125, 115, 131, 124, 126, 129, 112, 130, 129, 137, 129, 139, 138, 124, 137, 132, 124, 119, 127, 138, 124, 124, 126, 133, 129, 117, 153, 126, 114, 133, 135, 116, 138, 135, 124, 133, 132, 115, 115, 144, 116, 108, 115, 126, 142, 135, 108, 142, 118, 129, 114, 119, 139, 133, 127, 130, 134, 127, 122, 106, 123, 118, 128, 131, 121, 100, 125, 117, 124, 118, 121, 136, 137, 128, 109, 130, 141, 145, 125, 135, 130, 125, 130, 109, 121, 134, 111, 125, 122, 126, 123, 114, 109, 123, 114, 115, 112, 122, 134, 117, 115, 133, 118, 130, 128, 138, 119, 118, 154, 124, 129, 113, 134, 132, 121, 140, 120, 138, 124, 127, 115, 119, 142, 131, 114, 137, 93, 134, 122, 123, 130, 132, 115, 131, 134, 112, 128, 132, 140, 129, 128, 122, 133, 110, 112, 105, 121, 111, 117, 126, 119, 128, 126, 125, 117, 116, 137, 147, 118, 126, 148, 118, 122, 120, 126, 134, 125, 122, 133, 123, 100, 112, 127, 120, 119, 131, 128, 129, 117, 131, 120, 113, 140, 106, 136, 106, 141, 121, 129, 123, 126, 120, 121, 123, 141, 121, 130, 131, 133, 140, 126, 127, 130, 129, 118, 121, 127, 112, 123, 126, 122, 134, 126, 149, 117, 134, 131, 113, 118, 144, 137, 121, 114, 139, 128, 123, 128, 143, 132, 146, 123, 123, 140, 124, 118, 125, 145, 126, 97, 137, 118, 108, 135, 119, 122, 114, 129, 121, 119, 125, 135, 134, 122, 130, 123, 107, 111, 124, 131, 104, 123, 127, 109, 129, 130, 113, 137, 121, 132, 101, 126, 133, 123, 135, 131, 137, 125, 130, 113, 126, 129, 128, 115, 124, 134, 129, 136, 130, 126, 129, 134, 136, 117, 108, 130, 118, 125, 127, 119, 137, 134, 165, 131, 121, 119, 121, 132, 141, 136, 122, 123, 137, 135, 128, 127, 124, 134, 135, 115, 132, 163, 124, 104, 117, 122, 111, 120, 137, 123, 132, 127, 129, 130, 137, 114, 117, 128, 120, 122, 124, 123, 133, 142, 112, 139, 122, 124, 119, 118, 132, 120, 137, 116, 116, 114, 146, 116, 123, 130, 133, 115, 119, 118, 136, 126, 115, 117, 114, 113, 130, 123, 134, 119, 137, 119, 108, 123, 128, 118, 130, 124, 121, 120, 124, 152, 130, 117, 106, 119, 142, 108, 136, 114, 125, 123, 120, 145, 120, 111, 131, 123, 107, 130, 106, 134, 125, 118, 128, 110, 135, 110, 131, 140, 130, 128, 113, 142, 133, 114, 138, 135, 130, 119, 123, 137, 124, 144, 123, 109, 138, 123, 113, 122, 110, 119, 113, 119, 125, 147, 133, 136, 130, 127, 111, 130, 136, 127, 115, 116, 119, 116, 142, 124, 134, 140, 130, 134, 118, 113, 128, 132, 128, 134, 138, 116, 110, 119, 123, 124, 120, 131, 140, 124, 129, 131, 150, 112, 136, 132, 117, 128, 116, 133, 126, 109, 133, 143, 123, 134, 136, 109, 119, 142, 113, 120, 126, 139, 136, 126, 125, 98, 142, 113, 121, 135, 122, 137, 120, 140, 114, 130, 138, 129, 117, 147, 130, 135, 145, 121, 135, 125, 128, 131, 134, 134, 112, 121, 134, 134, 131, 141, 119, 124, 120, 134, 128, 109, 118, 145, 114, 109, 114, 132, 142, 130, 112, 126, 116, 140, 131, 133, 133, 126, 122, 132, 119, 141, 118, 137, 130, 130, 132, 130, 133, 119, 122, 122, 116, 121, 142, 131, 143, 96, 130, 133, 119, 117, 118, 120, 135, 132, 140, 124, 124, 138, 123, 124, 123, 121, 127, 126, 123, 137, 132, 129, 115, 136, 150, 117, 133, 119, 116, 116, 135, 112, 116, 118, 111, 119, 112, 135, 136, 112, 116, 127, 114, 124, 125, 130, 125, 87, 121, 129, 132, 126, 137, 129, 112, 132, 111, 143, 132, 127, 120, 125, 127, 126, 121, 130, 122, 132, 128, 133, 125, 131, 112, 116, 112, 133, 132, 137, 143, 143, 111, 120, 132, 116, 133, 118, 119, 114, 140, 120, 100, 115, 120, 130, 124, 122, 126, 127, 112, 134, 117, 141, 113, 132, 138, 105, 108, 147, 120, 122, 117, 138, 140, 120, 105, 137, 113, 121, 127, 121, 114, 129, 125, 136, 117, 116, 122, 132, 112, 140, 118, 137, 117, 133, 134, 133, 146, 112, 139, 121, 142, 120, 112, 132, 135, 125, 137, 114, 121, 131, 139, 123, 111, 124, 130, 134, 121, 139, 127, 123, 112, 102, 119, 133, 134, 131, 139, 113, 137, 140, 120, 125, 132, 129, 106, 133, 130, 119, 132, 132, 123, 127, 119, 127, 140, 140, 124, 127, 113, 124, 141, 139, 115, 123, 123, 115, 119, 127, 133, 126, 125, 131, 126, 125, 115, 127, 121, 121, 121, 111, 125, 115, 130, 135, 125, 136, 128, 133, 130, 117, 135, 128, 119, 110, 134, 139, 114, 120, 124, 132, 116, 120, 110, 149, 123, 106, 129, 133, 133, 151, 129, 125, 128, 119, 115, 116, 124, 128, 116, 149, 132, 120, 123, 117, 141, 139, 103, 130, 125, 108, 127, 139, 114, 147, 148, 130, 116, 132, 136, 128, 110, 133, 129, 108, 121, 150, 127, 126, 146, 102, 128, 126, 126, 138, 127, 134, 146, 134, 127, 125, 116, 120, 117, 118, 118, 132, 121, 150, 133, 126, 117, 126, 117, 138, 132, 125, 108, 142, 129, 125, 119, 119, 122, 128, 139, 134, 132, 128, 111, 113, 132, 136, 142, 111, 112, 134, 116, 134, 111, 94, 134, 128, 141, 117, 134, 118, 126, 131, 118, 141, 122, 136, 133, 133, 127, 117, 125, 134, 134, 129, 126, 130, 133, 125, 118, 128, 134, 113, 124, 128, 115, 125, 133, 111, 116, 119, 128, 98, 123, 118, 119, 122, 114, 108, 130, 113, 106, 120, 149, 128, 131, 138, 131, 134, 131, 129, 126, 104, 125, 106, 141, 126, 134, 132, 129, 129, 139, 116, 123, 128, 120, 103, 141, 141, 126, 121, 121, 126, 132, 140, 138, 118, 138, 123, 122, 123, 138, 135, 132, 138, 163, 121, 115, 121, 124, 94, 119, 133, 138, 122, 139, 122, 106, 124, 117, 117, 111, 110, 116, 128, 113, 138, 126, 132, 111, 110, 141, 133, 136, 124, 134, 119, 128, 109, 133, 138, 122, 123, 124, 132, 114, 113, 123, 122, 117, 126, 127, 128, 121, 121, 128, 152, 149, 112, 122, 140, 117, 134, 103, 125, 125, 133, 112, 120, 152, 128, 119, 125, 131, 119, 123, 135, 133, 148, 131, 119, 122, 127, 116, 136, 135, 140, 118, 127, 141, 120, 123, 127, 127, 115, 120, 120, 128, 124, 148, 130, 114, 138, 126, 117, 135, 131, 130, 137, 116, 131, 122, 125, 111, 108, 119, 115, 138, 124, 124, 134, 137, 129, 135, 157, 120, 125, 132, 124, 136, 118, 110, 134, 112, 141, 129, 109, 133, 138, 137, 134, 122, 108, 131, 122, 138, 125, 124, 101, 122, 131, 138, 133, 126, 125, 119, 120, 115, 142, 121, 124, 119, 129, 121, 123, 130, 126, 144, 122, 172, 130, 115, 130, 131, 126, 133, 152, 137, 107, 117, 146, 132, 145, 116, 138, 119, 129, 130, 133, 140, 129, 113, 121, 130, 133, 126, 124, 101, 120, 134, 121, 119, 125, 130, 136, 127, 115, 115, 118, 133, 143, 126, 142, 115, 118, 122, 124, 126, 118, 128, 145, 126, 121, 129, 116, 121, 130, 131, 111, 120, 118, 132, 124, 126, 111, 134, 113, 139, 123, 125, 126, 132, 128, 127, 116, 130, 122, 127, 124, 134, 136, 120, 134, 136, 130, 111, 118, 117, 114, 123, 128, 119, 123, 137, 130, 130, 130, 124, 123, 120, 152, 125, 121, 117, 116, 123, 127, 114, 124, 128, 117, 119, 109, 127, 119, 106, 121, 118, 141, 104, 121, 117, 136, 122, 112, 118, 119, 125, 127, 129, 126, 119, 134, 128, 128, 120, 124, 111, 118, 127, 127, 136, 123, 115, 122, 126, 124, 132, 126, 127, 129, 128, 111, 123, 124, 137, 127, 142, 123, 132, 108, 130, 115, 147, 128, 125, 128, 135, 131, 131, 112, 112, 129, 134, 125, 105, 142, 128, 135, 134, 139, 133, 118, 135, 155, 121, 121, 125, 139, 113, 131, 117, 98, 131, 133, 130, 111, 113, 123, 134, 107, 137, 127, 122, 122, 133, 126, 134, 115, 134, 129, 133, 130, 130, 147, 118, 135, 109, 131, 144, 123, 131, 122, 118, 120, 116, 126, 133, 130, 145, 133, 124, 125, 123, 116, 125, 125, 117, 132, 137, 126, 139, 117, 129, 116, 125, 123, 111, 127, 108, 120, 112, 118, 128, 122, 110, 115, 136, 136, 122, 125, 123, 127, 126, 119, 123, 128, 139, 138, 115, 122, 113, 128, 129, 110, 127, 121, 133, 115, 110, 119, 125, 117, 136, 131, 120, 138, 119, 119, 117, 122, 118, 132, 127, 128, 134, 108, 121, 116, 112, 124, 123, 120, 140, 133, 109, 133, 130, 131, 126, 113, 127, 124, 139, 120, 111, 149, 133, 106, 124, 114, 139, 108, 126, 117, 111, 136, 143, 114, 133, 117, 138, 129, 115, 125, 133, 123, 139, 138, 123, 128, 112, 120, 125, 140, 125, 132, 126, 122, 119, 121, 125, 127, 108, 114, 138, 128, 133, 123, 117, 130, 134, 123, 125, 132, 121, 133, 114, 124, 124, 137, 125, 133, 129, 134, 141, 114, 132, 123, 112, 117, 112, 128, 107, 114, 114, 117, 123, 135, 140, 142, 113, 129, 127, 139, 130, 129, 123, 117, 122, 129, 143, 132, 131, 127, 121, 126, 139, 118, 129, 133, 136, 126, 124, 130, 141, 136, 117, 151, 125, 112, 125, 101, 118, 124, 126, 131, 117, 125, 143, 125, 117, 122, 126, 144, 124, 103, 132, 115, 123, 129, 131, 133, 123, 107, 112, 121, 121, 117, 121, 129, 124, 130, 125, 133, 133, 116, 131, 123, 131, 106, 122, 130, 118, 130, 124, 120, 128, 136, 133, 131, 127, 118, 131, 132, 121, 126, 129, 119, 135, 140, 117, 113, 131, 112, 134, 117, 124, 129, 124, 119, 135, 127, 111, 131, 130, 121, 148, 126, 134, 125, 118, 137, 126, 127, 117, 124, 133, 117, 113, 129, 122, 123, 112, 127, 109, 118, 147, 111, 139, 141, 118, 119, 128, 129, 113, 107, 140, 129, 132, 104, 118, 130, 132, 113, 119, 124, 114, 130, 124, 122, 130, 124, 115, 142, 126, 152, 132, 119, 117, 135, 142, 117, 138, 138, 119, 148, 122, 129, 118, 120, 140, 123, 115, 110, 125, 128, 125, 117, 113, 130, 149, 111, 121, 112, 124, 130, 132, 124, 103, 126, 116, 126, 116, 119, 128, 134, 117, 119, 113, 112, 130, 129, 129, 124, 133, 122, 120, 124, 107, 136, 127, 148, 119, 126, 131, 119, 129, 136, 127, 138, 124, 123, 129, 127, 101, 139, 118, 116, 124, 126, 135, 112, 113, 117, 116, 129, 131, 122, 132, 112, 124, 120, 137, 130, 133, 133, 133, 139, 116, 124, 131, 118, 114, 135, 129, 126, 114, 132, 125, 138, 99, 141, 123, 130, 129, 138, 117, 116, 125, 113, 116, 127, 147, 139, 133, 134, 143, 112, 125, 124, 125, 115, 127, 111, 128, 124, 111, 120, 124, 131, 120, 132, 123, 121, 136, 124, 131, 107, 129, 136, 117, 130, 115, 127, 128, 123, 126, 139, 135, 129, 120, 129, 123, 139, 134, 130, 116, 115, 134, 129, 141, 120, 125, 105, 128, 116, 123, 123, 124, 103, 119, 122, 131, 120, 137, 134, 129, 133, 119, 134, 132, 130, 127, 135, 140, 126, 114, 119, 145, 129, 127, 134, 134, 127, 135, 133, 122, 122, 123, 124, 136, 137, 115, 125, 111, 123, 130, 123, 135, 120, 122, 120, 117, 114, 134, 152, 129, 113, 116, 129, 132, 129, 114, 122, 128, 117, 124, 125, 141, 123, 141, 109, 125, 135, 120, 122, 128, 135, 131, 108, 132, 141, 115, 136, 157, 122, 120, 113, 125, 118, 134, 121, 130, 131, 126, 124, 120, 137, 117, 129, 127, 150, 133, 112, 123, 122, 125, 127, 146, 126, 137, 122, 129, 112, 123, 135, 122, 115, 125, 124, 136, 131, 123, 144, 132, 115, 122, 122, 110, 130, 123, 132, 144, 120, 119, 130, 137, 127, 124, 115, 125, 120, 130, 135, 119, 128, 118, 117, 118, 123, 126, 108, 135, 106, 134, 126, 112, 135, 131, 123, 128, 125, 127, 130, 146, 134, 115, 124, 115, 132, 130, 119, 119, 128, 119, 113, 129, 132, 131, 125, 132, 158, 130, 127, 118, 143, 127, 108, 120, 115, 139, 131, 101, 119, 132, 137, 128, 128, 127, 121, 113, 137, 132, 116, 137, 116, 144, 100, 129, 126, 107, 148, 120, 127, 125, 125, 113, 119, 124, 130, 121, 138, 108, 129, 134, 132, 115, 126, 136, 140, 113, 134, 121, 122, 109, 113, 118, 121, 119, 130, 139, 139, 131, 127, 111, 130, 124, 115, 131, 121, 150, 122, 113, 139, 130, 130, 116, 124, 110, 140, 127, 122, 120, 113, 141, 128, 120, 119, 120, 129, 126, 132, 130, 135, 131, 124, 124, 130, 127, 127, 154, 123, 137, 129, 113, 121, 136, 123, 126, 130, 125, 132, 112, 122, 128, 131, 119, 127, 124, 110, 114, 127, 133, 126, 151, 128, 126, 138, 111, 121, 120, 122, 136, 108, 126, 116, 128, 133, 144, 117, 124, 101, 121, 135, 118, 129, 103, 132, 124, 114, 120, 121, 126, 119, 113, 112, 126, 123, 131, 141, 124, 134, 140, 146, 124, 133, 113, 124, 126, 110, 135, 122, 141, 123, 130, 123, 134, 111, 137, 122, 125, 113, 120, 124, 130, 117, 134, 120, 121, 106, 122, 124, 109, 110, 133, 104, 129, 108, 141, 111, 131, 143, 128, 143, 129, 116, 84, 111, 151, 136, 121, 126, 126, 132, 133, 151, 115, 125, 132, 127, 122, 133, 141, 131, 125, 121, 131, 129, 115, 129, 142, 114, 114, 124, 141, 159, 132, 140, 111, 124, 132, 109, 127, 125, 133, 119, 123, 122, 124, 124, 125, 123, 129, 137, 118, 113, 128, 120, 128, 141, 120, 131, 119, 133, 119, 136, 112, 113, 122, 120, 132, 134, 120, 133, 121, 125, 128, 112, 137, 129, 128, 115, 122, 136, 128, 120, 134, 126, 122, 136, 129, 119, 123, 131, 123, 118, 132, 130, 121, 125, 117, 125, 128, 131, 114, 124, 108, 112, 125, 130, 130, 127, 131, 104, 139, 127, 120, 139, 133, 126, 126, 125, 119, 125, 122, 115, 135, 130, 128, 126, 138, 125, 128, 132, 133, 132, 132, 131, 143, 130, 148, 125, 156, 123, 125, 128, 129, 129, 127, 118, 105, 124, 149, 109, 124, 127, 121, 126, 123, 124, 113, 128, 130, 141, 118, 115, 128, 122, 123, 117, 137, 128, 123, 127, 142, 129, 129, 97, 130, 137, 125, 133, 138, 123, 125, 114, 122, 116, 106, 102, 132, 125, 135, 116, 136, 106, 108, 130, 122, 121, 122, 125, 112, 130, 127, 117, 107, 117, 128, 125, 124, 124, 133, 124, 133, 129, 126, 148, 114, 124, 127, 120, 130, 118, 117, 135, 117, 117, 146, 134, 111, 124, 139, 106, 113, 126, 123, 111, 110, 142, 120, 125, 97, 119, 106, 97, 134, 134, 141, 141, 126, 127, 138, 134, 132, 125, 125, 135, 133, 125, 124, 112, 127, 150, 113, 119, 125, 135, 127, 121, 108, 118, 132, 131, 108, 117, 112, 128, 122, 116, 127, 131, 127, 131, 124, 119, 134, 117, 119, 125, 119, 105, 118, 120, 132, 107, 128, 121, 121, 118, 123, 135, 124, 139, 133, 131, 123, 125, 134, 122, 117, 127, 106, 137, 130, 106, 108, 113, 110, 130, 132, 123, 135, 117, 148, 124, 140, 127, 138, 133, 153, 124, 113, 150, 135, 116, 122, 146, 133, 124, 126, 119, 123, 124, 116, 110, 124, 111, 113, 127, 105, 126, 135, 141, 116, 116, 128, 118, 115, 147, 136, 127, 126, 114, 110, 136, 134, 127, 138, 112, 128, 139, 126, 126, 113, 123, 132, 130, 125, 137, 122, 122, 124, 126, 131, 135, 124, 135, 121, 112, 130, 121, 139, 147, 111, 133, 124, 134, 130, 129, 121, 121, 136, 130, 135, 142, 131, 124, 138, 131, 128, 133, 124, 98, 117, 118, 153, 114, 144, 116, 128, 139, 121, 136, 133, 130, 133, 115, 145, 118, 143, 134, 141, 138, 122, 117, 117, 105, 138, 118, 136, 106, 124, 127, 124, 138, 131, 130, 118, 109, 122, 110, 114, 128, 137, 114, 115, 126, 137, 128, 125, 130, 106, 114, 117, 150, 123, 137, 112, 119, 126, 127, 133, 133, 138, 135, 120, 119, 118, 124, 138, 122, 127, 121, 100, 121, 126, 131, 117, 119, 131, 144, 108, 124, 141, 114, 134, 133, 134, 114, 124, 113, 115, 125, 137, 121, 137, 125, 151, 123, 108, 131, 113, 108, 149, 136, 126, 129, 131, 119, 132, 129, 125, 130, 139, 135, 119, 142, 121, 108, 115, 118, 136, 114, 104, 139, 120, 121, 122, 128, 131, 147, 127, 132, 104, 126, 130, 121, 116, 130, 142, 122, 126, 143, 137, 118, 120, 110, 123, 109, 127, 140, 111, 113, 116, 130, 127, 136, 131, 131, 135, 131, 127, 128, 118, 134, 128, 131, 115, 135, 136, 109, 124, 119, 124, 136, 122, 115, 133, 123, 136, 120, 127, 111, 127, 136, 142, 142, 121, 115, 137, 128, 136, 125, 134, 126, 122, 122, 130, 115, 130, 137, 131, 136, 138, 128, 142, 118, 116, 134, 122, 109, 87, 131, 135, 125, 111, 125, 131, 114, 116, 108, 123, 116, 129, 124, 117, 114, 117, 122, 150, 122, 122, 104, 123, 152, 141, 130, 135, 119, 123, 113, 126, 121, 115, 125, 114, 119, 119, 122, 126, 137, 129, 119, 123, 115, 125, 164, 134, 120, 135, 144, 119, 152, 132, 131, 152, 127, 124, 135, 121, 128, 127, 142, 111, 112, 135, 132, 124, 139, 121, 132, 115, 123, 124, 141, 142, 134, 135, 151, 126, 146, 114, 131, 139, 131, 129, 119, 113, 127, 116, 116, 127, 126, 119, 118, 128, 130, 118, 120, 107, 120, 109, 131, 123, 133, 114, 142, 107, 107, 127, 125, 128, 109, 132, 122, 126, 140, 132, 131, 132, 144, 130, 124, 123, 115, 132, 137, 128, 114, 131, 127, 120, 121, 125, 126, 113, 124, 117, 114, 118, 123, 126, 123, 137, 129, 120, 118, 124, 115, 126, 112, 105, 140, 127, 147, 131, 132, 120, 121, 122, 97, 136, 120, 122, 126, 141, 119, 115, 114, 109, 109, 115, 115, 108, 128, 138, 127, 131, 128, 133, 142, 123, 132, 116, 121, 141, 111, 122, 135, 125, 120, 130, 130, 130, 119, 109, 135, 136, 140, 123, 121, 121, 125, 126, 106, 135, 95, 117, 134, 121, 126, 109, 131, 138, 131, 133, 106, 128, 129, 131, 128, 130, 123, 129, 110, 127, 122, 132, 132, 113, 127, 123, 126, 109, 113, 122, 136, 140, 129, 136, 124, 120, 119, 132, 122, 130, 124, 143, 134, 99, 124, 132, 128, 135, 127, 122, 137, 118, 132, 136, 128, 122, 119, 108, 109, 122, 121, 133, 118, 128, 120, 141, 110, 139, 142, 111, 121, 137, 110, 106, 117, 117, 129, 133, 128, 117, 131, 126, 130, 108, 118, 120, 120, 113, 115, 144, 110, 112, 117, 128, 120, 115, 118, 144, 137, 138, 125, 145, 129, 109, 130, 121, 123, 114, 105, 125, 124, 129, 145, 135, 118, 141, 111, 114, 121, 126, 121, 127, 115, 122, 132, 125, 135, 112, 110, 121, 125, 130, 122, 133, 129, 116, 128, 139, 138, 114, 136, 131, 129, 125, 114, 122, 132, 118, 126, 130, 124, 121, 121, 136, 113, 119, 118, 121, 140, 117, 130, 122, 148, 135, 112, 135, 115, 118, 119, 123, 136, 131, 117, 126, 116, 116, 126, 128, 130, 137, 132, 111, 136, 129, 117, 127, 127, 125, 138, 148, 126, 147, 119, 142, 129, 124, 120, 124, 110, 132, 120, 115, 124, 114, 126, 127, 122, 119, 114, 131, 105, 114, 117, 138, 138, 135, 106, 135, 123, 107, 125, 117, 137, 120, 117, 132, 111, 112, 121, 126, 114, 118, 113, 134, 138, 129, 122, 127, 117, 127, 139, 130, 123, 124, 135, 135, 125, 123, 109, 128, 126, 113, 134, 123, 127, 124, 132, 122, 137, 134, 124, 105, 139, 116, 115, 117, 129, 110, 122, 128, 122, 127, 131, 129, 110, 120, 108, 125, 116, 123, 130, 123, 133, 129, 123, 120, 127, 136, 115, 117, 130, 137, 126, 139, 144, 137, 129, 121, 130, 124, 133, 138, 142, 153, 129, 117, 135, 101, 117, 130, 137, 123, 124, 129, 123, 129, 131, 127, 120, 116, 126, 110, 102, 133, 126, 122, 125, 117, 112, 136, 138, 140, 125, 128, 125, 124, 129, 103, 121, 122, 106, 114, 127, 112, 114, 123, 103, 125, 140, 117, 117, 117, 123, 133, 130, 134, 134, 126, 139, 129, 127, 134, 145, 125, 134, 107, 119, 126, 118, 123, 107, 118, 123, 123, 114, 127, 126, 118, 129, 94, 136, 130, 106, 133, 124, 118, 105, 137, 107, 116, 136, 114, 116, 117, 123, 110, 120, 112, 116, 120, 132, 124, 124, 129, 131, 127, 126, 125, 121, 129, 128, 128, 153, 136, 130, 123, 124, 128, 126, 128, 126, 136, 112, 124, 132, 130, 125, 130, 117, 138, 132, 127, 129, 125, 119, 129, 135, 129, 129, 105, 132, 141, 108, 125, 110, 126, 103, 152, 127, 117, 116, 140, 147, 116, 123, 127, 123, 117, 113, 146, 119, 123, 119, 123, 128, 137, 137, 103, 120, 121, 127, 125, 138, 133, 137, 139, 136, 112, 118, 120, 136, 115, 109, 121, 128, 144, 133, 137, 132, 122, 131, 112, 131, 121, 120, 128, 120, 140, 131, 136, 119, 120, 101, 123, 125, 134, 119, 127, 137, 147, 130, 109, 129, 124, 123, 128, 106, 131, 136, 141, 140, 125, 141, 120, 116, 125, 137, 149, 158, 114, 135, 142, 133, 127, 130, 130, 129, 132, 100, 150, 119, 134, 117, 121, 134, 134, 130, 123, 120, 138, 132, 116, 120, 131, 136, 117, 124, 111, 136, 134, 126, 128, 127, 122, 125, 135, 155, 129, 131, 133, 132, 112, 112, 144, 129, 133, 130, 117, 127, 108, 111, 116, 135, 129, 118, 127, 135, 111, 114, 115, 137, 111, 124, 126, 126, 135, 129, 132, 123, 116, 127, 129, 137, 141, 122, 117, 113, 124, 115, 136, 140, 124, 110, 133, 116, 119, 116, 117, 126, 116, 112, 115, 127, 116, 145, 127, 147, 139, 129, 136, 144, 107, 130, 132, 116, 131, 132, 122, 141, 134, 122, 121, 126, 122, 119, 136, 120, 134, 143, 139, 118, 121, 119, 107, 121, 135, 116, 125, 115, 120, 114, 128, 121, 127, 118, 112, 102, 134, 135, 118, 122, 148, 116, 127, 114, 136, 104, 124, 139, 124, 126, 131, 117, 121, 125, 125, 109, 148, 115, 107, 123, 109, 126, 126, 130, 114, 134, 125, 108, 123, 127, 137, 147, 127, 124, 116, 121, 109, 144, 115, 147, 120, 113, 117, 132, 123, 113, 129, 124, 132, 129, 123, 119, 116, 136, 120, 121, 115, 122, 122, 126, 135, 102, 132, 115, 134, 143, 131, 126, 147, 125, 129, 124, 118, 125, 128, 122, 123, 118, 124, 122, 123, 135, 132, 107, 123, 133, 115, 140, 122, 120, 114, 130, 105, 124, 122, 123, 142, 124, 148, 119, 124, 124, 135, 112, 135, 114, 139, 133, 115, 145, 98, 133, 116, 131, 121, 119, 122, 150, 119, 129, 148, 135, 116, 122, 120, 118, 130, 133, 125, 114, 96, 115, 123, 113, 121, 137, 117, 128, 117, 130, 128, 140, 123, 116, 110, 135, 132, 121, 117, 126, 121, 121, 135, 124, 124, 132, 116, 164, 124, 127, 127, 138, 123, 126, 110, 127, 121, 123, 129, 106, 125, 118, 122, 129, 119, 127, 115, 121, 109, 124, 124, 120, 112, 161, 111, 142, 113, 135, 110, 109, 125, 110, 124, 121, 133, 132, 135, 131, 133, 130, 133, 140, 120, 142, 130, 140, 110, 113, 118, 149, 120, 128, 135, 138, 118, 136, 146, 129, 126, 144, 125, 116, 126, 114, 132, 124, 118, 109, 117, 125, 113, 124, 131, 131, 110, 116, 111, 128, 118, 125, 114, 95, 130, 120, 131, 121, 149, 127, 126, 150, 126, 127, 116, 126, 120, 106, 125, 130, 123, 112, 131, 114, 140, 125, 132, 129, 130, 134, 118, 121, 134, 118, 126, 143, 136, 110, 124, 119, 121, 121, 138, 141, 146, 122, 111, 120, 132, 115, 124, 126, 136, 127, 108, 130, 117, 141, 105, 110, 116, 116, 122, 110, 120, 117, 143, 139, 137, 114, 131, 128, 122, 108, 129, 100, 127, 133, 125, 120, 143, 128, 128, 120, 120, 109, 104, 124, 122, 127, 133, 111, 114, 87, 109, 148, 126, 115, 118, 123, 149, 127, 116, 126, 139, 121, 127, 143, 128, 126, 125, 129, 128, 138, 119, 125, 126, 122, 149, 132, 123, 136, 134, 118, 122, 118, 136, 107, 124, 134, 110, 115, 123, 136, 126, 120, 128, 136, 118, 128, 128, 134, 143, 113, 121, 127, 130, 138, 127, 126, 134, 119, 108, 122, 114, 114, 125, 112, 137, 118, 113, 117, 138, 116, 136, 103, 130, 121, 124, 130, 123, 129, 146, 112, 122, 112, 150, 115, 147, 123, 133, 116, 142, 121, 138, 125, 126, 100, 124, 117, 123, 141, 126, 115, 131, 126, 129, 104, 130, 122, 124, 115, 110, 152, 130, 119, 127, 119, 105, 115, 117, 107, 124, 110, 122, 134, 145, 122, 132, 127, 117, 128, 124, 109, 131, 137, 105, 121, 121, 103, 138, 108, 139, 137, 137, 115, 131, 108, 128, 113, 122, 126, 113, 113, 140, 131, 113, 125, 114, 116, 110, 104, 123, 129, 115, 136, 114, 137, 115, 132, 134, 128, 129, 133, 129, 146, 129, 132, 129, 119, 130, 130, 120, 142, 120, 118, 110, 143, 121, 127, 138, 104, 133, 123, 129, 111, 130, 125, 126, 106, 131, 121, 132, 121, 123, 126, 121, 109, 125, 135, 104, 120, 130, 130, 131, 125, 155, 122, 130, 140, 122, 130, 151, 127, 131, 142, 122, 104, 122, 112, 134, 114, 122, 132, 124, 121, 126, 137, 118, 135, 132, 144, 131, 150, 152, 120, 129, 134, 106, 133, 135, 122, 133, 129, 142, 137, 135, 135, 122, 124, 129, 116, 112, 110, 125, 128, 125, 124, 127, 121, 109, 136, 113, 136, 131, 124, 126, 102, 131, 128, 121, 137, 127, 114, 144, 136, 111, 147, 137, 145, 123, 127, 133, 135, 142, 123, 123, 142, 138, 120, 123, 129, 130, 119, 124, 128, 135, 122, 134, 123, 138, 136, 140, 118, 144, 123, 114, 128, 123, 120, 127, 128, 114, 118, 130, 117, 123, 138, 121, 123, 126, 131, 117, 151, 126, 145, 125, 115, 117, 117, 117, 128, 147, 131, 121, 126, 114, 124, 126, 111, 139, 126, 139, 142, 129, 133, 110, 124, 138, 127, 110, 125, 138, 118, 112, 146, 110, 129, 122, 121, 126, 115, 117, 102, 127, 115, 158, 138, 132, 108, 127, 116, 125, 132, 121, 116, 103, 101, 128, 142, 124, 127, 119, 148, 111, 115, 129, 114, 130, 139, 124, 140, 137, 114, 134, 127, 136, 130, 116, 125, 120, 109, 120, 128, 124, 136, 120, 129, 110, 122, 122, 131, 111, 130, 119, 130, 132, 153, 135, 135, 146, 126, 115, 135, 119, 101, 113, 132, 128, 127, 138, 120, 135, 129, 117, 135, 128, 131, 118, 138, 136, 127, 134, 125, 113, 124, 127, 139, 115, 120, 123, 126, 110, 106, 118, 132, 111, 127, 116, 140, 116, 136, 123, 121, 117, 119, 122, 108, 119, 125, 117, 126, 112, 116, 120, 105, 115, 101, 116, 109, 127, 131, 132, 119, 127, 119, 111, 120, 130, 130, 119, 129, 117, 130, 119, 132, 120, 127, 125, 124, 119, 118, 130, 133, 125, 125, 121, 127, 122, 137, 110, 95, 132, 120, 124, 111, 116, 101, 110, 128, 125, 110, 119, 125, 106, 106, 136, 99, 119, 126, 113, 131, 129, 109, 118, 134, 129, 124, 149, 124, 117, 138, 107, 117, 122, 124, 113, 121, 123, 128, 139, 112, 112, 129, 130, 148, 141, 147, 124, 122, 117, 152, 116, 132, 138, 128, 118, 120, 123, 126, 118, 114, 136, 133, 140, 115, 132, 131, 134, 117, 133, 119, 133, 132, 132, 109, 110, 118, 109, 140, 98, 134, 116, 145, 137, 114, 114, 129, 156, 127, 125, 131, 102, 111, 116, 133, 119, 125, 130, 119, 102, 122, 136, 130, 126, 131, 121, 129, 124, 130, 129, 127, 124, 132, 100, 130, 125, 120, 125, 117, 130, 120, 139, 115, 126, 136, 128, 124, 133, 129, 128, 151, 136, 116, 112, 114, 130, 118, 137, 108, 127, 98, 128, 121, 94, 129, 111, 103, 121, 119, 133, 124, 114, 136, 118, 121, 112, 103, 143, 135, 125, 126, 115, 132, 119, 138, 123, 132, 122, 131, 94, 106, 113, 118, 109, 122, 123, 122, 126, 120, 114, 136, 129, 131, 121, 149, 127, 105, 138, 118, 112, 112, 107, 118, 130, 126, 118, 123, 129, 121, 135, 112, 113, 129, 112, 137, 144, 128, 119, 134, 122, 135, 142, 128, 136, 108, 123, 128, 126, 152, 130, 121, 130, 124, 124, 120, 125, 133, 130, 129, 110, 110, 114, 117, 125, 114, 88, 117, 115, 127, 144, 129, 124, 143, 115, 138, 128, 121, 119, 130, 126, 125, 119, 123, 133, 128, 146, 132, 122, 120, 140, 141, 123, 118, 130, 132, 121, 124, 137, 122, 145, 136, 132, 117, 119, 128, 130, 107, 143, 119, 120, 118, 114, 108, 134, 106, 123, 107, 132, 139, 118, 137, 139, 122, 125, 152, 132, 127, 140, 137, 130, 119, 130, 140, 126, 134, 129, 129, 132, 138, 129, 137, 136, 120, 137, 128, 126, 128, 139, 134, 126, 121, 128, 133, 137, 138, 117, 118, 115, 135, 131, 132, 120, 128, 144, 134, 126, 116, 124, 115, 124, 124, 112, 122, 126, 118, 112, 135, 126, 172, 126, 128, 145, 112, 135, 128, 125, 123, 151, 109, 127, 130, 127, 113, 143, 109, 122, 116, 119, 132, 135, 121, 126, 123, 121, 125, 122, 103, 142, 132, 111, 139, 112, 116, 141, 104, 119, 121, 132, 126, 130, 118, 119, 146, 130, 122, 128, 124, 138, 111, 129, 122, 116, 129, 123, 119, 115, 104, 135, 126, 136, 127, 143, 136, 113, 124, 149, 114, 112, 133, 127, 135, 122, 116, 121, 128, 122, 111, 126, 135, 120, 119, 120, 122, 128, 146, 124, 111, 140, 121, 122, 115, 139, 140, 126, 114, 116, 117, 130, 119, 123, 118, 106, 117, 103, 123, 125, 121, 125, 116, 140, 118, 108, 121, 133, 118, 140, 126, 120, 119, 124, 127, 129, 126, 126, 123, 123, 121, 121, 125, 122, 130, 136, 138, 144, 121, 111, 119, 124, 117, 111, 132, 116, 133, 130, 117, 122, 130, 128, 121, 120, 134, 116, 130, 128, 129, 128, 125, 125, 116, 123, 109, 133, 117, 136, 140, 119, 125, 132, 105, 116, 116, 142, 131, 137, 118, 134, 137, 117, 123, 117, 119, 96, 129, 123, 119, 99, 121, 132, 132, 125, 139, 134, 135, 115, 128, 128, 108, 126, 135, 136, 117, 136, 140, 128, 128, 132, 115, 114, 136, 122, 134, 135, 138, 121, 124, 125, 141, 147, 123, 121, 134, 124, 113, 126, 116, 115, 133, 136, 128, 146, 124, 101, 122, 117, 129, 131, 120, 118, 135, 123, 122, 131, 113, 114, 86, 131, 121, 135, 117, 116, 129, 139, 114, 124, 111, 111, 136, 129, 132, 130, 134, 133, 120, 110, 146, 114, 131, 140, 130, 111, 122, 129, 133, 121, 117, 133, 119, 129, 121, 124, 128, 121, 126, 118, 126, 129, 131, 137, 118, 129, 118, 113, 118, 130, 126, 135, 139, 124, 139, 120, 116, 132, 131, 140, 127, 129, 140, 123, 132, 119, 128, 121, 142, 113, 149, 120, 122, 153, 131, 142, 116, 120, 125, 116, 136, 143, 120, 117, 138, 129, 129, 115, 139, 128, 142, 129, 136, 118, 117, 130, 124, 122, 139, 127, 122, 131, 121, 129, 146, 145, 131, 120, 141, 123, 120, 119, 107, 122, 117, 128, 121, 127, 107, 124, 122, 128, 131, 114, 124, 118, 147, 139, 135, 119, 119, 133, 125, 121, 112, 143, 130, 146, 135, 134, 130, 118, 126, 125, 130, 124, 125, 138, 140, 124, 128, 124, 113, 139, 130, 111, 109, 124, 128, 120, 156, 127, 128, 128, 130, 118, 107, 120, 129, 128, 138, 109, 117, 131, 134, 107, 143, 120, 118, 116, 122, 135, 143, 125, 125, 119, 122, 130, 129, 121, 134, 132, 148, 125, 127, 139, 141, 127, 122, 137, 144, 122, 123, 119, 122, 138, 120, 111, 114, 132, 124, 127, 145, 121, 130, 121, 105, 127, 121, 119, 131, 141, 121, 129, 126, 122, 127, 133, 129, 124, 124, 127, 138, 133, 128, 95, 126, 119, 154, 124, 123, 130, 113, 120, 122, 124, 122, 118, 147, 135, 128, 131, 127, 116, 124, 137, 120, 139, 132, 124, 124, 112, 125, 117, 116, 123, 116, 138, 121, 149, 127, 119, 133, 131, 131, 129, 129, 143, 123, 100, 125, 148, 128, 128, 120, 143, 135, 120, 156, 126, 122, 128, 122, 130, 134, 119, 113, 133, 135, 138, 120, 124, 138, 129, 131, 114, 124, 124, 108, 133, 129, 127, 127, 128, 123, 124, 143, 137, 123, 123, 130, 124, 128, 126, 134, 117, 111, 113, 129, 127, 113, 123, 130, 124, 110, 129, 138, 128, 120, 131, 114, 117, 115, 134, 104, 130, 111, 121, 135, 135, 119, 133, 124, 131, 130, 100, 162, 133, 125, 120, 106, 134, 104, 114, 141, 120, 128, 126, 103, 119, 117, 131, 133, 120, 124, 115, 121, 123, 128, 113, 140, 131, 122, 113, 121, 135, 109, 125, 126, 129, 121, 108, 127, 119, 111, 117, 116, 131, 124, 131, 116, 105, 125, 137, 130, 148, 155, 117, 127, 138, 123, 126, 133, 119, 121, 121, 140, 115, 117, 138, 135, 131, 112, 109, 138, 115, 126, 117, 120, 118, 137, 120, 112, 110, 105, 109, 110, 115, 113, 124, 122, 117, 139, 138, 139, 141, 117, 119, 140, 112, 110, 127, 120, 139, 130, 118, 122, 119, 123, 137, 111, 151, 124, 139, 133, 124, 129, 118, 108, 124, 127, 131, 137, 124, 130, 124, 148, 104, 140, 130, 119, 122, 130, 130, 125, 119, 138, 130, 126, 133, 121, 122, 124, 131, 137, 111, 128, 157, 120, 131, 115, 118, 126, 137, 118, 109, 130, 123, 121, 122, 133, 124, 126, 106, 116, 116, 128, 122, 114, 135, 134, 117, 127, 117, 124, 128, 112, 119, 124, 123, 131, 98, 133, 120, 126, 127, 112, 116, 121, 117, 127, 112, 127, 133, 137, 104, 136, 119, 87, 128, 120, 145, 110, 122, 129, 136, 132, 118, 136, 102, 123, 112, 131, 110, 124, 111, 114, 114, 119, 121, 119, 135, 147, 122, 111, 120, 107, 127, 126, 131, 104, 126, 124, 118, 124, 130, 128, 126, 126, 130, 137, 125, 132, 130, 121, 146, 135, 118, 129, 109, 133, 127, 114, 124, 126, 110, 115, 121, 113, 124, 134, 113, 129, 129, 124, 120, 126, 140, 128, 136, 119, 119, 133, 104, 137, 141, 128, 132, 127, 121, 125, 133, 157, 133, 128, 123, 135, 128, 139, 119, 119, 122, 126, 135, 124, 118, 126, 125, 111, 109, 118, 119, 108, 125, 115, 134, 134, 125, 121, 143, 131, 117, 119, 128, 143, 121, 130, 140, 130, 120, 128, 136, 104, 128, 134, 124, 110, 131, 121, 141, 115, 122, 123, 118, 124, 128, 121, 132, 122, 127, 140, 127, 132, 119, 126, 126, 124, 143, 130, 123, 131, 124, 112, 133, 127, 142, 131, 117, 124, 119, 122, 114, 127, 112, 119, 124, 129, 123, 109, 118, 141, 111, 121, 127, 134, 137, 130, 128, 143, 143, 142, 130, 144, 133, 133, 115, 125, 138, 113, 126, 129, 133, 104, 123, 140, 127, 119, 137, 112, 126, 132, 115, 129, 107, 131, 124, 126, 113, 116, 133, 132, 134, 100, 130, 149, 116, 147, 123, 123, 152, 124, 117, 137, 125, 121, 124, 132, 142, 134, 116, 131, 127, 117, 150, 132, 111, 118, 115, 109, 139, 123, 119, 117, 131, 108, 124, 126, 136, 133, 121, 139, 123, 136, 129, 122, 134, 126, 138, 124, 118, 136, 114, 148, 141, 117, 128, 118, 132, 131, 130, 125, 108, 123, 127, 134, 103, 103, 98, 123, 149, 121, 110, 147, 127, 125, 125, 136, 119, 102, 125, 142, 119, 119, 114, 116, 131, 136, 102, 127, 129, 137, 141, 135, 118, 120, 135, 139, 121, 107, 128, 130, 116, 118, 143, 167, 132, 142, 118, 128, 109, 126, 129, 109, 142, 143, 148, 114, 140, 134, 128, 131, 119, 129, 105, 121, 132, 124, 130, 141, 119, 122, 109, 115, 136, 131, 133, 131, 125, 126, 125, 121, 144, 120, 136, 110, 128, 129, 107, 111, 152, 117, 123, 127, 124, 119, 130, 133, 125, 123, 125, 134, 132, 104, 114, 110, 136, 119, 125, 122, 136, 126, 121, 115, 135, 146, 129, 148, 124, 122, 146, 137, 118, 122, 118, 112, 137, 118, 108, 119, 134, 134, 121, 109, 130, 125, 132, 126, 121, 134, 122, 103, 116, 126, 109, 130, 130, 138, 130, 124, 133, 128, 125, 122, 136, 131, 129, 116, 133, 139, 123, 132, 128, 117, 137, 113, 123, 119, 119, 146, 115, 133, 123, 113, 122, 134, 129, 132, 120, 136, 118, 121, 135, 138, 131, 120, 140, 108, 127, 148, 145, 129, 125, 111, 121, 120, 135, 121, 135, 122, 124, 111, 117, 146, 118, 127, 123, 140, 130, 125, 127, 109, 131, 140, 128, 126, 123, 110, 123, 131, 132, 139, 133, 118, 114, 111, 148, 138, 121, 126, 120, 119, 118, 119, 148, 125, 110, 104, 120, 138, 123, 152, 122, 107, 118, 125, 114, 130, 126, 130, 123, 124, 121, 132, 134, 116, 122, 126, 133, 120, 133, 134, 134, 123, 143, 128, 116, 132, 120, 135, 119, 118, 132, 145, 128, 107, 129, 146, 120, 118, 135, 123, 118, 132, 120, 127, 132, 116, 125, 122, 124, 115, 138, 128, 126, 120, 126, 117, 126, 102, 134, 129, 115, 113, 155, 120, 126, 135, 117, 126, 110, 132, 123, 116, 125, 135, 129, 119, 113, 130, 114, 113, 132, 120, 116, 133, 132, 110, 112, 115, 111, 133, 115, 126, 117, 122, 133, 131, 132, 131, 122, 136, 113, 127, 104, 116, 117, 125, 122, 126, 108, 137, 126, 135, 127, 123, 118, 129, 128, 124, 135, 128, 125, 132, 135, 117, 125, 123, 122, 125, 125, 127, 130, 118, 137, 130, 116, 114, 115, 123, 127, 122, 129, 128, 122, 135, 118, 126, 131, 118, 115, 130, 121, 129, 131, 133, 105, 135, 135, 131, 117, 134, 123, 127, 126, 131, 138, 132, 137, 115, 126, 135, 111, 114, 121, 130, 116, 123, 133, 121, 133, 137, 136, 126, 113, 135, 124, 133, 134, 120, 104, 137, 122, 120, 127, 112, 139, 130, 125, 117, 124, 141, 127, 129, 130, 137, 121, 129, 128, 149, 118, 121, 129, 131, 127, 125, 130, 120, 113, 130, 108, 130, 128, 116, 135, 113, 130, 109, 127, 127, 120, 120, 122, 141, 114, 118, 124, 147, 134, 127, 122, 135, 130, 121, 131, 119, 118, 133, 107, 122, 113, 107, 119, 106, 129, 122, 128, 107, 125, 124, 143, 131, 136, 111, 115, 131, 134, 123, 129, 125, 139, 130, 128, 101, 126, 133, 110, 139, 145, 128, 133, 124, 125, 114, 131, 128, 123, 112, 129, 126, 137, 115, 125, 130, 135, 136, 118, 118, 129, 125, 112, 129, 116, 127, 126, 126, 135, 120, 105, 123, 127, 102, 129, 115, 112, 108, 129, 127, 111, 132, 124, 121, 122, 117, 129, 121, 126, 147, 123, 142, 149, 131, 114, 147, 130, 113, 118, 121, 106, 118, 135, 128, 126, 120, 126, 119, 139, 130, 130, 130, 134, 131, 125, 125, 120, 132, 123, 112, 126, 121, 116, 121, 155, 129, 148, 137, 119, 111, 116, 115, 132, 117, 110, 123, 134, 137, 112, 133, 121, 118, 129, 119, 119, 139, 127, 127, 138, 125, 143, 132, 125, 114, 132, 131, 125, 128, 130, 123, 114, 131, 151, 109, 124, 124, 111, 132, 119, 114, 146, 121, 128, 102, 127, 131, 134, 135, 129, 124, 116, 121, 121, 126, 132, 133, 124, 106, 122, 132, 111, 124, 113, 128, 127, 134, 133, 137, 113, 117, 125, 142, 119, 138, 117, 131, 124, 127, 126, 133, 128, 111, 103, 133, 124, 132, 125, 114, 124, 119, 136, 108, 130, 131, 124, 122, 136, 135, 103, 117, 133, 129, 130, 138, 122, 124, 114, 133, 127, 110, 143, 137, 112, 134, 136, 113, 128, 127, 113, 132, 131, 110, 127, 124, 126, 126, 125, 123, 115, 127, 140, 117, 127, 119, 117, 113, 131, 119, 127, 141, 128, 123, 126, 141, 115, 115, 118, 132, 123, 122, 119, 140, 114, 131, 137, 115, 108, 116, 120, 124, 126, 138, 130, 138, 128, 124, 133, 128, 125, 138, 144, 119, 125, 136, 123, 117, 118, 115, 125, 125, 125, 121, 122, 112, 138, 112, 124, 139, 123, 123, 141, 123, 128, 146, 137, 129, 127, 142, 126, 138, 126, 117, 116, 131, 130, 122, 121, 120, 122, 123, 133, 120, 126, 118, 111, 123, 147, 132, 109, 144, 121, 130, 112, 117, 122, 135, 137, 123, 120, 124, 118, 125, 131, 127, 126, 105, 135, 129, 117, 121, 124, 112, 130, 133, 132, 114, 131, 135, 139, 128, 110, 125, 123, 132, 136, 146, 131, 118, 126, 126, 125, 114, 118, 126, 118, 116, 119, 133, 106, 119, 125, 120, 124, 130, 134, 130, 129, 130, 119, 119, 129, 127, 122, 138, 116, 127, 126, 117, 134, 128, 133, 113, 144, 123, 126, 131, 124, 127, 129, 129, 123, 117, 115, 122, 148, 107, 131, 103, 129, 126, 142, 103, 134, 120, 130, 123, 125, 118, 134, 132, 137, 136, 133, 123, 126, 135, 114, 120, 136, 123, 128, 126, 128, 116, 125, 111, 123, 129, 137, 131, 120, 122, 133, 120, 113, 131, 130, 128, 121, 127, 137, 119, 125, 136, 121, 124, 120, 116, 139, 140, 135, 117, 130, 125, 107, 133, 111, 133, 134, 124, 131, 120, 132, 121, 120, 129, 136, 112, 131, 119, 125, 127, 125, 126, 131, 103, 132, 129, 123, 137, 140, 127, 128, 124, 124, 124, 122, 122, 142, 137, 119, 122, 93, 122, 105, 123, 125, 139, 116, 131, 130, 126, 118, 141, 126, 115, 133, 112, 119, 118, 130, 121, 117, 116, 117, 130, 126, 140, 107, 146, 119, 140, 143, 119, 129, 129, 122, 132, 133, 120, 117, 129, 123, 127, 127, 134, 104, 132, 137, 121, 153, 137, 128, 103, 121, 113, 134, 126, 134, 120, 135, 137, 118, 119, 127, 128, 141, 124, 123, 130, 109, 127, 134, 133, 128, 120, 117, 123, 123, 132, 132, 134, 123, 124, 123, 115, 107, 117, 128, 124, 124, 150, 137, 120, 124, 123, 127, 124, 112, 133, 125, 123, 112, 135, 103, 143, 109, 119, 119, 129, 117, 139, 112, 121, 130, 139, 138, 146, 119, 123, 129, 117, 131, 120, 120, 116, 121, 120, 138, 118, 109, 137, 127, 125, 125, 122, 119, 111, 135, 141, 121, 113, 126, 130, 138, 117, 127, 132, 138, 132, 118, 112, 116, 127, 119, 125, 137, 120, 129, 118, 131, 136, 112, 124, 133, 136, 139, 127, 135, 130, 135, 132, 130, 120, 125, 110, 116, 120, 136, 121, 124, 128, 119, 150, 120, 127, 111, 134, 129, 139, 131, 117, 115, 137, 148, 124, 139, 109, 122, 134, 132, 119, 120, 138, 136, 134, 126, 130, 134, 121, 132, 134, 128, 130, 123, 120, 124, 127, 140, 141, 121, 127, 140, 122, 110, 141, 125, 144, 124, 134, 126, 116, 114, 126, 109, 122, 128, 124, 124, 134, 128, 134, 128, 145, 133, 115, 128, 123, 120, 116, 137, 111, 126, 128, 122, 121, 125, 111, 140, 137, 148, 133, 120, 132, 121, 135, 120, 128, 119, 119, 130, 130, 117, 118, 134, 115, 113, 129, 142, 116, 132, 126, 121, 123, 119, 120, 133, 130, 138, 125, 114, 128, 122, 130, 137, 130, 145, 139, 112, 117, 132, 133, 124, 125, 108, 130, 129, 126, 124, 126, 122, 118, 130, 128, 114, 115, 117, 120, 127, 99, 123, 114, 118, 127, 128, 132, 114, 136, 115, 109, 121, 108, 111, 121, 130, 119, 124, 139, 111, 128, 136, 140, 130, 132, 120, 118, 105, 126, 119, 110, 120, 134, 125, 136, 119, 141, 135, 110, 124, 138, 113, 116, 131, 136, 129, 124, 114, 110, 133, 142, 126, 111, 125, 105, 130, 125, 135, 130, 117, 123, 122, 123, 116, 126, 117, 111, 105, 118, 146, 134, 127, 132, 133, 113, 127, 132, 119, 116, 137, 133, 128, 118, 114, 120, 132, 126, 112, 131, 113, 127, 124, 110, 116, 119, 121, 133, 130, 115, 124, 113, 143, 131, 131, 119, 123, 125, 138, 128, 115, 108, 135, 120, 133, 97, 117, 129, 129, 125, 130, 132, 120, 153, 111, 134, 95, 127, 125, 133, 126, 127, 127, 126, 123, 121, 124, 147, 110, 152, 133, 110, 136, 125, 124, 119, 123, 124, 122, 130, 112, 136, 95, 126, 126, 115, 116, 126, 128, 146, 119, 113, 130, 128, 133, 115, 133, 129, 114, 117, 135, 128, 103, 130, 135, 125, 141, 110, 129, 121, 140, 127, 121, 125, 114, 127, 127, 119, 130, 123, 122, 129, 137, 123, 117, 104, 112, 125, 131, 123, 118, 123, 121, 123, 133, 128, 114, 130, 126, 109, 119, 113, 80, 125, 131, 128, 114, 133, 123, 122, 130, 108, 110, 102, 113, 126, 110, 130, 118, 111, 124, 134, 116, 138, 135, 133, 114, 143, 138, 139, 141, 121, 121, 132, 127, 110, 117, 137, 138, 126, 127, 111, 107, 113, 122, 118, 114, 124, 136, 124, 121, 115, 126, 122, 144, 105, 138, 108, 122, 138, 113, 124, 129, 122, 130, 116, 119, 123, 109, 124, 120, 128, 143, 123, 129, 133, 124, 132, 130, 136, 134, 121, 127, 127, 139, 135, 127, 128, 122, 108, 122, 144, 124, 127, 122, 124, 110, 133, 122, 113, 107, 117, 113, 114, 120, 123, 135, 147, 133, 120, 127, 129, 138, 122, 124, 129, 133, 135, 122, 126, 122, 140, 118, 116, 131, 121, 125, 121, 106, 107, 126, 126, 143, 148, 133, 129, 153, 126, 120, 131, 103, 109, 126, 111, 129, 120, 125, 122, 145, 114, 115, 106, 130, 128, 126, 115, 112, 112, 139, 118, 107, 135, 116, 132, 133, 122, 122, 122, 125, 148, 98, 123, 121, 135, 130, 139, 144, 133, 111, 137, 118, 134, 122, 92, 118, 119, 125, 122, 116, 129, 121, 130, 146, 116, 129, 132, 140, 141, 137, 126, 131, 124, 126, 122, 121, 118, 122, 116, 122, 128, 128, 127, 129, 128, 122, 133, 139, 110, 148, 131, 128, 135, 114, 142, 122, 131, 136, 129, 133, 141, 116, 125, 133, 139, 124, 118, 127, 123, 120, 133, 141, 124, 129, 144, 125, 144, 133, 134, 137, 128, 154, 135, 129, 123, 129, 124, 124, 135, 97, 127, 128, 136, 108, 115, 127, 136, 138, 115, 127, 114, 122, 124, 121, 125, 132, 125, 139, 122, 134, 126, 130, 133, 112, 132, 125, 118, 133, 150, 118, 132, 119, 136, 103, 128, 120, 134, 130, 117, 143, 124, 135, 126, 114, 117, 124, 121, 114, 121, 112, 142, 122, 136, 129, 118, 126, 130, 137, 121, 128, 123, 134, 134, 108, 123, 131, 131, 114, 124, 148, 131, 124, 123, 121, 116, 123, 115, 128, 109, 131, 117, 124, 113, 142, 126, 120, 126, 115, 144, 123, 122, 112, 141, 110, 117, 122, 129, 115, 133, 139, 117, 120, 135, 106, 125, 136, 133, 125, 135, 111, 147, 138, 109, 130, 152, 119, 128, 133, 128, 118, 123, 117, 137, 130, 117, 125, 141, 119, 115, 123, 126, 127, 123, 130, 135, 130, 128, 136, 135, 127, 118, 130, 136, 107, 129, 130, 146, 131, 117, 119, 131, 128, 130, 127, 123, 112, 117, 125, 120, 120, 124, 123, 127, 129, 124, 121, 115, 133, 145, 131, 145, 133, 120, 118, 120, 113, 119, 132, 118, 147, 119, 128, 128, 120, 126, 131, 133, 122, 117, 117, 129, 124, 131, 119, 119, 139, 124, 134, 128, 116, 125, 137, 126, 126, 127, 118, 129, 122, 107, 140, 132, 122, 119, 128, 131, 107, 136, 122, 121, 122, 141, 137, 134, 132, 122, 119, 131, 111, 130, 128, 150, 129, 117, 105, 124, 137, 125, 125, 126, 123, 123, 133, 130, 139, 130, 129, 144, 111, 112, 101, 109, 117, 102, 140, 131, 119, 119, 116, 139, 133, 111, 134, 130, 122, 124, 129, 108, 123, 124, 122, 101, 125, 142, 129, 146, 137, 129, 138, 127, 135, 117, 126, 119, 119, 120, 136, 134, 119, 120, 114, 136, 127, 130, 106, 118, 132, 122, 110, 104, 125, 125, 142, 128, 126, 118, 133, 132, 121, 122, 123, 112, 145, 132, 113, 136, 95, 122, 147, 133, 137, 113, 125, 137, 112, 125, 118, 137, 132, 142, 133, 133, 121, 132, 124, 117, 119, 127, 138, 129, 117, 110, 134, 111, 126, 128, 134, 129, 121, 130, 126, 125, 114, 122, 135, 125, 135, 107, 108, 128, 131, 124, 120, 118, 117, 128, 140, 130, 124, 135, 103, 129, 126, 141, 114, 122, 118, 118, 144, 127, 131, 136, 137, 116, 121, 130, 135, 127, 121, 148, 135, 109, 129, 115, 141, 118, 121, 134, 144, 142, 108, 117, 124, 134, 120, 112, 130, 121, 135, 158, 135, 132, 134, 140, 135, 120, 119, 133, 125, 110, 129, 122, 118, 133, 117, 116, 124, 127, 133, 130, 138, 132, 121, 120, 127, 110, 134, 133, 134, 127, 135, 128, 121, 125, 130, 150, 126, 109, 119, 122, 136, 126, 118, 130, 112, 139, 135, 123, 122, 124, 148, 128, 126, 105, 137, 120, 123, 134, 108, 126, 111, 118, 136, 112, 135, 139, 142, 117, 124, 143, 128, 120, 124, 140, 120, 132, 123, 127, 123, 112, 125, 107, 119, 138, 128, 119, 110, 118, 123, 121, 119, 140, 143, 112, 126, 129, 118, 143, 131, 122, 135, 131, 127, 126, 119, 113, 120, 115, 122, 142, 126, 126, 128, 110, 109, 130, 123, 117, 141, 134, 125, 118, 125, 124, 123, 124, 113, 122, 128, 125, 137, 120, 146, 115, 111, 110, 126, 124, 140, 118, 125, 130, 129, 113, 128, 130, 113, 151, 115, 122, 139, 130, 114, 144, 123, 119, 130, 141, 128, 135, 136, 136, 124, 137, 134, 119, 116, 122, 113, 117, 127, 129, 96, 129, 109, 126, 118, 127, 124, 122, 129, 153, 121, 126, 112, 118, 125, 138, 136, 117, 120, 128, 108, 122, 117, 126, 120, 105, 114, 138, 121, 119, 114, 135, 120, 130, 115, 134, 128, 131, 132, 131, 149, 119, 112, 118, 133, 116, 126, 133, 128, 113, 127, 124, 126, 129, 116, 118, 128, 123, 128, 117, 127, 127, 127, 130, 115, 134, 145, 135, 129, 126, 119, 138, 111, 114, 117, 136, 123, 129, 124, 129, 125, 131, 124, 117, 124, 140, 131, 115, 131, 121, 132, 120, 116, 127, 124, 135, 117, 133, 109, 130, 137, 115, 124, 135, 117, 118, 138, 121, 115, 102, 115, 128, 127, 113, 130, 115, 122, 126, 135, 118, 126, 139, 126, 120, 133, 119, 141, 127, 118, 127, 132, 119, 129, 121, 110, 128, 130, 115, 128, 123, 141, 119, 126, 127, 146, 121, 132, 118, 106, 125, 141, 132, 116, 131, 114, 126, 125, 122, 132, 113, 110, 120, 135, 125, 150, 130, 123, 133, 122, 126, 134, 108, 145, 123, 131, 116, 104, 135, 130, 133, 133, 120, 129, 125, 125, 115, 127, 127, 129, 122, 119, 124, 127, 115, 106, 127, 117, 137, 113, 117, 100, 134, 142, 120, 122, 135, 134, 121, 126, 119, 156, 121, 120, 106, 112, 109, 129, 137, 134, 120, 148, 112, 117, 126, 114, 138, 124, 103, 122, 131, 123, 120, 123, 133, 144, 131, 108, 142, 120, 121, 126, 124, 110, 125, 113, 129, 128, 119, 117, 137, 102, 116, 119, 121, 135, 119, 109, 122, 138, 136, 125, 123, 123, 135, 132, 116, 117, 122, 115, 106, 123, 136, 134, 134, 127, 129, 124, 139, 130, 94, 119, 124, 142, 115, 122, 133, 133, 145, 137, 130, 124, 111, 139, 125, 124, 123, 119, 126, 127, 126, 117, 129, 115, 116, 132, 125, 137, 120, 135, 127, 124, 140, 115, 163, 134, 125, 139, 120, 107, 121, 131, 107, 107, 120, 111, 128, 131, 121, 124, 133, 117, 129, 111, 128, 130, 130, 104, 120, 113, 125, 120, 135, 112, 122, 122, 135, 107, 130, 118, 134, 108, 144, 108, 117, 131, 119, 116, 135, 120, 115, 113, 130, 143, 128, 118, 129, 116, 135, 128, 128, 118, 134, 116, 129, 116, 132, 140, 119, 117, 133, 129, 114, 118, 132, 126, 123, 118, 126, 115, 144, 140, 119, 134, 132, 136, 127, 122, 122, 123, 122, 122, 139, 133, 138, 134, 129, 126, 123, 129, 127, 131, 126, 129, 133, 130, 118, 129, 117, 106, 127, 127, 120, 106, 122, 122, 130, 115, 120, 128, 140, 125, 138, 128, 118, 127, 108, 116, 118, 133, 114, 128, 127, 114, 109, 110, 135, 147, 123, 132, 135, 124, 122, 131, 118, 122, 136, 109, 126, 126, 134, 135, 145, 136, 121, 142, 124, 115, 119, 135, 127, 137, 111, 133, 136, 125, 104, 112, 121, 124, 131, 124, 115, 138, 119, 145, 138, 121, 139, 130, 135, 126, 125, 129, 131, 116, 123, 139, 137, 129, 113, 139, 134, 126, 122, 138, 123, 120, 131, 129, 131, 132, 124, 129, 127, 131, 106, 134, 107, 132, 127, 112, 117, 141, 128, 125, 107, 127, 126, 128, 125, 129, 125, 133, 131, 123, 131, 131, 105, 125, 126, 118, 135, 112, 118, 130, 114, 123, 98, 144, 134, 121, 110, 118, 127, 134, 126, 142, 122, 133, 139, 132, 112, 117, 118, 121, 127, 123, 125, 120, 135, 117, 107, 110, 113, 111, 106, 129, 121, 133, 123, 109, 125, 125, 119, 123, 111, 114, 110, 123, 141, 130, 121, 132, 114, 114, 143, 113, 118, 125, 134, 116, 111, 118, 129, 116, 142, 128, 126, 143, 126, 134, 113, 113, 110, 130, 123, 131, 122, 122, 125, 112, 125, 121, 126, 128, 132, 137, 134, 127, 108, 127, 125, 128, 132, 104, 129, 127, 121, 144, 125, 124, 108, 121, 138, 147, 121, 124, 130, 113, 121, 123, 125, 113, 131, 136, 136, 117, 111, 123, 136, 107, 133, 125, 127, 141, 112, 120, 126, 121, 135, 105, 132, 115, 123, 129, 127, 134, 124, 124, 132, 120, 141, 115, 124, 132, 130, 121, 130, 126, 105, 121, 121, 133, 152, 145, 106, 122, 113, 128, 107, 115, 117, 136, 135, 139, 123, 122, 102, 136, 119, 125, 112, 127, 119, 121, 125, 121, 119, 129, 123, 127, 125, 123, 119, 148, 130, 119, 124, 129, 136, 133, 122, 112, 112, 124, 128, 124, 109, 125, 133, 126, 129, 126, 122, 104, 145, 139, 136, 113, 123, 146, 124, 137, 122, 134, 123, 117, 120, 117, 137, 116, 124, 128, 131, 128, 122, 123, 117, 128, 135, 122, 122, 134, 125, 147, 115, 148, 112, 145, 130, 119, 126, 118, 120, 123, 120, 144, 123, 126, 109, 118, 126, 132, 119, 132, 125, 133, 141, 119, 138, 122, 109, 141, 131, 134, 120, 117, 132, 140, 140, 136, 136, 134, 110, 137, 104, 124, 105, 127, 113, 136, 138, 145, 119, 118, 111, 135, 122, 118, 121, 132, 145, 148, 124, 125, 109, 141, 124, 104, 146, 146, 118, 119, 131, 115, 135, 128, 134, 123, 131, 109, 126, 127, 126, 129, 120, 131, 148, 135, 151, 129, 127, 128, 126, 106, 106, 134, 117, 130, 123, 123, 114, 114, 114, 130, 114, 141, 124, 114, 139, 118, 117, 125, 132, 128, 121, 130, 117, 139, 113, 130, 123, 118, 143, 133, 128, 129, 121, 127, 139, 114, 105, 137, 117, 123, 100, 136, 137, 136, 126, 134, 126, 112, 112, 146, 124, 122, 112, 132, 135, 129, 119, 120, 123, 120, 113, 123, 128, 130, 127, 115, 101, 131, 127, 136, 134, 120, 117, 133, 123, 138, 118, 133, 130, 135, 117, 139, 128, 124, 134, 129, 107, 104, 134, 128, 132, 113, 127, 128, 116, 112, 129, 135, 112, 129, 142, 124, 135, 128, 119, 105, 128, 125, 139, 133, 123, 121, 147, 116, 125, 117, 126, 131, 125, 132, 125, 124, 107, 121, 135, 123, 143, 123, 124, 126, 137, 117, 127, 130, 126, 129, 115, 127, 138, 122, 126, 122, 130, 114, 126, 131, 119, 131, 127, 141, 124, 112, 121, 119, 139, 113, 138, 132, 120, 121, 126, 133, 108, 137, 117, 124, 135, 125, 129, 121, 100, 119, 142, 132, 122, 109, 123, 141, 130, 135, 124, 143, 113, 118, 124, 117, 128, 153, 111, 127, 112, 122, 115, 113, 121, 128, 114, 135, 135, 120, 132, 98, 149, 111, 115, 130, 130, 128, 126, 120, 132, 124, 138, 117, 125, 114, 115, 136, 130, 120, 123, 120, 145, 133, 135, 141, 134, 125, 125, 123, 109, 117, 126, 135, 120, 135, 142, 113, 133, 118, 120, 124, 133, 120, 146, 122, 132, 121, 123, 115, 135, 126, 126, 120, 127, 131, 133, 127, 126, 131, 118, 135, 119, 130, 119, 129, 122, 118, 138, 124, 139, 107, 126, 114, 125, 129, 103, 110, 124, 123, 118, 121, 127, 129, 134, 119, 151, 112, 123, 119, 124, 129, 130, 129, 116, 137, 137, 124, 136, 106, 124, 122, 118, 125, 125, 118, 133, 121, 120, 119, 127, 137, 132, 117, 124, 129, 107, 135, 137, 134, 124, 138, 135, 129, 136, 112, 140, 137, 116, 123, 125, 123, 132, 117, 111, 117, 128, 123, 125, 104, 137, 120, 123, 121, 133, 148, 130, 142, 149, 123, 126, 120, 123, 138, 106, 115, 129, 136, 122, 132, 130, 137, 125, 119, 127, 117, 118, 139, 116, 137, 127, 136, 122, 126, 125, 122, 139, 116, 116, 131, 117, 148, 123, 141, 127, 130, 122, 121, 125, 131, 125, 126, 124, 113, 150, 134, 126, 123, 119, 135, 124, 107, 113, 110, 143, 136, 122, 121, 135, 126, 126, 120, 120, 133, 115, 120, 109, 122, 122, 119, 112, 129, 111, 129, 106, 130, 128, 130, 116, 140, 110, 128, 137, 122, 127, 105, 132, 120, 122, 129, 135, 124, 123, 137, 131, 112, 125, 128, 119, 129, 121, 122, 125, 138, 133, 120, 137, 115, 155, 125, 123, 138, 131, 127, 114, 105, 120, 106, 115, 122, 110, 130, 116, 128, 134, 130, 121, 134, 123, 120, 113, 111, 113, 112, 126, 122, 129, 138, 134, 123, 124, 136, 127, 129, 112, 115, 137, 110, 135, 133, 126, 141, 137, 108, 114, 110, 117, 133, 136, 143, 118, 144, 127, 87, 120, 107, 125, 125, 131, 149, 137, 137, 130, 108, 126, 128, 123, 115, 147, 128, 136, 126, 109, 103, 112, 134, 125, 131, 126, 129, 135, 126, 112, 127, 121, 124, 139, 123, 124, 113, 124, 135, 132, 103, 124, 127, 115, 104, 128, 152, 126, 126, 127, 120, 116, 117, 111, 122, 112, 132, 139, 127, 107, 113, 122, 125, 138, 126, 126, 126, 128, 105, 143, 124, 131, 125, 137, 125, 124, 118, 124, 115, 120, 101, 115, 128, 125, 120, 121, 99, 124, 120, 120, 116, 121, 129, 126, 134, 143, 128, 111, 134, 131, 125, 111, 118, 108, 131, 113, 123, 121, 137, 130, 113, 131, 124, 129, 131, 117, 118, 141, 131, 125, 121, 134, 126, 112, 119, 124, 127, 106, 121, 113, 117, 137, 119, 141, 137, 132, 130, 129, 120, 124, 151, 144, 133, 127, 125, 135, 131, 137, 132, 127, 120, 125, 103, 135, 133, 143, 119, 138, 142, 104, 130, 128, 119, 134, 132, 122, 132, 133, 129, 124, 132, 125, 129, 129, 111, 124, 127, 141, 122, 103, 140, 148, 124, 123, 118, 102, 115, 131, 131, 131, 128, 121, 129, 116, 126, 122, 116, 125, 142, 129, 144, 126, 124, 120, 117, 128, 120, 127, 134, 137, 141, 148, 145, 136, 136, 116, 136, 124, 138, 130, 124, 121, 127, 133, 138, 141, 126, 123, 114, 136, 127, 112, 134, 139, 105, 112, 140, 114, 124, 115, 131, 115, 138, 120, 115, 136, 110, 146, 121, 138, 109, 117, 131, 114, 131, 119, 108, 129, 120, 119, 132, 131, 128, 98, 135, 130, 136, 136, 127, 127, 108, 125, 122, 129, 119, 122, 156, 130, 118, 123, 130, 121, 128, 144, 127, 128, 135, 114, 118, 125, 115, 130, 124, 127, 124, 104, 110, 115, 130, 118, 155, 114, 109, 134, 146, 128, 132, 122, 115, 126, 119, 148, 99, 127, 101, 123, 122, 142, 124, 129, 119, 124, 135, 123, 116, 107, 126, 143, 115, 116, 118, 141, 136, 134, 122, 118, 122, 114, 126, 137, 139, 119, 119, 130, 103, 126, 135, 122, 143, 125, 134, 111, 126, 127, 115, 136, 112, 130, 124, 117, 114, 121, 123, 126, 124, 105, 108, 129, 133, 145, 112, 132, 124, 107, 115, 111, 133, 104, 123, 127, 115, 119, 130, 133, 127, 129, 129, 119, 130, 138, 132, 123, 115, 115, 120, 111, 128, 132, 140, 122, 122, 116, 127, 133, 115, 117, 132, 139, 123, 131, 142, 153, 131, 132, 136, 142, 116, 115, 131, 141, 128, 110, 107, 142, 121, 116, 120, 116, 123, 123, 134, 135, 120, 121, 139, 114, 123, 116, 127, 112, 151, 125, 122, 107, 124, 116, 122, 106, 128, 128, 148, 121, 123, 136, 118, 123, 117, 110, 135, 150, 122, 120, 160, 120, 143, 135, 130, 104, 135, 121, 104, 111, 126, 117, 116, 130, 128, 136, 126, 120, 128, 120, 117, 107, 132, 120, 116, 119, 144, 133, 122, 112, 126, 118, 119, 123, 128, 123, 138, 130, 129, 119, 128, 125, 121, 144, 141, 114, 112, 123, 139, 111, 139, 117, 132, 123, 118, 118, 119, 104, 124, 125, 121, 108, 139, 114, 143, 112, 117, 127, 100, 122, 132, 114, 140, 106, 124, 107, 115, 123, 104, 149, 137, 123, 130, 137, 139, 133, 126, 128, 125, 129, 129, 121, 133, 118, 117, 128, 116, 129, 132, 134, 132, 123, 123, 98, 127, 148, 121, 114, 126, 123, 137, 111, 123, 118, 138, 123, 138, 112, 120, 111, 128, 114, 114, 131, 133, 108, 135, 116, 131, 114, 137, 119, 116, 118, 131, 111, 127, 114, 130, 120, 135, 143, 117, 128, 125, 125, 132, 126, 127, 144, 117, 128, 103, 143, 125, 128, 118, 117, 152, 133, 137, 118, 126, 114, 114, 119, 112, 122, 128, 116, 123, 119, 136, 108, 129, 137, 126, 122, 119, 111, 126, 117, 130, 139, 124, 119, 125, 132, 121, 115, 117, 157, 116, 143, 114, 129, 123, 143, 141, 122, 126, 126, 114, 114, 133, 123, 121, 135, 115, 117, 139, 119, 135, 120, 109, 123, 125, 144, 97, 127, 107, 115, 130, 142, 129, 121, 111, 128, 127, 115, 138, 129, 133, 140, 124, 125, 128, 113, 127, 135, 110, 122, 147, 141, 123, 141, 109, 151, 122, 122, 120, 124, 118, 134, 140, 132, 118, 120, 122, 135, 125, 131, 125, 101, 127, 114, 123, 128, 128, 130, 113, 134, 111, 118, 131, 121, 117, 134, 130, 143, 120, 144, 115, 121, 121, 98, 124, 107, 140, 122, 126, 122, 125, 142, 116, 143, 141, 132, 130, 134, 128, 113, 124, 124, 132, 127, 145, 125, 133, 116, 142, 124, 129, 132, 119, 129, 136, 114, 133, 139, 133, 113, 137, 131, 126, 132, 129, 103, 117, 112, 133, 146, 132, 115, 125, 129, 145, 112, 117, 124, 125, 112, 107, 137, 136, 139, 134, 113, 103, 132, 137, 131, 137, 131, 135, 135, 127, 136, 111, 125, 120, 145, 109, 133, 118, 122, 133, 116, 136, 120, 132, 118, 131, 122, 114, 122, 116, 104, 116, 121, 143, 131, 126, 147, 136, 133, 137, 132, 131, 119, 103, 125, 126, 124, 123, 131, 120, 115, 121, 134, 132, 126, 122, 122, 141, 106, 119, 113, 126, 123, 118, 118, 122, 100, 157, 158, 135, 140, 129, 131, 130, 122, 127, 117, 114, 124, 99, 109, 127, 125, 110, 109, 117, 141, 137, 127, 116, 133, 150, 124, 121, 121, 139, 104, 140, 126, 122, 113, 128, 112, 106, 125, 115, 127, 135, 126, 134, 127, 132, 115, 133, 113, 119, 110, 122, 115, 115, 136, 122, 124, 128, 131, 137, 137, 133, 121, 108, 124, 138, 103, 123, 120, 122, 124, 106, 140, 144, 116, 112, 120, 142, 120, 119, 113, 142, 122, 127, 113, 117, 104, 118, 116, 119, 132, 127, 124, 131, 98, 96, 135, 128, 121, 132, 136, 125, 113, 128, 120, 121, 106, 126, 128, 116, 111, 133, 125, 155, 129, 116, 129, 126, 126, 116, 130, 112, 140, 119, 128, 133, 151, 112, 134, 123, 112, 114, 137, 110, 154, 128, 125, 137, 116, 111, 111, 137, 120, 115, 114, 124, 120, 136, 141, 109, 137, 109, 117, 121, 126, 109, 127, 126, 120, 117, 130, 136, 99, 109, 126, 121, 119, 132, 96, 119, 93, 105, 145, 123, 116, 140, 135, 113, 124, 98, 108, 115, 120, 122, 108, 123, 135, 125, 122, 169, 127, 115, 110, 102, 136, 123, 107, 136, 123, 115, 127, 127, 124, 113, 112, 123, 114, 129, 120, 144, 137, 139, 120, 120, 141, 112, 138, 127, 136, 122, 97, 112, 96, 117, 129, 122, 146, 125, 122, 126, 136, 130, 130, 100, 128, 129, 123, 118, 145, 105, 120, 133, 120, 125, 129, 130, 116, 114, 122, 132, 129, 143, 140, 115, 129, 118, 135, 130, 122, 131, 131, 126, 112, 127, 132, 105, 139, 134, 120, 129, 130, 127, 124, 113, 125, 132, 138, 124, 134, 118, 125, 128, 131, 108, 133, 142, 116, 128, 129, 113, 126, 121, 118, 128, 129, 135, 126, 133, 133, 137, 107, 151, 114, 137, 114, 135, 136, 127, 117, 131, 118, 118, 133, 132, 121, 123, 120, 115, 112, 121, 106, 127, 134, 109, 130, 115, 151, 133, 103, 131, 117, 125, 132, 115, 121, 136, 143, 125, 109, 119, 107, 131, 119, 137, 141, 129, 128, 117, 121, 127, 124, 122, 116, 140, 124, 138, 112, 132, 125, 128, 129, 119, 114, 126, 136, 110, 124, 134, 124, 123, 134, 143, 132, 130, 120, 125, 109, 117, 105, 128, 124, 118, 111, 137, 121, 133, 122, 139, 133, 129, 105, 122, 134, 112, 114, 136, 135, 118, 132, 125, 126, 136, 124, 126, 106, 112, 133, 118, 122, 129, 113, 134, 140, 115, 112, 119, 118, 137, 128, 123, 131, 122, 131, 139, 125, 142, 125, 117, 132, 125, 120, 135, 107, 123, 129, 119, 137, 118, 136, 129, 119, 111, 133, 122, 139, 126, 113, 115, 130, 119, 124, 105, 126, 111, 122, 135, 121, 122, 118, 132, 122, 145, 136, 124, 134, 143, 128, 132, 128, 135, 145, 118, 132, 120, 138, 130, 133, 128, 114, 119, 133, 118, 129, 120, 141, 126, 116, 121, 124, 129, 132, 129, 134, 131, 123, 128, 135, 113, 131, 138, 131, 135, 156, 128, 103, 131, 121, 131, 122, 144, 115, 112, 131, 131, 117, 119, 108, 129, 124, 118, 141, 106, 140, 129, 130, 111, 142, 113, 104, 119, 107, 131, 136, 124, 134, 117, 128, 131, 134, 103, 125, 117, 120, 146, 120, 133, 117, 123, 134, 123, 121, 131, 117, 113, 118, 111, 138, 130, 113, 124, 125, 148, 116, 144, 155, 142, 138, 132, 124, 115, 107, 126, 125, 124, 131, 121, 109, 127, 117, 135, 126, 124, 122, 130, 138, 117, 112, 136, 120, 126, 116, 123, 125, 128, 128, 126, 127, 142, 132, 131, 139, 128, 141, 113, 121, 121, 120, 127, 141, 136, 118, 117, 119, 118, 126, 132, 118, 107, 138, 136, 124, 131, 115, 118, 138, 115, 117, 131, 123, 124, 112, 122, 125, 136, 115, 126, 142, 102, 120, 125, 121, 120, 122, 122, 125, 130, 154, 139, 129, 136, 109, 131, 133, 133, 133, 132, 137, 134, 126, 117, 99, 117, 120, 124, 122, 120, 109, 116, 132, 141, 118, 137, 117, 115, 133, 116, 134, 118, 120, 110, 116, 125, 130, 149, 127, 127, 127, 143, 129, 114, 132, 122, 137, 117, 141, 115, 137, 136, 116, 111, 119, 137, 132, 143, 140, 127, 143, 119, 124, 129, 151, 124, 126, 150, 138, 127, 118, 126, 134, 148, 134, 114, 115, 119, 115, 105, 117, 125, 116, 129, 127, 104, 145, 123, 114, 126, 135, 116, 124, 127, 114, 127, 138, 135, 132, 140, 143, 125, 123, 129, 126, 116, 137, 123, 128, 133, 133, 117, 119, 142, 125, 142, 122, 141, 114, 119, 112, 132, 130, 121, 131, 119, 135, 115, 127, 115, 136, 129, 115, 133, 111, 113, 118, 134, 129, 112, 141, 130, 127, 115, 115, 112, 141, 134, 104, 122, 120, 123, 132, 131, 120, 120, 124, 142, 121, 144, 111, 127, 114, 127, 129, 104, 143, 120, 146, 128, 107, 124, 150, 127, 126, 112, 137, 127, 161, 125, 115, 138, 132, 141, 154, 113, 119, 140, 127, 118, 123, 127, 115, 136, 150, 114, 115, 126, 143, 134, 122, 124, 117, 114, 114, 127, 139, 132, 144, 121, 137, 130, 124, 138, 125, 120, 109, 121, 122, 144, 114, 119, 136, 129, 119, 121, 107, 125, 144, 116, 123, 129, 128, 115, 104, 128, 104, 120, 113, 138, 120, 110, 122, 138, 148, 126, 121, 119, 138, 141, 127, 118, 126, 119, 118, 130, 122, 114, 140, 158, 110, 130, 120, 132, 128, 119, 158, 124, 121, 129, 117, 125, 125, 124, 114, 152, 143, 127, 129, 137, 133, 129, 111, 122, 124, 106, 137, 126, 125, 130, 123, 103, 137, 129, 116, 122, 130, 125, 123, 120, 119, 141, 135, 128, 124, 110, 129, 130, 109, 123, 132, 128, 134, 142, 142, 121, 132, 119, 122, 130, 124, 120, 117, 119, 122, 110, 137, 137, 122, 134, 139, 131, 112, 140, 117, 129, 141, 138, 124, 137, 110, 108, 131, 99, 125, 102, 131, 119, 117, 107, 106, 123, 128, 133, 116, 125, 123, 134, 122, 134, 122, 134, 125, 140, 122, 138, 125, 113, 133, 120, 124, 106, 120, 121, 125, 128, 119, 102, 119, 141, 110, 116, 131, 133, 134, 130, 134, 118, 133, 121, 125, 138, 124, 108, 104, 120, 113, 133, 118, 127, 134, 117, 120, 117, 109, 119, 123, 129, 126, 129, 121, 130, 116, 122, 123, 124, 154, 96, 125, 121, 140, 121, 117, 131, 108, 134, 134, 123, 115, 132, 114, 129, 131, 148, 114, 126, 118, 135, 126, 136, 126, 125, 114, 129, 123, 113, 136, 124, 134, 136, 121, 122, 120, 126, 125, 129, 135, 117, 128, 127, 124, 124, 143, 127, 124, 105, 126, 125, 131, 133, 142, 116, 119, 121, 121, 125, 142, 117, 125, 144, 125, 113, 124, 128, 135, 138, 132, 114, 110, 125, 133, 110, 144, 127, 136, 107, 115, 98, 118, 112, 148, 125, 132, 146, 132, 124, 121, 123, 119, 128, 127, 145, 131, 112, 132, 131, 115, 132, 129, 111, 146, 119, 97, 123, 106, 111, 127, 138, 114, 113, 145, 128, 123, 106, 135, 105, 131, 131, 125, 117, 117, 109, 132, 132, 110, 139, 120, 125, 132, 113, 130, 131, 138, 124, 102, 131, 117, 128, 127, 126, 119, 120, 144, 136, 111, 116, 134, 120, 105, 128, 124, 146, 138, 125, 118, 112, 128, 131, 125, 122, 132, 111, 112, 126, 137, 131, 129, 142, 116, 124, 106, 109, 130, 132, 122, 106, 149, 135, 141, 128, 120, 125, 141, 139, 129, 137, 124, 123, 125, 133, 112, 125, 131, 120, 132, 118, 151, 131, 127, 134, 122, 124, 135, 132, 125, 127, 140, 124, 134, 120, 110, 128, 143, 109, 151, 132, 124, 111, 127, 140, 126, 125, 115, 133, 137, 143, 121, 136, 120, 135, 155, 129, 130, 120, 144, 117, 121, 138, 131, 111, 132, 123, 117, 120, 111, 123, 115, 132, 139, 106, 130, 133, 125, 116, 140, 120, 124, 129, 141, 126, 117, 135, 133, 116, 138, 136, 129, 127, 139, 122, 113, 116, 134, 132, 140, 147, 126, 125, 111, 128, 128, 142, 122, 130, 130, 121, 116, 105, 116, 129, 115, 102, 152, 115, 106, 122, 119, 138, 120, 117, 128, 135, 122, 130, 125, 135, 147, 132, 130, 109, 139, 151, 125, 133, 140, 128, 116, 144, 130, 117, 144, 122, 127, 119, 120, 115, 122, 129, 121, 125, 138, 125, 120, 122, 137, 95, 130, 136, 108, 125, 123, 133, 140, 124, 131, 129, 120, 124, 119, 123, 123, 132, 121, 121, 133, 126, 160, 111, 112, 121, 133, 128, 142, 139, 124, 133, 127, 137, 123, 144, 136, 118, 131, 127, 130, 127, 122, 117, 148, 111, 133, 122, 100, 117, 122, 110, 125, 135, 127, 112, 134, 131, 135, 125, 142, 126, 123, 107, 113, 124, 120, 140, 135, 115, 135, 124, 111, 115, 118, 120, 131, 140, 113, 135, 131, 122, 128, 136, 121, 121, 128, 142, 136, 146, 130, 129, 132, 114, 113, 135, 129, 144, 126, 128, 117, 132, 128, 109, 136, 122, 130, 126, 108, 117, 118, 130, 116, 138, 142, 125, 122, 130, 113, 117, 116, 122, 111, 136, 148, 126, 136, 113, 138, 127, 119, 135, 134, 127, 110, 137, 139, 140, 109, 118, 133, 136, 132, 123, 118, 145, 125, 134, 137, 134, 131, 128, 130, 123, 128, 127, 113, 131, 124, 107, 123, 121, 122, 132, 119, 126, 104, 114, 135, 110, 145, 124, 123, 128, 121, 127, 139, 115, 106, 109, 139, 128, 118, 116, 136, 134, 129, 124, 124, 127, 107, 122, 113, 133, 121, 112, 120, 137, 130, 113, 119, 112, 112, 120, 127, 129, 121, 114, 137, 149, 132, 142, 130, 121, 103, 118, 119, 116, 123, 110, 140, 146, 128, 123, 132, 123, 118, 118, 132, 120, 126, 111, 113, 127, 140, 125, 121, 114, 119, 121, 134, 125, 155, 131, 138, 139, 119, 140, 125, 120, 118, 120, 117, 114, 121, 125, 121, 132, 101, 114, 126, 119, 102, 114, 125, 124, 144, 121, 138, 127, 134, 116, 130, 123, 125, 128, 124, 108, 136, 116, 116, 152, 130, 141, 120, 130, 134, 147, 120, 115, 120, 138, 132, 129, 106, 129, 117, 141, 138, 117, 113, 127, 121, 141, 125, 118, 125, 137, 112, 133, 145, 112, 104, 127, 123, 130, 111, 119, 121, 123, 144, 144, 110, 123, 128, 90, 137, 105, 110, 137, 97, 120, 116, 149, 120, 118, 128, 127, 118, 132, 141, 129, 133, 130, 111, 114, 121, 115, 128, 118, 112, 115, 100, 107, 134, 112, 97, 68, 120, 119, 118, 125, 127, 122, 123, 118, 140, 116, 128, 143, 111, 140, 122, 159, 126, 125, 143, 130, 156, 112, 126, 110, 109, 126, 124, 138, 141, 140, 128, 120, 135, 119, 138, 121, 129, 137, 116, 105, 135, 136, 127, 135, 113, 109, 122, 141, 126, 139, 118, 109, 145, 141, 121, 130, 124, 125, 120, 119, 118, 122, 119, 129, 128, 105, 134, 142, 126, 115, 125, 119, 160, 125, 139, 124, 123, 148, 121, 122, 153, 128, 145, 112, 147, 130, 122, 128, 133, 133, 128, 137, 127, 129, 118, 122, 116, 110, 141, 109, 131, 122, 120, 118, 122, 119, 118, 122, 126, 119, 115, 133, 124, 120, 129, 141, 112, 122, 126, 117, 121, 120, 133, 120, 151, 126, 128, 148, 140, 121, 126, 126, 113, 83, 132, 138, 118, 117, 128, 140, 125, 111, 139, 140, 140, 121, 145, 148, 133, 133, 113, 117, 129, 160, 128, 119, 99, 146, 104, 117, 114, 128, 123, 125, 126, 107, 120, 136, 129, 112, 138, 135, 127, 120, 121, 108, 123, 113, 128, 127, 120, 130, 125, 118, 150, 128, 127, 115, 116, 132, 127, 122, 119, 121, 126, 139, 115, 130, 147, 117, 122, 134, 103, 143, 124, 145, 118, 119, 122, 142, 152, 133, 126, 100, 136, 157, 144, 111, 143, 114, 107, 124, 107, 124, 125, 143, 122, 133, 120, 126, 117, 131, 119, 133, 116, 140, 109, 140, 117, 126, 140, 147, 103, 127, 134, 116, 123, 120, 114, 122, 120, 117, 119, 121, 107, 125, 136, 132, 90, 138, 115, 136, 121, 121, 124, 139, 124, 116, 152, 140, 105, 121, 127, 125, 125, 123, 134, 128, 124, 139, 121, 138, 132, 119, 137, 100, 115, 117, 147, 133, 129, 113, 131, 133, 117, 141, 136, 128, 97, 136, 112, 129, 119, 117, 113, 137, 119, 157, 107, 122, 125, 119, 117, 121, 121, 129, 125, 130, 121, 138, 150, 117, 105, 131, 129, 125, 120, 110, 118, 122, 123, 118, 121, 124, 107, 119, 88, 136, 86, 126, 125, 106, 109, 125, 133, 128, 129, 116, 126, 126, 121, 111, 115, 129, 105, 106, 123, 123, 137, 127, 133, 111, 129, 121, 123, 131, 136, 118, 134, 137, 123, 135, 134, 119, 121, 129, 117, 139, 127, 111, 125, 137, 161, 125, 108, 131, 128, 126, 129, 127, 138, 119, 135, 109, 140, 136, 152, 129, 127, 122, 115, 123, 122, 128, 113, 155, 133, 111, 136, 118, 138, 130, 135, 139, 130, 110, 125, 120, 130, 142, 130, 198, 121, 136, 120, 117, 135, 131, 130, 126, 128, 133, 132, 131, 129, 119, 114, 126, 118, 124, 111, 115, 116, 61, 101, 112, 89, 132, 121, 109, 133, 121, 129, 128, 115, 111, 115, 117, 130, 126, 146, 119, 106, 131, 128, 112, 119, 118, 130, 132, 126, 114, 121, 123, 111, 154, 137, 87, 162, 113, 129, 135, 116, 121, 114, 119, 143, 118, 132, 116, 134, 128, 130, 103, 144, 133, 116, 114, 115, 129, 111, 121, 135, 143, 135, 124, 127, 116, 147, 138, 129, 119, 118, 124, 134, 122, 134, 127, 117, 105, 102, 135, 113, 120, 121, 127, 119, 152, 142, 115, 114, 125, 126, 131, 132, 114, 122, 111, 112, 109, 118, 126, 133, 108, 123, 136, 77, 94, 125, 124, 127, 144, 113, 139, 111, 148, 146, 98, 120, 123, 126, 120, 124, 119, 128, 120, 148, 122, 107, 148, 130, 125, 118, 116, 124, 116, 80, 122, 118, 145, 138, 122, 123, 105, 127, 138, 136, 146, 128, 120, 109, 119, 114, 118, 126, 126, 133, 131, 115, 125, 124, 112, 130, 139, 127, 126, 115, 123, 124, 122, 143, 145, 133, 126, 129, 124, 121, 121, 132, 134, 124, 115, 137, 129, 108, 127, 124, 133, 117, 124, 118, 125, 108, 113, 129, 103, 121, 115, 120, 141, 137, 128, 130, 139, 116, 119, 129, 124, 121, 127, 128, 127, 108, 116, 110, 135, 112, 114, 156, 128, 135, 136, 124, 140, 127, 119, 132, 128, 140, 128, 133, 141, 125, 141, 118, 123, 102, 106, 112, 124, 133, 118, 118, 115, 108, 147, 132, 121, 111, 120, 136, 134, 153, 153, 109, 109, 110, 122, 150, 113, 125, 124, 118, 123, 127, 139, 113, 100, 131, 119, 122, 122, 154, 97, 125, 126, 132, 127, 141, 109, 135, 125, 97, 119, 126, 125, 156, 150, 103, 123, 137, 124, 122, 129, 133, 115, 118, 127, 153, 126, 129, 101, 110, 130, 126, 117, 130, 119, 112, 120, 117, 117, 144, 143, 117, 119, 130, 126, 144, 146, 122, 126, 133, 101, 119, 136, 121, 116, 129, 124, 116, 138, 142, 119, 100, 126, 111, 103, 126, 109, 152, 128, 145, 122, 132, 139, 129, 134, 129, 109, 145, 134, 124, 117, 131, 129, 131, 118, 110, 117, 141, 130, 122, 114, 141, 126, 116, 128, 113, 109, 153, 121, 118, 117, 129, 124, 128, 121, 116, 142, 128, 136, 129, 128, 136, 148, 119, 153, 134, 126, 134, 139, 146, 126, 125, 124, 110, 133, 161, 115, 134, 141, 84, 140, 119, 125, 117, 122, 137, 116, 129, 122, 143, 110, 122, 125, 128, 137, 123, 127, 140, 134, 107, 144, 132, 122, 135, 138, 117, 121, 106, 127, 132, 127, 130, 109, 101, 125, 123, 139, 135, 143, 126, 132, 105, 123, 123, 127, 137, 128, 122, 120, 128, 126, 131, 139, 129, 133, 127, 136, 135, 135, 140, 135, 141, 117, 121, 99, 122, 135, 116, 117, 118, 128, 114, 129, 114, 115, 113, 115, 110, 120, 136, 121, 122, 115, 130, 103, 119, 111, 119, 127, 121, 126, 129, 114, 123, 128, 139, 111, 106, 135, 127, 139, 130, 111, 115, 116, 130, 115, 140, 142, 126, 128, 131, 128, 117, 155, 130, 126, 119, 117, 111, 114, 137, 132, 115, 128, 138, 101, 113, 127, 128, 123, 129, 134, 115, 133, 89, 106, 140, 143, 120, 113, 118, 127, 134, 144, 122, 124, 121, 117, 103, 123, 124, 150, 129, 119, 119, 139, 124, 118, 127, 126, 136, 116, 116, 135, 122, 117, 116, 132, 125, 134, 121, 125, 126, 130, 129, 128, 134, 140, 135, 121, 134, 138, 128, 130, 137, 149, 136, 115, 120, 124, 119, 117, 122, 139, 122, 125, 136, 111, 113, 131, 113, 112, 131, 124, 126, 120, 132, 131, 130, 115, 116, 118, 152, 137, 130, 117, 114, 131, 129, 121, 112, 110, 107, 97, 122, 118, 109, 152, 114, 106, 118, 140, 121, 127, 112, 124, 135, 126, 127, 124, 124, 116, 132, 133, 124, 117, 121, 138, 135, 116, 135, 134, 122, 109, 124, 128, 117, 132, 116, 119, 131, 126, 125, 133, 130, 132, 128, 117, 104, 134, 126, 135, 153, 136, 136, 142, 125, 102, 125, 125, 115, 134, 119, 119, 141, 130, 128, 127, 113, 123, 102, 125, 141, 138, 114, 114, 113, 123, 132, 123, 113, 126, 114, 111, 122, 118, 142, 138, 120, 119, 138, 113, 100, 139, 115, 99, 135, 129, 128, 107, 121, 100, 132, 117, 129, 118, 122, 133, 116, 107, 134, 122, 144, 131, 116, 116, 140, 116, 124, 137, 112, 117, 124, 138, 123, 129, 135, 141, 130, 115, 125, 120, 126, 120, 135, 121, 141, 123, 115, 134, 126, 121, 136, 124, 114, 127, 110, 123, 115, 140, 117, 138, 119, 125, 131, 133, 118, 127, 149, 123, 119, 122, 149, 113, 138, 124, 123, 113, 137, 111, 131, 115, 120, 135, 128, 115, 136, 125, 146, 123, 115, 117, 124, 133, 127, 104, 123, 110, 128, 114, 132, 110, 131, 110, 121, 122, 135, 129, 117, 124, 116, 138, 123, 117, 117, 126, 122, 135, 138, 139, 138, 132, 129, 127, 133, 125, 137, 116, 134, 120, 110, 120, 132, 129, 125, 119, 141, 133, 133, 140, 113, 121, 140, 120, 119, 120, 116, 128, 130, 110, 119, 122, 106, 139, 122, 123, 114, 117, 124, 118, 117, 125, 112, 119, 116, 130, 107, 126, 120, 121, 136, 139, 137, 126, 116, 116, 128, 121, 115, 145, 131, 128, 127, 123, 126, 125, 124, 130, 119, 123, 131, 117, 121, 125, 123, 129, 139, 117, 120, 128, 130, 152, 124, 113, 111, 121, 120, 124, 136, 136, 123, 124, 150, 133, 121, 130, 129, 95, 109, 142, 132, 125, 120, 126, 123, 125, 116, 100, 106, 125, 125, 121, 104, 120, 133, 122, 141, 127, 124, 110, 129, 124, 129, 124, 123, 143, 137, 124, 131, 125, 127, 128, 125, 127, 114, 115, 125, 119, 136, 124, 127, 118, 131, 121, 123, 126, 124, 120, 123, 110, 126, 134, 119, 122, 123, 111, 116, 114, 148, 120, 113, 118, 107, 131, 126, 123, 117, 128, 125, 130, 124, 107, 118, 147, 115, 112, 131, 128, 135, 129, 98, 126, 135, 126, 140, 122, 112, 127, 122, 131, 126, 138, 128, 141, 145, 125, 131, 137, 127, 126, 137, 130, 123, 128, 150, 129, 133, 138, 130, 123, 121, 135, 146, 118, 127, 110, 125, 136, 122, 119, 134, 123, 124, 113, 126, 112, 137, 120, 130, 126, 130, 134, 144, 124, 126, 135, 136, 115, 129, 156, 131, 133, 145, 141, 114, 128, 124, 111, 132, 111, 128, 121, 130, 131, 120, 138, 144, 115, 113, 133, 108, 103, 123, 129, 114, 144, 126, 148, 138, 145, 115, 136, 124, 105, 130, 132, 146, 138, 123, 135, 142, 123, 108, 112, 107, 135, 110, 148, 139, 139, 128, 155, 128, 113, 134, 120, 118, 114, 143, 106, 130, 106, 122, 119, 123, 107, 146, 117, 126, 106, 118, 133, 142, 143, 142, 146, 141, 118, 101, 120, 121, 117, 117, 118, 138, 124, 150, 139, 125, 148, 127, 118, 133, 128, 137, 127, 124, 120, 107, 107, 122, 128, 94, 125, 119, 120, 126, 129, 116, 128, 147, 141, 111, 131, 113, 133, 126, 132, 104, 119, 127, 113, 125, 112, 119, 122, 126, 116, 127, 131, 134, 129, 111, 126, 132, 135, 125, 100, 129, 121, 123, 109, 120, 101, 126, 127, 145, 137, 110, 132, 121, 116, 141, 96, 126, 128, 137, 129, 128, 140, 127, 126, 141, 104, 125, 125, 124, 113, 123, 119, 131, 134, 129, 126, 118, 134, 120, 122, 120, 128, 134, 133, 130, 123, 109, 126, 125, 114, 132, 127, 129, 108, 135, 144, 129, 116, 105, 135, 135, 134, 122, 136, 122, 125, 125, 116, 123, 126, 129, 118, 122, 140, 130, 140, 105, 124, 118, 129, 125, 129, 118, 130, 128, 126, 120, 126, 127, 117, 120, 117, 132, 112, 122, 118, 122, 131, 132, 128, 124, 132, 128, 114, 122, 116, 118, 122, 131, 112, 129, 114, 122, 113, 117, 111, 136, 126, 137, 98, 126, 122, 126, 131, 131, 133, 111, 145, 135, 130, 127, 128, 127, 106, 117, 136, 113, 120, 123, 126, 122, 125, 112, 130, 146, 124, 148, 113, 124, 112, 121, 124, 102, 126, 110, 121, 130, 135, 120, 128, 116, 108, 126, 120, 138, 134, 119, 118, 123, 107, 130, 121, 121, 119, 98, 138, 104, 124, 128, 132, 114, 125, 111, 116, 141, 131, 127, 114, 117, 118, 127, 114, 128, 116, 123, 129, 144, 111, 137, 123, 154, 118, 130, 148, 132, 139, 145, 106, 115, 125, 126, 132, 118, 125, 118, 133, 125, 120, 121, 130, 118, 151, 132, 114, 119, 120, 108, 136, 111, 133, 134, 123, 120, 112, 135, 139, 113, 141, 115, 128, 128, 118, 115, 116, 128, 134, 131, 131, 129, 124, 127, 128, 113, 124, 115, 131, 120, 114, 136, 136, 127, 119, 125, 125, 123, 120, 135, 131, 108, 112, 126, 120, 142, 130, 116, 124, 126, 146, 125, 135, 99, 101, 114, 125, 129, 130, 130, 127, 136, 134, 125, 144, 127, 126, 129, 107, 119, 109, 143, 116, 128, 125, 124, 118, 114, 129, 131, 147, 122, 109, 113, 131, 128, 107, 139, 130, 127, 119, 134, 128, 119, 104, 131, 111, 129, 119, 125, 118, 110, 126, 135, 139, 112, 115, 116, 121, 124, 140, 132, 131, 128, 119, 130, 134, 130, 124, 125, 130, 148, 132, 123, 124, 112, 144, 108, 129, 133, 119, 113, 131, 117, 124, 122, 112, 117, 119, 130, 131, 132, 141, 107, 124, 128, 143, 116, 115, 132, 133, 126, 133, 114, 123, 112, 110, 130, 121, 127, 150, 126, 127, 128, 122, 121, 119, 134, 122, 116, 120, 145, 122, 117, 135, 118, 140, 138, 115, 108, 138, 105, 140, 119, 129, 138, 143, 125, 117, 138, 128, 120, 129, 136, 133, 143, 131, 120, 129, 127, 129, 131, 133, 144, 136, 128, 114, 128, 119, 137, 114, 114, 124, 133, 103, 133, 141, 147, 115, 135, 129, 119, 142, 131, 122, 118, 142, 121, 136, 109, 108, 120, 123, 118, 110, 119, 129, 119, 120, 118, 111, 119, 114, 116, 129, 141, 129, 108, 123, 115, 145, 116, 118, 110, 133, 123, 118, 133, 126, 130, 143, 120, 120, 99, 122, 109, 132, 124, 119, 123, 133, 141, 131, 109, 135, 130, 121, 110, 122, 135, 128, 119, 115, 110, 134, 133, 106, 143, 129, 133, 123, 137, 116, 124, 154, 117, 124, 107, 132, 130, 143, 141, 102, 143, 131, 119, 125, 110, 126, 122, 100, 121, 127, 128, 108, 125, 135, 116, 133, 128, 105, 142, 140, 116, 112, 112, 134, 123, 117, 120, 124, 126, 120, 128, 117, 116, 141, 125, 130, 117, 129, 123, 118, 120, 125, 126, 131, 136, 132, 124, 118, 131, 132, 145, 115, 131, 120, 116, 132, 131, 126, 119, 136, 112, 139, 120, 126, 124, 113, 113, 114, 123, 138, 115, 131, 135, 122, 124, 156, 107, 105, 114, 130, 139, 110, 139, 126, 132, 120, 121, 142, 118, 117, 124, 137, 125, 133, 124, 129, 117, 123, 123, 141, 123, 126, 140, 127, 124, 128, 110, 150, 135, 131, 138, 145, 126, 128, 120, 118, 111, 135, 123, 123, 126, 138, 117, 116, 128, 114, 134, 125, 114, 117, 132, 119, 143, 114, 121, 130, 124, 133, 137, 133, 135, 118, 121, 122, 125, 133, 127, 121, 129, 113, 126, 125, 115, 132, 123, 110, 122, 145, 108, 123, 119, 113, 122, 135, 120, 132, 136, 124, 124, 133, 120, 133, 139, 111, 128, 125, 136, 118, 125, 134, 123, 108, 126, 115, 138, 124, 118, 146, 124, 124, 130, 166, 111, 104, 129, 119, 117, 109, 124, 138, 118, 117, 130, 127, 133, 122, 119, 134, 124, 144, 146, 117, 125, 120, 138, 113, 122, 116, 132, 134, 128, 129, 109, 132, 107, 127, 114, 116, 140, 130, 134, 131, 137, 127, 136, 126, 136, 107, 140, 124, 136, 140, 122, 113, 117, 136, 133, 127, 140, 128, 144, 123, 119, 129, 121, 117, 139, 129, 119, 112, 111, 110, 117, 132, 122, 117, 120, 125, 144, 126, 130, 132, 100, 119, 121, 129, 116, 143, 123, 133, 125, 116, 126, 145, 124, 107, 123, 138, 120, 118, 108, 126, 118, 113, 123, 127, 120, 138, 120, 126, 132, 142, 149, 119, 131, 136, 138, 134, 125, 122, 106, 115, 98, 124, 122, 111, 132, 132, 118, 122, 130, 141, 129, 135, 147, 125, 114, 125, 118, 130, 121, 127, 124, 112, 124, 123, 133, 133, 127, 116, 129, 123, 117, 117, 136, 141, 145, 142, 120, 123, 121, 137, 118, 122, 123, 137, 141, 111, 141, 130, 126, 126, 131, 121, 107, 125, 134, 136, 131, 121, 114, 138, 125, 110, 120, 130, 129, 139, 133, 137, 117, 113, 112, 129, 126, 141, 114, 124, 134, 140, 136, 147, 122, 121, 107, 134, 141, 120, 130, 151, 125, 134, 135, 126, 120, 121, 120, 114, 127, 125, 132, 128, 122, 124, 121, 117, 114, 141, 109, 123, 128, 146, 127, 115, 127, 129, 120, 118, 141, 123, 125, 116, 112, 122, 118, 122, 112, 139, 127, 107, 125, 151, 127, 118, 130, 131, 132, 116, 139, 121, 129, 132, 113, 131, 128, 135, 115, 128, 126, 127, 132, 101, 118, 141, 138, 113, 135, 118, 125, 113, 122, 125, 112, 112, 125, 127, 137, 140, 127, 131, 127, 119, 132, 116, 115, 129, 150, 125, 131, 113, 149, 126, 137, 117, 140, 115, 119, 128, 100, 120, 130, 118, 105, 124, 133, 121, 127, 120, 111, 134, 135, 127, 129, 130, 126, 115, 134, 126, 141, 130, 126, 123, 119, 127, 132, 136, 122, 100, 131, 133, 134, 130, 124, 131, 101, 118, 107, 142, 129, 123, 136, 124, 111, 120, 113, 130, 132, 103, 122, 144, 131, 125, 134, 112, 115, 124, 136, 126, 118, 125, 135, 132, 126, 123, 137, 116, 115, 132, 115, 126, 125, 129, 122, 128, 124, 113, 117, 131, 138, 130, 126, 124, 132, 129, 124, 121, 126, 130, 111, 113, 124, 115, 130, 109, 116, 140, 136, 120, 126, 109, 138, 127, 143, 121, 143, 110, 126, 111, 144, 132, 123, 122, 120, 126, 115, 127, 126, 128, 125, 130, 144, 122, 117, 114, 131, 117, 124, 119, 121, 128, 130, 127, 122, 124, 109, 131, 102, 140, 136, 131, 106, 128, 116, 117, 123, 118, 132, 121, 117, 121, 125, 125, 139, 132, 117, 122, 128, 124, 122, 124, 117, 120, 123, 116, 139, 131, 126, 127, 139, 130, 128, 139, 123, 119, 124, 124, 133, 129, 117, 106, 125, 138, 139, 106, 131, 117, 134, 125, 128, 124, 133, 128, 123, 123, 121, 132, 121, 122, 140, 122, 132, 123, 125, 119, 149, 137, 116, 130, 112, 119, 133, 135, 129, 131, 128, 121, 126, 138, 106, 120, 124, 128, 117, 139, 123, 129, 135, 131, 120, 129, 141, 124, 104, 122, 110, 132, 110, 115, 144, 142, 117, 126, 127, 131, 120, 129, 119, 120, 129, 128, 131, 135, 101, 111, 134, 133, 137, 113, 118, 149, 138, 135, 112, 130, 121, 131, 137, 115, 104, 127, 117, 118, 144, 139, 124, 128, 132, 112, 140, 119, 121, 131, 142, 136, 120, 131, 133, 136, 107, 110, 129, 111, 134, 126, 116, 125, 119, 129, 116, 128, 120, 125, 147, 113, 132, 121, 114, 117, 119, 125, 127, 133, 128, 126, 129, 116, 127, 109, 126, 121, 130, 124, 139, 135, 135, 128, 119, 117, 124, 125, 144, 125, 121, 98, 138, 111, 121, 144, 134, 118, 130, 135, 124, 122, 113, 115, 134, 125, 127, 137, 124, 127, 107, 138, 120, 118, 139, 106, 110, 136, 132, 121, 120, 96, 137, 118, 116, 99, 118, 123, 124, 117, 118, 123, 128, 144, 119, 118, 115, 118, 128, 103, 143, 125, 141, 115, 123, 132, 116, 97, 121, 121, 137, 133, 135, 106, 117, 147, 126, 134, 139, 137, 144, 129, 134, 132, 143, 111, 126, 131, 121, 126, 124, 125, 123, 120, 137, 118, 121, 141, 131, 130, 140, 131, 131, 132, 138, 123, 110, 119, 120, 149, 134, 136, 129, 117, 134, 133, 120, 121, 125, 119, 134, 129, 132, 138, 111, 127, 138, 122, 117, 111, 129, 132, 117, 127, 115, 130, 140, 128, 124, 119, 112, 115, 127, 122, 123, 137, 142, 135, 127, 110, 123, 126, 138, 112, 125, 126, 137, 144, 140, 133, 136, 124, 140, 110, 122, 116, 113, 143, 115, 125, 124, 121, 106, 129, 129, 143, 129, 136, 130, 134, 128, 134, 105, 123, 130, 131, 128, 104, 118, 127, 120, 115, 137, 133, 131, 131, 116, 123, 130, 115, 115, 103, 142, 120, 124, 143, 139, 122, 133, 125, 115, 125, 142, 120, 128, 126, 104, 132, 120, 125, 107, 129, 118, 136, 104, 132, 112, 128, 132, 130, 121, 120, 124, 129, 121, 141, 118, 114, 124, 121, 134, 116, 138, 124, 123, 136, 109, 120, 138, 136, 133, 119, 115, 128, 126, 100, 114, 109, 121, 131, 125, 134, 111, 130, 139, 142, 124, 107, 127, 125, 119, 128, 132, 137, 123, 118, 122, 138, 127, 138, 130, 149, 120, 112, 124, 111, 102, 123, 135, 120, 134, 119, 128, 98, 112, 120, 125, 117, 113, 138, 120, 122, 135, 108, 140, 126, 122, 145, 146, 117, 131, 111, 145, 125, 119, 121, 117, 112, 123, 123, 129, 129, 120, 126, 125, 124, 133, 122, 104, 127, 124, 127, 124, 122, 118, 131, 126, 128, 111, 136, 127, 120, 123, 119, 134, 129, 109, 130, 113, 124, 120, 127, 123, 152, 131, 134, 130, 113, 132, 121, 131, 124, 147, 128, 135, 116, 132, 130, 132, 135, 115, 129, 128, 122, 117, 142, 120, 114, 125, 116, 121, 122, 118, 134, 124, 131, 132, 124, 133, 116, 119, 133, 133, 120, 111, 120, 124, 126, 138, 142, 116, 127, 119, 133, 126, 118, 111, 120, 124, 120, 137, 127, 132, 134, 121, 117, 129, 131, 119, 128, 131, 133, 126, 120, 120, 121, 144, 118, 116, 139, 133, 125, 123, 118, 128, 130, 122, 128, 121, 135, 102, 139, 133, 106, 116, 119, 126, 126, 123, 129, 121, 127, 108, 114, 132, 130, 113, 122, 124, 124, 133, 118, 129, 115, 133, 140, 120, 122, 138, 128, 106, 130, 127, 109, 134, 115, 123, 143, 134, 117, 113, 120, 110, 119, 125, 133, 150, 121, 144, 128, 109, 136, 132, 135, 138, 133, 126, 114, 139, 117, 118, 118, 126, 122, 127, 114, 125, 128, 127, 133, 129, 114, 140, 124, 129, 131, 127, 130, 132, 121, 139, 127, 124, 129, 130, 129, 123, 131, 130, 141, 111, 129, 141, 150, 105, 133, 110, 114, 122, 121, 136, 121, 127, 129, 129, 125, 140, 131, 125, 146, 130, 112, 128, 127, 143, 138, 130, 148, 131, 116, 136, 131, 129, 142, 133, 126, 108, 132, 128, 133, 116, 125, 108, 125, 129, 114, 112, 132, 136, 139, 140, 120, 133, 114, 142, 119, 134, 113, 144, 126, 110, 149, 132, 124, 128, 114, 116, 107, 137, 116, 154, 105, 119, 132, 148, 116, 136, 116, 130, 109, 114, 116, 127, 124, 128, 115, 141, 138, 140, 135, 140, 120, 125, 136, 107, 131, 125, 122, 134, 122, 130, 117, 130, 116, 135, 111, 113, 119, 125, 113, 125, 107, 119, 110, 126, 134, 117, 138, 104, 112, 135, 103, 126, 128, 125, 133, 115, 120, 110, 135, 128, 136, 142, 135, 132, 136, 131, 125, 127, 150, 130, 134, 137, 121, 124, 127, 129, 122, 132, 121, 121, 141, 133, 122, 115, 122, 133, 133, 124, 131, 138, 134, 91, 135, 126, 121, 133, 121, 111, 129, 110, 116, 112, 108, 127, 117, 113, 131, 132, 134, 106, 138, 134, 125, 134, 123, 125, 112, 128, 125, 118, 119, 90, 121, 120, 117, 119, 114, 133, 130, 140, 133, 118, 126, 123, 153, 133, 108, 133, 129, 127, 138, 120, 114, 101, 120, 124, 132, 111, 114, 126, 118, 127, 128, 115, 125, 120, 112, 139, 127, 121, 134, 128, 111, 106, 118, 105, 135, 115, 129, 135, 97, 136, 143, 141, 143, 133, 135, 108, 124, 140, 126, 132, 150, 121, 121, 121, 122, 126, 136, 120, 128, 117, 144, 141, 138, 107, 125, 131, 119, 123, 143, 131, 123, 117, 121, 121, 126, 120, 109, 140, 134, 110, 122, 139, 139, 127, 151, 128, 123, 129, 121, 108, 117, 119, 127, 121, 129, 140, 109, 125, 123, 138, 116, 125, 132, 130, 120, 117, 145, 142, 127, 117, 107, 125, 131, 132, 119, 121, 125, 119, 111, 152, 132, 135, 115, 112, 118, 112, 106, 151, 128, 114, 126, 124, 137, 150, 119, 121, 120, 130, 131, 118, 129, 137, 130, 121, 122, 123, 117, 131, 133, 123, 127, 131, 131, 123, 102, 136, 149, 141, 126, 142, 115, 158, 138, 117, 133, 127, 132, 129, 125, 115, 125, 133, 121, 124, 113, 115, 141, 117, 128, 105, 135, 121, 121, 117, 139, 118, 129, 121, 136, 105, 133, 127, 142, 127, 124, 132, 118, 119, 121, 107, 123, 105, 127, 140, 128, 140, 127, 128, 123, 122, 127, 130, 123, 119, 126, 122, 135, 139, 126, 123, 120, 127, 114, 133, 131, 124, 122, 139, 129, 126, 139, 133, 120, 163, 132, 110, 119, 116, 116, 131, 103, 143, 135, 139, 131, 121, 129, 122, 128, 128, 130, 134, 126, 130, 114, 128, 128, 110, 141, 118, 131, 114, 124, 135, 136, 128, 131, 143, 130, 123, 125, 139, 134, 117, 129, 119, 127, 121, 129, 123, 139, 130, 140, 128, 115, 123, 138, 121, 126, 120, 107, 124, 115, 125, 144, 130, 113, 143, 116, 127, 128, 137, 143, 115, 144, 134, 117, 124, 116, 129, 126, 125, 130, 132, 133, 120, 128, 140, 120, 112, 117, 128, 132, 132, 116, 102, 139, 125, 125, 122, 112, 110, 130, 119, 107, 128, 110, 104, 124, 130, 125, 135, 131, 121, 142, 137, 134, 120, 133, 132, 137, 142, 134, 112, 114, 121, 125, 119, 105, 142, 120, 130, 140, 106, 122, 132, 132, 115, 120, 112, 140, 116, 135, 117, 144, 106, 129, 129, 120, 122, 112, 126, 132, 131, 128, 134, 111, 124, 130, 125, 126, 124, 122, 133, 126, 102, 118, 105, 104, 125, 119, 125, 134, 118, 121, 144, 108, 135, 120, 126, 122, 132, 148, 124, 143, 133, 133, 129, 131, 115, 144, 118, 124, 123, 111, 125, 113, 137, 120, 117, 116, 118, 129, 132, 124, 125, 132, 139, 126, 134, 129, 117, 112, 101, 135, 141, 102, 128, 140, 118, 127, 110, 142, 127, 111, 108, 121, 123, 103, 111, 131, 125, 137, 130, 110, 133, 137, 110, 122, 111, 114, 117, 130, 119, 132, 114, 127, 127, 122, 114, 124, 119, 136, 125, 127, 129, 120, 127, 146, 113, 117, 118, 115, 132, 127, 124, 129, 123, 122, 125, 118, 118, 118, 125, 143, 140, 113, 141, 113, 122, 112, 134, 116, 117, 126, 135, 123, 120, 161, 120, 134, 137, 144, 133, 130, 117, 128, 124, 115, 122, 130, 121, 118, 129, 137, 126, 131, 127, 124, 123, 109, 115, 138, 128, 118, 141, 136, 117, 121, 137, 122, 132, 123, 103, 116, 107, 158, 123, 129, 100, 152, 136, 132, 104, 124, 114, 143, 130, 136, 141, 135, 128, 114, 125, 132, 123, 112, 127, 110, 127, 165, 119, 125, 114, 116, 116, 144, 125, 118, 127, 102, 126, 121, 135, 121, 113, 112, 133, 131, 132, 127, 160, 124, 131, 112, 118, 99, 126, 115, 142, 136, 105, 110, 132, 143, 107, 115, 117, 125, 129, 119, 130, 130, 133, 119, 110, 125, 129, 132, 109, 140, 121, 135, 113, 150, 126, 131, 124, 116, 117, 125, 115, 122, 124, 141, 109, 114, 135, 116, 113, 127, 125, 118, 101, 127, 129, 144, 126, 112, 120, 119, 102, 109, 121, 104, 133, 147, 118, 127, 126, 127, 123, 120, 124, 137, 123, 122, 135, 135, 147, 133, 119, 118, 109, 118, 135, 121, 122, 136, 110, 125, 128, 109, 132, 135, 135, 136, 125, 131, 114, 129, 121, 122, 144, 125, 133, 135, 132, 122, 131, 107, 122, 139, 99, 133, 116, 119, 120, 112, 123, 135, 103, 119, 106, 121, 123, 127, 140, 131, 130, 123, 125, 123, 119, 136, 147, 137, 114, 127, 132, 136, 136, 121, 109, 147, 141, 138, 133, 130, 118, 134, 113, 118, 143, 105, 134, 134, 127, 128, 111, 110, 122, 133, 116, 116, 130, 130, 124, 149, 120, 120, 123, 127, 114, 111, 128, 136, 123, 130, 106, 136, 117, 120, 119, 139, 123, 129, 111, 125, 137, 132, 114, 135, 126, 132, 134, 113, 113, 113, 127, 111, 131, 116, 132, 135, 134, 116, 120, 122, 129, 103, 128, 128, 113, 121, 146, 118, 126, 131, 110, 127, 133, 124, 121, 122, 140, 141, 135, 132, 123, 127, 152, 135, 126, 142, 133, 113, 140, 123, 116, 128, 127, 126, 130, 125, 130, 128, 129, 116, 128, 106, 134, 110, 133, 132, 128, 123, 117, 105, 111, 136, 122, 134, 127, 128, 106, 104, 132, 135, 119, 128, 140, 139, 135, 129, 127, 130, 121, 122, 143, 106, 149, 118, 122, 133, 137, 154, 118, 137, 117, 127, 117, 118, 114, 113, 127, 121, 112, 132, 137, 143, 148, 129, 107, 114, 122, 130, 128, 137, 129, 137, 133, 134, 119, 123, 146, 128, 123, 127, 131, 133, 123, 130, 131, 131, 125, 123, 134, 129, 139, 124, 134, 110, 132, 139, 109, 121, 100, 136, 131, 114, 118, 138, 124, 151, 134, 120, 125, 137, 122, 126, 114, 122, 112, 127, 118, 139, 134, 137, 137, 123, 147, 105, 126, 133, 126, 116, 138, 130, 133, 139, 117, 140, 142, 124, 110, 127, 141, 132, 130, 133, 127, 140, 134, 123, 115, 121, 135, 137, 104, 120, 114, 121, 123, 113, 127, 127, 96, 131, 132, 115, 135, 130, 128, 123, 118, 122, 127, 108, 121, 140, 97, 114, 112, 134, 111, 125, 141, 129, 130, 131, 124, 139, 133, 130, 130, 112, 122, 129, 122, 132, 129, 125, 130, 120, 111, 110, 117, 122, 132, 129, 139, 123, 115, 136, 141, 124, 134, 121, 124, 120, 130, 137, 116, 111, 126, 114, 113, 122, 107, 128, 102, 138, 120, 128, 126, 137, 122, 117, 128, 127, 133, 116, 125, 131, 121, 126, 127, 123, 128, 123, 129, 120, 125, 115, 120, 115, 140, 113, 139, 123, 131, 129, 143, 117, 116, 113, 120, 122, 122, 137, 107, 128, 123, 141, 121, 127, 133, 149, 130, 121, 147, 110, 131, 125, 132, 123, 120, 126, 115, 120, 129, 122, 117, 123, 124, 121, 133, 140, 129, 131, 135, 120, 116, 133, 144, 127, 104, 108, 128, 115, 115, 139, 136, 125, 129, 133, 139, 142, 115, 143, 139, 120, 118, 128, 134, 149, 116, 130, 136, 119, 138, 130, 131, 139, 122, 136, 117, 111, 133, 121, 128, 122, 125, 106, 119, 129, 127, 120, 111, 123, 140, 120, 133, 126, 121, 137, 109, 113, 135, 144, 149, 125, 117, 146, 118, 128, 124, 107, 126, 132, 108, 126, 127, 116, 119, 121, 133, 133, 133, 106, 132, 120, 123, 117, 123, 130, 142, 134, 125, 124, 124, 124, 147, 129, 134, 122, 133, 124, 123, 139, 106, 125, 123, 143, 135, 124, 112, 130, 135, 124, 129, 124, 126, 131, 127, 140, 136, 133, 125, 117, 117, 116, 122, 124, 133, 130, 138, 122, 125, 148, 137, 128, 130, 149, 110, 115, 113, 143, 109, 125, 123, 133, 128, 123, 116, 133, 133, 120, 137, 125, 133, 122, 118, 131, 131, 127, 115, 100, 129, 124, 145, 108, 128, 120, 119, 135, 116, 123, 129, 142, 110, 133, 111, 125, 133, 121, 122, 134, 125, 133, 120, 125, 131, 130, 106, 126, 128, 125, 135, 120, 126, 106, 98, 141, 133, 134, 122, 119, 112, 126, 132, 127, 140, 124, 121, 150, 121, 120, 117, 137, 131, 117, 133, 130, 120, 139, 136, 138, 127, 129, 124, 125, 127, 118, 130, 124, 147, 127, 127, 134, 144, 95, 129, 113, 115, 122, 115, 116, 119, 102, 145, 129, 126, 118, 128, 157, 133, 134, 143, 142, 118, 143, 110, 109, 125, 122, 150, 119, 120, 128, 91, 130, 130, 123, 108, 115, 146, 127, 126, 123, 133, 115, 129, 123, 136, 130, 127, 130, 140, 115, 119, 124, 120, 129, 116, 121, 129, 126, 130, 126, 132, 122, 118, 127, 117, 127, 127, 114, 122, 126, 115, 111, 130, 126, 122, 128, 121, 112, 127, 111, 122, 124, 133, 142, 113, 127, 125, 129, 127, 126, 130, 142, 133, 114, 115, 133, 125, 125, 122, 116, 121, 130, 141, 122, 133, 138, 137, 130, 117, 139, 137, 133, 127, 117, 125, 122, 139, 131, 120, 133, 146, 123, 135, 127, 142, 127, 133, 129, 132, 133, 143, 131, 140, 144, 126, 115, 130, 135, 128, 125, 146, 121, 136, 126, 109, 135, 119, 131, 117, 119, 112, 127, 104, 151, 126, 127, 115, 132, 136, 129, 120, 123, 147, 137, 132, 108, 127, 160, 112, 134, 133, 119, 135, 130, 122, 120, 103, 128, 118, 125, 108, 117, 136, 137, 125, 116, 115, 116, 100, 133, 126, 119, 121, 126, 137, 124, 129, 132, 125, 132, 125, 129, 125, 124, 117, 122, 124, 137, 126, 151, 113, 122, 129, 128, 116, 109, 121, 134, 125, 123, 117, 101, 118, 111, 138, 106, 120, 124, 121, 134, 126, 119, 121, 113, 122, 129, 128, 133, 130, 144, 128, 107, 139, 123, 132, 135, 122, 117, 99, 140, 132, 124, 132, 136, 131, 117, 141, 141, 142, 136, 112, 126, 111, 110, 134, 129, 121, 144, 120, 134, 133, 106, 122, 127, 137, 113, 128, 121, 138, 134, 129, 121, 122, 123, 130, 136, 135, 125, 114, 109, 120, 123, 115, 137, 122, 129, 128, 115, 120, 125, 100, 130, 116, 130, 115, 133, 117, 111, 135, 129, 129, 119, 136, 117, 111, 124, 104, 122, 133, 135, 163, 122, 130, 121, 130, 137, 116, 135, 135, 130, 112, 126, 123, 124, 135, 127, 128, 134, 108, 103, 124, 110, 129, 124, 127, 122, 124, 145, 124, 133, 131, 114, 124, 125, 113, 142, 118, 117, 122, 137, 120, 123, 121, 138, 117, 120, 126, 126, 115, 131, 113, 113, 128, 131, 116, 122, 122, 117, 135, 104, 130, 130, 134, 147, 120, 120, 122, 121, 120, 124, 138, 123, 128, 139, 122, 131, 106, 122, 114, 130, 137, 133, 139, 111, 92, 112, 116, 137, 129, 126, 126, 132, 131, 109, 126, 125, 136, 127, 94, 136, 101, 114, 144, 125, 134, 115, 132, 118, 124, 129, 124, 119, 135, 125, 127, 122, 121, 119, 121, 132, 129, 128, 122, 125, 121, 138, 127, 127, 130, 124, 117, 125, 139, 121, 118, 127, 127, 126, 117, 117, 110, 124, 114, 124, 116, 125, 139, 130, 110, 134, 137, 107, 130, 137, 142, 131, 133, 109, 123, 127, 138, 107, 123, 128, 120, 138, 131, 137, 138, 119, 137, 128, 118, 133, 122, 130, 152, 135, 144, 133, 125, 120, 128, 138, 119, 116, 126, 135, 119, 136, 116, 141, 133, 138, 135, 114, 151, 124, 152, 133, 102, 115, 122, 133, 117, 103, 125, 138, 99, 99, 120, 115, 116, 135, 111, 113, 125, 139, 124, 113, 131, 125, 125, 116, 124, 123, 132, 125, 122, 144, 118, 130, 126, 124, 148, 133, 133, 121, 121, 126, 110, 133, 134, 132, 124, 119, 117, 116, 144, 123, 129, 135, 109, 126, 138, 124, 119, 134, 121, 128, 136, 135, 121, 130, 122, 125, 119, 117, 122, 128, 131, 132, 116, 129, 139, 134, 126, 123, 123, 135, 134, 148, 109, 127, 124, 126, 134, 149, 130, 139, 110, 126, 114, 112, 131, 135, 123, 124, 129, 129, 125, 136, 130, 115, 132, 134, 142, 137, 125, 116, 115, 107, 103, 124, 94, 128, 112, 143, 132, 120, 123, 124, 141, 120, 131, 121, 129, 131, 126, 154, 134, 137, 116, 123, 124, 138, 136, 121, 112, 121, 122, 123, 114, 128, 131, 120, 116, 110, 118, 125, 135, 120, 119, 116, 139, 125, 139, 127, 127, 122, 124, 112, 133, 144, 133, 128, 118, 114, 126, 133, 128, 153, 129, 131, 131, 146, 133, 140, 119, 115, 115, 123, 132, 126, 129, 100, 135, 131, 107, 130, 135, 111, 147, 121, 119, 127, 131, 133, 124, 131, 126, 125, 123, 131, 142, 124, 122, 121, 116, 136, 128, 131, 105, 134, 134, 109, 134, 142, 124, 118, 116, 113, 106, 90, 125, 121, 136, 135, 113, 134, 126, 122, 103, 113, 113, 118, 132, 124, 112, 123, 104, 132, 104, 123, 129, 116, 131, 121, 132, 122, 127, 117, 135, 110, 120, 134, 124, 131, 134, 125, 123, 118, 132, 122, 126, 123, 114, 128, 132, 126, 109, 107, 130, 133, 124, 120, 123, 135, 105, 118, 115, 128, 121, 129, 121, 100, 122, 123, 120, 127, 117, 132, 119, 114, 127, 114, 144, 127, 126, 126, 109, 123, 111, 124, 123, 105, 116, 126, 131, 115, 118, 140, 113, 118, 120, 132, 120, 123, 120, 108, 135, 126, 123, 136, 125, 134, 124, 138, 108, 134, 124, 112, 133, 129, 113, 118, 129, 107, 110, 136, 78, 124, 119, 121, 135, 138, 133, 138, 153, 115, 139, 118, 139, 123, 114, 115, 135, 131, 118, 123, 124, 136, 120, 121, 109, 138, 124, 140, 118, 128, 128, 117, 124, 120, 149, 155, 135, 132, 132, 129, 138, 126, 119, 129, 119, 131, 106, 131, 118, 139, 112, 127, 139, 146, 122, 127, 128, 101, 155, 119, 136, 112, 130, 137, 129, 137, 127, 132, 107, 122, 144, 116, 146, 133, 132, 127, 127, 127, 121, 142, 124, 123, 115, 137, 111, 119, 124, 129, 160, 130, 129, 129, 116, 133, 138, 115, 117, 131, 137, 137, 127, 134, 124, 110, 134, 115, 118, 145, 119, 131, 135, 112, 142, 132, 122, 136, 118, 140, 120, 121, 117, 126, 128, 127, 139, 138, 129, 142, 116, 134, 129, 138, 127, 107, 129, 129, 127, 126, 137, 124, 114, 127, 125, 112, 124, 120, 132, 131, 117, 129, 134, 135, 115, 126, 118, 128, 128, 107, 139, 142, 111, 128, 130, 119, 122, 119, 133, 133, 107, 113, 145, 132, 123, 141, 130, 123, 129, 119, 134, 115, 154, 122, 136, 132, 141, 108, 124, 122, 136, 118, 126, 136, 144, 129, 125, 109, 115, 130, 120, 113, 117, 129, 138, 129, 118, 128, 124, 142, 119, 135, 113, 126, 131, 119, 121, 114, 127, 132, 135, 126, 121, 141, 132, 107, 123, 117, 106, 116, 122, 130, 122, 117, 121, 105, 124, 116, 137, 147, 130, 137, 122, 118, 134, 125, 132, 112, 139, 127, 132, 111, 132, 111, 129, 121, 134, 134, 135, 114, 124, 118, 123, 117, 126, 128, 118, 135, 138, 121, 114, 131, 127, 115, 144, 138, 117, 121, 137, 115, 114, 115, 127, 131, 132, 107, 107, 116, 134, 112, 106, 114, 127, 120, 137, 123, 113, 129, 126, 133, 129, 108, 127, 124, 110, 122, 131, 141, 128, 131, 130, 127, 119, 136, 113, 120, 138, 110, 100, 126, 138, 135, 125, 135, 124, 129, 131, 125, 115, 113, 152, 115, 125, 121, 127, 130, 145, 131, 113, 120, 133, 122, 112, 125, 127, 128, 156, 125, 118, 111, 132, 125, 140, 114, 115, 124, 126, 123, 121, 136, 138, 121, 120, 148, 128, 172, 118, 113, 126, 136, 126, 122, 130, 123, 147, 127, 131, 146, 129, 119, 124, 116, 132, 128, 122, 136, 136, 115, 121, 131, 134, 131, 139, 123, 126, 158, 126, 132, 126, 114, 123, 132, 82, 126, 134, 115, 113, 119, 136, 119, 126, 131, 139, 97, 137, 136, 129, 122, 113, 135, 124, 108, 133, 125, 122, 124, 121, 116, 119, 151, 123, 139, 131, 123, 122, 139, 146, 122, 127, 121, 119, 109, 127, 137, 105, 135, 129, 116, 130, 138, 129, 116, 114, 132, 133, 131, 130, 118, 110, 139, 131, 121, 118, 119, 128, 121, 109, 131, 129, 137, 121, 127, 112, 123, 121, 115, 119, 114, 116, 141, 108, 116, 119, 111, 138, 149, 109, 131, 143, 112, 128, 126, 124, 127, 116, 92, 134, 127, 132, 133, 114, 132, 126, 115, 134, 123, 138, 119, 129, 119, 116, 130, 141, 121, 109, 112, 129, 141, 129, 114, 121, 111, 123, 128, 116, 101, 135, 132, 118, 114, 129, 125, 139, 116, 118, 133, 124, 108, 116, 125, 125, 122, 126, 131, 109, 138, 114, 113, 123, 128, 131, 150, 131, 117, 124, 134, 116, 118, 139, 125, 120, 126, 122, 117, 130, 122, 129, 113, 112, 129, 128, 125, 106, 121, 139, 122, 124, 121, 133, 128, 117, 132, 111, 66, 128, 134, 119, 114, 116, 123, 128, 119, 131, 116, 119, 109, 123, 121, 139, 116, 132, 119, 123, 137, 131, 128, 111, 134, 133, 122, 138, 130, 134, 120, 118, 102, 122, 126, 137, 129, 136, 112, 121, 122, 101, 113, 134, 127, 109, 140, 103, 118, 123, 131, 117, 112, 119, 145, 135, 128, 120, 122, 118, 131, 122, 137, 118, 118, 104, 131, 117, 122, 125, 124, 124, 125, 136, 133, 117, 120, 123, 128, 112, 108, 122, 121, 123, 125, 112, 123, 131, 104, 122, 119, 119, 124, 137, 151, 139, 125, 153, 123, 95, 138, 122, 132, 137, 122, 135, 112, 108, 130, 137, 130, 140, 117, 128, 129, 116, 126, 123, 125, 119, 121, 130, 120, 123, 128, 120, 109, 110, 132, 123, 148, 149, 128, 139, 126, 128, 126, 117, 113, 116, 120, 125, 128, 124, 123, 110, 128, 124, 115, 117, 139, 109, 108, 132, 121, 124, 126, 127, 115, 136, 128, 130, 135, 119, 123, 129, 130, 138, 118, 142, 127, 135, 146, 148, 127, 125, 135, 121, 116, 125, 127, 108, 147, 132, 131, 114, 133, 132, 126, 133, 111, 146, 125, 123, 130, 133, 142, 129, 130, 111, 120, 106, 138, 142, 128, 117, 129, 120, 113, 131, 131, 126, 123, 122, 131, 130, 107, 139, 115, 114, 141, 136, 129, 130, 102, 142, 139, 133, 134, 120, 120, 143, 125, 124, 128, 127, 137, 121, 130, 132, 125, 115, 132, 125, 130, 128, 106, 134, 127, 124, 128, 129, 152, 121, 136, 136, 121, 135, 125, 126, 124, 133, 137, 126, 140, 129, 122, 117, 131, 105, 120, 123, 119, 117, 133, 116, 95, 124, 118, 110, 116, 131, 112, 133, 156, 123, 138, 124, 129, 134, 120, 100, 124, 138, 121, 130, 106, 131, 142, 125, 118, 123, 125, 132, 123, 123, 138, 118, 114, 120, 131, 110, 131, 125, 103, 132, 103, 125, 125, 126, 133, 134, 123, 116, 134, 115, 121, 117, 120, 113, 137, 107, 105, 137, 121, 130, 127, 131, 127, 122, 134, 125, 139, 135, 153, 108, 109, 114, 115, 113, 119, 113, 121, 129, 120, 134, 137, 136, 112, 142, 125, 110, 128, 111, 126, 133, 134, 125, 136, 130, 146, 116, 128, 122, 135, 119, 123, 130, 125, 123, 118, 130, 110, 133, 120, 110, 131, 124, 119, 104, 122, 141, 133, 129, 135, 140, 147, 139, 134, 140, 134, 118, 136, 110, 127, 120, 132, 138, 137, 132, 117, 113, 135, 127, 124, 138, 118, 109, 125, 134, 131, 146, 129, 119, 113, 149, 124, 113, 121, 118, 107, 135, 114, 132, 141, 121, 118, 120, 137, 114, 126, 114, 130, 150, 106, 141, 141, 130, 98, 110, 118, 130, 145, 113, 111, 132, 126, 134, 131, 135, 124, 162, 132, 121, 121, 112, 126, 131, 103, 133, 139, 108, 134, 130, 119, 117, 124, 113, 124, 116, 129, 129, 119, 103, 133, 121, 127, 110, 124, 113, 138, 120, 116, 125, 118, 111, 110, 125, 123, 115, 131, 134, 132, 119, 120, 130, 129, 104, 128, 121, 120, 105, 121, 120, 138, 117, 126, 128, 134, 130, 137, 127, 116, 130, 121, 134, 130, 132, 120, 141, 114, 107, 113, 138, 135, 132, 117, 133, 126, 133, 131, 127, 139, 118, 122, 132, 139, 115, 135, 114, 131, 145, 140, 129, 136, 122, 122, 125, 141, 132, 139, 152, 125, 141, 125, 107, 115, 122, 112, 126, 122, 137, 139, 125, 130, 114, 136, 128, 125, 133, 129, 121, 126, 140, 121, 103, 128, 116, 110, 136, 126, 120, 149, 108, 135, 111, 125, 125, 102, 108, 114, 122, 129, 140, 131, 127, 131, 137, 142, 130, 119, 135, 105, 143, 139, 140, 97, 129, 124, 112, 118, 126, 118, 138, 120, 125, 134, 135, 142, 119, 125, 127, 132, 124, 138, 142, 117, 144, 114, 124, 135, 129, 122, 113, 133, 114, 128, 127, 125, 137, 127, 120, 140, 127, 139, 133, 140, 114, 145, 116, 122, 111, 126, 135, 127, 120, 113, 125, 105, 117, 125, 150, 145, 136, 133, 136, 118, 117, 134, 113, 115, 110, 124, 125, 126, 127, 141, 130, 110, 126, 134, 107, 140, 126, 144, 123, 121, 116, 111, 125, 136, 106, 139, 141, 130, 122, 145, 144, 127, 121, 117, 103, 135, 137, 125, 108, 130, 125, 128, 125, 138, 130, 131, 115, 128, 122, 122, 114, 105, 116, 109, 137, 113, 118, 125, 128, 123, 132, 137, 127, 130, 122, 123, 113, 125, 110, 145, 127, 132, 129, 112, 123, 134, 103, 134, 112, 122, 126, 138, 122, 140, 119, 121, 100, 135, 141, 118, 129, 110, 134, 137, 113, 100, 113, 136, 123, 131, 132, 117, 123, 106, 135, 110, 122, 129, 128, 120, 127, 115, 120, 117, 127, 126, 119, 125, 116, 117, 120, 145, 114, 119, 125, 115, 128, 138, 122, 118, 134, 147, 129, 142, 124, 143, 112, 112, 113, 122, 120, 126, 130, 123, 125, 117, 130, 137, 131, 121, 122, 140, 114, 116, 136, 110, 155, 121, 139, 111, 118, 124, 143, 111, 124, 143, 137, 132, 127, 120, 140, 124, 110, 141, 117, 125, 121, 120, 113, 124, 126, 128, 132, 138, 119, 115, 127, 142, 128, 118, 131, 122, 110, 119, 120, 110, 122, 139, 119, 143, 138, 110, 121, 123, 126, 122, 113, 124, 124, 136, 116, 126, 132, 138, 142, 121, 141, 115, 120, 128, 136, 141, 131, 135, 129, 134, 129, 123, 133, 118, 127, 123, 120, 110, 132, 122, 127, 130, 119, 126, 124, 120, 152, 116, 108, 115, 128, 137, 124, 124, 117, 100, 114, 130, 128, 134, 144, 130, 143, 122, 146, 133, 128, 134, 134, 127, 124, 129, 127, 129, 144, 129, 112, 101, 132, 116, 112, 118, 132, 120, 120, 122, 126, 140, 125, 136, 115, 122, 134, 104, 125, 117, 123, 111, 130, 128, 120, 125, 123, 118, 133, 134, 140, 114, 133, 122, 138, 114, 123, 126, 134, 131, 129, 123, 153, 112, 136, 129, 129, 125, 113, 121, 131, 110, 122, 122, 104, 123, 136, 121, 123, 140, 120, 119, 118, 117, 114, 128, 126, 142, 126, 117, 107, 145, 104, 128, 126, 111, 134, 127, 118, 127, 118, 114, 117, 120, 127, 125, 117, 141, 123, 108, 121, 120, 134, 139, 126, 152, 121, 130, 122, 141, 141, 123, 119, 136, 141, 115, 115, 119, 133, 116, 110, 124, 137, 115, 112, 121, 120, 122, 125, 145, 121, 116, 127, 128, 126, 140, 136, 144, 136, 122, 120, 126, 119, 125, 138, 123, 120, 127, 128, 124, 136, 133, 140, 134, 132, 140, 131, 105, 134, 121, 116, 114, 121, 130, 147, 135, 122, 112, 144, 145, 134, 114, 145, 119, 132, 112, 122, 127, 123, 151, 123, 106, 125, 129, 135, 131, 127, 114, 132, 110, 125, 117, 113, 128, 131, 105, 120, 107, 97, 132, 139, 135, 121, 133, 125, 136, 132, 116, 145, 108, 113, 129, 124, 143, 140, 119, 122, 134, 139, 112, 108, 115, 123, 130, 129, 129, 121, 114, 122, 127, 127, 118, 120, 110, 135, 127, 105, 111, 115, 125, 113, 142, 110, 121, 142, 127, 128, 125, 153, 132, 120, 113, 123, 121, 126, 120, 132, 117, 144, 130, 138, 110, 126, 134, 159, 103, 135, 107, 128, 125, 115, 124, 130, 120, 122, 131, 126, 137, 123, 158, 131, 112, 130, 125, 150, 119, 126, 136, 122, 118, 122, 118, 117, 116, 137, 114, 120, 110, 135, 124, 139, 116, 129, 118, 146, 138, 111, 126, 117, 126, 121, 107, 117, 114, 135, 130, 115, 129, 134, 121, 122, 135, 128, 126, 108, 124, 143, 119, 115, 121, 114, 128, 143, 124, 123, 116, 131, 122, 125, 131, 107, 138, 148, 123, 123, 112, 126, 125, 146, 120, 130, 113, 132, 136, 128, 110, 124, 141, 114, 111, 119, 142, 140, 133, 132, 120, 120, 128, 138, 126, 116, 133, 120, 128, 133, 126, 123, 119, 133, 141, 106, 133, 109, 129, 128, 152, 130, 121, 124, 120, 105, 123, 122, 129, 121, 116, 129, 126, 125, 125, 123, 127, 139, 111, 105, 117, 115, 126, 129, 122, 131, 141, 127, 125, 121, 140, 120, 114, 135, 118, 123, 106, 125, 120, 126, 137, 140, 111, 132, 113, 116, 126, 122, 131, 126, 131, 116, 120, 138, 128, 116, 132, 124, 136, 109, 146, 130, 130, 122, 128, 128, 125, 119, 116, 117, 139, 132, 110, 118, 133, 135, 107, 133, 122, 127, 110, 121, 129, 129, 135, 137, 120, 110, 127, 131, 133, 115, 115, 122, 102, 120, 127, 122, 130, 100, 133, 138, 137, 113, 131, 128, 123, 128, 120, 104, 137, 132, 126, 109, 120, 142, 122, 127, 137, 127, 145, 111, 120, 125, 109, 130, 114, 114, 123, 137, 135, 118, 126, 129, 137, 120, 135, 125, 120, 128, 146, 109, 139, 131, 136, 142, 135, 105, 118, 119, 123, 127, 100, 130, 135, 116, 128, 114, 108, 123, 122, 122, 134, 126, 134, 125, 130, 110, 138, 119, 153, 127, 123, 127, 140, 136, 111, 133, 138, 129, 120, 128, 129, 143, 125, 136, 127, 129, 108, 130, 124, 134, 133, 122, 133, 122, 121, 101, 126, 149, 126, 145, 129, 132, 118, 112, 113, 137, 119, 107, 125, 128, 120, 112, 133, 120, 139, 125, 120, 117, 135, 121, 138, 123, 127, 136, 115, 115, 135, 128, 123, 130, 140, 124, 119, 123, 113, 141, 113, 124, 113, 136, 106, 121, 123, 109, 109, 138, 112, 130, 130, 119, 123, 149, 118, 136, 132, 127, 125, 127, 129, 110, 127, 125, 134, 128, 123, 123, 115, 124, 114, 129, 140, 147, 112, 120, 122, 130, 116, 113, 124, 120, 131, 105, 135, 107, 124, 121, 138, 127, 117, 130, 115, 120, 130, 106, 128, 131, 116, 139, 113, 111, 124, 116, 128, 116, 124, 129, 107, 115, 130, 132, 113, 129, 133, 118, 134, 113, 120, 114, 107, 106, 124, 126, 129, 139, 140, 137, 129, 118, 132, 126, 121, 126, 141, 133, 136, 137, 122, 132, 123, 120, 124, 131, 141, 128, 127, 141, 124, 122, 144, 123, 110, 124, 127, 128, 124, 114, 117, 142, 127, 116, 128, 121, 130, 125, 126, 118, 122, 116, 132, 115, 128, 126, 127, 114, 136, 125, 127, 119, 123, 136, 118, 110, 112, 121, 133, 116, 122, 132, 137, 119, 147, 120, 125, 127, 115, 135, 127, 110, 120, 123, 114, 91, 120, 120, 129, 119, 122, 122, 105, 117, 114, 113, 139, 114, 137, 122, 111, 126, 131, 129, 130, 136, 143, 138, 132, 123, 123, 123, 132, 125, 109, 112, 121, 126, 122, 107, 123, 123, 133, 116, 129, 130, 124, 122, 129, 122, 118, 113, 129, 126, 125, 122, 134, 137, 115, 129, 155, 124, 137, 115, 130, 126, 129, 134, 153, 117, 125, 136, 111, 113, 130, 141, 117, 122, 128, 123, 116, 117, 136, 130, 133, 116, 142, 104, 117, 113, 131, 110, 132, 135, 134, 131, 129, 115, 130, 122, 127, 122, 121, 141, 130, 138, 122, 121, 132, 127, 130, 132, 119, 105, 108, 123, 123, 122, 130, 127, 123, 120, 124, 137, 121, 129, 122, 119, 143, 132, 122, 126, 115, 118, 138, 154, 122, 103, 128, 119, 126, 132, 143, 138, 113, 124, 117, 127, 119, 127, 113, 152, 120, 146, 127, 134, 128, 116, 118, 129, 124, 107, 107, 125, 115, 158, 131, 130, 120, 118, 121, 127, 128, 130, 138, 126, 122, 114, 123, 132, 123, 113, 131, 116, 132, 135, 132, 132, 137, 124, 122, 134, 112, 130, 124, 117, 120, 124, 123, 118, 131, 117, 128, 123, 144, 124, 134, 127, 120, 136, 115, 115, 127, 94, 115, 139, 123, 121, 118, 126, 123, 133, 128, 106, 132, 119, 131, 132, 125, 163, 136, 118, 129, 122, 141, 107, 139, 131, 124, 126, 108, 128, 107, 113, 120, 133, 128, 122, 121, 147, 115, 112, 117, 132, 115, 110, 119, 141, 127, 132, 122, 126, 154, 121, 129, 120, 117, 120, 114, 129, 114, 118, 127, 115, 139, 98, 136, 114, 149, 132, 114, 132, 125, 128, 125, 128, 135, 109, 125, 125, 119, 145, 130, 117, 126, 132, 125, 136, 118, 113, 130, 116, 113, 135, 120, 118, 122, 131, 125, 133, 121, 144, 124, 113, 126, 133, 111, 124, 122, 123, 119, 128, 130, 123, 116, 134, 117, 136, 108, 109, 139, 112, 119, 115, 142, 133, 123, 134, 115, 137, 123, 111, 127, 130, 126, 134, 138, 130, 119, 121, 132, 116, 121, 136, 126, 127, 109, 124, 130, 130, 135, 139, 125, 117, 123, 120, 131, 138, 151, 121, 137, 147, 132, 137, 136, 145, 134, 136, 136, 131, 119, 129, 126, 136, 135, 119, 126, 130, 112, 132, 104, 133, 130, 117, 132, 125, 119, 130, 114, 137, 121, 131, 127, 132, 132, 115, 103, 139, 121, 132, 111, 104, 129, 112, 122, 134, 125, 120, 124, 129, 127, 130, 113, 133, 127, 122, 134, 139, 144, 122, 128, 132, 130, 130, 134, 112, 131, 128, 112, 120, 113, 125, 111, 145, 123, 132, 123, 112, 121, 121, 119, 131, 124, 107, 132, 122, 122, 131, 136, 122, 104, 116, 124, 125, 121, 145, 105, 137, 122, 131, 112, 123, 134, 127, 127, 109, 129, 114, 131, 115, 124, 121, 143, 134, 124, 128, 140, 133, 125, 102, 115, 123, 142, 130, 123, 124, 116, 124, 114, 135, 127, 122, 104, 129, 116, 132, 133, 125, 109, 119, 125, 133, 124, 119, 94, 116, 131, 122, 115, 124, 133, 111, 140, 123, 119, 118, 127, 147, 141, 130, 125, 110, 135, 115, 125, 141, 120, 126, 122, 114, 148, 125, 131, 142, 121, 142, 116, 126, 113, 120, 126, 112, 127, 111, 123, 129, 136, 128, 158, 125, 141, 113, 125, 123, 104, 119, 108, 118, 130, 117, 102, 113, 137, 135, 117, 135, 125, 121, 126, 129, 130, 121, 117, 112, 117, 120, 132, 121, 121, 132, 140, 122, 123, 135, 128, 130, 129, 126, 145, 142, 135, 124, 116, 138, 119, 141, 135, 126, 130, 125, 124, 122, 128, 154, 116, 141, 133, 127, 136, 114, 129, 138, 131, 118, 125, 136, 112, 142, 128, 142, 124, 132, 133, 107, 122, 125, 125, 110, 140, 130, 129, 122, 121, 131, 114, 136, 125, 109, 113, 117, 128, 125, 136, 130, 135, 137, 116, 110, 108, 106, 130, 111, 144, 134, 112, 134, 131, 128, 120, 131, 123, 117, 112, 119, 127, 131, 113, 129, 125, 105, 115, 156, 111, 126, 122, 137, 121, 143, 119, 121, 120, 103, 122, 130, 139, 99, 121, 124, 111, 131, 129, 141, 113, 135, 138, 130, 133, 135, 110, 138, 163, 122, 129, 134, 114, 143, 118, 125, 124, 128, 115, 126, 123, 131, 131, 143, 138, 116, 124, 133, 130, 131, 140, 127, 158, 127, 121, 109, 109, 128, 120, 113, 130, 134, 144, 129, 126, 139, 131, 118, 128, 106, 108, 102, 125, 117, 145, 113, 134, 119, 123, 134, 144, 122, 122, 110, 127, 117, 123, 150, 147, 130, 114, 126, 126, 117, 130, 118, 132, 136, 129, 133, 125, 115, 116, 118, 128, 134, 127, 134, 143, 126, 124, 121, 129, 119, 108, 126, 122, 133, 135, 147, 116, 131, 127, 127, 126, 128, 124, 116, 131, 116, 124, 159, 133, 130, 121, 126, 141, 136, 131, 123, 129, 101, 122, 121, 141, 139, 137, 144, 121, 123, 109, 120, 134, 124, 125, 123, 129, 118, 129, 133, 116, 117, 116, 108, 130, 130, 120, 115, 118, 114, 125, 119, 120, 129, 134, 121, 123, 129, 128, 150, 133, 133, 124, 122, 140, 126, 138, 131, 125, 134, 126, 119, 119, 133, 124, 128, 119, 119, 123, 131, 113, 120, 122, 117, 145, 116, 124, 125, 119, 122, 126, 112, 125, 124, 136, 122, 104, 134, 120, 130, 121, 130, 129, 123, 129, 117, 127, 124, 111, 129, 116, 126, 134, 131, 130, 134, 142, 129, 125, 134, 107, 131, 120, 130, 129, 126, 143, 132, 107, 138, 133, 133, 140, 135, 130, 139, 142, 147, 124, 103, 136, 115, 127, 126, 124, 126, 136, 125, 126, 144, 121, 139, 99, 130, 116, 122, 110, 117, 134, 125, 118, 137, 114, 120, 122, 113, 131, 130, 135, 121, 118, 130, 119, 143, 135, 133, 117, 141, 142, 110, 132, 120, 125, 135, 129, 139, 138, 130, 148, 126, 133, 120, 127, 127, 119, 135, 133, 118, 121, 115, 129, 124, 116, 118, 138, 135, 130, 131, 113, 142, 126, 123, 129, 138, 117, 120, 117, 130, 127, 139, 121, 144, 147, 116, 120, 101, 117, 119, 110, 118, 125, 129, 106, 136, 131, 126, 128, 125, 137, 130, 131, 156, 122, 145, 145, 129, 126, 138, 119, 132, 111, 112, 114, 126, 122, 114, 152, 115, 147, 130, 130, 119, 132, 144, 128, 125, 130, 107, 107, 126, 120, 131, 126, 113, 139, 119, 130, 137, 140, 134, 142, 129, 135, 137, 128, 133, 128, 133, 124, 121, 124, 133, 129, 120, 123, 137, 114, 140, 142, 124, 118, 124, 135, 135, 133, 128, 119, 111, 112, 126, 124, 116, 129, 119, 117, 122, 116, 125, 127, 115, 128, 135, 121, 112, 115, 133, 132, 119, 122, 129, 139, 123, 123, 134, 130, 143, 121, 118, 118, 112, 135, 162, 138, 120, 110, 133, 128, 128, 143, 124, 156, 106, 120, 119, 120, 127, 101, 113, 121, 123, 136, 126, 138, 132, 126, 125, 109, 113, 123, 133, 130, 143, 121, 115, 128, 126, 134, 111, 135, 97, 119, 122, 128, 137, 120, 131, 128, 128, 137, 118, 104, 120, 135, 114, 122, 122, 128, 124, 135, 119, 118, 129, 118, 129, 130, 113, 132, 121, 141, 137, 147, 140, 121, 139, 119, 134, 143, 137, 133, 126, 116, 128, 132, 113, 119, 125, 122, 131, 133, 120, 130, 119, 115, 116, 130, 132, 111, 129, 117, 149, 124, 119, 134, 128, 124, 133, 125, 116, 118, 133, 116, 127, 115, 127, 121, 117, 142, 126, 115, 129, 128, 112, 111, 116, 129, 129, 125, 136, 117, 140, 119, 143, 128, 127, 136, 111, 130, 129, 120, 116, 144, 140, 144, 117, 113, 145, 118, 110, 134, 129, 126, 115, 120, 138, 116, 106, 143, 121, 130, 120, 116, 131, 134, 136, 136, 121, 133, 124, 135, 112, 118, 121, 156, 129, 152, 121, 121, 139, 119, 132, 126, 114, 128, 141, 144, 141, 105, 137, 128, 118, 136, 120, 121, 120, 130, 128, 139, 126, 117, 126, 108, 120, 134, 125, 144, 121, 127, 111, 138, 120, 111, 113, 126, 132, 118, 117, 126, 102, 118, 142, 119, 147, 118, 115, 121, 125, 125, 134, 132, 125, 112, 126, 126, 135, 117, 137, 125, 131, 121, 133, 128, 121, 137, 125, 117, 125, 112, 129, 119, 121, 136, 147, 109, 124, 139, 125, 123, 129, 132, 121, 129, 112, 123, 128, 104, 116, 138, 111, 128, 121, 127, 140, 123, 116, 118, 124, 126, 128, 109, 130, 125, 133, 125, 117, 104, 125, 123, 119, 134, 122, 123, 139, 115, 137, 131, 117, 128, 125, 112, 131, 128, 120, 131, 117, 142, 119, 112, 113, 125, 125, 115, 118, 139, 103, 111, 109, 114, 113, 128, 100, 113, 121, 118, 135, 111, 138, 121, 156, 118, 129, 136, 116, 145, 102, 134, 126, 125, 116, 108, 124, 117, 119, 126, 104, 106, 138, 116, 119, 136, 97, 128, 129, 124, 132, 132, 120, 121, 122, 121, 132, 131, 132, 134, 100, 146, 132, 120, 113, 116, 138, 113, 110, 118, 122, 117, 122, 122, 132, 120, 127, 121, 118, 128, 121, 114, 125, 143, 101, 122, 129, 130, 119, 121, 125, 123, 118, 111, 119, 124, 134, 128, 126, 112, 109, 135, 133, 113, 125, 128, 127, 129, 136, 132, 123, 129, 133, 122, 121, 130, 124, 119, 111, 127, 106, 123, 139, 127, 137, 114, 133, 130, 120, 103, 128, 123, 114, 129, 113, 117, 119, 124, 136, 128, 120, 128, 112, 130, 102, 110, 152, 125, 107, 125, 127, 127, 155, 124, 121, 123, 121, 133, 133, 113, 118, 103, 124, 139, 124, 115, 138, 119, 125, 121, 129, 140, 124, 129, 121, 125, 114, 129, 138, 138, 130, 127, 112, 106, 118, 119, 132, 130, 128, 127, 117, 115, 140, 128, 127, 134, 131, 130, 120, 128, 147, 115, 122, 129, 141, 134, 118, 123, 123, 119, 111, 134, 133, 105, 147, 114, 119, 134, 125, 139, 127, 125, 136, 121, 131, 124, 126, 123, 126, 110, 141, 105, 120, 122, 130, 132, 121, 121, 135, 109, 121, 112, 142, 135, 135, 125, 112, 117, 135, 120, 124, 128, 130, 127, 130, 109, 132, 114, 128, 113, 111, 135, 130, 111, 144, 130, 110, 126, 117, 106, 117, 129, 127, 116, 133, 139, 123, 114, 154, 132, 124, 123, 138, 131, 124, 115, 95, 138, 125, 105, 142, 132, 115, 124, 122, 145, 135, 133, 99, 123, 142, 147, 122, 120, 111, 147, 144, 126, 132, 131, 132, 142, 123, 122, 117, 113, 133, 131, 127, 123, 126, 115, 133, 127, 128, 121, 122, 113, 126, 119, 135, 125, 125, 125, 122, 124, 127, 130, 121, 123, 127, 127, 112, 127, 136, 134, 134, 121, 111, 128, 131, 119, 126, 129, 110, 115, 125, 133, 140, 106, 137, 135, 132, 126, 151, 143, 111, 139, 139, 129, 135, 124, 122, 127, 122, 122, 112, 127, 117, 142, 105, 117, 144, 130, 111, 139, 133, 132, 114, 131, 119, 116, 117, 130, 127, 121, 132, 130, 108, 114, 97, 125, 122, 123, 119, 128, 126, 113, 124, 108, 144, 135, 123, 138, 139, 127, 113, 110, 118, 119, 129, 119, 134, 153, 128, 122, 121, 107, 122, 124, 114, 139, 110, 132, 131, 137, 121, 116, 119, 128, 118, 132, 128, 123, 127, 139, 132, 141, 122, 123, 123, 125, 114, 125, 116, 124, 114, 117, 123, 124, 132, 132, 127, 126, 123, 126, 117, 114, 134, 111, 111, 136, 142, 132, 131, 137, 117, 144, 149, 127, 122, 132, 131, 114, 145, 137, 125, 132, 102, 116, 138, 134, 135, 121, 120, 124, 124, 145, 125, 142, 137, 130, 110, 111, 117, 129, 127, 119, 115, 116, 120, 135, 123, 120, 138, 119, 130, 137, 126, 131, 131, 135, 118, 122, 134, 136, 136, 124, 113, 141, 129, 106, 127, 116, 114, 117, 143, 129, 104, 138, 106, 107, 108, 118, 120, 125, 124, 138, 112, 137, 119, 116, 120, 117, 137, 111, 127, 125, 115, 99, 106, 133, 131, 118, 125, 133, 134, 125, 133, 115, 135, 138, 131, 131, 113, 132, 125, 122, 122, 127, 121, 126, 123, 135, 110, 122, 119, 135, 116, 114, 133, 127, 134, 148, 138, 127, 113, 142, 122, 111, 127, 116, 119, 116, 135, 105, 138, 134, 153, 144, 132, 133, 133, 111, 120, 128, 134, 118, 115, 115, 118, 124, 114, 129, 110, 132, 140, 135, 129, 144, 140, 120, 121, 118, 106, 133, 135, 131, 128, 116, 115, 115, 123, 126, 140, 141, 132, 121, 130, 151, 108, 127, 141, 128, 107, 125, 106, 125, 125, 125, 121, 117, 108, 125, 135, 114, 115, 130, 117, 144, 114, 125, 112, 130, 133, 142, 129, 137, 119, 118, 132, 136, 126, 135, 130, 126, 136, 131, 139, 116, 142, 123, 132, 132, 132, 136, 120, 124, 131, 129, 129, 133, 122, 145, 118, 127, 124, 122, 112, 121, 129, 129, 109, 124, 123, 125, 121, 108, 140, 154, 121, 119, 112, 115, 122, 136, 119, 113, 122, 131, 131, 95, 112, 122, 136, 119, 123, 145, 142, 144, 119, 118, 132, 123, 132, 134, 117, 141, 113, 138, 145, 133, 153, 127, 117, 100, 122, 144, 131, 122, 125, 122, 124, 126, 128, 125, 122, 123, 132, 136, 134, 144, 133, 118, 149, 127, 123, 111, 130, 126, 118, 145, 123, 144, 127, 140, 123, 112, 120, 133, 113, 127, 121, 117, 135, 127, 122, 132, 102, 131, 124, 125, 139, 143, 119, 114, 138, 128, 118, 118, 112, 130, 137, 132, 131, 112, 120, 135, 120, 128, 139, 120, 97, 122, 126, 129, 129, 119, 133, 124, 126, 135, 136, 115, 132, 136, 107, 120, 114, 131, 123, 138, 115, 150, 132, 114, 117, 114, 128, 138, 120, 145, 125, 123, 136, 123, 116, 139, 121, 138, 134, 125, 125, 139, 119, 119, 128, 131, 122, 114, 127, 122, 129, 135, 141, 144, 123, 137, 132, 131, 128, 110, 126, 125, 129, 117, 117, 142, 102, 137, 111, 118, 136, 113, 106, 117, 139, 132, 117, 129, 131, 136, 133, 144, 132, 129, 129, 119, 125, 113, 120, 142, 127, 125, 131, 122, 130, 131, 128, 130, 140, 122, 130, 127, 102, 137, 108, 124, 124, 131, 114, 125, 129, 146, 112, 131, 129, 127, 127, 126, 117, 128, 123, 132, 104, 124, 121, 130, 140, 133, 141, 141, 134, 125, 125, 121, 128, 128, 122, 135, 120, 136, 124, 124, 138, 137, 127, 138, 129, 148, 121, 142, 153, 127, 113, 142, 113, 104, 126, 120, 116, 138, 141, 118, 127, 126, 120, 100, 128, 130, 129, 116, 132, 111, 129, 137, 127, 118, 130, 104, 117, 128, 139, 124, 130, 119, 131, 113, 122, 136, 120, 114, 142, 134, 130, 125, 125, 131, 124, 122, 110, 122, 102, 129, 127, 104, 139, 120, 125, 115, 125, 128, 142, 131, 142, 122, 121, 132, 127, 116, 111, 119, 120, 126, 129, 121, 136, 110, 123, 127, 137, 129, 122, 129, 120, 129, 119, 123, 110, 127, 120, 135, 122, 130, 123, 126, 116, 139, 125, 122, 134, 126, 132, 129, 131, 125, 126, 132, 105, 116, 116, 128, 114, 128, 129, 140, 133, 137, 119, 120, 145, 119, 125, 127, 122, 102, 120, 149, 136, 115, 130, 139, 132, 144, 109, 128, 121, 142, 145, 134, 149, 134, 123, 129, 132, 123, 126, 125, 114, 111, 124, 127, 108, 127, 129, 138, 127, 125, 116, 118, 123, 136, 127, 127, 114, 125, 127, 141, 119, 140, 132, 124, 126, 129, 144, 132, 125, 125, 118, 119, 120, 137, 103, 147, 131, 115, 113, 114, 124, 130, 144, 123, 129, 129, 118, 126, 129, 126, 125, 129, 127, 120, 118, 132, 138, 124, 120, 114, 130, 118, 139, 126, 132, 116, 107, 127, 118, 128, 122, 106, 118, 136, 109, 126, 120, 113, 125, 144, 130, 108, 135, 111, 116, 125, 123, 150, 141, 145, 113, 113, 134, 128, 119, 127, 137, 123, 126, 123, 113, 125, 137, 110, 143, 118, 123, 117, 157, 134, 119, 135, 135, 129, 118, 138, 123, 133, 96, 127, 121, 132, 121, 110, 122, 116, 121, 117, 141, 118, 114, 121, 133, 129, 137, 121, 120, 123, 120, 129, 128, 120, 130, 130, 130, 134, 108, 143, 126, 138, 116, 137, 124, 150, 135, 123, 117, 122, 125, 128, 107, 118, 115, 108, 137, 110, 134, 108, 142, 141, 107, 129, 107, 133, 139, 126, 132, 124, 127, 127, 124, 116, 95, 120, 128, 122, 126, 136, 141, 145, 129, 118, 126, 126, 163, 115, 117, 114, 122, 141, 138, 125, 116, 134, 131, 147, 127, 119, 123, 133, 125, 140, 120, 125, 131, 128, 120, 110, 119, 139, 124, 135, 127, 123, 120, 121, 153, 129, 111, 135, 111, 137, 125, 123, 128, 125, 112, 123, 111, 127, 112, 116, 126, 129, 121, 126, 126, 135, 129, 133, 112, 114, 108, 143, 139, 126, 128, 138, 123, 132, 119, 153, 109, 126, 124, 137, 128, 114, 123, 122, 115, 127, 139, 140, 120, 120, 147, 130, 127, 106, 124, 136, 128, 129, 109, 123, 133, 115, 127, 127, 122, 120, 117, 132, 108, 123, 134, 122, 138, 121, 128, 115, 121, 142, 113, 134, 119, 110, 105, 129, 121, 130, 136, 128, 132, 111, 116, 148, 128, 130, 117, 121, 132, 134, 115, 127, 116, 141, 125, 132, 127, 124, 132, 130, 128, 122, 120, 126, 124, 127, 123, 130, 120, 129, 114, 111, 134, 143, 106, 111, 132, 125, 131, 115, 132, 123, 136, 120, 108, 126, 136, 113, 127, 137, 128, 126, 129, 133, 115, 122, 124, 128, 146, 115, 118, 123, 128, 127, 128, 139, 130, 141, 112, 118, 117, 132, 104, 118, 111, 133, 110, 135, 119, 143, 123, 124, 128, 124, 138, 128, 118, 129, 114, 133, 115, 115, 129, 134, 123, 136, 109, 132, 139, 100, 123, 113, 128, 123, 129, 120, 115, 85, 130, 138, 123, 123, 133, 129, 125, 137, 142, 93, 126, 170, 130, 131, 132, 134, 124, 122, 130, 103, 122, 131, 111, 111, 133, 137, 88, 130, 133, 120, 141, 114, 118, 130, 116, 135, 104, 121, 136, 125, 113, 122, 126, 117, 132, 124, 121, 168, 89, 126, 135, 131, 116, 113, 139, 126, 132, 120, 106, 109, 149, 136, 138, 131, 140, 125, 136, 153, 121, 118, 129, 127, 142, 118, 126, 134, 119, 108, 101, 132, 113, 144, 122, 116, 139, 132, 118, 121, 138, 152, 130, 137, 109, 126, 115, 105, 150, 117, 130, 104, 133, 128, 102, 103, 129, 121, 107, 116, 135, 121, 124, 125, 142, 147, 128, 117, 112, 128, 125, 128, 129, 130, 123, 117, 137, 130, 118, 125, 123, 126, 132, 116, 124, 140, 142, 143, 121, 141, 136, 134, 127, 105, 119, 137, 115, 128, 119, 121, 134, 142, 137, 117, 124, 138, 123, 127, 128, 113, 110, 129, 146, 123, 127, 115, 123, 121, 139, 141, 139, 123, 130, 123, 136, 134, 127, 117, 133, 111, 144, 139, 116, 126, 128, 128, 144, 127, 118, 111, 117, 123, 124, 134, 127, 120, 117, 121, 117, 124, 116, 116, 126, 116, 112, 118, 119, 135, 138, 111, 132, 125, 115, 95, 119, 151, 101, 118, 132, 113, 126, 105, 129, 112, 122, 121, 124, 119, 126, 120, 123, 150, 114, 135, 112, 104, 127, 133, 122, 110, 123, 124, 123, 123, 147, 132, 123, 125, 124, 126, 127, 128, 127, 122, 147, 122, 127, 96, 122, 126, 101, 100, 119, 124, 119, 110, 112, 118, 106, 130, 147, 125, 142, 120, 111, 177, 134, 128, 143, 132, 119, 119, 136, 113, 107, 98, 119, 153, 121, 143, 119, 132, 124, 123, 131, 127, 124, 136, 120, 116, 121, 142, 95, 99, 118, 154, 135, 129, 122, 142, 110, 136, 111, 131, 124, 125, 138, 125, 144, 128, 115, 134, 142, 84, 96, 123, 112, 142, 130, 116, 135, 140, 126, 115, 122, 127, 133, 105, 132, 125, 136, 121, 101, 117, 106, 140, 116, 128, 138, 126, 101, 108, 122, 143, 127, 84, 144, 119, 98, 126, 130, 120, 108, 135, 149, 130, 114, 136, 110, 119, 122, 124, 129, 138, 143, 118, 135, 113, 122, 112, 111, 135, 123, 123, 126, 130, 147, 151, 127, 109, 124, 113, 123, 139, 128, 128, 124, 131, 119, 138, 113, 100, 126, 139, 130, 112, 137, 115, 148, 115, 116, 123, 113, 131, 134, 109, 104, 115, 162, 136, 125, 126, 130, 135, 140, 119, 140, 116, 103, 116, 105, 146, 108, 128, 125, 120, 121, 120, 110, 103, 111, 111, 114, 115, 125, 151, 147, 95, 144, 118, 112, 128, 119, 123, 117, 125, 110, 119, 120, 125, 116, 121, 136, 99, 128, 143, 136, 100, 102, 129, 126, 129, 132, 109, 133, 142, 141, 125, 101, 145, 125, 116, 131, 131, 111, 165, 148, 138, 121, 136, 117, 123, 112, 139, 116, 125, 127, 134, 124, 144, 129, 118, 140, 128, 125, 117, 109, 130, 127, 124, 135, 150, 129, 129, 133, 114, 121, 160, 132, 116, 117, 133, 115, 137, 146, 143, 134, 109, 138, 129, 111, 144, 123, 114, 136, 125, 114, 118, 136, 129, 120, 115, 131, 113, 137, 120, 119, 144, 123, 132, 108, 111, 107, 125, 119, 135, 130, 118, 114, 113, 134, 123, 119, 112, 104, 135, 115, 125, 134, 120, 141, 140, 138, 147, 108, 124, 118, 140, 103, 122, 118, 129, 135, 125, 132, 147, 112, 129, 120, 123, 113, 119, 133, 118, 140, 129, 122, 106, 131, 121, 129, 102, 130, 126, 127, 114, 115, 114, 135, 119, 143, 110, 129, 126, 117, 150, 181, 121, 134, 131, 148, 124, 127, 130, 127, 127, 141, 138, 113, 114, 132, 122, 116, 120, 123, 122, 137, 115, 111, 119, 121, 127, 129, 130, 139, 136, 117, 165, 99, 127, 121, 120, 134, 106, 123, 133, 134, 132, 120, 113, 130, 131, 128, 107, 137, 131, 125, 120, 122, 108, 131, 127, 121, 135, 137, 126, 134, 131, 123, 137, 129, 131, 126, 129, 117, 137, 134, 141, 120, 112, 113, 118, 132, 136, 117, 97, 140, 125, 124, 119, 148, 114, 133, 107, 161, 130, 124, 112, 113, 130, 127, 128, 118, 134, 155, 103, 100, 99, 131, 120, 124, 114, 118, 127, 110, 142, 127, 130, 130, 128, 119, 150, 123, 107, 118, 130, 113, 120, 106, 133, 124, 121, 113, 127, 128, 133, 153, 104, 133, 128, 108, 146, 126, 112, 124, 127, 126, 125, 100, 124, 136, 110, 137, 112, 115, 166, 135, 141, 115, 112, 138, 139, 114, 131, 116, 128, 181, 117, 126, 132, 142, 124, 131, 108, 129, 147, 65, 130, 127, 115, 142, 135, 141, 140, 108, 134, 120, 120, 127, 140, 107, 137, 127, 131, 134, 105, 125, 136, 119, 129, 123, 126, 135, 118, 111, 123, 125, 109, 129, 125, 118, 129, 125, 124, 100, 123, 140, 108, 129, 137, 144, 126, 130, 162, 120, 107, 112, 130, 151, 102, 141, 103, 112, 123, 120, 122, 122, 123, 123, 137, 109, 119, 133, 118, 131, 124, 116, 100, 84, 110, 142, 127, 101, 119, 151, 126, 116, 123, 109, 149, 123, 125, 117, 105, 118, 112, 114, 138, 127, 146, 116, 111, 102, 110, 114, 126, 132, 126, 112, 129, 123, 148, 145, 126, 113, 130, 126, 133, 126, 126, 131, 125, 123, 127, 121, 117, 142, 123, 124, 118, 112, 117, 126, 119, 122, 116, 110, 112, 144, 122, 129, 127, 136, 124, 123, 130, 128, 109, 120, 137, 126, 117, 127, 139, 120, 118, 123, 148, 125, 123, 117, 130, 141, 131, 123, 124, 128, 120, 139, 166, 145, 125, 115, 146, 124, 106, 113, 127, 107, 133, 123, 107, 111, 122, 99, 123, 111, 131, 115, 122, 127, 126, 130, 135, 121, 135, 126, 139, 130, 159, 120, 120, 122, 145, 118, 148, 141, 122, 132, 113, 111, 122, 100, 136, 133, 115, 121, 175, 128, 149, 116, 137, 140, 125, 121, 129, 135, 125, 132, 109, 142, 135, 136, 147, 123, 131, 135, 137, 119, 139, 132, 102, 127, 126, 129, 127, 116, 120, 145, 155, 131, 130, 129, 121, 143, 124, 121, 120, 105, 119, 122, 113, 130, 103, 132, 114, 127, 140, 113, 121, 130, 139, 143, 132, 138, 122, 117, 119, 131, 144, 131, 113, 138, 141, 134, 121, 114, 139, 120, 126, 146, 115, 120, 132, 134, 126, 129, 132, 139, 150, 107, 104, 135, 114, 142, 125, 123, 120, 124, 106, 124, 123, 120, 138, 138, 132, 107, 131, 115, 129, 116, 126, 127, 112, 127, 129, 122, 125, 124, 125, 128, 121, 134, 112, 119, 132, 119, 120, 119, 116, 128, 142, 123, 130, 122, 129, 125, 136, 134, 126, 117, 122, 132, 130, 126, 139, 101, 123, 129, 129, 141, 133, 134, 127, 110, 120, 127, 120, 108, 117, 134, 127, 125, 123, 131, 123, 119, 120, 143, 106, 127, 128, 131, 117, 137, 109, 119, 116, 100, 131, 112, 117, 141, 121, 107, 118, 122, 120, 111, 122, 137, 112, 140, 121, 120, 134, 131, 124, 132, 137, 130, 121, 118, 125, 124, 140, 130, 118, 119, 111, 116, 110, 124, 124, 122, 121, 133, 135, 133, 126, 126, 124, 143, 132, 158, 123, 132, 144, 131, 135, 122, 117, 124, 123, 124, 112, 127, 133, 131, 113, 136, 127, 132, 119, 141, 135, 115, 119, 120, 118, 108, 139, 146, 157, 124, 127, 127, 127, 133, 128, 118, 117, 127, 122, 131, 120, 128, 131, 128, 125, 133, 108, 133, 114, 126, 142, 124, 119, 131, 141, 135, 119, 128, 124, 130, 112, 128, 110, 132, 106, 112, 120, 125, 117, 126, 141, 130, 121, 135, 112, 111, 117, 134, 122, 128, 119, 119, 126, 130, 118, 121, 135, 112, 129, 126, 135, 133, 127, 123, 117, 132, 111, 109, 119, 121, 138, 128, 129, 126, 119, 129, 121, 124, 131, 120, 135, 129, 128, 126, 138, 118, 120, 118, 114, 124, 124, 140, 110, 110, 120, 139, 128, 124, 127, 118, 109, 127, 127, 122, 134, 122, 122, 118, 123, 118, 119, 108, 127, 129, 129, 128, 111, 141, 124, 113, 126, 111, 129, 151, 132, 123, 129, 145, 137, 131, 133, 123, 113, 132, 127, 117, 134, 103, 124, 134, 119, 131, 115, 128, 125, 127, 112, 106, 134, 124, 142, 123, 131, 120, 135, 118, 126, 133, 132, 128, 111, 104, 130, 120, 106, 125, 110, 121, 154, 128, 125, 119, 122, 124, 146, 117, 117, 111, 103, 134, 140, 126, 130, 126, 139, 138, 129, 125, 128, 130, 128, 125, 130, 122, 129, 143, 131, 131, 118, 119, 112, 132, 125, 130, 117, 116, 121, 154, 127, 127, 102, 131, 124, 109, 124, 134, 133, 122, 122, 124, 150, 123, 115, 132, 115, 127, 118, 144, 120, 131, 124, 115, 145, 109, 121, 114, 109, 138, 120, 129, 134, 119, 106, 124, 108, 139, 108, 114, 128, 127, 120, 128, 120, 117, 132, 110, 139, 121, 133, 129, 118, 117, 135, 130, 133, 133, 136, 116, 111, 133, 133, 131, 116, 117, 123, 117, 116, 145, 122, 123, 117, 128, 122, 115, 120, 116, 127, 125, 136, 121, 134, 123, 108, 125, 143, 119, 137, 129, 139, 129, 132, 133, 132, 119, 126, 133, 128, 111, 139, 127, 133, 120, 125, 128, 124, 117, 124, 126, 126, 128, 123, 132, 145, 113, 127, 131, 126, 122, 128, 111, 136, 135, 117, 141, 136, 114, 141, 91, 130, 116, 123, 114, 138, 139, 131, 116, 130, 123, 148, 131, 129, 128, 113, 118, 126, 134, 131, 115, 121, 121, 124, 125, 122, 137, 122, 122, 134, 126, 119, 130, 123, 116, 98, 119, 118, 125, 115, 116, 118, 140, 139, 121, 132, 121, 130, 128, 137, 126, 114, 129, 132, 131, 125, 132, 111, 114, 139, 144, 124, 124, 117, 107, 126, 119, 121, 135, 132, 133, 117, 133, 128, 122, 113, 120, 132, 129, 127, 115, 125, 121, 132, 116, 126, 114, 120, 121, 121, 114, 123, 125, 128, 134, 111, 127, 138, 112, 125, 116, 100, 115, 122, 132, 121, 120, 127, 130, 128, 117, 127, 128, 137, 125, 126, 121, 144, 123, 142, 136, 142, 138, 119, 124, 132, 114, 130, 123, 127, 103, 123, 125, 119, 121, 124, 140, 117, 111, 115, 114, 128, 112, 123, 125, 129, 126, 129, 127, 124, 124, 131, 112, 116, 118, 134, 130, 127, 124, 120, 128, 133, 112, 119, 92, 138, 117, 119, 120, 132, 133, 114, 140, 117, 140, 113, 127, 129, 132, 140, 126, 126, 127, 138, 133, 129, 111, 113, 129, 133, 138, 122, 118, 108, 128, 132, 116, 130, 120, 99, 136, 116, 124, 123, 129, 120, 125, 129, 129, 110, 118, 111, 118, 117, 123, 142, 115, 119, 139, 122, 114, 138, 123, 130, 125, 119, 121, 139, 136, 126, 129, 123, 130, 135, 136, 119, 112, 127, 134, 119, 115, 127, 134, 135, 114, 148, 121, 136, 128, 116, 108, 107, 126, 122, 133, 125, 123, 120, 134, 129, 120, 121, 118, 124, 116, 118, 114, 110, 112, 120, 128, 119, 119, 125, 109, 143, 118, 120, 125, 127, 135, 117, 123, 128, 113, 124, 141, 128, 115, 135, 127, 117, 125, 131, 149, 126, 117, 131, 122, 125, 132, 118, 131, 143, 117, 126, 104, 114, 123, 119, 121, 133, 128, 118, 116, 124, 118, 118, 136, 134, 126, 128, 136, 139, 117, 116, 125, 119, 140, 123, 126, 130, 113, 111, 131, 120, 111, 116, 123, 125, 122, 122, 134, 123, 120, 114, 137, 154, 128, 125, 129, 116, 127, 140, 110, 116, 113, 109, 124, 141, 142, 128, 130, 114, 121, 120, 123, 122, 114, 105, 112, 135, 148, 146, 138, 131, 127, 128, 140, 131, 128, 120, 135, 123, 123, 141, 129, 148, 114, 110, 122, 126, 138, 141, 124, 126, 130, 120, 113, 145, 122, 125, 114, 121, 124, 140, 116, 138, 127, 112, 127, 116, 133, 107, 135, 120, 131, 121, 135, 138, 117, 109, 131, 103, 122, 132, 101, 122, 129, 137, 135, 122, 136, 127, 121, 129, 134, 119, 134, 132, 126, 127, 123, 122, 115, 126, 116, 125, 126, 102, 121, 111, 124, 128, 131, 124, 120, 129, 132, 120, 124, 117, 119, 132, 122, 124, 129, 118, 133, 127, 122, 140, 137, 146, 129, 132, 132, 132, 126, 114, 130, 120, 127, 128, 113, 133, 126, 116, 132, 132, 125, 118, 125, 122, 133, 124, 124, 119, 115, 142, 127, 130, 120, 119, 130, 129, 129, 124, 126, 135, 125, 135, 125, 126, 119, 117, 120, 119, 124, 130, 140, 131, 126, 134, 136, 115, 127, 114, 131, 131, 115, 130, 121, 135, 123, 127, 125, 122, 123, 130, 130, 117, 137, 124, 124, 134, 125, 123, 113, 127, 125, 132, 123, 129, 122, 129, 132, 118, 119, 117, 115, 130, 120, 110, 136, 134, 126, 113, 124, 120, 121, 141, 130, 130, 121, 111, 129, 123, 129, 132, 126, 132, 121, 130, 111, 126, 124, 146, 131, 130, 126, 119, 143, 109, 125, 133, 137, 126, 111, 132, 121, 133, 135, 125, 126, 120, 121, 124, 129, 135, 145, 119, 138, 125, 146, 140, 137, 125, 134, 125, 128, 113, 122, 132, 100, 127, 127, 125, 131, 118, 124, 121, 117, 131, 127, 133, 123, 164, 129, 129, 124, 117, 131, 145, 127, 133, 121, 132, 122, 126, 124, 128, 138, 120, 120, 111, 122, 129, 127, 120, 125, 117, 125, 123, 128, 124, 133, 130, 132, 113, 131, 140, 131, 136, 126, 122, 126, 121, 132, 126, 118, 124, 129, 124, 127, 115, 122, 127, 113, 123, 127, 120, 117, 131, 122, 120, 135, 121, 138, 117, 122, 120, 129, 109, 112, 137, 121, 134, 134, 130, 129, 130, 119, 133, 138, 130, 129, 134, 127, 117, 127, 131, 121, 127, 123, 111, 132, 130, 129, 134, 137, 125, 120, 125, 117, 139, 121, 116, 137, 115, 125, 127, 133, 135, 121, 129, 123, 134, 128, 121, 121, 111, 131, 135, 135, 122, 126, 138, 124, 131, 128, 138, 131, 129, 135, 142, 129, 129, 131, 125, 126, 113, 138, 141, 120, 140, 116, 126, 116, 121, 132, 141, 119, 126, 134, 93, 137, 143, 118, 133, 123, 117, 120, 130, 68, 126, 124, 127, 123, 132, 126, 124, 129, 119, 123, 119, 129, 127, 117, 124, 127, 137, 125, 125, 135, 137, 122, 109, 117, 126, 127, 124, 113, 122, 133, 124, 141, 128, 120, 134, 128, 123, 147, 102, 136, 126, 124, 123, 121, 130, 118, 129, 131, 129, 137, 122, 127, 138, 131, 124, 122, 126, 128, 121, 129, 146, 129, 135, 133, 112, 122, 133, 137, 119, 134, 119, 112, 124, 126, 133, 131, 129, 132, 128, 111, 130, 119, 115, 124, 123, 126, 113, 127, 136, 123, 141, 114, 125, 113, 126, 136, 125, 129, 120, 114, 139, 122, 117, 132, 130, 131, 140, 121, 136, 126, 118, 118, 128, 125, 122, 123, 140, 121, 133, 130, 134, 127, 122, 110, 120, 134, 128, 136, 124, 120, 129, 131, 130, 122, 136, 128, 137, 128, 133, 114, 124, 121, 113, 136, 128, 111, 133, 124, 123, 132, 117, 122, 129, 129, 113, 121, 126, 131, 130, 132, 138, 112, 129, 125, 128, 128, 128, 131, 124, 121, 122, 140, 124, 120, 98, 125, 120, 120, 128, 124, 130, 136, 124, 121, 131, 136, 131, 133, 127, 120, 124, 117, 121, 135, 122, 123, 114, 107, 128, 116, 121, 126, 129, 133, 124, 135, 130, 110, 120, 129, 138, 127, 125, 117, 128, 126, 134, 127, 125, 108, 122, 103, 128, 126, 135, 130, 130, 128, 121, 133, 125, 120, 131, 129, 111, 147, 131, 146, 125, 117, 133, 132, 144, 118, 121, 122, 135, 123, 118, 122, 136, 131, 126, 127, 131, 127, 124, 118, 125, 127, 120, 134, 124, 134, 118, 123, 101, 126, 122, 124, 129, 122, 119, 139, 124, 113, 125, 130, 124, 133, 129, 113, 130, 123, 124, 121, 118, 116, 145, 128, 133, 131, 124, 128, 110, 126, 122, 124, 134, 134, 130, 113, 131, 123, 128, 129, 131, 135, 132, 118, 105, 132, 127, 137, 109, 138, 129, 130, 132, 124, 130, 124, 125, 126, 118, 123, 113, 123, 140, 116, 126, 121, 137, 108, 118, 127, 128, 131, 124, 130, 122, 96, 142, 129, 129, 122, 120, 138, 140, 125, 137, 123, 132, 126, 128, 118, 117, 117, 132, 137, 134, 119, 111, 122, 130, 126, 125, 133, 122, 116, 126, 129, 132, 121, 122, 133, 111, 115, 129, 126, 129, 123, 131, 132, 133, 117, 113, 128, 125, 128, 134, 109, 125, 129, 137, 130, 121, 129, 134, 139, 126, 121, 134, 122, 123, 114, 118, 134, 121, 136, 132, 134, 129, 137, 131, 126, 129, 144, 135, 133, 127, 113, 122, 134, 134, 136, 131, 120, 120, 131, 127, 133, 124, 130, 135, 110, 125, 116, 131, 125, 110, 118, 125, 122, 140, 129, 125, 132, 125, 128, 126, 134, 128, 120, 125, 143, 130, 119, 116, 124, 137, 103, 124, 130, 122, 117, 136, 130, 132, 127, 129, 125, 126, 127, 118, 165, 125, 124, 130, 124, 129, 130, 128, 129, 121, 250, 131, 129, 125, 128, 127, 125, 135, 132, 138, 122, 118, 139, 124, 134, 130, 128, 127, 125, 118, 129, 130, 123, 116, 125, 127, 107, 128, 134, 131, 116, 131, 127, 128, 130, 118, 118, 121, 129, 123, 121, 118, 120, 109, 130, 130, 118, 127, 129, 123, 125, 119, 125, 124, 136, 120, 123, 131, 119, 140, 119, 128, 132, 126, 127, 133, 105, 131, 133, 125, 118, 126, 133, 121, 118, 131, 138, 123, 137, 127, 109, 131, 96, 125, 126, 120, 119, 130, 124, 119, 124, 131, 113, 110, 120, 127, 131, 126, 127, 136, 123, 106, 140, 130, 133, 117, 130, 123, 138, 130, 130, 127, 135, 125, 132, 131, 131, 112, 122, 116, 129, 133, 125, 133, 135, 120, 130, 128, 117, 127, 125, 117, 127, 125, 121, 125, 126, 127, 128, 120, 120, 113, 129, 137, 106, 129, 134, 116, 131, 116, 124, 132, 127, 122, 131, 130, 110, 113, 122, 129, 125, 125, 131, 134, 132, 131, 132, 123, 128, 123, 124, 125, 124, 131, 134, 123, 132, 128, 114, 131, 77, 131, 130, 123, 118, 124, 125, 125, 118, 129, 122, 123, 123, 131, 123, 124, 126, 126, 123, 120, 125, 122, 144, 142, 134, 123, 119, 114, 139, 126, 130, 122, 117, 126, 136, 137, 111, 134, 131, 122, 134, 111, 123, 144, 133, 115, 132, 122, 122, 132, 133, 112, 137, 114, 114, 139, 128, 119, 123, 137, 144, 142, 107, 128, 123, 143, 121, 123, 131, 118, 148, 102, 130, 113, 131, 135, 125, 117, 115, 122, 134, 113, 141, 125, 121, 114, 119, 135, 110, 131, 123, 132, 123, 137, 139, 129, 139, 120, 114, 113, 119, 126, 117, 115, 116, 137, 121, 115, 119, 116, 118, 130, 108, 115, 127, 118, 139, 115, 133, 136, 129, 138, 110, 114, 127, 119, 121, 122, 119, 131, 112, 132, 124, 126, 132, 130, 133, 119, 129, 115, 126, 120, 121, 140, 120, 114, 107, 120, 119, 135, 142, 123, 107, 126, 127, 137, 138, 138, 113, 140, 150, 116, 135, 119, 118, 110, 113, 130, 114, 125, 128, 118, 134, 133, 145, 129, 117, 117, 146, 106, 111, 122, 112, 127, 119, 114, 134, 121, 123, 128, 122, 125, 109, 133, 122, 124, 134, 119, 130, 127, 127, 132, 122, 115, 137, 116, 117, 129, 134, 125, 121, 135, 104, 124, 119, 125, 140, 119, 134, 125, 128, 123, 115, 123, 119, 120, 127, 136, 121, 133, 130, 125, 100, 147, 141, 116, 108, 122, 120, 139, 144, 115, 125, 122, 133, 135, 120, 135, 128, 125, 117, 105, 137, 131, 111, 117, 129, 132, 126, 127, 132, 110, 115, 119, 122, 125, 128, 123, 126, 130, 130, 142, 103, 147, 136, 154, 121, 142, 130, 126, 113, 106, 120, 135, 120, 135, 116, 107, 133, 120, 116, 121, 132, 138, 122, 107, 112, 128, 144, 116, 110, 118, 123, 114, 133, 117, 110, 113, 117, 124, 120, 127, 131, 130, 127, 121, 124, 111, 131, 126, 126, 120, 122, 122, 138, 143, 137, 132, 128, 118, 133, 150, 127, 114, 135, 142, 141, 112, 139, 121, 113, 118, 134, 119, 104, 132, 145, 122, 117, 115, 112, 104, 103, 149, 145, 131, 116, 115, 127, 133, 121, 145, 136, 122, 124, 106, 131, 136, 112, 124, 107, 128, 142, 128, 126, 126, 134, 136, 104, 130, 125, 113, 149, 113, 141, 132, 124, 132, 104, 142, 114, 133, 126, 146, 135, 129, 132, 104, 140, 128, 113, 123, 119, 130, 128, 118, 127, 118, 146, 126, 133, 139, 100, 143, 114, 88, 125, 131, 122, 128, 128, 139, 117, 138, 122, 127, 122, 125, 133, 130, 120, 108, 119, 137, 134, 123, 114, 114, 130, 115, 136, 119, 145, 130, 114, 126, 122, 116, 135, 128, 131, 109, 116, 122, 131, 130, 121, 135, 121, 150, 138, 133, 133, 129, 130, 114, 128, 132, 108, 147, 135, 113, 113, 119, 109, 130, 134, 145, 126, 119, 128, 129, 91, 95, 119, 140, 122, 126, 118, 129, 127, 160, 130, 119, 109, 122, 126, 109, 121, 120, 123, 117, 146, 123, 122, 151, 109, 136, 142, 114, 124, 117, 116, 129, 120, 117, 121, 133, 130, 126, 121, 113, 114, 115, 103, 123, 144, 117, 138, 119, 116, 129, 120, 110, 129, 137, 110, 127, 138, 126, 130, 123, 116, 128, 103, 130, 131, 134, 124, 140, 121, 129, 153, 134, 130, 103, 122, 101, 120, 113, 125, 122, 117, 123, 121, 134, 134, 123, 117, 149, 120, 121, 128, 131, 106, 112, 135, 131, 114, 110, 114, 110, 122, 110, 144, 132, 122, 126, 112, 119, 128, 130, 112, 116, 118, 111, 136, 141, 135, 128, 117, 136, 130, 135, 132, 134, 122, 122, 124, 103, 122, 128, 121, 118, 134, 133, 123, 125, 133, 121, 140, 131, 145, 122, 136, 125, 129, 135, 120, 129, 112, 134, 117, 128, 156, 134, 126, 131, 123, 96, 125, 133, 112, 122, 124, 109, 137, 139, 148, 123, 122, 129, 139, 123, 98, 126, 108, 134, 145, 136, 103, 114, 125, 102, 123, 132, 129, 129, 138, 126, 123, 122, 132, 125, 111, 125, 125, 128, 125, 154, 148, 128, 109, 132, 144, 119, 117, 144, 117, 109, 119, 113, 143, 109, 119, 134, 123, 125, 125, 126, 128, 127, 107, 126, 106, 123, 120, 121, 125, 134, 120, 124, 120, 123, 137, 138, 129, 134, 127, 125, 123, 118, 116, 131, 104, 110, 115, 127, 132, 132, 108, 134, 131, 140, 119, 142, 125, 127, 127, 101, 148, 128, 122, 136, 130, 108, 129, 138, 129, 112, 133, 125, 118, 120, 129, 125, 130, 124, 120, 124, 123, 139, 143, 108, 124, 137, 135, 121, 122, 138, 133, 129, 145, 119, 129, 133, 120, 110, 131, 112, 136, 125, 123, 124, 123, 132, 135, 106, 114, 112, 110, 118, 124, 99, 129, 124, 127, 126, 150, 111, 115, 115, 127, 121, 130, 128, 127, 114, 110, 136, 119, 114, 126, 138, 127, 116, 123, 136, 125, 133, 97, 142, 141, 127, 109, 128, 108, 114, 113, 107, 130, 130, 137, 115, 122, 118, 122, 133, 125, 125, 127, 129, 116, 120, 129, 116, 128, 115, 112, 133, 128, 117, 122, 101, 142, 129, 131, 121, 136, 138, 122, 142, 118, 130, 125, 131, 135, 125, 136, 95, 137, 138, 132, 132, 124, 129, 119, 127, 135, 153, 124, 134, 140, 137, 108, 122, 113, 119, 115, 109, 115, 136, 115, 128, 129, 123, 125, 140, 133, 120, 130, 127, 117, 114, 124, 129, 123, 129, 120, 130, 141, 130, 116, 141, 128, 140, 118, 117, 131, 124, 161, 127, 111, 113, 124, 113, 131, 108, 119, 120, 129, 133, 120, 120, 127, 142, 123, 141, 116, 119, 129, 120, 116, 110, 110, 116, 137, 121, 137, 122, 123, 135, 114, 117, 136, 115, 138, 134, 134, 119, 129, 119, 123, 129, 109, 115, 147, 128, 133, 120, 111, 120, 106, 121, 128, 137, 107, 102, 139, 121, 114, 121, 130, 127, 123, 139, 113, 129, 138, 117, 128, 137, 124, 127, 109, 126, 113, 113, 119, 108, 144, 116, 124, 134, 115, 114, 127, 122, 142, 118, 135, 130, 112, 110, 110, 117, 108, 130, 140, 118, 133, 132, 132, 116, 131, 144, 110, 125, 131, 119, 125, 119, 117, 119, 130, 121, 123, 122, 133, 121, 121, 97, 141, 128, 127, 129, 116, 134, 141, 124, 128, 124, 127, 129, 122, 120, 121, 132, 123, 135, 104, 116, 122, 137, 131, 121, 142, 157, 98, 132, 126, 136, 128, 130, 121, 133, 123, 144, 130, 144, 141, 114, 121, 126, 119, 113, 124, 110, 106, 119, 123, 130, 110, 118, 131, 116, 122, 132, 99, 122, 127, 128, 127, 130, 112, 118, 129, 126, 125, 114, 138, 127, 118, 122, 122, 135, 120, 124, 133, 139, 131, 123, 133, 124, 136, 118, 126, 133, 122, 119, 114, 111, 130, 108, 136, 116, 123, 122, 125, 114, 111, 131, 119, 116, 137, 133, 105, 144, 134, 131, 145, 140, 119, 131, 134, 131, 144, 129, 123, 120, 134, 126, 128, 127, 126, 124, 123, 125, 113, 107, 119, 106, 126, 157, 125, 128, 126, 132, 114, 128, 130, 151, 128, 117, 138, 136, 127, 125, 117, 125, 146, 121, 127, 126, 131, 121, 130, 120, 107, 137, 110, 126, 127, 116, 124, 115, 117, 129, 135, 132, 146, 123, 119, 126, 116, 123, 133, 94, 140, 118, 125, 136, 129, 117, 138, 118, 117, 133, 115, 132, 119, 136, 129, 137, 125, 106, 114, 117, 127, 134, 123, 140, 121, 142, 130, 138, 128, 130, 143, 123, 132, 124, 109, 125, 133, 129, 123, 123, 122, 112, 135, 128, 114, 130, 131, 120, 133, 136, 131, 133, 122, 152, 126, 134, 123, 122, 128, 122, 118, 127, 139, 115, 135, 128, 129, 128, 112, 121, 122, 118, 125, 126, 126, 155, 98, 139, 136, 122, 113, 139, 112, 133, 127, 117, 136, 123, 138, 108, 139, 126, 130, 137, 132, 120, 118, 137, 128, 100, 131, 130, 125, 118, 120, 119, 118, 129, 139, 121, 142, 121, 140, 96, 124, 132, 132, 123, 122, 117, 122, 137, 123, 126, 125, 124, 115, 109, 122, 127, 137, 141, 126, 115, 147, 133, 116, 128, 133, 128, 122, 130, 132, 127, 118, 128, 124, 129, 128, 123, 132, 102, 119, 134, 105, 143, 138, 124, 125, 107, 131, 121, 134, 116, 155, 104, 130, 123, 120, 124, 131, 130, 127, 118, 109, 120, 115, 115, 130, 132, 124, 113, 124, 128, 130, 134, 126, 110, 132, 120, 124, 136, 124, 119, 127, 146, 119, 124, 113, 139, 126, 136, 127, 140, 123, 110, 143, 120, 127, 117, 116, 137, 133, 127, 124, 130, 115, 119, 124, 128, 119, 115, 129, 140, 123, 131, 131, 129, 133, 121, 122, 115, 133, 117, 118, 135, 140, 124, 125, 129, 132, 133, 137, 135, 118, 126, 136, 113, 127, 129, 137, 128, 135, 121, 131, 109, 123, 134, 107, 119, 123, 129, 122, 140, 125, 128, 110, 127, 140, 131, 143, 121, 120, 127, 137, 126, 143, 116, 137, 110, 120, 110, 129, 119, 123, 126, 131, 124, 147, 139, 125, 143, 130, 121, 128, 138, 117, 106, 126, 123, 117, 117, 133, 137, 114, 125, 133, 120, 129, 121, 134, 138, 126, 128, 132, 115, 119, 140, 138, 115, 121, 128, 103, 130, 120, 125, 116, 134, 127, 117, 113, 114, 128, 114, 129, 123, 127, 128, 111, 123, 120, 136, 130, 124, 121, 130, 131, 125, 123, 157, 129, 129, 120, 129, 144, 121, 119, 130, 124, 135, 126, 129, 133, 132, 122, 145, 124, 136, 118, 118, 126, 126, 122, 131, 129, 130, 123, 123, 141, 147, 119, 138, 121, 139, 116, 123, 122, 125, 111, 133, 131, 118, 114, 108, 130, 125, 130, 127, 125, 114, 125, 132, 126, 117, 119, 117, 121, 115, 129, 135, 118, 138, 116, 130, 123, 130, 116, 122, 129, 137, 129, 138, 120, 134, 115, 125, 117, 101, 129, 101, 117, 127, 130, 122, 117, 131, 123, 142, 128, 128, 122, 132, 132, 125, 134, 125, 127, 150, 124, 128, 136, 156, 123, 144, 126, 115, 121, 117, 139, 128, 127, 119, 120, 119, 116, 126, 119, 132, 160, 132, 127, 128, 115, 134, 116, 117, 133, 136, 129, 116, 117, 123, 130, 123, 125, 116, 123, 116, 127, 127, 134, 124, 149, 120, 126, 129, 111, 131, 122, 126, 137, 133, 130, 122, 119, 133, 123, 141, 115, 130, 136, 100, 123, 101, 127, 141, 127, 92, 129, 134, 137, 121, 134, 114, 112, 124, 122, 137, 122, 118, 127, 114, 126, 114, 127, 125, 133, 128, 127, 124, 122, 125, 137, 123, 134, 114, 141, 121, 122, 138, 114, 122, 119, 108, 128, 136, 121, 130, 134, 128, 113, 116, 121, 138, 134, 127, 98, 123, 126, 132, 121, 127, 131, 114, 114, 129, 129, 137, 119, 127, 130, 128, 120, 132, 141, 126, 122, 134, 122, 126, 110, 129, 125, 116, 133, 128, 122, 127, 127, 122, 125, 130, 123, 126, 107, 122, 122, 136, 132, 123, 130, 132, 113, 127, 121, 121, 122, 114, 119, 125, 116, 119, 124, 146, 115, 124, 110, 119, 137, 115, 116, 133, 115, 114, 142, 127, 121, 133, 134, 130, 116, 123, 127, 117, 123, 136, 135, 137, 118, 108, 113, 139, 109, 128, 124, 126, 135, 125, 136, 122, 135, 117, 117, 132, 122, 125, 125, 116, 144, 114, 119, 139, 127, 110, 124, 109, 129, 112, 110, 131, 121, 132, 137, 119, 125, 138, 124, 134, 124, 120, 139, 152, 126, 132, 140, 131, 131, 142, 132, 130, 123, 145, 122, 134, 122, 121, 131, 119, 133, 140, 124, 112, 127, 142, 120, 115, 125, 128, 126, 118, 138, 98, 142, 130, 112, 137, 136, 118, 135, 127, 128, 151, 105, 125, 117, 132, 112, 131, 140, 134, 129, 137, 133, 117, 142, 128, 128, 125, 135, 122, 129, 122, 112, 134, 121, 147, 119, 129, 133, 112, 130, 127, 141, 130, 132, 140, 121, 128, 115, 110, 132, 116, 116, 113, 129, 121, 124, 130, 134, 129, 135, 148, 139, 131, 150, 127, 119, 129, 141, 117, 125, 128, 118, 146, 138, 125, 123, 117, 134, 117, 120, 132, 123, 122, 117, 139, 134, 136, 117, 127, 131, 117, 115, 120, 127, 113, 131, 134, 121, 118, 133, 123, 111, 124, 127, 126, 124, 126, 125, 122, 134, 128, 111, 124, 112, 113, 114, 118, 130, 131, 118, 122, 121, 141, 134, 117, 115, 121, 134, 128, 135, 150, 131, 122, 135, 109, 114, 122, 127, 112, 124, 122, 116, 115, 128, 120, 130, 127, 122, 119, 116, 113, 127, 124, 130, 119, 121, 115, 134, 130, 120, 109, 124, 124, 128, 113, 124, 118, 114, 138, 116, 104, 127, 133, 133, 131, 106, 125, 107, 129, 115, 122, 139, 134, 143, 107, 133, 133, 127, 116, 135, 132, 125, 132, 129, 114, 119, 131, 126, 115, 127, 113, 115, 124, 126, 149, 126, 139, 114, 114, 130, 127, 142, 134, 143, 126, 118, 145, 128, 134, 116, 137, 108, 108, 135, 135, 125, 121, 130, 122, 131, 107, 124, 116, 124, 126, 107, 139, 121, 126, 117, 114, 140, 113, 122, 120, 130, 143, 124, 129, 122, 123, 118, 111, 125, 122, 118, 114, 121, 123, 136, 120, 120, 134, 144, 124, 122, 121, 135, 130, 131, 139, 123, 130, 123, 124, 134, 144, 129, 130, 138, 118, 106, 115, 106, 114, 119, 130, 126, 118, 141, 113, 123, 148, 123, 136, 124, 139, 115, 111, 149, 136, 142, 112, 133, 112, 132, 127, 126, 126, 132, 119, 114, 114, 112, 122, 124, 131, 120, 113, 109, 120, 133, 129, 130, 130, 104, 137, 126, 120, 126, 116, 114, 119, 138, 120, 131, 124, 121, 129, 122, 116, 120, 114, 132, 118, 105, 116, 128, 113, 125, 131, 133, 115, 138, 137, 126, 128, 115, 121, 143, 125, 122, 104, 120, 123, 120, 122, 141, 148, 138, 153, 130, 134, 135, 121, 130, 130, 145, 129, 126, 142, 134, 115, 135, 113, 128, 137, 135, 123, 125, 125, 122, 120, 118, 115, 128, 136, 113, 125, 128, 129, 133, 130, 134, 113, 119, 134, 136, 130, 105, 124, 116, 108, 124, 140, 122, 120, 139, 119, 125, 137, 128, 126, 134, 132, 119, 131, 124, 135, 133, 116, 124, 133, 136, 112, 116, 126, 141, 130, 100, 134, 131, 103, 128, 131, 113, 119, 126, 139, 145, 126, 83, 113, 121, 131, 131, 116, 139, 126, 137, 131, 109, 119, 107, 111, 111, 125, 137, 125, 129, 122, 134, 118, 128, 111, 133, 122, 138, 124, 117, 123, 133, 122, 117, 128, 134, 140, 122, 128, 135, 131, 143, 108, 108, 108, 142, 126, 134, 139, 133, 121, 126, 131, 114, 134, 120, 121, 109, 121, 121, 124, 117, 127, 129, 141, 110, 121, 112, 123, 123, 147, 140, 118, 134, 119, 136, 116, 134, 106, 129, 124, 127, 111, 112, 130, 140, 138, 116, 119, 122, 113, 125, 120, 117, 137, 116, 125, 117, 139, 116, 143, 129, 114, 125, 125, 118, 116, 131, 148, 95, 123, 141, 127, 135, 121, 127, 117, 139, 121, 132, 146, 132, 131, 126, 146, 117, 138, 106, 132, 132, 109, 125, 117, 115, 113, 123, 129, 122, 111, 138, 147, 147, 118, 137, 117, 114, 121, 136, 114, 122, 119, 123, 139, 119, 137, 136, 102, 119, 139, 135, 131, 121, 130, 111, 128, 126, 126, 128, 92, 115, 135, 146, 132, 144, 129, 131, 124, 111, 129, 123, 122, 126, 124, 122, 117, 128, 114, 123, 121, 122, 131, 131, 135, 120, 123, 139, 143, 125, 139, 131, 130, 129, 125, 130, 117, 114, 141, 128, 112, 120, 126, 130, 144, 131, 121, 105, 116, 108, 112, 126, 116, 134, 140, 109, 125, 124, 124, 128, 126, 126, 120, 105, 121, 129, 120, 137, 138, 110, 131, 119, 110, 127, 116, 137, 128, 108, 114, 129, 131, 116, 116, 131, 120, 110, 133, 136, 122, 144, 132, 113, 104, 128, 113, 136, 133, 128, 124, 121, 110, 119, 141, 130, 136, 137, 134, 118, 106, 133, 100, 130, 122, 110, 136, 127, 117, 121, 117, 132, 124, 144, 122, 127, 128, 119, 146, 127, 129, 136, 125, 116, 144, 122, 140, 120, 134, 131, 142, 122, 128, 119, 130, 107, 124, 130, 124, 117, 114, 116, 121, 123, 118, 127, 132, 130, 118, 116, 116, 113, 125, 139, 93, 120, 131, 132, 111, 117, 134, 126, 145, 134, 113, 133, 116, 118, 140, 115, 131, 131, 133, 135, 134, 152, 133, 137, 144, 124, 128, 128, 126, 133, 124, 126, 126, 133, 103, 105, 122, 126, 131, 118, 134, 136, 135, 136, 120, 127, 121, 136, 108, 118, 128, 127, 138, 104, 141, 118, 113, 137, 135, 122, 111, 130, 120, 117, 122, 124, 137, 118, 118, 125, 117, 132, 139, 143, 117, 134, 125, 120, 129, 127, 147, 110, 119, 115, 132, 124, 128, 108, 114, 136, 142, 125, 121, 114, 134, 127, 125, 129, 107, 145, 134, 116, 133, 126, 126, 116, 125, 128, 116, 143, 141, 128, 112, 127, 141, 129, 125, 115, 144, 120, 123, 117, 127, 134, 117, 106, 130, 111, 122, 113, 132, 125, 143, 111, 125, 117, 133, 126, 143, 123, 121, 133, 127, 126, 115, 125, 133, 116, 116, 119, 126, 136, 114, 133, 139, 139, 134, 116, 132, 109, 121, 122, 122, 133, 149, 138, 128, 139, 112, 127, 115, 136, 121, 124, 125, 136, 119, 119, 130, 128, 124, 114, 121, 136, 119, 111, 132, 136, 138, 132, 120, 127, 113, 124, 123, 124, 136, 107, 121, 114, 121, 117, 128, 136, 133, 95, 123, 118, 118, 121, 117, 141, 139, 139, 106, 125, 128, 150, 135, 119, 138, 144, 147, 108, 124, 135, 117, 128, 128, 130, 132, 115, 121, 134, 130, 134, 141, 121, 141, 131, 113, 124, 141, 128, 125, 134, 125, 128, 130, 113, 124, 124, 124, 123, 133, 111, 131, 123, 123, 124, 137, 152, 132, 133, 104, 129, 121, 112, 120, 131, 136, 137, 139, 113, 135, 126, 116, 119, 111, 120, 135, 139, 117, 117, 145, 146, 123, 108, 124, 109, 136, 126, 112, 130, 121, 118, 131, 122, 125, 113, 133, 125, 121, 128, 127, 127, 133, 150, 130, 136, 122, 128, 119, 135, 133, 135, 126, 98, 134, 132, 124, 108, 116, 130, 118, 122, 113, 130, 133, 130, 140, 134, 126, 118, 133, 125, 113, 133, 135, 132, 126, 137, 126, 127, 123, 111, 133, 125, 116, 148, 108, 140, 139, 132, 124, 140, 122, 139, 137, 140, 132, 120, 119, 131, 118, 126, 131, 132, 104, 125, 105, 132, 133, 119, 131, 120, 135, 146, 124, 113, 121, 118, 137, 146, 113, 111, 128, 137, 141, 124, 111, 131, 142, 111, 123, 124, 125, 90, 132, 143, 130, 121, 132, 123, 117, 122, 113, 133, 128, 132, 111, 114, 116, 141, 136, 108, 119, 116, 133, 129, 126, 119, 143, 131, 125, 120, 134, 118, 102, 150, 125, 126, 119, 108, 126, 140, 137, 139, 119, 119, 141, 123, 124, 110, 143, 109, 113, 122, 132, 123, 136, 135, 127, 152, 121, 117, 123, 111, 113, 126, 124, 128, 135, 123, 131, 110, 117, 128, 126, 116, 130, 119, 147, 141, 121, 117, 102, 132, 117, 125, 127, 101, 112, 117, 132, 137, 122, 142, 118, 126, 127, 158, 133, 124, 123, 129, 121, 120, 111, 120, 118, 140, 106, 139, 130, 124, 115, 138, 124, 137, 124, 122, 135, 127, 123, 131, 112, 121, 109, 133, 122, 137, 135, 133, 162, 128, 124, 128, 125, 124, 135, 143, 130, 111, 121, 128, 126, 127, 133, 116, 132, 147, 147, 141, 123, 130, 116, 126, 135, 123, 118, 126, 120, 142, 121, 121, 116, 117, 139, 136, 126, 134, 119, 134, 116, 151, 105, 122, 125, 125, 129, 145, 117, 136, 122, 107, 132, 107, 122, 120, 125, 107, 128, 134, 148, 115, 115, 132, 156, 114, 121, 124, 122, 122, 129, 122, 132, 106, 122, 117, 106, 136, 128, 119, 130, 126, 129, 123, 130, 111, 128, 128, 119, 101, 144, 123, 124, 115, 125, 126, 131, 143, 124, 145, 161, 147, 138, 122, 142, 123, 121, 119, 122, 113, 111, 123, 122, 150, 120, 139, 154, 141, 142, 109, 120, 123, 133, 108, 111, 118, 108, 100, 113, 120, 135, 121, 128, 115, 121, 110, 130, 127, 117, 127, 126, 122, 131, 123, 122, 125, 128, 126, 118, 127, 117, 119, 145, 140, 125, 122, 131, 136, 115, 132, 128, 119, 133, 124, 131, 135, 128, 122, 122, 129, 126, 123, 118, 112, 119, 118, 148, 143, 120, 119, 129, 121, 126, 110, 120, 122, 113, 109, 127, 123, 119, 135, 120, 116, 129, 125, 125, 117, 120, 104, 123, 113, 113, 134, 123, 137, 128, 136, 121, 129, 132, 131, 114, 144, 118, 122, 105, 118, 113, 116, 143, 125, 110, 122, 130, 113, 113, 112, 115, 130, 141, 125, 109, 124, 131, 117, 141, 114, 146, 133, 135, 127, 126, 112, 133, 129, 116, 113, 129, 126, 125, 130, 122, 122, 140, 103, 128, 133, 124, 139, 124, 115, 122, 134, 124, 127, 124, 135, 130, 121, 121, 111, 132, 142, 132, 119, 121, 135, 119, 156, 140, 131, 137, 114, 138, 132, 140, 124, 145, 123, 115, 121, 120, 120, 97, 118, 122, 113, 131, 141, 114, 138, 146, 127, 139, 121, 121, 123, 113, 120, 111, 110, 128, 123, 128, 129, 126, 120, 111, 123, 114, 122, 134, 136, 128, 132, 131, 126, 115, 141, 143, 136, 124, 150, 123, 120, 119, 130, 110, 129, 109, 124, 125, 118, 121, 133, 125, 135, 126, 112, 131, 128, 121, 139, 115, 138, 135, 112, 116, 144, 128, 126, 122, 123, 149, 117, 130, 136, 129, 122, 100, 113, 120, 136, 123, 120, 133, 123, 123, 117, 100, 112, 102, 128, 136, 131, 117, 120, 125, 121, 139, 117, 107, 129, 118, 129, 125, 137, 128, 123, 128, 133, 122, 115, 134, 133, 133, 124, 133, 107, 113, 133, 114, 122, 129, 133, 131, 144, 113, 131, 123, 120, 137, 106, 125, 131, 123, 126, 105, 119, 142, 129, 135, 131, 125, 126, 140, 133, 124, 113, 120, 136, 105, 129, 125, 127, 115, 140, 113, 160, 136, 134, 141, 116, 133, 137, 132, 136, 117, 124, 138, 136, 121, 124, 150, 123, 120, 135, 119, 138, 136, 121, 119, 129, 130, 139, 133, 123, 124, 120, 118, 131, 121, 128, 126, 132, 126, 127, 130, 107, 116, 138, 118, 124, 128, 125, 125, 126, 134, 128, 123, 123, 122, 119, 126, 129, 140, 124, 140, 127, 109, 129, 133, 134, 123, 142, 121, 111, 119, 129, 115, 132, 128, 118, 115, 105, 118, 120, 134, 124, 110, 138, 118, 126, 134, 118, 97, 124, 118, 137, 118, 127, 131, 114, 129, 116, 135, 114, 128, 127, 119, 131, 130, 140, 129, 113, 146, 132, 130, 135, 148, 130, 140, 129, 123, 121, 91, 112, 126, 146, 125, 139, 128, 131, 132, 118, 107, 129, 136, 121, 143, 156, 133, 118, 113, 125, 110, 128, 133, 130, 117, 121, 128, 130, 126, 117, 121, 122, 130, 122, 124, 130, 139, 142, 129, 118, 129, 149, 138, 128, 132, 111, 115, 111, 116, 116, 126, 129, 133, 142, 153, 138, 137, 131, 138, 113, 117, 130, 129, 156, 131, 118, 128, 129, 130, 123, 116, 139, 125, 119, 137, 126, 129, 138, 155, 127, 132, 113, 119, 122, 114, 134, 138, 123, 106, 120, 116, 128, 121, 131, 121, 117, 119, 147, 124, 135, 135, 129, 125, 126, 120, 116, 135, 128, 129, 121, 153, 119, 123, 127, 105, 120, 126, 130, 93, 139, 128, 123, 109, 147, 136, 124, 112, 115, 139, 118, 141, 127, 123, 107, 121, 123, 123, 113, 123, 134, 136, 124, 129, 131, 136, 126, 115, 128, 130, 115, 134, 112, 121, 140, 116, 144, 110, 139, 113, 122, 128, 130, 134, 112, 137, 135, 149, 125, 140, 144, 133, 149, 121, 127, 137, 129, 125, 122, 124, 132, 130, 130, 129, 131, 130, 122, 129, 124, 121, 120, 135, 133, 129, 119, 156, 124, 126, 124, 130, 123, 111, 140, 114, 115, 138, 122, 136, 132, 146, 118, 120, 124, 117, 99, 114, 133, 124, 136, 124, 130, 127, 127, 127, 117, 128, 126, 112, 110, 134, 114, 127, 138, 113, 113, 126, 126, 122, 113, 131, 138, 138, 115, 112, 119, 129, 124, 139, 123, 129, 129, 124, 141, 130, 124, 112, 111, 123, 122, 134, 110, 124, 129, 133, 123, 140, 151, 127, 119, 128, 124, 143, 122, 121, 127, 138, 131, 146, 125, 103, 116, 139, 138, 119, 117, 106, 117, 132, 115, 127, 118, 129, 106, 126, 145, 110, 137, 119, 143, 119, 127, 113, 143, 117, 111, 133, 107, 125, 121, 123, 121, 106, 97, 112, 121, 115, 127, 108, 124, 115, 107, 159, 119, 113, 134, 125, 118, 140, 143, 153, 126, 122, 116, 145, 139, 122, 121, 135, 137, 124, 152, 107, 105, 105, 145, 130, 123, 115, 128, 133, 105, 128, 116, 125, 114, 129, 134, 131, 139, 138, 127, 137, 126, 112, 110, 118, 129, 127, 129, 131, 128, 128, 117, 126, 130, 143, 123, 115, 123, 116, 108, 113, 125, 145, 125, 141, 117, 128, 141, 121, 125, 117, 120, 130, 106, 120, 113, 106, 134, 120, 136, 122, 113, 109, 130, 121, 124, 122, 131, 102, 127, 119, 128, 117, 121, 124, 125, 115, 113, 134, 122, 129, 131, 126, 124, 120, 133, 117, 121, 121, 126, 122, 125, 124, 120, 126, 147, 136, 114, 142, 101, 115, 153, 155, 100, 132, 117, 125, 114, 152, 137, 120, 116, 98, 118, 142, 126, 130, 131, 146, 114, 106, 131, 126, 140, 124, 119, 132, 142, 119, 125, 120, 124, 128, 138, 99, 94, 133, 97, 124, 138, 128, 108, 139, 113, 128, 138, 139, 121, 140, 152, 120, 128, 129, 133, 124, 118, 112, 114, 122, 132, 147, 124, 139, 126, 123, 131, 140, 134, 115, 133, 121, 133, 161, 120, 126, 136, 123, 133, 122, 115, 110, 119, 122, 131, 134, 107, 141, 134, 115, 133, 116, 112, 152, 116, 126, 125, 130, 147, 108, 134, 118, 128, 131, 118, 106, 127, 115, 120, 122, 122, 102, 90, 136, 122, 121, 132, 138, 121, 124, 130, 139, 113, 112, 135, 126, 136, 131, 138, 120, 118, 111, 121, 139, 117, 131, 116, 132, 138, 126, 126, 138, 147, 121, 125, 143, 108, 125, 128, 136, 125, 127, 133, 123, 142, 112, 129, 121, 121, 125, 130, 134, 118, 126, 123, 123, 110, 136, 114, 124, 122, 126, 131, 142, 129, 148, 125, 122, 117, 120, 124, 118, 118, 124, 123, 124, 125, 135, 117, 138, 124, 122, 122, 133, 124, 119, 118, 137, 124, 119, 129, 130, 124, 126, 123, 106, 114, 125, 128, 136, 116, 126, 126, 137, 130, 123, 129, 121, 126, 116, 127, 121, 126, 139, 139, 121, 134, 125, 132, 126, 123, 136, 121, 122, 122, 112, 132, 114, 114, 132, 128, 109, 118, 128, 133, 115, 124, 117, 114, 108, 114, 112, 145, 125, 126, 123, 122, 121, 121, 134, 120, 131, 103, 130, 129, 118, 134, 130, 138, 127, 115, 133, 117, 135, 118, 132, 138, 123, 121, 122, 130, 142, 134, 105, 156, 131, 118, 121, 142, 126, 127, 115, 104, 124, 125, 132, 117, 121, 119, 130, 141, 129, 130, 119, 116, 124, 111, 133, 125, 123, 110, 123, 114, 120, 128, 135, 105, 121, 144, 110, 136, 110, 124, 129, 126, 140, 103, 126, 138, 149, 126, 140, 124, 132, 152, 133, 141, 122, 137, 131, 131, 129, 121, 132, 124, 113, 117, 134, 124, 134, 117, 119, 129, 123, 133, 117, 127, 131, 121, 130, 127, 124, 130, 114, 110, 133, 125, 126, 132, 124, 118, 144, 112, 141, 130, 106, 131, 118, 113, 123, 119, 131, 124, 122, 134, 118, 118, 120, 140, 128, 123, 125, 114, 125, 136, 131, 115, 128, 112, 115, 125, 125, 119, 134, 125, 96, 133, 123, 114, 96, 138, 124, 128, 118, 115, 127, 122, 124, 127, 129, 126, 111, 135, 131, 148, 132, 142, 137, 133, 133, 122, 113, 140, 124, 106, 149, 123, 119, 140, 131, 128, 130, 130, 136, 128, 116, 128, 120, 111, 126, 130, 134, 132, 141, 139, 112, 111, 127, 131, 140, 89, 162, 150, 120, 134, 132, 107, 115, 136, 125, 141, 128, 114, 114, 128, 107, 123, 153, 136, 134, 135, 123, 118, 130, 158, 129, 117, 129, 114, 131, 118, 141, 129, 125, 145, 136, 115, 127, 129, 116, 116, 101, 114, 120, 122, 121, 134, 128, 127, 132, 117, 142, 154, 127, 115, 136, 132, 116, 133, 128, 123, 106, 134, 116, 121, 128, 137, 125, 103, 125, 138, 131, 127, 134, 152, 143, 109, 138, 140, 139, 119, 128, 125, 119, 131, 115, 126, 112, 117, 118, 124, 129, 118, 114, 118, 134, 139, 149, 118, 122, 123, 132, 134, 133, 118, 118, 130, 127, 107, 134, 120, 103, 119, 123, 127, 132, 115, 107, 121, 116, 129, 140, 116, 101, 125, 131, 138, 133, 145, 132, 115, 149, 132, 131, 119, 128, 126, 129, 125, 144, 142, 109, 134, 117, 128, 121, 126, 110, 126, 124, 130, 120, 121, 131, 125, 118, 113, 126, 146, 134, 117, 131, 121, 124, 120, 122, 131, 114, 122, 128, 127, 120, 119, 113, 134, 124, 135, 139, 119, 116, 129, 141, 128, 113, 142, 132, 112, 132, 128, 143, 139, 127, 125, 118, 135, 117, 126, 119, 128, 126, 148, 140, 126, 129, 134, 129, 102, 123, 125, 117, 135, 114, 120, 133, 129, 119, 118, 123, 131, 134, 127, 119, 117, 134, 133, 134, 120, 128, 121, 112, 138, 124, 159, 114, 131, 118, 123, 158, 121, 105, 143, 121, 131, 122, 114, 114, 125, 108, 138, 125, 130, 125, 122, 142, 116, 116, 132, 122, 120, 121, 130, 134, 105, 122, 118, 123, 125, 133, 118, 119, 133, 126, 129, 147, 135, 132, 117, 123, 130, 123, 123, 115, 113, 129, 143, 127, 115, 138, 131, 124, 135, 126, 114, 120, 125, 126, 146, 136, 134, 135, 133, 129, 142, 146, 139, 130, 119, 91, 133, 130, 129, 138, 116, 140, 126, 116, 127, 109, 127, 157, 121, 111, 123, 122, 114, 129, 125, 127, 116, 114, 129, 123, 123, 116, 116, 128, 138, 139, 133, 124, 110, 139, 107, 147, 119, 120, 108, 137, 117, 130, 101, 128, 136, 109, 120, 118, 121, 125, 120, 130, 118, 134, 121, 131, 136, 111, 134, 120, 128, 121, 134, 112, 120, 131, 107, 135, 124, 129, 130, 126, 128, 118, 116, 137, 128, 117, 111, 135, 144, 128, 129, 121, 128, 123, 122, 119, 132, 127, 129, 127, 150, 122, 122, 127, 118, 139, 130, 125, 124, 144, 132, 114, 124, 136, 139, 122, 112, 132, 133, 134, 126, 121, 116, 137, 133, 150, 122, 133, 118, 135, 130, 149, 115, 136, 118, 124, 135, 117, 115, 111, 117, 146, 121, 127, 124, 142, 114, 130, 127, 128, 148, 123, 120, 140, 102, 121, 135, 114, 125, 127, 117, 126, 111, 126, 128, 131, 118, 138, 114, 128, 112, 122, 145, 122, 101, 143, 122, 133, 139, 113, 124, 131, 124, 119, 121, 136, 131, 120, 109, 133, 128, 130, 128, 142, 122, 127, 116, 117, 131, 131, 127, 106, 127, 120, 139, 131, 136, 141, 128, 126, 117, 118, 129, 126, 106, 109, 120, 144, 128, 114, 120, 123, 114, 126, 116, 115, 136, 123, 124, 118, 130, 117, 128, 142, 110, 112, 108, 119, 142, 130, 129, 124, 117, 114, 119, 133, 139, 114, 141, 137, 120, 120, 128, 133, 116, 129, 139, 110, 120, 123, 149, 127, 139, 136, 129, 128, 119, 145, 118, 137, 120, 132, 119, 79, 146, 128, 118, 124, 126, 121, 114, 125, 142, 113, 127, 123, 132, 107, 129, 132, 132, 113, 104, 126, 117, 122, 114, 117, 138, 140, 121, 114, 132, 119, 128, 102, 103, 137, 117, 117, 123, 124, 119, 110, 121, 102, 125, 146, 118, 121, 127, 126, 107, 148, 113, 109, 143, 121, 118, 131, 121, 114, 128, 127, 121, 131, 120, 124, 130, 116, 145, 131, 132, 132, 117, 134, 123, 119, 136, 134, 131, 122, 150, 116, 134, 135, 136, 126, 130, 133, 147, 126, 105, 129, 126, 95, 124, 123, 131, 110, 123, 112, 115, 128, 100, 120, 131, 142, 118, 124, 124, 149, 128, 115, 112, 120, 94, 113, 120, 145, 137, 125, 124, 121, 118, 132, 136, 126, 139, 113, 112, 110, 137, 104, 123, 132, 167, 119, 114, 123, 134, 125, 138, 126, 106, 106, 138, 115, 130, 110, 100, 123, 127, 120, 125, 121, 118, 117, 131, 120, 109, 136, 93, 110, 125, 135, 128, 121, 120, 139, 131, 116, 118, 125, 138, 130, 133, 147, 104, 94, 136, 115, 115, 126, 126, 128, 144, 115, 141, 128, 146, 105, 127, 131, 117, 152, 136, 143, 151, 104, 145, 134, 126, 119, 128, 132, 120, 124, 119, 133, 117, 128, 127, 122, 127, 131, 136, 119, 128, 125, 125, 113, 123, 148, 140, 124, 126, 137, 106, 120, 145, 131, 136, 127, 122, 117, 109, 128, 124, 119, 141, 122, 128, 122, 129, 127, 109, 125, 130, 126, 111, 123, 122, 129, 124, 106, 132, 103, 126, 123, 127, 116, 133, 123, 134, 125, 122, 110, 126, 114, 121, 121, 132, 127, 121, 131, 134, 115, 124, 119, 125, 131, 134, 131, 149, 120, 137, 120, 121, 133, 125, 126, 123, 123, 124, 126, 124, 119, 125, 149, 137, 135, 137, 137, 125, 127, 131, 119, 121, 129, 123, 128, 130, 122, 129, 110, 112, 113, 119, 141, 120, 135, 122, 110, 108, 135, 117, 126, 120, 113, 124, 114, 122, 133, 118, 145, 114, 98, 136, 134, 123, 114, 140, 143, 105, 134, 123, 145, 122, 142, 131, 115, 133, 127, 131, 120, 125, 129, 120, 139, 118, 125, 145, 110, 117, 127, 124, 127, 143, 127, 140, 121, 133, 134, 129, 116, 131, 120, 139, 134, 134, 110, 123, 114, 141, 145, 138, 128, 119, 130, 145, 134, 127, 115, 119, 119, 121, 119, 105, 122, 124, 126, 115, 128, 144, 135, 121, 128, 138, 124, 119, 127, 120, 133, 137, 108, 131, 127, 137, 130, 130, 130, 137, 139, 122, 117, 132, 145, 135, 128, 113, 134, 136, 127, 115, 128, 113, 105, 127, 124, 146, 117, 127, 138, 111, 116, 138, 119, 140, 121, 144, 139, 123, 118, 131, 130, 140, 151, 121, 136, 143, 138, 119, 126, 107, 115, 125, 123, 108, 126, 137, 133, 129, 130, 98, 109, 124, 122, 126, 126, 128, 136, 139, 100, 142, 130, 117, 132, 146, 139, 131, 134, 127, 118, 125, 109, 128, 119, 119, 129, 136, 118, 120, 115, 114, 111, 109, 125, 126, 119, 126, 117, 126, 113, 117, 125, 125, 128, 116, 119, 130, 144, 126, 112, 130, 122, 133, 130, 129, 111, 121, 133, 123, 138, 124, 125, 114, 136, 129, 131, 122, 146, 134, 115, 109, 139, 136, 131, 145, 108, 109, 122, 125, 114, 139, 136, 124, 137, 118, 116, 128, 138, 135, 124, 140, 113, 122, 128, 124, 105, 131, 138, 115, 129, 130, 122, 121, 129, 135, 131, 138, 123, 130, 135, 132, 144, 146, 117, 110, 148, 124, 117, 131, 141, 125, 139, 128, 114, 114, 140, 104, 115, 115, 116, 129, 138, 121, 126, 126, 130, 140, 133, 124, 121, 126, 120, 115, 136, 118, 119, 122, 130, 121, 110, 127, 139, 121, 130, 141, 126, 124, 129, 136, 132, 131, 114, 130, 127, 129, 127, 125, 110, 125, 118, 130, 134, 99, 131, 124, 116, 116, 120, 123, 127, 117, 134, 118, 119, 143, 119, 112, 110, 122, 130, 135, 102, 128, 125, 134, 107, 133, 124, 137, 125, 110, 116, 115, 127, 121, 114, 125, 130, 126, 125, 127, 103, 115, 112, 130, 125, 123, 125, 116, 134, 120, 124, 155, 120, 107, 124, 118, 123, 129, 121, 120, 128, 124, 135, 122, 140, 145, 120, 128, 127, 121, 130, 133, 122, 104, 119, 112, 114, 128, 123, 135, 118, 134, 116, 116, 122, 117, 104, 110, 132, 98, 103, 110, 123, 131, 129, 106, 128, 109, 120, 128, 149, 108, 118, 126, 131, 128, 114, 134, 129, 127, 123, 111, 137, 146, 132, 138, 127, 136, 134, 119, 128, 121, 115, 97, 125, 147, 127, 104, 130, 115, 122, 134, 123, 135, 131, 122, 117, 137, 142, 108, 132, 114, 108, 129, 133, 133, 124, 126, 111, 98, 124, 130, 130, 130, 129, 127, 138, 147, 120, 114, 146, 116, 139, 126, 135, 113, 125, 119, 127, 115, 154, 123, 120, 113, 117, 133, 124, 143, 117, 126, 119, 123, 126, 118, 124, 138, 134, 111, 116, 144, 97, 127, 122, 117, 121, 130, 124, 105, 131, 126, 125, 136, 124, 110, 118, 136, 113, 125, 126, 125, 131, 112, 111, 120, 122, 140, 110, 115, 106, 109, 145, 125, 132, 112, 124, 120, 128, 127, 112, 125, 115, 115, 121, 136, 134, 120, 136, 115, 144, 119, 125, 120, 98, 124, 135, 126, 101, 114, 128, 127, 127, 121, 135, 124, 115, 130, 133, 131, 104, 139, 126, 114, 118, 130, 140, 128, 146, 136, 113, 138, 122, 125, 120, 124, 133, 135, 123, 117, 132, 122, 132, 107, 126, 120, 119, 126, 125, 116, 123, 135, 126, 129, 118, 126, 123, 124, 130, 129, 121, 117, 106, 128, 118, 121, 117, 123, 126, 128, 133, 115, 109, 118, 140, 114, 114, 128, 126, 109, 126, 129, 121, 134, 128, 124, 149, 118, 126, 122, 139, 126, 110, 127, 122, 134, 118, 125, 105, 129, 112, 122, 140, 112, 108, 125, 123, 130, 132, 131, 118, 145, 131, 120, 123, 113, 133, 125, 148, 123, 122, 128, 110, 122, 114, 112, 115, 129, 150, 119, 108, 111, 114, 136, 122, 136, 128, 126, 133, 113, 127, 126, 112, 95, 125, 120, 125, 118, 140, 127, 136, 130, 127, 140, 119, 113, 124, 133, 119, 127, 120, 141, 131, 135, 127, 138, 137, 119, 134, 115, 112, 124, 134, 113, 120, 124, 117, 114, 123, 124, 117, 115, 114, 117, 118, 134, 113, 106, 121, 123, 122, 131, 129, 118, 135, 132, 135, 137, 122, 133, 128, 123, 108, 112, 110, 138, 123, 136, 133, 121, 133, 120, 123, 133, 127, 126, 135, 160, 114, 125, 138, 125, 130, 119, 130, 117, 119, 122, 135, 118, 119, 131, 119, 116, 127, 122, 124, 120, 120, 110, 123, 129, 123, 120, 140, 155, 122, 137, 127, 127, 126, 106, 105, 119, 115, 118, 110, 140, 122, 116, 105, 136, 132, 141, 128, 126, 109, 136, 127, 120, 97, 130, 108, 133, 133, 132, 125, 121, 122, 122, 134, 120, 130, 118, 124, 138, 132, 122, 140, 127, 126, 126, 114, 112, 136, 121, 121, 126, 98, 118, 114, 117, 130, 136, 143, 127, 110, 120, 148, 131, 121, 127, 105, 101, 126, 123, 118, 129, 125, 135, 130, 109, 107, 123, 126, 144, 128, 112, 129, 139, 125, 121, 116, 119, 134, 147, 124, 124, 131, 129, 121, 137, 114, 116, 122, 143, 130, 130, 121, 126, 104, 120, 125, 129, 124, 108, 115, 135, 124, 118, 130, 131, 127, 143, 136, 126, 139, 127, 134, 115, 117, 137, 119, 124, 127, 116, 127, 131, 142, 132, 107, 136, 129, 122, 113, 129, 132, 116, 113, 116, 148, 122, 135, 126, 122, 127, 109, 114, 109, 130, 124, 139, 105, 135, 127, 117, 129, 123, 139, 124, 111, 112, 127, 114, 127, 137, 127, 118, 136, 121, 124, 125, 130, 131, 118, 131, 128, 153, 127, 122, 127, 113, 137, 132, 137, 142, 106, 149, 105, 127, 142, 108, 111, 122, 122, 119, 112, 140, 116, 128, 134, 108, 138, 127, 114, 138, 115, 131, 103, 123, 120, 115, 105, 120, 134, 138, 120, 109, 145, 126, 133, 122, 129, 124, 131, 115, 140, 134, 132, 127, 109, 107, 136, 126, 114, 123, 135, 136, 120, 143, 127, 122, 118, 132, 125, 105, 134, 128, 119, 135, 119, 118, 123, 121, 117, 119, 121, 133, 128, 130, 130, 119, 134, 117, 123, 134, 120, 136, 135, 114, 118, 136, 119, 123, 121, 147, 135, 124, 129, 147, 116, 123, 117, 123, 132, 121, 123, 127, 133, 123, 137, 119, 125, 124, 122, 114, 128, 120, 119, 129, 123, 127, 138, 129, 126, 116, 137, 119, 128, 131, 120, 121, 125, 120, 120, 134, 119, 132, 108, 135, 137, 125, 117, 136, 106, 144, 104, 102, 121, 136, 136, 124, 130, 119, 121, 133, 148, 126, 138, 135, 133, 135, 122, 129, 125, 122, 128, 122, 127, 121, 136, 121, 123, 125, 122, 121, 107, 137, 133, 120, 130, 109, 113, 131, 115, 123, 132, 133, 119, 132, 137, 119, 131, 116, 117, 105, 131, 144, 125, 109, 146, 134, 131, 107, 131, 118, 119, 119, 126, 136, 126, 143, 131, 125, 130, 114, 129, 127, 129, 136, 129, 125, 123, 125, 134, 140, 130, 138, 129, 117, 124, 133, 128, 125, 117, 144, 120, 118, 116, 116, 138, 131, 136, 134, 132, 131, 133, 141, 129, 134, 121, 129, 138, 118, 129, 118, 133, 125, 104, 111, 120, 109, 113, 123, 112, 132, 132, 127, 130, 126, 135, 109, 117, 124, 127, 115, 118, 106, 123, 104, 124, 119, 119, 129, 117, 140, 115, 123, 121, 120, 114, 118, 114, 120, 125, 129, 127, 124, 137, 130, 118, 134, 136, 128, 137, 131, 129, 128, 121, 132, 145, 121, 115, 128, 139, 117, 120, 134, 126, 123, 132, 123, 121, 116, 127, 126, 138, 130, 150, 110, 122, 136, 134, 134, 121, 135, 125, 139, 132, 131, 124, 128, 124, 139, 134, 122, 152, 126, 144, 119, 123, 112, 135, 142, 108, 127, 136, 127, 118, 122, 120, 132, 111, 116, 124, 120, 121, 126, 126, 121, 122, 130, 121, 128, 131, 138, 133, 126, 126, 110, 128, 116, 115, 131, 124, 127, 127, 150, 141, 134, 123, 133, 133, 117, 128, 136, 125, 130, 142, 140, 133, 136, 144, 127, 130, 116, 107, 125, 126, 131, 110, 146, 115, 124, 133, 126, 112, 128, 129, 126, 132, 128, 130, 127, 127, 129, 125, 133, 120, 128, 134, 140, 115, 139, 126, 121, 130, 132, 111, 117, 126, 127, 119, 136, 132, 117, 116, 118, 126, 138, 142, 137, 136, 126, 109, 116, 129, 121, 133, 119, 129, 128, 120, 126, 118, 119, 125, 117, 132, 132, 124, 121, 131, 125, 131, 123, 128, 130, 129, 123, 129, 148, 130, 118, 133, 114, 125, 135, 133, 123, 115, 131, 118, 130, 112, 121, 112, 124, 124, 130, 134, 123, 134, 118, 108, 107, 134, 121, 139, 124, 142, 101, 135, 117, 115, 148, 145, 132, 113, 126, 114, 146, 125, 119, 129, 129, 125, 136, 114, 115, 127, 119, 121, 140, 132, 102, 121, 125, 127, 151, 126, 122, 133, 146, 124, 130, 120, 132, 129, 145, 117, 128, 113, 111, 105, 117, 121, 120, 117, 136, 125, 128, 114, 127, 131, 118, 114, 119, 104, 114, 116, 127, 115, 113, 128, 117, 132, 121, 130, 121, 147, 122, 115, 130, 113, 123, 143, 142, 127, 130, 133, 116, 139, 137, 115, 138, 110, 130, 145, 133, 121, 121, 147, 150, 118, 107, 129, 128, 121, 130, 135, 117, 132, 130, 126, 116, 118, 137, 118, 113, 115, 115, 115, 121, 131, 136, 127, 125, 137, 131, 131, 133, 130, 100, 132, 129, 141, 137, 101, 118, 133, 117, 131, 128, 130, 114, 133, 128, 128, 142, 117, 129, 119, 138, 129, 119, 127, 108, 124, 118, 127, 129, 126, 110, 146, 107, 128, 115, 114, 115, 111, 131, 120, 146, 137, 117, 129, 143, 120, 102, 104, 109, 121, 104, 113, 121, 120, 113, 111, 128, 141, 130, 122, 143, 119, 131, 122, 135, 136, 117, 127, 155, 114, 108, 119, 144, 113, 130, 111, 119, 113, 93, 125, 124, 120, 139, 118, 107, 122, 123, 123, 118, 117, 100, 127, 142, 148, 124, 131, 116, 139, 125, 111, 124, 145, 120, 138, 142, 101, 116, 143, 144, 142, 119, 126, 132, 119, 124, 126, 119, 124, 133, 126, 125, 135, 137, 120, 116, 128, 120, 113, 121, 101, 118, 133, 126, 121, 117, 119, 133, 139, 136, 134, 116, 147, 129, 110, 110, 119, 141, 139, 125, 134, 145, 133, 117, 127, 106, 136, 138, 134, 129, 114, 136, 140, 128, 138, 138, 114, 127, 120, 118, 115, 117, 125, 93, 123, 129, 126, 111, 115, 126, 119, 123, 117, 108, 131, 126, 127, 122, 139, 139, 115, 110, 139, 130, 110, 120, 121, 120, 133, 135, 132, 113, 127, 124, 138, 107, 137, 114, 129, 120, 113, 134, 137, 128, 129, 111, 119, 151, 127, 120, 118, 127, 115, 120, 125, 116, 122, 128, 110, 108, 103, 114, 128, 124, 141, 119, 126, 144, 144, 115, 123, 116, 125, 107, 110, 128, 120, 137, 128, 129, 126, 126, 108, 133, 127, 116, 118, 124, 130, 128, 117, 117, 122, 106, 122, 116, 115, 124, 114, 128, 133, 135, 133, 122, 116, 122, 113, 121, 109, 147, 114, 138, 105, 133, 154, 126, 144, 160, 130, 147, 124, 131, 132, 135, 153, 116, 129, 115, 126, 114, 146, 124, 115, 136, 124, 126, 112, 118, 118, 126, 117, 142, 120, 119, 131, 139, 136, 130, 128, 158, 116, 111, 137, 144, 124, 141, 129, 118, 122, 127, 125, 139, 115, 135, 128, 122, 145, 128, 131, 158, 109, 125, 117, 110, 140, 145, 126, 120, 124, 117, 139, 130, 124, 121, 131, 124, 140, 113, 144, 111, 116, 124, 131, 127, 110, 129, 135, 133, 128, 133, 137, 119, 138, 137, 132, 136, 132, 123, 132, 122, 128, 132, 125, 128, 124, 109, 120, 129, 110, 112, 130, 116, 129, 123, 140, 128, 133, 112, 119, 122, 114, 127, 151, 106, 107, 120, 149, 137, 123, 113, 123, 119, 138, 139, 131, 117, 112, 103, 123, 113, 119, 117, 128, 129, 127, 123, 115, 96, 123, 104, 129, 125, 118, 125, 128, 132, 120, 109, 144, 136, 115, 116, 121, 129, 123, 122, 124, 116, 118, 139, 136, 136, 137, 121, 117, 107, 127, 116, 124, 108, 137, 131, 99, 115, 119, 101, 121, 136, 136, 117, 113, 130, 121, 121, 133, 124, 134, 107, 124, 113, 119, 138, 119, 119, 122, 117, 118, 110, 120, 106, 120, 150, 128, 132, 133, 105, 116, 115, 114, 122, 142, 118, 128, 132, 119, 104, 124, 124, 133, 104, 141, 136, 120, 122, 122, 125, 131, 120, 133, 138, 120, 117, 131, 111, 133, 122, 140, 120, 122, 121, 112, 123, 133, 122, 117, 132, 129, 129, 127, 120, 114, 134, 121, 125, 118, 144, 113, 133, 123, 123, 120, 123, 125, 115, 121, 136, 129, 123, 129, 123, 119, 126, 122, 136, 121, 118, 138, 149, 112, 118, 115, 124, 111, 137, 127, 132, 133, 116, 125, 108, 123, 132, 128, 109, 127, 131, 117, 149, 117, 132, 131, 149, 129, 129, 132, 129, 118, 120, 132, 105, 127, 110, 109, 116, 137, 110, 127, 145, 135, 117, 113, 125, 123, 129, 152, 130, 129, 107, 123, 111, 133, 110, 143, 114, 138, 120, 114, 121, 130, 123, 133, 128, 108, 124, 112, 123, 142, 135, 109, 128, 120, 118, 125, 118, 111, 126, 111, 134, 118, 116, 131, 132, 129, 130, 137, 128, 136, 134, 133, 124, 122, 132, 135, 132, 127, 120, 117, 125, 127, 113, 108, 120, 126, 135, 126, 116, 124, 126, 129, 114, 109, 121, 130, 127, 126, 137, 129, 115, 125, 118, 111, 117, 127, 125, 143, 119, 119, 142, 114, 139, 124, 139, 102, 134, 127, 112, 118, 127, 125, 126, 112, 126, 126, 127, 117, 126, 117, 124, 140, 111, 138, 123, 114, 128, 127, 123, 128, 122, 118, 141, 122, 118, 128, 127, 122, 127, 115, 145, 119, 110, 112, 119, 130, 109, 121, 110, 145, 133, 129, 136, 107, 128, 123, 135, 132, 128, 126, 138, 125, 129, 135, 133, 105, 134, 109, 110, 118, 137, 123, 107, 114, 125, 134, 102, 120, 129, 129, 136, 110, 137, 112, 127, 139, 144, 104, 115, 129, 124, 109, 126, 142, 126, 113, 131, 111, 114, 143, 135, 137, 134, 123, 134, 124, 130, 120, 138, 131, 131, 124, 134, 124, 134, 102, 113, 121, 129, 128, 134, 119, 113, 131, 128, 134, 117, 119, 128, 118, 132, 114, 120, 136, 138, 138, 125, 132, 121, 128, 115, 116, 119, 147, 136, 128, 121, 152, 139, 116, 115, 120, 112, 127, 113, 132, 132, 132, 129, 127, 129, 123, 121, 107, 105, 122, 103, 125, 136, 133, 116, 125, 125, 151, 106, 129, 127, 123, 107, 147, 124, 157, 151, 130, 136, 142, 122, 124, 130, 123, 132, 128, 131, 119, 125, 116, 134, 132, 122, 107, 113, 119, 130, 142, 112, 131, 129, 113, 128, 126, 132, 113, 129, 136, 122, 121, 122, 128, 132, 139, 114, 137, 130, 155, 111, 131, 127, 125, 140, 140, 134, 134, 111, 116, 120, 125, 130, 131, 128, 125, 121, 124, 143, 132, 115, 119, 112, 146, 111, 128, 120, 129, 128, 136, 130, 126, 119, 133, 139, 125, 124, 120, 121, 129, 126, 131, 138, 125, 132, 112, 119, 142, 112, 128, 119, 118, 116, 138, 123, 127, 134, 124, 109, 109, 136, 126, 123, 120, 143, 116, 128, 140, 142, 139, 127, 141, 107, 122, 135, 133, 132, 130, 126, 107, 125, 128, 142, 115, 129, 115, 112, 121, 138, 133, 126, 130, 114, 130, 133, 118, 115, 126, 132, 125, 124, 106, 145, 112, 130, 136, 129, 118, 117, 122, 130, 135, 142, 141, 131, 132, 102, 125, 145, 116, 128, 127, 121, 133, 117, 118, 124, 115, 123, 127, 132, 126, 134, 134, 142, 132, 118, 105, 120, 128, 103, 125, 138, 126, 116, 118, 120, 112, 143, 123, 138, 139, 131, 85, 126, 132, 118, 129, 121, 121, 96, 121, 123, 118, 125, 145, 125, 140, 128, 112, 122, 125, 127, 134, 99, 127, 122, 109, 143, 119, 131, 124, 135, 120, 141, 110, 143, 118, 130, 126, 130, 120, 126, 106, 101, 111, 125, 126, 111, 111, 125, 128, 118, 137, 113, 123, 139, 130, 108, 115, 126, 126, 118, 115, 134, 117, 146, 130, 134, 103, 118, 133, 130, 123, 134, 113, 131, 123, 135, 126, 128, 109, 113, 134, 119, 117, 122, 144, 118, 114, 130, 108, 116, 129, 120, 128, 123, 123, 133, 133, 120, 125, 125, 128, 122, 116, 100, 118, 122, 114, 120, 112, 138, 132, 115, 145, 134, 124, 101, 120, 104, 121, 129, 123, 127, 115, 122, 135, 120, 113, 121, 103, 113, 145, 113, 113, 147, 140, 126, 117, 129, 128, 126, 132, 115, 108, 125, 119, 112, 151, 123, 95, 122, 129, 127, 136, 119, 141, 124, 126, 134, 124, 118, 122, 153, 119, 116, 123, 116, 129, 111, 135, 123, 136, 140, 115, 126, 119, 126, 109, 129, 135, 117, 153, 106, 107, 125, 146, 116, 115, 126, 132, 120, 134, 111, 127, 121, 122, 128, 136, 115, 123, 138, 134, 146, 120, 111, 119, 135, 128, 130, 127, 119, 127, 122, 125, 118, 128, 113, 136, 120, 130, 119, 116, 107, 124, 121, 127, 124, 121, 111, 117, 128, 125, 129, 124, 132, 141, 120, 140, 130, 135, 130, 123, 126, 142, 119, 121, 132, 141, 115, 113, 128, 134, 132, 111, 155, 136, 133, 130, 124, 140, 136, 121, 128, 115, 121, 142, 118, 129, 115, 120, 98, 136, 123, 145, 131, 109, 123, 130, 115, 124, 133, 108, 141, 120, 105, 128, 135, 124, 126, 128, 117, 137, 120, 113, 123, 118, 128, 142, 129, 102, 146, 137, 131, 121, 122, 134, 117, 132, 145, 120, 123, 120, 127, 123, 136, 131, 127, 123, 132, 104, 125, 139, 116, 139, 132, 124, 123, 128, 122, 138, 119, 151, 128, 119, 122, 132, 121, 140, 138, 127, 125, 129, 114, 124, 127, 135, 129, 122, 141, 126, 119, 159, 117, 124, 119, 131, 118, 129, 131, 135, 123, 121, 117, 121, 122, 154, 131, 125, 126, 129, 125, 136, 121, 112, 138, 128, 118, 122, 122, 110, 128, 135, 133, 130, 129, 124, 133, 144, 114, 127, 130, 141, 129, 125, 118, 132, 133, 120, 106, 120, 129, 158, 132, 129, 135, 129, 136, 125, 99, 149, 115, 128, 138, 120, 122, 149, 127, 101, 130, 129, 125, 129, 119, 105, 137, 110, 118, 138, 116, 145, 141, 128, 134, 130, 126, 132, 134, 131, 114, 126, 136, 114, 132, 120, 142, 103, 121, 112, 131, 120, 119, 130, 104, 130, 114, 130, 119, 115, 110, 99, 108, 123, 113, 120, 127, 118, 129, 140, 140, 113, 132, 133, 123, 131, 133, 142, 129, 138, 132, 134, 144, 128, 121, 121, 127, 108, 111, 121, 127, 119, 119, 138, 127, 139, 119, 113, 130, 131, 122, 110, 128, 126, 144, 120, 124, 134, 122, 113, 122, 114, 130, 135, 144, 133, 124, 150, 137, 104, 128, 127, 123, 137, 123, 117, 126, 153, 135, 131, 109, 108, 125, 124, 130, 124, 125, 136, 119, 117, 109, 123, 114, 111, 143, 131, 125, 125, 116, 135, 129, 130, 123, 115, 112, 124, 118, 112, 131, 129, 127, 136, 119, 122, 137, 119, 125, 127, 129, 115, 127, 135, 120, 122, 125, 115, 124, 124, 132, 120, 133, 133, 109, 99, 132, 122, 114, 151, 137, 126, 133, 128, 133, 130, 120, 123, 123, 126, 125, 122, 120, 120, 130, 140, 119, 128, 141, 135, 122, 129, 129, 138, 124, 138, 118, 121, 121, 131, 147, 117, 111, 122, 128, 120, 119, 126, 116, 118, 124, 131, 135, 139, 128, 119, 132, 130, 119, 114, 130, 130, 102, 130, 125, 118, 114, 137, 112, 128, 114, 129, 127, 125, 125, 129, 126, 120, 138, 108, 117, 105, 133, 114, 126, 130, 127, 123, 129, 124, 129, 135, 112, 121, 124, 117, 130, 135, 127, 117, 167, 127, 118, 120, 114, 122, 124, 125, 132, 113, 116, 124, 111, 112, 130, 117, 128, 127, 116, 119, 117, 115, 130, 121, 130, 136, 131, 120, 125, 125, 139, 141, 122, 141, 127, 141, 123, 130, 125, 129, 108, 120, 130, 137, 114, 127, 125, 111, 125, 115, 122, 129, 111, 127, 134, 133, 123, 116, 132, 125, 132, 119, 123, 129, 105, 144, 127, 108, 131, 119, 105, 119, 123, 105, 108, 123, 118, 122, 128, 119, 125, 122, 128, 100, 119, 117, 116, 124, 137, 107, 132, 129, 134, 120, 129, 132, 118, 133, 125, 111, 131, 125, 132, 136, 142, 115, 142, 113, 108, 133, 134, 147, 114, 122, 148, 106, 122, 126, 109, 145, 124, 118, 112, 133, 115, 125, 99, 141, 123, 122, 121, 123, 125, 145, 133, 123, 131, 111, 120, 126, 120, 114, 135, 119, 121, 137, 125, 132, 113, 125, 132, 129, 106, 132, 116, 143, 104, 143, 118, 120, 134, 125, 117, 118, 117, 126, 117, 140, 145, 125, 128, 117, 132, 118, 116, 129, 120, 136, 124, 123, 137, 101, 132, 126, 124, 132, 125, 137, 140, 119, 121, 153, 131, 127, 116, 132, 141, 118, 136, 129, 98, 126, 114, 130, 117, 142, 128, 127, 127, 127, 113, 116, 133, 140, 115, 128, 121, 130, 93, 126, 126, 139, 120, 122, 136, 140, 133, 108, 132, 126, 126, 128, 114, 104, 124, 119, 122, 121, 131, 139, 121, 114, 132, 139, 135, 129, 114, 135, 107, 106, 134, 129, 131, 146, 124, 122, 110, 137, 107, 127, 130, 131, 113, 118, 143, 134, 127, 128, 111, 128, 130, 125, 117, 136, 135, 120, 117, 126, 116, 125, 113, 121, 119, 124, 125, 113, 145, 108, 140, 130, 131, 123, 140, 116, 148, 132, 122, 123, 125, 115, 126, 118, 131, 122, 133, 133, 125, 119, 135, 137, 117, 125, 132, 125, 136, 138, 127, 135, 146, 138, 133, 128, 127, 145, 130, 139, 137, 131, 140, 126, 136, 124, 129, 145, 113, 129, 133, 103, 119, 117, 117, 133, 128, 122, 127, 130, 118, 138, 105, 126, 132, 117, 135, 119, 134, 105, 127, 142, 123, 120, 135, 119, 110, 127, 137, 129, 128, 112, 128, 118, 115, 119, 113, 119, 109, 125, 124, 130, 128, 121, 130, 121, 107, 125, 113, 124, 127, 145, 136, 125, 148, 124, 147, 140, 99, 111, 111, 114, 116, 131, 127, 109, 114, 124, 136, 100, 129, 140, 123, 118, 111, 134, 108, 130, 137, 118, 118, 117, 131, 115, 133, 133, 137, 129, 133, 136, 138, 134, 116, 128, 133, 136, 143, 120, 122, 128, 136, 125, 107, 130, 128, 129, 127, 122, 129, 136, 134, 129, 127, 120, 118, 115, 130, 129, 123, 121, 125, 120, 133, 134, 104, 131, 117, 112, 129, 132, 126, 125, 115, 119, 126, 129, 114, 129, 129, 144, 112, 126, 115, 138, 140, 133, 119, 115, 136, 125, 130, 137, 113, 117, 118, 127, 97, 133, 125, 117, 123, 99, 129, 124, 113, 129, 119, 136, 126, 108, 138, 123, 140, 121, 133, 131, 134, 127, 122, 125, 128, 127, 125, 119, 130, 106, 118, 120, 125, 137, 112, 134, 124, 126, 132, 123, 124, 128, 127, 119, 127, 115, 117, 122, 127, 130, 115, 132, 123, 129, 139, 110, 128, 124, 128, 138, 135, 122, 149, 120, 121, 133, 129, 124, 128, 137, 101, 122, 110, 117, 119, 124, 113, 99, 126, 121, 107, 105, 114, 117, 130, 112, 130, 109, 131, 129, 120, 126, 128, 123, 144, 122, 101, 120, 118, 147, 120, 120, 120, 129, 128, 122, 115, 126, 132, 119, 120, 134, 138, 143, 121, 125, 121, 111, 131, 123, 125, 122, 115, 116, 136, 114, 124, 151, 141, 127, 114, 123, 124, 124, 126, 102, 122, 109, 114, 123, 126, 131, 150, 109, 127, 133, 118, 115, 130, 105, 123, 127, 120, 126, 120, 136, 131, 132, 127, 145, 129, 109, 124, 123, 124, 127, 132, 117, 126, 120, 119, 124, 133, 144, 132, 111, 120, 121, 115, 141, 131, 124, 137, 134, 108, 120, 140, 115, 136, 124, 102, 131, 110, 119, 122, 133, 143, 140, 139, 141, 134, 119, 128, 120, 137, 133, 127, 114, 120, 118, 131, 126, 135, 126, 124, 128, 128, 120, 118, 107, 116, 118, 119, 125, 129, 143, 129, 133, 119, 123, 116, 130, 117, 135, 119, 136, 125, 121, 125, 121, 103, 132, 122, 123, 122, 117, 119, 113, 125, 131, 126, 135, 129, 138, 145, 99, 137, 138, 120, 127, 120, 129, 114, 123, 136, 145, 131, 125, 130, 128, 133, 126, 132, 112, 117, 122, 126, 114, 112, 122, 136, 131, 128, 133, 117, 122, 122, 127, 130, 135, 129, 137, 127, 137, 131, 131, 124, 124, 118, 119, 126, 132, 113, 128, 138, 131, 129, 139, 120, 127, 113, 122, 127, 115, 113, 112, 121, 119, 126, 136, 120, 119, 120, 128, 128, 143, 141, 119, 126, 144, 120, 122, 117, 114, 116, 131, 146, 118, 137, 133, 123, 123, 124, 123, 126, 138, 114, 127, 123, 134, 133, 124, 121, 119, 136, 126, 119, 115, 102, 128, 136, 129, 117, 132, 115, 116, 127, 104, 126, 125, 125, 125, 107, 112, 128, 100, 121, 107, 124, 123, 123, 136, 125, 116, 124, 116, 112, 118, 126, 144, 139, 135, 114, 128, 138, 126, 117, 116, 141, 123, 146, 127, 129, 126, 129, 116, 128, 142, 123, 132, 129, 130, 118, 118, 106, 119, 133, 148, 124, 123, 123, 128, 129, 120, 136, 129, 129, 117, 128, 127, 137, 139, 130, 128, 135, 116, 115, 137, 147, 132, 141, 132, 126, 134, 102, 127, 119, 109, 113, 121, 127, 108, 110, 115, 126, 114, 138, 131, 116, 107, 120, 105, 117, 137, 135, 133, 123, 115, 116, 126, 116, 135, 115, 125, 117, 116, 125, 139, 124, 121, 136, 126, 124, 124, 127, 152, 146, 126, 128, 122, 134, 122, 132, 139, 130, 130, 137, 114, 107, 115, 124, 115, 139, 131, 119, 116, 123, 121, 125, 117, 128, 126, 118, 134, 141, 143, 116, 131, 133, 130, 115, 133, 127, 126, 99, 118, 117, 135, 128, 125, 125, 126, 140, 116, 122, 150, 130, 118, 123, 118, 131, 117, 130, 144, 124, 131, 127, 114, 127, 125, 116, 128, 129, 122, 142, 136, 130, 135, 132, 125, 119, 139, 134, 119, 121, 135, 132, 133, 123, 121, 117, 128, 140, 124, 136, 130, 110, 127, 103, 123, 127, 113, 137, 131, 124, 121, 122, 141, 140, 128, 120, 127, 127, 147, 152, 128, 118, 118, 123, 134, 133, 113, 136, 104, 123, 137, 123, 133, 133, 125, 108, 123, 120, 127, 121, 120, 110, 120, 120, 127, 137, 111, 135, 154, 121, 115, 120, 113, 130, 132, 112, 130, 138, 116, 122, 111, 132, 101, 121, 138, 117, 140, 136, 127, 120, 134, 138, 147, 130, 135, 121, 127, 132, 125, 123, 138, 122, 125, 123, 136, 125, 158, 126, 134, 126, 134, 115, 129, 118, 124, 134, 140, 126, 127, 125, 142, 122, 136, 120, 119, 124, 131, 116, 136, 136, 119, 119, 125, 138, 112, 106, 126, 111, 106, 129, 134, 133, 133, 116, 135, 132, 146, 143, 119, 128, 132, 109, 130, 121, 130, 115, 126, 111, 112, 118, 127, 125, 120, 128, 112, 135, 125, 123, 119, 113, 134, 139, 140, 113, 132, 114, 129, 141, 117, 141, 121, 131, 133, 138, 133, 128, 126, 145, 131, 132, 123, 116, 133, 129, 119, 118, 116, 107, 118, 134, 125, 112, 115, 142, 142, 131, 123, 132, 120, 131, 142, 99, 138, 133, 136, 127, 125, 103, 131, 113, 127, 124, 121, 123, 121, 129, 140, 104, 136, 115, 124, 122, 138, 124, 130, 134, 126, 124, 130, 132, 127, 124, 126, 107, 138, 120, 134, 116, 132, 131, 122, 108, 126, 127, 128, 129, 114, 132, 123, 127, 109, 126, 140, 118, 116, 133, 133, 118, 142, 146, 113, 111, 118, 114, 143, 127, 135, 118, 136, 122, 110, 130, 123, 122, 123, 114, 128, 123, 134, 134, 143, 136, 122, 120, 134, 130, 120, 127, 121, 139, 124, 126, 131, 125, 122, 131, 144, 123, 116, 111, 122, 145, 132, 124, 102, 112, 120, 118, 124, 109, 127, 126, 135, 128, 132, 132, 122, 118, 126, 121, 126, 111, 117, 115, 126, 120, 122, 130, 112, 130, 140, 108, 117, 130, 130, 129, 129, 134, 116, 123, 112, 126, 124, 117, 122, 131, 129, 126, 124, 132, 123, 129, 117, 115, 125, 128, 117, 147, 141, 128, 110, 109, 98, 113, 108, 132, 126, 128, 107, 124, 119, 146, 124, 111, 130, 143, 132, 115, 108, 134, 114, 135, 118, 122, 111, 130, 126, 134, 119, 133, 115, 118, 122, 117, 121, 128, 124, 120, 134, 102, 127, 114, 123, 126, 123, 115, 120, 124, 119, 135, 122, 119, 115, 125, 125, 120, 126, 133, 109, 126, 130, 116, 130, 127, 119, 112, 143, 122, 125, 134, 134, 133, 140, 128, 121, 126, 125, 124, 123, 135, 122, 125, 137, 124, 111, 120, 141, 117, 128, 106, 127, 131, 141, 125, 132, 121, 116, 117, 122, 150, 131, 105, 110, 125, 119, 129, 117, 124, 140, 132, 122, 127, 140, 121, 129, 132, 101, 137, 131, 123, 130, 137, 132, 138, 124, 127, 123, 148, 113, 128, 124, 121, 109, 125, 119, 115, 114, 131, 126, 122, 136, 120, 104, 132, 133, 108, 141, 113, 130, 120, 129, 110, 124, 126, 126, 111, 124, 127, 116, 128, 122, 120, 126, 126, 132, 120, 118, 142, 115, 133, 137, 128, 142, 132, 125, 120, 138, 118, 122, 126, 129, 131, 133, 128, 142, 121, 135, 138, 132, 119, 119, 112, 129, 132, 135, 130, 131, 104, 117, 129, 119, 128, 116, 114, 131, 118, 134, 104, 116, 129, 125, 130, 136, 122, 121, 124, 127, 121, 103, 130, 121, 103, 134, 140, 122, 132, 118, 126, 123, 148, 129, 111, 116, 122, 124, 112, 141, 124, 112, 113, 130, 135, 129, 122, 116, 151, 125, 126, 147, 113, 128, 129, 124, 119, 114, 120, 138, 113, 118, 130, 130, 110, 124, 126, 123, 112, 109, 129, 114, 128, 123, 124, 129, 143, 135, 125, 129, 109, 110, 106, 109, 115, 136, 131, 124, 125, 115, 127, 139, 127, 134, 126, 114, 120, 132, 124, 131, 124, 134, 123, 112, 125, 113, 131, 120, 121, 113, 110, 137, 137, 129, 108, 136, 119, 121, 115, 122, 118, 112, 126, 141, 149, 134, 129, 117, 107, 121, 123, 125, 116, 145, 156, 118, 145, 138, 131, 122, 132, 114, 114, 118, 118, 121, 145, 127, 126, 112, 108, 142, 116, 121, 128, 130, 131, 144, 118, 135, 123, 125, 120, 110, 124, 123, 146, 131, 138, 127, 127, 138, 133, 122, 124, 127, 123, 120, 125, 130, 121, 128, 125, 129, 127, 122, 127, 145, 120, 135, 118, 132, 115, 129, 137, 123, 116, 135, 135, 116, 132, 132, 122, 141, 136, 131, 123, 104, 131, 133, 148, 115, 115, 121, 134, 117, 110, 127, 125, 114, 121, 128, 135, 129, 130, 115, 129, 120, 119, 126, 127, 136, 109, 140, 127, 115, 134, 130, 129, 139, 124, 121, 128, 117, 122, 113, 149, 139, 122, 108, 141, 140, 134, 135, 139, 119, 111, 126, 115, 118, 100, 131, 139, 122, 127, 146, 112, 120, 120, 133, 122, 127, 120, 121, 137, 122, 136, 130, 121, 125, 120, 125, 121, 125, 112, 111, 117, 130, 118, 130, 128, 110, 116, 115, 126, 122, 110, 127, 129, 124, 122, 149, 118, 137, 128, 127, 121, 125, 129, 127, 113, 115, 127, 127, 125, 150, 124, 125, 116, 118, 110, 125, 133, 110, 120, 135, 113, 125, 152, 107, 126, 113, 112, 130, 120, 130, 127, 137, 136, 117, 121, 118, 130, 112, 119, 118, 122, 128, 131, 135, 121, 124, 120, 118, 132, 130, 101, 120, 112, 116, 127, 130, 112, 112, 135, 128, 129, 134, 140, 133, 126, 122, 119, 121, 127, 138, 119, 134, 124, 123, 136, 136, 125, 124, 129, 128, 120, 143, 113, 127, 118, 130, 115, 125, 128, 124, 125, 122, 137, 117, 130, 112, 115, 128, 125, 130, 148, 117, 119, 105, 121, 136, 123, 134, 128, 112, 126, 126, 136, 139, 119, 126, 114, 115, 127, 116, 127, 116, 130, 138, 135, 121, 137, 130, 119, 154, 121, 130, 121, 122, 139, 138, 123, 117, 115, 129, 126, 118, 110, 114, 121, 129, 125, 126, 123, 128, 133, 134, 119, 125, 134, 119, 125, 127, 134, 135, 124, 140, 117, 123, 129, 122, 125, 149, 130, 146, 133, 132, 108, 130, 119, 111, 126, 130, 117, 121, 126, 122, 110, 149, 135, 128, 129, 134, 120, 125, 140, 131, 127, 108, 126, 111, 116, 132, 119, 123, 124, 120, 129, 124, 112, 116, 130, 108, 123, 114, 122, 112, 125, 127, 120, 132, 110, 134, 118, 118, 119, 130, 117, 135, 118, 129, 122, 125, 134, 126, 126, 133, 130, 117, 127, 112, 123, 123, 130, 127, 132, 119, 123, 124, 127, 146, 105, 130, 118, 119, 121, 120, 139, 131, 113, 137, 143, 123, 121, 127, 130, 138, 135, 117, 129, 128, 123, 109, 147, 146, 121, 138, 124, 127, 118, 129, 147, 131, 109, 124, 131, 132, 125, 130, 115, 127, 129, 112, 127, 140, 120, 115, 139, 129, 128, 111, 110, 133, 117, 129, 127, 117, 119, 146, 114, 116, 111, 143, 131, 130, 118, 135, 118, 135, 116, 147, 134, 137, 145, 130, 125, 142, 108, 105, 107, 119, 113, 130, 136, 124, 131, 123, 122, 139, 126, 123, 130, 126, 121, 136, 126, 142, 124, 113, 130, 130, 127, 134, 138, 120, 137, 124, 120, 118, 128, 145, 146, 121, 130, 119, 131, 128, 130, 121, 110, 109, 132, 123, 117, 138, 144, 114, 122, 125, 122, 127, 131, 128, 113, 119, 126, 120, 118, 116, 117, 131, 137, 115, 135, 139, 111, 123, 132, 127, 136, 146, 147, 146, 126, 127, 131, 121, 117, 119, 140, 119, 147, 120, 127, 115, 124, 118, 114, 122, 130, 121, 111, 130, 124, 136, 132, 140, 133, 152, 131, 119, 112, 104, 126, 123, 129, 126, 116, 121, 123, 143, 114, 130, 111, 128, 117, 132, 118, 150, 128, 124, 128, 135, 124, 138, 124, 113, 122, 136, 133, 126, 137, 127, 140, 127, 124, 137, 118, 143, 120, 137, 114, 115, 126, 122, 123, 145, 128, 138, 139, 119, 126, 117, 116, 121, 127, 137, 121, 118, 124, 124, 129, 109, 120, 127, 106, 130, 129, 124, 112, 127, 131, 143, 108, 129, 115, 115, 119, 132, 120, 131, 123, 133, 140, 144, 125, 142, 120, 121, 124, 141, 142, 118, 121, 121, 121, 110, 123, 124, 135, 126, 124, 120, 121, 101, 130, 122, 130, 156, 104, 115, 134, 136, 120, 132, 123, 126, 126, 137, 113, 113, 132, 112, 126, 134, 123, 102, 110, 134, 115, 135, 130, 121, 131, 142, 117, 127, 127, 134, 137, 115, 114, 125, 134, 114, 141, 115, 120, 131, 114, 129, 110, 118, 121, 130, 145, 133, 132, 125, 131, 117, 141, 129, 118, 129, 127, 126, 135, 124, 120, 124, 100, 128, 137, 123, 127, 121, 121, 133, 120, 118, 117, 139, 134, 137, 151, 113, 121, 130, 133, 140, 110, 128, 131, 108, 142, 127, 122, 138, 125, 113, 123, 145, 119, 107, 124, 139, 114, 128, 122, 122, 125, 119, 118, 125, 137, 131, 133, 119, 114, 110, 135, 132, 117, 125, 130, 114, 138, 114, 121, 132, 135, 125, 113, 135, 139, 130, 125, 131, 124, 116, 126, 132, 120, 129, 128, 125, 120, 124, 113, 136, 148, 113, 141, 135, 129, 127, 132, 136, 127, 122, 129, 131, 130, 125, 117, 130, 125, 110, 120, 132, 128, 116, 137, 125, 126, 120, 118, 111, 129, 136, 115, 128, 119, 116, 123, 108, 117, 122, 120, 113, 130, 134, 120, 123, 126, 121, 110, 132, 140, 136, 125, 119, 144, 119, 133, 140, 104, 134, 132, 125, 132, 123, 121, 119, 129, 132, 117, 137, 113, 120, 116, 119, 151, 130, 121, 119, 116, 127, 127, 112, 130, 122, 137, 110, 123, 126, 112, 115, 127, 124, 154, 128, 124, 133, 116, 109, 122, 130, 129, 122, 126, 130, 119, 110, 112, 152, 133, 127, 126, 128, 124, 128, 127, 120, 118, 131, 123, 125, 123, 134, 118, 152, 136, 111, 112, 138, 106, 121, 112, 122, 121, 147, 136, 130, 126, 127, 125, 120, 109, 131, 147, 133, 121, 128, 118, 158, 135, 121, 129, 147, 132, 146, 112, 124, 117, 132, 127, 128, 116, 130, 126, 121, 132, 114, 130, 119, 158, 130, 120, 117, 114, 107, 125, 123, 122, 142, 120, 123, 128, 127, 94, 149, 140, 128, 129, 117, 127, 124, 127, 127, 133, 128, 121, 131, 117, 131, 128, 119, 119, 125, 116, 139, 126, 129, 128, 128, 148, 133, 137, 133, 124, 130, 127, 126, 105, 122, 126, 129, 121, 114, 110, 121, 123, 134, 126, 123, 128, 132, 128, 117, 123, 127, 136, 116, 115, 129, 131, 116, 126, 129, 116, 133, 140, 132, 136, 126, 120, 118, 141, 131, 113, 146, 137, 111, 122, 135, 115, 118, 130, 126, 105, 127, 135, 124, 123, 137, 140, 133, 143, 121, 118, 137, 136, 124, 137, 127, 137, 127, 132, 122, 116, 129, 118, 127, 121, 131, 132, 114, 124, 119, 122, 123, 128, 122, 145, 112, 138, 137, 133, 121, 125, 122, 143, 129, 132, 153, 127, 130, 129, 135, 135, 118, 132, 127, 128, 127, 119, 131, 116, 113, 131, 110, 125, 125, 128, 117, 146, 122, 123, 125, 128, 110, 134, 110, 140, 113, 131, 131, 117, 132, 136, 109, 124, 140, 121, 126, 126, 124, 130, 130, 125, 134, 119, 140, 130, 127, 121, 117, 126, 131, 128, 128, 109, 117, 122, 126, 132, 107, 128, 121, 134, 108, 129, 124, 121, 120, 122, 116, 124, 144, 124, 102, 112, 125, 111, 137, 127, 135, 116, 133, 130, 136, 109, 123, 120, 142, 112, 123, 123, 110, 127, 137, 113, 115, 128, 125, 128, 120, 131, 133, 118, 122, 126, 124, 122, 123, 139, 131, 126, 115, 117, 112, 124, 118, 114, 131, 131, 136, 122, 118, 123, 122, 123, 115, 129, 130, 108, 138, 125, 126, 137, 130, 134, 117, 113, 125, 134, 119, 122, 112, 134, 138, 143, 138, 131, 119, 111, 127, 121, 121, 123, 114, 115, 126, 137, 111, 129, 127, 123, 127, 134, 116, 118, 119, 130, 163, 107, 118, 132, 123, 114, 130, 146, 114, 118, 109, 106, 119, 118, 149, 121, 107, 126, 141, 131, 134, 113, 132, 126, 120, 148, 123, 122, 118, 132, 139, 120, 122, 127, 126, 108, 127, 119, 138, 134, 133, 102, 109, 129, 132, 114, 139, 124, 130, 115, 134, 126, 115, 119, 120, 117, 130, 121, 101, 133, 132, 123, 115, 113, 127, 119, 106, 122, 131, 108, 119, 127, 133, 129, 115, 131, 109, 133, 122, 139, 112, 131, 118, 124, 132, 122, 130, 124, 120, 117, 114, 116, 128, 104, 129, 124, 123, 116, 117, 124, 119, 120, 135, 125, 119, 110, 128, 126, 120, 149, 138, 126, 117, 129, 120, 145, 163, 123, 133, 123, 126, 115, 115, 120, 124, 133, 134, 114, 143, 128, 124, 127, 143, 124, 115, 129, 116, 130, 122, 123, 135, 148, 110, 117, 136, 121, 144, 140, 132, 117, 122, 117, 134, 136, 121, 127, 123, 123, 103, 130, 123, 142, 126, 124, 126, 125, 111, 128, 116, 130, 118, 113, 137, 115, 129, 134, 116, 114, 137, 112, 138, 110, 116, 111, 135, 134, 127, 126, 119, 131, 127, 124, 132, 108, 138, 118, 138, 122, 128, 150, 134, 135, 140, 104, 115, 130, 123, 131, 138, 136, 127, 158, 114, 145, 113, 127, 119, 127, 118, 120, 146, 111, 133, 126, 112, 119, 136, 123, 123, 126, 115, 118, 118, 130, 130, 116, 126, 113, 131, 135, 134, 123, 126, 110, 123, 120, 120, 122, 123, 132, 127, 137, 120, 128, 117, 117, 141, 109, 131, 115, 127, 141, 132, 126, 114, 129, 111, 130, 131, 116, 111, 127, 128, 124, 120, 119, 128, 134, 136, 128, 118, 105, 141, 129, 136, 114, 124, 117, 130, 127, 115, 133, 120, 136, 115, 102, 110, 125, 112, 123, 129, 126, 131, 121, 135, 112, 134, 121, 124, 108, 124, 123, 118, 120, 118, 132, 115, 119, 128, 120, 124, 110, 116, 118, 125, 131, 142, 129, 127, 126, 130, 112, 122, 138, 107, 118, 117, 138, 96, 109, 124, 133, 118, 132, 122, 135, 133, 133, 107, 143, 147, 115, 137, 174, 116, 129, 118, 123, 127, 127, 117, 127, 118, 114, 125, 114, 129, 115, 96, 109, 117, 143, 132, 103, 140, 120, 119, 111, 110, 124, 129, 125, 146, 109, 122, 128, 131, 118, 114, 129, 143, 116, 145, 102, 120, 108, 115, 93, 128, 140, 119, 127, 118, 132, 113, 115, 112, 127, 134, 118, 135, 124, 113, 122, 117, 126, 124, 109, 127, 119, 112, 122, 115, 115, 141, 140, 121, 119, 141, 123, 129, 116, 139, 142, 126, 127, 106, 132, 136, 100, 118, 123, 139, 123, 132, 113, 150, 131, 115, 130, 114, 116, 113, 135, 138, 116, 109, 145, 122, 136, 142, 114, 130, 118, 132, 133, 111, 126, 137, 106, 123, 104, 128, 130, 136, 129, 115, 136, 121, 120, 137, 108, 126, 125, 116, 133, 126, 107, 135, 135, 130, 120, 131, 134, 123, 119, 130, 127, 117, 137, 127, 120, 130, 137, 115, 114, 118, 127, 138, 138, 133, 131, 149, 112, 123, 127, 127, 117, 110, 123, 127, 140, 112, 114, 113, 136, 108, 122, 125, 122, 129, 129, 124, 119, 108, 116, 114, 147, 122, 120, 122, 110, 123, 113, 137, 114, 130, 129, 128, 138, 111, 122, 134, 97, 120, 126, 128, 118, 133, 104, 122, 107, 127, 138, 134, 113, 123, 119, 120, 120, 116, 140, 112, 124, 112, 112, 137, 106, 140, 129, 114, 108, 123, 120, 113, 134, 128, 117, 131, 120, 143, 112, 122, 119, 132, 138, 125, 132, 132, 103, 142, 122, 111, 97, 123, 129, 129, 129, 121, 136, 127, 129, 121, 122, 126, 122, 123, 125, 120, 127, 111, 121, 132, 134, 136, 158, 131, 116, 127, 125, 119, 124, 120, 132, 109, 148, 105, 127, 133, 124, 118, 126, 130, 137, 118, 112, 135, 116, 135, 120, 152, 99, 114, 139, 121, 130, 124, 147, 126, 138, 127, 114, 111, 120, 123, 130, 141, 103, 145, 134, 132, 126, 107, 133, 141, 121, 136, 116, 116, 138, 135, 123, 116, 122, 137, 118, 117, 134, 118, 111, 124, 127, 133, 130, 130, 96, 132, 122, 118, 129, 118, 120, 141, 112, 120, 128, 108, 127, 114, 124, 122, 128, 112, 132, 119, 130, 130, 128, 132, 128, 109, 106, 112, 149, 121, 142, 126, 123, 101, 125, 134, 145, 113, 121, 130, 131, 139, 120, 118, 132, 128, 127, 128, 123, 125, 117, 122, 132, 131, 110, 134, 132, 118, 131, 136, 123, 133, 122, 112, 122, 122, 119, 122, 127, 117, 126, 108, 132, 126, 119, 114, 117, 111, 121, 119, 124, 122, 117, 113, 99, 105, 136, 117, 130, 135, 111, 123, 134, 89, 127, 114, 123, 120, 131, 110, 119, 119, 140, 131, 116, 151, 139, 118, 136, 142, 111, 135, 132, 126, 124, 123, 126, 123, 131, 125, 125, 130, 115, 147, 121, 126, 135, 111, 136, 126, 131, 120, 126, 118, 109, 133, 116, 136, 103, 121, 120, 125, 145, 130, 121, 123, 134, 112, 123, 106, 100, 126, 121, 118, 121, 103, 118, 130, 136, 139, 120, 108, 124, 122, 130, 130, 133, 146, 118, 124, 106, 123, 123, 113, 118, 118, 115, 132, 122, 119, 131, 117, 138, 117, 140, 119, 109, 123, 114, 132, 121, 128, 108, 122, 127, 124, 132, 148, 143, 137, 131, 126, 130, 109, 138, 116, 125, 119, 131, 123, 129, 117, 113, 126, 119, 138, 115, 123, 131, 116, 127, 132, 125, 125, 110, 125, 112, 124, 119, 123, 141, 123, 121, 142, 128, 122, 142, 124, 130, 116, 122, 119, 121, 117, 126, 129, 136, 118, 136, 125, 123, 132, 127, 113, 119, 123, 144, 125, 118, 128, 140, 114, 126, 137, 121, 131, 141, 131, 105, 136, 116, 134, 136, 120, 116, 145, 125, 122, 144, 119, 145, 117, 122, 136, 143, 133, 134, 106, 125, 121, 108, 128, 108, 124, 128, 131, 110, 85, 125, 132, 128, 121, 123, 125, 148, 119, 110, 115, 128, 124, 117, 123, 118, 118, 138, 122, 125, 122, 114, 155, 132, 128, 120, 140, 134, 115, 106, 126, 133, 121, 129, 138, 149, 120, 124, 116, 111, 126, 132, 111, 147, 109, 105, 123, 127, 130, 151, 124, 127, 141, 123, 124, 123, 144, 133, 131, 134, 166, 119, 121, 132, 124, 120, 130, 136, 103, 130, 138, 115, 104, 123, 123, 142, 147, 91, 138, 121, 110, 125, 137, 116, 123, 127, 126, 129, 111, 133, 117, 108, 117, 129, 149, 115, 122, 116, 125, 121, 127, 120, 128, 136, 124, 139, 114, 123, 108, 143, 109, 111, 148, 124, 118, 119, 117, 133, 98, 136, 115, 130, 108, 111, 127, 137, 124, 126, 124, 120, 129, 141, 136, 131, 120, 120, 137, 118, 126, 130, 158, 147, 131, 108, 118, 129, 112, 124, 135, 117, 162, 135, 114, 140, 126, 126, 130, 111, 130, 132, 139, 139, 142, 121, 119, 139, 127, 127, 128, 121, 121, 129, 142, 121, 128, 115, 120, 127, 131, 144, 128, 129, 139, 105, 127, 114, 113, 144, 141, 137, 130, 143, 134, 122, 134, 113, 140, 147, 119, 101, 138, 124, 124, 126, 112, 102, 124, 131, 143, 118, 126, 129, 121, 135, 135, 131, 134, 139, 125, 122, 111, 134, 122, 137, 128, 125, 111, 130, 120, 131, 137, 127, 118, 131, 133, 108, 131, 160, 123, 134, 137, 144, 170, 120, 127, 118, 111, 123, 131, 115, 136, 102, 131, 116, 116, 125, 118, 131, 129, 117, 139, 122, 128, 123, 128, 139, 117, 123, 121, 113, 117, 134, 129, 124, 115, 111, 135, 116, 135, 136, 124, 114, 126, 144, 111, 121, 120, 122, 133, 120, 146, 134, 111, 135, 115, 120, 124, 122, 127, 134, 131, 135, 139, 121, 130, 118, 110, 131, 127, 133, 131, 122, 117, 126, 134, 132, 129, 141, 108, 120, 132, 128, 149, 122, 114, 138, 132, 113, 131, 123, 122, 122, 149, 106, 144, 136, 111, 119, 116, 117, 120, 116, 132, 127, 123, 110, 137, 121, 127, 124, 117, 129, 113, 119, 121, 124, 123, 140, 124, 119, 128, 114, 132, 128, 117, 116, 125, 123, 124, 136, 129, 127, 123, 127, 127, 137, 126, 123, 131, 123, 133, 105, 119, 107, 134, 130, 123, 108, 116, 118, 145, 125, 113, 137, 136, 149, 121, 119, 124, 106, 118, 139, 113, 116, 133, 122, 126, 133, 135, 97, 117, 128, 104, 125, 130, 113, 117, 116, 124, 118, 118, 128, 118, 120, 130, 127, 124, 128, 133, 134, 127, 118, 123, 113, 113, 146, 127, 130, 142, 146, 121, 137, 132, 119, 136, 104, 135, 129, 109, 140, 132, 125, 139, 118, 117, 144, 136, 111, 130, 121, 105, 106, 109, 111, 122, 132, 127, 113, 135, 116, 122, 109, 121, 121, 128, 124, 115, 126, 124, 121, 127, 136, 128, 123, 117, 124, 128, 116, 114, 115, 129, 115, 130, 105, 122, 128, 150, 114, 120, 121, 120, 128, 135, 113, 118, 124, 142, 119, 138, 139, 125, 118, 113, 117, 115, 130, 126, 132, 119, 113, 112, 116, 147, 125, 129, 120, 108, 116, 129, 125, 125, 122, 139, 131, 125, 115, 132, 128, 116, 113, 119, 126, 115, 130, 129, 133, 127, 120, 121, 113, 128, 119, 136, 123, 113, 140, 128, 125, 131, 116, 134, 115, 128, 109, 125, 122, 134, 131, 129, 118, 119, 117, 125, 112, 115, 118, 142, 122, 134, 137, 132, 119, 131, 115, 116, 104, 128, 122, 128, 123, 115, 126, 122, 122, 123, 128, 128, 110, 124, 125, 152, 128, 108, 127, 122, 128, 131, 133, 127, 120, 126, 131, 127, 122, 124, 122, 109, 113, 114, 119, 131, 114, 117, 123, 110, 129, 125, 125, 134, 125, 135, 127, 103, 119, 122, 125, 116, 124, 128, 136, 136, 127, 122, 126, 127, 111, 128, 128, 139, 140, 129, 112, 127, 133, 109, 111, 108, 115, 129, 121, 114, 116, 126, 141, 117, 126, 143, 116, 125, 119, 120, 117, 104, 120, 119, 128, 128, 126, 113, 142, 123, 142, 111, 141, 96, 120, 111, 116, 114, 134, 132, 148, 128, 130, 137, 116, 131, 116, 128, 111, 117, 105, 125, 129, 120, 127, 122, 127, 111, 123, 133, 138, 118, 125, 120, 129, 128, 116, 124, 126, 136, 131, 93, 135, 122, 127, 127, 112, 134, 131, 112, 114, 144, 123, 117, 122, 126, 113, 121, 123, 142, 125, 117, 127, 119, 126, 124, 135, 121, 107, 116, 128, 120, 133, 130, 127, 123, 123, 112, 126, 117, 141, 150, 124, 158, 129, 126, 144, 119, 124, 112, 120, 119, 134, 151, 125, 138, 121, 103, 120, 131, 137, 129, 125, 135, 131, 112, 133, 127, 128, 109, 110, 111, 108, 120, 131, 115, 102, 117, 120, 137, 132, 124, 131, 126, 134, 116, 113, 126, 131, 135, 130, 113, 127, 114, 135, 152, 137, 146, 121, 144, 130, 123, 118, 135, 129, 132, 125, 129, 112, 131, 142, 134, 130, 107, 121, 136, 142, 132, 132, 127, 116, 137, 123, 154, 119, 143, 126, 121, 123, 118, 136, 141, 130, 124, 122, 147, 126, 148, 124, 122, 126, 162, 130, 129, 133, 136, 124, 126, 127, 143, 144, 126, 137, 128, 138, 121, 138, 134, 112, 122, 122, 112, 119, 132, 106, 115, 115, 126, 135, 127, 137, 129, 116, 123, 128, 110, 144, 133, 118, 132, 149, 149, 129, 120, 133, 117, 117, 143, 120, 129, 118, 123, 136, 116, 126, 130, 136, 101, 138, 122, 119, 128, 117, 134, 138, 119, 117, 108, 122, 125, 120, 137, 136, 116, 123, 125, 120, 103, 143, 116, 139, 117, 138, 129, 111, 129, 119, 120, 123, 123, 132, 120, 116, 125, 107, 119, 108, 128, 132, 126, 128, 142, 130, 114, 128, 133, 115, 146, 114, 128, 134, 135, 125, 125, 127, 110, 131, 129, 115, 105, 116, 136, 124, 121, 119, 111, 120, 120, 121, 132, 139, 125, 129, 129, 134, 145, 134, 139, 112, 122, 135, 121, 137, 129, 131, 122, 130, 115, 132, 122, 126, 140, 109, 125, 118, 124, 121, 118, 119, 150, 122, 106, 114, 128, 128, 119, 119, 105, 126, 114, 118, 115, 142, 140, 124, 117, 129, 130, 121, 125, 116, 121, 133, 112, 152, 140, 105, 131, 109, 127, 119, 119, 130, 133, 126, 121, 110, 111, 129, 118, 117, 119, 121, 137, 119, 132, 111, 136, 114, 106, 109, 134, 128, 137, 135, 113, 118, 116, 118, 127, 114, 135, 110, 132, 130, 131, 152, 119, 121, 117, 138, 142, 129, 119, 128, 116, 119, 121, 136, 120, 125, 115, 115, 119, 122, 135, 122, 120, 114, 119, 119, 120, 114, 116, 135, 108, 136, 122, 121, 126, 138, 140, 115, 119, 134, 125, 134, 117, 141, 133, 117, 132, 128, 122, 115, 124, 106, 131, 119, 125, 125, 115, 119, 109, 143, 116, 136, 123, 145, 127, 126, 120, 130, 129, 109, 121, 114, 115, 145, 121, 132, 114, 123, 138, 145, 122, 118, 132, 106, 148, 130, 133, 122, 111, 128, 123, 137, 118, 126, 126, 137, 121, 122, 133, 128, 133, 115, 137, 111, 127, 113, 128, 125, 117, 114, 118, 123, 122, 129, 135, 125, 148, 127, 124, 123, 115, 147, 127, 124, 114, 128, 135, 118, 130, 125, 123, 125, 144, 116, 113, 130, 108, 108, 107, 124, 121, 95, 123, 120, 122, 121, 131, 116, 115, 102, 128, 146, 132, 122, 118, 120, 126, 114, 116, 117, 136, 111, 134, 117, 122, 141, 128, 108, 118, 128, 146, 144, 114, 136, 136, 132, 121, 121, 123, 102, 119, 133, 116, 110, 121, 135, 121, 133, 141, 125, 117, 117, 125, 118, 136, 134, 143, 130, 130, 125, 144, 148, 118, 133, 128, 125, 132, 120, 114, 134, 113, 128, 133, 118, 129, 123, 129, 126, 124, 139, 124, 114, 118, 118, 110, 149, 122, 109, 129, 118, 126, 123, 110, 129, 137, 120, 110, 127, 142, 125, 101, 119, 115, 135, 135, 134, 116, 114, 124, 163, 145, 115, 111, 135, 118, 114, 141, 120, 115, 108, 111, 127, 134, 138, 125, 132, 129, 139, 146, 146, 110, 114, 142, 127, 125, 119, 124, 114, 115, 132, 127, 126, 109, 139, 132, 111, 134, 143, 133, 135, 119, 119, 145, 122, 125, 123, 137, 118, 128, 125, 125, 121, 101, 149, 110, 129, 119, 123, 131, 117, 114, 104, 129, 128, 158, 132, 119, 149, 132, 123, 143, 118, 120, 136, 125, 124, 107, 118, 123, 131, 131, 136, 127, 116, 128, 131, 131, 111, 131, 124, 115, 127, 123, 121, 141, 133, 125, 121, 128, 136, 126, 130, 110, 108, 140, 126, 125, 145, 117, 139, 131, 116, 128, 118, 143, 159, 115, 105, 148, 116, 127, 121, 125, 147, 139, 125, 130, 127, 134, 113, 136, 122, 113, 110, 113, 132, 115, 115, 117, 140, 104, 127, 121, 130, 124, 118, 121, 124, 115, 130, 124, 124, 141, 111, 133, 107, 128, 109, 121, 138, 128, 126, 130, 130, 141, 131, 120, 119, 128, 129, 133, 135, 131, 121, 116, 119, 136, 114, 135, 124, 132, 139, 132, 116, 124, 104, 137, 110, 137, 123, 133, 117, 128, 110, 132, 133, 109, 124, 110, 129, 115, 125, 111, 147, 126, 122, 120, 143, 129, 115, 130, 141, 119, 135, 152, 121, 138, 117, 116, 129, 123, 119, 102, 159, 117, 111, 151, 131, 131, 131, 122, 116, 125, 139, 126, 133, 125, 124, 127, 122, 125, 130, 126, 119, 123, 129, 127, 134, 115, 115, 139, 128, 125, 132, 126, 114, 113, 128, 145, 152, 144, 116, 131, 117, 113, 107, 122, 118, 114, 97, 124, 120, 125, 118, 118, 111, 130, 128, 127, 140, 134, 116, 119, 104, 120, 115, 139, 122, 139, 126, 134, 124, 139, 106, 116, 131, 126, 122, 132, 133, 132, 114, 124, 128, 123, 127, 127, 127, 126, 133, 135, 110, 130, 137, 124, 108, 108, 105, 111, 124, 143, 105, 111, 139, 103, 134, 126, 105, 136, 124, 145, 133, 136, 128, 125, 127, 124, 128, 118, 141, 120, 122, 123, 132, 130, 140, 143, 116, 134, 129, 133, 136, 129, 107, 129, 126, 128, 116, 108, 144, 148, 123, 120, 125, 128, 136, 134, 130, 138, 118, 124, 114, 133, 127, 128, 118, 110, 115, 126, 144, 112, 128, 98, 110, 125, 138, 125, 131, 133, 123, 125, 119, 125, 120, 139, 142, 131, 119, 116, 127, 124, 117, 126, 130, 134, 128, 120, 140, 138, 146, 115, 117, 131, 132, 145, 140, 111, 125, 134, 111, 136, 115, 147, 108, 112, 100, 132, 133, 128, 124, 155, 126, 125, 128, 149, 121, 116, 129, 133, 110, 102, 136, 121, 118, 129, 132, 123, 119, 127, 105, 127, 126, 134, 132, 127, 127, 106, 128, 126, 141, 140, 126, 130, 115, 117, 124, 123, 138, 151, 128, 141, 134, 126, 134, 126, 130, 137, 114, 132, 119, 122, 123, 107, 152, 116, 141, 119, 129, 113, 129, 122, 118, 126, 133, 109, 128, 122, 136, 124, 128, 125, 120, 116, 123, 115, 125, 137, 139, 134, 132, 147, 137, 131, 122, 124, 129, 133, 104, 131, 126, 153, 131, 131, 120, 121, 123, 135, 136, 138, 130, 125, 135, 119, 122, 127, 130, 146, 128, 137, 129, 125, 121, 124, 115, 116, 121, 141, 119, 133, 141, 130, 112, 140, 106, 132, 112, 127, 127, 131, 127, 120, 138, 103, 138, 113, 105, 127, 124, 106, 128, 115, 139, 111, 132, 130, 128, 120, 115, 117, 129, 122, 115, 122, 124, 136, 102, 131, 119, 137, 130, 114, 128, 123, 130, 129, 138, 129, 132, 113, 122, 126, 130, 112, 125, 123, 115, 121, 120, 122, 122, 144, 133, 128, 126, 134, 136, 131, 126, 119, 122, 140, 126, 113, 137, 137, 135, 145, 122, 122, 136, 127, 108, 114, 118, 144, 131, 121, 126, 116, 118, 127, 123, 113, 116, 132, 112, 135, 122, 132, 126, 138, 121, 132, 112, 114, 129, 127, 114, 118, 149, 126, 141, 123, 124, 139, 136, 139, 116, 137, 120, 122, 109, 115, 129, 108, 132, 136, 126, 138, 137, 126, 134, 143, 127, 145, 145, 112, 123, 123, 125, 124, 104, 108, 120, 120, 109, 132, 119, 108, 117, 129, 120, 116, 125, 131, 123, 118, 118, 124, 114, 145, 117, 115, 123, 146, 129, 116, 136, 130, 128, 127, 102, 135, 117, 121, 124, 136, 128, 137, 118, 125, 123, 119, 121, 123, 143, 119, 137, 134, 133, 139, 112, 143, 115, 106, 133, 122, 131, 131, 122, 122, 113, 137, 130, 124, 116, 143, 120, 134, 119, 134, 120, 146, 120, 120, 125, 136, 131, 131, 124, 119, 138, 124, 108, 122, 120, 117, 114, 126, 124, 111, 133, 119, 133, 131, 127, 107, 137, 125, 107, 131, 128, 133, 130, 118, 128, 126, 110, 113, 136, 119, 102, 135, 124, 141, 118, 112, 123, 124, 110, 115, 126, 132, 139, 118, 117, 124, 125, 125, 121, 115, 110, 121, 142, 143, 122, 120, 124, 107, 127, 141, 115, 118, 131, 112, 123, 130, 113, 115, 123, 123, 111, 127, 124, 139, 115, 118, 118, 126, 118, 123, 130, 121, 129, 150, 110, 121, 133, 121, 122, 135, 137, 125, 120, 133, 116, 132, 130, 134, 126, 129, 134, 138, 133, 104, 130, 134, 120, 135, 133, 131, 134, 128, 131, 121, 128, 133, 111, 129, 131, 107, 122, 118, 123, 128, 134, 119, 114, 127, 119, 133, 133, 127, 137, 125, 120, 107, 130, 108, 133, 123, 135, 117, 135, 125, 125, 132, 120, 127, 132, 131, 115, 133, 113, 108, 120, 112, 121, 134, 131, 129, 124, 131, 122, 131, 126, 121, 129, 126, 119, 137, 126, 113, 125, 129, 132, 131, 136, 142, 132, 136, 112, 120, 128, 138, 113, 123, 117, 141, 127, 122, 133, 118, 123, 140, 139, 119, 115, 123, 148, 121, 108, 153, 126, 123, 118, 133, 114, 143, 122, 109, 109, 107, 138, 132, 139, 124, 107, 138, 135, 140, 118, 133, 123, 134, 124, 140, 140, 126, 109, 132, 113, 128, 126, 135, 129, 124, 117, 130, 122, 120, 123, 113, 135, 117, 129, 137, 136, 123, 139, 114, 116, 126, 124, 143, 140, 125, 129, 126, 132, 117, 120, 123, 120, 109, 114, 135, 127, 132, 118, 107, 129, 109, 121, 123, 118, 125, 135, 112, 150, 130, 132, 134, 141, 124, 137, 123, 149, 132, 132, 111, 131, 132, 127, 117, 126, 116, 121, 108, 121, 120, 118, 128, 134, 125, 122, 124, 129, 110, 138, 131, 125, 130, 124, 144, 123, 118, 120, 127, 130, 142, 101, 108, 111, 132, 135, 105, 125, 105, 142, 117, 123, 144, 136, 118, 108, 115, 118, 115, 122, 120, 130, 146, 132, 130, 142, 140, 130, 124, 119, 119, 118, 134, 112, 127, 133, 115, 135, 111, 126, 118, 141, 113, 126, 134, 108, 132, 134, 103, 115, 128, 132, 121, 120, 101, 109, 110, 117, 130, 143, 119, 111, 127, 116, 131, 129, 155, 140, 126, 129, 121, 153, 133, 119, 105, 137, 128, 121, 136, 118, 132, 116, 140, 120, 120, 104, 138, 125, 128, 130, 134, 141, 128, 135, 117, 120, 121, 117, 121, 116, 123, 138, 122, 105, 129, 125, 130, 121, 134, 105, 127, 126, 130, 132, 123, 134, 124, 135, 136, 121, 108, 114, 141, 126, 120, 130, 146, 122, 126, 125, 131, 112, 141, 138, 124, 116, 129, 128, 112, 130, 113, 107, 112, 119, 127, 141, 123, 129, 124, 129, 130, 125, 119, 132, 134, 116, 115, 125, 122, 133, 111, 105, 133, 113, 133, 132, 121, 122, 132, 117, 156, 121, 120, 125, 131, 118, 122, 130, 131, 124, 118, 119, 135, 128, 107, 115, 111, 135, 114, 129, 123, 129, 119, 125, 131, 120, 135, 121, 121, 131, 125, 116, 143, 114, 118, 122, 141, 120, 126, 127, 129, 127, 122, 103, 125, 120, 125, 122, 126, 118, 140, 131, 117, 122, 124, 115, 130, 122, 143, 118, 113, 145, 141, 124, 146, 119, 140, 132, 137, 106, 120, 130, 139, 129, 123, 106, 153, 132, 126, 141, 135, 112, 102, 134, 137, 120, 125, 129, 129, 125, 118, 119, 133, 122, 132, 124, 141, 114, 128, 143, 123, 120, 115, 131, 112, 126, 120, 108, 113, 132, 119, 131, 148, 125, 123, 129, 153, 122, 133, 114, 130, 112, 122, 133, 111, 120, 112, 124, 128, 126, 121, 119, 132, 117, 122, 110, 123, 147, 121, 115, 117, 127, 109, 132, 121, 129, 112, 127, 121, 152, 120, 119, 133, 109, 133, 120, 108, 140, 130, 119, 129, 137, 126, 126, 147, 134, 115, 128, 137, 117, 140, 98, 127, 128, 102, 128, 121, 125, 141, 109, 124, 116, 110, 141, 128, 117, 144, 114, 137, 117, 139, 142, 120, 122, 105, 129, 114, 122, 127, 144, 120, 126, 114, 112, 122, 103, 148, 115, 131, 130, 123, 128, 124, 127, 130, 127, 125, 115, 133, 120, 111, 121, 146, 130, 114, 139, 131, 126, 123, 135, 96, 146, 140, 126, 140, 141, 114, 133, 126, 133, 114, 112, 131, 111, 124, 137, 112, 122, 132, 138, 135, 139, 135, 125, 134, 131, 126, 119, 127, 114, 125, 127, 126, 119, 109, 144, 131, 124, 113, 118, 128, 131, 114, 141, 125, 138, 128, 136, 121, 110, 128, 115, 134, 125, 140, 117, 130, 121, 132, 128, 134, 114, 121, 123, 123, 124, 112, 127, 125, 106, 119, 136, 111, 121, 136, 126, 140, 128, 124, 139, 127, 121, 124, 111, 132, 118, 138, 123, 117, 139, 124, 135, 149, 120, 130, 127, 114, 131, 122, 113, 127, 128, 119, 143, 104, 126, 123, 129, 129, 150, 109, 134, 107, 128, 128, 108, 124, 136, 114, 120, 124, 132, 133, 146, 122, 115, 133, 129, 128, 108, 143, 132, 125, 144, 130, 128, 117, 128, 127, 121, 136, 130, 124, 122, 120, 125, 127, 134, 126, 120, 118, 109, 126, 134, 125, 126, 125, 123, 120, 123, 124, 121, 125, 122, 125, 130, 138, 124, 127, 125, 119, 131, 139, 138, 108, 120, 133, 121, 128, 108, 121, 116, 122, 132, 123, 129, 126, 105, 119, 111, 120, 110, 138, 116, 132, 126, 142, 113, 117, 133, 118, 127, 126, 112, 113, 142, 118, 107, 118, 106, 130, 127, 123, 116, 130, 124, 124, 105, 123, 155, 92, 127, 141, 122, 115, 127, 122, 117, 153, 116, 128, 128, 127, 126, 114, 120, 119, 126, 123, 123, 138, 127, 116, 151, 143, 130, 127, 128, 124, 127, 118, 131, 101, 126, 117, 128, 125, 147, 116, 131, 136, 124, 127, 107, 128, 125, 117, 130, 104, 120, 135, 124, 128, 132, 140, 115, 140, 141, 124, 128, 117, 130, 138, 117, 130, 141, 135, 110, 118, 135, 131, 125, 101, 116, 130, 119, 124, 120, 141, 129, 138, 122, 131, 134, 122, 125, 131, 120, 125, 128, 127, 116, 110, 114, 121, 130, 138, 132, 123, 126, 129, 136, 126, 126, 134, 154, 121, 121, 121, 116, 165, 120, 125, 131, 125, 113, 121, 127, 126, 130, 115, 120, 117, 136, 133, 136, 113, 130, 123, 122, 132, 128, 132, 143, 134, 121, 112, 123, 116, 112, 116, 122, 133, 140, 121, 146, 112, 137, 113, 130, 136, 120, 127, 133, 116, 113, 124, 130, 122, 110, 141, 156, 118, 134, 125, 116, 123, 135, 121, 149, 133, 118, 131, 137, 127, 117, 113, 124, 132, 127, 128, 121, 121, 123, 113, 132, 135, 127, 126, 97, 117, 124, 124, 116, 141, 117, 114, 128, 133, 146, 122, 103, 130, 157, 137, 133, 129, 125, 133, 121, 126, 123, 127, 119, 116, 133, 131, 149, 130, 112, 117, 111, 136, 115, 137, 138, 127, 110, 105, 119, 126, 116, 127, 122, 104, 117, 118, 131, 104, 133, 133, 125, 137, 134, 131, 131, 128, 141, 127, 115, 135, 132, 121, 108, 142, 119, 131, 132, 113, 118, 120, 121, 134, 129, 123, 122, 135, 122, 130, 126, 109, 120, 113, 105, 124, 123, 140, 113, 125, 118, 127, 137, 132, 117, 110, 156, 117, 122, 117, 125, 126, 110, 111, 119, 124, 130, 143, 125, 146, 123, 134, 112, 114, 133, 109, 120, 131, 124, 121, 133, 118, 136, 121, 117, 122, 137, 135, 121, 126, 107, 121, 121, 123, 137, 130, 122, 125, 154, 127, 109, 120, 144, 120, 145, 124, 122, 135, 124, 135, 129, 122, 132, 117, 124, 118, 111, 139, 103, 143, 124, 139, 134, 117, 147, 125, 127, 131, 124, 113, 127, 140, 121, 111, 122, 126, 142, 134, 132, 128, 125, 115, 78, 126, 119, 135, 126, 135, 141, 118, 127, 137, 146, 119, 126, 127, 121, 129, 118, 130, 114, 134, 124, 105, 123, 129, 116, 133, 117, 131, 130, 151, 114, 129, 134, 129, 123, 122, 120, 116, 125, 108, 137, 131, 122, 131, 108, 143, 127, 113, 111, 113, 130, 128, 124, 104, 118, 129, 132, 123, 100, 121, 141, 140, 130, 103, 129, 123, 130, 140, 125, 120, 132, 130, 116, 120, 112, 130, 134, 120, 137, 123, 108, 121, 119, 136, 122, 129, 117, 119, 122, 113, 126, 137, 130, 131, 117, 129, 122, 140, 119, 127, 92, 126, 123, 139, 130, 147, 133, 122, 122, 135, 125, 121, 133, 119, 121, 123, 125, 116, 132, 138, 119, 124, 114, 128, 119, 112, 133, 133, 134, 134, 110, 130, 130, 136, 123, 145, 146, 133, 124, 127, 124, 148, 113, 126, 133, 131, 129, 122, 114, 133, 116, 129, 126, 135, 129, 154, 131, 119, 136, 119, 109, 133, 125, 138, 107, 131, 122, 133, 126, 115, 114, 119, 113, 128, 140, 132, 128, 120, 119, 139, 140, 118, 134, 112, 117, 135, 117, 123, 112, 135, 122, 127, 116, 140, 126, 121, 123, 95, 129, 121, 120, 118, 136, 132, 113, 92, 123, 129, 126, 115, 121, 130, 119, 122, 123, 124, 140, 131, 116, 117, 132, 110, 145, 127, 136, 114, 143, 136, 117, 137, 123, 125, 141, 121, 115, 102, 145, 122, 121, 119, 143, 131, 128, 124, 123, 128, 120, 119, 122, 112, 141, 130, 111, 88, 126, 125, 124, 137, 127, 125, 136, 115, 129, 139, 117, 108, 119, 108, 133, 115, 122, 120, 112, 131, 139, 126, 120, 128, 136, 128, 128, 119, 124, 126, 108, 132, 118, 137, 108, 123, 101, 130, 135, 114, 121, 125, 135, 119, 133, 127, 145, 130, 137, 126, 118, 110, 120, 102, 114, 124, 125, 126, 126, 145, 129, 133, 114, 137, 121, 119, 121, 103, 116, 131, 126, 140, 121, 123, 122, 113, 119, 126, 120, 121, 128, 116, 115, 112, 106, 125, 108, 118, 131, 132, 124, 125, 117, 131, 130, 126, 132, 128, 114, 125, 107, 133, 114, 122, 124, 130, 134, 117, 121, 124, 118, 139, 132, 135, 129, 121, 118, 123, 108, 129, 118, 114, 127, 119, 105, 130, 142, 128, 138, 113, 114, 123, 123, 105, 139, 132, 126, 141, 132, 132, 118, 132, 145, 117, 120, 142, 125, 108, 115, 124, 122, 129, 138, 136, 131, 130, 126, 108, 122, 140, 114, 122, 131, 133, 125, 122, 103, 132, 137, 141, 125, 123, 119, 131, 138, 130, 126, 126, 124, 116, 116, 126, 128, 127, 131, 116, 111, 135, 117, 130, 131, 132, 127, 137, 125, 130, 126, 116, 129, 113, 126, 129, 139, 117, 134, 117, 128, 141, 135, 130, 135, 136, 128, 119, 144, 125, 130, 158, 131, 129, 109, 117, 123, 126, 136, 124, 125, 122, 121, 132, 118, 122, 125, 126, 118, 119, 102, 129, 128, 121, 110, 141, 113, 129, 135, 125, 117, 133, 143, 137, 121, 123, 117, 106, 132, 123, 120, 128, 144, 116, 138, 112, 124, 125, 128, 113, 110, 115, 127, 135, 124, 122, 136, 126, 140, 120, 128, 126, 132, 124, 152, 124, 127, 110, 126, 127, 111, 138, 127, 115, 115, 129, 137, 109, 123, 136, 127, 152, 111, 112, 130, 111, 133, 113, 133, 141, 126, 156, 127, 127, 134, 138, 125, 133, 127, 126, 123, 122, 116, 148, 119, 119, 134, 121, 121, 136, 131, 120, 117, 148, 122, 112, 136, 139, 135, 145, 121, 126, 126, 128, 115, 110, 118, 118, 133, 132, 132, 119, 126, 121, 136, 121, 126, 129, 115, 138, 109, 137, 114, 127, 133, 136, 124, 142, 134, 115, 138, 139, 129, 120, 115, 128, 128, 137, 119, 121, 127, 124, 126, 135, 123, 131, 106, 110, 142, 143, 119, 130, 129, 139, 124, 130, 131, 136, 135, 118, 116, 111, 129, 118, 127, 122, 120, 116, 113, 111, 120, 138, 125, 125, 135, 98, 113, 122, 135, 133, 138, 134, 117, 108, 128, 126, 138, 127, 135, 129, 122, 125, 131, 129, 127, 129, 130, 133, 135, 119, 128, 128, 112, 134, 132, 116, 133, 130, 128, 124, 128, 127, 129, 114, 122, 120, 108, 141, 128, 140, 111, 108, 117, 130, 125, 110, 130, 118, 123, 116, 113, 124, 129, 132, 120, 117, 120, 110, 119, 118, 113, 132, 122, 124, 134, 141, 100, 120, 118, 129, 122, 135, 130, 121, 119, 109, 125, 105, 124, 116, 127, 115, 114, 133, 134, 110, 132, 130, 133, 136, 101, 122, 121, 136, 115, 128, 120, 142, 119, 147, 133, 148, 125, 110, 129, 113, 145, 128, 137, 114, 164, 129, 128, 107, 124, 126, 136, 139, 145, 123, 128, 125, 120, 133, 125, 115, 121, 120, 131, 125, 113, 124, 127, 134, 143, 124, 134, 118, 128, 129, 128, 111, 125, 123, 136, 136, 115, 116, 117, 123, 132, 122, 115, 124, 122, 136, 124, 122, 120, 121, 135, 138, 147, 120, 135, 116, 112, 137, 106, 137, 134, 170, 140, 122, 126, 130, 133, 121, 118, 136, 127, 119, 118, 125, 132, 123, 129, 116, 127, 117, 121, 121, 131, 143, 143, 116, 133, 115, 103, 122, 128, 133, 140, 111, 119, 138, 126, 120, 107, 120, 143, 113, 119, 123, 121, 136, 112, 135, 130, 126, 122, 127, 106, 118, 122, 129, 122, 127, 144, 116, 111, 118, 117, 134, 130, 121, 122, 135, 117, 132, 128, 130, 107, 117, 136, 130, 136, 134, 116, 127, 102, 122, 140, 123, 132, 100, 135, 129, 115, 121, 126, 131, 129, 132, 120, 127, 131, 122, 140, 125, 117, 121, 128, 118, 125, 118, 96, 125, 118, 115, 131, 118, 142, 129, 134, 125, 120, 127, 125, 118, 142, 110, 151, 117, 122, 144, 127, 132, 107, 144, 123, 121, 143, 128, 129, 110, 118, 109, 140, 130, 132, 137, 126, 114, 132, 131, 132, 141, 136, 123, 115, 139, 124, 122, 127, 113, 119, 136, 121, 136, 120, 132, 117, 128, 136, 133, 129, 122, 119, 106, 121, 108, 144, 142, 127, 114, 132, 134, 126, 129, 124, 133, 115, 141, 127, 126, 126, 112, 125, 140, 118, 155, 128, 127, 129, 114, 132, 127, 118, 130, 118, 135, 126, 133, 123, 112, 125, 128, 96, 119, 130, 128, 121, 122, 120, 134, 129, 116, 134, 115, 118, 145, 126, 129, 126, 122, 116, 134, 114, 125, 123, 128, 126, 129, 137, 121, 119, 121, 121, 122, 147, 126, 141, 116, 137, 125, 133, 122, 123, 114, 131, 118, 125, 132, 125, 126, 120, 121, 118, 135, 127, 140, 119, 148, 129, 127, 130, 135, 135, 115, 134, 122, 137, 130, 113, 120, 111, 121, 128, 131, 128, 123, 143, 110, 143, 117, 126, 123, 103, 116, 111, 136, 123, 136, 115, 120, 116, 115, 130, 116, 115, 111, 121, 122, 108, 118, 114, 107, 127, 113, 133, 116, 126, 114, 120, 106, 127, 123, 123, 137, 131, 135, 124, 137, 130, 115, 126, 116, 126, 113, 134, 118, 121, 141, 127, 122, 125, 118, 128, 119, 123, 128, 127, 120, 116, 119, 125, 151, 136, 129, 155, 132, 133, 127, 130, 122, 116, 125, 125, 116, 128, 111, 128, 112, 117, 147, 130, 129, 93, 130, 145, 115, 122, 123, 142, 121, 112, 114, 114, 147, 124, 141, 130, 130, 110, 117, 119, 125, 111, 157, 132, 124, 123, 115, 116, 128, 122, 143, 130, 105, 124, 126, 119, 100, 136, 131, 123, 132, 111, 131, 111, 122, 125, 120, 137, 107, 132, 116, 118, 119, 117, 116, 129, 123, 114, 128, 119, 132, 137, 123, 129, 118, 126, 136, 135, 124, 118, 127, 136, 126, 110, 129, 128, 134, 117, 123, 131, 115, 113, 114, 130, 125, 132, 119, 135, 123, 125, 126, 123, 123, 125, 132, 121, 134, 131, 121, 125, 107, 136, 130, 120, 129, 137, 148, 133, 135, 136, 124, 123, 131, 118, 145, 115, 132, 120, 124, 121, 124, 134, 119, 113, 116, 119, 126, 132, 139, 119, 140, 137, 122, 123, 126, 123, 129, 120, 137, 124, 131, 137, 114, 114, 133, 125, 114, 131, 124, 132, 125, 125, 131, 128, 133, 127, 110, 123, 123, 117, 114, 124, 130, 124, 122, 126, 129, 120, 137, 129, 127, 118, 104, 116, 130, 124, 124, 126, 128, 102, 115, 139, 134, 147, 127, 128, 118, 114, 133, 125, 130, 137, 118, 110, 118, 131, 118, 107, 121, 124, 130, 137, 116, 131, 126, 113, 130, 139, 142, 127, 134, 121, 131, 137, 116, 120, 133, 123, 148, 106, 129, 123, 121, 139, 114, 156, 101, 116, 124, 122, 125, 120, 120, 120, 113, 113, 124, 122, 119, 125, 127, 120, 128, 120, 125, 122, 100, 125, 125, 131, 137, 121, 116, 115, 133, 119, 136, 124, 124, 124, 110, 111, 117, 124, 138, 136, 132, 118, 121, 136, 106, 130, 112, 129, 125, 135, 127, 123, 123, 119, 136, 129, 132, 120, 131, 105, 131, 128, 116, 120, 123, 99, 126, 129, 117, 141, 123, 116, 122, 127, 127, 114, 123, 123, 130, 133, 120, 118, 123, 135, 135, 137, 122, 122, 126, 134, 136, 128, 147, 134, 120, 119, 154, 121, 123, 129, 129, 125, 134, 107, 127, 140, 117, 129, 118, 133, 137, 126, 124, 117, 139, 153, 119, 131, 115, 132, 125, 130, 119, 127, 127, 115, 114, 134, 127, 127, 121, 132, 142, 112, 121, 138, 113, 138, 110, 108, 127, 119, 112, 135, 120, 120, 114, 119, 130, 137, 134, 119, 126, 133, 128, 129, 108, 121, 132, 130, 125, 120, 125, 131, 118, 140, 119, 146, 128, 117, 127, 132, 135, 129, 117, 126, 119, 137, 131, 98, 135, 124, 135, 114, 140, 128, 124, 124, 123, 129, 123, 123, 117, 118, 119, 151, 144, 134, 118, 153, 136, 124, 129, 126, 111, 129, 131, 147, 125, 129, 135, 113, 130, 124, 109, 118, 117, 132, 134, 134, 138, 117, 123, 131, 140, 135, 130, 117, 133, 143, 114, 132, 119, 130, 123, 129, 135, 126, 125, 139, 119, 112, 126, 112, 124, 115, 126, 134, 127, 122, 116, 138, 126, 123, 123, 137, 124, 125, 116, 119, 121, 134, 114, 148, 124, 127, 138, 124, 129, 128, 122, 126, 120, 116, 157, 137, 132, 107, 129, 136, 141, 120, 121, 124, 111, 117, 139, 122, 125, 113, 131, 135, 109, 127, 133, 99, 119, 117, 107, 128, 147, 124, 123, 150, 115, 122, 96, 140, 136, 110, 118, 127, 130, 118, 114, 109, 130, 115, 118, 115, 112, 120, 129, 115, 136, 130, 127, 127, 130, 122, 116, 132, 137, 121, 121, 121, 110, 127, 116, 122, 121, 125, 148, 117, 138, 136, 117, 127, 125, 135, 137, 137, 116, 115, 145, 138, 123, 131, 122, 138, 116, 119, 131, 138, 124, 118, 113, 105, 125, 116, 138, 122, 131, 85, 113, 127, 132, 122, 136, 142, 131, 118, 113, 118, 134, 131, 141, 133, 126, 138, 126, 130, 122, 132, 121, 128, 117, 112, 127, 135, 132, 123, 106, 120, 123, 138, 158, 121, 130, 122, 108, 138, 128, 113, 142, 119, 142, 113, 136, 120, 128, 146, 121, 124, 110, 117, 137, 125, 114, 128, 133, 128, 121, 111, 117, 129, 123, 123, 119, 118, 123, 118, 129, 125, 134, 99, 118, 107, 133, 144, 129, 134, 129, 107, 134, 98, 147, 131, 115, 121, 142, 130, 126, 122, 147, 142, 135, 106, 132, 127, 131, 123, 135, 127, 117, 124, 119, 126, 127, 128, 121, 142, 112, 126, 123, 121, 123, 129, 138, 130, 119, 141, 136, 132, 129, 120, 122, 132, 129, 104, 138, 113, 140, 140, 124, 122, 128, 132, 131, 145, 121, 131, 130, 127, 127, 136, 134, 138, 126, 126, 131, 140, 113, 151, 127, 128, 125, 111, 120, 134, 124, 128, 124, 110, 113, 119, 106, 106, 127, 123, 113, 141, 139, 130, 119, 130, 117, 135, 93, 121, 126, 118, 112, 125, 147, 149, 116, 137, 115, 111, 135, 143, 106, 105, 143, 131, 111, 127, 139, 134, 127, 119, 108, 131, 134, 133, 108, 127, 108, 130, 127, 146, 113, 113, 126, 119, 121, 110, 124, 123, 111, 147, 113, 130, 129, 127, 128, 116, 128, 123, 120, 112, 122, 135, 130, 131, 121, 95, 118, 113, 126, 130, 142, 126, 133, 127, 144, 114, 128, 121, 123, 128, 129, 143, 132, 141, 116, 141, 128, 122, 130, 134, 132, 110, 131, 118, 114, 128, 123, 138, 141, 129, 119, 122, 118, 112, 141, 117, 118, 121, 138, 114, 146, 121, 129, 118, 120, 135, 140, 99, 118, 117, 126, 128, 124, 135, 120, 114, 127, 123, 117, 136, 139, 122, 112, 105, 131, 106, 111, 126, 121, 114, 128, 132, 125, 110, 155, 114, 117, 123, 136, 131, 127, 128, 132, 111, 129, 114, 121, 120, 115, 135, 129, 124, 126, 121, 105, 119, 129, 122, 130, 113, 125, 112, 119, 136, 144, 116, 119, 116, 139, 107, 125, 122, 138, 131, 136, 155, 147, 128, 145, 121, 118, 117, 132, 112, 115, 120, 133, 114, 120, 132, 127, 127, 134, 126, 129, 107, 118, 128, 129, 126, 120, 122, 134, 150, 121, 114, 126, 125, 125, 120, 132, 113, 140, 125, 119, 152, 114, 137, 122, 142, 130, 123, 132, 129, 127, 136, 111, 124, 120, 136, 124, 124, 113, 128, 105, 124, 111, 105, 131, 137, 120, 137, 126, 115, 123, 104, 126, 118, 119, 125, 126, 124, 119, 137, 142, 139, 114, 128, 124, 117, 121, 126, 126, 132, 139, 132, 125, 106, 129, 131, 147, 116, 121, 132, 140, 130, 115, 109, 138, 132, 129, 128, 109, 121, 113, 113, 119, 132, 130, 123, 147, 118, 125, 142, 116, 122, 117, 114, 125, 107, 119, 133, 129, 123, 116, 129, 129, 119, 135, 134, 131, 129, 117, 145, 136, 115, 123, 141, 131, 122, 138, 136, 141, 134, 129, 123, 126, 117, 122, 121, 115, 115, 121, 99, 119, 84, 137, 112, 135, 125, 114, 125, 136, 118, 116, 126, 115, 143, 122, 134, 109, 131, 115, 136, 126, 133, 133, 112, 121, 127, 126, 129, 120, 110, 125, 117, 99, 136, 107, 124, 123, 148, 112, 139, 140, 88, 122, 125, 114, 135, 126, 139, 124, 134, 129, 127, 121, 152, 129, 107, 134, 131, 119, 95, 128, 125, 143, 120, 122, 127, 115, 106, 124, 113, 146, 121, 134, 123, 139, 117, 127, 125, 135, 126, 121, 135, 114, 117, 146, 122, 126, 110, 117, 143, 123, 120, 107, 131, 131, 111, 113, 135, 124, 129, 132, 126, 114, 123, 133, 115, 128, 138, 133, 119, 120, 126, 122, 114, 119, 116, 124, 109, 128, 123, 107, 118, 147, 135, 132, 146, 113, 112, 126, 113, 127, 130, 118, 120, 154, 136, 114, 115, 123, 116, 146, 103, 139, 114, 135, 115, 114, 140, 119, 108, 124, 134, 114, 120, 127, 128, 121, 127, 122, 121, 117, 138, 121, 134, 127, 116, 128, 114, 123, 133, 141, 121, 127, 129, 145, 138, 115, 136, 126, 123, 120, 122, 128, 132, 130, 105, 111, 111, 122, 131, 144, 145, 128, 126, 118, 122, 122, 149, 122, 130, 121, 142, 126, 131, 126, 140, 132, 113, 120, 145, 137, 138, 131, 131, 117, 140, 124, 128, 102, 122, 132, 103, 127, 124, 129, 135, 117, 113, 142, 123, 128, 140, 109, 108, 142, 131, 109, 128, 126, 129, 113, 140, 103, 139, 135, 129, 129, 135, 147, 122, 129, 111, 118, 108, 109, 119, 127, 133, 149, 130, 116, 114, 126, 128, 126, 119, 136, 125, 127, 140, 116, 133, 126, 129, 129, 138, 118, 124, 120, 122, 112, 117, 131, 164, 137, 131, 130, 128, 140, 121, 119, 142, 125, 126, 114, 145, 124, 131, 136, 121, 122, 114, 139, 125, 127, 125, 141, 133, 131, 151, 131, 143, 107, 127, 117, 119, 109, 104, 122, 125, 137, 147, 104, 112, 120, 135, 104, 132, 117, 125, 124, 118, 118, 122, 126, 112, 139, 121, 130, 134, 109, 116, 115, 117, 137, 136, 123, 134, 131, 125, 118, 124, 120, 134, 137, 122, 126, 111, 140, 131, 134, 114, 118, 113, 124, 99, 113, 112, 131, 142, 119, 110, 114, 135, 133, 123, 124, 125, 129, 120, 112, 124, 140, 118, 110, 112, 118, 105, 117, 118, 127, 125, 135, 132, 136, 113, 119, 137, 140, 135, 105, 128, 139, 121, 144, 104, 131, 135, 118, 115, 121, 114, 105, 120, 117, 109, 123, 138, 117, 107, 121, 136, 133, 120, 119, 118, 134, 123, 126, 121, 131, 136, 126, 121, 122, 134, 127, 116, 133, 120, 147, 128, 111, 118, 128, 135, 138, 123, 124, 122, 123, 124, 125, 123, 127, 120, 123, 112, 136, 111, 124, 102, 120, 136, 119, 133, 131, 124, 123, 118, 123, 129, 124, 130, 121, 118, 121, 115, 143, 132, 118, 99, 136, 123, 113, 133, 123, 130, 129, 135, 113, 119, 125, 121, 135, 115, 109, 142, 119, 119, 103, 116, 137, 133, 130, 122, 119, 116, 122, 124, 123, 122, 127, 124, 109, 139, 113, 113, 101, 126, 141, 133, 129, 115, 103, 128, 129, 116, 130, 138, 92, 125, 119, 123, 123, 135, 132, 129, 140, 128, 122, 136, 114, 127, 111, 139, 123, 126, 124, 127, 117, 113, 128, 121, 123, 127, 114, 141, 122, 140, 118, 132, 120, 122, 158, 137, 136, 136, 133, 125, 150, 129, 138, 107, 101, 114, 130, 125, 114, 105, 124, 123, 122, 126, 123, 127, 135, 116, 132, 122, 121, 142, 136, 132, 125, 141, 127, 119, 128, 125, 126, 129, 144, 124, 136, 107, 116, 125, 134, 125, 140, 129, 124, 125, 118, 127, 131, 122, 139, 125, 130, 116, 103, 135, 127, 124, 123, 132, 114, 115, 119, 104, 139, 150, 129, 117, 120, 138, 126, 132, 122, 104, 138, 132, 132, 126, 129, 129, 117, 134, 135, 107, 103, 144, 116, 107, 126, 132, 123, 134, 124, 159, 119, 134, 128, 130, 126, 122, 130, 141, 126, 145, 120, 115, 117, 123, 123, 127, 145, 137, 134, 142, 126, 135, 117, 134, 120, 111, 110, 126, 142, 117, 125, 131, 126, 132, 117, 128, 134, 108, 137, 138, 123, 132, 124, 104, 126, 122, 102, 142, 120, 104, 121, 132, 132, 118, 127, 145, 118, 130, 112, 137, 126, 120, 128, 127, 130, 107, 125, 133, 132, 140, 129, 126, 112, 112, 122, 129, 116, 133, 154, 122, 137, 121, 130, 124, 128, 145, 144, 136, 131, 124, 134, 123, 133, 128, 120, 144, 132, 113, 106, 108, 123, 124, 142, 127, 137, 121, 120, 116, 127, 97, 116, 122, 129, 134, 129, 121, 130, 105, 129, 133, 120, 114, 116, 142, 120, 128, 120, 139, 133, 130, 119, 112, 124, 136, 136, 108, 105, 122, 131, 135, 134, 120, 124, 120, 124, 126, 125, 137, 131, 150, 119, 128, 133, 129, 122, 115, 134, 124, 116, 121, 145, 139, 127, 129, 126, 135, 122, 132, 157, 126, 123, 118, 124, 115, 132, 131, 121, 124, 127, 125, 112, 127, 129, 129, 134, 136, 126, 142, 125, 129, 109, 121, 132, 132, 133, 122, 129, 130, 134, 115, 120, 106, 131, 146, 122, 118, 115, 135, 113, 123, 140, 111, 133, 135, 125, 137, 123, 125, 118, 128, 122, 137, 132, 125, 121, 112, 130, 130, 139, 126, 121, 128, 131, 120, 111, 116, 125, 120, 129, 120, 131, 114, 135, 147, 127, 135, 127, 123, 117, 132, 118, 132, 121, 134, 121, 129, 120, 132, 125, 130, 140, 135, 142, 127, 133, 119, 116, 147, 117, 119, 122, 140, 126, 99, 116, 115, 111, 124, 139, 112, 110, 126, 124, 124, 127, 113, 110, 138, 125, 139, 121, 114, 130, 137, 123, 124, 119, 121, 127, 124, 149, 133, 116, 140, 125, 126, 137, 128, 135, 113, 149, 131, 108, 87, 124, 131, 141, 108, 119, 121, 149, 134, 132, 110, 117, 127, 120, 129, 125, 135, 100, 111, 119, 119, 108, 128, 124, 129, 119, 120, 125, 121, 111, 135, 129, 135, 128, 113, 116, 123, 126, 127, 127, 124, 127, 106, 124, 111, 121, 122, 121, 115, 124, 145, 114, 134, 128, 128, 140, 117, 120, 134, 126, 113, 128, 134, 125, 103, 140, 107, 116, 123, 125, 136, 117, 112, 114, 130, 146, 115, 115, 141, 126, 126, 112, 132, 137, 129, 123, 126, 115, 126, 128, 111, 124, 126, 132, 132, 118, 134, 143, 108, 127, 121, 122, 112, 149, 118, 123, 123, 122, 119, 143, 111, 121, 116, 127, 132, 133, 105, 109, 133, 117, 125, 117, 137, 131, 121, 119, 132, 135, 130, 131, 135, 126, 128, 123, 128, 119, 122, 127, 124, 127, 116, 131, 115, 112, 113, 110, 114, 114, 122, 134, 137, 149, 127, 124, 122, 122, 125, 129, 145, 118, 120, 127, 132, 122, 142, 119, 129, 147, 116, 125, 122, 115, 129, 127, 110, 120, 113, 132, 129, 147, 129, 115, 103, 153, 124, 122, 125, 136, 135, 122, 117, 107, 117, 112, 122, 129, 120, 125, 156, 123, 124, 144, 127, 117, 138, 124, 145, 140, 131, 130, 124, 125, 116, 122, 139, 138, 109, 130, 107, 140, 127, 125, 132, 120, 118, 127, 129, 124, 117, 119, 114, 113, 118, 113, 121, 123, 124, 124, 124, 125, 126, 129, 127, 123, 128, 136, 137, 130, 119, 140, 133, 149, 109, 124, 114, 121, 121, 129, 119, 122, 142, 118, 136, 116, 142, 117, 126, 116, 129, 132, 124, 128, 112, 118, 127, 139, 130, 125, 122, 123, 126, 153, 117, 142, 131, 128, 127, 127, 116, 124, 132, 128, 141, 117, 117, 122, 101, 137, 117, 110, 123, 138, 111, 109, 136, 110, 127, 104, 124, 119, 127, 115, 120, 120, 137, 127, 118, 108, 119, 121, 111, 121, 125, 118, 133, 130, 131, 127, 145, 116, 141, 125, 132, 130, 123, 130, 119, 124, 131, 130, 117, 112, 138, 131, 130, 142, 135, 133, 132, 120, 129, 114, 117, 133, 135, 133, 110, 131, 117, 126, 139, 134, 105, 138, 133, 131, 113, 126, 134, 130, 108, 113, 126, 117, 109, 126, 140, 137, 123, 131, 146, 115, 117, 127, 130, 130, 111, 117, 134, 110, 109, 136, 125, 110, 127, 113, 110, 132, 128, 132, 123, 106, 110, 125, 115, 125, 137, 126, 131, 139, 137, 127, 124, 124, 115, 127, 136, 140, 136, 110, 131, 138, 131, 127, 127, 116, 116, 137, 124, 140, 126, 142, 150, 95, 126, 111, 109, 138, 154, 129, 135, 129, 113, 135, 119, 123, 128, 126, 117, 102, 117, 121, 117, 152, 137, 150, 143, 123, 139, 118, 129, 120, 108, 117, 123, 108, 130, 124, 117, 119, 124, 130, 127, 127, 112, 135, 137, 134, 125, 123, 136, 130, 116, 126, 135, 131, 126, 132, 136, 150, 108, 110, 132, 124, 126, 135, 123, 120, 114, 139, 114, 128, 115, 139, 118, 120, 124, 119, 116, 143, 119, 132, 138, 121, 109, 127, 138, 115, 134, 116, 128, 124, 117, 94, 123, 139, 124, 128, 125, 130, 117, 131, 139, 106, 127, 121, 134, 133, 115, 150, 135, 129, 124, 138, 136, 105, 128, 106, 109, 124, 128, 137, 134, 112, 136, 139, 117, 108, 128, 118, 114, 120, 123, 142, 114, 119, 129, 112, 134, 117, 125, 126, 147, 101, 124, 124, 147, 118, 132, 113, 127, 111, 132, 130, 132, 116, 131, 122, 132, 118, 134, 120, 121, 122, 125, 143, 147, 126, 119, 116, 123, 126, 127, 111, 127, 127, 133, 115, 135, 139, 115, 111, 127, 126, 102, 130, 128, 133, 128, 113, 127, 147, 120, 113, 127, 112, 107, 117, 125, 131, 124, 106, 140, 128, 119, 116, 122, 134, 120, 134, 124, 133, 106, 114, 133, 125, 124, 122, 151, 134, 124, 120, 128, 110, 119, 121, 131, 120, 117, 104, 127, 114, 114, 116, 124, 129, 123, 130, 137, 109, 131, 110, 102, 143, 129, 124, 135, 149, 139, 123, 127, 129, 129, 110, 144, 138, 110, 130, 126, 135, 120, 133, 133, 117, 124, 125, 150, 139, 98, 127, 114, 115, 121, 123, 129, 132, 122, 124, 117, 117, 117, 108, 110, 129, 124, 129, 138, 132, 137, 131, 117, 130, 115, 151, 122, 130, 135, 111, 135, 125, 133, 120, 114, 121, 119, 116, 128, 145, 129, 123, 150, 134, 125, 123, 137, 125, 126, 139, 150, 116, 119, 127, 132, 115, 118, 120, 135, 119, 129, 147, 123, 119, 124, 143, 126, 112, 119, 120, 129, 121, 137, 136, 118, 126, 135, 128, 125, 121, 113, 137, 130, 145, 116, 132, 113, 134, 121, 102, 123, 130, 121, 141, 121, 123, 126, 118, 119, 108, 130, 145, 103, 116, 120, 125, 129, 115, 126, 125, 115, 125, 137, 119, 128, 122, 130, 111, 128, 124, 129, 100, 120, 136, 124, 120, 124, 117, 139, 132, 115, 132, 131, 119, 114, 149, 122, 132, 120, 114, 118, 143, 119, 130, 145, 122, 133, 121, 129, 134, 137, 136, 108, 117, 123, 120, 122, 128, 128, 128, 126, 121, 108, 138, 138, 131, 120, 116, 126, 139, 110, 121, 106, 123, 135, 115, 129, 113, 129, 130, 127, 107, 128, 136, 123, 129, 134, 120, 117, 138, 119, 126, 125, 125, 123, 141, 113, 128, 119, 109, 138, 138, 113, 128, 132, 121, 128, 116, 121, 112, 113, 109, 123, 117, 136, 131, 128, 122, 131, 128, 138, 130, 110, 113, 119, 146, 111, 130, 136, 127, 129, 112, 117, 122, 129, 127, 114, 116, 128, 126, 126, 129, 129, 145, 117, 108, 131, 125, 128, 125, 130, 129, 125, 130, 117, 168, 124, 135, 119, 121, 151, 125, 137, 119, 128, 147, 110, 139, 119, 130, 143, 128, 111, 113, 115, 129, 128, 129, 123, 117, 106, 126, 110, 125, 119, 128, 138, 120, 121, 112, 131, 127, 129, 130, 131, 125, 138, 131, 126, 133, 133, 117, 136, 105, 127, 132, 104, 138, 121, 142, 128, 115, 115, 134, 144, 117, 124, 114, 110, 129, 126, 132, 116, 127, 116, 121, 116, 118, 128, 134, 123, 127, 114, 118, 125, 140, 123, 123, 134, 125, 128, 127, 125, 129, 123, 131, 113, 130, 113, 132, 101, 127, 110, 146, 127, 135, 128, 114, 123, 127, 124, 141, 139, 130, 135, 122, 127, 115, 128, 123, 134, 132, 117, 129, 140, 115, 133, 124, 127, 143, 131, 122, 119, 120, 106, 124, 105, 129, 128, 141, 126, 134, 109, 129, 110, 127, 106, 114, 124, 136, 132, 124, 133, 111, 112, 135, 133, 118, 114, 126, 122, 117, 126, 133, 135, 130, 115, 145, 121, 138, 142, 132, 113, 127, 116, 125, 131, 127, 131, 126, 129, 120, 119, 125, 127, 126, 123, 106, 111, 140, 124, 120, 129, 102, 134, 127, 135, 143, 123, 118, 76, 139, 119, 119, 136, 126, 129, 126, 114, 122, 144, 124, 128, 142, 142, 116, 105, 127, 118, 127, 109, 119, 114, 121, 130, 114, 123, 132, 131, 119, 109, 114, 115, 146, 126, 120, 122, 124, 152, 102, 134, 141, 131, 155, 102, 108, 112, 115, 128, 143, 127, 122, 123, 124, 123, 135, 120, 112, 130, 149, 127, 133, 139, 140, 115, 125, 124, 122, 132, 116, 131, 131, 109, 100, 141, 124, 130, 116, 118, 123, 125, 119, 113, 138, 133, 144, 122, 116, 128, 131, 129, 137, 116, 130, 120, 110, 115, 120, 108, 138, 149, 136, 120, 107, 142, 117, 127, 109, 121, 126, 105, 118, 114, 115, 137, 114, 119, 126, 135, 122, 107, 132, 150, 122, 130, 127, 126, 127, 128, 132, 120, 114, 124, 133, 119, 129, 123, 129, 112, 139, 119, 132, 123, 126, 133, 119, 123, 129, 108, 130, 133, 130, 136, 123, 126, 101, 129, 135, 101, 134, 138, 116, 129, 121, 144, 138, 132, 119, 114, 118, 117, 125, 123, 149, 120, 139, 120, 101, 143, 102, 141, 116, 113, 110, 124, 131, 126, 121, 132, 129, 148, 115, 122, 118, 123, 141, 129, 113, 128, 114, 141, 123, 119, 122, 116, 119, 125, 139, 133, 143, 97, 115, 106, 113, 112, 122, 127, 103, 126, 111, 100, 140, 122, 134, 111, 127, 129, 123, 107, 135, 136, 128, 117, 117, 124, 110, 135, 124, 120, 135, 126, 134, 126, 132, 126, 121, 96, 121, 124, 114, 122, 137, 101, 122, 137, 140, 141, 135, 111, 121, 109, 119, 116, 122, 108, 107, 131, 140, 125, 124, 116, 123, 122, 100, 115, 117, 143, 125, 116, 141, 121, 124, 123, 131, 119, 118, 123, 123, 142, 129, 108, 128, 133, 111, 138, 145, 114, 141, 121, 122, 141, 129, 123, 129, 112, 112, 124, 108, 113, 118, 114, 106, 107, 126, 132, 134, 118, 103, 128, 146, 123, 126, 121, 121, 125, 135, 137, 135, 143, 108, 132, 145, 119, 108, 124, 125, 123, 134, 136, 119, 132, 119, 131, 118, 125, 123, 120, 111, 138, 129, 118, 118, 119, 115, 127, 111, 121, 126, 131, 130, 110, 148, 106, 140, 112, 129, 121, 127, 126, 115, 122, 123, 127, 117, 118, 123, 128, 117, 124, 121, 118, 143, 134, 141, 116, 134, 121, 130, 122, 130, 128, 117, 129, 125, 158, 123, 117, 139, 124, 126, 147, 120, 112, 149, 116, 109, 118, 125, 132, 122, 101, 124, 126, 105, 122, 121, 120, 115, 128, 139, 115, 102, 116, 119, 117, 116, 130, 109, 126, 136, 143, 114, 115, 121, 131, 127, 114, 130, 125, 132, 135, 125, 134, 116, 121, 113, 135, 129, 129, 125, 117, 129, 127, 123, 120, 122, 124, 127, 109, 122, 122, 144, 124, 125, 137, 132, 130, 132, 122, 122, 122, 116, 135, 135, 122, 124, 126, 127, 126, 117, 130, 121, 111, 130, 121, 134, 113, 121, 122, 130, 117, 149, 122, 137, 114, 115, 123, 119, 97, 126, 110, 140, 118, 124, 134, 132, 129, 134, 123, 115, 138, 140, 129, 136, 121, 119, 137, 116, 156, 135, 135, 126, 124, 144, 134, 133, 139, 116, 124, 123, 130, 130, 122, 132, 142, 107, 119, 136, 115, 123, 137, 124, 131, 142, 116, 114, 140, 130, 128, 109, 123, 129, 123, 145, 123, 138, 119, 114, 114, 117, 122, 148, 124, 124, 120, 114, 112, 142, 130, 145, 142, 133, 130, 127, 121, 135, 133, 117, 129, 129, 144, 130, 125, 123, 132, 141, 135, 122, 117, 147, 115, 109, 136, 109, 134, 108, 126, 133, 118, 119, 125, 133, 123, 116, 116, 137, 135, 127, 122, 121, 132, 133, 119, 123, 105, 136, 142, 115, 113, 113, 121, 129, 141, 124, 135, 142, 115, 128, 127, 137, 138, 135, 125, 129, 129, 124, 131, 112, 138, 117, 125, 130, 136, 124, 129, 141, 120, 120, 110, 129, 131, 121, 128, 118, 121, 115, 114, 134, 138, 124, 142, 126, 132, 113, 121, 136, 125, 112, 114, 123, 128, 113, 121, 136, 110, 120, 119, 112, 135, 132, 123, 128, 126, 139, 116, 126, 126, 124, 132, 114, 146, 134, 125, 132, 115, 119, 104, 127, 114, 113, 136, 118, 125, 146, 116, 131, 134, 129, 124, 146, 137, 134, 127, 109, 108, 109, 96, 106, 133, 111, 127, 111, 128, 115, 126, 107, 122, 113, 138, 144, 127, 140, 119, 144, 109, 128, 146, 146, 120, 127, 128, 123, 128, 118, 134, 131, 145, 133, 129, 122, 121, 125, 117, 124, 134, 137, 114, 110, 134, 129, 130, 142, 105, 124, 126, 145, 124, 119, 126, 143, 139, 129, 118, 103, 120, 120, 126, 131, 127, 110, 121, 114, 116, 114, 142, 144, 124, 127, 129, 136, 135, 133, 122, 123, 121, 113, 123, 127, 107, 122, 116, 122, 126, 124, 124, 119, 124, 117, 128, 123, 121, 106, 146, 127, 114, 126, 115, 136, 120, 147, 115, 111, 139, 121, 114, 126, 118, 129, 119, 119, 102, 116, 112, 134, 110, 139, 130, 126, 134, 121, 133, 117, 138, 105, 116, 119, 119, 133, 140, 135, 133, 118, 129, 139, 115, 131, 117, 137, 142, 117, 131, 157, 134, 123, 121, 121, 138, 129, 141, 135, 115, 120, 131, 130, 120, 120, 133, 135, 131, 117, 114, 103, 111, 111, 135, 135, 133, 112, 126, 133, 133, 127, 142, 125, 111, 123, 129, 142, 135, 137, 118, 123, 136, 121, 127, 118, 111, 133, 117, 127, 115, 132, 133, 110, 130, 134, 116, 119, 143, 136, 133, 111, 112, 122, 134, 101, 126, 131, 113, 111, 111, 118, 133, 124, 120, 113, 129, 129, 129, 135, 127, 133, 120, 146, 121, 125, 125, 122, 105, 118, 136, 122, 125, 116, 142, 123, 131, 131, 120, 116, 119, 113, 111, 116, 127, 134, 126, 125, 122, 134, 114, 105, 132, 124, 126, 128, 130, 121, 133, 140, 130, 121, 126, 107, 149, 124, 114, 119, 145, 127, 134, 129, 111, 130, 127, 128, 120, 115, 116, 136, 106, 113, 122, 140, 108, 127, 126, 127, 126, 117, 125, 113, 130, 126, 145, 102, 124, 135, 125, 118, 109, 125, 102, 141, 125, 118, 138, 124, 121, 133, 116, 133, 136, 103, 120, 112, 129, 112, 125, 116, 120, 117, 113, 137, 140, 119, 110, 116, 118, 123, 110, 146, 124, 128, 133, 104, 116, 125, 111, 122, 111, 132, 116, 124, 133, 134, 107, 119, 127, 129, 105, 143, 134, 123, 126, 126, 123, 123, 135, 119, 130, 109, 135, 136, 123, 134, 106, 115, 128, 134, 104, 126, 89, 105, 89, 135, 127, 117, 120, 118, 139, 136, 124, 138, 125, 123, 129, 121, 125, 137, 133, 106, 112, 123, 116, 149, 127, 130, 121, 132, 112, 118, 132, 114, 115, 120, 125, 122, 103, 145, 131, 125, 127, 122, 130, 141, 116, 127, 129, 120, 118, 131, 134, 116, 128, 142, 124, 122, 134, 127, 125, 117, 119, 129, 118, 142, 133, 132, 135, 148, 147, 132, 126, 130, 154, 114, 126, 126, 128, 115, 122, 127, 128, 118, 138, 124, 124, 152, 127, 135, 144, 119, 111, 122, 98, 143, 122, 128, 127, 129, 139, 108, 152, 122, 125, 123, 100, 113, 123, 109, 118, 131, 113, 138, 133, 139, 121, 129, 124, 115, 124, 129, 133, 131, 138, 139, 118, 112, 128, 128, 131, 133, 134, 133, 132, 117, 123, 122, 128, 135, 130, 114, 123, 114, 121, 130, 133, 142, 135, 132, 111, 110, 124, 121, 129, 161, 130, 124, 157, 124, 124, 128, 123, 119, 134, 129, 126, 152, 125, 128, 118, 132, 121, 137, 134, 125, 134, 146, 114, 130, 120, 113, 136, 127, 125, 120, 104, 125, 129, 132, 140, 126, 143, 125, 121, 103, 110, 104, 117, 120, 138, 105, 117, 139, 94, 122, 131, 119, 119, 141, 118, 116, 124, 119, 128, 140, 107, 130, 124, 123, 126, 133, 124, 140, 141, 134, 112, 135, 111, 118, 123, 130, 120, 136, 120, 119, 125, 126, 114, 124, 128, 140, 126, 117, 124, 123, 111, 122, 124, 134, 131, 120, 135, 124, 121, 123, 96, 130, 127, 104, 131, 137, 122, 147, 116, 121, 112, 124, 139, 118, 110, 111, 138, 120, 142, 120, 150, 122, 129, 111, 119, 142, 127, 107, 116, 114, 133, 119, 94, 129, 129, 128, 117, 115, 121, 127, 112, 128, 104, 130, 115, 127, 114, 111, 138, 122, 129, 123, 127, 106, 134, 133, 154, 111, 139, 111, 108, 127, 138, 140, 129, 134, 126, 139, 122, 140, 107, 122, 117, 118, 132, 136, 122, 115, 124, 119, 137, 142, 127, 117, 127, 139, 137, 139, 133, 127, 134, 129, 119, 129, 104, 114, 113, 117, 105, 140, 133, 119, 125, 114, 95, 124, 118, 129, 125, 147, 127, 105, 146, 133, 119, 118, 125, 123, 128, 121, 127, 122, 110, 144, 138, 106, 131, 129, 123, 107, 145, 121, 116, 95, 119, 112, 120, 137, 112, 120, 140, 119, 140, 108, 133, 129, 118, 130, 120, 127, 123, 121, 130, 132, 134, 147, 114, 138, 144, 114, 128, 122, 107, 121, 123, 114, 144, 146, 118, 114, 117, 138, 127, 119, 115, 132, 127, 104, 123, 128, 121, 120, 117, 126, 119, 136, 141, 123, 116, 120, 131, 120, 123, 125, 147, 113, 121, 140, 119, 130, 123, 110, 111, 134, 147, 127, 148, 122, 132, 137, 124, 116, 113, 115, 136, 128, 127, 115, 115, 122, 123, 170, 121, 138, 108, 131, 121, 118, 126, 144, 126, 127, 136, 133, 148, 139, 146, 113, 126, 134, 111, 116, 146, 127, 118, 123, 108, 102, 131, 149, 136, 116, 135, 137, 124, 128, 142, 115, 127, 130, 141, 139, 128, 120, 130, 121, 120, 138, 129, 121, 133, 117, 124, 131, 110, 136, 133, 117, 120, 126, 133, 121, 113, 133, 136, 150, 137, 129, 110, 132, 122, 115, 118, 118, 121, 117, 103, 122, 127, 136, 117, 129, 121, 133, 122, 116, 120, 131, 126, 106, 124, 127, 136, 108, 127, 125, 132, 131, 142, 142, 144, 133, 127, 130, 138, 121, 123, 124, 127, 137, 115, 129, 114, 118, 132, 140, 128, 142, 113, 126, 134, 102, 121, 129, 120, 123, 113, 114, 127, 137, 131, 126, 124, 123, 119, 117, 112, 120, 130, 123, 126, 126, 123, 104, 135, 130, 129, 120, 132, 122, 129, 122, 113, 132, 119, 130, 133, 119, 122, 135, 109, 131, 118, 127, 124, 110, 107, 110, 117, 120, 117, 124, 136, 138, 108, 119, 144, 131, 133, 137, 114, 131, 137, 119, 104, 129, 123, 117, 135, 125, 124, 125, 129, 132, 107, 133, 116, 118, 138, 146, 135, 128, 128, 147, 128, 109, 142, 123, 133, 117, 151, 128, 123, 118, 112, 136, 105, 132, 138, 126, 116, 123, 130, 116, 126, 127, 146, 109, 135, 132, 125, 134, 140, 114, 127, 133, 106, 120, 131, 117, 132, 127, 126, 130, 144, 114, 126, 118, 128, 119, 134, 131, 131, 130, 134, 122, 127, 145, 140, 128, 144, 119, 128, 127, 132, 115, 132, 119, 117, 125, 125, 114, 138, 127, 133, 116, 137, 142, 133, 119, 137, 132, 108, 135, 120, 124, 122, 120, 150, 132, 136, 140, 123, 121, 139, 119, 130, 138, 129, 135, 129, 121, 124, 141, 117, 130, 148, 128, 116, 136, 132, 149, 118, 119, 132, 117, 116, 129, 129, 124, 116, 134, 119, 117, 137, 123, 118, 122, 113, 137, 139, 124, 117, 111, 115, 116, 100, 120, 151, 123, 111, 99, 131, 140, 134, 136, 124, 117, 129, 117, 109, 138, 103, 146, 112, 127, 137, 117, 118, 130, 135, 126, 113, 143, 121, 116, 146, 134, 122, 132, 137, 136, 133, 119, 146, 144, 125, 140, 118, 126, 124, 131, 124, 119, 123, 109, 136, 130, 120, 114, 130, 133, 124, 110, 126, 124, 131, 130, 124, 128, 105, 128, 112, 118, 118, 129, 135, 140, 128, 112, 142, 140, 134, 128, 118, 107, 131, 112, 117, 107, 125, 126, 120, 139, 140, 116, 135, 118, 127, 113, 134, 123, 114, 102, 127, 112, 131, 125, 137, 110, 123, 123, 117, 134, 142, 138, 133, 116, 123, 139, 123, 150, 131, 127, 126, 132, 112, 133, 140, 126, 132, 112, 127, 133, 133, 118, 140, 117, 121, 120, 128, 110, 142, 109, 112, 113, 136, 117, 131, 125, 123, 119, 130, 116, 120, 127, 132, 120, 126, 129, 134, 132, 128, 150, 125, 116, 131, 126, 140, 121, 119, 130, 120, 139, 118, 138, 118, 121, 138, 117, 119, 129, 128, 118, 125, 120, 114, 113, 136, 142, 117, 128, 125, 117, 121, 111, 136, 129, 114, 130, 119, 129, 118, 119, 131, 111, 126, 116, 136, 116, 127, 117, 127, 128, 110, 135, 119, 114, 129, 111, 142, 136, 126, 126, 133, 128, 116, 133, 130, 124, 112, 123, 113, 144, 124, 107, 137, 115, 131, 152, 131, 131, 125, 117, 120, 125, 117, 124, 132, 117, 123, 126, 128, 146, 117, 127, 117, 135, 138, 120, 133, 127, 99, 107, 134, 130, 125, 121, 143, 125, 125, 121, 134, 136, 121, 129, 134, 135, 119, 141, 136, 120, 116, 121, 131, 125, 133, 115, 129, 142, 142, 129, 128, 131, 111, 119, 97, 114, 125, 128, 112, 142, 126, 138, 128, 113, 124, 120, 140, 126, 120, 119, 119, 123, 126, 133, 118, 113, 132, 126, 137, 122, 110, 114, 125, 124, 126, 108, 124, 130, 123, 134, 108, 156, 129, 142, 122, 125, 124, 113, 125, 107, 123, 119, 120, 104, 140, 127, 120, 133, 112, 114, 121, 125, 149, 128, 108, 141, 142, 123, 128, 121, 153, 135, 130, 130, 126, 117, 135, 127, 119, 119, 139, 124, 125, 110, 104, 109, 123, 125, 123, 111, 124, 135, 121, 136, 129, 129, 133, 129, 132, 125, 111, 123, 124, 168, 141, 122, 126, 130, 129, 123, 106, 140, 113, 116, 137, 140, 120, 125, 134, 133, 110, 136, 126, 128, 129, 120, 124, 110, 133, 112, 139, 110, 138, 127, 118, 126, 140, 113, 119, 118, 125, 135, 130, 127, 135, 144, 129, 129, 105, 110, 118, 112, 119, 123, 120, 133, 124, 126, 133, 129, 129, 143, 135, 115, 105, 141, 116, 125, 116, 120, 128, 141, 120, 108, 112, 145, 109, 141, 112, 98, 119, 135, 118, 113, 125, 126, 128, 111, 131, 135, 144, 147, 123, 124, 122, 115, 126, 127, 141, 105, 119, 143, 123, 141, 129, 129, 128, 121, 123, 112, 109, 121, 105, 114, 109, 132, 114, 153, 124, 121, 127, 127, 132, 134, 126, 106, 142, 123, 121, 114, 135, 118, 122, 128, 134, 112, 104, 129, 120, 128, 134, 116, 115, 133, 128, 110, 125, 120, 141, 124, 120, 123, 145, 123, 117, 136, 156, 134, 134, 119, 142, 131, 134, 122, 127, 133, 126, 124, 143, 128, 125, 111, 134, 119, 143, 118, 106, 119, 126, 145, 136, 140, 129, 124, 131, 126, 131, 127, 119, 140, 139, 111, 131, 125, 98, 136, 109, 121, 136, 141, 130, 114, 111, 135, 123, 138, 123, 121, 123, 124, 121, 139, 118, 117, 141, 106, 132, 125, 114, 119, 160, 141, 127, 128, 154, 139, 105, 133, 114, 113, 125, 134, 115, 135, 141, 110, 113, 111, 131, 108, 124, 109, 139, 117, 145, 121, 133, 116, 131, 133, 127, 124, 101, 138, 135, 143, 142, 123, 152, 107, 126, 110, 109, 134, 128, 136, 107, 116, 130, 111, 133, 111, 110, 136, 128, 139, 122, 118, 136, 120, 124, 116, 107, 130, 126, 130, 122, 133, 122, 131, 123, 132, 115, 129, 126, 141, 105, 104, 118, 130, 126, 137, 128, 122, 127, 135, 122, 131, 131, 138, 121, 121, 128, 136, 127, 128, 105, 126, 129, 127, 133, 135, 128, 115, 130, 145, 121, 107, 115, 116, 149, 136, 133, 89, 128, 127, 123, 128, 134, 132, 118, 120, 119, 122, 130, 137, 135, 122, 127, 127, 131, 122, 144, 138, 134, 135, 118, 122, 126, 106, 112, 122, 133, 118, 138, 133, 128, 126, 135, 125, 119, 123, 124, 108, 121, 102, 149, 134, 121, 126, 113, 120, 128, 135, 136, 115, 132, 112, 136, 133, 130, 142, 142, 121, 113, 121, 105, 114, 126, 127, 122, 99, 123, 131, 137, 129, 141, 121, 120, 133, 122, 116, 121, 125, 143, 137, 129, 123, 115, 118, 131, 127, 101, 139, 95, 138, 113, 125, 141, 117, 144, 124, 127, 146, 137, 131, 123, 139, 128, 124, 124, 125, 127, 128, 130, 106, 112, 125, 125, 122, 140, 112, 130, 116, 142, 116, 125, 128, 125, 118, 120, 131, 137, 133, 135, 127, 118, 129, 122, 124, 149, 137, 112, 137, 106, 133, 125, 135, 123, 114, 124, 137, 128, 133, 122, 127, 108, 132, 132, 114, 112, 132, 120, 127, 129, 122, 132, 128, 98, 128, 127, 121, 135, 123, 126, 128, 137, 120, 127, 143, 132, 121, 134, 131, 110, 103, 132, 116, 117, 145, 140, 126, 95, 113, 129, 129, 129, 125, 130, 131, 133, 130, 134, 123, 115, 119, 128, 108, 134, 129, 118, 121, 131, 133, 128, 113, 117, 139, 138, 132, 120, 122, 138, 130, 153, 141, 124, 128, 143, 141, 128, 134, 122, 119, 132, 117, 129, 137, 118, 129, 128, 122, 112, 133, 108, 141, 119, 124, 112, 119, 118, 113, 138, 125, 136, 141, 101, 128, 120, 132, 126, 109, 119, 134, 122, 113, 125, 138, 120, 122, 121, 130, 106, 139, 123, 122, 147, 119, 130, 150, 135, 112, 126, 155, 125, 115, 134, 132, 116, 126, 124, 118, 137, 140, 127, 126, 111, 130, 121, 134, 142, 125, 118, 123, 108, 137, 129, 118, 131, 127, 113, 120, 120, 127, 126, 117, 118, 128, 121, 123, 128, 121, 121, 126, 121, 131, 111, 127, 135, 128, 126, 130, 148, 131, 129, 118, 121, 120, 121, 124, 114, 124, 124, 129, 116, 132, 108, 132, 131, 125, 139, 130, 120, 118, 119, 130, 120, 129, 124, 126, 113, 137, 118, 131, 117, 119, 125, 127, 131, 123, 109, 114, 123, 141, 126, 142, 123, 137, 129, 121, 113, 129, 131, 124, 109, 124, 120, 127, 128, 124, 120, 128, 136, 117, 133, 137, 142, 117, 119, 109, 120, 120, 135, 115, 132, 129, 123, 120, 118, 119, 141, 109, 116, 128, 127, 125, 132, 148, 135, 137, 108, 136, 145, 120, 132, 122, 134, 137, 119, 131, 113, 132, 133, 117, 108, 117, 121, 125, 136, 114, 124, 115, 137, 119, 144, 112, 108, 112, 129, 114, 129, 132, 123, 131, 117, 133, 119, 143, 137, 126, 113, 124, 118, 142, 143, 118, 117, 128, 115, 120, 141, 106, 132, 129, 118, 137, 131, 132, 127, 132, 124, 119, 134, 133, 117, 108, 122, 112, 145, 126, 132, 114, 124, 130, 145, 136, 115, 117, 128, 117, 131, 144, 124, 122, 134, 115, 121, 121, 118, 122, 119, 121, 126, 149, 120, 119, 123, 121, 127, 114, 134, 126, 133, 96, 136, 127, 105, 142, 131, 147, 126, 124, 120, 122, 138, 112, 117, 141, 106, 137, 139, 121, 107, 116, 124, 147, 127, 118, 123, 140, 106, 124, 132, 126, 115, 114, 127, 137, 136, 141, 143, 119, 135, 118, 120, 131, 130, 111, 135, 118, 111, 141, 123, 119, 120, 125, 133, 119, 128, 147, 137, 127, 125, 127, 132, 132, 118, 130, 138, 135, 129, 118, 125, 142, 123, 116, 117, 117, 115, 126, 136, 137, 110, 143, 125, 115, 118, 133, 123, 126, 118, 114, 150, 125, 143, 134, 118, 137, 126, 129, 125, 123, 128, 121, 123, 120, 149, 112, 133, 118, 119, 148, 140, 132, 118, 130, 119, 114, 134, 115, 118, 119, 126, 124, 123, 126, 136, 125, 128, 116, 137, 143, 138, 103, 123, 132, 127, 109, 116, 125, 132, 123, 120, 111, 135, 140, 106, 122, 121, 128, 115, 121, 121, 120, 155, 134, 131, 125, 136, 124, 115, 135, 116, 126, 144, 126, 128, 130, 115, 126, 107, 129, 139, 118, 131, 124, 129, 131, 125, 130, 132, 97, 129, 114, 142, 107, 127, 140, 140, 133, 137, 113, 143, 133, 122, 143, 108, 117, 134, 140, 133, 115, 118, 143, 133, 120, 126, 126, 132, 114, 116, 131, 127, 127, 123, 118, 123, 119, 134, 127, 113, 146, 112, 129, 114, 126, 157, 131, 135, 124, 110, 124, 127, 136, 131, 136, 121, 146, 119, 138, 126, 134, 124, 117, 113, 121, 133, 113, 128, 129, 122, 110, 142, 132, 112, 112, 122, 137, 123, 128, 126, 126, 145, 133, 130, 109, 137, 107, 113, 128, 114, 102, 124, 123, 121, 133, 124, 122, 111, 122, 122, 102, 137, 128, 115, 140, 137, 117, 138, 138, 123, 137, 132, 121, 119, 124, 110, 139, 130, 109, 117, 112, 125, 115, 125, 146, 118, 119, 123, 114, 113, 144, 113, 117, 116, 131, 114, 122, 125, 111, 96, 117, 135, 118, 138, 127, 134, 122, 128, 124, 118, 122, 121, 138, 109, 129, 113, 132, 112, 121, 112, 135, 134, 124, 119, 127, 114, 105, 112, 110, 102, 134, 129, 110, 131, 103, 135, 137, 125, 123, 135, 117, 135, 131, 125, 145, 120, 138, 108, 126, 122, 129, 125, 133, 127, 120, 125, 131, 126, 125, 117, 121, 123, 131, 142, 111, 122, 135, 124, 107, 122, 139, 137, 118, 127, 145, 146, 137, 114, 125, 123, 129, 126, 127, 133, 137, 143, 151, 127, 110, 107, 131, 124, 113, 134, 136, 107, 123, 134, 103, 123, 121, 111, 133, 145, 130, 130, 137, 137, 123, 117, 126, 131, 121, 123, 114, 150, 123, 133, 129, 123, 113, 132, 132, 136, 141, 132, 128, 103, 115, 133, 134, 131, 116, 132, 133, 132, 110, 131, 124, 130, 138, 125, 129, 114, 124, 116, 128, 147, 131, 125, 117, 137, 133, 141, 126, 115, 129, 118, 128, 111, 103, 103, 125, 141, 125, 116, 120, 140, 112, 114, 126, 118, 107, 113, 112, 147, 129, 146, 136, 133, 129, 123, 114, 123, 133, 118, 130, 106, 126, 119, 116, 108, 161, 120, 128, 123, 127, 114, 121, 129, 142, 114, 129, 145, 141, 130, 128, 118, 110, 139, 131, 128, 122, 119, 124, 124, 122, 117, 121, 133, 128, 112, 124, 127, 110, 124, 119, 115, 117, 119, 105, 147, 109, 122, 123, 131, 135, 121, 122, 112, 134, 137, 144, 121, 130, 121, 125, 151, 122, 129, 114, 112, 134, 117, 122, 126, 143, 142, 111, 136, 116, 125, 128, 136, 132, 128, 116, 121, 142, 107, 132, 133, 119, 131, 101, 127, 111, 144, 118, 125, 134, 127, 126, 134, 143, 119, 112, 126, 117, 113, 124, 130, 133, 118, 126, 120, 122, 119, 132, 124, 118, 119, 131, 135, 138, 126, 127, 120, 117, 122, 127, 135, 118, 131, 106, 118, 125, 129, 124, 121, 132, 125, 105, 123, 124, 114, 131, 117, 121, 132, 114, 139, 116, 130, 124, 111, 119, 133, 135, 114, 128, 121, 132, 118, 135, 125, 126, 133, 127, 122, 110, 133, 118, 115, 116, 130, 146, 136, 135, 122, 101, 120, 131, 129, 126, 130, 134, 116, 122, 120, 145, 137, 147, 108, 119, 104, 115, 129, 114, 122, 111, 119, 122, 137, 139, 114, 137, 116, 125, 125, 129, 130, 119, 133, 129, 120, 143, 137, 127, 115, 138, 125, 111, 121, 128, 129, 137, 132, 131, 109, 140, 132, 125, 112, 102, 102, 124, 131, 109, 125, 120, 110, 123, 138, 114, 112, 116, 123, 122, 116, 120, 118, 134, 113, 117, 143, 137, 152, 130, 120, 130, 121, 105, 113, 127, 129, 115, 127, 124, 129, 129, 124, 124, 128, 135, 110, 138, 123, 123, 114, 131, 110, 112, 128, 122, 143, 136, 118, 123, 103, 123, 139, 118, 140, 127, 122, 143, 135, 130, 138, 124, 131, 127, 131, 119, 126, 131, 121, 128, 113, 135, 122, 124, 135, 119, 118, 115, 126, 139, 128, 135, 126, 122, 113, 117, 119, 120, 153, 137, 130, 110, 119, 121, 144, 122, 126, 99, 139, 136, 120, 130, 126, 122, 127, 114, 104, 126, 116, 140, 126, 107, 119, 136, 126, 127, 124, 126, 143, 123, 136, 122, 119, 122, 120, 117, 119, 110, 123, 123, 115, 122, 121, 116, 110, 137, 120, 144, 122, 132, 130, 130, 143, 125, 135, 118, 122, 130, 128, 125, 132, 116, 128, 137, 115, 130, 114, 125, 119, 141, 127, 121, 124, 117, 123, 132, 117, 132, 127, 131, 135, 127, 136, 131, 125, 137, 144, 121, 126, 125, 136, 121, 130, 135, 115, 151, 129, 134, 121, 121, 113, 153, 111, 121, 107, 121, 141, 139, 110, 149, 133, 143, 127, 125, 122, 120, 122, 122, 119, 124, 122, 126, 122, 116, 127, 113, 121, 108, 125, 130, 134, 138, 120, 114, 123, 127, 123, 139, 136, 144, 133, 128, 108, 128, 133, 121, 125, 130, 136, 141, 136, 126, 129, 132, 126, 136, 135, 109, 131, 140, 141, 130, 116, 138, 108, 123, 114, 143, 125, 150, 147, 122, 132, 122, 108, 115, 104, 139, 117, 146, 124, 125, 109, 112, 120, 110, 119, 122, 115, 143, 123, 113, 130, 119, 101, 118, 131, 114, 121, 123, 129, 131, 118, 118, 124, 121, 116, 134, 128, 132, 119, 116, 138, 129, 141, 115, 113, 136, 119, 127, 110, 129, 136, 125, 103, 123, 144, 117, 119, 128, 129, 115, 132, 132, 124, 115, 120, 118, 117, 112, 125, 105, 128, 125, 116, 133, 111, 145, 133, 139, 157, 117, 120, 111, 136, 123, 125, 125, 123, 133, 123, 142, 121, 117, 130, 130, 123, 127, 131, 138, 129, 111, 131, 133, 135, 115, 146, 128, 151, 112, 113, 118, 132, 117, 99, 131, 140, 131, 109, 116, 138, 117, 131, 130, 123, 111, 127, 117, 132, 120, 124, 120, 116, 127, 115, 119, 127, 122, 116, 119, 139, 130, 121, 129, 135, 126, 107, 140, 141, 99, 126, 126, 126, 122, 120, 116, 117, 148, 128, 140, 148, 137, 121, 151, 131, 113, 135, 123, 117, 124, 121, 137, 126, 116, 115, 139, 140, 114, 122, 117, 122, 152, 99, 148, 132, 127, 128, 130, 116, 136, 132, 129, 118, 136, 97, 122, 114, 142, 117, 145, 121, 129, 135, 120, 126, 130, 109, 114, 133, 128, 128, 129, 120, 148, 123, 138, 123, 116, 110, 129, 112, 130, 137, 115, 111, 132, 124, 133, 128, 104, 133, 109, 127, 126, 123, 127, 126, 130, 123, 129, 142, 123, 114, 119, 128, 118, 114, 124, 120, 105, 122, 140, 128, 132, 124, 130, 130, 128, 130, 135, 129, 118, 130, 125, 122, 104, 113, 117, 123, 144, 111, 134, 156, 129, 126, 115, 120, 129, 135, 134, 142, 120, 108, 123, 121, 134, 122, 120, 120, 124, 116, 102, 125, 123, 128, 118, 134, 125, 129, 131, 140, 118, 127, 111, 123, 127, 123, 124, 133, 128, 120, 130, 128, 126, 121, 131, 128, 122, 122, 134, 118, 123, 125, 131, 120, 108, 126, 131, 131, 133, 120, 142, 119, 103, 134, 131, 141, 113, 119, 138, 143, 123, 136, 116, 133, 147, 136, 130, 137, 118, 120, 127, 127, 127, 122, 134, 119, 114, 128, 110, 132, 120, 122, 134, 123, 135, 143, 125, 105, 129, 140, 133, 114, 148, 148, 119, 155, 131, 111, 122, 132, 126, 135, 128, 103, 120, 159, 120, 92, 118, 128, 122, 133, 124, 145, 118, 118, 145, 137, 138, 128, 109, 135, 139, 135, 142, 114, 123, 115, 139, 119, 125, 115, 117, 120, 139, 126, 133, 111, 131, 117, 127, 128, 130, 124, 123, 129, 135, 148, 106, 132, 114, 137, 131, 126, 114, 126, 134, 101, 116, 123, 131, 120, 116, 121, 126, 116, 115, 120, 113, 123, 140, 127, 135, 118, 132, 123, 115, 128, 125, 139, 123, 118, 117, 136, 137, 99, 109, 119, 132, 137, 125, 116, 129, 127, 129, 140, 131, 139, 135, 129, 125, 100, 137, 118, 128, 114, 135, 116, 125, 121, 128, 153, 121, 129, 106, 122, 138, 131, 120, 126, 126, 135, 143, 108, 137, 125, 139, 124, 130, 163, 124, 116, 123, 122, 127, 116, 123, 143, 119, 111, 137, 120, 145, 122, 103, 118, 137, 136, 139, 125, 119, 121, 134, 142, 122, 126, 127, 129, 116, 125, 128, 113, 149, 138, 112, 131, 122, 117, 115, 130, 136, 129, 126, 137, 116, 108, 120, 126, 129, 127, 115, 125, 126, 124, 112, 100, 121, 123, 123, 110, 131, 136, 128, 126, 132, 111, 128, 131, 136, 144, 141, 138, 128, 150, 120, 113, 153, 136, 115, 116, 131, 131, 113, 138, 121, 121, 121, 113, 100, 115, 94, 131, 127, 157, 119, 134, 110, 134, 121, 110, 143, 126, 117, 128, 116, 129, 111, 132, 140, 131, 119, 132, 142, 110, 122, 131, 114, 114, 121, 117, 130, 147, 126, 132, 133, 125, 111, 157, 142, 130, 131, 140, 128, 122, 139, 128, 135, 133, 124, 125, 122, 118, 124, 135, 128, 124, 132, 128, 105, 119, 118, 138, 127, 122, 136, 119, 136, 157, 129, 114, 122, 136, 109, 126, 115, 131, 161, 112, 141, 130, 117, 118, 120, 116, 103, 116, 116, 153, 131, 120, 105, 133, 119, 135, 146, 117, 124, 134, 131, 129, 123, 122, 135, 130, 109, 127, 121, 117, 116, 141, 114, 129, 138, 95, 107, 142, 128, 123, 132, 134, 125, 115, 108, 118, 135, 109, 118, 132, 105, 133, 134, 113, 126, 129, 115, 134, 111, 139, 128, 129, 144, 136, 121, 114, 153, 122, 105, 107, 105, 88, 131, 129, 130, 134, 130, 119, 121, 153, 145, 115, 127, 116, 148, 121, 149, 112, 125, 139, 130, 131, 111, 125, 113, 126, 112, 119, 106, 124, 138, 127, 116, 127, 132, 121, 129, 132, 118, 132, 108, 148, 125, 149, 118, 125, 123, 114, 115, 136, 140, 134, 123, 136, 132, 127, 121, 123, 119, 141, 125, 120, 125, 138, 119, 122, 109, 149, 120, 110, 128, 126, 127, 128, 125, 114, 118, 122, 113, 132, 124, 112, 117, 120, 126, 113, 119, 132, 135, 107, 120, 133, 121, 129, 110, 138, 126, 114, 135, 128, 123, 121, 110, 105, 128, 90, 135, 123, 140, 133, 114, 116, 136, 124, 128, 127, 119, 128, 107, 123, 122, 130, 128, 116, 130, 137, 96, 117, 114, 117, 125, 119, 129, 120, 111, 123, 126, 108, 127, 115, 130, 127, 124, 114, 130, 123, 140, 128, 119, 105, 127, 118, 140, 138, 133, 115, 122, 115, 119, 119, 112, 147, 125, 132, 141, 108, 121, 123, 129, 121, 129, 130, 129, 150, 130, 128, 117, 142, 126, 132, 120, 124, 121, 124, 115, 139, 130, 135, 119, 116, 117, 124, 117, 134, 120, 108, 130, 127, 111, 128, 126, 137, 124, 115, 140, 119, 130, 142, 138, 123, 116, 133, 137, 138, 112, 117, 105, 123, 131, 110, 133, 122, 136, 126, 131, 116, 133, 127, 123, 123, 134, 112, 130, 111, 109, 123, 120, 122, 125, 132, 159, 134, 144, 120, 113, 110, 87, 123, 129, 125, 117, 150, 142, 122, 128, 125, 127, 125, 134, 118, 139, 132, 129, 137, 132, 129, 129, 131, 109, 135, 126, 138, 128, 128, 113, 133, 150, 130, 127, 121, 165, 125, 116, 110, 133, 114, 113, 116, 125, 139, 120, 127, 143, 111, 118, 129, 123, 122, 108, 132, 119, 106, 128, 120, 115, 108, 125, 128, 110, 132, 140, 109, 116, 127, 127, 125, 137, 107, 118, 125, 122, 109, 118, 138, 123, 134, 131, 136, 136, 128, 130, 130, 137, 136, 115, 124, 110, 116, 129, 129, 126, 123, 143, 91, 119, 135, 125, 125, 141, 110, 122, 130, 112, 140, 144, 132, 141, 130, 125, 117, 135, 132, 142, 99, 131, 122, 124, 117, 129, 123, 124, 130, 125, 130, 129, 131, 135, 104, 121, 119, 130, 132, 108, 122, 135, 130, 110, 121, 117, 132, 126, 110, 138, 120, 121, 114, 121, 117, 113, 138, 141, 135, 115, 134, 144, 146, 134, 124, 132, 127, 120, 123, 132, 136, 117, 112, 152, 109, 124, 133, 124, 137, 117, 123, 108, 103, 120, 150, 133, 128, 133, 89, 127, 120, 130, 115, 119, 133, 125, 133, 130, 137, 123, 128, 103, 108, 120, 110, 125, 136, 104, 126, 120, 120, 120, 111, 137, 122, 123, 121, 119, 116, 108, 130, 122, 129, 124, 129, 132, 106, 115, 128, 122, 112, 120, 134, 138, 131, 106, 110, 124, 119, 139, 109, 122, 133, 132, 131, 118, 118, 109, 126, 129, 134, 131, 125, 148, 125, 120, 113, 140, 122, 119, 104, 142, 115, 110, 131, 120, 97, 132, 116, 127, 119, 104, 140, 127, 128, 135, 121, 129, 112, 124, 116, 111, 138, 126, 136, 131, 123, 142, 132, 124, 125, 98, 117, 131, 143, 119, 132, 135, 103, 118, 124, 114, 123, 132, 151, 126, 119, 131, 142, 123, 118, 107, 146, 123, 131, 119, 131, 119, 105, 122, 138, 146, 128, 137, 117, 147, 121, 129, 130, 130, 117, 131, 106, 137, 127, 131, 146, 121, 120, 138, 125, 127, 136, 136, 125, 109, 115, 138, 112, 126, 134, 128, 98, 143, 155, 143, 121, 113, 117, 138, 122, 149, 144, 122, 124, 136, 123, 135, 118, 136, 102, 136, 140, 136, 115, 130, 139, 136, 134, 131, 102, 115, 120, 119, 118, 128, 118, 128, 128, 129, 125, 116, 123, 126, 132, 120, 116, 120, 135, 105, 129, 121, 117, 120, 136, 134, 120, 129, 132, 115, 126, 120, 128, 127, 115, 140, 124, 116, 127, 100, 116, 125, 126, 136, 122, 122, 132, 112, 116, 134, 138, 110, 127, 118, 127, 130, 119, 135, 134, 124, 120, 120, 123, 133, 144, 119, 134, 119, 129, 133, 108, 124, 124, 129, 127, 126, 113, 129, 165, 111, 128, 109, 106, 133, 97, 124, 118, 147, 131, 117, 134, 132, 129, 119, 121, 128, 106, 138, 108, 139, 105, 124, 121, 125, 142, 129, 120, 134, 124, 124, 89, 129, 111, 140, 106, 134, 125, 134, 130, 119, 116, 115, 130, 135, 112, 110, 121, 136, 123, 141, 142, 136, 141, 110, 134, 113, 122, 117, 140, 127, 126, 118, 128, 141, 125, 133, 104, 124, 133, 114, 118, 124, 125, 134, 129, 134, 141, 144, 131, 119, 133, 134, 129, 133, 128, 115, 140, 126, 119, 121, 127, 127, 127, 131, 143, 119, 116, 134, 113, 139, 131, 120, 126, 124, 129, 127, 123, 126, 147, 129, 121, 153, 119, 138, 128, 139, 143, 131, 121, 146, 113, 125, 114, 130, 130, 107, 130, 128, 106, 125, 105, 114, 145, 136, 116, 125, 120, 111, 122, 150, 134, 120, 107, 118, 121, 96, 112, 119, 123, 147, 126, 139, 124, 134, 121, 120, 121, 112, 113, 128, 141, 112, 121, 129, 143, 125, 130, 122, 159, 140, 121, 114, 108, 136, 124, 128, 117, 119, 121, 125, 123, 118, 107, 133, 131, 132, 127, 136, 131, 136, 134, 132, 134, 119, 120, 114, 117, 122, 115, 108, 116, 128, 108, 134, 144, 128, 133, 115, 136, 109, 134, 149, 128, 130, 114, 117, 120, 112, 129, 146, 122, 120, 123, 119, 126, 142, 108, 151, 111, 117, 151, 133, 116, 138, 135, 129, 130, 119, 121, 125, 117, 119, 143, 135, 133, 130, 122, 124, 130, 130, 118, 150, 115, 118, 125, 136, 144, 119, 115, 123, 145, 133, 116, 137, 107, 107, 137, 119, 164, 129, 116, 120, 131, 119, 117, 144, 106, 124, 126, 119, 122, 137, 137, 125, 121, 128, 145, 106, 146, 102, 123, 140, 128, 125, 118, 123, 107, 115, 122, 116, 134, 135, 122, 112, 122, 126, 113, 112, 136, 129, 126, 135, 134, 143, 124, 105, 111, 105, 123, 143, 123, 117, 124, 129, 110, 143, 115, 105, 116, 111, 143, 124, 115, 127, 136, 125, 118, 119, 127, 145, 126, 130, 125, 117, 109, 128, 124, 119, 113, 131, 113, 130, 115, 129, 131, 114, 124, 124, 131, 110, 120, 125, 136, 118, 129, 117, 122, 140, 120, 136, 130, 117, 119, 122, 122, 125, 139, 121, 112, 120, 137, 123, 117, 121, 123, 133, 143, 134, 103, 115, 118, 111, 114, 130, 112, 142, 106, 117, 130, 140, 124, 101, 104, 138, 103, 137, 116, 131, 127, 135, 130, 120, 116, 131, 135, 108, 113, 127, 122, 122, 124, 128, 119, 115, 117, 164, 136, 124, 130, 120, 123, 123, 126, 108, 103, 133, 112, 113, 127, 134, 133, 125, 124, 138, 111, 120, 118, 124, 126, 119, 127, 113, 136, 128, 111, 141, 130, 113, 108, 121, 120, 131, 137, 119, 125, 124, 114, 134, 129, 147, 120, 136, 139, 116, 120, 119, 129, 109, 132, 121, 134, 135, 131, 114, 137, 123, 133, 124, 141, 105, 136, 122, 133, 121, 121, 137, 135, 113, 129, 110, 118, 129, 132, 125, 128, 131, 142, 116, 121, 122, 128, 124, 136, 130, 112, 121, 94, 135, 115, 156, 134, 132, 133, 136, 133, 142, 133, 118, 126, 137, 118, 115, 131, 125, 137, 120, 132, 125, 142, 133, 129, 118, 118, 135, 144, 122, 124, 120, 139, 115, 102, 117, 123, 117, 132, 128, 124, 125, 126, 131, 133, 133, 122, 140, 139, 128, 120, 114, 112, 118, 150, 132, 127, 118, 136, 128, 125, 130, 115, 121, 106, 121, 109, 136, 131, 136, 108, 137, 136, 126, 111, 126, 119, 126, 149, 135, 137, 134, 147, 118, 115, 114, 129, 128, 133, 123, 128, 102, 116, 133, 119, 130, 119, 110, 125, 131, 122, 130, 115, 132, 127, 111, 123, 114, 134, 127, 149, 151, 120, 108, 135, 139, 125, 127, 118, 122, 126, 133, 138, 118, 114, 122, 122, 119, 144, 127, 111, 132, 118, 113, 136, 128, 136, 129, 127, 113, 134, 150, 145, 125, 111, 109, 128, 124, 130, 133, 118, 127, 136, 113, 105, 118, 125, 120, 126, 129, 122, 126, 120, 124, 122, 147, 125, 118, 111, 123, 126, 123, 118, 127, 119, 136, 135, 131, 132, 102, 102, 111, 132, 115, 147, 123, 127, 128, 124, 127, 123, 117, 145, 126, 114, 108, 125, 119, 142, 132, 134, 143, 118, 133, 106, 140, 121, 118, 111, 132, 120, 128, 126, 113, 120, 125, 125, 122, 126, 107, 127, 114, 123, 123, 131, 147, 118, 139, 119, 134, 110, 112, 132, 106, 133, 121, 113, 132, 132, 122, 125, 131, 120, 146, 125, 128, 126, 132, 121, 127, 140, 116, 131, 135, 119, 121, 135, 124, 126, 108, 138, 109, 136, 132, 126, 113, 122, 125, 116, 117, 118, 132, 117, 129, 116, 137, 132, 108, 122, 116, 128, 123, 121, 140, 128, 98, 136, 113, 115, 131, 125, 130, 112, 117, 133, 125, 114, 116, 126, 131, 139, 106, 124, 138, 119, 114, 128, 110, 131, 119, 128, 114, 120, 131, 124, 144, 118, 114, 122, 118, 127, 127, 139, 137, 127, 134, 126, 115, 128, 121, 123, 133, 123, 131, 120, 113, 119, 128, 127, 139, 137, 138, 138, 116, 117, 126, 119, 110, 115, 134, 129, 123, 98, 120, 114, 129, 116, 131, 128, 122, 132, 113, 115, 130, 131, 141, 114, 147, 108, 122, 113, 128, 132, 115, 120, 111, 126, 124, 123, 130, 140, 140, 133, 121, 136, 110, 133, 124, 124, 144, 145, 119, 148, 124, 119, 117, 126, 116, 128, 147, 114, 120, 129, 112, 114, 139, 119, 129, 137, 139, 124, 107, 114, 110, 134, 130, 127, 133, 117, 113, 125, 117, 125, 143, 137, 131, 129, 119, 127, 111, 123, 122, 115, 122, 125, 120, 123, 125, 126, 132, 130, 129, 133, 121, 137, 126, 126, 117, 123, 111, 107, 139, 133, 120, 118, 121, 127, 119, 125, 117, 114, 124, 112, 126, 117, 126, 127, 136, 131, 134, 122, 126, 120, 124, 124, 126, 137, 129, 141, 129, 123, 113, 134, 121, 143, 121, 128, 133, 129, 135, 126, 108, 115, 100, 133, 120, 129, 120, 128, 127, 116, 114, 121, 126, 128, 117, 129, 133, 114, 131, 117, 118, 105, 130, 123, 118, 124, 111, 117, 120, 133, 118, 114, 125, 114, 126, 136, 111, 116, 116, 112, 141, 130, 124, 145, 116, 120, 113, 135, 135, 141, 124, 127, 130, 123, 119, 163, 131, 131, 140, 119, 125, 126, 122, 141, 126, 122, 119, 126, 131, 119, 121, 121, 129, 143, 120, 136, 136, 141, 131, 124, 140, 133, 130, 141, 108, 131, 121, 126, 128, 136, 127, 117, 123, 115, 116, 131, 112, 111, 140, 115, 121, 119, 134, 109, 112, 127, 124, 104, 143, 133, 125, 130, 114, 121, 132, 115, 141, 130, 130, 132, 105, 124, 130, 113, 128, 149, 128, 110, 129, 139, 128, 132, 119, 132, 124, 125, 128, 116, 147, 114, 107, 152, 122, 122, 102, 120, 142, 120, 112, 110, 123, 155, 141, 123, 136, 130, 121, 121, 138, 124, 126, 137, 124, 136, 112, 114, 131, 124, 120, 126, 121, 113, 132, 142, 132, 129, 122, 124, 133, 116, 133, 118, 126, 114, 136, 154, 107, 121, 120, 104, 127, 114, 142, 108, 95, 138, 126, 114, 119, 125, 125, 118, 129, 132, 129, 117, 128, 142, 135, 116, 132, 117, 142, 132, 119, 120, 126, 124, 116, 144, 140, 154, 125, 113, 115, 122, 126, 123, 117, 118, 132, 115, 132, 106, 129, 121, 125, 104, 117, 116, 126, 145, 126, 117, 159, 117, 128, 147, 137, 133, 124, 129, 121, 138, 118, 139, 138, 120, 131, 130, 116, 122, 132, 121, 99, 135, 112, 114, 127, 105, 114, 133, 124, 117, 113, 152, 138, 128, 116, 104, 141, 114, 116, 135, 125, 118, 120, 109, 122, 136, 124, 105, 139, 117, 111, 131, 127, 128, 128, 130, 116, 125, 120, 147, 122, 116, 111, 130, 118, 108, 128, 115, 125, 124, 132, 138, 134, 131, 101, 129, 110, 123, 125, 130, 140, 133, 126, 118, 115, 121, 98, 130, 126, 114, 122, 127, 115, 117, 130, 130, 140, 124, 127, 130, 122, 118, 119, 151, 127, 132, 139, 132, 135, 135, 120, 147, 125, 101, 121, 129, 124, 144, 115, 133, 136, 129, 105, 133, 139, 118, 110, 116, 130, 118, 126, 126, 116, 141, 134, 132, 115, 129, 138, 125, 127, 136, 115, 120, 126, 124, 124, 115, 112, 128, 129, 139, 131, 130, 138, 138, 123, 124, 116, 133, 121, 99, 125, 139, 116, 111, 130, 126, 134, 116, 122, 117, 115, 129, 125, 120, 123, 134, 145, 129, 132, 116, 129, 137, 122, 132, 132, 135, 115, 126, 128, 135, 122, 125, 145, 121, 116, 125, 128, 125, 138, 121, 130, 150, 119, 145, 121, 128, 122, 109, 141, 142, 141, 131, 129, 126, 110, 140, 122, 121, 130, 154, 126, 136, 143, 125, 129, 134, 129, 112, 134, 144, 137, 117, 139, 127, 117, 123, 133, 127, 131, 127, 133, 114, 128, 129, 120, 124, 130, 143, 109, 123, 113, 126, 137, 125, 120, 126, 126, 121, 118, 111, 116, 127, 123, 119, 140, 123, 120, 113, 124, 147, 137, 122, 130, 123, 122, 124, 118, 123, 114, 121, 122, 136, 123, 125, 120, 111, 119, 143, 121, 120, 129, 137, 136, 137, 129, 133, 119, 120, 113, 130, 134, 125, 110, 129, 134, 124, 113, 130, 128, 126, 133, 127, 127, 111, 113, 112, 133, 113, 109, 122, 130, 118, 121, 126, 127, 102, 128, 130, 128, 122, 113, 130, 141, 126, 130, 129, 128, 142, 127, 134, 116, 135, 143, 135, 137, 112, 126, 116, 113, 126, 130, 132, 135, 117, 136, 154, 135, 123, 115, 128, 130, 105, 118, 110, 123, 129, 139, 127, 123, 123, 116, 122, 142, 123, 115, 135, 123, 126, 118, 114, 129, 125, 120, 130, 111, 146, 108, 120, 120, 124, 127, 130, 124, 136, 143, 133, 118, 108, 125, 123, 131, 136, 139, 125, 136, 127, 118, 121, 131, 149, 130, 123, 111, 121, 111, 129, 129, 114, 132, 108, 117, 113, 130, 128, 139, 137, 124, 123, 129, 117, 129, 125, 117, 119, 128, 122, 127, 131, 119, 119, 135, 131, 121, 116, 142, 151, 116, 121, 117, 132, 109, 125, 145, 138, 108, 110, 119, 121, 117, 142, 125, 129, 126, 119, 136, 136, 128, 125, 101, 137, 118, 115, 116, 125, 137, 112, 130, 128, 130, 115, 124, 122, 120, 118, 122, 140, 134, 141, 128, 118, 126, 125, 120, 132, 131, 121, 127, 116, 134, 132, 128, 120, 112, 138, 123, 117, 115, 130, 125, 118, 112, 126, 137, 138, 138, 122, 102, 122, 114, 134, 110, 135, 129, 131, 123, 138, 130, 125, 124, 136, 118, 121, 134, 128, 122, 135, 125, 132, 135, 130, 127, 146, 127, 98, 125, 116, 128, 122, 122, 108, 118, 132, 109, 144, 124, 122, 117, 124, 119, 127, 131, 118, 110, 145, 126, 120, 125, 134, 116, 123, 124, 120, 127, 119, 130, 114, 129, 113, 124, 126, 128, 114, 117, 113, 112, 136, 118, 142, 123, 138, 141, 113, 117, 128, 140, 138, 146, 109, 122, 126, 160, 138, 126, 117, 129, 121, 126, 124, 130, 117, 133, 120, 115, 106, 112, 120, 133, 131, 115, 121, 141, 121, 114, 124, 129, 122, 132, 131, 133, 131, 124, 145, 138, 112, 125, 121, 125, 136, 120, 115, 135, 121, 126, 132, 107, 118, 131, 136, 112, 130, 127, 137, 140, 131, 131, 125, 137, 116, 137, 122, 122, 123, 107, 130, 120, 122, 140, 130, 123, 152, 113, 128, 105, 122, 126, 141, 129, 126, 134, 114, 105, 122, 123, 123, 117, 117, 124, 131, 139, 120, 125, 121, 116, 115, 123, 132, 127, 130, 130, 121, 138, 127, 124, 116, 130, 121, 119, 130, 107, 125, 118, 119, 139, 132, 110, 119, 124, 120, 123, 131, 130, 123, 106, 131, 128, 130, 110, 129, 138, 125, 124, 116, 135, 140, 129, 123, 108, 124, 126, 129, 130, 122, 136, 102, 101, 106, 124, 134, 134, 133, 131, 122, 136, 115, 109, 97, 123, 106, 132, 118, 135, 106, 124, 136, 123, 101, 133, 128, 148, 130, 126, 134, 125, 122, 120, 131, 118, 125, 139, 129, 119, 115, 127, 132, 117, 140, 128, 115, 112, 123, 123, 115, 132, 129, 115, 118, 111, 119, 141, 116, 129, 125, 124, 124, 116, 116, 128, 129, 124, 124, 91, 115, 119, 129, 146, 125, 134, 111, 130, 118, 130, 116, 119, 112, 160, 117, 137, 118, 138, 120, 129, 119, 123, 112, 125, 129, 131, 128, 132, 136, 134, 110, 132, 117, 130, 139, 125, 124, 117, 112, 124, 143, 118, 141, 124, 125, 147, 128, 131, 111, 117, 125, 148, 134, 132, 128, 142, 128, 137, 116, 138, 127, 153, 100, 128, 118, 129, 115, 123, 129, 128, 128, 127, 110, 140, 119, 119, 115, 119, 120, 140, 136, 115, 112, 140, 128, 145, 128, 126, 132, 130, 129, 120, 131, 134, 127, 126, 126, 145, 136, 132, 121, 130, 130, 124, 110, 128, 126, 123, 116, 125, 132, 124, 115, 112, 118, 126, 131, 114, 144, 134, 108, 122, 118, 124, 132, 135, 129, 127, 114, 133, 110, 130, 136, 130, 118, 126, 125, 141, 116, 117, 125, 125, 123, 131, 119, 129, 145, 147, 114, 120, 127, 145, 115, 134, 122, 131, 133, 101, 118, 127, 133, 116, 126, 132, 134, 121, 113, 137, 112, 129, 134, 106, 123, 99, 131, 122, 117, 115, 110, 129, 119, 117, 123, 108, 128, 145, 138, 131, 122, 135, 106, 116, 106, 140, 122, 117, 128, 125, 145, 132, 132, 114, 127, 124, 123, 120, 117, 124, 128, 108, 123, 130, 121, 118, 132, 133, 114, 118, 129, 131, 131, 151, 124, 130, 145, 122, 132, 117, 117, 131, 127, 136, 141, 119, 126, 113, 121, 113, 124, 117, 131, 120, 132, 125, 114, 114, 126, 120, 136, 117, 108, 128, 130, 131, 133, 146, 124, 142, 122, 132, 120, 112, 118, 130, 111, 138, 138, 135, 124, 123, 142, 111, 119, 114, 119, 121, 114, 118, 121, 116, 121, 120, 130, 138, 120, 124, 136, 117, 129, 133, 112, 130, 133, 126, 143, 125, 109, 135, 121, 130, 130, 113, 134, 135, 125, 110, 126, 111, 130, 132, 135, 126, 134, 135, 116, 149, 131, 94, 119, 129, 145, 120, 127, 132, 111, 124, 126, 114, 123, 126, 107, 110, 140, 109, 126, 119, 142, 116, 109, 124, 143, 137, 128, 137, 111, 119, 125, 112, 111, 127, 121, 127, 117, 130, 118, 125, 121, 128, 140, 122, 123, 113, 148, 122, 128, 124, 131, 117, 123, 123, 111, 119, 147, 132, 115, 120, 110, 153, 128, 133, 124, 147, 119, 133, 127, 124, 122, 118, 119, 133, 127, 132, 128, 119, 139, 145, 98, 130, 100, 149, 111, 121, 131, 113, 129, 127, 128, 131, 121, 113, 126, 119, 135, 100, 135, 130, 143, 116, 129, 136, 113, 139, 130, 128, 120, 124, 122, 110, 91, 146, 123, 121, 122, 142, 118, 125, 132, 140, 113, 134, 136, 110, 138, 123, 95, 136, 116, 128, 125, 113, 122, 127, 143, 144, 124, 115, 112, 119, 116, 127, 109, 132, 122, 133, 127, 115, 139, 134, 109, 139, 133, 128, 117, 111, 111, 117, 114, 136, 127, 143, 142, 127, 141, 125, 130, 132, 125, 124, 125, 112, 124, 129, 138, 126, 148, 106, 131, 128, 129, 130, 99, 126, 122, 128, 120, 137, 136, 141, 120, 108, 113, 129, 113, 126, 126, 140, 106, 131, 118, 143, 140, 136, 124, 123, 120, 108, 133, 119, 106, 131, 117, 121, 130, 114, 134, 122, 110, 129, 116, 117, 124, 146, 135, 138, 117, 117, 132, 143, 125, 124, 115, 130, 114, 108, 113, 113, 137, 117, 126, 123, 124, 137, 126, 138, 138, 115, 106, 149, 131, 114, 122, 109, 128, 122, 134, 127, 128, 116, 141, 121, 129, 134, 121, 129, 146, 131, 127, 125, 133, 123, 148, 133, 137, 119, 156, 142, 135, 113, 117, 128, 140, 131, 130, 140, 124, 126, 116, 144, 139, 137, 143, 127, 113, 132, 119, 119, 141, 111, 109, 125, 121, 134, 127, 130, 128, 124, 136, 116, 145, 137, 136, 137, 141, 124, 134, 126, 116, 135, 125, 121, 102, 125, 128, 111, 110, 125, 121, 130, 133, 150, 113, 124, 147, 140, 133, 131, 107, 136, 120, 128, 137, 119, 123, 110, 123, 125, 119, 131, 127, 143, 137, 124, 130, 140, 129, 133, 118, 136, 115, 114, 130, 113, 133, 149, 141, 124, 104, 102, 116, 135, 123, 131, 117, 124, 108, 106, 120, 119, 122, 136, 125, 128, 109, 133, 119, 121, 119, 152, 118, 112, 135, 120, 133, 133, 147, 114, 120, 127, 119, 114, 114, 116, 125, 127, 117, 125, 138, 144, 117, 110, 124, 127, 135, 131, 111, 127, 132, 119, 139, 125, 127, 135, 124, 120, 122, 126, 124, 127, 120, 126, 130, 124, 120, 122, 135, 143, 119, 134, 137, 106, 137, 129, 123, 120, 110, 125, 119, 114, 138, 120, 113, 133, 128, 138, 120, 127, 133, 134, 127, 137, 119, 129, 139, 135, 135, 132, 136, 122, 118, 137, 126, 136, 134, 134, 139, 119, 122, 109, 136, 122, 121, 138, 130, 144, 113, 138, 116, 112, 130, 132, 118, 130, 105, 132, 137, 115, 144, 119, 135, 122, 125, 118, 130, 100, 116, 131, 121, 121, 128, 126, 123, 108, 133, 123, 127, 136, 126, 139, 137, 127, 119, 127, 119, 132, 129, 126, 124, 140, 106, 138, 129, 112, 122, 121, 122, 122, 119, 130, 106, 122, 128, 123, 111, 122, 142, 108, 117, 135, 114, 107, 138, 121, 123, 119, 119, 123, 135, 133, 126, 133, 133, 131, 143, 128, 123, 103, 156, 126, 125, 128, 118, 128, 136, 117, 129, 137, 117, 118, 111, 119, 124, 146, 134, 121, 122, 147, 125, 130, 124, 122, 128, 130, 126, 134, 128, 130, 112, 117, 150, 142, 126, 116, 124, 122, 116, 124, 128, 138, 128, 126, 121, 135, 117, 127, 115, 157, 122, 140, 147, 135, 129, 115, 168, 139, 124, 140, 133, 125, 124, 104, 114, 129, 129, 133, 131, 123, 131, 131, 116, 120, 121, 137, 150, 124, 126, 115, 142, 120, 129, 111, 123, 138, 124, 118, 104, 111, 134, 114, 116, 112, 123, 129, 123, 125, 132, 122, 119, 137, 111, 118, 120, 117, 123, 101, 131, 116, 142, 124, 143, 124, 127, 136, 132, 127, 115, 111, 111, 132, 115, 131, 136, 142, 146, 128, 126, 110, 110, 130, 134, 134, 124, 117, 130, 128, 123, 121, 126, 141, 121, 134, 141, 143, 116, 132, 115, 123, 143, 141, 129, 108, 122, 138, 122, 127, 112, 128, 120, 140, 142, 109, 114, 139, 154, 138, 136, 125, 152, 122, 143, 136, 116, 124, 121, 127, 129, 125, 121, 126, 126, 137, 108, 113, 123, 135, 105, 132, 127, 144, 118, 100, 119, 147, 125, 128, 106, 128, 138, 112, 136, 135, 129, 128, 124, 126, 138, 122, 147, 140, 145, 143, 127, 117, 107, 122, 125, 130, 133, 137, 129, 114, 123, 108, 112, 127, 116, 138, 124, 142, 117, 129, 130, 130, 130, 130, 121, 146, 127, 119, 120, 122, 129, 126, 121, 115, 136, 131, 119, 118, 116, 117, 122, 124, 132, 132, 119, 137, 124, 135, 131, 109, 122, 122, 130, 123, 119, 116, 113, 122, 96, 117, 130, 126, 124, 129, 128, 120, 134, 96, 122, 131, 115, 131, 133, 141, 128, 129, 122, 122, 128, 135, 132, 118, 123, 109, 125, 120, 114, 135, 126, 126, 119, 121, 114, 123, 155, 119, 115, 122, 105, 106, 126, 102, 128, 125, 118, 133, 113, 114, 133, 130, 124, 122, 140, 135, 132, 133, 125, 136, 124, 124, 128, 128, 122, 125, 128, 124, 116, 113, 118, 108, 125, 137, 136, 130, 111, 137, 109, 122, 120, 127, 141, 124, 110, 120, 123, 106, 129, 104, 133, 134, 110, 121, 120, 125, 129, 132, 134, 127, 128, 114, 122, 132, 142, 130, 115, 107, 133, 130, 126, 129, 129, 119, 125, 118, 138, 130, 132, 127, 130, 125, 116, 119, 115, 125, 131, 126, 146, 138, 118, 140, 140, 130, 125, 113, 116, 124, 125, 100, 142, 99, 130, 132, 125, 119, 123, 116, 124, 115, 130, 135, 119, 131, 112, 152, 121, 113, 115, 131, 129, 126, 129, 131, 115, 147, 135, 126, 145, 138, 123, 126, 121, 129, 127, 142, 127, 132, 146, 131, 131, 127, 134, 138, 126, 141, 114, 130, 125, 130, 111, 122, 109, 119, 115, 121, 149, 134, 119, 119, 132, 125, 137, 141, 129, 129, 138, 124, 125, 131, 124, 128, 140, 129, 111, 122, 129, 121, 132, 130, 127, 112, 142, 128, 113, 142, 106, 126, 125, 139, 117, 139, 112, 137, 136, 121, 121, 118, 125, 135, 155, 122, 127, 116, 129, 130, 129, 119, 121, 128, 122, 119, 123, 134, 114, 113, 124, 133, 148, 118, 127, 120, 135, 122, 135, 115, 120, 116, 118, 128, 121, 115, 124, 114, 136, 122, 140, 126, 133, 107, 112, 109, 131, 128, 119, 140, 120, 131, 119, 124, 116, 115, 117, 123, 115, 140, 122, 144, 134, 136, 133, 116, 134, 137, 113, 115, 132, 143, 127, 121, 118, 116, 132, 126, 129, 141, 124, 138, 126, 127, 115, 135, 119, 142, 126, 124, 118, 127, 101, 117, 132, 130, 119, 130, 132, 104, 129, 139, 125, 111, 133, 123, 124, 146, 152, 127, 150, 121, 131, 113, 124, 128, 144, 133, 110, 122, 115, 129, 104, 135, 128, 117, 133, 126, 102, 117, 127, 115, 112, 119, 134, 130, 138, 134, 117, 123, 126, 130, 126, 129, 123, 148, 116, 97, 118, 112, 128, 113, 107, 135, 134, 126, 137, 127, 122, 122, 111, 120, 104, 131, 104, 136, 131, 121, 125, 126, 130, 141, 106, 110, 110, 128, 128, 132, 125, 144, 134, 107, 111, 127, 103, 122, 121, 128, 128, 131, 124, 134, 133, 146, 142, 132, 122, 126, 110, 121, 132, 129, 123, 126, 154, 120, 121, 141, 129, 104, 136, 142, 112, 103, 116, 128, 118, 134, 132, 129, 124, 121, 119, 127, 131, 100, 130, 127, 127, 150, 119, 118, 121, 113, 125, 129, 124, 111, 124, 127, 142, 115, 126, 127, 106, 115, 122, 133, 120, 128, 124, 127, 120, 138, 134, 118, 150, 129, 135, 115, 128, 125, 123, 132, 139, 128, 118, 131, 135, 119, 134, 129, 126, 123, 127, 126, 128, 139, 106, 118, 117, 126, 131, 138, 120, 128, 143, 116, 124, 116, 137, 124, 123, 136, 125, 105, 116, 118, 138, 127, 120, 127, 107, 119, 133, 108, 126, 116, 128, 124, 122, 121, 138, 118, 130, 123, 104, 151, 138, 123, 123, 124, 134, 108, 132, 110, 118, 142, 144, 134, 120, 115, 117, 116, 121, 125, 125, 134, 129, 112, 110, 132, 132, 119, 136, 131, 129, 128, 121, 121, 136, 130, 120, 124, 130, 112, 114, 144, 133, 120, 114, 128, 129, 134, 122, 126, 130, 107, 119, 129, 124, 137, 114, 126, 142, 123, 127, 120, 123, 133, 125, 122, 121, 112, 147, 101, 129, 116, 125, 137, 129, 124, 129, 124, 124, 137, 125, 133, 140, 126, 113, 121, 137, 152, 113, 120, 107, 122, 132, 121, 127, 140, 121, 118, 136, 115, 125, 136, 118, 132, 135, 123, 116, 127, 122, 119, 121, 130, 133, 125, 112, 121, 105, 120, 125, 112, 113, 144, 119, 126, 116, 109, 123, 134, 121, 115, 125, 121, 117, 118, 128, 131, 123, 128, 131, 134, 149, 111, 111, 120, 115, 129, 108, 118, 132, 111, 136, 136, 116, 116, 129, 127, 109, 120, 129, 112, 138, 126, 146, 127, 115, 95, 113, 132, 122, 129, 124, 138, 122, 132, 116, 116, 128, 130, 135, 140, 119, 130, 129, 132, 112, 132, 122, 122, 127, 123, 128, 108, 124, 113, 119, 117, 127, 121, 129, 138, 130, 116, 135, 106, 130, 124, 123, 118, 115, 121, 110, 136, 123, 140, 106, 113, 105, 132, 109, 139, 122, 109, 120, 127, 127, 120, 149, 135, 120, 136, 131, 118, 138, 117, 136, 130, 136, 123, 144, 121, 132, 135, 114, 153, 123, 130, 116, 141, 112, 145, 130, 129, 119, 126, 129, 122, 123, 104, 130, 114, 140, 141, 141, 128, 126, 128, 120, 144, 129, 121, 140, 126, 132, 132, 122, 108, 108, 128, 133, 116, 136, 139, 148, 121, 125, 122, 122, 129, 137, 120, 128, 109, 124, 95, 137, 140, 132, 117, 122, 121, 132, 127, 136, 132, 118, 119, 121, 119, 112, 127, 116, 121, 136, 140, 126, 128, 131, 118, 112, 127, 130, 137, 121, 156, 133, 110, 116, 130, 126, 124, 113, 128, 145, 146, 122, 116, 131, 132, 130, 121, 129, 127, 136, 134, 127, 135, 141, 124, 133, 130, 134, 116, 108, 139, 124, 117, 124, 138, 126, 126, 117, 128, 108, 129, 139, 129, 130, 127, 133, 123, 130, 142, 137, 136, 105, 131, 134, 131, 144, 157, 126, 142, 127, 143, 120, 110, 124, 128, 118, 133, 141, 127, 118, 98, 114, 121, 119, 138, 120, 124, 129, 115, 120, 129, 127, 122, 137, 115, 107, 113, 130, 117, 113, 115, 123, 138, 113, 138, 106, 134, 129, 115, 128, 117, 121, 125, 128, 133, 147, 115, 132, 116, 125, 132, 115, 130, 111, 129, 120, 113, 132, 120, 112, 136, 115, 122, 122, 127, 114, 128, 123, 115, 120, 109, 115, 134, 128, 118, 144, 138, 100, 121, 124, 122, 130, 123, 128, 108, 118, 118, 128, 127, 117, 127, 112, 161, 133, 119, 121, 118, 122, 114, 119, 119, 126, 113, 121, 120, 129, 113, 106, 131, 128, 128, 119, 120, 134, 117, 114, 134, 124, 146, 123, 110, 111, 109, 143, 121, 135, 117, 146, 145, 122, 116, 134, 109, 130, 115, 145, 116, 124, 133, 123, 131, 127, 125, 126, 128, 120, 149, 115, 130, 141, 118, 129, 127, 115, 131, 143, 123, 129, 128, 127, 108, 130, 137, 112, 124, 105, 130, 154, 125, 130, 99, 122, 129, 127, 115, 122, 122, 141, 113, 137, 137, 118, 120, 110, 131, 124, 139, 133, 124, 111, 130, 119, 122, 137, 124, 134, 129, 139, 124, 114, 123, 124, 138, 126, 115, 136, 124, 135, 135, 150, 128, 108, 152, 136, 109, 140, 120, 135, 116, 115, 109, 136, 135, 120, 124, 113, 140, 127, 129, 129, 125, 133, 120, 137, 121, 143, 107, 112, 143, 131, 132, 120, 129, 111, 127, 128, 135, 132, 132, 126, 110, 127, 136, 117, 122, 132, 128, 122, 130, 112, 122, 124, 124, 151, 103, 122, 127, 119, 131, 111, 120, 114, 130, 131, 115, 122, 125, 121, 132, 117, 117, 125, 116, 120, 129, 150, 118, 127, 124, 127, 130, 133, 133, 116, 129, 132, 134, 126, 127, 132, 135, 134, 130, 140, 124, 118, 136, 142, 129, 136, 133, 128, 130, 112, 121, 128, 102, 114, 127, 134, 124, 110, 137, 115, 129, 149, 151, 131, 115, 135, 126, 126, 119, 125, 139, 120, 118, 125, 117, 120, 134, 111, 120, 134, 112, 122, 131, 124, 130, 114, 132, 130, 106, 133, 109, 137, 115, 126, 118, 120, 108, 136, 136, 128, 119, 124, 132, 128, 110, 134, 110, 94, 127, 113, 139, 113, 111, 144, 121, 123, 122, 139, 123, 135, 120, 114, 122, 121, 120, 135, 129, 114, 125, 118, 104, 135, 123, 122, 129, 126, 125, 126, 132, 114, 143, 128, 129, 119, 128, 125, 133, 108, 132, 128, 114, 129, 127, 116, 125, 116, 131, 111, 122, 137, 129, 144, 122, 122, 138, 95, 125, 139, 124, 112, 121, 119, 115, 122, 119, 142, 109, 139, 124, 132, 131, 119, 108, 126, 142, 105, 109, 128, 105, 119, 123, 151, 117, 131, 122, 105, 130, 155, 123, 152, 117, 142, 126, 125, 132, 136, 127, 121, 103, 141, 123, 129, 121, 111, 117, 121, 142, 133, 139, 131, 129, 107, 135, 118, 132, 134, 116, 124, 124, 151, 134, 126, 122, 108, 128, 119, 118, 117, 126, 124, 127, 114, 131, 151, 159, 113, 103, 128, 108, 136, 158, 119, 148, 135, 131, 122, 121, 126, 119, 110, 128, 119, 124, 118, 114, 111, 126, 116, 126, 136, 125, 134, 130, 124, 98, 128, 133, 115, 128, 121, 121, 108, 124, 128, 133, 126, 136, 123, 125, 137, 144, 127, 145, 121, 130, 129, 116, 131, 124, 123, 112, 135, 145, 131, 113, 115, 134, 132, 117, 135, 133, 131, 122, 141, 132, 133, 115, 107, 128, 124, 151, 108, 128, 133, 130, 120, 121, 106, 130, 121, 142, 123, 118, 123, 147, 109, 99, 135, 121, 115, 113, 130, 135, 122, 137, 119, 136, 123, 124, 133, 124, 109, 117, 126, 131, 118, 98, 124, 116, 141, 124, 133, 126, 131, 142, 138, 139, 119, 129, 124, 108, 137, 112, 122, 132, 94, 138, 108, 143, 133, 136, 131, 115, 135, 109, 124, 129, 139, 107, 120, 108, 116, 137, 124, 129, 138, 136, 131, 117, 120, 113, 130, 119, 112, 127, 114, 135, 137, 119, 139, 130, 125, 104, 134, 122, 123, 129, 126, 129, 121, 132, 128, 127, 133, 138, 127, 115, 126, 124, 112, 126, 125, 128, 110, 134, 117, 118, 132, 133, 126, 124, 142, 129, 132, 128, 146, 141, 115, 106, 151, 124, 117, 128, 106, 135, 116, 136, 121, 130, 114, 107, 124, 125, 130, 127, 118, 131, 149, 127, 117, 128, 122, 128, 131, 122, 149, 112, 143, 132, 117, 119, 118, 123, 120, 127, 134, 115, 126, 127, 99, 136, 137, 129, 131, 143, 158, 133, 125, 125, 130, 120, 116, 140, 114, 110, 124, 137, 132, 138, 116, 132, 114, 128, 124, 107, 131, 118, 109, 137, 117, 120, 140, 118, 122, 152, 123, 128, 133, 137, 124, 115, 122, 140, 133, 147, 125, 113, 134, 106, 135, 102, 114, 122, 129, 132, 114, 133, 148, 123, 114, 118, 133, 115, 126, 114, 119, 125, 129, 130, 117, 149, 125, 121, 135, 125, 106, 103, 127, 119, 120, 109, 126, 129, 141, 120, 123, 103, 116, 116, 139, 109, 117, 122, 127, 131, 131, 115, 114, 133, 133, 138, 125, 112, 132, 132, 133, 135, 128, 128, 128, 103, 110, 132, 138, 133, 132, 99, 147, 110, 115, 127, 130, 129, 124, 111, 136, 141, 125, 123, 119, 142, 147, 126, 159, 107, 125, 123, 137, 125, 130, 134, 104, 122, 110, 107, 137, 122, 133, 145, 126, 147, 118, 131, 111, 125, 140, 140, 114, 127, 116, 107, 120, 137, 120, 130, 125, 108, 123, 112, 119, 137, 120, 129, 106, 113, 116, 134, 121, 109, 125, 135, 131, 113, 131, 106, 122, 117, 124, 121, 140, 139, 132, 127, 132, 93, 114, 130, 133, 126, 124, 130, 135, 129, 120, 131, 124, 136, 128, 127, 120, 127, 112, 111, 129, 133, 134, 127, 130, 121, 140, 135, 133, 110, 121, 107, 119, 160, 128, 130, 117, 133, 129, 143, 124, 126, 130, 117, 123, 117, 137, 115, 122, 121, 116, 125, 141, 129, 132, 122, 132, 148, 132, 129, 122, 120, 140, 129, 125, 123, 123, 114, 130, 113, 136, 130, 125, 137, 124, 104, 115, 117, 130, 130, 137, 117, 122, 126, 126, 130, 116, 153, 124, 133, 117, 137, 137, 160, 114, 134, 129, 136, 95, 121, 138, 109, 126, 112, 135, 145, 122, 136, 128, 133, 146, 112, 127, 112, 113, 127, 124, 124, 111, 137, 129, 132, 128, 115, 129, 115, 128, 140, 141, 131, 139, 132, 132, 124, 128, 129, 121, 142, 120, 105, 117, 119, 149, 111, 126, 98, 125, 135, 127, 109, 118, 113, 144, 124, 110, 130, 127, 134, 109, 112, 128, 112, 116, 146, 123, 126, 133, 130, 143, 130, 128, 119, 125, 127, 124, 146, 129, 135, 139, 118, 144, 115, 133, 126, 139, 105, 123, 146, 112, 124, 138, 110, 117, 131, 121, 114, 117, 126, 111, 104, 124, 122, 122, 128, 130, 134, 122, 126, 133, 117, 122, 129, 138, 136, 111, 115, 129, 128, 114, 121, 120, 132, 126, 127, 129, 127, 108, 130, 119, 116, 124, 97, 128, 149, 117, 119, 130, 117, 114, 123, 115, 126, 140, 125, 121, 134, 119, 133, 136, 122, 121, 126, 117, 148, 122, 130, 145, 128, 136, 128, 134, 126, 130, 141, 132, 126, 114, 122, 138, 118, 137, 115, 113, 127, 108, 114, 127, 129, 122, 113, 113, 136, 118, 143, 107, 104, 115, 118, 124, 117, 134, 129, 105, 129, 125, 131, 124, 134, 140, 128, 125, 143, 109, 108, 137, 114, 105, 154, 121, 129, 138, 120, 114, 130, 124, 133, 144, 107, 120, 107, 122, 117, 115, 122, 124, 124, 119, 142, 112, 127, 132, 123, 131, 132, 141, 102, 139, 128, 124, 134, 120, 115, 116, 125, 121, 141, 137, 122, 129, 96, 129, 128, 122, 129, 112, 149, 113, 130, 140, 127, 148, 124, 134, 107, 124, 118, 119, 128, 137, 120, 124, 127, 129, 127, 136, 134, 114, 126, 132, 127, 129, 126, 127, 124, 109, 139, 112, 132, 136, 124, 122, 124, 103, 121, 122, 122, 127, 115, 141, 113, 135, 130, 144, 118, 123, 122, 130, 130, 109, 123, 118, 117, 133, 127, 131, 116, 128, 133, 113, 128, 97, 122, 136, 125, 137, 122, 108, 112, 129, 128, 129, 131, 145, 132, 128, 125, 131, 124, 119, 112, 144, 125, 118, 147, 126, 123, 120, 107, 117, 129, 111, 132, 122, 143, 119, 126, 126, 140, 105, 136, 122, 112, 121, 119, 135, 130, 129, 125, 115, 116, 127, 117, 127, 114, 149, 121, 123, 129, 130, 140, 126, 123, 125, 131, 118, 108, 127, 129, 121, 141, 121, 134, 121, 126, 129, 117, 108, 141, 118, 110, 126, 116, 112, 115, 135, 146, 129, 114, 126, 142, 121, 140, 124, 123, 119, 121, 127, 125, 124, 121, 121, 131, 132, 121, 133, 121, 138, 131, 116, 139, 127, 117, 123, 133, 131, 113, 135, 112, 124, 121, 130, 143, 117, 124, 131, 123, 113, 123, 116, 134, 118, 115, 119, 136, 121, 111, 128, 127, 125, 127, 117, 128, 92, 119, 116, 145, 130, 141, 122, 123, 113, 143, 129, 131, 149, 114, 138, 124, 122, 131, 121, 112, 131, 113, 133, 133, 125, 138, 128, 143, 120, 111, 128, 130, 123, 135, 118, 111, 137, 127, 109, 98, 123, 126, 128, 123, 131, 112, 118, 126, 130, 120, 119, 120, 119, 128, 125, 139, 138, 143, 96, 135, 120, 124, 118, 110, 143, 116, 121, 127, 115, 106, 118, 126, 120, 126, 128, 117, 131, 109, 114, 144, 105, 122, 107, 118, 128, 114, 137, 141, 110, 129, 126, 125, 119, 121, 125, 107, 113, 123, 107, 142, 148, 120, 144, 119, 101, 108, 147, 104, 115, 128, 120, 109, 146, 128, 129, 138, 122, 128, 122, 128, 133, 145, 133, 120, 109, 126, 105, 129, 121, 131, 127, 149, 119, 130, 121, 148, 124, 127, 91, 100, 146, 123, 128, 129, 127, 124, 132, 125, 122, 127, 122, 117, 130, 131, 114, 110, 123, 112, 115, 125, 127, 135, 118, 148, 126, 129, 134, 117, 123, 133, 131, 127, 131, 134, 127, 100, 113, 133, 123, 106, 120, 124, 113, 112, 140, 135, 127, 121, 123, 125, 122, 120, 121, 122, 121, 120, 121, 125, 129, 143, 101, 104, 134, 129, 114, 122, 121, 140, 131, 147, 121, 116, 140, 132, 122, 121, 113, 122, 123, 118, 130, 126, 122, 140, 124, 117, 118, 131, 118, 113, 133, 114, 136, 124, 111, 129, 118, 122, 133, 125, 135, 142, 122, 137, 124, 120, 124, 121, 133, 101, 133, 133, 115, 118, 125, 126, 123, 125, 134, 129, 116, 126, 146, 138, 139, 136, 116, 111, 125, 121, 110, 101, 112, 117, 126, 113, 141, 134, 121, 140, 145, 121, 131, 125, 112, 124, 112, 116, 128, 128, 124, 133, 123, 113, 124, 140, 134, 132, 124, 141, 132, 118, 123, 112, 138, 128, 128, 127, 138, 122, 136, 124, 143, 132, 123, 118, 121, 132, 114, 131, 101, 117, 132, 143, 133, 129, 121, 123, 112, 116, 116, 119, 133, 124, 137, 117, 129, 146, 135, 111, 119, 121, 137, 112, 136, 130, 109, 137, 122, 118, 135, 134, 119, 133, 124, 144, 125, 117, 126, 110, 111, 129, 115, 140, 119, 120, 113, 121, 129, 127, 95, 131, 121, 122, 113, 123, 122, 129, 113, 122, 121, 130, 121, 119, 128, 144, 112, 118, 132, 115, 146, 114, 109, 129, 98, 123, 139, 126, 139, 118, 134, 132, 120, 124, 134, 121, 120, 148, 117, 134, 130, 130, 124, 125, 125, 116, 127, 119, 134, 129, 124, 109, 123, 127, 122, 129, 147, 119, 128, 131, 117, 125, 117, 149, 120, 117, 122, 126, 149, 134, 125, 151, 124, 127, 121, 124, 117, 110, 126, 121, 124, 119, 133, 129, 125, 141, 130, 109, 111, 108, 115, 125, 116, 124, 130, 130, 118, 114, 115, 114, 135, 113, 113, 111, 134, 115, 111, 140, 137, 128, 133, 122, 140, 140, 133, 126, 135, 127, 104, 113, 130, 129, 125, 118, 155, 123, 116, 114, 103, 127, 135, 137, 129, 117, 120, 134, 120, 127, 124, 117, 121, 122, 127, 106, 106, 124, 89, 120, 137, 133, 120, 116, 126, 125, 127, 129, 122, 137, 99, 139, 116, 133, 143, 118, 112, 119, 131, 124, 113, 116, 123, 120, 141, 132, 108, 115, 134, 110, 114, 116, 120, 123, 124, 116, 123, 114, 114, 127, 127, 130, 140, 103, 130, 126, 123, 132, 131, 115, 137, 110, 114, 117, 148, 124, 117, 126, 119, 114, 135, 129, 115, 132, 111, 126, 134, 127, 141, 127, 117, 114, 123, 101, 128, 131, 113, 139, 125, 150, 122, 137, 125, 128, 145, 113, 123, 131, 130, 127, 102, 110, 120, 119, 117, 136, 136, 122, 126, 119, 119, 119, 121, 115, 125, 115, 108, 117, 121, 132, 127, 117, 127, 130, 129, 131, 141, 110, 126, 129, 115, 135, 122, 137, 136, 124, 115, 113, 112, 129, 133, 132, 106, 122, 118, 136, 130, 115, 127, 117, 122, 131, 136, 129, 123, 127, 135, 128, 135, 135, 125, 117, 132, 125, 125, 112, 118, 122, 125, 124, 114, 118, 131, 121, 130, 128, 122, 123, 138, 129, 119, 128, 132, 129, 117, 115, 140, 119, 130, 134, 128, 130, 129, 135, 108, 125, 129, 109, 119, 142, 135, 131, 124, 110, 123, 122, 135, 107, 104, 125, 139, 126, 115, 133, 141, 131, 125, 110, 123, 109, 111, 131, 108, 127, 127, 145, 129, 113, 119, 117, 129, 130, 126, 126, 116, 116, 105, 147, 123, 135, 150, 128, 124, 125, 128, 122, 132, 141, 130, 111, 122, 118, 114, 121, 147, 125, 136, 133, 116, 132, 144, 139, 126, 122, 135, 125, 117, 116, 118, 134, 122, 118, 126, 123, 129, 118, 128, 129, 128, 125, 140, 128, 126, 121, 138, 125, 131, 139, 128, 129, 120, 127, 130, 117, 109, 116, 134, 123, 112, 132, 110, 114, 111, 121, 144, 119, 131, 139, 120, 129, 131, 107, 132, 115, 127, 126, 137, 110, 115, 130, 126, 108, 123, 116, 132, 121, 115, 137, 132, 142, 132, 119, 118, 131, 115, 123, 121, 133, 130, 122, 127, 144, 131, 121, 119, 119, 128, 117, 122, 118, 129, 135, 130, 118, 125, 143, 121, 118, 132, 117, 113, 135, 124, 134, 119, 132, 122, 131, 125, 115, 130, 148, 124, 137, 122, 106, 124, 134, 106, 128, 125, 124, 121, 114, 136, 117, 128, 127, 120, 125, 124, 136, 116, 135, 141, 130, 139, 115, 126, 110, 119, 114, 115, 128, 113, 141, 116, 144, 122, 116, 143, 127, 126, 110, 114, 127, 121, 116, 128, 129, 135, 120, 128, 118, 146, 120, 128, 128, 131, 123, 117, 139, 126, 130, 130, 125, 124, 118, 113, 128, 117, 115, 120, 118, 134, 113, 133, 121, 123, 134, 139, 124, 124, 134, 115, 129, 129, 123, 130, 122, 118, 122, 123, 121, 111, 130, 115, 117, 136, 120, 126, 101, 132, 123, 127, 122, 126, 108, 149, 129, 107, 114, 129, 129, 115, 119, 121, 119, 126, 135, 126, 123, 132, 143, 124, 101, 130, 117, 120, 127, 130, 126, 129, 125, 137, 120, 129, 133, 118, 125, 144, 117, 127, 124, 119, 135, 125, 118, 117, 128, 145, 115, 133, 124, 124, 114, 136, 124, 130, 132, 132, 127, 119, 115, 126, 115, 113, 130, 153, 137, 120, 118, 145, 139, 118, 126, 128, 116, 127, 126, 130, 130, 125, 134, 127, 118, 142, 141, 130, 125, 111, 152, 103, 123, 114, 101, 135, 130, 131, 112, 119, 102, 109, 124, 118, 126, 125, 126, 120, 124, 121, 128, 126, 109, 112, 115, 141, 126, 143, 138, 112, 122, 124, 125, 120, 114, 142, 124, 124, 148, 112, 118, 115, 131, 127, 126, 107, 120, 119, 127, 132, 152, 110, 121, 139, 143, 133, 121, 116, 147, 120, 125, 121, 124, 141, 140, 118, 132, 136, 122, 137, 113, 126, 123, 123, 117, 128, 130, 138, 121, 129, 138, 133, 143, 122, 133, 142, 128, 121, 130, 127, 132, 129, 123, 132, 127, 140, 133, 122, 133, 143, 116, 121, 115, 109, 125, 135, 117, 123, 131, 114, 132, 126, 125, 133, 129, 123, 128, 122, 109, 104, 151, 138, 114, 122, 118, 119, 130, 120, 131, 122, 124, 129, 110, 120, 126, 120, 123, 117, 114, 123, 113, 109, 121, 120, 141, 115, 119, 125, 120, 120, 129, 131, 123, 124, 133, 109, 134, 110, 121, 112, 122, 138, 119, 124, 133, 121, 141, 114, 127, 127, 136, 102, 122, 129, 128, 110, 125, 131, 129, 117, 118, 114, 108, 142, 136, 123, 136, 125, 131, 125, 110, 131, 124, 118, 123, 124, 135, 109, 122, 139, 108, 116, 118, 125, 129, 108, 148, 128, 125, 121, 127, 131, 129, 131, 124, 140, 139, 129, 109, 135, 116, 134, 131, 112, 127, 132, 127, 117, 133, 128, 128, 129, 123, 131, 130, 129, 117, 127, 113, 119, 99, 141, 124, 125, 122, 128, 129, 125, 119, 136, 115, 107, 127, 134, 119, 112, 124, 119, 147, 126, 120, 135, 128, 128, 113, 126, 130, 114, 110, 140, 100, 136, 127, 123, 130, 137, 139, 127, 131, 121, 132, 142, 120, 119, 134, 120, 123, 100, 137, 116, 123, 130, 133, 134, 145, 117, 122, 112, 126, 140, 115, 140, 131, 101, 126, 113, 120, 128, 131, 128, 139, 128, 126, 121, 121, 129, 118, 120, 119, 130, 131, 116, 122, 121, 136, 156, 127, 115, 127, 111, 138, 126, 118, 116, 128, 131, 130, 124, 123, 121, 134, 147, 139, 103, 132, 125, 125, 117, 121, 114, 140, 133, 119, 124, 136, 113, 120, 117, 121, 131, 119, 128, 120, 146, 130, 134, 128, 131, 149, 118, 116, 134, 120, 116, 127, 136, 115, 128, 128, 123, 121, 116, 140, 120, 122, 119, 153, 134, 119, 122, 123, 134, 130, 118, 121, 123, 126, 137, 111, 112, 116, 122, 130, 132, 127, 127, 139, 124, 121, 126, 109, 131, 127, 122, 138, 123, 115, 135, 109, 138, 148, 129, 125, 123, 127, 138, 128, 133, 129, 140, 106, 109, 120, 138, 113, 103, 139, 127, 143, 115, 132, 133, 121, 117, 125, 139, 133, 134, 134, 115, 121, 120, 121, 101, 118, 113, 142, 117, 152, 135, 142, 135, 122, 117, 136, 116, 124, 110, 123, 133, 125, 129, 125, 141, 123, 120, 114, 126, 129, 119, 117, 136, 140, 116, 128, 119, 125, 123, 116, 119, 114, 146, 117, 123, 115, 158, 140, 127, 146, 132, 123, 132, 151, 130, 138, 130, 129, 142, 128, 117, 150, 130, 136, 132, 125, 118, 129, 128, 119, 117, 116, 144, 134, 118, 131, 129, 135, 124, 125, 136, 119, 132, 132, 129, 137, 129, 126, 125, 129, 127, 127, 128, 133, 140, 121, 125, 139, 124, 134, 142, 129, 131, 122, 121, 116, 121, 151, 119, 109, 120, 127, 117, 120, 118, 127, 130, 120, 133, 130, 122, 130, 145, 141, 124, 112, 111, 134, 105, 123, 110, 120, 129, 131, 128, 125, 114, 147, 122, 146, 135, 121, 117, 126, 118, 114, 145, 122, 137, 130, 141, 111, 97, 133, 128, 131, 99, 128, 125, 125, 107, 128, 106, 117, 112, 138, 130, 139, 129, 109, 134, 110, 131, 126, 140, 112, 123, 122, 118, 132, 129, 133, 130, 103, 96, 131, 127, 115, 134, 129, 132, 118, 141, 119, 107, 105, 132, 120, 124, 122, 115, 116, 132, 124, 127, 131, 114, 116, 121, 107, 122, 121, 127, 133, 140, 114, 111, 114, 125, 126, 135, 121, 121, 127, 121, 133, 104, 117, 135, 132, 110, 123, 125, 114, 115, 130, 124, 123, 127, 118, 122, 146, 119, 140, 127, 133, 126, 131, 144, 124, 127, 132, 134, 151, 129, 138, 110, 113, 131, 115, 122, 133, 120, 119, 137, 128, 125, 124, 133, 113, 121, 128, 119, 129, 115, 129, 122, 125, 129, 99, 106, 120, 120, 123, 109, 129, 120, 115, 144, 113, 124, 117, 123, 126, 136, 121, 122, 123, 113, 131, 125, 130, 148, 139, 123, 110, 133, 130, 106, 116, 116, 97, 134, 116, 113, 121, 126, 120, 117, 143, 121, 112, 112, 112, 126, 108, 124, 122, 125, 126, 126, 124, 131, 121, 111, 132, 131, 136, 134, 123, 125, 128, 114, 122, 122, 121, 110, 115, 103, 125, 129, 125, 129, 132, 145, 138, 125, 122, 118, 119, 139, 119, 113, 119, 124, 135, 134, 112, 119, 111, 128, 136, 121, 135, 142, 132, 113, 119, 133, 123, 113, 122, 127, 132, 125, 143, 112, 120, 125, 126, 125, 139, 131, 132, 114, 133, 110, 125, 126, 145, 111, 123, 127, 134, 108, 127, 129, 127, 141, 130, 125, 114, 130, 126, 148, 125, 130, 121, 129, 123, 121, 124, 131, 135, 131, 116, 125, 128, 138, 133, 125, 121, 118, 126, 124, 122, 131, 147, 140, 123, 127, 118, 125, 130, 104, 138, 131, 123, 143, 128, 124, 132, 121, 124, 132, 140, 120, 123, 137, 128, 112, 141, 112, 141, 129, 103, 123, 124, 122, 124, 139, 139, 110, 122, 124, 141, 136, 145, 111, 131, 143, 119, 151, 136, 141, 117, 116, 130, 132, 146, 129, 132, 137, 132, 126, 110, 141, 105, 136, 114, 113, 130, 125, 111, 125, 137, 110, 104, 113, 133, 138, 121, 130, 130, 140, 125, 124, 127, 138, 127, 118, 119, 116, 125, 125, 117, 116, 127, 129, 132, 135, 113, 113, 111, 132, 122, 114, 124, 138, 116, 126, 131, 140, 127, 122, 141, 108, 113, 122, 134, 113, 129, 120, 132, 135, 125, 124, 122, 133, 129, 143, 115, 98, 131, 122, 118, 135, 140, 166, 134, 129, 129, 120, 114, 107, 115, 118, 152, 127, 136, 121, 129, 120, 130, 129, 119, 126, 122, 126, 118, 147, 119, 132, 126, 112, 129, 125, 133, 119, 123, 132, 111, 120, 121, 121, 103, 135, 131, 137, 118, 129, 133, 139, 134, 138, 138, 124, 128, 143, 120, 130, 137, 124, 122, 131, 135, 129, 117, 123, 119, 125, 138, 133, 130, 112, 125, 122, 115, 123, 126, 127, 126, 117, 114, 125, 113, 118, 117, 142, 151, 118, 122, 126, 131, 121, 125, 135, 118, 121, 118, 143, 117, 152, 144, 127, 103, 145, 120, 128, 130, 123, 124, 126, 140, 119, 127, 120, 115, 127, 116, 124, 120, 125, 119, 138, 120, 130, 125, 131, 112, 125, 125, 138, 135, 131, 121, 138, 122, 120, 147, 125, 136, 139, 130, 124, 130, 127, 117, 117, 124, 114, 121, 131, 112, 133, 137, 123, 111, 129, 132, 130, 112, 110, 128, 103, 111, 119, 134, 128, 130, 123, 128, 131, 133, 141, 118, 131, 127, 126, 120, 121, 146, 131, 125, 130, 129, 130, 122, 139, 128, 124, 141, 117, 126, 130, 119, 131, 106, 116, 135, 122, 139, 119, 120, 115, 126, 124, 143, 123, 120, 114, 128, 103, 138, 114, 130, 132, 119, 132, 124, 138, 120, 137, 127, 122, 137, 119, 117, 114, 145, 124, 120, 126, 125, 135, 126, 114, 119, 124, 110, 112, 115, 129, 140, 108, 132, 127, 132, 134, 110, 136, 127, 113, 114, 103, 138, 109, 133, 120, 118, 124, 129, 131, 123, 135, 135, 134, 122, 129, 125, 120, 137, 113, 132, 127, 116, 129, 124, 120, 133, 135, 139, 120, 140, 145, 135, 113, 113, 106, 110, 139, 110, 131, 121, 129, 118, 132, 129, 134, 131, 145, 138, 120, 128, 121, 107, 112, 132, 122, 114, 127, 120, 106, 153, 122, 114, 132, 130, 125, 125, 123, 126, 122, 122, 131, 126, 131, 125, 132, 128, 119, 122, 127, 118, 124, 108, 116, 156, 124, 123, 118, 105, 113, 127, 119, 128, 112, 131, 137, 126, 130, 114, 144, 121, 126, 114, 112, 133, 127, 108, 126, 123, 129, 126, 132, 124, 130, 115, 131, 129, 128, 144, 121, 107, 135, 115, 121, 124, 115, 126, 129, 126, 114, 125, 133, 121, 144, 132, 119, 123, 122, 139, 125, 111, 122, 130, 119, 134, 116, 125, 106, 147, 135, 112, 125, 140, 145, 138, 108, 123, 112, 115, 138, 125, 113, 135, 110, 135, 84, 125, 134, 122, 118, 112, 112, 120, 129, 149, 117, 126, 121, 116, 109, 105, 132, 106, 100, 135, 133, 112, 125, 128, 108, 127, 126, 126, 125, 118, 125, 156, 128, 131, 119, 132, 146, 112, 120, 135, 115, 137, 123, 98, 119, 109, 124, 116, 120, 125, 111, 126, 134, 131, 139, 130, 105, 126, 132, 122, 145, 115, 124, 123, 130, 102, 120, 120, 130, 133, 116, 115, 136, 126, 121, 131, 124, 125, 95, 113, 103, 108, 107, 115, 143, 127, 126, 119, 113, 109, 121, 133, 131, 106, 138, 128, 125, 127, 115, 124, 122, 134, 117, 118, 142, 128, 124, 147, 145, 128, 124, 117, 117, 126, 127, 113, 125, 130, 137, 135, 109, 146, 121, 132, 122, 121, 135, 133, 137, 143, 122, 141, 124, 122, 126, 135, 128, 138, 147, 131, 136, 119, 132, 129, 109, 129, 103, 121, 125, 133, 126, 132, 128, 113, 130, 128, 111, 145, 130, 124, 125, 104, 108, 154, 128, 121, 117, 128, 128, 117, 139, 138, 142, 119, 116, 139, 123, 154, 146, 112, 140, 119, 115, 132, 127, 128, 111, 121, 127, 127, 123, 116, 128, 128, 157, 103, 127, 133, 115, 102, 112, 122, 133, 104, 118, 126, 112, 118, 128, 117, 141, 138, 111, 120, 120, 125, 127, 118, 126, 116, 125, 120, 111, 100, 132, 138, 120, 137, 118, 120, 117, 137, 132, 116, 126, 136, 143, 117, 128, 130, 122, 129, 125, 107, 135, 132, 131, 145, 123, 140, 119, 155, 151, 119, 116, 130, 108, 119, 107, 112, 133, 116, 124, 117, 122, 134, 149, 127, 126, 118, 126, 137, 140, 125, 127, 122, 114, 137, 128, 123, 137, 121, 108, 134, 117, 131, 114, 133, 136, 119, 143, 122, 118, 116, 148, 122, 128, 128, 117, 111, 107, 123, 129, 119, 105, 129, 135, 102, 149, 124, 139, 120, 122, 116, 131, 136, 102, 124, 114, 130, 128, 114, 127, 128, 118, 127, 119, 128, 130, 135, 115, 149, 136, 129, 116, 122, 126, 124, 123, 124, 128, 119, 125, 113, 131, 122, 134, 125, 124, 135, 149, 146, 114, 129, 142, 133, 137, 120, 120, 121, 138, 132, 134, 128, 144, 134, 131, 114, 141, 139, 122, 144, 124, 114, 115, 127, 123, 129, 120, 156, 116, 121, 133, 145, 113, 157, 124, 126, 130, 105, 130, 126, 115, 128, 116, 124, 121, 132, 120, 123, 148, 121, 134, 122, 119, 124, 118, 116, 128, 133, 108, 129, 133, 108, 113, 113, 133, 126, 126, 117, 123, 136, 116, 121, 136, 117, 123, 128, 126, 119, 128, 110, 99, 145, 135, 133, 113, 130, 124, 116, 127, 138, 106, 135, 112, 110, 125, 145, 142, 116, 130, 106, 129, 134, 130, 108, 140, 122, 127, 129, 114, 113, 120, 116, 141, 136, 122, 137, 119, 119, 129, 126, 125, 114, 146, 113, 113, 143, 121, 138, 132, 123, 120, 121, 115, 115, 121, 152, 112, 134, 119, 122, 134, 124, 120, 117, 134, 123, 125, 122, 122, 117, 117, 125, 131, 128, 122, 129, 144, 126, 128, 99, 137, 114, 128, 132, 127, 129, 124, 137, 120, 131, 119, 123, 121, 120, 136, 117, 118, 117, 139, 143, 116, 124, 137, 120, 127, 126, 126, 122, 120, 134, 121, 126, 129, 120, 131, 144, 130, 134, 102, 133, 133, 102, 129, 113, 133, 129, 128, 115, 108, 142, 137, 132, 142, 137, 114, 126, 128, 131, 116, 150, 126, 134, 123, 119, 101, 140, 136, 122, 141, 132, 114, 163, 109, 137, 121, 126, 121, 123, 130, 128, 126, 124, 136, 137, 122, 135, 127, 116, 126, 129, 122, 119, 120, 122, 115, 120, 126, 121, 124, 114, 122, 118, 125, 124, 131, 103, 114, 130, 127, 117, 129, 129, 125, 115, 139, 127, 122, 140, 122, 115, 130, 118, 137, 122, 132, 110, 138, 134, 120, 109, 121, 141, 128, 108, 114, 126, 106, 124, 117, 123, 127, 134, 117, 124, 128, 110, 143, 123, 128, 116, 127, 115, 126, 147, 118, 137, 127, 148, 120, 123, 118, 131, 151, 131, 125, 117, 124, 124, 127, 106, 133, 114, 138, 130, 136, 109, 141, 124, 126, 117, 131, 121, 133, 121, 132, 128, 136, 134, 117, 124, 98, 109, 116, 115, 129, 121, 127, 124, 129, 113, 122, 128, 141, 131, 129, 126, 126, 130, 137, 127, 114, 107, 129, 142, 121, 134, 125, 115, 118, 144, 124, 138, 135, 114, 130, 110, 119, 137, 112, 115, 128, 146, 116, 121, 127, 126, 142, 125, 113, 133, 130, 143, 115, 113, 128, 144, 113, 113, 125, 136, 129, 128, 135, 121, 132, 124, 128, 117, 120, 120, 101, 126, 124, 126, 134, 130, 120, 119, 127, 139, 133, 134, 114, 135, 117, 104, 135, 129, 126, 125, 141, 127, 126, 122, 111, 144, 138, 127, 137, 149, 119, 125, 125, 119, 122, 129, 112, 129, 131, 114, 124, 141, 117, 131, 131, 142, 124, 121, 136, 132, 115, 131, 128, 118, 119, 121, 132, 130, 137, 139, 119, 122, 116, 115, 119, 114, 113, 134, 131, 121, 127, 116, 94, 132, 131, 128, 117, 122, 132, 137, 121, 130, 127, 112, 126, 146, 136, 127, 121, 148, 121, 129, 124, 129, 124, 132, 134, 122, 123, 142, 133, 124, 118, 147, 138, 118, 119, 112, 122, 138, 132, 131, 119, 141, 127, 111, 136, 133, 129, 134, 149, 133, 135, 115, 128, 127, 117, 119, 143, 136, 129, 120, 123, 154, 129, 128, 126, 115, 114, 130, 124, 128, 155, 140, 121, 121, 138, 144, 124, 109, 116, 134, 121, 124, 127, 131, 127, 133, 112, 131, 134, 145, 119, 134, 120, 135, 152, 137, 129, 125, 109, 136, 118, 133, 126, 119, 132, 122, 122, 118, 130, 130, 121, 140, 119, 127, 108, 126, 153, 131, 119, 132, 125, 138, 113, 122, 110, 131, 118, 123, 133, 131, 124, 118, 125, 124, 142, 130, 128, 120, 118, 127, 133, 126, 110, 129, 136, 137, 121, 130, 141, 125, 114, 112, 116, 113, 126, 115, 125, 123, 129, 116, 103, 109, 133, 125, 109, 135, 118, 124, 138, 117, 104, 113, 117, 122, 135, 135, 126, 123, 126, 109, 126, 122, 138, 115, 120, 121, 134, 134, 131, 114, 125, 135, 161, 132, 116, 125, 142, 119, 134, 116, 132, 128, 105, 126, 129, 147, 135, 132, 132, 114, 140, 133, 115, 140, 124, 132, 117, 115, 112, 117, 97, 130, 118, 131, 136, 109, 127, 105, 117, 144, 128, 128, 154, 135, 139, 123, 131, 127, 123, 123, 131, 111, 103, 121, 124, 125, 124, 114, 133, 141, 118, 127, 122, 116, 112, 130, 104, 108, 110, 126, 96, 129, 119, 134, 115, 119, 117, 103, 108, 123, 123, 121, 134, 112, 110, 114, 116, 140, 108, 128, 115, 118, 116, 111, 129, 138, 118, 110, 120, 136, 127, 106, 139, 134, 129, 114, 128, 165, 107, 133, 124, 141, 115, 132, 119, 135, 111, 155, 122, 133, 127, 122, 133, 132, 121, 136, 123, 139, 125, 126, 135, 135, 125, 125, 114, 108, 118, 120, 144, 126, 131, 119, 119, 123, 115, 120, 127, 125, 122, 145, 124, 138, 130, 127, 132, 127, 131, 138, 108, 135, 122, 138, 138, 116, 129, 110, 117, 118, 97, 135, 127, 124, 152, 137, 117, 133, 127, 115, 114, 141, 101, 124, 116, 126, 116, 133, 124, 135, 137, 110, 151, 126, 134, 121, 123, 140, 115, 100, 115, 131, 115, 116, 123, 140, 128, 121, 121, 111, 119, 127, 119, 99, 109, 135, 134, 119, 146, 123, 108, 126, 121, 131, 119, 126, 120, 115, 111, 120, 126, 136, 126, 124, 120, 111, 116, 131, 134, 104, 127, 114, 123, 138, 116, 126, 138, 117, 120, 111, 128, 119, 133, 125, 119, 132, 114, 122, 137, 130, 140, 117, 127, 135, 126, 120, 133, 114, 113, 75, 133, 116, 127, 133, 124, 130, 116, 102, 123, 131, 133, 125, 119, 93, 120, 125, 127, 137, 121, 117, 129, 116, 146, 124, 120, 109, 143, 132, 120, 141, 115, 125, 134, 122, 125, 113, 113, 125, 147, 106, 133, 124, 124, 130, 116, 118, 127, 145, 123, 115, 112, 111, 131, 116, 120, 134, 132, 134, 125, 122, 142, 137, 115, 139, 129, 122, 113, 163, 110, 105, 117, 142, 132, 102, 122, 137, 118, 119, 136, 136, 117, 130, 125, 136, 137, 140, 150, 134, 107, 121, 129, 118, 123, 134, 139, 127, 135, 121, 112, 122, 105, 123, 130, 116, 132, 119, 103, 140, 130, 128, 122, 116, 133, 106, 139, 120, 116, 138, 123, 118, 120, 126, 124, 116, 129, 124, 130, 120, 124, 125, 133, 119, 127, 126, 131, 126, 115, 138, 123, 129, 134, 115, 137, 125, 107, 112, 124, 135, 118, 119, 128, 118, 104, 118, 134, 133, 126, 112, 134, 119, 123, 131, 139, 113, 113, 117, 126, 123, 131, 122, 133, 118, 133, 134, 129, 134, 127, 112, 131, 132, 119, 142, 147, 115, 151, 122, 133, 154, 118, 125, 144, 135, 131, 124, 113, 110, 124, 138, 113, 116, 123, 144, 106, 127, 138, 132, 116, 112, 126, 131, 110, 133, 103, 145, 124, 115, 124, 124, 130, 116, 141, 128, 133, 119, 126, 122, 121, 134, 140, 123, 124, 108, 123, 121, 143, 134, 123, 140, 132, 117, 133, 125, 146, 119, 108, 121, 121, 110, 121, 112, 99, 139, 144, 130, 129, 136, 121, 128, 126, 126, 129, 132, 134, 112, 138, 135, 131, 136, 120, 112, 137, 127, 128, 139, 123, 122, 132, 140, 139, 122, 131, 144, 152, 120, 111, 117, 126, 131, 131, 122, 134, 116, 115, 121, 134, 111, 128, 138, 126, 105, 108, 132, 125, 133, 130, 110, 134, 129, 127, 119, 124, 140, 131, 148, 109, 155, 125, 106, 101, 122, 145, 124, 124, 152, 125, 125, 125, 122, 125, 114, 121, 116, 134, 118, 118, 123, 144, 119, 121, 129, 137, 138, 118, 124, 127, 132, 122, 124, 145, 140, 115, 122, 120, 125, 126, 120, 115, 104, 139, 120, 123, 119, 125, 119, 118, 128, 133, 105, 122, 128, 173, 125, 130, 121, 117, 120, 122, 122, 128, 117, 142, 115, 122, 132, 128, 134, 123, 146, 99, 110, 120, 111, 125, 126, 115, 106, 117, 127, 128, 131, 124, 106, 122, 135, 124, 117, 136, 127, 109, 138, 123, 97, 104, 128, 119, 116, 140, 133, 133, 100, 121, 123, 117, 128, 114, 134, 132, 128, 111, 121, 124, 131, 122, 144, 122, 122, 113, 135, 134, 120, 114, 131, 121, 133, 138, 127, 124, 129, 110, 120, 115, 152, 122, 115, 142, 120, 121, 121, 116, 128, 125, 144, 152, 117, 113, 124, 109, 117, 126, 122, 130, 131, 134, 122, 128, 135, 128, 129, 151, 115, 132, 119, 130, 131, 107, 119, 138, 116, 139, 142, 125, 118, 137, 142, 117, 137, 123, 113, 139, 124, 102, 112, 121, 124, 131, 120, 119, 114, 127, 114, 117, 131, 116, 117, 124, 110, 127, 111, 149, 126, 145, 104, 113, 121, 101, 133, 131, 113, 133, 116, 131, 128, 123, 144, 122, 113, 116, 114, 127, 136, 148, 131, 113, 132, 135, 123, 128, 123, 120, 135, 127, 124, 120, 130, 106, 112, 127, 147, 122, 124, 128, 124, 117, 123, 128, 111, 118, 127, 137, 119, 132, 134, 140, 127, 109, 132, 145, 131, 139, 151, 123, 116, 124, 144, 120, 124, 133, 121, 116, 128, 133, 123, 134, 125, 134, 135, 129, 117, 131, 112, 122, 120, 145, 113, 134, 139, 138, 150, 141, 137, 112, 131, 140, 120, 113, 134, 112, 128, 140, 119, 125, 121, 124, 117, 130, 124, 127, 124, 129, 114, 136, 113, 126, 136, 129, 142, 147, 122, 144, 110, 124, 140, 138, 120, 146, 136, 121, 130, 95, 125, 138, 116, 126, 108, 122, 114, 128, 123, 135, 111, 117, 115, 125, 128, 115, 131, 105, 153, 134, 127, 148, 131, 113, 128, 125, 127, 121, 127, 98, 126, 121, 121, 135, 129, 121, 109, 126, 129, 115, 111, 108, 126, 153, 140, 136, 116, 124, 123, 106, 126, 136, 123, 122, 127, 126, 109, 140, 119, 125, 116, 115, 112, 133, 121, 143, 137, 122, 115, 127, 106, 123, 114, 132, 116, 122, 122, 124, 119, 114, 112, 126, 114, 139, 121, 109, 127, 128, 131, 124, 126, 122, 125, 134, 141, 112, 138, 99, 113, 117, 100, 134, 137, 115, 134, 130, 125, 124, 147, 128, 117, 126, 107, 111, 122, 125, 125, 121, 117, 124, 127, 122, 114, 125, 130, 128, 125, 131, 121, 121, 133, 112, 112, 130, 117, 137, 113, 122, 119, 119, 136, 129, 116, 147, 99, 126, 124, 129, 147, 126, 133, 156, 125, 129, 134, 122, 118, 127, 138, 102, 120, 129, 124, 120, 118, 129, 146, 120, 112, 141, 121, 138, 131, 149, 124, 122, 123, 137, 132, 108, 128, 110, 121, 129, 111, 137, 134, 127, 125, 135, 115, 138, 131, 117, 128, 124, 115, 117, 136, 117, 144, 131, 115, 108, 114, 125, 119, 117, 128, 129, 139, 120, 137, 126, 129, 121, 127, 121, 117, 116, 112, 105, 131, 118, 125, 120, 143, 124, 123, 113, 125, 120, 127, 114, 128, 126, 122, 123, 132, 122, 126, 107, 122, 130, 143, 121, 128, 143, 123, 121, 167, 128, 129, 117, 116, 139, 110, 134, 136, 122, 137, 121, 126, 139, 121, 130, 118, 123, 132, 122, 147, 121, 102, 122, 130, 132, 131, 140, 120, 125, 140, 111, 119, 112, 134, 125, 125, 135, 116, 130, 129, 121, 125, 126, 116, 118, 136, 119, 141, 115, 119, 136, 119, 126, 116, 118, 130, 119, 110, 125, 117, 132, 131, 129, 114, 134, 131, 124, 133, 128, 123, 117, 115, 112, 149, 132, 133, 127, 127, 120, 134, 142, 120, 132, 106, 127, 138, 104, 107, 128, 117, 127, 101, 140, 133, 143, 110, 112, 133, 137, 120, 122, 137, 107, 132, 120, 120, 127, 113, 106, 125, 110, 129, 121, 125, 119, 120, 127, 136, 130, 117, 109, 119, 110, 108, 120, 112, 119, 103, 131, 125, 124, 120, 126, 122, 130, 122, 122, 118, 130, 125, 134, 135, 119, 129, 129, 116, 114, 126, 132, 137, 131, 140, 120, 130, 142, 134, 129, 137, 115, 121, 140, 138, 115, 130, 104, 127, 133, 126, 129, 123, 130, 116, 128, 143, 136, 117, 119, 117, 105, 126, 119, 127, 130, 137, 125, 132, 136, 110, 120, 140, 133, 131, 146, 132, 118, 108, 123, 128, 138, 130, 124, 117, 125, 138, 115, 148, 114, 124, 128, 113, 130, 111, 116, 112, 133, 116, 126, 144, 123, 114, 119, 127, 132, 122, 125, 115, 130, 115, 139, 120, 118, 121, 108, 132, 129, 134, 104, 117, 128, 111, 130, 125, 115, 116, 130, 127, 125, 122, 115, 127, 126, 130, 136, 122, 144, 130, 123, 139, 142, 135, 135, 133, 128, 120, 160, 122, 136, 122, 130, 124, 113, 135, 115, 126, 131, 127, 119, 122, 126, 122, 111, 112, 124, 133, 125, 139, 101, 116, 117, 123, 134, 130, 122, 133, 131, 113, 137, 115, 125, 117, 124, 125, 109, 121, 126, 141, 126, 119, 121, 111, 146, 127, 118, 129, 131, 128, 128, 148, 115, 105, 117, 120, 126, 112, 133, 132, 140, 112, 112, 107, 133, 106, 119, 133, 107, 123, 117, 114, 120, 121, 130, 116, 126, 111, 130, 130, 115, 107, 129, 129, 110, 130, 124, 128, 123, 117, 118, 121, 115, 131, 107, 125, 145, 125, 117, 123, 131, 116, 113, 116, 115, 118, 134, 129, 110, 127, 148, 134, 117, 124, 129, 126, 133, 127, 141, 119, 128, 133, 127, 126, 119, 130, 112, 115, 124, 109, 141, 135, 144, 122, 125, 122, 106, 121, 123, 133, 134, 126, 129, 130, 109, 135, 119, 144, 118, 107, 129, 121, 125, 119, 108, 134, 130, 121, 123, 134, 126, 136, 110, 138, 126, 125, 132, 132, 123, 128, 132, 119, 123, 133, 134, 132, 143, 128, 122, 121, 128, 122, 131, 126, 130, 131, 126, 123, 123, 130, 137, 138, 136, 126, 118, 128, 117, 128, 117, 109, 127, 128, 104, 119, 109, 116, 114, 108, 124, 141, 129, 138, 132, 135, 130, 120, 131, 137, 129, 126, 129, 125, 118, 127, 136, 113, 131, 124, 118, 123, 118, 112, 134, 137, 116, 128, 114, 119, 141, 125, 127, 118, 142, 111, 129, 140, 115, 110, 130, 117, 141, 123, 105, 121, 125, 136, 131, 145, 130, 137, 132, 139, 131, 123, 117, 128, 117, 127, 131, 133, 134, 121, 131, 120, 126, 131, 121, 136, 121, 125, 122, 130, 140, 125, 133, 117, 132, 121, 125, 120, 122, 134, 126, 157, 125, 117, 139, 128, 131, 127, 127, 122, 131, 121, 124, 136, 124, 120, 139, 126, 118, 113, 140, 139, 131, 136, 131, 139, 131, 136, 128, 131, 124, 114, 121, 130, 123, 128, 123, 126, 108, 130, 132, 126, 140, 115, 127, 131, 143, 138, 124, 126, 125, 120, 116, 127, 131, 112, 116, 110, 124, 101, 129, 129, 131, 100, 121, 128, 131, 117, 127, 132, 131, 138, 132, 123, 125, 132, 124, 113, 132, 115, 136, 125, 121, 123, 127, 136, 110, 123, 125, 124, 117, 108, 123, 121, 129, 109, 133, 107, 135, 146, 119, 127, 139, 149, 97, 126, 116, 126, 124, 137, 101, 127, 126, 112, 134, 125, 122, 120, 122, 124, 145, 122, 122, 116, 138, 127, 124, 125, 142, 124, 127, 112, 130, 111, 106, 124, 114, 118, 131, 128, 137, 131, 121, 119, 140, 133, 130, 120, 112, 127, 135, 125, 127, 129, 120, 122, 126, 136, 129, 132, 119, 118, 118, 125, 128, 129, 131, 119, 118, 125, 135, 143, 128, 107, 136, 125, 130, 139, 121, 135, 132, 126, 147, 115, 126, 108, 122, 121, 135, 124, 140, 103, 121, 120, 120, 131, 128, 116, 122, 115, 148, 130, 126, 135, 132, 112, 125, 127, 131, 141, 119, 114, 119, 133, 106, 148, 119, 129, 112, 133, 119, 115, 109, 124, 117, 127, 124, 105, 117, 131, 131, 129, 135, 129, 123, 120, 137, 125, 106, 130, 132, 151, 115, 118, 130, 129, 117, 124, 119, 120, 125, 143, 140, 128, 134, 135, 108, 118, 131, 132, 124, 127, 122, 125, 121, 125, 147, 127, 123, 127, 131, 124, 117, 134, 127, 129, 134, 111, 129, 125, 149, 119, 138, 138, 115, 134, 117, 134, 113, 137, 127, 108, 111, 144, 135, 134, 125, 131, 131, 126, 118, 109, 133, 107, 129, 126, 127, 122, 128, 127, 144, 137, 118, 116, 136, 136, 136, 127, 119, 135, 141, 135, 111, 115, 128, 112, 123, 119, 133, 100, 130, 120, 134, 113, 117, 111, 140, 125, 109, 128, 135, 118, 142, 113, 122, 125, 138, 136, 135, 118, 121, 130, 110, 131, 118, 110, 134, 122, 143, 115, 139, 128, 133, 129, 132, 136, 138, 145, 124, 130, 132, 111, 123, 119, 122, 119, 124, 108, 121, 153, 129, 131, 113, 146, 111, 124, 116, 116, 131, 127, 127, 144, 124, 112, 129, 102, 128, 121, 125, 124, 107, 108, 123, 149, 122, 103, 120, 139, 116, 136, 123, 120, 126, 142, 134, 129, 106, 142, 117, 132, 127, 113, 134, 123, 129, 118, 142, 128, 121, 132, 129, 128, 136, 132, 125, 109, 141, 140, 135, 126, 109, 139, 120, 129, 135, 126, 100, 129, 135, 119, 138, 118, 118, 125, 107, 104, 126, 125, 124, 121, 122, 127, 122, 139, 137, 112, 121, 132, 117, 139, 128, 126, 119, 132, 112, 131, 133, 134, 115, 120, 128, 131, 91, 108, 121, 134, 125, 123, 135, 116, 128, 106, 120, 130, 127, 142, 125, 119, 129, 127, 137, 119, 119, 112, 113, 109, 160, 119, 134, 112, 122, 124, 141, 138, 122, 120, 114, 132, 138, 133, 108, 128, 139, 114, 110, 140, 134, 121, 111, 100, 132, 109, 123, 130, 120, 127, 127, 134, 120, 149, 133, 141, 116, 119, 119, 139, 130, 134, 133, 116, 127, 120, 124, 140, 123, 118, 117, 135, 120, 130, 125, 97, 138, 119, 135, 124, 132, 122, 127, 115, 110, 118, 138, 130, 125, 132, 119, 119, 127, 143, 113, 133, 137, 128, 126, 133, 132, 152, 141, 120, 124, 135, 141, 126, 107, 116, 132, 120, 117, 138, 121, 136, 121, 131, 134, 114, 116, 122, 141, 138, 121, 125, 116, 114, 104, 148, 125, 115, 121, 108, 128, 116, 124, 125, 118, 141, 99, 123, 117, 122, 135, 154, 128, 121, 134, 118, 122, 128, 130, 118, 106, 116, 136, 122, 125, 130, 122, 136, 126, 122, 122, 144, 122, 120, 145, 129, 113, 123, 119, 120, 155, 139, 122, 129, 129, 141, 132, 122, 140, 116, 129, 125, 105, 130, 136, 122, 144, 126, 135, 126, 116, 121, 123, 115, 126, 128, 140, 121, 126, 137, 126, 123, 117, 123, 134, 117, 132, 125, 111, 132, 118, 131, 133, 133, 125, 114, 127, 123, 140, 129, 117, 125, 132, 120, 121, 117, 108, 134, 111, 110, 126, 133, 127, 126, 130, 125, 130, 124, 114, 133, 122, 132, 149, 120, 116, 121, 126, 136, 122, 146, 121, 124, 141, 106, 125, 119, 131, 126, 138, 116, 115, 140, 121, 112, 122, 136, 110, 125, 123, 135, 133, 146, 130, 110, 137, 136, 128, 111, 118, 119, 126, 116, 127, 116, 140, 98, 127, 110, 116, 136, 100, 118, 123, 129, 120, 119, 119, 133, 129, 130, 104, 117, 125, 115, 125, 134, 115, 105, 122, 114, 126, 126, 119, 125, 135, 125, 121, 145, 122, 125, 136, 119, 129, 109, 126, 142, 133, 137, 128, 111, 127, 128, 126, 122, 142, 120, 114, 124, 109, 124, 115, 122, 109, 155, 128, 111, 127, 110, 126, 123, 146, 134, 126, 107, 109, 128, 122, 136, 134, 127, 150, 124, 147, 111, 120, 109, 142, 120, 129, 132, 126, 136, 137, 118, 126, 120, 131, 135, 143, 120, 107, 130, 117, 126, 107, 111, 130, 133, 127, 128, 136, 126, 125, 143, 136, 152, 126, 143, 111, 127, 117, 119, 130, 142, 131, 130, 134, 124, 129, 119, 124, 107, 134, 143, 127, 123, 139, 138, 130, 125, 132, 122, 146, 134, 135, 123, 130, 124, 134, 121, 113, 137, 111, 134, 144, 107, 125, 129, 130, 138, 129, 115, 121, 128, 118, 137, 133, 109, 146, 146, 120, 109, 126, 124, 118, 130, 127, 112, 131, 120, 130, 112, 120, 139, 117, 128, 120, 118, 138, 126, 106, 132, 115, 124, 119, 113, 137, 124, 119, 116, 133, 119, 133, 117, 122, 139, 110, 127, 118, 138, 129, 139, 125, 120, 122, 111, 121, 129, 128, 109, 124, 130, 140, 141, 123, 134, 132, 102, 125, 135, 120, 131, 124, 116, 136, 157, 113, 119, 117, 124, 152, 129, 124, 131, 104, 119, 124, 143, 135, 138, 139, 130, 130, 115, 126, 136, 114, 116, 135, 128, 130, 127, 109, 110, 129, 129, 131, 118, 124, 124, 144, 127, 109, 123, 125, 134, 140, 115, 138, 131, 125, 130, 119, 126, 135, 141, 130, 123, 124, 130, 122, 139, 121, 118, 102, 107, 123, 126, 119, 117, 117, 120, 125, 137, 135, 122, 128, 115, 115, 123, 128, 106, 129, 135, 129, 143, 137, 135, 114, 122, 130, 112, 118, 130, 110, 125, 133, 137, 122, 131, 136, 110, 133, 108, 113, 122, 140, 121, 114, 131, 118, 134, 120, 129, 118, 119, 127, 153, 122, 126, 126, 107, 108, 120, 119, 122, 121, 114, 142, 132, 143, 136, 128, 131, 122, 104, 132, 130, 129, 123, 118, 129, 120, 104, 129, 123, 125, 125, 114, 152, 109, 132, 132, 121, 106, 123, 114, 137, 129, 110, 113, 134, 118, 120, 123, 133, 121, 111, 116, 127, 110, 117, 118, 124, 137, 122, 134, 128, 124, 129, 119, 133, 120, 123, 123, 116, 116, 127, 123, 126, 124, 140, 125, 131, 123, 133, 151, 137, 120, 131, 148, 139, 123, 124, 132, 117, 118, 141, 130, 139, 139, 132, 137, 122, 120, 109, 116, 120, 131, 114, 137, 108, 118, 120, 120, 131, 144, 126, 130, 127, 113, 122, 133, 136, 126, 110, 126, 120, 133, 120, 112, 123, 115, 123, 144, 133, 132, 122, 121, 126, 128, 119, 127, 138, 123, 119, 132, 125, 113, 127, 130, 119, 124, 136, 122, 135, 115, 113, 133, 132, 121, 139, 123, 111, 121, 118, 135, 135, 117, 126, 118, 134, 162, 135, 139, 122, 138, 117, 137, 129, 114, 123, 118, 128, 123, 124, 125, 114, 136, 132, 117, 120, 117, 133, 132, 130, 136, 119, 139, 122, 120, 120, 128, 129, 124, 135, 125, 108, 125, 110, 126, 105, 127, 131, 118, 127, 127, 142, 139, 120, 133, 132, 126, 126, 123, 141, 133, 136, 116, 119, 123, 147, 118, 148, 125, 118, 118, 109, 131, 117, 110, 112, 143, 114, 113, 127, 109, 137, 112, 133, 123, 125, 125, 134, 104, 130, 114, 155, 130, 117, 135, 138, 113, 144, 134, 110, 133, 121, 129, 127, 129, 106, 122, 121, 134, 139, 126, 117, 132, 138, 122, 141, 125, 138, 128, 134, 115, 138, 128, 133, 142, 117, 148, 144, 130, 125, 136, 123, 135, 128, 117, 126, 133, 129, 116, 137, 127, 133, 132, 144, 127, 142, 116, 118, 126, 129, 127, 114, 121, 121, 132, 134, 107, 118, 127, 117, 123, 105, 122, 141, 114, 118, 112, 115, 130, 123, 127, 129, 117, 126, 127, 118, 135, 125, 113, 112, 117, 137, 120, 122, 129, 121, 127, 114, 132, 121, 121, 120, 102, 114, 134, 130, 126, 107, 113, 125, 119, 126, 134, 120, 150, 112, 131, 124, 117, 133, 129, 111, 123, 130, 110, 118, 105, 124, 127, 132, 114, 143, 141, 113, 130, 141, 141, 127, 123, 125, 128, 131, 116, 111, 118, 110, 114, 112, 141, 113, 117, 127, 116, 149, 135, 128, 132, 127, 120, 119, 108, 121, 125, 120, 119, 113, 120, 132, 136, 124, 117, 123, 129, 140, 135, 115, 124, 102, 122, 121, 137, 133, 123, 122, 117, 140, 136, 113, 115, 132, 125, 115, 133, 133, 117, 111, 129, 138, 135, 126, 122, 133, 110, 117, 119, 127, 115, 124, 142, 132, 133, 126, 129, 123, 137, 120, 106, 129, 121, 112, 118, 129, 118, 145, 131, 119, 121, 143, 135, 120, 132, 132, 123, 117, 125, 118, 129, 135, 105, 145, 116, 112, 149, 112, 116, 103, 135, 114, 124, 121, 118, 123, 109, 126, 123, 126, 127, 138, 118, 127, 139, 142, 118, 127, 124, 128, 113, 119, 110, 134, 125, 136, 121, 119, 121, 154, 125, 136, 145, 132, 117, 141, 135, 117, 137, 122, 140, 116, 128, 117, 135, 133, 111, 118, 125, 112, 135, 138, 116, 141, 108, 134, 128, 121, 103, 133, 129, 115, 124, 123, 109, 131, 123, 137, 121, 104, 127, 120, 132, 145, 118, 116, 144, 117, 145, 120, 142, 136, 115, 119, 122, 129, 125, 122, 118, 136, 127, 115, 122, 108, 120, 144, 120, 118, 120, 116, 129, 112, 147, 128, 130, 136, 115, 136, 117, 145, 116, 124, 134, 138, 123, 117, 138, 124, 129, 140, 135, 137, 138, 126, 137, 128, 126, 127, 122, 106, 113, 135, 132, 123, 121, 131, 123, 115, 107, 119, 130, 126, 139, 118, 130, 115, 136, 124, 137, 115, 115, 134, 132, 140, 136, 121, 124, 135, 131, 109, 117, 111, 129, 117, 134, 130, 130, 120, 134, 115, 133, 128, 123, 124, 128, 111, 113, 132, 139, 112, 109, 131, 131, 130, 127, 116, 110, 124, 120, 124, 115, 119, 142, 118, 121, 126, 128, 110, 146, 147, 125, 154, 127, 127, 133, 112, 125, 145, 141, 117, 124, 107, 110, 128, 115, 135, 126, 125, 128, 129, 131, 129, 135, 115, 115, 125, 122, 121, 137, 137, 116, 119, 107, 127, 124, 139, 129, 131, 138, 127, 127, 129, 116, 128, 132, 124, 137, 121, 118, 143, 124, 113, 131, 131, 116, 140, 151, 128, 129, 121, 132, 126, 120, 120, 114, 131, 132, 110, 113, 132, 110, 136, 130, 106, 126, 132, 134, 127, 117, 137, 128, 125, 144, 120, 127, 119, 142, 125, 129, 130, 115, 121, 132, 126, 133, 132, 126, 102, 128, 143, 105, 130, 134, 138, 143, 117, 130, 111, 120, 130, 130, 113, 131, 126, 121, 97, 135, 116, 128, 144, 142, 121, 141, 124, 117, 127, 134, 134, 124, 149, 134, 140, 124, 131, 122, 97, 119, 135, 133, 117, 134, 137, 135, 113, 138, 127, 124, 125, 120, 125, 122, 120, 106, 129, 126, 134, 120, 124, 133, 125, 118, 116, 137, 124, 129, 121, 156, 126, 121, 118, 119, 116, 107, 106, 135, 115, 105, 113, 127, 131, 121, 140, 128, 109, 124, 111, 139, 121, 108, 118, 116, 128, 140, 122, 130, 131, 122, 131, 111, 128, 122, 112, 119, 126, 129, 127, 126, 127, 121, 125, 129, 119, 123, 107, 149, 149, 133, 147, 122, 143, 139, 132, 131, 127, 133, 133, 147, 115, 117, 121, 123, 123, 144, 130, 124, 143, 129, 113, 119, 134, 122, 124, 125, 115, 122, 115, 134, 95, 124, 121, 113, 108, 133, 122, 107, 123, 111, 135, 118, 118, 127, 118, 140, 149, 128, 121, 126, 139, 121, 134, 123, 139, 114, 104, 127, 122, 114, 137, 142, 144, 130, 127, 115, 134, 134, 114, 119, 122, 123, 122, 125, 125, 113, 133, 134, 120, 135, 128, 124, 144, 115, 123, 139, 115, 111, 129, 108, 126, 120, 124, 134, 126, 126, 131, 111, 111, 114, 111, 107, 128, 121, 126, 130, 130, 120, 121, 117, 128, 121, 129, 132, 125, 112, 133, 129, 138, 127, 120, 132, 130, 124, 135, 148, 136, 118, 132, 117, 125, 126, 130, 124, 131, 135, 138, 114, 121, 122, 134, 107, 129, 118, 122, 122, 145, 122, 123, 119, 134, 112, 120, 131, 110, 124, 129, 104, 123, 135, 120, 124, 117, 122, 139, 113, 132, 115, 122, 106, 124, 121, 127, 150, 126, 134, 147, 107, 121, 113, 120, 120, 120, 121, 115, 126, 115, 136, 128, 144, 134, 141, 129, 123, 127, 126, 143, 130, 149, 128, 130, 123, 130, 124, 139, 128, 127, 107, 127, 135, 108, 116, 144, 123, 126, 150, 114, 159, 117, 104, 115, 99, 109, 120, 127, 129, 132, 122, 141, 137, 126, 136, 120, 129, 120, 123, 113, 123, 124, 128, 121, 126, 108, 137, 113, 118, 121, 121, 131, 131, 127, 130, 146, 123, 144, 142, 129, 137, 123, 129, 124, 115, 142, 119, 114, 145, 112, 124, 126, 110, 125, 105, 127, 127, 132, 120, 124, 126, 132, 122, 119, 122, 108, 147, 117, 123, 114, 120, 123, 133, 122, 129, 130, 136, 138, 140, 118, 130, 115, 129, 115, 120, 109, 135, 126, 120, 127, 122, 137, 108, 108, 120, 130, 112, 120, 118, 114, 122, 137, 145, 127, 132, 143, 137, 138, 110, 118, 111, 113, 126, 122, 123, 121, 126, 131, 135, 130, 139, 140, 133, 147, 119, 133, 127, 137, 130, 122, 133, 125, 144, 111, 116, 121, 114, 121, 136, 122, 122, 125, 116, 116, 125, 116, 120, 123, 135, 116, 125, 110, 123, 126, 117, 129, 132, 125, 129, 116, 127, 122, 120, 129, 128, 127, 106, 136, 139, 123, 118, 136, 131, 129, 128, 116, 125, 134, 139, 130, 105, 111, 111, 141, 127, 139, 136, 127, 110, 115, 112, 119, 130, 117, 100, 121, 111, 119, 139, 118, 138, 131, 128, 109, 146, 122, 138, 135, 138, 140, 130, 130, 131, 108, 135, 139, 115, 131, 126, 122, 126, 154, 132, 133, 129, 126, 128, 115, 133, 137, 130, 113, 130, 118, 124, 134, 119, 129, 116, 142, 117, 123, 120, 103, 121, 119, 122, 145, 121, 120, 126, 142, 125, 131, 123, 125, 139, 114, 105, 112, 148, 114, 151, 126, 133, 121, 130, 121, 138, 146, 138, 129, 122, 122, 114, 138, 127, 103, 127, 140, 116, 116, 120, 129, 144, 112, 116, 131, 134, 123, 119, 141, 115, 120, 104, 127, 129, 141, 116, 132, 114, 114, 121, 118, 146, 128, 126, 117, 100, 131, 114, 107, 126, 119, 120, 139, 137, 118, 114, 148, 145, 125, 119, 118, 124, 116, 124, 129, 128, 132, 123, 130, 115, 135, 128, 143, 125, 132, 134, 120, 132, 122, 130, 112, 114, 131, 144, 130, 130, 127, 100, 130, 114, 141, 130, 147, 121, 105, 118, 112, 113, 123, 127, 124, 129, 144, 130, 134, 143, 138, 118, 146, 120, 117, 126, 131, 119, 130, 119, 119, 128, 120, 121, 113, 108, 121, 152, 156, 115, 120, 128, 124, 122, 126, 121, 118, 123, 123, 122, 115, 121, 128, 120, 126, 132, 103, 141, 132, 120, 129, 134, 121, 131, 127, 126, 136, 138, 117, 120, 112, 115, 129, 122, 129, 116, 139, 133, 141, 116, 109, 135, 106, 130, 121, 131, 142, 123, 119, 108, 118, 116, 112, 134, 141, 123, 116, 113, 120, 118, 121, 117, 149, 152, 120, 132, 112, 122, 126, 124, 111, 128, 137, 115, 128, 145, 120, 135, 132, 113, 125, 132, 144, 120, 145, 122, 122, 133, 119, 144, 138, 136, 133, 116, 138, 135, 137, 145, 115, 120, 138, 113, 132, 159, 118, 114, 145, 126, 122, 128, 124, 131, 131, 139, 135, 130, 142, 142, 126, 141, 119, 126, 122, 140, 135, 109, 120, 127, 149, 113, 121, 125, 131, 138, 121, 120, 114, 129, 119, 137, 143, 136, 145, 118, 127, 152, 111, 122, 137, 125, 126, 116, 140, 126, 120, 124, 135, 113, 124, 116, 123, 141, 119, 124, 130, 122, 129, 108, 113, 133, 120, 119, 128, 126, 131, 119, 137, 119, 123, 134, 117, 106, 120, 121, 131, 127, 116, 112, 133, 135, 136, 129, 123, 129, 104, 106, 143, 124, 111, 109, 124, 123, 131, 148, 133, 138, 120, 127, 127, 106, 113, 126, 113, 124, 111, 116, 122, 125, 139, 116, 115, 130, 142, 142, 121, 121, 116, 119, 110, 137, 120, 120, 114, 141, 141, 143, 126, 127, 120, 133, 128, 130, 136, 120, 125, 126, 137, 113, 115, 130, 116, 102, 133, 110, 117, 136, 133, 125, 127, 126, 122, 130, 132, 125, 138, 136, 125, 135, 110, 139, 135, 127, 113, 114, 132, 114, 127, 139, 135, 108, 133, 131, 129, 128, 139, 123, 136, 125, 117, 115, 133, 124, 131, 127, 128, 120, 119, 121, 117, 132, 125, 118, 104, 135, 115, 109, 105, 124, 109, 107, 130, 141, 139, 125, 120, 113, 130, 121, 128, 111, 129, 113, 135, 123, 114, 130, 116, 128, 127, 107, 112, 124, 138, 120, 126, 125, 131, 119, 144, 115, 137, 130, 140, 121, 107, 122, 152, 116, 124, 132, 144, 129, 134, 120, 124, 143, 132, 132, 133, 123, 127, 119, 111, 135, 129, 130, 135, 122, 111, 139, 128, 121, 116, 119, 122, 119, 138, 123, 141, 129, 137, 118, 135, 121, 123, 138, 126, 129, 127, 125, 135, 123, 99, 138, 101, 127, 126, 129, 125, 129, 145, 136, 124, 101, 135, 113, 144, 141, 130, 130, 121, 111, 111, 142, 117, 120, 118, 123, 115, 109, 122, 128, 121, 129, 114, 138, 130, 110, 104, 116, 121, 139, 133, 132, 127, 127, 146, 127, 152, 111, 118, 140, 125, 141, 140, 117, 124, 130, 121, 120, 116, 146, 130, 147, 123, 112, 117, 138, 140, 115, 119, 112, 134, 139, 124, 127, 125, 133, 145, 114, 113, 117, 131, 126, 135, 135, 126, 132, 121, 130, 108, 119, 118, 133, 124, 121, 117, 115, 122, 145, 124, 101, 137, 126, 127, 125, 121, 128, 123, 136, 136, 128, 117, 138, 114, 119, 126, 125, 129, 119, 124, 143, 111, 136, 127, 131, 116, 121, 118, 118, 122, 148, 135, 121, 141, 120, 134, 111, 134, 135, 139, 122, 107, 114, 102, 140, 121, 137, 122, 132, 133, 122, 125, 147, 126, 137, 131, 137, 112, 138, 117, 138, 133, 133, 137, 123, 118, 123, 106, 105, 128, 123, 127, 116, 114, 118, 135, 124, 115, 122, 114, 130, 137, 132, 125, 117, 138, 118, 129, 134, 124, 137, 108, 110, 143, 122, 131, 133, 122, 127, 123, 124, 127, 125, 113, 125, 118, 136, 127, 145, 130, 110, 133, 126, 122, 123, 119, 132, 122, 126, 139, 119, 151, 142, 124, 128, 141, 141, 128, 128, 123, 124, 115, 122, 118, 102, 135, 127, 114, 117, 129, 133, 121, 124, 128, 122, 123, 131, 146, 121, 124, 127, 126, 118, 122, 113, 142, 124, 116, 113, 127, 112, 141, 139, 128, 110, 136, 134, 115, 119, 164, 125, 136, 122, 124, 121, 131, 100, 119, 148, 117, 124, 138, 141, 111, 126, 109, 125, 116, 120, 138, 119, 109, 138, 127, 120, 113, 136, 124, 136, 122, 116, 124, 108, 112, 117, 117, 132, 134, 124, 130, 140, 128, 133, 121, 114, 146, 137, 128, 128, 134, 119, 119, 107, 122, 118, 125, 135, 125, 125, 111, 144, 144, 110, 115, 124, 126, 147, 125, 113, 141, 139, 119, 132, 116, 127, 115, 112, 118, 159, 125, 136, 120, 115, 127, 139, 128, 136, 134, 132, 128, 117, 126, 139, 104, 132, 142, 147, 140, 128, 121, 135, 125, 122, 122, 119, 109, 117, 112, 118, 124, 122, 122, 122, 118, 116, 127, 115, 120, 134, 118, 152, 138, 130, 113, 127, 122, 121, 117, 122, 117, 126, 113, 137, 129, 134, 136, 121, 116, 118, 142, 129, 127, 121, 124, 135, 125, 115, 120, 120, 116, 134, 129, 124, 127, 125, 123, 123, 139, 134, 111, 121, 116, 141, 126, 116, 125, 127, 130, 129, 137, 123, 104, 131, 124, 129, 127, 128, 126, 127, 134, 122, 119, 123, 120, 130, 119, 125, 133, 118, 124, 122, 129, 144, 116, 120, 132, 131, 129, 113, 131, 126, 125, 137, 126, 138, 129, 110, 117, 119, 122, 118, 103, 136, 118, 137, 142, 120, 118, 122, 101, 127, 139, 118, 131, 135, 114, 127, 127, 113, 136, 115, 125, 134, 130, 144, 133, 129, 121, 126, 111, 126, 123, 128, 135, 131, 116, 142, 119, 106, 101, 119, 130, 144, 126, 110, 131, 129, 103, 115, 113, 128, 134, 113, 134, 108, 135, 125, 123, 110, 141, 128, 128, 115, 114, 135, 135, 128, 141, 138, 123, 115, 130, 112, 119, 112, 113, 126, 117, 118, 137, 134, 125, 117, 137, 122, 124, 129, 125, 129, 123, 128, 110, 146, 112, 122, 130, 123, 129, 139, 123, 124, 111, 120, 130, 120, 130, 141, 155, 146, 116, 108, 119, 112, 122, 125, 132, 139, 141, 113, 115, 116, 122, 120, 124, 125, 122, 100, 127, 127, 132, 128, 125, 118, 137, 137, 117, 113, 110, 102, 129, 119, 114, 105, 133, 132, 117, 127, 129, 119, 117, 134, 120, 121, 117, 131, 118, 143, 125, 108, 118, 122, 132, 123, 126, 137, 123, 117, 106, 136, 76, 120, 128, 115, 144, 133, 122, 125, 121, 115, 127, 120, 122, 142, 142, 114, 139, 137, 134, 123, 117, 135, 134, 134, 117, 121, 126, 131, 140, 134, 120, 134, 109, 127, 114, 134, 127, 136, 140, 118, 136, 121, 136, 121, 128, 115, 125, 122, 122, 118, 116, 132, 113, 122, 128, 114, 111, 115, 123, 137, 98, 114, 128, 115, 115, 140, 121, 106, 125, 129, 134, 131, 143, 124, 127, 136, 120, 106, 105, 125, 122, 127, 121, 129, 119, 137, 119, 116, 130, 119, 134, 130, 138, 121, 115, 118, 133, 138, 116, 132, 112, 124, 125, 112, 136, 129, 114, 124, 131, 140, 125, 112, 115, 123, 113, 122, 129, 143, 117, 136, 121, 122, 114, 121, 104, 100, 127, 124, 123, 133, 134, 133, 135, 123, 138, 116, 117, 121, 138, 124, 126, 132, 130, 129, 120, 141, 121, 127, 121, 147, 131, 138, 122, 137, 123, 124, 127, 131, 117, 119, 129, 133, 127, 123, 118, 100, 147, 127, 116, 116, 121, 134, 110, 122, 120, 122, 146, 110, 113, 134, 124, 131, 118, 117, 117, 127, 110, 121, 127, 115, 139, 117, 139, 123, 130, 134, 134, 124, 132, 128, 129, 122, 115, 133, 119, 126, 128, 104, 122, 117, 137, 124, 105, 128, 134, 104, 124, 106, 105, 109, 118, 118, 118, 123, 123, 133, 106, 125, 114, 116, 119, 131, 126, 115, 123, 105, 105, 131, 125, 131, 130, 132, 115, 112, 144, 120, 133, 124, 126, 131, 128, 127, 126, 133, 148, 121, 127, 111, 133, 130, 117, 114, 133, 136, 115, 107, 132, 116, 120, 122, 130, 106, 136, 126, 138, 126, 111, 128, 118, 130, 136, 115, 106, 128, 135, 113, 114, 138, 144, 142, 147, 130, 115, 137, 112, 126, 116, 128, 124, 134, 131, 117, 119, 123, 118, 126, 120, 141, 140, 142, 132, 123, 118, 127, 121, 121, 130, 123, 127, 104, 123, 123, 130, 153, 97, 142, 126, 92, 124, 143, 135, 135, 119, 119, 135, 148, 109, 134, 129, 131, 121, 163, 132, 135, 108, 123, 136, 126, 121, 118, 136, 113, 138, 126, 134, 125, 135, 122, 113, 140, 122, 146, 108, 132, 129, 91, 121, 121, 118, 125, 108, 133, 121, 143, 129, 131, 142, 119, 125, 127, 141, 114, 130, 128, 126, 134, 122, 130, 124, 126, 126, 132, 131, 130, 138, 133, 120, 122, 139, 123, 137, 114, 129, 117, 129, 162, 141, 138, 113, 109, 128, 135, 141, 122, 114, 132, 121, 122, 129, 135, 124, 112, 110, 117, 125, 124, 138, 142, 121, 107, 123, 120, 137, 125, 132, 123, 117, 111, 124, 126, 138, 124, 139, 142, 120, 135, 135, 131, 130, 128, 134, 132, 115, 150, 134, 131, 148, 139, 106, 122, 122, 125, 126, 113, 144, 123, 119, 128, 147, 121, 121, 123, 126, 113, 112, 115, 119, 158, 120, 138, 136, 137, 114, 138, 136, 124, 116, 110, 122, 135, 120, 116, 118, 128, 117, 126, 137, 120, 110, 122, 124, 116, 130, 115, 127, 134, 146, 113, 130, 147, 127, 117, 134, 109, 139, 133, 115, 113, 129, 132, 127, 115, 120, 128, 111, 136, 135, 122, 128, 114, 122, 115, 118, 107, 123, 138, 115, 149, 125, 99, 129, 115, 128, 139, 130, 111, 135, 135, 121, 125, 133, 139, 128, 135, 116, 122, 133, 117, 125, 135, 121, 121, 121, 115, 133, 122, 123, 127, 129, 152, 138, 132, 144, 119, 124, 117, 121, 119, 133, 122, 127, 111, 156, 125, 130, 115, 140, 149, 114, 137, 135, 115, 139, 137, 128, 119, 117, 125, 120, 118, 147, 139, 147, 134, 132, 136, 120, 131, 126, 112, 127, 121, 139, 112, 139, 108, 126, 120, 104, 137, 116, 129, 137, 121, 120, 105, 114, 132, 124, 124, 122, 137, 114, 122, 123, 138, 136, 124, 119, 104, 140, 136, 102, 119, 122, 118, 131, 135, 167, 131, 123, 119, 122, 135, 117, 128, 132, 122, 106, 141, 141, 127, 134, 112, 135, 127, 120, 130, 112, 133, 133, 123, 138, 130, 114, 111, 140, 128, 126, 122, 129, 128, 123, 125, 132, 136, 127, 117, 128, 130, 123, 136, 117, 128, 110, 128, 138, 147, 126, 119, 124, 133, 131, 128, 109, 121, 102, 126, 137, 107, 120, 107, 135, 111, 137, 112, 136, 108, 130, 134, 128, 143, 135, 118, 130, 134, 156, 116, 115, 124, 99, 126, 101, 135, 105, 127, 124, 128, 122, 134, 128, 145, 136, 129, 126, 137, 118, 130, 112, 142, 132, 123, 129, 140, 139, 133, 126, 135, 135, 146, 147, 131, 125, 96, 124, 123, 115, 94, 147, 123, 132, 134, 149, 117, 143, 119, 136, 138, 133, 122, 122, 126, 108, 122, 121, 126, 137, 134, 124, 134, 117, 104, 113, 134, 127, 145, 123, 118, 120, 119, 114, 100, 133, 125, 125, 119, 126, 132, 118, 133, 148, 121, 132, 118, 106, 136, 137, 121, 130, 125, 131, 126, 131, 130, 123, 123, 121, 130, 145, 105, 120, 122, 129, 115, 103, 133, 122, 115, 138, 125, 130, 118, 133, 125, 119, 119, 120, 115, 140, 121, 115, 133, 92, 117, 121, 117, 132, 141, 115, 108, 110, 126, 123, 134, 138, 125, 141, 119, 121, 124, 128, 158, 110, 134, 130, 122, 119, 130, 123, 139, 147, 128, 148, 141, 121, 146, 107, 115, 123, 117, 125, 136, 129, 129, 134, 111, 132, 137, 116, 130, 112, 129, 115, 122, 135, 135, 118, 114, 118, 120, 129, 122, 135, 122, 115, 124, 138, 111, 116, 113, 137, 129, 114, 106, 123, 128, 121, 135, 148, 127, 121, 134, 126, 138, 131, 130, 157, 108, 128, 132, 134, 112, 130, 118, 125, 107, 118, 134, 144, 133, 132, 105, 132, 117, 138, 121, 123, 129, 111, 135, 129, 134, 115, 134, 117, 136, 137, 156, 119, 116, 129, 127, 129, 131, 127, 129, 133, 120, 129, 119, 139, 119, 142, 145, 136, 140, 128, 129, 117, 109, 143, 113, 125, 120, 132, 131, 126, 143, 135, 113, 118, 137, 120, 139, 128, 135, 144, 114, 114, 103, 144, 119, 130, 117, 122, 126, 141, 123, 129, 127, 118, 123, 139, 120, 129, 135, 113, 136, 101, 136, 129, 126, 117, 120, 156, 118, 131, 132, 117, 138, 108, 138, 110, 125, 130, 126, 121, 132, 119, 132, 124, 123, 124, 140, 122, 135, 122, 117, 113, 119, 148, 139, 114, 116, 133, 138, 124, 157, 125, 122, 122, 120, 120, 119, 127, 135, 146, 115, 121, 120, 128, 125, 124, 112, 135, 123, 126, 114, 139, 135, 119, 111, 137, 114, 124, 118, 116, 114, 125, 120, 125, 136, 118, 117, 122, 133, 110, 133, 131, 136, 116, 113, 143, 128, 138, 135, 132, 150, 118, 126, 127, 126, 137, 125, 125, 124, 114, 129, 122, 129, 127, 129, 131, 126, 118, 146, 128, 122, 116, 127, 117, 126, 119, 127, 126, 129, 105, 127, 116, 121, 132, 126, 119, 111, 143, 131, 123, 133, 114, 117, 131, 128, 94, 136, 135, 116, 129, 135, 130, 134, 126, 130, 135, 127, 138, 109, 123, 129, 130, 122, 128, 122, 120, 130, 129, 127, 130, 123, 138, 117, 135, 124, 120, 119, 124, 134, 121, 127, 135, 127, 117, 110, 128, 129, 137, 106, 130, 104, 125, 117, 131, 119, 121, 132, 120, 115, 135, 115, 111, 117, 137, 120, 112, 140, 117, 121, 125, 125, 128, 124, 136, 120, 113, 108, 124, 109, 128, 115, 133, 131, 128, 123, 138, 127, 115, 138, 129, 127, 141, 129, 119, 136, 130, 124, 129, 124, 115, 127, 130, 144, 121, 136, 129, 132, 144, 121, 137, 127, 129, 125, 125, 120, 120, 117, 114, 135, 120, 125, 113, 124, 117, 128, 150, 119, 123, 117, 120, 116, 124, 119, 138, 133, 127, 119, 112, 133, 115, 143, 111, 112, 127, 130, 126, 127, 123, 128, 126, 119, 131, 120, 110, 138, 143, 125, 115, 110, 127, 130, 125, 132, 133, 136, 112, 116, 141, 116, 130, 123, 110, 122, 113, 129, 128, 120, 127, 124, 124, 118, 127, 133, 137, 125, 133, 125, 122, 120, 122, 117, 125, 122, 126, 132, 133, 124, 124, 101, 126, 126, 129, 136, 136, 136, 142, 123, 106, 128, 141, 121, 139, 118, 146, 107, 132, 129, 113, 111, 124, 126, 122, 124, 111, 113, 138, 127, 117, 136, 137, 117, 121, 110, 126, 125, 131, 116, 136, 129, 137, 108, 132, 121, 122, 111, 104, 116, 125, 131, 139, 130, 127, 128, 129, 120, 147, 125, 119, 122, 134, 121, 127, 137, 135, 140, 123, 123, 134, 119, 116, 123, 115, 115, 111, 124, 122, 124, 121, 136, 115, 129, 120, 119, 121, 130, 107, 129, 110, 139, 115, 143, 117, 129, 120, 114, 137, 115, 129, 110, 118, 131, 125, 133, 121, 137, 141, 136, 143, 120, 102, 123, 134, 128, 126, 136, 117, 113, 144, 156, 120, 122, 127, 125, 132, 122, 121, 134, 118, 138, 125, 115, 105, 124, 126, 136, 137, 120, 121, 124, 117, 126, 115, 115, 151, 127, 126, 114, 118, 134, 125, 130, 122, 126, 129, 116, 150, 124, 121, 146, 114, 132, 113, 136, 130, 107, 107, 119, 122, 133, 119, 116, 149, 130, 116, 124, 136, 125, 128, 108, 130, 119, 130, 133, 129, 131, 132, 119, 123, 128, 128, 136, 117, 122, 151, 135, 124, 122, 123, 125, 131, 125, 133, 138, 110, 118, 124, 133, 116, 133, 115, 129, 119, 136, 120, 130, 136, 123, 122, 142, 138, 130, 137, 112, 107, 118, 109, 132, 120, 142, 125, 130, 121, 115, 119, 129, 143, 107, 118, 127, 140, 131, 133, 135, 128, 120, 130, 114, 104, 108, 134, 129, 123, 101, 126, 132, 153, 128, 115, 131, 135, 121, 116, 116, 143, 139, 129, 117, 120, 110, 124, 114, 113, 126, 117, 132, 118, 117, 127, 133, 123, 116, 140, 140, 113, 129, 117, 128, 134, 114, 141, 136, 128, 131, 135, 132, 137, 104, 121, 124, 116, 116, 129, 135, 126, 138, 134, 129, 133, 127, 111, 116, 114, 129, 129, 110, 152, 122, 154, 114, 137, 113, 105, 119, 129, 124, 133, 119, 118, 135, 131, 133, 138, 129, 130, 139, 117, 112, 130, 125, 113, 128, 148, 128, 125, 127, 127, 119, 114, 124, 129, 130, 113, 130, 123, 122, 122, 108, 124, 114, 131, 123, 137, 119, 122, 123, 113, 136, 137, 132, 123, 144, 139, 125, 109, 106, 130, 122, 124, 132, 133, 113, 131, 126, 106, 121, 128, 126, 126, 101, 133, 123, 132, 134, 114, 125, 130, 131, 107, 123, 117, 130, 126, 137, 111, 124, 114, 122, 116, 132, 119, 126, 108, 110, 124, 125, 142, 135, 125, 118, 129, 110, 121, 112, 133, 119, 122, 119, 116, 136, 123, 133, 120, 131, 124, 121, 104, 131, 135, 137, 119, 135, 104, 132, 105, 137, 121, 132, 119, 126, 131, 138, 123, 114, 133, 123, 130, 135, 127, 136, 137, 127, 125, 124, 134, 117, 129, 126, 124, 129, 117, 120, 127, 128, 136, 138, 140, 135, 128, 128, 112, 136, 142, 140, 117, 125, 129, 142, 115, 100, 133, 106, 104, 116, 118, 144, 124, 129, 122, 144, 126, 109, 114, 137, 154, 133, 117, 132, 115, 121, 128, 127, 125, 131, 116, 137, 118, 134, 120, 130, 139, 136, 133, 129, 124, 132, 131, 120, 120, 122, 131, 119, 118, 136, 121, 116, 123, 118, 137, 110, 127, 136, 129, 102, 119, 146, 116, 114, 119, 126, 134, 135, 136, 127, 131, 118, 145, 139, 111, 124, 108, 145, 133, 133, 151, 147, 129, 131, 122, 136, 140, 127, 114, 124, 134, 108, 113, 115, 108, 140, 118, 124, 139, 129, 132, 117, 123, 121, 150, 115, 136, 140, 120, 137, 139, 115, 116, 151, 141, 125, 139, 117, 115, 117, 122, 120, 109, 115, 140, 125, 135, 126, 132, 124, 131, 143, 122, 126, 127, 129, 133, 116, 115, 137, 125, 117, 124, 128, 117, 108, 130, 129, 125, 143, 125, 121, 129, 135, 122, 127, 117, 131, 114, 127, 131, 107, 126, 127, 116, 120, 123, 142, 130, 121, 134, 127, 104, 118, 126, 138, 124, 146, 140, 133, 131, 138, 126, 151, 113, 122, 141, 138, 130, 142, 119, 126, 118, 132, 132, 132, 116, 117, 141, 124, 109, 125, 112, 124, 136, 122, 111, 108, 132, 140, 126, 124, 124, 130, 133, 136, 116, 135, 112, 137, 135, 144, 125, 145, 126, 127, 123, 127, 117, 120, 128, 93, 128, 121, 107, 134, 130, 138, 116, 131, 128, 121, 134, 130, 148, 121, 122, 133, 113, 116, 115, 128, 130, 127, 109, 114, 142, 139, 125, 141, 123, 137, 131, 121, 107, 104, 113, 154, 98, 119, 125, 125, 136, 126, 132, 124, 117, 121, 135, 132, 114, 121, 131, 126, 104, 132, 122, 138, 112, 116, 120, 127, 120, 134, 123, 136, 134, 132, 114, 123, 137, 122, 127, 128, 126, 133, 118, 119, 115, 118, 130, 117, 120, 129, 119, 143, 132, 128, 133, 141, 127, 134, 130, 116, 119, 114, 131, 124, 118, 125, 129, 135, 140, 118, 128, 118, 140, 120, 112, 124, 118, 126, 129, 142, 128, 116, 110, 163, 129, 98, 122, 117, 114, 114, 121, 119, 140, 109, 143, 128, 151, 131, 120, 103, 128, 138, 116, 125, 142, 133, 87, 143, 121, 126, 124, 134, 134, 133, 116, 110, 115, 128, 112, 126, 100, 120, 117, 136, 117, 136, 108, 115, 130, 124, 112, 114, 128, 143, 130, 123, 134, 130, 128, 130, 130, 112, 117, 113, 133, 132, 116, 166, 121, 129, 119, 137, 114, 117, 149, 119, 130, 134, 130, 113, 132, 121, 115, 123, 134, 129, 123, 95, 138, 134, 111, 114, 116, 125, 121, 127, 115, 113, 127, 123, 129, 158, 122, 125, 136, 141, 122, 120, 121, 128, 154, 119, 111, 122, 118, 123, 108, 118, 125, 108, 116, 132, 125, 121, 132, 121, 131, 119, 125, 141, 128, 111, 118, 129, 125, 138, 121, 130, 128, 115, 124, 121, 132, 127, 127, 119, 126, 116, 120, 120, 140, 128, 112, 120, 106, 117, 118, 116, 119, 112, 133, 142, 117, 124, 106, 119, 132, 114, 125, 120, 112, 123, 131, 138, 120, 151, 123, 119, 134, 123, 125, 105, 124, 154, 115, 119, 125, 123, 127, 77, 153, 133, 117, 140, 112, 142, 122, 129, 108, 123, 135, 130, 133, 138, 120, 134, 128, 131, 111, 133, 134, 122, 124, 122, 124, 126, 127, 126, 131, 136, 121, 128, 130, 110, 119, 120, 128, 124, 134, 138, 112, 118, 116, 113, 109, 143, 134, 119, 146, 119, 106, 130, 123, 128, 116, 112, 132, 118, 126, 125, 125, 91, 105, 121, 133, 127, 66, 115, 130, 126, 130, 108, 117, 131, 121, 125, 150, 128, 132, 131, 132, 134, 138, 126, 127, 145, 138, 125, 132, 137, 119, 119, 124, 122, 123, 133, 119, 112, 119, 134, 136, 135, 125, 132, 115, 120, 146, 119, 117, 130, 147, 122, 131, 126, 115, 127, 112, 144, 127, 128, 129, 128, 123, 131, 119, 139, 128, 129, 119, 126, 126, 135, 138, 123, 130, 124, 132, 134, 129, 128, 128, 129, 130, 133, 129, 117, 122, 129, 126, 104, 120, 126, 140, 120, 119, 143, 121, 129, 117, 115, 129, 126, 135, 135, 134, 128, 135, 135, 131, 115, 110, 130, 133, 125, 111, 144, 120, 139, 133, 139, 131, 133, 125, 118, 113, 132, 122, 125, 118, 141, 114, 137, 135, 126, 123, 128, 135, 119, 122, 139, 135, 122, 130, 122, 115, 125, 118, 122, 122, 127, 117, 127, 116, 131, 126, 126, 128, 129, 119, 118, 124, 133, 126, 126, 135, 142, 127, 103, 131, 123, 140, 114, 124, 137, 122, 121, 125, 118, 123, 133, 124, 145, 144, 115, 107, 106, 119, 133, 116, 126, 130, 128, 128, 136, 120, 119, 114, 134, 126, 129, 123, 120, 119, 118, 124, 125, 134, 117, 140, 129, 136, 112, 130, 119, 120, 140, 149, 121, 123, 133, 121, 109, 118, 127, 115, 134, 134, 104, 136, 117, 113, 127, 123, 122, 124, 137, 121, 135, 118, 127, 112, 112, 118, 148, 135, 138, 115, 128, 126, 120, 137, 137, 130, 119, 135, 130, 118, 123, 118, 129, 127, 142, 110, 117, 133, 124, 113, 115, 120, 118, 116, 130, 132, 124, 145, 118, 136, 129, 97, 117, 147, 122, 112, 127, 127, 119, 119, 108, 120, 126, 161, 143, 135, 121, 126, 127, 134, 141, 128, 121, 111, 111, 137, 124, 132, 119, 123, 127, 131, 113, 108, 150, 133, 125, 119, 141, 132, 131, 132, 118, 123, 146, 127, 129, 129, 123, 127, 132, 142, 125, 118, 117, 123, 129, 127, 145, 120, 119, 135, 140, 120, 107, 126, 137, 113, 126, 124, 136, 125, 112, 128, 110, 135, 129, 140, 133, 108, 109, 129, 114, 115, 123, 129, 130, 136, 145, 125, 128, 114, 116, 125, 121, 110, 117, 138, 116, 117, 118, 133, 114, 133, 100, 141, 144, 113, 134, 125, 113, 125, 124, 119, 119, 148, 116, 132, 124, 120, 145, 133, 126, 130, 139, 135, 123, 113, 145, 118, 87, 136, 133, 127, 111, 137, 135, 133, 125, 133, 117, 128, 127, 137, 112, 123, 108, 125, 133, 128, 147, 140, 137, 123, 117, 119, 131, 119, 140, 125, 124, 134, 163, 137, 123, 127, 126, 123, 138, 145, 131, 104, 127, 130, 117, 128, 116, 130, 125, 126, 120, 125, 122, 117, 108, 118, 119, 119, 145, 124, 110, 113, 126, 128, 116, 134, 119, 120, 115, 133, 131, 126, 117, 105, 128, 120, 120, 135, 130, 120, 135, 131, 107, 102, 137, 122, 116, 143, 128, 139, 132, 129, 123, 121, 142, 133, 130, 112, 133, 142, 126, 117, 139, 139, 131, 127, 105, 131, 112, 127, 120, 134, 89, 143, 126, 132, 134, 121, 122, 120, 111, 127, 117, 125, 130, 100, 143, 116, 132, 130, 132, 139, 127, 114, 115, 117, 133, 113, 143, 122, 138, 124, 140, 122, 119, 114, 126, 126, 127, 122, 144, 122, 117, 117, 148, 118, 134, 115, 128, 134, 131, 115, 129, 137, 115, 141, 147, 120, 113, 115, 120, 131, 123, 129, 140, 128, 134, 136, 117, 145, 118, 119, 124, 137, 135, 130, 127, 124, 116, 124, 122, 129, 115, 136, 122, 118, 113, 120, 122, 119, 136, 132, 148, 147, 117, 116, 105, 121, 126, 116, 115, 117, 155, 140, 126, 120, 103, 117, 116, 114, 114, 112, 106, 126, 125, 130, 133, 133, 120, 118, 130, 124, 122, 141, 112, 134, 137, 129, 117, 120, 144, 118, 127, 163, 103, 129, 124, 119, 106, 112, 119, 123, 131, 127, 114, 124, 127, 115, 130, 135, 126, 141, 127, 148, 113, 120, 132, 113, 115, 137, 112, 130, 136, 124, 133, 135, 131, 138, 125, 126, 154, 104, 113, 126, 110, 134, 116, 146, 126, 132, 126, 135, 132, 121, 121, 132, 123, 120, 138, 134, 141, 126, 132, 139, 131, 135, 122, 100, 132, 131, 117, 126, 127, 121, 131, 132, 129, 141, 131, 130, 115, 120, 120, 99, 121, 135, 117, 133, 131, 123, 124, 140, 135, 112, 121, 125, 134, 134, 121, 126, 117, 132, 128, 120, 112, 125, 135, 133, 106, 138, 131, 122, 120, 122, 135, 130, 130, 130, 136, 105, 140, 120, 129, 143, 124, 132, 119, 118, 133, 122, 129, 126, 119, 136, 126, 132, 121, 121, 129, 125, 132, 124, 117, 124, 134, 120, 118, 127, 118, 118, 127, 108, 108, 118, 125, 123, 116, 142, 116, 123, 122, 121, 103, 127, 114, 113, 116, 134, 137, 121, 124, 149, 118, 109, 127, 118, 142, 137, 126, 117, 123, 121, 108, 138, 143, 123, 129, 128, 106, 117, 122, 139, 119, 111, 133, 120, 132, 122, 112, 129, 137, 111, 115, 120, 133, 115, 132, 133, 141, 124, 115, 125, 101, 111, 135, 134, 129, 132, 140, 114, 125, 126, 142, 124, 131, 116, 106, 111, 124, 116, 127, 126, 126, 111, 122, 111, 120, 155, 128, 125, 136, 116, 133, 137, 117, 127, 155, 127, 119, 112, 109, 143, 129, 133, 137, 112, 112, 118, 114, 116, 118, 137, 131, 110, 143, 128, 106, 123, 124, 132, 128, 104, 139, 130, 144, 114, 116, 133, 134, 120, 143, 127, 136, 117, 146, 116, 135, 112, 119, 134, 131, 121, 113, 126, 124, 106, 134, 134, 124, 132, 137, 137, 123, 114, 144, 118, 122, 127, 124, 121, 139, 127, 130, 127, 143, 119, 106, 129, 124, 128, 154, 118, 100, 141, 124, 119, 123, 143, 130, 115, 129, 134, 130, 127, 141, 109, 124, 119, 138, 104, 129, 105, 130, 119, 127, 128, 130, 142, 108, 140, 125, 122, 103, 138, 116, 124, 133, 116, 117, 113, 135, 140, 133, 148, 127, 146, 114, 124, 119, 132, 139, 129, 126, 141, 118, 127, 127, 126, 134, 151, 156, 103, 111, 140, 143, 120, 136, 121, 123, 131, 122, 120, 127, 132, 121, 107, 142, 100, 126, 133, 106, 136, 110, 129, 135, 101, 118, 123, 123, 131, 119, 122, 123, 132, 120, 123, 140, 142, 125, 144, 126, 123, 128, 123, 116, 125, 107, 110, 125, 128, 138, 127, 146, 113, 118, 144, 123, 123, 121, 125, 140, 103, 128, 126, 153, 128, 127, 132, 120, 143, 130, 131, 121, 134, 115, 150, 123, 126, 135, 126, 128, 124, 139, 112, 109, 131, 118, 124, 136, 126, 108, 139, 126, 118, 134, 139, 118, 134, 138, 127, 120, 141, 138, 119, 131, 128, 109, 131, 125, 126, 109, 104, 115, 136, 129, 122, 110, 122, 122, 126, 108, 115, 113, 126, 132, 130, 133, 123, 131, 109, 121, 119, 152, 117, 134, 121, 124, 135, 137, 126, 132, 138, 129, 113, 116, 139, 129, 122, 130, 130, 117, 121, 104, 118, 105, 145, 120, 130, 127, 117, 134, 110, 131, 143, 119, 115, 115, 112, 115, 133, 116, 119, 126, 123, 122, 110, 129, 115, 119, 119, 120, 126, 115, 105, 125, 129, 125, 119, 125, 107, 107, 113, 112, 127, 137, 123, 130, 137, 124, 115, 107, 136, 126, 132, 140, 138, 133, 145, 118, 112, 118, 133, 128, 123, 121, 111, 107, 105, 114, 125, 120, 123, 136, 136, 101, 141, 124, 115, 134, 144, 153, 126, 146, 123, 135, 124, 115, 134, 134, 118, 136, 131, 109, 121, 163, 127, 121, 122, 116, 142, 114, 112, 123, 137, 148, 147, 129, 118, 115, 109, 127, 108, 129, 123, 122, 136, 122, 133, 118, 119, 155, 128, 125, 126, 124, 97, 134, 115, 140, 126, 151, 133, 124, 106, 118, 121, 125, 126, 128, 126, 144, 133, 123, 130, 138, 108, 146, 114, 127, 124, 111, 135, 132, 129, 113, 136, 127, 114, 132, 123, 129, 122, 135, 147, 155, 117, 122, 117, 131, 129, 135, 123, 103, 123, 116, 101, 121, 130, 113, 131, 144, 134, 120, 103, 112, 130, 118, 114, 138, 146, 142, 128, 131, 133, 138, 119, 142, 119, 108, 134, 118, 110, 127, 118, 135, 117, 137, 119, 113, 118, 132, 132, 146, 124, 130, 140, 139, 122, 109, 120, 115, 138, 159, 137, 125, 123, 110, 114, 107, 130, 110, 128, 113, 117, 111, 138, 135, 129, 127, 112, 106, 141, 133, 136, 137, 120, 121, 138, 117, 139, 112, 128, 112, 117, 132, 145, 150, 127, 116, 122, 138, 132, 117, 141, 121, 107, 117, 135, 113, 101, 127, 124, 131, 120, 144, 138, 124, 96, 132, 120, 121, 122, 148, 129, 127, 140, 127, 117, 117, 100, 114, 120, 132, 105, 115, 139, 130, 115, 123, 116, 138, 119, 118, 126, 122, 130, 134, 126, 127, 134, 118, 139, 120, 140, 118, 111, 126, 136, 116, 124, 134, 137, 123, 135, 124, 118, 121, 131, 108, 128, 112, 123, 117, 155, 125, 141, 119, 94, 134, 149, 117, 116, 111, 136, 150, 133, 130, 134, 147, 128, 126, 119, 133, 116, 119, 142, 138, 114, 130, 145, 151, 144, 108, 102, 136, 144, 121, 126, 121, 103, 137, 135, 129, 121, 120, 121, 118, 126, 118, 118, 131, 138, 117, 122, 121, 110, 120, 125, 125, 125, 146, 123, 153, 141, 109, 108, 127, 146, 140, 126, 111, 120, 115, 131, 114, 133, 123, 112, 125, 131, 133, 131, 135, 139, 128, 138, 130, 113, 96, 135, 120, 130, 139, 117, 137, 144, 125, 148, 106, 124, 135, 150, 123, 135, 115, 126, 132, 108, 125, 121, 106, 137, 136, 126, 135, 110, 118, 126, 140, 124, 110, 126, 123, 130, 144, 112, 152, 120, 120, 137, 135, 123, 131, 127, 125, 115, 142, 116, 112, 140, 119, 120, 123, 120, 119, 117, 120, 116, 126, 136, 116, 105, 93, 128, 128, 132, 139, 122, 130, 126, 138, 109, 123, 134, 137, 122, 114, 144, 139, 122, 108, 109, 109, 135, 122, 130, 135, 118, 120, 115, 120, 132, 130, 131, 105, 145, 134, 120, 135, 131, 125, 122, 132, 129, 123, 124, 125, 140, 122, 112, 131, 121, 126, 118, 104, 117, 129, 122, 132, 126, 133, 121, 136, 123, 142, 124, 120, 125, 103, 101, 121, 127, 111, 128, 122, 119, 134, 129, 111, 125, 123, 121, 116, 122, 126, 112, 123, 108, 144, 126, 132, 120, 125, 141, 113, 121, 127, 128, 144, 134, 128, 129, 107, 138, 111, 135, 140, 127, 132, 130, 131, 124, 132, 127, 140, 107, 111, 122, 124, 136, 118, 138, 129, 130, 119, 126, 150, 135, 114, 121, 117, 140, 117, 111, 120, 115, 129, 106, 124, 125, 120, 126, 126, 133, 115, 130, 120, 147, 108, 118, 125, 118, 132, 141, 127, 106, 101, 120, 146, 109, 115, 121, 124, 117, 125, 126, 134, 129, 139, 127, 109, 122, 110, 128, 112, 134, 130, 111, 122, 147, 111, 135, 111, 127, 126, 128, 120, 125, 154, 112, 127, 120, 123, 132, 118, 108, 126, 138, 135, 119, 132, 128, 121, 138, 113, 138, 123, 137, 125, 116, 136, 137, 116, 128, 129, 144, 116, 111, 130, 145, 115, 111, 114, 109, 131, 146, 137, 114, 140, 115, 139, 124, 122, 122, 119, 123, 130, 139, 126, 134, 121, 114, 135, 137, 132, 111, 101, 117, 127, 115, 122, 133, 115, 121, 117, 112, 116, 112, 134, 136, 124, 110, 123, 136, 139, 110, 122, 121, 129, 132, 113, 112, 129, 131, 144, 133, 112, 118, 134, 114, 143, 119, 119, 134, 127, 110, 117, 128, 124, 129, 124, 125, 149, 117, 123, 123, 139, 131, 112, 131, 146, 109, 122, 124, 137, 133, 116, 131, 135, 105, 117, 128, 131, 136, 125, 111, 118, 154, 136, 140, 132, 135, 120, 123, 135, 141, 118, 109, 107, 145, 137, 123, 130, 102, 139, 126, 124, 139, 125, 116, 107, 132, 127, 126, 111, 118, 144, 129, 126, 142, 123, 136, 116, 130, 120, 125, 138, 118, 113, 114, 130, 122, 117, 162, 123, 117, 135, 134, 120, 118, 105, 112, 107, 143, 133, 120, 107, 129, 147, 133, 111, 127, 122, 110, 128, 127, 130, 137, 122, 142, 103, 115, 133, 100, 109, 121, 106, 126, 113, 121, 116, 103, 120, 133, 114, 123, 133, 104, 133, 122, 147, 110, 117, 140, 128, 136, 126, 135, 124, 125, 123, 116, 118, 126, 110, 129, 124, 140, 123, 120, 123, 133, 127, 132, 134, 131, 133, 114, 101, 138, 113, 127, 127, 127, 132, 130, 110, 95, 124, 140, 122, 114, 131, 143, 130, 156, 116, 134, 114, 121, 124, 115, 117, 110, 135, 114, 124, 123, 135, 115, 126, 137, 118, 111, 111, 122, 111, 125, 117, 120, 124, 144, 132, 124, 107, 110, 144, 115, 114, 135, 126, 134, 121, 136, 126, 125, 124, 108, 117, 151, 121, 121, 124, 135, 123, 117, 114, 143, 112, 129, 121, 131, 134, 129, 133, 117, 127, 117, 120, 155, 130, 118, 128, 135, 125, 124, 140, 129, 124, 128, 131, 148, 126, 124, 117, 123, 125, 135, 125, 108, 117, 136, 137, 128, 127, 127, 138, 121, 121, 118, 140, 125, 151, 102, 108, 112, 134, 121, 125, 127, 142, 127, 134, 116, 133, 135, 128, 120, 126, 127, 123, 143, 134, 101, 128, 129, 125, 140, 120, 129, 130, 121, 116, 129, 130, 128, 116, 117, 111, 114, 126, 119, 133, 131, 110, 130, 135, 129, 138, 137, 135, 119, 118, 118, 125, 106, 114, 151, 127, 124, 126, 129, 115, 131, 117, 131, 120, 116, 112, 123, 118, 117, 132, 147, 133, 114, 112, 146, 142, 145, 115, 126, 134, 127, 158, 132, 136, 131, 141, 150, 117, 123, 125, 117, 113, 122, 116, 119, 118, 125, 124, 126, 121, 125, 138, 134, 129, 123, 121, 110, 135, 113, 116, 113, 108, 107, 118, 136, 115, 123, 135, 129, 139, 122, 133, 136, 133, 117, 123, 124, 127, 127, 109, 111, 126, 137, 127, 109, 115, 123, 126, 113, 123, 119, 146, 127, 134, 131, 125, 117, 134, 123, 123, 124, 134, 122, 148, 126, 134, 117, 119, 128, 131, 149, 135, 137, 124, 132, 122, 122, 106, 133, 130, 108, 127, 123, 123, 145, 129, 128, 126, 113, 118, 136, 125, 125, 131, 131, 138, 121, 131, 135, 125, 133, 118, 122, 127, 124, 122, 122, 118, 113, 112, 104, 127, 112, 119, 132, 116, 127, 121, 121, 121, 143, 126, 127, 132, 109, 130, 124, 130, 125, 119, 119, 124, 110, 113, 118, 118, 127, 126, 121, 130, 124, 122, 132, 111, 112, 133, 136, 144, 137, 121, 134, 146, 126, 124, 130, 127, 116, 110, 125, 109, 123, 130, 115, 128, 137, 116, 133, 117, 119, 127, 128, 118, 122, 122, 115, 130, 115, 120, 144, 120, 133, 104, 118, 112, 132, 131, 114, 143, 126, 144, 134, 109, 130, 116, 124, 119, 122, 127, 115, 135, 133, 135, 122, 133, 121, 123, 123, 120, 152, 113, 135, 124, 133, 129, 127, 144, 133, 125, 123, 125, 123, 122, 134, 130, 131, 128, 141, 106, 138, 116, 126, 129, 137, 126, 108, 133, 117, 102, 120, 147, 141, 133, 123, 109, 117, 130, 117, 128, 112, 119, 144, 116, 117, 130, 127, 131, 111, 144, 142, 125, 126, 135, 121, 127, 128, 129, 106, 122, 133, 102, 133, 103, 128, 126, 124, 124, 120, 115, 125, 106, 151, 115, 123, 116, 143, 126, 126, 118, 122, 143, 138, 116, 116, 129, 119, 141, 116, 126, 123, 128, 120, 129, 123, 134, 119, 116, 139, 125, 114, 123, 116, 126, 115, 138, 134, 129, 135, 124, 137, 120, 124, 139, 113, 130, 126, 130, 118, 143, 134, 140, 126, 119, 139, 132, 145, 133, 133, 125, 146, 128, 133, 122, 129, 126, 120, 128, 131, 120, 128, 121, 135, 125, 119, 121, 114, 128, 124, 119, 120, 113, 122, 119, 121, 126, 147, 117, 130, 123, 148, 104, 148, 115, 125, 127, 122, 107, 115, 114, 135, 122, 137, 123, 126, 136, 120, 126, 132, 121, 130, 122, 114, 132, 120, 120, 134, 125, 133, 117, 144, 129, 148, 120, 124, 107, 130, 117, 126, 122, 120, 125, 110, 126, 133, 120, 142, 127, 117, 122, 113, 122, 124, 139, 119, 133, 117, 125, 145, 116, 121, 135, 112, 121, 140, 132, 132, 125, 136, 126, 130, 138, 108, 119, 126, 104, 137, 126, 120, 127, 126, 114, 119, 118, 140, 125, 133, 144, 124, 128, 127, 134, 145, 142, 116, 149, 98, 119, 127, 116, 122, 132, 131, 134, 122, 117, 128, 116, 129, 125, 126, 140, 124, 114, 132, 116, 122, 142, 130, 150, 104, 136, 132, 125, 120, 124, 119, 134, 111, 125, 123, 123, 124, 137, 119, 124, 129, 119, 119, 131, 111, 128, 122, 126, 122, 115, 125, 137, 129, 113, 123, 118, 127, 132, 146, 119, 131, 130, 118, 118, 132, 130, 123, 125, 124, 138, 121, 135, 130, 121, 140, 111, 110, 132, 131, 127, 120, 127, 132, 121, 101, 134, 145, 135, 138, 129, 131, 119, 115, 137, 121, 134, 138, 122, 119, 125, 148, 122, 124, 124, 116, 114, 130, 129, 123, 133, 123, 112, 129, 124, 132, 127, 122, 126, 117, 133, 127, 144, 129, 127, 125, 120, 134, 126, 124, 133, 111, 109, 132, 141, 110, 132, 124, 138, 122, 151, 134, 118, 122, 129, 131, 132, 108, 138, 130, 120, 117, 135, 128, 135, 125, 120, 117, 161, 128, 117, 124, 118, 143, 130, 130, 119, 116, 120, 115, 126, 125, 126, 119, 132, 120, 113, 128, 121, 139, 111, 123, 116, 145, 127, 128, 119, 143, 123, 117, 135, 133, 128, 114, 117, 108, 133, 126, 129, 124, 128, 124, 120, 133, 119, 124, 122, 143, 117, 138, 133, 112, 126, 127, 124, 107, 126, 135, 135, 139, 116, 115, 120, 125, 140, 104, 114, 146, 100, 128, 110, 121, 115, 115, 140, 135, 126, 131, 129, 131, 121, 125, 125, 128, 135, 110, 117, 123, 140, 119, 123, 133, 121, 130, 118, 120, 126, 127, 132, 116, 118, 120, 130, 126, 143, 124, 139, 108, 122, 105, 117, 133, 115, 111, 119, 119, 131, 122, 132, 126, 126, 110, 118, 117, 118, 142, 137, 113, 129, 145, 124, 116, 117, 117, 123, 111, 137, 126, 115, 126, 124, 122, 126, 124, 119, 136, 117, 124, 116, 128, 119, 125, 111, 140, 128, 142, 123, 127, 115, 130, 133, 114, 129, 109, 121, 131, 108, 120, 146, 117, 128, 136, 139, 124, 114, 128, 130, 119, 129, 117, 144, 131, 124, 123, 120, 125, 133, 131, 122, 122, 134, 126, 121, 116, 100, 120, 118, 127, 136, 119, 111, 118, 135, 139, 117, 121, 145, 121, 123, 131, 126, 124, 125, 139, 126, 129, 107, 134, 123, 134, 135, 135, 123, 120, 143, 122, 150, 126, 114, 123, 147, 124, 127, 109, 123, 126, 125, 120, 121, 131, 132, 128, 135, 126, 130, 125, 117, 126, 111, 120, 137, 125, 125, 131, 125, 147, 123, 134, 123, 132, 127, 135, 120, 149, 133, 107, 110, 159, 133, 138, 124, 121, 119, 128, 127, 128, 128, 120, 139, 118, 140, 136, 142, 129, 128, 125, 127, 129, 132, 140, 117, 127, 134, 133, 144, 121, 113, 124, 140, 115, 142, 133, 109, 128, 128, 140, 126, 127, 109, 119, 134, 120, 130, 121, 135, 124, 124, 131, 132, 123, 130, 128, 116, 137, 125, 122, 123, 121, 118, 134, 124, 121, 127, 131, 119, 127, 127, 118, 123, 132, 127, 137, 117, 141, 114, 116, 126, 115, 121, 138, 119, 127, 126, 135, 132, 131, 118, 128, 135, 112, 121, 130, 126, 138, 111, 136, 127, 147, 134, 120, 122, 127, 118, 141, 127, 119, 117, 133, 129, 102, 127, 109, 122, 125, 124, 142, 111, 146, 122, 123, 117, 122, 118, 118, 127, 109, 123, 125, 121, 123, 130, 130, 125, 109, 122, 137, 137, 132, 105, 133, 137, 104, 116, 136, 118, 114, 127, 120, 120, 113, 137, 110, 156, 124, 129, 120, 111, 101, 132, 130, 144, 146, 129, 137, 135, 113, 126, 130, 124, 129, 143, 104, 132, 128, 143, 138, 127, 124, 140, 119, 139, 128, 117, 129, 123, 113, 125, 107, 132, 133, 129, 127, 126, 126, 128, 123, 146, 125, 115, 135, 131, 131, 132, 116, 121, 128, 113, 123, 114, 113, 150, 147, 129, 114, 127, 134, 117, 120, 138, 117, 114, 121, 144, 124, 152, 139, 111, 126, 135, 132, 127, 142, 144, 123, 127, 151, 117, 132, 132, 131, 133, 126, 137, 143, 133, 120, 137, 135, 130, 125, 144, 121, 122, 131, 114, 124, 130, 115, 130, 124, 129, 121, 132, 124, 126, 124, 118, 129, 124, 131, 145, 120, 136, 129, 126, 121, 114, 123, 124, 133, 131, 117, 110, 116, 136, 106, 122, 123, 128, 130, 141, 146, 126, 122, 117, 124, 130, 118, 122, 122, 123, 124, 126, 135, 121, 121, 112, 120, 124, 123, 112, 114, 122, 128, 140, 127, 129, 126, 119, 138, 133, 116, 112, 134, 107, 142, 116, 124, 142, 112, 133, 127, 116, 119, 122, 133, 121, 109, 145, 128, 135, 127, 118, 125, 134, 141, 143, 136, 131, 123, 131, 120, 122, 110, 120, 135, 121, 134, 126, 144, 131, 119, 128, 145, 112, 128, 110, 123, 134, 129, 125, 132, 121, 129, 123, 121, 127, 117, 113, 128, 115, 116, 126, 118, 130, 123, 130, 108, 122, 145, 121, 124, 129, 133, 134, 131, 123, 103, 123, 124, 116, 129, 130, 130, 121, 117, 123, 130, 137, 128, 117, 113, 121, 121, 115, 112, 135, 143, 138, 114, 130, 135, 144, 127, 113, 122, 117, 129, 127, 130, 122, 114, 117, 105, 132, 129, 113, 137, 112, 118, 128, 143, 123, 113, 116, 118, 130, 118, 125, 124, 120, 126, 114, 131, 132, 120, 117, 113, 136, 112, 144, 121, 111, 121, 135, 122, 131, 144, 126, 113, 116, 134, 120, 111, 129, 115, 124, 134, 130, 123, 132, 129, 113, 132, 149, 108, 102, 113, 112, 114, 118, 114, 132, 135, 111, 121, 109, 117, 144, 122, 116, 133, 119, 110, 128, 114, 101, 119, 125, 137, 120, 117, 123, 106, 118, 119, 131, 127, 126, 114, 130, 111, 122, 129, 133, 112, 122, 100, 122, 121, 141, 117, 127, 118, 118, 120, 116, 122, 124, 132, 119, 124, 108, 135, 123, 130, 115, 143, 96, 135, 133, 143, 120, 136, 126, 129, 139, 110, 133, 112, 138, 151, 130, 137, 115, 136, 131, 109, 114, 123, 143, 108, 135, 131, 109, 126, 115, 122, 99, 125, 110, 124, 132, 127, 127, 119, 116, 121, 117, 120, 118, 121, 120, 109, 133, 117, 125, 132, 111, 140, 130, 136, 104, 120, 111, 137, 103, 109, 126, 133, 128, 129, 125, 135, 113, 123, 132, 140, 109, 133, 112, 139, 133, 126, 114, 131, 120, 125, 119, 125, 130, 117, 128, 124, 121, 119, 137, 128, 120, 133, 126, 125, 131, 128, 143, 122, 120, 118, 108, 145, 121, 124, 148, 119, 134, 134, 118, 119, 128, 115, 130, 112, 133, 123, 125, 125, 134, 106, 137, 112, 125, 140, 105, 130, 122, 120, 122, 120, 128, 96, 130, 118, 114, 140, 117, 120, 123, 130, 117, 116, 123, 132, 121, 131, 118, 110, 124, 124, 138, 130, 138, 130, 134, 113, 120, 121, 111, 136, 135, 127, 125, 116, 125, 119, 116, 131, 121, 132, 135, 118, 132, 129, 130, 123, 128, 143, 113, 118, 123, 128, 114, 127, 117, 123, 123, 149, 122, 139, 110, 134, 106, 128, 107, 115, 119, 132, 123, 108, 112, 124, 130, 112, 109, 143, 133, 123, 150, 114, 126, 124, 123, 126, 125, 152, 115, 120, 111, 118, 114, 107, 138, 126, 126, 129, 139, 131, 136, 122, 128, 112, 112, 125, 134, 137, 138, 130, 124, 124, 131, 134, 122, 109, 118, 133, 136, 117, 119, 121, 117, 124, 135, 136, 121, 123, 127, 115, 104, 123, 113, 120, 140, 122, 137, 120, 117, 125, 143, 123, 130, 134, 141, 134, 124, 122, 125, 108, 142, 102, 125, 129, 127, 104, 126, 125, 119, 125, 132, 97, 129, 123, 143, 135, 133, 141, 146, 102, 119, 117, 136, 130, 133, 106, 105, 142, 126, 108, 140, 121, 109, 130, 123, 129, 118, 140, 110, 110, 151, 135, 131, 117, 123, 122, 144, 116, 120, 118, 134, 117, 121, 118, 127, 134, 137, 114, 135, 126, 140, 123, 136, 134, 136, 130, 135, 129, 132, 127, 129, 132, 119, 105, 117, 125, 131, 128, 130, 123, 129, 130, 131, 114, 118, 130, 127, 107, 111, 110, 124, 131, 118, 133, 127, 126, 128, 104, 124, 116, 120, 132, 127, 141, 132, 115, 134, 131, 107, 122, 117, 122, 143, 124, 119, 128, 133, 140, 117, 134, 115, 137, 129, 120, 141, 137, 131, 122, 115, 118, 122, 119, 145, 143, 124, 122, 126, 127, 131, 118, 101, 148, 119, 136, 105, 146, 129, 138, 124, 137, 115, 139, 118, 129, 107, 122, 122, 133, 119, 114, 120, 126, 117, 143, 127, 123, 127, 115, 124, 127, 126, 122, 131, 138, 118, 129, 131, 135, 116, 134, 113, 117, 132, 115, 133, 131, 135, 123, 113, 133, 134, 123, 148, 120, 116, 125, 110, 122, 150, 118, 127, 115, 120, 127, 117, 124, 135, 139, 115, 127, 121, 145, 126, 110, 126, 127, 101, 139, 131, 128, 129, 135, 121, 125, 122, 128, 133, 108, 136, 122, 132, 147, 98, 138, 147, 141, 116, 123, 133, 104, 119, 132, 110, 125, 152, 117, 117, 126, 119, 118, 127, 133, 129, 119, 136, 132, 125, 117, 133, 126, 130, 133, 128, 124, 121, 132, 123, 133, 128, 123, 125, 140, 113, 133, 128, 123, 155, 135, 136, 121, 128, 139, 139, 136, 125, 127, 123, 143, 124, 128, 109, 141, 139, 125, 135, 121, 124, 124, 119, 117, 127, 114, 132, 127, 140, 123, 121, 118, 129, 132, 108, 124, 116, 140, 131, 125, 118, 128, 122, 134, 143, 122, 121, 123, 119, 121, 116, 130, 113, 107, 123, 131, 124, 123, 117, 114, 145, 122, 130, 127, 123, 136, 116, 137, 153, 143, 126, 111, 126, 123, 106, 126, 131, 126, 126, 115, 117, 136, 123, 129, 129, 141, 127, 128, 118, 128, 131, 153, 122, 117, 101, 118, 129, 113, 132, 133, 120, 128, 116, 129, 124, 134, 117, 120, 116, 123, 122, 112, 124, 132, 125, 138, 138, 121, 137, 113, 107, 120, 123, 119, 104, 121, 119, 115, 114, 131, 125, 114, 123, 137, 135, 112, 126, 136, 138, 119, 127, 130, 138, 141, 126, 113, 144, 126, 126, 112, 119, 127, 143, 127, 126, 135, 128, 134, 121, 132, 129, 106, 129, 100, 128, 147, 128, 115, 122, 118, 126, 125, 115, 120, 114, 111, 140, 134, 149, 110, 116, 120, 112, 127, 106, 117, 131, 138, 121, 140, 136, 127, 138, 124, 116, 111, 127, 152, 140, 128, 106, 131, 124, 108, 136, 123, 121, 108, 128, 135, 116, 133, 135, 115, 110, 119, 135, 135, 129, 117, 132, 124, 128, 133, 133, 132, 118, 132, 129, 120, 124, 138, 131, 123, 131, 125, 125, 130, 114, 144, 113, 121, 128, 130, 126, 132, 119, 109, 116, 152, 135, 135, 103, 147, 109, 158, 121, 132, 116, 122, 118, 138, 126, 134, 143, 136, 116, 138, 120, 132, 112, 138, 111, 126, 117, 122, 136, 127, 129, 124, 102, 122, 112, 128, 133, 128, 140, 122, 143, 138, 134, 115, 125, 126, 113, 118, 129, 125, 136, 111, 119, 127, 133, 133, 125, 115, 148, 149, 121, 125, 124, 113, 142, 119, 134, 119, 125, 124, 131, 123, 116, 146, 142, 130, 121, 132, 140, 113, 126, 120, 121, 143, 130, 126, 134, 118, 123, 122, 132, 158, 124, 117, 129, 123, 112, 126, 126, 135, 127, 138, 127, 125, 129, 100, 117, 117, 131, 122, 124, 125, 116, 126, 124, 135, 127, 128, 130, 142, 115, 128, 126, 118, 129, 117, 141, 135, 117, 104, 124, 126, 122, 117, 124, 133, 116, 135, 138, 123, 127, 115, 132, 133, 113, 119, 132, 125, 129, 108, 113, 104, 130, 127, 122, 94, 124, 119, 123, 135, 137, 122, 105, 123, 123, 122, 123, 123, 116, 101, 118, 107, 122, 122, 137, 157, 122, 114, 132, 118, 115, 128, 114, 119, 126, 101, 119, 122, 127, 127, 135, 136, 124, 132, 131, 126, 104, 139, 116, 142, 125, 130, 128, 129, 131, 113, 124, 107, 156, 121, 134, 129, 146, 111, 126, 146, 104, 111, 111, 121, 132, 139, 128, 130, 140, 118, 122, 126, 114, 148, 112, 136, 136, 106, 127, 111, 117, 135, 126, 130, 138, 128, 135, 125, 111, 106, 133, 115, 128, 112, 126, 117, 123, 130, 134, 118, 136, 112, 128, 126, 136, 111, 120, 108, 133, 115, 131, 141, 138, 118, 135, 139, 135, 124, 127, 120, 113, 131, 123, 108, 125, 116, 127, 130, 127, 122, 111, 125, 125, 125, 121, 117, 129, 144, 132, 121, 135, 116, 148, 140, 137, 113, 102, 113, 114, 104, 132, 137, 119, 124, 124, 128, 118, 136, 137, 105, 130, 122, 128, 124, 119, 141, 124, 138, 121, 131, 141, 129, 143, 119, 123, 121, 141, 128, 109, 130, 136, 119, 129, 127, 111, 134, 118, 127, 142, 124, 118, 115, 133, 148, 176, 122, 124, 124, 126, 144, 127, 131, 124, 125, 125, 132, 101, 131, 122, 105, 129, 138, 111, 109, 113, 129, 121, 129, 116, 134, 132, 145, 123, 121, 140, 119, 136, 122, 119, 140, 132, 133, 130, 125, 115, 122, 134, 111, 116, 116, 123, 141, 124, 135, 117, 126, 133, 119, 133, 134, 110, 115, 122, 119, 130, 108, 137, 134, 138, 134, 132, 113, 118, 134, 103, 124, 109, 120, 114, 123, 143, 114, 120, 124, 131, 129, 131, 129, 136, 125, 134, 107, 115, 125, 124, 140, 129, 116, 109, 113, 131, 112, 130, 134, 129, 130, 130, 117, 133, 133, 135, 118, 114, 143, 131, 125, 132, 120, 114, 146, 117, 122, 98, 130, 132, 127, 116, 122, 118, 126, 113, 121, 122, 132, 104, 116, 128, 122, 134, 121, 129, 123, 110, 139, 128, 126, 123, 120, 114, 123, 105, 116, 115, 115, 137, 133, 114, 122, 130, 118, 110, 114, 126, 137, 98, 133, 125, 116, 116, 123, 128, 126, 129, 118, 144, 112, 122, 151, 134, 140, 122, 140, 148, 124, 125, 131, 137, 132, 125, 140, 112, 125, 126, 98, 121, 108, 132, 134, 121, 102, 123, 132, 133, 133, 114, 121, 130, 113, 134, 114, 115, 118, 113, 131, 126, 125, 127, 111, 132, 130, 144, 114, 120, 129, 132, 125, 132, 108, 132, 121, 134, 124, 112, 142, 132, 120, 120, 132, 131, 119, 126, 112, 133, 123, 148, 132, 121, 126, 126, 136, 113, 109, 122, 126, 112, 138, 132, 116, 132, 133, 131, 129, 121, 142, 129, 137, 112, 125, 110, 129, 137, 131, 115, 129, 109, 98, 116, 113, 110, 118, 101, 130, 138, 144, 121, 113, 136, 117, 132, 138, 132, 136, 116, 137, 135, 127, 148, 126, 119, 113, 128, 121, 127, 132, 121, 148, 120, 131, 120, 111, 124, 133, 122, 123, 127, 129, 118, 119, 143, 115, 132, 113, 119, 107, 121, 124, 133, 132, 135, 125, 110, 123, 123, 126, 126, 130, 122, 129, 128, 125, 117, 114, 107, 128, 141, 119, 120, 127, 121, 111, 133, 123, 127, 120, 120, 129, 140, 121, 135, 133, 129, 129, 124, 125, 129, 126, 116, 137, 125, 118, 125, 139, 129, 126, 110, 135, 121, 126, 134, 139, 117, 125, 128, 123, 131, 124, 139, 138, 135, 132, 111, 123, 133, 126, 126, 141, 119, 103, 117, 108, 126, 115, 117, 125, 112, 109, 113, 113, 121, 130, 110, 149, 133, 120, 142, 140, 132, 112, 131, 130, 125, 117, 132, 107, 123, 144, 118, 113, 133, 136, 123, 126, 138, 124, 127, 132, 141, 138, 141, 144, 130, 146, 120, 90, 133, 130, 145, 127, 120, 126, 111, 103, 126, 117, 128, 124, 122, 126, 119, 114, 122, 129, 142, 122, 98, 115, 123, 124, 147, 129, 139, 124, 127, 116, 123, 132, 114, 114, 118, 110, 146, 135, 126, 114, 138, 132, 126, 133, 131, 121, 132, 131, 129, 129, 120, 135, 125, 120, 109, 126, 124, 125, 133, 122, 125, 146, 119, 148, 132, 118, 118, 111, 126, 124, 116, 108, 128, 143, 143, 118, 122, 122, 127, 116, 124, 145, 132, 132, 124, 118, 143, 114, 118, 131, 148, 118, 127, 136, 128, 127, 132, 125, 122, 122, 142, 133, 141, 122, 110, 131, 126, 105, 137, 134, 132, 136, 113, 142, 131, 130, 123, 118, 123, 129, 125, 115, 136, 119, 126, 135, 125, 117, 123, 124, 126, 127, 130, 130, 120, 122, 119, 123, 134, 115, 121, 127, 143, 116, 116, 132, 115, 128, 110, 105, 127, 107, 133, 128, 119, 124, 123, 117, 135, 113, 133, 108, 125, 131, 133, 138, 104, 134, 138, 124, 122, 117, 122, 148, 147, 124, 136, 123, 129, 126, 110, 115, 106, 159, 132, 123, 140, 129, 132, 148, 116, 147, 141, 111, 132, 101, 129, 125, 124, 138, 123, 108, 136, 139, 138, 121, 140, 135, 109, 123, 103, 135, 138, 132, 133, 129, 134, 120, 128, 126, 128, 124, 133, 125, 123, 112, 119, 119, 103, 125, 131, 118, 128, 138, 124, 119, 123, 120, 130, 112, 133, 107, 113, 122, 156, 132, 134, 126, 120, 128, 131, 118, 140, 127, 119, 111, 110, 116, 130, 111, 127, 116, 117, 122, 134, 133, 140, 138, 120, 118, 141, 125, 112, 135, 125, 125, 129, 128, 115, 114, 147, 101, 138, 114, 129, 125, 113, 125, 139, 117, 103, 118, 111, 116, 121, 125, 122, 112, 134, 130, 140, 132, 128, 108, 131, 137, 125, 111, 112, 130, 141, 115, 113, 125, 132, 126, 115, 137, 115, 113, 108, 136, 132, 124, 129, 125, 120, 118, 136, 117, 150, 120, 131, 121, 115, 132, 118, 119, 129, 119, 129, 120, 134, 118, 125, 125, 137, 112, 112, 132, 125, 129, 123, 129, 132, 135, 122, 126, 119, 130, 133, 123, 131, 116, 116, 117, 128, 136, 114, 109, 126, 130, 118, 127, 105, 126, 136, 130, 128, 111, 138, 121, 144, 110, 130, 124, 122, 132, 124, 138, 97, 101, 120, 136, 133, 115, 125, 133, 124, 130, 120, 133, 133, 116, 137, 132, 131, 117, 122, 125, 112, 108, 129, 105, 132, 127, 130, 139, 129, 114, 134, 122, 127, 128, 121, 131, 114, 123, 132, 121, 140, 135, 119, 147, 137, 130, 116, 136, 139, 143, 118, 126, 129, 127, 132, 132, 127, 127, 125, 124, 122, 138, 146, 105, 132, 128, 129, 124, 117, 123, 136, 127, 124, 134, 135, 129, 127, 134, 147, 132, 123, 118, 110, 127, 126, 106, 131, 117, 127, 107, 131, 122, 129, 133, 127, 140, 125, 127, 124, 118, 119, 128, 120, 113, 126, 94, 122, 107, 125, 115, 130, 105, 114, 118, 129, 114, 124, 126, 139, 128, 121, 130, 144, 146, 128, 136, 133, 126, 145, 127, 139, 124, 118, 143, 114, 135, 120, 128, 124, 124, 134, 127, 112, 126, 125, 120, 124, 125, 117, 124, 116, 118, 117, 122, 120, 122, 144, 132, 133, 111, 121, 124, 124, 141, 127, 108, 116, 128, 139, 129, 125, 127, 133, 115, 139, 136, 109, 109, 137, 118, 116, 121, 125, 141, 119, 129, 133, 103, 124, 133, 139, 133, 123, 126, 137, 129, 127, 96, 129, 116, 135, 141, 123, 122, 141, 131, 114, 124, 128, 133, 129, 111, 115, 112, 121, 129, 128, 136, 126, 120, 120, 115, 117, 142, 140, 110, 136, 130, 136, 136, 137, 112, 140, 132, 110, 125, 137, 125, 135, 120, 120, 134, 100, 144, 123, 133, 122, 126, 123, 114, 136, 128, 121, 118, 124, 145, 113, 117, 131, 119, 130, 124, 116, 122, 109, 119, 125, 119, 110, 128, 136, 127, 138, 140, 118, 133, 115, 113, 119, 144, 133, 131, 120, 135, 122, 111, 129, 117, 111, 117, 124, 112, 126, 95, 137, 132, 127, 128, 133, 121, 120, 108, 127, 136, 111, 101, 115, 134, 122, 133, 118, 127, 124, 127, 122, 129, 124, 133, 131, 137, 109, 121, 113, 120, 126, 127, 110, 133, 124, 123, 133, 149, 127, 128, 109, 137, 123, 148, 115, 126, 116, 108, 132, 138, 124, 117, 117, 137, 119, 122, 114, 117, 140, 126, 143, 120, 137, 130, 114, 122, 135, 123, 115, 122, 153, 120, 97, 126, 121, 133, 111, 115, 119, 137, 121, 124, 136, 134, 106, 123, 125, 112, 125, 110, 134, 120, 139, 109, 114, 127, 123, 135, 120, 120, 130, 123, 134, 138, 116, 120, 133, 135, 128, 128, 143, 129, 138, 111, 127, 113, 113, 148, 125, 120, 123, 124, 123, 118, 130, 127, 121, 112, 147, 117, 119, 117, 105, 117, 113, 126, 137, 127, 133, 131, 113, 128, 126, 100, 118, 121, 127, 120, 124, 116, 113, 116, 123, 135, 131, 117, 124, 120, 123, 119, 135, 138, 127, 125, 126, 122, 136, 118, 140, 116, 126, 118, 122, 121, 125, 117, 111, 123, 128, 123, 135, 118, 131, 131, 139, 131, 123, 121, 123, 120, 127, 139, 128, 134, 128, 116, 133, 131, 127, 123, 126, 122, 127, 121, 113, 139, 112, 129, 126, 127, 124, 115, 152, 132, 119, 122, 138, 113, 136, 134, 118, 131, 125, 123, 125, 118, 123, 138, 140, 111, 117, 135, 151, 125, 127, 124, 119, 124, 113, 117, 108, 121, 127, 145, 125, 109, 122, 124, 119, 130, 130, 124, 123, 116, 132, 126, 145, 108, 141, 117, 113, 131, 129, 130, 118, 117, 113, 129, 143, 130, 129, 124, 107, 119, 126, 130, 115, 120, 138, 130, 111, 128, 117, 129, 106, 130, 108, 125, 117, 133, 115, 134, 137, 126, 140, 124, 105, 127, 96, 120, 130, 132, 127, 126, 122, 122, 130, 128, 135, 117, 124, 129, 117, 121, 128, 135, 123, 130, 137, 137, 121, 136, 119, 130, 133, 131, 109, 127, 116, 136, 116, 125, 126, 138, 124, 115, 120, 113, 129, 133, 132, 129, 125, 118, 129, 114, 125, 119, 121, 127, 117, 125, 125, 105, 110, 142, 124, 133, 139, 129, 119, 139, 114, 138, 122, 115, 115, 118, 117, 137, 140, 118, 118, 111, 121, 129, 108, 124, 113, 113, 123, 131, 121, 116, 125, 121, 124, 119, 108, 123, 119, 113, 121, 136, 143, 114, 128, 127, 121, 127, 115, 116, 128, 131, 125, 104, 133, 135, 103, 129, 112, 104, 128, 118, 133, 119, 123, 121, 132, 111, 120, 124, 125, 110, 125, 121, 116, 126, 120, 117, 118, 125, 128, 122, 118, 141, 144, 136, 142, 116, 130, 117, 140, 133, 117, 131, 124, 130, 120, 134, 123, 130, 112, 124, 122, 123, 115, 124, 128, 145, 116, 120, 111, 131, 105, 124, 141, 116, 109, 128, 129, 117, 140, 132, 120, 113, 131, 127, 124, 122, 146, 123, 133, 112, 134, 133, 137, 121, 120, 119, 134, 129, 119, 127, 126, 109, 127, 119, 128, 127, 114, 125, 141, 122, 122, 127, 107, 135, 115, 134, 138, 133, 121, 118, 121, 109, 129, 129, 133, 140, 131, 136, 131, 119, 131, 119, 115, 131, 122, 118, 135, 147, 136, 113, 141, 134, 120, 122, 122, 107, 110, 128, 133, 121, 113, 131, 130, 126, 139, 130, 123, 139, 112, 119, 124, 121, 130, 125, 112, 136, 129, 124, 107, 102, 119, 126, 125, 107, 124, 125, 124, 135, 121, 145, 131, 142, 122, 116, 135, 136, 114, 118, 119, 109, 126, 128, 112, 122, 134, 123, 130, 144, 131, 125, 122, 135, 118, 110, 121, 125, 120, 118, 124, 105, 123, 125, 111, 112, 121, 123, 114, 139, 129, 112, 145, 119, 121, 138, 110, 125, 121, 100, 127, 121, 136, 127, 115, 128, 128, 125, 132, 132, 142, 139, 122, 127, 137, 118, 139, 134, 123, 130, 131, 135, 115, 132, 117, 128, 156, 121, 122, 122, 142, 107, 121, 122, 103, 131, 143, 128, 97, 131, 125, 122, 139, 123, 130, 127, 122, 116, 131, 120, 124, 133, 111, 121, 140, 115, 119, 110, 115, 125, 137, 137, 124, 130, 121, 128, 132, 124, 123, 115, 140, 129, 128, 119, 130, 120, 124, 125, 120, 133, 131, 123, 123, 122, 130, 125, 126, 125, 145, 134, 136, 142, 135, 136, 126, 124, 136, 120, 140, 106, 128, 131, 104, 125, 104, 125, 149, 105, 139, 127, 114, 131, 120, 103, 127, 123, 110, 143, 127, 115, 133, 122, 113, 135, 135, 137, 137, 128, 104, 146, 127, 109, 116, 125, 122, 147, 114, 125, 121, 121, 128, 123, 123, 124, 117, 128, 130, 120, 134, 105, 133, 116, 137, 131, 120, 140, 131, 126, 121, 129, 130, 127, 132, 116, 128, 123, 129, 135, 132, 132, 141, 130, 137, 128, 116, 125, 124, 125, 115, 130, 129, 120, 133, 125, 125, 122, 127, 127, 132, 136, 140, 131, 127, 131, 126, 138, 123, 120, 108, 131, 135, 134, 127, 136, 127, 133, 128, 106, 129, 124, 119, 135, 120, 117, 131, 112, 132, 123, 123, 138, 136, 101, 123, 118, 126, 112, 111, 123, 145, 131, 128, 118, 128, 144, 134, 104, 127, 121, 103, 122, 127, 117, 140, 134, 116, 128, 123, 124, 124, 128, 137, 123, 131, 122, 138, 134, 107, 113, 121, 123, 120, 130, 126, 124, 119, 125, 132, 129, 118, 134, 135, 112, 134, 124, 132, 121, 128, 135, 120, 132, 120, 136, 125, 122, 104, 122, 136, 122, 122, 128, 119, 126, 107, 127, 134, 114, 117, 124, 135, 113, 142, 127, 113, 123, 123, 116, 129, 157, 135, 131, 123, 128, 139, 124, 111, 124, 140, 121, 114, 122, 114, 128, 132, 154, 120, 119, 122, 122, 115, 127, 112, 136, 125, 117, 117, 124, 110, 136, 122, 142, 133, 131, 120, 127, 126, 119, 131, 121, 116, 121, 119, 118, 117, 120, 131, 140, 128, 120, 111, 134, 120, 131, 126, 148, 114, 114, 127, 127, 146, 115, 128, 125, 123, 116, 129, 121, 128, 142, 131, 114, 148, 146, 139, 155, 117, 129, 126, 118, 118, 137, 120, 126, 149, 134, 132, 120, 136, 133, 129, 121, 131, 120, 123, 112, 129, 133, 112, 116, 135, 148, 126, 122, 110, 136, 140, 115, 126, 129, 129, 149, 124, 131, 134, 134, 139, 113, 130, 135, 123, 114, 114, 115, 131, 125, 115, 115, 137, 132, 129, 121, 119, 131, 131, 135, 128, 145, 116, 123, 109, 109, 123, 142, 125, 113, 139, 132, 137, 131, 124, 132, 116, 124, 130, 135, 120, 116, 116, 139, 132, 144, 119, 120, 124, 122, 125, 112, 112, 121, 122, 115, 126, 135, 116, 140, 117, 123, 127, 126, 140, 118, 128, 132, 135, 128, 135, 129, 123, 131, 121, 128, 127, 110, 130, 119, 135, 133, 132, 132, 115, 119, 117, 103, 118, 127, 128, 126, 125, 107, 137, 127, 127, 127, 138, 113, 131, 126, 140, 132, 117, 134, 113, 121, 120, 130, 146, 126, 127, 122, 112, 110, 105, 132, 137, 123, 124, 129, 116, 127, 128, 121, 119, 112, 106, 121, 118, 121, 121, 118, 130, 136, 122, 116, 125, 106, 110, 114, 153, 127, 110, 121, 118, 124, 118, 118, 114, 115, 135, 136, 124, 125, 126, 124, 119, 121, 118, 127, 125, 130, 135, 109, 124, 142, 112, 107, 123, 116, 131, 128, 125, 137, 129, 133, 116, 120, 139, 110, 132, 131, 133, 119, 123, 120, 130, 144, 137, 127, 116, 116, 121, 131, 134, 123, 119, 124, 113, 122, 126, 129, 116, 124, 138, 127, 125, 138, 133, 110, 130, 117, 122, 113, 113, 126, 132, 125, 114, 141, 140, 135, 101, 120, 134, 122, 123, 139, 110, 126, 141, 107, 126, 107, 120, 135, 128, 103, 145, 115, 132, 119, 128, 139, 107, 136, 117, 114, 133, 125, 140, 122, 120, 127, 125, 126, 129, 112, 131, 126, 117, 118, 144, 119, 133, 106, 144, 125, 128, 129, 120, 116, 117, 137, 101, 130, 129, 120, 137, 134, 137, 119, 103, 118, 116, 142, 109, 107, 112, 119, 131, 140, 135, 129, 132, 123, 133, 125, 116, 138, 124, 117, 135, 133, 130, 121, 105, 113, 123, 122, 128, 97, 125, 111, 142, 131, 131, 109, 127, 119, 110, 117, 133, 121, 124, 116, 120, 129, 124, 134, 135, 124, 142, 131, 139, 100, 123, 118, 137, 127, 125, 122, 130, 109, 137, 137, 118, 117, 117, 124, 153, 151, 108, 140, 119, 120, 108, 132, 123, 121, 137, 108, 130, 129, 143, 115, 129, 136, 116, 132, 130, 123, 134, 92, 138, 115, 102, 141, 123, 132, 122, 126, 122, 115, 113, 116, 139, 131, 124, 120, 121, 122, 133, 132, 118, 134, 124, 134, 120, 111, 117, 128, 117, 123, 114, 127, 131, 119, 126, 140, 125, 113, 128, 122, 114, 128, 109, 114, 143, 125, 143, 139, 134, 118, 126, 149, 130, 126, 106, 128, 145, 117, 148, 148, 140, 104, 123, 132, 125, 110, 113, 106, 127, 147, 146, 132, 118, 122, 123, 113, 126, 130, 119, 98, 129, 127, 113, 124, 115, 121, 114, 120, 143, 120, 116, 119, 121, 108, 120, 132, 126, 158, 109, 126, 135, 129, 120, 105, 133, 143, 145, 135, 142, 116, 137, 132, 123, 135, 129, 129, 127, 121, 126, 129, 133, 117, 136, 125, 129, 125, 148, 131, 121, 133, 120, 129, 108, 118, 135, 141, 134, 120, 113, 125, 127, 121, 127, 117, 121, 128, 120, 118, 117, 137, 114, 121, 120, 121, 117, 127, 118, 116, 126, 125, 131, 127, 119, 143, 127, 101, 122, 131, 126, 115, 118, 145, 118, 135, 124, 126, 128, 110, 104, 133, 137, 91, 127, 118, 120, 135, 120, 125, 121, 123, 123, 122, 113, 119, 115, 146, 134, 108, 135, 124, 149, 130, 128, 137, 161, 141, 127, 138, 119, 130, 105, 136, 118, 106, 124, 111, 126, 135, 128, 123, 109, 137, 113, 131, 143, 137, 122, 138, 129, 109, 125, 137, 144, 122, 118, 126, 122, 136, 122, 124, 109, 139, 130, 131, 120, 123, 128, 142, 136, 114, 119, 148, 131, 135, 134, 134, 124, 128, 104, 127, 123, 133, 111, 133, 127, 128, 128, 126, 123, 133, 128, 125, 126, 118, 121, 114, 113, 104, 117, 136, 117, 114, 118, 126, 139, 116, 145, 149, 113, 137, 115, 127, 123, 166, 106, 113, 119, 118, 123, 133, 154, 137, 111, 113, 113, 123, 122, 138, 123, 120, 113, 140, 123, 111, 108, 130, 122, 104, 133, 135, 137, 122, 146, 128, 133, 140, 109, 125, 124, 133, 128, 120, 111, 105, 132, 121, 119, 106, 119, 132, 125, 135, 153, 135, 108, 106, 137, 121, 122, 127, 133, 124, 133, 137, 137, 109, 115, 125, 118, 111, 126, 106, 139, 112, 103, 132, 111, 139, 134, 141, 116, 145, 121, 138, 142, 133, 127, 119, 138, 126, 121, 127, 155, 124, 115, 143, 113, 131, 121, 125, 110, 134, 138, 128, 120, 120, 110, 113, 105, 140, 126, 126, 111, 132, 149, 126, 135, 132, 120, 109, 121, 110, 124, 127, 128, 123, 133, 130, 126, 138, 131, 124, 131, 119, 127, 132, 135, 118, 128, 129, 123, 128, 129, 123, 125, 126, 116, 134, 116, 133, 122, 118, 120, 139, 134, 143, 115, 130, 126, 138, 131, 118, 124, 114, 132, 124, 145, 124, 116, 132, 110, 133, 129, 121, 135, 136, 127, 135, 141, 157, 124, 117, 125, 119, 123, 134, 115, 118, 135, 145, 126, 132, 134, 119, 98, 124, 119, 118, 113, 124, 116, 120, 112, 117, 112, 134, 118, 122, 108, 131, 147, 116, 128, 119, 111, 122, 107, 123, 137, 126, 136, 95, 116, 121, 146, 115, 128, 116, 113, 127, 115, 130, 129, 133, 127, 114, 131, 114, 131, 122, 129, 138, 124, 113, 126, 118, 136, 118, 125, 120, 142, 126, 124, 136, 137, 123, 122, 138, 135, 139, 119, 122, 136, 110, 121, 124, 111, 119, 124, 125, 113, 117, 124, 126, 142, 116, 123, 131, 109, 127, 125, 115, 126, 135, 126, 128, 124, 134, 109, 117, 135, 135, 163, 108, 122, 141, 118, 116, 119, 130, 132, 134, 115, 121, 131, 123, 118, 131, 132, 129, 124, 128, 138, 119, 126, 147, 116, 122, 131, 123, 122, 128, 121, 120, 133, 130, 120, 116, 122, 136, 126, 118, 119, 142, 139, 115, 135, 139, 135, 156, 118, 134, 102, 111, 122, 127, 131, 116, 117, 119, 116, 124, 134, 116, 120, 143, 129, 123, 124, 124, 121, 127, 107, 120, 143, 126, 125, 144, 138, 126, 108, 125, 137, 141, 126, 123, 115, 122, 116, 128, 154, 135, 131, 121, 113, 140, 107, 129, 114, 139, 137, 139, 115, 135, 122, 120, 95, 122, 130, 120, 110, 122, 113, 126, 127, 115, 119, 129, 119, 127, 120, 95, 125, 124, 118, 110, 124, 124, 121, 142, 135, 143, 122, 137, 125, 105, 137, 104, 132, 126, 124, 117, 146, 128, 121, 117, 137, 109, 128, 132, 120, 131, 141, 119, 137, 118, 128, 126, 131, 126, 110, 129, 140, 111, 112, 125, 122, 105, 112, 135, 132, 128, 146, 118, 122, 124, 114, 142, 128, 124, 120, 104, 134, 141, 133, 144, 109, 119, 125, 138, 131, 118, 124, 138, 138, 116, 110, 125, 138, 132, 120, 129, 118, 139, 126, 116, 111, 127, 115, 116, 114, 117, 136, 132, 124, 117, 124, 133, 111, 135, 136, 129, 128, 117, 99, 133, 126, 126, 108, 119, 156, 128, 126, 127, 123, 141, 133, 114, 133, 106, 125, 146, 129, 128, 117, 148, 111, 127, 101, 122, 126, 124, 122, 114, 110, 121, 126, 130, 127, 124, 118, 111, 132, 123, 106, 117, 140, 121, 120, 124, 128, 115, 129, 130, 120, 127, 124, 116, 138, 126, 132, 136, 145, 134, 108, 126, 121, 104, 111, 122, 134, 120, 134, 141, 123, 136, 136, 109, 129, 130, 121, 136, 134, 114, 136, 127, 112, 124, 125, 118, 123, 130, 138, 128, 132, 127, 127, 127, 127, 117, 134, 129, 148, 117, 127, 119, 133, 136, 140, 121, 113, 126, 135, 127, 132, 135, 110, 144, 138, 131, 124, 132, 141, 121, 134, 133, 146, 107, 122, 126, 113, 114, 146, 136, 113, 141, 131, 116, 132, 130, 130, 126, 119, 117, 129, 101, 114, 122, 128, 131, 118, 120, 137, 116, 97, 138, 131, 129, 128, 136, 122, 121, 124, 122, 129, 149, 113, 144, 127, 119, 127, 128, 112, 130, 125, 129, 134, 121, 123, 110, 122, 130, 134, 125, 123, 132, 135, 138, 109, 130, 118, 138, 125, 118, 105, 123, 146, 123, 135, 124, 122, 143, 106, 109, 134, 124, 130, 132, 126, 118, 132, 122, 132, 127, 114, 114, 136, 118, 102, 119, 137, 132, 130, 137, 123, 119, 126, 152, 144, 120, 125, 129, 149, 137, 128, 128, 128, 127, 106, 124, 111, 114, 133, 132, 121, 121, 142, 135, 129, 132, 127, 127, 109, 121, 148, 103, 110, 123, 125, 115, 116, 123, 102, 127, 126, 111, 147, 139, 131, 139, 123, 130, 134, 120, 110, 127, 142, 106, 138, 132, 125, 136, 115, 115, 119, 124, 143, 135, 148, 139, 129, 125, 143, 117, 129, 119, 139, 114, 137, 119, 129, 125, 148, 113, 114, 116, 134, 122, 115, 112, 118, 126, 126, 116, 127, 119, 126, 127, 138, 128, 123, 121, 133, 121, 122, 140, 127, 113, 111, 122, 123, 123, 114, 125, 128, 136, 136, 121, 122, 121, 105, 126, 134, 134, 105, 128, 150, 120, 119, 131, 117, 147, 113, 133, 135, 128, 117, 131, 132, 115, 108, 119, 111, 126, 119, 122, 129, 119, 140, 126, 112, 152, 126, 133, 116, 132, 128, 121, 135, 132, 120, 136, 109, 117, 110, 122, 122, 130, 136, 126, 118, 99, 117, 120, 133, 132, 113, 121, 125, 102, 132, 126, 122, 123, 114, 118, 111, 111, 135, 132, 127, 117, 140, 119, 111, 133, 128, 124, 124, 106, 118, 116, 114, 126, 109, 144, 131, 127, 113, 123, 127, 134, 108, 131, 129, 124, 114, 127, 117, 114, 117, 133, 116, 128, 102, 125, 145, 126, 128, 127, 135, 108, 127, 108, 127, 137, 147, 121, 132, 112, 119, 124, 97, 119, 128, 128, 109, 128, 108, 129, 117, 142, 118, 137, 131, 121, 130, 126, 127, 126, 139, 115, 125, 128, 122, 107, 106, 136, 127, 129, 129, 145, 110, 122, 123, 110, 125, 121, 114, 101, 114, 134, 119, 115, 117, 122, 128, 134, 133, 132, 119, 114, 105, 122, 112, 138, 121, 137, 134, 135, 131, 134, 112, 111, 123, 117, 112, 115, 140, 123, 117, 125, 133, 131, 123, 128, 114, 140, 125, 145, 98, 105, 135, 114, 134, 112, 124, 141, 145, 136, 129, 126, 118, 136, 142, 132, 125, 129, 96, 117, 113, 114, 106, 138, 140, 120, 116, 105, 113, 133, 111, 114, 118, 114, 128, 135, 116, 121, 125, 110, 126, 114, 126, 119, 122, 113, 140, 109, 138, 119, 129, 121, 113, 110, 150, 128, 127, 102, 112, 118, 104, 139, 118, 124, 105, 131, 125, 112, 115, 132, 114, 122, 141, 142, 137, 131, 117, 146, 117, 123, 116, 135, 122, 130, 125, 125, 124, 114, 124, 113, 136, 135, 155, 133, 122, 112, 140, 116, 123, 128, 113, 128, 145, 132, 137, 123, 125, 139, 137, 125, 148, 119, 126, 138, 122, 103, 136, 137, 133, 123, 128, 106, 135, 115, 119, 127, 128, 128, 123, 117, 133, 125, 125, 128, 127, 131, 129, 133, 134, 135, 125, 139, 128, 150, 118, 129, 119, 139, 135, 140, 134, 110, 126, 137, 129, 109, 125, 121, 134, 122, 132, 115, 124, 132, 139, 126, 118, 119, 130, 103, 117, 120, 121, 130, 144, 121, 127, 123, 143, 130, 134, 132, 143, 125, 113, 130, 127, 123, 126, 112, 134, 128, 133, 133, 117, 106, 125, 118, 110, 137, 133, 127, 141, 122, 127, 118, 114, 138, 130, 127, 137, 136, 119, 105, 128, 125, 112, 126, 141, 130, 105, 137, 146, 129, 126, 112, 126, 123, 114, 107, 99, 126, 123, 138, 96, 130, 120, 122, 127, 118, 120, 102, 140, 129, 116, 130, 119, 129, 119, 124, 109, 124, 138, 113, 111, 131, 142, 135, 121, 133, 110, 126, 128, 133, 120, 134, 138, 107, 136, 125, 121, 117, 150, 118, 121, 122, 125, 125, 132, 113, 107, 137, 134, 129, 106, 116, 99, 121, 133, 119, 124, 138, 122, 113, 122, 132, 138, 142, 118, 130, 115, 130, 134, 139, 135, 130, 133, 122, 114, 122, 133, 133, 117, 103, 114, 118, 126, 119, 117, 123, 117, 124, 114, 104, 133, 132, 130, 115, 122, 152, 118, 125, 124, 132, 121, 124, 103, 136, 142, 132, 130, 138, 111, 123, 134, 119, 131, 126, 116, 121, 111, 124, 115, 121, 117, 130, 117, 128, 129, 124, 141, 127, 113, 127, 116, 108, 130, 124, 114, 126, 141, 116, 141, 132, 119, 114, 134, 132, 137, 118, 132, 118, 111, 125, 134, 122, 115, 112, 112, 130, 132, 143, 127, 120, 129, 112, 151, 143, 112, 124, 147, 109, 122, 131, 115, 111, 129, 116, 107, 119, 109, 123, 116, 113, 118, 131, 124, 122, 150, 126, 119, 142, 133, 131, 115, 127, 139, 132, 116, 103, 127, 132, 119, 118, 150, 139, 121, 125, 133, 140, 138, 133, 118, 108, 115, 131, 140, 127, 126, 121, 117, 133, 152, 138, 113, 124, 134, 114, 123, 105, 125, 130, 123, 125, 121, 99, 115, 130, 110, 134, 125, 115, 116, 126, 126, 139, 134, 119, 120, 136, 132, 120, 139, 121, 107, 124, 143, 108, 132, 111, 130, 113, 98, 121, 122, 136, 118, 112, 123, 127, 106, 135, 113, 134, 115, 137, 140, 127, 116, 148, 129, 127, 136, 128, 121, 105, 126, 119, 121, 125, 128, 131, 118, 121, 118, 140, 128, 124, 122, 139, 126, 116, 130, 115, 118, 132, 136, 114, 109, 140, 132, 133, 127, 120, 142, 151, 131, 103, 128, 128, 130, 113, 124, 150, 130, 130, 121, 124, 114, 130, 126, 140, 104, 126, 135, 130, 133, 134, 115, 130, 110, 108, 148, 135, 122, 112, 123, 126, 112, 130, 106, 124, 115, 117, 115, 137, 119, 123, 139, 124, 112, 129, 113, 138, 132, 112, 124, 118, 132, 134, 108, 137, 131, 116, 107, 112, 130, 117, 120, 122, 136, 133, 120, 113, 140, 128, 130, 125, 132, 124, 133, 148, 114, 129, 125, 137, 137, 135, 125, 121, 130, 127, 120, 130, 119, 129, 130, 120, 130, 128, 124, 115, 122, 134, 122, 127, 116, 111, 137, 122, 118, 126, 132, 115, 134, 161, 130, 117, 120, 131, 120, 116, 137, 118, 144, 122, 132, 119, 132, 138, 123, 122, 118, 150, 122, 142, 147, 120, 131, 131, 132, 120, 116, 128, 124, 113, 125, 117, 116, 113, 113, 143, 131, 115, 127, 129, 123, 124, 123, 133, 123, 127, 137, 134, 138, 113, 123, 134, 121, 123, 123, 143, 122, 133, 140, 127, 133, 134, 118, 108, 120, 111, 136, 122, 133, 123, 120, 126, 127, 128, 97, 140, 137, 104, 135, 116, 106, 118, 113, 137, 139, 125, 129, 117, 121, 141, 126, 110, 141, 119, 138, 120, 137, 141, 136, 123, 131, 114, 124, 141, 108, 129, 102, 120, 118, 125, 113, 105, 116, 137, 119, 113, 127, 126, 118, 159, 126, 145, 131, 119, 128, 118, 131, 113, 154, 107, 135, 126, 114, 116, 123, 123, 123, 125, 98, 137, 157, 123, 120, 112, 127, 126, 127, 120, 115, 120, 114, 126, 112, 136, 111, 122, 128, 119, 136, 117, 118, 137, 118, 125, 132, 108, 124, 107, 112, 139, 136, 136, 131, 146, 136, 124, 107, 118, 127, 133, 136, 134, 129, 125, 115, 158, 139, 122, 120, 115, 130, 122, 107, 127, 137, 113, 123, 128, 127, 116, 112, 109, 119, 129, 114, 137, 137, 123, 140, 143, 148, 149, 117, 115, 122, 127, 125, 128, 129, 136, 138, 139, 126, 132, 129, 126, 116, 115, 129, 146, 122, 105, 115, 119, 123, 127, 114, 147, 125, 113, 132, 121, 127, 129, 146, 143, 121, 155, 119, 134, 123, 144, 122, 138, 153, 102, 128, 123, 126, 134, 125, 131, 106, 125, 118, 126, 121, 129, 122, 131, 129, 136, 135, 132, 109, 115, 139, 116, 131, 113, 120, 119, 129, 116, 119, 132, 142, 122, 126, 129, 141, 108, 146, 116, 126, 147, 129, 110, 139, 123, 120, 124, 113, 123, 113, 128, 124, 124, 126, 124, 146, 140, 132, 121, 137, 114, 124, 138, 114, 130, 123, 131, 100, 114, 111, 145, 120, 127, 123, 145, 122, 112, 134, 126, 117, 134, 127, 113, 130, 137, 125, 124, 111, 123, 116, 119, 123, 133, 110, 107, 127, 125, 137, 113, 125, 114, 115, 117, 128, 132, 154, 128, 133, 128, 110, 124, 131, 123, 121, 142, 124, 134, 126, 109, 120, 113, 133, 155, 137, 123, 124, 116, 111, 123, 124, 121, 142, 110, 107, 138, 139, 131, 124, 124, 129, 138, 125, 114, 113, 121, 101, 122, 119, 125, 125, 108, 130, 125, 126, 117, 109, 106, 130, 119, 143, 128, 117, 131, 115, 110, 124, 134, 110, 119, 142, 135, 110, 142, 129, 127, 138, 142, 138, 114, 116, 116, 117, 130, 123, 130, 133, 126, 142, 139, 115, 142, 106, 102, 134, 129, 117, 133, 116, 116, 111, 153, 131, 144, 145, 145, 125, 126, 140, 134, 127, 107, 126, 108, 137, 107, 136, 124, 122, 129, 113, 132, 155, 110, 134, 122, 125, 143, 131, 134, 132, 125, 135, 118, 129, 129, 135, 110, 135, 128, 118, 134, 124, 131, 108, 137, 137, 118, 113, 120, 126, 137, 127, 123, 132, 124, 123, 137, 125, 132, 117, 122, 130, 118, 122, 130, 126, 131, 122, 121, 123, 120, 132, 126, 120, 124, 139, 141, 129, 101, 136, 128, 107, 133, 128, 127, 124, 111, 123, 117, 135, 159, 118, 126, 120, 125, 132, 134, 128, 113, 123, 132, 121, 117, 149, 140, 114, 139, 128, 141, 126, 118, 120, 125, 132, 127, 157, 136, 108, 130, 130, 114, 125, 134, 124, 132, 116, 131, 122, 111, 137, 137, 120, 122, 139, 132, 134, 113, 129, 135, 126, 137, 133, 122, 123, 146, 122, 130, 118, 114, 113, 148, 129, 133, 139, 104, 146, 134, 111, 130, 110, 131, 132, 133, 123, 125, 118, 123, 128, 123, 120, 136, 104, 127, 124, 125, 117, 130, 120, 106, 139, 126, 131, 116, 117, 114, 127, 130, 121, 129, 131, 120, 121, 119, 122, 96, 131, 122, 129, 126, 130, 125, 126, 116, 138, 129, 139, 114, 122, 134, 128, 127, 117, 133, 126, 127, 132, 126, 124, 131, 136, 119, 143, 131, 120, 136, 106, 132, 123, 102, 125, 135, 114, 128, 123, 124, 126, 134, 124, 115, 130, 131, 119, 128, 131, 132, 131, 124, 132, 110, 109, 129, 120, 109, 118, 137, 150, 142, 128, 125, 134, 121, 120, 117, 127, 138, 141, 116, 113, 130, 105, 127, 126, 151, 115, 122, 135, 137, 118, 127, 124, 134, 107, 137, 123, 134, 137, 137, 132, 139, 132, 119, 127, 115, 128, 129, 129, 116, 131, 139, 122, 108, 145, 115, 130, 109, 116, 131, 131, 134, 122, 125, 117, 141, 134, 114, 147, 127, 109, 126, 109, 123, 123, 142, 125, 105, 109, 134, 121, 123, 125, 148, 109, 156, 120, 124, 107, 127, 135, 127, 134, 131, 118, 157, 126, 140, 146, 122, 138, 126, 113, 138, 134, 125, 114, 123, 127, 147, 139, 117, 123, 113, 131, 116, 129, 130, 123, 123, 125, 124, 120, 129, 129, 131, 112, 122, 116, 123, 114, 123, 135, 117, 116, 136, 124, 117, 91, 123, 123, 134, 129, 133, 121, 141, 126, 124, 121, 107, 135, 125, 134, 132, 105, 132, 111, 114, 112, 121, 141, 133, 117, 134, 117, 117, 147, 114, 144, 122, 134, 127, 125, 131, 127, 137, 115, 130, 155, 142, 110, 129, 138, 130, 117, 113, 137, 152, 122, 136, 119, 117, 120, 137, 105, 111, 128, 130, 120, 115, 127, 137, 134, 130, 115, 142, 149, 120, 139, 140, 127, 128, 100, 111, 135, 122, 121, 118, 126, 117, 115, 133, 127, 139, 125, 115, 133, 122, 126, 116, 134, 110, 119, 112, 127, 136, 122, 120, 120, 136, 113, 133, 117, 133, 140, 131, 120, 145, 123, 136, 139, 122, 128, 123, 129, 121, 131, 127, 123, 118, 119, 138, 101, 136, 123, 117, 111, 115, 114, 118, 135, 110, 129, 119, 114, 134, 131, 120, 132, 128, 137, 123, 125, 129, 136, 119, 118, 131, 111, 132, 122, 122, 124, 125, 143, 96, 124, 128, 126, 139, 116, 123, 121, 129, 125, 118, 133, 123, 126, 127, 122, 138, 130, 121, 134, 130, 140, 136, 117, 164, 124, 97, 120, 125, 132, 132, 119, 132, 121, 132, 134, 126, 126, 133, 127, 139, 124, 127, 140, 149, 136, 126, 123, 121, 119, 122, 127, 115, 115, 117, 117, 126, 117, 127, 108, 139, 127, 121, 124, 131, 129, 107, 118, 139, 120, 133, 131, 112, 105, 117, 124, 126, 127, 128, 119, 112, 108, 132, 119, 146, 111, 121, 121, 129, 134, 126, 121, 119, 108, 106, 101, 112, 123, 118, 130, 106, 115, 115, 127, 122, 133, 122, 130, 118, 130, 119, 114, 107, 113, 130, 133, 130, 141, 143, 136, 122, 133, 124, 139, 120, 134, 146, 131, 105, 124, 116, 131, 121, 116, 120, 119, 123, 124, 127, 137, 101, 126, 109, 136, 129, 128, 128, 118, 111, 122, 124, 140, 144, 113, 131, 132, 118, 116, 117, 135, 115, 121, 114, 121, 112, 125, 115, 127, 126, 123, 105, 150, 123, 124, 123, 121, 116, 121, 122, 116, 118, 127, 123, 125, 122, 135, 136, 116, 126, 104, 141, 118, 145, 129, 153, 139, 117, 120, 112, 126, 103, 122, 132, 125, 129, 118, 127, 103, 129, 134, 128, 116, 124, 117, 140, 122, 109, 135, 123, 142, 125, 134, 125, 117, 127, 129, 106, 125, 127, 114, 132, 125, 121, 132, 124, 114, 112, 140, 136, 120, 135, 116, 131, 108, 151, 122, 110, 132, 117, 104, 115, 133, 112, 118, 118, 138, 147, 124, 131, 134, 126, 119, 121, 122, 137, 119, 128, 130, 123, 129, 124, 150, 123, 131, 106, 119, 109, 123, 103, 116, 128, 127, 126, 114, 136, 142, 108, 126, 127, 126, 126, 138, 137, 128, 160, 118, 117, 125, 131, 119, 120, 136, 129, 131, 135, 128, 127, 117, 145, 133, 119, 118, 140, 118, 115, 117, 128, 124, 111, 133, 123, 124, 128, 135, 108, 119, 144, 117, 117, 116, 117, 124, 125, 106, 121, 111, 138, 132, 127, 115, 120, 125, 134, 125, 132, 148, 135, 117, 135, 130, 143, 126, 121, 123, 147, 113, 102, 128, 129, 110, 135, 114, 135, 132, 132, 113, 144, 112, 129, 132, 130, 120, 127, 134, 123, 110, 115, 124, 128, 136, 119, 150, 126, 139, 116, 122, 124, 122, 140, 116, 137, 125, 132, 139, 130, 119, 128, 124, 125, 125, 102, 122, 123, 125, 136, 123, 149, 136, 133, 127, 138, 110, 137, 138, 123, 104, 132, 122, 126, 124, 119, 143, 130, 112, 117, 129, 136, 133, 126, 107, 135, 131, 142, 122, 120, 124, 128, 130, 139, 129, 121, 129, 140, 115, 122, 144, 113, 120, 110, 113, 121, 107, 146, 108, 143, 131, 134, 136, 115, 120, 122, 134, 121, 117, 123, 124, 137, 119, 141, 123, 121, 139, 112, 121, 134, 125, 134, 115, 126, 117, 130, 116, 131, 143, 154, 140, 126, 110, 128, 125, 123, 132, 118, 114, 122, 124, 141, 125, 129, 123, 118, 136, 125, 120, 117, 129, 116, 128, 135, 129, 134, 114, 128, 118, 129, 120, 124, 136, 109, 131, 113, 113, 141, 139, 126, 127, 116, 141, 129, 118, 120, 128, 132, 113, 127, 137, 129, 137, 120, 124, 127, 122, 128, 124, 137, 131, 129, 113, 162, 116, 130, 123, 134, 146, 130, 130, 130, 120, 116, 130, 123, 114, 118, 127, 125, 130, 131, 126, 122, 108, 122, 123, 132, 127, 132, 117, 107, 130, 118, 119, 130, 132, 119, 130, 134, 114, 114, 136, 138, 111, 134, 122, 140, 119, 124, 126, 126, 124, 123, 139, 130, 125, 121, 119, 125, 135, 119, 129, 138, 122, 150, 127, 127, 133, 132, 116, 128, 119, 128, 131, 139, 122, 154, 125, 112, 124, 122, 119, 135, 115, 130, 132, 127, 120, 109, 136, 136, 129, 125, 150, 128, 122, 140, 108, 131, 120, 124, 149, 129, 122, 147, 116, 138, 143, 114, 113, 140, 106, 119, 122, 130, 128, 114, 120, 128, 142, 139, 120, 113, 125, 127, 114, 123, 118, 123, 119, 129, 151, 120, 144, 132, 113, 131, 155, 130, 86, 119, 122, 131, 122, 116, 134, 136, 138, 130, 127, 128, 119, 131, 128, 133, 131, 117, 113, 112, 128, 134, 128, 129, 134, 141, 135, 126, 131, 116, 139, 134, 108, 126, 118, 116, 122, 122, 112, 116, 125, 133, 130, 123, 116, 138, 110, 127, 117, 127, 120, 110, 120, 109, 128, 128, 125, 122, 124, 121, 129, 135, 116, 134, 103, 126, 126, 106, 118, 115, 108, 122, 105, 130, 106, 133, 121, 128, 123, 132, 132, 139, 129, 132, 121, 128, 134, 121, 126, 123, 119, 130, 113, 121, 126, 111, 120, 129, 120, 115, 125, 113, 126, 115, 124, 133, 124, 132, 116, 107, 102, 109, 130, 120, 123, 119, 97, 119, 117, 131, 129, 129, 118, 109, 116, 149, 113, 124, 122, 150, 137, 130, 126, 114, 111, 119, 130, 121, 117, 137, 129, 143, 113, 126, 138, 134, 133, 119, 125, 115, 143, 129, 139, 130, 122, 138, 131, 123, 120, 117, 139, 122, 126, 111, 137, 125, 104, 115, 119, 116, 134, 129, 135, 116, 128, 120, 125, 125, 139, 129, 134, 126, 110, 130, 111, 119, 121, 124, 122, 128, 130, 129, 117, 135, 102, 118, 119, 136, 126, 139, 113, 124, 139, 135, 119, 129, 121, 107, 122, 126, 123, 118, 111, 125, 126, 138, 120, 124, 131, 134, 132, 134, 119, 134, 137, 128, 141, 122, 135, 129, 139, 125, 136, 142, 125, 126, 117, 120, 144, 121, 113, 119, 120, 114, 138, 123, 126, 124, 139, 137, 116, 122, 103, 125, 134, 149, 120, 119, 129, 115, 123, 125, 107, 106, 117, 129, 130, 96, 131, 123, 132, 130, 136, 114, 122, 110, 128, 120, 140, 139, 126, 132, 104, 130, 145, 121, 131, 140, 120, 129, 117, 126, 117, 132, 114, 107, 117, 127, 130, 150, 124, 111, 121, 124, 138, 133, 132, 128, 128, 142, 115, 135, 113, 129, 126, 145, 127, 115, 145, 126, 148, 119, 121, 123, 143, 120, 117, 120, 120, 118, 134, 130, 137, 133, 134, 128, 137, 133, 125, 135, 129, 111, 135, 119, 127, 157, 107, 130, 117, 123, 120, 127, 129, 131, 117, 123, 127, 126, 141, 127, 122, 137, 125, 133, 113, 114, 117, 139, 119, 138, 137, 119, 123, 133, 126, 136, 112, 126, 117, 131, 121, 120, 135, 132, 124, 125, 125, 131, 142, 129, 135, 120, 116, 132, 129, 121, 130, 119, 124, 110, 108, 152, 122, 123, 134, 124, 131, 126, 122, 123, 127, 139, 140, 128, 133, 122, 111, 101, 118, 144, 131, 131, 121, 132, 113, 143, 103, 122, 118, 118, 123, 131, 118, 114, 139, 119, 112, 119, 129, 140, 112, 130, 136, 126, 138, 108, 145, 126, 122, 118, 115, 155, 126, 125, 115, 115, 140, 133, 141, 140, 138, 100, 139, 114, 128, 117, 149, 112, 116, 126, 123, 126, 110, 111, 124, 143, 123, 126, 121, 117, 118, 133, 118, 105, 108, 113, 133, 120, 120, 131, 127, 114, 121, 120, 139, 115, 140, 127, 118, 122, 137, 133, 127, 124, 147, 112, 109, 131, 118, 121, 126, 120, 113, 134, 125, 122, 124, 126, 133, 116, 133, 118, 119, 126, 124, 119, 140, 120, 134, 122, 116, 124, 128, 122, 119, 129, 133, 112, 107, 124, 111, 120, 134, 133, 94, 131, 126, 128, 138, 125, 110, 130, 136, 113, 119, 128, 130, 115, 124, 119, 123, 109, 126, 133, 120, 120, 131, 128, 123, 134, 115, 130, 136, 115, 127, 119, 138, 118, 129, 122, 140, 118, 132, 134, 132, 104, 125, 131, 123, 127, 142, 129, 116, 129, 122, 122, 138, 128, 121, 134, 142, 128, 109, 126, 125, 132, 130, 125, 122, 127, 134, 125, 132, 115, 108, 110, 112, 129, 112, 149, 116, 137, 109, 117, 118, 133, 117, 116, 121, 132, 129, 105, 136, 136, 122, 129, 120, 126, 136, 150, 126, 129, 136, 130, 136, 132, 125, 124, 124, 115, 126, 128, 128, 112, 131, 117, 131, 133, 130, 144, 136, 120, 114, 134, 128, 126, 131, 126, 133, 131, 128, 114, 124, 139, 130, 118, 120, 135, 130, 134, 120, 122, 103, 131, 120, 145, 113, 131, 100, 123, 119, 126, 128, 107, 125, 114, 138, 128, 117, 135, 144, 125, 124, 114, 124, 145, 98, 143, 126, 130, 136, 156, 122, 137, 149, 109, 124, 148, 105, 123, 111, 155, 138, 126, 137, 126, 125, 119, 127, 138, 117, 119, 125, 133, 128, 127, 138, 137, 130, 121, 157, 117, 121, 133, 121, 118, 107, 121, 139, 134, 134, 122, 128, 140, 114, 116, 134, 111, 130, 121, 122, 126, 113, 144, 110, 120, 116, 112, 107, 140, 107, 116, 127, 124, 113, 135, 117, 125, 129, 131, 135, 138, 115, 128, 121, 134, 108, 115, 141, 130, 142, 110, 113, 135, 128, 130, 124, 139, 125, 118, 140, 126, 114, 126, 125, 121, 116, 147, 124, 126, 122, 122, 129, 139, 118, 129, 120, 119, 112, 122, 129, 143, 139, 118, 131, 125, 132, 115, 121, 121, 125, 127, 134, 134, 135, 119, 99, 124, 142, 124, 126, 130, 132, 132, 124, 135, 133, 122, 124, 126, 150, 140, 105, 122, 135, 121, 106, 126, 134, 141, 127, 123, 134, 122, 125, 113, 123, 124, 129, 126, 136, 126, 140, 128, 128, 119, 133, 121, 125, 138, 140, 126, 129, 126, 126, 123, 129, 122, 131, 143, 145, 114, 107, 126, 137, 129, 153, 142, 126, 119, 113, 122, 129, 131, 120, 119, 114, 115, 124, 133, 116, 112, 142, 113, 115, 124, 123, 128, 125, 123, 139, 118, 137, 131, 143, 143, 143, 130, 131, 116, 119, 111, 101, 113, 130, 136, 141, 124, 99, 152, 130, 134, 127, 116, 147, 117, 139, 111, 112, 125, 123, 118, 128, 126, 129, 133, 133, 120, 122, 122, 116, 119, 132, 124, 122, 130, 128, 121, 126, 120, 129, 142, 112, 128, 116, 136, 132, 135, 120, 125, 124, 108, 123, 126, 108, 149, 146, 123, 129, 132, 127, 132, 124, 126, 118, 119, 123, 127, 131, 120, 136, 112, 137, 134, 121, 129, 135, 132, 106, 132, 126, 120, 142, 130, 102, 105, 123, 121, 105, 140, 109, 135, 117, 119, 134, 147, 113, 118, 118, 144, 130, 116, 138, 144, 131, 126, 139, 123, 134, 139, 131, 110, 131, 124, 151, 141, 117, 142, 133, 122, 119, 138, 123, 136, 132, 131, 137, 124, 106, 115, 140, 112, 150, 138, 121, 124, 129, 131, 110, 99, 134, 110, 124, 131, 123, 137, 130, 138, 129, 118, 125, 110, 114, 136, 130, 121, 113, 123, 113, 114, 111, 118, 114, 143, 125, 133, 129, 136, 123, 119, 134, 116, 122, 120, 131, 124, 110, 112, 112, 130, 125, 130, 125, 138, 121, 144, 122, 125, 121, 116, 126, 120, 113, 124, 128, 133, 113, 127, 137, 134, 126, 118, 99, 123, 113, 124, 115, 124, 149, 127, 137, 126, 121, 111, 127, 113, 142, 118, 123, 100, 94, 114, 114, 116, 124, 115, 132, 145, 127, 120, 132, 133, 121, 129, 131, 114, 111, 118, 129, 135, 138, 123, 121, 138, 106, 114, 105, 123, 124, 125, 124, 114, 113, 122, 114, 128, 131, 118, 146, 125, 126, 132, 123, 127, 130, 121, 125, 129, 132, 137, 135, 119, 131, 131, 121, 122, 129, 111, 114, 128, 124, 124, 130, 149, 96, 127, 107, 128, 122, 134, 135, 131, 113, 136, 131, 120, 139, 108, 111, 128, 146, 124, 131, 125, 145, 134, 113, 139, 115, 120, 138, 122, 129, 125, 146, 112, 133, 124, 125, 117, 130, 137, 125, 117, 126, 126, 123, 123, 131, 126, 139, 107, 133, 127, 137, 120, 118, 136, 127, 145, 137, 122, 128, 121, 109, 121, 144, 135, 141, 126, 138, 131, 108, 113, 142, 116, 142, 119, 118, 131, 111, 132, 140, 136, 119, 124, 124, 146, 139, 133, 152, 145, 146, 131, 132, 123, 147, 119, 133, 116, 118, 134, 125, 121, 123, 128, 129, 125, 118, 128, 140, 125, 135, 133, 115, 129, 125, 106, 140, 130, 120, 130, 130, 121, 116, 131, 129, 125, 133, 115, 112, 123, 133, 106, 138, 107, 125, 109, 150, 117, 122, 124, 115, 121, 128, 142, 116, 113, 133, 121, 129, 139, 136, 125, 120, 122, 123, 125, 124, 108, 126, 127, 135, 122, 126, 143, 129, 126, 123, 118, 118, 114, 125, 130, 133, 114, 113, 140, 119, 135, 109, 126, 137, 127, 113, 131, 109, 129, 141, 121, 128, 141, 140, 123, 136, 132, 135, 127, 129, 125, 125, 132, 144, 125, 150, 131, 128, 118, 135, 132, 128, 124, 119, 123, 146, 132, 121, 129, 114, 110, 125, 123, 111, 114, 133, 134, 99, 118, 127, 125, 133, 133, 130, 109, 108, 106, 124, 117, 138, 85, 141, 126, 129, 128, 128, 119, 132, 128, 110, 124, 122, 129, 132, 125, 118, 137, 108, 116, 119, 123, 130, 115, 123, 136, 132, 116, 131, 128, 129, 146, 139, 113, 115, 114, 112, 112, 135, 120, 124, 127, 132, 117, 128, 113, 135, 130, 125, 106, 119, 142, 128, 144, 126, 117, 127, 119, 131, 123, 137, 139, 116, 113, 126, 140, 122, 111, 113, 109, 108, 114, 105, 118, 128, 117, 123, 124, 127, 116, 118, 126, 141, 123, 116, 120, 117, 119, 118, 125, 117, 139, 116, 128, 105, 134, 139, 132, 114, 117, 115, 112, 110, 147, 132, 141, 130, 121, 122, 138, 120, 130, 129, 116, 125, 132, 132, 110, 111, 142, 144, 123, 117, 130, 120, 119, 128, 126, 111, 134, 132, 117, 131, 123, 121, 113, 116, 124, 118, 126, 129, 130, 131, 120, 114, 118, 134, 126, 99, 120, 143, 115, 107, 132, 140, 135, 112, 120, 127, 102, 136, 129, 130, 126, 133, 111, 126, 123, 123, 130, 135, 141, 123, 126, 110, 126, 120, 112, 116, 139, 126, 135, 130, 137, 139, 127, 139, 123, 115, 129, 120, 143, 117, 144, 112, 119, 142, 161, 132, 137, 126, 107, 117, 130, 123, 122, 128, 109, 113, 136, 120, 120, 123, 109, 135, 127, 131, 125, 128, 131, 128, 116, 125, 123, 116, 128, 134, 121, 121, 118, 125, 113, 120, 118, 123, 106, 109, 113, 132, 123, 128, 136, 124, 122, 122, 137, 144, 107, 139, 134, 134, 124, 119, 123, 137, 143, 123, 127, 112, 96, 125, 109, 135, 121, 119, 121, 143, 126, 130, 128, 125, 131, 123, 123, 135, 114, 119, 111, 110, 127, 120, 129, 134, 125, 115, 114, 122, 119, 131, 118, 121, 125, 134, 132, 115, 119, 138, 121, 133, 121, 122, 120, 139, 121, 129, 133, 116, 135, 128, 131, 124, 114, 125, 110, 130, 147, 120, 121, 115, 124, 120, 130, 142, 123, 112, 130, 117, 145, 124, 128, 121, 116, 125, 119, 109, 149, 123, 118, 124, 122, 125, 125, 117, 125, 135, 126, 143, 140, 120, 130, 131, 127, 112, 119, 117, 128, 132, 121, 136, 127, 114, 125, 140, 115, 132, 129, 124, 117, 121, 128, 118, 119, 121, 119, 126, 126, 128, 141, 133, 120, 128, 130, 138, 133, 118, 118, 129, 111, 147, 122, 108, 151, 141, 129, 138, 132, 135, 122, 116, 119, 139, 127, 114, 130, 115, 130, 120, 134, 129, 113, 129, 145, 129, 130, 110, 145, 125, 107, 123, 120, 126, 115, 122, 122, 136, 125, 115, 126, 118, 131, 139, 114, 139, 119, 133, 109, 132, 140, 132, 119, 121, 131, 126, 141, 125, 120, 143, 143, 135, 123, 121, 123, 104, 138, 132, 123, 117, 129, 132, 125, 125, 126, 127, 120, 128, 133, 121, 134, 125, 123, 123, 118, 128, 134, 121, 130, 114, 118, 143, 124, 113, 137, 117, 136, 123, 131, 106, 134, 140, 125, 134, 145, 114, 133, 144, 124, 128, 118, 144, 112, 108, 112, 122, 113, 126, 118, 119, 124, 148, 124, 139, 131, 129, 129, 127, 136, 109, 123, 130, 129, 120, 122, 135, 133, 124, 133, 96, 138, 135, 105, 126, 134, 118, 127, 135, 119, 127, 138, 139, 120, 121, 119, 139, 128, 121, 124, 119, 141, 119, 124, 127, 136, 118, 121, 125, 140, 120, 120, 145, 124, 125, 134, 123, 124, 126, 115, 126, 124, 109, 126, 124, 121, 118, 110, 119, 131, 127, 128, 117, 125, 133, 135, 147, 122, 117, 149, 137, 123, 121, 114, 118, 125, 130, 129, 137, 124, 124, 113, 80, 117, 120, 162, 131, 127, 140, 117, 124, 113, 131, 119, 123, 129, 124, 110, 132, 124, 131, 107, 118, 138, 141, 115, 138, 119, 144, 121, 118, 126, 125, 135, 122, 149, 123, 128, 118, 120, 116, 139, 117, 128, 129, 122, 123, 135, 150, 139, 122, 111, 130, 118, 121, 126, 126, 122, 135, 133, 124, 142, 127, 131, 128, 126, 111, 116, 125, 144, 131, 148, 140, 136, 131, 138, 131, 126, 112, 115, 128, 138, 129, 129, 138, 133, 115, 119, 135, 120, 114, 120, 132, 135, 119, 123, 152, 126, 144, 132, 114, 112, 124, 125, 129, 129, 141, 130, 115, 110, 126, 134, 133, 125, 126, 113, 120, 126, 120, 121, 131, 131, 131, 102, 100, 132, 118, 126, 123, 135, 143, 122, 144, 120, 117, 108, 113, 127, 120, 115, 119, 120, 124, 131, 121, 130, 125, 122, 127, 125, 115, 132, 126, 124, 137, 142, 112, 121, 120, 123, 120, 134, 113, 125, 128, 114, 123, 118, 116, 119, 124, 117, 123, 148, 128, 124, 130, 122, 133, 103, 137, 136, 123, 131, 139, 124, 144, 125, 124, 123, 123, 138, 125, 130, 113, 117, 133, 135, 120, 127, 138, 117, 102, 107, 138, 142, 109, 131, 113, 123, 116, 133, 134, 137, 134, 134, 123, 130, 118, 126, 136, 103, 131, 116, 121, 133, 128, 125, 128, 120, 151, 137, 125, 118, 127, 130, 124, 118, 129, 119, 126, 120, 124, 128, 112, 134, 115, 113, 137, 132, 128, 105, 143, 128, 114, 127, 122, 128, 131, 120, 123, 123, 131, 116, 124, 133, 125, 114, 122, 112, 136, 115, 120, 108, 130, 110, 145, 141, 134, 120, 130, 129, 154, 120, 116, 111, 141, 132, 130, 130, 134, 147, 130, 124, 120, 140, 134, 122, 124, 138, 122, 125, 125, 133, 112, 119, 140, 143, 122, 123, 112, 134, 127, 124, 118, 132, 128, 118, 126, 133, 122, 108, 127, 120, 123, 126, 121, 135, 137, 125, 129, 120, 126, 124, 136, 129, 132, 148, 127, 130, 138, 125, 125, 123, 129, 132, 125, 126, 142, 119, 140, 122, 132, 118, 131, 146, 127, 135, 135, 136, 128, 123, 116, 112, 128, 127, 122, 130, 134, 130, 131, 125, 132, 119, 145, 139, 128, 131, 111, 129, 118, 111, 114, 122, 125, 134, 112, 141, 123, 130, 129, 120, 133, 133, 111, 120, 132, 118, 144, 126, 131, 133, 130, 119, 138, 122, 122, 146, 121, 117, 121, 127, 126, 107, 110, 120, 122, 135, 123, 125, 141, 119, 118, 122, 114, 126, 130, 128, 126, 112, 127, 129, 129, 121, 121, 131, 130, 131, 137, 118, 120, 124, 131, 94, 121, 123, 128, 128, 139, 120, 140, 118, 123, 114, 131, 116, 127, 110, 137, 137, 124, 130, 125, 120, 127, 113, 137, 109, 122, 121, 121, 110, 126, 137, 122, 142, 126, 124, 136, 119, 128, 117, 133, 134, 132, 137, 115, 132, 130, 134, 124, 119, 132, 124, 137, 129, 122, 128, 140, 110, 111, 131, 125, 149, 120, 142, 130, 123, 129, 124, 117, 120, 122, 134, 110, 129, 115, 117, 133, 126, 151, 124, 116, 129, 123, 128, 117, 131, 119, 123, 127, 125, 133, 123, 116, 116, 126, 122, 123, 105, 124, 121, 129, 119, 108, 125, 128, 119, 132, 125, 129, 129, 133, 122, 136, 133, 130, 124, 134, 121, 128, 129, 149, 142, 122, 121, 128, 125, 120, 143, 119, 126, 119, 122, 113, 122, 120, 114, 116, 120, 145, 130, 129, 129, 130, 124, 116, 138, 125, 120, 143, 113, 134, 135, 123, 120, 117, 133, 133, 125, 130, 135, 122, 127, 119, 126, 118, 113, 129, 128, 123, 144, 119, 127, 107, 115, 123, 118, 121, 118, 102, 116, 145, 123, 121, 118, 128, 130, 113, 119, 119, 127, 130, 125, 135, 137, 127, 142, 118, 128, 124, 126, 129, 112, 119, 109, 126, 128, 123, 121, 123, 148, 138, 126, 111, 132, 144, 128, 151, 129, 125, 108, 127, 133, 137, 133, 120, 113, 120, 121, 124, 131, 139, 135, 142, 117, 112, 120, 136, 123, 120, 126, 130, 103, 109, 118, 112, 138, 128, 106, 124, 124, 120, 148, 115, 133, 142, 129, 121, 112, 124, 151, 126, 115, 128, 127, 121, 124, 131, 155, 117, 116, 139, 119, 128, 127, 108, 127, 118, 122, 120, 123, 127, 149, 119, 133, 133, 120, 136, 142, 109, 130, 115, 133, 120, 149, 128, 113, 125, 122, 126, 106, 109, 117, 124, 129, 120, 128, 142, 129, 109, 130, 139, 138, 123, 115, 136, 108, 154, 122, 135, 137, 114, 132, 144, 128, 119, 155, 118, 128, 135, 124, 130, 99, 135, 118, 126, 125, 151, 143, 114, 133, 145, 127, 123, 123, 124, 112, 141, 128, 123, 125, 125, 133, 135, 134, 132, 126, 122, 137, 125, 123, 126, 106, 115, 116, 131, 109, 138, 124, 137, 136, 128, 114, 123, 126, 104, 129, 101, 122, 109, 127, 120, 120, 128, 135, 129, 141, 126, 125, 123, 122, 135, 104, 110, 134, 128, 131, 131, 109, 112, 131, 120, 120, 119, 121, 114, 95, 141, 126, 139, 111, 125, 126, 125, 109, 114, 116, 122, 114, 148, 110, 127, 122, 132, 116, 124, 130, 117, 124, 147, 128, 160, 132, 132, 120, 104, 128, 129, 112, 137, 124, 117, 129, 119, 125, 127, 128, 141, 115, 120, 133, 123, 119, 142, 130, 140, 123, 129, 129, 142, 132, 132, 126, 134, 129, 112, 137, 125, 126, 124, 121, 139, 96, 125, 135, 147, 126, 122, 149, 107, 100, 118, 135, 123, 116, 129, 132, 116, 131, 133, 138, 127, 112, 124, 137, 107, 125, 115, 145, 127, 128, 134, 123, 123, 136, 130, 123, 127, 137, 132, 120, 138, 132, 130, 113, 151, 134, 122, 138, 130, 131, 121, 125, 109, 113, 136, 119, 123, 127, 112, 124, 109, 126, 129, 124, 121, 132, 136, 144, 129, 121, 145, 130, 114, 119, 123, 116, 107, 127, 141, 125, 131, 127, 124, 137, 139, 125, 115, 132, 116, 118, 112, 118, 114, 106, 118, 119, 114, 110, 132, 148, 129, 126, 127, 120, 126, 128, 121, 125, 121, 135, 129, 127, 136, 111, 114, 120, 135, 145, 123, 129, 126, 112, 134, 126, 145, 139, 133, 115, 115, 147, 113, 118, 131, 111, 125, 122, 130, 131, 128, 105, 132, 124, 140, 111, 120, 124, 121, 116, 116, 125, 115, 120, 131, 131, 137, 125, 126, 124, 132, 112, 118, 132, 119, 129, 119, 148, 131, 128, 138, 121, 126, 131, 122, 103, 127, 134, 134, 113, 114, 124, 124, 129, 140, 141, 125, 125, 128, 139, 123, 127, 126, 100, 129, 138, 128, 116, 138, 130, 133, 126, 127, 110, 120, 127, 135, 123, 127, 112, 133, 130, 137, 141, 112, 135, 129, 112, 123, 138, 128, 123, 138, 119, 115, 117, 124, 135, 121, 135, 123, 133, 101, 140, 122, 127, 124, 149, 135, 130, 129, 114, 125, 134, 135, 125, 123, 124, 106, 152, 128, 120, 126, 111, 140, 132, 131, 120, 127, 121, 135, 122, 125, 139, 115, 117, 129, 129, 128, 115, 122, 121, 132, 102, 106, 122, 145, 132, 129, 129, 120, 124, 123, 130, 109, 134, 136, 113, 129, 133, 118, 129, 126, 136, 132, 117, 138, 118, 125, 138, 137, 117, 101, 135, 130, 125, 107, 137, 116, 142, 129, 121, 111, 121, 129, 121, 140, 132, 139, 129, 115, 115, 114, 127, 134, 140, 141, 115, 115, 133, 120, 119, 119, 146, 112, 137, 133, 134, 117, 147, 117, 126, 123, 132, 123, 113, 119, 133, 155, 100, 134, 123, 120, 117, 126, 127, 116, 147, 122, 128, 127, 128, 145, 118, 134, 126, 139, 126, 126, 128, 121, 126, 127, 139, 110, 123, 126, 125, 142, 131, 124, 129, 123, 111, 120, 129, 124, 132, 118, 145, 139, 116, 129, 113, 127, 154, 112, 115, 129, 147, 125, 122, 126, 130, 130, 143, 103, 123, 122, 113, 117, 115, 136, 121, 118, 127, 126, 119, 119, 107, 121, 129, 124, 129, 139, 126, 135, 115, 120, 124, 131, 120, 127, 138, 115, 124, 106, 123, 114, 110, 132, 116, 141, 126, 116, 130, 125, 150, 113, 109, 123, 133, 116, 126, 118, 148, 134, 142, 130, 134, 122, 111, 101, 112, 132, 121, 138, 131, 117, 137, 128, 140, 116, 141, 116, 125, 124, 129, 138, 112, 118, 109, 132, 113, 122, 117, 125, 148, 107, 126, 129, 134, 133, 133, 125, 123, 126, 126, 120, 127, 107, 131, 134, 133, 112, 106, 129, 123, 120, 129, 131, 148, 140, 129, 123, 128, 121, 119, 114, 134, 139, 117, 128, 124, 128, 127, 123, 103, 124, 123, 117, 129, 123, 139, 121, 127, 115, 131, 136, 135, 126, 118, 126, 123, 109, 126, 119, 127, 114, 114, 139, 126, 110, 122, 133, 127, 112, 126, 111, 110, 133, 106, 126, 118, 122, 122, 137, 103, 115, 132, 134, 128, 122, 133, 118, 131, 93, 126, 117, 105, 130, 121, 124, 127, 145, 102, 143, 111, 145, 117, 121, 119, 128, 122, 120, 117, 107, 119, 127, 116, 129, 129, 134, 123, 139, 133, 119, 126, 129, 117, 121, 117, 107, 132, 128, 115, 133, 120, 125, 131, 121, 114, 135, 126, 125, 128, 131, 109, 123, 114, 140, 119, 129, 114, 128, 124, 116, 129, 118, 144, 125, 119, 117, 135, 124, 144, 134, 131, 132, 133, 114, 136, 131, 115, 138, 125, 116, 122, 127, 123, 117, 107, 147, 129, 134, 138, 129, 113, 120, 131, 124, 126, 112, 125, 100, 136, 147, 122, 141, 126, 125, 115, 116, 109, 123, 121, 134, 121, 129, 121, 129, 123, 112, 123, 123, 118, 134, 125, 115, 108, 109, 137, 127, 120, 105, 127, 131, 118, 128, 115, 124, 120, 129, 114, 120, 119, 132, 130, 127, 134, 134, 119, 112, 116, 107, 169, 102, 127, 120, 115, 117, 118, 111, 149, 115, 142, 123, 129, 105, 122, 126, 121, 128, 123, 128, 123, 117, 132, 140, 124, 119, 129, 126, 129, 119, 129, 141, 128, 117, 118, 127, 127, 119, 131, 120, 122, 119, 127, 116, 138, 126, 124, 122, 141, 136, 121, 124, 115, 116, 131, 126, 126, 120, 122, 127, 123, 122, 155, 121, 114, 128, 138, 121, 128, 126, 136, 131, 126, 134, 132, 135, 135, 107, 125, 136, 144, 126, 117, 133, 92, 137, 135, 122, 116, 133, 128, 120, 143, 122, 129, 126, 115, 122, 127, 145, 118, 128, 124, 133, 119, 130, 111, 150, 128, 127, 128, 135, 123, 141, 109, 134, 127, 121, 125, 128, 120, 144, 162, 115, 122, 137, 130, 126, 123, 124, 115, 114, 124, 119, 129, 134, 145, 132, 147, 144, 121, 136, 128, 109, 121, 103, 127, 149, 145, 120, 122, 120, 134, 143, 124, 126, 129, 157, 114, 107, 139, 120, 115, 139, 115, 127, 132, 112, 108, 116, 138, 120, 113, 138, 129, 139, 121, 132, 121, 116, 119, 125, 140, 139, 126, 105, 127, 116, 132, 121, 128, 126, 134, 146, 115, 116, 129, 122, 128, 100, 132, 129, 107, 141, 115, 109, 129, 112, 129, 121, 115, 131, 126, 130, 118, 133, 117, 128, 129, 121, 121, 121, 108, 133, 137, 143, 109, 111, 130, 131, 138, 117, 131, 126, 131, 119, 115, 101, 110, 124, 107, 108, 117, 123, 124, 117, 134, 107, 126, 104, 131, 119, 130, 148, 141, 122, 115, 141, 121, 117, 110, 142, 127, 125, 127, 133, 110, 133, 113, 112, 119, 119, 128, 128, 124, 129, 109, 115, 125, 136, 122, 105, 125, 129, 119, 118, 129, 123, 122, 104, 141, 127, 105, 147, 121, 132, 120, 128, 135, 127, 123, 115, 120, 121, 135, 130, 103, 113, 138, 117, 151, 125, 115, 119, 130, 128, 129, 119, 130, 128, 126, 137, 126, 120, 139, 121, 114, 126, 127, 100, 124, 129, 134, 112, 120, 127, 126, 124, 105, 129, 154, 126, 114, 110, 124, 124, 127, 141, 135, 106, 109, 125, 109, 112, 111, 126, 114, 105, 137, 141, 105, 130, 125, 142, 102, 132, 126, 132, 131, 128, 133, 124, 120, 128, 121, 141, 119, 122, 136, 127, 128, 130, 136, 123, 141, 115, 131, 132, 111, 126, 117, 149, 135, 136, 103, 139, 126, 129, 127, 127, 132, 107, 149, 132, 122, 121, 130, 121, 128, 114, 125, 122, 123, 121, 115, 134, 113, 126, 124, 133, 131, 117, 136, 139, 138, 108, 121, 125, 119, 113, 126, 138, 131, 119, 118, 114, 134, 125, 145, 135, 130, 129, 136, 120, 138, 99, 115, 112, 114, 117, 128, 132, 121, 127, 127, 129, 127, 137, 125, 124, 139, 131, 144, 136, 108, 137, 115, 130, 121, 117, 132, 126, 135, 122, 121, 129, 107, 116, 122, 121, 126, 133, 116, 110, 128, 112, 114, 122, 108, 136, 133, 88, 116, 133, 128, 141, 128, 123, 100, 135, 128, 120, 143, 146, 123, 111, 110, 128, 140, 113, 131, 124, 107, 124, 126, 121, 142, 121, 120, 124, 134, 124, 135, 113, 146, 123, 121, 110, 148, 120, 133, 130, 87, 143, 124, 117, 138, 108, 136, 112, 136, 125, 124, 114, 119, 126, 122, 110, 129, 125, 104, 117, 131, 125, 131, 105, 143, 127, 107, 131, 132, 139, 137, 131, 124, 127, 146, 136, 130, 127, 103, 126, 114, 123, 127, 137, 125, 127, 99, 134, 129, 112, 147, 120, 126, 146, 115, 136, 135, 122, 130, 126, 117, 113, 121, 125, 135, 126, 124, 134, 126, 116, 132, 127, 128, 125, 140, 119, 119, 123, 116, 120, 125, 126, 121, 133, 126, 130, 140, 132, 136, 154, 130, 137, 126, 118, 138, 111, 128, 106, 118, 112, 122, 124, 131, 129, 115, 108, 119, 131, 111, 122, 133, 124, 120, 123, 117, 119, 122, 131, 130, 136, 138, 105, 124, 134, 129, 126, 133, 141, 131, 122, 119, 142, 120, 131, 126, 127, 133, 134, 121, 128, 125, 130, 112, 125, 127, 142, 114, 128, 116, 113, 146, 121, 137, 111, 113, 119, 138, 123, 112, 128, 132, 126, 135, 138, 128, 158, 126, 113, 124, 134, 133, 122, 138, 114, 122, 139, 137, 144, 128, 123, 132, 139, 142, 118, 125, 128, 135, 132, 134, 116, 141, 118, 117, 130, 132, 130, 134, 125, 130, 141, 114, 117, 124, 122, 136, 136, 125, 125, 131, 141, 131, 139, 115, 118, 129, 121, 122, 143, 147, 114, 122, 128, 120, 122, 116, 100, 121, 119, 110, 140, 116, 113, 127, 141, 122, 115, 136, 131, 136, 125, 137, 127, 124, 115, 111, 131, 127, 125, 114, 122, 131, 121, 117, 115, 118, 131, 122, 135, 137, 114, 127, 131, 132, 133, 124, 135, 106, 106, 139, 104, 129, 117, 110, 133, 136, 111, 118, 144, 116, 118, 115, 128, 126, 124, 135, 114, 124, 148, 134, 131, 146, 132, 133, 122, 115, 131, 132, 128, 129, 136, 117, 132, 134, 138, 131, 123, 117, 124, 117, 129, 127, 124, 105, 129, 137, 122, 125, 109, 111, 112, 119, 118, 124, 105, 119, 124, 134, 135, 127, 152, 129, 134, 125, 121, 124, 121, 116, 136, 116, 106, 138, 125, 122, 120, 119, 118, 126, 138, 109, 107, 122, 138, 131, 106, 118, 129, 126, 142, 119, 125, 126, 111, 133, 129, 130, 128, 131, 127, 112, 133, 121, 125, 110, 122, 123, 117, 131, 135, 129, 124, 107, 142, 132, 117, 116, 118, 132, 144, 132, 123, 140, 133, 120, 136, 90, 145, 123, 112, 128, 137, 122, 124, 136, 123, 107, 120, 132, 130, 132, 125, 124, 111, 138, 122, 116, 112, 132, 113, 129, 119, 118, 121, 132, 139, 128, 129, 122, 122, 125, 121, 114, 108, 141, 118, 142, 162, 121, 111, 113, 133, 112, 124, 126, 134, 112, 146, 125, 113, 114, 122, 120, 131, 129, 112, 127, 147, 130, 109, 118, 122, 145, 118, 117, 142, 137, 143, 116, 107, 128, 134, 128, 117, 102, 158, 124, 132, 115, 121, 138, 118, 147, 127, 135, 120, 141, 118, 118, 110, 129, 134, 110, 129, 110, 116, 129, 117, 136, 123, 115, 127, 127, 138, 117, 128, 123, 128, 132, 128, 126, 123, 138, 124, 129, 108, 119, 126, 117, 132, 122, 143, 134, 128, 138, 97, 99, 141, 119, 117, 127, 129, 119, 117, 125, 126, 109, 143, 116, 133, 144, 116, 123, 128, 157, 127, 129, 141, 143, 142, 134, 133, 114, 121, 128, 123, 107, 119, 139, 136, 109, 126, 131, 136, 136, 127, 119, 151, 129, 108, 118, 129, 125, 130, 114, 131, 114, 120, 123, 96, 143, 121, 122, 118, 132, 141, 120, 119, 132, 134, 126, 129, 119, 133, 121, 109, 130, 125, 147, 123, 133, 135, 126, 128, 118, 134, 113, 150, 125, 134, 114, 110, 123, 124, 127, 125, 122, 126, 112, 121, 138, 83, 121, 128, 131, 123, 127, 119, 133, 127, 141, 128, 128, 123, 118, 134, 114, 125, 138, 117, 139, 123, 117, 112, 126, 126, 134, 117, 125, 140, 120, 130, 116, 108, 127, 117, 127, 128, 131, 133, 104, 139, 129, 127, 123, 137, 129, 132, 130, 122, 136, 132, 123, 122, 125, 136, 121, 122, 126, 126, 127, 129, 127, 130, 131, 120, 104, 108, 115, 125, 120, 133, 115, 124, 125, 127, 127, 135, 134, 126, 136, 121, 134, 126, 112, 120, 118, 118, 112, 134, 141, 152, 110, 115, 120, 113, 132, 108, 127, 122, 134, 133, 108, 120, 122, 113, 128, 122, 106, 157, 129, 123, 132, 113, 122, 90, 115, 121, 109, 132, 136, 99, 129, 136, 117, 137, 128, 122, 126, 131, 114, 141, 131, 131, 112, 117, 126, 110, 134, 118, 113, 116, 121, 112, 126, 143, 126, 130, 127, 124, 125, 118, 149, 104, 136, 120, 137, 116, 118, 134, 123, 116, 112, 110, 145, 132, 126, 125, 122, 138, 125, 134, 126, 102, 98, 140, 108, 112, 118, 95, 131, 137, 122, 117, 140, 123, 129, 126, 114, 130, 128, 128, 122, 125, 110, 111, 122, 128, 119, 136, 110, 141, 122, 113, 142, 127, 130, 130, 117, 133, 126, 125, 107, 117, 112, 119, 125, 127, 125, 121, 133, 107, 128, 130, 129, 124, 143, 119, 130, 115, 116, 128, 135, 132, 118, 117, 112, 111, 124, 121, 125, 117, 116, 129, 124, 121, 131, 124, 127, 143, 120, 118, 116, 127, 113, 126, 117, 120, 137, 124, 140, 118, 108, 140, 121, 135, 114, 114, 134, 107, 127, 125, 123, 116, 126, 110, 127, 123, 122, 127, 129, 125, 128, 125, 121, 127, 123, 122, 100, 91, 124, 113, 120, 103, 135, 131, 122, 124, 116, 121, 130, 121, 145, 155, 122, 128, 132, 123, 113, 118, 127, 123, 141, 124, 123, 127, 124, 123, 106, 138, 118, 127, 116, 130, 122, 130, 127, 126, 125, 111, 138, 142, 108, 128, 133, 130, 140, 119, 124, 116, 131, 106, 131, 125, 115, 127, 110, 125, 128, 127, 137, 121, 122, 113, 125, 118, 121, 125, 127, 113, 130, 110, 147, 114, 130, 141, 106, 120, 129, 124, 136, 114, 126, 143, 114, 147, 118, 120, 127, 124, 116, 124, 126, 142, 135, 118, 132, 122, 130, 142, 131, 111, 124, 113, 129, 138, 126, 112, 139, 120, 114, 131, 113, 127, 123, 122, 114, 118, 107, 125, 125, 134, 110, 110, 141, 110, 122, 113, 145, 125, 138, 114, 92, 111, 138, 133, 119, 133, 144, 126, 124, 119, 124, 129, 114, 138, 136, 131, 145, 119, 119, 133, 109, 115, 127, 121, 140, 111, 130, 121, 128, 118, 143, 121, 107, 122, 120, 120, 118, 126, 121, 111, 130, 132, 125, 139, 112, 122, 127, 139, 140, 126, 123, 131, 126, 123, 137, 119, 135, 133, 116, 114, 132, 105, 128, 136, 126, 139, 117, 144, 130, 105, 137, 138, 114, 126, 141, 120, 124, 123, 127, 134, 144, 121, 137, 128, 134, 133, 124, 115, 157, 134, 124, 123, 115, 136, 123, 123, 122, 135, 121, 133, 124, 119, 132, 144, 123, 134, 126, 138, 131, 136, 106, 120, 125, 134, 146, 132, 116, 145, 109, 104, 127, 122, 119, 143, 118, 132, 128, 128, 115, 124, 123, 137, 126, 128, 118, 119, 116, 133, 111, 133, 120, 121, 111, 138, 147, 130, 130, 125, 123, 137, 131, 139, 128, 133, 121, 126, 142, 129, 132, 124, 114, 116, 122, 120, 119, 133, 114, 122, 137, 122, 119, 131, 125, 133, 124, 110, 136, 115, 130, 129, 106, 112, 130, 142, 114, 100, 117, 117, 142, 128, 133, 114, 110, 138, 123, 134, 113, 120, 121, 130, 114, 123, 116, 135, 129, 131, 124, 116, 115, 129, 125, 122, 121, 115, 130, 116, 123, 127, 113, 122, 132, 127, 121, 129, 128, 125, 124, 140, 122, 129, 129, 130, 131, 114, 144, 120, 114, 129, 125, 140, 128, 123, 136, 126, 108, 147, 114, 130, 116, 136, 120, 106, 135, 119, 134, 121, 127, 129, 129, 138, 157, 102, 93, 124, 109, 125, 120, 141, 109, 134, 115, 123, 136, 132, 116, 120, 142, 123, 118, 115, 149, 138, 130, 143, 132, 125, 120, 126, 124, 131, 124, 125, 110, 125, 121, 126, 110, 127, 125, 120, 147, 129, 131, 129, 142, 126, 109, 107, 124, 119, 123, 141, 121, 121, 141, 133, 129, 107, 125, 122, 124, 130, 130, 138, 119, 145, 130, 104, 124, 137, 134, 141, 126, 115, 132, 132, 119, 119, 128, 128, 130, 121, 140, 146, 113, 127, 116, 118, 121, 121, 132, 100, 133, 118, 121, 120, 141, 132, 133, 123, 113, 139, 126, 129, 121, 131, 116, 126, 120, 123, 133, 125, 131, 120, 124, 120, 130, 133, 129, 142, 99, 127, 122, 129, 121, 108, 124, 110, 131, 116, 118, 128, 143, 123, 132, 127, 122, 129, 126, 116, 131, 136, 133, 129, 131, 118, 117, 143, 128, 123, 129, 113, 129, 134, 118, 140, 132, 123, 115, 131, 138, 121, 111, 117, 119, 145, 124, 147, 112, 115, 135, 107, 121, 137, 128, 126, 116, 164, 101, 125, 152, 117, 125, 139, 117, 121, 118, 141, 123, 128, 105, 139, 126, 143, 102, 122, 117, 117, 123, 127, 144, 120, 132, 117, 114, 140, 111, 131, 139, 131, 134, 119, 122, 135, 148, 112, 135, 127, 144, 124, 134, 126, 120, 140, 136, 128, 123, 133, 131, 133, 105, 125, 114, 127, 140, 140, 111, 118, 129, 120, 118, 127, 120, 132, 127, 117, 106, 117, 131, 117, 116, 128, 126, 127, 127, 120, 138, 117, 140, 128, 109, 121, 121, 125, 128, 129, 123, 124, 139, 129, 135, 118, 122, 106, 107, 112, 126, 139, 132, 114, 116, 123, 135, 119, 132, 108, 115, 133, 115, 130, 131, 114, 133, 129, 127, 133, 108, 133, 123, 129, 98, 114, 121, 128, 115, 135, 123, 120, 127, 127, 139, 131, 126, 127, 159, 122, 123, 125, 116, 119, 122, 123, 113, 110, 117, 131, 139, 127, 118, 127, 120, 134, 136, 134, 121, 125, 129, 134, 145, 113, 115, 120, 133, 123, 125, 123, 139, 117, 118, 149, 115, 122, 122, 112, 123, 122, 129, 131, 131, 132, 114, 139, 112, 160, 132, 118, 127, 107, 124, 124, 113, 135, 131, 119, 112, 118, 124, 117, 117, 139, 129, 127, 122, 118, 107, 110, 120, 123, 116, 125, 125, 144, 134, 125, 132, 139, 129, 103, 109, 124, 115, 119, 126, 126, 123, 129, 141, 129, 115, 134, 128, 115, 133, 134, 107, 130, 105, 132, 114, 133, 121, 116, 120, 113, 121, 106, 105, 117, 130, 128, 125, 129, 122, 130, 113, 115, 127, 118, 128, 126, 134, 126, 124, 125, 118, 129, 126, 127, 110, 126, 118, 130, 113, 136, 136, 125, 141, 100, 125, 125, 118, 127, 129, 133, 133, 133, 115, 124, 122, 117, 153, 119, 131, 136, 125, 133, 139, 132, 119, 137, 133, 131, 121, 119, 130, 126, 118, 129, 121, 129, 127, 122, 130, 127, 133, 134, 133, 139, 127, 119, 122, 113, 126, 133, 118, 140, 121, 146, 115, 133, 131, 129, 116, 129, 122, 143, 112, 113, 122, 116, 127, 125, 128, 129, 118, 134, 111, 111, 119, 124, 100, 116, 127, 123, 130, 109, 141, 128, 121, 131, 118, 140, 132, 129, 114, 125, 137, 104, 120, 123, 133, 116, 121, 126, 117, 131, 115, 124, 139, 127, 109, 127, 139, 130, 113, 117, 126, 133, 141, 121, 116, 132, 136, 126, 122, 136, 132, 123, 128, 150, 119, 133, 123, 137, 119, 120, 115, 121, 121, 132, 125, 121, 136, 134, 130, 129, 141, 134, 127, 122, 131, 114, 123, 121, 127, 113, 120, 113, 121, 124, 116, 127, 141, 101, 124, 116, 117, 133, 136, 115, 135, 140, 108, 119, 106, 128, 137, 116, 105, 124, 113, 124, 116, 123, 116, 101, 128, 118, 122, 121, 120, 127, 127, 112, 120, 120, 128, 136, 144, 133, 125, 130, 148, 109, 129, 144, 120, 125, 144, 105, 136, 124, 123, 117, 120, 113, 124, 135, 117, 113, 143, 115, 144, 127, 105, 146, 134, 122, 105, 115, 130, 123, 117, 138, 122, 98, 138, 133, 107, 123, 120, 97, 128, 122, 128, 126, 134, 113, 120, 129, 134, 133, 122, 124, 116, 130, 118, 128, 110, 127, 133, 125, 134, 132, 137, 130, 120, 123, 118, 112, 136, 116, 135, 124, 121, 112, 133, 137, 138, 114, 141, 127, 118, 134, 124, 117, 129, 127, 126, 120, 143, 99, 112, 159, 115, 130, 122, 124, 125, 132, 114, 118, 147, 125, 137, 109, 109, 120, 130, 117, 117, 126, 129, 127, 122, 113, 128, 142, 130, 110, 131, 130, 107, 124, 106, 179, 117, 133, 118, 126, 147, 128, 111, 117, 132, 120, 125, 113, 132, 118, 128, 136, 121, 138, 127, 117, 116, 122, 117, 121, 126, 131, 136, 120, 124, 125, 119, 121, 126, 125, 112, 124, 133, 115, 118, 116, 137, 124, 136, 134, 135, 132, 131, 124, 144, 123, 130, 135, 144, 119, 124, 109, 122, 122, 139, 133, 143, 130, 124, 151, 134, 116, 114, 139, 128, 116, 132, 105, 132, 139, 145, 126, 126, 130, 134, 154, 101, 124, 108, 123, 126, 105, 132, 144, 146, 104, 124, 110, 125, 128, 125, 111, 118, 143, 136, 129, 126, 143, 122, 125, 119, 136, 142, 157, 118, 140, 128, 131, 138, 118, 116, 130, 110, 109, 136, 137, 125, 124, 115, 112, 125, 132, 150, 131, 116, 137, 109, 108, 122, 126, 131, 121, 108, 115, 131, 117, 107, 118, 143, 137, 136, 120, 128, 123, 129, 143, 117, 125, 110, 124, 130, 130, 131, 135, 111, 122, 135, 130, 121, 127, 121, 131, 106, 144, 120, 134, 134, 127, 135, 109, 107, 122, 132, 127, 116, 115, 110, 143, 115, 122, 116, 99, 112, 110, 134, 117, 133, 122, 123, 125, 131, 131, 136, 139, 122, 125, 140, 116, 112, 133, 156, 117, 130, 123, 124, 128, 137, 130, 121, 128, 137, 121, 137, 116, 107, 127, 134, 117, 122, 109, 120, 135, 130, 134, 131, 119, 126, 130, 145, 127, 123, 133, 131, 127, 121, 133, 141, 128, 129, 138, 115, 110, 123, 127, 123, 138, 114, 130, 125, 135, 116, 110, 135, 131, 114, 127, 130, 138, 130, 115, 128, 118, 115, 150, 120, 119, 130, 132, 126, 116, 132, 135, 140, 137, 134, 136, 121, 106, 113, 116, 129, 128, 137, 138, 106, 113, 121, 118, 125, 115, 113, 126, 114, 137, 146, 120, 126, 134, 129, 136, 126, 140, 140, 135, 114, 130, 142, 129, 119, 125, 121, 134, 129, 112, 142, 135, 128, 138, 152, 124, 138, 139, 114, 121, 122, 118, 133, 125, 113, 125, 132, 127, 138, 128, 128, 112, 111, 136, 137, 117, 111, 134, 131, 132, 130, 120, 124, 139, 130, 116, 130, 122, 106, 135, 122, 145, 109, 124, 126, 132, 119, 115, 119, 116, 129, 118, 139, 136, 131, 114, 128, 115, 128, 126, 124, 118, 131, 119, 133, 139, 134, 136, 136, 111, 113, 123, 101, 111, 123, 122, 127, 127, 113, 123, 122, 121, 118, 107, 130, 113, 136, 136, 140, 123, 128, 112, 128, 116, 123, 137, 112, 133, 142, 127, 138, 112, 140, 126, 123, 115, 137, 125, 137, 142, 140, 119, 135, 112, 120, 115, 125, 133, 144, 157, 134, 115, 121, 141, 110, 118, 118, 143, 133, 120, 128, 126, 117, 116, 133, 121, 118, 130, 124, 110, 101, 108, 145, 125, 138, 126, 158, 119, 123, 135, 137, 126, 117, 103, 126, 127, 115, 134, 113, 131, 130, 117, 136, 130, 140, 128, 131, 133, 118, 139, 142, 117, 114, 126, 132, 139, 125, 132, 141, 108, 125, 130, 136, 128, 95, 119, 115, 127, 124, 123, 121, 150, 129, 140, 136, 112, 116, 144, 113, 119, 108, 120, 134, 121, 131, 128, 128, 132, 121, 130, 118, 125, 132, 109, 121, 129, 147, 133, 127, 158, 121, 126, 110, 147, 140, 121, 123, 132, 150, 138, 136, 134, 115, 139, 141, 104, 126, 128, 118, 119, 115, 113, 124, 131, 138, 142, 104, 133, 132, 127, 131, 128, 139, 117, 139, 131, 134, 124, 126, 116, 116, 120, 154, 117, 114, 133, 120, 121, 112, 129, 121, 125, 117, 129, 148, 135, 120, 106, 112, 124, 130, 140, 116, 130, 127, 125, 118, 137, 140, 117, 126, 122, 119, 114, 125, 131, 119, 114, 107, 131, 116, 112, 131, 119, 144, 115, 115, 127, 126, 121, 116, 127, 107, 132, 129, 124, 130, 136, 114, 125, 132, 134, 123, 134, 138, 127, 149, 121, 117, 142, 117, 130, 140, 113, 108, 133, 124, 128, 130, 129, 129, 135, 102, 123, 134, 117, 105, 114, 119, 127, 121, 115, 153, 124, 150, 124, 133, 137, 129, 134, 118, 146, 119, 138, 119, 125, 127, 122, 128, 131, 129, 122, 124, 113, 110, 145, 130, 131, 113, 122, 131, 128, 139, 127, 127, 123, 136, 123, 127, 129, 116, 114, 131, 130, 131, 122, 122, 145, 137, 120, 134, 149, 111, 121, 121, 121, 135, 132, 140, 128, 139, 118, 135, 113, 128, 153, 129, 120, 119, 125, 128, 132, 118, 117, 122, 128, 120, 124, 117, 136, 117, 115, 113, 122, 96, 122, 128, 120, 121, 127, 112, 125, 136, 118, 140, 131, 134, 129, 140, 134, 147, 123, 111, 142, 131, 123, 114, 116, 143, 137, 123, 125, 124, 114, 115, 121, 108, 130, 125, 122, 137, 115, 127, 122, 119, 148, 114, 127, 111, 131, 137, 120, 116, 115, 128, 126, 115, 121, 130, 130, 121, 114, 137, 137, 119, 135, 132, 122, 135, 132, 123, 120, 128, 116, 135, 127, 125, 129, 122, 125, 111, 142, 112, 134, 118, 126, 121, 123, 95, 115, 117, 115, 115, 133, 134, 130, 133, 130, 130, 121, 120, 124, 136, 118, 128, 117, 124, 139, 131, 122, 102, 136, 137, 109, 120, 127, 123, 139, 139, 114, 126, 111, 117, 137, 111, 135, 127, 122, 123, 137, 121, 151, 111, 113, 125, 112, 123, 118, 119, 127, 120, 112, 122, 133, 116, 129, 126, 120, 126, 116, 126, 118, 124, 122, 123, 125, 112, 110, 128, 129, 110, 121, 148, 123, 136, 119, 114, 143, 141, 131, 123, 103, 100, 129, 137, 112, 126, 116, 128, 115, 118, 121, 130, 112, 137, 113, 111, 142, 136, 123, 134, 134, 135, 139, 153, 126, 121, 137, 123, 120, 123, 128, 145, 126, 124, 117, 136, 133, 112, 122, 124, 107, 134, 115, 115, 112, 116, 132, 130, 142, 116, 136, 133, 113, 112, 123, 118, 113, 118, 131, 126, 134, 117, 109, 134, 120, 117, 138, 121, 145, 121, 118, 140, 127, 116, 125, 122, 119, 127, 158, 147, 124, 133, 108, 120, 114, 148, 109, 131, 104, 137, 139, 108, 138, 128, 134, 142, 133, 112, 105, 134, 124, 126, 123, 111, 130, 123, 136, 116, 106, 127, 114, 108, 121, 142, 123, 114, 123, 113, 122, 125, 123, 137, 146, 110, 138, 124, 121, 141, 113, 111, 124, 111, 132, 134, 110, 132, 121, 120, 115, 129, 133, 134, 130, 143, 127, 144, 122, 129, 122, 114, 133, 104, 137, 128, 121, 134, 143, 115, 130, 121, 140, 132, 121, 113, 123, 133, 119, 125, 121, 130, 122, 125, 131, 120, 138, 132, 112, 128, 129, 115, 133, 129, 114, 129, 117, 140, 117, 126, 131, 116, 139, 117, 136, 130, 125, 142, 115, 118, 111, 128, 138, 126, 138, 118, 138, 122, 135, 120, 109, 122, 121, 133, 129, 126, 137, 121, 134, 133, 143, 124, 128, 126, 120, 134, 140, 132, 123, 120, 138, 128, 130, 124, 112, 137, 118, 97, 125, 120, 122, 129, 132, 119, 134, 126, 129, 131, 124, 122, 117, 121, 146, 127, 133, 118, 146, 131, 128, 130, 114, 150, 127, 132, 116, 134, 134, 149, 124, 126, 129, 130, 121, 136, 136, 96, 118, 118, 111, 128, 116, 128, 134, 141, 119, 126, 131, 142, 122, 128, 127, 117, 102, 137, 116, 120, 115, 113, 128, 120, 125, 129, 129, 109, 122, 119, 129, 132, 108, 115, 114, 133, 114, 137, 120, 116, 128, 126, 129, 143, 143, 151, 147, 145, 132, 137, 129, 129, 120, 124, 130, 156, 140, 128, 122, 124, 135, 127, 112, 126, 128, 133, 145, 117, 114, 135, 137, 150, 117, 116, 124, 129, 119, 131, 136, 122, 124, 119, 129, 132, 126, 118, 136, 111, 126, 127, 129, 110, 155, 123, 138, 127, 126, 131, 125, 112, 139, 125, 148, 118, 115, 124, 128, 117, 136, 112, 131, 137, 128, 111, 128, 116, 117, 103, 113, 133, 138, 132, 116, 124, 140, 152, 121, 112, 126, 122, 129, 129, 115, 134, 123, 128, 123, 132, 133, 132, 141, 115, 121, 112, 131, 129, 140, 131, 109, 129, 140, 145, 122, 110, 126, 137, 113, 133, 129, 100, 123, 123, 129, 148, 122, 118, 133, 116, 100, 131, 116, 125, 117, 136, 104, 111, 140, 120, 124, 125, 129, 129, 126, 127, 123, 122, 111, 132, 115, 128, 133, 129, 136, 140, 110, 126, 104, 114, 115, 123, 108, 125, 130, 129, 128, 134, 116, 138, 125, 140, 126, 116, 125, 136, 123, 126, 126, 137, 126, 131, 136, 150, 120, 135, 120, 106, 124, 117, 149, 132, 121, 116, 124, 116, 119, 132, 121, 118, 122, 131, 121, 129, 107, 107, 124, 117, 134, 104, 135, 118, 131, 127, 140, 141, 134, 128, 115, 123, 125, 129, 135, 120, 123, 136, 128, 126, 126, 124, 138, 116, 133, 136, 139, 137, 121, 117, 121, 126, 120, 127, 144, 123, 128, 129, 112, 123, 105, 128, 112, 105, 124, 128, 126, 129, 122, 115, 130, 125, 110, 144, 127, 126, 137, 134, 128, 128, 125, 117, 117, 124, 125, 134, 134, 143, 109, 120, 152, 119, 124, 122, 126, 116, 131, 145, 118, 127, 128, 120, 134, 133, 137, 129, 131, 123, 112, 118, 128, 119, 135, 102, 134, 114, 118, 127, 117, 125, 122, 116, 132, 142, 126, 141, 131, 109, 124, 119, 120, 133, 130, 115, 113, 113, 120, 128, 142, 138, 122, 119, 122, 143, 138, 123, 110, 114, 115, 150, 123, 128, 130, 120, 126, 112, 129, 120, 134, 119, 132, 128, 131, 124, 129, 131, 128, 109, 127, 127, 122, 130, 121, 121, 122, 112, 117, 130, 133, 129, 124, 137, 126, 141, 129, 114, 129, 120, 117, 121, 128, 131, 123, 122, 129, 127, 117, 103, 137, 128, 124, 129, 115, 113, 130, 134, 131, 118, 134, 137, 122, 124, 124, 131, 105, 129, 132, 94, 137, 133, 126, 129, 127, 113, 127, 148, 131, 137, 115, 109, 112, 129, 123, 121, 150, 125, 124, 123, 122, 135, 127, 119, 143, 121, 119, 130, 142, 132, 128, 104, 128, 130, 119, 143, 145, 118, 111, 118, 113, 141, 133, 125, 125, 132, 141, 144, 123, 127, 133, 127, 126, 142, 116, 124, 118, 123, 128, 113, 114, 107, 131, 119, 131, 111, 117, 127, 117, 137, 127, 143, 106, 124, 125, 133, 116, 122, 124, 155, 112, 129, 129, 115, 141, 121, 119, 142, 133, 126, 109, 127, 138, 124, 106, 125, 128, 114, 134, 119, 137, 121, 127, 130, 136, 113, 114, 115, 102, 128, 127, 145, 117, 120, 92, 125, 110, 116, 129, 138, 144, 111, 115, 117, 121, 126, 121, 114, 132, 144, 118, 108, 129, 130, 117, 126, 113, 129, 132, 136, 149, 135, 135, 111, 111, 113, 125, 128, 124, 136, 157, 130, 128, 119, 138, 119, 112, 133, 124, 152, 115, 121, 142, 115, 118, 138, 142, 135, 127, 117, 127, 116, 122, 136, 139, 136, 116, 132, 136, 135, 103, 133, 149, 124, 130, 125, 129, 132, 131, 112, 116, 113, 137, 117, 127, 135, 125, 123, 131, 117, 125, 119, 117, 130, 115, 148, 134, 119, 137, 97, 91, 133, 130, 118, 120, 131, 117, 125, 124, 135, 130, 112, 113, 122, 130, 128, 123, 134, 111, 106, 116, 126, 128, 125, 135, 132, 120, 127, 106, 149, 128, 136, 151, 109, 130, 117, 115, 106, 121, 121, 130, 118, 120, 114, 149, 125, 124, 141, 118, 123, 121, 143, 130, 131, 138, 109, 118, 128, 143, 121, 120, 132, 128, 130, 126, 125, 121, 124, 122, 140, 118, 120, 127, 106, 137, 113, 114, 139, 141, 124, 105, 135, 141, 121, 141, 112, 128, 114, 131, 116, 110, 103, 125, 127, 130, 128, 127, 127, 128, 126, 127, 132, 136, 120, 129, 123, 126, 134, 142, 129, 145, 126, 131, 127, 119, 147, 111, 143, 120, 116, 118, 123, 124, 104, 136, 132, 112, 125, 138, 132, 130, 128, 145, 112, 128, 115, 126, 115, 117, 123, 127, 99, 139, 140, 119, 122, 117, 115, 122, 106, 122, 139, 145, 126, 137, 121, 126, 113, 135, 126, 106, 121, 129, 142, 108, 125, 128, 134, 118, 115, 118, 131, 149, 115, 132, 108, 149, 142, 111, 134, 120, 130, 111, 116, 126, 137, 126, 110, 140, 125, 120, 114, 120, 127, 115, 120, 125, 123, 122, 119, 127, 130, 124, 152, 111, 124, 130, 109, 137, 108, 123, 126, 130, 134, 125, 137, 127, 125, 113, 127, 121, 121, 117, 135, 115, 127, 135, 118, 132, 124, 108, 133, 124, 130, 119, 129, 130, 123, 125, 120, 124, 116, 113, 118, 133, 130, 131, 109, 137, 97, 122, 122, 122, 138, 121, 125, 126, 114, 127, 135, 138, 114, 114, 113, 119, 127, 137, 124, 143, 130, 108, 129, 152, 121, 128, 116, 117, 124, 132, 131, 130, 122, 120, 123, 116, 126, 117, 125, 123, 139, 126, 110, 117, 113, 133, 121, 132, 123, 129, 137, 109, 125, 138, 122, 114, 129, 121, 133, 124, 136, 118, 124, 130, 140, 140, 111, 106, 121, 117, 130, 122, 144, 123, 123, 126, 149, 121, 107, 129, 124, 130, 120, 137, 125, 121, 125, 127, 111, 123, 131, 118, 142, 133, 142, 129, 145, 147, 111, 131, 119, 122, 134, 128, 135, 137, 120, 133, 135, 117, 129, 127, 123, 129, 134, 118, 111, 136, 111, 142, 134, 132, 121, 124, 124, 125, 122, 111, 137, 127, 124, 117, 127, 141, 113, 119, 124, 140, 109, 137, 134, 120, 103, 140, 128, 119, 110, 135, 119, 135, 136, 125, 123, 117, 116, 140, 120, 137, 110, 113, 130, 127, 132, 120, 115, 138, 137, 121, 122, 124, 126, 107, 130, 124, 123, 130, 109, 122, 110, 126, 110, 137, 124, 124, 115, 123, 123, 128, 110, 126, 123, 109, 137, 112, 119, 115, 114, 117, 151, 135, 139, 140, 112, 118, 123, 154, 125, 106, 127, 139, 127, 134, 142, 124, 138, 104, 118, 117, 130, 127, 137, 114, 140, 112, 130, 118, 138, 117, 128, 131, 124, 131, 124, 122, 132, 138, 120, 126, 134, 134, 122, 127, 121, 123, 139, 137, 120, 121, 122, 135, 113, 130, 129, 133, 129, 91, 131, 127, 139, 117, 128, 128, 116, 119, 122, 123, 132, 127, 123, 140, 134, 135, 120, 119, 120, 129, 132, 125, 124, 131, 127, 158, 123, 134, 133, 133, 128, 110, 118, 123, 132, 164, 138, 129, 116, 127, 124, 105, 122, 131, 110, 127, 139, 132, 130, 127, 116, 122, 136, 113, 132, 123, 136, 141, 131, 119, 127, 139, 125, 132, 136, 113, 122, 127, 126, 145, 127, 133, 132, 134, 133, 121, 107, 138, 107, 118, 152, 121, 129, 126, 120, 121, 127, 124, 132, 119, 124, 122, 133, 113, 123, 135, 122, 125, 135, 122, 136, 130, 141, 131, 112, 144, 115, 127, 115, 121, 137, 116, 123, 115, 127, 137, 113, 128, 132, 125, 103, 122, 126, 126, 108, 134, 130, 134, 127, 126, 118, 110, 120, 137, 123, 137, 145, 126, 101, 107, 128, 132, 121, 119, 142, 114, 128, 130, 109, 131, 122, 109, 135, 128, 125, 144, 132, 133, 132, 127, 134, 132, 118, 118, 134, 105, 116, 136, 107, 94, 125, 130, 124, 129, 141, 114, 114, 141, 119, 103, 140, 136, 140, 159, 122, 124, 120, 141, 117, 134, 131, 119, 119, 136, 105, 130, 127, 135, 118, 108, 114, 137, 152, 118, 117, 129, 124, 125, 125, 137, 149, 143, 126, 123, 123, 101, 133, 127, 134, 134, 100, 130, 132, 100, 112, 127, 135, 103, 125, 120, 137, 151, 108, 114, 122, 124, 106, 116, 118, 129, 114, 139, 136, 126, 134, 119, 122, 141, 146, 128, 97, 135, 123, 134, 140, 128, 128, 132, 119, 120, 130, 115, 134, 135, 134, 136, 112, 110, 131, 143, 134, 130, 124, 118, 137, 120, 123, 120, 124, 128, 132, 125, 130, 126, 117, 137, 141, 118, 142, 128, 118, 136, 103, 109, 130, 141, 123, 131, 138, 118, 124, 146, 124, 119, 135, 136, 139, 118, 118, 134, 128, 117, 119, 142, 123, 122, 120, 114, 133, 132, 133, 118, 147, 143, 128, 143, 117, 147, 120, 114, 124, 132, 120, 128, 139, 137, 110, 141, 123, 115, 109, 109, 137, 123, 127, 127, 121, 112, 147, 128, 124, 127, 133, 122, 113, 113, 120, 117, 127, 134, 126, 120, 128, 111, 120, 105, 117, 115, 101, 129, 130, 115, 119, 124, 116, 140, 136, 126, 128, 116, 142, 125, 107, 111, 120, 141, 119, 126, 126, 122, 127, 132, 111, 119, 119, 133, 129, 126, 114, 131, 122, 128, 111, 120, 145, 130, 117, 145, 116, 129, 122, 112, 125, 121, 123, 140, 130, 130, 121, 120, 124, 126, 112, 142, 123, 134, 127, 121, 120, 115, 130, 123, 133, 115, 116, 115, 123, 145, 130, 132, 127, 139, 124, 128, 121, 125, 137, 130, 125, 129, 117, 128, 120, 138, 148, 112, 115, 140, 144, 121, 119, 112, 127, 123, 137, 126, 115, 113, 128, 112, 143, 140, 141, 129, 138, 129, 120, 123, 135, 112, 134, 135, 113, 132, 113, 106, 122, 114, 113, 135, 128, 118, 117, 127, 137, 114, 134, 125, 127, 113, 119, 113, 124, 124, 142, 123, 158, 105, 136, 123, 117, 122, 130, 112, 124, 146, 120, 121, 113, 126, 130, 136, 121, 129, 148, 125, 117, 145, 113, 117, 119, 122, 133, 122, 122, 147, 122, 108, 112, 127, 136, 113, 126, 121, 124, 139, 137, 123, 124, 102, 126, 121, 143, 122, 111, 140, 141, 132, 119, 132, 143, 146, 132, 121, 114, 132, 123, 129, 142, 121, 133, 125, 120, 118, 124, 114, 106, 123, 111, 107, 127, 127, 110, 114, 147, 120, 117, 127, 115, 115, 130, 139, 112, 137, 127, 108, 116, 114, 142, 133, 123, 103, 138, 120, 141, 105, 129, 133, 129, 122, 131, 139, 130, 116, 112, 137, 146, 110, 119, 127, 150, 109, 125, 114, 112, 129, 135, 135, 143, 145, 134, 116, 110, 134, 120, 126, 121, 129, 128, 114, 120, 120, 137, 143, 113, 118, 120, 130, 113, 144, 123, 124, 132, 130, 123, 135, 127, 120, 132, 124, 120, 115, 123, 120, 130, 135, 141, 120, 137, 122, 116, 127, 125, 128, 110, 133, 105, 133, 123, 140, 140, 136, 134, 117, 126, 132, 115, 146, 124, 134, 131, 122, 122, 126, 133, 113, 131, 122, 128, 136, 125, 126, 129, 137, 126, 110, 128, 126, 127, 136, 122, 139, 132, 129, 128, 119, 139, 125, 105, 116, 116, 140, 136, 136, 115, 113, 134, 132, 126, 131, 127, 121, 123, 123, 124, 123, 128, 117, 129, 122, 118, 119, 130, 127, 141, 137, 130, 127, 118, 118, 129, 122, 126, 128, 112, 118, 121, 111, 119, 120, 128, 113, 122, 147, 130, 125, 112, 113, 130, 121, 121, 117, 139, 131, 126, 103, 120, 132, 115, 132, 144, 110, 119, 127, 127, 132, 113, 124, 134, 146, 131, 129, 128, 126, 129, 132, 131, 118, 130, 114, 123, 113, 129, 127, 129, 121, 127, 128, 115, 140, 121, 128, 145, 131, 107, 145, 122, 122, 125, 131, 121, 133, 131, 135, 116, 131, 126, 115, 118, 119, 135, 128, 131, 128, 125, 123, 113, 124, 139, 121, 109, 121, 132, 118, 111, 115, 126, 101, 114, 121, 126, 113, 129, 124, 103, 117, 101, 125, 134, 128, 125, 141, 121, 118, 141, 132, 125, 119, 113, 97, 122, 125, 141, 116, 109, 123, 122, 120, 116, 130, 116, 126, 133, 119, 129, 131, 115, 136, 127, 109, 128, 114, 119, 109, 130, 114, 108, 140, 113, 122, 135, 135, 119, 112, 125, 110, 134, 133, 120, 116, 145, 113, 128, 125, 135, 126, 112, 125, 124, 135, 149, 98, 117, 107, 137, 130, 128, 120, 109, 132, 137, 121, 149, 121, 126, 134, 137, 127, 134, 126, 113, 118, 124, 103, 140, 115, 135, 125, 110, 128, 113, 125, 119, 145, 123, 120, 129, 133, 133, 115, 127, 114, 133, 110, 117, 120, 126, 127, 127, 123, 110, 124, 99, 115, 129, 115, 122, 134, 125, 132, 136, 134, 144, 113, 123, 160, 141, 121, 106, 115, 138, 102, 135, 142, 120, 101, 117, 109, 123, 133, 121, 121, 144, 126, 127, 140, 137, 134, 108, 138, 151, 120, 93, 125, 123, 124, 143, 107, 136, 127, 119, 122, 132, 103, 140, 141, 105, 133, 116, 125, 123, 97, 122, 128, 116, 113, 144, 117, 140, 137, 120, 123, 124, 121, 128, 132, 115, 123, 119, 130, 132, 137, 131, 120, 120, 112, 112, 126, 110, 119, 112, 124, 117, 121, 116, 129, 122, 124, 127, 121, 135, 156, 143, 118, 134, 109, 147, 130, 123, 127, 107, 122, 133, 118, 124, 138, 128, 131, 129, 132, 129, 138, 138, 115, 123, 122, 130, 123, 122, 134, 125, 100, 120, 122, 119, 145, 127, 133, 135, 118, 126, 131, 112, 131, 123, 119, 121, 127, 133, 139, 125, 124, 130, 123, 140, 131, 134, 124, 124, 120, 118, 139, 121, 119, 115, 112, 128, 126, 140, 117, 135, 124, 108, 121, 128, 127, 128, 136, 130, 113, 105, 117, 134, 129, 134, 136, 127, 122, 119, 110, 119, 132, 122, 134, 120, 117, 130, 128, 125, 126, 116, 125, 107, 113, 112, 137, 132, 145, 138, 129, 139, 126, 130, 129, 127, 131, 119, 112, 134, 139, 107, 119, 139, 123, 121, 138, 125, 117, 112, 115, 137, 138, 149, 134, 135, 118, 136, 106, 107, 145, 147, 131, 135, 114, 121, 138, 157, 128, 137, 128, 127, 113, 138, 126, 110, 138, 105, 139, 120, 128, 124, 109, 126, 122, 114, 131, 125, 133, 129, 127, 107, 130, 135, 117, 135, 120, 152, 111, 115, 128, 120, 131, 131, 118, 138, 119, 130, 118, 124, 133, 140, 125, 122, 126, 123, 114, 143, 134, 129, 121, 120, 124, 104, 131, 127, 139, 129, 126, 127, 131, 127, 142, 117, 113, 134, 131, 129, 110, 128, 139, 122, 140, 121, 123, 118, 119, 125, 119, 119, 131, 132, 111, 134, 106, 131, 119, 128, 129, 130, 114, 121, 112, 162, 124, 129, 124, 142, 133, 126, 131, 118, 159, 134, 149, 121, 110, 126, 121, 127, 119, 123, 109, 134, 132, 109, 135, 113, 144, 148, 173, 135, 134, 141, 118, 115, 134, 117, 123, 125, 120, 133, 114, 122, 119, 121, 141, 132, 131, 112, 112, 141, 123, 143, 122, 129, 133, 118, 132, 141, 128, 102, 128, 105, 127, 134, 123, 129, 117, 139, 120, 130, 115, 126, 125, 127, 130, 118, 119, 131, 120, 117, 136, 134, 122, 139, 121, 145, 122, 140, 116, 113, 140, 127, 129, 104, 123, 118, 136, 121, 138, 116, 121, 113, 123, 132, 115, 124, 135, 117, 142, 128, 124, 122, 112, 115, 130, 129, 96, 120, 122, 134, 113, 139, 140, 132, 137, 118, 112, 120, 96, 123, 109, 127, 127, 130, 145, 113, 122, 126, 112, 121, 135, 136, 124, 129, 122, 131, 138, 130, 125, 145, 128, 112, 126, 117, 126, 109, 124, 142, 137, 141, 135, 124, 131, 130, 116, 123, 124, 110, 119, 111, 119, 127, 140, 147, 115, 123, 134, 128, 119, 121, 128, 115, 134, 119, 120, 125, 135, 125, 121, 116, 126, 126, 128, 130, 106, 108, 133, 107, 127, 128, 138, 116, 122, 127, 142, 114, 146, 132, 129, 122, 111, 135, 123, 127, 101, 113, 135, 135, 120, 130, 113, 133, 124, 124, 138, 134, 122, 138, 102, 125, 126, 147, 118, 107, 100, 107, 130, 116, 130, 119, 100, 131, 117, 119, 136, 121, 128, 130, 99, 124, 105, 144, 118, 143, 123, 127, 122, 140, 129, 124, 125, 122, 121, 135, 119, 139, 126, 135, 121, 116, 114, 135, 116, 114, 120, 106, 114, 139, 131, 112, 130, 122, 124, 105, 125, 134, 142, 111, 115, 100, 138, 125, 123, 137, 135, 108, 130, 124, 124, 127, 129, 110, 113, 123, 133, 111, 116, 130, 116, 113, 140, 125, 139, 132, 138, 127, 110, 133, 131, 127, 126, 141, 110, 125, 112, 132, 121, 123, 129, 123, 126, 143, 130, 135, 121, 109, 110, 137, 134, 130, 126, 127, 115, 131, 140, 130, 130, 136, 125, 150, 112, 102, 118, 110, 138, 142, 135, 128, 130, 127, 151, 105, 134, 124, 136, 119, 113, 123, 144, 122, 136, 116, 124, 137, 126, 111, 115, 121, 125, 119, 111, 130, 115, 116, 144, 120, 129, 127, 137, 113, 130, 118, 139, 144, 141, 108, 123, 116, 134, 119, 125, 111, 141, 123, 131, 131, 127, 106, 114, 111, 130, 125, 105, 100, 131, 113, 118, 124, 126, 128, 143, 133, 124, 119, 135, 117, 113, 124, 123, 117, 125, 124, 132, 139, 126, 137, 114, 111, 141, 133, 119, 123, 133, 105, 123, 131, 118, 126, 117, 126, 113, 132, 129, 123, 110, 118, 128, 121, 138, 128, 103, 132, 139, 126, 116, 131, 127, 126, 133, 131, 129, 130, 137, 146, 117, 131, 118, 134, 131, 136, 147, 129, 130, 141, 110, 138, 117, 113, 132, 132, 137, 138, 122, 123, 138, 118, 121, 128, 124, 147, 127, 125, 129, 143, 133, 109, 111, 120, 117, 145, 121, 123, 139, 128, 142, 132, 134, 109, 119, 140, 112, 157, 140, 122, 145, 126, 146, 134, 116, 130, 131, 131, 115, 116, 146, 129, 132, 133, 112, 138, 122, 137, 159, 125, 107, 138, 137, 111, 124, 129, 114, 129, 116, 113, 116, 135, 122, 113, 132, 103, 135, 127, 136, 123, 153, 124, 125, 111, 135, 126, 110, 129, 143, 122, 135, 158, 139, 124, 123, 117, 131, 136, 138, 141, 119, 120, 111, 143, 125, 133, 128, 131, 127, 128, 119, 113, 121, 127, 121, 105, 114, 130, 119, 119, 103, 109, 132, 130, 115, 127, 157, 106, 126, 120, 111, 132, 127, 124, 127, 105, 109, 151, 137, 121, 137, 134, 125, 133, 136, 106, 122, 134, 118, 126, 126, 127, 143, 130, 111, 129, 122, 127, 125, 132, 153, 154, 130, 107, 136, 124, 117, 112, 118, 128, 125, 137, 123, 125, 114, 132, 122, 118, 119, 133, 129, 115, 126, 129, 128, 127, 119, 131, 135, 141, 126, 123, 128, 137, 138, 133, 126, 132, 129, 136, 115, 140, 115, 123, 120, 115, 111, 116, 136, 154, 126, 123, 110, 123, 122, 119, 126, 128, 119, 130, 137, 121, 120, 125, 130, 122, 100, 125, 140, 139, 120, 116, 133, 124, 130, 121, 127, 123, 142, 139, 126, 118, 127, 128, 116, 117, 129, 118, 131, 118, 92, 111, 124, 125, 119, 144, 125, 124, 130, 130, 140, 119, 139, 112, 128, 133, 117, 145, 131, 109, 114, 139, 116, 115, 119, 134, 117, 111, 122, 128, 127, 113, 124, 117, 113, 142, 127, 123, 114, 125, 139, 143, 140, 132, 119, 135, 137, 113, 137, 115, 127, 141, 144, 121, 141, 129, 141, 120, 130, 124, 132, 113, 116, 126, 134, 112, 124, 133, 123, 125, 111, 145, 113, 113, 115, 138, 121, 117, 112, 137, 132, 122, 132, 125, 123, 135, 106, 135, 132, 102, 94, 122, 126, 132, 130, 124, 128, 119, 115, 114, 119, 136, 121, 133, 125, 120, 129, 117, 120, 142, 114, 126, 123, 120, 126, 113, 130, 124, 103, 135, 128, 147, 116, 128, 122, 123, 121, 116, 119, 146, 131, 123, 145, 130, 130, 126, 146, 132, 127, 128, 121, 139, 135, 133, 129, 128, 108, 116, 143, 120, 131, 142, 123, 126, 123, 123, 124, 148, 128, 140, 113, 130, 125, 103, 132, 117, 108, 126, 120, 104, 114, 116, 148, 120, 130, 140, 124, 119, 110, 129, 114, 109, 117, 142, 123, 125, 131, 124, 118, 162, 138, 119, 110, 126, 119, 124, 113, 100, 129, 155, 138, 118, 116, 132, 121, 128, 124, 114, 128, 133, 126, 142, 127, 131, 128, 139, 129, 115, 133, 90, 108, 112, 130, 120, 112, 112, 143, 120, 121, 138, 116, 137, 117, 145, 117, 123, 130, 132, 125, 123, 116, 140, 119, 119, 116, 112, 120, 121, 119, 126, 110, 110, 129, 132, 123, 127, 129, 132, 139, 124, 117, 136, 144, 127, 124, 122, 118, 120, 131, 136, 118, 122, 125, 134, 115, 126, 129, 127, 131, 116, 134, 124, 120, 124, 126, 138, 122, 115, 121, 145, 122, 111, 141, 107, 118, 133, 132, 123, 124, 120, 114, 128, 116, 130, 119, 126, 135, 141, 128, 113, 109, 111, 129, 125, 111, 120, 134, 131, 125, 106, 131, 137, 126, 121, 135, 137, 126, 123, 115, 124, 108, 117, 114, 122, 124, 120, 121, 135, 137, 116, 125, 129, 127, 123, 109, 121, 153, 125, 107, 99, 122, 125, 130, 125, 119, 119, 118, 120, 141, 126, 122, 128, 112, 128, 157, 109, 136, 102, 113, 117, 122, 125, 130, 127, 121, 158, 121, 114, 136, 113, 126, 112, 128, 137, 128, 130, 112, 146, 139, 120, 135, 142, 113, 109, 127, 125, 123, 111, 131, 105, 103, 123, 115, 116, 125, 129, 132, 110, 117, 136, 133, 103, 118, 114, 120, 115, 124, 134, 130, 127, 139, 135, 116, 128, 135, 120, 110, 131, 125, 130, 135, 131, 119, 121, 133, 123, 137, 133, 133, 115, 118, 129, 113, 108, 128, 124, 131, 130, 132, 132, 119, 133, 141, 138, 134, 138, 133, 129, 114, 130, 144, 131, 128, 139, 123, 130, 136, 113, 132, 125, 125, 112, 112, 120, 134, 129, 123, 121, 126, 109, 129, 133, 137, 136, 148, 109, 132, 122, 119, 148, 127, 135, 135, 114, 107, 139, 133, 156, 127, 149, 141, 113, 126, 97, 136, 139, 119, 123, 122, 129, 122, 120, 138, 131, 128, 127, 120, 113, 115, 131, 129, 117, 118, 136, 147, 110, 143, 108, 118, 120, 103, 120, 117, 117, 115, 133, 130, 112, 93, 121, 132, 130, 122, 133, 115, 119, 118, 125, 117, 139, 126, 122, 115, 126, 132, 140, 131, 125, 118, 132, 120, 112, 126, 133, 127, 133, 146, 137, 138, 138, 139, 114, 120, 182, 113, 132, 124, 106, 108, 126, 151, 120, 119, 131, 121, 115, 128, 115, 121, 123, 121, 111, 138, 143, 130, 122, 140, 131, 131, 136, 134, 115, 115, 142, 130, 136, 127, 135, 103, 131, 128, 142, 102, 125, 145, 113, 119, 134, 122, 121, 118, 116, 128, 121, 128, 130, 93, 104, 135, 136, 126, 125, 109, 113, 100, 96, 142, 125, 134, 137, 132, 119, 122, 115, 132, 123, 144, 121, 125, 110, 122, 122, 125, 141, 121, 117, 128, 126, 120, 125, 120, 127, 130, 112, 112, 137, 118, 118, 140, 132, 124, 124, 106, 124, 142, 129, 130, 128, 112, 127, 144, 120, 142, 145, 115, 118, 120, 119, 138, 117, 132, 122, 125, 133, 116, 119, 144, 164, 114, 107, 112, 122, 105, 100, 117, 133, 123, 122, 117, 121, 131, 140, 126, 114, 124, 136, 127, 128, 143, 121, 124, 119, 126, 128, 143, 140, 110, 114, 125, 122, 119, 119, 123, 126, 123, 140, 128, 133, 115, 115, 128, 109, 121, 117, 128, 133, 150, 126, 144, 123, 125, 123, 126, 119, 123, 124, 122, 113, 133, 119, 137, 132, 112, 132, 122, 133, 112, 146, 122, 121, 114, 117, 124, 127, 114, 110, 129, 114, 140, 111, 102, 125, 141, 123, 120, 138, 119, 127, 128, 127, 128, 122, 129, 118, 125, 125, 129, 122, 111, 129, 120, 122, 119, 127, 136, 138, 143, 138, 95, 125, 128, 118, 125, 126, 126, 122, 131, 126, 112, 115, 131, 132, 109, 124, 121, 113, 131, 101, 134, 120, 115, 118, 125, 131, 129, 103, 109, 124, 133, 131, 106, 131, 122, 115, 100, 113, 137, 143, 120, 124, 116, 108, 118, 118, 120, 132, 124, 150, 122, 142, 113, 113, 138, 130, 139, 133, 157, 133, 122, 133, 123, 120, 118, 111, 110, 121, 117, 136, 123, 141, 110, 119, 139, 124, 122, 136, 129, 119, 127, 134, 126, 111, 129, 110, 110, 99, 104, 122, 119, 114, 128, 119, 129, 132, 147, 125, 117, 123, 127, 114, 120, 111, 134, 120, 111, 124, 116, 130, 130, 129, 146, 134, 105, 140, 129, 120, 115, 132, 122, 117, 122, 118, 119, 131, 119, 135, 117, 138, 139, 123, 122, 134, 114, 108, 118, 136, 118, 136, 172, 125, 127, 133, 116, 146, 142, 116, 128, 109, 123, 126, 117, 122, 135, 142, 123, 144, 128, 115, 114, 126, 158, 144, 115, 119, 124, 133, 123, 135, 119, 118, 123, 119, 133, 130, 123, 155, 140, 117, 139, 123, 126, 126, 119, 121, 121, 150, 122, 127, 123, 110, 121, 127, 131, 137, 112, 120, 119, 118, 123, 128, 119, 129, 112, 142, 114, 115, 109, 126, 116, 114, 136, 127, 137, 142, 123, 121, 125, 126, 127, 120, 122, 121, 121, 164, 121, 129, 132, 116, 134, 111, 126, 134, 148, 122, 125, 155, 121, 104, 111, 117, 111, 124, 135, 126, 128, 121, 108, 113, 137, 128, 114, 117, 119, 122, 129, 117, 128, 115, 106, 133, 109, 132, 125, 109, 139, 121, 104, 123, 139, 123, 127, 130, 131, 124, 119, 116, 144, 131, 120, 99, 131, 124, 122, 134, 131, 129, 114, 123, 132, 112, 126, 111, 131, 127, 132, 110, 135, 119, 130, 123, 126, 149, 118, 124, 105, 115, 126, 139, 122, 120, 125, 121, 121, 132, 104, 125, 110, 133, 132, 111, 139, 120, 116, 111, 101, 108, 137, 111, 116, 145, 134, 115, 129, 138, 124, 116, 115, 134, 125, 119, 131, 120, 119, 119, 117, 119, 136, 113, 117, 127, 142, 120, 111, 137, 124, 117, 123, 120, 115, 129, 117, 119, 112, 114, 111, 149, 123, 136, 117, 119, 122, 132, 129, 150, 116, 123, 129, 132, 118, 131, 121, 124, 114, 101, 114, 138, 124, 108, 136, 110, 108, 110, 119, 120, 116, 131, 108, 114, 141, 128, 127, 119, 134, 112, 122, 143, 114, 127, 119, 134, 128, 125, 131, 129, 126, 128, 129, 119, 138, 120, 128, 132, 145, 142, 121, 131, 126, 121, 131, 128, 130, 114, 119, 135, 125, 135, 129, 130, 131, 127, 107, 121, 127, 120, 122, 118, 122, 129, 132, 135, 130, 115, 136, 126, 124, 153, 117, 141, 143, 123, 126, 128, 134, 126, 127, 121, 115, 120, 144, 135, 125, 104, 116, 120, 126, 130, 132, 132, 118, 118, 125, 137, 118, 127, 120, 115, 132, 124, 124, 126, 129, 113, 129, 118, 129, 127, 126, 133, 134, 131, 128, 125, 105, 127, 136, 135, 132, 111, 123, 124, 115, 121, 136, 125, 120, 121, 108, 135, 127, 116, 132, 116, 124, 117, 126, 125, 146, 135, 134, 137, 117, 142, 122, 135, 131, 132, 133, 110, 130, 119, 136, 93, 121, 119, 121, 93, 127, 135, 123, 121, 148, 114, 125, 119, 117, 130, 124, 133, 106, 119, 125, 123, 129, 138, 132, 119, 120, 111, 130, 112, 124, 136, 132, 121, 116, 136, 124, 131, 130, 131, 136, 119, 120, 112, 114, 124, 115, 138, 124, 138, 135, 110, 119, 134, 111, 133, 127, 121, 117, 111, 119, 115, 133, 122, 143, 116, 138, 107, 120, 124, 119, 115, 135, 126, 129, 130, 117, 114, 130, 126, 122, 127, 125, 113, 126, 118, 121, 130, 115, 121, 129, 104, 123, 113, 125, 123, 126, 145, 124, 130, 132, 141, 125, 130, 131, 130, 124, 120, 132, 131, 125, 128, 123, 131, 113, 115, 123, 133, 118, 121, 121, 117, 106, 124, 102, 127, 138, 129, 125, 124, 132, 120, 116, 142, 117, 128, 116, 131, 123, 143, 122, 107, 133, 127, 134, 124, 125, 133, 125, 128, 136, 119, 125, 128, 147, 131, 127, 135, 133, 113, 128, 118, 135, 118, 117, 122, 126, 126, 110, 134, 138, 124, 126, 121, 116, 135, 133, 126, 133, 127, 125, 129, 132, 102, 114, 120, 144, 128, 124, 122, 114, 136, 119, 147, 119, 142, 131, 117, 121, 140, 133, 148, 131, 123, 144, 122, 132, 128, 117, 124, 126, 131, 153, 124, 109, 128, 123, 122, 129, 122, 117, 125, 111, 136, 110, 112, 130, 104, 134, 140, 116, 128, 125, 122, 120, 127, 118, 129, 133, 136, 140, 134, 123, 110, 144, 125, 120, 132, 134, 127, 111, 123, 131, 121, 126, 119, 118, 127, 119, 108, 147, 142, 108, 131, 132, 126, 133, 115, 117, 128, 113, 121, 123, 129, 121, 137, 136, 150, 126, 116, 128, 142, 118, 130, 137, 119, 100, 111, 128, 135, 117, 120, 129, 128, 129, 125, 121, 120, 119, 130, 128, 150, 131, 129, 131, 119, 103, 118, 132, 126, 132, 137, 114, 143, 122, 136, 150, 120, 127, 112, 119, 127, 122, 136, 127, 133, 124, 143, 120, 134, 127, 121, 129, 132, 120, 142, 119, 128, 122, 135, 131, 104, 139, 121, 135, 109, 119, 121, 125, 131, 122, 126, 139, 128, 126, 119, 124, 123, 140, 121, 115, 105, 125, 99, 136, 123, 147, 143, 136, 135, 143, 131, 128, 148, 121, 106, 116, 122, 125, 105, 127, 119, 131, 124, 120, 146, 112, 124, 113, 116, 123, 141, 133, 140, 130, 114, 122, 124, 145, 129, 122, 119, 127, 118, 128, 130, 116, 124, 121, 124, 123, 130, 129, 140, 114, 117, 132, 114, 118, 121, 130, 142, 141, 113, 122, 126, 128, 118, 134, 107, 130, 125, 114, 129, 134, 128, 125, 120, 136, 125, 127, 125, 133, 125, 123, 121, 122, 120, 130, 125, 117, 119, 135, 126, 124, 139, 112, 103, 135, 132, 116, 131, 113, 125, 124, 119, 127, 121, 126, 133, 123, 136, 123, 150, 132, 126, 125, 132, 131, 139, 108, 150, 140, 138, 130, 126, 114, 142, 104, 122, 130, 122, 123, 140, 131, 130, 131, 126, 121, 117, 141, 132, 138, 122, 130, 124, 138, 126, 133, 146, 120, 112, 131, 146, 130, 106, 159, 132, 119, 144, 119, 127, 124, 141, 133, 122, 139, 122, 140, 127, 123, 137, 141, 138, 129, 118, 114, 133, 139, 124, 129, 134, 150, 125, 133, 121, 124, 139, 120, 133, 153, 115, 127, 129, 135, 109, 124, 128, 119, 123, 124, 135, 139, 127, 122, 113, 113, 119, 126, 124, 123, 128, 119, 121, 137, 128, 135, 128, 115, 109, 116, 123, 130, 139, 132, 132, 122, 144, 130, 133, 124, 120, 126, 137, 120, 116, 131, 143, 126, 134, 119, 136, 117, 123, 130, 132, 138, 130, 126, 115, 126, 125, 126, 126, 124, 126, 153, 136, 143, 129, 127, 122, 133, 123, 112, 123, 138, 84, 113, 119, 110, 137, 117, 118, 128, 132, 128, 137, 105, 129, 111, 131, 125, 126, 124, 114, 119, 106, 123, 120, 132, 119, 131, 125, 120, 133, 141, 128, 123, 140, 135, 133, 129, 119, 124, 114, 116, 132, 115, 132, 129, 101, 137, 129, 123, 161, 122, 121, 120, 111, 126, 130, 132, 131, 134, 129, 119, 123, 128, 119, 126, 124, 125, 116, 120, 134, 134, 137, 143, 121, 129, 118, 107, 127, 114, 127, 131, 130, 128, 128, 143, 128, 128, 122, 133, 113, 134, 114, 121, 133, 124, 126, 114, 139, 109, 110, 120, 119, 139, 115, 106, 121, 132, 114, 101, 124, 133, 122, 144, 129, 127, 128, 133, 118, 120, 127, 148, 116, 113, 127, 135, 112, 119, 140, 116, 129, 112, 117, 134, 104, 120, 130, 134, 113, 123, 147, 119, 129, 129, 118, 128, 124, 121, 106, 119, 130, 123, 117, 121, 129, 128, 122, 130, 136, 129, 129, 132, 125, 127, 131, 121, 119, 126, 129, 120, 125, 129, 113, 112, 129, 104, 141, 115, 109, 118, 136, 123, 112, 116, 122, 119, 120, 119, 137, 125, 136, 128, 120, 116, 126, 110, 127, 116, 132, 118, 127, 122, 121, 112, 121, 126, 126, 122, 127, 126, 114, 110, 123, 125, 131, 134, 126, 131, 112, 128, 123, 126, 121, 112, 121, 127, 120, 132, 124, 115, 130, 141, 127, 116, 120, 127, 129, 109, 120, 115, 139, 114, 113, 122, 136, 123, 110, 131, 138, 129, 107, 127, 128, 126, 117, 126, 128, 129, 117, 131, 123, 134, 135, 120, 119, 138, 123, 107, 137, 111, 124, 126, 121, 135, 141, 124, 118, 120, 127, 125, 134, 132, 141, 133, 139, 139, 115, 118, 128, 138, 140, 129, 132, 121, 130, 96, 125, 126, 113, 130, 118, 137, 143, 126, 118, 123, 128, 119, 134, 121, 131, 113, 128, 149, 105, 132, 136, 143, 119, 149, 119, 103, 126, 133, 105, 122, 152, 99, 131, 121, 130, 103, 144, 128, 123, 105, 135, 133, 113, 121, 132, 99, 142, 107, 124, 138, 116, 113, 123, 141, 121, 137, 105, 130, 142, 128, 114, 123, 120, 111, 150, 121, 118, 107, 145, 118, 117, 130, 130, 131, 130, 131, 154, 137, 152, 109, 125, 133, 123, 105, 115, 128, 119, 151, 124, 120, 124, 139, 104, 129, 127, 124, 125, 140, 120, 120, 121, 130, 128, 112, 111, 133, 108, 120, 105, 114, 116, 123, 128, 143, 128, 127, 134, 138, 134, 126, 103, 136, 108, 122, 137, 127, 126, 134, 122, 129, 125, 116, 111, 103, 136, 137, 110, 126, 127, 168, 122, 123, 116, 124, 133, 120, 113, 105, 143, 126, 126, 133, 117, 117, 136, 136, 127, 110, 152, 148, 120, 130, 138, 113, 132, 128, 108, 123, 91, 127, 112, 139, 122, 130, 133, 135, 127, 148, 115, 126, 114, 130, 117, 125, 119, 112, 111, 114, 121, 147, 125, 122, 118, 127, 142, 122, 125, 121, 135, 124, 123, 123, 130, 118, 118, 105, 124, 132, 121, 143, 130, 137, 155, 114, 127, 129, 124, 123, 122, 120, 135, 108, 127, 118, 123, 127, 129, 137, 135, 129, 120, 114, 114, 116, 131, 117, 118, 125, 110, 108, 137, 132, 128, 127, 140, 104, 119, 111, 111, 117, 104, 134, 131, 121, 101, 137, 134, 130, 123, 141, 120, 133, 111, 117, 132, 122, 124, 127, 145, 106, 121, 112, 122, 101, 131, 125, 119, 128, 129, 118, 109, 141, 142, 129, 122, 143, 128, 115, 123, 116, 126, 122, 112, 126, 110, 126, 112, 121, 100, 98, 128, 128, 118, 148, 133, 118, 133, 126, 125, 134, 126, 127, 121, 142, 108, 135, 116, 140, 120, 126, 121, 114, 131, 135, 129, 135, 127, 126, 135, 122, 113, 130, 97, 117, 136, 113, 134, 126, 126, 94, 129, 115, 100, 111, 120, 135, 118, 121, 141, 112, 120, 137, 123, 118, 109, 116, 116, 120, 146, 130, 126, 122, 117, 125, 107, 116, 130, 108, 124, 148, 115, 118, 145, 137, 113, 120, 137, 143, 123, 159, 122, 140, 125, 125, 132, 133, 142, 146, 124, 144, 136, 118, 119, 139, 140, 136, 123, 108, 121, 143, 137, 128, 124, 119, 119, 114, 115, 108, 141, 145, 130, 106, 122, 138, 123, 133, 124, 111, 117, 116, 115, 141, 109, 120, 126, 122, 138, 116, 124, 134, 134, 125, 113, 127, 141, 118, 137, 115, 108, 119, 150, 123, 135, 128, 137, 110, 116, 126, 127, 117, 107, 128, 116, 112, 115, 135, 112, 129, 126, 124, 130, 130, 140, 128, 112, 148, 107, 139, 127, 133, 142, 142, 126, 134, 141, 126, 135, 112, 123, 122, 103, 111, 107, 130, 128, 105, 108, 137, 112, 120, 136, 130, 142, 127, 119, 118, 117, 121, 135, 139, 130, 130, 125, 128, 117, 126, 105, 118, 122, 107, 124, 126, 133, 122, 131, 105, 123, 120, 118, 149, 116, 129, 100, 125, 117, 126, 140, 124, 133, 134, 116, 112, 147, 146, 127, 118, 153, 125, 122, 117, 116, 132, 137, 135, 120, 132, 118, 135, 134, 126, 124, 121, 135, 129, 111, 130, 118, 110, 113, 144, 126, 114, 127, 127, 119, 132, 119, 127, 117, 138, 133, 110, 126, 127, 118, 134, 114, 123, 121, 121, 116, 107, 112, 148, 138, 128, 130, 121, 112, 143, 120, 121, 130, 136, 125, 123, 111, 109, 121, 127, 155, 139, 129, 113, 131, 130, 132, 124, 127, 132, 127, 139, 113, 130, 132, 123, 131, 88, 131, 141, 128, 118, 106, 158, 141, 141, 125, 122, 153, 127, 146, 153, 116, 125, 146, 108, 117, 107, 101, 121, 134, 138, 107, 120, 133, 131, 139, 153, 149, 123, 109, 121, 132, 112, 117, 129, 120, 107, 126, 124, 140, 121, 118, 122, 136, 126, 128, 104, 134, 134, 127, 120, 121, 118, 110, 133, 116, 120, 121, 135, 126, 138, 111, 120, 132, 127, 109, 131, 122, 122, 121, 118, 123, 144, 116, 131, 123, 113, 149, 132, 131, 119, 141, 151, 132, 132, 121, 135, 127, 136, 131, 117, 132, 113, 132, 112, 122, 127, 136, 108, 132, 111, 142, 119, 125, 134, 125, 133, 119, 127, 113, 118, 120, 132, 121, 118, 129, 152, 125, 107, 126, 129, 124, 120, 116, 126, 125, 126, 123, 146, 134, 112, 131, 136, 124, 124, 131, 132, 120, 126, 119, 119, 133, 106, 114, 135, 120, 134, 126, 124, 138, 140, 143, 117, 117, 121, 128, 113, 114, 125, 169, 107, 124, 114, 118, 124, 141, 130, 116, 123, 128, 112, 120, 151, 150, 99, 123, 117, 130, 130, 129, 113, 111, 123, 124, 117, 129, 126, 136, 137, 132, 136, 125, 137, 141, 118, 112, 121, 109, 141, 141, 104, 116, 118, 120, 108, 140, 111, 124, 130, 133, 129, 112, 131, 119, 122, 123, 124, 129, 120, 134, 127, 123, 125, 120, 140, 118, 130, 98, 122, 159, 136, 121, 118, 123, 127, 160, 124, 127, 119, 117, 110, 144, 103, 121, 132, 118, 124, 118, 120, 130, 133, 130, 130, 142, 133, 124, 129, 125, 129, 116, 114, 117, 126, 116, 129, 127, 112, 110, 136, 104, 115, 124, 132, 118, 124, 139, 115, 105, 131, 134, 130, 121, 140, 139, 131, 123, 131, 125, 107, 107, 124, 132, 124, 114, 132, 139, 124, 138, 118, 121, 129, 140, 112, 128, 131, 146, 132, 125, 132, 117, 142, 134, 127, 119, 132, 128, 123, 140, 135, 125, 126, 126, 138, 94, 137, 141, 134, 122, 121, 130, 134, 114, 115, 117, 135, 108, 123, 124, 123, 125, 135, 146, 118, 125, 138, 122, 143, 109, 124, 119, 120, 122, 118, 132, 125, 136, 160, 109, 136, 121, 138, 144, 126, 126, 99, 129, 124, 121, 134, 142, 127, 122, 128, 106, 113, 119, 115, 110, 115, 124, 122, 130, 118, 120, 109, 117, 118, 133, 123, 115, 131, 135, 117, 124, 130, 135, 123, 105, 120, 133, 129, 123, 131, 124, 119, 127, 115, 121, 112, 122, 118, 112, 131, 128, 112, 122, 120, 127, 106, 105, 123, 134, 121, 143, 111, 107, 136, 129, 112, 118, 123, 120, 119, 124, 115, 124, 120, 116, 106, 128, 130, 117, 120, 115, 117, 145, 123, 104, 126, 123, 120, 143, 115, 132, 141, 129, 121, 134, 114, 126, 115, 119, 108, 117, 112, 129, 133, 137, 112, 120, 116, 103, 118, 111, 117, 117, 130, 117, 136, 106, 126, 109, 112, 130, 104, 114, 137, 114, 128, 118, 119, 124, 113, 130, 130, 134, 113, 131, 115, 118, 104, 121, 136, 141, 119, 128, 115, 113, 125, 128, 120, 122, 107, 112, 115, 115, 130, 134, 125, 140, 114, 114, 167, 128, 141, 155, 122, 113, 122, 119, 131, 134, 113, 117, 123, 111, 128, 117, 125, 115, 134, 140, 122, 112, 131, 113, 143, 121, 132, 129, 143, 125, 133, 142, 102, 114, 124, 111, 145, 137, 129, 143, 125, 114, 121, 109, 101, 127, 131, 146, 129, 122, 131, 117, 127, 131, 126, 143, 125, 117, 116, 138, 130, 107, 123, 116, 128, 123, 103, 138, 141, 110, 116, 131, 120, 112, 128, 110, 127, 111, 110, 135, 131, 117, 122, 129, 132, 122, 113, 148, 112, 125, 113, 111, 111, 141, 117, 122, 116, 109, 117, 125, 127, 122, 137, 127, 128, 123, 121, 130, 132, 116, 126, 146, 136, 118, 110, 134, 118, 149, 116, 123, 124, 121, 123, 127, 110, 134, 113, 110, 136, 138, 121, 121, 143, 133, 144, 113, 127, 149, 120, 133, 115, 126, 128, 130, 142, 140, 141, 141, 128, 123, 127, 124, 114, 118, 129, 115, 118, 143, 127, 115, 119, 134, 112, 116, 117, 135, 125, 129, 105, 138, 134, 135, 120, 123, 117, 127, 118, 108, 121, 136, 123, 139, 114, 119, 117, 131, 140, 127, 116, 119, 125, 132, 123, 121, 127, 131, 118, 145, 131, 138, 134, 121, 118, 122, 131, 119, 104, 114, 121, 119, 119, 119, 137, 132, 119, 125, 113, 115, 147, 130, 134, 113, 119, 119, 125, 105, 132, 119, 110, 121, 111, 124, 126, 129, 131, 117, 105, 122, 110, 127, 110, 128, 140, 123, 128, 122, 117, 130, 118, 124, 143, 144, 140, 130, 141, 120, 109, 123, 124, 110, 121, 135, 107, 131, 127, 139, 142, 129, 129, 129, 117, 118, 112, 121, 133, 138, 146, 129, 126, 94, 127, 121, 137, 119, 116, 111, 112, 103, 109, 125, 122, 125, 119, 130, 126, 129, 136, 118, 122, 122, 119, 100, 94, 131, 153, 124, 125, 116, 108, 126, 105, 151, 122, 117, 115, 133, 122, 128, 126, 122, 124, 110, 121, 120, 131, 136, 131, 116, 141, 124, 131, 143, 110, 127, 127, 126, 107, 116, 125, 117, 114, 144, 123, 115, 135, 105, 141, 125, 128, 126, 125, 119, 114, 141, 152, 115, 126, 114, 129, 116, 122, 123, 116, 132, 123, 127, 131, 129, 125, 106, 132, 132, 115, 116, 113, 124, 129, 130, 137, 124, 119, 122, 119, 127, 125, 133, 117, 119, 106, 115, 127, 123, 131, 129, 124, 139, 136, 113, 135, 115, 126, 123, 101, 126, 149, 131, 126, 137, 114, 134, 146, 120, 111, 135, 115, 124, 123, 136, 135, 131, 140, 120, 129, 110, 131, 114, 123, 136, 123, 152, 125, 108, 130, 121, 118, 127, 131, 127, 131, 127, 99, 126, 133, 110, 128, 146, 127, 131, 129, 158, 127, 129, 114, 122, 135, 137, 134, 126, 131, 127, 130, 140, 135, 156, 144, 110, 133, 125, 124, 114, 102, 129, 133, 132, 130, 119, 115, 130, 138, 119, 125, 111, 123, 132, 119, 105, 120, 113, 115, 124, 115, 126, 132, 124, 159, 111, 114, 107, 128, 122, 150, 111, 125, 127, 137, 123, 130, 150, 134, 121, 113, 126, 121, 103, 122, 125, 144, 133, 114, 126, 124, 117, 115, 127, 91, 138, 118, 120, 134, 125, 137, 126, 135, 118, 113, 116, 122, 122, 139, 127, 134, 115, 140, 118, 129, 114, 131, 133, 138, 125, 116, 124, 137, 143, 135, 98, 129, 130, 138, 124, 141, 123, 133, 116, 117, 138, 122, 146, 111, 124, 120, 124, 125, 126, 146, 126, 131, 145, 123, 120, 147, 112, 133, 112, 114, 130, 120, 113, 105, 133, 133, 128, 122, 129, 120, 137, 117, 125, 135, 140, 122, 131, 118, 120, 118, 116, 130, 121, 124, 119, 131, 124, 123, 137, 110, 127, 125, 132, 127, 123, 128, 124, 123, 130, 124, 127, 117, 124, 129, 122, 136, 125, 140, 120, 133, 115, 132, 112, 140, 125, 129, 128, 104, 128, 131, 126, 125, 132, 133, 128, 119, 121, 144, 133, 139, 116, 120, 134, 119, 120, 127, 122, 119, 123, 120, 141, 123, 132, 119, 107, 129, 142, 115, 104, 122, 125, 111, 114, 132, 146, 124, 115, 109, 109, 111, 122, 119, 124, 131, 142, 126, 122, 120, 131, 130, 118, 104, 114, 119, 135, 143, 128, 142, 111, 125, 125, 128, 121, 118, 119, 121, 135, 115, 124, 139, 132, 145, 102, 133, 124, 138, 126, 131, 109, 119, 129, 123, 123, 121, 126, 111, 125, 133, 138, 123, 129, 138, 116, 131, 121, 137, 123, 119, 134, 114, 104, 115, 119, 125, 123, 130, 119, 136, 111, 141, 131, 119, 104, 112, 148, 128, 117, 117, 120, 114, 132, 114, 130, 121, 119, 102, 115, 111, 129, 119, 130, 125, 131, 117, 106, 130, 127, 110, 115, 137, 134, 128, 115, 120, 136, 121, 145, 127, 110, 112, 125, 128, 118, 147, 112, 143, 144, 148, 116, 118, 142, 124, 117, 119, 121, 128, 128, 107, 143, 129, 123, 105, 136, 119, 119, 135, 143, 131, 129, 122, 117, 127, 138, 133, 122, 109, 134, 123, 120, 124, 133, 128, 137, 123, 113, 137, 117, 127, 134, 128, 136, 133, 122, 129, 127, 128, 116, 125, 140, 132, 108, 120, 113, 124, 132, 165, 107, 118, 106, 137, 116, 111, 119, 109, 127, 117, 150, 113, 121, 117, 119, 127, 124, 138, 132, 124, 134, 131, 126, 124, 115, 139, 106, 128, 121, 112, 120, 126, 128, 129, 122, 115, 127, 136, 131, 129, 140, 144, 121, 123, 133, 142, 127, 106, 129, 128, 126, 106, 117, 133, 117, 132, 123, 119, 114, 107, 116, 122, 123, 111, 120, 122, 150, 141, 122, 131, 127, 136, 124, 112, 123, 115, 124, 121, 127, 123, 122, 120, 129, 123, 118, 132, 131, 131, 125, 142, 123, 123, 111, 127, 139, 113, 117, 131, 116, 130, 106, 130, 123, 108, 120, 135, 125, 119, 122, 131, 122, 121, 112, 123, 112, 124, 115, 95, 124, 127, 131, 108, 118, 128, 121, 140, 116, 118, 152, 123, 140, 124, 120, 126, 129, 115, 129, 115, 125, 116, 123, 151, 120, 125, 131, 107, 130, 122, 121, 120, 122, 129, 107, 120, 131, 115, 148, 137, 114, 110, 143, 128, 152, 127, 118, 112, 137, 135, 116, 93, 135, 120, 115, 113, 116, 120, 115, 112, 150, 139, 124, 149, 129, 127, 122, 121, 125, 110, 118, 119, 113, 123, 141, 105, 118, 115, 104, 135, 139, 150, 130, 131, 120, 118, 120, 112, 137, 135, 125, 146, 122, 125, 125, 129, 127, 141, 134, 116, 118, 113, 120, 115, 123, 103, 144, 120, 116, 115, 149, 121, 133, 118, 131, 130, 137, 129, 132, 123, 125, 119, 117, 123, 121, 133, 134, 123, 116, 129, 116, 123, 115, 120, 132, 149, 127, 130, 125, 109, 124, 118, 102, 121, 122, 133, 134, 121, 118, 123, 137, 134, 114, 128, 141, 141, 118, 128, 133, 114, 134, 132, 144, 123, 132, 119, 143, 121, 135, 117, 117, 121, 149, 121, 127, 131, 128, 154, 133, 136, 120, 122, 123, 115, 137, 113, 129, 130, 120, 110, 133, 129, 128, 124, 111, 125, 112, 139, 142, 111, 133, 121, 128, 127, 124, 121, 114, 121, 137, 140, 119, 98, 128, 130, 131, 137, 118, 110, 127, 129, 153, 113, 127, 126, 119, 130, 116, 123, 134, 111, 116, 118, 113, 122, 139, 130, 121, 119, 136, 129, 130, 117, 120, 134, 126, 121, 122, 128, 123, 125, 120, 141, 119, 139, 117, 126, 111, 143, 107, 138, 139, 115, 121, 129, 124, 104, 115, 125, 140, 127, 117, 134, 133, 125, 117, 128, 120, 139, 126, 125, 120, 127, 123, 133, 133, 116, 123, 131, 108, 117, 121, 130, 115, 135, 121, 121, 144, 98, 118, 110, 134, 118, 107, 148, 131, 114, 133, 126, 121, 128, 114, 126, 116, 120, 134, 122, 107, 105, 106, 105, 132, 131, 118, 129, 121, 113, 121, 124, 128, 131, 128, 135, 126, 131, 122, 115, 110, 133, 117, 119, 138, 121, 123, 114, 131, 110, 99, 110, 120, 128, 141, 131, 131, 137, 132, 144, 136, 121, 122, 117, 122, 132, 121, 123, 117, 132, 137, 128, 114, 123, 112, 130, 121, 129, 106, 146, 135, 131, 134, 123, 137, 131, 147, 138, 124, 130, 115, 120, 122, 118, 143, 107, 143, 139, 146, 108, 121, 140, 126, 116, 122, 138, 120, 120, 149, 133, 111, 138, 114, 98, 123, 117, 132, 124, 143, 119, 147, 130, 116, 129, 131, 132, 142, 122, 152, 124, 112, 119, 126, 128, 119, 118, 112, 116, 127, 112, 109, 135, 133, 120, 111, 140, 122, 140, 152, 116, 121, 140, 107, 135, 119, 124, 116, 115, 120, 123, 116, 126, 121, 129, 116, 128, 134, 128, 122, 113, 130, 134, 133, 127, 134, 110, 125, 129, 126, 123, 134, 124, 122, 132, 108, 135, 120, 119, 137, 133, 140, 114, 116, 124, 137, 126, 126, 124, 124, 124, 115, 122, 104, 117, 116, 139, 147, 123, 104, 134, 119, 98, 121, 103, 128, 122, 112, 130, 124, 136, 122, 113, 123, 129, 135, 121, 144, 149, 119, 122, 111, 127, 116, 133, 122, 132, 115, 116, 111, 142, 136, 117, 151, 116, 124, 125, 139, 130, 116, 112, 131, 120, 125, 148, 140, 135, 110, 124, 142, 119, 110, 129, 123, 131, 132, 119, 134, 142, 139, 119, 128, 125, 127, 110, 122, 116, 120, 124, 104, 108, 135, 123, 139, 119, 128, 119, 123, 144, 130, 130, 121, 119, 127, 128, 129, 95, 144, 100, 117, 152, 116, 122, 141, 136, 164, 135, 108, 116, 124, 118, 123, 99, 124, 134, 136, 117, 111, 124, 123, 125, 154, 118, 120, 119, 124, 119, 119, 135, 142, 123, 129, 119, 142, 123, 135, 112, 139, 130, 124, 136, 125, 133, 148, 123, 133, 122, 127, 136, 135, 122, 138, 128, 134, 123, 138, 137, 117, 110, 140, 130, 132, 115, 124, 127, 134, 131, 120, 133, 129, 159, 139, 126, 137, 137, 124, 131, 140, 147, 134, 130, 122, 115, 132, 124, 144, 130, 130, 142, 147, 122, 118, 135, 116, 144, 141, 127, 123, 131, 138, 112, 142, 135, 123, 135, 126, 124, 117, 124, 127, 135, 142, 119, 116, 123, 133, 123, 98, 120, 102, 109, 121, 119, 151, 130, 118, 112, 125, 127, 126, 133, 130, 125, 140, 123, 107, 121, 117, 120, 132, 132, 122, 143, 112, 138, 137, 125, 120, 131, 116, 132, 124, 127, 133, 122, 123, 132, 145, 143, 148, 119, 156, 132, 125, 114, 125, 122, 122, 131, 123, 111, 145, 143, 153, 128, 138, 127, 143, 132, 127, 150, 114, 132, 127, 116, 121, 131, 130, 130, 137, 118, 126, 123, 124, 135, 139, 144, 136, 139, 126, 147, 123, 124, 133, 99, 116, 131, 124, 108, 120, 121, 132, 111, 120, 117, 127, 121, 128, 125, 115, 119, 134, 127, 131, 136, 128, 137, 125, 123, 128, 128, 118, 122, 136, 130, 131, 138, 118, 104, 144, 130, 127, 126, 127, 117, 129, 121, 131, 116, 110, 105, 121, 133, 124, 137, 135, 118, 127, 122, 118, 125, 133, 121, 126, 128, 140, 118, 131, 130, 122, 105, 123, 133, 128, 140, 123, 128, 115, 132, 129, 107, 124, 123, 123, 121, 142, 133, 104, 109, 121, 121, 132, 117, 128, 113, 124, 135, 118, 113, 116, 129, 140, 127, 107, 126, 128, 131, 149, 129, 123, 120, 139, 117, 137, 109, 118, 109, 120, 130, 138, 134, 122, 124, 114, 130, 125, 131, 133, 113, 117, 126, 130, 130, 122, 129, 134, 136, 126, 111, 124, 109, 140, 125, 140, 113, 135, 142, 115, 132, 120, 112, 121, 123, 137, 135, 116, 122, 130, 130, 126, 138, 132, 122, 133, 117, 154, 128, 138, 127, 127, 114, 117, 140, 117, 126, 114, 113, 108, 128, 126, 123, 128, 123, 133, 120, 104, 111, 130, 126, 121, 129, 127, 149, 127, 122, 122, 120, 133, 118, 116, 133, 116, 130, 127, 134, 124, 113, 109, 122, 127, 110, 116, 114, 141, 109, 121, 136, 131, 111, 132, 137, 129, 104, 127, 130, 120, 130, 127, 121, 125, 118, 106, 133, 116, 160, 122, 132, 125, 124, 123, 137, 107, 128, 122, 138, 109, 116, 123, 136, 123, 129, 127, 141, 117, 120, 119, 113, 125, 119, 136, 121, 122, 116, 129, 110, 134, 133, 117, 137, 141, 149, 129, 130, 143, 113, 119, 125, 113, 129, 125, 117, 131, 126, 98, 122, 145, 107, 110, 117, 118, 108, 124, 120, 127, 152, 115, 140, 121, 125, 131, 119, 131, 128, 119, 134, 122, 138, 128, 125, 140, 114, 114, 124, 133, 129, 121, 121, 129, 117, 142, 131, 118, 131, 122, 121, 122, 121, 117, 117, 108, 139, 137, 113, 117, 122, 116, 117, 134, 140, 125, 116, 127, 113, 126, 122, 107, 132, 136, 130, 123, 139, 127, 116, 124, 122, 119, 140, 123, 123, 113, 124, 138, 134, 125, 145, 123, 113, 129, 115, 120, 126, 121, 112, 115, 135, 137, 111, 131, 129, 126, 120, 129, 139, 112, 112, 130, 138, 141, 125, 129, 141, 120, 134, 116, 128, 119, 129, 117, 133, 132, 122, 150, 111, 141, 112, 121, 110, 125, 109, 115, 126, 111, 128, 118, 129, 137, 134, 124, 122, 133, 120, 121, 139, 130, 114, 135, 112, 122, 115, 119, 134, 117, 114, 139, 135, 134, 130, 111, 123, 126, 132, 120, 121, 132, 153, 105, 153, 122, 120, 133, 130, 117, 124, 117, 120, 121, 122, 135, 118, 130, 123, 138, 134, 130, 120, 118, 137, 132, 107, 125, 134, 127, 103, 124, 126, 112, 129, 114, 125, 126, 128, 106, 124, 114, 122, 122, 117, 106, 144, 124, 136, 138, 102, 134, 138, 139, 126, 128, 131, 115, 130, 116, 111, 115, 121, 117, 123, 141, 105, 117, 131, 117, 130, 133, 113, 119, 128, 106, 124, 108, 128, 132, 121, 115, 124, 113, 121, 133, 136, 134, 146, 132, 102, 123, 134, 123, 131, 135, 131, 124, 109, 128, 126, 123, 119, 136, 140, 131, 116, 117, 114, 131, 146, 127, 122, 134, 131, 133, 117, 141, 122, 114, 124, 124, 115, 148, 106, 119, 122, 116, 119, 148, 120, 113, 118, 118, 122, 103, 116, 137, 140, 122, 128, 124, 127, 113, 122, 128, 129, 140, 138, 122, 113, 131, 111, 126, 107, 116, 127, 118, 129, 131, 126, 113, 120, 119, 106, 118, 129, 108, 124, 108, 114, 125, 115, 127, 137, 120, 120, 120, 136, 115, 127, 109, 135, 144, 114, 123, 123, 128, 112, 131, 121, 139, 123, 125, 123, 116, 113, 138, 118, 121, 126, 121, 109, 123, 122, 126, 126, 119, 130, 123, 127, 156, 115, 116, 133, 130, 131, 121, 115, 125, 114, 132, 135, 129, 145, 137, 152, 111, 142, 123, 112, 117, 115, 139, 128, 120, 108, 118, 132, 111, 130, 121, 123, 122, 121, 101, 120, 113, 124, 115, 139, 130, 122, 124, 132, 145, 133, 137, 131, 134, 99, 133, 120, 126, 116, 130, 130, 126, 131, 137, 124, 116, 120, 123, 123, 121, 125, 130, 129, 119, 137, 128, 129, 112, 113, 127, 140, 129, 136, 117, 116, 146, 140, 134, 129, 110, 113, 117, 131, 129, 127, 125, 127, 132, 124, 134, 136, 121, 133, 139, 120, 123, 118, 122, 116, 109, 157, 128, 134, 137, 122, 118, 142, 125, 139, 128, 114, 133, 125, 132, 123, 130, 129, 115, 151, 114, 129, 134, 127, 105, 134, 110, 113, 130, 122, 112, 118, 127, 147, 137, 119, 134, 128, 123, 120, 134, 124, 123, 127, 133, 125, 129, 134, 126, 128, 123, 130, 117, 122, 125, 124, 131, 124, 122, 120, 116, 118, 139, 129, 147, 119, 121, 105, 122, 105, 142, 109, 143, 109, 115, 105, 133, 126, 137, 117, 119, 123, 121, 123, 134, 107, 127, 120, 136, 124, 124, 139, 127, 119, 123, 123, 140, 111, 117, 129, 125, 116, 129, 141, 129, 156, 126, 120, 130, 135, 122, 126, 122, 132, 117, 123, 122, 138, 111, 112, 141, 124, 119, 122, 131, 117, 135, 130, 115, 102, 132, 109, 125, 136, 128, 119, 128, 124, 132, 126, 139, 117, 135, 135, 119, 120, 125, 125, 124, 138, 112, 130, 120, 118, 117, 116, 118, 133, 104, 113, 143, 111, 122, 136, 122, 140, 121, 128, 120, 124, 115, 135, 119, 126, 106, 126, 134, 130, 126, 92, 117, 112, 123, 120, 114, 116, 135, 129, 126, 118, 124, 119, 125, 113, 134, 120, 134, 134, 135, 98, 117, 152, 126, 142, 120, 130, 118, 126, 127, 125, 133, 135, 113, 146, 104, 137, 119, 136, 110, 144, 114, 122, 116, 138, 135, 114, 121, 118, 135, 121, 141, 116, 110, 127, 133, 130, 127, 141, 136, 125, 120, 142, 144, 117, 132, 123, 122, 106, 114, 125, 127, 120, 125, 110, 134, 118, 127, 131, 129, 119, 121, 106, 123, 131, 109, 134, 103, 126, 121, 133, 140, 119, 132, 121, 130, 138, 131, 118, 143, 116, 130, 121, 115, 125, 124, 112, 128, 111, 149, 111, 114, 138, 114, 124, 109, 123, 117, 130, 126, 134, 109, 133, 136, 131, 118, 135, 116, 121, 112, 129, 129, 118, 124, 120, 130, 132, 118, 130, 143, 116, 142, 126, 126, 125, 118, 143, 118, 122, 128, 102, 118, 141, 120, 141, 135, 136, 127, 121, 115, 127, 121, 135, 128, 125, 104, 133, 129, 127, 126, 118, 150, 113, 122, 132, 129, 131, 115, 104, 132, 120, 135, 134, 140, 141, 134, 132, 123, 134, 141, 106, 126, 111, 122, 131, 136, 132, 113, 121, 138, 130, 125, 138, 124, 102, 128, 138, 135, 112, 139, 119, 123, 153, 114, 128, 139, 123, 125, 120, 140, 123, 128, 129, 129, 139, 133, 148, 119, 102, 119, 146, 147, 139, 122, 131, 141, 117, 131, 124, 104, 109, 120, 123, 118, 111, 126, 119, 121, 123, 145, 117, 135, 117, 132, 121, 136, 136, 113, 119, 131, 117, 117, 128, 123, 111, 129, 145, 130, 125, 125, 137, 111, 135, 140, 114, 116, 129, 130, 114, 123, 137, 145, 113, 120, 131, 143, 126, 118, 125, 120, 130, 126, 124, 154, 146, 140, 126, 125, 116, 125, 110, 128, 111, 113, 102, 133, 114, 137, 135, 116, 98, 104, 129, 110, 105, 121, 138, 132, 122, 109, 117, 123, 130, 125, 133, 117, 114, 117, 122, 102, 104, 114, 115, 114, 116, 131, 130, 132, 138, 132, 114, 122, 133, 117, 122, 106, 119, 135, 128, 124, 118, 123, 114, 130, 122, 135, 134, 129, 133, 126, 126, 122, 138, 132, 127, 149, 128, 133, 133, 126, 140, 120, 118, 114, 124, 121, 120, 130, 128, 129, 128, 122, 133, 141, 135, 131, 125, 114, 137, 115, 129, 119, 122, 123, 119, 133, 137, 135, 135, 120, 128, 133, 132, 128, 119, 149, 125, 121, 129, 132, 134, 153, 125, 120, 142, 120, 118, 110, 129, 133, 144, 133, 128, 115, 107, 128, 129, 104, 119, 140, 127, 122, 130, 130, 134, 120, 129, 135, 145, 149, 111, 140, 127, 124, 136, 124, 120, 136, 128, 129, 134, 152, 120, 127, 116, 114, 119, 130, 125, 104, 140, 142, 124, 111, 117, 130, 124, 133, 145, 128, 136, 145, 132, 123, 122, 117, 121, 136, 135, 139, 119, 134, 118, 122, 131, 126, 127, 121, 129, 134, 142, 107, 120, 136, 133, 134, 111, 117, 124, 126, 118, 129, 123, 119, 121, 121, 130, 125, 125, 129, 119, 132, 110, 125, 136, 131, 114, 103, 129, 122, 128, 136, 122, 120, 121, 135, 120, 131, 142, 118, 120, 128, 118, 120, 106, 128, 119, 126, 119, 126, 125, 117, 122, 123, 118, 125, 106, 116, 135, 134, 132, 124, 131, 112, 167, 127, 127, 124, 117, 118, 104, 137, 140, 132, 135, 138, 127, 123, 131, 118, 109, 121, 100, 123, 116, 127, 118, 131, 110, 134, 124, 113, 136, 124, 118, 136, 108, 141, 128, 112, 122, 108, 128, 128, 114, 127, 109, 125, 113, 139, 129, 110, 131, 119, 135, 138, 123, 139, 127, 125, 114, 125, 121, 116, 132, 131, 130, 140, 134, 140, 116, 116, 142, 147, 116, 131, 105, 126, 127, 130, 119, 139, 107, 138, 121, 144, 114, 119, 129, 141, 126, 112, 136, 152, 123, 131, 129, 112, 133, 113, 128, 107, 129, 123, 98, 135, 138, 142, 122, 131, 136, 126, 117, 109, 132, 130, 125, 142, 143, 131, 120, 124, 124, 119, 148, 119, 119, 126, 109, 124, 124, 126, 130, 127, 135, 125, 114, 133, 138, 155, 121, 136, 129, 130, 118, 121, 117, 126, 133, 115, 133, 124, 143, 137, 120, 125, 139, 117, 111, 118, 99, 106, 124, 124, 128, 127, 140, 140, 118, 119, 121, 119, 135, 125, 149, 129, 126, 115, 119, 128, 114, 96, 126, 121, 134, 137, 115, 131, 118, 124, 130, 133, 126, 132, 132, 133, 133, 129, 134, 110, 133, 133, 121, 119, 119, 132, 125, 138, 122, 156, 122, 132, 121, 112, 130, 121, 124, 121, 132, 117, 116, 134, 155, 124, 131, 147, 125, 134, 110, 124, 125, 141, 127, 124, 130, 126, 128, 129, 126, 148, 123, 122, 117, 128, 139, 117, 126, 109, 132, 127, 128, 145, 138, 123, 143, 137, 126, 115, 131, 127, 130, 141, 115, 119, 142, 127, 130, 135, 116, 124, 126, 104, 131, 131, 136, 126, 134, 106, 147, 148, 138, 138, 131, 112, 130, 139, 128, 119, 116, 110, 117, 130, 132, 123, 129, 119, 124, 119, 136, 117, 129, 138, 132, 117, 131, 126, 159, 112, 127, 129, 105, 120, 146, 109, 124, 124, 143, 107, 126, 111, 134, 137, 120, 137, 128, 142, 133, 120, 142, 128, 108, 136, 127, 131, 128, 126, 119, 126, 124, 124, 113, 127, 131, 137, 120, 126, 127, 143, 124, 135, 119, 105, 138, 110, 143, 114, 115, 118, 137, 115, 135, 120, 131, 107, 121, 132, 119, 120, 116, 128, 125, 134, 136, 118, 115, 136, 110, 135, 116, 130, 123, 131, 130, 96, 130, 123, 136, 138, 122, 113, 130, 145, 140, 116, 133, 125, 117, 126, 118, 120, 142, 116, 122, 139, 125, 123, 116, 133, 113, 119, 117, 138, 135, 130, 121, 146, 90, 129, 133, 132, 129, 119, 130, 129, 130, 142, 120, 116, 131, 145, 141, 120, 111, 122, 129, 123, 138, 124, 136, 131, 125, 126, 153, 140, 122, 130, 125, 109, 140, 124, 118, 135, 136, 128, 131, 131, 132, 115, 132, 114, 118, 114, 118, 125, 116, 110, 132, 131, 123, 130, 106, 129, 126, 142, 121, 114, 125, 142, 146, 112, 116, 103, 139, 128, 134, 128, 122, 135, 121, 114, 133, 153, 123, 136, 103, 129, 111, 135, 122, 135, 123, 133, 127, 143, 147, 129, 124, 124, 119, 117, 120, 133, 144, 125, 123, 147, 125, 113, 124, 122, 124, 123, 117, 126, 133, 139, 121, 129, 115, 136, 138, 121, 119, 129, 134, 121, 126, 130, 122, 120, 131, 127, 135, 122, 129, 142, 150, 117, 117, 109, 131, 121, 142, 128, 119, 133, 108, 124, 122, 118, 142, 109, 132, 120, 125, 126, 128, 118, 97, 138, 113, 95, 118, 137, 113, 144, 121, 124, 125, 130, 120, 112, 126, 140, 102, 127, 124, 128, 136, 118, 137, 123, 112, 121, 116, 134, 116, 136, 128, 137, 113, 117, 126, 137, 101, 112, 115, 125, 98, 118, 124, 124, 127, 143, 134, 109, 124, 119, 120, 124, 127, 125, 135, 125, 145, 115, 117, 107, 136, 129, 138, 134, 118, 129, 123, 125, 133, 122, 117, 121, 124, 113, 143, 127, 112, 122, 145, 122, 138, 129, 125, 121, 128, 126, 121, 140, 130, 111, 134, 129, 109, 118, 132, 120, 116, 132, 137, 128, 125, 131, 109, 151, 104, 133, 123, 126, 120, 116, 128, 126, 160, 133, 126, 134, 112, 128, 137, 125, 152, 128, 132, 118, 128, 142, 130, 131, 112, 122, 111, 116, 129, 122, 122, 139, 128, 129, 117, 112, 119, 122, 116, 120, 126, 136, 126, 135, 136, 138, 129, 126, 117, 118, 133, 121, 131, 128, 120, 135, 133, 128, 117, 121, 142, 151, 146, 125, 136, 118, 114, 117, 121, 124, 114, 128, 114, 117, 115, 122, 137, 133, 125, 149, 114, 113, 122, 138, 114, 128, 134, 129, 130, 120, 121, 147, 114, 127, 129, 105, 107, 121, 121, 135, 116, 119, 111, 121, 141, 126, 143, 142, 122, 138, 109, 125, 112, 129, 113, 134, 120, 130, 113, 119, 136, 131, 129, 112, 118, 125, 133, 150, 129, 126, 134, 120, 112, 110, 130, 134, 120, 123, 132, 116, 133, 109, 121, 136, 116, 108, 125, 117, 108, 130, 127, 134, 132, 126, 113, 127, 116, 129, 124, 136, 126, 117, 132, 142, 150, 131, 107, 128, 132, 118, 121, 125, 128, 132, 120, 134, 122, 127, 113, 123, 124, 136, 114, 124, 130, 131, 127, 120, 117, 117, 135, 151, 118, 119, 111, 129, 122, 107, 105, 113, 129, 120, 124, 128, 147, 116, 139, 125, 118, 125, 132, 122, 123, 125, 123, 134, 105, 118, 135, 106, 121, 138, 116, 127, 148, 126, 122, 126, 130, 131, 126, 119, 136, 107, 125, 127, 129, 133, 133, 116, 137, 128, 125, 125, 119, 105, 108, 128, 126, 144, 139, 119, 129, 122, 101, 118, 127, 134, 124, 133, 125, 138, 117, 107, 137, 133, 115, 129, 130, 135, 139, 121, 124, 120, 123, 120, 108, 118, 132, 110, 126, 125, 137, 129, 127, 138, 137, 112, 120, 156, 124, 118, 138, 119, 132, 129, 130, 119, 128, 139, 126, 131, 116, 116, 118, 132, 118, 115, 125, 127, 138, 116, 134, 130, 117, 149, 144, 153, 126, 129, 133, 149, 118, 125, 110, 128, 153, 114, 129, 124, 125, 119, 121, 134, 119, 134, 128, 110, 115, 133, 156, 121, 125, 117, 124, 117, 137, 123, 111, 152, 135, 116, 131, 117, 133, 128, 125, 109, 129, 126, 117, 120, 126, 128, 136, 125, 120, 132, 119, 136, 118, 125, 138, 122, 116, 129, 123, 118, 122, 113, 123, 114, 121, 118, 114, 133, 143, 121, 132, 147, 126, 116, 150, 119, 118, 127, 114, 136, 121, 130, 133, 115, 138, 118, 120, 142, 125, 124, 131, 112, 150, 117, 122, 136, 107, 135, 123, 129, 139, 131, 123, 126, 123, 145, 151, 108, 136, 131, 141, 112, 111, 129, 126, 134, 119, 121, 133, 136, 130, 129, 117, 128, 125, 126, 123, 114, 113, 139, 131, 148, 104, 126, 120, 136, 121, 131, 139, 119, 138, 141, 116, 106, 105, 139, 132, 124, 130, 111, 113, 126, 129, 115, 120, 106, 121, 129, 130, 113, 131, 121, 120, 136, 125, 120, 130, 133, 123, 114, 124, 117, 138, 120, 119, 123, 116, 109, 125, 138, 130, 123, 128, 139, 131, 122, 127, 132, 128, 138, 121, 136, 109, 137, 146, 107, 113, 137, 142, 120, 126, 137, 115, 113, 129, 104, 124, 132, 142, 116, 141, 129, 128, 119, 134, 104, 131, 125, 134, 115, 125, 124, 146, 111, 132, 130, 131, 130, 133, 135, 119, 128, 115, 130, 126, 123, 114, 132, 120, 149, 140, 117, 122, 119, 124, 103, 125, 120, 135, 105, 139, 123, 132, 123, 141, 130, 127, 102, 128, 122, 124, 115, 126, 128, 124, 139, 105, 125, 126, 133, 129, 118, 133, 116, 128, 139, 123, 124, 149, 126, 148, 122, 152, 113, 115, 109, 134, 110, 125, 126, 139, 136, 143, 101, 115, 132, 121, 127, 133, 133, 126, 114, 131, 137, 132, 147, 116, 127, 130, 124, 154, 128, 118, 136, 124, 125, 124, 129, 122, 110, 113, 126, 111, 126, 133, 111, 117, 111, 127, 124, 130, 131, 121, 129, 131, 130, 122, 114, 129, 111, 127, 119, 130, 125, 118, 137, 132, 127, 116, 134, 131, 134, 139, 128, 129, 120, 122, 124, 122, 136, 127, 106, 126, 142, 136, 111, 108, 128, 111, 137, 128, 128, 124, 144, 131, 122, 149, 119, 124, 147, 116, 122, 128, 122, 123, 100, 124, 133, 122, 124, 136, 129, 114, 113, 127, 134, 126, 129, 120, 150, 124, 115, 118, 136, 116, 132, 125, 147, 156, 124, 118, 137, 118, 133, 125, 120, 110, 120, 123, 124, 124, 138, 124, 121, 143, 111, 129, 132, 149, 111, 125, 127, 108, 115, 121, 111, 130, 134, 122, 118, 127, 112, 129, 137, 123, 120, 114, 112, 127, 115, 126, 124, 145, 126, 116, 126, 136, 145, 142, 145, 137, 120, 121, 132, 142, 115, 134, 137, 110, 111, 120, 126, 154, 138, 125, 140, 122, 122, 122, 126, 126, 129, 111, 121, 119, 122, 134, 111, 139, 112, 121, 135, 121, 100, 128, 135, 131, 139, 119, 112, 112, 125, 116, 111, 127, 129, 126, 100, 119, 119, 110, 111, 124, 136, 123, 122, 124, 121, 107, 117, 135, 130, 121, 117, 120, 136, 135, 129, 118, 139, 128, 131, 115, 111, 141, 124, 127, 135, 128, 142, 142, 127, 124, 123, 110, 136, 143, 118, 142, 129, 121, 128, 139, 132, 135, 128, 130, 121, 106, 123, 123, 113, 112, 113, 131, 122, 133, 119, 119, 137, 106, 133, 141, 120, 123, 121, 131, 132, 104, 114, 125, 107, 108, 122, 101, 123, 127, 151, 131, 138, 133, 117, 135, 112, 127, 98, 121, 130, 129, 131, 142, 136, 135, 105, 125, 106, 126, 139, 143, 125, 131, 110, 123, 136, 115, 133, 119, 113, 117, 129, 131, 123, 116, 127, 112, 128, 108, 133, 120, 136, 110, 137, 125, 125, 120, 126, 139, 118, 126, 112, 122, 121, 133, 96, 135, 119, 128, 130, 128, 125, 107, 132, 103, 118, 129, 128, 114, 129, 122, 125, 105, 149, 123, 121, 117, 135, 131, 144, 117, 141, 110, 88, 117, 124, 124, 126, 124, 124, 127, 124, 107, 139, 134, 128, 137, 107, 119, 135, 121, 135, 122, 126, 120, 115, 126, 128, 119, 111, 112, 136, 129, 114, 120, 125, 145, 138, 127, 132, 132, 119, 129, 115, 121, 136, 117, 121, 116, 126, 109, 114, 142, 131, 137, 138, 107, 118, 134, 130, 126, 139, 136, 120, 139, 124, 124, 120, 136, 121, 113, 141, 103, 112, 144, 130, 113, 120, 109, 120, 145, 123, 130, 122, 116, 137, 131, 141, 124, 126, 116, 125, 118, 127, 134, 123, 122, 127, 128, 126, 119, 108, 141, 135, 141, 107, 123, 128, 111, 128, 115, 112, 139, 147, 135, 133, 127, 129, 115, 122, 118, 103, 128, 111, 108, 147, 119, 134, 121, 119, 124, 123, 119, 146, 133, 155, 149, 143, 128, 120, 113, 128, 123, 129, 124, 125, 116, 123, 109, 133, 131, 111, 120, 127, 118, 124, 121, 124, 127, 135, 141, 121, 138, 121, 137, 135, 132, 133, 102, 117, 119, 113, 141, 118, 134, 131, 114, 134, 126, 132, 114, 122, 121, 127, 129, 120, 139, 127, 130, 124, 131, 151, 128, 119, 116, 139, 136, 106, 99, 103, 127, 107, 114, 136, 119, 102, 131, 120, 117, 118, 117, 128, 111, 142, 129, 107, 103, 124, 132, 120, 123, 132, 131, 124, 139, 125, 135, 127, 115, 125, 125, 128, 134, 120, 118, 128, 133, 118, 116, 109, 111, 133, 131, 118, 115, 100, 126, 102, 124, 148, 120, 127, 117, 108, 112, 125, 119, 120, 123, 123, 118, 124, 140, 122, 119, 124, 136, 104, 116, 104, 127, 106, 126, 123, 122, 124, 129, 132, 121, 124, 123, 120, 133, 123, 116, 146, 122, 135, 128, 113, 126, 123, 135, 134, 122, 132, 140, 130, 128, 101, 130, 123, 121, 125, 141, 139, 127, 119, 134, 120, 123, 122, 141, 137, 108, 121, 122, 127, 157, 118, 132, 136, 111, 127, 123, 121, 110, 134, 136, 140, 140, 104, 130, 129, 130, 142, 139, 121, 131, 115, 112, 136, 130, 133, 103, 133, 131, 132, 117, 122, 122, 124, 132, 128, 128, 124, 119, 117, 118, 127, 122, 123, 132, 121, 126, 123, 124, 121, 120, 116, 120, 134, 134, 127, 113, 137, 116, 122, 127, 133, 113, 124, 138, 129, 111, 137, 119, 117, 126, 118, 119, 124, 125, 125, 133, 118, 122, 131, 125, 130, 141, 123, 130, 131, 124, 157, 123, 132, 122, 123, 134, 133, 121, 122, 115, 127, 116, 141, 124, 120, 150, 146, 143, 130, 113, 129, 122, 124, 130, 128, 132, 116, 144, 112, 119, 127, 113, 120, 117, 124, 137, 122, 136, 131, 135, 107, 135, 106, 118, 130, 144, 112, 128, 118, 112, 117, 132, 106, 121, 128, 120, 115, 129, 144, 115, 96, 131, 118, 120, 129, 130, 125, 130, 119, 114, 107, 116, 128, 132, 121, 134, 123, 122, 136, 142, 136, 110, 120, 136, 125, 113, 139, 125, 126, 133, 107, 133, 139, 133, 124, 116, 138, 122, 121, 112, 141, 125, 137, 113, 105, 120, 128, 132, 132, 121, 124, 130, 133, 132, 118, 118, 122, 139, 126, 133, 126, 138, 131, 126, 126, 123, 144, 126, 121, 155, 100, 122, 120, 130, 112, 137, 142, 125, 127, 130, 131, 121, 121, 115, 133, 116, 131, 115, 104, 126, 127, 126, 120, 118, 129, 117, 135, 139, 131, 115, 131, 129, 112, 118, 131, 117, 124, 130, 131, 133, 142, 125, 120, 123, 114, 126, 120, 117, 119, 117, 125, 120, 141, 120, 130, 117, 116, 122, 116, 119, 135, 126, 128, 119, 120, 128, 121, 126, 120, 127, 105, 118, 124, 131, 135, 119, 129, 118, 125, 119, 119, 128, 133, 122, 143, 133, 122, 133, 128, 125, 117, 120, 127, 136, 128, 118, 143, 126, 123, 124, 121, 113, 115, 140, 127, 133, 149, 140, 128, 134, 121, 132, 126, 132, 147, 141, 135, 127, 121, 134, 132, 130, 136, 130, 135, 119, 135, 138, 124, 149, 108, 134, 122, 128, 139, 136, 115, 116, 112, 130, 129, 124, 115, 133, 113, 104, 123, 121, 121, 105, 134, 128, 130, 123, 129, 116, 144, 129, 119, 132, 116, 121, 123, 129, 109, 129, 111, 110, 119, 143, 129, 120, 132, 121, 128, 133, 125, 128, 126, 120, 113, 143, 125, 156, 154, 127, 125, 136, 115, 130, 113, 130, 147, 126, 121, 126, 125, 115, 113, 134, 127, 124, 136, 128, 122, 116, 117, 133, 139, 124, 142, 124, 132, 112, 105, 115, 125, 129, 126, 127, 125, 138, 148, 135, 123, 126, 137, 116, 125, 146, 119, 117, 141, 123, 119, 130, 130, 120, 142, 120, 121, 134, 124, 134, 123, 129, 126, 144, 127, 135, 111, 133, 116, 120, 128, 118, 128, 126, 133, 126, 129, 118, 125, 106, 122, 142, 128, 118, 130, 125, 146, 140, 121, 161, 119, 119, 125, 137, 130, 120, 133, 110, 113, 127, 125, 114, 127, 114, 145, 117, 124, 135, 123, 120, 127, 115, 128, 126, 122, 126, 134, 117, 135, 105, 120, 119, 127, 129, 140, 121, 131, 151, 129, 119, 108, 123, 141, 123, 128, 118, 130, 129, 116, 124, 111, 149, 109, 125, 142, 119, 117, 138, 105, 123, 132, 135, 128, 132, 131, 128, 131, 122, 141, 135, 95, 124, 137, 136, 134, 121, 118, 120, 124, 118, 119, 122, 126, 124, 114, 133, 132, 141, 111, 122, 128, 138, 127, 134, 121, 120, 122, 124, 130, 123, 117, 135, 117, 115, 129, 132, 141, 144, 111, 131, 108, 130, 111, 111, 130, 128, 125, 119, 139, 108, 121, 130, 144, 145, 130, 143, 116, 132, 126, 146, 122, 121, 131, 116, 126, 123, 128, 106, 129, 131, 118, 131, 128, 135, 123, 133, 120, 121, 124, 137, 132, 124, 120, 119, 119, 121, 133, 106, 127, 128, 151, 139, 133, 131, 102, 144, 134, 132, 120, 101, 132, 114, 137, 118, 128, 157, 119, 122, 139, 127, 141, 127, 114, 125, 125, 113, 123, 131, 134, 122, 129, 113, 115, 122, 131, 124, 132, 111, 132, 142, 145, 120, 122, 126, 121, 113, 122, 129, 118, 125, 122, 117, 135, 124, 116, 111, 118, 129, 129, 131, 116, 132, 116, 122, 124, 125, 136, 143, 136, 133, 126, 123, 121, 124, 127, 119, 123, 136, 117, 135, 133, 111, 125, 129, 127, 113, 141, 129, 118, 134, 117, 134, 132, 127, 104, 126, 122, 119, 127, 123, 128, 115, 145, 135, 134, 139, 132, 126, 131, 131, 118, 105, 119, 125, 128, 117, 117, 111, 128, 129, 127, 112, 118, 121, 112, 142, 135, 138, 130, 120, 130, 126, 133, 125, 137, 125, 118, 128, 142, 137, 123, 124, 135, 147, 134, 110, 134, 131, 138, 136, 144, 122, 136, 126, 110, 153, 124, 120, 126, 116, 121, 120, 129, 145, 105, 133, 132, 129, 113, 140, 117, 126, 111, 118, 114, 129, 143, 123, 102, 115, 125, 132, 126, 122, 96, 126, 121, 131, 118, 134, 120, 118, 156, 106, 127, 130, 126, 139, 115, 135, 129, 106, 124, 116, 134, 138, 128, 124, 144, 130, 141, 115, 126, 129, 121, 139, 132, 145, 133, 138, 141, 122, 120, 123, 108, 141, 114, 114, 131, 125, 132, 132, 133, 123, 126, 115, 121, 119, 144, 135, 127, 132, 121, 139, 108, 134, 110, 108, 135, 138, 130, 96, 121, 133, 143, 135, 125, 116, 107, 139, 127, 110, 114, 132, 118, 129, 105, 126, 124, 146, 132, 106, 122, 123, 133, 117, 116, 113, 126, 128, 113, 131, 103, 113, 113, 133, 127, 136, 117, 130, 129, 113, 142, 122, 113, 120, 123, 130, 121, 132, 116, 131, 128, 111, 135, 118, 128, 140, 132, 131, 115, 127, 131, 137, 133, 123, 116, 107, 128, 119, 138, 131, 132, 135, 119, 169, 121, 124, 137, 128, 138, 121, 141, 128, 130, 118, 127, 132, 129, 131, 120, 124, 127, 128, 104, 129, 121, 141, 132, 116, 128, 133, 135, 121, 126, 129, 106, 111, 124, 130, 128, 134, 121, 141, 124, 115, 130, 103, 129, 131, 118, 110, 126, 115, 123, 132, 127, 139, 108, 112, 126, 132, 141, 122, 117, 129, 144, 123, 136, 128, 128, 143, 110, 125, 120, 128, 143, 117, 130, 110, 129, 126, 108, 130, 120, 138, 115, 107, 126, 116, 110, 121, 135, 136, 129, 121, 121, 124, 113, 148, 110, 138, 123, 132, 123, 120, 131, 141, 124, 129, 124, 118, 142, 158, 137, 131, 124, 134, 137, 108, 114, 138, 126, 130, 142, 114, 124, 123, 141, 125, 142, 126, 105, 121, 128, 108, 141, 124, 101, 135, 127, 148, 131, 109, 115, 108, 113, 130, 138, 131, 95, 111, 122, 128, 151, 131, 136, 134, 107, 121, 150, 123, 129, 116, 125, 128, 111, 121, 113, 132, 129, 137, 124, 110, 93, 139, 140, 139, 123, 126, 139, 120, 149, 146, 119, 131, 140, 145, 121, 126, 134, 116, 121, 124, 142, 131, 125, 142, 102, 128, 109, 114, 123, 121, 117, 111, 130, 125, 134, 121, 137, 121, 144, 140, 145, 111, 123, 124, 118, 142, 102, 127, 115, 126, 126, 124, 134, 145, 151, 121, 123, 132, 114, 123, 139, 147, 130, 125, 151, 142, 119, 121, 146, 141, 130, 123, 128, 122, 120, 112, 124, 127, 128, 129, 117, 117, 154, 119, 126, 132, 136, 122, 130, 124, 123, 124, 134, 126, 110, 117, 131, 126, 124, 118, 129, 135, 112, 125, 127, 125, 122, 124, 118, 131, 115, 133, 140, 134, 104, 136, 110, 136, 127, 146, 121, 119, 124, 112, 134, 132, 101, 130, 125, 122, 129, 132, 108, 124, 96, 112, 116, 121, 129, 114, 134, 126, 121, 132, 136, 115, 114, 137, 118, 139, 131, 117, 135, 127, 122, 111, 128, 114, 132, 127, 130, 135, 126, 148, 126, 116, 127, 135, 112, 139, 138, 102, 129, 132, 123, 118, 121, 115, 113, 136, 113, 128, 111, 122, 134, 126, 134, 122, 135, 121, 115, 136, 138, 128, 112, 124, 105, 122, 133, 123, 131, 125, 129, 128, 139, 121, 116, 127, 142, 119, 111, 124, 110, 112, 122, 118, 136, 124, 131, 124, 137, 140, 131, 122, 135, 125, 123, 120, 117, 130, 125, 130, 133, 121, 123, 116, 118, 105, 125, 108, 140, 125, 111, 118, 137, 129, 145, 126, 106, 136, 128, 115, 129, 110, 130, 124, 134, 145, 139, 136, 126, 130, 113, 115, 131, 108, 141, 109, 130, 108, 122, 135, 121, 131, 129, 134, 118, 134, 129, 138, 131, 119, 121, 122, 131, 118, 114, 123, 137, 117, 127, 136, 120, 136, 131, 125, 137, 117, 136, 138, 126, 119, 140, 113, 116, 135, 135, 137, 129, 131, 141, 131, 138, 113, 104, 110, 104, 123, 108, 125, 135, 125, 123, 120, 85, 112, 129, 129, 117, 134, 113, 125, 142, 135, 141, 132, 121, 117, 130, 119, 121, 132, 125, 122, 123, 126, 116, 113, 130, 120, 131, 119, 159, 119, 135, 119, 127, 133, 130, 133, 130, 113, 129, 117, 105, 115, 135, 121, 126, 127, 137, 125, 117, 125, 119, 111, 125, 119, 124, 115, 118, 134, 108, 136, 135, 124, 121, 107, 115, 121, 125, 122, 133, 115, 130, 137, 140, 127, 136, 129, 130, 130, 127, 135, 136, 116, 139, 124, 124, 121, 109, 113, 114, 114, 130, 124, 116, 116, 136, 130, 131, 115, 132, 112, 126, 125, 132, 122, 128, 125, 137, 130, 124, 110, 133, 126, 116, 136, 117, 122, 135, 119, 130, 131, 119, 118, 122, 119, 137, 140, 132, 124, 124, 138, 129, 117, 124, 129, 121, 144, 132, 134, 136, 135, 105, 116, 132, 122, 108, 116, 114, 131, 115, 139, 134, 125, 126, 133, 128, 145, 141, 132, 113, 137, 122, 142, 123, 120, 120, 139, 137, 133, 112, 134, 115, 135, 115, 139, 126, 129, 124, 141, 123, 134, 138, 131, 117, 105, 123, 136, 119, 132, 143, 128, 116, 131, 151, 124, 144, 138, 115, 138, 136, 142, 123, 133, 122, 114, 131, 108, 120, 114, 110, 128, 126, 126, 135, 119, 138, 119, 117, 133, 130, 118, 129, 118, 136, 132, 128, 128, 133, 118, 135, 116, 125, 127, 134, 126, 131, 110, 136, 134, 118, 123, 124, 114, 127, 116, 124, 120, 117, 151, 146, 117, 119, 124, 113, 106, 126, 136, 129, 125, 123, 113, 115, 129, 129, 138, 125, 118, 143, 121, 145, 133, 132, 107, 118, 105, 124, 128, 122, 111, 132, 111, 137, 123, 125, 140, 97, 111, 148, 130, 128, 134, 121, 115, 130, 122, 106, 121, 113, 124, 142, 127, 122, 138, 120, 114, 113, 127, 135, 143, 121, 150, 134, 156, 138, 111, 113, 124, 120, 152, 156, 112, 137, 122, 126, 139, 154, 112, 126, 132, 104, 134, 125, 124, 123, 128, 131, 133, 128, 120, 126, 115, 124, 119, 121, 132, 120, 136, 131, 133, 127, 131, 112, 123, 110, 129, 127, 121, 130, 133, 124, 111, 119, 121, 130, 136, 122, 139, 123, 149, 113, 125, 121, 116, 118, 130, 121, 112, 133, 135, 119, 119, 133, 120, 116, 119, 145, 132, 110, 135, 122, 130, 135, 122, 120, 128, 127, 120, 131, 146, 121, 116, 117, 126, 153, 130, 117, 119, 130, 138, 144, 124, 120, 128, 127, 115, 114, 135, 137, 116, 123, 126, 133, 108, 131, 139, 126, 125, 148, 139, 125, 116, 120, 122, 107, 111, 109, 127, 115, 130, 112, 120, 124, 135, 135, 131, 117, 124, 120, 109, 123, 145, 126, 125, 135, 102, 121, 128, 115, 110, 101, 130, 130, 121, 131, 126, 142, 128, 118, 123, 131, 119, 106, 128, 134, 133, 142, 127, 128, 128, 124, 114, 111, 129, 129, 113, 130, 128, 116, 135, 110, 143, 127, 134, 121, 111, 113, 131, 115, 130, 132, 134, 131, 130, 129, 150, 129, 122, 118, 127, 132, 138, 129, 137, 121, 114, 133, 124, 131, 114, 126, 121, 113, 118, 123, 114, 137, 121, 124, 127, 117, 130, 144, 124, 133, 131, 119, 130, 131, 133, 144, 133, 131, 99, 108, 114, 114, 135, 99, 140, 146, 152, 133, 143, 125, 138, 123, 140, 133, 137, 121, 117, 126, 111, 127, 104, 132, 136, 120, 144, 131, 126, 122, 127, 152, 140, 131, 117, 120, 115, 118, 113, 137, 120, 133, 150, 124, 125, 137, 129, 134, 104, 110, 105, 112, 133, 106, 114, 130, 123, 126, 119, 127, 129, 135, 121, 134, 112, 118, 138, 94, 125, 133, 139, 154, 103, 112, 119, 126, 129, 132, 130, 127, 150, 127, 132, 127, 126, 132, 130, 111, 123, 129, 133, 129, 130, 119, 124, 109, 126, 127, 138, 130, 133, 108, 127, 125, 107, 100, 134, 149, 124, 132, 122, 121, 130, 131, 117, 135, 137, 123, 114, 142, 119, 128, 135, 130, 130, 123, 126, 138, 129, 128, 133, 126, 92, 125, 123, 121, 126, 130, 122, 132, 131, 117, 130, 124, 125, 137, 134, 126, 114, 112, 163, 129, 129, 126, 131, 131, 129, 124, 122, 149, 133, 125, 130, 132, 126, 121, 119, 127, 133, 124, 138, 123, 133, 125, 130, 147, 121, 114, 116, 138, 107, 131, 124, 123, 121, 126, 122, 107, 112, 128, 137, 139, 143, 130, 120, 120, 128, 118, 116, 130, 122, 117, 113, 127, 129, 141, 123, 136, 128, 118, 103, 103, 114, 126, 131, 130, 121, 129, 123, 119, 136, 128, 125, 122, 138, 135, 145, 133, 128, 124, 119, 127, 122, 138, 116, 129, 124, 138, 114, 136, 147, 113, 114, 112, 138, 114, 115, 127, 143, 129, 124, 116, 125, 100, 132, 113, 130, 125, 115, 137, 137, 125, 138, 121, 128, 96, 126, 147, 125, 120, 127, 129, 122, 100, 116, 137, 124, 118, 139, 124, 106, 132, 130, 126, 144, 133, 137, 118, 132, 129, 116, 140, 109, 134, 91, 113, 145, 110, 133, 126, 128, 109, 113, 123, 129, 122, 113, 117, 111, 103, 122, 141, 154, 112, 142, 138, 121, 129, 136, 112, 117, 115, 126, 123, 128, 141, 123, 118, 123, 145, 156, 120, 110, 115, 130, 163, 110, 114, 123, 111, 126, 122, 115, 124, 115, 118, 120, 132, 134, 131, 143, 138, 138, 121, 122, 106, 139, 124, 130, 132, 121, 123, 114, 118, 124, 115, 125, 108, 121, 109, 130, 129, 116, 114, 126, 137, 119, 141, 107, 133, 132, 117, 121, 119, 134, 136, 117, 127, 114, 122, 131, 138, 117, 126, 116, 127, 120, 141, 124, 123, 139, 115, 132, 118, 130, 113, 135, 130, 141, 135, 115, 124, 149, 123, 117, 136, 108, 104, 135, 116, 134, 129, 139, 115, 119, 115, 127, 130, 127, 133, 132, 118, 139, 126, 124, 109, 120, 131, 127, 109, 125, 136, 120, 130, 117, 113, 115, 135, 125, 133, 112, 145, 125, 123, 128, 126, 131, 129, 137, 130, 117, 130, 131, 132, 120, 137, 118, 120, 128, 137, 122, 123, 115, 117, 124, 126, 130, 114, 121, 115, 126, 138, 129, 141, 104, 139, 139, 141, 125, 127, 139, 134, 125, 134, 129, 119, 123, 132, 124, 131, 135, 128, 117, 115, 125, 127, 138, 137, 137, 133, 150, 132, 131, 124, 123, 118, 112, 115, 133, 113, 115, 128, 136, 136, 107, 117, 116, 140, 126, 140, 119, 129, 134, 138, 113, 126, 137, 111, 140, 123, 137, 121, 134, 151, 113, 110, 120, 120, 126, 118, 122, 148, 106, 126, 117, 137, 137, 124, 134, 109, 134, 121, 128, 142, 112, 142, 123, 120, 125, 124, 135, 108, 123, 124, 133, 119, 141, 121, 133, 113, 117, 113, 124, 121, 125, 113, 99, 112, 131, 134, 127, 118, 115, 127, 140, 122, 125, 114, 122, 125, 137, 128, 131, 127, 129, 141, 123, 130, 116, 107, 113, 143, 139, 112, 127, 123, 115, 115, 133, 124, 116, 113, 130, 132, 111, 115, 110, 122, 124, 136, 119, 118, 120, 126, 141, 132, 124, 110, 148, 104, 130, 108, 125, 108, 127, 121, 130, 115, 129, 127, 123, 115, 135, 129, 127, 129, 115, 131, 129, 111, 123, 122, 131, 114, 111, 128, 117, 125, 110, 107, 128, 133, 121, 129, 136, 119, 132, 135, 121, 123, 124, 128, 131, 128, 144, 127, 135, 121, 142, 117, 129, 121, 132, 129, 129, 122, 135, 116, 107, 138, 144, 129, 118, 134, 139, 132, 120, 132, 118, 119, 128, 119, 123, 130, 120, 129, 111, 132, 126, 141, 160, 121, 107, 127, 138, 149, 117, 120, 123, 121, 114, 115, 139, 118, 146, 114, 116, 123, 138, 124, 135, 112, 117, 130, 133, 120, 136, 135, 148, 118, 115, 130, 122, 125, 121, 105, 117, 135, 135, 108, 116, 113, 130, 141, 142, 114, 124, 119, 129, 121, 122, 124, 131, 125, 115, 132, 143, 142, 114, 142, 120, 123, 115, 116, 146, 130, 100, 122, 130, 140, 116, 121, 129, 120, 113, 131, 122, 119, 138, 139, 125, 128, 124, 141, 117, 133, 127, 126, 106, 119, 122, 103, 138, 121, 127, 108, 120, 124, 133, 130, 113, 125, 134, 129, 122, 122, 111, 139, 131, 113, 123, 120, 124, 124, 126, 127, 116, 127, 122, 114, 119, 111, 116, 122, 134, 112, 140, 126, 139, 112, 115, 127, 138, 120, 118, 132, 125, 118, 135, 116, 129, 122, 117, 132, 133, 106, 144, 122, 124, 122, 145, 135, 138, 115, 125, 127, 129, 130, 108, 138, 120, 131, 129, 127, 144, 126, 134, 111, 125, 120, 139, 138, 120, 139, 145, 132, 122, 123, 120, 120, 123, 127, 126, 138, 129, 116, 115, 127, 157, 110, 134, 131, 128, 133, 130, 120, 115, 115, 129, 117, 133, 111, 113, 119, 135, 127, 122, 105, 133, 117, 132, 127, 126, 136, 117, 111, 123, 104, 119, 138, 123, 137, 135, 134, 129, 124, 134, 133, 136, 116, 126, 116, 140, 145, 132, 138, 139, 142, 123, 124, 144, 135, 131, 106, 115, 134, 117, 121, 138, 129, 115, 118, 120, 106, 117, 129, 127, 110, 124, 127, 124, 126, 140, 123, 125, 134, 129, 125, 110, 127, 136, 147, 125, 117, 121, 121, 124, 125, 102, 122, 135, 123, 119, 124, 128, 130, 136, 111, 126, 136, 112, 134, 116, 124, 126, 137, 127, 126, 126, 136, 124, 116, 133, 123, 115, 129, 124, 121, 124, 117, 130, 140, 114, 126, 139, 139, 117, 114, 149, 116, 131, 147, 125, 144, 136, 139, 125, 133, 133, 115, 128, 114, 135, 125, 123, 127, 123, 127, 130, 118, 124, 113, 118, 127, 129, 135, 119, 137, 142, 118, 138, 117, 122, 115, 126, 121, 139, 149, 124, 141, 128, 133, 127, 156, 106, 103, 135, 127, 124, 117, 126, 124, 144, 122, 118, 130, 138, 127, 128, 124, 132, 131, 126, 127, 124, 121, 118, 138, 134, 132, 129, 118, 129, 124, 137, 104, 138, 136, 137, 116, 119, 140, 128, 122, 112, 137, 114, 118, 120, 110, 121, 152, 135, 108, 124, 120, 121, 130, 128, 116, 127, 119, 132, 126, 125, 119, 121, 119, 125, 117, 120, 124, 132, 139, 126, 137, 106, 122, 142, 127, 128, 120, 133, 112, 129, 125, 137, 138, 132, 115, 123, 126, 115, 129, 118, 121, 125, 136, 135, 124, 120, 115, 132, 134, 112, 123, 101, 125, 132, 132, 127, 126, 115, 118, 138, 135, 118, 139, 138, 122, 110, 124, 106, 133, 122, 134, 142, 126, 94, 136, 143, 129, 121, 140, 120, 124, 121, 124, 120, 123, 127, 120, 123, 132, 145, 147, 123, 136, 112, 124, 124, 127, 131, 116, 117, 136, 137, 128, 149, 135, 117, 126, 126, 129, 118, 111, 121, 115, 116, 120, 123, 120, 108, 138, 121, 127, 140, 136, 129, 121, 117, 124, 121, 131, 117, 114, 129, 128, 111, 116, 124, 132, 117, 117, 121, 124, 122, 137, 118, 119, 138, 121, 139, 133, 122, 124, 130, 127, 130, 123, 132, 131, 142, 132, 134, 121, 135, 141, 122, 126, 107, 114, 149, 114, 129, 122, 133, 126, 122, 139, 124, 125, 142, 109, 141, 131, 131, 119, 121, 141, 124, 136, 122, 131, 138, 110, 130, 116, 131, 123, 138, 131, 126, 106, 129, 103, 132, 128, 119, 125, 148, 142, 125, 147, 129, 132, 140, 132, 129, 126, 123, 120, 131, 116, 133, 145, 136, 114, 123, 117, 131, 136, 122, 148, 133, 125, 118, 131, 146, 129, 131, 132, 124, 121, 141, 94, 124, 123, 126, 116, 139, 128, 120, 135, 122, 125, 130, 134, 113, 121, 130, 146, 130, 132, 129, 102, 141, 126, 134, 135, 133, 131, 114, 136, 105, 113, 114, 136, 143, 124, 113, 136, 113, 126, 121, 146, 110, 122, 121, 119, 118, 124, 130, 142, 150, 135, 126, 131, 118, 114, 127, 117, 136, 124, 131, 119, 130, 136, 127, 133, 140, 120, 119, 130, 120, 141, 124, 108, 131, 136, 133, 121, 129, 129, 122, 111, 102, 103, 133, 125, 127, 128, 112, 119, 127, 133, 125, 125, 125, 114, 112, 130, 147, 127, 132, 116, 124, 134, 119, 122, 120, 125, 130, 120, 127, 130, 129, 124, 119, 125, 135, 109, 123, 139, 133, 128, 106, 131, 123, 122, 119, 123, 123, 113, 116, 126, 124, 121, 118, 138, 136, 120, 111, 114, 149, 126, 121, 122, 125, 120, 118, 124, 131, 118, 122, 134, 132, 137, 125, 132, 118, 134, 117, 122, 134, 126, 123, 134, 126, 145, 128, 123, 132, 106, 139, 131, 118, 123, 118, 132, 130, 119, 115, 120, 120, 138, 125, 140, 127, 136, 130, 122, 142, 133, 120, 134, 129, 132, 108, 123, 137, 119, 133, 134, 122, 125, 132, 123, 106, 127, 140, 128, 128, 132, 137, 130, 129, 133, 133, 126, 120, 118, 145, 125, 120, 118, 129, 126, 112, 139, 145, 118, 132, 113, 152, 125, 123, 126, 140, 126, 137, 128, 125, 134, 129, 120, 143, 119, 141, 107, 115, 123, 124, 107, 134, 118, 138, 130, 124, 114, 132, 126, 123, 123, 131, 109, 133, 124, 118, 120, 125, 114, 116, 126, 107, 141, 137, 134, 126, 125, 122, 128, 118, 128, 137, 145, 118, 126, 136, 123, 122, 121, 118, 117, 115, 134, 105, 123, 135, 120, 126, 126, 123, 124, 109, 122, 119, 129, 129, 113, 126, 121, 123, 109, 121, 141, 119, 129, 130, 134, 139, 116, 119, 129, 125, 112, 130, 114, 118, 124, 112, 132, 127, 119, 126, 130, 121, 124, 122, 107, 96, 127, 128, 125, 143, 121, 128, 115, 131, 134, 133, 118, 121, 138, 134, 141, 111, 141, 119, 109, 112, 134, 126, 121, 144, 121, 113, 129, 135, 114, 119, 132, 127, 120, 155, 121, 134, 132, 142, 137, 132, 131, 130, 115, 107, 119, 121, 140, 127, 127, 129, 138, 128, 122, 131, 116, 138, 124, 147, 132, 122, 124, 134, 130, 137, 147, 142, 131, 127, 131, 136, 131, 132, 130, 124, 136, 114, 131, 128, 116, 140, 125, 126, 124, 127, 124, 130, 128, 114, 131, 138, 132, 127, 127, 154, 138, 120, 135, 127, 134, 121, 135, 133, 122, 113, 118, 121, 129, 133, 112, 113, 116, 113, 116, 140, 132, 132, 127, 134, 137, 117, 117, 122, 120, 141, 128, 119, 136, 96, 114, 116, 113, 132, 115, 124, 128, 128, 123, 129, 98, 140, 121, 116, 117, 104, 119, 121, 121, 113, 124, 128, 128, 130, 125, 132, 139, 133, 133, 112, 130, 141, 129, 121, 123, 121, 112, 148, 129, 135, 127, 148, 113, 136, 119, 133, 128, 119, 124, 110, 126, 129, 108, 132, 145, 129, 132, 129, 117, 130, 141, 112, 122, 115, 128, 152, 134, 137, 125, 131, 116, 124, 142, 109, 128, 125, 121, 128, 130, 114, 129, 127, 121, 130, 129, 130, 122, 140, 135, 135, 136, 146, 127, 137, 113, 123, 118, 122, 114, 138, 129, 149, 133, 122, 124, 126, 134, 128, 135, 141, 126, 124, 114, 114, 128, 128, 129, 141, 105, 129, 122, 108, 136, 135, 136, 115, 130, 110, 135, 121, 143, 118, 135, 122, 136, 129, 142, 122, 127, 119, 128, 127, 129, 136, 110, 147, 133, 119, 129, 124, 119, 129, 127, 125, 131, 131, 133, 149, 124, 139, 120, 107, 136, 130, 129, 120, 144, 128, 133, 106, 121, 121, 110, 128, 130, 118, 123, 117, 125, 128, 120, 126, 115, 127, 136, 148, 108, 117, 127, 112, 146, 112, 130, 122, 117, 108, 121, 125, 132, 131, 127, 145, 118, 125, 134, 119, 127, 136, 124, 116, 138, 108, 114, 119, 115, 126, 134, 119, 121, 119, 122, 130, 115, 132, 140, 139, 135, 137, 126, 114, 122, 125, 112, 118, 122, 134, 124, 144, 114, 135, 134, 136, 117, 102, 124, 115, 122, 126, 136, 123, 119, 132, 127, 176, 119, 112, 135, 121, 120, 126, 123, 121, 132, 122, 127, 121, 113, 124, 111, 131, 126, 111, 136, 116, 119, 135, 124, 122, 126, 128, 121, 125, 116, 119, 118, 133, 126, 121, 127, 124, 117, 128, 107, 141, 111, 137, 125, 136, 111, 144, 132, 114, 123, 143, 120, 117, 126, 108, 133, 134, 103, 118, 132, 109, 117, 129, 111, 120, 119, 135, 131, 122, 128, 130, 124, 126, 144, 133, 129, 112, 129, 121, 125, 140, 132, 121, 138, 114, 135, 115, 119, 100, 117, 124, 114, 127, 136, 121, 123, 124, 107, 123, 142, 130, 137, 123, 130, 120, 123, 114, 122, 109, 136, 124, 128, 128, 111, 128, 137, 125, 124, 131, 115, 124, 107, 124, 136, 124, 131, 127, 135, 123, 112, 126, 120, 123, 156, 138, 107, 111, 130, 121, 117, 120, 112, 114, 112, 129, 119, 130, 133, 126, 115, 125, 126, 120, 127, 127, 131, 129, 110, 113, 111, 133, 119, 107, 138, 110, 154, 142, 131, 116, 134, 123, 121, 129, 142, 122, 132, 121, 141, 116, 135, 133, 132, 136, 112, 129, 115, 126, 156, 112, 117, 149, 113, 121, 122, 126, 122, 133, 125, 121, 114, 129, 120, 139, 141, 139, 141, 125, 115, 130, 114, 137, 128, 127, 129, 133, 138, 125, 128, 114, 132, 122, 113, 121, 133, 113, 120, 120, 105, 124, 115, 130, 146, 140, 123, 126, 112, 136, 133, 138, 126, 109, 125, 136, 123, 127, 99, 131, 131, 114, 124, 142, 135, 118, 135, 112, 110, 122, 128, 127, 118, 145, 124, 120, 120, 131, 116, 109, 96, 148, 109, 139, 124, 116, 119, 107, 134, 123, 133, 131, 119, 123, 124, 128, 141, 132, 127, 133, 128, 129, 119, 120, 124, 122, 116, 124, 131, 131, 130, 133, 112, 131, 117, 106, 127, 125, 114, 139, 149, 138, 124, 133, 139, 133, 127, 144, 140, 134, 120, 133, 142, 115, 118, 126, 123, 119, 128, 128, 121, 113, 131, 143, 136, 133, 114, 125, 104, 145, 118, 124, 126, 121, 129, 130, 129, 125, 116, 122, 137, 127, 138, 127, 127, 135, 125, 128, 125, 125, 119, 108, 143, 141, 126, 140, 134, 129, 116, 124, 135, 148, 119, 136, 139, 119, 120, 134, 119, 132, 132, 112, 124, 116, 139, 119, 136, 132, 128, 121, 109, 113, 121, 117, 140, 138, 132, 124, 151, 132, 111, 117, 120, 122, 132, 110, 123, 133, 125, 129, 143, 120, 135, 139, 125, 118, 130, 128, 130, 107, 131, 110, 131, 118, 122, 138, 118, 124, 128, 126, 115, 117, 130, 125, 125, 114, 125, 119, 113, 121, 134, 123, 123, 116, 113, 119, 123, 145, 130, 142, 133, 111, 129, 125, 128, 109, 136, 114, 104, 112, 120, 108, 134, 128, 114, 102, 101, 115, 114, 138, 121, 123, 126, 107, 113, 129, 138, 117, 117, 112, 115, 117, 107, 134, 139, 120, 116, 107, 142, 119, 120, 117, 122, 105, 130, 132, 124, 127, 129, 128, 135, 119, 122, 129, 121, 123, 131, 147, 116, 125, 119, 116, 151, 131, 136, 129, 104, 126, 117, 122, 134, 131, 126, 109, 139, 103, 117, 106, 129, 116, 120, 117, 119, 123, 129, 125, 127, 115, 114, 140, 126, 132, 117, 125, 121, 137, 133, 119, 112, 122, 136, 133, 121, 140, 132, 127, 112, 126, 123, 133, 108, 129, 120, 140, 117, 124, 126, 134, 108, 125, 143, 136, 126, 110, 129, 137, 136, 122, 155, 135, 115, 140, 129, 128, 121, 137, 132, 97, 112, 139, 112, 135, 132, 134, 121, 136, 115, 118, 117, 135, 122, 131, 129, 137, 123, 125, 111, 124, 128, 134, 132, 110, 110, 147, 121, 131, 116, 135, 130, 138, 134, 126, 128, 144, 132, 136, 126, 117, 116, 131, 131, 113, 127, 123, 113, 127, 130, 130, 121, 117, 126, 123, 119, 133, 146, 124, 113, 119, 134, 130, 122, 134, 106, 123, 141, 122, 136, 127, 108, 144, 107, 124, 134, 127, 130, 129, 126, 125, 117, 115, 113, 120, 122, 125, 128, 124, 125, 121, 117, 127, 131, 124, 138, 117, 111, 125, 103, 132, 143, 121, 129, 123, 119, 132, 123, 136, 113, 125, 120, 119, 131, 106, 132, 130, 111, 141, 122, 124, 127, 113, 143, 128, 122, 130, 124, 138, 117, 120, 122, 118, 132, 126, 145, 121, 120, 130, 118, 135, 122, 125, 145, 110, 116, 135, 117, 105, 133, 118, 113, 129, 117, 106, 130, 141, 109, 124, 138, 121, 133, 123, 135, 114, 127, 143, 128, 114, 124, 129, 123, 119, 127, 117, 129, 124, 123, 136, 126, 128, 114, 129, 118, 121, 125, 116, 147, 129, 125, 134, 128, 116, 128, 116, 139, 97, 113, 123, 105, 121, 124, 136, 115, 150, 120, 124, 119, 127, 117, 115, 124, 118, 117, 118, 117, 127, 126, 124, 131, 126, 115, 114, 133, 121, 133, 120, 106, 133, 119, 134, 134, 113, 122, 138, 129, 131, 110, 126, 121, 132, 129, 120, 130, 126, 117, 121, 121, 126, 119, 132, 125, 112, 124, 141, 135, 128, 106, 120, 104, 129, 125, 133, 129, 139, 131, 137, 130, 118, 124, 130, 129, 128, 121, 133, 123, 130, 123, 115, 121, 106, 144, 107, 109, 123, 121, 121, 133, 122, 119, 130, 122, 121, 131, 118, 108, 111, 119, 114, 118, 110, 135, 130, 117, 138, 126, 126, 122, 129, 120, 132, 138, 145, 128, 131, 149, 116, 139, 131, 129, 127, 128, 124, 116, 128, 127, 129, 124, 113, 135, 123, 152, 143, 107, 133, 123, 113, 122, 130, 117, 122, 117, 110, 117, 119, 124, 134, 107, 119, 99, 122, 100, 111, 130, 121, 143, 134, 127, 112, 137, 118, 119, 116, 125, 134, 112, 153, 132, 106, 134, 123, 126, 134, 128, 123, 122, 130, 104, 133, 133, 124, 134, 102, 123, 121, 121, 106, 110, 105, 115, 112, 132, 115, 129, 129, 122, 121, 115, 126, 114, 117, 133, 134, 131, 137, 127, 119, 119, 124, 108, 117, 121, 113, 128, 121, 127, 117, 125, 126, 119, 94, 127, 125, 132, 122, 130, 130, 120, 131, 123, 121, 137, 139, 140, 123, 123, 124, 118, 128, 135, 117, 113, 125, 134, 115, 125, 157, 118, 133, 114, 124, 110, 126, 138, 123, 119, 123, 123, 134, 153, 115, 133, 124, 121, 133, 107, 130, 128, 129, 122, 147, 123, 144, 129, 127, 116, 126, 120, 135, 115, 125, 129, 109, 139, 132, 128, 116, 124, 134, 128, 120, 128, 118, 129, 138, 123, 137, 118, 133, 151, 118, 137, 127, 119, 130, 132, 114, 127, 139, 129, 140, 142, 136, 131, 112, 133, 122, 113, 127, 129, 120, 155, 137, 125, 125, 129, 119, 124, 113, 122, 135, 123, 125, 132, 114, 107, 129, 130, 147, 121, 121, 117, 122, 128, 142, 146, 114, 131, 122, 116, 132, 117, 121, 121, 128, 120, 133, 123, 120, 125, 127, 114, 132, 138, 130, 130, 144, 113, 139, 119, 134, 125, 118, 155, 132, 128, 133, 130, 134, 122, 137, 127, 130, 115, 120, 137, 131, 120, 118, 132, 143, 117, 117, 109, 124, 120, 127, 116, 108, 121, 113, 127, 125, 135, 132, 118, 136, 127, 114, 137, 115, 107, 120, 127, 128, 120, 138, 120, 120, 122, 125, 114, 133, 125, 128, 117, 119, 126, 138, 108, 139, 126, 120, 118, 116, 125, 112, 124, 109, 125, 133, 122, 126, 132, 127, 144, 122, 123, 120, 120, 144, 114, 132, 132, 110, 136, 137, 110, 140, 124, 147, 139, 126, 122, 130, 114, 129, 124, 130, 140, 135, 121, 130, 129, 130, 129, 123, 121, 138, 125, 134, 132, 111, 129, 154, 117, 98, 120, 122, 107, 133, 133, 154, 136, 143, 114, 128, 121, 117, 128, 136, 128, 122, 125, 144, 125, 111, 130, 132, 119, 109, 118, 122, 143, 127, 119, 133, 124, 119, 108, 134, 121, 133, 111, 122, 126, 138, 125, 118, 131, 128, 118, 127, 129, 132, 118, 138, 125, 133, 122, 119, 120, 119, 135, 124, 147, 113, 119, 149, 135, 122, 123, 140, 125, 122, 110, 125, 120, 129, 125, 122, 120, 145, 132, 132, 117, 122, 137, 154, 129, 116, 137, 127, 128, 127, 133, 122, 140, 121, 124, 131, 132, 133, 124, 111, 122, 119, 121, 133, 121, 125, 135, 132, 129, 131, 115, 140, 143, 116, 141, 121, 126, 123, 86, 130, 128, 119, 125, 50, 134, 123, 124, 133, 115, 131, 117, 116, 128, 115, 138, 124, 116, 117, 130, 105, 122, 114, 137, 119, 134, 137, 115, 131, 131, 121, 117, 110, 116, 127, 119, 130, 119, 129, 139, 140, 126, 116, 128, 140, 131, 112, 136, 137, 124, 134, 129, 128, 125, 100, 132, 133, 129, 118, 130, 131, 119, 115, 119, 131, 109, 117, 118, 128, 141, 112, 135, 138, 131, 131, 128, 153, 125, 143, 123, 137, 115, 125, 134, 119, 129, 116, 123, 133, 127, 123, 120, 113, 123, 145, 109, 145, 120, 131, 144, 120, 134, 134, 133, 129, 121, 125, 114, 128, 125, 114, 119, 126, 126, 128, 126, 136, 134, 109, 135, 119, 132, 128, 139, 122, 122, 138, 119, 118, 111, 128, 132, 114, 124, 139, 138, 123, 134, 112, 132, 124, 140, 134, 121, 139, 111, 126, 129, 121, 109, 119, 123, 138, 117, 123, 125, 101, 135, 124, 120, 122, 131, 130, 132, 118, 133, 110, 119, 117, 125, 114, 112, 114, 113, 133, 131, 136, 118, 142, 121, 160, 120, 128, 109, 132, 121, 130, 113, 121, 134, 115, 138, 137, 125, 125, 133, 120, 121, 110, 129, 116, 94, 126, 116, 134, 117, 128, 107, 131, 135, 126, 125, 135, 133, 132, 134, 111, 122, 110, 131, 147, 134, 126, 126, 127, 127, 140, 125, 115, 121, 132, 119, 74, 113, 131, 100, 149, 122, 127, 117, 121, 123, 141, 119, 126, 131, 125, 120, 139, 113, 124, 129, 136, 129, 123, 120, 111, 126, 124, 123, 131, 129, 142, 123, 121, 120, 126, 119, 116, 124, 133, 121, 137, 123, 131, 119, 141, 123, 137, 119, 109, 126, 142, 134, 137, 136, 121, 122, 124, 128, 129, 133, 131, 120, 128, 137, 134, 128, 118, 127, 129, 132, 134, 149, 136, 118, 107, 127, 127, 133, 111, 125, 129, 114, 130, 132, 119, 131, 115, 134, 121, 133, 131, 138, 128, 114, 124, 115, 140, 130, 108, 130, 129, 121, 134, 143, 122, 132, 123, 105, 136, 128, 126, 119, 123, 125, 125, 120, 111, 137, 136, 125, 126, 137, 127, 124, 121, 119, 129, 128, 128, 125, 127, 127, 130, 132, 150, 126, 139, 140, 116, 136, 113, 124, 115, 139, 129, 130, 129, 123, 116, 137, 134, 135, 136, 117, 125, 126, 136, 125, 122, 116, 135, 133, 130, 127, 139, 115, 118, 119, 136, 125, 128, 128, 110, 147, 127, 114, 141, 130, 129, 127, 126, 124, 122, 108, 135, 125, 148, 121, 112, 128, 122, 148, 147, 140, 122, 117, 112, 136, 126, 103, 135, 134, 133, 144, 117, 147, 124, 114, 109, 124, 128, 129, 126, 108, 133, 116, 139, 124, 119, 118, 142, 119, 127, 131, 120, 138, 123, 140, 131, 124, 144, 128, 129, 122, 127, 141, 117, 135, 135, 115, 137, 127, 117, 122, 145, 153, 109, 114, 114, 127, 122, 121, 112, 137, 123, 131, 138, 146, 115, 127, 133, 113, 129, 122, 116, 121, 113, 115, 119, 124, 120, 125, 129, 129, 122, 123, 100, 122, 128, 129, 143, 127, 119, 100, 118, 140, 131, 128, 113, 119, 112, 108, 134, 124, 132, 105, 109, 119, 124, 133, 107, 128, 113, 123, 123, 125, 119, 134, 126, 125, 126, 122, 134, 120, 123, 131, 118, 138, 147, 125, 108, 114, 110, 134, 140, 124, 126, 128, 119, 136, 121, 118, 122, 134, 132, 118, 135, 123, 128, 134, 128, 120, 133, 124, 128, 120, 100, 119, 139, 140, 122, 126, 124, 121, 118, 125, 120, 127, 133, 116, 132, 112, 94, 132, 135, 130, 136, 128, 127, 123, 136, 119, 140, 126, 121, 118, 124, 135, 129, 132, 128, 112, 138, 118, 123, 122, 126, 124, 131, 136, 124, 117, 132, 143, 112, 141, 133, 135, 129, 118, 124, 120, 110, 116, 126, 125, 128, 132, 120, 114, 113, 140, 118, 135, 131, 128, 136, 134, 127, 141, 119, 135, 129, 118, 120, 120, 141, 127, 112, 127, 124, 137, 103, 144, 134, 127, 123, 119, 134, 119, 95, 110, 116, 126, 109, 114, 112, 137, 132, 125, 153, 144, 132, 112, 111, 133, 137, 106, 127, 112, 127, 123, 132, 133, 134, 124, 112, 117, 142, 139, 146, 135, 138, 125, 119, 118, 125, 124, 111, 117, 121, 122, 115, 141, 152, 115, 121, 119, 124, 108, 118, 128, 114, 127, 137, 131, 123, 121, 108, 136, 133, 132, 141, 130, 129, 104, 124, 131, 105, 114, 127, 128, 137, 121, 125, 133, 118, 129, 114, 114, 140, 129, 132, 133, 123, 157, 112, 121, 123, 124, 117, 128, 136, 116, 131, 125, 130, 119, 115, 109, 123, 100, 125, 130, 142, 149, 120, 120, 140, 120, 135, 119, 128, 133, 143, 120, 113, 131, 134, 120, 116, 112, 140, 111, 125, 141, 115, 131, 119, 136, 107, 95, 102, 126, 154, 134, 132, 118, 128, 124, 127, 119, 125, 121, 132, 121, 124, 119, 120, 135, 107, 143, 127, 114, 121, 130, 106, 136, 124, 128, 125, 113, 120, 138, 142, 120, 133, 151, 126, 143, 140, 126, 122, 113, 119, 137, 132, 127, 121, 138, 139, 114, 121, 132, 113, 130, 125, 137, 129, 128, 124, 121, 111, 113, 135, 139, 117, 117, 116, 144, 126, 117, 127, 106, 113, 121, 130, 135, 133, 103, 132, 112, 130, 109, 151, 139, 121, 134, 110, 126, 143, 118, 144, 109, 113, 121, 157, 115, 115, 120, 122, 147, 140, 133, 130, 128, 126, 132, 123, 119, 126, 137, 120, 116, 135, 115, 120, 115, 124, 133, 135, 138, 141, 126, 132, 98, 120, 127, 133, 127, 121, 119, 128, 124, 134, 120, 129, 129, 123, 134, 125, 108, 133, 117, 106, 125, 123, 122, 131, 109, 118, 117, 129, 106, 139, 107, 116, 107, 116, 138, 129, 133, 138, 138, 128, 120, 126, 136, 134, 126, 144, 125, 122, 130, 116, 116, 139, 105, 115, 120, 118, 125, 122, 116, 131, 117, 138, 115, 121, 128, 135, 135, 127, 141, 128, 155, 105, 130, 143, 124, 116, 124, 118, 125, 130, 121, 118, 120, 109, 111, 126, 122, 130, 118, 144, 110, 129, 121, 127, 134, 130, 119, 126, 105, 129, 131, 124, 123, 142, 118, 144, 112, 130, 110, 143, 116, 127, 126, 139, 114, 147, 125, 129, 123, 139, 122, 116, 108, 138, 109, 120, 132, 121, 125, 144, 90, 133, 130, 127, 123, 118, 138, 122, 132, 115, 133, 121, 135, 97, 98, 141, 128, 123, 113, 138, 121, 132, 118, 143, 133, 111, 118, 126, 138, 151, 127, 125, 135, 120, 104, 126, 129, 135, 131, 114, 136, 121, 128, 130, 126, 127, 139, 127, 115, 114, 137, 116, 124, 129, 130, 126, 125, 123, 121, 138, 150, 139, 141, 117, 109, 129, 113, 139, 140, 135, 117, 137, 130, 126, 148, 117, 137, 119, 134, 108, 135, 113, 125, 119, 124, 131, 124, 112, 134, 128, 123, 120, 133, 121, 110, 142, 110, 139, 119, 118, 111, 116, 127, 115, 117, 118, 118, 96, 112, 116, 105, 121, 106, 142, 130, 139, 110, 138, 124, 103, 114, 130, 113, 130, 120, 114, 119, 119, 119, 121, 94, 116, 119, 129, 138, 122, 109, 126, 129, 137, 115, 129, 129, 123, 117, 131, 132, 124, 118, 168, 119, 123, 133, 130, 130, 106, 110, 125, 112, 140, 114, 127, 124, 130, 104, 116, 133, 126, 125, 143, 113, 130, 123, 115, 109, 107, 124, 117, 110, 131, 122, 139, 144, 142, 125, 128, 109, 104, 117, 121, 129, 150, 95, 126, 133, 126, 128, 143, 126, 128, 155, 110, 123, 120, 136, 106, 123, 131, 121, 143, 123, 120, 139, 115, 139, 121, 119, 135, 121, 127, 124, 130, 136, 118, 134, 118, 120, 104, 123, 119, 134, 134, 144, 131, 142, 115, 127, 129, 147, 119, 129, 124, 142, 122, 110, 120, 138, 134, 129, 133, 122, 104, 123, 129, 131, 127, 127, 126, 120, 139, 117, 106, 130, 136, 145, 113, 128, 122, 135, 120, 138, 117, 119, 118, 136, 133, 110, 121, 153, 123, 112, 106, 122, 141, 120, 131, 138, 100, 111, 119, 131, 94, 124, 136, 117, 137, 114, 120, 133, 117, 124, 133, 122, 140, 132, 116, 99, 138, 115, 123, 96, 123, 116, 120, 125, 129, 118, 125, 126, 109, 130, 134, 119, 133, 126, 130, 121, 103, 145, 124, 115, 126, 119, 118, 136, 149, 104, 120, 126, 118, 118, 111, 121, 135, 123, 142, 129, 123, 136, 116, 120, 120, 104, 132, 126, 107, 123, 130, 117, 109, 109, 119, 124, 122, 116, 125, 144, 108, 118, 145, 104, 128, 122, 135, 122, 125, 120, 137, 114, 118, 125, 108, 113, 117, 126, 130, 105, 132, 141, 114, 128, 129, 118, 101, 123, 122, 109, 113, 127, 124, 119, 117, 134, 115, 118, 139, 125, 141, 126, 122, 146, 114, 113, 124, 127, 130, 119, 140, 117, 118, 129, 131, 129, 116, 143, 119, 132, 134, 129, 138, 114, 116, 120, 125, 127, 130, 136, 133, 119, 109, 143, 116, 130, 119, 111, 116, 119, 129, 133, 128, 121, 128, 127, 142, 137, 122, 138, 109, 140, 131, 120, 120, 128, 134, 142, 127, 139, 138, 139, 121, 124, 114, 124, 138, 132, 130, 136, 144, 124, 130, 121, 119, 126, 122, 135, 123, 131, 135, 125, 105, 136, 127, 117, 109, 124, 124, 140, 125, 127, 129, 129, 124, 145, 121, 135, 124, 132, 121, 120, 119, 106, 135, 138, 134, 136, 115, 128, 121, 143, 131, 130, 118, 136, 136, 127, 131, 132, 131, 132, 126, 135, 113, 123, 121, 111, 130, 122, 118, 133, 125, 128, 116, 117, 105, 128, 121, 126, 133, 116, 138, 144, 118, 122, 134, 117, 130, 136, 137, 115, 123, 139, 126, 141, 118, 119, 117, 118, 125, 121, 120, 115, 118, 121, 119, 107, 127, 117, 123, 119, 125, 111, 126, 133, 121, 112, 140, 125, 122, 134, 121, 129, 138, 134, 138, 104, 128, 130, 129, 121, 116, 126, 125, 124, 113, 147, 141, 124, 140, 125, 124, 124, 124, 129, 124, 129, 126, 140, 150, 139, 138, 123, 122, 140, 123, 134, 124, 128, 126, 128, 125, 125, 122, 133, 125, 127, 128, 129, 119, 133, 106, 118, 125, 120, 138, 132, 125, 141, 128, 121, 124, 132, 123, 131, 131, 118, 127, 120, 113, 117, 115, 125, 129, 130, 123, 114, 129, 111, 131, 121, 121, 139, 118, 129, 126, 115, 121, 128, 121, 116, 130, 120, 123, 118, 118, 127, 127, 120, 133, 152, 126, 91, 118, 121, 112, 129, 117, 112, 130, 125, 137, 126, 131, 140, 132, 132, 122, 132, 136, 124, 115, 129, 109, 142, 116, 137, 117, 130, 124, 130, 128, 128, 120, 126, 131, 130, 131, 141, 132, 124, 137, 130, 150, 114, 149, 126, 127, 120, 123, 124, 127, 118, 155, 127, 137, 123, 154, 141, 128, 136, 114, 125, 121, 118, 120, 124, 118, 131, 119, 139, 126, 145, 118, 132, 127, 141, 112, 121, 114, 126, 110, 128, 125, 141, 119, 123, 125, 122, 133, 135, 117, 150, 141, 119, 130, 128, 128, 131, 124, 137, 124, 117, 126, 126, 132, 113, 139, 126, 114, 114, 142, 136, 140, 126, 127, 128, 123, 119, 114, 127, 125, 119, 126, 125, 120, 110, 118, 130, 132, 125, 130, 126, 124, 114, 137, 106, 126, 120, 127, 121, 115, 115, 119, 119, 113, 127, 126, 134, 135, 129, 122, 126, 115, 110, 114, 120, 135, 130, 128, 132, 126, 110, 140, 118, 118, 111, 120, 134, 148, 118, 113, 132, 135, 122, 119, 127, 134, 152, 124, 116, 124, 142, 140, 128, 123, 115, 117, 133, 119, 136, 119, 135, 134, 116, 124, 122, 127, 130, 125, 139, 126, 135, 122, 124, 124, 131, 127, 129, 146, 122, 113, 141, 120, 142, 138, 128, 125, 122, 113, 126, 104, 114, 126, 119, 107, 122, 128, 133, 132, 138, 116, 116, 112, 122, 125, 132, 146, 135, 126, 125, 121, 127, 131, 125, 124, 123, 130, 138, 122, 127, 128, 136, 129, 123, 127, 134, 135, 118, 126, 122, 123, 142, 132, 127, 137, 151, 138, 112, 121, 129, 124, 136, 125, 134, 124, 130, 123, 136, 134, 131, 133, 121, 121, 125, 117, 121, 121, 128, 126, 131, 115, 112, 127, 134, 128, 124, 124, 117, 128, 135, 145, 133, 128, 139, 128, 125, 135, 126, 130, 128, 123, 129, 115, 134, 123, 117, 122, 125, 127, 153, 123, 135, 138, 112, 139, 135, 106, 118, 119, 143, 130, 134, 125, 132, 135, 111, 115, 135, 136, 116, 131, 150, 124, 116, 128, 125, 134, 128, 129, 130, 153, 129, 123, 124, 124, 127, 126, 114, 114, 120, 125, 118, 116, 138, 133, 125, 127, 127, 127, 117, 126, 156, 134, 113, 118, 137, 133, 127, 134, 122, 118, 127, 120, 136, 121, 142, 125, 122, 129, 127, 128, 121, 129, 119, 110, 117, 128, 124, 110, 108, 147, 120, 108, 136, 144, 122, 139, 134, 125, 136, 120, 138, 130, 120, 118, 148, 139, 126, 125, 102, 114, 113, 130, 127, 117, 127, 122, 117, 124, 129, 118, 122, 132, 121, 136, 119, 128, 132, 137, 109, 132, 121, 110, 128, 134, 121, 135, 134, 118, 130, 115, 143, 133, 133, 115, 113, 124, 113, 124, 119, 123, 125, 125, 126, 126, 150, 108, 121, 122, 121, 125, 131, 123, 123, 130, 117, 120, 143, 120, 131, 123, 133, 143, 140, 128, 119, 122, 129, 125, 149, 123, 136, 152, 119, 139, 144, 121, 127, 132, 138, 123, 118, 134, 132, 127, 132, 111, 123, 131, 128, 133, 126, 116, 128, 142, 127, 137, 132, 140, 133, 114, 126, 119, 123, 131, 125, 116, 110, 119, 124, 141, 111, 132, 127, 131, 129, 129, 137, 104, 129, 123, 129, 131, 128, 142, 129, 123, 139, 113, 135, 140, 106, 116, 120, 137, 141, 119, 125, 141, 120, 128, 112, 118, 110, 127, 134, 104, 130, 132, 110, 129, 116, 135, 141, 140, 135, 133, 118, 130, 132, 132, 126, 133, 126, 117, 126, 111, 115, 111, 135, 121, 116, 124, 113, 132, 120, 145, 121, 131, 130, 121, 135, 126, 128, 121, 124, 127, 117, 125, 121, 122, 116, 133, 143, 117, 124, 142, 131, 121, 128, 123, 130, 131, 127, 110, 123, 135, 124, 126, 122, 128, 146, 113, 121, 138, 121, 144, 130, 128, 137, 127, 134, 121, 132, 136, 130, 117, 115, 120, 128, 116, 147, 123, 140, 126, 135, 120, 129, 114, 112, 133, 139, 138, 123, 123, 124, 125, 129, 136, 121, 121, 125, 146, 116, 125, 131, 122, 122, 117, 144, 121, 140, 125, 120, 125, 141, 121, 118, 120, 120, 124, 133, 117, 115, 121, 121, 128, 127, 125, 125, 126, 116, 141, 123, 116, 142, 134, 112, 131, 126, 144, 144, 117, 117, 124, 115, 132, 141, 114, 113, 115, 115, 136, 124, 128, 138, 133, 133, 131, 121, 133, 132, 115, 119, 130, 117, 116, 128, 133, 130, 114, 113, 108, 133, 111, 126, 162, 129, 145, 130, 120, 137, 113, 112, 127, 136, 136, 107, 120, 135, 119, 90, 123, 129, 124, 125, 126, 132, 130, 120, 136, 124, 139, 119, 136, 135, 120, 119, 126, 127, 104, 120, 119, 117, 140, 131, 116, 129, 123, 129, 126, 96, 116, 106, 132, 140, 125, 142, 121, 121, 121, 122, 142, 128, 89, 128, 124, 108, 102, 124, 120, 136, 128, 115, 101, 124, 115, 112, 128, 115, 121, 124, 127, 119, 114, 135, 108, 127, 124, 130, 130, 109, 139, 127, 125, 125, 106, 126, 126, 113, 119, 120, 120, 133, 129, 109, 117, 140, 134, 124, 111, 126, 106, 132, 118, 140, 119, 135, 135, 130, 116, 117, 135, 118, 151, 119, 133, 131, 126, 117, 126, 134, 107, 114, 123, 134, 121, 132, 134, 125, 109, 106, 130, 144, 111, 137, 137, 137, 129, 117, 126, 111, 131, 137, 121, 129, 121, 144, 132, 132, 122, 138, 110, 136, 128, 140, 127, 115, 123, 119, 125, 113, 111, 138, 112, 122, 143, 124, 118, 124, 130, 118, 113, 142, 133, 118, 127, 115, 126, 123, 141, 128, 124, 123, 109, 127, 131, 140, 131, 130, 149, 119, 113, 117, 135, 138, 120, 116, 135, 136, 141, 122, 130, 136, 146, 132, 129, 125, 113, 138, 123, 121, 118, 127, 137, 127, 120, 112, 114, 122, 126, 125, 134, 116, 122, 121, 119, 117, 117, 126, 125, 125, 112, 114, 127, 132, 123, 125, 128, 130, 139, 134, 144, 107, 111, 105, 123, 125, 110, 115, 128, 118, 133, 108, 147, 116, 143, 125, 137, 112, 127, 121, 140, 118, 116, 140, 107, 125, 141, 125, 127, 122, 126, 110, 118, 123, 116, 123, 110, 123, 123, 129, 120, 121, 136, 136, 106, 105, 123, 118, 119, 127, 127, 147, 120, 143, 127, 129, 125, 150, 121, 129, 123, 125, 125, 129, 119, 122, 126, 115, 123, 131, 134, 119, 131, 128, 151, 130, 130, 121, 119, 118, 117, 130, 127, 130, 124, 111, 129, 155, 134, 122, 122, 123, 123, 143, 119, 127, 124, 112, 124, 131, 136, 111, 116, 129, 148, 113, 133, 147, 113, 123, 111, 122, 159, 120, 134, 118, 122, 141, 122, 113, 121, 97, 121, 121, 122, 128, 129, 121, 115, 145, 119, 136, 114, 130, 122, 129, 112, 107, 148, 123, 133, 118, 129, 116, 129, 138, 115, 126, 118, 141, 138, 127, 110, 109, 147, 123, 134, 135, 124, 117, 135, 124, 121, 128, 119, 135, 125, 123, 137, 143, 114, 127, 115, 128, 121, 112, 127, 115, 115, 126, 119, 128, 120, 136, 124, 125, 132, 114, 139, 118, 115, 122, 120, 124, 118, 133, 122, 141, 132, 123, 141, 128, 126, 116, 118, 116, 142, 104, 114, 116, 125, 133, 97, 132, 140, 119, 124, 108, 121, 118, 127, 118, 126, 134, 124, 123, 137, 122, 140, 121, 125, 129, 118, 121, 131, 123, 110, 122, 135, 113, 125, 120, 160, 124, 140, 111, 133, 134, 130, 118, 138, 129, 159, 140, 119, 103, 115, 123, 142, 116, 133, 137, 113, 125, 130, 126, 132, 129, 122, 124, 132, 130, 116, 126, 125, 114, 119, 144, 133, 92, 135, 132, 132, 117, 136, 118, 122, 111, 136, 142, 128, 123, 134, 118, 124, 141, 125, 116, 125, 114, 117, 135, 137, 129, 123, 121, 131, 134, 146, 110, 106, 150, 102, 123, 127, 114, 128, 125, 115, 134, 124, 119, 143, 126, 117, 123, 141, 123, 128, 109, 134, 126, 116, 110, 116, 141, 114, 135, 106, 118, 135, 124, 134, 125, 117, 114, 117, 131, 123, 114, 123, 141, 141, 124, 117, 128, 120, 117, 125, 117, 141, 124, 127, 128, 138, 113, 119, 121, 124, 128, 146, 112, 116, 128, 128, 135, 110, 140, 127, 134, 121, 130, 119, 136, 132, 123, 108, 144, 112, 118, 121, 121, 116, 125, 123, 124, 125, 125, 120, 119, 132, 125, 116, 142, 113, 130, 114, 123, 143, 137, 125, 124, 133, 130, 133, 131, 135, 125, 113, 124, 107, 108, 123, 125, 135, 149, 121, 139, 105, 123, 113, 130, 117, 131, 119, 121, 133, 129, 122, 128, 114, 133, 138, 131, 120, 127, 118, 134, 118, 132, 136, 123, 125, 132, 117, 131, 131, 134, 131, 114, 119, 145, 120, 124, 103, 120, 121, 121, 127, 133, 108, 134, 134, 140, 143, 125, 116, 107, 121, 123, 109, 127, 124, 107, 136, 120, 132, 136, 124, 119, 146, 129, 126, 117, 116, 138, 123, 120, 129, 130, 135, 113, 109, 114, 136, 119, 111, 121, 134, 128, 134, 133, 148, 129, 132, 108, 134, 133, 116, 127, 111, 118, 126, 126, 121, 123, 121, 133, 134, 125, 110, 122, 133, 116, 125, 138, 111, 123, 123, 131, 117, 112, 130, 120, 126, 130, 122, 141, 137, 122, 124, 155, 146, 125, 108, 113, 148, 120, 105, 147, 148, 128, 112, 124, 126, 137, 110, 133, 121, 131, 143, 112, 116, 130, 139, 122, 124, 110, 117, 136, 132, 95, 140, 120, 125, 136, 118, 117, 137, 117, 142, 140, 130, 121, 113, 123, 140, 128, 106, 133, 122, 125, 116, 133, 127, 102, 114, 121, 129, 127, 104, 124, 123, 129, 87, 132, 129, 106, 140, 118, 135, 131, 138, 121, 124, 130, 113, 120, 127, 112, 133, 144, 128, 128, 132, 131, 124, 120, 139, 136, 131, 136, 131, 119, 128, 120, 131, 120, 101, 142, 136, 143, 120, 131, 119, 127, 121, 131, 122, 135, 112, 129, 114, 128, 114, 126, 114, 124, 112, 123, 116, 111, 135, 118, 136, 128, 128, 135, 145, 129, 114, 121, 126, 130, 126, 132, 124, 123, 121, 136, 120, 122, 144, 123, 122, 117, 129, 136, 117, 110, 109, 109, 120, 136, 93, 125, 136, 129, 120, 136, 111, 105, 131, 125, 130, 122, 131, 125, 119, 133, 124, 137, 130, 123, 119, 129, 128, 138, 130, 133, 127, 123, 123, 124, 113, 125, 121, 106, 137, 117, 131, 119, 119, 115, 128, 124, 125, 121, 117, 132, 128, 132, 138, 141, 124, 127, 128, 100, 132, 125, 119, 127, 111, 135, 135, 99, 133, 135, 129, 127, 128, 126, 119, 136, 122, 126, 125, 115, 118, 125, 137, 129, 129, 124, 119, 141, 126, 118, 112, 127, 130, 117, 123, 128, 134, 131, 125, 127, 123, 125, 115, 127, 133, 122, 134, 114, 127, 110, 135, 128, 130, 113, 121, 137, 129, 142, 116, 113, 147, 126, 113, 124, 126, 130, 141, 124, 129, 111, 133, 146, 122, 124, 129, 137, 113, 124, 123, 136, 131, 122, 123, 137, 115, 131, 120, 142, 124, 115, 122, 124, 122, 137, 121, 129, 126, 119, 121, 127, 130, 120, 132, 108, 109, 134, 119, 106, 123, 116, 127, 128, 118, 133, 139, 117, 135, 146, 118, 122, 143, 108, 127, 142, 133, 129, 127, 111, 135, 120, 129, 122, 126, 122, 137, 123, 126, 130, 129, 112, 132, 154, 135, 115, 124, 124, 131, 139, 113, 120, 125, 130, 123, 131, 129, 130, 120, 132, 113, 130, 118, 122, 128, 124, 116, 118, 133, 115, 127, 132, 132, 130, 139, 117, 122, 129, 127, 119, 124, 131, 118, 117, 131, 111, 126, 126, 130, 117, 134, 118, 113, 128, 122, 137, 144, 107, 136, 138, 120, 136, 139, 119, 124, 125, 120, 101, 114, 120, 129, 143, 122, 144, 133, 117, 135, 123, 109, 119, 133, 132, 128, 124, 134, 134, 140, 124, 139, 132, 119, 130, 135, 121, 125, 125, 126, 121, 119, 100, 119, 114, 126, 121, 135, 124, 120, 121, 127, 126, 131, 140, 126, 130, 127, 127, 136, 132, 125, 117, 133, 123, 117, 137, 122, 105, 102, 130, 122, 126, 144, 132, 130, 128, 120, 123, 118, 141, 113, 137, 130, 114, 125, 120, 129, 110, 127, 136, 125, 143, 122, 137, 117, 109, 142, 114, 93, 131, 120, 118, 125, 128, 128, 132, 148, 120, 118, 126, 148, 131, 140, 132, 127, 116, 131, 118, 126, 141, 123, 119, 118, 113, 141, 119, 130, 114, 141, 122, 118, 121, 128, 133, 133, 123, 110, 111, 135, 131, 157, 127, 116, 141, 121, 137, 116, 130, 120, 119, 120, 123, 126, 123, 125, 126, 121, 109, 128, 137, 122, 114, 134, 113, 136, 129, 130, 124, 115, 127, 119, 114, 124, 113, 119, 136, 125, 131, 146, 126, 131, 104, 131, 126, 128, 131, 120, 121, 131, 137, 124, 126, 129, 121, 115, 127, 124, 117, 130, 127, 121, 123, 120, 120, 122, 130, 125, 106, 133, 152, 110, 133, 141, 122, 130, 132, 112, 133, 153, 124, 125, 129, 147, 127, 141, 117, 134, 135, 123, 130, 126, 128, 132, 117, 131, 129, 131, 153, 142, 129, 116, 124, 131, 124, 123, 125, 124, 163, 126, 144, 124, 114, 125, 140, 128, 130, 127, 119, 122, 130, 130, 130, 137, 151, 118, 123, 132, 120, 121, 115, 107, 129, 118, 121, 122, 120, 114, 121, 129, 115, 123, 118, 106, 109, 112, 110, 138, 125, 126, 127, 130, 133, 127, 135, 123, 134, 134, 132, 108, 124, 112, 143, 141, 127, 127, 134, 123, 131, 110, 132, 135, 117, 116, 130, 133, 113, 111, 113, 131, 122, 127, 120, 116, 109, 129, 116, 131, 136, 143, 115, 124, 115, 112, 132, 120, 124, 124, 126, 125, 113, 139, 124, 130, 122, 122, 110, 124, 118, 121, 118, 109, 117, 111, 132, 131, 125, 125, 130, 128, 117, 127, 119, 127, 123, 128, 111, 133, 136, 124, 113, 112, 125, 126, 112, 122, 135, 143, 103, 124, 123, 130, 132, 127, 128, 138, 132, 126, 123, 105, 131, 115, 126, 127, 122, 119, 119, 125, 128, 121, 121, 117, 123, 114, 115, 110, 121, 118, 114, 136, 120, 124, 116, 133, 125, 130, 116, 130, 133, 119, 116, 121, 115, 113, 128, 113, 136, 124, 116, 112, 118, 128, 126, 124, 122, 117, 129, 125, 123, 116, 119, 130, 131, 144, 142, 125, 136, 134, 129, 132, 125, 119, 128, 123, 128, 124, 116, 124, 126, 120, 115, 119, 140, 125, 137, 134, 107, 125, 105, 129, 128, 112, 117, 112, 117, 117, 123, 121, 134, 131, 137, 115, 122, 128, 133, 120, 142, 127, 121, 116, 111, 127, 137, 141, 130, 132, 126, 127, 116, 139, 122, 134, 116, 104, 135, 139, 126, 121, 127, 139, 128, 125, 126, 117, 125, 104, 117, 127, 111, 130, 117, 120, 115, 132, 111, 114, 130, 119, 119, 140, 136, 127, 119, 134, 132, 124, 128, 127, 108, 122, 138, 145, 128, 136, 136, 131, 119, 125, 117, 123, 133, 152, 117, 144, 127, 107, 105, 121, 138, 129, 111, 139, 118, 127, 125, 112, 133, 126, 127, 119, 120, 121, 127, 137, 143, 124, 149, 118, 148, 119, 131, 114, 132, 135, 127, 119, 138, 124, 131, 125, 116, 136, 117, 134, 111, 149, 133, 140, 104, 131, 140, 122, 134, 143, 133, 131, 126, 127, 117, 130, 123, 129, 132, 136, 128, 140, 122, 135, 121, 127, 127, 131, 109, 120, 111, 119, 131, 117, 136, 125, 129, 111, 121, 125, 115, 123, 134, 130, 119, 110, 126, 113, 122, 122, 119, 118, 121, 125, 126, 125, 132, 152, 120, 113, 128, 111, 131, 127, 111, 119, 120, 125, 144, 106, 134, 108, 108, 128, 133, 119, 120, 123, 118, 125, 137, 120, 119, 124, 117, 122, 147, 132, 129, 127, 127, 127, 117, 132, 142, 131, 117, 122, 130, 122, 114, 145, 97, 141, 123, 133, 124, 118, 128, 126, 136, 120, 129, 139, 117, 144, 103, 129, 140, 125, 123, 125, 140, 120, 128, 125, 122, 116, 105, 128, 148, 138, 117, 125, 131, 94, 135, 114, 116, 136, 123, 129, 121, 125, 139, 111, 115, 137, 122, 119, 148, 132, 130, 137, 114, 128, 139, 140, 133, 123, 127, 105, 108, 122, 130, 136, 121, 127, 125, 134, 136, 137, 126, 129, 118, 140, 118, 115, 124, 117, 120, 125, 133, 121, 111, 119, 118, 140, 150, 122, 125, 124, 127, 120, 120, 132, 137, 123, 126, 112, 131, 121, 135, 130, 121, 121, 124, 124, 123, 131, 143, 139, 136, 116, 114, 127, 123, 120, 139, 120, 126, 121, 123, 127, 110, 121, 122, 121, 90, 115, 114, 123, 127, 134, 119, 118, 117, 140, 127, 108, 129, 125, 116, 122, 121, 134, 136, 137, 119, 128, 129, 117, 122, 112, 130, 115, 141, 115, 128, 122, 118, 109, 137, 119, 136, 123, 114, 138, 125, 115, 120, 109, 133, 120, 125, 127, 124, 128, 145, 123, 121, 133, 129, 126, 113, 120, 126, 122, 119, 118, 119, 124, 122, 127, 139, 118, 127, 126, 134, 125, 149, 126, 141, 135, 125, 123, 137, 126, 119, 124, 145, 134, 111, 125, 120, 153, 116, 126, 115, 135, 125, 140, 132, 139, 123, 128, 134, 139, 130, 131, 140, 129, 112, 115, 128, 123, 104, 127, 106, 123, 117, 133, 109, 118, 152, 137, 121, 119, 110, 138, 119, 121, 121, 122, 137, 125, 124, 125, 125, 120, 128, 104, 124, 142, 120, 120, 133, 125, 127, 113, 115, 127, 129, 110, 105, 123, 125, 136, 112, 124, 117, 136, 122, 131, 130, 122, 131, 119, 124, 104, 116, 113, 111, 109, 123, 125, 133, 103, 116, 135, 130, 138, 122, 107, 134, 129, 118, 129, 122, 122, 134, 133, 126, 124, 126, 128, 122, 130, 141, 132, 120, 104, 123, 124, 138, 125, 111, 128, 125, 127, 133, 136, 121, 118, 142, 144, 141, 117, 114, 119, 115, 110, 126, 137, 138, 126, 130, 122, 125, 128, 128, 127, 137, 126, 118, 121, 121, 139, 131, 124, 130, 127, 112, 126, 121, 125, 118, 119, 132, 127, 128, 112, 129, 142, 119, 131, 123, 141, 112, 125, 157, 124, 127, 125, 139, 126, 114, 118, 138, 133, 121, 128, 129, 129, 131, 124, 119, 128, 140, 148, 116, 129, 165, 118, 124, 124, 112, 136, 117, 119, 113, 122, 128, 129, 118, 123, 134, 128, 139, 131, 123, 131, 116, 127, 130, 104, 135, 141, 121, 132, 119, 127, 114, 116, 138, 146, 117, 126, 121, 119, 128, 127, 123, 125, 125, 134, 124, 118, 126, 127, 118, 119, 133, 137, 121, 141, 120, 112, 140, 111, 123, 130, 130, 159, 120, 134, 118, 124, 120, 141, 127, 117, 120, 128, 140, 111, 133, 136, 152, 119, 118, 119, 144, 127, 125, 109, 117, 112, 124, 117, 113, 123, 122, 126, 108, 124, 122, 124, 109, 115, 147, 110, 125, 114, 146, 125, 118, 125, 131, 107, 125, 105, 128, 127, 124, 116, 129, 127, 130, 131, 134, 105, 131, 124, 113, 107, 116, 135, 118, 131, 108, 115, 131, 99, 102, 115, 127, 135, 125, 114, 117, 139, 129, 132, 131, 124, 135, 123, 121, 123, 128, 134, 131, 132, 125, 123, 122, 131, 118, 130, 124, 120, 115, 133, 124, 109, 140, 115, 120, 135, 127, 131, 126, 126, 124, 144, 117, 129, 129, 122, 135, 137, 132, 118, 120, 113, 116, 124, 125, 121, 126, 127, 129, 137, 138, 111, 113, 127, 118, 128, 132, 101, 127, 127, 128, 119, 125, 118, 122, 122, 132, 121, 113, 113, 128, 124, 121, 127, 119, 114, 119, 113, 121, 127, 104, 134, 118, 132, 111, 122, 115, 119, 130, 121, 126, 117, 126, 121, 130, 126, 120, 122, 124, 135, 137, 127, 118, 142, 140, 114, 133, 123, 115, 122, 107, 122, 137, 137, 130, 139, 127, 124, 115, 141, 118, 137, 129, 118, 127, 127, 124, 120, 118, 123, 126, 117, 125, 123, 134, 141, 135, 131, 150, 125, 108, 135, 151, 116, 135, 106, 130, 137, 132, 122, 128, 124, 121, 121, 142, 136, 112, 131, 121, 115, 120, 104, 119, 118, 130, 119, 126, 132, 133, 108, 112, 121, 131, 127, 118, 119, 119, 129, 125, 132, 117, 128, 127, 117, 116, 131, 129, 131, 129, 130, 123, 120, 132, 123, 123, 126, 124, 125, 131, 123, 134, 122, 137, 119, 140, 131, 100, 128, 113, 127, 126, 129, 110, 124, 105, 132, 127, 127, 133, 127, 103, 112, 133, 140, 121, 133, 129, 121, 128, 138, 147, 126, 131, 129, 102, 129, 123, 115, 132, 113, 134, 123, 119, 113, 136, 134, 139, 133, 115, 133, 123, 119, 134, 143, 136, 140, 114, 107, 125, 140, 122, 116, 125, 131, 108, 108, 124, 131, 104, 139, 129, 127, 126, 121, 123, 133, 126, 122, 132, 120, 125, 131, 116, 127, 126, 131, 119, 132, 126, 133, 115, 118, 131, 136, 126, 119, 133, 137, 118, 158, 113, 107, 121, 126, 121, 137, 116, 142, 104, 120, 116, 127, 124, 130, 130, 122, 133, 128, 118, 125, 131, 134, 134, 125, 119, 134, 123, 116, 115, 125, 100, 137, 117, 136, 125, 122, 135, 142, 137, 129, 118, 132, 117, 118, 128, 122, 120, 110, 134, 121, 125, 117, 149, 128, 135, 123, 115, 121, 101, 104, 119, 121, 130, 127, 127, 128, 117, 137, 126, 126, 128, 138, 121, 127, 107, 119, 125, 135, 124, 103, 130, 145, 127, 129, 113, 131, 117, 129, 143, 109, 119, 108, 134, 123, 120, 126, 127, 111, 126, 116, 140, 117, 123, 135, 134, 141, 116, 113, 127, 108, 120, 136, 129, 111, 123, 126, 138, 108, 136, 125, 120, 131, 110, 129, 110, 150, 125, 136, 129, 123, 125, 126, 122, 126, 129, 133, 128, 114, 108, 125, 132, 103, 115, 133, 112, 138, 137, 120, 121, 119, 122, 138, 128, 141, 131, 114, 127, 121, 117, 133, 118, 124, 108, 127, 145, 112, 119, 124, 131, 131, 116, 144, 118, 123, 114, 122, 121, 127, 125, 127, 128, 129, 132, 122, 135, 137, 121, 110, 111, 111, 130, 128, 147, 130, 123, 130, 133, 127, 133, 140, 156, 129, 132, 111, 125, 121, 129, 128, 129, 136, 122, 119, 110, 123, 131, 120, 111, 130, 131, 133, 150, 126, 128, 128, 125, 128, 130, 122, 122, 123, 113, 135, 132, 106, 129, 108, 122, 130, 126, 121, 144, 135, 147, 137, 142, 132, 129, 138, 127, 119, 120, 133, 122, 139, 125, 116, 118, 130, 125, 124, 102, 138, 125, 137, 123, 137, 140, 134, 135, 124, 132, 124, 126, 121, 118, 107, 122, 136, 115, 123, 136, 120, 135, 129, 144, 130, 119, 118, 134, 141, 135, 138, 125, 128, 139, 123, 122, 116, 138, 116, 125, 119, 138, 115, 125, 124, 148, 135, 130, 107, 143, 127, 123, 126, 118, 118, 132, 131, 132, 126, 131, 132, 120, 125, 135, 120, 138, 123, 140, 118, 112, 125, 130, 122, 119, 125, 126, 133, 127, 111, 128, 133, 124, 128, 119, 114, 112, 117, 152, 144, 124, 118, 116, 122, 107, 146, 144, 131, 113, 139, 125, 121, 130, 136, 123, 120, 119, 115, 138, 126, 156, 116, 125, 145, 133, 112, 148, 116, 136, 128, 114, 132, 96, 119, 127, 142, 115, 131, 128, 134, 127, 135, 120, 102, 128, 123, 132, 120, 127, 135, 136, 114, 133, 141, 131, 119, 114, 124, 115, 118, 122, 119, 120, 110, 136, 119, 116, 132, 128, 121, 128, 120, 136, 122, 136, 133, 130, 127, 118, 111, 125, 132, 110, 132, 118, 117, 139, 127, 116, 118, 123, 141, 116, 112, 139, 135, 123, 129, 117, 150, 107, 129, 121, 128, 111, 127, 127, 124, 130, 131, 122, 105, 112, 123, 136, 138, 131, 140, 113, 123, 144, 134, 128, 121, 139, 126, 133, 135, 119, 127, 116, 130, 123, 122, 120, 141, 134, 132, 142, 110, 126, 114, 109, 119, 145, 110, 140, 118, 116, 123, 112, 120, 133, 125, 133, 132, 112, 137, 122, 128, 101, 116, 123, 130, 118, 118, 124, 137, 131, 115, 117, 116, 128, 140, 127, 126, 149, 117, 119, 110, 134, 123, 124, 114, 117, 136, 118, 124, 116, 118, 121, 133, 123, 123, 115, 123, 127, 113, 130, 114, 110, 140, 138, 114, 130, 128, 151, 115, 121, 124, 124, 138, 120, 132, 116, 131, 111, 117, 145, 120, 115, 127, 122, 125, 123, 122, 120, 120, 141, 108, 120, 118, 122, 115, 140, 123, 131, 122, 111, 115, 131, 136, 103, 128, 132, 125, 104, 114, 127, 132, 124, 118, 131, 129, 127, 131, 137, 127, 118, 130, 115, 112, 117, 117, 135, 124, 137, 125, 118, 138, 126, 123, 126, 155, 121, 107, 121, 123, 109, 132, 129, 127, 119, 120, 137, 131, 121, 124, 119, 108, 133, 119, 128, 128, 131, 129, 129, 130, 124, 153, 137, 123, 129, 129, 143, 117, 132, 121, 117, 118, 120, 109, 127, 133, 121, 129, 126, 117, 124, 114, 130, 136, 119, 121, 139, 128, 129, 133, 128, 129, 115, 127, 126, 102, 131, 149, 121, 128, 126, 115, 143, 128, 131, 131, 130, 134, 137, 132, 135, 121, 120, 122, 127, 150, 123, 120, 140, 133, 112, 123, 117, 113, 128, 113, 114, 115, 138, 133, 139, 122, 115, 131, 131, 133, 121, 124, 132, 134, 117, 127, 129, 120, 121, 129, 131, 131, 116, 133, 133, 116, 123, 144, 129, 129, 138, 106, 133, 146, 126, 125, 128, 117, 142, 124, 121, 113, 126, 122, 140, 115, 114, 123, 130, 118, 127, 129, 136, 131, 118, 121, 131, 124, 115, 116, 124, 119, 130, 126, 119, 136, 126, 127, 115, 133, 119, 135, 112, 124, 118, 116, 128, 127, 121, 115, 116, 128, 117, 134, 110, 141, 133, 128, 142, 109, 140, 122, 136, 116, 123, 130, 126, 137, 123, 113, 114, 129, 126, 119, 125, 145, 102, 113, 126, 126, 113, 123, 131, 117, 115, 134, 125, 144, 107, 124, 133, 123, 117, 127, 129, 118, 138, 118, 140, 122, 124, 127, 119, 115, 120, 123, 113, 140, 125, 132, 117, 128, 110, 131, 119, 129, 130, 122, 112, 110, 121, 122, 116, 123, 116, 140, 119, 134, 138, 135, 135, 133, 129, 127, 150, 124, 138, 114, 128, 134, 140, 108, 112, 143, 131, 130, 125, 136, 128, 114, 121, 139, 121, 131, 128, 123, 118, 118, 154, 133, 148, 123, 147, 106, 135, 105, 128, 128, 131, 128, 119, 146, 117, 113, 131, 137, 118, 130, 119, 124, 127, 130, 126, 135, 119, 130, 123, 119, 128, 124, 104, 130, 123, 132, 128, 112, 138, 129, 115, 120, 98, 119, 115, 117, 121, 112, 121, 128, 118, 120, 130, 121, 131, 121, 120, 121, 122, 126, 127, 116, 120, 126, 129, 116, 129, 133, 147, 110, 130, 149, 118, 116, 132, 135, 109, 129, 127, 143, 115, 127, 106, 113, 116, 112, 109, 140, 97, 135, 134, 106, 124, 120, 124, 126, 112, 134, 118, 124, 143, 120, 132, 114, 135, 136, 130, 134, 128, 158, 130, 109, 127, 107, 117, 124, 122, 128, 128, 121, 137, 140, 107, 117, 134, 150, 116, 131, 119, 122, 135, 125, 119, 140, 129, 127, 124, 124, 132, 119, 156, 119, 123, 126, 129, 128, 127, 143, 127, 132, 137, 129, 111, 132, 139, 128, 134, 128, 136, 135, 121, 107, 136, 127, 111, 134, 119, 126, 132, 127, 115, 116, 126, 120, 115, 113, 128, 136, 142, 115, 119, 104, 121, 119, 118, 138, 125, 142, 107, 129, 142, 115, 116, 125, 127, 117, 129, 127, 116, 141, 131, 125, 122, 107, 118, 126, 138, 131, 132, 132, 125, 122, 118, 116, 134, 127, 135, 133, 116, 132, 129, 141, 120, 128, 126, 115, 132, 145, 133, 128, 132, 110, 131, 128, 118, 129, 133, 132, 131, 124, 140, 112, 145, 107, 131, 139, 132, 128, 127, 111, 144, 127, 127, 126, 118, 121, 113, 123, 114, 130, 125, 134, 116, 138, 119, 122, 126, 126, 124, 142, 131, 126, 116, 116, 115, 113, 107, 114, 118, 121, 126, 121, 118, 126, 121, 117, 145, 114, 151, 123, 116, 128, 132, 126, 129, 120, 128, 131, 129, 126, 117, 127, 140, 124, 126, 127, 120, 128, 117, 121, 129, 120, 133, 142, 113, 130, 132, 131, 131, 140, 132, 131, 126, 107, 114, 100, 124, 128, 115, 118, 120, 130, 130, 118, 131, 144, 114, 137, 113, 126, 119, 152, 132, 94, 117, 116, 137, 109, 131, 145, 125, 109, 133, 114, 150, 141, 128, 122, 140, 114, 126, 117, 120, 129, 104, 146, 122, 134, 132, 123, 123, 112, 121, 125, 135, 134, 127, 117, 127, 120, 124, 119, 128, 129, 122, 129, 127, 143, 126, 129, 105, 119, 115, 108, 128, 129, 125, 122, 117, 129, 134, 128, 108, 155, 108, 123, 137, 123, 126, 135, 119, 131, 123, 124, 124, 133, 121, 116, 122, 132, 128, 131, 108, 123, 130, 111, 129, 129, 138, 133, 128, 138, 136, 137, 120, 134, 133, 132, 118, 135, 140, 125, 138, 126, 132, 135, 115, 123, 135, 126, 112, 123, 112, 142, 120, 124, 137, 158, 132, 146, 126, 119, 118, 128, 144, 133, 103, 125, 131, 118, 118, 121, 134, 107, 111, 136, 137, 103, 110, 124, 123, 118, 134, 128, 122, 139, 149, 138, 139, 104, 121, 97, 119, 146, 119, 124, 124, 136, 133, 118, 105, 127, 110, 122, 119, 116, 124, 134, 135, 144, 123, 128, 122, 123, 138, 132, 115, 117, 128, 122, 106, 106, 133, 129, 114, 110, 121, 114, 111, 141, 120, 140, 109, 106, 110, 113, 143, 129, 132, 105, 132, 110, 128, 134, 114, 109, 123, 119, 130, 118, 125, 133, 134, 114, 135, 102, 113, 136, 128, 138, 132, 110, 141, 129, 139, 125, 139, 130, 133, 119, 122, 119, 126, 146, 124, 129, 134, 132, 104, 135, 122, 131, 131, 117, 121, 137, 113, 124, 118, 111, 130, 134, 108, 121, 125, 126, 122, 117, 114, 133, 114, 123, 134, 112, 133, 134, 115, 132, 130, 117, 131, 124, 129, 117, 106, 119, 140, 127, 115, 117, 119, 125, 124, 138, 139, 124, 121, 106, 122, 125, 127, 111, 114, 127, 128, 112, 124, 136, 125, 121, 124, 124, 119, 109, 136, 129, 135, 120, 116, 130, 127, 133, 123, 130, 127, 127, 129, 130, 137, 135, 119, 100, 117, 120, 112, 124, 143, 145, 117, 128, 127, 132, 138, 120, 118, 123, 131, 114, 139, 109, 121, 141, 120, 126, 119, 153, 104, 126, 136, 128, 120, 110, 123, 120, 100, 128, 122, 116, 142, 134, 117, 140, 125, 119, 123, 128, 127, 109, 123, 126, 132, 130, 117, 141, 131, 131, 133, 119, 125, 123, 102, 147, 124, 134, 120, 120, 134, 108, 137, 115, 139, 116, 130, 122, 149, 146, 118, 137, 128, 140, 123, 127, 122, 141, 115, 124, 133, 126, 120, 122, 116, 131, 131, 123, 122, 123, 126, 108, 140, 134, 136, 126, 133, 123, 142, 121, 103, 121, 119, 122, 112, 132, 111, 123, 136, 109, 122, 131, 138, 135, 122, 132, 120, 129, 117, 127, 139, 130, 110, 145, 126, 121, 120, 120, 131, 125, 115, 115, 127, 135, 128, 121, 137, 115, 121, 121, 123, 116, 126, 126, 130, 122, 131, 120, 133, 143, 118, 126, 136, 130, 122, 146, 119, 128, 123, 112, 121, 122, 113, 124, 107, 126, 125, 117, 119, 110, 121, 126, 121, 124, 119, 123, 129, 130, 122, 126, 138, 121, 133, 126, 135, 111, 117, 121, 125, 143, 126, 135, 136, 118, 127, 132, 132, 115, 127, 112, 121, 110, 117, 125, 130, 148, 132, 120, 119, 116, 122, 119, 119, 125, 105, 124, 121, 109, 103, 141, 120, 121, 117, 132, 142, 116, 125, 123, 141, 119, 108, 127, 131, 126, 131, 119, 104, 120, 113, 125, 130, 150, 118, 119, 119, 126, 121, 119, 118, 135, 123, 118, 124, 129, 135, 129, 134, 142, 128, 112, 146, 127, 117, 139, 110, 124, 108, 107, 132, 143, 134, 120, 112, 116, 138, 104, 124, 142, 121, 119, 122, 111, 125, 143, 135, 120, 131, 143, 105, 110, 131, 127, 124, 125, 139, 134, 133, 126, 147, 121, 114, 131, 140, 112, 131, 133, 123, 108, 124, 128, 142, 122, 128, 152, 127, 124, 119, 128, 136, 130, 111, 127, 126, 116, 121, 116, 147, 117, 124, 134, 127, 132, 109, 120, 120, 120, 136, 121, 119, 118, 127, 127, 144, 131, 117, 107, 135, 138, 123, 108, 103, 124, 143, 129, 126, 135, 131, 143, 106, 115, 123, 136, 122, 119, 119, 130, 123, 121, 120, 133, 132, 130, 131, 118, 117, 126, 122, 119, 134, 130, 124, 118, 129, 129, 152, 109, 125, 130, 124, 118, 130, 125, 143, 115, 119, 132, 113, 142, 130, 128, 130, 117, 103, 129, 153, 131, 117, 145, 140, 129, 130, 103, 123, 136, 112, 106, 132, 123, 107, 126, 120, 135, 122, 127, 119, 117, 119, 136, 121, 117, 121, 125, 120, 121, 140, 125, 123, 118, 141, 116, 126, 122, 115, 116, 113, 154, 132, 128, 141, 114, 119, 112, 113, 120, 128, 117, 122, 132, 126, 122, 133, 136, 122, 147, 121, 139, 114, 127, 139, 137, 117, 117, 115, 145, 130, 128, 130, 131, 133, 130, 139, 125, 113, 119, 123, 126, 121, 115, 118, 132, 120, 116, 133, 128, 121, 124, 105, 124, 123, 123, 119, 129, 108, 129, 120, 128, 133, 130, 137, 129, 118, 107, 124, 125, 129, 129, 112, 110, 128, 121, 135, 114, 120, 137, 135, 122, 120, 125, 136, 130, 131, 119, 105, 118, 132, 119, 119, 134, 131, 129, 121, 129, 127, 126, 108, 117, 123, 116, 112, 130, 115, 115, 134, 124, 102, 140, 113, 140, 143, 119, 111, 116, 127, 121, 128, 137, 139, 117, 131, 133, 129, 116, 129, 153, 121, 144, 123, 131, 118, 125, 111, 141, 133, 127, 144, 137, 133, 128, 125, 131, 124, 141, 111, 125, 119, 121, 129, 139, 135, 120, 134, 122, 110, 148, 123, 122, 139, 114, 131, 138, 106, 113, 136, 101, 127, 138, 126, 134, 113, 132, 121, 116, 112, 148, 122, 125, 148, 108, 143, 123, 112, 145, 114, 117, 118, 132, 117, 130, 110, 139, 128, 112, 140, 127, 139, 107, 120, 116, 131, 101, 134, 129, 119, 114, 142, 121, 122, 139, 130, 123, 127, 112, 128, 135, 121, 115, 137, 136, 121, 120, 145, 121, 116, 127, 127, 124, 122, 113, 123, 111, 123, 117, 121, 122, 111, 123, 120, 121, 131, 114, 135, 138, 135, 110, 128, 138, 130, 130, 138, 116, 136, 131, 120, 115, 110, 127, 130, 128, 120, 121, 140, 116, 123, 107, 143, 135, 121, 122, 132, 124, 115, 125, 123, 121, 124, 121, 132, 125, 124, 139, 121, 121, 137, 132, 125, 121, 120, 112, 129, 128, 128, 140, 125, 159, 128, 147, 119, 133, 132, 113, 136, 116, 132, 118, 123, 132, 130, 146, 125, 124, 137, 128, 110, 124, 142, 127, 139, 127, 115, 136, 113, 128, 132, 115, 110, 114, 127, 115, 113, 125, 117, 135, 157, 131, 127, 106, 134, 133, 110, 132, 132, 111, 135, 124, 120, 147, 124, 125, 128, 138, 114, 133, 129, 108, 114, 122, 121, 119, 123, 131, 135, 122, 100, 124, 131, 143, 121, 131, 128, 112, 136, 120, 136, 124, 108, 121, 120, 123, 117, 115, 131, 112, 151, 131, 126, 120, 139, 122, 110, 118, 129, 117, 127, 116, 125, 133, 126, 138, 121, 117, 130, 125, 132, 111, 120, 138, 125, 125, 131, 129, 125, 134, 130, 93, 125, 133, 120, 134, 124, 96, 125, 128, 141, 118, 116, 106, 131, 120, 142, 140, 139, 120, 124, 132, 110, 118, 114, 116, 128, 123, 116, 134, 134, 126, 112, 127, 122, 110, 115, 112, 123, 127, 135, 125, 114, 140, 116, 122, 139, 111, 121, 123, 121, 126, 122, 124, 132, 130, 116, 115, 126, 127, 121, 138, 115, 139, 126, 127, 123, 127, 115, 122, 113, 126, 125, 125, 114, 125, 137, 125, 117, 112, 117, 130, 137, 114, 116, 102, 132, 113, 105, 127, 103, 128, 128, 136, 133, 117, 127, 124, 116, 108, 145, 107, 110, 121, 126, 130, 125, 112, 132, 91, 141, 133, 112, 121, 115, 138, 123, 130, 121, 116, 123, 129, 141, 121, 139, 118, 127, 141, 132, 121, 130, 132, 133, 111, 121, 129, 112, 132, 117, 121, 131, 125, 131, 125, 115, 128, 106, 133, 128, 114, 122, 132, 128, 127, 128, 136, 132, 116, 151, 136, 130, 129, 118, 125, 131, 129, 126, 133, 129, 126, 131, 124, 137, 113, 138, 125, 116, 120, 132, 129, 121, 123, 127, 128, 135, 126, 136, 119, 133, 122, 135, 121, 128, 116, 118, 138, 132, 120, 137, 130, 132, 107, 139, 127, 125, 126, 129, 124, 114, 108, 148, 127, 113, 142, 133, 152, 104, 123, 124, 130, 120, 125, 132, 127, 146, 147, 122, 107, 121, 132, 126, 116, 157, 133, 114, 119, 121, 135, 132, 126, 125, 135, 127, 142, 120, 117, 139, 128, 133, 114, 118, 127, 126, 121, 125, 134, 128, 123, 118, 112, 117, 131, 130, 159, 132, 131, 132, 125, 109, 123, 127, 116, 114, 127, 114, 136, 146, 123, 149, 141, 139, 124, 128, 110, 119, 134, 115, 116, 117, 122, 130, 123, 121, 134, 149, 124, 104, 116, 114, 116, 131, 130, 120, 119, 122, 124, 123, 111, 125, 118, 123, 120, 123, 121, 127, 115, 108, 111, 112, 124, 125, 126, 101, 123, 121, 120, 103, 120, 141, 129, 147, 107, 134, 124, 124, 123, 136, 128, 122, 110, 138, 130, 122, 117, 158, 126, 115, 116, 129, 124, 109, 116, 131, 119, 106, 129, 136, 133, 136, 134, 106, 124, 133, 128, 121, 125, 133, 111, 115, 118, 112, 139, 123, 129, 125, 133, 138, 139, 102, 137, 112, 116, 111, 121, 120, 144, 143, 129, 124, 112, 126, 130, 120, 124, 130, 135, 130, 122, 122, 110, 132, 132, 123, 116, 130, 111, 130, 135, 116, 133, 127, 124, 123, 139, 117, 124, 146, 106, 134, 123, 149, 126, 141, 116, 118, 120, 123, 133, 116, 119, 123, 131, 134, 138, 122, 132, 107, 142, 134, 127, 117, 132, 137, 140, 132, 118, 139, 133, 119, 117, 115, 140, 121, 125, 123, 141, 128, 128, 135, 120, 117, 118, 117, 120, 144, 123, 111, 125, 123, 137, 124, 134, 123, 131, 110, 131, 129, 138, 128, 125, 108, 112, 120, 106, 124, 137, 135, 132, 124, 120, 126, 126, 113, 128, 124, 130, 133, 116, 122, 125, 140, 128, 121, 111, 127, 133, 131, 95, 134, 119, 109, 122, 120, 120, 136, 125, 125, 127, 124, 128, 128, 128, 129, 135, 125, 111, 138, 118, 126, 119, 138, 137, 118, 118, 130, 115, 128, 127, 128, 136, 109, 107, 108, 135, 133, 134, 127, 127, 122, 120, 147, 135, 128, 135, 159, 138, 122, 135, 123, 121, 127, 131, 113, 121, 143, 112, 132, 132, 132, 114, 108, 122, 138, 131, 123, 140, 117, 123, 125, 113, 104, 133, 143, 135, 121, 110, 96, 120, 121, 143, 135, 140, 124, 131, 139, 120, 131, 119, 112, 112, 122, 111, 128, 147, 128, 113, 111, 127, 121, 121, 119, 137, 127, 128, 131, 121, 106, 106, 120, 112, 134, 125, 130, 114, 113, 133, 118, 133, 121, 116, 122, 124, 125, 133, 139, 115, 131, 125, 129, 137, 145, 129, 119, 117, 144, 148, 130, 136, 115, 131, 117, 133, 143, 123, 125, 124, 129, 129, 120, 128, 130, 108, 115, 115, 124, 114, 128, 120, 123, 115, 111, 123, 119, 140, 121, 120, 130, 112, 130, 131, 127, 110, 136, 108, 128, 126, 123, 128, 132, 130, 124, 120, 132, 135, 126, 129, 152, 129, 125, 129, 126, 106, 118, 121, 126, 119, 124, 127, 122, 121, 133, 126, 133, 131, 128, 126, 133, 132, 122, 131, 119, 125, 102, 118, 125, 131, 111, 125, 121, 135, 151, 127, 111, 133, 129, 115, 118, 127, 122, 138, 128, 135, 124, 120, 110, 130, 120, 130, 121, 123, 126, 117, 142, 127, 132, 139, 119, 114, 136, 126, 121, 133, 120, 128, 118, 143, 117, 115, 145, 141, 126, 120, 139, 123, 137, 131, 117, 136, 128, 140, 113, 133, 113, 110, 139, 121, 133, 129, 133, 138, 131, 121, 116, 121, 116, 129, 109, 141, 145, 127, 132, 109, 131, 120, 118, 127, 114, 127, 112, 124, 138, 135, 123, 126, 114, 124, 121, 122, 127, 128, 122, 137, 113, 134, 117, 129, 113, 124, 135, 127, 140, 127, 132, 115, 122, 126, 135, 119, 128, 126, 133, 119, 120, 136, 149, 136, 110, 135, 117, 127, 123, 122, 133, 131, 115, 106, 110, 133, 123, 128, 116, 123, 115, 112, 125, 140, 128, 121, 132, 133, 128, 117, 115, 122, 127, 125, 120, 113, 133, 112, 125, 127, 131, 124, 115, 110, 111, 122, 129, 114, 126, 144, 122, 142, 126, 134, 124, 130, 122, 150, 134, 114, 134, 123, 130, 118, 136, 132, 135, 130, 108, 130, 124, 114, 128, 130, 122, 110, 125, 113, 117, 150, 141, 128, 122, 122, 121, 126, 120, 123, 121, 122, 123, 130, 118, 111, 141, 123, 122, 125, 124, 139, 106, 125, 110, 142, 117, 140, 119, 132, 125, 134, 119, 123, 121, 121, 126, 130, 127, 125, 131, 119, 140, 116, 122, 131, 119, 115, 124, 136, 131, 122, 107, 121, 109, 127, 125, 134, 132, 135, 103, 128, 116, 119, 120, 130, 105, 121, 125, 121, 117, 142, 116, 120, 129, 124, 140, 124, 145, 121, 121, 129, 124, 120, 110, 130, 109, 132, 142, 131, 122, 107, 129, 116, 129, 131, 115, 119, 128, 124, 130, 118, 115, 135, 127, 119, 140, 131, 132, 114, 135, 118, 125, 119, 124, 133, 151, 129, 121, 130, 119, 124, 110, 111, 135, 127, 128, 126, 137, 130, 113, 120, 129, 117, 134, 116, 121, 124, 135, 117, 119, 120, 146, 127, 108, 135, 137, 120, 112, 125, 123, 139, 139, 134, 138, 129, 135, 106, 129, 136, 127, 132, 120, 124, 129, 143, 127, 116, 127, 110, 127, 129, 122, 118, 114, 116, 117, 111, 105, 130, 135, 135, 129, 113, 125, 114, 117, 118, 116, 126, 132, 128, 117, 134, 118, 137, 113, 126, 123, 139, 127, 114, 118, 131, 121, 137, 123, 123, 132, 124, 116, 139, 106, 132, 123, 134, 113, 144, 120, 132, 139, 118, 135, 115, 122, 130, 117, 132, 112, 127, 135, 144, 124, 129, 130, 126, 130, 118, 126, 106, 129, 138, 130, 124, 112, 125, 130, 122, 117, 123, 118, 123, 130, 139, 123, 121, 109, 130, 121, 129, 131, 112, 133, 136, 131, 125, 129, 101, 127, 139, 130, 123, 115, 130, 129, 130, 105, 135, 117, 144, 119, 137, 129, 111, 126, 123, 148, 122, 129, 116, 128, 108, 119, 120, 121, 136, 110, 116, 112, 107, 123, 107, 119, 128, 143, 117, 126, 126, 119, 132, 135, 137, 131, 135, 136, 112, 116, 124, 119, 135, 133, 122, 136, 123, 134, 120, 152, 131, 139, 121, 128, 123, 121, 132, 131, 134, 131, 134, 122, 134, 124, 116, 121, 132, 131, 116, 125, 125, 121, 127, 112, 131, 120, 116, 123, 129, 120, 126, 144, 132, 113, 110, 119, 135, 133, 117, 133, 137, 103, 121, 125, 123, 123, 124, 128, 122, 123, 133, 136, 132, 138, 130, 118, 139, 138, 119, 122, 114, 131, 143, 117, 140, 122, 137, 124, 122, 140, 119, 127, 130, 129, 115, 120, 127, 135, 119, 133, 125, 103, 115, 136, 132, 137, 112, 131, 125, 125, 121, 134, 121, 129, 143, 131, 127, 140, 110, 124, 127, 121, 135, 134, 128, 128, 135, 136, 120, 115, 134, 128, 119, 131, 130, 122, 132, 137, 123, 122, 116, 108, 137, 115, 146, 123, 120, 125, 125, 131, 114, 119, 116, 128, 122, 127, 139, 125, 118, 121, 111, 128, 112, 137, 142, 132, 143, 118, 119, 134, 122, 130, 124, 131, 120, 133, 127, 131, 123, 128, 127, 133, 119, 121, 139, 126, 139, 131, 118, 128, 136, 100, 129, 142, 126, 131, 118, 128, 139, 109, 129, 111, 130, 116, 95, 112, 124, 121, 116, 122, 150, 117, 124, 131, 122, 130, 123, 143, 120, 137, 128, 106, 131, 110, 148, 127, 109, 141, 120, 130, 140, 129, 122, 124, 134, 145, 126, 113, 118, 111, 122, 115, 112, 127, 131, 132, 123, 132, 135, 128, 124, 113, 139, 126, 119, 120, 109, 129, 128, 121, 138, 120, 147, 122, 127, 121, 140, 124, 139, 116, 134, 131, 123, 123, 124, 123, 108, 114, 141, 118, 116, 120, 117, 126, 113, 98, 118, 124, 114, 124, 128, 119, 134, 125, 127, 140, 107, 113, 117, 140, 134, 135, 122, 107, 138, 135, 131, 131, 115, 133, 136, 126, 122, 130, 117, 129, 108, 118, 114, 123, 113, 115, 128, 129, 130, 112, 128, 134, 121, 100, 136, 139, 126, 106, 112, 130, 125, 135, 128, 138, 126, 134, 127, 122, 131, 124, 108, 135, 146, 123, 118, 130, 118, 136, 127, 114, 137, 123, 124, 116, 131, 131, 122, 135, 125, 117, 129, 110, 128, 125, 134, 127, 111, 127, 129, 112, 132, 124, 140, 137, 121, 118, 142, 129, 131, 120, 129, 134, 129, 119, 123, 143, 127, 116, 98, 124, 121, 115, 131, 138, 142, 129, 105, 132, 129, 129, 146, 107, 113, 129, 133, 128, 112, 122, 106, 122, 131, 116, 126, 127, 117, 131, 119, 138, 124, 120, 128, 130, 117, 123, 118, 116, 123, 137, 123, 126, 126, 119, 133, 119, 124, 104, 147, 129, 111, 128, 115, 133, 118, 127, 128, 121, 123, 121, 128, 118, 140, 114, 138, 118, 115, 124, 128, 124, 118, 137, 106, 135, 122, 122, 139, 126, 105, 130, 125, 107, 116, 125, 116, 133, 126, 122, 125, 126, 127, 117, 126, 111, 132, 126, 127, 109, 115, 118, 135, 121, 129, 129, 128, 120, 133, 111, 128, 138, 113, 137, 96, 125, 124, 119, 131, 127, 125, 113, 125, 113, 143, 126, 126, 129, 119, 125, 114, 119, 139, 146, 140, 124, 133, 122, 121, 116, 112, 135, 131, 122, 103, 122, 127, 114, 130, 141, 109, 131, 126, 123, 127, 112, 128, 128, 138, 120, 114, 117, 127, 132, 142, 121, 113, 101, 134, 120, 116, 115, 118, 119, 123, 117, 130, 122, 132, 125, 137, 123, 135, 119, 114, 134, 93, 132, 114, 131, 103, 118, 121, 133, 127, 130, 124, 120, 135, 110, 116, 123, 134, 127, 123, 123, 117, 126, 120, 136, 125, 123, 127, 125, 120, 129, 152, 122, 127, 132, 152, 135, 118, 135, 134, 140, 120, 112, 123, 122, 124, 131, 100, 129, 123, 120, 131, 136, 130, 126, 138, 123, 129, 114, 126, 125, 127, 140, 129, 137, 126, 128, 124, 136, 120, 142, 119, 130, 132, 119, 118, 114, 136, 107, 124, 130, 132, 118, 130, 127, 119, 128, 120, 141, 130, 116, 115, 129, 105, 127, 120, 110, 115, 128, 108, 125, 122, 153, 124, 142, 138, 119, 126, 126, 133, 130, 126, 123, 133, 130, 121, 141, 119, 118, 124, 127, 132, 137, 123, 136, 132, 129, 139, 133, 130, 107, 134, 125, 137, 126, 113, 113, 133, 123, 122, 124, 110, 133, 112, 121, 128, 131, 119, 123, 123, 114, 123, 116, 123, 112, 122, 123, 109, 147, 128, 118, 137, 124, 126, 144, 131, 128, 120, 113, 126, 130, 130, 125, 119, 117, 132, 146, 147, 148, 134, 134, 111, 145, 121, 131, 120, 124, 142, 127, 128, 102, 117, 117, 138, 128, 125, 121, 119, 128, 117, 125, 126, 121, 135, 141, 113, 132, 143, 132, 134, 126, 118, 120, 137, 140, 125, 146, 131, 131, 123, 118, 143, 122, 125, 122, 122, 126, 111, 123, 117, 134, 116, 100, 151, 134, 130, 157, 132, 120, 130, 119, 124, 122, 118, 137, 119, 132, 120, 105, 110, 120, 134, 123, 113, 122, 130, 112, 119, 135, 121, 118, 117, 132, 144, 114, 151, 121, 132, 135, 134, 138, 130, 115, 125, 131, 108, 126, 130, 115, 142, 126, 116, 120, 128, 133, 131, 119, 134, 141, 136, 110, 111, 127, 116, 126, 102, 127, 144, 107, 131, 113, 121, 127, 129, 121, 116, 134, 123, 123, 121, 133, 118, 154, 131, 119, 130, 115, 131, 113, 145, 140, 136, 125, 122, 109, 97, 137, 115, 119, 120, 138, 105, 133, 137, 116, 127, 132, 135, 130, 122, 146, 134, 124, 117, 143, 115, 139, 112, 127, 126, 120, 110, 128, 121, 145, 115, 118, 130, 127, 127, 125, 136, 118, 138, 138, 115, 119, 134, 116, 146, 135, 108, 125, 103, 116, 137, 113, 117, 108, 110, 133, 127, 122, 124, 129, 130, 121, 121, 123, 142, 127, 131, 120, 116, 118, 117, 134, 141, 133, 125, 122, 139, 114, 136, 120, 136, 117, 128, 121, 117, 125, 140, 108, 119, 117, 118, 135, 115, 95, 118, 129, 134, 128, 150, 141, 129, 124, 136, 128, 135, 121, 97, 134, 136, 126, 120, 106, 136, 132, 143, 127, 126, 124, 135, 138, 124, 119, 125, 157, 123, 119, 128, 132, 123, 136, 118, 139, 119, 111, 135, 117, 116, 135, 128, 115, 113, 147, 121, 122, 158, 113, 122, 148, 161, 123, 123, 124, 127, 122, 119, 107, 134, 138, 117, 126, 122, 144, 109, 128, 124, 136, 119, 116, 118, 120, 117, 129, 121, 117, 113, 128, 134, 115, 136, 120, 128, 141, 135, 123, 139, 140, 126, 126, 142, 99, 117, 138, 127, 136, 115, 115, 123, 126, 124, 138, 123, 122, 111, 113, 121, 125, 143, 127, 134, 127, 118, 143, 129, 128, 131, 121, 148, 129, 130, 129, 132, 105, 122, 120, 113, 122, 118, 122, 127, 135, 130, 129, 121, 121, 120, 127, 112, 123, 125, 120, 123, 126, 125, 121, 130, 120, 138, 127, 129, 98, 125, 128, 121, 118, 122, 151, 112, 114, 108, 123, 129, 125, 130, 121, 141, 121, 148, 122, 110, 109, 128, 130, 114, 134, 121, 109, 126, 153, 127, 122, 122, 115, 125, 144, 153, 124, 108, 149, 141, 140, 121, 108, 120, 129, 114, 125, 121, 117, 118, 136, 129, 135, 113, 133, 122, 129, 116, 121, 105, 107, 142, 125, 130, 124, 136, 123, 136, 131, 136, 111, 127, 114, 110, 113, 117, 131, 117, 122, 111, 125, 98, 120, 106, 136, 139, 116, 134, 144, 126, 123, 132, 126, 119, 137, 123, 119, 132, 124, 114, 132, 131, 112, 120, 147, 115, 123, 129, 123, 122, 127, 128, 129, 125, 123, 117, 105, 124, 125, 109, 124, 118, 119, 124, 106, 130, 120, 138, 115, 134, 132, 134, 132, 140, 136, 136, 129, 126, 116, 122, 132, 138, 124, 121, 101, 147, 105, 131, 103, 116, 118, 118, 129, 120, 128, 133, 117, 134, 130, 128, 129, 124, 130, 122, 113, 122, 121, 121, 125, 116, 136, 119, 133, 102, 118, 139, 114, 111, 128, 119, 135, 139, 142, 126, 145, 128, 130, 138, 120, 136, 114, 127, 141, 125, 139, 124, 132, 110, 129, 124, 120, 114, 131, 126, 129, 136, 104, 122, 137, 114, 126, 112, 121, 129, 141, 116, 119, 135, 134, 127, 118, 134, 125, 123, 118, 130, 113, 113, 145, 118, 119, 125, 109, 111, 124, 119, 125, 125, 141, 118, 122, 124, 151, 145, 144, 122, 116, 130, 126, 133, 126, 123, 127, 126, 118, 128, 130, 108, 120, 133, 141, 130, 130, 104, 119, 108, 135, 112, 122, 115, 111, 103, 118, 143, 116, 121, 137, 126, 147, 131, 117, 124, 116, 118, 115, 119, 127, 120, 123, 135, 143, 124, 116, 122, 111, 137, 123, 111, 128, 126, 118, 112, 137, 123, 123, 162, 128, 136, 138, 131, 127, 120, 130, 112, 120, 113, 112, 103, 119, 118, 119, 121, 118, 140, 122, 114, 112, 118, 130, 116, 144, 136, 129, 124, 150, 120, 125, 142, 118, 136, 130, 109, 115, 109, 128, 116, 135, 114, 120, 120, 110, 128, 114, 135, 127, 118, 137, 129, 126, 102, 134, 130, 127, 113, 127, 117, 109, 139, 128, 134, 127, 116, 120, 133, 117, 115, 114, 110, 127, 122, 125, 126, 118, 119, 120, 125, 116, 117, 124, 125, 134, 100, 118, 115, 140, 110, 145, 119, 124, 121, 114, 113, 118, 122, 116, 141, 120, 138, 117, 111, 118, 110, 121, 136, 130, 136, 126, 140, 118, 120, 131, 109, 126, 115, 140, 138, 138, 134, 136, 121, 111, 122, 162, 109, 141, 127, 147, 108, 127, 116, 133, 126, 145, 118, 141, 120, 110, 123, 140, 136, 123, 117, 115, 95, 123, 123, 130, 120, 120, 140, 138, 117, 126, 125, 123, 142, 125, 113, 118, 117, 132, 128, 123, 130, 125, 105, 114, 136, 120, 141, 102, 114, 119, 112, 126, 128, 134, 127, 124, 129, 127, 132, 127, 110, 134, 141, 117, 126, 116, 139, 133, 132, 129, 144, 154, 119, 134, 135, 107, 149, 111, 122, 109, 134, 134, 111, 153, 127, 138, 108, 127, 145, 137, 111, 122, 154, 127, 142, 100, 108, 113, 127, 133, 124, 123, 135, 114, 127, 111, 120, 123, 139, 131, 142, 146, 119, 119, 131, 113, 124, 124, 122, 133, 123, 133, 127, 138, 109, 118, 130, 122, 129, 120, 111, 120, 133, 114, 137, 131, 116, 142, 117, 91, 118, 116, 117, 159, 147, 131, 129, 129, 123, 123, 139, 128, 137, 122, 129, 136, 107, 119, 130, 119, 112, 129, 140, 115, 121, 120, 119, 130, 120, 139, 123, 111, 117, 137, 113, 121, 118, 123, 129, 138, 137, 116, 100, 115, 128, 140, 104, 135, 124, 101, 122, 134, 130, 122, 100, 117, 111, 121, 110, 116, 125, 139, 117, 136, 114, 131, 112, 130, 122, 95, 125, 133, 133, 134, 120, 129, 124, 113, 116, 112, 133, 154, 113, 113, 113, 135, 111, 125, 127, 130, 133, 135, 128, 125, 136, 103, 139, 134, 127, 121, 127, 135, 110, 136, 132, 132, 122, 140, 121, 128, 109, 136, 131, 129, 124, 135, 136, 139, 131, 118, 132, 135, 130, 117, 136, 128, 129, 122, 116, 125, 131, 139, 120, 105, 113, 127, 138, 115, 138, 129, 129, 103, 135, 116, 129, 123, 132, 125, 136, 134, 123, 127, 107, 118, 126, 116, 139, 128, 117, 110, 116, 121, 149, 117, 124, 117, 128, 135, 123, 126, 107, 115, 158, 146, 129, 118, 137, 140, 124, 130, 121, 121, 148, 112, 133, 114, 112, 128, 138, 131, 123, 102, 128, 121, 114, 101, 118, 139, 114, 132, 130, 134, 125, 137, 130, 123, 130, 130, 132, 119, 130, 123, 133, 118, 135, 120, 119, 141, 121, 120, 130, 120, 110, 115, 126, 140, 136, 123, 108, 119, 123, 115, 134, 151, 122, 122, 136, 118, 139, 125, 135, 124, 135, 110, 122, 144, 128, 146, 140, 126, 108, 124, 129, 116, 124, 113, 138, 142, 143, 127, 116, 124, 143, 121, 111, 117, 114, 150, 137, 130, 128, 137, 127, 118, 108, 112, 132, 126, 110, 138, 116, 123, 134, 122, 140, 134, 124, 121, 130, 113, 133, 126, 119, 120, 108, 110, 133, 112, 137, 98, 123, 136, 115, 146, 127, 116, 114, 123, 116, 116, 121, 140, 134, 118, 120, 127, 138, 125, 124, 133, 133, 119, 135, 116, 134, 128, 118, 129, 115, 120, 124, 122, 123, 123, 122, 148, 119, 104, 123, 131, 121, 134, 127, 124, 119, 118, 133, 127, 121, 122, 107, 122, 113, 136, 138, 122, 123, 121, 123, 132, 104, 115, 109, 139, 114, 129, 110, 128, 128, 134, 138, 127, 125, 133, 134, 123, 132, 126, 125, 124, 138, 133, 138, 123, 126, 110, 127, 119, 124, 124, 129, 129, 113, 130, 127, 122, 145, 126, 108, 116, 123, 139, 119, 112, 129, 126, 135, 123, 126, 106, 110, 115, 130, 127, 141, 138, 121, 135, 122, 137, 139, 144, 122, 129, 109, 129, 135, 123, 137, 128, 139, 98, 127, 141, 107, 122, 118, 144, 135, 124, 108, 123, 138, 136, 132, 120, 132, 136, 129, 129, 149, 127, 110, 151, 124, 126, 121, 129, 113, 138, 129, 127, 128, 129, 135, 131, 110, 134, 120, 113, 120, 112, 146, 131, 129, 106, 114, 112, 127, 131, 118, 122, 120, 106, 112, 129, 116, 118, 131, 119, 134, 133, 128, 129, 124, 113, 151, 119, 99, 115, 110, 127, 147, 117, 127, 139, 110, 121, 130, 119, 132, 121, 127, 107, 129, 138, 132, 122, 119, 140, 122, 128, 126, 125, 110, 126, 123, 141, 134, 115, 122, 132, 131, 141, 118, 103, 123, 108, 135, 113, 128, 121, 104, 124, 133, 110, 123, 122, 111, 118, 136, 129, 132, 131, 132, 115, 148, 122, 115, 139, 138, 147, 129, 116, 120, 134, 119, 117, 135, 136, 128, 143, 126, 108, 146, 130, 127, 120, 133, 120, 121, 133, 119, 124, 113, 142, 139, 138, 127, 128, 122, 132, 138, 118, 113, 144, 129, 134, 136, 128, 122, 123, 122, 113, 109, 136, 126, 137, 120, 115, 142, 117, 127, 126, 131, 123, 129, 111, 122, 125, 123, 127, 141, 131, 124, 116, 106, 121, 111, 139, 136, 127, 138, 148, 115, 122, 117, 145, 124, 117, 147, 141, 122, 112, 126, 118, 141, 136, 104, 121, 114, 126, 125, 111, 125, 141, 125, 132, 138, 105, 126, 105, 116, 128, 121, 121, 121, 136, 118, 142, 124, 132, 126, 123, 127, 142, 139, 117, 118, 138, 121, 134, 141, 116, 118, 135, 152, 121, 150, 118, 125, 115, 128, 131, 139, 131, 123, 126, 134, 114, 122, 114, 112, 122, 116, 129, 125, 124, 123, 140, 134, 136, 155, 132, 127, 120, 121, 120, 115, 112, 115, 117, 113, 134, 135, 129, 141, 126, 123, 131, 123, 115, 127, 137, 112, 115, 126, 147, 129, 133, 130, 122, 117, 125, 127, 110, 142, 121, 129, 135, 124, 111, 132, 128, 109, 120, 118, 130, 129, 126, 135, 122, 119, 128, 134, 122, 122, 121, 144, 114, 119, 110, 141, 133, 124, 118, 119, 120, 128, 128, 127, 131, 146, 126, 137, 121, 133, 158, 124, 149, 147, 136, 128, 126, 148, 121, 121, 126, 124, 106, 142, 121, 155, 143, 114, 129, 122, 125, 143, 107, 140, 117, 131, 128, 114, 129, 114, 130, 114, 127, 108, 129, 135, 121, 102, 144, 112, 123, 126, 127, 127, 127, 116, 140, 124, 133, 121, 118, 120, 148, 128, 141, 132, 101, 115, 118, 122, 126, 129, 109, 141, 113, 144, 118, 128, 119, 127, 121, 134, 132, 132, 126, 139, 143, 130, 128, 110, 136, 136, 131, 104, 143, 116, 123, 119, 135, 132, 138, 133, 135, 117, 111, 130, 124, 127, 140, 121, 121, 124, 127, 137, 125, 129, 130, 132, 113, 107, 135, 122, 106, 146, 121, 131, 118, 124, 137, 130, 162, 129, 110, 137, 125, 174, 127, 131, 97, 132, 112, 110, 125, 121, 128, 128, 132, 127, 122, 114, 119, 120, 134, 130, 122, 128, 124, 112, 110, 115, 128, 135, 122, 130, 131, 125, 126, 145, 105, 152, 123, 118, 123, 145, 117, 131, 134, 115, 113, 152, 137, 129, 127, 116, 127, 111, 119, 116, 114, 141, 116, 118, 122, 119, 147, 127, 129, 116, 116, 98, 127, 120, 127, 130, 144, 130, 128, 136, 139, 123, 124, 137, 129, 111, 129, 117, 123, 125, 123, 129, 132, 131, 130, 124, 139, 104, 136, 133, 137, 113, 112, 129, 137, 115, 118, 127, 110, 134, 123, 125, 121, 111, 123, 104, 129, 132, 126, 134, 125, 114, 113, 119, 115, 130, 135, 125, 139, 117, 129, 112, 128, 129, 127, 109, 140, 141, 127, 121, 119, 122, 135, 132, 125, 114, 118, 112, 110, 123, 124, 129, 123, 131, 132, 116, 124, 132, 111, 142, 145, 125, 139, 119, 120, 131, 123, 122, 120, 124, 133, 110, 113, 116, 110, 123, 112, 105, 138, 131, 139, 123, 132, 98, 138, 111, 123, 117, 116, 136, 131, 116, 128, 119, 129, 134, 115, 132, 95, 118, 115, 121, 111, 129, 133, 117, 110, 138, 117, 112, 128, 150, 145, 135, 135, 123, 114, 116, 130, 125, 141, 118, 120, 117, 123, 133, 123, 126, 119, 137, 139, 127, 121, 137, 124, 126, 138, 123, 118, 123, 121, 109, 115, 138, 127, 135, 127, 109, 123, 140, 138, 136, 107, 121, 118, 146, 115, 143, 118, 129, 112, 138, 133, 131, 114, 140, 127, 131, 127, 114, 117, 123, 115, 116, 127, 121, 133, 106, 114, 141, 119, 133, 123, 124, 135, 117, 106, 125, 122, 130, 122, 123, 143, 109, 112, 122, 123, 136, 113, 106, 121, 130, 127, 129, 119, 134, 117, 130, 135, 139, 114, 142, 147, 135, 117, 146, 128, 122, 137, 142, 107, 130, 122, 146, 108, 112, 127, 117, 132, 134, 129, 128, 133, 115, 117, 147, 122, 115, 116, 139, 126, 121, 117, 136, 128, 120, 143, 101, 125, 145, 140, 141, 121, 135, 121, 107, 106, 130, 133, 148, 129, 126, 127, 127, 123, 103, 134, 106, 119, 127, 143, 118, 135, 150, 112, 124, 111, 141, 141, 129, 125, 104, 137, 134, 106, 117, 132, 123, 108, 115, 128, 123, 125, 112, 131, 130, 126, 124, 148, 136, 129, 129, 113, 120, 122, 122, 135, 129, 130, 115, 127, 119, 115, 137, 114, 114, 124, 124, 131, 145, 120, 114, 115, 126, 134, 123, 134, 133, 124, 118, 132, 136, 122, 119, 97, 115, 145, 157, 125, 131, 135, 121, 115, 132, 120, 134, 132, 129, 101, 123, 118, 128, 134, 132, 161, 114, 130, 136, 133, 120, 138, 116, 132, 135, 104, 123, 132, 128, 134, 139, 158, 127, 123, 144, 129, 110, 132, 121, 130, 124, 114, 110, 126, 117, 141, 120, 125, 126, 124, 110, 142, 116, 121, 124, 114, 107, 126, 123, 143, 133, 120, 119, 139, 115, 114, 140, 139, 139, 117, 117, 112, 112, 121, 117, 135, 116, 121, 115, 125, 113, 126, 140, 123, 94, 141, 116, 130, 128, 125, 125, 116, 130, 114, 121, 126, 132, 128, 121, 122, 118, 130, 120, 110, 136, 128, 127, 138, 123, 114, 125, 104, 133, 124, 124, 129, 124, 133, 113, 134, 119, 153, 120, 105, 111, 124, 134, 124, 119, 142, 128, 119, 116, 111, 121, 106, 124, 109, 116, 134, 135, 132, 131, 127, 137, 108, 138, 127, 111, 112, 127, 112, 122, 119, 138, 144, 122, 115, 128, 131, 132, 117, 128, 121, 133, 138, 117, 146, 130, 130, 154, 131, 149, 127, 134, 167, 115, 139, 145, 144, 119, 142, 137, 123, 146, 111, 127, 108, 125, 133, 136, 153, 129, 107, 117, 139, 126, 111, 137, 128, 124, 110, 135, 115, 122, 118, 102, 135, 133, 141, 114, 114, 127, 132, 132, 114, 126, 142, 138, 128, 140, 115, 111, 126, 114, 142, 134, 124, 135, 122, 127, 141, 105, 138, 125, 114, 152, 115, 133, 125, 122, 125, 135, 124, 129, 116, 118, 123, 124, 123, 135, 124, 125, 110, 133, 123, 116, 130, 126, 122, 148, 123, 135, 109, 117, 124, 119, 137, 135, 133, 128, 138, 136, 122, 115, 123, 112, 127, 124, 134, 116, 132, 139, 130, 106, 139, 123, 141, 137, 112, 142, 134, 114, 111, 143, 136, 129, 118, 117, 121, 114, 140, 123, 145, 125, 141, 96, 118, 129, 116, 114, 109, 131, 127, 130, 152, 127, 117, 120, 145, 142, 125, 123, 119, 126, 116, 124, 118, 131, 102, 126, 124, 142, 134, 112, 145, 126, 130, 129, 124, 131, 137, 106, 127, 115, 139, 126, 143, 128, 118, 142, 114, 110, 129, 120, 116, 126, 135, 122, 139, 126, 124, 134, 120, 122, 146, 133, 125, 123, 112, 134, 95, 136, 143, 111, 131, 103, 136, 120, 129, 108, 127, 129, 121, 121, 119, 152, 133, 123, 110, 118, 124, 136, 132, 105, 132, 121, 123, 144, 123, 124, 109, 127, 135, 132, 129, 123, 128, 132, 116, 124, 108, 128, 116, 122, 130, 112, 125, 124, 98, 139, 117, 129, 130, 113, 124, 119, 137, 119, 123, 123, 129, 142, 118, 114, 120, 112, 118, 145, 123, 127, 128, 121, 136, 112, 109, 141, 124, 145, 119, 112, 103, 135, 128, 115, 129, 114, 113, 139, 136, 116, 123, 128, 114, 118, 133, 130, 121, 128, 121, 126, 124, 124, 112, 140, 139, 123, 116, 126, 116, 121, 117, 121, 133, 143, 119, 132, 122, 129, 132, 118, 118, 114, 122, 128, 121, 134, 129, 121, 127, 139, 136, 131, 136, 144, 138, 148, 132, 124, 109, 135, 120, 131, 121, 119, 125, 127, 131, 113, 120, 112, 107, 125, 113, 126, 118, 133, 117, 118, 143, 132, 121, 118, 133, 119, 134, 128, 128, 131, 128, 117, 126, 108, 121, 141, 111, 113, 126, 137, 145, 131, 113, 122, 123, 118, 112, 117, 130, 139, 121, 129, 131, 120, 125, 133, 137, 131, 117, 116, 110, 135, 117, 115, 132, 134, 123, 119, 124, 135, 148, 109, 119, 142, 129, 134, 120, 128, 116, 126, 158, 126, 123, 122, 130, 144, 121, 121, 123, 115, 117, 126, 112, 120, 129, 145, 120, 105, 128, 114, 135, 116, 124, 120, 132, 137, 138, 141, 136, 132, 136, 121, 152, 126, 134, 120, 125, 107, 140, 132, 131, 146, 118, 131, 139, 121, 118, 122, 115, 137, 129, 107, 116, 136, 137, 138, 127, 137, 119, 126, 134, 127, 123, 128, 126, 128, 121, 125, 141, 114, 128, 140, 101, 122, 132, 128, 122, 113, 144, 119, 122, 115, 137, 126, 116, 143, 124, 136, 143, 134, 126, 109, 140, 113, 141, 120, 126, 121, 151, 116, 114, 130, 138, 127, 118, 136, 124, 127, 118, 117, 125, 134, 132, 132, 124, 129, 131, 115, 164, 125, 120, 123, 135, 115, 140, 137, 137, 124, 124, 140, 119, 129, 122, 127, 109, 127, 111, 123, 116, 129, 129, 115, 137, 117, 127, 133, 123, 120, 119, 128, 115, 135, 133, 128, 123, 139, 130, 120, 121, 127, 121, 118, 123, 113, 120, 112, 107, 155, 134, 120, 118, 125, 123, 128, 138, 130, 131, 117, 118, 132, 127, 114, 137, 123, 125, 128, 126, 116, 123, 131, 137, 123, 115, 111, 120, 114, 117, 108, 132, 122, 132, 133, 130, 114, 117, 135, 141, 135, 109, 135, 130, 117, 114, 117, 123, 112, 135, 118, 122, 127, 127, 124, 133, 130, 124, 136, 128, 141, 121, 123, 128, 149, 117, 121, 118, 118, 134, 121, 121, 132, 131, 135, 119, 123, 117, 137, 131, 139, 108, 122, 129, 144, 118, 123, 126, 130, 119, 112, 125, 130, 135, 120, 127, 131, 132, 121, 117, 97, 130, 137, 139, 121, 133, 112, 129, 123, 109, 120, 128, 118, 110, 123, 114, 124, 132, 114, 108, 132, 119, 143, 120, 110, 145, 108, 109, 107, 124, 107, 125, 126, 125, 130, 128, 123, 139, 120, 112, 126, 118, 125, 132, 124, 122, 127, 124, 135, 130, 123, 133, 132, 133, 128, 134, 124, 118, 120, 114, 132, 131, 131, 137, 137, 120, 117, 136, 121, 156, 124, 130, 126, 130, 134, 117, 122, 132, 126, 141, 125, 116, 114, 131, 119, 108, 111, 155, 126, 127, 137, 109, 133, 123, 110, 112, 98, 131, 126, 136, 122, 124, 116, 127, 123, 130, 125, 106, 123, 123, 114, 130, 122, 104, 132, 124, 124, 122, 127, 127, 119, 122, 110, 115, 125, 98, 142, 123, 122, 128, 125, 151, 129, 125, 121, 133, 144, 135, 120, 133, 124, 133, 140, 147, 144, 125, 123, 108, 109, 126, 123, 127, 121, 122, 119, 132, 106, 121, 136, 116, 122, 118, 131, 130, 118, 136, 121, 134, 125, 122, 127, 131, 134, 120, 124, 125, 133, 92, 132, 123, 127, 121, 126, 144, 121, 125, 137, 124, 131, 127, 112, 131, 134, 111, 155, 137, 137, 129, 131, 129, 143, 130, 137, 124, 132, 124, 119, 135, 139, 130, 117, 127, 117, 129, 120, 120, 128, 121, 120, 121, 142, 117, 130, 120, 113, 122, 117, 132, 125, 113, 131, 121, 123, 116, 108, 116, 146, 122, 114, 117, 128, 127, 129, 131, 122, 134, 125, 118, 125, 157, 131, 110, 139, 122, 119, 136, 136, 125, 115, 141, 128, 120, 118, 114, 127, 133, 125, 128, 112, 126, 136, 132, 122, 138, 115, 122, 129, 106, 127, 123, 130, 110, 122, 130, 137, 132, 138, 113, 135, 123, 105, 123, 132, 116, 132, 144, 127, 132, 122, 123, 114, 119, 128, 112, 140, 133, 131, 117, 120, 130, 126, 127, 135, 127, 126, 112, 113, 103, 127, 124, 116, 130, 125, 126, 136, 126, 118, 127, 126, 134, 136, 129, 119, 126, 147, 131, 126, 137, 103, 132, 111, 131, 135, 120, 127, 133, 129, 135, 132, 135, 128, 139, 128, 108, 131, 112, 129, 123, 141, 116, 129, 129, 120, 136, 112, 122, 130, 155, 143, 135, 133, 134, 124, 131, 150, 122, 126, 134, 119, 129, 112, 146, 117, 133, 138, 133, 121, 136, 119, 138, 119, 108, 121, 119, 127, 133, 114, 120, 120, 135, 137, 134, 114, 118, 138, 117, 146, 98, 113, 131, 134, 124, 115, 125, 122, 120, 131, 129, 111, 112, 125, 135, 126, 140, 135, 130, 129, 144, 126, 135, 126, 124, 118, 123, 125, 137, 112, 130, 120, 123, 129, 122, 129, 121, 121, 141, 127, 132, 129, 124, 141, 118, 124, 127, 129, 122, 124, 119, 138, 131, 123, 131, 127, 117, 125, 137, 139, 137, 139, 136, 125, 145, 125, 113, 128, 124, 132, 125, 125, 121, 119, 111, 138, 126, 119, 125, 155, 133, 131, 123, 131, 118, 137, 122, 119, 122, 134, 137, 115, 125, 125, 113, 140, 131, 115, 147, 114, 138, 121, 111, 108, 122, 128, 118, 129, 142, 136, 123, 127, 141, 136, 133, 127, 128, 130, 105, 129, 135, 140, 137, 128, 116, 122, 127, 125, 108, 115, 124, 131, 141, 133, 141, 111, 132, 128, 119, 134, 105, 117, 134, 124, 120, 134, 124, 127, 134, 125, 127, 139, 112, 114, 135, 137, 140, 128, 137, 128, 112, 116, 136, 132, 136, 135, 121, 131, 112, 133, 119, 136, 137, 137, 111, 153, 137, 105, 129, 117, 119, 121, 129, 142, 134, 134, 121, 98, 107, 133, 122, 142, 126, 126, 109, 127, 139, 133, 128, 121, 138, 126, 145, 138, 120, 130, 118, 117, 118, 134, 127, 142, 133, 140, 111, 134, 122, 136, 111, 142, 110, 132, 132, 131, 115, 107, 117, 131, 130, 144, 114, 107, 145, 122, 109, 152, 126, 122, 134, 129, 110, 136, 115, 126, 131, 123, 122, 122, 151, 124, 108, 130, 132, 125, 125, 116, 115, 118, 124, 118, 131, 110, 114, 126, 134, 131, 119, 153, 128, 125, 130, 158, 131, 127, 144, 120, 134, 104, 124, 131, 115, 132, 129, 111, 149, 123, 114, 113, 115, 128, 147, 130, 130, 126, 129, 111, 112, 148, 119, 128, 112, 122, 134, 123, 131, 128, 150, 108, 143, 124, 120, 118, 138, 117, 128, 114, 127, 142, 137, 115, 123, 114, 115, 120, 126, 126, 133, 109, 128, 124, 135, 126, 133, 122, 132, 117, 125, 131, 108, 131, 130, 140, 113, 122, 143, 110, 128, 124, 116, 134, 119, 117, 101, 128, 128, 127, 146, 125, 131, 105, 120, 125, 121, 119, 127, 142, 114, 132, 138, 127, 102, 132, 137, 115, 125, 126, 150, 128, 122, 122, 134, 138, 142, 128, 129, 114, 145, 123, 127, 138, 116, 144, 120, 119, 137, 126, 121, 135, 110, 136, 127, 124, 123, 118, 130, 118, 135, 131, 118, 140, 135, 137, 119, 108, 128, 117, 108, 136, 113, 124, 124, 136, 115, 129, 134, 122, 127, 122, 135, 130, 148, 123, 149, 120, 121, 130, 129, 126, 116, 132, 129, 118, 118, 125, 109, 118, 124, 118, 125, 113, 121, 127, 124, 135, 122, 127, 115, 126, 121, 126, 109, 128, 146, 140, 130, 125, 115, 142, 106, 123, 128, 141, 131, 106, 129, 131, 130, 122, 141, 112, 120, 120, 132, 106, 131, 148, 123, 127, 115, 127, 121, 116, 121, 122, 138, 116, 119, 115, 133, 136, 127, 151, 124, 118, 120, 142, 137, 111, 129, 127, 135, 125, 134, 112, 151, 116, 137, 138, 122, 127, 122, 137, 122, 149, 139, 116, 134, 126, 126, 108, 136, 110, 126, 115, 111, 121, 140, 123, 121, 114, 120, 125, 124, 128, 122, 135, 126, 121, 121, 120, 120, 116, 115, 133, 130, 117, 115, 135, 107, 126, 118, 137, 131, 122, 120, 114, 107, 128, 121, 131, 115, 113, 127, 135, 126, 128, 120, 119, 137, 132, 120, 113, 103, 118, 130, 117, 108, 117, 119, 120, 113, 119, 137, 123, 119, 121, 117, 136, 145, 115, 124, 131, 119, 125, 133, 121, 121, 91, 129, 100, 127, 136, 144, 132, 135, 124, 117, 137, 131, 127, 114, 122, 127, 124, 119, 131, 119, 115, 128, 129, 129, 127, 99, 137, 103, 134, 126, 125, 130, 119, 122, 129, 141, 126, 133, 124, 113, 120, 136, 126, 136, 112, 125, 114, 117, 141, 125, 129, 111, 133, 138, 129, 122, 133, 121, 129, 127, 120, 128, 103, 124, 119, 134, 122, 117, 108, 142, 116, 117, 112, 118, 129, 117, 120, 122, 135, 125, 125, 125, 147, 132, 107, 115, 122, 119, 116, 148, 119, 128, 142, 138, 132, 134, 122, 110, 115, 123, 140, 148, 110, 138, 135, 121, 135, 118, 137, 132, 137, 136, 135, 122, 142, 122, 144, 127, 121, 131, 116, 120, 136, 140, 112, 124, 105, 139, 120, 135, 131, 112, 123, 117, 132, 137, 115, 120, 104, 131, 118, 111, 145, 114, 125, 124, 118, 120, 107, 127, 120, 99, 134, 134, 106, 119, 121, 115, 114, 122, 141, 114, 133, 133, 107, 121, 119, 128, 124, 133, 136, 118, 121, 124, 131, 131, 111, 131, 139, 115, 119, 124, 117, 122, 125, 127, 123, 112, 119, 142, 124, 107, 132, 116, 123, 135, 114, 109, 125, 133, 122, 121, 113, 140, 118, 117, 117, 119, 130, 131, 142, 137, 132, 124, 125, 120, 135, 128, 146, 108, 118, 138, 107, 116, 121, 113, 144, 129, 111, 120, 120, 116, 130, 110, 120, 112, 125, 114, 126, 125, 116, 127, 135, 126, 133, 115, 131, 134, 131, 138, 123, 129, 113, 125, 147, 148, 128, 110, 132, 144, 137, 122, 112, 123, 147, 119, 133, 116, 138, 119, 127, 125, 116, 121, 121, 111, 115, 147, 141, 148, 112, 125, 119, 106, 111, 139, 112, 125, 123, 108, 112, 131, 136, 128, 119, 139, 125, 132, 130, 141, 113, 115, 114, 116, 116, 116, 123, 133, 106, 132, 121, 113, 124, 137, 134, 132, 121, 116, 124, 133, 124, 126, 132, 96, 113, 130, 136, 109, 140, 122, 118, 133, 126, 102, 119, 131, 126, 136, 119, 137, 133, 125, 120, 143, 134, 147, 124, 115, 130, 149, 132, 120, 122, 122, 122, 128, 130, 137, 113, 134, 113, 128, 121, 115, 131, 119, 117, 125, 114, 124, 123, 113, 113, 116, 105, 133, 122, 116, 123, 111, 124, 123, 137, 138, 124, 129, 142, 117, 121, 139, 103, 126, 139, 125, 123, 125, 115, 122, 118, 102, 112, 116, 135, 137, 125, 130, 123, 115, 111, 119, 115, 127, 115, 129, 129, 130, 112, 129, 122, 123, 127, 144, 134, 116, 105, 121, 134, 130, 119, 121, 133, 103, 134, 125, 137, 124, 117, 121, 132, 134, 125, 138, 126, 144, 128, 135, 121, 130, 119, 123, 124, 127, 135, 135, 107, 142, 123, 123, 120, 131, 119, 124, 145, 127, 114, 119, 132, 129, 130, 129, 125, 124, 124, 118, 119, 136, 117, 122, 99, 118, 127, 133, 131, 113, 127, 121, 145, 122, 124, 128, 110, 139, 140, 104, 116, 126, 123, 140, 110, 131, 115, 109, 123, 135, 142, 106, 128, 128, 128, 102, 136, 127, 129, 130, 115, 113, 128, 122, 126, 125, 117, 124, 132, 134, 119, 125, 130, 124, 140, 133, 123, 141, 132, 140, 127, 128, 121, 135, 111, 125, 130, 124, 131, 131, 127, 140, 122, 143, 128, 134, 118, 133, 114, 140, 125, 123, 121, 99, 106, 137, 143, 121, 142, 120, 121, 116, 103, 109, 113, 130, 111, 127, 129, 133, 130, 120, 117, 118, 110, 133, 112, 143, 122, 128, 124, 126, 133, 109, 129, 103, 129, 115, 120, 116, 145, 121, 127, 130, 121, 126, 119, 134, 121, 120, 124, 126, 124, 110, 119, 111, 118, 121, 119, 118, 128, 132, 129, 134, 125, 136, 133, 121, 127, 112, 125, 126, 132, 118, 117, 124, 125, 153, 134, 126, 114, 117, 126, 140, 123, 130, 123, 126, 126, 123, 131, 111, 132, 138, 124, 129, 120, 122, 151, 123, 117, 118, 131, 132, 136, 128, 109, 106, 122, 140, 141, 120, 142, 108, 132, 132, 118, 154, 142, 134, 114, 107, 142, 127, 144, 141, 121, 115, 136, 113, 119, 114, 108, 118, 113, 123, 114, 146, 128, 113, 120, 115, 125, 124, 128, 119, 122, 126, 125, 127, 123, 96, 134, 143, 122, 120, 158, 119, 130, 130, 132, 127, 132, 113, 122, 140, 115, 128, 111, 145, 126, 109, 146, 120, 113, 127, 135, 123, 123, 124, 125, 126, 128, 113, 133, 128, 119, 132, 138, 127, 133, 122, 137, 126, 144, 133, 130, 104, 128, 143, 136, 117, 117, 124, 127, 115, 131, 131, 120, 134, 119, 131, 118, 130, 125, 129, 118, 134, 117, 128, 123, 112, 116, 124, 134, 127, 127, 129, 145, 124, 132, 129, 110, 113, 131, 123, 124, 138, 125, 123, 132, 123, 125, 115, 133, 113, 133, 113, 138, 143, 123, 102, 127, 106, 112, 132, 119, 130, 135, 123, 127, 127, 117, 123, 143, 135, 141, 135, 118, 110, 142, 118, 133, 129, 126, 122, 128, 134, 134, 128, 117, 130, 118, 113, 120, 120, 121, 118, 127, 115, 134, 118, 105, 125, 139, 99, 132, 111, 133, 125, 120, 95, 131, 122, 127, 108, 125, 141, 127, 135, 128, 106, 120, 140, 122, 125, 124, 136, 129, 126, 122, 127, 150, 107, 146, 136, 130, 129, 122, 110, 116, 114, 137, 123, 137, 122, 131, 116, 107, 122, 146, 109, 129, 128, 108, 137, 124, 120, 133, 134, 123, 112, 118, 121, 135, 127, 124, 140, 120, 142, 127, 143, 106, 126, 129, 123, 141, 131, 135, 123, 123, 121, 125, 148, 122, 122, 134, 126, 104, 128, 125, 121, 120, 133, 130, 121, 125, 135, 119, 128, 143, 142, 135, 119, 136, 113, 128, 134, 100, 113, 158, 127, 108, 125, 123, 141, 150, 118, 143, 123, 127, 144, 117, 124, 137, 136, 121, 132, 99, 131, 123, 122, 138, 126, 126, 110, 129, 110, 119, 128, 125, 122, 125, 122, 144, 119, 127, 126, 117, 146, 129, 127, 135, 126, 128, 114, 112, 112, 133, 124, 133, 143, 121, 110, 116, 123, 136, 127, 137, 132, 128, 134, 120, 115, 123, 121, 141, 121, 116, 123, 135, 128, 130, 121, 131, 125, 110, 127, 132, 147, 119, 135, 117, 147, 120, 122, 134, 138, 119, 107, 142, 124, 132, 119, 129, 118, 119, 110, 147, 122, 129, 129, 134, 125, 128, 119, 145, 125, 150, 137, 135, 118, 145, 133, 128, 128, 121, 132, 122, 142, 102, 117, 129, 117, 109, 127, 124, 137, 131, 121, 139, 116, 135, 116, 136, 128, 113, 133, 111, 127, 127, 125, 108, 115, 129, 119, 124, 101, 128, 117, 127, 121, 135, 126, 155, 112, 109, 133, 129, 132, 139, 130, 118, 114, 129, 136, 132, 116, 126, 132, 134, 133, 113, 129, 131, 125, 142, 136, 119, 115, 126, 132, 120, 127, 144, 138, 110, 129, 124, 118, 126, 128, 126, 116, 131, 132, 134, 140, 132, 129, 122, 130, 122, 127, 136, 125, 117, 136, 123, 103, 124, 128, 130, 133, 131, 128, 117, 132, 113, 127, 130, 129, 135, 115, 106, 124, 137, 125, 138, 134, 121, 125, 115, 128, 121, 138, 120, 123, 119, 128, 138, 119, 127, 120, 128, 120, 136, 135, 121, 133, 118, 128, 124, 109, 131, 128, 110, 119, 118, 110, 139, 124, 129, 116, 119, 132, 110, 124, 117, 129, 122, 124, 123, 143, 134, 123, 138, 124, 116, 138, 119, 133, 125, 114, 131, 133, 123, 139, 126, 124, 121, 110, 114, 128, 121, 133, 127, 119, 134, 114, 125, 116, 128, 127, 119, 129, 135, 121, 130, 136, 121, 128, 137, 145, 106, 120, 134, 143, 139, 123, 115, 133, 112, 115, 125, 88, 126, 103, 138, 123, 122, 114, 144, 131, 138, 116, 124, 122, 137, 125, 133, 122, 130, 120, 114, 122, 130, 132, 108, 124, 136, 124, 130, 126, 129, 123, 128, 128, 125, 126, 135, 127, 128, 133, 151, 144, 124, 112, 120, 128, 122, 128, 136, 120, 124, 115, 123, 125, 127, 129, 116, 134, 137, 142, 127, 130, 142, 109, 123, 128, 135, 129, 131, 144, 112, 119, 133, 133, 127, 131, 141, 122, 132, 130, 124, 119, 132, 125, 123, 113, 132, 121, 130, 133, 128, 138, 131, 135, 135, 112, 130, 129, 144, 124, 122, 124, 130, 133, 122, 118, 116, 117, 147, 132, 124, 123, 122, 135, 129, 131, 134, 116, 143, 127, 130, 130, 119, 133, 121, 127, 132, 116, 128, 116, 124, 124, 116, 131, 137, 128, 140, 135, 133, 109, 129, 140, 118, 112, 112, 128, 125, 126, 124, 114, 128, 146, 101, 124, 146, 151, 122, 127, 130, 118, 129, 122, 125, 128, 131, 125, 124, 154, 110, 134, 128, 130, 134, 106, 122, 131, 111, 112, 145, 118, 135, 120, 115, 123, 114, 131, 120, 142, 119, 126, 124, 123, 123, 116, 116, 127, 134, 128, 120, 128, 114, 127, 118, 121, 119, 123, 116, 107, 140, 114, 130, 148, 103, 123, 127, 121, 122, 131, 130, 146, 126, 110, 129, 119, 135, 125, 127, 138, 123, 123, 116, 118, 132, 128, 131, 126, 130, 114, 116, 117, 122, 135, 128, 130, 115, 123, 118, 120, 136, 120, 154, 129, 125, 135, 130, 109, 129, 116, 122, 131, 123, 131, 120, 118, 123, 126, 150, 131, 118, 131, 127, 117, 118, 101, 126, 133, 133, 136, 113, 134, 124, 130, 137, 141, 121, 109, 134, 120, 133, 142, 110, 119, 123, 128, 133, 123, 135, 141, 113, 135, 133, 133, 135, 138, 119, 117, 113, 126, 133, 119, 130, 133, 131, 121, 133, 122, 123, 121, 130, 136, 121, 140, 135, 121, 108, 118, 118, 131, 125, 132, 125, 122, 123, 119, 115, 125, 126, 133, 126, 133, 131, 128, 126, 114, 132, 122, 134, 117, 124, 123, 136, 119, 112, 124, 140, 127, 140, 126, 114, 125, 145, 150, 123, 138, 130, 134, 132, 144, 137, 129, 119, 126, 141, 115, 149, 118, 132, 130, 143, 117, 130, 127, 133, 124, 137, 132, 138, 107, 111, 135, 133, 141, 125, 150, 135, 111, 133, 119, 122, 130, 127, 126, 129, 130, 140, 127, 131, 132, 144, 116, 113, 131, 141, 118, 110, 119, 141, 120, 137, 123, 119, 114, 118, 132, 135, 125, 120, 131, 126, 112, 133, 147, 126, 122, 121, 126, 125, 134, 107, 124, 133, 122, 130, 133, 134, 110, 114, 124, 135, 138, 121, 136, 136, 130, 146, 123, 115, 134, 129, 135, 136, 125, 133, 114, 126, 124, 129, 118, 133, 125, 119, 119, 121, 133, 118, 119, 113, 127, 113, 118, 128, 128, 109, 121, 117, 138, 110, 121, 94, 131, 136, 134, 135, 118, 110, 110, 125, 137, 117, 124, 139, 105, 127, 124, 128, 128, 150, 134, 117, 112, 154, 129, 122, 126, 127, 125, 159, 113, 138, 113, 128, 125, 139, 122, 144, 124, 136, 127, 135, 131, 127, 139, 128, 117, 144, 123, 117, 134, 104, 114, 143, 118, 118, 131, 112, 139, 120, 146, 119, 119, 123, 122, 129, 119, 127, 128, 129, 136, 125, 123, 140, 140, 127, 124, 134, 133, 136, 125, 131, 143, 131, 127, 123, 132, 113, 136, 119, 111, 129, 131, 120, 133, 132, 134, 127, 127, 122, 154, 131, 114, 94, 126, 128, 139, 115, 125, 136, 126, 123, 124, 126, 108, 119, 120, 132, 115, 119, 121, 115, 132, 125, 119, 130, 120, 139, 134, 113, 155, 134, 115, 134, 127, 119, 129, 123, 123, 116, 132, 118, 118, 116, 115, 119, 134, 119, 125, 125, 135, 129, 131, 122, 144, 128, 134, 117, 133, 137, 109, 108, 103, 133, 146, 131, 119, 133, 120, 138, 130, 127, 133, 121, 120, 135, 138, 119, 105, 120, 114, 154, 117, 110, 130, 122, 111, 121, 143, 107, 109, 119, 123, 130, 125, 116, 129, 139, 119, 124, 120, 123, 115, 124, 140, 127, 122, 122, 105, 139, 118, 117, 137, 147, 120, 139, 119, 125, 118, 127, 130, 138, 128, 115, 120, 137, 139, 121, 105, 122, 120, 118, 136, 130, 127, 137, 134, 111, 126, 126, 132, 127, 130, 134, 131, 128, 129, 123, 119, 123, 110, 120, 128, 139, 129, 135, 127, 143, 132, 120, 126, 115, 109, 126, 132, 130, 100, 127, 149, 125, 127, 108, 111, 108, 149, 132, 139, 142, 123, 119, 122, 152, 116, 128, 127, 145, 130, 138, 132, 117, 111, 117, 125, 131, 138, 138, 118, 137, 112, 132, 119, 133, 132, 130, 123, 118, 110, 124, 139, 128, 119, 132, 116, 121, 121, 118, 119, 115, 117, 116, 130, 97, 121, 141, 133, 106, 116, 106, 125, 121, 130, 101, 126, 122, 121, 120, 104, 137, 150, 119, 122, 133, 136, 108, 126, 126, 116, 128, 125, 111, 117, 143, 131, 134, 127, 132, 123, 144, 117, 127, 148, 158, 128, 130, 143, 137, 116, 126, 133, 132, 112, 131, 130, 107, 118, 119, 136, 137, 133, 125, 125, 119, 133, 113, 128, 150, 113, 132, 140, 124, 122, 117, 128, 139, 115, 140, 123, 128, 130, 134, 116, 117, 137, 138, 120, 123, 150, 126, 118, 129, 120, 129, 123, 131, 130, 129, 137, 122, 122, 131, 130, 122, 130, 132, 113, 137, 131, 114, 138, 143, 125, 144, 124, 111, 132, 115, 132, 117, 106, 131, 119, 128, 116, 122, 115, 125, 132, 126, 121, 115, 127, 127, 129, 123, 135, 121, 134, 118, 132, 126, 127, 110, 116, 106, 131, 120, 119, 125, 131, 110, 123, 128, 116, 142, 126, 126, 121, 126, 137, 125, 114, 117, 136, 117, 135, 112, 120, 127, 155, 121, 121, 136, 128, 104, 143, 131, 118, 120, 126, 114, 132, 139, 132, 128, 122, 121, 124, 106, 120, 133, 117, 145, 121, 120, 124, 119, 124, 116, 131, 135, 129, 124, 129, 128, 120, 132, 106, 114, 119, 114, 134, 113, 123, 116, 117, 134, 129, 109, 114, 128, 111, 112, 143, 123, 124, 108, 120, 131, 130, 136, 120, 137, 118, 122, 123, 125, 116, 136, 133, 121, 143, 124, 140, 120, 132, 133, 120, 122, 127, 128, 136, 133, 133, 117, 136, 137, 121, 131, 117, 129, 134, 144, 120, 113, 129, 130, 118, 123, 118, 123, 117, 137, 114, 129, 129, 119, 119, 125, 108, 127, 119, 124, 140, 116, 131, 125, 139, 134, 115, 125, 115, 118, 114, 122, 103, 120, 134, 119, 121, 123, 136, 131, 123, 129, 137, 123, 115, 127, 122, 119, 112, 132, 135, 107, 126, 115, 117, 142, 126, 113, 141, 136, 130, 128, 127, 123, 118, 116, 128, 131, 125, 116, 119, 121, 141, 135, 125, 127, 124, 126, 117, 133, 124, 119, 122, 117, 129, 115, 122, 144, 127, 117, 125, 112, 150, 119, 122, 134, 151, 113, 140, 133, 120, 115, 117, 112, 105, 126, 120, 130, 117, 122, 119, 134, 121, 146, 128, 118, 115, 132, 106, 135, 111, 125, 126, 137, 125, 131, 115, 125, 119, 127, 121, 115, 113, 121, 135, 125, 131, 125, 133, 122, 119, 119, 133, 126, 115, 125, 117, 119, 126, 130, 130, 135, 117, 137, 134, 122, 113, 109, 105, 137, 145, 121, 102, 128, 117, 133, 132, 122, 108, 119, 124, 129, 135, 122, 125, 119, 137, 142, 122, 127, 105, 132, 141, 125, 141, 134, 133, 138, 120, 114, 134, 119, 126, 143, 136, 120, 119, 116, 123, 116, 120, 124, 142, 128, 134, 127, 138, 143, 122, 127, 120, 124, 151, 130, 118, 122, 135, 142, 139, 135, 118, 125, 133, 115, 122, 118, 121, 121, 134, 119, 126, 115, 124, 136, 127, 110, 140, 119, 133, 113, 120, 139, 132, 122, 133, 114, 111, 128, 125, 128, 119, 136, 132, 118, 113, 129, 130, 133, 139, 128, 133, 112, 123, 124, 118, 149, 116, 111, 124, 134, 126, 124, 124, 124, 133, 129, 142, 131, 140, 142, 134, 106, 113, 129, 116, 126, 119, 140, 120, 115, 131, 126, 140, 133, 138, 133, 136, 117, 128, 128, 123, 124, 131, 119, 131, 115, 113, 113, 145, 112, 114, 116, 132, 124, 121, 121, 118, 126, 123, 121, 113, 117, 96, 137, 135, 114, 123, 128, 122, 128, 115, 124, 115, 123, 130, 129, 124, 141, 108, 128, 128, 112, 114, 128, 120, 128, 112, 133, 126, 144, 128, 140, 98, 137, 132, 139, 130, 123, 112, 131, 112, 125, 128, 137, 127, 126, 129, 121, 124, 120, 128, 102, 118, 114, 110, 124, 119, 131, 125, 139, 113, 114, 121, 142, 129, 113, 125, 126, 123, 118, 110, 115, 111, 144, 129, 117, 127, 123, 135, 130, 113, 121, 136, 130, 123, 120, 139, 120, 128, 133, 117, 121, 126, 130, 129, 130, 134, 118, 124, 134, 129, 136, 121, 122, 132, 134, 119, 132, 111, 117, 126, 120, 126, 141, 131, 125, 117, 135, 128, 147, 122, 104, 146, 121, 119, 122, 123, 116, 109, 116, 141, 132, 132, 129, 124, 121, 118, 117, 126, 140, 136, 114, 118, 125, 126, 126, 147, 127, 119, 133, 116, 124, 114, 130, 118, 131, 122, 123, 133, 106, 122, 132, 117, 134, 124, 122, 135, 110, 121, 138, 133, 131, 133, 113, 117, 113, 121, 125, 128, 123, 115, 111, 139, 126, 136, 126, 124, 114, 137, 113, 127, 122, 135, 134, 116, 114, 115, 127, 121, 143, 141, 133, 127, 136, 130, 122, 117, 112, 137, 138, 106, 114, 129, 134, 130, 112, 132, 120, 112, 130, 135, 134, 127, 117, 125, 132, 108, 133, 116, 129, 124, 123, 141, 117, 124, 124, 131, 125, 121, 117, 114, 121, 124, 126, 132, 116, 117, 117, 121, 112, 130, 106, 126, 132, 135, 117, 132, 118, 122, 131, 127, 139, 131, 131, 126, 128, 126, 134, 150, 134, 125, 124, 115, 125, 118, 136, 110, 102, 112, 107, 138, 110, 121, 135, 116, 116, 135, 134, 138, 136, 126, 127, 119, 114, 101, 129, 110, 125, 140, 128, 120, 126, 141, 137, 130, 111, 141, 126, 140, 138, 134, 109, 129, 114, 119, 121, 121, 143, 136, 136, 108, 122, 137, 131, 116, 147, 111, 140, 126, 122, 145, 119, 116, 123, 122, 148, 124, 137, 133, 126, 130, 125, 134, 118, 128, 112, 137, 116, 128, 124, 145, 131, 123, 128, 115, 121, 128, 132, 128, 156, 141, 122, 148, 108, 115, 132, 124, 148, 112, 131, 129, 146, 142, 110, 128, 130, 108, 120, 125, 136, 120, 119, 115, 131, 118, 114, 132, 118, 131, 127, 129, 133, 120, 113, 117, 119, 132, 122, 115, 124, 135, 125, 116, 130, 121, 104, 127, 126, 134, 119, 114, 113, 119, 125, 143, 120, 126, 129, 114, 136, 122, 131, 136, 120, 121, 148, 127, 124, 123, 104, 131, 115, 137, 132, 106, 114, 118, 123, 129, 123, 140, 132, 123, 144, 130, 143, 145, 116, 135, 130, 131, 131, 135, 127, 130, 134, 102, 134, 117, 128, 127, 116, 128, 137, 131, 135, 121, 125, 115, 118, 131, 136, 128, 123, 123, 141, 129, 112, 114, 105, 132, 103, 115, 109, 122, 119, 130, 124, 100, 120, 127, 115, 132, 116, 127, 131, 120, 118, 138, 128, 127, 128, 134, 128, 137, 121, 132, 122, 126, 141, 108, 112, 106, 113, 136, 124, 129, 108, 118, 122, 109, 124, 122, 132, 133, 130, 125, 119, 142, 120, 101, 107, 156, 128, 123, 131, 134, 126, 118, 125, 121, 130, 111, 112, 129, 113, 122, 126, 113, 131, 127, 134, 131, 119, 107, 120, 122, 141, 136, 123, 131, 127, 133, 121, 109, 126, 114, 124, 125, 119, 132, 129, 133, 79, 124, 122, 126, 126, 128, 108, 134, 118, 128, 94, 127, 109, 118, 125, 141, 131, 117, 119, 117, 119, 143, 119, 122, 125, 132, 137, 120, 126, 109, 135, 131, 133, 116, 132, 139, 132, 129, 138, 129, 126, 128, 141, 129, 126, 139, 130, 130, 131, 130, 113, 132, 124, 127, 113, 125, 133, 141, 127, 132, 131, 127, 143, 163, 119, 128, 131, 112, 134, 132, 130, 133, 128, 117, 121, 127, 116, 128, 121, 112, 128, 141, 126, 134, 114, 110, 116, 131, 109, 131, 130, 123, 139, 105, 143, 118, 122, 126, 108, 122, 122, 128, 125, 130, 115, 117, 117, 116, 122, 110, 120, 120, 107, 110, 128, 113, 118, 128, 122, 122, 127, 141, 131, 116, 124, 124, 116, 140, 113, 128, 122, 116, 121, 129, 135, 110, 126, 132, 122, 120, 122, 134, 129, 129, 107, 116, 110, 132, 125, 142, 118, 157, 116, 119, 111, 131, 131, 136, 114, 135, 147, 119, 106, 126, 128, 141, 140, 117, 114, 133, 127, 137, 145, 129, 125, 121, 122, 128, 114, 101, 122, 127, 130, 115, 106, 128, 147, 121, 129, 133, 130, 131, 128, 114, 129, 125, 139, 119, 115, 116, 122, 145, 128, 122, 120, 132, 127, 122, 142, 140, 123, 118, 138, 116, 114, 126, 146, 121, 121, 122, 129, 127, 126, 103, 130, 126, 110, 136, 140, 140, 131, 137, 130, 128, 117, 118, 117, 144, 127, 115, 135, 127, 125, 115, 122, 125, 113, 114, 116, 118, 124, 135, 124, 117, 121, 121, 111, 131, 124, 123, 146, 123, 118, 141, 124, 113, 126, 121, 135, 118, 118, 112, 120, 120, 120, 126, 127, 120, 123, 144, 99, 146, 121, 126, 119, 127, 135, 119, 110, 114, 128, 119, 137, 109, 139, 129, 133, 106, 120, 112, 128, 118, 128, 134, 120, 158, 129, 129, 105, 152, 129, 138, 116, 116, 137, 146, 126, 119, 108, 136, 127, 115, 157, 116, 113, 131, 140, 129, 117, 127, 99, 136, 115, 124, 118, 125, 132, 120, 119, 126, 133, 115, 109, 111, 100, 129, 113, 122, 132, 104, 117, 116, 127, 112, 141, 119, 126, 123, 139, 131, 136, 116, 123, 144, 151, 120, 134, 138, 129, 117, 142, 129, 153, 131, 138, 129, 142, 128, 114, 138, 135, 125, 130, 122, 128, 113, 122, 109, 126, 132, 126, 126, 115, 133, 129, 134, 134, 152, 133, 136, 149, 126, 102, 115, 136, 123, 111, 129, 135, 122, 120, 114, 118, 133, 140, 129, 116, 128, 123, 135, 124, 133, 116, 121, 133, 105, 122, 151, 129, 122, 129, 124, 125, 130, 128, 134, 123, 108, 122, 140, 120, 116, 115, 130, 124, 144, 127, 122, 129, 130, 125, 138, 134, 118, 114, 128, 144, 121, 121, 139, 113, 125, 128, 137, 129, 123, 127, 122, 149, 148, 125, 133, 126, 132, 115, 135, 135, 138, 121, 133, 118, 115, 120, 124, 134, 135, 138, 119, 139, 119, 128, 101, 111, 129, 127, 146, 118, 119, 127, 121, 123, 119, 118, 123, 128, 128, 132, 119, 113, 133, 115, 130, 118, 113, 124, 105, 121, 133, 133, 124, 125, 108, 118, 120, 115, 121, 132, 126, 138, 125, 116, 127, 122, 118, 112, 129, 137, 127, 117, 94, 119, 132, 104, 118, 151, 134, 131, 109, 127, 127, 120, 133, 128, 119, 121, 132, 122, 125, 127, 114, 127, 150, 132, 91, 119, 129, 125, 139, 128, 145, 139, 127, 124, 123, 133, 121, 142, 138, 104, 109, 118, 148, 113, 107, 128, 129, 133, 140, 129, 137, 129, 114, 105, 132, 131, 115, 113, 145, 129, 133, 140, 121, 127, 115, 111, 145, 107, 118, 105, 129, 119, 131, 113, 117, 127, 123, 130, 127, 136, 131, 132, 113, 131, 137, 115, 132, 100, 119, 127, 140, 112, 118, 132, 102, 139, 125, 125, 126, 119, 116, 119, 116, 115, 130, 141, 141, 130, 143, 114, 136, 129, 117, 133, 112, 132, 94, 118, 125, 136, 135, 144, 118, 130, 122, 121, 109, 124, 134, 125, 122, 132, 142, 109, 142, 127, 128, 116, 138, 133, 121, 126, 128, 143, 122, 145, 136, 119, 113, 130, 116, 125, 115, 137, 119, 124, 125, 117, 125, 136, 121, 126, 127, 137, 121, 123, 120, 137, 122, 121, 143, 132, 148, 115, 125, 113, 118, 129, 109, 138, 143, 132, 135, 113, 131, 140, 122, 119, 135, 154, 140, 124, 136, 108, 125, 133, 126, 132, 117, 128, 126, 130, 123, 136, 120, 122, 134, 129, 127, 138, 123, 124, 117, 123, 138, 126, 144, 119, 155, 135, 126, 130, 130, 130, 129, 122, 115, 127, 120, 125, 131, 115, 128, 133, 148, 123, 115, 135, 153, 127, 122, 131, 130, 130, 124, 138, 113, 113, 127, 124, 146, 130, 115, 130, 127, 110, 111, 135, 131, 121, 129, 126, 132, 106, 135, 116, 135, 120, 137, 122, 132, 127, 110, 131, 137, 128, 131, 124, 118, 110, 120, 129, 115, 118, 125, 112, 113, 118, 113, 103, 137, 125, 142, 133, 127, 111, 125, 114, 130, 125, 105, 150, 141, 127, 124, 139, 116, 117, 134, 132, 133, 108, 119, 119, 128, 117, 124, 115, 114, 117, 110, 135, 126, 136, 134, 134, 130, 119, 119, 132, 119, 105, 127, 128, 112, 130, 119, 117, 150, 125, 117, 130, 129, 114, 123, 125, 111, 117, 121, 137, 124, 139, 113, 129, 143, 153, 122, 118, 118, 118, 130, 125, 120, 138, 124, 142, 115, 108, 118, 119, 125, 121, 120, 128, 122, 138, 123, 132, 128, 122, 131, 118, 151, 109, 107, 138, 113, 129, 128, 108, 133, 116, 142, 121, 125, 120, 133, 123, 136, 131, 140, 123, 120, 126, 124, 126, 112, 136, 124, 114, 126, 127, 103, 113, 116, 122, 131, 131, 124, 132, 117, 117, 118, 126, 125, 137, 144, 129, 129, 125, 128, 128, 101, 138, 138, 115, 125, 124, 135, 129, 130, 128, 124, 116, 122, 133, 122, 138, 137, 132, 130, 117, 108, 144, 145, 126, 109, 125, 120, 101, 120, 130, 128, 136, 132, 119, 139, 126, 122, 138, 122, 116, 130, 137, 146, 115, 136, 113, 127, 123, 134, 107, 149, 134, 125, 124, 134, 125, 135, 122, 128, 135, 125, 137, 129, 124, 148, 130, 147, 132, 122, 124, 131, 116, 129, 117, 133, 121, 144, 127, 117, 114, 145, 127, 112, 137, 114, 124, 140, 120, 106, 114, 132, 135, 134, 112, 130, 124, 130, 125, 135, 114, 122, 120, 139, 126, 110, 139, 111, 136, 119, 123, 110, 127, 128, 114, 127, 131, 123, 123, 134, 133, 125, 137, 129, 135, 128, 122, 127, 148, 120, 112, 148, 117, 127, 118, 131, 126, 139, 121, 138, 117, 130, 129, 123, 123, 115, 114, 122, 92, 135, 106, 127, 133, 118, 127, 125, 125, 124, 122, 129, 141, 140, 127, 137, 124, 121, 122, 135, 124, 114, 136, 116, 129, 120, 129, 138, 126, 141, 122, 127, 136, 129, 125, 118, 112, 120, 104, 125, 115, 126, 120, 127, 121, 116, 121, 122, 116, 138, 120, 127, 130, 122, 122, 126, 122, 122, 130, 133, 129, 125, 111, 124, 131, 113, 131, 131, 129, 129, 128, 139, 128, 141, 111, 122, 125, 127, 127, 143, 123, 129, 130, 127, 136, 125, 131, 121, 142, 118, 125, 138, 124, 115, 126, 116, 111, 130, 129, 109, 130, 134, 126, 126, 135, 127, 122, 114, 112, 121, 130, 126, 133, 136, 135, 132, 113, 126, 138, 132, 108, 137, 128, 111, 120, 115, 124, 114, 98, 123, 124, 132, 115, 120, 128, 130, 137, 126, 114, 115, 115, 137, 127, 120, 128, 114, 132, 125, 123, 117, 119, 121, 120, 131, 133, 130, 121, 125, 138, 99, 120, 120, 119, 116, 129, 131, 122, 132, 125, 115, 123, 120, 120, 128, 135, 124, 119, 141, 129, 119, 121, 138, 124, 122, 112, 117, 128, 130, 126, 124, 135, 116, 138, 122, 110, 133, 134, 126, 135, 128, 114, 140, 122, 127, 127, 119, 136, 132, 135, 111, 129, 136, 139, 142, 144, 117, 113, 122, 136, 135, 132, 118, 133, 125, 103, 136, 128, 124, 125, 134, 117, 121, 121, 122, 121, 136, 114, 121, 125, 118, 120, 142, 121, 108, 123, 129, 121, 123, 127, 131, 123, 130, 131, 111, 131, 129, 138, 130, 116, 136, 115, 133, 108, 131, 140, 108, 128, 129, 137, 114, 132, 139, 131, 115, 118, 142, 117, 128, 125, 116, 129, 119, 135, 129, 119, 122, 125, 122, 103, 136, 123, 130, 146, 141, 106, 113, 128, 129, 127, 118, 123, 129, 111, 132, 120, 138, 120, 121, 140, 122, 137, 122, 110, 125, 114, 130, 114, 139, 124, 123, 123, 114, 117, 121, 120, 110, 135, 134, 125, 115, 130, 103, 117, 122, 123, 104, 121, 124, 136, 141, 124, 127, 107, 134, 121, 113, 121, 129, 114, 140, 120, 122, 113, 131, 131, 132, 115, 125, 131, 127, 139, 124, 123, 124, 120, 109, 122, 124, 112, 132, 126, 135, 131, 138, 130, 128, 113, 121, 131, 127, 134, 122, 134, 125, 134, 129, 115, 124, 113, 121, 134, 125, 132, 131, 115, 121, 147, 135, 146, 124, 112, 111, 126, 127, 125, 116, 120, 108, 124, 120, 117, 113, 127, 121, 150, 133, 132, 135, 116, 130, 127, 120, 120, 115, 123, 107, 106, 119, 120, 140, 144, 127, 126, 133, 154, 141, 131, 115, 131, 133, 124, 132, 129, 125, 145, 114, 129, 124, 113, 121, 130, 147, 134, 120, 127, 103, 130, 117, 140, 136, 112, 140, 129, 126, 134, 129, 115, 114, 120, 122, 118, 124, 109, 115, 124, 115, 135, 127, 125, 125, 120, 135, 130, 116, 130, 132, 150, 120, 128, 117, 126, 131, 117, 131, 126, 106, 142, 105, 149, 141, 139, 127, 115, 141, 136, 136, 117, 121, 134, 128, 110, 115, 121, 126, 138, 135, 127, 128, 145, 128, 123, 121, 119, 133, 131, 123, 134, 127, 122, 133, 139, 119, 117, 125, 120, 128, 123, 118, 136, 126, 126, 123, 128, 118, 130, 112, 116, 121, 141, 135, 125, 132, 114, 129, 121, 128, 126, 116, 131, 122, 106, 118, 124, 130, 112, 129, 129, 144, 141, 126, 135, 112, 106, 121, 115, 114, 122, 135, 124, 136, 119, 142, 131, 109, 130, 124, 121, 139, 132, 117, 122, 122, 110, 127, 124, 135, 130, 119, 117, 110, 123, 129, 124, 122, 137, 121, 129, 122, 129, 120, 141, 139, 124, 125, 121, 114, 124, 126, 118, 127, 123, 137, 130, 117, 114, 114, 131, 109, 126, 123, 129, 132, 130, 113, 140, 127, 136, 137, 118, 121, 109, 136, 116, 125, 129, 131, 119, 124, 139, 133, 123, 121, 134, 103, 145, 115, 120, 138, 132, 129, 121, 122, 141, 126, 115, 125, 128, 134, 115, 135, 133, 108, 148, 122, 121, 124, 137, 110, 115, 130, 126, 117, 128, 136, 108, 142, 126, 119, 136, 115, 105, 143, 135, 122, 129, 138, 146, 119, 132, 115, 128, 105, 127, 136, 118, 118, 125, 135, 107, 128, 111, 124, 122, 130, 114, 143, 125, 119, 120, 120, 112, 119, 129, 113, 144, 134, 146, 126, 115, 130, 139, 127, 135, 137, 133, 127, 124, 129, 132, 129, 122, 113, 138, 116, 116, 117, 124, 121, 119, 113, 150, 128, 143, 114, 122, 109, 123, 117, 121, 116, 136, 140, 106, 124, 147, 136, 128, 130, 114, 137, 119, 113, 101, 145, 122, 125, 123, 126, 119, 122, 129, 133, 133, 135, 125, 109, 121, 120, 152, 100, 138, 122, 133, 109, 138, 122, 117, 135, 110, 118, 130, 112, 132, 111, 130, 121, 124, 124, 123, 142, 119, 142, 121, 129, 111, 118, 125, 107, 131, 137, 125, 130, 149, 135, 123, 114, 115, 150, 130, 112, 112, 135, 131, 121, 111, 127, 124, 119, 139, 116, 120, 126, 155, 135, 127, 143, 101, 129, 119, 121, 114, 133, 119, 117, 136, 128, 135, 96, 112, 126, 120, 119, 126, 127, 123, 121, 142, 123, 119, 124, 113, 139, 135, 127, 131, 143, 116, 111, 121, 139, 141, 130, 130, 139, 117, 121, 133, 134, 121, 121, 124, 125, 121, 124, 119, 127, 133, 112, 142, 120, 117, 123, 130, 122, 122, 127, 123, 124, 125, 126, 139, 120, 127, 135, 131, 126, 126, 114, 139, 141, 116, 126, 120, 131, 120, 138, 104, 128, 122, 124, 87, 99, 125, 134, 125, 140, 129, 127, 126, 146, 128, 118, 123, 116, 133, 125, 131, 117, 136, 123, 138, 153, 136, 117, 128, 129, 126, 118, 126, 113, 123, 137, 116, 128, 125, 126, 122, 119, 142, 128, 115, 128, 136, 114, 143, 133, 110, 116, 124, 137, 134, 122, 123, 122, 113, 130, 140, 135, 133, 129, 134, 124, 118, 126, 135, 125, 109, 114, 118, 124, 111, 122, 112, 111, 125, 124, 131, 123, 148, 138, 137, 136, 123, 131, 136, 109, 119, 126, 136, 129, 123, 132, 138, 101, 147, 108, 120, 131, 130, 126, 128, 132, 133, 143, 139, 125, 127, 147, 129, 124, 110, 135, 141, 124, 120, 147, 126, 128, 127, 129, 119, 124, 126, 127, 135, 126, 125, 135, 125, 130, 130, 131, 134, 117, 115, 148, 126, 113, 126, 131, 155, 123, 120, 113, 118, 127, 117, 127, 146, 124, 137, 118, 119, 143, 123, 123, 124, 128, 125, 131, 147, 123, 112, 122, 129, 118, 134, 139, 139, 114, 124, 129, 123, 120, 122, 133, 130, 140, 130, 117, 110, 119, 135, 131, 122, 134, 127, 121, 117, 119, 118, 102, 119, 123, 123, 115, 114, 126, 128, 124, 126, 132, 124, 117, 116, 145, 116, 121, 113, 112, 128, 113, 127, 123, 129, 126, 154, 131, 137, 121, 118, 138, 113, 124, 118, 125, 112, 127, 128, 141, 142, 125, 132, 132, 127, 118, 131, 110, 113, 121, 146, 142, 122, 122, 126, 118, 125, 141, 137, 127, 108, 122, 123, 130, 131, 116, 120, 127, 140, 113, 123, 121, 135, 123, 132, 121, 124, 131, 127, 121, 127, 115, 132, 128, 122, 118, 125, 138, 140, 129, 112, 128, 133, 132, 125, 134, 130, 132, 114, 122, 139, 144, 131, 113, 143, 125, 141, 131, 134, 143, 151, 122, 125, 143, 139, 137, 121, 129, 117, 133, 127, 130, 131, 128, 136, 112, 137, 142, 126, 121, 118, 117, 106, 124, 127, 137, 119, 131, 124, 122, 117, 136, 104, 132, 132, 148, 120, 113, 135, 134, 125, 115, 129, 128, 124, 124, 130, 114, 140, 102, 124, 124, 136, 124, 124, 115, 126, 122, 140, 129, 123, 122, 125, 124, 132, 129, 138, 145, 114, 113, 124, 126, 129, 128, 145, 110, 129, 128, 132, 124, 125, 126, 127, 128, 131, 122, 101, 141, 131, 123, 131, 128, 123, 117, 119, 129, 132, 128, 132, 118, 132, 136, 128, 125, 129, 135, 127, 138, 120, 120, 130, 138, 129, 143, 125, 110, 112, 153, 114, 143, 119, 116, 117, 129, 118, 130, 113, 133, 126, 119, 125, 118, 123, 118, 122, 123, 118, 133, 121, 119, 115, 156, 140, 120, 132, 133, 140, 120, 130, 131, 127, 130, 120, 140, 114, 135, 137, 122, 132, 119, 133, 129, 144, 134, 135, 117, 114, 99, 133, 115, 112, 106, 112, 133, 137, 137, 123, 117, 126, 134, 125, 119, 124, 132, 130, 133, 113, 119, 111, 141, 148, 123, 123, 124, 129, 113, 114, 136, 127, 121, 121, 132, 107, 123, 133, 129, 117, 130, 130, 140, 141, 120, 105, 119, 131, 132, 140, 114, 121, 101, 124, 132, 121, 120, 123, 120, 124, 133, 132, 119, 122, 124, 135, 130, 134, 124, 113, 110, 135, 133, 119, 146, 141, 115, 131, 119, 111, 154, 148, 121, 133, 119, 139, 129, 111, 139, 137, 111, 134, 125, 133, 126, 141, 117, 122, 127, 131, 146, 118, 129, 147, 129, 115, 134, 117, 147, 120, 117, 143, 140, 123, 147, 123, 127, 119, 112, 102, 125, 134, 124, 127, 132, 120, 111, 135, 105, 117, 127, 119, 115, 122, 137, 119, 117, 114, 127, 135, 117, 116, 121, 123, 119, 144, 135, 131, 149, 143, 130, 124, 115, 131, 139, 134, 134, 132, 111, 127, 143, 117, 131, 143, 150, 122, 100, 129, 123, 122, 137, 116, 109, 110, 116, 127, 138, 122, 106, 125, 130, 129, 116, 115, 120, 129, 136, 123, 111, 133, 137, 145, 120, 145, 126, 137, 122, 130, 120, 103, 133, 129, 121, 119, 115, 136, 101, 124, 129, 111, 113, 120, 128, 119, 121, 140, 133, 122, 121, 113, 127, 124, 123, 100, 120, 122, 124, 123, 143, 132, 136, 117, 131, 129, 120, 115, 111, 131, 129, 119, 120, 139, 134, 110, 132, 131, 137, 121, 116, 115, 135, 130, 141, 122, 100, 110, 105, 118, 122, 126, 122, 113, 134, 106, 125, 136, 121, 128, 125, 129, 119, 124, 119, 128, 134, 156, 117, 141, 122, 134, 136, 146, 114, 119, 122, 113, 119, 139, 141, 121, 112, 122, 147, 118, 107, 118, 125, 107, 122, 139, 126, 135, 110, 117, 123, 109, 124, 118, 143, 112, 121, 120, 138, 140, 123, 126, 129, 143, 130, 138, 116, 130, 102, 123, 128, 120, 132, 116, 137, 120, 127, 117, 130, 114, 131, 118, 139, 138, 123, 133, 122, 145, 129, 132, 111, 118, 136, 142, 128, 117, 152, 133, 142, 114, 117, 136, 113, 120, 119, 126, 128, 111, 133, 127, 112, 131, 140, 119, 103, 115, 130, 134, 111, 140, 113, 109, 137, 105, 140, 148, 124, 135, 126, 122, 112, 121, 138, 118, 121, 125, 136, 123, 132, 128, 125, 127, 140, 113, 132, 108, 125, 133, 118, 128, 117, 120, 113, 119, 131, 118, 122, 122, 144, 126, 98, 106, 126, 118, 118, 119, 115, 121, 142, 117, 126, 113, 123, 142, 115, 131, 137, 137, 122, 123, 119, 118, 123, 118, 122, 141, 141, 126, 131, 122, 136, 119, 128, 140, 107, 145, 108, 119, 138, 139, 122, 135, 135, 110, 139, 113, 133, 114, 141, 122, 140, 129, 110, 116, 128, 144, 126, 131, 129, 122, 119, 153, 134, 114, 114, 128, 118, 114, 118, 129, 143, 116, 124, 126, 115, 133, 119, 136, 125, 114, 139, 148, 116, 114, 122, 121, 131, 121, 129, 131, 116, 136, 124, 156, 138, 131, 135, 143, 129, 132, 120, 130, 125, 112, 132, 132, 126, 140, 117, 129, 124, 111, 117, 114, 138, 135, 119, 118, 131, 125, 131, 132, 116, 135, 120, 135, 142, 120, 129, 127, 131, 137, 131, 110, 119, 139, 133, 140, 131, 132, 120, 133, 130, 119, 126, 124, 136, 131, 120, 132, 108, 141, 108, 166, 97, 140, 134, 128, 129, 128, 113, 136, 133, 137, 119, 151, 105, 126, 120, 140, 116, 131, 127, 122, 125, 115, 117, 110, 123, 122, 114, 140, 111, 106, 110, 139, 109, 125, 126, 122, 128, 121, 114, 120, 118, 129, 114, 124, 135, 113, 142, 116, 125, 127, 119, 121, 126, 131, 121, 119, 133, 126, 135, 117, 137, 128, 120, 128, 142, 135, 113, 129, 118, 116, 121, 135, 132, 107, 122, 116, 114, 109, 132, 122, 119, 111, 113, 121, 121, 132, 120, 130, 132, 135, 114, 123, 119, 132, 125, 109, 120, 126, 129, 134, 131, 120, 124, 144, 122, 111, 135, 127, 113, 139, 117, 134, 117, 134, 130, 103, 116, 126, 124, 123, 126, 132, 118, 132, 132, 114, 130, 115, 125, 137, 142, 115, 131, 132, 118, 115, 128, 118, 120, 126, 128, 136, 126, 131, 116, 129, 122, 134, 147, 122, 116, 114, 129, 108, 109, 126, 136, 124, 130, 114, 108, 131, 132, 127, 125, 136, 130, 142, 126, 109, 112, 136, 130, 112, 125, 123, 119, 127, 131, 126, 109, 112, 125, 120, 143, 127, 128, 128, 112, 122, 150, 129, 113, 123, 112, 131, 134, 130, 137, 130, 129, 144, 137, 130, 124, 128, 126, 144, 136, 137, 108, 119, 125, 137, 144, 139, 116, 135, 129, 99, 99, 152, 134, 125, 117, 126, 133, 129, 143, 103, 131, 92, 128, 112, 132, 120, 118, 130, 136, 116, 122, 114, 116, 120, 123, 115, 128, 127, 124, 116, 138, 120, 129, 115, 132, 118, 133, 135, 143, 130, 145, 143, 126, 127, 108, 121, 128, 138, 117, 117, 120, 113, 121, 129, 129, 147, 136, 128, 124, 128, 147, 127, 111, 131, 140, 107, 112, 127, 123, 126, 109, 135, 124, 125, 113, 157, 126, 136, 111, 131, 117, 129, 161, 127, 110, 138, 125, 109, 121, 123, 113, 132, 145, 134, 117, 130, 125, 137, 127, 132, 117, 138, 130, 136, 125, 123, 119, 131, 141, 133, 139, 130, 134, 119, 143, 142, 104, 145, 116, 129, 112, 114, 123, 122, 126, 103, 109, 135, 125, 129, 132, 128, 115, 124, 113, 117, 115, 149, 127, 124, 121, 128, 130, 130, 123, 110, 116, 124, 125, 140, 105, 123, 128, 138, 120, 126, 134, 127, 117, 141, 106, 140, 128, 144, 143, 113, 134, 115, 121, 128, 141, 120, 121, 130, 112, 132, 127, 132, 119, 136, 132, 126, 121, 135, 125, 118, 122, 127, 134, 136, 111, 118, 134, 124, 120, 123, 118, 109, 122, 114, 149, 130, 117, 123, 124, 138, 136, 132, 133, 130, 114, 145, 138, 115, 126, 114, 125, 130, 132, 116, 107, 124, 140, 114, 133, 107, 116, 119, 129, 135, 116, 122, 115, 110, 120, 100, 120, 122, 120, 126, 135, 112, 118, 122, 120, 133, 119, 162, 130, 111, 100, 120, 97, 126, 128, 130, 108, 138, 133, 113, 122, 115, 111, 127, 114, 119, 133, 114, 148, 122, 104, 146, 121, 126, 127, 124, 119, 123, 123, 116, 121, 125, 116, 106, 125, 114, 121, 121, 117, 122, 116, 114, 129, 121, 160, 113, 127, 113, 121, 130, 112, 126, 121, 121, 118, 114, 116, 126, 132, 132, 122, 115, 125, 116, 125, 115, 134, 118, 135, 118, 128, 129, 130, 117, 164, 119, 126, 137, 126, 104, 146, 119, 127, 132, 113, 103, 117, 117, 137, 120, 125, 130, 137, 136, 120, 119, 100, 137, 116, 141, 118, 119, 134, 120, 139, 129, 121, 127, 132, 135, 131, 120, 144, 132, 120, 134, 138, 128, 133, 136, 105, 140, 115, 138, 119, 113, 139, 117, 129, 116, 126, 111, 137, 132, 126, 127, 118, 116, 123, 155, 135, 131, 133, 141, 114, 112, 132, 108, 137, 129, 133, 135, 137, 113, 145, 128, 130, 109, 118, 128, 134, 143, 138, 117, 121, 136, 126, 118, 138, 123, 115, 110, 116, 122, 113, 119, 125, 138, 135, 127, 119, 117, 117, 148, 125, 132, 131, 117, 116, 139, 110, 138, 120, 114, 138, 124, 122, 120, 123, 127, 121, 138, 143, 115, 108, 134, 133, 112, 133, 105, 126, 122, 137, 133, 141, 139, 124, 128, 119, 126, 110, 138, 138, 119, 145, 145, 132, 107, 120, 110, 116, 124, 126, 127, 137, 137, 131, 144, 136, 134, 117, 119, 153, 121, 136, 122, 114, 120, 126, 129, 124, 137, 130, 131, 132, 118, 127, 109, 132, 129, 140, 130, 123, 119, 141, 155, 124, 140, 115, 143, 140, 141, 124, 131, 119, 140, 152, 109, 116, 124, 127, 127, 129, 121, 117, 116, 122, 127, 134, 120, 120, 132, 122, 125, 125, 125, 117, 121, 107, 137, 112, 150, 111, 141, 161, 110, 139, 130, 140, 121, 125, 115, 113, 116, 108, 122, 124, 127, 116, 126, 130, 126, 143, 122, 124, 117, 131, 147, 110, 141, 123, 118, 130, 132, 114, 129, 135, 117, 123, 114, 126, 122, 109, 130, 129, 121, 115, 155, 123, 108, 118, 118, 127, 120, 126, 141, 115, 123, 116, 133, 125, 134, 127, 152, 140, 123, 113, 124, 128, 132, 115, 123, 125, 122, 118, 119, 119, 134, 122, 138, 132, 131, 129, 115, 134, 122, 128, 119, 111, 146, 120, 118, 115, 126, 116, 124, 113, 127, 114, 116, 118, 126, 118, 101, 128, 123, 124, 120, 136, 122, 126, 123, 120, 121, 121, 138, 123, 147, 104, 131, 137, 129, 117, 149, 121, 123, 125, 122, 116, 143, 114, 126, 117, 117, 134, 121, 119, 118, 127, 119, 124, 119, 113, 130, 148, 129, 120, 141, 133, 125, 126, 119, 134, 128, 130, 125, 106, 148, 134, 121, 127, 139, 124, 121, 124, 127, 111, 123, 133, 129, 124, 133, 136, 128, 127, 132, 146, 138, 124, 121, 125, 126, 121, 122, 133, 106, 123, 128, 126, 126, 109, 134, 130, 126, 115, 126, 132, 123, 115, 133, 103, 114, 120, 112, 132, 126, 126, 134, 123, 124, 133, 152, 121, 131, 109, 127, 145, 131, 127, 125, 134, 133, 114, 129, 121, 127, 110, 127, 113, 116, 144, 121, 127, 113, 137, 117, 118, 131, 128, 119, 123, 130, 133, 139, 106, 126, 128, 106, 129, 122, 118, 113, 136, 114, 125, 130, 122, 131, 121, 119, 123, 132, 121, 100, 126, 142, 115, 120, 127, 119, 142, 133, 130, 114, 120, 123, 135, 115, 128, 136, 133, 129, 123, 121, 130, 131, 136, 135, 132, 135, 133, 124, 125, 133, 135, 110, 123, 140, 125, 110, 140, 124, 125, 128, 124, 132, 120, 123, 115, 141, 120, 120, 123, 113, 130, 124, 140, 126, 123, 142, 121, 136, 105, 125, 146, 124, 117, 125, 130, 125, 112, 128, 131, 131, 120, 113, 121, 118, 117, 116, 129, 121, 136, 127, 131, 135, 115, 143, 126, 142, 117, 120, 130, 142, 117, 115, 120, 125, 129, 115, 129, 117, 126, 131, 99, 124, 117, 110, 134, 135, 123, 120, 117, 122, 138, 118, 128, 111, 118, 125, 104, 122, 115, 125, 110, 138, 118, 117, 120, 132, 113, 124, 144, 131, 112, 140, 142, 136, 108, 141, 124, 115, 122, 105, 100, 138, 134, 126, 126, 113, 138, 133, 127, 129, 135, 124, 122, 114, 131, 122, 117, 105, 120, 130, 129, 137, 124, 117, 118, 130, 127, 118, 138, 120, 125, 113, 121, 125, 119, 124, 115, 141, 131, 118, 134, 131, 124, 119, 133, 133, 125, 136, 127, 113, 134, 137, 121, 120, 130, 129, 132, 121, 132, 128, 95, 130, 134, 114, 122, 133, 124, 114, 128, 130, 133, 118, 128, 126, 132, 135, 125, 111, 138, 138, 129, 128, 147, 106, 124, 110, 124, 115, 131, 121, 125, 148, 122, 144, 137, 120, 133, 118, 141, 135, 123, 129, 129, 131, 121, 108, 125, 125, 128, 127, 117, 142, 137, 142, 122, 139, 123, 130, 130, 136, 130, 122, 122, 130, 116, 122, 145, 110, 117, 116, 123, 123, 113, 118, 117, 126, 129, 131, 133, 140, 121, 126, 129, 126, 125, 102, 123, 139, 120, 136, 131, 134, 115, 113, 131, 117, 142, 124, 138, 124, 121, 124, 123, 129, 121, 126, 136, 121, 128, 127, 114, 119, 121, 119, 141, 124, 121, 121, 119, 124, 113, 122, 130, 128, 129, 141, 108, 117, 124, 133, 133, 131, 112, 116, 148, 124, 119, 131, 127, 118, 143, 146, 122, 119, 104, 120, 128, 108, 145, 138, 125, 139, 127, 132, 136, 117, 103, 125, 125, 123, 130, 108, 120, 134, 131, 112, 104, 114, 121, 132, 137, 130, 128, 118, 120, 114, 132, 121, 130, 119, 122, 126, 132, 130, 131, 131, 124, 124, 126, 124, 121, 112, 125, 107, 122, 123, 120, 124, 117, 146, 129, 124, 136, 122, 137, 114, 134, 132, 116, 129, 125, 127, 122, 130, 129, 129, 121, 129, 122, 131, 104, 118, 135, 114, 123, 131, 117, 139, 127, 109, 129, 127, 123, 129, 129, 136, 135, 135, 125, 124, 137, 131, 121, 115, 132, 123, 119, 125, 114, 133, 118, 120, 137, 121, 125, 121, 150, 125, 122, 132, 148, 127, 126, 114, 130, 133, 124, 128, 108, 132, 135, 123, 136, 129, 132, 143, 121, 130, 128, 117, 106, 144, 135, 115, 109, 122, 142, 127, 130, 117, 118, 122, 134, 108, 123, 109, 122, 124, 131, 122, 130, 136, 114, 134, 119, 129, 117, 140, 124, 139, 121, 139, 126, 111, 138, 138, 130, 128, 132, 124, 144, 129, 124, 113, 138, 123, 133, 130, 111, 142, 140, 136, 130, 129, 126, 126, 129, 132, 139, 119, 113, 131, 126, 133, 115, 119, 120, 126, 122, 121, 111, 124, 140, 146, 143, 128, 121, 127, 136, 124, 116, 123, 121, 130, 115, 125, 127, 134, 151, 127, 113, 116, 127, 140, 113, 115, 130, 122, 120, 113, 126, 118, 99, 151, 113, 130, 117, 138, 117, 128, 129, 131, 137, 140, 116, 110, 138, 134, 117, 138, 129, 114, 140, 123, 134, 140, 135, 111, 117, 130, 131, 127, 122, 134, 117, 113, 119, 107, 134, 137, 128, 131, 135, 125, 124, 112, 137, 114, 117, 112, 126, 120, 130, 124, 132, 124, 121, 122, 127, 134, 136, 135, 127, 141, 119, 116, 132, 118, 136, 122, 161, 124, 131, 122, 131, 122, 124, 129, 125, 130, 135, 133, 125, 106, 125, 129, 124, 142, 125, 120, 134, 129, 113, 133, 147, 125, 119, 123, 136, 125, 125, 116, 130, 113, 115, 101, 131, 124, 132, 112, 127, 141, 132, 123, 115, 130, 105, 122, 138, 119, 129, 114, 138, 122, 126, 135, 128, 133, 132, 120, 120, 127, 142, 136, 119, 115, 126, 106, 119, 128, 130, 129, 116, 117, 122, 116, 125, 118, 124, 112, 124, 125, 113, 127, 152, 123, 132, 107, 130, 122, 121, 143, 133, 125, 118, 114, 124, 124, 123, 141, 123, 124, 126, 128, 133, 147, 140, 133, 123, 120, 134, 128, 115, 118, 127, 123, 125, 116, 126, 128, 133, 125, 120, 128, 146, 114, 117, 119, 126, 118, 135, 118, 123, 120, 118, 123, 118, 128, 114, 133, 125, 129, 123, 123, 131, 127, 122, 128, 115, 121, 133, 119, 126, 118, 133, 139, 120, 146, 114, 139, 114, 129, 131, 128, 114, 132, 128, 154, 130, 126, 115, 137, 120, 94, 134, 119, 130, 118, 123, 125, 130, 130, 127, 122, 120, 130, 124, 120, 132, 143, 121, 127, 118, 123, 126, 113, 131, 125, 109, 126, 113, 114, 118, 124, 129, 123, 137, 106, 131, 118, 117, 126, 125, 121, 137, 141, 123, 137, 137, 116, 136, 117, 139, 123, 109, 129, 109, 115, 130, 118, 123, 138, 128, 110, 111, 121, 135, 124, 124, 138, 114, 131, 116, 123, 127, 106, 126, 102, 125, 132, 138, 129, 112, 125, 126, 118, 145, 106, 119, 119, 132, 126, 121, 141, 120, 141, 111, 131, 120, 115, 123, 130, 119, 124, 132, 108, 112, 135, 121, 118, 131, 103, 135, 128, 130, 128, 129, 80, 135, 134, 137, 113, 124, 117, 128, 122, 108, 133, 125, 110, 127, 128, 143, 109, 124, 129, 124, 127, 119, 146, 119, 131, 121, 112, 127, 129, 131, 145, 116, 137, 118, 117, 136, 120, 123, 133, 136, 122, 124, 111, 122, 124, 116, 128, 142, 122, 126, 118, 120, 129, 126, 126, 122, 124, 128, 132, 127, 119, 124, 118, 107, 113, 120, 111, 122, 129, 145, 115, 131, 116, 129, 119, 114, 109, 134, 122, 118, 127, 124, 124, 115, 130, 111, 122, 135, 127, 114, 123, 121, 130, 106, 108, 124, 132, 156, 120, 132, 124, 138, 136, 124, 124, 138, 113, 119, 129, 113, 120, 129, 124, 131, 123, 129, 117, 118, 127, 154, 112, 131, 126, 109, 128, 124, 129, 128, 133, 123, 133, 122, 108, 130, 116, 130, 118, 131, 126, 132, 124, 148, 117, 134, 125, 132, 113, 119, 139, 124, 114, 129, 114, 115, 126, 124, 134, 136, 131, 124, 141, 114, 122, 134, 133, 115, 121, 108, 126, 135, 144, 124, 125, 114, 117, 129, 112, 109, 126, 119, 132, 111, 125, 125, 131, 126, 113, 133, 120, 130, 117, 132, 129, 115, 126, 116, 118, 118, 113, 120, 121, 138, 127, 150, 112, 120, 122, 116, 120, 130, 121, 140, 106, 129, 118, 126, 135, 109, 119, 112, 132, 123, 110, 118, 128, 128, 119, 140, 135, 132, 134, 128, 118, 118, 137, 131, 129, 117, 131, 128, 128, 121, 120, 118, 137, 133, 135, 130, 138, 131, 127, 116, 128, 89, 100, 142, 117, 110, 105, 132, 115, 145, 119, 125, 116, 118, 134, 137, 116, 124, 132, 93, 132, 133, 104, 120, 119, 120, 130, 121, 119, 128, 126, 132, 127, 120, 125, 118, 111, 125, 129, 122, 117, 124, 132, 119, 126, 120, 108, 120, 123, 119, 124, 131, 111, 127, 128, 124, 108, 135, 144, 128, 114, 112, 126, 129, 135, 119, 125, 141, 125, 128, 134, 118, 113, 134, 124, 123, 135, 143, 123, 114, 115, 132, 140, 124, 119, 135, 111, 132, 123, 128, 133, 123, 129, 143, 122, 132, 149, 115, 101, 128, 144, 129, 134, 126, 130, 123, 132, 111, 107, 126, 124, 134, 120, 137, 114, 128, 111, 127, 118, 130, 132, 103, 122, 149, 124, 120, 123, 133, 137, 129, 120, 124, 133, 129, 134, 122, 121, 123, 126, 123, 118, 128, 125, 119, 130, 137, 109, 140, 134, 120, 131, 114, 132, 118, 125, 134, 114, 103, 124, 156, 130, 116, 108, 119, 125, 130, 128, 132, 127, 98, 113, 156, 139, 122, 116, 105, 122, 128, 140, 139, 134, 114, 140, 119, 118, 128, 126, 125, 118, 97, 125, 121, 108, 124, 124, 129, 122, 136, 119, 121, 111, 122, 106, 124, 121, 124, 113, 133, 118, 121, 122, 131, 135, 130, 133, 130, 121, 122, 124, 119, 130, 139, 126, 126, 132, 118, 108, 128, 120, 118, 120, 120, 127, 122, 133, 117, 131, 125, 132, 117, 122, 121, 130, 142, 127, 112, 114, 124, 118, 123, 121, 127, 119, 117, 93, 121, 111, 121, 132, 131, 124, 116, 133, 129, 130, 140, 114, 131, 118, 134, 136, 126, 112, 127, 133, 114, 114, 126, 108, 127, 124, 104, 121, 122, 123, 136, 126, 124, 109, 120, 139, 116, 138, 146, 106, 126, 119, 121, 134, 117, 102, 131, 120, 126, 133, 118, 123, 125, 129, 120, 117, 131, 128, 127, 130, 138, 123, 122, 138, 124, 118, 128, 130, 124, 118, 128, 134, 136, 130, 124, 108, 138, 121, 148, 132, 124, 138, 120, 116, 109, 113, 135, 138, 140, 121, 120, 113, 108, 121, 93, 122, 129, 129, 120, 101, 128, 133, 107, 124, 114, 117, 134, 138, 124, 126, 136, 121, 112, 123, 117, 122, 127, 136, 122, 118, 124, 139, 130, 130, 146, 124, 131, 128, 125, 120, 120, 116, 133, 114, 125, 135, 124, 115, 136, 106, 131, 136, 117, 125, 117, 116, 121, 111, 141, 125, 123, 132, 140, 119, 126, 123, 141, 124, 121, 118, 146, 132, 123, 143, 123, 143, 127, 133, 131, 146, 117, 131, 127, 139, 157, 111, 136, 128, 125, 112, 135, 132, 129, 119, 121, 118, 125, 123, 118, 126, 139, 118, 127, 107, 122, 126, 131, 120, 128, 122, 125, 121, 133, 119, 122, 143, 116, 116, 134, 105, 135, 121, 138, 133, 134, 133, 131, 127, 123, 126, 138, 123, 115, 142, 121, 128, 126, 111, 121, 117, 142, 130, 106, 140, 125, 130, 119, 114, 119, 117, 117, 130, 148, 134, 132, 110, 136, 115, 126, 134, 118, 133, 121, 128, 126, 129, 141, 114, 132, 117, 121, 121, 114, 124, 124, 123, 126, 125, 127, 120, 141, 118, 114, 129, 131, 117, 130, 114, 131, 124, 130, 122, 116, 129, 120, 111, 127, 139, 135, 116, 138, 117, 115, 112, 135, 136, 117, 116, 133, 128, 109, 128, 129, 119, 125, 118, 115, 132, 116, 112, 129, 118, 126, 136, 125, 116, 119, 131, 123, 132, 123, 126, 131, 110, 116, 104, 105, 118, 115, 117, 123, 132, 137, 120, 147, 119, 153, 139, 135, 111, 123, 117, 119, 124, 130, 122, 141, 121, 139, 139, 103, 108, 137, 125, 120, 109, 100, 126, 120, 105, 122, 140, 122, 138, 116, 128, 122, 136, 107, 118, 131, 120, 113, 123, 116, 130, 116, 137, 122, 105, 112, 142, 144, 116, 134, 113, 150, 105, 114, 123, 126, 136, 113, 129, 105, 122, 109, 125, 116, 123, 117, 126, 125, 126, 130, 132, 141, 125, 104, 131, 123, 139, 121, 124, 126, 117, 142, 109, 103, 152, 128, 119, 121, 141, 111, 99, 99, 138, 124, 116, 141, 106, 133, 115, 122, 124, 130, 124, 134, 124, 122, 122, 115, 140, 131, 134, 154, 107, 126, 126, 133, 117, 135, 127, 125, 157, 119, 155, 109, 113, 125, 149, 114, 138, 115, 118, 121, 101, 133, 148, 120, 110, 136, 132, 127, 120, 128, 128, 128, 128, 133, 122, 130, 122, 126, 132, 113, 123, 133, 134, 146, 134, 122, 127, 130, 124, 131, 128, 126, 117, 127, 125, 112, 110, 147, 130, 133, 120, 130, 107, 135, 120, 123, 130, 121, 125, 137, 105, 130, 127, 136, 118, 137, 114, 133, 117, 131, 127, 127, 133, 126, 126, 113, 113, 140, 123, 129, 129, 121, 114, 129, 123, 120, 139, 124, 132, 124, 113, 127, 134, 128, 120, 142, 134, 121, 108, 112, 121, 129, 133, 113, 137, 122, 131, 124, 127, 110, 136, 113, 142, 123, 110, 113, 124, 121, 116, 137, 133, 122, 133, 129, 133, 139, 119, 140, 126, 130, 129, 131, 109, 122, 122, 123, 132, 115, 109, 131, 127, 129, 123, 136, 118, 110, 110, 127, 117, 133, 116, 129, 118, 111, 127, 142, 132, 148, 120, 128, 103, 114, 121, 121, 135, 130, 130, 114, 108, 122, 133, 110, 107, 130, 128, 119, 137, 103, 126, 107, 120, 130, 116, 123, 122, 127, 122, 117, 125, 117, 133, 123, 132, 153, 133, 124, 127, 117, 128, 118, 131, 126, 127, 134, 130, 141, 117, 122, 121, 133, 136, 130, 123, 129, 141, 134, 133, 128, 142, 107, 138, 122, 129, 115, 117, 114, 126, 121, 137, 114, 124, 131, 95, 126, 130, 142, 122, 115, 108, 116, 129, 129, 122, 131, 121, 116, 119, 98, 125, 131, 116, 142, 115, 130, 130, 132, 127, 110, 130, 129, 129, 133, 115, 136, 132, 120, 117, 116, 110, 140, 122, 120, 136, 122, 135, 140, 138, 120, 124, 120, 118, 116, 106, 127, 105, 141, 125, 117, 121, 123, 109, 116, 110, 133, 140, 133, 113, 125, 117, 127, 117, 129, 117, 117, 134, 108, 138, 123, 120, 116, 126, 118, 119, 113, 122, 117, 130, 156, 132, 115, 127, 119, 128, 136, 122, 138, 133, 121, 128, 113, 134, 126, 112, 116, 119, 125, 107, 127, 137, 135, 135, 117, 123, 134, 97, 124, 126, 121, 116, 124, 116, 111, 121, 122, 132, 121, 96, 139, 117, 117, 113, 133, 123, 105, 125, 113, 112, 142, 111, 128, 146, 136, 124, 125, 114, 116, 128, 111, 114, 116, 129, 120, 112, 122, 137, 120, 108, 109, 124, 108, 140, 134, 126, 130, 125, 119, 133, 124, 116, 116, 131, 125, 134, 143, 118, 133, 129, 124, 109, 119, 145, 120, 127, 111, 140, 135, 132, 132, 134, 131, 137, 132, 117, 123, 124, 127, 111, 128, 122, 119, 133, 119, 135, 115, 120, 119, 133, 121, 118, 119, 113, 123, 111, 129, 111, 134, 122, 126, 132, 121, 143, 124, 120, 132, 131, 145, 137, 118, 124, 115, 122, 116, 132, 142, 125, 104, 118, 129, 136, 143, 119, 126, 116, 142, 100, 119, 125, 121, 131, 147, 122, 132, 124, 114, 118, 126, 120, 105, 121, 126, 106, 124, 119, 136, 117, 110, 124, 131, 121, 126, 143, 148, 131, 135, 133, 136, 138, 130, 156, 135, 90, 120, 115, 122, 123, 131, 124, 116, 119, 99, 124, 121, 119, 118, 132, 129, 121, 131, 145, 135, 120, 127, 110, 120, 118, 126, 110, 151, 117, 129, 128, 139, 123, 141, 119, 116, 116, 112, 130, 119, 123, 136, 158, 131, 112, 121, 116, 118, 128, 129, 125, 123, 123, 136, 129, 138, 129, 111, 124, 105, 146, 137, 116, 125, 143, 134, 137, 128, 129, 131, 130, 118, 118, 121, 92, 129, 137, 133, 128, 137, 123, 120, 128, 110, 141, 120, 111, 126, 153, 125, 137, 137, 115, 129, 119, 141, 135, 132, 119, 123, 122, 142, 132, 140, 136, 143, 129, 119, 113, 100, 118, 129, 120, 127, 138, 117, 125, 154, 115, 124, 116, 122, 126, 134, 112, 116, 118, 113, 122, 123, 109, 124, 135, 110, 115, 131, 116, 123, 122, 108, 136, 140, 119, 102, 123, 134, 124, 133, 115, 131, 131, 120, 141, 125, 144, 137, 115, 107, 135, 130, 118, 102, 96, 121, 123, 140, 117, 138, 126, 114, 116, 129, 125, 125, 135, 119, 112, 106, 139, 127, 132, 133, 125, 125, 121, 119, 145, 133, 126, 92, 126, 121, 97, 122, 107, 119, 111, 119, 112, 134, 108, 118, 134, 132, 109, 123, 120, 117, 123, 119, 139, 120, 119, 142, 133, 104, 108, 127, 112, 130, 116, 114, 121, 131, 123, 129, 123, 129, 118, 139, 105, 106, 134, 117, 122, 115, 121, 119, 119, 150, 121, 129, 112, 132, 135, 133, 110, 122, 132, 118, 132, 124, 126, 131, 122, 132, 140, 121, 136, 134, 134, 143, 129, 121, 144, 137, 108, 144, 126, 141, 124, 125, 122, 116, 128, 124, 121, 125, 118, 131, 116, 133, 97, 130, 125, 134, 126, 133, 114, 133, 147, 129, 127, 145, 127, 131, 113, 121, 126, 101, 125, 120, 115, 134, 138, 152, 140, 116, 143, 119, 121, 156, 130, 124, 131, 110, 125, 129, 120, 123, 138, 121, 112, 132, 147, 129, 127, 123, 117, 119, 134, 102, 107, 132, 137, 124, 132, 108, 138, 134, 128, 131, 124, 124, 141, 106, 138, 144, 106, 123, 126, 115, 114, 121, 138, 137, 137, 110, 126, 125, 123, 101, 130, 133, 113, 118, 137, 132, 140, 134, 139, 120, 118, 117, 129, 134, 130, 143, 114, 119, 125, 128, 131, 105, 123, 126, 121, 136, 120, 136, 131, 118, 139, 130, 132, 152, 107, 139, 135, 117, 116, 131, 130, 106, 136, 118, 116, 118, 135, 115, 128, 132, 128, 129, 135, 124, 119, 144, 123, 122, 99, 137, 127, 133, 116, 128, 122, 113, 129, 126, 124, 106, 125, 125, 92, 133, 131, 134, 157, 110, 117, 124, 122, 146, 132, 117, 123, 133, 127, 145, 122, 133, 143, 141, 138, 139, 155, 131, 125, 129, 109, 115, 106, 120, 133, 115, 127, 126, 156, 131, 125, 137, 144, 102, 114, 130, 122, 121, 126, 143, 135, 138, 120, 121, 134, 113, 112, 110, 97, 130, 132, 133, 125, 132, 108, 120, 107, 128, 128, 141, 117, 138, 111, 117, 118, 129, 132, 112, 119, 135, 118, 135, 120, 104, 125, 115, 151, 126, 151, 109, 101, 114, 116, 120, 110, 116, 138, 131, 129, 129, 112, 143, 122, 122, 130, 128, 136, 114, 126, 132, 111, 126, 129, 126, 121, 103, 141, 116, 119, 110, 124, 125, 144, 140, 129, 120, 118, 127, 133, 119, 108, 134, 137, 125, 133, 139, 111, 124, 119, 110, 115, 151, 126, 97, 124, 114, 138, 146, 104, 115, 125, 117, 110, 130, 131, 119, 134, 117, 124, 103, 120, 127, 135, 124, 127, 136, 128, 113, 124, 141, 106, 121, 127, 128, 121, 127, 121, 132, 136, 118, 144, 123, 126, 127, 143, 125, 131, 117, 123, 111, 142, 124, 117, 126, 141, 136, 133, 123, 139, 120, 142, 126, 129, 128, 134, 119, 138, 139, 131, 103, 128, 128, 119, 129, 121, 117, 137, 132, 121, 134, 134, 110, 76, 131, 105, 129, 114, 119, 127, 115, 123, 132, 124, 127, 124, 127, 135, 103, 129, 125, 116, 127, 121, 127, 149, 126, 119, 131, 145, 128, 136, 138, 132, 148, 107, 138, 112, 98, 122, 150, 101, 124, 152, 112, 88, 123, 116, 138, 126, 127, 147, 146, 137, 117, 127, 138, 123, 117, 138, 122, 116, 139, 125, 155, 133, 125, 138, 136, 132, 154, 83, 143, 113, 104, 119, 126, 120, 122, 132, 113, 114, 116, 125, 139, 114, 129, 115, 136, 111, 118, 120, 117, 124, 128, 130, 111, 116, 106, 129, 121, 122, 136, 131, 119, 107, 111, 145, 129, 117, 118, 133, 131, 123, 118, 120, 120, 122, 117, 132, 131, 107, 101, 109, 137, 125, 126, 119, 132, 117, 138, 123, 125, 128, 129, 113, 117, 125, 145, 122, 129, 128, 134, 129, 119, 111, 119, 133, 128, 109, 130, 139, 136, 119, 105, 114, 121, 134, 120, 131, 130, 138, 123, 125, 130, 122, 135, 144, 119, 133, 116, 111, 128, 78, 119, 122, 126, 156, 127, 110, 122, 117, 120, 125, 124, 119, 123, 133, 133, 152, 131, 153, 113, 115, 118, 130, 121, 124, 106, 120, 121, 117, 122, 140, 138, 138, 138, 105, 119, 116, 111, 120, 120, 151, 116, 132, 150, 131, 124, 132, 156, 140, 141, 122, 143, 131, 135, 118, 107, 93, 128, 105, 139, 119, 119, 114, 121, 119, 113, 132, 89, 113, 144, 133, 112, 149, 106, 110, 114, 117, 121, 114, 138, 131, 103, 129, 120, 115, 127, 130, 135, 133, 118, 114, 120, 125, 130, 107, 118, 137, 132, 127, 138, 131, 124, 122, 136, 143, 132, 125, 128, 144, 88, 133, 119, 126, 142, 120, 102, 135, 136, 125, 137, 127, 124, 118, 106, 141, 130, 126, 109, 121, 122, 133, 122, 129, 123, 129, 132, 131, 120, 115, 111, 125, 115, 136, 114, 136, 109, 106, 112, 113, 124, 113, 105, 143, 118, 125, 119, 122, 116, 126, 122, 127, 124, 126, 119, 120, 130, 129, 125, 133, 116, 113, 132, 100, 139, 115, 117, 108, 112, 117, 121, 123, 109, 140, 148, 125, 118, 118, 116, 127, 126, 140, 129, 126, 134, 126, 136, 102, 133, 132, 95, 112, 133, 138, 151, 107, 131, 123, 123, 125, 129, 140, 121, 121, 123, 115, 130, 117, 125, 126, 117, 120, 126, 123, 106, 126, 119, 126, 123, 120, 104, 125, 122, 112, 116, 130, 126, 110, 134, 116, 126, 124, 127, 109, 118, 131, 105, 111, 105, 124, 111, 125, 117, 133, 134, 113, 113, 128, 124, 112, 105, 135, 138, 120, 125, 113, 136, 127, 134, 134, 141, 134, 104, 118, 131, 140, 132, 135, 124, 148, 120, 114, 155, 115, 127, 128, 125, 119, 114, 118, 137, 118, 145, 126, 133, 126, 125, 110, 122, 143, 129, 136, 122, 121, 122, 129, 123, 123, 114, 118, 103, 108, 132, 127, 116, 131, 125, 122, 123, 128, 111, 135, 118, 128, 134, 112, 120, 145, 135, 127, 145, 117, 130, 106, 136, 107, 139, 130, 117, 138, 88, 104, 134, 132, 119, 115, 134, 117, 115, 116, 115, 127, 110, 141, 107, 146, 121, 111, 129, 138, 122, 116, 121, 104, 127, 128, 111, 126, 136, 120, 132, 149, 140, 122, 116, 146, 128, 130, 117, 133, 114, 130, 122, 120, 112, 131, 140, 121, 120, 118, 135, 129, 112, 130, 132, 138, 117, 132, 112, 134, 142, 130, 124, 133, 123, 118, 135, 137, 143, 110, 118, 102, 114, 111, 123, 134, 117, 141, 135, 106, 116, 121, 115, 114, 113, 140, 121, 134, 119, 124, 111, 138, 133, 119, 133, 135, 142, 135, 128, 123, 119, 111, 111, 66, 142, 126, 121, 128, 124, 134, 140, 134, 116, 141, 108, 128, 139, 116, 158, 129, 138, 146, 123, 129, 116, 128, 127, 148, 128, 120, 148, 134, 129, 135, 119, 108, 125, 111, 129, 118, 119, 136, 153, 124, 107, 135, 128, 120, 153, 115, 127, 122, 120, 141, 128, 116, 120, 127, 143, 117, 141, 143, 126, 116, 118, 137, 121, 130, 127, 110, 132, 131, 114, 122, 117, 125, 118, 135, 113, 121, 121, 130, 107, 128, 128, 128, 115, 133, 126, 100, 111, 123, 125, 76, 136, 132, 115, 130, 128, 133, 116, 123, 94, 114, 126, 120, 135, 120, 140, 126, 116, 126, 99, 126, 126, 108, 132, 129, 134, 131, 129, 140, 128, 128, 122, 122, 147, 148, 118, 121, 142, 118, 125, 129, 133, 147, 112, 128, 98, 134, 145, 120, 130, 118, 119, 108, 103, 139, 127, 122, 131, 138, 138, 112, 117, 122, 145, 118, 116, 134, 131, 116, 141, 127, 127, 137, 117, 140, 131, 141, 128, 135, 130, 122, 122, 128, 127, 129, 116, 133, 141, 124, 125, 134, 138, 119, 132, 115, 106, 138, 125, 134, 131, 132, 137, 140, 138, 139, 133, 126, 112, 102, 126, 127, 141, 121, 132, 136, 135, 129, 127, 125, 113, 129, 118, 116, 129, 116, 119, 123, 115, 130, 133, 131, 125, 121, 120, 89, 106, 130, 124, 125, 117, 120, 127, 115, 135, 126, 129, 134, 122, 113, 115, 136, 136, 146, 132, 129, 126, 126, 136, 112, 137, 121, 122, 120, 125, 121, 133, 129, 136, 115, 126, 120, 135, 115, 122, 117, 124, 123, 125, 101, 120, 137, 106, 110, 122, 121, 130, 121, 123, 123, 130, 128, 107, 132, 114, 118, 118, 134, 144, 118, 130, 122, 128, 121, 142, 116, 151, 126, 131, 126, 125, 139, 124, 115, 143, 123, 129, 119, 119, 162, 133, 123, 112, 119, 117, 136, 129, 125, 134, 114, 110, 120, 125, 129, 132, 120, 121, 137, 124, 120, 124, 128, 121, 119, 134, 109, 124, 147, 127, 114, 116, 122, 122, 116, 143, 121, 117, 122, 120, 110, 143, 122, 132, 134, 134, 141, 138, 104, 115, 136, 131, 132, 119, 141, 121, 132, 129, 123, 109, 123, 118, 108, 123, 116, 128, 129, 128, 128, 126, 120, 136, 124, 135, 110, 142, 115, 121, 121, 126, 116, 93, 112, 137, 137, 143, 136, 124, 128, 119, 123, 137, 128, 123, 133, 123, 129, 108, 138, 136, 124, 136, 130, 127, 113, 149, 136, 122, 129, 115, 132, 124, 140, 111, 121, 126, 127, 129, 117, 114, 121, 108, 142, 119, 121, 104, 132, 107, 118, 111, 135, 144, 116, 127, 115, 112, 126, 124, 137, 133, 123, 122, 116, 123, 152, 117, 127, 129, 102, 128, 130, 141, 134, 136, 124, 120, 128, 132, 121, 104, 106, 113, 144, 143, 117, 135, 147, 142, 115, 152, 125, 121, 115, 118, 136, 121, 131, 140, 122, 121, 116, 130, 131, 117, 159, 118, 144, 116, 113, 116, 130, 122, 121, 113, 134, 143, 114, 124, 118, 111, 127, 110, 143, 125, 119, 119, 147, 145, 127, 130, 125, 125, 123, 107, 114, 126, 113, 136, 132, 125, 121, 124, 130, 107, 121, 120, 127, 124, 115, 110, 127, 97, 119, 103, 107, 137, 129, 146, 119, 137, 126, 136, 110, 124, 123, 125, 121, 123, 128, 131, 129, 128, 117, 140, 123, 126, 129, 115, 111, 127, 127, 122, 120, 129, 112, 126, 97, 128, 131, 137, 124, 109, 114, 104, 133, 124, 109, 135, 126, 128, 125, 151, 125, 98, 140, 135, 115, 104, 113, 126, 121, 131, 122, 136, 119, 108, 124, 138, 105, 140, 127, 116, 119, 126, 114, 127, 121, 150, 133, 114, 120, 119, 129, 130, 124, 122, 116, 135, 127, 100, 136, 116, 116, 129, 130, 119, 117, 123, 127, 126, 151, 125, 137, 139, 121, 125, 127, 133, 116, 124, 115, 131, 145, 127, 133, 143, 136, 104, 123, 112, 107, 119, 123, 118, 122, 123, 145, 105, 118, 134, 137, 126, 129, 118, 118, 146, 115, 129, 126, 102, 138, 126, 123, 125, 129, 135, 124, 124, 135, 131, 141, 113, 104, 132, 120, 116, 105, 132, 109, 124, 130, 129, 125, 124, 133, 134, 131, 151, 129, 115, 120, 112, 114, 137, 138, 131, 115, 118, 110, 127, 120, 120, 150, 157, 124, 145, 135, 133, 127, 119, 125, 128, 125, 129, 121, 111, 129, 120, 127, 133, 134, 149, 118, 127, 126, 121, 125, 124, 136, 115, 121, 104, 133, 127, 147, 145, 129, 106, 120, 119, 115, 111, 114, 133, 131, 121, 133, 136, 132, 114, 119, 122, 125, 109, 127, 126, 135, 108, 137, 134, 124, 119, 120, 117, 110, 135, 140, 122, 134, 94, 118, 130, 126, 106, 109, 127, 119, 127, 112, 117, 121, 119, 120, 126, 115, 112, 110, 135, 123, 119, 114, 117, 132, 127, 112, 121, 124, 117, 123, 113, 121, 133, 129, 146, 142, 133, 107, 108, 140, 131, 111, 146, 127, 118, 135, 131, 122, 101, 112, 120, 141, 116, 109, 135, 114, 141, 120, 118, 130, 141, 125, 138, 133, 122, 125, 119, 109, 108, 121, 146, 134, 130, 126, 119, 129, 119, 125, 129, 120, 118, 133, 136, 136, 145, 116, 137, 142, 113, 118, 130, 130, 105, 108, 115, 125, 102, 121, 126, 122, 113, 104, 120, 129, 125, 132, 142, 124, 129, 114, 138, 141, 111, 126, 134, 132, 131, 130, 121, 125, 135, 128, 114, 129, 131, 132, 135, 129, 109, 123, 123, 130, 125, 112, 113, 126, 128, 123, 110, 117, 129, 119, 111, 117, 124, 127, 134, 103, 133, 107, 119, 125, 119, 127, 113, 126, 125, 118, 131, 144, 131, 123, 138, 116, 128, 121, 140, 115, 123, 139, 133, 148, 108, 111, 118, 124, 131, 126, 121, 103, 144, 128, 139, 143, 136, 107, 128, 118, 114, 132, 126, 126, 132, 113, 115, 116, 134, 128, 117, 111, 110, 119, 105, 143, 137, 128, 123, 126, 128, 144, 140, 136, 114, 117, 138, 113, 106, 146, 118, 100, 99, 128, 131, 125, 130, 120, 142, 117, 118, 117, 109, 131, 131, 126, 128, 99, 122, 116, 133, 119, 133, 104, 126, 105, 111, 146, 123, 135, 119, 114, 132, 122, 132, 128, 124, 125, 139, 128, 125, 149, 123, 122, 132, 126, 127, 117, 109, 125, 135, 128, 120, 127, 117, 110, 127, 112, 126, 116, 158, 124, 114, 122, 117, 125, 118, 111, 126, 115, 120, 127, 108, 133, 120, 128, 122, 118, 137, 149, 118, 135, 121, 128, 126, 132, 100, 130, 166, 115, 124, 142, 121, 123, 130, 130, 123, 141, 147, 126, 128, 137, 117, 109, 105, 134, 135, 126, 121, 109, 105, 107, 135, 120, 119, 125, 125, 142, 117, 107, 122, 132, 120, 144, 116, 121, 117, 145, 116, 98, 117, 143, 155, 135, 119, 116, 130, 122, 135, 143, 129, 116, 133, 126, 111, 117, 133, 136, 124, 122, 126, 109, 122, 128, 139, 119, 129, 128, 128, 137, 116, 137, 130, 120, 123, 115, 138, 105, 124, 126, 133, 135, 131, 126, 115, 144, 116, 116, 121, 105, 110, 133, 124, 110, 121, 114, 128, 119, 113, 122, 152, 125, 113, 124, 127, 117, 120, 132, 124, 133, 128, 126, 117, 117, 101, 122, 123, 126, 111, 132, 125, 119, 117, 128, 126, 129, 101, 120, 124, 117, 130, 132, 118, 106, 120, 122, 130, 114, 127, 143, 121, 114, 129, 139, 129, 127, 137, 130, 127, 137, 145, 125, 140, 127, 123, 108, 133, 143, 132, 125, 122, 111, 118, 129, 121, 129, 128, 117, 136, 119, 122, 121, 121, 134, 122, 129, 110, 105, 118, 128, 127, 111, 132, 131, 112, 133, 116, 108, 120, 126, 132, 131, 109, 124, 111, 132, 113, 113, 127, 121, 135, 132, 119, 121, 117, 133, 123, 136, 128, 136, 121, 124, 134, 113, 140, 116, 128, 106, 128, 129, 124, 123, 149, 119, 123, 146, 132, 110, 128, 127, 132, 134, 111, 127, 116, 128, 121, 123, 124, 130, 112, 134, 127, 127, 131, 132, 127, 131, 142, 127, 121, 138, 132, 117, 111, 135, 134, 114, 124, 124, 125, 135, 121, 131, 118, 114, 124, 103, 133, 114, 123, 108, 127, 130, 143, 110, 122, 115, 117, 120, 140, 140, 130, 117, 117, 133, 120, 138, 122, 124, 117, 118, 133, 128, 125, 134, 127, 131, 116, 110, 124, 115, 134, 138, 112, 117, 108, 149, 116, 134, 133, 128, 106, 122, 131, 109, 135, 125, 113, 112, 115, 130, 144, 130, 116, 116, 124, 131, 139, 121, 144, 119, 134, 121, 145, 117, 128, 122, 107, 119, 134, 112, 120, 137, 122, 123, 131, 130, 120, 139, 125, 122, 118, 130, 129, 124, 124, 141, 121, 145, 130, 115, 134, 142, 147, 142, 123, 105, 115, 132, 121, 116, 129, 135, 124, 124, 131, 131, 132, 137, 110, 118, 119, 133, 135, 108, 139, 131, 113, 127, 107, 131, 124, 132, 114, 116, 129, 112, 127, 135, 134, 137, 117, 133, 135, 119, 128, 119, 116, 129, 125, 126, 134, 131, 132, 122, 142, 118, 123, 140, 130, 110, 103, 122, 115, 134, 144, 129, 129, 126, 123, 133, 122, 122, 139, 122, 126, 117, 131, 123, 122, 126, 141, 117, 136, 137, 130, 133, 128, 128, 138, 113, 124, 138, 135, 115, 117, 153, 152, 128, 135, 123, 124, 113, 122, 125, 136, 127, 118, 142, 123, 107, 128, 123, 117, 128, 140, 123, 123, 140, 126, 135, 114, 126, 104, 130, 109, 123, 126, 121, 122, 121, 124, 128, 134, 140, 137, 139, 109, 110, 129, 116, 133, 109, 124, 127, 111, 145, 123, 134, 141, 124, 139, 124, 125, 113, 118, 127, 135, 113, 122, 123, 136, 117, 116, 129, 122, 119, 124, 130, 141, 136, 126, 121, 123, 121, 131, 136, 126, 119, 124, 124, 111, 124, 128, 131, 127, 120, 135, 117, 123, 127, 119, 133, 115, 116, 117, 141, 129, 128, 151, 131, 110, 132, 135, 120, 116, 141, 113, 124, 127, 128, 125, 125, 122, 129, 129, 118, 114, 117, 121, 113, 126, 134, 118, 127, 114, 129, 128, 115, 120, 136, 112, 131, 111, 127, 121, 133, 133, 118, 124, 122, 136, 133, 115, 131, 144, 135, 119, 125, 133, 137, 118, 129, 112, 119, 132, 129, 131, 127, 120, 121, 116, 121, 115, 101, 123, 132, 114, 130, 131, 131, 117, 129, 129, 131, 112, 130, 109, 127, 114, 121, 114, 123, 120, 135, 125, 122, 122, 124, 129, 130, 117, 122, 133, 128, 132, 130, 130, 142, 121, 126, 128, 125, 119, 134, 128, 128, 130, 130, 133, 128, 130, 125, 123, 127, 131, 121, 111, 122, 123, 123, 128, 121, 135, 116, 133, 122, 129, 124, 136, 125, 121, 141, 146, 144, 127, 128, 128, 135, 131, 125, 116, 129, 138, 131, 137, 138, 126, 129, 124, 137, 139, 114, 131, 137, 121, 124, 136, 129, 111, 145, 134, 122, 136, 148, 137, 119, 137, 116, 117, 137, 118, 130, 117, 127, 120, 137, 111, 127, 121, 118, 116, 121, 129, 120, 135, 104, 147, 117, 120, 139, 141, 135, 123, 108, 111, 140, 130, 135, 126, 122, 132, 123, 125, 136, 119, 115, 114, 131, 104, 138, 119, 137, 100, 124, 124, 134, 143, 131, 128, 145, 124, 131, 149, 122, 125, 120, 123, 126, 122, 132, 117, 132, 132, 115, 126, 125, 138, 119, 112, 123, 127, 122, 126, 128, 132, 129, 147, 130, 124, 128, 114, 134, 135, 112, 129, 133, 133, 110, 131, 125, 137, 107, 137, 129, 122, 125, 126, 113, 151, 120, 136, 127, 129, 115, 140, 129, 130, 117, 122, 114, 127, 135, 126, 119, 116, 126, 120, 129, 116, 118, 124, 125, 124, 121, 131, 126, 127, 127, 141, 126, 126, 123, 113, 128, 139, 127, 110, 134, 125, 128, 120, 117, 128, 107, 137, 128, 101, 140, 123, 120, 117, 134, 129, 117, 139, 131, 121, 108, 116, 122, 120, 129, 120, 120, 127, 124, 109, 137, 124, 131, 137, 120, 132, 127, 133, 102, 137, 120, 128, 109, 129, 116, 119, 102, 114, 125, 125, 117, 117, 140, 115, 130, 132, 117, 128, 119, 137, 123, 122, 144, 127, 108, 111, 112, 133, 114, 140, 139, 124, 117, 133, 121, 140, 112, 110, 127, 119, 122, 161, 159, 102, 128, 115, 107, 107, 131, 121, 127, 155, 124, 132, 131, 123, 146, 137, 106, 117, 110, 118, 139, 131, 124, 130, 121, 125, 131, 138, 131, 137, 143, 132, 142, 134, 129, 139, 118, 121, 135, 127, 130, 122, 115, 123, 120, 125, 129, 112, 145, 123, 106, 105, 136, 127, 120, 119, 127, 130, 130, 128, 136, 141, 142, 132, 124, 120, 138, 127, 142, 125, 126, 111, 144, 148, 110, 128, 134, 120, 124, 133, 135, 121, 123, 135, 148, 131, 125, 121, 126, 131, 114, 133, 133, 116, 119, 130, 144, 126, 128, 99, 122, 110, 123, 142, 129, 113, 115, 139, 122, 128, 130, 141, 122, 107, 122, 133, 124, 124, 122, 135, 124, 141, 138, 127, 122, 130, 115, 118, 145, 132, 109, 128, 128, 133, 131, 138, 99, 140, 126, 128, 108, 121, 130, 118, 127, 139, 134, 135, 138, 133, 115, 121, 113, 110, 123, 120, 136, 132, 125, 125, 121, 142, 122, 124, 140, 129, 123, 114, 126, 134, 140, 139, 124, 129, 102, 153, 116, 127, 119, 120, 108, 120, 127, 116, 144, 119, 131, 114, 126, 124, 134, 103, 129, 121, 146, 136, 128, 114, 125, 117, 115, 127, 138, 123, 124, 141, 99, 116, 113, 123, 140, 132, 127, 117, 138, 138, 129, 133, 131, 115, 118, 129, 143, 118, 136, 145, 124, 119, 120, 125, 137, 106, 130, 128, 128, 110, 117, 150, 114, 131, 117, 115, 125, 131, 124, 138, 132, 113, 135, 121, 105, 123, 118, 111, 132, 119, 114, 122, 121, 124, 106, 117, 132, 127, 128, 140, 117, 123, 117, 111, 128, 109, 119, 119, 118, 135, 117, 124, 122, 127, 130, 114, 109, 132, 116, 127, 129, 116, 128, 127, 120, 127, 129, 117, 105, 98, 105, 135, 133, 121, 133, 124, 112, 136, 132, 118, 126, 133, 137, 123, 111, 127, 131, 120, 116, 118, 132, 123, 119, 127, 112, 129, 136, 116, 127, 128, 122, 123, 132, 143, 126, 131, 122, 124, 122, 132, 120, 108, 133, 117, 116, 126, 123, 113, 132, 111, 123, 146, 124, 134, 122, 116, 120, 135, 116, 129, 120, 128, 114, 120, 141, 111, 111, 120, 117, 140, 99, 113, 121, 132, 108, 113, 124, 145, 105, 121, 123, 125, 121, 136, 131, 122, 121, 122, 129, 123, 103, 135, 130, 127, 96, 127, 127, 129, 148, 128, 132, 133, 125, 126, 106, 132, 123, 116, 132, 124, 129, 110, 114, 141, 160, 116, 119, 144, 122, 127, 124, 131, 146, 128, 120, 120, 134, 136, 130, 132, 136, 146, 140, 137, 133, 116, 143, 121, 124, 122, 131, 146, 123, 134, 129, 135, 132, 153, 107, 123, 128, 128, 132, 143, 125, 122, 126, 128, 131, 120, 134, 126, 113, 118, 130, 124, 138, 139, 118, 122, 111, 138, 118, 143, 127, 139, 127, 120, 124, 125, 119, 126, 136, 127, 116, 144, 118, 111, 108, 138, 118, 119, 108, 128, 113, 127, 112, 143, 117, 128, 127, 121, 141, 134, 134, 121, 136, 148, 126, 131, 122, 116, 118, 131, 128, 112, 142, 127, 120, 105, 112, 120, 112, 125, 126, 113, 123, 123, 123, 125, 130, 138, 120, 123, 129, 110, 124, 118, 118, 104, 124, 137, 119, 122, 138, 120, 120, 130, 117, 127, 145, 114, 126, 127, 130, 117, 132, 124, 129, 127, 145, 138, 143, 114, 135, 124, 140, 126, 134, 126, 122, 124, 112, 126, 117, 122, 128, 137, 124, 133, 119, 120, 107, 126, 138, 136, 122, 121, 125, 128, 127, 122, 131, 120, 137, 124, 126, 122, 123, 128, 142, 120, 114, 127, 129, 112, 109, 146, 133, 125, 147, 111, 128, 107, 125, 122, 123, 123, 129, 128, 134, 103, 127, 123, 122, 116, 129, 117, 147, 104, 139, 113, 128, 117, 113, 123, 114, 122, 125, 119, 134, 138, 126, 138, 134, 112, 137, 136, 136, 122, 123, 126, 110, 130, 129, 128, 148, 136, 119, 129, 127, 131, 118, 122, 125, 101, 117, 144, 118, 105, 121, 113, 131, 115, 150, 144, 111, 112, 120, 110, 135, 127, 116, 117, 130, 106, 128, 114, 114, 122, 132, 119, 137, 118, 125, 117, 115, 135, 145, 151, 127, 131, 135, 104, 124, 135, 115, 126, 122, 123, 127, 120, 116, 131, 129, 121, 136, 127, 134, 132, 113, 117, 132, 142, 115, 130, 115, 122, 122, 126, 118, 130, 132, 115, 132, 126, 120, 122, 129, 96, 120, 127, 130, 120, 115, 148, 120, 128, 112, 137, 140, 132, 113, 116, 132, 132, 132, 103, 126, 135, 125, 122, 140, 127, 132, 144, 135, 118, 135, 131, 125, 125, 133, 119, 127, 133, 135, 124, 121, 125, 142, 130, 119, 121, 106, 152, 124, 130, 116, 124, 120, 121, 125, 147, 134, 134, 127, 133, 123, 113, 130, 128, 127, 123, 137, 124, 118, 129, 115, 130, 141, 136, 131, 147, 127, 119, 125, 132, 137, 119, 128, 139, 147, 121, 112, 123, 137, 127, 121, 118, 119, 124, 127, 131, 130, 121, 126, 122, 130, 122, 131, 114, 138, 127, 130, 128, 123, 135, 110, 122, 130, 116, 109, 147, 124, 129, 120, 111, 135, 106, 116, 128, 124, 139, 119, 116, 119, 129, 135, 118, 156, 119, 126, 129, 112, 113, 148, 146, 130, 112, 118, 111, 118, 124, 130, 115, 127, 120, 129, 115, 132, 120, 135, 118, 138, 130, 112, 121, 123, 115, 130, 118, 129, 122, 126, 123, 130, 119, 147, 130, 135, 135, 129, 131, 146, 120, 115, 120, 126, 119, 124, 138, 133, 129, 117, 119, 142, 120, 128, 111, 111, 111, 114, 133, 116, 116, 125, 137, 142, 113, 140, 127, 118, 137, 121, 120, 136, 120, 117, 113, 110, 117, 113, 145, 119, 116, 127, 116, 132, 116, 119, 157, 121, 122, 139, 140, 128, 130, 132, 120, 109, 114, 121, 135, 136, 111, 127, 129, 119, 132, 104, 138, 113, 144, 127, 119, 111, 120, 129, 126, 144, 122, 144, 135, 128, 122, 133, 121, 132, 111, 114, 121, 133, 118, 138, 114, 119, 140, 144, 117, 136, 121, 132, 106, 130, 126, 119, 122, 136, 119, 140, 128, 122, 119, 134, 137, 126, 119, 141, 130, 130, 133, 124, 125, 133, 109, 104, 115, 115, 132, 114, 137, 126, 110, 130, 137, 109, 125, 123, 140, 119, 121, 113, 128, 143, 134, 130, 109, 131, 116, 125, 112, 141, 117, 131, 124, 127, 139, 110, 131, 122, 144, 142, 130, 115, 138, 127, 123, 126, 123, 112, 116, 126, 126, 133, 127, 126, 121, 120, 120, 126, 132, 113, 121, 130, 108, 115, 126, 131, 114, 134, 132, 125, 129, 152, 134, 119, 121, 148, 121, 109, 126, 142, 128, 138, 148, 131, 145, 126, 129, 131, 127, 141, 128, 152, 125, 128, 137, 145, 109, 130, 129, 137, 124, 134, 128, 118, 110, 132, 140, 114, 133, 131, 120, 116, 129, 123, 155, 130, 114, 134, 126, 122, 137, 129, 122, 136, 134, 116, 137, 128, 121, 131, 124, 123, 115, 128, 146, 120, 138, 132, 142, 133, 129, 130, 113, 119, 122, 122, 134, 112, 115, 124, 141, 115, 109, 134, 128, 123, 125, 114, 119, 140, 123, 143, 120, 127, 117, 117, 93, 146, 133, 117, 129, 121, 124, 126, 124, 107, 131, 122, 115, 141, 126, 133, 127, 119, 126, 129, 122, 127, 127, 116, 117, 125, 141, 140, 114, 134, 125, 127, 133, 144, 119, 100, 121, 112, 116, 124, 108, 112, 123, 141, 127, 121, 108, 124, 146, 107, 123, 157, 134, 128, 134, 109, 116, 138, 117, 119, 134, 136, 109, 126, 103, 110, 144, 120, 138, 121, 110, 124, 138, 125, 132, 122, 118, 119, 123, 116, 135, 122, 109, 112, 133, 106, 142, 119, 131, 140, 130, 113, 141, 121, 113, 112, 123, 131, 119, 113, 128, 126, 142, 136, 121, 105, 141, 121, 125, 114, 133, 132, 153, 109, 120, 127, 112, 124, 131, 122, 126, 135, 134, 121, 106, 124, 123, 131, 110, 127, 151, 111, 120, 140, 121, 122, 143, 140, 134, 106, 128, 122, 130, 111, 126, 137, 133, 135, 119, 117, 122, 114, 121, 119, 123, 125, 111, 133, 141, 111, 126, 131, 133, 133, 113, 114, 123, 129, 118, 147, 111, 130, 131, 157, 145, 120, 128, 128, 136, 126, 115, 121, 145, 132, 128, 129, 141, 116, 160, 115, 150, 128, 125, 128, 126, 138, 126, 126, 117, 101, 116, 138, 122, 134, 121, 122, 126, 118, 127, 121, 124, 130, 128, 99, 134, 142, 141, 119, 113, 120, 121, 128, 131, 114, 131, 123, 123, 107, 132, 111, 108, 141, 110, 125, 130, 136, 128, 130, 141, 137, 125, 151, 105, 132, 137, 121, 122, 119, 110, 113, 133, 137, 130, 126, 119, 133, 127, 134, 111, 132, 104, 119, 124, 112, 117, 127, 139, 94, 120, 132, 123, 129, 112, 128, 131, 136, 124, 136, 118, 129, 121, 123, 122, 147, 141, 120, 126, 121, 126, 127, 136, 129, 131, 121, 126, 135, 112, 112, 147, 99, 131, 118, 144, 123, 135, 111, 127, 125, 130, 145, 128, 131, 112, 133, 127, 130, 119, 140, 111, 129, 105, 124, 123, 94, 119, 126, 125, 119, 148, 108, 126, 116, 126, 110, 116, 149, 130, 113, 122, 132, 136, 119, 117, 111, 132, 117, 122, 130, 138, 134, 123, 134, 119, 119, 131, 102, 124, 95, 123, 116, 120, 145, 139, 124, 134, 116, 151, 125, 127, 121, 135, 121, 128, 127, 127, 111, 110, 123, 112, 128, 137, 136, 126, 128, 93, 129, 135, 125, 127, 118, 131, 122, 96, 135, 130, 137, 100, 122, 125, 133, 123, 133, 143, 118, 119, 126, 127, 125, 124, 131, 116, 128, 121, 121, 142, 125, 116, 120, 132, 133, 120, 122, 132, 126, 129, 120, 121, 126, 122, 127, 127, 129, 136, 137, 120, 133, 131, 116, 121, 109, 143, 138, 127, 156, 123, 141, 122, 139, 111, 121, 117, 129, 124, 120, 117, 126, 109, 117, 148, 151, 129, 125, 137, 143, 129, 121, 132, 125, 127, 110, 128, 124, 124, 117, 120, 130, 131, 112, 123, 115, 88, 148, 124, 123, 119, 125, 137, 124, 131, 130, 123, 137, 127, 123, 130, 130, 118, 129, 120, 132, 129, 118, 123, 123, 115, 139, 154, 146, 140, 115, 115, 132, 124, 117, 138, 134, 118, 131, 119, 120, 106, 124, 127, 138, 125, 106, 118, 122, 142, 113, 160, 124, 130, 119, 114, 126, 127, 153, 137, 114, 116, 125, 146, 133, 123, 131, 120, 117, 125, 123, 119, 128, 107, 113, 118, 110, 111, 110, 128, 111, 121, 139, 138, 119, 125, 129, 114, 128, 147, 114, 110, 125, 124, 130, 125, 134, 125, 101, 128, 118, 132, 130, 138, 126, 135, 124, 121, 129, 117, 111, 117, 143, 106, 134, 120, 131, 121, 125, 137, 124, 123, 125, 113, 123, 110, 119, 111, 137, 125, 121, 138, 115, 114, 141, 135, 123, 133, 121, 128, 117, 119, 122, 134, 112, 120, 122, 127, 106, 130, 128, 132, 130, 135, 120, 128, 123, 120, 152, 127, 115, 115, 123, 113, 109, 129, 136, 138, 114, 133, 118, 130, 129, 118, 95, 120, 130, 145, 122, 108, 143, 135, 131, 132, 140, 117, 125, 132, 142, 112, 119, 127, 134, 128, 121, 124, 120, 128, 114, 119, 127, 134, 132, 117, 130, 126, 109, 118, 111, 115, 132, 126, 128, 144, 129, 142, 118, 119, 113, 119, 114, 126, 122, 132, 119, 137, 121, 164, 121, 112, 121, 141, 131, 128, 128, 109, 111, 135, 131, 141, 130, 131, 120, 122, 140, 122, 109, 133, 132, 118, 131, 125, 117, 128, 122, 126, 154, 131, 110, 105, 127, 137, 134, 119, 123, 121, 122, 139, 138, 105, 124, 120, 104, 136, 125, 107, 127, 138, 141, 109, 128, 111, 118, 113, 120, 112, 107, 124, 119, 140, 131, 129, 122, 119, 147, 126, 150, 112, 128, 138, 129, 144, 130, 119, 113, 121, 121, 107, 139, 142, 144, 146, 127, 123, 135, 125, 113, 111, 115, 140, 123, 139, 101, 120, 112, 141, 117, 111, 126, 133, 140, 113, 121, 94, 123, 132, 117, 114, 121, 132, 137, 120, 136, 112, 120, 128, 126, 133, 128, 146, 119, 133, 124, 110, 144, 117, 127, 120, 139, 115, 112, 142, 138, 107, 107, 136, 117, 108, 125, 119, 122, 148, 109, 108, 137, 129, 108, 135, 137, 115, 126, 143, 142, 112, 119, 131, 122, 141, 119, 112, 135, 140, 128, 125, 120, 141, 125, 114, 136, 135, 144, 104, 114, 135, 116, 121, 119, 132, 119, 121, 123, 125, 109, 137, 120, 137, 114, 122, 117, 127, 123, 116, 134, 135, 125, 125, 135, 123, 117, 119, 136, 131, 145, 124, 126, 131, 136, 131, 124, 122, 112, 124, 117, 129, 122, 124, 122, 125, 124, 120, 113, 125, 128, 128, 141, 132, 133, 123, 114, 131, 142, 109, 109, 119, 118, 121, 133, 129, 143, 143, 132, 122, 126, 125, 106, 122, 117, 132, 117, 117, 117, 122, 117, 122, 146, 132, 106, 128, 127, 103, 127, 130, 139, 115, 125, 121, 134, 122, 112, 111, 140, 123, 129, 124, 115, 104, 130, 135, 124, 114, 107, 128, 121, 119, 131, 118, 133, 126, 135, 143, 117, 129, 114, 124, 133, 136, 126, 119, 152, 130, 134, 123, 140, 137, 131, 135, 110, 118, 129, 130, 113, 120, 138, 145, 115, 118, 114, 138, 133, 124, 118, 120, 121, 120, 134, 135, 134, 115, 141, 131, 98, 129, 124, 125, 127, 132, 104, 123, 135, 125, 120, 128, 96, 134, 136, 116, 120, 126, 122, 106, 145, 120, 128, 139, 121, 145, 126, 114, 112, 131, 120, 134, 123, 129, 129, 120, 115, 114, 124, 142, 127, 107, 136, 125, 122, 141, 128, 93, 134, 114, 122, 125, 118, 127, 138, 153, 133, 128, 124, 122, 142, 142, 122, 135, 131, 120, 119, 120, 150, 121, 144, 122, 116, 122, 113, 120, 121, 116, 126, 127, 138, 118, 140, 124, 117, 133, 128, 118, 115, 134, 127, 127, 120, 127, 127, 131, 134, 116, 122, 118, 117, 118, 124, 99, 106, 140, 118, 126, 118, 123, 112, 126, 133, 139, 112, 133, 124, 127, 118, 115, 119, 118, 118, 128, 107, 116, 126, 124, 106, 131, 129, 120, 125, 110, 128, 110, 131, 133, 141, 115, 121, 120, 121, 114, 133, 113, 137, 135, 123, 124, 145, 134, 112, 129, 123, 119, 140, 130, 128, 135, 120, 120, 133, 135, 128, 119, 119, 134, 132, 122, 124, 134, 110, 125, 124, 112, 120, 148, 128, 126, 134, 131, 118, 135, 120, 117, 129, 109, 142, 138, 127, 129, 119, 125, 132, 125, 124, 131, 105, 114, 121, 124, 110, 120, 129, 114, 121, 132, 134, 140, 118, 130, 130, 124, 113, 138, 119, 125, 111, 107, 121, 128, 121, 136, 129, 145, 124, 128, 114, 134, 124, 126, 133, 126, 129, 120, 139, 120, 129, 121, 119, 120, 143, 107, 137, 108, 150, 118, 116, 119, 146, 125, 139, 124, 119, 130, 133, 117, 110, 148, 138, 129, 111, 112, 120, 139, 132, 94, 131, 131, 111, 119, 126, 141, 131, 131, 129, 128, 120, 122, 139, 138, 118, 113, 124, 130, 127, 126, 111, 111, 119, 115, 134, 127, 120, 118, 97, 131, 109, 119, 125, 139, 127, 127, 129, 135, 143, 128, 117, 136, 139, 118, 120, 119, 120, 125, 122, 127, 122, 134, 124, 126, 128, 118, 129, 129, 122, 117, 127, 142, 138, 129, 116, 125, 132, 122, 134, 110, 141, 130, 138, 134, 124, 122, 119, 119, 133, 129, 116, 134, 125, 142, 124, 117, 120, 119, 131, 119, 113, 138, 126, 126, 143, 114, 136, 119, 108, 112, 125, 140, 129, 113, 136, 129, 131, 122, 118, 117, 139, 132, 132, 113, 125, 115, 124, 125, 120, 129, 135, 114, 116, 126, 129, 131, 134, 142, 132, 129, 129, 135, 126, 121, 112, 129, 117, 119, 141, 115, 134, 122, 110, 111, 127, 112, 127, 126, 120, 140, 123, 120, 119, 138, 126, 118, 129, 119, 122, 126, 130, 136, 144, 136, 121, 120, 112, 146, 120, 113, 120, 138, 127, 115, 125, 115, 109, 122, 151, 138, 123, 150, 122, 130, 119, 138, 123, 118, 121, 119, 127, 131, 112, 124, 115, 127, 135, 128, 134, 133, 124, 123, 141, 124, 124, 123, 125, 135, 122, 134, 120, 140, 133, 126, 123, 122, 133, 124, 115, 139, 124, 137, 126, 139, 124, 139, 131, 108, 119, 129, 149, 128, 144, 137, 104, 120, 122, 120, 123, 130, 122, 119, 112, 121, 113, 115, 112, 128, 120, 130, 137, 134, 122, 135, 119, 116, 122, 111, 128, 132, 123, 125, 120, 136, 115, 132, 132, 129, 117, 130, 118, 130, 114, 120, 128, 127, 140, 113, 127, 115, 112, 121, 122, 133, 134, 142, 130, 131, 114, 123, 128, 115, 110, 136, 135, 131, 129, 147, 124, 122, 133, 114, 125, 120, 123, 135, 97, 113, 138, 146, 126, 126, 130, 119, 142, 111, 115, 121, 117, 121, 126, 116, 139, 111, 134, 138, 109, 113, 124, 110, 114, 138, 108, 134, 143, 118, 134, 121, 116, 130, 119, 135, 110, 113, 122, 121, 121, 131, 112, 147, 106, 121, 127, 138, 121, 127, 114, 122, 133, 130, 121, 139, 133, 140, 121, 120, 135, 120, 131, 121, 143, 122, 140, 118, 130, 146, 130, 119, 123, 119, 123, 131, 125, 123, 122, 115, 127, 134, 132, 135, 119, 109, 126, 126, 134, 127, 126, 127, 124, 127, 123, 113, 113, 118, 137, 122, 117, 133, 129, 132, 133, 152, 130, 122, 119, 112, 129, 117, 120, 128, 137, 134, 96, 136, 123, 138, 109, 127, 126, 128, 111, 116, 124, 127, 150, 145, 156, 129, 129, 116, 125, 126, 112, 126, 122, 115, 129, 126, 127, 111, 124, 134, 133, 130, 116, 134, 126, 124, 123, 133, 114, 121, 138, 124, 121, 123, 121, 110, 146, 132, 130, 120, 130, 114, 124, 128, 121, 134, 118, 120, 134, 135, 119, 128, 104, 124, 123, 111, 123, 136, 118, 125, 126, 145, 136, 120, 130, 108, 117, 124, 129, 120, 111, 126, 117, 149, 131, 143, 104, 111, 136, 134, 120, 130, 130, 125, 99, 131, 121, 126, 126, 125, 134, 131, 123, 130, 120, 124, 126, 132, 122, 109, 140, 129, 117, 128, 132, 131, 120, 113, 147, 121, 141, 126, 112, 130, 122, 148, 126, 143, 121, 126, 136, 127, 110, 129, 136, 126, 131, 128, 152, 132, 119, 125, 137, 141, 128, 119, 135, 134, 116, 117, 116, 138, 130, 128, 111, 113, 127, 135, 130, 129, 139, 125, 115, 143, 124, 112, 114, 136, 125, 142, 130, 128, 157, 137, 111, 130, 122, 130, 115, 124, 114, 128, 129, 123, 141, 136, 135, 121, 127, 134, 130, 127, 123, 130, 114, 138, 116, 133, 105, 123, 128, 136, 130, 115, 125, 125, 108, 119, 128, 132, 121, 122, 123, 149, 128, 130, 116, 113, 117, 134, 131, 136, 130, 133, 142, 119, 124, 125, 142, 124, 147, 118, 119, 117, 125, 119, 137, 132, 121, 119, 107, 114, 110, 152, 135, 107, 151, 127, 114, 133, 118, 129, 105, 121, 108, 135, 128, 122, 128, 141, 125, 138, 123, 126, 136, 116, 110, 137, 130, 135, 130, 128, 117, 131, 120, 128, 103, 128, 131, 121, 138, 117, 124, 119, 121, 135, 142, 130, 125, 140, 116, 118, 120, 132, 123, 125, 120, 113, 135, 116, 132, 111, 149, 141, 114, 126, 114, 125, 114, 137, 130, 131, 126, 131, 132, 113, 116, 113, 136, 123, 114, 128, 127, 119, 127, 124, 110, 123, 124, 123, 123, 129, 120, 128, 111, 119, 134, 124, 105, 115, 129, 143, 136, 101, 118, 132, 110, 128, 126, 131, 118, 127, 111, 115, 133, 112, 121, 116, 130, 97, 127, 126, 132, 126, 118, 131, 132, 119, 133, 123, 143, 114, 127, 129, 144, 126, 100, 128, 129, 124, 128, 129, 148, 126, 126, 127, 138, 129, 141, 112, 109, 102, 120, 116, 133, 117, 111, 119, 116, 123, 116, 120, 125, 142, 121, 126, 125, 137, 126, 125, 112, 136, 123, 143, 145, 128, 136, 108, 147, 138, 129, 120, 138, 113, 135, 137, 96, 118, 119, 113, 132, 119, 148, 136, 109, 125, 129, 129, 122, 142, 145, 138, 116, 119, 123, 119, 143, 129, 106, 120, 112, 145, 117, 135, 118, 134, 96, 133, 114, 133, 110, 134, 153, 119, 93, 130, 117, 128, 133, 130, 125, 131, 132, 114, 140, 106, 147, 120, 117, 108, 122, 122, 125, 110, 130, 119, 113, 131, 131, 127, 127, 137, 119, 131, 130, 140, 130, 135, 116, 122, 122, 132, 110, 120, 131, 127, 117, 134, 144, 130, 130, 109, 121, 125, 116, 128, 136, 123, 136, 131, 128, 106, 150, 137, 133, 131, 133, 133, 110, 124, 128, 126, 123, 124, 127, 102, 131, 134, 112, 130, 116, 134, 157, 130, 125, 114, 119, 117, 120, 148, 137, 132, 124, 144, 122, 113, 123, 132, 133, 124, 123, 118, 126, 126, 127, 120, 115, 128, 132, 103, 123, 119, 136, 127, 115, 144, 121, 133, 113, 125, 141, 121, 123, 118, 111, 128, 129, 113, 134, 132, 122, 123, 121, 135, 129, 116, 137, 130, 114, 112, 139, 112, 121, 119, 113, 133, 132, 118, 123, 135, 123, 132, 117, 122, 114, 128, 110, 116, 130, 102, 127, 104, 130, 124, 115, 113, 103, 130, 128, 119, 133, 116, 136, 132, 136, 145, 129, 93, 135, 110, 119, 126, 126, 123, 112, 126, 115, 117, 115, 123, 119, 134, 113, 134, 133, 122, 119, 120, 124, 120, 117, 134, 113, 133, 127, 127, 117, 115, 112, 113, 113, 136, 123, 125, 134, 123, 115, 123, 108, 109, 130, 136, 126, 158, 111, 131, 127, 124, 128, 129, 149, 93, 122, 114, 126, 119, 135, 132, 129, 127, 111, 138, 116, 116, 127, 114, 115, 130, 120, 133, 123, 107, 137, 117, 123, 137, 122, 92, 131, 115, 139, 124, 137, 143, 111, 128, 129, 127, 116, 112, 135, 128, 123, 116, 153, 122, 126, 119, 139, 128, 126, 135, 132, 131, 135, 106, 129, 118, 129, 126, 119, 86, 125, 120, 115, 121, 96, 120, 115, 115, 131, 126, 122, 110, 115, 169, 161, 140, 122, 149, 144, 125, 112, 117, 107, 115, 133, 135, 124, 139, 130, 118, 127, 117, 139, 122, 118, 103, 132, 130, 145, 130, 118, 103, 144, 130, 131, 142, 126, 122, 127, 115, 134, 123, 126, 136, 112, 118, 131, 132, 111, 125, 128, 133, 129, 126, 132, 125, 138, 140, 120, 145, 106, 137, 129, 125, 128, 119, 130, 107, 135, 132, 123, 122, 123, 125, 126, 143, 123, 137, 119, 116, 128, 114, 142, 147, 129, 148, 124, 109, 134, 117, 120, 126, 122, 109, 122, 120, 106, 113, 128, 143, 121, 123, 123, 146, 115, 132, 107, 128, 114, 100, 117, 108, 114, 111, 114, 116, 153, 191, 111, 114, 133, 138, 122, 122, 127, 134, 130, 117, 116, 105, 141, 134, 126, 144, 118, 130, 140, 122, 124, 129, 149, 114, 129, 137, 123, 145, 112, 119, 128, 137, 122, 127, 126, 120, 133, 132, 122, 145, 149, 121, 126, 117, 106, 119, 141, 123, 98, 118, 138, 115, 125, 151, 108, 126, 121, 132, 137, 127, 127, 113, 129, 118, 122, 123, 121, 120, 118, 119, 121, 129, 115, 116, 148, 132, 127, 133, 122, 133, 126, 124, 124, 125, 130, 140, 130, 134, 126, 119, 126, 130, 115, 131, 121, 117, 128, 139, 118, 133, 137, 113, 127, 127, 135, 125, 113, 128, 120, 124, 132, 125, 138, 132, 109, 132, 139, 122, 134, 122, 126, 127, 124, 123, 123, 129, 125, 128, 124, 144, 118, 123, 117, 116, 125, 118, 128, 112, 129, 123, 129, 139, 133, 117, 122, 122, 138, 107, 100, 141, 117, 120, 108, 125, 152, 134, 122, 110, 132, 147, 114, 124, 132, 118, 129, 135, 127, 120, 123, 112, 128, 146, 147, 124, 141, 130, 121, 119, 111, 122, 138, 129, 124, 140, 135, 117, 127, 114, 138, 137, 135, 121, 125, 138, 133, 130, 137, 126, 130, 112, 118, 112, 130, 140, 124, 128, 123, 121, 127, 131, 129, 128, 114, 135, 131, 124, 116, 119, 119, 129, 119, 127, 125, 132, 120, 146, 130, 127, 133, 137, 122, 132, 154, 131, 118, 118, 112, 128, 135, 131, 114, 134, 125, 116, 117, 119, 103, 122, 119, 121, 137, 125, 122, 147, 130, 124, 129, 131, 127, 122, 125, 132, 126, 153, 125, 134, 129, 108, 127, 115, 133, 105, 128, 120, 139, 120, 136, 141, 137, 127, 143, 141, 115, 121, 103, 118, 106, 129, 115, 127, 119, 143, 116, 132, 131, 140, 121, 104, 122, 114, 120, 136, 118, 136, 110, 127, 143, 114, 130, 132, 131, 141, 134, 130, 126, 151, 139, 134, 113, 121, 123, 131, 134, 126, 124, 128, 120, 130, 138, 112, 122, 131, 130, 117, 129, 133, 121, 132, 108, 117, 114, 116, 128, 122, 131, 125, 116, 115, 118, 118, 122, 129, 115, 121, 118, 119, 133, 121, 140, 121, 130, 114, 140, 130, 122, 122, 148, 127, 119, 115, 129, 124, 120, 144, 137, 113, 129, 131, 116, 122, 132, 109, 132, 129, 122, 128, 125, 119, 131, 128, 134, 126, 119, 130, 136, 143, 135, 121, 114, 112, 146, 126, 111, 124, 118, 141, 120, 133, 119, 122, 143, 120, 157, 118, 124, 126, 151, 115, 126, 121, 137, 141, 138, 119, 144, 130, 118, 119, 111, 121, 132, 136, 140, 121, 121, 123, 110, 134, 120, 116, 129, 120, 122, 137, 121, 121, 137, 123, 114, 141, 123, 116, 118, 107, 122, 118, 128, 126, 126, 137, 134, 132, 120, 123, 124, 123, 127, 125, 121, 116, 125, 107, 115, 113, 133, 121, 137, 134, 142, 138, 117, 119, 138, 115, 119, 145, 105, 131, 128, 127, 111, 132, 138, 133, 119, 117, 115, 113, 155, 111, 106, 142, 128, 118, 132, 111, 134, 127, 139, 118, 138, 126, 128, 122, 110, 141, 115, 134, 117, 134, 123, 112, 125, 113, 129, 123, 121, 114, 115, 132, 132, 119, 119, 131, 115, 114, 122, 142, 127, 116, 136, 146, 113, 122, 129, 117, 130, 132, 120, 104, 126, 133, 128, 119, 134, 104, 135, 125, 136, 126, 127, 123, 113, 122, 126, 121, 120, 116, 139, 124, 129, 145, 150, 133, 125, 128, 127, 137, 116, 117, 93, 121, 133, 119, 137, 103, 106, 126, 114, 133, 138, 114, 142, 132, 126, 121, 111, 142, 141, 115, 119, 123, 103, 126, 136, 117, 144, 106, 127, 141, 114, 122, 128, 121, 110, 109, 121, 96, 128, 103, 133, 124, 119, 111, 133, 125, 132, 125, 130, 143, 109, 124, 128, 116, 123, 117, 131, 125, 119, 132, 120, 136, 112, 126, 133, 133, 117, 130, 124, 144, 122, 130, 123, 108, 127, 119, 125, 139, 144, 118, 126, 138, 137, 113, 119, 108, 117, 124, 141, 114, 126, 140, 134, 113, 138, 119, 120, 97, 117, 125, 124, 139, 106, 133, 111, 127, 134, 119, 135, 124, 135, 118, 118, 132, 106, 110, 130, 112, 143, 131, 133, 126, 129, 125, 123, 133, 118, 117, 143, 127, 128, 118, 113, 103, 111, 135, 129, 134, 122, 129, 141, 122, 108, 121, 138, 123, 122, 121, 108, 131, 135, 122, 119, 125, 123, 128, 117, 132, 133, 121, 107, 121, 150, 129, 130, 128, 130, 111, 134, 128, 127, 133, 122, 115, 125, 129, 125, 152, 125, 121, 134, 113, 111, 132, 123, 148, 127, 118, 131, 122, 123, 122, 131, 126, 121, 124, 134, 123, 134, 117, 122, 140, 116, 106, 139, 128, 122, 109, 115, 124, 119, 127, 125, 134, 128, 134, 127, 128, 144, 126, 135, 141, 143, 122, 110, 109, 127, 109, 101, 125, 119, 126, 110, 113, 122, 128, 123, 132, 113, 124, 120, 115, 130, 122, 144, 115, 131, 124, 117, 139, 135, 128, 131, 132, 127, 113, 112, 118, 106, 137, 130, 126, 109, 115, 130, 110, 144, 130, 143, 135, 125, 107, 124, 124, 120, 123, 133, 120, 141, 128, 117, 135, 144, 114, 138, 135, 138, 120, 129, 135, 102, 134, 137, 124, 131, 108, 124, 132, 131, 126, 124, 121, 130, 131, 135, 136, 132, 134, 143, 114, 123, 133, 134, 132, 135, 112, 130, 113, 115, 135, 137, 123, 130, 132, 126, 130, 138, 134, 120, 149, 138, 128, 139, 124, 132, 124, 132, 106, 139, 131, 140, 138, 127, 131, 131, 123, 117, 137, 126, 122, 121, 127, 142, 120, 132, 131, 135, 122, 133, 108, 132, 133, 120, 120, 125, 120, 129, 124, 118, 122, 130, 140, 143, 120, 116, 116, 121, 113, 137, 112, 107, 123, 135, 116, 117, 127, 124, 130, 125, 128, 135, 118, 119, 124, 121, 128, 131, 131, 137, 127, 126, 133, 125, 112, 134, 109, 107, 122, 134, 126, 124, 117, 136, 138, 121, 127, 126, 119, 127, 135, 135, 107, 122, 142, 131, 132, 134, 129, 111, 123, 130, 118, 125, 122, 130, 131, 120, 120, 128, 123, 126, 118, 135, 128, 124, 138, 125, 127, 134, 126, 124, 110, 112, 126, 132, 125, 115, 134, 125, 123, 122, 112, 141, 133, 147, 116, 134, 111, 125, 118, 119, 135, 145, 106, 144, 145, 122, 138, 119, 152, 129, 138, 118, 143, 123, 139, 127, 114, 136, 115, 104, 136, 109, 131, 136, 124, 143, 138, 135, 127, 114, 143, 131, 110, 128, 138, 161, 127, 123, 119, 124, 125, 111, 129, 116, 114, 113, 125, 125, 135, 111, 117, 129, 124, 138, 113, 116, 119, 126, 112, 124, 120, 100, 120, 136, 127, 144, 122, 143, 129, 104, 146, 115, 122, 147, 149, 117, 110, 124, 126, 125, 123, 110, 131, 125, 137, 134, 124, 126, 130, 129, 114, 136, 140, 117, 122, 131, 118, 116, 116, 111, 150, 119, 126, 112, 99, 133, 117, 111, 112, 134, 120, 143, 135, 130, 132, 145, 111, 125, 134, 105, 115, 106, 132, 146, 131, 115, 135, 103, 127, 145, 138, 138, 111, 121, 148, 131, 126, 114, 132, 122, 139, 136, 127, 122, 126, 110, 134, 130, 114, 121, 125, 117, 131, 146, 137, 122, 129, 105, 116, 122, 126, 131, 120, 142, 118, 142, 134, 123, 128, 110, 105, 141, 132, 116, 139, 107, 151, 121, 120, 130, 116, 126, 107, 122, 136, 119, 124, 130, 111, 131, 101, 130, 136, 130, 124, 128, 124, 110, 124, 145, 136, 133, 123, 115, 123, 127, 127, 127, 129, 139, 140, 110, 128, 108, 133, 118, 137, 125, 104, 116, 104, 120, 125, 114, 130, 131, 136, 133, 113, 127, 117, 113, 131, 121, 109, 141, 132, 126, 117, 129, 120, 122, 138, 129, 122, 125, 112, 135, 122, 111, 127, 125, 128, 115, 113, 122, 124, 107, 139, 106, 119, 114, 123, 119, 133, 131, 127, 135, 130, 134, 110, 131, 117, 132, 146, 134, 129, 144, 131, 123, 133, 139, 118, 145, 133, 123, 139, 119, 139, 103, 134, 140, 132, 110, 123, 139, 128, 124, 97, 125, 117, 131, 130, 127, 110, 119, 118, 114, 138, 125, 131, 123, 128, 117, 125, 122, 125, 137, 109, 121, 120, 127, 117, 138, 122, 149, 120, 117, 144, 138, 136, 141, 125, 135, 107, 113, 111, 106, 125, 127, 130, 152, 142, 132, 128, 113, 133, 146, 126, 114, 120, 106, 136, 117, 152, 121, 117, 138, 130, 132, 118, 126, 127, 128, 141, 130, 115, 104, 127, 111, 121, 137, 106, 123, 118, 98, 135, 131, 114, 133, 123, 138, 113, 120, 117, 127, 143, 107, 119, 126, 152, 126, 112, 137, 127, 119, 115, 130, 119, 124, 160, 129, 125, 127, 129, 126, 115, 129, 131, 130, 137, 119, 136, 104, 118, 137, 137, 110, 110, 144, 130, 124, 124, 124, 116, 110, 105, 114, 130, 127, 113, 122, 112, 123, 127, 135, 147, 137, 121, 115, 131, 121, 114, 139, 118, 135, 148, 124, 132, 122, 130, 125, 142, 133, 129, 135, 118, 118, 123, 109, 128, 143, 113, 121, 121, 128, 126, 97, 124, 112, 105, 139, 117, 135, 123, 123, 139, 129, 119, 148, 122, 144, 122, 130, 141, 130, 136, 145, 115, 130, 144, 139, 131, 130, 113, 144, 139, 120, 130, 126, 135, 119, 127, 129, 125, 141, 140, 114, 116, 148, 124, 142, 121, 118, 100, 125, 101, 120, 118, 124, 118, 143, 138, 140, 130, 125, 129, 119, 136, 158, 129, 134, 134, 120, 122, 110, 110, 136, 115, 136, 95, 120, 123, 122, 130, 141, 135, 117, 116, 103, 121, 111, 127, 118, 127, 138, 106, 119, 121, 121, 119, 134, 133, 138, 122, 114, 131, 123, 130, 130, 127, 118, 122, 117, 127, 114, 119, 143, 111, 153, 123, 129, 125, 135, 122, 133, 98, 128, 111, 138, 124, 124, 121, 111, 132, 123, 139, 126, 116, 134, 113, 125, 124, 121, 119, 126, 114, 137, 121, 122, 119, 129, 110, 111, 133, 128, 131, 116, 142, 124, 136, 134, 108, 121, 126, 129, 129, 130, 139, 123, 131, 125, 121, 129, 114, 122, 142, 126, 122, 125, 115, 157, 105, 122, 122, 106, 120, 115, 123, 115, 126, 134, 127, 127, 105, 121, 146, 139, 115, 112, 124, 134, 111, 130, 122, 125, 134, 134, 102, 135, 108, 113, 131, 127, 125, 93, 106, 126, 128, 127, 115, 120, 110, 123, 137, 152, 102, 120, 125, 126, 108, 131, 144, 113, 106, 114, 135, 113, 108, 114, 138, 114, 121, 131, 109, 109, 119, 136, 138, 123, 127, 109, 123, 134, 120, 130, 131, 132, 119, 132, 138, 122, 135, 122, 151, 123, 111, 115, 118, 128, 126, 133, 115, 131, 150, 109, 104, 124, 111, 121, 110, 119, 121, 145, 127, 110, 126, 135, 133, 134, 122, 124, 111, 114, 142, 121, 130, 134, 137, 113, 102, 146, 130, 152, 137, 127, 115, 127, 159, 123, 146, 133, 122, 125, 136, 121, 143, 109, 134, 134, 118, 121, 114, 126, 118, 135, 124, 131, 128, 135, 109, 111, 128, 139, 123, 134, 115, 144, 133, 130, 115, 123, 124, 121, 116, 132, 127, 132, 111, 120, 140, 127, 107, 100, 130, 111, 122, 127, 109, 132, 137, 138, 127, 114, 143, 112, 122, 124, 106, 122, 125, 112, 124, 123, 120, 135, 127, 131, 135, 144, 113, 106, 130, 103, 108, 120, 121, 119, 109, 132, 121, 126, 118, 123, 116, 110, 121, 146, 128, 117, 105, 110, 138, 118, 121, 109, 119, 135, 131, 122, 130, 122, 115, 118, 108, 137, 119, 117, 125, 131, 124, 118, 139, 118, 142, 126, 132, 122, 119, 115, 122, 129, 132, 131, 131, 127, 124, 117, 121, 126, 120, 144, 115, 121, 122, 132, 159, 124, 129, 130, 132, 126, 114, 138, 123, 134, 120, 125, 139, 106, 118, 112, 131, 142, 120, 131, 137, 123, 105, 124, 132, 119, 119, 126, 140, 124, 106, 113, 122, 127, 130, 125, 145, 135, 104, 116, 118, 127, 116, 139, 130, 140, 114, 121, 127, 129, 112, 108, 124, 131, 128, 135, 122, 113, 138, 117, 132, 129, 130, 123, 127, 127, 121, 140, 114, 159, 135, 115, 132, 136, 132, 112, 111, 130, 120, 104, 115, 131, 102, 128, 116, 130, 117, 127, 130, 143, 143, 124, 134, 130, 117, 111, 120, 115, 135, 115, 120, 111, 126, 119, 122, 94, 142, 138, 142, 128, 115, 131, 127, 117, 116, 106, 123, 127, 118, 116, 133, 129, 126, 131, 138, 131, 134, 115, 130, 136, 111, 128, 120, 136, 110, 118, 114, 135, 157, 128, 113, 116, 116, 132, 139, 128, 135, 144, 116, 116, 119, 118, 122, 142, 140, 133, 121, 120, 136, 122, 134, 115, 127, 131, 131, 111, 137, 128, 114, 130, 120, 116, 111, 99, 135, 133, 150, 140, 121, 115, 144, 150, 109, 148, 127, 121, 139, 138, 143, 128, 129, 121, 126, 122, 121, 114, 122, 136, 132, 118, 123, 117, 141, 124, 142, 133, 111, 131, 120, 131, 130, 124, 137, 127, 141, 124, 131, 107, 149, 122, 109, 124, 123, 121, 121, 100, 125, 127, 116, 130, 110, 123, 118, 111, 125, 149, 120, 122, 122, 123, 128, 149, 127, 130, 124, 106, 124, 154, 130, 131, 121, 119, 122, 118, 143, 132, 135, 125, 146, 127, 111, 129, 128, 140, 127, 130, 115, 115, 135, 126, 122, 125, 111, 139, 121, 132, 122, 120, 141, 122, 112, 132, 118, 129, 129, 121, 127, 114, 95, 110, 115, 127, 104, 140, 126, 128, 143, 115, 113, 129, 123, 151, 111, 125, 128, 116, 117, 140, 121, 138, 119, 118, 154, 134, 116, 158, 129, 134, 139, 144, 123, 112, 109, 117, 121, 115, 113, 118, 122, 120, 120, 143, 118, 113, 132, 138, 138, 126, 139, 145, 131, 138, 110, 121, 119, 136, 133, 132, 107, 135, 122, 121, 119, 140, 125, 118, 107, 131, 150, 146, 128, 138, 121, 133, 110, 109, 124, 124, 123, 125, 125, 120, 130, 132, 126, 117, 120, 129, 134, 120, 132, 106, 108, 132, 119, 122, 151, 137, 132, 110, 126, 123, 137, 119, 122, 137, 115, 130, 121, 123, 150, 126, 122, 124, 135, 138, 138, 123, 121, 117, 106, 107, 117, 138, 126, 149, 126, 127, 129, 126, 134, 116, 123, 135, 122, 117, 129, 138, 140, 118, 130, 139, 118, 127, 112, 115, 112, 114, 122, 128, 114, 123, 139, 123, 106, 125, 149, 135, 148, 123, 123, 121, 121, 118, 92, 118, 133, 113, 120, 122, 130, 126, 123, 112, 126, 105, 110, 118, 121, 120, 142, 116, 123, 105, 127, 131, 140, 130, 119, 122, 144, 133, 132, 114, 136, 119, 131, 133, 108, 118, 124, 113, 116, 117, 139, 115, 118, 143, 128, 126, 124, 119, 119, 110, 155, 125, 140, 119, 110, 117, 133, 113, 136, 124, 127, 135, 122, 127, 111, 115, 107, 139, 123, 104, 125, 125, 137, 115, 139, 130, 108, 119, 122, 126, 129, 135, 139, 123, 133, 125, 142, 103, 129, 141, 142, 125, 114, 127, 123, 119, 115, 111, 131, 128, 124, 127, 120, 135, 123, 119, 122, 100, 117, 121, 117, 130, 128, 131, 118, 143, 120, 145, 106, 119, 131, 97, 137, 114, 124, 132, 133, 123, 108, 131, 134, 122, 134, 105, 138, 139, 121, 122, 130, 116, 126, 107, 113, 117, 129, 127, 134, 125, 136, 125, 125, 108, 118, 124, 125, 123, 114, 124, 136, 118, 135, 114, 119, 126, 132, 127, 114, 128, 144, 126, 125, 118, 114, 125, 125, 123, 111, 112, 113, 109, 134, 120, 125, 117, 120, 107, 112, 116, 141, 115, 118, 122, 133, 129, 124, 115, 111, 118, 113, 129, 122, 125, 125, 133, 136, 118, 124, 138, 144, 126, 125, 141, 134, 104, 124, 148, 124, 134, 146, 112, 128, 100, 106, 131, 132, 137, 126, 111, 130, 123, 122, 111, 130, 120, 147, 126, 140, 137, 155, 121, 127, 111, 118, 112, 130, 111, 162, 129, 131, 117, 120, 118, 124, 122, 118, 120, 148, 133, 105, 120, 114, 114, 127, 122, 139, 122, 114, 117, 122, 105, 133, 126, 127, 147, 122, 130, 137, 133, 120, 102, 139, 107, 138, 124, 121, 119, 128, 137, 105, 133, 117, 122, 116, 141, 112, 130, 122, 139, 139, 114, 139, 131, 115, 122, 138, 110, 122, 118, 126, 127, 120, 108, 122, 115, 138, 129, 112, 126, 134, 103, 136, 136, 141, 115, 106, 125, 144, 103, 133, 111, 118, 135, 116, 131, 118, 142, 118, 140, 127, 113, 135, 135, 117, 113, 131, 126, 128, 139, 113, 124, 128, 139, 150, 102, 116, 125, 123, 127, 130, 127, 140, 120, 114, 124, 125, 118, 135, 128, 126, 122, 113, 139, 114, 113, 121, 120, 128, 135, 136, 115, 146, 117, 125, 126, 126, 112, 148, 130, 104, 135, 127, 111, 138, 146, 129, 156, 132, 117, 135, 126, 130, 124, 133, 122, 115, 146, 132, 123, 129, 114, 120, 144, 118, 142, 117, 113, 124, 129, 110, 134, 126, 102, 130, 126, 126, 137, 138, 140, 140, 120, 133, 127, 126, 132, 125, 126, 118, 134, 116, 119, 119, 131, 128, 116, 141, 129, 130, 157, 125, 117, 143, 135, 128, 118, 124, 136, 125, 136, 140, 129, 122, 131, 126, 135, 122, 135, 113, 133, 115, 126, 116, 128, 140, 120, 112, 113, 117, 119, 123, 127, 125, 117, 130, 133, 129, 114, 112, 140, 141, 122, 131, 123, 134, 129, 116, 122, 131, 124, 120, 114, 115, 143, 127, 124, 138, 106, 129, 129, 137, 113, 139, 126, 124, 120, 126, 127, 136, 118, 129, 118, 115, 120, 130, 128, 138, 118, 127, 127, 129, 145, 127, 112, 137, 128, 121, 126, 139, 120, 117, 139, 122, 122, 128, 135, 129, 156, 141, 122, 113, 120, 112, 116, 114, 110, 117, 126, 136, 123, 128, 135, 138, 128, 131, 123, 105, 123, 105, 123, 129, 116, 126, 137, 127, 128, 134, 125, 120, 126, 117, 120, 122, 134, 135, 139, 99, 136, 130, 134, 109, 116, 112, 112, 123, 132, 112, 127, 121, 119, 125, 129, 121, 119, 150, 114, 125, 141, 129, 111, 131, 133, 127, 132, 123, 112, 124, 135, 118, 104, 88, 117, 107, 111, 148, 127, 126, 125, 132, 116, 130, 147, 113, 125, 134, 126, 121, 118, 109, 135, 133, 111, 109, 135, 127, 124, 118, 141, 117, 133, 128, 113, 120, 129, 127, 116, 120, 132, 131, 120, 141, 118, 127, 127, 113, 114, 109, 131, 129, 112, 135, 107, 100, 131, 107, 126, 122, 128, 115, 124, 131, 152, 103, 128, 131, 128, 142, 118, 118, 104, 128, 135, 128, 139, 143, 114, 126, 131, 109, 139, 117, 131, 136, 124, 123, 140, 122, 129, 114, 119, 113, 129, 104, 131, 124, 133, 135, 145, 139, 120, 115, 124, 133, 147, 121, 126, 116, 135, 122, 113, 117, 128, 128, 153, 139, 121, 114, 115, 138, 122, 117, 112, 126, 135, 118, 123, 115, 150, 126, 111, 123, 133, 131, 123, 116, 132, 114, 142, 120, 118, 126, 117, 111, 135, 132, 143, 125, 119, 120, 107, 123, 131, 113, 119, 124, 117, 136, 124, 112, 114, 105, 118, 132, 125, 122, 125, 142, 128, 125, 125, 114, 122, 113, 109, 120, 132, 115, 126, 120, 106, 123, 141, 135, 116, 131, 129, 106, 132, 121, 109, 116, 114, 119, 132, 137, 119, 118, 129, 122, 128, 125, 123, 142, 135, 125, 117, 117, 126, 132, 112, 130, 125, 146, 123, 122, 123, 126, 123, 127, 138, 142, 130, 126, 128, 132, 136, 129, 123, 121, 138, 136, 126, 146, 132, 133, 119, 103, 110, 114, 136, 128, 113, 129, 146, 120, 121, 122, 132, 135, 140, 124, 132, 127, 128, 123, 124, 127, 137, 132, 121, 139, 125, 162, 140, 134, 117, 124, 127, 132, 128, 107, 136, 120, 120, 119, 114, 111, 118, 116, 126, 125, 121, 142, 132, 134, 128, 137, 121, 128, 143, 119, 136, 128, 142, 106, 117, 131, 114, 122, 130, 104, 135, 127, 127, 122, 146, 143, 129, 138, 132, 123, 123, 136, 140, 125, 110, 116, 105, 124, 118, 134, 112, 126, 114, 120, 106, 126, 112, 130, 126, 126, 120, 154, 110, 126, 122, 134, 126, 116, 123, 118, 122, 130, 161, 130, 141, 137, 139, 130, 138, 112, 122, 117, 138, 134, 136, 122, 122, 135, 107, 111, 132, 107, 135, 110, 127, 135, 136, 118, 123, 133, 125, 131, 133, 131, 135, 115, 119, 125, 124, 125, 141, 126, 122, 130, 109, 131, 137, 115, 123, 133, 140, 131, 120, 146, 117, 116, 123, 131, 128, 121, 128, 118, 119, 106, 114, 126, 116, 131, 126, 132, 148, 113, 136, 113, 120, 130, 131, 138, 122, 116, 129, 119, 135, 117, 112, 126, 116, 123, 120, 145, 117, 121, 131, 132, 121, 119, 138, 141, 134, 142, 138, 123, 136, 146, 140, 126, 123, 125, 109, 122, 115, 123, 118, 119, 120, 118, 131, 117, 111, 125, 124, 108, 128, 116, 133, 111, 135, 118, 115, 111, 132, 134, 135, 126, 120, 112, 117, 133, 131, 118, 114, 121, 126, 125, 128, 138, 111, 118, 114, 135, 142, 85, 120, 104, 122, 126, 120, 116, 123, 131, 100, 130, 121, 138, 110, 111, 142, 147, 116, 123, 114, 127, 120, 134, 141, 120, 104, 110, 122, 128, 128, 124, 116, 121, 127, 113, 133, 138, 125, 124, 115, 135, 122, 123, 130, 122, 126, 120, 125, 129, 129, 119, 117, 132, 133, 129, 123, 126, 138, 122, 134, 116, 136, 120, 136, 129, 134, 125, 116, 130, 129, 131, 131, 130, 121, 128, 110, 122, 130, 119, 122, 134, 135, 125, 131, 117, 135, 121, 120, 123, 136, 123, 113, 134, 120, 132, 120, 115, 116, 145, 115, 117, 121, 135, 115, 129, 109, 116, 132, 132, 137, 122, 125, 115, 133, 133, 124, 154, 150, 129, 121, 134, 90, 122, 129, 119, 132, 117, 125, 120, 137, 128, 108, 144, 105, 119, 135, 142, 125, 134, 125, 116, 129, 128, 121, 136, 135, 123, 106, 114, 115, 115, 112, 137, 142, 137, 132, 119, 125, 127, 110, 138, 131, 127, 138, 139, 113, 122, 120, 138, 119, 132, 132, 122, 139, 115, 127, 131, 131, 129, 122, 113, 120, 128, 121, 123, 125, 117, 135, 135, 118, 137, 119, 110, 116, 130, 118, 133, 117, 123, 119, 124, 124, 121, 121, 131, 139, 120, 121, 128, 137, 128, 135, 122, 120, 127, 122, 134, 149, 129, 149, 129, 139, 122, 129, 127, 134, 109, 130, 123, 114, 127, 128, 122, 132, 109, 132, 124, 141, 109, 129, 122, 142, 103, 126, 118, 131, 121, 125, 128, 110, 136, 124, 125, 128, 131, 139, 132, 133, 124, 121, 122, 129, 127, 139, 114, 126, 124, 127, 135, 133, 109, 126, 128, 114, 131, 141, 131, 121, 148, 123, 132, 130, 138, 122, 120, 131, 122, 115, 103, 143, 127, 129, 127, 124, 133, 133, 110, 127, 113, 124, 140, 139, 134, 131, 126, 131, 123, 139, 119, 126, 128, 118, 144, 132, 121, 125, 127, 120, 108, 119, 132, 129, 129, 128, 126, 128, 137, 110, 121, 117, 113, 99, 119, 140, 123, 105, 132, 132, 116, 128, 130, 119, 131, 130, 119, 124, 129, 129, 114, 129, 130, 134, 111, 124, 120, 111, 120, 131, 101, 118, 129, 137, 113, 126, 137, 130, 118, 108, 112, 119, 131, 129, 104, 138, 111, 117, 126, 153, 134, 122, 114, 135, 119, 121, 130, 111, 114, 128, 144, 132, 136, 118, 125, 120, 119, 127, 126, 125, 124, 120, 134, 122, 143, 135, 120, 128, 111, 129, 122, 119, 125, 136, 118, 127, 125, 114, 131, 129, 126, 127, 121, 144, 118, 136, 120, 125, 137, 121, 134, 133, 138, 106, 121, 119, 118, 118, 121, 141, 107, 114, 138, 116, 129, 124, 119, 136, 132, 132, 117, 121, 144, 121, 127, 132, 118, 118, 125, 130, 146, 134, 135, 106, 130, 119, 129, 109, 127, 114, 130, 132, 129, 119, 134, 115, 137, 147, 136, 129, 127, 144, 125, 126, 118, 115, 126, 126, 137, 135, 129, 120, 117, 134, 132, 140, 115, 99, 152, 137, 120, 125, 127, 151, 116, 138, 114, 145, 134, 132, 109, 119, 119, 146, 130, 138, 112, 117, 126, 112, 109, 122, 117, 135, 133, 118, 111, 120, 118, 120, 128, 127, 124, 135, 121, 114, 104, 131, 132, 120, 133, 116, 138, 117, 131, 119, 156, 112, 133, 103, 120, 124, 111, 116, 131, 133, 146, 120, 119, 127, 117, 135, 130, 119, 137, 129, 128, 126, 124, 127, 142, 149, 124, 136, 140, 141, 120, 132, 134, 113, 114, 124, 121, 135, 119, 125, 125, 122, 142, 119, 133, 118, 125, 118, 132, 132, 107, 125, 123, 121, 116, 127, 121, 126, 152, 114, 112, 125, 112, 118, 130, 128, 116, 139, 128, 117, 112, 126, 150, 130, 127, 128, 119, 118, 132, 141, 107, 117, 113, 130, 136, 110, 126, 140, 102, 127, 125, 123, 133, 123, 128, 111, 136, 124, 125, 128, 133, 147, 127, 133, 126, 116, 117, 120, 121, 134, 123, 126, 122, 115, 136, 134, 135, 148, 122, 134, 134, 117, 123, 132, 122, 131, 129, 126, 96, 136, 125, 111, 125, 124, 129, 124, 120, 130, 120, 131, 114, 134, 127, 130, 129, 131, 143, 123, 131, 120, 133, 128, 129, 117, 123, 134, 142, 127, 146, 122, 129, 144, 109, 145, 120, 138, 121, 125, 128, 144, 131, 115, 122, 110, 124, 139, 131, 135, 124, 119, 127, 136, 132, 139, 120, 117, 132, 128, 143, 120, 139, 121, 123, 137, 115, 124, 117, 107, 124, 129, 119, 122, 119, 131, 122, 109, 112, 125, 130, 119, 132, 135, 120, 124, 116, 137, 156, 133, 149, 115, 120, 121, 127, 127, 114, 118, 118, 131, 113, 125, 133, 130, 135, 124, 121, 106, 134, 122, 148, 135, 118, 123, 97, 126, 131, 118, 134, 123, 124, 126, 124, 117, 152, 131, 136, 156, 143, 105, 115, 128, 130, 114, 138, 162, 135, 120, 134, 120, 122, 117, 112, 115, 128, 143, 125, 127, 141, 99, 120, 136, 117, 119, 131, 138, 125, 125, 120, 72, 136, 133, 109, 136, 128, 123, 127, 120, 113, 124, 145, 125, 116, 129, 132, 123, 126, 114, 128, 115, 132, 136, 116, 121, 122, 139, 126, 127, 110, 111, 130, 124, 126, 128, 125, 130, 142, 122, 135, 113, 139, 133, 128, 131, 132, 121, 131, 123, 117, 133, 123, 137, 119, 108, 128, 114, 133, 121, 128, 120, 134, 133, 122, 136, 122, 145, 122, 125, 135, 110, 114, 126, 128, 120, 143, 145, 126, 134, 129, 120, 118, 131, 133, 124, 136, 140, 136, 114, 126, 145, 133, 130, 116, 140, 112, 116, 138, 131, 139, 135, 127, 143, 106, 125, 108, 117, 110, 141, 138, 132, 109, 118, 143, 121, 130, 122, 119, 135, 138, 123, 127, 123, 132, 117, 129, 113, 124, 129, 123, 122, 119, 142, 116, 132, 122, 133, 122, 138, 137, 108, 140, 116, 113, 144, 136, 126, 135, 118, 121, 138, 117, 151, 129, 119, 144, 122, 126, 122, 135, 135, 130, 132, 129, 105, 122, 121, 130, 140, 104, 124, 143, 114, 132, 127, 115, 136, 129, 131, 121, 142, 136, 118, 111, 112, 125, 114, 123, 125, 132, 135, 124, 120, 109, 143, 152, 122, 122, 137, 155, 104, 123, 118, 122, 145, 131, 129, 130, 134, 108, 116, 106, 117, 120, 119, 124, 123, 146, 113, 109, 135, 119, 125, 118, 144, 115, 130, 115, 127, 132, 131, 129, 129, 144, 114, 111, 114, 128, 131, 136, 111, 119, 121, 127, 123, 126, 129, 123, 124, 147, 132, 113, 117, 123, 127, 114, 119, 120, 131, 110, 114, 138, 125, 119, 129, 129, 119, 110, 110, 124, 130, 116, 126, 133, 152, 117, 114, 120, 117, 137, 113, 135, 127, 119, 118, 128, 105, 119, 126, 112, 116, 119, 126, 124, 116, 143, 132, 132, 136, 136, 123, 133, 123, 106, 137, 138, 127, 111, 126, 131, 124, 106, 130, 124, 124, 128, 134, 130, 110, 117, 117, 118, 113, 118, 110, 120, 145, 136, 131, 133, 122, 124, 110, 102, 125, 146, 150, 112, 127, 112, 129, 129, 123, 121, 114, 127, 120, 136, 121, 116, 138, 131, 123, 127, 113, 123, 134, 118, 133, 120, 133, 122, 118, 129, 123, 129, 136, 124, 125, 132, 129, 134, 119, 129, 133, 117, 148, 116, 130, 131, 139, 121, 125, 117, 123, 147, 137, 140, 125, 125, 123, 133, 130, 131, 126, 132, 129, 119, 146, 121, 123, 119, 134, 131, 117, 129, 128, 125, 119, 123, 134, 136, 107, 134, 123, 116, 126, 116, 136, 128, 125, 137, 141, 130, 128, 126, 109, 109, 129, 128, 116, 132, 121, 118, 110, 123, 135, 121, 128, 126, 137, 118, 144, 130, 118, 125, 110, 129, 130, 128, 127, 110, 116, 129, 124, 118, 132, 116, 118, 142, 122, 106, 127, 110, 118, 117, 111, 125, 116, 127, 129, 138, 134, 127, 122, 124, 130, 118, 138, 146, 117, 100, 129, 110, 123, 131, 124, 119, 136, 109, 119, 131, 130, 112, 114, 126, 118, 125, 120, 124, 122, 127, 140, 130, 122, 130, 117, 128, 138, 147, 118, 117, 109, 126, 142, 119, 114, 128, 110, 128, 116, 128, 137, 112, 120, 115, 135, 117, 139, 135, 134, 114, 136, 122, 130, 120, 134, 118, 130, 132, 137, 132, 120, 128, 122, 112, 123, 119, 135, 106, 124, 126, 119, 132, 128, 111, 139, 144, 123, 115, 121, 152, 117, 131, 133, 105, 134, 113, 136, 121, 120, 121, 121, 128, 134, 122, 135, 114, 129, 123, 144, 134, 119, 132, 138, 130, 139, 126, 122, 132, 120, 136, 127, 128, 134, 120, 130, 122, 140, 126, 114, 128, 125, 120, 110, 124, 130, 137, 138, 133, 124, 114, 145, 132, 124, 117, 107, 119, 126, 121, 122, 118, 115, 124, 117, 117, 154, 136, 141, 139, 120, 128, 104, 113, 103, 143, 136, 126, 133, 117, 118, 113, 125, 135, 145, 118, 121, 103, 119, 129, 121, 123, 123, 131, 135, 135, 98, 113, 119, 130, 114, 117, 133, 135, 120, 131, 131, 133, 137, 121, 133, 118, 126, 129, 132, 134, 127, 123, 131, 144, 117, 122, 117, 114, 140, 125, 133, 126, 120, 124, 127, 133, 118, 127, 132, 126, 141, 136, 118, 130, 108, 134, 136, 136, 130, 132, 119, 115, 125, 120, 133, 120, 122, 121, 132, 117, 120, 122, 119, 120, 135, 122, 131, 126, 116, 123, 121, 122, 121, 127, 122, 122, 104, 130, 120, 129, 108, 117, 120, 129, 125, 140, 131, 129, 128, 131, 108, 131, 110, 140, 126, 132, 131, 125, 114, 131, 120, 132, 136, 118, 147, 126, 115, 122, 123, 117, 125, 122, 137, 121, 121, 120, 135, 146, 138, 139, 118, 120, 124, 112, 123, 114, 143, 117, 127, 128, 145, 117, 126, 110, 108, 140, 120, 117, 124, 135, 118, 123, 143, 136, 147, 123, 129, 119, 120, 133, 130, 137, 129, 129, 124, 124, 126, 108, 142, 137, 129, 126, 131, 121, 139, 132, 129, 131, 132, 113, 113, 119, 136, 132, 147, 136, 109, 106, 117, 111, 141, 138, 112, 122, 115, 135, 126, 112, 121, 118, 120, 128, 122, 133, 119, 141, 123, 132, 127, 135, 116, 121, 136, 119, 121, 127, 134, 119, 118, 132, 128, 133, 117, 118, 123, 123, 123, 123, 140, 137, 124, 117, 123, 147, 126, 115, 118, 129, 125, 101, 144, 141, 131, 146, 122, 147, 114, 122, 141, 132, 108, 117, 116, 136, 128, 126, 142, 123, 117, 133, 131, 122, 133, 97, 117, 123, 100, 145, 149, 124, 133, 121, 131, 109, 120, 119, 122, 132, 121, 137, 143, 128, 131, 118, 127, 134, 121, 121, 126, 128, 135, 119, 106, 120, 128, 118, 117, 103, 132, 116, 133, 123, 136, 142, 136, 126, 119, 123, 127, 122, 127, 115, 121, 152, 132, 121, 131, 120, 132, 111, 120, 120, 117, 114, 119, 128, 123, 113, 120, 131, 127, 133, 132, 118, 129, 116, 125, 126, 123, 138, 139, 129, 111, 127, 120, 135, 129, 113, 108, 112, 132, 124, 105, 130, 120, 126, 124, 132, 116, 114, 134, 126, 117, 105, 116, 121, 115, 119, 132, 116, 103, 133, 131, 140, 141, 142, 115, 121, 115, 124, 121, 112, 136, 96, 116, 142, 140, 114, 137, 132, 126, 139, 117, 143, 126, 117, 133, 130, 117, 138, 134, 126, 111, 122, 131, 125, 123, 113, 110, 125, 135, 118, 111, 119, 126, 131, 117, 119, 137, 130, 125, 122, 131, 130, 127, 115, 146, 140, 113, 121, 126, 121, 130, 127, 120, 131, 122, 125, 124, 136, 122, 146, 109, 138, 131, 123, 115, 127, 132, 134, 132, 134, 118, 129, 118, 137, 122, 126, 146, 113, 111, 131, 130, 135, 130, 152, 120, 132, 111, 132, 130, 132, 134, 118, 128, 127, 127, 144, 112, 136, 131, 132, 117, 135, 122, 143, 129, 137, 120, 120, 127, 137, 121, 129, 131, 132, 118, 118, 113, 137, 118, 122, 109, 127, 147, 127, 125, 107, 132, 116, 125, 130, 125, 128, 119, 130, 112, 128, 144, 113, 135, 114, 123, 129, 137, 147, 138, 148, 130, 138, 133, 131, 121, 125, 130, 132, 114, 120, 117, 118, 121, 126, 118, 108, 124, 127, 131, 131, 129, 124, 118, 143, 119, 132, 117, 134, 113, 108, 123, 116, 132, 134, 117, 129, 117, 118, 96, 119, 126, 133, 139, 120, 133, 123, 124, 109, 129, 125, 118, 117, 114, 140, 117, 123, 130, 110, 133, 119, 120, 139, 112, 129, 115, 118, 107, 131, 153, 117, 130, 148, 118, 126, 158, 123, 130, 134, 108, 126, 136, 140, 104, 118, 107, 113, 117, 108, 126, 134, 123, 135, 117, 130, 125, 117, 139, 119, 131, 107, 122, 133, 144, 130, 114, 106, 127, 131, 117, 113, 113, 126, 111, 115, 141, 125, 125, 134, 130, 131, 126, 129, 128, 117, 125, 127, 135, 115, 140, 104, 112, 96, 130, 111, 117, 129, 112, 120, 135, 118, 114, 135, 120, 122, 123, 133, 115, 118, 132, 119, 133, 113, 112, 125, 117, 111, 129, 128, 136, 113, 117, 132, 121, 122, 120, 112, 118, 110, 128, 121, 159, 123, 143, 120, 132, 117, 107, 132, 131, 109, 120, 142, 123, 127, 130, 137, 126, 114, 148, 136, 122, 122, 135, 139, 127, 114, 123, 141, 142, 123, 135, 124, 130, 122, 113, 120, 160, 124, 125, 131, 126, 101, 113, 135, 123, 134, 122, 139, 151, 123, 117, 140, 129, 119, 111, 131, 139, 120, 125, 135, 127, 118, 128, 128, 136, 145, 140, 132, 126, 135, 133, 133, 126, 142, 139, 118, 131, 130, 121, 130, 137, 117, 122, 137, 126, 132, 129, 117, 109, 136, 124, 125, 120, 112, 136, 144, 145, 136, 133, 97, 109, 132, 121, 132, 122, 118, 126, 123, 113, 113, 121, 116, 137, 132, 118, 95, 131, 118, 112, 109, 124, 144, 133, 108, 113, 128, 120, 121, 131, 116, 118, 129, 127, 123, 128, 125, 147, 97, 115, 134, 124, 113, 123, 127, 126, 135, 111, 124, 125, 123, 123, 136, 121, 138, 106, 135, 117, 152, 120, 115, 130, 139, 137, 127, 132, 135, 114, 133, 133, 128, 110, 103, 125, 106, 113, 145, 141, 111, 140, 110, 129, 133, 118, 105, 142, 105, 126, 115, 137, 129, 146, 99, 127, 121, 116, 110, 135, 112, 126, 127, 127, 127, 136, 114, 108, 116, 142, 137, 112, 111, 148, 103, 117, 105, 114, 143, 146, 117, 134, 121, 122, 132, 139, 133, 121, 138, 115, 118, 121, 132, 120, 127, 120, 118, 127, 140, 115, 120, 130, 127, 117, 121, 138, 125, 125, 124, 134, 123, 129, 117, 113, 118, 130, 121, 114, 118, 110, 139, 138, 134, 122, 107, 130, 133, 100, 126, 137, 125, 133, 131, 132, 108, 149, 124, 106, 137, 121, 131, 124, 116, 126, 143, 114, 126, 116, 131, 118, 133, 146, 131, 133, 125, 126, 129, 112, 102, 129, 128, 115, 114, 125, 122, 110, 136, 133, 120, 138, 124, 121, 136, 117, 119, 112, 121, 132, 101, 109, 131, 144, 129, 139, 123, 105, 114, 101, 129, 132, 125, 114, 105, 107, 135, 107, 133, 133, 118, 124, 122, 124, 111, 121, 134, 155, 125, 122, 117, 113, 134, 117, 123, 125, 139, 136, 121, 127, 122, 121, 138, 130, 128, 137, 119, 117, 135, 122, 125, 114, 125, 116, 138, 144, 145, 136, 119, 121, 110, 124, 121, 130, 134, 125, 116, 124, 128, 121, 129, 118, 132, 134, 136, 127, 116, 121, 119, 122, 127, 120, 112, 119, 122, 92, 137, 145, 121, 138, 144, 116, 92, 138, 129, 107, 107, 119, 112, 135, 105, 124, 118, 125, 112, 147, 126, 136, 121, 119, 132, 124, 122, 131, 125, 125, 117, 127, 122, 136, 125, 121, 120, 140, 133, 129, 119, 121, 129, 119, 142, 123, 130, 127, 123, 122, 120, 110, 111, 142, 94, 134, 109, 134, 113, 123, 126, 114, 129, 118, 126, 131, 117, 128, 119, 100, 136, 109, 129, 145, 114, 131, 127, 133, 123, 126, 115, 129, 126, 125, 126, 131, 118, 123, 125, 136, 116, 122, 128, 136, 144, 138, 122, 125, 123, 124, 124, 129, 130, 137, 112, 109, 137, 122, 134, 150, 142, 113, 124, 130, 140, 116, 115, 118, 137, 130, 132, 144, 119, 131, 136, 132, 135, 118, 135, 121, 116, 119, 125, 130, 154, 127, 113, 139, 124, 135, 138, 115, 139, 121, 143, 118, 136, 132, 131, 119, 139, 124, 135, 115, 123, 109, 116, 117, 136, 132, 134, 117, 122, 130, 136, 119, 134, 121, 130, 122, 125, 118, 127, 130, 129, 132, 119, 115, 131, 114, 118, 131, 132, 125, 122, 129, 137, 117, 115, 120, 134, 114, 153, 134, 108, 108, 119, 104, 118, 111, 133, 129, 120, 136, 126, 138, 130, 121, 128, 112, 113, 115, 119, 136, 126, 121, 126, 116, 120, 124, 126, 113, 132, 141, 128, 113, 125, 139, 102, 113, 135, 118, 129, 123, 113, 111, 125, 143, 116, 135, 131, 147, 123, 139, 127, 112, 136, 138, 127, 145, 124, 104, 133, 109, 123, 131, 122, 138, 129, 112, 125, 122, 137, 146, 136, 122, 110, 136, 145, 135, 128, 138, 132, 121, 104, 137, 106, 112, 149, 124, 143, 105, 142, 138, 121, 150, 133, 133, 118, 141, 114, 142, 134, 127, 121, 129, 147, 131, 113, 105, 131, 144, 128, 127, 124, 126, 126, 127, 131, 122, 146, 104, 131, 131, 123, 130, 135, 106, 122, 130, 117, 135, 115, 117, 113, 146, 125, 117, 123, 125, 133, 130, 133, 132, 126, 132, 126, 130, 134, 123, 137, 102, 140, 128, 120, 120, 129, 136, 136, 132, 131, 134, 138, 129, 114, 106, 110, 117, 126, 105, 131, 127, 129, 125, 138, 117, 117, 122, 124, 122, 124, 132, 129, 119, 133, 106, 136, 136, 132, 121, 126, 149, 139, 120, 123, 137, 130, 120, 135, 124, 133, 127, 135, 122, 144, 116, 108, 137, 137, 128, 128, 131, 133, 119, 134, 140, 116, 118, 108, 114, 128, 128, 146, 117, 115, 123, 119, 125, 132, 129, 110, 123, 137, 121, 121, 125, 129, 130, 134, 127, 124, 113, 110, 117, 133, 113, 120, 127, 121, 108, 147, 137, 132, 120, 93, 121, 108, 135, 117, 146, 141, 108, 134, 111, 118, 127, 135, 111, 133, 127, 131, 151, 131, 108, 129, 117, 121, 120, 140, 114, 128, 127, 118, 117, 114, 122, 143, 133, 130, 112, 112, 140, 122, 109, 110, 120, 126, 114, 117, 141, 128, 122, 129, 138, 140, 129, 127, 113, 124, 112, 113, 129, 111, 128, 115, 121, 136, 99, 121, 120, 144, 114, 120, 124, 122, 118, 126, 128, 135, 107, 92, 117, 123, 126, 134, 121, 119, 121, 123, 114, 131, 112, 131, 129, 139, 132, 122, 138, 121, 125, 117, 134, 126, 132, 132, 125, 137, 90, 129, 128, 121, 129, 97, 121, 135, 119, 116, 109, 145, 134, 119, 127, 125, 133, 118, 129, 124, 139, 111, 113, 124, 126, 136, 115, 111, 103, 102, 135, 120, 152, 129, 120, 120, 136, 131, 121, 113, 124, 143, 115, 118, 113, 115, 115, 127, 126, 132, 142, 109, 121, 125, 123, 109, 129, 121, 113, 134, 111, 138, 105, 137, 117, 135, 115, 127, 125, 123, 133, 112, 129, 134, 130, 127, 129, 128, 115, 125, 118, 126, 126, 124, 135, 134, 115, 105, 145, 131, 146, 132, 133, 126, 120, 141, 135, 142, 135, 121, 152, 134, 120, 118, 119, 118, 143, 131, 115, 128, 123, 131, 132, 125, 127, 118, 134, 138, 108, 127, 116, 127, 116, 130, 113, 109, 132, 117, 126, 133, 117, 117, 121, 113, 132, 136, 127, 118, 110, 130, 137, 116, 138, 115, 119, 123, 129, 128, 117, 137, 128, 129, 133, 136, 138, 114, 133, 123, 134, 122, 123, 140, 128, 123, 133, 112, 110, 137, 133, 120, 127, 135, 153, 133, 120, 137, 114, 124, 126, 135, 138, 151, 140, 144, 117, 115, 162, 108, 127, 132, 121, 137, 114, 117, 126, 136, 129, 131, 127, 131, 127, 106, 128, 136, 123, 128, 132, 118, 140, 123, 140, 122, 113, 123, 135, 119, 130, 127, 127, 116, 132, 129, 108, 125, 138, 133, 109, 124, 124, 152, 109, 134, 134, 107, 131, 119, 123, 128, 121, 112, 141, 132, 136, 129, 114, 145, 135, 118, 123, 125, 123, 125, 118, 135, 120, 123, 125, 147, 128, 114, 128, 146, 102, 133, 126, 137, 124, 124, 135, 142, 110, 121, 113, 121, 122, 125, 137, 122, 130, 127, 120, 139, 124, 151, 125, 129, 149, 132, 140, 133, 120, 116, 115, 136, 118, 138, 140, 135, 121, 127, 131, 119, 122, 131, 114, 128, 125, 126, 115, 122, 138, 134, 107, 127, 115, 130, 115, 112, 137, 114, 117, 115, 104, 104, 134, 140, 122, 117, 125, 132, 137, 97, 133, 117, 114, 138, 98, 114, 125, 118, 130, 113, 118, 136, 114, 124, 133, 129, 138, 135, 126, 120, 116, 117, 112, 124, 138, 137, 142, 128, 116, 138, 134, 136, 129, 103, 115, 124, 132, 132, 117, 143, 133, 156, 111, 113, 132, 122, 116, 133, 130, 143, 138, 130, 130, 125, 100, 113, 134, 139, 131, 137, 121, 128, 113, 128, 129, 167, 116, 130, 104, 138, 131, 117, 102, 117, 114, 118, 145, 120, 131, 126, 137, 122, 116, 129, 117, 127, 117, 119, 138, 118, 140, 129, 133, 126, 130, 124, 138, 120, 129, 122, 118, 113, 143, 128, 116, 117, 117, 115, 112, 107, 118, 130, 159, 131, 124, 124, 115, 145, 120, 120, 112, 135, 116, 113, 120, 122, 129, 116, 107, 120, 116, 133, 125, 124, 114, 117, 117, 105, 134, 134, 108, 121, 117, 143, 143, 122, 111, 128, 125, 119, 133, 137, 130, 127, 115, 118, 143, 110, 109, 125, 146, 136, 135, 114, 132, 120, 121, 145, 128, 144, 126, 137, 107, 134, 117, 137, 123, 123, 122, 127, 131, 110, 130, 102, 121, 123, 119, 119, 129, 137, 130, 114, 130, 144, 130, 114, 119, 139, 140, 117, 120, 113, 119, 127, 118, 128, 128, 127, 135, 142, 129, 126, 130, 123, 108, 113, 130, 124, 137, 147, 116, 146, 117, 142, 127, 113, 117, 128, 134, 125, 126, 129, 118, 118, 134, 101, 123, 104, 104, 131, 114, 136, 124, 136, 126, 137, 127, 126, 112, 120, 121, 119, 119, 127, 130, 132, 131, 132, 123, 113, 113, 126, 144, 125, 115, 123, 114, 108, 129, 109, 136, 108, 133, 137, 94, 108, 113, 112, 129, 114, 117, 130, 125, 136, 116, 137, 113, 131, 113, 135, 128, 123, 118, 133, 130, 122, 131, 117, 124, 140, 136, 140, 117, 135, 136, 130, 130, 115, 113, 128, 133, 138, 120, 120, 123, 123, 131, 133, 116, 130, 122, 159, 122, 125, 127, 131, 128, 122, 136, 114, 120, 121, 120, 111, 117, 126, 138, 127, 133, 125, 146, 142, 129, 109, 137, 128, 121, 128, 154, 117, 116, 111, 112, 129, 123, 116, 126, 127, 119, 139, 132, 118, 129, 123, 129, 127, 125, 121, 134, 128, 138, 126, 131, 114, 136, 120, 122, 130, 125, 112, 134, 124, 124, 119, 132, 107, 127, 118, 120, 116, 117, 144, 137, 141, 113, 112, 132, 104, 105, 139, 147, 116, 126, 116, 135, 116, 119, 122, 133, 104, 119, 116, 127, 131, 116, 113, 131, 140, 132, 117, 138, 112, 136, 136, 137, 118, 129, 139, 107, 123, 104, 115, 121, 139, 131, 146, 125, 111, 127, 120, 111, 122, 136, 123, 123, 123, 120, 124, 124, 132, 141, 120, 147, 112, 118, 124, 111, 115, 114, 108, 126, 127, 123, 118, 124, 128, 108, 130, 137, 121, 119, 130, 124, 107, 146, 128, 115, 133, 143, 138, 114, 123, 138, 144, 131, 115, 133, 133, 127, 131, 109, 119, 112, 114, 133, 121, 135, 127, 98, 134, 115, 125, 109, 119, 129, 134, 140, 115, 115, 134, 125, 130, 122, 109, 127, 118, 112, 103, 116, 125, 117, 131, 99, 122, 106, 105, 125, 121, 114, 121, 129, 131, 132, 150, 114, 111, 116, 136, 117, 130, 110, 128, 122, 101, 136, 126, 121, 116, 129, 137, 120, 138, 129, 125, 139, 116, 126, 135, 122, 122, 138, 114, 146, 122, 126, 122, 125, 134, 114, 126, 127, 114, 121, 132, 133, 102, 129, 129, 154, 116, 115, 124, 128, 141, 130, 118, 114, 129, 132, 117, 134, 166, 120, 130, 131, 127, 132, 135, 130, 106, 133, 139, 130, 116, 131, 136, 127, 138, 123, 119, 135, 129, 128, 130, 113, 130, 136, 128, 133, 130, 112, 144, 123, 129, 114, 124, 123, 123, 114, 128, 117, 128, 132, 122, 123, 126, 123, 131, 126, 132, 123, 146, 124, 135, 133, 121, 112, 132, 149, 126, 111, 127, 113, 126, 118, 119, 121, 126, 121, 127, 131, 124, 120, 132, 142, 127, 126, 119, 129, 124, 123, 125, 126, 100, 125, 128, 132, 132, 127, 128, 133, 128, 141, 118, 119, 138, 127, 128, 124, 129, 136, 132, 140, 133, 132, 136, 128, 133, 115, 119, 121, 129, 133, 131, 112, 132, 131, 129, 121, 134, 112, 131, 125, 124, 131, 131, 115, 135, 121, 135, 122, 128, 152, 130, 122, 126, 129, 133, 107, 119, 135, 133, 130, 117, 122, 123, 120, 133, 133, 118, 130, 123, 145, 126, 113, 121, 127, 123, 115, 123, 127, 134, 107, 142, 128, 113, 132, 140, 127, 124, 119, 129, 115, 126, 138, 137, 134, 118, 120, 135, 128, 106, 129, 139, 116, 124, 128, 118, 125, 142, 137, 133, 134, 140, 106, 116, 111, 123, 109, 126, 116, 124, 135, 122, 118, 143, 129, 126, 126, 129, 119, 123, 135, 121, 123, 120, 120, 121, 112, 126, 103, 131, 121, 127, 134, 117, 122, 126, 129, 113, 128, 136, 129, 146, 147, 123, 122, 125, 124, 134, 126, 112, 124, 134, 135, 134, 115, 130, 111, 133, 124, 138, 132, 137, 124, 124, 120, 137, 118, 127, 122, 123, 129, 116, 126, 126, 134, 141, 123, 152, 111, 125, 129, 124, 125, 138, 144, 123, 114, 157, 134, 139, 123, 108, 132, 128, 133, 130, 114, 125, 131, 125, 121, 130, 110, 129, 125, 133, 118, 120, 128, 131, 113, 126, 138, 130, 136, 124, 100, 130, 119, 136, 127, 122, 128, 134, 112, 150, 140, 120, 127, 132, 123, 124, 118, 128, 121, 124, 119, 127, 129, 130, 123, 126, 123, 132, 128, 124, 138, 118, 124, 120, 129, 123, 121, 127, 117, 116, 125, 134, 131, 125, 124, 114, 124, 123, 129, 130, 132, 131, 128, 111, 112, 123, 131, 135, 130, 137, 140, 129, 130, 112, 112, 127, 120, 120, 124, 129, 112, 129, 131, 116, 112, 129, 126, 118, 102, 130, 140, 119, 44, 120, 134, 136, 134, 123, 116, 110, 118, 130, 131, 125, 126, 118, 132, 123, 123, 123, 128, 144, 121, 141, 130, 131, 126, 115, 107, 116, 107, 144, 122, 118, 116, 130, 134, 117, 133, 124, 116, 128, 127, 128, 122, 112, 128, 113, 126, 136, 129, 130, 136, 120, 127, 124, 112, 127, 113, 132, 131, 119, 112, 111, 125, 135, 140, 114, 131, 119, 115, 115, 123, 127, 126, 124, 108, 128, 115, 119, 124, 123, 123, 133, 121, 138, 118, 131, 115, 121, 117, 121, 118, 120, 125, 127, 127, 121, 127, 121, 136, 120, 141, 124, 118, 148, 135, 125, 121, 124, 120, 108, 115, 134, 132, 116, 121, 137, 133, 138, 124, 131, 137, 128, 123, 131, 112, 130, 119, 114, 118, 131, 134, 112, 130, 127, 114, 141, 129, 132, 127, 128, 132, 111, 127, 137, 131, 110, 116, 137, 132, 119, 133, 106, 136, 148, 143, 132, 125, 129, 133, 129, 124, 136, 134, 138, 123, 132, 123, 151, 128, 125, 128, 126, 131, 126, 130, 100, 133, 111, 115, 141, 117, 123, 120, 128, 116, 145, 131, 126, 134, 130, 120, 127, 134, 122, 119, 127, 120, 134, 123, 119, 128, 127, 147, 129, 132, 119, 129, 127, 125, 117, 127, 107, 134, 105, 110, 109, 133, 112, 121, 122, 132, 128, 125, 131, 122, 125, 127, 129, 125, 119, 127, 114, 133, 120, 112, 127, 119, 114, 130, 124, 128, 130, 126, 143, 134, 113, 121, 133, 130, 133, 120, 130, 116, 114, 129, 111, 120, 122, 129, 115, 134, 112, 128, 123, 120, 132, 121, 121, 123, 118, 139, 131, 117, 126, 125, 120, 136, 133, 126, 126, 110, 134, 124, 112, 111, 132, 119, 133, 136, 139, 125, 129, 127, 134, 133, 126, 134, 119, 132, 129, 122, 125, 129, 118, 110, 140, 111, 123, 115, 131, 120, 124, 131, 132, 123, 118, 162, 122, 121, 132, 133, 119, 125, 141, 125, 124, 119, 130, 148, 116, 128, 116, 120, 125, 119, 115, 117, 120, 125, 126, 133, 125, 124, 130, 132, 125, 111, 119, 139, 117, 129, 139, 142, 130, 127, 132, 131, 114, 126, 126, 116, 120, 128, 127, 138, 127, 133, 127, 135, 122, 143, 115, 119, 133, 132, 128, 114, 112, 144, 113, 144, 136, 136, 117, 130, 141, 123, 142, 119, 122, 139, 128, 110, 130, 116, 127, 129, 118, 113, 128, 121, 116, 124, 136, 130, 125, 140, 124, 139, 123, 109, 109, 129, 117, 125, 131, 133, 131, 123, 134, 137, 120, 128, 132, 127, 113, 131, 104, 124, 123, 119, 135, 111, 129, 123, 124, 132, 131, 102, 121, 113, 113, 135, 121, 136, 140, 121, 130, 118, 117, 125, 125, 98, 126, 128, 113, 119, 116, 123, 136, 124, 144, 128, 138, 124, 112, 118, 131, 125, 113, 123, 129, 128, 128, 128, 116, 122, 116, 130, 112, 127, 112, 131, 125, 136, 131, 185, 127, 123, 115, 131, 131, 142, 127, 118, 122, 112, 106, 152, 115, 122, 116, 127, 120, 126, 121, 139, 114, 120, 129, 138, 107, 129, 124, 105, 139, 115, 120, 132, 131, 144, 137, 139, 134, 120, 107, 123, 126, 125, 115, 118, 122, 103, 126, 118, 119, 127, 131, 133, 120, 127, 134, 134, 123, 131, 119, 144, 136, 135, 131, 124, 123, 122, 125, 122, 112, 129, 116, 137, 124, 129, 144, 126, 118, 146, 132, 133, 121, 131, 120, 123, 134, 116, 122, 110, 111, 143, 122, 129, 122, 140, 119, 123, 122, 133, 133, 126, 145, 134, 115, 120, 120, 113, 128, 131, 121, 117, 119, 128, 119, 122, 127, 118, 126, 129, 121, 138, 118, 128, 135, 131, 117, 142, 130, 123, 127, 114, 115, 133, 124, 130, 126, 116, 121, 126, 128, 136, 140, 128, 132, 123, 130, 121, 130, 123, 123, 121, 124, 120, 115, 129, 121, 121, 129, 127, 133, 129, 124, 120, 118, 131, 123, 123, 131, 154, 123, 131, 119, 123, 131, 129, 124, 113, 146, 135, 121, 109, 122, 129, 126, 119, 118, 120, 130, 111, 121, 110, 131, 142, 124, 111, 110, 118, 132, 118, 115, 126, 142, 127, 116, 136, 121, 137, 133, 125, 127, 135, 113, 110, 134, 117, 137, 130, 133, 149, 130, 135, 119, 123, 127, 124, 118, 128, 128, 110, 128, 125, 111, 136, 137, 145, 122, 157, 123, 129, 118, 118, 120, 122, 129, 127, 124, 117, 127, 128, 119, 112, 130, 124, 126, 116, 109, 114, 125, 136, 127, 135, 110, 124, 148, 142, 149, 138, 121, 120, 121, 132, 114, 126, 116, 132, 133, 110, 121, 114, 139, 118, 134, 139, 115, 129, 128, 124, 121, 128, 104, 116, 130, 129, 117, 142, 125, 125, 140, 124, 127, 129, 129, 133, 119, 128, 138, 129, 112, 128, 110, 143, 117, 130, 131, 133, 132, 114, 128, 116, 120, 123, 126, 129, 111, 126, 131, 140, 127, 124, 118, 130, 114, 128, 120, 128, 123, 111, 100, 100, 143, 131, 138, 118, 126, 109, 114, 105, 117, 144, 130, 128, 116, 121, 142, 146, 112, 130, 110, 115, 125, 137, 115, 135, 133, 130, 120, 115, 140, 135, 129, 116, 116, 120, 130, 135, 124, 117, 130, 132, 105, 121, 126, 119, 113, 128, 114, 128, 145, 112, 143, 124, 141, 130, 120, 130, 141, 133, 119, 128, 130, 128, 116, 114, 141, 126, 137, 125, 129, 127, 133, 115, 128, 146, 125, 110, 121, 138, 114, 123, 113, 117, 140, 123, 124, 119, 127, 138, 131, 104, 111, 138, 140, 107, 121, 135, 129, 147, 130, 117, 146, 138, 127, 126, 124, 128, 120, 130, 118, 117, 144, 140, 117, 112, 125, 134, 122, 128, 127, 122, 128, 134, 125, 131, 124, 144, 135, 138, 136, 135, 125, 138, 125, 126, 134, 136, 136, 113, 140, 108, 132, 116, 118, 124, 126, 121, 126, 119, 88, 126, 125, 125, 115, 125, 119, 120, 116, 120, 130, 153, 122, 111, 137, 131, 118, 119, 126, 117, 135, 129, 129, 124, 130, 115, 123, 125, 138, 121, 115, 127, 135, 129, 151, 116, 127, 119, 128, 122, 128, 132, 115, 96, 125, 120, 121, 139, 129, 121, 135, 140, 129, 132, 122, 133, 130, 120, 127, 141, 117, 135, 134, 131, 124, 123, 128, 143, 110, 110, 126, 129, 117, 116, 130, 131, 118, 111, 133, 128, 129, 122, 140, 125, 120, 116, 124, 126, 115, 151, 114, 118, 122, 127, 121, 131, 125, 119, 126, 119, 116, 133, 141, 145, 132, 127, 121, 120, 142, 131, 122, 118, 121, 121, 132, 122, 135, 125, 130, 133, 118, 111, 133, 120, 130, 131, 136, 142, 131, 128, 140, 112, 126, 127, 128, 112, 139, 142, 126, 123, 138, 109, 145, 147, 110, 129, 116, 134, 111, 126, 129, 117, 118, 135, 133, 130, 129, 136, 137, 131, 116, 129, 133, 134, 122, 135, 119, 113, 130, 123, 120, 123, 128, 135, 124, 142, 127, 123, 125, 122, 126, 134, 118, 108, 117, 136, 129, 115, 130, 132, 140, 133, 130, 123, 138, 103, 139, 102, 134, 118, 144, 133, 133, 132, 128, 131, 130, 114, 140, 111, 124, 123, 126, 114, 129, 124, 140, 134, 117, 119, 125, 122, 109, 106, 126, 136, 131, 116, 124, 131, 142, 123, 114, 121, 104, 140, 120, 103, 116, 106, 119, 134, 127, 129, 121, 106, 122, 145, 129, 130, 118, 136, 138, 117, 108, 113, 133, 132, 129, 128, 103, 130, 125, 135, 115, 124, 137, 123, 111, 124, 141, 136, 131, 136, 124, 112, 115, 140, 129, 128, 115, 128, 125, 126, 122, 125, 126, 118, 118, 103, 133, 116, 148, 115, 122, 141, 123, 123, 120, 111, 133, 115, 137, 116, 115, 125, 127, 129, 117, 126, 122, 120, 132, 112, 137, 122, 121, 138, 143, 133, 132, 125, 115, 121, 144, 126, 121, 126, 148, 135, 127, 146, 113, 116, 118, 111, 114, 107, 106, 107, 148, 146, 127, 129, 121, 124, 123, 135, 135, 108, 144, 142, 118, 130, 126, 118, 121, 120, 148, 131, 118, 137, 127, 135, 113, 133, 128, 138, 122, 115, 122, 136, 129, 139, 138, 136, 119, 137, 129, 127, 123, 101, 136, 128, 97, 118, 107, 117, 122, 127, 122, 136, 127, 127, 145, 130, 120, 99, 129, 115, 133, 124, 109, 110, 119, 122, 135, 120, 128, 128, 111, 135, 145, 97, 144, 131, 142, 135, 125, 138, 132, 113, 135, 117, 135, 130, 133, 129, 124, 121, 109, 119, 118, 120, 125, 128, 123, 117, 123, 116, 129, 109, 125, 117, 110, 113, 130, 121, 122, 118, 123, 130, 134, 125, 119, 118, 101, 128, 133, 138, 128, 126, 109, 118, 146, 118, 126, 137, 136, 116, 129, 123, 132, 128, 126, 126, 114, 112, 122, 110, 121, 126, 132, 131, 128, 114, 118, 125, 147, 113, 127, 121, 128, 125, 132, 129, 134, 127, 115, 133, 129, 112, 141, 141, 144, 124, 119, 121, 131, 137, 135, 114, 149, 118, 139, 138, 110, 128, 127, 119, 139, 130, 118, 112, 106, 122, 119, 160, 122, 124, 135, 119, 132, 133, 112, 138, 121, 135, 117, 118, 134, 112, 125, 114, 128, 134, 112, 137, 109, 142, 133, 138, 116, 114, 122, 123, 121, 128, 137, 111, 138, 126, 132, 121, 111, 130, 118, 150, 159, 122, 127, 138, 135, 123, 130, 116, 126, 127, 121, 134, 132, 119, 122, 128, 120, 127, 141, 125, 126, 128, 120, 113, 122, 108, 115, 124, 115, 132, 132, 126, 131, 127, 128, 120, 119, 106, 135, 127, 127, 116, 117, 123, 108, 115, 126, 118, 113, 135, 112, 104, 127, 132, 140, 140, 121, 133, 126, 130, 110, 123, 118, 107, 117, 129, 126, 141, 123, 126, 119, 141, 126, 131, 129, 133, 110, 119, 104, 127, 138, 118, 116, 143, 126, 135, 150, 134, 120, 124, 136, 121, 116, 130, 116, 119, 122, 125, 116, 133, 128, 142, 130, 117, 137, 122, 134, 146, 129, 134, 119, 105, 110, 116, 124, 121, 118, 123, 127, 124, 136, 101, 132, 132, 123, 126, 121, 124, 143, 123, 125, 114, 125, 133, 143, 116, 130, 127, 121, 129, 118, 144, 117, 121, 119, 128, 134, 127, 98, 95, 128, 122, 124, 144, 139, 113, 117, 137, 116, 119, 128, 133, 127, 101, 129, 125, 136, 116, 133, 118, 122, 118, 122, 117, 123, 140, 118, 107, 120, 128, 133, 124, 115, 122, 137, 108, 121, 99, 123, 137, 130, 127, 134, 122, 117, 131, 133, 139, 145, 113, 112, 126, 132, 119, 97, 133, 139, 129, 124, 103, 125, 118, 127, 119, 132, 136, 118, 130, 142, 123, 113, 137, 119, 122, 119, 120, 136, 127, 118, 126, 120, 120, 135, 134, 136, 138, 108, 118, 107, 121, 127, 145, 135, 122, 115, 134, 125, 122, 137, 128, 124, 127, 151, 121, 128, 100, 135, 126, 106, 156, 115, 106, 132, 130, 115, 128, 131, 152, 137, 124, 138, 144, 125, 131, 137, 114, 144, 111, 125, 109, 122, 138, 116, 127, 127, 118, 127, 114, 123, 144, 118, 136, 122, 129, 128, 120, 109, 122, 114, 116, 127, 135, 137, 150, 120, 139, 123, 126, 127, 126, 130, 112, 104, 131, 125, 123, 141, 126, 119, 119, 126, 112, 118, 117, 149, 120, 122, 142, 134, 140, 132, 119, 126, 121, 132, 132, 140, 126, 114, 117, 124, 122, 134, 126, 121, 139, 110, 127, 137, 135, 117, 122, 125, 127, 119, 103, 126, 100, 128, 140, 140, 133, 117, 126, 153, 139, 124, 118, 108, 119, 118, 129, 124, 137, 138, 119, 127, 152, 120, 116, 133, 115, 107, 125, 130, 117, 120, 116, 110, 125, 126, 134, 130, 118, 138, 118, 125, 126, 110, 126, 125, 113, 110, 128, 123, 142, 125, 149, 127, 123, 145, 123, 127, 133, 123, 128, 126, 127, 120, 117, 132, 126, 112, 133, 120, 116, 122, 126, 131, 133, 123, 129, 128, 146, 123, 115, 130, 137, 137, 134, 131, 129, 123, 132, 136, 121, 129, 113, 138, 126, 102, 126, 112, 107, 144, 121, 112, 119, 121, 111, 116, 152, 123, 118, 123, 145, 130, 114, 148, 122, 129, 127, 123, 143, 122, 125, 130, 131, 117, 140, 137, 114, 105, 126, 161, 131, 131, 126, 125, 125, 119, 129, 130, 126, 132, 131, 112, 118, 116, 131, 129, 129, 111, 135, 104, 98, 117, 105, 124, 114, 131, 132, 125, 126, 124, 131, 124, 127, 143, 119, 127, 127, 139, 153, 111, 129, 132, 138, 123, 118, 113, 110, 128, 111, 107, 136, 121, 108, 108, 136, 124, 133, 130, 123, 113, 136, 99, 115, 116, 126, 125, 125, 102, 123, 117, 131, 139, 145, 123, 129, 141, 121, 119, 119, 124, 133, 120, 129, 124, 118, 133, 110, 123, 129, 123, 139, 116, 119, 111, 123, 127, 118, 142, 111, 122, 134, 132, 134, 137, 137, 161, 135, 137, 128, 129, 128, 123, 126, 138, 119, 145, 126, 130, 124, 124, 130, 114, 130, 132, 119, 129, 133, 135, 146, 126, 124, 112, 124, 140, 114, 136, 129, 131, 123, 119, 125, 126, 133, 121, 123, 127, 145, 107, 141, 120, 153, 138, 126, 127, 116, 118, 121, 100, 125, 130, 134, 122, 129, 134, 128, 136, 125, 112, 147, 138, 128, 118, 121, 124, 134, 120, 148, 108, 125, 131, 125, 127, 127, 118, 132, 112, 132, 127, 118, 126, 124, 113, 136, 112, 103, 128, 127, 145, 121, 113, 128, 112, 118, 143, 136, 123, 121, 124, 113, 123, 91, 133, 120, 128, 124, 131, 140, 119, 138, 141, 129, 134, 116, 131, 146, 133, 120, 119, 129, 121, 126, 127, 122, 142, 127, 126, 133, 136, 126, 120, 131, 142, 124, 110, 129, 134, 136, 114, 136, 114, 131, 127, 139, 107, 125, 132, 114, 139, 117, 133, 122, 107, 134, 135, 105, 128, 120, 115, 124, 132, 130, 118, 115, 130, 129, 133, 100, 132, 129, 124, 103, 122, 116, 125, 121, 118, 114, 125, 127, 112, 150, 134, 107, 118, 122, 113, 117, 109, 113, 110, 124, 121, 126, 132, 131, 143, 115, 126, 119, 105, 137, 151, 150, 136, 113, 111, 102, 119, 127, 112, 125, 146, 131, 131, 141, 143, 120, 126, 139, 138, 127, 132, 124, 130, 136, 138, 116, 108, 102, 132, 124, 116, 123, 112, 139, 135, 124, 120, 126, 109, 116, 126, 147, 128, 109, 131, 129, 124, 135, 126, 112, 122, 113, 131, 119, 127, 143, 119, 131, 114, 118, 133, 127, 114, 141, 129, 135, 130, 120, 132, 128, 111, 129, 130, 116, 132, 117, 130, 121, 102, 117, 136, 147, 130, 125, 121, 120, 140, 117, 132, 136, 104, 114, 121, 127, 124, 107, 115, 134, 127, 124, 115, 133, 118, 142, 121, 136, 137, 121, 137, 124, 120, 119, 125, 113, 155, 134, 98, 109, 124, 148, 131, 119, 107, 129, 112, 137, 121, 117, 127, 125, 129, 118, 113, 114, 153, 127, 118, 125, 116, 136, 120, 114, 125, 116, 136, 138, 112, 132, 135, 125, 143, 125, 137, 115, 141, 135, 141, 135, 132, 131, 119, 134, 120, 126, 127, 122, 124, 119, 127, 123, 134, 113, 118, 127, 129, 142, 120, 125, 135, 139, 110, 116, 115, 103, 134, 113, 126, 126, 136, 122, 122, 113, 123, 91, 114, 134, 134, 134, 134, 126, 118, 108, 126, 144, 125, 122, 114, 146, 121, 141, 127, 141, 128, 121, 121, 129, 143, 116, 129, 114, 138, 132, 114, 132, 124, 126, 110, 132, 117, 119, 131, 130, 114, 125, 144, 128, 115, 131, 129, 138, 141, 117, 129, 120, 130, 124, 118, 121, 113, 114, 130, 123, 120, 105, 109, 111, 129, 142, 123, 122, 139, 121, 119, 113, 129, 114, 137, 118, 116, 111, 122, 126, 110, 121, 128, 128, 110, 116, 134, 124, 124, 120, 134, 137, 125, 124, 129, 145, 118, 121, 121, 129, 117, 119, 120, 116, 145, 129, 126, 137, 111, 122, 133, 125, 122, 122, 125, 132, 124, 128, 130, 109, 141, 121, 131, 148, 125, 118, 132, 132, 139, 137, 126, 109, 127, 111, 119, 135, 132, 126, 117, 134, 147, 118, 112, 119, 132, 135, 111, 105, 101, 128, 129, 131, 118, 128, 120, 102, 121, 135, 125, 125, 128, 126, 129, 122, 123, 119, 125, 132, 111, 118, 135, 107, 114, 145, 135, 120, 127, 133, 121, 130, 160, 114, 112, 129, 127, 97, 131, 136, 137, 126, 139, 133, 118, 121, 135, 113, 130, 147, 144, 124, 113, 119, 126, 128, 120, 141, 130, 143, 110, 113, 147, 116, 132, 133, 106, 122, 131, 136, 127, 115, 121, 130, 115, 126, 128, 145, 108, 135, 122, 109, 168, 121, 138, 119, 123, 121, 119, 134, 113, 126, 104, 129, 111, 137, 122, 130, 129, 128, 128, 110, 142, 114, 125, 110, 127, 129, 119, 124, 133, 125, 151, 120, 133, 131, 126, 132, 133, 145, 136, 114, 122, 125, 123, 135, 123, 129, 116, 118, 115, 142, 115, 134, 114, 137, 123, 127, 124, 133, 125, 108, 108, 124, 116, 123, 131, 131, 134, 118, 113, 124, 120, 139, 130, 142, 126, 131, 130, 123, 120, 123, 133, 123, 113, 129, 114, 131, 118, 132, 128, 119, 115, 114, 105, 135, 126, 126, 119, 114, 137, 125, 134, 127, 123, 130, 106, 124, 135, 111, 113, 133, 125, 120, 128, 137, 128, 121, 119, 122, 111, 137, 113, 118, 128, 113, 148, 137, 141, 130, 129, 131, 129, 116, 137, 150, 119, 140, 134, 135, 107, 130, 136, 120, 137, 117, 116, 101, 121, 126, 126, 132, 133, 121, 125, 118, 124, 136, 124, 126, 123, 144, 114, 117, 121, 131, 123, 136, 110, 123, 105, 131, 129, 138, 152, 132, 146, 120, 117, 121, 147, 98, 133, 128, 131, 121, 123, 120, 148, 129, 133, 124, 128, 122, 127, 134, 121, 131, 126, 131, 133, 126, 120, 126, 128, 135, 137, 132, 127, 105, 125, 128, 111, 127, 125, 142, 106, 112, 135, 119, 113, 129, 119, 122, 134, 128, 113, 113, 114, 117, 122, 138, 122, 134, 126, 119, 142, 124, 117, 132, 136, 133, 116, 133, 107, 134, 132, 136, 97, 129, 128, 139, 130, 116, 136, 135, 115, 111, 119, 104, 122, 121, 144, 128, 139, 118, 127, 123, 129, 131, 122, 118, 129, 132, 141, 126, 127, 114, 111, 125, 132, 115, 132, 121, 119, 118, 119, 111, 140, 117, 130, 122, 133, 119, 123, 117, 133, 136, 123, 126, 136, 114, 129, 116, 140, 131, 125, 121, 132, 107, 115, 135, 143, 143, 128, 133, 121, 132, 132, 132, 113, 118, 118, 124, 135, 130, 118, 127, 123, 115, 115, 119, 110, 114, 113, 130, 130, 134, 134, 141, 132, 126, 121, 121, 140, 122, 120, 131, 129, 119, 132, 137, 137, 128, 125, 126, 120, 120, 115, 134, 130, 133, 127, 115, 122, 132, 124, 137, 125, 115, 122, 132, 106, 148, 133, 129, 122, 119, 137, 129, 125, 154, 133, 120, 117, 130, 118, 116, 128, 126, 129, 129, 134, 121, 136, 130, 130, 136, 127, 117, 131, 120, 118, 126, 127, 136, 112, 126, 108, 107, 119, 134, 142, 126, 104, 129, 105, 119, 135, 123, 131, 130, 144, 113, 107, 130, 123, 124, 113, 136, 120, 119, 114, 106, 119, 120, 130, 149, 138, 130, 125, 110, 129, 125, 130, 110, 105, 127, 136, 112, 131, 104, 120, 118, 120, 131, 114, 131, 136, 128, 130, 136, 152, 136, 127, 110, 118, 126, 99, 114, 119, 122, 114, 128, 143, 129, 104, 130, 114, 136, 126, 137, 133, 122, 118, 126, 108, 120, 147, 135, 134, 123, 134, 122, 140, 125, 128, 125, 115, 128, 115, 133, 127, 131, 120, 124, 132, 145, 121, 124, 123, 122, 146, 141, 118, 122, 128, 113, 114, 116, 129, 120, 131, 134, 127, 129, 124, 128, 116, 143, 126, 138, 133, 128, 140, 122, 133, 112, 128, 129, 119, 146, 102, 155, 131, 148, 114, 122, 113, 127, 121, 105, 107, 140, 124, 124, 116, 121, 135, 138, 123, 121, 120, 129, 109, 131, 132, 130, 133, 124, 134, 139, 128, 134, 115, 121, 140, 109, 121, 121, 120, 118, 139, 126, 129, 122, 143, 140, 120, 110, 113, 132, 121, 127, 135, 134, 121, 122, 114, 122, 121, 114, 145, 144, 132, 121, 137, 130, 126, 119, 124, 127, 120, 132, 127, 122, 142, 150, 130, 128, 121, 109, 128, 130, 126, 130, 121, 121, 123, 121, 142, 126, 126, 130, 138, 116, 143, 106, 117, 141, 140, 128, 125, 123, 127, 108, 139, 126, 123, 119, 134, 122, 124, 126, 133, 128, 124, 105, 122, 99, 131, 133, 119, 121, 123, 119, 120, 132, 113, 143, 136, 124, 131, 131, 126, 126, 140, 120, 120, 119, 124, 121, 135, 111, 126, 113, 122, 122, 118, 128, 108, 116, 127, 106, 123, 97, 123, 140, 117, 125, 134, 134, 120, 128, 113, 115, 122, 139, 146, 129, 122, 99, 111, 132, 145, 133, 119, 134, 138, 124, 134, 126, 127, 119, 124, 110, 127, 122, 120, 127, 115, 129, 106, 125, 127, 128, 138, 137, 121, 129, 103, 127, 135, 113, 147, 117, 118, 124, 131, 122, 120, 129, 128, 127, 109, 122, 111, 132, 113, 131, 141, 149, 108, 119, 112, 107, 111, 117, 118, 131, 109, 128, 130, 127, 121, 139, 157, 119, 129, 138, 124, 127, 126, 130, 117, 121, 129, 139, 132, 138, 130, 136, 133, 125, 132, 106, 145, 113, 130, 141, 129, 126, 115, 130, 111, 118, 123, 120, 111, 137, 138, 143, 133, 136, 121, 134, 118, 113, 116, 127, 127, 110, 109, 121, 119, 125, 125, 111, 122, 138, 122, 113, 125, 121, 134, 119, 109, 112, 134, 111, 121, 117, 106, 115, 128, 112, 163, 111, 133, 134, 125, 110, 133, 122, 125, 120, 134, 120, 124, 140, 131, 124, 135, 127, 142, 131, 120, 131, 125, 137, 130, 118, 130, 109, 136, 138, 129, 108, 132, 120, 121, 125, 136, 133, 136, 136, 129, 135, 122, 149, 131, 133, 122, 128, 99, 143, 110, 119, 129, 124, 130, 117, 118, 122, 111, 140, 125, 124, 125, 141, 130, 125, 142, 119, 145, 123, 133, 132, 131, 133, 133, 121, 140, 129, 119, 121, 135, 134, 121, 134, 107, 133, 119, 115, 122, 127, 125, 121, 121, 130, 134, 121, 124, 150, 119, 121, 140, 128, 130, 127, 94, 113, 112, 109, 143, 119, 133, 142, 136, 127, 128, 114, 118, 120, 110, 121, 150, 133, 116, 131, 126, 124, 150, 129, 115, 126, 114, 126, 130, 125, 133, 123, 99, 105, 140, 124, 129, 116, 115, 129, 132, 112, 121, 129, 119, 139, 124, 136, 106, 127, 130, 124, 122, 122, 118, 124, 138, 128, 131, 144, 135, 128, 118, 129, 135, 139, 127, 122, 116, 114, 126, 126, 116, 122, 130, 110, 119, 121, 98, 126, 126, 114, 122, 125, 126, 118, 113, 112, 139, 116, 133, 120, 121, 126, 132, 124, 142, 136, 132, 137, 122, 113, 124, 113, 124, 128, 108, 108, 125, 123, 113, 134, 134, 117, 129, 119, 110, 137, 119, 118, 145, 115, 122, 113, 120, 131, 128, 110, 121, 109, 120, 152, 117, 131, 126, 115, 119, 119, 146, 130, 122, 134, 131, 117, 125, 121, 119, 122, 135, 116, 130, 124, 119, 123, 146, 130, 125, 121, 131, 144, 134, 144, 115, 108, 137, 130, 103, 137, 108, 119, 117, 138, 125, 122, 115, 139, 148, 116, 135, 148, 106, 118, 137, 120, 128, 113, 140, 137, 115, 132, 139, 124, 125, 141, 105, 116, 122, 115, 120, 127, 118, 114, 102, 120, 128, 131, 145, 101, 138, 131, 125, 133, 130, 142, 126, 125, 127, 117, 122, 119, 130, 125, 112, 114, 122, 127, 124, 124, 146, 113, 131, 115, 116, 127, 117, 123, 124, 125, 137, 134, 114, 130, 141, 113, 131, 120, 124, 117, 134, 120, 134, 126, 119, 112, 131, 141, 121, 127, 134, 110, 122, 119, 128, 122, 120, 121, 117, 129, 133, 119, 132, 135, 122, 125, 152, 123, 133, 117, 131, 124, 127, 119, 131, 132, 119, 110, 134, 117, 135, 138, 127, 122, 137, 110, 115, 118, 116, 133, 132, 131, 131, 142, 108, 131, 126, 134, 133, 130, 126, 134, 126, 126, 107, 122, 116, 138, 132, 130, 136, 127, 115, 120, 118, 115, 140, 115, 125, 120, 117, 110, 137, 112, 133, 120, 115, 118, 139, 110, 106, 124, 130, 125, 104, 129, 127, 113, 119, 118, 130, 131, 136, 116, 109, 141, 135, 124, 111, 131, 129, 125, 120, 124, 137, 127, 118, 129, 145, 115, 130, 136, 123, 118, 121, 134, 113, 119, 119, 127, 125, 137, 147, 133, 142, 129, 132, 126, 121, 119, 132, 158, 129, 133, 122, 126, 123, 127, 115, 133, 109, 133, 141, 116, 124, 128, 121, 126, 118, 135, 119, 121, 123, 131, 116, 119, 132, 125, 125, 134, 122, 124, 149, 109, 127, 132, 135, 115, 118, 124, 135, 104, 142, 126, 123, 119, 126, 114, 124, 117, 132, 124, 129, 127, 128, 116, 125, 132, 140, 127, 127, 126, 116, 124, 112, 126, 115, 129, 145, 132, 124, 124, 126, 123, 131, 134, 135, 128, 118, 125, 126, 140, 129, 141, 129, 126, 113, 115, 111, 95, 115, 113, 131, 125, 112, 125, 132, 133, 107, 130, 116, 133, 154, 140, 123, 115, 122, 135, 138, 113, 117, 132, 139, 103, 105, 129, 106, 104, 127, 123, 124, 118, 113, 121, 109, 121, 125, 126, 106, 109, 148, 126, 139, 114, 126, 126, 136, 118, 129, 125, 127, 129, 114, 132, 130, 125, 126, 98, 142, 103, 112, 131, 105, 130, 134, 115, 122, 130, 118, 121, 115, 125, 128, 139, 136, 125, 128, 126, 135, 106, 113, 135, 119, 131, 136, 139, 132, 145, 135, 117, 126, 119, 130, 130, 127, 133, 126, 130, 120, 123, 129, 113, 134, 113, 118, 127, 133, 138, 107, 111, 126, 124, 136, 137, 108, 114, 124, 112, 123, 118, 135, 130, 117, 129, 124, 141, 120, 142, 130, 111, 136, 110, 148, 124, 130, 119, 137, 136, 124, 102, 113, 128, 124, 121, 120, 127, 131, 148, 134, 130, 117, 134, 118, 115, 123, 109, 121, 118, 118, 115, 135, 106, 116, 124, 123, 133, 122, 113, 123, 120, 136, 133, 123, 146, 131, 131, 119, 130, 130, 124, 113, 122, 143, 121, 119, 122, 121, 131, 139, 138, 114, 132, 123, 127, 131, 141, 121, 116, 138, 129, 148, 130, 128, 134, 137, 128, 126, 137, 109, 127, 121, 131, 127, 141, 121, 130, 125, 148, 126, 131, 134, 99, 110, 109, 120, 112, 118, 116, 125, 133, 146, 136, 138, 117, 129, 132, 124, 107, 121, 119, 112, 141, 134, 113, 130, 115, 116, 111, 131, 125, 126, 121, 148, 124, 121, 144, 129, 137, 128, 126, 131, 124, 125, 128, 129, 128, 131, 134, 115, 132, 112, 126, 116, 98, 115, 120, 115, 118, 113, 113, 132, 117, 121, 134, 121, 127, 114, 125, 127, 120, 120, 126, 122, 125, 129, 121, 141, 105, 122, 112, 126, 130, 131, 124, 136, 121, 129, 130, 122, 130, 106, 134, 116, 102, 135, 132, 120, 119, 144, 124, 125, 124, 126, 121, 131, 133, 122, 127, 132, 118, 125, 137, 114, 120, 121, 131, 153, 135, 121, 114, 113, 129, 124, 131, 127, 127, 137, 131, 143, 108, 121, 104, 118, 134, 139, 132, 139, 110, 125, 115, 120, 136, 115, 128, 137, 139, 119, 124, 129, 127, 128, 142, 120, 124, 119, 132, 114, 116, 151, 133, 127, 124, 137, 126, 144, 112, 147, 135, 118, 126, 134, 132, 122, 129, 116, 130, 117, 109, 122, 138, 122, 141, 131, 120, 125, 121, 130, 153, 125, 114, 109, 130, 130, 146, 141, 117, 132, 135, 128, 140, 108, 123, 92, 129, 119, 129, 121, 120, 113, 122, 124, 135, 127, 116, 142, 111, 110, 110, 139, 145, 131, 124, 112, 122, 146, 145, 130, 102, 110, 124, 136, 122, 113, 113, 122, 124, 103, 110, 122, 107, 140, 128, 129, 107, 125, 127, 124, 120, 120, 116, 109, 136, 128, 128, 118, 134, 114, 113, 147, 126, 116, 107, 136, 133, 120, 127, 118, 126, 133, 140, 102, 134, 129, 110, 136, 110, 129, 132, 117, 145, 123, 145, 123, 122, 139, 132, 137, 123, 122, 131, 110, 128, 108, 130, 123, 126, 99, 122, 124, 122, 113, 127, 121, 114, 111, 119, 114, 110, 121, 129, 120, 124, 132, 134, 129, 127, 113, 130, 125, 123, 113, 135, 123, 123, 134, 122, 126, 121, 125, 127, 135, 114, 118, 132, 109, 135, 119, 131, 125, 144, 121, 102, 122, 113, 127, 120, 140, 124, 132, 133, 124, 111, 107, 124, 144, 114, 145, 124, 129, 143, 118, 122, 139, 120, 116, 129, 125, 135, 134, 109, 135, 126, 109, 113, 126, 132, 122, 128, 133, 134, 105, 107, 122, 129, 116, 130, 122, 122, 124, 126, 137, 124, 113, 138, 105, 120, 116, 130, 146, 133, 130, 112, 127, 132, 139, 137, 136, 133, 126, 135, 109, 119, 133, 108, 133, 120, 139, 114, 114, 121, 128, 138, 140, 119, 134, 101, 146, 114, 133, 136, 122, 104, 124, 119, 109, 132, 114, 126, 133, 116, 133, 134, 123, 104, 126, 110, 113, 115, 120, 126, 150, 128, 143, 118, 152, 129, 126, 106, 131, 126, 114, 133, 121, 131, 126, 133, 123, 131, 130, 119, 132, 128, 133, 151, 113, 142, 125, 123, 125, 106, 133, 125, 132, 122, 128, 137, 122, 128, 121, 119, 123, 129, 148, 139, 114, 121, 122, 114, 123, 128, 112, 112, 133, 136, 120, 146, 113, 107, 110, 123, 122, 127, 136, 128, 117, 121, 123, 118, 121, 149, 124, 134, 115, 127, 134, 124, 109, 123, 126, 118, 126, 116, 108, 124, 129, 122, 119, 128, 120, 135, 113, 123, 123, 104, 155, 138, 113, 164, 117, 132, 122, 105, 120, 118, 120, 124, 132, 145, 118, 120, 114, 140, 127, 129, 109, 123, 137, 122, 109, 110, 128, 141, 132, 122, 134, 124, 127, 124, 110, 125, 123, 116, 126, 124, 119, 114, 136, 126, 111, 117, 109, 129, 123, 100, 120, 129, 109, 135, 132, 112, 127, 123, 115, 132, 134, 128, 120, 124, 124, 125, 154, 114, 125, 145, 127, 122, 144, 111, 129, 123, 147, 131, 109, 122, 130, 125, 128, 130, 123, 135, 125, 128, 123, 143, 133, 124, 131, 117, 111, 117, 120, 136, 137, 130, 145, 123, 120, 123, 120, 146, 117, 117, 129, 115, 127, 128, 122, 129, 134, 130, 117, 132, 128, 131, 108, 122, 112, 116, 126, 120, 118, 122, 121, 107, 133, 130, 129, 124, 110, 132, 122, 123, 119, 125, 134, 130, 116, 108, 122, 119, 143, 111, 125, 138, 128, 127, 124, 106, 123, 100, 126, 118, 122, 139, 111, 141, 140, 145, 119, 127, 151, 118, 126, 164, 120, 134, 140, 141, 118, 104, 117, 123, 122, 125, 132, 112, 137, 148, 113, 122, 123, 125, 131, 126, 121, 131, 119, 130, 123, 140, 140, 121, 130, 136, 128, 113, 124, 128, 120, 119, 114, 135, 114, 119, 126, 125, 124, 128, 118, 133, 133, 120, 143, 100, 106, 134, 124, 141, 106, 116, 124, 130, 128, 136, 138, 119, 143, 128, 141, 104, 114, 136, 133, 124, 108, 123, 123, 130, 128, 141, 138, 127, 137, 142, 126, 140, 131, 114, 130, 102, 131, 113, 105, 126, 129, 109, 124, 105, 110, 134, 132, 108, 123, 119, 137, 114, 138, 111, 129, 127, 138, 113, 120, 122, 132, 128, 101, 128, 108, 116, 113, 147, 130, 125, 134, 112, 138, 132, 124, 129, 125, 131, 128, 122, 131, 119, 105, 118, 145, 124, 123, 139, 123, 120, 124, 128, 117, 131, 129, 132, 125, 151, 135, 124, 122, 114, 100, 139, 134, 121, 122, 113, 143, 124, 118, 132, 126, 148, 129, 130, 122, 133, 128, 148, 136, 131, 132, 124, 129, 131, 138, 122, 124, 115, 114, 118, 140, 110, 126, 123, 138, 107, 110, 116, 131, 125, 120, 144, 125, 136, 143, 152, 128, 137, 123, 129, 121, 131, 135, 135, 111, 135, 130, 130, 121, 122, 120, 145, 134, 123, 136, 131, 127, 136, 120, 128, 128, 126, 115, 130, 132, 128, 127, 125, 123, 114, 123, 127, 128, 120, 133, 117, 134, 121, 126, 127, 130, 120, 108, 128, 132, 119, 118, 142, 123, 142, 124, 113, 142, 119, 146, 133, 121, 118, 127, 142, 119, 130, 133, 121, 124, 123, 118, 122, 129, 127, 121, 117, 121, 128, 128, 114, 136, 128, 123, 132, 123, 127, 116, 101, 128, 126, 125, 118, 134, 135, 129, 135, 125, 106, 125, 125, 112, 132, 134, 125, 120, 115, 110, 126, 126, 132, 127, 118, 113, 135, 136, 138, 144, 116, 116, 121, 128, 117, 120, 96, 131, 124, 125, 137, 116, 129, 124, 116, 119, 117, 135, 116, 150, 120, 117, 133, 133, 115, 129, 132, 127, 126, 126, 127, 117, 115, 116, 131, 125, 135, 124, 132, 115, 130, 129, 132, 105, 144, 140, 137, 126, 116, 149, 126, 122, 121, 126, 117, 127, 122, 138, 143, 119, 128, 126, 131, 132, 114, 118, 142, 122, 122, 127, 126, 132, 121, 129, 133, 125, 129, 113, 121, 112, 124, 131, 111, 113, 116, 119, 124, 126, 126, 130, 127, 119, 130, 137, 123, 130, 128, 114, 129, 118, 130, 119, 137, 122, 129, 112, 129, 114, 104, 117, 121, 118, 132, 112, 127, 110, 132, 124, 118, 129, 116, 137, 102, 126, 116, 134, 125, 132, 124, 127, 129, 146, 132, 127, 125, 137, 129, 134, 109, 115, 127, 135, 123, 118, 135, 128, 121, 121, 124, 123, 135, 105, 116, 126, 132, 122, 154, 134, 132, 132, 121, 141, 144, 111, 127, 124, 131, 140, 124, 107, 123, 115, 131, 135, 128, 127, 137, 117, 119, 133, 129, 127, 134, 142, 134, 137, 126, 130, 133, 119, 125, 124, 122, 112, 127, 131, 131, 121, 125, 138, 130, 129, 128, 120, 116, 120, 117, 123, 121, 130, 134, 113, 120, 113, 119, 141, 123, 125, 106, 130, 112, 125, 127, 110, 122, 127, 127, 139, 135, 117, 95, 119, 107, 133, 127, 136, 128, 127, 122, 126, 126, 122, 113, 117, 122, 116, 130, 134, 126, 125, 126, 131, 128, 115, 110, 129, 107, 124, 120, 121, 143, 135, 142, 121, 118, 131, 123, 125, 129, 98, 133, 127, 131, 125, 114, 105, 128, 116, 113, 124, 114, 99, 128, 118, 132, 120, 119, 119, 108, 124, 119, 112, 120, 119, 112, 138, 123, 124, 113, 126, 115, 114, 124, 129, 113, 123, 135, 130, 125, 121, 100, 132, 131, 136, 130, 122, 119, 132, 126, 119, 138, 107, 121, 129, 136, 133, 131, 122, 128, 138, 135, 129, 111, 128, 137, 126, 133, 111, 118, 132, 135, 132, 128, 134, 121, 122, 139, 114, 144, 117, 124, 136, 118, 116, 122, 116, 126, 131, 132, 120, 132, 128, 129, 141, 141, 138, 116, 128, 134, 127, 126, 134, 131, 134, 136, 118, 125, 136, 133, 126, 164, 122, 105, 129, 116, 119, 132, 126, 143, 108, 139, 126, 120, 125, 126, 118, 140, 127, 123, 96, 143, 126, 127, 138, 138, 117, 137, 118, 141, 127, 132, 117, 121, 141, 113, 137, 130, 121, 129, 135, 134, 127, 116, 114, 123, 140, 108, 117, 117, 110, 125, 115, 121, 118, 114, 124, 120, 132, 131, 125, 138, 107, 118, 127, 138, 113, 128, 116, 112, 142, 123, 136, 141, 124, 123, 110, 129, 112, 138, 137, 128, 104, 125, 144, 112, 125, 124, 132, 133, 131, 133, 131, 132, 122, 128, 113, 119, 136, 115, 127, 119, 126, 148, 128, 108, 134, 132, 119, 115, 130, 115, 123, 128, 129, 125, 131, 133, 126, 143, 127, 122, 125, 105, 157, 123, 137, 137, 119, 104, 110, 123, 109, 120, 136, 119, 128, 120, 125, 140, 118, 126, 122, 137, 124, 129, 139, 126, 130, 133, 136, 134, 132, 113, 126, 138, 122, 129, 114, 128, 129, 133, 113, 119, 117, 127, 120, 134, 124, 130, 112, 118, 156, 122, 121, 102, 113, 141, 139, 140, 121, 120, 113, 122, 100, 111, 124, 129, 129, 129, 131, 135, 140, 160, 124, 123, 119, 130, 122, 135, 118, 133, 127, 135, 118, 119, 123, 124, 132, 133, 113, 113, 126, 137, 123, 120, 128, 146, 135, 131, 120, 133, 131, 127, 120, 122, 122, 110, 133, 134, 129, 125, 127, 128, 122, 121, 132, 124, 130, 137, 126, 127, 133, 134, 111, 121, 135, 112, 127, 130, 117, 129, 128, 103, 120, 113, 132, 137, 126, 139, 123, 131, 141, 119, 124, 115, 136, 120, 116, 120, 126, 127, 119, 138, 131, 121, 111, 128, 120, 129, 115, 135, 125, 122, 118, 135, 117, 138, 127, 114, 132, 136, 114, 129, 132, 135, 122, 124, 110, 118, 128, 129, 129, 116, 122, 125, 138, 126, 140, 113, 107, 115, 118, 110, 124, 102, 118, 134, 131, 131, 120, 130, 125, 120, 123, 140, 128, 129, 143, 133, 115, 130, 129, 125, 135, 121, 124, 127, 142, 120, 130, 121, 135, 117, 114, 119, 140, 152, 137, 110, 129, 124, 135, 132, 122, 130, 126, 105, 138, 112, 120, 141, 124, 123, 120, 125, 121, 114, 128, 120, 128, 114, 123, 120, 138, 136, 132, 124, 118, 131, 134, 103, 133, 133, 115, 123, 140, 123, 141, 128, 112, 126, 132, 124, 120, 117, 137, 125, 147, 125, 106, 120, 129, 128, 122, 134, 126, 110, 131, 124, 105, 125, 123, 127, 113, 116, 118, 127, 126, 138, 112, 125, 128, 116, 113, 134, 122, 117, 136, 124, 108, 134, 136, 131, 134, 119, 139, 114, 138, 132, 124, 140, 159, 130, 120, 146, 106, 129, 134, 125, 122, 109, 135, 123, 104, 123, 113, 126, 122, 124, 138, 121, 124, 126, 115, 121, 130, 131, 125, 127, 132, 136, 146, 137, 118, 118, 137, 112, 148, 97, 120, 118, 129, 126, 121, 124, 118, 146, 137, 114, 109, 129, 124, 113, 118, 143, 140, 119, 113, 116, 123, 133, 129, 117, 131, 142, 111, 124, 131, 127, 132, 114, 129, 134, 121, 113, 110, 121, 113, 124, 124, 121, 128, 134, 110, 130, 131, 123, 121, 122, 116, 135, 117, 116, 116, 129, 126, 117, 135, 129, 140, 126, 134, 142, 125, 112, 129, 127, 114, 126, 122, 138, 115, 131, 150, 131, 132, 125, 118, 118, 117, 125, 131, 125, 145, 106, 150, 127, 139, 105, 121, 98, 117, 127, 113, 138, 152, 129, 124, 133, 123, 138, 131, 129, 110, 123, 125, 130, 139, 122, 116, 117, 125, 117, 125, 126, 123, 125, 115, 125, 118, 131, 128, 107, 117, 124, 113, 118, 126, 117, 114, 117, 133, 125, 140, 126, 123, 133, 131, 139, 132, 121, 130, 134, 115, 100, 133, 133, 112, 131, 118, 137, 122, 120, 130, 121, 123, 124, 131, 162, 126, 138, 142, 138, 131, 122, 139, 120, 119, 123, 123, 140, 106, 123, 119, 150, 136, 129, 130, 132, 110, 113, 123, 122, 119, 127, 109, 122, 130, 123, 129, 128, 119, 116, 133, 127, 143, 121, 135, 121, 123, 142, 126, 118, 125, 130, 136, 127, 118, 119, 144, 116, 143, 138, 132, 120, 130, 117, 114, 144, 127, 154, 120, 125, 103, 136, 124, 121, 123, 122, 123, 114, 127, 117, 146, 112, 144, 140, 133, 132, 113, 129, 123, 131, 119, 125, 135, 125, 129, 136, 119, 115, 117, 113, 126, 127, 129, 113, 141, 112, 122, 124, 119, 130, 140, 134, 129, 128, 120, 119, 131, 138, 135, 122, 102, 131, 143, 139, 125, 121, 110, 113, 126, 116, 127, 111, 120, 112, 131, 134, 132, 118, 130, 139, 117, 132, 142, 125, 144, 120, 123, 130, 126, 105, 121, 127, 136, 110, 141, 113, 116, 110, 127, 116, 116, 147, 118, 134, 120, 140, 133, 125, 119, 137, 123, 119, 137, 109, 104, 135, 111, 130, 114, 119, 124, 130, 118, 128, 126, 121, 114, 115, 123, 99, 122, 131, 115, 133, 128, 124, 110, 132, 112, 131, 131, 120, 127, 112, 137, 128, 125, 113, 116, 109, 118, 132, 131, 120, 109, 134, 122, 132, 132, 133, 125, 138, 120, 136, 113, 147, 142, 134, 122, 102, 131, 110, 122, 101, 121, 117, 119, 131, 129, 123, 120, 96, 99, 116, 127, 124, 140, 136, 102, 127, 128, 124, 131, 131, 122, 117, 121, 107, 125, 126, 130, 130, 134, 128, 117, 124, 127, 138, 121, 104, 125, 117, 112, 135, 122, 136, 127, 131, 131, 138, 126, 119, 122, 130, 128, 122, 129, 129, 121, 129, 120, 121, 128, 114, 120, 130, 111, 120, 127, 124, 147, 132, 123, 118, 124, 121, 137, 136, 124, 128, 134, 121, 123, 116, 130, 106, 121, 123, 134, 130, 137, 110, 125, 126, 138, 132, 110, 121, 132, 146, 101, 136, 130, 133, 110, 114, 126, 110, 118, 108, 121, 118, 130, 125, 125, 125, 123, 106, 129, 108, 120, 123, 124, 128, 138, 117, 101, 117, 136, 123, 129, 124, 108, 127, 120, 119, 145, 144, 141, 126, 110, 124, 133, 122, 114, 111, 137, 137, 145, 106, 110, 132, 131, 119, 130, 125, 140, 134, 127, 113, 132, 139, 138, 119, 134, 130, 122, 123, 115, 124, 134, 137, 138, 128, 127, 129, 130, 123, 102, 127, 126, 119, 123, 135, 108, 131, 120, 132, 115, 123, 123, 123, 129, 129, 147, 127, 123, 133, 125, 118, 132, 133, 125, 104, 134, 124, 106, 130, 115, 101, 128, 130, 115, 120, 140, 120, 121, 148, 112, 135, 132, 119, 117, 131, 147, 109, 108, 121, 134, 134, 123, 105, 119, 134, 125, 122, 128, 128, 116, 112, 134, 132, 138, 116, 128, 128, 127, 127, 128, 136, 123, 138, 122, 126, 131, 109, 124, 123, 131, 129, 127, 109, 142, 125, 110, 137, 130, 134, 131, 128, 122, 121, 103, 123, 131, 134, 121, 139, 119, 114, 117, 156, 114, 144, 128, 106, 122, 105, 114, 116, 134, 124, 135, 143, 138, 162, 128, 121, 124, 111, 120, 148, 117, 140, 119, 113, 139, 115, 106, 109, 130, 126, 132, 130, 127, 126, 129, 115, 134, 131, 127, 135, 122, 125, 122, 150, 110, 129, 132, 146, 135, 113, 121, 114, 129, 105, 134, 134, 120, 130, 125, 127, 105, 125, 147, 117, 134, 137, 133, 115, 124, 125, 124, 127, 121, 139, 110, 127, 114, 136, 126, 121, 125, 118, 123, 121, 135, 119, 113, 122, 109, 124, 121, 127, 129, 109, 104, 124, 126, 109, 120, 99, 139, 129, 115, 121, 138, 115, 120, 151, 127, 133, 125, 112, 118, 130, 128, 105, 123, 136, 125, 130, 124, 116, 133, 125, 131, 126, 115, 121, 115, 139, 126, 137, 144, 120, 101, 111, 122, 114, 134, 126, 119, 130, 138, 118, 122, 123, 117, 120, 120, 127, 141, 118, 127, 126, 128, 145, 143, 132, 153, 128, 119, 118, 125, 139, 134, 120, 128, 119, 121, 137, 131, 119, 111, 135, 113, 120, 130, 119, 130, 126, 129, 133, 121, 111, 124, 121, 119, 121, 131, 137, 127, 132, 122, 122, 139, 139, 130, 114, 123, 124, 132, 133, 139, 152, 132, 128, 138, 125, 127, 109, 122, 128, 117, 120, 123, 126, 123, 124, 118, 120, 121, 129, 116, 137, 127, 130, 124, 134, 136, 117, 115, 140, 144, 113, 121, 125, 132, 127, 116, 136, 127, 120, 141, 140, 117, 131, 139, 110, 104, 127, 135, 125, 127, 133, 125, 126, 131, 114, 128, 112, 149, 116, 131, 110, 115, 120, 127, 126, 148, 140, 127, 101, 127, 127, 134, 105, 126, 112, 129, 123, 113, 122, 134, 111, 130, 131, 127, 130, 132, 133, 135, 128, 122, 127, 130, 127, 146, 119, 123, 122, 130, 130, 146, 124, 123, 135, 122, 134, 144, 135, 118, 113, 135, 116, 122, 118, 113, 136, 136, 107, 128, 133, 104, 133, 117, 124, 126, 120, 111, 117, 117, 123, 119, 140, 113, 121, 133, 123, 131, 133, 145, 102, 116, 113, 128, 137, 150, 128, 113, 126, 122, 128, 105, 137, 129, 137, 117, 128, 133, 123, 112, 125, 137, 125, 107, 123, 103, 119, 109, 113, 115, 127, 134, 124, 99, 107, 110, 120, 108, 131, 124, 128, 127, 127, 116, 121, 105, 134, 137, 142, 136, 119, 128, 117, 125, 112, 138, 134, 128, 116, 120, 120, 117, 143, 124, 134, 119, 120, 133, 96, 117, 137, 103, 126, 123, 120, 137, 136, 110, 122, 139, 135, 114, 136, 122, 123, 121, 123, 123, 130, 131, 121, 134, 122, 133, 128, 118, 118, 130, 131, 123, 142, 128, 129, 122, 109, 138, 116, 113, 125, 138, 151, 117, 130, 118, 121, 122, 134, 128, 147, 138, 127, 141, 114, 144, 136, 123, 113, 111, 125, 129, 115, 122, 123, 113, 124, 121, 144, 106, 140, 127, 153, 119, 128, 132, 124, 136, 126, 121, 118, 119, 128, 139, 123, 120, 125, 133, 113, 123, 126, 131, 104, 125, 119, 132, 120, 134, 119, 115, 133, 124, 141, 107, 105, 142, 129, 125, 121, 122, 122, 124, 107, 118, 100, 124, 118, 141, 129, 109, 130, 123, 119, 135, 131, 109, 127, 112, 127, 132, 124, 127, 126, 129, 134, 136, 128, 119, 120, 127, 128, 112, 120, 138, 123, 136, 120, 119, 112, 133, 127, 117, 128, 134, 137, 132, 126, 124, 124, 112, 127, 123, 132, 131, 132, 128, 109, 130, 117, 133, 140, 123, 134, 118, 125, 122, 109, 123, 129, 120, 113, 122, 130, 132, 133, 132, 131, 124, 121, 106, 134, 123, 123, 138, 128, 120, 118, 123, 135, 124, 138, 144, 145, 121, 135, 107, 141, 133, 121, 134, 114, 123, 117, 100, 138, 132, 136, 129, 125, 120, 131, 113, 104, 118, 118, 129, 109, 145, 121, 125, 114, 123, 125, 121, 146, 126, 131, 116, 124, 110, 114, 139, 124, 115, 131, 131, 126, 159, 145, 120, 126, 120, 135, 124, 115, 120, 123, 121, 124, 118, 116, 128, 131, 130, 131, 130, 129, 106, 119, 119, 127, 132, 132, 128, 139, 124, 136, 137, 118, 120, 133, 115, 126, 122, 118, 138, 120, 128, 116, 106, 133, 135, 136, 118, 130, 128, 125, 122, 118, 139, 131, 144, 127, 127, 127, 139, 120, 141, 113, 121, 114, 114, 119, 111, 136, 109, 129, 127, 114, 127, 134, 108, 119, 132, 124, 130, 121, 120, 122, 100, 129, 122, 113, 134, 124, 112, 128, 116, 133, 127, 125, 127, 160, 125, 121, 111, 122, 128, 117, 132, 127, 120, 117, 124, 139, 117, 120, 126, 116, 123, 119, 107, 113, 121, 124, 138, 132, 141, 136, 128, 118, 121, 121, 125, 108, 129, 112, 124, 116, 125, 122, 125, 127, 127, 125, 117, 122, 97, 129, 130, 115, 117, 128, 113, 137, 133, 152, 115, 120, 119, 157, 124, 126, 136, 136, 132, 129, 124, 102, 128, 119, 151, 117, 132, 117, 114, 123, 116, 105, 121, 133, 131, 133, 126, 143, 136, 138, 128, 122, 117, 119, 121, 120, 131, 120, 110, 113, 131, 133, 100, 118, 134, 122, 118, 130, 128, 126, 136, 119, 111, 135, 119, 129, 128, 133, 108, 127, 137, 123, 110, 123, 125, 127, 141, 139, 128, 141, 128, 118, 113, 111, 133, 124, 117, 137, 130, 125, 129, 112, 129, 135, 123, 135, 128, 127, 130, 121, 136, 118, 121, 147, 130, 120, 113, 126, 144, 125, 134, 101, 127, 128, 115, 128, 107, 116, 127, 111, 134, 131, 132, 117, 119, 129, 122, 112, 133, 146, 134, 114, 113, 141, 122, 140, 118, 137, 124, 120, 114, 124, 127, 116, 137, 112, 124, 125, 136, 126, 126, 126, 116, 118, 112, 122, 102, 116, 129, 121, 134, 119, 120, 140, 124, 140, 138, 121, 102, 105, 124, 115, 126, 106, 114, 127, 128, 124, 105, 124, 124, 117, 126, 119, 124, 118, 135, 134, 121, 143, 136, 118, 124, 115, 121, 129, 119, 119, 122, 114, 129, 135, 109, 135, 132, 136, 125, 136, 147, 126, 124, 125, 110, 154, 130, 139, 138, 119, 130, 104, 135, 123, 129, 136, 116, 129, 120, 113, 108, 112, 132, 119, 119, 146, 127, 131, 129, 125, 137, 144, 126, 122, 121, 111, 131, 117, 119, 120, 135, 129, 117, 94, 116, 115, 123, 124, 145, 134, 119, 122, 125, 130, 118, 112, 123, 134, 121, 109, 120, 139, 131, 112, 129, 120, 141, 125, 106, 113, 125, 108, 110, 86, 132, 122, 130, 108, 124, 129, 122, 124, 124, 131, 126, 139, 117, 130, 130, 129, 130, 128, 148, 125, 120, 103, 123, 122, 134, 133, 127, 128, 131, 105, 117, 124, 129, 125, 139, 143, 127, 122, 135, 138, 130, 130, 105, 124, 129, 139, 120, 119, 128, 145, 114, 138, 133, 149, 126, 130, 113, 122, 115, 118, 128, 139, 144, 130, 132, 132, 111, 137, 113, 123, 143, 139, 121, 135, 106, 110, 137, 120, 127, 127, 112, 131, 110, 136, 133, 126, 120, 120, 115, 115, 122, 130, 138, 120, 149, 120, 113, 126, 118, 119, 125, 108, 121, 149, 125, 110, 121, 143, 135, 137, 128, 135, 125, 131, 132, 124, 136, 109, 133, 123, 117, 127, 123, 118, 130, 139, 134, 107, 117, 130, 127, 116, 133, 141, 111, 134, 116, 138, 127, 142, 129, 127, 133, 129, 130, 134, 135, 122, 123, 129, 121, 142, 143, 128, 113, 139, 109, 134, 118, 119, 118, 123, 128, 127, 127, 136, 126, 116, 137, 113, 125, 115, 110, 122, 120, 140, 132, 129, 133, 108, 123, 134, 122, 124, 124, 139, 130, 113, 113, 134, 127, 147, 125, 112, 125, 131, 126, 135, 121, 125, 134, 106, 146, 114, 138, 134, 134, 126, 146, 114, 123, 132, 122, 131, 136, 130, 140, 121, 146, 126, 137, 115, 121, 126, 128, 116, 120, 126, 112, 119, 130, 134, 131, 133, 125, 116, 138, 144, 127, 120, 121, 142, 129, 146, 122, 140, 123, 129, 111, 126, 139, 127, 118, 137, 115, 128, 124, 139, 138, 131, 139, 107, 136, 131, 132, 115, 129, 111, 102, 135, 129, 136, 135, 131, 135, 131, 127, 121, 134, 136, 130, 134, 134, 107, 117, 118, 130, 126, 112, 120, 129, 129, 124, 126, 119, 119, 131, 130, 131, 122, 112, 135, 133, 124, 129, 126, 131, 121, 128, 139, 102, 141, 123, 137, 141, 127, 108, 120, 107, 116, 133, 119, 117, 130, 110, 121, 141, 156, 125, 135, 132, 106, 134, 121, 141, 131, 136, 116, 120, 119, 112, 123, 125, 137, 130, 141, 118, 122, 109, 137, 127, 108, 116, 130, 121, 127, 119, 118, 124, 106, 117, 110, 133, 149, 113, 132, 121, 115, 110, 137, 153, 134, 124, 136, 109, 106, 126, 118, 117, 123, 119, 124, 127, 124, 147, 141, 121, 122, 125, 118, 120, 118, 99, 112, 117, 144, 146, 124, 133, 126, 134, 126, 114, 140, 131, 127, 136, 147, 108, 119, 134, 137, 138, 132, 129, 101, 149, 105, 135, 122, 117, 124, 136, 130, 142, 131, 115, 122, 114, 119, 138, 109, 125, 136, 119, 122, 119, 137, 139, 116, 132, 134, 115, 131, 119, 121, 138, 142, 111, 144, 124, 102, 133, 118, 117, 128, 127, 122, 112, 130, 123, 129, 106, 125, 130, 131, 130, 135, 133, 135, 129, 133, 128, 129, 133, 115, 138, 139, 117, 125, 114, 124, 132, 133, 124, 118, 117, 122, 126, 124, 123, 108, 119, 130, 130, 129, 128, 108, 122, 124, 131, 115, 113, 126, 126, 117, 146, 144, 148, 127, 136, 113, 118, 132, 113, 118, 123, 115, 133, 123, 114, 143, 131, 135, 135, 128, 122, 134, 141, 117, 148, 137, 122, 128, 116, 138, 146, 111, 131, 115, 130, 130, 131, 137, 133, 120, 132, 140, 106, 116, 126, 124, 140, 118, 130, 110, 135, 127, 137, 122, 110, 126, 135, 141, 115, 122, 127, 120, 126, 119, 119, 120, 130, 100, 124, 149, 116, 137, 121, 122, 128, 128, 101, 113, 138, 152, 138, 121, 134, 128, 132, 138, 129, 127, 118, 107, 137, 106, 97, 138, 110, 131, 118, 123, 127, 129, 126, 113, 110, 106, 118, 131, 134, 137, 133, 150, 145, 136, 151, 130, 123, 137, 134, 123, 116, 135, 127, 122, 137, 122, 118, 110, 135, 134, 139, 108, 127, 122, 118, 125, 113, 133, 121, 122, 119, 130, 127, 110, 115, 126, 138, 127, 119, 124, 123, 132, 125, 125, 129, 128, 134, 128, 131, 138, 114, 134, 114, 112, 137, 114, 127, 121, 128, 122, 129, 126, 129, 136, 132, 112, 127, 141, 136, 116, 129, 130, 126, 141, 125, 110, 129, 135, 120, 121, 129, 111, 135, 128, 120, 134, 139, 122, 133, 127, 132, 137, 118, 140, 136, 147, 117, 119, 119, 128, 130, 115, 127, 134, 127, 136, 130, 118, 126, 122, 126, 136, 128, 115, 143, 140, 137, 103, 128, 126, 131, 134, 121, 144, 131, 125, 136, 124, 120, 111, 109, 141, 134, 125, 121, 132, 119, 119, 111, 107, 130, 114, 134, 126, 118, 127, 124, 133, 130, 128, 122, 132, 128, 118, 123, 134, 143, 130, 122, 117, 125, 122, 120, 135, 117, 143, 131, 129, 118, 119, 123, 134, 139, 153, 133, 117, 134, 133, 135, 110, 118, 117, 115, 125, 125, 129, 127, 137, 123, 118, 127, 122, 128, 146, 126, 145, 130, 122, 135, 127, 124, 118, 120, 144, 132, 126, 116, 128, 127, 132, 112, 124, 128, 121, 137, 124, 137, 114, 118, 110, 141, 113, 118, 128, 119, 125, 136, 111, 120, 138, 127, 113, 115, 148, 124, 100, 127, 125, 124, 138, 114, 125, 120, 133, 122, 123, 132, 153, 129, 128, 124, 125, 131, 124, 118, 132, 152, 118, 109, 116, 121, 122, 129, 120, 121, 113, 133, 125, 115, 125, 125, 123, 125, 119, 131, 124, 114, 113, 117, 121, 120, 122, 121, 116, 115, 123, 139, 134, 102, 109, 132, 127, 115, 121, 107, 125, 131, 139, 118, 122, 120, 138, 139, 125, 148, 138, 130, 128, 128, 121, 120, 147, 116, 113, 118, 127, 132, 131, 137, 124, 120, 132, 125, 134, 114, 126, 121, 134, 132, 121, 126, 119, 114, 122, 137, 134, 120, 158, 121, 135, 121, 125, 127, 122, 119, 135, 114, 126, 121, 103, 119, 105, 124, 113, 143, 131, 123, 127, 139, 142, 121, 116, 132, 124, 121, 116, 124, 119, 136, 104, 126, 122, 120, 141, 118, 124, 131, 139, 115, 120, 120, 131, 133, 125, 109, 133, 115, 128, 142, 122, 119, 123, 119, 132, 119, 126, 132, 135, 120, 127, 114, 121, 116, 133, 127, 129, 120, 116, 112, 124, 111, 124, 114, 138, 141, 118, 134, 124, 133, 140, 109, 121, 126, 115, 130, 125, 105, 133, 143, 123, 113, 125, 112, 122, 120, 129, 131, 121, 131, 131, 116, 133, 129, 124, 128, 130, 127, 141, 125, 140, 134, 108, 130, 118, 127, 131, 143, 119, 126, 122, 124, 100, 131, 120, 115, 122, 133, 119, 117, 124, 108, 132, 114, 120, 121, 132, 124, 127, 104, 141, 123, 130, 139, 121, 141, 120, 126, 127, 137, 123, 126, 142, 140, 126, 110, 134, 134, 127, 122, 129, 113, 122, 108, 124, 127, 118, 105, 127, 122, 105, 142, 120, 135, 131, 122, 132, 129, 140, 125, 130, 125, 133, 147, 116, 112, 125, 124, 134, 141, 112, 130, 123, 119, 123, 127, 117, 128, 137, 122, 114, 104, 118, 145, 115, 129, 124, 128, 135, 118, 124, 98, 128, 109, 138, 126, 128, 119, 113, 117, 125, 112, 115, 120, 122, 122, 145, 111, 99, 136, 129, 135, 126, 115, 131, 137, 121, 132, 100, 111, 117, 121, 137, 135, 126, 132, 125, 141, 132, 122, 119, 109, 112, 123, 121, 119, 113, 124, 124, 123, 126, 135, 120, 119, 135, 128, 126, 124, 119, 125, 128, 135, 128, 132, 120, 128, 121, 133, 130, 128, 151, 120, 126, 116, 132, 128, 138, 131, 143, 124, 123, 108, 126, 99, 108, 136, 130, 114, 117, 133, 114, 120, 121, 120, 113, 124, 138, 127, 129, 132, 124, 130, 108, 113, 136, 124, 122, 113, 120, 131, 140, 155, 117, 137, 120, 113, 144, 113, 134, 121, 138, 135, 120, 123, 116, 133, 108, 134, 119, 140, 124, 128, 145, 130, 133, 135, 132, 127, 131, 120, 136, 118, 115, 137, 137, 140, 140, 123, 119, 136, 115, 132, 132, 137, 118, 126, 118, 120, 142, 114, 118, 140, 124, 126, 113, 132, 127, 108, 96, 129, 128, 137, 131, 136, 122, 135, 113, 121, 122, 142, 120, 130, 130, 115, 115, 115, 126, 122, 124, 121, 128, 112, 123, 117, 119, 136, 123, 124, 128, 154, 123, 122, 117, 127, 121, 128, 122, 147, 125, 134, 144, 124, 120, 110, 118, 119, 112, 136, 133, 129, 131, 114, 153, 114, 113, 133, 119, 148, 129, 138, 134, 121, 116, 94, 130, 123, 119, 116, 126, 114, 136, 127, 121, 132, 128, 133, 126, 119, 124, 131, 123, 132, 123, 115, 138, 137, 135, 129, 118, 108, 147, 101, 133, 111, 141, 117, 135, 131, 138, 118, 133, 135, 129, 117, 114, 133, 125, 138, 123, 136, 134, 140, 120, 114, 145, 129, 129, 144, 146, 130, 119, 104, 120, 142, 122, 109, 116, 120, 123, 121, 128, 117, 116, 119, 114, 129, 136, 122, 148, 114, 129, 114, 124, 117, 130, 139, 123, 132, 125, 106, 135, 137, 136, 117, 111, 134, 103, 138, 125, 109, 108, 120, 123, 125, 153, 132, 143, 113, 133, 124, 124, 139, 129, 140, 116, 144, 120, 135, 134, 121, 141, 114, 125, 135, 117, 113, 125, 145, 122, 139, 120, 130, 129, 119, 120, 133, 126, 148, 142, 124, 134, 134, 133, 127, 115, 133, 129, 127, 111, 138, 128, 115, 127, 138, 124, 96, 123, 125, 110, 136, 143, 127, 98, 113, 115, 128, 144, 104, 136, 120, 134, 121, 125, 129, 129, 121, 136, 133, 127, 119, 125, 131, 125, 148, 121, 101, 134, 121, 134, 109, 125, 129, 109, 121, 122, 131, 104, 136, 132, 114, 137, 122, 120, 128, 133, 124, 121, 108, 123, 131, 129, 131, 109, 122, 132, 115, 127, 126, 128, 125, 127, 135, 125, 114, 133, 119, 135, 105, 111, 138, 119, 128, 94, 130, 137, 127, 117, 119, 129, 139, 126, 120, 124, 143, 132, 114, 125, 109, 121, 111, 130, 135, 139, 128, 133, 134, 99, 140, 131, 112, 118, 140, 115, 129, 122, 151, 126, 120, 113, 123, 138, 129, 118, 124, 132, 149, 138, 121, 136, 123, 144, 118, 136, 117, 130, 100, 100, 119, 132, 145, 127, 131, 120, 118, 136, 119, 116, 115, 133, 125, 117, 115, 120, 99, 135, 128, 114, 125, 130, 104, 114, 109, 141, 141, 140, 119, 129, 151, 145, 136, 101, 109, 124, 131, 136, 133, 137, 121, 147, 139, 151, 115, 111, 131, 147, 135, 112, 120, 134, 112, 145, 118, 131, 125, 131, 118, 103, 126, 125, 137, 124, 130, 108, 112, 116, 132, 127, 119, 128, 125, 113, 114, 127, 143, 140, 126, 128, 137, 111, 134, 130, 122, 122, 123, 125, 134, 111, 119, 131, 109, 115, 136, 114, 129, 139, 133, 121, 128, 133, 137, 118, 105, 129, 138, 126, 138, 136, 123, 115, 116, 122, 134, 138, 130, 121, 107, 117, 118, 125, 140, 128, 134, 115, 130, 129, 126, 127, 120, 130, 132, 111, 126, 135, 127, 128, 124, 133, 123, 137, 115, 123, 124, 126, 145, 137, 126, 127, 132, 136, 140, 124, 121, 128, 132, 111, 109, 126, 113, 143, 135, 137, 124, 135, 123, 115, 136, 130, 144, 123, 130, 143, 127, 123, 119, 129, 133, 126, 124, 117, 106, 139, 126, 122, 145, 118, 109, 139, 132, 130, 131, 139, 119, 127, 115, 122, 115, 116, 117, 136, 140, 141, 128, 123, 116, 117, 126, 137, 115, 115, 122, 140, 127, 134, 129, 125, 133, 125, 115, 118, 119, 141, 144, 122, 127, 129, 126, 129, 117, 119, 128, 118, 121, 124, 112, 133, 139, 124, 131, 123, 137, 133, 120, 112, 125, 134, 126, 119, 140, 128, 117, 108, 131, 118, 128, 136, 120, 137, 121, 128, 137, 118, 131, 135, 123, 118, 132, 116, 114, 106, 124, 128, 112, 136, 140, 122, 125, 123, 127, 112, 137, 134, 129, 107, 139, 128, 118, 122, 124, 132, 124, 95, 116, 125, 133, 130, 133, 128, 125, 125, 125, 121, 135, 133, 133, 122, 110, 125, 130, 130, 125, 128, 124, 119, 128, 115, 116, 113, 123, 141, 121, 119, 133, 123, 133, 136, 127, 121, 118, 130, 113, 136, 123, 145, 127, 107, 132, 118, 148, 128, 138, 126, 136, 129, 114, 115, 121, 135, 126, 128, 122, 130, 117, 115, 104, 137, 125, 123, 134, 125, 119, 130, 113, 132, 129, 112, 106, 128, 115, 108, 131, 137, 133, 117, 122, 135, 121, 124, 140, 148, 130, 118, 126, 110, 121, 110, 140, 128, 128, 135, 131, 132, 138, 132, 112, 133, 147, 125, 129, 130, 131, 141, 133, 118, 123, 113, 125, 147, 116, 128, 147, 121, 128, 129, 129, 125, 127, 128, 126, 130, 123, 142, 117, 127, 130, 116, 95, 135, 113, 130, 124, 111, 127, 120, 125, 123, 118, 109, 117, 134, 119, 123, 123, 134, 109, 132, 131, 138, 118, 126, 132, 138, 147, 112, 128, 130, 138, 109, 117, 116, 142, 109, 124, 120, 136, 124, 144, 117, 146, 143, 118, 113, 126, 122, 131, 127, 135, 129, 114, 132, 119, 109, 120, 127, 121, 131, 141, 137, 123, 117, 126, 117, 137, 129, 128, 110, 119, 132, 116, 130, 112, 128, 124, 119, 140, 120, 142, 143, 90, 127, 134, 132, 122, 133, 139, 120, 123, 133, 126, 126, 124, 126, 131, 133, 129, 142, 127, 126, 127, 128, 121, 124, 119, 124, 124, 129, 116, 126, 136, 129, 145, 114, 120, 137, 109, 123, 128, 123, 129, 134, 126, 120, 129, 124, 121, 112, 118, 127, 133, 126, 102, 122, 133, 127, 127, 124, 124, 127, 132, 117, 133, 145, 132, 129, 113, 125, 120, 137, 129, 135, 125, 146, 127, 133, 119, 120, 118, 121, 127, 126, 137, 144, 132, 117, 119, 131, 130, 118, 127, 128, 130, 127, 129, 109, 140, 126, 114, 124, 136, 114, 120, 122, 107, 137, 131, 128, 121, 123, 115, 116, 162, 127, 109, 132, 125, 112, 131, 147, 136, 127, 132, 106, 117, 139, 133, 132, 123, 119, 93, 110, 122, 106, 127, 131, 112, 125, 128, 145, 114, 135, 145, 104, 117, 110, 124, 116, 128, 109, 132, 134, 127, 138, 123, 125, 134, 126, 137, 133, 131, 107, 117, 132, 125, 125, 118, 118, 130, 114, 127, 108, 133, 112, 124, 116, 117, 130, 121, 130, 123, 115, 142, 124, 115, 136, 124, 128, 123, 132, 112, 122, 112, 131, 125, 124, 132, 147, 146, 129, 120, 134, 124, 129, 127, 135, 133, 141, 119, 132, 123, 128, 111, 124, 103, 129, 128, 129, 111, 118, 134, 130, 108, 137, 123, 142, 118, 125, 141, 127, 133, 120, 137, 127, 132, 123, 133, 111, 132, 118, 123, 138, 111, 125, 138, 126, 129, 134, 119, 109, 110, 112, 129, 106, 113, 131, 117, 133, 128, 134, 129, 113, 118, 116, 125, 121, 142, 149, 114, 126, 121, 113, 135, 131, 140, 130, 131, 122, 137, 123, 122, 116, 132, 127, 117, 125, 110, 137, 122, 125, 121, 118, 137, 113, 149, 123, 126, 128, 132, 113, 144, 112, 147, 147, 124, 119, 127, 130, 135, 109, 126, 137, 121, 119, 122, 128, 120, 126, 128, 122, 122, 109, 122, 141, 126, 116, 128, 135, 130, 136, 120, 127, 122, 122, 126, 124, 141, 142, 143, 113, 107, 130, 114, 114, 130, 131, 136, 126, 120, 136, 124, 133, 128, 127, 123, 139, 132, 129, 124, 104, 128, 132, 136, 141, 119, 135, 113, 126, 123, 120, 133, 126, 125, 135, 127, 111, 133, 139, 123, 153, 123, 127, 123, 115, 121, 137, 133, 131, 128, 136, 118, 126, 109, 106, 128, 128, 117, 143, 131, 123, 118, 136, 128, 129, 134, 125, 130, 119, 117, 110, 122, 132, 110, 119, 124, 117, 116, 123, 132, 94, 119, 126, 131, 130, 109, 134, 127, 117, 145, 141, 141, 121, 125, 139, 130, 109, 117, 117, 127, 137, 122, 126, 122, 133, 134, 134, 127, 135, 123, 140, 115, 126, 127, 116, 130, 124, 126, 142, 141, 148, 120, 129, 137, 136, 138, 140, 105, 118, 132, 121, 132, 116, 127, 121, 127, 123, 147, 135, 115, 138, 129, 141, 128, 138, 107, 131, 142, 122, 135, 123, 111, 131, 123, 126, 119, 131, 123, 123, 112, 106, 127, 121, 128, 124, 133, 131, 132, 136, 123, 128, 140, 131, 133, 133, 140, 118, 132, 131, 131, 123, 128, 123, 115, 121, 115, 121, 122, 128, 121, 128, 108, 127, 124, 117, 136, 131, 131, 125, 127, 117, 110, 126, 123, 101, 123, 121, 144, 118, 106, 131, 123, 118, 115, 135, 118, 126, 124, 134, 121, 105, 136, 137, 134, 137, 123, 127, 136, 121, 112, 105, 129, 124, 132, 116, 122, 105, 125, 147, 130, 113, 130, 126, 125, 120, 117, 121, 132, 127, 136, 123, 107, 126, 134, 128, 127, 132, 120, 116, 134, 128, 138, 131, 119, 126, 137, 124, 111, 123, 115, 116, 108, 119, 121, 110, 134, 149, 160, 122, 125, 136, 124, 132, 128, 128, 127, 128, 127, 133, 125, 139, 124, 129, 128, 117, 130, 121, 111, 121, 130, 127, 133, 134, 127, 140, 137, 114, 119, 131, 133, 123, 137, 120, 120, 131, 143, 126, 136, 121, 131, 119, 128, 125, 98, 139, 121, 115, 112, 98, 126, 114, 117, 127, 121, 133, 113, 137, 143, 144, 127, 124, 123, 106, 120, 103, 149, 104, 125, 119, 136, 118, 137, 115, 138, 133, 135, 131, 122, 112, 134, 129, 141, 109, 144, 140, 130, 140, 127, 137, 130, 107, 120, 113, 117, 121, 126, 108, 125, 142, 132, 129, 122, 118, 114, 136, 139, 110, 137, 108, 138, 132, 128, 120, 116, 127, 136, 143, 117, 101, 116, 138, 136, 110, 128, 123, 124, 131, 121, 124, 117, 138, 119, 130, 124, 133, 108, 137, 125, 159, 143, 129, 130, 109, 135, 118, 118, 120, 135, 124, 109, 122, 123, 123, 147, 138, 106, 125, 130, 125, 121, 134, 116, 124, 157, 127, 127, 146, 111, 132, 113, 159, 126, 105, 137, 123, 109, 122, 103, 115, 110, 123, 134, 125, 118, 119, 132, 120, 142, 121, 139, 125, 123, 132, 133, 134, 130, 125, 123, 141, 130, 124, 126, 121, 130, 122, 119, 113, 114, 139, 119, 118, 115, 126, 125, 119, 137, 121, 136, 143, 112, 120, 134, 129, 124, 127, 111, 121, 153, 123, 125, 141, 135, 135, 113, 129, 121, 133, 121, 125, 129, 114, 137, 121, 131, 106, 121, 125, 106, 137, 110, 122, 126, 122, 110, 128, 126, 124, 126, 130, 124, 120, 138, 111, 127, 131, 121, 121, 128, 119, 125, 116, 110, 120, 116, 123, 134, 136, 122, 131, 100, 111, 112, 133, 126, 125, 140, 137, 126, 130, 119, 128, 125, 118, 137, 108, 125, 134, 130, 121, 114, 138, 120, 116, 116, 109, 129, 145, 115, 113, 133, 128, 134, 127, 134, 123, 132, 115, 129, 121, 112, 127, 131, 137, 119, 115, 132, 123, 131, 127, 112, 119, 115, 134, 143, 145, 128, 129, 126, 118, 123, 127, 105, 117, 132, 117, 123, 127, 115, 138, 142, 115, 126, 131, 129, 126, 111, 114, 113, 122, 137, 131, 119, 126, 131, 131, 123, 134, 132, 119, 123, 146, 124, 120, 129, 143, 99, 129, 108, 96, 123, 139, 127, 121, 112, 133, 128, 132, 125, 119, 147, 131, 113, 120, 131, 127, 134, 119, 107, 104, 106, 125, 133, 126, 133, 134, 121, 121, 131, 110, 130, 149, 123, 111, 126, 123, 112, 118, 119, 138, 121, 125, 114, 108, 123, 125, 107, 123, 122, 124, 124, 143, 125, 118, 123, 132, 121, 118, 113, 133, 106, 115, 137, 123, 108, 137, 132, 137, 120, 123, 123, 117, 112, 142, 127, 112, 102, 124, 117, 139, 100, 117, 120, 124, 136, 110, 115, 120, 141, 122, 114, 127, 127, 120, 123, 120, 112, 128, 121, 118, 116, 133, 128, 110, 112, 122, 146, 123, 112, 118, 105, 126, 133, 141, 125, 117, 137, 117, 115, 118, 127, 113, 112, 124, 118, 136, 138, 133, 138, 108, 134, 134, 110, 130, 123, 116, 126, 128, 127, 141, 122, 141, 129, 119, 123, 127, 128, 128, 113, 126, 136, 122, 130, 135, 120, 122, 125, 134, 141, 111, 111, 122, 113, 115, 131, 126, 121, 113, 117, 131, 119, 131, 116, 139, 114, 120, 129, 132, 125, 134, 116, 123, 132, 125, 121, 139, 140, 132, 134, 131, 128, 127, 101, 124, 116, 121, 114, 138, 122, 116, 122, 107, 121, 116, 141, 121, 115, 109, 130, 131, 143, 136, 126, 112, 124, 125, 127, 110, 125, 119, 141, 118, 125, 127, 130, 131, 131, 139, 114, 135, 117, 121, 142, 137, 117, 135, 131, 127, 127, 139, 110, 106, 112, 135, 124, 128, 125, 133, 130, 120, 124, 145, 123, 118, 114, 135, 138, 136, 135, 113, 147, 123, 128, 131, 123, 150, 129, 128, 110, 124, 115, 129, 117, 117, 163, 122, 110, 132, 132, 109, 112, 124, 133, 119, 138, 123, 122, 148, 128, 132, 129, 124, 116, 144, 111, 136, 131, 135, 133, 96, 135, 124, 121, 147, 96, 127, 131, 121, 123, 125, 133, 133, 127, 116, 131, 128, 124, 126, 128, 143, 147, 118, 135, 156, 113, 125, 136, 132, 138, 128, 129, 131, 140, 131, 122, 116, 112, 122, 138, 126, 128, 136, 129, 121, 148, 123, 125, 113, 135, 144, 124, 111, 127, 130, 131, 131, 117, 125, 125, 117, 141, 129, 105, 112, 126, 121, 99, 140, 130, 140, 113, 139, 122, 112, 120, 115, 115, 128, 129, 143, 99, 129, 141, 127, 130, 124, 112, 122, 113, 132, 117, 101, 118, 125, 134, 128, 135, 118, 127, 134, 142, 136, 115, 154, 120, 134, 141, 114, 124, 122, 124, 113, 137, 128, 121, 118, 119, 118, 121, 138, 125, 125, 124, 127, 125, 131, 122, 109, 127, 132, 116, 121, 130, 145, 142, 118, 131, 125, 121, 120, 118, 135, 119, 127, 109, 143, 116, 117, 109, 119, 118, 130, 128, 129, 118, 114, 118, 130, 134, 130, 121, 129, 144, 134, 124, 136, 116, 125, 144, 126, 112, 107, 129, 135, 128, 115, 128, 135, 118, 136, 116, 100, 112, 123, 129, 119, 125, 119, 123, 127, 127, 144, 128, 119, 130, 130, 123, 139, 137, 114, 118, 104, 131, 131, 115, 126, 113, 117, 122, 110, 106, 122, 144, 115, 119, 135, 137, 112, 117, 144, 129, 105, 135, 132, 102, 124, 131, 130, 144, 120, 129, 123, 115, 128, 122, 136, 121, 138, 142, 158, 127, 117, 108, 129, 110, 129, 121, 125, 121, 142, 94, 131, 135, 133, 136, 135, 123, 118, 117, 126, 128, 121, 109, 132, 127, 125, 133, 127, 118, 120, 136, 110, 130, 118, 104, 136, 125, 127, 126, 116, 131, 137, 129, 120, 128, 143, 127, 124, 137, 149, 123, 144, 112, 136, 129, 118, 121, 111, 140, 109, 97, 105, 128, 149, 130, 118, 124, 103, 128, 118, 135, 123, 127, 120, 134, 111, 156, 137, 125, 134, 132, 125, 140, 142, 104, 123, 127, 122, 111, 146, 124, 126, 125, 127, 137, 113, 136, 111, 128, 124, 126, 107, 122, 116, 122, 129, 136, 123, 142, 143, 120, 129, 129, 109, 118, 131, 101, 110, 115, 116, 135, 124, 109, 135, 142, 129, 127, 110, 118, 128, 129, 117, 144, 122, 131, 109, 136, 127, 120, 114, 131, 113, 128, 125, 124, 124, 147, 109, 145, 126, 138, 114, 124, 140, 134, 115, 133, 129, 110, 143, 128, 120, 131, 150, 124, 118, 143, 117, 107, 124, 110, 127, 142, 113, 123, 115, 122, 109, 114, 116, 114, 123, 145, 113, 110, 119, 127, 109, 111, 121, 123, 146, 134, 114, 127, 119, 124, 109, 130, 132, 131, 129, 110, 116, 127, 143, 119, 114, 129, 123, 127, 124, 117, 136, 128, 117, 134, 133, 123, 128, 120, 105, 126, 116, 132, 132, 116, 117, 111, 122, 121, 118, 110, 111, 130, 130, 134, 125, 133, 127, 118, 123, 112, 119, 138, 113, 130, 122, 122, 135, 115, 134, 114, 120, 105, 115, 112, 134, 127, 135, 122, 140, 139, 138, 145, 130, 116, 134, 115, 130, 112, 105, 96, 129, 113, 138, 130, 113, 131, 122, 126, 130, 137, 134, 112, 116, 110, 111, 127, 118, 136, 126, 117, 139, 129, 116, 113, 139, 118, 118, 131, 119, 107, 152, 136, 135, 115, 122, 124, 133, 111, 129, 126, 129, 135, 128, 132, 141, 134, 116, 123, 115, 111, 146, 122, 128, 125, 115, 122, 143, 122, 126, 137, 126, 121, 135, 118, 124, 115, 125, 130, 114, 108, 113, 128, 136, 137, 131, 118, 138, 132, 133, 123, 121, 109, 129, 122, 125, 115, 132, 125, 119, 118, 125, 145, 125, 120, 145, 117, 117, 132, 138, 130, 111, 127, 128, 125, 123, 95, 118, 132, 125, 132, 119, 123, 130, 129, 144, 130, 120, 133, 117, 129, 134, 122, 115, 130, 111, 125, 139, 121, 119, 132, 116, 129, 130, 120, 123, 119, 99, 123, 118, 123, 144, 142, 130, 128, 127, 125, 121, 134, 124, 115, 122, 133, 107, 144, 119, 134, 136, 113, 121, 131, 101, 132, 123, 120, 124, 108, 137, 140, 137, 119, 125, 128, 134, 120, 118, 111, 123, 116, 145, 113, 118, 130, 103, 99, 138, 121, 119, 147, 122, 127, 128, 137, 111, 136, 111, 147, 112, 134, 134, 113, 141, 127, 115, 104, 116, 120, 129, 143, 117, 115, 107, 108, 128, 133, 127, 132, 127, 121, 121, 133, 132, 130, 116, 117, 119, 118, 118, 123, 123, 123, 144, 135, 121, 132, 122, 117, 119, 110, 137, 120, 161, 141, 125, 146, 120, 124, 137, 135, 116, 137, 130, 130, 141, 126, 121, 119, 125, 140, 122, 111, 123, 121, 119, 141, 119, 128, 117, 116, 123, 111, 128, 115, 124, 126, 134, 117, 125, 102, 120, 126, 135, 123, 112, 125, 124, 108, 134, 124, 125, 118, 126, 121, 128, 122, 137, 150, 116, 129, 118, 102, 128, 125, 133, 118, 112, 124, 118, 125, 123, 139, 135, 146, 118, 133, 118, 141, 131, 129, 116, 130, 115, 131, 111, 118, 118, 127, 108, 119, 130, 121, 123, 135, 122, 131, 122, 135, 140, 116, 111, 128, 135, 119, 132, 147, 101, 113, 117, 137, 120, 155, 95, 123, 128, 134, 123, 131, 115, 144, 135, 117, 98, 133, 113, 131, 110, 131, 134, 126, 132, 133, 126, 137, 124, 138, 118, 127, 127, 125, 118, 124, 111, 113, 110, 117, 133, 135, 135, 137, 119, 123, 110, 120, 126, 122, 134, 125, 151, 132, 143, 137, 117, 133, 112, 113, 115, 128, 139, 122, 135, 116, 125, 109, 139, 106, 115, 129, 131, 128, 144, 125, 127, 118, 119, 127, 139, 128, 122, 122, 120, 104, 136, 148, 133, 115, 132, 115, 123, 119, 110, 127, 120, 125, 142, 124, 134, 109, 133, 138, 136, 144, 120, 132, 130, 137, 130, 145, 117, 134, 125, 129, 117, 134, 136, 120, 110, 129, 157, 124, 116, 95, 139, 123, 141, 117, 125, 126, 130, 120, 148, 123, 130, 124, 134, 124, 138, 113, 105, 139, 118, 134, 135, 117, 121, 131, 121, 116, 122, 127, 152, 129, 109, 131, 113, 125, 137, 102, 137, 122, 118, 112, 123, 126, 114, 133, 122, 116, 116, 128, 107, 113, 119, 122, 125, 128, 142, 116, 117, 145, 120, 132, 133, 142, 124, 130, 117, 127, 124, 122, 146, 133, 133, 124, 152, 127, 115, 122, 119, 127, 136, 114, 137, 122, 136, 133, 128, 135, 146, 121, 114, 126, 118, 156, 149, 129, 113, 126, 131, 120, 105, 133, 111, 112, 145, 153, 134, 128, 121, 140, 132, 122, 125, 124, 132, 124, 140, 147, 138, 131, 129, 131, 122, 116, 128, 122, 108, 129, 112, 123, 121, 150, 134, 128, 133, 120, 138, 132, 125, 154, 124, 122, 101, 106, 120, 133, 137, 134, 114, 140, 133, 140, 107, 132, 140, 112, 129, 128, 126, 115, 134, 130, 127, 139, 133, 107, 125, 124, 141, 123, 133, 125, 116, 123, 149, 133, 131, 133, 106, 113, 133, 130, 145, 136, 123, 140, 120, 140, 128, 137, 136, 128, 120, 124, 130, 118, 113, 125, 114, 129, 140, 124, 117, 123, 112, 119, 117, 124, 136, 128, 121, 116, 132, 112, 120, 110, 128, 145, 119, 132, 113, 126, 111, 125, 128, 117, 126, 125, 112, 142, 123, 116, 141, 137, 121, 117, 136, 151, 117, 121, 131, 122, 134, 118, 118, 132, 135, 128, 125, 130, 134, 114, 110, 107, 116, 143, 139, 128, 124, 129, 127, 154, 125, 126, 130, 127, 137, 113, 122, 116, 115, 133, 143, 119, 122, 125, 141, 122, 128, 134, 121, 119, 130, 119, 121, 125, 141, 125, 141, 124, 141, 116, 125, 136, 116, 147, 131, 134, 112, 122, 116, 122, 113, 128, 130, 106, 136, 140, 136, 127, 133, 128, 130, 128, 128, 113, 128, 130, 137, 130, 132, 145, 132, 143, 132, 123, 131, 123, 127, 144, 138, 140, 134, 124, 136, 132, 100, 113, 124, 126, 122, 127, 99, 113, 121, 123, 120, 134, 129, 148, 140, 136, 160, 115, 135, 128, 125, 133, 130, 128, 153, 136, 131, 133, 132, 149, 125, 113, 131, 139, 138, 129, 108, 121, 128, 136, 141, 125, 118, 150, 140, 142, 110, 92, 145, 134, 116, 117, 126, 136, 131, 132, 117, 123, 141, 123, 125, 136, 126, 139, 118, 118, 119, 129, 113, 146, 120, 139, 125, 128, 130, 131, 128, 122, 115, 142, 141, 127, 119, 138, 118, 112, 116, 125, 118, 149, 133, 118, 110, 118, 120, 128, 126, 129, 144, 142, 137, 122, 122, 140, 133, 127, 112, 129, 141, 119, 124, 140, 118, 122, 123, 141, 120, 145, 135, 128, 145, 125, 114, 132, 120, 139, 90, 110, 124, 121, 120, 112, 114, 114, 124, 135, 129, 124, 105, 135, 126, 134, 130, 121, 124, 121, 127, 135, 138, 110, 129, 121, 125, 133, 108, 102, 119, 129, 125, 128, 133, 137, 85, 134, 128, 125, 122, 130, 125, 136, 96, 118, 132, 121, 122, 110, 131, 124, 123, 129, 117, 136, 127, 137, 123, 129, 133, 131, 117, 127, 139, 128, 124, 136, 117, 117, 122, 119, 121, 126, 136, 125, 137, 128, 135, 134, 124, 98, 118, 135, 126, 138, 111, 117, 141, 124, 125, 123, 123, 142, 126, 110, 126, 135, 130, 126, 133, 136, 127, 120, 119, 122, 134, 130, 119, 113, 119, 125, 138, 117, 122, 114, 104, 126, 128, 130, 158, 134, 99, 128, 115, 103, 126, 123, 114, 118, 140, 132, 118, 124, 144, 127, 132, 119, 143, 104, 120, 119, 132, 133, 126, 116, 141, 132, 121, 122, 138, 134, 115, 127, 115, 124, 131, 129, 115, 127, 124, 132, 135, 126, 127, 111, 126, 106, 119, 120, 127, 136, 148, 113, 131, 144, 140, 125, 130, 134, 110, 122, 129, 142, 128, 112, 118, 125, 133, 115, 136, 122, 114, 119, 112, 135, 125, 140, 148, 122, 128, 120, 107, 132, 117, 117, 124, 124, 86, 110, 108, 120, 133, 135, 144, 121, 128, 113, 132, 134, 129, 126, 119, 128, 129, 121, 135, 118, 136, 128, 129, 117, 124, 117, 125, 115, 119, 110, 136, 138, 136, 118, 129, 128, 152, 124, 110, 113, 115, 141, 113, 120, 129, 106, 106, 131, 117, 137, 124, 132, 122, 123, 145, 124, 122, 124, 126, 125, 133, 107, 103, 102, 127, 122, 119, 108, 131, 123, 129, 108, 136, 125, 123, 135, 113, 120, 119, 118, 109, 136, 120, 126, 130, 115, 137, 128, 117, 119, 144, 135, 116, 136, 110, 131, 107, 125, 129, 118, 123, 125, 111, 132, 128, 138, 107, 131, 130, 120, 126, 117, 115, 103, 128, 118, 129, 136, 127, 122, 137, 121, 131, 140, 113, 140, 115, 132, 139, 121, 143, 134, 98, 129, 133, 106, 135, 132, 133, 128, 126, 129, 126, 120, 120, 126, 137, 127, 134, 136, 133, 126, 133, 165, 123, 123, 122, 129, 132, 128, 129, 119, 130, 125, 129, 114, 120, 118, 154, 109, 135, 115, 106, 126, 126, 121, 116, 116, 116, 126, 119, 120, 126, 122, 122, 114, 128, 117, 115, 128, 127, 126, 129, 120, 122, 131, 127, 130, 149, 141, 141, 130, 137, 121, 125, 164, 110, 124, 131, 116, 110, 121, 133, 123, 136, 128, 112, 124, 134, 116, 127, 134, 120, 146, 142, 134, 105, 120, 122, 127, 131, 130, 133, 124, 121, 130, 120, 123, 118, 112, 131, 112, 114, 132, 115, 122, 145, 109, 126, 133, 150, 116, 129, 118, 151, 139, 128, 125, 123, 130, 134, 135, 118, 137, 142, 118, 120, 148, 123, 136, 127, 119, 113, 106, 103, 122, 121, 144, 126, 120, 135, 136, 131, 127, 138, 123, 120, 118, 124, 138, 123, 138, 125, 132, 91, 134, 115, 125, 121, 129, 124, 123, 114, 107, 143, 110, 122, 140, 106, 124, 109, 140, 130, 142, 116, 125, 136, 128, 122, 135, 126, 114, 113, 113, 117, 127, 128, 125, 136, 142, 141, 124, 127, 111, 128, 114, 142, 126, 115, 114, 132, 123, 118, 124, 128, 124, 115, 129, 98, 128, 140, 138, 127, 134, 127, 125, 143, 127, 124, 138, 109, 121, 131, 136, 135, 135, 115, 118, 123, 134, 150, 116, 116, 117, 116, 146, 115, 112, 141, 110, 136, 128, 124, 118, 111, 142, 144, 145, 138, 137, 151, 145, 119, 124, 120, 98, 138, 122, 112, 102, 119, 139, 119, 103, 133, 129, 140, 143, 115, 125, 126, 119, 109, 134, 119, 138, 123, 131, 132, 131, 125, 136, 137, 119, 123, 137, 129, 125, 147, 125, 119, 127, 135, 133, 129, 119, 148, 127, 121, 117, 127, 125, 118, 142, 132, 127, 132, 133, 126, 124, 132, 114, 119, 115, 123, 122, 146, 124, 102, 138, 133, 133, 130, 110, 118, 123, 146, 143, 129, 135, 128, 117, 129, 124, 124, 116, 134, 124, 121, 121, 130, 124, 122, 133, 137, 115, 109, 138, 118, 155, 128, 124, 130, 129, 120, 154, 140, 120, 133, 127, 108, 126, 133, 113, 130, 131, 121, 135, 126, 131, 125, 127, 114, 124, 126, 130, 185, 144, 108, 126, 110, 130, 112, 141, 113, 138, 127, 130, 120, 138, 118, 131, 134, 126, 118, 124, 109, 112, 105, 112, 117, 124, 115, 130, 122, 119, 122, 138, 126, 122, 123, 128, 116, 118, 113, 128, 120, 132, 127, 124, 130, 106, 116, 99, 110, 128, 117, 138, 119, 127, 147, 119, 123, 122, 131, 122, 123, 131, 146, 124, 127, 118, 117, 121, 114, 119, 131, 126, 118, 135, 129, 112, 125, 136, 126, 108, 117, 123, 138, 131, 136, 115, 123, 128, 122, 119, 123, 115, 128, 116, 139, 123, 123, 120, 131, 121, 129, 122, 150, 107, 125, 122, 120, 124, 119, 106, 121, 133, 142, 111, 139, 136, 121, 103, 116, 134, 122, 137, 120, 130, 126, 127, 126, 127, 143, 140, 128, 117, 155, 119, 134, 113, 112, 121, 144, 128, 134, 128, 139, 125, 128, 127, 125, 118, 118, 127, 94, 135, 114, 116, 133, 113, 137, 117, 123, 130, 140, 142, 135, 113, 115, 135, 125, 123, 119, 127, 127, 130, 125, 131, 120, 131, 127, 139, 122, 139, 133, 124, 137, 122, 106, 118, 126, 132, 108, 120, 125, 130, 129, 137, 118, 115, 116, 127, 99, 120, 111, 121, 148, 115, 134, 131, 117, 108, 151, 141, 138, 141, 126, 123, 131, 121, 104, 124, 127, 135, 136, 105, 124, 121, 128, 129, 122, 116, 123, 132, 124, 124, 132, 140, 125, 136, 136, 134, 119, 125, 129, 133, 116, 131, 125, 114, 126, 121, 110, 146, 128, 128, 141, 117, 127, 105, 125, 144, 113, 128, 146, 126, 138, 124, 121, 137, 129, 131, 139, 157, 135, 126, 108, 118, 134, 129, 125, 111, 127, 148, 125, 130, 118, 117, 128, 136, 110, 130, 126, 131, 144, 134, 132, 123, 128, 138, 126, 125, 126, 134, 137, 125, 123, 141, 122, 145, 106, 116, 152, 142, 135, 123, 116, 125, 116, 124, 129, 109, 130, 127, 145, 122, 111, 136, 112, 119, 122, 144, 123, 130, 129, 145, 134, 141, 116, 117, 149, 123, 145, 146, 131, 123, 121, 133, 133, 139, 121, 140, 106, 125, 129, 138, 106, 142, 137, 136, 128, 121, 130, 114, 122, 132, 110, 121, 113, 109, 118, 128, 143, 132, 109, 131, 135, 130, 134, 114, 128, 126, 141, 145, 128, 125, 125, 130, 142, 113, 119, 134, 133, 124, 132, 125, 119, 134, 126, 131, 134, 134, 97, 131, 126, 128, 131, 132, 103, 121, 144, 106, 139, 116, 120, 128, 116, 123, 128, 127, 155, 127, 133, 124, 120, 135, 122, 118, 124, 147, 126, 123, 111, 124, 108, 132, 113, 126, 114, 134, 119, 128, 121, 121, 124, 128, 110, 131, 125, 108, 126, 118, 134, 140, 125, 147, 122, 140, 133, 129, 119, 117, 137, 129, 108, 117, 135, 110, 124, 119, 129, 126, 130, 105, 103, 118, 130, 113, 122, 122, 138, 122, 124, 121, 137, 129, 124, 124, 123, 130, 132, 128, 122, 118, 117, 125, 122, 123, 131, 116, 112, 114, 133, 126, 121, 130, 139, 137, 113, 120, 127, 133, 130, 145, 122, 119, 119, 126, 132, 132, 126, 116, 124, 126, 130, 119, 117, 116, 110, 136, 130, 127, 108, 119, 122, 138, 122, 126, 120, 145, 146, 111, 124, 129, 134, 131, 130, 127, 128, 118, 116, 120, 117, 140, 131, 117, 135, 114, 101, 125, 114, 140, 132, 116, 112, 129, 125, 123, 125, 118, 131, 107, 118, 124, 124, 94, 113, 128, 113, 148, 118, 118, 113, 122, 135, 118, 119, 130, 133, 123, 130, 117, 123, 114, 155, 119, 123, 142, 134, 126, 104, 126, 122, 130, 116, 118, 119, 120, 109, 128, 112, 126, 131, 128, 124, 115, 132, 116, 126, 126, 128, 109, 139, 128, 123, 126, 135, 114, 133, 114, 118, 135, 122, 118, 138, 128, 139, 126, 137, 130, 120, 118, 121, 130, 132, 140, 132, 99, 125, 117, 147, 111, 105, 131, 115, 105, 131, 126, 125, 124, 109, 135, 117, 127, 153, 127, 139, 113, 123, 122, 95, 122, 141, 111, 126, 123, 129, 118, 92, 134, 125, 110, 121, 127, 140, 131, 112, 140, 128, 112, 127, 124, 129, 142, 115, 136, 117, 135, 120, 145, 132, 107, 113, 114, 114, 105, 130, 134, 126, 131, 119, 128, 128, 112, 132, 122, 121, 122, 110, 124, 123, 112, 119, 130, 122, 129, 120, 123, 137, 125, 126, 121, 96, 129, 126, 135, 121, 124, 118, 133, 134, 124, 117, 132, 122, 165, 98, 135, 115, 111, 125, 118, 113, 134, 129, 130, 118, 141, 123, 126, 118, 137, 107, 113, 126, 128, 137, 115, 130, 140, 136, 117, 143, 131, 129, 144, 133, 138, 142, 120, 126, 121, 128, 109, 126, 137, 126, 132, 153, 119, 119, 119, 113, 134, 117, 139, 126, 149, 127, 125, 137, 102, 118, 130, 133, 123, 135, 108, 110, 120, 129, 114, 126, 125, 121, 117, 116, 127, 146, 127, 124, 141, 115, 116, 122, 131, 125, 121, 129, 120, 135, 142, 118, 151, 112, 129, 140, 133, 145, 131, 135, 120, 122, 120, 130, 134, 115, 101, 125, 133, 111, 126, 118, 117, 131, 114, 121, 121, 130, 124, 124, 121, 121, 131, 133, 135, 129, 129, 134, 111, 121, 146, 139, 125, 120, 117, 126, 134, 113, 131, 110, 125, 101, 115, 114, 140, 128, 105, 115, 120, 119, 123, 137, 116, 136, 136, 122, 126, 126, 128, 124, 147, 114, 125, 133, 130, 119, 145, 107, 128, 122, 130, 148, 127, 126, 126, 129, 131, 111, 140, 98, 143, 115, 115, 121, 145, 124, 122, 141, 125, 100, 119, 126, 127, 121, 128, 115, 127, 121, 128, 116, 127, 121, 147, 135, 123, 119, 129, 129, 128, 125, 133, 145, 136, 138, 131, 112, 111, 136, 136, 131, 125, 120, 123, 119, 139, 128, 128, 118, 132, 120, 126, 131, 129, 136, 128, 129, 139, 145, 129, 127, 151, 111, 124, 119, 120, 129, 125, 131, 122, 120, 120, 126, 124, 137, 132, 120, 113, 110, 125, 113, 138, 133, 137, 123, 130, 117, 134, 142, 118, 123, 123, 107, 126, 159, 120, 129, 99, 106, 125, 132, 124, 126, 105, 113, 133, 119, 132, 126, 136, 140, 131, 119, 144, 122, 139, 127, 127, 110, 131, 114, 118, 141, 122, 120, 141, 119, 121, 122, 111, 118, 139, 135, 117, 115, 103, 126, 112, 124, 118, 148, 116, 135, 130, 135, 121, 134, 152, 147, 132, 112, 121, 125, 134, 117, 142, 132, 121, 122, 122, 113, 132, 134, 109, 132, 126, 132, 120, 115, 108, 135, 135, 131, 146, 156, 133, 117, 123, 127, 117, 140, 122, 119, 111, 113, 128, 103, 139, 116, 126, 109, 114, 145, 119, 125, 129, 133, 130, 131, 130, 124, 129, 130, 114, 132, 120, 114, 138, 121, 126, 122, 120, 142, 121, 143, 144, 122, 120, 119, 126, 131, 128, 116, 145, 119, 134, 121, 124, 126, 121, 118, 120, 119, 129, 120, 150, 138, 136, 129, 103, 129, 136, 114, 128, 134, 128, 140, 132, 122, 129, 138, 117, 125, 125, 132, 114, 116, 114, 124, 140, 123, 146, 124, 125, 117, 155, 115, 124, 114, 137, 104, 117, 113, 125, 114, 133, 132, 136, 126, 117, 144, 137, 129, 110, 129, 112, 125, 122, 110, 128, 144, 131, 134, 132, 113, 152, 115, 127, 125, 135, 126, 125, 140, 124, 130, 117, 117, 122, 136, 126, 116, 115, 116, 109, 126, 130, 102, 115, 127, 132, 124, 123, 125, 118, 118, 114, 125, 136, 115, 129, 125, 117, 126, 142, 132, 142, 119, 146, 139, 105, 147, 138, 116, 120, 129, 123, 117, 127, 140, 109, 118, 151, 108, 129, 124, 130, 126, 135, 123, 142, 141, 117, 117, 133, 123, 132, 129, 125, 123, 131, 146, 127, 138, 122, 134, 116, 116, 126, 141, 132, 128, 116, 122, 106, 129, 132, 135, 145, 132, 128, 114, 120, 119, 128, 139, 131, 110, 134, 126, 110, 116, 118, 123, 118, 136, 128, 127, 130, 126, 99, 119, 128, 121, 117, 118, 130, 135, 145, 126, 137, 113, 122, 108, 129, 124, 143, 126, 117, 138, 120, 112, 132, 111, 125, 114, 127, 111, 114, 133, 125, 138, 108, 109, 101, 141, 123, 113, 107, 119, 128, 146, 115, 136, 117, 136, 130, 138, 120, 126, 133, 131, 122, 110, 140, 131, 131, 119, 119, 106, 124, 108, 114, 124, 132, 125, 109, 128, 130, 117, 121, 122, 125, 119, 134, 131, 110, 134, 142, 129, 117, 122, 136, 108, 138, 128, 132, 133, 116, 124, 116, 123, 129, 132, 129, 130, 143, 120, 145, 121, 124, 114, 121, 100, 123, 126, 133, 119, 121, 128, 124, 118, 137, 125, 125, 119, 128, 113, 122, 116, 124, 120, 140, 130, 132, 127, 131, 121, 114, 110, 114, 127, 125, 123, 121, 128, 126, 115, 121, 106, 128, 132, 146, 100, 133, 128, 138, 126, 135, 143, 125, 124, 122, 106, 133, 121, 123, 109, 131, 117, 127, 145, 130, 143, 112, 131, 130, 127, 104, 111, 112, 133, 146, 129, 121, 127, 122, 133, 111, 122, 128, 142, 128, 130, 134, 119, 117, 122, 127, 130, 140, 107, 125, 115, 132, 127, 119, 127, 141, 99, 132, 122, 140, 133, 147, 138, 109, 113, 119, 126, 116, 136, 134, 143, 127, 121, 130, 117, 131, 110, 121, 120, 130, 124, 146, 139, 131, 126, 131, 142, 142, 134, 144, 146, 138, 125, 129, 142, 123, 124, 130, 144, 138, 119, 119, 136, 121, 108, 123, 127, 125, 137, 129, 143, 97, 111, 143, 121, 137, 130, 127, 118, 115, 128, 127, 134, 133, 138, 155, 133, 123, 120, 107, 121, 124, 141, 132, 108, 116, 125, 93, 121, 129, 117, 118, 112, 133, 148, 128, 106, 123, 134, 145, 119, 114, 126, 143, 132, 123, 135, 131, 132, 132, 123, 130, 137, 147, 154, 124, 124, 129, 137, 122, 132, 117, 101, 111, 127, 106, 132, 123, 146, 124, 129, 116, 145, 138, 140, 140, 126, 127, 126, 126, 119, 115, 125, 100, 119, 117, 122, 102, 121, 129, 140, 125, 120, 131, 124, 118, 115, 143, 120, 167, 124, 125, 133, 124, 119, 136, 117, 125, 109, 143, 116, 123, 135, 113, 134, 123, 127, 119, 111, 145, 98, 120, 130, 117, 128, 136, 122, 124, 120, 124, 132, 117, 115, 114, 140, 113, 105, 133, 126, 137, 122, 129, 145, 114, 131, 162, 138, 120, 131, 110, 106, 119, 107, 130, 127, 117, 117, 116, 136, 121, 116, 111, 110, 112, 109, 125, 119, 132, 127, 139, 127, 128, 134, 110, 90, 128, 122, 119, 135, 106, 104, 121, 126, 140, 136, 126, 122, 119, 109, 132, 124, 118, 134, 122, 122, 125, 116, 113, 115, 99, 138, 114, 141, 115, 123, 112, 119, 114, 119, 143, 126, 127, 109, 126, 132, 135, 125, 112, 117, 143, 135, 121, 130, 131, 136, 113, 128, 103, 118, 133, 129, 122, 120, 112, 142, 126, 131, 119, 127, 118, 145, 130, 141, 126, 117, 133, 115, 118, 129, 117, 132, 123, 114, 129, 108, 128, 125, 115, 122, 129, 143, 128, 123, 129, 101, 124, 117, 114, 133, 143, 125, 143, 117, 144, 135, 118, 103, 125, 123, 136, 123, 120, 110, 141, 133, 120, 150, 120, 127, 125, 124, 133, 143, 110, 112, 117, 138, 123, 121, 118, 133, 122, 113, 133, 107, 129, 143, 114, 123, 124, 116, 124, 98, 109, 114, 134, 124, 136, 127, 131, 142, 137, 132, 117, 122, 114, 111, 141, 130, 109, 129, 128, 116, 130, 109, 125, 128, 125, 106, 118, 118, 112, 141, 120, 131, 110, 128, 111, 110, 123, 131, 133, 126, 126, 131, 143, 121, 128, 113, 117, 125, 142, 124, 144, 129, 125, 127, 118, 126, 117, 115, 128, 115, 116, 125, 136, 128, 123, 114, 128, 130, 127, 114, 130, 135, 133, 129, 138, 125, 124, 121, 124, 116, 126, 121, 137, 119, 112, 123, 124, 112, 141, 121, 139, 128, 129, 110, 137, 127, 124, 134, 111, 145, 131, 129, 96, 124, 125, 126, 139, 117, 141, 139, 137, 124, 150, 128, 125, 118, 149, 126, 134, 116, 116, 135, 123, 140, 124, 119, 123, 127, 130, 126, 126, 127, 130, 121, 136, 127, 141, 134, 114, 130, 120, 136, 103, 112, 143, 128, 128, 110, 125, 118, 132, 129, 118, 125, 136, 114, 121, 126, 129, 149, 136, 127, 125, 145, 126, 120, 141, 142, 125, 136, 134, 123, 152, 128, 150, 114, 127, 133, 140, 107, 120, 143, 123, 128, 135, 127, 128, 144, 152, 107, 109, 145, 122, 134, 127, 120, 123, 133, 121, 112, 131, 111, 125, 119, 127, 121, 115, 122, 122, 127, 137, 121, 115, 125, 124, 138, 121, 148, 115, 130, 115, 137, 134, 131, 129, 137, 133, 130, 123, 112, 123, 134, 128, 137, 127, 116, 119, 122, 138, 116, 129, 133, 100, 111, 117, 122, 114, 120, 95, 143, 111, 114, 138, 109, 115, 144, 133, 127, 128, 122, 135, 140, 114, 96, 130, 127, 111, 143, 136, 144, 120, 152, 138, 124, 132, 128, 112, 124, 113, 139, 148, 130, 115, 117, 141, 124, 111, 146, 120, 135, 112, 136, 124, 117, 126, 120, 123, 98, 119, 140, 142, 121, 123, 144, 125, 116, 148, 135, 107, 118, 132, 119, 120, 122, 124, 124, 115, 135, 135, 115, 134, 141, 129, 115, 131, 111, 131, 132, 130, 111, 134, 112, 123, 128, 119, 120, 133, 134, 114, 113, 123, 127, 127, 129, 121, 120, 129, 125, 136, 125, 125, 136, 120, 133, 109, 109, 128, 107, 121, 118, 119, 121, 140, 136, 118, 128, 133, 135, 110, 134, 133, 112, 114, 119, 115, 137, 115, 123, 143, 115, 117, 101, 141, 125, 127, 124, 120, 121, 128, 124, 130, 124, 123, 134, 131, 116, 134, 123, 122, 125, 112, 125, 143, 134, 128, 126, 115, 124, 130, 114, 122, 119, 120, 135, 119, 105, 130, 119, 121, 113, 126, 117, 128, 131, 104, 123, 98, 130, 117, 126, 128, 134, 118, 127, 142, 130, 122, 124, 111, 127, 108, 132, 116, 133, 127, 136, 131, 128, 130, 112, 118, 139, 118, 117, 134, 126, 137, 115, 116, 120, 153, 136, 121, 137, 128, 147, 126, 124, 120, 104, 135, 108, 115, 133, 132, 120, 105, 123, 119, 137, 131, 116, 130, 134, 120, 125, 129, 145, 155, 105, 143, 110, 110, 122, 130, 134, 124, 127, 148, 127, 120, 116, 108, 120, 139, 117, 118, 107, 126, 123, 134, 131, 135, 132, 127, 117, 115, 115, 121, 126, 123, 119, 130, 138, 133, 128, 124, 129, 141, 130, 127, 112, 126, 122, 144, 116, 132, 121, 125, 129, 141, 129, 129, 116, 124, 116, 133, 125, 129, 119, 122, 147, 118, 138, 149, 108, 137, 129, 130, 125, 124, 138, 129, 114, 124, 126, 125, 122, 146, 153, 138, 142, 138, 123, 97, 124, 129, 128, 113, 106, 130, 133, 132, 130, 116, 110, 120, 142, 132, 121, 127, 121, 110, 113, 125, 120, 123, 121, 115, 130, 141, 126, 151, 116, 121, 131, 117, 121, 139, 124, 122, 137, 122, 114, 132, 122, 129, 134, 132, 126, 107, 131, 122, 148, 114, 112, 120, 111, 134, 112, 122, 125, 125, 124, 116, 125, 107, 119, 125, 116, 132, 113, 112, 119, 126, 121, 122, 132, 134, 118, 111, 114, 125, 127, 130, 121, 123, 131, 134, 134, 128, 129, 117, 120, 147, 136, 144, 113, 110, 118, 141, 136, 122, 125, 130, 143, 106, 106, 122, 127, 113, 125, 112, 128, 128, 130, 124, 149, 131, 112, 148, 123, 126, 119, 136, 122, 134, 128, 138, 106, 137, 129, 121, 125, 120, 124, 128, 128, 120, 132, 142, 105, 128, 130, 111, 133, 116, 133, 121, 118, 129, 134, 125, 126, 115, 113, 131, 125, 137, 133, 114, 114, 144, 124, 128, 121, 126, 126, 119, 115, 125, 123, 147, 137, 132, 130, 126, 120, 117, 95, 119, 129, 129, 145, 115, 131, 124, 125, 112, 140, 124, 149, 124, 120, 128, 117, 113, 125, 134, 120, 135, 112, 122, 133, 118, 125, 130, 120, 136, 115, 115, 116, 119, 125, 130, 117, 110, 127, 129, 122, 128, 131, 118, 112, 128, 111, 122, 131, 154, 107, 117, 130, 135, 127, 125, 136, 121, 118, 122, 116, 107, 118, 120, 123, 114, 104, 135, 131, 134, 121, 103, 123, 120, 108, 116, 117, 112, 112, 116, 119, 136, 113, 123, 127, 119, 128, 136, 123, 117, 113, 134, 109, 118, 120, 126, 128, 126, 137, 124, 119, 123, 107, 120, 125, 134, 132, 108, 130, 132, 122, 131, 131, 123, 123, 113, 115, 111, 113, 149, 114, 114, 132, 115, 148, 130, 132, 122, 106, 142, 143, 118, 113, 112, 118, 146, 141, 139, 122, 100, 139, 137, 114, 110, 125, 144, 120, 120, 149, 132, 105, 135, 127, 111, 142, 115, 120, 129, 134, 127, 120, 129, 117, 116, 136, 127, 131, 137, 130, 121, 128, 123, 125, 127, 127, 143, 122, 128, 136, 126, 111, 128, 129, 135, 112, 124, 120, 115, 148, 124, 140, 124, 134, 141, 142, 120, 132, 138, 115, 135, 122, 139, 121, 112, 124, 132, 123, 113, 124, 136, 134, 115, 156, 141, 108, 118, 128, 123, 124, 105, 106, 121, 132, 134, 125, 132, 141, 119, 139, 125, 126, 121, 129, 152, 126, 121, 136, 131, 127, 132, 111, 127, 127, 118, 125, 126, 127, 119, 126, 133, 117, 108, 118, 135, 119, 140, 122, 132, 133, 117, 126, 133, 125, 116, 134, 121, 139, 109, 122, 136, 133, 126, 126, 143, 145, 149, 129, 124, 128, 118, 124, 133, 111, 116, 125, 142, 131, 136, 128, 117, 122, 114, 100, 124, 128, 125, 140, 125, 125, 116, 128, 129, 109, 137, 139, 131, 134, 127, 130, 128, 130, 142, 106, 112, 136, 117, 128, 124, 136, 147, 113, 128, 124, 121, 119, 117, 138, 116, 134, 99, 126, 132, 129, 129, 125, 119, 126, 130, 132, 130, 109, 135, 140, 116, 109, 138, 115, 137, 148, 113, 114, 128, 132, 121, 143, 127, 129, 131, 116, 120, 126, 130, 131, 117, 118, 132, 135, 133, 135, 88, 131, 128, 117, 139, 131, 122, 116, 130, 130, 138, 133, 111, 124, 132, 131, 112, 150, 128, 123, 144, 152, 126, 120, 120, 127, 137, 136, 126, 119, 131, 132, 117, 130, 137, 114, 129, 124, 135, 109, 120, 122, 122, 137, 121, 114, 141, 123, 126, 139, 113, 131, 126, 127, 129, 120, 130, 128, 123, 126, 113, 109, 121, 136, 112, 101, 122, 119, 130, 121, 130, 136, 125, 116, 129, 125, 122, 103, 128, 134, 110, 133, 127, 118, 119, 108, 104, 125, 125, 123, 125, 116, 125, 118, 115, 120, 129, 119, 119, 101, 117, 115, 131, 140, 124, 122, 96, 128, 132, 142, 124, 123, 128, 116, 137, 111, 120, 139, 139, 123, 119, 114, 132, 114, 139, 140, 116, 128, 117, 131, 102, 133, 121, 118, 140, 138, 131, 124, 156, 130, 131, 107, 134, 140, 125, 105, 130, 138, 120, 125, 120, 153, 129, 98, 101, 132, 132, 116, 133, 123, 110, 133, 112, 134, 137, 121, 121, 123, 148, 112, 128, 111, 150, 124, 122, 117, 121, 119, 121, 136, 130, 123, 120, 140, 119, 122, 134, 123, 137, 154, 114, 113, 138, 128, 108, 122, 129, 119, 135, 137, 131, 95, 138, 129, 136, 125, 134, 132, 108, 136, 94, 123, 119, 121, 98, 142, 138, 118, 124, 111, 135, 126, 133, 125, 121, 105, 128, 100, 125, 107, 133, 143, 139, 125, 125, 122, 126, 113, 119, 117, 131, 129, 123, 112, 123, 110, 135, 117, 117, 117, 121, 110, 117, 111, 132, 109, 125, 132, 143, 113, 124, 121, 120, 138, 121, 123, 132, 129, 117, 126, 131, 115, 109, 124, 124, 137, 114, 113, 147, 108, 117, 140, 125, 124, 118, 133, 131, 119, 143, 123, 142, 136, 134, 145, 124, 120, 127, 122, 121, 146, 119, 131, 139, 116, 127, 126, 133, 124, 136, 145, 138, 105, 127, 115, 137, 132, 105, 121, 132, 123, 124, 127, 121, 136, 133, 123, 122, 134, 132, 121, 113, 121, 116, 122, 106, 115, 121, 109, 101, 131, 115, 136, 145, 122, 137, 133, 113, 124, 129, 127, 118, 122, 124, 134, 124, 139, 143, 115, 128, 101, 113, 120, 125, 127, 124, 129, 120, 123, 123, 114, 121, 121, 131, 130, 112, 122, 116, 120, 129, 130, 110, 120, 115, 127, 139, 122, 115, 107, 124, 145, 115, 113, 134, 121, 135, 116, 114, 134, 117, 142, 130, 129, 115, 145, 130, 126, 143, 115, 125, 134, 115, 119, 129, 127, 130, 137, 122, 135, 136, 129, 133, 130, 131, 122, 129, 128, 123, 131, 115, 138, 122, 122, 123, 116, 113, 124, 124, 125, 146, 125, 121, 141, 134, 99, 129, 142, 133, 134, 112, 126, 131, 114, 140, 130, 126, 105, 116, 123, 125, 104, 134, 117, 130, 125, 109, 120, 105, 129, 133, 131, 121, 127, 119, 130, 130, 120, 114, 138, 124, 116, 132, 111, 112, 127, 131, 134, 98, 106, 123, 130, 135, 138, 119, 145, 108, 122, 127, 127, 128, 133, 127, 140, 117, 107, 139, 124, 112, 130, 127, 113, 143, 109, 119, 132, 138, 131, 114, 126, 134, 110, 130, 137, 133, 136, 130, 113, 131, 133, 124, 115, 126, 133, 112, 128, 117, 115, 118, 127, 127, 103, 121, 122, 137, 124, 122, 126, 126, 129, 109, 122, 128, 125, 127, 127, 115, 129, 146, 146, 137, 109, 130, 127, 142, 123, 129, 123, 136, 129, 125, 125, 133, 129, 110, 126, 128, 131, 127, 133, 125, 123, 133, 122, 120, 138, 134, 108, 133, 130, 115, 129, 132, 115, 141, 139, 124, 118, 123, 128, 128, 128, 118, 127, 109, 110, 114, 128, 129, 122, 149, 127, 150, 135, 130, 111, 97, 123, 127, 142, 139, 132, 132, 130, 126, 144, 134, 128, 133, 115, 136, 122, 138, 127, 129, 122, 123, 141, 115, 136, 132, 133, 111, 127, 126, 121, 126, 117, 125, 143, 124, 131, 118, 130, 130, 108, 116, 128, 126, 138, 121, 140, 122, 123, 137, 116, 127, 134, 121, 131, 128, 118, 111, 125, 109, 132, 132, 128, 135, 126, 132, 120, 130, 137, 131, 125, 137, 128, 126, 106, 130, 111, 129, 143, 118, 130, 130, 121, 113, 124, 110, 123, 120, 135, 113, 127, 139, 125, 114, 133, 140, 117, 132, 121, 129, 128, 113, 119, 128, 140, 122, 110, 127, 125, 143, 112, 108, 122, 126, 119, 125, 126, 108, 136, 144, 130, 125, 118, 127, 123, 122, 148, 108, 131, 127, 126, 133, 136, 139, 129, 119, 124, 118, 121, 123, 127, 136, 102, 117, 108, 165, 126, 133, 111, 123, 134, 102, 129, 141, 129, 110, 140, 131, 121, 116, 125, 93, 126, 123, 129, 133, 128, 145, 129, 138, 126, 110, 119, 114, 139, 119, 110, 115, 127, 134, 132, 133, 133, 147, 117, 132, 127, 111, 124, 129, 137, 124, 118, 139, 126, 125, 128, 137, 132, 130, 124, 122, 136, 129, 127, 129, 124, 114, 120, 166, 98, 129, 135, 129, 118, 124, 118, 116, 137, 122, 112, 135, 117, 121, 120, 120, 112, 121, 128, 127, 113, 126, 115, 104, 134, 127, 133, 124, 143, 129, 110, 137, 138, 129, 140, 130, 121, 144, 151, 130, 120, 136, 126, 125, 118, 122, 113, 116, 134, 128, 109, 124, 109, 128, 126, 135, 127, 136, 130, 106, 127, 138, 132, 127, 121, 106, 134, 131, 136, 120, 123, 129, 133, 119, 117, 112, 124, 122, 130, 102, 134, 120, 120, 127, 125, 142, 120, 137, 119, 136, 126, 109, 124, 122, 130, 125, 130, 118, 149, 126, 122, 138, 120, 130, 126, 124, 119, 119, 105, 124, 124, 132, 120, 119, 136, 128, 124, 129, 119, 112, 135, 107, 125, 142, 113, 130, 123, 106, 136, 136, 128, 118, 102, 121, 132, 131, 123, 129, 114, 131, 124, 123, 120, 139, 132, 120, 128, 119, 140, 121, 123, 142, 123, 135, 130, 127, 141, 129, 129, 122, 116, 121, 124, 121, 132, 109, 138, 139, 124, 132, 110, 123, 123, 138, 140, 127, 130, 122, 133, 130, 145, 133, 131, 114, 115, 128, 122, 124, 125, 147, 122, 120, 134, 123, 108, 138, 128, 134, 124, 134, 127, 123, 133, 130, 137, 123, 128, 108, 124, 143, 126, 123, 131, 126, 123, 104, 143, 133, 119, 123, 131, 123, 125, 118, 124, 119, 132, 102, 114, 120, 125, 120, 125, 146, 116, 126, 142, 116, 125, 127, 118, 125, 117, 136, 137, 123, 124, 135, 134, 122, 140, 123, 111, 117, 117, 118, 113, 110, 135, 127, 117, 127, 130, 121, 134, 130, 141, 99, 135, 134, 131, 133, 111, 142, 136, 123, 126, 136, 121, 123, 112, 125, 128, 129, 126, 124, 118, 117, 117, 111, 125, 113, 133, 123, 110, 117, 128, 123, 124, 120, 117, 123, 132, 155, 127, 87, 140, 121, 126, 106, 110, 116, 121, 133, 129, 113, 115, 144, 141, 115, 118, 125, 132, 113, 146, 130, 128, 128, 133, 125, 105, 134, 135, 117, 132, 118, 138, 122, 128, 120, 126, 117, 140, 122, 128, 132, 124, 123, 123, 107, 127, 137, 121, 116, 113, 123, 147, 123, 127, 108, 128, 127, 113, 114, 121, 138, 112, 117, 147, 120, 117, 145, 131, 121, 126, 125, 108, 129, 146, 113, 117, 125, 131, 163, 124, 114, 123, 126, 133, 134, 134, 128, 143, 130, 121, 110, 134, 143, 120, 118, 124, 120, 136, 116, 141, 115, 128, 132, 119, 109, 121, 123, 143, 147, 118, 118, 113, 127, 132, 128, 128, 123, 129, 137, 135, 121, 143, 127, 122, 140, 127, 133, 140, 131, 125, 120, 140, 128, 113, 123, 121, 138, 115, 116, 137, 129, 142, 127, 127, 121, 111, 113, 137, 117, 123, 131, 150, 115, 113, 120, 130, 121, 131, 122, 113, 125, 129, 121, 110, 129, 131, 125, 141, 141, 153, 137, 128, 141, 114, 116, 122, 122, 112, 120, 137, 130, 129, 115, 126, 139, 119, 134, 120, 115, 129, 120, 127, 114, 148, 126, 121, 104, 143, 142, 127, 120, 117, 126, 133, 152, 122, 116, 118, 123, 136, 125, 111, 119, 116, 113, 132, 123, 126, 132, 111, 128, 137, 113, 113, 119, 114, 117, 121, 129, 114, 121, 124, 134, 118, 129, 126, 131, 131, 120, 129, 123, 121, 136, 128, 124, 132, 125, 121, 102, 118, 120, 148, 142, 135, 118, 116, 120, 115, 134, 116, 141, 134, 119, 136, 134, 125, 131, 122, 121, 119, 105, 130, 130, 123, 111, 133, 128, 125, 125, 140, 128, 114, 119, 136, 123, 126, 123, 128, 118, 138, 109, 130, 138, 115, 141, 108, 123, 123, 117, 130, 134, 108, 140, 133, 106, 125, 135, 132, 116, 116, 119, 126, 122, 108, 119, 113, 139, 118, 117, 130, 123, 145, 119, 128, 127, 128, 127, 114, 144, 110, 102, 139, 114, 105, 120, 124, 134, 135, 116, 131, 118, 124, 121, 103, 135, 141, 140, 120, 124, 127, 131, 122, 127, 130, 123, 121, 127, 111, 123, 123, 113, 126, 112, 127, 113, 138, 118, 129, 118, 119, 127, 112, 136, 142, 117, 117, 119, 121, 131, 130, 125, 117, 121, 126, 127, 129, 129, 139, 115, 101, 143, 120, 129, 115, 153, 121, 118, 136, 113, 143, 137, 110, 116, 125, 138, 131, 135, 129, 117, 126, 115, 117, 106, 119, 140, 123, 132, 141, 122, 137, 123, 113, 131, 109, 134, 117, 108, 130, 118, 104, 115, 122, 119, 136, 120, 126, 131, 124, 120, 135, 116, 138, 127, 134, 149, 115, 118, 137, 117, 140, 121, 141, 124, 101, 141, 117, 133, 124, 111, 137, 119, 129, 131, 131, 120, 138, 138, 130, 141, 118, 117, 133, 125, 115, 115, 114, 137, 130, 126, 134, 119, 127, 131, 133, 122, 122, 124, 131, 139, 140, 134, 117, 144, 130, 126, 148, 116, 130, 127, 126, 133, 136, 145, 121, 118, 127, 125, 125, 110, 143, 141, 131, 128, 133, 132, 134, 122, 144, 118, 100, 123, 141, 113, 134, 120, 116, 141, 141, 113, 119, 127, 117, 90, 139, 120, 109, 114, 121, 137, 122, 126, 121, 130, 121, 129, 128, 104, 116, 135, 104, 138, 122, 141, 136, 127, 117, 118, 126, 129, 125, 103, 122, 144, 123, 130, 129, 142, 121, 116, 121, 126, 117, 139, 127, 112, 115, 122, 128, 116, 123, 121, 120, 118, 148, 123, 129, 130, 128, 132, 130, 121, 137, 133, 125, 123, 128, 126, 117, 110, 143, 139, 127, 125, 135, 126, 134, 139, 131, 122, 127, 142, 116, 144, 116, 135, 116, 138, 120, 130, 123, 126, 108, 115, 141, 116, 127, 122, 140, 124, 124, 125, 128, 161, 139, 133, 148, 125, 107, 127, 127, 99, 125, 124, 130, 131, 144, 144, 123, 122, 123, 134, 99, 131, 106, 134, 124, 138, 117, 145, 155, 110, 131, 132, 141, 125, 106, 136, 131, 116, 121, 123, 135, 111, 115, 124, 127, 118, 146, 122, 115, 111, 139, 125, 127, 141, 120, 130, 137, 143, 126, 135, 143, 127, 128, 132, 115, 129, 117, 102, 120, 124, 111, 129, 128, 120, 128, 125, 110, 117, 122, 119, 128, 126, 123, 141, 107, 129, 122, 126, 128, 131, 137, 120, 124, 140, 128, 122, 137, 129, 128, 134, 115, 120, 127, 128, 141, 102, 119, 135, 83, 110, 136, 113, 134, 129, 122, 164, 120, 115, 141, 132, 128, 128, 136, 126, 149, 138, 119, 114, 129, 123, 135, 139, 117, 99, 126, 141, 138, 126, 119, 113, 105, 119, 123, 135, 134, 126, 121, 114, 120, 121, 129, 127, 122, 127, 116, 147, 120, 110, 128, 127, 119, 121, 140, 110, 108, 124, 127, 127, 120, 125, 109, 111, 115, 118, 120, 120, 119, 125, 113, 133, 114, 113, 121, 119, 137, 129, 124, 128, 129, 126, 127, 127, 113, 115, 112, 114, 156, 122, 122, 122, 121, 123, 110, 124, 117, 128, 136, 113, 113, 111, 125, 123, 136, 120, 126, 125, 110, 135, 123, 134, 126, 123, 113, 140, 116, 120, 137, 103, 121, 113, 130, 132, 120, 122, 126, 99, 134, 123, 134, 130, 132, 126, 122, 119, 111, 131, 116, 135, 110, 133, 124, 132, 116, 117, 116, 136, 127, 115, 128, 126, 132, 131, 141, 141, 136, 130, 137, 114, 121, 126, 125, 130, 119, 124, 115, 120, 115, 149, 104, 121, 121, 126, 128, 124, 114, 127, 114, 117, 120, 132, 119, 125, 136, 138, 131, 135, 117, 126, 132, 119, 114, 136, 126, 159, 127, 137, 134, 140, 138, 146, 120, 119, 124, 131, 98, 128, 131, 123, 142, 139, 130, 121, 119, 131, 124, 120, 121, 136, 142, 118, 132, 120, 128, 125, 116, 114, 130, 123, 121, 131, 135, 130, 127, 124, 129, 144, 129, 118, 144, 112, 127, 135, 121, 133, 132, 128, 114, 123, 128, 116, 116, 131, 112, 131, 134, 126, 127, 133, 98, 129, 134, 121, 127, 138, 109, 110, 124, 128, 116, 134, 115, 117, 140, 116, 130, 116, 126, 128, 128, 113, 119, 111, 133, 141, 128, 135, 121, 123, 120, 143, 111, 118, 116, 131, 109, 117, 113, 134, 110, 112, 118, 124, 107, 129, 123, 124, 133, 120, 123, 130, 140, 129, 134, 132, 133, 131, 121, 127, 136, 130, 127, 126, 146, 126, 129, 134, 135, 118, 114, 122, 126, 116, 128, 121, 130, 123, 120, 122, 119, 134, 131, 118, 130, 118, 130, 117, 108, 122, 144, 132, 126, 126, 124, 116, 109, 132, 130, 112, 139, 135, 122, 110, 137, 136, 125, 133, 136, 131, 144, 129, 115, 125, 119, 114, 114, 126, 128, 131, 121, 108, 124, 134, 118, 124, 121, 125, 130, 106, 140, 138, 135, 129, 147, 148, 124, 134, 137, 138, 140, 117, 138, 141, 121, 123, 124, 128, 125, 156, 111, 118, 123, 131, 115, 125, 111, 136, 128, 113, 125, 119, 138, 124, 123, 132, 124, 131, 144, 122, 118, 108, 143, 132, 146, 130, 127, 119, 126, 142, 140, 123, 116, 124, 142, 121, 119, 125, 130, 137, 112, 131, 133, 132, 134, 129, 140, 131, 127, 128, 121, 120, 117, 131, 126, 132, 110, 115, 127, 134, 136, 127, 118, 123, 118, 123, 120, 133, 131, 122, 130, 137, 130, 134, 132, 125, 120, 123, 124, 128, 133, 133, 108, 121, 115, 138, 130, 131, 134, 113, 118, 123, 139, 139, 129, 122, 107, 122, 130, 115, 124, 122, 118, 119, 117, 119, 119, 141, 122, 127, 120, 121, 103, 108, 128, 128, 134, 118, 140, 129, 126, 115, 140, 120, 119, 130, 134, 131, 122, 110, 139, 124, 110, 136, 131, 132, 120, 121, 114, 138, 129, 123, 123, 100, 129, 119, 120, 121, 133, 120, 123, 130, 126, 123, 120, 115, 115, 132, 126, 119, 113, 145, 129, 121, 128, 129, 125, 134, 95, 139, 105, 129, 135, 114, 130, 127, 128, 122, 131, 152, 124, 124, 107, 117, 135, 126, 130, 112, 136, 132, 123, 138, 145, 126, 122, 104, 134, 128, 130, 125, 104, 137, 103, 131, 138, 110, 132, 146, 128, 128, 145, 114, 122, 117, 122, 120, 118, 124, 140, 118, 113, 128, 116, 104, 136, 126, 113, 128, 128, 121, 116, 133, 110, 115, 121, 135, 125, 131, 126, 107, 117, 130, 101, 131, 137, 111, 133, 152, 102, 126, 114, 110, 134, 143, 127, 120, 131, 97, 133, 112, 142, 127, 148, 127, 118, 135, 113, 126, 128, 120, 147, 151, 125, 128, 126, 118, 131, 118, 119, 131, 120, 138, 133, 122, 128, 143, 125, 114, 108, 120, 138, 130, 119, 123, 115, 127, 140, 143, 124, 125, 122, 122, 112, 136, 113, 136, 137, 114, 122, 127, 118, 116, 128, 113, 111, 143, 127, 109, 128, 127, 109, 121, 121, 114, 121, 137, 132, 130, 122, 140, 123, 137, 122, 125, 132, 137, 132, 127, 117, 127, 141, 120, 124, 119, 133, 119, 143, 130, 132, 123, 131, 132, 131, 132, 115, 110, 127, 132, 132, 120, 119, 134, 117, 126, 167, 130, 124, 118, 132, 112, 109, 150, 108, 121, 133, 132, 115, 146, 141, 109, 121, 125, 128, 112, 107, 137, 128, 136, 123, 118, 140, 107, 129, 127, 152, 131, 124, 112, 123, 125, 117, 109, 121, 119, 132, 132, 120, 124, 114, 125, 142, 129, 109, 128, 127, 113, 111, 136, 132, 134, 106, 132, 132, 120, 127, 120, 129, 142, 126, 121, 113, 98, 133, 125, 116, 105, 135, 108, 119, 138, 122, 140, 127, 141, 123, 137, 113, 132, 127, 150, 119, 140, 125, 119, 120, 124, 116, 126, 146, 130, 115, 130, 142, 119, 124, 131, 132, 131, 133, 125, 143, 110, 125, 124, 147, 119, 128, 104, 128, 135, 127, 122, 141, 123, 128, 140, 117, 144, 126, 123, 140, 142, 126, 116, 126, 142, 117, 127, 114, 111, 125, 117, 143, 117, 135, 120, 121, 139, 121, 127, 122, 109, 115, 110, 120, 125, 120, 133, 120, 115, 132, 143, 130, 147, 140, 111, 125, 123, 131, 113, 118, 125, 106, 125, 144, 128, 130, 120, 136, 106, 124, 127, 125, 144, 114, 128, 114, 105, 118, 125, 130, 123, 129, 127, 146, 121, 113, 121, 126, 123, 121, 140, 135, 133, 120, 116, 126, 135, 120, 108, 115, 134, 125, 121, 126, 140, 101, 122, 139, 118, 109, 121, 140, 134, 123, 131, 131, 128, 130, 123, 116, 107, 144, 127, 112, 116, 122, 126, 113, 123, 131, 106, 131, 135, 102, 143, 109, 120, 115, 121, 137, 136, 154, 118, 139, 125, 129, 134, 118, 141, 128, 149, 131, 137, 142, 139, 123, 115, 133, 141, 128, 107, 139, 129, 127, 134, 129, 128, 129, 101, 127, 133, 142, 126, 125, 111, 128, 124, 132, 118, 113, 138, 130, 132, 129, 135, 139, 142, 133, 118, 121, 133, 107, 107, 117, 141, 123, 127, 116, 127, 104, 113, 149, 132, 133, 119, 138, 121, 124, 126, 103, 136, 124, 121, 138, 135, 130, 133, 120, 111, 118, 131, 119, 110, 123, 131, 112, 112, 113, 126, 132, 116, 121, 134, 124, 115, 134, 136, 118, 126, 135, 155, 135, 140, 118, 125, 129, 122, 148, 135, 117, 105, 129, 123, 126, 111, 113, 122, 120, 125, 120, 129, 116, 121, 124, 138, 127, 122, 125, 130, 118, 128, 129, 116, 127, 129, 130, 122, 119, 142, 135, 126, 112, 136, 142, 118, 122, 113, 155, 117, 117, 118, 119, 139, 119, 118, 112, 144, 121, 124, 129, 139, 122, 137, 115, 127, 128, 151, 123, 125, 139, 109, 132, 118, 123, 134, 118, 125, 137, 133, 121, 127, 133, 113, 121, 128, 102, 108, 126, 150, 115, 123, 118, 114, 129, 108, 116, 139, 124, 152, 105, 124, 126, 124, 121, 131, 124, 129, 126, 145, 123, 122, 132, 125, 133, 127, 122, 118, 121, 118, 129, 121, 137, 138, 129, 124, 140, 119, 104, 134, 141, 132, 131, 133, 122, 131, 113, 135, 123, 125, 116, 129, 143, 106, 123, 123, 113, 129, 120, 111, 145, 132, 120, 138, 136, 103, 130, 129, 155, 130, 140, 125, 113, 131, 112, 141, 129, 125, 135, 135, 122, 145, 135, 132, 112, 127, 127, 118, 118, 144, 134, 116, 138, 133, 118, 134, 129, 134, 141, 113, 136, 122, 133, 125, 119, 130, 132, 141, 131, 133, 123, 124, 142, 127, 135, 110, 132, 137, 120, 107, 122, 123, 131, 139, 121, 103, 125, 122, 138, 115, 117, 104, 132, 125, 121, 124, 125, 111, 133, 132, 134, 123, 136, 95, 127, 138, 120, 110, 126, 128, 114, 130, 129, 119, 108, 127, 124, 127, 164, 127, 128, 116, 119, 141, 128, 125, 109, 137, 142, 134, 126, 114, 126, 118, 133, 102, 93, 126, 134, 119, 113, 123, 119, 132, 133, 123, 145, 122, 119, 123, 142, 135, 111, 130, 113, 118, 121, 127, 127, 137, 134, 119, 145, 120, 129, 120, 131, 113, 133, 125, 124, 117, 121, 113, 121, 141, 134, 94, 134, 108, 116, 129, 115, 137, 108, 115, 126, 135, 134, 116, 123, 111, 139, 121, 126, 123, 124, 115, 120, 111, 139, 130, 112, 132, 142, 120, 120, 128, 141, 130, 114, 113, 138, 130, 99, 130, 119, 115, 132, 115, 122, 139, 108, 129, 118, 140, 139, 128, 123, 120, 134, 119, 134, 127, 118, 123, 139, 125, 135, 138, 125, 112, 135, 108, 122, 147, 154, 126, 128, 128, 141, 134, 112, 133, 117, 129, 131, 104, 117, 113, 118, 137, 112, 118, 124, 127, 113, 128, 130, 133, 121, 125, 117, 132, 127, 131, 116, 135, 123, 135, 119, 137, 127, 123, 135, 113, 136, 135, 131, 124, 131, 129, 146, 121, 132, 132, 105, 124, 137, 142, 137, 144, 151, 117, 113, 116, 138, 122, 124, 129, 114, 145, 132, 131, 127, 121, 130, 132, 130, 123, 114, 127, 136, 133, 130, 120, 120, 110, 129, 108, 130, 124, 135, 128, 126, 128, 140, 133, 107, 138, 126, 134, 135, 128, 116, 109, 131, 132, 126, 131, 113, 126, 104, 125, 127, 136, 126, 129, 125, 114, 128, 133, 113, 162, 125, 129, 146, 129, 109, 126, 128, 135, 117, 122, 125, 130, 125, 120, 121, 119, 135, 142, 124, 107, 132, 127, 121, 136, 120, 112, 127, 107, 113, 121, 109, 134, 132, 133, 126, 138, 114, 134, 121, 143, 134, 134, 142, 107, 136, 126, 130, 128, 125, 126, 118, 126, 119, 120, 135, 125, 106, 127, 135, 124, 127, 56, 130, 123, 126, 139, 125, 135, 124, 129, 127, 125, 119, 117, 139, 104, 140, 112, 119, 118, 126, 131, 118, 129, 140, 125, 115, 111, 128, 131, 118, 130, 137, 112, 115, 130, 120, 121, 126, 105, 128, 132, 139, 124, 135, 122, 117, 115, 101, 135, 111, 115, 118, 117, 119, 134, 121, 97, 127, 135, 139, 138, 121, 127, 119, 121, 110, 140, 88, 143, 113, 130, 130, 143, 122, 128, 126, 140, 110, 123, 120, 126, 126, 124, 123, 114, 125, 128, 114, 138, 117, 133, 154, 107, 110, 124, 133, 132, 129, 145, 126, 126, 133, 122, 111, 128, 129, 121, 111, 130, 119, 130, 122, 123, 129, 121, 136, 141, 128, 117, 116, 122, 121, 121, 122, 127, 120, 122, 130, 132, 133, 148, 140, 125, 135, 136, 123, 107, 138, 117, 134, 116, 129, 120, 139, 110, 121, 132, 121, 126, 124, 130, 113, 116, 147, 132, 131, 123, 137, 132, 115, 133, 115, 129, 129, 121, 129, 111, 129, 124, 141, 126, 127, 137, 128, 137, 114, 132, 108, 118, 122, 144, 125, 143, 114, 126, 149, 99, 139, 126, 132, 133, 115, 128, 126, 120, 118, 122, 116, 120, 127, 119, 120, 139, 122, 133, 118, 132, 115, 124, 124, 130, 131, 128, 132, 133, 124, 125, 124, 129, 125, 134, 123, 127, 120, 102, 154, 125, 132, 134, 133, 124, 139, 129, 108, 121, 135, 126, 138, 140, 96, 131, 117, 122, 110, 111, 129, 124, 123, 123, 135, 131, 113, 107, 118, 109, 113, 121, 129, 135, 104, 128, 126, 121, 126, 129, 115, 119, 139, 125, 133, 129, 124, 129, 127, 134, 118, 118, 133, 126, 128, 131, 129, 121, 133, 151, 133, 129, 132, 117, 122, 130, 110, 126, 131, 109, 128, 135, 136, 121, 140, 124, 116, 111, 125, 127, 139, 125, 148, 144, 127, 129, 131, 119, 142, 138, 129, 141, 121, 126, 134, 136, 123, 127, 128, 137, 123, 116, 111, 116, 123, 143, 129, 114, 122, 120, 130, 127, 122, 124, 127, 136, 118, 126, 95, 127, 125, 110, 102, 112, 129, 126, 140, 137, 122, 126, 135, 119, 130, 147, 104, 117, 125, 129, 142, 129, 104, 130, 117, 118, 131, 126, 130, 128, 126, 115, 111, 127, 115, 134, 133, 112, 123, 122, 138, 126, 132, 128, 129, 127, 125, 148, 134, 128, 116, 116, 122, 135, 124, 113, 146, 116, 118, 126, 119, 144, 134, 125, 119, 122, 125, 127, 126, 148, 114, 125, 125, 131, 135, 131, 124, 129, 113, 137, 116, 126, 127, 125, 148, 119, 124, 137, 130, 121, 137, 115, 132, 112, 123, 116, 140, 140, 117, 112, 121, 124, 128, 117, 123, 128, 138, 130, 120, 112, 112, 125, 125, 117, 123, 127, 127, 115, 134, 127, 139, 110, 118, 140, 136, 136, 125, 134, 123, 118, 117, 118, 143, 133, 139, 139, 118, 126, 131, 113, 121, 126, 134, 129, 134, 138, 129, 112, 132, 129, 129, 135, 139, 125, 129, 136, 119, 127, 114, 140, 119, 123, 139, 118, 121, 125, 155, 141, 113, 145, 141, 128, 141, 120, 109, 143, 133, 104, 120, 129, 111, 138, 116, 130, 110, 127, 151, 115, 116, 108, 107, 125, 131, 124, 125, 111, 128, 137, 134, 130, 130, 131, 135, 125, 142, 139, 137, 127, 121, 131, 140, 144, 128, 120, 126, 133, 124, 121, 120, 120, 119, 120, 123, 120, 124, 147, 111, 118, 110, 119, 119, 117, 127, 129, 120, 134, 135, 113, 157, 107, 123, 127, 134, 127, 143, 115, 125, 134, 121, 136, 125, 122, 109, 122, 127, 124, 122, 126, 126, 124, 115, 140, 121, 113, 129, 129, 128, 147, 121, 117, 128, 111, 117, 138, 88, 130, 147, 141, 136, 134, 134, 126, 127, 123, 115, 135, 122, 126, 144, 98, 134, 121, 131, 132, 137, 133, 120, 124, 118, 112, 122, 133, 120, 128, 132, 148, 129, 120, 138, 136, 121, 129, 111, 117, 134, 130, 133, 125, 122, 119, 128, 125, 127, 122, 129, 125, 119, 147, 128, 128, 104, 127, 119, 137, 134, 118, 123, 145, 118, 125, 151, 119, 132, 125, 131, 136, 108, 135, 129, 120, 128, 118, 142, 130, 126, 142, 117, 120, 133, 135, 115, 133, 110, 119, 124, 120, 135, 133, 129, 132, 120, 113, 127, 134, 129, 111, 112, 127, 132, 122, 103, 117, 122, 125, 118, 132, 126, 126, 103, 139, 127, 124, 102, 125, 125, 129, 127, 140, 127, 141, 118, 134, 138, 112, 134, 122, 132, 124, 103, 128, 118, 130, 126, 127, 125, 119, 130, 133, 123, 125, 139, 118, 139, 119, 126, 137, 124, 135, 131, 138, 121, 122, 128, 125, 129, 134, 116, 130, 132, 125, 132, 132, 125, 140, 135, 142, 115, 129, 119, 113, 123, 127, 135, 128, 124, 122, 124, 124, 129, 133, 133, 136, 129, 133, 126, 130, 124, 141, 95, 117, 113, 122, 147, 139, 118, 129, 126, 123, 91, 132, 133, 125, 117, 123, 139, 130, 121, 146, 136, 125, 125, 144, 115, 131, 121, 122, 103, 119, 131, 120, 122, 127, 127, 134, 134, 132, 127, 123, 130, 124, 123, 133, 126, 141, 134, 130, 106, 112, 139, 123, 119, 125, 121, 108, 126, 126, 134, 145, 124, 118, 120, 132, 122, 121, 113, 130, 144, 132, 118, 127, 126, 123, 131, 125, 119, 110, 119, 127, 110, 113, 125, 132, 122, 114, 123, 129, 113, 134, 130, 137, 130, 123, 137, 132, 118, 103, 141, 109, 120, 113, 110, 126, 108, 130, 121, 129, 117, 118, 118, 122, 129, 118, 118, 124, 121, 117, 117, 135, 133, 136, 139, 129, 132, 144, 118, 129, 118, 94, 115, 132, 143, 111, 115, 108, 121, 116, 137, 108, 127, 120, 116, 118, 122, 110, 122, 127, 115, 121, 128, 129, 118, 115, 118, 114, 100, 131, 126, 130, 129, 114, 135, 125, 117, 147, 122, 130, 118, 132, 133, 130, 113, 132, 137, 130, 113, 133, 113, 121, 132, 118, 136, 126, 124, 107, 122, 143, 135, 105, 112, 124, 147, 127, 117, 112, 135, 132, 114, 130, 134, 119, 120, 128, 115, 121, 133, 117, 128, 129, 123, 123, 129, 139, 123, 133, 134, 141, 134, 133, 126, 139, 114, 118, 105, 138, 144, 108, 116, 125, 140, 127, 145, 126, 137, 112, 109, 116, 128, 133, 109, 113, 129, 136, 123, 127, 146, 113, 113, 132, 119, 125, 125, 134, 110, 129, 130, 120, 122, 132, 135, 129, 103, 138, 105, 135, 131, 117, 124, 139, 121, 104, 118, 113, 119, 125, 129, 110, 103, 135, 127, 127, 118, 134, 132, 129, 136, 114, 115, 135, 129, 141, 119, 121, 105, 128, 122, 114, 138, 119, 120, 141, 129, 132, 125, 122, 149, 123, 113, 134, 127, 140, 126, 119, 127, 136, 125, 120, 122, 123, 108, 141, 119, 125, 128, 141, 136, 123, 124, 111, 120, 118, 123, 125, 132, 125, 121, 125, 140, 126, 112, 134, 130, 161, 117, 149, 146, 127, 134, 122, 137, 125, 108, 123, 131, 118, 138, 133, 136, 151, 127, 127, 125, 127, 137, 100, 121, 118, 104, 129, 131, 125, 126, 120, 125, 140, 118, 127, 109, 119, 123, 127, 131, 121, 110, 118, 125, 125, 125, 133, 120, 143, 129, 107, 134, 133, 123, 120, 148, 104, 125, 134, 119, 132, 131, 113, 126, 132, 108, 124, 133, 133, 111, 118, 116, 123, 123, 129, 141, 130, 127, 122, 116, 128, 129, 139, 129, 133, 146, 136, 114, 129, 120, 123, 126, 120, 129, 135, 142, 121, 143, 129, 130, 129, 143, 124, 126, 120, 139, 99, 106, 115, 128, 127, 132, 113, 131, 125, 141, 144, 115, 129, 114, 132, 129, 127, 126, 108, 130, 124, 104, 133, 123, 123, 131, 104, 124, 124, 129, 120, 130, 122, 114, 113, 137, 122, 131, 142, 122, 129, 101, 111, 134, 128, 119, 140, 137, 127, 104, 134, 113, 142, 135, 127, 104, 122, 137, 113, 138, 120, 121, 125, 116, 130, 116, 108, 125, 106, 148, 99, 103, 146, 118, 128, 131, 122, 119, 119, 131, 121, 121, 123, 126, 114, 113, 124, 123, 125, 118, 130, 129, 123, 121, 119, 127, 129, 139, 134, 97, 155, 107, 126, 116, 144, 111, 129, 117, 126, 136, 111, 111, 125, 127, 124, 117, 140, 117, 143, 145, 134, 129, 116, 120, 137, 123, 128, 134, 133, 132, 134, 129, 115, 138, 101, 121, 124, 84, 115, 104, 115, 123, 132, 125, 122, 109, 124, 124, 135, 136, 128, 132, 116, 143, 122, 122, 124, 120, 121, 127, 125, 132, 106, 132, 129, 121, 123, 119, 122, 131, 118, 125, 121, 118, 122, 127, 116, 117, 135, 125, 129, 133, 144, 126, 123, 116, 117, 146, 135, 128, 140, 122, 133, 136, 145, 137, 132, 149, 147, 115, 117, 108, 116, 125, 124, 142, 126, 122, 129, 136, 119, 139, 143, 128, 134, 120, 112, 118, 116, 116, 131, 120, 111, 99, 133, 126, 118, 122, 127, 128, 134, 132, 123, 127, 114, 136, 131, 121, 113, 146, 121, 138, 117, 133, 126, 141, 132, 126, 135, 140, 132, 130, 117, 131, 129, 124, 122, 121, 118, 130, 127, 103, 127, 111, 109, 113, 118, 117, 103, 133, 117, 133, 117, 130, 115, 120, 123, 146, 133, 122, 124, 117, 108, 115, 119, 122, 127, 125, 127, 134, 143, 129, 130, 129, 123, 119, 132, 128, 115, 133, 132, 111, 127, 138, 134, 136, 142, 115, 111, 126, 112, 124, 119, 134, 125, 127, 107, 140, 126, 113, 105, 111, 104, 133, 115, 119, 146, 128, 104, 131, 116, 143, 127, 116, 146, 128, 131, 133, 130, 134, 117, 119, 138, 134, 124, 120, 116, 127, 137, 113, 134, 118, 129, 117, 132, 127, 137, 130, 119, 139, 129, 112, 124, 132, 120, 114, 126, 125, 113, 135, 129, 117, 128, 130, 137, 136, 122, 109, 125, 120, 127, 126, 129, 139, 137, 132, 137, 123, 127, 126, 132, 131, 137, 106, 129, 129, 141, 132, 124, 132, 123, 144, 129, 123, 119, 122, 141, 130, 132, 124, 126, 119, 113, 138, 125, 122, 126, 130, 122, 122, 116, 132, 136, 123, 128, 122, 133, 112, 118, 108, 122, 123, 126, 130, 108, 134, 126, 131, 141, 120, 140, 129, 116, 131, 127, 126, 122, 135, 125, 113, 124, 120, 128, 133, 124, 132, 123, 105, 122, 105, 131, 132, 134, 121, 133, 135, 120, 129, 126, 123, 121, 144, 117, 117, 121, 132, 119, 113, 127, 129, 107, 105, 110, 117, 146, 127, 119, 124, 132, 121, 131, 132, 136, 130, 124, 126, 125, 137, 130, 130, 130, 108, 107, 150, 133, 128, 112, 133, 120, 118, 130, 113, 128, 113, 140, 120, 142, 107, 122, 117, 141, 145, 113, 130, 125, 127, 123, 115, 136, 125, 148, 147, 128, 119, 139, 131, 134, 136, 130, 115, 133, 121, 133, 111, 124, 105, 125, 135, 138, 111, 135, 148, 135, 114, 110, 134, 125, 128, 124, 136, 131, 122, 139, 133, 135, 128, 122, 125, 138, 141, 150, 116, 115, 93, 116, 123, 118, 156, 118, 117, 127, 141, 134, 134, 106, 129, 130, 124, 118, 128, 127, 158, 132, 118, 131, 142, 108, 131, 127, 130, 136, 116, 125, 126, 124, 142, 114, 127, 127, 124, 127, 114, 121, 125, 120, 118, 125, 123, 122, 112, 125, 133, 127, 111, 128, 119, 146, 132, 135, 116, 127, 130, 132, 117, 113, 129, 109, 144, 132, 112, 142, 138, 141, 140, 128, 119, 126, 132, 121, 116, 115, 123, 139, 125, 137, 123, 138, 122, 118, 130, 124, 141, 113, 111, 122, 113, 131, 116, 114, 111, 119, 132, 132, 138, 148, 127, 117, 128, 125, 135, 111, 116, 123, 103, 116, 137, 142, 129, 131, 118, 127, 111, 137, 122, 127, 132, 114, 112, 118, 120, 126, 124, 112, 131, 113, 116, 116, 117, 140, 104, 116, 116, 121, 136, 130, 122, 126, 119, 121, 117, 125, 114, 122, 150, 131, 127, 119, 122, 130, 130, 139, 97, 123, 114, 134, 123, 113, 104, 128, 125, 117, 123, 112, 130, 125, 121, 115, 142, 127, 120, 122, 123, 141, 142, 119, 141, 119, 130, 126, 123, 133, 128, 132, 134, 116, 113, 133, 116, 122, 129, 111, 117, 110, 108, 123, 134, 127, 117, 125, 102, 123, 131, 122, 108, 132, 159, 138, 118, 117, 127, 123, 107, 122, 125, 131, 131, 126, 140, 124, 107, 110, 122, 123, 95, 137, 119, 127, 139, 121, 105, 134, 140, 120, 145, 120, 138, 145, 130, 112, 133, 125, 148, 124, 125, 120, 135, 120, 150, 129, 107, 123, 113, 134, 124, 116, 126, 129, 128, 111, 134, 125, 131, 125, 138, 117, 133, 120, 114, 133, 115, 126, 122, 120, 123, 123, 103, 138, 112, 108, 127, 111, 142, 119, 130, 126, 115, 125, 119, 131, 124, 127, 128, 127, 139, 118, 147, 134, 135, 123, 91, 101, 130, 127, 136, 136, 138, 144, 114, 127, 123, 142, 139, 131, 129, 134, 122, 121, 130, 124, 124, 134, 114, 124, 119, 126, 108, 115, 124, 121, 123, 140, 140, 145, 127, 130, 131, 155, 125, 111, 114, 129, 123, 129, 129, 119, 132, 125, 166, 131, 104, 132, 127, 126, 124, 124, 123, 132, 125, 116, 116, 117, 135, 131, 124, 122, 127, 125, 116, 123, 159, 132, 139, 128, 124, 128, 137, 124, 141, 94, 129, 131, 115, 127, 116, 128, 146, 111, 129, 102, 119, 120, 128, 112, 123, 110, 111, 124, 141, 122, 130, 122, 129, 126, 110, 119, 127, 127, 121, 135, 121, 119, 131, 130, 139, 116, 128, 133, 123, 138, 117, 133, 124, 107, 123, 120, 132, 115, 126, 125, 124, 141, 105, 124, 123, 117, 122, 142, 119, 114, 136, 134, 119, 116, 111, 108, 99, 120, 110, 145, 121, 120, 135, 118, 131, 140, 128, 132, 133, 122, 142, 126, 120, 123, 117, 123, 125, 115, 102, 122, 124, 117, 142, 119, 139, 126, 144, 124, 110, 124, 131, 140, 139, 130, 120, 120, 100, 122, 139, 129, 128, 116, 121, 147, 106, 133, 117, 135, 130, 131, 144, 124, 128, 126, 125, 135, 112, 110, 100, 120, 113, 148, 132, 137, 123, 120, 139, 101, 133, 149, 132, 113, 115, 138, 127, 132, 111, 126, 139, 116, 130, 142, 121, 130, 118, 128, 126, 101, 115, 122, 113, 143, 116, 133, 113, 144, 118, 101, 117, 160, 123, 124, 120, 155, 121, 127, 123, 130, 123, 121, 133, 134, 126, 121, 137, 138, 115, 121, 118, 125, 129, 134, 120, 146, 125, 146, 131, 126, 140, 115, 138, 129, 116, 114, 131, 122, 118, 119, 119, 134, 103, 116, 115, 114, 122, 133, 109, 112, 131, 124, 118, 120, 142, 113, 127, 124, 131, 133, 107, 115, 120, 127, 129, 123, 108, 124, 124, 140, 128, 131, 146, 110, 134, 125, 142, 117, 115, 139, 123, 131, 129, 121, 121, 141, 126, 125, 113, 109, 123, 125, 123, 108, 134, 126, 107, 133, 136, 136, 104, 119, 132, 123, 126, 131, 124, 114, 130, 116, 128, 137, 119, 123, 123, 125, 135, 129, 121, 129, 119, 122, 145, 130, 118, 148, 116, 113, 124, 107, 128, 135, 133, 132, 124, 148, 143, 133, 131, 125, 118, 141, 127, 132, 125, 127, 122, 124, 128, 136, 122, 117, 138, 129, 138, 124, 123, 135, 130, 133, 118, 134, 137, 130, 135, 132, 135, 141, 133, 119, 121, 123, 113, 122, 121, 126, 125, 115, 119, 124, 125, 126, 114, 127, 129, 142, 135, 142, 114, 129, 114, 130, 127, 115, 120, 110, 150, 117, 125, 128, 123, 126, 142, 115, 130, 113, 141, 139, 129, 119, 121, 132, 149, 113, 123, 138, 116, 122, 122, 133, 134, 127, 124, 123, 110, 144, 126, 118, 135, 121, 108, 143, 126, 122, 136, 127, 128, 132, 132, 139, 128, 126, 130, 118, 129, 117, 133, 130, 123, 143, 129, 137, 136, 135, 124, 117, 126, 124, 144, 119, 145, 113, 129, 116, 124, 130, 122, 120, 131, 126, 132, 130, 140, 124, 117, 127, 120, 134, 137, 119, 126, 136, 109, 121, 116, 110, 128, 116, 131, 130, 123, 123, 127, 125, 115, 121, 121, 114, 117, 132, 130, 111, 125, 138, 129, 115, 121, 120, 113, 129, 128, 123, 133, 121, 133, 137, 121, 128, 128, 118, 116, 127, 139, 126, 133, 114, 114, 145, 108, 135, 141, 125, 120, 140, 129, 132, 139, 118, 124, 135, 119, 140, 130, 133, 130, 99, 113, 123, 141, 124, 131, 116, 130, 117, 116, 126, 139, 138, 136, 121, 131, 140, 141, 110, 123, 108, 127, 114, 128, 124, 136, 110, 134, 118, 122, 111, 119, 140, 106, 128, 122, 117, 130, 131, 129, 132, 117, 127, 126, 134, 110, 137, 122, 129, 132, 136, 134, 118, 115, 121, 116, 117, 130, 139, 126, 125, 115, 120, 126, 111, 128, 130, 119, 130, 119, 122, 147, 146, 144, 120, 124, 114, 121, 122, 123, 110, 108, 126, 151, 134, 124, 124, 148, 126, 151, 143, 134, 133, 129, 132, 118, 153, 110, 142, 131, 122, 128, 131, 121, 130, 120, 118, 123, 121, 120, 122, 128, 122, 111, 143, 93, 128, 126, 125, 134, 117, 119, 135, 141, 120, 134, 139, 115, 137, 138, 123, 120, 135, 116, 110, 126, 100, 137, 113, 120, 127, 130, 115, 119, 123, 122, 121, 137, 120, 120, 116, 143, 110, 125, 132, 134, 123, 133, 121, 117, 134, 125, 129, 128, 124, 111, 121, 133, 126, 106, 127, 120, 135, 118, 101, 140, 107, 128, 129, 127, 120, 129, 121, 127, 137, 133, 113, 124, 146, 109, 126, 112, 116, 133, 112, 137, 124, 118, 125, 130, 113, 130, 129, 119, 133, 115, 124, 125, 109, 134, 136, 120, 101, 128, 133, 118, 133, 118, 131, 107, 122, 115, 126, 121, 124, 105, 121, 116, 114, 121, 133, 109, 137, 121, 129, 152, 106, 121, 131, 126, 120, 115, 128, 155, 146, 128, 120, 140, 112, 119, 129, 119, 126, 139, 133, 135, 128, 138, 119, 124, 124, 109, 120, 109, 135, 112, 143, 139, 120, 142, 142, 124, 128, 134, 131, 127, 122, 119, 125, 109, 126, 117, 123, 114, 130, 136, 116, 152, 121, 135, 130, 127, 114, 123, 133, 124, 136, 133, 123, 133, 125, 120, 133, 135, 112, 118, 115, 132, 134, 135, 127, 130, 145, 122, 131, 160, 143, 124, 119, 127, 119, 127, 123, 110, 111, 125, 132, 116, 134, 126, 113, 108, 111, 125, 120, 134, 142, 119, 115, 129, 144, 124, 122, 105, 141, 110, 121, 132, 123, 110, 104, 105, 111, 128, 127, 128, 156, 139, 139, 100, 131, 132, 153, 108, 110, 125, 128, 134, 124, 120, 132, 106, 118, 120, 138, 135, 129, 109, 140, 109, 124, 121, 116, 103, 114, 127, 153, 120, 124, 132, 116, 121, 136, 129, 110, 120, 103, 128, 131, 112, 126, 114, 125, 146, 124, 133, 103, 130, 120, 110, 123, 130, 119, 122, 131, 119, 123, 132, 130, 115, 126, 106, 130, 126, 110, 120, 112, 114, 113, 137, 108, 117, 127, 108, 127, 114, 127, 139, 113, 123, 123, 106, 126, 141, 137, 133, 126, 121, 122, 133, 121, 135, 138, 129, 119, 138, 133, 121, 118, 130, 146, 133, 131, 127, 131, 142, 132, 129, 127, 128, 133, 133, 103, 141, 138, 114, 129, 105, 124, 126, 117, 126, 102, 141, 100, 137, 125, 143, 122, 114, 132, 128, 142, 139, 124, 124, 119, 136, 118, 121, 103, 127, 132, 140, 122, 142, 125, 129, 140, 119, 107, 122, 126, 113, 136, 124, 131, 138, 117, 117, 116, 124, 112, 127, 120, 121, 135, 118, 124, 141, 121, 131, 120, 134, 129, 128, 121, 123, 122, 123, 123, 134, 129, 135, 132, 119, 123, 119, 122, 133, 111, 114, 131, 142, 148, 129, 131, 109, 115, 129, 111, 133, 145, 126, 117, 136, 126, 113, 126, 101, 128, 117, 135, 122, 133, 115, 91, 119, 137, 139, 139, 144, 111, 138, 129, 130, 148, 132, 123, 127, 119, 109, 123, 120, 115, 128, 127, 129, 130, 122, 120, 114, 117, 124, 128, 105, 122, 106, 126, 108, 113, 138, 148, 129, 117, 124, 122, 134, 127, 121, 131, 128, 127, 126, 127, 119, 145, 120, 128, 134, 101, 140, 117, 115, 108, 136, 106, 130, 122, 128, 123, 122, 132, 136, 148, 109, 119, 146, 126, 122, 117, 136, 121, 121, 124, 123, 133, 117, 119, 135, 128, 122, 128, 113, 136, 115, 134, 128, 119, 126, 121, 139, 120, 120, 121, 123, 126, 139, 111, 120, 109, 134, 130, 136, 122, 115, 106, 134, 137, 133, 120, 145, 135, 123, 127, 115, 128, 127, 126, 115, 128, 141, 131, 115, 122, 145, 139, 121, 124, 146, 117, 123, 118, 121, 129, 128, 134, 166, 112, 130, 123, 135, 122, 119, 128, 122, 117, 135, 142, 143, 114, 127, 97, 111, 128, 122, 133, 139, 117, 135, 134, 120, 138, 112, 104, 115, 121, 140, 138, 127, 123, 142, 115, 119, 121, 123, 136, 118, 113, 120, 139, 134, 112, 121, 123, 140, 126, 115, 113, 133, 129, 102, 138, 129, 131, 131, 120, 138, 129, 129, 103, 117, 154, 104, 120, 140, 131, 129, 127, 146, 125, 131, 140, 124, 111, 141, 125, 113, 120, 105, 116, 119, 124, 120, 133, 142, 113, 113, 145, 121, 124, 130, 121, 126, 115, 115, 128, 129, 140, 114, 134, 141, 127, 122, 124, 112, 127, 128, 125, 105, 119, 124, 124, 128, 121, 106, 124, 134, 131, 118, 128, 136, 128, 109, 128, 129, 141, 125, 136, 133, 132, 125, 123, 115, 118, 128, 107, 109, 114, 126, 143, 117, 118, 142, 116, 123, 140, 147, 128, 128, 131, 121, 131, 119, 123, 118, 120, 122, 152, 121, 118, 131, 125, 123, 120, 127, 135, 118, 130, 140, 130, 112, 126, 134, 131, 114, 120, 121, 127, 109, 101, 113, 114, 133, 138, 115, 121, 118, 125, 137, 123, 133, 121, 131, 128, 133, 129, 116, 124, 117, 132, 121, 140, 125, 114, 120, 106, 107, 113, 118, 124, 135, 129, 136, 141, 136, 136, 141, 120, 123, 133, 138, 111, 116, 122, 117, 126, 129, 126, 116, 110, 123, 124, 121, 126, 142, 128, 136, 124, 143, 122, 121, 145, 147, 121, 125, 113, 124, 119, 127, 124, 127, 114, 116, 123, 153, 137, 126, 161, 121, 112, 138, 140, 123, 112, 135, 119, 119, 109, 122, 125, 120, 118, 126, 109, 125, 141, 141, 112, 110, 140, 129, 124, 129, 119, 141, 119, 129, 113, 142, 126, 123, 135, 126, 121, 127, 110, 131, 117, 114, 118, 119, 137, 127, 123, 124, 124, 112, 121, 97, 116, 115, 143, 110, 119, 136, 129, 129, 136, 140, 130, 134, 122, 127, 122, 114, 121, 121, 109, 119, 110, 129, 131, 131, 112, 116, 112, 115, 127, 126, 128, 115, 103, 135, 130, 125, 133, 134, 121, 128, 114, 133, 136, 110, 138, 138, 123, 153, 124, 115, 133, 133, 130, 130, 116, 129, 125, 117, 112, 104, 128, 126, 122, 124, 134, 126, 123, 135, 135, 110, 150, 137, 121, 113, 113, 100, 118, 122, 118, 116, 125, 105, 125, 119, 119, 131, 143, 137, 112, 135, 115, 135, 126, 139, 135, 137, 132, 122, 117, 127, 131, 120, 111, 106, 112, 119, 133, 123, 130, 121, 136, 134, 124, 120, 122, 126, 118, 129, 120, 126, 116, 131, 119, 117, 115, 131, 130, 112, 130, 125, 114, 156, 139, 141, 124, 136, 108, 135, 130, 127, 117, 153, 144, 114, 118, 128, 127, 117, 129, 128, 114, 132, 151, 120, 145, 129, 116, 129, 124, 118, 115, 110, 120, 117, 103, 138, 106, 127, 100, 119, 126, 115, 120, 127, 149, 127, 148, 116, 125, 121, 103, 131, 135, 133, 120, 107, 95, 140, 120, 149, 117, 126, 136, 117, 138, 119, 138, 119, 102, 129, 121, 139, 111, 117, 118, 130, 131, 124, 136, 115, 115, 125, 124, 116, 118, 124, 122, 121, 131, 124, 118, 133, 137, 148, 122, 133, 135, 137, 119, 138, 121, 136, 143, 121, 122, 115, 121, 143, 123, 126, 123, 109, 117, 115, 116, 136, 121, 116, 130, 128, 134, 137, 121, 124, 123, 114, 148, 112, 131, 129, 138, 121, 123, 128, 134, 138, 132, 104, 133, 139, 111, 124, 127, 139, 129, 122, 121, 139, 118, 102, 143, 122, 118, 125, 103, 145, 121, 117, 134, 147, 140, 132, 125, 112, 115, 113, 125, 129, 116, 125, 113, 126, 138, 125, 124, 133, 137, 149, 115, 124, 140, 114, 117, 122, 124, 126, 124, 107, 123, 138, 111, 141, 142, 137, 114, 122, 140, 121, 132, 113, 114, 138, 121, 135, 128, 131, 105, 121, 124, 120, 127, 138, 115, 131, 116, 127, 125, 131, 128, 112, 152, 114, 138, 108, 126, 126, 139, 119, 108, 128, 142, 123, 126, 118, 140, 144, 113, 118, 117, 132, 123, 142, 125, 139, 124, 110, 125, 129, 126, 113, 132, 132, 115, 128, 102, 124, 134, 114, 123, 129, 127, 141, 128, 113, 136, 148, 125, 119, 114, 131, 110, 118, 117, 127, 117, 128, 134, 117, 126, 114, 127, 118, 110, 122, 136, 118, 109, 125, 124, 96, 142, 115, 135, 122, 135, 129, 130, 131, 134, 134, 126, 134, 133, 125, 126, 91, 125, 130, 111, 124, 126, 127, 128, 124, 129, 122, 105, 126, 107, 118, 134, 132, 121, 131, 136, 141, 116, 134, 131, 134, 139, 127, 100, 113, 125, 136, 137, 125, 124, 125, 117, 135, 127, 133, 137, 125, 133, 129, 123, 128, 119, 121, 120, 149, 108, 128, 108, 128, 125, 134, 115, 129, 121, 139, 114, 138, 112, 128, 108, 130, 126, 135, 117, 126, 118, 130, 123, 129, 122, 125, 138, 138, 121, 124, 109, 118, 111, 150, 123, 133, 121, 143, 110, 153, 111, 128, 130, 116, 119, 134, 108, 120, 125, 148, 119, 130, 116, 124, 129, 122, 125, 137, 128, 122, 117, 128, 121, 123, 124, 114, 117, 116, 102, 128, 131, 116, 137, 130, 118, 128, 123, 119, 116, 119, 109, 128, 119, 119, 145, 158, 111, 126, 120, 135, 130, 131, 131, 127, 128, 118, 157, 124, 127, 116, 133, 126, 126, 113, 129, 133, 126, 116, 117, 120, 133, 139, 123, 118, 139, 132, 116, 115, 130, 123, 112, 125, 123, 110, 154, 121, 130, 126, 118, 125, 120, 121, 116, 143, 139, 124, 136, 148, 132, 119, 123, 108, 129, 117, 117, 118, 128, 124, 124, 122, 129, 119, 120, 110, 124, 128, 124, 135, 136, 111, 117, 120, 118, 125, 129, 128, 131, 126, 131, 109, 130, 143, 126, 123, 131, 133, 140, 130, 116, 120, 135, 135, 127, 135, 119, 121, 145, 137, 120, 123, 118, 115, 127, 125, 127, 115, 141, 123, 132, 125, 110, 98, 114, 137, 124, 132, 146, 136, 117, 113, 121, 136, 131, 105, 123, 131, 108, 134, 112, 143, 136, 130, 143, 127, 118, 144, 128, 130, 133, 123, 118, 140, 109, 139, 120, 124, 111, 118, 102, 122, 125, 128, 128, 116, 116, 121, 124, 114, 118, 117, 140, 125, 122, 129, 136, 130, 106, 127, 138, 136, 129, 121, 140, 135, 140, 133, 139, 117, 116, 145, 105, 123, 114, 124, 121, 128, 127, 124, 104, 124, 146, 134, 124, 126, 135, 121, 128, 150, 136, 122, 128, 125, 126, 137, 122, 123, 117, 120, 133, 127, 134, 112, 107, 130, 142, 125, 124, 133, 136, 138, 115, 154, 131, 113, 119, 133, 146, 121, 116, 127, 130, 131, 134, 122, 110, 147, 134, 132, 130, 127, 118, 122, 153, 120, 126, 129, 139, 137, 105, 128, 126, 129, 123, 123, 111, 120, 133, 116, 118, 124, 114, 142, 125, 134, 138, 132, 121, 97, 116, 127, 121, 123, 112, 130, 118, 122, 130, 133, 118, 108, 135, 114, 124, 117, 112, 118, 148, 122, 133, 126, 132, 126, 121, 124, 136, 136, 147, 132, 130, 151, 117, 113, 120, 136, 122, 119, 134, 116, 118, 119, 140, 119, 145, 137, 114, 119, 149, 130, 128, 109, 114, 125, 121, 118, 122, 143, 114, 132, 128, 134, 127, 132, 132, 120, 120, 129, 128, 119, 139, 118, 123, 127, 147, 140, 114, 133, 119, 119, 125, 143, 129, 128, 130, 119, 125, 127, 147, 127, 128, 125, 138, 113, 130, 120, 126, 134, 140, 138, 120, 100, 125, 123, 115, 152, 121, 132, 137, 125, 120, 135, 118, 112, 119, 131, 127, 116, 128, 117, 121, 133, 130, 114, 128, 132, 106, 125, 127, 119, 126, 130, 132, 128, 129, 99, 111, 115, 120, 120, 146, 133, 123, 154, 124, 130, 135, 116, 122, 129, 103, 124, 112, 136, 134, 110, 131, 139, 114, 117, 138, 131, 134, 120, 125, 133, 126, 124, 127, 126, 131, 135, 116, 119, 107, 131, 120, 121, 133, 126, 122, 121, 117, 127, 115, 116, 114, 127, 134, 116, 126, 119, 136, 127, 124, 126, 136, 133, 120, 106, 119, 125, 98, 139, 119, 141, 133, 134, 130, 130, 139, 122, 136, 103, 127, 125, 120, 128, 131, 126, 119, 119, 116, 130, 133, 145, 126, 113, 129, 119, 125, 137, 120, 127, 125, 127, 122, 117, 121, 128, 105, 117, 136, 125, 142, 124, 136, 115, 129, 143, 125, 125, 138, 124, 118, 129, 132, 120, 140, 101, 143, 126, 125, 126, 125, 136, 133, 124, 128, 145, 119, 137, 148, 110, 122, 131, 114, 141, 129, 133, 112, 136, 114, 156, 130, 114, 127, 149, 120, 129, 128, 132, 125, 112, 123, 128, 142, 118, 118, 141, 115, 118, 123, 121, 128, 131, 125, 122, 133, 120, 138, 116, 147, 120, 133, 131, 136, 135, 139, 119, 149, 122, 163, 132, 116, 134, 134, 123, 132, 123, 125, 126, 127, 124, 134, 133, 136, 107, 114, 118, 124, 115, 129, 141, 114, 124, 135, 122, 123, 112, 131, 121, 138, 152, 113, 137, 135, 127, 143, 117, 126, 128, 118, 113, 108, 118, 115, 128, 121, 130, 141, 118, 138, 125, 133, 117, 124, 115, 131, 127, 126, 113, 128, 128, 130, 108, 114, 122, 132, 133, 123, 130, 133, 124, 123, 132, 116, 119, 106, 105, 113, 142, 131, 115, 125, 120, 125, 119, 126, 120, 142, 113, 138, 131, 120, 138, 136, 137, 119, 130, 133, 122, 124, 126, 131, 113, 108, 122, 130, 120, 144, 123, 132, 124, 129, 116, 118, 125, 122, 90, 119, 125, 118, 115, 112, 149, 125, 123, 108, 129, 115, 126, 131, 124, 129, 130, 106, 118, 126, 116, 120, 133, 114, 129, 126, 117, 117, 121, 132, 144, 142, 131, 135, 136, 113, 138, 130, 121, 123, 129, 118, 124, 138, 116, 117, 126, 119, 133, 140, 122, 140, 126, 121, 122, 122, 147, 129, 111, 133, 115, 128, 111, 126, 124, 114, 111, 128, 127, 132, 114, 125, 137, 123, 125, 126, 127, 133, 123, 117, 124, 112, 133, 129, 133, 110, 123, 122, 120, 130, 139, 133, 148, 135, 121, 137, 133, 124, 117, 130, 125, 118, 129, 130, 119, 130, 141, 116, 126, 149, 121, 114, 113, 146, 119, 113, 107, 134, 112, 120, 143, 134, 107, 124, 115, 127, 124, 132, 114, 135, 121, 135, 118, 129, 116, 139, 126, 120, 134, 131, 129, 131, 129, 144, 125, 128, 116, 127, 117, 122, 107, 117, 115, 135, 123, 126, 124, 134, 155, 114, 126, 122, 130, 132, 119, 114, 124, 115, 113, 117, 128, 132, 141, 127, 129, 123, 160, 113, 110, 127, 124, 125, 123, 124, 110, 145, 112, 124, 121, 120, 124, 114, 123, 112, 108, 132, 140, 135, 126, 130, 140, 130, 137, 133, 133, 140, 103, 129, 120, 137, 136, 120, 128, 107, 136, 128, 126, 121, 122, 120, 129, 113, 118, 129, 126, 127, 109, 137, 130, 132, 129, 137, 123, 113, 131, 119, 117, 117, 138, 128, 108, 124, 116, 135, 123, 121, 124, 129, 108, 132, 125, 88, 124, 133, 140, 126, 117, 135, 133, 130, 132, 141, 113, 117, 134, 136, 130, 137, 119, 118, 152, 121, 128, 121, 127, 124, 116, 125, 140, 122, 125, 134, 128, 128, 114, 123, 123, 125, 147, 124, 132, 127, 138, 111, 123, 133, 131, 128, 125, 121, 142, 124, 121, 127, 130, 122, 128, 128, 129, 143, 123, 124, 105, 137, 124, 125, 123, 121, 139, 124, 132, 111, 124, 137, 128, 130, 122, 109, 128, 134, 143, 136, 136, 148, 138, 114, 129, 149, 114, 115, 122, 115, 133, 125, 127, 124, 128, 107, 130, 129, 120, 103, 117, 117, 138, 118, 125, 99, 115, 131, 137, 145, 118, 122, 148, 121, 120, 128, 122, 124, 146, 141, 110, 109, 127, 125, 128, 111, 116, 116, 123, 113, 122, 124, 123, 125, 132, 118, 113, 122, 126, 114, 124, 132, 124, 118, 115, 132, 130, 118, 137, 119, 131, 129, 119, 135, 120, 102, 125, 121, 111, 126, 141, 125, 131, 129, 110, 122, 122, 135, 127, 123, 128, 121, 132, 133, 135, 129, 116, 114, 147, 127, 134, 140, 119, 116, 128, 122, 117, 115, 117, 146, 131, 139, 124, 147, 132, 141, 119, 144, 142, 134, 146, 120, 112, 141, 136, 127, 138, 131, 133, 128, 136, 132, 138, 135, 111, 119, 117, 133, 125, 119, 139, 127, 137, 123, 121, 115, 135, 127, 129, 114, 131, 120, 119, 125, 133, 127, 123, 122, 120, 131, 137, 144, 139, 135, 126, 134, 131, 131, 130, 123, 128, 118, 142, 121, 111, 106, 121, 114, 111, 132, 122, 123, 113, 139, 129, 131, 114, 124, 120, 139, 126, 116, 130, 123, 124, 111, 124, 110, 133, 128, 130, 140, 111, 130, 123, 115, 165, 120, 118, 130, 127, 126, 115, 136, 103, 138, 119, 109, 131, 130, 132, 116, 125, 126, 121, 125, 131, 137, 131, 146, 115, 112, 112, 133, 132, 121, 131, 123, 131, 128, 112, 121, 122, 125, 129, 139, 119, 119, 136, 137, 133, 123, 124, 122, 127, 111, 155, 125, 117, 127, 127, 130, 128, 121, 125, 130, 134, 134, 135, 122, 140, 124, 113, 120, 150, 113, 128, 128, 111, 128, 125, 123, 126, 123, 121, 103, 109, 110, 139, 138, 117, 122, 129, 118, 131, 129, 121, 143, 144, 129, 121, 121, 127, 149, 117, 132, 124, 112, 121, 116, 130, 137, 106, 144, 119, 125, 118, 131, 134, 129, 115, 126, 126, 119, 123, 114, 125, 125, 133, 110, 145, 121, 132, 129, 113, 137, 120, 135, 126, 125, 119, 143, 110, 122, 112, 130, 108, 127, 126, 102, 114, 103, 111, 121, 111, 103, 126, 144, 134, 116, 131, 109, 119, 137, 126, 120, 128, 124, 119, 112, 111, 117, 142, 128, 124, 132, 145, 131, 158, 121, 156, 121, 130, 111, 107, 116, 121, 122, 122, 123, 117, 124, 119, 101, 127, 131, 126, 118, 106, 123, 118, 125, 120, 131, 119, 120, 126, 128, 125, 126, 131, 118, 136, 125, 133, 118, 137, 121, 148, 120, 118, 110, 138, 116, 128, 128, 131, 121, 123, 116, 123, 137, 127, 129, 128, 133, 123, 120, 118, 139, 131, 134, 115, 119, 127, 127, 133, 135, 106, 125, 107, 138, 120, 147, 126, 122, 127, 135, 133, 133, 127, 162, 125, 121, 140, 128, 124, 124, 121, 129, 126, 113, 141, 121, 129, 138, 121, 124, 130, 119, 125, 133, 118, 122, 117, 124, 131, 108, 131, 139, 129, 124, 143, 138, 127, 138, 133, 132, 137, 137, 127, 126, 123, 116, 124, 130, 149, 124, 108, 112, 110, 114, 119, 124, 118, 129, 142, 122, 132, 123, 117, 131, 127, 141, 129, 135, 108, 129, 119, 119, 108, 131, 128, 112, 146, 126, 139, 109, 129, 129, 129, 116, 142, 117, 130, 121, 128, 126, 122, 121, 121, 124, 114, 130, 138, 124, 131, 116, 152, 122, 116, 122, 127, 130, 125, 139, 116, 123, 142, 153, 132, 127, 136, 106, 105, 135, 114, 144, 124, 127, 137, 113, 129, 127, 129, 124, 125, 129, 119, 121, 122, 139, 140, 125, 133, 124, 100, 130, 117, 138, 121, 129, 117, 124, 146, 122, 119, 121, 118, 134, 123, 120, 112, 128, 120, 111, 129, 109, 122, 132, 126, 117, 129, 132, 140, 123, 123, 127, 126, 141, 119, 115, 116, 131, 136, 122, 119, 147, 133, 138, 141, 115, 127, 118, 130, 119, 121, 131, 131, 145, 112, 137, 124, 133, 130, 130, 128, 130, 134, 121, 127, 141, 121, 118, 139, 119, 123, 114, 140, 129, 144, 132, 121, 126, 136, 142, 129, 117, 122, 124, 132, 123, 126, 113, 126, 124, 142, 123, 132, 108, 122, 113, 121, 130, 138, 125, 128, 130, 122, 125, 125, 128, 133, 132, 111, 142, 110, 126, 138, 133, 134, 101, 123, 126, 130, 135, 143, 117, 115, 146, 121, 118, 117, 124, 118, 133, 128, 130, 128, 141, 122, 129, 123, 125, 124, 120, 125, 125, 144, 120, 118, 128, 112, 138, 117, 117, 130, 127, 137, 128, 111, 132, 133, 126, 127, 127, 134, 107, 119, 134, 115, 130, 128, 127, 136, 132, 135, 131, 133, 115, 140, 135, 127, 124, 127, 123, 140, 123, 128, 143, 117, 120, 113, 132, 105, 122, 152, 124, 150, 138, 114, 126, 116, 127, 123, 124, 120, 127, 127, 114, 135, 108, 139, 116, 132, 141, 120, 117, 127, 130, 135, 138, 123, 126, 128, 136, 133, 130, 134, 111, 119, 129, 111, 126, 121, 139, 121, 130, 141, 120, 127, 127, 124, 116, 143, 123, 129, 144, 124, 115, 124, 118, 118, 125, 132, 110, 120, 145, 121, 135, 132, 125, 132, 146, 115, 117, 129, 116, 119, 142, 132, 135, 122, 129, 110, 131, 130, 129, 133, 135, 126, 135, 131, 125, 132, 120, 119, 135, 127, 133, 128, 128, 131, 125, 134, 137, 124, 117, 120, 132, 113, 115, 120, 122, 129, 126, 121, 123, 124, 117, 112, 117, 120, 134, 137, 149, 132, 130, 135, 115, 141, 126, 137, 116, 119, 132, 140, 118, 130, 113, 129, 109, 125, 130, 127, 123, 131, 130, 130, 127, 131, 118, 127, 127, 134, 129, 127, 122, 129, 131, 142, 122, 124, 128, 125, 122, 131, 151, 123, 117, 132, 130, 107, 141, 121, 135, 121, 137, 140, 125, 125, 123, 137, 150, 134, 113, 144, 129, 116, 131, 125, 131, 118, 118, 125, 126, 139, 130, 132, 126, 122, 142, 120, 117, 122, 121, 123, 117, 123, 115, 122, 130, 120, 132, 118, 129, 113, 122, 143, 122, 135, 133, 110, 119, 112, 112, 76, 133, 132, 123, 136, 143, 124, 124, 127, 131, 123, 129, 106, 140, 130, 116, 127, 112, 138, 110, 118, 157, 108, 134, 131, 117, 112, 126, 124, 117, 125, 137, 119, 122, 121, 111, 117, 126, 105, 136, 119, 107, 118, 148, 116, 145, 121, 126, 126, 107, 117, 127, 123, 126, 121, 130, 140, 138, 140, 131, 130, 118, 121, 126, 118, 124, 111, 123, 131, 125, 131, 115, 121, 111, 135, 127, 120, 127, 133, 135, 116, 129, 119, 122, 134, 135, 125, 134, 138, 119, 121, 120, 115, 127, 129, 122, 140, 126, 127, 131, 133, 106, 114, 135, 132, 132, 122, 127, 125, 107, 122, 136, 139, 129, 137, 122, 133, 126, 132, 132, 134, 121, 133, 105, 118, 135, 130, 125, 132, 127, 132, 122, 127, 132, 120, 129, 120, 136, 125, 130, 100, 132, 128, 102, 131, 110, 129, 131, 120, 124, 108, 138, 138, 131, 144, 122, 116, 141, 131, 126, 130, 129, 124, 155, 141, 129, 124, 132, 142, 135, 126, 117, 131, 118, 132, 127, 130, 149, 125, 123, 124, 124, 134, 136, 135, 120, 134, 129, 120, 122, 139, 127, 119, 120, 96, 138, 115, 123, 114, 131, 130, 120, 121, 128, 123, 107, 122, 133, 133, 130, 126, 116, 122, 129, 125, 130, 119, 111, 128, 129, 142, 133, 127, 99, 130, 130, 131, 135, 121, 121, 121, 118, 126, 123, 137, 118, 141, 133, 135, 118, 132, 112, 129, 98, 136, 140, 126, 125, 151, 122, 121, 123, 134, 119, 130, 127, 127, 141, 126, 109, 131, 125, 124, 121, 119, 127, 132, 118, 139, 131, 131, 118, 142, 148, 134, 132, 138, 130, 129, 135, 126, 108, 140, 108, 128, 118, 127, 109, 116, 121, 122, 130, 134, 129, 134, 120, 145, 118, 125, 128, 131, 115, 134, 122, 138, 125, 116, 126, 138, 126, 135, 124, 124, 113, 125, 119, 126, 116, 117, 135, 107, 116, 132, 146, 135, 119, 120, 117, 139, 123, 114, 121, 119, 119, 129, 117, 136, 141, 114, 124, 122, 123, 128, 114, 142, 122, 112, 138, 140, 125, 120, 120, 127, 136, 131, 128, 128, 138, 145, 128, 120, 128, 126, 136, 133, 120, 112, 133, 131, 130, 132, 124, 137, 125, 130, 122, 120, 139, 134, 135, 121, 115, 119, 129, 129, 130, 126, 144, 133, 128, 127, 117, 135, 118, 140, 117, 124, 137, 119, 123, 122, 134, 115, 133, 120, 142, 131, 121, 137, 119, 131, 114, 127, 131, 121, 108, 124, 125, 131, 127, 128, 131, 123, 121, 122, 134, 120, 131, 113, 140, 117, 145, 134, 125, 138, 132, 138, 118, 113, 124, 116, 125, 130, 131, 133, 119, 121, 126, 125, 118, 132, 126, 127, 113, 134, 117, 148, 123, 117, 123, 123, 128, 123, 138, 141, 125, 127, 138, 109, 124, 129, 117, 122, 134, 114, 128, 99, 127, 127, 132, 120, 131, 119, 113, 131, 141, 180, 121, 137, 128, 137, 130, 118, 126, 131, 138, 121, 112, 131, 134, 127, 116, 115, 109, 129, 120, 117, 127, 115, 128, 130, 117, 134, 115, 130, 133, 110, 119, 117, 129, 114, 130, 120, 127, 124, 111, 117, 129, 139, 118, 147, 124, 115, 128, 126, 130, 116, 144, 123, 127, 140, 119, 123, 115, 135, 119, 126, 115, 117, 128, 117, 135, 116, 131, 136, 128, 125, 107, 136, 116, 139, 136, 128, 135, 125, 130, 127, 122, 135, 127, 107, 131, 120, 116, 136, 123, 138, 121, 114, 128, 114, 138, 127, 141, 122, 107, 133, 131, 98, 124, 116, 129, 147, 132, 135, 106, 122, 136, 122, 120, 123, 135, 123, 119, 118, 121, 126, 117, 118, 123, 118, 128, 131, 125, 128, 138, 129, 132, 131, 126, 138, 132, 138, 120, 119, 134, 128, 141, 136, 131, 145, 117, 122, 123, 130, 123, 124, 125, 119, 139, 122, 122, 128, 136, 136, 117, 117, 146, 128, 121, 125, 122, 134, 126, 135, 123, 125, 120, 127, 138, 122, 127, 120, 114, 126, 127, 92, 119, 133, 126, 135, 143, 125, 133, 121, 146, 141, 134, 111, 137, 114, 134, 116, 120, 130, 141, 118, 109, 127, 125, 125, 131, 119, 120, 106, 128, 119, 126, 139, 105, 113, 125, 132, 138, 113, 134, 131, 132, 127, 127, 128, 119, 134, 116, 124, 119, 144, 124, 124, 127, 129, 125, 128, 121, 121, 130, 120, 128, 136, 129, 110, 135, 118, 114, 124, 137, 117, 115, 125, 123, 117, 112, 138, 114, 128, 119, 114, 109, 104, 122, 113, 118, 102, 112, 108, 116, 135, 129, 144, 127, 110, 141, 122, 133, 116, 129, 121, 126, 127, 126, 126, 136, 122, 122, 116, 125, 130, 118, 111, 133, 134, 115, 129, 117, 112, 113, 123, 115, 116, 114, 115, 146, 150, 146, 124, 146, 124, 127, 133, 132, 112, 126, 139, 126, 120, 112, 112, 121, 117, 118, 122, 126, 126, 111, 125, 128, 109, 124, 133, 133, 129, 109, 127, 154, 134, 121, 131, 125, 136, 131, 121, 126, 128, 128, 145, 109, 130, 108, 139, 130, 122, 117, 108, 106, 138, 132, 125, 104, 134, 122, 113, 111, 127, 130, 115, 116, 112, 120, 134, 110, 135, 125, 115, 125, 122, 125, 126, 115, 116, 114, 132, 130, 110, 94, 141, 149, 119, 130, 143, 131, 121, 127, 129, 142, 130, 136, 133, 116, 119, 121, 126, 139, 133, 118, 130, 127, 136, 126, 128, 121, 113, 109, 104, 131, 126, 122, 131, 134, 123, 130, 121, 111, 111, 134, 121, 144, 115, 127, 116, 117, 118, 119, 121, 120, 129, 126, 114, 127, 142, 116, 125, 115, 139, 135, 118, 129, 131, 114, 125, 122, 124, 135, 119, 135, 122, 129, 137, 124, 138, 119, 109, 119, 121, 116, 134, 130, 115, 124, 138, 122, 129, 124, 122, 132, 116, 144, 121, 121, 126, 110, 98, 125, 133, 139, 121, 120, 119, 117, 132, 132, 118, 128, 153, 131, 116, 125, 107, 129, 135, 117, 128, 146, 110, 120, 129, 137, 122, 123, 122, 136, 113, 134, 130, 127, 126, 125, 146, 129, 149, 117, 115, 123, 121, 135, 133, 124, 113, 121, 128, 120, 114, 116, 125, 127, 114, 116, 123, 112, 136, 111, 124, 131, 133, 117, 137, 120, 127, 114, 121, 130, 133, 141, 137, 116, 113, 116, 149, 136, 117, 130, 129, 147, 118, 137, 129, 124, 124, 144, 127, 133, 122, 133, 126, 142, 123, 134, 119, 108, 129, 133, 127, 119, 114, 125, 117, 126, 104, 132, 134, 119, 130, 118, 141, 130, 120, 108, 131, 133, 113, 125, 120, 127, 123, 124, 116, 145, 118, 108, 124, 124, 135, 113, 119, 127, 122, 137, 133, 137, 125, 146, 116, 132, 119, 131, 109, 123, 153, 147, 136, 122, 128, 100, 100, 138, 121, 122, 112, 130, 125, 134, 109, 126, 124, 119, 130, 113, 144, 106, 132, 112, 121, 114, 132, 141, 127, 142, 128, 122, 131, 112, 123, 125, 118, 111, 147, 128, 135, 125, 134, 110, 122, 121, 122, 135, 125, 128, 138, 143, 122, 118, 139, 138, 130, 136, 134, 128, 130, 142, 103, 141, 114, 155, 146, 135, 124, 128, 129, 126, 125, 121, 135, 133, 127, 101, 128, 123, 121, 129, 133, 126, 126, 126, 116, 121, 117, 100, 128, 106, 130, 133, 128, 114, 119, 125, 130, 122, 121, 119, 148, 116, 121, 118, 126, 120, 123, 141, 134, 126, 125, 122, 125, 122, 120, 126, 139, 115, 129, 123, 126, 144, 130, 103, 137, 113, 110, 109, 126, 111, 111, 128, 109, 127, 127, 103, 117, 111, 113, 127, 137, 124, 121, 143, 134, 123, 117, 126, 136, 132, 128, 123, 127, 110, 139, 122, 124, 119, 121, 112, 110, 120, 137, 119, 116, 141, 116, 103, 131, 115, 112, 126, 129, 133, 118, 126, 113, 112, 132, 119, 134, 132, 126, 109, 130, 112, 127, 141, 125, 134, 127, 142, 129, 118, 117, 131, 126, 138, 129, 125, 117, 127, 113, 123, 130, 135, 126, 128, 118, 133, 128, 125, 101, 120, 135, 130, 121, 132, 119, 133, 126, 130, 119, 102, 108, 109, 133, 122, 128, 115, 139, 112, 130, 119, 120, 105, 122, 128, 120, 114, 116, 104, 116, 140, 116, 130, 140, 122, 135, 134, 116, 121, 105, 123, 122, 141, 124, 127, 132, 135, 118, 135, 128, 131, 118, 135, 118, 124, 125, 121, 116, 124, 115, 122, 131, 116, 118, 132, 147, 116, 124, 144, 125, 117, 136, 137, 135, 143, 129, 130, 121, 129, 117, 115, 130, 147, 128, 129, 134, 115, 125, 132, 112, 117, 138, 128, 111, 114, 123, 132, 132, 125, 117, 132, 140, 114, 110, 116, 130, 121, 134, 123, 149, 111, 96, 136, 131, 119, 120, 123, 111, 109, 131, 112, 131, 116, 140, 111, 121, 112, 124, 128, 123, 118, 115, 106, 117, 136, 128, 118, 113, 112, 139, 134, 132, 129, 120, 129, 139, 140, 127, 121, 115, 131, 141, 140, 123, 122, 144, 144, 140, 118, 132, 138, 120, 130, 123, 123, 94, 133, 124, 127, 137, 131, 116, 139, 116, 109, 127, 144, 114, 120, 134, 118, 115, 155, 122, 138, 135, 130, 125, 122, 117, 116, 106, 109, 119, 117, 144, 123, 113, 107, 120, 120, 112, 118, 102, 114, 126, 116, 131, 139, 112, 116, 129, 127, 134, 140, 128, 129, 122, 129, 128, 125, 111, 142, 107, 127, 132, 119, 107, 116, 147, 130, 148, 122, 134, 132, 131, 138, 130, 137, 116, 126, 126, 143, 116, 128, 118, 140, 126, 125, 122, 123, 126, 116, 131, 134, 132, 117, 136, 131, 121, 133, 123, 135, 119, 132, 124, 131, 122, 126, 120, 105, 98, 134, 111, 121, 119, 141, 106, 127, 132, 139, 128, 112, 139, 147, 125, 127, 123, 120, 111, 141, 125, 135, 131, 120, 117, 124, 117, 105, 122, 143, 124, 122, 126, 117, 117, 135, 114, 131, 118, 114, 127, 111, 113, 132, 121, 137, 138, 136, 122, 101, 114, 125, 110, 122, 128, 114, 122, 128, 145, 123, 142, 129, 130, 128, 111, 111, 111, 127, 120, 120, 156, 131, 117, 111, 114, 126, 121, 128, 122, 125, 133, 130, 130, 119, 123, 128, 142, 116, 128, 120, 112, 118, 138, 128, 132, 136, 121, 116, 110, 124, 118, 128, 117, 129, 122, 109, 123, 141, 133, 118, 124, 131, 130, 113, 110, 127, 123, 128, 136, 131, 140, 119, 128, 140, 111, 129, 131, 120, 116, 130, 121, 138, 132, 132, 131, 115, 121, 124, 141, 124, 124, 115, 147, 141, 123, 111, 123, 126, 118, 136, 128, 103, 113, 129, 113, 128, 101, 118, 118, 117, 127, 124, 131, 126, 115, 115, 120, 126, 124, 132, 137, 128, 137, 140, 115, 113, 128, 112, 128, 139, 110, 132, 127, 127, 122, 128, 147, 130, 127, 121, 140, 118, 110, 142, 121, 120, 125, 145, 118, 117, 124, 110, 129, 113, 148, 131, 115, 124, 133, 138, 115, 123, 110, 138, 150, 131, 113, 131, 126, 104, 118, 142, 133, 119, 115, 124, 107, 134, 105, 122, 130, 119, 121, 119, 115, 104, 124, 124, 123, 136, 108, 111, 140, 122, 129, 125, 116, 105, 106, 133, 117, 125, 118, 138, 136, 129, 123, 116, 108, 112, 122, 136, 136, 137, 148, 123, 120, 140, 112, 126, 115, 114, 135, 124, 141, 121, 142, 133, 122, 120, 122, 133, 122, 116, 120, 113, 148, 132, 116, 123, 146, 140, 141, 128, 94, 119, 113, 112, 127, 129, 110, 133, 144, 121, 136, 136, 121, 118, 115, 137, 122, 92, 130, 126, 122, 111, 124, 128, 122, 119, 122, 133, 110, 123, 113, 130, 116, 133, 137, 137, 123, 114, 130, 130, 127, 162, 127, 105, 127, 118, 149, 134, 120, 111, 132, 120, 114, 128, 130, 125, 132, 145, 146, 129, 122, 107, 122, 120, 122, 130, 94, 115, 119, 151, 119, 120, 135, 128, 136, 128, 132, 124, 127, 125, 138, 114, 118, 125, 139, 118, 120, 132, 127, 115, 129, 139, 133, 132, 127, 109, 112, 139, 124, 138, 130, 152, 138, 116, 124, 119, 130, 129, 120, 121, 127, 132, 136, 136, 124, 112, 127, 119, 144, 123, 132, 123, 127, 130, 107, 124, 118, 143, 126, 137, 103, 145, 117, 152, 128, 118, 128, 118, 132, 119, 118, 124, 121, 122, 146, 135, 134, 133, 119, 109, 106, 127, 126, 118, 142, 132, 126, 135, 134, 118, 131, 120, 131, 128, 140, 115, 123, 113, 132, 129, 123, 124, 132, 125, 126, 137, 116, 128, 134, 120, 122, 121, 134, 129, 117, 131, 131, 131, 144, 152, 138, 113, 131, 125, 119, 126, 141, 122, 116, 148, 115, 130, 138, 121, 132, 133, 116, 128, 121, 128, 122, 120, 109, 134, 132, 126, 116, 138, 116, 133, 116, 124, 119, 106, 121, 127, 134, 126, 121, 120, 119, 126, 126, 132, 120, 125, 108, 131, 139, 140, 122, 112, 128, 106, 122, 126, 131, 105, 125, 110, 114, 116, 110, 125, 123, 135, 128, 127, 128, 128, 117, 137, 123, 114, 126, 123, 113, 125, 123, 117, 111, 113, 142, 142, 111, 123, 121, 112, 118, 127, 121, 129, 115, 117, 126, 103, 129, 135, 142, 129, 124, 116, 137, 124, 126, 125, 114, 127, 126, 133, 139, 123, 128, 141, 122, 126, 131, 123, 116, 102, 127, 121, 121, 142, 127, 113, 123, 118, 151, 122, 139, 128, 135, 123, 134, 121, 122, 127, 122, 136, 144, 118, 122, 133, 113, 137, 141, 127, 117, 127, 133, 132, 132, 129, 121, 133, 134, 128, 121, 122, 125, 119, 127, 130, 126, 131, 131, 124, 110, 129, 123, 121, 125, 124, 127, 155, 115, 127, 117, 117, 126, 129, 127, 119, 112, 134, 151, 124, 118, 130, 115, 120, 135, 128, 112, 118, 116, 119, 114, 136, 127, 118, 110, 134, 134, 120, 120, 127, 121, 141, 122, 121, 134, 141, 115, 136, 121, 115, 130, 127, 121, 119, 109, 130, 114, 129, 121, 123, 125, 129, 140, 130, 96, 120, 129, 114, 119, 125, 121, 110, 128, 124, 128, 134, 117, 146, 122, 131, 130, 107, 122, 120, 139, 131, 127, 119, 135, 123, 122, 120, 127, 117, 123, 126, 130, 104, 130, 109, 115, 118, 137, 131, 117, 129, 147, 117, 109, 126, 113, 133, 113, 131, 127, 111, 131, 130, 122, 108, 102, 121, 131, 122, 134, 127, 129, 119, 132, 140, 121, 131, 118, 114, 120, 135, 130, 126, 127, 141, 133, 121, 120, 134, 132, 137, 127, 127, 123, 127, 141, 133, 127, 117, 147, 108, 150, 133, 126, 101, 121, 101, 128, 124, 137, 117, 119, 127, 127, 141, 139, 128, 132, 134, 113, 130, 133, 143, 122, 140, 126, 113, 136, 114, 139, 137, 119, 139, 113, 122, 125, 121, 120, 137, 144, 138, 130, 130, 125, 126, 125, 124, 127, 134, 121, 127, 127, 127, 122, 133, 132, 107, 132, 114, 121, 123, 115, 128, 129, 130, 129, 135, 124, 130, 116, 120, 123, 111, 120, 124, 134, 124, 134, 119, 116, 136, 127, 125, 122, 119, 137, 115, 118, 132, 119, 121, 121, 131, 137, 131, 109, 130, 133, 120, 125, 134, 128, 146, 130, 122, 127, 119, 137, 138, 121, 115, 103, 140, 128, 126, 133, 120, 129, 132, 132, 135, 112, 110, 126, 127, 115, 133, 119, 125, 116, 125, 136, 115, 148, 130, 130, 130, 120, 127, 125, 118, 120, 116, 118, 123, 133, 137, 122, 107, 109, 113, 131, 119, 130, 123, 122, 128, 122, 133, 116, 114, 109, 122, 120, 126, 141, 118, 124, 117, 120, 110, 131, 128, 114, 130, 133, 134, 124, 104, 128, 136, 122, 132, 113, 124, 128, 113, 126, 135, 126, 135, 130, 125, 135, 109, 133, 126, 119, 122, 118, 143, 125, 130, 114, 123, 119, 105, 134, 133, 122, 117, 110, 118, 118, 114, 141, 131, 127, 144, 127, 127, 136, 117, 129, 137, 122, 128, 120, 124, 123, 140, 112, 121, 121, 130, 125, 122, 108, 127, 125, 103, 116, 128, 132, 122, 129, 133, 124, 122, 127, 121, 151, 132, 113, 130, 123, 141, 121, 120, 117, 109, 126, 128, 118, 126, 126, 125, 126, 121, 111, 131, 127, 125, 132, 133, 124, 128, 125, 115, 120, 125, 114, 117, 115, 127, 128, 130, 111, 120, 113, 126, 119, 118, 124, 130, 110, 123, 127, 110, 111, 134, 127, 135, 89, 132, 137, 130, 117, 119, 138, 132, 115, 139, 129, 121, 101, 114, 131, 131, 133, 122, 133, 132, 122, 112, 119, 130, 125, 111, 138, 133, 120, 121, 129, 141, 122, 123, 129, 125, 134, 131, 133, 116, 130, 120, 124, 136, 122, 123, 147, 133, 129, 118, 146, 134, 109, 145, 120, 116, 115, 133, 131, 149, 112, 113, 124, 126, 113, 118, 133, 133, 126, 136, 137, 123, 125, 112, 120, 135, 130, 127, 121, 126, 128, 131, 133, 124, 133, 113, 132, 124, 127, 132, 120, 126, 127, 133, 115, 137, 114, 108, 109, 116, 119, 128, 128, 115, 109, 127, 133, 115, 125, 103, 127, 117, 126, 128, 105, 123, 132, 128, 101, 137, 119, 120, 132, 127, 125, 132, 123, 134, 141, 117, 127, 122, 134, 125, 119, 123, 114, 132, 120, 105, 120, 134, 126, 124, 122, 126, 138, 127, 122, 126, 114, 127, 112, 121, 121, 129, 127, 121, 146, 122, 117, 108, 132, 140, 121, 118, 125, 131, 133, 129, 144, 123, 152, 123, 116, 133, 121, 115, 125, 119, 104, 138, 131, 125, 124, 135, 131, 128, 130, 140, 119, 147, 128, 116, 136, 115, 136, 118, 128, 124, 135, 118, 113, 112, 120, 112, 136, 139, 155, 130, 124, 114, 121, 155, 117, 134, 117, 124, 123, 122, 131, 128, 121, 111, 133, 133, 138, 127, 127, 149, 137, 140, 136, 114, 120, 131, 128, 119, 129, 112, 137, 111, 134, 118, 133, 137, 120, 138, 142, 117, 135, 142, 136, 127, 123, 128, 119, 138, 134, 123, 115, 135, 121, 132, 133, 132, 125, 129, 129, 130, 130, 129, 118, 106, 121, 133, 124, 123, 113, 111, 125, 119, 136, 121, 137, 133, 142, 132, 125, 108, 121, 113, 107, 129, 139, 124, 118, 103, 119, 135, 130, 131, 120, 117, 138, 113, 132, 137, 136, 125, 132, 127, 122, 120, 100, 121, 130, 126, 125, 115, 123, 132, 131, 137, 139, 113, 130, 131, 135, 128, 128, 118, 120, 128, 107, 150, 120, 131, 118, 127, 133, 126, 115, 121, 130, 107, 119, 118, 125, 141, 136, 135, 111, 138, 118, 117, 121, 122, 131, 137, 130, 122, 126, 131, 116, 119, 112, 125, 121, 133, 118, 136, 150, 121, 142, 130, 125, 138, 106, 132, 124, 119, 110, 121, 122, 128, 139, 124, 133, 129, 130, 124, 123, 140, 140, 123, 107, 129, 124, 140, 103, 141, 125, 127, 122, 109, 109, 112, 115, 123, 123, 130, 124, 125, 129, 135, 100, 125, 124, 145, 116, 114, 135, 125, 126, 127, 117, 123, 118, 116, 117, 136, 137, 136, 114, 132, 139, 136, 131, 127, 119, 123, 119, 115, 115, 141, 127, 132, 105, 115, 142, 132, 117, 134, 144, 135, 139, 132, 132, 115, 125, 136, 106, 116, 141, 135, 120, 123, 134, 125, 120, 120, 118, 126, 145, 150, 134, 142, 124, 148, 129, 132, 128, 130, 102, 141, 117, 126, 110, 144, 130, 113, 135, 127, 124, 122, 130, 117, 121, 136, 130, 134, 142, 116, 117, 102, 124, 145, 126, 119, 115, 137, 119, 124, 123, 118, 118, 120, 121, 104, 136, 125, 127, 119, 120, 134, 103, 121, 125, 116, 121, 118, 101, 127, 135, 125, 120, 119, 122, 134, 130, 129, 124, 124, 120, 122, 131, 130, 130, 139, 123, 130, 115, 119, 109, 118, 132, 136, 111, 108, 115, 145, 106, 131, 121, 126, 120, 122, 120, 147, 130, 128, 118, 113, 130, 115, 141, 127, 119, 128, 134, 138, 121, 132, 133, 123, 116, 123, 123, 139, 124, 121, 116, 127, 111, 125, 112, 129, 122, 119, 114, 127, 145, 134, 141, 121, 113, 133, 108, 116, 127, 118, 139, 128, 130, 112, 121, 127, 122, 134, 122, 142, 128, 114, 130, 129, 132, 124, 110, 121, 113, 128, 118, 117, 124, 133, 126, 111, 133, 130, 129, 112, 132, 116, 127, 118, 122, 118, 128, 142, 120, 120, 128, 129, 134, 128, 138, 128, 124, 121, 126, 117, 111, 143, 137, 135, 116, 112, 134, 130, 119, 145, 142, 114, 116, 125, 124, 132, 114, 122, 111, 123, 134, 109, 109, 146, 132, 125, 136, 128, 115, 127, 122, 112, 133, 134, 130, 111, 123, 130, 117, 168, 123, 112, 133, 132, 115, 127, 114, 123, 132, 140, 123, 121, 129, 138, 134, 142, 133, 131, 129, 122, 121, 123, 126, 113, 132, 122, 103, 119, 130, 125, 131, 125, 127, 125, 111, 132, 126, 126, 134, 113, 126, 121, 142, 112, 117, 144, 143, 118, 126, 117, 148, 109, 127, 127, 142, 122, 125, 118, 142, 120, 106, 136, 123, 113, 130, 134, 130, 116, 127, 124, 129, 127, 111, 122, 112, 120, 108, 145, 106, 129, 127, 122, 117, 120, 136, 122, 107, 111, 121, 126, 120, 128, 119, 118, 123, 123, 128, 124, 127, 116, 112, 140, 116, 118, 100, 131, 136, 126, 123, 124, 108, 118, 115, 127, 113, 135, 129, 111, 142, 139, 119, 140, 134, 116, 125, 139, 141, 111, 134, 113, 119, 117, 115, 129, 110, 112, 132, 122, 111, 136, 119, 116, 122, 118, 129, 144, 116, 108, 126, 115, 114, 122, 115, 129, 132, 127, 114, 110, 117, 111, 130, 122, 116, 142, 125, 128, 129, 129, 118, 130, 91, 125, 135, 116, 130, 136, 126, 127, 119, 133, 129, 128, 134, 124, 120, 123, 120, 123, 141, 104, 139, 106, 120, 130, 135, 109, 134, 133, 144, 127, 140, 132, 113, 148, 137, 124, 136, 129, 126, 119, 115, 125, 121, 143, 114, 113, 126, 117, 106, 121, 127, 121, 136, 129, 139, 130, 164, 110, 118, 117, 136, 112, 144, 116, 140, 136, 134, 129, 119, 117, 129, 149, 129, 121, 134, 140, 127, 123, 130, 123, 128, 120, 142, 114, 127, 133, 127, 137, 120, 132, 127, 127, 120, 130, 122, 120, 120, 131, 124, 118, 131, 129, 120, 119, 132, 102, 150, 123, 132, 121, 146, 121, 146, 154, 123, 120, 108, 146, 139, 132, 154, 110, 127, 131, 122, 148, 118, 118, 120, 133, 138, 134, 134, 131, 115, 120, 124, 115, 123, 120, 131, 117, 118, 128, 115, 123, 108, 128, 111, 110, 136, 120, 105, 118, 110, 135, 112, 139, 142, 125, 112, 151, 128, 124, 120, 135, 109, 130, 115, 112, 149, 126, 136, 131, 120, 112, 124, 134, 124, 144, 123, 128, 112, 108, 129, 117, 143, 122, 132, 163, 114, 140, 130, 121, 114, 133, 130, 132, 128, 120, 121, 124, 123, 124, 122, 111, 131, 136, 108, 128, 129, 130, 119, 131, 117, 157, 113, 116, 105, 135, 133, 119, 117, 128, 128, 131, 126, 118, 139, 133, 144, 133, 130, 109, 151, 127, 118, 130, 135, 127, 129, 118, 127, 115, 116, 133, 129, 111, 136, 111, 112, 124, 124, 129, 143, 128, 131, 127, 121, 127, 109, 139, 136, 121, 121, 136, 116, 130, 122, 128, 122, 136, 128, 120, 113, 121, 126, 132, 120, 131, 132, 124, 130, 116, 138, 124, 113, 122, 118, 143, 124, 137, 116, 116, 137, 126, 126, 145, 133, 122, 126, 124, 137, 115, 124, 122, 112, 125, 137, 123, 122, 127, 134, 111, 128, 127, 121, 133, 125, 128, 124, 120, 110, 116, 126, 137, 102, 144, 118, 136, 132, 123, 126, 125, 121, 126, 127, 125, 116, 139, 129, 104, 131, 130, 109, 130, 104, 127, 128, 130, 123, 113, 123, 129, 123, 128, 123, 121, 133, 130, 143, 107, 137, 123, 123, 129, 133, 123, 120, 136, 125, 130, 118, 107, 126, 117, 135, 106, 127, 131, 130, 125, 116, 125, 122, 124, 135, 123, 111, 111, 126, 109, 138, 136, 124, 124, 123, 129, 117, 131, 127, 124, 124, 132, 134, 108, 132, 135, 122, 128, 120, 122, 134, 137, 130, 132, 137, 143, 144, 114, 131, 135, 153, 123, 123, 124, 121, 113, 137, 116, 124, 134, 115, 127, 121, 125, 129, 135, 111, 138, 122, 134, 131, 143, 121, 124, 124, 132, 126, 146, 122, 117, 131, 136, 111, 136, 117, 110, 127, 155, 131, 120, 125, 132, 108, 118, 132, 134, 137, 119, 119, 112, 138, 122, 118, 154, 125, 116, 123, 130, 134, 115, 130, 132, 126, 131, 127, 128, 132, 133, 125, 134, 117, 106, 133, 114, 117, 139, 133, 130, 112, 123, 137, 128, 130, 131, 104, 126, 123, 114, 129, 118, 134, 132, 131, 137, 116, 125, 127, 125, 119, 134, 124, 131, 110, 123, 114, 129, 126, 140, 141, 115, 127, 125, 147, 147, 126, 119, 129, 122, 146, 134, 131, 121, 126, 116, 142, 129, 135, 126, 112, 118, 119, 120, 126, 117, 138, 128, 128, 116, 132, 133, 118, 117, 115, 130, 115, 130, 140, 121, 131, 128, 139, 141, 132, 135, 126, 127, 124, 128, 127, 130, 127, 127, 120, 131, 105, 141, 140, 120, 128, 135, 122, 137, 132, 147, 130, 140, 142, 125, 89, 115, 126, 130, 140, 135, 122, 132, 123, 128, 133, 136, 139, 134, 111, 134, 121, 126, 122, 125, 128, 126, 149, 135, 134, 112, 123, 133, 115, 140, 120, 131, 117, 143, 120, 132, 141, 139, 106, 129, 126, 131, 116, 133, 130, 140, 120, 148, 128, 120, 129, 126, 105, 128, 129, 118, 121, 134, 118, 128, 141, 120, 142, 127, 130, 134, 116, 131, 120, 115, 111, 129, 135, 120, 130, 127, 135, 130, 155, 141, 115, 135, 123, 125, 114, 126, 124, 137, 128, 118, 121, 127, 124, 139, 136, 125, 144, 112, 118, 132, 136, 130, 112, 125, 146, 139, 95, 125, 124, 116, 106, 120, 102, 149, 137, 138, 131, 121, 126, 122, 119, 147, 119, 117, 133, 117, 130, 139, 128, 131, 132, 94, 135, 139, 122, 128, 134, 136, 138, 123, 125, 133, 123, 123, 120, 120, 139, 126, 136, 128, 124, 128, 142, 134, 131, 136, 127, 131, 115, 117, 132, 152, 116, 128, 117, 139, 115, 110, 130, 109, 134, 106, 118, 116, 119, 118, 139, 121, 116, 121, 121, 108, 116, 120, 131, 113, 116, 138, 117, 137, 134, 127, 114, 118, 115, 141, 115, 122, 133, 120, 133, 165, 128, 136, 122, 140, 116, 135, 118, 135, 107, 140, 127, 123, 126, 127, 113, 127, 148, 143, 110, 123, 128, 124, 128, 114, 131, 125, 131, 136, 112, 131, 118, 140, 120, 135, 129, 150, 126, 129, 132, 117, 135, 131, 122, 127, 119, 134, 117, 118, 126, 128, 134, 136, 120, 122, 120, 138, 131, 111, 139, 122, 118, 111, 135, 144, 138, 134, 132, 113, 118, 102, 126, 134, 143, 132, 125, 109, 116, 134, 133, 147, 142, 128, 121, 107, 129, 123, 114, 136, 136, 122, 138, 131, 136, 121, 127, 130, 135, 113, 119, 113, 121, 125, 124, 115, 125, 127, 117, 154, 116, 121, 121, 141, 124, 99, 123, 118, 128, 112, 123, 114, 131, 126, 129, 67, 125, 113, 120, 117, 120, 124, 118, 108, 133, 108, 122, 115, 121, 118, 90, 119, 101, 130, 115, 115, 131, 115, 112, 127, 126, 114, 117, 109, 117, 126, 133, 134, 133, 136, 126, 129, 137, 81, 111, 120, 115, 126, 80, 120, 140, 150, 140, 121, 131, 145, 131, 127, 133, 123, 115, 115, 118, 118, 134, 128, 123, 123, 140, 108, 116, 118, 121, 117, 129, 130, 136, 122, 138, 131, 135, 121, 123, 133, 116, 134, 126, 125, 123, 109, 149, 119, 131, 132, 138, 113, 133, 125, 125, 112, 125, 116, 116, 118, 134, 137, 137, 133, 119, 127, 128, 127, 119, 113, 122, 144, 116, 118, 142, 117, 124, 113, 102, 117, 129, 129, 117, 120, 121, 141, 141, 118, 143, 125, 125, 113, 123, 122, 132, 111, 125, 137, 135, 122, 139, 120, 128, 131, 134, 115, 119, 121, 129, 121, 124, 122, 143, 115, 118, 119, 143, 130, 118, 126, 118, 130, 123, 115, 128, 131, 110, 111, 126, 125, 111, 128, 144, 125, 118, 114, 126, 104, 105, 133, 135, 133, 121, 120, 125, 132, 111, 142, 146, 138, 124, 129, 139, 139, 130, 141, 118, 148, 116, 128, 122, 120, 119, 140, 111, 120, 114, 125, 103, 124, 120, 129, 129, 125, 124, 131, 138, 126, 121, 129, 115, 118, 118, 130, 129, 119, 135, 129, 111, 116, 128, 131, 136, 130, 126, 134, 139, 120, 112, 123, 117, 131, 128, 113, 128, 124, 136, 135, 127, 133, 126, 149, 121, 138, 126, 124, 140, 115, 120, 131, 128, 111, 112, 120, 127, 120, 114, 138, 118, 131, 152, 130, 131, 128, 120, 140, 127, 110, 118, 145, 155, 134, 122, 123, 115, 131, 113, 107, 119, 118, 136, 100, 108, 137, 118, 132, 130, 124, 132, 130, 135, 100, 158, 117, 121, 124, 127, 126, 142, 133, 122, 142, 120, 120, 126, 134, 133, 132, 127, 118, 133, 119, 141, 120, 135, 121, 133, 105, 142, 120, 125, 126, 121, 142, 126, 113, 135, 122, 117, 127, 120, 120, 128, 125, 131, 121, 125, 122, 130, 141, 125, 117, 117, 134, 123, 115, 125, 128, 113, 130, 120, 122, 129, 124, 134, 137, 125, 127, 119, 128, 103, 130, 120, 125, 126, 118, 129, 135, 135, 111, 134, 131, 134, 130, 110, 125, 128, 139, 122, 140, 145, 144, 117, 140, 135, 114, 134, 121, 135, 135, 110, 124, 129, 97, 107, 120, 133, 134, 120, 122, 117, 130, 108, 137, 100, 131, 133, 147, 123, 126, 134, 126, 119, 115, 129, 117, 102, 121, 144, 123, 142, 132, 121, 103, 117, 144, 112, 105, 128, 123, 107, 124, 132, 123, 122, 120, 115, 134, 130, 138, 119, 128, 133, 124, 130, 134, 137, 119, 138, 129, 121, 116, 108, 152, 112, 134, 117, 121, 120, 127, 120, 128, 124, 116, 136, 133, 130, 128, 139, 125, 125, 120, 150, 114, 127, 131, 102, 125, 118, 125, 141, 146, 120, 122, 122, 128, 120, 131, 127, 119, 118, 132, 124, 141, 95, 127, 119, 134, 120, 124, 121, 122, 123, 111, 123, 110, 110, 141, 108, 137, 116, 125, 115, 132, 124, 128, 129, 144, 135, 111, 137, 124, 129, 119, 134, 133, 119, 102, 121, 123, 130, 140, 119, 131, 114, 118, 107, 139, 126, 141, 115, 108, 140, 116, 122, 135, 125, 115, 135, 136, 124, 135, 148, 120, 129, 126, 133, 123, 130, 118, 132, 106, 119, 119, 126, 123, 120, 120, 119, 143, 124, 119, 108, 117, 118, 115, 121, 114, 146, 138, 114, 127, 120, 114, 111, 127, 146, 113, 122, 119, 124, 128, 122, 124, 122, 124, 130, 128, 118, 134, 131, 133, 130, 114, 112, 129, 141, 122, 127, 137, 127, 131, 112, 116, 118, 127, 113, 112, 125, 112, 119, 121, 123, 116, 128, 136, 137, 117, 99, 140, 130, 130, 137, 117, 121, 114, 127, 127, 146, 140, 123, 116, 115, 118, 128, 118, 119, 130, 125, 118, 103, 113, 133, 121, 138, 130, 131, 124, 149, 130, 131, 138, 109, 124, 138, 123, 138, 110, 107, 121, 125, 117, 150, 146, 130, 125, 140, 134, 128, 133, 119, 133, 140, 127, 116, 136, 111, 117, 117, 115, 120, 139, 126, 109, 128, 128, 137, 136, 108, 135, 131, 146, 111, 129, 136, 118, 130, 120, 124, 128, 122, 106, 121, 137, 116, 108, 130, 123, 131, 133, 139, 122, 121, 120, 115, 115, 120, 129, 109, 111, 125, 126, 132, 112, 121, 118, 126, 113, 126, 120, 110, 128, 142, 124, 124, 140, 114, 133, 136, 108, 116, 128, 119, 108, 109, 124, 121, 130, 132, 109, 115, 113, 137, 117, 139, 139, 146, 127, 122, 162, 138, 112, 121, 149, 114, 125, 141, 118, 124, 116, 129, 113, 136, 115, 124, 130, 130, 127, 122, 135, 125, 120, 120, 130, 109, 126, 129, 129, 137, 134, 134, 110, 109, 124, 123, 136, 114, 119, 113, 118, 118, 147, 132, 142, 128, 127, 115, 130, 124, 123, 107, 133, 119, 117, 121, 123, 135, 126, 136, 120, 128, 115, 122, 138, 132, 126, 135, 110, 130, 139, 128, 118, 109, 128, 119, 141, 135, 138, 111, 131, 131, 129, 127, 139, 122, 119, 140, 119, 118, 122, 130, 128, 124, 120, 122, 144, 142, 113, 124, 124, 121, 126, 124, 121, 142, 117, 115, 114, 116, 132, 126, 132, 124, 118, 127, 127, 129, 126, 144, 135, 121, 129, 141, 128, 111, 124, 123, 120, 129, 134, 129, 125, 123, 128, 129, 128, 127, 127, 131, 127, 121, 130, 125, 137, 127, 114, 120, 127, 141, 116, 100, 143, 133, 123, 131, 145, 117, 117, 107, 130, 131, 129, 132, 129, 107, 128, 145, 121, 107, 113, 142, 124, 118, 140, 119, 143, 149, 123, 119, 121, 128, 137, 143, 132, 105, 136, 130, 134, 117, 112, 121, 123, 120, 115, 133, 135, 134, 122, 114, 120, 117, 141, 109, 121, 109, 115, 148, 112, 108, 107, 124, 133, 113, 126, 121, 132, 113, 131, 130, 135, 123, 115, 149, 140, 122, 121, 125, 123, 127, 134, 117, 106, 120, 121, 133, 142, 127, 106, 126, 120, 135, 122, 131, 125, 119, 147, 128, 122, 135, 151, 142, 127, 142, 111, 124, 121, 119, 134, 146, 129, 130, 124, 118, 114, 124, 137, 137, 137, 106, 115, 135, 124, 109, 138, 127, 140, 127, 139, 117, 152, 122, 117, 127, 150, 124, 125, 118, 132, 122, 129, 123, 120, 125, 108, 114, 131, 129, 110, 121, 134, 128, 141, 107, 121, 130, 127, 132, 124, 146, 124, 114, 112, 117, 129, 114, 119, 138, 121, 126, 127, 126, 123, 132, 114, 123, 123, 140, 107, 126, 122, 139, 125, 137, 136, 106, 132, 123, 135, 118, 109, 130, 133, 156, 112, 142, 144, 122, 111, 134, 103, 119, 118, 124, 119, 137, 129, 123, 134, 136, 131, 114, 123, 120, 122, 120, 116, 107, 121, 119, 129, 129, 131, 126, 128, 114, 142, 108, 123, 128, 128, 122, 136, 127, 114, 127, 124, 128, 123, 118, 134, 109, 138, 125, 121, 109, 117, 113, 116, 107, 131, 120, 121, 128, 121, 121, 121, 132, 131, 125, 122, 146, 112, 131, 125, 130, 122, 138, 119, 122, 92, 124, 138, 107, 126, 121, 122, 135, 141, 119, 125, 123, 122, 154, 120, 121, 165, 116, 113, 130, 124, 128, 118, 138, 133, 148, 107, 115, 124, 117, 127, 117, 127, 121, 114, 120, 118, 122, 110, 119, 108, 116, 117, 136, 133, 128, 125, 123, 145, 119, 123, 142, 123, 118, 123, 126, 137, 130, 124, 123, 128, 139, 133, 136, 115, 125, 114, 128, 130, 126, 135, 129, 140, 131, 114, 139, 136, 135, 126, 132, 120, 110, 121, 109, 125, 110, 137, 133, 118, 129, 120, 122, 136, 145, 115, 118, 134, 125, 101, 130, 134, 129, 146, 134, 129, 108, 127, 113, 108, 121, 123, 122, 127, 131, 134, 130, 133, 101, 122, 123, 128, 114, 136, 104, 118, 125, 132, 114, 138, 141, 119, 127, 116, 127, 125, 110, 127, 140, 119, 142, 139, 124, 111, 131, 148, 120, 118, 125, 120, 133, 147, 124, 135, 126, 135, 115, 116, 116, 118, 107, 125, 122, 121, 125, 122, 132, 118, 129, 111, 121, 122, 140, 128, 115, 131, 141, 125, 117, 118, 128, 127, 118, 109, 139, 112, 117, 132, 121, 117, 130, 110, 121, 132, 130, 137, 130, 119, 131, 135, 120, 120, 117, 122, 134, 114, 116, 122, 130, 117, 123, 129, 106, 127, 123, 131, 143, 122, 136, 126, 138, 123, 127, 109, 124, 134, 131, 111, 126, 121, 120, 136, 134, 129, 128, 118, 130, 125, 127, 120, 135, 112, 112, 114, 137, 124, 113, 146, 114, 129, 123, 129, 148, 106, 121, 125, 126, 125, 126, 134, 123, 116, 135, 123, 139, 120, 145, 130, 114, 127, 135, 123, 136, 131, 122, 131, 145, 119, 138, 117, 133, 135, 139, 119, 120, 118, 116, 124, 121, 129, 137, 139, 118, 149, 112, 126, 134, 123, 136, 124, 129, 111, 118, 128, 112, 120, 117, 133, 141, 135, 131, 116, 116, 149, 102, 122, 118, 120, 157, 115, 132, 135, 116, 133, 115, 133, 149, 140, 138, 136, 137, 134, 121, 109, 136, 119, 137, 144, 109, 119, 121, 108, 124, 110, 136, 135, 123, 126, 126, 111, 148, 144, 117, 166, 114, 135, 138, 140, 133, 126, 139, 116, 143, 117, 128, 122, 113, 122, 124, 122, 115, 136, 118, 120, 131, 119, 118, 112, 126, 135, 131, 114, 139, 123, 135, 145, 135, 119, 133, 119, 124, 139, 119, 121, 130, 100, 127, 137, 131, 128, 109, 127, 124, 130, 119, 116, 129, 125, 137, 127, 138, 138, 125, 129, 111, 135, 154, 118, 132, 117, 113, 135, 119, 115, 132, 137, 132, 128, 140, 127, 136, 117, 125, 125, 145, 132, 138, 109, 139, 128, 129, 122, 122, 134, 126, 123, 129, 133, 143, 132, 115, 139, 120, 125, 131, 138, 113, 129, 121, 132, 119, 114, 136, 118, 142, 123, 103, 125, 107, 116, 140, 121, 140, 124, 127, 126, 119, 116, 112, 130, 117, 137, 128, 122, 111, 127, 131, 128, 121, 130, 129, 150, 134, 134, 120, 130, 115, 130, 125, 115, 125, 142, 135, 137, 120, 126, 124, 133, 118, 130, 127, 124, 100, 130, 104, 123, 118, 117, 131, 135, 114, 129, 123, 141, 117, 115, 132, 127, 119, 126, 123, 124, 131, 116, 129, 102, 122, 120, 115, 113, 122, 118, 107, 134, 133, 123, 135, 125, 112, 154, 108, 107, 134, 130, 132, 144, 115, 111, 124, 124, 127, 116, 109, 148, 114, 120, 110, 125, 114, 124, 136, 115, 119, 112, 94, 122, 145, 127, 117, 137, 125, 107, 116, 124, 142, 140, 110, 130, 119, 113, 141, 120, 124, 133, 124, 135, 145, 136, 121, 124, 129, 126, 119, 121, 96, 128, 137, 136, 140, 126, 103, 123, 137, 112, 118, 113, 113, 138, 130, 110, 129, 114, 118, 114, 122, 130, 150, 141, 121, 124, 122, 138, 122, 131, 113, 127, 148, 118, 124, 119, 127, 121, 117, 120, 116, 128, 136, 119, 120, 118, 126, 122, 128, 129, 106, 118, 134, 123, 134, 129, 100, 127, 112, 125, 111, 125, 119, 117, 109, 132, 120, 116, 117, 125, 118, 145, 112, 116, 113, 133, 121, 138, 125, 119, 140, 120, 129, 111, 128, 118, 113, 131, 107, 112, 131, 140, 141, 131, 126, 135, 121, 117, 129, 132, 120, 112, 135, 122, 125, 108, 111, 129, 113, 123, 134, 133, 107, 115, 130, 129, 142, 138, 133, 133, 125, 104, 151, 143, 112, 122, 135, 133, 129, 138, 144, 102, 116, 127, 130, 110, 134, 129, 118, 145, 117, 121, 152, 132, 121, 119, 113, 120, 125, 123, 102, 92, 137, 133, 130, 112, 131, 124, 125, 124, 140, 121, 122, 130, 101, 123, 145, 123, 135, 130, 116, 122, 133, 121, 126, 122, 119, 129, 133, 132, 127, 137, 129, 117, 103, 136, 121, 113, 117, 131, 122, 151, 118, 132, 117, 133, 112, 127, 137, 132, 136, 115, 129, 124, 139, 129, 116, 124, 130, 119, 139, 115, 120, 146, 117, 133, 129, 116, 107, 126, 126, 134, 137, 132, 116, 118, 126, 120, 131, 132, 133, 136, 152, 127, 134, 118, 124, 116, 144, 103, 122, 133, 124, 120, 118, 123, 128, 128, 130, 127, 117, 126, 122, 125, 122, 95, 119, 141, 128, 116, 132, 136, 109, 131, 107, 121, 125, 124, 130, 118, 140, 104, 130, 116, 152, 103, 126, 111, 136, 124, 131, 115, 108, 127, 135, 113, 133, 118, 129, 124, 124, 122, 133, 120, 131, 124, 128, 120, 140, 137, 117, 118, 115, 114, 117, 139, 125, 130, 114, 146, 155, 111, 121, 143, 123, 124, 121, 120, 128, 133, 120, 114, 119, 136, 120, 129, 126, 120, 130, 124, 123, 115, 116, 125, 117, 139, 121, 135, 126, 133, 112, 134, 135, 94, 126, 121, 117, 98, 95, 121, 139, 112, 129, 138, 123, 135, 116, 136, 119, 136, 120, 117, 106, 125, 96, 116, 140, 130, 116, 131, 127, 116, 122, 130, 131, 142, 138, 129, 132, 115, 118, 132, 109, 139, 117, 127, 117, 130, 117, 113, 102, 120, 124, 126, 132, 144, 121, 129, 123, 118, 119, 134, 120, 119, 115, 122, 108, 125, 124, 109, 121, 126, 121, 121, 125, 121, 105, 136, 122, 120, 128, 132, 117, 124, 132, 106, 128, 126, 121, 113, 131, 133, 140, 114, 112, 130, 126, 112, 122, 130, 137, 121, 128, 124, 110, 111, 135, 116, 141, 110, 122, 114, 125, 135, 142, 129, 109, 126, 116, 138, 129, 123, 120, 135, 131, 125, 137, 114, 120, 123, 130, 138, 140, 121, 114, 125, 135, 132, 133, 123, 124, 110, 133, 120, 136, 136, 125, 126, 127, 115, 114, 126, 143, 129, 146, 119, 130, 145, 120, 114, 129, 124, 135, 129, 124, 126, 143, 113, 127, 123, 117, 120, 121, 129, 135, 126, 105, 120, 123, 125, 124, 106, 127, 131, 128, 137, 134, 119, 114, 137, 133, 119, 135, 129, 120, 107, 117, 136, 127, 124, 120, 136, 114, 138, 126, 131, 138, 122, 117, 127, 113, 115, 146, 119, 116, 134, 140, 117, 138, 130, 113, 143, 122, 146, 123, 121, 125, 127, 127, 106, 110, 142, 129, 108, 116, 105, 123, 120, 117, 123, 121, 140, 128, 129, 127, 142, 133, 139, 123, 134, 116, 132, 131, 128, 133, 124, 125, 132, 121, 132, 118, 135, 138, 142, 127, 123, 119, 135, 127, 127, 132, 118, 134, 121, 118, 118, 130, 146, 117, 114, 122, 131, 140, 126, 112, 117, 121, 122, 127, 112, 120, 132, 126, 127, 148, 116, 130, 128, 127, 105, 119, 124, 144, 130, 133, 121, 108, 133, 133, 122, 132, 123, 118, 119, 111, 129, 103, 119, 128, 117, 120, 125, 124, 139, 137, 132, 125, 110, 129, 128, 129, 115, 124, 124, 127, 116, 123, 136, 127, 134, 141, 130, 116, 120, 120, 146, 114, 128, 131, 134, 128, 124, 125, 127, 134, 119, 130, 133, 136, 130, 133, 134, 133, 126, 122, 140, 116, 135, 124, 111, 110, 118, 145, 134, 134, 136, 139, 125, 121, 125, 145, 122, 127, 112, 124, 121, 126, 129, 125, 127, 138, 125, 129, 131, 126, 131, 143, 122, 115, 118, 131, 119, 104, 120, 123, 136, 115, 134, 124, 118, 137, 124, 116, 142, 130, 119, 132, 121, 125, 127, 137, 130, 128, 130, 122, 131, 128, 127, 123, 130, 135, 131, 119, 132, 112, 129, 124, 125, 138, 127, 111, 127, 139, 114, 127, 124, 121, 125, 108, 116, 141, 130, 116, 139, 105, 134, 129, 137, 124, 132, 138, 133, 132, 133, 138, 123, 134, 131, 131, 130, 121, 124, 128, 133, 122, 134, 135, 137, 136, 138, 136, 136, 118, 126, 122, 121, 129, 131, 141, 107, 127, 132, 121, 116, 127, 121, 133, 117, 133, 118, 109, 126, 132, 129, 135, 134, 149, 120, 122, 137, 127, 117, 140, 113, 117, 139, 127, 124, 98, 132, 139, 126, 117, 123, 124, 130, 127, 145, 107, 119, 151, 113, 119, 123, 129, 120, 113, 133, 127, 119, 131, 131, 108, 122, 110, 133, 122, 112, 122, 117, 118, 115, 123, 109, 116, 112, 135, 156, 110, 119, 120, 121, 125, 138, 116, 136, 124, 135, 120, 113, 133, 120, 129, 119, 125, 147, 124, 142, 133, 133, 122, 137, 127, 133, 122, 131, 128, 103, 131, 116, 132, 122, 122, 130, 119, 119, 129, 127, 125, 121, 138, 138, 118, 131, 112, 130, 139, 139, 118, 119, 115, 137, 121, 116, 132, 129, 134, 124, 130, 119, 124, 104, 122, 123, 119, 116, 116, 114, 111, 123, 111, 117, 114, 119, 132, 121, 140, 121, 122, 119, 124, 136, 146, 123, 135, 124, 128, 128, 111, 117, 136, 127, 132, 136, 121, 122, 137, 130, 124, 144, 120, 123, 134, 132, 117, 133, 113, 117, 115, 135, 114, 120, 149, 118, 129, 121, 135, 118, 120, 126, 135, 114, 129, 114, 131, 107, 121, 124, 130, 109, 118, 129, 106, 124, 121, 117, 138, 130, 132, 131, 144, 133, 105, 118, 111, 115, 136, 133, 120, 126, 132, 121, 138, 144, 135, 112, 138, 119, 126, 135, 116, 111, 133, 124, 126, 120, 116, 123, 132, 133, 119, 131, 137, 125, 124, 128, 129, 135, 126, 125, 132, 141, 117, 122, 122, 128, 117, 118, 129, 137, 123, 140, 116, 118, 118, 113, 122, 119, 126, 133, 132, 123, 131, 125, 107, 127, 136, 135, 144, 136, 137, 120, 122, 134, 133, 130, 128, 119, 123, 104, 129, 122, 127, 131, 129, 118, 110, 131, 129, 133, 140, 127, 107, 132, 123, 119, 133, 142, 138, 128, 135, 120, 116, 127, 130, 109, 129, 125, 137, 116, 134, 120, 133, 137, 137, 138, 125, 132, 120, 132, 136, 118, 120, 133, 121, 133, 138, 131, 121, 129, 130, 101, 137, 100, 127, 140, 116, 122, 118, 122, 134, 124, 115, 128, 137, 122, 130, 138, 132, 124, 123, 133, 123, 144, 133, 114, 128, 115, 127, 136, 126, 120, 134, 128, 126, 125, 132, 130, 141, 138, 116, 100, 127, 127, 125, 101, 134, 115, 112, 123, 121, 96, 124, 125, 125, 130, 127, 148, 153, 113, 118, 120, 128, 133, 117, 144, 132, 131, 145, 121, 113, 117, 143, 142, 125, 125, 132, 136, 140, 128, 131, 111, 135, 114, 131, 118, 130, 141, 143, 131, 135, 128, 130, 111, 134, 133, 140, 127, 112, 116, 126, 137, 133, 141, 125, 127, 107, 130, 114, 127, 131, 125, 132, 108, 128, 131, 127, 113, 124, 110, 135, 115, 119, 116, 121, 140, 127, 128, 108, 115, 127, 120, 129, 135, 120, 108, 134, 123, 122, 138, 119, 126, 121, 131, 115, 117, 120, 127, 130, 138, 128, 130, 133, 136, 145, 137, 120, 135, 131, 115, 137, 108, 124, 123, 146, 120, 134, 109, 128, 130, 155, 122, 116, 127, 125, 139, 119, 130, 124, 141, 112, 115, 117, 131, 121, 108, 115, 134, 153, 140, 118, 132, 120, 117, 128, 114, 113, 119, 131, 117, 122, 105, 107, 122, 115, 136, 119, 120, 142, 132, 115, 150, 129, 127, 117, 121, 129, 129, 150, 131, 127, 108, 121, 134, 135, 121, 117, 114, 112, 116, 122, 129, 130, 132, 129, 117, 126, 138, 134, 142, 126, 146, 148, 121, 127, 123, 140, 124, 115, 105, 116, 108, 138, 129, 111, 129, 141, 132, 114, 131, 121, 138, 109, 108, 123, 113, 128, 117, 130, 124, 115, 130, 125, 144, 127, 124, 132, 130, 118, 142, 141, 118, 146, 132, 137, 120, 128, 135, 121, 119, 105, 122, 112, 133, 113, 123, 124, 121, 102, 132, 124, 123, 115, 122, 113, 130, 156, 119, 122, 125, 127, 134, 120, 132, 129, 118, 126, 122, 121, 123, 121, 125, 138, 127, 132, 111, 131, 129, 128, 113, 139, 123, 121, 113, 134, 113, 120, 132, 132, 118, 120, 119, 130, 112, 136, 120, 102, 126, 142, 144, 120, 114, 128, 135, 133, 138, 138, 144, 116, 119, 137, 113, 137, 116, 121, 123, 119, 151, 117, 129, 148, 107, 134, 128, 134, 138, 138, 129, 133, 112, 124, 117, 142, 152, 119, 128, 114, 114, 147, 107, 113, 129, 112, 129, 122, 115, 109, 110, 113, 123, 134, 108, 129, 134, 111, 120, 129, 124, 115, 120, 126, 136, 119, 118, 147, 131, 124, 131, 127, 124, 111, 127, 140, 120, 103, 131, 114, 115, 127, 126, 112, 118, 122, 118, 132, 124, 119, 143, 114, 153, 137, 100, 114, 127, 123, 138, 148, 129, 131, 118, 124, 122, 114, 128, 108, 122, 119, 124, 124, 125, 118, 135, 113, 117, 125, 148, 132, 115, 136, 132, 130, 121, 109, 132, 133, 128, 125, 118, 116, 126, 114, 133, 120, 127, 128, 117, 112, 136, 121, 128, 119, 118, 124, 131, 126, 118, 123, 141, 125, 136, 135, 125, 130, 135, 130, 126, 128, 128, 109, 107, 131, 122, 118, 127, 134, 107, 118, 110, 134, 131, 126, 146, 119, 121, 137, 119, 117, 147, 119, 134, 120, 126, 127, 136, 130, 137, 129, 138, 134, 128, 127, 112, 147, 112, 130, 124, 102, 113, 131, 130, 131, 118, 130, 129, 125, 115, 116, 115, 112, 121, 133, 141, 119, 115, 111, 149, 136, 137, 155, 136, 125, 125, 127, 132, 113, 138, 129, 113, 120, 121, 138, 129, 116, 136, 130, 123, 126, 125, 124, 131, 99, 132, 116, 119, 115, 118, 133, 142, 141, 119, 115, 117, 126, 142, 127, 121, 154, 128, 127, 111, 141, 133, 123, 126, 119, 120, 126, 120, 113, 128, 127, 115, 131, 125, 118, 139, 126, 126, 125, 124, 137, 121, 127, 132, 130, 117, 126, 109, 137, 123, 142, 129, 128, 125, 123, 118, 117, 136, 147, 128, 116, 141, 119, 120, 142, 120, 148, 130, 116, 136, 117, 123, 125, 122, 131, 130, 127, 123, 123, 130, 128, 124, 119, 131, 120, 128, 124, 125, 130, 116, 125, 134, 168, 105, 106, 126, 128, 131, 129, 117, 129, 134, 129, 129, 137, 118, 114, 111, 108, 112, 130, 128, 130, 144, 136, 108, 153, 120, 110, 123, 116, 124, 132, 118, 132, 113, 123, 158, 122, 114, 127, 129, 135, 140, 148, 125, 117, 117, 137, 121, 129, 138, 107, 106, 133, 107, 123, 107, 115, 137, 112, 136, 129, 128, 119, 117, 118, 142, 118, 130, 111, 108, 122, 138, 115, 131, 135, 126, 135, 132, 93, 128, 95, 128, 104, 126, 145, 133, 136, 129, 134, 141, 122, 128, 150, 128, 122, 119, 132, 111, 135, 123, 126, 127, 130, 121, 119, 135, 117, 134, 122, 125, 113, 126, 122, 124, 123, 151, 128, 125, 126, 131, 131, 119, 128, 144, 139, 119, 121, 124, 128, 129, 113, 127, 130, 109, 137, 131, 113, 140, 125, 102, 101, 140, 131, 113, 135, 108, 125, 126, 125, 119, 112, 121, 125, 130, 135, 122, 127, 124, 124, 121, 113, 131, 139, 108, 132, 141, 140, 109, 132, 132, 149, 119, 135, 114, 125, 137, 123, 140, 127, 121, 126, 132, 110, 127, 134, 118, 128, 128, 129, 113, 111, 126, 118, 126, 124, 122, 128, 117, 114, 121, 124, 140, 107, 126, 134, 126, 126, 127, 127, 125, 124, 128, 120, 117, 137, 110, 129, 122, 137, 124, 130, 134, 126, 138, 134, 142, 128, 89, 125, 118, 141, 107, 120, 95, 141, 108, 126, 127, 126, 147, 134, 117, 123, 120, 139, 121, 110, 138, 126, 136, 123, 123, 129, 137, 123, 122, 114, 126, 104, 122, 135, 132, 127, 121, 127, 135, 146, 142, 128, 125, 117, 127, 139, 113, 123, 123, 123, 120, 105, 116, 129, 127, 133, 130, 130, 160, 127, 113, 116, 115, 134, 117, 107, 128, 141, 122, 124, 130, 128, 109, 113, 143, 121, 101, 132, 130, 132, 109, 127, 120, 108, 121, 125, 118, 114, 137, 134, 122, 128, 128, 107, 120, 126, 121, 124, 136, 124, 114, 128, 136, 131, 134, 149, 127, 119, 131, 124, 128, 131, 131, 121, 133, 136, 121, 153, 132, 125, 116, 128, 134, 117, 101, 134, 117, 133, 135, 121, 116, 133, 115, 118, 124, 119, 137, 131, 125, 122, 128, 119, 130, 119, 126, 107, 106, 146, 119, 123, 133, 117, 109, 122, 131, 114, 113, 130, 133, 141, 120, 128, 136, 123, 128, 141, 123, 127, 150, 135, 122, 119, 147, 107, 133, 133, 107, 124, 131, 125, 134, 117, 134, 119, 122, 121, 129, 136, 144, 123, 137, 132, 126, 140, 119, 117, 117, 120, 115, 133, 122, 117, 118, 122, 135, 130, 143, 119, 110, 122, 126, 119, 140, 127, 120, 115, 131, 113, 128, 122, 126, 117, 142, 131, 126, 117, 116, 132, 133, 134, 122, 127, 113, 147, 131, 123, 130, 126, 144, 122, 145, 124, 136, 128, 125, 130, 125, 139, 133, 120, 130, 138, 120, 119, 117, 108, 122, 125, 122, 138, 136, 122, 113, 118, 120, 123, 126, 127, 105, 134, 142, 107, 139, 124, 124, 133, 123, 121, 131, 139, 122, 129, 140, 113, 132, 124, 132, 106, 112, 131, 117, 112, 122, 121, 125, 124, 127, 130, 115, 118, 110, 120, 123, 120, 108, 133, 147, 127, 124, 132, 124, 131, 119, 110, 126, 125, 124, 125, 135, 116, 136, 139, 115, 119, 134, 122, 115, 105, 110, 143, 136, 126, 112, 128, 137, 117, 126, 118, 107, 121, 115, 131, 110, 121, 129, 152, 133, 117, 120, 112, 136, 116, 129, 122, 134, 126, 148, 118, 114, 126, 114, 135, 121, 111, 106, 114, 126, 110, 129, 111, 121, 130, 122, 129, 130, 133, 133, 124, 123, 138, 137, 130, 121, 115, 114, 133, 118, 136, 116, 126, 125, 132, 143, 134, 117, 120, 126, 128, 119, 153, 112, 125, 115, 120, 119, 122, 121, 144, 127, 128, 127, 110, 128, 133, 125, 130, 121, 134, 123, 130, 124, 115, 128, 129, 138, 132, 132, 111, 138, 117, 147, 118, 137, 111, 125, 134, 122, 127, 115, 118, 139, 130, 128, 123, 132, 131, 118, 132, 124, 120, 114, 116, 115, 142, 145, 138, 141, 132, 117, 135, 122, 120, 123, 121, 124, 125, 127, 133, 107, 128, 117, 115, 129, 140, 135, 135, 113, 132, 149, 121, 122, 130, 120, 135, 122, 128, 124, 125, 120, 122, 129, 125, 121, 143, 109, 146, 134, 134, 109, 132, 115, 127, 126, 149, 121, 119, 121, 123, 109, 133, 113, 128, 133, 126, 121, 120, 141, 126, 116, 129, 143, 131, 121, 129, 106, 122, 127, 133, 129, 125, 131, 127, 126, 123, 118, 141, 120, 110, 125, 131, 131, 136, 102, 133, 127, 114, 125, 121, 129, 133, 114, 111, 116, 118, 137, 131, 143, 144, 127, 146, 123, 124, 99, 122, 123, 117, 141, 126, 130, 132, 120, 123, 131, 111, 124, 140, 130, 123, 125, 109, 135, 112, 116, 114, 137, 126, 132, 128, 142, 130, 137, 137, 133, 113, 141, 135, 121, 119, 117, 143, 129, 120, 110, 122, 137, 152, 114, 124, 126, 135, 130, 128, 132, 132, 142, 132, 122, 103, 114, 107, 130, 92, 136, 114, 129, 121, 124, 105, 136, 114, 124, 132, 148, 134, 121, 131, 141, 103, 108, 134, 131, 139, 116, 152, 119, 119, 146, 130, 134, 119, 131, 114, 102, 126, 124, 146, 134, 120, 121, 121, 121, 107, 124, 128, 132, 115, 114, 143, 139, 136, 146, 139, 142, 119, 109, 137, 126, 122, 143, 128, 111, 117, 131, 102, 119, 127, 123, 127, 130, 109, 130, 126, 119, 128, 133, 119, 125, 131, 117, 121, 120, 126, 122, 147, 128, 123, 137, 122, 121, 130, 113, 128, 115, 101, 126, 123, 122, 132, 142, 131, 109, 125, 118, 108, 127, 106, 118, 114, 111, 120, 137, 123, 106, 119, 121, 127, 125, 110, 129, 114, 136, 124, 113, 129, 110, 135, 120, 131, 112, 116, 120, 130, 123, 123, 105, 123, 111, 131, 124, 133, 132, 122, 126, 110, 127, 123, 125, 114, 144, 106, 130, 137, 132, 134, 117, 130, 123, 121, 123, 120, 113, 128, 126, 139, 124, 137, 126, 138, 114, 110, 122, 122, 125, 130, 136, 125, 133, 114, 123, 104, 123, 120, 112, 115, 107, 120, 128, 145, 137, 124, 148, 140, 121, 147, 138, 130, 133, 124, 142, 120, 129, 129, 126, 130, 114, 124, 122, 113, 120, 139, 128, 132, 128, 117, 115, 125, 146, 125, 123, 106, 144, 133, 128, 126, 128, 135, 125, 136, 117, 114, 125, 127, 117, 121, 123, 120, 119, 120, 124, 127, 150, 121, 137, 122, 143, 128, 104, 132, 114, 116, 141, 128, 121, 124, 147, 102, 144, 157, 129, 154, 115, 133, 128, 124, 123, 126, 123, 117, 136, 117, 134, 127, 120, 141, 124, 140, 123, 119, 127, 123, 116, 137, 132, 126, 143, 139, 120, 116, 119, 128, 116, 134, 120, 126, 119, 129, 125, 124, 124, 120, 129, 144, 122, 125, 140, 127, 108, 109, 119, 129, 144, 129, 135, 120, 118, 132, 118, 138, 124, 122, 119, 122, 130, 145, 92, 134, 123, 124, 126, 111, 133, 129, 134, 129, 135, 130, 125, 123, 114, 124, 116, 119, 128, 137, 127, 140, 140, 96, 130, 112, 104, 118, 123, 128, 122, 137, 124, 141, 129, 112, 124, 152, 120, 129, 119, 119, 124, 131, 135, 121, 130, 129, 122, 117, 121, 94, 121, 126, 142, 127, 119, 121, 145, 118, 125, 120, 123, 129, 118, 125, 147, 140, 125, 126, 131, 127, 123, 133, 146, 120, 127, 137, 120, 131, 137, 136, 128, 129, 130, 142, 136, 108, 122, 120, 140, 120, 133, 122, 135, 125, 137, 117, 113, 115, 116, 138, 107, 136, 124, 138, 146, 131, 143, 136, 132, 109, 122, 140, 115, 127, 122, 125, 118, 125, 121, 134, 159, 157, 117, 126, 128, 138, 103, 123, 118, 134, 116, 115, 111, 133, 109, 118, 123, 126, 132, 120, 102, 135, 140, 121, 117, 121, 123, 116, 129, 133, 129, 126, 132, 122, 133, 129, 112, 135, 113, 125, 128, 111, 127, 132, 102, 134, 131, 141, 123, 131, 148, 118, 116, 132, 125, 119, 135, 111, 127, 130, 133, 128, 127, 131, 135, 122, 109, 128, 122, 146, 140, 122, 140, 130, 124, 115, 121, 120, 141, 116, 131, 130, 117, 109, 114, 135, 140, 128, 127, 135, 124, 117, 137, 128, 126, 142, 130, 126, 123, 134, 129, 115, 116, 132, 132, 119, 118, 113, 115, 125, 123, 144, 135, 132, 121, 136, 132, 131, 136, 126, 117, 124, 139, 133, 132, 125, 118, 125, 121, 122, 136, 134, 118, 122, 119, 128, 107, 118, 124, 127, 123, 134, 146, 131, 135, 120, 147, 133, 137, 115, 118, 118, 140, 110, 125, 140, 140, 129, 145, 108, 120, 134, 128, 123, 135, 125, 118, 135, 140, 144, 137, 131, 116, 116, 127, 105, 125, 123, 117, 129, 112, 142, 127, 114, 145, 125, 107, 131, 128, 118, 146, 124, 127, 115, 120, 119, 113, 130, 125, 138, 127, 122, 122, 113, 132, 140, 130, 114, 117, 130, 114, 129, 122, 116, 133, 125, 109, 123, 118, 132, 124, 123, 112, 125, 140, 117, 146, 146, 129, 130, 128, 113, 128, 113, 104, 113, 137, 115, 130, 135, 144, 133, 139, 113, 123, 119, 113, 126, 125, 121, 122, 129, 125, 126, 133, 115, 127, 146, 105, 134, 129, 117, 124, 112, 125, 139, 138, 122, 114, 108, 130, 121, 127, 135, 137, 124, 133, 125, 125, 112, 130, 116, 132, 137, 93, 116, 134, 128, 137, 131, 123, 133, 132, 110, 120, 127, 134, 114, 128, 131, 120, 121, 127, 130, 120, 116, 120, 129, 121, 118, 141, 130, 123, 149, 129, 141, 125, 135, 120, 101, 121, 110, 132, 110, 118, 138, 136, 140, 127, 141, 131, 101, 120, 135, 126, 119, 122, 133, 125, 114, 113, 130, 120, 136, 113, 141, 110, 137, 136, 113, 132, 121, 112, 125, 116, 102, 152, 119, 140, 139, 95, 116, 140, 106, 133, 103, 117, 122, 130, 132, 125, 130, 134, 148, 141, 129, 137, 129, 135, 119, 141, 120, 135, 127, 100, 111, 130, 120, 107, 117, 108, 126, 120, 112, 124, 118, 129, 134, 132, 110, 122, 125, 133, 118, 130, 114, 125, 139, 127, 132, 125, 109, 124, 136, 115, 127, 111, 118, 143, 129, 150, 128, 117, 130, 120, 123, 112, 125, 132, 126, 126, 110, 108, 121, 123, 121, 127, 116, 129, 130, 138, 124, 133, 118, 117, 113, 138, 120, 122, 132, 136, 138, 109, 121, 135, 128, 122, 120, 122, 135, 119, 139, 128, 135, 135, 120, 132, 116, 141, 106, 117, 135, 142, 113, 120, 153, 118, 118, 115, 114, 111, 114, 108, 122, 128, 130, 129, 131, 118, 113, 123, 128, 118, 138, 141, 109, 118, 131, 134, 130, 116, 137, 139, 124, 132, 128, 136, 126, 121, 141, 120, 152, 123, 121, 125, 125, 104, 131, 126, 124, 130, 107, 117, 105, 114, 119, 125, 142, 123, 116, 147, 132, 120, 107, 121, 130, 131, 138, 134, 124, 106, 123, 108, 120, 119, 117, 122, 116, 135, 135, 132, 116, 133, 110, 127, 126, 126, 114, 118, 113, 128, 136, 129, 147, 129, 128, 122, 121, 116, 149, 123, 123, 105, 120, 119, 129, 134, 129, 129, 118, 145, 135, 126, 116, 127, 141, 134, 130, 132, 132, 126, 106, 135, 123, 122, 124, 122, 120, 116, 118, 132, 116, 132, 135, 139, 132, 141, 129, 118, 117, 138, 137, 125, 136, 136, 128, 122, 117, 121, 126, 124, 117, 134, 121, 134, 131, 122, 125, 125, 107, 134, 109, 118, 124, 118, 148, 121, 126, 124, 135, 122, 129, 122, 131, 123, 117, 122, 128, 120, 114, 127, 121, 120, 130, 129, 117, 125, 107, 138, 126, 128, 118, 110, 132, 116, 140, 125, 125, 129, 129, 120, 121, 113, 144, 125, 111, 125, 116, 133, 114, 143, 128, 114, 130, 154, 128, 129, 121, 136, 132, 136, 135, 130, 136, 122, 114, 133, 136, 114, 120, 115, 142, 128, 136, 140, 137, 126, 122, 128, 114, 108, 134, 118, 125, 132, 130, 148, 112, 134, 125, 112, 130, 122, 122, 131, 145, 116, 114, 128, 121, 107, 127, 118, 122, 132, 131, 138, 128, 131, 139, 125, 146, 117, 126, 127, 125, 140, 123, 105, 130, 133, 119, 111, 122, 120, 134, 130, 120, 126, 127, 129, 130, 110, 131, 139, 114, 136, 128, 115, 123, 132, 126, 141, 143, 130, 108, 118, 122, 139, 115, 136, 127, 123, 110, 104, 131, 130, 144, 111, 128, 116, 122, 119, 117, 127, 120, 124, 129, 142, 128, 121, 123, 128, 129, 131, 122, 114, 113, 131, 124, 119, 124, 121, 124, 109, 133, 130, 117, 127, 136, 136, 112, 119, 111, 125, 129, 129, 143, 118, 123, 120, 137, 114, 112, 111, 141, 127, 141, 142, 140, 132, 123, 120, 135, 122, 132, 118, 133, 133, 122, 130, 125, 145, 129, 143, 133, 153, 120, 124, 128, 128, 117, 124, 128, 129, 112, 127, 124, 111, 132, 130, 135, 121, 131, 126, 132, 116, 125, 124, 137, 120, 120, 124, 117, 105, 118, 136, 118, 117, 144, 131, 126, 150, 125, 136, 128, 126, 128, 133, 147, 127, 122, 118, 117, 123, 122, 119, 114, 131, 133, 126, 119, 136, 139, 115, 127, 131, 127, 111, 123, 125, 101, 119, 133, 124, 132, 119, 127, 114, 120, 107, 133, 141, 116, 128, 138, 140, 122, 145, 128, 121, 130, 136, 123, 116, 126, 128, 108, 112, 117, 118, 137, 120, 131, 102, 135, 117, 137, 121, 143, 137, 138, 116, 119, 118, 142, 120, 119, 125, 124, 118, 145, 125, 150, 123, 122, 118, 125, 117, 133, 120, 117, 143, 130, 120, 125, 120, 104, 120, 124, 133, 125, 124, 131, 119, 128, 117, 139, 134, 109, 118, 121, 128, 140, 125, 120, 129, 124, 120, 135, 128, 123, 114, 111, 140, 106, 122, 127, 130, 132, 116, 114, 113, 119, 124, 126, 139, 137, 132, 133, 129, 132, 146, 125, 130, 125, 136, 124, 123, 123, 109, 127, 104, 120, 131, 134, 109, 120, 132, 131, 136, 141, 114, 116, 97, 124, 129, 127, 116, 120, 126, 128, 133, 118, 116, 115, 138, 119, 132, 117, 133, 132, 112, 132, 125, 133, 131, 131, 122, 128, 110, 123, 126, 136, 142, 134, 135, 116, 120, 106, 135, 120, 132, 116, 125, 106, 127, 127, 110, 122, 113, 141, 115, 114, 123, 117, 121, 128, 130, 119, 131, 115, 130, 137, 116, 123, 121, 129, 132, 111, 124, 117, 125, 122, 131, 130, 121, 130, 130, 126, 135, 129, 129, 129, 128, 136, 107, 140, 119, 143, 135, 116, 135, 130, 116, 132, 124, 126, 108, 145, 131, 105, 140, 135, 118, 155, 129, 138, 139, 125, 131, 108, 134, 134, 114, 158, 113, 127, 118, 128, 156, 115, 130, 124, 112, 122, 119, 118, 121, 117, 125, 132, 125, 126, 122, 125, 113, 138, 124, 130, 122, 127, 127, 120, 132, 117, 105, 123, 116, 129, 117, 139, 123, 120, 136, 133, 105, 130, 124, 126, 127, 133, 120, 126, 118, 124, 136, 107, 112, 119, 124, 116, 117, 122, 127, 116, 118, 115, 122, 144, 151, 135, 130, 145, 120, 121, 122, 122, 115, 121, 119, 136, 125, 128, 110, 132, 141, 134, 130, 144, 138, 112, 143, 122, 116, 119, 120, 144, 117, 120, 107, 128, 128, 110, 123, 125, 130, 130, 134, 119, 131, 127, 136, 119, 138, 135, 135, 133, 129, 154, 124, 145, 128, 123, 105, 128, 121, 116, 122, 135, 121, 130, 133, 131, 120, 115, 112, 127, 121, 134, 124, 121, 122, 117, 121, 149, 140, 130, 145, 121, 122, 118, 142, 108, 130, 122, 123, 139, 120, 128, 118, 118, 120, 133, 118, 123, 126, 133, 125, 119, 103, 135, 142, 146, 132, 122, 124, 115, 143, 127, 119, 122, 130, 127, 133, 116, 128, 107, 120, 108, 125, 140, 135, 127, 122, 138, 124, 102, 133, 130, 104, 115, 139, 113, 109, 128, 120, 140, 113, 134, 125, 122, 121, 111, 119, 136, 108, 105, 112, 137, 112, 131, 119, 131, 134, 111, 115, 129, 125, 133, 120, 125, 131, 123, 123, 144, 129, 139, 127, 115, 127, 133, 126, 120, 129, 135, 136, 154, 107, 112, 110, 133, 118, 121, 131, 120, 123, 122, 113, 138, 116, 125, 130, 129, 135, 125, 125, 125, 144, 115, 133, 122, 130, 125, 133, 137, 125, 137, 123, 131, 128, 121, 134, 116, 147, 117, 122, 119, 126, 109, 118, 115, 145, 112, 135, 133, 126, 146, 116, 136, 123, 129, 121, 137, 135, 107, 103, 106, 131, 126, 120, 124, 130, 119, 121, 132, 123, 130, 125, 126, 126, 144, 115, 119, 138, 138, 142, 134, 122, 110, 134, 123, 113, 121, 132, 122, 128, 125, 130, 114, 118, 117, 120, 123, 146, 136, 111, 128, 131, 133, 119, 121, 113, 117, 126, 121, 116, 133, 109, 134, 124, 140, 123, 110, 137, 141, 120, 120, 124, 110, 129, 111, 120, 134, 128, 118, 125, 130, 122, 128, 142, 119, 136, 109, 136, 117, 124, 142, 125, 122, 139, 131, 125, 118, 124, 143, 130, 128, 125, 132, 126, 104, 118, 115, 133, 161, 137, 112, 145, 109, 141, 114, 145, 120, 147, 128, 107, 121, 124, 144, 117, 134, 120, 111, 110, 133, 137, 135, 128, 118, 129, 130, 122, 117, 119, 135, 128, 133, 112, 127, 132, 114, 122, 128, 139, 138, 98, 122, 128, 125, 117, 113, 143, 134, 129, 125, 132, 124, 140, 121, 117, 106, 137, 130, 135, 124, 130, 127, 130, 143, 120, 111, 134, 111, 111, 138, 126, 108, 119, 111, 109, 131, 115, 126, 120, 126, 129, 119, 124, 130, 142, 128, 116, 112, 121, 115, 103, 127, 148, 111, 129, 131, 127, 135, 143, 130, 121, 113, 120, 117, 125, 120, 133, 142, 119, 133, 125, 121, 134, 144, 140, 127, 110, 113, 129, 108, 134, 130, 135, 118, 129, 139, 130, 119, 122, 127, 100, 140, 116, 91, 127, 113, 120, 138, 118, 114, 123, 118, 142, 115, 127, 129, 123, 108, 128, 108, 137, 121, 126, 118, 125, 148, 129, 133, 132, 123, 115, 137, 114, 127, 126, 139, 128, 125, 119, 131, 107, 159, 128, 125, 125, 126, 129, 120, 134, 141, 115, 123, 127, 113, 127, 128, 123, 127, 111, 103, 115, 113, 120, 137, 109, 130, 109, 126, 128, 121, 114, 126, 125, 137, 138, 104, 133, 124, 137, 127, 125, 132, 143, 113, 121, 116, 126, 128, 126, 118, 139, 125, 118, 125, 121, 124, 128, 145, 113, 116, 126, 139, 115, 137, 135, 135, 120, 109, 128, 136, 132, 129, 109, 141, 125, 116, 127, 117, 124, 121, 132, 116, 124, 142, 120, 106, 137, 119, 145, 125, 107, 119, 116, 123, 148, 132, 158, 116, 123, 108, 115, 123, 134, 131, 126, 127, 124, 130, 126, 139, 123, 120, 126, 132, 116, 127, 134, 126, 114, 137, 114, 109, 131, 128, 124, 123, 123, 134, 130, 122, 122, 122, 142, 122, 121, 127, 132, 139, 129, 122, 135, 128, 127, 123, 130, 129, 156, 133, 134, 112, 122, 128, 124, 109, 112, 119, 131, 132, 135, 128, 97, 132, 136, 121, 120, 108, 122, 119, 150, 123, 121, 145, 110, 121, 154, 110, 131, 117, 123, 131, 115, 130, 134, 131, 115, 124, 126, 114, 120, 124, 146, 128, 134, 125, 133, 150, 117, 137, 115, 130, 122, 108, 133, 124, 138, 117, 126, 103, 134, 122, 130, 127, 111, 136, 127, 131, 105, 123, 131, 121, 131, 121, 120, 117, 102, 106, 124, 135, 129, 142, 137, 110, 135, 131, 113, 110, 118, 124, 137, 130, 126, 118, 114, 130, 142, 123, 124, 146, 125, 121, 118, 117, 151, 116, 129, 145, 140, 134, 130, 112, 114, 119, 135, 114, 138, 154, 134, 133, 132, 131, 127, 132, 112, 131, 105, 144, 123, 129, 116, 131, 129, 117, 136, 135, 122, 140, 129, 130, 133, 120, 110, 112, 120, 127, 109, 137, 133, 110, 129, 132, 117, 120, 129, 107, 103, 142, 126, 127, 126, 119, 119, 105, 141, 118, 122, 120, 148, 140, 116, 152, 141, 140, 135, 124, 122, 136, 128, 128, 126, 121, 128, 143, 121, 129, 140, 118, 136, 120, 127, 123, 108, 119, 143, 128, 137, 127, 140, 117, 117, 121, 128, 136, 131, 115, 132, 135, 104, 127, 133, 126, 166, 145, 134, 129, 113, 130, 134, 116, 119, 121, 122, 125, 124, 147, 137, 133, 127, 123, 115, 114, 137, 115, 114, 128, 121, 122, 115, 139, 113, 118, 137, 120, 116, 134, 130, 118, 106, 118, 122, 125, 125, 118, 114, 115, 131, 121, 119, 118, 118, 129, 124, 125, 123, 130, 137, 136, 135, 117, 141, 131, 153, 134, 115, 130, 111, 125, 135, 134, 136, 127, 122, 124, 121, 123, 115, 115, 158, 128, 127, 119, 118, 129, 117, 115, 151, 128, 139, 137, 130, 143, 100, 122, 114, 119, 118, 121, 118, 119, 140, 130, 132, 124, 125, 129, 123, 109, 140, 121, 118, 136, 136, 113, 109, 111, 109, 126, 128, 124, 139, 128, 123, 118, 126, 125, 104, 120, 143, 102, 124, 126, 128, 127, 119, 120, 121, 138, 131, 121, 141, 136, 123, 118, 139, 123, 126, 112, 110, 123, 127, 109, 139, 136, 127, 133, 126, 117, 132, 131, 119, 134, 127, 122, 129, 133, 144, 127, 109, 124, 122, 143, 131, 111, 124, 126, 131, 126, 120, 127, 136, 127, 122, 149, 121, 126, 128, 134, 139, 130, 128, 127, 114, 112, 118, 120, 128, 126, 125, 136, 125, 101, 137, 114, 135, 128, 121, 128, 138, 122, 139, 140, 134, 130, 134, 135, 135, 136, 118, 115, 130, 125, 131, 124, 120, 130, 122, 135, 136, 129, 127, 114, 133, 125, 116, 126, 131, 113, 109, 122, 119, 123, 112, 121, 112, 125, 116, 127, 110, 124, 117, 117, 110, 130, 129, 129, 148, 119, 132, 110, 115, 105, 124, 137, 136, 124, 124, 106, 151, 126, 112, 126, 117, 132, 127, 133, 141, 112, 130, 110, 137, 122, 141, 106, 122, 128, 130, 119, 126, 103, 142, 132, 122, 139, 95, 128, 111, 138, 121, 128, 126, 133, 147, 124, 138, 106, 128, 128, 119, 133, 114, 121, 109, 137, 137, 121, 125, 132, 132, 121, 123, 121, 125, 108, 120, 123, 121, 129, 110, 131, 113, 117, 129, 133, 126, 123, 129, 133, 133, 139, 125, 133, 134, 121, 118, 122, 125, 118, 118, 123, 115, 114, 128, 133, 139, 117, 136, 125, 154, 131, 138, 130, 120, 129, 130, 100, 123, 109, 127, 123, 137, 131, 100, 137, 133, 140, 131, 126, 129, 120, 147, 137, 126, 135, 121, 122, 127, 105, 128, 134, 135, 132, 117, 108, 138, 135, 129, 105, 130, 108, 110, 133, 120, 134, 112, 139, 92, 128, 141, 137, 123, 107, 97, 133, 137, 118, 141, 127, 138, 120, 134, 131, 120, 111, 109, 121, 134, 122, 118, 116, 99, 123, 133, 119, 133, 127, 116, 104, 129, 132, 119, 131, 148, 138, 132, 132, 151, 126, 129, 136, 118, 131, 116, 129, 131, 110, 121, 130, 133, 118, 139, 123, 121, 122, 124, 133, 105, 139, 125, 122, 108, 127, 123, 144, 132, 105, 119, 118, 143, 137, 129, 145, 138, 111, 150, 133, 133, 103, 138, 119, 114, 138, 135, 119, 137, 123, 126, 114, 142, 123, 116, 131, 130, 137, 112, 116, 124, 127, 139, 103, 127, 121, 129, 123, 129, 114, 136, 121, 112, 122, 121, 141, 135, 120, 118, 115, 138, 125, 111, 123, 116, 135, 122, 131, 104, 122, 111, 142, 113, 105, 124, 136, 117, 139, 126, 129, 130, 109, 114, 145, 113, 124, 135, 137, 128, 116, 119, 117, 127, 102, 125, 114, 117, 120, 104, 123, 130, 115, 134, 125, 137, 126, 130, 118, 130, 132, 126, 120, 114, 119, 130, 145, 135, 107, 121, 128, 128, 121, 138, 125, 123, 115, 120, 139, 106, 141, 113, 128, 127, 112, 126, 109, 113, 117, 133, 123, 111, 119, 124, 125, 134, 125, 127, 123, 121, 154, 140, 121, 125, 121, 113, 133, 117, 113, 117, 125, 147, 117, 125, 142, 131, 122, 120, 128, 109, 126, 128, 115, 132, 120, 130, 130, 115, 106, 123, 141, 128, 146, 128, 135, 142, 140, 138, 133, 124, 123, 115, 127, 124, 124, 133, 118, 104, 140, 123, 139, 135, 102, 111, 130, 121, 133, 139, 115, 139, 124, 132, 114, 97, 131, 152, 123, 144, 127, 126, 124, 119, 112, 128, 108, 114, 120, 133, 109, 119, 117, 126, 136, 115, 103, 129, 120, 116, 130, 157, 121, 119, 113, 125, 138, 135, 120, 125, 126, 113, 133, 117, 119, 128, 127, 105, 108, 126, 115, 141, 141, 124, 125, 115, 122, 127, 118, 144, 150, 170, 115, 104, 110, 128, 108, 110, 120, 130, 118, 142, 136, 107, 146, 120, 136, 120, 119, 135, 107, 124, 124, 118, 130, 134, 119, 135, 113, 119, 116, 134, 118, 133, 111, 126, 110, 127, 111, 138, 122, 124, 143, 132, 104, 151, 127, 147, 129, 115, 143, 116, 119, 116, 128, 135, 146, 131, 127, 128, 150, 115, 107, 131, 134, 91, 135, 121, 114, 129, 120, 127, 125, 118, 126, 134, 140, 131, 124, 154, 121, 115, 123, 130, 125, 130, 128, 126, 137, 134, 127, 108, 123, 116, 121, 143, 136, 117, 122, 133, 130, 135, 122, 126, 116, 136, 128, 139, 126, 119, 126, 140, 127, 140, 117, 115, 130, 111, 140, 132, 139, 129, 111, 130, 135, 140, 127, 111, 125, 120, 135, 108, 125, 136, 114, 128, 119, 132, 120, 134, 134, 101, 117, 133, 133, 123, 121, 126, 126, 113, 109, 112, 128, 122, 125, 120, 119, 119, 116, 121, 124, 126, 123, 120, 128, 118, 107, 126, 116, 128, 127, 117, 106, 136, 130, 129, 155, 134, 123, 126, 116, 129, 115, 128, 122, 137, 124, 145, 135, 128, 138, 124, 136, 128, 129, 145, 116, 138, 128, 121, 114, 138, 123, 129, 115, 104, 138, 117, 131, 125, 138, 119, 140, 122, 130, 124, 121, 120, 152, 116, 111, 123, 132, 125, 128, 125, 134, 117, 129, 134, 117, 138, 126, 109, 127, 127, 89, 120, 114, 103, 122, 111, 131, 129, 122, 117, 120, 150, 123, 138, 132, 130, 114, 141, 109, 130, 118, 131, 125, 109, 129, 120, 120, 114, 123, 116, 144, 129, 122, 126, 139, 120, 117, 126, 114, 113, 130, 145, 140, 119, 114, 113, 121, 117, 127, 129, 115, 129, 131, 139, 123, 127, 120, 134, 139, 133, 119, 134, 148, 152, 112, 122, 132, 123, 120, 117, 120, 137, 140, 134, 126, 124, 123, 122, 116, 139, 114, 125, 139, 115, 125, 125, 115, 129, 139, 107, 108, 134, 125, 132, 121, 117, 131, 114, 122, 115, 116, 141, 134, 113, 115, 129, 123, 135, 137, 122, 127, 149, 128, 123, 121, 123, 114, 109, 119, 119, 133, 127, 121, 112, 147, 130, 133, 122, 122, 135, 126, 122, 130, 122, 132, 119, 118, 145, 94, 136, 130, 121, 121, 121, 127, 111, 117, 120, 129, 109, 137, 131, 131, 148, 138, 135, 117, 141, 130, 125, 110, 124, 124, 120, 124, 118, 123, 135, 112, 120, 104, 149, 127, 128, 145, 119, 144, 143, 145, 128, 117, 141, 119, 138, 126, 134, 125, 149, 153, 134, 106, 121, 134, 122, 137, 141, 119, 116, 132, 132, 120, 133, 125, 105, 124, 112, 110, 151, 114, 121, 119, 118, 124, 134, 140, 134, 103, 115, 146, 116, 119, 134, 112, 133, 123, 147, 134, 135, 127, 107, 116, 127, 112, 144, 145, 117, 127, 131, 110, 122, 116, 115, 121, 128, 123, 126, 130, 120, 120, 124, 126, 137, 119, 129, 119, 124, 117, 109, 130, 117, 105, 124, 118, 130, 139, 124, 121, 124, 106, 146, 138, 126, 121, 108, 115, 124, 126, 105, 123, 125, 123, 121, 131, 137, 112, 134, 132, 133, 133, 135, 122, 116, 145, 117, 160, 135, 119, 127, 126, 105, 131, 116, 121, 140, 113, 87, 117, 111, 127, 117, 121, 113, 149, 113, 121, 126, 124, 124, 121, 138, 115, 125, 126, 129, 125, 129, 138, 128, 117, 129, 119, 127, 117, 124, 139, 133, 125, 103, 101, 136, 108, 136, 124, 137, 136, 119, 140, 111, 120, 93, 127, 139, 130, 137, 145, 112, 133, 114, 120, 135, 130, 131, 127, 122, 130, 108, 120, 119, 106, 124, 135, 129, 133, 127, 118, 124, 123, 142, 122, 153, 135, 127, 127, 136, 109, 112, 113, 123, 119, 111, 124, 139, 123, 136, 114, 123, 118, 143, 127, 138, 127, 124, 115, 113, 135, 137, 111, 122, 136, 132, 129, 120, 127, 130, 103, 129, 135, 101, 123, 117, 129, 116, 131, 122, 124, 140, 137, 127, 124, 127, 128, 124, 123, 110, 122, 130, 122, 137, 123, 138, 120, 114, 141, 118, 126, 105, 129, 134, 115, 133, 133, 113, 136, 106, 118, 115, 139, 113, 138, 143, 135, 117, 134, 128, 126, 141, 132, 130, 148, 108, 120, 147, 134, 146, 120, 117, 119, 143, 111, 137, 124, 107, 122, 108, 120, 123, 128, 138, 118, 132, 119, 107, 127, 127, 132, 133, 118, 130, 129, 124, 131, 127, 117, 136, 132, 125, 124, 135, 135, 127, 136, 131, 122, 114, 120, 119, 112, 117, 138, 129, 130, 121, 136, 125, 124, 114, 136, 116, 124, 108, 94, 121, 134, 135, 117, 129, 134, 145, 127, 115, 118, 115, 96, 135, 123, 118, 120, 124, 122, 119, 124, 136, 122, 121, 125, 105, 114, 115, 135, 126, 119, 125, 138, 140, 112, 134, 155, 121, 108, 125, 122, 129, 117, 123, 128, 120, 135, 127, 140, 125, 127, 117, 106, 113, 121, 120, 120, 118, 119, 127, 117, 115, 130, 151, 117, 123, 122, 145, 97, 122, 117, 158, 125, 130, 121, 129, 133, 140, 117, 118, 136, 122, 130, 132, 127, 119, 105, 145, 124, 141, 131, 116, 119, 118, 126, 136, 116, 115, 148, 108, 142, 124, 134, 141, 137, 134, 120, 145, 112, 109, 117, 132, 120, 116, 119, 98, 106, 126, 135, 139, 127, 138, 125, 118, 138, 147, 146, 122, 126, 120, 132, 120, 116, 150, 127, 132, 111, 117, 117, 128, 124, 123, 119, 141, 133, 109, 121, 147, 111, 97, 131, 110, 138, 131, 118, 140, 132, 133, 129, 120, 141, 121, 120, 124, 130, 125, 112, 128, 128, 110, 125, 104, 118, 130, 117, 139, 137, 142, 112, 124, 130, 115, 123, 120, 136, 128, 128, 138, 123, 133, 108, 115, 114, 137, 127, 128, 126, 126, 123, 115, 111, 122, 130, 137, 122, 126, 150, 114, 133, 132, 124, 112, 126, 157, 136, 130, 127, 113, 134, 113, 161, 132, 133, 129, 129, 136, 131, 131, 124, 116, 125, 125, 132, 116, 120, 119, 124, 129, 134, 104, 129, 130, 109, 125, 133, 131, 118, 139, 135, 119, 138, 131, 124, 119, 121, 113, 118, 94, 131, 127, 124, 119, 108, 116, 115, 109, 139, 148, 135, 124, 133, 138, 143, 116, 136, 129, 106, 127, 119, 117, 138, 130, 120, 132, 149, 116, 122, 146, 104, 134, 129, 117, 120, 129, 131, 123, 124, 123, 139, 133, 123, 130, 108, 135, 112, 113, 129, 152, 134, 139, 123, 117, 132, 130, 109, 132, 123, 116, 128, 132, 101, 125, 138, 113, 113, 120, 119, 113, 113, 135, 128, 128, 133, 137, 132, 124, 118, 132, 128, 126, 105, 123, 121, 118, 122, 125, 135, 139, 116, 147, 121, 123, 110, 136, 120, 124, 137, 124, 112, 111, 123, 119, 120, 125, 144, 126, 127, 113, 132, 138, 109, 146, 116, 111, 137, 123, 109, 118, 127, 140, 117, 104, 141, 126, 122, 138, 127, 129, 133, 126, 115, 115, 120, 120, 133, 145, 130, 109, 110, 120, 138, 120, 117, 121, 132, 121, 119, 129, 121, 113, 113, 129, 111, 127, 120, 135, 120, 138, 109, 105, 118, 119, 132, 131, 126, 112, 119, 130, 117, 116, 119, 119, 143, 115, 133, 128, 134, 116, 149, 125, 128, 134, 121, 135, 124, 116, 128, 131, 124, 118, 106, 121, 130, 124, 124, 116, 122, 109, 112, 132, 124, 136, 128, 117, 131, 142, 121, 133, 137, 149, 121, 125, 142, 119, 124, 114, 123, 120, 102, 116, 111, 122, 144, 121, 116, 126, 117, 130, 146, 122, 119, 124, 124, 125, 138, 128, 123, 120, 113, 130, 141, 128, 129, 113, 135, 121, 134, 127, 124, 120, 137, 111, 132, 129, 134, 126, 133, 149, 137, 116, 133, 123, 133, 130, 133, 104, 111, 123, 126, 114, 132, 143, 120, 119, 120, 116, 121, 153, 145, 125, 130, 92, 122, 115, 135, 122, 124, 131, 101, 131, 127, 138, 116, 134, 137, 126, 129, 125, 131, 131, 126, 121, 121, 133, 117, 134, 108, 104, 162, 110, 120, 109, 125, 116, 137, 115, 121, 149, 118, 127, 120, 136, 135, 121, 115, 112, 106, 124, 116, 122, 148, 104, 115, 128, 102, 125, 135, 122, 135, 136, 134, 133, 147, 133, 131, 116, 120, 116, 126, 115, 124, 138, 126, 117, 126, 129, 132, 131, 126, 133, 113, 127, 126, 106, 137, 131, 116, 118, 112, 115, 131, 111, 113, 134, 139, 131, 109, 116, 139, 104, 132, 125, 126, 135, 127, 125, 125, 115, 118, 122, 116, 118, 107, 120, 104, 123, 121, 140, 134, 127, 117, 125, 127, 129, 140, 137, 119, 105, 125, 103, 124, 133, 114, 123, 127, 107, 116, 115, 123, 112, 115, 127, 126, 105, 130, 120, 120, 123, 127, 158, 120, 111, 119, 131, 122, 102, 133, 112, 110, 104, 117, 116, 136, 122, 102, 116, 106, 117, 121, 129, 119, 105, 133, 128, 116, 132, 123, 124, 133, 130, 118, 122, 112, 116, 119, 126, 122, 127, 147, 119, 150, 132, 139, 134, 121, 119, 116, 127, 113, 121, 123, 119, 125, 122, 111, 139, 138, 131, 118, 124, 137, 108, 115, 118, 134, 110, 134, 119, 136, 127, 126, 131, 129, 138, 117, 114, 127, 112, 132, 128, 110, 141, 126, 108, 101, 122, 116, 100, 113, 130, 126, 151, 112, 120, 140, 140, 126, 120, 128, 111, 96, 128, 113, 133, 119, 132, 120, 118, 124, 129, 106, 134, 116, 122, 130, 128, 131, 122, 111, 132, 120, 124, 127, 128, 123, 121, 123, 139, 141, 99, 130, 122, 126, 123, 120, 114, 106, 122, 110, 128, 116, 140, 121, 130, 111, 133, 112, 122, 123, 130, 120, 115, 133, 141, 124, 116, 133, 142, 130, 128, 126, 129, 124, 121, 126, 125, 127, 125, 112, 140, 136, 134, 164, 125, 114, 123, 133, 136, 136, 110, 124, 135, 112, 133, 139, 131, 121, 129, 114, 130, 125, 132, 121, 116, 137, 156, 145, 134, 138, 143, 125, 111, 121, 133, 111, 121, 126, 116, 112, 136, 135, 114, 109, 112, 108, 104, 124, 113, 130, 128, 124, 132, 112, 123, 117, 115, 136, 126, 118, 114, 138, 123, 140, 116, 136, 144, 142, 120, 112, 143, 123, 138, 122, 113, 110, 119, 120, 116, 132, 120, 114, 136, 96, 138, 114, 131, 133, 127, 118, 127, 99, 119, 114, 130, 121, 130, 116, 125, 129, 128, 137, 113, 151, 113, 115, 155, 115, 141, 111, 127, 142, 109, 125, 128, 140, 136, 127, 132, 128, 110, 124, 144, 133, 130, 145, 128, 118, 108, 122, 125, 129, 115, 107, 132, 121, 122, 132, 127, 145, 140, 117, 118, 129, 133, 106, 110, 135, 127, 130, 109, 126, 148, 109, 124, 115, 131, 129, 110, 117, 123, 118, 121, 131, 144, 115, 133, 123, 114, 116, 135, 132, 131, 143, 111, 135, 116, 119, 137, 116, 127, 125, 100, 132, 113, 128, 138, 135, 128, 132, 138, 118, 145, 124, 133, 112, 116, 144, 129, 134, 137, 132, 107, 119, 124, 132, 128, 119, 131, 128, 120, 127, 123, 126, 115, 114, 128, 119, 109, 129, 117, 128, 129, 107, 136, 125, 130, 111, 129, 122, 144, 118, 113, 124, 119, 111, 135, 122, 129, 140, 109, 147, 116, 136, 112, 129, 122, 124, 132, 135, 133, 124, 123, 118, 116, 117, 124, 118, 122, 118, 126, 127, 101, 122, 125, 139, 130, 117, 126, 136, 134, 120, 122, 114, 119, 102, 144, 118, 120, 119, 138, 126, 107, 123, 132, 120, 143, 134, 144, 131, 109, 129, 124, 118, 132, 126, 135, 140, 122, 139, 122, 131, 113, 113, 117, 120, 99, 127, 124, 129, 130, 133, 127, 127, 121, 126, 109, 132, 132, 139, 153, 147, 97, 119, 127, 113, 121, 118, 117, 129, 124, 114, 132, 135, 138, 132, 91, 119, 127, 114, 129, 114, 125, 109, 126, 132, 123, 111, 121, 125, 119, 127, 120, 123, 111, 130, 115, 121, 115, 112, 156, 127, 120, 145, 136, 123, 125, 109, 126, 106, 130, 144, 131, 135, 121, 126, 139, 126, 118, 135, 123, 100, 120, 125, 119, 122, 119, 123, 108, 116, 142, 100, 146, 131, 130, 128, 132, 133, 128, 116, 113, 122, 116, 130, 133, 120, 118, 116, 138, 116, 106, 150, 131, 157, 128, 134, 118, 125, 115, 131, 129, 116, 131, 121, 139, 133, 134, 113, 115, 124, 131, 118, 125, 115, 123, 127, 144, 133, 128, 138, 123, 120, 136, 134, 133, 102, 135, 142, 127, 151, 136, 98, 130, 122, 118, 116, 124, 130, 122, 124, 124, 117, 131, 130, 126, 121, 129, 110, 132, 133, 138, 114, 125, 137, 110, 125, 114, 127, 125, 118, 109, 124, 120, 131, 118, 101, 123, 141, 127, 130, 117, 115, 137, 126, 117, 131, 132, 127, 134, 101, 133, 110, 116, 135, 131, 115, 115, 131, 124, 110, 122, 139, 134, 123, 126, 115, 106, 132, 114, 131, 124, 119, 120, 138, 119, 133, 115, 120, 144, 132, 115, 126, 114, 116, 127, 122, 142, 118, 97, 129, 123, 130, 126, 139, 142, 124, 115, 141, 110, 126, 137, 130, 132, 133, 137, 123, 129, 137, 142, 120, 121, 125, 144, 117, 119, 138, 121, 124, 128, 121, 119, 134, 104, 118, 117, 126, 136, 138, 129, 101, 127, 128, 113, 135, 121, 111, 114, 126, 128, 129, 122, 118, 123, 118, 108, 145, 131, 124, 116, 116, 124, 131, 129, 143, 133, 122, 124, 101, 111, 117, 141, 130, 114, 145, 122, 122, 123, 132, 130, 118, 139, 113, 123, 133, 110, 146, 128, 102, 111, 131, 121, 124, 129, 144, 134, 121, 129, 125, 124, 147, 119, 151, 152, 111, 135, 103, 126, 120, 126, 141, 122, 113, 139, 122, 127, 137, 122, 121, 130, 121, 132, 141, 132, 128, 120, 144, 120, 134, 111, 124, 131, 129, 112, 128, 108, 122, 120, 135, 108, 149, 149, 127, 109, 118, 116, 131, 134, 112, 117, 122, 120, 121, 134, 115, 133, 142, 130, 122, 141, 117, 120, 142, 136, 139, 147, 153, 139, 126, 127, 119, 140, 127, 127, 116, 119, 126, 127, 113, 126, 114, 124, 125, 133, 111, 113, 120, 100, 134, 117, 132, 129, 131, 131, 131, 129, 140, 110, 129, 127, 125, 132, 136, 140, 130, 135, 121, 136, 136, 105, 134, 125, 139, 161, 109, 127, 124, 126, 137, 115, 135, 137, 114, 117, 100, 123, 127, 137, 141, 141, 131, 135, 110, 119, 133, 140, 112, 116, 157, 124, 110, 115, 101, 130, 124, 136, 121, 125, 129, 123, 125, 116, 103, 110, 123, 115, 121, 118, 127, 108, 128, 132, 119, 119, 126, 122, 111, 125, 120, 126, 126, 127, 132, 133, 128, 125, 115, 133, 121, 117, 126, 141, 123, 120, 151, 132, 119, 110, 124, 117, 126, 116, 121, 135, 113, 135, 115, 114, 110, 122, 118, 112, 125, 120, 127, 154, 153, 120, 116, 130, 137, 115, 118, 114, 115, 114, 126, 133, 121, 120, 130, 124, 127, 116, 109, 106, 120, 129, 129, 120, 107, 124, 123, 115, 123, 128, 127, 120, 128, 130, 115, 141, 110, 150, 122, 130, 130, 116, 135, 122, 123, 132, 125, 129, 137, 142, 131, 140, 121, 137, 143, 118, 117, 128, 150, 114, 127, 120, 122, 131, 117, 136, 120, 102, 119, 121, 122, 110, 108, 145, 137, 129, 125, 131, 133, 133, 125, 136, 124, 138, 125, 115, 151, 125, 133, 146, 136, 132, 134, 116, 104, 117, 127, 133, 113, 112, 122, 130, 135, 119, 115, 127, 128, 129, 113, 128, 118, 124, 130, 133, 130, 111, 121, 114, 131, 129, 119, 121, 133, 132, 126, 135, 131, 123, 113, 107, 145, 126, 109, 135, 143, 130, 103, 144, 114, 140, 137, 112, 129, 122, 132, 145, 109, 158, 127, 131, 126, 117, 128, 139, 134, 128, 104, 126, 135, 133, 132, 112, 122, 127, 98, 110, 131, 117, 127, 124, 128, 138, 124, 117, 139, 140, 142, 134, 112, 120, 119, 124, 130, 136, 125, 117, 142, 130, 136, 115, 116, 130, 125, 142, 131, 124, 138, 146, 107, 137, 115, 128, 118, 122, 116, 124, 108, 133, 135, 132, 119, 135, 136, 104, 130, 143, 111, 134, 109, 119, 147, 119, 122, 145, 105, 120, 136, 121, 116, 130, 121, 140, 167, 116, 130, 135, 144, 127, 110, 119, 117, 139, 136, 118, 120, 126, 138, 118, 102, 122, 127, 124, 121, 131, 136, 133, 120, 124, 127, 125, 129, 129, 120, 133, 124, 115, 111, 126, 137, 132, 116, 125, 147, 117, 144, 126, 115, 106, 123, 121, 125, 124, 121, 120, 116, 109, 122, 123, 138, 119, 112, 134, 128, 128, 125, 119, 129, 141, 125, 108, 123, 105, 125, 139, 114, 127, 133, 141, 128, 108, 139, 128, 152, 123, 137, 130, 111, 123, 150, 139, 129, 127, 132, 109, 118, 123, 121, 142, 137, 120, 125, 122, 114, 126, 111, 114, 109, 115, 123, 129, 122, 133, 125, 111, 111, 131, 108, 134, 122, 121, 136, 121, 124, 116, 116, 131, 120, 134, 128, 119, 114, 107, 108, 146, 122, 126, 104, 125, 143, 131, 128, 128, 133, 131, 112, 105, 125, 121, 130, 119, 137, 128, 112, 118, 130, 133, 103, 128, 114, 122, 124, 139, 109, 125, 115, 129, 126, 126, 132, 123, 118, 130, 133, 120, 118, 137, 122, 122, 119, 108, 131, 108, 138, 136, 124, 134, 118, 134, 135, 128, 122, 134, 118, 124, 109, 119, 114, 140, 122, 126, 154, 115, 121, 114, 118, 124, 140, 116, 126, 127, 121, 131, 136, 125, 150, 119, 135, 140, 127, 107, 129, 120, 125, 120, 121, 135, 122, 124, 159, 124, 129, 136, 135, 123, 122, 128, 125, 130, 121, 143, 110, 123, 125, 109, 133, 129, 120, 115, 118, 128, 127, 129, 130, 131, 120, 129, 130, 116, 96, 129, 149, 130, 132, 131, 126, 120, 124, 136, 134, 133, 115, 125, 120, 122, 126, 125, 126, 118, 127, 139, 132, 124, 139, 119, 124, 88, 123, 106, 124, 115, 135, 117, 111, 124, 124, 114, 116, 114, 119, 128, 121, 133, 126, 108, 148, 119, 118, 122, 130, 121, 131, 116, 107, 132, 122, 125, 117, 141, 138, 117, 128, 140, 130, 113, 129, 149, 140, 117, 123, 125, 109, 113, 124, 138, 122, 119, 131, 113, 116, 129, 112, 116, 126, 130, 123, 123, 129, 122, 123, 133, 126, 124, 146, 120, 126, 131, 133, 130, 130, 118, 130, 129, 120, 127, 136, 123, 148, 117, 127, 120, 121, 133, 136, 121, 128, 124, 136, 120, 115, 135, 126, 116, 109, 107, 119, 137, 119, 152, 138, 133, 133, 100, 124, 133, 143, 120, 123, 116, 141, 123, 130, 120, 132, 120, 116, 127, 104, 130, 121, 131, 130, 142, 120, 133, 121, 129, 124, 137, 127, 134, 129, 139, 125, 117, 130, 140, 119, 113, 142, 118, 116, 127, 142, 133, 132, 108, 127, 134, 129, 116, 135, 111, 111, 122, 124, 125, 153, 111, 133, 140, 126, 121, 107, 122, 129, 133, 122, 127, 118, 141, 124, 117, 120, 132, 116, 136, 128, 132, 144, 125, 129, 133, 123, 145, 113, 126, 138, 120, 132, 103, 136, 117, 125, 136, 115, 141, 124, 121, 135, 134, 134, 119, 122, 116, 121, 125, 124, 136, 113, 106, 133, 101, 134, 139, 148, 144, 126, 123, 142, 112, 133, 126, 126, 124, 131, 139, 132, 137, 122, 130, 130, 128, 137, 118, 129, 140, 125, 136, 113, 109, 127, 129, 154, 140, 131, 113, 141, 116, 138, 120, 120, 132, 123, 116, 112, 132, 145, 122, 141, 140, 131, 133, 120, 109, 125, 108, 126, 122, 120, 127, 118, 147, 128, 147, 127, 131, 107, 116, 125, 142, 125, 112, 128, 120, 126, 117, 146, 107, 106, 123, 131, 129, 111, 97, 115, 123, 131, 119, 124, 112, 123, 114, 124, 118, 119, 123, 126, 120, 122, 117, 106, 128, 132, 113, 137, 105, 125, 146, 126, 142, 123, 122, 135, 139, 112, 139, 128, 116, 125, 109, 156, 120, 112, 127, 119, 120, 117, 116, 144, 123, 127, 131, 125, 127, 141, 126, 117, 118, 121, 138, 114, 126, 105, 108, 123, 130, 142, 124, 113, 135, 122, 142, 113, 119, 131, 131, 131, 128, 135, 108, 143, 106, 138, 122, 109, 119, 105, 148, 117, 134, 110, 118, 130, 126, 152, 128, 112, 119, 125, 131, 137, 133, 133, 109, 125, 128, 143, 125, 132, 120, 112, 132, 146, 133, 144, 143, 137, 140, 148, 141, 113, 138, 135, 123, 90, 117, 120, 121, 120, 151, 123, 124, 121, 117, 159, 126, 122, 119, 122, 117, 117, 117, 136, 114, 137, 107, 132, 125, 124, 105, 118, 127, 141, 140, 130, 137, 123, 131, 124, 135, 117, 130, 141, 120, 159, 113, 141, 117, 105, 118, 121, 134, 126, 131, 130, 133, 127, 115, 107, 121, 139, 123, 107, 129, 115, 129, 143, 128, 127, 124, 119, 117, 124, 118, 117, 135, 120, 141, 134, 122, 121, 119, 134, 116, 130, 141, 135, 121, 139, 114, 129, 127, 119, 128, 144, 123, 145, 122, 122, 125, 127, 123, 132, 115, 130, 135, 112, 145, 128, 112, 115, 118, 138, 129, 130, 129, 121, 114, 124, 123, 145, 134, 143, 120, 134, 110, 127, 119, 124, 142, 128, 118, 120, 129, 136, 147, 110, 128, 122, 132, 117, 143, 137, 121, 113, 132, 122, 141, 128, 139, 141, 113, 119, 125, 125, 118, 124, 135, 134, 129, 122, 117, 129, 142, 128, 123, 137, 120, 119, 128, 134, 127, 136, 127, 131, 130, 112, 117, 100, 125, 109, 101, 123, 126, 111, 108, 111, 122, 115, 132, 126, 102, 121, 113, 121, 111, 116, 134, 114, 115, 138, 140, 113, 121, 140, 136, 123, 116, 122, 131, 126, 124, 121, 120, 116, 150, 133, 124, 140, 125, 108, 128, 131, 115, 131, 126, 106, 138, 121, 102, 139, 113, 121, 124, 135, 114, 114, 128, 121, 117, 132, 141, 115, 136, 131, 121, 124, 129, 116, 131, 131, 128, 113, 136, 110, 124, 113, 120, 106, 125, 132, 120, 130, 106, 148, 150, 134, 108, 136, 137, 121, 134, 111, 119, 113, 134, 130, 124, 119, 135, 115, 136, 141, 107, 140, 130, 122, 126, 125, 134, 121, 143, 111, 116, 132, 128, 105, 139, 125, 128, 147, 148, 126, 118, 122, 146, 128, 130, 116, 126, 144, 132, 114, 112, 109, 125, 127, 134, 127, 128, 127, 121, 130, 110, 122, 134, 115, 130, 137, 121, 133, 126, 129, 157, 118, 122, 129, 131, 142, 121, 123, 133, 131, 123, 118, 120, 117, 129, 118, 134, 125, 126, 129, 110, 149, 124, 119, 148, 139, 131, 115, 120, 122, 122, 150, 119, 121, 118, 154, 131, 137, 117, 135, 128, 141, 111, 118, 116, 134, 115, 130, 103, 100, 131, 118, 126, 135, 116, 109, 132, 129, 122, 140, 145, 126, 135, 132, 130, 125, 112, 131, 115, 138, 113, 122, 138, 121, 137, 141, 127, 100, 119, 117, 124, 131, 133, 128, 112, 137, 116, 106, 138, 118, 141, 129, 125, 121, 129, 130, 114, 129, 150, 146, 112, 126, 137, 123, 124, 104, 118, 145, 112, 123, 133, 125, 125, 138, 115, 132, 135, 131, 129, 126, 116, 137, 118, 119, 110, 133, 130, 132, 129, 133, 113, 115, 135, 117, 128, 110, 130, 113, 112, 138, 107, 130, 122, 109, 112, 132, 121, 114, 125, 107, 115, 131, 130, 119, 124, 138, 116, 131, 125, 122, 124, 110, 125, 120, 111, 135, 127, 106, 120, 141, 136, 130, 116, 128, 112, 130, 131, 114, 107, 127, 120, 122, 132, 108, 136, 117, 112, 118, 119, 107, 138, 116, 126, 124, 109, 132, 130, 121, 115, 128, 132, 120, 126, 128, 125, 120, 141, 119, 115, 111, 125, 136, 137, 121, 118, 128, 105, 130, 144, 117, 110, 118, 121, 109, 127, 145, 119, 119, 134, 120, 142, 104, 129, 112, 129, 114, 132, 120, 129, 137, 122, 135, 120, 116, 118, 116, 138, 131, 114, 122, 104, 120, 126, 125, 129, 131, 129, 138, 126, 110, 117, 135, 122, 126, 130, 134, 128, 132, 119, 117, 136, 123, 114, 128, 108, 112, 118, 126, 127, 126, 121, 122, 130, 113, 115, 125, 119, 124, 125, 118, 124, 134, 129, 120, 128, 127, 115, 123, 142, 115, 120, 109, 123, 128, 115, 127, 109, 114, 104, 133, 119, 122, 108, 118, 103, 135, 137, 128, 131, 131, 138, 110, 126, 126, 125, 122, 119, 117, 129, 106, 128, 122, 128, 114, 125, 117, 118, 127, 124, 119, 127, 109, 127, 120, 101, 111, 126, 118, 123, 103, 113, 137, 120, 140, 131, 122, 124, 131, 114, 124, 117, 96, 124, 147, 123, 123, 120, 109, 122, 124, 117, 124, 111, 116, 127, 140, 139, 116, 132, 150, 126, 114, 128, 112, 120, 121, 124, 123, 129, 128, 121, 142, 150, 109, 145, 113, 144, 128, 123, 141, 119, 128, 141, 107, 131, 116, 113, 124, 118, 107, 118, 135, 143, 128, 118, 126, 126, 118, 117, 127, 123, 119, 132, 144, 104, 125, 143, 124, 143, 119, 127, 121, 108, 110, 110, 141, 124, 136, 136, 123, 126, 150, 139, 127, 127, 132, 133, 125, 135, 136, 131, 111, 100, 114, 107, 125, 118, 139, 124, 115, 126, 115, 118, 142, 120, 125, 136, 132, 135, 130, 143, 134, 149, 131, 123, 122, 106, 119, 125, 111, 115, 109, 114, 125, 113, 133, 123, 126, 119, 113, 118, 125, 118, 118, 119, 147, 125, 142, 126, 124, 123, 126, 126, 125, 113, 127, 137, 132, 114, 125, 136, 116, 134, 123, 132, 134, 123, 119, 107, 124, 122, 105, 138, 120, 129, 118, 124, 110, 133, 135, 135, 122, 125, 140, 118, 152, 111, 146, 112, 123, 128, 141, 130, 113, 133, 115, 106, 130, 124, 118, 107, 122, 138, 123, 119, 115, 132, 123, 127, 129, 106, 120, 118, 119, 124, 122, 128, 140, 106, 117, 139, 125, 123, 115, 98, 132, 130, 125, 134, 129, 119, 123, 123, 149, 141, 131, 112, 129, 119, 115, 124, 131, 115, 118, 116, 146, 124, 115, 119, 130, 122, 125, 120, 127, 126, 111, 115, 121, 124, 110, 118, 100, 144, 139, 118, 130, 141, 132, 138, 135, 143, 125, 120, 111, 108, 123, 135, 142, 119, 121, 121, 133, 121, 118, 123, 117, 125, 133, 116, 132, 166, 123, 140, 140, 114, 112, 123, 136, 116, 116, 115, 132, 142, 118, 127, 118, 135, 138, 133, 127, 121, 129, 135, 125, 128, 129, 132, 133, 131, 118, 126, 135, 116, 124, 122, 128, 126, 134, 114, 120, 128, 135, 128, 137, 125, 117, 134, 125, 133, 129, 121, 132, 121, 139, 122, 110, 126, 141, 129, 125, 141, 138, 146, 117, 115, 137, 125, 122, 106, 128, 126, 123, 125, 138, 136, 129, 118, 125, 131, 140, 143, 124, 105, 129, 131, 131, 139, 137, 123, 126, 120, 125, 125, 147, 134, 129, 149, 103, 143, 112, 126, 141, 123, 133, 122, 131, 140, 115, 115, 144, 126, 140, 135, 138, 134, 126, 118, 133, 124, 131, 131, 105, 125, 135, 134, 125, 140, 120, 113, 136, 123, 133, 117, 127, 125, 115, 135, 128, 125, 122, 104, 127, 129, 122, 120, 128, 133, 129, 123, 121, 116, 139, 123, 129, 120, 124, 114, 114, 135, 127, 119, 140, 121, 109, 113, 135, 140, 131, 120, 144, 122, 102, 130, 131, 126, 137, 118, 121, 115, 112, 111, 105, 136, 133, 124, 141, 143, 135, 128, 121, 130, 121, 113, 134, 128, 124, 135, 145, 120, 124, 135, 137, 119, 114, 125, 131, 122, 121, 136, 139, 148, 118, 107, 119, 123, 107, 143, 134, 127, 138, 133, 137, 119, 117, 137, 148, 140, 142, 130, 119, 111, 129, 129, 130, 125, 126, 110, 125, 134, 133, 113, 137, 126, 133, 120, 116, 128, 152, 131, 122, 148, 104, 96, 133, 125, 121, 122, 130, 130, 126, 129, 113, 135, 141, 128, 150, 120, 123, 120, 123, 126, 117, 133, 114, 140, 120, 125, 110, 137, 122, 138, 115, 131, 118, 122, 124, 130, 147, 126, 134, 111, 126, 133, 138, 129, 126, 121, 122, 130, 133, 129, 124, 121, 128, 122, 133, 114, 131, 119, 127, 125, 134, 121, 121, 150, 127, 108, 121, 120, 143, 139, 120, 132, 137, 114, 129, 105, 115, 138, 126, 123, 135, 121, 118, 120, 130, 125, 112, 132, 141, 129, 140, 128, 134, 113, 134, 119, 133, 117, 129, 133, 124, 132, 116, 137, 125, 140, 121, 125, 118, 122, 119, 119, 125, 121, 110, 123, 131, 137, 144, 124, 121, 129, 123, 125, 135, 117, 128, 121, 118, 127, 141, 118, 128, 120, 115, 135, 137, 126, 129, 122, 134, 121, 137, 113, 126, 132, 125, 118, 134, 140, 120, 125, 131, 119, 120, 128, 111, 144, 117, 139, 118, 127, 122, 122, 130, 120, 130, 115, 116, 122, 121, 133, 142, 122, 139, 134, 134, 117, 116, 121, 128, 92, 117, 127, 117, 108, 122, 123, 111, 127, 122, 107, 147, 145, 113, 134, 126, 134, 121, 139, 114, 145, 134, 126, 133, 109, 111, 113, 123, 126, 124, 128, 133, 122, 125, 122, 124, 145, 133, 124, 106, 137, 124, 106, 121, 128, 117, 128, 133, 135, 133, 111, 127, 143, 133, 117, 120, 128, 130, 83, 109, 149, 117, 115, 117, 145, 139, 134, 118, 118, 124, 118, 130, 135, 134, 122, 128, 128, 129, 115, 101, 122, 115, 125, 120, 134, 117, 126, 127, 138, 115, 129, 136, 132, 124, 136, 119, 117, 128, 102, 122, 117, 123, 139, 118, 125, 124, 108, 138, 123, 115, 114, 123, 120, 129, 132, 141, 122, 136, 130, 132, 133, 124, 120, 140, 122, 131, 126, 134, 131, 126, 117, 127, 122, 126, 150, 119, 143, 119, 132, 117, 120, 128, 128, 134, 133, 121, 117, 117, 123, 122, 129, 115, 125, 123, 130, 118, 118, 110, 123, 120, 125, 138, 124, 116, 119, 127, 121, 138, 129, 124, 125, 133, 113, 120, 110, 130, 110, 113, 117, 125, 123, 129, 137, 125, 135, 136, 120, 123, 122, 127, 118, 135, 130, 117, 132, 112, 130, 137, 107, 139, 124, 128, 127, 122, 134, 122, 129, 139, 125, 136, 112, 124, 131, 102, 123, 119, 107, 120, 130, 133, 128, 135, 123, 115, 117, 141, 135, 134, 116, 127, 131, 134, 121, 116, 128, 130, 118, 129, 125, 125, 129, 125, 132, 119, 137, 116, 120, 108, 142, 118, 119, 125, 125, 131, 130, 152, 119, 126, 126, 114, 132, 135, 125, 120, 127, 132, 134, 131, 125, 144, 121, 128, 115, 132, 124, 124, 124, 133, 124, 127, 113, 120, 142, 114, 125, 122, 123, 130, 115, 133, 124, 122, 132, 115, 120, 130, 120, 135, 136, 125, 134, 104, 120, 119, 134, 113, 129, 91, 127, 129, 121, 123, 118, 139, 129, 132, 117, 121, 123, 121, 115, 117, 124, 142, 116, 111, 137, 119, 117, 122, 130, 116, 119, 123, 122, 137, 123, 133, 112, 123, 148, 119, 134, 130, 126, 150, 129, 109, 135, 111, 138, 144, 129, 120, 109, 126, 145, 118, 125, 115, 130, 133, 118, 127, 124, 123, 122, 115, 122, 114, 111, 120, 119, 121, 125, 126, 121, 128, 106, 132, 109, 138, 125, 140, 126, 119, 103, 118, 135, 128, 112, 110, 127, 138, 135, 121, 119, 131, 123, 134, 127, 114, 122, 120, 131, 123, 129, 128, 129, 138, 139, 128, 135, 119, 128, 123, 130, 124, 127, 113, 115, 144, 116, 123, 131, 135, 128, 132, 128, 121, 128, 116, 134, 145, 116, 122, 115, 117, 113, 111, 123, 115, 113, 137, 116, 143, 139, 132, 132, 125, 133, 134, 126, 118, 116, 141, 117, 149, 140, 121, 128, 119, 136, 124, 125, 118, 113, 129, 135, 130, 130, 138, 119, 143, 140, 116, 120, 131, 132, 117, 129, 119, 135, 132, 110, 132, 107, 110, 111, 113, 123, 125, 135, 140, 134, 118, 135, 134, 125, 152, 125, 128, 130, 119, 123, 137, 108, 134, 129, 133, 115, 120, 138, 93, 125, 116, 123, 126, 151, 127, 121, 145, 121, 115, 135, 133, 127, 127, 133, 128, 119, 125, 120, 139, 137, 129, 121, 144, 135, 135, 133, 129, 125, 109, 126, 127, 133, 127, 123, 117, 124, 137, 122, 123, 118, 120, 129, 115, 123, 136, 118, 128, 126, 125, 127, 124, 122, 129, 134, 119, 135, 126, 138, 128, 124, 126, 137, 128, 118, 118, 128, 140, 122, 121, 122, 116, 115, 122, 125, 129, 132, 125, 119, 139, 137, 128, 115, 124, 131, 118, 136, 122, 130, 123, 120, 129, 130, 118, 131, 124, 132, 117, 124, 138, 129, 135, 104, 116, 121, 124, 121, 122, 130, 127, 132, 139, 124, 102, 119, 152, 128, 135, 114, 110, 131, 124, 127, 131, 125, 126, 139, 134, 120, 126, 117, 135, 128, 112, 127, 118, 121, 156, 140, 125, 132, 124, 120, 130, 124, 131, 124, 133, 118, 105, 126, 121, 140, 132, 121, 111, 114, 115, 117, 124, 129, 139, 136, 120, 108, 144, 127, 124, 150, 136, 113, 113, 136, 139, 137, 143, 119, 129, 128, 121, 147, 118, 111, 122, 136, 132, 125, 124, 132, 116, 120, 129, 141, 124, 140, 130, 115, 120, 121, 159, 115, 146, 128, 123, 111, 122, 134, 96, 123, 108, 121, 121, 126, 118, 127, 115, 118, 129, 130, 130, 115, 114, 106, 120, 144, 125, 116, 126, 119, 133, 126, 122, 116, 125, 128, 134, 117, 133, 136, 116, 130, 133, 128, 103, 119, 126, 134, 129, 120, 128, 119, 134, 132, 132, 127, 109, 126, 136, 119, 131, 125, 119, 118, 132, 129, 120, 126, 141, 123, 126, 114, 135, 118, 125, 111, 112, 126, 131, 121, 117, 105, 121, 130, 120, 139, 123, 132, 123, 121, 116, 125, 125, 142, 139, 122, 125, 128, 118, 125, 120, 131, 131, 111, 130, 126, 129, 137, 124, 123, 123, 133, 117, 130, 128, 127, 125, 127, 126, 105, 115, 119, 106, 120, 134, 122, 110, 127, 132, 125, 125, 123, 119, 123, 139, 102, 130, 124, 128, 132, 132, 132, 134, 133, 132, 110, 123, 121, 121, 125, 110, 123, 122, 113, 125, 127, 124, 134, 122, 127, 123, 133, 117, 123, 126, 129, 135, 124, 125, 134, 135, 124, 122, 132, 121, 119, 122, 134, 145, 131, 128, 120, 121, 106, 130, 131, 130, 115, 123, 129, 131, 133, 111, 126, 120, 116, 108, 132, 119, 130, 136, 129, 122, 121, 125, 123, 127, 143, 110, 136, 103, 127, 134, 123, 121, 130, 134, 134, 136, 123, 124, 138, 118, 139, 132, 130, 114, 139, 119, 125, 127, 123, 122, 131, 135, 119, 115, 126, 124, 133, 105, 134, 138, 115, 131, 129, 109, 122, 132, 134, 113, 119, 137, 120, 118, 126, 128, 121, 135, 130, 125, 134, 135, 124, 118, 150, 131, 119, 138, 130, 126, 130, 125, 124, 127, 124, 122, 128, 133, 137, 129, 125, 125, 145, 116, 127, 118, 134, 138, 118, 127, 115, 131, 123, 133, 118, 132, 146, 119, 132, 104, 132, 99, 126, 124, 134, 120, 150, 141, 116, 125, 108, 137, 127, 132, 123, 113, 118, 136, 132, 126, 129, 122, 130, 106, 125, 118, 104, 129, 125, 123, 134, 128, 135, 125, 124, 110, 128, 120, 132, 123, 131, 124, 132, 131, 120, 133, 143, 134, 136, 126, 125, 119, 125, 125, 107, 122, 124, 126, 111, 132, 122, 124, 121, 127, 118, 147, 119, 140, 150, 133, 142, 119, 130, 111, 117, 134, 119, 108, 120, 128, 121, 133, 117, 141, 142, 114, 122, 122, 110, 127, 104, 129, 143, 136, 133, 149, 129, 134, 117, 121, 149, 131, 150, 138, 126, 120, 140, 129, 103, 150, 119, 130, 126, 130, 120, 115, 135, 128, 129, 123, 123, 123, 125, 138, 115, 111, 111, 105, 139, 117, 107, 117, 120, 115, 126, 128, 128, 154, 142, 120, 116, 122, 116, 129, 121, 125, 129, 118, 128, 133, 130, 123, 131, 108, 138, 129, 137, 115, 140, 128, 113, 128, 123, 148, 131, 106, 118, 103, 121, 139, 134, 134, 119, 132, 130, 120, 124, 99, 129, 124, 105, 123, 129, 115, 120, 136, 101, 128, 115, 123, 111, 137, 118, 146, 113, 131, 114, 121, 123, 137, 108, 121, 133, 127, 113, 137, 129, 124, 129, 133, 128, 137, 135, 132, 129, 118, 117, 122, 136, 130, 141, 129, 116, 107, 128, 111, 122, 133, 142, 145, 125, 120, 110, 114, 139, 124, 129, 117, 140, 128, 115, 132, 128, 117, 113, 116, 108, 128, 145, 128, 136, 120, 121, 123, 119, 135, 121, 146, 124, 123, 114, 115, 133, 122, 140, 126, 116, 133, 139, 116, 133, 129, 115, 142, 146, 122, 129, 134, 143, 152, 123, 103, 128, 120, 141, 134, 130, 129, 112, 124, 129, 123, 123, 133, 116, 137, 127, 123, 105, 114, 120, 144, 132, 119, 107, 119, 151, 119, 132, 119, 137, 114, 124, 133, 124, 124, 118, 123, 141, 138, 133, 127, 140, 135, 126, 123, 116, 116, 147, 107, 124, 131, 109, 117, 126, 101, 114, 120, 117, 128, 127, 113, 116, 127, 124, 116, 142, 128, 119, 123, 150, 126, 110, 110, 122, 118, 127, 123, 131, 144, 133, 120, 128, 106, 135, 118, 118, 130, 155, 140, 118, 132, 156, 117, 120, 122, 122, 140, 130, 117, 112, 122, 127, 145, 128, 119, 113, 120, 120, 130, 129, 130, 112, 140, 117, 124, 133, 119, 125, 133, 132, 138, 120, 109, 105, 129, 138, 134, 124, 127, 137, 145, 120, 119, 118, 113, 129, 114, 131, 146, 112, 121, 114, 130, 129, 118, 102, 137, 131, 106, 128, 127, 126, 117, 121, 122, 141, 132, 118, 119, 123, 125, 131, 111, 135, 130, 115, 147, 134, 136, 126, 132, 115, 107, 134, 141, 120, 116, 100, 128, 146, 120, 123, 113, 122, 129, 122, 135, 128, 120, 141, 129, 141, 118, 115, 122, 114, 119, 128, 102, 125, 113, 118, 122, 153, 116, 133, 123, 122, 108, 130, 149, 129, 145, 132, 125, 118, 109, 117, 112, 134, 133, 130, 116, 117, 136, 125, 144, 125, 116, 105, 120, 139, 104, 128, 145, 121, 138, 130, 130, 129, 128, 136, 132, 126, 110, 129, 110, 119, 138, 111, 117, 115, 119, 131, 127, 137, 116, 131, 117, 136, 122, 115, 113, 137, 118, 128, 117, 125, 124, 119, 141, 134, 130, 139, 122, 128, 113, 140, 123, 118, 120, 130, 111, 108, 135, 113, 128, 134, 118, 131, 124, 112, 120, 123, 124, 125, 127, 122, 121, 143, 140, 139, 162, 127, 112, 119, 128, 121, 124, 119, 127, 127, 138, 131, 116, 121, 122, 127, 137, 95, 140, 135, 131, 123, 129, 120, 152, 106, 120, 127, 124, 135, 123, 128, 104, 126, 132, 121, 136, 135, 87, 119, 122, 114, 133, 122, 129, 125, 136, 137, 114, 118, 126, 106, 139, 123, 147, 121, 145, 122, 118, 115, 135, 116, 107, 119, 116, 131, 127, 114, 136, 121, 140, 129, 105, 134, 135, 125, 123, 126, 102, 131, 120, 119, 122, 141, 130, 128, 116, 136, 135, 113, 107, 148, 133, 146, 109, 118, 134, 120, 117, 151, 97, 120, 129, 134, 123, 129, 123, 136, 135, 133, 116, 130, 134, 130, 110, 118, 121, 115, 124, 122, 108, 104, 118, 120, 124, 130, 121, 123, 131, 125, 140, 113, 132, 137, 115, 152, 130, 116, 148, 128, 123, 102, 127, 121, 120, 143, 113, 124, 135, 128, 128, 151, 128, 117, 103, 127, 135, 113, 115, 139, 116, 133, 140, 126, 132, 121, 118, 109, 135, 121, 118, 114, 129, 107, 125, 147, 132, 131, 134, 88, 116, 129, 124, 122, 117, 121, 114, 119, 119, 123, 112, 134, 133, 140, 125, 133, 139, 128, 144, 127, 118, 117, 123, 114, 117, 130, 128, 126, 136, 126, 129, 132, 144, 121, 126, 140, 118, 137, 125, 129, 133, 117, 119, 121, 118, 144, 138, 133, 135, 120, 110, 124, 117, 122, 127, 112, 130, 113, 125, 130, 120, 129, 116, 140, 110, 138, 153, 106, 126, 126, 116, 130, 129, 107, 116, 128, 109, 124, 135, 116, 136, 131, 119, 119, 131, 124, 128, 125, 110, 117, 132, 124, 104, 144, 130, 132, 127, 149, 131, 140, 138, 128, 109, 124, 117, 131, 114, 98, 117, 124, 123, 131, 119, 143, 106, 124, 130, 144, 122, 129, 113, 133, 115, 120, 123, 103, 126, 119, 112, 121, 128, 120, 134, 110, 122, 115, 114, 121, 123, 135, 136, 117, 139, 123, 118, 124, 126, 128, 134, 121, 115, 121, 101, 132, 111, 108, 119, 136, 149, 125, 148, 125, 109, 127, 119, 121, 121, 123, 126, 142, 121, 107, 126, 122, 112, 115, 142, 135, 134, 118, 103, 119, 116, 115, 125, 129, 121, 121, 123, 158, 127, 122, 109, 120, 131, 112, 117, 127, 121, 126, 129, 124, 105, 162, 123, 120, 145, 134, 97, 134, 116, 117, 130, 118, 129, 127, 118, 119, 135, 123, 121, 109, 132, 124, 139, 142, 128, 134, 149, 101, 144, 108, 125, 123, 116, 132, 110, 137, 120, 129, 124, 129, 130, 124, 133, 124, 134, 131, 130, 121, 123, 108, 121, 117, 139, 124, 119, 115, 119, 138, 129, 128, 113, 124, 119, 106, 106, 135, 120, 124, 131, 115, 110, 129, 130, 118, 143, 138, 111, 119, 122, 137, 128, 144, 129, 133, 131, 116, 131, 115, 133, 127, 124, 131, 132, 133, 111, 128, 114, 123, 130, 129, 132, 127, 108, 140, 137, 128, 113, 114, 107, 136, 134, 131, 108, 127, 117, 132, 134, 132, 139, 142, 126, 119, 119, 119, 138, 120, 132, 113, 112, 125, 120, 124, 131, 125, 135, 145, 108, 122, 124, 112, 125, 123, 138, 129, 119, 126, 122, 124, 142, 139, 128, 116, 117, 129, 128, 131, 125, 117, 121, 150, 118, 129, 125, 119, 126, 120, 130, 131, 129, 133, 118, 141, 134, 118, 142, 127, 124, 125, 118, 112, 133, 127, 130, 144, 133, 133, 124, 119, 138, 132, 117, 125, 128, 120, 120, 108, 117, 123, 104, 118, 122, 118, 136, 128, 123, 131, 122, 133, 126, 99, 124, 119, 136, 119, 114, 128, 134, 124, 124, 135, 129, 126, 134, 125, 135, 124, 124, 132, 135, 117, 129, 121, 122, 117, 121, 106, 125, 127, 124, 115, 117, 110, 124, 117, 124, 113, 127, 129, 119, 125, 134, 116, 143, 118, 130, 119, 125, 128, 123, 126, 114, 130, 128, 125, 137, 106, 119, 122, 132, 134, 96, 120, 118, 122, 110, 136, 119, 120, 129, 131, 133, 128, 140, 134, 136, 104, 137, 135, 126, 118, 138, 134, 126, 129, 124, 132, 118, 138, 131, 119, 132, 140, 115, 129, 120, 114, 133, 106, 128, 118, 122, 120, 120, 111, 135, 132, 120, 155, 127, 131, 132, 113, 133, 129, 123, 146, 116, 132, 118, 141, 121, 123, 107, 130, 121, 132, 121, 114, 124, 120, 125, 119, 129, 125, 131, 118, 115, 127, 115, 104, 110, 132, 122, 131, 124, 117, 123, 131, 120, 128, 131, 122, 118, 117, 124, 141, 133, 136, 136, 118, 112, 124, 119, 116, 118, 103, 113, 120, 130, 129, 129, 141, 151, 116, 122, 138, 128, 131, 107, 112, 128, 128, 131, 134, 104, 127, 129, 121, 121, 123, 129, 121, 124, 112, 132, 124, 134, 109, 136, 108, 126, 108, 113, 111, 132, 122, 141, 127, 107, 126, 129, 122, 133, 127, 153, 128, 117, 135, 126, 124, 118, 134, 121, 134, 130, 123, 120, 148, 124, 103, 132, 122, 115, 126, 125, 104, 129, 124, 130, 131, 128, 126, 120, 151, 121, 118, 122, 132, 119, 117, 124, 121, 127, 135, 116, 131, 125, 133, 121, 126, 131, 123, 146, 126, 137, 137, 123, 102, 125, 133, 105, 104, 123, 105, 113, 117, 125, 120, 119, 111, 126, 128, 126, 126, 148, 132, 119, 130, 116, 113, 115, 139, 141, 111, 134, 128, 152, 111, 115, 125, 129, 129, 119, 123, 109, 119, 132, 135, 116, 127, 126, 125, 116, 149, 111, 124, 142, 126, 141, 113, 132, 127, 120, 134, 127, 132, 127, 134, 120, 128, 133, 138, 125, 130, 131, 115, 114, 127, 107, 108, 129, 116, 119, 132, 132, 128, 126, 132, 128, 126, 123, 131, 135, 118, 130, 128, 127, 132, 107, 127, 140, 125, 114, 137, 124, 134, 125, 115, 131, 119, 125, 107, 128, 134, 124, 122, 130, 125, 136, 113, 116, 144, 131, 107, 120, 133, 129, 130, 122, 120, 127, 124, 139, 127, 136, 141, 128, 123, 141, 128, 107, 120, 128, 126, 128, 112, 122, 130, 128, 115, 133, 123, 124, 130, 131, 116, 138, 136, 121, 134, 116, 126, 139, 121, 134, 119, 124, 134, 126, 118, 134, 138, 128, 122, 123, 102, 136, 140, 119, 129, 127, 146, 123, 124, 109, 126, 123, 120, 125, 130, 129, 128, 116, 138, 125, 126, 133, 132, 125, 134, 132, 110, 126, 134, 109, 131, 120, 115, 122, 137, 115, 131, 132, 125, 129, 122, 141, 102, 113, 114, 122, 136, 133, 125, 151, 131, 126, 120, 134, 127, 133, 138, 132, 148, 126, 121, 120, 125, 121, 122, 131, 114, 136, 141, 128, 121, 118, 124, 122, 138, 120, 130, 113, 119, 127, 131, 128, 122, 125, 124, 125, 107, 142, 119, 114, 136, 122, 123, 136, 119, 138, 140, 135, 127, 128, 131, 115, 141, 128, 132, 131, 127, 133, 119, 118, 137, 120, 133, 111, 113, 115, 121, 139, 134, 116, 119, 121, 128, 119, 115, 115, 132, 126, 139, 129, 159, 116, 142, 114, 105, 137, 133, 135, 121, 137, 141, 109, 135, 131, 122, 123, 116, 115, 115, 121, 140, 128, 129, 115, 127, 126, 117, 122, 140, 130, 126, 119, 150, 121, 129, 120, 118, 122, 126, 119, 106, 120, 140, 116, 108, 128, 124, 128, 112, 126, 125, 132, 156, 127, 114, 117, 132, 110, 111, 131, 109, 127, 129, 109, 127, 115, 131, 122, 119, 123, 137, 131, 148, 143, 132, 130, 121, 119, 126, 139, 126, 120, 130, 129, 104, 128, 122, 144, 126, 132, 120, 126, 121, 126, 115, 132, 125, 111, 133, 143, 120, 114, 123, 122, 129, 133, 118, 133, 134, 130, 128, 113, 134, 132, 120, 134, 114, 118, 135, 131, 105, 131, 132, 132, 117, 132, 122, 126, 124, 116, 123, 113, 122, 140, 118, 134, 137, 118, 115, 126, 123, 118, 107, 129, 123, 136, 128, 120, 131, 123, 121, 128, 122, 121, 119, 113, 113, 128, 114, 120, 128, 128, 129, 133, 129, 123, 130, 101, 132, 114, 125, 107, 125, 116, 126, 131, 140, 134, 122, 127, 142, 142, 138, 135, 126, 136, 131, 119, 115, 118, 114, 115, 119, 131, 128, 112, 131, 119, 137, 143, 124, 149, 132, 117, 128, 131, 137, 138, 119, 109, 116, 118, 123, 131, 106, 123, 105, 132, 120, 131, 117, 128, 127, 122, 130, 98, 121, 117, 120, 113, 126, 118, 108, 127, 113, 130, 131, 127, 128, 112, 121, 130, 137, 131, 135, 135, 134, 119, 122, 115, 119, 121, 129, 134, 116, 121, 146, 134, 111, 136, 141, 128, 112, 127, 117, 123, 143, 129, 144, 145, 101, 122, 112, 119, 119, 121, 119, 128, 138, 123, 106, 127, 129, 125, 124, 125, 138, 132, 122, 138, 125, 129, 123, 127, 119, 112, 117, 120, 137, 122, 135, 140, 130, 133, 126, 140, 115, 140, 116, 118, 122, 124, 99, 125, 116, 121, 116, 135, 144, 96, 122, 116, 128, 111, 115, 126, 131, 122, 121, 114, 128, 117, 123, 119, 134, 129, 131, 114, 139, 121, 131, 118, 126, 110, 129, 127, 127, 136, 130, 135, 126, 134, 152, 119, 138, 135, 130, 116, 137, 118, 134, 128, 118, 137, 122, 123, 160, 131, 128, 126, 112, 106, 126, 120, 136, 124, 103, 139, 127, 113, 125, 128, 131, 113, 132, 135, 135, 119, 132, 113, 128, 118, 126, 126, 129, 125, 134, 109, 130, 133, 122, 127, 124, 131, 122, 134, 113, 130, 122, 138, 141, 116, 109, 127, 127, 129, 113, 132, 143, 105, 108, 111, 127, 109, 126, 116, 116, 113, 135, 127, 123, 114, 131, 139, 139, 104, 121, 120, 143, 123, 103, 135, 134, 124, 108, 145, 128, 125, 111, 129, 112, 129, 116, 122, 105, 128, 107, 116, 131, 140, 151, 117, 124, 113, 128, 108, 135, 128, 118, 117, 133, 127, 133, 107, 114, 118, 126, 117, 139, 97, 108, 127, 136, 134, 116, 116, 132, 119, 141, 119, 116, 132, 126, 134, 128, 105, 136, 123, 123, 104, 127, 134, 131, 105, 117, 149, 137, 122, 133, 149, 128, 132, 120, 113, 115, 121, 111, 114, 133, 130, 120, 122, 120, 124, 121, 142, 145, 138, 126, 118, 115, 125, 110, 164, 128, 144, 110, 111, 120, 120, 141, 119, 145, 125, 121, 141, 107, 117, 124, 115, 141, 148, 118, 148, 124, 129, 115, 123, 138, 134, 119, 133, 118, 117, 131, 131, 139, 118, 126, 115, 128, 117, 132, 112, 120, 148, 124, 119, 121, 140, 130, 131, 108, 126, 131, 116, 119, 127, 108, 143, 133, 137, 130, 120, 125, 125, 139, 126, 127, 88, 129, 128, 118, 129, 143, 124, 125, 118, 122, 124, 120, 113, 127, 135, 130, 119, 121, 105, 121, 114, 128, 121, 115, 134, 122, 111, 120, 120, 127, 146, 140, 117, 131, 124, 122, 120, 129, 114, 129, 152, 123, 116, 123, 129, 121, 122, 117, 127, 130, 131, 122, 139, 137, 137, 130, 127, 145, 116, 115, 124, 137, 133, 128, 105, 119, 120, 126, 125, 124, 129, 127, 105, 121, 144, 134, 138, 147, 123, 127, 108, 110, 122, 125, 125, 119, 114, 113, 101, 113, 120, 126, 138, 135, 132, 120, 133, 125, 125, 140, 112, 126, 115, 137, 119, 120, 120, 134, 122, 125, 102, 148, 137, 128, 121, 134, 120, 116, 127, 127, 119, 119, 131, 118, 139, 119, 116, 120, 110, 131, 121, 124, 118, 130, 133, 137, 139, 132, 123, 129, 140, 118, 128, 145, 125, 124, 137, 126, 135, 122, 127, 117, 127, 112, 125, 126, 133, 115, 119, 126, 111, 122, 131, 134, 122, 126, 118, 121, 118, 145, 115, 118, 139, 107, 131, 129, 125, 141, 130, 124, 111, 139, 126, 141, 140, 127, 129, 137, 115, 127, 129, 104, 127, 130, 142, 127, 118, 143, 132, 130, 123, 143, 107, 126, 127, 121, 106, 122, 117, 129, 129, 129, 127, 115, 141, 126, 121, 150, 138, 115, 128, 109, 121, 123, 129, 113, 134, 128, 135, 134, 127, 117, 118, 138, 107, 125, 129, 135, 126, 110, 129, 109, 119, 120, 124, 129, 140, 123, 127, 128, 127, 130, 140, 128, 122, 123, 115, 123, 126, 125, 127, 123, 94, 119, 116, 117, 119, 123, 144, 104, 130, 132, 127, 119, 123, 124, 121, 127, 107, 129, 120, 132, 124, 142, 127, 134, 119, 109, 136, 132, 101, 121, 130, 148, 136, 103, 121, 114, 109, 142, 119, 131, 121, 119, 118, 107, 112, 136, 115, 124, 137, 128, 111, 112, 127, 116, 133, 127, 123, 124, 126, 116, 119, 127, 118, 141, 164, 142, 154, 142, 121, 127, 102, 117, 114, 114, 134, 126, 142, 140, 117, 126, 121, 129, 127, 109, 137, 125, 129, 134, 120, 131, 128, 135, 114, 134, 135, 127, 126, 146, 130, 144, 135, 124, 137, 113, 122, 127, 126, 132, 114, 120, 119, 117, 140, 141, 135, 124, 130, 126, 134, 132, 114, 121, 116, 128, 132, 136, 132, 138, 115, 124, 119, 137, 128, 139, 139, 134, 125, 120, 131, 119, 120, 124, 142, 141, 140, 125, 99, 120, 117, 119, 142, 118, 136, 125, 125, 118, 131, 128, 128, 124, 133, 145, 125, 135, 130, 121, 126, 121, 120, 137, 111, 125, 127, 106, 132, 137, 125, 129, 127, 114, 118, 122, 130, 109, 109, 126, 129, 117, 127, 139, 121, 132, 117, 132, 130, 132, 141, 128, 119, 115, 110, 127, 116, 123, 132, 120, 123, 133, 135, 120, 134, 116, 126, 145, 108, 132, 129, 142, 115, 132, 140, 131, 127, 120, 125, 131, 151, 125, 118, 139, 114, 108, 121, 125, 138, 135, 121, 130, 133, 130, 132, 133, 131, 115, 122, 159, 133, 110, 128, 131, 116, 126, 125, 132, 130, 103, 112, 121, 135, 110, 130, 118, 129, 128, 107, 136, 129, 137, 114, 124, 122, 138, 136, 122, 135, 113, 117, 126, 121, 126, 129, 125, 130, 134, 129, 129, 117, 114, 135, 119, 85, 121, 114, 130, 124, 119, 131, 130, 114, 137, 119, 129, 126, 114, 133, 120, 129, 134, 114, 129, 122, 123, 139, 106, 115, 128, 128, 142, 128, 149, 114, 124, 118, 115, 137, 137, 134, 136, 119, 127, 139, 131, 144, 125, 121, 114, 109, 132, 138, 120, 123, 131, 120, 117, 129, 150, 120, 128, 133, 130, 117, 118, 119, 117, 110, 119, 124, 138, 122, 131, 140, 121, 135, 115, 134, 141, 118, 128, 143, 128, 114, 129, 140, 116, 102, 124, 129, 129, 115, 129, 113, 118, 123, 125, 132, 128, 121, 116, 123, 117, 112, 128, 131, 132, 120, 108, 124, 142, 122, 117, 151, 122, 116, 126, 121, 127, 132, 131, 134, 129, 120, 98, 130, 128, 121, 132, 141, 117, 134, 125, 141, 108, 123, 131, 125, 128, 126, 133, 121, 137, 150, 133, 133, 118, 137, 133, 135, 130, 142, 113, 116, 129, 124, 137, 123, 125, 113, 131, 117, 121, 119, 134, 131, 115, 124, 132, 122, 122, 125, 113, 124, 142, 121, 120, 134, 134, 126, 121, 121, 121, 116, 136, 140, 132, 130, 133, 119, 116, 115, 130, 153, 116, 128, 123, 133, 130, 123, 131, 102, 124, 130, 118, 146, 122, 129, 118, 126, 114, 119, 116, 122, 144, 133, 126, 116, 115, 126, 116, 122, 134, 122, 123, 114, 145, 130, 118, 132, 121, 128, 121, 130, 117, 125, 106, 125, 122, 139, 128, 115, 145, 138, 113, 122, 139, 137, 133, 131, 116, 125, 122, 122, 135, 107, 119, 117, 131, 142, 140, 113, 130, 116, 118, 120, 123, 128, 131, 126, 128, 117, 127, 117, 126, 123, 134, 118, 117, 131, 113, 124, 148, 124, 126, 118, 122, 122, 116, 124, 125, 116, 134, 122, 127, 126, 129, 143, 120, 121, 113, 109, 130, 119, 118, 119, 124, 121, 125, 120, 129, 116, 139, 115, 119, 130, 128, 138, 115, 127, 121, 116, 132, 128, 138, 134, 126, 136, 126, 126, 118, 114, 124, 149, 128, 122, 135, 127, 143, 150, 115, 119, 117, 135, 123, 114, 132, 116, 113, 117, 109, 123, 131, 128, 117, 143, 117, 122, 129, 142, 132, 116, 133, 139, 121, 117, 123, 107, 122, 113, 116, 120, 136, 120, 128, 120, 122, 146, 105, 123, 129, 133, 144, 124, 130, 122, 139, 143, 126, 130, 143, 128, 103, 111, 141, 125, 137, 118, 114, 119, 107, 136, 131, 117, 128, 155, 121, 122, 130, 130, 112, 137, 127, 113, 141, 125, 117, 129, 123, 128, 119, 123, 138, 122, 121, 124, 120, 123, 104, 126, 127, 121, 116, 116, 130, 123, 132, 123, 138, 125, 114, 137, 118, 117, 126, 117, 126, 111, 114, 112, 138, 128, 124, 122, 135, 128, 139, 132, 133, 131, 129, 127, 139, 117, 114, 162, 128, 133, 117, 113, 119, 122, 124, 143, 116, 127, 99, 111, 132, 127, 132, 126, 110, 126, 127, 124, 118, 107, 110, 145, 132, 124, 101, 145, 129, 121, 130, 136, 141, 99, 117, 121, 120, 126, 130, 129, 119, 126, 133, 128, 133, 107, 114, 118, 124, 145, 132, 137, 136, 114, 119, 129, 138, 137, 123, 131, 118, 111, 120, 123, 123, 131, 115, 117, 120, 125, 129, 145, 123, 114, 131, 119, 134, 135, 127, 140, 120, 151, 105, 111, 132, 118, 116, 116, 124, 133, 126, 126, 110, 125, 122, 115, 138, 117, 112, 108, 129, 119, 133, 138, 125, 106, 128, 129, 140, 141, 105, 139, 124, 125, 128, 129, 136, 114, 138, 139, 142, 92, 147, 124, 119, 135, 130, 123, 138, 130, 121, 117, 127, 133, 126, 123, 115, 118, 141, 126, 109, 119, 127, 113, 137, 112, 138, 117, 132, 119, 135, 140, 132, 129, 132, 136, 118, 129, 128, 115, 104, 125, 122, 135, 145, 119, 118, 138, 120, 119, 114, 100, 123, 122, 118, 130, 122, 130, 111, 109, 125, 117, 120, 134, 119, 132, 116, 120, 135, 107, 130, 127, 131, 138, 119, 120, 123, 123, 127, 115, 118, 93, 120, 105, 135, 112, 130, 118, 110, 119, 128, 148, 121, 138, 134, 115, 105, 125, 122, 118, 124, 115, 120, 128, 122, 139, 137, 114, 116, 128, 113, 129, 120, 122, 134, 128, 122, 127, 139, 136, 140, 121, 128, 120, 137, 135, 127, 145, 102, 118, 130, 124, 148, 145, 135, 121, 123, 123, 143, 129, 128, 133, 131, 141, 141, 152, 131, 139, 116, 140, 117, 147, 134, 122, 131, 127, 136, 122, 140, 110, 134, 121, 119, 110, 127, 123, 140, 118, 111, 112, 127, 120, 112, 125, 136, 122, 138, 130, 114, 116, 143, 119, 119, 133, 131, 135, 119, 132, 129, 140, 116, 98, 134, 126, 117, 119, 122, 116, 114, 118, 143, 106, 113, 123, 136, 109, 115, 124, 127, 120, 129, 149, 115, 132, 115, 131, 139, 127, 133, 141, 133, 120, 138, 108, 138, 136, 120, 128, 123, 130, 114, 129, 121, 115, 125, 133, 118, 125, 133, 134, 131, 137, 105, 121, 129, 126, 123, 99, 144, 134, 122, 127, 124, 121, 143, 136, 142, 117, 120, 122, 133, 120, 129, 127, 127, 140, 127, 122, 124, 122, 133, 131, 136, 116, 117, 129, 127, 119, 125, 119, 140, 130, 136, 119, 132, 117, 134, 118, 129, 125, 131, 124, 118, 119, 122, 137, 118, 117, 133, 117, 117, 113, 118, 125, 125, 125, 137, 131, 120, 119, 121, 124, 127, 125, 139, 124, 127, 116, 127, 120, 134, 125, 118, 148, 127, 116, 122, 117, 136, 112, 113, 131, 138, 118, 116, 125, 154, 134, 121, 126, 135, 114, 120, 121, 132, 123, 138, 137, 126, 120, 110, 111, 115, 136, 129, 127, 127, 132, 125, 138, 128, 124, 123, 140, 127, 120, 127, 117, 130, 117, 142, 108, 111, 128, 129, 130, 122, 126, 109, 121, 127, 131, 125, 119, 124, 106, 122, 111, 119, 122, 124, 110, 141, 138, 111, 120, 122, 136, 134, 117, 123, 112, 118, 122, 129, 129, 108, 148, 123, 124, 116, 140, 129, 129, 130, 98, 121, 107, 132, 141, 123, 128, 124, 142, 130, 128, 112, 129, 145, 126, 126, 127, 140, 129, 142, 124, 107, 114, 126, 117, 124, 133, 139, 110, 145, 126, 114, 121, 120, 127, 120, 151, 123, 124, 128, 129, 130, 139, 137, 134, 131, 134, 118, 110, 136, 121, 128, 137, 127, 123, 126, 134, 135, 116, 136, 131, 132, 147, 129, 124, 151, 138, 118, 124, 130, 131, 136, 125, 121, 126, 134, 128, 134, 130, 124, 113, 125, 126, 137, 128, 127, 112, 118, 132, 122, 113, 121, 149, 133, 116, 129, 136, 122, 135, 140, 129, 127, 131, 131, 109, 132, 131, 131, 116, 137, 119, 116, 116, 127, 111, 130, 154, 132, 141, 101, 125, 118, 111, 134, 104, 119, 126, 143, 128, 130, 125, 140, 127, 129, 119, 130, 108, 136, 135, 135, 123, 125, 125, 121, 123, 128, 123, 122, 113, 111, 124, 136, 127, 120, 129, 128, 102, 129, 127, 130, 133, 150, 132, 125, 144, 111, 134, 134, 124, 124, 119, 125, 126, 132, 121, 112, 135, 129, 119, 132, 121, 114, 126, 115, 126, 132, 121, 115, 130, 134, 116, 134, 122, 132, 145, 139, 119, 121, 129, 136, 135, 120, 123, 139, 125, 126, 132, 133, 121, 111, 138, 130, 135, 113, 132, 126, 135, 115, 113, 121, 130, 127, 124, 122, 133, 118, 130, 112, 123, 137, 143, 107, 129, 122, 128, 131, 125, 119, 116, 137, 112, 130, 125, 127, 115, 126, 122, 144, 131, 134, 132, 132, 131, 122, 128, 127, 139, 135, 138, 135, 130, 131, 114, 121, 131, 122, 125, 123, 135, 121, 157, 129, 131, 121, 103, 129, 127, 127, 132, 141, 115, 133, 153, 128, 127, 109, 133, 115, 132, 102, 131, 139, 129, 127, 129, 108, 128, 120, 124, 139, 121, 111, 128, 122, 116, 110, 138, 156, 123, 120, 123, 126, 116, 109, 130, 138, 135, 130, 137, 134, 120, 124, 115, 135, 141, 108, 110, 124, 125, 124, 124, 112, 134, 120, 119, 111, 103, 120, 127, 116, 140, 136, 127, 137, 115, 113, 123, 119, 116, 122, 130, 125, 124, 118, 119, 120, 128, 130, 134, 138, 131, 129, 116, 134, 122, 124, 122, 116, 128, 121, 126, 124, 135, 132, 107, 118, 130, 134, 137, 140, 140, 110, 145, 117, 128, 123, 122, 121, 123, 144, 139, 132, 135, 130, 123, 127, 137, 136, 131, 133, 120, 106, 109, 117, 124, 111, 131, 137, 125, 130, 126, 131, 140, 138, 126, 103, 122, 128, 116, 115, 127, 135, 127, 128, 114, 113, 135, 118, 122, 139, 134, 119, 128, 118, 119, 122, 129, 124, 130, 133, 123, 140, 121, 126, 124, 116, 133, 129, 142, 138, 120, 127, 120, 115, 133, 104, 124, 122, 124, 128, 113, 114, 133, 117, 115, 117, 116, 127, 139, 127, 108, 135, 141, 131, 125, 141, 119, 144, 129, 121, 125, 130, 120, 129, 115, 137, 121, 147, 120, 116, 130, 132, 125, 129, 123, 134, 109, 136, 127, 141, 124, 118, 135, 138, 119, 122, 116, 135, 132, 123, 128, 124, 130, 144, 131, 122, 125, 121, 116, 118, 134, 116, 130, 123, 143, 120, 134, 119, 107, 110, 140, 136, 119, 116, 135, 136, 137, 127, 132, 138, 135, 130, 133, 135, 141, 136, 127, 136, 121, 132, 137, 143, 109, 139, 134, 122, 113, 121, 115, 132, 118, 127, 125, 121, 138, 115, 139, 110, 113, 128, 123, 130, 118, 131, 127, 138, 130, 130, 131, 131, 129, 115, 114, 119, 116, 143, 131, 108, 144, 123, 122, 131, 133, 122, 132, 131, 140, 133, 134, 129, 146, 105, 136, 128, 116, 123, 114, 138, 124, 130, 119, 122, 139, 138, 126, 131, 128, 133, 121, 118, 131, 136, 126, 134, 117, 131, 136, 134, 136, 111, 105, 133, 125, 133, 133, 125, 130, 120, 123, 128, 129, 122, 126, 141, 103, 135, 135, 138, 139, 117, 126, 130, 138, 129, 133, 127, 122, 120, 117, 136, 125, 129, 143, 152, 139, 116, 107, 137, 128, 126, 127, 114, 123, 102, 117, 117, 117, 135, 142, 123, 120, 126, 116, 138, 111, 132, 123, 120, 142, 131, 129, 141, 128, 129, 114, 125, 125, 120, 143, 130, 125, 118, 131, 105, 114, 133, 116, 120, 132, 124, 148, 132, 119, 120, 134, 130, 146, 122, 131, 124, 116, 123, 126, 125, 117, 144, 132, 128, 133, 131, 122, 112, 128, 140, 156, 133, 136, 143, 129, 126, 112, 114, 139, 128, 127, 122, 126, 124, 140, 122, 126, 126, 117, 117, 129, 117, 125, 118, 121, 128, 118, 124, 127, 133, 125, 118, 110, 134, 130, 118, 120, 154, 126, 119, 142, 129, 97, 123, 119, 120, 118, 128, 129, 126, 124, 125, 108, 122, 127, 124, 124, 114, 120, 135, 134, 126, 113, 108, 123, 124, 137, 126, 119, 137, 121, 133, 114, 98, 129, 139, 139, 115, 130, 133, 129, 125, 114, 125, 112, 116, 153, 137, 134, 135, 126, 132, 126, 147, 129, 125, 123, 113, 133, 115, 112, 127, 137, 120, 116, 124, 119, 119, 129, 121, 133, 113, 119, 115, 128, 105, 122, 118, 122, 130, 140, 116, 120, 128, 123, 109, 106, 118, 145, 121, 127, 123, 125, 128, 127, 135, 133, 128, 114, 131, 125, 141, 129, 138, 122, 122, 106, 153, 133, 127, 134, 116, 126, 131, 122, 132, 114, 126, 132, 126, 122, 116, 131, 126, 139, 141, 120, 132, 115, 131, 120, 120, 113, 123, 168, 128, 125, 118, 131, 135, 119, 136, 129, 119, 110, 121, 115, 132, 136, 140, 134, 129, 125, 106, 116, 128, 135, 130, 125, 133, 123, 110, 124, 117, 113, 113, 117, 128, 130, 120, 131, 111, 133, 134, 151, 114, 113, 101, 138, 124, 131, 125, 132, 120, 150, 120, 122, 129, 123, 121, 129, 132, 108, 109, 123, 133, 124, 129, 124, 131, 135, 117, 134, 138, 117, 130, 113, 116, 126, 137, 135, 148, 122, 133, 129, 128, 130, 130, 124, 124, 144, 135, 128, 125, 118, 132, 128, 103, 130, 123, 121, 121, 117, 122, 123, 138, 113, 132, 112, 128, 119, 128, 137, 124, 129, 115, 124, 137, 139, 127, 112, 128, 134, 141, 124, 143, 122, 136, 132, 137, 128, 125, 139, 131, 115, 117, 143, 141, 122, 140, 123, 133, 133, 115, 131, 124, 105, 97, 112, 122, 141, 106, 136, 132, 126, 123, 124, 136, 124, 118, 132, 119, 126, 131, 137, 125, 140, 132, 148, 120, 127, 116, 121, 120, 109, 146, 136, 126, 131, 120, 109, 128, 117, 136, 127, 138, 124, 108, 128, 116, 131, 146, 138, 127, 129, 108, 121, 125, 127, 108, 127, 134, 128, 120, 124, 134, 99, 140, 133, 139, 123, 123, 143, 122, 137, 124, 121, 125, 131, 116, 139, 127, 120, 126, 119, 134, 134, 119, 121, 114, 112, 113, 117, 109, 124, 148, 121, 129, 134, 123, 113, 126, 134, 116, 116, 137, 127, 123, 154, 128, 132, 129, 118, 130, 139, 132, 128, 114, 129, 112, 137, 107, 127, 122, 139, 130, 124, 116, 117, 150, 120, 117, 125, 111, 135, 121, 136, 119, 142, 127, 115, 136, 128, 124, 118, 146, 126, 108, 116, 126, 115, 132, 107, 128, 141, 127, 131, 114, 137, 128, 139, 133, 120, 136, 108, 118, 120, 133, 138, 119, 138, 134, 128, 128, 114, 115, 150, 138, 133, 135, 104, 143, 129, 141, 123, 134, 140, 116, 136, 133, 138, 119, 142, 117, 122, 113, 131, 120, 123, 128, 136, 114, 111, 120, 130, 129, 107, 121, 133, 130, 121, 110, 128, 128, 115, 117, 123, 127, 124, 131, 116, 133, 126, 138, 119, 129, 129, 127, 128, 111, 119, 130, 112, 109, 127, 129, 119, 115, 120, 120, 136, 128, 121, 139, 122, 112, 125, 137, 120, 107, 128, 124, 114, 122, 118, 108, 116, 117, 116, 132, 123, 116, 120, 127, 133, 110, 132, 120, 132, 122, 116, 114, 106, 141, 126, 135, 120, 140, 118, 127, 117, 103, 128, 116, 119, 136, 122, 142, 130, 115, 110, 119, 132, 135, 138, 142, 122, 112, 107, 141, 132, 127, 125, 131, 106, 133, 126, 118, 138, 127, 131, 128, 115, 142, 136, 123, 121, 113, 128, 134, 118, 123, 119, 131, 159, 131, 124, 118, 125, 121, 121, 130, 131, 112, 115, 123, 101, 110, 143, 129, 133, 119, 132, 120, 104, 123, 107, 119, 132, 131, 119, 131, 121, 126, 133, 128, 126, 110, 133, 130, 120, 129, 131, 121, 118, 127, 140, 128, 141, 144, 132, 137, 132, 118, 119, 138, 110, 127, 121, 123, 129, 125, 131, 112, 118, 123, 134, 123, 127, 116, 126, 134, 114, 120, 115, 132, 107, 133, 128, 139, 134, 132, 143, 110, 145, 127, 113, 113, 118, 124, 125, 104, 118, 138, 122, 131, 126, 125, 122, 139, 105, 112, 124, 121, 129, 129, 137, 130, 111, 115, 121, 134, 100, 118, 136, 122, 109, 130, 120, 120, 139, 131, 122, 128, 136, 124, 131, 150, 133, 122, 126, 122, 113, 135, 121, 118, 126, 137, 125, 115, 118, 106, 125, 115, 121, 114, 128, 136, 136, 114, 124, 126, 115, 131, 111, 124, 133, 117, 108, 126, 112, 142, 127, 132, 137, 120, 131, 118, 124, 127, 133, 127, 109, 119, 128, 112, 107, 124, 146, 130, 126, 133, 117, 110, 109, 143, 128, 117, 125, 129, 118, 131, 108, 103, 114, 118, 122, 117, 101, 126, 95, 106, 112, 117, 104, 117, 140, 126, 122, 122, 135, 146, 139, 133, 127, 134, 130, 124, 141, 141, 131, 150, 134, 125, 117, 127, 123, 131, 129, 114, 132, 110, 129, 120, 141, 122, 122, 138, 118, 119, 127, 130, 115, 99, 131, 115, 126, 136, 123, 134, 119, 125, 132, 119, 116, 108, 133, 126, 114, 125, 138, 127, 133, 118, 114, 132, 120, 107, 110, 128, 140, 127, 117, 122, 120, 120, 133, 139, 117, 125, 126, 111, 111, 134, 124, 120, 106, 124, 139, 126, 129, 120, 99, 126, 139, 131, 130, 135, 128, 135, 128, 135, 129, 127, 149, 128, 126, 133, 138, 147, 123, 134, 144, 117, 125, 122, 135, 129, 117, 132, 145, 138, 115, 138, 112, 123, 139, 132, 120, 129, 118, 142, 107, 126, 130, 124, 123, 112, 126, 130, 115, 136, 121, 147, 132, 133, 126, 138, 117, 115, 134, 105, 125, 126, 126, 141, 127, 117, 135, 101, 101, 117, 125, 119, 127, 135, 123, 125, 134, 129, 118, 119, 121, 144, 116, 118, 120, 127, 123, 123, 131, 125, 125, 133, 126, 112, 119, 124, 146, 125, 136, 131, 135, 116, 137, 114, 130, 130, 117, 142, 139, 118, 108, 121, 127, 134, 116, 112, 121, 108, 136, 119, 115, 135, 120, 118, 131, 126, 111, 126, 126, 124, 130, 124, 129, 120, 114, 120, 146, 123, 130, 147, 145, 138, 117, 115, 132, 127, 123, 133, 121, 119, 129, 124, 129, 130, 129, 123, 128, 131, 123, 150, 119, 120, 146, 115, 113, 114, 127, 134, 136, 132, 142, 131, 124, 118, 128, 121, 149, 129, 134, 108, 120, 128, 127, 117, 133, 125, 140, 128, 133, 131, 134, 117, 124, 117, 115, 122, 116, 130, 125, 140, 126, 113, 122, 133, 121, 138, 121, 120, 129, 118, 114, 120, 116, 121, 135, 129, 113, 144, 119, 114, 125, 133, 120, 121, 130, 124, 133, 119, 112, 101, 136, 126, 112, 134, 120, 110, 123, 143, 120, 108, 130, 131, 114, 129, 132, 134, 121, 118, 122, 125, 141, 121, 144, 130, 133, 132, 142, 129, 122, 135, 131, 136, 118, 122, 129, 120, 120, 111, 114, 119, 106, 138, 116, 118, 138, 124, 123, 143, 136, 128, 139, 125, 122, 123, 129, 120, 123, 121, 117, 115, 133, 117, 132, 133, 122, 124, 115, 133, 134, 139, 133, 110, 131, 124, 129, 101, 138, 127, 119, 115, 137, 121, 121, 137, 110, 124, 119, 146, 112, 130, 127, 131, 112, 142, 115, 138, 111, 117, 124, 127, 136, 107, 134, 122, 124, 141, 126, 114, 100, 123, 119, 111, 119, 120, 119, 141, 128, 146, 131, 114, 128, 150, 135, 110, 128, 133, 131, 123, 123, 137, 134, 137, 118, 147, 127, 140, 130, 115, 139, 139, 138, 111, 112, 144, 118, 111, 138, 135, 134, 116, 123, 126, 132, 120, 126, 132, 126, 141, 120, 153, 128, 134, 147, 135, 120, 99, 133, 133, 127, 132, 113, 107, 118, 119, 120, 131, 110, 127, 134, 121, 131, 122, 130, 129, 125, 120, 132, 113, 130, 130, 152, 130, 110, 122, 132, 130, 126, 118, 110, 141, 112, 119, 127, 137, 126, 121, 133, 128, 122, 117, 130, 103, 116, 139, 127, 128, 120, 132, 120, 113, 128, 115, 109, 115, 124, 127, 131, 116, 105, 119, 124, 123, 127, 130, 140, 127, 105, 138, 124, 145, 121, 124, 117, 122, 111, 135, 134, 120, 125, 134, 117, 126, 149, 120, 122, 118, 139, 118, 129, 132, 117, 138, 130, 126, 107, 133, 115, 118, 137, 122, 135, 121, 135, 120, 119, 122, 120, 128, 138, 125, 129, 119, 130, 127, 137, 133, 141, 124, 127, 118, 117, 128, 125, 116, 98, 125, 125, 109, 128, 120, 115, 132, 136, 130, 140, 111, 119, 132, 126, 120, 130, 129, 131, 125, 115, 124, 119, 138, 120, 126, 130, 130, 125, 118, 126, 119, 111, 135, 116, 119, 116, 120, 133, 115, 137, 108, 126, 141, 129, 129, 110, 127, 112, 128, 110, 144, 127, 109, 108, 137, 113, 118, 128, 123, 134, 124, 100, 108, 126, 130, 127, 116, 127, 103, 128, 112, 118, 128, 138, 124, 140, 139, 121, 132, 121, 136, 130, 139, 149, 138, 104, 117, 124, 114, 154, 111, 120, 128, 121, 132, 123, 135, 106, 107, 135, 125, 129, 133, 125, 126, 143, 127, 129, 126, 121, 129, 128, 130, 138, 126, 145, 129, 131, 119, 121, 105, 146, 122, 123, 145, 130, 129, 136, 122, 125, 131, 129, 143, 108, 139, 119, 146, 139, 123, 139, 130, 144, 135, 115, 112, 124, 131, 127, 134, 124, 128, 130, 115, 124, 133, 132, 108, 128, 137, 123, 132, 123, 112, 125, 132, 115, 128, 120, 135, 120, 118, 129, 133, 132, 144, 136, 128, 126, 127, 119, 130, 115, 128, 127, 129, 136, 134, 132, 133, 124, 135, 137, 125, 115, 132, 125, 109, 123, 131, 134, 127, 115, 136, 112, 133, 128, 123, 121, 108, 117, 117, 119, 140, 121, 120, 127, 120, 139, 132, 130, 122, 145, 119, 123, 121, 132, 125, 134, 147, 106, 126, 132, 142, 96, 126, 115, 137, 121, 136, 106, 103, 126, 126, 135, 127, 112, 129, 123, 106, 138, 117, 126, 124, 127, 129, 136, 127, 149, 127, 130, 127, 130, 130, 117, 123, 126, 130, 133, 126, 133, 127, 133, 132, 129, 124, 126, 119, 122, 120, 119, 126, 139, 115, 121, 103, 131, 118, 123, 130, 126, 121, 123, 126, 122, 125, 130, 122, 113, 121, 143, 143, 115, 120, 122, 127, 126, 108, 115, 117, 116, 135, 135, 128, 125, 123, 142, 128, 130, 133, 133, 120, 142, 130, 137, 125, 128, 136, 119, 130, 135, 130, 126, 132, 137, 107, 122, 119, 127, 129, 122, 144, 129, 126, 123, 131, 122, 117, 122, 124, 107, 135, 129, 136, 115, 131, 111, 121, 127, 118, 136, 134, 122, 116, 113, 128, 129, 125, 126, 130, 130, 137, 126, 116, 128, 124, 124, 121, 128, 122, 118, 132, 122, 133, 114, 122, 121, 113, 125, 106, 122, 134, 139, 119, 139, 118, 125, 118, 128, 126, 121, 126, 105, 120, 122, 141, 149, 132, 120, 136, 117, 140, 121, 126, 126, 132, 129, 131, 139, 115, 130, 124, 122, 121, 135, 124, 115, 118, 141, 147, 131, 138, 135, 127, 134, 115, 115, 120, 127, 111, 116, 128, 120, 124, 131, 103, 128, 127, 126, 120, 122, 135, 128, 122, 143, 122, 125, 126, 121, 127, 139, 121, 134, 129, 129, 141, 119, 119, 129, 143, 118, 130, 134, 120, 127, 116, 114, 144, 121, 126, 137, 128, 121, 118, 122, 143, 115, 120, 136, 134, 118, 118, 128, 117, 135, 136, 118, 114, 101, 120, 97, 132, 126, 133, 126, 126, 127, 134, 130, 127, 141, 125, 122, 133, 134, 135, 128, 128, 132, 137, 116, 129, 135, 129, 109, 129, 123, 135, 120, 146, 128, 120, 125, 132, 114, 126, 127, 122, 124, 128, 131, 130, 138, 130, 126, 135, 135, 103, 124, 136, 125, 115, 130, 142, 110, 127, 132, 130, 122, 126, 138, 133, 115, 128, 138, 105, 146, 135, 120, 135, 134, 121, 124, 126, 106, 119, 123, 127, 130, 123, 138, 122, 136, 123, 120, 121, 134, 123, 127, 121, 119, 125, 128, 126, 140, 124, 115, 113, 110, 117, 110, 115, 128, 120, 152, 134, 144, 124, 126, 121, 136, 116, 118, 129, 131, 128, 131, 129, 131, 124, 126, 136, 115, 147, 130, 139, 126, 130, 126, 123, 143, 124, 128, 122, 112, 106, 137, 121, 126, 124, 122, 125, 132, 118, 132, 127, 120, 147, 108, 134, 117, 122, 126, 117, 121, 141, 137, 125, 129, 107, 141, 119, 127, 132, 116, 119, 129, 143, 119, 122, 135, 127, 114, 131, 134, 129, 132, 133, 120, 128, 100, 135, 144, 127, 119, 125, 119, 143, 128, 131, 112, 132, 121, 125, 122, 142, 118, 125, 129, 134, 119, 116, 123, 119, 133, 126, 124, 134, 139, 115, 113, 116, 138, 123, 131, 111, 120, 122, 115, 124, 127, 128, 131, 136, 128, 111, 120, 122, 144, 132, 124, 136, 134, 120, 120, 131, 118, 117, 124, 114, 132, 139, 117, 122, 132, 134, 124, 148, 104, 128, 147, 128, 121, 118, 123, 118, 127, 134, 127, 99, 124, 128, 122, 101, 129, 111, 105, 120, 133, 121, 121, 124, 133, 109, 123, 135, 117, 127, 119, 130, 127, 125, 114, 124, 120, 123, 128, 122, 115, 118, 140, 130, 137, 137, 122, 114, 116, 131, 121, 139, 119, 129, 111, 138, 117, 129, 127, 130, 123, 127, 120, 124, 100, 120, 121, 133, 126, 145, 120, 147, 134, 128, 121, 116, 117, 119, 138, 122, 115, 119, 140, 128, 120, 137, 159, 135, 120, 125, 100, 119, 125, 123, 134, 133, 139, 127, 143, 102, 125, 122, 123, 131, 127, 131, 122, 132, 122, 132, 142, 120, 128, 138, 130, 137, 141, 131, 131, 124, 147, 127, 142, 121, 127, 132, 124, 130, 121, 128, 138, 121, 120, 129, 123, 130, 129, 133, 123, 127, 137, 131, 121, 109, 120, 125, 139, 144, 121, 132, 116, 121, 130, 110, 125, 111, 115, 129, 130, 128, 116, 128, 129, 114, 129, 135, 126, 122, 126, 105, 128, 134, 101, 121, 126, 136, 133, 136, 124, 115, 113, 122, 129, 118, 125, 127, 121, 121, 150, 122, 121, 121, 116, 116, 135, 135, 141, 122, 137, 128, 126, 124, 132, 119, 140, 124, 128, 126, 129, 125, 113, 118, 119, 124, 136, 131, 123, 131, 131, 113, 144, 134, 133, 128, 139, 138, 120, 112, 129, 137, 122, 131, 134, 127, 116, 136, 136, 123, 131, 130, 140, 110, 128, 129, 121, 131, 139, 119, 138, 121, 117, 128, 116, 129, 110, 133, 115, 123, 125, 134, 126, 121, 132, 126, 120, 139, 124, 121, 137, 129, 140, 126, 120, 127, 114, 132, 129, 123, 112, 119, 125, 129, 132, 141, 129, 123, 126, 136, 105, 133, 124, 117, 128, 130, 118, 127, 127, 124, 131, 116, 127, 120, 128, 122, 119, 138, 123, 126, 123, 139, 115, 140, 115, 115, 127, 128, 102, 117, 119, 131, 115, 122, 132, 117, 90, 111, 125, 138, 124, 121, 116, 126, 123, 156, 149, 114, 108, 132, 122, 154, 122, 128, 136, 125, 131, 118, 114, 116, 116, 128, 126, 113, 120, 108, 123, 127, 131, 141, 126, 124, 117, 110, 127, 128, 121, 103, 114, 128, 115, 134, 127, 139, 117, 108, 123, 112, 115, 140, 140, 157, 118, 158, 131, 138, 105, 109, 125, 138, 123, 119, 133, 101, 133, 121, 129, 128, 119, 136, 110, 139, 125, 115, 132, 128, 144, 134, 122, 111, 134, 129, 122, 146, 143, 130, 140, 124, 125, 123, 122, 112, 132, 144, 107, 128, 115, 123, 115, 106, 111, 119, 128, 117, 124, 111, 142, 114, 137, 125, 124, 123, 124, 131, 129, 124, 119, 116, 148, 140, 137, 134, 124, 133, 120, 102, 130, 122, 111, 109, 124, 128, 121, 127, 102, 110, 143, 142, 125, 137, 144, 111, 120, 108, 114, 129, 118, 141, 133, 109, 149, 128, 128, 127, 112, 118, 143, 125, 114, 124, 112, 148, 136, 105, 130, 128, 121, 131, 120, 126, 135, 109, 138, 103, 123, 140, 134, 143, 122, 120, 130, 124, 117, 139, 117, 112, 128, 123, 115, 135, 112, 130, 125, 125, 123, 127, 133, 127, 119, 122, 130, 117, 138, 128, 136, 121, 131, 133, 126, 118, 138, 124, 131, 130, 122, 127, 122, 117, 138, 131, 141, 135, 116, 121, 132, 121, 139, 152, 122, 138, 128, 140, 116, 140, 120, 121, 117, 122, 123, 122, 119, 137, 118, 130, 123, 123, 123, 116, 143, 129, 136, 135, 130, 115, 134, 128, 118, 119, 115, 125, 130, 122, 148, 127, 137, 108, 130, 119, 130, 127, 129, 116, 115, 140, 119, 128, 135, 102, 115, 102, 127, 131, 115, 126, 131, 138, 123, 119, 132, 125, 119, 147, 123, 129, 94, 122, 143, 106, 136, 117, 114, 108, 130, 120, 123, 130, 116, 135, 116, 114, 134, 135, 109, 123, 132, 127, 117, 133, 117, 136, 129, 137, 137, 121, 129, 129, 123, 121, 118, 130, 129, 109, 143, 143, 102, 122, 117, 115, 139, 141, 112, 110, 143, 118, 128, 117, 127, 96, 142, 118, 119, 114, 130, 123, 115, 134, 124, 115, 114, 126, 123, 129, 130, 128, 114, 137, 116, 124, 111, 122, 136, 122, 108, 135, 127, 125, 121, 125, 116, 118, 114, 137, 126, 131, 109, 123, 114, 95, 140, 131, 128, 151, 124, 136, 94, 137, 137, 141, 115, 131, 136, 146, 107, 135, 114, 121, 130, 111, 121, 104, 102, 118, 123, 132, 109, 134, 139, 131, 124, 100, 114, 135, 130, 109, 113, 103, 132, 149, 123, 150, 135, 125, 132, 137, 120, 143, 121, 135, 112, 106, 124, 122, 139, 129, 140, 128, 127, 137, 120, 130, 122, 130, 118, 123, 137, 128, 102, 128, 135, 122, 115, 111, 130, 127, 119, 126, 134, 114, 119, 123, 110, 144, 145, 126, 141, 117, 141, 115, 120, 130, 144, 125, 117, 124, 114, 124, 143, 101, 129, 105, 125, 132, 134, 154, 117, 116, 121, 132, 136, 111, 115, 133, 133, 136, 128, 123, 114, 116, 136, 120, 117, 139, 127, 125, 99, 109, 137, 117, 121, 124, 124, 140, 123, 110, 143, 121, 122, 110, 114, 118, 115, 112, 112, 139, 114, 120, 130, 130, 120, 121, 122, 116, 121, 116, 129, 121, 134, 133, 116, 139, 113, 130, 136, 132, 118, 118, 131, 117, 130, 109, 112, 121, 123, 106, 119, 122, 121, 121, 123, 132, 117, 117, 122, 119, 129, 113, 127, 113, 144, 127, 127, 108, 123, 139, 120, 120, 121, 135, 136, 137, 107, 122, 117, 109, 137, 129, 128, 117, 106, 156, 137, 121, 127, 131, 122, 136, 150, 127, 122, 114, 131, 120, 117, 120, 125, 107, 111, 132, 131, 122, 124, 137, 129, 136, 125, 129, 127, 136, 122, 114, 160, 151, 126, 111, 123, 142, 125, 125, 106, 137, 133, 133, 123, 134, 128, 129, 139, 133, 148, 125, 132, 122, 122, 118, 120, 130, 131, 147, 134, 118, 127, 124, 150, 132, 129, 117, 109, 125, 121, 116, 136, 126, 115, 102, 121, 125, 117, 120, 132, 113, 126, 129, 118, 114, 127, 121, 122, 135, 128, 111, 146, 127, 128, 116, 125, 116, 132, 135, 126, 134, 113, 119, 122, 143, 126, 131, 125, 112, 129, 134, 145, 114, 123, 128, 113, 120, 129, 118, 106, 127, 124, 129, 130, 141, 127, 126, 147, 125, 118, 136, 112, 130, 141, 107, 126, 123, 123, 138, 132, 132, 114, 129, 142, 120, 118, 130, 118, 127, 123, 110, 133, 118, 120, 106, 114, 126, 116, 114, 139, 111, 132, 128, 120, 122, 118, 131, 127, 138, 130, 122, 143, 124, 133, 121, 141, 112, 130, 114, 117, 124, 129, 117, 123, 127, 111, 127, 134, 136, 146, 165, 127, 125, 119, 137, 122, 112, 151, 127, 133, 132, 129, 126, 109, 118, 110, 130, 137, 130, 129, 134, 129, 142, 119, 122, 107, 124, 125, 108, 135, 128, 145, 126, 113, 120, 127, 146, 132, 112, 121, 123, 118, 132, 118, 133, 134, 120, 131, 142, 119, 140, 130, 136, 101, 136, 138, 140, 119, 119, 155, 136, 116, 116, 112, 115, 121, 109, 122, 125, 130, 148, 115, 118, 126, 102, 123, 138, 122, 126, 107, 142, 111, 130, 116, 132, 114, 128, 141, 147, 127, 118, 136, 126, 128, 147, 135, 138, 118, 126, 124, 130, 130, 141, 123, 104, 120, 112, 136, 124, 119, 90, 104, 148, 120, 132, 124, 128, 110, 116, 121, 131, 121, 131, 126, 127, 115, 143, 118, 167, 123, 132, 148, 117, 141, 124, 117, 117, 105, 124, 119, 129, 119, 110, 127, 126, 132, 118, 134, 131, 104, 123, 124, 130, 118, 133, 138, 132, 124, 115, 122, 126, 120, 123, 118, 122, 127, 134, 133, 123, 134, 132, 145, 119, 132, 126, 128, 130, 133, 127, 121, 116, 120, 119, 98, 119, 111, 148, 133, 125, 122, 132, 120, 132, 119, 129, 124, 127, 135, 117, 137, 143, 126, 131, 122, 139, 116, 112, 142, 108, 133, 122, 128, 123, 123, 136, 149, 128, 120, 114, 133, 135, 114, 128, 125, 117, 129, 126, 132, 121, 110, 131, 106, 123, 124, 128, 128, 141, 115, 115, 147, 135, 148, 126, 132, 137, 114, 120, 123, 113, 132, 117, 136, 134, 139, 130, 115, 138, 133, 123, 112, 126, 128, 130, 127, 118, 120, 111, 112, 106, 114, 133, 121, 123, 120, 118, 133, 126, 131, 116, 118, 118, 124, 127, 131, 119, 110, 119, 121, 146, 103, 120, 129, 130, 116, 136, 124, 126, 125, 117, 122, 115, 124, 125, 129, 144, 133, 120, 130, 124, 122, 107, 119, 106, 150, 132, 118, 140, 127, 110, 147, 124, 122, 132, 116, 124, 127, 103, 138, 132, 136, 146, 116, 133, 119, 125, 112, 161, 132, 147, 119, 134, 129, 113, 116, 133, 130, 145, 124, 138, 136, 116, 119, 126, 126, 144, 135, 124, 137, 134, 135, 138, 110, 124, 139, 119, 125, 119, 127, 129, 119, 132, 125, 122, 124, 129, 125, 134, 142, 135, 120, 110, 132, 116, 137, 142, 138, 106, 125, 128, 134, 122, 138, 131, 120, 115, 114, 110, 117, 129, 121, 137, 141, 118, 128, 117, 135, 125, 127, 127, 131, 127, 136, 141, 133, 125, 127, 125, 133, 124, 125, 129, 110, 127, 120, 125, 118, 121, 108, 132, 142, 132, 112, 116, 107, 137, 115, 111, 130, 128, 117, 137, 117, 119, 138, 139, 132, 116, 143, 124, 120, 119, 125, 131, 103, 143, 113, 134, 127, 124, 138, 123, 107, 128, 126, 123, 128, 141, 110, 159, 110, 131, 124, 128, 108, 126, 129, 105, 116, 146, 112, 114, 121, 111, 111, 133, 118, 137, 138, 109, 133, 140, 139, 126, 118, 121, 135, 120, 137, 143, 112, 126, 124, 110, 113, 111, 143, 122, 124, 135, 113, 129, 126, 143, 120, 121, 129, 137, 132, 131, 125, 116, 120, 135, 131, 131, 120, 129, 122, 132, 128, 117, 117, 119, 118, 131, 106, 124, 136, 127, 123, 122, 123, 142, 116, 119, 121, 152, 118, 117, 114, 117, 137, 111, 128, 124, 142, 136, 132, 119, 137, 119, 127, 116, 139, 115, 125, 129, 121, 116, 132, 126, 116, 130, 136, 146, 111, 117, 145, 125, 115, 124, 114, 122, 147, 122, 121, 127, 127, 124, 130, 109, 121, 121, 135, 118, 126, 126, 116, 110, 118, 122, 131, 124, 120, 130, 125, 123, 134, 138, 119, 103, 112, 127, 141, 134, 118, 123, 127, 134, 128, 123, 126, 127, 118, 128, 114, 120, 132, 116, 112, 113, 132, 107, 136, 105, 121, 128, 116, 125, 118, 139, 111, 118, 151, 126, 128, 131, 120, 144, 123, 121, 115, 119, 115, 126, 131, 142, 120, 128, 127, 133, 132, 115, 128, 121, 143, 125, 117, 130, 119, 119, 135, 115, 128, 127, 123, 137, 115, 121, 134, 115, 121, 116, 113, 124, 134, 130, 109, 140, 121, 125, 116, 133, 132, 125, 114, 117, 118, 111, 114, 100, 119, 114, 124, 123, 139, 113, 127, 115, 114, 124, 107, 113, 129, 129, 124, 143, 140, 111, 125, 115, 135, 140, 102, 118, 122, 137, 113, 118, 132, 123, 118, 144, 142, 121, 123, 130, 124, 124, 128, 129, 129, 139, 121, 123, 141, 136, 132, 134, 116, 128, 131, 141, 125, 122, 113, 107, 130, 141, 126, 132, 144, 129, 138, 132, 123, 117, 135, 117, 131, 122, 117, 124, 124, 129, 120, 126, 129, 127, 157, 121, 107, 121, 133, 117, 132, 131, 122, 115, 104, 133, 127, 121, 115, 119, 129, 118, 119, 152, 127, 132, 124, 133, 128, 144, 140, 106, 119, 115, 133, 134, 123, 120, 114, 123, 143, 135, 123, 123, 120, 133, 138, 135, 135, 121, 121, 119, 128, 148, 120, 135, 134, 130, 133, 117, 124, 117, 142, 132, 104, 137, 148, 114, 111, 127, 125, 125, 132, 124, 119, 124, 117, 139, 127, 137, 127, 111, 122, 122, 129, 138, 117, 102, 128, 130, 112, 130, 117, 126, 115, 116, 128, 124, 122, 125, 143, 121, 136, 114, 129, 120, 138, 105, 127, 114, 116, 117, 126, 118, 120, 127, 121, 118, 132, 113, 139, 116, 122, 112, 125, 121, 125, 125, 136, 118, 112, 126, 127, 131, 116, 121, 126, 133, 124, 123, 128, 131, 138, 132, 132, 127, 129, 123, 130, 139, 131, 119, 122, 121, 124, 124, 123, 130, 134, 135, 126, 129, 124, 138, 127, 127, 120, 132, 133, 130, 129, 132, 138, 130, 117, 128, 115, 126, 116, 114, 125, 145, 107, 124, 141, 124, 128, 137, 116, 126, 113, 132, 116, 137, 107, 120, 115, 126, 136, 126, 104, 132, 141, 110, 114, 125, 140, 102, 123, 118, 131, 110, 116, 119, 116, 119, 134, 120, 125, 128, 133, 129, 133, 132, 127, 112, 123, 99, 120, 119, 116, 126, 132, 128, 121, 158, 120, 129, 121, 116, 142, 113, 133, 107, 115, 135, 136, 136, 131, 121, 145, 107, 120, 124, 113, 141, 138, 133, 131, 120, 126, 122, 117, 118, 130, 108, 122, 122, 124, 122, 134, 123, 130, 130, 119, 112, 128, 120, 134, 142, 128, 128, 117, 123, 132, 138, 137, 115, 121, 137, 121, 116, 137, 142, 124, 113, 109, 111, 127, 139, 89, 124, 137, 130, 139, 135, 121, 111, 132, 116, 145, 112, 127, 130, 127, 129, 130, 122, 111, 114, 120, 121, 134, 126, 143, 130, 121, 129, 133, 114, 127, 133, 121, 116, 147, 135, 125, 114, 125, 128, 117, 109, 122, 128, 123, 127, 135, 124, 127, 129, 132, 137, 117, 141, 125, 133, 144, 144, 141, 120, 130, 130, 111, 131, 122, 137, 124, 136, 117, 129, 117, 131, 108, 125, 103, 138, 123, 122, 121, 130, 135, 128, 130, 123, 115, 112, 129, 115, 138, 127, 110, 122, 121, 128, 128, 119, 124, 136, 118, 110, 121, 129, 115, 121, 122, 125, 121, 129, 140, 123, 117, 104, 118, 131, 135, 152, 133, 116, 123, 141, 129, 115, 114, 121, 125, 124, 140, 128, 114, 123, 134, 113, 120, 128, 136, 116, 131, 113, 118, 130, 124, 128, 138, 116, 127, 127, 116, 117, 148, 123, 154, 123, 114, 116, 136, 117, 139, 113, 125, 126, 122, 117, 145, 120, 141, 141, 116, 125, 143, 122, 126, 145, 124, 123, 129, 113, 128, 118, 151, 112, 125, 136, 119, 110, 132, 137, 126, 113, 129, 104, 125, 116, 114, 126, 140, 125, 144, 139, 109, 137, 118, 117, 109, 131, 126, 133, 137, 122, 111, 114, 112, 135, 121, 121, 114, 134, 125, 127, 127, 120, 122, 114, 119, 127, 125, 113, 131, 131, 147, 130, 145, 129, 141, 118, 122, 142, 116, 134, 115, 127, 123, 131, 123, 131, 135, 119, 129, 132, 104, 118, 125, 125, 123, 117, 117, 122, 134, 122, 123, 111, 130, 126, 131, 119, 127, 120, 132, 110, 122, 135, 120, 120, 118, 137, 121, 130, 116, 124, 138, 125, 124, 132, 127, 132, 112, 116, 125, 133, 124, 121, 133, 130, 116, 128, 118, 120, 110, 131, 106, 140, 129, 142, 122, 125, 130, 127, 139, 121, 114, 123, 114, 120, 122, 123, 121, 115, 123, 121, 116, 117, 151, 115, 123, 113, 128, 117, 99, 128, 104, 126, 138, 133, 139, 129, 125, 133, 116, 122, 124, 136, 119, 136, 136, 115, 132, 125, 135, 127, 148, 133, 130, 127, 140, 130, 127, 116, 119, 114, 132, 130, 134, 114, 124, 126, 124, 125, 124, 131, 113, 125, 136, 125, 129, 134, 114, 117, 126, 112, 139, 127, 127, 133, 145, 128, 118, 99, 115, 131, 140, 123, 116, 116, 114, 121, 117, 131, 117, 128, 122, 130, 141, 125, 132, 114, 115, 131, 112, 131, 131, 126, 133, 129, 117, 149, 123, 142, 127, 123, 126, 134, 129, 127, 128, 120, 114, 123, 115, 133, 136, 138, 144, 125, 128, 115, 123, 122, 136, 141, 130, 118, 114, 111, 109, 123, 130, 117, 125, 126, 126, 125, 130, 115, 125, 106, 130, 123, 123, 114, 115, 122, 121, 120, 122, 118, 125, 132, 124, 118, 122, 131, 143, 117, 120, 132, 129, 127, 113, 117, 135, 118, 139, 127, 123, 112, 122, 122, 143, 124, 137, 111, 138, 127, 124, 130, 130, 123, 122, 129, 128, 120, 131, 128, 122, 119, 127, 120, 120, 128, 128, 123, 110, 110, 125, 138, 127, 136, 141, 129, 134, 119, 128, 113, 113, 121, 110, 127, 135, 137, 137, 121, 123, 129, 127, 126, 125, 129, 129, 116, 132, 138, 127, 121, 128, 130, 135, 134, 144, 130, 158, 117, 123, 123, 129, 125, 135, 125, 125, 126, 132, 122, 121, 116, 128, 110, 139, 131, 116, 128, 130, 119, 132, 111, 134, 119, 119, 114, 135, 122, 115, 123, 119, 106, 125, 123, 133, 125, 120, 141, 121, 122, 127, 132, 136, 105, 128, 122, 125, 134, 123, 119, 124, 124, 133, 138, 134, 126, 107, 131, 126, 124, 130, 134, 108, 128, 121, 124, 136, 119, 133, 130, 128, 135, 109, 127, 121, 116, 124, 128, 118, 141, 119, 145, 129, 141, 127, 116, 115, 129, 122, 123, 120, 131, 110, 125, 130, 126, 118, 131, 116, 108, 128, 125, 124, 144, 121, 130, 114, 136, 123, 135, 113, 127, 127, 118, 138, 129, 111, 153, 135, 124, 131, 128, 137, 130, 129, 129, 132, 131, 135, 136, 129, 108, 118, 114, 136, 135, 132, 132, 125, 120, 131, 116, 137, 114, 137, 141, 130, 128, 130, 121, 117, 123, 140, 115, 123, 117, 129, 124, 120, 132, 123, 126, 133, 119, 126, 120, 134, 131, 124, 120, 128, 126, 120, 140, 131, 122, 133, 119, 136, 134, 131, 123, 150, 115, 135, 126, 146, 127, 141, 127, 140, 125, 138, 134, 127, 122, 126, 137, 131, 139, 138, 127, 145, 125, 118, 129, 131, 134, 139, 140, 114, 150, 129, 118, 112, 118, 119, 129, 135, 123, 117, 123, 124, 153, 122, 128, 121, 139, 137, 123, 120, 118, 124, 130, 119, 124, 140, 136, 113, 125, 143, 109, 128, 134, 127, 107, 110, 130, 127, 116, 116, 121, 124, 116, 126, 145, 123, 133, 129, 121, 105, 140, 123, 103, 128, 128, 121, 132, 132, 140, 136, 134, 121, 129, 112, 133, 128, 136, 122, 122, 145, 120, 123, 111, 135, 113, 130, 114, 133, 120, 145, 119, 141, 117, 128, 129, 138, 129, 110, 150, 133, 114, 121, 142, 116, 132, 132, 127, 127, 138, 139, 140, 101, 133, 127, 117, 138, 110, 136, 138, 118, 133, 136, 125, 120, 119, 120, 126, 123, 124, 117, 134, 114, 137, 121, 124, 131, 125, 135, 144, 131, 127, 135, 140, 128, 116, 126, 148, 128, 129, 118, 114, 118, 111, 140, 117, 124, 143, 124, 118, 124, 134, 128, 102, 130, 112, 130, 130, 133, 123, 116, 131, 132, 138, 141, 153, 105, 110, 120, 124, 123, 131, 112, 125, 128, 129, 118, 140, 130, 120, 126, 118, 122, 122, 124, 130, 116, 123, 127, 113, 116, 76, 113, 134, 130, 145, 126, 128, 132, 112, 124, 131, 129, 144, 115, 135, 121, 110, 122, 116, 135, 117, 110, 129, 111, 147, 134, 123, 130, 126, 122, 116, 143, 117, 121, 114, 124, 125, 151, 45, 115, 133, 124, 122, 115, 127, 137, 131, 118, 127, 112, 127, 121, 125, 140, 118, 110, 135, 141, 138, 130, 122, 121, 112, 121, 114, 136, 136, 122, 132, 113, 145, 136, 137, 123, 128, 128, 130, 125, 119, 148, 119, 136, 133, 126, 129, 125, 129, 125, 128, 142, 121, 115, 120, 133, 100, 128, 128, 119, 119, 112, 128, 121, 114, 127, 113, 131, 119, 134, 113, 126, 111, 123, 128, 129, 138, 107, 113, 117, 134, 135, 117, 121, 129, 112, 129, 116, 143, 120, 116, 125, 135, 119, 138, 126, 136, 122, 138, 120, 127, 129, 146, 115, 115, 121, 122, 143, 130, 118, 124, 127, 132, 122, 127, 123, 140, 129, 119, 134, 137, 135, 130, 113, 115, 118, 133, 140, 144, 130, 132, 114, 137, 122, 155, 130, 144, 150, 130, 129, 123, 109, 119, 129, 106, 120, 130, 134, 117, 116, 108, 120, 122, 110, 117, 124, 133, 125, 128, 130, 123, 120, 127, 134, 128, 139, 125, 142, 136, 133, 135, 116, 120, 120, 133, 129, 137, 128, 122, 129, 132, 129, 135, 121, 116, 124, 120, 121, 127, 118, 130, 123, 136, 122, 140, 117, 130, 130, 107, 132, 130, 125, 134, 115, 134, 128, 129, 140, 122, 143, 111, 118, 127, 136, 141, 132, 118, 115, 127, 135, 144, 96, 124, 121, 137, 127, 121, 132, 118, 123, 118, 123, 117, 126, 140, 141, 132, 121, 119, 119, 135, 112, 125, 129, 123, 137, 129, 122, 124, 118, 124, 114, 122, 131, 123, 123, 124, 135, 130, 147, 129, 122, 146, 125, 107, 122, 127, 119, 118, 104, 141, 122, 131, 141, 120, 117, 118, 107, 119, 118, 137, 109, 128, 88, 130, 125, 121, 132, 129, 131, 131, 131, 129, 121, 128, 124, 119, 125, 132, 101, 115, 133, 129, 122, 108, 132, 129, 139, 124, 121, 127, 131, 118, 125, 142, 134, 141, 131, 135, 107, 141, 140, 124, 125, 131, 131, 120, 106, 124, 131, 119, 108, 133, 121, 129, 117, 118, 129, 108, 129, 114, 130, 138, 132, 117, 134, 113, 123, 112, 129, 116, 131, 129, 132, 120, 116, 121, 110, 117, 128, 144, 128, 129, 127, 111, 145, 135, 115, 121, 123, 123, 119, 133, 123, 109, 134, 114, 138, 120, 125, 109, 129, 129, 121, 137, 114, 120, 135, 121, 126, 114, 126, 143, 121, 118, 115, 122, 108, 131, 117, 120, 117, 132, 125, 143, 107, 129, 135, 109, 127, 113, 134, 136, 116, 129, 133, 125, 161, 145, 124, 140, 125, 128, 131, 141, 110, 120, 136, 133, 123, 120, 143, 126, 128, 124, 106, 124, 134, 124, 122, 130, 126, 118, 145, 124, 127, 118, 113, 148, 120, 130, 118, 117, 129, 124, 129, 124, 129, 121, 131, 134, 127, 134, 127, 125, 169, 123, 119, 114, 129, 132, 129, 145, 130, 124, 125, 122, 128, 136, 129, 137, 132, 120, 141, 122, 116, 123, 124, 120, 108, 127, 139, 133, 131, 127, 119, 125, 125, 127, 139, 134, 116, 126, 125, 103, 130, 126, 110, 113, 121, 130, 123, 136, 132, 129, 116, 132, 114, 129, 137, 132, 132, 120, 120, 121, 133, 136, 128, 122, 129, 118, 126, 118, 116, 127, 121, 122, 123, 131, 129, 125, 129, 111, 130, 123, 115, 128, 113, 142, 120, 129, 127, 132, 127, 121, 120, 132, 143, 129, 112, 119, 124, 116, 117, 121, 128, 139, 111, 124, 115, 127, 125, 128, 126, 130, 125, 124, 129, 128, 133, 121, 121, 140, 132, 125, 122, 112, 117, 116, 114, 112, 122, 122, 119, 123, 124, 127, 132, 109, 140, 112, 125, 114, 101, 130, 113, 124, 107, 123, 142, 135, 136, 130, 123, 136, 134, 122, 136, 131, 133, 114, 130, 132, 116, 122, 132, 135, 115, 141, 126, 126, 134, 148, 120, 119, 120, 146, 134, 137, 129, 128, 113, 132, 131, 132, 146, 125, 137, 119, 129, 114, 125, 127, 127, 146, 118, 124, 126, 130, 130, 128, 139, 143, 137, 113, 127, 129, 124, 136, 128, 125, 121, 127, 114, 132, 106, 132, 113, 129, 130, 138, 129, 144, 128, 132, 121, 142, 114, 133, 121, 131, 121, 111, 109, 113, 124, 145, 128, 133, 123, 124, 132, 142, 117, 110, 121, 105, 130, 102, 116, 111, 138, 128, 126, 113, 127, 145, 152, 138, 127, 127, 119, 110, 125, 117, 118, 106, 120, 125, 120, 121, 122, 131, 119, 110, 119, 125, 124, 144, 111, 136, 114, 110, 133, 126, 130, 125, 108, 132, 117, 126, 134, 138, 139, 134, 128, 126, 126, 123, 132, 119, 119, 126, 143, 133, 112, 116, 105, 112, 121, 137, 106, 114, 111, 111, 128, 132, 126, 133, 129, 117, 136, 111, 128, 126, 141, 111, 113, 132, 119, 106, 124, 133, 109, 117, 128, 128, 105, 115, 131, 143, 134, 115, 125, 131, 126, 113, 118, 120, 132, 119, 115, 114, 118, 121, 136, 134, 133, 113, 123, 125, 116, 126, 130, 129, 127, 125, 137, 121, 124, 149, 119, 132, 125, 142, 134, 110, 120, 120, 122, 137, 105, 137, 118, 131, 108, 129, 133, 113, 132, 130, 127, 131, 125, 146, 133, 118, 128, 124, 126, 122, 130, 160, 113, 136, 126, 100, 133, 128, 127, 126, 117, 140, 119, 123, 131, 117, 128, 115, 118, 133, 112, 125, 126, 126, 138, 115, 112, 134, 117, 135, 120, 126, 122, 131, 103, 131, 104, 138, 140, 123, 126, 115, 115, 127, 128, 123, 119, 108, 127, 137, 134, 124, 129, 125, 132, 141, 112, 122, 129, 120, 136, 120, 123, 128, 119, 123, 126, 133, 147, 147, 127, 117, 130, 130, 115, 109, 125, 115, 156, 123, 131, 112, 125, 123, 116, 130, 116, 121, 126, 126, 125, 121, 123, 111, 117, 129, 125, 135, 130, 128, 115, 128, 115, 115, 139, 117, 117, 108, 118, 142, 114, 121, 123, 124, 139, 118, 134, 128, 128, 115, 117, 130, 125, 131, 120, 133, 130, 130, 144, 136, 137, 109, 127, 124, 128, 113, 136, 139, 127, 134, 127, 107, 130, 118, 133, 125, 125, 119, 142, 113, 129, 141, 138, 127, 142, 110, 135, 136, 124, 127, 129, 126, 127, 130, 104, 112, 120, 120, 119, 83, 144, 118, 128, 113, 126, 126, 129, 115, 116, 116, 122, 128, 124, 120, 131, 116, 128, 113, 124, 130, 119, 120, 131, 134, 121, 106, 123, 112, 148, 122, 135, 111, 114, 123, 145, 131, 107, 131, 118, 122, 141, 116, 127, 136, 121, 131, 132, 112, 134, 125, 137, 123, 126, 116, 132, 136, 117, 127, 136, 138, 122, 132, 136, 117, 134, 141, 126, 141, 130, 130, 117, 122, 117, 120, 141, 129, 122, 122, 112, 137, 129, 126, 130, 121, 108, 120, 130, 130, 128, 119, 138, 130, 131, 125, 139, 121, 109, 114, 118, 128, 121, 122, 129, 132, 134, 126, 124, 116, 129, 123, 124, 121, 148, 120, 146, 129, 127, 118, 121, 103, 124, 125, 126, 140, 132, 131, 130, 118, 122, 122, 132, 127, 112, 121, 93, 142, 127, 124, 113, 139, 115, 143, 143, 144, 131, 125, 132, 140, 131, 123, 124, 126, 122, 115, 118, 135, 121, 135, 114, 121, 127, 120, 134, 116, 124, 123, 125, 135, 127, 131, 120, 133, 139, 126, 124, 119, 117, 129, 115, 125, 135, 106, 145, 130, 134, 116, 124, 126, 128, 110, 126, 125, 132, 125, 125, 120, 127, 129, 113, 143, 119, 114, 116, 86, 131, 120, 124, 138, 120, 124, 117, 124, 107, 136, 126, 134, 127, 146, 122, 131, 110, 143, 120, 121, 148, 129, 131, 127, 124, 114, 120, 121, 110, 131, 126, 128, 121, 128, 134, 120, 134, 127, 110, 132, 122, 118, 134, 120, 121, 116, 119, 125, 130, 123, 125, 116, 112, 108, 127, 117, 141, 112, 121, 128, 108, 119, 107, 134, 119, 127, 141, 129, 109, 140, 119, 126, 116, 128, 130, 118, 114, 118, 119, 122, 140, 128, 123, 120, 127, 129, 93, 125, 155, 139, 119, 117, 126, 117, 120, 125, 137, 128, 114, 119, 121, 121, 119, 144, 127, 130, 124, 123, 114, 123, 131, 126, 125, 108, 115, 131, 96, 135, 140, 132, 132, 130, 138, 130, 117, 135, 123, 126, 120, 118, 153, 120, 131, 125, 126, 125, 134, 140, 130, 144, 112, 106, 117, 109, 135, 123, 126, 132, 119, 117, 124, 128, 133, 141, 134, 129, 127, 134, 141, 117, 108, 120, 134, 131, 133, 130, 134, 113, 113, 119, 127, 134, 126, 138, 117, 109, 144, 134, 115, 135, 136, 147, 134, 121, 123, 137, 129, 112, 125, 130, 115, 126, 110, 121, 134, 116, 130, 123, 145, 122, 128, 122, 140, 144, 135, 118, 122, 119, 130, 120, 117, 113, 124, 121, 116, 119, 132, 135, 123, 130, 141, 126, 145, 123, 140, 127, 144, 126, 123, 132, 127, 130, 130, 140, 128, 124, 129, 159, 133, 110, 126, 139, 139, 117, 136, 121, 116, 128, 133, 125, 124, 143, 107, 141, 126, 135, 124, 113, 114, 125, 116, 151, 141, 127, 112, 140, 150, 119, 112, 114, 122, 137, 123, 113, 130, 122, 147, 105, 147, 130, 134, 117, 132, 127, 124, 130, 136, 114, 136, 116, 133, 118, 131, 138, 134, 122, 101, 124, 143, 127, 109, 129, 140, 129, 123, 117, 132, 135, 129, 126, 137, 108, 143, 117, 121, 123, 130, 118, 127, 129, 121, 125, 133, 136, 112, 128, 139, 123, 133, 118, 128, 120, 139, 128, 104, 142, 116, 135, 125, 113, 134, 117, 131, 127, 122, 128, 115, 129, 135, 121, 130, 124, 134, 116, 116, 124, 135, 111, 120, 121, 139, 125, 130, 121, 114, 127, 130, 123, 120, 136, 127, 154, 112, 128, 141, 133, 128, 132, 117, 131, 132, 125, 136, 123, 120, 100, 125, 107, 100, 155, 113, 124, 123, 122, 110, 142, 130, 129, 128, 110, 125, 123, 123, 129, 125, 134, 128, 129, 105, 123, 123, 129, 108, 115, 122, 114, 124, 113, 124, 117, 137, 133, 135, 119, 126, 130, 133, 128, 139, 133, 124, 107, 130, 124, 130, 131, 121, 111, 107, 126, 110, 118, 114, 133, 110, 109, 110, 147, 123, 113, 118, 123, 125, 123, 116, 116, 124, 128, 132, 156, 114, 107, 116, 130, 113, 124, 121, 149, 131, 116, 122, 131, 137, 134, 132, 132, 117, 123, 120, 106, 130, 128, 123, 134, 148, 119, 135, 114, 132, 120, 124, 135, 146, 118, 129, 122, 142, 136, 93, 126, 115, 127, 132, 126, 130, 96, 123, 121, 127, 127, 146, 108, 121, 120, 148, 139, 126, 129, 136, 126, 119, 131, 124, 130, 159, 118, 125, 116, 128, 133, 132, 117, 133, 117, 118, 125, 128, 124, 113, 119, 126, 132, 127, 116, 131, 134, 124, 130, 125, 114, 122, 128, 131, 109, 140, 129, 128, 142, 126, 127, 117, 114, 142, 135, 133, 126, 130, 115, 117, 128, 111, 118, 128, 114, 129, 100, 123, 131, 127, 139, 116, 125, 120, 121, 113, 127, 114, 120, 123, 116, 108, 138, 125, 120, 131, 120, 147, 116, 131, 130, 142, 120, 148, 124, 132, 116, 123, 155, 128, 111, 133, 123, 137, 114, 115, 137, 127, 122, 122, 133, 129, 145, 149, 122, 127, 114, 125, 121, 125, 126, 117, 129, 108, 137, 122, 150, 121, 135, 138, 127, 127, 119, 129, 99, 132, 106, 119, 125, 129, 140, 127, 131, 122, 130, 120, 120, 116, 130, 143, 119, 130, 136, 125, 123, 145, 117, 143, 122, 129, 125, 142, 137, 128, 133, 134, 136, 125, 135, 142, 111, 125, 122, 115, 130, 119, 112, 114, 132, 126, 118, 129, 125, 121, 117, 110, 138, 140, 126, 138, 146, 127, 141, 127, 122, 135, 128, 104, 110, 128, 129, 140, 119, 136, 122, 128, 131, 127, 132, 139, 126, 120, 137, 126, 109, 108, 128, 116, 125, 127, 131, 134, 112, 124, 151, 131, 106, 132, 139, 114, 124, 136, 111, 142, 118, 131, 111, 126, 130, 123, 94, 128, 140, 117, 114, 136, 119, 131, 136, 119, 129, 134, 128, 127, 119, 126, 139, 130, 103, 136, 149, 111, 120, 127, 96, 123, 127, 126, 112, 155, 133, 121, 125, 142, 117, 128, 143, 125, 121, 130, 126, 118, 134, 132, 143, 131, 123, 125, 130, 110, 125, 116, 118, 125, 127, 119, 138, 144, 130, 156, 144, 133, 125, 132, 130, 135, 143, 130, 122, 103, 117, 115, 118, 125, 120, 128, 124, 134, 111, 128, 127, 119, 120, 126, 126, 117, 141, 141, 138, 138, 106, 132, 130, 124, 121, 121, 136, 115, 114, 122, 122, 104, 136, 135, 132, 143, 129, 134, 131, 142, 115, 117, 123, 109, 121, 118, 107, 122, 127, 119, 123, 100, 126, 129, 100, 126, 116, 132, 113, 121, 141, 121, 128, 128, 124, 115, 110, 126, 139, 113, 136, 114, 122, 103, 111, 121, 136, 127, 124, 121, 137, 126, 118, 110, 131, 113, 142, 123, 124, 123, 127, 137, 141, 124, 122, 122, 135, 116, 127, 109, 118, 127, 131, 119, 129, 124, 118, 118, 128, 131, 134, 125, 119, 112, 125, 148, 116, 124, 118, 131, 132, 121, 110, 119, 121, 125, 132, 129, 121, 132, 138, 113, 128, 116, 125, 131, 137, 143, 125, 130, 116, 115, 147, 115, 121, 132, 128, 129, 127, 124, 131, 140, 133, 124, 124, 118, 135, 128, 118, 117, 134, 127, 122, 117, 128, 117, 128, 123, 132, 126, 122, 127, 117, 129, 128, 131, 116, 125, 130, 129, 123, 113, 134, 113, 135, 138, 118, 131, 118, 116, 120, 145, 139, 124, 127, 118, 137, 121, 126, 106, 139, 139, 114, 130, 126, 119, 110, 130, 120, 120, 125, 121, 128, 122, 124, 125, 139, 115, 112, 124, 112, 124, 136, 138, 134, 128, 121, 108, 132, 114, 133, 131, 114, 115, 129, 121, 134, 122, 109, 130, 131, 120, 148, 150, 137, 118, 126, 109, 113, 132, 136, 136, 122, 122, 120, 137, 123, 119, 137, 134, 127, 127, 119, 118, 127, 133, 120, 114, 142, 130, 129, 131, 134, 112, 141, 134, 113, 110, 141, 135, 112, 119, 135, 130, 134, 119, 128, 130, 141, 121, 123, 111, 121, 125, 114, 115, 119, 127, 124, 136, 125, 123, 113, 120, 125, 147, 127, 129, 137, 121, 128, 106, 127, 130, 136, 120, 121, 131, 111, 112, 113, 109, 132, 126, 114, 113, 126, 125, 112, 112, 118, 112, 133, 126, 127, 100, 144, 122, 114, 158, 125, 126, 115, 118, 126, 142, 115, 122, 119, 135, 123, 109, 122, 128, 116, 122, 117, 114, 128, 124, 133, 116, 120, 121, 121, 124, 138, 130, 108, 139, 124, 121, 114, 118, 156, 117, 133, 131, 122, 135, 113, 124, 112, 133, 126, 118, 152, 136, 125, 140, 115, 125, 115, 111, 116, 114, 146, 112, 121, 125, 127, 132, 134, 115, 124, 124, 116, 108, 138, 131, 131, 126, 126, 136, 124, 130, 125, 121, 157, 132, 123, 159, 133, 127, 117, 126, 134, 126, 133, 113, 121, 121, 128, 120, 147, 130, 127, 118, 120, 117, 120, 117, 122, 122, 135, 132, 122, 125, 121, 126, 109, 115, 131, 118, 128, 110, 106, 138, 121, 126, 115, 127, 114, 134, 115, 128, 104, 130, 150, 112, 117, 107, 108, 106, 123, 129, 115, 118, 136, 134, 121, 114, 116, 130, 117, 130, 131, 130, 114, 131, 118, 143, 110, 134, 121, 119, 102, 121, 142, 109, 113, 138, 146, 112, 144, 121, 116, 131, 117, 115, 133, 111, 104, 124, 126, 129, 138, 126, 127, 124, 131, 133, 132, 123, 116, 140, 131, 124, 120, 123, 131, 132, 127, 127, 139, 135, 125, 135, 129, 130, 131, 98, 135, 135, 145, 123, 113, 142, 137, 111, 118, 130, 145, 123, 142, 143, 108, 122, 111, 126, 137, 112, 115, 126, 128, 111, 135, 123, 160, 113, 119, 119, 126, 131, 113, 123, 129, 117, 126, 132, 118, 122, 101, 135, 122, 128, 99, 129, 114, 134, 122, 110, 115, 118, 132, 131, 132, 123, 127, 110, 126, 120, 116, 128, 111, 137, 119, 126, 129, 125, 124, 124, 122, 100, 119, 114, 119, 125, 129, 110, 106, 118, 121, 136, 130, 132, 127, 115, 127, 148, 136, 125, 124, 135, 130, 129, 134, 137, 115, 125, 140, 120, 138, 117, 125, 117, 112, 134, 135, 132, 127, 119, 132, 139, 126, 127, 128, 125, 115, 120, 140, 109, 119, 124, 136, 144, 109, 107, 133, 128, 134, 110, 124, 129, 139, 123, 123, 132, 129, 128, 128, 119, 125, 108, 110, 115, 133, 116, 144, 116, 133, 119, 121, 111, 126, 116, 115, 109, 124, 110, 131, 131, 118, 124, 135, 136, 125, 139, 135, 126, 132, 122, 141, 130, 136, 117, 127, 117, 109, 127, 106, 132, 127, 118, 126, 134, 131, 116, 126, 124, 109, 129, 115, 134, 151, 128, 123, 143, 109, 134, 129, 123, 107, 130, 129, 132, 124, 135, 111, 115, 127, 127, 126, 133, 133, 126, 117, 116, 125, 135, 116, 135, 136, 126, 127, 108, 124, 136, 129, 124, 125, 123, 103, 136, 122, 135, 127, 114, 114, 129, 130, 125, 141, 122, 113, 124, 113, 127, 123, 119, 142, 137, 144, 122, 136, 135, 129, 128, 131, 123, 137, 122, 127, 116, 127, 130, 111, 110, 126, 125, 133, 122, 134, 119, 127, 149, 120, 120, 122, 144, 135, 128, 128, 134, 129, 156, 130, 113, 128, 119, 112, 136, 127, 155, 142, 110, 127, 101, 123, 125, 141, 108, 116, 123, 133, 132, 127, 133, 131, 129, 103, 123, 124, 130, 127, 136, 121, 113, 134, 137, 124, 134, 105, 134, 120, 145, 131, 127, 127, 123, 142, 136, 134, 119, 122, 105, 135, 122, 139, 138, 126, 125, 135, 126, 126, 110, 142, 131, 132, 120, 141, 116, 126, 115, 103, 114, 125, 120, 133, 127, 131, 143, 131, 147, 131, 126, 131, 126, 130, 133, 129, 110, 122, 121, 117, 114, 135, 123, 136, 122, 122, 130, 133, 141, 152, 129, 142, 110, 135, 141, 140, 140, 122, 111, 127, 131, 137, 132, 127, 123, 128, 120, 101, 129, 124, 130, 127, 115, 145, 136, 124, 135, 136, 130, 122, 107, 147, 115, 128, 137, 113, 111, 103, 124, 137, 104, 122, 140, 115, 124, 121, 136, 119, 120, 132, 128, 115, 111, 100, 127, 140, 119, 111, 137, 134, 136, 134, 140, 147, 136, 120, 118, 139, 129, 136, 131, 128, 132, 120, 121, 119, 111, 119, 111, 119, 117, 140, 133, 122, 124, 121, 133, 120, 110, 112, 138, 124, 143, 139, 131, 118, 129, 131, 124, 133, 125, 115, 132, 131, 124, 130, 134, 155, 109, 164, 148, 129, 132, 128, 130, 126, 120, 126, 122, 132, 110, 127, 146, 130, 114, 121, 143, 117, 128, 142, 130, 120, 127, 135, 128, 119, 132, 139, 121, 125, 126, 115, 125, 119, 135, 115, 116, 116, 139, 118, 125, 132, 131, 117, 128, 123, 129, 113, 123, 111, 116, 135, 118, 125, 130, 128, 110, 118, 139, 112, 125, 127, 137, 134, 119, 133, 129, 126, 122, 114, 124, 126, 126, 130, 106, 127, 130, 136, 111, 130, 113, 136, 123, 120, 138, 109, 120, 126, 123, 131, 143, 118, 120, 126, 102, 124, 124, 127, 125, 111, 117, 127, 112, 130, 133, 134, 125, 121, 136, 135, 136, 109, 135, 122, 124, 131, 132, 137, 141, 132, 128, 128, 130, 118, 121, 121, 136, 142, 123, 117, 131, 109, 127, 123, 102, 125, 119, 124, 127, 129, 112, 134, 128, 137, 116, 151, 139, 123, 127, 140, 119, 109, 125, 149, 129, 127, 119, 124, 128, 121, 134, 119, 138, 124, 129, 116, 129, 128, 141, 126, 137, 111, 90, 110, 122, 109, 126, 127, 130, 114, 136, 140, 125, 122, 127, 115, 143, 148, 128, 113, 146, 116, 118, 122, 141, 150, 140, 124, 144, 138, 141, 121, 124, 138, 128, 129, 133, 140, 129, 123, 132, 141, 137, 111, 109, 148, 137, 138, 121, 126, 133, 128, 142, 151, 114, 118, 131, 116, 123, 134, 139, 132, 120, 112, 123, 131, 124, 124, 115, 118, 133, 122, 130, 124, 114, 129, 127, 142, 116, 138, 112, 128, 127, 109, 103, 129, 125, 116, 131, 131, 132, 120, 119, 119, 122, 122, 132, 128, 131, 129, 125, 100, 106, 104, 130, 104, 123, 109, 130, 112, 140, 128, 118, 148, 127, 123, 140, 133, 136, 141, 116, 132, 128, 118, 124, 130, 138, 135, 124, 132, 108, 130, 132, 130, 106, 127, 131, 122, 116, 107, 118, 135, 136, 124, 112, 148, 155, 132, 137, 91, 131, 114, 133, 133, 118, 114, 128, 127, 137, 131, 115, 130, 122, 125, 122, 120, 119, 128, 117, 140, 122, 113, 126, 134, 132, 110, 142, 114, 107, 105, 129, 117, 135, 132, 115, 126, 120, 128, 135, 137, 123, 122, 136, 117, 119, 113, 125, 132, 122, 115, 136, 132, 132, 137, 138, 117, 116, 112, 140, 127, 111, 133, 147, 123, 109, 122, 138, 109, 124, 120, 136, 119, 116, 122, 123, 128, 135, 127, 126, 114, 132, 125, 119, 103, 124, 134, 127, 121, 116, 124, 138, 132, 124, 132, 123, 116, 134, 133, 124, 113, 118, 135, 117, 136, 130, 135, 125, 134, 124, 130, 127, 119, 117, 124, 118, 120, 124, 128, 138, 128, 110, 140, 129, 113, 116, 134, 124, 120, 132, 101, 124, 119, 120, 134, 134, 121, 120, 118, 133, 117, 132, 124, 124, 121, 125, 118, 131, 124, 136, 130, 122, 133, 112, 123, 125, 143, 115, 138, 143, 134, 130, 118, 122, 117, 114, 130, 145, 124, 135, 134, 125, 118, 152, 144, 116, 125, 132, 116, 104, 125, 127, 146, 126, 131, 127, 118, 117, 141, 134, 132, 117, 136, 115, 126, 113, 129, 136, 132, 134, 144, 127, 126, 136, 125, 130, 127, 141, 132, 103, 116, 107, 145, 128, 125, 130, 132, 107, 115, 130, 140, 122, 133, 124, 144, 138, 121, 124, 139, 115, 134, 152, 119, 125, 145, 136, 135, 135, 119, 130, 121, 122, 132, 131, 125, 120, 111, 122, 128, 129, 107, 120, 99, 137, 121, 126, 126, 122, 104, 146, 130, 137, 108, 110, 139, 122, 135, 135, 119, 142, 121, 127, 125, 126, 133, 127, 135, 119, 124, 126, 137, 143, 126, 119, 132, 111, 142, 133, 119, 120, 98, 141, 126, 100, 116, 125, 135, 129, 136, 115, 126, 123, 122, 113, 136, 133, 124, 131, 120, 113, 108, 122, 129, 134, 121, 118, 124, 117, 135, 128, 131, 125, 137, 118, 122, 127, 138, 116, 125, 134, 136, 130, 135, 125, 118, 135, 140, 119, 127, 115, 121, 124, 129, 134, 117, 131, 126, 116, 142, 130, 127, 136, 120, 120, 141, 129, 136, 122, 140, 111, 106, 130, 119, 140, 124, 121, 135, 115, 122, 129, 122, 107, 116, 119, 146, 119, 116, 144, 133, 131, 137, 133, 126, 129, 123, 125, 142, 123, 121, 120, 125, 127, 116, 109, 126, 137, 115, 125, 125, 111, 126, 128, 137, 149, 114, 117, 123, 122, 135, 129, 121, 129, 119, 124, 132, 135, 120, 114, 121, 118, 115, 120, 123, 120, 116, 123, 129, 132, 148, 120, 124, 123, 125, 125, 129, 135, 128, 104, 127, 122, 115, 150, 127, 134, 123, 113, 113, 119, 123, 137, 134, 118, 135, 133, 126, 130, 127, 127, 126, 124, 115, 122, 125, 127, 133, 165, 122, 129, 130, 129, 123, 121, 120, 103, 118, 128, 123, 119, 133, 119, 121, 128, 139, 121, 125, 116, 120, 148, 114, 125, 123, 131, 116, 133, 131, 120, 143, 107, 116, 118, 117, 143, 117, 152, 116, 145, 121, 125, 103, 143, 133, 109, 133, 128, 119, 142, 120, 119, 132, 99, 119, 123, 121, 110, 120, 114, 138, 123, 131, 118, 144, 112, 105, 123, 126, 121, 150, 143, 130, 113, 124, 120, 130, 130, 140, 134, 133, 131, 139, 121, 132, 123, 117, 119, 109, 127, 120, 133, 122, 135, 112, 124, 129, 146, 117, 121, 136, 123, 125, 101, 117, 125, 111, 121, 132, 120, 117, 130, 121, 122, 128, 117, 133, 136, 132, 135, 118, 112, 131, 144, 125, 125, 128, 129, 114, 123, 117, 126, 141, 130, 135, 119, 112, 103, 127, 122, 123, 147, 135, 129, 121, 131, 128, 126, 138, 137, 117, 125, 122, 116, 94, 100, 126, 121, 137, 122, 109, 111, 117, 126, 99, 137, 105, 142, 120, 139, 124, 136, 114, 96, 122, 120, 109, 121, 115, 120, 117, 116, 111, 122, 118, 132, 118, 115, 117, 134, 123, 137, 116, 126, 123, 132, 126, 117, 137, 116, 118, 104, 113, 125, 114, 122, 129, 138, 130, 137, 147, 108, 118, 131, 123, 119, 114, 136, 118, 130, 136, 122, 126, 126, 109, 122, 135, 123, 142, 139, 134, 117, 133, 137, 119, 136, 144, 124, 113, 136, 128, 129, 127, 131, 117, 142, 121, 127, 132, 124, 121, 124, 110, 145, 125, 123, 117, 99, 138, 135, 137, 126, 120, 132, 116, 137, 131, 120, 127, 133, 117, 133, 142, 132, 120, 115, 126, 128, 123, 104, 138, 136, 117, 127, 113, 136, 128, 130, 125, 120, 123, 122, 122, 112, 139, 153, 133, 131, 135, 153, 128, 131, 136, 128, 124, 114, 117, 126, 106, 125, 137, 135, 119, 136, 136, 145, 133, 136, 128, 140, 137, 128, 119, 134, 123, 135, 112, 127, 112, 132, 122, 137, 106, 127, 115, 134, 135, 124, 122, 134, 120, 134, 130, 126, 132, 138, 127, 122, 124, 132, 119, 127, 122, 122, 127, 132, 111, 114, 113, 113, 123, 144, 131, 130, 117, 125, 119, 134, 115, 121, 126, 125, 120, 136, 124, 123, 122, 131, 136, 122, 130, 144, 118, 106, 115, 119, 118, 138, 144, 140, 118, 131, 135, 112, 134, 128, 123, 127, 129, 126, 145, 115, 131, 135, 132, 112, 121, 109, 125, 106, 122, 134, 127, 135, 123, 114, 118, 125, 144, 117, 131, 125, 126, 126, 114, 143, 133, 136, 112, 120, 109, 132, 109, 106, 132, 131, 129, 115, 132, 112, 123, 121, 129, 115, 126, 136, 147, 110, 131, 169, 135, 120, 106, 129, 121, 133, 125, 125, 140, 119, 106, 115, 120, 133, 114, 126, 133, 153, 110, 106, 131, 109, 130, 120, 124, 125, 126, 119, 120, 110, 127, 128, 143, 122, 143, 134, 121, 118, 118, 145, 132, 114, 119, 100, 120, 104, 128, 123, 128, 110, 114, 122, 131, 124, 128, 120, 137, 125, 133, 137, 117, 117, 119, 117, 126, 116, 122, 94, 131, 112, 128, 136, 101, 140, 129, 129, 116, 136, 116, 126, 132, 124, 128, 138, 115, 113, 132, 139, 129, 110, 129, 121, 123, 122, 112, 138, 115, 118, 113, 125, 118, 138, 130, 137, 127, 114, 129, 128, 121, 120, 134, 107, 121, 112, 136, 115, 130, 114, 133, 105, 117, 139, 114, 145, 111, 117, 107, 127, 122, 144, 126, 160, 107, 118, 109, 114, 134, 138, 120, 127, 130, 123, 150, 127, 110, 115, 126, 122, 122, 137, 104, 122, 132, 112, 114, 125, 144, 123, 120, 113, 126, 130, 136, 112, 117, 137, 118, 138, 141, 133, 134, 130, 135, 142, 132, 109, 124, 110, 115, 128, 116, 121, 129, 119, 126, 138, 113, 125, 128, 137, 112, 125, 125, 129, 113, 119, 112, 139, 112, 121, 124, 135, 118, 124, 123, 134, 145, 118, 117, 122, 139, 121, 126, 112, 120, 121, 127, 125, 126, 129, 110, 120, 128, 122, 138, 119, 141, 122, 136, 121, 137, 136, 135, 141, 132, 114, 124, 136, 102, 120, 123, 102, 124, 113, 140, 115, 118, 137, 117, 123, 122, 118, 121, 126, 101, 136, 135, 135, 123, 124, 114, 142, 146, 142, 107, 148, 137, 113, 147, 131, 138, 122, 113, 125, 125, 121, 128, 119, 125, 113, 126, 152, 142, 119, 114, 122, 130, 132, 128, 103, 124, 122, 103, 96, 134, 112, 143, 119, 118, 112, 140, 112, 133, 129, 117, 140, 126, 120, 119, 130, 130, 121, 125, 119, 129, 146, 105, 133, 130, 124, 119, 131, 122, 142, 146, 127, 117, 114, 126, 143, 101, 126, 118, 123, 126, 125, 110, 126, 145, 128, 121, 114, 109, 122, 127, 120, 135, 129, 128, 112, 120, 114, 113, 133, 133, 117, 131, 114, 106, 133, 130, 121, 133, 111, 121, 136, 115, 120, 123, 135, 118, 127, 130, 155, 138, 117, 127, 120, 135, 125, 136, 116, 114, 131, 122, 116, 127, 115, 128, 131, 121, 121, 130, 104, 147, 106, 122, 106, 125, 123, 122, 133, 123, 115, 112, 128, 117, 122, 123, 135, 137, 128, 147, 135, 123, 130, 132, 119, 127, 128, 122, 133, 110, 134, 124, 129, 139, 115, 131, 126, 148, 120, 102, 114, 125, 117, 115, 122, 121, 116, 121, 162, 109, 113, 133, 97, 133, 130, 123, 147, 114, 127, 117, 121, 122, 103, 120, 123, 99, 138, 128, 127, 141, 109, 104, 125, 95, 126, 114, 153, 128, 106, 112, 119, 121, 121, 110, 114, 116, 124, 135, 121, 115, 128, 121, 142, 117, 125, 132, 119, 126, 146, 121, 128, 121, 142, 121, 101, 110, 107, 121, 117, 134, 118, 103, 129, 133, 117, 143, 127, 111, 143, 136, 134, 115, 128, 120, 114, 124, 150, 116, 125, 112, 121, 113, 116, 132, 142, 135, 120, 121, 118, 124, 133, 125, 126, 144, 128, 118, 118, 112, 144, 130, 143, 132, 133, 134, 117, 117, 127, 141, 135, 131, 127, 114, 129, 134, 116, 131, 118, 131, 126, 117, 121, 130, 161, 126, 131, 154, 140, 116, 110, 125, 137, 112, 122, 152, 136, 117, 134, 150, 126, 116, 126, 122, 118, 152, 122, 158, 148, 106, 131, 128, 107, 141, 106, 106, 141, 122, 134, 122, 131, 130, 131, 150, 132, 133, 111, 126, 110, 113, 118, 126, 127, 141, 130, 132, 125, 115, 115, 124, 152, 122, 131, 118, 101, 113, 142, 117, 112, 133, 139, 132, 117, 144, 143, 140, 146, 133, 122, 116, 118, 126, 123, 104, 149, 129, 139, 126, 108, 128, 133, 160, 123, 122, 110, 120, 122, 128, 138, 118, 116, 127, 111, 139, 124, 117, 148, 115, 123, 145, 120, 132, 131, 128, 127, 142, 113, 126, 142, 127, 128, 120, 139, 133, 128, 133, 120, 97, 121, 118, 136, 133, 107, 126, 128, 129, 118, 117, 127, 130, 116, 123, 131, 105, 150, 121, 129, 102, 123, 136, 134, 107, 127, 125, 134, 127, 118, 138, 147, 125, 108, 128, 126, 142, 130, 133, 121, 130, 135, 126, 128, 116, 127, 113, 137, 126, 122, 135, 135, 121, 126, 125, 121, 131, 129, 156, 132, 114, 125, 115, 121, 143, 111, 139, 122, 131, 132, 122, 110, 137, 116, 109, 116, 113, 122, 109, 115, 127, 129, 118, 118, 128, 120, 117, 105, 119, 122, 128, 140, 147, 127, 110, 115, 105, 107, 129, 127, 144, 128, 125, 128, 121, 121, 132, 123, 132, 131, 124, 110, 116, 137, 140, 118, 123, 144, 112, 142, 140, 139, 109, 120, 110, 116, 128, 107, 144, 135, 125, 138, 141, 124, 132, 114, 134, 124, 143, 149, 143, 123, 114, 132, 125, 111, 118, 108, 124, 130, 119, 138, 126, 132, 116, 137, 156, 156, 115, 140, 128, 144, 113, 141, 127, 120, 110, 123, 107, 121, 130, 122, 116, 134, 120, 113, 117, 118, 152, 117, 116, 121, 148, 124, 127, 137, 122, 128, 101, 120, 119, 137, 115, 156, 135, 128, 124, 116, 122, 129, 134, 123, 146, 123, 123, 131, 131, 127, 122, 116, 142, 103, 131, 129, 122, 133, 121, 145, 125, 114, 138, 115, 110, 146, 114, 128, 132, 136, 122, 127, 134, 128, 124, 138, 114, 120, 147, 85, 123, 118, 132, 129, 114, 149, 137, 146, 124, 121, 114, 124, 147, 127, 109, 130, 134, 125, 144, 141, 139, 124, 121, 115, 141, 132, 142, 122, 125, 99, 132, 135, 121, 114, 128, 120, 120, 129, 122, 95, 120, 132, 121, 127, 100, 131, 129, 124, 123, 144, 147, 103, 124, 145, 110, 120, 123, 128, 130, 130, 132, 135, 111, 122, 136, 121, 133, 123, 120, 148, 123, 110, 121, 144, 118, 114, 129, 114, 116, 118, 128, 110, 111, 127, 130, 108, 134, 144, 124, 122, 136, 99, 117, 102, 128, 118, 119, 117, 146, 110, 124, 125, 131, 131, 119, 125, 134, 125, 115, 141, 108, 117, 124, 126, 114, 125, 137, 150, 109, 136, 122, 125, 115, 129, 116, 111, 116, 124, 116, 123, 120, 130, 132, 126, 116, 140, 126, 126, 123, 125, 128, 118, 106, 140, 118, 117, 107, 139, 137, 105, 133, 117, 118, 136, 131, 127, 134, 131, 117, 111, 127, 117, 89, 132, 127, 122, 127, 109, 122, 137, 121, 120, 138, 134, 110, 127, 124, 115, 119, 115, 122, 130, 128, 126, 119, 111, 135, 107, 131, 130, 120, 98, 118, 132, 110, 130, 118, 116, 134, 127, 123, 129, 119, 112, 105, 134, 124, 122, 122, 139, 121, 126, 122, 132, 136, 121, 140, 114, 128, 109, 118, 134, 127, 105, 107, 116, 126, 118, 137, 129, 130, 146, 126, 136, 117, 124, 120, 112, 110, 141, 131, 124, 138, 124, 134, 118, 153, 151, 133, 114, 140, 110, 142, 113, 120, 115, 126, 117, 115, 135, 111, 124, 142, 140, 124, 130, 119, 121, 130, 136, 116, 134, 107, 119, 111, 127, 134, 122, 114, 139, 125, 114, 121, 126, 145, 137, 130, 114, 128, 134, 125, 129, 134, 125, 143, 137, 125, 124, 151, 148, 127, 117, 132, 126, 159, 117, 141, 106, 126, 133, 134, 128, 117, 118, 122, 117, 113, 117, 127, 118, 124, 123, 123, 153, 110, 132, 123, 128, 158, 130, 121, 150, 133, 126, 139, 133, 146, 113, 109, 117, 130, 132, 138, 125, 139, 133, 106, 138, 118, 132, 137, 135, 132, 130, 136, 128, 114, 138, 125, 121, 126, 120, 126, 135, 128, 128, 107, 134, 106, 133, 147, 125, 138, 123, 132, 120, 130, 126, 124, 132, 138, 121, 140, 126, 120, 114, 110, 125, 137, 120, 151, 134, 142, 142, 119, 117, 125, 129, 124, 123, 126, 132, 128, 111, 127, 102, 98, 124, 128, 126, 113, 146, 121, 133, 120, 134, 130, 134, 114, 116, 127, 141, 117, 126, 133, 138, 114, 139, 116, 115, 130, 129, 118, 139, 124, 119, 121, 114, 123, 113, 126, 112, 114, 117, 121, 130, 117, 117, 139, 127, 122, 131, 146, 122, 128, 117, 127, 106, 127, 125, 105, 141, 123, 117, 128, 157, 134, 135, 134, 104, 126, 110, 118, 110, 133, 127, 115, 128, 127, 103, 118, 121, 137, 116, 129, 135, 122, 123, 126, 118, 129, 122, 136, 124, 129, 101, 104, 150, 123, 137, 124, 120, 143, 123, 124, 129, 120, 127, 138, 107, 137, 145, 127, 116, 113, 121, 109, 107, 128, 122, 125, 136, 134, 121, 138, 129, 116, 114, 123, 110, 131, 123, 128, 132, 124, 136, 120, 116, 131, 120, 121, 113, 131, 122, 120, 136, 133, 125, 118, 143, 106, 123, 135, 126, 128, 135, 113, 148, 118, 123, 110, 122, 114, 138, 120, 132, 115, 136, 130, 119, 142, 135, 128, 161, 122, 122, 123, 121, 123, 130, 99, 121, 106, 135, 135, 125, 132, 118, 121, 140, 121, 129, 133, 136, 114, 139, 125, 127, 130, 125, 120, 138, 134, 125, 118, 120, 122, 132, 134, 126, 135, 137, 126, 140, 125, 126, 130, 115, 131, 122, 123, 133, 127, 110, 128, 127, 133, 129, 115, 119, 124, 128, 134, 140, 148, 111, 129, 129, 124, 133, 139, 115, 120, 128, 132, 125, 134, 112, 132, 110, 120, 119, 141, 116, 119, 122, 126, 111, 136, 132, 127, 132, 126, 128, 94, 126, 106, 118, 123, 120, 117, 118, 137, 134, 134, 116, 128, 118, 116, 109, 124, 108, 123, 132, 153, 138, 121, 129, 123, 129, 129, 119, 127, 129, 125, 134, 112, 122, 132, 134, 120, 121, 108, 101, 126, 125, 120, 134, 109, 117, 101, 127, 132, 128, 130, 136, 109, 119, 121, 117, 124, 134, 129, 114, 110, 126, 125, 129, 124, 119, 129, 124, 123, 136, 133, 130, 126, 113, 156, 120, 138, 142, 112, 131, 143, 111, 130, 133, 131, 110, 136, 118, 119, 120, 118, 139, 132, 135, 133, 120, 141, 108, 118, 124, 124, 120, 119, 129, 110, 142, 113, 94, 123, 128, 137, 138, 134, 136, 125, 130, 115, 122, 119, 137, 113, 117, 132, 117, 125, 112, 116, 125, 113, 112, 118, 124, 146, 141, 139, 131, 129, 137, 132, 115, 135, 102, 129, 119, 127, 141, 125, 122, 126, 143, 121, 137, 112, 129, 113, 117, 117, 113, 118, 129, 130, 113, 124, 125, 121, 120, 128, 122, 132, 125, 139, 125, 121, 138, 118, 127, 133, 135, 141, 109, 117, 134, 127, 138, 114, 124, 123, 116, 121, 122, 126, 125, 129, 103, 130, 118, 117, 131, 138, 133, 125, 129, 132, 129, 139, 133, 123, 118, 138, 145, 142, 134, 133, 117, 140, 141, 120, 123, 126, 122, 115, 133, 124, 130, 103, 135, 122, 124, 125, 119, 121, 106, 136, 122, 124, 115, 115, 107, 123, 110, 136, 132, 115, 141, 114, 136, 127, 133, 122, 122, 129, 135, 133, 120, 129, 111, 117, 128, 137, 112, 128, 130, 112, 137, 133, 129, 141, 135, 126, 136, 129, 126, 112, 124, 113, 96, 103, 118, 126, 111, 141, 117, 112, 131, 124, 126, 133, 125, 111, 123, 109, 132, 127, 111, 121, 117, 134, 127, 125, 98, 140, 142, 130, 125, 114, 137, 119, 116, 133, 124, 130, 119, 132, 129, 121, 138, 138, 147, 115, 115, 120, 111, 122, 140, 138, 130, 137, 116, 148, 125, 145, 121, 141, 130, 111, 121, 117, 116, 131, 122, 117, 134, 123, 128, 118, 124, 132, 134, 125, 123, 124, 125, 134, 135, 128, 133, 122, 116, 122, 117, 118, 119, 115, 132, 117, 144, 100, 121, 113, 131, 126, 114, 137, 123, 124, 137, 133, 121, 113, 137, 145, 138, 115, 109, 126, 144, 123, 122, 120, 126, 119, 135, 116, 112, 121, 132, 130, 117, 129, 143, 138, 114, 121, 121, 125, 134, 137, 122, 137, 120, 129, 141, 125, 122, 117, 141, 139, 124, 137, 107, 132, 125, 118, 109, 115, 159, 128, 125, 137, 132, 131, 137, 100, 119, 125, 126, 112, 120, 109, 129, 153, 140, 118, 134, 127, 137, 137, 139, 110, 133, 115, 123, 120, 126, 122, 129, 124, 117, 142, 114, 133, 135, 138, 129, 145, 134, 129, 107, 131, 128, 116, 127, 120, 145, 128, 137, 121, 131, 122, 134, 120, 128, 112, 100, 124, 132, 119, 139, 139, 135, 120, 129, 115, 116, 117, 124, 136, 119, 127, 124, 146, 140, 134, 111, 124, 125, 126, 110, 123, 132, 128, 116, 119, 128, 128, 131, 141, 124, 139, 133, 124, 115, 116, 125, 149, 125, 122, 121, 125, 129, 106, 107, 120, 110, 99, 148, 123, 127, 137, 125, 117, 123, 135, 112, 142, 140, 126, 125, 120, 131, 121, 144, 112, 140, 99, 135, 137, 113, 126, 129, 129, 140, 121, 131, 133, 147, 142, 109, 124, 108, 108, 124, 121, 147, 131, 109, 115, 134, 137, 112, 101, 124, 124, 120, 120, 126, 129, 124, 135, 129, 135, 145, 133, 134, 128, 104, 112, 133, 117, 118, 141, 109, 122, 154, 114, 116, 136, 99, 125, 131, 121, 107, 141, 114, 134, 121, 134, 123, 114, 115, 116, 136, 107, 148, 135, 125, 126, 114, 113, 118, 109, 117, 131, 117, 101, 119, 119, 140, 133, 128, 127, 141, 116, 109, 130, 121, 116, 110, 123, 139, 133, 130, 122, 129, 117, 127, 120, 143, 134, 114, 128, 119, 143, 130, 127, 134, 153, 130, 135, 122, 127, 119, 120, 135, 123, 118, 131, 133, 100, 116, 112, 138, 131, 142, 122, 133, 143, 137, 131, 139, 120, 118, 140, 109, 124, 118, 129, 121, 150, 135, 133, 126, 126, 135, 140, 117, 125, 135, 132, 129, 88, 139, 127, 145, 116, 135, 96, 131, 128, 129, 118, 129, 114, 115, 124, 129, 125, 124, 128, 136, 115, 115, 109, 125, 122, 127, 122, 144, 113, 120, 124, 117, 114, 120, 132, 125, 128, 130, 107, 125, 130, 137, 121, 137, 134, 112, 120, 127, 136, 134, 113, 125, 128, 108, 130, 110, 147, 127, 113, 126, 143, 119, 131, 120, 115, 126, 111, 115, 109, 130, 119, 126, 124, 114, 117, 133, 137, 129, 114, 129, 130, 138, 129, 128, 116, 125, 114, 120, 125, 119, 119, 128, 131, 126, 126, 104, 127, 108, 129, 132, 131, 131, 144, 113, 118, 126, 122, 128, 136, 109, 125, 136, 132, 130, 128, 120, 125, 123, 116, 118, 103, 135, 125, 86, 128, 132, 123, 119, 122, 126, 123, 135, 126, 113, 108, 125, 129, 121, 131, 129, 114, 138, 133, 125, 117, 123, 132, 122, 123, 110, 120, 132, 124, 124, 106, 144, 109, 157, 129, 128, 113, 115, 126, 123, 145, 137, 135, 121, 125, 141, 122, 126, 131, 102, 132, 128, 131, 128, 115, 151, 118, 136, 125, 140, 128, 130, 146, 118, 122, 117, 112, 120, 114, 122, 129, 127, 124, 136, 119, 124, 125, 134, 113, 137, 130, 121, 121, 123, 119, 121, 132, 127, 125, 120, 141, 137, 134, 108, 119, 122, 118, 138, 113, 131, 129, 134, 131, 134, 120, 117, 110, 128, 143, 120, 134, 126, 109, 127, 115, 129, 125, 103, 124, 123, 125, 134, 123, 126, 136, 134, 122, 145, 121, 122, 131, 132, 110, 139, 121, 121, 127, 125, 117, 128, 139, 128, 141, 112, 135, 122, 112, 118, 123, 135, 115, 126, 131, 123, 127, 125, 140, 123, 125, 126, 120, 122, 128, 134, 118, 124, 118, 132, 107, 129, 120, 132, 120, 121, 123, 117, 129, 114, 128, 119, 122, 97, 116, 120, 98, 121, 148, 121, 103, 118, 140, 123, 128, 105, 141, 127, 123, 122, 106, 113, 97, 124, 135, 114, 128, 120, 111, 99, 120, 105, 131, 124, 121, 144, 129, 121, 117, 139, 113, 129, 119, 130, 128, 123, 129, 130, 146, 126, 117, 116, 124, 124, 117, 122, 121, 120, 127, 123, 124, 120, 127, 153, 129, 109, 123, 122, 120, 129, 128, 124, 144, 126, 118, 106, 114, 116, 116, 122, 141, 127, 131, 123, 109, 120, 117, 125, 130, 124, 156, 135, 130, 123, 140, 129, 138, 128, 141, 122, 119, 134, 122, 139, 129, 148, 126, 126, 124, 115, 126, 119, 122, 127, 131, 136, 113, 141, 116, 128, 136, 128, 127, 138, 118, 110, 126, 131, 121, 121, 121, 129, 137, 129, 148, 146, 170, 148, 119, 136, 126, 137, 126, 140, 120, 120, 135, 117, 107, 118, 138, 123, 134, 132, 113, 125, 136, 131, 136, 123, 136, 112, 126, 133, 122, 129, 142, 123, 137, 129, 130, 140, 111, 132, 132, 128, 132, 118, 148, 129, 130, 133, 133, 122, 125, 110, 147, 126, 127, 132, 134, 135, 118, 124, 126, 138, 132, 114, 101, 113, 114, 124, 128, 117, 130, 133, 135, 132, 129, 121, 113, 127, 107, 132, 109, 126, 115, 126, 116, 142, 117, 108, 129, 124, 132, 128, 129, 117, 128, 134, 129, 123, 127, 116, 106, 141, 143, 139, 120, 128, 138, 102, 132, 132, 145, 129, 128, 111, 132, 133, 140, 127, 129, 127, 131, 139, 120, 114, 128, 111, 121, 119, 133, 117, 140, 158, 112, 118, 131, 110, 115, 144, 131, 119, 116, 138, 135, 131, 121, 117, 136, 133, 122, 99, 124, 142, 123, 117, 127, 114, 132, 115, 128, 121, 119, 129, 113, 119, 124, 104, 108, 129, 109, 121, 127, 117, 123, 138, 119, 128, 131, 132, 108, 118, 139, 159, 127, 123, 122, 130, 105, 115, 116, 123, 120, 116, 118, 127, 148, 123, 122, 111, 136, 133, 119, 122, 107, 117, 122, 98, 135, 125, 148, 128, 134, 126, 128, 127, 106, 121, 125, 120, 128, 143, 143, 142, 131, 123, 137, 129, 125, 134, 134, 118, 123, 109, 110, 125, 143, 108, 111, 121, 119, 120, 118, 125, 142, 123, 132, 123, 133, 147, 136, 124, 118, 127, 128, 111, 116, 138, 120, 114, 112, 113, 127, 135, 126, 119, 124, 114, 122, 114, 136, 129, 127, 122, 143, 129, 146, 121, 118, 111, 123, 143, 113, 123, 119, 142, 135, 132, 119, 122, 122, 113, 115, 125, 132, 133, 144, 138, 141, 113, 122, 128, 126, 128, 130, 126, 131, 119, 126, 125, 130, 141, 118, 110, 134, 117, 121, 129, 122, 137, 138, 125, 147, 127, 122, 117, 122, 113, 109, 122, 99, 135, 130, 127, 140, 117, 129, 108, 130, 120, 132, 123, 140, 116, 142, 140, 132, 121, 115, 116, 133, 124, 124, 118, 122, 128, 130, 124, 133, 133, 125, 127, 107, 130, 128, 124, 120, 130, 140, 137, 129, 114, 126, 114, 123, 112, 129, 118, 122, 126, 129, 115, 141, 127, 111, 141, 117, 140, 129, 112, 138, 124, 145, 118, 125, 124, 130, 123, 131, 125, 141, 129, 130, 112, 149, 154, 138, 141, 133, 114, 108, 146, 130, 128, 118, 127, 130, 140, 131, 131, 125, 138, 128, 120, 137, 136, 121, 124, 122, 120, 119, 104, 115, 124, 111, 127, 123, 115, 129, 127, 129, 123, 115, 128, 113, 119, 127, 122, 96, 115, 128, 135, 134, 116, 114, 156, 145, 116, 143, 119, 122, 126, 115, 127, 123, 122, 123, 152, 126, 103, 124, 129, 119, 122, 127, 123, 125, 107, 126, 116, 128, 129, 128, 118, 140, 117, 117, 139, 112, 122, 131, 127, 112, 119, 117, 137, 121, 156, 115, 117, 139, 92, 123, 124, 127, 128, 128, 125, 123, 115, 128, 125, 139, 104, 122, 118, 124, 131, 129, 116, 120, 124, 152, 136, 131, 116, 107, 143, 126, 124, 130, 143, 122, 139, 120, 101, 116, 131, 149, 114, 127, 145, 122, 129, 128, 120, 125, 106, 134, 97, 129, 137, 127, 130, 124, 124, 120, 130, 129, 129, 109, 123, 107, 123, 119, 139, 114, 131, 110, 107, 131, 130, 124, 131, 125, 125, 125, 102, 125, 137, 119, 118, 136, 125, 114, 116, 123, 127, 127, 122, 141, 122, 130, 143, 104, 138, 123, 120, 134, 121, 120, 106, 112, 125, 119, 132, 132, 120, 125, 152, 115, 129, 120, 112, 126, 119, 121, 106, 132, 103, 126, 113, 129, 111, 132, 120, 125, 114, 102, 126, 137, 125, 131, 99, 124, 131, 136, 122, 128, 132, 133, 128, 131, 108, 124, 123, 136, 123, 125, 134, 126, 135, 122, 103, 117, 133, 145, 138, 129, 120, 137, 115, 127, 128, 132, 123, 119, 122, 134, 128, 124, 124, 131, 118, 130, 112, 138, 116, 114, 131, 132, 106, 107, 146, 113, 125, 131, 129, 135, 126, 127, 117, 135, 127, 126, 127, 117, 126, 128, 121, 113, 122, 115, 136, 122, 142, 131, 126, 132, 144, 125, 143, 128, 128, 124, 124, 136, 120, 132, 152, 113, 119, 108, 120, 134, 133, 124, 130, 105, 144, 126, 101, 120, 119, 118, 135, 141, 119, 122, 129, 127, 128, 137, 114, 126, 126, 124, 109, 123, 115, 138, 116, 129, 120, 115, 118, 103, 140, 122, 118, 119, 132, 116, 124, 123, 138, 128, 139, 119, 159, 118, 112, 128, 111, 123, 133, 126, 111, 120, 129, 124, 123, 148, 121, 136, 128, 136, 121, 129, 123, 122, 122, 117, 121, 132, 139, 110, 131, 121, 101, 109, 136, 121, 117, 139, 119, 124, 102, 115, 131, 130, 115, 132, 133, 112, 114, 119, 121, 115, 136, 127, 138, 127, 97, 140, 122, 119, 122, 128, 111, 132, 144, 123, 115, 132, 145, 122, 123, 124, 117, 122, 131, 130, 107, 125, 109, 137, 122, 155, 120, 119, 144, 106, 128, 105, 136, 127, 144, 123, 136, 123, 102, 126, 131, 144, 117, 112, 117, 141, 136, 129, 121, 128, 129, 125, 114, 127, 112, 134, 123, 109, 125, 116, 119, 90, 130, 130, 131, 111, 129, 124, 125, 126, 116, 122, 126, 101, 124, 126, 119, 127, 134, 125, 121, 125, 138, 150, 134, 138, 135, 121, 129, 120, 108, 102, 128, 124, 138, 116, 123, 132, 118, 109, 144, 117, 137, 142, 115, 126, 121, 107, 129, 126, 139, 110, 123, 131, 123, 129, 137, 119, 109, 123, 125, 111, 131, 116, 114, 126, 130, 111, 113, 125, 138, 120, 151, 115, 125, 118, 111, 109, 129, 127, 123, 120, 131, 127, 122, 133, 132, 115, 153, 152, 103, 125, 104, 98, 132, 121, 103, 133, 124, 127, 101, 132, 136, 112, 126, 128, 119, 133, 133, 133, 128, 109, 126, 125, 117, 114, 157, 114, 129, 138, 103, 139, 123, 124, 127, 130, 134, 125, 139, 124, 140, 129, 124, 126, 112, 99, 138, 129, 125, 128, 126, 132, 122, 111, 115, 124, 115, 114, 135, 118, 148, 135, 122, 130, 112, 132, 124, 125, 111, 141, 115, 121, 134, 95, 148, 116, 148, 120, 125, 117, 127, 129, 135, 122, 116, 135, 119, 145, 115, 112, 128, 138, 126, 118, 116, 136, 128, 123, 114, 135, 143, 118, 120, 125, 131, 111, 117, 121, 109, 129, 130, 123, 138, 112, 132, 119, 130, 129, 122, 126, 108, 121, 118, 108, 131, 119, 118, 152, 125, 106, 117, 111, 145, 130, 129, 125, 131, 121, 134, 122, 124, 132, 117, 118, 129, 114, 116, 147, 126, 123, 128, 119, 127, 117, 138, 123, 131, 114, 128, 120, 126, 127, 118, 122, 132, 153, 139, 139, 121, 128, 118, 127, 134, 126, 133, 145, 120, 128, 116, 100, 114, 126, 149, 139, 104, 116, 123, 111, 116, 127, 120, 139, 122, 121, 111, 135, 109, 129, 131, 144, 118, 126, 126, 136, 130, 124, 133, 143, 139, 108, 121, 127, 130, 140, 130, 126, 128, 116, 130, 104, 127, 102, 132, 133, 139, 130, 133, 120, 121, 120, 135, 117, 118, 144, 136, 138, 124, 118, 111, 119, 121, 128, 117, 143, 116, 121, 140, 146, 123, 131, 129, 130, 122, 134, 119, 122, 115, 118, 108, 129, 119, 134, 126, 115, 122, 128, 89, 154, 141, 121, 115, 133, 132, 122, 131, 134, 125, 143, 133, 134, 119, 125, 114, 126, 129, 124, 120, 130, 129, 126, 143, 119, 128, 112, 130, 135, 118, 122, 130, 114, 124, 120, 119, 138, 119, 147, 119, 126, 120, 116, 132, 137, 124, 123, 116, 115, 128, 144, 126, 132, 120, 141, 133, 152, 135, 119, 123, 123, 118, 126, 109, 122, 143, 122, 125, 151, 124, 126, 136, 141, 120, 130, 114, 119, 132, 137, 125, 125, 133, 128, 103, 125, 128, 117, 134, 137, 121, 122, 136, 119, 120, 126, 122, 123, 120, 126, 104, 128, 144, 116, 130, 127, 113, 116, 119, 114, 124, 129, 92, 137, 119, 145, 152, 125, 125, 109, 116, 140, 143, 133, 128, 116, 130, 128, 109, 133, 123, 120, 120, 105, 107, 139, 109, 126, 127, 115, 116, 120, 135, 126, 142, 116, 114, 130, 142, 122, 137, 126, 123, 124, 127, 110, 131, 124, 125, 135, 124, 120, 123, 118, 108, 122, 116, 118, 127, 120, 114, 123, 136, 136, 113, 137, 133, 132, 119, 119, 121, 117, 128, 118, 136, 141, 127, 123, 137, 132, 128, 143, 116, 116, 127, 118, 119, 108, 105, 127, 122, 121, 137, 122, 117, 108, 108, 106, 124, 119, 133, 132, 115, 122, 114, 133, 126, 121, 121, 115, 125, 132, 121, 109, 124, 121, 109, 123, 144, 124, 130, 112, 140, 123, 111, 127, 129, 132, 113, 115, 133, 128, 122, 137, 122, 128, 125, 123, 142, 132, 122, 133, 122, 125, 131, 130, 123, 121, 141, 116, 117, 117, 121, 130, 131, 148, 137, 123, 120, 132, 152, 132, 134, 118, 120, 128, 112, 110, 146, 118, 125, 129, 119, 113, 120, 120, 129, 101, 133, 114, 141, 124, 117, 127, 109, 119, 125, 109, 121, 126, 148, 123, 123, 136, 133, 112, 119, 112, 115, 121, 106, 137, 121, 117, 127, 124, 104, 135, 116, 123, 110, 137, 131, 128, 132, 124, 121, 135, 128, 119, 109, 124, 114, 145, 125, 126, 134, 131, 117, 124, 125, 122, 104, 128, 128, 118, 133, 107, 130, 124, 145, 137, 120, 132, 109, 118, 125, 126, 116, 126, 134, 108, 133, 119, 118, 123, 127, 122, 125, 141, 140, 126, 118, 137, 121, 130, 125, 116, 141, 123, 130, 124, 122, 104, 148, 120, 125, 122, 121, 126, 129, 121, 133, 125, 130, 123, 136, 117, 125, 100, 119, 107, 110, 131, 133, 130, 111, 124, 129, 98, 123, 136, 125, 140, 134, 137, 130, 129, 132, 124, 126, 127, 123, 127, 136, 127, 108, 118, 115, 132, 113, 136, 135, 107, 132, 106, 117, 129, 121, 137, 121, 116, 116, 143, 148, 142, 139, 119, 132, 99, 118, 118, 121, 118, 109, 131, 122, 120, 127, 125, 137, 117, 114, 120, 141, 133, 113, 117, 161, 147, 132, 112, 113, 120, 113, 159, 128, 135, 115, 128, 128, 134, 142, 133, 120, 124, 127, 135, 109, 131, 121, 123, 130, 117, 117, 145, 141, 117, 123, 123, 137, 115, 127, 128, 134, 127, 132, 114, 115, 115, 131, 126, 127, 125, 126, 139, 133, 125, 125, 141, 120, 137, 129, 133, 121, 92, 119, 128, 129, 113, 116, 137, 117, 142, 115, 112, 132, 117, 136, 115, 108, 134, 110, 131, 121, 130, 130, 127, 134, 124, 125, 128, 127, 119, 138, 119, 124, 123, 129, 105, 127, 126, 119, 122, 145, 125, 132, 135, 142, 121, 137, 127, 135, 123, 134, 131, 125, 128, 137, 114, 122, 132, 109, 127, 134, 109, 125, 139, 114, 133, 134, 110, 103, 133, 138, 134, 111, 135, 110, 137, 99, 132, 143, 133, 120, 135, 131, 135, 121, 140, 130, 128, 143, 142, 104, 149, 141, 136, 126, 105, 147, 121, 130, 114, 123, 141, 124, 141, 112, 127, 137, 147, 120, 119, 118, 124, 120, 121, 129, 138, 138, 131, 117, 116, 134, 117, 139, 126, 129, 129, 137, 104, 128, 125, 118, 130, 130, 129, 124, 120, 131, 140, 117, 121, 119, 122, 125, 125, 111, 128, 121, 135, 131, 106, 133, 128, 112, 117, 122, 132, 145, 131, 112, 113, 118, 126, 159, 127, 110, 122, 110, 115, 137, 125, 131, 127, 108, 119, 143, 116, 118, 130, 133, 120, 132, 124, 130, 134, 119, 134, 126, 144, 113, 121, 116, 116, 115, 126, 128, 109, 130, 140, 129, 119, 156, 129, 118, 140, 123, 117, 132, 129, 136, 123, 134, 147, 115, 148, 123, 139, 128, 131, 131, 132, 121, 136, 132, 132, 142, 125, 118, 138, 120, 135, 127, 123, 123, 150, 125, 130, 126, 127, 127, 109, 123, 116, 144, 143, 114, 133, 129, 121, 132, 113, 134, 124, 128, 136, 114, 117, 140, 120, 141, 125, 142, 134, 132, 128, 106, 110, 115, 111, 126, 121, 132, 124, 119, 113, 131, 109, 120, 140, 108, 131, 145, 136, 115, 135, 112, 129, 133, 112, 120, 129, 132, 122, 125, 113, 116, 125, 104, 124, 114, 136, 117, 126, 127, 131, 154, 114, 132, 122, 118, 137, 123, 137, 131, 129, 121, 135, 128, 133, 142, 128, 134, 128, 138, 124, 117, 106, 120, 107, 125, 138, 125, 124, 119, 133, 118, 126, 130, 137, 117, 113, 135, 127, 133, 130, 131, 109, 106, 121, 131, 111, 125, 148, 116, 133, 133, 125, 128, 139, 141, 126, 126, 132, 112, 135, 125, 124, 127, 121, 121, 124, 116, 147, 127, 122, 137, 109, 123, 124, 115, 131, 106, 102, 112, 126, 117, 150, 110, 108, 126, 129, 137, 136, 139, 126, 132, 129, 125, 124, 133, 145, 119, 138, 120, 131, 123, 125, 128, 129, 130, 135, 125, 122, 145, 109, 119, 123, 106, 134, 121, 139, 131, 139, 130, 126, 128, 127, 109, 135, 123, 129, 102, 118, 128, 129, 132, 128, 134, 115, 130, 124, 123, 120, 135, 139, 124, 124, 125, 124, 136, 122, 128, 120, 142, 136, 126, 109, 122, 126, 121, 128, 140, 113, 121, 130, 140, 109, 118, 122, 119, 112, 123, 111, 119, 138, 123, 117, 137, 140, 116, 122, 116, 137, 122, 118, 129, 117, 114, 130, 129, 141, 132, 128, 134, 131, 126, 124, 127, 134, 136, 106, 128, 122, 146, 124, 119, 131, 111, 119, 129, 118, 120, 129, 110, 124, 139, 121, 119, 136, 117, 114, 125, 134, 141, 123, 119, 125, 125, 122, 114, 119, 131, 117, 114, 149, 138, 135, 141, 145, 110, 107, 122, 113, 115, 113, 119, 136, 105, 121, 127, 131, 127, 134, 116, 123, 129, 122, 117, 126, 132, 130, 110, 138, 137, 115, 124, 124, 139, 141, 136, 115, 121, 127, 134, 115, 133, 135, 131, 125, 137, 123, 111, 131, 117, 113, 122, 108, 124, 120, 141, 117, 125, 125, 105, 123, 112, 116, 109, 137, 138, 127, 114, 127, 129, 132, 128, 130, 115, 119, 112, 129, 136, 133, 111, 133, 130, 155, 103, 150, 129, 125, 121, 143, 118, 148, 126, 109, 130, 132, 130, 141, 114, 124, 139, 102, 125, 120, 132, 122, 117, 126, 133, 135, 127, 113, 124, 127, 130, 133, 135, 131, 116, 124, 129, 108, 127, 133, 122, 105, 124, 128, 118, 131, 143, 138, 112, 118, 130, 141, 136, 121, 125, 112, 112, 127, 115, 137, 125, 138, 123, 129, 140, 119, 127, 146, 120, 126, 124, 128, 134, 140, 117, 123, 130, 132, 104, 134, 104, 133, 131, 126, 132, 110, 122, 124, 109, 121, 125, 127, 119, 117, 125, 116, 124, 109, 123, 124, 112, 126, 122, 124, 124, 133, 112, 93, 137, 127, 121, 127, 121, 135, 128, 144, 128, 107, 124, 143, 130, 122, 114, 127, 118, 139, 121, 145, 128, 120, 130, 116, 142, 125, 132, 126, 130, 123, 144, 133, 117, 123, 112, 135, 106, 142, 111, 138, 107, 121, 117, 137, 137, 142, 104, 109, 127, 111, 117, 130, 131, 128, 119, 133, 147, 121, 112, 142, 134, 118, 137, 133, 135, 115, 127, 119, 116, 135, 121, 115, 131, 130, 123, 127, 136, 115, 94, 108, 114, 131, 130, 129, 137, 126, 126, 108, 126, 110, 116, 125, 133, 130, 118, 114, 134, 164, 128, 119, 116, 125, 108, 129, 131, 131, 124, 135, 112, 133, 132, 126, 136, 123, 123, 131, 139, 116, 108, 113, 123, 108, 112, 123, 127, 112, 134, 129, 125, 135, 127, 110, 131, 112, 126, 133, 132, 138, 113, 96, 145, 122, 121, 121, 127, 104, 123, 106, 126, 114, 118, 119, 131, 124, 128, 123, 127, 143, 128, 143, 130, 130, 124, 107, 139, 128, 132, 109, 112, 135, 136, 128, 137, 107, 122, 124, 117, 124, 126, 131, 129, 146, 108, 134, 142, 124, 109, 127, 115, 116, 137, 112, 119, 106, 107, 120, 132, 113, 120, 137, 153, 137, 129, 154, 121, 135, 108, 138, 129, 129, 122, 128, 128, 134, 130, 138, 121, 122, 125, 119, 137, 115, 115, 125, 124, 105, 123, 124, 139, 128, 129, 125, 123, 122, 119, 112, 129, 116, 124, 134, 127, 114, 134, 113, 132, 129, 119, 126, 126, 125, 129, 157, 131, 125, 114, 121, 133, 112, 145, 134, 114, 135, 118, 132, 142, 121, 119, 139, 135, 146, 132, 135, 107, 130, 112, 139, 128, 123, 123, 119, 132, 117, 140, 132, 130, 115, 123, 139, 125, 143, 116, 111, 114, 129, 129, 129, 134, 126, 124, 132, 123, 124, 128, 146, 122, 137, 118, 128, 120, 130, 115, 123, 134, 121, 134, 121, 143, 118, 139, 118, 121, 142, 133, 123, 123, 134, 134, 119, 120, 108, 118, 123, 125, 130, 125, 110, 130, 129, 123, 125, 118, 140, 130, 128, 105, 126, 122, 134, 117, 134, 130, 114, 121, 105, 141, 139, 138, 112, 130, 131, 129, 119, 145, 118, 112, 122, 123, 131, 110, 118, 110, 134, 121, 134, 150, 130, 130, 129, 118, 101, 108, 126, 121, 111, 116, 121, 132, 128, 122, 151, 124, 125, 131, 122, 122, 113, 121, 129, 112, 126, 103, 134, 119, 114, 109, 125, 109, 142, 129, 128, 124, 122, 121, 126, 124, 107, 125, 140, 128, 111, 118, 146, 136, 120, 128, 119, 120, 114, 134, 131, 128, 127, 125, 142, 134, 129, 98, 114, 124, 131, 121, 135, 118, 114, 115, 131, 110, 123, 128, 126, 135, 121, 132, 136, 123, 146, 123, 123, 110, 114, 126, 130, 131, 127, 124, 129, 151, 135, 133, 125, 114, 124, 164, 130, 113, 127, 117, 135, 132, 122, 131, 129, 135, 130, 152, 114, 123, 115, 148, 112, 123, 103, 116, 112, 135, 126, 126, 140, 127, 113, 133, 134, 116, 111, 128, 141, 116, 115, 128, 130, 115, 137, 129, 131, 131, 131, 124, 122, 122, 117, 116, 138, 119, 127, 116, 117, 123, 109, 111, 123, 126, 131, 129, 146, 122, 118, 128, 130, 112, 115, 120, 129, 116, 150, 121, 132, 121, 117, 112, 113, 119, 127, 124, 118, 118, 136, 138, 125, 120, 128, 112, 132, 107, 124, 126, 121, 123, 123, 138, 123, 128, 101, 125, 132, 120, 120, 102, 124, 127, 128, 130, 140, 153, 134, 124, 162, 129, 117, 130, 128, 117, 114, 117, 113, 127, 137, 132, 118, 124, 130, 128, 130, 125, 130, 128, 145, 121, 131, 134, 110, 141, 111, 124, 124, 146, 128, 119, 133, 128, 134, 126, 125, 123, 125, 142, 133, 111, 124, 119, 134, 122, 116, 143, 139, 118, 119, 138, 121, 117, 116, 111, 118, 104, 122, 122, 131, 108, 122, 123, 110, 128, 124, 124, 112, 134, 110, 133, 146, 121, 117, 126, 109, 122, 164, 136, 124, 125, 115, 126, 106, 133, 113, 135, 153, 124, 134, 124, 130, 129, 128, 114, 125, 136, 122, 115, 113, 160, 133, 127, 129, 124, 137, 150, 120, 128, 130, 147, 112, 111, 126, 132, 152, 124, 134, 126, 115, 137, 116, 135, 144, 133, 115, 131, 128, 118, 129, 125, 143, 100, 132, 123, 112, 138, 108, 119, 139, 127, 113, 126, 115, 136, 130, 103, 130, 126, 134, 122, 129, 123, 130, 143, 113, 138, 131, 120, 115, 135, 126, 117, 127, 129, 145, 122, 136, 121, 98, 131, 126, 133, 132, 111, 124, 100, 119, 120, 130, 120, 129, 119, 130, 120, 119, 135, 120, 128, 126, 126, 137, 124, 114, 125, 110, 131, 136, 125, 123, 125, 146, 121, 137, 132, 125, 130, 137, 134, 128, 117, 126, 128, 100, 128, 115, 135, 138, 120, 127, 126, 130, 125, 133, 124, 129, 135, 120, 104, 125, 124, 113, 125, 127, 129, 131, 111, 131, 99, 127, 130, 110, 110, 128, 125, 129, 134, 123, 107, 135, 145, 121, 120, 120, 133, 127, 132, 137, 121, 132, 140, 117, 117, 128, 122, 135, 117, 122, 111, 132, 103, 153, 122, 124, 139, 131, 121, 115, 123, 129, 109, 117, 125, 138, 127, 125, 119, 152, 122, 124, 133, 120, 107, 138, 130, 125, 125, 125, 135, 131, 132, 106, 131, 129, 124, 143, 100, 129, 120, 136, 116, 130, 125, 127, 130, 129, 112, 111, 153, 126, 126, 114, 135, 133, 127, 119, 114, 105, 134, 116, 121, 125, 122, 122, 130, 126, 128, 137, 122, 122, 129, 125, 114, 130, 136, 129, 141, 115, 108, 119, 139, 134, 114, 118, 116, 125, 111, 111, 154, 134, 124, 120, 95, 128, 145, 125, 132, 124, 114, 127, 136, 115, 117, 106, 136, 123, 131, 127, 110, 134, 136, 131, 128, 131, 131, 139, 115, 118, 109, 119, 114, 139, 134, 118, 125, 129, 120, 123, 119, 134, 136, 130, 127, 118, 144, 113, 142, 134, 137, 114, 133, 133, 120, 126, 113, 101, 118, 152, 132, 123, 130, 128, 117, 119, 125, 123, 108, 127, 131, 100, 120, 118, 137, 132, 141, 123, 118, 134, 129, 116, 125, 121, 133, 123, 135, 117, 124, 121, 134, 125, 112, 123, 134, 117, 136, 127, 121, 112, 134, 131, 115, 130, 141, 130, 110, 127, 133, 129, 129, 113, 134, 137, 116, 116, 149, 122, 138, 132, 107, 125, 127, 112, 119, 137, 129, 134, 122, 128, 122, 122, 121, 127, 118, 116, 116, 126, 133, 123, 133, 134, 127, 118, 139, 132, 118, 138, 117, 113, 129, 141, 124, 121, 116, 123, 132, 121, 135, 124, 133, 132, 138, 118, 123, 128, 129, 124, 118, 133, 137, 130, 114, 124, 145, 107, 122, 132, 118, 125, 122, 120, 128, 126, 134, 127, 116, 118, 129, 128, 143, 118, 124, 111, 128, 131, 129, 110, 113, 101, 130, 118, 121, 146, 130, 118, 115, 115, 131, 123, 137, 119, 136, 129, 115, 127, 115, 129, 120, 134, 134, 141, 118, 136, 130, 119, 144, 129, 135, 133, 132, 131, 124, 128, 124, 129, 131, 116, 109, 124, 114, 148, 118, 126, 152, 125, 127, 113, 140, 128, 131, 117, 107, 121, 122, 111, 124, 116, 113, 118, 127, 149, 121, 132, 134, 126, 131, 127, 117, 129, 131, 127, 118, 124, 136, 146, 137, 128, 117, 131, 120, 123, 133, 110, 127, 128, 114, 124, 124, 131, 123, 112, 140, 129, 134, 128, 122, 115, 120, 127, 130, 128, 125, 132, 122, 134, 122, 133, 112, 131, 136, 142, 120, 125, 121, 118, 121, 120, 107, 135, 134, 143, 127, 120, 133, 114, 139, 115, 126, 138, 128, 107, 121, 131, 126, 122, 134, 122, 125, 123, 136, 122, 111, 144, 122, 139, 131, 149, 116, 124, 143, 115, 135, 130, 119, 133, 128, 144, 124, 121, 102, 122, 136, 132, 123, 127, 126, 125, 111, 116, 146, 112, 112, 114, 126, 123, 132, 100, 104, 126, 119, 134, 130, 144, 109, 134, 128, 111, 123, 133, 136, 132, 131, 128, 151, 118, 121, 142, 122, 131, 138, 113, 124, 128, 110, 116, 131, 108, 127, 124, 122, 117, 116, 126, 123, 129, 112, 129, 132, 130, 125, 141, 119, 119, 114, 110, 117, 134, 123, 133, 124, 145, 120, 135, 119, 77, 122, 114, 120, 117, 120, 153, 121, 124, 151, 143, 117, 125, 115, 111, 128, 123, 124, 131, 134, 124, 127, 115, 125, 126, 134, 135, 105, 137, 115, 131, 124, 120, 126, 109, 132, 124, 122, 135, 117, 122, 111, 124, 105, 127, 151, 136, 119, 116, 124, 149, 126, 136, 129, 137, 130, 116, 111, 119, 137, 147, 123, 139, 135, 128, 102, 126, 133, 114, 134, 121, 125, 129, 117, 131, 128, 122, 124, 113, 113, 134, 123, 97, 107, 135, 113, 111, 139, 115, 129, 146, 109, 133, 130, 111, 116, 125, 119, 116, 123, 152, 103, 139, 130, 120, 108, 126, 127, 155, 114, 122, 133, 126, 133, 132, 106, 123, 116, 128, 114, 127, 123, 147, 128, 115, 124, 111, 122, 126, 135, 127, 130, 141, 119, 114, 117, 122, 146, 129, 130, 137, 109, 132, 110, 129, 128, 128, 126, 115, 106, 122, 121, 128, 127, 119, 122, 123, 124, 127, 131, 111, 132, 139, 135, 106, 131, 113, 115, 127, 116, 109, 110, 141, 127, 126, 121, 117, 113, 136, 124, 127, 108, 110, 113, 120, 143, 126, 127, 136, 138, 131, 134, 130, 128, 130, 133, 125, 118, 128, 122, 135, 121, 135, 114, 125, 126, 129, 119, 114, 131, 117, 114, 143, 105, 134, 125, 133, 130, 136, 115, 122, 116, 114, 130, 126, 135, 124, 143, 122, 122, 131, 139, 125, 132, 115, 130, 128, 121, 132, 132, 114, 111, 131, 138, 134, 120, 142, 120, 125, 149, 100, 118, 135, 122, 119, 121, 124, 124, 130, 118, 127, 121, 132, 128, 104, 127, 112, 135, 128, 116, 121, 109, 130, 127, 133, 128, 115, 119, 121, 126, 125, 114, 122, 147, 101, 134, 108, 132, 128, 128, 111, 135, 136, 140, 123, 120, 128, 114, 125, 151, 145, 119, 126, 147, 123, 115, 139, 109, 121, 134, 119, 122, 117, 128, 124, 110, 136, 124, 123, 135, 127, 124, 118, 130, 135, 144, 116, 124, 155, 142, 114, 120, 130, 127, 127, 131, 136, 136, 128, 115, 126, 124, 121, 132, 123, 139, 107, 125, 124, 121, 113, 121, 119, 138, 119, 113, 115, 155, 133, 134, 111, 130, 118, 113, 156, 134, 131, 114, 111, 131, 127, 118, 130, 138, 124, 135, 116, 123, 123, 131, 129, 126, 107, 113, 126, 128, 128, 121, 132, 126, 122, 141, 130, 126, 135, 137, 111, 144, 124, 127, 119, 132, 113, 135, 125, 127, 116, 110, 138, 136, 155, 138, 142, 136, 127, 117, 117, 137, 132, 130, 122, 133, 130, 117, 138, 131, 124, 130, 122, 140, 128, 121, 164, 119, 125, 120, 127, 143, 138, 131, 136, 132, 128, 128, 119, 131, 130, 115, 131, 125, 135, 122, 133, 114, 113, 117, 127, 112, 122, 122, 120, 127, 113, 130, 107, 128, 112, 117, 128, 130, 141, 115, 126, 113, 131, 128, 119, 111, 139, 122, 138, 127, 130, 115, 130, 131, 107, 146, 133, 139, 126, 132, 114, 137, 132, 120, 128, 135, 122, 120, 124, 127, 136, 145, 128, 112, 141, 113, 126, 112, 125, 129, 124, 144, 127, 133, 147, 111, 127, 127, 119, 123, 115, 130, 135, 111, 130, 126, 143, 125, 127, 121, 126, 124, 120, 132, 119, 123, 131, 126, 119, 122, 123, 115, 119, 124, 128, 129, 101, 140, 135, 112, 144, 117, 144, 125, 115, 129, 98, 104, 123, 104, 140, 127, 123, 119, 129, 126, 128, 115, 119, 130, 122, 131, 153, 111, 140, 111, 131, 98, 112, 113, 114, 123, 119, 118, 117, 115, 117, 125, 130, 120, 125, 127, 112, 131, 114, 135, 136, 127, 127, 116, 122, 117, 126, 133, 121, 133, 114, 130, 120, 137, 115, 128, 125, 106, 139, 122, 145, 141, 141, 125, 135, 109, 123, 124, 120, 128, 128, 118, 141, 130, 135, 128, 133, 112, 132, 128, 133, 123, 130, 118, 126, 124, 109, 128, 140, 140, 126, 105, 127, 127, 117, 134, 124, 129, 128, 120, 146, 129, 111, 125, 121, 145, 114, 140, 120, 105, 127, 126, 125, 122, 125, 132, 109, 113, 139, 121, 117, 103, 127, 129, 145, 124, 120, 109, 128, 118, 129, 136, 110, 130, 125, 143, 125, 125, 126, 114, 126, 124, 136, 124, 138, 138, 130, 107, 124, 119, 117, 128, 119, 116, 152, 106, 138, 111, 133, 123, 114, 116, 110, 108, 122, 126, 112, 116, 117, 125, 118, 135, 117, 124, 132, 123, 134, 122, 128, 116, 111, 134, 109, 143, 109, 113, 135, 125, 131, 135, 120, 138, 128, 122, 118, 115, 138, 131, 138, 117, 135, 112, 124, 129, 119, 118, 130, 136, 125, 124, 132, 128, 142, 132, 128, 132, 127, 116, 105, 134, 124, 115, 126, 123, 124, 137, 132, 124, 126, 136, 132, 117, 136, 142, 120, 129, 118, 125, 121, 118, 124, 126, 124, 133, 118, 126, 125, 129, 113, 111, 127, 141, 133, 145, 132, 132, 123, 134, 127, 130, 138, 128, 127, 131, 119, 138, 132, 135, 115, 110, 130, 125, 116, 139, 118, 134, 124, 120, 101, 127, 143, 131, 114, 134, 145, 120, 138, 132, 127, 124, 135, 133, 129, 110, 126, 119, 114, 113, 136, 133, 144, 114, 128, 126, 138, 113, 120, 134, 126, 127, 121, 117, 122, 136, 136, 103, 132, 116, 122, 119, 124, 114, 126, 115, 122, 120, 125, 125, 140, 119, 120, 137, 136, 113, 128, 120, 122, 111, 119, 119, 123, 112, 116, 124, 134, 135, 129, 125, 131, 124, 113, 120, 106, 108, 113, 125, 121, 118, 118, 127, 120, 133, 127, 132, 110, 134, 130, 113, 129, 109, 111, 121, 123, 151, 132, 122, 124, 142, 127, 111, 130, 116, 125, 125, 131, 113, 134, 116, 112, 126, 114, 108, 120, 129, 108, 134, 110, 131, 135, 128, 114, 129, 138, 122, 136, 121, 145, 130, 145, 132, 133, 115, 138, 128, 114, 133, 130, 105, 118, 119, 117, 120, 105, 114, 120, 122, 106, 143, 133, 120, 134, 127, 119, 126, 135, 123, 134, 122, 138, 131, 149, 141, 127, 117, 131, 107, 136, 118, 122, 113, 133, 136, 113, 121, 125, 133, 121, 121, 135, 106, 135, 123, 122, 127, 125, 142, 88, 136, 103, 119, 121, 102, 124, 115, 142, 124, 148, 138, 131, 126, 113, 126, 120, 137, 141, 127, 123, 111, 97, 119, 133, 101, 112, 137, 133, 127, 132, 124, 104, 106, 135, 109, 136, 136, 120, 107, 125, 136, 132, 130, 120, 123, 117, 116, 120, 144, 122, 119, 117, 114, 118, 99, 128, 131, 125, 148, 125, 128, 125, 122, 129, 116, 127, 139, 122, 122, 146, 120, 127, 135, 121, 125, 138, 143, 133, 131, 116, 114, 141, 117, 125, 139, 122, 120, 109, 115, 100, 119, 122, 127, 133, 132, 121, 125, 120, 122, 126, 142, 120, 130, 123, 104, 109, 128, 129, 123, 123, 110, 130, 155, 127, 133, 130, 131, 149, 125, 123, 125, 102, 115, 115, 125, 116, 120, 127, 130, 112, 121, 143, 143, 126, 118, 149, 119, 126, 122, 122, 121, 122, 123, 121, 131, 130, 136, 128, 126, 127, 131, 88, 114, 121, 133, 108, 120, 141, 125, 133, 145, 129, 140, 124, 122, 129, 128, 115, 107, 131, 117, 127, 127, 123, 111, 136, 125, 159, 134, 127, 148, 112, 117, 108, 112, 124, 99, 113, 124, 140, 122, 122, 140, 146, 112, 113, 125, 123, 124, 131, 124, 121, 134, 119, 113, 119, 122, 130, 126, 119, 111, 123, 123, 128, 115, 110, 124, 120, 115, 113, 141, 123, 107, 129, 125, 143, 125, 125, 127, 121, 127, 126, 123, 144, 131, 123, 139, 126, 117, 128, 133, 119, 127, 133, 133, 124, 118, 135, 130, 126, 121, 137, 135, 130, 123, 129, 122, 112, 107, 118, 131, 114, 136, 158, 119, 133, 150, 140, 113, 126, 129, 114, 136, 143, 119, 94, 113, 124, 144, 131, 124, 133, 120, 132, 123, 128, 128, 129, 120, 116, 127, 131, 142, 131, 133, 129, 151, 125, 121, 121, 123, 115, 120, 131, 138, 145, 136, 132, 126, 116, 124, 124, 124, 123, 112, 121, 138, 108, 118, 125, 131, 118, 131, 148, 122, 123, 126, 119, 130, 129, 119, 116, 137, 135, 126, 113, 126, 125, 125, 122, 115, 119, 119, 117, 106, 112, 135, 131, 118, 162, 126, 142, 133, 121, 103, 123, 119, 125, 131, 127, 139, 123, 135, 134, 119, 121, 111, 146, 102, 114, 113, 115, 144, 138, 131, 129, 122, 126, 115, 129, 109, 133, 99, 140, 110, 138, 134, 137, 128, 126, 127, 128, 136, 113, 125, 135, 126, 116, 135, 104, 136, 140, 123, 122, 128, 129, 109, 129, 127, 115, 122, 136, 136, 128, 121, 125, 116, 125, 132, 139, 126, 145, 125, 119, 142, 134, 126, 130, 93, 121, 119, 110, 140, 143, 113, 132, 122, 144, 116, 127, 135, 132, 104, 101, 118, 139, 123, 117, 132, 124, 127, 138, 123, 122, 107, 129, 131, 134, 130, 118, 130, 122, 139, 123, 133, 96, 123, 117, 120, 120, 141, 124, 129, 122, 136, 146, 122, 102, 114, 124, 116, 128, 111, 114, 140, 126, 121, 134, 109, 126, 130, 138, 126, 123, 126, 122, 129, 123, 133, 127, 111, 133, 105, 112, 113, 116, 124, 118, 138, 114, 125, 144, 135, 122, 133, 133, 140, 111, 137, 132, 115, 110, 142, 126, 139, 122, 144, 120, 121, 128, 135, 116, 116, 120, 136, 130, 117, 117, 122, 122, 141, 110, 121, 100, 109, 126, 137, 137, 131, 117, 125, 111, 125, 107, 131, 130, 125, 138, 133, 148, 120, 134, 112, 110, 114, 109, 113, 146, 109, 122, 106, 126, 113, 124, 134, 135, 122, 118, 120, 120, 137, 122, 139, 111, 122, 136, 131, 126, 119, 124, 126, 130, 115, 124, 127, 127, 111, 107, 127, 145, 130, 127, 139, 106, 140, 134, 130, 113, 130, 127, 123, 128, 117, 127, 132, 100, 126, 115, 122, 121, 115, 129, 108, 133, 107, 133, 126, 109, 133, 118, 93, 116, 122, 125, 112, 126, 132, 129, 152, 126, 128, 116, 131, 123, 106, 116, 129, 124, 122, 125, 109, 113, 123, 115, 113, 121, 131, 109, 128, 112, 123, 117, 125, 105, 124, 141, 126, 114, 120, 131, 115, 122, 120, 121, 130, 121, 113, 127, 114, 113, 116, 127, 139, 111, 136, 108, 113, 136, 120, 117, 129, 122, 110, 111, 136, 115, 118, 105, 121, 133, 120, 123, 116, 131, 127, 120, 99, 133, 122, 116, 135, 128, 124, 132, 113, 137, 112, 117, 128, 128, 127, 132, 121, 133, 127, 105, 117, 120, 136, 135, 132, 126, 122, 137, 136, 121, 117, 149, 112, 103, 127, 146, 99, 121, 126, 116, 107, 132, 115, 125, 135, 126, 131, 119, 118, 109, 120, 134, 120, 131, 123, 104, 130, 112, 121, 120, 129, 131, 116, 119, 126, 134, 130, 125, 139, 104, 130, 115, 131, 136, 128, 108, 113, 131, 131, 121, 140, 123, 123, 119, 112, 140, 116, 126, 121, 131, 119, 119, 121, 151, 117, 128, 125, 142, 129, 114, 123, 115, 115, 122, 135, 125, 129, 133, 135, 124, 128, 131, 141, 121, 120, 134, 115, 99, 116, 128, 139, 122, 126, 116, 127, 122, 136, 131, 140, 127, 117, 131, 112, 115, 98, 118, 123, 134, 131, 108, 128, 116, 110, 144, 118, 129, 120, 149, 137, 114, 129, 114, 119, 131, 111, 130, 112, 139, 122, 142, 112, 107, 136, 129, 125, 128, 135, 134, 113, 138, 127, 129, 128, 132, 110, 119, 124, 104, 136, 124, 101, 130, 136, 129, 112, 130, 133, 122, 119, 136, 118, 116, 119, 130, 120, 120, 125, 124, 127, 112, 111, 128, 119, 128, 114, 108, 117, 124, 118, 147, 120, 125, 116, 123, 138, 127, 124, 123, 116, 106, 125, 103, 121, 120, 129, 140, 134, 135, 116, 119, 138, 130, 99, 120, 126, 114, 127, 124, 112, 121, 124, 127, 141, 121, 118, 129, 130, 129, 123, 97, 129, 114, 118, 116, 102, 128, 116, 142, 120, 124, 127, 131, 105, 109, 134, 136, 131, 135, 142, 131, 107, 139, 123, 128, 125, 130, 134, 152, 119, 137, 117, 137, 138, 152, 136, 121, 115, 112, 128, 122, 105, 127, 107, 125, 144, 127, 126, 135, 121, 145, 141, 117, 133, 131, 119, 131, 108, 124, 107, 141, 121, 127, 120, 136, 132, 131, 114, 136, 131, 116, 121, 126, 137, 136, 125, 117, 136, 135, 121, 116, 118, 132, 132, 126, 126, 126, 123, 117, 132, 117, 121, 117, 125, 119, 123, 108, 140, 105, 124, 124, 139, 124, 135, 140, 127, 140, 110, 123, 115, 125, 142, 118, 136, 125, 135, 127, 130, 125, 138, 138, 132, 126, 129, 116, 124, 127, 125, 124, 117, 127, 135, 134, 131, 129, 101, 131, 127, 141, 122, 132, 132, 124, 144, 121, 144, 120, 132, 115, 112, 129, 134, 123, 117, 141, 135, 121, 125, 124, 116, 153, 117, 110, 124, 121, 123, 85, 120, 132, 114, 128, 100, 117, 113, 132, 124, 135, 108, 129, 121, 108, 138, 125, 145, 137, 137, 103, 127, 134, 131, 145, 123, 129, 110, 123, 121, 122, 123, 125, 141, 92, 136, 112, 112, 127, 130, 132, 134, 133, 118, 131, 126, 132, 131, 149, 115, 134, 122, 126, 110, 125, 114, 108, 126, 135, 134, 111, 131, 128, 136, 112, 128, 126, 130, 130, 124, 116, 124, 124, 118, 112, 116, 120, 134, 116, 116, 128, 125, 124, 118, 142, 125, 120, 113, 109, 123, 124, 130, 120, 121, 122, 139, 130, 125, 111, 143, 118, 154, 95, 108, 123, 152, 108, 109, 127, 107, 131, 128, 119, 126, 120, 106, 113, 137, 127, 106, 107, 112, 141, 114, 126, 136, 114, 128, 124, 133, 127, 123, 126, 107, 124, 117, 122, 124, 125, 117, 129, 108, 116, 138, 127, 128, 132, 119, 139, 135, 112, 121, 125, 121, 121, 125, 126, 133, 124, 130, 118, 129, 119, 130, 130, 124, 120, 105, 133, 134, 140, 134, 129, 140, 120, 125, 137, 116, 114, 134, 115, 116, 124, 118, 138, 136, 142, 130, 110, 113, 125, 128, 111, 122, 114, 123, 129, 140, 129, 139, 118, 131, 121, 119, 129, 129, 111, 122, 100, 124, 129, 117, 111, 128, 127, 113, 134, 138, 124, 131, 122, 114, 125, 118, 121, 130, 121, 119, 114, 126, 135, 124, 122, 149, 115, 122, 131, 133, 132, 114, 119, 139, 130, 129, 98, 126, 133, 127, 126, 116, 126, 136, 140, 111, 116, 144, 122, 123, 122, 119, 116, 121, 129, 98, 123, 129, 118, 151, 128, 144, 132, 119, 119, 134, 132, 132, 132, 149, 127, 108, 111, 129, 129, 134, 139, 122, 118, 120, 134, 121, 135, 116, 111, 127, 110, 137, 125, 121, 141, 144, 127, 121, 129, 123, 152, 115, 130, 122, 120, 119, 130, 122, 110, 129, 136, 108, 120, 118, 118, 133, 144, 135, 138, 114, 129, 127, 126, 125, 113, 116, 141, 125, 130, 136, 127, 117, 104, 119, 122, 150, 135, 118, 130, 111, 123, 128, 128, 134, 115, 127, 118, 126, 142, 115, 118, 113, 129, 133, 135, 128, 124, 123, 123, 107, 126, 135, 120, 131, 125, 120, 143, 128, 116, 118, 128, 116, 126, 130, 128, 108, 130, 124, 120, 118, 116, 131, 108, 118, 122, 126, 145, 115, 131, 125, 125, 142, 136, 122, 123, 125, 123, 116, 125, 144, 144, 127, 111, 127, 129, 115, 127, 144, 139, 114, 119, 109, 118, 119, 136, 126, 127, 100, 121, 119, 130, 109, 117, 133, 133, 115, 137, 118, 120, 124, 107, 136, 125, 127, 146, 120, 138, 131, 115, 121, 123, 122, 127, 126, 142, 133, 118, 118, 125, 128, 127, 114, 123, 108, 101, 115, 138, 125, 131, 123, 129, 121, 105, 115, 123, 116, 138, 120, 117, 104, 122, 130, 131, 133, 139, 136, 120, 129, 125, 135, 121, 138, 127, 121, 132, 127, 145, 110, 110, 102, 119, 125, 125, 123, 144, 144, 142, 129, 117, 115, 123, 130, 127, 133, 115, 113, 139, 133, 130, 121, 119, 114, 123, 105, 122, 121, 137, 115, 119, 131, 132, 103, 139, 127, 128, 110, 130, 138, 107, 110, 131, 125, 111, 137, 119, 117, 126, 107, 124, 139, 129, 133, 113, 128, 133, 132, 138, 127, 111, 109, 127, 122, 105, 127, 134, 137, 135, 153, 132, 104, 121, 129, 121, 127, 128, 120, 124, 126, 123, 113, 141, 128, 114, 129, 117, 110, 101, 135, 128, 118, 125, 129, 148, 130, 122, 115, 117, 125, 108, 130, 114, 128, 111, 123, 123, 129, 125, 131, 113, 111, 109, 114, 128, 114, 133, 127, 123, 116, 135, 118, 139, 117, 127, 135, 128, 124, 125, 128, 112, 141, 123, 134, 117, 126, 119, 110, 129, 120, 136, 130, 123, 126, 133, 132, 112, 117, 130, 106, 111, 121, 124, 125, 126, 139, 118, 103, 113, 134, 130, 116, 117, 121, 111, 123, 121, 114, 131, 135, 112, 118, 114, 131, 151, 123, 130, 135, 122, 139, 122, 141, 119, 121, 123, 131, 143, 104, 117, 120, 136, 134, 131, 122, 122, 137, 119, 114, 113, 119, 122, 119, 114, 114, 110, 113, 143, 123, 111, 150, 144, 139, 117, 124, 120, 119, 130, 132, 149, 125, 125, 119, 123, 121, 113, 121, 140, 123, 139, 133, 126, 120, 103, 151, 129, 135, 117, 123, 136, 151, 124, 128, 123, 135, 116, 125, 116, 126, 128, 123, 120, 145, 130, 123, 133, 156, 137, 114, 123, 127, 119, 120, 140, 122, 123, 130, 132, 119, 133, 135, 136, 126, 118, 111, 113, 116, 139, 122, 125, 136, 92, 136, 121, 114, 122, 122, 143, 133, 112, 126, 130, 126, 130, 140, 127, 123, 126, 134, 130, 136, 122, 125, 114, 125, 124, 115, 124, 137, 119, 122, 139, 129, 123, 117, 122, 136, 146, 111, 113, 128, 118, 129, 105, 95, 119, 105, 123, 163, 125, 122, 110, 127, 118, 117, 120, 125, 127, 114, 119, 123, 124, 118, 134, 139, 112, 133, 128, 115, 147, 114, 128, 120, 116, 132, 120, 109, 109, 126, 141, 143, 115, 106, 128, 117, 135, 134, 124, 122, 132, 112, 118, 108, 111, 114, 126, 135, 146, 126, 114, 120, 121, 126, 138, 136, 111, 116, 142, 126, 130, 118, 136, 110, 123, 124, 116, 150, 127, 124, 129, 136, 115, 123, 128, 111, 125, 107, 113, 136, 139, 147, 134, 113, 131, 122, 147, 137, 147, 129, 115, 119, 124, 132, 125, 137, 122, 120, 126, 117, 140, 115, 110, 126, 119, 150, 125, 121, 109, 128, 121, 125, 128, 122, 120, 115, 117, 143, 122, 114, 144, 107, 121, 118, 128, 96, 126, 139, 120, 120, 121, 137, 128, 144, 121, 134, 110, 121, 135, 123, 135, 134, 126, 119, 128, 127, 126, 120, 125, 123, 128, 116, 127, 124, 122, 108, 127, 130, 132, 114, 128, 107, 111, 132, 128, 125, 136, 127, 121, 129, 117, 129, 119, 153, 130, 128, 129, 115, 118, 123, 126, 124, 118, 120, 122, 141, 110, 132, 123, 145, 134, 119, 119, 139, 133, 141, 133, 113, 120, 126, 116, 123, 132, 121, 129, 124, 121, 126, 136, 110, 124, 134, 108, 129, 137, 111, 135, 136, 117, 126, 121, 137, 129, 143, 102, 119, 137, 115, 135, 113, 126, 115, 141, 116, 122, 141, 137, 122, 108, 123, 149, 143, 115, 127, 127, 121, 142, 125, 108, 132, 118, 131, 122, 117, 146, 143, 109, 110, 133, 118, 121, 135, 119, 130, 151, 133, 147, 108, 126, 118, 119, 134, 130, 126, 103, 115, 154, 120, 96, 115, 137, 111, 124, 122, 136, 121, 127, 132, 133, 122, 119, 142, 130, 131, 113, 128, 123, 116, 128, 125, 118, 118, 124, 153, 120, 121, 144, 115, 111, 121, 132, 115, 112, 132, 155, 97, 129, 126, 122, 133, 132, 144, 124, 131, 117, 129, 118, 126, 118, 116, 119, 124, 131, 130, 126, 123, 132, 127, 137, 116, 129, 110, 125, 122, 144, 135, 128, 108, 117, 111, 132, 121, 123, 126, 108, 132, 135, 123, 135, 139, 131, 142, 124, 141, 114, 134, 129, 117, 125, 122, 124, 136, 115, 123, 115, 153, 106, 134, 129, 96, 133, 109, 128, 129, 118, 119, 116, 134, 127, 127, 121, 124, 126, 133, 124, 131, 127, 136, 116, 126, 128, 113, 121, 149, 105, 124, 130, 118, 136, 118, 115, 145, 112, 129, 127, 126, 126, 100, 124, 128, 118, 130, 110, 130, 112, 126, 100, 102, 111, 119, 126, 110, 123, 115, 128, 122, 128, 147, 115, 135, 132, 119, 140, 114, 133, 129, 146, 120, 113, 128, 119, 123, 125, 128, 139, 111, 133, 119, 138, 138, 119, 115, 122, 128, 141, 127, 121, 118, 118, 120, 127, 114, 113, 127, 115, 123, 133, 123, 112, 113, 114, 131, 110, 125, 126, 120, 135, 120, 135, 116, 126, 129, 124, 120, 118, 117, 120, 119, 125, 137, 128, 125, 124, 117, 125, 124, 122, 127, 133, 136, 128, 130, 136, 122, 122, 150, 111, 123, 112, 139, 117, 131, 133, 141, 125, 135, 138, 119, 126, 132, 118, 121, 134, 141, 119, 132, 122, 125, 118, 114, 115, 132, 117, 154, 135, 146, 123, 111, 129, 117, 136, 118, 110, 116, 125, 145, 90, 148, 124, 141, 132, 132, 113, 119, 116, 113, 125, 135, 134, 137, 139, 124, 148, 126, 134, 118, 129, 123, 134, 120, 112, 115, 120, 131, 97, 130, 123, 106, 125, 108, 111, 129, 132, 144, 130, 139, 129, 115, 119, 147, 116, 119, 112, 127, 126, 137, 120, 107, 122, 117, 100, 125, 136, 113, 126, 131, 125, 134, 133, 131, 125, 131, 119, 119, 112, 120, 128, 125, 138, 130, 132, 139, 143, 122, 123, 129, 123, 137, 123, 128, 121, 128, 132, 129, 136, 143, 126, 130, 131, 137, 140, 119, 107, 114, 130, 130, 136, 119, 116, 129, 114, 123, 122, 136, 117, 131, 114, 123, 113, 115, 122, 122, 130, 136, 133, 134, 136, 129, 113, 132, 143, 131, 140, 128, 131, 112, 111, 128, 115, 131, 132, 102, 136, 144, 109, 122, 143, 121, 121, 124, 132, 131, 129, 118, 137, 116, 137, 119, 126, 126, 124, 147, 118, 131, 120, 140, 137, 130, 133, 128, 126, 134, 125, 102, 128, 127, 135, 127, 143, 121, 129, 118, 105, 113, 138, 135, 130, 111, 130, 118, 132, 129, 121, 120, 120, 133, 132, 117, 129, 109, 135, 119, 117, 131, 121, 120, 122, 126, 120, 135, 120, 112, 124, 114, 120, 138, 155, 117, 119, 122, 118, 103, 114, 107, 139, 134, 126, 117, 122, 148, 129, 129, 123, 114, 128, 137, 115, 136, 166, 139, 133, 130, 110, 136, 120, 135, 142, 132, 122, 132, 115, 135, 117, 125, 125, 132, 117, 121, 114, 111, 116, 135, 136, 129, 134, 131, 128, 127, 133, 127, 141, 123, 98, 121, 125, 119, 162, 126, 113, 120, 130, 122, 123, 102, 118, 110, 146, 122, 126, 126, 118, 119, 123, 104, 127, 119, 132, 143, 145, 126, 126, 124, 116, 124, 137, 141, 136, 128, 109, 146, 128, 133, 128, 128, 116, 133, 128, 133, 131, 111, 106, 144, 137, 112, 133, 116, 138, 138, 130, 124, 127, 138, 130, 143, 131, 131, 137, 117, 147, 129, 127, 136, 105, 127, 134, 115, 123, 115, 108, 118, 129, 130, 127, 113, 118, 130, 124, 141, 143, 131, 130, 130, 132, 121, 115, 132, 117, 124, 106, 137, 115, 125, 143, 110, 123, 139, 106, 129, 99, 149, 132, 129, 146, 111, 127, 124, 116, 112, 126, 124, 117, 118, 132, 142, 117, 124, 104, 137, 109, 144, 138, 121, 130, 119, 107, 109, 138, 122, 115, 138, 149, 109, 122, 124, 115, 116, 130, 115, 157, 131, 134, 102, 133, 139, 134, 118, 134, 114, 116, 131, 126, 124, 132, 122, 114, 127, 135, 116, 119, 113, 118, 139, 144, 150, 122, 112, 121, 112, 124, 116, 119, 131, 106, 127, 98, 116, 120, 114, 137, 136, 114, 120, 134, 133, 118, 125, 121, 118, 127, 101, 145, 112, 126, 138, 129, 137, 123, 126, 117, 129, 122, 134, 140, 129, 135, 110, 116, 116, 140, 121, 126, 129, 143, 161, 128, 147, 127, 130, 122, 130, 127, 146, 130, 157, 117, 134, 117, 127, 107, 131, 108, 126, 102, 114, 131, 130, 119, 117, 104, 101, 125, 123, 124, 118, 138, 129, 136, 121, 139, 128, 112, 131, 115, 112, 136, 136, 125, 122, 136, 113, 127, 141, 129, 140, 126, 134, 137, 135, 137, 124, 134, 145, 129, 129, 127, 105, 114, 116, 120, 125, 147, 129, 108, 127, 112, 119, 125, 124, 120, 133, 142, 125, 126, 136, 125, 111, 138, 133, 126, 125, 114, 142, 127, 117, 120, 146, 113, 123, 131, 137, 128, 126, 148, 128, 106, 114, 136, 126, 126, 92, 120, 110, 134, 135, 113, 115, 100, 117, 132, 120, 121, 126, 107, 120, 121, 104, 114, 121, 137, 127, 119, 111, 125, 127, 102, 123, 122, 133, 144, 137, 119, 114, 122, 128, 132, 149, 130, 111, 129, 131, 133, 129, 125, 141, 106, 121, 134, 116, 123, 132, 123, 122, 116, 128, 128, 137, 141, 135, 124, 120, 132, 124, 102, 143, 113, 142, 116, 132, 125, 125, 114, 107, 146, 127, 134, 128, 138, 125, 133, 134, 128, 134, 135, 117, 135, 117, 132, 125, 133, 123, 131, 116, 134, 116, 116, 130, 126, 127, 101, 142, 125, 125, 134, 119, 127, 124, 122, 112, 114, 126, 120, 116, 115, 129, 111, 124, 128, 116, 118, 133, 120, 115, 133, 113, 127, 134, 145, 120, 136, 138, 127, 149, 121, 124, 118, 126, 143, 129, 117, 127, 120, 118, 134, 120, 120, 115, 130, 124, 152, 111, 113, 128, 151, 127, 129, 134, 125, 128, 138, 133, 128, 143, 124, 120, 121, 122, 128, 133, 123, 132, 123, 119, 132, 111, 104, 135, 146, 124, 123, 124, 126, 123, 128, 104, 118, 113, 131, 107, 135, 142, 116, 121, 124, 113, 127, 118, 124, 151, 136, 136, 119, 128, 128, 107, 125, 123, 118, 123, 130, 127, 135, 118, 120, 118, 130, 135, 123, 147, 124, 124, 127, 132, 134, 126, 124, 121, 144, 132, 132, 123, 119, 133, 132, 123, 135, 121, 121, 113, 106, 117, 128, 119, 126, 126, 127, 111, 136, 127, 111, 132, 138, 128, 106, 122, 114, 110, 137, 111, 129, 134, 140, 130, 121, 127, 120, 112, 116, 116, 154, 134, 109, 135, 120, 131, 125, 133, 120, 106, 122, 124, 121, 127, 120, 120, 133, 117, 134, 130, 128, 116, 145, 131, 127, 134, 117, 118, 128, 120, 129, 132, 117, 113, 133, 111, 129, 116, 125, 110, 118, 121, 130, 161, 140, 138, 120, 107, 136, 123, 130, 129, 122, 145, 124, 134, 131, 121, 134, 132, 116, 151, 138, 119, 125, 131, 114, 118, 115, 119, 136, 128, 125, 113, 137, 127, 115, 123, 126, 108, 118, 135, 123, 125, 100, 139, 137, 124, 124, 136, 127, 123, 115, 131, 113, 136, 118, 117, 106, 133, 127, 138, 131, 105, 119, 125, 111, 130, 131, 141, 126, 120, 96, 115, 121, 123, 119, 116, 130, 144, 137, 121, 111, 123, 128, 124, 124, 110, 116, 101, 135, 132, 140, 141, 122, 122, 143, 131, 129, 138, 131, 117, 120, 137, 128, 129, 127, 138, 126, 133, 131, 115, 123, 115, 127, 122, 129, 143, 131, 129, 143, 137, 139, 129, 126, 119, 142, 131, 129, 134, 128, 121, 129, 129, 117, 110, 130, 117, 142, 118, 120, 120, 135, 138, 116, 126, 146, 122, 148, 127, 131, 115, 119, 116, 134, 118, 120, 130, 123, 121, 123, 140, 116, 123, 110, 124, 135, 127, 127, 129, 120, 117, 137, 125, 132, 128, 123, 137, 122, 130, 142, 114, 129, 121, 132, 126, 137, 113, 125, 121, 131, 132, 135, 112, 137, 119, 115, 146, 141, 138, 116, 114, 125, 141, 126, 132, 127, 133, 112, 136, 133, 106, 129, 119, 128, 125, 124, 115, 134, 113, 109, 113, 122, 141, 114, 125, 109, 144, 142, 135, 122, 137, 110, 117, 142, 151, 127, 102, 142, 144, 133, 119, 115, 144, 113, 136, 132, 119, 127, 126, 123, 133, 107, 115, 114, 123, 148, 117, 122, 128, 144, 129, 123, 120, 109, 120, 117, 132, 124, 117, 132, 136, 136, 135, 117, 125, 116, 129, 129, 121, 136, 121, 137, 128, 121, 135, 129, 129, 111, 116, 127, 133, 133, 127, 134, 132, 144, 126, 117, 127, 103, 111, 106, 122, 138, 136, 125, 105, 109, 127, 131, 147, 109, 115, 122, 127, 119, 108, 128, 131, 111, 112, 126, 107, 122, 130, 98, 123, 122, 115, 120, 129, 114, 119, 105, 141, 129, 117, 121, 115, 112, 125, 135, 116, 127, 136, 123, 139, 127, 136, 134, 134, 109, 122, 136, 117, 129, 122, 126, 129, 130, 142, 124, 122, 117, 126, 136, 133, 117, 124, 143, 128, 103, 120, 110, 117, 139, 138, 133, 123, 146, 127, 112, 113, 139, 129, 147, 127, 142, 127, 120, 123, 133, 123, 139, 134, 130, 126, 113, 128, 125, 133, 129, 125, 132, 146, 127, 123, 121, 122, 120, 124, 120, 124, 122, 124, 134, 114, 138, 131, 126, 115, 132, 136, 134, 139, 124, 120, 127, 136, 131, 126, 126, 136, 97, 128, 106, 118, 129, 134, 137, 127, 127, 129, 136, 122, 116, 117, 118, 118, 129, 127, 120, 136, 127, 130, 148, 122, 125, 121, 124, 129, 133, 116, 111, 120, 132, 132, 118, 123, 128, 133, 135, 119, 135, 135, 134, 127, 144, 138, 110, 118, 127, 122, 114, 152, 145, 130, 126, 125, 124, 126, 114, 123, 144, 130, 105, 148, 132, 113, 105, 128, 133, 117, 139, 138, 128, 124, 127, 127, 131, 129, 117, 115, 118, 137, 108, 119, 139, 122, 111, 136, 129, 122, 137, 110, 116, 130, 131, 137, 114, 134, 129, 122, 139, 127, 133, 126, 124, 133, 130, 130, 133, 129, 122, 130, 134, 116, 130, 134, 125, 129, 125, 135, 139, 142, 122, 117, 123, 100, 140, 139, 123, 125, 123, 124, 119, 125, 134, 130, 105, 136, 128, 146, 118, 131, 126, 122, 139, 127, 129, 126, 142, 124, 114, 143, 139, 126, 131, 123, 115, 121, 136, 143, 127, 118, 119, 115, 143, 119, 129, 114, 120, 126, 142, 134, 121, 129, 126, 129, 153, 123, 129, 138, 126, 124, 133, 143, 96, 133, 125, 104, 141, 130, 110, 118, 138, 122, 132, 128, 131, 112, 149, 115, 128, 122, 123, 129, 117, 133, 131, 92, 123, 131, 158, 113, 126, 131, 125, 134, 123, 112, 135, 108, 126, 137, 123, 129, 118, 122, 127, 132, 127, 123, 122, 124, 114, 113, 119, 138, 115, 147, 132, 138, 116, 134, 109, 119, 118, 132, 127, 120, 143, 114, 112, 118, 100, 108, 118, 138, 134, 130, 115, 124, 135, 125, 133, 121, 101, 122, 148, 122, 112, 114, 136, 138, 130, 112, 128, 133, 133, 127, 135, 136, 120, 116, 151, 122, 120, 125, 122, 128, 126, 142, 121, 127, 127, 133, 129, 125, 126, 125, 133, 114, 115, 125, 117, 137, 111, 129, 119, 127, 117, 133, 111, 125, 132, 129, 125, 124, 125, 114, 131, 121, 107, 123, 122, 132, 136, 121, 126, 128, 110, 137, 110, 124, 103, 117, 108, 145, 124, 130, 131, 121, 130, 133, 109, 132, 130, 120, 122, 125, 127, 128, 109, 126, 111, 113, 146, 132, 111, 123, 128, 137, 125, 142, 129, 104, 144, 131, 128, 131, 108, 129, 122, 132, 122, 114, 127, 129, 118, 113, 114, 137, 127, 116, 132, 117, 125, 116, 120, 108, 130, 122, 114, 120, 132, 116, 108, 123, 135, 123, 110, 114, 133, 124, 122, 129, 144, 120, 121, 128, 126, 129, 138, 125, 127, 122, 108, 131, 115, 121, 112, 127, 131, 118, 121, 123, 133, 147, 137, 135, 117, 130, 94, 130, 129, 125, 119, 128, 122, 125, 126, 118, 141, 136, 117, 130, 118, 133, 122, 121, 137, 133, 127, 137, 126, 125, 134, 145, 135, 120, 115, 116, 130, 111, 133, 119, 144, 127, 112, 112, 137, 124, 108, 128, 123, 124, 140, 119, 126, 136, 128, 135, 109, 130, 114, 128, 125, 120, 122, 130, 129, 126, 129, 119, 114, 126, 119, 124, 134, 134, 123, 128, 124, 117, 90, 124, 130, 132, 132, 120, 148, 141, 139, 103, 116, 150, 101, 130, 133, 126, 126, 130, 143, 121, 131, 100, 141, 128, 125, 124, 136, 123, 133, 119, 136, 128, 117, 121, 136, 132, 133, 111, 116, 121, 140, 128, 121, 111, 115, 132, 87, 115, 131, 139, 104, 122, 137, 121, 112, 114, 119, 116, 122, 104, 136, 120, 123, 143, 138, 121, 132, 120, 122, 129, 117, 125, 113, 122, 137, 129, 138, 132, 130, 118, 104, 122, 118, 143, 134, 115, 142, 99, 103, 123, 114, 122, 134, 134, 119, 135, 113, 125, 125, 129, 135, 131, 125, 137, 138, 114, 144, 104, 118, 119, 112, 138, 132, 143, 122, 108, 119, 145, 121, 131, 132, 107, 128, 117, 132, 135, 112, 133, 135, 123, 117, 123, 119, 133, 140, 131, 135, 114, 124, 126, 138, 133, 122, 140, 129, 128, 110, 138, 135, 122, 115, 133, 128, 132, 121, 129, 127, 119, 133, 112, 121, 126, 132, 124, 117, 133, 139, 110, 122, 133, 109, 139, 136, 130, 123, 129, 115, 122, 145, 117, 130, 127, 114, 102, 129, 118, 130, 134, 130, 147, 126, 140, 136, 101, 115, 122, 128, 145, 135, 150, 133, 139, 118, 134, 130, 124, 121, 148, 128, 126, 128, 125, 118, 129, 111, 130, 124, 127, 128, 110, 135, 130, 128, 134, 127, 129, 106, 138, 129, 117, 112, 122, 108, 134, 136, 122, 132, 121, 139, 127, 119, 121, 126, 115, 111, 125, 141, 129, 121, 131, 123, 106, 119, 149, 122, 120, 137, 107, 145, 137, 132, 122, 130, 116, 109, 114, 101, 134, 115, 114, 126, 137, 142, 124, 125, 141, 113, 134, 110, 127, 124, 130, 112, 131, 121, 112, 122, 112, 132, 128, 137, 138, 120, 133, 118, 131, 125, 115, 136, 145, 131, 104, 144, 126, 143, 134, 113, 117, 144, 128, 130, 123, 120, 123, 112, 124, 128, 106, 135, 122, 119, 118, 128, 108, 131, 124, 127, 121, 136, 127, 147, 119, 144, 118, 126, 123, 143, 121, 135, 110, 121, 96, 125, 133, 120, 127, 127, 117, 135, 141, 128, 128, 129, 144, 121, 119, 117, 139, 156, 128, 122, 122, 139, 117, 144, 129, 123, 121, 130, 110, 115, 115, 126, 143, 116, 145, 130, 113, 120, 115, 136, 129, 119, 135, 120, 127, 136, 126, 122, 128, 125, 138, 124, 134, 131, 121, 124, 137, 120, 133, 122, 124, 115, 117, 132, 116, 114, 116, 128, 129, 124, 144, 123, 116, 120, 117, 125, 127, 120, 130, 120, 122, 120, 134, 127, 124, 129, 128, 119, 130, 126, 134, 127, 133, 111, 113, 140, 130, 121, 133, 129, 133, 148, 115, 131, 126, 133, 114, 142, 88, 132, 130, 134, 119, 120, 125, 129, 121, 120, 115, 133, 133, 119, 125, 116, 127, 125, 127, 122, 109, 142, 125, 123, 134, 147, 144, 138, 114, 131, 147, 119, 119, 128, 137, 129, 118, 126, 123, 125, 142, 117, 113, 130, 144, 108, 122, 132, 130, 137, 126, 147, 128, 125, 114, 127, 104, 118, 119, 120, 134, 134, 118, 118, 133, 119, 115, 135, 121, 118, 118, 142, 115, 130, 129, 118, 110, 119, 106, 118, 136, 130, 135, 131, 124, 138, 119, 121, 163, 127, 142, 122, 135, 128, 127, 134, 132, 124, 113, 130, 128, 114, 145, 135, 139, 139, 130, 126, 130, 119, 115, 140, 113, 132, 118, 114, 124, 129, 125, 124, 122, 133, 118, 122, 127, 130, 109, 115, 137, 140, 128, 125, 127, 132, 112, 139, 130, 123, 122, 130, 112, 133, 135, 112, 133, 122, 141, 139, 134, 123, 145, 132, 133, 140, 128, 131, 136, 132, 119, 114, 115, 120, 119, 136, 113, 125, 128, 125, 125, 137, 131, 117, 126, 126, 132, 128, 133, 125, 121, 126, 122, 76, 135, 134, 99, 130, 123, 123, 132, 138, 117, 125, 112, 128, 133, 135, 128, 117, 116, 128, 124, 131, 122, 122, 127, 113, 125, 116, 119, 134, 131, 141, 127, 116, 140, 131, 133, 118, 119, 147, 149, 128, 118, 120, 131, 120, 122, 113, 127, 137, 122, 124, 115, 137, 130, 131, 133, 128, 136, 127, 128, 131, 123, 128, 119, 134, 119, 116, 131, 121, 137, 126, 107, 129, 129, 141, 134, 117, 136, 113, 108, 136, 105, 100, 124, 129, 124, 127, 123, 117, 101, 121, 132, 135, 122, 124, 123, 113, 126, 121, 137, 116, 126, 128, 119, 133, 128, 126, 121, 132, 118, 114, 140, 110, 138, 126, 127, 138, 133, 127, 127, 131, 129, 120, 132, 130, 123, 112, 127, 117, 127, 123, 138, 114, 117, 126, 119, 127, 124, 124, 140, 116, 134, 136, 118, 131, 116, 122, 134, 132, 127, 140, 122, 124, 121, 126, 126, 135, 133, 121, 123, 116, 136, 124, 130, 131, 125, 131, 96, 127, 110, 128, 121, 128, 136, 126, 115, 127, 130, 121, 133, 119, 122, 126, 119, 126, 124, 129, 113, 122, 112, 130, 110, 124, 102, 140, 144, 122, 115, 138, 125, 130, 120, 133, 136, 130, 136, 129, 119, 118, 113, 134, 114, 133, 136, 131, 124, 126, 118, 104, 131, 115, 133, 119, 119, 148, 141, 123, 119, 128, 138, 135, 123, 122, 131, 128, 131, 137, 107, 116, 131, 111, 122, 120, 111, 126, 112, 141, 144, 123, 132, 123, 135, 136, 123, 122, 98, 129, 126, 119, 136, 114, 137, 117, 116, 143, 118, 136, 129, 121, 124, 120, 153, 131, 121, 126, 132, 134, 134, 113, 112, 126, 101, 132, 145, 124, 133, 132, 97, 129, 121, 142, 117, 128, 127, 116, 117, 118, 147, 145, 128, 131, 118, 131, 117, 124, 131, 147, 125, 134, 131, 119, 136, 120, 136, 128, 140, 122, 121, 137, 126, 118, 119, 131, 118, 134, 127, 123, 134, 119, 119, 105, 124, 137, 122, 121, 114, 122, 127, 128, 121, 121, 122, 135, 111, 112, 131, 116, 124, 122, 142, 123, 130, 118, 134, 136, 137, 122, 115, 121, 109, 123, 112, 112, 139, 118, 131, 128, 134, 126, 157, 121, 130, 133, 135, 129, 136, 137, 128, 120, 132, 124, 122, 128, 129, 111, 120, 115, 116, 99, 118, 129, 136, 110, 127, 126, 109, 92, 123, 134, 136, 148, 125, 136, 123, 141, 126, 134, 118, 127, 123, 141, 118, 132, 142, 127, 121, 126, 121, 142, 139, 96, 105, 134, 122, 118, 127, 140, 127, 130, 138, 123, 125, 119, 135, 117, 116, 121, 120, 124, 115, 114, 120, 119, 135, 122, 128, 133, 135, 116, 132, 114, 117, 124, 116, 141, 128, 140, 135, 115, 133, 132, 125, 115, 107, 123, 115, 129, 134, 121, 139, 138, 138, 125, 132, 132, 113, 115, 128, 130, 123, 128, 122, 132, 110, 127, 124, 115, 135, 128, 130, 144, 137, 122, 154, 134, 131, 119, 133, 118, 133, 117, 113, 133, 131, 120, 113, 116, 139, 136, 116, 116, 120, 111, 108, 108, 118, 128, 108, 116, 114, 126, 125, 139, 141, 121, 128, 128, 112, 128, 131, 101, 125, 121, 126, 134, 111, 122, 132, 127, 146, 117, 129, 122, 144, 120, 122, 121, 143, 121, 120, 132, 123, 122, 132, 124, 138, 116, 112, 131, 129, 131, 121, 136, 114, 123, 123, 132, 112, 128, 127, 102, 106, 120, 128, 123, 138, 134, 107, 117, 126, 130, 129, 122, 109, 118, 134, 131, 123, 127, 121, 120, 130, 129, 128, 127, 142, 141, 127, 122, 114, 128, 128, 120, 123, 119, 126, 118, 111, 124, 122, 124, 121, 116, 119, 126, 115, 119, 122, 118, 133, 132, 109, 125, 124, 118, 125, 134, 128, 121, 117, 134, 123, 122, 116, 135, 131, 137, 109, 118, 116, 134, 120, 118, 115, 117, 133, 129, 131, 121, 127, 130, 126, 154, 138, 124, 108, 119, 116, 122, 137, 123, 124, 131, 125, 113, 127, 117, 131, 148, 134, 126, 117, 137, 121, 127, 119, 124, 122, 121, 121, 144, 112, 139, 127, 126, 122, 100, 133, 122, 130, 109, 132, 116, 155, 117, 126, 111, 106, 116, 127, 129, 133, 117, 147, 123, 119, 135, 125, 126, 134, 117, 123, 133, 117, 107, 126, 139, 116, 117, 133, 126, 133, 140, 138, 116, 125, 120, 118, 123, 142, 126, 134, 142, 125, 128, 125, 135, 139, 131, 131, 126, 108, 137, 129, 122, 97, 120, 107, 127, 130, 121, 129, 119, 124, 116, 124, 140, 100, 127, 113, 117, 119, 132, 105, 124, 123, 138, 116, 134, 125, 122, 115, 137, 133, 124, 99, 122, 130, 120, 107, 119, 122, 116, 135, 136, 114, 109, 121, 117, 132, 131, 116, 124, 142, 118, 124, 115, 125, 101, 111, 122, 131, 123, 130, 137, 127, 126, 128, 135, 129, 128, 130, 113, 139, 111, 146, 103, 129, 136, 127, 130, 121, 131, 117, 128, 133, 110, 126, 140, 128, 107, 130, 143, 120, 134, 129, 130, 128, 122, 124, 135, 115, 123, 140, 139, 124, 133, 118, 118, 123, 125, 105, 144, 109, 123, 111, 122, 145, 133, 125, 126, 122, 122, 133, 138, 120, 109, 142, 133, 110, 128, 126, 130, 122, 130, 117, 124, 110, 124, 123, 108, 123, 127, 123, 136, 135, 121, 129, 130, 126, 118, 122, 138, 141, 114, 130, 130, 123, 110, 128, 120, 146, 121, 129, 127, 133, 130, 144, 129, 109, 115, 130, 126, 137, 119, 137, 120, 116, 135, 109, 136, 122, 115, 137, 135, 107, 132, 130, 110, 113, 117, 131, 115, 126, 115, 128, 141, 126, 129, 132, 129, 122, 118, 130, 127, 129, 124, 118, 107, 122, 132, 131, 122, 141, 142, 126, 137, 132, 121, 136, 123, 122, 124, 137, 142, 129, 108, 141, 139, 129, 120, 130, 130, 122, 123, 131, 137, 125, 118, 120, 118, 117, 118, 140, 106, 136, 118, 142, 132, 133, 122, 125, 128, 138, 129, 113, 131, 130, 113, 127, 147, 127, 130, 132, 152, 114, 118, 128, 128, 103, 115, 143, 112, 124, 130, 114, 126, 119, 124, 112, 139, 124, 118, 124, 138, 129, 121, 130, 140, 120, 140, 142, 121, 116, 120, 134, 128, 129, 134, 125, 131, 123, 133, 127, 143, 120, 134, 113, 117, 136, 130, 121, 131, 134, 123, 115, 123, 113, 114, 135, 101, 120, 134, 133, 130, 128, 148, 134, 135, 136, 133, 128, 113, 134, 132, 128, 119, 129, 121, 117, 135, 116, 118, 123, 126, 116, 127, 123, 135, 134, 131, 128, 125, 116, 114, 149, 134, 107, 135, 142, 119, 116, 112, 120, 120, 124, 128, 107, 129, 123, 132, 123, 118, 136, 127, 112, 130, 118, 137, 107, 129, 129, 129, 144, 120, 136, 113, 132, 128, 128, 120, 113, 128, 119, 115, 123, 134, 113, 130, 112, 122, 110, 132, 127, 116, 123, 128, 150, 127, 120, 150, 124, 131, 102, 117, 116, 108, 123, 129, 107, 132, 123, 120, 120, 127, 104, 138, 111, 137, 108, 145, 114, 123, 121, 112, 131, 136, 120, 109, 117, 121, 140, 138, 115, 111, 132, 106, 121, 114, 123, 133, 120, 124, 141, 137, 125, 135, 120, 126, 119, 128, 131, 129, 124, 133, 122, 148, 129, 131, 122, 127, 112, 112, 119, 136, 137, 112, 126, 116, 125, 129, 108, 116, 131, 119, 129, 117, 123, 120, 124, 140, 113, 154, 123, 134, 129, 119, 118, 133, 140, 122, 126, 133, 117, 122, 117, 124, 121, 151, 136, 132, 145, 138, 120, 116, 94, 129, 121, 123, 139, 133, 126, 131, 119, 135, 113, 116, 98, 121, 140, 137, 114, 118, 117, 129, 125, 130, 127, 123, 130, 138, 120, 119, 114, 133, 128, 104, 108, 119, 142, 131, 133, 135, 126, 112, 132, 143, 121, 121, 140, 120, 118, 138, 125, 112, 121, 127, 124, 144, 113, 122, 122, 118, 126, 138, 127, 131, 120, 121, 136, 114, 116, 115, 136, 121, 118, 125, 129, 115, 146, 124, 123, 128, 144, 127, 131, 120, 134, 110, 138, 117, 132, 138, 137, 106, 123, 122, 128, 122, 130, 130, 119, 120, 130, 119, 121, 141, 121, 130, 144, 136, 112, 132, 138, 124, 131, 134, 116, 128, 131, 126, 127, 106, 140, 121, 106, 119, 125, 123, 128, 120, 132, 116, 118, 118, 122, 113, 108, 131, 124, 119, 128, 125, 131, 116, 137, 136, 122, 116, 137, 124, 149, 134, 131, 141, 134, 137, 127, 115, 129, 122, 136, 127, 129, 134, 128, 123, 130, 121, 123, 128, 134, 144, 115, 122, 118, 131, 132, 106, 122, 121, 118, 124, 111, 117, 140, 110, 130, 130, 127, 132, 128, 122, 127, 125, 117, 113, 119, 132, 111, 117, 137, 137, 123, 108, 130, 137, 124, 122, 136, 137, 142, 124, 133, 131, 118, 128, 122, 120, 115, 116, 118, 119, 113, 122, 127, 118, 138, 128, 142, 124, 133, 125, 127, 145, 126, 116, 131, 123, 129, 132, 118, 111, 110, 122, 105, 142, 118, 122, 141, 133, 131, 123, 137, 133, 120, 130, 115, 111, 115, 126, 125, 122, 137, 131, 119, 129, 129, 122, 116, 135, 130, 102, 134, 131, 135, 138, 115, 121, 118, 130, 135, 101, 132, 130, 123, 110, 110, 110, 130, 116, 134, 124, 134, 118, 114, 111, 132, 108, 123, 129, 113, 119, 119, 117, 129, 133, 129, 120, 136, 126, 105, 112, 121, 112, 135, 111, 117, 140, 139, 118, 128, 131, 128, 114, 135, 111, 118, 113, 139, 126, 119, 129, 152, 123, 117, 114, 120, 137, 107, 115, 134, 134, 135, 113, 140, 121, 134, 134, 125, 124, 130, 133, 131, 120, 121, 134, 147, 123, 119, 125, 127, 105, 122, 139, 125, 137, 126, 122, 113, 137, 144, 122, 120, 138, 134, 118, 140, 129, 149, 126, 127, 127, 122, 109, 134, 118, 118, 130, 105, 122, 126, 134, 126, 121, 124, 123, 149, 135, 108, 110, 138, 118, 129, 119, 123, 127, 138, 121, 140, 132, 134, 124, 105, 120, 121, 118, 131, 136, 110, 144, 124, 112, 133, 123, 113, 120, 120, 118, 122, 123, 99, 134, 135, 116, 120, 120, 122, 118, 131, 125, 118, 125, 128, 130, 123, 113, 114, 138, 120, 107, 116, 124, 134, 107, 122, 138, 125, 150, 106, 137, 121, 130, 108, 133, 125, 142, 126, 119, 113, 117, 138, 141, 129, 113, 108, 106, 142, 122, 113, 121, 115, 132, 125, 142, 119, 123, 127, 115, 151, 114, 120, 154, 127, 132, 104, 139, 136, 114, 115, 123, 123, 133, 136, 123, 137, 132, 121, 117, 129, 128, 146, 126, 130, 138, 124, 151, 120, 132, 121, 120, 134, 119, 146, 111, 137, 124, 129, 135, 124, 110, 127, 132, 126, 128, 125, 132, 130, 119, 111, 108, 139, 123, 113, 133, 138, 129, 110, 134, 138, 124, 153, 127, 129, 113, 128, 137, 130, 132, 123, 127, 133, 123, 121, 111, 129, 129, 147, 129, 123, 130, 108, 105, 137, 138, 120, 111, 119, 133, 141, 126, 116, 135, 135, 119, 119, 118, 114, 125, 112, 141, 132, 127, 106, 153, 120, 121, 133, 122, 149, 120, 144, 134, 124, 136, 106, 135, 113, 136, 113, 141, 135, 113, 138, 122, 137, 135, 128, 114, 117, 105, 116, 122, 134, 119, 113, 114, 123, 117, 107, 128, 113, 121, 131, 112, 123, 134, 114, 145, 122, 132, 118, 141, 137, 114, 121, 113, 109, 116, 128, 121, 117, 116, 118, 107, 126, 107, 130, 103, 122, 119, 119, 119, 114, 148, 138, 119, 121, 131, 136, 121, 136, 127, 131, 119, 118, 111, 127, 127, 135, 129, 110, 112, 141, 109, 100, 124, 122, 128, 114, 130, 133, 121, 136, 134, 115, 118, 112, 133, 132, 140, 139, 142, 130, 107, 126, 119, 128, 125, 137, 127, 119, 129, 130, 122, 105, 138, 113, 106, 124, 128, 131, 122, 134, 123, 131, 117, 119, 125, 133, 139, 111, 117, 129, 113, 127, 124, 113, 126, 120, 125, 129, 134, 140, 139, 129, 135, 112, 128, 132, 124, 117, 113, 126, 115, 122, 117, 154, 131, 118, 136, 123, 130, 118, 136, 120, 122, 111, 124, 126, 126, 124, 144, 150, 108, 109, 130, 142, 118, 117, 134, 114, 137, 107, 130, 124, 126, 127, 132, 115, 117, 137, 131, 135, 116, 128, 121, 122, 128, 127, 140, 113, 129, 122, 139, 141, 128, 141, 130, 132, 126, 112, 138, 134, 142, 139, 112, 131, 143, 117, 119, 126, 109, 121, 128, 125, 125, 106, 123, 114, 133, 122, 123, 140, 136, 138, 118, 121, 136, 147, 140, 142, 113, 112, 137, 129, 125, 129, 128, 131, 148, 107, 117, 114, 129, 108, 136, 136, 116, 105, 115, 117, 137, 129, 146, 124, 136, 124, 144, 118, 122, 123, 135, 125, 123, 129, 129, 154, 115, 129, 126, 119, 126, 136, 131, 124, 133, 130, 133, 101, 109, 131, 132, 125, 128, 120, 126, 142, 122, 122, 126, 135, 136, 124, 147, 131, 126, 119, 142, 105, 120, 138, 149, 115, 148, 130, 137, 125, 119, 122, 117, 127, 121, 132, 136, 138, 121, 127, 116, 120, 134, 119, 122, 129, 104, 118, 112, 116, 124, 147, 128, 121, 136, 128, 148, 132, 131, 125, 131, 129, 119, 137, 116, 130, 125, 123, 118, 99, 111, 134, 119, 111, 104, 132, 122, 126, 128, 123, 129, 120, 143, 129, 114, 132, 129, 121, 108, 131, 134, 111, 117, 107, 122, 135, 110, 118, 102, 127, 127, 139, 148, 133, 119, 129, 128, 121, 121, 114, 113, 118, 100, 145, 113, 133, 122, 137, 131, 145, 121, 106, 103, 139, 105, 120, 129, 126, 115, 120, 125, 122, 116, 125, 128, 131, 130, 138, 135, 115, 129, 146, 138, 128, 140, 133, 125, 120, 133, 112, 139, 147, 110, 127, 116, 114, 121, 122, 122, 138, 125, 122, 113, 134, 117, 142, 137, 107, 129, 139, 144, 138, 137, 127, 128, 100, 118, 114, 120, 144, 135, 126, 111, 123, 112, 126, 118, 148, 112, 101, 134, 118, 106, 143, 130, 120, 140, 132, 119, 131, 103, 114, 114, 129, 132, 107, 142, 130, 123, 144, 130, 118, 122, 132, 116, 111, 120, 130, 111, 139, 136, 104, 128, 99, 126, 138, 132, 126, 115, 125, 135, 126, 120, 137, 115, 144, 119, 132, 107, 134, 121, 138, 136, 127, 118, 132, 150, 143, 118, 103, 114, 131, 128, 114, 124, 110, 125, 110, 137, 117, 120, 110, 122, 101, 136, 123, 128, 116, 129, 133, 118, 123, 140, 120, 144, 120, 120, 119, 137, 122, 118, 121, 114, 128, 120, 123, 139, 123, 116, 142, 128, 136, 129, 124, 123, 107, 125, 119, 136, 128, 130, 140, 120, 116, 129, 114, 117, 131, 134, 137, 122, 134, 127, 121, 130, 126, 101, 112, 113, 124, 104, 124, 106, 123, 124, 136, 117, 129, 144, 104, 145, 137, 114, 126, 119, 140, 142, 113, 136, 124, 119, 116, 104, 135, 131, 120, 123, 115, 127, 127, 129, 111, 132, 123, 120, 128, 133, 138, 110, 136, 131, 109, 122, 141, 120, 116, 152, 116, 126, 149, 126, 122, 138, 133, 109, 106, 138, 118, 137, 133, 125, 132, 132, 120, 133, 123, 148, 145, 116, 121, 135, 125, 137, 127, 121, 131, 113, 135, 130, 129, 121, 135, 123, 120, 131, 127, 146, 125, 114, 117, 99, 116, 129, 129, 128, 109, 133, 137, 127, 103, 122, 112, 138, 141, 108, 110, 121, 142, 115, 124, 123, 129, 122, 124, 128, 131, 131, 130, 123, 118, 118, 118, 127, 142, 137, 142, 113, 146, 115, 106, 98, 125, 124, 112, 138, 119, 132, 130, 132, 131, 133, 115, 120, 120, 112, 111, 126, 121, 132, 125, 130, 116, 139, 122, 111, 115, 124, 136, 137, 135, 139, 108, 130, 132, 121, 110, 125, 121, 127, 134, 117, 129, 121, 137, 121, 122, 129, 119, 129, 119, 118, 140, 136, 128, 126, 136, 128, 142, 133, 112, 127, 109, 135, 138, 126, 118, 134, 120, 124, 145, 132, 145, 137, 131, 135, 118, 125, 119, 128, 124, 129, 126, 116, 135, 120, 126, 117, 118, 120, 141, 119, 116, 107, 141, 132, 135, 120, 136, 110, 119, 121, 115, 137, 137, 120, 148, 146, 126, 134, 123, 144, 105, 116, 132, 127, 120, 130, 132, 121, 123, 123, 125, 122, 125, 119, 120, 115, 110, 127, 133, 121, 116, 132, 131, 131, 117, 122, 118, 126, 136, 135, 114, 110, 104, 128, 127, 135, 117, 133, 125, 128, 110, 127, 130, 113, 132, 130, 128, 137, 103, 114, 121, 123, 146, 126, 143, 142, 128, 126, 125, 134, 123, 137, 111, 138, 119, 132, 129, 114, 148, 125, 126, 139, 132, 127, 128, 149, 99, 133, 117, 124, 130, 120, 133, 133, 121, 125, 137, 143, 123, 125, 131, 127, 145, 114, 118, 118, 127, 129, 109, 131, 136, 122, 125, 129, 128, 129, 106, 145, 119, 124, 132, 125, 131, 114, 119, 124, 129, 114, 121, 125, 140, 131, 125, 120, 134, 125, 111, 117, 135, 132, 132, 108, 128, 136, 128, 106, 126, 105, 117, 111, 122, 119, 126, 128, 127, 129, 112, 119, 127, 120, 126, 131, 129, 135, 126, 111, 122, 122, 129, 129, 121, 118, 116, 124, 127, 124, 124, 112, 121, 120, 124, 116, 123, 126, 128, 141, 120, 141, 136, 140, 120, 110, 126, 123, 108, 117, 134, 136, 123, 122, 133, 124, 108, 139, 123, 137, 141, 115, 140, 131, 128, 122, 148, 121, 109, 124, 128, 112, 131, 128, 133, 139, 123, 128, 128, 121, 136, 121, 128, 119, 99, 116, 113, 137, 117, 121, 129, 127, 112, 154, 136, 123, 135, 130, 124, 136, 130, 128, 124, 101, 125, 138, 111, 124, 116, 126, 107, 122, 123, 138, 134, 125, 130, 138, 143, 111, 150, 129, 140, 129, 113, 112, 121, 125, 128, 137, 113, 121, 121, 136, 126, 133, 125, 106, 117, 128, 145, 137, 115, 119, 158, 129, 131, 118, 129, 127, 112, 130, 136, 110, 114, 125, 116, 118, 135, 123, 132, 142, 144, 140, 124, 127, 121, 113, 126, 124, 115, 119, 132, 102, 127, 126, 121, 138, 149, 140, 109, 131, 130, 137, 115, 144, 124, 132, 130, 121, 127, 120, 135, 122, 127, 127, 117, 117, 108, 113, 118, 122, 124, 120, 129, 126, 112, 140, 78, 115, 125, 124, 114, 143, 138, 117, 140, 145, 128, 132, 132, 125, 131, 127, 135, 120, 117, 139, 124, 112, 132, 119, 121, 151, 125, 134, 130, 140, 118, 111, 110, 112, 115, 124, 122, 132, 115, 122, 129, 124, 134, 138, 128, 124, 132, 128, 135, 92, 132, 126, 156, 121, 116, 134, 124, 132, 135, 143, 151, 126, 123, 126, 128, 115, 110, 123, 116, 123, 117, 118, 122, 138, 119, 129, 116, 112, 120, 115, 122, 119, 131, 133, 132, 116, 107, 112, 129, 115, 108, 137, 134, 145, 131, 165, 126, 123, 128, 134, 110, 133, 121, 120, 119, 133, 133, 105, 112, 137, 124, 117, 124, 125, 129, 128, 121, 122, 137, 113, 139, 122, 120, 131, 121, 118, 124, 135, 123, 117, 121, 137, 124, 137, 100, 121, 107, 127, 142, 132, 120, 115, 118, 125, 128, 142, 118, 121, 133, 118, 117, 120, 122, 125, 126, 124, 125, 126, 111, 128, 138, 124, 134, 119, 141, 112, 105, 128, 139, 126, 118, 120, 125, 128, 119, 136, 125, 136, 115, 128, 127, 125, 133, 133, 124, 116, 119, 113, 115, 126, 129, 120, 121, 128, 118, 134, 119, 124, 130, 125, 121, 115, 125, 127, 116, 117, 119, 105, 120, 139, 127, 116, 129, 124, 130, 121, 120, 134, 133, 124, 114, 132, 102, 137, 124, 125, 128, 119, 128, 141, 143, 118, 128, 134, 119, 137, 124, 111, 120, 127, 131, 130, 127, 134, 144, 128, 131, 131, 139, 113, 113, 143, 120, 124, 123, 122, 135, 127, 96, 114, 155, 129, 126, 106, 128, 128, 141, 137, 121, 124, 138, 104, 129, 134, 127, 133, 134, 120, 121, 109, 118, 132, 114, 114, 114, 124, 124, 121, 144, 128, 128, 130, 130, 100, 111, 138, 115, 130, 121, 113, 123, 115, 119, 134, 125, 124, 121, 127, 125, 123, 120, 126, 109, 126, 135, 134, 120, 126, 124, 127, 138, 110, 139, 112, 119, 142, 82, 109, 134, 128, 124, 126, 122, 138, 132, 118, 157, 119, 142, 140, 141, 115, 107, 133, 116, 105, 122, 131, 117, 121, 119, 136, 125, 131, 117, 137, 125, 126, 135, 121, 120, 123, 133, 136, 135, 148, 114, 136, 126, 141, 122, 137, 132, 125, 112, 131, 127, 115, 137, 141, 120, 126, 133, 128, 119, 145, 133, 130, 135, 136, 116, 131, 132, 119, 138, 110, 125, 131, 129, 141, 119, 140, 135, 126, 110, 111, 112, 133, 133, 117, 120, 126, 129, 131, 140, 131, 131, 120, 128, 123, 141, 106, 123, 118, 129, 146, 131, 127, 132, 132, 125, 134, 135, 120, 111, 128, 124, 140, 126, 129, 115, 134, 121, 118, 138, 125, 130, 100, 135, 118, 121, 114, 131, 102, 126, 134, 150, 143, 144, 113, 134, 124, 132, 129, 110, 124, 137, 125, 111, 124, 127, 126, 131, 120, 135, 127, 129, 131, 143, 135, 124, 124, 138, 107, 126, 149, 117, 135, 126, 113, 113, 112, 116, 119, 130, 123, 137, 141, 136, 113, 135, 126, 129, 109, 125, 123, 111, 110, 135, 130, 159, 132, 124, 131, 131, 141, 144, 136, 126, 118, 122, 129, 129, 125, 119, 124, 138, 141, 114, 131, 131, 129, 128, 124, 133, 113, 136, 140, 127, 119, 111, 124, 130, 119, 129, 133, 130, 128, 113, 129, 101, 130, 118, 140, 109, 124, 114, 143, 101, 120, 112, 134, 124, 117, 115, 102, 129, 121, 113, 127, 120, 131, 134, 119, 134, 126, 119, 116, 121, 141, 110, 114, 128, 127, 136, 131, 117, 128, 100, 131, 128, 127, 127, 114, 125, 128, 125, 132, 117, 131, 136, 123, 115, 139, 104, 134, 128, 117, 135, 126, 133, 143, 117, 120, 132, 121, 112, 128, 132, 110, 111, 130, 138, 137, 116, 110, 135, 131, 140, 111, 109, 114, 99, 144, 139, 139, 125, 146, 132, 120, 136, 128, 121, 127, 115, 129, 117, 125, 139, 118, 125, 129, 133, 134, 114, 119, 141, 119, 116, 126, 136, 130, 109, 126, 116, 148, 131, 139, 109, 143, 120, 107, 120, 133, 127, 128, 137, 123, 121, 136, 120, 139, 131, 121, 114, 113, 130, 124, 127, 120, 125, 132, 118, 130, 113, 131, 106, 137, 124, 123, 132, 114, 109, 120, 119, 118, 133, 139, 144, 127, 126, 130, 115, 118, 135, 131, 137, 129, 123, 134, 125, 120, 119, 149, 149, 118, 135, 106, 132, 127, 136, 120, 120, 113, 126, 129, 118, 140, 118, 135, 129, 140, 117, 121, 132, 120, 125, 139, 127, 123, 137, 120, 115, 134, 125, 117, 119, 119, 140, 132, 115, 140, 125, 142, 110, 114, 122, 120, 137, 135, 112, 119, 123, 109, 125, 122, 132, 130, 135, 134, 111, 108, 117, 105, 131, 140, 123, 124, 108, 121, 131, 116, 118, 134, 119, 139, 136, 116, 127, 133, 103, 130, 108, 112, 139, 114, 131, 128, 114, 118, 119, 120, 133, 120, 131, 128, 123, 112, 129, 110, 123, 123, 152, 112, 129, 108, 129, 128, 121, 141, 145, 124, 128, 135, 141, 113, 113, 99, 142, 120, 127, 146, 120, 124, 118, 139, 135, 129, 118, 131, 127, 128, 130, 135, 134, 124, 126, 131, 121, 128, 115, 129, 121, 121, 128, 129, 113, 126, 117, 130, 121, 122, 114, 110, 115, 125, 130, 119, 125, 120, 121, 127, 117, 127, 141, 105, 109, 126, 124, 111, 96, 121, 122, 125, 130, 112, 116, 126, 120, 95, 117, 125, 127, 135, 142, 124, 134, 131, 116, 127, 118, 104, 130, 105, 108, 127, 132, 128, 118, 137, 123, 139, 122, 130, 124, 100, 115, 110, 132, 125, 121, 118, 117, 127, 125, 141, 126, 134, 113, 135, 119, 147, 139, 129, 107, 111, 135, 128, 133, 118, 124, 137, 130, 132, 130, 135, 130, 134, 121, 155, 129, 131, 144, 124, 145, 127, 132, 113, 119, 142, 111, 142, 112, 128, 113, 148, 116, 137, 128, 128, 119, 129, 111, 115, 145, 128, 132, 122, 132, 146, 133, 138, 125, 145, 117, 138, 118, 113, 108, 118, 126, 114, 109, 117, 126, 136, 125, 122, 115, 123, 133, 122, 134, 134, 129, 123, 129, 118, 147, 113, 139, 125, 120, 125, 130, 139, 124, 123, 126, 130, 141, 112, 129, 115, 116, 133, 135, 121, 130, 131, 118, 118, 112, 133, 120, 142, 132, 133, 121, 134, 134, 132, 113, 122, 132, 119, 128, 122, 127, 124, 122, 130, 126, 120, 113, 131, 120, 123, 132, 124, 137, 136, 129, 152, 125, 110, 127, 115, 122, 124, 132, 134, 122, 122, 133, 132, 114, 128, 124, 128, 155, 122, 117, 127, 113, 116, 130, 119, 117, 128, 121, 128, 115, 112, 111, 134, 147, 150, 126, 136, 127, 137, 119, 138, 129, 111, 115, 139, 130, 132, 124, 136, 133, 120, 120, 131, 141, 113, 129, 121, 122, 140, 118, 120, 126, 119, 146, 168, 134, 117, 139, 127, 115, 127, 108, 127, 137, 123, 147, 113, 121, 115, 112, 130, 122, 112, 124, 134, 136, 135, 128, 136, 135, 127, 132, 124, 132, 128, 133, 117, 128, 133, 130, 116, 119, 119, 123, 121, 116, 148, 143, 111, 128, 99, 145, 116, 136, 109, 138, 142, 123, 133, 131, 128, 127, 138, 114, 127, 121, 132, 117, 115, 142, 130, 119, 133, 121, 127, 140, 130, 128, 116, 119, 117, 115, 138, 112, 115, 121, 129, 107, 92, 125, 128, 108, 115, 116, 126, 120, 129, 133, 131, 133, 147, 112, 123, 160, 111, 122, 122, 132, 132, 133, 125, 123, 121, 130, 134, 110, 125, 116, 126, 135, 125, 131, 117, 147, 118, 127, 129, 117, 139, 136, 116, 115, 121, 129, 135, 107, 129, 136, 119, 119, 116, 144, 125, 124, 125, 129, 131, 122, 132, 99, 139, 99, 128, 118, 132, 130, 138, 124, 128, 118, 112, 130, 121, 130, 118, 131, 118, 125, 108, 125, 131, 127, 139, 126, 117, 105, 124, 132, 120, 116, 134, 132, 123, 152, 113, 107, 112, 119, 126, 117, 119, 117, 133, 125, 134, 145, 119, 129, 127, 113, 130, 121, 132, 124, 121, 133, 128, 106, 131, 132, 120, 119, 118, 110, 113, 97, 118, 130, 134, 126, 131, 131, 122, 132, 120, 125, 131, 115, 117, 111, 127, 106, 127, 131, 136, 115, 130, 123, 139, 125, 123, 127, 127, 124, 130, 134, 145, 144, 120, 128, 126, 126, 136, 133, 125, 125, 116, 130, 124, 105, 118, 125, 124, 127, 131, 113, 119, 115, 135, 125, 131, 113, 126, 103, 136, 127, 123, 126, 132, 115, 107, 107, 128, 120, 119, 104, 150, 133, 130, 142, 128, 114, 125, 135, 143, 117, 147, 123, 149, 127, 125, 130, 129, 129, 125, 134, 135, 123, 132, 125, 144, 128, 125, 121, 137, 121, 114, 124, 127, 124, 130, 128, 111, 128, 123, 131, 124, 139, 135, 128, 139, 122, 119, 153, 141, 132, 122, 120, 129, 112, 120, 121, 116, 104, 105, 112, 127, 121, 145, 120, 119, 125, 120, 146, 133, 139, 136, 123, 135, 133, 138, 113, 123, 125, 125, 120, 114, 132, 125, 143, 133, 127, 131, 112, 103, 131, 122, 115, 129, 107, 130, 115, 127, 120, 124, 117, 119, 132, 114, 115, 148, 149, 123, 114, 100, 131, 108, 124, 114, 133, 128, 104, 113, 124, 144, 97, 124, 156, 123, 126, 139, 136, 118, 141, 134, 122, 123, 136, 136, 114, 116, 116, 123, 129, 122, 136, 140, 138, 101, 118, 132, 122, 109, 121, 120, 101, 120, 125, 121, 130, 123, 123, 139, 118, 124, 132, 129, 116, 148, 150, 132, 124, 135, 115, 126, 134, 114, 141, 134, 144, 113, 125, 123, 123, 110, 117, 132, 127, 129, 123, 113, 122, 124, 121, 118, 129, 132, 126, 125, 126, 135, 113, 122, 130, 149, 134, 131, 121, 124, 130, 129, 129, 138, 130, 116, 134, 128, 122, 127, 125, 128, 128, 136, 117, 109, 125, 120, 144, 117, 122, 118, 129, 133, 135, 130, 135, 126, 129, 136, 120, 135, 132, 118, 105, 127, 116, 120, 80, 128, 122, 136, 123, 127, 119, 118, 142, 138, 126, 125, 126, 125, 135, 128, 122, 124, 126, 111, 127, 134, 130, 130, 112, 132, 130, 115, 128, 139, 141, 122, 123, 119, 126, 147, 137, 144, 118, 124, 123, 133, 139, 129, 129, 131, 141, 125, 133, 113, 114, 131, 137, 116, 121, 114, 130, 107, 130, 123, 129, 140, 128, 111, 118, 129, 126, 137, 107, 133, 134, 122, 125, 126, 107, 128, 117, 117, 143, 136, 129, 138, 124, 113, 120, 115, 145, 135, 117, 129, 127, 127, 122, 136, 117, 126, 124, 126, 97, 143, 105, 117, 129, 127, 127, 133, 122, 127, 124, 134, 126, 110, 123, 127, 132, 113, 119, 150, 120, 126, 134, 111, 131, 128, 128, 109, 143, 125, 131, 130, 147, 112, 153, 103, 138, 126, 113, 125, 126, 130, 109, 126, 120, 122, 116, 117, 137, 118, 126, 129, 140, 133, 139, 129, 114, 117, 122, 118, 126, 122, 119, 135, 112, 140, 121, 128, 120, 131, 127, 135, 111, 118, 133, 118, 149, 129, 124, 132, 130, 126, 114, 125, 121, 123, 112, 122, 142, 125, 131, 125, 121, 137, 139, 125, 122, 124, 122, 116, 125, 123, 134, 123, 115, 129, 153, 130, 145, 110, 114, 109, 145, 108, 124, 134, 113, 117, 127, 117, 132, 126, 122, 157, 107, 127, 144, 136, 130, 130, 135, 130, 133, 117, 121, 125, 134, 146, 122, 124, 129, 119, 130, 116, 127, 111, 127, 113, 130, 126, 125, 126, 118, 132, 135, 139, 116, 126, 117, 134, 130, 123, 112, 124, 137, 139, 108, 109, 130, 125, 121, 105, 130, 127, 128, 116, 111, 133, 124, 126, 119, 119, 143, 147, 113, 139, 97, 135, 136, 113, 142, 127, 138, 126, 125, 125, 114, 121, 140, 130, 130, 116, 145, 132, 99, 134, 131, 127, 132, 113, 130, 105, 106, 128, 116, 132, 137, 118, 120, 148, 129, 121, 133, 149, 132, 147, 126, 136, 149, 123, 130, 122, 121, 137, 117, 149, 119, 121, 103, 119, 114, 111, 120, 134, 119, 122, 126, 119, 122, 123, 136, 138, 111, 134, 124, 120, 127, 153, 131, 139, 124, 129, 129, 113, 141, 110, 119, 134, 119, 137, 130, 103, 134, 113, 131, 131, 144, 119, 148, 134, 126, 129, 128, 133, 136, 121, 143, 112, 131, 110, 130, 125, 135, 127, 121, 143, 135, 133, 138, 140, 116, 118, 133, 110, 118, 136, 114, 117, 103, 113, 112, 125, 122, 126, 105, 130, 133, 113, 116, 125, 121, 130, 124, 109, 115, 129, 122, 126, 117, 124, 116, 134, 142, 121, 113, 105, 110, 149, 115, 131, 120, 130, 118, 108, 124, 117, 114, 132, 114, 119, 131, 119, 128, 106, 117, 121, 142, 126, 136, 122, 122, 120, 118, 107, 135, 137, 118, 139, 127, 120, 117, 122, 131, 129, 105, 156, 133, 134, 124, 131, 137, 110, 138, 117, 122, 121, 125, 123, 137, 121, 140, 136, 115, 133, 128, 127, 112, 126, 150, 130, 116, 128, 134, 122, 128, 118, 137, 113, 142, 118, 116, 125, 136, 114, 130, 126, 128, 136, 134, 125, 134, 124, 136, 123, 120, 123, 112, 147, 107, 120, 113, 136, 113, 135, 124, 117, 114, 135, 146, 132, 125, 133, 118, 140, 136, 132, 116, 108, 132, 109, 128, 132, 109, 138, 112, 130, 118, 115, 119, 134, 138, 125, 125, 120, 101, 127, 126, 128, 119, 125, 119, 131, 133, 119, 128, 115, 134, 137, 122, 127, 135, 114, 138, 132, 121, 126, 135, 107, 124, 108, 138, 131, 121, 120, 125, 115, 114, 127, 116, 138, 139, 122, 126, 134, 120, 119, 120, 109, 131, 131, 114, 125, 131, 110, 120, 113, 112, 127, 133, 118, 107, 108, 118, 112, 131, 116, 134, 125, 134, 120, 125, 114, 119, 123, 123, 125, 126, 124, 132, 126, 116, 124, 120, 135, 130, 121, 101, 122, 118, 137, 113, 139, 99, 114, 135, 130, 118, 124, 129, 124, 118, 121, 150, 127, 145, 128, 139, 116, 137, 128, 138, 121, 127, 103, 140, 130, 120, 145, 125, 128, 129, 115, 118, 151, 128, 134, 136, 133, 115, 134, 126, 113, 113, 115, 125, 136, 118, 135, 131, 121, 116, 119, 106, 142, 126, 126, 112, 124, 139, 104, 164, 134, 135, 125, 127, 135, 127, 90, 133, 105, 118, 109, 145, 123, 122, 126, 114, 119, 110, 126, 125, 129, 118, 113, 137, 121, 116, 137, 136, 136, 123, 122, 141, 137, 122, 140, 118, 123, 122, 152, 130, 153, 141, 141, 121, 141, 105, 131, 129, 129, 139, 130, 141, 122, 126, 138, 102, 112, 133, 126, 115, 128, 134, 125, 128, 119, 122, 126, 106, 141, 115, 113, 105, 125, 135, 122, 125, 126, 133, 115, 111, 122, 121, 125, 119, 131, 126, 107, 125, 119, 126, 128, 139, 139, 125, 103, 135, 132, 128, 137, 118, 134, 131, 134, 137, 127, 137, 139, 136, 134, 112, 131, 136, 124, 128, 135, 113, 123, 121, 102, 128, 131, 125, 126, 129, 125, 116, 111, 125, 110, 125, 111, 128, 143, 136, 112, 122, 137, 130, 128, 106, 121, 139, 126, 131, 122, 132, 121, 122, 121, 131, 125, 118, 163, 133, 115, 125, 126, 129, 111, 143, 122, 139, 113, 132, 118, 126, 133, 124, 132, 126, 119, 142, 116, 137, 124, 118, 105, 123, 128, 129, 122, 117, 128, 130, 118, 123, 130, 108, 123, 129, 115, 119, 117, 128, 132, 139, 134, 133, 122, 142, 124, 124, 135, 117, 126, 144, 136, 123, 152, 138, 123, 130, 122, 127, 130, 139, 135, 122, 155, 121, 99, 127, 141, 126, 114, 126, 123, 101, 107, 117, 112, 122, 127, 132, 126, 118, 125, 143, 116, 125, 149, 118, 131, 149, 141, 129, 136, 126, 128, 137, 118, 148, 131, 123, 124, 138, 122, 128, 121, 129, 120, 121, 112, 129, 131, 128, 122, 127, 120, 119, 132, 123, 126, 125, 112, 120, 127, 125, 124, 118, 142, 120, 134, 136, 101, 140, 122, 122, 111, 123, 112, 134, 143, 145, 143, 87, 115, 158, 131, 99, 144, 128, 138, 108, 139, 134, 136, 128, 135, 138, 123, 133, 139, 134, 133, 101, 134, 143, 142, 119, 125, 122, 136, 127, 138, 123, 122, 152, 131, 126, 135, 122, 132, 135, 122, 129, 116, 136, 129, 123, 120, 138, 100, 99, 109, 121, 129, 130, 131, 143, 129, 114, 121, 132, 122, 139, 88, 139, 137, 129, 98, 110, 153, 126, 131, 120, 113, 134, 135, 132, 118, 136, 126, 125, 136, 123, 111, 139, 124, 119, 131, 130, 131, 132, 110, 118, 121, 136, 123, 140, 125, 128, 125, 121, 137, 118, 136, 133, 111, 126, 119, 118, 116, 124, 118, 115, 136, 138, 132, 117, 119, 116, 145, 130, 133, 122, 99, 120, 122, 119, 110, 120, 123, 150, 115, 130, 111, 113, 130, 119, 143, 128, 126, 124, 131, 129, 124, 140, 129, 115, 124, 152, 106, 128, 136, 125, 102, 133, 98, 122, 140, 127, 132, 115, 133, 106, 124, 127, 132, 126, 115, 125, 128, 128, 129, 104, 130, 123, 122, 114, 117, 129, 129, 126, 125, 120, 148, 135, 113, 112, 128, 118, 128, 131, 142, 129, 129, 116, 120, 124, 139, 117, 117, 122, 117, 130, 129, 123, 107, 121, 127, 124, 124, 119, 108, 115, 127, 129, 132, 127, 131, 153, 113, 116, 127, 110, 134, 109, 135, 109, 112, 123, 125, 126, 114, 132, 114, 117, 119, 111, 121, 129, 107, 136, 132, 114, 119, 120, 118, 128, 116, 140, 119, 140, 103, 145, 143, 123, 134, 118, 134, 138, 121, 135, 130, 132, 107, 125, 129, 129, 120, 148, 136, 127, 119, 117, 106, 130, 130, 136, 106, 111, 109, 131, 123, 128, 138, 139, 125, 121, 104, 111, 130, 122, 141, 145, 131, 134, 126, 128, 135, 114, 116, 136, 130, 104, 114, 133, 119, 120, 119, 121, 123, 136, 136, 111, 117, 124, 129, 99, 95, 141, 134, 138, 121, 147, 125, 115, 115, 131, 110, 126, 129, 141, 133, 137, 124, 117, 108, 124, 128, 126, 131, 141, 129, 120, 123, 131, 117, 121, 123, 118, 127, 126, 110, 131, 130, 117, 123, 126, 128, 137, 131, 125, 132, 125, 122, 124, 128, 114, 130, 121, 126, 128, 124, 123, 115, 138, 120, 129, 124, 116, 150, 132, 122, 122, 132, 117, 116, 106, 123, 132, 120, 131, 107, 114, 130, 105, 125, 126, 131, 103, 126, 136, 125, 125, 119, 122, 142, 127, 135, 120, 125, 114, 134, 126, 118, 129, 118, 124, 119, 125, 114, 118, 116, 109, 117, 117, 110, 137, 125, 109, 138, 131, 115, 125, 121, 136, 115, 116, 118, 138, 132, 128, 112, 138, 134, 134, 120, 129, 135, 138, 131, 129, 106, 118, 120, 96, 121, 125, 128, 121, 129, 116, 126, 106, 124, 125, 139, 128, 122, 117, 120, 137, 123, 120, 139, 135, 118, 130, 111, 131, 122, 111, 124, 125, 137, 119, 137, 134, 126, 120, 147, 108, 120, 114, 133, 119, 110, 121, 113, 125, 124, 121, 119, 127, 134, 121, 124, 130, 119, 141, 124, 125, 127, 130, 145, 118, 130, 135, 140, 129, 121, 125, 132, 133, 145, 129, 141, 118, 119, 128, 113, 117, 112, 125, 141, 117, 109, 145, 159, 122, 132, 138, 124, 132, 139, 130, 114, 108, 111, 115, 131, 142, 135, 117, 123, 139, 122, 140, 134, 112, 118, 126, 133, 119, 120, 116, 123, 124, 131, 116, 134, 134, 127, 113, 117, 129, 134, 121, 111, 116, 148, 126, 128, 114, 117, 123, 138, 116, 141, 121, 125, 123, 130, 131, 106, 111, 115, 113, 137, 133, 119, 149, 126, 126, 119, 122, 118, 125, 129, 113, 125, 106, 122, 133, 119, 107, 124, 128, 132, 139, 124, 137, 131, 121, 114, 127, 146, 119, 108, 130, 142, 121, 126, 126, 125, 121, 144, 129, 131, 145, 143, 117, 103, 122, 118, 127, 142, 130, 114, 132, 113, 118, 126, 138, 120, 128, 123, 141, 121, 133, 144, 121, 134, 134, 115, 119, 133, 127, 121, 141, 120, 133, 122, 152, 126, 108, 96, 137, 127, 130, 119, 132, 126, 137, 136, 126, 129, 147, 132, 119, 108, 127, 125, 128, 113, 117, 124, 114, 134, 131, 112, 127, 132, 118, 103, 126, 118, 124, 117, 143, 120, 122, 127, 125, 124, 121, 136, 105, 130, 137, 130, 117, 119, 132, 127, 121, 135, 120, 136, 123, 140, 127, 130, 120, 136, 144, 125, 137, 110, 118, 141, 130, 135, 130, 114, 131, 123, 114, 128, 143, 140, 128, 123, 117, 115, 145, 143, 111, 131, 128, 114, 129, 137, 123, 123, 126, 124, 131, 133, 129, 108, 129, 141, 130, 120, 112, 130, 129, 123, 123, 142, 123, 122, 126, 122, 138, 118, 118, 112, 119, 130, 123, 116, 128, 124, 154, 125, 116, 125, 111, 135, 143, 129, 124, 133, 116, 116, 116, 115, 147, 128, 119, 119, 116, 118, 130, 138, 113, 116, 116, 121, 143, 123, 113, 118, 137, 129, 120, 120, 133, 121, 134, 150, 148, 119, 132, 110, 138, 138, 118, 120, 123, 119, 126, 142, 109, 123, 127, 130, 128, 123, 124, 126, 124, 126, 103, 132, 115, 137, 113, 133, 138, 128, 123, 109, 115, 126, 124, 139, 104, 142, 108, 133, 112, 124, 123, 122, 136, 126, 124, 133, 133, 123, 128, 112, 122, 112, 131, 126, 114, 102, 128, 133, 133, 115, 128, 124, 106, 119, 125, 108, 128, 122, 120, 131, 127, 109, 129, 121, 142, 133, 132, 133, 127, 125, 140, 135, 125, 145, 134, 128, 117, 128, 138, 113, 141, 124, 139, 134, 127, 114, 143, 124, 120, 134, 133, 137, 128, 118, 132, 137, 130, 128, 138, 132, 110, 135, 142, 122, 127, 121, 141, 125, 128, 126, 112, 111, 127, 146, 110, 123, 118, 114, 127, 127, 128, 129, 127, 144, 118, 109, 123, 118, 123, 121, 129, 123, 134, 112, 114, 137, 133, 119, 121, 117, 127, 120, 125, 138, 119, 134, 140, 109, 123, 123, 125, 134, 116, 128, 138, 128, 140, 145, 125, 127, 123, 151, 131, 127, 129, 132, 124, 119, 115, 113, 131, 146, 116, 131, 142, 152, 116, 119, 116, 106, 111, 132, 113, 141, 127, 134, 165, 139, 127, 124, 128, 133, 108, 128, 117, 127, 126, 119, 100, 135, 170, 130, 129, 137, 114, 118, 144, 128, 119, 111, 138, 108, 126, 121, 99, 134, 126, 145, 117, 129, 119, 125, 137, 112, 122, 102, 124, 144, 122, 130, 113, 115, 136, 113, 132, 98, 128, 128, 133, 119, 118, 130, 111, 141, 123, 122, 131, 131, 135, 118, 122, 121, 104, 120, 121, 139, 123, 130, 134, 106, 136, 118, 121, 118, 142, 140, 114, 133, 108, 126, 118, 108, 152, 118, 124, 122, 116, 135, 129, 117, 121, 107, 122, 129, 131, 120, 132, 142, 110, 133, 122, 134, 129, 127, 114, 144, 112, 122, 132, 105, 113, 125, 123, 142, 131, 124, 96, 131, 115, 135, 113, 118, 124, 128, 112, 117, 135, 130, 117, 130, 133, 132, 141, 145, 134, 141, 129, 131, 124, 136, 131, 120, 144, 123, 134, 136, 135, 132, 128, 126, 116, 116, 125, 122, 119, 135, 123, 124, 113, 134, 128, 130, 118, 119, 132, 110, 126, 118, 128, 119, 124, 120, 119, 119, 117, 123, 138, 129, 158, 128, 116, 108, 118, 138, 113, 121, 124, 124, 121, 103, 116, 109, 121, 128, 124, 147, 142, 127, 141, 123, 118, 115, 131, 121, 132, 112, 119, 112, 128, 113, 125, 140, 119, 123, 137, 131, 140, 123, 112, 140, 113, 114, 127, 117, 120, 115, 119, 129, 119, 125, 140, 117, 125, 116, 115, 119, 131, 121, 124, 121, 124, 137, 113, 114, 133, 114, 126, 125, 137, 151, 116, 131, 113, 137, 138, 138, 120, 137, 130, 117, 130, 114, 141, 105, 118, 121, 129, 133, 136, 135, 105, 129, 144, 131, 132, 128, 151, 134, 129, 142, 120, 129, 110, 140, 138, 114, 116, 119, 116, 137, 127, 116, 127, 110, 120, 117, 113, 140, 131, 106, 125, 115, 129, 114, 123, 122, 139, 120, 146, 118, 125, 130, 126, 123, 141, 119, 135, 120, 115, 133, 103, 115, 127, 135, 118, 119, 127, 124, 108, 122, 116, 123, 133, 130, 108, 121, 133, 147, 124, 130, 132, 116, 135, 129, 127, 116, 141, 134, 140, 116, 109, 122, 116, 119, 125, 120, 124, 118, 127, 125, 118, 138, 128, 142, 117, 130, 132, 155, 137, 122, 118, 122, 149, 133, 132, 119, 116, 129, 136, 104, 125, 119, 120, 132, 121, 115, 126, 121, 111, 114, 125, 119, 120, 124, 138, 115, 131, 126, 105, 106, 108, 129, 123, 97, 123, 133, 132, 129, 121, 131, 123, 129, 125, 138, 142, 139, 125, 119, 131, 116, 133, 119, 124, 122, 116, 120, 120, 119, 123, 144, 130, 113, 105, 132, 122, 106, 125, 116, 137, 128, 123, 135, 116, 140, 115, 116, 123, 128, 132, 127, 154, 125, 134, 127, 124, 131, 131, 126, 116, 131, 131, 120, 138, 112, 115, 119, 122, 140, 118, 127, 147, 123, 117, 106, 131, 122, 113, 110, 119, 130, 139, 137, 136, 121, 119, 124, 140, 147, 106, 132, 112, 140, 118, 122, 122, 120, 125, 135, 104, 115, 115, 122, 126, 141, 121, 132, 138, 133, 117, 116, 125, 126, 101, 120, 140, 140, 113, 109, 123, 125, 116, 112, 131, 120, 97, 100, 128, 121, 124, 103, 136, 139, 120, 122, 128, 128, 127, 128, 130, 134, 133, 117, 137, 127, 102, 118, 117, 118, 104, 125, 112, 125, 135, 137, 113, 123, 117, 137, 111, 128, 135, 121, 132, 129, 112, 109, 132, 119, 111, 115, 116, 126, 121, 135, 122, 135, 137, 135, 135, 118, 117, 117, 133, 139, 125, 128, 123, 117, 135, 117, 146, 127, 116, 152, 133, 121, 126, 135, 121, 121, 119, 145, 107, 153, 118, 129, 121, 131, 118, 118, 135, 139, 110, 114, 127, 140, 125, 121, 124, 144, 135, 156, 135, 109, 150, 152, 146, 121, 142, 116, 121, 120, 132, 101, 138, 130, 122, 126, 127, 116, 126, 130, 123, 111, 127, 117, 134, 119, 123, 122, 123, 122, 115, 120, 116, 120, 117, 136, 116, 127, 134, 124, 129, 109, 133, 113, 123, 119, 115, 135, 136, 109, 130, 125, 125, 128, 110, 131, 126, 119, 123, 97, 134, 144, 131, 109, 116, 121, 130, 115, 125, 139, 126, 117, 121, 119, 109, 104, 138, 133, 124, 137, 127, 108, 133, 128, 115, 140, 122, 133, 128, 117, 122, 117, 123, 117, 126, 114, 126, 130, 112, 133, 130, 99, 125, 117, 134, 144, 131, 120, 118, 123, 124, 116, 124, 114, 135, 138, 139, 124, 129, 128, 129, 144, 121, 126, 133, 118, 130, 136, 134, 120, 102, 112, 142, 129, 138, 127, 126, 142, 113, 144, 102, 140, 126, 136, 118, 139, 118, 124, 123, 138, 109, 140, 116, 131, 133, 136, 115, 116, 133, 120, 125, 116, 121, 141, 124, 126, 137, 114, 130, 131, 114, 141, 134, 123, 127, 128, 112, 121, 141, 121, 121, 119, 131, 137, 128, 126, 131, 132, 115, 115, 135, 132, 131, 136, 119, 142, 118, 107, 115, 122, 125, 109, 122, 122, 134, 119, 128, 142, 124, 112, 135, 140, 144, 127, 127, 130, 135, 97, 123, 137, 120, 115, 127, 117, 129, 120, 136, 122, 125, 135, 148, 122, 113, 122, 111, 140, 127, 136, 144, 122, 129, 130, 139, 124, 117, 104, 110, 122, 126, 126, 145, 126, 133, 121, 114, 111, 120, 133, 111, 135, 120, 119, 113, 129, 122, 125, 130, 118, 127, 142, 139, 96, 120, 126, 121, 110, 131, 114, 158, 133, 109, 106, 132, 127, 107, 127, 122, 151, 141, 133, 129, 121, 120, 133, 127, 111, 142, 123, 117, 112, 115, 121, 138, 124, 137, 107, 121, 132, 126, 141, 145, 110, 127, 134, 143, 116, 122, 133, 142, 138, 116, 120, 129, 144, 137, 137, 109, 146, 132, 133, 129, 115, 126, 117, 132, 132, 117, 117, 131, 115, 116, 122, 120, 138, 126, 115, 119, 119, 122, 116, 130, 125, 106, 140, 125, 140, 114, 136, 133, 108, 115, 120, 137, 110, 124, 121, 125, 133, 121, 126, 130, 122, 133, 132, 107, 128, 133, 120, 120, 123, 130, 141, 115, 119, 130, 114, 114, 150, 123, 134, 129, 135, 132, 128, 116, 135, 113, 127, 118, 132, 148, 127, 125, 148, 121, 119, 129, 131, 108, 131, 119, 119, 123, 111, 122, 128, 122, 130, 126, 123, 109, 125, 116, 134, 109, 121, 114, 106, 125, 129, 120, 127, 119, 130, 114, 109, 132, 119, 115, 120, 117, 109, 120, 135, 121, 129, 122, 125, 112, 113, 128, 106, 132, 119, 123, 125, 133, 119, 113, 130, 123, 113, 128, 134, 129, 127, 122, 120, 145, 109, 134, 140, 126, 114, 126, 121, 123, 123, 118, 116, 132, 121, 144, 120, 126, 111, 117, 120, 130, 127, 112, 148, 136, 121, 128, 121, 130, 121, 114, 110, 115, 154, 132, 134, 100, 121, 116, 138, 120, 103, 142, 113, 109, 121, 128, 118, 120, 131, 101, 141, 136, 118, 134, 117, 106, 142, 133, 116, 152, 143, 114, 115, 131, 128, 124, 114, 140, 132, 141, 116, 119, 110, 129, 124, 138, 128, 127, 140, 125, 131, 143, 138, 123, 117, 135, 132, 135, 117, 123, 123, 111, 126, 123, 137, 116, 132, 122, 121, 121, 124, 124, 127, 131, 119, 125, 140, 123, 139, 120, 120, 111, 112, 124, 104, 119, 126, 129, 124, 118, 131, 139, 109, 142, 130, 138, 115, 122, 126, 118, 141, 119, 132, 136, 124, 143, 124, 119, 106, 116, 114, 120, 113, 113, 128, 123, 129, 105, 125, 124, 133, 142, 121, 119, 108, 134, 142, 110, 120, 115, 133, 129, 114, 134, 125, 130, 125, 128, 125, 126, 119, 108, 125, 121, 134, 134, 120, 126, 123, 115, 124, 145, 133, 139, 121, 133, 131, 128, 119, 146, 130, 138, 128, 116, 117, 122, 109, 143, 119, 115, 124, 113, 131, 102, 138, 116, 114, 127, 130, 131, 113, 119, 105, 104, 147, 115, 126, 131, 126, 122, 128, 135, 116, 124, 126, 131, 125, 124, 119, 115, 125, 108, 117, 137, 138, 127, 126, 114, 124, 119, 116, 111, 133, 125, 131, 124, 121, 128, 125, 135, 112, 130, 127, 130, 112, 109, 136, 113, 120, 121, 118, 129, 129, 147, 130, 125, 139, 129, 121, 141, 139, 112, 128, 130, 126, 133, 127, 120, 116, 123, 123, 128, 131, 120, 123, 134, 128, 123, 132, 122, 133, 131, 128, 129, 125, 136, 120, 148, 119, 117, 112, 132, 123, 128, 126, 125, 134, 121, 112, 125, 107, 122, 119, 122, 119, 130, 127, 121, 134, 132, 129, 148, 123, 132, 120, 122, 116, 125, 142, 135, 120, 115, 116, 132, 131, 113, 132, 126, 105, 126, 130, 124, 115, 121, 128, 126, 124, 116, 130, 122, 137, 128, 121, 115, 143, 114, 129, 109, 129, 130, 120, 144, 116, 113, 141, 138, 122, 116, 126, 122, 124, 122, 129, 128, 130, 123, 112, 128, 125, 118, 139, 133, 139, 119, 109, 133, 123, 128, 121, 129, 123, 117, 135, 108, 112, 111, 112, 132, 122, 121, 126, 128, 124, 146, 130, 134, 134, 130, 127, 126, 130, 121, 113, 136, 136, 114, 128, 113, 112, 104, 135, 108, 123, 134, 121, 120, 140, 115, 133, 136, 132, 131, 147, 116, 114, 134, 134, 127, 127, 130, 137, 139, 115, 121, 125, 120, 125, 116, 121, 117, 118, 122, 125, 103, 129, 116, 122, 135, 125, 132, 123, 122, 114, 134, 131, 143, 108, 125, 144, 115, 115, 120, 137, 126, 123, 145, 114, 119, 100, 128, 132, 132, 121, 124, 136, 115, 118, 109, 114, 143, 129, 143, 134, 123, 140, 123, 141, 129, 110, 117, 124, 151, 125, 140, 116, 130, 124, 111, 143, 125, 127, 147, 127, 128, 120, 153, 122, 138, 118, 135, 124, 130, 120, 144, 149, 126, 113, 124, 125, 130, 113, 119, 120, 132, 120, 117, 136, 117, 121, 129, 134, 139, 136, 140, 139, 137, 120, 122, 118, 124, 133, 130, 123, 120, 121, 139, 110, 116, 116, 131, 131, 135, 140, 118, 120, 118, 139, 125, 116, 137, 112, 143, 110, 131, 121, 128, 123, 125, 134, 140, 137, 126, 121, 116, 130, 121, 122, 125, 130, 132, 129, 124, 143, 139, 123, 124, 149, 136, 128, 132, 124, 131, 117, 140, 110, 125, 129, 114, 121, 127, 133, 129, 118, 118, 113, 114, 129, 134, 127, 141, 136, 141, 133, 130, 154, 136, 98, 146, 123, 127, 120, 122, 112, 113, 117, 136, 124, 120, 143, 131, 109, 132, 118, 115, 125, 128, 107, 128, 112, 145, 122, 128, 121, 120, 141, 117, 135, 126, 123, 142, 125, 123, 127, 132, 127, 137, 119, 115, 128, 114, 116, 112, 123, 122, 107, 126, 129, 127, 125, 115, 116, 141, 142, 116, 121, 133, 125, 125, 126, 131, 134, 139, 129, 134, 114, 100, 123, 134, 123, 123, 126, 117, 128, 152, 120, 132, 124, 127, 120, 109, 128, 125, 133, 134, 131, 129, 130, 122, 122, 121, 122, 123, 126, 127, 134, 119, 138, 120, 121, 146, 122, 134, 127, 119, 116, 122, 125, 118, 129, 126, 120, 129, 128, 133, 123, 131, 124, 118, 121, 126, 103, 123, 129, 133, 128, 127, 133, 115, 124, 121, 126, 122, 140, 126, 123, 129, 133, 135, 136, 147, 113, 125, 122, 125, 141, 137, 122, 128, 126, 135, 84, 125, 103, 120, 116, 148, 115, 118, 125, 121, 133, 122, 150, 125, 128, 110, 126, 147, 124, 125, 139, 118, 118, 133, 111, 102, 124, 100, 125, 120, 138, 136, 115, 128, 118, 128, 120, 121, 118, 125, 132, 130, 123, 135, 117, 126, 119, 121, 124, 132, 125, 137, 134, 123, 124, 128, 132, 139, 127, 134, 124, 121, 126, 119, 137, 126, 133, 128, 132, 120, 136, 108, 111, 133, 124, 114, 156, 111, 131, 135, 124, 121, 126, 126, 133, 113, 108, 135, 128, 133, 119, 124, 119, 136, 131, 147, 134, 127, 130, 110, 126, 120, 138, 130, 115, 117, 136, 107, 113, 125, 126, 133, 130, 122, 112, 142, 129, 125, 120, 121, 127, 105, 125, 131, 109, 138, 131, 118, 126, 141, 136, 123, 127, 125, 126, 134, 120, 130, 133, 123, 115, 117, 149, 121, 125, 118, 118, 128, 117, 131, 134, 140, 132, 138, 130, 128, 151, 131, 128, 122, 120, 116, 135, 125, 117, 122, 141, 123, 128, 119, 152, 113, 113, 112, 130, 116, 134, 112, 86, 122, 133, 118, 126, 122, 141, 134, 121, 116, 125, 126, 115, 130, 135, 128, 127, 146, 125, 121, 124, 120, 137, 130, 129, 120, 118, 128, 135, 145, 123, 141, 122, 116, 131, 136, 116, 135, 135, 126, 119, 114, 137, 119, 125, 120, 113, 132, 134, 135, 123, 139, 131, 117, 129, 123, 121, 125, 128, 128, 129, 122, 113, 133, 121, 139, 122, 137, 128, 128, 131, 114, 121, 140, 136, 113, 114, 135, 132, 127, 133, 147, 135, 143, 124, 130, 121, 130, 111, 133, 129, 129, 122, 129, 149, 139, 130, 118, 128, 112, 119, 122, 141, 126, 138, 116, 130, 119, 106, 124, 115, 126, 108, 139, 109, 131, 126, 136, 121, 123, 135, 117, 131, 118, 135, 140, 132, 144, 115, 119, 139, 121, 120, 126, 128, 130, 130, 131, 148, 135, 117, 115, 110, 131, 120, 131, 122, 115, 114, 128, 125, 111, 120, 123, 109, 129, 137, 112, 116, 120, 120, 120, 128, 125, 136, 128, 122, 124, 128, 124, 144, 150, 127, 115, 113, 117, 141, 129, 126, 121, 128, 117, 132, 121, 129, 122, 113, 119, 119, 129, 131, 123, 124, 136, 123, 129, 137, 129, 132, 138, 103, 114, 124, 123, 134, 132, 110, 137, 105, 108, 137, 122, 125, 131, 129, 122, 122, 114, 130, 128, 117, 136, 117, 117, 146, 118, 124, 128, 121, 135, 131, 134, 130, 125, 99, 116, 125, 133, 122, 133, 127, 120, 122, 128, 124, 132, 123, 127, 110, 123, 122, 132, 117, 121, 123, 142, 122, 146, 124, 136, 138, 132, 108, 117, 135, 123, 102, 137, 130, 128, 107, 127, 133, 148, 123, 133, 135, 122, 130, 112, 117, 115, 138, 139, 124, 131, 114, 122, 131, 131, 125, 130, 115, 126, 136, 133, 125, 143, 113, 137, 122, 115, 117, 128, 116, 129, 132, 124, 132, 118, 143, 123, 131, 128, 111, 142, 120, 129, 117, 129, 139, 119, 128, 121, 117, 133, 135, 135, 138, 124, 137, 124, 114, 121, 118, 129, 124, 140, 128, 115, 133, 130, 120, 126, 126, 130, 134, 127, 112, 132, 142, 107, 111, 117, 116, 105, 133, 122, 146, 131, 127, 123, 128, 140, 116, 128, 114, 110, 122, 129, 130, 133, 127, 122, 118, 113, 134, 131, 128, 139, 112, 131, 116, 116, 145, 130, 118, 113, 122, 131, 118, 124, 129, 123, 125, 138, 130, 127, 128, 108, 100, 126, 124, 131, 138, 121, 129, 130, 136, 115, 134, 135, 126, 138, 128, 136, 122, 135, 131, 128, 143, 115, 138, 114, 122, 116, 117, 144, 117, 118, 124, 115, 128, 124, 118, 117, 123, 114, 123, 129, 127, 121, 109, 122, 124, 114, 119, 120, 127, 134, 137, 110, 128, 141, 105, 142, 117, 113, 122, 134, 126, 117, 139, 116, 136, 134, 128, 134, 135, 127, 121, 155, 125, 115, 125, 134, 118, 124, 124, 129, 101, 131, 123, 131, 142, 146, 120, 148, 100, 133, 112, 122, 133, 125, 146, 111, 131, 124, 116, 158, 137, 126, 128, 144, 111, 117, 121, 113, 130, 127, 114, 127, 117, 137, 126, 115, 123, 126, 114, 125, 132, 122, 135, 140, 127, 137, 121, 135, 117, 126, 127, 133, 128, 131, 134, 134, 103, 129, 133, 118, 118, 137, 124, 122, 134, 131, 131, 129, 116, 137, 129, 124, 126, 127, 135, 130, 143, 102, 117, 122, 119, 125, 128, 125, 124, 112, 139, 134, 105, 102, 129, 128, 116, 128, 139, 100, 129, 130, 124, 129, 128, 118, 118, 117, 128, 131, 113, 130, 128, 125, 123, 121, 132, 117, 136, 128, 115, 149, 108, 134, 114, 127, 126, 128, 109, 140, 122, 130, 124, 139, 141, 122, 133, 127, 141, 115, 117, 134, 132, 126, 134, 120, 124, 115, 125, 140, 114, 117, 140, 125, 116, 136, 134, 116, 100, 120, 105, 124, 127, 117, 121, 118, 140, 138, 127, 122, 124, 117, 114, 124, 143, 123, 127, 128, 144, 108, 118, 125, 131, 129, 121, 131, 130, 110, 136, 129, 146, 132, 123, 123, 126, 128, 104, 130, 129, 115, 125, 129, 127, 124, 123, 124, 128, 136, 111, 125, 139, 135, 131, 126, 128, 131, 138, 118, 125, 115, 111, 124, 132, 118, 127, 119, 116, 120, 117, 140, 146, 133, 122, 140, 136, 118, 128, 119, 137, 128, 136, 134, 124, 116, 119, 133, 121, 132, 131, 117, 152, 131, 118, 126, 122, 143, 119, 117, 125, 141, 94, 129, 113, 130, 146, 111, 110, 105, 124, 134, 137, 124, 140, 113, 125, 110, 124, 139, 119, 107, 127, 128, 133, 125, 130, 160, 131, 143, 124, 134, 103, 119, 122, 104, 147, 123, 134, 134, 131, 125, 134, 111, 127, 108, 138, 131, 109, 125, 128, 124, 124, 117, 129, 121, 128, 110, 124, 117, 131, 130, 111, 109, 127, 112, 136, 167, 128, 114, 131, 119, 129, 128, 135, 122, 121, 131, 121, 92, 132, 123, 116, 127, 110, 119, 123, 128, 98, 149, 119, 127, 123, 137, 118, 123, 132, 137, 120, 117, 116, 115, 133, 132, 137, 125, 131, 110, 128, 123, 147, 128, 113, 121, 127, 136, 124, 101, 131, 148, 120, 122, 133, 114, 129, 126, 103, 120, 128, 129, 132, 122, 93, 135, 124, 132, 134, 119, 122, 123, 112, 124, 131, 133, 133, 115, 124, 123, 117, 130, 108, 116, 132, 114, 148, 116, 120, 119, 97, 104, 128, 127, 139, 119, 123, 115, 117, 113, 120, 154, 123, 121, 112, 115, 114, 126, 128, 133, 111, 142, 121, 115, 138, 132, 135, 115, 122, 125, 119, 135, 133, 122, 119, 152, 120, 103, 126, 114, 122, 137, 136, 126, 129, 115, 122, 134, 132, 131, 115, 134, 124, 117, 126, 122, 145, 144, 145, 123, 112, 118, 162, 135, 144, 144, 125, 132, 139, 118, 134, 128, 104, 128, 131, 132, 131, 121, 129, 122, 134, 129, 132, 136, 125, 133, 102, 117, 126, 130, 116, 141, 130, 118, 123, 141, 131, 122, 131, 141, 135, 129, 129, 129, 117, 115, 138, 119, 119, 111, 132, 142, 124, 126, 125, 127, 129, 135, 133, 141, 122, 111, 118, 137, 133, 118, 132, 120, 127, 126, 121, 128, 128, 121, 123, 108, 147, 132, 128, 132, 123, 141, 147, 127, 110, 132, 86, 127, 127, 145, 134, 130, 122, 137, 130, 139, 141, 131, 142, 128, 125, 123, 127, 122, 134, 132, 131, 134, 136, 129, 140, 140, 114, 112, 114, 118, 135, 139, 121, 140, 121, 123, 144, 135, 109, 124, 125, 135, 131, 132, 135, 107, 119, 131, 122, 139, 116, 135, 141, 130, 133, 127, 105, 119, 115, 129, 125, 123, 121, 118, 143, 116, 127, 131, 102, 114, 122, 127, 125, 137, 117, 127, 117, 126, 135, 117, 143, 130, 136, 132, 121, 132, 116, 141, 120, 124, 99, 126, 125, 145, 131, 109, 131, 140, 132, 113, 132, 113, 138, 125, 115, 126, 122, 131, 121, 104, 123, 118, 131, 118, 124, 133, 116, 97, 128, 119, 138, 108, 122, 122, 129, 125, 144, 135, 132, 119, 132, 128, 123, 123, 127, 144, 119, 114, 123, 127, 137, 128, 129, 138, 138, 122, 122, 134, 126, 147, 110, 123, 143, 113, 132, 140, 123, 128, 120, 114, 138, 119, 131, 138, 135, 128, 141, 103, 126, 116, 140, 121, 115, 124, 129, 114, 116, 121, 133, 131, 111, 118, 130, 132, 135, 149, 119, 141, 98, 121, 138, 131, 121, 101, 132, 112, 123, 115, 113, 123, 114, 127, 127, 129, 113, 118, 117, 115, 120, 128, 130, 108, 116, 134, 147, 131, 128, 141, 104, 120, 126, 135, 136, 139, 133, 132, 113, 121, 132, 121, 132, 131, 134, 136, 134, 143, 140, 129, 121, 139, 135, 115, 137, 140, 114, 125, 129, 113, 134, 124, 129, 135, 130, 133, 120, 119, 130, 111, 142, 126, 126, 139, 135, 114, 143, 144, 111, 116, 131, 119, 103, 114, 124, 119, 144, 127, 126, 141, 135, 148, 107, 132, 124, 123, 124, 123, 141, 123, 121, 124, 129, 133, 134, 129, 142, 126, 131, 130, 103, 123, 125, 132, 117, 134, 130, 141, 132, 134, 128, 132, 114, 130, 113, 117, 124, 128, 122, 122, 134, 131, 123, 119, 116, 126, 132, 140, 125, 122, 140, 124, 127, 128, 148, 126, 117, 131, 123, 126, 136, 137, 127, 133, 125, 111, 141, 119, 124, 143, 142, 135, 128, 135, 126, 118, 130, 136, 114, 132, 116, 117, 129, 125, 123, 132, 107, 135, 131, 121, 142, 127, 116, 115, 132, 126, 120, 124, 111, 138, 113, 132, 130, 123, 123, 121, 126, 125, 124, 122, 117, 113, 135, 123, 149, 138, 129, 122, 113, 121, 136, 129, 127, 140, 115, 121, 121, 128, 123, 131, 126, 134, 118, 124, 124, 134, 126, 101, 125, 134, 133, 100, 123, 129, 117, 138, 146, 130, 133, 132, 125, 134, 120, 123, 125, 127, 130, 114, 127, 115, 122, 118, 131, 123, 130, 150, 140, 129, 124, 122, 134, 136, 137, 105, 133, 137, 122, 129, 132, 159, 106, 135, 118, 125, 143, 126, 123, 128, 126, 119, 131, 127, 120, 121, 142, 114, 115, 114, 134, 129, 122, 119, 112, 119, 131, 125, 121, 131, 119, 113, 129, 115, 132, 107, 118, 123, 122, 117, 138, 128, 138, 122, 108, 125, 121, 135, 121, 129, 118, 123, 122, 123, 117, 120, 115, 132, 135, 129, 133, 138, 125, 121, 129, 128, 127, 121, 113, 136, 130, 125, 101, 118, 112, 121, 129, 124, 136, 119, 123, 125, 125, 139, 133, 134, 126, 117, 126, 119, 127, 133, 121, 124, 144, 133, 116, 129, 121, 141, 116, 99, 127, 125, 122, 95, 136, 120, 119, 120, 126, 127, 141, 124, 132, 136, 137, 122, 137, 135, 133, 127, 140, 123, 126, 140, 122, 125, 133, 130, 117, 120, 132, 117, 125, 142, 114, 119, 134, 131, 122, 124, 116, 125, 123, 132, 122, 126, 126, 111, 122, 109, 126, 112, 111, 148, 113, 117, 120, 121, 132, 113, 116, 119, 119, 134, 125, 124, 110, 128, 119, 132, 128, 115, 123, 127, 130, 123, 123, 119, 134, 134, 126, 124, 118, 120, 126, 131, 125, 122, 137, 118, 109, 123, 128, 133, 120, 125, 117, 125, 119, 134, 126, 130, 107, 124, 133, 122, 124, 136, 155, 125, 119, 131, 116, 119, 140, 126, 112, 126, 125, 140, 141, 114, 138, 140, 140, 123, 108, 149, 107, 106, 120, 125, 114, 120, 121, 109, 132, 104, 119, 127, 143, 103, 126, 126, 125, 138, 124, 127, 125, 139, 138, 131, 137, 112, 123, 129, 136, 115, 126, 120, 159, 115, 121, 114, 122, 132, 146, 122, 133, 123, 117, 137, 101, 126, 127, 128, 121, 124, 115, 114, 114, 119, 129, 110, 123, 131, 129, 113, 140, 117, 120, 134, 123, 129, 126, 114, 132, 115, 114, 125, 127, 147, 122, 120, 128, 125, 122, 119, 122, 122, 102, 127, 109, 130, 115, 109, 106, 130, 130, 116, 142, 118, 137, 111, 134, 120, 114, 128, 119, 120, 131, 123, 126, 138, 137, 139, 122, 132, 134, 122, 125, 132, 129, 145, 118, 120, 119, 143, 136, 129, 121, 114, 127, 130, 134, 132, 133, 129, 123, 140, 125, 102, 119, 130, 139, 120, 134, 127, 114, 114, 136, 127, 98, 117, 143, 115, 125, 129, 112, 142, 129, 112, 124, 126, 130, 137, 107, 101, 127, 116, 120, 120, 118, 107, 114, 127, 115, 129, 129, 125, 117, 132, 129, 130, 121, 125, 126, 120, 130, 112, 139, 120, 117, 106, 120, 134, 114, 124, 111, 129, 152, 115, 123, 130, 126, 124, 121, 114, 130, 132, 139, 118, 114, 125, 134, 128, 139, 123, 117, 152, 121, 114, 129, 139, 115, 113, 119, 128, 111, 118, 108, 135, 129, 119, 121, 138, 116, 135, 146, 113, 112, 111, 123, 131, 120, 132, 136, 123, 130, 133, 113, 124, 121, 125, 126, 107, 125, 134, 133, 126, 116, 152, 127, 124, 121, 109, 138, 115, 131, 131, 134, 120, 131, 133, 113, 120, 132, 140, 126, 121, 135, 122, 122, 143, 139, 120, 120, 107, 114, 127, 128, 135, 122, 140, 132, 129, 133, 138, 122, 112, 126, 114, 134, 127, 133, 134, 126, 136, 120, 99, 112, 130, 114, 126, 136, 117, 132, 119, 118, 121, 136, 119, 116, 109, 129, 124, 127, 144, 137, 117, 114, 121, 126, 121, 100, 127, 133, 108, 124, 141, 111, 123, 134, 128, 122, 126, 111, 110, 119, 128, 131, 116, 127, 141, 136, 122, 119, 114, 132, 120, 131, 119, 119, 127, 115, 136, 116, 124, 121, 125, 108, 122, 125, 123, 119, 128, 128, 119, 129, 134, 110, 114, 123, 139, 128, 127, 120, 131, 105, 118, 125, 119, 129, 134, 104, 116, 129, 112, 126, 129, 132, 120, 122, 118, 113, 117, 112, 113, 126, 115, 123, 133, 130, 110, 119, 119, 127, 125, 133, 154, 121, 117, 97, 116, 131, 136, 145, 127, 137, 139, 124, 124, 125, 126, 106, 140, 123, 115, 134, 130, 122, 129, 117, 136, 118, 148, 128, 115, 130, 115, 128, 118, 107, 126, 141, 121, 125, 123, 127, 111, 129, 136, 127, 133, 137, 134, 117, 135, 140, 114, 112, 144, 132, 132, 148, 125, 135, 145, 126, 123, 128, 140, 118, 98, 126, 120, 124, 130, 116, 134, 110, 119, 126, 143, 116, 148, 124, 120, 132, 117, 122, 132, 125, 129, 112, 122, 136, 142, 139, 142, 125, 121, 125, 130, 138, 132, 142, 118, 109, 128, 121, 129, 132, 131, 119, 122, 126, 126, 129, 126, 130, 133, 121, 128, 132, 131, 122, 127, 128, 113, 117, 154, 125, 136, 122, 120, 114, 126, 114, 131, 129, 129, 127, 122, 123, 126, 119, 124, 155, 128, 128, 137, 120, 129, 118, 124, 132, 125, 130, 107, 121, 118, 152, 128, 119, 132, 128, 128, 114, 132, 110, 124, 129, 109, 124, 135, 124, 112, 143, 124, 110, 109, 115, 111, 129, 126, 118, 129, 113, 120, 137, 140, 134, 157, 121, 147, 127, 128, 131, 119, 138, 116, 131, 149, 140, 135, 115, 121, 127, 137, 118, 112, 106, 137, 113, 128, 131, 146, 119, 108, 127, 128, 126, 137, 131, 121, 114, 135, 118, 138, 121, 118, 125, 127, 146, 106, 124, 127, 104, 137, 135, 120, 127, 111, 137, 106, 122, 122, 121, 133, 111, 134, 131, 122, 130, 119, 127, 129, 140, 127, 131, 116, 140, 135, 125, 122, 126, 136, 124, 118, 118, 130, 141, 150, 117, 116, 132, 136, 147, 118, 130, 132, 126, 137, 116, 125, 116, 121, 109, 129, 128, 117, 137, 125, 113, 122, 139, 139, 106, 112, 127, 118, 126, 120, 128, 121, 138, 134, 121, 128, 110, 125, 136, 126, 143, 133, 121, 129, 130, 129, 126, 106, 125, 128, 129, 129, 127, 137, 127, 113, 136, 126, 121, 142, 122, 119, 131, 118, 117, 128, 141, 120, 135, 147, 131, 114, 107, 128, 122, 125, 128, 109, 119, 107, 123, 133, 137, 126, 128, 131, 113, 121, 119, 141, 134, 122, 143, 106, 119, 118, 119, 125, 139, 115, 113, 121, 121, 137, 108, 101, 124, 143, 127, 138, 118, 135, 111, 121, 127, 108, 128, 128, 111, 102, 137, 113, 111, 122, 129, 132, 124, 118, 98, 124, 123, 122, 109, 130, 132, 130, 126, 121, 124, 115, 120, 146, 121, 125, 119, 137, 138, 118, 109, 118, 137, 154, 109, 133, 126, 121, 118, 134, 127, 133, 110, 126, 120, 127, 110, 128, 129, 120, 114, 117, 119, 112, 121, 148, 136, 123, 121, 123, 125, 121, 124, 123, 115, 109, 120, 143, 139, 117, 126, 111, 140, 131, 120, 127, 121, 131, 125, 115, 125, 119, 133, 124, 134, 137, 108, 131, 133, 137, 123, 120, 109, 117, 121, 121, 131, 136, 135, 130, 121, 137, 102, 139, 111, 110, 132, 148, 134, 146, 130, 121, 133, 124, 123, 134, 126, 122, 125, 124, 111, 133, 122, 126, 115, 128, 127, 117, 130, 114, 125, 121, 132, 144, 121, 121, 121, 121, 120, 125, 135, 123, 125, 133, 127, 126, 130, 122, 146, 121, 132, 138, 107, 132, 112, 135, 121, 116, 113, 134, 122, 121, 145, 115, 135, 128, 124, 128, 116, 133, 137, 130, 126, 141, 132, 115, 124, 112, 120, 138, 124, 123, 129, 124, 145, 128, 117, 109, 123, 110, 121, 132, 124, 99, 129, 123, 134, 118, 125, 121, 125, 141, 145, 142, 106, 126, 118, 121, 109, 121, 143, 122, 114, 126, 106, 142, 126, 121, 125, 119, 123, 125, 100, 118, 134, 106, 126, 117, 128, 136, 111, 122, 112, 121, 140, 121, 123, 128, 128, 122, 143, 123, 117, 120, 134, 121, 105, 130, 122, 139, 107, 135, 135, 120, 115, 136, 118, 117, 126, 137, 111, 123, 112, 115, 132, 108, 117, 135, 110, 132, 97, 121, 122, 117, 138, 114, 119, 116, 130, 120, 124, 130, 128, 134, 140, 121, 123, 117, 120, 128, 139, 125, 124, 128, 125, 143, 131, 108, 127, 128, 134, 120, 116, 117, 118, 145, 125, 118, 130, 109, 124, 132, 124, 133, 123, 125, 125, 131, 122, 100, 122, 123, 119, 146, 142, 145, 129, 113, 127, 130, 114, 122, 127, 123, 144, 110, 120, 115, 126, 121, 130, 130, 131, 117, 134, 137, 126, 141, 109, 112, 127, 113, 135, 118, 117, 118, 132, 119, 112, 128, 129, 147, 128, 128, 117, 144, 135, 127, 122, 135, 131, 129, 133, 124, 108, 117, 134, 131, 128, 126, 126, 123, 132, 125, 137, 121, 141, 123, 133, 118, 115, 112, 130, 116, 130, 137, 124, 118, 138, 115, 116, 137, 127, 128, 117, 130, 111, 134, 141, 130, 121, 126, 132, 115, 128, 106, 131, 126, 123, 142, 139, 142, 120, 141, 129, 135, 137, 138, 112, 130, 116, 136, 120, 133, 129, 131, 127, 135, 132, 118, 120, 127, 113, 125, 130, 114, 124, 121, 111, 115, 133, 127, 120, 123, 117, 134, 124, 121, 133, 129, 119, 114, 126, 135, 121, 126, 119, 132, 139, 127, 113, 132, 122, 134, 132, 127, 117, 109, 122, 132, 149, 139, 123, 125, 150, 121, 140, 118, 127, 132, 137, 127, 128, 121, 122, 137, 113, 115, 105, 115, 114, 131, 134, 126, 133, 128, 122, 123, 125, 117, 113, 135, 113, 135, 106, 124, 127, 114, 121, 130, 121, 137, 142, 112, 121, 130, 133, 126, 142, 124, 129, 140, 129, 108, 122, 121, 129, 146, 114, 122, 139, 104, 122, 109, 117, 131, 118, 122, 127, 105, 136, 117, 138, 128, 130, 125, 115, 122, 128, 141, 130, 115, 139, 137, 121, 140, 118, 138, 124, 124, 132, 163, 139, 115, 103, 125, 114, 124, 125, 126, 122, 124, 131, 121, 122, 120, 132, 129, 118, 114, 138, 131, 99, 119, 132, 126, 120, 119, 138, 119, 124, 142, 136, 142, 120, 106, 131, 132, 114, 134, 145, 156, 128, 117, 127, 122, 119, 126, 119, 134, 137, 131, 126, 105, 140, 112, 106, 123, 109, 126, 113, 147, 120, 118, 134, 105, 128, 118, 128, 131, 131, 139, 112, 144, 124, 115, 120, 127, 127, 124, 122, 112, 135, 125, 113, 117, 137, 128, 128, 122, 115, 129, 124, 114, 122, 138, 124, 145, 125, 139, 126, 126, 127, 124, 99, 131, 118, 122, 126, 134, 130, 131, 112, 124, 124, 135, 135, 121, 132, 129, 128, 119, 120, 125, 113, 136, 126, 157, 122, 138, 109, 117, 120, 113, 128, 120, 117, 116, 127, 118, 134, 115, 139, 126, 117, 125, 130, 132, 128, 128, 119, 128, 132, 127, 121, 131, 125, 112, 127, 128, 108, 128, 134, 129, 126, 131, 130, 126, 138, 123, 135, 129, 119, 160, 128, 136, 129, 119, 145, 130, 125, 142, 143, 109, 132, 110, 115, 130, 114, 135, 111, 116, 130, 115, 134, 152, 141, 131, 135, 139, 134, 129, 111, 140, 126, 123, 112, 126, 119, 123, 127, 129, 130, 119, 110, 145, 138, 115, 127, 124, 122, 132, 122, 126, 122, 135, 132, 136, 113, 111, 134, 130, 99, 143, 150, 116, 132, 141, 130, 113, 133, 127, 125, 131, 117, 122, 119, 112, 128, 125, 138, 106, 127, 117, 145, 115, 127, 120, 139, 118, 136, 137, 134, 135, 112, 144, 103, 133, 123, 124, 123, 126, 129, 135, 142, 143, 129, 124, 114, 129, 120, 121, 126, 119, 125, 129, 111, 138, 131, 111, 126, 137, 132, 123, 99, 140, 139, 134, 122, 114, 127, 123, 112, 119, 126, 109, 119, 126, 106, 124, 115, 136, 142, 113, 127, 114, 111, 110, 141, 125, 121, 133, 123, 134, 141, 121, 128, 128, 135, 126, 131, 101, 115, 126, 117, 126, 140, 133, 126, 129, 131, 117, 141, 133, 135, 132, 104, 125, 129, 118, 124, 118, 125, 123, 123, 130, 127, 120, 148, 123, 124, 123, 115, 122, 121, 138, 130, 135, 121, 118, 121, 136, 125, 105, 143, 122, 127, 126, 120, 137, 123, 125, 125, 140, 133, 123, 138, 107, 120, 108, 127, 126, 135, 119, 127, 125, 131, 121, 124, 121, 136, 121, 126, 132, 147, 114, 132, 129, 124, 133, 118, 113, 148, 136, 112, 135, 131, 128, 129, 134, 126, 131, 118, 114, 129, 134, 128, 120, 116, 129, 117, 137, 142, 126, 142, 144, 128, 129, 129, 113, 107, 120, 114, 138, 153, 137, 119, 130, 132, 107, 114, 129, 113, 127, 103, 109, 117, 121, 125, 131, 133, 127, 125, 133, 133, 130, 130, 127, 128, 126, 113, 119, 134, 135, 119, 120, 131, 134, 120, 125, 133, 119, 136, 125, 113, 132, 122, 116, 138, 131, 115, 128, 144, 120, 141, 136, 140, 126, 122, 145, 127, 115, 113, 116, 102, 114, 122, 124, 135, 126, 135, 135, 125, 121, 125, 129, 136, 127, 133, 115, 117, 132, 107, 126, 145, 118, 150, 117, 158, 137, 132, 113, 139, 121, 120, 116, 115, 122, 137, 114, 107, 133, 114, 134, 128, 118, 159, 125, 124, 143, 116, 134, 117, 117, 145, 130, 125, 123, 107, 135, 128, 128, 142, 132, 136, 139, 113, 114, 129, 96, 125, 128, 114, 142, 136, 140, 144, 132, 134, 136, 126, 136, 138, 113, 109, 121, 122, 114, 117, 133, 130, 124, 132, 127, 128, 126, 112, 129, 132, 111, 139, 109, 122, 137, 132, 119, 128, 132, 112, 131, 114, 125, 120, 111, 129, 118, 135, 114, 109, 138, 109, 134, 105, 127, 118, 129, 139, 136, 125, 127, 128, 123, 118, 118, 101, 123, 163, 137, 116, 125, 132, 123, 133, 132, 119, 145, 136, 120, 127, 130, 128, 139, 130, 117, 123, 110, 134, 129, 124, 125, 112, 132, 125, 119, 129, 119, 122, 127, 144, 115, 102, 114, 116, 127, 116, 122, 128, 127, 115, 145, 113, 103, 135, 120, 128, 112, 115, 132, 126, 126, 132, 132, 139, 131, 128, 114, 125, 128, 124, 132, 137, 139, 126, 123, 118, 126, 115, 133, 146, 125, 124, 134, 119, 122, 138, 129, 120, 114, 110, 113, 126, 124, 127, 134, 142, 98, 130, 132, 113, 125, 126, 128, 133, 134, 119, 148, 130, 130, 111, 144, 125, 123, 124, 114, 124, 135, 112, 130, 130, 107, 128, 137, 112, 139, 128, 128, 126, 123, 137, 145, 141, 127, 137, 125, 130, 125, 142, 136, 140, 126, 110, 109, 115, 109, 121, 133, 114, 123, 98, 109, 123, 117, 127, 128, 128, 120, 132, 133, 141, 138, 131, 141, 138, 110, 145, 128, 125, 129, 127, 130, 117, 116, 140, 130, 118, 125, 126, 111, 146, 124, 128, 120, 121, 129, 137, 122, 129, 139, 131, 121, 127, 113, 112, 115, 154, 125, 139, 118, 126, 146, 126, 125, 128, 118, 120, 122, 134, 113, 120, 121, 112, 124, 121, 122, 113, 142, 122, 132, 125, 123, 141, 131, 145, 117, 130, 125, 128, 127, 115, 134, 139, 120, 157, 107, 119, 129, 135, 130, 119, 135, 128, 131, 128, 111, 102, 125, 114, 119, 107, 129, 123, 124, 120, 114, 123, 122, 121, 130, 100, 120, 126, 126, 130, 128, 115, 120, 128, 142, 116, 120, 126, 132, 149, 126, 130, 113, 124, 142, 151, 132, 123, 138, 149, 132, 121, 101, 123, 118, 124, 138, 135, 142, 127, 120, 116, 142, 122, 131, 142, 119, 122, 116, 112, 124, 126, 134, 120, 132, 129, 112, 133, 137, 115, 111, 133, 147, 126, 128, 126, 112, 127, 137, 131, 124, 111, 130, 124, 122, 116, 129, 122, 128, 121, 133, 135, 147, 133, 116, 111, 151, 116, 126, 113, 149, 136, 129, 138, 116, 126, 122, 128, 130, 123, 136, 115, 144, 115, 104, 128, 113, 117, 121, 133, 114, 130, 132, 131, 120, 129, 106, 130, 128, 134, 126, 133, 119, 135, 125, 132, 128, 126, 123, 122, 120, 131, 131, 127, 117, 122, 130, 130, 143, 128, 121, 115, 134, 124, 109, 121, 116, 122, 148, 128, 123, 121, 118, 120, 128, 113, 130, 110, 119, 145, 136, 102, 144, 109, 133, 121, 117, 127, 117, 137, 133, 121, 120, 114, 140, 129, 125, 130, 123, 128, 154, 105, 132, 124, 127, 158, 127, 132, 135, 134, 119, 118, 138, 124, 134, 125, 124, 126, 121, 125, 124, 126, 111, 128, 125, 118, 136, 140, 128, 110, 127, 121, 131, 118, 117, 128, 122, 129, 116, 121, 160, 142, 120, 118, 121, 136, 129, 125, 119, 129, 110, 129, 130, 130, 146, 128, 141, 122, 130, 123, 123, 136, 137, 117, 130, 124, 127, 108, 134, 121, 125, 141, 106, 127, 114, 129, 143, 144, 127, 113, 126, 115, 153, 108, 122, 128, 129, 130, 135, 121, 118, 113, 128, 111, 137, 140, 143, 134, 123, 113, 119, 105, 133, 118, 132, 118, 128, 139, 128, 125, 112, 131, 111, 129, 125, 129, 127, 120, 121, 131, 117, 130, 125, 127, 123, 118, 140, 126, 129, 128, 125, 117, 122, 110, 139, 138, 124, 124, 119, 137, 121, 114, 139, 112, 120, 129, 118, 136, 126, 105, 124, 115, 130, 112, 116, 136, 119, 146, 125, 130, 127, 124, 145, 129, 103, 128, 130, 123, 102, 126, 136, 135, 130, 136, 148, 138, 119, 112, 132, 122, 121, 120, 140, 120, 126, 125, 143, 141, 128, 104, 128, 120, 129, 147, 144, 120, 143, 133, 126, 120, 121, 117, 129, 120, 118, 126, 121, 123, 121, 143, 125, 130, 114, 131, 115, 112, 130, 137, 127, 136, 131, 128, 129, 118, 112, 124, 127, 127, 129, 112, 139, 90, 116, 116, 120, 122, 132, 141, 128, 113, 125, 119, 111, 125, 93, 146, 122, 129, 137, 120, 137, 124, 128, 132, 133, 129, 132, 142, 128, 137, 119, 128, 144, 106, 125, 115, 117, 127, 121, 139, 118, 135, 122, 122, 135, 121, 126, 130, 131, 132, 126, 124, 110, 124, 129, 122, 119, 137, 129, 113, 130, 134, 116, 125, 123, 107, 130, 123, 114, 127, 128, 124, 122, 130, 110, 142, 117, 140, 133, 123, 127, 135, 157, 129, 120, 115, 125, 112, 133, 102, 107, 142, 116, 123, 125, 115, 117, 127, 147, 123, 123, 135, 140, 112, 141, 139, 121, 117, 150, 124, 120, 113, 135, 150, 146, 122, 136, 110, 148, 146, 123, 125, 134, 122, 126, 125, 113, 147, 131, 110, 124, 166, 140, 132, 113, 133, 124, 138, 121, 129, 125, 115, 117, 119, 123, 123, 116, 120, 158, 131, 120, 126, 128, 130, 138, 134, 116, 130, 119, 123, 137, 119, 130, 133, 136, 118, 128, 108, 125, 131, 137, 109, 128, 141, 121, 122, 110, 135, 123, 124, 98, 132, 145, 116, 120, 105, 138, 126, 129, 125, 132, 127, 134, 121, 125, 127, 126, 120, 123, 148, 127, 125, 137, 139, 115, 130, 141, 125, 121, 136, 127, 113, 120, 103, 115, 129, 123, 123, 125, 116, 150, 123, 114, 121, 127, 126, 124, 124, 121, 113, 132, 134, 129, 118, 130, 119, 143, 129, 99, 124, 103, 106, 138, 126, 121, 114, 120, 133, 130, 131, 124, 121, 115, 112, 131, 114, 124, 126, 137, 125, 117, 130, 148, 120, 117, 121, 122, 120, 131, 145, 110, 113, 120, 131, 116, 137, 127, 114, 126, 118, 138, 136, 136, 126, 130, 115, 131, 118, 118, 131, 111, 128, 139, 126, 135, 121, 116, 124, 115, 123, 126, 131, 145, 129, 128, 105, 112, 131, 146, 120, 129, 124, 137, 125, 127, 121, 118, 133, 119, 135, 117, 132, 130, 137, 134, 125, 116, 137, 117, 121, 133, 143, 136, 117, 129, 131, 124, 126, 108, 110, 110, 110, 135, 112, 124, 139, 115, 117, 138, 127, 128, 118, 142, 122, 108, 134, 120, 120, 136, 125, 124, 141, 121, 125, 129, 130, 124, 123, 133, 109, 111, 102, 114, 123, 135, 115, 115, 128, 122, 127, 120, 123, 113, 112, 110, 121, 106, 135, 124, 133, 133, 135, 139, 130, 145, 118, 123, 136, 120, 112, 126, 127, 141, 142, 124, 128, 127, 130, 116, 113, 121, 119, 120, 112, 121, 109, 125, 109, 123, 135, 142, 118, 130, 130, 121, 120, 124, 128, 120, 113, 107, 133, 125, 125, 127, 132, 132, 136, 126, 141, 122, 125, 123, 120, 124, 147, 89, 128, 119, 124, 120, 120, 135, 133, 119, 125, 129, 114, 133, 125, 122, 128, 168, 135, 137, 142, 105, 119, 141, 143, 132, 130, 146, 130, 107, 137, 109, 107, 127, 144, 117, 129, 97, 130, 132, 124, 146, 124, 144, 142, 126, 108, 131, 131, 120, 129, 144, 137, 121, 138, 129, 123, 122, 126, 140, 117, 117, 132, 139, 132, 139, 120, 125, 134, 109, 133, 139, 113, 122, 129, 118, 109, 131, 129, 120, 111, 146, 122, 105, 123, 141, 137, 110, 106, 130, 118, 147, 142, 129, 125, 128, 131, 125, 118, 122, 131, 121, 130, 131, 132, 114, 117, 121, 107, 128, 138, 112, 115, 125, 120, 131, 121, 121, 138, 118, 117, 124, 139, 128, 130, 119, 127, 127, 136, 109, 134, 114, 133, 131, 127, 138, 132, 115, 126, 128, 122, 132, 115, 122, 126, 123, 116, 110, 105, 126, 130, 143, 124, 133, 133, 139, 130, 118, 124, 122, 118, 139, 124, 112, 142, 128, 113, 115, 123, 125, 130, 134, 123, 123, 127, 113, 138, 125, 113, 141, 133, 125, 127, 137, 125, 134, 115, 151, 134, 126, 124, 135, 114, 120, 114, 131, 114, 106, 135, 140, 122, 121, 109, 117, 124, 139, 143, 120, 117, 132, 125, 101, 110, 106, 116, 150, 127, 109, 138, 119, 121, 132, 123, 121, 130, 127, 125, 118, 127, 113, 120, 116, 116, 140, 117, 131, 141, 128, 141, 152, 118, 149, 144, 129, 132, 126, 113, 132, 128, 133, 125, 130, 122, 112, 132, 135, 127, 128, 143, 111, 133, 137, 128, 122, 119, 106, 121, 128, 113, 109, 128, 117, 131, 119, 119, 129, 146, 136, 130, 127, 142, 129, 131, 170, 147, 121, 126, 110, 137, 135, 146, 128, 124, 138, 137, 97, 128, 124, 127, 130, 125, 149, 131, 136, 141, 147, 118, 140, 127, 134, 120, 132, 138, 108, 124, 129, 140, 124, 135, 129, 132, 118, 135, 116, 119, 156, 119, 116, 124, 117, 126, 134, 153, 122, 130, 107, 122, 123, 118, 119, 129, 126, 132, 127, 114, 126, 87, 129, 130, 130, 116, 135, 118, 119, 127, 107, 140, 144, 140, 123, 130, 121, 139, 115, 121, 103, 150, 134, 126, 142, 118, 121, 122, 133, 130, 125, 128, 140, 131, 119, 136, 106, 137, 144, 149, 121, 115, 138, 122, 123, 147, 135, 138, 146, 144, 116, 123, 119, 116, 113, 138, 130, 127, 134, 140, 127, 136, 133, 131, 124, 127, 118, 111, 119, 132, 128, 119, 127, 131, 113, 130, 140, 129, 99, 133, 130, 135, 127, 119, 136, 121, 115, 117, 117, 126, 127, 94, 139, 114, 110, 138, 122, 128, 117, 113, 118, 123, 123, 144, 120, 120, 125, 128, 131, 133, 118, 127, 114, 128, 127, 107, 119, 137, 126, 127, 136, 127, 120, 112, 112, 120, 133, 134, 120, 96, 135, 119, 130, 122, 129, 124, 120, 134, 119, 131, 138, 134, 122, 139, 146, 141, 132, 114, 117, 128, 131, 126, 130, 130, 119, 111, 126, 113, 138, 113, 122, 125, 126, 114, 132, 130, 132, 120, 125, 130, 134, 131, 126, 131, 127, 117, 118, 127, 135, 128, 138, 126, 118, 146, 126, 136, 116, 127, 135, 127, 128, 115, 112, 128, 115, 123, 121, 130, 106, 120, 120, 130, 135, 127, 129, 133, 125, 119, 133, 121, 137, 120, 146, 113, 116, 128, 123, 124, 114, 136, 144, 123, 113, 121, 128, 106, 120, 113, 132, 113, 137, 126, 141, 114, 124, 138, 114, 117, 127, 131, 118, 134, 126, 138, 130, 128, 130, 136, 134, 142, 132, 121, 116, 131, 142, 133, 129, 127, 122, 111, 129, 121, 125, 128, 140, 129, 118, 110, 124, 130, 114, 129, 124, 122, 124, 128, 122, 127, 112, 135, 138, 133, 125, 108, 127, 122, 114, 116, 128, 120, 111, 140, 123, 116, 135, 132, 140, 124, 128, 136, 119, 132, 134, 134, 125, 115, 120, 135, 118, 113, 113, 120, 133, 118, 116, 128, 130, 125, 124, 149, 137, 144, 130, 114, 129, 137, 138, 132, 120, 135, 121, 121, 124, 138, 133, 116, 130, 145, 121, 154, 124, 118, 125, 141, 117, 115, 125, 134, 124, 122, 118, 119, 111, 104, 124, 116, 161, 125, 116, 111, 127, 138, 142, 135, 123, 123, 130, 116, 134, 141, 110, 129, 99, 103, 129, 112, 111, 137, 138, 128, 128, 133, 109, 122, 125, 131, 118, 128, 120, 125, 121, 110, 115, 120, 121, 121, 120, 137, 124, 135, 122, 118, 108, 119, 114, 125, 121, 136, 121, 124, 145, 116, 118, 112, 115, 135, 125, 144, 129, 113, 112, 118, 130, 118, 136, 128, 126, 122, 127, 127, 130, 126, 106, 126, 119, 123, 123, 129, 132, 121, 118, 137, 124, 129, 114, 142, 121, 121, 112, 128, 124, 128, 111, 139, 122, 125, 150, 120, 128, 151, 131, 134, 118, 109, 134, 120, 123, 146, 130, 119, 118, 129, 138, 148, 123, 116, 130, 126, 140, 119, 142, 123, 134, 137, 125, 110, 132, 107, 126, 116, 127, 119, 127, 159, 107, 120, 120, 132, 118, 125, 137, 117, 138, 123, 105, 137, 113, 103, 122, 133, 118, 122, 127, 118, 137, 156, 129, 113, 134, 119, 131, 112, 117, 132, 128, 136, 133, 143, 132, 129, 135, 132, 126, 106, 99, 121, 119, 132, 135, 124, 122, 111, 115, 119, 132, 103, 117, 141, 122, 93, 118, 126, 142, 136, 114, 130, 130, 134, 120, 141, 123, 133, 125, 143, 132, 110, 122, 134, 134, 128, 124, 109, 114, 140, 116, 120, 135, 119, 128, 113, 140, 132, 121, 124, 121, 125, 128, 115, 110, 126, 139, 112, 122, 132, 136, 125, 126, 151, 123, 135, 126, 114, 109, 131, 144, 133, 133, 140, 135, 128, 108, 143, 125, 126, 117, 122, 118, 156, 116, 124, 127, 129, 120, 141, 131, 126, 140, 124, 127, 124, 129, 122, 137, 120, 109, 112, 115, 131, 135, 138, 117, 132, 130, 120, 123, 128, 138, 126, 135, 136, 123, 132, 124, 129, 119, 137, 128, 139, 139, 107, 112, 120, 125, 134, 131, 133, 130, 119, 127, 134, 125, 128, 107, 155, 134, 147, 129, 103, 136, 135, 121, 104, 112, 116, 121, 120, 128, 117, 145, 122, 132, 129, 127, 120, 128, 116, 133, 133, 130, 126, 102, 134, 123, 114, 127, 119, 119, 119, 134, 127, 151, 121, 124, 146, 131, 131, 118, 107, 120, 136, 128, 131, 127, 110, 131, 116, 117, 113, 113, 138, 120, 123, 120, 133, 121, 125, 130, 122, 127, 127, 134, 126, 119, 119, 119, 114, 143, 116, 140, 115, 143, 114, 121, 126, 130, 119, 132, 122, 136, 125, 135, 123, 119, 124, 117, 123, 119, 116, 107, 102, 105, 127, 131, 113, 128, 130, 122, 120, 124, 120, 141, 118, 133, 118, 118, 122, 134, 139, 111, 124, 127, 124, 133, 127, 125, 141, 123, 144, 102, 120, 120, 142, 124, 110, 130, 119, 134, 128, 122, 101, 124, 133, 144, 131, 141, 144, 110, 108, 119, 136, 124, 139, 105, 108, 138, 139, 131, 128, 123, 123, 118, 105, 123, 116, 141, 133, 126, 121, 124, 130, 140, 123, 112, 145, 128, 129, 129, 111, 117, 129, 120, 134, 129, 112, 130, 110, 122, 124, 130, 116, 126, 136, 119, 125, 120, 122, 137, 113, 119, 133, 130, 132, 133, 131, 123, 123, 114, 124, 116, 127, 135, 145, 128, 143, 139, 133, 119, 130, 112, 92, 120, 117, 124, 120, 138, 125, 119, 109, 129, 125, 111, 138, 119, 140, 133, 126, 109, 116, 107, 129, 111, 131, 116, 143, 119, 116, 143, 121, 130, 118, 142, 117, 119, 120, 116, 124, 119, 138, 113, 111, 138, 110, 123, 131, 125, 128, 107, 129, 111, 130, 122, 115, 133, 146, 133, 118, 132, 130, 145, 135, 118, 120, 111, 121, 122, 131, 105, 122, 118, 134, 132, 140, 122, 120, 111, 132, 134, 129, 134, 128, 131, 118, 140, 117, 135, 126, 124, 126, 121, 128, 126, 147, 111, 130, 107, 126, 124, 142, 127, 140, 125, 121, 132, 120, 128, 121, 125, 133, 143, 112, 126, 122, 135, 113, 147, 136, 123, 144, 125, 137, 121, 115, 123, 111, 120, 128, 124, 138, 132, 139, 124, 140, 131, 111, 135, 136, 121, 139, 114, 119, 136, 122, 125, 128, 128, 116, 133, 128, 120, 115, 129, 127, 135, 150, 124, 119, 138, 138, 115, 111, 106, 135, 128, 131, 132, 128, 131, 118, 111, 118, 114, 124, 125, 123, 134, 137, 128, 135, 117, 139, 115, 116, 111, 147, 133, 143, 113, 137, 128, 148, 119, 126, 136, 130, 106, 134, 119, 135, 129, 123, 114, 115, 108, 130, 108, 113, 111, 134, 128, 152, 127, 138, 123, 118, 131, 104, 113, 111, 120, 117, 107, 117, 125, 128, 130, 131, 106, 118, 115, 138, 131, 127, 134, 125, 129, 116, 134, 120, 112, 133, 129, 122, 132, 107, 133, 127, 104, 111, 117, 142, 131, 129, 126, 130, 116, 125, 114, 116, 117, 125, 129, 136, 122, 115, 117, 121, 125, 165, 114, 140, 115, 127, 128, 117, 124, 135, 133, 118, 123, 123, 123, 119, 131, 124, 127, 113, 114, 118, 129, 132, 128, 114, 111, 137, 116, 124, 123, 123, 135, 114, 126, 115, 126, 152, 124, 114, 126, 142, 117, 136, 127, 109, 109, 139, 132, 122, 95, 132, 113, 147, 106, 131, 122, 115, 115, 131, 136, 118, 115, 119, 139, 133, 121, 128, 106, 123, 126, 138, 123, 128, 125, 120, 144, 120, 122, 123, 134, 119, 134, 120, 120, 133, 108, 125, 137, 140, 137, 108, 148, 114, 134, 120, 108, 143, 142, 147, 121, 131, 126, 128, 130, 122, 111, 155, 128, 134, 133, 136, 127, 132, 124, 136, 130, 117, 117, 119, 129, 127, 120, 154, 128, 109, 117, 140, 127, 127, 120, 129, 122, 112, 136, 131, 100, 119, 114, 141, 141, 121, 140, 141, 112, 124, 123, 120, 109, 130, 124, 134, 109, 116, 126, 114, 123, 111, 132, 139, 119, 125, 116, 126, 124, 121, 117, 125, 119, 114, 145, 116, 123, 134, 132, 124, 122, 124, 126, 113, 122, 121, 135, 122, 110, 128, 108, 130, 126, 109, 118, 118, 108, 129, 124, 113, 134, 126, 113, 134, 122, 117, 115, 123, 134, 134, 131, 129, 127, 118, 129, 104, 133, 117, 133, 132, 135, 116, 118, 103, 115, 119, 129, 135, 127, 100, 117, 125, 151, 110, 134, 129, 134, 125, 124, 120, 125, 126, 142, 115, 117, 106, 126, 121, 108, 120, 120, 126, 116, 123, 123, 119, 127, 124, 124, 129, 124, 119, 126, 131, 145, 120, 138, 111, 128, 118, 134, 119, 152, 136, 136, 122, 116, 121, 119, 148, 127, 111, 129, 127, 125, 129, 134, 166, 134, 97, 130, 139, 133, 125, 140, 117, 129, 137, 138, 135, 130, 135, 127, 130, 123, 136, 133, 136, 144, 105, 120, 138, 108, 128, 130, 115, 120, 125, 135, 129, 113, 111, 122, 128, 135, 120, 127, 136, 141, 135, 119, 126, 139, 101, 111, 117, 126, 113, 109, 134, 107, 95, 127, 109, 134, 129, 134, 123, 132, 139, 121, 133, 127, 127, 92, 137, 117, 128, 127, 137, 142, 116, 135, 111, 125, 130, 113, 129, 126, 131, 119, 122, 126, 115, 130, 121, 135, 161, 123, 124, 135, 119, 158, 135, 115, 119, 122, 137, 102, 128, 147, 139, 122, 115, 123, 127, 121, 145, 129, 153, 120, 113, 134, 143, 117, 126, 165, 125, 120, 135, 126, 134, 131, 115, 148, 128, 128, 123, 119, 133, 116, 122, 126, 137, 137, 124, 118, 123, 127, 118, 142, 117, 116, 122, 130, 138, 119, 122, 126, 142, 140, 124, 127, 128, 147, 130, 125, 113, 133, 116, 140, 117, 138, 131, 114, 118, 125, 132, 111, 144, 112, 113, 144, 144, 114, 123, 122, 112, 127, 129, 118, 139, 132, 119, 125, 134, 115, 142, 128, 110, 119, 128, 113, 125, 134, 120, 131, 134, 134, 125, 110, 110, 150, 146, 131, 123, 137, 125, 133, 120, 110, 130, 127, 115, 121, 124, 112, 139, 117, 121, 121, 133, 126, 116, 106, 112, 111, 130, 128, 121, 138, 133, 119, 107, 114, 126, 126, 126, 124, 111, 123, 125, 118, 136, 99, 149, 120, 132, 129, 120, 139, 128, 108, 137, 133, 128, 109, 113, 121, 130, 138, 131, 126, 113, 111, 116, 121, 110, 130, 127, 133, 134, 130, 111, 129, 105, 103, 126, 124, 132, 120, 118, 120, 124, 138, 129, 118, 135, 128, 122, 136, 128, 141, 114, 109, 107, 118, 106, 133, 97, 124, 118, 121, 122, 131, 120, 125, 118, 130, 129, 105, 132, 106, 130, 127, 116, 127, 126, 132, 120, 130, 116, 125, 131, 125, 109, 123, 119, 125, 125, 138, 127, 124, 116, 117, 120, 136, 117, 127, 125, 127, 125, 144, 106, 97, 136, 135, 119, 125, 127, 133, 109, 114, 131, 137, 131, 123, 133, 128, 133, 134, 137, 148, 129, 126, 136, 127, 109, 125, 124, 114, 129, 126, 132, 124, 115, 121, 133, 140, 134, 128, 142, 120, 112, 129, 110, 151, 141, 146, 121, 119, 115, 121, 121, 113, 119, 119, 117, 130, 141, 113, 134, 121, 138, 117, 110, 134, 116, 143, 131, 144, 121, 103, 117, 123, 110, 133, 123, 126, 129, 115, 110, 115, 119, 130, 134, 135, 120, 120, 126, 133, 122, 129, 133, 110, 136, 117, 139, 144, 151, 130, 118, 126, 129, 109, 123, 129, 128, 139, 119, 114, 117, 119, 118, 138, 115, 123, 131, 132, 139, 125, 128, 116, 127, 134, 140, 138, 137, 109, 130, 130, 113, 117, 111, 115, 133, 121, 123, 122, 129, 129, 126, 124, 128, 119, 119, 113, 132, 105, 118, 119, 128, 124, 130, 134, 121, 124, 131, 126, 107, 128, 136, 143, 122, 135, 136, 133, 128, 121, 136, 146, 106, 128, 109, 133, 93, 130, 123, 131, 131, 112, 127, 114, 141, 133, 134, 133, 128, 118, 107, 124, 122, 121, 119, 112, 137, 125, 103, 131, 124, 132, 107, 112, 133, 137, 119, 116, 115, 119, 125, 124, 142, 132, 105, 112, 110, 124, 107, 100, 127, 127, 109, 131, 126, 130, 124, 117, 123, 130, 115, 124, 131, 116, 127, 118, 123, 131, 124, 122, 132, 127, 116, 110, 125, 130, 124, 122, 107, 133, 126, 115, 110, 125, 106, 120, 118, 118, 116, 135, 144, 143, 134, 129, 135, 115, 130, 108, 141, 123, 122, 134, 130, 138, 141, 122, 131, 131, 136, 105, 138, 118, 113, 136, 126, 126, 137, 141, 127, 131, 119, 121, 148, 125, 123, 111, 115, 152, 119, 115, 130, 134, 133, 115, 122, 138, 127, 113, 139, 133, 121, 120, 128, 138, 134, 119, 115, 107, 109, 114, 123, 128, 145, 136, 129, 121, 108, 112, 110, 129, 127, 144, 139, 109, 135, 119, 150, 118, 109, 134, 126, 121, 138, 131, 124, 109, 129, 127, 118, 133, 124, 125, 128, 140, 117, 120, 127, 119, 129, 127, 143, 122, 121, 135, 119, 124, 137, 121, 118, 137, 131, 116, 126, 123, 133, 126, 133, 117, 134, 126, 106, 133, 103, 122, 117, 120, 124, 129, 126, 133, 109, 117, 134, 116, 134, 113, 130, 103, 141, 131, 128, 134, 110, 120, 129, 116, 116, 143, 121, 147, 122, 109, 134, 127, 138, 113, 140, 112, 121, 135, 133, 104, 129, 121, 112, 142, 142, 124, 107, 124, 132, 105, 124, 117, 125, 126, 126, 140, 118, 106, 106, 119, 121, 120, 118, 113, 125, 120, 124, 125, 112, 133, 122, 147, 141, 129, 131, 137, 118, 136, 137, 124, 132, 130, 125, 134, 124, 133, 132, 118, 120, 129, 128, 112, 138, 137, 129, 124, 119, 112, 121, 121, 128, 135, 115, 122, 126, 121, 142, 148, 141, 131, 119, 115, 126, 137, 124, 115, 123, 131, 123, 121, 122, 123, 133, 100, 122, 137, 128, 130, 115, 98, 130, 117, 115, 122, 118, 144, 134, 111, 126, 134, 127, 130, 123, 129, 130, 121, 135, 117, 126, 122, 118, 126, 141, 133, 135, 133, 132, 120, 117, 134, 144, 126, 140, 120, 145, 129, 129, 132, 110, 125, 103, 129, 132, 131, 121, 131, 137, 135, 128, 114, 126, 125, 120, 105, 122, 120, 117, 141, 117, 119, 137, 140, 122, 121, 128, 120, 112, 121, 124, 118, 116, 123, 133, 127, 118, 125, 125, 116, 136, 124, 132, 128, 107, 130, 128, 122, 123, 120, 124, 136, 128, 123, 113, 140, 125, 119, 130, 124, 108, 121, 114, 118, 147, 124, 123, 128, 107, 147, 126, 139, 115, 117, 105, 123, 109, 126, 131, 126, 128, 123, 119, 139, 132, 110, 117, 119, 124, 128, 119, 137, 131, 113, 124, 135, 104, 127, 140, 102, 122, 136, 138, 132, 136, 136, 138, 123, 110, 128, 127, 109, 129, 126, 122, 114, 121, 141, 123, 115, 133, 115, 105, 128, 129, 123, 136, 128, 131, 132, 133, 125, 145, 127, 95, 112, 106, 116, 153, 150, 115, 126, 128, 138, 133, 140, 143, 120, 130, 120, 123, 131, 147, 127, 125, 141, 130, 138, 97, 146, 138, 130, 103, 118, 129, 123, 117, 129, 124, 152, 124, 115, 124, 130, 126, 122, 108, 136, 113, 108, 93, 119, 118, 140, 124, 127, 118, 118, 138, 122, 127, 127, 129, 115, 111, 138, 133, 136, 113, 127, 130, 118, 126, 131, 119, 123, 128, 138, 118, 114, 129, 116, 126, 131, 153, 141, 122, 108, 124, 137, 125, 151, 124, 141, 131, 116, 116, 123, 116, 129, 108, 116, 110, 130, 143, 133, 151, 119, 108, 111, 142, 123, 136, 124, 111, 125, 118, 126, 125, 127, 110, 120, 122, 115, 114, 127, 139, 116, 124, 141, 107, 121, 130, 144, 114, 132, 120, 119, 113, 134, 122, 125, 124, 128, 136, 117, 114, 118, 120, 137, 117, 100, 114, 123, 140, 123, 135, 123, 124, 142, 139, 121, 118, 112, 117, 122, 121, 125, 115, 127, 116, 130, 132, 108, 119, 143, 122, 132, 129, 125, 138, 145, 117, 116, 127, 117, 109, 130, 118, 134, 128, 124, 140, 137, 120, 132, 112, 110, 121, 133, 141, 127, 120, 119, 135, 122, 116, 135, 100, 129, 136, 128, 114, 111, 114, 126, 117, 128, 116, 131, 110, 120, 127, 131, 121, 131, 138, 119, 115, 124, 132, 105, 129, 123, 142, 137, 127, 123, 132, 134, 135, 133, 114, 135, 120, 120, 151, 127, 129, 120, 115, 138, 130, 118, 120, 128, 142, 123, 99, 132, 118, 114, 122, 137, 119, 107, 109, 117, 134, 128, 114, 140, 129, 129, 131, 122, 116, 111, 123, 129, 143, 121, 128, 123, 134, 120, 128, 115, 150, 131, 123, 111, 115, 126, 135, 114, 137, 114, 121, 120, 122, 122, 119, 126, 126, 120, 131, 131, 116, 119, 129, 136, 122, 122, 124, 128, 129, 132, 119, 137, 124, 130, 126, 134, 113, 111, 100, 114, 124, 112, 129, 131, 127, 128, 111, 120, 123, 113, 144, 132, 114, 120, 125, 129, 130, 132, 126, 141, 100, 141, 119, 134, 123, 114, 118, 102, 133, 115, 112, 125, 139, 131, 140, 121, 118, 124, 128, 126, 134, 132, 133, 131, 115, 121, 123, 122, 127, 122, 125, 125, 121, 138, 128, 110, 104, 141, 123, 132, 120, 129, 125, 112, 137, 144, 116, 110, 130, 111, 132, 150, 125, 116, 110, 116, 138, 125, 125, 113, 125, 133, 128, 131, 121, 144, 118, 128, 131, 157, 117, 119, 123, 140, 139, 124, 120, 118, 116, 132, 124, 134, 107, 123, 107, 128, 127, 122, 122, 133, 117, 133, 119, 131, 118, 120, 115, 124, 136, 119, 140, 127, 104, 141, 123, 132, 123, 127, 124, 143, 134, 99, 139, 122, 138, 125, 113, 122, 116, 117, 116, 125, 133, 131, 120, 117, 118, 116, 125, 135, 122, 120, 138, 113, 104, 146, 142, 131, 117, 157, 106, 127, 138, 131, 126, 118, 115, 116, 121, 132, 122, 132, 111, 130, 132, 125, 117, 143, 130, 128, 123, 125, 135, 133, 117, 123, 111, 125, 115, 126, 116, 129, 121, 130, 147, 120, 133, 116, 122, 127, 132, 113, 129, 134, 125, 147, 138, 129, 121, 118, 123, 111, 129, 124, 110, 120, 141, 125, 112, 139, 129, 120, 132, 130, 119, 112, 132, 127, 137, 125, 119, 125, 122, 133, 117, 118, 114, 121, 110, 135, 111, 126, 136, 135, 134, 132, 141, 138, 119, 125, 130, 134, 127, 129, 119, 131, 115, 115, 124, 124, 125, 144, 117, 133, 122, 129, 128, 104, 140, 145, 137, 96, 111, 131, 113, 112, 136, 117, 122, 121, 125, 107, 127, 123, 133, 130, 128, 125, 100, 130, 127, 133, 127, 140, 138, 141, 144, 132, 122, 117, 124, 132, 124, 131, 134, 137, 147, 125, 135, 116, 122, 118, 123, 138, 102, 143, 121, 106, 125, 127, 131, 129, 120, 135, 126, 122, 112, 123, 129, 120, 137, 111, 135, 133, 108, 100, 114, 118, 99, 123, 125, 119, 157, 123, 119, 131, 131, 128, 120, 121, 127, 125, 114, 132, 121, 139, 141, 131, 136, 129, 118, 132, 133, 136, 120, 122, 133, 122, 126, 131, 118, 124, 142, 134, 138, 125, 130, 119, 130, 123, 124, 123, 111, 114, 116, 129, 118, 121, 121, 120, 131, 133, 126, 136, 141, 114, 121, 118, 129, 134, 124, 122, 132, 124, 125, 112, 131, 124, 110, 126, 131, 108, 131, 112, 119, 116, 107, 121, 139, 123, 130, 136, 124, 122, 117, 121, 124, 113, 138, 142, 119, 138, 113, 117, 111, 129, 124, 120, 126, 102, 126, 121, 131, 126, 121, 123, 125, 128, 129, 138, 134, 130, 124, 131, 135, 116, 135, 111, 138, 123, 132, 132, 115, 116, 122, 120, 137, 106, 130, 118, 131, 118, 127, 131, 148, 110, 127, 126, 122, 137, 123, 130, 116, 112, 140, 120, 119, 121, 142, 123, 125, 118, 129, 141, 130, 115, 119, 127, 112, 131, 121, 117, 118, 125, 102, 137, 128, 129, 156, 135, 127, 137, 132, 100, 143, 103, 115, 122, 131, 105, 127, 152, 127, 125, 140, 125, 105, 127, 121, 129, 119, 112, 105, 131, 139, 110, 125, 136, 136, 135, 129, 127, 120, 142, 134, 124, 124, 107, 129, 131, 117, 117, 122, 107, 128, 130, 103, 106, 124, 109, 119, 123, 132, 140, 112, 139, 136, 110, 115, 130, 121, 131, 123, 142, 130, 125, 109, 109, 131, 124, 128, 125, 119, 115, 123, 123, 143, 121, 150, 140, 133, 132, 140, 120, 113, 122, 123, 124, 120, 138, 133, 124, 137, 124, 133, 131, 139, 131, 101, 127, 107, 125, 123, 125, 119, 119, 110, 140, 124, 114, 99, 127, 135, 138, 107, 133, 130, 129, 132, 129, 123, 136, 127, 131, 116, 125, 113, 140, 107, 121, 138, 121, 129, 130, 145, 127, 120, 103, 142, 118, 131, 141, 125, 113, 129, 127, 128, 129, 120, 157, 107, 112, 130, 116, 134, 111, 128, 129, 110, 123, 113, 125, 133, 118, 132, 110, 141, 130, 137, 113, 121, 128, 121, 132, 125, 139, 124, 125, 126, 118, 121, 130, 113, 129, 132, 138, 121, 144, 119, 143, 114, 146, 123, 115, 121, 130, 140, 149, 127, 124, 129, 130, 145, 127, 135, 112, 112, 141, 125, 102, 129, 122, 113, 135, 142, 119, 135, 131, 117, 110, 136, 125, 131, 137, 125, 117, 132, 124, 118, 145, 110, 113, 151, 118, 117, 121, 127, 115, 132, 119, 128, 122, 110, 118, 143, 130, 120, 143, 136, 126, 123, 141, 124, 136, 120, 140, 126, 121, 106, 139, 117, 137, 133, 138, 126, 131, 135, 113, 116, 117, 109, 128, 121, 132, 124, 115, 125, 122, 109, 146, 141, 113, 121, 128, 133, 123, 126, 120, 137, 116, 113, 134, 128, 138, 127, 126, 133, 122, 132, 120, 127, 117, 136, 114, 134, 114, 108, 114, 129, 128, 113, 135, 126, 117, 127, 125, 130, 121, 138, 132, 101, 124, 116, 123, 143, 122, 115, 122, 132, 115, 142, 122, 130, 126, 140, 135, 125, 134, 125, 140, 144, 127, 114, 132, 119, 129, 139, 116, 106, 121, 139, 127, 130, 122, 121, 109, 109, 124, 133, 140, 118, 124, 122, 122, 130, 136, 126, 144, 132, 124, 125, 138, 112, 120, 126, 118, 130, 132, 144, 108, 109, 130, 124, 124, 125, 130, 128, 128, 118, 137, 134, 122, 125, 117, 139, 135, 111, 132, 126, 132, 132, 128, 118, 134, 133, 127, 109, 130, 119, 127, 114, 120, 138, 108, 120, 131, 118, 136, 133, 104, 130, 114, 118, 129, 120, 117, 124, 116, 127, 131, 104, 113, 123, 129, 150, 139, 122, 117, 126, 113, 128, 127, 125, 122, 119, 126, 125, 140, 117, 122, 121, 127, 107, 122, 131, 116, 122, 117, 135, 134, 129, 132, 134, 120, 103, 114, 123, 130, 127, 124, 127, 129, 138, 118, 123, 128, 120, 132, 140, 130, 132, 123, 135, 137, 124, 146, 121, 102, 136, 118, 111, 107, 134, 128, 124, 130, 121, 136, 125, 137, 121, 102, 132, 144, 118, 142, 129, 120, 115, 128, 144, 135, 122, 136, 132, 125, 105, 134, 121, 146, 120, 138, 145, 121, 136, 128, 129, 132, 134, 122, 133, 117, 136, 131, 128, 121, 119, 119, 114, 131, 134, 137, 125, 135, 118, 122, 133, 130, 129, 129, 126, 127, 93, 125, 111, 131, 139, 124, 137, 126, 111, 141, 127, 108, 121, 124, 127, 146, 135, 135, 127, 108, 119, 110, 116, 126, 131, 120, 135, 127, 105, 134, 131, 122, 130, 146, 128, 146, 130, 133, 125, 131, 123, 124, 118, 110, 113, 114, 124, 128, 139, 126, 131, 133, 126, 117, 135, 123, 124, 125, 119, 141, 103, 110, 133, 130, 122, 134, 139, 129, 115, 119, 122, 124, 121, 126, 122, 127, 129, 114, 122, 130, 134, 119, 140, 115, 134, 118, 127, 109, 132, 113, 134, 125, 138, 137, 146, 133, 119, 113, 126, 115, 123, 106, 133, 125, 139, 132, 148, 134, 122, 116, 119, 121, 127, 136, 121, 133, 116, 136, 121, 134, 114, 127, 120, 128, 130, 121, 112, 142, 125, 119, 119, 143, 125, 134, 136, 143, 108, 112, 136, 130, 136, 153, 118, 132, 129, 131, 133, 117, 116, 126, 128, 115, 127, 137, 117, 124, 136, 114, 118, 126, 130, 135, 129, 119, 140, 120, 118, 133, 107, 131, 137, 127, 142, 125, 116, 123, 133, 139, 153, 126, 134, 126, 128, 133, 125, 128, 117, 135, 136, 129, 142, 116, 134, 114, 135, 132, 128, 128, 109, 118, 131, 129, 133, 109, 114, 126, 131, 133, 138, 118, 133, 137, 120, 138, 119, 135, 127, 119, 123, 148, 123, 108, 128, 119, 129, 135, 111, 127, 133, 116, 118, 115, 137, 133, 124, 143, 128, 110, 127, 135, 115, 121, 124, 129, 124, 126, 125, 122, 124, 109, 133, 145, 124, 119, 117, 118, 133, 130, 125, 128, 149, 114, 112, 112, 137, 112, 134, 127, 128, 108, 111, 125, 139, 118, 112, 121, 123, 115, 125, 106, 124, 112, 134, 117, 134, 115, 128, 124, 133, 127, 151, 96, 131, 146, 120, 131, 108, 123, 149, 114, 131, 147, 126, 133, 102, 125, 113, 120, 120, 130, 120, 119, 132, 113, 127, 126, 122, 124, 131, 115, 121, 135, 133, 121, 101, 116, 137, 126, 133, 132, 109, 117, 116, 119, 146, 132, 123, 120, 130, 135, 122, 137, 134, 136, 124, 118, 123, 121, 125, 114, 127, 129, 135, 117, 112, 117, 72, 135, 118, 123, 110, 113, 131, 130, 126, 132, 124, 140, 123, 109, 131, 124, 131, 135, 114, 125, 127, 134, 125, 130, 141, 141, 132, 130, 135, 126, 140, 129, 107, 133, 123, 95, 133, 132, 131, 139, 126, 133, 130, 118, 128, 108, 118, 138, 111, 119, 142, 131, 129, 118, 131, 122, 143, 132, 124, 125, 127, 126, 133, 123, 114, 133, 135, 122, 128, 137, 132, 132, 123, 124, 108, 132, 123, 124, 133, 108, 124, 145, 115, 122, 125, 129, 124, 141, 121, 143, 114, 111, 115, 142, 120, 118, 133, 101, 123, 128, 110, 141, 119, 101, 119, 135, 123, 113, 123, 114, 126, 136, 135, 137, 119, 135, 125, 123, 104, 114, 122, 137, 130, 120, 124, 134, 137, 117, 134, 115, 107, 127, 143, 132, 127, 115, 118, 131, 127, 124, 126, 123, 144, 115, 118, 119, 144, 133, 113, 106, 113, 121, 136, 119, 132, 134, 132, 128, 134, 135, 136, 132, 110, 128, 138, 129, 136, 135, 129, 136, 120, 132, 107, 126, 129, 121, 129, 134, 131, 126, 114, 130, 113, 126, 114, 117, 128, 115, 136, 123, 122, 126, 117, 119, 123, 132, 113, 124, 114, 123, 141, 140, 133, 120, 113, 137, 113, 119, 128, 132, 135, 125, 132, 129, 127, 135, 140, 126, 128, 142, 138, 122, 131, 125, 139, 134, 123, 132, 153, 124, 115, 124, 114, 130, 126, 117, 127, 125, 136, 136, 132, 140, 124, 107, 118, 125, 130, 119, 107, 143, 127, 130, 134, 122, 119, 121, 119, 127, 131, 103, 122, 145, 126, 128, 125, 136, 131, 119, 106, 125, 125, 110, 130, 121, 123, 127, 135, 124, 126, 127, 116, 117, 132, 129, 133, 123, 135, 126, 115, 118, 112, 118, 105, 139, 127, 138, 148, 120, 122, 119, 132, 119, 161, 106, 138, 124, 130, 111, 106, 101, 108, 121, 123, 124, 118, 130, 139, 124, 127, 140, 128, 119, 122, 129, 137, 137, 129, 131, 134, 120, 125, 132, 137, 135, 132, 128, 107, 119, 125, 105, 122, 106, 125, 121, 133, 142, 155, 131, 123, 124, 118, 122, 148, 130, 115, 135, 135, 112, 140, 144, 141, 114, 125, 138, 123, 132, 130, 127, 109, 119, 111, 125, 126, 142, 146, 108, 115, 116, 132, 129, 134, 128, 143, 139, 124, 102, 121, 113, 137, 135, 130, 127, 133, 139, 126, 147, 124, 135, 148, 147, 118, 132, 118, 142, 123, 132, 117, 133, 107, 118, 133, 127, 140, 119, 118, 114, 108, 130, 124, 120, 128, 118, 146, 113, 138, 136, 121, 111, 146, 137, 137, 130, 124, 121, 117, 110, 136, 118, 133, 108, 117, 114, 113, 119, 115, 124, 128, 141, 124, 137, 136, 126, 124, 130, 133, 124, 120, 111, 127, 110, 118, 105, 126, 130, 134, 120, 138, 122, 119, 135, 129, 131, 124, 134, 132, 113, 128, 137, 107, 137, 121, 138, 121, 120, 126, 120, 117, 126, 130, 133, 114, 132, 126, 132, 131, 130, 132, 141, 131, 137, 121, 112, 137, 122, 126, 138, 126, 126, 121, 143, 121, 116, 119, 125, 126, 112, 124, 126, 127, 120, 115, 122, 134, 117, 122, 127, 118, 119, 141, 129, 120, 115, 126, 111, 144, 129, 124, 139, 136, 104, 128, 133, 134, 121, 119, 134, 123, 136, 136, 136, 116, 120, 133, 138, 126, 135, 139, 122, 127, 127, 121, 123, 132, 123, 132, 126, 121, 116, 130, 120, 127, 123, 122, 116, 119, 124, 127, 109, 125, 133, 124, 131, 133, 121, 136, 119, 105, 126, 129, 112, 134, 121, 116, 123, 130, 123, 128, 124, 127, 130, 133, 121, 117, 100, 128, 119, 117, 123, 122, 131, 141, 134, 115, 116, 120, 124, 116, 134, 142, 124, 139, 127, 125, 126, 123, 119, 111, 110, 122, 122, 124, 124, 133, 107, 145, 122, 123, 130, 131, 113, 118, 117, 128, 123, 134, 116, 127, 134, 120, 131, 142, 140, 118, 118, 131, 118, 100, 128, 113, 140, 133, 120, 127, 128, 127, 122, 138, 124, 115, 132, 135, 127, 128, 107, 119, 124, 87, 118, 131, 156, 132, 133, 108, 118, 113, 117, 118, 116, 123, 131, 139, 134, 133, 124, 136, 131, 143, 133, 111, 107, 130, 129, 113, 128, 117, 116, 120, 99, 133, 117, 136, 121, 105, 140, 122, 115, 127, 122, 141, 123, 126, 133, 143, 128, 131, 120, 118, 120, 128, 143, 121, 127, 109, 126, 143, 112, 136, 115, 128, 127, 105, 124, 136, 120, 115, 114, 113, 126, 137, 120, 139, 136, 153, 138, 112, 123, 118, 122, 117, 113, 131, 121, 122, 122, 139, 136, 113, 133, 134, 118, 122, 110, 127, 131, 134, 109, 113, 122, 117, 115, 114, 121, 136, 122, 123, 131, 123, 122, 133, 99, 133, 132, 116, 107, 124, 129, 121, 138, 114, 126, 125, 123, 127, 145, 124, 124, 112, 131, 118, 134, 125, 99, 122, 119, 115, 114, 131, 135, 119, 130, 106, 135, 130, 120, 132, 136, 137, 121, 134, 135, 134, 132, 117, 125, 131, 138, 135, 133, 115, 121, 114, 125, 118, 132, 121, 122, 126, 140, 131, 116, 134, 120, 129, 110, 126, 126, 129, 140, 135, 135, 133, 119, 132, 121, 123, 121, 129, 146, 115, 151, 131, 108, 132, 117, 129, 141, 127, 139, 121, 124, 133, 128, 136, 121, 124, 124, 115, 136, 129, 135, 127, 127, 125, 133, 120, 118, 121, 130, 130, 107, 124, 121, 140, 124, 115, 119, 113, 123, 123, 133, 104, 136, 119, 91, 136, 128, 122, 128, 128, 118, 131, 148, 133, 134, 123, 130, 122, 124, 129, 143, 111, 116, 122, 119, 128, 126, 116, 124, 114, 127, 131, 105, 134, 130, 144, 118, 124, 141, 119, 129, 107, 145, 142, 134, 132, 136, 127, 119, 129, 136, 113, 116, 129, 132, 138, 134, 116, 121, 126, 112, 119, 128, 133, 111, 126, 133, 134, 138, 124, 124, 113, 122, 142, 128, 129, 118, 119, 142, 130, 128, 112, 114, 124, 129, 135, 120, 134, 122, 105, 109, 130, 134, 133, 130, 120, 124, 127, 136, 113, 141, 132, 116, 113, 116, 130, 134, 127, 120, 125, 118, 118, 120, 138, 141, 128, 126, 113, 127, 132, 125, 118, 122, 130, 134, 141, 126, 132, 118, 119, 144, 135, 133, 117, 125, 125, 133, 121, 124, 145, 108, 124, 113, 121, 130, 132, 130, 122, 140, 130, 134, 107, 120, 129, 119, 118, 133, 122, 128, 127, 132, 117, 125, 150, 107, 128, 122, 123, 140, 119, 109, 116, 121, 119, 127, 125, 133, 124, 114, 120, 130, 131, 115, 122, 117, 119, 115, 140, 117, 124, 122, 140, 125, 118, 109, 125, 122, 121, 107, 115, 134, 128, 120, 126, 111, 135, 112, 116, 153, 113, 109, 133, 127, 125, 106, 134, 126, 129, 139, 124, 141, 112, 130, 107, 110, 114, 133, 136, 134, 134, 119, 130, 120, 123, 123, 125, 121, 114, 131, 138, 114, 117, 146, 124, 124, 129, 117, 116, 111, 125, 125, 117, 119, 138, 135, 126, 109, 121, 130, 135, 127, 124, 136, 114, 136, 115, 126, 127, 118, 108, 110, 127, 133, 122, 130, 111, 118, 119, 119, 133, 126, 121, 128, 122, 136, 108, 116, 138, 138, 121, 137, 130, 122, 115, 122, 128, 124, 125, 142, 129, 115, 122, 121, 113, 131, 126, 115, 137, 104, 123, 117, 117, 127, 128, 160, 138, 126, 128, 134, 123, 131, 135, 122, 117, 123, 129, 127, 125, 131, 129, 134, 120, 130, 111, 124, 114, 133, 112, 145, 138, 128, 122, 129, 129, 136, 117, 116, 106, 123, 140, 131, 109, 126, 107, 112, 143, 142, 112, 119, 121, 123, 125, 123, 119, 136, 124, 118, 141, 131, 122, 123, 127, 134, 126, 129, 123, 128, 117, 120, 127, 114, 105, 128, 126, 126, 127, 99, 129, 120, 137, 126, 133, 136, 124, 124, 124, 117, 135, 116, 151, 136, 148, 112, 117, 129, 132, 124, 134, 114, 137, 130, 137, 130, 148, 128, 123, 139, 134, 152, 123, 140, 138, 121, 121, 128, 144, 143, 133, 117, 143, 122, 137, 134, 142, 121, 127, 120, 112, 112, 116, 131, 118, 125, 132, 121, 113, 138, 137, 131, 123, 130, 136, 138, 125, 123, 130, 138, 157, 119, 114, 98, 123, 121, 105, 126, 119, 122, 130, 120, 148, 137, 123, 119, 124, 125, 125, 114, 139, 124, 114, 132, 125, 129, 129, 117, 113, 113, 131, 123, 136, 123, 139, 120, 113, 118, 118, 107, 126, 125, 128, 111, 125, 121, 127, 118, 134, 125, 123, 149, 120, 139, 120, 127, 117, 125, 133, 130, 145, 134, 142, 113, 139, 122, 114, 124, 115, 127, 118, 120, 133, 122, 141, 127, 139, 126, 123, 117, 131, 122, 140, 120, 133, 119, 140, 130, 134, 97, 126, 122, 127, 133, 121, 124, 127, 118, 126, 115, 122, 124, 123, 121, 137, 134, 129, 122, 128, 131, 107, 116, 118, 142, 125, 116, 129, 125, 128, 110, 103, 117, 111, 147, 130, 138, 122, 125, 123, 124, 158, 132, 133, 135, 132, 150, 136, 137, 124, 107, 128, 125, 133, 125, 122, 139, 157, 117, 110, 129, 134, 125, 130, 134, 126, 106, 132, 121, 141, 135, 122, 130, 127, 126, 116, 139, 121, 139, 117, 119, 120, 126, 122, 118, 124, 126, 133, 133, 122, 137, 123, 132, 146, 126, 124, 123, 128, 128, 110, 134, 113, 124, 126, 135, 125, 123, 113, 127, 139, 124, 126, 122, 125, 118, 138, 123, 95, 128, 123, 120, 122, 139, 114, 137, 129, 148, 128, 118, 131, 106, 115, 136, 117, 124, 128, 129, 135, 125, 126, 119, 113, 116, 115, 128, 126, 125, 123, 114, 124, 110, 114, 117, 110, 113, 128, 128, 133, 133, 113, 117, 98, 126, 128, 126, 117, 124, 138, 136, 131, 85, 126, 134, 124, 144, 106, 116, 125, 133, 113, 136, 132, 122, 111, 114, 133, 114, 113, 134, 119, 124, 127, 137, 122, 120, 127, 118, 105, 142, 129, 108, 125, 120, 144, 120, 148, 126, 124, 104, 116, 119, 133, 127, 120, 118, 124, 135, 125, 128, 117, 138, 113, 140, 120, 142, 108, 117, 128, 121, 139, 132, 127, 137, 135, 114, 127, 132, 118, 116, 122, 126, 136, 125, 119, 131, 138, 112, 124, 118, 129, 119, 120, 133, 127, 134, 132, 133, 111, 124, 112, 130, 120, 101, 129, 135, 118, 117, 109, 117, 125, 118, 105, 104, 133, 118, 127, 114, 125, 133, 123, 119, 126, 134, 133, 132, 131, 118, 115, 116, 127, 119, 123, 120, 115, 122, 102, 131, 121, 127, 120, 119, 135, 131, 149, 123, 130, 133, 124, 142, 131, 133, 123, 127, 133, 120, 138, 127, 129, 131, 119, 131, 143, 136, 122, 133, 130, 118, 122, 129, 129, 120, 123, 123, 129, 116, 127, 129, 135, 132, 130, 130, 134, 132, 115, 126, 126, 120, 122, 114, 107, 147, 121, 142, 127, 135, 124, 123, 85, 123, 122, 125, 133, 131, 120, 144, 125, 118, 114, 129, 123, 168, 125, 146, 118, 124, 125, 146, 123, 130, 110, 110, 112, 133, 140, 120, 117, 145, 136, 144, 115, 115, 123, 120, 125, 118, 132, 118, 138, 114, 128, 117, 133, 126, 114, 138, 104, 115, 118, 116, 119, 122, 127, 109, 125, 119, 136, 132, 128, 128, 131, 128, 149, 104, 138, 133, 131, 119, 138, 131, 125, 125, 133, 120, 110, 126, 127, 122, 131, 128, 112, 121, 138, 113, 123, 115, 110, 119, 124, 128, 119, 143, 128, 124, 129, 127, 139, 117, 122, 121, 123, 113, 115, 118, 118, 119, 133, 136, 135, 144, 117, 136, 122, 114, 121, 133, 116, 130, 138, 125, 135, 125, 115, 138, 131, 129, 127, 132, 120, 129, 122, 131, 131, 127, 125, 109, 132, 134, 138, 125, 112, 117, 118, 104, 132, 122, 135, 109, 117, 142, 133, 128, 133, 130, 134, 132, 124, 119, 125, 126, 127, 133, 121, 129, 126, 127, 118, 149, 115, 128, 118, 120, 118, 134, 110, 139, 126, 111, 135, 135, 116, 132, 121, 120, 137, 112, 126, 122, 127, 112, 135, 115, 131, 118, 117, 129, 127, 127, 153, 125, 140, 119, 136, 110, 110, 131, 130, 134, 111, 141, 131, 121, 122, 122, 114, 113, 136, 141, 118, 136, 115, 126, 107, 125, 116, 106, 109, 142, 136, 139, 138, 133, 159, 114, 132, 125, 97, 133, 125, 130, 140, 144, 126, 136, 138, 121, 125, 127, 137, 105, 130, 113, 119, 124, 130, 146, 125, 129, 123, 128, 113, 136, 126, 124, 147, 128, 134, 138, 156, 127, 124, 122, 123, 126, 127, 137, 117, 113, 115, 140, 125, 119, 126, 115, 139, 136, 133, 136, 127, 134, 138, 145, 119, 115, 118, 123, 134, 115, 147, 125, 129, 119, 134, 131, 136, 118, 132, 116, 113, 138, 118, 107, 116, 126, 137, 126, 123, 120, 133, 118, 108, 129, 124, 135, 123, 123, 137, 116, 132, 121, 128, 141, 131, 134, 118, 130, 136, 122, 115, 107, 139, 149, 122, 109, 138, 128, 128, 140, 117, 119, 101, 109, 123, 145, 125, 137, 139, 120, 116, 130, 127, 110, 113, 135, 127, 116, 134, 113, 122, 139, 124, 125, 114, 132, 126, 130, 117, 148, 125, 120, 126, 123, 133, 134, 139, 114, 135, 111, 140, 130, 118, 108, 135, 111, 125, 128, 135, 131, 125, 121, 124, 125, 139, 122, 139, 108, 132, 135, 124, 129, 127, 134, 131, 124, 120, 128, 126, 123, 129, 115, 123, 125, 123, 123, 132, 124, 133, 109, 115, 117, 133, 122, 140, 135, 132, 130, 118, 117, 123, 130, 122, 123, 126, 135, 153, 129, 129, 132, 112, 118, 118, 128, 130, 126, 111, 131, 133, 125, 123, 104, 113, 127, 128, 120, 129, 139, 125, 127, 102, 134, 128, 136, 101, 117, 111, 119, 129, 134, 138, 123, 130, 119, 127, 117, 144, 120, 110, 114, 122, 142, 135, 127, 127, 129, 113, 130, 132, 129, 135, 130, 136, 127, 122, 133, 134, 123, 114, 142, 127, 122, 146, 132, 135, 125, 120, 113, 130, 110, 116, 121, 141, 129, 112, 134, 131, 136, 131, 131, 135, 135, 142, 138, 118, 122, 117, 117, 129, 101, 133, 115, 136, 122, 100, 116, 122, 127, 114, 130, 115, 122, 140, 120, 111, 127, 117, 124, 127, 122, 109, 120, 108, 108, 114, 146, 126, 136, 120, 132, 141, 121, 128, 138, 131, 118, 134, 124, 119, 115, 112, 127, 116, 131, 118, 128, 122, 125, 139, 129, 103, 133, 120, 131, 136, 128, 134, 110, 126, 138, 120, 109, 106, 143, 135, 148, 146, 134, 143, 112, 125, 142, 104, 127, 130, 123, 125, 129, 117, 132, 138, 137, 137, 134, 147, 120, 126, 128, 126, 118, 108, 127, 110, 122, 129, 119, 127, 125, 111, 123, 105, 136, 122, 120, 112, 138, 123, 131, 122, 113, 138, 115, 129, 120, 112, 116, 121, 125, 120, 116, 107, 143, 116, 120, 118, 130, 138, 118, 116, 124, 126, 141, 119, 116, 111, 143, 120, 130, 127, 127, 120, 126, 129, 122, 126, 119, 122, 124, 134, 120, 131, 132, 143, 120, 131, 129, 113, 126, 131, 129, 111, 143, 127, 144, 136, 149, 121, 110, 151, 128, 123, 118, 116, 132, 126, 126, 132, 124, 131, 131, 130, 121, 126, 111, 123, 115, 132, 119, 119, 130, 149, 123, 112, 141, 138, 118, 119, 138, 116, 117, 111, 113, 134, 121, 131, 133, 132, 119, 111, 122, 130, 124, 126, 127, 135, 120, 129, 133, 107, 137, 132, 130, 124, 139, 112, 125, 137, 135, 139, 141, 119, 123, 132, 141, 112, 141, 124, 120, 104, 137, 130, 125, 124, 128, 103, 147, 126, 121, 131, 116, 107, 130, 127, 122, 122, 133, 116, 127, 122, 133, 131, 147, 119, 118, 112, 112, 117, 120, 122, 134, 131, 128, 118, 108, 127, 117, 129, 117, 124, 131, 124, 113, 137, 136, 124, 112, 134, 108, 118, 132, 113, 126, 128, 116, 144, 137, 132, 146, 128, 145, 129, 124, 117, 128, 113, 126, 124, 121, 117, 120, 130, 134, 138, 148, 137, 129, 131, 125, 142, 132, 122, 142, 121, 114, 135, 119, 118, 110, 127, 131, 137, 117, 148, 130, 122, 116, 118, 135, 122, 124, 137, 138, 120, 120, 134, 128, 114, 137, 132, 154, 115, 121, 110, 115, 105, 135, 113, 107, 126, 138, 143, 116, 113, 112, 120, 107, 119, 127, 147, 115, 154, 119, 116, 127, 142, 131, 132, 124, 132, 124, 113, 131, 115, 117, 123, 129, 117, 118, 125, 125, 126, 130, 137, 120, 125, 112, 123, 111, 119, 122, 125, 122, 112, 129, 122, 129, 118, 116, 109, 123, 129, 135, 129, 130, 128, 121, 121, 118, 100, 125, 121, 117, 123, 129, 119, 124, 107, 114, 122, 122, 145, 110, 121, 119, 133, 115, 119, 102, 101, 123, 133, 128, 141, 109, 131, 123, 110, 113, 125, 119, 128, 135, 131, 119, 112, 130, 119, 129, 114, 126, 108, 124, 133, 101, 142, 92, 129, 125, 106, 142, 126, 124, 124, 124, 130, 114, 122, 141, 126, 125, 125, 128, 129, 145, 122, 151, 124, 122, 119, 124, 135, 131, 123, 130, 124, 118, 119, 138, 116, 114, 130, 135, 110, 122, 112, 137, 111, 121, 109, 129, 122, 126, 125, 122, 121, 121, 125, 130, 121, 135, 121, 112, 119, 125, 121, 120, 119, 141, 123, 124, 122, 125, 138, 121, 109, 130, 127, 126, 130, 116, 119, 121, 130, 134, 126, 137, 120, 136, 108, 136, 113, 134, 132, 148, 141, 121, 142, 120, 132, 120, 142, 126, 111, 119, 114, 118, 107, 114, 123, 132, 133, 126, 140, 120, 132, 117, 143, 127, 132, 123, 119, 122, 111, 126, 106, 135, 118, 120, 129, 125, 122, 123, 118, 133, 118, 147, 119, 155, 123, 124, 120, 111, 144, 125, 134, 129, 130, 132, 125, 116, 129, 130, 124, 135, 120, 137, 117, 130, 125, 121, 132, 132, 126, 135, 118, 141, 127, 124, 125, 121, 122, 117, 134, 117, 147, 144, 122, 143, 125, 130, 143, 124, 138, 114, 124, 126, 140, 125, 147, 141, 117, 121, 128, 101, 139, 113, 133, 141, 125, 132, 130, 125, 134, 130, 119, 135, 118, 120, 116, 132, 120, 122, 122, 121, 130, 132, 136, 119, 111, 125, 140, 118, 117, 130, 130, 122, 122, 116, 129, 138, 129, 131, 131, 127, 132, 136, 122, 106, 139, 118, 149, 130, 123, 114, 128, 127, 121, 104, 111, 115, 122, 120, 120, 115, 145, 128, 122, 125, 138, 132, 114, 115, 130, 142, 147, 126, 135, 104, 138, 123, 124, 130, 104, 124, 141, 144, 131, 118, 117, 135, 121, 119, 136, 127, 130, 125, 113, 130, 116, 121, 112, 129, 128, 119, 123, 118, 127, 125, 128, 120, 129, 124, 139, 132, 122, 117, 132, 124, 134, 136, 114, 141, 124, 105, 117, 127, 135, 135, 121, 120, 132, 108, 120, 108, 138, 120, 144, 116, 122, 134, 149, 119, 139, 120, 133, 146, 123, 111, 143, 112, 127, 139, 130, 103, 125, 133, 132, 140, 125, 132, 133, 133, 116, 124, 133, 111, 130, 118, 133, 115, 126, 130, 132, 129, 136, 126, 131, 130, 135, 123, 116, 114, 126, 116, 130, 115, 123, 137, 118, 129, 135, 125, 118, 146, 116, 128, 135, 124, 143, 118, 120, 107, 124, 124, 120, 129, 110, 124, 123, 121, 124, 105, 129, 128, 128, 116, 119, 116, 119, 142, 126, 120, 119, 111, 130, 148, 117, 134, 116, 112, 115, 134, 123, 128, 134, 116, 114, 121, 136, 128, 129, 125, 125, 132, 140, 114, 124, 126, 123, 115, 129, 126, 134, 135, 124, 123, 144, 126, 134, 143, 123, 122, 121, 118, 130, 121, 128, 144, 113, 112, 119, 139, 126, 128, 122, 107, 119, 127, 129, 122, 118, 116, 139, 119, 131, 133, 133, 114, 124, 120, 131, 143, 135, 121, 144, 135, 136, 135, 130, 118, 129, 123, 101, 116, 170, 139, 123, 118, 123, 131, 134, 129, 118, 133, 145, 130, 121, 126, 144, 115, 142, 118, 117, 125, 135, 120, 131, 113, 139, 145, 118, 119, 117, 134, 117, 117, 124, 121, 99, 111, 128, 131, 144, 117, 138, 140, 136, 127, 137, 112, 130, 121, 122, 128, 117, 136, 129, 128, 112, 135, 122, 122, 131, 133, 127, 117, 122, 128, 120, 152, 126, 113, 132, 124, 146, 141, 134, 145, 135, 124, 128, 127, 124, 117, 123, 117, 131, 117, 115, 127, 128, 142, 152, 128, 130, 134, 131, 112, 149, 133, 122, 137, 128, 131, 120, 133, 135, 133, 122, 123, 134, 136, 134, 132, 127, 126, 120, 118, 124, 118, 121, 134, 132, 110, 114, 130, 99, 110, 118, 113, 124, 137, 110, 135, 127, 124, 139, 125, 123, 133, 132, 121, 123, 133, 131, 126, 128, 130, 127, 137, 127, 124, 122, 115, 128, 127, 118, 122, 135, 143, 126, 126, 145, 138, 122, 131, 140, 125, 117, 127, 123, 129, 121, 121, 120, 109, 109, 128, 149, 133, 133, 133, 123, 141, 126, 146, 130, 132, 115, 128, 135, 133, 123, 128, 125, 117, 140, 126, 124, 114, 143, 137, 110, 117, 141, 109, 126, 107, 131, 130, 140, 122, 127, 123, 138, 105, 126, 132, 138, 143, 145, 126, 131, 138, 149, 122, 127, 145, 120, 134, 126, 145, 123, 127, 116, 113, 118, 143, 135, 111, 118, 127, 124, 136, 148, 128, 109, 120, 131, 117, 143, 134, 131, 130, 128, 116, 120, 140, 114, 131, 97, 137, 126, 132, 120, 146, 127, 128, 139, 100, 129, 138, 102, 119, 127, 132, 125, 116, 119, 125, 117, 122, 131, 133, 127, 112, 141, 117, 126, 124, 149, 119, 129, 142, 135, 119, 119, 113, 121, 121, 112, 116, 135, 116, 138, 126, 123, 140, 134, 131, 121, 124, 129, 116, 104, 124, 120, 142, 129, 108, 136, 112, 134, 119, 115, 122, 115, 136, 119, 120, 108, 121, 109, 97, 120, 121, 121, 124, 143, 127, 141, 131, 125, 122, 132, 123, 116, 119, 130, 129, 109, 130, 142, 107, 110, 131, 116, 131, 129, 125, 144, 131, 129, 112, 133, 137, 149, 127, 137, 134, 128, 135, 129, 129, 139, 117, 110, 117, 122, 115, 153, 120, 135, 144, 135, 146, 114, 118, 132, 113, 136, 122, 109, 124, 122, 140, 132, 153, 114, 134, 127, 134, 114, 100, 126, 127, 125, 132, 113, 116, 108, 123, 148, 115, 122, 117, 129, 116, 123, 116, 122, 122, 140, 134, 122, 127, 124, 125, 129, 133, 117, 122, 136, 126, 127, 126, 115, 132, 116, 113, 135, 118, 125, 111, 128, 124, 108, 112, 133, 123, 116, 132, 123, 138, 130, 129, 141, 103, 132, 132, 151, 113, 120, 129, 136, 130, 118, 137, 131, 136, 143, 141, 129, 141, 114, 142, 117, 112, 134, 132, 122, 115, 121, 124, 118, 118, 127, 134, 137, 123, 115, 124, 135, 118, 143, 126, 118, 137, 126, 120, 121, 144, 121, 122, 109, 137, 120, 114, 120, 137, 130, 111, 133, 112, 117, 127, 130, 125, 121, 118, 128, 136, 132, 120, 121, 138, 143, 122, 111, 136, 119, 120, 123, 128, 128, 130, 125, 133, 115, 114, 117, 122, 112, 131, 142, 114, 121, 126, 131, 126, 114, 118, 131, 122, 128, 120, 125, 130, 116, 129, 125, 101, 130, 134, 109, 122, 129, 111, 130, 127, 126, 113, 129, 130, 127, 116, 118, 120, 118, 128, 120, 107, 121, 122, 132, 135, 110, 117, 142, 131, 134, 121, 129, 136, 117, 124, 129, 119, 143, 120, 137, 120, 132, 139, 139, 134, 104, 143, 131, 125, 122, 132, 125, 125, 136, 124, 137, 117, 130, 123, 117, 127, 122, 132, 147, 137, 127, 137, 126, 129, 124, 123, 141, 145, 121, 134, 117, 119, 127, 112, 136, 104, 113, 133, 135, 133, 104, 116, 128, 105, 114, 135, 130, 132, 121, 124, 131, 148, 149, 128, 121, 134, 137, 137, 108, 117, 130, 118, 121, 142, 112, 132, 134, 126, 134, 114, 158, 132, 132, 129, 140, 126, 120, 115, 121, 134, 131, 121, 112, 130, 127, 130, 117, 124, 111, 124, 144, 115, 140, 133, 124, 110, 137, 125, 134, 118, 118, 109, 111, 136, 123, 131, 125, 123, 123, 122, 123, 124, 130, 110, 124, 116, 122, 125, 116, 124, 122, 120, 126, 123, 127, 129, 124, 128, 127, 125, 120, 130, 134, 145, 118, 121, 128, 122, 124, 124, 129, 122, 119, 125, 110, 105, 129, 120, 129, 116, 131, 135, 127, 128, 149, 136, 112, 132, 122, 129, 119, 129, 149, 131, 118, 130, 132, 115, 122, 118, 113, 118, 125, 124, 116, 117, 114, 123, 117, 116, 143, 105, 108, 143, 116, 142, 122, 121, 106, 116, 115, 125, 116, 124, 125, 126, 127, 128, 149, 135, 136, 104, 113, 137, 130, 112, 138, 136, 132, 110, 114, 120, 125, 138, 107, 140, 144, 124, 113, 106, 103, 151, 123, 104, 118, 111, 125, 130, 121, 112, 129, 125, 119, 130, 128, 144, 114, 117, 131, 119, 118, 110, 114, 125, 119, 120, 113, 118, 114, 127, 141, 120, 121, 126, 126, 144, 125, 109, 122, 116, 133, 123, 141, 115, 109, 129, 121, 130, 130, 116, 113, 117, 109, 128, 123, 143, 132, 120, 125, 120, 112, 120, 120, 120, 115, 109, 121, 130, 127, 129, 120, 120, 90, 138, 123, 122, 111, 130, 134, 143, 123, 129, 121, 131, 120, 117, 128, 109, 128, 118, 113, 125, 131, 130, 125, 125, 137, 120, 121, 127, 124, 123, 119, 117, 120, 107, 129, 110, 140, 124, 131, 135, 114, 127, 113, 116, 116, 136, 127, 112, 141, 132, 144, 126, 146, 134, 106, 112, 121, 116, 107, 132, 128, 115, 118, 131, 125, 119, 119, 122, 135, 120, 109, 136, 133, 120, 131, 139, 130, 126, 129, 121, 121, 128, 124, 133, 127, 131, 144, 133, 111, 131, 110, 120, 122, 119, 146, 131, 136, 113, 137, 127, 128, 137, 130, 121, 114, 141, 136, 135, 124, 122, 117, 147, 129, 117, 146, 136, 121, 112, 113, 94, 123, 135, 134, 121, 119, 125, 138, 123, 126, 135, 118, 127, 128, 111, 123, 121, 117, 127, 117, 113, 122, 126, 110, 124, 121, 143, 127, 121, 126, 144, 113, 148, 118, 128, 111, 115, 124, 109, 130, 123, 125, 123, 121, 129, 116, 118, 119, 120, 134, 133, 133, 128, 129, 126, 132, 128, 120, 118, 153, 125, 124, 112, 124, 124, 151, 127, 122, 120, 124, 136, 134, 115, 128, 119, 132, 129, 130, 112, 122, 121, 141, 131, 125, 119, 141, 135, 134, 117, 136, 124, 108, 143, 118, 123, 116, 122, 124, 117, 124, 145, 129, 148, 118, 114, 134, 131, 129, 123, 126, 115, 132, 125, 115, 135, 130, 134, 141, 116, 141, 125, 128, 111, 118, 120, 145, 109, 150, 127, 134, 120, 122, 116, 136, 101, 123, 133, 121, 132, 118, 128, 124, 126, 124, 125, 112, 117, 125, 124, 120, 139, 116, 129, 131, 127, 137, 125, 133, 116, 129, 132, 121, 133, 111, 120, 119, 135, 128, 123, 143, 122, 128, 138, 141, 128, 126, 110, 127, 121, 122, 133, 130, 138, 119, 118, 119, 125, 120, 123, 116, 140, 127, 115, 128, 127, 127, 124, 127, 125, 127, 141, 129, 125, 88, 123, 157, 127, 151, 118, 100, 133, 116, 132, 140, 132, 128, 124, 121, 116, 140, 144, 126, 130, 113, 136, 116, 115, 131, 125, 131, 108, 120, 126, 131, 130, 125, 135, 130, 131, 130, 120, 135, 137, 110, 133, 97, 132, 137, 132, 129, 130, 130, 124, 128, 106, 125, 125, 128, 106, 120, 110, 142, 120, 129, 118, 118, 118, 130, 114, 128, 117, 124, 138, 124, 130, 135, 130, 126, 139, 127, 139, 141, 131, 139, 121, 111, 133, 136, 131, 127, 129, 118, 116, 130, 118, 122, 129, 122, 136, 129, 129, 118, 122, 106, 135, 140, 124, 122, 125, 138, 112, 134, 134, 136, 103, 140, 119, 102, 134, 126, 114, 128, 123, 109, 133, 111, 139, 137, 136, 134, 127, 128, 120, 129, 126, 112, 145, 116, 122, 133, 122, 96, 133, 125, 129, 134, 130, 125, 133, 123, 143, 133, 140, 161, 132, 109, 96, 119, 123, 112, 107, 132, 124, 115, 124, 110, 115, 128, 114, 117, 134, 125, 115, 129, 140, 129, 112, 128, 126, 122, 118, 127, 126, 114, 131, 125, 117, 136, 117, 135, 149, 118, 137, 135, 130, 114, 134, 125, 111, 135, 123, 117, 111, 135, 116, 121, 124, 146, 125, 120, 127, 110, 145, 111, 109, 122, 116, 126, 125, 142, 138, 131, 130, 130, 125, 132, 127, 124, 139, 137, 121, 130, 120, 143, 138, 137, 150, 137, 127, 138, 132, 139, 121, 119, 125, 128, 133, 134, 127, 127, 118, 124, 132, 127, 117, 117, 130, 125, 106, 126, 127, 120, 114, 132, 120, 117, 123, 121, 121, 127, 122, 143, 126, 133, 135, 125, 112, 135, 127, 129, 121, 128, 122, 129, 117, 141, 133, 134, 114, 109, 126, 128, 99, 125, 143, 131, 112, 123, 120, 138, 115, 146, 159, 131, 107, 127, 111, 112, 126, 140, 122, 126, 120, 137, 132, 127, 116, 151, 115, 129, 125, 123, 125, 122, 132, 142, 129, 110, 126, 135, 130, 128, 120, 116, 104, 123, 125, 138, 114, 133, 129, 135, 126, 126, 125, 113, 132, 124, 115, 120, 129, 105, 143, 129, 128, 119, 128, 109, 136, 112, 136, 140, 110, 128, 109, 112, 115, 129, 119, 126, 114, 121, 105, 110, 144, 111, 120, 130, 102, 127, 149, 134, 133, 127, 125, 124, 142, 130, 116, 125, 125, 131, 130, 124, 104, 116, 130, 128, 136, 124, 128, 110, 112, 110, 114, 132, 120, 119, 127, 94, 134, 126, 116, 112, 133, 134, 126, 137, 122, 120, 125, 133, 124, 130, 111, 139, 137, 122, 125, 115, 118, 117, 145, 117, 132, 143, 136, 133, 118, 135, 120, 119, 126, 116, 112, 123, 117, 113, 106, 134, 122, 122, 135, 123, 131, 126, 124, 129, 129, 112, 115, 117, 124, 129, 135, 115, 128, 132, 118, 127, 126, 116, 113, 140, 121, 132, 99, 141, 124, 112, 111, 140, 123, 141, 114, 140, 117, 131, 130, 101, 127, 118, 124, 142, 139, 133, 118, 131, 114, 124, 118, 136, 119, 134, 121, 117, 127, 133, 119, 122, 128, 129, 123, 118, 110, 132, 124, 131, 116, 100, 150, 123, 130, 120, 119, 126, 120, 125, 121, 146, 125, 138, 125, 108, 133, 119, 135, 138, 107, 108, 136, 127, 124, 137, 131, 140, 122, 121, 137, 146, 108, 123, 124, 123, 119, 119, 130, 121, 133, 132, 121, 113, 117, 134, 110, 122, 124, 111, 116, 114, 107, 119, 127, 131, 127, 114, 121, 119, 125, 123, 131, 137, 129, 124, 134, 135, 121, 126, 122, 98, 127, 126, 119, 122, 117, 117, 113, 113, 116, 140, 134, 139, 110, 131, 120, 121, 114, 132, 124, 137, 130, 120, 119, 148, 127, 134, 112, 117, 129, 134, 127, 129, 134, 118, 138, 136, 123, 126, 136, 118, 126, 120, 127, 133, 119, 121, 119, 147, 136, 129, 121, 125, 124, 119, 124, 138, 135, 115, 123, 123, 115, 133, 120, 122, 142, 133, 135, 127, 107, 136, 139, 130, 136, 119, 128, 125, 129, 111, 112, 121, 137, 100, 108, 103, 120, 116, 120, 146, 113, 123, 131, 128, 139, 130, 117, 146, 136, 112, 141, 119, 136, 150, 118, 124, 117, 117, 106, 124, 112, 134, 130, 128, 108, 126, 105, 130, 138, 130, 116, 126, 120, 110, 119, 129, 123, 110, 133, 112, 129, 119, 141, 134, 136, 128, 112, 134, 129, 101, 129, 137, 126, 139, 149, 120, 124, 128, 126, 140, 131, 120, 129, 138, 141, 131, 132, 126, 125, 121, 121, 119, 130, 141, 125, 124, 131, 147, 108, 115, 112, 136, 148, 127, 140, 126, 123, 113, 125, 137, 131, 132, 127, 141, 131, 116, 117, 128, 126, 126, 132, 125, 107, 123, 132, 128, 117, 132, 138, 129, 133, 146, 118, 143, 126, 121, 132, 116, 122, 124, 134, 98, 133, 126, 136, 130, 128, 138, 122, 134, 137, 122, 113, 119, 124, 122, 114, 122, 135, 128, 128, 132, 138, 121, 123, 131, 128, 99, 129, 118, 158, 129, 115, 126, 125, 127, 132, 130, 134, 137, 123, 124, 137, 126, 130, 124, 125, 136, 135, 125, 119, 134, 137, 126, 139, 136, 121, 121, 129, 132, 120, 113, 139, 138, 136, 116, 131, 123, 127, 132, 137, 114, 139, 125, 112, 130, 121, 124, 135, 124, 131, 127, 118, 121, 102, 129, 107, 132, 125, 150, 126, 120, 118, 130, 126, 118, 113, 133, 103, 123, 128, 131, 117, 116, 135, 120, 125, 140, 116, 133, 118, 129, 99, 129, 107, 134, 138, 124, 126, 116, 121, 150, 122, 124, 122, 115, 127, 130, 135, 121, 117, 122, 125, 124, 126, 114, 120, 115, 116, 130, 121, 106, 136, 128, 138, 122, 128, 124, 124, 109, 116, 125, 127, 109, 125, 131, 131, 125, 134, 129, 110, 142, 140, 131, 110, 135, 134, 119, 122, 123, 126, 131, 135, 123, 133, 113, 136, 117, 122, 138, 144, 121, 112, 149, 131, 106, 130, 112, 135, 133, 132, 148, 91, 117, 126, 112, 133, 134, 146, 118, 114, 143, 126, 140, 119, 111, 121, 129, 120, 133, 130, 129, 129, 138, 135, 129, 128, 125, 120, 133, 135, 112, 130, 104, 120, 130, 118, 133, 128, 123, 119, 124, 125, 122, 134, 132, 113, 124, 126, 127, 135, 119, 144, 121, 127, 128, 120, 136, 130, 127, 119, 122, 145, 117, 135, 139, 135, 111, 106, 127, 117, 123, 130, 124, 130, 148, 131, 128, 121, 120, 126, 118, 117, 111, 131, 137, 111, 135, 111, 106, 146, 128, 126, 102, 125, 122, 120, 146, 116, 131, 127, 129, 144, 114, 126, 123, 113, 130, 116, 133, 129, 125, 129, 113, 127, 145, 123, 123, 121, 128, 143, 109, 139, 97, 122, 107, 112, 126, 126, 119, 118, 115, 121, 116, 124, 111, 133, 131, 136, 133, 130, 124, 132, 136, 120, 125, 143, 123, 127, 134, 116, 120, 127, 132, 131, 126, 111, 121, 115, 118, 122, 126, 138, 111, 126, 127, 119, 114, 128, 135, 125, 139, 123, 127, 116, 119, 149, 119, 127, 122, 123, 137, 116, 130, 109, 124, 129, 116, 132, 135, 119, 119, 136, 123, 136, 114, 136, 123, 137, 120, 130, 123, 118, 128, 128, 118, 132, 124, 157, 122, 127, 144, 106, 123, 126, 128, 97, 127, 128, 126, 120, 116, 128, 125, 132, 127, 120, 150, 134, 128, 109, 129, 115, 145, 106, 121, 126, 137, 118, 113, 129, 126, 115, 128, 134, 124, 128, 123, 128, 119, 117, 148, 126, 126, 127, 138, 125, 121, 127, 136, 125, 121, 134, 135, 127, 119, 154, 127, 129, 123, 133, 129, 131, 134, 118, 92, 127, 129, 133, 123, 114, 124, 135, 117, 127, 129, 119, 120, 143, 130, 111, 114, 163, 135, 125, 126, 130, 139, 131, 148, 133, 125, 97, 121, 120, 135, 132, 122, 122, 132, 138, 108, 120, 125, 111, 140, 130, 129, 114, 120, 112, 115, 136, 135, 123, 135, 126, 126, 134, 117, 125, 126, 143, 124, 132, 110, 118, 120, 114, 121, 122, 133, 128, 118, 125, 125, 133, 111, 125, 111, 118, 111, 118, 132, 108, 144, 132, 139, 113, 139, 125, 148, 133, 133, 115, 137, 134, 137, 142, 128, 137, 119, 137, 109, 125, 124, 117, 132, 150, 115, 136, 134, 122, 119, 98, 121, 144, 144, 107, 123, 112, 130, 125, 117, 108, 114, 119, 119, 119, 132, 125, 114, 120, 135, 143, 111, 132, 130, 125, 121, 129, 127, 136, 121, 112, 130, 124, 114, 139, 147, 126, 119, 121, 128, 132, 118, 130, 142, 124, 140, 135, 110, 123, 116, 125, 141, 127, 131, 129, 137, 124, 124, 141, 119, 112, 127, 109, 112, 125, 132, 134, 147, 148, 128, 142, 142, 125, 130, 131, 123, 133, 126, 113, 132, 119, 120, 125, 109, 117, 124, 138, 129, 124, 128, 141, 141, 118, 125, 121, 125, 120, 121, 130, 134, 120, 134, 129, 127, 135, 116, 139, 120, 109, 126, 121, 123, 137, 117, 145, 129, 142, 137, 120, 125, 125, 133, 114, 129, 120, 134, 114, 132, 121, 123, 137, 109, 117, 127, 117, 119, 117, 115, 137, 127, 113, 118, 109, 114, 123, 129, 122, 141, 125, 127, 128, 133, 129, 144, 117, 122, 127, 131, 137, 128, 120, 117, 130, 134, 134, 125, 124, 108, 142, 118, 143, 119, 123, 127, 109, 124, 114, 127, 113, 128, 130, 134, 115, 126, 126, 121, 114, 107, 109, 136, 115, 128, 128, 126, 133, 132, 123, 116, 125, 130, 114, 132, 110, 101, 114, 124, 129, 118, 135, 151, 118, 99, 126, 119, 108, 128, 128, 118, 111, 118, 133, 100, 118, 130, 120, 104, 116, 138, 121, 125, 133, 134, 116, 145, 128, 123, 125, 125, 126, 138, 133, 124, 109, 134, 118, 111, 120, 146, 112, 127, 118, 117, 120, 127, 126, 98, 115, 115, 123, 132, 127, 132, 127, 135, 106, 146, 145, 114, 126, 128, 111, 138, 127, 121, 127, 132, 129, 119, 140, 121, 119, 111, 126, 133, 106, 132, 115, 139, 112, 122, 131, 125, 112, 124, 116, 111, 117, 131, 142, 116, 119, 125, 136, 102, 118, 138, 146, 133, 144, 133, 134, 129, 118, 127, 107, 129, 112, 111, 120, 126, 127, 108, 136, 123, 120, 121, 122, 135, 127, 127, 132, 155, 131, 129, 134, 128, 115, 103, 123, 137, 115, 107, 148, 131, 105, 126, 135, 103, 109, 116, 112, 114, 127, 140, 128, 133, 108, 122, 124, 137, 138, 147, 124, 130, 130, 131, 118, 114, 127, 114, 110, 120, 126, 119, 128, 131, 125, 129, 144, 146, 127, 122, 99, 146, 134, 133, 120, 128, 117, 145, 129, 113, 125, 127, 137, 116, 127, 115, 135, 122, 130, 134, 127, 136, 121, 119, 117, 139, 127, 129, 131, 114, 112, 101, 150, 131, 136, 120, 116, 128, 119, 118, 114, 128, 121, 125, 116, 125, 134, 115, 138, 137, 116, 131, 124, 116, 115, 114, 135, 122, 122, 129, 119, 140, 127, 126, 128, 131, 132, 131, 131, 129, 120, 136, 123, 136, 126, 131, 147, 130, 118, 142, 130, 118, 131, 141, 132, 138, 128, 117, 121, 129, 127, 117, 113, 128, 117, 120, 126, 121, 132, 118, 127, 113, 128, 149, 136, 116, 135, 112, 137, 123, 140, 133, 134, 136, 126, 130, 132, 131, 125, 144, 130, 125, 129, 128, 114, 123, 129, 132, 125, 147, 139, 125, 115, 115, 134, 140, 123, 127, 123, 127, 121, 119, 106, 114, 133, 114, 124, 117, 121, 134, 129, 133, 136, 115, 112, 110, 117, 110, 117, 128, 130, 120, 126, 110, 121, 141, 125, 137, 115, 111, 123, 109, 132, 137, 125, 134, 115, 122, 123, 116, 139, 128, 118, 111, 136, 140, 125, 119, 128, 125, 145, 112, 138, 134, 123, 116, 120, 123, 128, 113, 125, 113, 128, 129, 121, 112, 123, 113, 126, 129, 139, 135, 127, 143, 118, 128, 126, 163, 133, 124, 142, 115, 114, 126, 124, 133, 113, 143, 117, 103, 119, 121, 131, 140, 123, 118, 122, 141, 123, 133, 122, 149, 127, 148, 128, 121, 115, 127, 134, 133, 141, 115, 138, 118, 124, 130, 139, 141, 114, 132, 138, 124, 128, 137, 103, 153, 117, 122, 123, 138, 125, 131, 118, 109, 129, 150, 125, 143, 119, 134, 123, 129, 113, 135, 144, 121, 136, 126, 129, 114, 129, 129, 117, 121, 132, 136, 128, 132, 136, 111, 123, 113, 136, 116, 119, 119, 127, 129, 132, 133, 120, 119, 112, 125, 119, 144, 137, 121, 110, 131, 120, 125, 125, 145, 120, 122, 142, 116, 127, 134, 126, 135, 128, 125, 121, 119, 127, 116, 134, 128, 141, 133, 119, 130, 125, 122, 130, 129, 128, 97, 121, 134, 119, 128, 123, 133, 119, 117, 137, 148, 134, 142, 130, 136, 106, 108, 124, 131, 129, 134, 142, 123, 120, 148, 121, 116, 142, 136, 136, 111, 121, 106, 138, 115, 158, 134, 116, 127, 127, 128, 133, 138, 103, 116, 115, 142, 128, 123, 120, 105, 134, 118, 129, 107, 126, 116, 125, 113, 124, 127, 110, 106, 119, 123, 134, 122, 120, 125, 127, 118, 127, 138, 109, 119, 136, 106, 137, 119, 114, 139, 129, 126, 131, 117, 140, 116, 125, 119, 142, 130, 148, 138, 127, 119, 118, 133, 123, 123, 132, 104, 133, 125, 121, 122, 121, 131, 126, 132, 132, 124, 120, 128, 119, 136, 147, 130, 114, 119, 120, 135, 131, 132, 139, 116, 122, 119, 127, 132, 115, 110, 130, 123, 124, 119, 110, 133, 134, 117, 132, 135, 101, 139, 127, 134, 122, 121, 122, 144, 108, 129, 122, 122, 130, 123, 127, 122, 122, 121, 148, 117, 128, 133, 123, 122, 134, 112, 120, 122, 122, 136, 132, 137, 134, 128, 143, 131, 117, 129, 126, 118, 134, 122, 133, 131, 138, 130, 131, 118, 119, 119, 135, 120, 130, 91, 124, 129, 137, 128, 129, 144, 112, 132, 95, 123, 141, 146, 120, 122, 114, 127, 133, 110, 122, 138, 126, 135, 132, 138, 128, 128, 115, 130, 120, 124, 120, 125, 127, 112, 142, 135, 143, 126, 117, 113, 122, 123, 122, 127, 121, 124, 121, 126, 131, 118, 123, 131, 121, 137, 128, 141, 136, 126, 128, 116, 124, 148, 133, 137, 125, 157, 116, 122, 110, 141, 138, 125, 132, 129, 109, 139, 119, 126, 126, 129, 135, 115, 128, 110, 133, 121, 119, 119, 120, 121, 127, 132, 120, 131, 128, 124, 121, 121, 141, 144, 128, 139, 129, 119, 133, 144, 128, 108, 131, 145, 117, 117, 124, 124, 112, 105, 127, 129, 140, 127, 116, 135, 136, 118, 126, 111, 134, 121, 119, 121, 135, 129, 118, 130, 137, 133, 122, 121, 115, 113, 123, 130, 132, 135, 119, 125, 121, 130, 152, 124, 127, 133, 104, 129, 107, 120, 115, 116, 103, 135, 134, 132, 139, 103, 118, 148, 139, 122, 120, 120, 125, 131, 127, 119, 138, 119, 116, 109, 127, 145, 130, 99, 123, 122, 124, 126, 137, 131, 106, 125, 129, 113, 129, 130, 110, 130, 113, 120, 131, 126, 118, 130, 122, 129, 129, 114, 115, 143, 119, 120, 122, 116, 134, 141, 133, 123, 125, 136, 126, 121, 125, 116, 121, 144, 142, 121, 112, 119, 133, 135, 131, 127, 126, 117, 124, 107, 123, 123, 113, 110, 139, 124, 116, 134, 130, 113, 122, 125, 117, 126, 124, 137, 122, 125, 138, 129, 94, 118, 130, 113, 129, 136, 112, 108, 122, 128, 121, 128, 108, 133, 121, 135, 124, 142, 114, 129, 119, 121, 147, 133, 145, 127, 131, 108, 136, 107, 133, 125, 137, 128, 138, 110, 121, 101, 114, 114, 128, 129, 131, 123, 139, 119, 141, 129, 128, 122, 130, 107, 116, 130, 134, 131, 122, 139, 111, 137, 133, 123, 130, 132, 126, 142, 134, 121, 117, 123, 127, 130, 105, 127, 115, 135, 120, 121, 127, 133, 101, 154, 122, 115, 131, 119, 135, 102, 112, 120, 113, 114, 123, 120, 141, 142, 127, 137, 123, 122, 141, 126, 126, 127, 126, 109, 122, 139, 148, 133, 147, 129, 129, 128, 124, 119, 127, 124, 118, 128, 138, 130, 129, 116, 143, 139, 111, 132, 130, 130, 122, 123, 99, 132, 122, 127, 136, 133, 119, 121, 118, 126, 121, 137, 117, 108, 136, 120, 118, 132, 141, 114, 123, 133, 123, 111, 142, 115, 106, 150, 123, 117, 124, 129, 131, 151, 116, 116, 137, 118, 129, 111, 123, 101, 130, 124, 133, 125, 119, 144, 116, 122, 125, 134, 124, 138, 128, 115, 125, 131, 136, 108, 136, 127, 109, 113, 130, 117, 116, 121, 132, 109, 118, 125, 140, 119, 111, 136, 122, 121, 123, 114, 113, 111, 124, 127, 117, 126, 129, 117, 128, 125, 128, 138, 138, 133, 129, 111, 127, 121, 136, 99, 127, 124, 121, 130, 137, 132, 146, 103, 113, 132, 132, 114, 118, 115, 124, 122, 119, 125, 127, 118, 139, 104, 123, 114, 145, 117, 137, 110, 121, 121, 113, 124, 138, 114, 121, 145, 117, 119, 119, 117, 118, 128, 112, 129, 134, 117, 110, 141, 117, 110, 126, 115, 125, 114, 119, 127, 145, 120, 113, 113, 115, 121, 129, 130, 120, 106, 134, 138, 138, 140, 130, 121, 134, 140, 137, 107, 112, 137, 130, 120, 118, 126, 123, 124, 149, 124, 124, 111, 124, 117, 137, 119, 118, 139, 118, 106, 116, 132, 116, 117, 137, 127, 117, 126, 103, 116, 128, 123, 121, 129, 124, 141, 118, 108, 125, 138, 131, 133, 130, 127, 134, 132, 118, 124, 119, 113, 136, 144, 110, 121, 171, 141, 109, 122, 107, 136, 118, 133, 111, 120, 143, 130, 121, 131, 131, 135, 89, 134, 122, 131, 139, 118, 111, 119, 130, 157, 124, 136, 124, 135, 116, 117, 146, 138, 137, 124, 106, 131, 125, 119, 132, 113, 144, 109, 109, 122, 134, 108, 120, 131, 125, 100, 123, 132, 118, 110, 120, 146, 119, 123, 130, 123, 114, 124, 128, 130, 135, 108, 125, 115, 122, 128, 137, 128, 119, 100, 128, 111, 112, 124, 109, 128, 138, 146, 118, 139, 128, 116, 140, 125, 102, 123, 110, 116, 118, 105, 125, 140, 131, 131, 134, 126, 142, 101, 129, 117, 137, 108, 153, 118, 96, 110, 120, 121, 117, 118, 116, 138, 117, 125, 128, 130, 129, 135, 117, 120, 124, 130, 127, 136, 141, 142, 118, 133, 168, 141, 114, 130, 118, 128, 126, 130, 137, 122, 125, 106, 133, 132, 142, 144, 125, 126, 126, 128, 116, 123, 124, 106, 132, 123, 128, 110, 102, 133, 119, 123, 117, 121, 124, 126, 140, 130, 149, 124, 145, 124, 137, 105, 139, 128, 148, 135, 139, 105, 126, 121, 129, 123, 138, 137, 121, 120, 139, 117, 116, 114, 123, 149, 144, 129, 133, 123, 132, 119, 147, 135, 142, 150, 94, 105, 116, 108, 131, 121, 116, 122, 112, 113, 120, 126, 106, 123, 115, 117, 118, 116, 126, 128, 128, 108, 123, 122, 127, 114, 145, 135, 141, 122, 119, 127, 126, 108, 125, 124, 118, 114, 120, 153, 137, 127, 124, 104, 120, 117, 116, 139, 127, 146, 115, 131, 132, 130, 128, 121, 131, 120, 139, 133, 121, 124, 109, 120, 108, 113, 135, 119, 122, 134, 129, 123, 129, 120, 109, 153, 119, 122, 127, 137, 120, 121, 138, 117, 120, 125, 117, 126, 113, 108, 128, 122, 115, 140, 120, 122, 131, 123, 123, 136, 101, 139, 128, 144, 134, 112, 132, 146, 112, 134, 125, 119, 132, 97, 98, 141, 93, 103, 139, 125, 107, 110, 111, 137, 128, 147, 147, 148, 124, 118, 121, 115, 139, 132, 120, 125, 119, 135, 123, 103, 118, 102, 125, 118, 135, 141, 102, 119, 136, 137, 120, 117, 116, 110, 131, 120, 125, 132, 144, 104, 119, 121, 114, 127, 127, 132, 96, 120, 147, 118, 111, 139, 131, 125, 146, 115, 115, 125, 127, 123, 115, 145, 141, 127, 121, 142, 128, 132, 138, 129, 127, 123, 112, 128, 106, 125, 110, 129, 141, 119, 132, 116, 133, 122, 115, 135, 122, 146, 114, 104, 128, 138, 130, 127, 121, 125, 133, 140, 139, 132, 109, 132, 103, 131, 130, 124, 120, 133, 122, 128, 117, 108, 113, 115, 107, 133, 118, 131, 130, 120, 127, 137, 118, 136, 134, 135, 146, 126, 133, 134, 132, 124, 115, 125, 113, 140, 123, 121, 134, 138, 134, 138, 149, 117, 138, 112, 126, 109, 112, 139, 139, 123, 122, 118, 123, 132, 122, 108, 141, 124, 120, 123, 131, 134, 131, 131, 99, 126, 124, 111, 115, 120, 122, 133, 137, 124, 127, 102, 135, 128, 136, 117, 129, 124, 127, 130, 138, 126, 133, 118, 114, 112, 121, 115, 109, 145, 134, 123, 124, 131, 113, 124, 131, 126, 128, 123, 143, 127, 122, 133, 131, 95, 137, 126, 117, 134, 158, 117, 115, 129, 112, 123, 150, 133, 128, 122, 127, 126, 119, 137, 106, 129, 119, 130, 129, 119, 120, 145, 138, 128, 154, 99, 98, 120, 99, 124, 135, 111, 112, 128, 119, 133, 138, 134, 135, 114, 106, 142, 132, 134, 107, 126, 132, 133, 130, 129, 127, 115, 154, 111, 139, 117, 125, 112, 125, 108, 147, 128, 126, 137, 137, 125, 129, 138, 129, 128, 122, 132, 139, 128, 108, 133, 116, 124, 110, 126, 96, 133, 135, 128, 116, 128, 143, 109, 124, 126, 127, 132, 126, 147, 111, 138, 134, 125, 132, 124, 122, 122, 126, 118, 124, 123, 132, 110, 122, 114, 123, 119, 133, 130, 126, 127, 131, 104, 113, 133, 126, 127, 125, 112, 127, 120, 122, 137, 115, 129, 151, 114, 119, 130, 147, 136, 100, 120, 122, 147, 116, 129, 150, 121, 121, 117, 122, 131, 120, 135, 132, 124, 143, 112, 142, 122, 135, 118, 133, 120, 135, 113, 120, 134, 128, 132, 123, 111, 115, 109, 124, 129, 143, 129, 108, 129, 111, 130, 112, 143, 120, 108, 114, 116, 133, 112, 126, 136, 137, 121, 141, 120, 134, 140, 125, 126, 110, 137, 113, 143, 129, 105, 133, 128, 117, 138, 107, 120, 129, 122, 123, 119, 129, 137, 136, 98, 116, 126, 123, 131, 120, 136, 120, 131, 140, 136, 133, 116, 120, 123, 117, 121, 116, 117, 128, 120, 130, 126, 111, 95, 126, 128, 136, 136, 108, 123, 116, 128, 119, 123, 113, 112, 121, 130, 117, 112, 89, 134, 126, 111, 126, 113, 122, 96, 89, 120, 129, 130, 138, 112, 106, 120, 133, 103, 114, 131, 102, 125, 117, 116, 122, 120, 138, 135, 128, 122, 147, 124, 149, 127, 134, 122, 126, 124, 113, 122, 118, 132, 127, 134, 126, 117, 143, 109, 115, 114, 126, 120, 119, 137, 139, 125, 126, 125, 116, 125, 124, 135, 132, 124, 127, 116, 143, 125, 137, 140, 122, 121, 126, 121, 122, 114, 131, 122, 126, 117, 127, 116, 127, 143, 128, 110, 121, 138, 134, 128, 130, 125, 118, 125, 120, 119, 126, 142, 125, 124, 114, 118, 124, 122, 122, 114, 128, 146, 126, 125, 114, 119, 135, 123, 151, 108, 125, 133, 136, 135, 133, 117, 129, 123, 160, 114, 130, 111, 135, 131, 142, 143, 130, 131, 132, 128, 135, 121, 118, 130, 136, 128, 124, 123, 113, 132, 136, 123, 115, 122, 118, 128, 130, 125, 109, 123, 135, 107, 134, 124, 123, 127, 115, 126, 107, 130, 128, 129, 116, 144, 123, 108, 128, 121, 136, 130, 119, 134, 143, 126, 117, 142, 140, 112, 137, 110, 128, 117, 147, 124, 132, 120, 138, 133, 133, 115, 122, 120, 124, 125, 129, 130, 128, 109, 128, 141, 106, 122, 141, 114, 129, 141, 123, 120, 135, 136, 100, 131, 130, 125, 147, 140, 114, 118, 116, 138, 111, 135, 121, 122, 133, 136, 143, 142, 120, 138, 147, 136, 119, 121, 107, 129, 134, 124, 141, 114, 107, 128, 111, 98, 124, 119, 133, 144, 135, 123, 134, 120, 120, 140, 123, 135, 118, 118, 125, 96, 113, 124, 134, 127, 128, 128, 119, 129, 133, 132, 110, 147, 127, 148, 117, 134, 139, 143, 121, 115, 121, 109, 120, 136, 138, 137, 123, 126, 138, 147, 140, 116, 123, 127, 131, 133, 136, 120, 131, 129, 136, 125, 126, 128, 127, 128, 145, 138, 103, 118, 141, 111, 112, 144, 119, 143, 117, 121, 125, 147, 132, 131, 105, 135, 133, 120, 115, 127, 108, 119, 120, 113, 106, 118, 119, 123, 115, 114, 123, 131, 106, 138, 144, 126, 112, 126, 128, 117, 112, 123, 123, 120, 141, 127, 124, 130, 119, 119, 134, 121, 88, 137, 135, 120, 116, 120, 122, 124, 138, 122, 123, 132, 124, 123, 111, 114, 121, 140, 127, 125, 116, 140, 145, 112, 143, 116, 127, 127, 119, 132, 153, 137, 127, 119, 125, 132, 110, 125, 122, 112, 143, 128, 129, 120, 108, 118, 122, 122, 123, 126, 124, 104, 117, 136, 116, 122, 124, 116, 136, 136, 127, 135, 129, 125, 120, 117, 128, 125, 122, 123, 120, 141, 108, 124, 125, 138, 125, 106, 128, 127, 127, 129, 124, 121, 127, 95, 116, 114, 145, 120, 119, 121, 108, 145, 125, 132, 137, 125, 129, 118, 142, 107, 121, 115, 127, 141, 155, 130, 142, 116, 137, 114, 117, 135, 135, 126, 113, 139, 119, 156, 127, 123, 123, 131, 123, 117, 120, 133, 112, 125, 106, 107, 127, 125, 123, 125, 130, 121, 133, 117, 116, 118, 119, 107, 137, 115, 137, 127, 105, 124, 132, 142, 131, 131, 141, 128, 127, 127, 105, 126, 117, 115, 113, 124, 115, 118, 156, 122, 119, 122, 127, 120, 133, 145, 107, 111, 117, 117, 145, 129, 107, 135, 128, 116, 118, 123, 119, 119, 104, 129, 138, 132, 128, 139, 131, 133, 117, 128, 128, 121, 133, 122, 125, 138, 120, 118, 128, 123, 133, 117, 133, 118, 133, 113, 122, 125, 144, 122, 124, 114, 118, 131, 131, 132, 107, 120, 121, 115, 126, 114, 135, 110, 111, 128, 104, 133, 116, 130, 124, 130, 136, 152, 119, 133, 119, 130, 140, 121, 145, 133, 120, 129, 137, 114, 131, 131, 122, 121, 126, 131, 150, 120, 107, 122, 104, 128, 134, 111, 140, 161, 121, 117, 108, 129, 119, 135, 148, 121, 109, 128, 122, 110, 146, 115, 133, 135, 119, 136, 131, 131, 126, 140, 121, 118, 131, 137, 102, 114, 118, 131, 119, 126, 127, 124, 126, 125, 136, 122, 127, 119, 137, 127, 108, 131, 127, 145, 113, 124, 116, 124, 119, 104, 99, 132, 122, 130, 152, 106, 137, 133, 134, 113, 125, 119, 115, 104, 119, 120, 123, 118, 118, 115, 117, 157, 140, 137, 116, 121, 118, 120, 126, 128, 111, 117, 145, 111, 125, 137, 139, 125, 136, 115, 130, 122, 129, 136, 140, 122, 117, 128, 110, 105, 122, 127, 117, 115, 120, 136, 125, 102, 125, 121, 133, 135, 115, 125, 121, 121, 132, 135, 116, 128, 137, 123, 114, 137, 117, 138, 128, 126, 138, 104, 121, 134, 110, 115, 117, 128, 132, 121, 119, 113, 120, 126, 144, 138, 120, 115, 122, 128, 126, 125, 130, 120, 147, 120, 137, 140, 107, 125, 104, 136, 126, 114, 119, 140, 110, 114, 138, 109, 132, 145, 123, 145, 117, 114, 124, 122, 138, 135, 122, 122, 114, 143, 139, 112, 130, 147, 102, 128, 119, 89, 119, 108, 129, 115, 131, 123, 120, 110, 150, 141, 111, 134, 116, 111, 121, 131, 104, 142, 130, 123, 120, 127, 132, 119, 124, 108, 142, 129, 137, 145, 131, 129, 139, 119, 120, 151, 133, 119, 138, 115, 116, 153, 128, 116, 135, 130, 131, 115, 140, 125, 113, 113, 134, 133, 121, 137, 137, 120, 132, 132, 129, 123, 115, 136, 133, 138, 108, 124, 120, 123, 140, 110, 106, 150, 125, 127, 135, 152, 126, 134, 135, 115, 127, 117, 116, 126, 141, 120, 115, 128, 117, 125, 123, 121, 139, 116, 130, 145, 123, 128, 122, 133, 125, 143, 121, 124, 110, 150, 123, 135, 134, 133, 128, 119, 138, 138, 123, 144, 137, 109, 114, 139, 133, 121, 132, 119, 119, 117, 138, 106, 125, 115, 127, 123, 121, 135, 123, 118, 120, 121, 126, 134, 140, 131, 122, 152, 126, 113, 113, 120, 129, 134, 139, 139, 122, 124, 119, 103, 127, 122, 113, 129, 136, 135, 145, 125, 129, 124, 110, 125, 136, 131, 128, 128, 132, 126, 122, 124, 123, 105, 119, 101, 121, 127, 153, 114, 137, 128, 121, 123, 135, 131, 130, 114, 129, 122, 126, 129, 118, 135, 123, 123, 133, 112, 130, 132, 129, 115, 108, 120, 115, 117, 126, 103, 126, 134, 122, 128, 122, 125, 119, 126, 118, 111, 121, 122, 131, 113, 111, 137, 115, 123, 126, 110, 125, 124, 125, 110, 139, 125, 128, 138, 138, 111, 119, 111, 117, 130, 124, 117, 120, 120, 119, 129, 141, 125, 130, 157, 126, 125, 133, 128, 128, 136, 109, 126, 106, 129, 125, 129, 125, 129, 108, 132, 114, 120, 133, 105, 139, 118, 126, 97, 133, 145, 135, 138, 133, 134, 95, 124, 112, 123, 132, 133, 124, 144, 110, 111, 107, 131, 119, 136, 133, 109, 140, 132, 121, 130, 131, 125, 114, 132, 111, 157, 121, 111, 122, 128, 120, 132, 126, 126, 125, 145, 133, 134, 115, 130, 105, 124, 122, 108, 129, 119, 118, 128, 123, 109, 115, 136, 122, 139, 126, 130, 133, 128, 126, 107, 114, 141, 130, 130, 118, 122, 117, 107, 127, 126, 130, 128, 168, 115, 114, 157, 127, 112, 143, 118, 134, 112, 117, 123, 115, 130, 128, 116, 139, 132, 152, 132, 135, 128, 121, 112, 128, 128, 119, 130, 121, 118, 119, 124, 112, 132, 118, 116, 105, 126, 133, 128, 125, 132, 106, 119, 138, 135, 131, 118, 121, 118, 110, 141, 131, 145, 133, 140, 129, 124, 126, 114, 117, 147, 118, 123, 128, 116, 119, 130, 121, 123, 127, 112, 144, 146, 109, 130, 121, 127, 127, 132, 130, 117, 124, 119, 124, 130, 115, 110, 140, 121, 123, 130, 118, 119, 117, 116, 124, 119, 118, 148, 125, 123, 124, 124, 115, 111, 118, 115, 136, 118, 119, 120, 111, 132, 110, 131, 114, 129, 119, 141, 123, 131, 120, 115, 134, 134, 110, 118, 105, 139, 114, 128, 108, 112, 129, 143, 112, 132, 113, 112, 123, 115, 123, 129, 131, 120, 128, 125, 105, 144, 101, 134, 122, 114, 125, 134, 121, 124, 118, 129, 124, 131, 114, 135, 118, 119, 132, 114, 130, 107, 119, 115, 121, 125, 113, 126, 111, 131, 135, 127, 125, 135, 137, 135, 138, 131, 133, 123, 132, 116, 119, 141, 113, 107, 130, 139, 118, 123, 127, 124, 122, 136, 124, 119, 115, 119, 116, 130, 116, 120, 128, 145, 113, 133, 128, 113, 113, 137, 114, 109, 149, 124, 125, 122, 118, 118, 129, 119, 114, 131, 119, 122, 133, 134, 139, 130, 114, 130, 127, 131, 131, 123, 131, 130, 123, 132, 132, 138, 131, 120, 124, 122, 125, 107, 122, 132, 138, 116, 155, 142, 134, 123, 117, 126, 135, 136, 110, 116, 118, 118, 142, 132, 127, 142, 141, 130, 115, 126, 136, 148, 127, 140, 140, 132, 113, 108, 119, 125, 135, 135, 137, 141, 113, 116, 122, 119, 124, 121, 125, 131, 145, 116, 112, 130, 134, 133, 133, 129, 136, 125, 120, 98, 114, 136, 136, 116, 123, 119, 116, 127, 128, 93, 107, 103, 117, 119, 136, 114, 137, 118, 116, 133, 112, 130, 116, 129, 119, 125, 119, 126, 119, 128, 113, 122, 123, 109, 135, 141, 130, 119, 128, 123, 132, 124, 128, 112, 148, 125, 135, 120, 101, 128, 120, 107, 132, 128, 115, 110, 130, 107, 134, 117, 135, 125, 125, 136, 131, 103, 116, 136, 131, 119, 148, 125, 120, 114, 131, 122, 134, 133, 132, 117, 115, 127, 96, 121, 115, 138, 117, 121, 110, 102, 131, 126, 118, 112, 137, 109, 143, 110, 119, 122, 127, 144, 131, 138, 122, 118, 128, 127, 111, 117, 128, 105, 111, 120, 108, 128, 131, 126, 116, 106, 129, 123, 113, 127, 129, 121, 139, 125, 126, 120, 122, 129, 125, 132, 128, 120, 135, 121, 109, 116, 145, 132, 124, 108, 133, 129, 128, 109, 129, 134, 130, 109, 114, 114, 132, 137, 117, 119, 103, 132, 127, 121, 110, 124, 135, 135, 124, 140, 117, 122, 141, 141, 130, 114, 139, 122, 123, 124, 125, 129, 124, 126, 123, 117, 148, 127, 125, 123, 139, 127, 133, 117, 118, 125, 130, 122, 133, 119, 111, 126, 125, 120, 121, 126, 129, 124, 121, 124, 139, 124, 128, 105, 113, 114, 126, 121, 123, 106, 137, 135, 125, 127, 116, 136, 126, 127, 125, 113, 116, 125, 131, 128, 142, 106, 130, 122, 135, 124, 145, 120, 129, 137, 152, 133, 132, 132, 125, 139, 131, 137, 109, 121, 134, 120, 130, 133, 146, 135, 120, 115, 109, 143, 137, 127, 121, 136, 148, 133, 140, 116, 119, 126, 125, 112, 121, 143, 131, 122, 118, 139, 136, 135, 113, 128, 126, 108, 125, 132, 125, 121, 104, 119, 118, 109, 125, 138, 129, 132, 121, 128, 129, 102, 106, 107, 115, 137, 125, 118, 115, 130, 117, 121, 105, 115, 129, 135, 126, 123, 117, 140, 130, 129, 121, 131, 122, 136, 127, 132, 153, 117, 120, 120, 132, 120, 105, 138, 144, 126, 141, 135, 127, 104, 142, 125, 120, 126, 119, 115, 119, 123, 107, 127, 120, 113, 124, 119, 118, 138, 104, 124, 131, 128, 121, 137, 132, 133, 110, 123, 144, 117, 143, 128, 118, 131, 126, 132, 143, 131, 118, 132, 139, 114, 120, 138, 111, 114, 119, 132, 135, 134, 137, 124, 132, 123, 112, 108, 129, 132, 130, 124, 123, 144, 124, 117, 140, 131, 131, 130, 124, 115, 130, 129, 160, 129, 114, 124, 124, 126, 128, 114, 127, 116, 128, 127, 131, 139, 140, 138, 118, 118, 115, 131, 135, 122, 123, 119, 131, 145, 129, 133, 114, 125, 118, 141, 120, 136, 126, 144, 129, 123, 129, 141, 154, 133, 128, 110, 118, 124, 114, 140, 119, 137, 120, 135, 129, 157, 113, 117, 126, 128, 132, 149, 137, 134, 111, 107, 112, 112, 127, 121, 116, 112, 108, 110, 117, 128, 135, 106, 132, 119, 125, 125, 108, 138, 134, 130, 136, 131, 119, 124, 136, 135, 120, 150, 133, 115, 137, 111, 118, 123, 129, 125, 102, 137, 113, 135, 110, 134, 128, 127, 125, 131, 123, 132, 109, 125, 126, 112, 119, 125, 142, 121, 109, 138, 115, 132, 132, 120, 136, 127, 109, 134, 125, 116, 124, 110, 119, 124, 123, 123, 128, 132, 118, 121, 114, 144, 131, 130, 125, 114, 137, 116, 129, 131, 132, 120, 115, 142, 126, 125, 129, 142, 129, 139, 118, 133, 123, 132, 133, 115, 117, 144, 140, 124, 133, 125, 120, 124, 131, 146, 136, 114, 130, 132, 124, 123, 130, 122, 118, 126, 139, 146, 119, 127, 142, 112, 120, 148, 125, 138, 124, 120, 114, 116, 127, 108, 143, 123, 129, 119, 119, 142, 119, 111, 123, 156, 110, 130, 118, 127, 131, 121, 114, 119, 126, 125, 143, 116, 123, 118, 109, 110, 130, 105, 127, 138, 141, 122, 120, 113, 111, 126, 139, 124, 135, 121, 136, 144, 140, 134, 114, 122, 135, 118, 118, 121, 129, 131, 102, 120, 127, 132, 144, 126, 144, 107, 100, 133, 129, 136, 110, 125, 132, 123, 130, 122, 131, 135, 130, 116, 117, 114, 121, 107, 132, 126, 122, 127, 119, 128, 125, 127, 125, 144, 143, 120, 126, 115, 106, 115, 133, 122, 137, 123, 124, 136, 125, 131, 126, 131, 135, 122, 122, 129, 128, 118, 139, 118, 118, 129, 136, 105, 112, 138, 131, 123, 125, 117, 130, 114, 128, 131, 121, 102, 122, 134, 129, 137, 122, 136, 118, 102, 115, 121, 111, 135, 116, 134, 133, 126, 121, 104, 120, 139, 119, 141, 122, 129, 138, 139, 120, 123, 136, 113, 115, 118, 116, 128, 135, 125, 125, 108, 136, 131, 117, 118, 134, 150, 114, 130, 129, 133, 116, 141, 127, 131, 131, 131, 111, 128, 122, 122, 118, 134, 120, 131, 125, 124, 126, 125, 121, 131, 117, 115, 108, 132, 123, 130, 122, 120, 135, 109, 136, 127, 143, 127, 120, 114, 121, 126, 129, 134, 130, 121, 136, 122, 124, 138, 133, 116, 132, 132, 112, 129, 116, 123, 132, 139, 119, 140, 128, 129, 127, 117, 119, 121, 130, 103, 116, 140, 106, 113, 100, 143, 122, 112, 131, 112, 119, 116, 132, 129, 129, 115, 124, 138, 121, 115, 115, 131, 126, 132, 137, 146, 115, 135, 119, 117, 123, 121, 134, 147, 128, 126, 123, 129, 124, 131, 146, 120, 150, 112, 115, 114, 110, 118, 114, 138, 125, 133, 137, 110, 129, 121, 121, 139, 102, 125, 140, 117, 121, 113, 132, 104, 113, 129, 132, 138, 113, 157, 117, 130, 127, 107, 119, 128, 104, 134, 120, 129, 120, 116, 118, 118, 137, 141, 107, 121, 123, 116, 99, 129, 137, 120, 111, 125, 126, 121, 125, 139, 140, 125, 130, 123, 128, 114, 129, 112, 118, 116, 114, 124, 127, 108, 109, 126, 143, 119, 124, 119, 127, 113, 134, 115, 131, 120, 130, 126, 131, 130, 117, 115, 115, 123, 141, 124, 122, 134, 136, 108, 133, 125, 113, 140, 134, 153, 128, 120, 140, 122, 129, 147, 123, 114, 126, 134, 117, 107, 146, 138, 141, 132, 135, 119, 128, 127, 146, 141, 142, 120, 118, 130, 131, 130, 122, 112, 126, 124, 123, 108, 129, 124, 110, 121, 120, 114, 126, 115, 136, 130, 116, 134, 128, 112, 111, 119, 126, 123, 137, 113, 130, 131, 135, 133, 123, 135, 126, 120, 129, 117, 137, 121, 114, 122, 137, 121, 123, 114, 139, 127, 128, 109, 123, 119, 97, 100, 128, 121, 111, 126, 126, 124, 118, 123, 133, 151, 132, 120, 121, 123, 132, 120, 137, 135, 110, 137, 128, 139, 127, 131, 125, 126, 133, 125, 137, 124, 122, 132, 111, 125, 116, 131, 137, 126, 118, 125, 138, 130, 132, 111, 133, 131, 107, 121, 123, 142, 115, 116, 112, 138, 126, 113, 133, 129, 122, 128, 120, 128, 121, 125, 125, 127, 125, 131, 123, 132, 136, 123, 122, 136, 120, 128, 115, 136, 110, 116, 129, 129, 131, 132, 110, 133, 119, 137, 113, 116, 136, 123, 118, 124, 136, 98, 112, 128, 120, 130, 119, 115, 128, 126, 116, 124, 126, 121, 117, 116, 121, 123, 140, 127, 124, 124, 115, 111, 120, 124, 137, 125, 130, 128, 116, 136, 140, 120, 130, 128, 113, 111, 124, 120, 129, 129, 113, 119, 141, 126, 127, 116, 128, 130, 112, 121, 133, 119, 106, 135, 116, 115, 129, 123, 129, 137, 126, 123, 132, 140, 137, 120, 133, 122, 122, 114, 129, 122, 128, 116, 119, 145, 136, 118, 125, 109, 130, 125, 129, 125, 125, 127, 117, 121, 127, 127, 135, 98, 141, 130, 123, 156, 137, 128, 109, 127, 128, 119, 127, 112, 115, 136, 118, 143, 113, 118, 118, 109, 107, 127, 145, 115, 142, 121, 124, 128, 117, 149, 108, 126, 116, 87, 124, 130, 133, 120, 117, 149, 140, 115, 125, 128, 116, 129, 122, 132, 130, 120, 119, 103, 139, 111, 130, 138, 136, 125, 117, 130, 114, 120, 123, 117, 127, 120, 123, 131, 120, 120, 123, 122, 133, 123, 112, 108, 133, 132, 126, 132, 136, 134, 133, 130, 114, 115, 125, 120, 129, 131, 127, 124, 127, 123, 111, 135, 112, 135, 130, 127, 127, 135, 131, 139, 115, 122, 118, 134, 143, 128, 129, 131, 123, 137, 140, 121, 109, 133, 111, 116, 115, 130, 129, 119, 102, 136, 132, 119, 134, 113, 119, 114, 124, 124, 118, 118, 120, 141, 126, 126, 137, 138, 128, 131, 114, 136, 126, 145, 132, 127, 122, 142, 129, 140, 120, 130, 133, 127, 133, 119, 115, 111, 123, 107, 116, 140, 136, 129, 119, 132, 128, 128, 108, 110, 144, 122, 139, 126, 135, 128, 119, 119, 126, 113, 126, 131, 122, 107, 126, 136, 118, 140, 104, 131, 121, 113, 125, 123, 123, 125, 119, 154, 98, 112, 102, 122, 125, 138, 119, 113, 118, 136, 121, 135, 124, 120, 130, 117, 129, 133, 117, 132, 121, 139, 137, 130, 134, 128, 135, 127, 103, 127, 125, 124, 123, 126, 118, 125, 109, 127, 126, 125, 111, 125, 117, 131, 140, 142, 148, 126, 109, 133, 140, 111, 115, 127, 139, 122, 135, 120, 143, 137, 123, 115, 111, 134, 127, 135, 117, 137, 122, 131, 160, 129, 120, 124, 125, 132, 134, 142, 122, 110, 148, 122, 125, 130, 114, 117, 139, 123, 106, 138, 125, 124, 119, 125, 114, 104, 102, 144, 121, 119, 109, 139, 132, 117, 124, 127, 132, 121, 127, 124, 114, 134, 124, 107, 126, 131, 121, 122, 126, 117, 121, 126, 133, 134, 121, 133, 124, 127, 113, 128, 126, 145, 127, 124, 118, 155, 146, 110, 110, 129, 134, 114, 123, 132, 119, 145, 119, 109, 126, 147, 112, 105, 135, 116, 108, 120, 112, 130, 133, 112, 128, 118, 125, 130, 126, 130, 125, 118, 119, 139, 135, 152, 127, 125, 122, 124, 127, 120, 121, 122, 137, 123, 140, 111, 120, 120, 112, 122, 120, 140, 119, 115, 137, 118, 118, 117, 126, 150, 113, 125, 130, 119, 131, 136, 135, 136, 151, 120, 108, 120, 123, 119, 129, 124, 113, 126, 136, 138, 112, 118, 122, 125, 124, 116, 113, 124, 146, 122, 130, 136, 118, 122, 113, 121, 139, 127, 127, 129, 126, 145, 121, 136, 119, 135, 124, 116, 149, 117, 126, 113, 106, 144, 123, 133, 123, 111, 126, 120, 125, 126, 124, 115, 136, 123, 124, 122, 117, 106, 119, 122, 123, 130, 126, 117, 124, 121, 126, 117, 120, 117, 114, 125, 124, 121, 126, 104, 132, 130, 108, 117, 119, 127, 129, 154, 122, 133, 111, 123, 129, 131, 119, 131, 119, 119, 128, 122, 140, 108, 133, 123, 130, 147, 128, 116, 105, 126, 136, 144, 126, 125, 115, 137, 109, 136, 131, 112, 124, 130, 128, 120, 122, 121, 114, 113, 124, 112, 116, 105, 120, 134, 114, 107, 132, 107, 142, 123, 116, 112, 126, 127, 118, 128, 114, 146, 125, 132, 131, 133, 128, 125, 120, 122, 146, 138, 109, 126, 125, 126, 125, 115, 129, 114, 129, 121, 127, 126, 137, 106, 137, 127, 124, 153, 124, 125, 115, 127, 121, 130, 138, 121, 141, 126, 131, 126, 125, 130, 133, 131, 131, 128, 122, 122, 118, 114, 140, 114, 108, 116, 139, 140, 131, 127, 128, 123, 132, 132, 115, 116, 115, 120, 127, 136, 119, 120, 111, 143, 125, 143, 141, 133, 134, 111, 115, 112, 127, 149, 130, 129, 120, 128, 124, 128, 140, 129, 132, 122, 123, 136, 133, 128, 109, 113, 110, 124, 117, 131, 111, 117, 124, 130, 127, 141, 120, 122, 116, 127, 129, 121, 124, 131, 117, 145, 119, 126, 124, 116, 120, 115, 96, 112, 121, 115, 131, 110, 119, 136, 103, 123, 133, 120, 116, 138, 134, 131, 109, 118, 136, 120, 124, 112, 123, 129, 118, 113, 122, 119, 132, 142, 143, 130, 128, 128, 123, 123, 112, 125, 114, 147, 141, 127, 153, 144, 128, 124, 156, 118, 141, 136, 109, 131, 123, 122, 119, 113, 144, 129, 114, 114, 130, 135, 121, 126, 129, 113, 125, 127, 101, 116, 112, 129, 122, 112, 120, 137, 115, 140, 129, 115, 136, 121, 128, 103, 119, 145, 113, 131, 112, 116, 128, 119, 132, 122, 132, 117, 136, 121, 135, 126, 124, 115, 131, 140, 118, 113, 113, 114, 145, 117, 130, 119, 144, 141, 136, 116, 127, 146, 118, 110, 124, 154, 117, 124, 115, 116, 128, 127, 134, 133, 127, 134, 121, 133, 116, 119, 130, 140, 121, 142, 133, 142, 108, 130, 136, 125, 131, 99, 140, 111, 126, 130, 139, 111, 117, 118, 130, 128, 129, 127, 131, 118, 124, 107, 123, 139, 123, 112, 124, 125, 124, 113, 131, 136, 122, 135, 125, 107, 132, 101, 128, 134, 127, 128, 111, 123, 139, 125, 131, 130, 133, 142, 132, 128, 124, 134, 134, 134, 140, 123, 125, 135, 109, 113, 128, 135, 116, 126, 131, 134, 134, 128, 116, 142, 121, 120, 120, 123, 129, 119, 126, 130, 133, 125, 139, 131, 132, 138, 138, 127, 120, 132, 110, 113, 111, 145, 116, 130, 140, 135, 136, 118, 143, 119, 115, 117, 120, 127, 126, 127, 105, 142, 129, 134, 120, 120, 145, 127, 118, 115, 113, 149, 130, 116, 117, 129, 130, 116, 115, 146, 145, 127, 126, 111, 124, 134, 140, 133, 130, 97, 117, 151, 123, 115, 128, 108, 122, 127, 122, 132, 132, 134, 131, 134, 133, 105, 132, 103, 139, 132, 125, 155, 126, 116, 136, 117, 129, 132, 119, 113, 140, 123, 121, 115, 151, 111, 120, 121, 122, 125, 138, 95, 133, 125, 135, 123, 113, 131, 136, 145, 136, 128, 123, 123, 142, 110, 131, 143, 134, 141, 123, 110, 139, 130, 98, 154, 114, 116, 133, 126, 126, 121, 134, 125, 147, 141, 126, 132, 116, 99, 107, 122, 124, 147, 115, 121, 125, 134, 122, 126, 98, 102, 132, 126, 118, 117, 140, 127, 125, 115, 132, 115, 127, 131, 133, 128, 140, 132, 118, 115, 136, 133, 137, 104, 130, 127, 124, 114, 115, 128, 128, 111, 120, 119, 132, 118, 138, 127, 132, 119, 133, 114, 110, 101, 125, 123, 137, 126, 126, 127, 132, 117, 127, 125, 110, 131, 126, 109, 122, 118, 128, 130, 122, 128, 146, 137, 111, 116, 123, 126, 134, 130, 110, 125, 129, 139, 136, 127, 134, 141, 123, 133, 108, 123, 130, 134, 111, 129, 133, 129, 117, 136, 119, 112, 120, 131, 125, 105, 124, 121, 121, 125, 134, 119, 124, 137, 117, 126, 131, 117, 121, 130, 143, 142, 128, 121, 131, 113, 136, 132, 129, 124, 129, 126, 126, 130, 121, 135, 121, 124, 124, 113, 141, 108, 121, 118, 137, 101, 121, 125, 128, 124, 132, 143, 134, 129, 112, 123, 118, 117, 137, 136, 141, 124, 111, 121, 125, 116, 142, 116, 118, 117, 130, 151, 114, 130, 128, 132, 116, 122, 133, 133, 134, 117, 126, 116, 114, 129, 130, 143, 143, 127, 129, 132, 123, 133, 112, 119, 132, 129, 103, 127, 125, 118, 124, 130, 124, 118, 130, 117, 139, 118, 123, 130, 127, 137, 141, 127, 136, 123, 132, 155, 129, 132, 122, 103, 119, 108, 115, 144, 127, 131, 106, 131, 113, 138, 126, 113, 136, 129, 112, 104, 127, 134, 127, 140, 132, 133, 130, 139, 110, 114, 122, 112, 126, 120, 127, 119, 132, 127, 141, 110, 123, 136, 129, 143, 120, 141, 115, 126, 114, 128, 110, 119, 124, 130, 128, 138, 138, 129, 128, 114, 135, 124, 118, 116, 133, 130, 162, 122, 117, 133, 115, 128, 131, 123, 122, 137, 135, 124, 116, 117, 132, 113, 137, 141, 120, 139, 126, 122, 139, 114, 141, 143, 145, 126, 123, 127, 106, 140, 109, 117, 112, 116, 135, 105, 138, 134, 138, 124, 127, 126, 120, 128, 141, 109, 122, 121, 112, 130, 124, 131, 115, 118, 136, 132, 124, 113, 125, 127, 133, 121, 141, 121, 122, 119, 132, 149, 141, 125, 125, 150, 122, 112, 132, 125, 145, 134, 122, 129, 135, 143, 124, 127, 111, 119, 109, 115, 110, 127, 136, 108, 125, 142, 132, 115, 129, 123, 128, 130, 105, 113, 114, 128, 121, 147, 110, 128, 110, 133, 125, 125, 137, 145, 136, 115, 120, 142, 126, 127, 121, 127, 118, 127, 138, 116, 121, 125, 125, 146, 142, 129, 104, 129, 142, 112, 108, 142, 123, 142, 119, 118, 113, 128, 115, 129, 125, 118, 123, 127, 128, 116, 128, 136, 129, 135, 152, 119, 131, 123, 124, 125, 128, 123, 152, 136, 129, 126, 135, 117, 108, 128, 148, 115, 137, 135, 132, 129, 137, 125, 137, 117, 145, 120, 134, 119, 133, 125, 114, 115, 124, 129, 138, 117, 99, 134, 115, 132, 123, 123, 123, 136, 105, 128, 126, 133, 137, 128, 120, 110, 122, 125, 121, 121, 149, 132, 125, 125, 131, 135, 127, 138, 117, 137, 122, 137, 141, 124, 129, 124, 114, 133, 150, 126, 125, 121, 130, 140, 142, 152, 133, 122, 116, 127, 128, 121, 139, 136, 122, 116, 134, 119, 144, 139, 128, 130, 137, 107, 152, 126, 139, 140, 125, 120, 130, 136, 114, 145, 136, 132, 130, 133, 116, 117, 119, 119, 140, 138, 127, 127, 132, 118, 148, 119, 128, 127, 132, 132, 135, 130, 127, 131, 107, 118, 145, 136, 113, 133, 124, 104, 134, 113, 109, 137, 129, 122, 120, 143, 98, 121, 137, 113, 140, 106, 138, 130, 132, 122, 132, 120, 124, 121, 139, 103, 124, 129, 120, 124, 118, 131, 116, 128, 133, 135, 138, 128, 120, 118, 127, 123, 126, 126, 133, 118, 134, 114, 123, 117, 114, 124, 107, 144, 128, 133, 131, 146, 126, 115, 130, 115, 111, 113, 142, 134, 136, 118, 123, 113, 123, 123, 137, 129, 135, 132, 117, 130, 120, 108, 142, 131, 123, 134, 118, 114, 128, 140, 133, 141, 116, 121, 132, 128, 118, 127, 136, 132, 108, 126, 124, 124, 134, 133, 141, 120, 134, 143, 135, 130, 116, 128, 112, 142, 133, 122, 116, 132, 121, 122, 121, 126, 138, 121, 115, 123, 118, 109, 119, 144, 126, 107, 131, 138, 128, 117, 127, 142, 127, 105, 121, 121, 127, 117, 129, 119, 132, 109, 115, 127, 143, 143, 126, 129, 114, 136, 131, 127, 136, 118, 110, 100, 125, 153, 127, 129, 110, 127, 121, 119, 136, 133, 108, 133, 141, 109, 127, 116, 123, 138, 122, 146, 123, 114, 137, 131, 123, 128, 149, 139, 129, 117, 133, 132, 136, 113, 115, 147, 129, 120, 130, 139, 104, 130, 121, 119, 132, 114, 130, 128, 127, 129, 124, 137, 142, 148, 130, 126, 113, 113, 123, 135, 131, 134, 138, 125, 131, 141, 123, 144, 129, 113, 131, 124, 143, 127, 128, 109, 119, 118, 124, 124, 130, 128, 114, 124, 128, 124, 127, 148, 135, 129, 124, 112, 135, 133, 133, 124, 143, 137, 124, 119, 120, 129, 141, 132, 129, 119, 132, 115, 123, 129, 109, 125, 127, 122, 110, 136, 140, 141, 145, 124, 140, 115, 131, 124, 133, 107, 125, 113, 135, 140, 125, 113, 133, 124, 119, 134, 123, 126, 116, 127, 125, 128, 127, 121, 135, 131, 121, 120, 146, 118, 139, 113, 139, 131, 125, 109, 123, 101, 132, 132, 137, 116, 119, 109, 126, 138, 126, 124, 121, 131, 142, 131, 122, 138, 124, 119, 104, 129, 126, 121, 118, 136, 119, 128, 121, 129, 140, 111, 115, 125, 141, 119, 124, 116, 145, 133, 127, 130, 120, 123, 115, 115, 128, 119, 126, 126, 141, 123, 131, 109, 129, 127, 130, 123, 126, 122, 123, 136, 123, 143, 130, 128, 134, 115, 112, 136, 122, 120, 133, 140, 121, 106, 115, 134, 129, 128, 153, 111, 130, 129, 135, 135, 134, 131, 134, 120, 120, 138, 136, 141, 117, 120, 134, 132, 141, 128, 123, 133, 112, 128, 119, 123, 136, 111, 131, 121, 131, 110, 107, 124, 154, 117, 137, 129, 122, 135, 141, 120, 116, 117, 119, 120, 116, 136, 116, 120, 133, 124, 136, 125, 130, 131, 126, 100, 128, 136, 149, 111, 116, 125, 109, 119, 136, 115, 126, 108, 117, 116, 138, 128, 122, 133, 122, 142, 118, 130, 130, 123, 118, 130, 117, 128, 116, 101, 129, 133, 136, 93, 134, 126, 123, 124, 110, 145, 134, 118, 118, 125, 126, 127, 117, 107, 104, 112, 114, 136, 131, 145, 140, 117, 120, 128, 134, 125, 125, 118, 134, 121, 123, 131, 126, 124, 91, 127, 133, 134, 144, 141, 127, 120, 134, 125, 127, 118, 110, 106, 137, 131, 118, 128, 128, 120, 119, 118, 122, 139, 123, 133, 114, 139, 130, 117, 116, 128, 121, 119, 102, 124, 118, 138, 115, 129, 141, 132, 132, 108, 117, 121, 141, 129, 107, 124, 114, 117, 120, 131, 128, 137, 139, 135, 143, 123, 133, 121, 130, 129, 136, 119, 140, 141, 131, 131, 137, 105, 131, 126, 122, 124, 123, 125, 116, 134, 136, 132, 122, 119, 132, 121, 119, 123, 128, 107, 117, 109, 122, 133, 122, 122, 106, 131, 128, 97, 115, 124, 138, 129, 125, 114, 120, 138, 146, 134, 133, 126, 112, 126, 118, 128, 128, 136, 122, 115, 117, 120, 154, 137, 141, 140, 117, 122, 140, 123, 128, 118, 135, 135, 136, 125, 116, 129, 130, 139, 126, 127, 124, 118, 103, 136, 128, 133, 120, 120, 114, 132, 128, 112, 130, 99, 138, 119, 113, 132, 120, 138, 136, 92, 109, 130, 134, 127, 119, 127, 115, 123, 114, 122, 124, 148, 126, 134, 126, 121, 128, 110, 122, 133, 133, 133, 120, 125, 131, 131, 115, 126, 125, 131, 127, 133, 133, 128, 126, 136, 120, 123, 107, 127, 151, 114, 116, 112, 96, 108, 145, 106, 115, 146, 126, 135, 127, 115, 131, 127, 131, 122, 122, 123, 113, 128, 116, 132, 115, 127, 127, 148, 127, 105, 127, 119, 143, 113, 115, 114, 117, 120, 123, 117, 113, 106, 101, 134, 138, 108, 126, 125, 126, 134, 107, 126, 114, 117, 121, 112, 123, 115, 106, 124, 122, 112, 121, 120, 127, 117, 101, 135, 132, 130, 118, 120, 135, 120, 132, 119, 116, 136, 128, 124, 117, 137, 115, 123, 128, 125, 128, 120, 115, 125, 124, 115, 112, 120, 127, 119, 129, 138, 118, 116, 127, 117, 133, 139, 130, 131, 124, 136, 124, 129, 125, 125, 135, 141, 128, 118, 129, 128, 133, 116, 109, 135, 124, 123, 116, 119, 114, 126, 123, 124, 142, 123, 133, 111, 104, 112, 128, 129, 127, 109, 122, 119, 117, 115, 134, 123, 146, 113, 141, 133, 132, 115, 106, 122, 126, 123, 133, 105, 115, 119, 122, 124, 138, 117, 121, 125, 99, 138, 119, 129, 130, 122, 107, 136, 113, 108, 127, 109, 126, 128, 131, 119, 141, 126, 119, 119, 118, 133, 121, 105, 123, 158, 118, 123, 124, 116, 126, 135, 139, 104, 111, 110, 130, 111, 119, 133, 120, 132, 134, 129, 118, 116, 112, 127, 116, 130, 130, 132, 127, 128, 124, 134, 153, 131, 130, 128, 136, 146, 123, 143, 122, 133, 135, 123, 125, 121, 107, 135, 113, 108, 136, 132, 109, 113, 139, 127, 128, 116, 129, 123, 114, 133, 113, 137, 134, 101, 126, 122, 140, 126, 135, 128, 131, 118, 120, 124, 123, 138, 127, 131, 116, 114, 115, 119, 120, 110, 132, 143, 126, 115, 130, 132, 127, 125, 115, 115, 133, 136, 111, 114, 128, 150, 129, 112, 116, 109, 142, 143, 126, 103, 130, 126, 142, 150, 116, 117, 141, 124, 122, 125, 128, 146, 115, 118, 129, 128, 122, 138, 122, 141, 116, 121, 124, 125, 133, 145, 112, 133, 116, 134, 129, 139, 128, 130, 126, 135, 107, 119, 124, 125, 139, 129, 129, 133, 110, 143, 109, 127, 117, 135, 94, 117, 124, 119, 132, 148, 124, 118, 124, 128, 116, 128, 106, 121, 122, 120, 108, 127, 121, 126, 126, 126, 134, 124, 144, 111, 136, 142, 155, 120, 121, 148, 102, 148, 125, 115, 143, 121, 126, 121, 121, 139, 116, 122, 131, 118, 139, 127, 123, 144, 123, 140, 121, 144, 122, 124, 139, 117, 141, 122, 127, 106, 146, 135, 120, 102, 111, 130, 128, 126, 113, 120, 113, 137, 116, 119, 123, 109, 121, 123, 139, 122, 108, 144, 138, 125, 130, 118, 119, 138, 133, 117, 122, 129, 122, 131, 127, 104, 112, 135, 119, 123, 125, 126, 129, 126, 147, 123, 136, 134, 132, 129, 126, 115, 131, 107, 132, 131, 130, 126, 142, 128, 143, 124, 120, 125, 125, 135, 136, 118, 112, 140, 124, 113, 120, 126, 111, 117, 109, 140, 108, 126, 142, 124, 139, 129, 120, 131, 129, 116, 103, 128, 127, 137, 119, 138, 119, 146, 123, 124, 140, 121, 121, 153, 107, 110, 138, 122, 141, 122, 120, 118, 125, 126, 126, 133, 125, 116, 124, 111, 127, 113, 114, 123, 114, 118, 123, 124, 125, 124, 119, 135, 123, 140, 123, 136, 142, 108, 125, 108, 130, 106, 119, 123, 104, 130, 120, 125, 130, 115, 121, 121, 127, 119, 115, 105, 139, 112, 121, 118, 110, 135, 104, 124, 127, 128, 124, 139, 119, 119, 122, 152, 122, 113, 129, 115, 124, 131, 115, 153, 118, 122, 132, 136, 130, 129, 125, 135, 127, 133, 117, 117, 123, 118, 137, 146, 112, 128, 133, 137, 130, 134, 126, 114, 137, 118, 140, 91, 129, 117, 107, 122, 116, 123, 126, 125, 120, 127, 103, 124, 130, 138, 122, 132, 132, 119, 113, 129, 135, 133, 122, 153, 126, 102, 100, 105, 105, 125, 118, 131, 140, 137, 119, 113, 132, 112, 136, 125, 121, 126, 126, 120, 130, 133, 107, 129, 129, 117, 126, 124, 111, 107, 139, 136, 123, 124, 127, 120, 123, 110, 122, 134, 137, 128, 119, 130, 135, 121, 136, 112, 110, 129, 127, 132, 135, 115, 107, 120, 120, 129, 135, 127, 127, 119, 125, 125, 113, 125, 132, 120, 121, 115, 115, 132, 103, 110, 133, 137, 123, 118, 147, 142, 114, 127, 123, 119, 137, 112, 110, 136, 109, 123, 125, 128, 134, 128, 137, 113, 135, 134, 120, 117, 125, 129, 107, 127, 135, 123, 113, 130, 113, 109, 119, 159, 141, 121, 111, 115, 146, 126, 119, 144, 121, 136, 125, 133, 121, 109, 115, 121, 141, 135, 118, 119, 108, 132, 120, 127, 129, 128, 121, 135, 113, 130, 138, 138, 122, 123, 119, 139, 136, 123, 121, 114, 122, 138, 129, 121, 144, 125, 144, 138, 115, 134, 147, 131, 128, 106, 115, 115, 132, 132, 132, 131, 153, 122, 119, 140, 142, 123, 131, 127, 131, 142, 122, 110, 118, 125, 112, 132, 119, 136, 114, 120, 128, 140, 131, 127, 125, 125, 122, 115, 119, 125, 130, 101, 124, 121, 118, 127, 132, 115, 114, 144, 137, 140, 106, 147, 111, 144, 124, 126, 115, 125, 130, 112, 121, 114, 137, 126, 149, 149, 108, 110, 110, 118, 124, 115, 148, 143, 123, 122, 142, 125, 127, 123, 114, 125, 121, 122, 127, 123, 141, 123, 143, 118, 114, 132, 134, 109, 127, 132, 120, 127, 126, 109, 126, 121, 118, 118, 143, 125, 118, 129, 128, 107, 124, 117, 129, 106, 94, 128, 120, 125, 109, 147, 114, 125, 111, 130, 127, 148, 130, 118, 136, 128, 112, 125, 118, 115, 125, 122, 126, 125, 120, 122, 111, 117, 136, 125, 128, 116, 123, 122, 131, 127, 132, 117, 131, 119, 127, 131, 111, 106, 126, 118, 125, 107, 123, 137, 126, 122, 109, 123, 126, 142, 140, 142, 126, 129, 138, 119, 114, 132, 140, 124, 130, 126, 110, 119, 116, 114, 109, 117, 127, 104, 124, 139, 127, 121, 120, 147, 109, 130, 112, 122, 122, 118, 132, 114, 128, 109, 117, 130, 141, 126, 115, 137, 129, 131, 154, 122, 128, 132, 126, 120, 115, 117, 121, 124, 123, 115, 133, 124, 117, 134, 128, 125, 124, 118, 120, 133, 127, 132, 118, 103, 113, 123, 130, 132, 126, 109, 120, 129, 121, 121, 111, 136, 135, 131, 123, 135, 122, 115, 124, 132, 119, 120, 143, 113, 150, 124, 124, 125, 134, 110, 138, 134, 119, 122, 95, 124, 105, 141, 133, 135, 125, 115, 112, 112, 132, 116, 139, 118, 116, 134, 120, 123, 147, 136, 115, 127, 140, 125, 138, 120, 136, 139, 119, 141, 129, 120, 139, 124, 103, 111, 156, 114, 123, 112, 133, 129, 108, 142, 142, 132, 129, 141, 114, 103, 133, 133, 123, 120, 138, 128, 106, 125, 132, 127, 110, 128, 118, 137, 109, 127, 118, 122, 120, 127, 125, 129, 136, 138, 147, 134, 126, 128, 117, 127, 140, 115, 117, 121, 126, 124, 133, 138, 122, 111, 118, 126, 123, 125, 112, 127, 122, 121, 108, 134, 131, 119, 122, 123, 100, 126, 135, 136, 128, 118, 132, 149, 121, 119, 122, 137, 139, 138, 149, 124, 124, 137, 130, 121, 127, 121, 120, 126, 117, 134, 123, 142, 138, 116, 107, 126, 122, 140, 120, 130, 135, 139, 127, 121, 118, 134, 131, 123, 128, 135, 133, 123, 136, 131, 122, 113, 124, 123, 120, 133, 124, 122, 119, 138, 118, 131, 127, 116, 112, 115, 118, 129, 123, 138, 123, 135, 123, 128, 144, 124, 133, 117, 132, 114, 149, 129, 116, 129, 125, 137, 140, 128, 129, 116, 130, 133, 118, 114, 143, 121, 85, 110, 138, 133, 125, 121, 128, 115, 130, 126, 126, 134, 136, 128, 130, 128, 144, 121, 123, 132, 116, 134, 130, 137, 116, 125, 117, 133, 113, 140, 137, 127, 115, 112, 133, 121, 123, 142, 109, 144, 117, 133, 117, 128, 114, 116, 123, 118, 127, 121, 138, 118, 129, 116, 118, 138, 121, 144, 127, 117, 119, 122, 138, 122, 112, 123, 122, 150, 126, 125, 121, 139, 125, 134, 135, 137, 115, 126, 121, 123, 120, 126, 132, 124, 116, 136, 129, 124, 127, 140, 118, 103, 137, 118, 136, 130, 124, 142, 124, 129, 116, 124, 125, 112, 121, 131, 147, 110, 122, 123, 123, 132, 112, 124, 123, 136, 131, 121, 134, 117, 118, 132, 118, 106, 130, 136, 120, 140, 131, 127, 121, 126, 128, 111, 146, 134, 108, 116, 129, 122, 120, 113, 118, 115, 117, 122, 133, 134, 129, 122, 120, 140, 147, 123, 120, 128, 124, 115, 119, 114, 146, 130, 125, 106, 138, 121, 128, 124, 114, 129, 120, 118, 108, 125, 124, 123, 119, 141, 147, 113, 126, 139, 132, 119, 120, 125, 133, 130, 152, 117, 122, 117, 144, 130, 118, 121, 128, 140, 123, 112, 107, 121, 124, 133, 128, 131, 123, 120, 138, 122, 144, 143, 134, 113, 126, 137, 133, 122, 129, 136, 128, 137, 111, 120, 128, 134, 136, 116, 107, 122, 117, 121, 122, 117, 119, 113, 123, 118, 126, 115, 131, 139, 118, 133, 125, 122, 109, 127, 145, 129, 137, 119, 116, 133, 142, 111, 134, 112, 130, 133, 108, 127, 118, 131, 119, 137, 134, 136, 108, 116, 104, 120, 112, 125, 122, 133, 125, 102, 124, 118, 127, 129, 133, 126, 123, 134, 115, 141, 146, 138, 115, 127, 133, 110, 145, 117, 134, 115, 131, 123, 129, 130, 121, 110, 147, 113, 122, 124, 135, 127, 149, 135, 123, 133, 120, 130, 122, 118, 124, 129, 121, 108, 150, 125, 121, 135, 103, 124, 129, 137, 109, 118, 122, 135, 125, 130, 127, 132, 127, 125, 122, 130, 120, 141, 118, 144, 125, 132, 135, 121, 115, 129, 127, 119, 140, 129, 118, 121, 134, 139, 122, 127, 128, 113, 123, 118, 124, 104, 131, 129, 128, 121, 143, 128, 132, 121, 125, 125, 128, 132, 130, 117, 133, 139, 125, 129, 132, 122, 133, 129, 123, 139, 132, 113, 110, 132, 123, 113, 123, 129, 128, 114, 136, 130, 124, 134, 96, 120, 115, 115, 126, 121, 115, 129, 115, 128, 146, 117, 134, 150, 121, 118, 124, 126, 125, 139, 124, 126, 121, 121, 118, 105, 106, 128, 127, 126, 119, 129, 136, 119, 106, 123, 139, 110, 125, 130, 120, 112, 135, 138, 127, 141, 113, 123, 131, 131, 129, 112, 116, 131, 128, 125, 136, 133, 132, 136, 130, 125, 140, 137, 144, 139, 117, 122, 104, 127, 99, 117, 125, 131, 125, 125, 119, 130, 123, 107, 157, 130, 133, 144, 131, 115, 123, 132, 119, 137, 130, 117, 113, 110, 122, 124, 119, 141, 141, 126, 115, 120, 115, 118, 110, 140, 119, 131, 124, 130, 115, 116, 123, 137, 126, 123, 122, 117, 120, 140, 128, 119, 116, 121, 134, 119, 117, 113, 133, 127, 131, 123, 130, 124, 123, 122, 142, 114, 127, 126, 133, 128, 139, 132, 130, 125, 113, 126, 129, 109, 130, 124, 126, 122, 139, 144, 136, 117, 115, 132, 142, 135, 125, 126, 118, 133, 109, 110, 121, 145, 128, 127, 134, 122, 147, 125, 134, 126, 130, 116, 129, 116, 117, 134, 138, 139, 131, 118, 130, 113, 132, 122, 117, 116, 125, 127, 137, 141, 109, 130, 131, 122, 135, 120, 132, 117, 130, 133, 116, 121, 111, 129, 123, 143, 129, 137, 142, 127, 123, 116, 121, 130, 126, 124, 128, 132, 117, 116, 120, 133, 117, 130, 129, 104, 147, 121, 126, 117, 123, 125, 132, 113, 128, 111, 147, 125, 127, 129, 122, 124, 129, 120, 142, 129, 126, 128, 113, 123, 113, 114, 101, 127, 116, 123, 118, 126, 131, 134, 135, 139, 128, 125, 118, 141, 118, 126, 124, 137, 125, 128, 141, 118, 104, 130, 117, 145, 144, 120, 121, 127, 124, 111, 121, 128, 145, 127, 122, 125, 135, 118, 134, 120, 128, 114, 115, 133, 131, 123, 118, 110, 118, 130, 128, 131, 124, 140, 117, 140, 130, 118, 127, 130, 118, 125, 118, 140, 136, 117, 130, 118, 122, 110, 114, 134, 119, 146, 123, 124, 130, 147, 124, 124, 114, 136, 115, 125, 116, 121, 137, 134, 122, 126, 120, 130, 109, 96, 105, 135, 119, 128, 110, 130, 105, 118, 105, 114, 120, 125, 121, 113, 142, 139, 121, 127, 126, 117, 123, 117, 117, 129, 110, 130, 142, 114, 142, 113, 144, 127, 139, 111, 108, 144, 136, 124, 129, 146, 141, 137, 146, 119, 129, 136, 133, 149, 125, 104, 135, 120, 135, 119, 123, 136, 141, 121, 111, 111, 117, 113, 116, 120, 135, 125, 109, 116, 128, 122, 131, 125, 138, 111, 130, 121, 136, 120, 114, 112, 124, 116, 110, 125, 121, 128, 113, 108, 128, 127, 115, 121, 122, 111, 126, 129, 123, 131, 122, 116, 134, 129, 124, 106, 122, 152, 127, 120, 122, 121, 150, 138, 137, 118, 119, 139, 144, 122, 118, 122, 130, 126, 135, 124, 116, 133, 140, 111, 131, 118, 123, 119, 113, 125, 136, 120, 126, 140, 125, 119, 121, 136, 122, 115, 120, 117, 132, 112, 129, 135, 126, 137, 130, 149, 137, 123, 120, 111, 131, 124, 119, 128, 128, 138, 131, 125, 109, 139, 121, 121, 126, 101, 112, 136, 128, 118, 122, 110, 138, 134, 127, 132, 128, 142, 126, 130, 123, 132, 159, 133, 121, 122, 132, 112, 103, 150, 129, 127, 119, 109, 119, 139, 117, 127, 126, 128, 110, 131, 126, 115, 123, 135, 119, 112, 126, 129, 125, 130, 140, 110, 136, 134, 118, 110, 128, 124, 124, 126, 140, 99, 122, 129, 132, 118, 124, 131, 130, 117, 143, 116, 114, 111, 126, 117, 119, 127, 131, 120, 120, 122, 138, 137, 116, 121, 144, 111, 111, 131, 121, 133, 122, 129, 114, 148, 130, 139, 133, 152, 121, 127, 124, 109, 131, 124, 144, 118, 129, 122, 123, 122, 128, 116, 129, 122, 133, 143, 118, 140, 144, 149, 124, 135, 119, 133, 119, 131, 113, 140, 121, 131, 122, 114, 108, 128, 112, 126, 121, 123, 111, 131, 119, 122, 114, 129, 116, 122, 132, 118, 133, 110, 126, 121, 125, 139, 110, 121, 122, 129, 129, 120, 103, 109, 119, 119, 133, 131, 116, 142, 124, 126, 118, 131, 122, 126, 116, 134, 142, 119, 117, 131, 120, 124, 128, 124, 126, 115, 109, 116, 132, 141, 123, 120, 114, 126, 124, 135, 127, 132, 106, 139, 131, 139, 126, 134, 149, 107, 119, 114, 105, 123, 118, 117, 124, 119, 117, 122, 115, 121, 143, 124, 121, 125, 111, 122, 139, 121, 122, 125, 125, 130, 127, 112, 110, 120, 132, 122, 133, 133, 131, 137, 130, 115, 116, 141, 112, 116, 118, 125, 113, 126, 118, 135, 110, 128, 132, 106, 131, 121, 121, 127, 118, 134, 135, 124, 147, 126, 126, 114, 135, 130, 111, 141, 138, 116, 131, 126, 125, 114, 120, 134, 125, 114, 121, 97, 119, 125, 129, 128, 127, 114, 141, 125, 125, 122, 117, 118, 130, 114, 133, 118, 133, 138, 127, 130, 116, 118, 136, 116, 116, 123, 128, 138, 135, 131, 118, 122, 123, 124, 126, 128, 106, 123, 122, 127, 125, 126, 115, 125, 150, 103, 118, 117, 107, 121, 126, 112, 149, 130, 122, 118, 114, 135, 136, 121, 115, 137, 118, 130, 131, 129, 123, 136, 117, 129, 127, 110, 127, 114, 138, 142, 125, 117, 117, 145, 122, 118, 113, 135, 128, 123, 131, 136, 130, 137, 122, 127, 126, 130, 132, 110, 121, 122, 117, 124, 120, 133, 136, 118, 136, 127, 123, 104, 111, 120, 115, 135, 138, 135, 125, 138, 114, 126, 126, 122, 132, 131, 119, 126, 106, 108, 129, 121, 119, 133, 122, 142, 127, 127, 128, 115, 133, 132, 106, 126, 117, 118, 141, 107, 126, 121, 145, 130, 134, 126, 149, 111, 128, 107, 128, 114, 112, 108, 119, 120, 125, 122, 111, 125, 125, 128, 131, 117, 126, 111, 134, 108, 130, 125, 122, 129, 106, 131, 102, 129, 133, 121, 114, 120, 141, 125, 132, 130, 154, 123, 124, 121, 118, 150, 125, 106, 128, 127, 121, 127, 126, 120, 118, 117, 140, 106, 127, 136, 119, 126, 130, 112, 129, 119, 125, 126, 136, 113, 129, 127, 126, 138, 138, 130, 116, 124, 118, 132, 137, 151, 122, 139, 115, 137, 136, 114, 121, 120, 131, 138, 134, 137, 128, 132, 120, 129, 133, 147, 108, 131, 127, 125, 133, 126, 128, 123, 128, 120, 108, 133, 116, 130, 130, 127, 131, 114, 154, 127, 123, 132, 112, 121, 128, 96, 111, 129, 150, 131, 122, 129, 124, 124, 128, 128, 119, 136, 115, 142, 137, 114, 105, 134, 115, 112, 121, 127, 110, 124, 124, 135, 120, 134, 127, 142, 134, 113, 129, 143, 161, 116, 118, 125, 114, 116, 115, 121, 126, 126, 125, 117, 129, 108, 137, 135, 112, 124, 143, 130, 138, 115, 129, 116, 139, 121, 146, 114, 126, 113, 139, 121, 120, 127, 115, 131, 124, 114, 123, 115, 132, 140, 122, 116, 110, 124, 119, 128, 125, 136, 116, 113, 128, 125, 123, 142, 115, 122, 141, 131, 115, 133, 133, 136, 123, 116, 113, 128, 132, 142, 144, 124, 102, 123, 110, 120, 123, 136, 113, 126, 132, 129, 116, 129, 126, 127, 114, 138, 141, 140, 123, 138, 131, 119, 118, 125, 122, 133, 135, 119, 115, 130, 138, 114, 145, 126, 135, 135, 118, 115, 133, 131, 127, 134, 111, 104, 121, 118, 121, 126, 123, 124, 118, 109, 148, 133, 124, 137, 113, 128, 139, 125, 115, 127, 129, 143, 106, 143, 125, 131, 135, 129, 139, 132, 132, 127, 128, 139, 136, 139, 126, 125, 134, 128, 119, 124, 108, 109, 116, 116, 134, 124, 123, 126, 135, 107, 134, 116, 142, 123, 127, 128, 137, 121, 131, 150, 135, 144, 123, 137, 126, 120, 124, 118, 142, 125, 136, 125, 125, 120, 119, 116, 126, 127, 139, 134, 129, 114, 120, 120, 127, 130, 125, 122, 119, 122, 132, 98, 118, 135, 130, 108, 137, 126, 123, 115, 132, 120, 126, 109, 113, 148, 120, 124, 135, 129, 124, 142, 114, 140, 123, 130, 115, 112, 126, 140, 132, 115, 131, 131, 129, 131, 140, 116, 133, 136, 122, 130, 114, 135, 133, 124, 124, 116, 123, 128, 127, 136, 136, 146, 119, 135, 127, 131, 118, 115, 118, 134, 117, 116, 117, 127, 117, 109, 133, 141, 138, 129, 120, 126, 131, 122, 117, 120, 138, 121, 129, 129, 120, 120, 119, 120, 116, 129, 124, 131, 126, 119, 127, 116, 129, 133, 121, 108, 128, 130, 127, 126, 127, 129, 127, 110, 124, 126, 116, 130, 146, 121, 126, 123, 109, 127, 126, 118, 145, 120, 115, 103, 121, 118, 118, 116, 124, 114, 134, 112, 133, 113, 130, 139, 115, 107, 122, 140, 127, 127, 121, 122, 129, 120, 119, 112, 112, 129, 132, 111, 124, 121, 124, 127, 101, 126, 125, 116, 135, 128, 119, 126, 123, 130, 128, 146, 131, 126, 143, 136, 120, 119, 136, 121, 122, 130, 132, 139, 129, 144, 119, 123, 127, 125, 106, 121, 128, 132, 119, 114, 123, 132, 130, 120, 120, 128, 115, 130, 114, 141, 136, 116, 123, 134, 128, 111, 117, 120, 131, 128, 128, 127, 112, 108, 141, 122, 117, 137, 122, 120, 122, 133, 120, 114, 137, 117, 128, 114, 110, 141, 120, 110, 123, 116, 123, 112, 130, 109, 116, 137, 118, 118, 125, 108, 136, 110, 113, 119, 130, 98, 125, 103, 119, 131, 127, 128, 127, 136, 114, 109, 132, 120, 105, 112, 133, 108, 129, 118, 120, 129, 130, 115, 133, 126, 152, 128, 122, 137, 114, 121, 114, 129, 131, 139, 121, 112, 127, 128, 126, 115, 119, 109, 127, 127, 131, 117, 133, 134, 112, 109, 131, 120, 132, 142, 114, 113, 122, 147, 139, 122, 132, 143, 151, 123, 126, 130, 130, 111, 121, 107, 120, 131, 114, 126, 121, 111, 122, 129, 121, 137, 136, 109, 125, 125, 90, 130, 116, 125, 126, 124, 144, 134, 116, 137, 125, 127, 116, 116, 128, 133, 116, 153, 132, 129, 136, 114, 123, 108, 126, 118, 145, 104, 125, 116, 110, 130, 105, 113, 136, 108, 130, 120, 121, 124, 109, 110, 133, 140, 102, 129, 136, 110, 136, 125, 134, 126, 108, 122, 130, 133, 120, 140, 119, 125, 119, 125, 125, 123, 125, 142, 116, 123, 114, 123, 118, 118, 122, 126, 119, 117, 112, 155, 110, 126, 143, 133, 116, 123, 130, 128, 121, 127, 131, 121, 121, 121, 128, 104, 140, 126, 153, 119, 123, 133, 117, 118, 126, 121, 128, 122, 116, 122, 116, 118, 94, 151, 131, 112, 131, 112, 126, 124, 135, 122, 136, 123, 117, 147, 119, 118, 132, 127, 119, 127, 111, 123, 128, 130, 127, 115, 132, 140, 117, 145, 113, 132, 115, 119, 130, 136, 122, 129, 124, 123, 139, 127, 115, 121, 130, 105, 123, 134, 136, 113, 132, 133, 134, 125, 123, 124, 110, 122, 135, 126, 133, 128, 123, 126, 135, 127, 103, 113, 128, 125, 127, 140, 116, 116, 118, 133, 136, 123, 122, 101, 118, 126, 122, 115, 120, 129, 115, 108, 124, 137, 142, 143, 123, 120, 119, 109, 130, 168, 120, 134, 133, 132, 105, 122, 131, 128, 129, 103, 106, 125, 132, 151, 134, 123, 133, 124, 129, 125, 102, 131, 125, 105, 115, 121, 130, 120, 134, 136, 133, 116, 133, 114, 129, 118, 127, 121, 128, 119, 111, 125, 112, 115, 138, 133, 127, 118, 124, 146, 125, 104, 119, 139, 127, 141, 127, 129, 127, 124, 124, 115, 120, 128, 153, 129, 133, 139, 135, 138, 134, 117, 120, 131, 132, 126, 127, 138, 124, 93, 122, 139, 118, 123, 140, 140, 127, 127, 120, 113, 125, 122, 117, 141, 109, 133, 125, 141, 130, 131, 129, 130, 129, 110, 130, 117, 111, 120, 123, 139, 120, 118, 127, 118, 133, 137, 124, 139, 122, 119, 123, 116, 118, 115, 120, 122, 117, 144, 137, 129, 138, 132, 124, 139, 130, 128, 118, 118, 130, 134, 112, 111, 124, 122, 111, 110, 139, 132, 130, 118, 123, 126, 121, 136, 123, 130, 150, 137, 160, 129, 126, 145, 128, 131, 120, 130, 126, 122, 112, 132, 153, 113, 126, 125, 126, 125, 137, 139, 135, 122, 130, 118, 123, 139, 123, 126, 118, 121, 119, 128, 122, 124, 129, 136, 124, 116, 127, 132, 119, 117, 120, 136, 111, 129, 122, 121, 128, 121, 125, 122, 126, 126, 123, 109, 115, 138, 109, 132, 149, 137, 138, 135, 129, 131, 116, 120, 133, 124, 119, 135, 135, 140, 115, 122, 121, 118, 125, 107, 142, 126, 140, 138, 119, 115, 113, 121, 109, 136, 128, 125, 138, 134, 123, 124, 126, 115, 119, 143, 123, 135, 132, 126, 135, 141, 124, 137, 103, 131, 130, 127, 134, 119, 128, 119, 119, 139, 115, 111, 121, 118, 122, 119, 129, 135, 135, 112, 121, 124, 151, 127, 130, 130, 119, 124, 114, 137, 126, 129, 146, 144, 111, 137, 132, 136, 111, 122, 124, 143, 120, 139, 115, 122, 122, 134, 120, 130, 140, 132, 137, 129, 118, 141, 119, 124, 130, 134, 120, 149, 138, 139, 128, 129, 115, 124, 133, 129, 121, 143, 130, 128, 122, 123, 133, 147, 134, 123, 113, 123, 116, 133, 121, 120, 145, 115, 125, 123, 108, 132, 120, 129, 117, 123, 125, 142, 127, 157, 115, 139, 125, 118, 123, 111, 127, 137, 115, 145, 112, 123, 127, 118, 125, 100, 127, 143, 115, 122, 124, 123, 139, 136, 121, 118, 122, 126, 134, 113, 132, 128, 120, 129, 117, 125, 133, 131, 125, 140, 133, 127, 127, 135, 117, 142, 125, 127, 118, 119, 134, 136, 115, 112, 142, 131, 114, 143, 120, 119, 112, 117, 128, 120, 132, 104, 115, 105, 129, 134, 114, 141, 125, 123, 116, 121, 113, 114, 114, 130, 122, 126, 112, 125, 120, 127, 130, 130, 111, 130, 133, 115, 131, 114, 116, 132, 131, 113, 135, 126, 133, 128, 111, 129, 123, 115, 130, 109, 130, 106, 128, 125, 117, 107, 121, 124, 115, 128, 135, 109, 118, 130, 130, 129, 121, 106, 126, 128, 134, 113, 144, 131, 122, 130, 133, 116, 128, 122, 119, 124, 116, 130, 122, 129, 128, 130, 132, 126, 118, 106, 124, 116, 129, 118, 130, 122, 139, 128, 127, 131, 140, 136, 139, 126, 119, 103, 122, 118, 143, 117, 111, 131, 118, 116, 115, 102, 132, 124, 125, 115, 119, 99, 126, 142, 124, 127, 113, 133, 116, 144, 120, 123, 142, 105, 120, 131, 133, 111, 122, 122, 130, 143, 142, 126, 119, 120, 142, 116, 121, 141, 122, 132, 118, 148, 133, 117, 106, 129, 115, 137, 136, 111, 142, 119, 123, 131, 136, 126, 115, 124, 122, 139, 130, 125, 139, 126, 117, 127, 126, 106, 127, 122, 124, 118, 115, 120, 121, 123, 130, 135, 132, 136, 120, 120, 122, 117, 130, 121, 113, 108, 127, 124, 142, 124, 124, 120, 112, 125, 133, 129, 134, 115, 118, 132, 122, 138, 126, 111, 116, 131, 135, 139, 142, 125, 122, 124, 118, 132, 135, 115, 129, 125, 133, 129, 138, 134, 132, 123, 124, 115, 129, 130, 120, 126, 138, 118, 137, 126, 120, 132, 130, 128, 123, 119, 145, 119, 126, 127, 130, 112, 144, 130, 125, 102, 137, 122, 118, 106, 127, 122, 135, 146, 130, 126, 137, 126, 132, 112, 125, 139, 121, 130, 154, 121, 139, 92, 114, 113, 120, 137, 146, 131, 131, 130, 121, 110, 129, 134, 122, 97, 122, 137, 139, 130, 144, 121, 134, 117, 121, 116, 120, 133, 115, 143, 119, 107, 128, 119, 138, 127, 135, 129, 127, 137, 133, 121, 110, 128, 133, 121, 112, 137, 108, 120, 118, 132, 107, 117, 124, 133, 136, 99, 124, 133, 122, 124, 121, 140, 125, 124, 128, 121, 129, 128, 114, 128, 142, 133, 115, 115, 119, 119, 119, 120, 119, 125, 129, 37, 120, 149, 116, 125, 125, 125, 109, 119, 153, 138, 137, 122, 129, 121, 130, 115, 133, 131, 137, 123, 118, 119, 122, 126, 109, 127, 112, 118, 132, 134, 121, 138, 133, 113, 115, 136, 123, 137, 135, 121, 125, 131, 117, 111, 115, 117, 129, 128, 134, 116, 127, 119, 116, 129, 123, 123, 121, 121, 137, 125, 122, 130, 139, 112, 126, 126, 120, 131, 120, 131, 134, 130, 136, 133, 124, 138, 115, 117, 125, 127, 120, 123, 131, 129, 118, 117, 115, 128, 120, 131, 92, 141, 115, 121, 129, 118, 113, 115, 110, 120, 143, 126, 118, 135, 120, 120, 121, 128, 117, 144, 134, 123, 130, 115, 115, 102, 130, 122, 129, 113, 107, 119, 130, 127, 140, 122, 133, 112, 128, 118, 133, 120, 129, 120, 130, 130, 127, 127, 135, 130, 130, 103, 133, 118, 108, 133, 128, 128, 116, 134, 138, 123, 125, 130, 124, 123, 137, 126, 127, 128, 128, 109, 133, 122, 120, 118, 131, 135, 115, 114, 120, 130, 113, 118, 131, 123, 139, 109, 127, 125, 133, 136, 147, 132, 127, 118, 130, 139, 135, 134, 119, 136, 113, 122, 149, 130, 119, 128, 122, 139, 129, 128, 109, 119, 112, 135, 113, 129, 131, 122, 133, 129, 110, 126, 119, 112, 128, 133, 124, 125, 110, 141, 118, 140, 148, 138, 132, 132, 115, 123, 138, 139, 124, 116, 117, 136, 134, 117, 130, 128, 141, 129, 130, 135, 121, 105, 143, 132, 131, 129, 110, 114, 123, 138, 131, 125, 133, 132, 120, 127, 130, 119, 145, 116, 121, 109, 131, 119, 137, 133, 126, 128, 116, 119, 116, 136, 134, 116, 133, 125, 157, 123, 132, 128, 130, 122, 120, 121, 134, 131, 108, 127, 127, 116, 122, 137, 134, 131, 126, 121, 138, 126, 114, 122, 131, 139, 129, 135, 111, 96, 134, 131, 124, 119, 136, 137, 121, 145, 127, 132, 120, 112, 118, 124, 113, 118, 119, 125, 117, 107, 128, 94, 118, 143, 123, 114, 110, 130, 140, 123, 113, 133, 146, 128, 115, 125, 133, 134, 108, 119, 127, 124, 128, 112, 131, 102, 133, 122, 134, 126, 144, 128, 120, 116, 129, 133, 126, 112, 131, 129, 136, 110, 109, 122, 111, 133, 135, 132, 133, 123, 133, 125, 122, 137, 117, 118, 116, 132, 126, 138, 122, 126, 126, 124, 127, 112, 137, 135, 113, 126, 128, 136, 137, 120, 133, 136, 119, 130, 121, 104, 143, 124, 116, 122, 145, 112, 131, 128, 117, 123, 134, 133, 116, 150, 130, 127, 127, 117, 135, 152, 125, 133, 127, 124, 133, 127, 139, 113, 114, 123, 114, 138, 118, 118, 139, 109, 126, 118, 125, 136, 127, 130, 137, 131, 136, 124, 140, 125, 135, 116, 124, 144, 119, 127, 128, 145, 114, 116, 116, 112, 136, 115, 133, 135, 125, 122, 135, 142, 127, 131, 131, 114, 114, 111, 126, 134, 123, 117, 133, 123, 138, 131, 144, 135, 126, 123, 127, 120, 137, 127, 128, 130, 123, 119, 138, 132, 125, 110, 136, 120, 124, 126, 133, 120, 118, 119, 114, 124, 132, 138, 122, 144, 115, 137, 113, 126, 130, 123, 122, 127, 133, 139, 114, 130, 119, 120, 136, 131, 122, 125, 128, 132, 129, 130, 129, 128, 114, 136, 132, 120, 132, 129, 128, 141, 118, 133, 127, 138, 125, 117, 127, 121, 119, 138, 118, 122, 119, 128, 113, 114, 90, 140, 121, 125, 117, 130, 114, 130, 126, 133, 127, 137, 115, 126, 124, 135, 134, 129, 134, 136, 124, 119, 130, 114, 122, 145, 113, 126, 136, 138, 129, 128, 123, 112, 126, 132, 122, 124, 131, 131, 110, 122, 121, 134, 133, 126, 129, 128, 123, 113, 128, 133, 116, 114, 115, 124, 122, 131, 138, 115, 127, 144, 128, 120, 148, 139, 127, 131, 127, 118, 136, 123, 135, 123, 125, 139, 119, 125, 133, 124, 125, 126, 131, 113, 132, 130, 121, 136, 123, 125, 124, 116, 131, 120, 105, 129, 120, 127, 102, 137, 130, 116, 124, 122, 124, 116, 128, 115, 102, 128, 130, 113, 98, 126, 138, 130, 116, 105, 146, 118, 139, 107, 135, 126, 129, 120, 133, 115, 144, 130, 106, 129, 119, 118, 129, 120, 134, 126, 92, 123, 136, 134, 119, 117, 122, 119, 137, 123, 132, 119, 128, 133, 107, 116, 155, 116, 114, 109, 131, 132, 124, 117, 144, 102, 137, 114, 134, 132, 124, 142, 115, 114, 136, 130, 120, 126, 121, 119, 120, 113, 124, 142, 122, 126, 121, 139, 105, 125, 123, 125, 133, 124, 147, 136, 148, 136, 113, 125, 113, 147, 129, 139, 125, 123, 119, 132, 128, 135, 121, 108, 126, 134, 115, 142, 114, 126, 124, 140, 122, 134, 112, 149, 119, 126, 131, 137, 132, 129, 142, 127, 121, 123, 131, 121, 127, 129, 122, 114, 116, 120, 120, 132, 128, 109, 134, 132, 122, 118, 118, 135, 119, 118, 123, 113, 130, 123, 126, 126, 124, 116, 112, 127, 143, 138, 123, 128, 118, 124, 122, 124, 104, 143, 112, 129, 121, 131, 127, 116, 110, 133, 111, 108, 124, 104, 113, 126, 140, 134, 105, 123, 97, 115, 106, 125, 127, 127, 127, 122, 125, 113, 122, 118, 114, 138, 117, 106, 106, 134, 136, 135, 115, 117, 133, 124, 137, 115, 128, 120, 118, 152, 126, 128, 117, 132, 108, 146, 116, 134, 122, 138, 133, 129, 119, 129, 105, 114, 131, 122, 112, 122, 119, 131, 127, 135, 115, 121, 108, 112, 135, 115, 120, 109, 134, 133, 132, 117, 124, 129, 130, 109, 120, 109, 122, 118, 138, 119, 105, 123, 130, 123, 126, 127, 115, 145, 115, 131, 113, 140, 130, 129, 134, 125, 128, 130, 136, 116, 140, 144, 131, 136, 134, 130, 109, 102, 147, 123, 126, 112, 115, 132, 126, 112, 117, 130, 118, 117, 130, 132, 132, 124, 134, 121, 127, 113, 125, 128, 108, 117, 133, 116, 127, 114, 122, 120, 116, 132, 127, 140, 124, 125, 118, 129, 119, 98, 131, 129, 126, 122, 120, 138, 126, 141, 142, 127, 128, 110, 128, 110, 151, 122, 129, 118, 134, 115, 130, 133, 113, 140, 120, 113, 101, 120, 127, 123, 130, 133, 125, 130, 122, 115, 124, 124, 112, 127, 135, 118, 134, 130, 132, 113, 125, 123, 134, 128, 152, 119, 137, 98, 120, 141, 123, 120, 130, 121, 124, 124, 110, 109, 123, 138, 132, 129, 132, 133, 116, 129, 146, 135, 116, 114, 127, 130, 129, 116, 144, 117, 103, 116, 138, 116, 100, 128, 131, 119, 120, 118, 139, 121, 131, 132, 119, 116, 128, 124, 115, 127, 103, 105, 123, 122, 121, 126, 124, 128, 124, 137, 116, 107, 127, 120, 117, 120, 133, 107, 131, 146, 117, 118, 128, 119, 136, 119, 121, 123, 150, 124, 138, 127, 118, 146, 133, 102, 105, 110, 126, 117, 149, 125, 151, 119, 131, 117, 126, 125, 125, 121, 115, 115, 116, 126, 130, 118, 120, 126, 123, 138, 100, 135, 107, 120, 135, 118, 133, 140, 124, 112, 126, 140, 122, 129, 138, 136, 146, 133, 124, 133, 138, 123, 133, 124, 121, 132, 121, 125, 118, 127, 123, 110, 115, 101, 119, 119, 129, 143, 130, 129, 125, 116, 133, 148, 117, 151, 120, 114, 122, 116, 125, 130, 127, 133, 124, 116, 139, 103, 122, 129, 129, 118, 128, 115, 123, 107, 116, 127, 136, 121, 138, 118, 137, 131, 126, 110, 137, 133, 134, 140, 129, 125, 130, 134, 129, 111, 140, 140, 149, 115, 138, 131, 104, 144, 135, 113, 132, 114, 145, 138, 113, 149, 129, 129, 121, 126, 134, 114, 129, 135, 132, 136, 120, 129, 128, 113, 135, 118, 133, 110, 129, 126, 120, 144, 134, 121, 132, 126, 141, 133, 154, 133, 130, 138, 132, 125, 130, 147, 134, 107, 119, 124, 122, 125, 128, 113, 142, 159, 122, 127, 112, 112, 111, 150, 143, 129, 122, 112, 133, 132, 143, 119, 140, 114, 120, 122, 127, 125, 137, 122, 134, 140, 120, 130, 111, 153, 130, 113, 127, 119, 119, 115, 121, 126, 107, 127, 130, 135, 127, 143, 119, 133, 122, 94, 111, 123, 111, 121, 123, 115, 126, 135, 134, 120, 115, 125, 112, 138, 142, 109, 118, 114, 123, 150, 139, 136, 118, 138, 144, 130, 129, 138, 118, 124, 115, 136, 123, 118, 124, 107, 143, 116, 133, 128, 125, 128, 119, 135, 120, 139, 119, 123, 120, 126, 137, 134, 108, 135, 117, 133, 132, 137, 130, 124, 132, 127, 149, 136, 127, 114, 130, 113, 130, 114, 120, 117, 114, 124, 122, 119, 139, 146, 116, 122, 122, 140, 130, 126, 126, 139, 115, 125, 128, 132, 125, 143, 120, 123, 130, 150, 123, 132, 113, 138, 128, 127, 121, 119, 121, 109, 127, 118, 126, 127, 132, 117, 155, 117, 128, 130, 116, 118, 125, 125, 127, 144, 130, 129, 127, 104, 130, 130, 106, 109, 115, 130, 131, 136, 130, 126, 128, 116, 110, 122, 127, 141, 138, 137, 123, 130, 119, 126, 124, 108, 121, 131, 126, 129, 134, 121, 126, 122, 117, 153, 138, 116, 134, 139, 143, 135, 129, 131, 124, 131, 116, 136, 122, 124, 133, 122, 140, 142, 112, 121, 131, 119, 132, 133, 134, 126, 109, 123, 136, 134, 130, 123, 133, 139, 124, 155, 141, 104, 114, 121, 119, 133, 116, 129, 129, 123, 132, 133, 120, 120, 120, 130, 161, 117, 131, 111, 117, 126, 101, 135, 129, 112, 136, 113, 155, 136, 137, 124, 110, 124, 133, 136, 125, 136, 126, 128, 115, 115, 110, 147, 100, 112, 126, 129, 116, 133, 123, 122, 130, 131, 142, 123, 135, 150, 125, 119, 124, 138, 141, 113, 143, 133, 133, 136, 124, 127, 113, 132, 138, 136, 110, 129, 115, 109, 116, 149, 136, 135, 130, 131, 135, 117, 136, 120, 111, 132, 140, 126, 110, 129, 153, 143, 126, 133, 118, 141, 124, 151, 112, 136, 113, 134, 131, 120, 144, 121, 116, 131, 130, 132, 120, 143, 135, 123, 123, 132, 108, 111, 143, 122, 133, 131, 111, 130, 140, 103, 115, 122, 125, 141, 131, 108, 122, 124, 134, 102, 116, 107, 105, 123, 124, 89, 111, 147, 121, 115, 110, 132, 122, 134, 132, 93, 111, 116, 132, 125, 123, 145, 133, 124, 129, 126, 122, 110, 112, 124, 133, 132, 138, 109, 129, 113, 116, 113, 129, 126, 128, 118, 126, 133, 126, 134, 136, 127, 131, 133, 123, 121, 122, 113, 123, 117, 123, 114, 119, 151, 149, 142, 125, 128, 123, 136, 115, 138, 153, 117, 133, 114, 115, 116, 120, 129, 140, 138, 120, 113, 128, 130, 123, 129, 141, 117, 129, 127, 118, 143, 118, 126, 138, 105, 98, 113, 130, 113, 126, 142, 139, 141, 108, 120, 129, 144, 110, 122, 142, 122, 119, 108, 125, 111, 124, 114, 139, 127, 135, 109, 137, 131, 119, 133, 134, 122, 136, 119, 140, 133, 122, 149, 103, 124, 135, 112, 143, 124, 123, 131, 135, 116, 158, 126, 117, 138, 120, 118, 116, 115, 143, 114, 115, 130, 129, 128, 131, 143, 140, 137, 128, 137, 120, 139, 128, 142, 139, 131, 118, 114, 139, 105, 136, 140, 121, 132, 122, 127, 128, 129, 120, 114, 139, 123, 121, 122, 131, 112, 129, 132, 116, 123, 114, 137, 116, 124, 134, 119, 142, 143, 111, 123, 127, 123, 126, 138, 131, 127, 115, 134, 118, 129, 136, 125, 121, 136, 119, 133, 140, 137, 122, 133, 135, 125, 107, 121, 123, 114, 112, 113, 134, 144, 127, 117, 141, 122, 119, 115, 121, 115, 129, 119, 99, 142, 136, 126, 117, 124, 117, 110, 134, 125, 116, 132, 141, 129, 143, 127, 125, 138, 137, 130, 109, 143, 133, 137, 126, 129, 114, 124, 110, 98, 129, 137, 129, 113, 128, 123, 131, 133, 114, 111, 133, 124, 128, 109, 140, 127, 132, 134, 135, 108, 128, 133, 113, 109, 111, 143, 115, 112, 154, 113, 117, 141, 127, 123, 125, 113, 120, 125, 134, 146, 122, 123, 144, 137, 117, 111, 134, 136, 108, 111, 129, 125, 124, 120, 120, 113, 126, 126, 108, 138, 148, 123, 118, 143, 110, 131, 114, 110, 131, 115, 141, 124, 138, 125, 127, 131, 122, 125, 113, 118, 117, 118, 126, 123, 144, 95, 128, 150, 120, 139, 105, 142, 111, 115, 116, 132, 119, 149, 119, 106, 121, 121, 130, 128, 117, 125, 124, 148, 107, 117, 122, 120, 114, 130, 131, 117, 130, 134, 132, 115, 118, 131, 126, 112, 123, 117, 131, 129, 133, 123, 139, 126, 120, 127, 114, 118, 134, 105, 118, 128, 122, 129, 103, 116, 127, 114, 147, 103, 131, 122, 119, 119, 141, 106, 114, 133, 118, 136, 108, 127, 140, 131, 128, 121, 117, 125, 110, 135, 113, 105, 120, 109, 142, 120, 133, 108, 143, 145, 131, 139, 144, 141, 132, 119, 129, 115, 140, 110, 120, 137, 139, 110, 128, 124, 126, 142, 106, 129, 122, 115, 135, 120, 118, 118, 127, 116, 116, 119, 128, 136, 147, 127, 130, 123, 130, 122, 115, 133, 132, 131, 133, 143, 143, 136, 132, 130, 122, 148, 130, 129, 116, 129, 132, 130, 111, 132, 116, 138, 116, 127, 138, 140, 135, 122, 112, 137, 116, 124, 117, 120, 130, 125, 136, 120, 129, 139, 119, 128, 133, 137, 137, 141, 124, 136, 129, 135, 119, 131, 134, 129, 124, 133, 130, 135, 123, 116, 122, 126, 125, 121, 129, 126, 118, 133, 129, 112, 139, 113, 114, 131, 109, 130, 116, 131, 134, 130, 125, 114, 120, 111, 136, 104, 122, 138, 117, 139, 118, 144, 137, 123, 119, 108, 131, 114, 123, 142, 133, 109, 129, 130, 120, 117, 113, 135, 126, 120, 142, 121, 138, 121, 130, 126, 120, 129, 128, 116, 122, 121, 113, 127, 135, 126, 123, 114, 122, 106, 134, 109, 109, 127, 109, 123, 119, 121, 124, 117, 122, 127, 113, 140, 125, 109, 114, 131, 127, 116, 130, 118, 120, 133, 133, 114, 131, 114, 114, 137, 114, 132, 115, 133, 134, 131, 100, 115, 132, 117, 120, 134, 130, 106, 115, 122, 119, 124, 107, 127, 133, 134, 120, 104, 128, 119, 114, 117, 135, 142, 114, 151, 117, 112, 133, 120, 113, 129, 116, 115, 129, 114, 133, 134, 124, 117, 131, 128, 132, 132, 116, 118, 119, 135, 110, 119, 114, 117, 124, 113, 123, 125, 143, 125, 124, 137, 117, 138, 123, 132, 127, 113, 127, 114, 117, 118, 131, 128, 137, 125, 134, 133, 119, 124, 127, 119, 137, 148, 134, 133, 123, 113, 137, 114, 136, 132, 124, 125, 138, 140, 114, 125, 134, 119, 133, 139, 122, 118, 139, 117, 114, 133, 122, 128, 115, 124, 135, 123, 128, 118, 157, 113, 129, 115, 111, 126, 149, 112, 137, 140, 133, 118, 130, 131, 130, 126, 142, 117, 122, 128, 112, 123, 122, 145, 130, 133, 119, 144, 128, 134, 136, 120, 102, 127, 131, 115, 124, 142, 129, 126, 130, 140, 135, 126, 127, 143, 138, 117, 128, 132, 112, 133, 111, 114, 130, 138, 138, 119, 120, 148, 110, 125, 113, 126, 129, 117, 145, 125, 108, 132, 131, 125, 130, 109, 130, 141, 138, 120, 113, 122, 140, 141, 134, 129, 119, 122, 119, 129, 122, 120, 135, 116, 120, 121, 130, 99, 126, 124, 133, 128, 127, 118, 107, 116, 124, 138, 134, 116, 121, 136, 131, 135, 120, 108, 127, 117, 117, 119, 114, 116, 113, 132, 125, 124, 118, 144, 123, 123, 120, 106, 126, 105, 105, 115, 109, 145, 127, 128, 129, 138, 117, 122, 123, 128, 120, 111, 130, 115, 134, 124, 105, 134, 109, 121, 127, 131, 134, 96, 130, 131, 129, 125, 131, 121, 130, 138, 141, 124, 124, 116, 135, 122, 139, 130, 136, 128, 130, 133, 120, 121, 122, 142, 146, 127, 129, 130, 125, 127, 132, 137, 117, 126, 126, 118, 116, 131, 137, 125, 135, 114, 135, 128, 132, 128, 123, 124, 138, 128, 113, 132, 123, 126, 133, 127, 117, 137, 135, 132, 128, 130, 134, 141, 113, 136, 119, 131, 135, 108, 131, 125, 124, 122, 152, 119, 128, 129, 121, 117, 136, 125, 124, 120, 126, 114, 125, 122, 115, 129, 123, 99, 130, 136, 141, 130, 129, 103, 122, 120, 121, 132, 126, 133, 122, 126, 123, 130, 126, 135, 119, 141, 121, 117, 127, 127, 104, 134, 125, 118, 123, 109, 125, 141, 133, 112, 119, 136, 138, 124, 139, 128, 109, 131, 142, 134, 121, 118, 134, 116, 140, 128, 112, 118, 109, 121, 120, 122, 135, 122, 125, 113, 124, 125, 116, 133, 133, 133, 136, 133, 109, 139, 131, 142, 112, 113, 136, 112, 118, 134, 136, 127, 118, 132, 145, 120, 138, 130, 147, 136, 120, 122, 114, 137, 118, 115, 92, 123, 118, 132, 119, 112, 127, 119, 136, 156, 133, 126, 125, 130, 131, 118, 123, 115, 134, 120, 118, 128, 120, 127, 114, 125, 131, 124, 122, 130, 123, 116, 138, 143, 127, 125, 122, 128, 129, 141, 139, 136, 124, 114, 108, 117, 135, 112, 112, 113, 146, 107, 125, 132, 128, 131, 134, 131, 134, 124, 141, 122, 121, 118, 124, 127, 118, 121, 117, 110, 125, 121, 133, 129, 124, 131, 108, 129, 121, 99, 114, 121, 105, 119, 136, 141, 138, 135, 118, 135, 107, 109, 144, 127, 130, 107, 131, 122, 123, 131, 120, 108, 118, 135, 131, 111, 132, 133, 119, 104, 109, 139, 108, 123, 126, 127, 113, 124, 142, 107, 132, 126, 109, 140, 122, 121, 125, 139, 121, 128, 117, 136, 104, 139, 144, 124, 132, 118, 123, 122, 118, 119, 130, 120, 111, 136, 117, 145, 139, 118, 118, 124, 141, 133, 123, 140, 122, 117, 136, 137, 123, 115, 114, 106, 118, 125, 144, 140, 127, 128, 111, 117, 122, 110, 125, 119, 133, 116, 149, 118, 138, 134, 140, 130, 125, 110, 119, 125, 113, 121, 125, 121, 120, 113, 132, 88, 137, 109, 122, 110, 130, 138, 139, 134, 134, 138, 123, 116, 109, 132, 110, 139, 118, 136, 125, 135, 120, 117, 123, 127, 94, 130, 135, 121, 126, 130, 118, 119, 117, 128, 123, 130, 112, 128, 117, 128, 128, 129, 116, 128, 114, 124, 121, 125, 131, 112, 144, 121, 127, 116, 119, 128, 141, 111, 120, 119, 119, 118, 134, 127, 134, 130, 122, 109, 100, 134, 130, 120, 114, 114, 138, 122, 130, 135, 134, 117, 127, 131, 130, 130, 131, 125, 141, 125, 128, 120, 107, 111, 116, 140, 123, 130, 124, 123, 123, 156, 119, 116, 119, 121, 93, 127, 122, 154, 124, 136, 141, 105, 125, 128, 137, 114, 114, 113, 137, 139, 124, 125, 120, 132, 125, 125, 154, 118, 120, 139, 133, 109, 122, 117, 123, 151, 116, 137, 107, 126, 123, 113, 112, 124, 129, 120, 125, 143, 118, 129, 139, 126, 135, 127, 137, 125, 125, 131, 117, 116, 117, 113, 112, 119, 136, 141, 141, 121, 104, 128, 129, 105, 122, 125, 139, 102, 130, 134, 114, 124, 125, 144, 132, 127, 120, 131, 131, 132, 122, 132, 127, 107, 143, 102, 123, 130, 110, 110, 126, 118, 127, 128, 103, 128, 109, 133, 143, 122, 136, 121, 102, 135, 127, 130, 129, 141, 126, 114, 135, 120, 117, 141, 140, 121, 139, 108, 127, 137, 130, 125, 112, 130, 124, 127, 119, 126, 112, 130, 122, 118, 127, 125, 124, 130, 151, 116, 122, 120, 114, 116, 124, 141, 114, 139, 122, 123, 122, 111, 110, 127, 131, 118, 121, 127, 123, 116, 129, 125, 124, 117, 133, 127, 123, 117, 117, 122, 135, 118, 117, 117, 135, 124, 135, 145, 128, 124, 140, 115, 126, 129, 118, 114, 116, 124, 112, 126, 107, 122, 136, 127, 121, 133, 129, 118, 105, 123, 129, 124, 116, 133, 144, 123, 134, 111, 121, 121, 118, 134, 116, 112, 123, 117, 120, 133, 114, 138, 137, 124, 121, 152, 121, 119, 147, 115, 120, 126, 142, 129, 119, 122, 134, 132, 121, 122, 114, 141, 124, 113, 123, 116, 131, 137, 129, 120, 147, 148, 111, 120, 113, 124, 137, 131, 111, 136, 135, 129, 114, 143, 118, 127, 116, 117, 118, 121, 117, 124, 136, 117, 134, 129, 137, 112, 136, 125, 106, 114, 130, 113, 114, 120, 113, 132, 120, 122, 122, 133, 124, 115, 121, 121, 122, 106, 108, 125, 115, 113, 131, 140, 126, 128, 126, 123, 131, 118, 131, 135, 122, 142, 138, 117, 96, 117, 113, 128, 131, 140, 136, 113, 134, 129, 137, 119, 129, 130, 122, 122, 105, 139, 131, 124, 118, 121, 126, 146, 122, 120, 120, 116, 126, 130, 128, 131, 126, 135, 128, 129, 120, 134, 132, 140, 116, 121, 139, 126, 113, 136, 134, 136, 128, 128, 118, 116, 134, 131, 115, 134, 121, 114, 153, 117, 130, 145, 128, 112, 141, 123, 131, 125, 122, 136, 144, 118, 131, 121, 115, 126, 126, 131, 139, 134, 107, 104, 128, 129, 119, 127, 136, 124, 130, 135, 130, 125, 118, 140, 122, 161, 129, 105, 130, 115, 122, 115, 118, 123, 120, 123, 110, 120, 123, 125, 119, 131, 125, 132, 146, 128, 131, 131, 128, 121, 125, 127, 120, 129, 110, 146, 140, 122, 126, 132, 104, 141, 116, 113, 124, 106, 122, 118, 135, 136, 122, 137, 129, 135, 128, 120, 116, 140, 118, 105, 130, 128, 116, 123, 132, 129, 123, 127, 119, 131, 137, 118, 124, 113, 119, 111, 134, 122, 129, 133, 121, 134, 136, 127, 126, 109, 115, 143, 116, 138, 105, 122, 112, 133, 112, 140, 128, 132, 134, 130, 125, 124, 121, 122, 116, 120, 121, 146, 138, 131, 124, 127, 119, 137, 130, 118, 118, 136, 109, 119, 103, 113, 118, 116, 119, 107, 111, 118, 139, 135, 113, 145, 117, 130, 108, 131, 121, 133, 109, 121, 132, 124, 118, 122, 126, 120, 135, 132, 131, 124, 124, 133, 121, 126, 150, 128, 124, 112, 125, 119, 114, 139, 124, 124, 111, 129, 118, 140, 127, 126, 131, 140, 113, 118, 142, 112, 126, 123, 137, 125, 136, 122, 101, 96, 130, 122, 139, 129, 123, 133, 121, 132, 125, 131, 123, 128, 143, 138, 120, 130, 139, 125, 111, 115, 148, 139, 136, 123, 128, 115, 121, 109, 131, 110, 132, 130, 135, 122, 117, 123, 110, 144, 123, 118, 135, 139, 132, 132, 134, 120, 120, 139, 119, 139, 141, 123, 124, 111, 113, 137, 123, 124, 156, 131, 109, 153, 117, 138, 113, 124, 118, 136, 138, 125, 138, 119, 150, 128, 116, 138, 128, 123, 115, 101, 125, 130, 134, 133, 128, 133, 124, 121, 106, 120, 122, 113, 129, 123, 122, 114, 116, 127, 137, 125, 122, 133, 123, 142, 127, 115, 133, 120, 133, 113, 157, 131, 113, 128, 129, 124, 126, 122, 155, 134, 109, 131, 123, 116, 128, 117, 122, 129, 117, 132, 135, 115, 149, 118, 136, 117, 145, 118, 126, 130, 114, 154, 117, 111, 149, 118, 132, 126, 118, 131, 136, 135, 110, 109, 130, 105, 108, 122, 124, 129, 118, 115, 132, 122, 121, 110, 134, 144, 111, 119, 125, 121, 121, 126, 119, 144, 125, 102, 126, 141, 121, 133, 133, 112, 121, 115, 128, 120, 119, 133, 111, 121, 121, 128, 140, 127, 134, 138, 119, 119, 129, 141, 117, 128, 136, 120, 131, 149, 152, 116, 121, 117, 130, 138, 119, 129, 120, 118, 121, 125, 118, 128, 109, 112, 103, 143, 129, 138, 123, 121, 123, 125, 128, 117, 116, 108, 128, 131, 138, 110, 130, 113, 110, 133, 135, 117, 121, 122, 117, 112, 124, 122, 134, 125, 127, 113, 126, 116, 109, 124, 132, 129, 138, 134, 109, 145, 123, 121, 96, 122, 133, 114, 126, 129, 116, 116, 121, 131, 125, 117, 131, 124, 116, 144, 125, 121, 123, 134, 115, 132, 120, 118, 122, 134, 116, 137, 122, 125, 105, 114, 115, 135, 134, 127, 135, 143, 110, 137, 131, 134, 102, 128, 130, 112, 126, 137, 124, 130, 113, 132, 120, 141, 123, 123, 128, 136, 129, 131, 119, 129, 144, 112, 108, 127, 143, 142, 115, 138, 136, 124, 137, 128, 120, 128, 146, 135, 128, 126, 131, 135, 133, 161, 113, 121, 115, 123, 128, 111, 136, 133, 130, 142, 127, 133, 164, 131, 120, 137, 140, 113, 138, 138, 137, 133, 114, 122, 136, 128, 112, 136, 131, 139, 140, 100, 143, 105, 125, 118, 131, 128, 145, 127, 104, 117, 107, 116, 135, 124, 115, 127, 101, 125, 126, 100, 102, 142, 136, 110, 145, 124, 121, 108, 127, 137, 127, 125, 141, 109, 117, 126, 121, 116, 128, 125, 134, 115, 124, 117, 114, 134, 110, 132, 130, 130, 119, 127, 116, 126, 132, 140, 139, 115, 145, 117, 137, 125, 127, 127, 127, 122, 117, 149, 120, 130, 139, 119, 115, 123, 137, 123, 129, 133, 126, 109, 126, 128, 134, 138, 134, 127, 127, 143, 109, 124, 110, 128, 121, 126, 140, 126, 113, 124, 122, 125, 136, 125, 116, 126, 136, 124, 120, 133, 123, 128, 112, 127, 138, 125, 124, 140, 130, 108, 116, 124, 115, 130, 134, 120, 135, 124, 119, 114, 122, 135, 95, 119, 120, 111, 137, 138, 130, 116, 124, 124, 114, 133, 124, 116, 144, 138, 122, 125, 124, 123, 133, 135, 109, 113, 125, 140, 118, 111, 141, 123, 124, 130, 141, 117, 122, 120, 134, 120, 126, 123, 139, 105, 112, 127, 128, 145, 126, 121, 123, 113, 118, 142, 132, 126, 118, 114, 129, 142, 132, 111, 128, 120, 120, 147, 121, 146, 131, 125, 135, 114, 115, 116, 134, 129, 126, 125, 123, 120, 132, 127, 120, 140, 121, 130, 121, 116, 133, 123, 125, 108, 105, 147, 143, 118, 107, 116, 136, 132, 119, 130, 129, 130, 119, 155, 133, 136, 136, 118, 119, 101, 166, 115, 115, 111, 141, 122, 118, 126, 129, 140, 127, 109, 142, 125, 105, 129, 136, 119, 143, 131, 117, 137, 127, 122, 137, 131, 134, 147, 113, 140, 123, 130, 129, 125, 157, 123, 130, 120, 129, 141, 102, 132, 142, 129, 125, 127, 126, 103, 122, 130, 128, 124, 99, 115, 140, 141, 124, 124, 136, 120, 130, 135, 113, 130, 135, 129, 120, 110, 122, 116, 126, 134, 112, 127, 111, 131, 148, 141, 118, 120, 127, 125, 136, 129, 112, 130, 137, 129, 128, 127, 113, 106, 96, 128, 148, 133, 120, 133, 117, 112, 121, 132, 123, 116, 123, 107, 120, 120, 122, 104, 151, 135, 132, 128, 124, 120, 122, 119, 123, 126, 133, 104, 144, 138, 140, 130, 124, 128, 124, 125, 113, 137, 103, 129, 131, 122, 127, 132, 127, 130, 143, 118, 96, 127, 122, 124, 117, 129, 150, 107, 127, 121, 137, 117, 136, 125, 96, 115, 127, 128, 161, 137, 139, 100, 110, 127, 125, 132, 129, 117, 137, 128, 124, 132, 134, 119, 124, 138, 130, 96, 122, 122, 135, 126, 122, 127, 116, 149, 129, 118, 119, 113, 146, 122, 118, 124, 134, 126, 139, 123, 115, 113, 121, 121, 130, 145, 129, 106, 131, 116, 111, 106, 133, 110, 133, 130, 103, 131, 125, 112, 107, 132, 141, 122, 128, 123, 123, 123, 133, 134, 127, 129, 124, 146, 124, 122, 123, 122, 111, 121, 128, 130, 142, 139, 142, 102, 108, 139, 126, 127, 121, 117, 135, 119, 116, 141, 109, 140, 111, 132, 121, 109, 130, 142, 125, 142, 131, 135, 134, 138, 135, 135, 115, 133, 107, 134, 128, 123, 154, 123, 135, 114, 127, 117, 125, 131, 120, 130, 136, 130, 100, 112, 130, 146, 122, 135, 124, 127, 128, 118, 108, 125, 123, 125, 126, 106, 140, 145, 138, 124, 108, 129, 115, 139, 117, 120, 103, 123, 135, 132, 126, 115, 105, 119, 134, 126, 116, 135, 115, 128, 130, 115, 99, 105, 129, 123, 116, 130, 130, 120, 113, 111, 133, 108, 132, 133, 116, 128, 140, 123, 119, 134, 123, 137, 132, 129, 113, 124, 126, 122, 116, 122, 119, 117, 132, 105, 127, 99, 143, 147, 136, 102, 129, 131, 120, 135, 115, 118, 132, 137, 131, 120, 122, 115, 124, 115, 128, 123, 108, 138, 139, 132, 112, 125, 118, 113, 125, 122, 105, 115, 96, 121, 108, 122, 137, 126, 126, 127, 131, 135, 127, 131, 127, 121, 124, 116, 113, 115, 134, 134, 123, 123, 138, 127, 125, 134, 122, 142, 106, 113, 131, 120, 129, 126, 137, 120, 141, 127, 127, 127, 103, 118, 103, 154, 110, 110, 127, 126, 121, 124, 124, 127, 118, 109, 143, 112, 123, 126, 106, 138, 122, 128, 119, 131, 109, 113, 112, 135, 130, 120, 145, 151, 151, 137, 142, 119, 107, 124, 125, 121, 127, 111, 122, 114, 122, 115, 127, 137, 120, 121, 129, 140, 147, 121, 110, 128, 126, 123, 139, 144, 123, 122, 119, 127, 123, 118, 126, 109, 114, 130, 128, 129, 137, 138, 116, 124, 120, 140, 130, 116, 119, 134, 119, 127, 129, 143, 154, 134, 119, 129, 122, 113, 129, 124, 146, 122, 117, 133, 133, 119, 118, 127, 132, 152, 112, 139, 132, 122, 106, 125, 139, 112, 123, 142, 118, 119, 114, 154, 107, 131, 123, 130, 118, 138, 148, 135, 120, 132, 121, 148, 143, 117, 123, 122, 119, 130, 113, 131, 136, 154, 121, 117, 138, 124, 138, 122, 130, 121, 127, 141, 141, 119, 135, 136, 128, 126, 137, 111, 113, 129, 154, 117, 124, 139, 135, 107, 142, 128, 121, 118, 120, 116, 144, 133, 128, 128, 124, 133, 133, 124, 131, 143, 131, 130, 118, 99, 135, 134, 101, 136, 110, 120, 119, 122, 126, 134, 148, 116, 118, 128, 128, 119, 124, 124, 140, 129, 109, 139, 130, 133, 125, 129, 140, 112, 116, 104, 112, 138, 137, 138, 123, 127, 131, 133, 115, 117, 135, 121, 115, 113, 127, 126, 141, 132, 136, 131, 122, 120, 126, 124, 117, 124, 109, 129, 104, 119, 114, 131, 122, 134, 111, 131, 110, 110, 118, 118, 130, 128, 90, 113, 149, 125, 116, 113, 127, 108, 110, 131, 139, 100, 131, 120, 124, 132, 139, 122, 125, 134, 118, 132, 145, 129, 115, 115, 133, 120, 126, 139, 137, 117, 132, 142, 131, 128, 117, 122, 131, 116, 125, 113, 139, 142, 116, 131, 127, 144, 117, 124, 135, 141, 148, 132, 131, 122, 122, 126, 116, 134, 122, 136, 137, 128, 131, 113, 128, 126, 110, 111, 139, 131, 111, 124, 113, 126, 130, 111, 117, 121, 153, 152, 131, 142, 133, 130, 114, 133, 113, 127, 126, 124, 124, 124, 128, 117, 119, 128, 144, 114, 142, 117, 105, 138, 125, 112, 121, 121, 124, 110, 120, 140, 129, 121, 121, 126, 115, 123, 148, 104, 122, 117, 120, 117, 124, 127, 128, 116, 127, 140, 117, 106, 128, 126, 136, 136, 110, 121, 129, 124, 109, 113, 121, 122, 123, 130, 126, 133, 120, 121, 121, 121, 107, 114, 111, 123, 128, 137, 140, 127, 125, 108, 135, 137, 130, 142, 126, 122, 128, 124, 119, 144, 132, 149, 118, 129, 105, 145, 134, 121, 113, 126, 143, 126, 117, 126, 119, 128, 119, 111, 105, 123, 108, 131, 128, 128, 117, 131, 117, 123, 125, 122, 132, 153, 119, 136, 120, 134, 111, 130, 128, 130, 112, 131, 132, 128, 131, 121, 124, 116, 127, 138, 120, 130, 115, 139, 117, 135, 125, 127, 124, 132, 124, 114, 125, 150, 120, 112, 131, 119, 140, 127, 128, 135, 137, 130, 128, 108, 118, 127, 117, 136, 131, 123, 115, 117, 138, 134, 120, 118, 143, 126, 120, 114, 138, 120, 127, 111, 124, 123, 137, 126, 124, 117, 96, 127, 135, 126, 114, 132, 146, 135, 138, 136, 121, 125, 124, 128, 113, 126, 141, 128, 139, 119, 140, 126, 115, 123, 136, 114, 124, 137, 142, 121, 145, 117, 129, 148, 123, 146, 115, 128, 130, 133, 132, 123, 134, 133, 103, 125, 115, 117, 120, 117, 128, 118, 116, 146, 127, 116, 134, 130, 131, 127, 126, 127, 96, 99, 124, 133, 126, 126, 124, 138, 131, 136, 128, 130, 137, 120, 139, 130, 124, 141, 123, 117, 102, 119, 126, 119, 132, 108, 128, 110, 117, 117, 132, 145, 124, 127, 139, 127, 123, 129, 122, 110, 125, 125, 146, 129, 111, 125, 116, 130, 117, 133, 99, 128, 114, 135, 126, 117, 118, 121, 148, 139, 125, 126, 132, 124, 133, 120, 136, 118, 113, 139, 130, 131, 134, 132, 117, 118, 126, 127, 113, 133, 126, 133, 112, 123, 122, 106, 131, 115, 143, 123, 132, 114, 118, 122, 139, 125, 131, 124, 121, 116, 126, 135, 125, 125, 135, 115, 122, 127, 120, 122, 134, 122, 124, 125, 128, 121, 106, 124, 138, 140, 137, 127, 130, 123, 122, 132, 131, 140, 125, 139, 109, 134, 124, 131, 107, 103, 111, 108, 118, 146, 136, 118, 129, 117, 126, 114, 114, 129, 148, 112, 129, 118, 134, 129, 119, 131, 131, 114, 133, 135, 125, 127, 126, 145, 151, 112, 118, 111, 127, 116, 138, 135, 126, 124, 129, 118, 132, 118, 134, 130, 117, 113, 118, 130, 134, 139, 127, 141, 113, 122, 132, 144, 112, 123, 128, 127, 127, 127, 117, 130, 124, 144, 134, 120, 133, 115, 122, 152, 117, 123, 121, 134, 135, 128, 123, 121, 118, 124, 128, 114, 127, 116, 103, 124, 131, 128, 134, 119, 132, 106, 114, 150, 127, 126, 126, 121, 113, 126, 136, 117, 148, 143, 115, 138, 143, 133, 127, 105, 127, 147, 123, 131, 114, 137, 127, 130, 142, 139, 129, 135, 117, 128, 141, 92, 143, 135, 114, 126, 137, 112, 135, 119, 119, 126, 137, 114, 112, 131, 128, 143, 130, 135, 135, 161, 138, 130, 121, 127, 110, 129, 145, 134, 113, 116, 105, 140, 108, 119, 123, 121, 154, 116, 127, 131, 131, 93, 120, 130, 119, 119, 124, 134, 136, 122, 107, 142, 132, 124, 132, 135, 135, 128, 108, 116, 130, 121, 107, 132, 110, 122, 126, 116, 114, 148, 135, 123, 123, 120, 140, 124, 120, 126, 130, 120, 151, 116, 113, 122, 129, 143, 128, 123, 125, 116, 126, 131, 116, 129, 124, 111, 139, 126, 114, 108, 140, 155, 117, 107, 117, 145, 117, 104, 126, 116, 121, 139, 133, 126, 132, 128, 122, 132, 125, 136, 124, 122, 124, 129, 145, 135, 154, 135, 119, 136, 115, 135, 122, 108, 118, 126, 128, 131, 105, 122, 126, 124, 125, 130, 116, 126, 114, 120, 121, 110, 123, 122, 127, 134, 108, 149, 123, 117, 122, 107, 144, 125, 139, 144, 131, 140, 131, 134, 117, 118, 118, 139, 108, 121, 127, 119, 150, 117, 140, 142, 132, 121, 131, 132, 130, 118, 116, 114, 139, 110, 114, 145, 134, 137, 116, 133, 130, 98, 111, 119, 123, 116, 110, 103, 119, 119, 128, 130, 129, 147, 138, 127, 130, 138, 121, 134, 113, 130, 116, 123, 125, 127, 110, 115, 125, 101, 113, 137, 126, 119, 109, 144, 127, 127, 114, 128, 126, 134, 135, 131, 123, 126, 148, 126, 123, 134, 100, 111, 115, 116, 132, 137, 154, 115, 133, 122, 115, 114, 125, 101, 138, 127, 111, 149, 132, 141, 121, 118, 132, 114, 116, 132, 136, 124, 126, 130, 107, 127, 140, 137, 120, 127, 120, 119, 129, 138, 125, 124, 108, 114, 103, 126, 120, 118, 112, 127, 105, 130, 147, 147, 130, 116, 128, 127, 130, 125, 127, 121, 136, 114, 134, 123, 164, 118, 125, 132, 137, 115, 127, 122, 103, 122, 140, 121, 137, 126, 117, 138, 119, 120, 128, 119, 115, 135, 105, 109, 112, 109, 122, 132, 122, 132, 132, 114, 119, 124, 129, 120, 118, 129, 131, 129, 118, 136, 139, 124, 107, 114, 127, 122, 117, 128, 109, 111, 135, 126, 135, 118, 136, 125, 125, 134, 133, 135, 127, 129, 119, 129, 118, 148, 120, 138, 123, 142, 138, 141, 128, 121, 129, 132, 125, 152, 114, 126, 139, 127, 158, 129, 124, 129, 113, 115, 124, 122, 133, 136, 116, 112, 129, 125, 111, 142, 136, 143, 113, 131, 131, 133, 110, 130, 101, 134, 120, 134, 96, 122, 125, 125, 132, 120, 130, 122, 139, 128, 117, 104, 117, 137, 129, 125, 126, 102, 131, 123, 138, 118, 128, 133, 143, 109, 136, 138, 130, 117, 129, 101, 128, 107, 154, 92, 140, 137, 119, 126, 125, 134, 134, 122, 119, 117, 125, 126, 111, 117, 120, 127, 124, 123, 112, 128, 122, 128, 127, 131, 120, 126, 140, 140, 115, 126, 122, 124, 133, 145, 131, 119, 125, 110, 130, 137, 133, 133, 124, 117, 122, 111, 136, 125, 124, 129, 122, 134, 120, 113, 127, 116, 128, 97, 130, 128, 136, 130, 125, 121, 140, 121, 125, 119, 141, 117, 133, 133, 118, 119, 124, 129, 121, 133, 128, 115, 127, 121, 116, 140, 111, 120, 133, 115, 125, 128, 110, 115, 127, 107, 115, 130, 138, 129, 130, 139, 129, 137, 126, 113, 112, 138, 134, 118, 122, 107, 137, 131, 154, 145, 133, 123, 117, 145, 108, 141, 131, 140, 100, 117, 106, 142, 131, 115, 126, 127, 113, 103, 129, 127, 132, 130, 127, 104, 138, 134, 130, 140, 137, 148, 121, 129, 134, 136, 120, 109, 123, 131, 118, 124, 141, 143, 130, 119, 134, 148, 118, 134, 126, 136, 129, 119, 122, 148, 126, 108, 117, 108, 114, 127, 133, 119, 140, 127, 131, 126, 128, 132, 139, 116, 139, 127, 138, 119, 131, 113, 121, 116, 114, 119, 131, 117, 121, 120, 134, 107, 161, 134, 121, 130, 132, 143, 120, 130, 128, 125, 122, 124, 122, 114, 142, 135, 130, 130, 119, 127, 123, 145, 121, 119, 120, 136, 121, 126, 127, 113, 127, 129, 140, 153, 125, 128, 130, 129, 104, 134, 127, 125, 108, 132, 120, 134, 118, 130, 121, 124, 115, 121, 117, 122, 123, 135, 123, 130, 115, 136, 151, 117, 145, 119, 129, 131, 123, 142, 124, 117, 111, 131, 116, 135, 138, 114, 133, 112, 132, 129, 128, 134, 116, 143, 124, 117, 137, 123, 128, 146, 117, 122, 102, 134, 124, 121, 124, 124, 120, 117, 127, 131, 135, 128, 120, 137, 130, 116, 145, 121, 134, 118, 142, 133, 129, 119, 132, 131, 123, 116, 131, 108, 124, 117, 140, 134, 125, 144, 136, 121, 132, 116, 132, 133, 146, 103, 147, 126, 141, 128, 117, 135, 145, 121, 116, 123, 124, 120, 128, 128, 137, 107, 145, 109, 136, 136, 120, 109, 136, 154, 128, 138, 108, 143, 130, 127, 119, 115, 133, 120, 126, 140, 118, 127, 133, 118, 125, 119, 112, 118, 119, 121, 134, 136, 107, 116, 110, 120, 120, 119, 113, 117, 134, 133, 132, 112, 132, 120, 146, 121, 121, 127, 108, 105, 138, 122, 121, 119, 135, 128, 119, 108, 148, 119, 119, 131, 140, 134, 141, 134, 118, 137, 136, 112, 127, 130, 131, 147, 123, 130, 122, 131, 135, 124, 120, 117, 114, 121, 110, 162, 122, 125, 114, 125, 120, 131, 114, 153, 118, 112, 100, 133, 128, 139, 150, 134, 112, 125, 117, 119, 150, 136, 110, 116, 127, 133, 129, 107, 123, 125, 126, 107, 123, 115, 128, 112, 133, 134, 112, 123, 111, 121, 126, 135, 131, 125, 125, 107, 110, 122, 121, 145, 113, 133, 127, 128, 116, 124, 111, 126, 121, 143, 131, 125, 142, 115, 125, 118, 129, 120, 146, 121, 124, 129, 132, 126, 136, 132, 132, 111, 111, 133, 146, 118, 125, 120, 128, 141, 121, 122, 110, 122, 117, 106, 137, 118, 118, 111, 111, 122, 128, 123, 132, 136, 111, 128, 136, 119, 111, 100, 117, 114, 129, 111, 136, 151, 119, 149, 129, 122, 114, 125, 120, 102, 127, 132, 127, 103, 135, 128, 108, 111, 136, 119, 135, 116, 131, 132, 129, 133, 118, 124, 124, 128, 111, 117, 137, 139, 112, 123, 143, 113, 137, 113, 137, 130, 116, 116, 139, 120, 124, 138, 114, 151, 127, 128, 123, 124, 124, 117, 117, 133, 130, 126, 116, 145, 126, 126, 144, 130, 143, 130, 120, 103, 116, 117, 132, 132, 124, 126, 130, 118, 131, 131, 107, 135, 123, 128, 136, 123, 117, 111, 120, 122, 114, 132, 124, 120, 122, 139, 142, 148, 131, 118, 114, 120, 136, 128, 126, 140, 133, 125, 140, 121, 120, 131, 123, 123, 139, 142, 112, 135, 127, 126, 122, 132, 128, 144, 127, 129, 135, 128, 125, 123, 128, 128, 118, 126, 125, 126, 125, 124, 136, 139, 118, 129, 120, 130, 130, 130, 134, 132, 134, 114, 133, 134, 125, 136, 134, 137, 121, 125, 148, 114, 143, 125, 137, 144, 113, 135, 136, 124, 116, 122, 151, 124, 131, 126, 119, 143, 143, 119, 133, 122, 121, 107, 127, 147, 117, 143, 131, 137, 108, 108, 132, 135, 136, 113, 132, 138, 127, 123, 140, 130, 129, 113, 137, 134, 119, 117, 126, 122, 161, 116, 140, 124, 124, 127, 131, 121, 127, 123, 118, 120, 119, 133, 132, 120, 119, 119, 102, 122, 123, 127, 123, 134, 117, 111, 129, 122, 118, 134, 105, 120, 98, 126, 116, 128, 123, 115, 129, 132, 130, 117, 125, 116, 109, 122, 138, 137, 138, 107, 108, 139, 131, 123, 109, 137, 127, 120, 124, 111, 101, 119, 131, 117, 135, 121, 128, 135, 132, 118, 120, 134, 116, 116, 139, 115, 124, 134, 128, 115, 118, 124, 114, 122, 128, 127, 125, 113, 142, 128, 130, 129, 133, 125, 131, 128, 131, 139, 119, 131, 115, 125, 121, 129, 133, 122, 130, 111, 114, 102, 125, 97, 127, 115, 129, 122, 127, 126, 107, 119, 113, 116, 133, 106, 140, 128, 117, 129, 127, 134, 132, 139, 122, 138, 142, 111, 140, 134, 130, 113, 119, 132, 125, 114, 144, 129, 122, 121, 133, 128, 140, 120, 119, 115, 115, 131, 114, 128, 140, 130, 130, 141, 129, 127, 111, 127, 125, 129, 134, 136, 127, 115, 140, 129, 119, 154, 133, 129, 136, 122, 114, 130, 128, 125, 130, 143, 148, 120, 122, 130, 120, 130, 124, 132, 136, 118, 132, 131, 128, 132, 133, 143, 114, 129, 133, 111, 146, 129, 121, 122, 127, 138, 141, 123, 117, 137, 127, 160, 119, 111, 132, 118, 129, 141, 131, 105, 117, 129, 107, 122, 118, 111, 131, 131, 148, 118, 119, 111, 116, 121, 121, 121, 137, 125, 106, 136, 127, 118, 139, 134, 105, 126, 121, 146, 122, 126, 129, 121, 139, 125, 133, 120, 124, 125, 109, 115, 114, 119, 117, 110, 124, 134, 113, 130, 126, 115, 107, 119, 124, 134, 115, 150, 117, 117, 138, 113, 127, 129, 129, 122, 123, 127, 119, 119, 123, 143, 138, 137, 150, 121, 126, 129, 117, 116, 117, 120, 123, 122, 112, 131, 114, 129, 122, 119, 124, 122, 123, 130, 122, 128, 126, 126, 108, 115, 124, 124, 115, 139, 140, 112, 106, 144, 106, 118, 119, 120, 125, 127, 111, 113, 129, 125, 123, 131, 127, 109, 133, 138, 105, 110, 107, 142, 105, 130, 128, 120, 143, 115, 122, 132, 130, 106, 127, 129, 106, 142, 140, 135, 134, 104, 97, 122, 118, 140, 149, 136, 113, 109, 136, 120, 104, 122, 121, 127, 122, 137, 129, 100, 104, 117, 128, 134, 148, 126, 133, 135, 132, 124, 134, 132, 121, 127, 138, 134, 128, 126, 124, 129, 118, 121, 122, 127, 115, 139, 120, 116, 120, 121, 114, 136, 122, 123, 134, 119, 127, 113, 112, 128, 116, 125, 127, 138, 129, 118, 121, 112, 113, 125, 134, 148, 123, 111, 104, 116, 120, 107, 128, 119, 118, 130, 121, 130, 140, 129, 115, 119, 120, 118, 131, 127, 127, 133, 119, 119, 118, 116, 121, 136, 123, 127, 124, 142, 120, 128, 129, 132, 122, 124, 116, 136, 132, 114, 121, 129, 112, 122, 126, 115, 100, 121, 155, 122, 124, 122, 117, 130, 128, 140, 137, 131, 124, 108, 123, 110, 130, 137, 125, 112, 127, 146, 141, 115, 123, 133, 121, 130, 145, 123, 123, 125, 116, 130, 125, 115, 141, 117, 137, 102, 116, 104, 117, 113, 125, 129, 122, 109, 124, 132, 139, 130, 109, 105, 129, 146, 111, 114, 114, 118, 123, 107, 133, 119, 122, 142, 125, 127, 118, 126, 113, 113, 120, 121, 114, 121, 122, 146, 128, 123, 121, 139, 138, 141, 120, 116, 126, 108, 131, 103, 134, 128, 130, 145, 126, 124, 121, 147, 139, 134, 130, 128, 122, 135, 130, 134, 105, 138, 113, 125, 116, 119, 124, 109, 115, 115, 116, 118, 134, 126, 128, 121, 141, 119, 118, 123, 136, 112, 116, 136, 118, 115, 109, 122, 138, 142, 134, 130, 117, 105, 99, 120, 114, 119, 140, 118, 127, 118, 119, 118, 124, 110, 143, 137, 143, 112, 140, 122, 129, 120, 100, 115, 124, 123, 116, 123, 117, 126, 132, 127, 105, 137, 131, 114, 120, 114, 115, 119, 128, 134, 120, 118, 133, 134, 112, 127, 157, 125, 109, 118, 124, 115, 133, 137, 126, 140, 115, 103, 135, 131, 121, 135, 123, 129, 134, 124, 132, 125, 131, 113, 116, 123, 117, 112, 115, 134, 139, 113, 119, 120, 121, 133, 112, 133, 131, 122, 101, 125, 112, 131, 127, 110, 140, 129, 146, 127, 114, 137, 130, 126, 132, 116, 128, 124, 128, 119, 129, 122, 123, 113, 135, 133, 131, 126, 118, 138, 117, 112, 130, 137, 132, 126, 113, 121, 132, 140, 104, 138, 117, 135, 129, 131, 126, 133, 110, 145, 131, 131, 126, 152, 140, 123, 133, 145, 123, 127, 131, 136, 123, 123, 112, 111, 140, 127, 134, 121, 118, 129, 148, 128, 119, 130, 126, 116, 120, 130, 120, 116, 132, 123, 131, 139, 117, 108, 127, 142, 104, 130, 121, 118, 134, 122, 120, 126, 124, 130, 141, 128, 139, 122, 128, 115, 128, 131, 116, 121, 126, 109, 117, 137, 150, 115, 121, 130, 124, 142, 138, 138, 122, 128, 127, 129, 123, 138, 122, 126, 119, 130, 129, 110, 123, 120, 132, 129, 139, 126, 115, 134, 144, 123, 106, 163, 117, 126, 110, 134, 120, 103, 124, 115, 135, 131, 128, 124, 132, 128, 144, 126, 117, 118, 136, 140, 143, 132, 140, 128, 116, 129, 99, 125, 136, 142, 117, 112, 123, 130, 138, 142, 104, 126, 108, 134, 120, 120, 123, 106, 136, 129, 117, 135, 137, 122, 121, 136, 128, 125, 123, 135, 110, 134, 133, 139, 122, 138, 114, 130, 120, 117, 133, 142, 117, 130, 119, 105, 137, 115, 137, 137, 110, 124, 117, 114, 118, 121, 130, 121, 131, 128, 122, 118, 114, 143, 129, 135, 118, 150, 123, 134, 115, 133, 115, 127, 130, 125, 125, 137, 131, 139, 129, 123, 137, 123, 129, 133, 122, 127, 128, 107, 112, 136, 125, 113, 118, 124, 133, 132, 127, 129, 125, 130, 128, 121, 126, 128, 145, 134, 141, 132, 121, 119, 127, 121, 129, 149, 118, 136, 134, 126, 135, 121, 119, 137, 123, 138, 129, 136, 125, 138, 105, 135, 133, 118, 126, 131, 117, 130, 122, 125, 134, 132, 141, 131, 132, 96, 115, 130, 125, 124, 119, 116, 118, 130, 124, 134, 118, 134, 130, 116, 119, 135, 143, 136, 135, 112, 110, 126, 116, 132, 127, 124, 131, 119, 118, 125, 121, 119, 134, 130, 136, 139, 120, 146, 134, 134, 124, 127, 106, 111, 134, 107, 119, 120, 123, 122, 101, 114, 120, 139, 129, 133, 127, 125, 127, 132, 122, 102, 127, 150, 109, 132, 151, 145, 133, 111, 113, 128, 110, 132, 138, 118, 124, 120, 130, 112, 130, 107, 136, 123, 122, 109, 109, 111, 114, 102, 121, 123, 109, 116, 136, 136, 138, 122, 130, 131, 140, 116, 130, 115, 126, 109, 110, 124, 116, 106, 119, 123, 121, 132, 118, 125, 130, 131, 121, 130, 125, 108, 98, 102, 146, 126, 122, 136, 141, 122, 131, 127, 118, 120, 138, 128, 132, 132, 109, 123, 140, 117, 142, 132, 142, 134, 132, 110, 140, 131, 123, 111, 124, 127, 117, 118, 125, 128, 137, 117, 123, 121, 124, 113, 127, 130, 117, 132, 115, 103, 111, 103, 133, 126, 117, 127, 129, 132, 125, 130, 121, 123, 130, 121, 126, 118, 120, 125, 112, 146, 116, 136, 120, 130, 104, 129, 113, 124, 150, 107, 114, 121, 128, 137, 105, 141, 125, 118, 123, 111, 120, 134, 135, 128, 123, 122, 107, 119, 135, 131, 134, 117, 130, 160, 128, 127, 137, 114, 113, 142, 118, 128, 123, 123, 126, 94, 136, 129, 133, 127, 134, 129, 126, 131, 124, 124, 114, 118, 119, 113, 117, 125, 117, 123, 129, 126, 140, 105, 127, 111, 115, 116, 115, 124, 128, 117, 115, 122, 121, 124, 125, 123, 130, 118, 109, 124, 113, 127, 125, 130, 141, 129, 125, 138, 105, 111, 129, 128, 119, 123, 116, 128, 129, 130, 129, 119, 118, 122, 126, 118, 127, 138, 119, 122, 123, 127, 108, 130, 121, 129, 119, 152, 137, 145, 113, 136, 123, 130, 130, 126, 122, 129, 120, 118, 136, 127, 138, 143, 139, 117, 128, 119, 116, 135, 104, 126, 133, 146, 125, 133, 126, 120, 143, 129, 132, 140, 130, 123, 124, 112, 114, 131, 112, 127, 125, 130, 116, 130, 143, 124, 132, 120, 122, 119, 135, 121, 128, 122, 118, 135, 141, 120, 117, 126, 139, 132, 142, 112, 138, 128, 148, 119, 132, 131, 119, 117, 124, 121, 108, 125, 117, 134, 119, 119, 109, 133, 127, 142, 126, 135, 130, 112, 132, 122, 121, 116, 147, 127, 129, 146, 124, 131, 115, 136, 106, 118, 126, 127, 104, 130, 132, 116, 117, 126, 113, 124, 122, 121, 140, 132, 155, 133, 124, 111, 110, 134, 128, 126, 137, 117, 114, 139, 101, 134, 129, 133, 124, 119, 124, 120, 129, 116, 124, 123, 126, 112, 154, 119, 109, 130, 146, 130, 122, 137, 135, 147, 127, 127, 131, 123, 120, 130, 116, 130, 128, 123, 113, 127, 107, 133, 131, 122, 119, 125, 122, 117, 127, 136, 128, 127, 113, 129, 139, 125, 136, 122, 102, 129, 119, 130, 127, 120, 125, 133, 140, 132, 127, 113, 134, 113, 126, 134, 124, 116, 123, 129, 131, 120, 121, 121, 142, 123, 104, 110, 130, 121, 134, 122, 138, 106, 119, 124, 140, 131, 125, 125, 113, 121, 127, 129, 126, 145, 130, 120, 125, 128, 139, 104, 109, 119, 129, 115, 109, 136, 131, 128, 127, 140, 125, 124, 109, 126, 107, 139, 138, 108, 133, 124, 119, 138, 129, 132, 120, 121, 119, 114, 119, 126, 114, 137, 128, 129, 107, 133, 95, 137, 131, 129, 167, 128, 129, 127, 120, 120, 145, 139, 128, 128, 117, 133, 124, 134, 131, 120, 125, 120, 112, 132, 130, 143, 120, 122, 136, 131, 126, 129, 135, 126, 124, 116, 120, 124, 110, 117, 132, 135, 123, 120, 134, 135, 116, 121, 101, 113, 137, 101, 114, 147, 127, 137, 128, 118, 130, 114, 149, 125, 130, 121, 132, 111, 127, 130, 121, 146, 124, 129, 118, 132, 109, 121, 121, 132, 134, 122, 133, 138, 117, 100, 130, 136, 144, 135, 110, 114, 137, 123, 112, 115, 130, 137, 130, 135, 120, 111, 118, 146, 104, 111, 129, 121, 133, 140, 135, 131, 111, 128, 130, 132, 119, 143, 127, 121, 132, 118, 119, 130, 135, 122, 117, 131, 128, 128, 115, 131, 118, 115, 121, 124, 130, 134, 141, 128, 111, 128, 129, 116, 129, 130, 136, 114, 125, 124, 130, 124, 140, 124, 126, 138, 135, 112, 120, 130, 119, 114, 147, 115, 112, 117, 111, 127, 107, 111, 131, 117, 140, 118, 146, 113, 137, 143, 136, 109, 127, 120, 124, 136, 116, 127, 141, 125, 130, 133, 135, 132, 110, 125, 130, 123, 128, 111, 137, 141, 124, 140, 106, 109, 101, 121, 139, 117, 136, 122, 122, 104, 102, 128, 108, 117, 114, 120, 125, 123, 120, 113, 125, 108, 118, 111, 132, 130, 122, 106, 119, 120, 136, 128, 113, 108, 124, 115, 121, 128, 125, 147, 118, 126, 134, 134, 127, 116, 121, 115, 128, 116, 129, 107, 130, 128, 147, 130, 133, 124, 118, 134, 119, 118, 126, 134, 117, 114, 127, 140, 143, 117, 95, 134, 109, 131, 125, 123, 133, 139, 127, 143, 131, 124, 114, 131, 128, 115, 124, 140, 116, 134, 131, 142, 134, 116, 125, 115, 101, 145, 125, 118, 134, 110, 122, 140, 96, 130, 132, 102, 142, 139, 117, 116, 134, 108, 124, 118, 143, 140, 132, 123, 126, 125, 127, 146, 128, 119, 128, 109, 113, 116, 137, 127, 125, 120, 118, 128, 123, 114, 131, 121, 126, 117, 96, 132, 127, 135, 113, 130, 128, 138, 135, 136, 142, 133, 143, 114, 107, 115, 126, 128, 134, 139, 140, 124, 140, 134, 138, 128, 127, 138, 111, 130, 107, 138, 136, 120, 146, 133, 137, 124, 138, 122, 134, 121, 116, 130, 132, 112, 138, 121, 139, 125, 130, 115, 116, 116, 113, 134, 149, 115, 136, 124, 112, 131, 115, 145, 128, 130, 125, 126, 117, 132, 129, 134, 141, 118, 126, 112, 122, 121, 117, 117, 127, 110, 107, 135, 124, 121, 104, 137, 148, 122, 128, 123, 120, 138, 131, 139, 119, 135, 129, 148, 105, 115, 137, 125, 135, 131, 134, 122, 133, 112, 116, 149, 140, 104, 120, 121, 121, 133, 122, 139, 123, 129, 116, 136, 110, 127, 115, 137, 132, 108, 138, 125, 125, 126, 97, 128, 118, 130, 119, 111, 136, 120, 123, 125, 126, 138, 126, 130, 121, 125, 139, 127, 119, 119, 125, 124, 114, 136, 120, 142, 149, 123, 133, 119, 134, 123, 123, 107, 128, 114, 116, 137, 122, 127, 149, 121, 117, 115, 120, 109, 111, 114, 134, 134, 113, 138, 122, 125, 126, 134, 131, 121, 118, 144, 126, 117, 138, 116, 127, 125, 127, 100, 134, 119, 131, 134, 134, 130, 102, 125, 118, 109, 140, 130, 121, 131, 125, 139, 115, 124, 112, 120, 116, 125, 138, 133, 140, 121, 120, 106, 138, 118, 146, 145, 118, 107, 148, 110, 125, 120, 128, 103, 122, 151, 134, 122, 124, 149, 106, 133, 113, 124, 133, 117, 122, 134, 122, 126, 126, 140, 129, 135, 127, 127, 133, 127, 146, 135, 128, 123, 133, 116, 122, 133, 98, 120, 119, 128, 130, 116, 129, 131, 126, 116, 118, 130, 117, 103, 116, 121, 123, 141, 110, 125, 119, 131, 111, 123, 130, 131, 117, 147, 102, 144, 112, 110, 139, 116, 141, 119, 123, 114, 134, 128, 125, 112, 120, 112, 125, 127, 137, 139, 131, 121, 100, 127, 116, 133, 118, 112, 115, 123, 129, 117, 132, 116, 138, 122, 120, 113, 140, 117, 117, 119, 122, 125, 116, 127, 142, 117, 129, 147, 130, 120, 114, 123, 141, 129, 140, 121, 124, 134, 120, 126, 143, 123, 121, 123, 119, 115, 136, 124, 125, 129, 111, 124, 126, 118, 127, 131, 111, 122, 132, 126, 123, 115, 123, 130, 128, 143, 121, 129, 123, 129, 125, 124, 132, 122, 134, 105, 114, 117, 124, 126, 119, 121, 109, 110, 116, 136, 139, 146, 113, 129, 137, 128, 138, 119, 116, 130, 126, 106, 134, 118, 121, 128, 118, 128, 121, 118, 153, 122, 137, 114, 133, 125, 121, 126, 113, 122, 128, 124, 127, 125, 128, 117, 109, 153, 120, 141, 109, 128, 138, 145, 120, 121, 134, 108, 110, 133, 130, 142, 122, 124, 119, 106, 123, 153, 110, 140, 118, 147, 118, 106, 140, 112, 113, 123, 129, 117, 136, 127, 129, 119, 114, 116, 123, 127, 117, 120, 135, 116, 150, 125, 128, 128, 116, 131, 143, 103, 123, 119, 106, 116, 137, 118, 115, 125, 145, 134, 121, 120, 136, 109, 134, 128, 129, 139, 114, 106, 139, 114, 143, 144, 108, 128, 143, 131, 134, 121, 131, 128, 137, 106, 125, 121, 113, 116, 119, 110, 143, 129, 122, 122, 104, 116, 109, 119, 139, 120, 126, 124, 119, 127, 110, 118, 135, 124, 117, 144, 131, 132, 131, 124, 133, 122, 133, 124, 127, 133, 125, 118, 136, 123, 122, 120, 147, 126, 127, 129, 125, 134, 124, 154, 123, 132, 132, 125, 132, 126, 117, 141, 132, 123, 128, 123, 131, 145, 125, 123, 128, 134, 130, 124, 132, 117, 116, 123, 125, 127, 125, 128, 110, 108, 126, 130, 140, 123, 118, 122, 109, 118, 109, 129, 122, 127, 130, 131, 127, 120, 111, 114, 131, 112, 124, 155, 123, 137, 138, 117, 127, 132, 117, 133, 131, 116, 114, 118, 123, 116, 117, 123, 129, 116, 126, 118, 140, 116, 114, 132, 131, 126, 136, 112, 131, 101, 109, 141, 130, 117, 123, 125, 133, 133, 118, 134, 135, 142, 132, 130, 124, 112, 118, 132, 128, 124, 123, 96, 122, 112, 123, 131, 118, 125, 126, 115, 131, 129, 109, 130, 126, 108, 112, 128, 118, 127, 141, 129, 131, 114, 119, 140, 111, 126, 135, 109, 134, 124, 133, 120, 121, 124, 129, 136, 127, 125, 147, 112, 123, 125, 113, 123, 141, 108, 125, 136, 124, 133, 114, 143, 148, 128, 123, 135, 126, 128, 133, 125, 100, 122, 142, 108, 126, 125, 113, 129, 136, 110, 125, 134, 115, 126, 127, 110, 123, 125, 138, 123, 134, 115, 116, 127, 120, 121, 106, 127, 121, 129, 124, 128, 124, 110, 118, 125, 116, 118, 117, 133, 123, 135, 144, 128, 125, 126, 138, 125, 127, 116, 121, 130, 135, 110, 144, 120, 131, 128, 127, 128, 125, 137, 127, 114, 122, 134, 122, 135, 137, 135, 122, 135, 130, 116, 142, 132, 125, 134, 118, 132, 129, 134, 157, 121, 124, 119, 117, 117, 98, 133, 128, 122, 131, 114, 128, 116, 149, 133, 127, 133, 122, 113, 118, 128, 140, 108, 131, 121, 120, 133, 123, 115, 115, 149, 115, 138, 120, 126, 119, 113, 138, 129, 106, 122, 152, 109, 113, 139, 133, 134, 122, 139, 128, 131, 114, 131, 139, 128, 132, 136, 125, 132, 117, 126, 139, 108, 120, 140, 143, 129, 124, 138, 137, 110, 125, 128, 123, 136, 112, 132, 111, 112, 122, 131, 122, 126, 140, 142, 123, 132, 134, 114, 122, 112, 120, 128, 146, 133, 123, 118, 135, 125, 130, 132, 149, 121, 142, 125, 132, 129, 128, 126, 97, 114, 113, 104, 123, 126, 120, 104, 131, 139, 121, 142, 140, 133, 103, 120, 141, 119, 152, 114, 120, 146, 122, 110, 139, 142, 123, 111, 102, 126, 129, 136, 136, 127, 135, 125, 119, 126, 125, 122, 135, 123, 117, 126, 144, 131, 141, 121, 112, 126, 123, 132, 143, 125, 130, 124, 128, 132, 130, 126, 131, 121, 130, 118, 115, 125, 138, 136, 126, 117, 134, 126, 124, 118, 127, 137, 126, 130, 126, 126, 109, 113, 124, 135, 134, 117, 119, 131, 123, 133, 128, 134, 122, 115, 137, 137, 143, 112, 123, 97, 121, 133, 132, 125, 131, 135, 127, 116, 122, 107, 121, 127, 147, 137, 142, 130, 141, 123, 141, 119, 128, 129, 119, 140, 133, 135, 112, 130, 135, 121, 127, 123, 131, 133, 121, 133, 110, 131, 124, 114, 107, 145, 123, 128, 136, 140, 119, 111, 133, 132, 125, 126, 133, 132, 115, 132, 122, 121, 129, 120, 127, 148, 131, 136, 113, 143, 105, 128, 130, 108, 137, 116, 117, 113, 128, 123, 110, 123, 124, 116, 130, 127, 110, 115, 115, 138, 110, 119, 136, 118, 121, 130, 139, 126, 131, 133, 124, 117, 124, 113, 143, 127, 119, 120, 111, 130, 130, 129, 146, 121, 108, 120, 133, 116, 116, 129, 126, 146, 112, 128, 125, 138, 132, 119, 113, 129, 140, 132, 117, 121, 137, 128, 115, 129, 139, 113, 124, 115, 120, 114, 129, 129, 131, 120, 103, 137, 123, 133, 105, 117, 109, 125, 105, 110, 135, 130, 123, 113, 119, 116, 125, 149, 127, 120, 117, 119, 132, 144, 127, 136, 119, 120, 124, 117, 131, 114, 136, 138, 118, 123, 121, 141, 128, 130, 123, 136, 122, 134, 122, 120, 111, 122, 121, 131, 130, 122, 133, 126, 134, 103, 122, 126, 133, 131, 123, 121, 137, 138, 116, 122, 115, 103, 112, 119, 115, 132, 116, 135, 117, 127, 130, 139, 133, 136, 133, 123, 119, 128, 123, 125, 134, 127, 109, 130, 118, 139, 132, 127, 122, 127, 129, 128, 106, 128, 123, 115, 125, 88, 120, 133, 129, 133, 130, 130, 136, 126, 112, 116, 116, 115, 120, 137, 117, 117, 123, 129, 123, 119, 126, 121, 132, 105, 143, 137, 135, 116, 143, 127, 113, 113, 110, 125, 114, 125, 119, 135, 124, 126, 114, 122, 116, 156, 143, 133, 112, 118, 131, 139, 122, 133, 119, 117, 148, 121, 129, 138, 134, 120, 108, 124, 135, 139, 118, 126, 127, 125, 132, 126, 134, 120, 127, 140, 135, 119, 134, 129, 134, 120, 127, 127, 124, 128, 133, 146, 101, 120, 129, 120, 132, 124, 109, 122, 116, 131, 111, 130, 131, 129, 112, 130, 148, 128, 133, 119, 139, 117, 145, 124, 127, 131, 123, 143, 121, 106, 118, 118, 121, 136, 127, 129, 134, 119, 135, 124, 118, 120, 141, 121, 109, 133, 115, 118, 127, 123, 141, 126, 122, 114, 129, 116, 107, 135, 133, 116, 123, 123, 125, 135, 115, 121, 124, 136, 126, 139, 131, 134, 154, 119, 140, 129, 124, 124, 123, 119, 123, 129, 138, 123, 135, 129, 134, 121, 117, 132, 134, 132, 134, 118, 126, 135, 132, 141, 136, 116, 134, 148, 128, 116, 117, 131, 114, 118, 128, 134, 108, 109, 132, 109, 130, 101, 133, 114, 131, 109, 114, 131, 135, 144, 131, 132, 134, 121, 131, 136, 121, 134, 117, 109, 117, 118, 149, 133, 129, 134, 129, 134, 126, 130, 138, 112, 123, 131, 132, 116, 126, 122, 138, 131, 130, 137, 132, 124, 137, 131, 120, 114, 130, 130, 138, 143, 132, 127, 130, 128, 118, 113, 116, 121, 115, 123, 129, 126, 140, 121, 128, 126, 128, 127, 125, 118, 114, 122, 159, 123, 131, 123, 113, 117, 129, 117, 108, 130, 101, 110, 121, 133, 123, 129, 124, 132, 122, 112, 126, 119, 141, 116, 141, 111, 125, 132, 120, 132, 122, 133, 112, 139, 116, 102, 117, 122, 117, 127, 112, 137, 127, 125, 109, 126, 123, 137, 134, 119, 120, 108, 114, 134, 136, 133, 134, 130, 129, 117, 123, 131, 127, 141, 145, 118, 123, 126, 142, 110, 126, 122, 120, 123, 130, 119, 144, 120, 126, 126, 131, 122, 137, 117, 143, 109, 133, 124, 132, 133, 144, 131, 132, 136, 129, 132, 150, 126, 119, 132, 130, 110, 136, 125, 118, 130, 136, 118, 143, 130, 135, 121, 104, 116, 130, 133, 121, 127, 134, 124, 112, 150, 123, 115, 123, 134, 121, 119, 136, 132, 121, 118, 131, 145, 114, 133, 118, 126, 123, 141, 138, 155, 124, 119, 127, 138, 136, 127, 134, 116, 117, 134, 134, 131, 120, 131, 130, 146, 113, 127, 116, 121, 130, 117, 119, 146, 130, 108, 134, 128, 117, 116, 125, 123, 110, 124, 121, 116, 128, 115, 118, 122, 121, 108, 127, 137, 148, 135, 110, 120, 128, 136, 125, 116, 117, 125, 116, 129, 115, 118, 135, 123, 124, 106, 149, 135, 113, 110, 133, 123, 141, 130, 133, 144, 123, 134, 128, 147, 120, 108, 139, 117, 131, 129, 132, 138, 134, 122, 141, 135, 108, 111, 127, 129, 133, 134, 139, 128, 137, 132, 126, 133, 130, 123, 139, 118, 114, 116, 135, 126, 110, 137, 101, 121, 120, 128, 122, 135, 125, 126, 127, 132, 105, 121, 128, 108, 127, 134, 140, 146, 124, 116, 121, 122, 141, 133, 118, 108, 148, 122, 118, 131, 126, 126, 117, 122, 115, 126, 132, 117, 127, 141, 101, 126, 127, 120, 125, 130, 166, 135, 114, 108, 118, 116, 133, 119, 113, 124, 120, 114, 104, 124, 126, 115, 152, 115, 121, 115, 158, 124, 123, 127, 116, 134, 121, 125, 129, 152, 134, 133, 126, 115, 130, 124, 131, 114, 130, 134, 124, 114, 121, 117, 142, 107, 121, 122, 139, 125, 135, 117, 125, 110, 123, 117, 126, 129, 114, 134, 122, 138, 104, 118, 113, 123, 123, 127, 123, 114, 147, 117, 111, 122, 115, 107, 120, 125, 141, 118, 134, 112, 127, 112, 111, 127, 129, 121, 127, 118, 121, 131, 126, 116, 135, 105, 113, 111, 157, 127, 128, 121, 130, 113, 117, 132, 124, 132, 126, 131, 114, 140, 122, 115, 107, 123, 112, 128, 123, 122, 132, 111, 135, 126, 126, 137, 124, 128, 121, 130, 108, 130, 120, 121, 125, 137, 127, 132, 120, 137, 123, 103, 120, 115, 122, 120, 119, 139, 126, 126, 119, 116, 138, 135, 112, 113, 138, 122, 119, 122, 140, 134, 120, 138, 113, 123, 128, 128, 120, 118, 139, 131, 130, 125, 133, 124, 116, 139, 121, 120, 102, 139, 130, 140, 130, 114, 143, 137, 124, 127, 131, 130, 130, 126, 152, 120, 120, 139, 117, 128, 121, 114, 129, 141, 115, 125, 128, 116, 128, 116, 131, 129, 129, 130, 127, 139, 124, 128, 131, 135, 121, 137, 122, 132, 113, 130, 109, 127, 119, 121, 122, 123, 137, 122, 117, 103, 143, 128, 108, 135, 136, 108, 123, 130, 117, 109, 133, 98, 128, 137, 121, 126, 120, 126, 121, 123, 127, 151, 140, 111, 138, 127, 118, 136, 113, 146, 121, 114, 137, 127, 126, 140, 130, 125, 115, 122, 139, 110, 132, 132, 121, 126, 115, 118, 129, 140, 122, 129, 138, 115, 109, 136, 108, 143, 117, 134, 128, 137, 116, 131, 129, 118, 127, 126, 124, 111, 129, 135, 129, 132, 121, 134, 132, 124, 117, 123, 119, 135, 126, 111, 88, 126, 136, 118, 124, 139, 121, 138, 133, 130, 132, 130, 128, 124, 115, 133, 129, 128, 120, 124, 135, 114, 118, 133, 121, 120, 123, 145, 128, 138, 134, 124, 129, 126, 98, 136, 130, 105, 124, 128, 133, 121, 128, 129, 122, 113, 136, 124, 117, 115, 128, 119, 118, 129, 140, 114, 113, 111, 117, 139, 129, 134, 112, 103, 134, 137, 107, 123, 138, 120, 106, 138, 122, 139, 120, 115, 110, 133, 129, 109, 116, 120, 127, 121, 118, 139, 129, 119, 115, 122, 143, 133, 135, 141, 125, 125, 129, 115, 119, 109, 116, 132, 108, 134, 130, 117, 132, 127, 137, 135, 135, 125, 128, 117, 108, 142, 108, 118, 140, 130, 113, 140, 134, 130, 123, 111, 106, 125, 116, 116, 117, 125, 137, 127, 135, 136, 126, 128, 118, 94, 124, 142, 127, 127, 154, 117, 114, 133, 120, 134, 128, 116, 119, 113, 142, 134, 124, 124, 135, 119, 132, 146, 115, 135, 138, 121, 122, 133, 118, 126, 120, 135, 127, 111, 130, 137, 122, 121, 133, 118, 125, 133, 153, 130, 124, 129, 126, 127, 119, 127, 126, 125, 122, 134, 120, 124, 133, 139, 135, 126, 128, 122, 139, 108, 135, 114, 148, 128, 146, 134, 121, 125, 125, 127, 122, 132, 114, 105, 122, 121, 132, 141, 116, 111, 135, 141, 121, 144, 113, 138, 118, 126, 119, 133, 126, 108, 127, 114, 104, 135, 131, 110, 127, 120, 121, 123, 110, 132, 148, 147, 130, 119, 130, 134, 123, 129, 118, 130, 125, 130, 122, 111, 120, 141, 104, 147, 126, 134, 139, 120, 140, 119, 136, 115, 112, 132, 129, 132, 118, 129, 125, 130, 115, 121, 123, 144, 125, 136, 109, 139, 138, 125, 125, 124, 149, 132, 123, 126, 123, 116, 130, 141, 123, 117, 125, 120, 117, 112, 123, 120, 128, 128, 119, 128, 143, 141, 119, 140, 118, 120, 114, 120, 124, 145, 106, 127, 124, 134, 117, 118, 138, 119, 118, 135, 137, 124, 127, 131, 107, 137, 132, 110, 128, 133, 127, 132, 121, 127, 141, 138, 127, 133, 113, 129, 110, 134, 116, 122, 130, 125, 125, 141, 109, 114, 138, 138, 126, 119, 128, 137, 130, 130, 119, 118, 128, 144, 122, 99, 128, 118, 142, 134, 116, 138, 111, 135, 120, 128, 136, 128, 130, 131, 125, 122, 138, 139, 120, 112, 122, 124, 122, 120, 127, 119, 137, 121, 115, 125, 111, 122, 127, 103, 109, 145, 125, 81, 137, 143, 115, 107, 110, 114, 133, 122, 144, 133, 112, 104, 135, 138, 134, 129, 129, 120, 115, 124, 145, 134, 127, 125, 131, 135, 103, 128, 145, 130, 123, 138, 128, 125, 135, 101, 140, 111, 128, 125, 125, 136, 133, 133, 122, 120, 136, 125, 139, 138, 135, 125, 130, 115, 137, 144, 112, 120, 128, 122, 139, 125, 134, 135, 123, 119, 129, 131, 110, 135, 117, 140, 129, 109, 120, 128, 130, 136, 115, 127, 135, 136, 133, 125, 137, 132, 115, 133, 141, 116, 133, 129, 121, 121, 122, 116, 133, 155, 124, 142, 120, 118, 129, 119, 132, 127, 135, 105, 115, 116, 131, 106, 117, 124, 116, 117, 123, 117, 123, 111, 125, 130, 123, 122, 131, 135, 141, 119, 137, 148, 119, 119, 125, 108, 123, 126, 108, 128, 138, 144, 143, 114, 130, 108, 132, 131, 115, 117, 109, 118, 143, 109, 128, 122, 123, 111, 118, 123, 110, 126, 137, 114, 134, 141, 138, 134, 123, 131, 114, 125, 115, 114, 128, 103, 120, 129, 124, 115, 124, 132, 137, 117, 123, 141, 140, 130, 153, 120, 121, 126, 105, 128, 131, 134, 141, 136, 132, 145, 113, 142, 125, 133, 118, 142, 134, 118, 114, 127, 116, 132, 119, 136, 130, 131, 130, 119, 136, 118, 125, 117, 131, 130, 124, 118, 137, 133, 123, 111, 142, 133, 126, 131, 119, 129, 111, 120, 135, 141, 115, 123, 123, 154, 132, 132, 123, 133, 113, 142, 119, 119, 141, 128, 107, 129, 129, 129, 114, 129, 143, 143, 131, 126, 135, 121, 104, 128, 136, 116, 139, 126, 121, 125, 119, 138, 117, 118, 121, 107, 121, 116, 124, 129, 128, 121, 128, 122, 125, 127, 129, 121, 124, 146, 131, 138, 127, 120, 129, 98, 126, 119, 120, 134, 124, 129, 130, 138, 140, 130, 99, 118, 128, 127, 109, 110, 127, 115, 115, 107, 143, 118, 109, 139, 122, 119, 132, 123, 120, 128, 127, 127, 109, 108, 108, 133, 121, 108, 112, 148, 139, 125, 125, 130, 142, 104, 89, 137, 141, 119, 123, 111, 130, 124, 123, 127, 125, 125, 125, 137, 126, 135, 121, 133, 126, 133, 112, 121, 123, 125, 120, 119, 113, 133, 135, 128, 119, 121, 103, 126, 127, 114, 118, 126, 126, 127, 124, 103, 141, 134, 121, 138, 133, 107, 121, 115, 135, 116, 121, 123, 135, 133, 121, 128, 137, 126, 131, 115, 123, 128, 125, 111, 126, 127, 117, 109, 147, 128, 118, 127, 111, 129, 119, 126, 149, 132, 127, 146, 137, 112, 154, 127, 124, 130, 123, 128, 113, 136, 122, 131, 108, 116, 145, 125, 122, 127, 112, 123, 119, 128, 117, 114, 124, 128, 121, 123, 133, 122, 117, 130, 151, 120, 156, 119, 114, 116, 115, 130, 127, 112, 115, 120, 116, 144, 130, 136, 125, 121, 113, 126, 129, 110, 124, 133, 149, 116, 123, 143, 114, 107, 126, 127, 150, 149, 107, 111, 127, 123, 108, 135, 126, 112, 117, 105, 112, 107, 124, 133, 117, 97, 133, 139, 133, 115, 129, 121, 122, 124, 118, 136, 134, 143, 128, 122, 113, 129, 122, 133, 110, 122, 118, 131, 130, 137, 118, 144, 127, 144, 129, 128, 105, 105, 127, 135, 131, 123, 131, 129, 109, 113, 121, 106, 126, 117, 119, 136, 124, 119, 119, 115, 122, 119, 123, 125, 146, 122, 147, 107, 115, 124, 120, 121, 138, 121, 113, 123, 140, 132, 141, 125, 118, 129, 115, 117, 115, 130, 140, 139, 126, 119, 131, 130, 124, 126, 125, 119, 127, 117, 130, 114, 124, 113, 138, 132, 129, 128, 125, 118, 117, 128, 123, 121, 98, 107, 123, 115, 119, 122, 118, 137, 138, 122, 121, 160, 123, 132, 116, 146, 149, 150, 130, 117, 115, 128, 133, 107, 131, 127, 117, 128, 140, 125, 116, 125, 123, 114, 127, 123, 117, 118, 132, 110, 102, 135, 125, 119, 118, 123, 140, 119, 132, 137, 125, 127, 129, 126, 119, 101, 138, 131, 127, 124, 121, 121, 108, 126, 122, 125, 110, 146, 95, 114, 147, 111, 120, 148, 139, 121, 127, 124, 141, 123, 112, 127, 98, 125, 127, 129, 111, 139, 127, 121, 130, 137, 147, 110, 120, 111, 110, 124, 137, 121, 145, 126, 126, 115, 126, 121, 106, 140, 114, 150, 114, 119, 130, 127, 134, 129, 147, 121, 125, 120, 111, 139, 102, 101, 120, 127, 129, 110, 109, 110, 107, 119, 130, 117, 127, 130, 128, 132, 129, 118, 101, 140, 124, 99, 123, 152, 129, 122, 125, 130, 113, 109, 123, 145, 119, 123, 130, 132, 131, 139, 127, 127, 125, 130, 134, 120, 115, 117, 139, 129, 116, 118, 110, 100, 120, 132, 123, 131, 108, 117, 137, 131, 117, 119, 145, 121, 131, 124, 125, 121, 111, 134, 123, 126, 115, 143, 118, 152, 142, 115, 103, 127, 123, 139, 103, 128, 114, 123, 126, 124, 146, 130, 115, 120, 138, 131, 136, 139, 128, 149, 119, 125, 160, 124, 128, 120, 123, 139, 115, 137, 120, 130, 139, 126, 119, 136, 120, 138, 137, 107, 117, 127, 123, 124, 127, 129, 108, 118, 152, 118, 117, 140, 131, 127, 125, 138, 125, 123, 104, 135, 114, 130, 117, 129, 108, 129, 139, 119, 119, 137, 126, 129, 101, 134, 132, 124, 119, 131, 140, 118, 114, 110, 112, 120, 133, 120, 103, 134, 133, 127, 135, 124, 138, 137, 121, 110, 141, 132, 136, 121, 131, 125, 114, 100, 122, 127, 118, 113, 126, 130, 127, 130, 137, 130, 111, 123, 115, 133, 133, 118, 119, 109, 138, 112, 130, 153, 124, 128, 125, 137, 126, 119, 134, 106, 157, 126, 112, 129, 120, 133, 121, 119, 132, 128, 102, 121, 134, 110, 136, 118, 128, 126, 134, 108, 121, 129, 148, 125, 143, 124, 130, 118, 114, 124, 127, 119, 128, 128, 118, 106, 118, 137, 129, 123, 127, 116, 122, 136, 134, 111, 115, 114, 153, 149, 124, 107, 125, 132, 129, 120, 122, 119, 126, 132, 123, 121, 129, 137, 90, 106, 115, 125, 119, 126, 112, 123, 131, 133, 142, 124, 144, 154, 132, 143, 123, 120, 120, 105, 125, 104, 117, 121, 113, 134, 101, 123, 124, 114, 141, 122, 123, 125, 131, 127, 118, 134, 118, 120, 134, 132, 107, 135, 115, 129, 134, 118, 108, 136, 119, 107, 120, 137, 125, 124, 109, 139, 130, 126, 113, 123, 133, 127, 139, 130, 140, 137, 125, 127, 106, 145, 125, 150, 132, 130, 114, 130, 131, 121, 114, 137, 133, 138, 123, 124, 124, 118, 116, 105, 123, 143, 138, 128, 128, 133, 139, 115, 127, 157, 131, 136, 140, 117, 128, 122, 125, 130, 128, 135, 165, 139, 126, 114, 140, 108, 114, 129, 93, 129, 122, 140, 122, 111, 142, 131, 134, 125, 131, 132, 138, 125, 137, 123, 139, 136, 136, 137, 112, 131, 135, 135, 130, 136, 127, 130, 131, 121, 131, 122, 127, 148, 138, 126, 116, 132, 132, 116, 126, 111, 134, 122, 118, 112, 122, 140, 133, 108, 126, 140, 114, 120, 116, 126, 109, 118, 122, 122, 118, 123, 117, 117, 136, 144, 120, 141, 130, 128, 145, 149, 126, 121, 127, 117, 112, 131, 117, 120, 114, 120, 144, 146, 106, 117, 128, 120, 122, 122, 113, 133, 128, 108, 128, 123, 134, 128, 119, 119, 136, 118, 119, 125, 140, 122, 136, 115, 137, 137, 119, 119, 115, 135, 118, 119, 124, 129, 118, 129, 131, 114, 123, 119, 136, 122, 123, 126, 121, 137, 128, 130, 131, 144, 135, 141, 130, 112, 119, 129, 119, 112, 141, 126, 123, 133, 145, 123, 123, 101, 125, 136, 123, 142, 124, 131, 116, 141, 150, 130, 126, 123, 134, 130, 116, 146, 136, 122, 125, 115, 140, 120, 124, 123, 127, 102, 118, 123, 120, 112, 117, 119, 120, 113, 111, 112, 83, 126, 115, 110, 128, 137, 114, 126, 126, 132, 116, 123, 125, 112, 127, 121, 124, 124, 126, 137, 129, 124, 131, 129, 136, 128, 113, 106, 129, 130, 125, 112, 135, 117, 118, 145, 122, 115, 112, 112, 122, 123, 129, 105, 121, 113, 109, 130, 121, 137, 132, 131, 139, 121, 116, 121, 109, 134, 121, 125, 122, 131, 126, 126, 123, 121, 127, 125, 129, 126, 129, 116, 125, 101, 131, 127, 117, 128, 140, 129, 113, 152, 145, 121, 144, 112, 132, 127, 135, 120, 121, 138, 123, 131, 121, 126, 134, 135, 106, 121, 133, 128, 140, 117, 134, 137, 98, 109, 134, 127, 106, 124, 120, 140, 131, 127, 120, 130, 122, 130, 120, 130, 112, 124, 134, 127, 124, 104, 128, 130, 120, 132, 121, 122, 124, 130, 119, 120, 115, 128, 116, 150, 123, 120, 109, 127, 136, 128, 132, 139, 128, 126, 118, 132, 144, 117, 143, 124, 134, 125, 126, 127, 123, 130, 132, 131, 127, 119, 130, 137, 128, 122, 134, 126, 121, 118, 137, 111, 133, 135, 138, 150, 136, 124, 125, 128, 137, 129, 142, 152, 118, 133, 129, 131, 123, 134, 105, 135, 130, 120, 127, 127, 128, 150, 110, 122, 114, 124, 129, 117, 154, 130, 129, 102, 136, 126, 121, 131, 129, 114, 113, 114, 123, 123, 105, 135, 138, 115, 134, 130, 129, 130, 131, 128, 131, 120, 116, 113, 137, 117, 132, 119, 139, 141, 133, 133, 131, 127, 132, 165, 115, 130, 128, 110, 118, 119, 130, 124, 126, 122, 120, 134, 130, 123, 147, 137, 121, 117, 117, 117, 127, 123, 120, 128, 123, 135, 113, 114, 122, 122, 120, 130, 118, 124, 113, 133, 125, 134, 115, 142, 121, 119, 119, 112, 122, 127, 119, 119, 125, 132, 152, 135, 114, 113, 129, 123, 139, 134, 119, 119, 123, 127, 127, 134, 127, 111, 113, 126, 120, 122, 133, 117, 139, 140, 117, 114, 106, 119, 116, 114, 129, 114, 149, 136, 135, 134, 116, 124, 110, 126, 126, 136, 135, 120, 114, 123, 112, 127, 120, 133, 120, 125, 122, 123, 124, 138, 136, 101, 144, 120, 122, 141, 131, 119, 117, 100, 131, 113, 124, 133, 120, 146, 135, 116, 131, 115, 129, 119, 127, 140, 126, 119, 134, 119, 139, 124, 107, 126, 129, 118, 133, 117, 120, 123, 146, 127, 124, 124, 120, 122, 127, 121, 114, 131, 125, 118, 117, 132, 128, 127, 112, 130, 128, 125, 117, 134, 114, 124, 115, 128, 129, 125, 120, 140, 120, 118, 137, 130, 126, 114, 111, 133, 149, 123, 116, 123, 120, 146, 134, 145, 115, 122, 135, 124, 127, 123, 138, 118, 125, 108, 123, 141, 126, 124, 133, 125, 144, 120, 145, 122, 119, 123, 130, 125, 135, 140, 140, 139, 115, 128, 122, 122, 126, 112, 127, 118, 120, 124, 117, 127, 122, 139, 126, 148, 129, 123, 134, 136, 135, 126, 125, 117, 128, 133, 124, 118, 117, 108, 119, 110, 100, 118, 132, 137, 130, 126, 125, 125, 118, 127, 117, 119, 121, 145, 127, 133, 124, 123, 137, 125, 133, 122, 130, 117, 129, 114, 107, 125, 135, 118, 125, 109, 109, 148, 119, 130, 132, 139, 114, 130, 137, 121, 116, 140, 125, 118, 120, 126, 127, 119, 110, 135, 115, 133, 120, 108, 120, 130, 118, 127, 124, 141, 142, 120, 134, 132, 130, 122, 124, 119, 144, 136, 118, 127, 131, 129, 114, 126, 141, 137, 114, 112, 117, 131, 121, 108, 115, 109, 117, 104, 137, 117, 118, 136, 113, 129, 119, 112, 128, 125, 102, 131, 130, 137, 111, 126, 118, 119, 130, 118, 105, 135, 127, 119, 135, 124, 127, 146, 140, 134, 119, 130, 126, 109, 118, 112, 111, 132, 127, 138, 127, 135, 117, 119, 128, 137, 120, 124, 127, 115, 117, 126, 137, 131, 116, 111, 122, 124, 114, 126, 126, 117, 133, 133, 129, 129, 113, 134, 116, 126, 121, 112, 122, 112, 134, 107, 120, 127, 125, 124, 115, 108, 121, 119, 130, 120, 129, 136, 100, 116, 133, 132, 131, 145, 125, 123, 117, 135, 134, 143, 132, 112, 121, 104, 129, 115, 140, 120, 130, 127, 125, 123, 108, 138, 121, 112, 114, 124, 127, 131, 103, 115, 138, 126, 141, 133, 137, 106, 126, 119, 123, 120, 132, 125, 140, 119, 133, 134, 130, 133, 115, 123, 126, 120, 119, 119, 135, 130, 108, 133, 115, 124, 127, 128, 113, 127, 146, 100, 133, 127, 120, 149, 131, 113, 126, 125, 145, 136, 118, 120, 131, 128, 124, 118, 142, 130, 123, 118, 125, 126, 144, 126, 134, 128, 121, 120, 109, 119, 135, 113, 124, 130, 140, 136, 137, 123, 117, 127, 116, 131, 115, 125, 147, 128, 128, 121, 123, 120, 141, 123, 127, 120, 156, 114, 127, 123, 125, 135, 124, 134, 117, 105, 122, 127, 132, 134, 133, 140, 116, 120, 138, 120, 140, 127, 128, 119, 122, 120, 132, 119, 138, 146, 120, 136, 118, 127, 118, 111, 141, 148, 120, 120, 132, 131, 135, 114, 137, 124, 112, 117, 130, 128, 120, 129, 123, 105, 130, 128, 124, 119, 115, 118, 119, 144, 123, 118, 139, 141, 114, 136, 122, 149, 115, 130, 132, 147, 127, 124, 118, 130, 135, 124, 116, 126, 130, 127, 109, 109, 121, 133, 137, 137, 105, 111, 127, 128, 140, 120, 117, 133, 133, 123, 128, 119, 124, 135, 129, 132, 123, 109, 117, 124, 134, 120, 127, 121, 129, 135, 102, 130, 106, 136, 116, 123, 120, 110, 114, 122, 125, 133, 117, 130, 128, 119, 127, 118, 136, 121, 127, 139, 121, 118, 117, 135, 111, 126, 116, 116, 118, 124, 128, 130, 144, 118, 131, 128, 120, 120, 125, 132, 140, 144, 135, 121, 129, 139, 136, 119, 134, 130, 125, 119, 116, 134, 125, 130, 107, 123, 118, 115, 117, 129, 127, 130, 131, 138, 119, 126, 120, 118, 126, 133, 106, 134, 124, 118, 99, 136, 133, 143, 136, 124, 126, 117, 133, 111, 118, 133, 113, 116, 144, 124, 122, 116, 121, 107, 142, 140, 137, 126, 126, 120, 119, 116, 126, 130, 143, 133, 122, 117, 135, 111, 130, 118, 120, 137, 130, 137, 109, 108, 130, 128, 123, 122, 115, 158, 141, 117, 108, 125, 113, 117, 129, 138, 136, 129, 143, 125, 129, 135, 137, 127, 115, 139, 127, 142, 143, 147, 113, 133, 129, 140, 127, 135, 140, 119, 135, 116, 115, 127, 139, 133, 112, 122, 129, 128, 128, 136, 114, 106, 129, 129, 131, 118, 131, 145, 151, 134, 126, 123, 120, 119, 109, 134, 133, 135, 106, 127, 128, 114, 135, 123, 118, 119, 131, 119, 135, 110, 125, 119, 131, 127, 89, 129, 116, 118, 120, 121, 115, 120, 115, 127, 131, 123, 118, 116, 147, 138, 129, 132, 129, 118, 110, 119, 116, 121, 118, 109, 124, 118, 131, 123, 110, 114, 125, 115, 125, 131, 151, 130, 123, 130, 117, 133, 124, 120, 119, 110, 145, 129, 126, 120, 125, 134, 120, 126, 118, 126, 131, 129, 120, 133, 117, 133, 129, 138, 117, 108, 127, 126, 127, 129, 131, 135, 136, 135, 120, 130, 150, 139, 116, 126, 137, 116, 131, 124, 127, 137, 128, 130, 137, 142, 136, 132, 118, 151, 110, 144, 118, 130, 134, 128, 137, 126, 124, 117, 123, 138, 125, 128, 120, 127, 119, 128, 129, 119, 127, 131, 123, 137, 129, 119, 117, 115, 107, 132, 129, 126, 111, 146, 130, 134, 137, 138, 129, 123, 129, 124, 120, 111, 129, 131, 134, 118, 137, 126, 122, 129, 134, 116, 131, 124, 127, 117, 123, 118, 136, 113, 134, 136, 144, 118, 126, 119, 113, 149, 123, 115, 121, 149, 125, 122, 140, 133, 104, 109, 134, 118, 121, 131, 126, 140, 121, 112, 124, 131, 127, 107, 105, 130, 121, 110, 126, 119, 120, 130, 113, 113, 130, 99, 135, 120, 129, 106, 154, 120, 123, 120, 119, 144, 153, 118, 121, 119, 120, 118, 142, 130, 127, 144, 106, 126, 110, 139, 115, 119, 126, 112, 130, 103, 114, 114, 118, 125, 122, 122, 129, 148, 118, 122, 140, 118, 101, 120, 128, 128, 123, 118, 150, 125, 116, 137, 125, 113, 126, 113, 125, 122, 107, 113, 122, 117, 136, 130, 115, 151, 118, 118, 131, 130, 125, 119, 115, 134, 131, 109, 132, 97, 133, 121, 123, 135, 125, 109, 124, 134, 127, 129, 111, 136, 128, 136, 104, 119, 124, 147, 147, 130, 111, 128, 139, 135, 132, 126, 138, 131, 120, 106, 130, 131, 125, 125, 115, 112, 136, 128, 124, 114, 132, 109, 113, 128, 104, 122, 122, 132, 134, 110, 121, 110, 149, 146, 132, 107, 137, 125, 123, 129, 129, 143, 117, 110, 136, 128, 127, 136, 115, 126, 126, 128, 122, 124, 128, 132, 144, 127, 120, 111, 113, 122, 128, 135, 119, 115, 118, 119, 105, 130, 133, 118, 118, 126, 101, 121, 124, 120, 127, 137, 122, 147, 126, 144, 117, 122, 124, 115, 126, 121, 125, 110, 147, 124, 127, 111, 122, 125, 118, 133, 133, 109, 136, 121, 127, 123, 107, 134, 108, 133, 119, 125, 123, 128, 128, 111, 122, 131, 145, 124, 132, 111, 128, 135, 129, 136, 135, 126, 134, 128, 125, 127, 141, 123, 127, 116, 132, 125, 121, 105, 130, 109, 138, 127, 144, 126, 118, 118, 115, 125, 116, 140, 123, 123, 118, 139, 132, 139, 125, 116, 117, 119, 124, 126, 122, 127, 117, 140, 117, 129, 129, 131, 116, 135, 121, 131, 150, 125, 124, 116, 126, 126, 128, 120, 129, 131, 146, 122, 123, 127, 122, 146, 134, 116, 142, 131, 118, 113, 134, 112, 136, 126, 118, 120, 128, 128, 125, 126, 131, 113, 119, 133, 131, 125, 132, 120, 130, 129, 136, 125, 123, 140, 126, 120, 123, 123, 132, 134, 132, 128, 124, 135, 120, 118, 128, 125, 115, 119, 122, 134, 124, 137, 118, 135, 114, 127, 116, 115, 116, 114, 123, 120, 125, 118, 128, 138, 131, 127, 115, 100, 137, 142, 99, 142, 111, 124, 115, 127, 130, 121, 147, 119, 138, 128, 131, 124, 121, 114, 118, 116, 112, 138, 121, 121, 121, 120, 103, 118, 109, 129, 126, 113, 119, 97, 128, 132, 124, 145, 124, 127, 125, 129, 117, 124, 120, 105, 125, 119, 139, 129, 134, 121, 132, 142, 134, 137, 111, 118, 124, 113, 113, 122, 128, 124, 114, 117, 128, 135, 107, 115, 111, 119, 126, 105, 135, 128, 131, 118, 132, 136, 112, 130, 126, 128, 99, 100, 125, 118, 116, 136, 135, 122, 112, 123, 135, 120, 125, 129, 120, 124, 121, 121, 143, 124, 141, 135, 121, 133, 139, 117, 112, 129, 119, 121, 135, 112, 122, 131, 136, 123, 104, 141, 129, 118, 109, 113, 126, 132, 135, 119, 132, 119, 133, 132, 110, 116, 119, 136, 129, 125, 121, 109, 121, 110, 119, 119, 132, 109, 140, 118, 133, 138, 129, 126, 134, 122, 118, 100, 119, 123, 139, 143, 132, 126, 125, 128, 125, 126, 125, 142, 121, 112, 128, 125, 142, 133, 117, 132, 126, 124, 134, 120, 124, 119, 127, 141, 132, 118, 146, 123, 124, 116, 132, 134, 124, 131, 125, 127, 116, 123, 117, 126, 139, 138, 137, 121, 132, 131, 133, 123, 127, 117, 140, 141, 137, 125, 115, 131, 121, 132, 133, 129, 118, 128, 147, 128, 127, 120, 125, 114, 113, 129, 132, 121, 127, 116, 137, 127, 125, 135, 121, 121, 137, 112, 106, 120, 114, 149, 141, 117, 122, 129, 126, 131, 121, 111, 127, 114, 132, 122, 116, 113, 112, 113, 130, 130, 133, 129, 119, 123, 134, 137, 119, 117, 111, 117, 125, 135, 132, 130, 112, 144, 134, 148, 155, 115, 125, 124, 132, 129, 131, 122, 127, 138, 122, 123, 124, 120, 124, 110, 104, 120, 135, 145, 127, 132, 106, 135, 126, 123, 133, 126, 127, 129, 131, 143, 130, 119, 122, 122, 126, 131, 122, 121, 139, 114, 123, 125, 123, 132, 123, 138, 126, 131, 131, 124, 122, 124, 124, 114, 129, 135, 106, 117, 141, 140, 118, 130, 116, 126, 144, 110, 128, 128, 133, 107, 124, 131, 127, 110, 125, 124, 124, 128, 136, 120, 123, 100, 131, 124, 133, 134, 116, 138, 114, 136, 129, 118, 114, 149, 133, 133, 126, 139, 134, 118, 143, 129, 124, 120, 122, 129, 117, 119, 116, 115, 124, 144, 140, 139, 121, 129, 133, 120, 107, 128, 129, 138, 125, 125, 122, 129, 122, 125, 131, 115, 132, 123, 132, 121, 127, 120, 116, 146, 136, 124, 114, 131, 128, 110, 122, 137, 119, 112, 119, 133, 119, 135, 137, 132, 124, 123, 114, 118, 116, 108, 126, 119, 127, 111, 118, 145, 116, 118, 129, 125, 126, 130, 136, 132, 115, 112, 136, 122, 130, 133, 123, 109, 120, 126, 137, 132, 136, 131, 128, 125, 107, 114, 117, 134, 137, 129, 124, 121, 119, 129, 139, 126, 125, 127, 134, 136, 139, 132, 120, 113, 121, 126, 138, 133, 132, 118, 127, 117, 116, 126, 130, 117, 125, 122, 119, 130, 128, 136, 124, 117, 155, 114, 139, 115, 116, 134, 120, 135, 151, 121, 123, 122, 144, 118, 132, 125, 133, 113, 122, 128, 135, 137, 127, 131, 123, 131, 125, 125, 113, 125, 135, 115, 122, 128, 134, 133, 121, 122, 127, 127, 133, 113, 132, 124, 122, 124, 140, 131, 134, 133, 137, 117, 141, 128, 104, 117, 122, 123, 124, 133, 122, 117, 143, 113, 131, 125, 120, 121, 131, 126, 126, 142, 134, 107, 101, 135, 129, 124, 125, 117, 127, 120, 135, 133, 119, 123, 122, 116, 123, 134, 119, 109, 139, 123, 123, 124, 124, 131, 119, 132, 135, 126, 108, 122, 124, 111, 132, 140, 118, 144, 123, 125, 115, 115, 126, 119, 127, 142, 135, 141, 127, 136, 110, 133, 137, 118, 120, 112, 129, 122, 155, 126, 123, 123, 117, 129, 123, 129, 130, 112, 112, 129, 120, 143, 117, 122, 129, 121, 130, 133, 127, 109, 136, 126, 150, 116, 132, 129, 122, 139, 110, 117, 134, 139, 131, 119, 109, 140, 124, 129, 108, 128, 110, 123, 136, 122, 124, 126, 134, 129, 135, 137, 133, 138, 113, 124, 124, 110, 139, 125, 135, 124, 131, 103, 107, 119, 126, 119, 113, 115, 122, 135, 122, 124, 126, 112, 127, 124, 121, 135, 130, 122, 114, 128, 120, 129, 131, 124, 120, 117, 145, 134, 112, 136, 125, 124, 120, 135, 124, 131, 138, 122, 119, 116, 131, 119, 121, 112, 104, 134, 142, 129, 128, 118, 145, 129, 119, 126, 100, 113, 132, 129, 137, 116, 149, 129, 121, 134, 117, 123, 124, 131, 125, 122, 134, 116, 139, 111, 121, 129, 119, 132, 139, 119, 128, 133, 127, 121, 126, 123, 112, 121, 113, 119, 129, 122, 153, 127, 121, 124, 91, 109, 121, 142, 136, 137, 136, 120, 114, 128, 128, 127, 125, 108, 114, 134, 118, 134, 115, 113, 119, 138, 118, 102, 116, 109, 112, 122, 129, 126, 133, 114, 127, 122, 131, 130, 121, 118, 133, 134, 123, 127, 144, 120, 145, 127, 130, 109, 133, 131, 133, 129, 132, 126, 150, 111, 136, 114, 147, 121, 139, 109, 121, 115, 118, 136, 117, 133, 138, 118, 130, 131, 116, 113, 134, 131, 124, 121, 123, 148, 128, 131, 132, 129, 124, 111, 119, 136, 114, 124, 128, 126, 125, 133, 140, 118, 130, 126, 121, 111, 142, 122, 147, 146, 128, 107, 117, 137, 115, 135, 126, 127, 117, 123, 123, 123, 109, 140, 128, 122, 129, 105, 124, 137, 124, 125, 141, 124, 154, 133, 116, 123, 120, 125, 118, 138, 116, 134, 124, 125, 126, 121, 135, 115, 116, 122, 129, 113, 132, 124, 104, 119, 120, 136, 138, 127, 129, 117, 127, 120, 125, 130, 111, 117, 113, 121, 136, 111, 154, 129, 123, 114, 129, 116, 110, 104, 139, 124, 134, 124, 125, 137, 119, 124, 133, 150, 142, 154, 128, 123, 105, 132, 137, 125, 112, 124, 141, 143, 112, 132, 135, 128, 115, 119, 126, 123, 110, 111, 108, 122, 123, 121, 129, 127, 121, 110, 125, 125, 120, 117, 123, 119, 128, 143, 132, 122, 122, 114, 139, 135, 132, 125, 131, 101, 119, 121, 137, 129, 122, 121, 135, 123, 109, 118, 120, 122, 122, 127, 126, 116, 108, 121, 128, 133, 130, 122, 127, 139, 96, 109, 128, 127, 142, 135, 108, 135, 120, 136, 126, 132, 125, 125, 131, 119, 127, 130, 105, 126, 120, 132, 120, 127, 107, 134, 119, 121, 106, 150, 125, 113, 137, 104, 125, 107, 124, 134, 138, 132, 115, 123, 125, 118, 123, 135, 140, 129, 131, 149, 122, 122, 116, 126, 119, 125, 117, 140, 123, 130, 128, 132, 121, 112, 123, 116, 125, 147, 134, 128, 123, 133, 122, 137, 111, 120, 122, 121, 110, 126, 123, 125, 133, 118, 119, 117, 136, 112, 117, 128, 112, 128, 123, 117, 113, 118, 129, 125, 125, 123, 114, 109, 129, 120, 107, 128, 136, 116, 125, 138, 120, 127, 114, 113, 130, 131, 139, 121, 132, 133, 135, 124, 137, 141, 121, 126, 132, 118, 120, 132, 120, 128, 126, 131, 122, 134, 130, 109, 128, 125, 144, 122, 120, 107, 109, 136, 143, 111, 131, 111, 130, 128, 130, 129, 123, 128, 134, 125, 127, 131, 120, 126, 118, 115, 141, 139, 130, 127, 131, 113, 131, 112, 125, 138, 121, 134, 123, 132, 136, 112, 119, 121, 122, 121, 117, 125, 121, 112, 130, 125, 137, 134, 132, 129, 128, 120, 121, 126, 132, 130, 122, 130, 128, 120, 124, 134, 98, 131, 133, 110, 120, 129, 120, 121, 126, 124, 128, 129, 110, 118, 113, 134, 122, 132, 108, 122, 126, 126, 123, 135, 134, 125, 142, 138, 128, 126, 124, 119, 130, 115, 136, 129, 136, 156, 102, 121, 114, 127, 128, 140, 123, 133, 127, 140, 128, 132, 108, 130, 117, 125, 129, 112, 141, 150, 138, 124, 169, 128, 104, 118, 134, 137, 125, 122, 126, 102, 122, 133, 113, 139, 140, 117, 128, 140, 125, 117, 132, 137, 126, 110, 110, 144, 128, 125, 107, 126, 123, 145, 123, 122, 128, 133, 135, 121, 111, 128, 134, 116, 113, 137, 133, 135, 111, 132, 123, 133, 127, 118, 131, 128, 138, 139, 121, 138, 147, 132, 123, 123, 127, 146, 122, 120, 108, 133, 113, 138, 134, 131, 128, 129, 118, 118, 129, 127, 129, 125, 114, 120, 106, 122, 114, 120, 145, 121, 119, 124, 126, 117, 105, 140, 124, 131, 125, 125, 128, 125, 111, 126, 132, 125, 133, 119, 126, 126, 146, 132, 126, 113, 124, 121, 134, 113, 126, 132, 104, 116, 127, 120, 127, 114, 126, 134, 120, 145, 120, 141, 124, 136, 138, 128, 135, 138, 116, 129, 119, 119, 117, 127, 136, 135, 114, 132, 130, 120, 144, 130, 117, 122, 120, 117, 118, 122, 132, 126, 120, 124, 134, 122, 118, 135, 139, 129, 127, 144, 127, 128, 115, 104, 123, 118, 127, 124, 134, 165, 124, 128, 118, 124, 105, 124, 124, 136, 138, 133, 116, 125, 137, 143, 116, 127, 101, 126, 154, 119, 112, 132, 120, 130, 140, 116, 125, 97, 126, 139, 129, 120, 114, 127, 125, 116, 103, 127, 108, 110, 115, 116, 127, 139, 134, 128, 134, 121, 136, 131, 140, 118, 133, 129, 115, 114, 111, 129, 141, 134, 110, 112, 129, 114, 130, 116, 119, 107, 127, 102, 115, 113, 133, 114, 118, 135, 113, 134, 122, 131, 119, 114, 145, 135, 119, 129, 142, 121, 108, 140, 115, 118, 114, 118, 119, 151, 125, 135, 125, 117, 122, 111, 120, 135, 118, 121, 139, 128, 146, 139, 136, 129, 136, 128, 91, 121, 116, 134, 126, 107, 136, 129, 106, 123, 106, 118, 125, 150, 140, 132, 120, 152, 128, 135, 123, 126, 104, 132, 118, 111, 127, 115, 104, 128, 129, 116, 118, 119, 115, 131, 130, 121, 137, 124, 130, 107, 105, 135, 116, 120, 124, 140, 116, 129, 140, 134, 123, 128, 121, 149, 117, 111, 146, 135, 115, 105, 127, 118, 121, 119, 119, 116, 133, 118, 137, 114, 140, 130, 127, 109, 121, 121, 133, 117, 141, 120, 124, 148, 111, 119, 128, 124, 145, 128, 120, 130, 114, 132, 130, 152, 121, 116, 126, 128, 126, 118, 112, 125, 116, 138, 111, 135, 128, 120, 125, 114, 132, 126, 116, 133, 136, 123, 122, 127, 116, 123, 130, 132, 119, 122, 121, 116, 117, 116, 125, 122, 135, 127, 125, 130, 122, 132, 124, 125, 117, 121, 121, 121, 117, 132, 121, 114, 125, 127, 110, 142, 140, 124, 140, 138, 123, 119, 124, 113, 130, 139, 118, 128, 131, 125, 112, 119, 126, 113, 127, 133, 130, 149, 126, 131, 137, 134, 125, 134, 127, 122, 138, 110, 128, 134, 122, 126, 106, 126, 122, 129, 120, 140, 130, 140, 134, 108, 131, 120, 121, 129, 134, 120, 137, 126, 122, 128, 131, 141, 112, 118, 130, 126, 128, 122, 131, 121, 127, 128, 130, 130, 124, 118, 139, 123, 126, 133, 120, 125, 125, 113, 122, 130, 127, 119, 131, 142, 127, 124, 108, 126, 123, 124, 125, 121, 124, 128, 129, 134, 129, 147, 116, 132, 123, 125, 103, 124, 131, 129, 125, 116, 107, 124, 133, 119, 116, 135, 117, 139, 120, 119, 127, 126, 130, 131, 124, 128, 129, 121, 117, 135, 111, 128, 124, 124, 138, 138, 115, 131, 123, 139, 142, 120, 143, 125, 113, 121, 110, 121, 129, 121, 123, 127, 110, 129, 121, 128, 120, 122, 121, 129, 128, 124, 128, 127, 157, 144, 121, 130, 121, 109, 118, 128, 133, 121, 118, 126, 139, 131, 135, 134, 137, 123, 127, 120, 135, 151, 120, 133, 120, 127, 146, 119, 118, 139, 124, 128, 125, 123, 113, 124, 130, 133, 125, 144, 122, 100, 117, 124, 120, 138, 118, 142, 135, 122, 126, 124, 138, 147, 129, 133, 128, 129, 121, 130, 124, 125, 116, 118, 143, 114, 135, 142, 129, 128, 120, 119, 127, 120, 125, 129, 131, 131, 122, 139, 113, 124, 126, 123, 131, 143, 131, 143, 113, 115, 127, 118, 133, 125, 127, 136, 134, 127, 141, 138, 132, 113, 113, 123, 121, 139, 127, 122, 126, 114, 140, 115, 123, 136, 128, 111, 115, 119, 135, 118, 125, 115, 121, 145, 137, 145, 132, 125, 127, 142, 144, 114, 125, 120, 144, 113, 120, 122, 138, 128, 123, 109, 130, 128, 129, 139, 116, 120, 124, 137, 133, 119, 128, 117, 134, 138, 118, 117, 127, 125, 145, 125, 133, 125, 116, 118, 138, 119, 127, 124, 135, 141, 119, 140, 124, 112, 129, 123, 127, 121, 139, 139, 122, 137, 121, 119, 134, 113, 127, 130, 123, 140, 137, 122, 137, 116, 139, 125, 127, 136, 133, 140, 112, 116, 132, 127, 134, 124, 134, 117, 136, 134, 141, 139, 138, 124, 125, 130, 142, 126, 117, 135, 141, 123, 145, 132, 117, 131, 126, 133, 121, 100, 117, 127, 117, 111, 124, 125, 108, 131, 120, 139, 126, 111, 123, 139, 135, 109, 135, 116, 142, 112, 117, 118, 139, 135, 114, 138, 129, 109, 128, 116, 136, 121, 108, 141, 139, 140, 144, 113, 136, 123, 138, 118, 132, 124, 132, 129, 105, 124, 140, 118, 140, 134, 126, 125, 139, 114, 125, 108, 128, 122, 127, 126, 118, 113, 114, 115, 133, 129, 138, 125, 123, 121, 111, 133, 114, 112, 115, 136, 120, 128, 130, 142, 124, 122, 121, 122, 116, 124, 132, 126, 132, 122, 130, 124, 116, 116, 139, 119, 134, 141, 126, 131, 115, 129, 136, 131, 139, 133, 121, 121, 147, 132, 133, 133, 124, 129, 148, 110, 169, 127, 129, 126, 132, 144, 129, 127, 118, 123, 121, 144, 142, 132, 124, 129, 125, 127, 124, 126, 125, 134, 142, 127, 127, 117, 124, 121, 127, 124, 128, 112, 137, 131, 134, 123, 130, 133, 125, 117, 109, 113, 124, 122, 130, 118, 129, 116, 129, 122, 117, 136, 129, 118, 119, 133, 119, 124, 137, 132, 132, 128, 143, 132, 120, 134, 139, 130, 123, 126, 123, 128, 123, 134, 114, 134, 112, 116, 111, 118, 130, 135, 140, 142, 130, 112, 114, 135, 138, 122, 133, 123, 129, 135, 122, 109, 123, 134, 112, 121, 111, 129, 136, 130, 101, 124, 121, 121, 132, 125, 136, 142, 110, 117, 116, 92, 120, 140, 124, 127, 130, 127, 138, 125, 121, 129, 132, 126, 121, 133, 114, 116, 122, 132, 125, 130, 109, 121, 136, 127, 139, 117, 121, 120, 124, 144, 136, 119, 129, 133, 125, 126, 126, 120, 124, 123, 139, 116, 143, 142, 125, 129, 151, 123, 139, 128, 120, 128, 132, 118, 123, 137, 138, 121, 138, 137, 131, 124, 121, 112, 126, 124, 124, 134, 116, 118, 128, 114, 125, 138, 127, 114, 126, 142, 117, 122, 127, 131, 112, 136, 136, 114, 114, 119, 137, 129, 122, 123, 128, 119, 124, 144, 146, 126, 130, 129, 134, 128, 136, 117, 115, 129, 149, 118, 119, 122, 126, 137, 120, 124, 122, 118, 105, 121, 117, 130, 127, 131, 141, 140, 130, 112, 124, 125, 123, 112, 137, 115, 100, 125, 118, 111, 137, 148, 129, 134, 133, 115, 139, 128, 122, 110, 114, 140, 111, 127, 139, 123, 126, 120, 129, 138, 142, 129, 117, 136, 123, 132, 108, 113, 124, 131, 120, 136, 132, 120, 131, 128, 129, 125, 136, 122, 131, 127, 124, 112, 124, 117, 119, 134, 121, 128, 138, 122, 128, 118, 140, 127, 126, 119, 108, 119, 136, 115, 133, 135, 119, 130, 128, 121, 121, 141, 110, 122, 121, 133, 117, 124, 124, 118, 126, 127, 130, 132, 131, 134, 124, 122, 116, 118, 128, 121, 131, 136, 125, 124, 139, 127, 130, 134, 120, 105, 138, 130, 130, 123, 121, 136, 109, 135, 112, 117, 133, 122, 142, 136, 110, 130, 132, 123, 132, 133, 130, 123, 125, 129, 128, 132, 121, 129, 125, 122, 139, 120, 125, 113, 123, 118, 129, 147, 133, 126, 128, 123, 141, 130, 111, 112, 115, 124, 129, 142, 119, 132, 116, 135, 146, 116, 131, 127, 128, 122, 116, 142, 129, 117, 122, 136, 134, 124, 106, 131, 136, 125, 124, 122, 123, 124, 133, 118, 116, 120, 106, 115, 134, 136, 131, 119, 128, 132, 121, 130, 123, 111, 116, 124, 145, 123, 129, 123, 118, 121, 136, 126, 126, 134, 112, 128, 124, 133, 122, 119, 129, 132, 130, 131, 134, 129, 137, 123, 136, 118, 123, 132, 126, 128, 133, 129, 140, 122, 117, 130, 129, 119, 121, 134, 116, 137, 131, 131, 130, 122, 141, 139, 116, 133, 118, 131, 124, 122, 113, 116, 121, 111, 143, 111, 114, 158, 125, 130, 109, 110, 131, 119, 106, 114, 111, 107, 115, 128, 114, 134, 125, 127, 159, 118, 117, 129, 119, 111, 114, 132, 121, 133, 123, 127, 119, 117, 134, 121, 130, 144, 127, 123, 133, 123, 110, 113, 136, 143, 135, 122, 122, 104, 129, 116, 105, 130, 143, 122, 118, 124, 104, 122, 119, 122, 129, 151, 123, 152, 137, 125, 108, 125, 136, 139, 121, 122, 120, 139, 126, 107, 118, 139, 127, 130, 119, 116, 114, 122, 106, 118, 115, 139, 136, 144, 129, 125, 110, 130, 113, 117, 133, 141, 146, 119, 137, 129, 123, 118, 123, 133, 119, 128, 127, 135, 144, 133, 126, 118, 115, 119, 118, 115, 119, 137, 115, 125, 122, 115, 131, 117, 147, 123, 115, 137, 144, 129, 111, 118, 128, 122, 122, 110, 119, 120, 123, 148, 120, 134, 132, 132, 122, 129, 105, 121, 108, 122, 119, 124, 123, 136, 143, 139, 117, 124, 120, 115, 148, 135, 134, 131, 111, 134, 126, 147, 124, 121, 122, 132, 137, 126, 117, 122, 133, 116, 137, 109, 115, 134, 95, 127, 124, 131, 114, 132, 122, 138, 126, 113, 150, 132, 112, 126, 121, 119, 128, 125, 121, 132, 119, 137, 98, 116, 126, 103, 128, 121, 150, 118, 130, 101, 139, 146, 110, 138, 134, 149, 114, 121, 118, 117, 119, 142, 136, 134, 143, 126, 136, 122, 132, 127, 117, 144, 116, 130, 129, 101, 124, 125, 122, 121, 134, 129, 132, 114, 136, 131, 147, 112, 121, 109, 113, 139, 139, 109, 128, 102, 127, 150, 123, 129, 96, 133, 106, 130, 127, 116, 130, 133, 149, 131, 118, 129, 132, 128, 114, 149, 104, 100, 136, 118, 124, 119, 119, 119, 107, 129, 128, 122, 142, 145, 105, 132, 143, 124, 142, 129, 118, 120, 133, 131, 133, 117, 122, 129, 129, 112, 132, 119, 140, 122, 135, 115, 145, 129, 127, 116, 120, 130, 116, 118, 122, 119, 123, 135, 130, 126, 115, 116, 106, 128, 133, 133, 123, 141, 122, 125, 128, 119, 116, 133, 119, 140, 134, 113, 134, 129, 148, 124, 111, 99, 121, 105, 128, 143, 136, 115, 124, 122, 129, 129, 112, 110, 126, 116, 111, 140, 113, 132, 115, 144, 123, 125, 120, 125, 144, 126, 153, 136, 134, 106, 111, 132, 132, 129, 120, 131, 138, 125, 150, 103, 131, 128, 120, 135, 143, 113, 139, 134, 128, 106, 114, 124, 129, 134, 127, 109, 103, 127, 128, 112, 121, 152, 153, 114, 120, 125, 121, 125, 133, 118, 118, 114, 130, 101, 135, 128, 112, 114, 123, 129, 113, 129, 128, 150, 117, 125, 133, 141, 119, 129, 138, 119, 124, 124, 127, 111, 140, 143, 148, 109, 129, 105, 110, 126, 131, 124, 110, 116, 114, 135, 126, 109, 128, 124, 131, 142, 118, 131, 115, 149, 128, 123, 133, 120, 134, 147, 107, 123, 138, 126, 134, 122, 115, 110, 136, 130, 133, 123, 110, 111, 134, 114, 133, 120, 129, 140, 113, 90, 128, 142, 109, 119, 122, 132, 124, 123, 144, 125, 140, 125, 102, 148, 100, 125, 150, 108, 114, 144, 116, 126, 139, 130, 136, 135, 127, 130, 114, 115, 125, 125, 138, 112, 115, 130, 133, 130, 139, 118, 112, 136, 123, 131, 140, 116, 116, 101, 112, 120, 128, 126, 103, 142, 128, 140, 150, 107, 128, 126, 107, 139, 124, 113, 142, 126, 120, 130, 146, 123, 118, 119, 128, 130, 118, 115, 123, 120, 121, 106, 156, 121, 107, 125, 132, 133, 140, 123, 138, 127, 160, 108, 118, 139, 97, 127, 123, 131, 125, 119, 121, 119, 124, 111, 122, 130, 109, 132, 128, 131, 142, 130, 127, 112, 142, 134, 94, 133, 123, 128, 113, 133, 128, 128, 116, 125, 116, 129, 134, 132, 128, 123, 136, 148, 125, 109, 129, 136, 114, 125, 127, 108, 119, 119, 119, 122, 114, 125, 112, 145, 144, 136, 116, 117, 137, 127, 117, 124, 119, 118, 139, 123, 124, 131, 133, 115, 132, 116, 143, 113, 141, 125, 114, 96, 127, 120, 121, 136, 113, 121, 126, 120, 116, 125, 126, 132, 125, 98, 128, 125, 147, 123, 125, 144, 128, 114, 130, 111, 128, 152, 127, 120, 137, 133, 122, 121, 118, 118, 132, 130, 149, 110, 128, 149, 124, 125, 116, 114, 120, 137, 124, 129, 122, 132, 122, 136, 136, 115, 140, 137, 107, 129, 130, 148, 125, 131, 141, 123, 124, 124, 124, 132, 111, 123, 143, 137, 128, 124, 126, 129, 122, 127, 117, 121, 125, 120, 124, 134, 117, 137, 126, 130, 130, 115, 112, 134, 149, 112, 126, 121, 117, 126, 130, 142, 119, 120, 121, 125, 128, 136, 130, 124, 135, 122, 119, 142, 130, 130, 118, 132, 126, 119, 109, 126, 131, 128, 121, 129, 115, 133, 121, 115, 105, 126, 133, 120, 114, 131, 118, 111, 127, 122, 136, 111, 133, 112, 121, 117, 113, 121, 139, 121, 129, 122, 126, 138, 124, 143, 137, 151, 126, 135, 125, 101, 143, 119, 125, 135, 123, 117, 133, 117, 118, 120, 121, 117, 136, 113, 127, 111, 119, 110, 115, 135, 118, 107, 129, 105, 134, 139, 124, 117, 149, 121, 110, 132, 129, 129, 120, 114, 139, 128, 133, 161, 130, 128, 131, 123, 117, 123, 124, 113, 115, 143, 126, 118, 127, 123, 115, 148, 127, 122, 138, 141, 120, 149, 120, 142, 136, 115, 106, 119, 113, 125, 119, 118, 113, 121, 125, 124, 129, 117, 121, 132, 121, 122, 97, 125, 124, 127, 112, 112, 124, 121, 115, 125, 130, 121, 122, 119, 136, 119, 124, 113, 123, 131, 117, 124, 138, 118, 124, 128, 130, 143, 129, 132, 148, 140, 140, 126, 132, 141, 135, 118, 131, 117, 109, 141, 134, 118, 134, 127, 114, 148, 147, 118, 133, 124, 133, 115, 121, 123, 135, 123, 125, 122, 170, 140, 105, 128, 142, 133, 122, 153, 119, 115, 124, 116, 116, 117, 121, 130, 137, 118, 147, 130, 126, 122, 109, 147, 114, 125, 134, 145, 124, 121, 131, 126, 110, 130, 140, 140, 121, 119, 126, 140, 138, 92, 110, 122, 129, 128, 132, 121, 141, 123, 122, 161, 134, 128, 115, 131, 128, 126, 127, 146, 117, 136, 127, 128, 123, 129, 142, 135, 123, 120, 127, 126, 122, 114, 125, 133, 121, 131, 127, 130, 125, 133, 112, 130, 124, 141, 115, 113, 105, 111, 137, 107, 120, 128, 129, 123, 129, 116, 116, 112, 107, 103, 119, 129, 126, 120, 125, 124, 121, 133, 120, 124, 129, 126, 132, 145, 137, 133, 142, 133, 136, 124, 131, 131, 148, 116, 126, 121, 119, 118, 113, 141, 122, 129, 132, 138, 118, 143, 135, 141, 129, 125, 135, 119, 129, 133, 133, 133, 124, 137, 122, 114, 115, 119, 102, 121, 116, 121, 122, 120, 141, 120, 133, 137, 147, 134, 117, 149, 118, 122, 139, 147, 135, 143, 106, 127, 117, 122, 132, 124, 107, 138, 123, 144, 107, 116, 116, 128, 125, 132, 123, 134, 108, 131, 127, 120, 131, 104, 129, 121, 125, 126, 118, 130, 127, 122, 124, 135, 130, 128, 113, 121, 133, 115, 140, 125, 119, 138, 127, 102, 120, 126, 112, 116, 98, 124, 134, 130, 117, 138, 140, 134, 146, 146, 129, 125, 129, 114, 108, 127, 133, 106, 122, 130, 119, 121, 145, 133, 124, 134, 131, 139, 121, 116, 114, 138, 116, 110, 140, 106, 148, 112, 121, 134, 136, 125, 118, 111, 121, 117, 106, 130, 116, 118, 112, 122, 129, 139, 113, 137, 131, 132, 142, 131, 141, 144, 118, 132, 123, 136, 114, 128, 114, 132, 119, 128, 130, 117, 107, 157, 140, 139, 128, 128, 129, 123, 98, 112, 120, 130, 121, 122, 110, 119, 118, 121, 129, 128, 137, 113, 136, 124, 116, 123, 125, 128, 131, 114, 108, 144, 125, 126, 120, 139, 129, 120, 136, 128, 116, 123, 117, 127, 121, 125, 144, 151, 135, 121, 107, 119, 145, 144, 115, 115, 132, 137, 121, 121, 128, 133, 123, 124, 136, 126, 116, 124, 105, 111, 134, 115, 118, 126, 124, 110, 164, 133, 137, 129, 136, 129, 125, 137, 114, 132, 138, 139, 129, 127, 122, 140, 137, 128, 125, 144, 91, 126, 121, 117, 115, 124, 119, 140, 118, 131, 121, 143, 109, 137, 132, 106, 131, 123, 131, 136, 120, 136, 116, 120, 113, 131, 132, 108, 137, 121, 131, 133, 121, 151, 134, 115, 128, 113, 121, 120, 121, 114, 128, 136, 138, 118, 125, 114, 128, 141, 133, 109, 127, 124, 125, 120, 135, 140, 114, 127, 124, 119, 132, 129, 123, 130, 124, 135, 118, 136, 112, 120, 122, 138, 108, 115, 144, 103, 129, 122, 143, 123, 142, 109, 105, 117, 122, 124, 111, 130, 128, 112, 124, 119, 126, 137, 124, 125, 121, 101, 117, 124, 141, 138, 126, 130, 108, 103, 116, 119, 104, 125, 120, 136, 121, 132, 139, 122, 129, 123, 116, 123, 123, 133, 117, 96, 117, 125, 119, 134, 133, 124, 121, 122, 121, 123, 123, 147, 115, 130, 143, 140, 119, 128, 118, 123, 131, 127, 133, 119, 142, 117, 134, 125, 122, 128, 131, 118, 107, 126, 152, 124, 140, 122, 139, 120, 117, 141, 168, 122, 135, 107, 125, 135, 125, 141, 116, 118, 111, 113, 123, 131, 143, 142, 129, 127, 133, 130, 130, 159, 130, 127, 124, 127, 126, 145, 125, 138, 117, 116, 129, 134, 120, 122, 130, 103, 120, 122, 127, 137, 128, 128, 133, 137, 117, 119, 112, 119, 113, 135, 119, 127, 115, 122, 120, 126, 118, 113, 103, 124, 133, 142, 118, 127, 144, 116, 123, 126, 136, 133, 133, 127, 127, 122, 124, 127, 124, 124, 127, 116, 111, 112, 146, 122, 123, 129, 130, 119, 129, 133, 119, 129, 115, 113, 117, 139, 134, 144, 116, 132, 122, 116, 137, 121, 116, 114, 134, 124, 120, 108, 125, 126, 113, 120, 128, 138, 118, 116, 123, 138, 118, 121, 114, 134, 101, 124, 139, 135, 95, 122, 132, 128, 135, 122, 143, 110, 119, 145, 123, 133, 113, 128, 133, 111, 137, 124, 119, 137, 125, 108, 133, 109, 112, 111, 117, 130, 135, 145, 136, 121, 141, 152, 125, 136, 119, 130, 107, 128, 135, 124, 130, 120, 117, 132, 124, 136, 127, 120, 142, 132, 139, 114, 136, 139, 96, 122, 114, 114, 125, 105, 122, 116, 104, 122, 130, 122, 125, 111, 126, 131, 115, 126, 132, 128, 127, 126, 122, 117, 109, 121, 120, 109, 131, 116, 108, 122, 151, 107, 137, 132, 124, 138, 122, 132, 125, 118, 126, 132, 151, 124, 132, 122, 134, 129, 110, 124, 113, 124, 144, 121, 148, 132, 104, 127, 125, 119, 124, 134, 133, 125, 137, 141, 124, 127, 132, 138, 122, 136, 138, 110, 121, 130, 112, 124, 132, 150, 127, 133, 123, 117, 118, 102, 119, 133, 133, 137, 141, 123, 118, 128, 147, 115, 104, 118, 126, 135, 133, 112, 134, 136, 120, 112, 127, 108, 134, 132, 143, 120, 110, 123, 130, 144, 130, 119, 147, 131, 126, 135, 149, 122, 121, 153, 132, 133, 139, 139, 112, 120, 143, 129, 131, 131, 132, 105, 130, 125, 107, 123, 140, 128, 130, 148, 111, 140, 127, 118, 116, 130, 110, 135, 131, 124, 126, 131, 126, 140, 147, 115, 135, 119, 114, 116, 119, 103, 110, 137, 112, 125, 123, 116, 119, 119, 113, 125, 136, 123, 135, 143, 143, 116, 126, 120, 126, 107, 146, 129, 114, 119, 133, 125, 122, 133, 145, 136, 130, 130, 111, 126, 128, 127, 114, 131, 128, 136, 128, 114, 130, 119, 130, 122, 113, 133, 111, 133, 107, 123, 123, 128, 134, 120, 127, 119, 117, 126, 122, 140, 132, 130, 112, 120, 125, 105, 114, 114, 122, 129, 118, 126, 115, 87, 131, 134, 121, 109, 138, 122, 116, 100, 105, 123, 139, 126, 127, 142, 113, 142, 130, 148, 127, 134, 131, 119, 125, 121, 129, 124, 147, 125, 124, 129, 128, 111, 123, 120, 136, 129, 101, 126, 92, 124, 115, 139, 133, 115, 110, 132, 112, 133, 130, 112, 123, 122, 122, 133, 129, 120, 127, 128, 121, 117, 123, 120, 104, 138, 131, 128, 129, 118, 125, 131, 137, 133, 128, 122, 115, 117, 97, 137, 119, 119, 132, 140, 117, 127, 130, 129, 119, 125, 114, 125, 135, 121, 111, 134, 132, 139, 128, 132, 133, 115, 131, 107, 124, 106, 129, 132, 114, 116, 124, 127, 126, 116, 135, 108, 124, 141, 129, 140, 134, 108, 140, 119, 118, 124, 129, 152, 116, 149, 119, 114, 122, 118, 123, 117, 116, 125, 125, 118, 115, 135, 123, 128, 124, 112, 118, 128, 126, 130, 141, 129, 130, 110, 150, 117, 132, 111, 125, 132, 131, 131, 118, 115, 123, 119, 125, 110, 128, 128, 143, 122, 94, 118, 120, 139, 117, 127, 127, 125, 109, 125, 121, 124, 118, 114, 130, 125, 117, 133, 126, 128, 132, 112, 124, 122, 131, 138, 124, 110, 121, 116, 117, 140, 123, 123, 102, 135, 133, 128, 117, 100, 136, 126, 122, 131, 124, 138, 132, 129, 132, 126, 137, 130, 118, 129, 133, 118, 150, 128, 136, 141, 125, 103, 125, 133, 138, 128, 123, 136, 122, 110, 127, 135, 135, 111, 123, 141, 106, 123, 140, 116, 119, 127, 134, 124, 127, 108, 133, 122, 139, 136, 133, 140, 123, 130, 125, 119, 149, 154, 137, 127, 118, 122, 127, 130, 127, 131, 128, 125, 126, 128, 126, 120, 137, 126, 130, 93, 129, 122, 136, 129, 128, 112, 130, 89, 129, 132, 129, 126, 121, 128, 118, 125, 118, 134, 100, 126, 97, 135, 123, 141, 131, 146, 131, 131, 123, 128, 145, 111, 116, 124, 133, 133, 108, 135, 126, 126, 130, 133, 140, 128, 99, 133, 137, 137, 107, 111, 119, 128, 92, 126, 133, 135, 135, 117, 146, 114, 127, 126, 118, 121, 126, 114, 132, 142, 112, 123, 120, 101, 124, 134, 126, 128, 114, 130, 138, 138, 130, 131, 128, 112, 127, 132, 137, 111, 119, 126, 123, 123, 134, 111, 135, 136, 134, 129, 109, 120, 119, 134, 128, 128, 120, 124, 135, 127, 117, 120, 114, 142, 118, 136, 126, 144, 114, 122, 113, 149, 132, 118, 105, 131, 142, 110, 122, 134, 123, 123, 121, 130, 126, 121, 133, 132, 131, 130, 109, 128, 113, 119, 136, 123, 129, 119, 130, 124, 135, 117, 121, 125, 123, 121, 125, 143, 119, 106, 112, 122, 119, 108, 114, 131, 128, 110, 125, 122, 136, 129, 127, 130, 126, 124, 139, 126, 137, 107, 130, 117, 132, 135, 126, 130, 131, 125, 129, 119, 111, 118, 130, 112, 141, 139, 123, 122, 121, 119, 128, 141, 129, 114, 128, 118, 123, 135, 117, 127, 131, 132, 128, 126, 128, 122, 127, 117, 124, 128, 127, 113, 147, 122, 138, 115, 121, 137, 133, 120, 141, 126, 127, 139, 116, 139, 91, 122, 122, 86, 113, 111, 122, 113, 119, 123, 101, 134, 126, 127, 126, 142, 125, 118, 109, 137, 130, 123, 133, 119, 127, 130, 118, 137, 129, 110, 123, 133, 137, 112, 117, 131, 124, 111, 138, 124, 118, 118, 138, 133, 126, 131, 115, 126, 143, 129, 135, 117, 128, 127, 136, 154, 110, 140, 113, 116, 131, 131, 120, 132, 139, 140, 125, 121, 129, 132, 123, 111, 131, 123, 126, 130, 119, 139, 125, 126, 137, 128, 116, 107, 114, 130, 116, 134, 130, 120, 146, 125, 131, 108, 125, 130, 116, 120, 125, 121, 117, 134, 115, 127, 126, 114, 122, 111, 106, 138, 116, 131, 115, 127, 115, 126, 133, 137, 118, 121, 137, 131, 138, 126, 125, 133, 124, 131, 136, 135, 126, 139, 116, 121, 133, 124, 104, 129, 132, 139, 122, 132, 116, 138, 129, 124, 124, 117, 134, 113, 121, 144, 120, 120, 121, 135, 123, 111, 116, 131, 120, 135, 137, 131, 111, 124, 126, 131, 120, 143, 129, 141, 139, 148, 133, 115, 126, 134, 142, 117, 102, 111, 123, 133, 111, 118, 118, 118, 120, 128, 110, 147, 137, 115, 113, 124, 129, 126, 120, 137, 119, 127, 117, 113, 139, 139, 144, 143, 118, 120, 141, 144, 112, 125, 126, 125, 127, 138, 120, 110, 124, 125, 147, 142, 115, 131, 145, 113, 116, 119, 117, 133, 139, 134, 123, 132, 118, 116, 140, 144, 134, 127, 114, 114, 134, 119, 125, 128, 126, 133, 117, 115, 141, 133, 115, 126, 137, 130, 122, 130, 133, 121, 120, 117, 113, 115, 118, 144, 132, 116, 121, 123, 118, 108, 99, 120, 140, 104, 137, 125, 110, 128, 107, 110, 125, 121, 115, 109, 119, 125, 114, 108, 115, 126, 127, 118, 149, 123, 104, 116, 128, 105, 129, 120, 139, 129, 134, 139, 142, 136, 107, 114, 131, 133, 134, 117, 120, 131, 127, 109, 128, 137, 130, 140, 121, 124, 135, 120, 141, 134, 125, 115, 118, 132, 122, 125, 116, 140, 117, 124, 134, 125, 131, 129, 120, 117, 153, 122, 118, 122, 127, 131, 129, 117, 132, 112, 138, 118, 116, 138, 132, 116, 132, 124, 119, 121, 129, 113, 123, 114, 137, 112, 128, 125, 130, 122, 129, 123, 122, 115, 121, 127, 137, 126, 140, 140, 125, 119, 115, 129, 128, 121, 121, 138, 134, 121, 136, 111, 139, 126, 113, 140, 122, 104, 129, 137, 124, 127, 110, 127, 130, 119, 120, 124, 128, 122, 129, 117, 124, 134, 134, 124, 112, 137, 113, 118, 131, 122, 110, 125, 124, 109, 122, 129, 126, 119, 132, 146, 134, 125, 123, 121, 126, 120, 124, 123, 132, 100, 141, 109, 116, 140, 127, 126, 128, 139, 122, 129, 123, 125, 115, 134, 118, 136, 138, 129, 131, 147, 117, 133, 128, 119, 114, 113, 137, 107, 117, 98, 118, 132, 123, 130, 141, 121, 120, 129, 125, 107, 104, 113, 118, 118, 121, 122, 114, 129, 122, 114, 148, 116, 118, 120, 139, 115, 117, 113, 111, 119, 131, 123, 129, 141, 115, 131, 108, 107, 114, 137, 125, 131, 124, 127, 128, 128, 124, 124, 118, 109, 129, 135, 129, 139, 129, 126, 117, 131, 117, 122, 126, 120, 124, 121, 118, 120, 137, 144, 115, 126, 126, 127, 131, 113, 128, 126, 114, 128, 138, 119, 123, 126, 119, 145, 122, 142, 117, 133, 126, 163, 128, 120, 105, 131, 113, 147, 124, 122, 124, 106, 118, 118, 144, 128, 149, 122, 150, 136, 126, 114, 122, 147, 122, 117, 109, 128, 113, 130, 124, 127, 110, 144, 121, 120, 127, 113, 116, 120, 151, 128, 110, 103, 126, 111, 112, 134, 103, 130, 136, 134, 135, 117, 123, 128, 105, 127, 119, 127, 111, 119, 117, 140, 132, 121, 108, 132, 115, 128, 138, 123, 128, 120, 120, 109, 114, 126, 144, 133, 140, 139, 125, 119, 132, 133, 126, 121, 106, 106, 123, 131, 118, 137, 131, 130, 122, 123, 121, 125, 141, 120, 115, 124, 124, 127, 129, 110, 109, 119, 129, 135, 120, 119, 126, 123, 132, 126, 124, 133, 120, 119, 129, 116, 130, 114, 125, 114, 119, 130, 132, 117, 122, 143, 114, 97, 137, 122, 120, 125, 126, 122, 135, 129, 124, 121, 130, 121, 134, 133, 108, 130, 118, 126, 138, 124, 118, 102, 123, 129, 100, 137, 123, 97, 126, 115, 121, 124, 118, 123, 122, 117, 120, 111, 122, 116, 124, 142, 127, 142, 130, 146, 118, 140, 111, 132, 133, 129, 136, 132, 116, 122, 118, 146, 126, 141, 106, 122, 109, 147, 128, 134, 110, 128, 120, 144, 129, 125, 123, 117, 143, 127, 131, 121, 116, 131, 122, 139, 104, 129, 132, 134, 125, 108, 119, 115, 124, 114, 125, 116, 142, 124, 143, 109, 132, 128, 129, 112, 127, 112, 131, 126, 112, 136, 128, 115, 111, 135, 123, 142, 121, 141, 131, 111, 137, 137, 122, 130, 132, 122, 117, 125, 122, 111, 119, 117, 130, 126, 124, 139, 116, 127, 117, 120, 131, 122, 117, 117, 112, 122, 149, 129, 146, 136, 123, 113, 117, 134, 125, 113, 117, 136, 115, 129, 103, 107, 129, 113, 140, 139, 117, 113, 148, 125, 126, 107, 122, 137, 135, 121, 151, 123, 126, 121, 106, 129, 131, 133, 143, 117, 125, 117, 130, 118, 133, 135, 133, 113, 126, 111, 112, 127, 125, 146, 116, 132, 126, 127, 113, 135, 150, 129, 111, 115, 115, 125, 138, 122, 128, 126, 123, 118, 121, 142, 124, 108, 130, 130, 117, 141, 133, 111, 128, 117, 139, 133, 126, 127, 138, 103, 132, 149, 136, 96, 118, 129, 130, 129, 124, 135, 123, 113, 122, 138, 114, 120, 116, 110, 126, 137, 105, 123, 143, 126, 136, 129, 115, 125, 122, 128, 135, 113, 117, 130, 131, 124, 135, 125, 124, 114, 113, 107, 123, 127, 127, 121, 142, 130, 128, 117, 119, 128, 140, 134, 148, 128, 128, 119, 126, 128, 136, 116, 133, 133, 127, 109, 103, 142, 126, 120, 124, 147, 125, 127, 126, 110, 127, 137, 113, 116, 125, 119, 118, 120, 125, 124, 140, 121, 101, 125, 118, 139, 114, 115, 127, 139, 112, 124, 107, 136, 151, 137, 109, 109, 139, 107, 141, 113, 114, 127, 142, 118, 127, 117, 118, 116, 121, 132, 132, 112, 131, 110, 119, 117, 129, 120, 149, 131, 105, 128, 132, 134, 122, 128, 118, 118, 127, 131, 120, 136, 108, 118, 118, 130, 117, 126, 114, 104, 125, 125, 141, 122, 133, 112, 128, 125, 112, 127, 121, 138, 119, 146, 115, 130, 120, 142, 116, 134, 117, 104, 122, 115, 113, 122, 111, 133, 133, 130, 129, 131, 122, 121, 122, 129, 119, 127, 122, 128, 131, 135, 109, 118, 120, 116, 136, 125, 123, 120, 120, 138, 109, 134, 134, 106, 116, 129, 117, 135, 120, 122, 132, 123, 135, 131, 120, 137, 129, 116, 135, 132, 125, 126, 141, 131, 118, 125, 120, 119, 116, 133, 121, 129, 116, 131, 127, 123, 144, 130, 124, 139, 125, 125, 116, 120, 117, 122, 115, 130, 120, 124, 128, 139, 124, 122, 131, 132, 115, 112, 142, 120, 128, 141, 120, 133, 124, 130, 124, 140, 114, 126, 129, 140, 104, 119, 118, 119, 110, 132, 130, 140, 138, 118, 127, 126, 135, 119, 124, 138, 126, 123, 142, 131, 120, 131, 132, 129, 128, 118, 142, 116, 127, 138, 136, 144, 121, 140, 141, 127, 126, 109, 125, 123, 132, 109, 109, 133, 113, 132, 129, 132, 137, 119, 121, 120, 127, 122, 133, 137, 125, 121, 122, 134, 113, 122, 125, 118, 116, 132, 128, 136, 130, 104, 119, 114, 115, 148, 142, 121, 118, 112, 125, 117, 117, 129, 126, 108, 127, 109, 101, 136, 116, 132, 145, 105, 118, 113, 123, 126, 114, 131, 121, 129, 135, 111, 114, 119, 113, 128, 136, 124, 123, 126, 142, 119, 145, 126, 124, 112, 144, 115, 125, 123, 127, 155, 107, 126, 146, 128, 125, 127, 127, 127, 126, 149, 127, 137, 138, 118, 127, 133, 128, 126, 118, 116, 123, 129, 124, 142, 126, 129, 123, 120, 131, 124, 128, 134, 133, 131, 126, 128, 123, 153, 136, 140, 106, 123, 137, 137, 117, 109, 117, 138, 128, 101, 121, 129, 122, 142, 131, 119, 118, 104, 134, 126, 132, 115, 130, 116, 126, 122, 126, 111, 124, 125, 131, 135, 132, 138, 115, 126, 144, 112, 118, 134, 121, 122, 120, 133, 105, 128, 138, 137, 108, 141, 114, 130, 131, 121, 155, 122, 136, 143, 137, 117, 124, 113, 114, 127, 143, 126, 109, 102, 117, 132, 128, 110, 144, 126, 104, 116, 130, 140, 114, 130, 148, 140, 124, 132, 142, 130, 127, 121, 120, 166, 118, 124, 106, 127, 132, 116, 138, 110, 110, 137, 120, 138, 138, 125, 107, 125, 133, 115, 114, 133, 119, 133, 109, 118, 121, 115, 118, 145, 128, 113, 116, 132, 146, 131, 126, 123, 124, 122, 116, 124, 129, 127, 137, 115, 117, 120, 131, 134, 131, 119, 139, 146, 127, 130, 134, 135, 108, 127, 138, 160, 132, 135, 119, 123, 121, 124, 132, 117, 134, 114, 140, 96, 129, 115, 101, 144, 138, 126, 116, 131, 122, 120, 136, 127, 120, 111, 133, 111, 134, 120, 123, 150, 118, 124, 130, 133, 128, 118, 142, 123, 118, 119, 117, 113, 121, 125, 137, 112, 121, 122, 111, 137, 116, 112, 126, 127, 132, 140, 142, 129, 113, 128, 121, 106, 119, 130, 119, 126, 129, 123, 121, 118, 129, 118, 118, 112, 121, 141, 135, 138, 113, 109, 138, 135, 127, 126, 130, 136, 123, 118, 121, 129, 121, 121, 121, 119, 133, 122, 134, 126, 135, 135, 132, 113, 136, 142, 121, 144, 128, 115, 114, 134, 113, 136, 130, 122, 130, 142, 138, 131, 140, 115, 126, 109, 128, 147, 121, 124, 129, 122, 108, 122, 136, 126, 109, 119, 132, 111, 130, 128, 108, 135, 111, 144, 120, 131, 152, 130, 119, 141, 129, 110, 130, 125, 137, 118, 127, 125, 135, 135, 130, 121, 128, 144, 128, 111, 135, 120, 115, 125, 125, 120, 135, 125, 114, 134, 127, 141, 144, 138, 123, 134, 130, 121, 129, 129, 124, 136, 113, 129, 144, 121, 136, 130, 124, 121, 139, 143, 128, 126, 123, 140, 111, 138, 123, 129, 134, 133, 113, 127, 113, 126, 114, 117, 124, 131, 125, 131, 111, 115, 130, 132, 120, 123, 129, 105, 117, 140, 133, 128, 141, 123, 132, 141, 124, 135, 129, 118, 116, 113, 135, 115, 122, 100, 125, 121, 123, 107, 138, 144, 124, 123, 128, 95, 123, 136, 133, 105, 133, 136, 117, 108, 123, 116, 124, 139, 107, 123, 121, 137, 138, 120, 122, 124, 108, 128, 121, 131, 116, 112, 124, 137, 128, 109, 120, 129, 125, 95, 121, 139, 124, 124, 126, 129, 120, 140, 117, 128, 115, 124, 120, 117, 130, 135, 113, 117, 143, 129, 120, 115, 123, 127, 139, 124, 137, 129, 125, 124, 120, 118, 128, 144, 119, 124, 128, 150, 122, 119, 129, 130, 115, 135, 131, 129, 110, 134, 131, 119, 133, 144, 105, 126, 123, 145, 116, 118, 128, 121, 115, 141, 126, 127, 110, 134, 131, 107, 134, 96, 132, 135, 126, 128, 146, 118, 126, 115, 125, 112, 111, 126, 132, 120, 135, 126, 131, 115, 123, 134, 117, 120, 131, 114, 118, 126, 159, 128, 111, 130, 122, 134, 112, 143, 132, 136, 137, 127, 131, 135, 133, 137, 102, 130, 132, 122, 129, 136, 113, 112, 126, 113, 120, 121, 112, 121, 114, 139, 106, 130, 118, 110, 101, 122, 131, 128, 135, 119, 131, 124, 122, 125, 157, 138, 137, 122, 128, 121, 148, 117, 129, 112, 102, 109, 123, 153, 110, 124, 120, 122, 140, 129, 113, 125, 128, 121, 144, 130, 114, 140, 125, 133, 105, 119, 126, 139, 120, 125, 118, 127, 127, 131, 130, 112, 123, 117, 126, 103, 125, 138, 138, 112, 131, 113, 122, 136, 123, 125, 137, 118, 113, 130, 138, 117, 125, 126, 113, 133, 147, 125, 122, 134, 132, 131, 119, 143, 139, 127, 133, 142, 135, 130, 140, 141, 134, 120, 128, 122, 139, 143, 140, 124, 128, 107, 121, 134, 123, 140, 128, 146, 128, 112, 114, 133, 117, 149, 110, 131, 127, 132, 134, 112, 120, 133, 133, 120, 132, 132, 122, 137, 121, 129, 116, 123, 115, 122, 124, 146, 116, 124, 133, 134, 125, 127, 132, 117, 125, 116, 135, 143, 132, 130, 126, 130, 125, 132, 118, 133, 137, 124, 118, 131, 134, 131, 113, 126, 126, 124, 124, 144, 118, 103, 126, 127, 112, 131, 122, 113, 125, 135, 111, 125, 139, 116, 128, 131, 108, 131, 120, 129, 125, 132, 136, 120, 116, 131, 124, 120, 127, 133, 130, 125, 135, 101, 137, 118, 124, 117, 145, 137, 126, 132, 105, 135, 113, 126, 115, 121, 103, 117, 109, 113, 124, 126, 109, 125, 126, 128, 122, 119, 133, 129, 118, 129, 125, 115, 134, 126, 121, 124, 126, 102, 120, 117, 120, 128, 118, 137, 129, 126, 118, 113, 135, 132, 143, 117, 131, 125, 117, 114, 121, 136, 119, 116, 112, 144, 110, 121, 122, 131, 144, 129, 122, 115, 109, 123, 102, 123, 130, 127, 120, 115, 142, 156, 133, 115, 128, 127, 130, 135, 144, 123, 138, 130, 133, 122, 143, 145, 119, 141, 121, 124, 131, 122, 110, 133, 131, 122, 146, 125, 118, 124, 125, 129, 148, 129, 117, 124, 122, 129, 118, 112, 132, 137, 119, 142, 139, 118, 130, 101, 139, 139, 120, 104, 110, 125, 122, 135, 127, 124, 136, 119, 134, 108, 122, 116, 107, 124, 132, 131, 128, 131, 117, 113, 127, 113, 129, 149, 123, 125, 121, 135, 126, 118, 131, 128, 137, 113, 123, 133, 146, 136, 110, 126, 127, 107, 112, 135, 117, 118, 124, 122, 117, 122, 142, 106, 124, 125, 134, 135, 128, 91, 133, 141, 106, 122, 119, 117, 108, 135, 120, 120, 120, 120, 125, 136, 113, 115, 129, 122, 122, 124, 127, 118, 136, 135, 117, 133, 115, 108, 115, 128, 127, 126, 129, 116, 124, 121, 141, 118, 109, 137, 136, 115, 146, 131, 123, 113, 118, 127, 110, 120, 116, 145, 127, 126, 123, 141, 124, 112, 131, 130, 125, 97, 125, 119, 119, 119, 99, 114, 121, 133, 89, 127, 123, 131, 142, 134, 115, 136, 133, 134, 161, 123, 135, 137, 118, 112, 135, 125, 123, 118, 128, 124, 133, 131, 125, 116, 124, 125, 102, 121, 123, 117, 143, 121, 111, 119, 117, 133, 135, 121, 139, 129, 129, 139, 134, 131, 121, 126, 139, 109, 152, 113, 120, 140, 125, 126, 117, 140, 126, 134, 125, 115, 129, 143, 112, 121, 117, 129, 108, 122, 129, 117, 141, 123, 110, 124, 126, 119, 136, 107, 134, 122, 150, 116, 132, 131, 121, 134, 130, 112, 128, 128, 126, 135, 111, 114, 126, 124, 134, 132, 114, 117, 126, 133, 127, 135, 138, 131, 136, 125, 125, 128, 114, 143, 121, 128, 131, 142, 119, 142, 123, 120, 141, 128, 107, 128, 136, 139, 134, 127, 120, 122, 117, 111, 120, 121, 124, 129, 126, 120, 141, 122, 119, 112, 123, 118, 140, 129, 142, 129, 133, 121, 120, 137, 131, 126, 133, 164, 125, 129, 137, 118, 128, 123, 111, 131, 126, 138, 111, 137, 115, 128, 114, 138, 126, 130, 120, 138, 129, 111, 128, 128, 140, 133, 122, 127, 133, 128, 125, 138, 104, 122, 114, 143, 132, 132, 128, 123, 127, 104, 131, 121, 133, 120, 127, 117, 112, 124, 128, 142, 123, 115, 127, 115, 121, 109, 130, 134, 125, 130, 114, 118, 128, 125, 126, 121, 112, 125, 105, 128, 129, 129, 124, 123, 118, 120, 102, 120, 141, 133, 134, 125, 127, 123, 120, 137, 133, 132, 142, 137, 126, 138, 130, 119, 113, 131, 126, 120, 119, 116, 134, 129, 122, 108, 111, 139, 136, 139, 119, 125, 113, 111, 138, 121, 131, 107, 133, 135, 113, 114, 121, 128, 125, 127, 112, 122, 106, 121, 122, 132, 113, 117, 114, 109, 126, 131, 127, 121, 131, 150, 137, 120, 119, 126, 129, 131, 145, 110, 138, 101, 143, 112, 121, 130, 128, 134, 116, 129, 125, 129, 115, 143, 142, 123, 124, 113, 129, 129, 130, 132, 129, 120, 125, 135, 131, 125, 120, 128, 106, 122, 148, 124, 138, 127, 119, 128, 133, 124, 135, 152, 108, 117, 123, 113, 127, 138, 131, 124, 113, 123, 126, 125, 134, 112, 119, 97, 143, 123, 136, 110, 131, 111, 142, 130, 109, 124, 100, 129, 109, 142, 129, 123, 140, 111, 126, 127, 105, 140, 124, 105, 132, 139, 130, 97, 130, 127, 123, 134, 118, 146, 134, 145, 130, 98, 131, 133, 113, 118, 118, 108, 111, 123, 105, 129, 113, 119, 124, 127, 128, 132, 130, 124, 129, 128, 130, 127, 126, 108, 125, 128, 143, 135, 127, 156, 126, 113, 122, 119, 138, 124, 118, 114, 136, 122, 123, 148, 128, 119, 110, 120, 132, 125, 120, 120, 124, 136, 122, 120, 105, 116, 142, 123, 109, 128, 126, 127, 129, 108, 118, 136, 116, 145, 149, 138, 115, 123, 112, 117, 122, 142, 117, 112, 109, 111, 123, 125, 126, 127, 128, 130, 92, 116, 123, 110, 110, 117, 118, 126, 122, 118, 111, 113, 123, 113, 111, 134, 119, 118, 109, 148, 125, 118, 122, 118, 102, 131, 114, 115, 133, 116, 142, 139, 122, 126, 136, 131, 119, 134, 134, 104, 129, 131, 125, 106, 115, 125, 147, 127, 117, 114, 129, 128, 119, 125, 142, 134, 119, 132, 113, 115, 121, 113, 120, 101, 129, 117, 150, 121, 131, 142, 122, 131, 115, 125, 114, 125, 146, 138, 126, 146, 121, 114, 140, 122, 136, 130, 117, 132, 135, 138, 130, 115, 99, 142, 118, 137, 139, 138, 124, 108, 130, 134, 142, 119, 113, 145, 140, 114, 126, 150, 116, 123, 117, 142, 130, 122, 138, 132, 148, 125, 133, 141, 117, 115, 140, 125, 123, 114, 129, 132, 123, 108, 140, 125, 122, 137, 131, 131, 140, 112, 130, 127, 109, 125, 115, 124, 129, 121, 115, 131, 120, 125, 136, 140, 118, 130, 127, 122, 115, 136, 128, 119, 124, 134, 126, 133, 126, 132, 120, 121, 125, 127, 122, 122, 127, 124, 117, 131, 124, 137, 130, 118, 95, 117, 124, 144, 128, 126, 133, 134, 108, 137, 121, 116, 130, 136, 112, 143, 127, 118, 129, 129, 124, 119, 125, 119, 116, 116, 142, 126, 141, 121, 131, 137, 115, 127, 124, 123, 120, 134, 123, 123, 116, 117, 132, 143, 137, 116, 123, 120, 125, 112, 107, 125, 113, 113, 133, 144, 116, 118, 129, 147, 121, 122, 119, 122, 123, 125, 138, 129, 118, 110, 129, 148, 128, 134, 137, 128, 140, 141, 120, 131, 120, 116, 113, 118, 115, 122, 142, 131, 113, 129, 117, 136, 120, 123, 134, 126, 132, 121, 119, 140, 128, 122, 132, 133, 131, 137, 112, 128, 130, 137, 116, 126, 138, 136, 155, 127, 126, 130, 131, 124, 119, 131, 138, 123, 135, 128, 121, 133, 127, 132, 130, 129, 149, 132, 126, 135, 139, 105, 106, 125, 126, 128, 117, 127, 132, 142, 115, 122, 112, 134, 130, 140, 105, 132, 122, 135, 126, 146, 122, 131, 123, 122, 113, 131, 141, 134, 133, 136, 137, 130, 142, 133, 122, 142, 134, 108, 130, 136, 118, 112, 128, 122, 127, 127, 120, 130, 127, 130, 125, 129, 107, 127, 136, 123, 111, 117, 134, 115, 117, 101, 128, 130, 121, 112, 127, 126, 133, 128, 114, 96, 122, 131, 116, 133, 118, 127, 130, 127, 137, 130, 122, 126, 140, 117, 145, 137, 122, 115, 125, 137, 111, 137, 131, 127, 140, 137, 134, 122, 107, 129, 111, 122, 117, 125, 124, 120, 130, 112, 117, 115, 132, 137, 136, 113, 123, 132, 130, 115, 118, 119, 123, 123, 120, 121, 124, 129, 122, 141, 144, 109, 123, 132, 123, 110, 121, 120, 116, 109, 144, 118, 124, 117, 122, 125, 122, 117, 129, 130, 126, 104, 142, 130, 130, 114, 131, 135, 129, 123, 135, 104, 137, 129, 133, 152, 132, 136, 139, 132, 111, 138, 127, 131, 112, 112, 124, 110, 131, 118, 122, 103, 135, 123, 109, 128, 140, 143, 129, 127, 127, 128, 136, 127, 117, 146, 131, 135, 116, 136, 117, 119, 125, 128, 132, 123, 119, 129, 141, 120, 133, 127, 120, 122, 118, 133, 138, 131, 127, 130, 138, 130, 108, 138, 108, 122, 134, 132, 120, 130, 148, 122, 140, 119, 120, 152, 130, 119, 126, 126, 135, 114, 128, 133, 140, 130, 129, 132, 111, 145, 124, 130, 129, 132, 122, 134, 129, 126, 117, 127, 125, 147, 125, 116, 119, 121, 123, 123, 103, 133, 127, 130, 102, 124, 115, 120, 124, 144, 127, 153, 115, 129, 122, 140, 130, 128, 103, 130, 117, 121, 116, 128, 123, 108, 142, 132, 123, 126, 122, 108, 131, 130, 121, 97, 124, 129, 107, 118, 131, 128, 136, 136, 129, 115, 128, 116, 122, 121, 119, 114, 136, 134, 116, 112, 135, 114, 147, 132, 139, 136, 129, 108, 110, 103, 122, 123, 120, 115, 128, 124, 120, 132, 120, 129, 145, 136, 117, 131, 122, 118, 119, 118, 112, 131, 149, 125, 120, 112, 115, 116, 139, 119, 125, 149, 122, 112, 121, 134, 120, 110, 127, 131, 147, 134, 112, 121, 112, 140, 110, 133, 136, 119, 143, 141, 139, 121, 139, 137, 119, 118, 119, 118, 116, 113, 126, 106, 131, 113, 139, 127, 130, 140, 141, 136, 110, 117, 131, 140, 118, 108, 123, 135, 116, 114, 107, 129, 119, 129, 106, 100, 120, 103, 118, 126, 124, 108, 133, 138, 116, 127, 119, 122, 129, 136, 135, 129, 134, 129, 127, 106, 123, 135, 121, 132, 128, 117, 129, 116, 139, 121, 127, 119, 126, 117, 133, 111, 110, 123, 136, 137, 102, 104, 111, 125, 139, 114, 115, 103, 115, 116, 139, 135, 125, 136, 112, 128, 135, 119, 122, 115, 130, 146, 133, 121, 110, 116, 115, 114, 128, 136, 123, 132, 133, 130, 107, 142, 118, 124, 120, 135, 127, 117, 118, 119, 119, 128, 139, 123, 126, 115, 125, 136, 122, 143, 136, 128, 108, 116, 129, 126, 123, 137, 133, 118, 135, 123, 105, 140, 127, 129, 118, 132, 114, 124, 131, 130, 129, 119, 126, 112, 119, 128, 117, 131, 107, 130, 128, 139, 108, 117, 131, 139, 125, 133, 142, 130, 128, 117, 108, 124, 131, 131, 120, 140, 123, 112, 130, 138, 131, 153, 125, 135, 117, 129, 127, 121, 129, 122, 120, 118, 112, 142, 127, 116, 126, 129, 136, 131, 121, 165, 131, 120, 109, 133, 136, 127, 117, 135, 123, 134, 125, 133, 120, 118, 130, 127, 128, 124, 113, 122, 135, 136, 121, 124, 104, 114, 128, 123, 127, 104, 119, 132, 118, 138, 114, 119, 132, 114, 135, 144, 112, 116, 123, 148, 129, 126, 123, 138, 120, 118, 118, 115, 110, 130, 134, 105, 111, 137, 119, 122, 112, 122, 136, 123, 136, 116, 111, 142, 133, 113, 127, 126, 129, 120, 123, 133, 111, 117, 124, 141, 121, 134, 108, 137, 139, 133, 147, 146, 116, 114, 119, 123, 147, 130, 124, 123, 147, 143, 121, 121, 115, 122, 131, 132, 112, 127, 122, 145, 122, 123, 120, 133, 138, 129, 140, 126, 130, 122, 111, 102, 109, 128, 127, 123, 119, 110, 138, 132, 118, 119, 116, 128, 127, 125, 111, 124, 120, 129, 122, 131, 148, 146, 118, 111, 131, 145, 141, 133, 126, 128, 108, 130, 142, 122, 130, 130, 117, 123, 119, 118, 118, 131, 145, 133, 118, 117, 146, 132, 120, 129, 111, 138, 129, 130, 117, 131, 123, 127, 138, 122, 113, 113, 135, 137, 136, 121, 127, 131, 104, 118, 108, 104, 135, 124, 128, 124, 123, 132, 119, 131, 126, 128, 136, 146, 115, 111, 152, 118, 126, 112, 126, 126, 120, 136, 130, 105, 129, 126, 137, 142, 148, 115, 133, 124, 128, 137, 118, 138, 125, 115, 124, 132, 120, 109, 113, 128, 115, 119, 111, 116, 113, 132, 127, 137, 126, 110, 138, 114, 145, 121, 128, 111, 133, 116, 120, 128, 143, 119, 129, 108, 131, 126, 130, 119, 143, 128, 133, 121, 107, 124, 130, 126, 131, 119, 117, 125, 130, 98, 117, 133, 120, 84, 122, 116, 137, 112, 114, 120, 136, 128, 122, 123, 119, 148, 123, 127, 109, 120, 124, 118, 120, 120, 115, 140, 142, 115, 139, 120, 113, 126, 123, 115, 123, 102, 104, 124, 131, 138, 121, 132, 135, 123, 105, 145, 139, 128, 124, 112, 130, 133, 118, 131, 131, 133, 134, 144, 124, 125, 132, 124, 126, 112, 126, 114, 107, 140, 123, 132, 120, 109, 122, 144, 124, 120, 124, 127, 120, 123, 137, 139, 130, 119, 135, 114, 111, 119, 117, 113, 125, 129, 122, 120, 128, 141, 130, 125, 118, 118, 127, 115, 116, 137, 137, 127, 131, 116, 134, 114, 123, 120, 130, 118, 138, 112, 120, 132, 124, 110, 126, 127, 123, 136, 120, 119, 136, 130, 135, 117, 140, 143, 109, 114, 140, 124, 113, 133, 144, 123, 134, 119, 120, 127, 120, 123, 126, 121, 109, 113, 111, 131, 127, 138, 117, 125, 124, 142, 120, 132, 122, 134, 121, 120, 132, 124, 151, 124, 111, 123, 142, 144, 118, 121, 133, 122, 119, 125, 124, 126, 130, 119, 135, 122, 112, 128, 128, 120, 134, 117, 112, 142, 122, 114, 115, 133, 126, 139, 143, 127, 137, 129, 125, 117, 101, 134, 133, 158, 124, 131, 127, 118, 139, 134, 124, 129, 132, 120, 111, 128, 126, 141, 122, 113, 120, 112, 134, 124, 131, 114, 125, 129, 109, 118, 121, 124, 137, 137, 125, 118, 107, 127, 97, 128, 120, 109, 115, 128, 118, 117, 136, 123, 122, 128, 150, 116, 116, 139, 138, 118, 120, 130, 126, 134, 140, 83, 134, 147, 131, 121, 136, 119, 136, 117, 123, 130, 137, 132, 136, 121, 129, 124, 117, 136, 134, 121, 132, 106, 151, 121, 129, 119, 111, 143, 124, 134, 118, 126, 126, 125, 116, 118, 119, 108, 119, 141, 129, 131, 130, 134, 110, 146, 128, 115, 139, 122, 127, 135, 115, 102, 110, 122, 116, 134, 125, 123, 124, 142, 123, 127, 108, 135, 123, 128, 123, 140, 129, 130, 104, 113, 122, 118, 125, 108, 128, 117, 123, 134, 136, 126, 142, 112, 126, 126, 127, 138, 132, 120, 129, 138, 140, 120, 140, 141, 141, 119, 129, 120, 122, 105, 130, 129, 125, 134, 147, 126, 118, 136, 112, 145, 106, 136, 110, 114, 123, 129, 134, 127, 119, 104, 139, 114, 122, 118, 151, 96, 128, 120, 137, 130, 130, 138, 116, 116, 125, 122, 126, 118, 126, 138, 130, 125, 112, 129, 128, 132, 128, 120, 123, 121, 112, 123, 124, 138, 118, 118, 116, 139, 129, 117, 130, 109, 122, 127, 114, 133, 122, 120, 140, 115, 108, 129, 136, 124, 132, 127, 118, 125, 127, 153, 129, 136, 127, 139, 109, 119, 130, 127, 124, 120, 134, 125, 113, 119, 114, 114, 134, 121, 116, 152, 127, 134, 128, 132, 119, 131, 110, 103, 134, 136, 130, 126, 112, 128, 115, 145, 109, 123, 126, 124, 126, 124, 122, 136, 141, 119, 128, 107, 134, 106, 120, 115, 108, 110, 106, 117, 128, 123, 121, 120, 114, 133, 122, 133, 137, 128, 144, 135, 126, 123, 121, 126, 125, 118, 134, 144, 147, 111, 126, 137, 123, 108, 136, 126, 144, 125, 128, 125, 121, 119, 139, 130, 127, 132, 123, 131, 125, 131, 124, 113, 132, 113, 129, 130, 138, 118, 135, 113, 121, 131, 104, 125, 117, 138, 129, 132, 132, 140, 122, 119, 128, 119, 132, 134, 132, 133, 152, 142, 143, 128, 136, 134, 105, 125, 116, 115, 125, 121, 112, 119, 139, 116, 121, 120, 123, 115, 101, 127, 127, 113, 132, 122, 123, 122, 123, 129, 127, 123, 146, 125, 116, 129, 154, 129, 123, 107, 117, 99, 117, 129, 125, 118, 121, 128, 118, 114, 136, 136, 142, 132, 121, 107, 111, 129, 113, 100, 128, 138, 109, 126, 137, 127, 146, 121, 111, 121, 144, 121, 120, 109, 136, 123, 104, 132, 124, 128, 116, 127, 127, 117, 111, 123, 112, 137, 135, 121, 116, 128, 122, 126, 126, 135, 141, 135, 118, 113, 128, 126, 119, 131, 124, 122, 137, 111, 137, 114, 108, 127, 130, 129, 120, 129, 127, 128, 131, 108, 136, 135, 134, 121, 132, 123, 144, 118, 137, 134, 107, 111, 125, 128, 130, 117, 120, 123, 130, 121, 131, 139, 106, 128, 132, 128, 119, 128, 132, 119, 122, 131, 137, 119, 130, 124, 133, 123, 134, 123, 129, 121, 123, 150, 128, 127, 147, 133, 127, 121, 131, 137, 116, 131, 142, 119, 123, 118, 133, 119, 124, 122, 133, 124, 120, 137, 140, 122, 133, 140, 110, 124, 117, 132, 130, 130, 129, 133, 105, 139, 113, 120, 141, 145, 107, 131, 144, 111, 136, 123, 119, 134, 133, 129, 138, 119, 119, 124, 127, 127, 118, 122, 117, 125, 121, 132, 123, 114, 109, 128, 125, 127, 113, 124, 112, 117, 120, 142, 132, 125, 148, 133, 120, 115, 122, 137, 130, 119, 126, 126, 111, 133, 121, 122, 104, 135, 124, 115, 135, 116, 123, 119, 117, 133, 136, 133, 98, 117, 102, 122, 130, 146, 132, 119, 122, 147, 115, 114, 126, 132, 108, 135, 115, 121, 97, 135, 139, 124, 130, 127, 148, 128, 102, 140, 129, 154, 129, 120, 131, 136, 127, 129, 123, 127, 121, 123, 86, 119, 124, 124, 115, 120, 127, 136, 135, 111, 135, 125, 125, 123, 131, 111, 136, 110, 118, 118, 115, 142, 137, 125, 118, 131, 132, 129, 127, 124, 136, 112, 117, 124, 137, 116, 108, 124, 117, 143, 124, 123, 125, 130, 123, 126, 136, 131, 105, 130, 122, 112, 100, 125, 127, 110, 130, 101, 123, 134, 131, 137, 122, 153, 117, 129, 114, 121, 120, 137, 123, 130, 125, 120, 121, 138, 127, 128, 135, 128, 129, 133, 120, 126, 138, 123, 98, 141, 103, 109, 127, 140, 111, 137, 118, 118, 137, 137, 132, 127, 115, 122, 145, 132, 127, 127, 116, 123, 134, 129, 141, 118, 123, 137, 125, 124, 114, 114, 129, 109, 127, 122, 134, 128, 123, 132, 117, 142, 114, 152, 134, 119, 143, 117, 119, 124, 136, 136, 121, 132, 156, 126, 116, 122, 112, 136, 127, 120, 117, 124, 102, 132, 121, 130, 104, 124, 136, 123, 126, 123, 88, 135, 125, 113, 117, 123, 135, 120, 109, 116, 108, 114, 118, 116, 126, 134, 133, 126, 121, 116, 115, 133, 142, 126, 128, 128, 138, 119, 120, 121, 139, 122, 124, 131, 130, 119, 126, 133, 131, 134, 111, 119, 134, 120, 128, 112, 121, 129, 122, 113, 108, 134, 127, 122, 133, 126, 109, 129, 146, 129, 99, 122, 120, 126, 116, 132, 124, 123, 135, 122, 141, 137, 133, 127, 117, 121, 116, 146, 115, 128, 120, 104, 122, 143, 116, 121, 116, 135, 132, 131, 140, 126, 111, 130, 124, 132, 124, 134, 135, 121, 127, 117, 119, 137, 135, 106, 129, 122, 129, 147, 136, 139, 110, 142, 131, 116, 152, 143, 118, 131, 137, 118, 136, 143, 138, 126, 127, 122, 123, 145, 116, 129, 123, 116, 106, 106, 137, 98, 120, 142, 135, 120, 135, 125, 106, 145, 122, 132, 135, 130, 123, 131, 123, 122, 122, 127, 124, 119, 149, 125, 121, 111, 122, 129, 122, 140, 118, 123, 129, 112, 127, 121, 132, 136, 139, 132, 126, 105, 118, 123, 123, 123, 120, 110, 126, 108, 119, 123, 133, 126, 120, 122, 133, 113, 126, 136, 138, 120, 103, 124, 129, 108, 129, 124, 120, 134, 129, 132, 139, 128, 133, 112, 136, 125, 131, 118, 121, 132, 140, 127, 129, 115, 133, 105, 123, 143, 128, 125, 119, 122, 108, 147, 143, 123, 126, 127, 124, 120, 134, 103, 121, 137, 127, 147, 145, 133, 132, 125, 133, 112, 123, 125, 135, 116, 110, 134, 131, 129, 125, 121, 117, 126, 112, 110, 123, 125, 125, 136, 103, 125, 122, 116, 115, 139, 141, 111, 121, 109, 126, 132, 106, 126, 123, 128, 116, 126, 118, 136, 137, 130, 130, 126, 123, 135, 131, 129, 135, 137, 115, 107, 128, 144, 116, 126, 123, 126, 136, 125, 127, 142, 118, 130, 120, 127, 118, 110, 124, 130, 119, 127, 121, 114, 122, 120, 112, 136, 128, 126, 126, 113, 135, 107, 132, 140, 126, 118, 126, 131, 125, 116, 154, 119, 124, 115, 135, 144, 116, 117, 117, 128, 123, 128, 129, 124, 114, 127, 134, 118, 122, 124, 108, 120, 134, 120, 124, 111, 114, 117, 131, 143, 129, 116, 121, 130, 130, 142, 130, 118, 125, 119, 130, 129, 131, 130, 128, 120, 131, 126, 134, 137, 137, 129, 122, 107, 124, 118, 146, 120, 116, 124, 146, 116, 136, 135, 92, 120, 127, 114, 127, 123, 122, 113, 127, 128, 136, 131, 112, 131, 119, 127, 139, 134, 133, 130, 112, 115, 148, 128, 127, 138, 122, 120, 133, 121, 116, 122, 117, 133, 135, 140, 125, 111, 131, 128, 129, 134, 144, 112, 131, 126, 140, 138, 127, 126, 126, 132, 130, 139, 131, 120, 138, 117, 111, 120, 111, 129, 136, 135, 108, 112, 142, 116, 109, 129, 109, 128, 124, 107, 110, 135, 124, 119, 138, 114, 119, 140, 121, 120, 119, 132, 115, 133, 121, 119, 127, 126, 109, 154, 134, 119, 120, 117, 137, 124, 121, 132, 152, 111, 124, 145, 122, 132, 113, 127, 117, 136, 138, 118, 132, 130, 125, 151, 124, 125, 130, 122, 129, 123, 118, 119, 121, 124, 121, 123, 142, 126, 134, 130, 99, 131, 141, 115, 135, 115, 135, 121, 150, 134, 126, 131, 116, 115, 119, 137, 130, 132, 122, 111, 129, 135, 124, 112, 139, 116, 123, 149, 124, 120, 115, 121, 107, 138, 129, 123, 119, 117, 124, 132, 138, 126, 127, 137, 126, 114, 126, 96, 128, 134, 125, 108, 125, 97, 136, 125, 118, 126, 118, 122, 131, 112, 109, 134, 111, 136, 115, 140, 139, 141, 132, 121, 112, 138, 134, 123, 115, 145, 124, 121, 118, 109, 131, 126, 110, 134, 123, 107, 120, 137, 117, 129, 127, 131, 114, 118, 149, 113, 140, 127, 125, 116, 112, 131, 115, 123, 127, 132, 113, 137, 128, 112, 128, 125, 132, 121, 147, 115, 139, 117, 143, 108, 118, 139, 127, 103, 124, 126, 131, 130, 122, 138, 121, 154, 122, 112, 128, 126, 111, 114, 135, 127, 124, 130, 130, 129, 122, 118, 127, 124, 127, 124, 121, 129, 120, 127, 127, 131, 136, 130, 121, 134, 116, 124, 132, 125, 122, 127, 117, 109, 130, 123, 121, 137, 128, 109, 117, 122, 128, 130, 129, 115, 125, 116, 135, 142, 128, 125, 117, 127, 120, 117, 120, 120, 131, 130, 112, 116, 128, 110, 141, 131, 136, 129, 144, 132, 116, 141, 126, 132, 120, 121, 124, 130, 144, 117, 129, 145, 113, 129, 119, 113, 123, 131, 115, 124, 112, 103, 132, 121, 128, 123, 114, 120, 137, 124, 119, 134, 126, 129, 119, 135, 127, 123, 143, 128, 125, 120, 129, 135, 123, 132, 125, 127, 128, 124, 139, 123, 122, 131, 123, 134, 115, 137, 117, 114, 138, 117, 121, 123, 137, 131, 128, 117, 102, 136, 141, 121, 132, 130, 134, 141, 139, 142, 106, 122, 144, 124, 127, 105, 130, 121, 125, 128, 127, 134, 117, 120, 154, 127, 141, 128, 128, 106, 116, 142, 126, 133, 118, 117, 113, 148, 135, 122, 122, 113, 106, 107, 124, 121, 114, 137, 113, 121, 114, 142, 108, 133, 131, 99, 120, 128, 127, 121, 132, 130, 137, 127, 141, 119, 145, 120, 129, 130, 138, 114, 120, 139, 129, 132, 137, 137, 125, 115, 109, 125, 125, 143, 135, 115, 131, 131, 110, 120, 123, 115, 121, 119, 120, 149, 119, 132, 136, 132, 119, 130, 116, 120, 133, 133, 127, 126, 128, 132, 133, 115, 114, 111, 130, 136, 116, 115, 126, 120, 121, 131, 130, 126, 141, 125, 126, 132, 128, 113, 132, 128, 132, 127, 139, 137, 131, 124, 120, 140, 134, 130, 143, 121, 146, 128, 118, 129, 125, 119, 140, 120, 108, 108, 130, 123, 133, 108, 137, 124, 114, 128, 130, 127, 130, 110, 128, 150, 135, 125, 117, 118, 130, 165, 157, 130, 120, 112, 134, 120, 121, 134, 122, 123, 118, 111, 131, 122, 134, 124, 129, 129, 125, 127, 102, 141, 133, 128, 118, 112, 138, 128, 126, 137, 124, 122, 126, 114, 123, 162, 117, 129, 135, 132, 126, 116, 135, 132, 126, 144, 147, 125, 127, 145, 124, 123, 126, 123, 128, 138, 133, 131, 128, 127, 138, 113, 123, 135, 135, 128, 123, 109, 130, 117, 135, 131, 126, 137, 120, 130, 126, 116, 111, 124, 118, 144, 130, 113, 123, 129, 122, 154, 127, 132, 144, 137, 127, 116, 117, 132, 119, 147, 125, 101, 138, 106, 123, 129, 127, 129, 121, 118, 115, 136, 116, 116, 109, 127, 125, 130, 142, 119, 127, 113, 128, 113, 136, 113, 144, 112, 116, 115, 155, 128, 124, 107, 146, 135, 129, 124, 107, 120, 144, 117, 119, 126, 129, 135, 97, 126, 113, 118, 131, 124, 122, 130, 116, 128, 127, 106, 117, 125, 125, 112, 124, 115, 111, 131, 142, 123, 122, 135, 138, 139, 139, 128, 123, 106, 119, 112, 121, 131, 117, 128, 131, 137, 120, 135, 128, 115, 111, 138, 138, 124, 131, 129, 113, 134, 119, 123, 118, 121, 127, 120, 143, 126, 112, 131, 107, 126, 128, 139, 112, 124, 116, 142, 133, 145, 126, 120, 138, 107, 124, 123, 111, 115, 156, 154, 137, 127, 107, 144, 127, 131, 116, 110, 115, 133, 121, 121, 99, 113, 117, 117, 140, 100, 124, 121, 145, 138, 141, 129, 127, 127, 124, 143, 113, 123, 118, 133, 111, 134, 144, 138, 133, 135, 117, 113, 126, 142, 120, 128, 127, 118, 120, 114, 141, 134, 124, 130, 110, 107, 126, 115, 132, 117, 124, 132, 121, 146, 129, 133, 111, 134, 146, 105, 115, 120, 112, 120, 116, 140, 108, 141, 118, 139, 125, 127, 115, 125, 104, 113, 136, 132, 141, 122, 141, 127, 122, 129, 113, 116, 109, 125, 116, 117, 113, 134, 121, 135, 128, 123, 113, 126, 126, 111, 118, 140, 125, 110, 128, 135, 125, 117, 136, 128, 140, 123, 136, 132, 120, 112, 136, 147, 125, 121, 145, 124, 127, 132, 133, 129, 111, 129, 108, 131, 141, 123, 125, 100, 131, 129, 143, 125, 112, 129, 119, 134, 131, 136, 128, 129, 128, 130, 116, 122, 124, 114, 108, 107, 141, 123, 138, 128, 128, 125, 110, 144, 125, 120, 119, 119, 118, 131, 126, 115, 133, 123, 111, 111, 122, 129, 132, 109, 102, 124, 131, 119, 132, 128, 114, 129, 119, 115, 127, 130, 136, 125, 136, 117, 109, 122, 144, 118, 130, 134, 108, 134, 107, 143, 101, 147, 122, 140, 112, 126, 109, 151, 110, 131, 132, 117, 102, 130, 113, 124, 139, 140, 132, 103, 129, 123, 111, 105, 147, 118, 132, 127, 119, 126, 112, 122, 117, 129, 121, 130, 119, 117, 125, 127, 127, 139, 120, 122, 128, 119, 129, 130, 135, 141, 130, 119, 112, 112, 115, 110, 134, 120, 142, 118, 116, 125, 123, 157, 118, 121, 145, 115, 122, 130, 134, 119, 150, 147, 125, 117, 116, 121, 119, 120, 117, 125, 141, 134, 120, 134, 127, 121, 120, 115, 120, 130, 124, 125, 123, 121, 122, 126, 129, 118, 108, 132, 134, 120, 153, 134, 117, 119, 135, 131, 104, 120, 136, 122, 113, 127, 128, 139, 134, 122, 151, 146, 121, 132, 129, 141, 145, 126, 133, 124, 124, 130, 134, 112, 120, 148, 117, 127, 112, 128, 120, 113, 119, 122, 119, 132, 114, 107, 124, 141, 130, 126, 134, 123, 140, 128, 133, 117, 100, 135, 133, 118, 110, 122, 129, 107, 121, 126, 112, 116, 132, 132, 140, 114, 134, 135, 142, 133, 119, 130, 126, 120, 126, 124, 120, 128, 123, 117, 128, 135, 138, 108, 129, 112, 122, 138, 123, 135, 126, 141, 120, 140, 107, 142, 114, 135, 119, 113, 118, 136, 148, 112, 115, 136, 117, 125, 125, 135, 100, 120, 116, 113, 121, 114, 131, 136, 138, 122, 129, 116, 134, 155, 134, 122, 121, 129, 124, 139, 105, 132, 128, 121, 114, 128, 138, 124, 110, 123, 123, 114, 132, 136, 119, 112, 117, 140, 121, 134, 130, 112, 117, 124, 135, 116, 106, 122, 119, 120, 132, 117, 127, 133, 120, 123, 136, 138, 130, 132, 139, 136, 124, 118, 124, 120, 141, 129, 122, 129, 129, 123, 113, 128, 127, 134, 128, 135, 129, 136, 115, 114, 131, 124, 114, 144, 146, 118, 124, 126, 131, 119, 120, 125, 134, 119, 118, 122, 128, 105, 110, 121, 130, 116, 124, 137, 140, 146, 121, 124, 126, 113, 128, 151, 128, 120, 130, 174, 123, 139, 121, 125, 134, 125, 134, 125, 130, 118, 114, 116, 113, 124, 139, 130, 115, 148, 118, 132, 135, 128, 145, 118, 132, 139, 114, 118, 130, 119, 107, 123, 109, 124, 121, 131, 121, 115, 129, 137, 124, 126, 129, 121, 125, 127, 121, 139, 134, 135, 107, 127, 135, 124, 137, 127, 135, 152, 113, 107, 133, 138, 129, 117, 121, 120, 130, 133, 121, 130, 125, 128, 127, 118, 124, 121, 139, 133, 111, 111, 144, 125, 130, 146, 121, 122, 123, 149, 131, 132, 110, 127, 126, 117, 104, 122, 131, 116, 127, 128, 127, 114, 128, 122, 120, 128, 128, 145, 104, 127, 115, 140, 135, 130, 118, 117, 119, 135, 127, 121, 126, 136, 129, 130, 140, 104, 119, 118, 120, 148, 129, 123, 127, 135, 112, 131, 132, 133, 151, 137, 122, 122, 142, 138, 131, 105, 127, 114, 121, 141, 119, 118, 122, 152, 136, 116, 135, 123, 114, 145, 115, 149, 120, 126, 123, 128, 139, 116, 142, 124, 125, 150, 129, 119, 129, 123, 123, 133, 121, 131, 130, 121, 106, 134, 90, 131, 133, 122, 125, 117, 139, 118, 137, 132, 123, 115, 105, 110, 127, 119, 120, 134, 119, 121, 135, 111, 123, 114, 126, 126, 123, 119, 137, 148, 127, 137, 130, 123, 116, 137, 128, 130, 123, 107, 122, 126, 127, 116, 143, 150, 124, 124, 134, 112, 126, 136, 122, 122, 128, 126, 124, 133, 132, 140, 126, 126, 132, 121, 123, 154, 128, 126, 122, 124, 139, 120, 123, 142, 123, 128, 128, 121, 137, 117, 107, 134, 135, 137, 127, 122, 127, 119, 118, 99, 129, 124, 134, 115, 121, 140, 128, 129, 127, 122, 130, 132, 120, 127, 124, 145, 131, 110, 108, 119, 124, 119, 133, 117, 133, 121, 119, 133, 119, 138, 120, 131, 122, 139, 146, 128, 140, 137, 113, 125, 130, 142, 116, 130, 119, 128, 138, 126, 133, 111, 122, 139, 121, 152, 132, 115, 108, 127, 125, 133, 129, 142, 111, 133, 114, 114, 121, 134, 98, 131, 119, 128, 137, 123, 124, 122, 128, 135, 113, 134, 132, 110, 125, 88, 120, 133, 128, 111, 126, 129, 104, 116, 121, 142, 126, 133, 112, 122, 119, 125, 135, 129, 142, 127, 131, 125, 119, 124, 108, 137, 138, 130, 130, 122, 129, 140, 156, 142, 122, 135, 129, 113, 129, 114, 107, 132, 139, 120, 134, 120, 133, 120, 116, 121, 128, 116, 131, 109, 131, 123, 131, 141, 117, 127, 128, 115, 123, 121, 121, 127, 129, 120, 118, 131, 133, 129, 131, 117, 130, 140, 117, 117, 118, 154, 104, 141, 101, 128, 114, 118, 159, 122, 131, 116, 127, 123, 127, 117, 122, 127, 125, 132, 128, 135, 145, 119, 148, 115, 128, 126, 130, 132, 117, 128, 107, 126, 103, 144, 146, 118, 127, 126, 137, 123, 138, 119, 124, 134, 130, 130, 112, 132, 130, 126, 119, 125, 121, 77, 121, 130, 131, 149, 129, 120, 121, 110, 129, 147, 124, 119, 102, 111, 92, 113, 96, 135, 107, 117, 117, 124, 140, 107, 121, 147, 125, 132, 137, 86, 138, 116, 134, 116, 126, 118, 153, 92, 113, 130, 137, 130, 141, 139, 133, 128, 118, 138, 124, 160, 134, 121, 111, 132, 142, 122, 133, 167, 132, 139, 142, 129, 134, 111, 120, 137, 114, 143, 125, 123, 119, 106, 130, 111, 125, 132, 118, 128, 135, 111, 125, 116, 111, 131, 131, 142, 121, 122, 124, 129, 134, 115, 138, 122, 124, 125, 130, 108, 120, 118, 146, 116, 123, 126, 113, 125, 133, 136, 117, 115, 150, 122, 136, 140, 128, 126, 90, 129, 122, 119, 123, 122, 125, 132, 115, 127, 131, 122, 127, 130, 130, 116, 119, 118, 118, 135, 131, 108, 138, 124, 118, 127, 132, 92, 125, 112, 123, 127, 116, 160, 121, 121, 140, 110, 133, 120, 128, 121, 126, 126, 116, 112, 119, 121, 127, 120, 117, 120, 135, 120, 127, 124, 136, 115, 136, 134, 122, 144, 127, 127, 117, 113, 102, 127, 125, 118, 117, 126, 109, 104, 128, 131, 129, 114, 134, 126, 134, 133, 118, 140, 126, 120, 114, 134, 120, 106, 122, 124, 122, 144, 136, 133, 134, 131, 123, 118, 128, 120, 117, 132, 130, 111, 111, 117, 117, 129, 125, 122, 129, 113, 121, 104, 117, 128, 116, 118, 128, 135, 121, 133, 139, 129, 138, 115, 124, 117, 123, 119, 136, 132, 133, 125, 121, 140, 130, 117, 122, 136, 111, 118, 115, 118, 108, 122, 110, 126, 124, 118, 131, 122, 146, 121, 129, 137, 104, 114, 126, 129, 145, 148, 119, 122, 145, 117, 126, 137, 128, 137, 132, 133, 115, 123, 123, 140, 129, 128, 124, 120, 122, 105, 123, 136, 137, 115, 131, 126, 117, 134, 136, 154, 138, 119, 102, 106, 105, 128, 96, 123, 108, 139, 131, 136, 147, 122, 123, 112, 111, 96, 117, 134, 122, 133, 131, 153, 103, 120, 130, 141, 128, 115, 125, 131, 115, 126, 126, 127, 109, 111, 121, 136, 137, 124, 117, 137, 122, 109, 110, 106, 132, 116, 133, 113, 136, 112, 140, 108, 127, 124, 132, 131, 111, 126, 121, 110, 126, 127, 122, 132, 124, 121, 137, 136, 149, 143, 120, 124, 129, 120, 120, 121, 121, 142, 117, 138, 137, 135, 145, 123, 132, 135, 111, 127, 135, 128, 127, 121, 112, 89, 125, 137, 130, 134, 128, 134, 126, 136, 114, 132, 117, 128, 131, 117, 132, 124, 120, 113, 132, 126, 109, 96, 126, 129, 164, 124, 116, 104, 119, 121, 131, 126, 114, 126, 132, 114, 123, 118, 131, 125, 112, 127, 117, 136, 124, 137, 148, 133, 145, 115, 136, 116, 112, 123, 122, 132, 121, 122, 109, 126, 137, 129, 120, 136, 125, 131, 132, 130, 107, 142, 124, 128, 111, 129, 128, 134, 113, 116, 138, 144, 136, 120, 145, 126, 119, 115, 118, 123, 137, 99, 120, 124, 130, 137, 128, 120, 115, 125, 131, 122, 124, 120, 128, 129, 136, 120, 112, 115, 118, 130, 128, 127, 133, 127, 122, 131, 125, 128, 131, 118, 130, 129, 123, 116, 115, 108, 121, 112, 110, 130, 145, 126, 127, 126, 108, 125, 142, 127, 139, 126, 119, 117, 134, 120, 113, 120, 130, 122, 116, 126, 114, 132, 148, 136, 132, 138, 126, 139, 115, 121, 123, 123, 133, 115, 128, 130, 123, 128, 115, 130, 122, 128, 124, 123, 114, 123, 115, 122, 145, 125, 150, 109, 124, 118, 124, 123, 124, 125, 122, 109, 130, 149, 119, 123, 112, 131, 134, 136, 113, 118, 121, 116, 133, 127, 108, 104, 117, 132, 123, 130, 120, 129, 135, 151, 144, 133, 121, 133, 123, 137, 109, 119, 139, 117, 118, 119, 116, 123, 124, 132, 118, 135, 136, 135, 134, 136, 136, 127, 129, 139, 116, 119, 133, 143, 136, 120, 127, 131, 120, 135, 126, 139, 130, 124, 122, 117, 137, 110, 135, 121, 135, 142, 123, 127, 129, 115, 121, 128, 104, 139, 102, 114, 125, 122, 113, 125, 114, 130, 137, 124, 125, 130, 120, 124, 107, 123, 134, 134, 117, 124, 122, 129, 128, 117, 141, 131, 129, 132, 128, 123, 124, 129, 117, 138, 120, 131, 129, 133, 139, 155, 139, 124, 109, 117, 113, 119, 137, 131, 121, 126, 129, 116, 137, 136, 127, 111, 120, 132, 131, 146, 123, 143, 132, 130, 117, 113, 114, 143, 117, 126, 138, 135, 133, 128, 130, 102, 141, 113, 131, 130, 127, 121, 121, 138, 136, 115, 132, 136, 128, 115, 119, 121, 114, 131, 113, 117, 111, 135, 117, 132, 113, 118, 122, 123, 129, 122, 113, 114, 120, 123, 118, 125, 124, 131, 130, 133, 133, 123, 116, 130, 132, 142, 114, 120, 141, 119, 133, 127, 135, 117, 118, 135, 107, 134, 135, 131, 125, 111, 112, 124, 110, 106, 130, 115, 112, 150, 122, 132, 127, 123, 130, 147, 127, 136, 122, 117, 145, 130, 122, 107, 126, 127, 112, 127, 131, 127, 118, 136, 126, 129, 134, 135, 110, 131, 114, 134, 117, 129, 122, 126, 140, 129, 108, 134, 130, 148, 144, 106, 129, 127, 146, 157, 134, 120, 106, 118, 110, 129, 148, 136, 145, 143, 135, 131, 120, 141, 120, 125, 134, 130, 131, 121, 119, 133, 130, 124, 112, 133, 129, 123, 115, 130, 126, 121, 119, 111, 120, 125, 129, 129, 124, 128, 127, 126, 110, 135, 140, 136, 120, 137, 128, 122, 141, 115, 124, 118, 117, 123, 127, 137, 131, 144, 123, 128, 113, 130, 125, 132, 139, 125, 115, 128, 124, 128, 153, 129, 129, 141, 131, 119, 130, 128, 118, 104, 128, 115, 137, 118, 126, 120, 113, 141, 117, 124, 120, 110, 121, 131, 134, 145, 131, 133, 124, 119, 139, 124, 121, 115, 122, 129, 130, 124, 134, 118, 129, 131, 116, 117, 138, 140, 139, 144, 146, 121, 134, 127, 114, 135, 92, 128, 117, 129, 129, 128, 120, 118, 126, 121, 128, 118, 106, 122, 130, 123, 124, 140, 119, 123, 134, 132, 130, 132, 125, 131, 115, 119, 93, 121, 112, 127, 112, 143, 125, 111, 120, 134, 130, 117, 110, 150, 119, 122, 144, 122, 134, 120, 123, 122, 133, 116, 125, 138, 148, 116, 119, 122, 133, 119, 125, 121, 125, 125, 127, 120, 124, 127, 115, 117, 125, 142, 135, 113, 128, 117, 122, 139, 130, 138, 126, 141, 143, 116, 120, 107, 116, 121, 136, 138, 127, 129, 109, 123, 133, 145, 124, 130, 121, 96, 139, 127, 125, 112, 143, 123, 133, 127, 111, 131, 133, 118, 131, 125, 124, 125, 129, 119, 124, 125, 118, 115, 136, 138, 124, 124, 111, 119, 114, 125, 121, 118, 126, 121, 121, 125, 134, 128, 114, 132, 135, 129, 134, 123, 131, 136, 123, 137, 125, 117, 136, 112, 125, 108, 126, 130, 122, 127, 125, 108, 117, 121, 121, 133, 122, 124, 119, 134, 135, 112, 131, 131, 144, 129, 118, 118, 118, 119, 122, 143, 120, 139, 112, 119, 123, 119, 131, 137, 129, 112, 140, 101, 117, 106, 127, 124, 134, 135, 109, 123, 113, 123, 124, 121, 116, 125, 109, 137, 127, 137, 135, 117, 124, 114, 124, 130, 123, 160, 138, 130, 127, 123, 143, 148, 131, 124, 122, 139, 112, 123, 127, 127, 115, 140, 123, 132, 119, 134, 117, 113, 130, 132, 136, 135, 131, 128, 117, 142, 132, 109, 123, 126, 127, 136, 138, 125, 127, 114, 126, 121, 131, 125, 117, 130, 130, 127, 144, 120, 138, 124, 114, 123, 124, 112, 128, 119, 125, 120, 131, 119, 131, 120, 107, 146, 128, 133, 124, 126, 120, 118, 105, 116, 121, 127, 115, 121, 130, 130, 120, 112, 124, 137, 122, 125, 127, 118, 113, 126, 131, 158, 128, 140, 121, 133, 127, 114, 117, 124, 121, 123, 125, 116, 101, 126, 147, 104, 133, 121, 130, 127, 121, 120, 125, 131, 104, 117, 108, 115, 127, 117, 139, 119, 144, 124, 142, 124, 129, 130, 113, 127, 117, 135, 125, 138, 117, 113, 133, 126, 137, 99, 141, 147, 116, 138, 138, 117, 122, 143, 136, 123, 126, 141, 125, 136, 129, 128, 140, 120, 130, 124, 108, 120, 126, 124, 141, 136, 128, 119, 125, 121, 142, 117, 125, 109, 128, 117, 125, 133, 140, 131, 119, 122, 115, 123, 124, 122, 125, 116, 128, 140, 124, 101, 121, 114, 121, 116, 146, 151, 132, 140, 135, 121, 136, 122, 126, 126, 132, 117, 117, 132, 115, 136, 104, 125, 129, 114, 118, 109, 126, 132, 128, 123, 147, 123, 152, 108, 132, 101, 137, 113, 133, 127, 106, 121, 132, 96, 135, 102, 120, 150, 129, 103, 121, 143, 133, 120, 119, 134, 118, 115, 130, 132, 103, 120, 116, 131, 115, 114, 135, 127, 106, 113, 120, 120, 125, 121, 118, 125, 106, 123, 120, 144, 137, 120, 129, 121, 124, 137, 125, 122, 126, 119, 121, 118, 131, 140, 129, 125, 142, 118, 139, 127, 130, 110, 131, 117, 125, 126, 143, 123, 118, 143, 154, 144, 111, 125, 122, 122, 143, 117, 144, 139, 121, 120, 146, 123, 132, 122, 123, 130, 106, 150, 111, 126, 143, 132, 126, 121, 113, 105, 133, 119, 108, 117, 123, 135, 142, 136, 128, 128, 120, 135, 121, 126, 115, 107, 135, 124, 120, 115, 108, 127, 130, 133, 121, 134, 122, 131, 126, 124, 133, 121, 103, 121, 125, 134, 127, 154, 142, 118, 114, 131, 127, 144, 137, 114, 101, 115, 114, 126, 124, 125, 138, 119, 128, 122, 134, 111, 122, 121, 113, 121, 110, 138, 132, 129, 110, 115, 102, 106, 127, 122, 128, 123, 143, 119, 130, 128, 125, 122, 100, 115, 119, 123, 113, 131, 124, 124, 116, 119, 107, 143, 138, 132, 124, 128, 116, 125, 117, 130, 132, 126, 136, 132, 130, 116, 133, 116, 126, 140, 124, 132, 141, 105, 122, 134, 131, 129, 139, 115, 103, 117, 116, 125, 115, 123, 143, 108, 139, 126, 115, 136, 126, 130, 133, 111, 111, 156, 160, 119, 103, 147, 127, 128, 124, 107, 126, 111, 111, 95, 133, 134, 117, 125, 133, 115, 113, 121, 131, 143, 119, 137, 135, 128, 140, 131, 137, 122, 110, 129, 123, 123, 113, 129, 124, 132, 135, 134, 123, 112, 122, 106, 130, 121, 124, 118, 107, 129, 128, 142, 111, 116, 139, 113, 124, 110, 111, 129, 109, 102, 124, 131, 118, 138, 115, 128, 116, 118, 152, 134, 131, 120, 127, 136, 147, 122, 119, 136, 123, 92, 117, 111, 122, 124, 129, 147, 114, 131, 113, 136, 134, 145, 124, 119, 136, 144, 125, 141, 137, 126, 126, 151, 123, 122, 123, 113, 145, 141, 136, 103, 99, 142, 122, 105, 141, 121, 146, 108, 106, 117, 134, 144, 129, 136, 117, 116, 123, 129, 114, 119, 114, 100, 127, 117, 126, 125, 132, 114, 139, 131, 126, 120, 122, 99, 119, 127, 144, 107, 143, 124, 128, 110, 113, 131, 123, 114, 132, 116, 137, 110, 149, 115, 111, 146, 148, 117, 132, 116, 120, 126, 139, 128, 116, 122, 140, 112, 129, 115, 123, 120, 119, 126, 130, 154, 118, 136, 117, 146, 120, 119, 136, 121, 126, 129, 130, 124, 113, 120, 135, 131, 134, 113, 128, 100, 128, 121, 98, 130, 105, 123, 123, 123, 131, 120, 121, 121, 120, 116, 116, 120, 134, 124, 116, 136, 136, 138, 136, 122, 140, 114, 113, 99, 124, 134, 125, 117, 130, 131, 131, 136, 129, 100, 130, 133, 119, 136, 131, 112, 136, 103, 100, 122, 116, 122, 120, 124, 129, 127, 145, 144, 130, 133, 145, 124, 114, 123, 111, 120, 135, 98, 115, 99, 117, 105, 143, 136, 155, 126, 118, 122, 128, 140, 113, 130, 124, 125, 119, 140, 127, 112, 126, 113, 113, 119, 113, 116, 106, 126, 145, 141, 120, 122, 127, 132, 131, 114, 117, 115, 93, 122, 121, 126, 130, 127, 123, 135, 123, 127, 145, 129, 124, 116, 135, 109, 130, 115, 131, 117, 131, 113, 109, 127, 117, 145, 130, 116, 126, 132, 128, 137, 130, 118, 136, 123, 120, 116, 109, 114, 123, 113, 128, 137, 108, 127, 121, 114, 126, 138, 113, 145, 116, 133, 115, 135, 126, 128, 119, 107, 137, 137, 100, 131, 117, 114, 143, 141, 135, 142, 124, 140, 127, 119, 101, 138, 134, 134, 103, 128, 106, 134, 144, 134, 134, 122, 122, 133, 120, 130, 145, 142, 119, 126, 115, 111, 131, 140, 118, 110, 119, 115, 135, 142, 137, 122, 134, 111, 130, 98, 110, 124, 101, 153, 131, 125, 133, 123, 119, 149, 130, 118, 118, 122, 143, 131, 113, 143, 101, 133, 123, 122, 122, 124, 109, 118, 127, 128, 138, 135, 115, 125, 127, 114, 129, 138, 123, 139, 124, 122, 117, 111, 122, 128, 135, 137, 125, 119, 147, 135, 122, 140, 130, 110, 125, 122, 123, 131, 116, 140, 115, 109, 119, 128, 117, 132, 124, 123, 150, 122, 133, 116, 116, 127, 122, 118, 105, 139, 146, 130, 128, 119, 96, 134, 114, 122, 133, 139, 143, 131, 145, 113, 130, 120, 120, 129, 122, 129, 126, 126, 133, 122, 126, 119, 121, 120, 150, 113, 129, 114, 137, 123, 145, 153, 117, 115, 125, 144, 141, 146, 119, 127, 137, 124, 155, 132, 126, 111, 112, 125, 115, 126, 129, 136, 119, 128, 128, 141, 118, 124, 138, 126, 145, 127, 103, 134, 139, 124, 124, 123, 124, 116, 120, 127, 120, 151, 122, 114, 138, 135, 125, 139, 132, 128, 109, 119, 127, 123, 114, 110, 136, 129, 107, 122, 121, 121, 133, 127, 130, 111, 105, 137, 122, 131, 128, 114, 133, 107, 138, 135, 115, 106, 130, 119, 121, 120, 144, 120, 120, 123, 116, 132, 116, 127, 130, 148, 127, 135, 109, 125, 122, 146, 133, 111, 125, 117, 128, 146, 153, 124, 144, 141, 136, 134, 115, 119, 122, 109, 140, 122, 126, 134, 127, 123, 123, 125, 131, 115, 145, 116, 120, 121, 129, 130, 122, 117, 127, 121, 127, 147, 125, 148, 133, 121, 122, 121, 133, 125, 106, 127, 116, 124, 135, 122, 117, 124, 142, 141, 122, 148, 133, 128, 108, 135, 128, 115, 132, 126, 122, 122, 107, 126, 125, 149, 130, 97, 119, 119, 127, 130, 128, 123, 153, 135, 122, 148, 129, 133, 115, 118, 106, 119, 129, 128, 128, 123, 127, 115, 124, 119, 130, 128, 137, 124, 135, 126, 112, 128, 127, 148, 118, 132, 139, 123, 130, 134, 135, 144, 122, 120, 90, 132, 131, 118, 140, 148, 131, 121, 142, 135, 135, 130, 138, 128, 140, 114, 122, 117, 125, 112, 102, 118, 126, 119, 139, 133, 125, 129, 128, 120, 150, 120, 126, 120, 127, 132, 140, 130, 111, 140, 126, 132, 115, 124, 128, 125, 127, 126, 143, 110, 120, 122, 127, 133, 109, 131, 134, 121, 122, 135, 129, 130, 120, 129, 130, 120, 111, 119, 133, 122, 128, 128, 135, 133, 138, 122, 133, 116, 121, 131, 119, 137, 137, 131, 119, 119, 123, 131, 121, 128, 128, 126, 132, 131, 121, 123, 134, 121, 113, 121, 100, 129, 135, 111, 102, 125, 142, 135, 120, 132, 125, 130, 123, 136, 121, 109, 132, 131, 106, 116, 139, 119, 126, 132, 129, 130, 120, 121, 130, 139, 131, 135, 125, 123, 137, 110, 127, 140, 120, 110, 134, 118, 126, 122, 131, 131, 116, 136, 120, 124, 108, 169, 131, 115, 125, 125, 120, 129, 122, 152, 137, 126, 119, 111, 132, 128, 134, 106, 129, 133, 125, 135, 120, 134, 125, 140, 139, 139, 136, 119, 121, 128, 114, 121, 110, 126, 127, 130, 123, 125, 122, 152, 117, 128, 116, 119, 126, 136, 108, 125, 142, 137, 142, 112, 131, 125, 112, 116, 141, 119, 133, 136, 115, 120, 136, 148, 138, 107, 127, 134, 138, 109, 113, 130, 128, 117, 120, 119, 134, 119, 118, 132, 124, 113, 140, 121, 128, 126, 120, 125, 117, 119, 135, 124, 125, 129, 127, 142, 122, 125, 120, 123, 109, 122, 125, 121, 135, 110, 145, 127, 141, 129, 126, 121, 126, 109, 124, 128, 131, 113, 131, 117, 126, 140, 132, 131, 124, 136, 127, 142, 126, 102, 121, 133, 118, 122, 143, 134, 115, 132, 118, 125, 125, 126, 123, 115, 124, 114, 125, 129, 133, 123, 125, 118, 106, 127, 128, 126, 136, 119, 139, 118, 125, 127, 131, 141, 128, 139, 116, 123, 120, 105, 139, 127, 124, 111, 133, 128, 145, 123, 102, 148, 123, 110, 124, 136, 118, 114, 112, 114, 122, 136, 127, 111, 132, 117, 130, 126, 139, 124, 99, 128, 124, 122, 145, 135, 119, 128, 126, 128, 132, 142, 130, 132, 128, 120, 124, 111, 125, 142, 124, 129, 108, 134, 134, 115, 111, 125, 117, 126, 156, 129, 129, 104, 126, 113, 127, 129, 123, 140, 117, 116, 133, 133, 128, 126, 129, 133, 128, 115, 120, 148, 132, 125, 135, 131, 122, 113, 136, 131, 122, 123, 111, 123, 121, 119, 111, 126, 128, 113, 127, 138, 147, 142, 101, 121, 125, 130, 136, 106, 120, 130, 125, 123, 128, 118, 129, 119, 155, 136, 129, 119, 127, 139, 127, 126, 109, 110, 108, 134, 122, 116, 118, 124, 116, 129, 130, 130, 129, 156, 116, 119, 127, 130, 113, 116, 110, 130, 139, 121, 132, 123, 136, 116, 119, 137, 126, 126, 119, 117, 128, 114, 130, 114, 121, 123, 118, 137, 113, 117, 133, 132, 127, 148, 124, 140, 127, 150, 122, 126, 138, 147, 130, 134, 130, 116, 118, 136, 105, 120, 128, 138, 138, 139, 134, 126, 124, 117, 114, 134, 130, 122, 133, 151, 129, 137, 151, 121, 124, 116, 134, 143, 135, 127, 126, 121, 115, 120, 112, 135, 129, 121, 135, 136, 135, 134, 109, 118, 131, 117, 134, 114, 115, 113, 118, 142, 127, 127, 128, 120, 125, 120, 125, 129, 122, 111, 126, 123, 138, 130, 133, 132, 137, 120, 115, 144, 131, 129, 134, 127, 117, 134, 120, 133, 123, 113, 122, 129, 109, 122, 134, 111, 100, 120, 123, 131, 119, 123, 140, 114, 120, 130, 125, 112, 114, 122, 111, 135, 125, 138, 128, 128, 134, 134, 129, 128, 114, 122, 111, 116, 124, 119, 132, 114, 136, 124, 114, 105, 123, 122, 108, 125, 120, 124, 138, 107, 117, 144, 120, 119, 126, 137, 127, 113, 133, 118, 99, 139, 112, 108, 132, 124, 112, 126, 126, 126, 132, 116, 132, 108, 104, 133, 138, 126, 122, 131, 115, 116, 130, 140, 139, 108, 133, 111, 106, 126, 133, 129, 113, 145, 142, 130, 126, 121, 126, 126, 111, 134, 134, 111, 119, 131, 127, 132, 113, 124, 128, 130, 128, 112, 138, 118, 119, 123, 126, 115, 112, 137, 114, 132, 123, 121, 129, 117, 136, 121, 111, 126, 148, 121, 116, 123, 113, 131, 116, 140, 124, 135, 122, 130, 124, 131, 132, 124, 104, 121, 134, 139, 134, 127, 118, 132, 130, 120, 128, 132, 127, 128, 138, 126, 122, 123, 140, 122, 133, 128, 133, 132, 117, 133, 131, 137, 123, 110, 117, 114, 109, 123, 133, 114, 137, 122, 126, 126, 137, 111, 121, 111, 110, 108, 105, 117, 133, 134, 131, 114, 116, 132, 136, 128, 109, 136, 132, 128, 139, 130, 127, 137, 127, 116, 125, 126, 133, 121, 107, 130, 141, 138, 128, 133, 123, 110, 136, 136, 112, 129, 118, 117, 125, 126, 126, 114, 143, 140, 102, 135, 141, 113, 117, 141, 124, 137, 127, 121, 138, 132, 141, 119, 112, 121, 131, 132, 104, 118, 115, 147, 102, 121, 139, 144, 125, 125, 104, 115, 126, 126, 135, 121, 135, 127, 129, 133, 123, 132, 123, 126, 132, 122, 129, 128, 127, 121, 127, 109, 120, 136, 123, 115, 119, 131, 120, 115, 121, 142, 128, 111, 115, 105, 124, 122, 130, 129, 119, 116, 123, 136, 124, 132, 127, 144, 105, 137, 114, 149, 113, 132, 134, 133, 129, 111, 114, 121, 111, 121, 146, 129, 123, 122, 111, 132, 151, 132, 130, 134, 118, 129, 135, 121, 126, 127, 113, 134, 108, 130, 129, 118, 134, 98, 126, 118, 119, 127, 119, 130, 113, 123, 127, 120, 137, 113, 102, 132, 118, 119, 136, 137, 122, 142, 132, 126, 122, 128, 120, 124, 120, 127, 132, 132, 127, 129, 126, 102, 110, 109, 115, 129, 116, 143, 112, 123, 131, 121, 113, 118, 129, 118, 105, 129, 115, 114, 136, 125, 133, 113, 131, 116, 138, 137, 153, 140, 129, 118, 121, 127, 136, 143, 108, 117, 124, 128, 121, 126, 134, 121, 125, 128, 140, 130, 129, 126, 144, 131, 120, 134, 127, 126, 125, 111, 107, 142, 125, 145, 131, 139, 125, 120, 141, 119, 108, 124, 152, 118, 132, 111, 129, 109, 129, 120, 146, 134, 112, 138, 111, 132, 130, 120, 118, 126, 118, 137, 135, 136, 125, 112, 138, 123, 133, 118, 129, 140, 110, 114, 109, 104, 128, 131, 129, 123, 134, 132, 132, 106, 119, 125, 121, 121, 128, 125, 132, 113, 114, 110, 132, 102, 135, 122, 134, 122, 111, 131, 123, 124, 132, 120, 119, 133, 123, 131, 125, 134, 111, 139, 121, 131, 128, 124, 124, 130, 139, 147, 153, 109, 102, 114, 141, 135, 118, 120, 116, 128, 131, 119, 144, 145, 120, 115, 134, 109, 134, 146, 113, 124, 134, 113, 138, 141, 104, 128, 124, 130, 137, 109, 124, 138, 108, 106, 137, 144, 111, 117, 144, 124, 128, 117, 140, 109, 121, 124, 128, 122, 117, 107, 101, 122, 121, 139, 130, 133, 125, 117, 139, 137, 149, 125, 125, 135, 116, 135, 105, 116, 125, 118, 124, 139, 133, 121, 129, 138, 119, 135, 136, 118, 132, 141, 113, 140, 117, 147, 125, 137, 107, 121, 108, 132, 137, 106, 151, 122, 136, 126, 114, 106, 122, 111, 127, 132, 133, 113, 128, 135, 122, 133, 115, 120, 126, 119, 143, 138, 125, 124, 117, 143, 122, 135, 116, 120, 126, 135, 122, 135, 116, 121, 121, 125, 119, 110, 123, 136, 105, 124, 122, 111, 130, 127, 127, 136, 120, 136, 108, 119, 151, 138, 131, 125, 125, 110, 150, 126, 123, 117, 138, 124, 117, 105, 113, 129, 135, 122, 124, 110, 135, 122, 120, 161, 125, 128, 117, 124, 151, 85, 136, 100, 113, 121, 153, 136, 135, 132, 124, 116, 114, 125, 128, 130, 148, 103, 122, 112, 116, 113, 113, 121, 135, 111, 116, 118, 124, 138, 131, 137, 125, 134, 121, 136, 131, 114, 124, 108, 128, 132, 121, 118, 142, 130, 132, 124, 137, 129, 95, 111, 130, 122, 119, 140, 135, 128, 140, 150, 125, 119, 128, 146, 126, 114, 110, 126, 128, 121, 114, 119, 136, 117, 110, 124, 137, 123, 125, 139, 111, 119, 107, 116, 123, 106, 123, 123, 126, 126, 121, 135, 137, 109, 139, 138, 141, 130, 130, 129, 122, 121, 138, 103, 114, 123, 103, 129, 128, 97, 134, 133, 123, 144, 108, 120, 110, 133, 137, 121, 134, 130, 116, 114, 120, 108, 122, 111, 120, 135, 132, 127, 118, 147, 135, 124, 129, 112, 130, 134, 126, 136, 146, 135, 138, 130, 125, 133, 120, 131, 116, 144, 116, 129, 121, 133, 132, 142, 108, 115, 130, 111, 140, 146, 113, 141, 126, 132, 127, 123, 126, 117, 116, 127, 134, 132, 129, 125, 130, 132, 128, 119, 128, 111, 146, 122, 122, 109, 119, 121, 114, 106, 118, 117, 122, 120, 138, 122, 125, 121, 127, 158, 137, 131, 122, 125, 130, 139, 119, 115, 123, 139, 116, 121, 131, 116, 132, 119, 125, 130, 113, 147, 143, 117, 134, 114, 140, 118, 122, 107, 110, 142, 133, 136, 118, 127, 128, 114, 112, 140, 114, 130, 119, 127, 110, 135, 125, 104, 124, 120, 119, 125, 127, 133, 130, 99, 128, 139, 115, 137, 114, 124, 111, 129, 124, 129, 114, 118, 121, 134, 127, 135, 135, 148, 121, 117, 128, 130, 133, 126, 120, 122, 92, 112, 122, 134, 123, 130, 121, 121, 116, 114, 128, 122, 109, 125, 122, 138, 113, 132, 127, 124, 145, 133, 132, 141, 143, 131, 120, 134, 126, 106, 129, 124, 123, 145, 110, 141, 123, 99, 116, 139, 141, 135, 114, 128, 93, 136, 118, 112, 142, 138, 126, 101, 112, 132, 132, 132, 124, 137, 154, 137, 130, 129, 124, 133, 123, 122, 110, 108, 130, 120, 111, 129, 135, 128, 125, 124, 124, 121, 125, 134, 137, 116, 141, 149, 155, 119, 108, 121, 120, 123, 116, 127, 101, 124, 119, 136, 130, 129, 127, 130, 122, 122, 112, 132, 121, 122, 129, 97, 134, 113, 141, 138, 155, 127, 122, 150, 140, 141, 121, 122, 135, 143, 118, 129, 122, 126, 124, 126, 131, 120, 125, 132, 146, 110, 126, 118, 137, 131, 121, 139, 119, 119, 127, 115, 122, 130, 117, 117, 135, 120, 120, 126, 121, 117, 125, 102, 118, 123, 99, 121, 129, 129, 113, 144, 137, 113, 129, 129, 123, 87, 142, 117, 127, 124, 130, 110, 101, 137, 107, 119, 127, 127, 121, 138, 123, 108, 124, 135, 128, 120, 121, 120, 132, 140, 131, 123, 122, 119, 127, 121, 114, 116, 113, 137, 124, 119, 127, 125, 136, 128, 117, 121, 131, 118, 122, 127, 165, 142, 126, 106, 107, 128, 134, 116, 137, 139, 124, 136, 141, 124, 110, 116, 112, 132, 125, 119, 134, 137, 116, 137, 134, 126, 120, 140, 108, 134, 111, 127, 131, 139, 111, 124, 106, 115, 140, 138, 125, 133, 122, 124, 129, 104, 116, 106, 130, 129, 117, 150, 144, 123, 115, 154, 128, 137, 136, 139, 127, 124, 135, 131, 148, 129, 138, 106, 116, 130, 113, 124, 108, 111, 131, 122, 119, 126, 149, 124, 129, 142, 120, 131, 127, 130, 128, 121, 114, 131, 107, 123, 131, 130, 126, 116, 131, 131, 136, 101, 153, 132, 124, 127, 117, 106, 120, 129, 146, 123, 128, 132, 110, 144, 131, 107, 107, 114, 123, 128, 122, 138, 117, 115, 137, 121, 120, 121, 124, 113, 105, 133, 137, 122, 115, 109, 140, 107, 127, 121, 123, 128, 122, 110, 114, 119, 138, 123, 139, 113, 140, 153, 133, 122, 130, 134, 126, 135, 136, 117, 115, 129, 113, 140, 136, 121, 130, 147, 125, 129, 134, 130, 124, 134, 120, 137, 129, 134, 115, 100, 128, 142, 120, 128, 123, 128, 114, 115, 106, 112, 130, 118, 116, 134, 128, 124, 119, 119, 108, 135, 146, 137, 154, 136, 139, 106, 99, 107, 121, 133, 117, 126, 126, 138, 135, 126, 125, 146, 113, 118, 118, 141, 120, 125, 122, 130, 150, 126, 119, 117, 130, 126, 130, 122, 125, 153, 110, 108, 124, 141, 118, 135, 121, 119, 115, 123, 116, 108, 121, 107, 124, 126, 125, 138, 119, 127, 137, 109, 129, 118, 113, 117, 136, 125, 133, 107, 130, 127, 124, 146, 105, 118, 116, 123, 108, 128, 155, 111, 119, 111, 129, 122, 126, 148, 122, 114, 109, 151, 110, 116, 118, 125, 121, 123, 117, 130, 118, 131, 130, 133, 130, 113, 127, 124, 135, 120, 140, 115, 114, 116, 122, 122, 119, 124, 126, 121, 139, 128, 128, 121, 122, 124, 124, 118, 113, 132, 114, 122, 137, 122, 121, 126, 155, 131, 117, 137, 139, 137, 120, 127, 124, 127, 130, 120, 131, 127, 142, 136, 128, 147, 128, 126, 124, 112, 127, 111, 125, 142, 131, 135, 133, 130, 143, 110, 138, 123, 126, 127, 118, 110, 122, 130, 117, 137, 133, 142, 124, 119, 132, 137, 126, 140, 122, 133, 125, 107, 122, 119, 132, 126, 144, 109, 127, 115, 130, 111, 129, 116, 131, 125, 131, 121, 114, 114, 126, 135, 121, 126, 130, 132, 93, 124, 118, 118, 123, 127, 119, 128, 125, 123, 140, 134, 136, 129, 113, 135, 133, 123, 130, 124, 121, 126, 124, 125, 138, 98, 119, 129, 113, 145, 133, 126, 113, 118, 131, 133, 117, 123, 138, 130, 123, 137, 113, 116, 103, 133, 130, 137, 131, 122, 125, 107, 137, 106, 115, 97, 121, 115, 125, 129, 140, 129, 142, 152, 119, 130, 164, 121, 102, 116, 146, 121, 134, 134, 142, 106, 118, 133, 122, 117, 129, 123, 111, 126, 127, 137, 134, 132, 120, 138, 120, 124, 127, 134, 157, 148, 128, 126, 131, 118, 112, 120, 131, 101, 145, 120, 125, 117, 131, 121, 125, 142, 126, 123, 119, 136, 130, 132, 134, 125, 102, 147, 133, 136, 128, 141, 130, 129, 147, 121, 111, 151, 129, 139, 125, 131, 121, 129, 132, 129, 117, 129, 137, 115, 135, 131, 122, 126, 137, 130, 124, 132, 130, 111, 122, 116, 111, 116, 120, 125, 130, 120, 131, 127, 123, 135, 134, 134, 127, 133, 113, 129, 129, 112, 136, 125, 124, 133, 112, 111, 125, 143, 128, 125, 130, 136, 122, 119, 138, 122, 146, 126, 136, 130, 117, 115, 140, 133, 140, 131, 123, 131, 117, 136, 140, 114, 122, 125, 124, 124, 120, 122, 140, 119, 111, 131, 116, 147, 117, 121, 117, 136, 151, 122, 104, 123, 135, 119, 112, 136, 119, 127, 130, 130, 136, 103, 121, 111, 141, 130, 123, 131, 114, 133, 116, 115, 136, 114, 111, 134, 120, 113, 126, 125, 129, 132, 134, 115, 141, 111, 115, 118, 132, 122, 139, 105, 111, 136, 130, 119, 118, 116, 137, 121, 124, 138, 122, 111, 137, 114, 118, 138, 131, 134, 121, 134, 114, 109, 123, 122, 136, 132, 112, 113, 128, 106, 133, 138, 134, 119, 131, 131, 129, 130, 131, 135, 140, 134, 125, 140, 132, 115, 138, 113, 139, 126, 136, 144, 116, 115, 118, 118, 128, 136, 135, 137, 129, 128, 117, 129, 114, 117, 129, 122, 109, 114, 105, 124, 133, 135, 125, 133, 114, 137, 119, 113, 147, 123, 124, 104, 126, 120, 140, 118, 113, 125, 113, 124, 130, 112, 132, 117, 121, 119, 146, 122, 127, 122, 126, 104, 107, 117, 123, 138, 133, 120, 131, 129, 132, 110, 120, 146, 131, 118, 127, 114, 125, 128, 133, 110, 129, 122, 124, 137, 140, 128, 107, 121, 138, 119, 144, 105, 124, 129, 132, 133, 129, 123, 121, 149, 108, 130, 120, 110, 136, 132, 127, 119, 112, 117, 130, 135, 121, 122, 117, 121, 119, 118, 120, 145, 107, 127, 123, 101, 126, 114, 138, 135, 122, 111, 137, 99, 131, 129, 126, 121, 114, 134, 126, 124, 134, 133, 120, 119, 114, 114, 124, 118, 124, 135, 137, 118, 143, 128, 120, 105, 121, 113, 132, 130, 126, 137, 123, 134, 110, 117, 145, 121, 119, 143, 112, 119, 127, 126, 121, 123, 124, 129, 110, 123, 127, 123, 123, 133, 112, 123, 131, 143, 114, 138, 125, 124, 123, 128, 116, 130, 121, 131, 136, 113, 128, 107, 123, 109, 125, 142, 126, 131, 140, 124, 129, 114, 123, 141, 115, 143, 141, 122, 133, 141, 138, 128, 115, 133, 140, 123, 120, 132, 119, 123, 122, 132, 117, 116, 134, 121, 122, 113, 125, 145, 122, 125, 119, 147, 112, 122, 130, 134, 114, 119, 142, 138, 128, 122, 117, 126, 128, 106, 114, 122, 142, 119, 136, 114, 117, 129, 131, 104, 125, 119, 116, 116, 137, 104, 129, 134, 118, 130, 126, 140, 108, 119, 129, 123, 119, 127, 115, 115, 126, 124, 134, 130, 139, 120, 130, 129, 123, 150, 125, 139, 121, 163, 119, 133, 111, 135, 126, 121, 124, 126, 122, 127, 132, 130, 119, 128, 124, 110, 126, 113, 137, 128, 137, 127, 133, 117, 147, 129, 121, 131, 121, 136, 135, 113, 122, 107, 125, 114, 112, 116, 127, 134, 128, 132, 117, 132, 113, 135, 116, 118, 111, 111, 111, 129, 120, 128, 136, 126, 139, 116, 113, 133, 125, 136, 136, 126, 114, 137, 120, 130, 102, 134, 125, 121, 116, 150, 118, 113, 128, 141, 133, 113, 139, 126, 130, 110, 104, 133, 133, 98, 139, 129, 122, 126, 126, 116, 140, 146, 125, 106, 127, 137, 122, 154, 127, 110, 116, 113, 148, 136, 126, 119, 133, 150, 129, 122, 132, 148, 126, 110, 125, 108, 133, 115, 148, 109, 102, 125, 128, 111, 130, 111, 114, 121, 115, 138, 109, 125, 114, 142, 122, 121, 146, 116, 125, 130, 131, 99, 129, 113, 109, 146, 117, 113, 134, 127, 109, 125, 138, 124, 123, 139, 143, 130, 119, 143, 110, 127, 136, 97, 134, 127, 125, 106, 112, 117, 126, 126, 131, 122, 131, 124, 133, 115, 127, 114, 119, 125, 128, 138, 121, 125, 111, 135, 124, 125, 129, 123, 115, 121, 118, 134, 147, 114, 106, 122, 113, 133, 112, 117, 127, 116, 135, 107, 125, 105, 120, 120, 109, 134, 119, 118, 131, 134, 108, 114, 131, 128, 125, 142, 141, 154, 118, 138, 130, 119, 129, 119, 141, 132, 115, 114, 128, 120, 109, 118, 123, 118, 134, 131, 127, 132, 132, 133, 146, 135, 125, 128, 120, 127, 124, 128, 141, 136, 133, 128, 151, 142, 117, 128, 131, 133, 125, 122, 127, 121, 129, 112, 139, 139, 162, 107, 126, 135, 115, 119, 134, 118, 126, 140, 111, 127, 124, 111, 124, 141, 104, 136, 112, 126, 119, 141, 146, 129, 140, 126, 133, 115, 136, 129, 128, 112, 125, 126, 120, 125, 109, 135, 129, 110, 126, 118, 124, 118, 128, 110, 130, 140, 155, 134, 117, 133, 119, 137, 144, 136, 139, 131, 102, 126, 125, 141, 125, 137, 127, 125, 128, 123, 122, 126, 139, 130, 126, 132, 125, 136, 117, 115, 102, 132, 128, 123, 120, 140, 126, 116, 118, 115, 132, 133, 137, 132, 128, 126, 141, 126, 109, 130, 123, 120, 126, 126, 129, 129, 120, 140, 141, 121, 127, 114, 114, 126, 128, 135, 151, 127, 143, 131, 127, 130, 119, 122, 139, 108, 109, 114, 108, 117, 129, 125, 120, 134, 133, 117, 117, 126, 141, 105, 121, 119, 126, 102, 117, 127, 117, 122, 113, 122, 125, 151, 117, 132, 131, 137, 121, 132, 142, 114, 111, 142, 112, 111, 110, 123, 130, 128, 135, 108, 126, 122, 136, 106, 107, 125, 126, 126, 129, 125, 132, 122, 138, 114, 132, 116, 119, 127, 107, 125, 128, 123, 122, 127, 119, 120, 148, 115, 122, 128, 113, 110, 136, 130, 135, 129, 136, 138, 134, 135, 127, 116, 127, 118, 127, 127, 91, 123, 141, 126, 125, 128, 131, 131, 133, 112, 136, 128, 128, 135, 125, 123, 128, 106, 153, 129, 117, 116, 115, 117, 123, 115, 124, 118, 138, 137, 130, 123, 118, 131, 132, 129, 134, 121, 126, 110, 131, 115, 134, 143, 120, 134, 113, 118, 116, 135, 112, 132, 139, 122, 143, 125, 119, 123, 133, 111, 112, 140, 120, 117, 138, 141, 132, 133, 127, 121, 134, 128, 122, 108, 128, 114, 118, 114, 122, 132, 120, 121, 118, 134, 140, 128, 135, 127, 131, 106, 127, 127, 121, 126, 125, 117, 145, 127, 121, 113, 141, 146, 99, 132, 122, 118, 105, 122, 132, 117, 125, 130, 119, 133, 123, 143, 113, 127, 127, 149, 129, 109, 118, 121, 138, 137, 126, 103, 126, 121, 111, 134, 138, 121, 124, 128, 128, 141, 117, 131, 127, 121, 112, 103, 118, 118, 113, 121, 150, 118, 114, 140, 126, 116, 128, 113, 130, 136, 132, 125, 117, 107, 126, 118, 128, 127, 125, 135, 124, 132, 125, 104, 123, 133, 135, 119, 126, 144, 133, 124, 132, 144, 132, 138, 133, 122, 113, 124, 112, 129, 119, 124, 122, 105, 120, 112, 139, 134, 87, 128, 132, 134, 133, 161, 130, 119, 140, 138, 143, 115, 121, 127, 133, 127, 127, 115, 124, 110, 121, 120, 128, 142, 122, 123, 122, 120, 130, 127, 112, 132, 139, 116, 131, 136, 123, 141, 136, 159, 132, 111, 132, 135, 129, 138, 150, 131, 125, 129, 105, 132, 121, 107, 120, 112, 138, 129, 133, 109, 117, 161, 136, 120, 129, 115, 125, 114, 137, 136, 126, 128, 128, 136, 112, 128, 127, 137, 140, 125, 135, 127, 128, 121, 126, 148, 124, 119, 133, 130, 132, 130, 104, 139, 124, 129, 116, 124, 115, 114, 113, 127, 158, 123, 140, 140, 118, 138, 141, 120, 117, 132, 133, 120, 135, 165, 124, 131, 116, 118, 116, 115, 107, 126, 131, 140, 126, 128, 123, 132, 118, 125, 128, 116, 130, 116, 143, 114, 127, 120, 135, 136, 127, 129, 118, 141, 126, 131, 112, 135, 137, 125, 125, 134, 128, 105, 132, 113, 128, 125, 138, 114, 122, 150, 129, 132, 127, 128, 132, 117, 144, 127, 129, 133, 140, 112, 104, 112, 131, 136, 135, 125, 120, 127, 136, 138, 138, 135, 116, 118, 115, 131, 140, 117, 127, 120, 127, 137, 126, 105, 130, 127, 133, 127, 130, 96, 128, 120, 118, 142, 120, 105, 129, 127, 112, 144, 127, 131, 123, 120, 121, 116, 119, 129, 133, 123, 143, 120, 119, 110, 112, 110, 132, 119, 130, 139, 130, 145, 134, 127, 127, 136, 141, 119, 125, 129, 125, 114, 134, 121, 130, 125, 133, 132, 109, 138, 136, 125, 120, 135, 118, 151, 122, 125, 115, 116, 120, 142, 121, 129, 122, 138, 144, 118, 126, 141, 126, 131, 116, 129, 132, 111, 136, 109, 121, 133, 105, 135, 119, 140, 111, 111, 139, 134, 117, 131, 137, 122, 143, 104, 123, 108, 114, 135, 124, 115, 126, 130, 125, 114, 128, 141, 114, 118, 128, 114, 131, 131, 127, 117, 132, 122, 128, 113, 114, 135, 135, 121, 139, 132, 147, 118, 120, 125, 113, 119, 139, 139, 131, 139, 144, 115, 114, 118, 133, 130, 129, 114, 118, 127, 118, 123, 129, 119, 129, 130, 139, 120, 136, 130, 121, 123, 142, 135, 127, 119, 114, 126, 112, 126, 126, 139, 120, 123, 121, 116, 122, 129, 115, 120, 121, 110, 118, 115, 107, 121, 122, 117, 131, 125, 141, 134, 141, 120, 136, 117, 120, 132, 122, 116, 143, 122, 104, 122, 127, 118, 139, 125, 135, 137, 138, 118, 114, 105, 144, 115, 120, 148, 116, 138, 132, 119, 119, 112, 132, 127, 149, 128, 138, 138, 125, 114, 121, 128, 130, 125, 106, 118, 125, 127, 131, 131, 122, 106, 112, 114, 122, 135, 136, 122, 133, 123, 106, 132, 135, 114, 146, 118, 127, 125, 111, 140, 140, 113, 101, 126, 133, 126, 114, 108, 162, 136, 123, 134, 140, 133, 121, 122, 120, 110, 111, 122, 126, 126, 124, 131, 122, 114, 116, 120, 123, 115, 114, 129, 112, 126, 128, 110, 118, 147, 122, 142, 116, 108, 119, 132, 132, 124, 99, 135, 106, 118, 124, 120, 117, 109, 130, 138, 117, 137, 132, 112, 123, 134, 111, 114, 140, 133, 119, 108, 113, 114, 121, 122, 117, 123, 118, 143, 133, 113, 137, 142, 128, 109, 107, 111, 115, 111, 123, 128, 119, 122, 115, 136, 138, 120, 133, 125, 104, 134, 122, 134, 135, 125, 122, 112, 140, 107, 127, 134, 119, 118, 129, 131, 106, 141, 110, 115, 144, 124, 122, 141, 131, 114, 135, 110, 127, 130, 115, 118, 150, 125, 119, 130, 117, 129, 145, 120, 126, 122, 110, 108, 121, 113, 119, 134, 110, 131, 116, 133, 135, 135, 136, 129, 114, 102, 128, 116, 134, 119, 124, 115, 126, 125, 119, 118, 118, 124, 130, 114, 130, 105, 134, 109, 114, 128, 128, 118, 128, 115, 115, 108, 113, 136, 133, 138, 121, 120, 136, 123, 125, 129, 125, 111, 109, 123, 112, 127, 110, 113, 126, 130, 145, 123, 132, 141, 122, 124, 134, 135, 109, 135, 125, 132, 132, 107, 120, 154, 128, 117, 131, 120, 128, 126, 131, 129, 125, 111, 106, 118, 125, 132, 138, 140, 115, 136, 131, 108, 142, 114, 107, 125, 130, 140, 133, 124, 106, 128, 134, 114, 120, 146, 113, 131, 131, 125, 121, 109, 112, 112, 129, 110, 100, 131, 109, 116, 136, 125, 134, 125, 128, 117, 126, 129, 123, 123, 121, 128, 124, 122, 112, 134, 122, 115, 112, 128, 129, 131, 127, 125, 124, 137, 124, 129, 114, 125, 125, 138, 144, 123, 132, 113, 130, 122, 127, 129, 116, 122, 120, 125, 117, 112, 134, 126, 133, 142, 125, 150, 117, 128, 115, 131, 143, 121, 128, 128, 127, 118, 118, 113, 149, 122, 136, 126, 136, 121, 120, 135, 124, 134, 106, 118, 139, 114, 137, 125, 124, 117, 130, 124, 129, 128, 132, 129, 127, 123, 135, 116, 124, 127, 134, 108, 115, 127, 127, 133, 110, 121, 141, 118, 136, 117, 116, 120, 128, 127, 151, 117, 113, 138, 130, 144, 134, 123, 123, 133, 113, 115, 126, 143, 99, 121, 126, 115, 138, 141, 120, 118, 133, 119, 104, 125, 117, 116, 127, 141, 114, 124, 137, 117, 133, 110, 108, 111, 123, 115, 116, 143, 135, 135, 124, 139, 131, 105, 125, 121, 114, 128, 118, 133, 127, 120, 140, 121, 122, 134, 118, 133, 128, 125, 126, 121, 133, 109, 114, 128, 120, 134, 111, 134, 123, 133, 126, 138, 123, 126, 132, 126, 138, 126, 113, 135, 126, 118, 152, 120, 126, 127, 119, 116, 115, 145, 119, 116, 122, 130, 128, 132, 134, 117, 129, 129, 113, 124, 142, 127, 115, 134, 131, 135, 112, 128, 129, 118, 135, 107, 135, 121, 141, 127, 135, 120, 109, 113, 116, 122, 126, 138, 143, 125, 108, 125, 132, 110, 123, 135, 108, 109, 118, 126, 111, 136, 129, 112, 114, 130, 159, 138, 133, 117, 138, 126, 133, 130, 134, 125, 141, 133, 131, 117, 131, 125, 117, 131, 140, 130, 123, 122, 130, 127, 137, 110, 127, 126, 122, 137, 115, 120, 143, 134, 125, 135, 124, 125, 112, 144, 125, 131, 153, 140, 131, 118, 118, 129, 138, 121, 119, 132, 117, 135, 113, 119, 117, 122, 125, 126, 116, 132, 112, 135, 128, 130, 114, 123, 133, 121, 127, 124, 120, 109, 137, 136, 133, 121, 131, 143, 133, 146, 131, 127, 124, 127, 105, 115, 114, 149, 116, 131, 126, 148, 134, 137, 119, 123, 132, 99, 131, 139, 121, 118, 136, 115, 131, 141, 137, 119, 132, 113, 129, 124, 107, 131, 128, 118, 130, 143, 119, 132, 122, 131, 127, 127, 125, 124, 119, 136, 144, 129, 116, 109, 109, 136, 112, 149, 116, 136, 116, 136, 142, 100, 130, 115, 131, 117, 122, 106, 131, 127, 128, 127, 137, 127, 128, 112, 143, 134, 143, 112, 128, 128, 130, 126, 123, 112, 110, 132, 127, 118, 108, 130, 115, 118, 115, 108, 131, 133, 127, 125, 126, 142, 117, 119, 127, 140, 139, 124, 106, 117, 128, 109, 119, 114, 133, 129, 120, 131, 130, 131, 117, 120, 128, 113, 131, 108, 118, 126, 107, 136, 128, 122, 127, 140, 131, 119, 131, 121, 98, 114, 125, 112, 124, 138, 128, 107, 134, 129, 132, 113, 123, 129, 134, 125, 127, 120, 113, 110, 124, 117, 141, 122, 104, 128, 123, 123, 115, 138, 126, 132, 120, 112, 148, 119, 122, 120, 108, 121, 125, 129, 110, 113, 139, 145, 125, 125, 118, 129, 137, 136, 123, 127, 132, 124, 139, 123, 124, 110, 126, 123, 107, 112, 128, 123, 120, 149, 109, 129, 145, 125, 119, 112, 116, 130, 122, 130, 131, 129, 136, 149, 126, 127, 114, 112, 135, 136, 141, 114, 112, 130, 133, 121, 110, 142, 121, 124, 146, 128, 139, 131, 119, 131, 130, 132, 133, 105, 118, 130, 121, 100, 118, 130, 150, 124, 125, 123, 146, 152, 104, 133, 114, 114, 103, 121, 126, 136, 119, 138, 112, 120, 141, 109, 116, 121, 128, 119, 133, 125, 110, 126, 114, 119, 117, 119, 120, 108, 138, 125, 121, 139, 112, 143, 129, 131, 113, 121, 131, 128, 122, 135, 130, 118, 154, 118, 126, 131, 123, 120, 111, 121, 114, 134, 131, 131, 117, 111, 127, 141, 110, 139, 124, 122, 142, 135, 144, 120, 123, 139, 133, 126, 121, 120, 112, 141, 132, 128, 121, 131, 120, 140, 125, 128, 121, 155, 122, 126, 145, 120, 150, 133, 128, 121, 139, 124, 130, 127, 115, 137, 138, 122, 124, 107, 144, 131, 127, 155, 138, 138, 116, 149, 129, 138, 115, 131, 128, 124, 135, 114, 122, 119, 112, 130, 117, 134, 128, 115, 116, 114, 127, 138, 108, 123, 108, 130, 124, 121, 115, 124, 113, 128, 114, 116, 119, 100, 107, 130, 129, 122, 116, 118, 121, 106, 113, 124, 119, 132, 120, 127, 112, 138, 138, 127, 129, 128, 131, 125, 135, 130, 114, 131, 132, 118, 122, 104, 132, 114, 129, 129, 138, 106, 119, 135, 117, 117, 111, 126, 109, 118, 122, 113, 126, 144, 126, 131, 137, 136, 134, 125, 146, 123, 108, 111, 137, 119, 126, 120, 101, 130, 116, 112, 127, 117, 114, 131, 129, 139, 119, 144, 140, 143, 136, 136, 114, 119, 132, 122, 120, 119, 134, 103, 132, 122, 137, 126, 153, 124, 129, 123, 123, 111, 118, 133, 124, 138, 124, 145, 126, 114, 102, 138, 137, 127, 117, 131, 129, 121, 120, 137, 129, 104, 119, 110, 115, 124, 130, 116, 138, 126, 112, 135, 140, 124, 138, 122, 122, 132, 132, 125, 97, 140, 124, 110, 120, 113, 141, 103, 119, 146, 127, 110, 124, 133, 110, 110, 138, 133, 142, 130, 101, 131, 138, 127, 130, 132, 136, 135, 120, 115, 130, 118, 127, 105, 126, 131, 131, 116, 114, 131, 154, 114, 112, 128, 127, 129, 125, 117, 127, 124, 125, 129, 131, 111, 134, 126, 113, 109, 130, 138, 109, 118, 118, 116, 112, 104, 137, 114, 128, 123, 123, 130, 128, 129, 113, 111, 115, 127, 144, 116, 132, 129, 114, 128, 113, 141, 120, 131, 141, 127, 145, 116, 107, 127, 136, 127, 130, 113, 122, 116, 134, 129, 114, 121, 134, 110, 134, 145, 134, 128, 149, 123, 132, 129, 113, 99, 122, 104, 152, 136, 118, 125, 125, 129, 116, 146, 140, 127, 116, 151, 120, 138, 112, 118, 141, 132, 126, 112, 128, 121, 120, 147, 128, 125, 127, 133, 139, 118, 145, 117, 134, 133, 116, 131, 131, 105, 116, 115, 129, 125, 124, 131, 125, 117, 127, 142, 116, 117, 111, 105, 136, 100, 131, 140, 125, 114, 142, 127, 120, 127, 108, 132, 127, 116, 128, 134, 114, 131, 142, 149, 136, 114, 120, 138, 126, 114, 132, 151, 113, 124, 118, 136, 130, 121, 123, 120, 129, 129, 138, 131, 112, 117, 126, 124, 116, 139, 130, 130, 136, 108, 108, 104, 129, 133, 134, 126, 112, 125, 121, 109, 118, 106, 122, 112, 111, 120, 124, 127, 134, 128, 125, 123, 120, 140, 129, 121, 130, 133, 119, 156, 123, 114, 108, 135, 133, 129, 114, 125, 124, 133, 121, 139, 128, 131, 116, 126, 123, 129, 126, 124, 128, 121, 125, 121, 119, 144, 124, 133, 113, 110, 110, 132, 122, 163, 117, 125, 115, 105, 120, 120, 108, 132, 124, 128, 108, 115, 126, 118, 126, 129, 130, 123, 100, 125, 142, 123, 110, 116, 122, 135, 130, 130, 142, 133, 108, 134, 124, 124, 137, 105, 109, 125, 130, 143, 131, 128, 147, 132, 120, 129, 115, 133, 110, 149, 134, 131, 132, 121, 123, 127, 120, 131, 123, 114, 138, 122, 114, 108, 134, 132, 124, 156, 135, 120, 134, 124, 116, 113, 127, 136, 129, 123, 116, 113, 155, 132, 122, 122, 119, 136, 120, 128, 132, 132, 130, 143, 125, 124, 117, 126, 127, 120, 133, 142, 126, 121, 136, 117, 127, 112, 130, 136, 147, 126, 151, 127, 151, 115, 123, 134, 130, 127, 120, 141, 119, 133, 124, 107, 106, 123, 132, 112, 120, 131, 129, 110, 135, 113, 140, 127, 139, 136, 121, 117, 131, 118, 113, 128, 134, 131, 113, 129, 131, 118, 133, 99, 128, 125, 117, 130, 123, 140, 122, 129, 131, 146, 130, 145, 128, 116, 132, 121, 122, 151, 117, 128, 130, 115, 133, 131, 128, 125, 112, 112, 111, 131, 121, 125, 143, 140, 109, 130, 137, 119, 133, 128, 122, 134, 124, 132, 132, 140, 129, 120, 138, 147, 122, 144, 136, 99, 132, 132, 126, 125, 143, 120, 111, 118, 125, 135, 107, 126, 122, 116, 117, 125, 115, 123, 126, 119, 109, 129, 123, 116, 133, 120, 128, 135, 130, 128, 145, 133, 143, 121, 117, 126, 129, 132, 112, 122, 138, 117, 112, 118, 112, 131, 129, 130, 105, 117, 136, 130, 126, 134, 128, 127, 130, 119, 115, 119, 133, 136, 112, 149, 125, 119, 128, 135, 117, 116, 126, 116, 104, 132, 115, 143, 129, 125, 123, 115, 124, 148, 129, 133, 114, 143, 125, 109, 118, 119, 130, 130, 129, 129, 117, 135, 123, 140, 127, 133, 107, 130, 116, 147, 121, 131, 110, 138, 118, 124, 120, 130, 138, 125, 144, 129, 122, 132, 131, 130, 127, 139, 114, 131, 112, 131, 125, 121, 127, 125, 133, 124, 115, 116, 139, 137, 128, 123, 145, 133, 118, 130, 139, 120, 125, 128, 130, 144, 114, 126, 116, 126, 117, 135, 129, 127, 127, 131, 134, 117, 120, 111, 130, 113, 131, 130, 110, 135, 132, 142, 102, 139, 117, 110, 111, 117, 116, 126, 121, 126, 110, 114, 120, 129, 135, 129, 132, 128, 124, 113, 121, 142, 135, 113, 113, 144, 129, 127, 125, 130, 116, 116, 129, 134, 136, 140, 119, 121, 130, 133, 115, 145, 116, 114, 112, 130, 139, 131, 114, 128, 117, 151, 149, 115, 119, 112, 115, 130, 122, 114, 113, 131, 121, 131, 125, 128, 139, 124, 152, 146, 137, 110, 127, 119, 122, 134, 120, 128, 136, 112, 131, 130, 129, 134, 132, 138, 108, 117, 132, 122, 124, 127, 118, 125, 132, 132, 122, 118, 96, 120, 123, 109, 125, 136, 133, 130, 118, 121, 136, 119, 104, 117, 109, 123, 111, 123, 119, 122, 111, 132, 125, 132, 116, 148, 144, 146, 127, 124, 129, 112, 111, 117, 149, 113, 128, 135, 114, 115, 122, 126, 118, 141, 131, 124, 122, 121, 147, 136, 125, 118, 104, 119, 128, 120, 116, 114, 124, 137, 132, 138, 108, 132, 139, 159, 120, 119, 107, 126, 109, 144, 129, 118, 113, 125, 124, 153, 122, 127, 113, 153, 138, 139, 142, 159, 115, 121, 125, 137, 146, 117, 119, 142, 138, 135, 118, 137, 128, 127, 148, 108, 125, 131, 130, 137, 139, 123, 114, 132, 128, 138, 112, 134, 122, 140, 139, 125, 137, 118, 123, 146, 132, 109, 133, 124, 123, 130, 132, 144, 126, 135, 118, 120, 131, 126, 141, 129, 115, 104, 115, 130, 133, 128, 120, 132, 128, 111, 114, 148, 112, 123, 127, 143, 122, 124, 129, 136, 114, 123, 122, 106, 126, 129, 129, 141, 143, 93, 120, 129, 125, 128, 130, 127, 127, 122, 119, 124, 116, 148, 127, 113, 128, 124, 121, 128, 133, 121, 127, 119, 125, 119, 128, 142, 134, 120, 115, 111, 142, 136, 113, 143, 130, 143, 126, 123, 114, 140, 118, 130, 120, 124, 117, 142, 152, 120, 117, 117, 114, 138, 112, 124, 144, 116, 96, 128, 119, 115, 122, 112, 108, 103, 121, 142, 124, 117, 133, 122, 120, 116, 130, 121, 128, 107, 142, 127, 130, 117, 119, 119, 118, 127, 127, 118, 114, 119, 114, 139, 123, 139, 137, 135, 116, 140, 124, 134, 145, 145, 127, 124, 105, 142, 128, 121, 126, 158, 143, 121, 111, 128, 127, 117, 116, 140, 119, 115, 120, 136, 156, 133, 129, 118, 126, 138, 120, 128, 128, 106, 128, 133, 122, 129, 122, 142, 120, 119, 128, 125, 121, 125, 121, 137, 116, 131, 130, 118, 122, 116, 131, 115, 116, 135, 112, 107, 121, 120, 117, 137, 122, 118, 151, 118, 125, 116, 121, 131, 126, 130, 133, 129, 115, 128, 120, 113, 121, 110, 111, 111, 106, 121, 126, 133, 137, 128, 129, 124, 135, 147, 103, 126, 120, 132, 133, 125, 132, 119, 113, 149, 122, 139, 143, 127, 119, 103, 126, 122, 132, 120, 126, 135, 141, 132, 124, 127, 131, 105, 123, 118, 123, 107, 109, 113, 128, 137, 128, 110, 118, 113, 127, 131, 130, 129, 127, 106, 131, 125, 125, 128, 124, 117, 120, 134, 133, 114, 142, 157, 137, 131, 125, 118, 123, 109, 139, 109, 130, 140, 123, 116, 100, 134, 138, 114, 140, 146, 120, 137, 120, 127, 92, 125, 129, 116, 117, 130, 100, 143, 116, 116, 110, 119, 134, 117, 117, 121, 121, 129, 122, 117, 135, 144, 117, 133, 120, 134, 115, 132, 132, 133, 117, 142, 142, 138, 117, 128, 108, 120, 116, 128, 136, 110, 114, 118, 138, 127, 108, 122, 142, 110, 130, 118, 111, 124, 121, 135, 103, 116, 123, 132, 135, 131, 128, 122, 137, 111, 110, 146, 147, 121, 146, 150, 121, 122, 117, 122, 119, 127, 125, 137, 116, 124, 122, 114, 136, 115, 128, 135, 124, 132, 114, 132, 105, 127, 121, 117, 128, 119, 118, 141, 122, 118, 143, 138, 132, 163, 108, 110, 133, 126, 128, 122, 118, 123, 133, 133, 138, 138, 126, 108, 127, 150, 123, 130, 134, 140, 123, 134, 117, 120, 131, 133, 142, 131, 129, 120, 137, 136, 138, 124, 112, 120, 110, 123, 123, 123, 112, 119, 103, 127, 107, 104, 134, 124, 133, 121, 124, 134, 123, 128, 124, 100, 114, 157, 123, 141, 106, 124, 113, 131, 118, 108, 109, 118, 114, 105, 115, 123, 123, 119, 128, 123, 111, 113, 130, 138, 127, 123, 116, 124, 137, 127, 120, 125, 121, 127, 138, 126, 133, 129, 127, 122, 132, 125, 129, 134, 132, 120, 131, 155, 122, 116, 126, 129, 112, 143, 134, 118, 118, 98, 135, 119, 141, 127, 123, 112, 125, 103, 135, 121, 114, 129, 138, 119, 125, 117, 107, 147, 124, 120, 104, 116, 113, 126, 124, 113, 122, 116, 120, 124, 119, 130, 144, 138, 131, 140, 119, 121, 110, 134, 116, 120, 126, 128, 113, 146, 133, 122, 137, 108, 136, 143, 156, 135, 127, 136, 131, 129, 122, 136, 134, 125, 141, 126, 119, 137, 134, 135, 139, 117, 112, 115, 127, 112, 100, 134, 126, 107, 91, 135, 138, 102, 110, 117, 133, 128, 116, 109, 115, 108, 110, 123, 121, 147, 127, 121, 122, 126, 133, 122, 111, 126, 122, 124, 125, 115, 119, 126, 106, 128, 131, 134, 113, 126, 132, 132, 127, 117, 129, 129, 104, 149, 125, 115, 114, 105, 119, 140, 138, 133, 123, 124, 130, 121, 129, 133, 146, 110, 106, 126, 111, 120, 124, 134, 115, 133, 150, 116, 123, 122, 97, 141, 129, 108, 109, 125, 117, 101, 120, 131, 128, 110, 117, 124, 130, 123, 112, 139, 119, 118, 123, 143, 129, 104, 129, 124, 122, 123, 132, 140, 129, 122, 136, 132, 127, 123, 124, 155, 147, 127, 119, 134, 135, 134, 149, 125, 127, 124, 142, 144, 127, 130, 155, 125, 102, 141, 134, 139, 120, 117, 141, 123, 118, 140, 123, 125, 115, 126, 126, 128, 116, 119, 127, 133, 109, 127, 133, 124, 122, 120, 109, 141, 136, 137, 119, 123, 107, 120, 124, 140, 121, 120, 130, 124, 109, 121, 130, 129, 122, 120, 122, 126, 134, 123, 127, 130, 127, 132, 124, 109, 116, 120, 109, 129, 100, 132, 123, 112, 132, 119, 113, 114, 111, 135, 140, 104, 128, 144, 134, 122, 134, 140, 138, 154, 125, 121, 131, 130, 126, 128, 131, 127, 114, 136, 126, 137, 128, 127, 137, 114, 135, 117, 139, 121, 127, 134, 144, 121, 107, 118, 129, 107, 112, 119, 138, 116, 120, 117, 120, 126, 122, 132, 125, 140, 121, 106, 134, 131, 134, 121, 119, 119, 141, 121, 138, 149, 123, 111, 131, 105, 132, 128, 131, 127, 118, 109, 129, 123, 127, 121, 121, 107, 128, 131, 123, 114, 135, 119, 116, 125, 124, 110, 107, 152, 151, 116, 136, 116, 125, 137, 113, 117, 129, 113, 126, 104, 129, 102, 128, 130, 128, 133, 115, 116, 146, 124, 125, 138, 148, 141, 105, 120, 141, 115, 121, 136, 140, 111, 128, 119, 126, 116, 123, 138, 118, 124, 139, 115, 148, 117, 117, 122, 118, 130, 131, 133, 122, 133, 134, 123, 136, 115, 134, 124, 133, 123, 124, 111, 145, 112, 134, 115, 112, 99, 112, 123, 118, 153, 130, 111, 141, 164, 142, 137, 120, 138, 118, 126, 129, 141, 130, 134, 118, 125, 122, 127, 125, 112, 131, 129, 123, 126, 133, 139, 118, 129, 121, 128, 118, 128, 137, 106, 110, 121, 125, 120, 148, 128, 137, 117, 118, 140, 139, 137, 135, 131, 123, 138, 132, 129, 131, 139, 135, 122, 110, 117, 126, 135, 128, 155, 143, 105, 119, 107, 118, 139, 132, 130, 136, 126, 116, 119, 121, 135, 113, 136, 113, 142, 123, 116, 139, 138, 125, 125, 120, 122, 140, 132, 118, 112, 131, 132, 131, 130, 132, 128, 123, 111, 110, 125, 123, 118, 126, 130, 123, 116, 115, 123, 115, 119, 126, 130, 129, 115, 122, 134, 115, 118, 124, 134, 121, 130, 146, 121, 136, 131, 119, 131, 121, 117, 134, 128, 129, 119, 133, 130, 128, 120, 125, 126, 125, 117, 114, 128, 135, 108, 144, 119, 119, 130, 135, 130, 133, 114, 123, 115, 129, 122, 131, 115, 113, 118, 117, 136, 139, 136, 132, 115, 117, 128, 119, 132, 130, 107, 113, 150, 123, 112, 125, 131, 128, 126, 107, 120, 128, 117, 124, 112, 106, 126, 117, 140, 140, 129, 140, 121, 143, 144, 121, 116, 117, 137, 129, 127, 129, 114, 124, 129, 134, 125, 136, 133, 120, 138, 114, 138, 117, 129, 120, 136, 125, 113, 142, 135, 120, 124, 117, 133, 125, 127, 125, 126, 131, 141, 115, 136, 127, 109, 126, 116, 112, 124, 134, 116, 123, 120, 131, 126, 133, 135, 116, 105, 129, 121, 128, 114, 130, 104, 115, 129, 125, 134, 134, 120, 114, 111, 91, 128, 114, 133, 108, 112, 123, 131, 135, 133, 130, 122, 129, 128, 112, 123, 133, 129, 116, 142, 129, 116, 131, 139, 121, 123, 133, 117, 138, 157, 126, 132, 111, 124, 122, 114, 133, 123, 119, 130, 133, 116, 131, 124, 120, 120, 131, 134, 115, 103, 122, 123, 127, 133, 119, 127, 127, 134, 123, 111, 120, 154, 128, 117, 124, 139, 122, 125, 133, 121, 137, 106, 137, 121, 117, 125, 127, 131, 125, 119, 114, 128, 130, 119, 125, 107, 128, 118, 138, 142, 130, 134, 124, 138, 124, 125, 105, 119, 120, 131, 119, 123, 129, 114, 124, 140, 110, 125, 130, 133, 125, 124, 126, 144, 135, 126, 114, 124, 116, 129, 130, 132, 131, 111, 128, 131, 113, 124, 123, 138, 115, 119, 120, 129, 123, 116, 116, 125, 128, 124, 128, 134, 110, 115, 125, 139, 115, 124, 104, 137, 121, 126, 121, 120, 105, 113, 130, 126, 126, 124, 136, 123, 139, 141, 126, 128, 134, 126, 106, 129, 117, 125, 133, 126, 133, 117, 101, 127, 128, 127, 123, 130, 131, 132, 138, 119, 111, 122, 127, 115, 127, 115, 127, 131, 145, 126, 111, 126, 120, 138, 127, 133, 118, 115, 123, 139, 102, 129, 117, 120, 107, 112, 154, 135, 129, 129, 133, 115, 134, 125, 122, 123, 135, 121, 103, 112, 121, 127, 125, 119, 144, 122, 125, 123, 142, 139, 126, 129, 133, 125, 136, 117, 135, 124, 125, 118, 136, 115, 123, 120, 138, 116, 125, 150, 112, 117, 119, 120, 112, 139, 136, 125, 137, 116, 137, 133, 112, 141, 129, 115, 126, 124, 123, 121, 126, 122, 114, 129, 112, 128, 137, 127, 150, 136, 137, 134, 120, 125, 125, 160, 123, 124, 129, 112, 115, 155, 133, 123, 124, 133, 128, 130, 118, 126, 120, 122, 126, 146, 120, 123, 129, 136, 105, 134, 129, 128, 110, 114, 127, 142, 122, 130, 113, 128, 118, 104, 123, 122, 116, 119, 121, 124, 123, 120, 120, 138, 127, 138, 142, 122, 149, 123, 113, 116, 117, 138, 116, 132, 132, 123, 108, 134, 143, 120, 136, 120, 129, 124, 126, 115, 111, 131, 122, 126, 112, 118, 125, 119, 121, 122, 138, 138, 129, 127, 131, 119, 119, 117, 112, 135, 120, 122, 114, 117, 119, 107, 123, 116, 131, 130, 120, 137, 122, 116, 115, 111, 103, 137, 119, 127, 128, 123, 129, 124, 123, 119, 124, 133, 107, 120, 116, 130, 128, 137, 101, 122, 105, 119, 133, 135, 124, 119, 119, 122, 117, 109, 129, 115, 121, 117, 119, 125, 111, 124, 135, 123, 139, 123, 131, 113, 124, 146, 118, 115, 112, 140, 114, 125, 116, 144, 126, 136, 124, 142, 120, 131, 139, 119, 108, 126, 123, 118, 129, 134, 147, 129, 131, 136, 113, 129, 119, 124, 127, 119, 122, 133, 132, 116, 130, 123, 113, 122, 135, 140, 128, 119, 123, 127, 116, 138, 127, 107, 119, 132, 122, 133, 128, 120, 117, 123, 111, 124, 128, 135, 130, 125, 133, 136, 132, 119, 126, 122, 118, 143, 114, 128, 124, 131, 123, 94, 126, 123, 128, 128, 140, 130, 110, 137, 138, 129, 114, 142, 120, 129, 123, 117, 118, 124, 117, 117, 103, 148, 127, 118, 103, 121, 128, 126, 141, 123, 134, 131, 119, 129, 120, 104, 106, 144, 121, 136, 126, 116, 119, 155, 130, 129, 136, 145, 133, 131, 123, 140, 125, 127, 119, 115, 140, 129, 107, 117, 138, 139, 108, 123, 141, 125, 125, 156, 121, 137, 112, 130, 126, 147, 124, 111, 131, 119, 137, 129, 138, 117, 134, 123, 154, 126, 115, 125, 142, 144, 117, 123, 135, 130, 135, 143, 118, 109, 159, 143, 129, 148, 115, 147, 137, 115, 117, 115, 129, 145, 110, 127, 111, 128, 110, 127, 115, 122, 133, 121, 133, 115, 115, 136, 119, 129, 126, 120, 135, 126, 111, 117, 129, 120, 127, 122, 127, 129, 112, 127, 123, 117, 128, 124, 106, 116, 149, 121, 125, 125, 126, 130, 123, 111, 125, 132, 111, 127, 123, 116, 129, 127, 118, 118, 133, 115, 105, 141, 118, 128, 115, 121, 137, 155, 141, 151, 101, 138, 116, 126, 134, 120, 121, 118, 123, 129, 124, 136, 144, 121, 146, 128, 124, 136, 120, 124, 140, 120, 137, 114, 118, 130, 116, 121, 127, 122, 125, 130, 124, 134, 134, 134, 114, 116, 116, 122, 134, 118, 113, 121, 118, 125, 125, 135, 135, 133, 132, 121, 137, 109, 125, 126, 123, 140, 104, 125, 133, 136, 129, 125, 150, 114, 118, 123, 138, 134, 135, 119, 120, 118, 135, 147, 141, 128, 120, 127, 130, 120, 131, 121, 124, 127, 129, 124, 113, 133, 125, 132, 123, 115, 135, 115, 117, 119, 128, 123, 127, 130, 111, 124, 134, 123, 127, 148, 143, 118, 126, 125, 127, 133, 140, 133, 136, 139, 130, 142, 147, 130, 124, 127, 105, 113, 123, 133, 131, 132, 120, 127, 114, 127, 123, 125, 122, 120, 127, 155, 121, 128, 139, 141, 128, 138, 132, 136, 126, 114, 122, 115, 133, 122, 128, 120, 127, 123, 116, 111, 129, 125, 114, 104, 116, 134, 135, 144, 129, 127, 119, 122, 131, 124, 122, 127, 137, 114, 135, 123, 116, 114, 126, 113, 102, 114, 114, 135, 135, 109, 134, 125, 122, 125, 120, 119, 129, 125, 133, 123, 107, 107, 128, 131, 125, 111, 137, 135, 117, 126, 135, 136, 147, 112, 168, 118, 125, 124, 124, 132, 119, 117, 122, 113, 139, 129, 116, 130, 127, 135, 128, 149, 110, 129, 131, 116, 135, 125, 113, 154, 137, 110, 112, 118, 112, 151, 118, 109, 136, 114, 123, 121, 110, 108, 121, 114, 136, 135, 139, 119, 125, 152, 109, 133, 124, 122, 132, 132, 120, 123, 136, 137, 119, 113, 106, 149, 121, 134, 128, 163, 114, 130, 114, 113, 125, 124, 119, 109, 125, 111, 123, 122, 143, 124, 121, 133, 130, 103, 110, 119, 111, 110, 123, 125, 112, 129, 125, 128, 133, 123, 132, 131, 130, 129, 127, 139, 110, 124, 142, 137, 128, 125, 116, 126, 132, 130, 133, 112, 126, 122, 118, 135, 129, 107, 122, 113, 140, 129, 136, 134, 114, 127, 139, 140, 147, 131, 141, 118, 117, 124, 121, 136, 130, 125, 122, 132, 129, 136, 117, 130, 108, 127, 112, 133, 123, 127, 116, 136, 138, 141, 123, 99, 138, 116, 127, 118, 142, 119, 119, 110, 143, 117, 142, 116, 118, 133, 115, 117, 129, 131, 117, 122, 125, 120, 136, 119, 140, 117, 115, 104, 127, 123, 115, 122, 125, 119, 124, 113, 115, 129, 145, 120, 143, 136, 120, 126, 118, 127, 140, 133, 124, 133, 120, 131, 129, 122, 123, 130, 126, 132, 128, 127, 138, 133, 127, 128, 145, 119, 123, 129, 131, 125, 118, 117, 140, 124, 121, 120, 139, 118, 127, 124, 128, 124, 106, 121, 118, 138, 126, 158, 122, 125, 118, 133, 131, 127, 124, 119, 112, 129, 118, 127, 126, 122, 117, 113, 118, 132, 126, 131, 117, 130, 129, 125, 135, 145, 132, 145, 129, 139, 128, 124, 134, 141, 111, 122, 116, 133, 107, 107, 117, 122, 129, 124, 125, 123, 106, 104, 107, 134, 122, 132, 118, 112, 124, 123, 103, 156, 143, 131, 147, 133, 117, 142, 132, 112, 134, 127, 131, 126, 129, 134, 124, 104, 96, 132, 130, 131, 131, 130, 105, 127, 127, 122, 120, 129, 134, 119, 146, 140, 126, 112, 119, 118, 145, 142, 123, 136, 125, 139, 131, 117, 127, 110, 117, 123, 132, 120, 144, 116, 125, 141, 120, 137, 144, 111, 118, 141, 132, 146, 120, 132, 130, 107, 127, 114, 132, 129, 144, 126, 126, 113, 143, 110, 123, 149, 126, 110, 136, 123, 118, 131, 109, 139, 119, 135, 135, 116, 122, 117, 135, 124, 130, 126, 126, 132, 122, 104, 123, 136, 113, 120, 129, 135, 126, 116, 145, 110, 113, 154, 141, 118, 130, 126, 123, 127, 117, 129, 132, 122, 107, 136, 124, 124, 142, 130, 143, 148, 123, 125, 142, 128, 123, 128, 128, 126, 124, 142, 128, 130, 122, 116, 133, 136, 119, 123, 138, 130, 130, 117, 118, 117, 108, 125, 127, 135, 122, 134, 112, 133, 132, 135, 114, 116, 121, 141, 125, 124, 128, 119, 113, 125, 127, 113, 125, 121, 127, 153, 135, 112, 137, 115, 130, 113, 140, 112, 118, 137, 124, 133, 130, 125, 113, 130, 131, 133, 130, 119, 121, 117, 136, 125, 140, 127, 125, 142, 130, 138, 124, 136, 115, 130, 114, 117, 122, 150, 105, 127, 122, 129, 125, 121, 152, 120, 146, 120, 119, 132, 118, 123, 138, 128, 118, 125, 133, 134, 130, 123, 113, 127, 122, 127, 127, 130, 122, 114, 133, 130, 122, 112, 128, 124, 129, 129, 114, 135, 104, 128, 112, 132, 134, 135, 127, 117, 148, 120, 124, 121, 107, 127, 136, 143, 132, 126, 109, 126, 128, 129, 135, 112, 119, 125, 107, 113, 113, 129, 125, 108, 110, 130, 125, 148, 139, 132, 121, 116, 124, 128, 148, 115, 134, 135, 125, 142, 134, 131, 134, 125, 134, 122, 130, 133, 103, 140, 117, 113, 118, 126, 116, 131, 126, 123, 120, 139, 110, 124, 115, 125, 120, 126, 123, 126, 113, 117, 138, 139, 149, 112, 133, 133, 146, 134, 143, 109, 119, 121, 124, 124, 107, 126, 134, 137, 118, 120, 105, 115, 132, 124, 125, 107, 114, 135, 133, 125, 119, 131, 97, 128, 122, 117, 142, 139, 126, 113, 129, 119, 119, 120, 129, 116, 124, 119, 130, 113, 121, 124, 116, 131, 123, 137, 119, 107, 115, 112, 100, 128, 122, 152, 149, 127, 109, 149, 126, 123, 117, 128, 113, 124, 120, 107, 143, 136, 122, 129, 120, 121, 125, 113, 130, 118, 119, 120, 125, 131, 122, 116, 136, 128, 138, 97, 112, 142, 129, 118, 122, 115, 143, 122, 112, 122, 113, 119, 118, 111, 123, 125, 125, 131, 124, 122, 135, 114, 125, 123, 123, 129, 134, 126, 116, 131, 147, 130, 100, 124, 110, 112, 129, 117, 134, 130, 120, 109, 120, 115, 123, 135, 137, 135, 113, 127, 141, 121, 121, 115, 120, 126, 124, 137, 120, 121, 117, 118, 125, 143, 92, 134, 115, 123, 120, 122, 133, 112, 134, 105, 139, 122, 142, 130, 118, 117, 114, 134, 124, 134, 126, 131, 126, 134, 137, 105, 133, 119, 133, 126, 120, 120, 132, 133, 135, 112, 130, 116, 139, 120, 119, 119, 123, 140, 119, 117, 133, 125, 119, 117, 112, 122, 112, 123, 119, 134, 126, 122, 142, 138, 120, 124, 135, 124, 122, 114, 141, 119, 133, 120, 114, 119, 121, 116, 132, 137, 122, 126, 133, 136, 102, 130, 117, 128, 106, 138, 123, 119, 134, 107, 127, 131, 121, 126, 112, 140, 136, 124, 132, 144, 141, 133, 129, 119, 128, 125, 153, 131, 106, 139, 115, 129, 127, 118, 132, 135, 128, 130, 127, 125, 121, 112, 117, 118, 133, 121, 118, 114, 125, 136, 118, 135, 133, 133, 118, 118, 118, 127, 136, 120, 120, 122, 159, 151, 132, 127, 126, 122, 132, 132, 124, 109, 132, 149, 126, 118, 130, 132, 117, 120, 139, 123, 136, 124, 139, 120, 165, 132, 120, 129, 121, 131, 114, 115, 126, 120, 104, 136, 119, 121, 115, 124, 121, 145, 117, 130, 116, 113, 132, 114, 120, 121, 116, 110, 132, 129, 131, 142, 119, 128, 123, 124, 116, 128, 119, 127, 114, 111, 121, 113, 137, 129, 130, 112, 123, 125, 130, 141, 134, 125, 145, 124, 136, 134, 120, 113, 107, 117, 110, 118, 130, 127, 128, 122, 134, 110, 112, 129, 114, 122, 124, 133, 116, 126, 121, 107, 139, 117, 91, 130, 133, 138, 127, 113, 138, 128, 115, 123, 117, 113, 130, 125, 111, 119, 137, 133, 133, 123, 136, 132, 123, 134, 118, 129, 158, 127, 132, 126, 123, 133, 122, 132, 117, 129, 119, 129, 133, 123, 131, 150, 162, 130, 129, 116, 125, 128, 115, 133, 142, 144, 136, 119, 133, 125, 109, 115, 128, 128, 119, 129, 139, 121, 119, 135, 120, 128, 112, 123, 126, 122, 123, 105, 134, 130, 134, 131, 124, 126, 115, 129, 127, 119, 124, 128, 119, 118, 133, 122, 112, 130, 128, 137, 147, 116, 115, 150, 133, 133, 106, 134, 133, 140, 132, 134, 121, 128, 121, 116, 132, 134, 139, 121, 128, 124, 116, 126, 134, 114, 102, 106, 107, 124, 118, 119, 123, 123, 127, 117, 128, 111, 130, 129, 114, 133, 107, 117, 122, 107, 127, 142, 117, 128, 126, 128, 113, 134, 109, 133, 118, 137, 122, 112, 116, 122, 147, 117, 116, 109, 107, 127, 144, 101, 124, 123, 136, 113, 129, 108, 152, 130, 139, 114, 124, 141, 130, 115, 113, 101, 129, 132, 144, 133, 115, 129, 136, 108, 122, 142, 136, 123, 122, 122, 122, 132, 127, 133, 125, 109, 120, 134, 132, 120, 122, 106, 111, 128, 112, 114, 128, 127, 119, 113, 141, 114, 124, 127, 111, 131, 134, 132, 131, 130, 121, 118, 127, 119, 144, 126, 133, 108, 124, 134, 123, 120, 127, 104, 116, 128, 119, 142, 121, 136, 123, 120, 119, 120, 132, 129, 145, 136, 118, 133, 118, 111, 135, 123, 124, 111, 118, 135, 122, 116, 123, 135, 119, 120, 124, 125, 139, 133, 125, 117, 134, 127, 117, 119, 120, 132, 108, 115, 112, 128, 120, 120, 122, 109, 116, 120, 124, 136, 128, 120, 129, 127, 138, 122, 128, 121, 125, 119, 119, 117, 127, 127, 130, 120, 121, 111, 127, 140, 118, 124, 123, 110, 124, 132, 123, 126, 114, 108, 112, 117, 121, 117, 132, 141, 133, 128, 134, 126, 132, 119, 119, 132, 126, 149, 133, 132, 122, 132, 115, 135, 133, 128, 115, 137, 136, 115, 127, 121, 134, 136, 127, 111, 107, 110, 121, 124, 131, 130, 125, 123, 130, 139, 117, 113, 144, 130, 134, 133, 118, 130, 127, 114, 125, 129, 110, 128, 137, 130, 111, 113, 114, 141, 130, 142, 121, 123, 117, 149, 122, 115, 140, 122, 130, 121, 135, 108, 128, 129, 142, 128, 141, 136, 134, 118, 121, 106, 146, 127, 138, 118, 127, 130, 120, 155, 124, 138, 132, 134, 129, 131, 126, 139, 126, 124, 114, 117, 105, 113, 143, 140, 131, 117, 123, 111, 105, 135, 133, 104, 122, 139, 129, 118, 134, 116, 107, 119, 137, 133, 158, 159, 124, 97, 126, 122, 124, 131, 130, 117, 127, 130, 130, 126, 114, 139, 131, 129, 118, 131, 132, 124, 116, 136, 123, 125, 114, 129, 140, 122, 125, 130, 131, 126, 123, 138, 124, 123, 143, 118, 125, 127, 146, 126, 117, 139, 111, 122, 118, 126, 129, 110, 115, 128, 120, 121, 133, 119, 118, 112, 128, 136, 128, 138, 118, 123, 131, 134, 117, 133, 131, 118, 124, 142, 109, 103, 117, 147, 122, 125, 121, 128, 136, 139, 129, 132, 108, 135, 129, 110, 127, 123, 125, 116, 145, 131, 119, 119, 116, 109, 126, 125, 116, 123, 124, 135, 109, 133, 131, 130, 111, 122, 126, 143, 113, 141, 138, 133, 122, 135, 143, 138, 122, 111, 114, 123, 127, 142, 125, 135, 124, 131, 106, 127, 120, 124, 130, 100, 120, 122, 142, 140, 139, 112, 131, 133, 120, 126, 132, 125, 127, 128, 123, 125, 106, 128, 117, 125, 136, 114, 122, 127, 120, 134, 145, 130, 119, 121, 162, 118, 139, 134, 121, 110, 133, 139, 115, 127, 136, 118, 150, 124, 124, 112, 115, 127, 137, 127, 123, 120, 122, 129, 128, 130, 125, 115, 119, 116, 125, 137, 142, 129, 118, 115, 134, 137, 123, 120, 111, 121, 116, 114, 122, 123, 123, 125, 129, 122, 118, 116, 135, 131, 128, 118, 125, 136, 122, 125, 120, 127, 139, 135, 139, 130, 130, 127, 113, 105, 119, 143, 130, 116, 149, 124, 126, 136, 119, 115, 148, 126, 144, 137, 112, 123, 123, 116, 132, 119, 135, 116, 112, 132, 114, 110, 134, 118, 121, 134, 123, 119, 119, 128, 125, 145, 108, 130, 126, 109, 137, 126, 123, 134, 118, 114, 122, 129, 131, 120, 124, 124, 131, 113, 128, 120, 118, 120, 124, 112, 125, 105, 133, 121, 130, 131, 129, 121, 111, 136, 131, 133, 127, 139, 128, 122, 123, 149, 119, 91, 123, 118, 137, 110, 116, 130, 139, 107, 128, 115, 133, 107, 137, 127, 122, 116, 127, 134, 115, 148, 105, 129, 124, 123, 132, 129, 144, 129, 135, 122, 125, 127, 121, 121, 151, 115, 120, 123, 125, 123, 118, 128, 135, 142, 123, 160, 152, 116, 120, 131, 119, 129, 165, 128, 134, 147, 124, 110, 113, 110, 121, 117, 118, 131, 118, 121, 124, 126, 120, 134, 115, 118, 101, 110, 120, 113, 134, 120, 127, 117, 129, 118, 123, 132, 119, 145, 125, 121, 130, 119, 121, 122, 124, 146, 127, 130, 126, 123, 121, 147, 155, 122, 121, 133, 119, 138, 126, 133, 130, 135, 123, 119, 130, 130, 127, 116, 127, 125, 131, 118, 116, 123, 120, 124, 129, 132, 112, 130, 137, 134, 131, 111, 107, 140, 130, 145, 123, 158, 138, 137, 131, 120, 119, 117, 122, 123, 113, 120, 141, 140, 125, 105, 128, 128, 122, 131, 126, 100, 124, 138, 128, 127, 124, 130, 134, 128, 125, 122, 120, 125, 126, 130, 119, 136, 149, 135, 138, 99, 120, 137, 128, 138, 116, 116, 141, 122, 115, 125, 126, 133, 119, 131, 122, 119, 143, 122, 118, 114, 119, 124, 120, 139, 153, 123, 123, 141, 132, 139, 115, 147, 126, 132, 116, 120, 131, 139, 143, 119, 116, 126, 121, 114, 138, 125, 133, 119, 135, 119, 135, 141, 139, 131, 119, 104, 130, 128, 113, 119, 119, 124, 130, 129, 124, 121, 132, 133, 128, 155, 122, 135, 142, 128, 113, 119, 128, 114, 122, 122, 124, 120, 127, 120, 143, 134, 129, 124, 127, 140, 134, 115, 125, 117, 122, 114, 131, 133, 132, 117, 120, 112, 106, 148, 118, 130, 136, 119, 129, 112, 126, 116, 115, 123, 128, 124, 124, 115, 147, 103, 126, 122, 131, 113, 117, 134, 131, 139, 98, 124, 123, 117, 123, 113, 125, 104, 89, 118, 123, 125, 136, 136, 110, 112, 110, 124, 125, 119, 120, 123, 118, 138, 135, 124, 121, 129, 134, 99, 127, 128, 126, 122, 142, 127, 139, 108, 120, 108, 123, 133, 129, 149, 132, 123, 113, 126, 128, 90, 128, 130, 119, 133, 127, 136, 109, 128, 125, 151, 103, 136, 116, 126, 138, 124, 130, 134, 113, 125, 123, 123, 109, 127, 124, 130, 123, 127, 126, 120, 142, 121, 131, 136, 135, 121, 114, 128, 133, 140, 122, 120, 134, 127, 138, 99, 115, 119, 126, 131, 125, 127, 124, 125, 132, 141, 122, 135, 126, 132, 105, 156, 125, 122, 126, 132, 114, 121, 124, 114, 136, 114, 122, 117, 141, 126, 124, 87, 118, 127, 126, 135, 125, 133, 124, 134, 111, 108, 95, 122, 128, 121, 116, 151, 118, 112, 127, 114, 140, 131, 134, 134, 132, 129, 129, 132, 131, 127, 119, 123, 117, 110, 129, 150, 119, 124, 128, 121, 115, 103, 147, 126, 129, 129, 135, 118, 120, 101, 106, 137, 136, 130, 123, 131, 123, 117, 127, 148, 122, 118, 150, 132, 134, 119, 112, 121, 132, 133, 134, 133, 110, 136, 129, 153, 117, 131, 138, 163, 120, 124, 143, 117, 136, 130, 123, 121, 120, 131, 118, 127, 130, 118, 123, 139, 123, 127, 114, 141, 115, 140, 124, 117, 131, 135, 110, 111, 146, 120, 133, 144, 120, 129, 127, 125, 105, 133, 134, 127, 116, 129, 134, 125, 132, 151, 112, 126, 118, 142, 114, 142, 125, 106, 122, 126, 119, 129, 119, 104, 115, 132, 108, 135, 134, 112, 123, 161, 129, 125, 118, 116, 112, 129, 138, 124, 123, 134, 124, 141, 118, 129, 147, 104, 125, 147, 132, 128, 146, 126, 132, 125, 128, 116, 127, 114, 129, 119, 119, 114, 123, 116, 121, 127, 113, 129, 123, 132, 131, 108, 126, 115, 121, 136, 128, 125, 120, 122, 131, 138, 125, 130, 106, 129, 138, 121, 136, 122, 125, 118, 125, 126, 118, 123, 123, 118, 135, 129, 133, 111, 125, 122, 132, 138, 127, 110, 128, 126, 110, 129, 141, 127, 120, 117, 151, 122, 124, 120, 118, 121, 137, 121, 128, 120, 127, 126, 132, 131, 120, 113, 135, 120, 133, 132, 120, 130, 127, 116, 150, 146, 127, 124, 125, 106, 127, 122, 142, 132, 122, 124, 152, 128, 125, 131, 134, 118, 127, 129, 116, 103, 127, 134, 138, 128, 119, 116, 123, 144, 137, 117, 135, 130, 125, 124, 121, 134, 134, 143, 139, 148, 129, 131, 142, 134, 118, 114, 142, 172, 142, 108, 126, 133, 128, 110, 136, 141, 126, 139, 139, 126, 125, 138, 127, 123, 134, 125, 125, 111, 128, 112, 120, 110, 129, 109, 133, 122, 119, 116, 116, 135, 113, 122, 127, 121, 125, 114, 139, 123, 109, 126, 129, 136, 125, 130, 125, 136, 130, 162, 123, 123, 108, 130, 123, 124, 130, 116, 141, 124, 114, 114, 119, 119, 122, 134, 115, 122, 142, 140, 122, 124, 113, 121, 137, 133, 114, 124, 125, 121, 137, 120, 122, 124, 125, 118, 127, 132, 143, 137, 121, 127, 126, 125, 135, 142, 138, 128, 122, 155, 136, 113, 126, 115, 125, 129, 105, 129, 118, 147, 127, 129, 138, 132, 127, 121, 120, 120, 129, 117, 123, 123, 119, 125, 122, 109, 136, 140, 128, 128, 142, 121, 127, 137, 130, 116, 131, 126, 135, 115, 119, 115, 119, 142, 113, 116, 137, 127, 107, 141, 121, 123, 109, 123, 108, 119, 152, 142, 120, 132, 110, 121, 129, 127, 130, 128, 121, 127, 136, 123, 140, 127, 128, 147, 120, 125, 134, 113, 138, 132, 103, 114, 106, 114, 125, 124, 100, 155, 136, 129, 127, 135, 117, 113, 129, 129, 123, 131, 117, 132, 141, 123, 137, 122, 118, 111, 152, 133, 114, 140, 120, 102, 121, 132, 134, 118, 144, 120, 165, 121, 135, 107, 137, 146, 128, 122, 129, 117, 141, 129, 122, 129, 117, 120, 129, 136, 129, 127, 113, 111, 125, 112, 107, 117, 138, 129, 122, 128, 133, 134, 137, 129, 123, 132, 120, 127, 131, 118, 109, 129, 101, 126, 142, 146, 133, 128, 147, 127, 122, 117, 119, 138, 135, 131, 140, 120, 113, 137, 113, 119, 131, 98, 137, 157, 127, 125, 125, 126, 121, 113, 110, 126, 121, 117, 120, 141, 128, 129, 135, 122, 114, 130, 131, 137, 129, 125, 117, 127, 152, 135, 115, 127, 145, 115, 126, 133, 120, 141, 122, 121, 134, 128, 121, 128, 142, 133, 133, 143, 140, 132, 121, 143, 138, 129, 122, 121, 112, 137, 134, 132, 123, 130, 125, 117, 126, 120, 133, 92, 138, 117, 113, 130, 121, 132, 124, 128, 156, 125, 132, 116, 108, 129, 134, 129, 127, 131, 138, 119, 130, 132, 133, 117, 117, 136, 115, 131, 130, 143, 141, 128, 127, 123, 123, 121, 145, 137, 122, 114, 114, 130, 108, 115, 127, 114, 122, 129, 141, 129, 141, 122, 127, 121, 122, 119, 124, 136, 117, 128, 127, 109, 105, 123, 150, 129, 127, 141, 119, 121, 136, 113, 120, 99, 109, 124, 147, 98, 121, 126, 145, 149, 121, 111, 137, 110, 123, 128, 113, 133, 127, 109, 145, 128, 112, 129, 114, 100, 124, 122, 117, 148, 127, 138, 132, 127, 126, 107, 112, 95, 128, 141, 133, 126, 128, 118, 139, 100, 123, 113, 136, 140, 128, 124, 134, 130, 126, 131, 122, 114, 116, 135, 117, 139, 113, 130, 110, 115, 130, 123, 125, 129, 130, 134, 125, 125, 116, 125, 125, 120, 112, 120, 128, 119, 126, 144, 116, 100, 119, 127, 126, 117, 134, 125, 121, 132, 136, 120, 122, 121, 136, 109, 115, 121, 97, 141, 148, 122, 139, 136, 113, 139, 136, 117, 123, 128, 118, 141, 119, 109, 125, 133, 109, 131, 136, 122, 114, 118, 123, 125, 112, 127, 120, 135, 130, 132, 144, 132, 119, 121, 133, 126, 122, 158, 133, 125, 120, 116, 131, 125, 125, 119, 137, 127, 127, 111, 135, 142, 126, 117, 114, 113, 128, 134, 130, 121, 139, 122, 112, 127, 115, 124, 136, 142, 121, 137, 128, 123, 129, 117, 119, 105, 113, 116, 108, 123, 147, 128, 125, 118, 137, 126, 115, 136, 110, 114, 123, 126, 130, 113, 132, 125, 120, 116, 120, 126, 121, 115, 147, 106, 117, 133, 133, 131, 132, 124, 115, 122, 132, 143, 112, 132, 127, 126, 128, 129, 106, 116, 137, 126, 136, 123, 130, 133, 124, 122, 135, 131, 132, 142, 133, 128, 115, 116, 123, 126, 121, 122, 130, 146, 106, 127, 131, 113, 116, 122, 112, 118, 119, 123, 128, 131, 119, 109, 127, 131, 117, 140, 122, 112, 123, 123, 129, 139, 108, 133, 118, 129, 159, 128, 133, 115, 126, 121, 131, 125, 123, 137, 129, 126, 125, 113, 138, 120, 128, 123, 128, 99, 145, 129, 129, 139, 118, 130, 106, 120, 130, 114, 107, 128, 109, 123, 109, 135, 130, 131, 102, 128, 119, 125, 131, 128, 125, 112, 128, 139, 122, 126, 126, 127, 133, 125, 130, 121, 133, 115, 109, 123, 129, 140, 135, 114, 126, 124, 139, 125, 108, 125, 117, 128, 122, 129, 121, 113, 127, 133, 105, 138, 105, 129, 106, 123, 130, 115, 124, 125, 117, 137, 119, 123, 123, 137, 143, 122, 131, 125, 118, 121, 116, 115, 118, 122, 123, 115, 120, 128, 120, 136, 107, 123, 128, 128, 118, 120, 125, 145, 113, 125, 118, 129, 110, 111, 128, 125, 131, 113, 115, 140, 123, 127, 130, 124, 117, 127, 131, 107, 132, 118, 126, 123, 123, 121, 138, 91, 124, 139, 123, 132, 127, 108, 121, 139, 119, 124, 128, 122, 109, 131, 117, 118, 107, 136, 126, 133, 132, 120, 122, 121, 117, 135, 122, 115, 118, 129, 124, 129, 124, 123, 131, 125, 125, 124, 128, 138, 135, 100, 136, 116, 125, 117, 115, 135, 130, 111, 124, 140, 122, 123, 130, 136, 129, 120, 116, 141, 123, 123, 120, 118, 118, 146, 112, 123, 118, 131, 115, 129, 128, 111, 127, 118, 128, 119, 126, 134, 124, 128, 129, 115, 121, 114, 116, 127, 115, 128, 110, 123, 114, 141, 129, 123, 129, 119, 136, 111, 122, 139, 120, 137, 131, 133, 117, 125, 118, 137, 133, 122, 133, 122, 142, 125, 114, 112, 135, 123, 126, 145, 126, 122, 112, 131, 129, 127, 136, 127, 138, 138, 132, 121, 125, 125, 123, 143, 120, 110, 146, 137, 115, 125, 125, 126, 119, 117, 114, 132, 139, 113, 134, 135, 123, 137, 110, 122, 118, 132, 122, 140, 123, 106, 117, 133, 107, 115, 106, 116, 127, 126, 136, 136, 133, 110, 166, 144, 116, 116, 130, 114, 117, 124, 129, 128, 118, 137, 119, 116, 120, 116, 132, 138, 119, 128, 116, 130, 138, 135, 122, 132, 125, 128, 138, 123, 122, 138, 120, 132, 121, 139, 148, 126, 104, 112, 135, 120, 118, 121, 128, 119, 125, 150, 130, 123, 119, 123, 125, 123, 116, 124, 133, 139, 135, 123, 121, 117, 133, 125, 124, 139, 131, 117, 135, 128, 128, 125, 112, 144, 116, 131, 137, 104, 107, 104, 123, 107, 120, 144, 129, 121, 132, 118, 118, 129, 146, 133, 108, 141, 122, 145, 114, 131, 129, 132, 136, 132, 143, 131, 133, 133, 132, 148, 121, 116, 132, 121, 118, 119, 113, 125, 127, 134, 129, 128, 133, 135, 116, 133, 130, 132, 137, 113, 128, 123, 115, 106, 123, 133, 145, 127, 117, 126, 126, 123, 112, 128, 126, 128, 106, 133, 93, 135, 124, 114, 128, 124, 126, 122, 129, 141, 136, 135, 150, 125, 146, 143, 112, 120, 133, 120, 123, 116, 125, 126, 133, 109, 108, 116, 128, 134, 131, 116, 127, 124, 128, 121, 112, 111, 124, 121, 120, 139, 124, 131, 125, 125, 120, 111, 115, 123, 110, 112, 122, 126, 117, 135, 122, 144, 118, 137, 99, 128, 132, 130, 131, 116, 116, 129, 117, 134, 109, 120, 126, 111, 134, 129, 119, 134, 113, 115, 110, 132, 137, 137, 140, 130, 131, 139, 112, 131, 115, 129, 123, 121, 118, 142, 150, 129, 125, 138, 118, 117, 118, 142, 141, 99, 118, 118, 147, 123, 140, 115, 140, 112, 131, 115, 119, 141, 133, 115, 125, 107, 128, 120, 117, 128, 122, 131, 132, 125, 123, 107, 128, 138, 115, 125, 120, 121, 127, 116, 135, 118, 126, 108, 125, 118, 114, 115, 112, 129, 130, 108, 143, 97, 118, 122, 127, 119, 121, 125, 118, 148, 143, 119, 135, 130, 139, 132, 133, 115, 130, 117, 131, 121, 119, 132, 118, 129, 125, 126, 114, 109, 134, 136, 133, 114, 122, 119, 101, 128, 124, 123, 138, 125, 125, 138, 129, 123, 126, 129, 114, 125, 131, 129, 138, 138, 132, 110, 99, 130, 114, 122, 133, 125, 126, 131, 134, 120, 125, 141, 129, 153, 128, 134, 114, 129, 107, 144, 140, 118, 132, 115, 116, 128, 134, 129, 138, 125, 133, 151, 134, 124, 148, 130, 126, 131, 125, 139, 135, 131, 122, 128, 121, 116, 129, 121, 121, 142, 115, 127, 131, 116, 131, 129, 128, 128, 133, 124, 130, 121, 122, 130, 121, 134, 106, 130, 117, 122, 133, 105, 122, 119, 131, 115, 131, 134, 113, 151, 109, 116, 127, 118, 115, 139, 110, 125, 147, 131, 124, 143, 102, 118, 112, 118, 126, 113, 109, 127, 132, 136, 122, 118, 100, 121, 117, 130, 121, 122, 115, 111, 136, 114, 122, 119, 132, 117, 126, 121, 120, 129, 133, 128, 153, 136, 121, 133, 121, 128, 123, 120, 116, 138, 117, 128, 128, 122, 124, 121, 142, 129, 124, 136, 116, 140, 141, 132, 122, 145, 122, 127, 120, 132, 118, 127, 125, 120, 135, 128, 136, 136, 133, 120, 107, 124, 133, 140, 126, 122, 107, 120, 115, 132, 134, 139, 124, 129, 128, 126, 124, 121, 126, 129, 129, 141, 120, 132, 112, 116, 134, 134, 144, 122, 149, 119, 110, 135, 119, 133, 108, 111, 115, 129, 128, 127, 115, 116, 129, 125, 122, 112, 140, 110, 119, 112, 128, 131, 115, 112, 114, 118, 138, 130, 110, 124, 133, 126, 119, 115, 131, 121, 121, 118, 122, 124, 139, 135, 123, 132, 113, 139, 119, 114, 156, 117, 120, 122, 115, 125, 122, 126, 145, 122, 117, 115, 122, 122, 122, 120, 124, 125, 139, 125, 115, 122, 120, 116, 122, 108, 125, 121, 129, 119, 135, 126, 112, 133, 112, 134, 128, 101, 130, 107, 131, 105, 138, 128, 136, 129, 127, 122, 130, 130, 119, 101, 133, 130, 127, 126, 122, 127, 123, 137, 124, 129, 123, 140, 128, 124, 115, 125, 115, 121, 134, 137, 121, 132, 119, 127, 132, 135, 119, 138, 105, 137, 120, 123, 132, 123, 127, 139, 139, 131, 134, 154, 119, 126, 120, 123, 118, 126, 130, 123, 122, 104, 132, 119, 130, 118, 127, 117, 127, 129, 119, 121, 125, 133, 122, 123, 126, 106, 136, 120, 140, 131, 105, 115, 112, 108, 126, 134, 116, 123, 122, 136, 116, 115, 131, 130, 132, 113, 132, 118, 123, 128, 113, 119, 123, 123, 134, 126, 118, 128, 134, 121, 125, 133, 119, 125, 125, 135, 130, 133, 122, 120, 127, 115, 102, 125, 118, 137, 115, 119, 124, 134, 137, 131, 116, 127, 118, 132, 116, 134, 133, 125, 119, 136, 134, 129, 125, 121, 107, 136, 129, 120, 137, 141, 119, 123, 119, 127, 127, 113, 126, 124, 141, 143, 126, 133, 120, 125, 138, 110, 125, 132, 149, 133, 109, 130, 128, 117, 109, 122, 118, 128, 115, 140, 129, 138, 102, 137, 130, 131, 133, 130, 135, 107, 122, 143, 126, 113, 121, 118, 123, 131, 134, 111, 127, 124, 130, 144, 127, 121, 129, 126, 152, 141, 122, 131, 117, 122, 109, 115, 145, 123, 138, 134, 119, 128, 131, 141, 131, 124, 118, 119, 123, 115, 133, 140, 133, 106, 113, 131, 122, 128, 112, 114, 108, 125, 127, 100, 131, 134, 124, 132, 112, 152, 137, 129, 131, 137, 126, 124, 126, 124, 135, 125, 118, 138, 124, 124, 119, 121, 120, 127, 141, 115, 131, 131, 143, 127, 121, 135, 118, 102, 115, 120, 136, 116, 131, 129, 107, 139, 122, 126, 135, 120, 123, 129, 130, 124, 124, 132, 127, 130, 122, 124, 117, 141, 143, 130, 130, 123, 130, 124, 105, 118, 127, 121, 118, 132, 117, 116, 134, 118, 114, 125, 125, 137, 137, 119, 122, 126, 130, 131, 119, 140, 121, 140, 127, 115, 136, 124, 118, 127, 132, 123, 124, 133, 139, 124, 139, 111, 115, 124, 119, 130, 124, 122, 119, 124, 131, 122, 134, 117, 119, 133, 125, 113, 117, 125, 123, 134, 136, 125, 118, 128, 133, 118, 127, 113, 130, 123, 123, 141, 131, 133, 115, 116, 111, 129, 104, 125, 138, 133, 125, 136, 126, 106, 144, 109, 121, 138, 133, 122, 128, 131, 133, 112, 128, 135, 114, 127, 139, 132, 116, 118, 113, 124, 118, 126, 117, 121, 140, 118, 144, 103, 100, 124, 127, 146, 130, 135, 123, 133, 121, 138, 147, 130, 134, 113, 126, 143, 125, 130, 103, 128, 123, 119, 135, 126, 131, 116, 114, 137, 126, 125, 141, 144, 131, 123, 122, 123, 121, 126, 120, 133, 131, 115, 126, 131, 128, 135, 118, 111, 129, 119, 136, 139, 138, 110, 154, 126, 131, 123, 126, 134, 140, 119, 124, 117, 122, 125, 124, 134, 133, 134, 124, 114, 126, 127, 119, 128, 138, 141, 120, 113, 135, 123, 131, 137, 125, 117, 121, 123, 121, 133, 130, 132, 128, 119, 140, 124, 139, 134, 116, 128, 122, 114, 122, 139, 125, 115, 141, 121, 147, 116, 115, 141, 109, 108, 128, 114, 128, 118, 118, 125, 117, 120, 110, 120, 127, 135, 138, 121, 115, 129, 141, 124, 137, 136, 115, 130, 123, 124, 110, 120, 119, 123, 114, 132, 144, 124, 118, 112, 133, 131, 107, 136, 114, 121, 128, 139, 117, 130, 130, 141, 130, 118, 120, 133, 121, 137, 124, 111, 127, 135, 133, 127, 132, 137, 130, 117, 145, 111, 128, 122, 123, 128, 130, 132, 130, 123, 111, 114, 138, 124, 139, 133, 122, 142, 128, 126, 114, 114, 130, 130, 144, 135, 120, 130, 129, 132, 144, 132, 134, 135, 138, 126, 113, 127, 130, 119, 154, 124, 120, 121, 145, 125, 118, 126, 128, 134, 112, 123, 134, 113, 121, 97, 130, 125, 129, 120, 127, 125, 130, 114, 124, 134, 132, 113, 127, 131, 128, 117, 125, 141, 124, 125, 129, 111, 107, 119, 129, 120, 138, 130, 116, 123, 127, 147, 133, 115, 126, 118, 129, 133, 123, 124, 134, 130, 126, 142, 131, 114, 131, 132, 127, 123, 125, 116, 109, 116, 115, 125, 118, 110, 105, 144, 137, 129, 129, 122, 137, 132, 110, 128, 121, 117, 114, 116, 126, 139, 138, 130, 136, 138, 129, 105, 115, 128, 118, 122, 133, 128, 110, 120, 126, 113, 112, 138, 113, 137, 128, 134, 127, 134, 132, 128, 126, 128, 137, 127, 128, 129, 122, 130, 120, 119, 134, 139, 126, 133, 124, 122, 124, 121, 125, 101, 129, 130, 138, 135, 99, 127, 142, 141, 133, 122, 104, 124, 142, 101, 125, 136, 114, 119, 122, 126, 116, 121, 124, 128, 123, 128, 121, 118, 153, 114, 112, 125, 117, 141, 138, 121, 118, 134, 137, 135, 117, 117, 120, 127, 137, 125, 116, 138, 129, 122, 131, 128, 138, 122, 122, 133, 125, 125, 132, 136, 135, 122, 108, 114, 128, 124, 111, 112, 96, 139, 134, 133, 116, 138, 135, 134, 118, 122, 135, 124, 117, 114, 121, 112, 129, 120, 140, 113, 135, 96, 127, 143, 115, 102, 100, 132, 137, 133, 132, 128, 118, 124, 136, 136, 127, 131, 117, 134, 131, 132, 139, 117, 130, 119, 132, 126, 123, 117, 134, 126, 138, 116, 118, 117, 129, 132, 130, 150, 115, 120, 135, 129, 126, 120, 117, 129, 138, 127, 103, 121, 128, 134, 129, 132, 119, 125, 122, 127, 127, 138, 132, 132, 117, 142, 125, 122, 127, 137, 107, 117, 121, 105, 140, 122, 134, 121, 121, 129, 133, 111, 122, 139, 111, 111, 114, 125, 122, 114, 119, 119, 130, 129, 126, 110, 132, 130, 121, 113, 103, 124, 115, 136, 116, 116, 122, 125, 118, 152, 104, 118, 112, 114, 126, 123, 121, 114, 122, 119, 148, 115, 128, 126, 116, 126, 133, 126, 123, 125, 132, 121, 119, 112, 122, 120, 120, 110, 140, 138, 129, 129, 133, 142, 122, 110, 126, 137, 123, 113, 126, 129, 131, 128, 122, 142, 126, 112, 117, 113, 144, 113, 110, 117, 126, 122, 105, 131, 118, 126, 133, 121, 112, 121, 123, 109, 130, 116, 125, 135, 125, 123, 121, 132, 124, 119, 120, 145, 123, 106, 142, 126, 123, 127, 132, 116, 123, 122, 126, 112, 129, 129, 132, 111, 129, 104, 140, 142, 120, 106, 128, 121, 128, 142, 123, 115, 123, 142, 133, 117, 130, 103, 130, 119, 109, 135, 108, 113, 132, 144, 146, 128, 120, 136, 112, 136, 111, 138, 125, 137, 131, 133, 130, 114, 99, 116, 133, 121, 119, 146, 126, 138, 123, 114, 134, 111, 131, 127, 113, 143, 133, 137, 113, 115, 124, 132, 127, 121, 115, 136, 142, 145, 98, 132, 116, 115, 122, 134, 132, 135, 127, 123, 126, 101, 116, 133, 134, 126, 137, 120, 126, 117, 146, 124, 138, 120, 100, 138, 127, 123, 116, 126, 119, 123, 144, 127, 121, 131, 125, 134, 112, 128, 134, 108, 139, 137, 128, 110, 126, 137, 125, 126, 123, 119, 122, 111, 125, 107, 126, 123, 103, 122, 119, 122, 122, 130, 120, 125, 120, 144, 93, 128, 122, 111, 109, 117, 132, 124, 129, 115, 121, 135, 131, 145, 120, 136, 129, 122, 122, 131, 112, 137, 118, 111, 135, 141, 121, 130, 130, 136, 136, 126, 119, 123, 130, 142, 120, 143, 131, 123, 143, 107, 118, 114, 122, 124, 124, 133, 130, 129, 117, 130, 113, 128, 137, 142, 114, 135, 111, 135, 113, 104, 122, 147, 135, 142, 147, 149, 135, 123, 123, 125, 112, 132, 113, 133, 144, 114, 139, 125, 148, 134, 116, 117, 124, 116, 104, 129, 119, 126, 121, 120, 120, 131, 120, 125, 129, 126, 114, 122, 127, 115, 136, 126, 134, 106, 142, 121, 117, 121, 122, 159, 127, 103, 109, 113, 133, 131, 105, 128, 118, 139, 126, 112, 127, 132, 123, 131, 130, 128, 132, 124, 132, 134, 113, 137, 123, 131, 135, 124, 147, 136, 137, 124, 125, 122, 121, 115, 136, 145, 118, 117, 127, 120, 126, 124, 118, 124, 145, 131, 118, 119, 124, 128, 120, 145, 143, 126, 130, 120, 126, 138, 125, 132, 119, 111, 129, 117, 128, 114, 124, 146, 131, 125, 119, 150, 119, 117, 134, 134, 117, 124, 109, 126, 121, 116, 117, 109, 128, 125, 135, 118, 123, 132, 125, 109, 133, 124, 138, 121, 149, 116, 103, 134, 92, 135, 121, 111, 127, 104, 121, 121, 128, 136, 129, 128, 129, 123, 116, 139, 122, 140, 136, 120, 121, 115, 119, 125, 113, 102, 131, 133, 144, 123, 123, 123, 122, 126, 129, 121, 135, 112, 132, 119, 117, 120, 127, 117, 131, 138, 121, 128, 120, 127, 113, 137, 118, 142, 123, 129, 122, 119, 107, 138, 123, 127, 112, 124, 95, 131, 118, 118, 150, 126, 132, 134, 123, 124, 116, 101, 126, 130, 120, 127, 134, 107, 129, 121, 152, 114, 120, 130, 131, 124, 131, 122, 125, 134, 133, 125, 123, 132, 96, 129, 105, 133, 132, 115, 114, 126, 111, 135, 124, 127, 122, 134, 131, 122, 126, 128, 148, 113, 121, 118, 121, 116, 119, 123, 135, 119, 126, 126, 110, 111, 119, 138, 125, 109, 127, 116, 129, 132, 139, 144, 120, 135, 135, 135, 118, 152, 112, 123, 119, 122, 119, 130, 113, 121, 110, 125, 125, 129, 136, 134, 140, 144, 125, 138, 115, 122, 166, 138, 134, 127, 110, 124, 113, 128, 118, 129, 116, 116, 125, 116, 123, 131, 124, 153, 117, 138, 124, 114, 130, 132, 109, 118, 132, 134, 123, 146, 121, 138, 125, 94, 127, 126, 126, 122, 133, 125, 145, 128, 92, 120, 115, 133, 117, 116, 118, 129, 126, 136, 132, 136, 134, 115, 127, 125, 111, 131, 135, 124, 123, 112, 149, 134, 121, 123, 118, 119, 116, 145, 121, 125, 120, 127, 146, 131, 144, 137, 138, 132, 122, 124, 125, 121, 108, 123, 105, 125, 132, 115, 126, 113, 122, 109, 117, 106, 136, 119, 149, 111, 123, 128, 129, 137, 120, 124, 106, 127, 132, 119, 141, 122, 143, 134, 136, 120, 122, 147, 120, 111, 127, 121, 117, 135, 130, 119, 119, 128, 132, 119, 124, 117, 136, 140, 123, 125, 122, 138, 133, 108, 121, 131, 116, 107, 124, 115, 125, 122, 123, 130, 129, 130, 131, 118, 124, 124, 127, 108, 125, 116, 131, 130, 111, 121, 126, 108, 113, 145, 113, 140, 133, 112, 137, 124, 124, 135, 130, 133, 117, 138, 122, 113, 132, 115, 119, 127, 150, 149, 126, 152, 117, 117, 111, 129, 126, 122, 122, 128, 122, 122, 103, 127, 128, 123, 129, 124, 100, 117, 129, 118, 117, 115, 123, 127, 128, 130, 125, 141, 110, 127, 154, 141, 134, 137, 141, 114, 124, 129, 139, 132, 122, 137, 127, 123, 119, 128, 140, 143, 129, 132, 137, 131, 117, 117, 137, 123, 142, 127, 121, 142, 142, 112, 129, 131, 138, 131, 123, 142, 124, 120, 133, 100, 115, 106, 130, 134, 131, 137, 113, 130, 120, 132, 107, 123, 140, 135, 114, 112, 132, 133, 131, 127, 137, 134, 117, 121, 128, 113, 117, 109, 138, 98, 124, 130, 128, 103, 143, 122, 132, 130, 116, 128, 135, 122, 110, 144, 137, 141, 128, 151, 122, 133, 138, 124, 116, 115, 124, 142, 116, 128, 124, 124, 106, 132, 116, 127, 139, 112, 137, 121, 114, 115, 130, 126, 111, 125, 112, 131, 112, 130, 117, 134, 96, 110, 124, 111, 119, 141, 137, 126, 144, 120, 130, 145, 124, 134, 128, 108, 120, 142, 135, 103, 134, 116, 149, 129, 126, 136, 119, 126, 118, 144, 126, 125, 116, 126, 113, 133, 120, 121, 112, 133, 130, 114, 128, 108, 119, 121, 122, 124, 138, 104, 109, 114, 134, 121, 125, 105, 133, 132, 139, 110, 124, 123, 137, 141, 116, 118, 109, 117, 128, 121, 138, 151, 122, 123, 115, 130, 147, 134, 121, 137, 122, 146, 119, 122, 123, 131, 135, 126, 128, 131, 130, 115, 112, 143, 123, 124, 127, 118, 130, 117, 121, 114, 115, 97, 127, 114, 129, 116, 129, 129, 128, 112, 117, 114, 118, 128, 119, 134, 113, 117, 132, 131, 128, 117, 133, 126, 112, 138, 143, 128, 137, 121, 140, 131, 121, 153, 115, 122, 119, 132, 130, 125, 113, 116, 119, 139, 121, 119, 132, 136, 121, 129, 122, 122, 116, 131, 139, 138, 134, 119, 143, 133, 131, 124, 135, 128, 128, 131, 127, 115, 145, 132, 105, 131, 137, 131, 126, 132, 127, 128, 137, 117, 121, 125, 138, 107, 131, 119, 116, 116, 132, 132, 124, 129, 117, 126, 130, 106, 112, 137, 131, 118, 111, 133, 133, 139, 103, 149, 124, 121, 112, 142, 148, 124, 118, 132, 127, 121, 105, 124, 120, 131, 133, 129, 137, 110, 129, 104, 124, 117, 104, 130, 120, 141, 137, 112, 129, 119, 123, 126, 137, 134, 124, 132, 115, 138, 118, 110, 140, 121, 117, 124, 122, 149, 135, 118, 138, 123, 116, 129, 124, 144, 134, 125, 119, 101, 112, 135, 120, 114, 137, 112, 119, 145, 126, 124, 127, 113, 130, 114, 124, 137, 138, 126, 110, 105, 115, 132, 124, 126, 130, 109, 126, 132, 114, 128, 134, 138, 122, 122, 117, 127, 132, 121, 139, 117, 133, 110, 135, 117, 107, 116, 139, 127, 118, 115, 129, 121, 132, 129, 123, 126, 118, 136, 126, 123, 134, 147, 124, 124, 118, 143, 135, 130, 128, 146, 139, 127, 132, 119, 135, 120, 111, 121, 112, 142, 128, 126, 125, 127, 126, 125, 108, 126, 120, 121, 136, 128, 128, 118, 134, 143, 114, 127, 116, 114, 121, 124, 128, 128, 139, 133, 121, 131, 128, 128, 129, 132, 135, 128, 118, 115, 118, 134, 124, 118, 110, 107, 125, 120, 130, 106, 125, 133, 101, 120, 105, 126, 123, 117, 115, 122, 128, 129, 135, 139, 113, 135, 127, 110, 146, 140, 130, 132, 140, 103, 143, 117, 141, 108, 130, 118, 110, 113, 123, 112, 129, 122, 120, 108, 113, 136, 111, 132, 123, 132, 123, 128, 137, 125, 129, 128, 114, 127, 155, 105, 126, 107, 118, 127, 136, 138, 132, 130, 127, 119, 136, 137, 120, 128, 145, 130, 126, 139, 144, 131, 120, 118, 109, 130, 105, 139, 108, 118, 135, 118, 117, 119, 121, 119, 123, 135, 111, 136, 118, 141, 117, 130, 114, 115, 114, 140, 134, 104, 123, 125, 122, 122, 125, 105, 137, 116, 120, 128, 115, 122, 151, 137, 116, 127, 141, 117, 126, 123, 115, 112, 120, 133, 140, 143, 108, 129, 112, 121, 96, 113, 119, 126, 124, 117, 129, 124, 112, 131, 114, 114, 119, 130, 133, 130, 130, 121, 121, 130, 126, 127, 107, 117, 123, 120, 117, 140, 118, 134, 121, 131, 136, 102, 120, 128, 106, 129, 124, 122, 130, 122, 123, 115, 134, 130, 116, 135, 111, 120, 145, 135, 122, 118, 129, 112, 129, 112, 118, 128, 120, 136, 120, 122, 131, 114, 114, 121, 115, 113, 119, 129, 126, 105, 152, 134, 127, 124, 132, 130, 143, 116, 122, 125, 133, 136, 117, 117, 115, 136, 129, 121, 132, 131, 129, 114, 116, 130, 126, 135, 130, 127, 116, 136, 129, 114, 136, 116, 120, 127, 122, 128, 133, 125, 120, 129, 133, 128, 125, 116, 106, 132, 119, 135, 121, 120, 150, 121, 135, 133, 110, 129, 115, 129, 101, 113, 113, 134, 112, 134, 120, 122, 127, 122, 121, 119, 123, 113, 130, 125, 128, 126, 130, 132, 123, 129, 124, 115, 126, 134, 127, 122, 125, 121, 114, 111, 120, 138, 121, 145, 121, 151, 124, 120, 133, 120, 138, 127, 106, 126, 114, 115, 118, 113, 136, 139, 121, 128, 129, 135, 124, 118, 119, 123, 124, 123, 121, 98, 129, 140, 123, 135, 121, 127, 138, 143, 134, 125, 125, 129, 136, 128, 108, 114, 117, 125, 136, 122, 127, 119, 133, 122, 114, 136, 137, 138, 130, 123, 103, 122, 121, 136, 132, 138, 125, 125, 155, 113, 110, 136, 126, 110, 135, 131, 110, 128, 107, 130, 120, 126, 134, 133, 127, 125, 120, 126, 123, 122, 120, 120, 125, 130, 127, 118, 117, 127, 119, 109, 113, 130, 137, 122, 119, 140, 149, 115, 130, 145, 122, 128, 125, 137, 125, 119, 116, 122, 99, 107, 124, 119, 141, 123, 124, 121, 135, 134, 129, 124, 124, 143, 121, 121, 103, 134, 121, 122, 121, 137, 126, 122, 113, 119, 113, 133, 124, 121, 135, 121, 123, 134, 136, 111, 127, 125, 122, 117, 142, 134, 121, 127, 134, 143, 123, 125, 122, 122, 133, 133, 132, 121, 106, 134, 111, 133, 128, 119, 129, 123, 110, 115, 114, 122, 121, 120, 112, 136, 125, 134, 124, 131, 117, 120, 130, 118, 118, 126, 129, 123, 125, 129, 128, 108, 133, 127, 122, 141, 120, 130, 130, 120, 115, 114, 134, 133, 113, 128, 118, 125, 134, 111, 132, 128, 129, 125, 143, 103, 123, 125, 115, 130, 118, 112, 119, 132, 133, 118, 121, 116, 141, 113, 124, 127, 121, 127, 122, 119, 142, 145, 138, 125, 119, 113, 121, 140, 129, 134, 111, 126, 120, 118, 124, 134, 129, 127, 120, 108, 126, 114, 127, 139, 137, 125, 131, 131, 112, 128, 148, 130, 126, 109, 122, 120, 140, 131, 116, 128, 121, 126, 122, 125, 152, 136, 131, 133, 116, 128, 163, 125, 123, 119, 136, 119, 112, 127, 125, 128, 127, 133, 118, 143, 106, 131, 116, 122, 132, 141, 129, 128, 116, 106, 134, 133, 148, 114, 112, 125, 134, 119, 126, 122, 127, 115, 131, 124, 117, 150, 119, 120, 138, 132, 124, 116, 134, 126, 130, 128, 136, 134, 135, 108, 125, 124, 142, 133, 114, 119, 128, 115, 143, 122, 110, 123, 108, 115, 114, 135, 111, 130, 113, 125, 132, 112, 110, 118, 125, 125, 114, 111, 145, 111, 115, 125, 127, 116, 119, 133, 125, 120, 116, 120, 119, 122, 140, 116, 128, 145, 114, 118, 128, 137, 146, 131, 134, 143, 112, 131, 105, 107, 126, 130, 132, 146, 123, 140, 124, 118, 119, 132, 119, 118, 115, 128, 121, 112, 103, 133, 120, 122, 132, 115, 126, 114, 131, 129, 114, 114, 127, 142, 119, 125, 130, 121, 122, 134, 122, 108, 135, 130, 151, 127, 128, 115, 129, 121, 146, 128, 123, 124, 116, 134, 133, 117, 127, 121, 123, 118, 112, 127, 130, 138, 133, 125, 129, 140, 125, 121, 120, 115, 117, 122, 114, 124, 124, 124, 120, 116, 109, 123, 134, 103, 137, 123, 134, 112, 117, 129, 144, 134, 124, 129, 128, 122, 115, 128, 128, 117, 127, 110, 126, 109, 128, 136, 111, 115, 126, 105, 126, 121, 126, 113, 124, 111, 118, 123, 128, 111, 101, 120, 119, 121, 135, 127, 130, 117, 139, 113, 117, 125, 119, 151, 124, 125, 121, 116, 130, 115, 99, 104, 133, 124, 116, 123, 138, 96, 129, 128, 138, 128, 133, 128, 130, 135, 123, 119, 123, 127, 124, 119, 124, 128, 119, 133, 125, 120, 104, 138, 141, 126, 134, 128, 145, 120, 130, 120, 119, 123, 124, 142, 128, 135, 141, 120, 127, 127, 132, 126, 111, 100, 126, 124, 133, 117, 133, 121, 126, 117, 125, 139, 125, 121, 125, 132, 127, 116, 134, 130, 128, 129, 120, 135, 116, 112, 150, 111, 129, 135, 141, 113, 138, 118, 119, 135, 125, 119, 134, 128, 137, 121, 125, 130, 106, 124, 115, 130, 138, 128, 141, 111, 143, 112, 117, 120, 117, 122, 128, 119, 113, 127, 142, 143, 134, 121, 131, 125, 137, 127, 145, 133, 116, 121, 127, 125, 115, 124, 130, 119, 128, 125, 129, 129, 116, 132, 119, 122, 119, 119, 127, 118, 121, 129, 128, 111, 144, 128, 113, 117, 129, 143, 127, 130, 131, 113, 118, 143, 111, 141, 132, 133, 124, 133, 119, 139, 130, 118, 116, 128, 122, 133, 139, 126, 125, 134, 113, 126, 123, 134, 123, 133, 129, 122, 128, 123, 135, 121, 134, 123, 122, 147, 154, 131, 122, 115, 130, 115, 146, 115, 124, 132, 120, 135, 127, 120, 133, 120, 126, 121, 110, 119, 134, 119, 130, 139, 129, 131, 135, 119, 135, 120, 116, 128, 124, 136, 130, 128, 141, 124, 132, 134, 112, 132, 125, 133, 134, 117, 131, 123, 116, 116, 130, 127, 125, 102, 125, 113, 131, 119, 117, 129, 114, 111, 111, 139, 122, 130, 132, 139, 120, 121, 134, 125, 134, 127, 125, 122, 122, 94, 121, 126, 127, 123, 123, 132, 136, 123, 121, 124, 110, 118, 107, 135, 137, 120, 127, 118, 128, 127, 131, 152, 135, 127, 137, 129, 112, 122, 122, 131, 112, 122, 121, 131, 101, 126, 119, 105, 122, 117, 128, 122, 123, 115, 123, 124, 114, 114, 142, 135, 132, 118, 123, 113, 128, 124, 128, 128, 127, 132, 130, 127, 134, 126, 137, 122, 136, 148, 106, 126, 128, 101, 139, 138, 133, 132, 129, 123, 134, 137, 115, 121, 141, 123, 138, 126, 109, 134, 135, 125, 119, 131, 120, 131, 116, 92, 123, 126, 126, 133, 123, 122, 109, 121, 123, 125, 134, 142, 122, 125, 122, 107, 125, 124, 129, 126, 117, 134, 134, 108, 121, 136, 133, 131, 128, 136, 139, 137, 129, 146, 134, 122, 119, 134, 128, 133, 121, 132, 151, 138, 118, 115, 128, 146, 141, 147, 138, 106, 148, 127, 132, 117, 130, 131, 130, 135, 115, 137, 121, 123, 130, 123, 130, 144, 136, 120, 116, 124, 120, 128, 131, 122, 134, 141, 119, 129, 126, 127, 127, 114, 131, 122, 141, 138, 113, 137, 138, 129, 125, 116, 116, 120, 135, 129, 135, 128, 133, 129, 126, 137, 128, 107, 128, 136, 118, 114, 106, 127, 127, 118, 109, 131, 123, 121, 134, 121, 118, 99, 121, 111, 136, 108, 130, 127, 144, 117, 125, 132, 130, 147, 147, 141, 139, 121, 141, 113, 131, 131, 145, 117, 117, 124, 121, 143, 113, 117, 130, 121, 144, 121, 126, 119, 114, 122, 129, 125, 128, 127, 117, 120, 139, 119, 119, 121, 134, 145, 133, 141, 120, 113, 138, 110, 122, 121, 131, 121, 123, 140, 125, 133, 126, 117, 127, 137, 134, 112, 136, 128, 119, 139, 131, 117, 118, 118, 127, 111, 116, 118, 115, 137, 116, 116, 129, 143, 128, 128, 112, 125, 162, 129, 135, 114, 118, 118, 107, 123, 124, 115, 119, 127, 153, 130, 126, 127, 122, 139, 108, 115, 106, 133, 128, 142, 106, 137, 129, 129, 147, 155, 143, 114, 119, 122, 134, 143, 122, 133, 130, 133, 145, 121, 139, 138, 138, 122, 106, 140, 129, 122, 108, 130, 117, 123, 113, 130, 122, 123, 103, 147, 124, 130, 126, 134, 142, 125, 140, 134, 120, 143, 134, 115, 114, 125, 151, 127, 117, 127, 129, 111, 124, 127, 124, 124, 124, 139, 113, 131, 118, 130, 125, 122, 127, 114, 110, 141, 129, 140, 115, 122, 120, 138, 130, 125, 114, 135, 113, 128, 130, 130, 143, 130, 121, 128, 116, 127, 139, 123, 143, 125, 135, 121, 111, 122, 132, 138, 125, 134, 114, 130, 128, 121, 122, 147, 117, 117, 132, 121, 117, 118, 110, 145, 123, 122, 132, 118, 120, 106, 121, 111, 112, 150, 131, 129, 118, 120, 133, 123, 138, 133, 131, 141, 120, 139, 138, 126, 124, 131, 136, 127, 119, 119, 128, 127, 129, 108, 120, 124, 123, 111, 137, 130, 129, 145, 122, 112, 134, 127, 136, 119, 117, 126, 137, 130, 137, 131, 136, 116, 127, 135, 131, 127, 136, 114, 122, 135, 126, 131, 127, 115, 117, 126, 112, 108, 126, 112, 122, 127, 145, 122, 133, 118, 123, 139, 126, 133, 136, 133, 123, 127, 108, 124, 117, 134, 131, 122, 126, 108, 113, 102, 104, 143, 134, 134, 120, 109, 113, 112, 122, 118, 126, 122, 133, 129, 110, 109, 121, 131, 118, 111, 111, 119, 132, 149, 135, 133, 117, 127, 114, 126, 122, 118, 114, 129, 139, 106, 126, 114, 122, 116, 112, 113, 126, 127, 130, 132, 115, 138, 113, 125, 129, 130, 134, 122, 117, 136, 133, 133, 112, 107, 118, 123, 132, 139, 143, 124, 139, 131, 127, 140, 113, 135, 141, 147, 123, 125, 146, 121, 115, 133, 131, 126, 118, 128, 119, 118, 105, 123, 125, 116, 127, 132, 134, 133, 128, 133, 133, 133, 130, 131, 127, 124, 138, 127, 123, 118, 130, 119, 132, 113, 126, 117, 126, 115, 144, 87, 117, 120, 140, 118, 127, 123, 156, 124, 111, 141, 127, 125, 122, 113, 127, 115, 131, 139, 95, 131, 139, 118, 127, 110, 139, 119, 134, 119, 114, 130, 133, 124, 124, 131, 116, 135, 139, 135, 130, 130, 110, 122, 120, 125, 125, 113, 118, 140, 118, 121, 147, 126, 126, 127, 114, 136, 128, 132, 107, 139, 138, 105, 126, 115, 120, 128, 126, 129, 123, 136, 124, 136, 142, 133, 131, 118, 123, 87, 107, 110, 103, 144, 115, 133, 135, 149, 120, 115, 121, 124, 123, 134, 137, 124, 139, 145, 122, 129, 115, 116, 132, 120, 135, 115, 126, 135, 118, 119, 134, 127, 120, 120, 116, 125, 109, 116, 109, 148, 118, 132, 120, 121, 139, 130, 118, 126, 132, 132, 120, 145, 122, 134, 137, 128, 134, 108, 121, 122, 121, 145, 126, 133, 111, 113, 112, 135, 141, 127, 141, 117, 120, 129, 127, 124, 116, 126, 120, 137, 131, 117, 119, 120, 111, 134, 133, 137, 123, 129, 123, 135, 123, 121, 113, 119, 133, 121, 113, 116, 157, 124, 123, 129, 120, 132, 124, 124, 130, 106, 128, 131, 130, 140, 134, 145, 119, 120, 132, 131, 122, 123, 128, 146, 129, 131, 106, 137, 114, 123, 116, 136, 112, 124, 127, 127, 126, 145, 119, 115, 126, 132, 134, 149, 131, 120, 142, 127, 115, 126, 120, 132, 138, 154, 138, 129, 142, 122, 118, 121, 108, 122, 129, 111, 122, 127, 137, 135, 122, 120, 134, 118, 113, 130, 127, 114, 112, 131, 136, 116, 135, 126, 142, 138, 127, 111, 148, 121, 141, 111, 133, 126, 105, 128, 140, 112, 127, 112, 121, 133, 105, 136, 118, 123, 125, 115, 133, 133, 127, 136, 142, 137, 134, 128, 126, 141, 131, 134, 117, 116, 112, 107, 129, 120, 112, 110, 124, 109, 130, 117, 121, 109, 119, 143, 121, 129, 126, 126, 120, 124, 111, 131, 132, 114, 112, 124, 129, 129, 134, 116, 118, 116, 131, 116, 131, 139, 133, 120, 113, 125, 123, 134, 139, 132, 125, 129, 117, 125, 125, 125, 122, 141, 130, 134, 129, 114, 121, 121, 123, 121, 148, 143, 124, 131, 129, 136, 140, 119, 145, 108, 122, 129, 130, 124, 135, 126, 144, 146, 122, 137, 121, 133, 133, 117, 113, 136, 132, 122, 121, 128, 129, 120, 114, 113, 116, 106, 129, 131, 124, 145, 117, 146, 123, 131, 115, 113, 146, 120, 112, 140, 131, 123, 116, 130, 137, 124, 131, 121, 125, 130, 116, 113, 117, 130, 119, 127, 109, 130, 123, 114, 118, 128, 129, 130, 141, 126, 129, 131, 136, 124, 117, 137, 123, 132, 122, 131, 130, 140, 115, 121, 140, 125, 117, 129, 151, 132, 128, 128, 118, 123, 124, 127, 117, 132, 119, 122, 124, 131, 127, 120, 124, 121, 123, 113, 136, 136, 122, 136, 119, 129, 124, 144, 131, 119, 128, 128, 129, 104, 120, 125, 113, 132, 120, 132, 118, 141, 124, 113, 124, 111, 127, 129, 125, 129, 118, 124, 85, 111, 120, 119, 116, 110, 127, 132, 139, 150, 134, 119, 126, 129, 118, 105, 117, 119, 137, 130, 131, 112, 133, 135, 117, 130, 120, 130, 118, 124, 122, 124, 110, 119, 133, 127, 131, 135, 135, 125, 120, 117, 113, 153, 121, 123, 141, 130, 105, 122, 129, 144, 123, 122, 117, 125, 141, 122, 138, 140, 124, 129, 126, 128, 125, 128, 125, 115, 118, 130, 125, 125, 124, 107, 124, 111, 120, 140, 101, 105, 131, 119, 136, 131, 120, 127, 138, 140, 159, 118, 107, 125, 124, 106, 127, 138, 128, 134, 130, 132, 116, 123, 131, 131, 129, 145, 132, 123, 139, 112, 124, 127, 129, 142, 121, 147, 103, 104, 150, 137, 149, 117, 113, 137, 122, 127, 110, 118, 116, 127, 124, 120, 119, 116, 148, 127, 113, 110, 118, 137, 139, 119, 140, 150, 128, 140, 117, 123, 134, 130, 120, 122, 118, 120, 129, 121, 111, 140, 118, 132, 121, 130, 125, 125, 119, 126, 113, 127, 138, 123, 122, 151, 108, 137, 121, 120, 112, 114, 119, 129, 126, 106, 128, 127, 115, 127, 121, 118, 138, 138, 116, 121, 120, 129, 122, 145, 121, 140, 119, 135, 109, 140, 139, 125, 133, 126, 121, 107, 137, 123, 121, 124, 137, 135, 128, 119, 140, 122, 113, 116, 125, 132, 118, 142, 110, 114, 136, 121, 122, 124, 145, 116, 109, 156, 119, 126, 106, 126, 116, 122, 135, 122, 129, 124, 113, 118, 132, 133, 112, 134, 133, 122, 131, 128, 134, 133, 136, 128, 128, 135, 127, 127, 128, 130, 117, 127, 123, 149, 113, 127, 107, 130, 128, 126, 128, 117, 113, 116, 139, 127, 132, 132, 138, 131, 127, 124, 124, 125, 109, 131, 129, 130, 127, 127, 124, 119, 147, 118, 130, 106, 143, 137, 114, 121, 140, 142, 116, 106, 119, 134, 122, 135, 113, 121, 123, 121, 118, 127, 131, 126, 136, 129, 123, 123, 129, 130, 128, 114, 130, 132, 111, 135, 134, 118, 127, 120, 126, 136, 110, 121, 129, 139, 118, 130, 131, 141, 127, 122, 119, 112, 103, 121, 112, 123, 129, 121, 127, 108, 115, 113, 130, 129, 125, 131, 107, 150, 124, 153, 131, 141, 119, 138, 115, 114, 107, 124, 119, 121, 133, 139, 128, 124, 131, 128, 133, 133, 133, 119, 127, 125, 124, 120, 137, 115, 123, 119, 138, 135, 104, 136, 128, 122, 130, 145, 126, 140, 137, 128, 146, 141, 140, 122, 106, 116, 127, 138, 129, 130, 123, 122, 123, 107, 118, 145, 125, 128, 132, 127, 124, 125, 125, 122, 143, 125, 110, 150, 127, 129, 140, 135, 111, 126, 119, 121, 109, 111, 130, 115, 111, 123, 134, 115, 126, 120, 137, 122, 115, 137, 132, 135, 127, 142, 114, 117, 127, 106, 128, 123, 141, 118, 127, 126, 102, 121, 116, 124, 129, 103, 119, 120, 118, 132, 113, 116, 137, 138, 127, 125, 112, 115, 142, 119, 130, 129, 115, 112, 126, 131, 119, 114, 110, 120, 126, 137, 115, 108, 115, 110, 122, 130, 124, 125, 111, 141, 148, 138, 128, 112, 136, 110, 140, 130, 121, 123, 121, 131, 112, 135, 112, 145, 131, 121, 119, 128, 112, 115, 131, 119, 116, 132, 134, 125, 121, 134, 147, 131, 123, 127, 108, 111, 119, 137, 130, 141, 127, 119, 137, 122, 137, 127, 136, 133, 130, 103, 123, 140, 115, 137, 128, 129, 128, 129, 144, 127, 146, 116, 126, 105, 135, 121, 125, 155, 123, 126, 135, 124, 124, 108, 127, 115, 117, 114, 124, 131, 118, 127, 136, 122, 120, 133, 138, 126, 126, 139, 105, 122, 127, 115, 138, 120, 119, 111, 112, 147, 130, 131, 137, 128, 117, 130, 129, 147, 107, 137, 136, 139, 111, 137, 113, 136, 136, 114, 130, 126, 115, 142, 136, 129, 131, 101, 123, 134, 113, 119, 125, 125, 122, 110, 132, 144, 132, 122, 119, 119, 122, 117, 129, 121, 134, 120, 106, 136, 106, 127, 138, 127, 125, 122, 146, 129, 117, 133, 128, 122, 114, 130, 117, 112, 110, 115, 120, 119, 127, 123, 122, 113, 128, 126, 135, 129, 131, 138, 123, 119, 121, 120, 122, 134, 129, 133, 121, 120, 128, 116, 118, 130, 133, 132, 130, 117, 127, 119, 114, 115, 142, 144, 114, 128, 122, 123, 126, 130, 122, 132, 127, 125, 100, 134, 127, 131, 126, 115, 120, 132, 128, 130, 136, 141, 139, 120, 118, 110, 129, 139, 128, 141, 127, 112, 129, 128, 125, 116, 105, 117, 122, 125, 156, 126, 118, 124, 136, 144, 118, 124, 135, 129, 132, 124, 125, 130, 127, 125, 111, 127, 118, 127, 135, 114, 123, 144, 115, 126, 115, 134, 98, 127, 131, 116, 143, 127, 123, 125, 138, 129, 127, 121, 149, 122, 133, 133, 113, 118, 122, 124, 136, 129, 115, 133, 137, 125, 128, 123, 135, 121, 122, 121, 127, 119, 124, 112, 135, 138, 129, 119, 126, 126, 124, 140, 130, 105, 107, 133, 132, 124, 136, 115, 133, 123, 133, 139, 127, 139, 126, 123, 115, 108, 136, 111, 110, 114, 131, 125, 142, 129, 123, 125, 135, 126, 123, 132, 116, 114, 140, 126, 126, 128, 125, 125, 138, 145, 128, 134, 127, 123, 111, 128, 135, 132, 136, 134, 130, 134, 122, 119, 149, 108, 107, 130, 127, 130, 113, 129, 118, 126, 135, 119, 121, 122, 149, 136, 134, 134, 119, 123, 121, 116, 125, 118, 131, 132, 122, 118, 128, 138, 131, 139, 128, 134, 139, 128, 127, 112, 120, 133, 130, 118, 133, 113, 108, 125, 120, 112, 126, 138, 141, 112, 127, 117, 122, 128, 124, 132, 128, 116, 117, 107, 118, 122, 105, 114, 124, 115, 116, 127, 124, 127, 141, 121, 128, 123, 143, 130, 122, 123, 135, 147, 114, 117, 116, 108, 127, 131, 139, 128, 117, 122, 136, 128, 141, 123, 121, 133, 108, 123, 148, 114, 120, 132, 108, 128, 126, 122, 121, 132, 122, 141, 148, 129, 92, 119, 123, 124, 144, 113, 142, 131, 117, 114, 125, 135, 125, 131, 127, 142, 127, 151, 125, 125, 128, 126, 124, 132, 135, 131, 140, 127, 150, 130, 128, 130, 117, 126, 124, 114, 139, 119, 121, 137, 114, 116, 103, 135, 120, 135, 150, 123, 132, 140, 137, 127, 119, 129, 132, 111, 137, 138, 146, 110, 136, 126, 133, 114, 111, 136, 106, 115, 133, 122, 135, 129, 132, 127, 125, 125, 114, 141, 132, 105, 121, 135, 134, 142, 138, 138, 104, 117, 120, 119, 130, 126, 120, 117, 108, 129, 127, 141, 143, 119, 139, 153, 114, 122, 132, 116, 122, 119, 135, 128, 128, 124, 131, 126, 121, 115, 139, 110, 141, 126, 126, 113, 116, 116, 120, 126, 120, 131, 122, 114, 141, 103, 123, 127, 117, 132, 132, 138, 115, 102, 130, 128, 127, 135, 121, 133, 135, 135, 134, 112, 118, 110, 126, 143, 134, 107, 123, 134, 139, 145, 116, 146, 123, 117, 125, 120, 137, 138, 128, 123, 122, 139, 123, 134, 117, 111, 130, 112, 118, 131, 121, 131, 130, 125, 115, 130, 149, 117, 128, 125, 104, 142, 113, 101, 107, 121, 117, 131, 122, 144, 124, 129, 121, 139, 125, 112, 150, 123, 118, 119, 128, 109, 118, 128, 135, 129, 116, 101, 124, 122, 105, 133, 137, 138, 147, 115, 115, 120, 124, 117, 142, 126, 129, 128, 135, 133, 116, 129, 126, 132, 120, 122, 112, 117, 125, 135, 128, 125, 125, 127, 123, 118, 122, 112, 120, 119, 129, 139, 131, 130, 119, 125, 121, 102, 131, 135, 129, 109, 116, 142, 104, 136, 130, 127, 119, 121, 126, 121, 133, 126, 160, 122, 109, 124, 128, 108, 116, 144, 133, 125, 158, 135, 126, 120, 135, 146, 128, 124, 132, 113, 129, 134, 137, 109, 116, 125, 129, 124, 141, 120, 124, 133, 124, 123, 129, 121, 131, 110, 117, 137, 128, 136, 143, 149, 114, 129, 129, 127, 105, 143, 102, 109, 135, 121, 131, 126, 126, 132, 111, 124, 117, 143, 116, 118, 134, 145, 120, 135, 118, 138, 110, 138, 135, 129, 126, 136, 127, 125, 153, 113, 138, 123, 125, 119, 131, 136, 122, 132, 126, 110, 107, 118, 127, 134, 128, 111, 121, 120, 136, 106, 138, 138, 113, 130, 113, 109, 103, 129, 125, 127, 132, 139, 112, 126, 100, 104, 131, 126, 123, 116, 138, 126, 112, 115, 130, 118, 120, 116, 129, 108, 116, 132, 119, 111, 127, 135, 118, 129, 127, 137, 127, 109, 126, 114, 135, 121, 135, 119, 112, 132, 121, 139, 138, 128, 127, 120, 110, 114, 124, 123, 130, 121, 139, 154, 113, 152, 140, 120, 123, 114, 110, 125, 123, 133, 140, 116, 117, 113, 126, 125, 126, 130, 116, 118, 143, 129, 122, 136, 147, 120, 125, 108, 124, 119, 127, 141, 145, 126, 109, 111, 131, 119, 148, 122, 126, 127, 110, 114, 122, 129, 117, 135, 126, 112, 108, 123, 125, 125, 107, 105, 119, 127, 130, 114, 122, 134, 130, 137, 125, 118, 106, 154, 147, 136, 122, 136, 134, 120, 126, 123, 143, 143, 130, 133, 127, 115, 130, 140, 114, 115, 131, 133, 133, 129, 115, 121, 120, 129, 145, 133, 149, 103, 128, 107, 113, 137, 124, 127, 116, 124, 133, 126, 132, 127, 132, 118, 138, 129, 137, 132, 138, 131, 112, 130, 117, 118, 104, 143, 108, 138, 116, 142, 122, 128, 162, 118, 117, 139, 113, 130, 122, 140, 119, 125, 115, 105, 136, 132, 120, 136, 135, 121, 118, 132, 135, 115, 129, 131, 117, 112, 129, 120, 149, 137, 141, 121, 121, 126, 133, 131, 135, 130, 131, 127, 120, 102, 136, 128, 129, 123, 135, 127, 129, 122, 126, 125, 132, 126, 126, 113, 131, 124, 142, 120, 128, 109, 126, 124, 133, 145, 139, 124, 151, 130, 137, 141, 110, 136, 128, 129, 128, 154, 114, 123, 131, 130, 127, 124, 135, 141, 142, 124, 110, 115, 114, 135, 120, 103, 139, 122, 143, 111, 147, 118, 117, 107, 122, 124, 125, 116, 97, 111, 140, 121, 119, 128, 118, 129, 127, 144, 76, 119, 136, 132, 128, 148, 120, 115, 122, 124, 127, 117, 127, 129, 123, 123, 128, 131, 114, 136, 129, 126, 148, 127, 121, 169, 117, 115, 119, 108, 131, 120, 127, 101, 135, 132, 116, 126, 127, 139, 122, 124, 123, 120, 133, 135, 126, 142, 127, 133, 106, 136, 129, 122, 130, 146, 125, 123, 128, 130, 129, 110, 129, 115, 131, 123, 122, 125, 118, 113, 131, 116, 138, 121, 130, 135, 135, 137, 130, 131, 138, 122, 123, 117, 126, 110, 139, 138, 121, 116, 122, 104, 129, 140, 121, 108, 129, 122, 113, 127, 110, 148, 131, 138, 121, 129, 99, 106, 130, 119, 99, 127, 133, 115, 135, 113, 135, 137, 135, 108, 120, 122, 110, 136, 109, 139, 119, 110, 142, 125, 136, 124, 126, 126, 118, 128, 133, 130, 133, 120, 132, 124, 122, 123, 126, 136, 117, 128, 121, 125, 111, 105, 103, 139, 139, 143, 147, 136, 145, 133, 120, 113, 126, 103, 123, 111, 114, 129, 126, 108, 130, 118, 127, 128, 130, 139, 124, 139, 114, 107, 134, 112, 127, 111, 115, 113, 122, 129, 103, 130, 124, 127, 128, 139, 135, 118, 117, 124, 117, 148, 140, 134, 110, 114, 131, 121, 130, 123, 125, 106, 139, 134, 124, 118, 119, 123, 123, 139, 134, 113, 109, 123, 130, 112, 117, 109, 125, 122, 123, 132, 128, 133, 124, 119, 101, 131, 135, 139, 103, 129, 133, 146, 113, 120, 124, 128, 129, 125, 138, 118, 121, 141, 128, 134, 124, 121, 127, 117, 117, 117, 128, 122, 114, 139, 125, 125, 118, 122, 110, 123, 121, 115, 132, 127, 115, 134, 118, 124, 133, 140, 112, 137, 107, 118, 115, 139, 113, 119, 120, 141, 131, 127, 117, 131, 127, 127, 130, 112, 144, 130, 137, 133, 143, 118, 81, 116, 124, 103, 129, 118, 126, 119, 130, 119, 133, 117, 113, 142, 110, 125, 125, 110, 115, 121, 119, 107, 104, 106, 121, 106, 124, 124, 119, 110, 132, 104, 124, 118, 132, 140, 120, 116, 115, 116, 121, 122, 124, 109, 115, 128, 136, 147, 115, 101, 141, 128, 122, 118, 120, 141, 113, 99, 104, 123, 143, 131, 108, 129, 106, 132, 143, 138, 116, 133, 125, 113, 149, 150, 121, 128, 129, 136, 127, 121, 132, 124, 126, 128, 120, 126, 128, 123, 120, 133, 114, 120, 135, 150, 125, 127, 134, 138, 154, 141, 133, 133, 131, 130, 122, 149, 116, 127, 118, 137, 131, 120, 126, 122, 109, 110, 137, 149, 120, 138, 129, 131, 124, 109, 133, 112, 143, 125, 121, 111, 111, 128, 131, 133, 125, 112, 113, 132, 136, 135, 126, 122, 112, 135, 131, 125, 133, 142, 106, 111, 129, 118, 148, 139, 127, 116, 123, 118, 110, 115, 146, 120, 136, 124, 122, 131, 122, 122, 132, 124, 135, 112, 129, 132, 121, 132, 137, 136, 107, 119, 151, 113, 116, 126, 116, 135, 142, 132, 121, 122, 128, 127, 133, 94, 118, 143, 126, 123, 126, 135, 124, 131, 127, 125, 132, 112, 124, 113, 114, 131, 129, 113, 122, 138, 128, 131, 119, 135, 121, 122, 138, 124, 137, 131, 132, 121, 130, 132, 129, 118, 121, 119, 114, 125, 128, 126, 117, 123, 137, 140, 136, 127, 115, 126, 128, 119, 136, 127, 126, 124, 137, 125, 126, 119, 125, 131, 128, 115, 129, 139, 124, 123, 108, 125, 134, 119, 120, 128, 115, 140, 126, 103, 131, 133, 124, 133, 118, 124, 117, 122, 139, 133, 126, 128, 117, 145, 128, 116, 141, 136, 124, 123, 136, 121, 128, 124, 126, 116, 117, 123, 117, 126, 116, 115, 98, 122, 133, 134, 135, 119, 125, 124, 122, 123, 114, 136, 129, 131, 121, 112, 120, 135, 119, 107, 127, 102, 128, 124, 129, 129, 127, 147, 127, 115, 130, 112, 127, 130, 112, 107, 142, 113, 127, 130, 136, 117, 127, 124, 117, 132, 117, 141, 119, 132, 118, 134, 127, 131, 117, 114, 115, 127, 134, 123, 118, 127, 131, 119, 127, 120, 110, 150, 136, 128, 135, 144, 132, 128, 110, 126, 121, 125, 131, 127, 157, 119, 103, 116, 116, 116, 111, 137, 126, 129, 133, 142, 126, 126, 131, 118, 126, 121, 132, 125, 122, 111, 121, 123, 126, 117, 117, 128, 124, 120, 132, 132, 124, 130, 135, 127, 122, 121, 124, 140, 117, 126, 112, 137, 124, 119, 139, 115, 135, 134, 120, 129, 120, 118, 140, 120, 129, 130, 130, 135, 131, 128, 128, 139, 115, 142, 117, 117, 133, 121, 127, 118, 127, 141, 121, 128, 123, 130, 136, 130, 126, 114, 128, 120, 109, 96, 130, 127, 110, 136, 116, 112, 115, 102, 123, 122, 153, 130, 111, 125, 119, 127, 122, 125, 138, 133, 132, 99, 123, 117, 122, 134, 138, 129, 141, 121, 129, 129, 134, 130, 129, 133, 125, 115, 123, 122, 144, 120, 143, 130, 127, 127, 122, 128, 116, 123, 148, 126, 136, 126, 118, 129, 111, 105, 107, 123, 111, 117, 121, 109, 126, 116, 131, 121, 119, 114, 137, 116, 124, 124, 131, 103, 117, 113, 118, 119, 108, 127, 121, 119, 131, 143, 138, 125, 134, 108, 126, 138, 141, 129, 120, 124, 133, 134, 121, 114, 118, 124, 112, 116, 114, 129, 136, 115, 125, 141, 132, 139, 127, 139, 143, 114, 150, 118, 122, 114, 113, 118, 130, 131, 123, 149, 126, 125, 138, 114, 138, 129, 141, 125, 129, 149, 111, 108, 128, 118, 137, 127, 115, 122, 116, 105, 137, 132, 125, 129, 116, 108, 117, 124, 114, 139, 145, 117, 126, 123, 137, 115, 127, 120, 118, 111, 120, 132, 122, 136, 126, 134, 126, 120, 131, 115, 130, 130, 125, 122, 125, 164, 115, 113, 140, 145, 120, 125, 116, 130, 144, 120, 148, 137, 133, 150, 114, 146, 123, 132, 130, 109, 110, 102, 120, 125, 125, 120, 131, 115, 132, 136, 116, 134, 120, 121, 119, 125, 129, 131, 115, 143, 121, 143, 148, 128, 145, 146, 129, 130, 122, 134, 111, 100, 117, 145, 123, 152, 138, 131, 117, 130, 134, 119, 113, 122, 121, 137, 122, 109, 84, 125, 131, 140, 112, 127, 112, 135, 133, 138, 109, 124, 137, 121, 130, 118, 135, 123, 106, 108, 131, 121, 134, 127, 145, 127, 145, 123, 123, 110, 119, 159, 103, 125, 119, 119, 146, 97, 119, 123, 139, 134, 130, 113, 121, 122, 119, 92, 128, 121, 117, 123, 116, 106, 99, 133, 128, 115, 130, 117, 136, 134, 125, 134, 132, 124, 119, 132, 115, 132, 113, 129, 120, 118, 129, 131, 121, 118, 134, 111, 128, 126, 132, 112, 131, 126, 120, 140, 117, 125, 125, 116, 159, 110, 97, 135, 121, 147, 104, 119, 133, 107, 112, 126, 146, 120, 122, 133, 120, 114, 134, 139, 121, 125, 116, 128, 134, 132, 140, 120, 115, 142, 102, 123, 115, 122, 109, 120, 101, 133, 134, 109, 116, 129, 138, 149, 132, 115, 121, 128, 125, 141, 134, 122, 132, 139, 126, 117, 129, 133, 112, 118, 119, 124, 110, 142, 128, 119, 134, 95, 113, 126, 114, 121, 120, 120, 119, 132, 123, 148, 124, 121, 134, 143, 133, 127, 143, 117, 126, 126, 117, 130, 114, 122, 150, 129, 123, 128, 124, 129, 134, 134, 142, 122, 124, 115, 145, 119, 119, 139, 113, 117, 130, 129, 135, 111, 122, 134, 129, 120, 124, 129, 133, 116, 126, 117, 125, 131, 121, 128, 131, 111, 129, 128, 130, 120, 147, 144, 127, 126, 124, 130, 130, 114, 120, 126, 142, 138, 139, 132, 138, 119, 128, 123, 130, 124, 120, 122, 123, 121, 129, 125, 129, 118, 115, 126, 130, 135, 119, 149, 121, 122, 142, 116, 122, 132, 126, 123, 130, 135, 116, 133, 136, 130, 128, 92, 130, 126, 122, 119, 131, 108, 133, 142, 118, 119, 118, 110, 114, 143, 119, 123, 136, 118, 130, 119, 116, 119, 113, 117, 110, 146, 127, 119, 126, 122, 122, 121, 114, 140, 121, 115, 114, 125, 119, 126, 125, 113, 118, 118, 136, 128, 137, 118, 128, 128, 109, 140, 132, 110, 131, 117, 123, 124, 124, 113, 125, 138, 142, 122, 130, 126, 141, 119, 126, 149, 109, 102, 109, 131, 121, 113, 131, 119, 140, 137, 106, 116, 132, 137, 104, 145, 112, 135, 131, 121, 119, 116, 128, 125, 142, 125, 135, 124, 118, 126, 107, 136, 107, 131, 121, 100, 105, 124, 128, 126, 130, 114, 115, 135, 139, 132, 154, 126, 133, 120, 121, 129, 131, 118, 127, 154, 122, 124, 123, 112, 130, 132, 134, 125, 119, 112, 122, 116, 150, 142, 112, 135, 131, 105, 105, 141, 107, 143, 123, 112, 132, 136, 123, 137, 108, 127, 112, 127, 116, 121, 128, 132, 130, 133, 120, 126, 122, 132, 132, 116, 129, 119, 123, 133, 124, 101, 117, 127, 138, 120, 133, 130, 144, 105, 129, 132, 121, 112, 142, 127, 141, 132, 126, 123, 107, 118, 122, 134, 149, 119, 124, 130, 124, 108, 127, 124, 104, 111, 115, 135, 131, 135, 121, 109, 133, 124, 131, 134, 136, 125, 135, 149, 116, 148, 137, 128, 111, 122, 124, 118, 126, 131, 145, 121, 133, 119, 127, 121, 141, 126, 123, 113, 153, 122, 117, 124, 120, 131, 144, 123, 106, 122, 128, 129, 114, 124, 112, 139, 123, 149, 130, 110, 129, 125, 119, 124, 117, 135, 127, 149, 130, 114, 126, 134, 117, 134, 123, 133, 117, 126, 141, 123, 116, 133, 126, 122, 152, 121, 117, 120, 130, 130, 128, 130, 128, 130, 130, 118, 104, 123, 114, 137, 126, 135, 117, 129, 127, 124, 132, 107, 118, 121, 137, 152, 127, 116, 137, 140, 114, 117, 111, 126, 109, 136, 129, 140, 142, 113, 144, 124, 130, 144, 124, 115, 105, 122, 114, 122, 104, 125, 117, 124, 123, 114, 131, 114, 133, 135, 117, 137, 134, 105, 144, 103, 144, 127, 153, 133, 134, 137, 149, 123, 104, 117, 108, 109, 115, 130, 135, 120, 118, 122, 143, 136, 130, 135, 131, 118, 120, 116, 117, 116, 113, 118, 132, 119, 147, 113, 118, 132, 129, 124, 105, 136, 132, 131, 108, 112, 105, 111, 109, 124, 115, 132, 117, 125, 129, 141, 119, 108, 125, 122, 121, 140, 104, 111, 130, 131, 114, 137, 129, 132, 139, 137, 129, 127, 122, 125, 124, 127, 134, 129, 109, 120, 124, 120, 128, 141, 118, 104, 123, 109, 133, 127, 125, 131, 101, 126, 126, 109, 116, 137, 125, 133, 136, 129, 116, 127, 131, 125, 106, 127, 110, 120, 132, 125, 99, 121, 128, 121, 107, 117, 111, 117, 134, 117, 105, 129, 121, 117, 112, 124, 137, 115, 123, 126, 113, 122, 142, 107, 143, 127, 125, 145, 120, 124, 123, 140, 133, 128, 127, 106, 126, 150, 128, 121, 140, 136, 134, 114, 137, 128, 125, 112, 132, 114, 105, 135, 108, 117, 117, 132, 121, 114, 113, 125, 134, 121, 103, 115, 136, 124, 125, 129, 115, 126, 132, 136, 132, 128, 119, 100, 134, 126, 122, 134, 125, 146, 118, 115, 115, 125, 114, 128, 128, 121, 126, 132, 144, 118, 126, 134, 146, 136, 127, 141, 120, 137, 124, 139, 116, 135, 120, 115, 119, 113, 114, 125, 135, 119, 138, 124, 107, 138, 98, 130, 113, 143, 139, 113, 116, 124, 124, 133, 126, 119, 131, 112, 113, 119, 118, 134, 107, 122, 132, 132, 127, 125, 123, 101, 128, 137, 145, 124, 100, 121, 120, 132, 129, 126, 122, 138, 134, 105, 103, 140, 109, 127, 128, 132, 134, 128, 118, 138, 141, 129, 138, 104, 146, 126, 106, 155, 115, 139, 133, 128, 107, 125, 121, 139, 111, 141, 139, 128, 130, 105, 130, 123, 127, 122, 132, 137, 108, 130, 135, 119, 128, 120, 136, 111, 129, 131, 127, 128, 130, 130, 118, 125, 124, 131, 121, 116, 125, 133, 110, 137, 113, 125, 119, 136, 127, 122, 117, 140, 124, 103, 128, 123, 113, 124, 131, 118, 130, 148, 113, 122, 154, 121, 117, 130, 124, 129, 125, 111, 131, 114, 132, 115, 125, 125, 128, 109, 116, 122, 121, 117, 127, 133, 133, 121, 114, 135, 117, 134, 122, 142, 138, 120, 127, 136, 110, 127, 133, 107, 123, 116, 135, 152, 146, 140, 128, 114, 108, 137, 119, 116, 129, 134, 122, 120, 129, 134, 121, 121, 135, 114, 122, 128, 133, 114, 139, 120, 136, 115, 131, 123, 121, 149, 119, 104, 138, 124, 123, 102, 120, 130, 117, 131, 116, 140, 132, 101, 112, 146, 126, 132, 122, 150, 118, 130, 134, 115, 119, 131, 132, 137, 127, 111, 135, 124, 130, 128, 129, 149, 124, 124, 106, 138, 147, 135, 140, 136, 106, 130, 120, 128, 144, 126, 137, 145, 124, 124, 116, 139, 130, 124, 121, 124, 127, 126, 122, 145, 117, 127, 128, 125, 138, 122, 127, 135, 128, 119, 115, 122, 130, 123, 133, 134, 123, 142, 140, 121, 112, 125, 144, 129, 136, 135, 139, 113, 124, 128, 124, 125, 118, 127, 136, 118, 125, 118, 127, 121, 124, 119, 129, 127, 105, 113, 128, 125, 141, 114, 130, 144, 142, 146, 137, 122, 117, 118, 140, 110, 133, 127, 140, 127, 110, 121, 115, 120, 140, 142, 119, 105, 122, 125, 132, 129, 138, 115, 128, 128, 124, 112, 118, 139, 108, 126, 129, 122, 126, 103, 121, 125, 144, 126, 126, 128, 123, 136, 112, 127, 125, 125, 134, 132, 129, 120, 143, 129, 120, 129, 118, 118, 143, 125, 118, 99, 126, 105, 123, 103, 117, 116, 118, 132, 122, 120, 141, 131, 124, 129, 137, 131, 118, 122, 121, 109, 133, 112, 114, 120, 145, 152, 118, 117, 121, 134, 137, 126, 120, 139, 123, 116, 125, 126, 112, 131, 122, 128, 145, 126, 139, 112, 122, 111, 119, 118, 131, 126, 115, 132, 119, 110, 114, 122, 127, 120, 134, 124, 117, 131, 118, 128, 120, 133, 123, 126, 131, 147, 135, 134, 134, 116, 139, 121, 112, 133, 126, 135, 139, 129, 112, 122, 126, 121, 119, 132, 132, 113, 136, 128, 124, 117, 133, 158, 133, 133, 112, 157, 140, 113, 123, 129, 132, 146, 129, 140, 120, 111, 122, 137, 129, 116, 119, 137, 142, 141, 113, 124, 137, 116, 127, 122, 125, 125, 146, 126, 127, 144, 124, 135, 130, 138, 117, 145, 105, 134, 124, 130, 131, 121, 134, 128, 122, 134, 113, 139, 114, 123, 146, 127, 112, 108, 143, 113, 125, 122, 120, 120, 126, 125, 121, 128, 129, 136, 120, 108, 116, 139, 126, 121, 125, 141, 137, 122, 132, 127, 107, 126, 122, 120, 114, 120, 131, 115, 100, 122, 137, 115, 124, 125, 129, 123, 130, 132, 132, 133, 141, 138, 139, 123, 136, 139, 119, 133, 132, 118, 122, 133, 120, 118, 126, 120, 118, 126, 110, 121, 131, 114, 115, 121, 124, 117, 121, 111, 140, 111, 111, 122, 116, 125, 134, 122, 133, 128, 123, 131, 128, 119, 124, 128, 128, 132, 126, 160, 123, 116, 126, 129, 133, 129, 141, 132, 123, 122, 131, 114, 130, 124, 119, 137, 125, 134, 118, 111, 122, 111, 137, 106, 131, 107, 127, 131, 110, 113, 142, 123, 129, 127, 125, 122, 130, 122, 134, 113, 122, 110, 108, 130, 121, 110, 119, 128, 113, 144, 126, 126, 134, 118, 121, 141, 117, 139, 138, 127, 116, 130, 118, 129, 126, 117, 140, 134, 114, 124, 131, 118, 120, 130, 126, 122, 117, 100, 124, 131, 126, 123, 122, 118, 138, 123, 126, 119, 121, 115, 131, 129, 133, 125, 129, 141, 138, 118, 125, 121, 140, 135, 136, 112, 115, 125, 120, 130, 139, 107, 116, 122, 135, 140, 111, 127, 127, 127, 128, 147, 109, 150, 135, 111, 119, 134, 137, 129, 126, 138, 141, 130, 123, 125, 138, 143, 114, 133, 130, 129, 104, 141, 119, 141, 121, 108, 114, 130, 121, 123, 110, 113, 120, 119, 127, 133, 133, 127, 122, 127, 124, 119, 138, 114, 140, 124, 127, 115, 133, 122, 116, 114, 122, 132, 105, 134, 133, 130, 122, 138, 138, 153, 124, 138, 112, 128, 135, 129, 123, 126, 124, 113, 131, 115, 101, 113, 128, 122, 112, 121, 111, 105, 112, 127, 119, 107, 122, 139, 107, 126, 136, 143, 118, 131, 119, 134, 136, 134, 120, 119, 134, 147, 135, 122, 110, 130, 129, 136, 131, 129, 113, 119, 122, 117, 115, 118, 150, 119, 129, 140, 127, 134, 127, 143, 131, 109, 116, 124, 140, 121, 127, 112, 113, 113, 138, 124, 126, 131, 134, 126, 129, 126, 108, 113, 122, 115, 120, 140, 134, 140, 119, 138, 113, 123, 125, 135, 132, 112, 114, 113, 119, 131, 124, 123, 115, 116, 114, 119, 142, 117, 121, 125, 121, 120, 142, 122, 129, 93, 114, 136, 131, 123, 108, 141, 140, 95, 120, 125, 149, 125, 96, 132, 125, 127, 114, 100, 121, 121, 128, 137, 128, 149, 129, 129, 125, 115, 132, 125, 124, 142, 100, 123, 135, 134, 135, 137, 112, 120, 115, 105, 125, 129, 122, 126, 129, 117, 122, 127, 123, 122, 97, 134, 120, 115, 126, 116, 136, 123, 128, 114, 118, 125, 138, 133, 123, 134, 140, 125, 145, 111, 119, 120, 140, 133, 144, 125, 126, 119, 138, 130, 134, 133, 115, 116, 123, 120, 114, 116, 112, 119, 134, 130, 127, 116, 125, 138, 115, 117, 121, 141, 113, 129, 117, 134, 128, 139, 134, 114, 117, 127, 150, 129, 149, 139, 107, 129, 121, 133, 133, 123, 135, 126, 130, 143, 121, 122, 113, 140, 140, 120, 139, 130, 126, 133, 122, 124, 139, 124, 122, 113, 130, 128, 142, 141, 128, 132, 147, 120, 127, 127, 112, 119, 123, 133, 138, 126, 95, 117, 136, 117, 113, 124, 121, 121, 135, 128, 127, 125, 111, 126, 143, 127, 133, 138, 131, 150, 137, 126, 124, 128, 123, 123, 138, 113, 126, 142, 127, 118, 124, 137, 118, 125, 123, 128, 146, 119, 120, 142, 121, 131, 132, 114, 158, 108, 111, 136, 161, 133, 150, 124, 122, 113, 137, 135, 140, 112, 122, 118, 116, 140, 125, 127, 124, 109, 130, 116, 136, 123, 113, 141, 120, 120, 139, 110, 127, 128, 129, 116, 115, 123, 118, 129, 127, 140, 126, 132, 117, 118, 114, 111, 113, 133, 138, 110, 140, 106, 110, 129, 123, 120, 105, 139, 106, 112, 119, 119, 104, 114, 149, 136, 103, 136, 122, 120, 120, 131, 122, 116, 128, 120, 126, 118, 155, 111, 119, 113, 130, 118, 129, 130, 109, 145, 134, 127, 114, 133, 136, 127, 121, 133, 114, 126, 120, 118, 120, 99, 117, 131, 121, 137, 125, 116, 122, 110, 145, 127, 119, 125, 123, 111, 146, 116, 135, 130, 126, 104, 116, 143, 139, 127, 133, 119, 133, 130, 129, 118, 113, 140, 127, 135, 121, 119, 128, 119, 128, 110, 146, 123, 124, 127, 132, 119, 136, 129, 132, 117, 115, 111, 128, 138, 112, 118, 119, 124, 131, 128, 120, 104, 129, 124, 122, 122, 122, 115, 121, 116, 121, 135, 130, 112, 132, 124, 130, 126, 125, 122, 132, 120, 129, 134, 94, 111, 114, 127, 119, 113, 122, 136, 101, 155, 131, 116, 141, 125, 105, 110, 105, 126, 121, 112, 132, 120, 132, 142, 121, 123, 138, 115, 120, 113, 120, 109, 120, 143, 121, 132, 127, 116, 131, 148, 124, 125, 119, 123, 114, 122, 126, 114, 144, 125, 132, 122, 125, 122, 107, 118, 130, 111, 132, 127, 124, 120, 120, 130, 137, 131, 117, 135, 125, 138, 121, 131, 98, 116, 149, 114, 133, 119, 133, 121, 125, 118, 128, 129, 117, 136, 124, 126, 113, 152, 124, 124, 112, 132, 121, 143, 130, 120, 124, 136, 140, 118, 128, 132, 116, 144, 137, 123, 124, 115, 126, 129, 121, 125, 132, 121, 114, 132, 131, 133, 130, 119, 125, 114, 118, 127, 113, 132, 84, 125, 109, 102, 126, 127, 112, 119, 137, 124, 149, 124, 134, 108, 133, 117, 120, 136, 113, 144, 120, 110, 113, 119, 128, 127, 125, 121, 113, 123, 133, 119, 116, 131, 124, 127, 143, 138, 132, 125, 124, 126, 140, 122, 111, 124, 140, 141, 126, 118, 138, 119, 117, 133, 135, 124, 112, 113, 118, 124, 117, 112, 143, 128, 113, 106, 114, 113, 113, 135, 141, 120, 130, 156, 107, 141, 120, 127, 127, 117, 98, 108, 123, 132, 122, 127, 131, 120, 135, 108, 140, 133, 122, 113, 124, 116, 124, 116, 117, 111, 131, 118, 132, 134, 120, 139, 133, 124, 123, 134, 135, 154, 127, 136, 138, 125, 132, 123, 122, 128, 131, 132, 129, 130, 115, 110, 110, 132, 115, 118, 124, 136, 128, 149, 141, 129, 129, 128, 129, 127, 116, 125, 115, 138, 126, 136, 140, 121, 127, 125, 118, 127, 123, 133, 103, 132, 123, 127, 123, 146, 132, 130, 104, 123, 125, 114, 116, 131, 119, 114, 116, 145, 140, 114, 103, 141, 125, 131, 129, 154, 123, 137, 95, 128, 109, 122, 116, 119, 123, 121, 114, 136, 137, 123, 110, 140, 131, 118, 139, 141, 123, 131, 140, 132, 134, 116, 136, 131, 128, 115, 122, 110, 129, 123, 131, 117, 126, 129, 133, 139, 130, 127, 127, 127, 136, 127, 108, 120, 116, 126, 122, 128, 147, 137, 99, 116, 110, 136, 124, 129, 131, 132, 135, 121, 115, 108, 119, 149, 106, 108, 104, 118, 130, 121, 123, 114, 104, 120, 120, 109, 129, 132, 115, 114, 127, 129, 131, 125, 123, 127, 104, 121, 132, 134, 110, 110, 132, 122, 130, 134, 130, 140, 126, 128, 116, 130, 139, 111, 119, 142, 125, 117, 130, 145, 108, 127, 115, 137, 133, 136, 110, 125, 126, 115, 129, 122, 116, 134, 124, 131, 141, 141, 110, 129, 124, 132, 119, 120, 146, 138, 119, 135, 145, 116, 133, 168, 130, 130, 132, 116, 122, 119, 108, 135, 112, 121, 121, 126, 127, 148, 104, 148, 122, 130, 121, 132, 135, 107, 111, 117, 133, 116, 112, 120, 119, 119, 127, 121, 153, 111, 117, 121, 120, 114, 137, 128, 133, 136, 125, 129, 135, 128, 110, 136, 121, 143, 137, 111, 122, 127, 112, 125, 139, 125, 110, 137, 129, 125, 129, 123, 141, 124, 130, 131, 123, 126, 122, 130, 107, 137, 128, 124, 121, 128, 122, 115, 127, 143, 136, 129, 128, 131, 110, 125, 113, 128, 110, 115, 125, 108, 115, 115, 127, 128, 130, 115, 103, 133, 132, 119, 116, 129, 113, 130, 119, 114, 120, 133, 125, 140, 133, 132, 129, 133, 136, 120, 132, 157, 127, 136, 134, 134, 118, 127, 131, 126, 118, 132, 124, 126, 121, 130, 129, 128, 118, 135, 137, 141, 130, 114, 116, 130, 110, 148, 123, 123, 116, 122, 119, 127, 127, 147, 106, 126, 117, 119, 130, 145, 121, 128, 109, 131, 127, 135, 119, 121, 112, 141, 121, 133, 122, 123, 146, 132, 145, 117, 125, 137, 138, 129, 137, 129, 129, 143, 132, 109, 150, 130, 133, 118, 122, 124, 125, 129, 126, 120, 119, 104, 123, 110, 131, 114, 109, 125, 130, 117, 125, 136, 124, 124, 123, 131, 108, 117, 110, 146, 116, 111, 140, 159, 127, 111, 128, 114, 117, 142, 130, 115, 142, 121, 108, 121, 121, 139, 126, 123, 141, 132, 121, 120, 109, 129, 131, 136, 120, 122, 133, 121, 116, 120, 118, 112, 122, 126, 137, 116, 117, 117, 122, 120, 109, 117, 139, 139, 105, 125, 115, 117, 116, 107, 118, 136, 116, 134, 143, 108, 132, 128, 129, 110, 123, 129, 120, 118, 125, 125, 135, 110, 118, 112, 144, 129, 123, 118, 109, 115, 121, 115, 140, 139, 120, 127, 131, 118, 135, 116, 118, 109, 114, 132, 139, 124, 121, 123, 128, 118, 119, 113, 131, 114, 123, 120, 138, 149, 125, 125, 144, 146, 112, 115, 113, 99, 126, 125, 138, 138, 114, 130, 131, 132, 118, 119, 119, 132, 118, 132, 113, 141, 134, 102, 124, 118, 105, 130, 142, 118, 121, 107, 113, 113, 142, 120, 115, 125, 130, 116, 130, 130, 137, 109, 121, 123, 124, 140, 133, 99, 110, 133, 125, 129, 112, 129, 117, 143, 142, 119, 127, 114, 130, 143, 149, 110, 139, 128, 113, 127, 114, 118, 134, 121, 133, 153, 127, 129, 123, 145, 136, 115, 123, 148, 136, 124, 115, 134, 122, 107, 132, 123, 126, 135, 134, 121, 144, 121, 135, 143, 121, 114, 129, 142, 134, 127, 125, 106, 130, 132, 147, 118, 108, 136, 137, 113, 126, 110, 112, 140, 149, 125, 122, 120, 146, 122, 136, 122, 148, 124, 135, 128, 118, 130, 108, 120, 136, 120, 127, 132, 145, 106, 133, 120, 133, 121, 114, 130, 137, 132, 108, 131, 121, 114, 128, 122, 123, 122, 128, 113, 122, 129, 126, 133, 115, 123, 130, 114, 134, 114, 119, 134, 127, 118, 140, 115, 136, 109, 131, 119, 137, 133, 125, 132, 110, 119, 113, 136, 123, 131, 120, 118, 136, 132, 125, 131, 139, 111, 119, 128, 129, 135, 128, 118, 120, 142, 116, 124, 120, 136, 113, 128, 132, 152, 121, 134, 111, 119, 120, 109, 114, 125, 127, 112, 128, 117, 111, 101, 138, 138, 144, 120, 121, 131, 143, 118, 123, 123, 131, 105, 117, 131, 122, 125, 118, 110, 129, 108, 153, 116, 131, 110, 116, 130, 126, 122, 125, 144, 134, 132, 105, 120, 117, 123, 139, 129, 115, 119, 109, 136, 123, 147, 132, 148, 119, 119, 128, 132, 112, 132, 126, 121, 130, 122, 130, 126, 123, 116, 122, 129, 140, 126, 116, 128, 117, 125, 129, 135, 121, 121, 114, 133, 114, 127, 133, 127, 122, 146, 120, 125, 136, 116, 134, 118, 128, 130, 121, 122, 114, 117, 109, 118, 125, 121, 131, 127, 131, 113, 108, 126, 124, 129, 130, 129, 129, 144, 128, 131, 133, 152, 114, 129, 124, 119, 124, 115, 134, 144, 125, 124, 125, 119, 132, 113, 120, 132, 117, 124, 143, 108, 144, 102, 127, 137, 119, 137, 135, 117, 142, 130, 105, 143, 129, 121, 118, 137, 119, 118, 106, 120, 131, 131, 113, 122, 130, 130, 124, 126, 129, 123, 123, 120, 120, 125, 122, 133, 128, 129, 123, 102, 126, 125, 118, 130, 131, 120, 125, 124, 132, 113, 149, 122, 135, 117, 143, 115, 128, 127, 110, 130, 145, 136, 109, 113, 113, 130, 128, 142, 136, 111, 117, 121, 136, 127, 163, 125, 140, 151, 121, 121, 132, 124, 131, 121, 130, 123, 115, 139, 124, 132, 137, 141, 124, 124, 131, 133, 130, 114, 113, 122, 118, 119, 104, 132, 141, 114, 115, 119, 112, 133, 121, 131, 117, 114, 133, 110, 141, 121, 120, 127, 126, 126, 107, 125, 126, 103, 120, 132, 120, 143, 133, 126, 129, 131, 137, 127, 140, 122, 124, 117, 117, 113, 133, 126, 119, 143, 123, 124, 122, 130, 138, 135, 125, 130, 134, 127, 145, 105, 115, 115, 120, 118, 108, 119, 116, 127, 130, 117, 127, 134, 133, 121, 139, 143, 104, 116, 134, 142, 134, 129, 115, 135, 122, 107, 123, 142, 116, 113, 122, 116, 115, 123, 125, 128, 131, 128, 111, 135, 139, 142, 130, 134, 106, 107, 134, 113, 111, 102, 135, 141, 133, 115, 108, 108, 124, 145, 134, 126, 136, 134, 138, 130, 130, 113, 120, 125, 127, 138, 114, 114, 139, 124, 114, 123, 138, 117, 114, 119, 126, 134, 133, 136, 124, 126, 105, 120, 116, 120, 130, 137, 118, 114, 120, 115, 130, 143, 122, 107, 127, 109, 121, 127, 127, 113, 144, 128, 138, 130, 137, 103, 129, 137, 138, 127, 127, 126, 128, 139, 119, 135, 141, 119, 137, 119, 134, 108, 118, 122, 144, 129, 121, 128, 117, 114, 121, 123, 135, 125, 111, 125, 123, 123, 118, 141, 123, 141, 136, 127, 117, 123, 110, 128, 114, 126, 122, 135, 111, 128, 134, 141, 120, 119, 130, 129, 130, 128, 128, 125, 122, 127, 113, 118, 109, 146, 119, 113, 117, 126, 124, 115, 117, 145, 120, 129, 117, 101, 125, 142, 133, 129, 135, 104, 127, 132, 133, 117, 118, 149, 128, 125, 134, 132, 128, 135, 132, 120, 129, 133, 136, 131, 118, 122, 136, 114, 136, 122, 125, 134, 117, 122, 130, 134, 127, 128, 129, 116, 118, 131, 127, 126, 113, 126, 123, 133, 130, 142, 128, 141, 129, 111, 127, 133, 124, 129, 132, 128, 125, 123, 136, 139, 116, 134, 87, 116, 115, 108, 137, 110, 111, 133, 130, 127, 120, 100, 130, 128, 122, 132, 115, 114, 125, 134, 129, 129, 118, 133, 126, 144, 140, 129, 116, 153, 135, 122, 127, 113, 104, 118, 141, 127, 122, 139, 123, 130, 140, 134, 110, 129, 110, 107, 136, 132, 133, 138, 117, 137, 94, 119, 118, 112, 131, 120, 119, 104, 133, 144, 121, 120, 128, 133, 136, 120, 134, 125, 125, 133, 104, 144, 118, 118, 120, 133, 125, 124, 122, 136, 127, 121, 108, 122, 143, 142, 103, 125, 121, 121, 116, 131, 111, 135, 122, 116, 130, 125, 125, 113, 116, 113, 108, 135, 125, 98, 144, 109, 118, 148, 114, 141, 125, 114, 119, 133, 137, 118, 118, 133, 123, 116, 111, 121, 104, 124, 121, 129, 129, 121, 147, 131, 143, 104, 126, 119, 130, 129, 127, 148, 118, 130, 129, 124, 124, 126, 116, 137, 134, 117, 135, 137, 122, 113, 131, 122, 120, 131, 137, 130, 135, 125, 118, 141, 138, 124, 123, 114, 146, 128, 125, 128, 118, 121, 124, 121, 117, 114, 124, 125, 120, 117, 135, 123, 117, 120, 134, 123, 118, 135, 126, 116, 127, 150, 115, 139, 136, 127, 113, 128, 140, 130, 127, 113, 122, 128, 128, 111, 106, 117, 107, 122, 124, 138, 134, 122, 125, 109, 138, 111, 138, 126, 134, 127, 132, 109, 132, 122, 152, 126, 125, 128, 127, 129, 136, 124, 144, 124, 121, 126, 137, 113, 119, 125, 119, 126, 120, 127, 145, 135, 133, 133, 130, 103, 142, 138, 135, 136, 139, 142, 139, 135, 123, 125, 124, 125, 120, 131, 131, 126, 127, 131, 127, 124, 156, 125, 134, 120, 121, 133, 132, 117, 131, 130, 126, 126, 130, 106, 124, 128, 153, 103, 117, 139, 123, 134, 117, 119, 130, 130, 124, 121, 119, 143, 127, 149, 128, 143, 140, 126, 109, 130, 123, 128, 117, 128, 128, 119, 125, 137, 129, 111, 124, 128, 128, 145, 104, 137, 129, 123, 125, 110, 146, 127, 133, 134, 121, 133, 119, 132, 134, 114, 138, 128, 132, 126, 127, 112, 128, 121, 139, 115, 129, 134, 121, 124, 123, 108, 110, 113, 123, 109, 140, 126, 120, 113, 113, 140, 130, 116, 128, 114, 130, 142, 122, 120, 122, 122, 116, 138, 115, 111, 129, 140, 148, 119, 108, 125, 130, 125, 127, 112, 124, 116, 133, 136, 142, 131, 117, 112, 131, 124, 140, 104, 124, 133, 139, 126, 113, 125, 107, 113, 102, 106, 131, 119, 122, 134, 137, 119, 111, 134, 119, 130, 111, 136, 104, 127, 138, 137, 131, 117, 129, 114, 122, 141, 145, 128, 119, 136, 126, 147, 136, 129, 120, 135, 134, 122, 106, 118, 113, 124, 125, 130, 117, 117, 119, 121, 137, 117, 112, 146, 119, 135, 131, 144, 121, 101, 124, 123, 111, 125, 114, 120, 131, 127, 119, 118, 129, 109, 117, 134, 131, 110, 160, 123, 128, 140, 135, 128, 114, 120, 124, 117, 122, 115, 136, 147, 124, 107, 129, 120, 114, 129, 123, 138, 121, 116, 122, 115, 123, 129, 144, 125, 137, 127, 117, 115, 134, 129, 128, 108, 137, 132, 125, 141, 117, 113, 115, 134, 116, 127, 137, 114, 129, 121, 121, 125, 112, 141, 117, 121, 106, 132, 127, 126, 115, 136, 135, 116, 136, 112, 112, 122, 143, 150, 135, 118, 146, 125, 139, 115, 115, 102, 136, 103, 115, 128, 116, 111, 135, 133, 117, 122, 128, 112, 134, 129, 134, 120, 122, 106, 125, 117, 130, 145, 122, 130, 118, 131, 117, 123, 125, 129, 123, 131, 129, 124, 133, 123, 105, 131, 122, 130, 139, 128, 130, 129, 138, 127, 132, 139, 139, 131, 142, 140, 111, 136, 122, 136, 124, 132, 168, 114, 121, 122, 137, 120, 135, 137, 136, 123, 127, 121, 126, 125, 120, 105, 115, 129, 136, 120, 132, 106, 121, 138, 126, 121, 130, 117, 110, 131, 131, 123, 128, 132, 143, 135, 114, 139, 119, 115, 105, 117, 112, 121, 124, 134, 119, 128, 107, 132, 129, 116, 117, 137, 124, 126, 122, 114, 126, 135, 112, 111, 122, 129, 142, 109, 99, 117, 128, 125, 157, 153, 121, 113, 129, 127, 120, 126, 118, 132, 130, 133, 136, 124, 123, 124, 113, 117, 138, 136, 122, 131, 144, 121, 125, 130, 141, 132, 134, 108, 117, 105, 116, 120, 125, 134, 133, 130, 120, 108, 122, 118, 121, 131, 130, 141, 132, 146, 132, 133, 125, 121, 105, 123, 134, 135, 110, 135, 130, 133, 139, 122, 123, 122, 123, 110, 145, 125, 138, 140, 113, 145, 127, 129, 130, 142, 138, 118, 127, 122, 114, 122, 100, 123, 131, 130, 113, 126, 129, 105, 128, 113, 138, 120, 138, 128, 126, 146, 132, 129, 123, 130, 124, 129, 123, 110, 129, 122, 126, 128, 128, 122, 134, 108, 126, 127, 148, 119, 130, 139, 121, 125, 154, 116, 106, 123, 135, 107, 126, 118, 115, 110, 133, 143, 122, 129, 140, 114, 142, 119, 108, 124, 115, 127, 127, 135, 124, 125, 108, 124, 130, 120, 119, 155, 122, 126, 127, 123, 117, 108, 127, 127, 134, 133, 118, 123, 133, 116, 145, 119, 139, 113, 108, 115, 121, 134, 137, 122, 120, 113, 119, 111, 134, 124, 129, 137, 104, 128, 137, 120, 119, 127, 133, 119, 124, 122, 122, 134, 119, 129, 104, 124, 130, 134, 117, 118, 111, 119, 108, 132, 129, 122, 133, 132, 119, 132, 110, 115, 138, 127, 120, 139, 134, 125, 147, 122, 117, 115, 133, 131, 129, 130, 122, 124, 137, 117, 126, 124, 128, 131, 119, 132, 131, 130, 122, 120, 123, 127, 117, 141, 111, 112, 106, 134, 124, 128, 116, 130, 122, 118, 119, 110, 132, 140, 130, 128, 130, 126, 130, 142, 92, 118, 116, 140, 127, 129, 145, 136, 131, 135, 144, 115, 135, 129, 121, 128, 136, 98, 112, 113, 122, 107, 133, 116, 120, 150, 125, 134, 122, 120, 110, 135, 135, 127, 117, 123, 115, 122, 134, 124, 106, 133, 132, 111, 138, 108, 123, 124, 123, 110, 134, 99, 115, 139, 104, 118, 149, 122, 127, 119, 125, 123, 134, 132, 115, 127, 121, 134, 122, 121, 119, 131, 124, 119, 93, 124, 129, 129, 119, 121, 123, 145, 129, 107, 149, 121, 117, 117, 144, 137, 127, 121, 135, 135, 128, 126, 101, 124, 126, 142, 125, 138, 116, 123, 114, 141, 132, 129, 119, 125, 131, 126, 111, 131, 134, 132, 139, 115, 107, 127, 119, 127, 120, 118, 124, 131, 113, 138, 108, 111, 120, 126, 124, 123, 111, 115, 162, 120, 115, 124, 133, 116, 116, 120, 139, 122, 131, 112, 121, 124, 123, 126, 92, 107, 127, 118, 130, 125, 130, 126, 117, 130, 115, 115, 120, 126, 127, 130, 126, 129, 119, 126, 129, 131, 125, 131, 127, 135, 127, 127, 114, 128, 125, 118, 131, 106, 127, 103, 113, 118, 110, 129, 118, 118, 137, 119, 124, 118, 140, 125, 120, 104, 134, 112, 118, 116, 119, 107, 112, 131, 134, 135, 120, 138, 111, 129, 103, 107, 127, 134, 124, 123, 108, 112, 129, 122, 123, 133, 126, 137, 131, 124, 149, 130, 96, 144, 129, 125, 133, 147, 122, 138, 122, 126, 107, 124, 144, 134, 123, 128, 134, 121, 118, 116, 127, 124, 129, 123, 140, 127, 119, 125, 116, 136, 130, 114, 124, 119, 124, 118, 142, 122, 128, 125, 114, 135, 119, 138, 124, 126, 124, 128, 127, 129, 125, 133, 117, 120, 128, 135, 124, 131, 114, 123, 131, 128, 124, 117, 125, 118, 114, 108, 140, 152, 128, 129, 157, 113, 127, 136, 124, 122, 117, 127, 144, 111, 122, 135, 134, 124, 112, 130, 129, 136, 140, 121, 133, 141, 121, 123, 123, 137, 125, 121, 145, 124, 96, 127, 135, 108, 125, 136, 129, 147, 118, 117, 118, 125, 133, 115, 127, 122, 129, 133, 110, 122, 128, 124, 130, 126, 115, 151, 114, 131, 108, 141, 120, 112, 113, 123, 125, 135, 126, 127, 132, 125, 130, 125, 136, 124, 121, 131, 114, 120, 121, 120, 128, 135, 108, 118, 134, 125, 105, 137, 131, 127, 106, 124, 134, 102, 129, 128, 129, 137, 127, 112, 134, 118, 106, 128, 126, 133, 118, 121, 122, 131, 122, 114, 118, 133, 128, 132, 118, 123, 122, 133, 126, 132, 118, 109, 116, 128, 130, 131, 124, 97, 133, 122, 147, 118, 119, 113, 117, 121, 120, 136, 120, 118, 115, 125, 114, 116, 131, 106, 110, 114, 109, 131, 130, 106, 118, 124, 144, 136, 136, 112, 130, 115, 117, 135, 125, 134, 116, 117, 114, 131, 113, 141, 125, 125, 130, 134, 120, 127, 126, 124, 104, 126, 141, 128, 118, 130, 124, 135, 121, 125, 119, 127, 132, 109, 120, 130, 143, 116, 125, 118, 132, 125, 123, 119, 133, 125, 141, 138, 134, 132, 118, 130, 134, 145, 105, 124, 112, 80, 131, 110, 118, 116, 131, 111, 120, 124, 157, 128, 123, 121, 133, 115, 141, 154, 144, 122, 132, 121, 133, 129, 127, 116, 132, 123, 113, 114, 123, 134, 135, 134, 113, 108, 123, 142, 123, 131, 158, 110, 131, 127, 148, 131, 130, 121, 127, 117, 99, 119, 118, 120, 158, 127, 115, 117, 113, 130, 110, 121, 125, 127, 136, 120, 118, 114, 127, 126, 110, 145, 139, 130, 139, 107, 125, 127, 119, 111, 118, 114, 123, 129, 129, 132, 127, 139, 142, 110, 129, 137, 137, 118, 121, 112, 101, 126, 126, 127, 129, 128, 130, 115, 93, 113, 120, 115, 120, 121, 130, 125, 131, 118, 127, 135, 102, 124, 132, 133, 127, 116, 123, 134, 126, 129, 113, 122, 142, 134, 128, 112, 109, 113, 135, 125, 138, 117, 125, 141, 113, 145, 134, 125, 123, 133, 117, 125, 138, 127, 127, 141, 102, 132, 124, 134, 114, 109, 129, 121, 131, 133, 147, 110, 102, 111, 112, 154, 127, 113, 125, 108, 127, 133, 125, 134, 144, 104, 128, 124, 122, 128, 135, 128, 118, 115, 107, 152, 125, 123, 128, 116, 111, 132, 116, 123, 127, 117, 115, 105, 138, 126, 124, 114, 132, 123, 133, 141, 109, 126, 141, 124, 119, 132, 121, 128, 132, 136, 118, 110, 136, 118, 119, 121, 133, 121, 133, 114, 141, 106, 131, 124, 126, 128, 90, 131, 144, 135, 136, 130, 116, 121, 128, 133, 135, 119, 126, 117, 119, 128, 113, 118, 117, 131, 115, 134, 123, 130, 131, 134, 124, 127, 125, 125, 132, 144, 128, 145, 132, 134, 126, 127, 103, 123, 118, 123, 130, 115, 121, 114, 130, 118, 116, 132, 133, 133, 134, 142, 143, 126, 113, 139, 120, 129, 123, 123, 126, 127, 126, 126, 117, 118, 132, 108, 112, 115, 123, 122, 138, 120, 132, 113, 127, 139, 143, 120, 122, 113, 120, 125, 135, 127, 122, 140, 133, 139, 113, 128, 132, 131, 137, 125, 127, 137, 105, 134, 118, 144, 117, 120, 137, 122, 115, 117, 123, 113, 125, 108, 144, 118, 104, 125, 120, 131, 136, 129, 131, 126, 130, 134, 117, 167, 122, 116, 139, 141, 107, 131, 134, 106, 111, 125, 129, 125, 123, 130, 126, 119, 128, 129, 127, 130, 111, 136, 121, 118, 114, 112, 120, 138, 126, 133, 134, 116, 129, 122, 93, 131, 122, 119, 119, 133, 138, 120, 107, 132, 145, 126, 133, 110, 123, 122, 132, 127, 139, 106, 117, 125, 114, 126, 142, 118, 132, 119, 104, 124, 120, 119, 136, 130, 113, 113, 122, 123, 146, 126, 117, 125, 119, 130, 118, 122, 130, 130, 119, 117, 130, 113, 141, 116, 129, 124, 125, 141, 136, 114, 133, 120, 124, 114, 124, 126, 138, 135, 131, 122, 111, 116, 116, 138, 141, 113, 124, 129, 119, 118, 125, 135, 113, 122, 114, 121, 111, 144, 126, 131, 105, 115, 137, 121, 119, 106, 129, 136, 102, 122, 123, 130, 125, 145, 126, 122, 116, 125, 121, 120, 132, 121, 141, 128, 124, 137, 120, 126, 130, 128, 130, 125, 124, 133, 128, 140, 111, 132, 136, 134, 121, 123, 121, 133, 127, 141, 128, 123, 117, 132, 130, 133, 126, 139, 129, 130, 127, 127, 131, 123, 130, 129, 135, 126, 122, 138, 118, 124, 137, 126, 113, 126, 140, 108, 118, 139, 112, 115, 142, 110, 124, 119, 127, 114, 143, 133, 126, 121, 131, 121, 118, 127, 132, 127, 127, 150, 107, 128, 129, 131, 117, 142, 120, 108, 109, 124, 139, 120, 140, 108, 117, 112, 131, 146, 144, 131, 118, 125, 112, 138, 130, 124, 112, 129, 125, 133, 106, 130, 128, 129, 131, 134, 132, 136, 140, 112, 113, 121, 114, 118, 132, 144, 143, 115, 131, 126, 110, 150, 141, 118, 136, 124, 141, 135, 114, 133, 134, 126, 140, 99, 131, 130, 148, 111, 107, 116, 115, 129, 146, 121, 123, 134, 111, 121, 120, 119, 123, 135, 109, 140, 138, 130, 122, 125, 122, 111, 107, 120, 120, 131, 108, 135, 116, 137, 126, 143, 121, 107, 122, 116, 109, 126, 131, 112, 128, 118, 123, 111, 110, 121, 128, 118, 130, 142, 133, 126, 119, 132, 137, 131, 104, 115, 114, 137, 140, 115, 100, 123, 155, 121, 105, 113, 127, 122, 135, 117, 138, 121, 108, 129, 113, 125, 117, 143, 129, 122, 132, 112, 111, 114, 134, 120, 128, 133, 120, 129, 126, 131, 112, 129, 125, 125, 125, 136, 131, 123, 135, 124, 128, 113, 145, 146, 136, 138, 119, 114, 122, 109, 113, 132, 136, 121, 134, 107, 132, 125, 127, 122, 120, 125, 116, 118, 117, 150, 129, 121, 104, 106, 124, 129, 126, 127, 138, 125, 139, 127, 130, 141, 135, 138, 128, 114, 130, 121, 142, 129, 125, 126, 113, 127, 126, 126, 124, 124, 120, 147, 120, 125, 152, 110, 120, 129, 125, 115, 112, 117, 112, 123, 131, 123, 120, 143, 125, 113, 121, 118, 116, 100, 128, 138, 119, 120, 119, 111, 138, 133, 109, 126, 122, 118, 127, 109, 125, 137, 116, 113, 114, 107, 120, 119, 117, 120, 135, 142, 130, 140, 140, 106, 139, 119, 121, 121, 120, 127, 123, 127, 113, 105, 126, 119, 127, 117, 112, 125, 142, 115, 131, 128, 142, 126, 142, 120, 116, 118, 109, 119, 118, 118, 120, 129, 125, 129, 119, 144, 115, 121, 129, 121, 127, 145, 112, 135, 116, 114, 142, 129, 164, 120, 131, 127, 111, 128, 147, 124, 136, 123, 127, 138, 121, 138, 161, 106, 116, 92, 117, 128, 122, 118, 121, 131, 120, 126, 142, 123, 122, 123, 131, 122, 121, 112, 138, 134, 122, 113, 130, 155, 132, 136, 122, 141, 108, 115, 128, 123, 126, 116, 138, 111, 126, 106, 126, 117, 115, 129, 135, 120, 107, 115, 119, 142, 101, 127, 129, 122, 132, 142, 134, 120, 129, 111, 123, 121, 126, 119, 108, 121, 115, 139, 139, 123, 132, 109, 138, 133, 139, 138, 103, 132, 120, 118, 131, 141, 114, 139, 138, 129, 128, 121, 130, 122, 123, 125, 128, 116, 136, 123, 129, 127, 122, 113, 131, 128, 132, 118, 112, 111, 135, 133, 112, 140, 131, 129, 122, 129, 124, 100, 148, 128, 128, 115, 122, 120, 125, 151, 101, 119, 134, 112, 109, 120, 127, 117, 122, 110, 137, 128, 115, 130, 129, 133, 119, 144, 114, 129, 122, 133, 137, 112, 131, 123, 126, 144, 131, 108, 119, 113, 118, 132, 126, 113, 136, 120, 127, 122, 158, 126, 133, 134, 134, 125, 134, 115, 123, 106, 118, 135, 131, 107, 122, 144, 124, 128, 123, 123, 127, 125, 119, 115, 131, 131, 138, 130, 138, 104, 116, 125, 140, 108, 124, 120, 128, 110, 116, 134, 105, 122, 135, 122, 119, 128, 140, 132, 118, 141, 141, 139, 115, 110, 96, 116, 142, 93, 125, 110, 129, 119, 142, 111, 112, 117, 153, 121, 110, 110, 110, 131, 126, 129, 123, 132, 128, 123, 128, 122, 137, 109, 129, 115, 126, 122, 148, 121, 129, 128, 118, 133, 114, 101, 139, 130, 126, 129, 125, 128, 129, 116, 95, 111, 109, 120, 121, 135, 130, 119, 118, 96, 100, 123, 126, 130, 127, 106, 110, 142, 127, 147, 128, 127, 121, 119, 133, 138, 113, 134, 129, 146, 124, 142, 115, 138, 121, 110, 134, 128, 114, 111, 127, 131, 94, 125, 140, 120, 139, 141, 118, 128, 120, 138, 103, 133, 119, 140, 111, 143, 110, 103, 133, 112, 140, 119, 133, 99, 136, 124, 141, 138, 99, 116, 129, 125, 129, 121, 126, 124, 136, 120, 117, 122, 105, 120, 131, 131, 132, 132, 125, 131, 124, 131, 122, 132, 133, 132, 97, 121, 134, 126, 133, 114, 126, 131, 126, 107, 134, 121, 118, 112, 121, 125, 118, 146, 122, 133, 113, 145, 123, 120, 112, 132, 117, 154, 140, 134, 135, 125, 133, 142, 143, 110, 108, 128, 126, 128, 125, 115, 125, 115, 125, 110, 142, 141, 141, 110, 110, 125, 129, 116, 124, 134, 130, 124, 114, 130, 103, 135, 116, 131, 128, 131, 120, 119, 136, 138, 126, 131, 121, 130, 148, 133, 137, 118, 122, 111, 121, 123, 112, 123, 130, 135, 126, 115, 120, 121, 124, 126, 119, 108, 126, 136, 116, 126, 126, 108, 128, 134, 124, 127, 140, 139, 128, 136, 126, 129, 145, 116, 154, 143, 137, 132, 116, 116, 117, 113, 123, 134, 134, 117, 127, 138, 124, 122, 141, 128, 108, 126, 131, 116, 127, 127, 159, 100, 122, 108, 128, 118, 132, 114, 123, 145, 119, 132, 116, 138, 104, 121, 126, 124, 144, 117, 118, 131, 120, 125, 150, 121, 134, 145, 129, 137, 117, 133, 101, 125, 112, 125, 137, 110, 106, 125, 145, 134, 148, 119, 112, 128, 127, 148, 123, 114, 118, 120, 137, 139, 124, 143, 114, 110, 126, 133, 123, 117, 121, 121, 121, 108, 136, 125, 126, 136, 126, 121, 132, 122, 114, 119, 122, 125, 138, 110, 124, 117, 117, 125, 135, 124, 125, 157, 117, 129, 125, 148, 141, 117, 137, 119, 127, 137, 126, 118, 140, 154, 137, 123, 134, 131, 122, 115, 125, 145, 130, 134, 150, 113, 122, 126, 90, 144, 124, 128, 130, 120, 107, 99, 124, 127, 147, 134, 123, 112, 122, 134, 109, 137, 105, 126, 111, 132, 124, 119, 143, 145, 117, 131, 126, 146, 119, 105, 125, 129, 125, 127, 131, 126, 126, 129, 124, 115, 144, 118, 139, 122, 127, 105, 147, 146, 132, 130, 127, 130, 126, 122, 102, 135, 119, 136, 113, 132, 111, 139, 138, 117, 144, 135, 110, 130, 150, 132, 128, 138, 136, 117, 121, 120, 142, 112, 125, 122, 116, 145, 118, 121, 126, 139, 138, 126, 118, 140, 114, 124, 135, 126, 121, 112, 142, 132, 131, 119, 110, 122, 133, 130, 125, 138, 122, 114, 98, 113, 122, 131, 121, 121, 142, 123, 127, 139, 131, 130, 136, 127, 92, 138, 133, 120, 124, 110, 121, 123, 124, 123, 135, 132, 110, 130, 130, 107, 103, 120, 130, 135, 134, 118, 117, 122, 121, 134, 136, 137, 116, 128, 126, 131, 147, 131, 107, 123, 130, 146, 120, 128, 129, 110, 128, 138, 123, 127, 127, 126, 121, 116, 132, 139, 148, 129, 115, 115, 131, 139, 128, 130, 119, 114, 124, 123, 131, 145, 133, 133, 127, 130, 129, 128, 120, 118, 121, 123, 129, 127, 133, 122, 100, 121, 117, 118, 124, 139, 124, 120, 105, 123, 117, 125, 125, 121, 111, 140, 123, 136, 128, 125, 123, 129, 130, 141, 117, 138, 130, 135, 138, 141, 118, 129, 126, 125, 140, 94, 129, 118, 130, 132, 125, 123, 138, 115, 136, 123, 121, 129, 112, 109, 111, 128, 118, 130, 114, 125, 121, 117, 125, 119, 116, 133, 112, 120, 127, 117, 115, 128, 135, 113, 128, 126, 118, 120, 131, 138, 129, 118, 129, 119, 129, 119, 129, 112, 114, 127, 128, 119, 143, 127, 111, 124, 115, 132, 144, 114, 131, 122, 121, 126, 107, 142, 114, 145, 116, 117, 120, 141, 135, 144, 129, 122, 120, 125, 118, 105, 117, 120, 154, 124, 130, 123, 122, 139, 118, 139, 127, 131, 122, 131, 138, 145, 134, 120, 125, 120, 114, 132, 103, 132, 131, 139, 101, 100, 123, 102, 121, 119, 125, 136, 137, 122, 130, 107, 116, 118, 127, 110, 132, 123, 132, 124, 130, 123, 138, 128, 125, 128, 125, 123, 125, 122, 134, 125, 137, 110, 130, 130, 121, 127, 107, 128, 125, 109, 137, 122, 128, 137, 127, 132, 116, 115, 128, 149, 120, 121, 134, 142, 119, 135, 110, 136, 130, 113, 110, 119, 129, 109, 129, 113, 131, 117, 122, 120, 124, 132, 139, 106, 145, 114, 125, 122, 126, 114, 114, 144, 125, 151, 121, 112, 105, 123, 136, 126, 114, 126, 120, 138, 127, 136, 132, 107, 131, 142, 116, 133, 122, 109, 114, 125, 137, 114, 113, 128, 149, 125, 115, 109, 130, 135, 126, 113, 111, 126, 125, 102, 128, 118, 130, 133, 141, 119, 118, 123, 116, 112, 115, 117, 119, 125, 130, 128, 123, 129, 121, 110, 133, 123, 132, 137, 122, 129, 110, 113, 120, 142, 111, 118, 138, 121, 115, 103, 148, 131, 130, 117, 125, 120, 134, 132, 129, 124, 129, 129, 136, 125, 113, 135, 128, 132, 120, 123, 119, 137, 137, 105, 109, 129, 124, 132, 124, 132, 138, 128, 122, 132, 139, 156, 126, 119, 123, 121, 136, 144, 141, 119, 126, 132, 127, 104, 123, 141, 118, 120, 137, 138, 131, 152, 123, 102, 138, 129, 117, 137, 115, 145, 116, 127, 109, 151, 139, 143, 115, 130, 115, 112, 115, 116, 123, 111, 120, 138, 125, 127, 135, 124, 139, 139, 126, 122, 117, 121, 142, 134, 109, 133, 124, 123, 140, 110, 157, 124, 124, 124, 145, 111, 140, 116, 114, 156, 130, 121, 143, 119, 132, 121, 114, 111, 122, 130, 132, 132, 127, 128, 138, 127, 141, 128, 118, 122, 143, 150, 131, 131, 111, 116, 117, 116, 141, 146, 113, 144, 124, 121, 107, 129, 126, 123, 134, 121, 120, 91, 119, 121, 118, 129, 130, 131, 130, 101, 129, 131, 125, 132, 135, 127, 118, 120, 132, 125, 139, 143, 142, 130, 130, 134, 123, 122, 132, 131, 105, 126, 127, 140, 150, 137, 146, 111, 122, 140, 154, 116, 134, 132, 139, 140, 114, 136, 110, 131, 132, 137, 110, 133, 119, 126, 123, 115, 116, 127, 124, 115, 132, 123, 143, 117, 110, 122, 133, 121, 117, 142, 137, 137, 130, 110, 116, 136, 121, 136, 119, 109, 129, 121, 130, 133, 126, 137, 134, 119, 115, 140, 136, 115, 122, 125, 117, 122, 128, 123, 133, 128, 137, 142, 118, 128, 124, 118, 120, 106, 120, 123, 136, 124, 133, 129, 122, 122, 110, 127, 120, 137, 133, 132, 164, 133, 136, 118, 115, 118, 117, 103, 127, 132, 137, 106, 140, 106, 136, 109, 128, 133, 120, 151, 132, 108, 126, 131, 135, 120, 115, 138, 154, 101, 126, 113, 147, 126, 138, 110, 117, 128, 121, 130, 97, 114, 145, 124, 122, 123, 125, 118, 124, 126, 140, 133, 111, 120, 134, 123, 119, 110, 136, 133, 127, 120, 141, 145, 139, 113, 116, 145, 112, 134, 113, 137, 119, 143, 121, 116, 112, 132, 138, 137, 121, 114, 126, 106, 119, 110, 102, 115, 134, 134, 120, 131, 121, 135, 125, 116, 125, 131, 137, 115, 120, 123, 118, 120, 123, 139, 121, 131, 138, 133, 143, 141, 146, 136, 128, 142, 139, 106, 120, 119, 115, 119, 136, 121, 124, 120, 128, 129, 119, 124, 128, 114, 125, 122, 128, 119, 126, 150, 158, 100, 137, 143, 131, 120, 119, 119, 142, 111, 131, 122, 117, 124, 142, 115, 139, 140, 125, 115, 112, 119, 125, 133, 123, 115, 123, 142, 119, 109, 138, 128, 107, 135, 130, 139, 146, 132, 133, 130, 127, 113, 143, 122, 121, 132, 137, 134, 113, 125, 116, 134, 112, 92, 122, 114, 108, 97, 127, 130, 132, 136, 131, 148, 109, 112, 136, 122, 121, 131, 100, 124, 115, 115, 157, 142, 140, 116, 131, 131, 114, 136, 122, 130, 125, 109, 129, 133, 130, 113, 126, 131, 136, 126, 109, 133, 134, 122, 126, 133, 131, 136, 133, 133, 142, 112, 131, 127, 127, 124, 108, 140, 127, 131, 143, 112, 137, 111, 112, 118, 116, 128, 132, 135, 147, 130, 119, 127, 132, 122, 135, 141, 136, 110, 132, 126, 141, 139, 129, 128, 114, 118, 130, 114, 115, 133, 148, 160, 122, 143, 125, 151, 134, 134, 123, 110, 157, 121, 139, 126, 135, 117, 111, 129, 122, 132, 115, 139, 113, 126, 132, 126, 107, 132, 119, 126, 144, 132, 136, 135, 130, 113, 115, 113, 130, 116, 118, 122, 141, 118, 150, 142, 117, 120, 117, 141, 127, 130, 125, 127, 135, 127, 111, 145, 125, 120, 123, 130, 139, 128, 125, 127, 109, 119, 126, 119, 124, 141, 136, 124, 129, 123, 141, 123, 113, 101, 124, 137, 108, 127, 137, 136, 106, 142, 139, 120, 112, 115, 138, 124, 129, 123, 123, 135, 116, 130, 126, 121, 122, 132, 123, 121, 115, 116, 119, 116, 117, 134, 143, 121, 140, 135, 142, 124, 124, 125, 139, 130, 105, 112, 124, 128, 120, 119, 123, 145, 140, 121, 131, 128, 119, 113, 152, 131, 115, 109, 133, 139, 135, 125, 142, 152, 126, 122, 118, 107, 121, 101, 130, 129, 138, 123, 118, 122, 115, 131, 127, 120, 124, 132, 125, 120, 128, 132, 119, 140, 123, 129, 152, 124, 142, 115, 137, 111, 126, 112, 141, 131, 104, 137, 147, 119, 126, 142, 124, 119, 115, 133, 119, 125, 132, 109, 130, 142, 128, 132, 115, 128, 115, 145, 126, 124, 132, 124, 136, 128, 121, 122, 113, 146, 129, 121, 151, 131, 128, 122, 136, 134, 126, 130, 124, 133, 108, 146, 139, 129, 124, 118, 132, 129, 135, 132, 131, 134, 110, 102, 111, 125, 120, 120, 122, 133, 126, 119, 113, 125, 113, 129, 145, 131, 123, 106, 124, 134, 135, 110, 130, 122, 126, 123, 111, 125, 120, 123, 126, 124, 118, 124, 127, 115, 133, 123, 121, 139, 119, 121, 124, 129, 130, 130, 110, 127, 115, 140, 128, 128, 119, 137, 120, 133, 137, 133, 108, 133, 127, 129, 125, 113, 130, 125, 123, 131, 116, 127, 115, 125, 132, 126, 117, 143, 115, 109, 128, 122, 122, 114, 129, 133, 116, 112, 136, 126, 116, 126, 117, 132, 136, 145, 104, 131, 143, 134, 111, 134, 118, 122, 125, 131, 127, 142, 138, 100, 110, 127, 121, 118, 115, 119, 123, 142, 127, 116, 131, 129, 124, 118, 131, 133, 137, 130, 133, 120, 136, 116, 117, 120, 118, 119, 113, 110, 108, 129, 138, 117, 135, 121, 117, 121, 114, 148, 109, 122, 121, 132, 119, 126, 111, 120, 133, 130, 132, 135, 123, 127, 121, 120, 113, 127, 129, 124, 127, 127, 117, 107, 127, 131, 132, 124, 125, 121, 97, 121, 128, 118, 121, 111, 125, 129, 124, 136, 119, 137, 126, 119, 124, 136, 118, 139, 130, 125, 107, 138, 118, 128, 142, 116, 124, 135, 132, 112, 123, 110, 122, 120, 122, 128, 133, 108, 137, 129, 122, 127, 133, 137, 117, 123, 123, 116, 132, 106, 131, 108, 112, 139, 149, 137, 107, 125, 124, 122, 130, 125, 118, 128, 116, 130, 129, 124, 121, 123, 118, 134, 123, 122, 146, 122, 125, 137, 121, 128, 141, 116, 123, 104, 140, 119, 118, 129, 117, 120, 132, 120, 121, 120, 118, 147, 134, 127, 129, 109, 119, 115, 127, 114, 135, 126, 127, 123, 112, 132, 125, 131, 115, 140, 122, 129, 127, 117, 143, 133, 125, 125, 106, 120, 124, 123, 130, 135, 120, 111, 136, 113, 124, 120, 118, 116, 147, 111, 121, 123, 125, 128, 121, 144, 135, 129, 136, 118, 116, 144, 124, 130, 140, 131, 139, 111, 133, 125, 100, 123, 135, 139, 135, 130, 143, 142, 128, 135, 117, 111, 137, 125, 114, 124, 140, 136, 122, 120, 128, 129, 122, 135, 129, 153, 137, 126, 146, 128, 158, 121, 122, 121, 116, 122, 115, 145, 120, 110, 124, 132, 138, 122, 125, 133, 129, 130, 125, 144, 134, 134, 121, 132, 121, 128, 128, 158, 132, 115, 144, 124, 132, 128, 116, 118, 142, 124, 122, 127, 137, 132, 115, 133, 124, 118, 129, 123, 137, 138, 136, 122, 113, 115, 131, 124, 115, 124, 114, 122, 137, 137, 139, 128, 120, 122, 109, 127, 121, 123, 137, 132, 129, 118, 124, 137, 114, 133, 117, 129, 140, 138, 113, 139, 124, 130, 145, 119, 124, 134, 104, 121, 117, 107, 116, 105, 122, 129, 128, 136, 135, 122, 126, 124, 111, 116, 135, 128, 126, 121, 126, 134, 122, 122, 116, 136, 134, 138, 121, 139, 128, 155, 139, 140, 129, 121, 134, 133, 134, 129, 119, 130, 119, 114, 111, 125, 108, 127, 115, 120, 125, 123, 114, 127, 122, 126, 130, 140, 141, 118, 119, 112, 143, 112, 128, 120, 127, 135, 138, 131, 140, 113, 131, 128, 127, 115, 127, 119, 131, 129, 144, 122, 135, 131, 120, 117, 136, 112, 115, 128, 128, 127, 128, 129, 123, 122, 131, 131, 146, 126, 119, 131, 123, 103, 114, 119, 120, 125, 123, 137, 131, 121, 127, 128, 120, 129, 126, 122, 139, 139, 113, 103, 114, 115, 130, 123, 119, 121, 133, 128, 131, 131, 137, 131, 112, 99, 122, 117, 134, 109, 91, 141, 108, 118, 121, 129, 133, 107, 116, 111, 125, 114, 139, 125, 135, 127, 127, 108, 101, 126, 128, 130, 126, 150, 121, 124, 131, 126, 133, 138, 112, 135, 136, 129, 115, 119, 130, 117, 115, 147, 129, 117, 143, 129, 137, 132, 134, 115, 143, 114, 124, 123, 133, 121, 126, 125, 112, 131, 125, 123, 122, 129, 136, 112, 136, 129, 138, 115, 131, 125, 140, 130, 117, 129, 140, 136, 131, 117, 126, 112, 125, 125, 155, 132, 134, 109, 131, 107, 107, 117, 135, 139, 127, 121, 116, 134, 110, 130, 120, 127, 106, 124, 103, 112, 123, 140, 131, 120, 114, 113, 118, 129, 114, 120, 110, 132, 138, 106, 119, 122, 124, 133, 118, 122, 113, 105, 121, 118, 124, 135, 137, 143, 132, 110, 132, 132, 126, 106, 116, 139, 132, 125, 127, 126, 125, 138, 126, 120, 127, 127, 126, 125, 139, 128, 117, 114, 108, 124, 122, 144, 109, 119, 108, 139, 127, 109, 130, 138, 118, 118, 115, 135, 122, 120, 127, 120, 122, 118, 120, 123, 124, 122, 143, 118, 111, 111, 122, 132, 120, 121, 109, 132, 140, 111, 142, 129, 140, 129, 140, 129, 113, 131, 130, 149, 144, 105, 133, 138, 119, 134, 131, 113, 126, 131, 127, 112, 120, 142, 142, 121, 109, 145, 127, 126, 129, 146, 104, 125, 122, 115, 104, 133, 120, 132, 137, 123, 106, 109, 127, 119, 113, 113, 102, 113, 103, 133, 123, 118, 124, 130, 121, 156, 128, 119, 129, 129, 112, 103, 107, 118, 125, 147, 134, 139, 113, 141, 118, 136, 122, 130, 111, 120, 142, 147, 119, 103, 129, 128, 123, 107, 129, 126, 126, 139, 157, 122, 126, 117, 121, 125, 120, 113, 114, 115, 118, 112, 142, 122, 138, 117, 125, 115, 129, 112, 114, 120, 126, 120, 137, 133, 108, 116, 122, 131, 118, 136, 133, 126, 125, 126, 121, 119, 124, 128, 118, 136, 128, 124, 136, 124, 145, 117, 119, 111, 132, 122, 143, 129, 121, 125, 114, 139, 131, 116, 137, 135, 91, 156, 116, 132, 124, 146, 127, 127, 111, 139, 107, 123, 123, 118, 124, 110, 125, 136, 134, 136, 149, 118, 118, 135, 128, 126, 113, 135, 119, 133, 141, 125, 111, 128, 121, 116, 140, 134, 128, 141, 116, 131, 127, 129, 132, 97, 144, 129, 111, 122, 122, 136, 123, 129, 149, 120, 128, 121, 130, 115, 129, 131, 121, 114, 129, 120, 135, 116, 141, 110, 138, 128, 135, 136, 120, 144, 125, 119, 142, 120, 128, 128, 130, 142, 128, 145, 133, 123, 126, 120, 135, 131, 119, 129, 112, 125, 140, 116, 134, 123, 124, 127, 124, 125, 114, 123, 127, 130, 137, 116, 126, 131, 126, 153, 123, 111, 140, 119, 110, 117, 137, 122, 115, 116, 124, 142, 129, 117, 152, 111, 118, 103, 127, 149, 131, 130, 128, 122, 123, 124, 125, 143, 136, 131, 128, 129, 132, 112, 129, 123, 124, 117, 112, 128, 125, 133, 127, 127, 116, 131, 132, 122, 124, 130, 129, 129, 144, 115, 126, 134, 137, 122, 114, 133, 121, 122, 121, 122, 125, 136, 128, 129, 113, 123, 130, 122, 117, 139, 119, 129, 133, 123, 117, 140, 115, 119, 128, 137, 124, 115, 148, 133, 136, 131, 113, 117, 125, 129, 131, 123, 130, 122, 122, 115, 110, 138, 131, 101, 125, 125, 124, 134, 135, 98, 118, 119, 125, 142, 132, 138, 132, 114, 141, 128, 132, 127, 135, 114, 130, 132, 126, 129, 111, 126, 107, 142, 123, 126, 136, 149, 101, 115, 132, 132, 120, 124, 132, 129, 125, 122, 130, 117, 137, 126, 136, 150, 107, 130, 115, 127, 131, 108, 129, 138, 119, 117, 113, 121, 112, 147, 124, 126, 137, 141, 130, 124, 136, 104, 123, 117, 102, 128, 118, 110, 131, 141, 120, 122, 133, 125, 127, 138, 133, 115, 130, 124, 140, 112, 106, 128, 119, 122, 110, 128, 138, 124, 124, 131, 129, 136, 101, 118, 132, 119, 132, 125, 123, 155, 117, 139, 130, 135, 122, 122, 142, 153, 116, 116, 99, 129, 125, 147, 120, 129, 130, 122, 132, 134, 116, 116, 144, 124, 138, 109, 133, 108, 119, 118, 118, 122, 115, 132, 122, 133, 127, 122, 133, 132, 124, 124, 128, 129, 106, 122, 121, 127, 114, 122, 122, 122, 99, 120, 127, 126, 130, 126, 116, 139, 121, 117, 136, 132, 125, 129, 124, 128, 126, 132, 114, 115, 131, 119, 118, 119, 123, 121, 115, 129, 104, 123, 119, 133, 128, 107, 121, 116, 113, 128, 126, 116, 111, 123, 129, 120, 109, 138, 121, 126, 138, 137, 124, 115, 116, 111, 124, 116, 131, 123, 118, 101, 124, 138, 108, 140, 143, 115, 115, 119, 136, 141, 112, 139, 145, 111, 118, 114, 126, 111, 132, 117, 150, 135, 116, 144, 124, 135, 125, 117, 126, 141, 130, 126, 122, 121, 128, 147, 117, 120, 137, 146, 114, 128, 110, 115, 128, 128, 111, 123, 151, 119, 128, 102, 116, 138, 119, 121, 148, 123, 131, 116, 126, 131, 139, 148, 126, 131, 121, 117, 131, 133, 137, 135, 120, 138, 118, 120, 138, 128, 132, 108, 119, 110, 146, 124, 115, 140, 126, 130, 126, 128, 116, 134, 112, 107, 129, 119, 108, 108, 122, 137, 121, 136, 133, 122, 113, 115, 125, 127, 129, 125, 109, 122, 120, 128, 108, 137, 120, 127, 132, 123, 123, 134, 137, 134, 134, 130, 124, 108, 119, 143, 106, 134, 129, 126, 131, 135, 122, 129, 126, 128, 91, 140, 102, 128, 115, 137, 122, 128, 111, 107, 123, 123, 118, 109, 112, 120, 153, 128, 133, 108, 123, 125, 136, 113, 105, 133, 142, 122, 120, 117, 116, 124, 135, 116, 130, 123, 114, 122, 111, 119, 106, 148, 126, 109, 131, 114, 127, 142, 135, 115, 119, 139, 122, 136, 123, 119, 133, 137, 133, 138, 126, 130, 137, 139, 132, 113, 115, 122, 132, 132, 129, 129, 110, 129, 146, 118, 119, 120, 114, 140, 120, 118, 122, 114, 121, 116, 134, 126, 105, 119, 98, 135, 144, 121, 109, 124, 137, 123, 133, 125, 115, 102, 132, 142, 135, 113, 117, 149, 137, 132, 130, 111, 135, 121, 148, 137, 136, 127, 129, 139, 105, 132, 120, 102, 141, 120, 124, 122, 130, 133, 129, 119, 129, 120, 106, 140, 122, 118, 113, 125, 103, 109, 134, 125, 116, 115, 127, 130, 140, 121, 131, 127, 127, 132, 133, 125, 149, 134, 127, 128, 117, 129, 126, 129, 124, 125, 129, 127, 101, 129, 117, 123, 132, 127, 106, 122, 111, 122, 137, 133, 126, 140, 113, 114, 127, 119, 145, 125, 132, 130, 128, 131, 119, 103, 143, 106, 106, 127, 124, 112, 113, 133, 135, 152, 131, 122, 126, 138, 136, 124, 125, 122, 130, 118, 133, 121, 102, 130, 124, 115, 114, 132, 113, 116, 126, 116, 121, 113, 113, 119, 134, 109, 131, 129, 108, 130, 131, 141, 116, 120, 110, 117, 121, 124, 148, 100, 141, 128, 117, 148, 146, 125, 123, 128, 107, 99, 132, 141, 101, 138, 115, 124, 126, 138, 134, 131, 127, 112, 121, 140, 133, 131, 125, 143, 112, 120, 114, 129, 140, 124, 134, 108, 138, 130, 117, 124, 138, 135, 126, 106, 137, 144, 148, 117, 132, 117, 134, 115, 138, 145, 151, 139, 113, 120, 114, 134, 126, 129, 132, 120, 122, 135, 148, 118, 118, 144, 124, 126, 102, 121, 125, 129, 119, 122, 107, 136, 127, 112, 134, 113, 131, 94, 106, 128, 125, 124, 123, 121, 127, 134, 118, 122, 121, 133, 122, 123, 134, 153, 144, 140, 129, 129, 142, 127, 161, 142, 121, 113, 128, 118, 114, 116, 115, 135, 128, 140, 112, 127, 125, 136, 108, 116, 123, 111, 123, 119, 130, 124, 123, 139, 137, 130, 106, 136, 119, 124, 116, 118, 120, 129, 129, 153, 124, 114, 111, 126, 134, 131, 118, 125, 134, 122, 123, 103, 137, 127, 134, 130, 115, 111, 134, 126, 102, 122, 129, 128, 135, 127, 126, 135, 121, 137, 116, 134, 146, 135, 140, 112, 108, 111, 114, 135, 124, 126, 125, 117, 141, 101, 113, 113, 138, 117, 120, 106, 134, 125, 130, 125, 128, 110, 116, 110, 119, 119, 144, 133, 115, 122, 126, 119, 127, 128, 125, 123, 115, 105, 138, 127, 137, 104, 133, 104, 135, 128, 108, 116, 132, 133, 131, 131, 112, 130, 134, 114, 125, 146, 119, 123, 131, 135, 116, 127, 128, 134, 132, 126, 138, 133, 135, 124, 123, 126, 128, 133, 111, 100, 134, 126, 122, 116, 124, 129, 129, 119, 120, 136, 123, 119, 146, 110, 141, 121, 142, 118, 137, 112, 128, 106, 139, 125, 120, 138, 120, 129, 135, 126, 127, 130, 134, 101, 121, 109, 136, 130, 107, 122, 127, 131, 145, 125, 137, 114, 129, 130, 134, 127, 136, 126, 118, 140, 130, 120, 120, 156, 128, 144, 126, 116, 131, 131, 121, 140, 118, 139, 129, 122, 147, 115, 118, 115, 147, 136, 115, 119, 131, 142, 111, 133, 154, 149, 134, 115, 102, 98, 128, 124, 153, 122, 118, 113, 128, 129, 118, 127, 109, 131, 128, 121, 129, 124, 116, 127, 116, 130, 122, 119, 119, 119, 143, 127, 129, 122, 103, 127, 140, 143, 121, 131, 119, 128, 127, 119, 128, 127, 130, 92, 125, 142, 131, 109, 123, 115, 133, 129, 142, 109, 126, 126, 103, 113, 119, 151, 125, 133, 131, 141, 104, 123, 112, 131, 128, 128, 120, 114, 122, 112, 126, 138, 130, 127, 131, 136, 112, 139, 113, 136, 124, 126, 124, 107, 126, 133, 144, 131, 145, 121, 157, 128, 147, 122, 116, 126, 144, 138, 129, 118, 136, 142, 123, 95, 118, 133, 111, 124, 125, 106, 130, 125, 136, 107, 110, 125, 129, 119, 135, 112, 100, 134, 131, 124, 119, 133, 127, 128, 126, 128, 143, 130, 117, 128, 125, 111, 123, 129, 137, 115, 124, 120, 110, 131, 122, 128, 129, 121, 118, 138, 121, 119, 113, 145, 142, 127, 121, 138, 112, 137, 119, 122, 124, 130, 124, 131, 128, 114, 121, 128, 130, 128, 148, 123, 126, 136, 135, 131, 132, 115, 113, 133, 125, 120, 150, 127, 132, 114, 122, 127, 132, 125, 122, 111, 135, 126, 121, 123, 125, 137, 104, 121, 123, 123, 134, 110, 133, 132, 117, 120, 126, 122, 147, 133, 147, 131, 115, 118, 103, 129, 124, 126, 112, 125, 126, 107, 131, 137, 138, 138, 128, 135, 111, 113, 127, 135, 119, 129, 118, 125, 134, 125, 143, 146, 120, 131, 146, 148, 140, 107, 123, 119, 145, 119, 134, 130, 132, 133, 123, 116, 138, 121, 140, 128, 127, 116, 113, 107, 120, 119, 128, 130, 133, 105, 121, 133, 113, 120, 140, 138, 140, 123, 116, 120, 123, 126, 126, 144, 113, 121, 116, 126, 133, 122, 134, 123, 132, 127, 140, 138, 131, 127, 109, 130, 136, 136, 114, 136, 106, 119, 125, 130, 133, 122, 118, 134, 137, 128, 115, 125, 119, 116, 141, 106, 124, 132, 126, 121, 122, 120, 109, 98, 140, 119, 157, 138, 122, 147, 118, 123, 121, 123, 122, 118, 133, 125, 135, 112, 128, 111, 121, 126, 106, 119, 115, 116, 128, 136, 120, 130, 127, 122, 127, 122, 118, 128, 120, 140, 134, 135, 129, 108, 127, 120, 141, 134, 133, 117, 122, 118, 139, 117, 123, 108, 131, 126, 116, 134, 129, 119, 123, 149, 130, 118, 126, 114, 121, 104, 145, 111, 108, 115, 117, 147, 133, 129, 130, 117, 125, 118, 112, 132, 132, 140, 111, 131, 138, 116, 122, 121, 130, 111, 126, 140, 137, 140, 118, 127, 124, 114, 135, 124, 136, 130, 141, 140, 136, 130, 118, 119, 121, 126, 128, 115, 133, 127, 117, 137, 144, 112, 128, 116, 132, 142, 113, 126, 126, 134, 135, 142, 129, 132, 137, 120, 131, 140, 120, 134, 134, 139, 132, 126, 122, 131, 144, 120, 124, 125, 120, 119, 123, 131, 128, 138, 121, 118, 139, 123, 147, 149, 112, 123, 128, 142, 143, 129, 140, 111, 120, 96, 152, 129, 126, 126, 125, 124, 107, 132, 123, 123, 121, 136, 128, 143, 119, 124, 141, 117, 141, 117, 137, 113, 136, 129, 141, 140, 133, 122, 136, 123, 123, 128, 134, 123, 131, 131, 119, 121, 117, 116, 126, 142, 118, 127, 127, 136, 121, 120, 112, 136, 130, 124, 111, 123, 129, 138, 118, 124, 119, 142, 115, 132, 124, 111, 119, 113, 103, 136, 111, 127, 124, 125, 114, 128, 144, 127, 121, 112, 108, 108, 119, 128, 120, 126, 123, 156, 116, 131, 138, 147, 126, 131, 149, 119, 134, 131, 125, 120, 124, 117, 128, 134, 127, 120, 111, 113, 146, 131, 122, 132, 131, 121, 138, 134, 127, 115, 119, 135, 137, 117, 100, 129, 133, 132, 122, 135, 118, 117, 114, 123, 124, 133, 137, 136, 126, 133, 134, 116, 155, 129, 127, 124, 137, 112, 142, 120, 128, 131, 113, 136, 124, 119, 121, 126, 142, 128, 131, 125, 122, 135, 125, 122, 112, 136, 148, 129, 129, 129, 121, 113, 152, 115, 136, 132, 126, 117, 113, 110, 122, 133, 120, 131, 113, 123, 117, 134, 122, 118, 119, 123, 119, 128, 139, 126, 124, 113, 121, 119, 119, 120, 117, 121, 125, 129, 116, 123, 107, 137, 127, 128, 128, 115, 131, 125, 133, 114, 121, 126, 117, 131, 114, 145, 133, 122, 137, 124, 110, 121, 121, 104, 109, 106, 135, 108, 138, 121, 126, 120, 112, 142, 117, 127, 130, 139, 137, 127, 121, 118, 127, 126, 139, 113, 113, 117, 130, 133, 124, 137, 119, 126, 119, 122, 131, 124, 136, 137, 137, 119, 118, 129, 130, 143, 149, 120, 123, 118, 103, 132, 124, 127, 126, 111, 117, 131, 115, 113, 135, 98, 122, 137, 126, 115, 131, 133, 110, 93, 119, 121, 135, 123, 117, 139, 110, 148, 121, 136, 134, 130, 120, 115, 141, 119, 125, 110, 136, 134, 134, 122, 105, 150, 141, 126, 111, 121, 119, 137, 130, 135, 111, 123, 132, 116, 120, 111, 124, 132, 126, 118, 124, 110, 115, 123, 118, 118, 94, 131, 106, 138, 136, 122, 117, 128, 162, 136, 124, 119, 120, 122, 124, 136, 107, 131, 110, 120, 135, 131, 126, 129, 136, 133, 118, 116, 129, 117, 121, 127, 125, 130, 139, 115, 141, 141, 130, 146, 125, 124, 136, 137, 122, 108, 118, 133, 150, 139, 124, 135, 143, 143, 111, 149, 120, 101, 124, 117, 127, 112, 120, 126, 102, 125, 120, 102, 119, 126, 132, 135, 125, 140, 95, 125, 130, 127, 135, 126, 113, 107, 139, 125, 133, 131, 125, 139, 127, 126, 120, 151, 129, 127, 103, 104, 140, 131, 131, 123, 108, 137, 137, 132, 128, 131, 129, 128, 124, 129, 106, 117, 122, 113, 119, 119, 127, 125, 120, 122, 117, 116, 125, 125, 132, 108, 134, 121, 125, 127, 140, 128, 116, 132, 148, 109, 140, 95, 147, 116, 128, 123, 124, 120, 122, 118, 117, 141, 126, 129, 131, 133, 118, 141, 135, 105, 120, 116, 154, 118, 131, 118, 122, 138, 126, 127, 141, 119, 122, 130, 126, 119, 122, 124, 145, 132, 126, 112, 147, 102, 101, 98, 142, 114, 117, 127, 116, 119, 126, 122, 124, 139, 127, 125, 120, 120, 129, 128, 128, 116, 141, 117, 122, 138, 123, 121, 121, 139, 126, 129, 126, 132, 124, 127, 125, 134, 134, 128, 128, 127, 114, 128, 147, 122, 129, 141, 132, 121, 124, 137, 118, 142, 123, 131, 139, 128, 139, 128, 135, 128, 109, 120, 139, 121, 120, 139, 114, 119, 112, 141, 109, 120, 128, 117, 127, 133, 136, 139, 133, 133, 143, 125, 128, 104, 106, 119, 114, 124, 117, 107, 123, 137, 126, 106, 155, 106, 132, 124, 138, 127, 119, 149, 119, 126, 112, 126, 137, 107, 137, 132, 134, 116, 118, 137, 128, 116, 103, 107, 128, 131, 129, 144, 112, 128, 98, 109, 126, 142, 129, 134, 110, 112, 143, 122, 137, 138, 109, 141, 113, 126, 124, 117, 131, 117, 132, 132, 134, 147, 139, 130, 124, 120, 134, 154, 114, 138, 126, 129, 112, 110, 137, 111, 121, 133, 116, 121, 99, 126, 119, 112, 126, 116, 123, 129, 126, 136, 128, 112, 113, 114, 130, 124, 119, 134, 107, 120, 119, 122, 115, 139, 123, 130, 118, 141, 125, 122, 117, 128, 118, 122, 120, 145, 131, 129, 126, 124, 129, 147, 124, 133, 122, 108, 124, 110, 106, 122, 135, 123, 116, 125, 143, 144, 131, 122, 121, 114, 134, 136, 129, 115, 136, 143, 121, 129, 133, 117, 125, 124, 126, 123, 122, 125, 130, 112, 132, 127, 112, 122, 119, 112, 108, 129, 131, 123, 119, 123, 133, 116, 108, 125, 107, 140, 120, 119, 141, 145, 143, 114, 117, 134, 123, 139, 129, 130, 117, 126, 125, 123, 118, 123, 119, 121, 116, 126, 129, 130, 120, 143, 128, 145, 131, 147, 130, 130, 135, 137, 136, 149, 147, 134, 143, 129, 118, 140, 126, 108, 132, 133, 136, 110, 129, 117, 123, 119, 118, 131, 128, 127, 131, 120, 120, 141, 121, 125, 124, 132, 127, 130, 123, 148, 138, 116, 121, 105, 137, 133, 120, 113, 121, 132, 142, 151, 135, 108, 142, 146, 127, 133, 133, 120, 127, 116, 107, 123, 124, 129, 135, 147, 136, 126, 123, 97, 123, 107, 127, 107, 134, 133, 127, 137, 123, 119, 137, 126, 124, 117, 126, 138, 102, 120, 125, 124, 126, 122, 127, 143, 118, 105, 152, 132, 121, 111, 102, 142, 121, 122, 124, 127, 134, 120, 113, 120, 130, 130, 118, 116, 103, 126, 130, 114, 120, 121, 147, 134, 127, 133, 122, 130, 118, 139, 127, 133, 133, 133, 131, 139, 126, 113, 141, 99, 127, 136, 112, 123, 148, 137, 116, 122, 105, 131, 115, 144, 144, 130, 131, 120, 140, 128, 129, 137, 121, 141, 128, 129, 136, 106, 114, 116, 104, 130, 113, 92, 124, 109, 126, 128, 130, 141, 125, 115, 122, 141, 125, 127, 140, 146, 126, 137, 123, 118, 113, 117, 107, 126, 133, 143, 126, 112, 110, 143, 139, 160, 121, 123, 119, 122, 123, 124, 113, 139, 135, 132, 121, 125, 121, 133, 138, 123, 118, 115, 132, 147, 122, 124, 122, 135, 126, 121, 119, 114, 123, 136, 131, 142, 130, 127, 131, 128, 116, 123, 106, 123, 134, 141, 133, 106, 112, 131, 113, 135, 125, 124, 109, 114, 127, 112, 142, 117, 136, 112, 124, 136, 127, 119, 112, 119, 110, 137, 133, 126, 134, 119, 133, 121, 142, 118, 133, 112, 106, 127, 148, 111, 130, 125, 122, 137, 122, 114, 135, 141, 130, 134, 118, 120, 132, 123, 107, 138, 130, 135, 118, 112, 119, 128, 114, 123, 127, 120, 122, 148, 121, 132, 125, 121, 116, 131, 125, 136, 132, 145, 118, 153, 116, 123, 128, 133, 134, 133, 126, 141, 139, 136, 114, 118, 124, 134, 126, 132, 132, 126, 111, 125, 114, 123, 129, 131, 135, 120, 118, 132, 128, 126, 124, 137, 142, 134, 139, 121, 131, 114, 121, 121, 111, 129, 119, 139, 127, 122, 132, 145, 114, 119, 121, 111, 126, 144, 119, 125, 108, 97, 116, 129, 116, 125, 126, 128, 121, 143, 124, 124, 112, 132, 134, 114, 121, 122, 152, 129, 130, 133, 107, 129, 106, 126, 123, 139, 125, 145, 135, 132, 129, 116, 120, 140, 120, 126, 120, 111, 102, 128, 141, 133, 130, 122, 133, 127, 109, 128, 122, 113, 129, 121, 133, 113, 133, 126, 122, 127, 132, 120, 125, 138, 127, 128, 122, 129, 124, 112, 125, 122, 123, 124, 135, 138, 119, 123, 141, 121, 108, 123, 139, 142, 122, 123, 119, 128, 116, 116, 124, 129, 134, 120, 121, 136, 126, 96, 124, 132, 130, 126, 133, 137, 132, 113, 118, 120, 123, 114, 130, 127, 130, 124, 136, 132, 125, 125, 132, 128, 111, 142, 121, 129, 150, 119, 121, 126, 120, 121, 123, 125, 144, 132, 127, 120, 141, 136, 148, 132, 136, 144, 120, 119, 122, 131, 121, 130, 113, 120, 124, 126, 99, 121, 118, 125, 111, 114, 119, 127, 122, 118, 135, 118, 121, 137, 141, 120, 117, 127, 127, 130, 132, 94, 126, 126, 114, 124, 118, 130, 127, 132, 126, 117, 143, 114, 127, 123, 120, 126, 113, 121, 129, 141, 119, 114, 109, 123, 133, 132, 136, 141, 124, 143, 121, 127, 129, 136, 123, 132, 134, 120, 119, 101, 131, 138, 137, 128, 149, 126, 103, 108, 134, 126, 122, 126, 133, 135, 129, 120, 119, 119, 120, 124, 126, 135, 124, 110, 123, 117, 149, 126, 133, 115, 120, 126, 128, 119, 136, 122, 127, 136, 124, 126, 125, 110, 136, 128, 116, 117, 148, 129, 126, 126, 128, 111, 115, 142, 119, 132, 129, 124, 109, 125, 112, 138, 118, 129, 115, 126, 118, 132, 136, 129, 110, 126, 129, 134, 124, 138, 143, 119, 129, 114, 123, 124, 130, 118, 127, 126, 115, 120, 119, 134, 123, 134, 131, 130, 131, 132, 131, 150, 136, 118, 136, 110, 123, 119, 123, 127, 125, 127, 129, 118, 141, 108, 115, 120, 111, 128, 124, 118, 132, 133, 112, 114, 134, 127, 134, 140, 130, 128, 145, 128, 119, 117, 118, 136, 144, 128, 107, 126, 103, 138, 123, 136, 120, 122, 132, 139, 141, 137, 132, 141, 130, 115, 129, 120, 130, 116, 122, 117, 126, 97, 133, 124, 134, 144, 127, 121, 129, 121, 144, 124, 122, 136, 119, 126, 123, 121, 135, 119, 116, 119, 128, 111, 123, 127, 130, 118, 130, 139, 125, 126, 121, 108, 132, 135, 124, 118, 126, 142, 124, 115, 148, 134, 121, 109, 141, 129, 130, 129, 124, 135, 86, 124, 112, 141, 133, 121, 120, 117, 136, 108, 134, 130, 130, 134, 126, 121, 134, 113, 148, 132, 142, 95, 136, 117, 120, 129, 110, 128, 118, 133, 103, 120, 128, 124, 131, 125, 115, 130, 99, 110, 121, 125, 118, 126, 133, 140, 128, 110, 138, 122, 125, 131, 131, 123, 114, 136, 139, 110, 129, 114, 141, 118, 124, 132, 143, 129, 121, 126, 116, 138, 126, 123, 118, 141, 111, 130, 110, 128, 122, 113, 126, 123, 112, 125, 148, 133, 122, 130, 122, 124, 126, 122, 137, 115, 124, 125, 116, 124, 135, 129, 114, 120, 128, 148, 122, 128, 108, 137, 121, 129, 109, 135, 112, 127, 120, 126, 121, 131, 131, 126, 125, 124, 130, 111, 96, 120, 113, 114, 103, 108, 128, 131, 126, 143, 115, 119, 132, 110, 139, 135, 126, 122, 125, 117, 134, 103, 134, 120, 131, 122, 130, 120, 120, 130, 107, 137, 140, 125, 115, 103, 110, 139, 123, 126, 122, 109, 117, 123, 157, 130, 133, 135, 123, 117, 126, 124, 131, 135, 121, 134, 124, 116, 107, 130, 139, 135, 117, 128, 114, 112, 135, 126, 154, 130, 121, 130, 128, 141, 133, 115, 108, 134, 111, 142, 134, 141, 117, 131, 143, 107, 128, 123, 126, 113, 106, 131, 124, 126, 126, 110, 116, 122, 110, 126, 135, 121, 125, 127, 119, 128, 116, 120, 124, 135, 136, 127, 138, 125, 125, 127, 122, 119, 136, 125, 131, 106, 124, 100, 116, 117, 140, 109, 118, 137, 120, 121, 124, 114, 124, 128, 133, 106, 120, 118, 122, 130, 124, 115, 132, 131, 110, 140, 123, 136, 138, 132, 131, 129, 121, 122, 118, 104, 110, 118, 137, 126, 148, 122, 138, 123, 120, 131, 124, 132, 120, 126, 118, 133, 124, 140, 125, 120, 118, 129, 124, 113, 112, 140, 126, 150, 120, 122, 125, 130, 116, 119, 107, 117, 115, 116, 142, 135, 130, 148, 123, 131, 110, 117, 126, 116, 132, 116, 113, 146, 117, 133, 135, 105, 124, 120, 126, 131, 144, 129, 124, 110, 129, 122, 122, 120, 136, 118, 119, 143, 133, 128, 115, 119, 119, 136, 120, 129, 126, 114, 125, 128, 123, 119, 100, 127, 125, 125, 119, 129, 135, 107, 124, 119, 124, 124, 131, 143, 123, 115, 107, 113, 142, 129, 124, 128, 110, 131, 123, 134, 117, 115, 117, 116, 130, 131, 114, 135, 139, 125, 133, 145, 114, 116, 123, 127, 116, 134, 131, 121, 127, 123, 111, 129, 125, 121, 140, 120, 120, 116, 122, 132, 125, 121, 120, 123, 119, 127, 124, 116, 121, 116, 121, 110, 117, 127, 99, 136, 120, 119, 134, 120, 142, 122, 106, 108, 132, 153, 131, 123, 127, 121, 114, 134, 146, 119, 115, 126, 111, 109, 143, 92, 121, 107, 139, 119, 119, 141, 123, 109, 116, 143, 128, 115, 121, 114, 128, 120, 116, 144, 136, 131, 130, 134, 129, 124, 125, 125, 122, 140, 124, 115, 140, 117, 123, 125, 129, 116, 136, 146, 131, 121, 110, 111, 139, 130, 133, 120, 134, 132, 121, 134, 112, 123, 129, 128, 137, 132, 122, 106, 118, 146, 124, 121, 124, 126, 102, 129, 128, 127, 127, 112, 110, 123, 118, 139, 129, 125, 132, 134, 120, 130, 117, 125, 125, 129, 136, 130, 124, 165, 125, 138, 104, 115, 118, 117, 136, 153, 118, 145, 123, 130, 122, 135, 142, 124, 129, 126, 115, 120, 120, 139, 127, 113, 126, 111, 110, 131, 106, 135, 141, 119, 145, 127, 132, 135, 108, 112, 113, 130, 130, 130, 131, 139, 124, 129, 127, 136, 124, 149, 130, 139, 134, 126, 112, 123, 134, 120, 146, 128, 115, 130, 132, 128, 123, 143, 109, 123, 115, 128, 140, 111, 122, 128, 128, 114, 120, 133, 140, 116, 118, 144, 118, 132, 139, 136, 138, 143, 121, 114, 123, 141, 126, 117, 132, 124, 138, 118, 142, 108, 135, 123, 142, 118, 146, 129, 124, 116, 135, 113, 123, 119, 131, 122, 139, 133, 121, 124, 123, 117, 135, 135, 115, 159, 124, 143, 139, 135, 128, 129, 133, 113, 116, 120, 129, 106, 124, 135, 126, 124, 121, 115, 120, 135, 127, 123, 127, 122, 126, 126, 156, 122, 129, 109, 128, 127, 130, 145, 132, 130, 109, 121, 113, 134, 130, 109, 135, 140, 117, 124, 130, 132, 131, 112, 113, 117, 124, 137, 116, 119, 114, 130, 121, 120, 134, 133, 117, 128, 121, 119, 136, 121, 136, 124, 126, 133, 138, 116, 123, 142, 133, 116, 120, 106, 129, 121, 135, 131, 119, 116, 133, 124, 124, 135, 128, 122, 128, 127, 110, 120, 123, 134, 114, 116, 119, 131, 130, 112, 116, 132, 134, 119, 135, 110, 121, 125, 131, 115, 124, 122, 138, 132, 131, 114, 117, 132, 127, 129, 116, 131, 110, 135, 122, 133, 123, 118, 117, 122, 120, 131, 142, 116, 130, 129, 111, 136, 104, 133, 113, 145, 119, 135, 121, 138, 124, 119, 113, 132, 123, 133, 144, 120, 116, 158, 127, 96, 123, 132, 111, 96, 119, 117, 109, 122, 105, 131, 78, 124, 125, 123, 119, 117, 134, 127, 109, 122, 102, 124, 121, 132, 138, 130, 123, 132, 131, 118, 121, 139, 135, 100, 119, 132, 103, 133, 128, 135, 112, 126, 135, 125, 119, 126, 139, 110, 134, 133, 129, 121, 128, 123, 131, 147, 133, 129, 138, 127, 105, 125, 121, 120, 127, 124, 149, 127, 106, 126, 118, 133, 114, 114, 133, 135, 124, 128, 117, 121, 132, 129, 139, 132, 123, 131, 128, 120, 133, 123, 128, 138, 131, 118, 136, 133, 113, 128, 134, 117, 120, 120, 120, 144, 131, 130, 131, 128, 125, 148, 140, 129, 125, 124, 124, 121, 125, 117, 140, 140, 128, 102, 116, 129, 133, 131, 153, 126, 109, 128, 139, 117, 127, 123, 118, 117, 116, 119, 133, 124, 138, 127, 121, 128, 119, 133, 106, 118, 119, 120, 133, 100, 131, 129, 119, 117, 128, 133, 134, 128, 137, 151, 133, 115, 133, 127, 126, 126, 109, 133, 116, 120, 135, 122, 136, 135, 129, 144, 130, 104, 130, 126, 127, 115, 117, 122, 129, 113, 153, 109, 122, 148, 131, 120, 120, 127, 131, 128, 129, 114, 135, 119, 127, 126, 134, 117, 128, 140, 122, 142, 127, 125, 113, 133, 128, 125, 136, 122, 131, 114, 120, 112, 121, 105, 123, 121, 131, 130, 137, 120, 114, 134, 126, 121, 117, 133, 128, 115, 129, 113, 134, 81, 136, 112, 122, 125, 129, 116, 134, 126, 120, 115, 116, 127, 129, 119, 123, 132, 127, 137, 143, 108, 126, 111, 116, 128, 123, 109, 122, 123, 130, 111, 121, 130, 123, 130, 128, 116, 125, 114, 132, 114, 114, 137, 127, 110, 112, 133, 128, 137, 129, 136, 122, 115, 122, 111, 100, 122, 127, 106, 145, 128, 134, 126, 131, 120, 135, 101, 107, 133, 122, 137, 136, 115, 136, 119, 125, 124, 137, 123, 111, 137, 131, 115, 109, 124, 133, 108, 128, 139, 111, 131, 119, 124, 123, 118, 132, 124, 135, 127, 118, 142, 127, 121, 132, 131, 132, 122, 116, 105, 128, 99, 129, 142, 132, 133, 135, 123, 106, 113, 138, 119, 115, 118, 128, 147, 125, 120, 122, 148, 118, 139, 111, 135, 124, 121, 143, 128, 135, 131, 139, 138, 118, 129, 115, 144, 114, 140, 125, 115, 119, 124, 120, 112, 126, 133, 135, 149, 115, 129, 137, 135, 125, 133, 114, 124, 118, 122, 134, 132, 151, 176, 113, 127, 130, 133, 133, 105, 124, 129, 123, 127, 143, 124, 100, 124, 143, 140, 106, 120, 115, 118, 124, 131, 124, 116, 126, 119, 124, 133, 128, 143, 133, 135, 122, 117, 126, 136, 115, 113, 105, 103, 128, 131, 139, 126, 125, 130, 137, 119, 109, 130, 130, 118, 110, 127, 129, 134, 140, 124, 130, 99, 132, 127, 133, 131, 124, 112, 119, 128, 114, 105, 129, 142, 123, 125, 114, 122, 143, 125, 128, 106, 145, 121, 127, 112, 110, 124, 129, 130, 109, 124, 115, 114, 119, 127, 117, 120, 143, 141, 123, 159, 133, 127, 140, 126, 139, 132, 129, 114, 112, 131, 119, 126, 122, 115, 119, 118, 118, 137, 124, 145, 134, 121, 122, 124, 116, 134, 134, 128, 114, 129, 130, 114, 112, 109, 136, 124, 121, 114, 113, 117, 111, 114, 125, 131, 131, 137, 118, 128, 124, 131, 123, 128, 122, 135, 121, 132, 120, 123, 124, 136, 107, 135, 135, 118, 112, 114, 103, 130, 109, 106, 93, 115, 118, 112, 117, 137, 126, 117, 124, 109, 126, 113, 124, 114, 127, 123, 135, 117, 133, 115, 132, 137, 120, 105, 118, 110, 123, 118, 135, 133, 119, 118, 137, 113, 113, 114, 123, 117, 119, 117, 128, 131, 112, 141, 107, 121, 126, 128, 133, 129, 135, 130, 116, 120, 141, 131, 127, 98, 116, 135, 131, 128, 125, 141, 130, 113, 137, 106, 123, 113, 117, 106, 130, 137, 124, 118, 118, 125, 117, 132, 126, 124, 122, 130, 130, 135, 142, 130, 138, 127, 118, 116, 145, 126, 124, 121, 144, 123, 134, 126, 116, 124, 123, 147, 117, 124, 129, 118, 133, 112, 134, 126, 137, 113, 138, 131, 148, 130, 127, 136, 114, 123, 118, 126, 122, 122, 126, 140, 137, 118, 129, 126, 117, 115, 117, 138, 112, 145, 108, 110, 132, 117, 123, 124, 144, 130, 130, 127, 131, 131, 122, 131, 118, 142, 129, 124, 135, 125, 134, 126, 140, 131, 128, 124, 114, 117, 107, 130, 138, 130, 141, 120, 104, 129, 136, 122, 127, 122, 128, 150, 119, 130, 139, 109, 112, 114, 117, 134, 114, 115, 128, 124, 113, 140, 142, 115, 122, 110, 131, 127, 135, 109, 132, 152, 126, 138, 122, 129, 128, 127, 128, 109, 112, 135, 122, 133, 129, 129, 136, 118, 109, 108, 138, 137, 124, 126, 123, 121, 119, 111, 132, 130, 125, 140, 123, 128, 134, 119, 123, 122, 114, 116, 122, 107, 116, 114, 128, 127, 122, 129, 134, 125, 150, 130, 116, 113, 128, 120, 118, 112, 144, 135, 121, 116, 144, 136, 115, 131, 131, 128, 117, 120, 125, 148, 121, 119, 134, 122, 109, 132, 136, 126, 116, 126, 119, 134, 116, 135, 124, 115, 127, 138, 117, 104, 126, 127, 105, 112, 113, 131, 136, 129, 123, 125, 160, 126, 117, 121, 125, 129, 129, 124, 115, 125, 134, 115, 118, 124, 102, 115, 124, 131, 140, 124, 114, 118, 133, 132, 128, 132, 110, 115, 142, 127, 134, 121, 137, 124, 130, 133, 126, 129, 141, 116, 109, 118, 116, 133, 128, 113, 122, 122, 132, 135, 119, 125, 123, 126, 111, 118, 124, 118, 127, 137, 121, 116, 125, 118, 140, 131, 126, 111, 116, 116, 123, 130, 126, 119, 114, 133, 116, 132, 135, 125, 127, 116, 138, 132, 124, 126, 155, 130, 125, 111, 143, 141, 128, 125, 127, 115, 128, 126, 147, 102, 129, 144, 128, 129, 129, 139, 138, 138, 129, 136, 123, 123, 118, 111, 130, 132, 134, 116, 113, 111, 97, 147, 124, 129, 122, 131, 123, 123, 127, 141, 107, 110, 128, 134, 127, 114, 121, 142, 124, 122, 133, 130, 126, 131, 124, 118, 119, 142, 116, 110, 135, 129, 119, 136, 132, 109, 139, 115, 114, 128, 125, 124, 131, 131, 145, 138, 116, 122, 122, 124, 121, 100, 122, 163, 128, 121, 136, 111, 113, 129, 102, 123, 129, 149, 137, 114, 114, 116, 111, 135, 133, 132, 127, 131, 126, 133, 119, 129, 121, 129, 137, 142, 122, 127, 136, 128, 133, 117, 103, 108, 119, 124, 125, 124, 115, 107, 132, 130, 137, 130, 128, 118, 136, 144, 123, 122, 111, 122, 120, 121, 136, 121, 135, 127, 120, 121, 131, 125, 139, 122, 143, 144, 124, 127, 117, 121, 112, 113, 128, 123, 117, 141, 127, 140, 139, 134, 130, 132, 126, 133, 120, 119, 102, 117, 138, 130, 107, 123, 143, 119, 128, 125, 111, 118, 132, 139, 146, 123, 135, 133, 139, 113, 129, 134, 122, 121, 123, 131, 120, 141, 117, 130, 115, 141, 131, 130, 114, 126, 129, 121, 111, 134, 121, 109, 129, 116, 103, 118, 122, 132, 110, 125, 123, 140, 124, 136, 136, 128, 116, 109, 118, 117, 141, 127, 131, 130, 113, 111, 132, 114, 125, 119, 117, 126, 115, 125, 127, 136, 144, 143, 135, 128, 127, 153, 118, 134, 114, 136, 132, 127, 111, 140, 126, 135, 139, 128, 136, 123, 120, 139, 111, 129, 138, 123, 116, 120, 130, 114, 142, 131, 107, 107, 142, 121, 112, 133, 123, 144, 127, 121, 139, 128, 134, 122, 149, 143, 127, 131, 115, 122, 137, 100, 116, 125, 116, 123, 120, 132, 138, 121, 128, 145, 131, 132, 138, 143, 124, 108, 130, 143, 135, 129, 108, 115, 118, 116, 143, 133, 138, 133, 127, 128, 125, 103, 113, 115, 149, 130, 130, 113, 132, 129, 131, 117, 116, 107, 132, 131, 126, 121, 122, 117, 120, 116, 131, 137, 130, 124, 119, 136, 134, 137, 124, 116, 126, 125, 142, 120, 112, 113, 122, 131, 124, 110, 126, 127, 132, 127, 130, 131, 129, 121, 142, 108, 124, 106, 134, 127, 112, 146, 124, 119, 135, 128, 123, 123, 125, 121, 115, 128, 105, 117, 129, 136, 117, 128, 118, 128, 121, 123, 124, 122, 135, 124, 129, 131, 127, 106, 123, 126, 132, 124, 132, 155, 125, 117, 123, 106, 128, 111, 111, 128, 124, 131, 126, 125, 126, 123, 127, 129, 116, 107, 130, 127, 129, 138, 139, 105, 129, 134, 132, 138, 103, 142, 135, 134, 117, 121, 147, 125, 115, 133, 129, 130, 117, 138, 117, 135, 132, 128, 130, 113, 118, 118, 129, 137, 129, 134, 134, 138, 121, 130, 132, 117, 116, 124, 132, 129, 126, 125, 121, 134, 144, 152, 132, 121, 119, 130, 135, 144, 126, 123, 118, 128, 119, 127, 99, 130, 123, 139, 121, 116, 122, 141, 136, 108, 124, 129, 137, 129, 147, 145, 124, 134, 120, 121, 124, 119, 102, 119, 127, 139, 129, 115, 134, 128, 124, 124, 130, 135, 121, 128, 134, 135, 119, 124, 124, 129, 119, 117, 112, 127, 126, 108, 113, 131, 118, 127, 129, 125, 122, 115, 119, 127, 116, 125, 117, 120, 119, 135, 142, 124, 123, 137, 117, 122, 127, 140, 141, 134, 122, 134, 140, 135, 129, 122, 130, 126, 110, 120, 117, 150, 123, 132, 128, 129, 127, 128, 128, 131, 150, 118, 137, 126, 109, 125, 110, 131, 127, 137, 147, 114, 123, 124, 126, 139, 116, 127, 132, 127, 118, 125, 122, 122, 131, 145, 120, 122, 116, 126, 124, 116, 111, 123, 112, 138, 130, 116, 101, 139, 136, 137, 135, 119, 132, 132, 136, 117, 140, 135, 121, 110, 150, 143, 112, 131, 133, 135, 122, 139, 135, 108, 115, 121, 142, 117, 127, 127, 122, 132, 120, 119, 111, 131, 118, 133, 127, 133, 116, 123, 135, 132, 123, 132, 118, 114, 124, 123, 108, 132, 121, 126, 108, 122, 125, 116, 131, 113, 122, 121, 122, 114, 131, 133, 138, 111, 129, 118, 122, 125, 118, 116, 118, 123, 127, 118, 124, 135, 118, 124, 119, 118, 123, 119, 124, 129, 110, 125, 136, 116, 116, 125, 113, 108, 145, 127, 132, 116, 123, 111, 123, 133, 120, 126, 127, 137, 99, 125, 124, 108, 119, 116, 120, 111, 133, 139, 130, 128, 113, 119, 126, 124, 123, 155, 117, 139, 132, 127, 128, 132, 142, 121, 115, 125, 105, 126, 121, 140, 130, 132, 123, 133, 121, 115, 123, 134, 137, 125, 150, 114, 116, 128, 132, 131, 114, 125, 127, 120, 111, 134, 127, 131, 117, 136, 120, 112, 121, 130, 121, 125, 118, 127, 149, 130, 148, 128, 108, 145, 141, 120, 130, 119, 127, 120, 129, 125, 124, 124, 135, 134, 108, 123, 137, 116, 117, 114, 119, 122, 118, 124, 135, 131, 110, 126, 135, 125, 118, 131, 122, 119, 120, 122, 115, 139, 133, 125, 131, 120, 130, 130, 135, 125, 135, 132, 132, 118, 143, 113, 142, 135, 110, 114, 123, 144, 135, 116, 125, 116, 136, 123, 109, 120, 126, 111, 143, 117, 117, 117, 134, 119, 129, 136, 135, 109, 129, 127, 127, 135, 139, 125, 121, 128, 125, 138, 120, 149, 116, 125, 124, 128, 149, 144, 123, 113, 140, 139, 118, 146, 123, 121, 142, 115, 131, 124, 129, 119, 111, 122, 123, 136, 138, 113, 137, 130, 125, 112, 130, 131, 111, 145, 126, 126, 130, 111, 116, 111, 129, 119, 137, 125, 125, 108, 127, 127, 112, 138, 113, 131, 141, 130, 126, 128, 113, 118, 114, 150, 123, 123, 117, 125, 141, 138, 107, 132, 129, 126, 124, 110, 130, 127, 123, 123, 125, 124, 120, 125, 134, 144, 115, 115, 125, 133, 131, 127, 118, 141, 121, 118, 144, 125, 132, 122, 126, 133, 127, 130, 144, 115, 136, 116, 110, 126, 139, 118, 141, 120, 127, 121, 134, 104, 127, 123, 110, 114, 107, 124, 129, 141, 138, 131, 120, 130, 121, 103, 111, 118, 138, 120, 129, 133, 144, 125, 128, 111, 137, 107, 122, 124, 132, 135, 121, 125, 117, 128, 118, 129, 152, 122, 124, 141, 116, 120, 132, 127, 111, 125, 153, 122, 120, 124, 114, 119, 125, 117, 136, 115, 134, 132, 140, 125, 118, 137, 123, 132, 121, 131, 136, 140, 98, 136, 119, 121, 127, 134, 126, 119, 127, 127, 115, 127, 113, 130, 105, 114, 118, 137, 136, 119, 114, 146, 123, 133, 153, 120, 118, 130, 131, 123, 122, 144, 115, 126, 120, 126, 134, 138, 125, 120, 126, 123, 117, 130, 106, 119, 115, 143, 110, 120, 121, 136, 114, 117, 118, 122, 139, 126, 136, 140, 140, 146, 112, 132, 153, 122, 125, 126, 131, 120, 107, 130, 127, 101, 150, 117, 126, 122, 124, 130, 140, 112, 140, 117, 142, 115, 109, 136, 130, 131, 117, 128, 120, 134, 125, 97, 128, 129, 129, 120, 135, 123, 137, 118, 130, 126, 122, 118, 140, 124, 131, 118, 121, 117, 144, 100, 112, 134, 110, 111, 124, 128, 129, 127, 145, 147, 118, 121, 142, 118, 127, 121, 118, 120, 135, 126, 128, 136, 138, 133, 110, 130, 111, 124, 128, 121, 125, 115, 131, 114, 130, 121, 121, 124, 124, 131, 118, 128, 107, 130, 133, 147, 131, 115, 111, 112, 128, 103, 99, 140, 147, 116, 145, 136, 127, 132, 122, 127, 135, 109, 135, 124, 115, 113, 143, 110, 117, 139, 134, 143, 122, 129, 139, 130, 132, 117, 134, 113, 107, 125, 109, 130, 130, 127, 122, 109, 120, 133, 120, 117, 126, 130, 119, 118, 142, 133, 120, 134, 104, 143, 116, 140, 143, 120, 136, 127, 133, 127, 137, 119, 108, 124, 99, 103, 118, 124, 127, 113, 137, 126, 142, 131, 120, 135, 131, 130, 118, 140, 127, 110, 126, 127, 129, 131, 132, 122, 108, 127, 145, 126, 120, 130, 128, 127, 139, 134, 132, 121, 135, 107, 111, 119, 135, 125, 111, 105, 140, 115, 114, 126, 129, 112, 126, 142, 131, 127, 108, 118, 140, 104, 118, 124, 142, 138, 142, 136, 118, 137, 123, 117, 132, 138, 116, 120, 120, 125, 126, 124, 158, 137, 123, 127, 113, 119, 104, 140, 125, 125, 132, 130, 144, 110, 133, 126, 105, 124, 134, 129, 132, 121, 123, 145, 131, 107, 133, 120, 108, 128, 139, 127, 130, 129, 122, 137, 134, 126, 121, 122, 129, 146, 119, 115, 116, 117, 135, 136, 123, 123, 146, 116, 121, 121, 141, 135, 145, 124, 126, 124, 128, 154, 134, 119, 145, 97, 112, 131, 119, 122, 134, 110, 98, 142, 120, 112, 135, 111, 131, 111, 135, 146, 108, 141, 124, 120, 120, 122, 121, 121, 122, 118, 129, 119, 134, 132, 133, 113, 128, 134, 126, 131, 112, 124, 116, 125, 135, 123, 132, 126, 129, 125, 135, 125, 117, 114, 124, 115, 119, 116, 116, 124, 124, 128, 126, 135, 127, 125, 138, 125, 117, 110, 119, 118, 137, 126, 136, 102, 124, 97, 115, 131, 133, 125, 107, 138, 128, 105, 122, 148, 117, 120, 120, 117, 118, 130, 124, 124, 133, 105, 123, 121, 111, 112, 137, 124, 135, 129, 128, 137, 134, 123, 122, 129, 132, 130, 107, 105, 121, 126, 132, 132, 118, 128, 129, 129, 137, 121, 112, 136, 107, 119, 113, 134, 137, 123, 115, 125, 112, 140, 124, 130, 125, 124, 146, 130, 127, 135, 143, 130, 118, 157, 127, 121, 124, 134, 123, 122, 121, 138, 136, 133, 125, 126, 136, 119, 107, 117, 131, 139, 160, 150, 115, 116, 137, 127, 113, 134, 144, 111, 136, 126, 136, 124, 139, 141, 137, 131, 122, 128, 119, 133, 109, 150, 115, 118, 123, 109, 102, 133, 115, 107, 128, 124, 133, 116, 143, 123, 104, 125, 142, 122, 120, 129, 143, 119, 130, 117, 114, 127, 140, 119, 108, 122, 116, 127, 129, 115, 117, 121, 119, 140, 112, 109, 144, 146, 122, 114, 126, 116, 117, 116, 144, 106, 133, 135, 139, 140, 132, 135, 127, 124, 139, 125, 128, 110, 126, 121, 122, 125, 111, 120, 110, 128, 129, 140, 121, 116, 113, 118, 113, 127, 105, 134, 116, 147, 130, 128, 136, 133, 116, 126, 124, 129, 116, 129, 112, 120, 128, 140, 114, 144, 117, 127, 116, 111, 125, 135, 106, 132, 119, 127, 128, 123, 120, 131, 121, 125, 140, 121, 130, 115, 117, 124, 112, 129, 123, 117, 147, 124, 137, 124, 129, 108, 124, 115, 115, 119, 141, 155, 121, 117, 105, 141, 137, 119, 131, 113, 128, 121, 129, 136, 131, 121, 115, 135, 123, 128, 128, 131, 131, 123, 119, 116, 125, 122, 136, 125, 124, 118, 126, 116, 118, 118, 137, 133, 120, 128, 139, 125, 108, 122, 138, 133, 130, 123, 133, 129, 126, 115, 122, 119, 123, 125, 111, 121, 111, 139, 133, 136, 125, 109, 125, 107, 119, 123, 117, 118, 138, 135, 114, 135, 105, 121, 118, 114, 107, 136, 115, 137, 130, 117, 123, 133, 117, 118, 119, 111, 118, 124, 145, 111, 96, 121, 115, 112, 147, 106, 124, 121, 116, 121, 125, 144, 128, 119, 124, 115, 97, 120, 133, 98, 108, 119, 130, 123, 135, 136, 160, 116, 139, 128, 121, 138, 134, 127, 135, 134, 123, 130, 122, 143, 136, 110, 124, 110, 132, 145, 135, 106, 131, 135, 121, 128, 119, 134, 114, 130, 113, 140, 128, 126, 120, 129, 134, 107, 131, 128, 132, 122, 129, 139, 125, 117, 149, 117, 140, 111, 139, 98, 111, 124, 129, 123, 118, 124, 108, 132, 120, 115, 118, 132, 123, 126, 130, 128, 123, 117, 133, 117, 131, 136, 119, 118, 126, 110, 133, 127, 130, 126, 123, 126, 126, 121, 121, 122, 115, 111, 128, 117, 117, 126, 132, 126, 117, 116, 127, 132, 120, 122, 136, 123, 98, 128, 132, 133, 130, 119, 126, 133, 109, 124, 140, 141, 118, 118, 108, 121, 124, 129, 120, 122, 128, 135, 129, 123, 129, 124, 130, 127, 133, 136, 122, 137, 113, 113, 130, 110, 118, 127, 144, 112, 121, 112, 132, 120, 123, 132, 141, 120, 126, 129, 103, 137, 109, 111, 129, 125, 115, 135, 145, 117, 142, 128, 105, 117, 113, 127, 135, 115, 136, 109, 131, 133, 138, 147, 126, 111, 119, 143, 117, 120, 134, 130, 121, 126, 130, 124, 117, 123, 121, 123, 132, 118, 138, 106, 130, 131, 123, 118, 110, 102, 123, 146, 112, 124, 151, 137, 111, 139, 113, 127, 133, 118, 133, 130, 124, 127, 128, 129, 131, 135, 132, 119, 121, 128, 136, 115, 129, 135, 144, 136, 121, 127, 139, 123, 112, 123, 139, 124, 127, 149, 133, 117, 122, 119, 140, 146, 127, 118, 122, 124, 117, 127, 121, 121, 142, 117, 120, 134, 119, 117, 125, 126, 127, 134, 120, 119, 136, 134, 137, 115, 123, 142, 128, 123, 119, 142, 133, 140, 119, 124, 126, 120, 111, 109, 115, 127, 121, 133, 122, 126, 96, 123, 136, 129, 120, 115, 132, 121, 130, 118, 129, 126, 132, 128, 120, 116, 114, 134, 128, 128, 128, 132, 108, 131, 113, 123, 136, 125, 124, 116, 124, 137, 136, 118, 123, 126, 132, 122, 120, 127, 123, 102, 126, 118, 114, 122, 118, 127, 120, 112, 122, 137, 114, 113, 108, 116, 114, 118, 131, 114, 122, 124, 141, 105, 121, 118, 136, 113, 128, 117, 120, 136, 139, 138, 123, 128, 115, 124, 118, 119, 114, 108, 85, 134, 113, 112, 117, 132, 113, 123, 128, 135, 125, 140, 101, 118, 121, 127, 136, 135, 135, 112, 135, 120, 129, 128, 139, 123, 116, 129, 103, 136, 137, 122, 122, 106, 145, 131, 120, 127, 118, 118, 117, 125, 129, 115, 115, 113, 114, 102, 111, 135, 129, 136, 132, 124, 114, 105, 128, 116, 121, 130, 121, 135, 131, 129, 125, 135, 121, 123, 113, 124, 106, 122, 109, 121, 123, 133, 133, 152, 122, 139, 104, 130, 124, 117, 138, 123, 120, 108, 125, 105, 113, 132, 130, 108, 123, 123, 153, 125, 131, 118, 121, 129, 118, 117, 130, 115, 139, 130, 127, 121, 117, 134, 119, 106, 115, 120, 100, 130, 116, 120, 123, 133, 148, 126, 101, 114, 110, 124, 128, 124, 126, 119, 129, 118, 101, 125, 146, 139, 107, 100, 122, 130, 128, 133, 125, 130, 128, 138, 112, 126, 127, 131, 131, 115, 162, 137, 129, 115, 137, 114, 115, 120, 128, 104, 119, 113, 124, 113, 140, 128, 126, 117, 131, 140, 120, 127, 138, 124, 123, 151, 124, 118, 134, 118, 117, 142, 134, 134, 149, 136, 118, 125, 143, 135, 125, 120, 121, 117, 122, 121, 120, 134, 107, 135, 127, 115, 117, 122, 115, 120, 122, 115, 118, 126, 130, 114, 118, 126, 127, 122, 139, 110, 118, 137, 138, 121, 134, 102, 117, 136, 107, 123, 124, 131, 148, 137, 114, 114, 118, 124, 126, 126, 115, 123, 126, 118, 130, 117, 122, 119, 133, 131, 129, 122, 115, 123, 118, 121, 130, 123, 136, 120, 119, 118, 119, 123, 127, 129, 152, 136, 135, 149, 125, 130, 113, 108, 148, 116, 130, 139, 130, 133, 109, 133, 124, 127, 118, 118, 124, 114, 140, 123, 129, 115, 114, 134, 143, 113, 131, 124, 124, 128, 152, 129, 143, 122, 130, 147, 118, 120, 102, 109, 110, 107, 122, 124, 114, 119, 116, 119, 131, 122, 130, 148, 130, 128, 144, 129, 132, 130, 122, 104, 131, 120, 134, 121, 129, 120, 119, 123, 125, 131, 118, 128, 126, 130, 139, 138, 128, 141, 133, 116, 111, 138, 131, 120, 128, 114, 137, 125, 118, 129, 128, 120, 101, 124, 116, 139, 135, 134, 154, 131, 121, 140, 131, 126, 119, 130, 133, 120, 145, 129, 117, 125, 124, 129, 112, 131, 130, 134, 139, 133, 111, 126, 129, 132, 116, 130, 133, 119, 123, 127, 132, 135, 124, 133, 133, 119, 146, 125, 123, 117, 131, 120, 128, 123, 135, 114, 115, 138, 129, 120, 116, 113, 128, 145, 117, 140, 127, 120, 138, 126, 144, 141, 123, 129, 114, 135, 121, 125, 109, 102, 113, 126, 130, 112, 115, 128, 122, 113, 126, 115, 123, 124, 129, 121, 116, 109, 133, 147, 128, 132, 129, 128, 140, 129, 117, 122, 100, 111, 122, 135, 114, 136, 126, 146, 127, 138, 119, 135, 126, 137, 113, 136, 145, 119, 134, 147, 115, 139, 120, 123, 115, 120, 122, 116, 140, 132, 132, 132, 133, 123, 125, 125, 135, 121, 101, 126, 132, 137, 126, 137, 123, 144, 140, 124, 118, 124, 128, 135, 129, 129, 119, 120, 127, 117, 123, 124, 121, 128, 134, 131, 128, 136, 120, 119, 122, 121, 141, 123, 139, 128, 118, 121, 126, 108, 111, 129, 133, 127, 112, 128, 110, 121, 114, 121, 123, 113, 127, 132, 144, 142, 127, 116, 111, 137, 134, 136, 135, 126, 120, 118, 123, 117, 131, 118, 129, 133, 116, 112, 138, 130, 120, 127, 110, 143, 113, 124, 137, 140, 128, 117, 119, 119, 132, 136, 116, 125, 112, 129, 123, 125, 127, 111, 114, 114, 131, 125, 134, 126, 126, 129, 124, 134, 119, 124, 115, 103, 126, 122, 138, 132, 123, 135, 116, 146, 129, 153, 137, 133, 130, 124, 144, 133, 125, 144, 121, 142, 115, 126, 133, 123, 135, 137, 132, 118, 138, 140, 139, 114, 127, 125, 114, 117, 113, 113, 116, 127, 126, 136, 127, 121, 136, 115, 114, 128, 121, 118, 122, 121, 140, 127, 131, 124, 131, 142, 112, 122, 109, 130, 142, 123, 131, 139, 136, 111, 135, 121, 145, 124, 112, 117, 143, 124, 89, 127, 117, 133, 119, 129, 148, 138, 112, 126, 109, 130, 137, 136, 120, 132, 126, 112, 145, 123, 139, 132, 127, 124, 132, 142, 130, 109, 113, 137, 103, 135, 119, 131, 107, 121, 105, 128, 119, 120, 126, 125, 137, 117, 120, 123, 98, 121, 109, 125, 111, 99, 119, 129, 114, 122, 110, 113, 129, 132, 119, 123, 120, 109, 122, 126, 130, 115, 116, 125, 106, 135, 103, 138, 118, 146, 117, 113, 113, 112, 131, 131, 141, 117, 131, 150, 123, 126, 114, 147, 132, 120, 126, 122, 124, 141, 122, 146, 114, 119, 132, 125, 133, 126, 125, 134, 120, 127, 117, 137, 135, 107, 122, 131, 131, 118, 113, 114, 121, 127, 120, 126, 127, 106, 128, 133, 123, 115, 114, 113, 123, 124, 119, 131, 115, 109, 126, 129, 139, 156, 112, 123, 107, 136, 104, 121, 123, 111, 144, 141, 130, 129, 137, 136, 116, 133, 102, 125, 108, 135, 122, 123, 131, 124, 113, 135, 127, 116, 127, 142, 116, 139, 124, 125, 108, 136, 129, 140, 139, 120, 131, 140, 120, 118, 131, 142, 119, 134, 134, 126, 142, 122, 133, 122, 134, 129, 124, 143, 116, 116, 118, 128, 137, 120, 124, 122, 127, 123, 109, 138, 134, 116, 127, 114, 128, 120, 124, 124, 120, 105, 110, 126, 138, 139, 122, 113, 139, 131, 127, 118, 126, 127, 106, 129, 125, 133, 133, 128, 117, 123, 137, 134, 119, 126, 132, 130, 136, 113, 109, 138, 128, 122, 119, 114, 138, 121, 145, 110, 135, 110, 133, 137, 133, 113, 126, 143, 106, 111, 120, 130, 138, 123, 152, 123, 124, 104, 148, 109, 132, 124, 128, 121, 142, 108, 114, 128, 106, 121, 134, 142, 108, 136, 116, 134, 122, 126, 140, 120, 155, 116, 138, 112, 143, 117, 113, 129, 137, 138, 120, 155, 110, 113, 125, 119, 107, 122, 115, 106, 139, 134, 115, 111, 133, 126, 138, 127, 127, 146, 142, 112, 134, 119, 130, 141, 118, 132, 123, 118, 120, 94, 128, 128, 144, 114, 124, 136, 136, 118, 137, 127, 122, 125, 134, 131, 139, 123, 139, 118, 111, 133, 130, 124, 124, 116, 139, 115, 136, 111, 122, 123, 122, 139, 131, 109, 121, 139, 124, 120, 105, 141, 103, 123, 137, 121, 123, 135, 105, 120, 132, 133, 98, 118, 122, 117, 133, 123, 127, 115, 119, 135, 136, 133, 131, 119, 130, 131, 115, 136, 142, 120, 126, 144, 144, 133, 125, 105, 125, 136, 122, 140, 122, 134, 118, 131, 109, 137, 130, 137, 110, 143, 127, 105, 131, 116, 126, 128, 119, 115, 131, 135, 113, 131, 123, 121, 123, 126, 137, 124, 154, 124, 125, 113, 129, 126, 126, 114, 115, 122, 134, 124, 120, 131, 130, 124, 117, 134, 131, 137, 122, 123, 113, 135, 132, 124, 127, 129, 138, 143, 111, 131, 114, 123, 126, 119, 120, 122, 120, 132, 133, 120, 118, 138, 136, 107, 121, 132, 115, 111, 113, 125, 126, 114, 142, 124, 132, 130, 124, 111, 115, 123, 135, 139, 116, 130, 131, 116, 125, 134, 116, 119, 119, 95, 115, 106, 127, 130, 133, 124, 112, 130, 146, 138, 118, 123, 152, 117, 117, 120, 116, 100, 126, 133, 120, 119, 123, 139, 125, 125, 136, 122, 123, 116, 150, 145, 104, 124, 126, 128, 138, 113, 124, 147, 126, 127, 124, 137, 127, 127, 126, 113, 114, 115, 108, 113, 122, 123, 121, 126, 113, 122, 131, 150, 120, 128, 116, 131, 131, 136, 123, 112, 134, 121, 152, 123, 148, 122, 133, 115, 127, 130, 120, 121, 132, 131, 129, 112, 121, 126, 126, 102, 119, 120, 126, 112, 119, 124, 116, 127, 124, 130, 137, 137, 124, 122, 117, 108, 138, 102, 114, 116, 128, 122, 132, 129, 137, 126, 119, 117, 113, 131, 109, 126, 122, 127, 104, 126, 131, 151, 127, 122, 131, 128, 127, 115, 131, 115, 132, 123, 99, 120, 128, 117, 129, 130, 135, 134, 126, 116, 137, 125, 127, 153, 124, 117, 143, 118, 142, 122, 119, 127, 142, 112, 124, 135, 121, 131, 125, 118, 116, 130, 119, 119, 123, 128, 127, 123, 111, 109, 105, 124, 128, 117, 129, 135, 121, 132, 130, 120, 123, 127, 123, 145, 119, 123, 120, 109, 142, 121, 110, 119, 106, 121, 133, 132, 125, 135, 138, 139, 118, 136, 106, 113, 108, 122, 128, 133, 125, 143, 155, 130, 153, 141, 116, 130, 151, 127, 109, 126, 117, 150, 132, 124, 124, 125, 124, 141, 130, 132, 122, 114, 143, 127, 128, 138, 116, 118, 124, 151, 128, 118, 114, 125, 117, 124, 120, 130, 119, 136, 114, 117, 112, 133, 140, 126, 134, 110, 119, 137, 126, 120, 150, 142, 133, 108, 146, 124, 126, 125, 129, 134, 118, 125, 124, 139, 126, 128, 120, 129, 129, 126, 125, 121, 137, 130, 130, 136, 119, 129, 120, 128, 142, 124, 120, 132, 146, 126, 126, 113, 123, 141, 121, 137, 123, 106, 110, 134, 120, 121, 120, 118, 121, 112, 114, 107, 118, 142, 128, 135, 116, 132, 117, 138, 140, 136, 112, 128, 131, 139, 124, 108, 136, 165, 118, 126, 131, 108, 131, 123, 125, 131, 132, 136, 113, 122, 117, 126, 121, 128, 131, 129, 124, 128, 139, 134, 116, 118, 114, 141, 115, 135, 128, 129, 135, 109, 123, 119, 137, 132, 126, 116, 140, 130, 124, 118, 133, 129, 123, 126, 115, 111, 132, 133, 136, 131, 117, 113, 116, 115, 108, 129, 130, 121, 122, 129, 127, 137, 124, 132, 138, 123, 116, 123, 127, 110, 129, 124, 129, 122, 136, 106, 127, 125, 122, 133, 128, 113, 137, 127, 133, 114, 126, 124, 110, 110, 121, 114, 128, 127, 136, 129, 110, 135, 138, 100, 141, 123, 122, 128, 135, 123, 117, 134, 122, 120, 133, 129, 118, 109, 146, 118, 150, 128, 112, 120, 117, 132, 134, 131, 125, 114, 118, 130, 124, 129, 111, 133, 125, 132, 155, 122, 128, 132, 120, 122, 121, 133, 110, 117, 113, 126, 139, 106, 131, 117, 126, 109, 130, 112, 121, 136, 110, 129, 126, 138, 148, 128, 131, 124, 124, 121, 123, 122, 132, 123, 143, 131, 130, 112, 101, 128, 121, 146, 130, 128, 124, 127, 121, 106, 130, 128, 113, 119, 139, 127, 127, 126, 132, 135, 129, 133, 136, 132, 126, 123, 124, 142, 131, 140, 120, 98, 115, 145, 116, 106, 116, 119, 113, 123, 132, 136, 131, 128, 133, 132, 125, 140, 146, 118, 130, 118, 113, 136, 130, 110, 135, 114, 123, 124, 133, 114, 135, 124, 119, 124, 124, 126, 121, 127, 100, 148, 131, 128, 116, 134, 144, 118, 117, 131, 121, 116, 131, 109, 143, 131, 116, 119, 138, 138, 114, 118, 140, 124, 113, 127, 109, 114, 112, 117, 142, 107, 105, 113, 113, 120, 118, 133, 129, 110, 135, 119, 130, 132, 106, 122, 116, 127, 114, 115, 116, 131, 123, 118, 120, 133, 136, 124, 132, 116, 126, 137, 115, 137, 125, 142, 138, 114, 122, 128, 126, 105, 140, 125, 122, 130, 125, 125, 148, 108, 110, 132, 121, 125, 141, 118, 141, 128, 118, 121, 119, 137, 137, 127, 121, 127, 125, 143, 116, 121, 125, 131, 121, 124, 132, 134, 117, 122, 137, 141, 138, 132, 112, 121, 129, 128, 111, 130, 129, 118, 124, 134, 129, 121, 106, 133, 122, 128, 128, 121, 126, 139, 146, 106, 136, 110, 144, 140, 121, 128, 149, 125, 113, 121, 132, 143, 115, 112, 119, 102, 125, 127, 135, 104, 144, 118, 117, 116, 134, 118, 99, 137, 143, 131, 136, 127, 132, 132, 120, 119, 133, 133, 125, 131, 125, 129, 122, 135, 131, 134, 122, 132, 113, 137, 119, 128, 128, 118, 145, 126, 113, 111, 100, 124, 128, 122, 127, 129, 136, 136, 119, 129, 142, 129, 132, 130, 118, 134, 111, 130, 131, 122, 129, 151, 127, 133, 130, 127, 129, 120, 106, 136, 133, 119, 129, 107, 128, 124, 118, 124, 129, 133, 117, 139, 132, 149, 130, 131, 132, 121, 104, 123, 128, 126, 130, 119, 116, 124, 108, 130, 124, 132, 120, 95, 134, 137, 120, 130, 132, 114, 117, 120, 126, 130, 122, 126, 147, 129, 139, 122, 122, 116, 136, 122, 111, 112, 120, 121, 125, 131, 137, 135, 113, 133, 116, 121, 125, 161, 115, 109, 127, 127, 98, 131, 122, 141, 121, 120, 107, 120, 134, 141, 107, 130, 125, 131, 118, 129, 130, 118, 133, 144, 123, 122, 134, 122, 123, 118, 116, 137, 127, 133, 109, 113, 125, 133, 113, 130, 133, 124, 106, 135, 119, 117, 123, 124, 124, 122, 112, 120, 122, 109, 117, 130, 133, 123, 130, 141, 125, 126, 123, 129, 119, 109, 119, 146, 126, 133, 141, 139, 127, 120, 122, 130, 135, 123, 129, 128, 107, 124, 129, 128, 118, 111, 127, 119, 116, 111, 137, 125, 115, 131, 113, 124, 117, 117, 111, 127, 135, 115, 125, 125, 122, 128, 138, 120, 95, 125, 135, 121, 137, 125, 123, 102, 123, 143, 115, 126, 119, 128, 113, 130, 102, 111, 151, 127, 128, 131, 127, 132, 145, 120, 119, 104, 126, 135, 130, 107, 112, 126, 120, 120, 136, 134, 136, 113, 110, 134, 121, 125, 117, 109, 124, 133, 140, 131, 130, 108, 134, 126, 119, 120, 107, 118, 135, 137, 133, 121, 133, 130, 114, 139, 127, 122, 127, 122, 126, 131, 117, 136, 129, 147, 118, 103, 120, 128, 108, 122, 126, 107, 124, 117, 118, 141, 132, 126, 129, 130, 122, 122, 143, 130, 133, 145, 136, 127, 128, 133, 117, 139, 123, 117, 125, 116, 128, 118, 118, 124, 116, 118, 119, 122, 122, 138, 116, 125, 126, 122, 135, 108, 128, 111, 128, 122, 123, 122, 124, 136, 126, 117, 120, 134, 148, 146, 124, 131, 132, 129, 138, 105, 108, 128, 123, 114, 143, 127, 127, 125, 128, 130, 116, 144, 129, 126, 122, 138, 132, 130, 130, 124, 114, 130, 112, 116, 104, 121, 110, 124, 122, 122, 119, 129, 142, 136, 140, 139, 114, 127, 132, 110, 152, 125, 122, 137, 139, 141, 125, 121, 121, 118, 121, 130, 97, 108, 137, 124, 120, 115, 135, 137, 128, 136, 128, 128, 126, 116, 124, 132, 145, 111, 129, 128, 133, 115, 101, 124, 127, 140, 142, 109, 139, 111, 136, 112, 116, 105, 126, 130, 125, 136, 138, 119, 140, 121, 125, 120, 117, 134, 117, 120, 123, 93, 124, 132, 109, 144, 136, 113, 113, 139, 133, 114, 128, 120, 107, 116, 111, 115, 118, 140, 124, 141, 121, 117, 127, 140, 130, 119, 126, 120, 133, 107, 130, 112, 128, 135, 127, 108, 120, 103, 125, 119, 123, 143, 126, 147, 112, 125, 117, 116, 134, 129, 122, 135, 123, 133, 126, 124, 134, 124, 124, 119, 136, 133, 137, 120, 113, 148, 128, 139, 139, 120, 128, 110, 114, 132, 113, 127, 116, 131, 116, 143, 135, 133, 128, 128, 124, 113, 133, 127, 127, 130, 91, 136, 106, 128, 131, 116, 123, 125, 134, 130, 145, 124, 122, 118, 131, 123, 127, 155, 126, 121, 122, 136, 110, 131, 139, 105, 123, 140, 119, 121, 128, 129, 128, 136, 130, 132, 147, 116, 140, 113, 131, 122, 114, 135, 139, 112, 130, 146, 123, 125, 126, 98, 128, 118, 126, 128, 108, 115, 124, 132, 123, 129, 113, 142, 120, 119, 114, 123, 129, 139, 120, 117, 123, 116, 133, 131, 110, 157, 117, 116, 124, 117, 119, 118, 116, 118, 130, 130, 85, 137, 136, 115, 141, 128, 123, 135, 126, 123, 134, 135, 126, 133, 127, 117, 97, 125, 120, 118, 136, 116, 122, 136, 130, 115, 122, 112, 131, 123, 117, 122, 133, 133, 124, 134, 124, 131, 137, 141, 117, 117, 119, 114, 127, 133, 128, 126, 119, 109, 115, 135, 121, 124, 106, 133, 134, 127, 111, 128, 116, 109, 121, 139, 114, 129, 134, 108, 119, 134, 121, 136, 129, 127, 131, 128, 123, 114, 121, 134, 127, 123, 108, 131, 132, 117, 111, 125, 115, 104, 124, 135, 119, 115, 122, 124, 125, 118, 147, 133, 156, 143, 129, 123, 127, 127, 118, 127, 108, 131, 136, 138, 116, 103, 130, 118, 106, 110, 137, 129, 132, 113, 130, 117, 124, 126, 137, 116, 141, 131, 131, 125, 129, 136, 124, 128, 123, 114, 122, 114, 128, 143, 121, 116, 134, 124, 109, 129, 116, 138, 130, 129, 122, 129, 111, 123, 117, 120, 121, 132, 121, 132, 133, 135, 116, 123, 111, 133, 145, 123, 121, 130, 128, 132, 133, 139, 131, 120, 128, 103, 122, 123, 119, 115, 135, 123, 129, 123, 116, 140, 133, 136, 116, 135, 113, 135, 112, 142, 122, 126, 133, 119, 128, 115, 104, 124, 127, 125, 124, 120, 126, 115, 130, 128, 128, 96, 126, 136, 123, 132, 134, 141, 136, 135, 137, 128, 123, 129, 128, 118, 122, 119, 115, 142, 123, 139, 119, 124, 129, 136, 119, 120, 128, 139, 140, 121, 135, 140, 135, 132, 121, 122, 134, 131, 116, 153, 124, 141, 132, 120, 133, 138, 145, 137, 144, 130, 120, 115, 134, 144, 110, 129, 132, 111, 128, 119, 133, 116, 131, 104, 135, 142, 157, 113, 120, 120, 125, 131, 138, 126, 136, 120, 126, 140, 118, 113, 121, 129, 113, 126, 137, 113, 139, 122, 117, 134, 112, 131, 125, 119, 124, 139, 140, 110, 126, 133, 134, 121, 135, 119, 120, 137, 130, 127, 128, 126, 132, 125, 107, 127, 103, 121, 108, 122, 126, 111, 118, 139, 148, 112, 113, 133, 127, 131, 120, 136, 139, 116, 120, 129, 125, 126, 129, 125, 130, 128, 121, 123, 129, 128, 120, 131, 124, 128, 127, 120, 120, 134, 100, 137, 126, 141, 144, 133, 138, 132, 128, 129, 123, 130, 121, 145, 103, 133, 127, 127, 122, 131, 126, 128, 125, 126, 134, 124, 133, 115, 141, 131, 135, 132, 133, 113, 131, 137, 126, 141, 128, 125, 108, 117, 113, 120, 132, 134, 126, 121, 130, 121, 122, 128, 124, 128, 112, 141, 128, 122, 144, 118, 118, 115, 112, 148, 145, 116, 122, 119, 149, 107, 109, 124, 125, 132, 116, 132, 110, 130, 144, 119, 128, 142, 107, 123, 132, 131, 135, 133, 133, 119, 120, 134, 115, 129, 122, 121, 126, 123, 128, 131, 142, 120, 126, 138, 119, 122, 120, 123, 140, 124, 116, 119, 125, 123, 142, 121, 135, 135, 132, 112, 122, 118, 114, 139, 135, 139, 120, 139, 142, 129, 128, 119, 124, 113, 125, 134, 107, 119, 120, 128, 127, 133, 128, 123, 136, 147, 121, 126, 132, 117, 119, 128, 127, 127, 122, 127, 124, 120, 130, 127, 115, 121, 126, 120, 106, 142, 138, 146, 121, 130, 141, 127, 122, 127, 118, 116, 125, 138, 130, 103, 134, 113, 116, 117, 136, 117, 135, 135, 118, 138, 124, 131, 118, 135, 142, 132, 128, 128, 121, 133, 117, 127, 138, 137, 124, 115, 115, 128, 123, 133, 120, 121, 133, 146, 124, 136, 123, 109, 123, 122, 138, 129, 115, 112, 119, 130, 122, 129, 131, 136, 144, 122, 132, 122, 129, 125, 112, 137, 120, 129, 111, 118, 124, 120, 114, 124, 127, 116, 112, 118, 104, 116, 129, 143, 115, 119, 122, 126, 123, 127, 106, 124, 121, 144, 122, 126, 125, 126, 100, 127, 107, 118, 113, 128, 122, 126, 143, 118, 124, 132, 125, 126, 131, 120, 131, 114, 136, 122, 118, 128, 124, 127, 115, 108, 154, 144, 132, 127, 130, 115, 118, 112, 146, 127, 132, 139, 115, 133, 131, 123, 128, 120, 124, 140, 119, 118, 132, 134, 124, 134, 127, 121, 152, 139, 112, 136, 129, 108, 129, 124, 99, 126, 113, 135, 135, 127, 109, 124, 120, 122, 107, 132, 100, 115, 124, 121, 125, 115, 129, 129, 131, 130, 106, 119, 129, 118, 132, 118, 132, 134, 128, 137, 112, 134, 120, 139, 133, 128, 124, 121, 139, 141, 129, 123, 130, 116, 137, 99, 123, 119, 127, 115, 116, 126, 121, 137, 124, 160, 140, 151, 128, 121, 128, 127, 111, 133, 125, 116, 131, 128, 124, 120, 137, 123, 137, 122, 132, 133, 103, 111, 133, 142, 128, 116, 145, 120, 127, 134, 130, 122, 129, 121, 132, 127, 116, 118, 141, 115, 130, 151, 114, 142, 114, 129, 128, 136, 134, 136, 133, 137, 124, 117, 114, 139, 129, 113, 111, 132, 131, 123, 113, 122, 123, 123, 121, 136, 130, 101, 130, 126, 135, 93, 129, 126, 141, 123, 128, 132, 130, 138, 106, 118, 138, 131, 120, 121, 96, 120, 125, 124, 118, 125, 108, 120, 111, 121, 134, 133, 120, 121, 112, 127, 110, 129, 139, 140, 114, 135, 141, 121, 107, 122, 101, 111, 110, 131, 119, 133, 114, 144, 131, 119, 133, 126, 120, 132, 109, 119, 133, 143, 140, 132, 111, 97, 121, 130, 135, 124, 127, 128, 123, 127, 114, 135, 114, 118, 120, 118, 139, 126, 136, 133, 125, 124, 121, 119, 132, 121, 123, 122, 111, 105, 125, 130, 144, 122, 134, 118, 138, 137, 129, 105, 119, 125, 131, 128, 122, 119, 138, 111, 120, 131, 126, 126, 130, 100, 105, 141, 138, 120, 126, 114, 128, 105, 129, 126, 136, 123, 130, 108, 130, 136, 134, 144, 130, 118, 113, 124, 122, 127, 117, 132, 130, 129, 136, 124, 130, 106, 130, 126, 121, 134, 129, 123, 113, 122, 132, 135, 132, 117, 131, 146, 130, 131, 124, 119, 126, 141, 115, 122, 115, 137, 126, 135, 113, 129, 119, 136, 128, 126, 122, 140, 132, 143, 143, 130, 119, 120, 129, 127, 130, 121, 124, 132, 131, 125, 115, 127, 118, 141, 111, 129, 124, 126, 126, 125, 131, 133, 120, 146, 126, 134, 120, 142, 119, 119, 125, 118, 118, 133, 125, 108, 124, 117, 134, 119, 134, 118, 131, 121, 130, 146, 120, 129, 102, 127, 119, 120, 122, 126, 142, 144, 121, 128, 116, 131, 131, 127, 133, 116, 109, 118, 140, 125, 128, 124, 119, 134, 100, 130, 113, 107, 141, 114, 125, 131, 128, 125, 131, 115, 102, 133, 126, 121, 111, 116, 133, 113, 127, 105, 116, 128, 148, 137, 137, 122, 123, 124, 111, 145, 117, 122, 119, 128, 129, 136, 126, 126, 129, 126, 117, 148, 118, 137, 122, 127, 126, 115, 135, 121, 150, 150, 136, 104, 138, 128, 131, 141, 142, 142, 126, 125, 112, 140, 118, 139, 140, 132, 118, 114, 132, 145, 110, 125, 123, 111, 117, 87, 121, 117, 132, 104, 113, 118, 126, 120, 116, 138, 124, 138, 120, 117, 119, 129, 120, 133, 124, 129, 137, 125, 124, 115, 124, 124, 105, 132, 118, 119, 129, 146, 133, 130, 121, 125, 133, 132, 128, 125, 127, 128, 129, 115, 112, 104, 104, 130, 128, 125, 146, 129, 119, 135, 127, 147, 125, 132, 137, 120, 127, 131, 112, 130, 122, 125, 117, 117, 126, 113, 120, 124, 108, 121, 133, 146, 114, 120, 105, 105, 117, 110, 124, 111, 129, 111, 134, 112, 130, 125, 132, 124, 112, 126, 120, 153, 129, 147, 121, 118, 121, 138, 125, 117, 112, 118, 119, 120, 120, 120, 136, 128, 126, 128, 141, 109, 138, 123, 144, 118, 133, 121, 120, 135, 126, 136, 121, 118, 139, 143, 129, 128, 130, 133, 78, 122, 130, 131, 126, 122, 105, 109, 117, 125, 113, 130, 136, 110, 139, 138, 124, 130, 114, 137, 122, 112, 119, 123, 120, 121, 107, 136, 116, 131, 130, 138, 109, 128, 127, 120, 129, 119, 110, 123, 140, 134, 119, 131, 134, 133, 134, 127, 120, 115, 117, 131, 133, 112, 127, 137, 135, 112, 116, 127, 126, 127, 124, 135, 127, 132, 136, 150, 130, 132, 133, 124, 141, 111, 119, 101, 124, 143, 120, 134, 124, 129, 128, 120, 124, 116, 129, 125, 156, 134, 121, 133, 140, 110, 126, 129, 126, 125, 134, 113, 128, 123, 129, 113, 132, 115, 146, 132, 127, 131, 108, 100, 125, 115, 120, 146, 132, 113, 130, 120, 144, 132, 132, 131, 143, 126, 123, 125, 136, 123, 126, 113, 131, 121, 133, 135, 120, 124, 129, 121, 133, 147, 127, 128, 131, 136, 124, 119, 130, 128, 129, 148, 110, 122, 126, 123, 135, 123, 113, 115, 116, 138, 129, 133, 108, 125, 127, 142, 126, 96, 130, 130, 131, 151, 119, 113, 137, 125, 127, 127, 135, 141, 118, 134, 115, 124, 127, 123, 137, 115, 146, 135, 124, 105, 122, 129, 120, 136, 109, 111, 142, 106, 110, 129, 91, 130, 129, 131, 124, 130, 131, 128, 118, 114, 121, 110, 121, 109, 124, 117, 120, 135, 124, 143, 132, 151, 114, 112, 112, 141, 120, 112, 130, 129, 133, 108, 132, 134, 123, 133, 132, 109, 119, 137, 136, 111, 139, 128, 130, 124, 137, 107, 121, 125, 109, 115, 116, 115, 125, 128, 115, 138, 115, 131, 115, 134, 121, 139, 115, 128, 127, 139, 112, 124, 140, 108, 136, 121, 115, 127, 121, 122, 123, 132, 121, 122, 118, 140, 108, 118, 131, 130, 107, 120, 124, 130, 123, 117, 120, 127, 137, 108, 125, 141, 111, 116, 119, 138, 122, 98, 126, 148, 119, 130, 138, 132, 136, 107, 119, 110, 129, 135, 112, 142, 126, 133, 122, 129, 123, 131, 142, 123, 129, 126, 128, 128, 112, 136, 121, 137, 129, 121, 139, 124, 132, 114, 135, 130, 133, 116, 114, 125, 137, 131, 142, 132, 122, 126, 118, 123, 121, 140, 131, 127, 130, 130, 136, 134, 124, 140, 115, 127, 116, 114, 132, 140, 131, 129, 115, 124, 122, 128, 120, 126, 131, 111, 116, 109, 140, 134, 132, 118, 128, 127, 127, 122, 132, 137, 132, 121, 128, 113, 120, 136, 123, 122, 129, 133, 132, 135, 116, 131, 129, 107, 126, 114, 121, 131, 128, 130, 129, 128, 112, 135, 126, 115, 118, 124, 148, 126, 127, 131, 124, 127, 111, 129, 113, 118, 124, 117, 127, 141, 114, 125, 119, 120, 143, 118, 120, 134, 124, 171, 130, 124, 130, 130, 125, 134, 127, 124, 131, 135, 130, 122, 104, 126, 130, 116, 120, 128, 128, 126, 113, 115, 126, 123, 162, 130, 122, 101, 122, 131, 125, 119, 130, 125, 129, 122, 112, 122, 129, 127, 117, 131, 137, 115, 124, 133, 134, 124, 129, 138, 137, 119, 136, 117, 143, 115, 144, 116, 125, 132, 121, 125, 132, 129, 120, 115, 124, 117, 123, 146, 110, 123, 110, 130, 144, 141, 130, 135, 120, 122, 119, 133, 162, 117, 125, 133, 123, 110, 132, 111, 122, 109, 135, 128, 106, 124, 130, 113, 115, 131, 119, 123, 110, 143, 148, 129, 120, 134, 144, 133, 120, 127, 116, 143, 129, 140, 125, 136, 122, 113, 116, 119, 125, 129, 108, 116, 135, 131, 131, 140, 131, 124, 127, 130, 123, 129, 117, 137, 131, 121, 132, 107, 111, 133, 128, 119, 132, 120, 116, 112, 115, 123, 125, 123, 135, 153, 113, 121, 124, 116, 120, 132, 136, 110, 116, 108, 135, 123, 138, 116, 125, 126, 134, 116, 114, 128, 116, 128, 123, 105, 131, 131, 120, 134, 130, 126, 126, 124, 98, 146, 121, 121, 142, 121, 108, 129, 143, 115, 140, 120, 115, 137, 98, 133, 122, 120, 144, 122, 123, 132, 137, 117, 141, 128, 133, 104, 120, 110, 129, 116, 126, 126, 101, 113, 108, 128, 135, 114, 131, 133, 125, 135, 138, 101, 124, 114, 122, 129, 131, 128, 139, 135, 151, 116, 134, 123, 130, 127, 128, 119, 100, 140, 110, 131, 127, 122, 127, 101, 126, 136, 124, 106, 119, 123, 100, 122, 134, 130, 133, 138, 119, 139, 136, 126, 143, 121, 128, 107, 118, 99, 128, 124, 113, 126, 114, 133, 141, 130, 136, 129, 126, 116, 124, 126, 108, 117, 124, 143, 123, 124, 125, 133, 120, 129, 138, 128, 128, 136, 130, 133, 128, 133, 120, 137, 112, 125, 133, 113, 117, 111, 125, 119, 112, 130, 122, 139, 125, 126, 120, 143, 124, 98, 118, 121, 136, 139, 101, 124, 131, 130, 114, 129, 117, 131, 150, 127, 126, 127, 131, 124, 115, 116, 138, 116, 115, 131, 133, 128, 138, 125, 112, 129, 129, 112, 118, 130, 128, 126, 147, 122, 120, 120, 120, 113, 104, 133, 132, 130, 99, 118, 121, 118, 118, 115, 136, 121, 127, 130, 128, 124, 121, 116, 133, 114, 131, 120, 116, 146, 129, 118, 119, 144, 130, 138, 117, 140, 118, 121, 120, 135, 118, 126, 139, 141, 121, 126, 136, 106, 103, 130, 135, 121, 126, 111, 125, 115, 111, 149, 124, 127, 126, 119, 129, 132, 127, 120, 129, 113, 139, 118, 118, 144, 111, 135, 125, 120, 140, 147, 112, 107, 119, 133, 120, 144, 126, 121, 145, 128, 115, 131, 121, 122, 116, 129, 102, 113, 125, 113, 111, 99, 132, 122, 131, 121, 144, 156, 129, 112, 113, 109, 131, 138, 113, 122, 119, 130, 124, 106, 117, 119, 117, 117, 123, 120, 122, 103, 129, 133, 126, 135, 125, 140, 117, 126, 122, 154, 123, 145, 135, 129, 106, 114, 136, 127, 125, 126, 122, 123, 115, 127, 126, 129, 122, 117, 126, 110, 139, 115, 124, 121, 121, 121, 126, 111, 127, 104, 132, 121, 123, 125, 117, 98, 150, 128, 124, 123, 108, 135, 115, 104, 123, 133, 122, 120, 124, 123, 126, 124, 114, 123, 106, 125, 123, 122, 128, 133, 128, 140, 124, 136, 116, 137, 110, 99, 125, 119, 106, 124, 121, 120, 118, 107, 123, 132, 127, 135, 137, 125, 124, 113, 124, 118, 120, 117, 113, 120, 134, 120, 135, 137, 129, 111, 129, 114, 114, 125, 118, 155, 114, 88, 123, 137, 133, 116, 118, 136, 158, 120, 143, 114, 130, 120, 121, 127, 112, 123, 134, 118, 123, 119, 123, 119, 129, 126, 130, 136, 139, 128, 123, 149, 138, 111, 121, 127, 147, 134, 119, 146, 121, 95, 133, 114, 138, 124, 136, 129, 129, 134, 132, 127, 115, 121, 151, 121, 124, 124, 123, 124, 128, 97, 128, 117, 137, 122, 129, 126, 124, 116, 109, 112, 125, 114, 159, 112, 126, 123, 132, 155, 110, 125, 133, 132, 143, 139, 150, 143, 140, 128, 147, 115, 128, 132, 137, 120, 126, 123, 135, 135, 115, 108, 119, 123, 114, 106, 160, 119, 129, 120, 120, 123, 137, 124, 133, 137, 127, 118, 110, 114, 107, 116, 127, 108, 138, 129, 129, 115, 113, 113, 137, 123, 121, 130, 129, 132, 128, 113, 121, 125, 116, 127, 132, 126, 125, 102, 122, 129, 117, 127, 129, 122, 108, 123, 121, 132, 131, 124, 114, 124, 120, 128, 128, 128, 140, 120, 127, 121, 127, 125, 98, 121, 116, 125, 133, 113, 133, 127, 127, 108, 119, 135, 138, 142, 135, 99, 106, 146, 129, 157, 140, 116, 122, 122, 131, 145, 121, 139, 129, 123, 141, 129, 110, 131, 118, 106, 137, 128, 153, 120, 127, 140, 139, 113, 117, 145, 147, 132, 135, 122, 126, 112, 118, 128, 112, 134, 137, 131, 127, 128, 120, 130, 137, 123, 127, 131, 111, 140, 132, 91, 107, 130, 144, 122, 131, 146, 115, 131, 115, 145, 131, 118, 143, 126, 128, 128, 139, 123, 126, 130, 119, 131, 139, 116, 150, 116, 136, 117, 121, 128, 128, 131, 110, 113, 117, 111, 119, 132, 133, 113, 125, 132, 113, 103, 108, 145, 117, 117, 124, 116, 125, 132, 121, 130, 118, 140, 145, 125, 135, 147, 129, 102, 125, 124, 121, 147, 123, 119, 131, 153, 131, 124, 127, 120, 119, 128, 139, 129, 132, 119, 126, 121, 113, 114, 134, 131, 131, 124, 129, 127, 117, 114, 132, 128, 123, 120, 139, 117, 109, 130, 117, 134, 118, 129, 136, 127, 121, 121, 130, 114, 130, 136, 104, 107, 118, 114, 138, 114, 114, 120, 114, 107, 121, 122, 133, 128, 115, 142, 126, 107, 126, 121, 142, 112, 104, 131, 134, 133, 129, 137, 122, 115, 132, 157, 120, 128, 118, 131, 121, 109, 126, 120, 134, 137, 139, 128, 132, 124, 123, 125, 129, 109, 112, 130, 127, 104, 131, 108, 121, 128, 132, 111, 115, 145, 157, 121, 124, 124, 126, 117, 130, 128, 129, 125, 124, 129, 130, 119, 127, 132, 128, 118, 128, 124, 109, 116, 118, 137, 105, 112, 143, 138, 124, 121, 132, 116, 121, 128, 133, 107, 143, 119, 118, 124, 132, 129, 117, 120, 135, 126, 127, 137, 131, 119, 122, 126, 128, 127, 129, 142, 130, 122, 133, 118, 132, 129, 150, 125, 144, 119, 116, 110, 136, 128, 131, 121, 108, 111, 125, 155, 147, 125, 134, 128, 134, 123, 120, 126, 134, 121, 113, 141, 113, 126, 120, 149, 118, 118, 124, 126, 127, 126, 135, 110, 108, 127, 123, 119, 126, 124, 123, 136, 115, 110, 121, 125, 126, 116, 149, 128, 138, 116, 127, 128, 150, 142, 128, 134, 118, 117, 111, 120, 128, 118, 112, 132, 137, 122, 97, 131, 131, 125, 131, 118, 112, 127, 119, 114, 138, 145, 149, 140, 127, 118, 110, 140, 124, 127, 129, 106, 115, 120, 138, 122, 139, 117, 129, 136, 123, 126, 120, 128, 131, 114, 115, 143, 128, 118, 123, 130, 105, 117, 110, 131, 117, 143, 123, 121, 113, 129, 116, 123, 143, 133, 123, 133, 129, 117, 140, 127, 141, 125, 143, 121, 129, 135, 116, 120, 101, 124, 117, 114, 127, 132, 119, 120, 140, 134, 134, 133, 118, 137, 117, 143, 110, 126, 132, 131, 125, 151, 121, 118, 119, 122, 110, 128, 121, 118, 140, 115, 114, 147, 118, 141, 142, 128, 136, 122, 110, 140, 117, 128, 116, 119, 118, 106, 112, 113, 131, 117, 118, 140, 126, 145, 115, 143, 121, 131, 135, 116, 129, 139, 131, 113, 128, 134, 122, 135, 124, 127, 134, 117, 137, 127, 121, 127, 146, 131, 119, 121, 144, 119, 132, 123, 114, 117, 125, 121, 144, 139, 116, 119, 126, 138, 109, 126, 130, 113, 128, 150, 128, 114, 131, 125, 127, 101, 136, 124, 139, 124, 150, 118, 125, 129, 125, 127, 127, 107, 132, 136, 127, 116, 121, 114, 132, 125, 114, 132, 135, 122, 107, 115, 115, 130, 130, 137, 128, 132, 129, 130, 123, 135, 117, 149, 136, 133, 120, 147, 130, 138, 127, 129, 123, 128, 115, 121, 137, 130, 131, 124, 135, 111, 140, 120, 135, 117, 121, 121, 124, 117, 119, 110, 132, 121, 133, 146, 134, 123, 122, 115, 119, 116, 103, 136, 132, 122, 118, 127, 116, 129, 118, 106, 113, 120, 110, 120, 126, 149, 130, 117, 120, 111, 128, 123, 123, 118, 130, 104, 128, 125, 109, 114, 143, 129, 132, 135, 129, 114, 109, 111, 125, 118, 116, 117, 128, 116, 135, 127, 125, 133, 133, 112, 123, 127, 134, 120, 115, 120, 136, 129, 111, 126, 125, 121, 127, 141, 130, 126, 131, 128, 117, 135, 103, 129, 123, 116, 123, 132, 116, 127, 140, 129, 122, 125, 100, 121, 129, 128, 126, 123, 131, 132, 109, 111, 118, 120, 120, 140, 117, 125, 119, 130, 133, 146, 130, 119, 119, 140, 136, 122, 129, 128, 125, 115, 116, 127, 101, 145, 130, 123, 129, 127, 131, 124, 131, 134, 117, 112, 131, 114, 125, 104, 110, 138, 128, 133, 112, 125, 132, 139, 123, 127, 133, 120, 138, 130, 117, 128, 144, 122, 134, 124, 118, 128, 144, 123, 121, 141, 138, 121, 129, 117, 146, 121, 129, 105, 124, 121, 132, 123, 134, 142, 144, 130, 140, 140, 109, 126, 129, 120, 131, 110, 127, 126, 105, 120, 113, 136, 112, 131, 135, 131, 121, 144, 126, 129, 143, 119, 140, 133, 138, 112, 151, 132, 147, 126, 129, 116, 135, 104, 125, 111, 125, 117, 127, 130, 124, 130, 125, 129, 121, 130, 131, 136, 121, 114, 113, 137, 108, 139, 128, 123, 120, 136, 125, 121, 113, 115, 122, 144, 125, 105, 118, 109, 128, 129, 116, 122, 119, 125, 121, 143, 119, 105, 118, 111, 125, 119, 129, 143, 105, 116, 114, 114, 119, 132, 120, 134, 130, 119, 129, 131, 101, 116, 129, 143, 109, 143, 124, 118, 129, 120, 133, 128, 117, 127, 128, 109, 132, 151, 123, 126, 119, 111, 137, 123, 121, 126, 135, 109, 112, 118, 136, 161, 132, 123, 127, 121, 118, 124, 127, 126, 121, 129, 124, 139, 140, 121, 124, 117, 132, 133, 124, 123, 106, 118, 121, 124, 120, 142, 127, 131, 146, 125, 115, 109, 120, 131, 120, 127, 130, 130, 137, 124, 125, 115, 127, 125, 126, 142, 126, 119, 122, 124, 135, 128, 124, 124, 118, 131, 116, 107, 116, 106, 137, 126, 131, 134, 124, 129, 136, 123, 142, 126, 122, 133, 117, 121, 134, 124, 103, 117, 127, 125, 118, 127, 134, 117, 148, 123, 122, 106, 102, 119, 154, 113, 116, 126, 122, 138, 105, 109, 115, 120, 125, 122, 128, 115, 106, 116, 132, 118, 120, 117, 135, 122, 114, 105, 125, 112, 128, 131, 116, 122, 141, 124, 112, 134, 128, 137, 125, 145, 142, 117, 130, 125, 132, 121, 120, 129, 119, 136, 125, 120, 132, 109, 106, 134, 133, 116, 119, 117, 131, 125, 117, 87, 126, 119, 116, 162, 137, 120, 104, 109, 130, 122, 136, 148, 126, 129, 125, 135, 115, 109, 116, 118, 128, 136, 127, 132, 124, 116, 115, 111, 124, 138, 111, 124, 148, 114, 122, 136, 133, 122, 131, 106, 135, 126, 129, 119, 146, 138, 101, 112, 129, 117, 120, 121, 149, 138, 116, 127, 121, 136, 109, 135, 124, 120, 155, 122, 129, 102, 129, 133, 128, 120, 114, 123, 128, 115, 120, 121, 151, 132, 123, 132, 125, 122, 109, 116, 118, 119, 131, 135, 141, 126, 106, 135, 134, 112, 115, 133, 111, 142, 141, 111, 119, 122, 124, 123, 128, 118, 138, 137, 120, 137, 137, 110, 124, 133, 132, 123, 120, 128, 125, 138, 111, 105, 113, 117, 122, 116, 125, 103, 109, 108, 114, 103, 131, 129, 122, 122, 121, 115, 122, 134, 126, 122, 104, 101, 122, 123, 129, 130, 127, 118, 125, 133, 120, 126, 142, 112, 137, 135, 119, 114, 137, 124, 127, 128, 121, 137, 119, 130, 126, 105, 130, 138, 134, 133, 123, 128, 123, 113, 140, 142, 105, 132, 115, 124, 137, 119, 117, 128, 132, 121, 130, 123, 107, 134, 137, 135, 123, 121, 123, 133, 128, 128, 123, 141, 134, 118, 139, 126, 143, 129, 128, 113, 114, 113, 116, 137, 129, 123, 119, 126, 127, 128, 118, 142, 114, 130, 111, 125, 136, 114, 104, 113, 116, 105, 134, 122, 121, 131, 134, 135, 133, 114, 131, 133, 129, 116, 127, 116, 113, 138, 112, 122, 135, 121, 117, 112, 115, 133, 112, 131, 120, 140, 136, 137, 119, 127, 135, 135, 116, 128, 119, 136, 112, 120, 125, 123, 120, 126, 123, 121, 127, 111, 109, 138, 133, 119, 110, 147, 119, 109, 121, 140, 144, 127, 131, 134, 150, 128, 126, 148, 144, 124, 148, 119, 128, 127, 113, 145, 123, 133, 139, 113, 118, 115, 143, 136, 134, 111, 124, 132, 116, 135, 121, 125, 125, 114, 111, 118, 111, 135, 132, 133, 127, 115, 118, 109, 115, 115, 114, 116, 139, 115, 129, 132, 130, 124, 117, 137, 127, 129, 136, 119, 117, 127, 146, 126, 128, 138, 126, 124, 128, 137, 122, 125, 123, 143, 103, 125, 120, 137, 140, 126, 123, 140, 121, 119, 138, 126, 123, 106, 137, 120, 140, 135, 107, 128, 113, 115, 123, 130, 139, 116, 122, 131, 132, 133, 112, 123, 128, 122, 127, 117, 137, 137, 131, 131, 141, 126, 127, 115, 123, 141, 117, 112, 148, 129, 137, 119, 139, 124, 133, 116, 135, 158, 127, 131, 129, 150, 118, 118, 123, 126, 131, 122, 132, 131, 117, 130, 117, 121, 125, 125, 160, 129, 123, 128, 143, 124, 129, 134, 126, 120, 152, 129, 135, 142, 127, 109, 122, 124, 108, 119, 131, 110, 129, 136, 126, 117, 114, 121, 115, 129, 126, 131, 128, 122, 127, 133, 108, 138, 126, 123, 127, 125, 135, 132, 141, 134, 120, 137, 143, 142, 121, 123, 124, 107, 103, 116, 95, 129, 125, 115, 122, 119, 144, 137, 133, 118, 135, 109, 108, 162, 116, 133, 111, 135, 128, 123, 118, 138, 123, 128, 124, 129, 115, 118, 132, 132, 141, 130, 102, 137, 128, 126, 139, 133, 116, 119, 129, 131, 145, 116, 140, 134, 100, 130, 119, 142, 141, 147, 126, 131, 128, 139, 121, 125, 116, 104, 122, 123, 130, 126, 120, 132, 131, 121, 132, 136, 137, 103, 112, 133, 114, 136, 139, 126, 116, 118, 116, 139, 114, 136, 108, 125, 112, 115, 123, 110, 121, 149, 142, 138, 118, 139, 133, 117, 125, 129, 132, 128, 132, 124, 128, 122, 138, 120, 114, 117, 128, 137, 121, 119, 121, 124, 140, 116, 132, 128, 119, 134, 134, 115, 160, 112, 142, 126, 113, 136, 118, 144, 129, 120, 157, 120, 109, 131, 117, 135, 135, 142, 123, 133, 142, 111, 129, 131, 118, 132, 142, 120, 131, 132, 119, 117, 131, 138, 137, 114, 123, 129, 126, 120, 113, 121, 129, 123, 123, 127, 129, 112, 114, 123, 136, 114, 111, 126, 121, 102, 107, 109, 132, 124, 119, 120, 110, 134, 124, 135, 127, 131, 119, 115, 114, 135, 130, 124, 141, 130, 127, 128, 145, 115, 115, 152, 122, 132, 129, 120, 138, 121, 120, 125, 141, 125, 119, 126, 103, 113, 128, 120, 127, 126, 126, 128, 121, 118, 136, 129, 106, 131, 117, 136, 140, 123, 110, 122, 127, 129, 118, 119, 117, 114, 135, 119, 120, 131, 124, 115, 132, 138, 131, 126, 126, 115, 136, 104, 124, 120, 137, 118, 127, 111, 118, 128, 114, 125, 115, 114, 138, 116, 107, 106, 123, 115, 138, 110, 129, 126, 136, 128, 123, 140, 121, 130, 134, 125, 138, 137, 141, 134, 122, 133, 128, 132, 120, 128, 141, 123, 127, 132, 95, 118, 119, 147, 117, 116, 151, 115, 113, 115, 116, 120, 128, 125, 141, 134, 118, 159, 147, 140, 136, 128, 133, 120, 127, 155, 110, 123, 98, 122, 118, 138, 116, 108, 142, 130, 125, 114, 121, 130, 120, 113, 112, 127, 126, 121, 128, 143, 130, 127, 133, 125, 115, 126, 123, 138, 127, 119, 130, 126, 129, 133, 123, 108, 125, 135, 138, 113, 118, 129, 124, 115, 136, 124, 127, 116, 108, 118, 123, 112, 126, 115, 120, 122, 124, 126, 127, 121, 139, 126, 133, 132, 125, 130, 122, 112, 120, 132, 135, 123, 128, 119, 119, 121, 123, 116, 120, 126, 139, 118, 111, 120, 124, 123, 125, 117, 137, 123, 129, 144, 125, 127, 125, 118, 108, 121, 126, 104, 120, 119, 132, 107, 129, 139, 123, 136, 116, 121, 130, 126, 121, 122, 141, 129, 101, 118, 113, 117, 144, 117, 124, 129, 134, 122, 142, 125, 131, 140, 131, 135, 123, 146, 122, 130, 130, 120, 107, 120, 134, 114, 133, 111, 139, 129, 133, 140, 145, 122, 123, 131, 142, 111, 105, 129, 127, 148, 135, 130, 120, 139, 133, 114, 123, 128, 128, 111, 114, 129, 124, 117, 150, 131, 120, 115, 128, 130, 125, 128, 108, 128, 109, 123, 114, 123, 132, 111, 122, 92, 138, 138, 124, 96, 122, 129, 115, 109, 138, 106, 138, 128, 148, 129, 107, 112, 121, 113, 130, 140, 116, 142, 174, 123, 111, 133, 130, 120, 135, 127, 125, 144, 123, 120, 119, 121, 126, 110, 125, 124, 114, 131, 126, 108, 128, 158, 147, 129, 135, 125, 125, 124, 119, 137, 128, 129, 106, 105, 123, 129, 132, 137, 120, 115, 114, 137, 136, 135, 106, 133, 120, 131, 112, 119, 96, 139, 131, 149, 120, 140, 137, 115, 123, 141, 111, 141, 137, 135, 131, 126, 131, 127, 115, 121, 148, 146, 121, 117, 132, 137, 111, 137, 123, 128, 155, 106, 113, 122, 115, 111, 133, 130, 127, 141, 117, 121, 93, 126, 126, 129, 116, 127, 125, 127, 131, 125, 125, 144, 133, 115, 120, 135, 127, 118, 128, 136, 128, 129, 134, 129, 128, 132, 114, 144, 118, 130, 124, 130, 118, 116, 124, 101, 127, 118, 131, 124, 126, 119, 134, 113, 123, 122, 130, 125, 101, 122, 116, 144, 118, 117, 141, 118, 100, 114, 122, 140, 110, 122, 134, 134, 127, 121, 120, 142, 139, 142, 136, 88, 138, 116, 132, 122, 147, 117, 107, 142, 150, 130, 141, 138, 121, 150, 123, 116, 115, 131, 117, 143, 121, 122, 115, 111, 129, 127, 135, 137, 116, 114, 138, 133, 144, 116, 134, 131, 124, 129, 120, 126, 139, 125, 130, 131, 128, 131, 120, 155, 127, 127, 126, 108, 131, 135, 112, 109, 120, 127, 122, 130, 120, 122, 129, 134, 134, 107, 119, 134, 143, 139, 105, 128, 128, 112, 125, 132, 129, 135, 137, 132, 125, 143, 126, 140, 122, 129, 116, 105, 119, 132, 129, 117, 137, 121, 135, 133, 148, 116, 124, 123, 133, 127, 118, 122, 130, 127, 132, 111, 116, 129, 125, 116, 118, 110, 121, 136, 130, 134, 140, 125, 124, 139, 127, 127, 117, 125, 128, 110, 117, 127, 136, 121, 126, 122, 114, 124, 111, 135, 140, 114, 127, 135, 142, 119, 139, 133, 126, 116, 129, 106, 127, 131, 127, 129, 123, 138, 106, 113, 104, 113, 124, 131, 104, 141, 135, 109, 124, 142, 135, 138, 111, 122, 133, 132, 114, 121, 124, 122, 125, 115, 143, 139, 130, 107, 121, 139, 122, 118, 130, 109, 124, 121, 115, 129, 118, 136, 144, 121, 131, 118, 108, 151, 114, 139, 134, 133, 114, 137, 123, 105, 134, 138, 136, 134, 126, 120, 139, 124, 103, 111, 116, 134, 126, 148, 123, 143, 123, 125, 126, 121, 118, 114, 124, 131, 129, 110, 128, 140, 117, 130, 129, 129, 133, 120, 126, 129, 121, 126, 110, 130, 135, 103, 111, 110, 115, 136, 129, 130, 120, 129, 124, 148, 122, 112, 131, 132, 113, 111, 114, 118, 119, 124, 132, 133, 137, 111, 114, 111, 124, 126, 134, 119, 116, 118, 134, 123, 111, 129, 127, 139, 155, 127, 125, 122, 123, 123, 116, 127, 116, 129, 138, 135, 122, 127, 122, 115, 116, 122, 120, 134, 126, 130, 123, 130, 136, 122, 137, 126, 141, 131, 123, 133, 119, 131, 129, 112, 135, 115, 127, 140, 132, 120, 125, 135, 140, 125, 122, 113, 128, 126, 126, 116, 131, 139, 131, 132, 125, 117, 118, 115, 127, 127, 121, 135, 117, 131, 120, 107, 138, 129, 111, 125, 119, 127, 119, 125, 136, 124, 128, 130, 124, 125, 133, 130, 123, 108, 123, 108, 126, 127, 131, 113, 133, 108, 133, 135, 131, 101, 115, 129, 121, 111, 126, 144, 121, 123, 120, 140, 113, 137, 114, 123, 127, 132, 125, 111, 128, 118, 140, 135, 118, 124, 109, 117, 114, 139, 120, 130, 126, 138, 112, 122, 122, 122, 154, 121, 133, 119, 122, 112, 136, 129, 116, 127, 138, 121, 141, 112, 119, 99, 126, 142, 125, 118, 128, 108, 94, 131, 126, 116, 133, 134, 123, 136, 125, 144, 117, 136, 124, 117, 141, 111, 125, 124, 116, 147, 122, 127, 124, 130, 141, 120, 122, 127, 123, 127, 122, 119, 115, 116, 132, 131, 126, 121, 127, 119, 119, 121, 115, 126, 111, 128, 116, 119, 137, 124, 156, 127, 130, 118, 126, 122, 109, 121, 122, 115, 134, 113, 145, 131, 120, 126, 132, 122, 118, 118, 151, 126, 118, 108, 133, 126, 133, 125, 130, 136, 125, 149, 144, 110, 120, 128, 130, 117, 101, 122, 131, 120, 122, 131, 115, 125, 135, 126, 132, 134, 128, 132, 129, 125, 124, 124, 129, 121, 109, 129, 134, 107, 124, 133, 118, 118, 149, 126, 134, 127, 121, 135, 144, 121, 133, 117, 127, 109, 130, 117, 131, 125, 142, 140, 113, 115, 139, 115, 115, 135, 148, 127, 99, 106, 138, 134, 100, 120, 122, 115, 128, 125, 124, 133, 114, 121, 130, 135, 126, 114, 125, 125, 134, 122, 116, 117, 133, 113, 109, 119, 126, 114, 121, 128, 120, 122, 129, 136, 113, 114, 123, 137, 129, 127, 120, 130, 139, 128, 141, 120, 133, 99, 122, 106, 134, 133, 129, 117, 114, 137, 120, 133, 116, 122, 121, 122, 120, 136, 126, 120, 157, 113, 123, 126, 132, 120, 124, 137, 122, 130, 115, 120, 123, 117, 129, 131, 133, 125, 144, 119, 111, 133, 129, 132, 122, 130, 125, 121, 132, 114, 118, 122, 121, 114, 110, 116, 131, 133, 134, 136, 124, 131, 131, 137, 112, 130, 119, 126, 132, 121, 130, 134, 129, 142, 110, 138, 126, 129, 138, 130, 139, 121, 118, 106, 133, 144, 118, 113, 120, 125, 108, 117, 113, 126, 107, 136, 114, 118, 95, 137, 139, 118, 138, 121, 122, 118, 109, 118, 126, 113, 127, 127, 115, 121, 120, 131, 128, 122, 134, 130, 126, 131, 119, 128, 122, 142, 133, 119, 121, 135, 115, 109, 110, 117, 135, 128, 125, 125, 129, 112, 111, 130, 79, 123, 131, 116, 127, 128, 120, 128, 130, 123, 124, 137, 124, 124, 127, 111, 136, 135, 103, 131, 124, 140, 136, 107, 118, 140, 122, 115, 127, 125, 110, 127, 125, 149, 122, 128, 118, 127, 132, 121, 137, 109, 110, 126, 120, 140, 118, 115, 122, 109, 112, 125, 135, 128, 143, 127, 137, 118, 120, 130, 132, 117, 136, 133, 115, 114, 112, 127, 127, 115, 124, 120, 126, 131, 130, 136, 131, 110, 135, 118, 118, 127, 131, 135, 126, 119, 118, 111, 108, 125, 140, 123, 125, 144, 137, 115, 116, 106, 132, 136, 132, 111, 127, 131, 131, 102, 119, 109, 128, 130, 113, 119, 127, 119, 119, 131, 114, 127, 111, 120, 118, 127, 119, 132, 128, 106, 136, 105, 117, 121, 129, 127, 115, 104, 119, 118, 131, 134, 132, 106, 154, 127, 117, 123, 125, 133, 116, 136, 120, 122, 121, 107, 120, 116, 116, 118, 123, 120, 137, 109, 121, 100, 133, 121, 125, 137, 113, 131, 114, 128, 124, 116, 119, 108, 135, 136, 93, 129, 120, 136, 117, 120, 129, 130, 113, 150, 124, 123, 126, 129, 113, 118, 113, 115, 137, 137, 125, 115, 130, 126, 121, 112, 120, 136, 136, 124, 104, 123, 108, 126, 110, 124, 118, 133, 129, 111, 115, 123, 121, 117, 123, 131, 125, 140, 132, 125, 131, 119, 136, 145, 119, 123, 123, 119, 128, 123, 129, 121, 133, 117, 121, 120, 123, 122, 135, 135, 119, 124, 130, 141, 115, 115, 132, 114, 106, 122, 125, 131, 117, 138, 140, 124, 128, 128, 119, 123, 116, 136, 123, 121, 121, 137, 98, 111, 124, 120, 138, 127, 123, 131, 131, 126, 131, 132, 113, 133, 109, 123, 110, 126, 126, 122, 119, 131, 104, 135, 116, 143, 117, 144, 114, 134, 135, 126, 104, 137, 144, 123, 128, 127, 123, 123, 123, 115, 123, 128, 116, 103, 105, 119, 125, 120, 126, 143, 127, 141, 112, 127, 122, 115, 129, 136, 126, 127, 131, 120, 127, 121, 120, 120, 119, 128, 113, 117, 119, 126, 126, 132, 129, 128, 117, 131, 124, 132, 125, 142, 134, 113, 109, 112, 127, 123, 134, 125, 119, 128, 125, 129, 141, 136, 117, 117, 117, 130, 154, 108, 98, 133, 125, 133, 133, 133, 123, 139, 113, 123, 128, 113, 122, 114, 113, 135, 99, 122, 122, 135, 119, 108, 114, 122, 151, 111, 116, 115, 123, 110, 127, 114, 129, 121, 122, 118, 103, 100, 136, 139, 127, 133, 115, 129, 117, 119, 112, 115, 122, 117, 118, 108, 143, 123, 126, 126, 123, 143, 140, 119, 108, 117, 106, 127, 120, 123, 132, 120, 128, 123, 139, 125, 129, 120, 129, 130, 127, 139, 149, 105, 121, 138, 118, 116, 118, 123, 96, 132, 132, 120, 124, 123, 148, 110, 113, 128, 132, 141, 130, 108, 123, 125, 129, 120, 135, 114, 125, 118, 127, 120, 116, 144, 133, 150, 119, 125, 129, 128, 146, 127, 134, 114, 128, 126, 135, 126, 122, 119, 122, 132, 120, 116, 122, 143, 134, 134, 121, 131, 121, 101, 119, 125, 150, 134, 119, 122, 134, 139, 120, 114, 123, 109, 123, 130, 110, 136, 142, 119, 128, 116, 118, 116, 123, 122, 140, 122, 116, 138, 114, 123, 131, 122, 126, 122, 127, 131, 125, 135, 125, 130, 127, 122, 130, 107, 117, 129, 121, 132, 116, 130, 124, 135, 120, 110, 125, 150, 131, 128, 109, 123, 134, 126, 129, 119, 108, 122, 95, 132, 127, 110, 134, 113, 116, 120, 122, 119, 132, 121, 141, 120, 133, 109, 130, 126, 120, 125, 125, 112, 125, 125, 132, 131, 130, 131, 139, 120, 137, 118, 130, 128, 122, 136, 123, 138, 140, 121, 125, 126, 145, 119, 120, 118, 118, 142, 123, 113, 128, 137, 133, 129, 122, 134, 133, 119, 138, 125, 112, 122, 127, 121, 119, 134, 120, 133, 130, 123, 124, 116, 114, 136, 130, 112, 122, 146, 146, 108, 137, 129, 119, 131, 130, 128, 110, 97, 108, 145, 130, 120, 139, 119, 122, 110, 133, 133, 129, 108, 130, 125, 104, 135, 110, 112, 133, 136, 139, 115, 111, 104, 123, 105, 136, 140, 132, 127, 115, 112, 111, 128, 111, 148, 124, 134, 133, 133, 119, 132, 125, 121, 124, 107, 128, 134, 135, 139, 135, 126, 124, 137, 126, 132, 133, 123, 129, 121, 129, 121, 116, 132, 118, 118, 140, 134, 142, 119, 134, 120, 101, 107, 137, 128, 104, 131, 116, 130, 124, 143, 125, 116, 109, 124, 118, 120, 125, 117, 101, 124, 139, 125, 119, 113, 112, 132, 109, 144, 119, 113, 137, 129, 126, 144, 105, 137, 138, 104, 127, 116, 103, 133, 151, 110, 99, 134, 115, 133, 129, 123, 114, 115, 120, 130, 129, 94, 126, 134, 111, 121, 117, 152, 140, 140, 135, 128, 131, 124, 121, 136, 127, 132, 133, 144, 118, 126, 125, 133, 100, 111, 124, 120, 128, 120, 127, 132, 146, 112, 134, 125, 121, 134, 130, 128, 137, 123, 125, 114, 120, 124, 115, 141, 120, 131, 118, 130, 140, 129, 117, 125, 118, 135, 133, 129, 118, 123, 115, 142, 128, 113, 128, 118, 143, 120, 122, 131, 150, 130, 126, 119, 106, 118, 143, 130, 140, 144, 108, 125, 116, 127, 137, 103, 122, 122, 116, 147, 114, 137, 125, 128, 128, 132, 128, 125, 141, 115, 118, 112, 135, 121, 123, 137, 137, 129, 141, 105, 132, 110, 124, 110, 123, 121, 128, 122, 134, 110, 120, 125, 138, 114, 109, 145, 122, 144, 120, 100, 157, 134, 126, 131, 114, 137, 127, 128, 108, 112, 120, 119, 124, 122, 111, 128, 128, 115, 115, 105, 131, 128, 119, 105, 116, 130, 133, 133, 120, 131, 126, 126, 127, 127, 117, 135, 135, 132, 112, 114, 112, 115, 134, 133, 163, 127, 128, 117, 145, 112, 135, 145, 114, 132, 128, 125, 141, 132, 106, 135, 131, 132, 119, 107, 130, 123, 125, 132, 104, 105, 139, 121, 120, 123, 122, 107, 126, 129, 100, 126, 128, 125, 129, 124, 130, 131, 136, 132, 129, 126, 134, 124, 122, 128, 115, 118, 135, 128, 124, 117, 94, 128, 127, 120, 124, 138, 135, 112, 127, 119, 107, 121, 126, 127, 107, 126, 120, 128, 125, 118, 122, 139, 139, 112, 147, 108, 136, 124, 136, 138, 108, 117, 119, 111, 139, 138, 118, 126, 110, 106, 125, 140, 124, 131, 128, 117, 126, 135, 115, 108, 122, 114, 128, 126, 137, 114, 118, 131, 115, 140, 111, 132, 129, 118, 144, 126, 110, 143, 125, 105, 114, 120, 123, 99, 119, 129, 123, 127, 129, 115, 114, 128, 120, 117, 133, 116, 122, 131, 143, 103, 116, 125, 104, 127, 108, 113, 137, 136, 131, 115, 110, 127, 110, 124, 125, 119, 122, 139, 130, 114, 114, 114, 129, 131, 137, 137, 116, 112, 124, 128, 126, 124, 109, 99, 110, 120, 112, 132, 126, 105, 132, 143, 150, 116, 123, 114, 125, 113, 120, 127, 124, 141, 116, 132, 114, 130, 112, 136, 114, 126, 115, 139, 121, 129, 135, 134, 122, 128, 134, 140, 133, 126, 122, 134, 124, 111, 130, 136, 130, 123, 114, 117, 142, 131, 128, 107, 133, 118, 118, 112, 123, 139, 130, 121, 134, 118, 113, 117, 124, 134, 128, 129, 103, 138, 120, 114, 131, 105, 116, 105, 134, 134, 137, 115, 124, 107, 126, 114, 129, 135, 111, 134, 123, 144, 115, 127, 133, 117, 136, 123, 112, 108, 141, 126, 121, 138, 137, 120, 126, 106, 117, 105, 139, 122, 138, 131, 135, 134, 111, 121, 127, 119, 118, 129, 120, 124, 109, 122, 120, 109, 124, 130, 137, 127, 117, 145, 124, 133, 108, 119, 130, 120, 112, 115, 137, 129, 131, 134, 127, 117, 124, 133, 115, 129, 143, 143, 116, 146, 140, 110, 134, 123, 136, 116, 119, 120, 136, 142, 123, 121, 141, 94, 135, 118, 113, 115, 126, 116, 125, 130, 128, 140, 131, 136, 124, 128, 129, 122, 127, 105, 121, 141, 127, 119, 119, 139, 114, 133, 116, 130, 148, 140, 117, 119, 132, 102, 123, 101, 113, 119, 135, 112, 120, 127, 137, 123, 127, 118, 123, 131, 129, 139, 115, 115, 138, 116, 118, 146, 130, 130, 137, 150, 121, 151, 115, 119, 114, 128, 118, 132, 122, 119, 115, 111, 124, 131, 121, 115, 115, 124, 124, 107, 124, 133, 118, 121, 118, 137, 126, 122, 129, 118, 150, 133, 132, 131, 128, 143, 133, 138, 119, 112, 138, 130, 121, 124, 140, 107, 103, 115, 144, 112, 129, 132, 113, 135, 110, 157, 117, 121, 131, 133, 153, 109, 131, 118, 127, 103, 129, 138, 134, 117, 140, 143, 117, 138, 136, 111, 136, 130, 137, 137, 139, 119, 124, 130, 142, 130, 120, 135, 118, 120, 130, 110, 123, 115, 129, 133, 113, 112, 118, 114, 109, 141, 127, 118, 112, 142, 123, 136, 127, 121, 133, 118, 150, 142, 108, 127, 133, 127, 131, 118, 132, 129, 133, 127, 126, 97, 123, 132, 140, 146, 134, 119, 128, 122, 135, 128, 126, 138, 126, 130, 125, 126, 118, 114, 129, 141, 120, 144, 133, 123, 123, 154, 140, 130, 132, 128, 121, 123, 117, 138, 116, 134, 118, 140, 127, 109, 124, 131, 151, 139, 114, 121, 126, 128, 111, 135, 144, 118, 133, 125, 148, 126, 130, 123, 147, 122, 126, 123, 112, 144, 111, 119, 107, 128, 117, 128, 132, 111, 124, 144, 140, 126, 137, 108, 127, 115, 123, 149, 118, 127, 119, 130, 113, 143, 121, 134, 118, 122, 116, 130, 122, 122, 123, 133, 150, 135, 130, 129, 133, 109, 107, 124, 124, 121, 136, 115, 119, 114, 126, 137, 135, 118, 135, 117, 123, 126, 120, 128, 123, 139, 123, 133, 135, 142, 119, 128, 91, 127, 125, 119, 114, 139, 129, 134, 115, 125, 125, 122, 124, 123, 121, 116, 144, 110, 116, 125, 131, 115, 123, 126, 134, 111, 117, 128, 135, 120, 119, 134, 119, 144, 135, 132, 115, 140, 117, 135, 116, 143, 129, 126, 130, 102, 126, 115, 130, 143, 132, 123, 125, 104, 116, 117, 100, 117, 121, 120, 128, 135, 140, 122, 121, 110, 126, 108, 118, 128, 116, 126, 126, 122, 126, 138, 120, 126, 108, 116, 147, 115, 101, 117, 132, 127, 112, 113, 117, 126, 120, 129, 123, 122, 131, 138, 112, 128, 130, 130, 120, 134, 118, 128, 117, 146, 113, 123, 134, 129, 116, 128, 129, 105, 121, 117, 128, 135, 130, 119, 128, 122, 132, 105, 127, 119, 139, 131, 122, 127, 128, 127, 125, 104, 127, 132, 125, 118, 130, 134, 123, 142, 128, 124, 112, 130, 117, 109, 126, 146, 128, 109, 134, 134, 133, 135, 118, 123, 104, 127, 138, 135, 127, 127, 111, 143, 133, 129, 141, 142, 116, 107, 124, 123, 140, 125, 121, 115, 133, 109, 119, 115, 128, 111, 123, 130, 120, 119, 124, 143, 133, 137, 117, 115, 115, 122, 120, 120, 126, 132, 118, 138, 126, 127, 132, 133, 147, 127, 122, 117, 143, 114, 118, 118, 119, 124, 138, 132, 136, 133, 123, 127, 143, 128, 113, 126, 112, 129, 124, 119, 112, 129, 127, 137, 138, 125, 131, 124, 109, 134, 126, 121, 137, 140, 144, 118, 125, 122, 134, 129, 131, 134, 127, 130, 136, 136, 126, 114, 123, 131, 105, 133, 109, 131, 141, 133, 119, 126, 127, 139, 105, 143, 115, 117, 124, 120, 126, 128, 112, 119, 122, 120, 116, 147, 121, 134, 136, 125, 126, 129, 123, 138, 128, 136, 127, 129, 109, 141, 138, 125, 131, 121, 132, 115, 133, 113, 125, 109, 145, 117, 138, 137, 127, 132, 106, 115, 138, 118, 126, 135, 120, 133, 132, 144, 137, 117, 137, 126, 129, 126, 117, 132, 136, 120, 126, 124, 122, 136, 104, 96, 120, 126, 128, 120, 112, 134, 143, 132, 127, 137, 129, 129, 134, 117, 135, 108, 122, 120, 116, 115, 113, 109, 110, 120, 131, 122, 117, 132, 141, 120, 122, 127, 140, 135, 117, 122, 125, 138, 122, 139, 115, 127, 130, 158, 120, 115, 128, 133, 124, 117, 118, 122, 122, 125, 124, 126, 128, 126, 131, 118, 136, 126, 145, 144, 143, 127, 107, 138, 120, 122, 135, 119, 133, 124, 126, 119, 120, 137, 115, 131, 119, 104, 122, 127, 121, 121, 132, 111, 123, 143, 112, 125, 125, 137, 124, 132, 116, 110, 133, 140, 136, 140, 123, 152, 131, 139, 123, 130, 116, 118, 124, 132, 128, 131, 141, 129, 124, 127, 124, 121, 132, 114, 122, 124, 107, 134, 144, 127, 133, 133, 124, 130, 128, 123, 143, 135, 126, 125, 112, 151, 131, 107, 134, 117, 134, 140, 122, 131, 111, 124, 119, 111, 128, 122, 139, 116, 119, 126, 105, 127, 148, 137, 134, 132, 115, 137, 110, 133, 128, 102, 100, 127, 117, 106, 127, 138, 128, 137, 124, 130, 120, 122, 139, 129, 123, 111, 134, 126, 122, 125, 135, 142, 118, 116, 107, 121, 109, 129, 125, 118, 133, 135, 139, 124, 114, 116, 125, 127, 105, 124, 116, 132, 127, 133, 119, 122, 126, 105, 121, 139, 136, 117, 129, 110, 122, 133, 113, 119, 102, 123, 115, 126, 105, 123, 132, 117, 124, 122, 136, 129, 135, 107, 115, 134, 126, 136, 121, 135, 140, 135, 137, 120, 129, 141, 106, 122, 119, 127, 113, 130, 134, 118, 106, 137, 130, 135, 142, 128, 116, 142, 134, 117, 127, 118, 134, 131, 114, 128, 140, 112, 117, 125, 122, 111, 115, 123, 122, 114, 121, 131, 134, 120, 123, 136, 120, 121, 105, 120, 134, 137, 119, 139, 116, 122, 122, 137, 108, 117, 130, 133, 126, 122, 114, 113, 132, 115, 118, 131, 121, 125, 119, 127, 113, 125, 120, 127, 136, 133, 138, 132, 135, 141, 127, 134, 128, 109, 132, 126, 106, 115, 125, 112, 122, 114, 140, 132, 111, 133, 128, 125, 127, 116, 102, 133, 125, 128, 134, 127, 122, 115, 116, 133, 122, 115, 131, 128, 124, 133, 121, 122, 118, 135, 120, 145, 117, 138, 109, 114, 123, 112, 121, 133, 136, 125, 116, 121, 137, 156, 131, 119, 133, 115, 135, 111, 143, 125, 124, 131, 132, 106, 139, 118, 138, 120, 120, 121, 116, 122, 127, 116, 144, 132, 131, 127, 117, 112, 126, 128, 136, 124, 150, 127, 131, 130, 118, 118, 128, 132, 143, 118, 138, 119, 132, 119, 127, 127, 122, 133, 105, 129, 135, 144, 116, 124, 128, 117, 131, 116, 125, 131, 116, 126, 129, 116, 131, 141, 118, 121, 104, 118, 115, 147, 128, 142, 108, 127, 113, 113, 108, 127, 124, 125, 131, 138, 117, 124, 143, 118, 131, 120, 134, 124, 125, 135, 118, 130, 135, 141, 125, 125, 121, 127, 142, 127, 98, 120, 122, 112, 122, 106, 124, 136, 132, 115, 115, 120, 131, 113, 139, 137, 136, 133, 121, 138, 119, 126, 120, 117, 141, 129, 124, 119, 120, 111, 132, 125, 126, 132, 135, 100, 118, 133, 120, 120, 108, 109, 140, 136, 141, 127, 124, 120, 113, 114, 141, 106, 128, 141, 130, 145, 137, 152, 125, 122, 114, 117, 115, 121, 105, 121, 131, 127, 125, 109, 120, 142, 122, 123, 123, 119, 97, 113, 121, 108, 113, 126, 113, 126, 134, 141, 120, 122, 129, 113, 149, 128, 112, 130, 124, 113, 123, 136, 132, 132, 130, 145, 120, 119, 119, 123, 118, 118, 142, 149, 127, 120, 137, 136, 125, 124, 142, 131, 137, 133, 111, 116, 110, 123, 138, 125, 129, 137, 126, 110, 134, 127, 120, 125, 130, 136, 123, 128, 124, 127, 113, 133, 122, 139, 119, 127, 127, 124, 115, 132, 137, 124, 134, 136, 122, 141, 125, 118, 102, 127, 130, 134, 128, 125, 124, 127, 114, 118, 128, 129, 131, 129, 116, 142, 127, 131, 141, 120, 137, 124, 118, 120, 134, 122, 138, 132, 140, 120, 108, 123, 123, 140, 136, 124, 118, 119, 127, 107, 98, 118, 117, 134, 117, 124, 77, 120, 118, 118, 142, 133, 120, 128, 125, 138, 146, 141, 122, 138, 106, 132, 127, 123, 113, 126, 113, 124, 124, 130, 115, 110, 129, 116, 129, 147, 140, 139, 131, 121, 127, 152, 124, 126, 130, 128, 115, 121, 140, 131, 110, 131, 139, 120, 106, 133, 118, 123, 99, 113, 112, 135, 133, 121, 124, 129, 117, 126, 117, 141, 115, 117, 127, 114, 102, 125, 157, 127, 130, 126, 130, 136, 122, 122, 109, 124, 116, 129, 131, 118, 126, 119, 136, 136, 140, 131, 115, 120, 127, 124, 123, 120, 126, 117, 115, 132, 118, 123, 109, 131, 135, 118, 94, 120, 119, 120, 136, 115, 120, 134, 126, 115, 98, 112, 125, 112, 148, 117, 131, 143, 124, 130, 109, 130, 112, 118, 114, 141, 120, 125, 121, 130, 131, 140, 119, 127, 127, 122, 119, 129, 128, 127, 111, 140, 125, 114, 128, 120, 125, 123, 139, 131, 123, 116, 114, 145, 146, 116, 128, 109, 117, 122, 137, 124, 125, 124, 131, 125, 143, 117, 124, 114, 104, 138, 141, 140, 141, 144, 136, 124, 121, 114, 126, 143, 133, 123, 154, 129, 108, 130, 121, 105, 139, 136, 115, 129, 131, 132, 123, 133, 134, 142, 123, 124, 133, 116, 125, 138, 150, 115, 111, 109, 121, 104, 135, 132, 130, 136, 128, 132, 110, 132, 130, 117, 117, 141, 119, 131, 115, 122, 120, 123, 130, 121, 121, 127, 119, 127, 136, 124, 118, 113, 121, 117, 125, 123, 109, 123, 143, 129, 112, 132, 138, 121, 123, 122, 131, 113, 142, 120, 131, 113, 125, 110, 125, 128, 125, 119, 120, 131, 125, 122, 143, 115, 122, 127, 117, 123, 120, 103, 123, 116, 128, 143, 137, 114, 130, 129, 150, 118, 127, 112, 126, 126, 132, 118, 119, 119, 125, 126, 120, 128, 122, 130, 114, 124, 112, 138, 135, 116, 102, 108, 128, 127, 115, 135, 127, 104, 135, 127, 117, 127, 125, 133, 112, 126, 106, 131, 125, 134, 143, 140, 117, 122, 128, 122, 133, 131, 115, 126, 135, 144, 140, 139, 126, 103, 132, 136, 115, 136, 112, 136, 117, 125, 120, 116, 125, 128, 128, 122, 110, 103, 109, 125, 120, 125, 126, 126, 128, 108, 110, 114, 133, 137, 128, 132, 134, 135, 129, 113, 127, 130, 126, 123, 122, 107, 133, 140, 145, 124, 141, 135, 121, 118, 117, 117, 125, 134, 126, 130, 116, 154, 109, 103, 135, 122, 136, 141, 120, 107, 120, 115, 123, 122, 109, 142, 133, 116, 130, 129, 139, 110, 123, 130, 133, 132, 139, 128, 119, 141, 135, 127, 101, 145, 139, 138, 138, 134, 136, 112, 126, 116, 107, 130, 130, 128, 130, 120, 129, 117, 135, 118, 109, 130, 120, 137, 154, 116, 119, 131, 143, 134, 126, 114, 124, 120, 129, 122, 128, 129, 136, 145, 119, 142, 114, 99, 125, 108, 122, 126, 109, 125, 123, 124, 121, 125, 114, 118, 143, 109, 118, 111, 117, 114, 119, 124, 120, 111, 125, 142, 110, 120, 122, 139, 118, 115, 125, 130, 129, 128, 122, 123, 119, 124, 129, 106, 118, 135, 106, 93, 128, 127, 107, 100, 123, 132, 130, 123, 119, 123, 97, 133, 131, 104, 125, 144, 113, 116, 114, 125, 124, 142, 138, 118, 133, 130, 126, 140, 131, 129, 118, 141, 138, 118, 126, 113, 127, 139, 130, 136, 131, 102, 120, 125, 111, 121, 132, 144, 108, 118, 141, 128, 131, 133, 122, 116, 133, 123, 117, 132, 118, 126, 138, 137, 131, 120, 133, 100, 110, 131, 123, 127, 127, 127, 120, 127, 129, 117, 129, 135, 124, 111, 99, 126, 114, 124, 133, 125, 130, 119, 130, 134, 133, 144, 121, 119, 126, 136, 141, 113, 120, 119, 124, 127, 114, 107, 128, 106, 128, 133, 114, 119, 124, 129, 122, 132, 124, 145, 116, 131, 123, 124, 125, 123, 135, 143, 109, 129, 117, 129, 132, 123, 124, 143, 122, 128, 120, 137, 107, 122, 115, 125, 132, 131, 158, 132, 103, 130, 109, 130, 111, 122, 121, 131, 133, 116, 117, 97, 141, 124, 132, 121, 131, 109, 116, 132, 136, 131, 116, 104, 117, 139, 128, 124, 125, 123, 136, 135, 114, 123, 122, 125, 117, 124, 125, 133, 113, 126, 121, 133, 132, 129, 131, 126, 142, 126, 129, 122, 145, 123, 120, 130, 120, 125, 150, 133, 130, 119, 126, 126, 130, 106, 115, 135, 118, 130, 137, 154, 118, 132, 115, 121, 118, 137, 124, 129, 133, 122, 128, 133, 124, 133, 131, 125, 128, 125, 144, 130, 128, 125, 116, 122, 121, 120, 140, 129, 125, 135, 129, 128, 116, 117, 115, 125, 130, 121, 137, 113, 133, 131, 128, 123, 101, 133, 134, 120, 127, 129, 117, 115, 116, 115, 134, 110, 140, 123, 142, 109, 118, 109, 138, 122, 133, 118, 116, 146, 119, 129, 135, 123, 143, 109, 152, 109, 130, 123, 127, 125, 121, 120, 120, 123, 140, 138, 138, 136, 120, 138, 135, 107, 127, 153, 124, 111, 141, 125, 114, 126, 122, 126, 145, 116, 105, 114, 112, 127, 119, 119, 142, 115, 121, 125, 137, 128, 137, 135, 140, 132, 121, 130, 103, 126, 133, 112, 121, 110, 147, 107, 144, 128, 117, 127, 120, 122, 124, 124, 139, 133, 140, 125, 153, 117, 127, 124, 129, 119, 139, 142, 129, 121, 127, 135, 123, 136, 101, 133, 133, 125, 127, 110, 110, 127, 116, 113, 120, 115, 125, 129, 113, 128, 134, 142, 118, 128, 123, 117, 130, 131, 107, 133, 110, 133, 116, 128, 142, 116, 117, 118, 122, 126, 142, 120, 132, 109, 139, 132, 123, 119, 110, 133, 136, 134, 134, 125, 132, 139, 141, 131, 138, 129, 117, 121, 122, 113, 116, 132, 112, 144, 123, 115, 135, 123, 127, 118, 147, 111, 117, 108, 139, 115, 134, 127, 106, 154, 120, 139, 119, 136, 130, 128, 127, 135, 120, 125, 126, 141, 111, 130, 121, 118, 119, 132, 122, 125, 122, 123, 128, 128, 143, 133, 123, 135, 127, 109, 157, 131, 119, 119, 131, 148, 131, 119, 120, 114, 130, 114, 123, 112, 139, 131, 142, 129, 130, 142, 123, 117, 139, 128, 118, 132, 122, 144, 118, 131, 131, 118, 129, 125, 122, 142, 130, 124, 118, 126, 140, 124, 144, 128, 109, 127, 131, 141, 121, 135, 142, 120, 142, 120, 108, 126, 121, 105, 129, 117, 120, 131, 121, 141, 129, 132, 117, 168, 140, 125, 138, 113, 135, 132, 119, 135, 104, 130, 128, 112, 134, 120, 108, 128, 107, 143, 135, 131, 121, 139, 117, 121, 128, 131, 145, 125, 124, 128, 129, 117, 147, 121, 125, 132, 149, 117, 118, 128, 119, 135, 104, 131, 109, 120, 115, 135, 129, 109, 123, 146, 131, 96, 119, 120, 123, 133, 124, 125, 128, 125, 117, 122, 139, 117, 132, 129, 112, 143, 118, 113, 118, 125, 131, 128, 120, 102, 125, 115, 120, 115, 102, 113, 126, 139, 128, 127, 133, 127, 127, 123, 146, 117, 132, 117, 133, 128, 123, 124, 125, 115, 123, 144, 123, 134, 129, 122, 146, 119, 106, 139, 126, 133, 124, 135, 134, 130, 104, 128, 120, 121, 127, 115, 128, 131, 127, 115, 147, 119, 134, 122, 125, 118, 121, 129, 122, 136, 110, 131, 130, 113, 115, 127, 120, 120, 148, 120, 130, 108, 120, 122, 133, 129, 128, 113, 117, 112, 135, 152, 118, 109, 145, 139, 116, 111, 114, 109, 134, 118, 113, 105, 112, 129, 128, 128, 117, 120, 121, 142, 109, 124, 133, 132, 128, 132, 94, 128, 118, 133, 136, 128, 123, 126, 125, 118, 146, 155, 128, 123, 106, 112, 141, 108, 133, 116, 128, 127, 114, 122, 122, 138, 118, 116, 118, 135, 134, 140, 105, 136, 111, 139, 128, 133, 121, 121, 122, 115, 99, 120, 125, 117, 131, 121, 121, 128, 129, 114, 133, 111, 137, 125, 127, 119, 110, 113, 134, 128, 134, 124, 123, 124, 139, 118, 119, 131, 120, 119, 131, 119, 136, 104, 124, 137, 131, 133, 127, 123, 139, 122, 132, 125, 134, 129, 131, 111, 104, 127, 121, 111, 122, 110, 129, 129, 137, 131, 98, 131, 114, 124, 110, 125, 125, 119, 113, 128, 127, 104, 109, 117, 121, 113, 114, 124, 121, 145, 137, 122, 130, 120, 123, 114, 121, 142, 131, 102, 129, 134, 117, 118, 127, 111, 117, 139, 125, 137, 107, 108, 114, 135, 128, 114, 125, 119, 137, 147, 148, 111, 145, 140, 128, 126, 127, 129, 123, 146, 130, 118, 109, 146, 121, 112, 133, 118, 123, 112, 133, 126, 122, 135, 128, 130, 133, 151, 137, 116, 117, 126, 135, 154, 113, 126, 124, 130, 130, 113, 115, 129, 136, 149, 136, 110, 126, 121, 125, 125, 136, 124, 134, 138, 141, 123, 144, 139, 126, 134, 129, 130, 110, 127, 128, 132, 137, 135, 134, 141, 106, 121, 130, 104, 106, 122, 117, 132, 116, 128, 138, 127, 120, 122, 109, 133, 148, 123, 121, 101, 126, 122, 102, 118, 137, 124, 123, 124, 127, 128, 129, 132, 117, 123, 95, 138, 137, 130, 136, 118, 122, 104, 121, 117, 109, 143, 137, 123, 136, 128, 126, 147, 124, 135, 129, 123, 133, 122, 119, 130, 137, 135, 133, 121, 139, 118, 120, 117, 124, 122, 142, 118, 136, 120, 121, 118, 121, 145, 125, 130, 133, 111, 106, 132, 130, 145, 116, 134, 129, 147, 149, 117, 121, 122, 132, 140, 121, 135, 121, 128, 129, 118, 129, 144, 119, 120, 124, 119, 125, 114, 133, 116, 128, 134, 144, 114, 125, 143, 115, 125, 127, 121, 116, 119, 121, 117, 120, 138, 133, 137, 121, 114, 130, 122, 120, 130, 130, 128, 116, 116, 125, 103, 118, 127, 114, 142, 119, 147, 149, 126, 114, 122, 130, 133, 123, 138, 136, 129, 130, 138, 140, 135, 139, 128, 149, 121, 130, 131, 141, 134, 113, 126, 112, 133, 125, 101, 121, 120, 131, 124, 118, 117, 129, 128, 116, 103, 125, 121, 117, 137, 134, 151, 111, 114, 134, 118, 129, 122, 121, 116, 139, 125, 117, 131, 126, 98, 126, 143, 135, 104, 122, 142, 128, 120, 123, 132, 117, 123, 131, 114, 136, 148, 102, 132, 126, 123, 130, 131, 117, 100, 129, 123, 121, 110, 151, 104, 135, 122, 134, 134, 140, 123, 136, 111, 110, 132, 126, 117, 117, 137, 127, 118, 136, 148, 130, 122, 119, 121, 117, 115, 129, 132, 126, 133, 125, 129, 128, 122, 127, 117, 125, 144, 139, 116, 125, 125, 116, 128, 118, 127, 136, 132, 119, 125, 130, 122, 126, 128, 111, 139, 112, 133, 134, 124, 132, 117, 112, 121, 112, 114, 134, 131, 129, 129, 133, 119, 125, 113, 115, 112, 126, 116, 113, 123, 130, 151, 126, 134, 117, 128, 126, 105, 121, 117, 126, 126, 136, 115, 115, 139, 129, 125, 134, 105, 128, 111, 114, 123, 115, 130, 120, 111, 141, 133, 144, 132, 129, 127, 125, 115, 148, 122, 140, 122, 112, 135, 117, 104, 126, 120, 111, 143, 135, 124, 130, 108, 120, 133, 120, 127, 120, 129, 116, 145, 134, 103, 116, 122, 130, 114, 128, 132, 144, 127, 109, 125, 118, 134, 116, 129, 138, 135, 110, 136, 135, 141, 131, 118, 123, 119, 118, 113, 128, 116, 110, 123, 136, 132, 152, 115, 110, 124, 136, 144, 143, 119, 129, 140, 120, 131, 129, 116, 131, 126, 148, 124, 127, 120, 122, 119, 121, 119, 129, 133, 130, 115, 131, 114, 126, 121, 117, 139, 112, 131, 109, 119, 117, 103, 124, 123, 114, 108, 125, 120, 126, 119, 114, 123, 107, 130, 134, 117, 116, 123, 121, 125, 113, 132, 105, 125, 129, 129, 122, 130, 103, 125, 129, 130, 116, 140, 117, 109, 122, 119, 117, 121, 130, 111, 133, 123, 123, 130, 112, 134, 127, 131, 126, 119, 118, 117, 118, 105, 150, 133, 115, 131, 135, 151, 124, 121, 148, 125, 108, 127, 115, 106, 127, 127, 123, 118, 100, 114, 122, 124, 126, 141, 114, 127, 113, 137, 134, 138, 116, 130, 131, 151, 137, 137, 132, 115, 111, 132, 123, 154, 117, 111, 122, 126, 110, 121, 127, 128, 140, 103, 126, 134, 149, 104, 127, 120, 128, 151, 118, 119, 136, 105, 137, 135, 105, 119, 121, 134, 121, 124, 132, 126, 136, 144, 115, 124, 126, 133, 107, 138, 120, 145, 138, 126, 110, 138, 121, 123, 136, 113, 111, 112, 108, 124, 136, 124, 115, 101, 139, 127, 135, 132, 130, 95, 122, 123, 122, 118, 146, 131, 116, 127, 125, 123, 110, 140, 126, 132, 116, 147, 131, 132, 136, 124, 123, 129, 116, 118, 116, 126, 140, 118, 117, 140, 139, 146, 112, 131, 115, 133, 142, 126, 131, 116, 123, 133, 102, 122, 133, 130, 129, 124, 119, 129, 128, 131, 131, 121, 133, 131, 102, 134, 126, 127, 115, 138, 126, 134, 117, 107, 113, 124, 124, 125, 127, 143, 114, 126, 134, 140, 133, 108, 129, 114, 116, 113, 129, 126, 157, 117, 126, 136, 138, 127, 121, 112, 110, 132, 116, 130, 118, 130, 117, 114, 114, 120, 135, 114, 127, 120, 123, 131, 117, 110, 123, 138, 111, 106, 117, 131, 125, 114, 151, 122, 111, 102, 122, 125, 115, 126, 131, 126, 114, 124, 128, 116, 112, 122, 113, 146, 145, 128, 129, 138, 120, 118, 132, 132, 120, 138, 116, 119, 133, 121, 130, 133, 115, 115, 131, 127, 111, 133, 119, 101, 146, 114, 119, 122, 120, 124, 111, 126, 121, 125, 135, 112, 120, 115, 119, 118, 112, 126, 124, 112, 107, 122, 122, 128, 132, 126, 132, 132, 128, 117, 146, 118, 131, 123, 120, 122, 115, 137, 133, 103, 137, 125, 125, 133, 136, 124, 124, 124, 127, 132, 116, 120, 135, 113, 142, 139, 135, 123, 138, 129, 113, 119, 134, 130, 131, 128, 117, 115, 119, 110, 117, 129, 126, 121, 141, 132, 135, 147, 109, 129, 122, 110, 123, 119, 146, 123, 126, 109, 137, 128, 123, 122, 122, 124, 131, 134, 133, 129, 126, 110, 115, 121, 139, 141, 129, 122, 128, 133, 147, 114, 112, 118, 134, 121, 120, 127, 131, 131, 116, 124, 137, 138, 120, 133, 134, 113, 135, 142, 111, 114, 120, 135, 130, 135, 120, 137, 144, 124, 127, 146, 125, 113, 126, 134, 127, 107, 103, 105, 124, 114, 119, 118, 142, 134, 116, 115, 133, 134, 134, 134, 103, 135, 124, 129, 130, 100, 115, 114, 132, 130, 138, 124, 128, 120, 138, 129, 124, 120, 123, 137, 117, 131, 128, 117, 102, 115, 126, 124, 123, 125, 141, 134, 120, 135, 125, 124, 111, 130, 117, 125, 124, 125, 120, 121, 121, 125, 122, 123, 116, 118, 135, 110, 126, 135, 137, 127, 117, 144, 134, 123, 131, 118, 132, 134, 133, 125, 129, 133, 142, 143, 127, 128, 114, 128, 129, 101, 129, 116, 135, 120, 123, 123, 114, 118, 135, 123, 112, 127, 114, 143, 130, 120, 169, 133, 111, 134, 128, 125, 131, 119, 116, 128, 145, 128, 142, 125, 122, 114, 143, 118, 118, 128, 137, 114, 126, 134, 111, 141, 128, 134, 129, 120, 142, 121, 143, 120, 121, 114, 123, 115, 129, 128, 126, 117, 113, 121, 137, 125, 144, 115, 116, 129, 122, 109, 134, 135, 132, 101, 125, 130, 120, 148, 130, 133, 138, 133, 115, 129, 143, 121, 123, 148, 119, 149, 138, 105, 130, 117, 138, 121, 132, 120, 132, 129, 135, 113, 134, 134, 117, 124, 122, 133, 131, 120, 137, 126, 127, 132, 137, 120, 134, 117, 125, 121, 124, 122, 119, 115, 130, 112, 128, 114, 132, 131, 127, 133, 130, 144, 108, 110, 134, 122, 131, 140, 117, 120, 130, 140, 147, 123, 134, 109, 126, 126, 140, 122, 133, 127, 134, 141, 116, 122, 124, 122, 109, 139, 127, 113, 135, 115, 132, 119, 139, 159, 124, 133, 130, 115, 127, 136, 132, 136, 127, 107, 126, 118, 144, 119, 117, 128, 127, 148, 133, 118, 153, 136, 123, 135, 129, 117, 123, 135, 124, 124, 133, 140, 131, 129, 125, 139, 113, 133, 119, 122, 148, 114, 120, 119, 114, 119, 132, 126, 131, 107, 107, 138, 128, 133, 132, 131, 123, 119, 134, 111, 117, 122, 125, 120, 121, 125, 128, 129, 145, 129, 122, 143, 129, 143, 134, 128, 130, 135, 123, 138, 105, 116, 130, 101, 118, 126, 125, 144, 117, 131, 129, 128, 137, 140, 146, 130, 135, 143, 130, 129, 132, 117, 127, 116, 143, 142, 122, 126, 119, 134, 125, 142, 122, 143, 122, 118, 132, 124, 124, 144, 121, 139, 130, 115, 124, 133, 155, 115, 131, 105, 129, 149, 116, 119, 114, 122, 124, 121, 112, 132, 141, 107, 141, 125, 121, 141, 118, 121, 125, 114, 127, 129, 120, 128, 118, 127, 132, 132, 120, 120, 134, 127, 121, 127, 120, 127, 130, 140, 133, 124, 117, 133, 125, 110, 134, 130, 129, 129, 131, 141, 120, 126, 129, 104, 120, 128, 142, 120, 124, 120, 125, 117, 119, 126, 127, 114, 140, 118, 132, 123, 133, 123, 116, 128, 128, 138, 129, 132, 126, 137, 128, 127, 127, 109, 144, 132, 133, 130, 135, 141, 131, 120, 110, 126, 109, 138, 135, 121, 122, 117, 134, 125, 121, 108, 124, 118, 122, 132, 112, 116, 124, 122, 126, 146, 130, 117, 127, 129, 138, 118, 131, 119, 121, 121, 126, 100, 131, 122, 101, 132, 132, 111, 114, 118, 135, 120, 132, 130, 144, 121, 138, 118, 121, 117, 118, 131, 118, 142, 126, 131, 114, 132, 120, 134, 119, 125, 115, 112, 122, 121, 121, 125, 128, 141, 131, 122, 134, 119, 129, 130, 123, 108, 139, 133, 112, 129, 124, 136, 124, 123, 132, 126, 122, 131, 135, 114, 136, 120, 130, 118, 113, 119, 121, 121, 128, 121, 105, 118, 124, 122, 122, 122, 121, 122, 132, 137, 143, 121, 134, 130, 130, 136, 139, 122, 121, 118, 152, 115, 124, 127, 119, 123, 114, 123, 136, 142, 132, 153, 120, 141, 117, 128, 122, 100, 120, 111, 137, 126, 136, 132, 123, 149, 144, 120, 129, 127, 138, 120, 123, 117, 129, 124, 119, 117, 105, 113, 122, 123, 132, 125, 118, 111, 126, 128, 130, 117, 120, 114, 125, 129, 123, 137, 126, 116, 117, 116, 139, 126, 125, 132, 116, 129, 113, 119, 133, 134, 125, 105, 123, 91, 129, 118, 125, 128, 147, 147, 129, 131, 131, 123, 124, 123, 114, 106, 143, 117, 116, 132, 120, 120, 124, 139, 121, 110, 117, 121, 123, 128, 134, 124, 126, 130, 121, 113, 126, 125, 136, 111, 148, 140, 127, 122, 128, 120, 141, 104, 148, 124, 111, 131, 142, 124, 122, 129, 122, 117, 125, 143, 124, 108, 123, 127, 128, 119, 149, 121, 139, 128, 132, 140, 120, 120, 120, 128, 141, 135, 134, 129, 123, 115, 127, 122, 121, 128, 114, 123, 121, 125, 139, 128, 127, 130, 122, 125, 137, 136, 126, 145, 131, 102, 124, 136, 122, 137, 119, 125, 124, 135, 112, 118, 103, 118, 132, 124, 127, 128, 131, 123, 129, 125, 120, 112, 124, 136, 149, 117, 127, 123, 108, 117, 116, 123, 136, 123, 114, 131, 128, 121, 124, 122, 130, 130, 130, 119, 131, 123, 118, 110, 142, 121, 129, 131, 132, 124, 114, 120, 116, 107, 120, 129, 132, 131, 125, 123, 111, 127, 133, 121, 123, 129, 127, 112, 126, 138, 128, 142, 129, 136, 124, 147, 130, 114, 130, 133, 150, 125, 137, 119, 118, 144, 119, 125, 124, 131, 108, 121, 126, 135, 115, 125, 137, 125, 133, 119, 128, 130, 121, 124, 129, 138, 107, 106, 114, 117, 134, 133, 109, 116, 142, 112, 108, 127, 147, 130, 141, 133, 124, 127, 121, 129, 117, 137, 102, 115, 126, 119, 139, 124, 118, 132, 130, 128, 120, 131, 104, 125, 134, 120, 127, 128, 106, 114, 153, 133, 125, 110, 135, 127, 112, 114, 137, 117, 130, 123, 138, 128, 133, 134, 134, 123, 122, 126, 125, 137, 123, 125, 128, 115, 121, 127, 131, 123, 143, 105, 111, 114, 124, 126, 123, 119, 126, 129, 110, 116, 130, 123, 130, 122, 137, 66, 111, 120, 128, 109, 120, 143, 128, 90, 130, 109, 127, 120, 128, 116, 127, 133, 120, 122, 138, 135, 144, 125, 135, 116, 101, 136, 127, 134, 131, 104, 126, 126, 121, 129, 121, 134, 131, 134, 114, 117, 129, 132, 126, 122, 131, 119, 136, 121, 133, 130, 112, 147, 135, 124, 122, 131, 135, 128, 118, 138, 118, 136, 112, 138, 116, 129, 117, 144, 132, 120, 122, 134, 127, 134, 122, 121, 118, 140, 117, 114, 132, 135, 140, 122, 117, 121, 117, 127, 126, 132, 128, 137, 125, 124, 135, 137, 142, 128, 113, 129, 132, 118, 112, 121, 131, 117, 111, 133, 126, 122, 127, 141, 150, 99, 107, 115, 128, 130, 140, 126, 129, 109, 141, 127, 134, 135, 122, 114, 126, 104, 122, 141, 148, 133, 134, 125, 117, 129, 138, 120, 115, 136, 106, 117, 127, 131, 123, 136, 134, 111, 115, 136, 118, 116, 120, 122, 104, 115, 125, 139, 125, 133, 142, 126, 126, 130, 125, 129, 136, 155, 134, 136, 115, 146, 119, 133, 107, 136, 135, 125, 124, 137, 155, 147, 125, 130, 120, 106, 114, 130, 138, 129, 119, 112, 125, 126, 132, 143, 132, 105, 124, 116, 117, 140, 114, 112, 138, 125, 130, 113, 121, 114, 138, 128, 119, 132, 132, 109, 124, 130, 140, 126, 132, 123, 135, 116, 141, 123, 121, 123, 143, 102, 129, 118, 122, 119, 126, 121, 142, 135, 126, 119, 137, 127, 116, 117, 139, 135, 120, 122, 136, 132, 120, 131, 143, 131, 129, 148, 134, 115, 110, 117, 132, 116, 136, 135, 117, 140, 100, 124, 140, 145, 116, 132, 131, 136, 138, 130, 118, 132, 118, 127, 108, 123, 120, 131, 135, 138, 131, 133, 122, 128, 127, 144, 103, 144, 131, 117, 119, 138, 116, 118, 130, 140, 117, 121, 119, 140, 129, 133, 129, 125, 129, 123, 122, 133, 122, 129, 128, 118, 129, 117, 120, 130, 134, 120, 120, 125, 112, 127, 110, 135, 121, 110, 124, 130, 133, 150, 104, 119, 104, 117, 128, 125, 126, 140, 120, 137, 130, 136, 135, 136, 132, 111, 128, 138, 123, 138, 99, 138, 114, 124, 135, 95, 117, 111, 119, 131, 136, 103, 101, 127, 137, 129, 124, 126, 104, 132, 116, 144, 130, 112, 127, 112, 128, 120, 123, 133, 129, 134, 123, 138, 113, 136, 134, 137, 107, 114, 129, 118, 121, 143, 122, 121, 114, 135, 119, 116, 132, 129, 138, 131, 126, 104, 131, 131, 125, 131, 120, 119, 148, 137, 119, 120, 128, 125, 112, 131, 125, 141, 134, 120, 127, 114, 111, 112, 126, 123, 109, 113, 139, 131, 123, 142, 118, 128, 134, 113, 127, 114, 124, 121, 131, 143, 134, 109, 130, 125, 104, 121, 109, 117, 118, 126, 129, 122, 125, 124, 141, 129, 125, 129, 118, 124, 117, 130, 124, 133, 118, 129, 129, 126, 120, 120, 127, 127, 129, 123, 123, 141, 144, 110, 132, 127, 119, 116, 138, 120, 128, 137, 125, 119, 119, 143, 122, 122, 136, 125, 124, 119, 138, 145, 136, 127, 122, 125, 139, 123, 110, 122, 136, 139, 131, 132, 118, 124, 128, 115, 139, 124, 146, 112, 129, 144, 112, 132, 142, 123, 136, 117, 130, 127, 131, 131, 126, 119, 106, 128, 130, 121, 135, 124, 121, 134, 121, 114, 128, 128, 123, 112, 124, 132, 127, 124, 122, 115, 135, 109, 126, 144, 114, 131, 122, 132, 140, 114, 132, 123, 123, 151, 116, 120, 126, 123, 135, 143, 126, 120, 123, 132, 121, 110, 134, 140, 106, 113, 127, 107, 109, 129, 127, 103, 115, 134, 142, 126, 113, 121, 125, 146, 109, 98, 134, 133, 154, 140, 141, 114, 136, 136, 122, 125, 113, 126, 129, 127, 127, 129, 127, 130, 132, 124, 139, 124, 132, 124, 140, 121, 115, 125, 108, 114, 133, 120, 108, 129, 118, 129, 123, 122, 127, 133, 117, 128, 126, 121, 120, 134, 123, 137, 124, 129, 120, 108, 152, 137, 111, 107, 136, 118, 129, 137, 130, 117, 112, 124, 157, 121, 133, 128, 110, 132, 102, 138, 120, 140, 121, 123, 111, 113, 130, 147, 131, 138, 117, 118, 112, 143, 130, 129, 109, 128, 132, 137, 115, 129, 128, 117, 121, 115, 118, 120, 128, 118, 144, 109, 115, 134, 118, 143, 116, 122, 142, 114, 132, 120, 116, 125, 126, 130, 118, 134, 120, 89, 122, 111, 98, 130, 131, 141, 137, 116, 150, 127, 108, 136, 115, 121, 138, 131, 135, 129, 114, 121, 122, 126, 117, 111, 128, 112, 139, 135, 138, 122, 124, 125, 142, 128, 105, 128, 118, 127, 115, 118, 107, 126, 104, 113, 120, 124, 112, 132, 117, 109, 134, 129, 138, 137, 122, 118, 125, 141, 124, 113, 112, 118, 122, 131, 133, 114, 124, 120, 133, 113, 115, 105, 107, 107, 137, 106, 118, 129, 106, 125, 131, 132, 125, 114, 141, 126, 143, 121, 137, 110, 103, 135, 145, 131, 139, 130, 136, 116, 115, 123, 119, 123, 135, 129, 96, 131, 137, 111, 126, 115, 120, 136, 125, 112, 131, 137, 144, 120, 117, 111, 124, 133, 137, 129, 123, 122, 121, 128, 114, 138, 109, 114, 127, 115, 143, 129, 126, 153, 141, 122, 128, 128, 138, 106, 129, 113, 113, 114, 119, 132, 123, 120, 140, 122, 128, 130, 141, 134, 115, 122, 122, 118, 121, 130, 123, 140, 111, 126, 133, 122, 106, 115, 135, 153, 116, 116, 117, 122, 149, 126, 118, 131, 132, 132, 94, 132, 118, 124, 121, 138, 139, 122, 83, 118, 129, 145, 127, 117, 130, 121, 137, 128, 117, 116, 123, 125, 125, 130, 113, 129, 139, 109, 126, 136, 138, 129, 119, 126, 133, 123, 119, 115, 110, 127, 128, 126, 131, 127, 131, 114, 131, 117, 111, 116, 115, 128, 115, 127, 124, 120, 132, 119, 118, 131, 127, 132, 123, 135, 118, 115, 142, 120, 104, 124, 111, 138, 133, 120, 126, 120, 123, 134, 134, 118, 122, 132, 116, 134, 119, 134, 127, 125, 137, 140, 103, 121, 120, 120, 129, 114, 117, 110, 117, 115, 121, 138, 137, 140, 132, 133, 132, 122, 137, 131, 119, 144, 124, 133, 125, 120, 105, 130, 131, 116, 103, 128, 132, 115, 129, 134, 120, 123, 142, 138, 124, 121, 124, 123, 104, 124, 126, 145, 121, 127, 136, 135, 153, 112, 113, 130, 126, 107, 119, 142, 119, 133, 125, 99, 129, 123, 137, 120, 130, 112, 131, 120, 113, 110, 117, 125, 116, 122, 115, 137, 146, 125, 141, 143, 111, 123, 122, 119, 119, 120, 109, 122, 121, 118, 123, 145, 112, 120, 124, 133, 125, 113, 133, 129, 112, 118, 119, 133, 131, 119, 108, 122, 134, 134, 149, 133, 130, 137, 117, 122, 128, 130, 103, 117, 138, 135, 117, 115, 138, 136, 89, 130, 138, 134, 133, 127, 128, 114, 134, 119, 112, 111, 128, 125, 129, 121, 118, 138, 140, 127, 127, 130, 136, 118, 119, 118, 118, 128, 130, 122, 120, 129, 109, 124, 119, 127, 138, 132, 115, 129, 125, 127, 128, 115, 128, 131, 127, 133, 120, 115, 111, 114, 128, 118, 129, 119, 154, 123, 126, 131, 142, 125, 112, 123, 122, 127, 120, 126, 120, 115, 117, 123, 107, 131, 119, 118, 131, 125, 128, 126, 127, 123, 139, 128, 137, 123, 123, 134, 117, 136, 129, 103, 136, 133, 132, 127, 100, 122, 118, 142, 126, 146, 128, 143, 136, 114, 141, 133, 146, 152, 140, 127, 129, 126, 132, 136, 122, 123, 120, 133, 122, 115, 127, 124, 137, 135, 112, 141, 125, 110, 109, 120, 115, 133, 125, 123, 122, 98, 109, 130, 118, 136, 120, 100, 136, 124, 140, 127, 127, 150, 129, 93, 116, 112, 105, 135, 137, 125, 127, 131, 126, 133, 122, 129, 117, 133, 137, 113, 118, 122, 126, 120, 130, 120, 122, 129, 128, 121, 119, 138, 134, 122, 105, 128, 122, 143, 137, 123, 114, 124, 126, 126, 115, 104, 118, 122, 119, 113, 131, 149, 126, 151, 126, 145, 131, 133, 118, 116, 126, 132, 125, 130, 129, 123, 131, 141, 151, 110, 113, 116, 103, 129, 120, 138, 130, 121, 117, 124, 121, 119, 124, 97, 139, 133, 131, 138, 120, 133, 125, 119, 129, 129, 115, 122, 136, 125, 120, 125, 102, 99, 139, 120, 126, 141, 154, 130, 122, 135, 148, 129, 138, 110, 130, 127, 129, 119, 128, 128, 133, 126, 125, 132, 112, 120, 125, 124, 116, 151, 118, 124, 138, 131, 128, 121, 117, 127, 124, 127, 121, 125, 129, 119, 122, 131, 127, 129, 146, 136, 127, 128, 129, 113, 129, 127, 125, 127, 132, 134, 113, 103, 132, 122, 113, 121, 123, 117, 119, 130, 119, 130, 139, 127, 130, 124, 149, 119, 124, 111, 114, 117, 126, 112, 146, 115, 121, 128, 122, 143, 121, 138, 136, 86, 127, 127, 135, 127, 118, 129, 104, 123, 139, 118, 93, 121, 104, 119, 127, 112, 122, 105, 129, 123, 135, 129, 128, 127, 125, 127, 120, 141, 134, 115, 128, 130, 114, 126, 123, 123, 124, 125, 105, 138, 124, 124, 120, 137, 124, 137, 130, 110, 119, 118, 117, 122, 119, 140, 133, 135, 152, 120, 99, 120, 129, 125, 145, 130, 119, 128, 135, 132, 105, 117, 131, 110, 120, 129, 138, 120, 96, 130, 112, 117, 126, 109, 141, 121, 127, 121, 138, 120, 128, 142, 126, 107, 129, 131, 108, 134, 119, 132, 108, 142, 137, 110, 106, 120, 120, 120, 122, 115, 111, 113, 132, 111, 129, 126, 142, 117, 127, 114, 139, 110, 135, 115, 130, 124, 118, 137, 135, 126, 119, 118, 145, 120, 134, 133, 139, 156, 121, 124, 129, 109, 127, 138, 128, 113, 144, 133, 143, 149, 118, 118, 140, 132, 130, 111, 123, 124, 117, 127, 127, 138, 115, 123, 126, 128, 125, 121, 114, 138, 122, 132, 117, 147, 131, 120, 116, 122, 113, 129, 140, 133, 116, 130, 138, 135, 131, 116, 144, 121, 128, 109, 129, 137, 124, 141, 119, 119, 125, 151, 130, 132, 128, 123, 123, 128, 126, 121, 137, 112, 118, 120, 133, 137, 138, 154, 130, 123, 142, 131, 143, 135, 106, 126, 100, 132, 126, 134, 117, 131, 117, 109, 121, 133, 108, 130, 109, 121, 132, 134, 118, 117, 128, 133, 117, 138, 124, 100, 134, 120, 137, 126, 120, 133, 146, 142, 134, 135, 121, 128, 126, 130, 145, 126, 128, 122, 138, 131, 130, 137, 114, 116, 143, 129, 152, 114, 110, 129, 128, 120, 117, 122, 127, 126, 143, 118, 132, 120, 127, 129, 115, 144, 136, 127, 117, 128, 139, 129, 147, 118, 132, 140, 143, 129, 143, 122, 124, 113, 128, 132, 105, 120, 125, 138, 107, 134, 115, 128, 156, 114, 136, 142, 110, 117, 141, 126, 122, 127, 111, 116, 141, 116, 132, 122, 130, 135, 111, 124, 122, 139, 118, 125, 146, 128, 127, 131, 146, 136, 115, 148, 132, 121, 142, 127, 126, 128, 120, 124, 107, 132, 136, 126, 120, 102, 118, 131, 130, 115, 133, 98, 129, 135, 131, 142, 129, 118, 106, 127, 125, 114, 130, 117, 133, 120, 126, 133, 121, 109, 133, 124, 133, 134, 136, 117, 117, 133, 130, 128, 122, 119, 139, 132, 139, 124, 119, 129, 146, 130, 127, 126, 117, 128, 137, 103, 104, 117, 114, 111, 137, 124, 136, 119, 114, 148, 137, 117, 124, 118, 126, 118, 143, 128, 112, 135, 129, 119, 124, 132, 139, 125, 137, 139, 121, 107, 136, 143, 121, 119, 126, 107, 143, 142, 102, 110, 121, 127, 130, 127, 116, 125, 99, 133, 115, 112, 113, 112, 132, 109, 133, 121, 120, 135, 111, 142, 131, 128, 126, 127, 111, 135, 143, 114, 124, 131, 124, 132, 124, 154, 130, 133, 137, 122, 120, 127, 125, 127, 126, 121, 124, 112, 108, 115, 121, 120, 134, 120, 136, 120, 119, 112, 109, 111, 121, 118, 115, 130, 118, 129, 126, 130, 136, 134, 122, 115, 121, 131, 112, 137, 129, 121, 132, 129, 117, 138, 121, 125, 132, 120, 116, 136, 120, 117, 120, 134, 126, 111, 121, 124, 116, 121, 107, 132, 140, 115, 104, 122, 125, 124, 124, 129, 101, 121, 138, 123, 142, 122, 121, 114, 120, 128, 150, 131, 123, 111, 114, 116, 119, 123, 126, 106, 136, 107, 131, 115, 121, 138, 120, 132, 129, 115, 145, 116, 131, 138, 119, 126, 136, 140, 125, 107, 128, 126, 137, 130, 132, 140, 121, 137, 109, 119, 120, 142, 121, 126, 147, 114, 136, 112, 132, 123, 122, 131, 107, 145, 101, 118, 119, 104, 130, 139, 127, 122, 114, 129, 140, 120, 119, 133, 128, 122, 110, 135, 142, 134, 110, 115, 102, 126, 134, 124, 141, 128, 152, 98, 116, 114, 116, 136, 121, 120, 106, 135, 136, 120, 143, 117, 123, 114, 141, 112, 115, 116, 127, 148, 139, 124, 119, 116, 118, 130, 120, 108, 146, 117, 120, 119, 137, 135, 119, 121, 142, 125, 142, 138, 133, 128, 125, 130, 114, 126, 98, 138, 133, 119, 145, 141, 152, 134, 111, 137, 123, 133, 117, 131, 134, 129, 124, 112, 133, 126, 126, 110, 130, 143, 127, 140, 108, 131, 121, 130, 134, 113, 116, 131, 133, 121, 109, 117, 113, 127, 122, 122, 113, 130, 126, 129, 115, 121, 117, 127, 125, 137, 127, 132, 132, 131, 126, 118, 125, 109, 134, 143, 128, 137, 130, 127, 127, 110, 111, 127, 125, 131, 125, 123, 120, 126, 123, 125, 124, 120, 123, 106, 145, 136, 121, 135, 131, 123, 114, 128, 115, 110, 139, 116, 130, 140, 150, 99, 140, 115, 134, 127, 129, 142, 107, 103, 128, 132, 138, 127, 106, 131, 115, 138, 153, 122, 127, 128, 135, 136, 121, 117, 140, 128, 151, 120, 134, 126, 130, 118, 116, 135, 146, 107, 138, 113, 141, 129, 134, 127, 109, 116, 126, 123, 122, 120, 144, 119, 116, 145, 113, 144, 121, 131, 122, 141, 144, 115, 129, 124, 107, 116, 112, 115, 130, 119, 121, 123, 126, 125, 108, 122, 126, 138, 121, 140, 135, 110, 114, 126, 138, 112, 132, 132, 131, 135, 124, 118, 133, 131, 131, 126, 132, 115, 115, 128, 99, 145, 108, 115, 135, 128, 107, 138, 135, 119, 138, 115, 125, 118, 121, 125, 142, 108, 122, 133, 133, 126, 112, 133, 129, 138, 127, 124, 122, 123, 131, 125, 104, 135, 137, 115, 120, 126, 134, 124, 147, 114, 129, 116, 125, 112, 131, 143, 128, 118, 94, 127, 143, 133, 126, 121, 119, 122, 134, 128, 140, 124, 116, 124, 131, 129, 124, 126, 119, 141, 115, 116, 116, 121, 114, 124, 131, 128, 145, 138, 127, 136, 117, 111, 108, 123, 129, 126, 115, 114, 128, 126, 129, 131, 123, 133, 127, 116, 141, 120, 143, 116, 107, 131, 118, 142, 129, 132, 127, 106, 133, 132, 111, 126, 128, 136, 119, 131, 125, 134, 103, 134, 147, 133, 129, 138, 142, 124, 123, 123, 123, 119, 135, 131, 128, 119, 121, 108, 122, 113, 120, 130, 125, 121, 124, 131, 132, 143, 124, 126, 134, 127, 122, 117, 129, 109, 124, 138, 98, 122, 137, 126, 119, 118, 123, 125, 105, 116, 107, 114, 123, 141, 115, 135, 106, 131, 128, 122, 122, 127, 111, 115, 139, 103, 136, 112, 140, 127, 126, 117, 128, 121, 124, 119, 115, 119, 120, 109, 121, 138, 129, 132, 122, 138, 133, 125, 126, 146, 133, 125, 116, 125, 130, 143, 135, 117, 99, 151, 136, 118, 150, 117, 136, 131, 141, 117, 148, 112, 121, 125, 116, 137, 123, 134, 123, 139, 129, 117, 117, 127, 118, 126, 124, 125, 130, 111, 116, 127, 110, 114, 138, 113, 132, 121, 122, 117, 133, 108, 128, 138, 130, 124, 131, 129, 128, 107, 140, 127, 126, 116, 114, 108, 95, 133, 133, 134, 121, 126, 127, 117, 137, 118, 118, 143, 128, 125, 106, 122, 114, 135, 138, 127, 128, 112, 135, 118, 132, 126, 130, 125, 103, 118, 130, 126, 136, 117, 121, 140, 127, 134, 136, 132, 113, 108, 110, 118, 125, 128, 128, 135, 111, 134, 123, 133, 118, 134, 137, 109, 119, 134, 127, 128, 132, 121, 132, 117, 114, 127, 134, 120, 148, 133, 146, 102, 125, 134, 122, 123, 108, 117, 140, 133, 138, 120, 115, 119, 128, 111, 106, 128, 127, 146, 127, 130, 137, 130, 122, 129, 121, 119, 122, 140, 132, 113, 137, 119, 115, 111, 119, 116, 117, 121, 127, 131, 122, 137, 133, 124, 119, 112, 130, 146, 131, 139, 120, 141, 105, 135, 117, 123, 150, 125, 121, 126, 106, 145, 124, 108, 139, 130, 113, 124, 126, 135, 130, 136, 122, 127, 124, 138, 124, 128, 133, 128, 116, 138, 132, 133, 124, 124, 118, 120, 131, 125, 122, 122, 129, 117, 121, 134, 111, 127, 137, 121, 124, 131, 136, 119, 120, 135, 124, 140, 125, 135, 126, 116, 118, 134, 131, 143, 116, 143, 111, 107, 131, 107, 126, 122, 111, 115, 134, 129, 122, 131, 126, 138, 124, 135, 127, 109, 129, 126, 102, 119, 117, 121, 130, 118, 126, 116, 113, 138, 126, 127, 124, 115, 126, 140, 113, 124, 138, 104, 125, 98, 126, 109, 126, 130, 151, 122, 125, 112, 127, 126, 125, 127, 125, 138, 108, 125, 126, 137, 125, 120, 118, 159, 124, 139, 153, 121, 114, 127, 129, 114, 126, 114, 118, 112, 131, 116, 114, 147, 123, 139, 121, 144, 142, 113, 133, 133, 137, 136, 127, 118, 127, 134, 115, 147, 114, 118, 112, 113, 133, 119, 149, 121, 128, 139, 136, 125, 116, 124, 121, 123, 111, 121, 128, 119, 134, 124, 120, 119, 124, 140, 112, 118, 114, 130, 126, 107, 115, 123, 125, 120, 129, 116, 126, 113, 130, 120, 133, 128, 129, 124, 122, 121, 113, 135, 131, 121, 115, 134, 118, 139, 123, 125, 135, 115, 127, 117, 122, 124, 118, 118, 135, 123, 113, 137, 128, 118, 124, 122, 124, 132, 135, 130, 130, 121, 142, 115, 116, 110, 127, 148, 117, 131, 123, 125, 121, 131, 129, 121, 109, 124, 138, 141, 134, 134, 129, 122, 111, 123, 126, 116, 129, 135, 131, 128, 126, 120, 111, 127, 113, 116, 120, 124, 124, 130, 150, 118, 134, 131, 126, 127, 127, 128, 123, 128, 126, 126, 129, 148, 134, 144, 131, 129, 133, 135, 127, 126, 114, 126, 109, 117, 131, 130, 123, 143, 136, 128, 128, 139, 127, 116, 128, 127, 123, 117, 115, 117, 135, 124, 115, 96, 130, 127, 122, 142, 124, 122, 123, 123, 130, 136, 135, 121, 107, 126, 113, 119, 134, 102, 117, 119, 130, 114, 114, 133, 120, 117, 130, 122, 123, 135, 152, 145, 113, 141, 148, 126, 123, 135, 123, 117, 120, 127, 126, 139, 131, 125, 134, 136, 117, 119, 130, 112, 141, 121, 123, 128, 135, 130, 125, 124, 112, 139, 126, 134, 129, 122, 120, 101, 131, 127, 119, 119, 122, 130, 126, 133, 114, 129, 119, 131, 137, 145, 125, 114, 124, 127, 127, 118, 122, 136, 140, 111, 129, 122, 144, 110, 129, 135, 116, 119, 121, 128, 141, 120, 142, 102, 141, 124, 129, 120, 112, 117, 111, 130, 120, 143, 136, 105, 122, 133, 129, 132, 134, 104, 149, 134, 136, 101, 113, 146, 121, 108, 116, 133, 128, 125, 141, 125, 126, 108, 128, 127, 136, 155, 118, 126, 118, 115, 124, 125, 124, 134, 115, 123, 129, 117, 142, 118, 122, 105, 118, 136, 131, 132, 118, 123, 121, 136, 112, 138, 145, 106, 112, 118, 138, 121, 127, 128, 131, 127, 109, 116, 133, 122, 121, 119, 137, 126, 123, 118, 108, 124, 119, 114, 124, 140, 112, 122, 117, 139, 123, 123, 140, 122, 140, 108, 143, 121, 126, 130, 124, 142, 111, 121, 118, 137, 116, 125, 111, 132, 128, 122, 123, 116, 138, 118, 119, 138, 127, 131, 132, 113, 103, 114, 140, 125, 135, 137, 130, 119, 118, 119, 121, 127, 133, 128, 131, 135, 121, 142, 122, 161, 141, 117, 126, 123, 136, 136, 138, 131, 125, 128, 108, 135, 124, 122, 125, 122, 111, 126, 138, 132, 132, 117, 117, 133, 124, 113, 117, 117, 133, 136, 132, 128, 139, 118, 128, 122, 127, 124, 128, 136, 128, 132, 130, 123, 136, 127, 135, 118, 121, 125, 113, 118, 128, 110, 117, 121, 137, 118, 127, 138, 111, 108, 112, 122, 119, 147, 138, 111, 130, 112, 138, 129, 109, 126, 128, 122, 149, 141, 114, 125, 134, 153, 119, 129, 127, 137, 137, 131, 122, 135, 136, 111, 129, 125, 114, 124, 128, 123, 129, 108, 133, 129, 127, 120, 125, 110, 118, 133, 124, 136, 125, 121, 125, 118, 127, 127, 129, 148, 116, 129, 123, 120, 105, 140, 132, 125, 120, 129, 119, 125, 136, 132, 119, 126, 146, 117, 126, 127, 138, 128, 101, 125, 123, 127, 118, 130, 132, 144, 139, 145, 114, 132, 113, 107, 121, 140, 128, 125, 129, 126, 124, 111, 125, 132, 121, 130, 127, 131, 111, 129, 127, 133, 124, 129, 120, 123, 119, 105, 105, 123, 139, 138, 127, 132, 128, 130, 139, 141, 120, 114, 127, 161, 125, 115, 125, 127, 132, 112, 124, 129, 107, 138, 132, 124, 123, 107, 113, 127, 137, 130, 115, 131, 127, 139, 119, 121, 126, 114, 130, 127, 120, 144, 116, 132, 119, 131, 139, 130, 138, 114, 114, 109, 118, 122, 152, 121, 128, 121, 131, 130, 118, 125, 125, 106, 138, 132, 125, 128, 141, 112, 131, 139, 132, 127, 114, 142, 105, 134, 117, 105, 129, 144, 136, 119, 140, 125, 151, 127, 122, 147, 103, 139, 118, 119, 118, 129, 135, 127, 118, 117, 105, 118, 129, 146, 130, 111, 133, 137, 149, 128, 114, 130, 128, 144, 126, 97, 138, 129, 126, 125, 127, 124, 133, 127, 119, 135, 131, 127, 106, 120, 139, 117, 139, 128, 131, 120, 136, 127, 122, 120, 118, 135, 122, 121, 141, 126, 122, 129, 121, 128, 104, 138, 103, 131, 126, 113, 116, 133, 127, 165, 124, 134, 130, 113, 120, 129, 131, 120, 114, 132, 131, 132, 128, 122, 125, 133, 143, 124, 130, 115, 118, 124, 149, 124, 135, 114, 120, 116, 112, 124, 147, 123, 150, 111, 132, 125, 135, 125, 118, 111, 119, 128, 114, 128, 126, 130, 112, 116, 125, 117, 122, 125, 107, 125, 124, 127, 123, 146, 145, 128, 105, 120, 134, 138, 135, 141, 122, 125, 119, 120, 114, 127, 127, 98, 123, 127, 113, 131, 125, 123, 136, 133, 134, 116, 110, 127, 114, 125, 126, 115, 112, 112, 124, 136, 126, 121, 119, 128, 126, 128, 122, 122, 137, 112, 129, 132, 120, 150, 116, 121, 132, 134, 130, 119, 113, 98, 126, 124, 121, 145, 119, 134, 148, 120, 127, 119, 130, 134, 114, 119, 132, 126, 132, 133, 136, 132, 137, 123, 127, 111, 106, 124, 127, 130, 127, 120, 133, 115, 130, 114, 112, 122, 115, 122, 128, 123, 126, 127, 118, 141, 134, 150, 118, 135, 140, 143, 129, 115, 115, 131, 129, 121, 133, 129, 127, 121, 137, 130, 130, 123, 121, 132, 124, 114, 110, 123, 123, 130, 135, 99, 117, 134, 130, 121, 128, 141, 146, 127, 146, 141, 121, 140, 129, 123, 125, 114, 128, 120, 116, 124, 130, 129, 132, 108, 112, 145, 122, 121, 110, 143, 134, 120, 126, 109, 113, 121, 127, 128, 129, 130, 121, 119, 133, 121, 114, 134, 126, 120, 132, 126, 120, 123, 116, 122, 111, 138, 120, 121, 148, 139, 119, 127, 118, 125, 125, 135, 119, 119, 130, 123, 126, 122, 125, 170, 138, 125, 136, 137, 114, 114, 120, 119, 121, 126, 122, 113, 129, 131, 134, 139, 118, 139, 114, 116, 132, 130, 102, 127, 128, 109, 124, 106, 126, 138, 111, 109, 130, 129, 127, 125, 136, 140, 147, 130, 128, 123, 143, 125, 128, 144, 121, 115, 121, 136, 124, 124, 127, 112, 117, 120, 114, 126, 124, 127, 112, 124, 120, 128, 129, 132, 108, 123, 117, 128, 126, 126, 129, 153, 104, 127, 129, 123, 144, 126, 116, 132, 114, 138, 122, 112, 125, 133, 122, 128, 130, 128, 127, 120, 114, 102, 135, 125, 141, 115, 121, 129, 116, 128, 120, 125, 132, 130, 124, 145, 135, 138, 108, 111, 130, 134, 128, 138, 127, 117, 120, 114, 134, 102, 130, 109, 133, 125, 121, 116, 121, 124, 134, 108, 142, 137, 125, 113, 122, 127, 125, 119, 123, 133, 110, 133, 119, 111, 122, 126, 142, 110, 134, 120, 130, 120, 110, 139, 131, 133, 126, 130, 130, 142, 125, 127, 133, 135, 115, 122, 132, 130, 138, 123, 107, 117, 132, 143, 119, 134, 133, 134, 128, 136, 145, 126, 123, 118, 138, 125, 123, 116, 105, 129, 139, 121, 122, 126, 104, 107, 128, 124, 113, 134, 113, 124, 129, 139, 91, 139, 128, 124, 124, 125, 132, 117, 135, 116, 120, 147, 109, 124, 132, 105, 129, 110, 118, 131, 118, 116, 122, 103, 126, 117, 135, 130, 143, 115, 134, 132, 132, 130, 110, 127, 120, 128, 140, 119, 136, 112, 117, 135, 132, 129, 141, 133, 128, 115, 125, 127, 134, 121, 140, 134, 124, 127, 138, 126, 144, 131, 120, 131, 126, 136, 113, 120, 127, 132, 138, 122, 134, 135, 132, 123, 117, 130, 128, 118, 127, 140, 120, 107, 142, 102, 125, 135, 136, 125, 119, 121, 129, 141, 126, 142, 116, 123, 117, 119, 123, 124, 130, 121, 125, 127, 136, 141, 135, 114, 119, 134, 156, 121, 140, 135, 111, 128, 130, 136, 126, 100, 113, 117, 159, 129, 129, 138, 130, 115, 123, 121, 113, 116, 108, 100, 127, 124, 145, 130, 122, 134, 117, 116, 120, 111, 119, 110, 137, 132, 148, 121, 113, 128, 116, 130, 124, 119, 129, 135, 117, 126, 133, 130, 126, 128, 120, 132, 128, 103, 118, 118, 137, 115, 134, 121, 117, 105, 119, 132, 124, 121, 117, 119, 134, 118, 147, 112, 129, 123, 135, 129, 127, 133, 115, 129, 127, 127, 138, 108, 131, 132, 138, 123, 111, 116, 130, 122, 117, 113, 130, 115, 123, 124, 151, 139, 112, 112, 130, 126, 120, 120, 112, 116, 112, 115, 129, 123, 122, 136, 133, 122, 105, 132, 120, 147, 117, 128, 127, 120, 129, 121, 124, 137, 123, 140, 126, 118, 126, 89, 132, 124, 142, 118, 73, 127, 119, 128, 104, 142, 120, 123, 123, 131, 135, 140, 150, 116, 125, 133, 111, 109, 123, 151, 124, 131, 115, 140, 141, 123, 127, 122, 127, 127, 117, 140, 123, 116, 132, 118, 119, 146, 120, 125, 130, 135, 115, 130, 132, 128, 137, 118, 119, 127, 91, 113, 129, 119, 125, 129, 126, 120, 123, 116, 116, 116, 112, 111, 127, 110, 130, 118, 133, 147, 113, 133, 134, 108, 114, 139, 123, 115, 125, 111, 115, 119, 120, 120, 128, 137, 140, 115, 130, 109, 110, 107, 133, 118, 128, 119, 134, 113, 122, 109, 127, 125, 125, 143, 125, 121, 119, 129, 113, 118, 142, 131, 113, 116, 102, 124, 114, 133, 117, 144, 122, 114, 132, 131, 124, 131, 115, 123, 131, 134, 103, 117, 121, 110, 125, 142, 119, 114, 117, 119, 160, 120, 125, 125, 121, 106, 122, 122, 131, 118, 118, 123, 141, 117, 133, 137, 122, 130, 133, 119, 128, 123, 123, 106, 113, 122, 138, 132, 125, 122, 126, 129, 119, 111, 108, 129, 122, 134, 133, 122, 115, 112, 140, 106, 113, 132, 123, 126, 123, 129, 125, 117, 120, 134, 133, 140, 124, 107, 145, 113, 132, 120, 130, 124, 134, 136, 117, 140, 126, 125, 143, 126, 153, 114, 131, 133, 122, 129, 122, 131, 131, 126, 126, 117, 121, 130, 137, 120, 94, 110, 113, 111, 136, 126, 125, 96, 108, 122, 131, 140, 112, 116, 137, 117, 124, 105, 127, 131, 117, 126, 128, 118, 122, 121, 132, 138, 117, 126, 143, 131, 131, 124, 114, 127, 130, 135, 136, 120, 131, 113, 124, 117, 120, 103, 119, 112, 96, 127, 128, 135, 138, 128, 118, 144, 131, 121, 139, 113, 142, 144, 127, 125, 136, 131, 117, 125, 134, 120, 124, 131, 139, 128, 115, 123, 130, 122, 119, 116, 142, 110, 117, 120, 139, 113, 122, 125, 131, 128, 118, 139, 124, 90, 132, 122, 112, 118, 108, 124, 116, 131, 134, 126, 126, 123, 105, 127, 117, 138, 122, 121, 123, 120, 127, 120, 130, 139, 126, 116, 125, 148, 120, 130, 120, 123, 114, 133, 126, 138, 134, 123, 148, 126, 128, 135, 129, 140, 145, 114, 116, 114, 119, 114, 124, 143, 127, 138, 127, 143, 124, 120, 133, 129, 135, 123, 120, 115, 121, 118, 119, 123, 124, 125, 107, 119, 120, 113, 114, 128, 131, 130, 133, 118, 125, 126, 124, 121, 113, 133, 130, 113, 123, 122, 122, 113, 138, 123, 126, 144, 120, 124, 128, 127, 109, 111, 129, 145, 115, 117, 121, 135, 131, 121, 120, 132, 113, 123, 126, 116, 139, 120, 132, 130, 146, 117, 137, 114, 115, 124, 126, 103, 121, 129, 105, 144, 133, 139, 114, 139, 112, 123, 122, 116, 133, 118, 115, 129, 123, 121, 148, 131, 135, 128, 135, 132, 121, 127, 107, 144, 108, 129, 126, 131, 112, 142, 120, 123, 130, 130, 103, 133, 110, 131, 117, 121, 111, 117, 89, 118, 134, 113, 99, 110, 130, 118, 119, 123, 118, 109, 120, 122, 118, 124, 127, 125, 108, 112, 136, 98, 111, 104, 132, 120, 113, 124, 115, 129, 131, 117, 140, 119, 126, 122, 108, 126, 110, 115, 137, 117, 125, 139, 132, 104, 137, 137, 132, 139, 121, 140, 150, 127, 114, 109, 134, 120, 153, 133, 126, 132, 137, 111, 116, 133, 100, 130, 123, 110, 120, 147, 130, 132, 131, 120, 145, 141, 134, 133, 130, 118, 122, 129, 129, 126, 130, 117, 120, 128, 127, 123, 115, 133, 134, 114, 121, 120, 114, 132, 153, 105, 142, 123, 125, 125, 107, 128, 117, 124, 129, 142, 121, 120, 136, 122, 128, 123, 125, 134, 136, 141, 133, 117, 125, 121, 122, 120, 131, 130, 123, 126, 122, 136, 134, 138, 108, 131, 127, 149, 113, 127, 133, 116, 140, 129, 119, 132, 130, 140, 122, 123, 127, 125, 124, 122, 136, 126, 135, 139, 141, 116, 109, 112, 88, 119, 99, 140, 139, 106, 117, 136, 133, 147, 122, 128, 126, 105, 112, 135, 125, 105, 125, 131, 124, 127, 127, 123, 112, 127, 114, 120, 132, 127, 131, 132, 127, 99, 134, 116, 128, 112, 125, 136, 120, 109, 122, 115, 141, 131, 106, 125, 125, 122, 115, 95, 121, 125, 125, 132, 109, 122, 124, 130, 133, 138, 127, 121, 141, 136, 132, 110, 123, 152, 120, 118, 105, 126, 125, 130, 111, 130, 118, 110, 123, 130, 143, 124, 124, 113, 115, 98, 136, 131, 114, 114, 135, 116, 149, 119, 116, 127, 110, 108, 134, 122, 125, 133, 120, 130, 135, 114, 112, 119, 137, 142, 138, 126, 144, 130, 120, 113, 136, 151, 121, 126, 141, 127, 128, 139, 136, 125, 121, 121, 121, 118, 137, 126, 114, 128, 127, 138, 128, 120, 136, 139, 157, 131, 111, 113, 115, 107, 124, 137, 134, 133, 145, 135, 121, 132, 117, 136, 105, 131, 126, 118, 131, 128, 129, 134, 116, 120, 143, 130, 120, 120, 124, 128, 124, 120, 119, 117, 129, 126, 111, 121, 153, 120, 96, 122, 122, 118, 115, 113, 126, 132, 129, 128, 124, 119, 123, 123, 126, 127, 125, 127, 135, 114, 137, 128, 126, 128, 154, 119, 130, 124, 109, 113, 123, 131, 132, 113, 127, 128, 139, 140, 120, 101, 122, 145, 115, 130, 122, 129, 147, 111, 123, 112, 127, 115, 132, 116, 104, 125, 124, 115, 127, 113, 135, 118, 116, 119, 135, 141, 121, 131, 135, 142, 125, 117, 131, 131, 130, 113, 110, 144, 139, 126, 131, 134, 117, 123, 136, 119, 113, 140, 111, 105, 109, 127, 115, 133, 122, 104, 143, 107, 123, 119, 128, 115, 124, 121, 132, 106, 132, 108, 136, 135, 134, 134, 128, 142, 149, 142, 117, 133, 130, 126, 127, 133, 137, 107, 107, 124, 133, 119, 113, 130, 116, 118, 116, 117, 135, 124, 127, 119, 119, 129, 100, 125, 113, 132, 122, 137, 128, 132, 107, 146, 121, 113, 114, 118, 131, 141, 127, 135, 104, 123, 102, 115, 119, 134, 117, 109, 125, 111, 115, 140, 114, 116, 143, 130, 130, 116, 125, 115, 121, 133, 128, 116, 133, 131, 135, 131, 131, 116, 114, 137, 123, 125, 131, 127, 116, 134, 131, 129, 124, 118, 111, 132, 125, 114, 126, 133, 128, 131, 138, 138, 101, 126, 111, 115, 115, 129, 132, 127, 112, 147, 130, 121, 120, 120, 122, 119, 116, 122, 120, 127, 134, 126, 121, 141, 145, 118, 136, 133, 128, 110, 114, 113, 119, 105, 142, 137, 129, 112, 125, 136, 115, 108, 109, 145, 127, 150, 115, 118, 133, 142, 116, 143, 116, 118, 125, 121, 119, 122, 120, 129, 111, 123, 112, 117, 126, 111, 128, 133, 136, 124, 135, 133, 128, 125, 129, 146, 137, 131, 123, 143, 125, 118, 112, 125, 127, 149, 123, 133, 121, 139, 132, 132, 128, 132, 113, 133, 123, 115, 124, 122, 132, 147, 137, 133, 117, 129, 133, 126, 144, 121, 147, 108, 105, 122, 141, 141, 130, 115, 141, 140, 143, 111, 129, 117, 117, 118, 121, 127, 132, 138, 125, 126, 122, 156, 117, 108, 127, 97, 121, 128, 135, 126, 109, 138, 122, 113, 127, 105, 127, 140, 119, 118, 114, 139, 116, 110, 112, 132, 103, 137, 143, 114, 148, 117, 148, 123, 130, 127, 115, 138, 140, 137, 142, 109, 137, 130, 109, 132, 146, 101, 132, 158, 123, 145, 118, 117, 124, 128, 103, 121, 136, 116, 126, 111, 124, 114, 118, 154, 138, 116, 124, 140, 121, 131, 134, 144, 129, 130, 125, 128, 129, 126, 113, 103, 123, 107, 137, 128, 130, 142, 143, 107, 134, 122, 133, 125, 104, 123, 133, 127, 107, 120, 134, 124, 166, 134, 117, 121, 128, 138, 141, 122, 120, 123, 126, 129, 126, 111, 129, 122, 126, 105, 129, 105, 125, 115, 123, 120, 139, 121, 122, 134, 125, 119, 149, 134, 123, 119, 131, 133, 104, 110, 128, 130, 122, 116, 129, 117, 145, 129, 115, 116, 114, 134, 120, 127, 117, 128, 127, 143, 141, 143, 127, 133, 119, 120, 104, 127, 129, 124, 127, 125, 127, 112, 115, 119, 132, 123, 113, 106, 123, 126, 133, 128, 127, 126, 125, 129, 113, 139, 125, 125, 127, 133, 118, 128, 134, 127, 113, 134, 132, 102, 117, 122, 128, 117, 115, 129, 121, 114, 132, 116, 127, 124, 137, 112, 114, 127, 110, 125, 147, 138, 142, 128, 148, 131, 126, 122, 141, 119, 126, 127, 137, 117, 112, 109, 139, 115, 120, 123, 124, 119, 118, 115, 127, 127, 127, 117, 130, 143, 119, 117, 125, 121, 107, 127, 112, 123, 115, 128, 135, 124, 120, 137, 135, 128, 109, 120, 112, 120, 116, 124, 128, 123, 124, 115, 145, 147, 139, 125, 123, 124, 118, 124, 113, 128, 107, 118, 126, 133, 118, 129, 130, 115, 107, 124, 143, 117, 136, 140, 116, 139, 134, 122, 129, 134, 122, 131, 123, 102, 138, 134, 137, 121, 106, 128, 125, 132, 131, 121, 103, 154, 132, 115, 129, 124, 116, 139, 135, 122, 119, 112, 117, 124, 129, 128, 140, 146, 123, 124, 106, 113, 120, 120, 135, 128, 113, 143, 140, 113, 127, 141, 119, 128, 107, 122, 127, 129, 99, 141, 135, 126, 106, 129, 118, 125, 128, 127, 122, 133, 115, 139, 133, 130, 110, 117, 119, 136, 120, 150, 136, 122, 113, 136, 124, 120, 128, 145, 124, 147, 124, 132, 131, 116, 133, 118, 132, 114, 137, 112, 112, 115, 111, 135, 133, 134, 125, 136, 135, 139, 138, 115, 140, 115, 108, 124, 129, 135, 136, 117, 131, 123, 126, 110, 128, 130, 121, 118, 132, 138, 134, 137, 121, 102, 126, 128, 119, 103, 128, 131, 106, 117, 128, 123, 137, 135, 124, 128, 125, 108, 122, 127, 127, 142, 144, 113, 122, 124, 128, 109, 123, 117, 109, 129, 145, 135, 135, 131, 130, 137, 137, 137, 137, 126, 130, 135, 125, 138, 124, 129, 145, 131, 120, 112, 107, 112, 112, 116, 112, 131, 115, 122, 124, 123, 127, 144, 122, 125, 140, 127, 121, 150, 119, 132, 117, 130, 113, 123, 123, 132, 115, 111, 137, 150, 122, 132, 123, 127, 122, 112, 126, 95, 127, 126, 128, 124, 119, 125, 128, 133, 123, 114, 115, 127, 134, 104, 113, 130, 122, 125, 138, 142, 106, 126, 140, 125, 124, 139, 118, 125, 121, 120, 135, 134, 139, 120, 114, 137, 109, 110, 126, 127, 112, 104, 120, 142, 119, 125, 141, 131, 118, 122, 116, 123, 116, 118, 123, 129, 125, 115, 123, 110, 117, 139, 139, 129, 126, 125, 134, 147, 124, 124, 153, 134, 148, 137, 141, 135, 128, 116, 128, 114, 118, 122, 134, 115, 135, 124, 130, 129, 112, 143, 127, 121, 137, 102, 128, 118, 119, 134, 135, 131, 127, 118, 131, 127, 132, 114, 142, 135, 119, 129, 106, 150, 112, 116, 122, 127, 135, 150, 140, 119, 125, 112, 112, 117, 104, 130, 127, 135, 146, 115, 117, 124, 113, 140, 146, 147, 124, 133, 141, 138, 124, 120, 119, 129, 93, 128, 134, 133, 142, 125, 137, 104, 137, 137, 122, 124, 124, 114, 145, 124, 129, 115, 117, 123, 123, 113, 115, 138, 122, 127, 129, 107, 131, 138, 125, 106, 127, 117, 130, 114, 149, 136, 120, 130, 130, 121, 113, 117, 119, 123, 121, 108, 126, 126, 120, 157, 132, 111, 142, 126, 124, 124, 141, 133, 122, 119, 110, 121, 121, 129, 117, 129, 121, 123, 115, 130, 125, 122, 118, 109, 121, 111, 136, 121, 116, 113, 118, 126, 125, 126, 144, 113, 133, 132, 136, 116, 120, 136, 131, 143, 118, 128, 122, 124, 141, 120, 126, 129, 145, 127, 131, 128, 114, 120, 125, 149, 129, 118, 120, 95, 121, 132, 130, 137, 117, 131, 122, 137, 112, 129, 117, 122, 118, 133, 127, 130, 145, 121, 150, 124, 135, 120, 143, 114, 125, 119, 121, 116, 127, 140, 132, 124, 107, 138, 117, 116, 124, 146, 129, 117, 116, 142, 135, 120, 131, 117, 127, 149, 133, 133, 126, 122, 119, 131, 107, 126, 117, 142, 137, 119, 128, 115, 125, 131, 122, 136, 102, 133, 116, 157, 124, 112, 117, 122, 129, 120, 107, 90, 133, 126, 120, 130, 99, 138, 133, 130, 135, 140, 131, 126, 137, 107, 110, 128, 131, 143, 134, 140, 117, 122, 137, 136, 120, 141, 141, 124, 113, 146, 155, 125, 120, 139, 131, 131, 137, 122, 119, 139, 127, 125, 133, 119, 105, 121, 128, 138, 127, 119, 137, 115, 123, 120, 123, 119, 108, 136, 115, 148, 120, 147, 109, 125, 160, 112, 107, 119, 134, 114, 108, 135, 131, 138, 121, 123, 125, 116, 156, 118, 107, 103, 114, 121, 127, 120, 117, 141, 130, 116, 124, 117, 135, 115, 108, 114, 124, 134, 98, 132, 140, 134, 152, 148, 133, 129, 117, 150, 121, 126, 124, 124, 131, 115, 132, 117, 116, 132, 118, 123, 124, 127, 110, 108, 130, 143, 129, 134, 110, 135, 124, 125, 122, 134, 132, 130, 128, 127, 133, 122, 140, 113, 139, 128, 119, 115, 112, 126, 130, 130, 131, 122, 119, 132, 120, 110, 136, 131, 138, 135, 125, 139, 122, 119, 119, 131, 139, 135, 133, 135, 129, 113, 131, 127, 129, 128, 124, 133, 129, 127, 141, 110, 121, 122, 120, 131, 143, 119, 126, 134, 131, 130, 111, 121, 133, 123, 143, 122, 103, 124, 121, 128, 121, 123, 131, 119, 121, 116, 116, 105, 111, 116, 146, 119, 125, 113, 123, 119, 116, 145, 105, 122, 126, 127, 110, 115, 126, 122, 111, 120, 123, 123, 137, 122, 133, 134, 120, 130, 123, 122, 122, 123, 133, 124, 115, 106, 141, 126, 142, 125, 131, 117, 140, 128, 122, 123, 128, 123, 113, 136, 113, 131, 125, 123, 123, 139, 125, 121, 115, 126, 126, 134, 137, 140, 118, 121, 129, 135, 118, 119, 120, 114, 126, 115, 123, 121, 139, 128, 139, 120, 128, 122, 131, 158, 106, 132, 139, 121, 129, 131, 119, 97, 126, 143, 135, 120, 125, 111, 122, 113, 123, 140, 125, 117, 157, 125, 110, 126, 130, 132, 127, 119, 108, 128, 118, 101, 136, 132, 124, 136, 129, 113, 107, 144, 109, 121, 164, 138, 148, 142, 125, 104, 134, 110, 111, 131, 123, 141, 110, 135, 135, 127, 117, 138, 142, 118, 117, 124, 127, 121, 147, 155, 136, 130, 141, 112, 130, 130, 125, 123, 129, 120, 128, 118, 139, 143, 122, 124, 127, 132, 126, 127, 136, 121, 119, 126, 108, 113, 116, 113, 124, 129, 116, 144, 128, 133, 102, 122, 127, 117, 137, 128, 117, 110, 144, 134, 136, 131, 125, 131, 116, 134, 138, 138, 142, 145, 115, 110, 142, 101, 122, 113, 122, 123, 125, 137, 116, 124, 130, 135, 124, 125, 122, 112, 125, 125, 125, 135, 126, 118, 138, 117, 128, 119, 122, 134, 138, 129, 132, 132, 121, 118, 138, 117, 109, 112, 123, 124, 116, 129, 109, 140, 129, 138, 129, 125, 128, 112, 113, 128, 108, 110, 142, 130, 115, 112, 126, 95, 121, 126, 149, 133, 132, 115, 132, 135, 102, 114, 135, 125, 119, 128, 132, 114, 127, 132, 121, 131, 121, 135, 149, 113, 127, 123, 130, 104, 122, 118, 120, 120, 132, 127, 114, 143, 121, 130, 112, 133, 127, 115, 117, 114, 136, 127, 125, 115, 134, 115, 114, 139, 127, 117, 155, 145, 130, 104, 135, 110, 117, 132, 117, 130, 110, 122, 123, 116, 124, 104, 129, 115, 118, 107, 102, 115, 142, 122, 112, 117, 124, 112, 128, 130, 131, 115, 126, 133, 148, 122, 133, 125, 124, 119, 114, 108, 95, 130, 91, 141, 135, 110, 132, 131, 134, 119, 115, 126, 122, 109, 128, 121, 125, 130, 144, 121, 115, 150, 119, 135, 109, 134, 132, 109, 139, 116, 126, 144, 112, 114, 137, 124, 124, 124, 122, 118, 122, 132, 130, 119, 129, 119, 118, 118, 118, 122, 136, 118, 119, 135, 117, 123, 106, 129, 124, 141, 136, 126, 143, 117, 133, 122, 127, 123, 128, 122, 118, 131, 137, 133, 114, 126, 122, 107, 115, 121, 131, 108, 127, 132, 122, 125, 105, 129, 124, 136, 126, 122, 121, 133, 126, 122, 113, 124, 113, 123, 131, 111, 127, 129, 109, 134, 128, 112, 137, 114, 122, 118, 131, 114, 103, 131, 119, 121, 119, 119, 132, 120, 120, 128, 110, 102, 137, 104, 128, 117, 116, 134, 127, 117, 111, 134, 118, 144, 119, 139, 118, 134, 124, 139, 130, 119, 119, 147, 122, 128, 115, 132, 128, 115, 131, 133, 115, 134, 126, 120, 115, 136, 131, 130, 127, 125, 118, 119, 127, 126, 123, 116, 109, 126, 120, 129, 126, 137, 109, 139, 127, 110, 112, 124, 122, 125, 126, 125, 115, 124, 124, 117, 129, 134, 129, 122, 119, 140, 121, 132, 119, 116, 133, 128, 139, 115, 129, 133, 136, 147, 129, 128, 136, 134, 133, 114, 115, 119, 122, 123, 128, 126, 123, 132, 122, 138, 137, 115, 121, 131, 123, 124, 125, 108, 129, 135, 126, 120, 127, 118, 122, 117, 141, 103, 141, 137, 119, 118, 116, 134, 129, 153, 135, 117, 128, 131, 112, 121, 143, 138, 119, 134, 126, 130, 124, 130, 129, 109, 114, 119, 118, 119, 113, 105, 129, 122, 124, 118, 140, 118, 121, 128, 141, 113, 119, 127, 119, 116, 133, 125, 125, 116, 129, 143, 124, 120, 109, 118, 119, 136, 114, 116, 113, 117, 113, 127, 117, 128, 132, 136, 118, 120, 126, 112, 127, 124, 123, 125, 127, 137, 119, 130, 116, 128, 131, 126, 125, 123, 136, 128, 115, 103, 121, 128, 114, 136, 123, 126, 124, 107, 141, 117, 133, 139, 107, 142, 128, 141, 132, 124, 135, 138, 117, 124, 118, 134, 146, 132, 146, 123, 133, 109, 138, 126, 118, 122, 127, 123, 135, 118, 130, 123, 123, 131, 115, 129, 130, 150, 132, 112, 125, 126, 124, 125, 122, 125, 136, 127, 140, 130, 118, 137, 133, 109, 133, 108, 104, 122, 129, 110, 125, 117, 105, 124, 129, 139, 135, 128, 118, 128, 136, 127, 135, 123, 109, 127, 134, 127, 114, 146, 125, 115, 134, 122, 119, 128, 133, 139, 128, 129, 144, 154, 140, 123, 116, 134, 114, 126, 113, 118, 116, 102, 122, 109, 143, 120, 122, 127, 135, 137, 144, 131, 123, 123, 127, 113, 126, 148, 115, 131, 136, 119, 134, 129, 115, 123, 120, 146, 109, 132, 118, 115, 140, 114, 126, 126, 113, 106, 126, 115, 133, 136, 136, 123, 130, 120, 124, 140, 132, 131, 139, 129, 131, 135, 129, 137, 124, 117, 109, 120, 121, 127, 119, 135, 127, 133, 126, 123, 134, 118, 131, 121, 121, 107, 112, 132, 111, 127, 118, 115, 130, 114, 115, 121, 107, 126, 133, 110, 126, 99, 121, 119, 132, 117, 111, 122, 122, 128, 131, 126, 130, 121, 126, 100, 103, 148, 130, 125, 110, 135, 113, 125, 136, 125, 142, 129, 123, 127, 132, 117, 132, 104, 105, 125, 118, 124, 120, 127, 130, 131, 131, 117, 112, 123, 141, 117, 120, 128, 128, 121, 122, 121, 139, 115, 130, 130, 124, 117, 120, 121, 125, 131, 132, 128, 129, 120, 117, 116, 124, 124, 122, 122, 109, 125, 134, 125, 134, 131, 122, 123, 141, 123, 128, 124, 119, 123, 130, 113, 125, 120, 131, 123, 125, 130, 129, 115, 110, 124, 122, 124, 122, 119, 105, 127, 130, 121, 127, 127, 123, 119, 137, 130, 144, 144, 132, 120, 121, 101, 125, 128, 127, 127, 131, 124, 133, 138, 117, 132, 139, 115, 150, 117, 125, 116, 132, 113, 130, 128, 131, 108, 135, 107, 100, 128, 139, 118, 110, 135, 119, 116, 116, 137, 130, 120, 114, 131, 132, 124, 99, 123, 129, 142, 131, 135, 121, 136, 126, 115, 125, 121, 108, 130, 132, 129, 129, 121, 136, 109, 125, 133, 127, 116, 133, 131, 117, 120, 124, 139, 150, 123, 118, 118, 130, 131, 146, 119, 129, 125, 124, 132, 125, 111, 103, 141, 129, 131, 140, 120, 134, 120, 144, 120, 128, 130, 127, 127, 125, 127, 120, 134, 141, 124, 127, 131, 116, 115, 125, 133, 127, 127, 112, 142, 108, 123, 130, 125, 132, 118, 127, 132, 135, 109, 130, 139, 127, 123, 115, 113, 119, 138, 139, 108, 125, 113, 114, 131, 127, 138, 121, 130, 130, 122, 109, 121, 140, 107, 135, 139, 127, 126, 129, 121, 143, 121, 132, 135, 126, 128, 131, 119, 118, 131, 131, 133, 134, 147, 121, 137, 119, 109, 119, 138, 133, 133, 139, 134, 125, 133, 126, 129, 97, 131, 128, 125, 135, 128, 135, 137, 135, 122, 136, 132, 134, 109, 119, 124, 129, 126, 118, 115, 122, 139, 131, 128, 135, 128, 130, 133, 134, 113, 130, 118, 136, 109, 116, 131, 115, 120, 117, 134, 114, 130, 113, 121, 112, 128, 125, 121, 127, 138, 116, 135, 145, 130, 119, 133, 120, 129, 131, 107, 129, 124, 121, 121, 135, 128, 147, 120, 118, 122, 125, 117, 126, 123, 135, 138, 123, 128, 134, 142, 126, 133, 135, 131, 126, 122, 126, 113, 138, 116, 121, 118, 122, 126, 123, 130, 141, 114, 132, 124, 123, 124, 136, 115, 124, 124, 140, 126, 124, 117, 128, 108, 132, 114, 148, 123, 118, 119, 123, 126, 104, 123, 124, 116, 122, 118, 117, 115, 125, 128, 122, 118, 135, 98, 127, 128, 130, 128, 128, 138, 143, 126, 121, 99, 128, 130, 114, 131, 113, 122, 128, 135, 118, 133, 110, 129, 146, 121, 127, 114, 140, 123, 121, 125, 134, 122, 137, 105, 126, 118, 144, 116, 108, 133, 140, 132, 112, 142, 128, 108, 106, 131, 122, 126, 135, 107, 139, 128, 137, 108, 127, 133, 115, 132, 133, 144, 124, 130, 155, 126, 141, 120, 122, 118, 123, 122, 120, 131, 125, 131, 127, 140, 128, 128, 100, 124, 114, 144, 145, 118, 134, 121, 131, 122, 123, 136, 138, 122, 134, 119, 140, 121, 117, 131, 107, 120, 124, 129, 117, 110, 134, 122, 126, 113, 126, 128, 121, 121, 136, 114, 139, 148, 125, 148, 107, 137, 133, 121, 112, 135, 122, 131, 127, 125, 112, 129, 120, 138, 111, 117, 118, 137, 123, 129, 134, 121, 127, 121, 133, 122, 138, 136, 134, 125, 115, 148, 125, 120, 137, 136, 123, 119, 116, 126, 142, 140, 128, 134, 117, 115, 129, 100, 125, 137, 123, 124, 126, 145, 147, 94, 140, 121, 110, 119, 119, 132, 122, 124, 118, 109, 128, 113, 134, 131, 135, 120, 116, 134, 121, 109, 122, 124, 120, 128, 111, 127, 133, 121, 126, 120, 118, 128, 132, 138, 122, 125, 135, 123, 121, 129, 110, 122, 134, 109, 132, 140, 113, 118, 121, 123, 133, 126, 122, 135, 116, 112, 131, 128, 129, 125, 131, 117, 143, 125, 118, 135, 140, 130, 104, 109, 127, 114, 134, 108, 131, 115, 124, 135, 139, 143, 115, 123, 126, 117, 121, 125, 131, 121, 124, 121, 128, 122, 126, 143, 151, 123, 127, 145, 108, 126, 113, 126, 109, 123, 146, 119, 128, 119, 140, 118, 105, 126, 124, 119, 116, 120, 137, 116, 130, 127, 111, 112, 116, 122, 113, 102, 118, 132, 134, 128, 128, 125, 120, 127, 115, 111, 129, 131, 113, 125, 143, 112, 137, 118, 104, 116, 141, 120, 116, 131, 124, 127, 143, 111, 115, 143, 145, 126, 132, 114, 134, 129, 121, 141, 121, 132, 146, 121, 104, 123, 124, 118, 132, 115, 130, 105, 128, 105, 123, 135, 116, 116, 126, 124, 108, 113, 125, 116, 121, 134, 120, 140, 117, 126, 119, 135, 122, 138, 120, 112, 129, 123, 103, 121, 147, 147, 134, 110, 131, 129, 132, 128, 119, 128, 149, 98, 115, 117, 118, 124, 116, 138, 115, 116, 118, 137, 132, 118, 116, 138, 124, 129, 128, 124, 137, 139, 112, 101, 145, 124, 119, 110, 132, 121, 123, 143, 117, 104, 120, 128, 122, 119, 138, 119, 122, 143, 131, 139, 123, 133, 121, 119, 119, 116, 131, 127, 120, 117, 125, 117, 143, 120, 122, 118, 112, 135, 129, 127, 126, 111, 121, 129, 112, 115, 149, 141, 124, 135, 115, 109, 112, 140, 110, 133, 124, 112, 133, 122, 130, 122, 117, 131, 121, 125, 123, 117, 124, 125, 124, 130, 115, 121, 138, 136, 115, 141, 126, 132, 125, 111, 115, 140, 129, 137, 123, 126, 148, 121, 119, 127, 136, 132, 149, 134, 120, 138, 120, 146, 131, 123, 128, 125, 128, 138, 94, 125, 109, 129, 140, 136, 121, 114, 135, 103, 112, 132, 136, 145, 101, 123, 106, 110, 123, 127, 124, 134, 125, 117, 117, 114, 123, 120, 102, 125, 136, 130, 130, 110, 116, 136, 128, 118, 123, 127, 114, 124, 122, 128, 128, 132, 129, 134, 152, 119, 111, 124, 125, 142, 103, 124, 122, 127, 116, 121, 109, 136, 112, 121, 130, 130, 119, 134, 125, 133, 138, 108, 128, 119, 119, 131, 134, 125, 108, 125, 117, 111, 131, 129, 152, 130, 140, 127, 122, 114, 140, 124, 120, 124, 137, 133, 139, 136, 123, 121, 116, 137, 97, 128, 112, 133, 132, 123, 131, 117, 120, 123, 122, 140, 145, 122, 132, 120, 115, 104, 134, 106, 133, 127, 125, 110, 139, 138, 127, 122, 143, 126, 137, 138, 129, 124, 111, 132, 120, 120, 131, 128, 114, 112, 118, 127, 114, 103, 117, 108, 112, 120, 134, 125, 133, 130, 135, 109, 115, 118, 111, 120, 116, 125, 132, 111, 111, 138, 119, 135, 118, 139, 141, 104, 111, 135, 131, 107, 113, 111, 111, 125, 127, 138, 123, 130, 130, 119, 127, 120, 121, 119, 116, 128, 126, 117, 131, 131, 133, 123, 136, 130, 126, 120, 139, 107, 132, 116, 121, 119, 132, 114, 120, 120, 113, 124, 120, 122, 132, 116, 125, 132, 140, 131, 137, 122, 141, 126, 105, 122, 138, 114, 127, 109, 123, 145, 130, 111, 117, 123, 130, 119, 114, 119, 131, 126, 121, 110, 102, 106, 136, 114, 119, 118, 117, 107, 147, 140, 135, 132, 128, 134, 113, 122, 130, 141, 129, 133, 120, 113, 117, 134, 131, 113, 108, 119, 120, 126, 133, 130, 126, 134, 122, 116, 136, 121, 120, 123, 132, 135, 123, 121, 128, 125, 125, 148, 124, 115, 125, 121, 142, 131, 113, 132, 116, 124, 118, 117, 134, 139, 136, 118, 118, 129, 125, 117, 127, 129, 121, 117, 134, 133, 133, 133, 121, 116, 123, 134, 114, 117, 129, 128, 130, 122, 136, 118, 121, 134, 109, 137, 129, 123, 130, 126, 121, 116, 125, 122, 135, 130, 130, 117, 124, 117, 118, 121, 139, 145, 95, 141, 127, 137, 146, 134, 140, 132, 121, 111, 141, 134, 121, 130, 132, 148, 96, 106, 134, 130, 130, 141, 119, 133, 117, 116, 117, 121, 128, 126, 129, 118, 133, 137, 132, 110, 132, 124, 118, 143, 139, 156, 139, 129, 125, 123, 138, 136, 124, 121, 113, 128, 136, 138, 126, 146, 113, 119, 120, 124, 94, 149, 127, 110, 118, 108, 125, 106, 126, 137, 117, 130, 114, 129, 128, 155, 112, 121, 127, 115, 121, 128, 133, 121, 118, 107, 107, 127, 127, 122, 113, 127, 127, 122, 120, 143, 124, 138, 131, 121, 124, 118, 138, 125, 134, 119, 121, 137, 133, 102, 109, 131, 114, 120, 134, 118, 124, 140, 130, 120, 122, 129, 121, 126, 134, 121, 126, 133, 125, 110, 140, 130, 139, 114, 127, 131, 132, 102, 114, 121, 126, 121, 130, 108, 133, 127, 122, 101, 117, 129, 132, 135, 132, 127, 127, 123, 117, 116, 125, 133, 123, 121, 124, 115, 118, 137, 121, 119, 116, 122, 129, 136, 120, 115, 116, 143, 144, 120, 135, 137, 132, 120, 128, 118, 132, 116, 132, 125, 122, 111, 130, 119, 106, 142, 123, 128, 120, 133, 120, 126, 113, 104, 104, 141, 138, 116, 149, 154, 111, 134, 123, 122, 114, 112, 126, 118, 121, 113, 108, 121, 127, 117, 126, 126, 113, 131, 138, 135, 135, 130, 125, 124, 126, 121, 126, 127, 114, 135, 113, 120, 136, 134, 128, 118, 119, 112, 130, 132, 99, 110, 133, 120, 116, 125, 131, 136, 103, 141, 122, 143, 121, 138, 128, 122, 122, 127, 120, 134, 125, 136, 133, 129, 131, 150, 118, 138, 129, 127, 117, 119, 112, 124, 127, 128, 148, 123, 128, 121, 119, 116, 122, 126, 122, 133, 120, 107, 107, 132, 133, 134, 123, 120, 100, 133, 123, 100, 115, 106, 118, 132, 118, 109, 108, 133, 143, 128, 111, 120, 118, 119, 136, 129, 131, 118, 136, 127, 127, 133, 122, 133, 127, 123, 128, 124, 134, 130, 117, 123, 116, 145, 122, 127, 127, 122, 112, 138, 124, 110, 130, 119, 120, 133, 110, 132, 111, 128, 126, 131, 129, 144, 114, 125, 131, 117, 131, 128, 122, 129, 126, 132, 131, 122, 118, 125, 123, 121, 132, 119, 124, 120, 123, 125, 132, 120, 131, 117, 123, 116, 126, 123, 131, 115, 142, 128, 118, 153, 132, 119, 108, 112, 122, 121, 135, 114, 136, 111, 120, 116, 131, 137, 116, 110, 127, 112, 132, 130, 114, 120, 120, 117, 141, 105, 137, 131, 138, 135, 137, 130, 119, 127, 126, 134, 124, 120, 131, 122, 122, 147, 139, 127, 121, 112, 137, 121, 131, 116, 119, 133, 118, 123, 141, 121, 121, 126, 128, 113, 130, 145, 115, 107, 136, 125, 119, 123, 121, 121, 116, 135, 121, 126, 134, 117, 132, 120, 141, 122, 130, 121, 121, 128, 135, 128, 119, 131, 134, 124, 124, 119, 144, 120, 147, 125, 115, 114, 123, 132, 123, 114, 104, 130, 123, 124, 130, 136, 118, 133, 127, 116, 121, 142, 124, 138, 117, 111, 123, 118, 115, 105, 122, 112, 134, 120, 113, 121, 123, 154, 137, 115, 133, 127, 137, 127, 121, 111, 130, 125, 124, 120, 136, 120, 118, 123, 132, 104, 121, 97, 118, 136, 126, 118, 104, 115, 131, 136, 128, 139, 130, 113, 112, 135, 97, 137, 105, 133, 125, 117, 118, 122, 111, 126, 123, 125, 136, 139, 131, 123, 129, 133, 109, 134, 128, 130, 125, 122, 114, 119, 121, 99, 128, 128, 123, 139, 103, 120, 139, 124, 127, 126, 124, 118, 124, 109, 122, 144, 140, 119, 146, 122, 114, 116, 133, 132, 115, 118, 147, 130, 127, 135, 132, 146, 124, 123, 138, 135, 135, 136, 140, 125, 131, 119, 115, 154, 134, 138, 129, 126, 127, 131, 119, 146, 121, 125, 133, 131, 135, 121, 124, 129, 139, 131, 149, 122, 131, 115, 146, 102, 141, 118, 113, 124, 123, 130, 134, 113, 116, 131, 129, 130, 118, 132, 103, 123, 138, 108, 109, 116, 124, 127, 132, 114, 151, 110, 121, 137, 131, 131, 134, 132, 132, 109, 126, 115, 142, 133, 123, 136, 126, 122, 130, 108, 128, 111, 130, 127, 130, 123, 119, 145, 120, 134, 127, 119, 127, 134, 110, 117, 113, 151, 129, 120, 133, 118, 117, 112, 145, 118, 167, 121, 135, 120, 130, 138, 133, 139, 141, 132, 121, 128, 111, 112, 145, 120, 119, 121, 114, 139, 130, 126, 137, 123, 122, 119, 120, 128, 128, 130, 116, 129, 142, 135, 116, 139, 120, 137, 122, 132, 120, 144, 124, 126, 119, 105, 139, 101, 112, 105, 126, 124, 115, 135, 133, 109, 108, 126, 118, 113, 113, 112, 149, 113, 127, 135, 122, 110, 101, 126, 118, 120, 113, 139, 124, 121, 127, 135, 106, 126, 138, 114, 115, 116, 131, 139, 132, 128, 138, 121, 106, 126, 114, 129, 112, 116, 105, 113, 114, 111, 125, 114, 137, 117, 128, 128, 127, 115, 110, 159, 134, 116, 125, 132, 144, 156, 113, 126, 136, 121, 120, 113, 124, 120, 135, 121, 119, 124, 119, 126, 121, 128, 117, 124, 129, 139, 121, 108, 128, 129, 118, 135, 120, 121, 137, 110, 131, 126, 145, 130, 110, 121, 126, 122, 123, 103, 136, 127, 119, 118, 113, 124, 126, 128, 146, 122, 134, 121, 136, 125, 135, 135, 132, 118, 118, 117, 133, 115, 142, 118, 123, 125, 130, 135, 131, 128, 138, 93, 111, 137, 122, 102, 133, 138, 125, 122, 125, 120, 124, 122, 128, 140, 125, 124, 129, 108, 137, 118, 125, 136, 129, 133, 121, 132, 145, 113, 114, 115, 118, 111, 116, 115, 130, 116, 137, 115, 122, 128, 135, 135, 127, 119, 112, 124, 118, 120, 133, 120, 110, 125, 116, 113, 123, 132, 133, 131, 133, 128, 110, 119, 118, 120, 129, 131, 127, 126, 133, 132, 103, 121, 124, 129, 128, 119, 124, 112, 124, 122, 129, 128, 127, 128, 125, 140, 123, 130, 127, 121, 125, 110, 115, 144, 131, 117, 102, 126, 115, 129, 128, 122, 149, 129, 124, 134, 117, 129, 109, 105, 108, 137, 139, 134, 117, 103, 119, 151, 125, 128, 116, 131, 120, 125, 133, 106, 135, 123, 125, 124, 109, 112, 127, 122, 128, 137, 131, 126, 123, 118, 122, 126, 140, 125, 122, 107, 138, 129, 123, 129, 123, 107, 137, 135, 129, 126, 145, 118, 116, 142, 123, 139, 113, 126, 130, 116, 133, 135, 122, 128, 111, 138, 121, 129, 118, 132, 127, 127, 132, 128, 123, 119, 131, 118, 139, 113, 142, 130, 141, 144, 136, 112, 126, 122, 136, 124, 122, 132, 109, 119, 119, 113, 144, 123, 126, 122, 147, 118, 124, 143, 134, 133, 128, 127, 116, 139, 123, 119, 133, 121, 135, 113, 115, 125, 129, 131, 119, 115, 109, 133, 123, 136, 125, 123, 114, 127, 131, 119, 133, 118, 129, 128, 110, 125, 129, 150, 127, 112, 125, 117, 119, 127, 125, 128, 115, 116, 100, 107, 121, 143, 129, 124, 132, 114, 101, 140, 126, 97, 118, 109, 126, 120, 119, 134, 114, 129, 116, 133, 135, 120, 127, 122, 126, 128, 131, 123, 135, 133, 140, 117, 133, 137, 125, 135, 133, 116, 124, 136, 121, 121, 136, 104, 124, 122, 125, 124, 116, 138, 108, 130, 117, 134, 125, 139, 110, 138, 111, 127, 117, 142, 128, 109, 120, 152, 139, 132, 99, 128, 135, 126, 135, 138, 133, 125, 153, 128, 132, 126, 121, 128, 124, 121, 130, 108, 122, 125, 128, 116, 119, 117, 109, 108, 137, 116, 120, 122, 129, 133, 119, 111, 124, 119, 117, 136, 132, 123, 128, 132, 124, 136, 110, 129, 110, 141, 140, 130, 118, 133, 129, 140, 119, 117, 129, 124, 154, 126, 136, 124, 136, 116, 143, 132, 132, 111, 118, 128, 137, 149, 129, 123, 121, 133, 135, 129, 132, 113, 134, 126, 113, 120, 128, 136, 125, 128, 123, 121, 123, 134, 128, 122, 140, 125, 108, 109, 121, 124, 104, 133, 127, 126, 119, 131, 135, 120, 117, 133, 142, 124, 118, 127, 132, 122, 117, 142, 120, 112, 128, 136, 137, 127, 111, 119, 128, 123, 126, 144, 141, 126, 118, 124, 111, 109, 130, 110, 117, 119, 126, 122, 131, 124, 123, 128, 130, 124, 125, 140, 130, 123, 121, 128, 131, 130, 126, 120, 123, 139, 119, 126, 115, 158, 121, 119, 123, 122, 125, 121, 119, 119, 136, 136, 134, 125, 119, 118, 150, 121, 112, 114, 132, 134, 136, 132, 139, 129, 129, 120, 123, 113, 139, 136, 127, 117, 127, 115, 131, 144, 111, 123, 126, 121, 119, 139, 131, 117, 121, 119, 112, 130, 136, 132, 134, 130, 139, 140, 118, 129, 134, 130, 116, 131, 124, 128, 118, 128, 122, 110, 127, 128, 131, 120, 130, 147, 114, 127, 125, 133, 117, 118, 132, 114, 124, 107, 151, 109, 134, 110, 132, 116, 120, 122, 115, 123, 131, 117, 132, 113, 111, 111, 130, 130, 129, 118, 119, 131, 128, 127, 124, 121, 123, 137, 150, 102, 116, 104, 129, 129, 119, 137, 127, 95, 105, 119, 120, 140, 133, 137, 125, 111, 129, 108, 119, 135, 135, 130, 117, 142, 115, 125, 108, 114, 121, 133, 126, 119, 137, 129, 116, 117, 136, 117, 133, 119, 101, 125, 114, 124, 143, 121, 140, 129, 140, 126, 130, 128, 122, 118, 136, 127, 128, 140, 111, 121, 133, 128, 125, 125, 122, 137, 108, 125, 140, 119, 126, 124, 130, 120, 116, 117, 116, 120, 134, 123, 117, 135, 137, 117, 123, 114, 125, 129, 143, 125, 136, 121, 141, 132, 123, 132, 124, 128, 117, 122, 118, 137, 126, 125, 133, 105, 124, 148, 125, 136, 129, 123, 129, 131, 126, 130, 130, 116, 130, 137, 143, 121, 130, 144, 126, 151, 132, 126, 131, 132, 134, 141, 141, 119, 141, 127, 145, 123, 135, 115, 124, 123, 118, 113, 131, 127, 130, 113, 139, 117, 126, 129, 114, 112, 125, 112, 115, 115, 131, 133, 139, 111, 135, 118, 123, 130, 124, 130, 140, 136, 141, 109, 135, 124, 142, 134, 130, 122, 124, 131, 120, 136, 104, 137, 113, 120, 137, 127, 127, 123, 130, 121, 124, 126, 148, 134, 112, 116, 135, 115, 122, 139, 112, 135, 121, 136, 117, 134, 117, 116, 116, 127, 127, 125, 138, 116, 124, 119, 127, 119, 122, 120, 134, 112, 135, 145, 115, 137, 124, 126, 129, 129, 115, 131, 134, 124, 128, 122, 126, 133, 93, 128, 131, 120, 144, 137, 138, 126, 138, 122, 128, 134, 132, 140, 125, 126, 130, 133, 113, 118, 132, 125, 114, 113, 120, 117, 132, 129, 121, 129, 126, 108, 132, 128, 131, 123, 127, 104, 130, 126, 140, 120, 112, 124, 114, 134, 110, 142, 126, 122, 127, 124, 125, 125, 130, 119, 127, 122, 125, 134, 129, 101, 121, 127, 140, 117, 141, 119, 136, 132, 118, 146, 129, 133, 112, 126, 117, 144, 126, 115, 128, 138, 105, 113, 138, 131, 136, 127, 130, 131, 136, 121, 125, 122, 134, 145, 119, 124, 123, 129, 124, 124, 126, 118, 131, 123, 124, 126, 114, 124, 122, 131, 134, 128, 127, 131, 111, 117, 131, 139, 107, 139, 128, 126, 121, 133, 116, 134, 114, 136, 111, 124, 136, 131, 134, 119, 127, 110, 138, 112, 132, 126, 128, 127, 120, 115, 124, 126, 128, 122, 120, 143, 124, 123, 126, 127, 133, 144, 125, 131, 129, 118, 115, 131, 144, 132, 134, 129, 143, 112, 136, 127, 117, 124, 122, 128, 116, 115, 129, 141, 141, 126, 121, 120, 124, 116, 145, 120, 117, 144, 127, 112, 121, 121, 110, 111, 125, 132, 140, 116, 138, 133, 133, 118, 126, 138, 130, 119, 109, 145, 116, 123, 137, 119, 113, 134, 123, 127, 126, 128, 132, 137, 123, 125, 134, 127, 127, 124, 113, 119, 121, 127, 116, 128, 119, 124, 136, 121, 117, 127, 120, 137, 131, 124, 148, 138, 122, 121, 118, 122, 113, 117, 120, 124, 109, 145, 126, 134, 124, 107, 129, 130, 130, 91, 114, 142, 110, 140, 110, 119, 129, 120, 126, 130, 121, 126, 132, 108, 129, 120, 123, 131, 131, 115, 124, 130, 125, 128, 133, 142, 120, 118, 125, 124, 120, 117, 141, 108, 113, 134, 131, 136, 139, 112, 118, 129, 120, 120, 134, 120, 121, 130, 119, 137, 129, 132, 122, 128, 125, 141, 131, 128, 128, 121, 120, 139, 123, 136, 116, 129, 113, 136, 126, 122, 129, 109, 124, 124, 125, 148, 119, 116, 125, 137, 114, 139, 116, 114, 133, 116, 106, 135, 121, 138, 106, 123, 125, 131, 132, 120, 126, 149, 119, 120, 133, 117, 142, 117, 122, 128, 130, 135, 117, 114, 131, 117, 133, 137, 115, 136, 128, 131, 118, 112, 135, 121, 113, 129, 117, 127, 130, 112, 135, 122, 123, 132, 119, 130, 114, 118, 142, 110, 122, 110, 150, 128, 124, 108, 109, 131, 136, 113, 131, 116, 116, 123, 114, 123, 135, 125, 143, 127, 142, 132, 135, 121, 119, 122, 124, 116, 118, 142, 113, 124, 131, 120, 117, 147, 115, 122, 118, 126, 133, 114, 128, 123, 126, 130, 136, 106, 105, 134, 107, 145, 140, 135, 127, 125, 116, 116, 141, 127, 129, 120, 120, 121, 114, 124, 130, 117, 115, 119, 125, 151, 124, 133, 140, 130, 123, 125, 131, 117, 139, 97, 112, 122, 128, 122, 121, 130, 127, 130, 114, 137, 128, 144, 118, 137, 120, 129, 128, 130, 127, 116, 134, 114, 114, 113, 101, 131, 123, 105, 119, 131, 143, 125, 126, 129, 105, 133, 128, 120, 123, 135, 123, 133, 116, 122, 105, 120, 115, 123, 119, 140, 119, 134, 119, 117, 122, 119, 128, 126, 106, 139, 135, 127, 128, 126, 114, 122, 126, 106, 126, 150, 112, 147, 135, 124, 133, 129, 140, 120, 125, 117, 147, 127, 136, 120, 131, 130, 114, 124, 122, 123, 120, 126, 130, 151, 123, 135, 127, 132, 122, 123, 137, 132, 130, 122, 112, 115, 132, 125, 123, 139, 132, 119, 124, 142, 120, 112, 98, 116, 140, 106, 126, 111, 121, 131, 132, 138, 127, 114, 137, 128, 139, 126, 121, 132, 128, 130, 142, 128, 137, 128, 143, 131, 121, 134, 125, 124, 124, 131, 123, 135, 112, 147, 116, 144, 118, 121, 132, 144, 144, 118, 112, 133, 128, 112, 123, 124, 153, 114, 142, 129, 114, 109, 132, 134, 133, 129, 119, 126, 126, 127, 124, 126, 138, 129, 114, 125, 118, 122, 119, 119, 123, 119, 131, 129, 124, 115, 104, 117, 122, 130, 128, 134, 132, 120, 120, 115, 117, 132, 117, 141, 130, 110, 122, 123, 119, 129, 119, 153, 139, 118, 141, 129, 135, 144, 142, 137, 155, 141, 122, 128, 129, 140, 139, 148, 136, 109, 140, 128, 101, 127, 131, 149, 121, 125, 119, 124, 119, 152, 126, 118, 123, 149, 123, 126, 152, 126, 121, 125, 132, 134, 120, 129, 143, 105, 118, 136, 114, 132, 120, 115, 132, 123, 127, 125, 124, 109, 144, 119, 125, 138, 139, 117, 111, 128, 129, 149, 120, 127, 125, 128, 118, 119, 117, 125, 129, 121, 124, 97, 154, 122, 119, 122, 114, 127, 120, 117, 117, 112, 134, 133, 132, 125, 137, 105, 126, 118, 125, 118, 125, 129, 119, 125, 119, 120, 120, 114, 134, 136, 132, 137, 131, 125, 106, 143, 119, 124, 119, 121, 127, 138, 113, 125, 136, 123, 132, 112, 128, 127, 101, 126, 131, 128, 112, 128, 108, 129, 125, 125, 159, 132, 136, 131, 146, 118, 134, 131, 108, 134, 134, 128, 116, 121, 107, 106, 127, 115, 136, 124, 139, 122, 98, 104, 129, 114, 122, 115, 116, 124, 123, 139, 117, 126, 111, 135, 134, 107, 123, 155, 146, 129, 112, 134, 133, 128, 117, 117, 130, 140, 129, 108, 132, 128, 121, 119, 124, 117, 123, 126, 127, 112, 122, 147, 122, 116, 114, 129, 130, 133, 105, 117, 133, 113, 120, 131, 141, 123, 138, 113, 141, 122, 119, 111, 128, 127, 129, 119, 127, 133, 116, 138, 139, 117, 127, 119, 132, 131, 105, 136, 124, 113, 133, 138, 112, 108, 105, 125, 124, 121, 121, 115, 126, 131, 128, 137, 120, 115, 155, 119, 134, 145, 127, 125, 139, 135, 137, 138, 142, 111, 125, 138, 139, 112, 124, 128, 124, 110, 118, 131, 127, 117, 113, 142, 120, 137, 153, 115, 111, 120, 128, 132, 128, 136, 134, 140, 132, 134, 140, 123, 92, 119, 129, 149, 131, 125, 122, 119, 118, 111, 120, 119, 125, 130, 116, 129, 131, 126, 138, 116, 120, 121, 114, 113, 131, 127, 124, 117, 117, 132, 137, 128, 123, 130, 127, 133, 137, 124, 125, 140, 147, 123, 129, 114, 121, 122, 116, 119, 108, 141, 118, 130, 130, 136, 126, 119, 129, 126, 112, 116, 116, 102, 113, 137, 117, 129, 120, 130, 112, 131, 127, 124, 120, 122, 101, 120, 112, 120, 124, 122, 117, 139, 127, 119, 104, 106, 104, 127, 141, 116, 120, 111, 145, 142, 121, 124, 122, 128, 122, 121, 127, 117, 126, 137, 117, 112, 122, 139, 119, 129, 107, 133, 135, 131, 133, 134, 130, 135, 113, 131, 122, 119, 117, 115, 104, 132, 136, 118, 123, 136, 130, 111, 115, 145, 132, 120, 116, 127, 118, 112, 135, 128, 123, 121, 112, 118, 116, 133, 117, 141, 132, 102, 139, 122, 117, 125, 119, 110, 129, 121, 142, 111, 116, 112, 122, 118, 119, 144, 140, 112, 115, 135, 113, 124, 109, 143, 105, 124, 135, 110, 132, 128, 126, 112, 126, 125, 130, 130, 132, 117, 128, 131, 139, 98, 128, 119, 125, 130, 136, 113, 120, 130, 124, 133, 138, 121, 135, 140, 119, 138, 122, 131, 131, 134, 142, 113, 112, 134, 120, 109, 117, 131, 102, 115, 131, 127, 111, 125, 114, 130, 123, 147, 119, 112, 122, 130, 142, 127, 142, 116, 126, 136, 110, 132, 134, 133, 124, 123, 132, 131, 125, 94, 116, 118, 107, 113, 153, 130, 121, 146, 121, 118, 132, 128, 144, 127, 128, 124, 134, 137, 118, 108, 120, 119, 119, 115, 120, 117, 122, 108, 134, 122, 122, 127, 135, 128, 134, 123, 132, 151, 93, 111, 125, 116, 120, 138, 128, 126, 119, 113, 132, 112, 126, 118, 130, 117, 99, 134, 122, 118, 130, 117, 125, 120, 114, 130, 116, 113, 141, 145, 126, 144, 134, 132, 127, 125, 122, 127, 122, 125, 120, 141, 136, 126, 131, 109, 145, 117, 140, 100, 120, 147, 135, 134, 115, 157, 138, 125, 120, 129, 124, 132, 120, 124, 140, 117, 126, 109, 150, 146, 125, 126, 97, 145, 122, 155, 143, 127, 154, 117, 112, 140, 109, 127, 133, 148, 124, 122, 137, 130, 114, 129, 124, 113, 135, 103, 130, 105, 134, 130, 111, 126, 136, 109, 128, 126, 110, 137, 131, 122, 108, 119, 102, 150, 134, 116, 111, 124, 119, 106, 140, 119, 112, 116, 126, 128, 109, 111, 130, 123, 125, 126, 101, 115, 121, 135, 155, 141, 118, 124, 139, 138, 128, 164, 131, 114, 125, 136, 123, 115, 138, 123, 112, 133, 136, 136, 136, 130, 135, 132, 121, 101, 131, 109, 113, 123, 143, 106, 129, 148, 116, 133, 125, 121, 122, 118, 126, 122, 115, 131, 126, 115, 114, 116, 108, 119, 121, 114, 137, 128, 138, 120, 127, 147, 125, 121, 118, 119, 135, 144, 129, 113, 122, 138, 136, 125, 130, 145, 117, 115, 138, 127, 129, 124, 128, 136, 119, 127, 112, 120, 142, 142, 131, 134, 131, 122, 113, 125, 124, 140, 121, 108, 119, 117, 129, 115, 132, 135, 126, 116, 105, 120, 146, 118, 130, 117, 124, 117, 100, 129, 133, 123, 119, 130, 127, 116, 131, 128, 127, 111, 122, 130, 125, 126, 136, 128, 135, 125, 136, 129, 134, 134, 131, 116, 153, 129, 114, 122, 135, 131, 128, 107, 120, 120, 131, 117, 106, 134, 118, 144, 128, 134, 133, 123, 131, 123, 129, 141, 124, 128, 105, 141, 131, 134, 89, 136, 129, 127, 122, 141, 129, 125, 138, 122, 148, 134, 110, 114, 111, 123, 127, 133, 134, 160, 128, 139, 121, 109, 111, 128, 116, 129, 128, 132, 109, 119, 118, 104, 126, 123, 108, 125, 135, 115, 118, 119, 126, 124, 132, 119, 124, 127, 122, 115, 129, 117, 130, 126, 118, 133, 135, 122, 149, 110, 144, 134, 114, 149, 112, 132, 149, 105, 130, 114, 114, 132, 157, 147, 126, 116, 125, 143, 116, 128, 127, 122, 144, 127, 135, 97, 119, 124, 110, 133, 128, 127, 118, 123, 126, 119, 129, 121, 127, 117, 123, 131, 122, 130, 105, 105, 116, 110, 151, 129, 115, 115, 110, 117, 111, 115, 147, 115, 126, 122, 118, 123, 131, 119, 149, 114, 122, 124, 118, 136, 114, 121, 134, 115, 131, 96, 134, 129, 127, 127, 118, 110, 130, 138, 129, 122, 120, 124, 127, 142, 122, 147, 125, 124, 111, 125, 123, 130, 135, 119, 123, 126, 128, 116, 110, 123, 122, 136, 118, 114, 128, 159, 123, 121, 107, 106, 137, 101, 136, 137, 118, 152, 137, 116, 139, 131, 107, 135, 144, 120, 133, 120, 115, 122, 123, 124, 149, 105, 128, 140, 117, 124, 113, 113, 125, 131, 116, 118, 136, 125, 126, 118, 127, 114, 119, 137, 120, 115, 127, 129, 128, 114, 125, 129, 147, 111, 133, 128, 137, 128, 116, 143, 121, 129, 123, 116, 126, 127, 124, 141, 130, 119, 140, 117, 137, 116, 126, 120, 109, 130, 106, 120, 121, 125, 121, 125, 117, 122, 135, 104, 113, 133, 128, 147, 125, 103, 119, 119, 142, 105, 138, 126, 128, 138, 130, 146, 129, 116, 132, 118, 113, 140, 113, 120, 111, 116, 126, 117, 128, 119, 110, 125, 118, 126, 131, 119, 138, 120, 119, 139, 113, 112, 126, 139, 117, 123, 127, 143, 126, 126, 116, 113, 130, 129, 117, 141, 125, 124, 111, 118, 114, 114, 106, 127, 142, 122, 117, 124, 118, 114, 121, 128, 127, 125, 130, 129, 129, 128, 141, 121, 134, 132, 114, 130, 151, 133, 109, 121, 106, 120, 145, 128, 123, 116, 120, 122, 129, 121, 132, 144, 136, 119, 118, 142, 117, 113, 109, 117, 135, 141, 128, 142, 117, 114, 117, 126, 119, 132, 123, 127, 120, 132, 136, 146, 119, 109, 126, 88, 133, 118, 122, 112, 121, 125, 122, 141, 120, 141, 128, 117, 126, 116, 119, 151, 125, 132, 129, 119, 121, 132, 129, 118, 112, 141, 156, 128, 104, 123, 126, 114, 122, 102, 130, 129, 126, 141, 125, 130, 134, 119, 131, 119, 129, 122, 125, 130, 119, 142, 110, 122, 134, 140, 112, 142, 118, 97, 143, 136, 128, 123, 118, 98, 129, 117, 146, 141, 126, 127, 106, 136, 124, 113, 144, 135, 120, 122, 130, 120, 125, 124, 120, 122, 114, 128, 122, 131, 125, 123, 119, 131, 124, 138, 141, 135, 132, 109, 132, 177, 116, 130, 147, 117, 126, 115, 120, 131, 114, 111, 135, 138, 116, 138, 104, 133, 142, 123, 119, 129, 129, 152, 104, 150, 104, 126, 115, 131, 124, 121, 115, 123, 113, 119, 128, 133, 135, 116, 132, 134, 135, 135, 130, 129, 124, 126, 136, 117, 127, 108, 127, 122, 106, 128, 113, 139, 139, 128, 121, 133, 127, 123, 123, 110, 137, 123, 116, 138, 129, 124, 126, 131, 126, 111, 130, 132, 128, 117, 113, 133, 128, 122, 138, 119, 137, 107, 125, 130, 131, 110, 122, 117, 135, 125, 119, 137, 130, 115, 133, 120, 115, 128, 140, 130, 127, 138, 111, 118, 138, 114, 126, 119, 146, 124, 132, 115, 120, 123, 136, 120, 131, 130, 122, 124, 116, 147, 110, 97, 119, 118, 142, 104, 123, 124, 150, 122, 119, 124, 125, 131, 132, 132, 122, 133, 124, 127, 138, 127, 132, 123, 115, 120, 125, 127, 111, 143, 128, 130, 130, 140, 119, 119, 129, 137, 118, 138, 123, 122, 126, 115, 116, 144, 127, 144, 121, 116, 134, 121, 114, 132, 146, 109, 124, 138, 112, 132, 137, 139, 123, 137, 148, 136, 111, 121, 123, 110, 126, 120, 117, 144, 120, 130, 122, 120, 136, 124, 111, 128, 109, 129, 133, 124, 112, 138, 126, 139, 127, 137, 135, 126, 129, 132, 128, 122, 126, 119, 119, 128, 122, 125, 122, 124, 148, 122, 128, 130, 110, 130, 130, 138, 116, 123, 122, 113, 124, 135, 119, 124, 121, 121, 140, 131, 125, 131, 125, 124, 114, 101, 119, 116, 138, 114, 132, 120, 124, 132, 139, 143, 130, 132, 129, 133, 121, 144, 110, 139, 117, 105, 120, 128, 118, 128, 134, 127, 112, 129, 110, 129, 119, 126, 130, 137, 122, 138, 115, 124, 133, 115, 106, 131, 97, 122, 141, 139, 112, 126, 108, 148, 130, 123, 115, 138, 134, 119, 121, 117, 112, 139, 136, 117, 108, 121, 120, 121, 144, 114, 120, 127, 121, 107, 128, 130, 121, 136, 128, 122, 123, 131, 148, 127, 132, 117, 134, 119, 123, 113, 111, 121, 137, 122, 129, 132, 135, 110, 113, 118, 118, 120, 109, 121, 136, 134, 125, 129, 118, 143, 120, 118, 113, 115, 121, 108, 121, 121, 132, 128, 133, 134, 123, 125, 132, 133, 117, 113, 126, 110, 123, 122, 121, 116, 137, 119, 135, 123, 142, 127, 127, 111, 129, 131, 132, 128, 118, 115, 123, 139, 118, 138, 121, 125, 136, 129, 133, 125, 115, 123, 126, 122, 127, 123, 135, 113, 138, 123, 121, 116, 135, 117, 120, 122, 133, 127, 138, 118, 124, 122, 117, 133, 111, 123, 119, 139, 128, 124, 121, 143, 115, 135, 128, 115, 123, 126, 128, 122, 140, 115, 138, 122, 142, 128, 125, 98, 116, 114, 132, 143, 131, 126, 107, 138, 119, 130, 124, 111, 126, 121, 118, 120, 122, 127, 127, 121, 138, 128, 118, 129, 125, 128, 120, 137, 124, 119, 121, 122, 109, 114, 133, 142, 120, 126, 119, 127, 113, 134, 129, 138, 144, 120, 141, 132, 141, 120, 150, 120, 120, 119, 131, 114, 134, 124, 122, 130, 118, 138, 141, 113, 111, 116, 136, 130, 135, 124, 134, 122, 131, 128, 127, 114, 106, 144, 124, 119, 118, 117, 124, 118, 121, 128, 136, 121, 119, 137, 123, 126, 137, 110, 134, 109, 130, 141, 142, 136, 133, 111, 137, 142, 128, 116, 120, 107, 130, 127, 117, 140, 123, 120, 115, 106, 129, 130, 135, 123, 123, 119, 121, 111, 120, 130, 123, 126, 135, 116, 130, 149, 113, 124, 137, 125, 130, 109, 113, 138, 136, 115, 128, 116, 129, 112, 139, 120, 135, 125, 129, 126, 118, 111, 117, 144, 126, 123, 135, 133, 123, 139, 136, 129, 126, 129, 128, 110, 122, 114, 133, 128, 121, 126, 136, 140, 122, 126, 116, 120, 145, 113, 138, 127, 129, 122, 125, 113, 123, 122, 129, 113, 136, 134, 126, 121, 119, 111, 118, 115, 111, 129, 134, 131, 133, 117, 124, 104, 124, 135, 123, 128, 125, 132, 135, 112, 111, 117, 134, 115, 121, 116, 124, 117, 143, 131, 135, 104, 129, 111, 118, 118, 127, 136, 110, 134, 125, 115, 116, 124, 131, 121, 122, 111, 127, 121, 106, 124, 125, 126, 121, 141, 143, 141, 132, 120, 142, 112, 130, 106, 133, 133, 116, 124, 119, 140, 125, 118, 126, 134, 114, 148, 124, 116, 136, 121, 135, 134, 133, 127, 121, 120, 131, 127, 131, 130, 134, 117, 135, 120, 119, 115, 129, 124, 119, 113, 136, 117, 103, 133, 115, 115, 116, 103, 121, 124, 112, 121, 116, 117, 150, 142, 131, 122, 122, 119, 118, 132, 130, 126, 135, 113, 122, 117, 130, 120, 124, 138, 133, 114, 132, 139, 124, 137, 123, 104, 137, 123, 139, 124, 138, 131, 130, 127, 150, 120, 118, 131, 117, 133, 130, 118, 141, 128, 119, 127, 116, 131, 118, 126, 128, 96, 124, 122, 126, 131, 110, 113, 138, 127, 137, 126, 126, 127, 126, 117, 115, 126, 113, 122, 134, 136, 117, 136, 127, 125, 142, 124, 123, 129, 124, 117, 116, 131, 137, 125, 129, 130, 134, 116, 94, 119, 123, 136, 121, 130, 137, 126, 126, 131, 135, 134, 146, 109, 132, 142, 114, 100, 120, 128, 130, 97, 124, 134, 128, 137, 122, 144, 97, 122, 114, 134, 126, 136, 143, 132, 137, 134, 132, 130, 114, 124, 125, 137, 112, 125, 117, 122, 91, 135, 132, 129, 123, 125, 131, 127, 119, 115, 138, 123, 116, 121, 113, 131, 153, 108, 133, 150, 122, 129, 110, 142, 143, 133, 120, 115, 135, 117, 113, 112, 143, 116, 115, 149, 113, 115, 125, 123, 123, 142, 122, 127, 140, 123, 127, 109, 120, 107, 125, 134, 126, 129, 129, 123, 131, 128, 122, 135, 123, 127, 122, 127, 125, 113, 128, 124, 118, 106, 122, 117, 128, 122, 145, 132, 102, 132, 135, 117, 113, 142, 122, 141, 132, 105, 117, 122, 137, 138, 123, 133, 121, 123, 138, 106, 137, 120, 113, 121, 114, 132, 122, 125, 117, 123, 142, 131, 138, 133, 118, 128, 127, 115, 129, 132, 106, 120, 144, 133, 117, 127, 112, 128, 132, 123, 131, 132, 118, 115, 127, 121, 106, 124, 129, 131, 123, 125, 126, 127, 111, 117, 107, 137, 125, 109, 133, 117, 121, 125, 122, 132, 113, 124, 125, 125, 135, 119, 122, 121, 129, 125, 132, 139, 125, 124, 128, 128, 125, 131, 139, 127, 134, 136, 122, 122, 121, 122, 114, 122, 134, 105, 132, 119, 123, 105, 134, 121, 110, 112, 127, 115, 122, 125, 104, 142, 115, 115, 121, 114, 117, 117, 142, 128, 135, 129, 138, 124, 108, 129, 125, 127, 113, 121, 127, 114, 144, 127, 114, 118, 113, 126, 114, 113, 115, 125, 114, 140, 127, 114, 118, 129, 123, 112, 136, 120, 92, 121, 152, 132, 121, 122, 126, 122, 106, 124, 114, 127, 114, 130, 140, 155, 130, 106, 113, 111, 127, 134, 121, 100, 129, 111, 110, 115, 122, 128, 123, 141, 132, 127, 125, 130, 125, 135, 135, 129, 124, 119, 99, 123, 129, 147, 144, 138, 127, 136, 137, 106, 107, 118, 134, 143, 141, 123, 126, 133, 119, 121, 125, 129, 132, 137, 109, 128, 136, 135, 140, 141, 135, 122, 112, 117, 122, 140, 136, 129, 117, 126, 132, 138, 120, 122, 110, 121, 123, 125, 138, 118, 134, 131, 109, 135, 120, 120, 126, 121, 124, 116, 128, 142, 119, 109, 126, 136, 114, 116, 135, 133, 134, 136, 112, 131, 136, 95, 106, 118, 124, 118, 123, 134, 126, 108, 136, 122, 118, 126, 123, 117, 128, 120, 129, 126, 123, 117, 122, 122, 138, 135, 129, 115, 143, 124, 126, 126, 125, 113, 105, 128, 127, 132, 127, 107, 127, 130, 129, 116, 127, 129, 123, 112, 125, 125, 139, 131, 128, 124, 115, 93, 155, 120, 118, 124, 125, 146, 130, 124, 110, 116, 118, 132, 115, 120, 122, 132, 124, 112, 142, 135, 121, 120, 116, 123, 137, 150, 116, 121, 103, 114, 123, 134, 141, 153, 126, 121, 128, 134, 129, 112, 115, 121, 105, 114, 134, 139, 120, 121, 115, 132, 126, 141, 124, 103, 132, 128, 130, 121, 111, 121, 120, 120, 122, 117, 152, 106, 122, 130, 133, 140, 118, 138, 112, 128, 138, 112, 114, 125, 125, 119, 111, 142, 134, 120, 121, 118, 110, 110, 152, 130, 113, 131, 118, 123, 136, 127, 122, 140, 126, 119, 123, 115, 132, 115, 121, 128, 140, 109, 119, 131, 133, 130, 121, 131, 139, 125, 112, 114, 115, 117, 109, 126, 126, 139, 127, 131, 124, 130, 131, 118, 130, 111, 108, 124, 121, 125, 146, 136, 107, 117, 111, 112, 123, 122, 114, 131, 118, 157, 112, 140, 122, 122, 130, 148, 117, 118, 124, 137, 136, 113, 132, 115, 123, 116, 105, 128, 121, 113, 119, 126, 134, 135, 133, 110, 128, 126, 121, 142, 137, 128, 140, 112, 126, 117, 118, 106, 122, 110, 100, 136, 113, 140, 125, 141, 103, 120, 139, 123, 129, 132, 135, 129, 141, 121, 117, 129, 129, 123, 127, 123, 116, 115, 101, 123, 130, 124, 139, 121, 118, 132, 103, 116, 134, 133, 122, 124, 131, 127, 122, 123, 114, 128, 130, 122, 119, 137, 138, 119, 98, 121, 119, 123, 114, 126, 128, 138, 113, 126, 122, 127, 127, 130, 115, 128, 107, 122, 115, 129, 121, 123, 102, 132, 119, 130, 119, 122, 121, 122, 138, 114, 118, 136, 127, 115, 132, 129, 119, 138, 122, 135, 132, 120, 135, 115, 126, 108, 132, 123, 127, 116, 127, 118, 129, 118, 138, 131, 124, 131, 125, 113, 121, 123, 125, 134, 110, 134, 116, 134, 122, 110, 134, 112, 124, 135, 123, 107, 132, 136, 121, 141, 132, 118, 127, 116, 118, 124, 154, 129, 116, 143, 121, 119, 137, 129, 123, 129, 127, 127, 137, 130, 110, 116, 122, 124, 122, 119, 108, 121, 127, 134, 135, 135, 130, 124, 140, 122, 133, 119, 124, 117, 117, 125, 129, 92, 124, 126, 116, 119, 123, 124, 139, 119, 104, 125, 126, 137, 135, 113, 140, 117, 126, 137, 129, 116, 150, 126, 118, 127, 139, 111, 119, 142, 131, 119, 132, 116, 126, 124, 135, 130, 118, 131, 140, 131, 118, 103, 124, 125, 127, 134, 119, 93, 146, 116, 127, 113, 115, 144, 120, 133, 119, 117, 121, 120, 130, 116, 144, 132, 121, 137, 146, 128, 118, 128, 135, 130, 117, 128, 136, 138, 129, 145, 142, 124, 124, 122, 125, 131, 137, 116, 132, 106, 130, 114, 103, 121, 124, 128, 114, 114, 139, 130, 147, 132, 128, 130, 127, 128, 110, 103, 112, 112, 121, 131, 108, 116, 123, 138, 119, 149, 127, 125, 109, 133, 139, 141, 102, 119, 133, 120, 108, 86, 116, 136, 111, 121, 131, 133, 139, 132, 125, 112, 117, 139, 143, 112, 129, 125, 133, 128, 125, 118, 131, 120, 118, 105, 105, 141, 113, 149, 121, 124, 111, 121, 118, 121, 129, 104, 114, 119, 120, 122, 130, 114, 145, 136, 133, 121, 130, 141, 126, 124, 129, 137, 118, 125, 115, 112, 117, 120, 110, 152, 132, 122, 113, 129, 121, 135, 131, 99, 121, 141, 121, 127, 118, 129, 124, 116, 138, 146, 114, 126, 123, 143, 111, 138, 138, 134, 136, 116, 117, 123, 114, 119, 122, 130, 148, 122, 107, 122, 122, 131, 133, 131, 126, 140, 101, 138, 101, 123, 133, 140, 127, 118, 120, 125, 125, 122, 99, 122, 119, 128, 111, 139, 123, 130, 121, 114, 121, 108, 114, 127, 139, 127, 143, 138, 128, 139, 102, 131, 127, 127, 117, 122, 136, 138, 121, 107, 121, 141, 114, 120, 129, 133, 120, 124, 133, 131, 146, 117, 120, 126, 120, 120, 113, 114, 116, 135, 111, 131, 133, 121, 135, 121, 120, 112, 105, 114, 118, 125, 107, 129, 126, 137, 115, 115, 108, 114, 136, 124, 110, 121, 135, 123, 113, 124, 123, 110, 119, 134, 126, 107, 123, 134, 101, 115, 127, 125, 125, 143, 131, 105, 119, 143, 123, 124, 132, 146, 128, 120, 129, 108, 134, 123, 112, 118, 127, 141, 126, 131, 133, 122, 126, 132, 123, 124, 126, 114, 127, 116, 123, 118, 105, 135, 122, 127, 124, 137, 122, 134, 133, 149, 122, 143, 121, 117, 132, 131, 141, 124, 127, 135, 123, 126, 118, 129, 118, 138, 112, 117, 134, 101, 126, 129, 127, 119, 133, 86, 121, 119, 121, 113, 120, 115, 136, 130, 143, 142, 115, 135, 124, 127, 128, 118, 129, 121, 119, 112, 134, 138, 114, 102, 118, 135, 121, 129, 111, 133, 142, 124, 126, 112, 131, 130, 119, 127, 126, 130, 125, 126, 135, 131, 125, 113, 119, 135, 135, 109, 118, 124, 115, 126, 119, 127, 124, 136, 137, 143, 112, 128, 117, 122, 140, 115, 137, 124, 141, 117, 132, 133, 111, 136, 131, 124, 120, 123, 136, 126, 132, 124, 132, 127, 127, 117, 125, 107, 109, 102, 126, 111, 146, 102, 113, 128, 138, 109, 98, 128, 124, 108, 130, 118, 135, 134, 126, 154, 144, 120, 122, 133, 118, 133, 134, 129, 143, 142, 142, 136, 117, 139, 116, 141, 133, 105, 146, 131, 119, 113, 108, 121, 124, 131, 117, 116, 115, 104, 134, 100, 127, 135, 124, 122, 123, 128, 106, 120, 127, 128, 129, 119, 121, 141, 116, 133, 128, 125, 115, 122, 118, 125, 109, 121, 120, 126, 142, 144, 141, 128, 122, 147, 118, 134, 112, 129, 112, 128, 121, 109, 130, 130, 115, 128, 119, 123, 140, 136, 125, 118, 134, 114, 127, 121, 126, 109, 125, 112, 139, 109, 117, 125, 111, 126, 120, 129, 110, 126, 123, 115, 127, 115, 129, 140, 113, 127, 122, 117, 126, 120, 119, 135, 116, 124, 117, 127, 115, 133, 105, 134, 123, 131, 125, 123, 146, 129, 132, 125, 123, 135, 103, 126, 123, 113, 130, 122, 124, 106, 127, 120, 126, 128, 134, 132, 130, 114, 135, 116, 138, 121, 139, 108, 146, 111, 136, 142, 128, 131, 103, 116, 134, 131, 122, 124, 122, 119, 121, 119, 133, 147, 132, 134, 140, 129, 113, 120, 147, 135, 132, 126, 147, 135, 146, 132, 128, 122, 125, 131, 134, 122, 126, 122, 127, 117, 117, 131, 129, 131, 155, 121, 99, 134, 117, 114, 118, 137, 123, 103, 126, 142, 116, 126, 126, 128, 127, 127, 138, 132, 130, 128, 117, 130, 138, 134, 125, 124, 121, 144, 119, 116, 132, 134, 135, 131, 120, 130, 127, 132, 116, 133, 128, 123, 127, 120, 127, 118, 130, 148, 123, 111, 126, 120, 123, 140, 105, 125, 123, 118, 121, 122, 133, 112, 126, 122, 121, 111, 120, 122, 121, 135, 131, 117, 130, 122, 111, 144, 110, 121, 125, 143, 119, 130, 136, 111, 126, 141, 144, 126, 110, 119, 129, 114, 114, 129, 134, 132, 123, 129, 137, 131, 126, 127, 122, 124, 136, 130, 136, 116, 121, 123, 127, 112, 122, 127, 118, 93, 111, 102, 136, 120, 139, 121, 122, 136, 144, 139, 150, 119, 157, 126, 150, 150, 151, 123, 152, 119, 148, 150, 121, 143, 131, 114, 118, 118, 112, 119, 126, 126, 137, 120, 116, 131, 132, 119, 110, 134, 121, 128, 131, 136, 120, 119, 111, 131, 140, 145, 132, 110, 135, 102, 130, 130, 125, 133, 121, 127, 121, 132, 123, 105, 130, 132, 129, 118, 120, 119, 119, 130, 139, 124, 131, 131, 131, 137, 117, 118, 128, 122, 116, 106, 121, 122, 116, 129, 136, 130, 115, 136, 140, 118, 115, 138, 143, 123, 131, 134, 123, 119, 114, 139, 117, 140, 136, 116, 121, 122, 109, 137, 115, 98, 146, 132, 117, 112, 133, 145, 119, 111, 119, 107, 124, 144, 122, 104, 125, 108, 116, 133, 114, 123, 141, 111, 129, 136, 136, 133, 117, 126, 124, 116, 127, 126, 131, 129, 138, 119, 122, 111, 115, 117, 136, 114, 113, 139, 119, 125, 106, 125, 124, 136, 145, 125, 112, 121, 109, 142, 122, 118, 106, 136, 141, 119, 121, 116, 121, 118, 117, 127, 115, 113, 101, 121, 131, 116, 90, 143, 138, 123, 131, 132, 106, 131, 128, 130, 145, 117, 116, 131, 105, 149, 120, 123, 121, 113, 140, 130, 142, 132, 126, 112, 128, 128, 109, 133, 121, 127, 123, 140, 112, 124, 112, 127, 129, 106, 131, 131, 134, 128, 123, 127, 113, 120, 115, 119, 126, 140, 123, 121, 123, 130, 126, 93, 146, 111, 112, 137, 134, 141, 133, 110, 133, 132, 141, 136, 141, 130, 114, 130, 103, 133, 130, 133, 129, 126, 125, 122, 137, 127, 111, 139, 153, 120, 130, 133, 114, 114, 132, 128, 118, 123, 151, 139, 113, 118, 133, 112, 112, 130, 117, 134, 114, 127, 116, 124, 112, 120, 138, 121, 130, 129, 131, 111, 121, 128, 106, 150, 112, 134, 133, 120, 121, 114, 104, 112, 122, 121, 123, 131, 108, 128, 125, 134, 132, 147, 140, 119, 130, 98, 118, 136, 141, 128, 121, 131, 130, 99, 135, 115, 108, 137, 133, 123, 127, 142, 127, 124, 112, 135, 125, 111, 121, 123, 104, 106, 119, 161, 118, 116, 142, 141, 93, 119, 139, 117, 139, 135, 128, 131, 125, 124, 132, 131, 125, 138, 134, 114, 115, 134, 128, 140, 133, 140, 137, 125, 141, 112, 118, 140, 137, 132, 121, 128, 120, 164, 117, 131, 124, 126, 125, 113, 119, 121, 138, 131, 129, 135, 118, 90, 101, 125, 118, 109, 134, 127, 129, 144, 147, 114, 125, 116, 138, 120, 109, 123, 131, 133, 130, 127, 119, 123, 113, 118, 110, 125, 141, 129, 129, 113, 135, 132, 135, 121, 124, 117, 149, 147, 131, 132, 125, 142, 136, 131, 118, 121, 134, 125, 127, 122, 120, 113, 132, 131, 134, 126, 130, 131, 123, 143, 99, 124, 120, 148, 130, 108, 137, 123, 103, 113, 118, 132, 123, 103, 112, 128, 114, 123, 121, 129, 148, 123, 130, 123, 122, 138, 121, 136, 128, 128, 108, 122, 132, 124, 133, 120, 125, 111, 110, 132, 112, 116, 149, 117, 140, 145, 113, 131, 121, 121, 140, 120, 121, 126, 153, 130, 120, 136, 116, 112, 152, 128, 138, 137, 115, 122, 127, 110, 111, 130, 127, 125, 132, 118, 131, 104, 128, 128, 129, 124, 137, 131, 136, 114, 137, 118, 114, 103, 152, 122, 123, 113, 106, 135, 126, 113, 127, 129, 137, 126, 115, 128, 105, 142, 130, 114, 125, 123, 133, 122, 140, 132, 109, 132, 114, 105, 130, 120, 128, 135, 133, 128, 109, 117, 121, 110, 111, 125, 110, 121, 137, 121, 151, 116, 99, 124, 133, 115, 128, 116, 135, 121, 146, 126, 132, 128, 130, 120, 124, 134, 107, 144, 117, 110, 135, 134, 130, 139, 116, 121, 123, 125, 126, 133, 121, 127, 117, 117, 133, 126, 127, 120, 129, 129, 127, 119, 110, 127, 111, 135, 116, 125, 111, 127, 125, 138, 138, 143, 125, 138, 140, 126, 106, 132, 145, 127, 132, 129, 126, 143, 127, 127, 138, 109, 134, 113, 128, 122, 108, 121, 101, 121, 123, 143, 113, 115, 113, 143, 113, 144, 118, 112, 128, 98, 115, 151, 115, 115, 124, 127, 121, 127, 127, 121, 136, 130, 129, 121, 122, 113, 123, 127, 128, 128, 140, 134, 115, 115, 131, 139, 107, 114, 118, 115, 145, 118, 140, 136, 130, 126, 131, 107, 119, 138, 112, 115, 138, 112, 121, 141, 133, 144, 131, 126, 124, 122, 123, 128, 130, 128, 121, 140, 116, 117, 112, 125, 123, 120, 118, 138, 127, 134, 118, 125, 138, 128, 126, 118, 109, 129, 112, 126, 127, 113, 116, 130, 134, 135, 131, 138, 135, 139, 148, 124, 130, 142, 119, 128, 111, 105, 111, 119, 113, 127, 137, 116, 122, 147, 122, 122, 108, 123, 118, 116, 137, 116, 130, 130, 115, 129, 135, 117, 117, 110, 136, 122, 117, 130, 116, 126, 128, 114, 132, 124, 121, 137, 133, 130, 132, 121, 119, 113, 130, 134, 126, 141, 121, 131, 139, 137, 141, 123, 136, 122, 121, 118, 116, 141, 111, 124, 109, 110, 135, 136, 124, 133, 127, 124, 138, 123, 127, 133, 132, 110, 118, 128, 128, 119, 107, 149, 141, 124, 129, 119, 123, 143, 125, 131, 121, 131, 131, 118, 132, 118, 138, 124, 116, 125, 134, 112, 125, 148, 112, 129, 121, 126, 140, 122, 128, 123, 130, 123, 125, 117, 111, 130, 121, 122, 121, 140, 127, 136, 138, 116, 125, 132, 132, 112, 112, 144, 127, 125, 127, 115, 108, 128, 133, 116, 129, 140, 123, 127, 127, 126, 138, 127, 115, 114, 109, 134, 133, 117, 142, 131, 157, 118, 120, 139, 144, 113, 111, 116, 123, 121, 118, 119, 129, 123, 117, 129, 115, 134, 102, 125, 145, 143, 119, 144, 99, 120, 127, 101, 144, 126, 108, 127, 130, 134, 126, 135, 123, 99, 125, 105, 101, 143, 128, 140, 137, 109, 103, 128, 104, 138, 107, 128, 124, 114, 131, 120, 123, 127, 114, 125, 136, 122, 134, 118, 144, 127, 111, 120, 121, 121, 121, 131, 124, 111, 120, 121, 118, 114, 130, 143, 129, 123, 139, 118, 119, 122, 121, 132, 134, 124, 130, 131, 134, 117, 120, 117, 132, 144, 125, 124, 119, 118, 121, 128, 128, 134, 130, 148, 122, 126, 121, 112, 137, 121, 111, 114, 127, 143, 127, 127, 125, 116, 130, 113, 114, 118, 116, 119, 122, 127, 109, 121, 126, 150, 125, 123, 113, 112, 118, 110, 115, 130, 118, 133, 126, 134, 130, 133, 135, 122, 120, 118, 118, 140, 136, 124, 139, 147, 116, 128, 118, 125, 120, 120, 110, 141, 124, 123, 116, 125, 121, 122, 135, 127, 118, 139, 136, 117, 141, 144, 118, 110, 98, 127, 132, 119, 130, 124, 128, 124, 122, 115, 124, 116, 134, 110, 130, 139, 133, 122, 128, 115, 121, 134, 133, 123, 123, 132, 118, 128, 130, 113, 108, 131, 118, 125, 136, 140, 129, 126, 123, 131, 123, 126, 138, 108, 129, 124, 122, 112, 116, 105, 110, 122, 111, 127, 113, 132, 119, 135, 125, 134, 132, 117, 116, 125, 130, 121, 126, 131, 116, 144, 110, 100, 141, 129, 122, 134, 122, 115, 135, 158, 113, 129, 106, 120, 129, 118, 155, 133, 130, 103, 118, 125, 132, 130, 134, 109, 117, 110, 120, 139, 143, 144, 117, 121, 138, 123, 124, 122, 149, 129, 145, 120, 122, 144, 114, 109, 127, 122, 123, 115, 104, 131, 130, 117, 120, 129, 116, 103, 117, 124, 116, 129, 120, 142, 131, 119, 133, 120, 137, 120, 117, 141, 123, 137, 108, 125, 133, 126, 127, 113, 159, 128, 128, 139, 150, 125, 120, 129, 139, 121, 119, 109, 112, 113, 127, 121, 137, 106, 133, 123, 129, 132, 129, 123, 127, 124, 112, 119, 128, 125, 114, 90, 128, 114, 126, 122, 103, 131, 131, 120, 140, 133, 116, 125, 120, 153, 105, 117, 135, 127, 140, 113, 129, 149, 131, 131, 113, 133, 130, 122, 119, 127, 128, 122, 135, 130, 114, 113, 146, 120, 137, 127, 111, 150, 112, 124, 130, 124, 112, 123, 116, 130, 132, 136, 148, 142, 122, 152, 136, 119, 116, 136, 142, 120, 148, 114, 115, 132, 146, 112, 143, 127, 115, 118, 131, 130, 121, 139, 128, 144, 132, 134, 138, 123, 127, 150, 109, 124, 103, 137, 110, 127, 132, 132, 117, 125, 115, 138, 139, 151, 125, 131, 116, 130, 131, 116, 119, 137, 135, 122, 140, 130, 136, 141, 121, 124, 137, 145, 120, 120, 112, 141, 126, 137, 129, 108, 121, 140, 145, 123, 110, 122, 119, 131, 131, 121, 110, 126, 117, 123, 132, 100, 120, 104, 126, 125, 135, 145, 135, 130, 108, 128, 122, 117, 132, 142, 130, 106, 138, 127, 127, 121, 117, 133, 129, 135, 117, 117, 125, 112, 129, 126, 109, 125, 127, 97, 105, 135, 121, 114, 124, 123, 133, 122, 144, 128, 98, 121, 124, 119, 124, 137, 125, 131, 108, 122, 132, 127, 109, 125, 142, 140, 129, 126, 109, 124, 122, 112, 104, 127, 129, 114, 123, 145, 135, 135, 123, 126, 139, 126, 132, 120, 122, 119, 132, 124, 143, 106, 133, 110, 113, 140, 119, 120, 131, 130, 111, 112, 138, 110, 142, 118, 149, 114, 121, 145, 121, 120, 137, 113, 126, 132, 111, 133, 122, 125, 132, 123, 119, 122, 127, 115, 125, 117, 140, 140, 130, 128, 132, 132, 132, 117, 129, 114, 124, 139, 103, 120, 125, 113, 124, 124, 119, 135, 113, 145, 108, 131, 147, 132, 133, 126, 132, 116, 131, 116, 134, 124, 134, 134, 118, 135, 120, 115, 140, 126, 112, 122, 129, 128, 113, 118, 105, 115, 137, 136, 103, 140, 120, 138, 113, 121, 129, 115, 135, 118, 120, 132, 119, 115, 126, 145, 125, 129, 135, 136, 109, 134, 117, 121, 127, 118, 125, 111, 121, 139, 112, 113, 127, 125, 118, 126, 129, 131, 112, 121, 133, 130, 131, 112, 124, 128, 115, 126, 138, 125, 139, 112, 129, 135, 128, 128, 138, 114, 120, 124, 132, 139, 146, 123, 128, 125, 115, 108, 121, 110, 106, 140, 117, 114, 126, 110, 146, 137, 134, 121, 138, 159, 112, 108, 123, 123, 117, 121, 136, 124, 120, 134, 110, 132, 132, 124, 151, 112, 126, 129, 124, 125, 122, 141, 132, 124, 138, 117, 141, 109, 123, 131, 121, 138, 125, 133, 126, 122, 123, 120, 97, 117, 131, 112, 130, 116, 123, 127, 115, 136, 125, 136, 104, 102, 136, 125, 125, 134, 118, 125, 118, 113, 113, 128, 129, 138, 94, 138, 124, 110, 111, 130, 142, 102, 116, 107, 141, 129, 146, 115, 108, 128, 135, 153, 137, 121, 117, 137, 121, 127, 122, 130, 127, 130, 140, 116, 135, 137, 134, 105, 116, 111, 103, 144, 116, 132, 126, 122, 137, 118, 107, 125, 117, 99, 121, 107, 109, 137, 127, 134, 120, 115, 130, 127, 129, 121, 123, 134, 123, 132, 118, 130, 136, 124, 109, 144, 127, 120, 141, 97, 114, 137, 102, 147, 125, 132, 127, 126, 102, 129, 117, 130, 126, 131, 125, 121, 128, 135, 126, 129, 125, 129, 121, 130, 121, 117, 148, 116, 144, 121, 109, 115, 116, 131, 133, 129, 113, 133, 124, 109, 109, 144, 122, 114, 129, 119, 109, 137, 138, 130, 120, 116, 128, 142, 132, 114, 136, 124, 120, 95, 118, 119, 130, 132, 122, 115, 120, 116, 126, 119, 130, 124, 114, 104, 133, 140, 118, 116, 122, 136, 111, 118, 111, 125, 112, 124, 121, 126, 118, 123, 137, 115, 123, 142, 125, 119, 129, 132, 130, 140, 128, 138, 123, 132, 131, 131, 128, 132, 124, 125, 133, 121, 133, 129, 130, 136, 127, 116, 123, 101, 116, 138, 130, 123, 136, 123, 143, 128, 138, 128, 127, 138, 129, 133, 137, 127, 128, 122, 144, 122, 116, 146, 116, 114, 128, 120, 116, 119, 109, 125, 121, 140, 122, 147, 124, 134, 124, 128, 123, 123, 129, 146, 125, 135, 134, 108, 109, 121, 122, 124, 120, 116, 107, 128, 142, 140, 116, 127, 136, 113, 142, 126, 124, 130, 137, 133, 138, 126, 113, 136, 121, 113, 96, 131, 120, 115, 123, 135, 130, 125, 139, 126, 115, 129, 114, 128, 121, 126, 127, 116, 124, 106, 131, 119, 105, 130, 115, 114, 121, 118, 118, 124, 111, 135, 130, 111, 141, 120, 99, 110, 121, 146, 123, 125, 141, 118, 91, 125, 120, 137, 123, 125, 115, 120, 143, 112, 137, 124, 123, 121, 120, 119, 124, 133, 106, 119, 124, 145, 136, 135, 128, 142, 127, 130, 104, 112, 135, 121, 113, 124, 121, 127, 143, 122, 135, 128, 120, 123, 105, 125, 121, 134, 117, 116, 117, 115, 127, 121, 101, 122, 110, 145, 118, 133, 116, 129, 110, 122, 133, 125, 139, 113, 123, 117, 116, 118, 127, 130, 111, 122, 137, 139, 121, 128, 123, 109, 125, 128, 144, 125, 131, 110, 124, 125, 125, 122, 127, 116, 137, 117, 127, 114, 130, 132, 113, 125, 133, 142, 110, 127, 120, 110, 124, 118, 126, 151, 142, 114, 111, 128, 116, 129, 125, 119, 125, 115, 119, 134, 125, 120, 129, 132, 113, 126, 138, 151, 129, 134, 123, 133, 126, 109, 121, 140, 124, 105, 95, 127, 127, 132, 126, 132, 122, 118, 132, 134, 120, 134, 128, 115, 130, 123, 103, 113, 130, 133, 123, 118, 108, 140, 137, 108, 128, 113, 115, 120, 117, 123, 137, 139, 126, 118, 138, 125, 130, 123, 130, 124, 126, 134, 120, 132, 139, 118, 127, 122, 126, 111, 120, 117, 132, 141, 139, 120, 145, 115, 116, 116, 140, 144, 125, 121, 142, 129, 126, 134, 123, 136, 113, 111, 115, 117, 113, 129, 122, 115, 141, 143, 143, 113, 142, 138, 116, 130, 146, 123, 127, 117, 119, 137, 135, 122, 116, 127, 116, 131, 109, 129, 116, 132, 128, 123, 124, 133, 119, 131, 124, 126, 115, 132, 143, 119, 117, 136, 119, 132, 121, 121, 147, 133, 121, 111, 135, 136, 118, 129, 125, 124, 139, 122, 137, 143, 123, 133, 132, 123, 111, 120, 135, 114, 128, 121, 133, 138, 94, 109, 114, 127, 110, 142, 111, 119, 120, 130, 122, 119, 117, 138, 133, 105, 108, 133, 144, 140, 135, 102, 140, 134, 132, 126, 127, 129, 137, 113, 129, 127, 119, 118, 147, 118, 124, 117, 137, 117, 106, 105, 140, 141, 122, 120, 118, 121, 132, 127, 131, 138, 127, 143, 128, 114, 100, 129, 127, 115, 123, 136, 117, 138, 122, 110, 128, 130, 107, 119, 141, 131, 128, 112, 116, 138, 140, 114, 128, 122, 128, 109, 125, 132, 118, 119, 125, 132, 125, 124, 108, 111, 117, 112, 125, 119, 123, 123, 137, 146, 121, 121, 121, 122, 135, 136, 128, 134, 134, 128, 119, 108, 139, 127, 118, 163, 134, 121, 141, 116, 119, 118, 135, 122, 126, 116, 124, 124, 120, 122, 134, 117, 128, 113, 127, 128, 130, 126, 120, 121, 117, 126, 131, 108, 161, 141, 121, 124, 122, 130, 134, 137, 138, 111, 122, 135, 123, 137, 126, 109, 128, 117, 114, 117, 143, 126, 118, 126, 117, 129, 120, 119, 120, 119, 123, 125, 120, 119, 128, 123, 140, 128, 122, 127, 133, 131, 122, 127, 115, 130, 108, 128, 113, 120, 128, 133, 127, 137, 113, 117, 134, 114, 137, 125, 112, 136, 130, 132, 142, 134, 106, 114, 128, 132, 126, 132, 119, 128, 122, 141, 125, 129, 116, 111, 123, 129, 125, 121, 130, 113, 127, 112, 131, 134, 129, 134, 133, 135, 113, 148, 144, 113, 126, 144, 127, 114, 121, 139, 110, 118, 126, 123, 137, 117, 128, 131, 119, 118, 116, 120, 126, 108, 117, 115, 113, 141, 119, 114, 140, 125, 116, 139, 120, 126, 122, 118, 116, 117, 131, 125, 116, 129, 126, 130, 125, 108, 128, 116, 132, 123, 125, 118, 117, 127, 106, 113, 134, 151, 139, 109, 122, 115, 125, 115, 125, 121, 126, 124, 124, 117, 126, 109, 129, 136, 131, 121, 126, 122, 112, 133, 160, 117, 121, 118, 137, 128, 133, 124, 125, 125, 105, 104, 130, 128, 134, 160, 124, 111, 125, 148, 120, 130, 146, 134, 125, 116, 138, 120, 140, 136, 113, 137, 128, 120, 120, 132, 126, 120, 133, 117, 122, 113, 129, 143, 125, 133, 111, 115, 132, 135, 125, 124, 123, 129, 125, 126, 137, 116, 123, 114, 120, 139, 113, 114, 128, 114, 130, 137, 116, 121, 132, 127, 137, 123, 114, 120, 109, 135, 129, 134, 127, 143, 106, 140, 148, 130, 122, 115, 127, 119, 100, 130, 90, 136, 138, 93, 128, 144, 117, 136, 115, 131, 107, 121, 136, 126, 137, 137, 131, 133, 116, 119, 130, 121, 127, 125, 117, 134, 106, 103, 111, 115, 119, 120, 114, 140, 128, 126, 118, 122, 129, 119, 139, 118, 117, 125, 120, 136, 121, 130, 124, 120, 116, 122, 139, 125, 115, 133, 129, 96, 126, 123, 114, 147, 122, 110, 128, 130, 137, 110, 119, 138, 129, 106, 129, 120, 128, 109, 116, 140, 116, 147, 126, 109, 111, 131, 133, 114, 125, 100, 122, 136, 118, 147, 127, 134, 145, 120, 126, 129, 136, 127, 109, 145, 122, 118, 119, 137, 145, 129, 127, 122, 111, 121, 114, 128, 137, 123, 118, 125, 131, 122, 140, 120, 143, 131, 110, 121, 129, 129, 136, 134, 138, 117, 134, 106, 120, 132, 127, 127, 139, 125, 123, 116, 109, 113, 124, 134, 129, 120, 137, 107, 145, 132, 110, 142, 122, 107, 121, 122, 128, 132, 105, 114, 122, 127, 117, 111, 116, 109, 128, 122, 112, 113, 128, 129, 118, 116, 132, 105, 128, 113, 123, 111, 107, 128, 120, 118, 112, 135, 118, 104, 116, 120, 131, 145, 130, 128, 124, 130, 119, 134, 114, 128, 115, 107, 142, 113, 127, 116, 141, 123, 134, 123, 136, 134, 131, 123, 121, 108, 106, 119, 121, 125, 138, 121, 119, 112, 106, 127, 130, 134, 123, 132, 108, 126, 98, 122, 112, 120, 128, 116, 130, 147, 129, 114, 122, 139, 119, 120, 127, 126, 126, 112, 136, 121, 134, 135, 122, 128, 124, 121, 112, 123, 111, 130, 124, 124, 120, 119, 133, 103, 125, 131, 142, 131, 118, 120, 127, 135, 140, 131, 131, 125, 110, 113, 123, 123, 129, 127, 144, 131, 118, 112, 116, 116, 132, 145, 123, 120, 118, 134, 117, 132, 120, 130, 121, 128, 128, 113, 139, 126, 133, 130, 131, 109, 124, 135, 119, 105, 124, 117, 124, 127, 133, 132, 132, 129, 135, 131, 131, 128, 114, 126, 131, 134, 121, 136, 122, 117, 119, 137, 126, 127, 116, 118, 117, 125, 133, 130, 125, 137, 129, 147, 110, 118, 134, 114, 116, 118, 127, 124, 120, 130, 115, 114, 121, 104, 116, 131, 129, 118, 120, 115, 130, 125, 121, 118, 112, 119, 116, 114, 138, 118, 113, 138, 142, 145, 124, 131, 123, 118, 127, 114, 113, 113, 125, 146, 122, 130, 144, 133, 144, 131, 110, 128, 134, 120, 127, 110, 116, 123, 125, 131, 129, 137, 142, 136, 115, 121, 124, 119, 139, 131, 136, 126, 128, 125, 134, 123, 112, 128, 137, 125, 120, 137, 121, 137, 127, 117, 125, 120, 110, 129, 135, 113, 124, 121, 128, 125, 127, 112, 128, 135, 108, 115, 128, 118, 119, 142, 126, 126, 115, 129, 114, 100, 131, 130, 132, 136, 131, 127, 116, 120, 124, 115, 139, 127, 116, 129, 132, 131, 124, 123, 120, 120, 128, 122, 111, 131, 138, 129, 116, 137, 116, 123, 125, 129, 117, 139, 119, 123, 122, 120, 125, 111, 131, 116, 134, 130, 122, 119, 130, 131, 124, 108, 126, 126, 137, 96, 122, 141, 99, 131, 147, 108, 118, 118, 127, 136, 116, 123, 131, 125, 130, 142, 120, 129, 127, 129, 118, 114, 118, 122, 119, 112, 123, 135, 117, 114, 136, 135, 124, 119, 136, 133, 138, 127, 123, 131, 127, 134, 144, 129, 118, 136, 126, 125, 112, 135, 133, 122, 130, 127, 119, 115, 134, 131, 133, 131, 120, 120, 138, 111, 124, 159, 132, 113, 130, 121, 121, 126, 121, 104, 139, 111, 139, 123, 129, 115, 132, 125, 103, 103, 131, 124, 122, 134, 130, 130, 119, 137, 116, 133, 121, 130, 126, 129, 127, 123, 141, 126, 126, 135, 127, 125, 101, 133, 138, 126, 111, 126, 148, 133, 132, 129, 117, 118, 133, 118, 129, 119, 138, 135, 119, 144, 121, 117, 117, 122, 117, 108, 116, 114, 127, 132, 127, 117, 132, 117, 126, 129, 141, 134, 128, 129, 125, 129, 135, 125, 130, 125, 125, 132, 115, 128, 117, 145, 124, 138, 112, 128, 119, 141, 124, 135, 128, 121, 108, 131, 125, 130, 130, 126, 113, 129, 119, 131, 115, 139, 127, 131, 121, 109, 130, 139, 119, 130, 113, 98, 120, 127, 123, 139, 115, 139, 134, 132, 124, 114, 109, 149, 132, 125, 123, 133, 106, 122, 128, 129, 133, 130, 120, 113, 134, 121, 124, 136, 121, 119, 117, 124, 125, 107, 123, 105, 142, 152, 125, 115, 122, 150, 124, 147, 123, 103, 118, 128, 136, 136, 147, 112, 125, 127, 150, 121, 121, 125, 149, 124, 138, 131, 107, 137, 129, 120, 129, 116, 118, 132, 127, 128, 110, 115, 114, 131, 129, 121, 123, 129, 123, 134, 132, 128, 130, 129, 127, 136, 119, 118, 101, 129, 111, 136, 156, 125, 112, 112, 111, 116, 128, 118, 132, 123, 109, 135, 125, 124, 137, 107, 113, 142, 132, 134, 118, 136, 119, 144, 130, 134, 122, 118, 124, 124, 130, 125, 122, 135, 138, 114, 119, 132, 141, 126, 129, 136, 129, 141, 130, 125, 127, 124, 132, 131, 142, 109, 122, 136, 125, 120, 124, 116, 153, 116, 141, 137, 127, 132, 126, 124, 120, 138, 140, 124, 127, 127, 119, 137, 132, 128, 128, 125, 123, 132, 129, 123, 135, 149, 126, 120, 134, 117, 130, 137, 136, 129, 143, 130, 114, 105, 123, 121, 129, 134, 118, 121, 101, 131, 132, 119, 121, 129, 139, 103, 120, 135, 134, 140, 115, 129, 120, 105, 119, 118, 160, 125, 136, 117, 139, 122, 142, 119, 128, 119, 135, 122, 130, 116, 133, 128, 124, 113, 128, 127, 124, 117, 115, 132, 139, 131, 128, 108, 128, 135, 117, 123, 139, 114, 123, 121, 131, 126, 127, 125, 142, 141, 111, 126, 141, 136, 129, 115, 125, 122, 120, 128, 155, 121, 113, 117, 132, 129, 114, 130, 114, 138, 129, 142, 139, 130, 122, 128, 117, 122, 136, 123, 126, 111, 126, 125, 126, 117, 130, 110, 114, 117, 131, 128, 126, 138, 113, 132, 122, 108, 147, 102, 134, 110, 140, 136, 128, 131, 121, 145, 139, 125, 129, 123, 120, 128, 116, 130, 126, 112, 122, 122, 125, 130, 119, 130, 126, 135, 136, 124, 133, 130, 128, 123, 126, 104, 135, 122, 136, 119, 127, 107, 137, 124, 135, 132, 139, 151, 123, 127, 103, 128, 113, 121, 122, 138, 133, 122, 118, 120, 124, 139, 124, 119, 125, 119, 127, 138, 122, 132, 123, 127, 125, 119, 113, 116, 136, 119, 124, 141, 164, 129, 129, 121, 129, 121, 104, 132, 103, 119, 111, 127, 119, 110, 121, 116, 125, 110, 147, 124, 134, 106, 138, 135, 123, 128, 132, 123, 125, 128, 110, 123, 123, 133, 142, 112, 126, 134, 126, 130, 135, 106, 119, 133, 133, 124, 127, 122, 120, 122, 115, 136, 108, 139, 133, 127, 126, 106, 136, 137, 121, 116, 129, 125, 131, 126, 118, 130, 133, 117, 136, 132, 109, 125, 110, 127, 120, 121, 148, 130, 114, 140, 111, 121, 129, 131, 123, 131, 111, 117, 127, 116, 123, 116, 128, 91, 132, 112, 130, 109, 106, 128, 147, 120, 121, 118, 139, 127, 145, 130, 122, 154, 118, 139, 101, 134, 122, 130, 114, 145, 125, 126, 123, 123, 115, 131, 128, 141, 131, 136, 132, 121, 129, 129, 110, 110, 129, 134, 128, 132, 123, 123, 125, 145, 132, 117, 116, 129, 131, 121, 138, 126, 127, 123, 130, 121, 131, 117, 141, 141, 121, 141, 130, 136, 129, 117, 124, 120, 115, 125, 138, 124, 132, 134, 140, 140, 124, 110, 139, 131, 128, 153, 114, 130, 132, 128, 127, 135, 115, 124, 129, 115, 112, 142, 125, 122, 133, 106, 126, 140, 133, 132, 141, 119, 137, 110, 139, 130, 108, 132, 125, 146, 115, 107, 126, 118, 121, 133, 117, 108, 127, 139, 118, 139, 124, 118, 141, 110, 115, 147, 129, 132, 138, 128, 125, 112, 120, 141, 129, 129, 139, 127, 141, 125, 130, 135, 123, 124, 130, 116, 153, 105, 111, 122, 134, 124, 121, 118, 146, 117, 132, 131, 131, 123, 128, 112, 139, 130, 118, 124, 128, 132, 132, 129, 130, 124, 125, 127, 112, 129, 112, 128, 129, 138, 130, 125, 114, 128, 135, 120, 130, 115, 140, 127, 133, 118, 128, 121, 132, 122, 120, 128, 117, 114, 123, 133, 125, 120, 130, 141, 113, 129, 118, 126, 122, 129, 131, 138, 124, 139, 123, 124, 117, 127, 121, 115, 133, 101, 117, 121, 130, 124, 120, 119, 133, 131, 125, 102, 106, 120, 124, 112, 123, 136, 128, 125, 122, 146, 131, 133, 101, 136, 124, 117, 129, 137, 117, 121, 129, 135, 121, 130, 134, 125, 119, 136, 145, 129, 119, 115, 134, 127, 121, 128, 120, 114, 124, 121, 116, 157, 139, 119, 129, 136, 127, 124, 124, 123, 125, 151, 120, 130, 130, 133, 111, 114, 120, 124, 137, 134, 129, 128, 121, 141, 120, 147, 126, 120, 123, 111, 111, 142, 128, 146, 125, 120, 129, 121, 110, 126, 136, 131, 117, 114, 145, 110, 131, 125, 123, 117, 122, 114, 99, 129, 131, 138, 141, 125, 126, 124, 115, 130, 132, 100, 113, 116, 123, 122, 127, 134, 120, 116, 109, 137, 124, 131, 122, 125, 141, 109, 133, 109, 121, 117, 122, 143, 132, 122, 126, 122, 128, 113, 126, 130, 144, 128, 121, 126, 130, 115, 132, 121, 144, 146, 121, 133, 106, 129, 120, 129, 139, 98, 113, 131, 129, 121, 142, 114, 123, 131, 136, 127, 137, 124, 123, 112, 117, 134, 121, 121, 124, 121, 125, 130, 123, 121, 124, 110, 131, 141, 140, 127, 113, 133, 126, 128, 134, 133, 129, 109, 136, 112, 101, 120, 111, 119, 143, 113, 124, 127, 128, 131, 117, 123, 136, 118, 141, 129, 132, 118, 130, 109, 134, 133, 140, 134, 143, 136, 115, 117, 140, 139, 120, 146, 119, 120, 119, 125, 118, 134, 131, 130, 113, 121, 130, 117, 145, 114, 127, 127, 120, 97, 124, 119, 109, 127, 128, 118, 115, 123, 154, 133, 131, 134, 114, 132, 138, 131, 123, 130, 131, 138, 142, 112, 132, 119, 139, 121, 136, 125, 117, 126, 126, 152, 139, 123, 129, 119, 135, 122, 111, 130, 127, 133, 127, 116, 124, 115, 136, 123, 124, 111, 124, 124, 132, 130, 125, 132, 114, 128, 126, 143, 119, 146, 109, 131, 144, 114, 130, 136, 125, 126, 118, 118, 118, 124, 117, 118, 132, 116, 139, 115, 118, 144, 131, 127, 130, 92, 125, 127, 125, 143, 141, 90, 134, 131, 113, 140, 131, 128, 111, 127, 125, 122, 121, 127, 114, 121, 124, 121, 127, 112, 132, 136, 128, 128, 121, 117, 123, 126, 145, 119, 106, 114, 126, 122, 121, 136, 123, 114, 119, 132, 131, 123, 121, 139, 114, 137, 118, 130, 122, 130, 123, 121, 136, 133, 123, 134, 123, 130, 127, 130, 106, 148, 148, 117, 146, 138, 117, 111, 126, 137, 134, 132, 136, 131, 129, 142, 123, 141, 148, 130, 128, 123, 135, 126, 152, 126, 129, 120, 121, 125, 122, 130, 135, 131, 139, 120, 135, 150, 127, 138, 123, 119, 128, 128, 130, 131, 127, 128, 116, 135, 125, 118, 112, 140, 113, 126, 135, 143, 135, 127, 114, 132, 119, 113, 142, 118, 126, 134, 132, 140, 132, 147, 139, 122, 132, 112, 136, 119, 125, 119, 115, 130, 131, 131, 130, 116, 118, 112, 115, 114, 118, 122, 121, 136, 131, 129, 114, 132, 110, 113, 144, 135, 141, 111, 116, 117, 132, 132, 105, 131, 118, 120, 120, 127, 132, 127, 122, 120, 120, 110, 119, 125, 111, 125, 122, 127, 128, 142, 144, 137, 117, 128, 128, 113, 144, 135, 109, 119, 125, 118, 119, 109, 126, 121, 132, 130, 132, 116, 123, 123, 129, 145, 147, 141, 140, 117, 105, 126, 127, 114, 141, 99, 118, 118, 137, 127, 129, 124, 127, 115, 115, 118, 106, 112, 126, 144, 123, 141, 137, 122, 135, 124, 117, 128, 143, 109, 153, 116, 99, 127, 119, 122, 138, 133, 118, 138, 135, 131, 127, 112, 124, 108, 114, 120, 138, 119, 130, 114, 112, 125, 116, 123, 110, 148, 126, 123, 130, 140, 121, 103, 120, 124, 143, 131, 126, 145, 105, 129, 130, 122, 132, 124, 120, 123, 118, 138, 125, 128, 127, 130, 121, 117, 120, 138, 127, 143, 115, 123, 112, 130, 128, 119, 121, 119, 123, 130, 111, 124, 117, 132, 125, 134, 135, 143, 149, 115, 128, 117, 123, 124, 136, 116, 119, 120, 117, 132, 116, 124, 116, 134, 125, 124, 129, 105, 133, 151, 133, 117, 116, 132, 120, 114, 110, 120, 130, 100, 126, 128, 140, 134, 113, 130, 116, 125, 144, 131, 127, 125, 133, 120, 139, 114, 106, 136, 117, 101, 136, 129, 131, 131, 120, 127, 127, 120, 127, 119, 98, 119, 115, 126, 120, 133, 154, 145, 130, 131, 136, 118, 128, 133, 128, 127, 125, 136, 125, 116, 124, 136, 127, 130, 133, 126, 139, 128, 135, 110, 129, 140, 112, 143, 138, 125, 115, 128, 111, 124, 139, 144, 143, 133, 126, 133, 141, 145, 123, 128, 109, 136, 126, 120, 139, 121, 119, 122, 126, 119, 118, 115, 125, 111, 146, 127, 120, 132, 122, 121, 106, 133, 138, 117, 121, 112, 129, 123, 123, 133, 115, 123, 137, 133, 138, 112, 112, 108, 144, 111, 126, 145, 123, 126, 116, 133, 122, 110, 131, 126, 128, 117, 132, 139, 132, 129, 125, 114, 125, 112, 125, 130, 125, 139, 137, 140, 131, 133, 115, 113, 123, 144, 144, 126, 115, 130, 129, 124, 142, 139, 129, 120, 143, 115, 136, 136, 123, 128, 118, 108, 122, 112, 116, 126, 116, 107, 124, 113, 116, 124, 123, 137, 116, 117, 84, 141, 143, 123, 104, 120, 122, 129, 138, 134, 148, 146, 120, 143, 131, 111, 117, 107, 98, 127, 130, 102, 125, 128, 122, 114, 120, 124, 130, 140, 124, 132, 119, 128, 98, 124, 133, 131, 127, 112, 111, 106, 133, 142, 101, 127, 131, 114, 128, 122, 134, 111, 123, 124, 118, 131, 108, 143, 105, 115, 97, 109, 123, 141, 123, 123, 125, 112, 108, 121, 126, 130, 128, 116, 120, 140, 132, 127, 131, 111, 130, 123, 122, 136, 124, 133, 130, 130, 134, 117, 137, 119, 121, 133, 125, 126, 127, 123, 112, 122, 114, 122, 130, 136, 137, 137, 122, 120, 115, 147, 129, 130, 107, 137, 120, 123, 138, 122, 117, 143, 119, 135, 113, 96, 115, 117, 121, 103, 118, 132, 125, 124, 120, 97, 127, 133, 116, 116, 111, 127, 126, 133, 114, 127, 122, 131, 115, 148, 122, 136, 108, 112, 128, 136, 123, 128, 124, 131, 139, 125, 127, 145, 121, 128, 123, 133, 123, 129, 122, 139, 129, 116, 113, 118, 99, 131, 110, 120, 131, 125, 129, 129, 136, 120, 141, 117, 118, 136, 127, 124, 134, 122, 129, 129, 124, 135, 134, 129, 146, 138, 124, 116, 139, 121, 136, 134, 116, 135, 106, 113, 127, 134, 132, 126, 112, 117, 105, 133, 119, 122, 118, 127, 118, 133, 143, 129, 124, 135, 110, 154, 140, 123, 135, 106, 114, 121, 127, 124, 119, 134, 118, 134, 136, 125, 120, 145, 108, 130, 124, 129, 118, 118, 132, 144, 122, 118, 126, 114, 120, 111, 147, 140, 112, 135, 145, 124, 141, 113, 144, 123, 121, 119, 118, 136, 116, 121, 126, 131, 129, 116, 125, 113, 129, 137, 123, 121, 105, 117, 143, 133, 120, 118, 130, 127, 115, 131, 123, 127, 136, 104, 144, 129, 121, 121, 121, 142, 124, 134, 125, 133, 109, 124, 134, 133, 107, 119, 134, 116, 124, 118, 123, 109, 112, 116, 112, 129, 121, 107, 122, 122, 111, 117, 115, 106, 124, 111, 128, 125, 111, 129, 124, 130, 126, 105, 106, 117, 129, 117, 140, 133, 137, 121, 133, 136, 119, 118, 138, 115, 98, 125, 115, 144, 121, 113, 132, 114, 127, 132, 135, 139, 129, 137, 111, 140, 121, 126, 135, 136, 119, 125, 121, 123, 131, 118, 133, 133, 126, 134, 117, 108, 112, 127, 124, 122, 142, 123, 119, 114, 131, 129, 121, 121, 107, 130, 130, 114, 113, 134, 130, 123, 108, 128, 122, 138, 130, 131, 133, 139, 129, 122, 102, 121, 120, 125, 109, 119, 124, 129, 114, 123, 139, 120, 135, 121, 139, 119, 113, 124, 131, 112, 122, 141, 135, 137, 135, 116, 127, 110, 123, 137, 129, 127, 127, 133, 111, 121, 127, 110, 129, 130, 146, 127, 120, 131, 103, 121, 120, 138, 128, 114, 97, 134, 119, 111, 105, 137, 117, 152, 117, 131, 119, 114, 130, 117, 141, 139, 124, 111, 135, 113, 124, 126, 116, 127, 123, 143, 127, 124, 122, 133, 123, 102, 121, 108, 143, 121, 128, 124, 138, 106, 119, 140, 134, 148, 127, 117, 138, 99, 119, 143, 149, 129, 150, 134, 104, 126, 142, 130, 128, 132, 120, 128, 130, 123, 121, 132, 116, 110, 127, 117, 120, 132, 110, 125, 118, 104, 132, 111, 112, 124, 120, 128, 114, 145, 121, 123, 122, 118, 121, 127, 139, 126, 131, 142, 117, 122, 130, 141, 123, 125, 127, 122, 122, 137, 129, 136, 135, 114, 111, 121, 128, 142, 117, 126, 115, 137, 115, 120, 132, 131, 128, 121, 134, 110, 129, 135, 119, 137, 130, 133, 115, 141, 123, 131, 123, 124, 114, 121, 125, 107, 133, 124, 120, 127, 124, 136, 105, 164, 116, 128, 124, 116, 96, 120, 136, 134, 104, 135, 136, 131, 135, 121, 133, 120, 136, 119, 120, 135, 127, 126, 124, 159, 128, 123, 113, 117, 111, 135, 125, 130, 125, 123, 118, 135, 134, 114, 108, 112, 125, 137, 126, 132, 105, 133, 134, 126, 112, 154, 120, 135, 119, 121, 131, 110, 119, 96, 134, 148, 136, 118, 123, 149, 142, 135, 117, 137, 128, 122, 121, 139, 117, 141, 143, 118, 143, 129, 126, 112, 129, 126, 140, 135, 117, 120, 131, 132, 105, 114, 117, 128, 135, 126, 105, 126, 129, 142, 119, 138, 116, 123, 137, 120, 132, 109, 107, 122, 137, 128, 119, 131, 130, 125, 130, 114, 130, 118, 131, 119, 130, 120, 123, 118, 132, 115, 130, 101, 126, 113, 136, 119, 124, 155, 140, 124, 104, 157, 123, 106, 114, 110, 112, 103, 119, 111, 126, 141, 119, 145, 121, 133, 129, 122, 123, 120, 132, 121, 130, 127, 123, 119, 104, 123, 111, 135, 122, 122, 120, 119, 137, 118, 110, 127, 128, 130, 127, 139, 129, 113, 118, 118, 127, 118, 135, 138, 139, 126, 120, 129, 121, 120, 136, 119, 121, 126, 140, 117, 121, 119, 124, 132, 153, 126, 140, 131, 138, 128, 128, 128, 130, 110, 125, 148, 121, 107, 117, 153, 149, 125, 134, 142, 118, 129, 121, 124, 131, 133, 130, 116, 140, 131, 108, 133, 131, 125, 121, 135, 148, 127, 121, 115, 124, 126, 103, 133, 133, 128, 122, 125, 122, 122, 123, 116, 127, 124, 121, 128, 124, 128, 119, 133, 134, 127, 133, 126, 136, 127, 123, 117, 130, 127, 135, 145, 117, 104, 121, 127, 113, 115, 115, 122, 124, 117, 117, 151, 122, 123, 135, 141, 128, 117, 114, 129, 118, 130, 108, 134, 111, 127, 128, 134, 141, 132, 118, 147, 127, 131, 134, 129, 129, 129, 133, 119, 126, 130, 123, 96, 130, 106, 110, 125, 148, 148, 126, 137, 117, 128, 128, 100, 111, 136, 138, 125, 122, 137, 131, 124, 105, 144, 125, 113, 123, 132, 119, 121, 132, 118, 121, 120, 125, 124, 97, 119, 117, 121, 125, 138, 111, 148, 122, 124, 110, 121, 121, 136, 140, 111, 128, 116, 117, 117, 127, 125, 117, 119, 121, 129, 130, 136, 122, 125, 135, 124, 122, 140, 122, 114, 113, 133, 131, 149, 111, 125, 116, 136, 124, 127, 116, 117, 128, 127, 124, 123, 113, 123, 114, 143, 130, 120, 129, 112, 123, 124, 146, 136, 127, 132, 141, 113, 112, 124, 124, 138, 143, 128, 142, 105, 141, 103, 123, 154, 130, 125, 121, 135, 133, 130, 122, 105, 130, 142, 95, 115, 142, 129, 122, 127, 128, 128, 126, 129, 136, 114, 132, 128, 106, 135, 120, 108, 129, 132, 118, 124, 124, 123, 113, 119, 121, 120, 125, 135, 116, 122, 117, 106, 123, 117, 129, 120, 137, 108, 124, 116, 126, 113, 144, 116, 131, 124, 130, 131, 117, 122, 120, 102, 137, 111, 119, 141, 137, 130, 125, 119, 112, 122, 112, 128, 127, 123, 123, 122, 134, 117, 139, 112, 134, 129, 106, 139, 134, 136, 125, 130, 135, 121, 142, 133, 113, 127, 140, 114, 107, 129, 119, 120, 104, 136, 121, 123, 120, 113, 101, 131, 136, 142, 118, 114, 122, 127, 136, 136, 124, 104, 136, 126, 116, 139, 118, 124, 120, 125, 124, 127, 128, 106, 131, 106, 129, 120, 118, 131, 140, 96, 113, 115, 124, 114, 119, 120, 127, 112, 145, 105, 119, 104, 130, 130, 126, 131, 122, 129, 139, 135, 127, 117, 124, 140, 104, 150, 137, 143, 121, 116, 122, 139, 128, 124, 119, 117, 129, 135, 98, 127, 130, 124, 124, 136, 126, 127, 126, 123, 120, 115, 146, 107, 130, 125, 131, 121, 122, 100, 136, 125, 126, 124, 105, 116, 135, 114, 125, 113, 149, 116, 129, 144, 117, 128, 120, 149, 131, 148, 117, 124, 122, 130, 130, 129, 141, 164, 121, 130, 120, 129, 138, 126, 129, 123, 150, 118, 122, 121, 125, 131, 103, 145, 120, 134, 116, 128, 128, 126, 120, 123, 134, 119, 135, 111, 119, 126, 107, 134, 112, 136, 126, 127, 136, 117, 138, 105, 136, 107, 127, 132, 111, 110, 110, 131, 123, 122, 130, 131, 127, 120, 99, 138, 127, 129, 122, 119, 139, 116, 123, 129, 114, 118, 110, 136, 133, 119, 130, 117, 106, 107, 124, 126, 123, 108, 126, 142, 119, 126, 132, 143, 107, 129, 123, 134, 124, 125, 119, 112, 137, 119, 133, 121, 122, 122, 120, 141, 101, 113, 122, 122, 128, 150, 128, 150, 134, 142, 107, 105, 126, 127, 127, 134, 126, 127, 124, 136, 127, 130, 118, 130, 126, 122, 139, 123, 125, 131, 127, 113, 117, 121, 115, 133, 107, 127, 113, 114, 124, 125, 109, 123, 124, 107, 120, 119, 125, 122, 129, 156, 138, 125, 109, 111, 126, 112, 124, 128, 125, 108, 128, 129, 111, 133, 124, 118, 124, 134, 126, 132, 117, 125, 123, 121, 118, 118, 125, 126, 143, 139, 131, 132, 145, 125, 144, 112, 133, 118, 135, 124, 131, 147, 116, 106, 132, 132, 124, 111, 127, 133, 127, 128, 139, 137, 144, 130, 153, 135, 114, 144, 123, 142, 129, 124, 105, 126, 128, 121, 128, 110, 138, 117, 124, 130, 126, 138, 114, 125, 128, 119, 139, 123, 129, 125, 128, 114, 145, 132, 138, 129, 140, 120, 128, 133, 133, 128, 117, 136, 131, 138, 108, 116, 105, 127, 118, 109, 124, 127, 125, 113, 117, 143, 125, 123, 156, 146, 119, 140, 136, 116, 137, 131, 125, 135, 122, 140, 124, 132, 130, 124, 117, 127, 140, 119, 121, 123, 116, 130, 128, 130, 99, 121, 124, 119, 135, 117, 159, 142, 125, 149, 136, 126, 126, 148, 126, 127, 123, 139, 135, 148, 109, 125, 132, 131, 138, 131, 137, 125, 131, 125, 124, 138, 115, 129, 122, 145, 134, 145, 122, 119, 132, 124, 145, 133, 127, 124, 134, 146, 112, 128, 118, 107, 124, 128, 127, 130, 139, 118, 113, 123, 122, 133, 123, 118, 123, 133, 120, 122, 107, 117, 135, 126, 121, 135, 147, 126, 137, 116, 112, 127, 130, 128, 124, 140, 123, 133, 116, 134, 131, 125, 130, 123, 123, 139, 115, 134, 116, 133, 117, 138, 121, 118, 118, 128, 127, 131, 139, 97, 129, 127, 135, 125, 135, 127, 126, 120, 111, 132, 117, 137, 133, 113, 137, 121, 125, 138, 113, 118, 126, 123, 136, 138, 141, 126, 129, 116, 139, 117, 134, 118, 123, 133, 136, 129, 133, 120, 127, 116, 134, 119, 124, 131, 143, 125, 139, 121, 117, 113, 134, 140, 107, 115, 135, 117, 129, 135, 117, 109, 128, 133, 138, 113, 117, 126, 134, 112, 115, 135, 123, 130, 136, 122, 138, 127, 115, 150, 125, 135, 131, 116, 130, 130, 123, 123, 128, 120, 132, 110, 125, 112, 129, 129, 115, 118, 127, 112, 126, 136, 115, 127, 123, 137, 134, 124, 130, 112, 125, 153, 138, 123, 119, 139, 133, 109, 127, 148, 118, 105, 116, 117, 124, 118, 130, 114, 120, 136, 117, 133, 123, 121, 144, 132, 141, 122, 125, 140, 135, 131, 127, 136, 113, 116, 134, 120, 118, 132, 121, 134, 142, 119, 139, 120, 143, 122, 113, 124, 126, 118, 140, 134, 124, 132, 102, 147, 119, 122, 133, 120, 111, 131, 122, 121, 132, 121, 104, 136, 109, 112, 117, 123, 142, 124, 154, 125, 128, 127, 137, 127, 143, 130, 127, 143, 127, 125, 130, 121, 117, 138, 120, 115, 119, 138, 130, 132, 125, 115, 135, 133, 116, 139, 114, 119, 113, 123, 116, 113, 102, 125, 142, 129, 116, 147, 118, 124, 128, 122, 136, 101, 145, 112, 124, 137, 130, 129, 123, 140, 124, 119, 144, 125, 140, 123, 135, 117, 122, 96, 134, 147, 110, 131, 110, 109, 112, 137, 117, 130, 121, 152, 125, 127, 125, 119, 129, 136, 117, 128, 134, 152, 118, 133, 119, 118, 127, 112, 130, 130, 137, 111, 129, 113, 137, 115, 112, 129, 120, 118, 111, 128, 136, 126, 113, 122, 141, 124, 134, 125, 129, 120, 123, 114, 133, 127, 132, 123, 152, 136, 112, 136, 129, 129, 105, 142, 130, 125, 113, 129, 120, 113, 144, 119, 117, 130, 135, 113, 138, 120, 127, 146, 138, 126, 143, 112, 122, 113, 125, 144, 123, 136, 150, 116, 123, 131, 136, 128, 125, 139, 137, 107, 126, 133, 118, 118, 129, 107, 104, 132, 118, 119, 126, 132, 109, 133, 125, 121, 125, 127, 130, 109, 123, 123, 115, 133, 123, 129, 121, 129, 123, 117, 114, 107, 118, 124, 122, 120, 111, 135, 121, 100, 109, 138, 133, 117, 125, 118, 135, 114, 127, 119, 124, 137, 119, 133, 122, 108, 138, 113, 123, 118, 120, 116, 113, 133, 120, 117, 134, 137, 104, 132, 132, 127, 126, 120, 131, 132, 112, 113, 113, 104, 128, 132, 147, 143, 147, 111, 125, 120, 117, 130, 134, 126, 120, 116, 125, 111, 118, 112, 104, 118, 133, 129, 126, 136, 138, 137, 115, 124, 114, 129, 149, 139, 149, 123, 125, 112, 129, 125, 113, 130, 115, 125, 140, 120, 128, 127, 109, 129, 132, 121, 115, 107, 129, 132, 123, 122, 132, 135, 135, 130, 145, 121, 114, 111, 115, 125, 136, 125, 123, 111, 134, 118, 122, 120, 129, 117, 122, 135, 138, 137, 133, 126, 118, 130, 139, 133, 123, 129, 137, 125, 118, 118, 100, 137, 135, 124, 134, 123, 126, 105, 123, 105, 143, 125, 141, 132, 136, 118, 133, 142, 129, 129, 125, 115, 130, 126, 131, 117, 121, 134, 123, 120, 111, 135, 122, 141, 132, 138, 135, 140, 149, 122, 136, 141, 122, 121, 114, 155, 138, 133, 116, 114, 123, 127, 137, 142, 121, 127, 117, 131, 123, 118, 125, 115, 155, 127, 124, 118, 113, 121, 114, 131, 142, 127, 99, 146, 129, 124, 123, 124, 130, 137, 108, 127, 133, 131, 141, 111, 130, 123, 120, 137, 128, 123, 147, 147, 136, 120, 126, 116, 132, 132, 122, 126, 128, 107, 138, 120, 133, 129, 136, 129, 135, 128, 131, 117, 129, 124, 110, 119, 135, 123, 120, 107, 132, 132, 138, 121, 146, 115, 122, 114, 128, 135, 114, 116, 108, 125, 122, 103, 144, 130, 143, 136, 122, 129, 120, 107, 121, 155, 123, 124, 137, 117, 129, 125, 134, 125, 139, 121, 110, 124, 114, 114, 132, 137, 123, 126, 124, 130, 133, 132, 131, 113, 139, 123, 114, 117, 129, 132, 114, 127, 132, 133, 120, 117, 141, 119, 141, 129, 132, 132, 134, 121, 103, 116, 113, 123, 110, 116, 118, 122, 139, 121, 131, 102, 122, 104, 120, 126, 129, 110, 128, 134, 124, 123, 132, 101, 125, 142, 129, 119, 113, 135, 130, 127, 127, 124, 119, 127, 117, 106, 146, 128, 122, 148, 120, 128, 119, 109, 121, 117, 101, 113, 133, 128, 137, 148, 122, 136, 122, 110, 133, 121, 134, 147, 122, 120, 140, 103, 112, 127, 112, 121, 146, 141, 115, 129, 110, 132, 125, 120, 127, 139, 140, 140, 139, 124, 105, 113, 125, 130, 106, 136, 132, 151, 120, 117, 137, 144, 131, 129, 124, 98, 118, 143, 116, 145, 105, 116, 108, 117, 135, 136, 124, 130, 113, 124, 150, 122, 122, 112, 119, 125, 124, 131, 124, 126, 108, 108, 137, 125, 106, 135, 131, 128, 120, 135, 115, 138, 118, 125, 130, 119, 108, 138, 122, 111, 134, 114, 141, 118, 120, 131, 132, 132, 131, 115, 123, 116, 138, 124, 124, 118, 139, 137, 112, 133, 133, 135, 137, 118, 128, 128, 115, 123, 145, 120, 126, 112, 123, 121, 108, 122, 112, 142, 128, 114, 125, 121, 123, 139, 118, 123, 150, 132, 144, 131, 89, 131, 131, 156, 113, 118, 117, 128, 115, 136, 136, 97, 121, 123, 113, 147, 154, 111, 110, 120, 118, 135, 128, 134, 136, 141, 131, 113, 126, 125, 111, 135, 137, 128, 129, 129, 126, 123, 116, 128, 155, 118, 124, 116, 129, 126, 132, 116, 131, 145, 118, 133, 118, 132, 130, 117, 106, 122, 128, 119, 147, 150, 114, 141, 115, 112, 125, 118, 105, 114, 121, 127, 143, 129, 119, 119, 128, 127, 130, 119, 108, 131, 128, 143, 106, 112, 119, 110, 108, 129, 141, 125, 104, 136, 128, 103, 107, 125, 128, 131, 135, 113, 130, 137, 111, 118, 127, 114, 114, 105, 137, 115, 120, 126, 108, 113, 161, 121, 119, 132, 111, 107, 109, 127, 125, 127, 121, 112, 116, 123, 130, 127, 130, 145, 124, 121, 97, 134, 111, 127, 111, 141, 112, 139, 138, 119, 129, 116, 119, 140, 132, 122, 131, 124, 135, 128, 120, 121, 131, 123, 137, 123, 119, 119, 128, 134, 123, 138, 134, 107, 114, 122, 122, 122, 93, 136, 121, 102, 142, 122, 135, 146, 131, 120, 136, 118, 124, 111, 122, 126, 125, 123, 135, 107, 137, 127, 120, 138, 154, 116, 139, 130, 139, 140, 126, 132, 140, 113, 138, 117, 126, 125, 135, 131, 140, 127, 138, 140, 118, 134, 118, 115, 131, 129, 106, 130, 104, 116, 116, 121, 114, 124, 115, 122, 138, 132, 129, 138, 127, 120, 116, 108, 145, 119, 127, 129, 126, 129, 124, 124, 135, 123, 129, 131, 123, 136, 119, 124, 136, 115, 127, 103, 139, 143, 126, 127, 131, 120, 115, 130, 112, 138, 129, 142, 120, 134, 131, 135, 115, 115, 120, 122, 117, 136, 128, 123, 117, 103, 122, 122, 100, 127, 143, 118, 122, 113, 108, 122, 121, 119, 139, 137, 109, 130, 126, 125, 115, 122, 127, 126, 126, 135, 136, 138, 115, 122, 119, 133, 119, 134, 129, 114, 133, 108, 112, 148, 122, 116, 135, 126, 119, 110, 129, 131, 129, 115, 137, 128, 135, 109, 125, 122, 117, 135, 123, 132, 121, 131, 111, 125, 123, 155, 129, 144, 142, 124, 130, 142, 139, 119, 124, 127, 136, 111, 124, 135, 132, 126, 119, 114, 150, 152, 109, 123, 125, 141, 112, 121, 117, 121, 119, 131, 133, 127, 132, 117, 119, 125, 163, 132, 135, 116, 112, 108, 122, 119, 120, 122, 129, 132, 97, 128, 119, 122, 138, 146, 123, 131, 135, 117, 120, 129, 132, 108, 122, 124, 115, 124, 128, 126, 113, 126, 125, 144, 132, 114, 121, 124, 124, 115, 129, 111, 120, 114, 127, 116, 129, 129, 116, 123, 135, 136, 135, 146, 134, 131, 117, 134, 113, 115, 128, 112, 119, 128, 100, 136, 144, 127, 123, 127, 114, 119, 139, 117, 126, 116, 117, 103, 115, 126, 139, 121, 129, 123, 125, 128, 127, 127, 128, 122, 129, 129, 117, 124, 134, 136, 134, 130, 118, 125, 140, 145, 130, 109, 116, 125, 101, 111, 126, 120, 116, 119, 113, 124, 126, 130, 98, 119, 132, 111, 110, 122, 132, 128, 102, 112, 131, 126, 131, 134, 123, 142, 148, 116, 117, 113, 106, 124, 127, 116, 118, 136, 119, 127, 159, 128, 144, 131, 126, 118, 124, 129, 112, 135, 128, 129, 124, 131, 113, 126, 112, 125, 110, 132, 129, 140, 115, 128, 125, 119, 138, 127, 119, 128, 119, 113, 126, 124, 129, 110, 107, 125, 131, 120, 130, 112, 122, 143, 114, 127, 145, 118, 119, 112, 139, 137, 103, 120, 125, 130, 139, 136, 122, 135, 137, 128, 140, 127, 109, 130, 121, 110, 117, 122, 123, 131, 120, 131, 123, 122, 107, 103, 138, 124, 123, 130, 130, 125, 126, 117, 129, 126, 118, 122, 136, 125, 119, 135, 140, 127, 147, 132, 134, 132, 131, 122, 145, 116, 100, 127, 128, 117, 114, 129, 141, 98, 124, 130, 123, 122, 132, 129, 128, 118, 108, 134, 117, 135, 130, 119, 120, 135, 128, 106, 134, 119, 118, 125, 134, 144, 117, 128, 126, 108, 132, 133, 147, 105, 130, 123, 104, 135, 124, 146, 115, 122, 162, 117, 130, 132, 125, 121, 124, 140, 122, 105, 126, 103, 134, 137, 130, 118, 129, 104, 123, 113, 117, 136, 142, 118, 113, 134, 135, 141, 130, 121, 120, 130, 132, 145, 133, 154, 136, 129, 147, 128, 117, 108, 124, 125, 126, 124, 129, 124, 135, 122, 113, 126, 118, 133, 126, 114, 114, 144, 128, 121, 131, 125, 119, 111, 128, 134, 115, 126, 123, 150, 124, 140, 111, 113, 119, 133, 121, 144, 128, 120, 118, 126, 124, 133, 123, 128, 128, 112, 121, 121, 116, 118, 131, 138, 114, 138, 122, 150, 129, 123, 112, 136, 116, 107, 143, 143, 118, 119, 119, 123, 137, 114, 125, 118, 114, 127, 95, 118, 125, 125, 119, 120, 96, 122, 124, 134, 128, 107, 122, 137, 137, 136, 137, 110, 137, 141, 114, 111, 143, 130, 124, 124, 136, 112, 114, 144, 140, 125, 115, 140, 115, 122, 121, 114, 122, 129, 110, 120, 119, 126, 126, 130, 131, 133, 118, 131, 145, 118, 136, 126, 130, 130, 135, 130, 119, 108, 125, 123, 141, 139, 122, 138, 113, 123, 121, 103, 116, 145, 134, 90, 114, 165, 129, 115, 133, 137, 119, 128, 135, 109, 134, 135, 147, 108, 128, 109, 96, 131, 139, 104, 117, 131, 112, 122, 128, 127, 134, 129, 108, 132, 108, 138, 134, 120, 135, 115, 106, 147, 134, 123, 128, 76, 102, 119, 132, 109, 129, 132, 121, 146, 123, 138, 126, 128, 123, 112, 108, 120, 126, 125, 136, 138, 130, 121, 128, 131, 117, 115, 132, 121, 126, 112, 129, 131, 114, 144, 124, 127, 128, 122, 133, 139, 131, 136, 124, 125, 114, 142, 131, 130, 133, 125, 137, 140, 115, 115, 137, 129, 110, 141, 136, 122, 115, 116, 133, 137, 126, 140, 119, 129, 136, 139, 132, 121, 119, 114, 128, 125, 115, 119, 126, 121, 119, 123, 133, 117, 127, 129, 150, 127, 153, 129, 139, 124, 126, 126, 128, 127, 137, 136, 129, 115, 115, 117, 128, 130, 123, 128, 112, 143, 122, 123, 141, 121, 131, 104, 125, 135, 127, 118, 102, 120, 122, 131, 117, 126, 120, 149, 124, 128, 99, 125, 132, 128, 138, 112, 148, 115, 119, 112, 121, 116, 123, 115, 123, 153, 119, 126, 121, 130, 110, 128, 119, 141, 138, 139, 115, 131, 131, 126, 126, 130, 131, 124, 124, 120, 140, 141, 124, 125, 122, 129, 134, 125, 117, 128, 133, 143, 144, 133, 148, 138, 117, 129, 124, 125, 135, 123, 106, 133, 107, 138, 131, 117, 115, 126, 117, 125, 114, 120, 136, 128, 112, 133, 129, 127, 114, 133, 121, 114, 133, 114, 127, 106, 119, 129, 128, 120, 119, 125, 120, 122, 118, 144, 135, 140, 116, 132, 128, 131, 136, 114, 128, 139, 112, 132, 117, 120, 122, 127, 120, 132, 126, 121, 138, 125, 136, 122, 122, 117, 118, 119, 127, 122, 138, 130, 126, 122, 124, 125, 129, 135, 131, 112, 113, 128, 142, 139, 132, 130, 116, 142, 116, 123, 110, 143, 127, 121, 109, 132, 123, 134, 115, 137, 123, 154, 113, 151, 118, 124, 102, 123, 115, 136, 119, 127, 121, 116, 123, 142, 130, 130, 116, 143, 143, 137, 133, 131, 141, 132, 117, 114, 125, 126, 113, 96, 128, 127, 133, 118, 120, 124, 117, 130, 134, 128, 127, 149, 129, 123, 115, 132, 103, 107, 118, 112, 122, 126, 129, 125, 148, 130, 118, 133, 127, 124, 130, 102, 112, 120, 136, 132, 118, 136, 134, 134, 119, 145, 109, 124, 92, 131, 129, 124, 125, 128, 141, 132, 122, 121, 135, 134, 132, 110, 128, 120, 118, 122, 109, 142, 121, 130, 113, 129, 120, 112, 126, 120, 122, 115, 125, 135, 133, 129, 138, 121, 122, 143, 117, 141, 121, 117, 137, 114, 120, 115, 126, 111, 123, 122, 120, 120, 108, 132, 144, 111, 135, 125, 121, 134, 107, 135, 141, 135, 116, 138, 146, 123, 115, 148, 140, 146, 121, 104, 131, 124, 125, 133, 148, 119, 115, 110, 98, 126, 125, 143, 141, 100, 120, 121, 123, 121, 115, 113, 116, 113, 112, 117, 128, 129, 123, 133, 124, 133, 132, 131, 106, 127, 125, 124, 137, 127, 118, 129, 136, 134, 123, 113, 120, 123, 122, 120, 131, 124, 126, 125, 124, 138, 130, 99, 142, 133, 116, 134, 136, 120, 142, 135, 132, 127, 129, 131, 101, 157, 121, 134, 106, 104, 151, 136, 129, 121, 114, 109, 117, 114, 126, 130, 109, 119, 124, 120, 121, 123, 114, 117, 141, 133, 95, 117, 121, 145, 114, 131, 114, 133, 118, 115, 132, 113, 100, 121, 132, 143, 129, 98, 104, 131, 128, 142, 107, 125, 114, 115, 131, 115, 117, 118, 133, 123, 140, 121, 111, 126, 133, 132, 106, 122, 117, 122, 143, 131, 131, 124, 134, 128, 109, 131, 134, 104, 131, 140, 122, 142, 129, 137, 106, 131, 116, 130, 122, 129, 123, 120, 104, 127, 104, 109, 138, 132, 136, 107, 115, 130, 137, 106, 110, 127, 122, 86, 137, 124, 138, 135, 130, 150, 121, 116, 129, 139, 106, 113, 131, 119, 136, 136, 120, 104, 134, 125, 134, 130, 139, 108, 121, 118, 133, 137, 149, 150, 131, 117, 115, 110, 103, 143, 123, 130, 128, 126, 127, 114, 138, 124, 123, 113, 128, 125, 127, 137, 116, 113, 105, 122, 109, 131, 130, 128, 139, 138, 130, 125, 124, 107, 127, 133, 133, 125, 120, 127, 145, 122, 125, 127, 134, 123, 115, 123, 126, 134, 118, 123, 128, 126, 133, 130, 127, 132, 122, 122, 126, 157, 143, 129, 127, 110, 129, 137, 131, 122, 125, 141, 128, 135, 143, 119, 130, 122, 122, 135, 132, 140, 124, 108, 120, 135, 123, 123, 127, 108, 131, 110, 123, 113, 126, 133, 138, 123, 128, 109, 111, 125, 127, 134, 114, 118, 129, 117, 137, 129, 116, 95, 127, 123, 127, 131, 141, 120, 133, 120, 106, 130, 122, 120, 133, 129, 125, 125, 110, 127, 107, 122, 120, 118, 144, 105, 121, 151, 124, 111, 129, 102, 128, 136, 131, 140, 107, 133, 154, 132, 121, 127, 123, 149, 141, 128, 126, 113, 140, 119, 118, 126, 134, 103, 108, 115, 125, 135, 141, 125, 119, 131, 139, 121, 125, 118, 125, 109, 129, 137, 137, 134, 130, 128, 133, 122, 138, 114, 105, 116, 130, 125, 126, 123, 114, 144, 127, 126, 125, 129, 120, 122, 122, 136, 115, 131, 121, 122, 109, 117, 127, 123, 123, 117, 135, 122, 122, 111, 137, 118, 122, 121, 129, 128, 127, 132, 126, 115, 118, 129, 133, 122, 136, 108, 153, 130, 117, 120, 114, 154, 127, 116, 136, 123, 130, 128, 113, 134, 124, 132, 117, 131, 112, 116, 133, 114, 118, 126, 137, 125, 126, 143, 136, 122, 120, 118, 131, 140, 118, 136, 127, 130, 101, 115, 112, 127, 126, 133, 114, 137, 107, 143, 118, 125, 115, 112, 112, 138, 125, 117, 99, 136, 110, 119, 116, 122, 132, 125, 119, 112, 143, 116, 129, 142, 125, 125, 127, 142, 122, 119, 117, 112, 137, 128, 137, 119, 134, 120, 120, 125, 119, 106, 116, 133, 121, 115, 123, 125, 125, 135, 118, 109, 131, 126, 117, 124, 115, 125, 123, 118, 120, 123, 142, 128, 145, 130, 133, 133, 116, 136, 116, 131, 104, 128, 125, 130, 124, 112, 131, 124, 105, 129, 140, 137, 129, 139, 132, 146, 117, 113, 156, 130, 114, 125, 122, 137, 87, 135, 116, 142, 128, 129, 127, 136, 143, 103, 131, 119, 123, 124, 141, 125, 115, 116, 136, 131, 143, 135, 134, 114, 126, 116, 126, 143, 131, 148, 122, 144, 120, 130, 144, 120, 121, 120, 129, 117, 118, 107, 123, 130, 117, 151, 119, 101, 121, 130, 128, 112, 107, 128, 121, 111, 120, 120, 130, 111, 120, 121, 154, 132, 122, 129, 139, 126, 123, 128, 140, 123, 137, 126, 114, 111, 124, 112, 119, 126, 125, 104, 134, 118, 127, 125, 110, 116, 116, 129, 130, 106, 137, 122, 117, 142, 128, 124, 119, 122, 127, 132, 126, 127, 108, 126, 145, 137, 123, 129, 131, 127, 123, 126, 113, 113, 131, 119, 121, 112, 134, 117, 136, 137, 115, 87, 130, 130, 121, 133, 131, 109, 119, 131, 130, 116, 123, 124, 104, 128, 143, 116, 119, 129, 120, 132, 119, 118, 121, 116, 132, 128, 130, 131, 137, 141, 123, 116, 121, 120, 116, 144, 124, 126, 136, 123, 122, 125, 125, 117, 132, 115, 106, 124, 128, 142, 121, 150, 138, 120, 122, 126, 109, 130, 126, 124, 120, 110, 122, 131, 127, 133, 116, 119, 135, 115, 130, 143, 144, 139, 146, 130, 113, 126, 113, 145, 119, 118, 134, 139, 124, 115, 119, 159, 133, 131, 126, 112, 106, 123, 130, 140, 116, 125, 128, 129, 122, 130, 117, 115, 108, 130, 117, 127, 104, 124, 112, 117, 141, 127, 125, 115, 139, 130, 106, 142, 107, 138, 158, 117, 115, 123, 124, 128, 125, 143, 125, 128, 127, 145, 154, 114, 115, 128, 136, 120, 131, 116, 134, 127, 115, 112, 131, 126, 116, 113, 145, 134, 123, 102, 114, 120, 120, 120, 115, 122, 121, 139, 125, 135, 103, 123, 133, 138, 147, 109, 130, 122, 117, 139, 112, 130, 135, 124, 110, 116, 129, 112, 118, 124, 132, 130, 106, 131, 123, 105, 115, 116, 113, 135, 116, 136, 133, 118, 111, 94, 138, 120, 124, 127, 126, 145, 129, 124, 129, 152, 117, 123, 119, 143, 115, 117, 130, 124, 125, 128, 114, 135, 113, 127, 129, 116, 136, 109, 140, 113, 138, 138, 126, 119, 123, 138, 138, 132, 142, 147, 130, 125, 122, 132, 119, 118, 135, 114, 153, 120, 133, 140, 121, 131, 136, 113, 128, 140, 129, 143, 121, 127, 114, 136, 128, 151, 135, 136, 125, 138, 114, 116, 123, 137, 142, 144, 130, 121, 123, 119, 145, 126, 138, 111, 125, 130, 121, 132, 144, 133, 116, 130, 126, 124, 141, 119, 138, 122, 136, 118, 135, 105, 127, 129, 150, 120, 130, 125, 113, 132, 134, 111, 131, 124, 123, 131, 133, 130, 139, 131, 130, 147, 137, 116, 108, 104, 114, 127, 128, 130, 133, 123, 129, 122, 130, 108, 135, 110, 131, 136, 114, 121, 140, 127, 118, 113, 117, 107, 133, 113, 107, 104, 139, 142, 136, 110, 119, 127, 153, 145, 136, 138, 136, 124, 140, 132, 117, 146, 120, 142, 125, 127, 117, 139, 133, 109, 118, 117, 138, 129, 106, 130, 126, 120, 119, 135, 129, 126, 129, 120, 132, 128, 129, 128, 136, 145, 122, 138, 120, 131, 129, 134, 129, 130, 132, 114, 118, 124, 136, 124, 130, 111, 123, 120, 118, 126, 133, 137, 127, 131, 128, 122, 113, 130, 118, 112, 120, 118, 127, 111, 129, 125, 124, 112, 125, 134, 116, 121, 130, 140, 126, 101, 122, 146, 124, 126, 128, 132, 127, 130, 116, 128, 115, 114, 115, 145, 103, 131, 112, 134, 132, 132, 115, 117, 118, 143, 129, 113, 125, 129, 136, 129, 127, 150, 132, 118, 132, 162, 112, 125, 136, 129, 129, 124, 144, 131, 122, 110, 117, 121, 129, 127, 109, 125, 120, 131, 142, 135, 128, 117, 123, 111, 121, 94, 127, 140, 130, 115, 124, 124, 123, 138, 120, 142, 125, 141, 131, 124, 119, 121, 120, 139, 132, 122, 133, 127, 130, 114, 156, 123, 130, 103, 142, 127, 133, 122, 115, 116, 135, 98, 121, 121, 115, 116, 113, 128, 148, 112, 123, 114, 143, 130, 131, 130, 126, 106, 103, 137, 124, 127, 120, 125, 132, 141, 136, 114, 109, 119, 132, 128, 121, 142, 128, 123, 126, 126, 128, 119, 125, 119, 115, 141, 127, 125, 117, 143, 127, 106, 109, 129, 127, 104, 137, 119, 131, 129, 98, 131, 129, 124, 106, 133, 116, 103, 137, 132, 131, 125, 133, 121, 139, 108, 115, 106, 123, 113, 129, 117, 142, 119, 151, 135, 123, 134, 125, 154, 122, 131, 134, 131, 119, 135, 130, 121, 132, 134, 141, 117, 120, 115, 130, 122, 133, 102, 121, 127, 134, 131, 115, 130, 120, 119, 117, 107, 113, 141, 118, 123, 124, 136, 143, 123, 130, 125, 120, 125, 104, 129, 123, 118, 117, 134, 111, 112, 125, 137, 127, 120, 132, 126, 117, 115, 144, 137, 125, 133, 132, 111, 116, 111, 136, 136, 120, 109, 139, 114, 120, 119, 138, 121, 120, 125, 113, 136, 126, 124, 113, 131, 132, 123, 117, 131, 122, 149, 121, 122, 130, 115, 126, 111, 131, 124, 131, 123, 144, 122, 125, 108, 118, 127, 114, 143, 123, 130, 122, 124, 106, 128, 134, 109, 117, 120, 130, 115, 140, 121, 126, 118, 135, 127, 113, 127, 119, 110, 121, 119, 125, 133, 126, 113, 118, 125, 123, 123, 120, 132, 123, 132, 132, 143, 131, 111, 123, 134, 121, 107, 128, 119, 144, 135, 123, 134, 119, 125, 135, 122, 125, 127, 139, 131, 119, 127, 115, 141, 104, 127, 130, 135, 154, 116, 117, 134, 134, 126, 123, 139, 125, 118, 121, 125, 114, 143, 126, 121, 125, 147, 123, 122, 129, 121, 137, 149, 119, 118, 125, 122, 127, 133, 143, 113, 111, 130, 114, 130, 122, 138, 115, 135, 121, 131, 136, 124, 123, 140, 139, 122, 122, 124, 119, 118, 109, 117, 128, 154, 108, 114, 124, 126, 127, 135, 117, 113, 131, 106, 108, 112, 131, 124, 119, 113, 130, 119, 112, 111, 124, 120, 147, 134, 107, 127, 139, 126, 121, 124, 123, 121, 121, 97, 129, 133, 136, 134, 131, 141, 118, 141, 134, 129, 128, 122, 122, 106, 126, 148, 133, 114, 131, 135, 111, 113, 131, 125, 118, 134, 137, 112, 137, 140, 119, 131, 130, 129, 135, 115, 147, 110, 121, 132, 121, 142, 111, 149, 116, 118, 119, 142, 136, 111, 137, 132, 121, 145, 132, 146, 131, 106, 105, 120, 138, 114, 112, 114, 132, 125, 116, 102, 119, 121, 113, 113, 106, 137, 141, 144, 108, 139, 132, 127, 109, 125, 106, 115, 125, 123, 133, 116, 128, 110, 137, 132, 119, 129, 148, 115, 128, 130, 123, 127, 124, 124, 129, 143, 108, 115, 121, 118, 111, 138, 147, 152, 128, 126, 122, 130, 128, 117, 124, 116, 114, 116, 122, 129, 125, 127, 124, 122, 123, 107, 122, 127, 117, 147, 137, 128, 128, 133, 130, 122, 124, 106, 125, 132, 156, 124, 115, 135, 131, 123, 141, 136, 126, 138, 122, 139, 143, 113, 137, 137, 141, 117, 122, 135, 130, 113, 124, 117, 136, 138, 140, 122, 112, 108, 116, 122, 133, 144, 122, 112, 123, 130, 114, 128, 109, 115, 125, 128, 123, 124, 105, 110, 124, 122, 125, 124, 139, 148, 115, 127, 125, 129, 105, 131, 118, 125, 113, 125, 114, 113, 132, 138, 130, 124, 144, 126, 121, 126, 152, 115, 147, 121, 125, 123, 112, 143, 136, 117, 126, 129, 136, 118, 138, 110, 124, 118, 115, 125, 106, 112, 125, 130, 112, 136, 132, 143, 125, 136, 120, 138, 132, 123, 119, 133, 136, 100, 126, 110, 139, 145, 134, 117, 125, 118, 125, 112, 121, 124, 139, 101, 136, 140, 120, 131, 133, 124, 119, 125, 137, 127, 112, 126, 127, 123, 134, 139, 128, 122, 123, 130, 116, 109, 131, 129, 107, 133, 132, 128, 117, 143, 135, 121, 120, 112, 111, 143, 137, 120, 134, 134, 110, 125, 115, 118, 111, 112, 125, 131, 139, 150, 121, 135, 119, 139, 127, 122, 131, 151, 120, 117, 91, 129, 107, 96, 135, 140, 124, 130, 122, 130, 126, 141, 117, 107, 128, 121, 137, 123, 119, 126, 114, 133, 138, 127, 133, 126, 124, 105, 135, 131, 115, 128, 131, 132, 132, 113, 122, 124, 124, 121, 120, 142, 136, 134, 151, 127, 120, 116, 132, 126, 138, 126, 126, 134, 107, 133, 130, 123, 147, 140, 120, 144, 118, 122, 116, 120, 143, 134, 128, 120, 140, 128, 127, 140, 122, 132, 136, 141, 131, 125, 115, 105, 128, 131, 111, 135, 113, 120, 117, 125, 124, 151, 115, 131, 135, 132, 117, 109, 130, 126, 128, 104, 130, 122, 131, 133, 117, 115, 117, 115, 122, 136, 140, 124, 135, 126, 136, 126, 129, 111, 117, 136, 107, 130, 131, 128, 121, 117, 125, 136, 111, 95, 125, 133, 126, 122, 123, 131, 135, 136, 116, 112, 132, 138, 109, 122, 132, 125, 118, 119, 133, 130, 144, 128, 112, 127, 123, 133, 123, 110, 125, 131, 140, 129, 122, 100, 141, 130, 125, 120, 111, 128, 116, 113, 116, 130, 118, 131, 126, 123, 121, 126, 118, 121, 126, 117, 119, 130, 117, 136, 123, 120, 146, 123, 119, 121, 121, 120, 134, 131, 123, 137, 139, 116, 121, 114, 111, 112, 114, 129, 149, 144, 126, 123, 123, 145, 129, 124, 113, 129, 114, 123, 102, 125, 144, 125, 122, 125, 98, 127, 127, 111, 135, 125, 114, 126, 122, 122, 126, 127, 130, 128, 127, 125, 113, 115, 114, 125, 118, 133, 141, 137, 112, 109, 106, 122, 103, 108, 130, 136, 120, 136, 107, 135, 127, 126, 128, 110, 110, 121, 114, 115, 133, 121, 122, 112, 130, 129, 105, 129, 135, 123, 108, 135, 145, 120, 134, 142, 137, 147, 112, 129, 130, 120, 134, 138, 145, 112, 137, 132, 150, 130, 131, 136, 138, 118, 138, 124, 125, 143, 134, 127, 139, 126, 125, 114, 143, 127, 117, 134, 116, 119, 134, 128, 121, 146, 123, 122, 127, 124, 114, 124, 128, 115, 139, 134, 139, 125, 116, 121, 114, 118, 109, 119, 141, 132, 117, 123, 126, 122, 120, 130, 131, 130, 152, 111, 131, 129, 125, 131, 115, 137, 112, 130, 138, 127, 133, 120, 130, 118, 135, 136, 121, 134, 131, 123, 127, 125, 131, 124, 115, 130, 129, 141, 123, 121, 133, 125, 146, 136, 125, 118, 112, 110, 114, 113, 130, 110, 121, 137, 127, 115, 140, 123, 126, 131, 129, 142, 118, 136, 117, 128, 128, 128, 131, 125, 124, 118, 116, 125, 138, 150, 132, 132, 128, 122, 128, 118, 120, 131, 126, 137, 149, 126, 118, 111, 116, 119, 126, 108, 123, 111, 134, 132, 134, 122, 124, 139, 108, 104, 123, 137, 107, 145, 126, 125, 136, 110, 117, 131, 105, 137, 130, 120, 148, 135, 117, 121, 141, 111, 125, 134, 145, 115, 132, 134, 114, 132, 115, 127, 122, 120, 147, 130, 123, 118, 120, 123, 112, 107, 119, 120, 113, 138, 127, 144, 121, 108, 111, 127, 140, 134, 116, 126, 117, 115, 124, 130, 123, 114, 107, 111, 132, 115, 138, 112, 123, 140, 126, 132, 126, 127, 111, 124, 132, 132, 133, 123, 128, 109, 115, 129, 133, 117, 152, 124, 126, 137, 139, 131, 134, 122, 139, 120, 133, 126, 132, 127, 132, 113, 150, 122, 139, 111, 110, 127, 109, 106, 133, 136, 117, 119, 139, 133, 109, 114, 132, 152, 139, 128, 137, 141, 129, 133, 126, 147, 112, 115, 125, 131, 115, 128, 107, 134, 124, 137, 133, 123, 125, 136, 129, 129, 127, 122, 112, 120, 143, 136, 146, 119, 123, 133, 134, 131, 114, 150, 121, 127, 133, 124, 129, 120, 106, 126, 125, 124, 129, 127, 110, 130, 135, 122, 116, 157, 118, 105, 129, 111, 135, 97, 116, 106, 128, 138, 125, 111, 122, 124, 124, 124, 111, 137, 116, 141, 126, 125, 109, 129, 118, 121, 122, 135, 120, 111, 131, 145, 129, 119, 121, 100, 122, 130, 138, 124, 129, 132, 118, 122, 121, 128, 108, 99, 132, 123, 113, 127, 119, 107, 117, 127, 125, 122, 120, 99, 109, 125, 134, 101, 116, 125, 138, 134, 122, 125, 120, 133, 125, 134, 132, 124, 129, 121, 118, 119, 109, 123, 111, 109, 153, 118, 112, 135, 129, 132, 140, 120, 123, 139, 98, 124, 123, 114, 128, 122, 140, 140, 126, 128, 133, 137, 105, 118, 122, 128, 136, 128, 131, 137, 128, 134, 140, 121, 145, 133, 122, 137, 100, 116, 127, 112, 126, 136, 126, 131, 107, 118, 111, 115, 132, 125, 148, 118, 124, 129, 104, 135, 146, 123, 125, 130, 129, 117, 143, 152, 136, 120, 123, 116, 127, 110, 120, 123, 122, 146, 145, 119, 116, 124, 117, 128, 115, 129, 123, 123, 126, 113, 132, 123, 116, 119, 109, 131, 124, 129, 128, 131, 130, 132, 137, 147, 135, 116, 119, 126, 125, 125, 133, 128, 140, 123, 125, 120, 108, 140, 130, 123, 114, 127, 135, 121, 140, 124, 120, 120, 124, 121, 118, 144, 114, 126, 118, 131, 133, 137, 123, 134, 121, 111, 134, 142, 125, 104, 133, 124, 141, 121, 126, 112, 113, 126, 116, 125, 129, 122, 118, 124, 132, 126, 138, 122, 141, 129, 124, 114, 122, 126, 146, 128, 148, 123, 143, 126, 134, 106, 129, 124, 146, 129, 138, 127, 124, 127, 134, 112, 144, 132, 110, 128, 143, 109, 131, 145, 146, 129, 132, 115, 109, 124, 111, 126, 108, 132, 154, 99, 125, 119, 117, 141, 134, 121, 129, 119, 119, 129, 105, 127, 95, 130, 120, 129, 132, 120, 108, 131, 126, 127, 126, 112, 110, 116, 125, 128, 114, 109, 113, 141, 133, 142, 115, 140, 135, 112, 120, 123, 130, 121, 107, 126, 130, 114, 134, 119, 124, 115, 127, 117, 132, 121, 110, 135, 132, 106, 112, 111, 148, 121, 128, 137, 112, 124, 134, 112, 127, 157, 134, 134, 119, 154, 129, 130, 112, 90, 145, 115, 125, 139, 127, 146, 128, 140, 118, 129, 128, 107, 133, 146, 115, 119, 126, 124, 141, 122, 119, 118, 120, 138, 121, 144, 130, 126, 130, 126, 116, 113, 111, 102, 120, 103, 93, 147, 124, 130, 127, 113, 120, 131, 139, 123, 129, 127, 108, 112, 127, 113, 123, 125, 109, 114, 119, 112, 138, 125, 138, 143, 145, 112, 128, 117, 132, 139, 127, 106, 126, 113, 116, 132, 132, 135, 125, 126, 139, 110, 130, 136, 127, 115, 126, 129, 122, 122, 129, 135, 129, 125, 133, 120, 123, 125, 109, 126, 105, 123, 141, 122, 119, 118, 135, 129, 108, 110, 135, 149, 125, 123, 139, 140, 127, 127, 124, 129, 109, 122, 134, 132, 114, 115, 130, 116, 131, 127, 155, 123, 126, 135, 125, 112, 129, 129, 117, 126, 119, 135, 125, 128, 134, 120, 106, 134, 123, 117, 122, 113, 127, 130, 113, 144, 124, 129, 134, 121, 122, 122, 113, 141, 140, 119, 126, 115, 118, 121, 119, 122, 120, 135, 151, 134, 118, 110, 124, 129, 136, 114, 118, 148, 132, 124, 135, 134, 131, 129, 107, 144, 144, 130, 124, 116, 104, 147, 108, 127, 132, 119, 116, 131, 122, 146, 136, 134, 154, 135, 135, 101, 130, 109, 143, 143, 130, 125, 125, 137, 123, 118, 123, 123, 144, 132, 129, 132, 125, 147, 118, 126, 123, 134, 121, 130, 105, 134, 122, 139, 140, 97, 112, 143, 132, 119, 136, 132, 125, 136, 133, 116, 125, 141, 126, 122, 108, 135, 110, 137, 129, 118, 136, 122, 119, 118, 131, 124, 116, 140, 130, 126, 136, 123, 141, 129, 150, 103, 118, 147, 138, 116, 122, 113, 111, 130, 103, 108, 101, 134, 123, 124, 131, 128, 119, 135, 121, 138, 121, 129, 134, 112, 116, 129, 101, 136, 117, 133, 121, 127, 131, 138, 126, 119, 141, 125, 116, 134, 118, 133, 124, 139, 117, 119, 140, 113, 126, 124, 117, 127, 107, 129, 127, 119, 157, 126, 120, 126, 126, 134, 112, 112, 114, 133, 105, 139, 123, 119, 128, 126, 137, 120, 134, 115, 115, 140, 132, 136, 116, 118, 135, 124, 107, 132, 132, 127, 138, 120, 139, 119, 128, 131, 112, 127, 132, 124, 118, 123, 136, 123, 132, 122, 120, 126, 123, 121, 121, 133, 126, 127, 119, 126, 116, 120, 131, 138, 123, 122, 125, 126, 129, 133, 115, 118, 123, 130, 123, 129, 123, 128, 122, 121, 125, 122, 130, 108, 129, 129, 122, 131, 136, 120, 114, 126, 124, 108, 93, 132, 124, 123, 154, 114, 131, 117, 115, 124, 114, 142, 128, 142, 125, 131, 128, 111, 138, 115, 121, 124, 133, 116, 115, 110, 130, 122, 122, 136, 143, 138, 127, 114, 112, 141, 121, 111, 106, 122, 118, 132, 118, 122, 127, 142, 118, 108, 120, 113, 126, 115, 110, 124, 133, 123, 130, 131, 114, 127, 125, 142, 113, 132, 137, 136, 127, 144, 114, 102, 123, 116, 117, 146, 119, 131, 145, 131, 133, 121, 120, 106, 122, 130, 132, 119, 104, 97, 124, 122, 122, 121, 126, 134, 127, 124, 130, 120, 117, 131, 133, 141, 105, 113, 121, 127, 122, 127, 132, 130, 128, 136, 104, 137, 102, 115, 117, 150, 119, 115, 123, 125, 113, 101, 110, 127, 125, 120, 124, 127, 130, 120, 112, 110, 135, 135, 140, 125, 108, 121, 144, 121, 131, 118, 124, 121, 133, 133, 128, 132, 131, 127, 126, 129, 96, 143, 114, 123, 129, 118, 134, 115, 120, 137, 123, 144, 133, 129, 127, 141, 128, 141, 136, 120, 126, 141, 111, 126, 121, 111, 125, 127, 116, 122, 133, 119, 143, 133, 143, 141, 121, 134, 117, 123, 136, 112, 121, 123, 137, 123, 103, 137, 133, 116, 109, 127, 113, 134, 134, 116, 135, 127, 134, 144, 127, 112, 133, 133, 107, 121, 119, 125, 124, 124, 134, 126, 146, 132, 146, 127, 141, 125, 118, 127, 128, 126, 146, 144, 129, 136, 113, 110, 106, 135, 131, 129, 116, 119, 133, 128, 123, 117, 144, 124, 150, 127, 122, 122, 122, 111, 118, 131, 132, 118, 133, 133, 124, 117, 129, 137, 118, 118, 112, 133, 134, 123, 119, 134, 132, 145, 116, 116, 133, 129, 136, 114, 133, 117, 129, 129, 124, 138, 122, 110, 140, 129, 133, 134, 130, 111, 121, 115, 96, 108, 125, 98, 112, 137, 126, 118, 126, 130, 129, 112, 127, 138, 113, 118, 118, 117, 126, 125, 113, 117, 130, 141, 108, 120, 118, 141, 106, 121, 142, 132, 122, 126, 120, 122, 135, 114, 126, 123, 126, 125, 146, 132, 104, 148, 138, 133, 117, 118, 127, 146, 101, 132, 123, 115, 118, 115, 125, 132, 132, 127, 131, 124, 123, 135, 145, 129, 125, 135, 122, 124, 132, 135, 152, 114, 120, 125, 133, 130, 114, 109, 137, 123, 126, 120, 134, 120, 110, 122, 121, 120, 115, 116, 113, 121, 120, 120, 133, 148, 130, 121, 119, 122, 124, 127, 110, 122, 132, 120, 126, 141, 128, 138, 133, 120, 135, 116, 133, 133, 134, 131, 126, 126, 139, 136, 104, 131, 122, 137, 110, 126, 135, 122, 118, 143, 114, 125, 138, 128, 129, 115, 115, 116, 138, 128, 115, 155, 137, 119, 125, 128, 112, 121, 138, 106, 129, 124, 121, 124, 124, 121, 129, 126, 121, 116, 138, 126, 111, 133, 131, 130, 118, 121, 111, 144, 131, 139, 125, 139, 126, 119, 129, 147, 142, 131, 130, 132, 124, 140, 114, 127, 126, 118, 121, 135, 123, 110, 102, 135, 119, 115, 143, 127, 130, 133, 114, 145, 112, 148, 108, 106, 113, 130, 126, 135, 121, 109, 127, 115, 105, 127, 125, 136, 128, 128, 137, 126, 132, 108, 130, 125, 100, 122, 131, 126, 123, 129, 108, 121, 123, 135, 115, 131, 127, 120, 135, 129, 119, 135, 131, 128, 130, 125, 121, 113, 132, 118, 125, 130, 128, 137, 109, 136, 125, 133, 134, 103, 132, 117, 129, 120, 127, 111, 121, 126, 124, 116, 129, 121, 120, 114, 129, 142, 136, 142, 139, 112, 98, 129, 142, 110, 123, 117, 130, 137, 132, 113, 108, 129, 117, 118, 131, 111, 127, 119, 118, 121, 107, 131, 134, 109, 118, 126, 114, 135, 151, 145, 154, 120, 136, 125, 116, 121, 119, 121, 122, 115, 151, 120, 115, 131, 111, 108, 134, 140, 124, 129, 139, 132, 116, 133, 133, 122, 138, 129, 152, 127, 113, 122, 122, 114, 117, 152, 117, 140, 139, 131, 119, 114, 121, 135, 123, 127, 125, 120, 129, 131, 145, 125, 116, 143, 128, 129, 156, 110, 153, 127, 135, 129, 128, 130, 131, 124, 108, 133, 121, 115, 125, 117, 124, 135, 131, 148, 128, 127, 133, 128, 140, 131, 124, 114, 126, 139, 100, 112, 142, 140, 130, 132, 119, 115, 118, 119, 128, 136, 131, 126, 112, 121, 131, 124, 116, 116, 141, 114, 124, 134, 126, 127, 124, 132, 131, 136, 126, 130, 125, 115, 118, 128, 121, 121, 118, 120, 130, 108, 116, 120, 132, 122, 119, 124, 127, 131, 132, 111, 131, 120, 124, 124, 121, 134, 152, 106, 142, 131, 132, 131, 119, 112, 111, 112, 144, 123, 127, 127, 122, 120, 119, 112, 126, 132, 136, 131, 144, 137, 127, 140, 121, 136, 112, 114, 117, 93, 109, 127, 142, 129, 131, 136, 139, 130, 124, 109, 135, 123, 117, 130, 138, 128, 107, 115, 127, 129, 125, 120, 117, 154, 123, 134, 118, 123, 129, 112, 124, 123, 123, 135, 136, 113, 106, 122, 123, 130, 129, 144, 102, 118, 129, 130, 117, 112, 138, 115, 118, 130, 115, 117, 121, 103, 103, 121, 128, 118, 116, 146, 130, 128, 124, 139, 116, 110, 113, 121, 141, 113, 120, 125, 130, 147, 115, 121, 121, 105, 138, 129, 132, 114, 125, 125, 137, 143, 141, 131, 120, 147, 120, 119, 144, 121, 127, 132, 103, 130, 118, 139, 123, 102, 121, 119, 131, 113, 128, 133, 123, 123, 113, 129, 125, 121, 150, 110, 137, 125, 131, 132, 128, 136, 119, 118, 112, 123, 139, 110, 109, 137, 115, 116, 118, 117, 141, 125, 135, 104, 116, 123, 122, 113, 134, 124, 111, 120, 133, 127, 120, 124, 117, 131, 132, 135, 114, 113, 125, 130, 95, 119, 125, 129, 125, 120, 119, 126, 135, 139, 116, 120, 143, 150, 142, 114, 123, 123, 120, 111, 129, 129, 137, 129, 119, 130, 141, 120, 133, 118, 127, 127, 134, 134, 117, 144, 131, 133, 129, 113, 110, 139, 119, 117, 117, 106, 127, 128, 125, 125, 107, 124, 112, 125, 118, 109, 130, 111, 127, 154, 137, 129, 130, 135, 131, 148, 105, 114, 119, 131, 129, 121, 117, 142, 132, 128, 128, 119, 125, 122, 113, 127, 118, 134, 119, 126, 131, 136, 157, 123, 116, 131, 124, 116, 126, 144, 110, 134, 117, 131, 131, 128, 141, 128, 120, 118, 122, 104, 135, 118, 120, 119, 126, 115, 124, 120, 125, 152, 114, 118, 118, 129, 125, 131, 135, 142, 122, 112, 126, 128, 119, 120, 112, 140, 123, 129, 127, 134, 116, 123, 122, 126, 121, 117, 117, 114, 134, 138, 125, 125, 125, 129, 129, 120, 109, 125, 122, 133, 130, 129, 143, 127, 117, 106, 117, 130, 115, 122, 127, 121, 117, 115, 147, 123, 133, 124, 108, 147, 126, 132, 140, 137, 118, 122, 128, 131, 139, 148, 106, 129, 131, 138, 122, 124, 121, 119, 117, 120, 130, 116, 127, 136, 141, 118, 137, 137, 121, 127, 115, 126, 122, 127, 128, 140, 126, 129, 102, 123, 115, 127, 127, 128, 129, 129, 139, 154, 136, 143, 122, 130, 121, 125, 119, 130, 132, 120, 133, 117, 122, 127, 121, 133, 121, 129, 138, 133, 134, 114, 125, 126, 120, 122, 116, 123, 127, 128, 153, 132, 123, 128, 124, 133, 108, 119, 122, 136, 140, 134, 121, 146, 124, 134, 103, 137, 108, 143, 143, 129, 128, 103, 128, 128, 117, 134, 120, 135, 125, 115, 117, 125, 122, 134, 121, 134, 131, 119, 133, 122, 140, 122, 117, 117, 124, 92, 130, 124, 142, 123, 111, 119, 137, 129, 126, 111, 125, 117, 117, 107, 119, 124, 113, 130, 116, 129, 129, 137, 93, 127, 130, 117, 116, 124, 142, 120, 123, 105, 124, 123, 121, 141, 145, 124, 126, 128, 104, 134, 124, 117, 111, 125, 130, 114, 116, 119, 128, 115, 127, 140, 113, 148, 125, 124, 119, 127, 116, 136, 126, 134, 122, 126, 119, 137, 122, 125, 151, 119, 132, 113, 114, 126, 125, 131, 128, 105, 137, 121, 127, 145, 151, 134, 128, 123, 110, 125, 131, 126, 136, 124, 121, 125, 120, 123, 132, 113, 129, 124, 139, 127, 139, 122, 130, 118, 137, 139, 120, 119, 119, 117, 121, 143, 130, 107, 124, 127, 122, 122, 126, 135, 144, 112, 124, 111, 128, 116, 130, 110, 120, 139, 128, 124, 115, 114, 136, 142, 135, 101, 124, 131, 144, 121, 122, 134, 131, 128, 121, 125, 127, 110, 111, 133, 133, 128, 136, 118, 147, 139, 138, 110, 124, 108, 141, 115, 129, 130, 120, 127, 136, 127, 121, 116, 123, 136, 121, 129, 114, 109, 102, 137, 140, 125, 127, 123, 127, 124, 132, 100, 140, 132, 125, 112, 141, 132, 129, 115, 121, 98, 121, 124, 107, 126, 123, 125, 124, 128, 115, 121, 136, 120, 125, 113, 128, 129, 122, 127, 147, 109, 132, 122, 121, 120, 124, 137, 131, 132, 127, 129, 133, 118, 136, 149, 110, 125, 133, 136, 126, 120, 120, 133, 146, 129, 130, 121, 132, 132, 129, 104, 123, 141, 115, 135, 119, 118, 121, 131, 131, 121, 120, 128, 143, 123, 111, 122, 106, 138, 135, 146, 132, 144, 109, 131, 122, 114, 119, 126, 117, 139, 129, 130, 119, 121, 140, 120, 144, 127, 125, 105, 121, 95, 140, 125, 123, 125, 126, 119, 125, 138, 138, 136, 135, 120, 121, 123, 134, 126, 124, 126, 122, 130, 133, 135, 139, 138, 128, 128, 130, 126, 109, 127, 133, 115, 120, 113, 125, 126, 120, 125, 121, 143, 141, 122, 121, 126, 129, 122, 128, 135, 133, 114, 119, 129, 131, 119, 119, 141, 119, 144, 135, 114, 126, 121, 136, 117, 115, 131, 129, 146, 137, 137, 109, 136, 138, 131, 121, 143, 117, 140, 150, 130, 110, 128, 134, 116, 122, 127, 128, 125, 123, 117, 140, 105, 126, 124, 117, 129, 141, 123, 134, 124, 124, 120, 110, 115, 129, 124, 123, 110, 125, 137, 125, 113, 108, 108, 124, 101, 117, 109, 117, 113, 112, 125, 115, 131, 148, 106, 123, 130, 129, 124, 150, 130, 122, 113, 133, 128, 128, 122, 127, 124, 129, 122, 133, 139, 140, 141, 144, 129, 118, 133, 113, 129, 143, 124, 119, 135, 133, 123, 132, 124, 124, 143, 126, 121, 128, 132, 125, 138, 127, 131, 114, 119, 126, 114, 120, 113, 131, 116, 137, 146, 136, 125, 135, 128, 110, 116, 111, 135, 132, 107, 123, 120, 112, 114, 137, 143, 140, 114, 121, 113, 134, 116, 125, 126, 99, 134, 136, 127, 113, 120, 128, 125, 135, 113, 152, 125, 124, 136, 133, 121, 120, 121, 133, 121, 112, 127, 137, 127, 108, 107, 118, 122, 136, 109, 132, 125, 126, 135, 127, 133, 119, 149, 126, 133, 123, 130, 121, 121, 114, 115, 132, 129, 120, 129, 128, 135, 117, 131, 112, 145, 128, 116, 119, 114, 126, 119, 118, 137, 128, 101, 113, 143, 120, 135, 135, 113, 127, 130, 120, 128, 120, 136, 130, 122, 124, 138, 131, 134, 111, 113, 129, 127, 145, 136, 139, 136, 121, 148, 133, 117, 116, 125, 119, 139, 131, 128, 139, 128, 130, 118, 122, 114, 120, 133, 129, 135, 113, 153, 109, 133, 137, 126, 109, 111, 108, 130, 117, 128, 130, 114, 132, 125, 131, 129, 134, 148, 129, 131, 120, 119, 135, 117, 118, 126, 123, 118, 117, 106, 107, 121, 151, 138, 111, 135, 121, 116, 131, 120, 127, 118, 134, 128, 137, 120, 132, 118, 129, 129, 133, 124, 132, 116, 113, 132, 125, 131, 144, 135, 133, 132, 140, 130, 125, 124, 124, 113, 133, 135, 134, 146, 119, 126, 112, 132, 134, 131, 140, 135, 157, 114, 121, 130, 132, 114, 129, 114, 124, 128, 121, 109, 127, 134, 111, 131, 103, 126, 143, 146, 116, 142, 137, 107, 130, 134, 116, 122, 115, 118, 142, 105, 124, 136, 128, 132, 123, 114, 125, 124, 139, 142, 134, 133, 140, 117, 132, 119, 130, 135, 108, 120, 114, 114, 134, 105, 118, 152, 125, 115, 127, 122, 122, 156, 111, 116, 117, 130, 113, 105, 120, 134, 128, 117, 93, 144, 129, 126, 129, 130, 125, 127, 127, 137, 134, 120, 138, 125, 140, 130, 150, 125, 127, 122, 131, 132, 120, 126, 132, 121, 124, 132, 120, 118, 136, 113, 120, 105, 116, 138, 114, 131, 126, 122, 139, 110, 110, 129, 125, 159, 114, 118, 124, 137, 141, 129, 113, 109, 126, 124, 127, 134, 128, 127, 136, 135, 119, 125, 140, 149, 142, 118, 121, 133, 122, 127, 151, 113, 127, 104, 137, 139, 127, 125, 107, 148, 128, 142, 118, 136, 124, 107, 128, 137, 136, 113, 120, 129, 93, 134, 142, 126, 136, 107, 135, 141, 132, 108, 144, 124, 124, 128, 102, 125, 132, 132, 135, 124, 125, 119, 127, 134, 115, 105, 114, 126, 117, 116, 138, 123, 106, 114, 134, 144, 131, 124, 114, 120, 131, 121, 123, 139, 124, 134, 124, 129, 129, 132, 127, 137, 135, 119, 117, 121, 124, 132, 133, 126, 130, 128, 140, 130, 127, 115, 130, 118, 130, 114, 120, 143, 130, 111, 131, 150, 127, 97, 133, 133, 142, 123, 104, 134, 124, 144, 115, 131, 108, 114, 130, 112, 129, 121, 123, 147, 129, 122, 132, 134, 113, 132, 111, 132, 126, 135, 116, 142, 135, 112, 130, 125, 120, 115, 139, 112, 122, 119, 139, 116, 96, 120, 125, 131, 125, 105, 125, 120, 117, 115, 122, 125, 116, 128, 118, 134, 131, 125, 129, 130, 125, 135, 138, 121, 117, 138, 119, 117, 129, 139, 128, 129, 131, 115, 142, 123, 128, 131, 114, 120, 135, 110, 106, 131, 129, 125, 124, 118, 127, 142, 128, 120, 122, 112, 128, 122, 128, 132, 126, 132, 113, 114, 118, 129, 134, 125, 127, 113, 126, 117, 129, 136, 136, 151, 121, 136, 139, 126, 132, 136, 110, 121, 130, 111, 112, 129, 130, 136, 115, 150, 131, 102, 123, 129, 128, 113, 114, 125, 116, 114, 117, 92, 151, 137, 131, 132, 140, 132, 131, 121, 116, 145, 135, 125, 125, 124, 133, 125, 133, 119, 112, 124, 127, 131, 140, 126, 117, 98, 126, 133, 136, 123, 114, 123, 129, 133, 136, 113, 129, 125, 125, 123, 132, 134, 144, 124, 122, 125, 110, 145, 118, 112, 120, 125, 119, 140, 140, 136, 137, 141, 123, 132, 121, 132, 126, 155, 109, 121, 153, 140, 140, 128, 137, 129, 146, 136, 111, 124, 122, 109, 124, 105, 119, 121, 140, 116, 103, 126, 122, 130, 127, 123, 111, 123, 121, 122, 108, 125, 112, 127, 116, 127, 112, 120, 136, 134, 109, 132, 122, 130, 127, 116, 112, 117, 116, 111, 147, 126, 127, 133, 124, 146, 140, 135, 116, 141, 125, 123, 123, 130, 123, 133, 135, 145, 123, 135, 109, 130, 125, 129, 120, 124, 122, 117, 133, 131, 135, 109, 107, 131, 121, 114, 144, 131, 141, 116, 123, 115, 151, 154, 119, 124, 133, 133, 135, 138, 130, 122, 121, 116, 134, 135, 127, 152, 121, 136, 134, 134, 128, 128, 115, 113, 113, 112, 132, 111, 130, 135, 143, 135, 119, 113, 144, 134, 118, 123, 121, 140, 121, 115, 126, 113, 134, 129, 121, 145, 123, 118, 122, 132, 129, 128, 102, 105, 127, 117, 122, 131, 137, 107, 112, 136, 111, 123, 113, 126, 131, 111, 128, 120, 119, 129, 122, 132, 133, 128, 150, 119, 125, 119, 117, 116, 122, 118, 125, 118, 139, 119, 118, 135, 126, 108, 136, 110, 137, 124, 122, 145, 117, 121, 107, 134, 135, 124, 133, 113, 136, 133, 117, 117, 123, 140, 137, 104, 128, 122, 124, 118, 130, 135, 118, 124, 121, 119, 140, 122, 137, 121, 152, 121, 123, 114, 116, 131, 118, 136, 140, 120, 120, 131, 115, 130, 127, 118, 132, 133, 99, 145, 144, 127, 115, 125, 135, 130, 116, 119, 127, 131, 149, 112, 140, 125, 128, 137, 139, 117, 152, 131, 131, 115, 149, 125, 123, 114, 135, 113, 144, 124, 119, 127, 141, 126, 122, 110, 127, 115, 131, 112, 132, 101, 100, 133, 138, 139, 117, 128, 116, 123, 124, 132, 117, 135, 125, 120, 113, 128, 133, 134, 112, 121, 139, 140, 140, 134, 140, 119, 113, 113, 131, 134, 134, 131, 114, 138, 133, 135, 140, 154, 97, 122, 108, 122, 125, 132, 109, 117, 120, 129, 120, 119, 116, 111, 123, 135, 122, 131, 124, 128, 111, 146, 116, 114, 127, 133, 136, 114, 122, 123, 118, 126, 124, 113, 97, 122, 134, 127, 128, 137, 101, 126, 117, 127, 130, 131, 123, 131, 127, 122, 119, 122, 126, 108, 119, 128, 114, 128, 138, 131, 114, 108, 118, 125, 115, 136, 112, 130, 133, 127, 132, 122, 130, 117, 125, 121, 139, 148, 133, 143, 120, 132, 133, 108, 146, 118, 116, 123, 136, 127, 128, 126, 126, 105, 124, 121, 125, 136, 123, 113, 124, 129, 131, 121, 123, 123, 136, 136, 117, 139, 154, 136, 123, 118, 107, 142, 118, 124, 117, 114, 128, 139, 136, 128, 123, 113, 125, 135, 127, 111, 123, 117, 135, 113, 131, 149, 131, 122, 122, 118, 143, 121, 115, 134, 118, 136, 130, 138, 124, 122, 116, 127, 119, 119, 132, 119, 113, 121, 144, 109, 126, 136, 126, 137, 124, 121, 114, 121, 120, 104, 154, 120, 114, 106, 122, 132, 130, 129, 132, 124, 121, 124, 127, 128, 120, 123, 138, 127, 133, 123, 110, 125, 141, 140, 132, 129, 124, 139, 148, 126, 125, 126, 120, 146, 124, 132, 107, 123, 137, 135, 129, 124, 134, 118, 120, 111, 111, 118, 124, 117, 133, 128, 125, 107, 121, 122, 126, 139, 104, 120, 117, 135, 121, 124, 113, 132, 119, 114, 112, 120, 136, 116, 129, 132, 139, 128, 132, 123, 122, 139, 110, 127, 101, 115, 123, 137, 123, 124, 114, 116, 126, 126, 111, 140, 122, 130, 123, 130, 146, 135, 113, 120, 125, 108, 128, 138, 124, 137, 116, 118, 127, 123, 126, 121, 127, 130, 118, 134, 136, 145, 126, 138, 128, 141, 133, 122, 129, 126, 108, 152, 119, 127, 148, 120, 129, 128, 116, 126, 136, 112, 137, 128, 128, 133, 130, 133, 119, 124, 124, 114, 114, 114, 136, 125, 121, 124, 131, 128, 133, 127, 123, 120, 124, 138, 138, 123, 119, 128, 110, 128, 121, 117, 106, 134, 122, 139, 121, 130, 111, 120, 122, 132, 117, 120, 126, 112, 133, 145, 128, 131, 124, 122, 105, 106, 133, 122, 121, 130, 121, 117, 130, 129, 118, 125, 129, 125, 128, 126, 96, 136, 125, 121, 111, 117, 128, 151, 135, 130, 124, 107, 130, 119, 138, 114, 127, 114, 109, 128, 125, 121, 131, 134, 141, 106, 152, 142, 121, 137, 130, 123, 117, 118, 124, 130, 152, 134, 122, 116, 130, 118, 111, 126, 125, 118, 127, 114, 131, 130, 129, 126, 108, 130, 136, 128, 140, 95, 126, 116, 120, 124, 121, 123, 117, 130, 120, 122, 137, 119, 134, 126, 124, 101, 119, 132, 123, 115, 102, 118, 124, 139, 122, 133, 111, 124, 126, 138, 149, 112, 137, 124, 124, 115, 124, 124, 132, 120, 122, 119, 125, 138, 109, 126, 133, 129, 135, 129, 128, 143, 118, 128, 107, 131, 145, 130, 143, 120, 133, 125, 107, 123, 113, 118, 119, 129, 131, 124, 112, 140, 126, 117, 130, 137, 137, 120, 116, 134, 113, 126, 132, 138, 136, 132, 117, 119, 126, 139, 120, 99, 116, 120, 120, 120, 119, 126, 133, 127, 122, 142, 131, 117, 137, 135, 120, 130, 121, 140, 127, 133, 115, 121, 124, 123, 140, 126, 139, 122, 128, 121, 136, 113, 152, 114, 119, 131, 121, 114, 129, 110, 109, 115, 131, 107, 134, 128, 122, 110, 119, 119, 114, 134, 131, 129, 114, 115, 123, 103, 135, 106, 141, 111, 122, 125, 119, 121, 122, 121, 117, 136, 110, 118, 119, 122, 109, 111, 124, 119, 137, 111, 122, 132, 132, 114, 141, 126, 137, 129, 134, 133, 122, 111, 116, 123, 125, 126, 143, 132, 143, 119, 130, 118, 126, 113, 127, 130, 134, 130, 129, 104, 135, 112, 130, 133, 131, 123, 129, 118, 157, 124, 146, 119, 140, 133, 135, 104, 131, 131, 148, 136, 131, 134, 126, 127, 120, 129, 131, 120, 124, 133, 104, 144, 121, 126, 111, 145, 116, 134, 137, 122, 121, 130, 131, 125, 126, 126, 125, 115, 126, 121, 136, 127, 123, 135, 117, 119, 121, 125, 139, 131, 124, 131, 120, 129, 125, 117, 132, 134, 111, 114, 127, 125, 142, 131, 134, 116, 122, 144, 146, 132, 125, 135, 142, 133, 130, 116, 128, 129, 143, 144, 131, 138, 107, 147, 124, 134, 141, 129, 122, 118, 139, 121, 122, 127, 114, 133, 113, 137, 133, 122, 118, 127, 145, 133, 126, 122, 128, 129, 149, 136, 122, 128, 124, 114, 123, 110, 128, 126, 96, 132, 115, 131, 128, 119, 134, 118, 128, 118, 139, 124, 134, 129, 121, 131, 126, 141, 120, 158, 126, 121, 103, 126, 110, 133, 109, 130, 112, 138, 126, 123, 113, 130, 135, 124, 119, 144, 120, 128, 130, 135, 134, 126, 126, 122, 113, 141, 134, 131, 127, 104, 127, 125, 114, 128, 120, 132, 128, 144, 123, 137, 139, 132, 134, 108, 136, 127, 143, 108, 129, 119, 128, 122, 99, 132, 131, 114, 121, 122, 122, 147, 133, 119, 119, 120, 117, 135, 111, 139, 128, 121, 139, 128, 132, 140, 134, 113, 113, 138, 117, 129, 107, 131, 117, 126, 131, 120, 136, 122, 116, 127, 132, 118, 120, 125, 115, 131, 123, 108, 123, 122, 128, 137, 106, 131, 132, 116, 121, 122, 121, 131, 122, 136, 129, 126, 133, 116, 126, 109, 135, 113, 132, 141, 124, 136, 123, 136, 132, 121, 124, 122, 138, 131, 118, 139, 129, 127, 98, 127, 127, 123, 116, 118, 121, 129, 134, 128, 127, 141, 142, 124, 144, 111, 127, 133, 126, 136, 108, 120, 115, 122, 126, 127, 125, 132, 115, 126, 92, 123, 126, 142, 117, 127, 120, 123, 112, 117, 143, 107, 134, 134, 131, 137, 125, 124, 134, 131, 113, 146, 122, 125, 116, 116, 117, 120, 106, 126, 137, 130, 121, 126, 135, 127, 123, 116, 123, 147, 134, 127, 125, 123, 134, 122, 121, 138, 145, 120, 125, 118, 124, 115, 111, 128, 127, 118, 124, 114, 119, 128, 128, 137, 134, 132, 141, 127, 135, 148, 121, 126, 148, 120, 132, 115, 120, 128, 113, 115, 143, 133, 119, 136, 120, 121, 107, 131, 126, 145, 108, 123, 125, 121, 130, 118, 133, 137, 123, 123, 121, 124, 142, 145, 136, 130, 111, 114, 115, 129, 123, 127, 132, 110, 127, 125, 143, 122, 119, 129, 120, 129, 131, 116, 122, 121, 116, 130, 128, 126, 121, 116, 120, 131, 133, 130, 160, 114, 121, 133, 120, 131, 140, 139, 130, 125, 106, 116, 109, 135, 119, 130, 122, 116, 127, 123, 144, 128, 138, 130, 133, 127, 119, 132, 125, 140, 124, 122, 105, 113, 114, 132, 131, 119, 141, 129, 118, 135, 107, 126, 131, 123, 113, 128, 120, 109, 118, 146, 134, 151, 120, 124, 127, 137, 146, 106, 136, 136, 136, 103, 125, 126, 137, 119, 132, 133, 119, 139, 117, 124, 128, 131, 101, 120, 110, 119, 124, 129, 143, 133, 133, 145, 126, 126, 146, 125, 129, 120, 135, 146, 112, 114, 129, 125, 115, 116, 117, 149, 102, 117, 127, 127, 143, 140, 123, 128, 116, 129, 132, 134, 117, 133, 126, 125, 123, 132, 110, 122, 126, 134, 119, 130, 108, 134, 140, 130, 130, 127, 127, 117, 116, 120, 137, 114, 108, 132, 104, 125, 133, 125, 126, 129, 125, 126, 121, 124, 114, 128, 127, 129, 118, 135, 105, 125, 120, 118, 110, 124, 111, 119, 112, 129, 118, 121, 121, 123, 145, 125, 128, 121, 137, 127, 106, 118, 133, 126, 121, 121, 121, 127, 126, 131, 108, 121, 131, 116, 105, 124, 111, 122, 133, 126, 133, 130, 127, 133, 113, 115, 122, 126, 111, 145, 127, 123, 122, 116, 127, 117, 131, 126, 114, 114, 119, 125, 123, 133, 120, 122, 137, 133, 145, 121, 123, 127, 125, 116, 122, 126, 121, 138, 147, 112, 101, 129, 130, 112, 125, 117, 123, 119, 114, 131, 129, 118, 125, 121, 142, 117, 113, 134, 110, 128, 142, 134, 118, 141, 139, 133, 137, 106, 105, 124, 118, 124, 114, 119, 124, 111, 119, 126, 132, 119, 117, 117, 128, 118, 114, 118, 104, 130, 133, 119, 137, 133, 115, 131, 133, 100, 99, 154, 130, 140, 113, 112, 132, 143, 116, 130, 127, 115, 114, 139, 113, 117, 142, 129, 128, 135, 106, 116, 121, 119, 128, 138, 127, 136, 122, 126, 139, 116, 132, 127, 130, 124, 120, 113, 145, 119, 124, 124, 123, 132, 141, 124, 127, 144, 124, 139, 130, 118, 134, 127, 134, 113, 143, 111, 113, 126, 126, 124, 120, 115, 116, 116, 119, 128, 129, 151, 143, 118, 121, 120, 127, 117, 128, 99, 125, 111, 110, 128, 129, 131, 111, 140, 122, 122, 116, 131, 137, 119, 120, 125, 91, 126, 140, 121, 139, 131, 128, 126, 131, 127, 129, 110, 130, 131, 128, 127, 107, 114, 140, 137, 121, 135, 121, 138, 130, 126, 121, 133, 145, 116, 114, 115, 109, 113, 139, 127, 116, 100, 126, 129, 109, 135, 130, 131, 114, 98, 120, 118, 127, 125, 136, 125, 138, 130, 123, 118, 124, 144, 143, 118, 124, 128, 129, 139, 114, 123, 109, 126, 144, 121, 115, 114, 116, 125, 134, 129, 122, 126, 141, 116, 125, 145, 125, 124, 120, 128, 131, 152, 114, 142, 134, 122, 136, 112, 120, 129, 125, 122, 131, 123, 122, 124, 134, 101, 136, 127, 120, 119, 118, 125, 128, 121, 109, 117, 133, 111, 103, 118, 115, 131, 116, 126, 117, 134, 117, 133, 118, 128, 128, 141, 121, 142, 133, 132, 130, 134, 122, 148, 112, 132, 132, 145, 116, 127, 128, 122, 106, 119, 119, 114, 121, 121, 127, 130, 140, 108, 118, 141, 138, 115, 130, 130, 131, 126, 144, 134, 137, 137, 129, 113, 129, 126, 130, 122, 126, 119, 124, 120, 122, 135, 110, 128, 123, 109, 127, 135, 134, 111, 111, 132, 152, 130, 123, 120, 125, 126, 125, 133, 120, 141, 128, 121, 138, 123, 133, 121, 148, 121, 150, 124, 109, 136, 119, 124, 137, 127, 108, 128, 122, 135, 130, 125, 111, 132, 123, 126, 132, 138, 125, 115, 122, 134, 102, 129, 130, 131, 137, 120, 131, 137, 131, 145, 106, 131, 122, 123, 124, 137, 125, 113, 129, 121, 137, 128, 119, 132, 125, 126, 124, 125, 123, 121, 125, 115, 128, 128, 115, 112, 125, 124, 134, 114, 136, 134, 127, 123, 134, 119, 121, 137, 146, 137, 135, 127, 134, 128, 115, 112, 144, 121, 114, 111, 134, 110, 118, 133, 127, 119, 139, 116, 127, 120, 132, 118, 122, 125, 126, 126, 126, 104, 125, 129, 139, 115, 119, 115, 125, 126, 116, 95, 130, 124, 131, 117, 112, 118, 126, 117, 133, 102, 123, 118, 120, 116, 126, 119, 134, 104, 112, 142, 120, 119, 141, 128, 124, 115, 111, 138, 113, 127, 128, 108, 119, 128, 146, 136, 128, 119, 114, 130, 106, 127, 136, 129, 118, 130, 125, 145, 125, 125, 128, 133, 120, 123, 122, 125, 122, 128, 125, 137, 136, 123, 107, 117, 109, 113, 131, 129, 131, 128, 130, 120, 132, 128, 129, 125, 142, 127, 122, 134, 130, 143, 119, 129, 125, 121, 123, 119, 125, 134, 128, 118, 121, 127, 120, 124, 121, 120, 128, 114, 130, 125, 126, 136, 134, 128, 149, 123, 111, 140, 140, 115, 151, 128, 108, 136, 135, 105, 117, 123, 122, 126, 131, 122, 126, 126, 130, 117, 127, 140, 121, 110, 114, 145, 123, 119, 119, 132, 134, 127, 153, 116, 108, 139, 115, 110, 122, 123, 122, 137, 126, 136, 130, 135, 121, 122, 124, 128, 118, 116, 133, 116, 144, 117, 129, 123, 126, 128, 111, 122, 115, 138, 139, 121, 129, 100, 127, 123, 138, 129, 130, 137, 144, 128, 98, 137, 126, 128, 125, 121, 126, 111, 138, 127, 120, 140, 139, 120, 123, 130, 119, 134, 116, 99, 115, 117, 104, 115, 138, 129, 145, 131, 131, 121, 130, 137, 121, 142, 130, 114, 131, 124, 119, 118, 118, 120, 130, 121, 124, 143, 116, 139, 127, 112, 119, 117, 113, 133, 122, 119, 117, 107, 118, 119, 128, 130, 130, 113, 121, 121, 142, 105, 120, 128, 115, 118, 133, 140, 124, 120, 115, 112, 121, 130, 129, 119, 109, 120, 116, 109, 115, 118, 127, 135, 126, 134, 132, 118, 122, 123, 128, 121, 136, 133, 141, 137, 117, 119, 130, 138, 118, 125, 133, 118, 131, 113, 119, 121, 116, 133, 125, 131, 126, 139, 121, 132, 125, 138, 126, 146, 114, 110, 137, 129, 121, 118, 133, 119, 127, 143, 124, 138, 123, 100, 138, 129, 105, 129, 128, 120, 147, 145, 114, 146, 139, 124, 123, 104, 121, 131, 133, 127, 124, 117, 104, 122, 124, 132, 134, 114, 130, 116, 122, 132, 135, 124, 117, 125, 133, 118, 118, 131, 110, 111, 118, 139, 116, 133, 130, 131, 131, 139, 130, 118, 117, 141, 106, 124, 133, 134, 106, 139, 126, 131, 118, 114, 133, 125, 132, 123, 130, 119, 122, 126, 119, 123, 116, 110, 112, 110, 128, 124, 130, 126, 129, 127, 102, 133, 123, 131, 128, 132, 130, 116, 138, 119, 138, 115, 115, 117, 128, 117, 139, 121, 113, 140, 126, 129, 126, 116, 136, 137, 105, 129, 131, 136, 122, 114, 124, 151, 128, 119, 112, 135, 144, 130, 130, 131, 133, 137, 133, 126, 105, 142, 148, 133, 123, 125, 127, 126, 124, 107, 132, 114, 133, 136, 127, 121, 126, 119, 139, 122, 111, 119, 115, 133, 131, 111, 125, 142, 116, 123, 133, 123, 120, 123, 133, 140, 122, 131, 132, 125, 114, 108, 118, 117, 149, 118, 118, 123, 126, 119, 124, 129, 119, 115, 131, 122, 99, 130, 122, 124, 139, 145, 120, 133, 138, 110, 112, 119, 111, 128, 138, 125, 127, 116, 119, 129, 129, 131, 112, 113, 123, 139, 119, 110, 116, 115, 115, 130, 125, 141, 121, 114, 130, 123, 126, 134, 128, 110, 104, 107, 124, 124, 124, 116, 129, 126, 140, 135, 118, 129, 118, 129, 114, 111, 122, 135, 109, 127, 136, 109, 122, 136, 119, 129, 121, 124, 148, 134, 127, 137, 134, 138, 153, 136, 122, 141, 125, 120, 125, 132, 141, 124, 116, 141, 131, 133, 131, 142, 137, 116, 136, 129, 108, 125, 130, 128, 119, 125, 122, 139, 127, 115, 129, 129, 121, 124, 125, 133, 116, 136, 122, 128, 111, 120, 105, 136, 129, 132, 122, 133, 139, 118, 140, 135, 130, 130, 119, 125, 123, 126, 133, 118, 122, 129, 133, 130, 124, 131, 126, 129, 150, 143, 116, 142, 127, 135, 126, 121, 136, 124, 121, 131, 141, 124, 123, 134, 118, 113, 128, 119, 127, 111, 127, 136, 124, 102, 132, 132, 117, 139, 121, 129, 121, 121, 133, 116, 125, 130, 124, 130, 116, 123, 117, 113, 124, 125, 131, 103, 112, 118, 135, 145, 129, 117, 140, 125, 142, 134, 122, 141, 126, 125, 133, 116, 126, 141, 145, 125, 138, 139, 136, 116, 129, 127, 120, 131, 110, 122, 141, 122, 107, 124, 134, 113, 120, 130, 131, 115, 119, 95, 130, 140, 125, 120, 140, 110, 123, 123, 127, 123, 111, 129, 115, 129, 113, 120, 104, 108, 137, 122, 129, 135, 129, 130, 129, 138, 117, 131, 123, 119, 113, 121, 128, 131, 134, 138, 128, 121, 115, 131, 96, 140, 107, 128, 130, 114, 118, 129, 125, 123, 142, 126, 119, 129, 130, 129, 120, 126, 123, 137, 117, 129, 140, 118, 122, 122, 123, 126, 150, 125, 126, 119, 120, 129, 126, 126, 133, 127, 127, 120, 137, 114, 122, 132, 129, 119, 117, 125, 96, 140, 124, 137, 128, 132, 129, 120, 123, 126, 126, 114, 121, 134, 125, 117, 126, 133, 133, 125, 135, 126, 128, 106, 131, 140, 125, 121, 112, 125, 114, 122, 129, 125, 128, 141, 118, 118, 129, 129, 103, 117, 111, 117, 115, 119, 117, 118, 125, 101, 128, 125, 131, 124, 124, 137, 113, 111, 133, 124, 126, 122, 111, 132, 125, 119, 140, 131, 126, 152, 133, 123, 120, 138, 130, 126, 122, 129, 109, 136, 139, 119, 129, 130, 120, 106, 104, 122, 134, 109, 109, 128, 131, 122, 121, 122, 150, 135, 120, 121, 116, 136, 119, 135, 129, 126, 131, 132, 126, 124, 117, 129, 143, 117, 145, 122, 141, 130, 122, 140, 121, 118, 137, 109, 118, 133, 131, 133, 117, 113, 109, 117, 139, 130, 130, 125, 128, 116, 135, 125, 125, 128, 120, 132, 138, 110, 125, 139, 119, 129, 110, 124, 128, 125, 126, 128, 119, 129, 124, 126, 116, 134, 141, 141, 135, 144, 125, 140, 129, 113, 134, 121, 120, 118, 137, 122, 137, 129, 136, 128, 108, 130, 102, 125, 118, 126, 121, 143, 119, 114, 123, 119, 113, 130, 119, 119, 126, 134, 118, 129, 128, 120, 126, 130, 129, 118, 130, 118, 128, 120, 124, 134, 115, 121, 126, 121, 129, 122, 124, 118, 134, 115, 106, 145, 126, 123, 123, 126, 124, 116, 125, 132, 126, 124, 122, 112, 119, 138, 124, 117, 118, 126, 123, 96, 129, 125, 131, 140, 127, 143, 122, 127, 109, 120, 137, 118, 128, 144, 115, 122, 122, 122, 138, 133, 118, 137, 125, 118, 140, 111, 128, 127, 116, 129, 119, 138, 108, 129, 117, 139, 116, 115, 138, 127, 136, 121, 117, 123, 124, 116, 117, 115, 129, 128, 131, 114, 128, 127, 115, 125, 135, 141, 130, 124, 126, 131, 132, 124, 119, 127, 116, 113, 116, 118, 125, 111, 116, 126, 126, 120, 137, 119, 132, 128, 128, 133, 113, 119, 119, 105, 145, 135, 128, 119, 132, 124, 138, 130, 107, 127, 132, 146, 123, 124, 142, 135, 135, 144, 139, 119, 126, 123, 146, 137, 134, 128, 122, 123, 108, 109, 121, 129, 133, 143, 121, 133, 121, 123, 120, 126, 115, 121, 146, 124, 131, 116, 115, 142, 121, 122, 121, 135, 114, 103, 136, 109, 115, 128, 152, 113, 143, 126, 140, 116, 119, 133, 135, 120, 127, 134, 125, 120, 141, 115, 124, 126, 128, 125, 129, 117, 162, 125, 106, 116, 136, 132, 129, 124, 118, 123, 117, 130, 141, 123, 130, 127, 120, 145, 131, 121, 130, 135, 121, 121, 125, 144, 128, 135, 121, 132, 127, 122, 117, 126, 113, 127, 123, 129, 120, 132, 128, 101, 135, 119, 111, 137, 127, 142, 142, 124, 126, 120, 112, 138, 126, 129, 120, 108, 135, 122, 129, 141, 129, 110, 127, 111, 131, 121, 122, 137, 117, 124, 124, 135, 119, 138, 116, 117, 109, 127, 124, 130, 126, 131, 109, 124, 131, 130, 129, 131, 132, 120, 114, 128, 139, 115, 125, 109, 123, 123, 129, 117, 125, 118, 128, 123, 138, 114, 133, 126, 129, 124, 124, 135, 113, 124, 115, 119, 118, 120, 119, 126, 135, 120, 145, 121, 127, 115, 125, 127, 130, 116, 115, 130, 134, 144, 132, 133, 133, 127, 127, 109, 125, 120, 148, 122, 129, 125, 116, 135, 110, 134, 122, 127, 129, 109, 99, 149, 119, 125, 139, 136, 131, 127, 135, 129, 119, 121, 123, 121, 132, 119, 124, 115, 124, 116, 128, 124, 136, 127, 123, 135, 125, 113, 129, 121, 116, 118, 121, 114, 143, 103, 126, 131, 141, 122, 134, 122, 112, 132, 135, 122, 128, 131, 115, 126, 124, 124, 115, 115, 115, 127, 129, 108, 141, 139, 123, 119, 129, 110, 110, 134, 115, 128, 132, 118, 128, 120, 119, 126, 128, 121, 121, 141, 110, 120, 139, 129, 125, 119, 118, 129, 129, 138, 107, 119, 103, 125, 131, 134, 113, 137, 107, 121, 113, 129, 117, 128, 114, 113, 127, 117, 124, 130, 122, 120, 129, 137, 141, 132, 125, 117, 128, 131, 132, 126, 119, 136, 107, 112, 114, 121, 125, 123, 122, 119, 122, 117, 132, 136, 137, 119, 129, 122, 146, 141, 130, 130, 118, 130, 122, 119, 126, 122, 138, 115, 136, 117, 139, 121, 132, 112, 120, 116, 115, 123, 139, 132, 121, 122, 131, 126, 123, 119, 104, 123, 128, 134, 104, 100, 101, 128, 114, 133, 111, 115, 111, 107, 102, 125, 106, 134, 135, 122, 113, 117, 104, 128, 143, 131, 120, 135, 114, 93, 128, 127, 125, 135, 129, 135, 107, 122, 126, 130, 136, 114, 141, 118, 133, 126, 130, 131, 135, 129, 122, 126, 133, 144, 124, 128, 122, 113, 115, 124, 112, 122, 140, 115, 125, 137, 129, 127, 129, 126, 155, 116, 115, 121, 129, 127, 129, 124, 130, 122, 124, 134, 126, 119, 113, 128, 132, 138, 122, 123, 148, 125, 111, 121, 122, 128, 132, 118, 136, 134, 139, 133, 126, 112, 142, 119, 138, 145, 138, 116, 121, 128, 126, 103, 122, 142, 128, 134, 115, 126, 126, 111, 115, 117, 128, 114, 128, 114, 122, 123, 125, 120, 130, 127, 129, 119, 133, 117, 125, 122, 114, 131, 113, 130, 127, 123, 127, 135, 130, 119, 121, 119, 133, 112, 117, 125, 118, 141, 130, 124, 117, 128, 124, 128, 109, 109, 137, 132, 107, 125, 134, 130, 125, 138, 140, 110, 130, 105, 129, 121, 132, 137, 131, 122, 119, 119, 130, 143, 123, 122, 109, 131, 119, 144, 129, 122, 111, 121, 137, 124, 137, 130, 119, 137, 117, 138, 123, 125, 111, 121, 134, 131, 106, 107, 123, 105, 133, 142, 119, 128, 137, 114, 120, 136, 123, 128, 126, 140, 112, 120, 118, 119, 135, 144, 140, 109, 122, 118, 130, 105, 126, 123, 135, 125, 123, 123, 127, 117, 124, 124, 118, 132, 120, 132, 132, 137, 124, 111, 121, 123, 145, 125, 123, 120, 136, 111, 128, 120, 140, 130, 124, 121, 127, 126, 124, 130, 132, 114, 114, 137, 136, 117, 108, 143, 113, 116, 142, 111, 120, 118, 132, 111, 117, 139, 145, 118, 141, 139, 121, 132, 130, 125, 122, 109, 128, 124, 142, 127, 137, 119, 123, 136, 126, 152, 120, 117, 132, 133, 123, 136, 134, 133, 139, 121, 123, 127, 107, 132, 133, 111, 129, 132, 144, 127, 119, 106, 146, 139, 126, 132, 128, 117, 125, 128, 126, 130, 116, 125, 121, 128, 123, 119, 133, 121, 114, 120, 135, 122, 119, 141, 116, 135, 141, 126, 124, 138, 130, 125, 127, 132, 139, 126, 138, 116, 112, 128, 115, 124, 132, 116, 126, 108, 130, 129, 150, 106, 119, 118, 124, 133, 138, 126, 130, 117, 132, 113, 119, 123, 115, 121, 123, 130, 130, 133, 109, 119, 111, 161, 123, 117, 136, 126, 124, 108, 152, 130, 125, 122, 132, 129, 117, 123, 120, 141, 111, 120, 125, 132, 122, 127, 121, 125, 136, 149, 129, 142, 121, 123, 119, 115, 134, 123, 112, 129, 128, 121, 115, 136, 146, 130, 128, 131, 118, 144, 130, 123, 117, 131, 123, 123, 121, 125, 140, 118, 114, 126, 140, 133, 130, 136, 121, 130, 137, 138, 106, 133, 131, 121, 129, 138, 127, 114, 118, 116, 124, 132, 125, 127, 133, 139, 116, 122, 141, 130, 131, 122, 108, 147, 112, 139, 129, 117, 117, 125, 116, 151, 135, 131, 110, 123, 125, 129, 127, 125, 125, 113, 119, 136, 126, 128, 118, 120, 119, 129, 129, 122, 122, 113, 134, 129, 133, 138, 109, 116, 133, 133, 117, 130, 126, 111, 108, 104, 132, 122, 141, 132, 124, 124, 131, 132, 119, 128, 120, 136, 121, 145, 122, 142, 114, 127, 108, 114, 132, 134, 118, 134, 116, 135, 106, 130, 113, 119, 117, 107, 126, 127, 118, 119, 109, 120, 122, 128, 126, 137, 119, 131, 114, 137, 128, 114, 124, 134, 135, 121, 122, 116, 135, 112, 122, 137, 134, 119, 116, 129, 131, 125, 140, 134, 120, 133, 124, 114, 118, 119, 134, 110, 130, 120, 128, 137, 123, 142, 118, 119, 133, 136, 150, 134, 123, 115, 127, 120, 120, 132, 131, 121, 118, 134, 109, 121, 127, 128, 135, 122, 133, 115, 125, 129, 130, 133, 120, 119, 118, 128, 137, 121, 105, 140, 123, 133, 125, 126, 115, 129, 143, 150, 139, 128, 131, 137, 111, 139, 131, 133, 126, 128, 114, 131, 130, 110, 121, 114, 95, 119, 124, 115, 132, 121, 115, 125, 145, 112, 117, 136, 159, 137, 118, 124, 123, 128, 123, 121, 134, 138, 128, 123, 134, 132, 126, 124, 121, 129, 132, 133, 104, 141, 117, 122, 124, 121, 128, 130, 116, 115, 105, 132, 134, 122, 130, 139, 118, 133, 125, 131, 118, 129, 147, 116, 106, 125, 134, 127, 125, 136, 124, 130, 118, 113, 129, 126, 129, 133, 118, 124, 129, 132, 123, 127, 118, 118, 108, 126, 135, 137, 126, 138, 100, 133, 131, 134, 140, 131, 147, 116, 140, 127, 125, 125, 121, 114, 123, 148, 128, 122, 130, 123, 119, 131, 110, 126, 121, 127, 121, 123, 126, 147, 112, 116, 122, 101, 117, 111, 111, 135, 128, 123, 115, 117, 117, 132, 132, 136, 122, 139, 114, 117, 134, 123, 117, 121, 144, 127, 101, 115, 132, 120, 122, 141, 116, 113, 127, 136, 123, 123, 125, 143, 138, 124, 129, 116, 138, 108, 135, 134, 119, 131, 111, 126, 126, 127, 114, 130, 119, 127, 123, 120, 113, 133, 107, 119, 137, 109, 147, 120, 103, 137, 130, 121, 131, 124, 104, 111, 133, 121, 128, 134, 127, 111, 119, 114, 140, 129, 127, 119, 129, 129, 129, 140, 114, 137, 115, 114, 128, 106, 124, 128, 112, 122, 120, 123, 108, 133, 118, 127, 126, 127, 120, 116, 139, 121, 134, 128, 131, 136, 128, 129, 131, 136, 130, 125, 127, 124, 130, 110, 137, 111, 130, 121, 122, 143, 120, 108, 113, 134, 123, 132, 138, 116, 136, 117, 113, 136, 131, 136, 106, 144, 135, 130, 112, 109, 115, 118, 125, 119, 128, 134, 110, 151, 123, 113, 125, 134, 136, 108, 130, 140, 130, 115, 115, 122, 118, 121, 112, 134, 142, 111, 118, 139, 115, 134, 130, 121, 145, 117, 133, 135, 125, 123, 120, 132, 128, 120, 122, 125, 137, 136, 144, 112, 115, 118, 126, 116, 105, 141, 134, 126, 119, 115, 106, 117, 111, 112, 128, 148, 124, 134, 142, 115, 117, 122, 125, 122, 140, 126, 131, 137, 114, 118, 125, 130, 121, 117, 118, 116, 132, 116, 138, 135, 122, 132, 134, 127, 130, 125, 118, 118, 118, 128, 139, 123, 111, 131, 133, 127, 135, 120, 118, 133, 123, 113, 118, 120, 120, 141, 128, 132, 115, 122, 124, 121, 115, 119, 132, 122, 122, 122, 120, 121, 142, 109, 125, 105, 127, 134, 141, 131, 132, 130, 115, 145, 110, 124, 145, 119, 140, 136, 142, 139, 111, 122, 115, 126, 138, 123, 138, 140, 118, 144, 123, 124, 131, 115, 129, 119, 132, 123, 136, 124, 128, 111, 132, 130, 126, 120, 126, 126, 123, 133, 129, 119, 146, 122, 128, 118, 123, 117, 143, 117, 155, 124, 125, 132, 121, 114, 128, 140, 110, 129, 118, 132, 114, 133, 110, 131, 133, 126, 127, 127, 130, 130, 131, 141, 119, 152, 122, 130, 115, 133, 130, 117, 117, 125, 119, 114, 133, 141, 134, 127, 115, 140, 128, 109, 117, 139, 138, 119, 143, 137, 113, 129, 126, 125, 128, 132, 135, 138, 132, 132, 116, 126, 133, 153, 130, 135, 117, 136, 144, 114, 129, 125, 125, 123, 136, 121, 119, 126, 132, 141, 136, 114, 119, 119, 113, 116, 131, 126, 130, 135, 130, 110, 118, 132, 134, 149, 119, 128, 130, 132, 130, 111, 111, 110, 111, 140, 142, 125, 128, 116, 119, 129, 122, 101, 128, 147, 117, 120, 126, 128, 128, 125, 136, 121, 125, 130, 111, 137, 136, 125, 129, 127, 109, 126, 126, 133, 127, 149, 129, 113, 117, 119, 130, 123, 131, 112, 99, 122, 119, 105, 123, 102, 147, 136, 122, 146, 111, 140, 121, 109, 129, 152, 136, 124, 119, 130, 131, 134, 111, 122, 119, 125, 126, 125, 126, 127, 153, 130, 128, 133, 128, 115, 132, 130, 128, 107, 136, 135, 107, 122, 130, 121, 113, 117, 115, 133, 119, 112, 138, 113, 119, 142, 103, 116, 123, 131, 130, 126, 138, 146, 127, 107, 111, 122, 130, 131, 125, 133, 127, 117, 121, 146, 111, 122, 130, 125, 135, 131, 118, 139, 122, 130, 123, 121, 117, 128, 123, 136, 135, 139, 138, 115, 127, 119, 121, 117, 131, 127, 122, 127, 148, 144, 126, 142, 147, 129, 133, 145, 112, 101, 129, 130, 106, 142, 126, 110, 127, 128, 112, 131, 120, 121, 132, 118, 116, 114, 122, 120, 122, 122, 136, 144, 113, 130, 132, 119, 108, 128, 129, 127, 122, 118, 118, 119, 116, 115, 133, 117, 141, 122, 117, 126, 145, 144, 120, 117, 105, 119, 147, 118, 133, 144, 124, 133, 127, 114, 125, 123, 127, 112, 116, 147, 139, 122, 113, 108, 139, 116, 127, 136, 154, 137, 123, 121, 121, 135, 138, 119, 148, 123, 118, 126, 131, 126, 129, 107, 130, 130, 120, 109, 123, 121, 116, 119, 139, 133, 145, 122, 126, 127, 119, 122, 117, 120, 128, 132, 125, 124, 126, 137, 115, 127, 126, 125, 120, 123, 113, 130, 114, 134, 125, 106, 128, 116, 135, 122, 123, 129, 129, 109, 115, 139, 134, 108, 114, 139, 124, 104, 155, 135, 117, 143, 139, 125, 118, 128, 122, 116, 112, 148, 128, 120, 126, 133, 136, 122, 118, 131, 125, 124, 117, 125, 121, 143, 120, 120, 140, 132, 116, 113, 122, 136, 129, 111, 110, 129, 121, 120, 135, 118, 125, 149, 141, 130, 141, 114, 124, 127, 116, 119, 125, 124, 119, 129, 115, 119, 124, 119, 120, 116, 118, 119, 131, 117, 116, 125, 128, 127, 138, 108, 125, 128, 125, 116, 124, 128, 127, 103, 129, 131, 128, 132, 125, 135, 137, 128, 145, 138, 120, 139, 132, 118, 112, 125, 123, 145, 123, 147, 124, 116, 125, 104, 142, 105, 132, 129, 123, 132, 140, 149, 118, 132, 134, 122, 106, 130, 113, 111, 120, 125, 123, 132, 128, 126, 140, 139, 130, 121, 113, 139, 140, 134, 125, 128, 103, 124, 112, 130, 101, 121, 119, 124, 148, 114, 114, 126, 129, 116, 94, 103, 124, 118, 127, 114, 127, 134, 121, 125, 130, 112, 137, 130, 127, 130, 125, 125, 117, 115, 147, 118, 117, 145, 118, 139, 103, 116, 128, 107, 123, 131, 126, 122, 127, 127, 101, 124, 135, 129, 118, 128, 137, 124, 136, 133, 131, 125, 133, 144, 140, 135, 126, 124, 127, 130, 126, 135, 134, 126, 118, 133, 119, 121, 121, 140, 117, 130, 131, 136, 129, 113, 137, 130, 96, 124, 122, 126, 132, 137, 122, 128, 122, 130, 126, 117, 125, 121, 124, 115, 125, 125, 123, 122, 124, 114, 150, 116, 140, 123, 132, 115, 126, 132, 134, 122, 117, 118, 128, 106, 144, 125, 128, 112, 127, 112, 125, 111, 123, 122, 127, 123, 117, 110, 119, 125, 124, 110, 124, 124, 124, 127, 124, 132, 135, 137, 148, 129, 124, 126, 121, 108, 126, 116, 130, 108, 136, 134, 113, 127, 119, 135, 128, 131, 116, 127, 116, 111, 127, 143, 87, 128, 127, 126, 129, 145, 120, 135, 116, 144, 114, 120, 111, 146, 130, 136, 118, 116, 132, 134, 131, 137, 118, 126, 117, 131, 116, 122, 108, 133, 131, 144, 128, 130, 127, 131, 107, 140, 127, 117, 122, 113, 134, 137, 107, 109, 120, 126, 124, 111, 134, 133, 120, 134, 127, 124, 129, 123, 126, 130, 115, 143, 106, 122, 115, 138, 110, 119, 114, 129, 119, 118, 133, 115, 126, 123, 124, 144, 115, 126, 156, 120, 141, 135, 118, 129, 127, 120, 123, 123, 126, 132, 127, 141, 105, 123, 124, 123, 119, 127, 122, 112, 128, 127, 119, 134, 121, 125, 128, 124, 116, 123, 133, 141, 116, 115, 130, 115, 137, 114, 140, 120, 131, 118, 102, 123, 134, 116, 130, 117, 132, 136, 120, 107, 129, 129, 138, 130, 130, 91, 130, 115, 123, 125, 133, 126, 135, 124, 112, 118, 121, 125, 116, 132, 117, 124, 130, 131, 106, 120, 111, 118, 112, 136, 135, 135, 135, 141, 121, 114, 120, 115, 142, 119, 121, 137, 125, 119, 114, 123, 128, 115, 127, 132, 107, 134, 115, 126, 136, 121, 127, 128, 119, 123, 132, 121, 110, 105, 112, 119, 121, 135, 131, 127, 139, 130, 112, 134, 126, 106, 126, 131, 117, 131, 134, 127, 116, 126, 128, 135, 120, 136, 115, 124, 131, 122, 129, 120, 127, 138, 118, 104, 116, 121, 112, 124, 121, 123, 109, 134, 127, 121, 114, 122, 120, 148, 106, 127, 128, 121, 132, 126, 111, 130, 133, 117, 121, 128, 127, 125, 113, 137, 141, 128, 116, 128, 158, 139, 104, 124, 138, 134, 128, 119, 132, 119, 115, 137, 112, 133, 125, 141, 140, 151, 138, 146, 100, 107, 127, 138, 126, 135, 107, 119, 109, 126, 183, 139, 108, 124, 124, 126, 127, 122, 124, 109, 126, 111, 120, 132, 128, 123, 126, 115, 116, 119, 127, 131, 118, 152, 121, 108, 130, 124, 126, 101, 95, 124, 128, 119, 130, 128, 124, 131, 113, 114, 126, 119, 157, 121, 123, 139, 126, 125, 106, 129, 124, 131, 136, 133, 123, 124, 128, 105, 119, 140, 110, 114, 123, 118, 118, 129, 122, 106, 119, 133, 126, 110, 113, 108, 121, 118, 116, 131, 113, 135, 121, 111, 126, 121, 145, 117, 136, 133, 138, 116, 112, 124, 126, 124, 133, 124, 151, 122, 123, 134, 117, 106, 116, 135, 135, 120, 130, 114, 134, 144, 127, 118, 111, 142, 137, 123, 142, 134, 101, 129, 131, 136, 122, 139, 126, 131, 111, 125, 141, 135, 122, 111, 133, 142, 122, 109, 118, 117, 117, 136, 129, 117, 128, 128, 129, 132, 119, 107, 150, 125, 125, 131, 121, 105, 131, 123, 119, 103, 131, 108, 115, 127, 142, 135, 132, 131, 125, 116, 126, 128, 118, 131, 124, 135, 146, 136, 121, 110, 114, 136, 135, 136, 144, 130, 124, 116, 130, 118, 115, 127, 134, 130, 119, 128, 134, 127, 147, 122, 139, 125, 110, 137, 136, 112, 112, 117, 129, 134, 118, 133, 143, 132, 142, 145, 134, 120, 127, 143, 138, 111, 126, 101, 152, 131, 118, 110, 117, 119, 121, 130, 119, 106, 117, 136, 126, 133, 129, 122, 136, 123, 147, 132, 139, 148, 125, 129, 130, 150, 137, 109, 125, 130, 116, 111, 119, 127, 130, 103, 133, 126, 117, 124, 119, 124, 107, 110, 123, 120, 127, 146, 125, 119, 98, 117, 139, 122, 124, 127, 130, 145, 127, 132, 105, 140, 138, 127, 145, 147, 103, 112, 111, 105, 127, 114, 121, 118, 139, 128, 133, 137, 127, 135, 138, 122, 127, 133, 114, 116, 116, 126, 127, 135, 137, 108, 128, 118, 108, 123, 114, 134, 112, 143, 142, 143, 129, 126, 108, 110, 117, 122, 113, 104, 119, 123, 125, 132, 129, 128, 136, 135, 124, 127, 127, 139, 112, 110, 147, 124, 113, 127, 121, 114, 127, 135, 141, 127, 102, 123, 126, 142, 125, 132, 118, 138, 116, 96, 119, 127, 120, 121, 109, 142, 128, 139, 131, 132, 128, 129, 131, 128, 115, 118, 124, 122, 122, 131, 121, 129, 108, 137, 162, 119, 138, 118, 130, 132, 132, 133, 131, 131, 152, 120, 110, 142, 130, 115, 113, 128, 133, 140, 113, 128, 136, 120, 131, 120, 137, 110, 129, 145, 136, 123, 137, 127, 128, 118, 127, 122, 133, 140, 116, 111, 118, 126, 123, 125, 126, 119, 132, 129, 125, 135, 123, 117, 122, 110, 144, 127, 140, 132, 148, 146, 134, 134, 135, 140, 109, 120, 143, 118, 120, 124, 128, 121, 134, 130, 143, 132, 107, 105, 119, 133, 126, 137, 122, 118, 103, 125, 108, 126, 130, 148, 142, 117, 111, 126, 139, 119, 124, 110, 127, 132, 133, 128, 126, 117, 127, 112, 131, 125, 123, 127, 144, 129, 106, 104, 118, 123, 132, 104, 121, 135, 129, 131, 113, 115, 117, 124, 134, 120, 120, 111, 121, 116, 141, 143, 127, 129, 107, 124, 132, 119, 152, 133, 135, 126, 110, 116, 104, 133, 125, 116, 129, 130, 133, 137, 120, 104, 116, 128, 138, 119, 132, 150, 137, 128, 107, 122, 116, 131, 122, 131, 98, 126, 142, 129, 135, 122, 119, 133, 131, 144, 93, 97, 120, 116, 128, 127, 114, 115, 124, 116, 124, 123, 119, 123, 137, 109, 136, 114, 132, 124, 114, 109, 125, 116, 117, 109, 137, 111, 110, 141, 121, 125, 128, 128, 118, 131, 137, 126, 131, 129, 118, 131, 136, 123, 124, 116, 93, 114, 133, 124, 112, 120, 119, 131, 135, 121, 136, 123, 111, 122, 127, 121, 119, 133, 123, 119, 110, 118, 115, 115, 114, 133, 128, 118, 109, 119, 115, 124, 115, 132, 130, 137, 125, 113, 136, 123, 131, 141, 133, 119, 130, 139, 134, 141, 118, 147, 107, 132, 116, 120, 125, 137, 125, 117, 119, 129, 124, 135, 121, 109, 117, 118, 123, 132, 105, 123, 130, 125, 134, 120, 117, 117, 151, 111, 138, 125, 115, 136, 126, 138, 111, 103, 138, 92, 133, 131, 114, 116, 138, 142, 122, 154, 121, 126, 129, 122, 124, 111, 138, 124, 138, 120, 111, 125, 134, 122, 114, 136, 128, 132, 118, 123, 114, 115, 142, 129, 132, 129, 116, 125, 138, 135, 112, 111, 132, 120, 120, 115, 126, 136, 135, 118, 115, 127, 123, 124, 113, 133, 143, 104, 123, 124, 105, 146, 120, 144, 147, 121, 125, 160, 134, 114, 126, 125, 122, 117, 118, 136, 130, 128, 139, 119, 121, 119, 118, 119, 131, 113, 121, 130, 123, 111, 126, 128, 122, 124, 120, 119, 155, 128, 140, 120, 134, 109, 127, 127, 120, 138, 136, 136, 107, 136, 134, 111, 125, 128, 114, 121, 123, 115, 120, 115, 138, 142, 133, 122, 128, 120, 125, 150, 125, 143, 135, 129, 103, 123, 126, 115, 116, 118, 111, 108, 114, 142, 121, 127, 136, 127, 125, 145, 135, 119, 125, 111, 134, 135, 144, 104, 141, 124, 117, 130, 116, 112, 134, 129, 113, 129, 134, 136, 99, 147, 120, 125, 102, 134, 150, 106, 125, 144, 119, 124, 138, 134, 141, 130, 130, 135, 129, 138, 137, 126, 113, 106, 133, 144, 116, 128, 116, 125, 130, 121, 131, 150, 114, 122, 111, 124, 128, 141, 133, 132, 111, 123, 147, 129, 129, 142, 118, 144, 138, 140, 112, 135, 123, 107, 111, 111, 122, 143, 113, 112, 126, 111, 123, 136, 117, 121, 137, 128, 123, 111, 128, 110, 140, 134, 125, 124, 124, 140, 146, 121, 136, 117, 144, 130, 118, 113, 125, 117, 125, 125, 114, 133, 115, 122, 129, 120, 122, 103, 110, 141, 135, 127, 128, 126, 134, 130, 139, 137, 134, 127, 145, 146, 126, 139, 117, 101, 158, 123, 121, 132, 134, 127, 112, 122, 134, 132, 131, 122, 118, 137, 123, 125, 123, 142, 130, 131, 130, 124, 104, 115, 136, 135, 131, 114, 124, 137, 115, 117, 138, 125, 118, 115, 136, 104, 114, 127, 128, 130, 132, 113, 136, 90, 125, 131, 127, 120, 141, 102, 133, 122, 129, 114, 134, 115, 116, 117, 121, 157, 132, 126, 126, 106, 104, 137, 117, 128, 132, 121, 106, 129, 124, 137, 128, 119, 117, 120, 123, 125, 117, 152, 129, 122, 130, 140, 123, 133, 137, 121, 126, 122, 115, 126, 133, 139, 122, 119, 118, 127, 132, 117, 133, 133, 140, 132, 127, 144, 123, 130, 118, 116, 115, 128, 123, 126, 117, 111, 132, 117, 121, 113, 140, 151, 114, 136, 135, 140, 122, 121, 106, 120, 115, 128, 137, 124, 115, 132, 134, 128, 129, 117, 118, 110, 149, 108, 125, 113, 102, 124, 104, 124, 113, 134, 123, 126, 131, 114, 128, 123, 117, 121, 122, 147, 128, 106, 119, 125, 119, 118, 112, 132, 120, 116, 139, 110, 131, 122, 123, 129, 120, 111, 128, 137, 117, 112, 106, 128, 126, 109, 126, 125, 122, 121, 130, 137, 121, 147, 149, 139, 110, 143, 131, 116, 140, 126, 110, 125, 119, 147, 135, 112, 115, 122, 116, 116, 144, 122, 106, 121, 113, 125, 137, 137, 136, 134, 127, 121, 105, 139, 97, 113, 145, 124, 109, 132, 141, 118, 130, 133, 130, 118, 132, 123, 133, 143, 98, 142, 122, 132, 133, 135, 112, 135, 108, 123, 130, 115, 123, 134, 121, 135, 123, 139, 127, 126, 121, 131, 111, 125, 120, 129, 116, 112, 120, 137, 130, 100, 120, 145, 140, 122, 122, 124, 112, 120, 124, 129, 127, 131, 132, 120, 140, 139, 122, 125, 123, 133, 128, 107, 118, 126, 121, 100, 121, 125, 108, 129, 132, 127, 126, 124, 140, 87, 136, 135, 134, 136, 109, 138, 131, 120, 116, 116, 132, 130, 149, 141, 119, 129, 133, 120, 105, 125, 120, 127, 109, 124, 132, 104, 129, 129, 152, 135, 111, 124, 124, 128, 131, 127, 137, 117, 105, 118, 118, 133, 124, 109, 131, 109, 114, 124, 138, 125, 133, 116, 135, 130, 127, 116, 133, 122, 135, 114, 123, 119, 116, 134, 109, 136, 132, 123, 117, 128, 131, 120, 132, 85, 138, 123, 135, 117, 135, 132, 119, 111, 134, 124, 118, 132, 130, 123, 113, 118, 131, 128, 121, 131, 132, 129, 138, 116, 127, 120, 124, 106, 136, 114, 131, 126, 115, 142, 122, 106, 133, 124, 135, 116, 101, 115, 146, 142, 129, 108, 126, 134, 112, 117, 128, 138, 118, 109, 126, 131, 105, 106, 136, 145, 117, 112, 116, 131, 120, 130, 125, 137, 132, 128, 123, 124, 117, 143, 139, 138, 120, 131, 128, 140, 118, 128, 125, 124, 127, 137, 110, 122, 117, 131, 124, 113, 123, 130, 128, 123, 128, 121, 129, 157, 141, 127, 125, 126, 136, 130, 116, 133, 117, 129, 114, 146, 104, 120, 115, 122, 130, 117, 121, 108, 111, 125, 115, 128, 120, 138, 132, 112, 120, 132, 135, 142, 99, 149, 119, 121, 119, 119, 139, 127, 118, 129, 140, 136, 112, 128, 128, 121, 129, 105, 115, 120, 127, 138, 138, 124, 131, 138, 96, 132, 125, 121, 141, 132, 125, 119, 120, 126, 127, 133, 106, 125, 120, 131, 147, 127, 114, 113, 132, 128, 112, 134, 130, 110, 141, 140, 142, 116, 118, 132, 132, 152, 125, 106, 139, 114, 126, 118, 119, 115, 124, 102, 145, 119, 118, 140, 133, 125, 105, 123, 120, 121, 128, 150, 154, 126, 130, 111, 140, 129, 131, 115, 100, 118, 144, 131, 130, 125, 126, 121, 141, 133, 130, 123, 113, 121, 130, 127, 119, 114, 138, 119, 137, 125, 110, 140, 114, 123, 129, 126, 126, 136, 116, 103, 143, 140, 128, 129, 113, 126, 105, 134, 130, 119, 132, 114, 114, 124, 133, 131, 120, 133, 130, 117, 128, 111, 134, 143, 111, 133, 130, 136, 121, 122, 141, 119, 120, 134, 120, 132, 130, 127, 120, 112, 130, 123, 131, 138, 111, 115, 146, 130, 131, 143, 121, 126, 144, 107, 107, 143, 115, 130, 112, 131, 134, 119, 122, 134, 110, 122, 117, 129, 117, 125, 148, 117, 106, 124, 134, 132, 123, 153, 116, 132, 122, 140, 129, 127, 131, 132, 127, 125, 122, 111, 118, 113, 130, 116, 101, 123, 124, 126, 111, 121, 145, 133, 144, 135, 114, 118, 111, 117, 130, 128, 151, 125, 128, 131, 112, 111, 137, 148, 122, 148, 120, 130, 115, 122, 125, 131, 135, 120, 107, 125, 123, 123, 127, 108, 123, 109, 128, 131, 118, 140, 123, 120, 120, 125, 111, 124, 112, 132, 130, 127, 148, 135, 121, 131, 118, 146, 147, 135, 136, 118, 109, 120, 123, 129, 122, 112, 116, 137, 140, 136, 135, 128, 131, 116, 129, 131, 134, 129, 123, 124, 144, 125, 135, 113, 127, 128, 130, 134, 120, 115, 129, 130, 119, 129, 139, 129, 111, 130, 118, 117, 139, 139, 127, 111, 118, 132, 108, 133, 121, 127, 106, 136, 108, 117, 142, 133, 112, 117, 132, 110, 120, 115, 117, 106, 130, 123, 96, 138, 140, 135, 116, 114, 129, 143, 121, 125, 115, 142, 130, 121, 138, 141, 133, 129, 126, 116, 104, 126, 120, 117, 125, 136, 117, 124, 109, 139, 130, 112, 124, 134, 145, 128, 134, 118, 112, 128, 130, 138, 135, 129, 136, 121, 109, 106, 118, 132, 117, 100, 121, 127, 141, 132, 112, 118, 126, 130, 108, 120, 115, 134, 113, 132, 139, 126, 129, 121, 125, 138, 124, 123, 135, 133, 152, 114, 128, 136, 119, 126, 120, 105, 117, 122, 132, 123, 126, 107, 136, 114, 112, 111, 112, 116, 126, 123, 112, 118, 116, 124, 126, 117, 129, 132, 141, 121, 139, 116, 135, 125, 129, 125, 132, 109, 119, 138, 120, 124, 124, 150, 123, 122, 122, 133, 112, 137, 131, 127, 119, 120, 128, 128, 138, 108, 137, 148, 128, 116, 120, 123, 122, 128, 141, 139, 113, 119, 121, 126, 133, 143, 137, 141, 112, 130, 146, 131, 128, 121, 135, 125, 128, 138, 140, 160, 141, 118, 116, 101, 119, 128, 129, 136, 126, 120, 117, 130, 104, 133, 120, 132, 136, 117, 122, 129, 116, 140, 107, 102, 123, 121, 119, 114, 120, 126, 120, 121, 130, 119, 130, 118, 123, 102, 120, 108, 150, 120, 122, 118, 136, 152, 115, 130, 139, 107, 116, 129, 124, 141, 131, 127, 138, 129, 103, 124, 116, 118, 122, 120, 135, 114, 112, 140, 116, 135, 108, 115, 134, 136, 124, 126, 134, 124, 135, 124, 130, 118, 111, 122, 144, 107, 112, 122, 133, 112, 122, 112, 130, 135, 119, 107, 119, 138, 135, 132, 127, 140, 120, 103, 114, 131, 131, 115, 134, 115, 124, 109, 136, 130, 120, 136, 118, 134, 116, 130, 138, 119, 125, 115, 120, 113, 107, 116, 122, 109, 120, 128, 115, 122, 123, 118, 116, 129, 119, 130, 113, 132, 120, 122, 145, 105, 139, 111, 118, 130, 134, 129, 128, 136, 124, 128, 127, 119, 120, 139, 117, 124, 131, 126, 116, 117, 123, 118, 113, 121, 138, 112, 125, 126, 125, 141, 107, 129, 129, 130, 117, 151, 113, 121, 116, 117, 134, 124, 114, 121, 138, 117, 117, 129, 126, 116, 119, 127, 131, 118, 122, 132, 105, 124, 138, 112, 125, 149, 128, 116, 116, 104, 122, 130, 136, 110, 128, 111, 113, 120, 120, 125, 124, 124, 129, 125, 132, 108, 124, 124, 119, 122, 105, 139, 128, 131, 122, 116, 132, 120, 123, 126, 129, 117, 130, 128, 126, 119, 115, 137, 131, 109, 109, 114, 136, 124, 123, 118, 133, 125, 135, 142, 122, 122, 146, 124, 113, 113, 127, 132, 125, 133, 129, 123, 122, 130, 119, 118, 134, 134, 142, 136, 112, 117, 117, 107, 115, 131, 135, 138, 134, 127, 144, 111, 130, 129, 118, 139, 106, 114, 131, 130, 129, 130, 123, 143, 123, 116, 132, 112, 125, 117, 116, 128, 134, 135, 116, 129, 138, 135, 114, 131, 138, 144, 132, 140, 122, 117, 111, 123, 108, 130, 115, 147, 125, 150, 100, 121, 125, 115, 117, 119, 127, 120, 146, 138, 145, 141, 137, 131, 135, 147, 136, 131, 129, 111, 126, 120, 121, 140, 140, 118, 140, 133, 128, 128, 130, 121, 137, 130, 121, 144, 118, 117, 107, 126, 123, 119, 113, 114, 133, 120, 129, 121, 106, 139, 135, 134, 122, 119, 148, 110, 123, 124, 119, 110, 132, 124, 112, 118, 122, 133, 126, 133, 120, 113, 125, 135, 127, 132, 140, 127, 140, 134, 129, 126, 139, 124, 116, 134, 108, 114, 132, 127, 117, 127, 112, 124, 117, 126, 134, 104, 100, 148, 134, 154, 144, 113, 125, 113, 124, 123, 124, 125, 124, 123, 119, 137, 117, 142, 133, 139, 127, 123, 149, 116, 112, 117, 127, 148, 128, 107, 117, 131, 124, 131, 128, 127, 119, 105, 118, 124, 123, 124, 115, 132, 135, 134, 117, 127, 125, 127, 131, 115, 125, 127, 130, 120, 108, 123, 117, 129, 135, 140, 126, 129, 127, 133, 105, 125, 123, 134, 126, 133, 145, 114, 140, 122, 140, 127, 137, 142, 137, 144, 130, 108, 134, 123, 119, 125, 122, 125, 142, 124, 135, 112, 135, 147, 104, 107, 113, 122, 129, 139, 123, 120, 117, 135, 114, 121, 144, 127, 117, 132, 123, 136, 149, 144, 112, 140, 102, 135, 127, 135, 111, 130, 117, 121, 123, 156, 103, 121, 131, 100, 152, 135, 131, 119, 117, 112, 122, 118, 128, 114, 120, 150, 127, 127, 120, 122, 131, 121, 130, 126, 137, 130, 132, 120, 121, 156, 113, 125, 136, 127, 124, 152, 129, 108, 122, 130, 104, 126, 157, 127, 114, 123, 121, 126, 121, 110, 118, 116, 124, 133, 127, 103, 129, 134, 126, 111, 125, 129, 118, 119, 127, 133, 125, 131, 122, 129, 133, 117, 131, 111, 116, 118, 125, 122, 128, 118, 133, 136, 112, 132, 120, 124, 129, 139, 143, 139, 141, 132, 129, 124, 113, 121, 132, 137, 111, 109, 121, 117, 103, 118, 121, 134, 127, 118, 113, 122, 111, 129, 124, 122, 133, 122, 130, 125, 136, 126, 126, 126, 132, 115, 132, 173, 126, 105, 137, 122, 114, 123, 115, 115, 120, 111, 133, 130, 118, 123, 122, 113, 112, 102, 125, 119, 137, 117, 121, 104, 117, 119, 98, 119, 116, 138, 128, 133, 104, 114, 119, 117, 126, 123, 118, 120, 140, 116, 127, 124, 126, 128, 128, 122, 128, 133, 113, 120, 134, 122, 133, 127, 124, 111, 126, 125, 124, 111, 132, 131, 123, 123, 129, 124, 126, 132, 113, 139, 126, 118, 141, 109, 121, 135, 126, 110, 121, 124, 111, 114, 142, 128, 121, 131, 118, 110, 131, 127, 118, 133, 123, 132, 101, 115, 128, 124, 124, 132, 121, 123, 112, 123, 123, 142, 134, 139, 128, 125, 123, 130, 152, 129, 119, 133, 123, 125, 127, 126, 147, 120, 111, 112, 117, 117, 139, 121, 160, 103, 143, 113, 108, 110, 123, 132, 130, 124, 143, 128, 120, 131, 135, 128, 140, 128, 128, 147, 122, 131, 124, 121, 113, 120, 124, 120, 139, 136, 122, 134, 133, 115, 118, 130, 133, 123, 130, 130, 143, 131, 136, 125, 126, 134, 144, 123, 125, 129, 119, 134, 127, 108, 130, 133, 110, 132, 128, 119, 113, 128, 133, 134, 122, 113, 129, 131, 117, 116, 111, 129, 122, 120, 109, 130, 133, 134, 131, 132, 122, 134, 118, 136, 128, 128, 115, 144, 116, 140, 106, 133, 137, 129, 140, 118, 125, 146, 117, 133, 115, 133, 114, 124, 125, 127, 136, 125, 126, 124, 132, 121, 106, 128, 133, 136, 163, 132, 121, 123, 112, 125, 115, 117, 142, 137, 128, 113, 126, 130, 143, 132, 121, 122, 115, 105, 109, 125, 131, 128, 129, 96, 119, 108, 115, 149, 105, 121, 131, 131, 125, 125, 142, 113, 117, 107, 116, 116, 137, 137, 112, 136, 147, 115, 127, 138, 128, 139, 134, 119, 125, 124, 156, 127, 123, 139, 126, 128, 82, 112, 137, 157, 133, 130, 123, 131, 139, 120, 125, 120, 102, 103, 129, 113, 132, 123, 111, 122, 117, 135, 112, 139, 125, 138, 143, 125, 117, 118, 136, 135, 131, 108, 130, 125, 128, 117, 116, 129, 114, 138, 142, 132, 140, 124, 126, 106, 117, 106, 121, 122, 125, 122, 129, 116, 150, 121, 120, 130, 129, 119, 128, 130, 132, 122, 145, 126, 127, 124, 112, 82, 123, 105, 121, 129, 117, 148, 121, 139, 118, 127, 102, 151, 120, 149, 125, 123, 131, 115, 128, 109, 141, 115, 135, 114, 120, 113, 116, 128, 121, 132, 124, 122, 117, 128, 132, 133, 124, 128, 135, 120, 116, 108, 133, 139, 140, 106, 123, 127, 128, 121, 119, 124, 120, 134, 133, 125, 135, 129, 125, 125, 118, 106, 123, 121, 116, 126, 131, 125, 130, 106, 147, 126, 115, 128, 119, 119, 116, 124, 129, 133, 130, 122, 111, 117, 111, 107, 129, 113, 135, 123, 153, 129, 130, 122, 141, 135, 129, 138, 117, 105, 126, 130, 127, 135, 135, 144, 124, 125, 141, 143, 124, 129, 134, 129, 118, 115, 119, 143, 116, 110, 116, 130, 142, 106, 122, 132, 119, 126, 118, 125, 116, 115, 127, 104, 122, 116, 122, 138, 124, 125, 135, 134, 140, 122, 119, 126, 112, 138, 111, 108, 126, 127, 126, 140, 134, 151, 113, 142, 115, 114, 119, 115, 127, 135, 131, 121, 146, 129, 121, 125, 121, 127, 118, 130, 125, 127, 164, 124, 125, 132, 110, 122, 128, 125, 114, 124, 127, 135, 130, 117, 106, 125, 102, 138, 126, 130, 133, 115, 122, 145, 123, 130, 132, 126, 128, 139, 138, 129, 130, 109, 118, 129, 116, 136, 142, 140, 137, 118, 110, 122, 131, 128, 128, 120, 114, 127, 119, 154, 125, 134, 125, 131, 127, 141, 118, 128, 129, 121, 130, 149, 123, 121, 129, 132, 115, 132, 115, 117, 138, 123, 116, 119, 123, 119, 136, 121, 123, 126, 126, 112, 130, 127, 139, 134, 106, 116, 121, 139, 124, 123, 107, 125, 114, 126, 123, 120, 130, 104, 130, 127, 133, 135, 130, 114, 125, 148, 110, 125, 106, 139, 125, 118, 139, 119, 123, 116, 134, 121, 132, 145, 135, 125, 128, 129, 137, 108, 119, 126, 142, 120, 109, 136, 126, 139, 124, 115, 130, 140, 113, 115, 140, 140, 127, 112, 140, 148, 117, 132, 119, 109, 124, 133, 129, 117, 121, 128, 121, 127, 114, 127, 112, 93, 121, 152, 123, 121, 125, 137, 116, 134, 115, 137, 115, 113, 126, 144, 123, 128, 135, 125, 130, 127, 133, 139, 108, 119, 121, 144, 133, 136, 135, 130, 128, 129, 115, 130, 136, 120, 121, 121, 114, 134, 125, 130, 123, 131, 126, 119, 125, 148, 132, 128, 105, 128, 124, 125, 124, 111, 126, 123, 109, 121, 133, 117, 112, 126, 134, 137, 117, 120, 133, 125, 115, 146, 108, 116, 103, 132, 123, 124, 136, 130, 129, 135, 123, 122, 132, 127, 131, 124, 127, 135, 141, 124, 123, 124, 120, 123, 136, 135, 129, 108, 144, 143, 129, 144, 130, 123, 123, 137, 128, 135, 125, 110, 134, 127, 135, 135, 135, 137, 126, 118, 117, 116, 150, 128, 131, 133, 118, 129, 129, 126, 140, 124, 126, 116, 118, 132, 120, 132, 126, 118, 136, 113, 151, 140, 137, 136, 128, 124, 116, 125, 128, 116, 117, 133, 134, 128, 108, 130, 122, 131, 115, 110, 126, 132, 125, 130, 113, 127, 124, 109, 129, 142, 135, 122, 115, 142, 121, 139, 145, 121, 134, 137, 124, 114, 108, 139, 117, 139, 144, 130, 117, 148, 160, 133, 137, 128, 136, 118, 114, 126, 135, 125, 143, 123, 125, 124, 79, 119, 118, 113, 133, 145, 146, 112, 137, 113, 124, 116, 132, 145, 109, 124, 132, 149, 121, 112, 131, 128, 128, 126, 128, 124, 146, 122, 128, 111, 132, 127, 134, 114, 124, 109, 123, 127, 124, 124, 117, 130, 124, 143, 132, 135, 154, 121, 142, 142, 113, 134, 128, 143, 162, 125, 114, 132, 119, 145, 128, 120, 128, 138, 122, 126, 133, 138, 137, 108, 119, 103, 138, 121, 123, 122, 112, 115, 129, 127, 144, 134, 112, 127, 121, 124, 127, 128, 130, 111, 145, 129, 119, 115, 118, 127, 138, 137, 131, 116, 115, 119, 133, 104, 125, 130, 123, 101, 137, 127, 134, 155, 137, 124, 128, 111, 125, 140, 149, 132, 129, 119, 125, 123, 131, 122, 136, 122, 131, 135, 126, 118, 125, 111, 115, 133, 118, 132, 138, 119, 129, 101, 135, 135, 129, 121, 128, 131, 128, 128, 128, 134, 115, 116, 118, 134, 123, 121, 122, 104, 135, 124, 129, 119, 117, 122, 130, 132, 118, 132, 133, 117, 123, 116, 128, 122, 118, 128, 138, 129, 117, 143, 122, 123, 128, 105, 121, 136, 127, 110, 130, 123, 129, 131, 136, 125, 126, 118, 115, 130, 134, 135, 112, 138, 144, 101, 149, 128, 129, 111, 125, 127, 153, 132, 124, 138, 110, 142, 107, 130, 129, 121, 116, 125, 107, 130, 95, 126, 126, 110, 119, 135, 151, 123, 123, 121, 124, 101, 118, 139, 130, 119, 137, 142, 132, 116, 119, 118, 129, 129, 146, 131, 126, 125, 115, 134, 124, 148, 126, 131, 130, 108, 128, 115, 103, 127, 136, 132, 124, 124, 127, 126, 110, 123, 129, 129, 114, 130, 129, 128, 129, 121, 107, 92, 122, 135, 148, 118, 129, 139, 110, 124, 119, 115, 132, 139, 127, 144, 122, 131, 136, 135, 122, 128, 122, 125, 115, 139, 132, 151, 122, 129, 123, 123, 127, 117, 132, 110, 137, 129, 139, 128, 135, 110, 128, 122, 126, 134, 127, 114, 137, 124, 131, 128, 117, 145, 118, 120, 122, 111, 120, 153, 132, 139, 131, 133, 140, 96, 109, 126, 121, 120, 132, 125, 131, 125, 122, 125, 118, 117, 127, 135, 136, 129, 105, 124, 122, 112, 119, 106, 113, 128, 121, 135, 126, 125, 124, 112, 134, 126, 141, 131, 123, 139, 123, 124, 122, 126, 126, 120, 133, 125, 131, 121, 113, 122, 113, 115, 140, 135, 111, 133, 128, 145, 137, 109, 131, 132, 128, 130, 129, 153, 128, 120, 120, 139, 116, 118, 120, 119, 121, 131, 126, 112, 119, 127, 123, 143, 120, 133, 113, 131, 127, 118, 132, 129, 136, 122, 132, 129, 131, 119, 124, 118, 145, 138, 126, 128, 123, 121, 133, 124, 116, 110, 104, 121, 131, 139, 137, 133, 113, 112, 126, 119, 117, 126, 122, 110, 106, 132, 118, 104, 142, 106, 134, 103, 128, 117, 112, 126, 129, 112, 115, 130, 123, 106, 115, 133, 129, 115, 125, 132, 139, 131, 130, 111, 128, 119, 151, 140, 122, 105, 138, 121, 117, 142, 129, 122, 116, 132, 115, 131, 115, 125, 125, 135, 132, 120, 114, 137, 143, 141, 115, 103, 125, 133, 129, 131, 114, 123, 132, 131, 125, 124, 117, 109, 120, 140, 139, 124, 120, 112, 128, 132, 129, 107, 125, 116, 126, 127, 127, 106, 145, 150, 114, 129, 123, 143, 143, 123, 120, 120, 109, 120, 119, 131, 141, 126, 103, 132, 117, 121, 128, 128, 120, 109, 126, 141, 132, 105, 119, 123, 113, 127, 132, 118, 130, 110, 109, 117, 111, 125, 123, 127, 115, 122, 113, 116, 121, 118, 145, 137, 94, 135, 118, 128, 129, 126, 125, 120, 108, 114, 130, 143, 126, 126, 116, 139, 117, 119, 128, 128, 134, 123, 125, 136, 112, 134, 114, 122, 137, 122, 135, 124, 127, 120, 118, 140, 121, 119, 118, 127, 145, 120, 137, 115, 118, 131, 126, 125, 118, 142, 127, 130, 134, 120, 139, 123, 131, 123, 126, 132, 120, 113, 106, 126, 130, 118, 114, 133, 126, 98, 134, 119, 142, 132, 113, 119, 134, 140, 138, 118, 105, 114, 130, 141, 117, 133, 136, 141, 140, 123, 131, 110, 123, 144, 135, 124, 145, 121, 132, 127, 136, 112, 131, 121, 110, 108, 126, 127, 121, 120, 119, 110, 130, 135, 151, 126, 131, 129, 130, 120, 122, 130, 134, 113, 148, 120, 142, 130, 143, 124, 121, 103, 135, 125, 134, 124, 114, 129, 123, 118, 129, 134, 124, 132, 125, 124, 126, 121, 154, 110, 123, 135, 121, 94, 105, 143, 113, 131, 136, 126, 125, 117, 117, 112, 123, 111, 144, 126, 134, 116, 109, 116, 118, 136, 99, 139, 98, 126, 129, 127, 142, 128, 117, 130, 134, 117, 144, 113, 129, 121, 127, 114, 135, 129, 117, 121, 130, 119, 118, 133, 131, 122, 109, 115, 128, 139, 115, 140, 138, 98, 130, 128, 126, 121, 116, 111, 134, 140, 133, 120, 124, 126, 118, 126, 129, 133, 140, 134, 137, 134, 136, 127, 125, 142, 122, 149, 121, 98, 136, 128, 120, 145, 111, 130, 156, 123, 125, 106, 142, 127, 120, 120, 102, 132, 120, 114, 111, 139, 133, 104, 122, 121, 119, 118, 108, 127, 120, 101, 126, 122, 102, 109, 117, 135, 119, 125, 141, 133, 130, 149, 121, 121, 125, 128, 120, 118, 111, 128, 119, 123, 127, 138, 134, 135, 124, 132, 131, 122, 128, 126, 161, 143, 146, 108, 107, 113, 112, 115, 138, 137, 127, 142, 115, 125, 123, 120, 121, 124, 112, 123, 122, 142, 120, 120, 126, 139, 112, 101, 126, 119, 138, 129, 125, 129, 137, 137, 135, 122, 141, 125, 129, 127, 123, 122, 124, 123, 121, 132, 124, 122, 131, 127, 140, 123, 122, 122, 120, 106, 117, 113, 134, 124, 129, 133, 121, 123, 136, 123, 118, 126, 132, 111, 130, 140, 135, 115, 139, 115, 140, 127, 123, 124, 121, 132, 128, 128, 132, 120, 130, 125, 126, 132, 129, 113, 131, 126, 116, 122, 124, 133, 121, 122, 114, 114, 135, 87, 130, 116, 116, 126, 128, 127, 116, 121, 116, 121, 141, 132, 132, 117, 115, 127, 117, 126, 116, 138, 127, 123, 132, 114, 139, 136, 115, 120, 133, 143, 136, 126, 125, 128, 104, 111, 133, 139, 131, 107, 117, 109, 130, 124, 118, 123, 150, 148, 129, 125, 125, 132, 121, 147, 130, 122, 117, 116, 124, 120, 124, 121, 135, 132, 137, 119, 109, 119, 129, 146, 105, 127, 115, 150, 116, 132, 122, 120, 87, 127, 125, 141, 141, 138, 135, 110, 122, 141, 105, 123, 115, 124, 120, 123, 115, 120, 125, 116, 125, 134, 127, 120, 121, 131, 117, 121, 122, 130, 140, 120, 133, 141, 134, 158, 134, 122, 112, 122, 119, 125, 130, 133, 112, 122, 130, 144, 112, 132, 140, 125, 140, 127, 127, 120, 106, 109, 137, 124, 109, 132, 123, 121, 131, 112, 143, 127, 106, 116, 119, 152, 125, 108, 125, 121, 127, 129, 147, 120, 124, 127, 124, 124, 120, 121, 121, 120, 120, 120, 115, 127, 128, 120, 119, 123, 132, 119, 136, 113, 132, 122, 122, 124, 128, 120, 121, 128, 120, 114, 125, 132, 120, 144, 129, 111, 137, 116, 128, 107, 117, 122, 134, 90, 108, 127, 115, 127, 131, 138, 125, 117, 134, 121, 125, 133, 115, 131, 138, 127, 120, 136, 134, 140, 118, 114, 134, 125, 126, 127, 114, 125, 121, 125, 125, 138, 123, 126, 118, 132, 106, 139, 129, 130, 121, 115, 119, 119, 138, 116, 117, 127, 113, 136, 135, 140, 139, 109, 125, 133, 132, 114, 116, 128, 118, 124, 111, 131, 116, 115, 131, 108, 143, 119, 129, 115, 109, 112, 139, 129, 127, 116, 112, 114, 107, 124, 124, 134, 131, 115, 110, 120, 126, 134, 122, 134, 127, 131, 123, 158, 104, 139, 129, 127, 116, 129, 127, 138, 138, 133, 144, 118, 140, 127, 104, 142, 132, 107, 142, 127, 119, 117, 141, 114, 154, 125, 137, 126, 122, 128, 123, 119, 150, 124, 144, 112, 134, 109, 121, 119, 132, 102, 124, 133, 141, 106, 130, 143, 123, 109, 130, 126, 123, 119, 117, 116, 125, 129, 127, 145, 118, 131, 126, 147, 135, 119, 132, 119, 143, 125, 127, 151, 125, 144, 123, 123, 124, 123, 120, 120, 132, 125, 126, 134, 112, 113, 139, 129, 121, 118, 110, 125, 119, 123, 131, 132, 139, 130, 126, 145, 137, 139, 143, 131, 137, 125, 123, 130, 120, 136, 132, 115, 136, 108, 117, 126, 115, 128, 129, 123, 141, 121, 127, 117, 132, 114, 131, 134, 130, 127, 127, 126, 132, 121, 135, 125, 131, 121, 111, 129, 127, 108, 117, 126, 101, 135, 131, 123, 116, 125, 139, 109, 137, 125, 106, 113, 131, 146, 133, 134, 142, 127, 121, 104, 130, 118, 111, 122, 145, 120, 147, 131, 119, 125, 115, 120, 137, 133, 90, 109, 128, 134, 116, 113, 142, 132, 114, 129, 113, 130, 120, 122, 136, 122, 99, 124, 108, 127, 125, 118, 114, 145, 120, 117, 145, 127, 112, 114, 125, 131, 126, 124, 132, 138, 125, 116, 129, 127, 144, 135, 140, 124, 123, 119, 117, 135, 143, 128, 121, 114, 131, 131, 107, 114, 129, 120, 125, 124, 134, 138, 130, 124, 140, 126, 129, 131, 128, 122, 138, 140, 123, 123, 109, 112, 145, 115, 126, 120, 109, 123, 106, 140, 111, 107, 114, 125, 121, 116, 123, 117, 137, 123, 117, 116, 119, 130, 127, 105, 131, 142, 132, 132, 119, 119, 116, 120, 124, 119, 118, 137, 113, 125, 117, 137, 115, 119, 131, 125, 116, 120, 124, 139, 122, 129, 127, 128, 131, 127, 126, 149, 119, 134, 130, 124, 154, 131, 143, 133, 104, 124, 108, 121, 139, 134, 119, 132, 118, 145, 139, 130, 109, 111, 127, 137, 132, 130, 132, 139, 131, 129, 147, 138, 137, 115, 123, 144, 134, 120, 114, 112, 132, 143, 129, 138, 118, 134, 121, 121, 126, 124, 116, 118, 107, 138, 124, 123, 133, 117, 122, 136, 117, 132, 126, 125, 113, 119, 107, 114, 125, 126, 133, 117, 125, 143, 124, 111, 138, 117, 140, 125, 130, 138, 115, 123, 116, 125, 105, 133, 134, 126, 113, 123, 120, 122, 138, 102, 119, 110, 115, 122, 121, 148, 126, 126, 129, 113, 141, 121, 120, 140, 138, 108, 127, 127, 130, 116, 120, 114, 123, 140, 133, 112, 141, 119, 103, 126, 133, 127, 137, 112, 120, 129, 134, 136, 118, 125, 124, 119, 144, 116, 139, 142, 118, 127, 138, 117, 134, 116, 146, 104, 116, 128, 131, 121, 122, 112, 121, 132, 129, 115, 126, 141, 109, 134, 144, 128, 98, 133, 123, 130, 123, 130, 119, 113, 143, 145, 115, 130, 147, 119, 120, 115, 137, 118, 128, 128, 130, 119, 130, 123, 128, 138, 114, 134, 119, 124, 137, 133, 125, 112, 128, 115, 160, 123, 117, 114, 128, 111, 143, 123, 123, 117, 127, 121, 124, 133, 120, 132, 123, 129, 115, 106, 130, 119, 127, 123, 131, 135, 129, 130, 123, 123, 111, 126, 120, 133, 132, 113, 111, 129, 143, 117, 114, 116, 121, 127, 140, 112, 142, 124, 116, 118, 120, 111, 130, 124, 134, 133, 122, 120, 127, 127, 117, 126, 136, 134, 106, 135, 130, 112, 114, 128, 142, 122, 114, 131, 130, 129, 137, 143, 121, 143, 139, 136, 132, 140, 128, 130, 131, 118, 145, 132, 122, 132, 118, 121, 133, 110, 123, 119, 131, 121, 144, 124, 129, 129, 129, 129, 120, 132, 123, 120, 107, 133, 122, 114, 111, 121, 122, 128, 145, 119, 131, 127, 130, 120, 121, 131, 130, 123, 136, 127, 127, 141, 137, 137, 112, 133, 125, 131, 136, 140, 121, 122, 126, 114, 122, 115, 129, 130, 131, 109, 129, 138, 138, 133, 119, 109, 112, 120, 141, 118, 129, 122, 129, 136, 133, 123, 128, 141, 127, 123, 133, 131, 129, 131, 117, 123, 124, 138, 137, 112, 119, 120, 138, 135, 118, 117, 122, 129, 120, 138, 122, 126, 128, 131, 120, 141, 146, 127, 133, 116, 132, 126, 127, 108, 126, 135, 113, 124, 130, 137, 124, 136, 137, 144, 100, 109, 138, 116, 121, 110, 122, 118, 143, 133, 149, 125, 126, 123, 111, 119, 120, 107, 113, 103, 144, 140, 122, 124, 114, 126, 112, 132, 131, 116, 125, 127, 122, 124, 135, 140, 132, 136, 115, 128, 109, 141, 112, 128, 137, 121, 130, 134, 125, 132, 121, 103, 114, 125, 109, 142, 125, 139, 127, 139, 112, 149, 129, 131, 124, 121, 132, 144, 114, 108, 120, 138, 142, 107, 130, 131, 110, 115, 133, 121, 110, 135, 123, 140, 127, 123, 115, 147, 123, 129, 127, 127, 123, 132, 118, 124, 122, 151, 140, 146, 130, 91, 126, 131, 122, 125, 151, 135, 119, 128, 135, 127, 119, 131, 123, 121, 126, 121, 132, 127, 123, 132, 133, 142, 120, 143, 131, 134, 141, 130, 123, 129, 133, 126, 133, 143, 123, 130, 124, 132, 129, 121, 116, 140, 126, 105, 112, 127, 115, 136, 134, 109, 154, 131, 128, 113, 126, 128, 116, 131, 137, 147, 150, 119, 105, 136, 116, 136, 124, 134, 118, 132, 118, 124, 137, 134, 113, 114, 117, 127, 138, 142, 126, 135, 125, 121, 160, 129, 121, 123, 123, 124, 142, 101, 127, 108, 129, 127, 116, 133, 120, 141, 135, 144, 112, 132, 139, 138, 139, 138, 126, 138, 107, 147, 115, 120, 124, 138, 123, 124, 134, 110, 125, 133, 144, 132, 114, 122, 146, 122, 120, 118, 98, 131, 130, 144, 126, 122, 117, 118, 121, 141, 96, 123, 116, 123, 118, 111, 127, 119, 125, 121, 124, 115, 125, 123, 122, 135, 118, 121, 107, 132, 119, 134, 116, 131, 123, 135, 132, 130, 114, 113, 131, 114, 115, 118, 108, 119, 123, 115, 125, 123, 138, 131, 131, 121, 100, 125, 110, 129, 137, 125, 128, 129, 133, 136, 130, 136, 121, 120, 154, 131, 126, 126, 141, 109, 118, 108, 124, 124, 131, 129, 132, 129, 130, 121, 122, 133, 129, 131, 142, 129, 126, 107, 137, 133, 118, 128, 110, 115, 130, 111, 112, 129, 131, 126, 123, 123, 127, 131, 128, 128, 129, 125, 118, 101, 115, 136, 118, 145, 133, 129, 112, 115, 118, 122, 104, 105, 125, 138, 126, 104, 111, 106, 120, 126, 122, 137, 112, 129, 110, 142, 125, 128, 135, 122, 122, 117, 101, 131, 119, 132, 120, 152, 139, 107, 137, 140, 111, 122, 137, 143, 133, 110, 130, 127, 127, 143, 129, 121, 123, 116, 133, 130, 146, 134, 143, 133, 108, 117, 134, 131, 117, 121, 133, 131, 119, 122, 132, 119, 146, 129, 123, 122, 144, 129, 132, 113, 131, 125, 124, 140, 132, 114, 126, 121, 124, 119, 122, 125, 131, 157, 132, 120, 108, 114, 126, 143, 128, 117, 131, 132, 113, 133, 130, 133, 141, 131, 127, 121, 127, 129, 127, 137, 122, 138, 127, 121, 124, 147, 134, 118, 125, 124, 116, 132, 125, 113, 120, 140, 129, 140, 124, 105, 133, 111, 128, 123, 118, 128, 120, 124, 108, 122, 119, 114, 121, 120, 125, 122, 139, 131, 112, 114, 123, 120, 135, 139, 125, 123, 119, 122, 127, 132, 143, 125, 120, 121, 129, 125, 118, 129, 126, 127, 130, 139, 127, 116, 128, 127, 114, 117, 130, 132, 99, 140, 105, 158, 140, 121, 126, 110, 139, 120, 130, 135, 135, 128, 114, 120, 113, 146, 134, 122, 131, 139, 119, 127, 112, 116, 138, 127, 123, 115, 124, 129, 115, 135, 137, 134, 125, 122, 119, 155, 124, 124, 122, 130, 135, 103, 124, 114, 150, 120, 121, 133, 116, 127, 125, 133, 123, 122, 113, 114, 109, 119, 120, 131, 120, 127, 107, 118, 142, 120, 128, 123, 117, 107, 115, 129, 139, 142, 135, 136, 104, 126, 132, 132, 121, 120, 132, 128, 128, 103, 105, 143, 137, 138, 109, 114, 131, 127, 126, 134, 124, 134, 133, 135, 121, 146, 139, 132, 112, 132, 122, 127, 126, 118, 122, 115, 124, 117, 134, 111, 128, 116, 131, 139, 110, 120, 153, 120, 142, 124, 113, 115, 124, 124, 111, 114, 138, 134, 130, 110, 122, 135, 123, 123, 114, 118, 135, 122, 130, 120, 135, 119, 131, 127, 107, 108, 127, 130, 125, 129, 119, 135, 125, 129, 119, 127, 120, 123, 104, 114, 124, 138, 123, 119, 136, 123, 122, 139, 129, 123, 134, 129, 128, 135, 139, 139, 126, 136, 114, 115, 127, 120, 105, 114, 125, 120, 134, 122, 137, 112, 132, 142, 145, 105, 121, 134, 120, 146, 131, 110, 133, 131, 123, 131, 114, 116, 121, 120, 129, 144, 114, 111, 113, 134, 125, 110, 128, 133, 127, 117, 115, 115, 118, 111, 113, 122, 132, 136, 134, 118, 118, 142, 123, 113, 127, 121, 124, 122, 121, 116, 123, 130, 126, 113, 103, 121, 110, 122, 141, 120, 147, 111, 120, 110, 113, 120, 127, 120, 114, 120, 124, 147, 120, 130, 122, 134, 131, 133, 123, 114, 127, 124, 116, 135, 121, 123, 115, 113, 116, 116, 131, 142, 136, 140, 146, 136, 131, 121, 108, 130, 121, 124, 126, 119, 116, 122, 109, 144, 120, 134, 114, 120, 102, 131, 122, 144, 128, 115, 131, 116, 122, 137, 103, 132, 147, 115, 140, 118, 123, 118, 117, 136, 157, 122, 106, 123, 128, 119, 110, 131, 120, 140, 118, 128, 131, 119, 125, 127, 132, 115, 124, 124, 132, 149, 116, 114, 135, 140, 114, 157, 116, 134, 125, 130, 126, 117, 132, 136, 123, 125, 129, 126, 126, 118, 124, 125, 135, 119, 125, 136, 134, 126, 128, 105, 122, 137, 139, 114, 103, 134, 127, 117, 138, 101, 123, 130, 126, 126, 129, 107, 139, 126, 144, 126, 138, 129, 117, 127, 149, 144, 118, 124, 127, 127, 133, 127, 110, 119, 133, 132, 111, 144, 109, 115, 138, 138, 130, 117, 129, 136, 121, 118, 122, 143, 106, 108, 126, 144, 135, 144, 133, 127, 125, 115, 127, 106, 126, 118, 132, 124, 125, 134, 124, 113, 131, 136, 127, 124, 128, 128, 126, 135, 117, 120, 116, 121, 118, 135, 131, 113, 133, 136, 108, 125, 118, 135, 121, 135, 128, 138, 133, 138, 135, 126, 105, 144, 131, 122, 131, 129, 135, 127, 131, 131, 107, 130, 135, 113, 119, 118, 130, 132, 113, 124, 132, 135, 136, 126, 102, 134, 119, 130, 121, 130, 112, 135, 123, 125, 148, 117, 132, 128, 110, 124, 125, 123, 131, 121, 138, 119, 125, 142, 111, 118, 121, 122, 118, 124, 145, 115, 113, 114, 111, 129, 124, 112, 117, 118, 126, 127, 122, 114, 111, 112, 126, 129, 151, 133, 111, 115, 125, 124, 157, 111, 108, 122, 136, 126, 133, 124, 123, 123, 119, 136, 142, 114, 115, 132, 113, 140, 123, 122, 126, 113, 127, 126, 122, 151, 116, 121, 136, 116, 126, 141, 156, 135, 128, 105, 126, 121, 128, 115, 116, 131, 107, 117, 138, 115, 137, 128, 128, 128, 142, 124, 149, 132, 121, 130, 111, 118, 108, 127, 143, 146, 129, 134, 117, 118, 140, 132, 140, 120, 129, 123, 132, 120, 119, 122, 133, 129, 135, 127, 122, 107, 116, 124, 123, 120, 117, 120, 123, 132, 121, 151, 102, 126, 127, 128, 141, 137, 116, 129, 132, 120, 110, 138, 125, 152, 120, 128, 129, 146, 128, 135, 114, 119, 112, 112, 130, 111, 129, 136, 137, 128, 135, 114, 133, 126, 108, 129, 128, 129, 120, 134, 127, 115, 119, 120, 109, 136, 121, 122, 150, 122, 126, 120, 125, 108, 118, 122, 111, 142, 112, 140, 122, 107, 111, 132, 134, 143, 116, 134, 118, 110, 131, 124, 115, 108, 131, 133, 134, 110, 135, 117, 108, 142, 113, 102, 133, 137, 112, 127, 125, 135, 124, 127, 129, 129, 117, 137, 136, 95, 131, 137, 130, 127, 129, 122, 151, 111, 104, 129, 118, 103, 129, 115, 122, 131, 124, 130, 136, 143, 115, 125, 125, 115, 127, 127, 117, 121, 125, 136, 132, 116, 126, 121, 128, 119, 121, 107, 145, 124, 95, 123, 134, 117, 117, 134, 123, 109, 136, 124, 114, 134, 127, 113, 125, 128, 107, 126, 111, 133, 120, 121, 114, 145, 130, 142, 134, 130, 123, 127, 116, 121, 132, 117, 120, 133, 118, 108, 133, 112, 119, 129, 110, 123, 131, 111, 124, 132, 136, 140, 124, 121, 123, 126, 116, 121, 103, 111, 133, 139, 141, 108, 120, 121, 126, 131, 122, 118, 130, 132, 111, 118, 128, 116, 138, 125, 139, 109, 118, 107, 111, 136, 132, 145, 121, 117, 121, 117, 125, 128, 130, 112, 131, 127, 122, 122, 114, 137, 100, 130, 122, 111, 109, 121, 124, 123, 116, 106, 118, 133, 138, 133, 120, 120, 137, 128, 127, 148, 110, 123, 132, 123, 114, 140, 124, 120, 131, 123, 128, 131, 127, 115, 110, 129, 149, 148, 129, 126, 112, 126, 132, 117, 130, 121, 132, 117, 145, 139, 118, 138, 124, 142, 124, 134, 118, 120, 128, 136, 127, 129, 131, 127, 121, 132, 121, 119, 116, 125, 119, 119, 119, 139, 131, 134, 133, 110, 140, 132, 126, 112, 128, 125, 132, 126, 124, 127, 103, 136, 123, 130, 123, 130, 109, 122, 120, 98, 135, 126, 145, 112, 103, 137, 121, 103, 124, 131, 120, 125, 128, 107, 135, 139, 125, 105, 103, 148, 111, 126, 121, 115, 125, 142, 124, 129, 129, 130, 115, 116, 122, 123, 116, 127, 125, 130, 119, 126, 133, 124, 119, 122, 134, 126, 118, 133, 124, 120, 124, 145, 112, 124, 131, 133, 117, 112, 119, 114, 118, 125, 112, 122, 111, 125, 121, 131, 125, 130, 134, 131, 120, 112, 123, 130, 130, 117, 113, 120, 128, 126, 136, 115, 121, 110, 132, 142, 129, 127, 118, 121, 126, 130, 132, 137, 118, 136, 127, 118, 105, 138, 139, 133, 130, 127, 124, 125, 136, 130, 123, 130, 112, 134, 118, 128, 134, 131, 126, 133, 125, 106, 111, 142, 122, 125, 115, 118, 109, 127, 124, 118, 137, 121, 129, 139, 129, 127, 124, 124, 134, 134, 134, 139, 127, 133, 132, 132, 118, 124, 131, 131, 133, 110, 135, 120, 155, 125, 138, 137, 137, 137, 130, 140, 128, 134, 135, 146, 121, 124, 128, 132, 124, 120, 138, 108, 130, 131, 137, 114, 133, 121, 129, 133, 131, 142, 121, 111, 120, 113, 115, 134, 116, 124, 125, 137, 115, 133, 137, 133, 115, 126, 129, 123, 133, 141, 125, 122, 125, 121, 120, 139, 134, 110, 117, 132, 119, 138, 128, 103, 128, 112, 109, 142, 116, 138, 132, 129, 133, 117, 130, 114, 105, 123, 124, 108, 126, 113, 139, 119, 112, 127, 124, 131, 108, 111, 110, 124, 125, 120, 108, 132, 128, 125, 119, 118, 123, 106, 140, 118, 132, 131, 131, 100, 138, 117, 117, 135, 128, 122, 129, 132, 110, 116, 133, 128, 120, 130, 128, 134, 133, 124, 124, 117, 133, 121, 119, 104, 118, 116, 129, 116, 122, 144, 137, 121, 121, 117, 116, 135, 122, 125, 121, 131, 124, 130, 125, 127, 136, 118, 117, 141, 120, 118, 121, 128, 127, 110, 128, 136, 126, 108, 119, 112, 124, 114, 119, 112, 119, 119, 119, 126, 144, 124, 126, 143, 145, 130, 123, 112, 112, 122, 123, 140, 134, 127, 117, 106, 130, 146, 117, 134, 120, 133, 121, 124, 131, 135, 130, 137, 137, 134, 131, 118, 126, 124, 139, 148, 127, 126, 141, 128, 119, 119, 145, 128, 120, 124, 122, 127, 132, 113, 135, 117, 135, 127, 113, 122, 125, 132, 130, 117, 123, 123, 124, 105, 132, 121, 126, 126, 114, 110, 124, 119, 128, 129, 126, 125, 118, 133, 120, 133, 113, 111, 136, 128, 120, 110, 134, 127, 135, 125, 121, 121, 136, 133, 121, 128, 118, 123, 130, 123, 129, 113, 118, 138, 120, 117, 127, 123, 106, 114, 126, 120, 125, 143, 150, 129, 111, 120, 127, 130, 111, 124, 126, 122, 118, 122, 128, 111, 122, 131, 125, 113, 132, 133, 119, 115, 114, 131, 130, 118, 128, 138, 147, 128, 133, 136, 98, 126, 138, 144, 120, 144, 125, 151, 134, 123, 124, 135, 132, 128, 131, 117, 116, 128, 120, 134, 132, 117, 106, 121, 132, 124, 131, 121, 119, 119, 132, 131, 122, 124, 134, 124, 112, 136, 113, 131, 131, 140, 127, 136, 130, 129, 131, 128, 128, 117, 127, 130, 109, 143, 126, 119, 141, 116, 118, 135, 121, 117, 110, 129, 129, 123, 125, 113, 124, 115, 130, 129, 152, 135, 136, 136, 141, 132, 139, 106, 106, 127, 130, 117, 150, 117, 144, 106, 137, 104, 152, 117, 136, 112, 135, 108, 124, 123, 139, 110, 134, 122, 132, 128, 105, 134, 115, 119, 104, 126, 124, 133, 112, 109, 137, 119, 137, 125, 149, 110, 131, 142, 130, 106, 138, 127, 142, 121, 136, 130, 110, 140, 137, 120, 120, 117, 118, 140, 125, 133, 111, 127, 124, 119, 125, 125, 134, 128, 124, 129, 148, 133, 135, 136, 123, 127, 130, 130, 128, 119, 119, 126, 144, 130, 123, 109, 134, 133, 125, 120, 113, 102, 131, 113, 125, 123, 123, 119, 132, 141, 132, 119, 119, 139, 122, 130, 117, 144, 127, 110, 116, 114, 142, 126, 116, 126, 121, 123, 108, 119, 118, 103, 117, 126, 119, 125, 98, 113, 120, 128, 124, 116, 131, 127, 126, 128, 132, 114, 108, 128, 134, 115, 127, 130, 131, 113, 122, 121, 124, 144, 121, 113, 129, 128, 131, 126, 128, 138, 121, 111, 146, 118, 138, 146, 119, 114, 107, 107, 133, 136, 130, 124, 117, 137, 107, 118, 124, 140, 105, 133, 110, 135, 121, 106, 138, 119, 122, 128, 132, 112, 127, 130, 109, 130, 118, 135, 127, 127, 133, 120, 129, 120, 118, 135, 130, 119, 132, 125, 139, 140, 112, 130, 105, 132, 124, 120, 118, 93, 132, 133, 130, 137, 109, 111, 129, 143, 136, 119, 126, 149, 124, 126, 114, 143, 112, 148, 99, 125, 150, 120, 135, 128, 129, 130, 111, 120, 120, 146, 143, 123, 110, 128, 120, 126, 126, 144, 127, 112, 140, 126, 138, 131, 117, 118, 119, 134, 141, 125, 145, 128, 122, 132, 119, 140, 133, 116, 128, 113, 139, 131, 125, 118, 134, 142, 140, 122, 128, 120, 111, 128, 121, 109, 126, 137, 141, 133, 140, 123, 125, 125, 133, 137, 131, 134, 122, 122, 141, 106, 116, 128, 138, 130, 134, 122, 115, 128, 134, 102, 153, 129, 126, 118, 112, 130, 116, 134, 121, 118, 137, 121, 118, 144, 119, 138, 137, 125, 118, 136, 132, 131, 126, 136, 127, 129, 116, 121, 129, 135, 120, 128, 122, 104, 111, 126, 141, 124, 125, 122, 117, 120, 135, 124, 111, 130, 126, 131, 135, 130, 133, 129, 126, 141, 125, 122, 121, 124, 128, 126, 118, 124, 135, 134, 116, 123, 131, 126, 134, 120, 137, 138, 129, 127, 133, 124, 133, 130, 136, 136, 118, 133, 152, 171, 114, 112, 123, 143, 138, 136, 136, 132, 133, 147, 124, 133, 117, 135, 135, 121, 127, 145, 120, 123, 131, 118, 132, 134, 114, 116, 114, 134, 126, 139, 125, 139, 134, 109, 111, 121, 118, 125, 107, 121, 122, 132, 132, 128, 114, 143, 121, 138, 135, 124, 144, 140, 122, 123, 132, 120, 135, 128, 111, 118, 133, 121, 119, 130, 123, 119, 118, 138, 126, 121, 126, 119, 123, 107, 136, 119, 123, 122, 130, 125, 124, 143, 117, 101, 130, 132, 113, 119, 132, 134, 110, 130, 125, 125, 129, 122, 121, 137, 121, 123, 131, 143, 126, 132, 128, 120, 124, 128, 126, 127, 105, 129, 118, 119, 121, 132, 134, 124, 117, 131, 134, 112, 125, 116, 117, 125, 138, 140, 139, 137, 137, 114, 135, 136, 129, 118, 146, 128, 127, 130, 137, 125, 122, 115, 130, 117, 139, 136, 122, 142, 128, 114, 111, 125, 86, 122, 123, 138, 109, 114, 119, 144, 126, 109, 139, 123, 117, 120, 129, 136, 125, 119, 125, 125, 138, 132, 119, 118, 137, 120, 124, 131, 128, 132, 121, 133, 133, 126, 112, 125, 147, 162, 124, 124, 121, 121, 122, 139, 147, 122, 131, 131, 132, 127, 131, 127, 127, 142, 131, 120, 131, 124, 138, 109, 150, 110, 127, 138, 115, 123, 145, 115, 126, 106, 146, 140, 132, 115, 132, 142, 114, 122, 122, 120, 124, 113, 148, 138, 118, 108, 112, 129, 121, 124, 115, 120, 119, 137, 128, 137, 126, 125, 126, 121, 128, 130, 137, 137, 128, 96, 89, 122, 134, 123, 131, 129, 134, 131, 138, 107, 131, 137, 115, 124, 128, 134, 133, 117, 113, 136, 139, 115, 120, 132, 126, 122, 113, 102, 129, 127, 112, 152, 127, 102, 159, 125, 120, 130, 127, 127, 136, 132, 118, 134, 141, 110, 130, 126, 133, 141, 116, 134, 128, 122, 117, 99, 130, 121, 117, 127, 130, 131, 113, 114, 121, 137, 125, 130, 120, 110, 129, 126, 124, 116, 138, 139, 147, 104, 135, 127, 138, 128, 127, 130, 108, 126, 109, 121, 98, 135, 117, 122, 115, 133, 115, 115, 144, 132, 134, 129, 135, 137, 130, 111, 129, 105, 119, 137, 114, 129, 123, 129, 127, 116, 114, 134, 120, 114, 117, 150, 121, 156, 134, 111, 130, 123, 133, 94, 110, 125, 106, 139, 115, 122, 112, 131, 114, 127, 109, 104, 145, 106, 136, 131, 129, 139, 131, 127, 137, 126, 122, 121, 128, 144, 135, 129, 123, 132, 124, 120, 104, 133, 132, 127, 128, 134, 122, 127, 116, 123, 124, 125, 128, 128, 109, 108, 123, 132, 129, 115, 136, 110, 133, 131, 133, 129, 117, 119, 124, 113, 125, 121, 139, 125, 110, 124, 130, 125, 112, 121, 128, 126, 131, 129, 126, 118, 119, 134, 120, 125, 119, 126, 135, 127, 110, 131, 123, 126, 124, 142, 132, 136, 124, 142, 123, 129, 132, 121, 123, 116, 119, 119, 127, 111, 120, 131, 120, 125, 125, 133, 136, 131, 120, 124, 144, 120, 125, 131, 116, 130, 127, 123, 129, 122, 119, 127, 101, 121, 132, 122, 120, 120, 106, 113, 125, 123, 128, 126, 150, 115, 133, 126, 124, 137, 125, 143, 119, 129, 132, 129, 113, 109, 110, 120, 124, 112, 115, 112, 143, 129, 121, 120, 125, 128, 133, 114, 103, 123, 115, 138, 114, 137, 110, 118, 129, 146, 144, 94, 137, 107, 123, 106, 114, 124, 111, 104, 118, 116, 140, 127, 114, 90, 133, 122, 132, 117, 130, 119, 144, 100, 103, 125, 119, 124, 119, 122, 132, 118, 126, 116, 149, 119, 122, 135, 128, 111, 136, 111, 120, 114, 133, 114, 134, 126, 98, 136, 134, 127, 125, 126, 140, 130, 126, 132, 140, 116, 135, 114, 133, 113, 122, 135, 113, 120, 133, 126, 122, 123, 99, 130, 125, 141, 115, 133, 126, 162, 130, 129, 119, 127, 113, 123, 107, 120, 119, 113, 127, 148, 128, 117, 101, 118, 128, 130, 124, 126, 138, 137, 123, 118, 124, 119, 113, 140, 118, 110, 123, 133, 141, 116, 116, 115, 135, 128, 134, 120, 112, 112, 115, 123, 128, 130, 126, 119, 115, 121, 105, 117, 130, 138, 119, 124, 114, 113, 117, 121, 155, 127, 127, 132, 132, 128, 137, 131, 132, 132, 119, 135, 137, 122, 121, 125, 129, 117, 145, 141, 129, 123, 132, 124, 130, 134, 114, 115, 118, 122, 100, 121, 116, 121, 124, 141, 121, 131, 123, 119, 119, 113, 131, 124, 129, 136, 137, 136, 127, 129, 139, 114, 114, 130, 122, 128, 124, 118, 137, 121, 134, 109, 131, 144, 143, 117, 118, 131, 143, 141, 126, 131, 121, 141, 106, 125, 134, 120, 155, 124, 140, 137, 135, 108, 137, 126, 137, 130, 124, 125, 145, 128, 134, 117, 117, 127, 116, 138, 128, 131, 126, 121, 127, 129, 129, 120, 125, 127, 120, 117, 133, 135, 116, 127, 108, 117, 135, 146, 113, 142, 118, 113, 119, 128, 137, 120, 134, 140, 126, 132, 139, 153, 113, 100, 138, 140, 123, 134, 117, 142, 118, 129, 111, 126, 118, 129, 128, 112, 161, 140, 115, 147, 132, 122, 130, 141, 121, 117, 118, 131, 132, 133, 137, 135, 108, 126, 129, 122, 134, 120, 130, 130, 127, 112, 113, 111, 112, 133, 129, 126, 132, 119, 142, 135, 142, 114, 123, 141, 130, 138, 123, 126, 131, 126, 128, 136, 105, 135, 115, 129, 150, 119, 137, 143, 133, 134, 119, 120, 123, 140, 108, 110, 155, 127, 98, 131, 114, 119, 127, 136, 129, 118, 125, 136, 131, 123, 115, 130, 118, 136, 105, 126, 131, 133, 122, 109, 132, 119, 126, 130, 121, 148, 124, 112, 131, 126, 124, 127, 141, 116, 134, 121, 120, 126, 118, 126, 117, 127, 142, 119, 128, 123, 126, 142, 128, 136, 128, 114, 117, 120, 120, 138, 136, 135, 127, 116, 120, 103, 130, 123, 131, 117, 138, 108, 120, 132, 119, 135, 116, 119, 115, 119, 111, 112, 118, 106, 127, 124, 120, 125, 130, 133, 128, 127, 132, 140, 121, 146, 121, 129, 131, 130, 127, 131, 135, 102, 142, 128, 153, 114, 137, 134, 136, 117, 120, 119, 112, 133, 132, 132, 114, 117, 124, 103, 114, 118, 122, 139, 142, 124, 131, 109, 124, 139, 117, 123, 128, 141, 134, 128, 138, 137, 118, 125, 131, 125, 131, 138, 135, 124, 118, 137, 152, 123, 122, 133, 123, 133, 128, 131, 115, 130, 121, 144, 116, 109, 106, 123, 130, 123, 110, 119, 126, 124, 128, 107, 131, 117, 128, 116, 125, 120, 146, 134, 118, 127, 136, 118, 114, 126, 108, 129, 139, 137, 102, 138, 127, 124, 123, 111, 126, 125, 129, 130, 136, 116, 126, 107, 123, 135, 121, 110, 121, 117, 130, 126, 106, 134, 119, 133, 114, 138, 116, 126, 118, 120, 106, 114, 118, 149, 105, 128, 120, 124, 125, 130, 143, 130, 120, 122, 138, 124, 134, 131, 112, 143, 121, 125, 120, 130, 116, 115, 112, 138, 130, 121, 135, 133, 123, 113, 131, 117, 123, 131, 117, 137, 131, 119, 117, 126, 148, 124, 121, 113, 128, 131, 116, 130, 113, 140, 115, 151, 119, 127, 127, 138, 110, 139, 118, 121, 137, 126, 111, 120, 89, 133, 117, 127, 126, 112, 139, 121, 119, 122, 142, 113, 126, 131, 121, 125, 125, 127, 139, 124, 138, 128, 141, 128, 130, 106, 126, 138, 140, 137, 118, 105, 128, 159, 127, 131, 132, 126, 123, 115, 129, 107, 119, 132, 125, 143, 134, 122, 120, 113, 126, 122, 146, 116, 129, 124, 141, 112, 126, 130, 130, 117, 128, 124, 132, 127, 134, 131, 120, 143, 123, 115, 131, 131, 130, 125, 124, 117, 128, 149, 134, 111, 104, 118, 132, 133, 138, 139, 117, 126, 109, 127, 112, 136, 115, 147, 124, 127, 118, 156, 136, 128, 117, 113, 112, 152, 130, 109, 132, 142, 136, 128, 121, 123, 122, 133, 106, 139, 125, 148, 131, 126, 128, 111, 108, 121, 128, 145, 139, 110, 137, 128, 116, 128, 128, 135, 142, 113, 129, 124, 126, 125, 116, 138, 140, 124, 127, 119, 137, 128, 135, 135, 132, 114, 121, 139, 136, 138, 116, 120, 112, 125, 111, 131, 127, 121, 117, 104, 96, 97, 121, 111, 123, 115, 131, 126, 113, 127, 127, 129, 117, 115, 145, 104, 121, 112, 134, 121, 125, 147, 119, 128, 135, 121, 129, 120, 121, 148, 118, 121, 127, 117, 118, 111, 105, 120, 117, 115, 133, 129, 139, 103, 118, 140, 125, 130, 132, 111, 137, 122, 112, 107, 109, 141, 119, 111, 128, 147, 134, 131, 123, 157, 112, 120, 136, 123, 120, 115, 119, 129, 128, 119, 143, 133, 125, 117, 120, 115, 130, 108, 134, 128, 133, 123, 126, 118, 127, 119, 116, 115, 134, 138, 120, 122, 132, 125, 136, 112, 120, 113, 134, 132, 141, 129, 139, 130, 128, 137, 118, 135, 112, 163, 133, 109, 132, 130, 130, 132, 114, 130, 109, 127, 127, 138, 113, 126, 119, 136, 136, 120, 122, 131, 130, 124, 121, 109, 119, 151, 122, 121, 123, 123, 128, 149, 118, 118, 108, 118, 126, 143, 125, 113, 122, 136, 124, 117, 112, 111, 117, 118, 130, 123, 122, 155, 139, 112, 138, 116, 136, 118, 119, 112, 132, 124, 127, 131, 120, 127, 122, 124, 130, 111, 114, 125, 120, 143, 135, 139, 122, 119, 106, 131, 120, 140, 124, 114, 134, 141, 117, 133, 120, 126, 131, 118, 130, 112, 135, 125, 129, 134, 137, 129, 137, 119, 109, 136, 111, 126, 156, 126, 140, 114, 134, 114, 123, 141, 108, 162, 131, 105, 112, 131, 134, 118, 112, 124, 108, 97, 127, 127, 140, 117, 126, 141, 121, 105, 129, 110, 109, 148, 127, 129, 133, 128, 125, 108, 129, 118, 131, 111, 112, 129, 122, 126, 135, 138, 119, 134, 141, 120, 138, 135, 115, 123, 113, 126, 129, 123, 130, 117, 121, 123, 123, 146, 120, 141, 112, 133, 132, 106, 127, 112, 112, 133, 114, 137, 120, 129, 138, 93, 117, 128, 111, 142, 117, 119, 138, 131, 127, 127, 127, 116, 108, 120, 128, 143, 117, 128, 125, 120, 136, 118, 126, 125, 121, 129, 132, 121, 122, 120, 113, 111, 135, 121, 144, 145, 131, 117, 127, 115, 111, 120, 118, 119, 119, 144, 122, 105, 130, 140, 109, 114, 129, 129, 131, 128, 135, 122, 139, 114, 134, 114, 126, 140, 151, 123, 115, 130, 138, 120, 140, 122, 125, 126, 122, 127, 127, 121, 125, 131, 102, 136, 141, 118, 106, 136, 113, 119, 121, 158, 120, 116, 140, 127, 130, 103, 112, 131, 120, 123, 137, 119, 138, 110, 111, 127, 121, 114, 125, 139, 141, 149, 134, 134, 122, 120, 115, 124, 125, 125, 123, 125, 137, 145, 127, 137, 106, 138, 145, 107, 118, 128, 124, 114, 129, 129, 119, 121, 131, 147, 123, 138, 123, 119, 112, 131, 136, 139, 121, 123, 135, 125, 121, 122, 133, 129, 127, 116, 123, 135, 125, 142, 113, 123, 130, 124, 113, 127, 110, 119, 116, 124, 132, 138, 125, 148, 119, 145, 125, 143, 114, 109, 120, 138, 118, 114, 120, 122, 130, 133, 112, 119, 130, 128, 128, 115, 123, 130, 121, 126, 128, 129, 123, 115, 109, 157, 122, 133, 111, 111, 130, 109, 130, 123, 153, 132, 116, 121, 128, 125, 133, 126, 111, 130, 123, 132, 131, 132, 130, 118, 130, 125, 123, 130, 122, 125, 102, 119, 132, 140, 133, 120, 135, 112, 114, 121, 114, 117, 128, 105, 128, 91, 130, 132, 139, 133, 128, 119, 132, 124, 113, 107, 139, 144, 138, 129, 117, 152, 129, 131, 113, 109, 105, 124, 139, 137, 130, 118, 111, 130, 125, 143, 115, 116, 125, 136, 137, 143, 121, 122, 131, 114, 122, 127, 121, 118, 130, 115, 107, 133, 135, 121, 124, 112, 117, 131, 112, 117, 144, 130, 143, 123, 141, 117, 119, 123, 107, 110, 131, 109, 125, 103, 112, 115, 127, 135, 128, 107, 135, 114, 126, 128, 126, 111, 123, 117, 121, 119, 130, 133, 131, 143, 129, 135, 107, 126, 131, 136, 130, 143, 134, 128, 130, 125, 122, 139, 130, 134, 137, 122, 122, 122, 113, 124, 128, 117, 116, 128, 131, 119, 121, 126, 136, 129, 122, 127, 119, 131, 148, 133, 115, 138, 121, 131, 130, 123, 134, 131, 116, 133, 125, 122, 139, 116, 120, 135, 134, 119, 143, 139, 116, 94, 129, 147, 129, 115, 123, 107, 128, 135, 133, 110, 123, 117, 113, 133, 116, 115, 128, 118, 126, 118, 122, 142, 116, 138, 142, 125, 131, 123, 125, 151, 128, 140, 140, 126, 134, 140, 126, 113, 112, 115, 109, 133, 128, 115, 129, 109, 116, 123, 125, 149, 126, 122, 112, 119, 116, 122, 116, 133, 131, 130, 111, 106, 122, 128, 116, 135, 122, 108, 121, 103, 108, 109, 110, 106, 111, 124, 139, 114, 129, 122, 134, 125, 126, 127, 143, 119, 116, 140, 128, 109, 160, 120, 134, 143, 136, 138, 122, 138, 131, 120, 116, 122, 136, 134, 123, 115, 118, 123, 129, 118, 140, 100, 136, 103, 123, 135, 114, 149, 130, 134, 137, 132, 113, 127, 133, 141, 126, 106, 128, 120, 127, 140, 120, 138, 138, 113, 142, 132, 112, 133, 101, 119, 134, 119, 101, 122, 122, 117, 128, 132, 121, 111, 111, 122, 128, 130, 117, 125, 124, 107, 111, 135, 129, 127, 135, 137, 127, 125, 128, 122, 127, 128, 121, 133, 119, 126, 116, 127, 144, 135, 129, 119, 135, 129, 122, 137, 117, 124, 116, 146, 122, 108, 129, 124, 114, 120, 145, 116, 116, 134, 130, 140, 118, 106, 123, 121, 116, 133, 115, 122, 131, 124, 113, 134, 142, 120, 125, 125, 98, 115, 117, 117, 146, 114, 135, 134, 125, 133, 103, 127, 138, 134, 122, 125, 139, 130, 130, 111, 131, 131, 116, 133, 127, 112, 125, 143, 135, 108, 87, 114, 118, 139, 128, 140, 127, 144, 133, 138, 128, 119, 129, 131, 126, 121, 123, 116, 127, 142, 107, 135, 128, 132, 122, 120, 120, 129, 123, 131, 131, 114, 132, 128, 121, 133, 113, 130, 130, 117, 133, 147, 120, 122, 122, 116, 124, 130, 118, 130, 128, 138, 127, 124, 113, 125, 99, 118, 123, 125, 130, 115, 116, 124, 125, 114, 109, 140, 116, 106, 136, 138, 134, 135, 133, 133, 129, 135, 113, 126, 133, 108, 115, 116, 114, 113, 131, 120, 126, 112, 120, 130, 105, 139, 121, 132, 119, 115, 127, 119, 115, 129, 121, 125, 131, 124, 103, 125, 124, 130, 116, 147, 128, 138, 135, 116, 132, 140, 137, 113, 121, 121, 103, 129, 127, 145, 111, 125, 124, 122, 114, 125, 118, 127, 114, 108, 125, 121, 154, 116, 116, 118, 119, 124, 112, 113, 124, 109, 128, 140, 131, 123, 124, 131, 129, 113, 125, 125, 145, 122, 113, 114, 134, 123, 120, 123, 129, 128, 125, 115, 130, 138, 146, 148, 121, 126, 134, 134, 131, 133, 125, 119, 119, 127, 117, 115, 139, 127, 128, 130, 115, 124, 104, 123, 119, 110, 127, 127, 126, 128, 130, 144, 126, 128, 116, 130, 111, 136, 117, 119, 134, 115, 120, 127, 142, 122, 123, 135, 141, 131, 118, 111, 142, 123, 114, 115, 93, 115, 132, 125, 127, 148, 115, 128, 141, 122, 118, 125, 132, 142, 128, 133, 109, 128, 119, 118, 128, 145, 135, 131, 116, 136, 152, 114, 115, 144, 123, 126, 144, 128, 120, 124, 140, 124, 114, 130, 115, 126, 126, 139, 127, 140, 127, 126, 138, 120, 133, 119, 113, 132, 116, 134, 114, 109, 131, 141, 124, 129, 128, 119, 117, 127, 124, 121, 122, 135, 134, 123, 131, 117, 132, 140, 123, 124, 125, 126, 131, 107, 130, 126, 123, 124, 134, 130, 129, 115, 123, 130, 110, 112, 126, 126, 112, 117, 133, 129, 124, 146, 124, 125, 122, 132, 118, 121, 146, 124, 123, 140, 135, 146, 114, 118, 135, 130, 120, 111, 123, 128, 148, 134, 113, 128, 131, 106, 122, 119, 123, 125, 139, 131, 124, 128, 118, 151, 110, 139, 133, 115, 120, 124, 127, 123, 132, 134, 119, 142, 128, 114, 126, 114, 121, 128, 135, 126, 110, 113, 125, 145, 133, 110, 119, 137, 116, 105, 114, 121, 118, 111, 115, 120, 121, 122, 107, 104, 112, 107, 128, 119, 144, 117, 128, 130, 127, 120, 133, 118, 134, 142, 136, 126, 109, 135, 137, 134, 103, 132, 126, 113, 135, 131, 106, 86, 117, 140, 121, 122, 109, 126, 142, 126, 120, 116, 125, 132, 139, 116, 125, 110, 129, 123, 152, 117, 122, 129, 141, 130, 119, 102, 113, 128, 117, 117, 112, 132, 109, 140, 113, 122, 137, 125, 120, 117, 106, 133, 125, 126, 136, 136, 126, 131, 128, 155, 144, 140, 122, 116, 129, 113, 117, 133, 126, 117, 134, 118, 122, 141, 118, 118, 137, 115, 126, 109, 109, 125, 122, 119, 123, 126, 112, 133, 125, 126, 126, 101, 136, 103, 140, 131, 136, 125, 135, 136, 141, 121, 137, 123, 123, 107, 116, 127, 125, 122, 117, 100, 121, 133, 119, 144, 123, 135, 142, 94, 122, 115, 111, 129, 121, 137, 128, 123, 134, 121, 121, 116, 122, 133, 122, 109, 125, 117, 123, 133, 118, 122, 108, 113, 134, 128, 134, 114, 129, 124, 125, 141, 126, 124, 119, 137, 117, 118, 121, 115, 120, 134, 157, 128, 124, 113, 141, 112, 131, 121, 112, 124, 130, 119, 134, 128, 145, 114, 132, 137, 138, 121, 130, 124, 116, 107, 128, 124, 118, 132, 144, 117, 131, 117, 128, 124, 130, 125, 111, 117, 133, 130, 130, 110, 124, 113, 117, 126, 116, 129, 130, 124, 128, 114, 130, 142, 121, 98, 110, 114, 112, 119, 123, 124, 133, 137, 97, 126, 112, 126, 123, 119, 127, 111, 137, 114, 118, 144, 126, 124, 130, 125, 116, 114, 117, 114, 139, 119, 115, 118, 128, 129, 122, 124, 118, 123, 123, 135, 130, 137, 131, 120, 128, 123, 130, 125, 120, 123, 126, 130, 124, 122, 130, 134, 123, 109, 120, 138, 149, 112, 101, 125, 149, 133, 137, 144, 115, 121, 128, 120, 134, 127, 109, 128, 125, 122, 115, 112, 143, 117, 126, 120, 119, 119, 119, 122, 134, 117, 144, 124, 120, 125, 123, 123, 143, 122, 131, 122, 126, 124, 134, 129, 129, 134, 141, 119, 124, 127, 124, 123, 127, 101, 116, 147, 133, 125, 131, 133, 140, 132, 134, 118, 117, 143, 124, 131, 130, 129, 128, 125, 136, 120, 132, 134, 119, 128, 141, 123, 115, 117, 109, 116, 115, 116, 141, 123, 122, 117, 118, 126, 137, 127, 138, 135, 149, 109, 139, 141, 142, 123, 126, 136, 115, 136, 129, 139, 125, 135, 133, 127, 111, 119, 106, 146, 126, 148, 119, 136, 143, 127, 122, 128, 126, 109, 136, 146, 119, 143, 111, 125, 126, 121, 163, 129, 119, 113, 134, 146, 135, 123, 117, 109, 120, 119, 115, 114, 104, 131, 134, 148, 145, 123, 122, 133, 119, 131, 149, 127, 130, 129, 114, 130, 107, 109, 137, 130, 128, 132, 141, 137, 114, 144, 125, 134, 126, 123, 128, 127, 134, 127, 132, 127, 120, 131, 122, 118, 122, 130, 126, 147, 141, 130, 128, 135, 128, 132, 111, 133, 152, 127, 123, 140, 135, 129, 123, 119, 130, 123, 139, 132, 127, 137, 103, 135, 115, 129, 142, 116, 111, 126, 119, 120, 123, 115, 119, 129, 121, 128, 115, 125, 123, 85, 125, 108, 111, 110, 118, 113, 135, 123, 136, 127, 139, 134, 108, 134, 117, 100, 106, 141, 126, 124, 143, 120, 133, 133, 119, 125, 122, 116, 114, 131, 126, 117, 128, 136, 110, 138, 119, 120, 141, 113, 124, 112, 131, 121, 134, 138, 116, 134, 123, 115, 126, 117, 118, 127, 116, 141, 127, 116, 126, 134, 110, 123, 132, 119, 120, 112, 137, 109, 105, 120, 113, 135, 128, 130, 135, 118, 140, 123, 122, 111, 134, 123, 121, 148, 125, 136, 127, 115, 134, 123, 136, 125, 142, 124, 137, 115, 116, 131, 123, 130, 119, 115, 132, 103, 128, 124, 133, 132, 115, 129, 111, 128, 131, 135, 141, 125, 117, 120, 121, 140, 137, 122, 129, 122, 126, 127, 135, 131, 130, 117, 121, 111, 130, 126, 134, 122, 101, 110, 119, 128, 114, 124, 119, 125, 118, 125, 126, 123, 126, 123, 127, 129, 124, 122, 120, 130, 120, 131, 122, 134, 114, 138, 120, 118, 135, 110, 120, 136, 122, 123, 123, 127, 134, 123, 110, 129, 120, 114, 119, 127, 124, 109, 124, 133, 127, 124, 129, 121, 128, 120, 119, 126, 117, 136, 140, 132, 130, 127, 111, 124, 132, 120, 128, 111, 123, 136, 118, 127, 122, 124, 135, 129, 139, 129, 138, 127, 127, 111, 133, 140, 134, 137, 117, 135, 114, 119, 138, 141, 107, 139, 137, 129, 129, 118, 153, 123, 130, 128, 127, 136, 129, 127, 146, 129, 118, 133, 113, 122, 121, 114, 122, 112, 111, 115, 130, 132, 112, 125, 133, 127, 114, 124, 142, 120, 111, 105, 159, 134, 117, 127, 119, 124, 131, 145, 133, 122, 117, 122, 125, 114, 131, 129, 137, 102, 139, 130, 142, 129, 120, 129, 143, 127, 112, 119, 111, 143, 142, 117, 120, 129, 134, 137, 116, 134, 130, 116, 108, 128, 121, 115, 128, 129, 118, 126, 142, 142, 118, 134, 118, 133, 123, 109, 121, 115, 128, 128, 128, 115, 122, 134, 153, 120, 94, 130, 120, 117, 132, 113, 123, 109, 119, 142, 126, 136, 135, 125, 140, 118, 140, 135, 133, 127, 143, 134, 114, 134, 123, 120, 110, 115, 128, 130, 140, 117, 121, 140, 122, 105, 122, 128, 129, 129, 130, 127, 110, 136, 112, 116, 138, 112, 111, 125, 134, 134, 117, 119, 132, 115, 128, 103, 117, 125, 136, 126, 126, 120, 129, 128, 118, 113, 149, 109, 124, 138, 127, 115, 125, 117, 126, 128, 140, 143, 117, 142, 117, 120, 134, 115, 127, 129, 137, 142, 125, 103, 137, 113, 116, 117, 135, 119, 124, 125, 113, 119, 138, 117, 122, 110, 129, 127, 135, 146, 126, 108, 139, 133, 129, 140, 115, 139, 126, 124, 129, 122, 137, 142, 124, 117, 131, 133, 134, 132, 134, 136, 111, 107, 144, 137, 142, 137, 121, 142, 131, 132, 127, 121, 125, 127, 130, 135, 144, 130, 133, 124, 121, 129, 105, 121, 129, 138, 121, 137, 113, 124, 129, 114, 114, 136, 113, 127, 122, 123, 125, 125, 117, 130, 130, 133, 118, 120, 117, 110, 125, 139, 116, 136, 124, 106, 132, 126, 103, 139, 131, 141, 111, 112, 131, 112, 115, 120, 122, 125, 119, 131, 136, 112, 134, 134, 130, 130, 141, 115, 131, 131, 145, 112, 147, 143, 136, 112, 134, 122, 128, 117, 136, 126, 144, 130, 123, 127, 123, 116, 123, 122, 112, 131, 125, 125, 120, 129, 113, 133, 112, 137, 133, 131, 131, 123, 116, 119, 133, 125, 120, 113, 126, 114, 116, 106, 128, 134, 121, 121, 112, 120, 108, 123, 106, 133, 138, 146, 132, 109, 109, 115, 130, 120, 122, 119, 114, 131, 105, 141, 125, 124, 126, 124, 130, 119, 132, 126, 130, 112, 118, 108, 137, 117, 141, 130, 133, 134, 98, 130, 127, 120, 126, 123, 127, 114, 129, 119, 127, 119, 131, 112, 126, 135, 121, 118, 125, 105, 136, 130, 133, 110, 120, 90, 139, 126, 136, 107, 111, 117, 142, 123, 117, 129, 117, 131, 137, 131, 133, 120, 125, 123, 105, 127, 122, 127, 139, 129, 126, 121, 129, 104, 133, 126, 127, 138, 110, 122, 136, 125, 125, 122, 117, 129, 110, 112, 135, 133, 125, 118, 111, 120, 120, 125, 122, 131, 134, 118, 116, 130, 122, 123, 120, 149, 123, 123, 119, 114, 113, 134, 119, 116, 105, 125, 133, 125, 144, 141, 126, 123, 121, 122, 125, 137, 119, 110, 131, 120, 128, 127, 129, 120, 150, 126, 128, 123, 131, 121, 112, 119, 114, 126, 128, 144, 129, 120, 139, 145, 123, 117, 122, 122, 128, 128, 114, 126, 141, 117, 125, 118, 122, 132, 117, 128, 124, 139, 122, 128, 130, 128, 129, 119, 123, 120, 132, 113, 137, 129, 137, 110, 130, 123, 128, 133, 113, 135, 110, 110, 108, 123, 113, 133, 114, 125, 141, 115, 122, 127, 123, 127, 141, 118, 124, 124, 132, 132, 105, 119, 133, 125, 114, 133, 128, 139, 131, 118, 122, 118, 127, 124, 121, 111, 133, 117, 134, 142, 133, 125, 136, 114, 132, 120, 120, 129, 117, 113, 116, 110, 137, 118, 118, 124, 116, 143, 122, 119, 144, 146, 105, 128, 105, 118, 133, 133, 130, 131, 123, 122, 130, 139, 132, 140, 118, 119, 128, 122, 121, 109, 132, 111, 122, 133, 112, 126, 125, 89, 138, 125, 119, 118, 120, 133, 118, 114, 116, 134, 133, 130, 122, 114, 115, 129, 113, 110, 123, 127, 120, 129, 123, 118, 130, 135, 121, 109, 123, 132, 131, 136, 134, 135, 135, 128, 127, 122, 109, 145, 128, 117, 113, 135, 133, 104, 127, 126, 115, 137, 107, 117, 131, 134, 120, 121, 130, 148, 139, 123, 132, 128, 135, 131, 122, 117, 132, 101, 140, 138, 136, 119, 125, 118, 119, 139, 133, 132, 139, 137, 124, 129, 138, 155, 138, 141, 132, 127, 137, 137, 129, 128, 121, 134, 119, 132, 125, 119, 122, 137, 129, 123, 107, 131, 128, 133, 136, 130, 127, 122, 125, 111, 123, 129, 144, 116, 114, 124, 117, 129, 128, 129, 113, 130, 126, 96, 114, 132, 123, 127, 115, 129, 122, 113, 113, 139, 117, 127, 121, 117, 109, 160, 120, 130, 124, 118, 123, 132, 126, 121, 148, 114, 151, 133, 112, 123, 129, 115, 132, 115, 126, 133, 139, 126, 123, 122, 114, 142, 124, 106, 127, 104, 139, 115, 127, 123, 122, 119, 113, 120, 119, 118, 136, 120, 114, 103, 118, 146, 116, 126, 106, 116, 133, 131, 138, 141, 121, 123, 126, 147, 115, 123, 124, 135, 124, 124, 121, 136, 131, 134, 125, 141, 150, 123, 117, 143, 126, 140, 136, 128, 127, 121, 126, 131, 147, 128, 116, 132, 134, 144, 141, 100, 123, 120, 114, 130, 117, 114, 126, 133, 115, 130, 131, 123, 120, 127, 127, 125, 123, 141, 109, 120, 114, 134, 110, 121, 136, 139, 129, 134, 125, 129, 132, 110, 121, 125, 122, 115, 145, 115, 127, 123, 125, 121, 121, 118, 117, 118, 134, 131, 117, 105, 109, 100, 131, 137, 137, 116, 119, 144, 111, 146, 119, 123, 116, 119, 95, 118, 141, 120, 124, 145, 109, 122, 120, 114, 127, 126, 140, 121, 121, 110, 147, 125, 120, 147, 140, 113, 118, 131, 129, 127, 149, 124, 135, 123, 113, 131, 119, 127, 132, 130, 137, 110, 113, 115, 122, 137, 126, 127, 147, 115, 124, 105, 128, 138, 143, 121, 142, 115, 128, 144, 113, 118, 118, 135, 126, 146, 123, 122, 119, 138, 131, 122, 125, 118, 141, 143, 115, 123, 122, 130, 151, 118, 130, 126, 132, 119, 128, 122, 122, 150, 121, 123, 135, 120, 140, 113, 127, 140, 136, 120, 122, 142, 102, 122, 132, 112, 128, 117, 106, 132, 131, 133, 120, 118, 127, 138, 121, 116, 122, 121, 123, 119, 122, 112, 130, 115, 113, 126, 141, 117, 126, 130, 126, 107, 137, 136, 122, 133, 128, 111, 120, 115, 118, 129, 115, 122, 128, 136, 122, 124, 132, 139, 115, 122, 111, 126, 116, 140, 118, 123, 117, 123, 138, 125, 116, 123, 103, 133, 119, 112, 135, 135, 129, 116, 131, 136, 139, 119, 121, 122, 126, 140, 120, 119, 129, 115, 119, 117, 128, 130, 119, 129, 132, 120, 114, 126, 135, 120, 124, 104, 127, 129, 109, 124, 115, 140, 127, 137, 121, 128, 108, 124, 129, 121, 121, 136, 110, 128, 115, 106, 134, 114, 134, 139, 115, 126, 125, 150, 131, 120, 120, 142, 138, 137, 107, 135, 117, 122, 130, 139, 134, 130, 134, 122, 133, 122, 124, 120, 152, 127, 126, 128, 118, 122, 124, 130, 124, 130, 118, 130, 152, 135, 121, 119, 127, 112, 106, 123, 124, 126, 128, 121, 105, 117, 110, 127, 127, 123, 123, 139, 138, 145, 124, 132, 122, 129, 124, 109, 116, 134, 115, 131, 122, 118, 142, 118, 109, 111, 139, 110, 125, 126, 126, 128, 129, 158, 130, 127, 118, 133, 125, 146, 118, 139, 119, 122, 129, 104, 139, 126, 129, 129, 114, 139, 119, 136, 125, 135, 118, 121, 126, 121, 135, 118, 134, 119, 129, 123, 121, 125, 143, 126, 126, 138, 139, 124, 125, 129, 132, 140, 126, 117, 135, 114, 117, 135, 126, 119, 132, 129, 141, 110, 125, 126, 116, 146, 152, 115, 100, 122, 124, 118, 120, 132, 120, 118, 123, 129, 131, 123, 128, 117, 119, 128, 111, 121, 128, 123, 116, 123, 138, 142, 122, 122, 117, 137, 116, 123, 135, 136, 141, 149, 129, 121, 136, 138, 141, 128, 129, 128, 139, 138, 112, 130, 118, 124, 109, 111, 147, 131, 121, 130, 127, 116, 128, 133, 126, 129, 112, 113, 145, 125, 124, 135, 129, 119, 131, 126, 126, 141, 132, 107, 121, 125, 115, 148, 136, 141, 144, 129, 133, 130, 115, 131, 125, 136, 140, 123, 122, 124, 122, 140, 123, 133, 135, 149, 124, 125, 130, 123, 133, 130, 120, 137, 126, 121, 139, 139, 124, 116, 115, 134, 124, 126, 113, 128, 118, 118, 131, 130, 122, 139, 118, 123, 126, 102, 119, 120, 123, 126, 116, 117, 145, 118, 125, 125, 114, 122, 130, 122, 121, 146, 118, 140, 128, 113, 122, 131, 114, 129, 126, 119, 138, 121, 130, 136, 121, 138, 121, 98, 137, 121, 121, 119, 142, 143, 134, 124, 132, 136, 124, 123, 125, 122, 129, 121, 137, 124, 107, 114, 129, 115, 110, 152, 117, 131, 126, 112, 128, 129, 139, 113, 122, 112, 130, 122, 107, 114, 133, 124, 114, 127, 110, 115, 111, 136, 121, 134, 106, 112, 131, 121, 143, 118, 121, 134, 112, 129, 117, 130, 113, 141, 132, 109, 128, 115, 131, 119, 111, 118, 123, 120, 138, 120, 121, 118, 135, 119, 135, 116, 136, 114, 115, 118, 125, 109, 111, 133, 124, 137, 113, 114, 129, 126, 118, 140, 128, 107, 126, 138, 112, 131, 127, 115, 148, 110, 134, 126, 128, 130, 123, 113, 130, 142, 123, 124, 131, 126, 123, 114, 136, 137, 126, 120, 144, 120, 120, 122, 120, 129, 126, 112, 125, 123, 126, 129, 127, 127, 105, 139, 130, 126, 113, 118, 124, 115, 117, 121, 123, 120, 122, 118, 135, 133, 117, 129, 117, 118, 123, 123, 149, 119, 123, 120, 127, 121, 121, 122, 122, 124, 124, 120, 121, 116, 107, 124, 137, 105, 133, 116, 139, 131, 123, 120, 113, 121, 118, 118, 114, 120, 121, 140, 141, 118, 116, 126, 130, 133, 105, 122, 126, 127, 112, 130, 127, 116, 128, 125, 111, 119, 126, 130, 130, 134, 134, 127, 129, 102, 120, 121, 109, 142, 128, 121, 127, 131, 130, 126, 133, 142, 129, 128, 101, 123, 127, 132, 119, 128, 138, 126, 130, 132, 120, 138, 130, 113, 119, 132, 132, 130, 114, 119, 129, 118, 151, 118, 134, 123, 102, 128, 126, 120, 123, 124, 135, 107, 112, 113, 106, 122, 154, 124, 105, 122, 106, 123, 131, 106, 139, 135, 121, 124, 119, 142, 125, 132, 142, 111, 140, 131, 144, 130, 110, 136, 124, 116, 135, 126, 137, 134, 131, 131, 150, 126, 124, 112, 115, 136, 124, 137, 109, 126, 127, 130, 125, 122, 115, 146, 116, 124, 123, 127, 144, 146, 116, 120, 119, 119, 135, 123, 120, 133, 127, 127, 130, 130, 121, 112, 112, 115, 143, 129, 119, 126, 127, 140, 138, 114, 132, 132, 122, 127, 136, 127, 120, 135, 101, 128, 117, 135, 108, 125, 118, 127, 118, 138, 124, 144, 128, 132, 116, 142, 111, 128, 124, 130, 106, 129, 120, 136, 123, 114, 125, 114, 135, 134, 109, 118, 125, 131, 116, 103, 133, 121, 132, 112, 133, 114, 126, 120, 124, 107, 130, 113, 137, 132, 105, 116, 141, 119, 123, 147, 129, 136, 134, 120, 134, 131, 112, 121, 113, 101, 126, 120, 156, 125, 128, 125, 124, 122, 128, 119, 125, 112, 129, 120, 126, 133, 115, 106, 119, 113, 117, 124, 136, 144, 116, 135, 94, 132, 118, 161, 112, 130, 123, 108, 113, 128, 141, 136, 108, 138, 134, 125, 132, 120, 119, 111, 118, 120, 144, 132, 118, 122, 112, 134, 109, 116, 118, 128, 122, 133, 130, 136, 110, 128, 125, 120, 135, 125, 133, 111, 123, 136, 115, 121, 130, 136, 125, 121, 119, 123, 121, 119, 119, 155, 117, 105, 124, 116, 120, 127, 132, 114, 134, 117, 125, 125, 129, 126, 135, 131, 122, 127, 135, 109, 132, 116, 106, 103, 129, 114, 107, 114, 118, 125, 143, 135, 108, 104, 113, 120, 128, 108, 131, 131, 126, 97, 115, 103, 133, 127, 117, 126, 127, 119, 133, 131, 125, 135, 146, 128, 137, 121, 120, 128, 131, 135, 129, 156, 127, 130, 127, 122, 123, 127, 110, 133, 115, 123, 130, 129, 139, 100, 117, 126, 112, 137, 127, 111, 117, 111, 133, 130, 106, 101, 134, 114, 111, 119, 114, 134, 126, 134, 134, 130, 126, 135, 140, 130, 124, 122, 139, 142, 126, 126, 134, 149, 130, 111, 122, 136, 154, 132, 133, 140, 111, 135, 124, 123, 128, 146, 122, 105, 147, 126, 110, 112, 129, 128, 118, 134, 118, 133, 126, 119, 126, 136, 136, 122, 139, 128, 127, 138, 120, 133, 134, 134, 122, 121, 122, 126, 131, 146, 123, 120, 136, 119, 120, 133, 136, 122, 134, 134, 119, 130, 113, 132, 132, 126, 127, 118, 128, 136, 129, 133, 138, 139, 113, 126, 119, 131, 106, 131, 131, 122, 128, 129, 118, 129, 128, 127, 144, 142, 136, 131, 128, 131, 127, 126, 123, 123, 107, 132, 130, 119, 109, 109, 134, 121, 131, 141, 117, 136, 120, 112, 108, 114, 129, 122, 113, 115, 133, 129, 141, 130, 133, 118, 126, 133, 112, 125, 121, 114, 120, 132, 132, 118, 119, 106, 122, 116, 124, 141, 109, 132, 112, 116, 117, 136, 109, 116, 128, 122, 141, 116, 125, 115, 119, 121, 142, 118, 130, 124, 135, 143, 124, 124, 129, 114, 122, 112, 138, 130, 118, 117, 133, 114, 141, 123, 140, 113, 126, 132, 132, 131, 133, 129, 115, 121, 120, 125, 136, 128, 104, 107, 133, 113, 127, 128, 135, 123, 125, 137, 126, 124, 117, 125, 104, 136, 127, 130, 123, 106, 114, 116, 123, 134, 122, 127, 120, 111, 119, 114, 125, 114, 125, 127, 138, 129, 110, 132, 132, 121, 109, 130, 136, 120, 129, 136, 112, 138, 128, 136, 130, 135, 130, 127, 141, 123, 124, 124, 129, 109, 107, 136, 129, 125, 134, 124, 107, 147, 126, 126, 146, 122, 118, 133, 138, 129, 101, 131, 122, 119, 115, 122, 116, 134, 136, 104, 138, 139, 146, 117, 116, 137, 138, 109, 121, 134, 108, 127, 116, 137, 125, 154, 140, 127, 112, 117, 113, 119, 142, 122, 123, 119, 125, 130, 108, 134, 139, 108, 122, 94, 134, 143, 133, 122, 139, 132, 126, 116, 126, 128, 107, 135, 133, 115, 129, 126, 128, 116, 120, 129, 115, 144, 118, 128, 103, 133, 128, 116, 125, 127, 117, 126, 125, 126, 129, 144, 125, 118, 126, 125, 124, 102, 139, 122, 132, 113, 126, 143, 136, 117, 116, 121, 106, 135, 116, 131, 99, 124, 143, 128, 121, 120, 139, 126, 115, 127, 125, 129, 114, 129, 115, 138, 126, 124, 133, 133, 130, 133, 138, 146, 125, 129, 129, 122, 127, 125, 118, 131, 112, 131, 126, 107, 109, 141, 134, 130, 115, 118, 124, 111, 127, 132, 139, 124, 97, 121, 125, 126, 114, 137, 116, 119, 123, 119, 149, 126, 121, 126, 121, 120, 145, 149, 137, 113, 111, 129, 127, 125, 116, 124, 120, 112, 119, 126, 117, 109, 115, 127, 126, 145, 126, 121, 141, 122, 110, 111, 112, 120, 111, 118, 136, 121, 111, 129, 100, 135, 129, 142, 98, 120, 110, 112, 126, 140, 134, 132, 105, 117, 121, 124, 111, 134, 122, 129, 121, 110, 124, 145, 124, 121, 141, 123, 129, 151, 129, 135, 128, 135, 120, 135, 118, 134, 110, 133, 126, 121, 122, 112, 128, 124, 108, 135, 139, 128, 100, 117, 129, 125, 132, 126, 152, 118, 119, 118, 130, 127, 130, 118, 117, 142, 124, 124, 130, 117, 125, 124, 122, 124, 115, 131, 128, 124, 129, 113, 122, 122, 123, 116, 122, 124, 112, 131, 126, 129, 111, 114, 130, 135, 128, 123, 119, 127, 117, 110, 146, 114, 121, 136, 118, 116, 123, 152, 132, 127, 131, 125, 125, 127, 117, 126, 129, 119, 179, 131, 113, 134, 124, 129, 133, 128, 131, 134, 121, 115, 141, 119, 127, 123, 122, 128, 121, 124, 120, 138, 129, 120, 122, 126, 121, 130, 131, 130, 111, 131, 112, 137, 120, 120, 127, 121, 115, 118, 125, 113, 122, 111, 125, 121, 111, 131, 113, 121, 140, 128, 122, 127, 112, 131, 116, 144, 134, 130, 115, 126, 119, 131, 137, 122, 118, 119, 136, 124, 108, 128, 119, 118, 114, 132, 126, 129, 123, 123, 135, 121, 109, 119, 124, 118, 130, 113, 108, 126, 118, 143, 136, 127, 133, 113, 131, 104, 127, 117, 115, 115, 119, 124, 141, 127, 122, 112, 136, 133, 112, 121, 110, 113, 133, 107, 122, 137, 138, 131, 118, 118, 127, 122, 113, 147, 133, 129, 121, 144, 120, 111, 112, 141, 130, 124, 115, 117, 145, 130, 105, 124, 123, 144, 108, 150, 109, 121, 133, 104, 145, 137, 108, 137, 137, 121, 134, 115, 134, 140, 129, 109, 137, 112, 134, 126, 133, 125, 111, 128, 117, 109, 144, 128, 118, 116, 140, 138, 134, 124, 111, 114, 127, 127, 137, 141, 132, 131, 110, 118, 115, 128, 98, 128, 121, 131, 122, 123, 132, 117, 136, 126, 134, 127, 121, 113, 132, 133, 122, 110, 135, 121, 102, 139, 120, 105, 124, 118, 118, 111, 127, 115, 125, 137, 124, 116, 125, 125, 126, 129, 133, 118, 119, 123, 124, 117, 115, 111, 120, 152, 121, 119, 137, 141, 114, 135, 124, 122, 120, 123, 117, 145, 131, 123, 147, 117, 127, 121, 138, 111, 130, 115, 125, 119, 120, 115, 121, 132, 124, 127, 130, 120, 114, 129, 118, 140, 155, 128, 113, 126, 122, 157, 135, 104, 127, 130, 146, 131, 144, 124, 118, 128, 134, 131, 106, 115, 146, 129, 115, 132, 108, 141, 148, 119, 141, 127, 131, 112, 124, 116, 120, 121, 138, 122, 114, 130, 125, 122, 123, 125, 131, 122, 143, 134, 113, 128, 136, 121, 137, 126, 118, 103, 134, 125, 142, 128, 118, 120, 120, 112, 118, 121, 130, 107, 114, 131, 109, 131, 110, 138, 123, 121, 120, 120, 134, 140, 131, 131, 131, 114, 127, 115, 134, 115, 136, 121, 133, 116, 132, 132, 130, 117, 116, 111, 126, 129, 128, 112, 118, 126, 120, 129, 121, 140, 131, 121, 127, 129, 125, 122, 140, 131, 128, 123, 119, 123, 130, 123, 121, 131, 118, 127, 119, 105, 113, 117, 137, 120, 127, 99, 116, 134, 100, 112, 127, 115, 147, 114, 147, 136, 117, 112, 116, 132, 130, 117, 111, 134, 115, 129, 137, 115, 124, 121, 124, 123, 134, 126, 127, 129, 139, 133, 111, 118, 113, 115, 116, 141, 117, 126, 125, 112, 139, 140, 125, 133, 119, 117, 146, 151, 128, 144, 133, 131, 127, 131, 126, 127, 124, 133, 109, 128, 128, 136, 104, 114, 134, 120, 124, 141, 136, 130, 116, 126, 101, 137, 117, 110, 127, 128, 121, 107, 128, 134, 113, 102, 101, 127, 126, 117, 135, 100, 137, 130, 120, 127, 126, 127, 114, 112, 123, 122, 114, 120, 123, 123, 112, 126, 130, 120, 118, 114, 121, 117, 146, 130, 110, 130, 141, 123, 110, 124, 135, 133, 146, 147, 125, 125, 121, 126, 122, 141, 129, 122, 136, 100, 151, 125, 133, 121, 110, 138, 118, 124, 122, 130, 134, 135, 148, 107, 111, 125, 126, 116, 107, 142, 106, 138, 128, 129, 127, 120, 130, 117, 123, 127, 135, 121, 132, 113, 111, 142, 126, 122, 137, 120, 108, 112, 116, 112, 119, 114, 121, 144, 131, 136, 141, 130, 119, 127, 132, 151, 117, 127, 124, 127, 121, 107, 128, 111, 124, 130, 124, 121, 123, 133, 120, 138, 121, 133, 123, 118, 131, 124, 128, 136, 132, 143, 127, 127, 106, 142, 137, 146, 107, 133, 135, 123, 125, 115, 103, 131, 125, 135, 124, 149, 141, 134, 131, 132, 132, 130, 129, 112, 123, 142, 141, 118, 118, 143, 113, 119, 113, 128, 134, 133, 132, 132, 122, 127, 117, 120, 108, 133, 133, 136, 138, 130, 138, 140, 129, 124, 115, 131, 146, 117, 120, 129, 127, 119, 132, 129, 118, 104, 130, 124, 130, 130, 123, 126, 129, 117, 120, 121, 115, 137, 133, 114, 129, 140, 136, 129, 140, 150, 141, 129, 130, 125, 129, 117, 133, 135, 121, 113, 137, 103, 136, 124, 133, 119, 106, 137, 125, 118, 136, 127, 124, 132, 121, 120, 135, 114, 129, 130, 124, 115, 107, 120, 121, 124, 125, 133, 123, 136, 127, 140, 102, 118, 144, 109, 130, 122, 122, 112, 132, 119, 115, 149, 118, 139, 123, 102, 126, 114, 136, 127, 128, 128, 117, 114, 126, 128, 141, 116, 120, 108, 126, 126, 130, 125, 140, 131, 108, 120, 124, 133, 131, 132, 126, 123, 125, 125, 112, 117, 117, 138, 131, 128, 127, 114, 114, 121, 130, 120, 117, 120, 120, 123, 121, 117, 121, 127, 135, 136, 145, 121, 119, 127, 139, 131, 117, 127, 106, 119, 120, 127, 131, 110, 118, 134, 148, 127, 119, 143, 131, 134, 130, 134, 137, 124, 125, 111, 116, 124, 129, 120, 117, 136, 112, 127, 128, 142, 124, 131, 117, 131, 119, 128, 112, 137, 123, 129, 136, 135, 132, 116, 114, 126, 123, 123, 139, 138, 124, 107, 113, 131, 117, 144, 123, 139, 136, 111, 129, 134, 123, 112, 117, 135, 143, 113, 105, 127, 123, 120, 134, 123, 156, 135, 118, 119, 128, 123, 115, 133, 113, 140, 119, 118, 129, 120, 115, 133, 123, 139, 134, 125, 125, 130, 122, 136, 109, 141, 123, 137, 122, 120, 123, 145, 132, 128, 122, 126, 123, 115, 137, 126, 109, 121, 130, 113, 116, 132, 123, 118, 108, 119, 114, 111, 132, 126, 139, 113, 144, 113, 118, 114, 127, 128, 119, 108, 149, 123, 115, 141, 122, 121, 125, 124, 124, 134, 120, 119, 119, 111, 138, 120, 137, 131, 130, 124, 131, 131, 125, 120, 119, 108, 116, 137, 125, 127, 125, 136, 122, 138, 130, 128, 143, 122, 104, 136, 134, 122, 126, 130, 158, 122, 117, 116, 122, 136, 129, 131, 132, 133, 115, 132, 121, 134, 145, 139, 137, 115, 117, 135, 115, 116, 119, 121, 137, 125, 116, 121, 132, 122, 129, 122, 127, 119, 127, 132, 125, 120, 129, 135, 143, 107, 125, 124, 109, 120, 118, 124, 115, 133, 121, 120, 107, 123, 142, 120, 135, 125, 118, 129, 121, 122, 113, 125, 132, 125, 137, 133, 122, 118, 110, 138, 130, 129, 126, 141, 108, 124, 124, 130, 115, 113, 118, 125, 118, 141, 140, 115, 130, 119, 140, 134, 120, 129, 129, 119, 126, 121, 118, 139, 119, 144, 138, 129, 135, 119, 114, 102, 134, 114, 131, 116, 133, 123, 122, 115, 124, 106, 155, 141, 133, 123, 120, 137, 133, 130, 127, 136, 122, 114, 125, 123, 130, 129, 124, 123, 121, 135, 105, 124, 114, 115, 115, 129, 113, 133, 118, 139, 131, 120, 134, 144, 120, 146, 123, 117, 111, 120, 119, 117, 127, 150, 121, 124, 117, 113, 129, 134, 114, 108, 126, 129, 141, 121, 152, 136, 111, 117, 125, 144, 113, 127, 116, 145, 131, 110, 126, 133, 134, 133, 110, 131, 124, 127, 119, 136, 122, 138, 104, 125, 119, 127, 131, 123, 119, 123, 127, 138, 132, 121, 123, 129, 130, 124, 119, 118, 126, 131, 138, 118, 122, 130, 122, 129, 141, 130, 133, 130, 103, 136, 94, 117, 135, 145, 112, 144, 131, 107, 135, 113, 130, 128, 127, 126, 95, 146, 115, 134, 137, 125, 114, 126, 121, 136, 127, 122, 129, 116, 118, 122, 135, 128, 134, 125, 121, 127, 117, 128, 146, 135, 121, 117, 129, 139, 113, 117, 131, 132, 134, 109, 132, 122, 122, 117, 118, 107, 116, 116, 114, 131, 127, 137, 122, 126, 127, 125, 121, 119, 124, 135, 128, 127, 111, 113, 128, 154, 125, 128, 121, 133, 109, 118, 120, 133, 110, 126, 133, 133, 121, 123, 140, 125, 117, 116, 130, 136, 122, 118, 143, 120, 139, 115, 118, 127, 125, 117, 121, 129, 115, 125, 122, 129, 112, 129, 134, 139, 137, 145, 133, 124, 115, 141, 149, 133, 130, 112, 114, 140, 124, 127, 128, 125, 126, 108, 123, 119, 133, 112, 127, 133, 114, 91, 136, 117, 110, 127, 117, 127, 123, 107, 128, 141, 118, 133, 125, 148, 118, 117, 108, 116, 129, 122, 136, 132, 128, 133, 136, 133, 112, 130, 140, 127, 132, 137, 129, 118, 128, 105, 120, 140, 123, 121, 129, 127, 128, 132, 105, 131, 141, 122, 124, 124, 115, 122, 109, 123, 119, 129, 137, 121, 114, 124, 103, 140, 140, 128, 130, 135, 116, 123, 132, 124, 130, 125, 117, 127, 119, 125, 122, 125, 136, 121, 122, 134, 106, 133, 111, 124, 132, 137, 114, 145, 125, 127, 135, 115, 131, 134, 133, 145, 124, 133, 125, 128, 130, 123, 139, 139, 129, 125, 123, 128, 120, 122, 123, 133, 134, 119, 127, 113, 134, 115, 126, 137, 131, 124, 120, 105, 134, 134, 124, 137, 124, 133, 147, 133, 134, 131, 116, 134, 125, 140, 130, 152, 120, 129, 126, 118, 133, 99, 124, 117, 121, 128, 139, 123, 107, 134, 127, 125, 118, 116, 128, 135, 111, 115, 116, 126, 121, 136, 127, 120, 113, 114, 136, 130, 126, 114, 128, 131, 129, 136, 124, 106, 132, 137, 114, 124, 129, 109, 114, 128, 126, 119, 125, 117, 131, 126, 147, 139, 107, 129, 130, 114, 132, 118, 133, 142, 132, 110, 123, 109, 138, 136, 113, 120, 129, 138, 118, 120, 119, 147, 126, 137, 121, 146, 134, 145, 130, 130, 131, 141, 123, 126, 121, 122, 119, 127, 133, 125, 118, 126, 144, 122, 120, 120, 130, 135, 124, 114, 127, 127, 131, 115, 119, 124, 128, 128, 121, 144, 112, 125, 125, 107, 109, 130, 127, 109, 121, 126, 129, 126, 127, 123, 130, 118, 129, 136, 111, 118, 123, 128, 115, 124, 133, 132, 131, 129, 134, 131, 117, 114, 116, 126, 130, 124, 125, 119, 124, 140, 118, 124, 131, 118, 126, 135, 132, 121, 111, 120, 120, 122, 129, 123, 135, 139, 135, 127, 114, 126, 122, 111, 127, 152, 126, 126, 115, 130, 122, 147, 131, 128, 124, 100, 119, 117, 118, 116, 114, 110, 137, 124, 128, 144, 127, 130, 117, 133, 131, 126, 137, 135, 123, 118, 126, 119, 126, 123, 132, 119, 127, 117, 129, 120, 135, 140, 111, 131, 136, 131, 134, 139, 126, 124, 123, 127, 111, 120, 138, 125, 122, 113, 114, 139, 124, 131, 127, 128, 112, 130, 126, 129, 121, 114, 133, 136, 124, 137, 131, 133, 134, 150, 117, 127, 129, 123, 117, 115, 128, 130, 114, 119, 125, 129, 126, 132, 121, 120, 138, 139, 115, 129, 119, 108, 113, 117, 123, 132, 122, 159, 145, 123, 115, 132, 117, 131, 130, 147, 126, 117, 122, 131, 110, 127, 129, 121, 133, 108, 133, 119, 125, 122, 134, 120, 113, 119, 132, 119, 131, 139, 138, 120, 130, 120, 140, 132, 117, 132, 138, 133, 124, 123, 133, 127, 122, 120, 124, 126, 120, 121, 128, 119, 123, 112, 106, 126, 128, 118, 133, 131, 113, 120, 128, 112, 121, 117, 106, 140, 119, 137, 133, 143, 131, 129, 121, 118, 136, 115, 126, 126, 141, 116, 130, 129, 135, 128, 126, 124, 123, 111, 132, 135, 120, 144, 135, 107, 134, 118, 122, 141, 110, 119, 143, 121, 120, 126, 134, 119, 128, 129, 123, 115, 134, 121, 130, 129, 120, 137, 124, 129, 132, 100, 135, 126, 119, 131, 121, 116, 128, 108, 137, 128, 121, 131, 129, 130, 124, 133, 120, 138, 132, 120, 119, 120, 116, 122, 129, 112, 119, 119, 130, 125, 148, 120, 134, 119, 126, 139, 127, 120, 126, 115, 118, 116, 103, 116, 115, 128, 133, 130, 131, 118, 125, 123, 130, 122, 128, 127, 119, 121, 106, 125, 120, 110, 106, 120, 139, 133, 131, 120, 112, 138, 129, 111, 122, 126, 128, 144, 124, 137, 127, 123, 129, 123, 140, 117, 127, 131, 139, 115, 125, 128, 129, 140, 117, 133, 113, 130, 115, 124, 136, 116, 119, 116, 119, 118, 119, 118, 136, 134, 127, 121, 122, 131, 136, 130, 125, 124, 101, 114, 129, 115, 145, 120, 124, 135, 126, 130, 110, 127, 129, 118, 131, 123, 133, 116, 128, 123, 115, 116, 130, 129, 116, 126, 106, 120, 128, 114, 125, 120, 121, 153, 118, 126, 135, 130, 137, 131, 108, 139, 115, 141, 134, 113, 146, 115, 133, 122, 117, 144, 135, 126, 120, 119, 134, 101, 132, 129, 128, 123, 146, 130, 140, 152, 114, 121, 122, 124, 147, 117, 115, 138, 127, 126, 123, 119, 110, 138, 113, 140, 130, 136, 128, 123, 125, 127, 115, 134, 144, 126, 113, 129, 103, 112, 115, 123, 125, 118, 125, 132, 130, 126, 118, 121, 139, 119, 130, 131, 116, 129, 135, 141, 133, 129, 128, 128, 122, 152, 119, 104, 118, 136, 123, 145, 120, 116, 132, 126, 123, 122, 120, 138, 125, 129, 127, 122, 122, 132, 107, 137, 127, 137, 127, 143, 154, 150, 132, 132, 115, 119, 139, 118, 129, 123, 127, 142, 141, 128, 132, 128, 133, 121, 122, 119, 119, 125, 121, 134, 118, 120, 126, 121, 104, 127, 127, 123, 117, 112, 146, 140, 120, 119, 107, 100, 134, 139, 149, 128, 117, 125, 118, 137, 113, 131, 130, 141, 133, 126, 140, 105, 111, 135, 124, 129, 138, 119, 145, 129, 116, 117, 116, 138, 128, 101, 111, 123, 129, 123, 140, 133, 123, 129, 121, 120, 121, 134, 128, 145, 131, 135, 129, 115, 128, 117, 137, 129, 113, 120, 137, 141, 147, 130, 116, 124, 126, 121, 137, 134, 125, 118, 121, 105, 118, 125, 122, 136, 123, 119, 118, 111, 130, 136, 125, 102, 112, 119, 107, 124, 128, 109, 136, 125, 127, 132, 120, 104, 110, 121, 114, 128, 129, 121, 123, 132, 102, 115, 117, 115, 112, 120, 130, 147, 105, 105, 106, 107, 138, 141, 118, 139, 126, 112, 120, 108, 135, 113, 137, 130, 128, 92, 125, 143, 108, 133, 111, 110, 101, 122, 131, 139, 101, 124, 122, 120, 115, 149, 113, 124, 123, 126, 109, 130, 120, 124, 137, 126, 123, 136, 127, 130, 140, 116, 130, 123, 99, 121, 108, 126, 134, 121, 123, 116, 127, 124, 129, 118, 107, 124, 122, 114, 138, 120, 112, 142, 142, 119, 126, 131, 133, 136, 134, 131, 110, 138, 112, 120, 115, 134, 125, 110, 121, 140, 132, 131, 122, 143, 124, 96, 136, 102, 136, 123, 118, 120, 132, 112, 138, 112, 127, 122, 135, 129, 127, 127, 115, 134, 125, 127, 133, 129, 109, 122, 125, 124, 127, 142, 125, 120, 129, 140, 136, 115, 119, 113, 127, 145, 123, 117, 110, 127, 126, 129, 135, 116, 149, 122, 120, 113, 122, 128, 123, 126, 130, 129, 131, 142, 142, 131, 135, 119, 136, 116, 144, 121, 105, 125, 109, 113, 121, 119, 137, 130, 130, 121, 127, 121, 122, 138, 123, 115, 118, 126, 116, 119, 140, 142, 107, 121, 119, 113, 114, 120, 117, 115, 131, 129, 119, 129, 125, 107, 127, 115, 139, 120, 118, 120, 128, 139, 119, 113, 118, 118, 118, 104, 149, 126, 118, 120, 116, 131, 108, 121, 130, 119, 127, 131, 122, 118, 132, 143, 117, 117, 135, 136, 142, 120, 115, 111, 126, 126, 132, 120, 119, 116, 120, 109, 128, 114, 155, 129, 124, 111, 133, 136, 148, 118, 133, 119, 120, 104, 119, 145, 129, 116, 111, 127, 144, 119, 133, 129, 130, 137, 134, 112, 131, 123, 120, 150, 132, 121, 134, 122, 113, 91, 127, 123, 119, 114, 126, 114, 132, 124, 116, 127, 131, 123, 140, 121, 140, 123, 166, 124, 126, 134, 144, 146, 118, 118, 114, 111, 124, 116, 103, 123, 132, 136, 133, 125, 127, 117, 122, 126, 110, 128, 120, 122, 131, 92, 137, 126, 130, 119, 121, 120, 131, 130, 119, 120, 121, 127, 117, 124, 126, 108, 125, 130, 137, 121, 123, 120, 127, 132, 127, 126, 114, 137, 130, 133, 118, 118, 120, 133, 111, 118, 134, 123, 125, 135, 124, 110, 115, 131, 122, 134, 103, 122, 119, 145, 107, 140, 127, 119, 131, 118, 116, 127, 142, 129, 120, 119, 151, 135, 108, 144, 128, 129, 127, 131, 130, 120, 121, 136, 125, 122, 123, 114, 127, 114, 127, 126, 124, 105, 122, 132, 131, 125, 115, 127, 117, 128, 132, 140, 120, 118, 125, 124, 117, 116, 124, 130, 125, 137, 117, 131, 119, 119, 123, 114, 130, 131, 108, 124, 139, 132, 103, 135, 127, 127, 111, 137, 127, 133, 122, 116, 124, 120, 132, 109, 101, 117, 108, 132, 122, 118, 121, 129, 112, 145, 127, 137, 124, 124, 128, 125, 126, 133, 101, 127, 119, 129, 127, 130, 129, 115, 130, 123, 116, 117, 131, 127, 132, 113, 135, 119, 134, 141, 124, 125, 121, 129, 119, 124, 127, 115, 119, 115, 133, 139, 120, 135, 115, 112, 114, 128, 123, 140, 113, 111, 112, 124, 124, 113, 117, 123, 125, 121, 132, 127, 120, 113, 138, 136, 143, 125, 116, 133, 125, 127, 118, 128, 115, 130, 112, 108, 132, 106, 134, 124, 119, 131, 131, 117, 137, 126, 122, 117, 140, 140, 128, 132, 131, 137, 113, 138, 136, 124, 137, 123, 136, 132, 123, 117, 135, 132, 132, 133, 126, 126, 112, 120, 131, 111, 123, 117, 139, 118, 143, 115, 133, 122, 122, 121, 129, 127, 121, 133, 118, 125, 135, 138, 136, 109, 95, 131, 143, 122, 136, 116, 117, 139, 124, 112, 135, 136, 124, 129, 133, 139, 139, 128, 106, 133, 119, 137, 103, 121, 112, 116, 125, 135, 122, 130, 130, 130, 126, 118, 123, 128, 139, 130, 111, 108, 139, 123, 142, 129, 131, 113, 123, 133, 112, 130, 118, 125, 132, 117, 117, 124, 142, 110, 133, 105, 131, 110, 122, 128, 135, 140, 129, 104, 126, 138, 124, 133, 128, 131, 119, 127, 126, 116, 117, 126, 127, 124, 101, 132, 123, 120, 125, 138, 140, 135, 125, 131, 137, 126, 120, 124, 123, 132, 130, 120, 131, 114, 133, 128, 117, 145, 125, 134, 126, 123, 121, 115, 123, 131, 126, 119, 124, 124, 128, 136, 148, 132, 115, 111, 125, 121, 114, 114, 134, 137, 137, 127, 132, 114, 137, 131, 130, 130, 135, 117, 120, 133, 141, 123, 131, 123, 117, 120, 125, 127, 122, 133, 125, 108, 129, 130, 115, 125, 119, 119, 134, 141, 118, 117, 107, 129, 136, 127, 122, 125, 126, 115, 134, 130, 115, 133, 125, 128, 135, 132, 127, 119, 125, 133, 145, 131, 126, 105, 128, 119, 121, 118, 131, 130, 125, 131, 137, 121, 119, 126, 134, 122, 140, 121, 138, 119, 118, 116, 122, 121, 125, 95, 118, 119, 125, 126, 127, 127, 135, 136, 119, 121, 114, 130, 173, 130, 129, 121, 135, 122, 127, 120, 131, 116, 116, 133, 118, 125, 133, 123, 116, 136, 126, 117, 120, 145, 137, 128, 130, 129, 135, 125, 150, 116, 109, 136, 118, 142, 118, 131, 118, 118, 139, 137, 122, 119, 124, 116, 121, 125, 113, 122, 111, 121, 116, 137, 123, 123, 131, 117, 130, 125, 135, 125, 131, 111, 121, 117, 147, 143, 124, 121, 114, 101, 125, 127, 112, 137, 139, 128, 123, 146, 113, 130, 136, 122, 139, 114, 120, 116, 124, 111, 131, 119, 125, 129, 117, 130, 114, 121, 144, 121, 120, 127, 134, 121, 117, 135, 106, 134, 135, 126, 131, 134, 121, 136, 120, 134, 125, 128, 113, 130, 111, 121, 121, 120, 120, 126, 127, 118, 135, 127, 113, 112, 120, 121, 128, 128, 140, 129, 122, 132, 121, 133, 140, 126, 135, 123, 98, 120, 140, 129, 123, 122, 133, 128, 117, 143, 124, 126, 136, 123, 126, 108, 118, 126, 115, 138, 127, 125, 117, 133, 126, 138, 124, 123, 125, 126, 135, 112, 139, 125, 124, 114, 124, 123, 123, 115, 131, 120, 125, 133, 133, 127, 117, 128, 122, 130, 125, 136, 128, 141, 118, 109, 130, 122, 134, 111, 136, 118, 133, 117, 125, 126, 128, 118, 118, 133, 127, 124, 126, 137, 134, 132, 108, 121, 120, 124, 111, 129, 124, 117, 123, 133, 135, 133, 139, 131, 119, 114, 126, 122, 134, 121, 140, 129, 124, 135, 109, 124, 132, 124, 145, 128, 111, 122, 127, 134, 145, 129, 132, 120, 139, 126, 128, 108, 135, 131, 126, 120, 125, 133, 115, 122, 141, 122, 116, 119, 109, 135, 138, 135, 122, 130, 113, 138, 125, 124, 133, 133, 120, 123, 125, 145, 134, 132, 131, 108, 114, 132, 124, 133, 108, 133, 126, 122, 122, 134, 109, 128, 122, 130, 119, 126, 119, 131, 119, 120, 126, 132, 139, 126, 119, 119, 116, 138, 133, 116, 138, 114, 138, 121, 129, 125, 125, 117, 134, 136, 137, 117, 132, 125, 122, 131, 121, 133, 137, 126, 135, 126, 134, 120, 118, 125, 119, 136, 116, 89, 125, 131, 122, 128, 125, 134, 125, 123, 144, 127, 137, 137, 101, 125, 141, 137, 113, 123, 137, 128, 125, 127, 123, 130, 123, 138, 112, 122, 105, 125, 113, 125, 140, 111, 131, 133, 150, 132, 130, 123, 140, 123, 133, 122, 125, 130, 136, 118, 117, 122, 124, 131, 127, 123, 131, 124, 138, 104, 134, 153, 127, 136, 119, 135, 130, 138, 131, 114, 126, 138, 124, 136, 121, 123, 133, 132, 122, 126, 141, 131, 124, 120, 123, 137, 118, 117, 122, 124, 129, 122, 122, 122, 117, 125, 115, 125, 129, 139, 133, 139, 137, 142, 120, 118, 138, 113, 134, 126, 134, 125, 140, 138, 127, 120, 104, 116, 119, 132, 116, 135, 118, 122, 120, 135, 122, 124, 114, 117, 142, 126, 121, 132, 105, 142, 140, 123, 134, 121, 125, 124, 120, 138, 117, 111, 127, 127, 101, 120, 120, 117, 120, 123, 134, 135, 123, 130, 126, 120, 109, 126, 101, 124, 134, 125, 121, 121, 116, 127, 127, 128, 130, 139, 117, 111, 127, 128, 165, 108, 117, 134, 130, 120, 117, 129, 125, 123, 130, 124, 120, 132, 134, 129, 127, 122, 122, 124, 136, 132, 115, 127, 135, 124, 141, 133, 113, 127, 125, 115, 122, 122, 126, 134, 122, 104, 105, 128, 127, 128, 126, 120, 128, 121, 127, 131, 116, 124, 127, 134, 133, 122, 125, 120, 123, 132, 134, 114, 118, 114, 128, 128, 132, 137, 132, 124, 127, 131, 109, 119, 118, 129, 115, 138, 117, 116, 137, 127, 132, 121, 114, 122, 128, 127, 127, 128, 131, 132, 123, 133, 118, 120, 132, 116, 118, 124, 132, 136, 145, 130, 139, 113, 116, 111, 129, 120, 117, 143, 116, 149, 114, 122, 134, 121, 127, 137, 122, 119, 138, 132, 120, 122, 138, 113, 117, 125, 119, 129, 124, 121, 138, 117, 121, 132, 120, 127, 124, 129, 120, 128, 96, 102, 120, 140, 116, 134, 148, 140, 130, 117, 108, 121, 140, 131, 133, 130, 139, 133, 119, 123, 123, 133, 144, 129, 117, 136, 131, 133, 125, 105, 141, 137, 121, 126, 133, 140, 111, 123, 133, 106, 116, 122, 138, 112, 137, 105, 135, 116, 118, 137, 128, 139, 121, 126, 119, 125, 119, 132, 120, 134, 128, 122, 121, 115, 137, 125, 122, 129, 126, 130, 149, 112, 134, 138, 122, 134, 135, 114, 126, 132, 123, 154, 139, 127, 126, 128, 127, 121, 112, 130, 146, 120, 120, 118, 131, 114, 105, 131, 134, 123, 141, 116, 123, 113, 126, 117, 117, 122, 124, 116, 139, 124, 136, 138, 125, 133, 126, 126, 141, 101, 113, 117, 115, 107, 145, 138, 121, 148, 136, 116, 134, 103, 132, 117, 89, 119, 105, 142, 125, 131, 126, 120, 133, 122, 148, 110, 133, 126, 114, 123, 113, 135, 128, 132, 128, 133, 145, 131, 128, 138, 146, 99, 104, 121, 134, 115, 124, 116, 138, 109, 127, 114, 118, 119, 137, 125, 124, 121, 137, 119, 113, 150, 122, 129, 106, 111, 131, 132, 146, 118, 126, 127, 123, 93, 147, 109, 121, 115, 115, 145, 134, 115, 131, 137, 132, 129, 123, 133, 125, 147, 128, 124, 140, 130, 123, 147, 123, 128, 120, 121, 130, 135, 130, 147, 131, 116, 124, 131, 119, 103, 131, 116, 118, 134, 139, 132, 150, 137, 156, 135, 141, 127, 124, 128, 124, 131, 121, 118, 143, 118, 128, 119, 132, 118, 138, 138, 128, 122, 122, 117, 124, 113, 132, 140, 117, 123, 125, 139, 130, 122, 125, 104, 112, 124, 125, 110, 138, 121, 127, 127, 114, 119, 127, 112, 98, 125, 123, 129, 135, 123, 117, 110, 134, 110, 127, 135, 125, 134, 108, 130, 121, 128, 111, 111, 122, 129, 122, 123, 127, 135, 140, 127, 98, 132, 117, 118, 122, 134, 133, 129, 122, 119, 130, 105, 128, 117, 106, 132, 140, 137, 131, 133, 109, 118, 119, 117, 139, 107, 109, 109, 114, 117, 135, 137, 120, 147, 110, 123, 124, 133, 123, 145, 147, 131, 139, 133, 124, 119, 122, 125, 119, 116, 140, 127, 132, 110, 114, 122, 116, 119, 109, 123, 130, 117, 124, 134, 126, 132, 113, 126, 122, 130, 124, 125, 101, 141, 156, 125, 134, 108, 137, 118, 124, 138, 127, 109, 131, 132, 118, 111, 116, 109, 122, 120, 118, 127, 144, 125, 126, 114, 112, 142, 141, 126, 126, 144, 117, 106, 115, 119, 126, 132, 111, 133, 121, 140, 117, 120, 134, 132, 120, 128, 115, 133, 136, 137, 122, 115, 127, 115, 118, 126, 128, 117, 134, 139, 156, 118, 134, 122, 135, 97, 118, 113, 128, 140, 121, 126, 118, 120, 115, 126, 135, 141, 144, 130, 114, 135, 126, 131, 119, 125, 127, 104, 130, 116, 129, 103, 113, 105, 113, 89, 129, 111, 129, 124, 132, 124, 123, 151, 130, 135, 140, 124, 118, 116, 112, 125, 120, 121, 125, 128, 120, 134, 113, 110, 133, 127, 135, 120, 136, 105, 133, 122, 124, 140, 127, 143, 110, 134, 142, 127, 124, 129, 125, 125, 116, 130, 128, 140, 135, 122, 125, 117, 125, 122, 125, 132, 135, 128, 117, 134, 114, 123, 113, 125, 135, 125, 114, 138, 128, 118, 151, 121, 103, 102, 131, 125, 128, 125, 122, 117, 138, 127, 146, 142, 114, 127, 140, 138, 117, 117, 132, 135, 125, 148, 121, 128, 164, 131, 125, 125, 126, 139, 125, 126, 136, 110, 126, 99, 131, 124, 128, 133, 126, 138, 115, 124, 129, 103, 123, 115, 128, 117, 117, 112, 107, 126, 120, 136, 136, 116, 144, 127, 117, 133, 122, 107, 120, 122, 116, 139, 113, 122, 121, 129, 129, 125, 153, 127, 122, 134, 117, 130, 111, 118, 125, 116, 118, 137, 135, 146, 122, 132, 123, 110, 109, 121, 130, 129, 125, 139, 123, 124, 97, 124, 149, 131, 118, 123, 154, 123, 116, 122, 125, 119, 114, 127, 117, 130, 104, 131, 141, 116, 134, 114, 132, 130, 138, 120, 148, 116, 141, 116, 107, 120, 112, 113, 131, 120, 128, 118, 125, 117, 118, 115, 131, 135, 137, 116, 143, 140, 118, 135, 128, 126, 130, 129, 148, 140, 128, 114, 103, 135, 132, 135, 127, 134, 115, 115, 92, 141, 120, 119, 132, 112, 147, 129, 107, 118, 123, 117, 145, 119, 127, 106, 126, 121, 140, 120, 126, 134, 131, 148, 134, 137, 124, 120, 129, 132, 132, 134, 138, 114, 118, 122, 121, 118, 144, 131, 111, 118, 123, 140, 115, 133, 136, 132, 133, 138, 139, 114, 131, 133, 105, 112, 123, 131, 126, 125, 133, 131, 126, 123, 123, 111, 101, 118, 117, 143, 112, 145, 114, 118, 150, 127, 134, 119, 105, 131, 118, 127, 125, 113, 129, 123, 127, 134, 114, 140, 137, 118, 116, 126, 116, 139, 127, 137, 130, 127, 129, 134, 120, 145, 125, 132, 131, 141, 122, 125, 131, 133, 98, 127, 106, 116, 127, 113, 113, 136, 142, 149, 119, 115, 133, 130, 133, 121, 115, 137, 112, 126, 113, 128, 124, 122, 126, 118, 146, 123, 106, 105, 114, 120, 120, 139, 112, 129, 117, 133, 107, 130, 116, 144, 125, 115, 119, 134, 122, 110, 114, 144, 114, 142, 116, 132, 134, 109, 129, 142, 149, 127, 130, 144, 116, 126, 112, 159, 122, 128, 138, 144, 116, 125, 132, 107, 140, 132, 132, 133, 115, 111, 118, 123, 105, 136, 111, 157, 123, 123, 101, 112, 126, 137, 114, 107, 138, 121, 127, 133, 119, 130, 118, 116, 115, 132, 125, 111, 130, 129, 117, 144, 146, 142, 125, 141, 121, 114, 137, 122, 143, 130, 104, 132, 113, 131, 129, 117, 131, 137, 135, 120, 117, 112, 131, 119, 135, 111, 125, 118, 139, 122, 108, 126, 108, 146, 131, 128, 120, 130, 111, 130, 124, 130, 118, 111, 114, 130, 109, 140, 123, 124, 120, 132, 128, 131, 142, 131, 148, 143, 135, 112, 124, 122, 124, 121, 119, 122, 122, 131, 125, 136, 129, 130, 133, 100, 129, 132, 120, 125, 136, 111, 125, 107, 132, 118, 131, 132, 116, 120, 121, 132, 114, 108, 111, 123, 129, 123, 147, 134, 116, 124, 105, 123, 119, 130, 139, 118, 128, 130, 126, 125, 127, 136, 123, 113, 113, 137, 125, 118, 121, 138, 102, 103, 117, 110, 123, 131, 128, 124, 118, 118, 130, 113, 153, 125, 126, 126, 116, 137, 115, 127, 127, 123, 126, 121, 135, 130, 113, 114, 142, 147, 117, 123, 132, 123, 128, 120, 137, 122, 119, 126, 130, 118, 135, 138, 129, 119, 110, 116, 124, 123, 129, 109, 135, 128, 127, 120, 137, 114, 131, 123, 121, 118, 115, 126, 134, 125, 118, 130, 109, 125, 135, 131, 137, 126, 104, 121, 121, 128, 110, 121, 117, 132, 122, 112, 139, 113, 115, 125, 124, 139, 130, 118, 124, 119, 140, 118, 130, 116, 140, 124, 129, 110, 108, 132, 139, 122, 127, 110, 131, 130, 123, 114, 141, 107, 114, 154, 152, 132, 115, 121, 107, 141, 109, 123, 137, 132, 125, 131, 135, 130, 123, 137, 141, 136, 132, 118, 140, 133, 123, 148, 135, 101, 123, 142, 126, 146, 134, 122, 120, 133, 125, 135, 128, 122, 125, 126, 109, 144, 129, 131, 123, 116, 107, 124, 95, 121, 120, 123, 140, 150, 126, 121, 124, 133, 131, 123, 128, 119, 134, 124, 115, 124, 117, 120, 131, 133, 113, 117, 131, 146, 128, 135, 125, 134, 119, 115, 123, 106, 138, 123, 112, 142, 131, 131, 110, 119, 133, 140, 118, 137, 130, 121, 121, 132, 131, 111, 138, 135, 127, 124, 113, 119, 129, 133, 148, 117, 128, 115, 136, 121, 141, 124, 129, 106, 130, 124, 139, 122, 127, 131, 121, 135, 122, 123, 127, 121, 143, 112, 117, 116, 118, 130, 123, 137, 136, 125, 117, 114, 124, 121, 112, 124, 129, 151, 139, 129, 113, 115, 141, 131, 116, 122, 118, 132, 130, 124, 117, 146, 124, 128, 136, 127, 129, 118, 125, 128, 115, 117, 119, 119, 122, 130, 109, 133, 136, 118, 151, 133, 143, 127, 123, 130, 131, 125, 118, 136, 135, 130, 143, 127, 117, 99, 126, 106, 87, 126, 127, 115, 124, 127, 125, 125, 142, 139, 127, 145, 105, 129, 120, 137, 124, 117, 115, 127, 123, 119, 128, 146, 117, 141, 108, 131, 124, 115, 122, 132, 125, 96, 129, 124, 129, 149, 122, 136, 81, 130, 142, 130, 122, 117, 122, 113, 136, 132, 128, 154, 138, 117, 134, 129, 147, 124, 137, 117, 127, 124, 129, 104, 128, 115, 121, 118, 125, 124, 129, 109, 151, 130, 117, 124, 124, 125, 113, 131, 137, 137, 140, 124, 125, 116, 126, 125, 122, 139, 120, 124, 125, 142, 127, 130, 126, 128, 118, 115, 108, 140, 94, 131, 137, 131, 136, 132, 124, 128, 115, 128, 118, 104, 103, 128, 130, 126, 137, 123, 127, 129, 115, 146, 137, 128, 127, 126, 122, 117, 114, 120, 134, 133, 121, 122, 129, 130, 145, 141, 141, 124, 124, 117, 133, 129, 110, 133, 122, 117, 125, 123, 140, 115, 125, 130, 121, 130, 133, 148, 147, 115, 128, 108, 133, 120, 117, 118, 135, 123, 130, 114, 116, 127, 123, 133, 115, 143, 131, 131, 134, 126, 122, 142, 132, 125, 110, 117, 135, 134, 127, 147, 134, 134, 118, 128, 120, 125, 122, 117, 138, 110, 122, 121, 131, 148, 132, 132, 117, 100, 127, 135, 122, 117, 122, 131, 127, 127, 123, 128, 128, 133, 118, 123, 119, 131, 136, 128, 142, 121, 121, 124, 128, 128, 128, 126, 102, 108, 116, 99, 126, 144, 127, 114, 128, 125, 131, 136, 139, 114, 122, 133, 122, 122, 124, 105, 126, 124, 113, 132, 129, 125, 122, 135, 117, 129, 113, 117, 130, 126, 127, 122, 129, 120, 126, 125, 126, 132, 128, 136, 105, 132, 130, 122, 129, 133, 114, 125, 130, 132, 116, 130, 132, 137, 131, 130, 130, 116, 146, 135, 139, 141, 122, 115, 149, 125, 149, 131, 127, 124, 136, 112, 114, 132, 130, 132, 114, 122, 121, 100, 130, 159, 122, 125, 107, 115, 136, 120, 131, 134, 114, 119, 111, 130, 132, 117, 129, 123, 124, 131, 124, 142, 131, 123, 126, 132, 155, 124, 124, 131, 114, 143, 117, 112, 145, 143, 140, 122, 118, 110, 147, 129, 123, 125, 122, 128, 129, 110, 137, 109, 147, 142, 115, 127, 140, 141, 116, 131, 110, 119, 112, 101, 127, 132, 123, 153, 110, 143, 116, 127, 109, 121, 125, 120, 141, 139, 130, 114, 127, 123, 140, 117, 127, 126, 133, 134, 124, 109, 115, 137, 124, 144, 132, 121, 123, 124, 118, 135, 118, 121, 120, 139, 116, 139, 125, 131, 145, 105, 123, 141, 117, 121, 118, 133, 147, 127, 141, 134, 141, 98, 121, 141, 139, 128, 127, 129, 141, 132, 127, 123, 128, 120, 133, 131, 133, 148, 133, 142, 132, 129, 118, 108, 124, 126, 130, 127, 126, 148, 128, 134, 113, 141, 118, 120, 119, 123, 145, 122, 117, 107, 114, 169, 132, 122, 148, 131, 113, 123, 125, 147, 155, 124, 132, 129, 125, 112, 121, 111, 130, 124, 126, 106, 132, 115, 132, 124, 111, 115, 118, 110, 140, 115, 135, 131, 119, 127, 122, 132, 118, 138, 125, 111, 115, 111, 125, 114, 115, 113, 130, 150, 107, 145, 107, 121, 135, 111, 120, 133, 133, 128, 126, 121, 131, 128, 107, 117, 92, 137, 112, 137, 128, 138, 121, 143, 121, 129, 123, 135, 102, 115, 131, 136, 121, 127, 117, 133, 139, 130, 146, 119, 119, 120, 110, 130, 128, 132, 131, 135, 134, 161, 127, 129, 130, 113, 128, 128, 139, 107, 116, 145, 132, 147, 144, 116, 127, 147, 118, 100, 113, 120, 132, 120, 129, 128, 142, 127, 136, 118, 112, 129, 116, 132, 133, 128, 123, 128, 101, 111, 121, 113, 118, 136, 112, 114, 142, 141, 129, 117, 128, 132, 129, 123, 117, 123, 141, 140, 115, 123, 131, 111, 128, 141, 134, 108, 121, 126, 127, 154, 135, 128, 112, 117, 126, 126, 121, 118, 128, 126, 122, 120, 130, 119, 148, 136, 122, 122, 137, 120, 119, 125, 111, 140, 117, 121, 114, 146, 118, 123, 135, 141, 115, 145, 127, 132, 130, 140, 127, 121, 139, 121, 112, 131, 125, 130, 124, 112, 118, 120, 106, 140, 108, 144, 111, 125, 120, 112, 132, 127, 107, 111, 131, 121, 132, 122, 125, 135, 118, 132, 124, 117, 133, 142, 122, 124, 121, 147, 142, 134, 139, 132, 127, 112, 122, 130, 119, 115, 124, 131, 125, 109, 126, 117, 127, 122, 127, 116, 145, 130, 119, 139, 123, 143, 125, 132, 121, 132, 119, 145, 135, 137, 131, 121, 130, 110, 119, 132, 143, 141, 125, 123, 126, 124, 129, 113, 127, 120, 111, 131, 128, 114, 137, 120, 141, 130, 124, 127, 128, 127, 122, 125, 128, 128, 100, 137, 114, 113, 120, 117, 128, 132, 111, 154, 116, 139, 111, 123, 114, 140, 114, 130, 115, 123, 125, 128, 120, 118, 104, 100, 130, 120, 125, 140, 110, 145, 112, 120, 147, 136, 115, 119, 139, 145, 99, 128, 124, 143, 126, 119, 116, 133, 118, 133, 125, 141, 120, 129, 117, 114, 117, 115, 120, 138, 149, 109, 136, 101, 113, 112, 124, 122, 120, 123, 125, 128, 144, 139, 136, 118, 132, 110, 137, 131, 130, 132, 119, 116, 116, 109, 126, 140, 134, 153, 114, 132, 127, 124, 118, 138, 129, 123, 135, 134, 129, 126, 128, 121, 127, 128, 125, 128, 127, 124, 146, 110, 112, 127, 126, 117, 137, 150, 122, 111, 119, 119, 128, 101, 129, 127, 112, 139, 150, 124, 132, 132, 127, 96, 140, 126, 140, 116, 123, 104, 117, 129, 113, 136, 143, 135, 113, 126, 117, 110, 131, 118, 120, 118, 139, 122, 135, 121, 147, 126, 119, 133, 134, 117, 124, 131, 131, 121, 102, 128, 123, 140, 134, 118, 127, 112, 120, 124, 119, 142, 110, 131, 123, 149, 116, 132, 133, 130, 131, 124, 116, 132, 143, 122, 112, 128, 140, 124, 128, 127, 120, 131, 132, 129, 121, 127, 116, 125, 130, 129, 107, 122, 127, 136, 110, 147, 117, 153, 137, 121, 143, 141, 126, 126, 135, 142, 147, 121, 132, 137, 128, 108, 123, 130, 145, 118, 117, 128, 129, 126, 136, 123, 110, 134, 112, 121, 125, 141, 135, 129, 122, 159, 122, 109, 118, 121, 128, 137, 115, 121, 135, 142, 147, 127, 118, 112, 129, 137, 125, 111, 128, 134, 124, 123, 115, 122, 132, 127, 133, 120, 113, 130, 121, 115, 127, 112, 134, 123, 121, 145, 113, 136, 111, 120, 119, 113, 127, 125, 134, 138, 147, 119, 116, 110, 126, 123, 124, 145, 111, 121, 127, 133, 113, 141, 124, 137, 128, 120, 121, 128, 140, 142, 126, 126, 127, 116, 114, 155, 122, 128, 134, 125, 116, 133, 134, 102, 133, 124, 134, 127, 131, 115, 142, 121, 138, 135, 134, 117, 115, 132, 137, 126, 130, 114, 118, 121, 144, 107, 134, 125, 106, 140, 124, 129, 129, 121, 130, 113, 116, 144, 104, 121, 137, 137, 136, 120, 120, 109, 110, 127, 116, 128, 113, 119, 113, 122, 129, 130, 129, 112, 125, 116, 138, 136, 124, 123, 139, 135, 124, 131, 117, 133, 126, 130, 143, 141, 118, 121, 119, 140, 110, 131, 131, 140, 122, 120, 129, 118, 110, 122, 129, 124, 129, 142, 112, 127, 126, 122, 131, 124, 133, 127, 131, 130, 115, 108, 117, 137, 121, 116, 124, 133, 123, 130, 148, 118, 135, 138, 106, 136, 132, 137, 133, 119, 140, 122, 143, 132, 120, 141, 105, 122, 116, 123, 128, 114, 138, 130, 118, 116, 124, 101, 145, 122, 112, 120, 142, 128, 120, 128, 112, 120, 118, 126, 134, 120, 130, 124, 139, 144, 123, 123, 110, 124, 111, 123, 143, 123, 131, 112, 126, 150, 111, 135, 124, 149, 127, 130, 132, 130, 132, 129, 131, 136, 118, 122, 134, 130, 114, 118, 110, 126, 144, 139, 132, 109, 111, 113, 127, 124, 124, 118, 144, 130, 115, 124, 120, 121, 127, 138, 131, 117, 120, 130, 129, 124, 127, 114, 137, 145, 115, 117, 110, 136, 118, 117, 122, 132, 110, 124, 127, 125, 145, 122, 109, 125, 121, 134, 126, 118, 131, 134, 123, 132, 119, 145, 129, 122, 130, 128, 125, 137, 107, 133, 128, 116, 118, 134, 134, 118, 128, 127, 114, 133, 145, 105, 115, 123, 116, 127, 129, 133, 124, 129, 123, 135, 148, 122, 104, 117, 145, 129, 124, 124, 131, 119, 122, 128, 124, 130, 125, 119, 135, 107, 129, 103, 120, 135, 125, 125, 129, 119, 120, 153, 117, 136, 129, 106, 128, 123, 112, 138, 124, 107, 125, 115, 132, 114, 129, 126, 120, 131, 120, 122, 120, 118, 118, 143, 101, 133, 124, 134, 116, 129, 122, 110, 114, 119, 133, 139, 124, 135, 111, 120, 111, 128, 118, 135, 135, 125, 117, 134, 129, 124, 124, 125, 123, 131, 117, 116, 121, 141, 144, 123, 131, 139, 135, 157, 124, 123, 106, 138, 121, 145, 127, 111, 111, 110, 122, 129, 108, 142, 126, 133, 138, 113, 129, 118, 122, 134, 143, 143, 120, 116, 129, 118, 99, 128, 134, 132, 118, 141, 137, 121, 136, 114, 122, 128, 126, 143, 126, 115, 144, 135, 129, 104, 116, 130, 114, 114, 125, 120, 129, 121, 128, 113, 124, 113, 107, 135, 128, 118, 150, 127, 135, 130, 114, 131, 142, 124, 149, 139, 135, 129, 141, 125, 124, 107, 114, 133, 104, 134, 128, 120, 122, 140, 126, 119, 126, 120, 113, 126, 128, 99, 134, 131, 124, 124, 107, 134, 117, 128, 109, 150, 117, 134, 120, 124, 132, 117, 111, 114, 119, 114, 127, 122, 115, 141, 123, 123, 137, 123, 118, 122, 125, 128, 123, 125, 117, 124, 139, 155, 130, 132, 119, 122, 122, 147, 138, 139, 127, 132, 127, 112, 120, 125, 127, 132, 140, 139, 122, 134, 136, 140, 142, 109, 112, 103, 127, 136, 144, 122, 111, 130, 131, 121, 139, 133, 126, 125, 126, 135, 106, 121, 117, 132, 112, 122, 129, 126, 122, 143, 120, 123, 127, 123, 119, 114, 136, 122, 106, 118, 119, 146, 120, 122, 128, 116, 127, 139, 103, 114, 123, 130, 124, 123, 113, 129, 133, 129, 122, 129, 122, 139, 157, 143, 132, 151, 127, 133, 142, 119, 126, 128, 141, 121, 134, 137, 129, 124, 130, 124, 122, 127, 136, 114, 112, 128, 112, 135, 128, 132, 106, 114, 106, 139, 101, 132, 106, 113, 129, 135, 121, 121, 101, 128, 106, 153, 110, 138, 132, 132, 135, 127, 129, 140, 135, 113, 132, 122, 148, 118, 123, 104, 146, 130, 122, 127, 109, 129, 128, 130, 118, 127, 100, 129, 118, 125, 116, 109, 136, 123, 127, 134, 139, 133, 114, 116, 140, 131, 130, 115, 134, 113, 125, 129, 141, 126, 119, 111, 123, 125, 125, 132, 129, 126, 113, 124, 115, 117, 112, 106, 116, 127, 123, 154, 126, 115, 144, 117, 139, 107, 138, 133, 129, 130, 119, 133, 142, 128, 122, 122, 142, 129, 113, 121, 124, 113, 130, 131, 124, 130, 126, 106, 123, 115, 124, 142, 122, 100, 120, 133, 122, 145, 118, 150, 124, 109, 126, 151, 119, 130, 115, 127, 110, 121, 128, 121, 144, 139, 134, 142, 117, 116, 119, 138, 115, 119, 119, 129, 139, 129, 113, 131, 128, 144, 139, 129, 114, 117, 133, 125, 120, 135, 117, 116, 129, 125, 156, 146, 122, 131, 112, 133, 120, 135, 123, 107, 129, 140, 113, 124, 120, 140, 121, 133, 114, 124, 134, 139, 103, 129, 126, 122, 130, 117, 133, 122, 124, 125, 112, 122, 137, 104, 149, 113, 136, 123, 121, 109, 143, 137, 115, 118, 124, 133, 116, 131, 135, 114, 106, 144, 113, 142, 128, 103, 111, 118, 132, 116, 130, 130, 116, 129, 122, 127, 128, 122, 121, 134, 130, 110, 132, 126, 133, 141, 126, 131, 131, 125, 118, 139, 135, 113, 130, 139, 129, 119, 122, 115, 124, 110, 125, 110, 119, 123, 140, 125, 128, 123, 107, 132, 114, 125, 121, 122, 141, 124, 137, 126, 127, 124, 116, 144, 119, 135, 146, 117, 127, 112, 124, 136, 123, 121, 127, 128, 120, 123, 128, 107, 120, 118, 132, 144, 136, 139, 129, 121, 110, 131, 112, 134, 119, 118, 136, 130, 146, 130, 129, 129, 128, 117, 115, 118, 131, 138, 117, 131, 119, 144, 130, 149, 139, 126, 121, 117, 111, 120, 144, 116, 128, 115, 130, 129, 109, 147, 130, 107, 110, 109, 137, 123, 137, 133, 124, 110, 119, 120, 128, 136, 117, 128, 115, 133, 121, 130, 134, 132, 127, 137, 148, 123, 132, 133, 125, 139, 130, 150, 124, 122, 110, 141, 123, 131, 124, 115, 107, 131, 114, 133, 124, 131, 120, 103, 131, 146, 123, 131, 129, 121, 109, 125, 126, 120, 126, 143, 124, 131, 131, 131, 137, 132, 112, 118, 120, 135, 142, 124, 125, 129, 126, 121, 121, 134, 124, 129, 112, 125, 142, 119, 148, 128, 124, 105, 123, 119, 118, 124, 117, 106, 135, 110, 114, 137, 110, 119, 118, 121, 134, 121, 114, 144, 121, 119, 121, 112, 120, 121, 128, 123, 119, 121, 148, 130, 128, 133, 120, 137, 95, 111, 111, 126, 126, 126, 133, 118, 121, 122, 115, 140, 124, 105, 118, 131, 120, 113, 139, 133, 125, 140, 119, 137, 113, 124, 137, 140, 126, 130, 120, 138, 126, 115, 130, 120, 134, 127, 115, 125, 120, 123, 104, 131, 129, 114, 130, 135, 106, 128, 126, 105, 139, 133, 139, 150, 131, 113, 129, 108, 116, 110, 138, 120, 134, 125, 130, 122, 122, 91, 136, 114, 134, 122, 114, 112, 137, 122, 121, 137, 139, 125, 131, 136, 123, 126, 127, 133, 114, 152, 113, 118, 127, 128, 125, 127, 111, 140, 114, 139, 132, 150, 127, 113, 123, 114, 106, 115, 123, 132, 108, 134, 135, 125, 145, 124, 153, 132, 137, 130, 123, 105, 109, 125, 125, 128, 134, 105, 108, 111, 115, 132, 106, 130, 152, 121, 120, 121, 128, 127, 147, 129, 106, 132, 130, 131, 106, 128, 120, 137, 100, 109, 109, 121, 119, 124, 149, 122, 139, 92, 131, 129, 116, 141, 124, 116, 122, 114, 123, 125, 117, 114, 135, 109, 126, 127, 125, 138, 109, 131, 134, 122, 110, 119, 118, 122, 119, 130, 128, 114, 120, 107, 157, 126, 138, 127, 120, 129, 129, 105, 139, 124, 127, 121, 128, 125, 126, 110, 131, 134, 111, 126, 126, 129, 112, 105, 119, 126, 115, 130, 122, 144, 134, 130, 107, 113, 108, 132, 115, 105, 136, 127, 127, 128, 136, 112, 118, 143, 142, 120, 122, 131, 128, 133, 131, 139, 128, 113, 132, 125, 116, 117, 137, 123, 128, 122, 129, 120, 123, 124, 126, 111, 122, 119, 124, 137, 108, 136, 120, 128, 109, 125, 134, 120, 125, 137, 127, 132, 123, 125, 131, 141, 127, 132, 133, 131, 110, 126, 108, 120, 100, 116, 128, 125, 133, 129, 124, 130, 118, 113, 145, 101, 113, 126, 118, 134, 122, 161, 133, 135, 134, 107, 142, 124, 128, 116, 118, 120, 131, 128, 120, 143, 118, 130, 145, 123, 123, 139, 114, 115, 131, 128, 119, 128, 110, 111, 124, 105, 108, 132, 132, 133, 112, 119, 135, 120, 138, 123, 120, 142, 139, 156, 119, 144, 123, 125, 127, 114, 134, 106, 129, 133, 105, 141, 120, 117, 117, 118, 154, 119, 134, 121, 119, 121, 127, 112, 127, 133, 135, 124, 128, 109, 111, 138, 114, 130, 144, 133, 128, 117, 134, 129, 112, 114, 119, 132, 121, 132, 123, 132, 110, 114, 129, 116, 127, 126, 118, 130, 139, 102, 134, 119, 117, 142, 164, 114, 124, 126, 139, 118, 136, 126, 103, 133, 133, 129, 121, 124, 122, 120, 134, 110, 122, 126, 113, 126, 134, 124, 134, 124, 127, 127, 135, 125, 119, 125, 113, 117, 123, 115, 127, 113, 106, 133, 123, 133, 121, 103, 113, 125, 135, 131, 132, 129, 104, 134, 114, 117, 107, 126, 127, 145, 116, 124, 141, 115, 115, 129, 103, 127, 118, 125, 106, 119, 128, 123, 114, 142, 127, 118, 122, 126, 120, 135, 118, 146, 141, 138, 140, 124, 140, 134, 138, 125, 125, 126, 125, 120, 118, 123, 133, 115, 133, 115, 124, 112, 139, 131, 101, 119, 117, 120, 123, 120, 119, 128, 130, 127, 132, 154, 128, 115, 124, 121, 110, 121, 118, 117, 128, 115, 102, 127, 123, 126, 129, 131, 118, 127, 147, 125, 116, 119, 138, 118, 110, 129, 124, 112, 130, 121, 113, 134, 113, 98, 125, 123, 150, 123, 131, 108, 116, 113, 113, 119, 119, 125, 116, 130, 136, 127, 126, 134, 128, 126, 108, 123, 130, 144, 121, 123, 135, 131, 126, 110, 145, 123, 122, 124, 121, 125, 101, 107, 112, 124, 118, 124, 135, 123, 115, 134, 114, 114, 120, 140, 120, 125, 106, 126, 123, 131, 109, 116, 144, 125, 113, 130, 115, 125, 124, 111, 140, 129, 133, 122, 115, 129, 122, 116, 124, 133, 134, 122, 131, 132, 129, 131, 128, 130, 136, 123, 134, 107, 108, 152, 116, 117, 113, 127, 115, 117, 103, 132, 132, 122, 110, 124, 124, 118, 122, 116, 121, 151, 146, 127, 137, 116, 117, 111, 110, 115, 117, 140, 105, 105, 136, 141, 126, 104, 128, 123, 115, 115, 124, 147, 126, 137, 118, 132, 128, 111, 125, 109, 115, 125, 138, 147, 129, 139, 120, 116, 132, 121, 127, 130, 133, 115, 135, 107, 135, 114, 103, 122, 124, 129, 123, 120, 112, 115, 134, 126, 134, 122, 133, 114, 121, 129, 130, 121, 125, 123, 125, 128, 132, 126, 124, 132, 125, 139, 123, 139, 136, 122, 115, 120, 126, 130, 136, 123, 112, 140, 133, 128, 110, 122, 125, 119, 115, 125, 117, 144, 110, 130, 116, 120, 122, 139, 125, 130, 110, 132, 132, 112, 122, 137, 114, 121, 128, 137, 120, 103, 124, 123, 116, 127, 136, 104, 126, 126, 153, 120, 129, 143, 115, 136, 139, 138, 101, 131, 123, 137, 113, 153, 148, 133, 137, 134, 121, 135, 141, 115, 133, 110, 143, 113, 104, 121, 131, 122, 125, 120, 111, 128, 126, 125, 123, 131, 129, 135, 141, 123, 111, 129, 114, 122, 114, 116, 135, 149, 133, 134, 121, 112, 120, 132, 122, 111, 107, 127, 123, 130, 142, 120, 124, 131, 123, 135, 105, 122, 121, 126, 128, 105, 110, 132, 113, 136, 125, 123, 118, 137, 137, 104, 136, 154, 134, 124, 126, 154, 126, 117, 125, 120, 144, 122, 103, 131, 141, 134, 110, 147, 124, 120, 115, 126, 129, 123, 112, 129, 143, 123, 125, 127, 125, 132, 117, 122, 132, 100, 126, 109, 111, 123, 138, 160, 131, 114, 132, 108, 126, 120, 134, 122, 115, 112, 125, 128, 112, 131, 122, 151, 130, 125, 121, 134, 129, 160, 129, 131, 111, 154, 137, 137, 127, 119, 121, 119, 138, 116, 130, 111, 116, 140, 166, 115, 124, 113, 118, 158, 114, 151, 129, 128, 116, 139, 116, 126, 131, 136, 132, 120, 108, 117, 119, 121, 130, 115, 131, 114, 123, 92, 111, 122, 116, 142, 123, 130, 138, 145, 115, 135, 133, 128, 137, 122, 115, 136, 137, 127, 135, 137, 132, 112, 150, 128, 126, 106, 129, 134, 138, 123, 112, 113, 127, 114, 113, 113, 122, 136, 127, 137, 104, 119, 125, 123, 136, 117, 136, 118, 132, 123, 135, 126, 144, 120, 114, 118, 121, 125, 146, 130, 130, 119, 130, 136, 128, 131, 140, 143, 136, 123, 123, 132, 128, 125, 132, 150, 135, 117, 146, 130, 135, 130, 136, 123, 112, 121, 129, 129, 139, 135, 115, 122, 120, 133, 123, 126, 138, 123, 122, 117, 131, 126, 123, 121, 130, 115, 121, 124, 151, 130, 121, 124, 100, 116, 120, 128, 123, 126, 121, 120, 125, 116, 115, 129, 120, 118, 125, 121, 126, 138, 127, 124, 133, 113, 117, 109, 136, 136, 140, 112, 115, 110, 117, 123, 121, 122, 133, 122, 120, 130, 116, 123, 119, 129, 125, 127, 111, 146, 118, 117, 124, 127, 107, 130, 123, 104, 121, 121, 122, 135, 135, 154, 115, 119, 144, 115, 138, 101, 129, 140, 131, 137, 132, 137, 122, 124, 132, 123, 125, 111, 126, 117, 115, 116, 125, 127, 121, 129, 133, 112, 109, 123, 133, 131, 110, 136, 131, 149, 128, 134, 137, 148, 112, 124, 119, 134, 129, 123, 121, 130, 140, 126, 138, 140, 149, 123, 128, 129, 120, 118, 126, 119, 112, 106, 122, 115, 124, 140, 120, 145, 126, 110, 116, 125, 114, 128, 115, 112, 112, 106, 134, 115, 144, 129, 120, 131, 127, 135, 106, 139, 123, 121, 135, 121, 135, 109, 135, 153, 120, 124, 118, 145, 127, 122, 135, 105, 122, 114, 117, 138, 132, 98, 110, 121, 101, 127, 131, 123, 120, 113, 121, 118, 118, 112, 132, 134, 141, 121, 125, 153, 129, 139, 124, 119, 126, 121, 126, 119, 124, 139, 118, 135, 151, 115, 135, 132, 134, 119, 119, 119, 122, 142, 120, 119, 134, 128, 149, 120, 125, 124, 124, 127, 115, 131, 134, 121, 129, 130, 120, 120, 119, 131, 135, 124, 124, 132, 140, 123, 120, 142, 120, 113, 141, 143, 118, 123, 126, 127, 126, 106, 141, 137, 125, 137, 121, 120, 120, 126, 146, 125, 123, 136, 119, 135, 122, 118, 123, 130, 136, 128, 123, 124, 123, 111, 113, 151, 118, 105, 126, 144, 150, 114, 117, 102, 117, 136, 127, 121, 133, 136, 126, 134, 140, 127, 113, 124, 109, 123, 114, 121, 111, 112, 131, 118, 105, 125, 123, 115, 131, 117, 148, 115, 138, 101, 132, 135, 124, 124, 108, 126, 120, 135, 112, 117, 125, 118, 112, 128, 134, 127, 112, 126, 121, 127, 143, 122, 113, 132, 134, 141, 140, 118, 141, 129, 113, 144, 120, 130, 120, 127, 128, 109, 128, 117, 112, 110, 140, 130, 121, 124, 120, 103, 128, 140, 113, 129, 143, 121, 131, 111, 107, 109, 131, 130, 128, 127, 127, 129, 132, 127, 158, 124, 113, 145, 118, 127, 114, 117, 138, 136, 122, 123, 119, 113, 116, 114, 116, 114, 140, 133, 130, 142, 127, 123, 126, 133, 93, 117, 127, 127, 142, 111, 121, 123, 136, 127, 133, 126, 117, 133, 123, 133, 129, 132, 126, 107, 139, 123, 124, 120, 118, 132, 127, 119, 136, 127, 114, 115, 114, 126, 112, 108, 139, 131, 117, 143, 117, 146, 114, 124, 115, 143, 117, 120, 142, 134, 125, 115, 133, 127, 130, 129, 102, 126, 122, 118, 117, 122, 140, 129, 124, 112, 135, 133, 112, 122, 120, 118, 120, 132, 120, 124, 130, 132, 126, 126, 111, 144, 133, 122, 141, 121, 115, 131, 116, 124, 132, 159, 133, 108, 116, 135, 119, 130, 127, 121, 127, 130, 116, 127, 130, 128, 135, 128, 127, 126, 125, 133, 127, 143, 125, 127, 142, 124, 126, 116, 142, 133, 116, 126, 121, 138, 126, 119, 121, 128, 120, 106, 130, 132, 126, 121, 129, 115, 126, 124, 127, 126, 129, 144, 125, 123, 126, 125, 147, 157, 114, 119, 123, 146, 120, 133, 135, 127, 102, 118, 125, 123, 122, 136, 122, 125, 133, 123, 104, 117, 146, 122, 129, 130, 132, 129, 113, 116, 117, 125, 124, 125, 129, 105, 123, 144, 120, 134, 127, 117, 123, 132, 126, 120, 108, 133, 132, 125, 127, 106, 120, 117, 111, 113, 117, 137, 115, 115, 117, 136, 123, 131, 123, 117, 123, 135, 136, 101, 133, 128, 139, 120, 129, 124, 126, 138, 132, 123, 125, 133, 109, 119, 124, 139, 132, 108, 127, 120, 134, 135, 125, 127, 133, 116, 108, 113, 136, 124, 129, 130, 127, 134, 129, 123, 112, 136, 137, 137, 128, 118, 122, 124, 123, 120, 133, 137, 135, 108, 125, 116, 133, 134, 120, 141, 128, 138, 130, 143, 140, 143, 129, 110, 144, 133, 132, 154, 124, 134, 127, 121, 120, 120, 143, 119, 117, 115, 135, 120, 124, 124, 133, 127, 136, 123, 117, 131, 138, 111, 116, 132, 125, 123, 129, 109, 127, 120, 125, 112, 132, 123, 131, 146, 137, 136, 111, 122, 126, 112, 128, 115, 148, 126, 109, 127, 132, 119, 141, 118, 120, 126, 116, 126, 132, 116, 122, 129, 120, 123, 144, 138, 125, 113, 123, 134, 125, 120, 115, 134, 127, 135, 123, 120, 124, 130, 120, 124, 118, 127, 124, 120, 117, 136, 132, 131, 158, 118, 125, 120, 129, 123, 126, 130, 133, 120, 124, 127, 118, 125, 122, 119, 121, 120, 103, 127, 115, 120, 119, 106, 140, 145, 123, 114, 133, 123, 141, 130, 132, 131, 119, 128, 111, 108, 134, 134, 131, 117, 109, 135, 120, 129, 141, 113, 126, 107, 105, 134, 117, 118, 125, 108, 126, 131, 130, 128, 124, 137, 134, 142, 109, 124, 123, 135, 121, 144, 133, 115, 143, 130, 125, 121, 120, 142, 137, 111, 119, 134, 135, 127, 137, 112, 115, 149, 120, 113, 128, 131, 137, 137, 130, 127, 138, 136, 129, 116, 124, 107, 144, 112, 118, 129, 110, 118, 118, 104, 128, 107, 138, 131, 105, 119, 119, 120, 129, 117, 135, 132, 104, 138, 131, 126, 122, 145, 123, 123, 138, 118, 137, 121, 135, 126, 144, 121, 124, 119, 129, 136, 110, 137, 106, 129, 131, 124, 140, 119, 126, 132, 123, 119, 124, 132, 128, 120, 121, 129, 142, 105, 126, 122, 137, 142, 127, 121, 124, 109, 118, 127, 122, 124, 136, 124, 136, 105, 139, 106, 129, 141, 112, 137, 136, 109, 126, 130, 112, 129, 125, 129, 118, 112, 139, 117, 133, 144, 119, 119, 113, 117, 120, 129, 137, 119, 152, 122, 116, 124, 106, 111, 138, 118, 141, 118, 133, 121, 124, 120, 110, 122, 124, 130, 130, 126, 125, 121, 134, 133, 135, 131, 128, 136, 128, 143, 129, 138, 122, 136, 135, 115, 121, 124, 145, 139, 123, 156, 135, 129, 120, 127, 141, 121, 130, 112, 141, 144, 109, 99, 118, 117, 126, 127, 109, 131, 133, 114, 139, 136, 101, 131, 134, 112, 109, 120, 128, 129, 124, 136, 133, 109, 138, 131, 135, 137, 119, 142, 105, 128, 132, 113, 126, 128, 129, 108, 153, 114, 122, 135, 141, 134, 118, 121, 130, 129, 137, 129, 140, 137, 111, 123, 109, 132, 113, 111, 127, 117, 130, 112, 126, 117, 120, 136, 157, 135, 130, 138, 146, 124, 128, 141, 110, 143, 128, 107, 120, 145, 116, 110, 113, 108, 113, 110, 94, 135, 116, 112, 124, 149, 129, 126, 124, 118, 128, 130, 131, 117, 106, 134, 157, 136, 129, 120, 130, 135, 119, 113, 114, 130, 132, 126, 124, 129, 117, 129, 135, 128, 115, 138, 131, 107, 128, 123, 111, 125, 115, 126, 131, 96, 143, 132, 121, 118, 139, 103, 126, 122, 136, 133, 123, 127, 129, 118, 129, 117, 139, 132, 136, 148, 130, 118, 130, 121, 115, 135, 122, 130, 119, 129, 121, 107, 117, 137, 104, 122, 156, 145, 132, 117, 126, 128, 112, 125, 114, 132, 128, 119, 120, 124, 133, 139, 117, 137, 138, 117, 137, 128, 119, 121, 146, 150, 131, 136, 116, 120, 122, 130, 129, 138, 124, 135, 122, 150, 111, 123, 124, 105, 115, 124, 118, 109, 119, 121, 143, 142, 129, 131, 118, 148, 135, 114, 119, 133, 131, 136, 129, 109, 111, 129, 111, 126, 137, 111, 119, 139, 113, 119, 111, 136, 127, 134, 133, 109, 130, 138, 131, 122, 120, 128, 123, 117, 133, 113, 139, 144, 128, 130, 131, 119, 121, 156, 118, 128, 118, 128, 134, 121, 122, 141, 129, 122, 127, 106, 128, 127, 125, 135, 134, 118, 120, 121, 125, 122, 112, 137, 138, 132, 125, 117, 121, 122, 121, 141, 135, 141, 131, 131, 133, 120, 112, 135, 111, 121, 109, 125, 121, 129, 118, 139, 124, 140, 122, 126, 114, 131, 117, 127, 127, 119, 137, 128, 128, 113, 126, 125, 112, 125, 154, 141, 125, 121, 159, 139, 132, 126, 126, 119, 146, 118, 118, 117, 128, 140, 141, 113, 136, 128, 130, 118, 114, 112, 128, 109, 126, 107, 123, 124, 116, 105, 119, 111, 139, 135, 114, 124, 152, 126, 129, 128, 124, 127, 110, 132, 123, 130, 131, 125, 118, 133, 125, 135, 126, 134, 117, 125, 124, 131, 131, 110, 130, 136, 126, 125, 124, 122, 132, 137, 126, 118, 126, 127, 114, 106, 126, 129, 132, 112, 128, 110, 154, 137, 140, 122, 133, 134, 110, 138, 142, 124, 122, 130, 134, 123, 131, 136, 138, 127, 131, 124, 136, 133, 136, 130, 131, 137, 125, 147, 143, 132, 105, 127, 117, 127, 129, 119, 106, 122, 132, 136, 132, 137, 141, 142, 111, 122, 128, 136, 124, 117, 120, 130, 113, 126, 131, 130, 137, 115, 124, 115, 123, 129, 117, 119, 125, 124, 119, 131, 119, 128, 142, 119, 133, 141, 109, 143, 117, 130, 121, 118, 118, 122, 125, 130, 120, 133, 108, 135, 115, 114, 139, 132, 131, 140, 118, 127, 127, 126, 144, 124, 125, 125, 140, 131, 114, 110, 119, 123, 111, 134, 133, 141, 128, 121, 116, 112, 140, 140, 132, 143, 129, 143, 122, 141, 125, 116, 121, 128, 142, 141, 137, 115, 139, 146, 116, 123, 112, 120, 130, 132, 130, 128, 145, 125, 127, 126, 135, 128, 131, 156, 157, 114, 131, 133, 127, 129, 127, 120, 120, 130, 122, 112, 114, 123, 118, 140, 137, 114, 116, 123, 112, 126, 125, 125, 131, 122, 117, 151, 128, 118, 136, 130, 124, 135, 117, 130, 119, 111, 120, 125, 106, 120, 151, 127, 117, 124, 115, 116, 123, 113, 124, 132, 135, 120, 130, 122, 131, 124, 128, 121, 132, 145, 118, 125, 119, 126, 123, 131, 149, 122, 124, 121, 118, 123, 122, 118, 121, 130, 136, 129, 125, 130, 103, 120, 125, 128, 120, 124, 133, 131, 131, 124, 130, 128, 124, 132, 114, 130, 115, 125, 125, 113, 118, 116, 119, 133, 129, 128, 106, 105, 130, 113, 136, 130, 120, 127, 111, 125, 120, 114, 122, 136, 122, 100, 114, 128, 131, 125, 125, 108, 120, 98, 141, 131, 105, 125, 118, 127, 136, 126, 137, 123, 134, 129, 131, 116, 129, 137, 145, 139, 129, 119, 126, 114, 126, 115, 120, 145, 121, 106, 126, 133, 145, 117, 119, 126, 130, 120, 111, 127, 127, 124, 128, 125, 130, 130, 119, 136, 113, 119, 130, 140, 111, 119, 126, 123, 116, 126, 136, 144, 123, 131, 124, 136, 106, 125, 141, 139, 137, 113, 126, 125, 132, 129, 117, 134, 132, 136, 127, 108, 126, 109, 126, 117, 126, 144, 123, 130, 125, 133, 105, 106, 137, 125, 122, 128, 118, 129, 125, 129, 126, 134, 134, 137, 107, 114, 138, 116, 121, 121, 123, 119, 124, 139, 122, 136, 132, 135, 125, 122, 118, 129, 133, 124, 117, 115, 132, 125, 140, 115, 135, 117, 118, 102, 122, 140, 125, 111, 106, 142, 121, 127, 124, 109, 124, 116, 148, 132, 130, 111, 120, 121, 129, 128, 115, 144, 128, 122, 130, 117, 117, 111, 130, 137, 117, 129, 131, 133, 127, 113, 114, 124, 121, 128, 121, 129, 148, 141, 116, 130, 114, 158, 116, 121, 121, 142, 134, 133, 127, 111, 116, 144, 125, 124, 115, 121, 143, 138, 125, 117, 146, 115, 126, 117, 131, 120, 111, 121, 105, 114, 119, 113, 122, 126, 118, 115, 119, 124, 132, 111, 113, 109, 138, 134, 133, 124, 118, 131, 125, 120, 112, 108, 122, 141, 134, 124, 130, 119, 131, 115, 130, 114, 125, 135, 128, 123, 120, 128, 117, 127, 122, 120, 120, 114, 128, 126, 134, 141, 122, 124, 136, 124, 123, 128, 123, 107, 129, 126, 130, 135, 111, 130, 136, 122, 114, 138, 115, 130, 113, 129, 133, 133, 124, 122, 121, 119, 120, 146, 117, 129, 120, 130, 113, 118, 139, 123, 127, 133, 116, 121, 121, 120, 132, 129, 131, 136, 113, 130, 124, 142, 127, 111, 127, 124, 135, 133, 96, 118, 136, 128, 130, 115, 124, 127, 123, 116, 121, 124, 133, 113, 128, 134, 141, 132, 110, 123, 131, 114, 135, 128, 115, 135, 125, 121, 125, 114, 126, 122, 114, 108, 123, 115, 126, 129, 121, 112, 111, 109, 116, 139, 129, 143, 120, 126, 123, 113, 119, 113, 116, 130, 120, 125, 136, 120, 126, 113, 122, 131, 127, 121, 134, 129, 127, 131, 145, 117, 121, 134, 129, 136, 117, 136, 118, 120, 110, 122, 114, 123, 111, 139, 116, 123, 116, 119, 110, 124, 123, 122, 126, 139, 124, 137, 141, 111, 131, 130, 109, 122, 146, 124, 119, 137, 135, 131, 120, 124, 124, 124, 117, 129, 137, 130, 136, 137, 144, 124, 135, 137, 133, 124, 126, 122, 123, 122, 124, 129, 117, 132, 124, 126, 117, 115, 133, 126, 141, 141, 118, 116, 129, 125, 125, 121, 143, 135, 144, 106, 121, 141, 134, 98, 142, 121, 116, 138, 117, 134, 120, 125, 122, 123, 134, 133, 129, 143, 121, 122, 111, 123, 136, 124, 110, 126, 96, 134, 137, 132, 123, 129, 126, 129, 155, 116, 127, 116, 107, 129, 123, 144, 143, 123, 119, 131, 130, 131, 127, 132, 122, 146, 108, 128, 123, 122, 138, 119, 110, 136, 114, 128, 122, 129, 116, 130, 116, 140, 130, 130, 107, 138, 139, 124, 129, 126, 121, 131, 134, 122, 111, 129, 139, 111, 117, 110, 114, 138, 146, 129, 121, 127, 116, 128, 118, 118, 112, 131, 126, 102, 139, 124, 127, 135, 138, 117, 103, 113, 123, 132, 122, 125, 131, 125, 130, 125, 121, 107, 135, 131, 141, 116, 118, 116, 146, 139, 133, 126, 137, 132, 120, 116, 125, 146, 140, 110, 115, 135, 130, 122, 123, 131, 118, 138, 133, 140, 117, 137, 115, 129, 121, 129, 106, 130, 144, 131, 125, 121, 141, 115, 106, 129, 126, 128, 119, 125, 101, 123, 132, 128, 109, 115, 123, 133, 125, 146, 143, 121, 134, 133, 131, 122, 114, 128, 113, 116, 108, 126, 121, 142, 146, 118, 132, 121, 129, 125, 126, 122, 126, 143, 135, 119, 126, 126, 142, 127, 129, 101, 125, 139, 133, 146, 130, 140, 122, 123, 133, 128, 145, 124, 109, 117, 110, 108, 122, 123, 134, 130, 124, 136, 136, 123, 128, 139, 138, 125, 113, 130, 123, 106, 127, 132, 122, 129, 125, 149, 143, 140, 125, 116, 130, 110, 117, 135, 138, 133, 119, 144, 119, 112, 123, 116, 122, 108, 114, 122, 118, 128, 127, 130, 125, 110, 125, 133, 120, 116, 115, 117, 132, 132, 123, 120, 110, 125, 147, 121, 132, 144, 122, 128, 124, 121, 137, 125, 135, 125, 141, 110, 126, 131, 111, 121, 120, 135, 125, 145, 118, 112, 122, 135, 123, 124, 129, 111, 108, 116, 114, 136, 122, 137, 146, 126, 121, 124, 128, 130, 116, 112, 150, 132, 124, 131, 119, 112, 138, 111, 138, 124, 130, 136, 121, 135, 135, 126, 110, 120, 126, 148, 112, 128, 115, 134, 115, 133, 141, 114, 146, 122, 117, 123, 145, 127, 117, 128, 122, 112, 129, 130, 138, 136, 132, 132, 124, 129, 134, 127, 117, 132, 124, 115, 123, 138, 124, 134, 126, 139, 141, 125, 137, 141, 121, 117, 115, 128, 119, 123, 114, 142, 125, 130, 119, 120, 117, 123, 125, 128, 127, 123, 108, 133, 137, 146, 123, 135, 128, 124, 123, 131, 129, 120, 121, 132, 136, 121, 101, 124, 113, 109, 110, 126, 144, 135, 116, 149, 140, 123, 111, 135, 109, 124, 123, 131, 136, 108, 118, 139, 123, 128, 153, 119, 126, 127, 144, 123, 124, 137, 130, 134, 128, 137, 138, 128, 144, 137, 117, 143, 140, 125, 139, 126, 137, 121, 131, 114, 134, 119, 134, 105, 136, 119, 119, 107, 125, 134, 130, 127, 130, 126, 142, 122, 124, 121, 118, 118, 113, 112, 114, 121, 107, 117, 127, 119, 125, 131, 126, 125, 117, 125, 127, 136, 128, 112, 113, 125, 114, 119, 116, 128, 125, 130, 127, 118, 133, 133, 153, 128, 122, 128, 124, 118, 126, 121, 125, 127, 117, 123, 135, 129, 127, 118, 138, 116, 130, 125, 130, 129, 125, 131, 127, 118, 153, 111, 106, 135, 121, 119, 122, 114, 139, 122, 127, 128, 136, 90, 125, 111, 127, 130, 109, 120, 120, 125, 129, 133, 133, 118, 128, 124, 120, 127, 122, 117, 132, 131, 119, 130, 124, 130, 122, 106, 140, 125, 134, 113, 140, 129, 117, 103, 114, 132, 106, 132, 126, 134, 116, 130, 126, 116, 119, 115, 135, 125, 116, 121, 120, 126, 122, 145, 123, 117, 129, 114, 124, 135, 114, 137, 116, 134, 126, 127, 127, 120, 112, 107, 138, 104, 130, 134, 125, 138, 133, 131, 126, 113, 127, 131, 134, 123, 117, 139, 134, 112, 127, 133, 123, 115, 129, 122, 136, 127, 131, 115, 130, 140, 124, 101, 142, 129, 125, 103, 126, 109, 113, 125, 132, 116, 119, 109, 125, 122, 131, 119, 144, 106, 128, 119, 132, 117, 102, 122, 127, 130, 122, 131, 139, 137, 114, 131, 126, 128, 153, 126, 122, 118, 122, 148, 119, 132, 118, 124, 123, 124, 128, 119, 129, 121, 124, 99, 128, 111, 127, 116, 122, 130, 134, 120, 131, 142, 140, 111, 134, 130, 118, 111, 117, 124, 115, 137, 130, 111, 129, 124, 103, 114, 131, 133, 122, 111, 124, 134, 122, 140, 136, 121, 121, 111, 119, 110, 116, 113, 125, 113, 124, 131, 122, 128, 125, 140, 120, 134, 115, 109, 124, 128, 136, 111, 129, 135, 142, 140, 102, 122, 133, 127, 119, 136, 136, 120, 118, 125, 129, 109, 141, 140, 140, 126, 127, 125, 129, 150, 131, 125, 143, 130, 135, 109, 122, 111, 129, 136, 127, 124, 115, 119, 112, 103, 139, 114, 130, 118, 123, 131, 124, 124, 127, 134, 123, 111, 129, 126, 122, 121, 122, 144, 124, 120, 130, 124, 130, 135, 127, 112, 135, 131, 116, 106, 128, 116, 144, 146, 129, 132, 125, 112, 111, 135, 131, 133, 129, 119, 128, 120, 135, 122, 124, 130, 129, 151, 133, 137, 121, 122, 140, 130, 132, 127, 124, 125, 139, 130, 129, 127, 131, 110, 125, 116, 127, 133, 124, 130, 133, 121, 127, 134, 125, 132, 145, 126, 140, 120, 126, 132, 102, 122, 120, 129, 142, 120, 129, 124, 130, 107, 118, 124, 121, 112, 144, 132, 109, 102, 125, 111, 138, 120, 134, 134, 110, 114, 111, 135, 116, 148, 140, 119, 129, 121, 153, 154, 112, 118, 136, 124, 134, 128, 126, 119, 130, 122, 130, 133, 113, 135, 129, 137, 123, 123, 139, 121, 114, 127, 130, 129, 135, 126, 126, 134, 131, 142, 110, 126, 117, 124, 104, 137, 135, 116, 139, 125, 107, 114, 119, 118, 138, 120, 126, 107, 124, 122, 116, 128, 139, 120, 128, 134, 126, 119, 123, 145, 118, 140, 122, 130, 122, 132, 137, 133, 118, 120, 113, 128, 140, 131, 134, 113, 124, 124, 116, 134, 115, 124, 108, 120, 121, 98, 118, 121, 118, 119, 124, 134, 117, 137, 129, 131, 135, 138, 123, 137, 136, 130, 122, 134, 123, 123, 136, 135, 128, 122, 126, 128, 128, 131, 133, 121, 119, 109, 114, 133, 125, 131, 130, 100, 127, 123, 116, 125, 106, 112, 131, 142, 119, 133, 124, 137, 127, 134, 119, 123, 122, 137, 133, 119, 144, 122, 147, 123, 133, 126, 131, 130, 137, 125, 133, 120, 120, 125, 130, 129, 140, 97, 115, 123, 121, 121, 123, 141, 118, 130, 129, 120, 122, 91, 129, 135, 145, 143, 117, 121, 128, 104, 134, 146, 115, 133, 138, 126, 117, 114, 117, 123, 98, 117, 164, 103, 116, 117, 118, 128, 143, 122, 131, 127, 128, 124, 138, 132, 108, 131, 143, 116, 135, 119, 120, 143, 118, 117, 107, 124, 120, 115, 115, 138, 127, 118, 122, 136, 143, 131, 121, 117, 129, 146, 115, 115, 138, 121, 124, 117, 111, 116, 131, 124, 115, 128, 149, 128, 134, 116, 130, 132, 129, 143, 117, 121, 135, 146, 118, 130, 138, 124, 124, 122, 124, 131, 111, 116, 116, 139, 111, 132, 115, 134, 128, 120, 131, 130, 118, 127, 131, 120, 121, 120, 142, 121, 124, 155, 127, 132, 125, 119, 107, 127, 122, 129, 118, 119, 124, 121, 121, 125, 124, 141, 119, 111, 135, 127, 137, 120, 133, 124, 126, 124, 120, 115, 122, 135, 122, 113, 120, 128, 127, 118, 128, 130, 126, 106, 131, 124, 129, 112, 141, 125, 123, 113, 118, 125, 128, 133, 117, 126, 122, 121, 115, 129, 130, 118, 120, 120, 116, 127, 130, 140, 130, 128, 128, 124, 123, 104, 124, 111, 123, 128, 134, 130, 124, 121, 128, 134, 126, 138, 120, 133, 118, 145, 118, 132, 111, 124, 115, 130, 132, 117, 123, 131, 121, 109, 127, 142, 116, 124, 140, 135, 109, 113, 130, 121, 112, 112, 114, 128, 143, 106, 134, 126, 127, 109, 127, 119, 145, 123, 141, 120, 124, 132, 118, 150, 109, 125, 107, 129, 131, 115, 120, 123, 131, 129, 121, 107, 148, 123, 119, 123, 120, 113, 129, 128, 128, 116, 138, 137, 133, 147, 104, 135, 149, 134, 122, 105, 117, 127, 109, 123, 131, 124, 148, 129, 136, 115, 119, 122, 134, 102, 124, 110, 146, 119, 123, 137, 134, 116, 111, 104, 138, 119, 133, 115, 137, 122, 126, 114, 118, 117, 132, 127, 98, 134, 118, 134, 122, 128, 133, 106, 131, 124, 139, 127, 142, 122, 111, 119, 125, 115, 127, 106, 130, 112, 116, 131, 122, 116, 125, 122, 105, 105, 139, 131, 125, 133, 132, 130, 153, 131, 102, 116, 134, 125, 138, 135, 130, 141, 133, 129, 134, 113, 125, 133, 123, 112, 130, 117, 136, 139, 135, 111, 122, 118, 122, 127, 124, 135, 123, 125, 128, 132, 133, 123, 117, 116, 96, 119, 133, 113, 131, 109, 103, 123, 120, 121, 146, 127, 123, 122, 112, 127, 139, 140, 125, 125, 128, 131, 129, 118, 131, 126, 119, 121, 137, 133, 122, 128, 114, 129, 138, 136, 126, 132, 135, 122, 115, 119, 122, 126, 114, 139, 126, 121, 147, 122, 121, 136, 117, 114, 136, 128, 128, 124, 133, 149, 97, 126, 133, 147, 136, 129, 105, 119, 139, 114, 112, 132, 128, 121, 117, 135, 114, 124, 113, 113, 121, 94, 126, 117, 120, 131, 125, 124, 126, 119, 132, 125, 122, 144, 113, 120, 124, 118, 122, 103, 123, 113, 113, 117, 125, 143, 127, 119, 118, 127, 129, 120, 115, 115, 119, 122, 130, 131, 141, 124, 120, 144, 129, 134, 118, 124, 124, 117, 137, 125, 120, 131, 132, 109, 109, 122, 115, 121, 126, 128, 121, 117, 140, 115, 133, 117, 115, 160, 123, 145, 130, 130, 133, 119, 128, 113, 97, 129, 123, 132, 117, 120, 134, 128, 141, 125, 114, 135, 114, 117, 118, 115, 120, 129, 133, 103, 121, 125, 115, 140, 113, 127, 130, 135, 120, 125, 115, 109, 117, 129, 135, 127, 127, 136, 127, 121, 156, 133, 106, 120, 114, 143, 116, 154, 110, 140, 113, 128, 115, 127, 107, 123, 124, 130, 132, 126, 139, 138, 132, 124, 140, 133, 126, 123, 110, 124, 91, 125, 134, 125, 128, 127, 124, 119, 122, 124, 152, 115, 94, 110, 145, 112, 116, 142, 121, 115, 132, 116, 123, 133, 120, 132, 120, 123, 125, 133, 116, 121, 132, 130, 122, 121, 131, 133, 105, 130, 117, 113, 103, 114, 111, 136, 142, 137, 115, 118, 104, 129, 107, 135, 137, 125, 120, 121, 129, 120, 101, 124, 131, 123, 133, 124, 128, 117, 144, 118, 110, 114, 132, 121, 134, 113, 138, 141, 113, 130, 145, 125, 135, 115, 148, 132, 126, 120, 119, 113, 146, 141, 146, 139, 133, 142, 130, 121, 128, 114, 124, 146, 123, 127, 133, 126, 121, 123, 121, 119, 152, 127, 138, 130, 118, 128, 125, 111, 143, 119, 132, 132, 116, 134, 128, 141, 128, 127, 137, 122, 122, 117, 133, 146, 127, 142, 134, 134, 133, 137, 136, 115, 126, 126, 120, 142, 132, 116, 97, 136, 130, 138, 137, 125, 98, 121, 128, 118, 141, 128, 126, 133, 116, 129, 125, 128, 120, 126, 132, 108, 130, 135, 122, 106, 116, 119, 118, 116, 118, 132, 119, 120, 126, 130, 128, 113, 111, 102, 126, 117, 113, 125, 123, 120, 120, 124, 127, 118, 109, 125, 127, 118, 133, 142, 118, 122, 139, 163, 133, 146, 118, 114, 123, 125, 137, 113, 125, 115, 126, 128, 97, 107, 114, 98, 152, 121, 117, 121, 135, 121, 151, 124, 125, 108, 126, 137, 145, 131, 116, 126, 108, 132, 126, 133, 116, 124, 125, 128, 131, 121, 108, 138, 123, 124, 140, 129, 145, 127, 115, 139, 128, 129, 112, 128, 130, 124, 123, 124, 111, 121, 127, 126, 117, 124, 124, 129, 153, 103, 131, 137, 144, 135, 131, 117, 128, 130, 126, 119, 123, 142, 132, 116, 128, 126, 113, 132, 114, 127, 118, 120, 139, 134, 127, 126, 144, 124, 138, 127, 115, 131, 126, 122, 110, 127, 138, 135, 121, 111, 127, 120, 126, 133, 116, 121, 121, 132, 118, 120, 111, 134, 112, 109, 129, 141, 127, 134, 111, 117, 126, 138, 123, 115, 127, 118, 130, 126, 114, 136, 131, 128, 114, 109, 144, 132, 116, 145, 130, 122, 125, 151, 119, 122, 117, 135, 131, 123, 131, 132, 124, 120, 118, 98, 136, 132, 130, 142, 119, 129, 116, 127, 122, 110, 117, 116, 123, 122, 121, 122, 131, 107, 134, 129, 131, 117, 146, 111, 113, 135, 140, 131, 136, 130, 133, 119, 119, 147, 105, 148, 113, 108, 129, 145, 131, 108, 124, 128, 129, 125, 116, 122, 124, 131, 126, 131, 126, 118, 106, 146, 144, 146, 135, 133, 125, 132, 120, 134, 144, 116, 136, 134, 125, 119, 124, 126, 140, 135, 111, 130, 140, 118, 126, 116, 126, 125, 114, 132, 125, 131, 135, 110, 127, 123, 133, 124, 111, 126, 128, 134, 144, 111, 136, 106, 111, 128, 132, 117, 117, 127, 114, 113, 114, 146, 117, 132, 134, 124, 133, 108, 126, 119, 135, 120, 111, 133, 123, 115, 118, 136, 143, 128, 132, 113, 132, 120, 119, 117, 114, 124, 114, 135, 138, 119, 127, 117, 116, 129, 132, 120, 118, 113, 116, 120, 120, 122, 114, 137, 117, 122, 139, 126, 136, 133, 127, 124, 124, 137, 129, 124, 125, 95, 120, 129, 121, 137, 112, 123, 130, 132, 116, 126, 142, 138, 140, 137, 130, 131, 122, 122, 111, 111, 131, 133, 133, 137, 118, 133, 109, 120, 126, 112, 132, 122, 125, 107, 132, 135, 128, 110, 122, 125, 127, 124, 119, 124, 135, 133, 106, 133, 121, 120, 141, 114, 129, 128, 146, 122, 126, 111, 116, 128, 113, 128, 124, 122, 135, 107, 113, 117, 135, 128, 119, 133, 140, 134, 121, 119, 131, 140, 128, 137, 136, 128, 138, 119, 118, 128, 145, 144, 127, 119, 126, 121, 119, 114, 128, 130, 120, 142, 121, 125, 126, 119, 129, 114, 132, 142, 120, 114, 112, 112, 117, 125, 118, 143, 130, 110, 116, 105, 127, 129, 143, 152, 118, 127, 105, 116, 120, 132, 101, 130, 123, 110, 137, 135, 126, 129, 112, 120, 137, 125, 114, 132, 119, 123, 106, 140, 128, 137, 120, 108, 112, 114, 109, 137, 128, 114, 121, 121, 117, 118, 137, 147, 120, 119, 120, 128, 118, 122, 121, 117, 137, 153, 162, 123, 123, 120, 125, 134, 126, 124, 115, 107, 142, 115, 114, 113, 122, 141, 114, 112, 130, 113, 142, 116, 123, 119, 141, 127, 124, 117, 120, 132, 132, 135, 127, 138, 128, 118, 127, 123, 135, 134, 149, 138, 148, 129, 133, 133, 127, 131, 131, 119, 120, 126, 123, 118, 132, 124, 111, 113, 128, 114, 127, 122, 154, 110, 131, 110, 126, 139, 127, 131, 112, 128, 114, 128, 110, 114, 120, 123, 143, 119, 121, 141, 126, 118, 120, 121, 115, 129, 109, 135, 139, 121, 114, 114, 148, 104, 139, 127, 133, 112, 130, 129, 132, 132, 131, 122, 117, 119, 107, 133, 134, 119, 120, 111, 137, 127, 116, 127, 110, 129, 120, 120, 129, 131, 120, 121, 133, 131, 126, 123, 150, 134, 116, 120, 122, 130, 107, 109, 137, 132, 132, 136, 124, 117, 144, 140, 138, 138, 138, 127, 131, 128, 135, 142, 112, 118, 132, 132, 115, 110, 114, 127, 115, 127, 120, 125, 109, 125, 125, 124, 126, 110, 146, 123, 115, 108, 121, 129, 113, 142, 139, 132, 118, 139, 127, 125, 123, 141, 135, 116, 127, 110, 119, 124, 128, 117, 132, 122, 115, 118, 117, 136, 137, 136, 119, 133, 129, 122, 131, 150, 108, 131, 107, 128, 127, 137, 134, 152, 130, 118, 151, 135, 118, 148, 119, 113, 122, 130, 111, 122, 142, 130, 123, 125, 117, 117, 114, 124, 116, 139, 107, 104, 107, 114, 115, 137, 129, 136, 135, 120, 121, 144, 133, 125, 129, 126, 111, 128, 131, 109, 99, 121, 127, 118, 132, 130, 132, 138, 129, 134, 117, 127, 124, 155, 124, 109, 138, 131, 122, 130, 114, 122, 109, 134, 144, 117, 120, 122, 115, 113, 135, 128, 123, 129, 112, 110, 120, 133, 124, 134, 144, 121, 140, 114, 119, 118, 122, 125, 129, 122, 113, 111, 115, 118, 121, 111, 112, 122, 122, 132, 133, 124, 141, 123, 122, 133, 140, 133, 154, 122, 127, 136, 134, 112, 113, 115, 133, 111, 127, 138, 120, 124, 119, 104, 133, 136, 122, 113, 131, 144, 130, 106, 110, 121, 155, 125, 127, 136, 134, 133, 117, 113, 129, 128, 111, 130, 133, 128, 119, 124, 136, 131, 118, 125, 132, 120, 105, 123, 131, 119, 150, 121, 134, 136, 138, 119, 138, 125, 117, 120, 124, 129, 130, 127, 124, 132, 127, 115, 125, 122, 130, 126, 130, 111, 148, 115, 111, 135, 134, 121, 133, 117, 106, 132, 120, 128, 120, 120, 142, 120, 141, 120, 140, 149, 135, 145, 124, 123, 124, 117, 135, 137, 108, 135, 119, 123, 121, 116, 108, 111, 127, 123, 117, 134, 123, 129, 126, 120, 130, 128, 120, 137, 124, 137, 120, 119, 139, 123, 118, 132, 114, 128, 122, 127, 149, 123, 127, 116, 110, 151, 127, 122, 129, 128, 129, 139, 144, 130, 126, 138, 130, 127, 111, 122, 111, 127, 126, 124, 117, 126, 118, 124, 129, 121, 129, 119, 139, 116, 136, 117, 111, 135, 115, 116, 131, 142, 133, 137, 124, 108, 133, 107, 129, 122, 111, 133, 134, 104, 122, 131, 110, 118, 133, 125, 121, 123, 117, 115, 114, 124, 132, 132, 134, 149, 117, 119, 142, 122, 128, 141, 119, 132, 122, 120, 129, 131, 127, 124, 110, 133, 112, 126, 123, 126, 135, 126, 130, 129, 136, 143, 126, 126, 122, 130, 108, 110, 143, 124, 128, 120, 123, 130, 130, 135, 115, 126, 121, 100, 124, 129, 124, 125, 133, 128, 112, 110, 136, 127, 129, 128, 128, 129, 133, 115, 113, 121, 124, 135, 138, 119, 120, 115, 124, 138, 110, 136, 131, 119, 138, 108, 120, 140, 152, 111, 138, 130, 127, 142, 114, 139, 124, 119, 130, 144, 133, 127, 114, 127, 119, 105, 116, 117, 112, 105, 120, 113, 139, 99, 115, 132, 128, 127, 124, 124, 115, 121, 140, 142, 124, 128, 125, 117, 140, 128, 137, 133, 130, 124, 124, 114, 135, 114, 127, 118, 131, 125, 130, 119, 111, 136, 111, 123, 122, 107, 135, 115, 115, 142, 126, 118, 138, 133, 117, 121, 130, 119, 125, 144, 124, 135, 128, 129, 120, 121, 127, 117, 143, 124, 116, 114, 128, 126, 130, 132, 130, 115, 118, 122, 128, 133, 145, 100, 120, 123, 136, 132, 138, 110, 118, 123, 108, 111, 114, 131, 136, 144, 130, 128, 143, 118, 120, 106, 134, 136, 134, 127, 138, 117, 131, 113, 156, 130, 132, 127, 134, 119, 141, 128, 127, 134, 136, 112, 112, 121, 141, 140, 130, 129, 141, 121, 134, 133, 125, 128, 102, 117, 135, 128, 129, 103, 134, 140, 132, 136, 144, 126, 105, 116, 118, 128, 124, 133, 134, 114, 141, 136, 133, 152, 136, 112, 117, 125, 120, 121, 118, 130, 114, 128, 127, 139, 134, 130, 132, 109, 136, 147, 114, 128, 129, 134, 119, 116, 122, 138, 135, 121, 135, 116, 124, 135, 123, 95, 130, 120, 120, 136, 132, 104, 131, 119, 111, 139, 122, 121, 109, 133, 120, 128, 108, 115, 132, 143, 115, 129, 129, 133, 121, 123, 122, 129, 119, 110, 131, 133, 123, 135, 127, 122, 138, 134, 137, 120, 125, 109, 120, 134, 122, 131, 135, 117, 119, 126, 144, 142, 132, 105, 125, 123, 120, 134, 108, 113, 130, 128, 132, 138, 136, 135, 124, 145, 117, 133, 133, 131, 97, 137, 131, 128, 124, 133, 119, 133, 140, 124, 115, 120, 121, 118, 125, 130, 122, 134, 126, 122, 113, 134, 138, 149, 132, 132, 132, 116, 128, 118, 125, 142, 141, 122, 120, 146, 118, 143, 117, 125, 127, 126, 136, 145, 134, 134, 112, 132, 133, 134, 113, 127, 126, 117, 130, 138, 138, 125, 116, 119, 129, 121, 129, 126, 138, 117, 129, 137, 110, 128, 132, 119, 110, 127, 124, 117, 119, 126, 126, 111, 119, 146, 140, 135, 131, 125, 139, 133, 148, 120, 114, 133, 127, 98, 116, 124, 121, 129, 128, 129, 123, 133, 122, 129, 132, 123, 115, 113, 140, 142, 124, 120, 122, 127, 121, 141, 121, 109, 134, 114, 113, 121, 116, 118, 137, 117, 114, 118, 148, 153, 128, 130, 148, 126, 119, 134, 123, 136, 116, 126, 119, 120, 139, 127, 128, 129, 132, 110, 125, 116, 120, 135, 129, 126, 127, 123, 123, 141, 122, 141, 123, 143, 131, 133, 136, 118, 123, 111, 124, 113, 124, 130, 117, 122, 134, 136, 139, 110, 127, 121, 128, 124, 124, 140, 124, 123, 108, 112, 126, 127, 120, 115, 119, 133, 123, 110, 145, 126, 137, 132, 111, 116, 144, 149, 134, 120, 104, 120, 123, 119, 134, 131, 106, 122, 113, 112, 123, 132, 109, 149, 134, 125, 131, 126, 129, 111, 118, 129, 127, 128, 129, 104, 127, 120, 120, 126, 116, 115, 121, 125, 112, 118, 114, 122, 131, 116, 122, 124, 122, 121, 120, 122, 127, 132, 140, 117, 114, 118, 120, 125, 127, 140, 120, 113, 124, 122, 145, 125, 117, 118, 122, 141, 139, 122, 125, 117, 132, 120, 133, 142, 111, 118, 124, 120, 127, 117, 119, 128, 129, 120, 146, 127, 117, 110, 120, 116, 105, 101, 117, 126, 133, 113, 128, 123, 130, 114, 123, 125, 116, 121, 127, 122, 123, 125, 130, 96, 136, 109, 132, 143, 128, 134, 111, 155, 126, 126, 116, 135, 124, 122, 109, 106, 133, 139, 134, 136, 157, 131, 125, 108, 122, 137, 132, 134, 123, 126, 119, 121, 129, 114, 128, 134, 120, 108, 124, 133, 127, 120, 119, 127, 127, 112, 127, 112, 123, 130, 117, 133, 126, 111, 125, 126, 134, 114, 124, 131, 140, 121, 133, 138, 128, 132, 136, 104, 122, 136, 128, 125, 126, 105, 139, 135, 118, 119, 133, 137, 129, 108, 136, 135, 121, 137, 126, 128, 129, 148, 138, 133, 134, 143, 131, 121, 122, 113, 113, 142, 134, 126, 136, 111, 111, 133, 125, 118, 118, 122, 134, 130, 129, 122, 121, 126, 121, 144, 134, 138, 133, 132, 122, 119, 122, 130, 149, 134, 145, 129, 117, 102, 136, 119, 112, 120, 128, 144, 120, 117, 135, 111, 148, 124, 124, 133, 115, 110, 122, 128, 119, 118, 125, 124, 132, 114, 130, 119, 123, 101, 114, 113, 137, 112, 125, 125, 110, 134, 115, 128, 141, 116, 120, 121, 143, 109, 111, 133, 141, 138, 117, 159, 113, 144, 125, 94, 130, 122, 129, 120, 128, 88, 110, 128, 124, 127, 114, 140, 141, 125, 129, 124, 116, 140, 136, 139, 118, 111, 113, 134, 129, 125, 133, 132, 118, 134, 125, 119, 108, 126, 123, 140, 112, 123, 137, 124, 114, 122, 124, 122, 117, 125, 119, 126, 121, 113, 105, 110, 122, 133, 124, 118, 124, 127, 131, 138, 125, 132, 124, 128, 122, 118, 122, 114, 122, 119, 122, 127, 131, 145, 109, 118, 120, 144, 118, 119, 111, 127, 139, 147, 121, 115, 136, 143, 110, 120, 121, 128, 126, 119, 134, 138, 126, 121, 120, 120, 120, 135, 113, 103, 125, 130, 136, 133, 116, 137, 134, 124, 135, 115, 115, 128, 123, 129, 125, 131, 126, 131, 122, 127, 124, 111, 134, 109, 111, 136, 131, 111, 140, 124, 121, 122, 124, 132, 121, 131, 116, 121, 132, 103, 127, 135, 107, 129, 118, 127, 125, 111, 105, 119, 118, 116, 109, 128, 120, 139, 117, 114, 126, 132, 126, 115, 126, 105, 113, 126, 123, 131, 124, 125, 118, 126, 122, 145, 124, 113, 136, 139, 122, 121, 122, 118, 123, 132, 122, 125, 132, 117, 142, 110, 126, 124, 130, 125, 133, 129, 131, 124, 102, 124, 126, 126, 154, 123, 111, 128, 122, 134, 137, 120, 117, 123, 115, 122, 144, 125, 114, 117, 139, 125, 123, 135, 126, 124, 118, 132, 127, 130, 136, 113, 121, 132, 117, 122, 136, 109, 111, 128, 136, 130, 120, 118, 130, 135, 130, 133, 126, 122, 133, 115, 118, 137, 107, 115, 126, 135, 120, 125, 116, 122, 130, 125, 107, 118, 128, 124, 121, 123, 137, 121, 125, 129, 116, 129, 105, 121, 126, 133, 138, 144, 122, 134, 123, 110, 114, 120, 111, 145, 126, 129, 127, 119, 118, 131, 121, 125, 133, 123, 121, 127, 117, 127, 124, 117, 122, 132, 128, 117, 134, 131, 113, 128, 122, 110, 137, 119, 122, 104, 110, 134, 105, 114, 122, 117, 121, 111, 121, 130, 121, 132, 132, 119, 126, 129, 128, 121, 126, 115, 116, 142, 124, 142, 128, 123, 115, 138, 109, 107, 145, 129, 123, 120, 116, 117, 126, 118, 137, 118, 128, 127, 139, 115, 138, 115, 135, 121, 117, 138, 133, 129, 130, 118, 131, 128, 127, 128, 137, 131, 127, 133, 114, 129, 142, 112, 125, 118, 115, 132, 133, 126, 123, 132, 136, 109, 130, 133, 131, 127, 123, 122, 113, 122, 132, 120, 128, 117, 131, 135, 117, 131, 130, 146, 122, 120, 126, 130, 124, 133, 118, 133, 126, 122, 137, 121, 128, 122, 117, 151, 122, 132, 135, 130, 139, 132, 127, 142, 118, 139, 119, 120, 127, 119, 115, 123, 102, 123, 133, 121, 132, 133, 134, 136, 130, 131, 121, 140, 121, 121, 143, 112, 121, 117, 138, 107, 130, 123, 114, 124, 144, 121, 128, 106, 134, 119, 120, 134, 116, 117, 127, 123, 132, 129, 109, 129, 101, 132, 111, 108, 127, 115, 115, 123, 140, 145, 107, 139, 112, 144, 125, 109, 126, 127, 128, 111, 125, 137, 125, 136, 127, 133, 123, 125, 109, 131, 116, 121, 137, 112, 136, 130, 140, 129, 120, 131, 106, 118, 116, 138, 119, 128, 133, 138, 132, 149, 132, 124, 130, 140, 121, 119, 104, 131, 114, 121, 125, 121, 117, 131, 143, 108, 120, 128, 130, 135, 124, 126, 126, 139, 120, 115, 136, 131, 123, 150, 116, 119, 118, 129, 114, 135, 144, 108, 121, 121, 150, 134, 139, 141, 131, 124, 144, 125, 125, 122, 128, 111, 147, 131, 125, 119, 133, 121, 122, 120, 131, 111, 124, 127, 116, 117, 110, 112, 120, 116, 128, 128, 115, 123, 124, 114, 119, 141, 106, 135, 115, 127, 128, 112, 113, 135, 145, 130, 124, 142, 130, 128, 124, 122, 125, 131, 131, 143, 126, 116, 113, 139, 119, 127, 122, 114, 146, 121, 116, 127, 117, 117, 127, 135, 114, 119, 130, 129, 120, 112, 117, 121, 143, 138, 139, 139, 126, 112, 105, 116, 125, 117, 119, 136, 119, 129, 131, 128, 142, 114, 112, 116, 138, 127, 96, 124, 126, 140, 131, 157, 133, 139, 109, 102, 139, 128, 126, 127, 140, 143, 124, 121, 132, 125, 123, 114, 104, 124, 114, 110, 124, 136, 128, 129, 143, 131, 113, 131, 123, 108, 114, 124, 130, 117, 108, 139, 132, 129, 130, 133, 94, 124, 151, 116, 130, 126, 140, 154, 107, 127, 119, 121, 129, 121, 131, 127, 114, 130, 128, 113, 129, 121, 130, 120, 127, 128, 119, 118, 126, 144, 146, 124, 120, 127, 130, 126, 129, 125, 117, 122, 131, 122, 113, 127, 136, 143, 127, 139, 119, 127, 115, 120, 142, 122, 136, 132, 120, 112, 129, 104, 112, 131, 100, 117, 123, 140, 123, 128, 118, 118, 120, 131, 125, 109, 124, 133, 117, 115, 122, 120, 114, 129, 123, 133, 128, 126, 123, 126, 113, 111, 109, 122, 114, 123, 131, 125, 141, 125, 122, 131, 125, 113, 123, 146, 130, 121, 151, 135, 144, 136, 141, 127, 136, 123, 125, 122, 119, 122, 129, 139, 118, 119, 114, 126, 130, 108, 118, 97, 121, 133, 148, 132, 128, 127, 129, 134, 152, 135, 137, 137, 111, 133, 143, 119, 138, 124, 127, 118, 136, 127, 125, 130, 133, 126, 141, 133, 125, 115, 114, 148, 119, 139, 144, 117, 122, 114, 125, 134, 132, 134, 123, 127, 130, 116, 138, 124, 122, 143, 116, 121, 120, 115, 120, 94, 122, 113, 136, 137, 127, 132, 124, 130, 130, 110, 114, 120, 115, 121, 127, 118, 122, 136, 97, 110, 136, 130, 112, 150, 130, 129, 131, 144, 119, 135, 129, 121, 151, 117, 116, 129, 116, 125, 139, 118, 105, 129, 128, 138, 114, 126, 127, 126, 97, 108, 137, 127, 130, 124, 121, 115, 113, 122, 131, 121, 117, 109, 123, 102, 126, 136, 128, 128, 97, 135, 115, 111, 139, 132, 117, 122, 121, 114, 118, 130, 118, 122, 117, 119, 125, 127, 117, 105, 123, 132, 122, 115, 110, 121, 130, 139, 113, 136, 126, 144, 120, 130, 125, 156, 116, 135, 137, 135, 125, 122, 105, 129, 112, 126, 106, 131, 138, 130, 123, 135, 143, 107, 103, 139, 124, 120, 134, 116, 144, 140, 123, 120, 133, 132, 136, 106, 125, 133, 111, 130, 120, 122, 127, 118, 126, 111, 133, 123, 122, 113, 130, 124, 125, 129, 96, 139, 137, 115, 126, 126, 112, 128, 136, 123, 119, 128, 125, 130, 114, 124, 129, 145, 140, 123, 113, 117, 110, 128, 147, 122, 118, 122, 111, 139, 125, 127, 110, 141, 130, 115, 126, 122, 124, 157, 119, 128, 124, 129, 135, 115, 129, 132, 110, 128, 108, 131, 123, 119, 122, 114, 131, 131, 122, 119, 122, 132, 131, 137, 129, 110, 126, 121, 126, 110, 118, 129, 142, 137, 123, 123, 130, 113, 115, 129, 139, 133, 129, 107, 136, 122, 126, 118, 137, 143, 125, 136, 133, 111, 128, 128, 144, 126, 125, 104, 124, 117, 141, 136, 126, 163, 130, 116, 140, 121, 131, 125, 131, 121, 124, 131, 115, 130, 119, 132, 117, 124, 162, 106, 136, 129, 125, 137, 125, 118, 112, 141, 128, 124, 123, 136, 145, 129, 136, 119, 115, 110, 122, 122, 130, 130, 128, 129, 116, 120, 133, 121, 115, 135, 141, 120, 119, 141, 118, 124, 107, 112, 124, 133, 126, 118, 118, 144, 133, 123, 130, 139, 97, 127, 120, 139, 132, 117, 125, 121, 122, 137, 126, 117, 133, 120, 140, 103, 130, 115, 111, 112, 121, 134, 119, 108, 125, 132, 118, 134, 125, 137, 130, 110, 123, 135, 125, 117, 119, 125, 115, 122, 138, 126, 125, 124, 126, 122, 124, 121, 131, 131, 112, 136, 128, 134, 142, 120, 109, 128, 133, 132, 145, 129, 132, 123, 119, 117, 115, 123, 125, 123, 125, 134, 136, 127, 135, 128, 138, 131, 134, 117, 131, 121, 126, 120, 117, 123, 119, 133, 112, 114, 120, 138, 111, 125, 115, 117, 134, 122, 132, 111, 104, 119, 129, 126, 107, 115, 116, 111, 130, 125, 128, 150, 128, 111, 123, 124, 126, 141, 130, 126, 136, 120, 124, 118, 123, 124, 146, 140, 130, 126, 117, 116, 118, 113, 129, 115, 137, 135, 128, 119, 108, 109, 144, 117, 111, 126, 125, 122, 134, 136, 123, 133, 113, 125, 127, 151, 130, 111, 127, 148, 119, 108, 128, 135, 125, 124, 137, 92, 129, 120, 125, 112, 121, 122, 138, 121, 157, 135, 128, 112, 120, 139, 145, 128, 113, 115, 137, 118, 122, 115, 131, 113, 122, 130, 112, 119, 119, 111, 127, 143, 135, 127, 117, 114, 141, 124, 128, 126, 125, 118, 126, 113, 133, 114, 119, 126, 137, 166, 121, 130, 128, 131, 121, 137, 130, 134, 106, 146, 139, 134, 114, 131, 120, 119, 128, 132, 128, 123, 120, 108, 119, 127, 123, 120, 132, 134, 128, 139, 136, 119, 140, 128, 124, 135, 130, 123, 113, 117, 128, 120, 128, 127, 121, 118, 124, 116, 122, 131, 123, 113, 109, 119, 130, 138, 133, 144, 123, 122, 112, 111, 138, 119, 139, 128, 135, 122, 118, 116, 121, 123, 134, 108, 142, 137, 122, 112, 116, 118, 115, 125, 132, 135, 127, 127, 110, 140, 131, 120, 131, 141, 121, 128, 128, 142, 105, 116, 148, 127, 128, 130, 118, 120, 121, 125, 150, 150, 111, 127, 116, 124, 119, 128, 122, 113, 149, 130, 117, 113, 131, 128, 113, 138, 110, 110, 124, 126, 122, 125, 144, 124, 123, 129, 145, 126, 121, 119, 106, 121, 102, 128, 128, 131, 146, 133, 132, 132, 132, 121, 148, 140, 127, 136, 115, 115, 132, 115, 144, 133, 119, 120, 115, 140, 113, 129, 132, 119, 121, 150, 111, 123, 129, 126, 133, 122, 129, 116, 133, 123, 125, 140, 129, 140, 122, 134, 155, 115, 132, 139, 121, 128, 133, 130, 115, 137, 125, 106, 123, 137, 117, 115, 123, 129, 130, 122, 128, 117, 139, 128, 115, 132, 123, 117, 119, 138, 123, 142, 100, 119, 120, 126, 132, 128, 129, 130, 142, 118, 114, 109, 134, 121, 124, 133, 119, 116, 123, 131, 116, 155, 133, 129, 119, 131, 115, 140, 128, 133, 128, 122, 133, 125, 128, 119, 139, 137, 121, 143, 116, 122, 130, 113, 124, 125, 118, 119, 158, 128, 106, 118, 110, 129, 128, 123, 121, 122, 129, 120, 118, 120, 132, 126, 118, 143, 115, 127, 137, 122, 130, 127, 137, 120, 110, 140, 133, 119, 107, 113, 127, 116, 147, 119, 128, 102, 123, 130, 105, 126, 105, 124, 118, 111, 129, 135, 128, 144, 131, 140, 122, 121, 139, 131, 112, 127, 115, 125, 131, 113, 143, 132, 124, 129, 118, 115, 105, 124, 130, 122, 141, 122, 131, 133, 121, 126, 133, 109, 117, 135, 129, 135, 131, 123, 130, 127, 136, 113, 115, 119, 130, 136, 120, 128, 126, 124, 118, 129, 121, 117, 128, 138, 142, 119, 119, 119, 142, 139, 119, 135, 124, 137, 122, 122, 113, 138, 127, 124, 124, 118, 134, 128, 117, 142, 115, 128, 132, 125, 136, 118, 134, 133, 131, 132, 131, 118, 140, 147, 134, 146, 133, 130, 114, 155, 133, 126, 138, 121, 126, 139, 121, 131, 113, 123, 114, 132, 119, 127, 132, 138, 130, 115, 135, 118, 142, 119, 136, 125, 122, 109, 126, 132, 117, 123, 143, 120, 122, 115, 123, 129, 112, 129, 139, 126, 120, 110, 126, 128, 131, 121, 112, 98, 123, 124, 128, 150, 138, 125, 145, 132, 156, 152, 121, 128, 134, 140, 133, 138, 143, 130, 103, 123, 113, 140, 121, 129, 114, 126, 120, 143, 127, 125, 128, 117, 146, 121, 101, 120, 136, 107, 118, 129, 125, 126, 122, 132, 116, 147, 118, 124, 119, 152, 113, 122, 137, 125, 113, 112, 110, 153, 120, 112, 124, 133, 129, 135, 134, 133, 118, 130, 127, 131, 131, 124, 120, 128, 130, 114, 136, 121, 122, 113, 117, 123, 119, 136, 129, 125, 134, 122, 138, 127, 125, 133, 136, 120, 138, 132, 130, 128, 129, 130, 89, 118, 130, 131, 126, 112, 122, 125, 145, 133, 114, 122, 124, 133, 109, 119, 116, 137, 127, 115, 121, 114, 131, 137, 129, 128, 116, 122, 114, 116, 137, 123, 121, 115, 137, 128, 116, 124, 113, 134, 138, 125, 115, 133, 135, 117, 126, 120, 126, 130, 127, 120, 110, 118, 143, 133, 140, 146, 137, 109, 129, 128, 131, 115, 112, 127, 133, 131, 107, 127, 120, 126, 126, 120, 118, 117, 134, 125, 140, 140, 118, 126, 126, 113, 143, 113, 129, 133, 120, 143, 128, 132, 128, 126, 134, 115, 117, 128, 117, 131, 135, 147, 122, 123, 123, 139, 122, 131, 122, 123, 115, 122, 136, 119, 128, 124, 128, 119, 126, 125, 134, 131, 128, 136, 135, 124, 123, 123, 119, 117, 134, 132, 125, 142, 128, 122, 125, 124, 126, 140, 118, 147, 128, 131, 102, 124, 136, 118, 125, 135, 122, 119, 129, 121, 132, 131, 117, 132, 102, 116, 127, 110, 114, 116, 128, 131, 127, 165, 120, 128, 147, 146, 127, 121, 150, 142, 128, 124, 100, 136, 137, 122, 122, 138, 136, 123, 131, 121, 125, 117, 141, 121, 119, 132, 139, 119, 125, 126, 140, 132, 149, 143, 125, 114, 114, 132, 136, 142, 118, 136, 123, 122, 121, 129, 123, 122, 138, 136, 130, 133, 126, 132, 137, 128, 135, 135, 127, 133, 135, 122, 129, 120, 113, 123, 125, 122, 117, 116, 116, 133, 137, 127, 130, 122, 124, 132, 120, 125, 110, 106, 111, 140, 101, 120, 126, 134, 108, 125, 121, 129, 140, 138, 125, 135, 124, 130, 129, 124, 133, 131, 127, 138, 131, 100, 127, 125, 114, 128, 126, 127, 125, 127, 120, 138, 113, 126, 128, 126, 118, 121, 133, 128, 119, 95, 123, 117, 113, 89, 139, 118, 130, 114, 116, 108, 126, 134, 127, 127, 123, 123, 112, 125, 122, 133, 126, 138, 126, 119, 125, 119, 129, 120, 115, 121, 135, 127, 123, 124, 140, 122, 110, 124, 113, 107, 143, 129, 116, 116, 118, 110, 146, 131, 115, 130, 125, 124, 126, 132, 141, 123, 142, 122, 132, 116, 139, 121, 121, 123, 114, 122, 129, 151, 134, 131, 134, 138, 145, 129, 117, 122, 148, 132, 133, 110, 120, 125, 124, 137, 133, 115, 121, 133, 111, 98, 125, 128, 134, 114, 109, 115, 127, 122, 140, 115, 114, 122, 119, 120, 131, 132, 127, 119, 144, 120, 138, 120, 140, 120, 114, 113, 130, 119, 111, 118, 121, 108, 120, 134, 148, 132, 138, 129, 138, 112, 117, 131, 115, 123, 123, 137, 133, 121, 136, 130, 145, 122, 129, 141, 123, 128, 136, 120, 110, 115, 138, 123, 123, 126, 150, 130, 116, 128, 126, 131, 115, 127, 123, 132, 120, 127, 125, 117, 123, 146, 128, 102, 115, 122, 119, 132, 132, 120, 116, 128, 132, 99, 115, 146, 129, 122, 122, 112, 124, 129, 131, 128, 136, 121, 135, 132, 153, 120, 136, 132, 109, 132, 114, 127, 144, 114, 125, 130, 137, 109, 135, 126, 113, 131, 122, 125, 128, 137, 122, 124, 115, 121, 107, 132, 124, 104, 142, 110, 116, 122, 135, 125, 126, 133, 108, 122, 137, 129, 104, 129, 132, 130, 129, 120, 130, 143, 130, 128, 118, 119, 124, 118, 132, 121, 149, 118, 124, 135, 121, 127, 111, 124, 132, 118, 135, 127, 119, 123, 126, 121, 122, 123, 123, 119, 126, 111, 115, 119, 128, 113, 125, 129, 120, 116, 109, 118, 133, 129, 128, 126, 124, 137, 127, 124, 132, 111, 88, 135, 110, 121, 127, 114, 121, 123, 140, 130, 124, 117, 143, 132, 131, 120, 119, 122, 119, 112, 130, 117, 139, 107, 139, 132, 131, 135, 122, 122, 133, 123, 124, 121, 113, 128, 122, 132, 114, 116, 144, 129, 126, 116, 123, 126, 122, 122, 125, 126, 121, 134, 118, 150, 128, 128, 125, 125, 140, 120, 131, 129, 121, 128, 123, 132, 150, 114, 123, 126, 130, 136, 124, 125, 122, 138, 101, 122, 132, 126, 133, 126, 145, 139, 131, 136, 136, 123, 130, 140, 118, 127, 100, 128, 126, 128, 120, 114, 153, 141, 118, 128, 105, 116, 126, 136, 149, 144, 135, 114, 123, 127, 132, 119, 130, 128, 116, 117, 105, 131, 127, 122, 136, 109, 130, 125, 133, 115, 100, 121, 135, 132, 128, 123, 112, 131, 126, 120, 103, 112, 137, 110, 120, 129, 112, 128, 135, 113, 107, 124, 123, 135, 142, 125, 121, 112, 121, 132, 131, 120, 119, 135, 126, 135, 130, 127, 121, 128, 118, 133, 115, 133, 126, 131, 115, 138, 120, 124, 131, 143, 133, 121, 130, 124, 130, 133, 118, 126, 115, 133, 113, 126, 132, 145, 147, 126, 125, 126, 135, 120, 129, 120, 120, 119, 133, 125, 110, 120, 110, 121, 126, 126, 131, 133, 119, 133, 125, 131, 111, 124, 118, 121, 117, 128, 138, 122, 125, 129, 133, 145, 125, 119, 148, 110, 136, 138, 128, 124, 114, 126, 114, 109, 133, 130, 141, 121, 138, 110, 129, 133, 132, 114, 128, 121, 123, 131, 126, 125, 128, 125, 135, 122, 118, 142, 102, 124, 131, 132, 138, 116, 110, 120, 121, 128, 128, 116, 119, 116, 123, 138, 126, 126, 144, 127, 125, 117, 130, 130, 122, 114, 119, 117, 119, 120, 114, 134, 115, 151, 133, 113, 139, 116, 119, 124, 129, 118, 129, 122, 130, 120, 127, 136, 122, 123, 134, 127, 100, 135, 126, 123, 118, 119, 133, 128, 127, 135, 118, 131, 137, 134, 132, 135, 141, 131, 145, 116, 121, 143, 123, 128, 125, 142, 135, 121, 99, 121, 148, 122, 126, 117, 115, 125, 144, 127, 117, 121, 125, 133, 119, 129, 137, 124, 111, 131, 125, 132, 148, 115, 141, 126, 122, 126, 111, 120, 115, 122, 123, 131, 134, 133, 132, 129, 120, 133, 117, 131, 115, 128, 136, 122, 112, 129, 120, 137, 128, 125, 116, 123, 121, 125, 111, 133, 111, 110, 127, 131, 135, 117, 125, 127, 137, 120, 128, 120, 109, 128, 137, 117, 109, 144, 132, 134, 118, 120, 114, 122, 123, 122, 124, 128, 141, 126, 127, 124, 108, 118, 136, 135, 135, 141, 113, 131, 124, 134, 129, 128, 126, 100, 131, 136, 113, 135, 106, 132, 136, 118, 128, 114, 121, 127, 91, 119, 120, 154, 135, 126, 123, 138, 124, 123, 137, 121, 124, 127, 114, 130, 124, 125, 122, 135, 123, 129, 122, 125, 133, 118, 133, 123, 107, 117, 125, 120, 133, 123, 145, 118, 121, 118, 125, 126, 121, 131, 113, 114, 116, 146, 137, 116, 125, 107, 128, 130, 128, 121, 122, 136, 123, 113, 123, 127, 113, 133, 116, 123, 133, 132, 117, 134, 138, 114, 129, 115, 148, 127, 126, 128, 127, 123, 146, 109, 146, 127, 131, 133, 133, 123, 136, 133, 122, 140, 133, 126, 132, 117, 119, 140, 119, 123, 122, 130, 132, 117, 115, 126, 125, 133, 143, 101, 127, 136, 118, 118, 120, 134, 142, 108, 115, 131, 120, 112, 139, 125, 128, 127, 123, 114, 116, 143, 145, 125, 132, 116, 109, 137, 129, 131, 129, 135, 121, 131, 120, 138, 126, 129, 123, 115, 125, 121, 137, 121, 126, 129, 125, 135, 133, 146, 128, 128, 127, 121, 139, 138, 133, 111, 120, 136, 112, 108, 134, 122, 122, 122, 121, 117, 119, 130, 125, 135, 129, 118, 127, 115, 130, 149, 122, 128, 123, 135, 151, 126, 142, 126, 118, 131, 117, 119, 117, 122, 138, 117, 126, 127, 128, 114, 116, 133, 117, 129, 129, 121, 129, 128, 128, 118, 118, 126, 114, 120, 114, 127, 119, 114, 104, 122, 136, 138, 119, 123, 116, 128, 126, 126, 145, 127, 131, 143, 109, 119, 124, 129, 126, 124, 117, 122, 133, 105, 125, 134, 128, 133, 128, 139, 115, 136, 130, 127, 101, 139, 125, 116, 129, 127, 124, 120, 125, 125, 132, 134, 130, 111, 122, 137, 124, 126, 144, 137, 130, 122, 116, 147, 122, 137, 120, 105, 143, 127, 118, 118, 111, 113, 138, 129, 124, 134, 130, 128, 114, 134, 130, 140, 131, 137, 118, 119, 129, 125, 118, 105, 133, 121, 114, 119, 140, 111, 129, 114, 138, 125, 130, 138, 128, 119, 111, 105, 115, 119, 127, 126, 128, 118, 134, 127, 136, 113, 127, 135, 123, 127, 135, 122, 131, 121, 107, 121, 117, 122, 124, 106, 129, 132, 109, 115, 136, 123, 114, 120, 117, 142, 128, 112, 114, 132, 123, 129, 121, 137, 113, 119, 116, 135, 134, 117, 121, 137, 143, 137, 116, 126, 125, 121, 140, 109, 125, 114, 129, 129, 130, 118, 130, 105, 132, 116, 119, 119, 118, 152, 131, 130, 135, 112, 127, 119, 112, 119, 128, 118, 116, 141, 135, 135, 146, 113, 130, 128, 107, 141, 129, 127, 124, 139, 128, 135, 116, 145, 128, 116, 124, 121, 117, 114, 141, 118, 110, 128, 117, 128, 112, 117, 128, 122, 121, 129, 114, 134, 127, 122, 122, 112, 135, 129, 119, 125, 129, 132, 117, 120, 130, 132, 112, 113, 125, 122, 110, 113, 135, 121, 124, 117, 122, 127, 128, 119, 143, 109, 127, 130, 126, 127, 117, 132, 119, 117, 117, 131, 141, 126, 125, 123, 127, 129, 125, 129, 126, 130, 122, 124, 120, 122, 123, 110, 128, 120, 129, 116, 124, 122, 132, 133, 125, 129, 138, 108, 140, 134, 115, 131, 141, 123, 123, 111, 128, 103, 140, 147, 144, 139, 106, 131, 140, 116, 138, 115, 97, 123, 133, 127, 142, 139, 119, 129, 135, 122, 115, 141, 128, 120, 123, 135, 118, 145, 127, 131, 128, 115, 155, 132, 126, 131, 122, 119, 100, 117, 114, 112, 125, 127, 138, 130, 138, 136, 121, 120, 125, 155, 120, 128, 146, 132, 121, 118, 134, 144, 118, 125, 113, 139, 130, 113, 106, 128, 132, 128, 128, 136, 126, 133, 113, 106, 127, 112, 126, 123, 121, 127, 116, 124, 117, 122, 124, 120, 123, 141, 115, 132, 118, 117, 109, 111, 113, 126, 117, 139, 128, 118, 125, 143, 112, 120, 131, 136, 119, 124, 118, 122, 137, 126, 113, 132, 120, 125, 131, 116, 138, 131, 130, 113, 118, 140, 113, 113, 122, 126, 110, 118, 112, 125, 125, 122, 130, 106, 126, 119, 133, 124, 119, 125, 125, 126, 135, 117, 140, 127, 116, 138, 126, 127, 147, 133, 113, 121, 132, 110, 117, 117, 122, 134, 123, 124, 125, 113, 103, 118, 123, 139, 112, 123, 148, 110, 111, 111, 117, 126, 129, 140, 144, 135, 141, 136, 130, 127, 108, 120, 110, 118, 128, 118, 139, 137, 115, 126, 126, 116, 125, 131, 145, 117, 128, 114, 146, 117, 138, 133, 128, 127, 131, 136, 133, 118, 138, 125, 131, 136, 120, 136, 120, 132, 126, 147, 132, 140, 114, 120, 124, 112, 135, 131, 127, 126, 136, 127, 124, 113, 110, 110, 128, 126, 118, 106, 120, 117, 114, 136, 119, 106, 115, 122, 127, 128, 133, 119, 124, 131, 110, 131, 116, 123, 131, 114, 142, 132, 131, 132, 136, 130, 110, 124, 106, 122, 126, 128, 121, 130, 141, 130, 123, 140, 118, 131, 137, 144, 134, 119, 136, 135, 132, 128, 134, 121, 121, 137, 127, 128, 132, 100, 131, 123, 119, 114, 111, 110, 117, 125, 114, 131, 125, 138, 108, 147, 131, 136, 123, 119, 124, 128, 123, 122, 133, 148, 121, 138, 131, 126, 116, 125, 120, 129, 124, 128, 126, 137, 121, 144, 120, 122, 118, 135, 135, 134, 110, 130, 116, 125, 127, 127, 137, 112, 135, 138, 129, 117, 115, 128, 130, 116, 130, 122, 140, 119, 125, 128, 128, 131, 108, 137, 128, 115, 131, 109, 135, 130, 116, 134, 114, 127, 109, 140, 147, 123, 111, 137, 116, 132, 126, 126, 130, 106, 128, 113, 117, 130, 117, 130, 134, 118, 125, 141, 121, 123, 121, 128, 127, 114, 124, 116, 130, 133, 116, 128, 136, 120, 122, 116, 123, 124, 131, 150, 113, 120, 113, 137, 117, 106, 125, 119, 110, 123, 122, 112, 115, 106, 134, 130, 127, 134, 118, 111, 118, 125, 130, 127, 118, 139, 133, 135, 135, 128, 130, 135, 142, 117, 118, 125, 138, 131, 120, 121, 116, 135, 127, 125, 121, 130, 118, 127, 120, 142, 127, 139, 108, 135, 128, 114, 115, 119, 125, 141, 108, 121, 116, 118, 130, 125, 136, 122, 138, 123, 141, 119, 107, 120, 136, 111, 111, 133, 120, 132, 134, 130, 138, 131, 117, 129, 126, 131, 114, 118, 107, 130, 129, 134, 126, 124, 106, 135, 125, 109, 113, 119, 126, 121, 109, 133, 134, 125, 138, 126, 120, 105, 129, 135, 130, 119, 120, 130, 120, 113, 136, 110, 121, 118, 155, 143, 126, 120, 108, 115, 114, 123, 134, 131, 110, 126, 132, 154, 128, 127, 126, 117, 142, 104, 125, 129, 115, 112, 128, 129, 126, 117, 129, 134, 128, 131, 143, 120, 126, 123, 113, 122, 133, 114, 128, 123, 136, 134, 124, 110, 139, 115, 123, 106, 116, 127, 111, 127, 115, 118, 126, 135, 122, 125, 127, 122, 107, 128, 129, 155, 129, 138, 127, 123, 106, 133, 113, 116, 111, 126, 125, 114, 146, 145, 122, 107, 149, 116, 147, 119, 121, 131, 128, 118, 137, 121, 120, 138, 131, 99, 120, 118, 127, 120, 122, 130, 115, 119, 129, 119, 122, 126, 135, 130, 130, 108, 116, 125, 127, 91, 117, 141, 120, 120, 143, 119, 115, 134, 121, 127, 129, 121, 127, 122, 115, 138, 118, 124, 140, 130, 139, 133, 115, 137, 112, 122, 119, 119, 120, 131, 130, 140, 118, 138, 136, 136, 138, 124, 134, 132, 131, 133, 150, 112, 145, 129, 122, 115, 123, 111, 121, 128, 119, 138, 108, 127, 114, 127, 137, 114, 127, 118, 130, 137, 118, 111, 121, 123, 128, 133, 124, 126, 132, 122, 123, 127, 129, 135, 127, 131, 130, 113, 110, 133, 134, 140, 149, 131, 120, 124, 117, 136, 134, 126, 129, 142, 125, 124, 134, 118, 113, 117, 141, 128, 133, 116, 131, 122, 128, 115, 129, 119, 139, 135, 127, 117, 125, 141, 119, 100, 140, 122, 118, 118, 122, 109, 119, 123, 114, 152, 122, 140, 127, 125, 125, 131, 134, 138, 125, 129, 121, 124, 122, 112, 118, 104, 124, 115, 144, 125, 144, 120, 115, 135, 140, 121, 135, 123, 142, 127, 107, 118, 113, 115, 121, 114, 112, 124, 132, 117, 141, 130, 108, 130, 123, 131, 133, 138, 131, 127, 127, 131, 124, 117, 126, 141, 136, 122, 145, 126, 131, 135, 128, 131, 117, 131, 134, 115, 126, 122, 122, 125, 129, 122, 125, 138, 140, 117, 135, 132, 132, 119, 151, 132, 135, 132, 133, 122, 148, 120, 129, 118, 136, 127, 117, 133, 120, 132, 136, 127, 133, 130, 128, 127, 128, 116, 121, 127, 138, 110, 115, 125, 144, 121, 129, 110, 127, 124, 131, 136, 125, 132, 131, 130, 115, 129, 110, 136, 122, 120, 128, 124, 105, 139, 132, 123, 135, 119, 147, 116, 116, 110, 131, 127, 129, 115, 138, 126, 130, 125, 120, 132, 117, 100, 127, 133, 98, 157, 107, 107, 123, 133, 128, 115, 122, 118, 128, 118, 120, 122, 112, 122, 132, 131, 128, 138, 129, 115, 120, 121, 133, 120, 111, 125, 119, 126, 141, 147, 114, 148, 114, 105, 113, 140, 130, 121, 134, 130, 121, 126, 123, 140, 137, 103, 129, 134, 121, 135, 119, 127, 121, 123, 126, 126, 126, 129, 127, 117, 114, 110, 108, 121, 114, 120, 125, 110, 108, 134, 129, 120, 116, 124, 121, 122, 108, 132, 120, 122, 140, 122, 127, 120, 122, 133, 148, 134, 126, 138, 136, 122, 137, 136, 115, 137, 130, 121, 129, 126, 117, 114, 136, 131, 129, 122, 135, 116, 137, 128, 129, 116, 147, 132, 120, 131, 144, 133, 135, 135, 109, 122, 115, 130, 128, 117, 118, 124, 118, 140, 122, 135, 120, 120, 119, 136, 132, 116, 144, 105, 108, 118, 120, 126, 112, 120, 116, 122, 107, 129, 120, 132, 118, 129, 141, 129, 141, 108, 133, 114, 104, 123, 120, 123, 123, 126, 118, 128, 123, 118, 134, 129, 135, 116, 122, 132, 130, 129, 136, 136, 108, 114, 125, 114, 133, 102, 119, 114, 138, 123, 128, 106, 115, 124, 126, 126, 145, 142, 136, 115, 109, 132, 115, 119, 111, 118, 124, 125, 142, 127, 107, 108, 110, 140, 135, 117, 89, 101, 126, 100, 124, 106, 121, 114, 120, 119, 109, 122, 110, 106, 133, 101, 119, 112, 142, 145, 120, 123, 142, 120, 134, 131, 114, 105, 125, 130, 134, 136, 116, 141, 136, 122, 124, 134, 117, 115, 130, 123, 115, 132, 124, 121, 139, 115, 135, 137, 135, 114, 113, 141, 120, 124, 147, 149, 118, 143, 125, 135, 124, 126, 106, 135, 130, 128, 126, 147, 114, 133, 111, 126, 150, 119, 108, 135, 119, 140, 123, 119, 122, 124, 131, 120, 134, 119, 122, 123, 118, 131, 145, 120, 119, 120, 109, 111, 139, 130, 117, 122, 120, 113, 116, 136, 115, 96, 115, 118, 105, 127, 118, 107, 138, 115, 130, 98, 121, 130, 116, 114, 139, 122, 146, 108, 104, 114, 130, 123, 111, 125, 121, 110, 125, 129, 136, 129, 133, 137, 123, 125, 134, 134, 120, 107, 138, 102, 133, 140, 114, 120, 130, 136, 110, 131, 133, 139, 127, 137, 124, 131, 133, 142, 122, 98, 137, 115, 97, 133, 127, 117, 138, 123, 116, 116, 110, 125, 124, 121, 117, 126, 117, 127, 108, 124, 142, 142, 125, 130, 111, 126, 111, 125, 118, 139, 132, 116, 121, 122, 122, 124, 118, 118, 136, 122, 122, 127, 113, 140, 120, 112, 134, 134, 122, 129, 130, 123, 119, 119, 138, 132, 113, 116, 109, 142, 112, 138, 134, 117, 141, 113, 114, 122, 126, 120, 112, 115, 122, 131, 114, 139, 124, 123, 119, 131, 108, 136, 118, 130, 126, 114, 123, 124, 141, 129, 120, 129, 121, 132, 110, 129, 115, 139, 126, 119, 123, 129, 132, 121, 136, 120, 134, 116, 116, 129, 122, 138, 127, 126, 131, 133, 121, 120, 124, 117, 109, 135, 112, 124, 143, 128, 106, 113, 113, 120, 122, 127, 122, 131, 121, 134, 114, 127, 131, 136, 122, 108, 110, 139, 127, 124, 122, 143, 147, 125, 146, 126, 121, 138, 149, 129, 124, 117, 121, 132, 113, 140, 135, 143, 128, 127, 130, 123, 125, 148, 141, 145, 132, 123, 116, 136, 128, 113, 122, 109, 130, 122, 107, 130, 124, 125, 123, 117, 116, 113, 113, 120, 142, 124, 133, 131, 115, 97, 130, 99, 118, 150, 113, 130, 123, 103, 118, 138, 146, 124, 122, 132, 142, 126, 123, 128, 154, 132, 128, 110, 110, 117, 116, 122, 97, 109, 131, 143, 136, 117, 114, 109, 134, 125, 129, 124, 124, 120, 112, 124, 109, 113, 125, 99, 122, 102, 115, 124, 124, 109, 124, 147, 111, 118, 128, 112, 133, 129, 109, 132, 122, 123, 112, 127, 116, 148, 121, 146, 120, 147, 101, 125, 133, 107, 121, 133, 130, 115, 146, 125, 118, 116, 135, 125, 132, 121, 118, 112, 108, 125, 118, 132, 164, 144, 121, 135, 127, 109, 142, 134, 123, 132, 123, 121, 107, 125, 105, 126, 128, 133, 132, 122, 154, 137, 120, 129, 134, 117, 122, 138, 119, 121, 128, 124, 128, 132, 134, 116, 114, 118, 142, 119, 128, 124, 134, 136, 113, 122, 120, 138, 113, 115, 120, 110, 145, 135, 102, 116, 128, 140, 130, 103, 134, 120, 110, 129, 137, 131, 122, 119, 118, 114, 124, 161, 127, 121, 152, 125, 118, 120, 117, 127, 125, 123, 144, 146, 116, 127, 129, 132, 134, 110, 122, 110, 150, 119, 133, 136, 116, 123, 122, 123, 135, 147, 134, 111, 122, 99, 112, 141, 115, 113, 116, 128, 110, 101, 147, 144, 130, 118, 116, 134, 116, 104, 131, 138, 139, 111, 105, 113, 100, 128, 119, 132, 140, 137, 137, 119, 135, 131, 109, 129, 136, 134, 106, 141, 127, 111, 156, 116, 139, 132, 122, 113, 132, 135, 138, 134, 127, 111, 114, 125, 129, 115, 135, 118, 136, 127, 130, 129, 121, 104, 129, 123, 113, 102, 133, 107, 132, 120, 124, 133, 121, 141, 126, 100, 142, 122, 152, 125, 141, 129, 127, 119, 120, 116, 119, 117, 122, 139, 120, 123, 133, 115, 131, 126, 124, 119, 132, 109, 117, 112, 115, 136, 119, 148, 119, 112, 118, 109, 119, 141, 130, 130, 126, 107, 123, 119, 113, 130, 132, 125, 133, 123, 118, 124, 120, 138, 150, 127, 141, 123, 133, 122, 119, 127, 130, 124, 114, 122, 115, 120, 132, 122, 111, 142, 121, 115, 116, 132, 148, 111, 123, 136, 110, 118, 131, 145, 139, 168, 123, 115, 131, 132, 114, 116, 118, 106, 137, 123, 119, 118, 115, 131, 105, 143, 122, 124, 122, 124, 125, 109, 103, 123, 140, 113, 135, 141, 137, 144, 121, 133, 117, 127, 159, 105, 145, 125, 125, 140, 141, 122, 119, 135, 128, 128, 111, 131, 122, 122, 125, 121, 122, 123, 114, 105, 120, 125, 117, 113, 120, 119, 119, 100, 127, 145, 109, 137, 135, 106, 115, 98, 109, 126, 125, 141, 126, 133, 118, 100, 110, 135, 111, 138, 121, 126, 108, 109, 122, 124, 134, 121, 126, 116, 128, 136, 136, 134, 99, 126, 120, 128, 130, 122, 125, 110, 129, 111, 132, 119, 128, 127, 126, 127, 140, 116, 141, 114, 123, 132, 143, 108, 128, 118, 121, 133, 127, 104, 122, 134, 115, 123, 131, 123, 131, 123, 109, 130, 115, 132, 101, 129, 110, 94, 151, 136, 116, 147, 146, 119, 104, 142, 132, 121, 108, 142, 134, 133, 119, 94, 112, 122, 107, 111, 132, 137, 124, 119, 122, 135, 129, 134, 129, 118, 124, 124, 113, 116, 122, 120, 124, 121, 136, 145, 123, 113, 145, 127, 129, 114, 124, 127, 137, 136, 129, 126, 116, 131, 112, 121, 124, 132, 114, 122, 118, 131, 135, 155, 120, 132, 105, 125, 129, 122, 125, 121, 123, 125, 134, 116, 156, 148, 141, 135, 123, 138, 128, 129, 132, 122, 112, 127, 129, 115, 121, 131, 139, 122, 132, 115, 127, 119, 122, 123, 130, 120, 119, 152, 123, 143, 141, 130, 130, 120, 126, 144, 141, 133, 135, 114, 120, 116, 122, 128, 136, 119, 107, 125, 121, 119, 139, 117, 127, 123, 123, 122, 137, 122, 126, 126, 124, 136, 139, 140, 119, 137, 110, 117, 122, 113, 119, 143, 135, 128, 136, 124, 134, 114, 136, 115, 127, 116, 122, 129, 131, 113, 126, 122, 153, 155, 132, 123, 109, 141, 125, 124, 122, 124, 110, 114, 116, 108, 136, 132, 132, 129, 133, 108, 125, 117, 122, 122, 114, 126, 129, 125, 125, 124, 139, 115, 117, 113, 126, 134, 123, 132, 124, 124, 119, 131, 120, 132, 130, 133, 123, 111, 127, 143, 125, 117, 141, 126, 131, 107, 104, 118, 129, 123, 114, 118, 127, 130, 140, 117, 117, 126, 105, 121, 131, 110, 121, 114, 133, 116, 138, 115, 123, 122, 128, 104, 143, 129, 128, 118, 124, 117, 121, 123, 124, 128, 129, 123, 125, 115, 138, 139, 119, 132, 126, 131, 132, 113, 127, 136, 151, 114, 124, 118, 134, 133, 128, 126, 128, 126, 133, 126, 132, 105, 122, 137, 113, 132, 124, 129, 125, 107, 113, 134, 128, 119, 138, 137, 129, 144, 125, 138, 124, 128, 131, 120, 132, 130, 127, 125, 113, 110, 138, 118, 127, 112, 139, 134, 129, 144, 121, 138, 128, 117, 132, 114, 138, 111, 125, 116, 117, 120, 132, 109, 133, 115, 134, 124, 127, 109, 117, 141, 110, 130, 116, 117, 105, 128, 132, 110, 124, 117, 128, 107, 121, 124, 116, 116, 120, 107, 120, 125, 121, 140, 140, 120, 121, 138, 108, 135, 128, 124, 123, 142, 119, 121, 126, 130, 125, 158, 118, 118, 133, 116, 129, 132, 116, 129, 107, 119, 132, 116, 133, 122, 151, 129, 129, 117, 119, 141, 119, 124, 124, 122, 112, 112, 126, 124, 114, 130, 129, 120, 115, 132, 129, 127, 110, 139, 139, 118, 132, 111, 131, 137, 122, 119, 109, 111, 99, 138, 124, 128, 109, 145, 121, 138, 122, 126, 105, 119, 110, 129, 118, 109, 126, 104, 117, 110, 136, 118, 125, 142, 117, 128, 107, 126, 129, 135, 141, 125, 108, 137, 124, 118, 137, 119, 127, 154, 128, 141, 119, 135, 125, 119, 118, 106, 119, 148, 113, 135, 125, 129, 134, 143, 137, 112, 115, 136, 130, 121, 93, 120, 136, 126, 124, 113, 135, 132, 131, 112, 109, 131, 141, 132, 119, 129, 126, 148, 139, 123, 126, 138, 124, 130, 124, 123, 114, 125, 143, 123, 135, 131, 133, 128, 112, 131, 120, 137, 123, 118, 114, 118, 120, 117, 132, 117, 102, 112, 139, 121, 140, 140, 129, 113, 114, 142, 116, 124, 126, 111, 126, 112, 126, 138, 137, 127, 144, 123, 139, 114, 114, 138, 141, 120, 125, 119, 108, 157, 111, 123, 127, 132, 112, 131, 116, 109, 134, 118, 132, 128, 114, 130, 134, 125, 136, 122, 138, 146, 123, 118, 119, 115, 136, 118, 129, 128, 148, 105, 122, 140, 138, 123, 128, 115, 125, 127, 122, 125, 123, 127, 134, 129, 139, 131, 115, 132, 119, 145, 124, 122, 138, 129, 117, 133, 127, 131, 121, 147, 115, 127, 109, 120, 140, 123, 130, 143, 134, 118, 121, 132, 125, 119, 126, 108, 127, 149, 121, 127, 130, 127, 116, 136, 120, 111, 149, 142, 123, 119, 137, 124, 117, 122, 137, 139, 123, 138, 127, 131, 141, 120, 131, 135, 129, 128, 117, 133, 127, 144, 122, 109, 107, 125, 128, 122, 122, 123, 117, 117, 128, 101, 118, 114, 125, 126, 120, 141, 107, 139, 129, 130, 136, 122, 114, 122, 133, 128, 122, 122, 123, 126, 123, 113, 118, 124, 133, 141, 113, 134, 125, 118, 135, 122, 131, 104, 121, 115, 135, 130, 128, 112, 115, 119, 132, 120, 125, 125, 114, 131, 117, 133, 125, 128, 125, 126, 137, 129, 128, 122, 128, 124, 102, 137, 116, 103, 107, 134, 130, 126, 118, 128, 135, 136, 128, 121, 122, 140, 116, 126, 118, 134, 117, 128, 125, 136, 125, 150, 132, 125, 118, 119, 125, 116, 111, 107, 131, 124, 121, 131, 123, 147, 109, 132, 116, 125, 119, 137, 107, 117, 124, 127, 113, 122, 137, 128, 136, 133, 116, 108, 115, 136, 130, 107, 133, 137, 120, 128, 147, 128, 122, 119, 121, 117, 127, 133, 116, 135, 121, 125, 131, 111, 136, 146, 120, 120, 142, 121, 138, 126, 123, 109, 114, 133, 115, 136, 135, 132, 111, 105, 124, 128, 134, 114, 131, 150, 117, 129, 123, 108, 127, 116, 114, 118, 124, 135, 127, 140, 125, 117, 131, 104, 133, 138, 116, 140, 134, 138, 130, 110, 94, 111, 136, 125, 120, 122, 116, 113, 127, 118, 130, 117, 120, 127, 124, 119, 118, 98, 113, 119, 139, 120, 134, 114, 144, 120, 126, 125, 133, 126, 123, 111, 128, 142, 118, 111, 137, 130, 111, 113, 113, 140, 117, 136, 137, 113, 139, 125, 115, 111, 120, 144, 115, 139, 116, 101, 106, 102, 124, 127, 136, 123, 121, 127, 134, 120, 112, 125, 119, 131, 134, 121, 127, 139, 130, 135, 122, 128, 115, 144, 119, 132, 135, 120, 106, 124, 133, 123, 130, 130, 144, 120, 127, 129, 126, 113, 136, 117, 135, 116, 127, 128, 126, 130, 134, 146, 121, 133, 112, 133, 151, 126, 130, 129, 126, 122, 128, 116, 130, 126, 120, 122, 135, 140, 113, 137, 125, 129, 117, 92, 123, 118, 122, 122, 136, 123, 127, 141, 114, 134, 133, 135, 110, 143, 130, 123, 120, 131, 138, 112, 124, 117, 130, 122, 128, 143, 122, 124, 136, 127, 104, 115, 112, 143, 120, 126, 115, 128, 125, 150, 115, 123, 124, 118, 114, 117, 116, 131, 130, 122, 125, 137, 125, 117, 112, 112, 145, 119, 119, 115, 126, 104, 122, 115, 123, 114, 119, 133, 140, 130, 118, 128, 126, 131, 127, 128, 106, 128, 126, 120, 138, 120, 135, 141, 136, 119, 134, 135, 103, 112, 130, 131, 120, 150, 117, 113, 139, 135, 128, 130, 115, 136, 132, 131, 132, 137, 128, 117, 123, 123, 120, 126, 107, 124, 129, 122, 119, 142, 124, 132, 108, 136, 120, 146, 121, 122, 121, 134, 134, 127, 119, 131, 128, 117, 103, 146, 120, 138, 123, 126, 130, 133, 132, 134, 127, 117, 124, 120, 122, 135, 140, 139, 123, 125, 118, 113, 154, 137, 122, 119, 128, 97, 127, 129, 139, 135, 129, 133, 121, 134, 141, 119, 128, 122, 126, 132, 111, 124, 128, 133, 133, 127, 135, 124, 115, 112, 107, 131, 101, 125, 130, 131, 105, 124, 112, 113, 121, 130, 131, 118, 132, 139, 110, 143, 140, 115, 138, 129, 129, 117, 139, 127, 114, 113, 139, 132, 143, 108, 125, 133, 135, 125, 138, 125, 134, 109, 136, 114, 105, 124, 115, 127, 133, 121, 126, 125, 139, 119, 136, 133, 114, 124, 123, 124, 142, 136, 128, 128, 132, 121, 122, 129, 116, 124, 120, 105, 123, 129, 128, 113, 132, 131, 124, 131, 136, 142, 129, 134, 116, 118, 113, 111, 127, 121, 119, 121, 122, 127, 105, 123, 127, 133, 117, 112, 123, 126, 113, 118, 109, 120, 120, 141, 120, 131, 116, 124, 124, 124, 114, 123, 133, 121, 148, 134, 139, 122, 115, 127, 142, 118, 113, 114, 99, 119, 118, 149, 119, 143, 110, 129, 146, 121, 127, 136, 101, 142, 133, 144, 122, 115, 123, 127, 126, 138, 112, 126, 127, 128, 126, 96, 123, 104, 133, 117, 120, 139, 124, 124, 139, 128, 138, 110, 118, 126, 105, 127, 117, 125, 157, 133, 126, 120, 120, 144, 119, 133, 131, 131, 131, 119, 112, 124, 146, 143, 152, 117, 108, 119, 124, 113, 126, 120, 105, 122, 116, 126, 124, 137, 130, 124, 121, 121, 132, 122, 126, 121, 121, 115, 113, 126, 154, 120, 105, 129, 130, 118, 118, 124, 121, 115, 116, 123, 119, 136, 123, 136, 123, 135, 123, 101, 109, 137, 147, 116, 130, 137, 109, 114, 123, 112, 121, 102, 132, 130, 121, 129, 131, 125, 123, 140, 153, 138, 132, 117, 139, 135, 108, 118, 143, 119, 126, 110, 119, 118, 117, 135, 130, 122, 126, 142, 130, 119, 121, 129, 125, 128, 128, 123, 127, 125, 137, 127, 113, 119, 130, 123, 102, 114, 112, 124, 125, 142, 136, 135, 145, 109, 130, 125, 129, 112, 127, 131, 140, 94, 136, 118, 134, 123, 124, 118, 124, 132, 132, 119, 131, 124, 129, 137, 130, 92, 125, 130, 102, 129, 113, 120, 118, 133, 128, 118, 126, 124, 129, 143, 118, 157, 142, 128, 115, 123, 120, 124, 107, 131, 123, 127, 118, 123, 143, 118, 136, 137, 123, 141, 115, 139, 120, 116, 123, 116, 144, 125, 117, 128, 131, 140, 121, 126, 108, 131, 110, 117, 129, 137, 131, 101, 102, 133, 126, 136, 126, 126, 113, 121, 109, 132, 106, 118, 131, 142, 105, 118, 112, 128, 112, 124, 123, 142, 126, 116, 123, 128, 127, 107, 136, 134, 142, 134, 122, 127, 122, 111, 128, 133, 110, 107, 131, 137, 117, 139, 133, 138, 130, 132, 135, 136, 118, 144, 124, 128, 133, 115, 102, 121, 120, 138, 142, 131, 146, 121, 121, 137, 124, 125, 131, 138, 131, 114, 120, 123, 131, 129, 126, 135, 147, 136, 120, 137, 122, 123, 133, 112, 115, 122, 122, 114, 135, 122, 130, 143, 131, 136, 155, 126, 128, 121, 117, 133, 126, 131, 138, 128, 145, 124, 133, 122, 126, 118, 137, 130, 118, 120, 148, 127, 131, 129, 112, 136, 132, 134, 132, 129, 117, 107, 143, 132, 126, 129, 145, 122, 138, 123, 114, 130, 118, 126, 114, 115, 133, 120, 125, 120, 111, 128, 124, 119, 117, 125, 118, 119, 117, 136, 115, 115, 124, 105, 137, 123, 127, 117, 102, 122, 136, 129, 139, 131, 126, 111, 116, 106, 112, 137, 115, 110, 144, 125, 123, 131, 143, 137, 118, 119, 114, 135, 130, 133, 141, 119, 125, 124, 117, 135, 119, 110, 122, 134, 124, 155, 139, 126, 135, 109, 117, 112, 149, 117, 127, 127, 124, 112, 124, 126, 114, 121, 133, 106, 118, 123, 120, 120, 107, 108, 110, 135, 114, 101, 130, 120, 111, 117, 118, 117, 133, 131, 130, 133, 130, 141, 124, 131, 131, 123, 111, 117, 137, 131, 115, 129, 108, 134, 137, 128, 121, 103, 128, 101, 128, 145, 109, 125, 110, 122, 133, 133, 131, 129, 104, 128, 138, 143, 114, 121, 106, 129, 121, 110, 121, 124, 129, 122, 121, 115, 127, 125, 126, 101, 131, 134, 112, 127, 126, 135, 155, 108, 113, 126, 124, 129, 97, 141, 124, 130, 127, 128, 132, 129, 115, 136, 131, 95, 130, 125, 119, 132, 129, 140, 135, 123, 130, 121, 124, 104, 130, 105, 133, 140, 132, 142, 138, 123, 132, 128, 139, 133, 141, 120, 120, 125, 129, 127, 131, 125, 133, 133, 118, 137, 131, 126, 142, 130, 118, 134, 109, 114, 137, 132, 122, 123, 139, 127, 123, 125, 137, 136, 128, 110, 138, 125, 109, 133, 153, 123, 122, 111, 132, 133, 150, 141, 113, 122, 109, 120, 144, 108, 124, 136, 117, 105, 105, 129, 127, 138, 114, 127, 139, 123, 134, 148, 123, 126, 127, 132, 112, 114, 118, 128, 117, 118, 112, 122, 123, 121, 139, 131, 124, 131, 99, 136, 129, 125, 127, 119, 132, 127, 127, 125, 106, 134, 125, 124, 155, 118, 112, 139, 140, 129, 122, 142, 120, 139, 121, 133, 105, 127, 120, 129, 98, 111, 115, 105, 120, 128, 127, 121, 141, 120, 93, 134, 117, 134, 134, 130, 106, 131, 114, 126, 123, 121, 114, 126, 118, 133, 142, 126, 125, 118, 123, 134, 128, 123, 125, 124, 117, 126, 114, 121, 142, 98, 117, 136, 118, 139, 146, 109, 129, 126, 119, 134, 134, 129, 124, 120, 122, 107, 136, 134, 119, 116, 113, 126, 127, 112, 136, 114, 128, 126, 131, 116, 135, 126, 117, 120, 130, 133, 120, 143, 124, 143, 116, 139, 116, 125, 114, 120, 124, 125, 138, 115, 142, 112, 137, 133, 109, 137, 128, 137, 129, 144, 148, 119, 131, 107, 129, 116, 123, 119, 130, 116, 121, 131, 115, 117, 119, 110, 139, 104, 133, 127, 121, 129, 134, 112, 131, 110, 148, 134, 135, 118, 119, 133, 133, 128, 121, 136, 123, 123, 112, 142, 121, 131, 137, 120, 140, 118, 125, 112, 125, 111, 116, 120, 141, 126, 144, 122, 130, 136, 110, 104, 136, 132, 130, 122, 133, 141, 146, 124, 119, 142, 138, 126, 115, 124, 113, 123, 126, 113, 121, 133, 124, 141, 125, 109, 126, 138, 123, 128, 133, 134, 120, 139, 120, 130, 111, 132, 122, 125, 117, 132, 139, 125, 125, 123, 131, 124, 137, 115, 123, 118, 134, 119, 147, 150, 110, 91, 129, 115, 123, 130, 137, 132, 116, 120, 124, 115, 128, 141, 122, 125, 121, 117, 133, 129, 122, 120, 132, 130, 114, 112, 154, 118, 128, 123, 131, 124, 129, 127, 110, 116, 107, 129, 116, 117, 127, 106, 138, 122, 122, 113, 120, 136, 130, 117, 136, 122, 125, 114, 130, 142, 124, 130, 123, 144, 137, 137, 139, 94, 114, 131, 114, 122, 136, 127, 166, 120, 124, 138, 130, 106, 132, 110, 127, 142, 129, 125, 131, 119, 106, 135, 124, 127, 119, 142, 124, 121, 112, 128, 147, 109, 123, 127, 100, 127, 108, 111, 146, 125, 112, 136, 120, 133, 116, 117, 126, 125, 152, 131, 125, 120, 150, 126, 115, 126, 125, 144, 141, 125, 113, 119, 126, 131, 126, 135, 135, 140, 130, 114, 128, 133, 121, 140, 132, 119, 132, 129, 121, 127, 122, 144, 139, 138, 109, 114, 131, 134, 119, 127, 131, 117, 127, 123, 121, 128, 135, 121, 121, 122, 146, 129, 121, 112, 126, 117, 128, 129, 122, 102, 127, 119, 129, 137, 126, 128, 124, 119, 118, 130, 140, 126, 123, 129, 129, 121, 111, 137, 135, 120, 110, 128, 134, 120, 130, 118, 129, 128, 143, 122, 145, 122, 118, 133, 123, 126, 144, 120, 118, 127, 125, 127, 118, 141, 143, 116, 128, 119, 129, 115, 98, 140, 148, 143, 119, 111, 133, 130, 135, 114, 142, 121, 109, 119, 128, 125, 126, 122, 116, 119, 126, 129, 140, 114, 122, 129, 119, 116, 117, 119, 120, 133, 133, 150, 133, 130, 117, 116, 127, 123, 119, 144, 114, 132, 138, 129, 117, 126, 128, 138, 107, 163, 129, 124, 125, 135, 121, 122, 124, 131, 104, 128, 122, 119, 123, 132, 121, 128, 117, 116, 134, 126, 127, 127, 113, 137, 127, 129, 134, 137, 109, 127, 120, 141, 141, 110, 128, 130, 121, 126, 116, 116, 122, 115, 121, 135, 121, 141, 121, 122, 119, 121, 120, 121, 138, 131, 135, 125, 125, 121, 132, 114, 108, 98, 105, 117, 127, 135, 126, 146, 128, 121, 124, 105, 131, 125, 133, 148, 135, 127, 132, 131, 138, 108, 122, 116, 131, 123, 126, 138, 120, 145, 117, 125, 141, 147, 148, 115, 126, 110, 122, 142, 121, 121, 112, 110, 128, 121, 128, 117, 131, 120, 113, 136, 118, 103, 119, 132, 128, 133, 132, 143, 142, 117, 108, 98, 137, 139, 135, 138, 102, 118, 109, 109, 122, 123, 114, 117, 141, 118, 113, 139, 114, 130, 143, 119, 120, 133, 128, 143, 128, 121, 128, 117, 133, 154, 139, 122, 141, 120, 132, 131, 122, 110, 128, 130, 128, 125, 130, 129, 124, 126, 128, 138, 132, 137, 134, 143, 106, 133, 130, 118, 127, 122, 115, 116, 135, 127, 139, 113, 145, 121, 121, 117, 126, 115, 130, 135, 116, 124, 131, 143, 126, 121, 115, 129, 113, 114, 117, 121, 113, 117, 135, 124, 111, 131, 139, 114, 118, 129, 104, 149, 137, 115, 132, 129, 134, 120, 134, 133, 118, 132, 137, 124, 138, 141, 128, 130, 123, 131, 125, 134, 131, 107, 135, 123, 139, 123, 123, 119, 129, 132, 127, 122, 119, 125, 102, 119, 133, 133, 103, 112, 129, 139, 127, 116, 126, 119, 154, 136, 128, 132, 122, 127, 128, 136, 118, 133, 116, 129, 121, 115, 122, 122, 119, 122, 111, 163, 115, 114, 125, 129, 127, 141, 147, 131, 124, 111, 125, 135, 117, 125, 126, 106, 128, 150, 125, 123, 131, 119, 125, 128, 116, 119, 118, 119, 131, 131, 118, 139, 128, 111, 110, 134, 116, 137, 110, 93, 132, 119, 120, 127, 120, 124, 146, 121, 115, 116, 137, 128, 131, 139, 133, 133, 124, 118, 128, 116, 121, 120, 152, 118, 118, 127, 137, 127, 124, 121, 124, 118, 117, 127, 121, 138, 129, 149, 123, 131, 112, 134, 135, 138, 134, 132, 129, 114, 140, 116, 120, 114, 110, 137, 107, 114, 129, 139, 139, 116, 150, 117, 127, 137, 134, 128, 133, 136, 131, 127, 113, 120, 111, 127, 126, 117, 129, 121, 117, 126, 125, 133, 137, 116, 110, 133, 122, 128, 127, 119, 134, 152, 128, 141, 129, 119, 115, 123, 115, 123, 112, 117, 127, 117, 128, 122, 136, 126, 110, 125, 115, 115, 134, 102, 138, 126, 130, 123, 120, 132, 117, 128, 123, 121, 125, 131, 117, 128, 110, 128, 117, 133, 126, 143, 130, 126, 125, 140, 108, 138, 125, 133, 130, 104, 121, 138, 93, 145, 141, 123, 121, 112, 121, 131, 112, 132, 119, 113, 118, 114, 132, 134, 130, 125, 111, 116, 104, 130, 107, 122, 118, 116, 139, 132, 123, 118, 116, 135, 121, 136, 142, 126, 149, 130, 112, 123, 117, 129, 127, 115, 128, 132, 112, 122, 114, 144, 135, 125, 126, 123, 135, 141, 123, 135, 143, 109, 125, 133, 126, 129, 123, 113, 121, 122, 136, 118, 138, 106, 121, 135, 114, 115, 124, 128, 132, 130, 129, 121, 116, 115, 119, 115, 129, 113, 129, 124, 114, 136, 121, 136, 122, 147, 112, 126, 137, 138, 125, 124, 107, 122, 113, 116, 123, 130, 137, 102, 123, 128, 118, 152, 134, 114, 132, 148, 112, 111, 116, 124, 110, 125, 116, 138, 126, 118, 102, 133, 133, 128, 130, 102, 104, 132, 111, 143, 132, 135, 127, 125, 134, 127, 122, 145, 107, 148, 111, 125, 110, 111, 140, 133, 116, 129, 127, 143, 130, 124, 137, 140, 137, 111, 119, 106, 132, 139, 122, 125, 142, 123, 123, 130, 140, 117, 133, 144, 117, 120, 112, 128, 117, 129, 138, 144, 141, 118, 108, 135, 134, 121, 124, 127, 103, 128, 122, 128, 117, 126, 133, 124, 128, 118, 130, 121, 132, 131, 120, 142, 122, 131, 121, 124, 117, 141, 120, 115, 128, 122, 124, 138, 143, 112, 111, 126, 141, 121, 116, 124, 130, 128, 121, 126, 144, 141, 120, 130, 111, 130, 135, 130, 109, 135, 112, 139, 122, 112, 119, 152, 131, 124, 114, 115, 119, 115, 105, 115, 123, 128, 135, 114, 117, 128, 115, 129, 141, 124, 131, 112, 118, 130, 133, 117, 128, 128, 123, 124, 106, 119, 128, 143, 140, 120, 134, 128, 117, 133, 133, 141, 124, 89, 114, 125, 134, 107, 128, 113, 131, 114, 113, 120, 121, 126, 140, 131, 109, 135, 120, 111, 99, 110, 122, 119, 139, 131, 138, 129, 121, 109, 133, 113, 109, 108, 132, 127, 125, 119, 119, 124, 103, 107, 112, 135, 114, 125, 138, 125, 125, 154, 117, 118, 109, 117, 121, 123, 105, 133, 116, 121, 118, 105, 132, 139, 105, 126, 134, 128, 123, 130, 123, 131, 133, 125, 127, 125, 122, 117, 133, 124, 121, 141, 122, 127, 119, 129, 110, 129, 132, 113, 120, 112, 137, 105, 132, 151, 112, 120, 122, 132, 130, 138, 136, 139, 126, 146, 118, 123, 126, 120, 111, 121, 114, 119, 138, 106, 127, 135, 130, 118, 114, 138, 121, 105, 127, 111, 137, 123, 132, 122, 125, 118, 119, 127, 114, 133, 113, 117, 125, 123, 137, 128, 131, 124, 113, 94, 135, 128, 123, 121, 124, 120, 136, 130, 118, 121, 119, 128, 129, 131, 113, 113, 130, 115, 121, 127, 131, 112, 137, 138, 128, 116, 117, 121, 132, 121, 128, 134, 124, 108, 153, 131, 116, 117, 119, 136, 131, 119, 138, 130, 129, 125, 119, 142, 117, 124, 119, 131, 107, 109, 123, 146, 130, 129, 116, 140, 124, 145, 134, 132, 123, 122, 147, 111, 127, 117, 134, 111, 135, 104, 121, 133, 124, 124, 105, 132, 150, 131, 142, 124, 127, 116, 102, 135, 115, 129, 125, 119, 125, 135, 138, 124, 132, 113, 138, 125, 144, 138, 128, 115, 129, 125, 126, 119, 118, 118, 124, 137, 126, 140, 136, 123, 138, 123, 117, 114, 144, 133, 127, 128, 114, 114, 145, 132, 124, 120, 143, 126, 127, 131, 121, 126, 116, 119, 140, 145, 140, 134, 132, 128, 107, 120, 118, 129, 114, 118, 116, 135, 124, 138, 132, 117, 130, 136, 131, 129, 144, 120, 130, 121, 115, 128, 126, 117, 138, 128, 153, 116, 133, 132, 115, 146, 121, 123, 124, 138, 117, 118, 121, 165, 126, 119, 131, 125, 107, 124, 134, 136, 119, 111, 137, 132, 125, 105, 128, 128, 125, 118, 130, 131, 135, 122, 107, 130, 118, 129, 127, 125, 114, 103, 140, 131, 121, 117, 128, 127, 124, 120, 116, 95, 140, 137, 119, 115, 113, 128, 144, 126, 131, 139, 123, 123, 125, 145, 135, 128, 120, 139, 129, 121, 142, 121, 144, 125, 127, 138, 116, 135, 126, 117, 120, 102, 125, 132, 128, 110, 125, 121, 122, 127, 124, 129, 108, 119, 125, 154, 136, 114, 125, 133, 140, 130, 132, 139, 139, 120, 130, 133, 119, 116, 118, 112, 123, 111, 140, 121, 127, 129, 148, 133, 121, 132, 119, 127, 129, 124, 125, 132, 141, 110, 134, 128, 121, 145, 108, 122, 131, 125, 119, 114, 122, 128, 121, 121, 124, 135, 119, 110, 135, 126, 115, 134, 129, 125, 142, 123, 112, 144, 123, 129, 104, 118, 125, 120, 118, 117, 129, 117, 143, 124, 131, 128, 121, 123, 143, 133, 125, 145, 145, 110, 107, 120, 128, 114, 111, 125, 128, 147, 150, 122, 127, 113, 129, 135, 100, 113, 118, 125, 121, 141, 133, 121, 114, 103, 131, 132, 128, 120, 125, 115, 135, 138, 132, 136, 129, 125, 130, 129, 138, 121, 118, 137, 126, 134, 115, 103, 129, 121, 139, 124, 104, 133, 129, 137, 128, 133, 132, 151, 117, 131, 142, 129, 120, 112, 125, 116, 99, 130, 101, 129, 147, 119, 107, 122, 126, 111, 116, 125, 132, 116, 132, 117, 121, 138, 130, 133, 113, 116, 110, 103, 119, 131, 132, 128, 127, 127, 132, 110, 106, 128, 117, 127, 112, 105, 135, 128, 120, 134, 121, 118, 120, 128, 123, 143, 116, 132, 127, 136, 114, 143, 107, 132, 127, 129, 131, 122, 131, 129, 127, 135, 120, 129, 127, 109, 139, 132, 112, 130, 128, 117, 119, 118, 138, 129, 136, 123, 127, 129, 132, 121, 129, 136, 107, 133, 115, 115, 121, 135, 106, 121, 126, 131, 120, 133, 137, 110, 108, 122, 112, 117, 139, 121, 115, 128, 128, 121, 126, 131, 138, 123, 150, 109, 106, 129, 126, 134, 124, 130, 117, 106, 119, 128, 137, 120, 118, 119, 136, 118, 117, 124, 128, 149, 129, 130, 120, 110, 131, 115, 126, 114, 135, 100, 138, 127, 122, 131, 133, 131, 158, 127, 135, 120, 113, 127, 126, 127, 140, 114, 139, 139, 126, 138, 116, 131, 107, 113, 117, 120, 129, 142, 114, 136, 134, 126, 125, 128, 125, 116, 126, 138, 124, 115, 133, 129, 137, 119, 114, 126, 134, 124, 129, 137, 111, 130, 140, 126, 114, 129, 136, 120, 110, 125, 116, 120, 140, 123, 123, 124, 120, 133, 115, 136, 111, 106, 125, 110, 125, 140, 141, 132, 125, 108, 116, 115, 121, 130, 121, 119, 129, 112, 119, 117, 125, 112, 124, 126, 136, 139, 102, 129, 107, 117, 116, 130, 111, 114, 146, 123, 125, 118, 121, 119, 136, 121, 105, 111, 128, 96, 132, 135, 125, 132, 139, 128, 121, 132, 141, 117, 123, 118, 131, 117, 151, 125, 118, 133, 125, 105, 116, 122, 117, 125, 122, 138, 128, 134, 132, 126, 111, 148, 120, 116, 136, 139, 125, 142, 115, 138, 128, 106, 112, 137, 111, 135, 124, 114, 111, 130, 122, 137, 118, 125, 137, 132, 108, 125, 137, 123, 138, 124, 117, 114, 99, 123, 143, 111, 123, 130, 125, 128, 132, 116, 123, 137, 138, 127, 131, 132, 121, 109, 114, 116, 131, 110, 138, 135, 140, 130, 133, 122, 135, 140, 134, 124, 149, 132, 123, 141, 124, 131, 130, 124, 109, 117, 123, 136, 120, 121, 128, 122, 135, 105, 128, 150, 133, 126, 117, 119, 118, 125, 114, 110, 129, 127, 115, 142, 121, 113, 127, 122, 125, 115, 97, 120, 126, 119, 142, 133, 133, 133, 124, 112, 116, 107, 106, 101, 147, 118, 109, 118, 128, 126, 121, 110, 130, 131, 111, 108, 139, 107, 131, 127, 134, 138, 131, 145, 109, 121, 126, 131, 133, 131, 122, 123, 135, 137, 108, 133, 131, 130, 145, 103, 131, 121, 115, 133, 108, 125, 125, 137, 123, 118, 99, 127, 151, 106, 127, 133, 117, 115, 141, 136, 107, 141, 105, 105, 120, 109, 115, 112, 134, 113, 139, 110, 133, 120, 105, 122, 142, 130, 137, 117, 126, 115, 132, 119, 121, 132, 141, 123, 124, 133, 128, 125, 122, 125, 133, 123, 123, 119, 140, 136, 138, 112, 130, 109, 95, 128, 138, 115, 120, 118, 128, 126, 129, 144, 133, 123, 121, 134, 130, 138, 133, 128, 122, 128, 122, 124, 135, 105, 137, 129, 130, 121, 126, 131, 124, 109, 120, 133, 143, 124, 123, 139, 134, 121, 119, 130, 135, 145, 143, 134, 129, 134, 133, 121, 126, 127, 122, 126, 126, 117, 126, 120, 123, 121, 122, 123, 130, 145, 134, 150, 149, 141, 130, 124, 125, 111, 131, 117, 102, 142, 122, 122, 127, 136, 122, 138, 112, 128, 123, 143, 122, 131, 130, 128, 134, 131, 127, 123, 129, 153, 119, 128, 117, 112, 121, 130, 122, 136, 118, 108, 115, 122, 126, 123, 125, 122, 122, 117, 129, 124, 115, 139, 115, 136, 116, 118, 115, 136, 123, 133, 128, 122, 133, 126, 129, 108, 124, 131, 127, 118, 129, 126, 128, 138, 127, 98, 139, 126, 137, 141, 122, 122, 161, 131, 135, 127, 114, 110, 127, 116, 120, 143, 134, 124, 137, 141, 122, 145, 119, 136, 119, 123, 125, 111, 148, 136, 99, 125, 126, 115, 136, 124, 115, 115, 128, 121, 122, 116, 116, 128, 112, 138, 109, 123, 127, 110, 117, 115, 118, 133, 122, 126, 141, 113, 131, 131, 128, 119, 118, 117, 122, 120, 109, 128, 137, 134, 139, 132, 120, 125, 134, 134, 131, 124, 130, 124, 124, 120, 116, 103, 121, 105, 134, 135, 126, 135, 116, 130, 124, 131, 129, 132, 150, 124, 145, 149, 129, 111, 130, 121, 109, 147, 125, 143, 123, 116, 137, 129, 124, 132, 125, 137, 123, 108, 112, 108, 125, 130, 113, 113, 117, 126, 120, 100, 139, 134, 120, 130, 116, 125, 120, 124, 127, 123, 127, 119, 144, 134, 127, 119, 135, 135, 108, 110, 119, 126, 133, 140, 122, 129, 126, 137, 127, 139, 133, 126, 118, 129, 109, 108, 134, 121, 138, 109, 114, 135, 121, 120, 135, 130, 119, 139, 131, 117, 113, 125, 129, 128, 128, 126, 126, 115, 124, 115, 122, 129, 121, 110, 132, 122, 120, 124, 126, 124, 125, 108, 116, 114, 124, 128, 130, 104, 132, 137, 136, 117, 113, 130, 127, 133, 142, 106, 135, 123, 134, 118, 118, 139, 139, 136, 141, 128, 126, 148, 142, 127, 120, 121, 119, 117, 143, 139, 130, 122, 124, 130, 114, 128, 132, 125, 102, 99, 121, 134, 120, 123, 129, 128, 130, 122, 135, 121, 117, 140, 123, 105, 131, 127, 136, 108, 116, 125, 110, 118, 116, 131, 135, 117, 127, 145, 131, 117, 95, 124, 118, 115, 135, 138, 124, 141, 141, 127, 108, 116, 141, 124, 109, 128, 108, 133, 133, 133, 119, 133, 137, 144, 113, 129, 108, 133, 125, 132, 136, 118, 135, 138, 114, 131, 120, 135, 126, 119, 141, 120, 122, 143, 126, 125, 108, 130, 120, 125, 124, 135, 125, 105, 131, 137, 121, 129, 103, 126, 128, 130, 126, 115, 115, 135, 127, 119, 115, 122, 130, 143, 96, 115, 141, 111, 122, 128, 132, 114, 139, 129, 120, 132, 124, 133, 136, 116, 118, 122, 111, 128, 139, 133, 123, 140, 117, 127, 140, 109, 119, 124, 114, 138, 122, 132, 119, 108, 120, 117, 117, 130, 142, 117, 98, 137, 121, 131, 136, 149, 140, 136, 114, 122, 135, 102, 120, 106, 120, 133, 126, 120, 122, 116, 130, 135, 116, 119, 138, 131, 119, 115, 134, 127, 132, 134, 116, 151, 142, 125, 131, 129, 130, 118, 132, 132, 111, 117, 119, 121, 140, 117, 112, 133, 116, 117, 138, 125, 136, 117, 139, 127, 115, 122, 132, 134, 117, 122, 124, 116, 124, 144, 156, 116, 131, 136, 116, 135, 120, 112, 120, 122, 119, 133, 129, 108, 130, 116, 134, 118, 130, 113, 117, 104, 138, 128, 117, 135, 123, 126, 149, 120, 122, 117, 129, 108, 121, 124, 110, 110, 123, 128, 134, 126, 119, 126, 123, 114, 142, 133, 111, 111, 120, 118, 123, 128, 139, 132, 120, 120, 134, 116, 133, 143, 124, 116, 124, 125, 126, 130, 113, 104, 117, 148, 115, 115, 143, 134, 127, 134, 108, 119, 135, 120, 115, 112, 125, 138, 132, 135, 139, 134, 123, 137, 124, 119, 121, 132, 116, 135, 153, 125, 124, 140, 128, 102, 136, 126, 123, 120, 110, 96, 144, 121, 119, 130, 120, 127, 111, 119, 135, 134, 139, 142, 116, 127, 122, 112, 118, 121, 130, 129, 124, 122, 124, 109, 127, 120, 107, 109, 131, 142, 107, 137, 130, 127, 119, 135, 148, 136, 133, 117, 120, 145, 113, 123, 134, 130, 144, 134, 124, 126, 119, 119, 127, 110, 115, 119, 136, 127, 114, 118, 122, 156, 114, 138, 102, 146, 134, 138, 118, 124, 129, 118, 120, 119, 113, 117, 125, 144, 119, 127, 120, 146, 134, 122, 127, 120, 122, 110, 113, 133, 142, 105, 127, 148, 129, 136, 120, 128, 149, 133, 138, 121, 139, 128, 129, 137, 130, 111, 119, 135, 134, 130, 111, 131, 114, 127, 135, 133, 144, 122, 127, 139, 120, 135, 120, 113, 129, 133, 132, 112, 134, 117, 106, 119, 125, 148, 120, 127, 126, 119, 126, 126, 144, 127, 118, 122, 134, 132, 132, 103, 130, 119, 119, 143, 118, 116, 122, 120, 129, 112, 130, 145, 107, 123, 140, 125, 119, 132, 128, 130, 146, 110, 144, 127, 129, 150, 121, 114, 125, 108, 130, 130, 128, 131, 147, 124, 116, 126, 136, 125, 136, 119, 125, 118, 129, 124, 120, 128, 112, 135, 112, 124, 119, 120, 117, 126, 128, 100, 116, 128, 106, 132, 123, 113, 122, 131, 118, 115, 143, 130, 130, 132, 132, 139, 140, 131, 130, 125, 131, 134, 152, 142, 132, 158, 131, 134, 135, 130, 133, 123, 121, 136, 123, 120, 119, 119, 121, 145, 126, 121, 114, 136, 123, 132, 141, 124, 133, 132, 124, 141, 130, 119, 124, 125, 124, 135, 120, 121, 121, 127, 128, 123, 116, 128, 134, 122, 134, 122, 115, 118, 126, 103, 146, 124, 119, 128, 116, 108, 121, 120, 118, 117, 141, 128, 113, 112, 126, 140, 132, 122, 129, 106, 129, 117, 112, 125, 112, 116, 108, 120, 111, 131, 115, 130, 132, 156, 128, 130, 108, 135, 98, 126, 132, 130, 139, 123, 126, 112, 127, 143, 139, 118, 124, 128, 134, 142, 113, 140, 116, 108, 118, 128, 117, 146, 131, 134, 124, 117, 145, 124, 131, 118, 116, 134, 118, 134, 126, 111, 127, 129, 133, 139, 122, 119, 110, 124, 122, 138, 95, 116, 118, 131, 109, 131, 118, 130, 117, 132, 121, 124, 106, 124, 127, 128, 126, 116, 148, 107, 131, 124, 128, 129, 118, 149, 129, 133, 129, 128, 129, 143, 124, 112, 123, 122, 111, 127, 132, 131, 122, 126, 130, 125, 122, 129, 135, 128, 137, 124, 112, 119, 131, 127, 132, 134, 127, 128, 119, 132, 121, 130, 125, 124, 131, 131, 124, 137, 127, 138, 129, 134, 110, 115, 143, 121, 116, 114, 138, 116, 125, 135, 134, 132, 124, 123, 132, 136, 127, 124, 131, 125, 148, 115, 120, 109, 126, 128, 137, 133, 133, 124, 130, 142, 118, 122, 111, 127, 122, 114, 137, 116, 154, 118, 124, 140, 131, 154, 123, 127, 110, 136, 116, 106, 129, 126, 123, 134, 109, 117, 135, 120, 139, 128, 123, 121, 116, 109, 118, 132, 114, 122, 131, 128, 118, 135, 125, 127, 130, 142, 143, 116, 127, 127, 125, 104, 110, 137, 122, 117, 120, 122, 108, 131, 113, 135, 121, 131, 115, 122, 121, 124, 133, 134, 120, 119, 119, 114, 128, 105, 126, 143, 139, 139, 129, 108, 123, 116, 125, 139, 111, 134, 132, 127, 143, 121, 128, 112, 124, 133, 132, 116, 129, 119, 113, 109, 125, 129, 126, 122, 125, 144, 130, 127, 119, 112, 139, 116, 136, 134, 123, 123, 128, 125, 129, 127, 125, 127, 117, 130, 128, 133, 114, 133, 118, 120, 132, 104, 126, 128, 135, 128, 128, 121, 137, 109, 118, 126, 128, 126, 132, 135, 122, 123, 100, 124, 145, 136, 125, 121, 129, 148, 137, 142, 131, 123, 135, 130, 122, 134, 110, 110, 135, 121, 130, 131, 132, 120, 117, 143, 131, 131, 134, 127, 124, 124, 143, 128, 113, 122, 137, 126, 137, 118, 127, 117, 136, 128, 122, 116, 127, 123, 145, 115, 136, 125, 131, 121, 127, 112, 119, 155, 120, 133, 117, 119, 126, 128, 107, 119, 126, 130, 112, 116, 126, 130, 131, 130, 118, 138, 120, 115, 133, 124, 111, 125, 133, 118, 130, 141, 120, 141, 120, 123, 130, 133, 112, 138, 126, 151, 141, 118, 121, 111, 125, 118, 114, 135, 154, 111, 120, 139, 118, 130, 125, 128, 122, 120, 115, 135, 133, 116, 134, 128, 143, 124, 128, 128, 100, 130, 113, 122, 108, 135, 143, 114, 119, 116, 122, 110, 132, 130, 140, 139, 131, 125, 115, 128, 144, 117, 122, 131, 132, 122, 130, 123, 152, 121, 123, 114, 122, 106, 131, 128, 133, 111, 122, 163, 131, 124, 119, 119, 128, 141, 116, 135, 135, 116, 99, 100, 118, 126, 127, 123, 136, 122, 119, 120, 141, 127, 110, 120, 130, 138, 129, 142, 123, 130, 120, 134, 118, 130, 120, 123, 124, 126, 145, 114, 130, 127, 126, 131, 129, 110, 115, 136, 120, 105, 120, 114, 130, 123, 133, 107, 112, 115, 132, 121, 128, 136, 126, 131, 126, 126, 133, 133, 125, 123, 123, 133, 124, 126, 135, 118, 124, 116, 117, 127, 134, 127, 137, 118, 129, 129, 141, 125, 128, 129, 107, 131, 117, 135, 112, 142, 132, 140, 119, 125, 131, 129, 102, 110, 134, 135, 120, 125, 114, 127, 127, 139, 126, 146, 125, 119, 140, 115, 127, 131, 134, 127, 117, 136, 111, 118, 118, 132, 105, 140, 128, 121, 121, 140, 129, 122, 123, 133, 126, 128, 141, 126, 120, 130, 128, 132, 114, 115, 132, 126, 162, 128, 130, 126, 122, 121, 113, 110, 119, 133, 119, 124, 123, 113, 136, 128, 135, 125, 133, 129, 115, 114, 122, 129, 128, 125, 111, 130, 136, 143, 133, 126, 133, 105, 134, 120, 135, 108, 139, 122, 121, 132, 120, 124, 115, 122, 134, 125, 118, 115, 130, 130, 119, 141, 131, 123, 128, 117, 128, 124, 123, 136, 141, 142, 116, 133, 110, 123, 150, 110, 129, 118, 126, 128, 105, 132, 126, 112, 120, 124, 144, 116, 142, 100, 114, 129, 135, 126, 144, 129, 135, 142, 138, 129, 112, 136, 134, 136, 139, 139, 131, 126, 128, 134, 124, 127, 133, 124, 114, 123, 118, 136, 121, 137, 128, 131, 132, 122, 127, 150, 127, 124, 133, 126, 111, 106, 133, 118, 121, 116, 123, 114, 124, 121, 115, 124, 134, 130, 116, 118, 120, 136, 139, 128, 141, 124, 134, 131, 129, 132, 101, 134, 123, 137, 126, 134, 132, 129, 111, 118, 127, 128, 125, 133, 121, 121, 109, 124, 145, 105, 126, 118, 126, 121, 105, 126, 121, 128, 125, 135, 138, 121, 125, 118, 124, 137, 136, 123, 132, 130, 137, 113, 131, 118, 127, 118, 136, 139, 141, 126, 127, 122, 122, 120, 111, 134, 115, 142, 119, 110, 140, 124, 119, 113, 131, 126, 114, 117, 98, 123, 133, 127, 133, 147, 120, 114, 114, 116, 115, 131, 125, 124, 124, 125, 127, 134, 133, 132, 117, 147, 120, 142, 131, 118, 125, 116, 129, 122, 115, 139, 138, 107, 131, 127, 131, 149, 110, 126, 128, 133, 114, 119, 138, 133, 133, 137, 152, 138, 123, 137, 122, 120, 123, 131, 124, 132, 131, 141, 131, 129, 133, 110, 120, 127, 132, 129, 132, 142, 134, 138, 130, 112, 123, 127, 128, 142, 123, 135, 108, 113, 119, 142, 123, 138, 120, 123, 129, 110, 133, 116, 129, 119, 97, 123, 116, 131, 134, 133, 124, 139, 123, 113, 127, 121, 127, 137, 105, 121, 144, 137, 122, 130, 125, 117, 130, 121, 149, 160, 121, 117, 128, 109, 121, 122, 129, 126, 127, 140, 125, 118, 125, 123, 139, 132, 119, 134, 122, 118, 132, 137, 110, 137, 123, 127, 103, 113, 127, 119, 121, 146, 134, 140, 127, 99, 114, 123, 123, 140, 112, 121, 133, 126, 119, 113, 135, 141, 133, 148, 148, 107, 121, 138, 115, 126, 136, 121, 126, 135, 127, 122, 147, 110, 130, 129, 133, 111, 134, 138, 115, 129, 133, 135, 114, 122, 169, 130, 152, 123, 128, 115, 117, 115, 127, 125, 122, 119, 135, 132, 131, 126, 136, 137, 119, 120, 129, 131, 129, 126, 119, 107, 124, 119, 124, 120, 115, 124, 131, 122, 125, 124, 130, 123, 122, 123, 123, 139, 131, 125, 112, 120, 135, 138, 124, 108, 126, 121, 129, 119, 110, 134, 124, 129, 137, 132, 107, 123, 123, 128, 151, 128, 124, 119, 123, 133, 133, 138, 134, 121, 116, 141, 118, 133, 122, 132, 127, 123, 132, 123, 130, 122, 123, 134, 111, 118, 129, 145, 120, 126, 132, 112, 109, 135, 108, 107, 136, 130, 117, 123, 133, 133, 127, 110, 126, 132, 128, 126, 118, 130, 127, 145, 129, 119, 122, 124, 105, 118, 139, 127, 130, 147, 131, 134, 103, 129, 131, 117, 138, 128, 120, 115, 116, 116, 135, 144, 128, 122, 125, 140, 129, 121, 108, 139, 109, 130, 131, 126, 130, 102, 138, 118, 127, 112, 117, 118, 127, 115, 123, 122, 122, 133, 136, 132, 119, 116, 121, 115, 125, 117, 135, 124, 124, 121, 126, 114, 117, 132, 107, 149, 124, 118, 96, 114, 127, 127, 148, 125, 124, 127, 129, 120, 112, 117, 108, 91, 111, 142, 109, 137, 138, 119, 132, 134, 133, 131, 120, 127, 119, 130, 132, 113, 129, 131, 129, 133, 118, 129, 116, 119, 121, 109, 118, 114, 129, 133, 123, 144, 127, 147, 118, 120, 148, 115, 119, 125, 133, 122, 146, 118, 118, 138, 118, 122, 129, 108, 134, 124, 127, 120, 134, 120, 125, 152, 139, 123, 131, 147, 129, 124, 125, 142, 138, 121, 83, 116, 123, 118, 126, 156, 125, 127, 131, 153, 126, 126, 117, 134, 113, 129, 130, 128, 138, 128, 132, 145, 129, 142, 136, 127, 118, 124, 142, 139, 130, 136, 123, 116, 113, 138, 113, 125, 118, 130, 148, 132, 135, 135, 116, 120, 139, 130, 136, 120, 123, 119, 108, 130, 123, 140, 126, 138, 143, 139, 128, 117, 106, 126, 126, 108, 119, 114, 133, 122, 119, 110, 127, 136, 132, 111, 135, 128, 122, 126, 120, 136, 125, 152, 131, 118, 127, 129, 145, 142, 124, 135, 114, 121, 124, 139, 109, 125, 136, 121, 124, 114, 115, 131, 118, 127, 106, 136, 107, 127, 124, 125, 129, 112, 130, 131, 122, 89, 109, 137, 105, 105, 29, 133, 121, 137, 116, 137, 128, 122, 131, 119, 118, 134, 138, 143, 115, 141, 123, 122, 136, 118, 120, 134, 131, 118, 116, 124, 119, 127, 125, 112, 123, 118, 125, 117, 113, 138, 120, 133, 121, 147, 127, 130, 135, 132, 146, 113, 141, 117, 130, 126, 112, 124, 121, 137, 136, 129, 104, 117, 137, 122, 146, 114, 127, 109, 125, 122, 122, 122, 120, 126, 122, 132, 126, 123, 129, 127, 122, 113, 129, 120, 115, 133, 106, 124, 119, 128, 122, 133, 105, 120, 126, 115, 122, 117, 108, 110, 127, 135, 111, 184, 131, 129, 131, 114, 124, 98, 140, 117, 128, 137, 115, 121, 135, 129, 128, 138, 116, 133, 139, 124, 127, 113, 131, 153, 119, 119, 106, 120, 121, 129, 126, 140, 137, 124, 129, 101, 122, 120, 124, 134, 130, 139, 131, 129, 110, 137, 127, 130, 119, 108, 121, 121, 126, 116, 126, 115, 119, 136, 143, 115, 112, 123, 140, 115, 115, 130, 117, 129, 124, 133, 125, 139, 134, 134, 124, 130, 149, 125, 113, 124, 122, 118, 139, 113, 127, 124, 121, 127, 130, 111, 128, 114, 144, 117, 138, 114, 133, 125, 114, 117, 132, 121, 126, 112, 130, 131, 134, 148, 140, 133, 133, 124, 139, 136, 147, 131, 137, 151, 123, 139, 134, 123, 140, 149, 116, 135, 130, 124, 131, 126, 123, 123, 143, 127, 119, 124, 116, 142, 131, 140, 121, 117, 145, 107, 126, 118, 137, 123, 136, 114, 127, 154, 134, 139, 127, 116, 132, 131, 118, 117, 101, 116, 124, 122, 108, 139, 125, 122, 131, 126, 116, 123, 119, 127, 130, 113, 81, 135, 127, 112, 117, 107, 125, 122, 124, 125, 128, 132, 139, 139, 123, 119, 124, 131, 140, 131, 129, 136, 124, 130, 110, 96, 139, 120, 108, 123, 126, 130, 125, 129, 125, 116, 124, 142, 140, 123, 135, 129, 126, 129, 137, 119, 127, 132, 119, 127, 135, 125, 86, 129, 132, 100, 128, 139, 137, 127, 125, 141, 133, 136, 122, 127, 109, 126, 129, 127, 119, 116, 131, 129, 145, 128, 125, 127, 131, 131, 125, 128, 102, 123, 117, 134, 134, 128, 118, 127, 154, 131, 113, 120, 119, 120, 118, 119, 139, 131, 115, 122, 130, 123, 138, 109, 125, 121, 143, 107, 137, 139, 132, 138, 130, 125, 117, 126, 118, 126, 138, 124, 114, 133, 131, 120, 112, 120, 140, 122, 130, 148, 115, 130, 130, 129, 127, 122, 140, 134, 110, 142, 129, 138, 129, 134, 126, 142, 142, 144, 127, 122, 137, 129, 134, 143, 144, 132, 125, 128, 139, 123, 120, 126, 126, 128, 122, 127, 119, 132, 129, 130, 117, 131, 133, 120, 116, 130, 126, 130, 106, 116, 129, 135, 123, 133, 128, 122, 126, 116, 125, 117, 112, 113, 104, 116, 127, 120, 124, 121, 135, 125, 110, 107, 130, 112, 132, 130, 122, 115, 109, 101, 135, 119, 128, 137, 139, 130, 135, 130, 144, 115, 114, 107, 112, 125, 143, 118, 120, 130, 107, 130, 125, 141, 116, 124, 130, 125, 115, 119, 109, 123, 128, 113, 119, 122, 118, 141, 121, 122, 144, 131, 143, 117, 132, 128, 133, 94, 129, 121, 126, 124, 133, 112, 127, 139, 121, 121, 123, 111, 117, 117, 112, 116, 125, 134, 128, 125, 128, 124, 130, 136, 124, 140, 119, 101, 121, 142, 117, 136, 117, 118, 125, 118, 121, 143, 142, 105, 141, 136, 128, 141, 118, 130, 117, 114, 140, 128, 129, 114, 126, 121, 149, 111, 125, 127, 135, 135, 127, 132, 110, 127, 124, 116, 111, 123, 126, 109, 128, 135, 146, 124, 117, 135, 123, 130, 138, 120, 132, 126, 120, 133, 123, 117, 123, 114, 120, 120, 147, 133, 104, 129, 109, 135, 116, 131, 124, 129, 136, 124, 112, 133, 131, 120, 137, 124, 118, 115, 106, 114, 145, 118, 131, 151, 144, 134, 136, 128, 121, 125, 113, 102, 128, 131, 122, 123, 129, 120, 127, 123, 142, 128, 132, 134, 130, 127, 123, 130, 126, 122, 105, 133, 138, 118, 133, 115, 127, 114, 134, 138, 135, 124, 112, 147, 135, 121, 116, 125, 122, 128, 117, 113, 127, 122, 125, 119, 133, 131, 120, 140, 120, 108, 119, 124, 119, 122, 117, 129, 128, 119, 122, 126, 123, 120, 120, 120, 128, 119, 143, 131, 117, 120, 130, 127, 130, 127, 123, 113, 123, 126, 123, 125, 124, 138, 133, 109, 122, 142, 124, 112, 136, 134, 120, 119, 112, 105, 143, 123, 109, 114, 132, 142, 126, 120, 128, 144, 115, 128, 128, 124, 136, 130, 141, 119, 140, 130, 127, 122, 137, 131, 125, 146, 131, 125, 112, 131, 120, 118, 129, 152, 108, 124, 106, 112, 125, 122, 140, 127, 133, 138, 132, 115, 121, 109, 141, 121, 121, 118, 122, 131, 115, 130, 126, 134, 132, 125, 126, 112, 128, 122, 132, 130, 114, 138, 119, 129, 117, 132, 135, 141, 122, 115, 131, 130, 116, 126, 130, 131, 127, 130, 130, 107, 118, 131, 113, 129, 128, 114, 121, 122, 128, 131, 128, 122, 137, 116, 120, 121, 135, 119, 134, 128, 116, 127, 133, 116, 146, 99, 136, 139, 126, 133, 130, 131, 111, 121, 133, 125, 130, 126, 124, 150, 123, 103, 108, 138, 115, 126, 132, 112, 129, 125, 139, 133, 126, 108, 115, 112, 135, 122, 126, 123, 142, 144, 134, 136, 126, 131, 128, 121, 127, 142, 123, 104, 133, 98, 131, 129, 119, 122, 125, 122, 129, 130, 109, 140, 137, 117, 121, 130, 141, 138, 140, 120, 114, 123, 112, 124, 135, 123, 122, 133, 135, 123, 122, 127, 117, 130, 126, 136, 131, 136, 111, 114, 121, 126, 122, 123, 121, 125, 121, 127, 130, 131, 129, 107, 123, 113, 127, 122, 149, 117, 104, 124, 133, 110, 121, 115, 130, 119, 124, 122, 125, 135, 128, 122, 127, 126, 129, 128, 128, 126, 144, 126, 123, 141, 121, 124, 124, 132, 118, 117, 132, 116, 117, 131, 128, 121, 133, 143, 129, 132, 123, 120, 137, 128, 126, 120, 122, 138, 133, 136, 136, 137, 130, 122, 128, 135, 131, 90, 147, 114, 130, 132, 120, 134, 150, 135, 124, 136, 122, 152, 141, 123, 133, 130, 130, 114, 131, 131, 133, 118, 133, 115, 124, 134, 106, 126, 106, 128, 127, 121, 125, 157, 130, 121, 129, 128, 123, 106, 112, 111, 133, 134, 109, 116, 126, 121, 117, 134, 139, 128, 133, 123, 134, 113, 139, 116, 130, 124, 131, 137, 111, 120, 105, 144, 104, 113, 124, 136, 126, 157, 116, 126, 136, 130, 132, 133, 134, 127, 126, 128, 131, 127, 114, 127, 135, 128, 117, 118, 121, 124, 117, 134, 132, 123, 128, 139, 128, 134, 115, 129, 125, 136, 136, 145, 121, 131, 117, 129, 133, 134, 126, 118, 116, 143, 126, 117, 125, 121, 118, 138, 128, 112, 135, 131, 130, 131, 133, 129, 113, 126, 123, 147, 128, 127, 130, 119, 112, 106, 137, 122, 143, 116, 114, 112, 121, 126, 121, 126, 143, 128, 133, 114, 131, 92, 134, 119, 132, 129, 147, 141, 103, 150, 122, 127, 116, 121, 126, 143, 119, 136, 124, 115, 121, 122, 117, 112, 120, 115, 140, 119, 117, 124, 101, 110, 128, 104, 131, 126, 127, 132, 120, 122, 141, 131, 121, 121, 112, 143, 136, 118, 136, 112, 116, 114, 136, 137, 142, 129, 128, 123, 125, 113, 135, 125, 129, 121, 142, 130, 136, 137, 125, 129, 115, 135, 120, 134, 124, 128, 125, 105, 119, 114, 118, 139, 128, 116, 125, 138, 141, 125, 129, 123, 136, 129, 126, 122, 130, 130, 111, 117, 124, 111, 109, 117, 129, 123, 135, 135, 118, 116, 125, 125, 123, 118, 112, 127, 105, 121, 130, 123, 89, 126, 116, 114, 102, 136, 122, 114, 122, 133, 133, 120, 121, 128, 125, 132, 121, 139, 125, 125, 143, 138, 128, 131, 133, 144, 134, 119, 130, 133, 122, 136, 130, 113, 118, 125, 115, 134, 129, 131, 118, 123, 141, 134, 122, 153, 128, 127, 124, 126, 115, 111, 126, 130, 114, 121, 143, 139, 125, 109, 107, 136, 136, 138, 117, 131, 127, 108, 119, 129, 106, 136, 147, 118, 123, 127, 126, 117, 109, 131, 113, 119, 138, 126, 120, 136, 116, 109, 113, 110, 124, 112, 113, 125, 123, 139, 116, 116, 125, 139, 132, 122, 126, 122, 145, 123, 126, 116, 133, 124, 138, 122, 117, 111, 116, 117, 114, 132, 115, 110, 104, 119, 128, 134, 129, 110, 116, 138, 131, 112, 137, 123, 123, 112, 142, 126, 131, 114, 127, 140, 103, 133, 112, 126, 106, 126, 129, 143, 111, 124, 114, 150, 141, 129, 107, 122, 129, 143, 121, 145, 122, 109, 126, 117, 127, 124, 134, 132, 112, 107, 147, 117, 122, 121, 122, 127, 121, 119, 117, 128, 122, 122, 116, 133, 148, 122, 129, 134, 137, 118, 132, 148, 132, 145, 126, 130, 107, 152, 139, 124, 130, 141, 112, 126, 139, 113, 124, 127, 114, 128, 126, 138, 117, 105, 115, 132, 134, 108, 109, 126, 136, 126, 130, 140, 125, 121, 126, 119, 111, 127, 125, 129, 127, 120, 121, 121, 125, 135, 120, 121, 117, 112, 112, 122, 119, 109, 129, 138, 123, 115, 110, 107, 138, 108, 117, 132, 112, 119, 119, 118, 124, 116, 133, 130, 120, 127, 145, 115, 129, 144, 123, 119, 125, 115, 136, 120, 107, 114, 124, 117, 121, 114, 126, 111, 102, 122, 131, 123, 141, 110, 130, 126, 132, 112, 119, 116, 141, 129, 126, 134, 145, 130, 118, 126, 121, 121, 118, 126, 129, 106, 115, 109, 114, 120, 140, 124, 131, 135, 120, 123, 132, 135, 128, 124, 111, 114, 112, 152, 126, 130, 133, 128, 117, 124, 124, 131, 133, 115, 138, 127, 117, 119, 124, 118, 119, 123, 135, 105, 123, 119, 120, 106, 111, 122, 115, 138, 122, 145, 129, 129, 121, 128, 137, 125, 130, 130, 119, 141, 115, 118, 146, 131, 120, 119, 129, 112, 132, 113, 130, 128, 130, 131, 122, 126, 121, 121, 117, 127, 139, 144, 134, 113, 113, 140, 119, 135, 134, 139, 127, 118, 112, 118, 115, 125, 119, 134, 131, 117, 101, 137, 129, 101, 113, 121, 131, 116, 123, 130, 126, 133, 129, 135, 143, 134, 133, 117, 126, 121, 101, 122, 128, 121, 130, 108, 113, 134, 120, 133, 124, 122, 118, 140, 111, 130, 107, 107, 130, 131, 127, 128, 121, 131, 120, 130, 123, 139, 126, 129, 117, 128, 138, 125, 126, 119, 125, 127, 127, 102, 136, 116, 123, 135, 119, 124, 119, 127, 130, 114, 134, 131, 126, 112, 122, 129, 120, 111, 135, 132, 125, 130, 108, 132, 128, 134, 142, 114, 149, 138, 127, 141, 121, 121, 140, 124, 112, 137, 130, 115, 120, 137, 128, 135, 129, 131, 150, 138, 135, 124, 131, 121, 130, 128, 108, 148, 116, 130, 140, 145, 128, 126, 127, 117, 113, 123, 118, 119, 123, 116, 128, 140, 139, 100, 131, 136, 110, 122, 123, 136, 114, 115, 154, 120, 136, 128, 123, 154, 141, 131, 124, 121, 121, 118, 146, 122, 119, 116, 135, 116, 117, 134, 133, 118, 142, 130, 125, 128, 123, 124, 119, 120, 133, 157, 122, 121, 125, 100, 118, 112, 107, 136, 116, 113, 122, 118, 112, 115, 117, 150, 128, 115, 138, 123, 124, 118, 127, 116, 112, 118, 143, 129, 146, 118, 120, 141, 113, 109, 114, 124, 123, 120, 132, 117, 145, 108, 118, 119, 135, 132, 116, 136, 120, 122, 129, 109, 118, 129, 134, 139, 140, 115, 124, 121, 140, 145, 105, 119, 129, 119, 111, 133, 112, 129, 129, 127, 124, 126, 123, 135, 137, 122, 133, 138, 130, 134, 113, 125, 123, 117, 132, 147, 139, 112, 121, 139, 130, 132, 115, 121, 128, 122, 113, 158, 145, 109, 114, 129, 112, 127, 124, 127, 121, 123, 128, 127, 124, 117, 127, 119, 108, 131, 136, 127, 115, 123, 129, 132, 133, 147, 126, 121, 123, 106, 119, 135, 122, 133, 103, 140, 123, 120, 121, 126, 112, 129, 119, 120, 126, 125, 131, 132, 100, 137, 125, 129, 118, 133, 115, 133, 113, 119, 115, 127, 122, 100, 115, 119, 113, 152, 128, 124, 125, 104, 122, 138, 125, 125, 124, 115, 120, 133, 131, 114, 148, 130, 120, 149, 98, 120, 121, 131, 123, 119, 130, 154, 129, 128, 111, 129, 132, 113, 113, 114, 117, 122, 108, 138, 108, 129, 108, 125, 97, 120, 135, 124, 116, 112, 109, 130, 113, 149, 125, 141, 119, 128, 132, 112, 156, 133, 138, 140, 133, 129, 130, 132, 135, 134, 119, 132, 123, 141, 134, 130, 111, 127, 120, 124, 127, 145, 113, 129, 121, 123, 134, 115, 122, 135, 125, 131, 125, 134, 122, 136, 136, 147, 150, 120, 116, 124, 135, 124, 125, 132, 115, 134, 132, 118, 107, 119, 132, 114, 135, 119, 126, 129, 122, 125, 113, 132, 143, 114, 147, 110, 131, 130, 128, 122, 119, 131, 144, 137, 126, 127, 128, 114, 121, 114, 123, 124, 119, 119, 132, 130, 107, 126, 138, 119, 125, 121, 123, 126, 123, 116, 138, 111, 121, 116, 125, 116, 120, 132, 145, 116, 147, 106, 107, 119, 142, 110, 139, 120, 131, 141, 116, 140, 129, 131, 128, 112, 129, 128, 116, 134, 119, 126, 122, 127, 139, 130, 120, 127, 114, 118, 116, 124, 113, 128, 139, 121, 116, 132, 122, 124, 129, 120, 125, 137, 129, 120, 112, 121, 134, 95, 106, 129, 132, 121, 141, 103, 122, 132, 118, 120, 117, 117, 115, 124, 126, 122, 120, 112, 125, 118, 131, 128, 126, 124, 131, 113, 126, 117, 126, 118, 122, 119, 125, 125, 120, 127, 134, 128, 130, 117, 133, 140, 118, 109, 111, 125, 109, 119, 117, 115, 132, 134, 120, 122, 119, 139, 140, 129, 125, 127, 127, 119, 125, 139, 135, 118, 114, 126, 128, 112, 130, 117, 107, 146, 120, 142, 151, 136, 128, 131, 107, 113, 152, 136, 130, 107, 122, 126, 123, 146, 121, 127, 140, 125, 155, 140, 136, 122, 109, 131, 131, 132, 141, 118, 135, 138, 128, 115, 119, 125, 141, 119, 133, 117, 130, 124, 114, 135, 124, 118, 129, 121, 111, 130, 139, 124, 113, 124, 123, 114, 127, 123, 109, 129, 136, 111, 123, 132, 123, 128, 127, 132, 123, 122, 102, 133, 150, 123, 123, 104, 115, 134, 131, 127, 119, 130, 118, 127, 118, 134, 118, 124, 141, 136, 142, 137, 110, 123, 108, 129, 139, 122, 141, 127, 103, 131, 128, 126, 122, 122, 129, 139, 125, 134, 127, 115, 125, 117, 120, 141, 120, 123, 118, 146, 147, 122, 140, 128, 131, 126, 127, 113, 126, 124, 122, 137, 97, 112, 113, 114, 127, 132, 128, 138, 115, 139, 139, 116, 122, 127, 140, 135, 116, 117, 131, 126, 118, 136, 124, 106, 124, 133, 136, 157, 125, 133, 121, 110, 109, 117, 126, 117, 107, 130, 131, 131, 130, 127, 119, 119, 94, 117, 117, 113, 117, 133, 128, 140, 143, 112, 122, 129, 118, 130, 130, 131, 120, 114, 114, 134, 130, 124, 121, 111, 127, 119, 136, 118, 123, 130, 114, 135, 116, 119, 134, 149, 133, 120, 124, 117, 120, 133, 143, 112, 127, 119, 116, 114, 144, 140, 137, 133, 131, 134, 131, 148, 140, 95, 123, 127, 132, 113, 129, 141, 124, 120, 135, 140, 130, 128, 125, 105, 142, 145, 127, 117, 112, 129, 104, 131, 120, 121, 115, 155, 126, 133, 126, 129, 120, 119, 132, 116, 108, 140, 128, 118, 121, 131, 131, 100, 124, 108, 135, 106, 124, 128, 100, 136, 125, 135, 135, 123, 127, 110, 130, 124, 129, 102, 130, 138, 138, 125, 118, 129, 110, 132, 124, 135, 119, 120, 119, 127, 107, 112, 140, 115, 117, 129, 135, 129, 120, 126, 136, 129, 131, 124, 127, 111, 141, 137, 115, 119, 115, 119, 127, 122, 141, 138, 106, 121, 138, 116, 121, 113, 130, 142, 139, 138, 128, 126, 138, 109, 130, 138, 140, 116, 124, 123, 121, 125, 121, 112, 128, 147, 126, 126, 110, 103, 130, 117, 118, 144, 119, 128, 142, 136, 121, 97, 127, 137, 129, 117, 131, 130, 117, 124, 131, 129, 124, 115, 122, 115, 122, 137, 126, 122, 128, 109, 120, 115, 126, 126, 117, 110, 126, 133, 128, 124, 134, 135, 131, 128, 121, 121, 133, 116, 116, 136, 127, 118, 127, 130, 137, 133, 124, 128, 120, 125, 123, 117, 117, 133, 136, 134, 127, 126, 118, 124, 126, 137, 119, 118, 130, 131, 118, 123, 136, 117, 133, 139, 106, 121, 134, 117, 125, 104, 125, 135, 135, 135, 108, 118, 124, 127, 136, 125, 123, 139, 124, 124, 123, 138, 132, 133, 110, 125, 116, 121, 135, 118, 147, 106, 121, 118, 107, 122, 148, 132, 122, 141, 134, 129, 145, 115, 119, 120, 135, 138, 110, 120, 133, 106, 131, 119, 142, 112, 120, 120, 137, 111, 137, 128, 115, 136, 111, 123, 106, 114, 107, 137, 136, 113, 127, 115, 127, 113, 112, 134, 128, 153, 123, 129, 118, 109, 116, 133, 110, 104, 117, 139, 123, 124, 138, 140, 140, 133, 127, 122, 112, 121, 124, 152, 123, 131, 142, 117, 120, 111, 109, 131, 136, 124, 117, 126, 136, 107, 132, 131, 116, 132, 129, 128, 139, 126, 125, 124, 121, 135, 116, 132, 125, 139, 128, 115, 135, 125, 132, 118, 116, 116, 136, 123, 129, 132, 117, 134, 112, 125, 123, 122, 145, 118, 120, 130, 107, 126, 127, 125, 133, 110, 115, 114, 116, 125, 121, 117, 120, 115, 142, 112, 139, 127, 124, 129, 89, 112, 140, 124, 129, 127, 135, 113, 127, 119, 126, 131, 117, 108, 137, 109, 128, 126, 125, 119, 123, 115, 126, 126, 118, 120, 127, 108, 116, 130, 126, 117, 118, 115, 142, 152, 118, 127, 126, 127, 132, 123, 110, 141, 113, 128, 119, 148, 130, 113, 112, 123, 122, 115, 119, 110, 118, 133, 112, 130, 123, 121, 122, 130, 109, 121, 128, 115, 132, 141, 117, 118, 131, 107, 123, 137, 124, 127, 128, 122, 128, 133, 119, 117, 125, 126, 108, 122, 122, 128, 127, 120, 138, 116, 116, 118, 116, 118, 128, 146, 132, 129, 119, 124, 129, 129, 110, 151, 127, 140, 126, 126, 123, 129, 138, 136, 137, 126, 116, 118, 118, 127, 127, 161, 137, 99, 133, 135, 123, 135, 116, 130, 106, 134, 123, 117, 135, 123, 117, 111, 114, 117, 135, 118, 106, 137, 118, 146, 107, 132, 122, 116, 111, 124, 130, 132, 123, 140, 124, 140, 135, 115, 123, 114, 129, 122, 131, 120, 118, 126, 127, 138, 132, 123, 130, 103, 107, 131, 126, 144, 116, 122, 123, 124, 122, 120, 112, 127, 119, 109, 149, 123, 115, 115, 127, 121, 136, 151, 115, 130, 132, 123, 125, 136, 132, 123, 125, 125, 123, 118, 148, 114, 114, 120, 135, 133, 138, 129, 132, 133, 121, 131, 126, 139, 130, 125, 121, 125, 114, 113, 119, 117, 134, 123, 130, 127, 120, 130, 130, 112, 145, 133, 132, 117, 108, 95, 136, 147, 134, 134, 90, 133, 124, 121, 125, 120, 132, 123, 124, 121, 125, 137, 131, 125, 123, 106, 119, 130, 138, 114, 120, 117, 121, 124, 125, 115, 120, 139, 110, 111, 118, 115, 138, 130, 140, 139, 116, 147, 123, 140, 120, 135, 127, 133, 121, 133, 122, 124, 118, 146, 113, 118, 143, 130, 119, 128, 126, 117, 137, 130, 131, 117, 119, 124, 110, 135, 124, 119, 122, 108, 120, 112, 121, 116, 122, 118, 125, 125, 132, 96, 107, 123, 123, 112, 129, 126, 135, 159, 147, 132, 114, 119, 106, 125, 110, 115, 128, 118, 135, 123, 110, 130, 125, 126, 137, 124, 149, 120, 124, 108, 114, 142, 118, 123, 109, 127, 154, 109, 138, 132, 123, 110, 112, 123, 128, 123, 111, 137, 131, 125, 116, 135, 133, 119, 129, 149, 119, 118, 129, 121, 129, 146, 126, 121, 132, 135, 133, 133, 111, 118, 132, 113, 125, 114, 122, 136, 108, 120, 125, 123, 114, 122, 140, 134, 115, 133, 126, 134, 136, 139, 136, 142, 134, 117, 123, 117, 117, 124, 149, 129, 127, 120, 133, 116, 112, 138, 128, 130, 136, 126, 154, 129, 113, 115, 117, 129, 114, 138, 135, 130, 122, 136, 125, 132, 121, 127, 149, 130, 126, 114, 122, 113, 132, 137, 133, 121, 121, 156, 125, 111, 128, 125, 123, 113, 132, 112, 118, 143, 111, 129, 116, 143, 122, 127, 118, 125, 141, 145, 113, 122, 131, 131, 145, 133, 133, 133, 136, 116, 144, 116, 122, 132, 112, 123, 132, 116, 142, 135, 122, 120, 116, 117, 122, 121, 136, 113, 117, 126, 106, 121, 131, 127, 129, 132, 132, 121, 108, 116, 133, 141, 132, 141, 124, 118, 130, 137, 112, 147, 127, 128, 138, 125, 142, 131, 139, 130, 130, 121, 122, 125, 130, 118, 136, 125, 121, 119, 132, 122, 127, 108, 114, 130, 129, 123, 127, 136, 117, 125, 124, 115, 129, 115, 122, 127, 122, 118, 135, 139, 105, 133, 126, 119, 118, 120, 135, 121, 122, 124, 108, 126, 121, 139, 132, 114, 129, 118, 136, 122, 138, 132, 120, 123, 116, 110, 131, 116, 147, 128, 124, 126, 134, 139, 140, 123, 125, 115, 117, 125, 126, 133, 130, 126, 131, 130, 115, 130, 130, 139, 125, 137, 125, 121, 126, 130, 126, 111, 112, 136, 125, 105, 150, 137, 124, 115, 128, 128, 106, 118, 127, 117, 117, 125, 127, 136, 129, 138, 123, 110, 122, 120, 130, 111, 114, 123, 144, 130, 116, 135, 125, 127, 135, 136, 125, 136, 126, 120, 119, 117, 134, 142, 121, 127, 120, 110, 110, 131, 119, 113, 109, 140, 122, 132, 136, 119, 134, 117, 114, 124, 124, 121, 129, 138, 109, 146, 115, 118, 115, 125, 137, 107, 118, 125, 129, 120, 140, 117, 127, 119, 116, 118, 140, 133, 124, 138, 133, 147, 123, 112, 135, 118, 119, 135, 129, 113, 127, 111, 130, 121, 138, 134, 135, 121, 128, 116, 122, 144, 129, 125, 128, 130, 123, 126, 119, 126, 135, 129, 125, 132, 127, 119, 138, 137, 124, 133, 146, 123, 107, 130, 140, 127, 125, 118, 130, 110, 127, 134, 156, 130, 127, 115, 113, 113, 118, 131, 132, 127, 118, 116, 126, 131, 129, 131, 110, 137, 129, 122, 137, 108, 134, 122, 103, 126, 118, 130, 127, 121, 126, 112, 133, 127, 135, 108, 120, 120, 131, 126, 135, 101, 121, 137, 104, 122, 141, 134, 103, 127, 123, 112, 129, 115, 130, 120, 139, 123, 112, 133, 126, 129, 98, 142, 113, 116, 124, 138, 109, 120, 143, 131, 110, 136, 123, 137, 126, 131, 130, 120, 136, 122, 130, 112, 127, 129, 133, 130, 116, 152, 132, 130, 148, 122, 124, 132, 126, 129, 119, 143, 110, 129, 124, 133, 126, 131, 113, 132, 115, 122, 115, 121, 132, 128, 122, 134, 126, 122, 132, 136, 129, 113, 123, 127, 140, 126, 134, 117, 123, 128, 122, 131, 123, 113, 120, 127, 144, 128, 129, 121, 134, 143, 146, 122, 114, 130, 139, 130, 140, 131, 118, 130, 138, 134, 129, 128, 115, 120, 122, 124, 119, 135, 136, 115, 124, 125, 125, 134, 128, 124, 125, 134, 121, 119, 113, 131, 133, 134, 114, 133, 134, 125, 148, 134, 131, 132, 127, 122, 118, 145, 134, 118, 108, 125, 135, 133, 134, 128, 127, 124, 126, 127, 134, 120, 126, 121, 140, 122, 119, 124, 134, 117, 114, 123, 123, 126, 134, 127, 135, 138, 130, 128, 107, 135, 136, 107, 126, 122, 127, 128, 134, 121, 155, 146, 112, 112, 110, 121, 125, 131, 116, 124, 127, 123, 125, 122, 136, 125, 140, 137, 125, 124, 116, 121, 125, 108, 116, 116, 94, 113, 117, 123, 115, 109, 102, 102, 134, 119, 136, 135, 124, 140, 142, 101, 146, 125, 134, 139, 144, 124, 136, 135, 121, 126, 116, 124, 130, 134, 122, 127, 124, 120, 125, 127, 117, 134, 118, 132, 144, 121, 144, 118, 112, 137, 115, 131, 143, 107, 95, 120, 126, 133, 113, 138, 120, 101, 108, 139, 112, 121, 126, 136, 123, 121, 142, 140, 125, 130, 125, 115, 132, 147, 127, 147, 127, 114, 120, 125, 119, 130, 110, 111, 119, 115, 121, 123, 121, 130, 122, 122, 122, 118, 135, 111, 121, 121, 123, 118, 127, 130, 134, 109, 129, 110, 131, 118, 135, 131, 126, 134, 119, 118, 134, 115, 130, 117, 113, 125, 133, 130, 136, 117, 143, 119, 117, 141, 115, 126, 113, 129, 140, 124, 130, 130, 133, 116, 133, 136, 121, 138, 118, 140, 123, 130, 132, 122, 125, 117, 112, 102, 136, 115, 132, 118, 112, 140, 106, 126, 123, 118, 104, 124, 115, 144, 135, 112, 135, 125, 117, 125, 123, 120, 133, 134, 124, 135, 122, 120, 125, 139, 122, 137, 127, 123, 119, 122, 115, 121, 113, 129, 132, 122, 123, 115, 128, 118, 124, 135, 128, 137, 123, 112, 135, 143, 130, 133, 137, 128, 129, 147, 135, 125, 130, 134, 108, 137, 122, 123, 131, 134, 109, 141, 122, 129, 124, 137, 116, 122, 95, 127, 124, 126, 126, 110, 125, 129, 126, 111, 128, 130, 130, 128, 122, 119, 124, 113, 111, 115, 126, 115, 122, 134, 139, 130, 121, 121, 119, 137, 124, 124, 125, 132, 135, 133, 127, 105, 120, 126, 131, 129, 118, 139, 136, 106, 115, 122, 126, 116, 122, 126, 108, 123, 121, 124, 157, 114, 116, 137, 124, 127, 109, 115, 121, 139, 131, 122, 118, 116, 119, 123, 123, 127, 146, 122, 143, 116, 116, 125, 129, 121, 123, 123, 148, 145, 111, 123, 135, 118, 123, 130, 122, 125, 128, 104, 131, 141, 119, 126, 126, 121, 139, 128, 136, 129, 134, 104, 123, 124, 131, 135, 134, 131, 124, 133, 128, 143, 115, 122, 112, 123, 123, 115, 146, 122, 141, 120, 134, 137, 135, 128, 120, 136, 106, 126, 137, 113, 146, 114, 127, 136, 127, 127, 126, 123, 115, 133, 136, 114, 125, 127, 119, 126, 85, 120, 118, 105, 117, 115, 108, 133, 129, 119, 112, 122, 129, 124, 147, 126, 134, 134, 126, 129, 131, 112, 126, 133, 113, 130, 111, 124, 135, 130, 124, 123, 109, 129, 111, 164, 130, 119, 135, 125, 129, 122, 143, 121, 135, 129, 110, 136, 139, 134, 111, 127, 117, 110, 116, 110, 126, 138, 125, 126, 125, 125, 121, 113, 139, 126, 131, 135, 119, 117, 134, 139, 120, 127, 128, 134, 123, 131, 115, 156, 142, 117, 134, 131, 129, 133, 110, 129, 123, 120, 95, 133, 141, 108, 119, 122, 119, 116, 133, 118, 128, 129, 128, 124, 142, 114, 120, 140, 121, 124, 129, 125, 118, 129, 145, 130, 129, 103, 123, 128, 130, 119, 140, 122, 121, 99, 136, 124, 121, 136, 121, 117, 118, 123, 132, 134, 135, 132, 109, 108, 122, 127, 116, 128, 137, 131, 114, 117, 123, 150, 140, 122, 125, 132, 129, 134, 138, 131, 129, 123, 136, 126, 106, 131, 113, 122, 132, 122, 140, 122, 132, 129, 125, 127, 124, 120, 117, 131, 109, 128, 110, 120, 143, 125, 117, 132, 125, 127, 132, 126, 139, 130, 136, 133, 127, 128, 119, 140, 103, 127, 128, 134, 124, 136, 124, 128, 141, 105, 126, 118, 126, 134, 118, 130, 132, 123, 115, 125, 130, 133, 107, 127, 140, 117, 119, 115, 125, 124, 130, 126, 116, 101, 136, 121, 113, 125, 123, 118, 118, 133, 116, 132, 137, 132, 146, 103, 120, 123, 116, 132, 125, 112, 109, 127, 135, 113, 125, 130, 140, 144, 124, 123, 136, 125, 124, 117, 123, 121, 131, 115, 139, 123, 122, 110, 139, 114, 117, 128, 139, 123, 132, 131, 127, 125, 127, 134, 123, 110, 139, 140, 124, 117, 130, 132, 133, 132, 119, 135, 127, 118, 122, 110, 116, 120, 124, 123, 114, 135, 125, 117, 126, 124, 126, 125, 153, 136, 129, 121, 113, 117, 126, 133, 132, 123, 133, 118, 124, 110, 125, 120, 128, 137, 138, 115, 126, 122, 137, 131, 121, 123, 133, 122, 129, 129, 118, 132, 121, 128, 145, 131, 116, 118, 110, 133, 124, 129, 125, 121, 109, 128, 138, 123, 133, 116, 130, 136, 117, 122, 116, 122, 136, 130, 122, 103, 116, 117, 136, 131, 121, 125, 125, 145, 119, 135, 138, 134, 125, 129, 113, 121, 121, 143, 115, 108, 123, 119, 120, 113, 97, 126, 128, 131, 142, 125, 114, 121, 122, 116, 129, 113, 114, 136, 131, 114, 131, 126, 114, 125, 134, 121, 140, 124, 113, 128, 115, 122, 122, 124, 117, 133, 126, 114, 108, 115, 122, 119, 115, 123, 121, 122, 116, 106, 124, 124, 126, 127, 133, 115, 113, 126, 122, 137, 136, 136, 115, 129, 120, 140, 129, 143, 126, 142, 132, 129, 133, 130, 140, 131, 122, 118, 132, 123, 125, 128, 145, 121, 126, 133, 124, 132, 116, 134, 140, 125, 136, 122, 129, 117, 136, 115, 138, 112, 124, 130, 159, 127, 126, 114, 117, 133, 119, 121, 124, 119, 147, 115, 109, 140, 117, 142, 121, 115, 123, 135, 132, 117, 131, 129, 136, 117, 107, 119, 129, 122, 112, 133, 131, 124, 111, 113, 150, 120, 111, 111, 139, 120, 124, 138, 121, 117, 127, 126, 137, 128, 134, 125, 112, 129, 129, 124, 117, 111, 122, 118, 130, 118, 124, 127, 140, 122, 125, 127, 124, 136, 129, 127, 125, 122, 122, 140, 128, 132, 120, 122, 116, 123, 132, 134, 141, 134, 126, 123, 138, 123, 120, 128, 129, 116, 121, 104, 124, 127, 125, 131, 124, 120, 135, 142, 107, 133, 130, 120, 133, 121, 116, 134, 134, 142, 113, 116, 121, 134, 115, 142, 120, 128, 145, 134, 117, 140, 130, 131, 130, 150, 138, 121, 110, 129, 115, 94, 129, 131, 145, 112, 122, 117, 133, 115, 125, 154, 119, 132, 107, 140, 132, 124, 139, 117, 115, 129, 116, 124, 114, 121, 122, 111, 115, 140, 125, 116, 106, 107, 141, 120, 150, 110, 122, 139, 121, 130, 128, 118, 137, 143, 117, 113, 126, 124, 114, 141, 140, 129, 137, 123, 127, 112, 103, 127, 122, 132, 117, 127, 113, 121, 121, 115, 134, 114, 138, 131, 107, 125, 133, 123, 139, 125, 122, 114, 145, 112, 130, 117, 120, 139, 119, 128, 114, 142, 106, 131, 120, 138, 126, 135, 130, 137, 132, 129, 136, 127, 115, 123, 111, 119, 151, 124, 106, 137, 130, 128, 121, 133, 120, 110, 146, 128, 118, 132, 119, 119, 128, 112, 113, 123, 136, 132, 126, 129, 134, 137, 134, 133, 130, 131, 100, 123, 115, 155, 129, 98, 115, 139, 117, 127, 113, 118, 110, 123, 124, 123, 127, 133, 117, 140, 126, 117, 104, 121, 127, 131, 124, 110, 120, 131, 127, 131, 136, 132, 128, 134, 113, 126, 119, 124, 121, 122, 109, 113, 120, 130, 118, 123, 135, 118, 122, 145, 133, 131, 130, 119, 122, 115, 124, 133, 119, 143, 145, 124, 122, 121, 137, 118, 130, 122, 128, 137, 130, 141, 127, 136, 125, 116, 128, 109, 123, 128, 138, 124, 124, 135, 127, 108, 124, 129, 123, 138, 123, 134, 106, 158, 138, 125, 125, 133, 116, 124, 126, 119, 132, 120, 135, 123, 136, 122, 126, 105, 132, 141, 155, 132, 133, 141, 110, 132, 122, 125, 122, 126, 124, 122, 132, 122, 120, 122, 113, 120, 132, 127, 144, 111, 130, 121, 119, 133, 120, 112, 115, 127, 134, 117, 117, 115, 135, 124, 122, 115, 155, 112, 122, 131, 111, 128, 142, 128, 121, 126, 127, 115, 126, 119, 131, 126, 106, 110, 128, 139, 118, 122, 133, 119, 126, 126, 136, 131, 127, 117, 128, 121, 122, 123, 130, 111, 115, 126, 125, 118, 115, 145, 137, 125, 120, 135, 141, 117, 116, 128, 134, 115, 128, 115, 116, 137, 114, 131, 121, 126, 109, 139, 111, 122, 87, 129, 121, 122, 112, 122, 125, 108, 130, 125, 120, 119, 130, 145, 136, 131, 127, 126, 129, 127, 134, 130, 102, 126, 130, 109, 127, 129, 144, 138, 141, 150, 142, 135, 139, 125, 142, 118, 123, 132, 106, 115, 102, 112, 122, 113, 136, 137, 129, 114, 128, 139, 129, 139, 127, 123, 141, 136, 125, 126, 131, 130, 118, 141, 132, 134, 130, 108, 127, 141, 111, 124, 117, 131, 123, 117, 129, 124, 141, 124, 113, 130, 118, 120, 114, 125, 117, 123, 114, 124, 126, 111, 128, 129, 95, 127, 109, 124, 115, 128, 119, 130, 127, 125, 115, 128, 109, 114, 118, 121, 127, 112, 121, 132, 120, 142, 133, 125, 141, 137, 118, 140, 124, 126, 126, 122, 105, 123, 126, 114, 126, 133, 121, 122, 137, 109, 108, 125, 135, 122, 139, 135, 128, 122, 136, 123, 126, 130, 112, 113, 118, 128, 121, 120, 157, 128, 107, 120, 125, 125, 126, 129, 131, 107, 137, 112, 162, 121, 114, 113, 130, 128, 133, 131, 131, 128, 119, 124, 132, 128, 156, 126, 128, 119, 117, 126, 111, 121, 117, 124, 126, 124, 123, 148, 123, 134, 119, 127, 120, 113, 144, 134, 129, 138, 127, 124, 128, 131, 137, 130, 138, 138, 125, 124, 125, 127, 105, 131, 135, 130, 122, 131, 137, 110, 118, 125, 127, 126, 113, 125, 135, 116, 123, 132, 125, 119, 122, 139, 126, 138, 137, 129, 120, 124, 127, 130, 120, 124, 116, 138, 115, 115, 119, 125, 129, 139, 117, 129, 107, 116, 118, 130, 140, 134, 112, 120, 120, 128, 130, 145, 134, 129, 124, 134, 124, 125, 131, 127, 119, 101, 121, 125, 117, 122, 114, 137, 114, 133, 138, 124, 130, 116, 109, 118, 127, 117, 135, 122, 120, 134, 117, 152, 115, 119, 136, 126, 120, 119, 134, 116, 138, 127, 120, 138, 134, 118, 110, 108, 122, 120, 127, 134, 124, 139, 120, 119, 96, 128, 116, 129, 133, 123, 128, 116, 116, 119, 121, 119, 131, 118, 124, 130, 129, 128, 127, 150, 117, 125, 131, 142, 115, 154, 126, 118, 125, 173, 114, 129, 133, 129, 135, 120, 135, 133, 116, 116, 123, 116, 121, 139, 130, 115, 124, 124, 130, 114, 123, 126, 123, 127, 117, 121, 145, 117, 124, 128, 143, 132, 125, 124, 121, 151, 131, 132, 123, 134, 119, 123, 136, 126, 130, 128, 137, 145, 123, 149, 135, 131, 141, 134, 132, 134, 130, 116, 136, 126, 128, 108, 115, 126, 120, 133, 131, 120, 122, 131, 121, 138, 121, 106, 117, 125, 143, 113, 111, 133, 96, 131, 135, 133, 110, 134, 104, 124, 129, 113, 134, 128, 137, 141, 125, 120, 134, 119, 143, 119, 121, 103, 120, 137, 125, 128, 129, 112, 131, 137, 114, 112, 132, 135, 111, 129, 122, 131, 131, 103, 123, 105, 107, 114, 134, 127, 134, 104, 156, 137, 119, 142, 125, 123, 111, 115, 129, 134, 157, 115, 126, 143, 117, 132, 137, 114, 139, 124, 120, 150, 121, 137, 132, 128, 124, 115, 111, 118, 126, 126, 116, 117, 124, 119, 115, 134, 126, 146, 146, 134, 128, 122, 120, 136, 108, 133, 130, 118, 126, 121, 111, 137, 115, 118, 139, 110, 129, 126, 107, 116, 132, 120, 145, 128, 130, 122, 106, 119, 139, 128, 113, 116, 140, 115, 143, 116, 112, 115, 129, 148, 126, 125, 126, 128, 115, 120, 113, 127, 138, 115, 122, 123, 116, 119, 134, 125, 122, 141, 97, 136, 119, 124, 125, 133, 143, 145, 111, 110, 117, 132, 129, 122, 117, 111, 136, 119, 148, 126, 122, 123, 115, 135, 126, 119, 123, 139, 126, 110, 131, 135, 119, 141, 127, 136, 125, 127, 124, 123, 120, 124, 121, 115, 125, 121, 116, 125, 144, 128, 117, 132, 132, 118, 125, 118, 130, 130, 120, 135, 118, 128, 131, 136, 111, 133, 148, 125, 133, 140, 128, 125, 120, 140, 117, 126, 119, 111, 127, 111, 110, 131, 119, 108, 118, 132, 130, 112, 126, 125, 133, 124, 128, 139, 125, 136, 129, 98, 119, 128, 127, 117, 134, 134, 127, 139, 130, 115, 116, 123, 145, 119, 138, 113, 138, 123, 105, 119, 119, 147, 113, 115, 115, 111, 136, 108, 132, 126, 121, 126, 120, 144, 131, 128, 136, 130, 117, 119, 116, 118, 121, 135, 122, 134, 110, 131, 116, 110, 127, 101, 107, 135, 124, 123, 103, 117, 116, 115, 113, 123, 119, 131, 127, 112, 129, 135, 116, 112, 121, 118, 110, 126, 132, 108, 128, 115, 125, 133, 121, 137, 111, 109, 119, 128, 103, 122, 127, 115, 123, 107, 152, 131, 127, 127, 156, 124, 120, 133, 124, 134, 121, 116, 107, 139, 130, 123, 137, 130, 123, 138, 131, 123, 105, 134, 115, 138, 145, 126, 140, 127, 121, 124, 123, 140, 117, 116, 136, 117, 112, 124, 138, 131, 131, 105, 111, 119, 133, 108, 124, 122, 126, 125, 131, 125, 116, 148, 125, 119, 110, 120, 120, 128, 130, 123, 126, 130, 114, 129, 119, 115, 126, 115, 128, 123, 123, 141, 114, 140, 129, 133, 121, 142, 115, 100, 114, 131, 128, 122, 126, 152, 125, 116, 116, 115, 134, 114, 118, 151, 116, 138, 123, 139, 124, 133, 128, 141, 138, 136, 149, 123, 128, 134, 129, 132, 120, 122, 136, 116, 130, 139, 143, 120, 128, 133, 127, 132, 132, 127, 139, 124, 115, 129, 122, 114, 128, 131, 113, 125, 120, 118, 122, 126, 119, 118, 128, 123, 134, 120, 141, 120, 131, 136, 113, 123, 134, 122, 116, 136, 112, 118, 111, 119, 126, 129, 134, 122, 126, 139, 134, 115, 124, 125, 121, 115, 102, 114, 128, 115, 113, 129, 122, 130, 133, 124, 117, 113, 125, 126, 134, 121, 109, 116, 138, 152, 120, 113, 123, 118, 136, 139, 132, 114, 120, 151, 117, 117, 126, 125, 118, 125, 150, 123, 125, 149, 108, 121, 123, 110, 119, 130, 127, 122, 134, 124, 111, 147, 141, 119, 140, 124, 137, 122, 130, 134, 137, 115, 126, 128, 155, 122, 133, 122, 125, 123, 115, 122, 134, 117, 132, 117, 119, 99, 133, 122, 110, 128, 118, 122, 134, 112, 124, 118, 143, 115, 125, 117, 134, 147, 111, 137, 130, 126, 127, 118, 133, 128, 121, 114, 130, 131, 125, 116, 126, 129, 130, 129, 120, 117, 132, 125, 150, 145, 127, 117, 119, 134, 142, 131, 116, 115, 115, 113, 137, 111, 112, 126, 132, 132, 118, 122, 116, 134, 123, 137, 129, 136, 117, 135, 129, 109, 130, 111, 122, 106, 122, 128, 119, 155, 125, 128, 128, 127, 126, 136, 140, 128, 130, 137, 113, 131, 133, 124, 122, 128, 139, 134, 130, 135, 125, 116, 129, 134, 114, 119, 129, 134, 126, 119, 116, 112, 129, 107, 121, 118, 146, 114, 128, 129, 115, 134, 135, 127, 115, 151, 133, 124, 136, 136, 132, 123, 126, 107, 115, 121, 126, 134, 133, 122, 123, 136, 135, 135, 140, 127, 114, 136, 118, 130, 119, 130, 99, 127, 143, 131, 137, 121, 131, 111, 122, 132, 116, 119, 118, 124, 123, 138, 139, 121, 123, 123, 122, 124, 113, 109, 134, 146, 134, 115, 125, 111, 127, 127, 132, 137, 120, 127, 133, 109, 141, 117, 127, 119, 102, 135, 146, 140, 122, 106, 117, 137, 102, 131, 123, 122, 126, 133, 131, 128, 135, 113, 130, 130, 138, 125, 120, 135, 109, 116, 120, 108, 116, 116, 124, 138, 113, 117, 131, 118, 127, 129, 132, 133, 136, 126, 134, 124, 120, 132, 105, 118, 111, 135, 99, 118, 145, 134, 111, 111, 127, 134, 131, 135, 128, 124, 125, 123, 113, 127, 134, 129, 118, 125, 131, 119, 132, 114, 125, 125, 118, 97, 125, 141, 154, 123, 139, 118, 132, 144, 121, 147, 137, 134, 107, 120, 124, 131, 110, 129, 111, 130, 139, 115, 128, 128, 128, 133, 108, 135, 119, 115, 131, 134, 139, 112, 138, 133, 129, 160, 112, 133, 148, 120, 119, 127, 126, 107, 130, 111, 136, 118, 118, 130, 132, 126, 131, 132, 121, 119, 124, 155, 120, 136, 117, 128, 108, 121, 113, 121, 117, 119, 106, 119, 127, 109, 120, 127, 140, 140, 143, 126, 127, 124, 125, 130, 124, 126, 122, 122, 143, 129, 126, 129, 148, 138, 118, 99, 144, 109, 134, 111, 125, 119, 133, 110, 115, 128, 129, 136, 131, 130, 122, 116, 117, 123, 129, 118, 110, 137, 128, 116, 127, 138, 134, 130, 116, 133, 120, 125, 122, 134, 131, 136, 137, 117, 124, 114, 124, 122, 138, 112, 136, 136, 130, 107, 118, 131, 118, 125, 134, 139, 114, 134, 124, 115, 139, 126, 110, 124, 124, 139, 121, 117, 134, 106, 154, 126, 124, 110, 135, 134, 128, 116, 133, 139, 109, 124, 127, 120, 130, 142, 144, 116, 152, 136, 126, 130, 119, 125, 123, 124, 129, 119, 125, 108, 123, 125, 133, 128, 113, 135, 133, 102, 111, 127, 119, 124, 125, 132, 114, 139, 147, 105, 123, 129, 131, 128, 131, 151, 124, 129, 132, 118, 128, 131, 140, 127, 102, 130, 118, 129, 137, 142, 135, 126, 128, 129, 154, 130, 121, 117, 132, 121, 123, 117, 131, 123, 128, 135, 116, 104, 113, 130, 122, 145, 124, 119, 119, 125, 118, 112, 138, 121, 125, 122, 118, 126, 131, 120, 132, 121, 135, 116, 126, 132, 129, 138, 124, 120, 123, 114, 123, 118, 112, 124, 100, 123, 111, 127, 123, 140, 133, 155, 110, 133, 117, 131, 114, 118, 113, 109, 122, 116, 136, 113, 109, 124, 121, 117, 99, 117, 139, 139, 123, 126, 111, 137, 98, 118, 117, 119, 126, 128, 119, 126, 114, 123, 121, 132, 117, 128, 123, 140, 124, 110, 120, 138, 130, 116, 107, 114, 122, 116, 140, 145, 121, 128, 133, 124, 115, 131, 123, 117, 135, 127, 112, 121, 125, 133, 128, 96, 115, 123, 133, 113, 104, 133, 119, 137, 115, 151, 131, 136, 119, 114, 123, 105, 132, 136, 125, 140, 126, 101, 112, 107, 107, 119, 134, 134, 136, 123, 126, 132, 124, 131, 121, 139, 116, 115, 139, 130, 115, 129, 128, 131, 120, 132, 137, 115, 112, 103, 126, 137, 123, 149, 140, 127, 113, 122, 148, 92, 135, 133, 118, 122, 135, 141, 148, 121, 122, 134, 133, 143, 126, 136, 145, 123, 138, 119, 130, 120, 148, 119, 119, 120, 122, 124, 130, 130, 116, 121, 125, 135, 142, 123, 134, 122, 121, 132, 135, 106, 124, 128, 122, 124, 110, 123, 113, 122, 132, 122, 114, 129, 121, 112, 119, 123, 122, 117, 118, 138, 134, 132, 129, 137, 109, 121, 122, 106, 111, 129, 122, 129, 113, 117, 123, 116, 148, 129, 146, 116, 123, 131, 123, 122, 131, 144, 126, 113, 119, 129, 144, 122, 137, 129, 130, 128, 130, 115, 133, 122, 131, 116, 133, 125, 125, 141, 117, 125, 88, 140, 112, 131, 122, 125, 125, 111, 128, 116, 125, 131, 106, 122, 122, 119, 118, 125, 128, 126, 118, 132, 122, 134, 132, 123, 131, 113, 125, 142, 123, 135, 132, 127, 129, 118, 111, 109, 120, 146, 129, 123, 130, 130, 121, 115, 119, 117, 137, 113, 122, 107, 118, 116, 113, 119, 121, 120, 123, 140, 137, 127, 123, 119, 135, 123, 114, 108, 139, 133, 112, 116, 117, 130, 110, 123, 138, 131, 130, 125, 136, 118, 108, 109, 127, 127, 121, 133, 134, 109, 142, 136, 129, 124, 135, 133, 129, 131, 140, 126, 121, 107, 117, 139, 118, 129, 129, 113, 123, 133, 110, 126, 124, 139, 119, 135, 121, 130, 143, 126, 123, 129, 125, 121, 146, 139, 117, 136, 106, 128, 139, 133, 105, 140, 145, 129, 143, 149, 110, 125, 120, 108, 133, 120, 129, 128, 103, 115, 113, 134, 112, 125, 136, 133, 124, 124, 116, 146, 133, 102, 137, 131, 125, 127, 116, 119, 126, 132, 120, 114, 123, 119, 130, 118, 132, 142, 106, 122, 133, 130, 131, 120, 134, 141, 131, 106, 123, 119, 129, 121, 130, 124, 109, 108, 140, 144, 132, 120, 127, 116, 120, 125, 99, 136, 132, 111, 112, 117, 112, 140, 111, 146, 160, 141, 112, 101, 130, 111, 132, 120, 112, 131, 127, 128, 127, 142, 116, 121, 140, 126, 128, 135, 120, 124, 136, 127, 120, 89, 123, 140, 140, 155, 142, 123, 110, 114, 145, 153, 123, 130, 110, 121, 142, 123, 120, 125, 125, 123, 118, 119, 117, 134, 120, 117, 126, 141, 105, 130, 126, 125, 125, 128, 120, 117, 122, 108, 150, 132, 124, 128, 137, 139, 119, 125, 119, 147, 124, 130, 120, 130, 125, 132, 134, 135, 124, 127, 134, 128, 136, 129, 130, 147, 140, 122, 128, 126, 120, 136, 126, 107, 149, 127, 113, 123, 129, 137, 131, 135, 142, 132, 115, 118, 122, 121, 133, 145, 118, 129, 121, 113, 135, 136, 130, 129, 132, 152, 112, 141, 127, 124, 131, 144, 114, 127, 113, 135, 133, 108, 130, 143, 128, 115, 118, 127, 119, 131, 118, 150, 129, 131, 122, 129, 138, 109, 128, 129, 118, 131, 125, 120, 133, 125, 127, 122, 127, 127, 124, 131, 130, 126, 148, 113, 128, 117, 128, 114, 136, 118, 121, 126, 153, 129, 116, 130, 126, 126, 115, 106, 138, 105, 136, 131, 138, 128, 114, 138, 145, 130, 133, 126, 122, 123, 135, 125, 115, 105, 119, 129, 115, 134, 124, 149, 131, 119, 137, 124, 126, 137, 115, 123, 105, 128, 112, 119, 118, 126, 109, 124, 114, 126, 133, 141, 120, 115, 120, 131, 112, 135, 128, 144, 122, 119, 127, 129, 139, 115, 135, 138, 129, 113, 133, 137, 118, 126, 153, 125, 140, 116, 120, 128, 138, 137, 126, 116, 118, 131, 121, 122, 131, 117, 117, 133, 138, 112, 138, 124, 124, 129, 125, 127, 118, 126, 132, 117, 115, 117, 133, 134, 134, 113, 120, 140, 130, 144, 103, 132, 149, 139, 112, 130, 137, 107, 124, 125, 129, 113, 132, 124, 116, 155, 140, 130, 123, 131, 133, 128, 132, 123, 139, 118, 134, 140, 127, 119, 101, 124, 123, 110, 126, 114, 120, 136, 109, 131, 121, 117, 122, 122, 119, 117, 125, 126, 117, 120, 141, 153, 113, 130, 122, 111, 111, 131, 128, 125, 144, 117, 130, 137, 125, 104, 134, 127, 121, 98, 105, 123, 137, 130, 141, 115, 122, 122, 112, 138, 120, 119, 113, 113, 117, 137, 135, 118, 147, 116, 126, 113, 125, 137, 123, 128, 133, 141, 128, 138, 119, 134, 136, 132, 131, 116, 120, 131, 107, 123, 125, 118, 121, 121, 115, 116, 139, 122, 126, 122, 120, 130, 134, 130, 118, 123, 87, 131, 132, 125, 109, 124, 131, 116, 107, 134, 125, 130, 118, 122, 144, 107, 126, 136, 117, 118, 143, 128, 138, 120, 114, 131, 140, 119, 124, 100, 124, 131, 135, 138, 129, 125, 124, 116, 117, 158, 120, 121, 133, 118, 141, 143, 151, 118, 127, 138, 120, 122, 119, 140, 134, 124, 125, 129, 128, 133, 119, 123, 127, 124, 114, 152, 132, 128, 118, 116, 111, 135, 119, 123, 117, 132, 111, 122, 123, 124, 126, 120, 137, 154, 120, 124, 125, 131, 133, 125, 121, 130, 128, 115, 112, 125, 130, 131, 126, 136, 135, 128, 123, 127, 108, 129, 123, 137, 116, 153, 120, 125, 148, 115, 121, 152, 109, 123, 128, 120, 123, 132, 128, 125, 126, 127, 130, 127, 126, 100, 115, 145, 119, 113, 107, 141, 131, 135, 135, 136, 137, 132, 115, 127, 131, 125, 121, 131, 126, 131, 122, 114, 128, 128, 118, 118, 127, 105, 133, 109, 135, 127, 105, 111, 119, 131, 122, 142, 138, 118, 109, 125, 114, 143, 127, 128, 126, 128, 127, 114, 138, 124, 116, 134, 118, 120, 113, 135, 128, 134, 136, 135, 123, 131, 124, 104, 119, 138, 124, 127, 129, 132, 119, 124, 119, 122, 127, 130, 121, 136, 105, 127, 123, 111, 130, 133, 141, 121, 124, 128, 125, 131, 120, 101, 141, 119, 120, 134, 131, 133, 133, 109, 136, 132, 129, 133, 133, 127, 125, 126, 124, 125, 127, 127, 138, 148, 121, 117, 128, 121, 109, 121, 121, 123, 116, 129, 129, 111, 126, 119, 117, 131, 119, 144, 110, 132, 124, 120, 126, 131, 117, 110, 130, 132, 143, 130, 134, 125, 123, 155, 133, 128, 108, 120, 139, 125, 131, 131, 128, 128, 132, 136, 132, 118, 126, 101, 117, 115, 126, 126, 135, 128, 122, 114, 145, 137, 153, 120, 121, 116, 139, 120, 115, 128, 128, 110, 125, 129, 122, 115, 130, 123, 127, 127, 127, 127, 138, 122, 138, 129, 122, 106, 140, 119, 124, 137, 124, 147, 126, 128, 135, 133, 134, 118, 115, 121, 121, 131, 113, 138, 120, 129, 120, 126, 128, 117, 134, 117, 119, 128, 133, 123, 119, 124, 140, 128, 126, 124, 126, 118, 135, 128, 116, 120, 118, 119, 121, 140, 111, 119, 123, 126, 114, 107, 126, 106, 125, 111, 124, 130, 121, 129, 131, 119, 131, 127, 124, 130, 115, 123, 131, 117, 122, 133, 151, 142, 127, 132, 126, 121, 128, 129, 130, 129, 122, 124, 123, 116, 128, 115, 130, 116, 137, 128, 128, 126, 127, 116, 126, 124, 133, 125, 113, 120, 138, 126, 116, 121, 142, 130, 132, 143, 120, 118, 118, 117, 122, 124, 134, 114, 107, 129, 124, 141, 132, 123, 115, 127, 137, 123, 127, 125, 125, 153, 118, 128, 135, 142, 141, 143, 126, 128, 122, 125, 126, 123, 120, 119, 132, 116, 131, 127, 133, 147, 121, 111, 136, 112, 121, 129, 145, 134, 113, 130, 126, 134, 131, 134, 117, 139, 122, 119, 141, 128, 129, 145, 122, 128, 125, 125, 120, 135, 146, 120, 151, 126, 135, 122, 101, 138, 104, 131, 124, 129, 146, 124, 125, 125, 132, 115, 121, 127, 138, 122, 132, 117, 136, 147, 142, 126, 152, 124, 118, 141, 110, 116, 119, 131, 126, 128, 134, 138, 140, 118, 156, 119, 118, 115, 127, 124, 129, 102, 127, 122, 127, 125, 116, 111, 107, 124, 116, 114, 125, 132, 114, 117, 124, 128, 138, 141, 144, 123, 151, 126, 125, 121, 139, 106, 123, 107, 102, 122, 135, 118, 122, 138, 119, 137, 133, 127, 127, 129, 116, 120, 122, 126, 136, 124, 123, 105, 119, 133, 117, 121, 130, 145, 127, 121, 135, 153, 132, 133, 129, 107, 124, 119, 111, 115, 123, 115, 128, 104, 130, 124, 127, 113, 128, 140, 130, 130, 127, 132, 139, 129, 102, 112, 140, 124, 105, 115, 112, 116, 120, 129, 123, 118, 150, 127, 118, 116, 127, 126, 121, 129, 130, 124, 130, 142, 132, 110, 112, 127, 131, 117, 121, 115, 138, 132, 121, 121, 122, 127, 126, 135, 128, 125, 111, 144, 126, 123, 117, 124, 126, 128, 124, 130, 128, 123, 119, 131, 110, 124, 100, 110, 109, 134, 126, 138, 145, 125, 123, 117, 117, 122, 124, 123, 141, 134, 141, 145, 117, 128, 110, 141, 135, 128, 121, 137, 122, 127, 121, 123, 148, 133, 121, 130, 114, 118, 112, 118, 131, 120, 118, 121, 125, 126, 138, 114, 141, 123, 112, 107, 109, 123, 125, 130, 114, 106, 126, 113, 132, 129, 122, 123, 123, 124, 106, 124, 140, 139, 139, 130, 143, 123, 102, 116, 128, 129, 127, 125, 115, 123, 117, 119, 143, 139, 122, 143, 129, 149, 137, 129, 134, 138, 131, 130, 128, 119, 126, 112, 147, 141, 123, 122, 126, 117, 118, 128, 117, 124, 115, 121, 138, 145, 127, 135, 113, 130, 132, 122, 124, 113, 122, 136, 123, 106, 134, 103, 118, 113, 136, 114, 118, 120, 120, 144, 128, 117, 121, 129, 114, 97, 122, 124, 138, 139, 127, 114, 133, 140, 122, 120, 131, 146, 141, 113, 149, 127, 122, 125, 124, 122, 113, 118, 113, 135, 151, 116, 110, 126, 117, 149, 126, 128, 126, 121, 123, 136, 139, 125, 131, 129, 122, 145, 113, 147, 109, 122, 112, 124, 123, 119, 133, 131, 124, 125, 99, 134, 119, 107, 144, 128, 127, 125, 107, 130, 113, 124, 120, 126, 116, 135, 122, 151, 113, 138, 130, 122, 128, 137, 112, 111, 130, 122, 136, 129, 122, 120, 136, 138, 110, 127, 109, 123, 116, 123, 129, 131, 113, 123, 124, 144, 125, 102, 125, 126, 139, 127, 126, 122, 117, 130, 130, 119, 104, 120, 117, 131, 107, 117, 140, 138, 121, 104, 141, 132, 134, 121, 117, 123, 140, 127, 117, 130, 127, 147, 119, 128, 133, 146, 146, 122, 118, 114, 116, 122, 133, 135, 122, 115, 107, 120, 127, 125, 130, 118, 125, 129, 134, 114, 99, 106, 120, 110, 143, 110, 120, 118, 146, 121, 107, 116, 120, 116, 127, 118, 120, 136, 129, 122, 121, 130, 136, 136, 134, 136, 133, 130, 140, 128, 131, 121, 132, 123, 126, 115, 139, 137, 123, 146, 124, 125, 138, 121, 140, 131, 112, 137, 124, 112, 143, 127, 119, 122, 147, 115, 151, 122, 131, 112, 125, 128, 127, 119, 131, 113, 114, 118, 113, 127, 115, 142, 137, 127, 121, 135, 143, 138, 128, 115, 119, 130, 129, 101, 134, 144, 132, 140, 132, 137, 124, 116, 137, 133, 128, 130, 121, 118, 139, 115, 119, 132, 110, 111, 121, 114, 130, 131, 143, 114, 112, 118, 126, 128, 136, 108, 112, 122, 119, 125, 121, 134, 134, 132, 124, 126, 130, 123, 121, 134, 113, 134, 116, 121, 139, 135, 149, 130, 114, 126, 124, 132, 126, 134, 127, 124, 122, 138, 127, 143, 135, 123, 117, 119, 141, 142, 117, 131, 150, 122, 132, 123, 130, 124, 121, 129, 123, 126, 123, 126, 149, 134, 124, 135, 124, 125, 149, 126, 106, 108, 112, 118, 136, 121, 112, 133, 130, 124, 127, 141, 122, 140, 127, 125, 117, 113, 111, 119, 128, 122, 126, 123, 126, 140, 141, 131, 114, 143, 123, 128, 126, 115, 120, 129, 136, 131, 142, 119, 158, 128, 136, 137, 134, 123, 139, 112, 127, 128, 131, 138, 108, 106, 111, 125, 133, 118, 122, 116, 123, 120, 135, 123, 127, 112, 121, 108, 124, 131, 119, 117, 122, 109, 116, 123, 117, 136, 132, 141, 143, 120, 127, 120, 123, 139, 120, 130, 118, 117, 130, 143, 114, 129, 119, 115, 125, 137, 130, 115, 138, 117, 125, 128, 122, 140, 121, 114, 116, 120, 125, 110, 130, 115, 120, 140, 130, 125, 126, 135, 129, 136, 127, 121, 133, 129, 131, 140, 116, 122, 114, 125, 118, 148, 124, 122, 139, 130, 115, 124, 130, 140, 121, 121, 127, 124, 124, 122, 127, 115, 135, 113, 117, 143, 126, 129, 117, 137, 117, 125, 133, 119, 129, 112, 131, 142, 149, 136, 111, 134, 120, 115, 117, 115, 143, 118, 110, 121, 140, 135, 133, 124, 122, 115, 152, 116, 122, 128, 120, 133, 131, 119, 117, 131, 141, 127, 116, 125, 131, 138, 120, 128, 142, 134, 127, 117, 118, 132, 119, 121, 142, 129, 119, 115, 119, 111, 122, 122, 101, 126, 124, 122, 118, 110, 127, 114, 129, 107, 124, 139, 126, 129, 109, 132, 142, 111, 135, 125, 122, 127, 114, 135, 129, 128, 126, 123, 99, 118, 121, 103, 138, 146, 122, 136, 147, 137, 123, 150, 120, 114, 138, 106, 144, 121, 120, 126, 132, 120, 112, 128, 120, 129, 130, 125, 105, 126, 134, 122, 126, 133, 116, 124, 121, 106, 132, 123, 114, 127, 136, 121, 128, 139, 111, 128, 111, 139, 112, 113, 143, 144, 136, 128, 115, 123, 146, 125, 120, 111, 131, 132, 104, 143, 113, 135, 118, 119, 125, 133, 123, 129, 129, 123, 117, 129, 137, 115, 120, 140, 129, 112, 127, 128, 120, 124, 133, 125, 123, 136, 119, 124, 128, 126, 114, 121, 133, 123, 119, 106, 119, 121, 136, 125, 113, 112, 121, 119, 117, 109, 113, 134, 145, 126, 130, 129, 128, 130, 136, 135, 117, 132, 116, 129, 117, 124, 151, 130, 113, 123, 112, 117, 141, 124, 106, 131, 130, 116, 120, 118, 130, 117, 112, 113, 119, 125, 137, 119, 143, 128, 105, 127, 125, 131, 129, 136, 113, 119, 130, 123, 130, 137, 128, 119, 118, 125, 116, 113, 116, 144, 139, 129, 119, 140, 119, 112, 126, 123, 147, 135, 120, 127, 140, 130, 108, 115, 125, 124, 138, 137, 138, 127, 128, 130, 105, 130, 138, 133, 131, 109, 119, 139, 134, 116, 144, 115, 140, 132, 124, 124, 121, 126, 129, 126, 140, 111, 127, 122, 109, 116, 135, 120, 141, 133, 128, 123, 122, 122, 125, 145, 117, 103, 118, 111, 112, 133, 144, 126, 120, 116, 116, 111, 137, 104, 132, 121, 114, 128, 120, 114, 131, 121, 112, 140, 97, 128, 122, 133, 128, 152, 131, 116, 120, 129, 149, 143, 114, 112, 129, 128, 117, 126, 114, 132, 115, 121, 128, 112, 133, 140, 131, 138, 137, 117, 119, 123, 116, 107, 126, 120, 119, 119, 116, 138, 139, 129, 132, 129, 105, 139, 115, 139, 129, 139, 110, 120, 112, 132, 106, 126, 126, 121, 131, 123, 132, 118, 118, 114, 127, 124, 107, 133, 119, 127, 137, 114, 131, 115, 130, 125, 125, 119, 134, 119, 129, 124, 128, 138, 126, 136, 127, 120, 142, 130, 106, 137, 120, 106, 124, 120, 119, 130, 121, 117, 111, 116, 129, 121, 122, 142, 133, 140, 125, 117, 134, 119, 130, 124, 128, 123, 116, 133, 131, 107, 121, 114, 135, 120, 122, 103, 123, 129, 143, 138, 131, 124, 94, 121, 136, 117, 125, 132, 129, 135, 123, 118, 119, 115, 134, 119, 120, 129, 132, 108, 133, 155, 111, 124, 100, 128, 131, 129, 133, 130, 119, 110, 117, 124, 134, 130, 123, 132, 114, 128, 115, 125, 106, 135, 139, 123, 131, 130, 128, 120, 129, 129, 127, 123, 126, 143, 113, 143, 134, 119, 125, 116, 124, 137, 133, 113, 123, 127, 111, 127, 117, 130, 140, 135, 126, 134, 108, 129, 118, 116, 136, 138, 123, 132, 141, 154, 118, 129, 118, 130, 127, 130, 122, 127, 134, 124, 122, 133, 117, 127, 134, 118, 124, 106, 129, 122, 123, 135, 116, 127, 119, 116, 118, 99, 132, 115, 115, 114, 140, 106, 143, 141, 122, 105, 107, 126, 112, 126, 126, 130, 132, 116, 137, 128, 126, 133, 122, 135, 108, 125, 100, 123, 120, 116, 117, 130, 134, 118, 122, 119, 120, 120, 138, 119, 139, 118, 120, 137, 130, 131, 126, 114, 119, 116, 116, 125, 115, 129, 132, 129, 128, 139, 122, 114, 110, 115, 141, 123, 107, 132, 129, 117, 147, 144, 129, 117, 117, 140, 133, 107, 137, 128, 130, 117, 114, 115, 136, 128, 129, 113, 124, 115, 140, 125, 111, 110, 116, 103, 113, 126, 137, 131, 134, 130, 130, 130, 122, 116, 112, 130, 137, 123, 143, 128, 130, 123, 139, 121, 107, 123, 123, 136, 139, 139, 113, 102, 126, 118, 130, 120, 132, 124, 124, 128, 128, 122, 135, 130, 110, 128, 117, 118, 127, 118, 137, 119, 103, 149, 109, 138, 132, 125, 141, 134, 116, 128, 136, 123, 115, 126, 120, 140, 119, 124, 136, 114, 133, 136, 130, 117, 120, 112, 124, 138, 141, 132, 117, 117, 140, 139, 128, 104, 134, 130, 129, 99, 120, 119, 112, 119, 125, 121, 122, 115, 116, 126, 122, 130, 115, 129, 125, 126, 136, 131, 116, 139, 142, 115, 137, 127, 136, 141, 109, 140, 126, 132, 134, 131, 113, 134, 136, 124, 126, 119, 120, 150, 130, 114, 127, 128, 119, 127, 124, 137, 124, 125, 113, 109, 128, 126, 124, 129, 128, 113, 145, 126, 146, 119, 130, 132, 126, 132, 112, 127, 128, 127, 131, 138, 124, 142, 118, 124, 128, 128, 133, 111, 120, 118, 122, 122, 122, 109, 139, 120, 112, 121, 108, 140, 139, 122, 123, 134, 132, 124, 118, 129, 131, 148, 123, 129, 133, 124, 122, 124, 120, 129, 121, 138, 117, 125, 144, 119, 128, 128, 143, 130, 117, 116, 119, 138, 107, 140, 103, 115, 126, 108, 117, 109, 122, 129, 120, 121, 118, 122, 130, 133, 122, 139, 135, 131, 138, 124, 129, 114, 123, 127, 132, 123, 122, 120, 120, 128, 131, 138, 125, 142, 117, 137, 125, 120, 138, 117, 118, 138, 137, 133, 133, 131, 126, 117, 132, 137, 129, 115, 127, 128, 128, 130, 126, 121, 120, 116, 128, 131, 134, 118, 125, 121, 136, 121, 102, 120, 109, 109, 131, 132, 126, 132, 127, 137, 118, 119, 114, 137, 129, 129, 127, 123, 106, 114, 137, 137, 127, 137, 132, 139, 124, 160, 143, 120, 117, 122, 123, 126, 122, 137, 113, 135, 111, 128, 127, 119, 117, 117, 117, 127, 108, 139, 119, 122, 121, 123, 132, 115, 120, 130, 123, 118, 115, 118, 134, 114, 138, 127, 123, 97, 113, 122, 121, 127, 111, 123, 115, 120, 126, 131, 116, 128, 131, 123, 138, 108, 153, 119, 90, 124, 125, 128, 136, 116, 127, 149, 136, 128, 132, 124, 150, 126, 121, 148, 121, 128, 130, 132, 135, 122, 116, 127, 140, 123, 118, 123, 142, 123, 142, 130, 148, 117, 114, 130, 138, 125, 132, 111, 145, 122, 123, 127, 129, 122, 123, 137, 117, 125, 129, 136, 128, 111, 122, 121, 130, 134, 140, 133, 116, 138, 133, 115, 134, 117, 119, 124, 124, 122, 130, 131, 121, 126, 135, 129, 120, 122, 134, 128, 122, 112, 130, 136, 111, 116, 113, 141, 125, 133, 116, 138, 137, 122, 112, 126, 133, 125, 139, 124, 119, 116, 117, 103, 107, 141, 125, 125, 120, 144, 121, 122, 122, 122, 135, 131, 108, 117, 123, 116, 143, 112, 134, 120, 126, 103, 134, 121, 127, 119, 111, 124, 117, 127, 130, 128, 128, 132, 125, 122, 133, 127, 117, 114, 116, 129, 111, 128, 135, 118, 128, 134, 130, 130, 113, 140, 102, 116, 122, 123, 131, 123, 136, 117, 142, 132, 133, 141, 122, 131, 164, 130, 123, 135, 123, 123, 124, 102, 121, 127, 114, 119, 117, 137, 125, 125, 119, 101, 115, 135, 131, 115, 98, 119, 126, 113, 117, 130, 113, 110, 125, 130, 126, 119, 142, 135, 126, 136, 131, 116, 119, 114, 113, 130, 131, 130, 123, 116, 125, 129, 126, 136, 137, 112, 123, 123, 111, 121, 125, 126, 115, 136, 129, 137, 122, 120, 141, 127, 119, 119, 127, 134, 126, 119, 136, 124, 136, 132, 121, 127, 134, 136, 131, 109, 129, 144, 130, 117, 108, 113, 125, 137, 129, 156, 105, 122, 120, 104, 120, 115, 128, 138, 111, 117, 142, 136, 127, 127, 125, 140, 122, 131, 117, 120, 138, 136, 118, 146, 117, 128, 140, 118, 131, 143, 126, 115, 127, 125, 131, 98, 133, 125, 124, 159, 112, 106, 136, 119, 131, 121, 126, 131, 138, 118, 106, 133, 125, 129, 145, 127, 128, 101, 120, 124, 104, 120, 116, 117, 121, 129, 132, 127, 133, 122, 152, 121, 131, 133, 119, 138, 127, 143, 113, 122, 127, 128, 128, 129, 134, 118, 152, 118, 94, 130, 127, 136, 112, 129, 120, 128, 125, 140, 130, 125, 119, 123, 143, 133, 127, 131, 121, 124, 119, 134, 132, 137, 121, 140, 115, 137, 124, 130, 111, 129, 128, 152, 132, 127, 113, 123, 128, 112, 117, 116, 135, 126, 130, 130, 123, 118, 124, 124, 128, 106, 131, 139, 138, 122, 126, 118, 113, 125, 118, 138, 122, 98, 118, 138, 122, 132, 120, 113, 120, 150, 121, 123, 126, 136, 139, 133, 148, 100, 133, 125, 118, 121, 137, 118, 118, 119, 94, 121, 128, 124, 133, 134, 115, 135, 115, 119, 122, 144, 141, 133, 128, 99, 123, 134, 137, 121, 117, 128, 109, 129, 144, 137, 112, 127, 144, 124, 126, 130, 140, 112, 125, 130, 117, 142, 115, 133, 123, 119, 111, 130, 115, 126, 122, 122, 124, 144, 124, 123, 138, 131, 134, 123, 105, 129, 109, 125, 124, 132, 129, 128, 124, 114, 115, 108, 139, 124, 115, 117, 123, 127, 132, 126, 115, 134, 111, 130, 125, 122, 128, 108, 124, 149, 121, 127, 113, 116, 121, 125, 124, 132, 103, 116, 125, 127, 116, 104, 130, 130, 122, 140, 138, 129, 129, 124, 120, 130, 138, 121, 133, 119, 118, 132, 142, 119, 123, 125, 118, 133, 118, 120, 144, 135, 107, 119, 118, 133, 132, 120, 115, 106, 129, 129, 129, 119, 140, 131, 121, 126, 137, 134, 133, 113, 124, 127, 130, 117, 127, 124, 119, 130, 114, 113, 142, 119, 151, 120, 143, 124, 129, 133, 129, 131, 125, 134, 128, 114, 118, 119, 122, 134, 128, 121, 105, 116, 134, 137, 118, 111, 140, 126, 137, 102, 114, 142, 138, 134, 118, 129, 118, 124, 146, 120, 143, 134, 110, 114, 128, 132, 129, 121, 135, 125, 107, 122, 111, 130, 124, 115, 148, 126, 118, 128, 149, 119, 137, 122, 128, 122, 145, 125, 124, 127, 115, 98, 137, 144, 139, 123, 133, 124, 116, 126, 120, 131, 128, 124, 113, 128, 130, 137, 133, 131, 103, 137, 130, 131, 127, 131, 122, 121, 122, 143, 111, 138, 127, 147, 128, 135, 134, 126, 125, 126, 136, 137, 113, 118, 121, 142, 105, 121, 106, 136, 133, 131, 122, 122, 136, 128, 105, 122, 133, 132, 130, 144, 123, 129, 128, 128, 113, 124, 130, 139, 131, 128, 114, 117, 138, 120, 144, 115, 120, 120, 123, 115, 126, 110, 115, 123, 129, 127, 109, 142, 117, 145, 129, 132, 112, 120, 136, 145, 127, 122, 127, 116, 115, 120, 139, 128, 126, 120, 123, 136, 137, 134, 127, 113, 110, 107, 123, 154, 146, 135, 126, 123, 128, 139, 126, 133, 149, 133, 118, 131, 118, 127, 129, 137, 128, 121, 129, 139, 121, 109, 127, 135, 118, 125, 113, 119, 131, 138, 123, 131, 143, 134, 121, 116, 116, 123, 77, 121, 144, 119, 147, 119, 125, 132, 126, 119, 110, 122, 125, 127, 129, 124, 132, 120, 131, 147, 112, 120, 119, 133, 148, 103, 140, 106, 103, 137, 140, 125, 124, 131, 117, 117, 135, 130, 125, 132, 117, 117, 118, 121, 136, 134, 149, 121, 116, 133, 128, 128, 128, 128, 125, 127, 122, 132, 127, 128, 135, 116, 113, 135, 122, 115, 104, 169, 148, 131, 133, 127, 130, 127, 117, 111, 120, 122, 135, 126, 124, 143, 111, 111, 137, 124, 122, 121, 136, 130, 115, 139, 112, 158, 104, 127, 111, 130, 140, 131, 132, 117, 119, 113, 123, 124, 123, 110, 135, 105, 111, 146, 127, 126, 125, 124, 127, 126, 112, 141, 130, 136, 119, 142, 131, 122, 125, 139, 115, 129, 116, 105, 112, 124, 120, 133, 148, 125, 133, 120, 124, 146, 126, 122, 118, 120, 112, 135, 107, 121, 111, 113, 105, 115, 134, 135, 136, 139, 128, 115, 104, 112, 125, 122, 121, 131, 140, 120, 133, 131, 116, 131, 126, 128, 118, 121, 133, 130, 117, 114, 122, 122, 143, 124, 118, 130, 118, 122, 130, 133, 123, 127, 114, 120, 135, 125, 139, 116, 147, 109, 136, 108, 128, 120, 140, 133, 146, 108, 112, 135, 112, 98, 144, 130, 130, 135, 139, 122, 126, 133, 138, 130, 130, 118, 132, 121, 123, 129, 139, 136, 120, 128, 122, 120, 130, 126, 111, 140, 114, 128, 133, 142, 136, 121, 130, 123, 128, 120, 117, 120, 132, 117, 142, 130, 137, 130, 133, 131, 117, 134, 124, 133, 124, 136, 119, 124, 120, 111, 102, 128, 134, 110, 111, 148, 123, 123, 113, 134, 123, 129, 126, 122, 115, 130, 127, 135, 121, 135, 119, 146, 114, 131, 140, 123, 130, 133, 124, 137, 113, 130, 134, 124, 129, 150, 118, 125, 110, 121, 131, 113, 108, 121, 107, 103, 115, 119, 118, 137, 113, 134, 135, 140, 127, 124, 132, 136, 137, 151, 139, 119, 119, 124, 120, 123, 131, 102, 126, 130, 126, 127, 124, 111, 137, 131, 121, 130, 129, 130, 122, 134, 119, 125, 118, 115, 130, 130, 118, 119, 110, 136, 121, 140, 120, 108, 122, 144, 128, 129, 142, 136, 127, 133, 131, 130, 127, 122, 122, 114, 118, 136, 121, 137, 108, 111, 120, 153, 122, 137, 143, 127, 119, 115, 128, 111, 114, 132, 115, 109, 123, 115, 124, 128, 119, 129, 117, 106, 113, 129, 114, 123, 146, 141, 132, 126, 114, 116, 126, 119, 136, 137, 132, 135, 146, 119, 126, 133, 128, 132, 112, 135, 109, 118, 127, 134, 125, 119, 122, 119, 131, 114, 113, 127, 129, 114, 133, 127, 126, 114, 151, 121, 137, 141, 107, 128, 130, 140, 125, 132, 127, 125, 112, 122, 122, 134, 128, 132, 148, 127, 140, 125, 114, 123, 122, 115, 129, 114, 120, 133, 106, 134, 130, 122, 129, 118, 137, 125, 143, 135, 128, 120, 126, 118, 113, 125, 131, 145, 114, 115, 119, 128, 129, 127, 121, 120, 119, 126, 123, 132, 114, 131, 137, 114, 135, 129, 128, 120, 120, 117, 117, 128, 112, 112, 131, 139, 125, 106, 128, 102, 128, 135, 136, 119, 124, 131, 129, 117, 135, 134, 129, 117, 134, 129, 146, 140, 120, 119, 134, 118, 129, 137, 125, 116, 112, 115, 117, 137, 126, 115, 143, 123, 113, 103, 129, 106, 124, 134, 120, 127, 130, 122, 134, 130, 146, 133, 129, 131, 113, 118, 130, 126, 126, 132, 107, 123, 127, 130, 117, 117, 124, 141, 128, 120, 112, 132, 145, 119, 139, 137, 117, 110, 123, 107, 125, 127, 118, 127, 133, 122, 124, 127, 143, 125, 124, 122, 128, 115, 132, 119, 120, 117, 117, 126, 139, 97, 116, 130, 116, 118, 144, 121, 118, 128, 118, 115, 133, 132, 121, 117, 139, 119, 124, 146, 134, 131, 125, 132, 133, 126, 132, 130, 143, 109, 115, 123, 139, 116, 135, 138, 125, 137, 146, 133, 129, 121, 134, 122, 122, 136, 106, 131, 118, 108, 100, 130, 120, 120, 118, 119, 116, 127, 135, 122, 123, 107, 112, 122, 117, 132, 137, 126, 142, 126, 119, 134, 121, 129, 128, 123, 128, 135, 114, 129, 130, 125, 114, 123, 127, 114, 120, 122, 148, 157, 131, 135, 121, 119, 120, 140, 121, 125, 117, 116, 120, 132, 132, 122, 111, 132, 126, 113, 135, 125, 125, 129, 129, 129, 106, 122, 132, 135, 135, 140, 118, 144, 130, 122, 130, 112, 142, 125, 131, 131, 113, 157, 132, 157, 124, 126, 131, 125, 135, 127, 125, 139, 115, 135, 137, 118, 129, 125, 111, 104, 116, 140, 127, 122, 124, 120, 127, 122, 121, 124, 134, 116, 112, 109, 117, 113, 127, 146, 114, 131, 154, 124, 128, 143, 126, 133, 125, 135, 117, 119, 129, 128, 122, 129, 121, 131, 145, 135, 148, 105, 124, 133, 126, 118, 111, 140, 106, 128, 105, 112, 116, 113, 133, 128, 104, 124, 125, 112, 123, 128, 122, 124, 112, 127, 133, 122, 118, 125, 114, 145, 124, 145, 118, 132, 126, 129, 128, 126, 131, 126, 126, 130, 120, 131, 128, 112, 128, 121, 110, 127, 137, 129, 148, 134, 120, 125, 132, 134, 121, 133, 149, 130, 116, 120, 140, 130, 119, 134, 144, 136, 117, 126, 139, 144, 124, 128, 131, 123, 132, 140, 128, 123, 149, 125, 137, 130, 121, 136, 113, 118, 131, 123, 131, 134, 124, 129, 132, 104, 127, 120, 118, 124, 123, 123, 133, 106, 126, 129, 136, 122, 128, 127, 123, 119, 137, 125, 113, 120, 127, 138, 134, 114, 112, 125, 122, 117, 121, 127, 129, 109, 131, 116, 123, 130, 122, 124, 135, 115, 125, 133, 131, 114, 124, 133, 126, 110, 112, 130, 115, 117, 124, 131, 122, 131, 129, 113, 115, 108, 125, 129, 136, 130, 125, 128, 135, 111, 130, 134, 112, 106, 115, 138, 121, 124, 115, 123, 127, 115, 124, 108, 136, 126, 112, 144, 115, 111, 128, 120, 128, 96, 117, 116, 123, 118, 118, 143, 136, 115, 124, 126, 142, 131, 122, 124, 137, 141, 132, 108, 126, 130, 109, 117, 140, 123, 112, 120, 131, 122, 132, 118, 137, 131, 118, 124, 120, 112, 117, 121, 124, 138, 137, 131, 129, 141, 133, 126, 136, 121, 138, 129, 133, 116, 133, 123, 127, 107, 143, 123, 132, 120, 120, 120, 138, 124, 116, 106, 127, 139, 131, 129, 108, 111, 121, 138, 138, 119, 118, 126, 129, 129, 130, 133, 131, 121, 137, 110, 118, 133, 124, 114, 126, 138, 126, 130, 123, 107, 131, 130, 148, 119, 140, 135, 127, 113, 132, 122, 122, 125, 135, 131, 131, 111, 109, 122, 102, 133, 133, 118, 137, 124, 101, 119, 140, 119, 126, 129, 126, 126, 130, 123, 118, 123, 131, 123, 124, 121, 142, 129, 135, 126, 140, 133, 135, 134, 120, 131, 115, 157, 107, 139, 114, 146, 115, 126, 132, 123, 114, 137, 127, 125, 124, 126, 126, 97, 123, 128, 110, 126, 117, 122, 126, 129, 131, 144, 119, 119, 132, 128, 127, 121, 133, 134, 130, 139, 110, 115, 125, 116, 97, 110, 124, 117, 128, 126, 117, 119, 124, 133, 122, 123, 143, 133, 125, 106, 123, 108, 125, 124, 121, 119, 129, 123, 123, 146, 117, 132, 125, 121, 126, 130, 140, 113, 120, 98, 114, 130, 124, 130, 130, 115, 119, 133, 142, 132, 116, 126, 120, 121, 145, 126, 132, 130, 135, 118, 135, 124, 122, 131, 124, 127, 110, 119, 131, 109, 128, 127, 124, 119, 127, 117, 112, 137, 124, 118, 124, 122, 140, 122, 131, 131, 113, 128, 112, 139, 120, 134, 132, 124, 137, 118, 139, 116, 117, 104, 128, 129, 129, 117, 119, 125, 124, 133, 124, 144, 126, 106, 114, 124, 128, 116, 124, 120, 156, 138, 136, 107, 118, 140, 121, 125, 119, 147, 122, 122, 135, 137, 129, 133, 119, 127, 118, 111, 135, 132, 121, 117, 119, 108, 115, 135, 127, 149, 116, 127, 130, 124, 123, 131, 142, 135, 140, 118, 121, 114, 131, 120, 125, 130, 137, 120, 137, 132, 120, 116, 123, 124, 134, 110, 115, 125, 131, 129, 116, 117, 118, 137, 119, 137, 131, 131, 114, 119, 150, 126, 109, 108, 127, 141, 130, 129, 108, 105, 139, 114, 132, 122, 138, 119, 144, 116, 118, 125, 124, 121, 103, 116, 130, 138, 123, 127, 129, 131, 141, 113, 127, 127, 109, 131, 126, 123, 101, 120, 140, 144, 121, 109, 125, 130, 131, 138, 115, 117, 130, 140, 127, 120, 133, 124, 116, 132, 110, 123, 122, 127, 124, 125, 114, 147, 130, 108, 125, 125, 117, 143, 120, 139, 133, 118, 135, 132, 136, 123, 140, 140, 102, 109, 140, 141, 147, 112, 116, 130, 102, 124, 121, 127, 135, 121, 113, 115, 118, 128, 133, 133, 101, 126, 129, 140, 105, 145, 136, 131, 127, 126, 125, 135, 128, 114, 126, 120, 128, 129, 129, 109, 123, 116, 122, 128, 118, 117, 126, 126, 120, 109, 123, 124, 131, 104, 107, 104, 127, 117, 133, 131, 138, 118, 127, 137, 132, 122, 148, 110, 112, 122, 137, 131, 137, 128, 118, 128, 125, 133, 146, 128, 139, 136, 107, 124, 134, 134, 135, 122, 134, 130, 116, 113, 124, 129, 122, 119, 132, 150, 129, 130, 121, 151, 103, 137, 133, 140, 119, 135, 111, 138, 116, 127, 132, 107, 126, 126, 125, 136, 113, 150, 129, 143, 136, 132, 113, 140, 118, 127, 120, 136, 110, 130, 137, 127, 124, 123, 122, 119, 136, 120, 131, 118, 142, 123, 127, 114, 124, 125, 140, 128, 119, 121, 129, 143, 130, 140, 127, 106, 128, 107, 136, 123, 114, 143, 126, 147, 119, 121, 154, 130, 117, 131, 146, 127, 110, 131, 139, 125, 142, 134, 143, 128, 120, 127, 121, 135, 138, 116, 118, 120, 140, 140, 120, 142, 129, 119, 120, 123, 127, 133, 121, 116, 134, 138, 134, 127, 112, 123, 129, 123, 125, 136, 123, 125, 133, 131, 136, 119, 133, 115, 137, 133, 136, 127, 122, 138, 125, 113, 132, 129, 123, 114, 105, 120, 133, 127, 128, 133, 124, 141, 109, 118, 134, 134, 134, 116, 133, 150, 131, 121, 149, 129, 113, 132, 100, 128, 129, 116, 135, 125, 127, 123, 134, 127, 134, 120, 146, 142, 120, 136, 130, 130, 129, 125, 116, 136, 126, 135, 116, 116, 136, 133, 120, 128, 113, 108, 121, 137, 137, 106, 118, 128, 122, 116, 123, 127, 107, 134, 125, 124, 133, 138, 116, 125, 133, 118, 156, 134, 134, 104, 132, 135, 127, 135, 134, 121, 137, 117, 121, 136, 140, 129, 135, 129, 105, 105, 143, 124, 114, 97, 138, 115, 115, 122, 105, 131, 118, 125, 128, 145, 118, 120, 126, 114, 117, 131, 136, 130, 122, 122, 130, 100, 126, 133, 118, 147, 110, 106, 121, 125, 119, 123, 132, 133, 129, 129, 142, 136, 130, 107, 130, 108, 122, 108, 138, 125, 141, 138, 136, 127, 119, 125, 119, 127, 138, 122, 127, 118, 117, 123, 117, 113, 125, 113, 128, 112, 134, 116, 139, 144, 118, 130, 122, 116, 139, 127, 129, 124, 134, 121, 126, 139, 120, 132, 136, 129, 123, 128, 118, 129, 124, 104, 121, 135, 121, 129, 120, 130, 144, 133, 118, 131, 126, 105, 110, 129, 143, 114, 119, 125, 129, 123, 131, 124, 108, 123, 139, 132, 100, 129, 140, 122, 120, 120, 146, 127, 117, 134, 113, 126, 132, 122, 109, 142, 134, 119, 118, 116, 122, 123, 126, 115, 147, 113, 119, 123, 124, 128, 124, 118, 116, 122, 120, 133, 120, 117, 128, 118, 125, 114, 127, 145, 148, 119, 149, 119, 126, 132, 122, 121, 125, 105, 124, 126, 124, 125, 131, 121, 129, 115, 130, 118, 116, 118, 142, 133, 120, 107, 124, 136, 133, 133, 137, 125, 117, 115, 117, 137, 115, 130, 133, 119, 132, 124, 141, 119, 127, 114, 151, 128, 121, 150, 136, 122, 117, 130, 126, 146, 131, 133, 143, 112, 103, 118, 141, 110, 133, 124, 118, 120, 133, 128, 114, 115, 123, 127, 128, 136, 124, 126, 116, 138, 113, 127, 119, 138, 120, 128, 119, 119, 123, 125, 112, 121, 120, 127, 129, 135, 119, 147, 134, 141, 115, 141, 150, 126, 120, 136, 124, 104, 125, 129, 130, 128, 133, 120, 140, 107, 132, 114, 134, 124, 133, 122, 117, 136, 121, 121, 119, 129, 122, 124, 126, 117, 136, 124, 137, 126, 117, 125, 123, 116, 112, 147, 127, 123, 127, 144, 119, 127, 122, 115, 113, 108, 140, 127, 110, 128, 92, 116, 128, 128, 114, 123, 136, 117, 122, 139, 110, 124, 116, 115, 116, 127, 135, 127, 110, 114, 90, 121, 119, 127, 138, 128, 140, 115, 130, 128, 144, 125, 123, 134, 132, 134, 129, 148, 120, 99, 120, 133, 143, 118, 114, 111, 137, 110, 139, 130, 111, 121, 114, 130, 120, 132, 118, 101, 138, 133, 124, 117, 117, 117, 137, 121, 120, 122, 127, 123, 116, 114, 114, 128, 127, 137, 142, 137, 121, 144, 130, 138, 130, 131, 114, 133, 123, 113, 116, 136, 130, 123, 134, 120, 111, 145, 120, 110, 133, 115, 141, 130, 144, 101, 137, 128, 127, 112, 127, 124, 127, 109, 126, 112, 107, 140, 127, 129, 125, 119, 137, 127, 129, 131, 139, 135, 117, 123, 142, 111, 136, 129, 117, 120, 129, 153, 117, 117, 124, 99, 125, 136, 125, 121, 131, 127, 125, 123, 136, 111, 121, 121, 152, 127, 141, 127, 134, 136, 126, 110, 137, 135, 125, 139, 142, 128, 151, 132, 128, 128, 133, 115, 130, 138, 125, 138, 113, 127, 131, 125, 130, 129, 123, 115, 107, 139, 120, 131, 132, 138, 119, 111, 125, 118, 122, 121, 125, 129, 126, 125, 128, 122, 112, 116, 104, 120, 125, 126, 135, 123, 128, 115, 121, 118, 123, 102, 131, 136, 104, 130, 121, 141, 137, 123, 142, 136, 130, 122, 152, 134, 112, 111, 129, 106, 128, 134, 120, 136, 142, 137, 122, 119, 117, 127, 117, 121, 114, 118, 107, 118, 123, 126, 119, 120, 107, 151, 110, 150, 111, 121, 127, 119, 126, 115, 113, 137, 110, 128, 123, 147, 125, 137, 139, 114, 130, 126, 130, 126, 140, 116, 129, 113, 122, 125, 120, 134, 119, 124, 134, 119, 132, 131, 124, 122, 146, 124, 156, 135, 117, 122, 125, 111, 114, 119, 92, 145, 138, 117, 115, 131, 134, 131, 131, 108, 130, 123, 122, 127, 138, 118, 138, 125, 129, 130, 135, 128, 128, 106, 111, 115, 140, 120, 137, 110, 119, 133, 122, 119, 132, 145, 110, 124, 134, 107, 130, 114, 129, 125, 118, 137, 116, 120, 127, 123, 138, 113, 128, 115, 155, 136, 135, 141, 119, 114, 143, 108, 121, 123, 112, 119, 116, 132, 119, 120, 125, 129, 109, 127, 111, 122, 139, 141, 125, 149, 115, 118, 135, 122, 131, 125, 109, 134, 118, 118, 128, 131, 114, 121, 126, 140, 121, 119, 125, 95, 123, 134, 137, 96, 133, 120, 122, 139, 128, 112, 114, 128, 113, 121, 116, 118, 117, 106, 126, 144, 117, 123, 125, 136, 122, 119, 121, 121, 127, 157, 116, 106, 127, 110, 118, 126, 131, 116, 129, 120, 109, 121, 122, 144, 138, 133, 122, 132, 121, 121, 120, 123, 125, 141, 121, 121, 131, 126, 99, 127, 116, 138, 140, 136, 141, 114, 130, 111, 120, 145, 116, 124, 113, 124, 124, 131, 104, 141, 133, 125, 145, 126, 120, 115, 113, 131, 135, 115, 129, 127, 127, 112, 115, 130, 131, 121, 136, 135, 134, 107, 123, 120, 111, 122, 111, 121, 142, 120, 136, 123, 142, 126, 121, 133, 124, 119, 125, 138, 147, 139, 120, 128, 123, 128, 159, 123, 119, 140, 123, 132, 118, 142, 126, 109, 131, 116, 123, 141, 129, 126, 117, 124, 121, 118, 121, 132, 121, 132, 137, 124, 137, 123, 145, 134, 126, 110, 118, 134, 134, 141, 127, 149, 125, 139, 140, 137, 125, 129, 133, 141, 126, 120, 130, 107, 114, 140, 115, 127, 132, 134, 109, 121, 131, 100, 128, 121, 121, 121, 132, 127, 132, 131, 128, 126, 129, 130, 129, 126, 121, 147, 108, 127, 110, 132, 125, 130, 139, 116, 118, 138, 118, 132, 134, 129, 132, 137, 136, 124, 124, 132, 128, 126, 124, 122, 114, 118, 107, 130, 115, 130, 120, 116, 136, 125, 122, 129, 137, 129, 144, 134, 111, 135, 128, 115, 128, 122, 137, 120, 119, 125, 134, 115, 132, 124, 126, 125, 138, 129, 121, 133, 113, 136, 117, 136, 132, 121, 115, 137, 141, 122, 118, 124, 126, 130, 118, 119, 130, 116, 138, 108, 114, 107, 138, 128, 131, 147, 128, 120, 127, 126, 144, 129, 125, 135, 130, 120, 126, 125, 121, 132, 121, 122, 118, 127, 135, 137, 141, 113, 131, 117, 130, 118, 134, 97, 133, 113, 137, 122, 115, 105, 124, 124, 120, 112, 138, 117, 135, 124, 131, 115, 123, 113, 132, 109, 124, 130, 136, 134, 140, 139, 144, 105, 129, 120, 115, 144, 143, 129, 159, 131, 132, 106, 140, 127, 128, 137, 109, 130, 120, 138, 119, 131, 132, 132, 127, 118, 132, 140, 141, 119, 144, 128, 129, 122, 125, 137, 124, 123, 139, 121, 135, 98, 110, 117, 120, 140, 122, 123, 123, 119, 115, 110, 112, 118, 122, 130, 124, 110, 134, 118, 129, 103, 128, 124, 133, 105, 118, 115, 113, 136, 146, 144, 149, 133, 122, 114, 120, 110, 143, 126, 139, 123, 114, 114, 125, 132, 130, 134, 118, 141, 125, 117, 130, 131, 132, 120, 128, 126, 130, 123, 140, 130, 120, 122, 128, 154, 124, 111, 129, 136, 127, 133, 115, 147, 114, 129, 127, 130, 123, 116, 127, 120, 134, 123, 118, 122, 122, 124, 115, 121, 136, 140, 117, 123, 117, 116, 122, 120, 149, 107, 127, 113, 117, 147, 115, 127, 116, 135, 132, 128, 123, 128, 134, 145, 128, 111, 128, 140, 122, 112, 123, 137, 115, 124, 131, 129, 128, 128, 126, 129, 123, 121, 114, 120, 123, 122, 109, 123, 129, 120, 112, 123, 128, 132, 130, 119, 128, 130, 130, 123, 123, 117, 116, 120, 136, 118, 114, 121, 138, 122, 136, 125, 137, 125, 138, 145, 126, 138, 122, 154, 135, 119, 122, 152, 138, 116, 111, 135, 126, 111, 118, 112, 139, 134, 115, 127, 129, 114, 120, 124, 116, 135, 125, 117, 121, 121, 126, 102, 138, 131, 146, 131, 119, 122, 118, 130, 120, 109, 111, 126, 121, 130, 118, 140, 116, 140, 120, 130, 134, 130, 127, 113, 124, 136, 118, 120, 129, 108, 136, 164, 120, 118, 123, 138, 115, 111, 135, 133, 112, 108, 139, 133, 130, 132, 135, 122, 123, 114, 116, 109, 121, 117, 131, 117, 124, 120, 117, 125, 119, 119, 119, 107, 134, 118, 136, 131, 132, 122, 116, 117, 121, 131, 136, 127, 118, 138, 136, 155, 95, 114, 116, 127, 109, 127, 143, 106, 108, 134, 115, 119, 123, 114, 128, 131, 126, 105, 107, 136, 128, 126, 118, 128, 131, 132, 122, 140, 136, 119, 145, 120, 128, 111, 109, 120, 118, 158, 128, 130, 142, 118, 112, 129, 114, 130, 120, 138, 114, 128, 122, 128, 148, 130, 115, 125, 134, 123, 133, 131, 108, 120, 125, 124, 118, 118, 134, 139, 123, 136, 122, 102, 121, 144, 129, 135, 129, 121, 137, 122, 128, 121, 122, 121, 139, 129, 120, 116, 128, 123, 130, 132, 137, 126, 126, 124, 118, 126, 121, 115, 118, 128, 134, 108, 124, 108, 142, 135, 131, 114, 132, 122, 116, 127, 119, 125, 124, 110, 118, 128, 120, 106, 122, 154, 117, 137, 112, 130, 132, 120, 128, 117, 124, 113, 119, 164, 124, 124, 124, 142, 143, 129, 124, 124, 126, 107, 139, 125, 119, 121, 115, 120, 128, 114, 130, 106, 130, 148, 114, 119, 134, 118, 125, 139, 113, 134, 138, 123, 138, 128, 125, 121, 140, 141, 142, 126, 126, 117, 120, 133, 134, 116, 129, 126, 130, 121, 112, 125, 139, 127, 115, 131, 107, 121, 107, 132, 116, 130, 128, 118, 142, 135, 138, 128, 118, 125, 127, 130, 146, 124, 142, 104, 119, 112, 121, 119, 130, 126, 114, 120, 110, 120, 126, 121, 164, 123, 128, 125, 127, 127, 114, 128, 116, 134, 124, 138, 116, 122, 116, 116, 116, 128, 115, 131, 125, 136, 122, 130, 116, 111, 118, 141, 127, 137, 126, 122, 115, 123, 126, 121, 117, 133, 130, 128, 126, 129, 126, 151, 120, 119, 119, 121, 129, 134, 133, 116, 117, 126, 132, 140, 134, 116, 127, 143, 123, 122, 128, 123, 122, 133, 120, 141, 119, 121, 131, 128, 135, 130, 128, 122, 133, 142, 127, 129, 129, 104, 128, 129, 118, 125, 122, 136, 117, 114, 125, 113, 124, 123, 113, 124, 129, 131, 132, 130, 121, 119, 125, 111, 111, 134, 124, 138, 118, 142, 121, 125, 115, 121, 122, 126, 103, 129, 121, 138, 124, 124, 121, 132, 119, 125, 118, 108, 128, 125, 111, 127, 125, 130, 125, 126, 132, 130, 125, 145, 132, 132, 119, 124, 118, 119, 141, 126, 135, 119, 115, 112, 129, 119, 129, 123, 138, 127, 121, 117, 126, 115, 126, 133, 133, 146, 108, 125, 149, 128, 108, 106, 135, 120, 130, 132, 109, 146, 125, 117, 125, 130, 128, 124, 114, 130, 130, 106, 121, 131, 122, 120, 128, 121, 115, 112, 134, 124, 116, 126, 116, 128, 106, 120, 110, 125, 125, 132, 132, 123, 138, 109, 131, 128, 102, 114, 125, 114, 124, 125, 120, 115, 133, 102, 128, 127, 150, 132, 129, 124, 130, 132, 116, 110, 120, 116, 125, 129, 137, 124, 122, 141, 139, 110, 122, 131, 137, 140, 129, 143, 134, 115, 127, 142, 133, 120, 131, 111, 113, 123, 128, 107, 121, 133, 114, 140, 101, 116, 116, 141, 121, 122, 109, 147, 106, 134, 142, 113, 128, 134, 115, 136, 141, 124, 139, 130, 128, 138, 126, 130, 128, 137, 157, 126, 141, 136, 117, 120, 137, 124, 136, 123, 125, 125, 113, 127, 129, 136, 127, 106, 130, 108, 133, 129, 116, 124, 137, 120, 120, 127, 128, 133, 112, 115, 118, 147, 129, 126, 120, 145, 139, 112, 119, 120, 124, 118, 124, 130, 125, 144, 128, 109, 133, 125, 120, 120, 133, 119, 113, 120, 128, 129, 138, 123, 117, 126, 129, 127, 109, 133, 112, 126, 132, 144, 150, 141, 118, 127, 122, 124, 145, 122, 128, 133, 111, 119, 129, 123, 115, 131, 123, 127, 129, 150, 120, 105, 127, 123, 145, 113, 119, 127, 126, 133, 127, 124, 113, 120, 124, 102, 126, 99, 116, 136, 127, 116, 140, 112, 129, 121, 123, 141, 127, 136, 120, 114, 109, 124, 106, 126, 117, 104, 131, 110, 139, 129, 122, 124, 134, 122, 121, 122, 133, 115, 142, 120, 123, 115, 123, 120, 133, 122, 120, 118, 140, 130, 134, 112, 136, 118, 125, 129, 93, 130, 104, 117, 125, 116, 114, 114, 129, 130, 128, 110, 121, 136, 125, 127, 119, 121, 127, 136, 109, 124, 129, 131, 130, 119, 119, 122, 127, 132, 121, 132, 116, 122, 145, 104, 128, 134, 102, 129, 127, 137, 143, 124, 131, 125, 137, 112, 116, 140, 131, 110, 123, 117, 99, 109, 121, 132, 120, 124, 130, 117, 133, 112, 121, 120, 120, 120, 140, 124, 118, 108, 120, 119, 116, 116, 128, 124, 128, 126, 124, 121, 119, 118, 131, 129, 108, 133, 126, 110, 110, 132, 112, 120, 120, 136, 126, 118, 112, 140, 143, 129, 145, 136, 138, 114, 122, 134, 137, 112, 115, 123, 123, 122, 122, 124, 126, 113, 149, 135, 136, 124, 122, 123, 135, 119, 125, 126, 114, 119, 122, 113, 123, 125, 117, 134, 132, 126, 121, 100, 124, 139, 115, 125, 119, 124, 128, 126, 140, 127, 134, 138, 144, 120, 119, 118, 122, 141, 112, 142, 116, 143, 113, 129, 119, 110, 108, 113, 135, 134, 117, 116, 131, 125, 125, 127, 139, 110, 120, 107, 127, 137, 117, 100, 142, 118, 112, 136, 140, 102, 141, 127, 120, 118, 112, 151, 118, 133, 126, 144, 132, 149, 120, 138, 124, 127, 117, 114, 106, 126, 118, 126, 119, 129, 127, 120, 115, 132, 132, 138, 122, 107, 126, 126, 122, 120, 134, 135, 101, 131, 118, 116, 121, 132, 111, 100, 127, 148, 124, 112, 136, 128, 120, 120, 147, 139, 120, 130, 145, 126, 116, 136, 129, 107, 133, 126, 142, 118, 113, 115, 117, 120, 138, 119, 112, 112, 118, 114, 114, 127, 114, 130, 109, 119, 123, 113, 127, 129, 117, 126, 129, 115, 126, 133, 137, 134, 107, 135, 137, 114, 111, 124, 124, 113, 107, 106, 124, 106, 126, 132, 103, 136, 128, 143, 118, 119, 114, 129, 130, 145, 105, 139, 125, 119, 148, 137, 125, 141, 120, 152, 118, 118, 125, 128, 117, 111, 121, 121, 125, 138, 135, 131, 137, 117, 144, 128, 126, 144, 133, 117, 131, 129, 132, 133, 135, 123, 129, 126, 124, 115, 122, 127, 106, 113, 105, 129, 113, 119, 112, 123, 145, 123, 127, 100, 115, 113, 122, 119, 116, 119, 126, 144, 117, 123, 132, 140, 143, 122, 113, 120, 123, 143, 113, 109, 112, 119, 117, 119, 124, 135, 117, 131, 101, 132, 107, 125, 129, 127, 121, 128, 110, 151, 149, 133, 123, 117, 119, 140, 114, 108, 129, 126, 114, 124, 119, 126, 125, 121, 115, 132, 115, 127, 117, 125, 133, 145, 129, 124, 137, 127, 121, 126, 132, 145, 132, 138, 125, 121, 147, 131, 117, 120, 149, 125, 128, 127, 127, 139, 120, 121, 136, 136, 130, 122, 135, 128, 108, 114, 111, 127, 132, 123, 121, 115, 118, 126, 123, 123, 132, 112, 138, 115, 126, 128, 127, 126, 131, 114, 119, 123, 125, 120, 122, 108, 146, 124, 121, 111, 121, 124, 119, 101, 146, 125, 113, 119, 133, 123, 131, 128, 122, 137, 123, 113, 120, 123, 96, 111, 113, 115, 134, 121, 136, 113, 130, 138, 131, 106, 130, 127, 132, 130, 125, 128, 112, 135, 113, 127, 121, 126, 122, 143, 130, 137, 114, 134, 124, 131, 128, 126, 128, 115, 134, 138, 127, 124, 113, 101, 132, 139, 129, 128, 126, 128, 119, 125, 103, 128, 132, 109, 114, 112, 140, 142, 131, 103, 125, 111, 142, 107, 135, 130, 114, 126, 128, 116, 136, 125, 124, 141, 124, 101, 125, 109, 126, 115, 130, 112, 120, 110, 119, 120, 117, 128, 127, 128, 125, 148, 144, 151, 135, 133, 120, 115, 115, 146, 120, 154, 130, 134, 118, 133, 118, 116, 132, 138, 135, 128, 119, 133, 125, 134, 115, 123, 118, 131, 123, 118, 122, 115, 132, 131, 114, 125, 120, 155, 127, 110, 120, 121, 111, 101, 118, 128, 126, 121, 114, 123, 145, 119, 121, 101, 117, 119, 123, 118, 118, 139, 131, 126, 121, 125, 131, 122, 164, 128, 117, 136, 124, 128, 118, 120, 109, 117, 95, 127, 99, 132, 121, 126, 113, 135, 125, 114, 136, 116, 133, 109, 112, 116, 123, 135, 142, 136, 114, 121, 138, 141, 139, 121, 132, 138, 137, 119, 120, 129, 119, 130, 126, 141, 111, 139, 115, 126, 130, 123, 113, 127, 132, 116, 122, 125, 133, 119, 99, 147, 115, 119, 113, 137, 144, 125, 137, 121, 129, 103, 104, 113, 126, 108, 116, 134, 133, 141, 126, 120, 105, 118, 135, 143, 128, 108, 119, 136, 127, 123, 123, 125, 118, 132, 113, 120, 131, 145, 124, 121, 123, 124, 132, 134, 125, 122, 114, 132, 122, 104, 137, 128, 126, 118, 122, 117, 138, 119, 132, 123, 120, 152, 142, 117, 143, 126, 123, 137, 127, 133, 131, 132, 136, 126, 95, 128, 123, 139, 120, 116, 124, 143, 112, 116, 136, 131, 117, 123, 132, 113, 96, 126, 150, 120, 111, 124, 126, 128, 127, 132, 122, 133, 143, 123, 125, 147, 129, 110, 144, 137, 129, 146, 132, 136, 125, 122, 129, 138, 114, 129, 111, 114, 102, 118, 126, 115, 114, 103, 140, 137, 134, 108, 115, 108, 133, 122, 138, 139, 125, 123, 127, 122, 104, 118, 127, 123, 131, 100, 124, 140, 132, 133, 149, 117, 131, 116, 133, 129, 138, 128, 145, 108, 132, 138, 120, 137, 124, 135, 132, 128, 112, 115, 140, 121, 116, 126, 111, 129, 137, 162, 116, 110, 126, 149, 138, 126, 139, 118, 113, 121, 130, 134, 127, 150, 127, 131, 137, 149, 118, 123, 121, 118, 111, 137, 118, 126, 123, 158, 128, 120, 124, 127, 136, 133, 131, 130, 127, 123, 112, 114, 118, 126, 132, 125, 134, 132, 108, 111, 130, 125, 125, 116, 106, 125, 111, 128, 122, 129, 134, 117, 136, 110, 125, 121, 123, 126, 128, 119, 135, 135, 137, 105, 111, 142, 111, 130, 110, 113, 128, 132, 120, 109, 119, 128, 113, 133, 137, 133, 133, 115, 125, 133, 134, 122, 117, 108, 123, 128, 134, 124, 116, 124, 145, 134, 135, 125, 130, 124, 119, 119, 112, 134, 136, 117, 147, 127, 111, 129, 125, 132, 116, 128, 135, 112, 110, 122, 109, 128, 129, 99, 111, 133, 115, 121, 139, 111, 108, 124, 121, 121, 133, 115, 132, 129, 127, 142, 119, 135, 144, 143, 123, 111, 130, 135, 123, 117, 127, 119, 125, 134, 116, 135, 134, 109, 158, 120, 121, 121, 126, 107, 110, 131, 123, 128, 122, 124, 142, 116, 110, 125, 123, 145, 123, 127, 117, 124, 113, 128, 105, 123, 149, 126, 104, 129, 126, 136, 132, 119, 110, 127, 130, 127, 125, 138, 138, 109, 109, 120, 128, 121, 131, 109, 140, 140, 134, 118, 147, 107, 135, 113, 132, 128, 115, 108, 119, 112, 134, 126, 119, 129, 130, 154, 124, 115, 144, 130, 116, 117, 125, 121, 142, 116, 145, 132, 145, 137, 121, 140, 108, 114, 121, 116, 138, 107, 117, 117, 133, 141, 114, 107, 117, 138, 125, 128, 130, 125, 119, 154, 131, 131, 128, 114, 142, 114, 95, 139, 117, 121, 124, 132, 130, 128, 107, 118, 123, 124, 129, 105, 116, 133, 136, 141, 138, 125, 118, 129, 132, 122, 134, 125, 136, 126, 121, 124, 115, 135, 131, 123, 142, 136, 122, 130, 128, 121, 122, 124, 120, 121, 109, 105, 127, 112, 125, 119, 132, 104, 120, 126, 125, 129, 127, 118, 123, 128, 124, 152, 135, 129, 123, 122, 121, 130, 122, 120, 111, 130, 118, 142, 123, 125, 136, 124, 119, 115, 102, 130, 108, 109, 123, 117, 133, 141, 114, 115, 121, 129, 123, 128, 143, 113, 135, 114, 131, 139, 110, 126, 137, 141, 120, 124, 142, 113, 110, 122, 131, 118, 116, 104, 138, 131, 130, 123, 130, 136, 129, 134, 116, 139, 112, 150, 131, 126, 141, 137, 115, 105, 110, 134, 122, 129, 139, 114, 113, 124, 135, 122, 120, 120, 142, 126, 102, 132, 123, 130, 117, 120, 143, 118, 148, 129, 137, 133, 133, 118, 138, 114, 133, 121, 119, 139, 112, 134, 131, 130, 136, 125, 132, 131, 140, 132, 129, 122, 115, 110, 129, 126, 124, 125, 126, 140, 134, 142, 123, 139, 134, 117, 123, 133, 113, 141, 134, 96, 116, 130, 109, 124, 100, 144, 126, 130, 120, 129, 133, 108, 113, 120, 117, 125, 103, 122, 139, 121, 107, 126, 140, 118, 132, 139, 122, 123, 127, 125, 134, 139, 127, 130, 117, 124, 139, 125, 117, 110, 107, 113, 147, 117, 129, 129, 139, 124, 109, 138, 129, 132, 108, 115, 132, 122, 130, 117, 128, 112, 126, 146, 126, 113, 128, 120, 145, 120, 138, 120, 126, 136, 127, 146, 141, 126, 122, 123, 133, 112, 112, 118, 146, 119, 126, 124, 132, 117, 134, 111, 133, 108, 106, 133, 131, 138, 131, 133, 132, 125, 112, 138, 133, 127, 122, 135, 133, 132, 123, 118, 137, 127, 102, 133, 135, 141, 134, 126, 131, 132, 111, 143, 130, 121, 109, 126, 146, 136, 109, 133, 121, 111, 129, 154, 108, 120, 137, 127, 127, 109, 116, 126, 144, 111, 131, 120, 120, 142, 117, 125, 130, 128, 104, 136, 142, 109, 123, 122, 105, 126, 124, 119, 128, 134, 132, 120, 133, 133, 118, 123, 116, 132, 120, 126, 119, 103, 115, 103, 121, 109, 115, 140, 135, 148, 103, 113, 118, 111, 127, 135, 137, 108, 116, 139, 129, 120, 126, 127, 133, 127, 120, 129, 131, 97, 109, 133, 124, 128, 122, 122, 123, 120, 125, 114, 130, 106, 125, 123, 111, 124, 137, 127, 135, 109, 109, 137, 113, 103, 122, 123, 119, 119, 131, 129, 116, 122, 119, 139, 125, 132, 140, 121, 119, 106, 122, 102, 125, 124, 131, 119, 141, 126, 133, 119, 128, 128, 132, 119, 128, 130, 120, 122, 119, 120, 111, 113, 104, 131, 148, 166, 124, 136, 109, 112, 129, 114, 123, 132, 140, 121, 130, 119, 106, 136, 128, 127, 117, 140, 130, 130, 106, 128, 112, 132, 131, 142, 127, 116, 124, 114, 127, 110, 104, 126, 125, 115, 123, 117, 110, 122, 127, 142, 120, 122, 124, 110, 137, 120, 129, 120, 133, 124, 127, 113, 107, 135, 123, 124, 137, 133, 132, 136, 106, 112, 129, 128, 97, 117, 119, 111, 109, 122, 130, 147, 129, 139, 117, 138, 119, 137, 124, 124, 118, 112, 144, 120, 110, 122, 129, 130, 134, 109, 127, 124, 138, 125, 122, 119, 118, 106, 140, 144, 125, 114, 107, 123, 124, 124, 122, 130, 123, 108, 144, 120, 117, 116, 129, 115, 115, 123, 119, 122, 123, 102, 114, 125, 133, 126, 126, 112, 118, 126, 139, 121, 122, 124, 118, 111, 125, 131, 121, 112, 136, 122, 107, 175, 141, 143, 125, 117, 124, 111, 106, 133, 116, 128, 119, 142, 118, 113, 123, 124, 118, 126, 110, 131, 118, 122, 131, 124, 133, 119, 143, 113, 115, 118, 112, 116, 119, 143, 132, 149, 112, 132, 129, 122, 140, 143, 140, 120, 119, 106, 128, 129, 137, 133, 129, 124, 131, 124, 135, 128, 118, 137, 112, 126, 123, 123, 113, 133, 129, 126, 127, 128, 121, 158, 125, 122, 116, 121, 113, 137, 122, 100, 139, 142, 127, 121, 121, 138, 105, 128, 131, 156, 147, 128, 112, 118, 123, 133, 126, 128, 117, 117, 123, 137, 117, 119, 117, 111, 127, 101, 121, 113, 125, 137, 136, 120, 168, 119, 129, 120, 117, 103, 123, 98, 138, 133, 121, 126, 133, 109, 115, 119, 131, 126, 140, 144, 129, 127, 135, 131, 135, 130, 115, 127, 114, 121, 119, 111, 133, 103, 132, 115, 135, 118, 116, 122, 126, 116, 100, 127, 103, 131, 127, 144, 114, 128, 126, 128, 122, 121, 111, 126, 133, 138, 135, 128, 127, 122, 121, 110, 127, 124, 118, 117, 133, 133, 97, 142, 120, 138, 123, 123, 111, 127, 129, 110, 126, 114, 123, 127, 124, 133, 104, 130, 122, 120, 130, 113, 101, 140, 123, 127, 117, 122, 137, 128, 126, 123, 114, 114, 110, 120, 138, 128, 130, 124, 121, 121, 133, 127, 112, 140, 119, 130, 114, 139, 133, 126, 133, 121, 120, 142, 124, 138, 121, 125, 121, 123, 117, 103, 113, 109, 113, 136, 136, 124, 110, 126, 115, 114, 123, 113, 137, 143, 130, 137, 119, 121, 130, 110, 141, 142, 142, 120, 126, 129, 144, 110, 130, 126, 122, 129, 136, 129, 136, 150, 124, 129, 132, 140, 94, 131, 136, 108, 130, 114, 125, 115, 118, 127, 117, 120, 129, 120, 117, 132, 121, 123, 114, 126, 116, 116, 133, 112, 111, 126, 119, 110, 130, 120, 134, 135, 129, 124, 113, 110, 125, 128, 116, 119, 120, 118, 127, 106, 125, 121, 134, 142, 129, 135, 119, 133, 117, 134, 122, 140, 142, 119, 119, 126, 133, 124, 117, 118, 121, 125, 121, 128, 121, 130, 139, 141, 119, 129, 135, 111, 131, 125, 121, 136, 131, 123, 129, 139, 130, 127, 134, 135, 131, 122, 141, 121, 139, 123, 125, 126, 126, 128, 128, 106, 120, 145, 127, 122, 123, 139, 125, 128, 113, 126, 129, 95, 126, 129, 125, 129, 114, 120, 131, 126, 131, 137, 120, 118, 129, 123, 121, 158, 125, 143, 123, 115, 104, 117, 128, 122, 120, 115, 123, 124, 143, 135, 131, 129, 124, 131, 131, 134, 124, 132, 123, 114, 121, 135, 136, 129, 130, 135, 130, 121, 124, 133, 139, 131, 122, 128, 115, 131, 111, 113, 135, 124, 136, 123, 125, 116, 119, 121, 128, 123, 135, 126, 113, 127, 117, 126, 125, 128, 126, 136, 123, 141, 131, 128, 111, 111, 118, 109, 124, 120, 127, 110, 120, 120, 122, 114, 140, 124, 117, 127, 141, 115, 122, 152, 130, 126, 121, 111, 115, 129, 120, 130, 131, 120, 112, 129, 99, 125, 124, 121, 137, 111, 132, 119, 127, 125, 132, 122, 140, 132, 135, 122, 146, 129, 103, 135, 125, 120, 123, 136, 131, 118, 138, 120, 133, 123, 130, 116, 128, 131, 131, 121, 119, 107, 121, 132, 119, 121, 131, 121, 134, 116, 133, 120, 115, 133, 125, 122, 115, 116, 121, 150, 128, 112, 107, 135, 132, 116, 119, 122, 121, 110, 134, 115, 129, 120, 132, 120, 137, 125, 131, 133, 119, 114, 122, 122, 132, 130, 125, 126, 117, 134, 118, 128, 121, 144, 119, 118, 129, 137, 125, 123, 148, 134, 129, 134, 115, 125, 124, 122, 125, 137, 116, 134, 119, 133, 128, 128, 126, 133, 122, 130, 113, 143, 118, 132, 104, 114, 106, 110, 121, 128, 118, 123, 136, 135, 119, 134, 144, 142, 121, 93, 127, 126, 121, 118, 131, 113, 131, 123, 126, 129, 126, 127, 99, 128, 118, 134, 121, 118, 112, 126, 125, 120, 120, 108, 117, 139, 129, 127, 119, 122, 113, 130, 130, 124, 123, 114, 126, 138, 132, 129, 122, 121, 147, 135, 131, 122, 104, 126, 135, 120, 133, 125, 122, 140, 116, 126, 137, 114, 129, 117, 123, 120, 124, 129, 123, 116, 111, 117, 128, 117, 128, 142, 132, 156, 149, 142, 139, 119, 121, 127, 122, 131, 122, 122, 124, 122, 124, 115, 130, 121, 129, 119, 137, 121, 138, 126, 122, 125, 146, 126, 108, 120, 120, 121, 133, 110, 131, 132, 119, 118, 136, 119, 131, 133, 121, 126, 125, 120, 110, 127, 131, 126, 121, 140, 118, 115, 111, 126, 131, 134, 128, 106, 116, 129, 115, 126, 140, 122, 131, 128, 124, 128, 135, 115, 136, 134, 126, 120, 118, 143, 121, 122, 124, 136, 132, 125, 118, 125, 129, 124, 126, 118, 111, 111, 114, 132, 124, 128, 129, 135, 138, 131, 118, 110, 122, 125, 116, 129, 126, 111, 110, 135, 115, 119, 119, 134, 98, 135, 139, 126, 135, 146, 143, 117, 100, 108, 127, 119, 126, 123, 131, 135, 122, 132, 129, 122, 123, 125, 116, 133, 121, 137, 149, 123, 119, 129, 113, 132, 129, 135, 132, 131, 130, 133, 129, 121, 119, 143, 110, 126, 130, 125, 126, 127, 130, 127, 137, 134, 131, 127, 115, 138, 117, 128, 125, 129, 118, 122, 128, 115, 111, 139, 133, 136, 139, 128, 116, 143, 130, 132, 114, 122, 131, 132, 119, 112, 139, 120, 113, 125, 136, 130, 114, 146, 114, 135, 119, 129, 115, 116, 101, 137, 96, 122, 124, 120, 150, 119, 139, 146, 149, 119, 113, 123, 134, 125, 125, 121, 125, 123, 118, 113, 131, 129, 143, 118, 114, 131, 151, 125, 126, 132, 114, 132, 122, 124, 130, 150, 130, 113, 119, 122, 122, 114, 136, 137, 111, 126, 111, 127, 128, 126, 120, 133, 123, 120, 121, 147, 118, 122, 100, 126, 102, 124, 126, 129, 119, 114, 125, 116, 130, 119, 122, 135, 133, 138, 113, 114, 124, 120, 105, 120, 130, 125, 134, 111, 117, 118, 124, 123, 142, 119, 141, 117, 118, 123, 123, 124, 113, 124, 137, 149, 120, 121, 118, 111, 119, 133, 122, 142, 130, 138, 130, 124, 122, 125, 121, 124, 129, 117, 143, 123, 111, 128, 128, 132, 123, 116, 122, 134, 119, 118, 129, 142, 122, 147, 128, 131, 131, 120, 129, 130, 138, 125, 138, 126, 142, 131, 131, 131, 136, 138, 122, 126, 107, 120, 141, 144, 127, 148, 127, 128, 124, 125, 124, 134, 126, 128, 126, 130, 103, 136, 121, 142, 110, 125, 121, 127, 127, 126, 130, 128, 135, 125, 151, 120, 110, 130, 134, 129, 148, 130, 124, 123, 117, 107, 139, 140, 126, 123, 133, 130, 117, 122, 103, 139, 137, 132, 113, 113, 129, 125, 140, 124, 137, 159, 100, 138, 116, 124, 123, 124, 135, 116, 124, 116, 123, 131, 134, 118, 124, 125, 119, 128, 136, 144, 127, 122, 137, 122, 128, 126, 98, 144, 117, 110, 119, 128, 133, 123, 126, 129, 108, 120, 121, 111, 133, 115, 130, 130, 140, 117, 119, 135, 122, 115, 113, 107, 153, 141, 102, 115, 136, 124, 117, 116, 131, 124, 128, 102, 144, 126, 126, 121, 115, 116, 128, 117, 133, 126, 123, 127, 125, 140, 114, 128, 105, 125, 132, 125, 120, 106, 130, 127, 141, 111, 117, 110, 135, 139, 100, 123, 123, 125, 137, 133, 113, 138, 124, 131, 127, 121, 135, 125, 129, 140, 113, 119, 117, 120, 128, 112, 120, 131, 116, 127, 123, 123, 116, 117, 130, 127, 123, 126, 136, 129, 107, 127, 128, 127, 112, 120, 128, 127, 131, 116, 123, 107, 128, 141, 126, 131, 133, 117, 135, 124, 108, 122, 129, 131, 123, 120, 117, 130, 132, 109, 125, 110, 101, 108, 140, 125, 110, 113, 105, 149, 120, 124, 140, 140, 129, 116, 125, 120, 130, 118, 134, 130, 135, 114, 133, 138, 137, 126, 101, 115, 123, 125, 128, 112, 123, 121, 121, 120, 139, 107, 133, 138, 123, 108, 124, 117, 132, 138, 130, 128, 139, 136, 107, 118, 137, 114, 121, 126, 120, 117, 134, 118, 135, 128, 111, 117, 119, 122, 128, 107, 119, 132, 132, 101, 129, 130, 130, 148, 135, 136, 128, 135, 135, 127, 122, 121, 137, 132, 116, 148, 111, 130, 115, 113, 138, 157, 120, 121, 109, 123, 120, 127, 125, 129, 117, 119, 136, 129, 128, 123, 122, 128, 127, 118, 122, 131, 116, 122, 126, 142, 111, 132, 112, 125, 135, 126, 132, 118, 129, 119, 116, 133, 104, 135, 111, 121, 127, 120, 127, 127, 135, 123, 131, 158, 113, 127, 135, 119, 117, 123, 119, 123, 124, 130, 127, 116, 127, 132, 130, 117, 119, 126, 123, 117, 112, 130, 114, 116, 116, 112, 131, 120, 138, 114, 136, 120, 137, 129, 129, 121, 116, 126, 125, 131, 113, 135, 145, 139, 126, 126, 155, 118, 116, 124, 134, 121, 135, 142, 124, 121, 111, 136, 122, 125, 125, 131, 131, 108, 119, 108, 134, 141, 150, 127, 144, 143, 135, 130, 131, 127, 124, 118, 125, 113, 125, 123, 117, 136, 111, 133, 124, 123, 113, 128, 140, 120, 123, 135, 140, 118, 118, 112, 135, 135, 148, 133, 117, 125, 119, 129, 137, 126, 129, 128, 135, 132, 121, 127, 135, 117, 134, 121, 129, 122, 115, 134, 120, 114, 136, 105, 137, 126, 115, 130, 130, 137, 110, 125, 124, 124, 130, 112, 140, 127, 117, 128, 118, 130, 102, 115, 129, 115, 129, 96, 131, 138, 144, 128, 115, 119, 117, 145, 133, 127, 121, 141, 137, 133, 125, 124, 120, 122, 125, 134, 116, 137, 141, 137, 120, 110, 123, 116, 125, 131, 119, 136, 123, 125, 122, 132, 136, 122, 133, 131, 141, 133, 116, 123, 130, 127, 97, 114, 120, 121, 125, 114, 129, 125, 124, 132, 118, 110, 122, 137, 109, 136, 131, 125, 116, 111, 137, 123, 123, 134, 144, 119, 128, 139, 130, 132, 116, 145, 120, 119, 120, 138, 131, 150, 134, 130, 125, 118, 134, 138, 125, 132, 120, 132, 131, 113, 118, 145, 134, 121, 107, 115, 123, 136, 133, 127, 111, 121, 153, 101, 140, 138, 120, 118, 120, 123, 130, 125, 129, 130, 118, 118, 109, 122, 146, 141, 123, 124, 122, 133, 115, 130, 110, 116, 143, 112, 124, 135, 145, 131, 124, 120, 122, 161, 117, 136, 136, 140, 109, 130, 132, 131, 154, 128, 138, 147, 142, 110, 136, 115, 104, 122, 96, 115, 130, 125, 139, 121, 138, 133, 127, 139, 138, 125, 131, 103, 107, 128, 139, 149, 140, 121, 128, 123, 138, 114, 125, 145, 116, 142, 154, 133, 144, 130, 127, 138, 114, 125, 141, 112, 136, 140, 143, 120, 121, 112, 132, 139, 104, 121, 119, 150, 132, 106, 125, 115, 134, 113, 102, 126, 108, 130, 135, 141, 134, 114, 124, 121, 138, 122, 114, 143, 147, 136, 131, 127, 113, 123, 116, 100, 109, 126, 138, 123, 116, 131, 143, 130, 113, 139, 138, 118, 112, 142, 131, 123, 123, 118, 129, 131, 113, 124, 132, 119, 127, 141, 123, 127, 128, 128, 146, 127, 118, 121, 122, 121, 121, 135, 137, 114, 122, 130, 156, 126, 137, 142, 113, 122, 137, 132, 127, 133, 118, 114, 130, 130, 139, 139, 156, 128, 167, 117, 136, 137, 138, 125, 152, 124, 141, 115, 123, 124, 124, 128, 140, 121, 127, 116, 119, 137, 128, 130, 116, 132, 116, 149, 128, 144, 117, 123, 123, 153, 117, 123, 130, 121, 138, 132, 134, 126, 137, 140, 133, 125, 109, 127, 121, 129, 103, 146, 128, 114, 138, 113, 115, 139, 128, 127, 124, 139, 121, 120, 135, 141, 125, 117, 127, 118, 128, 106, 124, 124, 119, 136, 109, 136, 116, 132, 120, 137, 119, 114, 116, 129, 132, 139, 131, 127, 121, 107, 128, 124, 113, 133, 145, 131, 132, 134, 127, 124, 120, 120, 143, 121, 153, 116, 115, 130, 129, 131, 105, 119, 141, 117, 126, 119, 110, 107, 127, 128, 156, 146, 123, 129, 156, 131, 129, 109, 115, 149, 121, 109, 147, 120, 133, 126, 121, 132, 139, 131, 124, 108, 119, 125, 114, 126, 112, 108, 133, 124, 129, 121, 127, 120, 125, 157, 138, 124, 114, 124, 126, 129, 129, 115, 136, 137, 122, 123, 106, 86, 118, 118, 117, 131, 124, 122, 120, 137, 140, 134, 136, 119, 131, 127, 119, 144, 106, 117, 131, 126, 128, 130, 128, 130, 126, 114, 124, 136, 134, 120, 133, 127, 112, 122, 128, 134, 129, 135, 133, 129, 125, 140, 115, 130, 123, 121, 142, 137, 126, 128, 123, 137, 123, 134, 140, 134, 136, 103, 98, 110, 126, 121, 120, 113, 139, 142, 127, 130, 118, 133, 128, 127, 119, 136, 141, 131, 126, 127, 123, 132, 133, 133, 134, 118, 123, 134, 147, 119, 138, 126, 126, 130, 121, 116, 125, 124, 131, 135, 117, 117, 130, 133, 137, 130, 108, 127, 130, 121, 128, 123, 130, 121, 141, 125, 122, 125, 116, 134, 143, 129, 129, 141, 136, 124, 151, 110, 126, 138, 131, 134, 110, 121, 141, 148, 139, 115, 124, 132, 127, 125, 136, 131, 124, 152, 126, 106, 112, 120, 118, 124, 123, 134, 134, 125, 129, 145, 104, 118, 126, 125, 125, 128, 123, 137, 114, 128, 127, 118, 124, 118, 131, 130, 117, 123, 117, 129, 124, 126, 121, 134, 138, 118, 131, 134, 129, 118, 130, 113, 130, 121, 141, 130, 128, 137, 134, 127, 105, 129, 127, 124, 115, 123, 140, 133, 134, 117, 130, 124, 125, 132, 111, 142, 117, 125, 103, 135, 119, 141, 113, 126, 126, 112, 114, 133, 139, 143, 137, 122, 118, 130, 126, 127, 118, 122, 109, 142, 122, 118, 137, 121, 128, 103, 118, 129, 118, 122, 106, 120, 141, 113, 132, 121, 117, 121, 137, 133, 127, 131, 114, 136, 127, 116, 137, 118, 131, 112, 125, 117, 133, 116, 119, 134, 124, 124, 135, 111, 122, 128, 126, 120, 116, 117, 128, 135, 120, 122, 115, 130, 125, 138, 131, 135, 123, 116, 129, 125, 127, 127, 130, 119, 131, 128, 137, 118, 110, 112, 129, 122, 118, 133, 131, 121, 134, 126, 119, 123, 105, 137, 120, 131, 115, 130, 123, 129, 124, 137, 122, 121, 119, 108, 128, 129, 122, 119, 124, 124, 122, 136, 127, 106, 119, 126, 146, 124, 141, 136, 127, 120, 128, 108, 126, 126, 115, 140, 116, 123, 136, 117, 133, 122, 120, 121, 121, 126, 150, 106, 110, 124, 124, 135, 119, 147, 117, 112, 128, 115, 154, 131, 133, 136, 137, 132, 134, 118, 119, 121, 140, 129, 133, 119, 120, 128, 127, 116, 136, 133, 137, 118, 123, 128, 131, 121, 121, 130, 132, 115, 141, 118, 133, 136, 128, 137, 143, 127, 115, 128, 131, 134, 112, 118, 123, 111, 114, 120, 129, 126, 121, 102, 121, 134, 106, 130, 125, 128, 141, 125, 112, 133, 122, 131, 115, 103, 130, 129, 106, 124, 127, 145, 147, 141, 111, 127, 130, 122, 139, 133, 127, 128, 125, 139, 118, 129, 118, 122, 135, 126, 118, 126, 148, 107, 117, 119, 125, 128, 132, 128, 131, 125, 115, 127, 126, 132, 114, 142, 122, 143, 115, 122, 130, 120, 119, 136, 117, 121, 118, 142, 130, 132, 125, 117, 105, 130, 133, 115, 121, 122, 123, 133, 127, 105, 96, 157, 121, 119, 108, 129, 131, 127, 124, 122, 120, 106, 112, 132, 106, 138, 113, 123, 138, 132, 118, 105, 114, 131, 144, 129, 129, 108, 119, 111, 113, 129, 105, 126, 111, 125, 113, 116, 112, 120, 143, 131, 139, 132, 120, 139, 129, 121, 117, 116, 116, 126, 123, 128, 132, 118, 126, 128, 125, 141, 127, 143, 116, 124, 119, 141, 127, 137, 119, 117, 134, 130, 137, 110, 132, 125, 122, 117, 131, 125, 128, 121, 129, 126, 118, 133, 121, 146, 117, 108, 130, 108, 117, 110, 136, 124, 135, 141, 128, 121, 125, 122, 135, 113, 136, 131, 112, 124, 124, 136, 134, 150, 134, 131, 127, 125, 128, 134, 125, 118, 127, 114, 130, 121, 132, 108, 131, 126, 140, 128, 109, 122, 122, 130, 127, 118, 135, 123, 119, 127, 120, 125, 130, 135, 137, 124, 128, 119, 123, 119, 117, 119, 128, 132, 123, 125, 140, 123, 125, 110, 120, 143, 114, 125, 120, 127, 135, 122, 129, 131, 133, 132, 126, 131, 137, 109, 109, 122, 133, 104, 129, 121, 134, 140, 124, 129, 131, 130, 119, 108, 135, 126, 127, 122, 118, 122, 124, 137, 122, 112, 121, 117, 134, 118, 119, 118, 126, 125, 120, 134, 124, 119, 124, 127, 135, 126, 121, 134, 143, 123, 131, 124, 133, 133, 122, 139, 146, 131, 143, 124, 115, 114, 123, 119, 134, 135, 144, 126, 145, 128, 138, 129, 117, 126, 125, 121, 133, 131, 115, 110, 135, 122, 128, 126, 118, 117, 125, 91, 133, 117, 108, 127, 121, 134, 131, 124, 127, 132, 136, 125, 109, 105, 119, 115, 104, 130, 117, 121, 130, 121, 126, 107, 111, 124, 129, 131, 115, 126, 147, 107, 125, 105, 115, 124, 140, 126, 122, 102, 120, 142, 113, 132, 136, 109, 119, 117, 117, 114, 127, 131, 108, 122, 106, 138, 135, 138, 117, 129, 134, 142, 104, 127, 129, 124, 123, 124, 119, 127, 111, 132, 136, 121, 121, 134, 111, 153, 117, 106, 128, 125, 132, 140, 128, 118, 109, 119, 116, 131, 138, 124, 117, 116, 129, 124, 121, 130, 146, 121, 131, 129, 122, 117, 137, 127, 132, 106, 127, 146, 121, 131, 121, 130, 101, 115, 109, 128, 133, 118, 129, 112, 113, 140, 120, 134, 111, 131, 135, 130, 112, 108, 122, 115, 124, 130, 123, 128, 128, 128, 134, 126, 117, 114, 141, 116, 123, 121, 126, 112, 115, 127, 106, 118, 115, 119, 132, 133, 103, 130, 104, 129, 112, 127, 136, 134, 137, 124, 135, 128, 136, 123, 129, 117, 119, 131, 102, 135, 128, 119, 129, 117, 123, 115, 134, 136, 124, 113, 135, 123, 130, 111, 120, 136, 122, 128, 121, 146, 133, 120, 138, 111, 125, 137, 109, 107, 126, 138, 130, 122, 117, 137, 129, 124, 124, 119, 112, 116, 111, 122, 123, 129, 112, 124, 125, 116, 117, 122, 132, 129, 111, 114, 132, 128, 117, 117, 120, 118, 114, 123, 126, 121, 116, 113, 112, 127, 131, 123, 128, 119, 132, 137, 141, 132, 119, 115, 123, 121, 128, 102, 123, 118, 114, 122, 126, 118, 130, 124, 132, 135, 115, 136, 141, 126, 106, 119, 128, 136, 130, 135, 129, 97, 108, 118, 134, 129, 125, 109, 113, 127, 122, 124, 127, 129, 123, 113, 144, 110, 121, 110, 121, 114, 137, 135, 116, 124, 119, 127, 132, 116, 133, 117, 119, 138, 127, 118, 102, 126, 146, 127, 130, 136, 124, 128, 119, 129, 134, 127, 133, 119, 137, 133, 117, 129, 128, 121, 113, 139, 142, 107, 139, 129, 133, 125, 123, 126, 132, 126, 119, 109, 114, 120, 118, 132, 125, 151, 142, 135, 127, 120, 123, 119, 120, 122, 126, 117, 131, 112, 111, 122, 127, 115, 131, 126, 133, 130, 116, 119, 134, 143, 138, 117, 130, 131, 126, 125, 132, 124, 139, 127, 120, 138, 109, 122, 137, 139, 138, 131, 117, 127, 114, 124, 125, 126, 132, 121, 122, 126, 134, 138, 120, 136, 101, 116, 115, 127, 131, 135, 147, 115, 114, 129, 122, 124, 136, 116, 108, 123, 107, 107, 145, 111, 128, 134, 120, 124, 98, 134, 112, 151, 130, 123, 140, 116, 120, 157, 126, 119, 116, 122, 128, 137, 114, 136, 123, 134, 127, 102, 125, 116, 123, 98, 135, 144, 119, 111, 109, 129, 119, 129, 135, 149, 114, 133, 139, 112, 137, 107, 137, 99, 114, 106, 134, 128, 116, 127, 115, 131, 122, 122, 125, 129, 87, 112, 121, 99, 114, 106, 106, 114, 132, 146, 125, 120, 120, 126, 122, 145, 132, 120, 124, 135, 135, 126, 119, 118, 117, 122, 130, 136, 123, 133, 125, 101, 117, 138, 131, 136, 140, 136, 138, 122, 134, 134, 115, 137, 127, 145, 126, 124, 142, 115, 91, 109, 138, 135, 111, 142, 147, 127, 126, 120, 115, 131, 120, 124, 128, 142, 119, 116, 123, 116, 114, 123, 118, 115, 105, 117, 148, 122, 132, 132, 114, 145, 125, 146, 135, 125, 128, 111, 129, 118, 120, 128, 130, 148, 130, 118, 126, 129, 137, 143, 145, 106, 120, 109, 105, 153, 130, 116, 129, 119, 117, 132, 134, 122, 119, 135, 118, 131, 118, 118, 122, 121, 138, 133, 123, 117, 148, 130, 126, 131, 141, 114, 119, 122, 137, 138, 114, 124, 119, 119, 131, 110, 112, 136, 118, 133, 128, 117, 139, 124, 118, 119, 142, 122, 137, 136, 121, 132, 102, 117, 137, 136, 127, 125, 134, 133, 133, 124, 143, 134, 120, 118, 120, 119, 127, 139, 127, 115, 133, 154, 127, 110, 127, 113, 134, 124, 117, 121, 125, 124, 125, 139, 121, 134, 124, 119, 121, 122, 128, 121, 123, 115, 127, 123, 122, 119, 121, 119, 134, 107, 132, 103, 108, 125, 114, 138, 118, 125, 115, 145, 128, 140, 120, 110, 118, 122, 96, 124, 132, 137, 110, 109, 130, 134, 133, 134, 127, 125, 121, 146, 148, 126, 145, 103, 142, 105, 116, 132, 116, 141, 132, 136, 152, 124, 148, 127, 103, 112, 121, 120, 121, 135, 134, 137, 100, 139, 122, 134, 136, 127, 117, 118, 117, 124, 117, 128, 137, 132, 136, 112, 132, 133, 109, 112, 130, 119, 141, 133, 131, 107, 116, 123, 123, 119, 120, 142, 125, 114, 118, 131, 133, 150, 139, 127, 127, 122, 141, 129, 114, 123, 128, 98, 114, 133, 124, 121, 104, 125, 115, 135, 144, 131, 110, 130, 101, 123, 124, 130, 104, 114, 134, 130, 107, 125, 138, 102, 116, 129, 111, 130, 127, 116, 122, 120, 123, 126, 145, 139, 120, 122, 104, 125, 119, 101, 121, 117, 130, 126, 150, 123, 118, 113, 128, 120, 117, 120, 134, 132, 122, 102, 117, 115, 118, 131, 139, 115, 138, 123, 125, 125, 109, 131, 116, 132, 108, 99, 121, 135, 122, 124, 124, 133, 105, 120, 122, 132, 115, 116, 129, 129, 125, 119, 134, 147, 111, 134, 139, 142, 125, 120, 141, 105, 131, 125, 129, 112, 110, 121, 128, 142, 110, 141, 142, 149, 122, 122, 122, 143, 126, 133, 124, 131, 120, 125, 123, 129, 130, 118, 120, 123, 132, 138, 125, 123, 148, 115, 133, 112, 127, 146, 125, 108, 114, 135, 127, 120, 107, 133, 139, 123, 134, 132, 131, 113, 115, 115, 128, 141, 123, 146, 128, 124, 123, 138, 134, 128, 115, 124, 124, 130, 106, 117, 150, 109, 134, 135, 111, 127, 141, 130, 101, 130, 121, 112, 120, 116, 110, 159, 140, 127, 143, 112, 123, 129, 139, 122, 120, 115, 130, 117, 107, 130, 121, 130, 126, 117, 118, 116, 120, 125, 130, 127, 121, 119, 128, 125, 149, 113, 121, 138, 132, 124, 132, 116, 124, 103, 120, 147, 148, 132, 134, 124, 123, 124, 121, 123, 120, 145, 110, 143, 126, 122, 124, 118, 106, 137, 127, 120, 117, 116, 118, 129, 164, 90, 135, 161, 118, 124, 116, 134, 107, 116, 123, 124, 115, 126, 126, 142, 130, 129, 115, 119, 142, 125, 126, 131, 109, 130, 138, 127, 116, 128, 133, 116, 126, 127, 130, 137, 142, 118, 119, 116, 129, 128, 136, 138, 132, 133, 139, 121, 125, 128, 112, 121, 134, 123, 127, 121, 119, 130, 119, 134, 125, 144, 121, 127, 126, 132, 136, 111, 140, 129, 131, 125, 146, 143, 115, 124, 110, 123, 131, 145, 136, 124, 112, 152, 120, 136, 109, 120, 121, 122, 115, 111, 114, 113, 133, 119, 136, 131, 119, 112, 131, 125, 123, 115, 120, 117, 141, 114, 118, 113, 145, 143, 106, 125, 127, 136, 120, 136, 106, 136, 130, 107, 133, 121, 113, 137, 134, 119, 132, 132, 123, 112, 108, 118, 125, 139, 131, 152, 133, 125, 133, 124, 122, 109, 130, 136, 125, 122, 118, 124, 125, 131, 121, 137, 134, 111, 124, 139, 125, 124, 133, 119, 125, 127, 145, 127, 113, 123, 131, 122, 127, 103, 123, 129, 126, 122, 114, 128, 111, 140, 106, 126, 121, 136, 134, 124, 121, 133, 127, 105, 124, 102, 129, 134, 119, 126, 129, 140, 114, 89, 155, 123, 136, 122, 134, 125, 121, 122, 139, 135, 143, 122, 142, 131, 127, 119, 129, 143, 115, 115, 93, 123, 142, 124, 121, 131, 118, 131, 133, 117, 139, 130, 150, 122, 125, 121, 138, 135, 138, 137, 127, 111, 113, 118, 106, 130, 111, 124, 129, 123, 115, 107, 125, 127, 127, 133, 112, 130, 104, 125, 162, 120, 135, 122, 122, 125, 111, 106, 112, 125, 144, 116, 126, 111, 137, 113, 151, 123, 137, 118, 128, 126, 118, 121, 115, 114, 127, 132, 140, 138, 113, 115, 104, 136, 112, 112, 129, 128, 131, 136, 129, 121, 118, 137, 123, 119, 117, 133, 113, 126, 124, 143, 151, 124, 115, 123, 120, 126, 115, 131, 126, 124, 108, 133, 134, 123, 133, 119, 122, 149, 126, 135, 114, 131, 134, 126, 127, 109, 153, 131, 110, 123, 141, 138, 131, 129, 96, 117, 106, 132, 134, 150, 135, 113, 144, 137, 122, 111, 131, 123, 111, 124, 126, 121, 107, 139, 141, 129, 130, 136, 123, 129, 133, 129, 129, 127, 131, 116, 142, 119, 119, 130, 126, 118, 123, 146, 117, 108, 135, 118, 104, 127, 121, 124, 125, 142, 136, 127, 112, 126, 128, 125, 129, 115, 134, 119, 116, 116, 124, 119, 143, 118, 127, 132, 127, 136, 135, 101, 128, 134, 113, 125, 126, 137, 118, 125, 127, 132, 126, 105, 118, 129, 123, 122, 121, 135, 137, 123, 137, 123, 128, 115, 122, 110, 131, 105, 108, 102, 132, 113, 130, 116, 103, 126, 121, 107, 135, 121, 111, 134, 121, 132, 108, 120, 140, 131, 116, 122, 115, 140, 132, 108, 113, 128, 113, 118, 122, 112, 120, 101, 116, 122, 128, 141, 137, 127, 124, 123, 130, 119, 125, 133, 122, 134, 125, 142, 125, 122, 139, 122, 126, 140, 125, 139, 114, 127, 140, 116, 133, 134, 124, 120, 147, 123, 127, 121, 131, 108, 120, 141, 123, 132, 119, 113, 113, 127, 115, 112, 114, 125, 117, 118, 120, 121, 142, 143, 121, 127, 132, 146, 121, 126, 134, 119, 127, 122, 122, 114, 122, 120, 128, 113, 115, 133, 121, 116, 121, 116, 156, 118, 133, 122, 119, 143, 134, 132, 132, 116, 128, 130, 118, 122, 121, 120, 136, 128, 129, 127, 126, 122, 140, 122, 122, 128, 117, 139, 133, 126, 110, 104, 132, 118, 120, 123, 130, 116, 129, 121, 129, 125, 109, 119, 146, 122, 133, 117, 121, 131, 123, 117, 105, 127, 111, 115, 137, 102, 113, 118, 126, 125, 134, 114, 126, 125, 112, 120, 125, 145, 151, 121, 126, 122, 122, 122, 127, 119, 131, 136, 128, 114, 125, 132, 129, 120, 127, 152, 133, 139, 124, 139, 127, 132, 124, 128, 125, 129, 135, 121, 131, 131, 132, 119, 131, 131, 118, 121, 116, 128, 134, 117, 120, 118, 109, 119, 131, 132, 127, 109, 131, 122, 128, 120, 119, 123, 130, 128, 113, 128, 126, 122, 133, 135, 137, 126, 123, 114, 158, 108, 124, 110, 130, 111, 123, 136, 122, 143, 114, 131, 132, 112, 127, 123, 127, 126, 107, 112, 111, 134, 131, 122, 121, 125, 125, 120, 120, 150, 125, 130, 117, 132, 130, 122, 134, 115, 111, 136, 118, 120, 123, 138, 138, 132, 128, 128, 125, 117, 119, 128, 121, 145, 106, 124, 130, 143, 129, 139, 119, 122, 122, 116, 131, 133, 129, 116, 119, 104, 138, 122, 129, 125, 133, 132, 121, 126, 130, 124, 116, 129, 118, 117, 133, 130, 111, 117, 109, 116, 128, 117, 116, 119, 136, 126, 132, 126, 136, 111, 141, 125, 129, 118, 147, 129, 139, 102, 120, 139, 133, 124, 132, 124, 121, 110, 126, 113, 123, 121, 120, 129, 119, 129, 126, 120, 126, 108, 132, 128, 112, 109, 143, 116, 110, 108, 120, 140, 144, 130, 135, 124, 124, 116, 120, 118, 117, 137, 132, 137, 133, 126, 139, 119, 117, 116, 113, 116, 121, 137, 119, 121, 102, 92, 122, 142, 119, 130, 125, 122, 123, 112, 108, 135, 114, 145, 112, 117, 119, 102, 125, 105, 134, 114, 146, 131, 125, 108, 125, 99, 119, 117, 127, 126, 126, 144, 126, 134, 132, 116, 131, 109, 122, 112, 125, 139, 128, 125, 130, 146, 122, 124, 129, 113, 134, 125, 135, 115, 125, 126, 98, 129, 126, 124, 149, 122, 138, 133, 143, 125, 115, 113, 108, 127, 129, 103, 127, 138, 124, 127, 110, 100, 146, 119, 125, 125, 119, 134, 116, 124, 118, 115, 139, 161, 110, 130, 129, 127, 143, 122, 127, 124, 121, 134, 127, 127, 147, 134, 125, 116, 116, 121, 128, 143, 128, 116, 137, 126, 102, 134, 144, 124, 132, 123, 121, 138, 132, 122, 124, 136, 124, 133, 140, 136, 122, 130, 119, 128, 116, 119, 113, 119, 125, 126, 128, 115, 126, 153, 124, 122, 117, 134, 115, 114, 127, 120, 117, 127, 126, 124, 108, 134, 119, 141, 115, 140, 132, 132, 125, 122, 122, 130, 130, 117, 134, 124, 124, 142, 126, 116, 150, 126, 124, 125, 127, 111, 129, 126, 129, 136, 125, 112, 126, 115, 124, 122, 114, 132, 132, 113, 116, 136, 122, 127, 118, 137, 137, 133, 135, 121, 131, 133, 132, 134, 131, 126, 143, 124, 143, 127, 124, 120, 111, 123, 134, 123, 111, 128, 135, 129, 138, 116, 119, 133, 111, 125, 128, 95, 130, 135, 127, 136, 116, 107, 139, 111, 112, 99, 131, 136, 133, 116, 106, 116, 118, 117, 116, 132, 122, 117, 124, 136, 123, 121, 129, 130, 111, 124, 115, 134, 117, 141, 129, 123, 128, 124, 124, 125, 125, 117, 140, 127, 119, 105, 122, 127, 123, 147, 133, 119, 144, 117, 124, 98, 120, 136, 120, 126, 125, 128, 130, 118, 120, 117, 132, 118, 110, 140, 128, 115, 140, 110, 123, 118, 133, 134, 119, 106, 115, 133, 142, 154, 138, 134, 111, 119, 120, 107, 131, 121, 126, 114, 118, 100, 116, 116, 133, 129, 132, 121, 105, 132, 114, 115, 123, 112, 117, 127, 123, 129, 128, 139, 126, 151, 131, 129, 120, 129, 120, 122, 100, 115, 124, 124, 117, 112, 122, 134, 135, 111, 129, 139, 107, 132, 130, 135, 120, 135, 134, 135, 125, 128, 119, 123, 134, 127, 129, 141, 130, 122, 119, 119, 131, 135, 119, 127, 119, 142, 139, 122, 109, 141, 135, 119, 122, 136, 111, 138, 143, 123, 124, 112, 144, 131, 138, 130, 127, 141, 124, 130, 114, 119, 120, 122, 108, 119, 118, 118, 138, 126, 109, 133, 125, 126, 108, 134, 119, 113, 130, 130, 112, 124, 125, 140, 120, 132, 134, 118, 129, 105, 127, 125, 123, 140, 121, 136, 127, 117, 129, 129, 117, 144, 117, 119, 121, 134, 119, 126, 142, 133, 120, 117, 114, 146, 132, 121, 129, 131, 116, 124, 143, 127, 127, 128, 141, 119, 121, 100, 124, 145, 127, 138, 137, 112, 129, 120, 130, 150, 147, 104, 131, 122, 151, 131, 130, 126, 132, 125, 120, 155, 146, 134, 128, 121, 131, 130, 123, 140, 129, 138, 117, 114, 120, 136, 115, 141, 116, 116, 112, 113, 115, 126, 132, 107, 125, 123, 133, 142, 123, 145, 126, 130, 126, 136, 127, 120, 129, 114, 122, 107, 130, 124, 118, 131, 128, 129, 117, 119, 117, 120, 121, 109, 119, 126, 125, 136, 113, 103, 112, 116, 119, 124, 145, 134, 109, 122, 125, 113, 119, 108, 129, 152, 124, 133, 124, 109, 116, 124, 140, 137, 108, 97, 118, 138, 118, 131, 124, 111, 119, 115, 130, 134, 122, 124, 108, 121, 131, 121, 144, 107, 124, 127, 141, 139, 138, 108, 111, 144, 130, 103, 152, 113, 122, 135, 113, 112, 132, 113, 127, 125, 112, 127, 122, 107, 133, 120, 108, 145, 123, 115, 120, 132, 130, 118, 121, 122, 119, 130, 132, 132, 121, 137, 117, 131, 113, 121, 117, 120, 113, 130, 116, 111, 153, 113, 110, 127, 117, 112, 120, 117, 121, 126, 119, 132, 118, 108, 122, 130, 118, 113, 129, 124, 112, 121, 138, 117, 146, 127, 144, 111, 116, 119, 137, 124, 130, 129, 111, 121, 125, 104, 132, 113, 137, 156, 124, 125, 123, 123, 133, 133, 128, 124, 121, 123, 113, 118, 131, 124, 119, 112, 128, 110, 124, 134, 123, 123, 136, 128, 132, 124, 122, 119, 113, 130, 122, 132, 137, 131, 108, 123, 112, 136, 133, 147, 131, 124, 136, 150, 147, 118, 122, 126, 136, 143, 132, 119, 135, 148, 137, 117, 119, 117, 127, 140, 118, 120, 121, 106, 109, 130, 125, 149, 119, 116, 151, 144, 115, 111, 131, 123, 112, 131, 134, 125, 119, 131, 125, 130, 120, 115, 136, 131, 124, 127, 124, 128, 110, 141, 128, 117, 122, 119, 142, 131, 126, 114, 124, 124, 111, 102, 127, 123, 152, 142, 124, 126, 126, 127, 143, 120, 111, 126, 122, 109, 143, 126, 118, 114, 111, 142, 113, 132, 125, 142, 120, 134, 138, 114, 140, 120, 111, 129, 124, 129, 117, 134, 132, 138, 122, 123, 120, 131, 127, 126, 122, 142, 132, 131, 112, 121, 133, 139, 146, 121, 121, 121, 118, 126, 120, 132, 118, 141, 138, 125, 119, 141, 103, 116, 129, 124, 119, 126, 122, 122, 136, 115, 134, 132, 128, 115, 122, 109, 126, 121, 100, 143, 114, 133, 145, 122, 129, 120, 149, 92, 110, 136, 129, 123, 130, 131, 123, 119, 135, 130, 137, 123, 106, 122, 113, 133, 108, 118, 132, 126, 138, 118, 139, 107, 119, 139, 98, 127, 132, 133, 115, 122, 130, 136, 121, 120, 133, 126, 130, 126, 118, 120, 113, 123, 134, 118, 112, 112, 141, 119, 135, 120, 121, 123, 142, 105, 136, 119, 116, 125, 130, 125, 137, 120, 121, 90, 126, 125, 126, 121, 128, 142, 122, 115, 132, 119, 129, 129, 113, 124, 112, 116, 125, 150, 137, 111, 129, 113, 121, 132, 121, 104, 115, 122, 123, 130, 113, 128, 126, 111, 112, 136, 101, 105, 134, 151, 134, 145, 121, 124, 105, 147, 127, 119, 138, 123, 125, 123, 136, 131, 138, 115, 130, 128, 138, 140, 121, 122, 134, 120, 131, 130, 107, 136, 136, 138, 123, 107, 145, 134, 131, 103, 127, 130, 121, 112, 124, 112, 132, 134, 112, 133, 114, 132, 121, 138, 106, 122, 143, 119, 139, 125, 109, 114, 145, 139, 139, 150, 122, 145, 117, 141, 124, 140, 137, 126, 136, 113, 134, 116, 103, 132, 109, 126, 135, 128, 123, 133, 140, 113, 136, 116, 141, 122, 123, 127, 118, 138, 121, 124, 134, 128, 105, 126, 132, 106, 118, 136, 119, 134, 136, 128, 120, 124, 110, 146, 126, 127, 124, 113, 128, 132, 127, 121, 120, 132, 127, 120, 115, 122, 126, 130, 129, 135, 121, 144, 137, 118, 126, 97, 114, 118, 133, 117, 138, 128, 122, 125, 129, 133, 102, 120, 112, 117, 120, 111, 127, 118, 116, 136, 126, 123, 140, 130, 113, 139, 137, 140, 124, 126, 97, 135, 119, 118, 118, 121, 126, 124, 133, 115, 121, 129, 130, 119, 129, 114, 133, 113, 121, 118, 115, 110, 106, 121, 119, 121, 112, 94, 109, 121, 134, 132, 116, 128, 131, 124, 120, 119, 105, 135, 114, 118, 107, 115, 123, 132, 134, 133, 124, 115, 121, 123, 123, 137, 118, 135, 154, 122, 108, 137, 117, 124, 131, 144, 142, 123, 130, 123, 126, 135, 131, 117, 143, 147, 113, 125, 117, 121, 129, 130, 118, 109, 125, 108, 130, 120, 135, 110, 124, 124, 156, 110, 122, 150, 135, 129, 119, 123, 104, 125, 118, 129, 138, 106, 115, 116, 130, 132, 115, 122, 100, 157, 123, 137, 117, 110, 113, 130, 153, 126, 122, 129, 122, 125, 127, 123, 130, 120, 139, 117, 127, 137, 124, 112, 109, 128, 138, 117, 126, 143, 132, 120, 130, 128, 119, 133, 128, 123, 123, 111, 123, 131, 145, 129, 143, 112, 141, 126, 135, 140, 133, 122, 140, 118, 103, 115, 130, 107, 131, 112, 137, 149, 139, 126, 135, 153, 142, 123, 115, 102, 109, 116, 110, 112, 130, 118, 124, 133, 129, 120, 119, 136, 103, 111, 118, 118, 126, 128, 135, 121, 120, 133, 125, 110, 126, 139, 109, 153, 139, 120, 127, 150, 129, 130, 128, 106, 127, 127, 117, 118, 138, 104, 132, 115, 127, 145, 139, 121, 118, 144, 135, 123, 136, 126, 133, 112, 111, 116, 139, 137, 124, 125, 120, 124, 120, 125, 118, 134, 121, 125, 141, 111, 122, 122, 110, 141, 138, 145, 125, 120, 137, 133, 122, 127, 131, 136, 138, 123, 110, 121, 124, 120, 117, 122, 142, 105, 133, 122, 106, 138, 102, 133, 139, 157, 109, 145, 136, 119, 121, 145, 125, 118, 125, 128, 135, 121, 122, 127, 105, 123, 121, 129, 107, 131, 129, 120, 115, 109, 121, 145, 119, 99, 134, 143, 127, 138, 124, 142, 136, 121, 141, 142, 118, 122, 129, 128, 126, 121, 128, 132, 123, 125, 123, 128, 115, 103, 110, 138, 108, 136, 128, 126, 120, 115, 117, 131, 123, 131, 131, 145, 133, 122, 139, 127, 140, 111, 116, 124, 138, 140, 133, 109, 131, 114, 136, 111, 125, 135, 126, 115, 130, 130, 108, 109, 130, 130, 122, 138, 116, 139, 121, 128, 118, 110, 113, 131, 118, 133, 123, 117, 136, 133, 134, 123, 112, 108, 117, 126, 119, 145, 103, 136, 127, 115, 141, 136, 125, 133, 121, 109, 138, 122, 131, 115, 115, 143, 123, 116, 123, 127, 117, 106, 112, 122, 129, 127, 117, 132, 107, 142, 103, 104, 128, 113, 119, 122, 125, 119, 132, 143, 128, 140, 139, 119, 114, 127, 119, 119, 120, 117, 133, 119, 126, 128, 119, 131, 131, 119, 142, 125, 120, 139, 135, 136, 120, 115, 116, 120, 128, 128, 132, 110, 137, 138, 120, 139, 114, 113, 138, 124, 112, 129, 128, 107, 123, 105, 112, 119, 123, 131, 143, 139, 136, 122, 117, 118, 128, 124, 136, 139, 125, 120, 139, 125, 120, 106, 109, 118, 122, 120, 125, 129, 137, 126, 123, 120, 123, 128, 126, 111, 134, 124, 117, 112, 128, 134, 120, 126, 141, 125, 101, 126, 126, 156, 146, 116, 125, 127, 135, 132, 127, 125, 116, 126, 115, 125, 131, 116, 130, 130, 116, 131, 133, 136, 108, 123, 112, 117, 124, 120, 128, 140, 113, 126, 122, 119, 131, 117, 126, 110, 123, 129, 120, 141, 116, 114, 121, 127, 115, 125, 145, 132, 137, 135, 150, 136, 114, 122, 116, 128, 121, 131, 133, 126, 133, 138, 137, 126, 103, 122, 120, 130, 119, 116, 134, 146, 115, 134, 133, 125, 114, 132, 127, 129, 118, 138, 131, 130, 120, 134, 139, 112, 126, 132, 104, 120, 125, 135, 137, 139, 117, 131, 132, 101, 92, 127, 116, 126, 138, 126, 127, 141, 120, 130, 114, 119, 118, 153, 129, 143, 105, 114, 127, 124, 116, 101, 122, 129, 126, 126, 123, 134, 130, 112, 109, 103, 129, 126, 125, 134, 118, 130, 128, 127, 122, 92, 123, 124, 139, 127, 132, 113, 113, 112, 125, 127, 119, 115, 121, 125, 120, 122, 139, 114, 129, 129, 126, 129, 132, 128, 130, 119, 131, 133, 123, 135, 121, 121, 124, 121, 122, 126, 123, 105, 116, 113, 133, 131, 130, 123, 125, 126, 135, 137, 129, 132, 124, 120, 131, 118, 114, 122, 127, 124, 119, 135, 119, 115, 128, 136, 134, 114, 114, 149, 138, 147, 129, 112, 150, 127, 110, 118, 137, 128, 135, 130, 128, 119, 125, 123, 121, 130, 122, 139, 118, 105, 118, 138, 128, 105, 125, 123, 112, 146, 136, 123, 120, 129, 121, 104, 106, 119, 119, 123, 128, 124, 112, 127, 116, 119, 128, 117, 127, 137, 126, 128, 130, 117, 132, 150, 121, 122, 115, 127, 119, 123, 126, 125, 124, 112, 133, 132, 119, 142, 135, 127, 132, 142, 122, 131, 122, 118, 135, 121, 118, 120, 121, 136, 131, 123, 143, 125, 128, 125, 133, 109, 126, 120, 119, 117, 132, 116, 117, 128, 121, 130, 100, 115, 128, 130, 118, 127, 143, 139, 127, 114, 129, 133, 120, 118, 117, 123, 132, 107, 129, 105, 145, 137, 126, 113, 117, 115, 115, 134, 122, 124, 106, 122, 114, 133, 133, 121, 137, 106, 152, 143, 120, 115, 129, 121, 120, 131, 134, 130, 118, 125, 134, 129, 113, 128, 115, 121, 130, 104, 135, 128, 113, 126, 122, 127, 132, 127, 121, 114, 134, 121, 128, 120, 120, 121, 125, 124, 118, 141, 116, 138, 130, 116, 118, 138, 132, 101, 127, 131, 121, 132, 143, 125, 105, 124, 123, 115, 121, 111, 122, 138, 120, 105, 124, 131, 119, 123, 116, 127, 101, 144, 122, 120, 138, 124, 104, 132, 131, 128, 122, 94, 145, 120, 126, 131, 133, 139, 135, 116, 130, 127, 118, 128, 135, 120, 114, 120, 124, 117, 118, 130, 136, 127, 121, 130, 135, 135, 124, 140, 119, 121, 118, 116, 127, 130, 130, 126, 138, 131, 131, 134, 122, 120, 118, 122, 126, 119, 128, 120, 118, 128, 130, 122, 145, 133, 118, 145, 123, 135, 128, 125, 122, 135, 127, 101, 133, 135, 125, 122, 142, 145, 135, 130, 121, 122, 137, 128, 129, 136, 129, 112, 113, 114, 126, 130, 111, 120, 119, 134, 128, 119, 139, 139, 125, 117, 133, 122, 113, 112, 133, 132, 123, 126, 119, 145, 142, 129, 127, 131, 117, 133, 115, 135, 110, 119, 139, 134, 114, 123, 120, 131, 121, 144, 122, 98, 130, 129, 110, 143, 122, 123, 139, 126, 125, 147, 133, 123, 119, 129, 117, 131, 121, 124, 126, 128, 127, 121, 127, 133, 142, 117, 132, 134, 126, 119, 134, 131, 131, 123, 101, 134, 128, 127, 145, 118, 112, 122, 132, 136, 115, 119, 125, 122, 127, 115, 123, 128, 118, 120, 115, 124, 112, 126, 134, 127, 137, 136, 134, 129, 116, 136, 139, 123, 133, 122, 125, 119, 127, 122, 156, 137, 122, 134, 118, 103, 126, 128, 114, 127, 126, 123, 142, 130, 133, 127, 116, 128, 114, 134, 122, 142, 125, 125, 114, 126, 127, 123, 124, 145, 126, 107, 138, 111, 123, 124, 99, 131, 107, 138, 135, 115, 147, 131, 122, 131, 121, 117, 111, 136, 126, 135, 109, 120, 118, 120, 125, 144, 116, 130, 106, 125, 126, 137, 135, 122, 115, 139, 130, 130, 128, 129, 125, 108, 125, 126, 118, 128, 124, 117, 131, 115, 113, 130, 128, 128, 125, 132, 124, 125, 110, 134, 142, 140, 124, 125, 121, 113, 131, 129, 138, 131, 127, 139, 144, 123, 127, 106, 131, 129, 111, 103, 135, 117, 115, 140, 142, 139, 114, 124, 119, 137, 126, 129, 123, 116, 125, 136, 117, 130, 106, 159, 122, 134, 128, 104, 128, 114, 136, 123, 125, 132, 127, 129, 125, 134, 115, 123, 136, 110, 137, 133, 118, 136, 123, 117, 125, 108, 132, 118, 114, 113, 139, 126, 124, 121, 127, 118, 116, 132, 138, 115, 135, 136, 130, 129, 137, 149, 140, 125, 107, 119, 133, 127, 112, 119, 105, 124, 115, 126, 135, 119, 134, 118, 135, 122, 133, 119, 112, 133, 125, 125, 113, 126, 125, 135, 148, 137, 121, 124, 123, 126, 143, 127, 123, 106, 142, 129, 135, 127, 109, 118, 127, 125, 132, 135, 146, 102, 151, 121, 103, 129, 113, 140, 110, 120, 122, 129, 124, 119, 116, 129, 139, 111, 107, 128, 106, 123, 125, 140, 108, 125, 116, 124, 128, 125, 135, 118, 124, 119, 132, 122, 127, 127, 129, 125, 137, 127, 112, 134, 127, 135, 121, 125, 125, 115, 117, 135, 132, 106, 117, 130, 117, 119, 120, 103, 127, 111, 142, 122, 119, 123, 123, 111, 118, 137, 133, 106, 122, 135, 136, 126, 122, 121, 130, 140, 117, 124, 120, 112, 133, 125, 148, 129, 130, 112, 118, 123, 138, 110, 117, 121, 116, 106, 126, 126, 132, 116, 117, 134, 127, 123, 133, 134, 122, 126, 123, 132, 123, 110, 129, 130, 122, 119, 111, 164, 118, 140, 126, 136, 115, 139, 124, 118, 124, 129, 124, 128, 104, 117, 134, 120, 123, 141, 126, 118, 96, 134, 130, 128, 141, 131, 120, 124, 124, 126, 102, 107, 105, 138, 137, 116, 120, 126, 126, 129, 108, 122, 142, 126, 117, 129, 135, 139, 135, 120, 156, 115, 111, 125, 125, 128, 128, 137, 117, 151, 136, 131, 117, 128, 135, 143, 127, 124, 137, 133, 136, 130, 133, 123, 120, 109, 114, 114, 133, 124, 134, 118, 122, 118, 123, 127, 116, 121, 111, 107, 113, 118, 130, 130, 119, 106, 124, 128, 111, 120, 136, 143, 128, 124, 129, 129, 131, 127, 112, 120, 111, 136, 117, 122, 126, 110, 123, 139, 130, 130, 138, 129, 119, 124, 115, 118, 131, 133, 122, 122, 121, 112, 124, 119, 142, 117, 132, 127, 131, 126, 129, 115, 141, 127, 111, 125, 127, 131, 111, 133, 146, 141, 116, 123, 140, 123, 137, 113, 125, 113, 126, 149, 118, 137, 122, 139, 114, 133, 151, 133, 126, 126, 130, 123, 125, 127, 150, 118, 120, 122, 123, 106, 122, 143, 123, 125, 105, 114, 128, 132, 135, 121, 126, 119, 126, 126, 129, 117, 118, 112, 127, 126, 123, 120, 105, 132, 103, 121, 111, 126, 146, 116, 132, 122, 135, 133, 120, 124, 105, 137, 114, 133, 132, 134, 135, 108, 109, 124, 121, 106, 127, 109, 131, 133, 146, 122, 144, 136, 119, 124, 129, 142, 127, 131, 110, 112, 134, 129, 136, 112, 121, 117, 131, 131, 132, 130, 121, 125, 115, 125, 126, 119, 111, 122, 127, 123, 138, 117, 112, 115, 138, 133, 137, 120, 128, 123, 114, 123, 135, 126, 136, 131, 135, 148, 115, 140, 138, 120, 125, 132, 126, 133, 132, 122, 119, 118, 122, 119, 133, 138, 124, 102, 140, 123, 126, 130, 139, 145, 133, 118, 117, 131, 139, 131, 108, 115, 124, 129, 120, 117, 119, 130, 128, 137, 133, 123, 124, 116, 105, 131, 125, 132, 131, 124, 138, 123, 127, 120, 119, 134, 125, 111, 138, 125, 135, 131, 105, 115, 126, 135, 99, 134, 129, 153, 127, 117, 136, 137, 125, 130, 128, 137, 146, 110, 110, 119, 115, 137, 132, 129, 114, 135, 134, 134, 136, 126, 127, 115, 132, 145, 124, 93, 117, 142, 128, 126, 124, 139, 128, 129, 119, 134, 146, 127, 122, 125, 121, 117, 126, 109, 129, 111, 119, 126, 132, 130, 115, 111, 104, 111, 130, 116, 116, 119, 134, 123, 133, 136, 118, 121, 123, 97, 146, 123, 111, 126, 127, 113, 123, 99, 154, 106, 126, 122, 115, 110, 148, 145, 115, 131, 135, 109, 113, 131, 119, 102, 117, 129, 133, 134, 126, 116, 113, 132, 116, 132, 131, 113, 126, 132, 131, 133, 118, 140, 128, 129, 149, 129, 113, 116, 131, 127, 119, 118, 127, 128, 135, 125, 139, 142, 137, 129, 113, 145, 143, 138, 109, 122, 124, 130, 126, 118, 138, 129, 119, 132, 118, 131, 131, 134, 122, 138, 120, 127, 159, 142, 118, 120, 105, 121, 108, 118, 123, 149, 136, 122, 119, 110, 136, 134, 122, 137, 142, 126, 133, 119, 122, 130, 129, 137, 120, 116, 127, 126, 134, 141, 130, 122, 129, 137, 139, 118, 128, 123, 118, 136, 123, 109, 132, 146, 132, 161, 129, 119, 112, 123, 128, 118, 130, 130, 120, 124, 150, 138, 120, 114, 123, 120, 108, 125, 124, 137, 133, 123, 99, 110, 123, 123, 146, 141, 125, 124, 127, 124, 131, 128, 123, 124, 122, 128, 135, 128, 128, 126, 140, 128, 120, 123, 125, 131, 120, 126, 119, 130, 132, 128, 112, 156, 127, 112, 117, 133, 137, 117, 141, 118, 116, 125, 113, 137, 132, 124, 128, 130, 110, 139, 133, 118, 125, 132, 114, 130, 119, 115, 108, 120, 127, 127, 133, 106, 124, 122, 135, 128, 134, 136, 122, 126, 126, 117, 128, 113, 121, 127, 125, 108, 114, 99, 122, 118, 129, 115, 127, 141, 120, 123, 132, 114, 132, 118, 124, 128, 121, 129, 125, 121, 134, 129, 123, 123, 124, 117, 119, 109, 139, 134, 115, 139, 115, 121, 108, 128, 133, 113, 107, 120, 113, 124, 142, 132, 120, 134, 131, 105, 120, 134, 113, 108, 139, 137, 143, 122, 127, 109, 140, 127, 131, 131, 106, 124, 127, 152, 143, 137, 106, 131, 153, 139, 126, 111, 133, 136, 117, 124, 130, 128, 125, 129, 115, 115, 118, 112, 130, 134, 156, 126, 134, 134, 134, 130, 141, 122, 106, 121, 125, 114, 124, 126, 125, 104, 140, 140, 127, 110, 112, 130, 130, 143, 137, 129, 121, 131, 148, 145, 123, 145, 116, 138, 123, 122, 132, 120, 128, 126, 125, 129, 124, 132, 119, 117, 139, 136, 122, 127, 127, 134, 131, 124, 121, 102, 130, 120, 108, 122, 113, 116, 138, 116, 125, 138, 126, 113, 119, 132, 128, 124, 121, 124, 119, 133, 115, 126, 127, 126, 117, 139, 110, 133, 140, 125, 124, 135, 111, 128, 113, 110, 134, 120, 135, 132, 123, 119, 111, 142, 116, 112, 145, 112, 121, 138, 140, 125, 119, 121, 120, 137, 136, 115, 132, 143, 124, 145, 116, 119, 126, 137, 121, 118, 146, 121, 125, 126, 124, 123, 125, 127, 136, 122, 151, 146, 124, 124, 120, 126, 143, 133, 117, 131, 133, 124, 128, 143, 120, 120, 130, 135, 124, 134, 118, 117, 103, 117, 140, 128, 118, 162, 126, 144, 150, 122, 121, 123, 139, 144, 125, 131, 134, 124, 110, 123, 140, 119, 112, 122, 142, 128, 134, 123, 151, 115, 138, 140, 128, 126, 121, 122, 124, 112, 121, 129, 140, 120, 116, 125, 112, 115, 132, 128, 118, 117, 131, 116, 123, 126, 115, 106, 113, 124, 140, 114, 130, 120, 117, 128, 134, 114, 125, 140, 127, 107, 118, 128, 127, 123, 120, 130, 118, 123, 149, 122, 122, 138, 121, 124, 118, 124, 137, 124, 123, 106, 123, 140, 132, 143, 116, 125, 136, 142, 117, 110, 143, 109, 122, 147, 141, 143, 117, 126, 143, 126, 104, 128, 129, 128, 130, 152, 117, 128, 117, 129, 144, 117, 123, 124, 121, 158, 120, 113, 122, 122, 104, 117, 110, 114, 108, 128, 123, 120, 92, 134, 117, 129, 160, 119, 129, 135, 106, 135, 112, 106, 125, 125, 103, 131, 132, 127, 126, 132, 124, 124, 106, 138, 121, 128, 133, 142, 119, 111, 118, 133, 129, 144, 107, 133, 128, 128, 126, 162, 119, 109, 132, 133, 133, 117, 95, 134, 132, 148, 134, 130, 139, 130, 121, 124, 145, 137, 113, 129, 133, 126, 108, 124, 131, 119, 120, 131, 140, 130, 127, 132, 138, 130, 118, 128, 141, 124, 130, 121, 127, 143, 127, 137, 112, 128, 126, 115, 120, 125, 125, 131, 122, 134, 118, 114, 120, 131, 115, 131, 118, 125, 121, 124, 134, 121, 133, 106, 115, 117, 125, 133, 139, 127, 106, 114, 119, 105, 133, 125, 156, 96, 120, 129, 130, 137, 122, 123, 125, 123, 127, 125, 117, 119, 130, 131, 125, 121, 134, 112, 123, 117, 130, 130, 124, 119, 134, 130, 115, 130, 116, 126, 129, 133, 123, 122, 121, 136, 115, 143, 118, 140, 124, 132, 128, 117, 108, 120, 123, 119, 116, 124, 138, 96, 117, 136, 113, 132, 130, 128, 123, 133, 125, 121, 124, 124, 130, 117, 135, 139, 123, 115, 128, 139, 117, 123, 129, 126, 126, 115, 128, 135, 99, 131, 115, 129, 132, 125, 132, 140, 118, 103, 121, 112, 131, 112, 131, 128, 131, 126, 133, 126, 137, 130, 115, 141, 130, 113, 119, 132, 126, 123, 146, 121, 128, 144, 132, 127, 131, 132, 113, 126, 120, 139, 103, 131, 121, 135, 130, 110, 120, 117, 124, 114, 133, 118, 118, 134, 102, 89, 132, 126, 123, 127, 107, 132, 135, 129, 110, 149, 120, 115, 123, 118, 128, 132, 124, 112, 139, 133, 118, 124, 109, 118, 119, 106, 117, 113, 113, 129, 135, 111, 125, 117, 136, 132, 134, 141, 119, 138, 134, 121, 127, 122, 127, 119, 132, 127, 122, 120, 130, 147, 140, 123, 124, 134, 142, 126, 134, 136, 139, 125, 116, 112, 115, 111, 133, 107, 113, 145, 129, 137, 114, 124, 133, 111, 113, 141, 134, 129, 131, 120, 110, 127, 125, 129, 114, 123, 119, 102, 116, 112, 145, 115, 131, 126, 121, 127, 123, 129, 155, 121, 119, 114, 114, 118, 136, 115, 133, 132, 109, 132, 122, 137, 123, 133, 110, 129, 114, 131, 132, 119, 121, 133, 130, 128, 116, 133, 115, 122, 136, 127, 131, 128, 146, 118, 112, 133, 118, 115, 130, 139, 134, 128, 122, 127, 119, 122, 128, 142, 120, 118, 127, 131, 135, 116, 127, 117, 122, 126, 119, 123, 114, 120, 145, 166, 115, 115, 119, 125, 140, 123, 125, 109, 133, 111, 133, 116, 132, 122, 143, 116, 127, 124, 121, 140, 116, 122, 131, 140, 130, 127, 135, 137, 124, 113, 137, 141, 120, 118, 135, 133, 135, 128, 124, 118, 131, 117, 112, 104, 103, 138, 131, 123, 121, 128, 122, 108, 133, 125, 130, 122, 126, 110, 80, 138, 128, 118, 133, 132, 132, 134, 134, 129, 118, 137, 120, 124, 123, 134, 138, 130, 124, 134, 142, 125, 116, 132, 119, 134, 133, 112, 120, 143, 104, 131, 113, 132, 144, 114, 133, 142, 110, 127, 145, 134, 100, 121, 130, 127, 136, 121, 126, 130, 108, 131, 118, 130, 108, 124, 119, 124, 125, 127, 110, 137, 131, 132, 120, 96, 127, 147, 125, 106, 114, 131, 116, 132, 133, 132, 132, 118, 129, 125, 147, 117, 113, 128, 131, 127, 129, 125, 127, 132, 125, 128, 140, 110, 152, 134, 137, 124, 121, 147, 133, 129, 129, 125, 115, 100, 127, 125, 132, 132, 130, 132, 145, 136, 124, 132, 128, 125, 126, 119, 118, 112, 122, 117, 112, 119, 123, 125, 127, 123, 141, 131, 128, 136, 129, 134, 113, 119, 134, 135, 114, 134, 148, 138, 107, 142, 121, 127, 130, 122, 127, 123, 131, 134, 133, 115, 115, 145, 127, 118, 123, 114, 136, 127, 112, 123, 139, 120, 131, 135, 110, 118, 125, 133, 123, 140, 151, 105, 133, 125, 127, 115, 129, 116, 113, 119, 105, 136, 133, 115, 132, 134, 141, 117, 122, 129, 113, 138, 142, 113, 139, 127, 130, 120, 132, 105, 132, 118, 130, 129, 110, 132, 129, 118, 121, 108, 127, 125, 103, 123, 136, 136, 138, 124, 117, 99, 115, 140, 137, 134, 111, 115, 135, 128, 111, 124, 120, 130, 128, 118, 111, 119, 127, 136, 148, 121, 114, 122, 125, 114, 106, 117, 126, 124, 114, 133, 139, 118, 108, 113, 130, 133, 139, 114, 120, 123, 122, 135, 125, 123, 134, 131, 125, 119, 137, 131, 128, 130, 119, 138, 130, 118, 128, 142, 113, 117, 131, 119, 132, 120, 132, 134, 126, 121, 113, 138, 126, 137, 128, 147, 134, 120, 129, 135, 139, 139, 126, 125, 109, 116, 136, 125, 110, 135, 141, 120, 131, 127, 146, 136, 111, 133, 111, 108, 128, 145, 132, 128, 133, 129, 124, 123, 141, 119, 123, 116, 132, 135, 101, 126, 135, 144, 122, 127, 120, 121, 131, 125, 114, 99, 118, 126, 132, 124, 130, 117, 135, 129, 118, 127, 135, 134, 133, 104, 129, 138, 120, 121, 135, 115, 134, 123, 128, 127, 144, 137, 124, 132, 116, 133, 114, 138, 129, 131, 134, 125, 106, 113, 118, 108, 129, 130, 150, 123, 128, 125, 113, 132, 134, 126, 123, 139, 114, 132, 127, 139, 118, 151, 127, 144, 129, 114, 118, 140, 142, 123, 110, 114, 122, 118, 118, 129, 114, 124, 131, 136, 128, 124, 137, 144, 130, 134, 111, 127, 122, 126, 130, 105, 121, 136, 148, 114, 118, 132, 122, 146, 131, 123, 118, 112, 123, 126, 109, 134, 135, 118, 106, 113, 109, 124, 130, 138, 102, 134, 122, 131, 120, 120, 121, 130, 110, 140, 96, 131, 129, 117, 102, 121, 128, 137, 138, 118, 133, 118, 126, 110, 118, 115, 123, 125, 135, 117, 120, 133, 124, 123, 126, 129, 108, 120, 129, 138, 122, 125, 121, 128, 127, 137, 121, 118, 113, 121, 105, 132, 128, 128, 138, 133, 119, 138, 115, 141, 126, 112, 131, 115, 122, 107, 130, 121, 149, 107, 134, 115, 131, 125, 136, 136, 114, 143, 125, 117, 125, 108, 118, 131, 118, 109, 136, 150, 120, 120, 110, 102, 128, 116, 133, 133, 113, 131, 130, 134, 133, 134, 119, 115, 116, 129, 110, 122, 132, 114, 127, 121, 127, 146, 111, 112, 125, 140, 124, 130, 135, 128, 132, 118, 149, 131, 109, 119, 127, 141, 117, 102, 141, 141, 144, 132, 135, 124, 133, 115, 126, 117, 126, 108, 129, 120, 132, 133, 127, 125, 137, 123, 127, 138, 142, 114, 130, 142, 121, 119, 125, 131, 123, 137, 120, 126, 146, 124, 125, 126, 129, 151, 155, 129, 124, 119, 140, 129, 131, 129, 119, 132, 135, 123, 133, 116, 124, 121, 131, 109, 112, 125, 127, 129, 123, 143, 132, 115, 129, 142, 135, 129, 121, 121, 111, 136, 124, 123, 133, 121, 133, 122, 128, 133, 127, 117, 137, 130, 120, 132, 106, 118, 122, 119, 127, 123, 130, 121, 114, 123, 117, 134, 125, 129, 130, 127, 126, 111, 137, 132, 111, 126, 122, 114, 118, 100, 119, 128, 121, 114, 119, 140, 127, 119, 132, 107, 105, 128, 133, 136, 119, 132, 126, 123, 128, 126, 143, 125, 129, 143, 124, 139, 110, 125, 123, 145, 126, 127, 119, 128, 128, 134, 122, 125, 125, 125, 135, 134, 122, 129, 113, 116, 103, 125, 122, 135, 129, 131, 112, 122, 137, 124, 114, 117, 129, 114, 119, 131, 133, 123, 139, 119, 129, 118, 119, 123, 121, 125, 121, 112, 155, 120, 144, 134, 115, 127, 124, 110, 107, 123, 138, 129, 102, 129, 124, 121, 133, 115, 142, 114, 120, 145, 129, 114, 125, 138, 117, 124, 145, 139, 120, 137, 128, 117, 128, 114, 122, 120, 132, 123, 128, 112, 117, 135, 133, 134, 106, 137, 131, 117, 119, 116, 103, 120, 117, 104, 119, 125, 133, 122, 129, 102, 121, 127, 131, 138, 132, 135, 137, 126, 135, 127, 132, 130, 107, 114, 105, 102, 125, 127, 107, 126, 117, 105, 134, 123, 103, 119, 134, 137, 130, 128, 113, 132, 132, 128, 131, 118, 127, 120, 128, 137, 104, 123, 132, 134, 131, 121, 140, 114, 114, 125, 121, 141, 129, 134, 108, 126, 129, 115, 121, 121, 126, 138, 125, 133, 142, 118, 126, 134, 141, 126, 120, 129, 111, 105, 128, 138, 131, 130, 105, 133, 133, 135, 128, 129, 158, 114, 133, 121, 113, 102, 124, 112, 135, 128, 103, 127, 126, 133, 129, 118, 118, 127, 130, 117, 122, 124, 142, 113, 120, 138, 118, 133, 106, 113, 126, 123, 132, 135, 137, 155, 90, 132, 129, 133, 117, 137, 129, 113, 140, 129, 115, 128, 112, 114, 139, 110, 131, 124, 132, 121, 121, 138, 130, 134, 125, 147, 115, 141, 128, 129, 137, 105, 125, 120, 127, 135, 135, 119, 121, 136, 132, 121, 116, 133, 112, 104, 131, 120, 115, 125, 145, 120, 133, 140, 128, 112, 103, 129, 136, 121, 111, 113, 122, 120, 120, 141, 118, 136, 123, 120, 123, 134, 117, 118, 120, 124, 111, 130, 113, 134, 102, 105, 108, 108, 134, 132, 126, 118, 127, 132, 160, 111, 111, 127, 134, 131, 133, 138, 124, 137, 120, 134, 128, 135, 127, 128, 137, 116, 111, 124, 115, 135, 141, 126, 119, 114, 117, 137, 134, 129, 113, 126, 112, 115, 129, 140, 132, 118, 113, 118, 111, 129, 130, 118, 105, 123, 125, 126, 116, 139, 107, 129, 120, 132, 123, 136, 153, 127, 139, 115, 131, 122, 134, 118, 121, 124, 124, 128, 136, 129, 130, 125, 127, 135, 155, 115, 134, 126, 146, 132, 122, 122, 116, 108, 130, 121, 131, 137, 123, 130, 117, 121, 119, 124, 122, 147, 140, 141, 116, 131, 118, 112, 128, 140, 124, 124, 131, 127, 144, 120, 125, 122, 132, 139, 135, 126, 124, 120, 122, 112, 111, 124, 137, 114, 133, 144, 123, 122, 143, 129, 124, 123, 132, 119, 120, 118, 130, 122, 131, 119, 132, 123, 137, 120, 128, 115, 104, 136, 119, 118, 125, 114, 138, 133, 124, 127, 136, 107, 134, 130, 110, 114, 119, 127, 126, 134, 135, 129, 120, 136, 120, 117, 130, 145, 108, 131, 136, 124, 130, 124, 108, 145, 129, 120, 128, 111, 111, 128, 131, 120, 148, 129, 148, 133, 143, 117, 121, 122, 144, 116, 110, 126, 121, 130, 130, 149, 132, 132, 159, 126, 119, 131, 129, 126, 120, 109, 123, 126, 129, 110, 121, 121, 121, 131, 132, 122, 135, 117, 117, 122, 132, 122, 124, 134, 121, 129, 132, 128, 117, 119, 114, 130, 114, 126, 111, 121, 136, 117, 127, 160, 118, 118, 110, 102, 125, 130, 123, 123, 126, 119, 117, 124, 113, 119, 131, 112, 99, 130, 122, 113, 125, 123, 140, 149, 110, 123, 122, 130, 143, 145, 130, 126, 108, 132, 130, 114, 100, 126, 122, 129, 135, 118, 168, 132, 110, 119, 121, 140, 136, 123, 117, 131, 127, 122, 139, 113, 110, 129, 150, 138, 115, 127, 107, 134, 116, 127, 128, 139, 122, 135, 131, 134, 145, 129, 122, 116, 110, 118, 136, 125, 107, 118, 110, 136, 125, 112, 129, 131, 117, 124, 154, 110, 94, 116, 122, 136, 110, 119, 127, 138, 128, 123, 128, 129, 131, 118, 131, 134, 121, 120, 128, 130, 119, 133, 118, 118, 129, 104, 139, 118, 127, 122, 112, 131, 129, 114, 123, 115, 134, 131, 128, 115, 121, 118, 121, 122, 126, 116, 123, 147, 124, 108, 119, 140, 113, 123, 122, 131, 120, 130, 119, 133, 149, 128, 117, 128, 123, 108, 137, 117, 120, 133, 125, 110, 122, 124, 133, 129, 129, 130, 128, 124, 122, 127, 123, 140, 113, 117, 117, 118, 123, 130, 131, 124, 111, 128, 117, 123, 120, 135, 127, 124, 111, 122, 126, 131, 120, 112, 118, 116, 127, 110, 122, 128, 100, 112, 129, 119, 119, 119, 134, 118, 130, 108, 137, 113, 125, 119, 117, 129, 123, 106, 130, 135, 109, 119, 127, 132, 118, 122, 134, 139, 129, 136, 113, 121, 121, 109, 131, 121, 124, 123, 132, 113, 135, 124, 118, 123, 144, 119, 112, 120, 121, 129, 129, 121, 113, 135, 133, 110, 150, 132, 118, 129, 129, 119, 131, 128, 121, 126, 120, 131, 138, 112, 131, 120, 116, 110, 129, 118, 151, 101, 121, 139, 117, 121, 134, 124, 106, 115, 136, 141, 164, 124, 129, 134, 128, 131, 147, 106, 124, 138, 130, 120, 138, 129, 123, 115, 121, 135, 132, 123, 128, 86, 121, 122, 128, 126, 127, 136, 117, 132, 112, 131, 120, 116, 123, 114, 128, 125, 132, 124, 118, 134, 112, 116, 133, 126, 133, 121, 130, 115, 126, 114, 124, 128, 127, 121, 120, 122, 123, 128, 122, 150, 116, 126, 142, 120, 128, 133, 135, 143, 122, 122, 124, 159, 128, 129, 118, 121, 126, 128, 115, 126, 115, 119, 127, 129, 125, 135, 109, 134, 139, 111, 127, 112, 121, 121, 115, 123, 123, 121, 131, 127, 129, 108, 124, 130, 107, 124, 133, 120, 120, 113, 127, 131, 132, 115, 134, 124, 132, 129, 122, 124, 128, 114, 125, 141, 130, 122, 111, 131, 117, 130, 121, 128, 115, 130, 125, 112, 120, 127, 151, 134, 110, 128, 106, 140, 126, 129, 113, 144, 136, 124, 133, 126, 131, 135, 124, 118, 130, 122, 131, 138, 127, 117, 120, 127, 121, 133, 121, 140, 102, 135, 123, 116, 126, 121, 129, 122, 140, 126, 136, 142, 132, 121, 124, 142, 126, 114, 130, 126, 107, 137, 141, 124, 129, 142, 104, 109, 124, 105, 138, 125, 127, 119, 140, 132, 128, 123, 137, 136, 109, 130, 127, 104, 135, 130, 110, 135, 117, 123, 114, 132, 134, 135, 125, 129, 136, 117, 129, 120, 119, 140, 122, 128, 130, 131, 135, 119, 122, 125, 123, 137, 128, 110, 131, 146, 128, 143, 137, 114, 111, 119, 131, 128, 120, 128, 126, 117, 130, 119, 134, 131, 121, 124, 124, 135, 110, 112, 157, 121, 127, 111, 120, 122, 114, 144, 130, 135, 111, 139, 139, 119, 121, 120, 143, 130, 127, 104, 127, 126, 128, 126, 116, 127, 137, 123, 122, 117, 119, 120, 106, 113, 130, 122, 139, 131, 132, 120, 128, 133, 142, 116, 151, 123, 141, 118, 118, 124, 143, 121, 136, 117, 125, 120, 121, 116, 135, 130, 132, 141, 119, 136, 122, 133, 120, 127, 132, 125, 136, 113, 118, 126, 119, 126, 128, 122, 138, 130, 149, 122, 134, 120, 115, 93, 107, 124, 133, 125, 129, 117, 134, 132, 134, 109, 113, 118, 114, 128, 131, 131, 123, 130, 114, 124, 109, 118, 140, 120, 121, 120, 122, 118, 126, 139, 114, 125, 105, 114, 117, 120, 127, 115, 153, 133, 148, 114, 130, 134, 121, 122, 113, 111, 139, 132, 131, 106, 146, 127, 127, 132, 120, 152, 132, 154, 118, 127, 111, 139, 128, 126, 118, 110, 113, 120, 127, 126, 128, 111, 126, 136, 122, 114, 156, 143, 146, 118, 123, 114, 122, 117, 127, 119, 128, 145, 134, 108, 145, 145, 117, 119, 133, 124, 107, 148, 122, 140, 123, 133, 125, 120, 123, 127, 121, 135, 124, 122, 137, 129, 118, 119, 133, 141, 121, 143, 132, 122, 119, 133, 132, 112, 103, 129, 143, 138, 138, 119, 133, 125, 107, 141, 123, 125, 121, 119, 117, 125, 126, 124, 148, 111, 129, 131, 110, 120, 144, 107, 132, 136, 94, 129, 115, 139, 124, 118, 111, 134, 126, 118, 115, 115, 130, 123, 113, 124, 130, 131, 132, 136, 148, 111, 124, 135, 117, 96, 130, 116, 131, 134, 121, 128, 129, 136, 125, 122, 129, 126, 130, 121, 137, 143, 124, 127, 116, 116, 127, 139, 128, 143, 117, 123, 137, 129, 114, 129, 122, 132, 113, 133, 131, 107, 123, 157, 129, 123, 136, 131, 116, 129, 131, 109, 142, 113, 137, 136, 119, 139, 123, 133, 131, 116, 141, 127, 126, 131, 122, 121, 125, 128, 121, 120, 132, 113, 119, 134, 119, 118, 129, 131, 121, 119, 108, 120, 121, 115, 124, 130, 126, 107, 127, 110, 123, 128, 118, 115, 133, 120, 117, 123, 133, 131, 122, 136, 117, 125, 134, 130, 138, 121, 134, 130, 116, 129, 127, 121, 127, 106, 125, 110, 125, 124, 129, 130, 126, 136, 127, 127, 121, 137, 109, 127, 122, 115, 124, 151, 133, 131, 106, 113, 122, 118, 118, 131, 121, 143, 130, 128, 117, 135, 124, 131, 125, 122, 125, 125, 123, 108, 101, 123, 139, 128, 142, 131, 140, 128, 127, 131, 124, 127, 123, 132, 129, 140, 115, 122, 131, 115, 122, 118, 120, 119, 122, 133, 139, 126, 121, 115, 130, 143, 119, 121, 109, 121, 126, 139, 111, 122, 128, 100, 102, 127, 118, 122, 126, 138, 133, 125, 119, 104, 125, 125, 127, 137, 116, 123, 117, 119, 114, 139, 113, 139, 133, 140, 114, 121, 143, 113, 131, 123, 132, 125, 122, 121, 134, 122, 99, 130, 126, 134, 127, 129, 144, 127, 135, 119, 120, 127, 121, 137, 119, 111, 126, 122, 122, 108, 136, 122, 109, 128, 113, 132, 117, 135, 109, 141, 118, 148, 124, 126, 119, 111, 134, 109, 140, 118, 141, 128, 132, 129, 99, 136, 128, 133, 112, 138, 115, 141, 116, 121, 116, 125, 134, 144, 147, 142, 103, 117, 140, 146, 151, 125, 119, 125, 115, 129, 128, 120, 112, 132, 106, 112, 137, 143, 137, 131, 128, 138, 128, 124, 152, 115, 115, 132, 131, 104, 134, 114, 115, 124, 122, 126, 138, 105, 148, 144, 111, 137, 148, 123, 117, 139, 141, 125, 138, 128, 119, 118, 122, 118, 115, 133, 124, 124, 125, 131, 124, 128, 114, 126, 123, 130, 117, 118, 148, 144, 120, 136, 124, 131, 135, 105, 133, 127, 130, 103, 118, 134, 132, 139, 124, 115, 133, 119, 137, 128, 135, 117, 125, 129, 134, 124, 123, 119, 127, 138, 118, 120, 129, 131, 129, 131, 118, 129, 118, 109, 126, 129, 129, 133, 132, 118, 114, 116, 140, 129, 122, 125, 116, 128, 145, 137, 95, 116, 133, 109, 130, 118, 116, 131, 135, 128, 130, 136, 136, 130, 117, 129, 113, 109, 115, 126, 116, 124, 124, 127, 125, 124, 124, 109, 115, 112, 119, 126, 119, 136, 107, 99, 121, 125, 112, 135, 106, 128, 139, 114, 119, 127, 130, 115, 134, 143, 107, 124, 116, 128, 117, 119, 124, 130, 137, 134, 104, 123, 123, 125, 116, 119, 117, 135, 135, 136, 140, 124, 124, 124, 116, 118, 120, 135, 132, 120, 118, 115, 120, 132, 114, 117, 125, 133, 127, 129, 134, 137, 144, 127, 128, 118, 111, 123, 141, 128, 142, 119, 123, 142, 128, 118, 125, 128, 138, 137, 136, 131, 117, 137, 125, 132, 118, 112, 122, 115, 127, 126, 135, 107, 151, 122, 138, 114, 129, 119, 127, 133, 128, 127, 114, 121, 135, 114, 127, 119, 145, 126, 126, 123, 152, 111, 128, 127, 132, 111, 115, 137, 129, 103, 144, 126, 124, 131, 121, 134, 136, 114, 118, 117, 126, 118, 128, 129, 114, 112, 131, 130, 120, 120, 118, 126, 118, 136, 121, 118, 118, 124, 120, 142, 106, 131, 141, 128, 127, 99, 116, 131, 130, 130, 115, 135, 131, 106, 119, 133, 143, 127, 124, 125, 109, 112, 130, 114, 127, 117, 139, 123, 110, 123, 132, 114, 116, 127, 125, 124, 138, 129, 128, 124, 132, 123, 127, 122, 106, 121, 121, 133, 108, 143, 124, 133, 129, 128, 132, 137, 126, 135, 128, 127, 117, 122, 130, 122, 122, 113, 116, 124, 119, 127, 119, 135, 135, 132, 131, 150, 123, 139, 113, 103, 138, 100, 123, 125, 129, 134, 124, 137, 142, 133, 160, 124, 150, 123, 126, 128, 130, 126, 122, 114, 140, 132, 136, 125, 124, 122, 120, 120, 124, 124, 118, 114, 121, 119, 128, 143, 136, 112, 133, 116, 120, 130, 127, 125, 125, 127, 145, 134, 137, 146, 118, 125, 126, 135, 120, 143, 123, 122, 117, 125, 117, 122, 128, 121, 134, 117, 118, 131, 132, 132, 112, 126, 118, 131, 123, 133, 126, 121, 114, 114, 106, 129, 128, 109, 127, 138, 138, 134, 127, 121, 132, 117, 136, 132, 120, 119, 152, 127, 119, 143, 132, 117, 141, 119, 81, 117, 140, 104, 103, 113, 112, 115, 111, 113, 131, 125, 128, 135, 119, 125, 127, 82, 134, 126, 133, 134, 132, 127, 140, 129, 122, 128, 124, 117, 130, 129, 124, 131, 117, 117, 149, 128, 121, 120, 137, 124, 130, 131, 108, 133, 118, 130, 128, 126, 122, 122, 126, 133, 115, 130, 125, 133, 122, 129, 114, 123, 134, 124, 138, 119, 118, 131, 125, 113, 129, 116, 130, 134, 115, 131, 134, 122, 119, 129, 128, 158, 131, 126, 119, 139, 117, 134, 119, 136, 122, 126, 122, 127, 124, 140, 128, 130, 121, 124, 126, 122, 118, 137, 117, 115, 125, 122, 137, 130, 128, 134, 128, 123, 131, 116, 113, 137, 131, 127, 124, 125, 114, 109, 127, 126, 121, 102, 113, 139, 159, 145, 114, 122, 123, 127, 136, 123, 128, 118, 123, 139, 119, 120, 125, 126, 125, 119, 112, 131, 115, 127, 119, 126, 132, 110, 124, 135, 111, 129, 123, 112, 124, 121, 118, 125, 113, 114, 136, 128, 118, 132, 133, 135, 118, 136, 121, 117, 130, 126, 123, 115, 123, 125, 115, 115, 124, 118, 113, 150, 124, 133, 145, 117, 149, 129, 112, 120, 119, 114, 129, 114, 127, 117, 126, 124, 138, 128, 124, 130, 129, 138, 109, 110, 127, 127, 133, 111, 113, 142, 119, 115, 105, 108, 128, 130, 147, 100, 128, 115, 113, 123, 127, 110, 116, 128, 130, 126, 118, 121, 131, 125, 121, 134, 128, 126, 133, 118, 119, 118, 120, 134, 136, 127, 142, 117, 112, 131, 120, 120, 137, 140, 134, 140, 142, 144, 96, 135, 123, 107, 137, 126, 137, 122, 104, 127, 124, 130, 134, 127, 131, 101, 117, 131, 121, 118, 114, 120, 123, 135, 111, 130, 114, 151, 117, 120, 138, 127, 133, 135, 127, 112, 110, 126, 126, 123, 123, 115, 115, 122, 135, 137, 131, 118, 134, 120, 125, 131, 119, 108, 106, 126, 122, 113, 128, 138, 125, 123, 115, 114, 119, 118, 124, 131, 143, 118, 121, 121, 126, 120, 128, 121, 144, 131, 123, 140, 124, 119, 139, 142, 116, 143, 113, 117, 117, 106, 121, 142, 122, 113, 115, 123, 136, 126, 115, 134, 123, 117, 129, 135, 143, 127, 135, 147, 131, 138, 126, 100, 129, 137, 117, 122, 128, 124, 124, 118, 126, 102, 129, 120, 129, 131, 116, 123, 122, 137, 117, 132, 126, 127, 131, 111, 115, 121, 146, 140, 106, 110, 137, 129, 126, 118, 122, 123, 128, 124, 136, 115, 110, 126, 134, 135, 122, 134, 123, 110, 133, 143, 145, 128, 134, 112, 112, 124, 122, 126, 131, 132, 134, 113, 130, 116, 127, 141, 133, 123, 115, 134, 105, 134, 126, 129, 130, 135, 124, 136, 128, 111, 136, 129, 129, 113, 119, 134, 118, 122, 110, 119, 118, 124, 126, 112, 138, 131, 113, 136, 121, 114, 104, 116, 146, 119, 127, 124, 118, 131, 128, 117, 100, 120, 122, 122, 131, 125, 137, 152, 121, 119, 110, 137, 123, 120, 131, 138, 129, 139, 119, 113, 125, 128, 119, 125, 126, 128, 130, 133, 126, 129, 130, 124, 124, 130, 130, 119, 123, 116, 110, 136, 128, 130, 134, 126, 122, 117, 134, 144, 135, 127, 111, 131, 117, 110, 125, 118, 131, 144, 123, 115, 119, 136, 128, 123, 118, 132, 131, 117, 119, 120, 119, 125, 151, 122, 144, 133, 127, 122, 139, 130, 129, 133, 124, 127, 135, 118, 129, 118, 130, 132, 127, 131, 138, 135, 133, 123, 150, 120, 129, 129, 113, 114, 113, 134, 137, 124, 118, 115, 119, 124, 139, 130, 116, 116, 126, 139, 106, 109, 123, 131, 135, 103, 107, 130, 126, 125, 140, 119, 115, 117, 139, 131, 135, 109, 131, 112, 132, 127, 129, 114, 122, 136, 119, 119, 133, 117, 134, 124, 122, 116, 126, 135, 126, 124, 120, 118, 125, 127, 132, 148, 116, 107, 122, 149, 112, 118, 122, 126, 140, 130, 136, 120, 121, 114, 121, 140, 128, 113, 112, 124, 132, 127, 111, 115, 122, 120, 134, 138, 125, 126, 122, 120, 129, 127, 112, 146, 131, 166, 126, 133, 120, 115, 128, 139, 123, 110, 125, 130, 123, 118, 118, 135, 119, 129, 133, 118, 117, 121, 113, 126, 112, 122, 117, 138, 116, 132, 133, 123, 133, 137, 117, 109, 138, 130, 134, 132, 101, 116, 112, 119, 134, 121, 112, 137, 138, 132, 132, 120, 130, 136, 149, 126, 137, 135, 115, 104, 121, 123, 110, 123, 125, 123, 130, 126, 124, 141, 115, 127, 113, 132, 137, 123, 116, 123, 131, 134, 134, 124, 120, 135, 130, 134, 130, 120, 92, 120, 121, 128, 120, 143, 139, 113, 114, 122, 133, 125, 121, 133, 104, 132, 120, 126, 121, 112, 125, 131, 129, 122, 112, 115, 120, 132, 130, 127, 118, 134, 125, 127, 129, 121, 122, 145, 112, 126, 112, 114, 137, 126, 132, 119, 143, 123, 127, 132, 111, 148, 112, 130, 128, 118, 114, 123, 121, 133, 145, 114, 146, 140, 150, 132, 128, 122, 116, 109, 131, 131, 118, 115, 141, 148, 117, 121, 118, 116, 121, 137, 126, 108, 123, 119, 124, 126, 129, 114, 128, 120, 122, 121, 111, 137, 125, 125, 152, 114, 117, 133, 133, 130, 113, 122, 132, 144, 138, 114, 108, 133, 127, 129, 120, 138, 130, 111, 130, 114, 120, 142, 122, 119, 139, 143, 128, 123, 122, 134, 127, 130, 115, 126, 121, 122, 141, 114, 120, 122, 126, 117, 140, 131, 126, 119, 124, 122, 126, 144, 124, 149, 139, 115, 124, 119, 122, 136, 127, 108, 129, 124, 116, 114, 138, 113, 137, 118, 125, 128, 127, 125, 120, 126, 133, 134, 120, 116, 132, 125, 124, 122, 109, 124, 128, 106, 120, 121, 141, 124, 110, 131, 121, 126, 129, 134, 122, 133, 133, 118, 133, 113, 134, 135, 125, 119, 130, 114, 129, 125, 132, 116, 125, 143, 115, 138, 125, 115, 128, 138, 108, 122, 123, 128, 140, 127, 112, 126, 127, 115, 128, 112, 113, 115, 138, 125, 119, 135, 118, 124, 131, 134, 114, 122, 150, 123, 136, 138, 131, 133, 111, 122, 123, 131, 127, 139, 136, 117, 136, 114, 125, 111, 137, 122, 103, 124, 126, 127, 126, 134, 118, 139, 116, 124, 115, 122, 145, 129, 123, 113, 155, 127, 137, 116, 131, 121, 110, 138, 121, 130, 134, 122, 127, 128, 141, 141, 118, 121, 120, 124, 121, 123, 131, 113, 150, 106, 114, 117, 122, 123, 130, 132, 131, 119, 127, 135, 117, 136, 148, 128, 113, 123, 133, 127, 145, 114, 120, 132, 131, 130, 93, 127, 127, 138, 119, 119, 127, 132, 125, 144, 120, 119, 140, 116, 126, 129, 127, 126, 119, 115, 121, 118, 125, 123, 127, 125, 141, 112, 135, 131, 128, 119, 128, 131, 138, 121, 116, 131, 143, 122, 126, 123, 110, 155, 123, 122, 131, 117, 128, 118, 120, 142, 113, 127, 128, 124, 122, 116, 128, 119, 121, 121, 123, 133, 135, 124, 127, 115, 122, 146, 135, 118, 134, 115, 113, 120, 132, 113, 136, 110, 129, 128, 137, 136, 130, 135, 144, 103, 137, 131, 136, 119, 128, 124, 134, 131, 126, 118, 138, 129, 130, 114, 133, 137, 124, 105, 121, 105, 126, 113, 128, 151, 118, 132, 124, 117, 118, 122, 118, 136, 136, 109, 107, 120, 133, 128, 122, 111, 139, 133, 133, 94, 131, 136, 138, 124, 126, 131, 140, 142, 117, 136, 130, 120, 117, 110, 133, 132, 120, 131, 114, 127, 134, 132, 134, 122, 128, 134, 123, 119, 131, 114, 135, 133, 123, 116, 134, 132, 114, 121, 109, 126, 129, 128, 140, 120, 131, 128, 120, 121, 148, 131, 132, 125, 125, 127, 124, 127, 122, 117, 134, 124, 135, 128, 132, 152, 124, 129, 134, 124, 107, 119, 117, 113, 115, 126, 137, 132, 124, 122, 126, 124, 136, 134, 120, 129, 115, 119, 116, 141, 127, 126, 133, 124, 107, 163, 122, 133, 138, 130, 146, 128, 136, 147, 122, 131, 134, 139, 126, 122, 117, 132, 129, 133, 128, 109, 153, 136, 128, 139, 126, 126, 127, 129, 114, 132, 140, 127, 137, 112, 136, 132, 143, 122, 127, 113, 133, 138, 140, 119, 129, 112, 130, 132, 105, 116, 100, 129, 119, 133, 137, 112, 142, 153, 118, 128, 128, 109, 120, 119, 118, 122, 135, 134, 123, 123, 136, 120, 128, 106, 102, 121, 123, 103, 127, 140, 132, 113, 125, 128, 123, 115, 116, 124, 126, 136, 121, 129, 144, 123, 152, 112, 130, 101, 127, 119, 129, 127, 111, 106, 116, 118, 130, 124, 126, 132, 112, 116, 123, 139, 150, 124, 125, 118, 136, 118, 132, 132, 142, 119, 118, 130, 132, 124, 125, 128, 128, 115, 127, 124, 135, 113, 131, 127, 128, 122, 124, 124, 142, 107, 123, 129, 130, 115, 139, 126, 119, 130, 132, 122, 122, 126, 135, 119, 119, 119, 137, 118, 103, 132, 131, 121, 126, 120, 111, 128, 120, 125, 125, 130, 108, 124, 115, 119, 123, 133, 143, 145, 122, 126, 135, 118, 127, 134, 121, 132, 128, 134, 117, 135, 131, 132, 122, 129, 144, 125, 136, 152, 145, 137, 129, 148, 116, 123, 124, 127, 117, 136, 143, 127, 135, 131, 118, 139, 124, 129, 141, 129, 118, 137, 140, 128, 106, 129, 130, 113, 137, 125, 125, 133, 138, 134, 114, 127, 124, 113, 125, 127, 127, 120, 116, 117, 120, 135, 125, 113, 116, 118, 117, 138, 128, 138, 129, 127, 127, 136, 147, 120, 127, 137, 126, 132, 98, 115, 110, 143, 128, 116, 83, 139, 139, 113, 136, 127, 153, 124, 114, 131, 126, 139, 100, 119, 130, 128, 129, 123, 126, 125, 128, 120, 134, 130, 130, 120, 142, 103, 114, 98, 121, 134, 116, 116, 148, 128, 128, 122, 117, 149, 133, 128, 113, 142, 123, 141, 113, 141, 129, 140, 120, 131, 124, 126, 141, 110, 139, 118, 112, 128, 123, 134, 109, 140, 119, 133, 119, 121, 128, 126, 129, 107, 120, 126, 136, 116, 136, 155, 116, 126, 113, 114, 106, 137, 120, 130, 170, 140, 141, 126, 119, 127, 138, 114, 143, 132, 125, 139, 129, 125, 129, 124, 120, 111, 128, 115, 101, 114, 110, 134, 140, 121, 130, 118, 124, 117, 113, 95, 102, 119, 110, 163, 138, 110, 130, 117, 117, 123, 116, 133, 115, 120, 104, 118, 120, 150, 123, 122, 112, 109, 147, 125, 131, 125, 123, 121, 114, 116, 129, 118, 136, 113, 132, 147, 142, 123, 138, 128, 119, 119, 96, 103, 139, 139, 152, 107, 147, 117, 131, 135, 121, 112, 125, 124, 131, 106, 93, 120, 136, 125, 132, 108, 115, 126, 132, 142, 127, 130, 118, 113, 132, 138, 134, 116, 119, 131, 125, 114, 119, 118, 125, 122, 120, 119, 125, 101, 139, 124, 135, 121, 121, 119, 132, 122, 133, 122, 106, 122, 115, 122, 130, 131, 113, 126, 127, 127, 122, 137, 133, 156, 128, 119, 126, 145, 125, 120, 133, 111, 130, 121, 134, 86, 122, 117, 123, 115, 127, 132, 129, 118, 140, 126, 119, 126, 115, 128, 133, 117, 135, 115, 120, 123, 131, 135, 127, 137, 116, 119, 110, 124, 117, 121, 116, 103, 130, 128, 118, 130, 126, 126, 128, 139, 130, 122, 134, 113, 139, 137, 106, 128, 156, 138, 118, 148, 136, 114, 122, 133, 125, 126, 141, 114, 130, 107, 126, 135, 131, 119, 133, 124, 124, 123, 106, 140, 128, 121, 95, 136, 128, 131, 114, 108, 135, 137, 115, 120, 124, 127, 117, 122, 115, 124, 130, 127, 119, 118, 140, 112, 145, 122, 98, 111, 122, 106, 147, 133, 133, 129, 106, 119, 121, 114, 148, 116, 128, 128, 121, 143, 125, 124, 128, 124, 140, 118, 126, 138, 128, 112, 119, 131, 139, 128, 104, 132, 119, 115, 126, 148, 123, 147, 123, 110, 116, 119, 135, 133, 102, 100, 133, 125, 132, 123, 125, 129, 122, 108, 124, 138, 118, 140, 122, 140, 129, 139, 117, 129, 136, 151, 124, 107, 132, 130, 128, 114, 133, 140, 124, 98, 129, 119, 120, 115, 114, 130, 110, 116, 155, 126, 111, 133, 130, 121, 118, 116, 117, 136, 133, 132, 104, 127, 131, 134, 134, 120, 109, 111, 128, 118, 139, 121, 144, 126, 112, 119, 128, 136, 117, 142, 111, 126, 119, 116, 130, 121, 124, 112, 129, 108, 124, 112, 112, 119, 136, 129, 125, 137, 128, 139, 117, 136, 122, 122, 106, 123, 123, 143, 112, 108, 114, 132, 116, 123, 131, 150, 118, 138, 134, 126, 134, 126, 142, 142, 127, 114, 121, 123, 147, 134, 149, 112, 126, 122, 117, 121, 116, 112, 117, 141, 131, 133, 142, 122, 121, 114, 132, 129, 147, 127, 123, 131, 126, 119, 123, 120, 122, 138, 112, 123, 121, 136, 112, 129, 116, 126, 130, 124, 104, 117, 124, 133, 133, 125, 124, 131, 152, 123, 130, 113, 138, 143, 140, 120, 132, 108, 123, 135, 131, 131, 128, 119, 104, 114, 122, 134, 117, 131, 121, 135, 127, 129, 109, 117, 113, 115, 120, 118, 121, 114, 130, 130, 142, 92, 134, 119, 121, 140, 114, 126, 139, 132, 146, 141, 130, 121, 122, 131, 108, 115, 122, 126, 121, 143, 133, 113, 123, 130, 136, 110, 114, 120, 137, 138, 114, 125, 129, 124, 136, 140, 126, 115, 129, 106, 126, 136, 138, 126, 145, 127, 111, 122, 134, 135, 120, 155, 111, 124, 119, 116, 111, 107, 130, 141, 121, 118, 134, 119, 144, 127, 133, 118, 112, 146, 119, 125, 126, 140, 134, 134, 135, 137, 120, 125, 116, 128, 119, 131, 111, 117, 156, 107, 130, 126, 120, 123, 127, 127, 124, 138, 125, 109, 123, 139, 121, 128, 122, 129, 125, 136, 106, 140, 136, 114, 109, 105, 131, 122, 129, 134, 137, 130, 139, 149, 120, 116, 140, 116, 132, 140, 121, 132, 125, 128, 127, 142, 128, 142, 120, 118, 126, 135, 120, 111, 130, 137, 108, 106, 118, 135, 127, 145, 127, 137, 120, 136, 131, 125, 146, 121, 114, 133, 111, 134, 134, 113, 114, 124, 118, 116, 124, 117, 131, 124, 120, 114, 102, 117, 116, 135, 141, 124, 148, 119, 114, 152, 107, 134, 106, 124, 134, 137, 113, 124, 116, 116, 130, 133, 139, 141, 130, 123, 127, 132, 112, 118, 115, 149, 133, 114, 128, 129, 114, 111, 104, 125, 125, 117, 126, 125, 112, 109, 126, 121, 142, 126, 138, 116, 128, 115, 137, 122, 117, 130, 124, 123, 136, 103, 104, 117, 103, 158, 125, 131, 120, 114, 141, 138, 130, 116, 122, 128, 129, 121, 124, 120, 130, 136, 139, 133, 112, 104, 134, 130, 131, 129, 146, 117, 128, 126, 128, 111, 134, 148, 108, 125, 140, 117, 127, 131, 125, 119, 122, 132, 133, 126, 130, 119, 134, 134, 117, 132, 127, 110, 126, 118, 114, 113, 118, 125, 118, 96, 106, 99, 122, 119, 109, 120, 159, 115, 118, 133, 147, 127, 137, 134, 127, 104, 108, 128, 108, 131, 125, 132, 139, 124, 142, 108, 147, 132, 94, 131, 141, 105, 122, 128, 120, 130, 114, 126, 116, 117, 142, 115, 117, 128, 121, 137, 144, 118, 113, 132, 128, 148, 132, 122, 125, 142, 123, 120, 123, 125, 128, 137, 122, 116, 117, 127, 100, 118, 118, 116, 122, 127, 117, 113, 123, 124, 118, 137, 119, 144, 128, 139, 146, 108, 128, 121, 122, 136, 117, 134, 131, 130, 132, 131, 101, 123, 112, 130, 138, 132, 113, 128, 120, 106, 115, 149, 109, 121, 131, 129, 129, 100, 106, 116, 135, 138, 108, 121, 132, 131, 124, 112, 136, 131, 144, 112, 129, 125, 131, 135, 128, 125, 125, 140, 111, 117, 131, 107, 156, 117, 123, 117, 140, 145, 133, 111, 123, 115, 121, 135, 113, 143, 119, 128, 133, 148, 120, 132, 117, 126, 145, 118, 129, 103, 114, 138, 119, 129, 110, 125, 109, 123, 115, 136, 117, 135, 119, 123, 135, 131, 116, 128, 118, 114, 119, 123, 113, 113, 131, 123, 118, 121, 138, 144, 124, 120, 107, 117, 123, 132, 118, 112, 141, 116, 124, 114, 143, 132, 135, 103, 129, 128, 140, 130, 121, 124, 135, 114, 126, 112, 129, 104, 130, 115, 122, 106, 121, 124, 153, 110, 113, 141, 133, 128, 119, 118, 116, 119, 121, 110, 128, 133, 119, 141, 121, 131, 121, 124, 125, 127, 142, 147, 120, 103, 117, 114, 133, 134, 138, 135, 144, 131, 127, 132, 127, 118, 98, 136, 136, 134, 140, 123, 121, 126, 138, 134, 132, 114, 129, 135, 122, 114, 130, 115, 138, 122, 151, 133, 119, 131, 127, 130, 105, 128, 120, 116, 108, 123, 118, 114, 117, 126, 131, 130, 135, 150, 130, 114, 118, 136, 127, 109, 127, 124, 109, 136, 106, 123, 131, 114, 126, 90, 123, 144, 137, 132, 120, 134, 124, 112, 120, 121, 123, 112, 127, 132, 148, 128, 121, 128, 107, 115, 150, 146, 113, 135, 122, 130, 116, 124, 142, 109, 121, 125, 128, 144, 125, 119, 122, 115, 133, 116, 133, 136, 131, 128, 129, 123, 137, 108, 124, 126, 129, 136, 111, 124, 121, 120, 132, 133, 128, 122, 137, 120, 115, 121, 110, 129, 130, 121, 132, 128, 119, 114, 132, 121, 123, 129, 125, 130, 127, 126, 122, 133, 129, 133, 136, 128, 120, 116, 129, 114, 128, 112, 119, 129, 133, 116, 135, 139, 114, 128, 118, 136, 132, 138, 123, 109, 148, 126, 123, 118, 127, 109, 131, 125, 124, 133, 125, 111, 127, 128, 132, 140, 115, 111, 124, 109, 111, 115, 127, 134, 128, 127, 117, 117, 123, 141, 129, 136, 126, 119, 128, 117, 124, 114, 120, 103, 125, 125, 140, 150, 110, 127, 143, 142, 116, 115, 130, 113, 134, 127, 103, 122, 135, 140, 132, 106, 130, 113, 119, 119, 132, 125, 134, 137, 131, 96, 123, 134, 120, 109, 107, 114, 114, 135, 120, 121, 135, 111, 129, 136, 122, 126, 123, 138, 139, 128, 125, 129, 125, 108, 135, 137, 114, 130, 118, 102, 104, 122, 144, 137, 108, 128, 115, 122, 130, 128, 136, 129, 118, 131, 113, 121, 124, 106, 126, 116, 113, 121, 124, 112, 114, 119, 143, 130, 135, 146, 115, 122, 122, 119, 119, 127, 117, 124, 138, 125, 124, 129, 120, 141, 134, 131, 124, 138, 143, 123, 127, 126, 106, 146, 113, 132, 129, 129, 113, 95, 125, 114, 118, 144, 105, 118, 118, 149, 117, 112, 127, 138, 126, 127, 126, 115, 132, 111, 123, 119, 131, 119, 116, 145, 126, 110, 125, 132, 125, 139, 114, 141, 132, 148, 135, 130, 142, 130, 129, 131, 127, 134, 126, 151, 111, 124, 147, 131, 122, 133, 122, 114, 149, 136, 117, 129, 114, 111, 114, 125, 109, 116, 102, 132, 130, 110, 107, 127, 123, 113, 115, 132, 141, 122, 140, 105, 136, 124, 136, 140, 118, 130, 126, 149, 137, 131, 117, 123, 115, 130, 141, 139, 133, 110, 121, 115, 119, 129, 134, 120, 134, 120, 138, 118, 138, 141, 121, 137, 138, 147, 121, 134, 124, 149, 119, 110, 117, 110, 113, 108, 138, 125, 118, 116, 120, 126, 122, 126, 114, 126, 126, 123, 124, 125, 127, 127, 158, 115, 120, 109, 113, 120, 119, 108, 120, 112, 115, 106, 124, 141, 121, 133, 127, 128, 126, 129, 116, 123, 121, 145, 130, 131, 149, 131, 111, 125, 126, 110, 152, 148, 138, 120, 129, 116, 138, 111, 117, 115, 121, 115, 124, 128, 141, 132, 129, 130, 121, 141, 129, 122, 115, 131, 121, 112, 122, 121, 103, 121, 121, 113, 132, 124, 114, 124, 127, 129, 117, 141, 119, 135, 133, 118, 119, 148, 141, 134, 111, 126, 114, 137, 145, 138, 124, 126, 134, 133, 130, 115, 142, 125, 130, 126, 139, 112, 141, 133, 119, 122, 119, 127, 126, 125, 110, 141, 138, 121, 123, 120, 149, 119, 128, 135, 129, 117, 118, 129, 122, 118, 126, 138, 129, 135, 142, 116, 117, 122, 120, 131, 116, 128, 116, 124, 114, 117, 129, 138, 137, 118, 114, 133, 110, 126, 118, 123, 123, 138, 123, 119, 118, 116, 136, 143, 115, 110, 119, 133, 121, 117, 124, 119, 117, 122, 134, 136, 116, 126, 110, 126, 134, 117, 126, 130, 150, 125, 121, 138, 136, 132, 123, 120, 111, 141, 131, 143, 126, 126, 117, 122, 122, 122, 120, 152, 126, 117, 111, 114, 122, 133, 131, 154, 127, 127, 108, 121, 135, 128, 132, 139, 119, 117, 141, 132, 139, 102, 134, 113, 119, 135, 130, 127, 127, 127, 112, 117, 140, 132, 118, 121, 134, 136, 121, 117, 127, 117, 139, 125, 138, 117, 119, 136, 129, 115, 116, 126, 134, 125, 118, 148, 110, 124, 112, 113, 135, 145, 110, 118, 124, 111, 133, 124, 128, 127, 119, 126, 115, 144, 144, 133, 121, 126, 129, 130, 118, 135, 136, 126, 115, 144, 133, 121, 145, 127, 120, 119, 116, 117, 128, 115, 117, 121, 105, 138, 132, 142, 134, 129, 122, 119, 120, 124, 117, 101, 135, 126, 115, 134, 105, 131, 128, 131, 111, 121, 107, 148, 116, 140, 129, 134, 121, 125, 120, 126, 125, 114, 118, 135, 125, 109, 106, 124, 134, 123, 125, 113, 109, 139, 113, 139, 129, 121, 115, 134, 131, 111, 139, 114, 119, 131, 124, 134, 129, 144, 130, 107, 131, 123, 130, 118, 115, 115, 116, 123, 133, 137, 135, 119, 142, 129, 121, 128, 140, 112, 129, 123, 126, 134, 127, 137, 127, 114, 125, 104, 125, 132, 114, 120, 125, 135, 135, 112, 136, 137, 132, 122, 110, 118, 119, 147, 121, 140, 138, 127, 118, 115, 120, 125, 123, 133, 113, 125, 132, 135, 126, 127, 119, 141, 133, 128, 119, 155, 120, 132, 121, 111, 126, 112, 128, 136, 143, 126, 123, 133, 123, 121, 120, 119, 116, 125, 123, 124, 132, 114, 111, 126, 124, 127, 128, 114, 106, 137, 130, 117, 124, 118, 120, 137, 134, 132, 142, 124, 121, 116, 134, 131, 111, 121, 121, 133, 106, 116, 124, 118, 130, 141, 134, 132, 112, 127, 129, 124, 127, 128, 125, 119, 137, 121, 111, 138, 121, 126, 118, 130, 123, 118, 118, 139, 131, 124, 127, 134, 120, 117, 120, 126, 118, 123, 118, 127, 139, 121, 126, 139, 118, 120, 110, 113, 146, 130, 108, 134, 122, 122, 131, 142, 107, 126, 118, 125, 139, 134, 126, 134, 128, 122, 121, 106, 129, 120, 121, 113, 137, 148, 147, 117, 140, 108, 118, 111, 118, 144, 123, 133, 130, 114, 129, 137, 121, 131, 117, 142, 110, 131, 135, 108, 113, 110, 130, 123, 150, 124, 140, 123, 122, 131, 124, 134, 116, 125, 123, 110, 132, 116, 137, 110, 109, 134, 133, 135, 120, 120, 116, 118, 138, 129, 128, 134, 120, 153, 122, 118, 117, 108, 126, 139, 137, 119, 147, 131, 134, 120, 134, 107, 129, 137, 117, 123, 139, 110, 126, 125, 135, 133, 121, 104, 129, 136, 109, 126, 126, 131, 131, 134, 137, 119, 111, 138, 122, 105, 130, 137, 136, 122, 130, 136, 130, 140, 128, 136, 130, 117, 136, 125, 120, 131, 137, 132, 137, 140, 115, 122, 137, 121, 136, 145, 110, 131, 131, 123, 114, 139, 133, 105, 118, 129, 143, 144, 129, 129, 142, 107, 137, 130, 138, 106, 131, 125, 126, 134, 125, 104, 103, 137, 126, 130, 135, 141, 142, 122, 122, 144, 137, 121, 126, 125, 131, 132, 120, 122, 125, 113, 122, 135, 139, 135, 129, 136, 132, 128, 113, 133, 129, 116, 124, 116, 106, 127, 127, 105, 118, 131, 127, 111, 145, 111, 134, 123, 112, 122, 129, 120, 123, 118, 122, 118, 119, 125, 123, 129, 127, 137, 122, 126, 114, 145, 129, 116, 132, 128, 126, 139, 118, 124, 131, 106, 127, 119, 122, 126, 126, 112, 125, 123, 120, 121, 155, 122, 128, 115, 113, 119, 128, 131, 134, 112, 137, 131, 122, 106, 135, 125, 124, 130, 114, 123, 122, 118, 120, 121, 133, 119, 126, 118, 137, 117, 122, 120, 140, 131, 117, 124, 140, 135, 130, 131, 142, 132, 111, 120, 133, 132, 130, 116, 128, 132, 133, 124, 130, 143, 137, 109, 110, 139, 107, 125, 117, 149, 105, 137, 126, 145, 132, 120, 130, 132, 117, 136, 133, 127, 127, 127, 127, 131, 108, 132, 102, 110, 122, 136, 115, 119, 116, 135, 113, 121, 117, 127, 132, 131, 139, 137, 127, 104, 126, 144, 121, 119, 123, 138, 135, 125, 126, 139, 135, 139, 135, 112, 132, 118, 115, 134, 122, 143, 146, 116, 117, 133, 124, 122, 105, 141, 114, 107, 131, 132, 126, 124, 118, 124, 127, 115, 119, 128, 121, 113, 134, 145, 125, 119, 119, 132, 128, 110, 122, 132, 116, 135, 127, 135, 115, 123, 139, 145, 114, 120, 133, 127, 129, 118, 124, 115, 133, 125, 127, 133, 131, 111, 127, 116, 118, 137, 140, 109, 126, 122, 136, 126, 113, 130, 136, 116, 126, 157, 116, 115, 127, 119, 122, 128, 126, 132, 111, 124, 116, 135, 139, 128, 124, 129, 123, 132, 126, 140, 138, 110, 130, 116, 121, 136, 115, 136, 112, 130, 118, 133, 132, 128, 133, 125, 119, 127, 124, 121, 129, 124, 120, 135, 118, 107, 126, 127, 122, 118, 132, 140, 120, 128, 134, 127, 129, 143, 119, 120, 132, 121, 135, 118, 106, 130, 110, 133, 148, 115, 121, 124, 117, 142, 137, 137, 128, 119, 126, 133, 134, 140, 143, 119, 120, 114, 113, 128, 135, 139, 127, 144, 126, 114, 123, 130, 135, 126, 126, 115, 125, 123, 117, 129, 133, 118, 111, 122, 142, 151, 157, 137, 132, 126, 116, 126, 121, 128, 120, 122, 125, 130, 125, 127, 121, 116, 148, 140, 123, 111, 133, 126, 130, 137, 133, 139, 117, 131, 123, 124, 131, 117, 116, 122, 128, 125, 115, 117, 136, 120, 133, 116, 128, 130, 130, 123, 126, 131, 124, 130, 125, 129, 131, 122, 116, 121, 126, 117, 123, 126, 118, 128, 136, 116, 140, 136, 127, 136, 126, 114, 121, 119, 122, 151, 131, 126, 132, 121, 121, 130, 134, 126, 137, 137, 108, 123, 122, 138, 115, 133, 111, 121, 91, 122, 116, 107, 120, 142, 119, 134, 118, 126, 119, 130, 127, 125, 128, 131, 127, 119, 137, 133, 122, 126, 138, 123, 127, 123, 126, 125, 134, 125, 121, 130, 118, 123, 122, 123, 144, 136, 115, 107, 112, 125, 126, 128, 124, 114, 108, 137, 118, 135, 123, 121, 126, 132, 126, 134, 118, 121, 117, 132, 119, 125, 116, 116, 125, 125, 114, 127, 128, 133, 127, 130, 128, 122, 120, 128, 125, 132, 129, 135, 130, 125, 113, 104, 132, 118, 139, 156, 140, 106, 129, 119, 113, 129, 128, 138, 127, 128, 143, 126, 110, 134, 125, 112, 141, 115, 132, 135, 128, 148, 127, 124, 124, 118, 114, 121, 134, 118, 126, 118, 123, 114, 128, 131, 119, 134, 121, 148, 120, 125, 129, 140, 121, 134, 113, 128, 130, 140, 118, 126, 124, 113, 136, 116, 131, 122, 130, 139, 124, 126, 124, 117, 124, 115, 117, 122, 141, 113, 135, 127, 138, 136, 102, 142, 120, 115, 130, 132, 135, 133, 121, 109, 109, 130, 135, 124, 120, 114, 131, 124, 113, 137, 122, 146, 115, 129, 117, 141, 112, 123, 120, 129, 128, 128, 166, 116, 131, 121, 134, 103, 116, 122, 139, 132, 128, 146, 144, 122, 111, 136, 126, 136, 126, 111, 125, 127, 116, 120, 119, 118, 149, 122, 137, 112, 120, 130, 120, 128, 134, 132, 119, 127, 137, 132, 124, 132, 120, 122, 115, 135, 123, 129, 109, 139, 137, 117, 122, 128, 129, 109, 132, 126, 136, 134, 117, 128, 129, 128, 113, 117, 149, 126, 115, 119, 123, 127, 136, 132, 130, 121, 143, 120, 122, 127, 128, 157, 126, 120, 116, 118, 129, 141, 137, 121, 126, 116, 130, 126, 126, 109, 139, 108, 117, 119, 138, 119, 138, 117, 114, 123, 122, 124, 118, 129, 115, 124, 124, 123, 122, 135, 130, 135, 142, 132, 133, 125, 121, 123, 142, 118, 143, 122, 122, 126, 138, 123, 116, 129, 135, 119, 104, 127, 126, 133, 113, 137, 125, 133, 125, 124, 137, 117, 109, 138, 134, 127, 123, 134, 121, 111, 115, 128, 114, 126, 121, 123, 132, 122, 115, 125, 117, 114, 137, 114, 110, 116, 119, 124, 112, 130, 105, 132, 141, 125, 111, 122, 120, 115, 128, 113, 119, 126, 125, 124, 128, 141, 121, 132, 117, 143, 107, 116, 134, 148, 136, 103, 143, 131, 132, 142, 125, 117, 124, 137, 125, 137, 151, 147, 130, 110, 127, 130, 142, 125, 114, 126, 128, 116, 136, 128, 119, 128, 128, 120, 124, 125, 127, 129, 136, 126, 126, 138, 119, 136, 108, 118, 128, 124, 132, 112, 121, 120, 113, 119, 110, 137, 126, 132, 111, 133, 133, 112, 123, 130, 131, 131, 127, 115, 125, 114, 117, 118, 110, 127, 124, 126, 117, 120, 129, 110, 119, 124, 120, 128, 132, 137, 122, 133, 117, 119, 130, 114, 124, 120, 119, 118, 142, 130, 129, 125, 120, 128, 121, 123, 136, 145, 117, 113, 141, 122, 124, 135, 117, 135, 127, 129, 117, 136, 131, 136, 124, 130, 114, 123, 136, 126, 134, 117, 140, 130, 147, 131, 119, 120, 105, 135, 126, 128, 127, 133, 124, 119, 117, 130, 123, 149, 134, 132, 111, 135, 115, 119, 129, 120, 122, 126, 125, 129, 146, 132, 131, 119, 120, 135, 130, 107, 136, 119, 123, 119, 135, 130, 121, 110, 115, 129, 120, 122, 130, 129, 139, 116, 137, 122, 122, 117, 127, 131, 116, 130, 124, 140, 126, 136, 119, 133, 127, 127, 131, 118, 125, 113, 118, 124, 130, 128, 105, 135, 111, 123, 143, 120, 126, 115, 131, 122, 138, 117, 119, 122, 119, 136, 127, 121, 142, 108, 135, 123, 135, 113, 134, 117, 124, 123, 161, 118, 124, 132, 119, 125, 129, 115, 129, 128, 109, 147, 128, 121, 132, 124, 114, 111, 146, 131, 101, 116, 106, 126, 133, 119, 113, 109, 137, 117, 117, 124, 141, 139, 111, 121, 125, 143, 138, 137, 140, 116, 149, 114, 139, 128, 143, 136, 125, 112, 145, 122, 117, 137, 130, 133, 130, 117, 134, 116, 131, 127, 113, 124, 128, 117, 124, 137, 120, 131, 123, 142, 121, 125, 127, 143, 121, 124, 123, 139, 123, 135, 123, 124, 107, 126, 110, 118, 139, 117, 131, 125, 126, 106, 125, 135, 109, 139, 135, 150, 111, 132, 123, 126, 129, 124, 121, 130, 127, 131, 119, 118, 130, 126, 126, 114, 143, 123, 122, 136, 121, 128, 127, 126, 103, 121, 125, 132, 117, 129, 131, 120, 139, 116, 112, 139, 130, 125, 151, 150, 114, 115, 116, 124, 125, 108, 116, 134, 123, 123, 117, 126, 134, 110, 121, 126, 138, 120, 133, 104, 133, 136, 142, 130, 129, 116, 127, 136, 127, 132, 111, 132, 109, 124, 125, 130, 126, 146, 122, 101, 124, 150, 131, 125, 131, 112, 119, 115, 127, 122, 126, 123, 132, 132, 139, 119, 131, 134, 116, 140, 126, 124, 123, 126, 147, 129, 113, 131, 136, 126, 134, 117, 127, 132, 142, 133, 148, 141, 123, 134, 129, 139, 117, 125, 146, 126, 120, 123, 123, 126, 123, 117, 136, 111, 118, 136, 128, 119, 132, 125, 146, 130, 117, 113, 121, 136, 124, 114, 133, 129, 121, 135, 120, 123, 124, 131, 133, 146, 116, 122, 133, 111, 122, 116, 124, 118, 123, 110, 128, 136, 133, 126, 108, 124, 127, 123, 135, 131, 145, 134, 122, 122, 129, 139, 126, 128, 136, 106, 115, 138, 132, 116, 136, 154, 129, 135, 139, 132, 132, 139, 119, 136, 106, 132, 114, 137, 121, 134, 127, 130, 148, 121, 129, 117, 113, 120, 148, 121, 131, 129, 122, 125, 109, 136, 114, 112, 130, 125, 140, 136, 133, 121, 134, 126, 129, 112, 124, 140, 139, 130, 133, 140, 132, 131, 147, 121, 126, 108, 150, 127, 135, 128, 117, 117, 125, 132, 135, 128, 127, 116, 122, 132, 128, 132, 127, 116, 119, 120, 111, 111, 130, 127, 127, 96, 135, 130, 116, 121, 132, 138, 126, 135, 128, 131, 109, 140, 114, 132, 127, 119, 138, 124, 145, 114, 120, 112, 139, 148, 110, 103, 140, 145, 148, 113, 117, 123, 127, 123, 134, 114, 120, 124, 135, 128, 131, 129, 124, 135, 135, 127, 119, 125, 129, 103, 124, 137, 137, 127, 115, 125, 138, 111, 111, 139, 120, 128, 132, 112, 126, 119, 123, 127, 143, 131, 116, 116, 117, 121, 107, 121, 136, 122, 104, 111, 133, 110, 131, 135, 138, 136, 118, 105, 120, 122, 115, 147, 120, 131, 161, 128, 122, 129, 105, 137, 139, 137, 133, 142, 139, 97, 128, 113, 124, 124, 135, 117, 126, 121, 111, 128, 123, 120, 151, 131, 138, 143, 130, 114, 128, 141, 122, 116, 119, 127, 129, 126, 146, 133, 123, 136, 105, 136, 126, 120, 116, 115, 125, 118, 128, 142, 128, 139, 131, 141, 120, 120, 130, 132, 121, 122, 139, 120, 118, 111, 120, 131, 111, 135, 117, 135, 124, 122, 133, 126, 130, 122, 131, 122, 128, 111, 146, 119, 117, 120, 119, 118, 140, 127, 133, 119, 120, 120, 123, 117, 112, 117, 125, 131, 122, 126, 125, 114, 123, 137, 113, 128, 106, 110, 112, 129, 120, 107, 119, 120, 121, 111, 121, 143, 107, 125, 131, 148, 120, 130, 145, 140, 109, 109, 122, 108, 123, 131, 114, 118, 136, 142, 117, 125, 135, 118, 110, 128, 107, 115, 113, 128, 127, 139, 140, 116, 125, 117, 134, 131, 117, 125, 132, 126, 129, 129, 124, 118, 105, 140, 123, 140, 133, 130, 106, 129, 138, 142, 125, 117, 115, 116, 145, 135, 115, 121, 126, 134, 106, 116, 144, 132, 121, 124, 128, 130, 133, 117, 140, 121, 139, 122, 132, 143, 131, 117, 119, 129, 128, 119, 117, 113, 126, 121, 122, 127, 117, 127, 111, 120, 119, 131, 105, 126, 118, 125, 132, 147, 121, 120, 132, 122, 121, 120, 126, 123, 124, 134, 135, 126, 115, 120, 126, 136, 122, 118, 123, 114, 139, 128, 111, 114, 127, 113, 115, 132, 138, 144, 111, 125, 114, 128, 143, 113, 158, 109, 120, 116, 113, 123, 139, 111, 141, 112, 106, 141, 118, 103, 128, 149, 146, 136, 109, 111, 123, 129, 126, 136, 138, 138, 147, 125, 119, 132, 124, 116, 124, 125, 121, 142, 130, 124, 137, 120, 124, 140, 120, 122, 116, 121, 132, 115, 129, 106, 130, 143, 100, 114, 110, 117, 151, 109, 116, 128, 131, 122, 143, 113, 136, 132, 131, 127, 130, 109, 115, 131, 140, 130, 117, 127, 110, 120, 136, 147, 114, 129, 117, 120, 142, 123, 113, 133, 125, 123, 128, 135, 121, 130, 139, 129, 115, 126, 128, 127, 137, 134, 124, 102, 151, 114, 155, 137, 113, 115, 97, 136, 125, 123, 116, 132, 130, 122, 130, 128, 122, 116, 116, 134, 129, 124, 145, 136, 117, 114, 122, 127, 122, 119, 115, 121, 132, 99, 127, 128, 115, 134, 92, 129, 121, 126, 135, 135, 126, 122, 148, 122, 127, 111, 130, 131, 129, 128, 110, 142, 133, 132, 121, 119, 152, 129, 123, 135, 128, 122, 132, 124, 140, 135, 132, 124, 116, 119, 130, 139, 120, 116, 118, 131, 145, 125, 129, 128, 125, 123, 119, 135, 122, 121, 111, 144, 114, 142, 132, 127, 135, 130, 144, 98, 110, 117, 138, 113, 119, 149, 114, 120, 133, 123, 125, 136, 125, 145, 99, 141, 120, 133, 130, 123, 119, 131, 107, 148, 122, 119, 123, 130, 146, 118, 129, 143, 116, 121, 130, 119, 132, 137, 132, 130, 126, 133, 134, 129, 120, 102, 130, 119, 118, 144, 123, 131, 113, 107, 100, 139, 114, 117, 151, 108, 140, 135, 123, 111, 130, 108, 129, 122, 121, 123, 135, 138, 133, 128, 112, 138, 131, 132, 142, 116, 142, 138, 121, 122, 126, 147, 125, 106, 127, 139, 124, 113, 123, 129, 121, 125, 129, 125, 130, 126, 122, 128, 115, 110, 124, 145, 110, 156, 126, 134, 147, 105, 119, 129, 129, 127, 131, 127, 124, 127, 137, 125, 147, 141, 111, 121, 129, 135, 119, 111, 151, 141, 139, 119, 132, 141, 122, 136, 122, 125, 118, 164, 141, 114, 110, 137, 122, 135, 103, 116, 144, 125, 120, 128, 121, 131, 126, 132, 134, 123, 110, 128, 127, 120, 139, 133, 125, 128, 123, 129, 127, 125, 124, 122, 104, 140, 120, 116, 118, 120, 133, 134, 121, 101, 133, 135, 115, 139, 125, 126, 115, 122, 125, 125, 133, 134, 138, 139, 130, 129, 132, 128, 119, 122, 125, 135, 106, 119, 129, 121, 129, 93, 129, 126, 131, 120, 127, 126, 150, 120, 140, 137, 138, 112, 143, 102, 134, 139, 117, 123, 129, 133, 122, 121, 125, 120, 106, 112, 114, 129, 129, 113, 126, 136, 105, 117, 97, 135, 133, 113, 146, 145, 118, 129, 120, 125, 135, 114, 121, 141, 118, 135, 131, 128, 127, 114, 125, 118, 117, 129, 121, 127, 125, 122, 114, 134, 133, 128, 128, 112, 125, 145, 127, 125, 124, 120, 98, 133, 124, 110, 114, 130, 131, 120, 114, 128, 112, 133, 112, 129, 138, 128, 133, 129, 135, 127, 132, 125, 143, 128, 131, 115, 115, 115, 133, 125, 134, 121, 127, 114, 130, 137, 125, 112, 130, 104, 130, 113, 140, 119, 135, 130, 134, 118, 137, 112, 147, 133, 126, 120, 120, 119, 114, 116, 142, 128, 124, 127, 159, 139, 129, 127, 116, 132, 115, 124, 136, 138, 147, 122, 120, 115, 130, 134, 120, 120, 145, 125, 124, 122, 133, 116, 141, 114, 132, 112, 134, 139, 112, 106, 112, 135, 140, 124, 137, 112, 132, 128, 129, 112, 130, 126, 134, 122, 120, 113, 124, 121, 130, 122, 123, 119, 122, 120, 131, 123, 127, 125, 136, 113, 125, 124, 140, 146, 117, 111, 138, 127, 134, 141, 107, 133, 126, 113, 143, 126, 122, 111, 115, 111, 126, 120, 118, 120, 129, 133, 143, 128, 115, 148, 137, 118, 112, 111, 118, 106, 134, 129, 130, 129, 124, 141, 120, 119, 129, 94, 140, 129, 122, 129, 137, 127, 108, 149, 91, 106, 133, 128, 129, 129, 126, 129, 125, 120, 118, 94, 112, 102, 125, 114, 128, 154, 126, 152, 133, 140, 132, 129, 137, 120, 147, 129, 131, 148, 133, 124, 123, 121, 113, 136, 126, 128, 120, 114, 119, 129, 131, 132, 124, 104, 132, 125, 130, 112, 125, 120, 122, 130, 105, 106, 128, 115, 115, 112, 116, 135, 132, 114, 126, 147, 126, 129, 124, 129, 121, 131, 113, 113, 109, 130, 140, 116, 114, 116, 136, 127, 112, 123, 116, 135, 144, 111, 122, 119, 108, 138, 143, 116, 127, 122, 118, 117, 113, 136, 120, 120, 130, 118, 129, 126, 136, 143, 126, 147, 133, 137, 133, 137, 111, 117, 122, 116, 118, 138, 123, 132, 129, 138, 126, 116, 130, 124, 127, 118, 133, 153, 115, 127, 113, 121, 117, 122, 150, 122, 124, 132, 133, 122, 127, 125, 117, 131, 128, 131, 134, 117, 122, 113, 140, 126, 121, 124, 134, 120, 121, 119, 127, 152, 137, 155, 124, 114, 128, 115, 107, 128, 124, 124, 138, 122, 120, 131, 125, 131, 135, 139, 143, 124, 119, 130, 153, 130, 130, 101, 117, 122, 104, 128, 132, 126, 113, 128, 121, 126, 127, 129, 121, 121, 115, 124, 121, 118, 119, 136, 125, 128, 101, 117, 119, 128, 145, 122, 113, 138, 133, 129, 134, 106, 124, 126, 116, 121, 130, 121, 120, 124, 106, 137, 136, 135, 137, 134, 144, 126, 127, 115, 127, 120, 115, 140, 115, 131, 131, 121, 165, 114, 118, 120, 130, 128, 121, 111, 129, 135, 127, 125, 138, 125, 122, 112, 112, 118, 127, 138, 130, 123, 117, 109, 138, 118, 130, 110, 118, 131, 125, 131, 106, 143, 111, 135, 120, 113, 125, 145, 107, 134, 130, 138, 136, 108, 130, 120, 110, 121, 121, 142, 119, 117, 120, 136, 120, 116, 134, 123, 120, 122, 128, 113, 119, 126, 121, 127, 127, 140, 126, 130, 116, 124, 113, 128, 122, 109, 127, 119, 113, 119, 120, 115, 119, 127, 134, 121, 111, 142, 112, 124, 124, 129, 127, 123, 126, 129, 126, 123, 110, 132, 133, 122, 133, 139, 125, 115, 138, 133, 129, 126, 122, 138, 129, 126, 128, 115, 133, 118, 133, 110, 124, 128, 120, 108, 124, 128, 128, 132, 121, 128, 122, 130, 126, 128, 118, 130, 126, 130, 125, 122, 116, 127, 131, 130, 116, 136, 123, 132, 118, 131, 128, 109, 125, 128, 132, 132, 125, 138, 125, 121, 116, 131, 131, 119, 117, 121, 123, 118, 125, 128, 130, 132, 129, 123, 132, 127, 125, 131, 130, 121, 138, 124, 137, 133, 125, 119, 120, 134, 120, 135, 135, 130, 126, 116, 133, 104, 134, 135, 127, 124, 134, 106, 122, 130, 132, 138, 128, 118, 125, 120, 121, 126, 135, 137, 125, 125, 114, 120, 124, 121, 130, 126, 138, 126, 114, 110, 133, 142, 123, 121, 124, 121, 122, 113, 137, 142, 128, 134, 138, 126, 130, 132, 124, 117, 133, 115, 132, 127, 128, 132, 134, 133, 133, 135, 136, 117, 137, 131, 127, 122, 125, 133, 132, 134, 130, 132, 122, 117, 125, 116, 128, 138, 122, 120, 117, 120, 127, 115, 139, 128, 129, 112, 125, 129, 134, 129, 127, 121, 126, 124, 135, 125, 134, 130, 127, 116, 124, 125, 125, 125, 137, 123, 119, 117, 119, 130, 113, 127, 123, 122, 125, 144, 121, 126, 111, 133, 125, 118, 121, 135, 121, 136, 126, 127, 115, 136, 126, 117, 122, 119, 124, 140, 128, 130, 119, 125, 126, 124, 111, 130, 131, 128, 130, 143, 124, 119, 122, 125, 132, 129, 121, 116, 126, 133, 128, 133, 130, 120, 123, 121, 125, 116, 136, 122, 126, 132, 142, 132, 137, 121, 131, 124, 116, 138, 116, 125, 132, 116, 133, 130, 128, 139, 125, 126, 133, 129, 124, 131, 116, 133, 128, 128, 131, 130, 129, 117, 117, 131, 127, 137, 131, 121, 113, 113, 116, 126, 128, 126, 110, 127, 134, 104, 125, 123, 128, 124, 127, 115, 131, 125, 28, 134, 129, 133, 140, 127, 129, 115, 112, 125, 138, 124, 117, 119, 124, 126, 118, 110, 132, 128, 111, 120, 118, 113, 126, 124, 136, 127, 104, 135, 123, 124, 121, 123, 121, 101, 132, 120, 134, 136, 126, 117, 129, 134, 120, 124, 127, 117, 121, 137, 128, 121, 134, 136, 120, 121, 118, 121, 126, 129, 110, 125, 122, 127, 140, 113, 119, 121, 126, 127, 118, 115, 119, 120, 135, 124, 128, 122, 123, 121, 109, 129, 120, 126, 135, 131, 128, 116, 124, 119, 136, 129, 136, 130, 139, 127, 128, 123, 134, 119, 125, 113, 132, 130, 117, 129, 135, 134, 119, 133, 136, 132, 129, 126, 122, 129, 120, 132, 129, 125, 116, 109, 130, 135, 123, 118, 129, 132, 138, 125, 122, 127, 116, 123, 135, 130, 128, 129, 126, 139, 119, 125, 126, 116, 116, 133, 126, 122, 119, 117, 125, 125, 113, 138, 133, 122, 139, 122, 122, 120, 125, 131, 132, 129, 126, 136, 120, 117, 121, 116, 119, 127, 133, 125, 115, 134, 132, 134, 148, 137, 129, 129, 129, 122, 120, 118, 127, 128, 133, 130, 120, 126, 122, 126, 127, 119, 132, 129, 113, 120, 131, 114, 131, 123, 122, 135, 119, 121, 130, 118, 118, 132, 118, 138, 119, 136, 130, 128, 130, 127, 136, 120, 124, 125, 114, 127, 128, 128, 123, 119, 128, 128, 124, 124, 130, 122, 125, 123, 119, 131, 138, 120, 131, 128, 133, 123, 132, 124, 124, 125, 117, 129, 139, 130, 126, 136, 124, 132, 127, 124, 115, 134, 124, 123, 118, 119, 124, 110, 140, 132, 115, 126, 125, 127, 125, 127, 140, 124, 126, 138, 134, 128, 145, 131, 127, 126, 136, 118, 115, 139, 132, 122, 131, 110, 120, 113, 147, 131, 131, 118, 132, 134, 123, 127, 121, 132, 117, 122, 124, 122, 119, 127, 124, 123, 137, 120, 140, 127, 126, 127, 124, 126, 123, 118, 115, 120, 124, 119, 138, 124, 128, 112, 115, 123, 113, 120, 144, 124, 127, 140, 120, 127, 118, 130, 128, 125, 128, 115, 107, 138, 123, 127, 134, 116, 128, 124, 133, 126, 130, 112, 124, 117, 118, 112, 116, 143, 119, 127, 113, 135, 128, 134, 125, 144, 114, 144, 136, 123, 118, 125, 100, 140, 134, 124, 129, 133, 118, 121, 123, 120, 133, 125, 137, 119, 123, 120, 128, 125, 118, 127, 137, 135, 144, 123, 125, 139, 133, 124, 121, 140, 122, 118, 127, 130, 129, 125, 131, 123, 125, 119, 139, 130, 136, 149, 123, 131, 142, 123, 124, 138, 119, 129, 142, 125, 125, 126, 136, 117, 128, 126, 134, 115, 123, 129, 133, 141, 137, 118, 122, 123, 121, 123, 132, 124, 121, 133, 132, 124, 136, 127, 128, 131, 109, 126, 131, 131, 133, 134, 128, 121, 113, 120, 129, 121, 122, 129, 0, 119, 118, 131, 122, 126, 132, 124, 138, 133, 255, 127, 122, 106, 127, 123, 137, 118, 112, 124, 128, 134, 134, 122, 134, 128, 122, 121, 117, 123, 119, 134, 132, 114, 124, 141, 136, 119, 139, 124, 124, 126, 129, 133, 116, 122, 126, 128, 119, 128, 125, 133, 128, 137, 124, 125, 135, 121, 115, 132, 111, 128, 132, 131, 123, 121, 117, 116, 120, 127, 112, 120, 117, 129, 135, 128, 133, 131, 125, 124, 122, 129, 126, 121, 127, 139, 127, 119, 123, 123, 123, 122, 124, 136, 111, 123, 113, 124, 123, 117, 112, 133, 139, 126, 134, 128, 128, 116, 118, 135, 126, 122, 127, 115, 124, 124, 116, 120, 114, 137, 117, 133, 130, 132, 114, 132, 133, 128, 139, 142, 117, 121, 115, 126, 121, 126, 140, 130, 133, 135, 123, 123, 127, 132, 116, 130, 141, 122, 120, 122, 130, 140, 128, 131, 124, 120, 131, 125, 127, 128, 133, 118, 134, 127, 119, 126, 126, 129, 130, 134, 130, 119, 119, 132, 130, 129, 123, 114, 129, 128, 122, 129, 130, 126, 132, 130, 122, 130, 122, 117, 92, 135, 126, 124, 140, 127, 108, 124, 123, 117, 129, 116, 124, 128, 122, 120, 137, 129, 101, 135, 114, 135, 141, 150, 111, 114, 144, 113, 131, 120, 108, 119, 127, 127, 147, 115, 125, 130, 130, 118, 124, 131, 107, 104, 122, 118, 118, 116, 147, 129, 146, 110, 131, 127, 129, 123, 121, 136, 126, 131, 125, 125, 119, 124, 125, 139, 129, 129, 115, 130, 128, 110, 129, 124, 136, 126, 121, 129, 128, 107, 126, 113, 111, 125, 126, 132, 127, 117, 124, 127, 114, 119, 142, 131, 131, 116, 130, 109, 109, 133, 142, 125, 110, 116, 127, 125, 111, 133, 117, 109, 114, 129, 108, 114, 122, 137, 158, 137, 103, 125, 121, 122, 127, 111, 112, 140, 119, 124, 134, 126, 116, 133, 133, 129, 126, 131, 118, 115, 150, 141, 121, 132, 121, 154, 132, 125, 111, 130, 124, 136, 118, 115, 112, 139, 133, 124, 115, 120, 119, 107, 102, 116, 122, 103, 104, 127, 127, 137, 151, 120, 136, 136, 128, 126, 122, 115, 120, 129, 147, 125, 137, 130, 126, 125, 128, 129, 136, 132, 119, 143, 128, 125, 139, 128, 126, 133, 131, 121, 132, 127, 140, 118, 131, 115, 130, 119, 123, 121, 138, 119, 134, 122, 126, 122, 124, 133, 126, 151, 135, 130, 126, 128, 126, 129, 124, 126, 124, 124, 132, 129, 146, 131, 126, 145, 119, 125, 108, 123, 117, 117, 131, 120, 149, 154, 131, 122, 141, 124, 139, 135, 116, 112, 112, 97, 114, 125, 135, 128, 128, 128, 134, 127, 120, 128, 110, 106, 135, 130, 129, 140, 108, 113, 118, 137, 113, 125, 134, 115, 132, 119, 114, 119, 126, 123, 140, 123, 134, 127, 121, 105, 124, 126, 130, 122, 125, 125, 116, 144, 136, 119, 125, 133, 115, 110, 117, 111, 127, 116, 128, 119, 132, 114, 122, 130, 129, 125, 117, 105, 117, 135, 102, 124, 124, 137, 135, 122, 133, 134, 139, 114, 116, 127, 103, 127, 137, 126, 112, 116, 119, 122, 124, 131, 139, 134, 127, 144, 106, 124, 141, 113, 127, 126, 109, 136, 126, 146, 113, 134, 143, 130, 122, 131, 137, 122, 122, 116, 152, 117, 144, 129, 116, 120, 134, 129, 134, 130, 135, 145, 142, 131, 136, 119, 143, 146, 126, 115, 130, 123, 123, 137, 129, 127, 106, 119, 98, 130, 137, 122, 119, 126, 129, 120, 115, 130, 110, 123, 125, 124, 120, 152, 125, 128, 121, 123, 121, 131, 134, 142, 136, 143, 129, 131, 134, 116, 119, 106, 129, 122, 125, 118, 120, 134, 118, 135, 139, 124, 130, 128, 136, 125, 131, 118, 127, 131, 110, 120, 132, 121, 115, 99, 132, 118, 113, 133, 131, 119, 131, 143, 122, 128, 122, 131, 131, 135, 123, 129, 131, 132, 132, 151, 136, 113, 132, 123, 129, 124, 129, 121, 126, 118, 126, 138, 142, 122, 129, 114, 108, 97, 130, 114, 129, 113, 129, 131, 123, 129, 137, 146, 115, 105, 139, 111, 136, 130, 123, 124, 124, 122, 124, 123, 123, 117, 142, 137, 121, 122, 134, 135, 110, 123, 129, 119, 151, 127, 117, 126, 130, 120, 140, 102, 116, 143, 127, 119, 127, 133, 124, 130, 122, 130, 121, 134, 129, 127, 114, 123, 123, 123, 136, 127, 129, 129, 115, 126, 129, 133, 120, 108, 134, 130, 106, 130, 129, 117, 119, 134, 132, 123, 134, 169, 144, 132, 117, 135, 108, 113, 137, 140, 101, 142, 123, 119, 115, 121, 143, 115, 101, 131, 124, 129, 126, 132, 130, 127, 134, 120, 134, 132, 135, 134, 123, 113, 133, 157, 112, 110, 128, 118, 118, 126, 135, 115, 123, 113, 138, 139, 145, 106, 124, 129, 133, 114, 123, 127, 119, 136, 124, 126, 119, 122, 138, 114, 123, 130, 139, 134, 124, 117, 140, 119, 136, 112, 109, 122, 125, 140, 120, 140, 120, 134, 114, 138, 98, 115, 122, 114, 104, 111, 113, 125, 137, 138, 123, 126, 132, 129, 132, 123, 131, 116, 128, 130, 118, 117, 129, 137, 119, 137, 111, 117, 134, 149, 130, 107, 113, 123, 131, 149, 108, 124, 113, 114, 125, 105, 124, 126, 120, 130, 117, 121, 122, 126, 118, 132, 129, 115, 133, 129, 117, 110, 118, 128, 140, 131, 134, 131, 117, 123, 124, 130, 127, 134, 152, 124, 127, 119, 128, 142, 123, 130, 114, 102, 133, 158, 116, 100, 128, 117, 125, 143, 129, 114, 121, 136, 142, 116, 138, 148, 120, 110, 146, 137, 146, 118, 131, 148, 146, 112, 115, 134, 116, 118, 142, 128, 132, 121, 139, 120, 108, 131, 124, 126, 137, 124, 124, 134, 124, 129, 129, 142, 113, 124, 130, 111, 115, 130, 133, 123, 122, 127, 126, 125, 118, 134, 124, 121, 129, 110, 118, 131, 114, 106, 126, 129, 139, 108, 128, 125, 122, 120, 114, 132, 133, 121, 128, 148, 135, 124, 136, 120, 133, 133, 139, 105, 133, 139, 123, 124, 98, 108, 106, 137, 114, 118, 125, 116, 128, 145, 107, 137, 132, 123, 128, 106, 123, 119, 142, 107, 138, 133, 127, 133, 127, 117, 138, 104, 140, 117, 130, 124, 131, 135, 125, 141, 123, 138, 122, 116, 133, 112, 134, 112, 110, 126, 135, 171, 137, 125, 132, 130, 127, 114, 122, 124, 149, 157, 128, 133, 122, 110, 107, 127, 120, 117, 108, 120, 118, 113, 131, 136, 132, 121, 107, 118, 124, 127, 118, 141, 121, 118, 114, 127, 129, 119, 115, 119, 108, 126, 125, 113, 96, 117, 113, 134, 110, 128, 119, 144, 123, 132, 104, 139, 122, 130, 126, 147, 116, 132, 139, 116, 111, 126, 129, 132, 136, 137, 139, 119, 129, 118, 116, 117, 123, 132, 142, 150, 127, 128, 125, 117, 122, 119, 151, 125, 118, 132, 133, 110, 107, 139, 130, 129, 117, 122, 117, 151, 123, 115, 115, 108, 111, 135, 121, 107, 119, 145, 110, 131, 128, 126, 143, 117, 113, 139, 129, 131, 101, 119, 142, 118, 146, 122, 150, 120, 124, 117, 130, 129, 135, 139, 127, 133, 134, 130, 123, 137, 132, 131, 146, 124, 138, 135, 135, 143, 125, 121, 140, 124, 112, 137, 130, 124, 119, 121, 112, 131, 135, 117, 134, 123, 107, 119, 131, 123, 114, 114, 121, 124, 123, 126, 120, 124, 122, 133, 126, 143, 124, 126, 135, 123, 117, 109, 127, 128, 121, 106, 126, 110, 145, 111, 126, 123, 125, 133, 128, 127, 121, 148, 153, 137, 120, 141, 127, 122, 128, 123, 113, 141, 127, 118, 113, 106, 131, 113, 97, 124, 117, 120, 140, 124, 137, 135, 108, 120, 140, 121, 132, 122, 114, 129, 121, 111, 113, 116, 120, 152, 113, 124, 123, 129, 123, 126, 131, 114, 116, 126, 113, 123, 121, 138, 133, 130, 136, 129, 115, 130, 113, 139, 125, 138, 130, 131, 128, 134, 143, 124, 128, 109, 125, 136, 125, 138, 124, 130, 134, 104, 125, 139, 126, 130, 119, 123, 126, 112, 121, 125, 125, 130, 133, 121, 120, 109, 139, 122, 130, 105, 122, 128, 123, 123, 125, 124, 97, 133, 122, 146, 115, 126, 117, 141, 121, 117, 106, 117, 134, 137, 130, 115, 117, 125, 105, 127, 136, 151, 127, 128, 134, 131, 106, 131, 119, 102, 134, 124, 142, 106, 126, 116, 117, 130, 135, 132, 118, 123, 131, 128, 126, 114, 108, 137, 131, 109, 129, 120, 117, 121, 145, 153, 141, 132, 138, 126, 123, 128, 142, 134, 145, 116, 115, 123, 137, 134, 126, 123, 134, 135, 120, 120, 129, 129, 106, 133, 114, 129, 120, 127, 120, 127, 143, 128, 109, 121, 129, 114, 116, 115, 129, 116, 116, 134, 120, 151, 121, 128, 127, 133, 121, 126, 130, 127, 126, 147, 143, 117, 148, 138, 136, 125, 122, 127, 141, 137, 122, 133, 151, 129, 125, 102, 114, 137, 108, 99, 133, 122, 123, 108, 115, 128, 114, 100, 121, 109, 131, 121, 126, 116, 118, 125, 135, 129, 119, 156, 122, 138, 122, 132, 127, 135, 117, 129, 120, 113, 106, 127, 138, 118, 129, 134, 113, 105, 134, 126, 123, 129, 126, 118, 123, 117, 126, 113, 114, 109, 121, 122, 136, 125, 137, 129, 127, 135, 128, 115, 116, 105, 101, 103, 128, 119, 127, 120, 112, 116, 126, 132, 119, 137, 114, 126, 126, 136, 127, 135, 134, 129, 121, 137, 117, 120, 118, 132, 125, 158, 129, 116, 134, 133, 135, 113, 139, 128, 129, 133, 125, 111, 121, 123, 127, 108, 117, 125, 138, 121, 132, 117, 131, 112, 131, 124, 116, 129, 130, 134, 107, 134, 108, 133, 115, 122, 129, 126, 126, 132, 125, 138, 122, 133, 119, 139, 110, 139, 124, 115, 139, 110, 133, 144, 127, 127, 118, 118, 133, 134, 124, 134, 125, 130, 119, 145, 115, 130, 139, 122, 115, 117, 149, 134, 130, 126, 123, 116, 125, 144, 122, 122, 124, 104, 120, 118, 131, 137, 120, 125, 117, 134, 125, 104, 113, 141, 128, 124, 118, 132, 130, 107, 107, 132, 130, 136, 129, 128, 117, 124, 125, 109, 121, 123, 119, 127, 140, 143, 127, 131, 119, 122, 122, 110, 128, 142, 136, 119, 142, 126, 135, 108, 124, 118, 115, 137, 147, 131, 146, 108, 117, 119, 124, 134, 115, 107, 121, 113, 127, 130, 119, 121, 125, 121, 123, 114, 121, 129, 134, 134, 121, 111, 130, 119, 122, 121, 127, 119, 135, 116, 130, 92, 113, 121, 125, 97, 130, 141, 133, 124, 140, 114, 128, 134, 111, 150, 113, 128, 138, 117, 138, 137, 116, 121, 124, 109, 124, 121, 130, 147, 117, 142, 128, 113, 126, 133, 135, 136, 115, 116, 122, 112, 118, 113, 127, 135, 125, 143, 118, 141, 123, 118, 108, 117, 114, 132, 115, 124, 133, 123, 137, 129, 128, 114, 122, 128, 147, 126, 123, 136, 107, 135, 127, 129, 123, 116, 140, 131, 113, 123, 120, 103, 129, 125, 141, 119, 127, 113, 132, 121, 127, 136, 101, 121, 115, 130, 120, 104, 117, 126, 126, 131, 117, 105, 125, 105, 111, 129, 116, 124, 114, 114, 114, 119, 103, 99, 144, 136, 126, 129, 119, 132, 116, 126, 118, 117, 124, 136, 109, 134, 138, 118, 128, 124, 123, 125, 139, 126, 128, 135, 114, 128, 125, 136, 116, 123, 127, 120, 129, 134, 138, 141, 127, 119, 127, 135, 124, 112, 122, 116, 129, 140, 143, 123, 129, 142, 129, 124, 126, 124, 129, 121, 144, 100, 112, 123, 120, 122, 142, 122, 133, 117, 110, 127, 130, 125, 118, 138, 113, 136, 135, 130, 147, 127, 131, 111, 121, 129, 123, 132, 139, 147, 130, 109, 124, 129, 110, 129, 135, 113, 122, 118, 116, 127, 128, 112, 116, 105, 119, 134, 113, 122, 130, 129, 136, 144, 105, 119, 109, 132, 151, 138, 131, 126, 122, 133, 101, 134, 133, 120, 136, 127, 133, 137, 115, 129, 159, 114, 101, 125, 137, 111, 117, 124, 127, 117, 113, 123, 126, 138, 118, 124, 118, 130, 135, 125, 137, 131, 148, 137, 147, 122, 128, 117, 141, 104, 129, 127, 116, 119, 121, 128, 117, 123, 101, 125, 123, 121, 126, 107, 132, 116, 122, 135, 112, 131, 123, 125, 118, 103, 122, 112, 146, 123, 111, 123, 132, 106, 124, 131, 123, 120, 139, 129, 128, 115, 125, 127, 142, 128, 121, 124, 125, 121, 121, 148, 110, 120, 140, 143, 120, 108, 126, 146, 118, 134, 118, 127, 121, 109, 109, 136, 123, 109, 123, 140, 119, 122, 138, 132, 121, 126, 113, 133, 134, 139, 128, 119, 121, 135, 140, 126, 119, 135, 129, 126, 118, 128, 140, 130, 130, 129, 142, 123, 123, 139, 133, 122, 128, 132, 132, 144, 135, 128, 112, 122, 121, 121, 128, 131, 120, 130, 137, 124, 125, 147, 131, 135, 116, 122, 129, 134, 127, 125, 108, 131, 109, 128, 133, 116, 123, 120, 115, 116, 137, 113, 137, 122, 123, 123, 122, 123, 127, 122, 110, 116, 112, 145, 114, 137, 135, 120, 138, 117, 118, 128, 137, 121, 145, 127, 139, 131, 122, 132, 116, 147, 122, 130, 129, 125, 116, 140, 125, 124, 130, 127, 134, 111, 110, 129, 141, 123, 130, 128, 123, 126, 119, 134, 129, 130, 138, 128, 114, 122, 128, 123, 146, 114, 129, 142, 109, 128, 121, 147, 118, 150, 106, 126, 131, 145, 135, 133, 118, 130, 138, 125, 128, 136, 142, 123, 122, 149, 147, 120, 125, 142, 143, 114, 131, 106, 118, 119, 133, 120, 122, 120, 122, 115, 112, 129, 130, 119, 124, 152, 121, 123, 116, 108, 123, 133, 114, 120, 130, 114, 122, 110, 117, 136, 128, 118, 144, 125, 130, 127, 129, 119, 131, 136, 122, 128, 118, 134, 117, 126, 118, 141, 134, 132, 138, 123, 128, 117, 115, 121, 115, 112, 140, 131, 130, 114, 129, 141, 133, 118, 121, 119, 129, 128, 136, 121, 139, 131, 130, 142, 122, 121, 130, 155, 109, 136, 128, 131, 127, 124, 121, 125, 128, 133, 120, 122, 132, 123, 129, 120, 125, 137, 122, 113, 123, 119, 133, 105, 142, 140, 135, 125, 125, 129, 114, 138, 112, 126, 121, 140, 132, 128, 98, 108, 142, 110, 134, 112, 131, 151, 127, 141, 130, 136, 130, 120, 134, 118, 119, 119, 118, 101, 137, 120, 126, 122, 139, 134, 124, 123, 129, 123, 120, 114, 127, 121, 114, 105, 127, 130, 117, 125, 100, 120, 127, 131, 115, 130, 125, 128, 108, 129, 121, 134, 122, 110, 128, 133, 120, 110, 117, 159, 115, 120, 130, 143, 120, 133, 135, 130, 124, 122, 133, 132, 132, 116, 141, 116, 145, 125, 139, 118, 124, 129, 137, 121, 127, 141, 138, 149, 137, 129, 127, 129, 129, 128, 118, 136, 144, 131, 110, 144, 113, 128, 129, 123, 115, 139, 128, 107, 117, 129, 129, 121, 130, 128, 133, 128, 120, 135, 139, 114, 124, 130, 134, 129, 125, 130, 124, 143, 128, 130, 114, 131, 134, 121, 116, 136, 125, 136, 124, 117, 126, 119, 118, 126, 135, 142, 118, 123, 149, 138, 118, 121, 148, 139, 136, 120, 120, 123, 135, 123, 99, 130, 112, 134, 134, 125, 106, 105, 133, 127, 136, 144, 125, 124, 128, 143, 117, 130, 132, 121, 116, 119, 95, 115, 124, 134, 136, 121, 145, 130, 136, 144, 119, 129, 132, 106, 121, 131, 131, 125, 111, 121, 118, 112, 133, 114, 133, 138, 124, 142, 110, 118, 130, 133, 117, 110, 126, 115, 123, 114, 128, 156, 130, 123, 117, 130, 97, 122, 124, 134, 120, 113, 118, 116, 122, 138, 130, 132, 140, 122, 141, 104, 141, 112, 145, 122, 117, 130, 134, 123, 135, 121, 112, 129, 154, 128, 110, 115, 127, 119, 130, 111, 116, 133, 128, 103, 123, 135, 121, 129, 118, 108, 120, 112, 119, 110, 132, 133, 118, 161, 119, 116, 131, 120, 131, 122, 118, 122, 134, 125, 117, 135, 137, 134, 116, 135, 133, 133, 139, 127, 122, 134, 132, 119, 135, 99, 125, 118, 114, 126, 119, 114, 130, 121, 134, 124, 124, 115, 126, 129, 123, 138, 122, 146, 149, 131, 96, 145, 119, 114, 128, 117, 109, 118, 117, 132, 121, 105, 119, 116, 129, 106, 131, 135, 136, 124, 143, 113, 122, 104, 121, 125, 129, 149, 127, 117, 113, 144, 149, 131, 110, 117, 155, 124, 131, 145, 106, 132, 100, 115, 130, 125, 129, 113, 132, 112, 130, 126, 124, 128, 138, 124, 121, 103, 131, 136, 135, 138, 125, 129, 123, 141, 139, 145, 126, 147, 123, 131, 130, 112, 112, 112, 131, 117, 125, 123, 131, 115, 118, 111, 120, 121, 109, 152, 121, 118, 124, 131, 135, 121, 131, 112, 106, 160, 134, 134, 125, 119, 117, 114, 144, 130, 136, 124, 128, 125, 118, 126, 128, 119, 123, 139, 137, 117, 120, 109, 118, 124, 129, 126, 143, 116, 127, 111, 120, 125, 138, 135, 112, 145, 143, 122, 97, 126, 125, 105, 137, 130, 136, 139, 117, 118, 128, 100, 145, 118, 121, 132, 104, 119, 132, 123, 132, 131, 125, 118, 128, 129, 121, 133, 116, 125, 114, 120, 126, 136, 121, 153, 107, 128, 124, 118, 133, 122, 110, 128, 117, 115, 138, 127, 131, 126, 116, 118, 126, 130, 123, 116, 123, 136, 116, 125, 108, 118, 122, 113, 112, 137, 134, 121, 113, 119, 122, 146, 131, 154, 132, 125, 127, 110, 131, 129, 121, 132, 134, 129, 121, 128, 125, 121, 123, 123, 122, 137, 135, 142, 135, 127, 132, 124, 133, 126, 133, 132, 130, 132, 113, 146, 109, 126, 105, 114, 123, 121, 147, 126, 112, 125, 139, 123, 131, 133, 125, 142, 117, 123, 136, 114, 118, 124, 105, 137, 122, 125, 114, 117, 127, 126, 114, 130, 134, 109, 126, 118, 131, 133, 136, 136, 137, 104, 116, 134, 126, 121, 119, 128, 138, 124, 124, 142, 128, 117, 112, 120, 128, 123, 146, 130, 149, 123, 111, 116, 112, 113, 134, 135, 122, 129, 131, 131, 131, 119, 134, 124, 135, 122, 126, 133, 122, 101, 124, 130, 126, 149, 120, 128, 129, 116, 116, 95, 140, 128, 116, 115, 141, 112, 132, 126, 135, 118, 120, 129, 131, 118, 123, 143, 129, 116, 135, 138, 123, 129, 111, 118, 127, 135, 131, 137, 124, 127, 118, 120, 120, 142, 128, 135, 107, 124, 124, 127, 145, 123, 132, 127, 155, 121, 106, 120, 138, 132, 126, 141, 128, 123, 123, 116, 129, 133, 131, 118, 124, 144, 123, 125, 133, 119, 141, 129, 117, 117, 121, 109, 107, 124, 117, 118, 136, 120, 112, 122, 119, 118, 134, 143, 134, 134, 138, 115, 141, 122, 108, 114, 117, 133, 118, 123, 120, 130, 124, 110, 122, 124, 130, 118, 119, 124, 116, 133, 128, 128, 118, 125, 115, 148, 126, 118, 127, 131, 128, 126, 118, 136, 129, 99, 139, 118, 126, 131, 121, 125, 125, 122, 120, 126, 127, 133, 103, 138, 143, 120, 111, 121, 115, 128, 106, 117, 122, 148, 112, 113, 139, 127, 119, 115, 128, 129, 131, 102, 134, 131, 119, 126, 139, 125, 128, 132, 131, 131, 131, 126, 90, 127, 123, 126, 126, 104, 107, 124, 130, 129, 114, 152, 133, 111, 127, 134, 135, 111, 120, 131, 115, 120, 121, 116, 127, 108, 119, 113, 126, 135, 140, 119, 127, 115, 145, 135, 127, 136, 139, 125, 137, 133, 127, 124, 102, 133, 117, 121, 132, 132, 130, 143, 128, 129, 132, 137, 152, 123, 100, 127, 126, 133, 133, 128, 122, 140, 136, 137, 110, 150, 150, 120, 124, 121, 131, 138, 117, 106, 122, 121, 123, 110, 122, 127, 127, 148, 136, 126, 123, 133, 126, 113, 128, 136, 112, 141, 138, 116, 122, 142, 149, 119, 109, 121, 116, 133, 115, 116, 136, 124, 120, 134, 113, 130, 131, 150, 132, 135, 120, 116, 125, 122, 138, 123, 123, 125, 132, 126, 132, 114, 133, 125, 116, 125, 124, 115, 125, 139, 132, 134, 134, 143, 124, 128, 128, 119, 114, 124, 125, 116, 104, 123, 128, 133, 117, 138, 135, 124, 126, 119, 114, 138, 112, 120, 143, 130, 129, 116, 126, 136, 108, 111, 137, 123, 133, 143, 131, 116, 138, 139, 125, 107, 116, 129, 139, 126, 127, 118, 129, 135, 116, 120, 113, 114, 114, 126, 114, 135, 122, 132, 120, 127, 111, 125, 133, 127, 121, 115, 123, 138, 110, 138, 122, 136, 129, 124, 124, 131, 108, 124, 125, 133, 135, 132, 129, 130, 123, 117, 115, 123, 127, 131, 126, 122, 110, 128, 112, 113, 136, 137, 128, 112, 129, 137, 131, 135, 132, 141, 124, 133, 139, 123, 121, 119, 124, 134, 102, 129, 103, 130, 105, 124, 129, 142, 132, 137, 143, 121, 140, 126, 128, 110, 124, 133, 130, 119, 132, 130, 130, 123, 126, 127, 110, 131, 128, 128, 124, 119, 116, 130, 99, 144, 123, 121, 131, 115, 133, 125, 122, 123, 119, 138, 118, 117, 135, 118, 148, 134, 131, 123, 139, 130, 129, 125, 143, 118, 116, 122, 117, 145, 122, 120, 123, 143, 124, 128, 120, 124, 130, 127, 118, 114, 129, 126, 114, 129, 145, 123, 102, 117, 126, 124, 130, 121, 144, 111, 131, 128, 122, 116, 124, 139, 135, 114, 142, 125, 133, 120, 139, 140, 129, 143, 124, 141, 108, 144, 130, 128, 122, 134, 131, 133, 129, 129, 113, 117, 112, 118, 144, 136, 119, 130, 125, 120, 136, 108, 122, 118, 111, 147, 123, 117, 120, 138, 123, 127, 117, 141, 104, 141, 148, 110, 110, 126, 132, 123, 124, 129, 133, 117, 124, 130, 129, 135, 123, 130, 132, 117, 105, 147, 119, 127, 126, 118, 112, 128, 131, 131, 133, 122, 123, 133, 123, 127, 127, 126, 110, 109, 113, 125, 119, 133, 123, 130, 138, 130, 123, 128, 117, 122, 113, 122, 119, 138, 125, 119, 125, 143, 119, 119, 128, 130, 114, 127, 111, 122, 112, 119, 120, 105, 118, 132, 130, 122, 132, 124, 132, 123, 130, 114, 120, 128, 142, 132, 108, 121, 112, 123, 129, 135, 120, 143, 135, 128, 115, 133, 112, 108, 127, 132, 114, 128, 137, 134, 119, 117, 133, 132, 116, 129, 121, 129, 137, 101, 124, 126, 123, 137, 122, 125, 148, 124, 115, 118, 127, 121, 121, 123, 123, 106, 122, 125, 130, 136, 121, 128, 140, 124, 130, 138, 118, 131, 154, 99, 126, 125, 133, 115, 123, 134, 123, 117, 128, 151, 120, 119, 130, 133, 123, 132, 137, 129, 119, 144, 133, 146, 119, 111, 134, 125, 144, 122, 127, 138, 138, 122, 133, 130, 139, 123, 133, 128, 122, 113, 127, 132, 120, 114, 123, 140, 140, 126, 136, 128, 125, 131, 122, 130, 121, 126, 113, 113, 116, 144, 120, 149, 120, 131, 146, 138, 122, 110, 131, 147, 126, 145, 136, 118, 136, 128, 127, 136, 126, 119, 126, 129, 140, 124, 126, 126, 127, 138, 120, 131, 119, 128, 131, 127, 123, 116, 112, 121, 113, 123, 124, 97, 122, 138, 122, 123, 130, 129, 119, 133, 150, 123, 128, 123, 122, 110, 131, 136, 112, 117, 122, 112, 133, 114, 126, 124, 139, 133, 144, 111, 115, 145, 133, 113, 104, 117, 121, 99, 144, 112, 138, 135, 137, 124, 129, 110, 125, 138, 132, 129, 123, 121, 128, 116, 137, 130, 127, 125, 125, 127, 115, 123, 136, 122, 138, 114, 127, 126, 125, 129, 128, 134, 121, 122, 124, 125, 127, 124, 125, 124, 136, 100, 105, 117, 131, 132, 138, 130, 115, 111, 109, 107, 113, 134, 120, 131, 124, 129, 115, 153, 147, 130, 125, 118, 117, 138, 112, 133, 130, 125, 125, 143, 131, 147, 129, 133, 132, 120, 109, 135, 162, 131, 113, 116, 114, 124, 117, 130, 176, 126, 106, 111, 123, 112, 123, 129, 106, 130, 121, 127, 115, 140, 120, 139, 148, 144, 137, 123, 148, 128, 131, 125, 126, 106, 109, 134, 121, 134, 154, 139, 128, 121, 119, 124, 121, 123, 124, 125, 125, 109, 130, 127, 132, 120, 119, 137, 126, 123, 118, 107, 131, 119, 131, 129, 124, 127, 106, 119, 138, 112, 122, 120, 128, 119, 114, 113, 117, 134, 140, 119, 105, 132, 130, 124, 116, 128, 136, 128, 116, 103, 125, 123, 126, 127, 126, 113, 135, 124, 125, 122, 121, 139, 141, 122, 119, 115, 150, 130, 135, 121, 131, 124, 116, 147, 115, 111, 109, 110, 117, 124, 120, 127, 122, 113, 121, 124, 127, 118, 115, 121, 125, 132, 142, 127, 110, 120, 125, 120, 119, 106, 142, 142, 128, 134, 129, 124, 115, 128, 128, 116, 139, 125, 145, 125, 136, 123, 104, 118, 139, 112, 133, 123, 124, 127, 130, 116, 139, 137, 139, 132, 116, 126, 126, 135, 130, 107, 119, 122, 122, 138, 134, 140, 113, 126, 125, 128, 111, 139, 137, 140, 115, 102, 118, 128, 126, 105, 128, 136, 108, 131, 110, 122, 128, 121, 118, 133, 114, 112, 130, 115, 123, 125, 116, 129, 121, 130, 145, 125, 128, 119, 124, 112, 135, 119, 112, 124, 129, 116, 129, 117, 131, 133, 118, 111, 114, 119, 125, 133, 134, 146, 126, 146, 140, 121, 131, 134, 149, 109, 127, 124, 111, 128, 130, 130, 118, 148, 141, 112, 138, 140, 126, 112, 120, 120, 124, 128, 120, 119, 133, 130, 125, 129, 107, 139, 119, 124, 120, 116, 125, 127, 122, 121, 123, 120, 126, 122, 129, 122, 129, 133, 111, 133, 140, 143, 124, 116, 119, 126, 133, 128, 125, 121, 119, 134, 143, 118, 134, 132, 146, 118, 134, 123, 131, 142, 141, 123, 124, 124, 134, 135, 145, 124, 124, 117, 137, 118, 120, 105, 119, 121, 128, 122, 118, 113, 142, 118, 114, 130, 117, 120, 118, 123, 150, 130, 126, 106, 145, 133, 123, 144, 122, 110, 135, 131, 130, 116, 122, 122, 146, 133, 125, 130, 110, 137, 122, 127, 120, 140, 127, 127, 121, 117, 122, 130, 127, 126, 131, 122, 123, 122, 130, 124, 138, 149, 126, 146, 124, 125, 104, 128, 111, 137, 119, 141, 116, 133, 118, 137, 124, 116, 119, 127, 115, 141, 119, 125, 129, 106, 117, 145, 123, 118, 133, 131, 128, 130, 120, 111, 125, 138, 119, 118, 134, 128, 134, 126, 111, 121, 147, 122, 126, 139, 141, 123, 125, 125, 107, 114, 111, 105, 137, 119, 120, 104, 128, 131, 129, 133, 131, 142, 137, 134, 111, 138, 113, 152, 118, 131, 107, 137, 129, 143, 138, 127, 128, 134, 131, 128, 137, 129, 119, 139, 117, 127, 126, 135, 109, 121, 135, 138, 113, 116, 122, 123, 124, 124, 125, 106, 120, 120, 123, 107, 123, 119, 122, 121, 119, 129, 130, 113, 136, 119, 113, 119, 118, 116, 126, 120, 119, 126, 119, 121, 116, 145, 133, 100, 137, 126, 111, 135, 132, 119, 130, 104, 126, 143, 136, 125, 125, 131, 132, 129, 128, 119, 136, 124, 119, 129, 145, 120, 132, 125, 111, 129, 125, 135, 135, 126, 122, 117, 152, 134, 134, 149, 111, 130, 124, 126, 118, 131, 126, 122, 134, 120, 117, 124, 124, 130, 123, 132, 137, 138, 129, 124, 116, 128, 127, 109, 127, 112, 127, 132, 125, 128, 126, 128, 120, 130, 136, 146, 125, 131, 143, 131, 112, 148, 135, 124, 117, 142, 114, 117, 116, 116, 120, 113, 137, 122, 119, 136, 133, 125, 125, 128, 115, 138, 129, 119, 120, 103, 116, 124, 110, 117, 127, 136, 133, 113, 133, 129, 117, 120, 103, 129, 127, 120, 117, 108, 129, 127, 132, 119, 122, 131, 119, 120, 119, 111, 141, 128, 119, 128, 121, 128, 131, 126, 119, 127, 129, 129, 132, 134, 127, 126, 130, 122, 137, 120, 136, 130, 131, 119, 143, 124, 121, 123, 114, 117, 123, 132, 127, 133, 115, 140, 132, 136, 115, 119, 130, 116, 120, 120, 121, 130, 129, 118, 134, 134, 121, 120, 138, 133, 116, 117, 137, 123, 120, 149, 102, 141, 136, 114, 134, 128, 134, 129, 107, 127, 137, 139, 118, 102, 125, 115, 128, 127, 148, 120, 144, 124, 114, 130, 115, 110, 126, 148, 131, 115, 135, 104, 112, 142, 121, 124, 104, 126, 133, 130, 123, 134, 140, 151, 119, 146, 124, 121, 127, 116, 127, 132, 121, 138, 115, 135, 139, 129, 122, 127, 123, 132, 124, 131, 140, 127, 118, 131, 112, 130, 130, 129, 133, 127, 136, 137, 129, 121, 113, 128, 123, 108, 116, 117, 138, 144, 123, 112, 124, 134, 120, 133, 125, 117, 157, 132, 119, 120, 129, 123, 123, 128, 129, 119, 138, 156, 118, 107, 130, 115, 144, 130, 117, 120, 104, 108, 122, 119, 128, 109, 120, 133, 128, 117, 126, 143, 125, 121, 117, 128, 126, 122, 132, 130, 125, 113, 134, 127, 116, 143, 132, 143, 118, 138, 125, 145, 129, 125, 133, 116, 114, 119, 128, 122, 129, 115, 118, 126, 130, 137, 107, 121, 130, 144, 122, 117, 113, 125, 132, 143, 126, 126, 125, 131, 121, 145, 122, 115, 127, 128, 125, 119, 116, 138, 101, 128, 121, 125, 110, 120, 112, 129, 125, 131, 125, 119, 119, 127, 138, 142, 140, 128, 129, 125, 119, 120, 125, 131, 123, 139, 123, 131, 121, 118, 113, 135, 132, 136, 124, 107, 122, 130, 124, 144, 135, 121, 111, 114, 137, 121, 136, 119, 126, 140, 123, 118, 143, 134, 123, 134, 128, 126, 131, 150, 130, 120, 122, 138, 120, 141, 127, 131, 125, 137, 134, 119, 124, 134, 135, 139, 132, 127, 124, 117, 132, 131, 122, 117, 120, 108, 140, 121, 116, 129, 107, 135, 109, 112, 122, 130, 141, 134, 125, 124, 117, 137, 145, 110, 120, 110, 129, 120, 126, 130, 119, 142, 117, 138, 107, 129, 124, 143, 152, 130, 128, 118, 126, 137, 114, 135, 126, 129, 121, 121, 129, 147, 132, 131, 132, 120, 125, 127, 100, 112, 128, 126, 128, 113, 122, 132, 129, 139, 131, 112, 136, 115, 127, 109, 108, 131, 119, 133, 124, 131, 117, 138, 102, 133, 109, 138, 128, 121, 121, 114, 119, 130, 125, 137, 132, 113, 148, 130, 145, 124, 121, 129, 120, 130, 115, 123, 124, 140, 141, 123, 132, 119, 130, 143, 129, 129, 134, 123, 110, 129, 120, 129, 123, 108, 134, 138, 121, 111, 123, 119, 128, 124, 132, 132, 135, 129, 126, 115, 125, 117, 128, 118, 145, 133, 122, 120, 149, 130, 132, 126, 125, 123, 114, 134, 133, 124, 99, 131, 119, 138, 123, 133, 126, 121, 125, 117, 117, 141, 120, 108, 110, 106, 96, 97, 121, 159, 122, 134, 120, 122, 132, 121, 109, 113, 128, 127, 130, 144, 136, 120, 134, 128, 124, 138, 127, 128, 133, 119, 139, 127, 115, 117, 146, 129, 121, 123, 141, 120, 112, 126, 140, 136, 134, 128, 119, 124, 129, 125, 131, 130, 129, 107, 122, 136, 114, 158, 131, 119, 130, 118, 123, 118, 124, 108, 134, 141, 126, 123, 115, 133, 126, 128, 128, 122, 130, 122, 119, 132, 112, 118, 127, 134, 123, 117, 123, 123, 114, 139, 130, 127, 115, 118, 119, 134, 127, 114, 130, 119, 135, 116, 124, 124, 108, 125, 123, 120, 125, 130, 121, 125, 126, 118, 130, 117, 113, 140, 116, 126, 127, 128, 131, 120, 137, 121, 102, 134, 125, 132, 137, 132, 131, 129, 130, 129, 127, 139, 126, 129, 119, 142, 98, 126, 113, 117, 119, 156, 140, 124, 121, 114, 116, 119, 128, 125, 125, 123, 129, 143, 137, 123, 122, 120, 131, 128, 127, 133, 144, 118, 143, 123, 127, 138, 128, 121, 114, 121, 117, 131, 125, 133, 152, 123, 132, 123, 129, 130, 140, 148, 134, 122, 115, 132, 118, 133, 119, 130, 124, 128, 122, 141, 141, 127, 113, 127, 122, 113, 118, 129, 119, 126, 118, 118, 123, 116, 136, 121, 142, 129, 150, 127, 134, 137, 134, 128, 130, 123, 129, 122, 116, 131, 111, 114, 131, 115, 109, 113, 101, 120, 122, 118, 135, 115, 138, 122, 122, 113, 137, 106, 119, 136, 143, 126, 135, 134, 117, 129, 108, 158, 124, 139, 123, 116, 119, 123, 115, 132, 115, 117, 117, 116, 122, 127, 138, 132, 138, 130, 126, 123, 119, 121, 116, 114, 102, 126, 122, 123, 116, 132, 131, 135, 114, 123, 121, 131, 121, 107, 129, 111, 110, 132, 123, 131, 124, 136, 136, 121, 130, 140, 116, 121, 122, 145, 125, 119, 136, 121, 139, 109, 131, 138, 103, 112, 115, 126, 122, 125, 139, 113, 117, 128, 140, 126, 102, 143, 116, 110, 141, 119, 120, 143, 127, 146, 114, 124, 126, 131, 126, 121, 118, 126, 126, 126, 134, 157, 142, 137, 140, 123, 134, 100, 137, 120, 115, 130, 137, 120, 125, 143, 134, 122, 117, 110, 122, 136, 127, 136, 126, 120, 118, 128, 121, 130, 120, 127, 127, 120, 123, 129, 135, 130, 123, 138, 142, 141, 126, 103, 156, 129, 127, 136, 119, 133, 128, 122, 128, 132, 122, 137, 121, 110, 113, 121, 132, 126, 137, 121, 124, 107, 124, 108, 118, 120, 130, 121, 122, 146, 120, 117, 126, 125, 115, 123, 134, 136, 132, 152, 122, 117, 122, 121, 111, 130, 135, 155, 122, 124, 134, 137, 114, 134, 112, 133, 136, 122, 142, 137, 135, 109, 122, 124, 128, 123, 154, 126, 119, 122, 126, 131, 125, 118, 141, 131, 140, 118, 140, 133, 128, 130, 141, 120, 118, 120, 119, 119, 109, 116, 113, 127, 140, 132, 112, 125, 128, 130, 152, 118, 116, 116, 122, 127, 111, 118, 131, 137, 110, 133, 119, 141, 124, 122, 131, 111, 125, 121, 133, 113, 112, 118, 158, 116, 132, 116, 132, 121, 114, 117, 125, 126, 123, 122, 134, 120, 141, 108, 132, 114, 112, 128, 124, 136, 110, 111, 123, 121, 132, 130, 112, 131, 135, 129, 127, 125, 126, 126, 118, 128, 118, 115, 134, 131, 138, 129, 123, 142, 116, 115, 148, 135, 121, 136, 118, 122, 124, 136, 109, 125, 103, 116, 120, 116, 125, 119, 135, 122, 118, 111, 115, 110, 134, 122, 114, 119, 128, 116, 119, 128, 121, 137, 123, 124, 112, 125, 123, 134, 118, 126, 146, 127, 111, 121, 126, 123, 130, 125, 105, 124, 122, 118, 128, 125, 129, 119, 137, 122, 123, 120, 118, 116, 130, 119, 136, 128, 135, 126, 138, 127, 126, 140, 109, 112, 140, 139, 102, 112, 115, 118, 134, 126, 132, 125, 140, 135, 127, 117, 117, 117, 111, 111, 123, 115, 129, 130, 123, 132, 115, 114, 117, 122, 121, 104, 114, 135, 125, 124, 121, 149, 132, 148, 125, 111, 133, 147, 136, 111, 102, 134, 126, 117, 128, 123, 131, 130, 122, 119, 140, 131, 112, 120, 129, 113, 124, 109, 132, 106, 131, 133, 115, 129, 143, 108, 134, 133, 127, 137, 135, 145, 130, 121, 122, 122, 122, 128, 119, 126, 142, 126, 132, 114, 134, 113, 130, 134, 137, 122, 121, 129, 124, 112, 103, 104, 146, 132, 116, 118, 111, 149, 117, 129, 110, 121, 127, 126, 109, 131, 131, 114, 134, 93, 115, 139, 120, 133, 128, 123, 122, 120, 115, 132, 123, 123, 107, 116, 133, 126, 118, 115, 137, 129, 112, 134, 133, 141, 143, 122, 115, 126, 109, 122, 124, 130, 123, 137, 135, 118, 113, 136, 124, 122, 138, 120, 123, 124, 121, 111, 134, 139, 115, 112, 130, 111, 119, 117, 138, 130, 122, 131, 124, 110, 122, 107, 127, 120, 133, 132, 141, 139, 138, 97, 126, 136, 137, 137, 147, 127, 124, 125, 118, 128, 131, 119, 135, 128, 138, 109, 127, 139, 121, 124, 127, 126, 130, 115, 143, 125, 124, 114, 137, 137, 122, 123, 130, 126, 123, 126, 146, 114, 144, 121, 114, 129, 88, 139, 145, 127, 126, 119, 141, 121, 133, 131, 129, 128, 108, 129, 129, 132, 129, 122, 134, 128, 122, 117, 120, 127, 109, 112, 101, 112, 124, 130, 126, 123, 131, 130, 134, 123, 103, 129, 116, 142, 121, 129, 125, 122, 111, 124, 117, 132, 132, 103, 125, 108, 135, 104, 132, 110, 100, 137, 127, 126, 117, 122, 110, 118, 144, 130, 139, 129, 103, 124, 136, 132, 113, 108, 100, 135, 117, 139, 136, 123, 137, 125, 129, 105, 135, 118, 114, 128, 125, 133, 131, 117, 125, 141, 105, 127, 119, 123, 126, 118, 122, 114, 124, 134, 126, 144, 125, 123, 139, 161, 106, 139, 113, 112, 135, 122, 125, 104, 114, 117, 131, 124, 134, 122, 145, 134, 124, 131, 132, 147, 128, 131, 120, 133, 108, 131, 146, 129, 137, 123, 97, 123, 102, 128, 133, 112, 117, 111, 120, 123, 129, 130, 129, 147, 121, 117, 105, 143, 127, 123, 118, 115, 121, 105, 136, 131, 114, 121, 127, 111, 121, 129, 138, 116, 129, 143, 122, 128, 139, 128, 136, 120, 133, 124, 116, 105, 136, 106, 120, 120, 133, 116, 109, 122, 116, 132, 135, 123, 130, 127, 133, 129, 120, 124, 116, 118, 107, 121, 121, 116, 124, 115, 132, 140, 106, 141, 112, 112, 129, 131, 134, 127, 139, 135, 135, 138, 136, 115, 136, 112, 101, 124, 106, 120, 149, 107, 114, 124, 131, 109, 118, 129, 123, 126, 126, 116, 133, 128, 118, 114, 115, 141, 127, 120, 128, 120, 113, 95, 127, 130, 129, 124, 132, 104, 125, 133, 115, 141, 131, 108, 117, 122, 134, 130, 144, 100, 118, 124, 104, 124, 120, 131, 125, 129, 128, 129, 117, 116, 123, 115, 139, 119, 106, 129, 123, 127, 115, 126, 114, 132, 112, 125, 133, 119, 127, 127, 142, 126, 120, 121, 110, 135, 128, 135, 129, 150, 134, 134, 127, 128, 134, 135, 121, 120, 122, 137, 134, 134, 115, 134, 140, 135, 114, 125, 124, 135, 127, 112, 136, 116, 115, 135, 139, 125, 137, 137, 124, 125, 125, 135, 130, 135, 106, 129, 126, 108, 126, 128, 116, 122, 136, 121, 128, 129, 107, 128, 133, 118, 144, 132, 120, 136, 129, 124, 118, 125, 142, 131, 122, 130, 120, 128, 130, 128, 136, 109, 123, 105, 110, 118, 114, 119, 123, 138, 131, 117, 109, 128, 129, 130, 114, 129, 121, 130, 117, 131, 140, 121, 139, 127, 122, 131, 130, 132, 142, 113, 128, 134, 125, 120, 141, 125, 114, 128, 137, 104, 112, 149, 110, 145, 124, 116, 132, 128, 130, 128, 121, 112, 105, 105, 115, 136, 138, 112, 122, 120, 98, 134, 132, 122, 128, 120, 131, 114, 123, 122, 125, 120, 130, 120, 130, 101, 118, 126, 134, 130, 118, 137, 118, 130, 119, 121, 116, 123, 119, 127, 136, 111, 138, 123, 111, 133, 126, 141, 129, 115, 113, 134, 109, 138, 118, 123, 115, 131, 120, 118, 127, 111, 138, 134, 133, 124, 120, 136, 104, 129, 111, 103, 127, 120, 120, 109, 127, 123, 126, 122, 129, 121, 115, 127, 118, 134, 156, 112, 117, 113, 123, 141, 109, 130, 115, 119, 125, 127, 119, 130, 124, 117, 128, 126, 115, 127, 121, 114, 127, 126, 145, 125, 113, 136, 117, 123, 110, 114, 115, 132, 125, 115, 121, 121, 126, 141, 119, 127, 133, 141, 133, 128, 125, 118, 119, 116, 131, 116, 125, 130, 121, 129, 123, 125, 131, 120, 125, 127, 103, 123, 112, 133, 100, 115, 139, 119, 133, 96, 120, 124, 127, 138, 124, 149, 142, 119, 118, 111, 130, 123, 134, 109, 118, 114, 114, 127, 135, 124, 124, 132, 142, 119, 115, 125, 122, 128, 123, 119, 117, 131, 112, 129, 123, 115, 118, 106, 143, 112, 127, 132, 122, 135, 121, 132, 127, 135, 139, 102, 119, 127, 125, 144, 129, 133, 115, 108, 126, 117, 122, 117, 102, 131, 130, 128, 126, 135, 122, 122, 117, 126, 129, 116, 117, 112, 108, 125, 126, 129, 122, 141, 143, 123, 102, 110, 128, 127, 114, 127, 117, 126, 123, 118, 124, 115, 125, 132, 142, 106, 111, 130, 134, 114, 116, 126, 133, 107, 105, 126, 123, 114, 127, 124, 144, 128, 136, 111, 129, 113, 109, 122, 144, 139, 136, 108, 125, 125, 135, 118, 139, 122, 149, 139, 133, 132, 135, 122, 136, 128, 133, 122, 140, 128, 120, 137, 126, 116, 111, 128, 112, 117, 118, 133, 115, 113, 138, 117, 138, 130, 124, 114, 121, 123, 119, 118, 148, 144, 137, 124, 118, 105, 123, 124, 112, 126, 126, 109, 123, 136, 112, 136, 138, 130, 118, 126, 123, 131, 135, 137, 146, 152, 124, 133, 141, 113, 132, 122, 122, 133, 105, 108, 129, 127, 108, 101, 110, 118, 116, 124, 137, 138, 122, 126, 128, 134, 121, 117, 120, 116, 124, 114, 129, 137, 120, 134, 138, 114, 137, 135, 108, 126, 135, 140, 119, 125, 123, 116, 112, 126, 128, 132, 104, 122, 127, 121, 122, 124, 119, 121, 124, 135, 127, 116, 137, 130, 121, 137, 130, 116, 152, 112, 118, 121, 130, 120, 135, 129, 123, 123, 133, 122, 116, 130, 124, 128, 131, 119, 132, 115, 117, 124, 116, 128, 132, 125, 114, 136, 120, 133, 110, 128, 138, 114, 129, 124, 118, 111, 126, 116, 133, 123, 129, 129, 123, 117, 108, 129, 113, 125, 134, 125, 136, 111, 113, 114, 115, 108, 124, 136, 136, 124, 126, 138, 120, 134, 123, 137, 114, 121, 128, 108, 119, 107, 150, 107, 124, 121, 135, 120, 105, 114, 131, 134, 130, 121, 125, 122, 142, 119, 133, 121, 113, 123, 145, 152, 126, 122, 100, 125, 127, 125, 131, 137, 122, 132, 109, 132, 119, 129, 121, 123, 139, 124, 121, 132, 120, 134, 135, 104, 117, 124, 139, 116, 109, 132, 116, 138, 107, 123, 130, 121, 124, 134, 131, 124, 134, 120, 129, 124, 127, 124, 128, 124, 128, 131, 123, 127, 126, 116, 123, 131, 122, 154, 122, 125, 134, 117, 122, 98, 144, 107, 138, 119, 140, 131, 128, 117, 114, 154, 119, 127, 124, 140, 130, 128, 119, 113, 106, 118, 116, 126, 133, 121, 125, 130, 108, 125, 120, 144, 138, 127, 138, 136, 144, 114, 137, 134, 126, 126, 125, 120, 118, 119, 145, 120, 140, 116, 155, 141, 125, 113, 142, 133, 153, 122, 123, 117, 128, 138, 119, 129, 130, 122, 129, 115, 117, 114, 126, 142, 130, 111, 111, 125, 121, 130, 129, 130, 138, 123, 127, 128, 119, 131, 130, 121, 109, 124, 115, 123, 134, 148, 139, 114, 140, 126, 112, 117, 109, 118, 128, 115, 120, 126, 146, 138, 125, 136, 117, 119, 130, 113, 120, 139, 125, 116, 132, 109, 116, 117, 130, 135, 124, 156, 131, 125, 131, 136, 123, 133, 106, 111, 132, 120, 104, 113, 128, 122, 126, 122, 123, 126, 135, 125, 142, 131, 132, 133, 132, 124, 126, 128, 136, 130, 122, 134, 123, 124, 120, 160, 130, 125, 136, 120, 138, 121, 105, 99, 139, 133, 138, 108, 120, 124, 123, 142, 127, 128, 165, 122, 142, 117, 133, 118, 129, 135, 134, 124, 117, 115, 119, 125, 143, 124, 109, 118, 148, 125, 131, 132, 121, 127, 125, 127, 109, 115, 121, 134, 122, 118, 138, 123, 128, 127, 128, 137, 117, 144, 120, 123, 106, 133, 122, 134, 139, 107, 123, 132, 116, 108, 128, 127, 130, 130, 116, 139, 112, 118, 131, 134, 110, 129, 113, 132, 113, 121, 119, 116, 126, 122, 122, 129, 115, 127, 119, 124, 124, 121, 121, 118, 114, 130, 128, 121, 113, 116, 138, 112, 120, 127, 118, 137, 115, 131, 113, 132, 122, 135, 124, 123, 130, 146, 120, 119, 123, 120, 125, 124, 121, 130, 130, 130, 125, 149, 144, 120, 131, 136, 130, 145, 118, 110, 121, 123, 126, 120, 125, 120, 112, 131, 137, 134, 107, 104, 122, 130, 129, 119, 134, 148, 105, 119, 133, 137, 105, 117, 122, 111, 133, 127, 138, 132, 146, 118, 106, 116, 123, 123, 105, 127, 105, 127, 118, 124, 119, 149, 131, 144, 117, 127, 134, 126, 120, 121, 120, 132, 118, 129, 114, 140, 121, 135, 134, 141, 134, 134, 122, 117, 124, 127, 119, 136, 130, 128, 123, 129, 126, 150, 138, 113, 121, 132, 137, 138, 133, 106, 128, 114, 142, 137, 122, 125, 125, 133, 127, 121, 135, 131, 146, 134, 105, 121, 123, 120, 131, 121, 131, 119, 127, 115, 121, 139, 123, 114, 125, 123, 123, 124, 99, 120, 127, 142, 123, 135, 124, 124, 128, 122, 136, 141, 121, 121, 104, 130, 142, 138, 129, 118, 137, 135, 136, 118, 122, 119, 142, 130, 116, 137, 132, 106, 128, 122, 114, 119, 105, 122, 131, 127, 118, 103, 146, 144, 127, 116, 134, 124, 123, 129, 151, 125, 121, 130, 116, 121, 131, 126, 131, 128, 130, 130, 135, 119, 133, 128, 136, 149, 115, 144, 130, 127, 123, 137, 137, 132, 145, 140, 116, 126, 131, 106, 139, 124, 142, 132, 138, 132, 133, 124, 124, 117, 109, 130, 136, 130, 133, 128, 130, 125, 136, 137, 116, 130, 114, 122, 124, 130, 122, 134, 138, 135, 107, 135, 109, 133, 143, 119, 118, 132, 135, 135, 137, 121, 118, 131, 120, 123, 131, 124, 119, 115, 114, 132, 136, 143, 133, 141, 126, 120, 122, 135, 133, 109, 137, 140, 130, 111, 115, 121, 125, 117, 120, 124, 126, 122, 129, 126, 120, 126, 110, 124, 149, 130, 122, 127, 118, 128, 116, 115, 119, 134, 128, 121, 129, 112, 139, 143, 129, 123, 134, 125, 109, 150, 120, 117, 123, 135, 120, 125, 124, 136, 135, 115, 119, 113, 125, 135, 129, 144, 138, 136, 135, 125, 143, 116, 137, 144, 120, 132, 128, 135, 133, 117, 123, 120, 131, 130, 121, 132, 138, 114, 123, 116, 129, 122, 108, 127, 129, 130, 129, 131, 109, 126, 119, 136, 132, 126, 109, 126, 126, 132, 126, 126, 132, 134, 133, 134, 140, 117, 127, 134, 110, 113, 124, 130, 125, 123, 128, 120, 135, 119, 102, 130, 131, 127, 120, 114, 119, 128, 134, 124, 132, 124, 137, 118, 118, 114, 120, 124, 124, 109, 127, 119, 127, 126, 115, 131, 123, 113, 117, 123, 111, 116, 116, 128, 133, 121, 128, 131, 110, 134, 110, 121, 135, 115, 133, 123, 128, 127, 131, 115, 116, 131, 118, 132, 118, 122, 116, 120, 126, 119, 127, 128, 106, 140, 134, 136, 129, 110, 113, 143, 131, 125, 136, 136, 127, 119, 110, 143, 125, 117, 133, 133, 117, 116, 125, 115, 119, 130, 112, 128, 131, 117, 123, 132, 117, 116, 128, 133, 120, 135, 114, 135, 128, 128, 124, 132, 146, 117, 131, 132, 126, 120, 114, 132, 121, 116, 150, 131, 122, 133, 123, 126, 120, 124, 124, 138, 124, 119, 120, 116, 124, 131, 140, 116, 133, 126, 129, 129, 133, 118, 142, 125, 115, 108, 140, 136, 127, 129, 114, 123, 119, 115, 125, 124, 126, 120, 119, 129, 131, 123, 119, 117, 122, 141, 102, 105, 127, 127, 114, 131, 128, 114, 128, 129, 136, 123, 125, 124, 110, 121, 119, 132, 151, 114, 134, 123, 123, 123, 118, 119, 113, 120, 127, 133, 125, 141, 122, 102, 122, 127, 131, 124, 127, 135, 116, 124, 116, 125, 129, 108, 133, 139, 122, 128, 126, 127, 110, 123, 129, 128, 131, 126, 121, 120, 121, 129, 120, 104, 122, 144, 114, 134, 112, 128, 138, 133, 131, 113, 126, 122, 130, 132, 141, 125, 135, 122, 126, 128, 121, 142, 135, 135, 130, 154, 125, 115, 142, 135, 107, 117, 128, 117, 121, 130, 125, 127, 133, 117, 124, 127, 132, 134, 128, 125, 119, 109, 126, 134, 132, 118, 144, 112, 133, 120, 129, 119, 116, 119, 133, 110, 124, 132, 125, 120, 129, 119, 137, 124, 130, 107, 142, 132, 119, 106, 125, 121, 125, 128, 139, 139, 116, 130, 121, 128, 131, 115, 127, 114, 141, 133, 108, 117, 109, 135, 123, 130, 116, 145, 126, 138, 118, 112, 129, 129, 122, 135, 134, 131, 118, 136, 123, 119, 127, 129, 106, 140, 140, 121, 110, 145, 116, 119, 127, 133, 126, 110, 111, 134, 121, 106, 129, 133, 113, 133, 131, 124, 144, 134, 120, 118, 127, 135, 126, 122, 126, 108, 115, 144, 128, 115, 133, 120, 123, 125, 119, 128, 133, 124, 112, 131, 120, 132, 105, 128, 116, 125, 125, 138, 115, 133, 127, 132, 118, 115, 132, 143, 121, 123, 129, 118, 122, 136, 136, 131, 114, 133, 120, 104, 126, 126, 101, 123, 147, 118, 131, 112, 112, 125, 135, 115, 122, 122, 119, 107, 120, 116, 130, 120, 114, 123, 124, 130, 133, 120, 128, 144, 121, 124, 119, 124, 130, 111, 133, 132, 122, 134, 130, 148, 130, 115, 123, 126, 120, 118, 131, 137, 133, 133, 133, 128, 136, 137, 133, 130, 137, 112, 126, 118, 125, 108, 131, 128, 129, 110, 124, 114, 129, 109, 129, 130, 111, 104, 140, 132, 107, 125, 124, 131, 129, 128, 131, 139, 130, 122, 125, 134, 130, 145, 125, 130, 113, 144, 116, 110, 141, 125, 122, 105, 108, 120, 139, 120, 121, 122, 123, 116, 118, 143, 127, 135, 126, 124, 116, 135, 129, 127, 112, 133, 146, 127, 122, 123, 108, 146, 132, 133, 106, 132, 135, 132, 126, 116, 130, 120, 112, 131, 123, 149, 139, 105, 138, 138, 134, 143, 110, 131, 116, 122, 119, 126, 115, 135, 103, 121, 140, 113, 118, 131, 120, 138, 123, 126, 133, 122, 132, 118, 130, 141, 123, 128, 109, 119, 118, 117, 136, 143, 116, 130, 124, 124, 115, 125, 152, 119, 129, 133, 133, 122, 135, 134, 129, 136, 107, 142, 115, 121, 129, 133, 116, 135, 113, 132, 114, 114, 127, 124, 144, 139, 112, 119, 130, 146, 119, 129, 137, 127, 149, 123, 119, 121, 128, 121, 115, 143, 128, 111, 134, 121, 140, 134, 116, 128, 126, 116, 120, 139, 127, 125, 130, 135, 143, 119, 126, 133, 107, 123, 112, 110, 125, 140, 128, 133, 124, 132, 124, 119, 136, 130, 129, 139, 112, 107, 128, 133, 134, 139, 117, 129, 115, 106, 120, 124, 121, 120, 115, 129, 108, 126, 131, 134, 131, 132, 135, 131, 136, 121, 135, 134, 107, 131, 114, 134, 107, 118, 120, 117, 131, 94, 108, 106, 118, 120, 126, 123, 116, 78, 141, 117, 127, 122, 142, 132, 115, 126, 138, 132, 125, 162, 133, 131, 126, 121, 113, 131, 120, 142, 118, 104, 123, 123, 107, 123, 134, 126, 134, 132, 149, 136, 117, 140, 146, 112, 125, 113, 115, 116, 112, 122, 126, 125, 115, 140, 123, 131, 141, 139, 134, 129, 148, 123, 127, 121, 115, 111, 125, 130, 122, 131, 121, 129, 119, 136, 132, 127, 124, 118, 140, 112, 124, 122, 117, 131, 118, 116, 132, 113, 129, 129, 122, 105, 144, 147, 116, 102, 136, 112, 121, 123, 119, 125, 127, 124, 113, 114, 122, 113, 135, 119, 135, 128, 126, 107, 122, 122, 126, 125, 135, 135, 120, 127, 104, 124, 128, 139, 117, 114, 135, 124, 117, 126, 126, 116, 131, 103, 116, 128, 137, 115, 124, 126, 117, 117, 96, 142, 130, 122, 130, 116, 135, 112, 134, 132, 119, 140, 126, 124, 135, 121, 123, 126, 115, 136, 127, 140, 125, 120, 119, 135, 131, 122, 131, 112, 117, 118, 117, 124, 128, 108, 138, 138, 120, 132, 137, 112, 128, 131, 131, 122, 105, 139, 116, 131, 113, 131, 118, 136, 127, 128, 115, 122, 127, 119, 129, 121, 137, 129, 116, 121, 110, 113, 122, 117, 121, 132, 117, 126, 126, 108, 120, 126, 132, 116, 123, 114, 128, 120, 133, 133, 154, 116, 126, 118, 131, 139, 141, 103, 111, 125, 115, 122, 116, 135, 132, 130, 139, 139, 135, 130, 118, 124, 142, 138, 136, 137, 123, 132, 128, 135, 131, 105, 148, 122, 123, 128, 131, 126, 111, 133, 120, 129, 116, 117, 124, 142, 120, 128, 132, 119, 109, 114, 113, 132, 137, 111, 131, 111, 126, 136, 132, 132, 131, 129, 114, 115, 130, 122, 131, 135, 118, 120, 140, 132, 125, 131, 140, 129, 115, 127, 135, 127, 132, 146, 161, 126, 115, 113, 120, 117, 154, 127, 120, 140, 135, 123, 127, 146, 138, 130, 124, 112, 129, 116, 138, 140, 137, 141, 128, 131, 119, 130, 127, 116, 114, 136, 134, 122, 127, 124, 150, 123, 107, 120, 144, 121, 120, 136, 126, 143, 122, 134, 119, 120, 122, 121, 117, 125, 114, 121, 137, 137, 114, 109, 139, 113, 126, 123, 134, 109, 124, 127, 134, 121, 132, 120, 118, 112, 139, 157, 132, 146, 130, 116, 121, 114, 131, 137, 136, 126, 126, 119, 113, 126, 122, 138, 120, 125, 126, 131, 129, 122, 125, 126, 102, 140, 124, 126, 109, 113, 111, 120, 124, 140, 127, 127, 129, 142, 136, 126, 113, 105, 121, 137, 124, 133, 122, 139, 121, 122, 121, 126, 120, 130, 128, 141, 122, 121, 108, 143, 136, 114, 130, 129, 125, 143, 123, 110, 116, 128, 125, 132, 104, 130, 127, 125, 112, 117, 131, 113, 122, 133, 127, 108, 115, 118, 131, 124, 140, 130, 138, 133, 132, 116, 135, 122, 128, 112, 111, 127, 123, 119, 147, 113, 132, 135, 138, 121, 126, 119, 114, 118, 142, 114, 136, 131, 130, 122, 119, 110, 111, 127, 128, 120, 130, 118, 118, 119, 111, 136, 133, 130, 137, 127, 152, 127, 119, 127, 103, 121, 125, 132, 120, 116, 114, 127, 127, 129, 128, 121, 125, 130, 120, 123, 121, 130, 127, 124, 113, 125, 124, 124, 123, 124, 119, 133, 126, 107, 126, 127, 123, 121, 102, 136, 138, 130, 125, 110, 134, 123, 122, 123, 124, 110, 130, 130, 123, 139, 125, 123, 117, 131, 132, 106, 122, 144, 128, 134, 111, 106, 124, 117, 137, 116, 119, 120, 126, 123, 112, 133, 122, 126, 123, 136, 107, 112, 108, 143, 129, 144, 121, 122, 135, 110, 148, 123, 139, 132, 150, 143, 122, 127, 156, 137, 120, 136, 121, 114, 132, 121, 123, 128, 119, 115, 116, 124, 118, 135, 114, 122, 131, 119, 122, 134, 123, 105, 128, 131, 115, 123, 138, 128, 131, 143, 131, 129, 122, 141, 140, 110, 127, 106, 125, 157, 105, 127, 110, 138, 116, 131, 122, 131, 126, 128, 128, 124, 111, 127, 118, 127, 107, 129, 137, 125, 112, 122, 111, 118, 123, 133, 139, 120, 128, 122, 119, 125, 137, 139, 123, 126, 145, 121, 130, 137, 130, 118, 118, 131, 140, 124, 126, 113, 124, 110, 147, 136, 138, 126, 109, 118, 128, 134, 142, 146, 143, 144, 116, 126, 128, 119, 112, 125, 106, 127, 120, 119, 129, 114, 142, 128, 113, 122, 130, 139, 136, 142, 129, 154, 141, 146, 146, 113, 114, 123, 141, 130, 137, 132, 130, 105, 111, 149, 130, 136, 111, 118, 123, 115, 117, 125, 103, 116, 111, 119, 110, 107, 123, 132, 131, 120, 136, 124, 144, 120, 113, 120, 119, 132, 131, 130, 130, 123, 122, 119, 140, 138, 138, 126, 140, 103, 119, 133, 139, 112, 138, 129, 134, 114, 131, 87, 132, 117, 114, 132, 140, 131, 122, 131, 117, 111, 143, 137, 115, 104, 129, 133, 104, 114, 117, 119, 112, 111, 117, 118, 110, 110, 130, 145, 120, 137, 133, 132, 148, 133, 122, 122, 129, 120, 112, 134, 132, 129, 130, 139, 123, 128, 116, 114, 134, 126, 129, 121, 128, 126, 101, 126, 135, 120, 123, 111, 111, 131, 144, 109, 150, 127, 127, 131, 133, 154, 135, 126, 128, 134, 116, 128, 115, 127, 123, 115, 100, 149, 127, 132, 137, 131, 132, 127, 115, 123, 140, 135, 145, 119, 120, 124, 116, 133, 123, 113, 111, 140, 121, 134, 130, 130, 130, 138, 126, 128, 125, 129, 132, 141, 126, 121, 127, 116, 111, 128, 105, 118, 124, 130, 125, 124, 136, 123, 117, 129, 136, 125, 124, 136, 139, 126, 124, 134, 141, 115, 118, 128, 118, 108, 107, 127, 117, 117, 134, 127, 128, 103, 124, 107, 118, 132, 110, 117, 115, 118, 153, 129, 135, 140, 114, 134, 135, 103, 124, 127, 132, 118, 153, 107, 130, 109, 127, 136, 131, 150, 125, 109, 110, 122, 116, 138, 118, 133, 117, 135, 152, 129, 119, 132, 126, 112, 118, 131, 118, 123, 113, 140, 134, 130, 125, 126, 126, 152, 122, 128, 113, 127, 111, 129, 136, 134, 118, 120, 127, 112, 128, 118, 110, 127, 135, 136, 139, 124, 121, 121, 119, 120, 126, 120, 131, 119, 115, 126, 126, 121, 131, 131, 132, 126, 125, 131, 116, 121, 124, 120, 123, 129, 117, 133, 122, 129, 117, 121, 132, 119, 129, 135, 124, 131, 120, 129, 135, 120, 119, 118, 145, 119, 107, 128, 142, 118, 120, 116, 125, 132, 122, 120, 135, 127, 110, 122, 112, 120, 116, 142, 130, 141, 127, 109, 98, 132, 124, 130, 129, 127, 126, 129, 117, 136, 144, 119, 112, 124, 114, 144, 124, 123, 117, 139, 108, 124, 121, 134, 148, 112, 105, 118, 126, 132, 115, 126, 125, 121, 119, 120, 126, 124, 136, 118, 136, 132, 142, 131, 128, 136, 153, 124, 132, 120, 113, 111, 120, 104, 118, 136, 134, 147, 141, 122, 121, 125, 123, 136, 123, 114, 106, 108, 121, 123, 123, 124, 124, 117, 124, 103, 119, 111, 123, 136, 126, 116, 151, 132, 115, 138, 124, 122, 132, 132, 126, 136, 131, 124, 135, 112, 109, 124, 127, 122, 128, 105, 136, 132, 134, 101, 139, 139, 134, 105, 137, 131, 116, 128, 135, 127, 111, 117, 130, 120, 129, 118, 137, 129, 130, 137, 126, 125, 120, 114, 146, 125, 112, 131, 129, 129, 128, 147, 130, 136, 130, 86, 126, 121, 115, 121, 118, 126, 149, 130, 105, 140, 142, 128, 141, 132, 118, 139, 129, 126, 128, 135, 125, 126, 119, 122, 114, 128, 143, 120, 125, 112, 147, 133, 112, 120, 122, 133, 114, 112, 125, 118, 115, 136, 120, 128, 127, 131, 122, 121, 120, 112, 120, 122, 116, 118, 122, 129, 130, 124, 116, 146, 126, 136, 147, 123, 134, 135, 120, 123, 127, 124, 122, 124, 125, 128, 118, 141, 123, 126, 127, 131, 120, 136, 120, 126, 123, 109, 149, 119, 119, 151, 101, 127, 112, 123, 133, 146, 115, 120, 121, 125, 115, 123, 130, 106, 125, 136, 138, 119, 146, 127, 125, 125, 152, 121, 124, 128, 122, 127, 123, 135, 125, 140, 131, 125, 123, 127, 107, 119, 118, 129, 129, 147, 131, 134, 132, 137, 119, 116, 122, 131, 122, 112, 130, 128, 123, 151, 102, 125, 126, 113, 141, 110, 109, 120, 131, 119, 120, 118, 130, 107, 144, 108, 115, 131, 139, 152, 106, 144, 128, 124, 134, 132, 140, 114, 114, 157, 150, 107, 124, 131, 142, 116, 142, 116, 134, 118, 121, 132, 133, 112, 115, 137, 126, 121, 105, 137, 128, 140, 113, 135, 121, 123, 127, 134, 128, 126, 118, 140, 119, 122, 147, 136, 122, 135, 130, 139, 138, 130, 147, 139, 116, 128, 121, 118, 145, 132, 111, 122, 110, 148, 128, 127, 121, 119, 120, 139, 117, 139, 130, 127, 132, 117, 128, 117, 128, 127, 115, 128, 137, 124, 129, 137, 103, 124, 124, 113, 122, 137, 124, 133, 108, 118, 122, 120, 143, 125, 126, 114, 113, 135, 114, 125, 135, 121, 106, 141, 126, 132, 105, 112, 118, 133, 127, 120, 110, 131, 124, 106, 128, 115, 137, 122, 124, 132, 118, 130, 134, 112, 124, 119, 133, 132, 123, 128, 113, 121, 131, 136, 115, 145, 119, 131, 124, 121, 134, 124, 146, 132, 122, 126, 140, 122, 129, 129, 140, 126, 122, 119, 107, 107, 138, 129, 113, 127, 112, 142, 124, 131, 123, 126, 132, 121, 120, 129, 131, 118, 121, 124, 130, 127, 128, 130, 112, 124, 115, 131, 119, 120, 132, 110, 142, 123, 117, 136, 127, 121, 114, 159, 136, 114, 131, 120, 122, 117, 111, 131, 122, 127, 117, 132, 119, 140, 115, 126, 146, 109, 134, 130, 115, 99, 125, 129, 113, 121, 130, 122, 132, 117, 128, 100, 126, 137, 121, 120, 120, 146, 118, 122, 106, 124, 134, 102, 123, 116, 122, 122, 131, 125, 118, 122, 133, 123, 140, 104, 126, 122, 131, 125, 116, 131, 112, 128, 122, 132, 122, 125, 130, 141, 115, 125, 112, 122, 107, 123, 131, 125, 122, 150, 125, 125, 112, 121, 116, 137, 120, 118, 117, 132, 140, 133, 125, 148, 116, 128, 117, 127, 125, 126, 135, 114, 130, 118, 118, 107, 130, 116, 122, 116, 113, 139, 132, 139, 124, 129, 115, 126, 134, 117, 128, 122, 139, 138, 141, 127, 126, 125, 141, 131, 108, 128, 124, 128, 124, 126, 123, 113, 120, 125, 136, 114, 129, 116, 122, 122, 95, 119, 129, 133, 129, 120, 130, 117, 131, 146, 115, 139, 149, 124, 117, 139, 107, 120, 114, 130, 121, 115, 129, 121, 116, 141, 126, 123, 127, 123, 120, 123, 116, 118, 124, 119, 141, 155, 124, 107, 115, 131, 123, 117, 138, 139, 120, 129, 120, 129, 124, 120, 117, 140, 105, 133, 142, 132, 111, 135, 117, 140, 130, 146, 116, 130, 123, 106, 126, 136, 131, 113, 152, 141, 103, 119, 129, 114, 110, 121, 126, 122, 126, 133, 119, 110, 130, 122, 135, 137, 134, 129, 124, 138, 118, 115, 112, 118, 132, 123, 135, 114, 129, 124, 122, 130, 126, 119, 134, 115, 135, 115, 101, 122, 128, 126, 143, 120, 109, 113, 119, 118, 123, 121, 134, 119, 116, 142, 116, 137, 124, 121, 139, 123, 119, 127, 116, 112, 109, 115, 128, 122, 115, 103, 131, 108, 124, 141, 129, 139, 118, 140, 128, 123, 130, 128, 135, 115, 134, 141, 145, 139, 103, 122, 118, 108, 108, 130, 122, 124, 136, 136, 132, 117, 123, 114, 122, 130, 132, 120, 114, 127, 105, 109, 119, 114, 109, 127, 122, 139, 111, 141, 127, 120, 117, 125, 132, 120, 132, 139, 126, 153, 126, 149, 122, 124, 100, 124, 139, 125, 124, 130, 117, 120, 132, 121, 146, 130, 127, 125, 133, 123, 125, 102, 130, 142, 130, 142, 129, 125, 120, 124, 118, 128, 131, 129, 118, 118, 127, 105, 136, 122, 121, 124, 127, 111, 97, 130, 126, 131, 119, 143, 140, 137, 132, 144, 131, 131, 132, 120, 118, 129, 127, 144, 113, 142, 137, 125, 117, 113, 134, 125, 143, 138, 127, 133, 117, 136, 131, 144, 129, 126, 112, 135, 133, 145, 130, 125, 124, 117, 127, 137, 117, 129, 117, 116, 122, 127, 122, 121, 137, 119, 101, 125, 117, 137, 111, 116, 121, 124, 117, 128, 120, 99, 119, 135, 129, 112, 126, 111, 105, 102, 140, 128, 114, 147, 118, 129, 135, 128, 138, 121, 131, 109, 116, 132, 147, 140, 137, 122, 142, 137, 142, 122, 125, 121, 147, 143, 126, 117, 122, 124, 136, 122, 123, 121, 104, 136, 114, 127, 132, 114, 116, 140, 123, 134, 132, 130, 115, 129, 132, 141, 133, 129, 133, 129, 113, 122, 125, 126, 116, 104, 131, 121, 138, 139, 109, 99, 118, 140, 108, 114, 139, 104, 126, 104, 121, 127, 125, 130, 123, 123, 130, 139, 130, 119, 136, 141, 126, 122, 113, 131, 120, 144, 121, 119, 104, 128, 122, 126, 109, 114, 117, 123, 129, 119, 123, 137, 127, 136, 109, 135, 96, 138, 112, 126, 108, 129, 127, 141, 115, 129, 116, 114, 112, 115, 102, 143, 120, 115, 119, 134, 143, 136, 115, 136, 116, 128, 126, 131, 121, 119, 113, 100, 124, 117, 122, 134, 123, 124, 134, 111, 115, 138, 118, 121, 119, 125, 127, 129, 111, 129, 108, 133, 137, 114, 130, 118, 130, 127, 125, 132, 125, 142, 119, 132, 127, 110, 110, 127, 144, 118, 132, 110, 123, 126, 117, 145, 124, 127, 124, 135, 130, 97, 133, 144, 118, 115, 113, 116, 114, 130, 125, 121, 132, 122, 117, 115, 135, 115, 126, 125, 122, 129, 148, 108, 128, 99, 133, 99, 133, 157, 141, 113, 115, 93, 116, 118, 132, 131, 123, 123, 125, 134, 127, 130, 118, 129, 123, 133, 118, 120, 140, 143, 115, 125, 134, 123, 129, 137, 108, 118, 134, 138, 123, 123, 130, 115, 128, 132, 109, 100, 120, 141, 121, 114, 130, 133, 122, 134, 131, 124, 130, 108, 109, 137, 126, 142, 133, 137, 110, 108, 125, 136, 108, 126, 108, 115, 144, 133, 136, 121, 130, 119, 110, 128, 115, 119, 107, 119, 118, 133, 134, 117, 133, 118, 134, 141, 132, 134, 128, 127, 125, 122, 127, 151, 110, 118, 132, 117, 136, 115, 143, 117, 110, 113, 135, 143, 121, 121, 131, 124, 101, 123, 108, 126, 128, 110, 141, 129, 131, 124, 114, 124, 116, 134, 153, 124, 128, 130, 115, 118, 138, 130, 134, 136, 147, 122, 126, 123, 128, 106, 109, 134, 120, 111, 124, 133, 112, 121, 117, 132, 145, 123, 125, 137, 132, 122, 122, 111, 129, 127, 135, 134, 139, 105, 140, 138, 139, 134, 107, 130, 106, 116, 129, 122, 130, 132, 113, 122, 110, 119, 123, 104, 121, 105, 121, 131, 131, 105, 124, 123, 136, 118, 127, 126, 129, 132, 143, 125, 124, 136, 126, 133, 122, 116, 135, 135, 119, 119, 118, 114, 125, 125, 129, 128, 138, 124, 124, 141, 141, 136, 119, 128, 131, 117, 124, 119, 111, 126, 123, 115, 118, 127, 110, 132, 116, 112, 135, 133, 114, 114, 136, 114, 125, 124, 128, 127, 131, 106, 122, 122, 127, 114, 128, 136, 131, 136, 116, 128, 113, 137, 128, 134, 129, 136, 130, 112, 135, 122, 125, 106, 123, 135, 124, 119, 108, 140, 127, 124, 132, 114, 140, 119, 116, 110, 103, 135, 125, 131, 124, 144, 126, 112, 143, 125, 116, 116, 109, 133, 125, 118, 125, 127, 146, 111, 120, 142, 113, 119, 127, 118, 108, 125, 126, 119, 122, 133, 139, 140, 119, 145, 112, 150, 127, 131, 123, 109, 113, 118, 124, 124, 131, 128, 134, 115, 128, 112, 124, 115, 122, 143, 118, 137, 125, 126, 152, 123, 119, 144, 121, 123, 114, 139, 113, 101, 132, 125, 131, 134, 123, 118, 114, 109, 133, 136, 128, 116, 108, 138, 129, 119, 107, 139, 136, 130, 125, 132, 116, 141, 113, 123, 110, 120, 123, 134, 109, 116, 117, 130, 131, 162, 134, 116, 119, 133, 127, 122, 116, 127, 128, 122, 113, 123, 124, 128, 138, 143, 120, 123, 122, 138, 132, 128, 124, 125, 132, 135, 122, 124, 118, 121, 122, 134, 147, 134, 95, 121, 116, 109, 127, 120, 143, 120, 120, 135, 144, 140, 133, 133, 119, 115, 115, 125, 124, 107, 129, 127, 126, 122, 142, 145, 135, 120, 94, 123, 139, 115, 117, 133, 115, 123, 119, 114, 152, 121, 131, 140, 151, 119, 130, 133, 123, 123, 130, 119, 109, 138, 135, 121, 125, 125, 111, 153, 113, 138, 125, 128, 119, 127, 142, 110, 139, 136, 119, 116, 107, 134, 141, 115, 141, 132, 138, 117, 124, 114, 132, 132, 93, 116, 116, 135, 124, 113, 115, 120, 113, 135, 103, 127, 127, 130, 124, 111, 123, 122, 122, 130, 118, 141, 130, 130, 133, 130, 131, 140, 141, 132, 138, 114, 110, 112, 147, 120, 118, 138, 140, 115, 145, 127, 126, 116, 133, 135, 132, 115, 125, 134, 110, 104, 125, 134, 118, 136, 113, 129, 118, 129, 85, 127, 120, 129, 127, 114, 115, 120, 126, 130, 139, 118, 113, 110, 133, 127, 121, 117, 120, 130, 124, 137, 126, 119, 134, 102, 117, 108, 129, 121, 128, 156, 127, 137, 114, 135, 121, 125, 143, 169, 144, 114, 141, 123, 126, 118, 116, 114, 122, 121, 138, 132, 126, 131, 124, 135, 121, 113, 119, 132, 129, 126, 114, 136, 138, 144, 128, 134, 134, 123, 109, 135, 119, 124, 135, 125, 117, 132, 132, 123, 137, 135, 113, 128, 126, 130, 134, 131, 136, 123, 124, 118, 121, 120, 128, 130, 122, 116, 128, 116, 115, 137, 121, 123, 117, 126, 115, 115, 125, 123, 122, 123, 112, 125, 129, 122, 131, 143, 115, 134, 126, 134, 135, 138, 127, 121, 129, 126, 125, 148, 134, 114, 137, 121, 131, 140, 142, 130, 129, 115, 131, 137, 137, 139, 114, 134, 120, 121, 136, 129, 122, 121, 130, 137, 134, 151, 143, 119, 112, 135, 123, 124, 118, 132, 128, 128, 128, 122, 118, 135, 134, 131, 122, 121, 121, 124, 134, 109, 125, 138, 120, 126, 118, 115, 123, 142, 117, 127, 135, 113, 109, 131, 143, 144, 123, 113, 126, 117, 141, 127, 132, 124, 143, 120, 122, 124, 117, 115, 116, 126, 123, 134, 110, 130, 124, 119, 141, 111, 127, 131, 125, 108, 111, 119, 117, 119, 115, 131, 120, 126, 136, 113, 120, 114, 122, 134, 133, 116, 104, 127, 130, 110, 150, 123, 112, 121, 127, 136, 120, 115, 113, 141, 127, 108, 127, 130, 123, 115, 121, 123, 129, 121, 131, 122, 126, 123, 116, 126, 138, 112, 133, 121, 119, 122, 128, 109, 118, 146, 125, 104, 135, 131, 127, 131, 122, 102, 134, 99, 141, 111, 128, 141, 124, 123, 124, 124, 140, 116, 140, 111, 125, 122, 132, 146, 133, 135, 134, 125, 119, 115, 116, 108, 121, 115, 133, 141, 116, 107, 120, 121, 115, 120, 123, 138, 157, 114, 124, 120, 103, 138, 118, 122, 116, 122, 109, 138, 122, 147, 149, 130, 109, 117, 114, 127, 134, 152, 129, 115, 117, 123, 121, 131, 130, 123, 124, 138, 118, 119, 147, 139, 115, 127, 132, 125, 126, 137, 127, 141, 132, 129, 117, 129, 120, 132, 143, 128, 132, 113, 118, 123, 125, 134, 144, 141, 131, 118, 140, 108, 130, 134, 131, 124, 122, 121, 147, 141, 113, 122, 129, 147, 106, 129, 126, 123, 126, 139, 126, 127, 118, 124, 121, 130, 115, 102, 132, 120, 118, 119, 111, 106, 125, 130, 124, 132, 105, 117, 119, 86, 114, 131, 112, 111, 116, 131, 129, 134, 110, 126, 124, 111, 115, 143, 128, 131, 134, 113, 134, 112, 122, 119, 135, 141, 125, 124, 137, 112, 131, 143, 129, 121, 122, 120, 120, 118, 128, 114, 146, 137, 117, 135, 139, 139, 120, 112, 124, 139, 116, 121, 121, 128, 119, 119, 112, 120, 130, 124, 110, 150, 117, 140, 148, 118, 129, 121, 112, 121, 108, 138, 127, 131, 132, 94, 117, 117, 135, 128, 131, 124, 121, 126, 132, 106, 112, 121, 124, 124, 126, 132, 145, 134, 134, 120, 121, 121, 117, 140, 142, 111, 126, 119, 112, 131, 116, 140, 114, 109, 99, 121, 130, 125, 123, 112, 130, 124, 130, 126, 128, 112, 123, 124, 139, 118, 113, 135, 131, 123, 120, 109, 116, 123, 109, 119, 119, 121, 122, 112, 117, 111, 127, 126, 125, 124, 121, 131, 123, 124, 123, 126, 138, 120, 131, 135, 120, 113, 128, 114, 139, 114, 123, 121, 130, 127, 133, 135, 126, 133, 125, 136, 111, 126, 130, 126, 115, 137, 144, 121, 133, 144, 135, 128, 139, 124, 126, 137, 131, 135, 120, 120, 116, 112, 120, 104, 120, 115, 111, 129, 127, 122, 125, 128, 140, 113, 115, 128, 133, 142, 146, 106, 108, 122, 128, 124, 115, 120, 116, 122, 113, 124, 129, 133, 131, 124, 127, 109, 137, 135, 110, 119, 133, 115, 114, 138, 129, 114, 123, 124, 140, 124, 119, 116, 112, 124, 122, 132, 122, 168, 111, 139, 113, 134, 122, 124, 133, 114, 138, 119, 127, 125, 115, 129, 112, 112, 128, 128, 115, 134, 117, 110, 130, 132, 120, 117, 117, 130, 118, 127, 128, 121, 138, 134, 136, 126, 126, 119, 127, 137, 129, 116, 135, 123, 133, 134, 113, 120, 128, 124, 128, 127, 128, 132, 129, 116, 123, 123, 126, 115, 133, 125, 121, 106, 120, 135, 115, 119, 114, 121, 108, 130, 124, 119, 84, 150, 118, 130, 141, 110, 132, 117, 133, 131, 108, 130, 137, 123, 119, 122, 123, 128, 124, 127, 124, 133, 116, 124, 121, 114, 107, 140, 113, 123, 121, 111, 125, 111, 133, 114, 125, 134, 112, 132, 120, 112, 132, 111, 137, 116, 144, 143, 102, 127, 147, 117, 114, 120, 136, 124, 141, 127, 131, 128, 100, 136, 129, 126, 122, 126, 125, 131, 113, 149, 117, 127, 131, 125, 138, 131, 127, 139, 131, 117, 128, 120, 126, 122, 131, 134, 122, 133, 138, 118, 126, 109, 134, 109, 121, 122, 122, 121, 124, 128, 132, 109, 104, 117, 108, 131, 110, 136, 111, 132, 114, 124, 135, 114, 112, 139, 121, 122, 123, 134, 138, 115, 128, 130, 114, 119, 122, 118, 121, 126, 117, 130, 132, 126, 136, 123, 128, 143, 121, 138, 134, 126, 130, 137, 122, 117, 115, 131, 120, 112, 129, 145, 112, 126, 117, 128, 117, 128, 122, 125, 123, 118, 127, 143, 124, 141, 117, 124, 129, 134, 135, 130, 130, 128, 132, 109, 123, 115, 129, 129, 107, 130, 122, 122, 117, 110, 139, 117, 144, 130, 116, 139, 136, 119, 118, 108, 112, 130, 122, 113, 114, 130, 113, 117, 131, 133, 125, 120, 120, 145, 121, 130, 120, 121, 125, 120, 131, 139, 125, 140, 136, 115, 120, 144, 127, 127, 123, 136, 118, 125, 125, 123, 148, 132, 132, 121, 124, 124, 109, 128, 144, 125, 127, 128, 118, 149, 133, 145, 114, 130, 131, 129, 139, 119, 121, 120, 143, 116, 103, 129, 141, 121, 115, 106, 140, 135, 131, 137, 125, 138, 135, 121, 133, 131, 99, 112, 124, 123, 121, 124, 98, 114, 117, 119, 142, 117, 104, 110, 134, 111, 121, 136, 139, 141, 117, 104, 122, 130, 144, 125, 129, 149, 125, 123, 135, 131, 126, 131, 124, 125, 118, 135, 127, 133, 128, 130, 110, 117, 124, 112, 124, 122, 121, 123, 144, 119, 127, 130, 114, 147, 151, 120, 113, 137, 118, 127, 115, 138, 131, 127, 125, 123, 132, 120, 128, 121, 116, 117, 124, 125, 119, 121, 115, 126, 124, 145, 124, 124, 127, 126, 118, 144, 113, 125, 126, 123, 115, 147, 133, 131, 122, 119, 128, 123, 131, 129, 104, 125, 124, 121, 102, 129, 123, 132, 121, 122, 135, 120, 139, 117, 110, 129, 122, 95, 123, 126, 134, 111, 136, 129, 116, 120, 129, 125, 140, 124, 129, 117, 133, 121, 129, 121, 119, 121, 135, 111, 123, 128, 114, 124, 122, 131, 121, 134, 128, 129, 122, 136, 139, 118, 125, 136, 127, 139, 126, 132, 125, 110, 123, 125, 132, 124, 139, 142, 132, 121, 122, 153, 127, 122, 132, 123, 106, 151, 152, 139, 111, 138, 123, 127, 129, 153, 131, 117, 135, 125, 114, 124, 134, 106, 145, 129, 108, 126, 119, 129, 125, 127, 124, 125, 128, 128, 127, 116, 138, 134, 149, 133, 139, 127, 131, 137, 120, 130, 137, 134, 121, 125, 131, 133, 132, 121, 139, 120, 128, 110, 147, 110, 123, 116, 130, 122, 107, 114, 127, 117, 127, 125, 121, 124, 125, 147, 135, 127, 119, 122, 113, 136, 117, 111, 125, 126, 127, 127, 126, 146, 141, 128, 128, 98, 122, 138, 109, 129, 124, 123, 118, 142, 123, 141, 124, 104, 116, 128, 138, 124, 112, 122, 126, 120, 131, 122, 117, 126, 122, 122, 124, 128, 125, 125, 121, 134, 135, 114, 128, 110, 127, 121, 120, 99, 113, 128, 127, 102, 136, 120, 125, 118, 125, 129, 117, 98, 107, 127, 136, 140, 128, 127, 122, 122, 116, 123, 115, 141, 123, 127, 125, 119, 139, 122, 134, 133, 136, 122, 117, 122, 113, 127, 128, 134, 129, 126, 142, 135, 138, 115, 123, 120, 132, 100, 141, 114, 125, 127, 125, 118, 124, 127, 117, 107, 126, 125, 130, 124, 112, 128, 133, 129, 138, 116, 126, 119, 133, 117, 124, 128, 141, 112, 122, 137, 118, 117, 123, 133, 114, 127, 136, 131, 115, 131, 122, 141, 121, 119, 151, 124, 127, 127, 124, 138, 117, 122, 117, 120, 127, 109, 128, 121, 120, 120, 131, 138, 122, 114, 113, 131, 120, 133, 122, 134, 132, 118, 133, 130, 122, 116, 123, 133, 125, 116, 125, 114, 131, 98, 134, 126, 129, 123, 124, 114, 110, 122, 136, 115, 126, 125, 136, 120, 140, 135, 126, 133, 127, 145, 130, 143, 130, 121, 119, 127, 122, 126, 120, 119, 107, 117, 136, 135, 138, 127, 117, 128, 120, 116, 118, 112, 127, 136, 109, 119, 135, 115, 138, 124, 130, 112, 127, 123, 126, 122, 142, 127, 139, 144, 131, 114, 130, 123, 123, 124, 120, 133, 120, 123, 109, 147, 109, 124, 120, 134, 119, 134, 96, 110, 119, 119, 107, 106, 113, 133, 131, 105, 140, 121, 122, 121, 118, 118, 113, 127, 140, 131, 120, 107, 133, 115, 124, 133, 118, 123, 125, 137, 121, 121, 126, 117, 119, 131, 121, 125, 144, 113, 156, 148, 119, 124, 130, 128, 122, 132, 128, 134, 117, 116, 136, 117, 132, 123, 143, 121, 121, 151, 137, 125, 136, 110, 125, 123, 112, 144, 128, 121, 125, 134, 126, 153, 123, 124, 126, 117, 139, 133, 146, 136, 123, 123, 123, 136, 116, 133, 128, 138, 122, 114, 114, 131, 127, 121, 124, 128, 135, 120, 115, 124, 136, 137, 106, 112, 124, 125, 122, 122, 133, 134, 113, 129, 135, 139, 129, 136, 134, 126, 127, 103, 113, 127, 111, 125, 145, 116, 128, 119, 125, 123, 126, 116, 109, 133, 119, 121, 130, 126, 128, 150, 127, 108, 133, 115, 121, 127, 128, 114, 123, 122, 140, 123, 133, 142, 128, 128, 141, 130, 112, 114, 129, 135, 115, 107, 128, 144, 131, 132, 122, 141, 144, 116, 117, 128, 117, 127, 126, 119, 120, 127, 121, 121, 138, 123, 132, 112, 126, 119, 127, 142, 115, 128, 129, 143, 133, 103, 139, 119, 110, 130, 112, 124, 140, 121, 121, 132, 121, 123, 132, 116, 114, 121, 133, 120, 135, 133, 112, 110, 123, 149, 126, 121, 116, 134, 137, 112, 119, 128, 139, 115, 137, 126, 131, 135, 122, 104, 136, 129, 129, 127, 133, 129, 122, 132, 133, 118, 133, 130, 129, 133, 122, 115, 117, 120, 135, 104, 145, 124, 126, 116, 132, 115, 130, 148, 120, 121, 145, 118, 135, 126, 116, 139, 132, 133, 138, 128, 132, 130, 119, 111, 131, 128, 134, 135, 144, 153, 121, 130, 106, 128, 123, 133, 141, 131, 114, 144, 137, 121, 117, 115, 119, 136, 110, 110, 125, 121, 124, 144, 124, 136, 119, 115, 125, 118, 138, 121, 139, 133, 117, 125, 117, 121, 138, 129, 130, 130, 112, 134, 137, 108, 128, 129, 114, 113, 142, 126, 123, 133, 133, 135, 132, 142, 131, 131, 121, 118, 121, 124, 127, 135, 108, 136, 126, 121, 119, 136, 130, 125, 114, 110, 138, 111, 134, 134, 128, 126, 120, 106, 142, 135, 136, 137, 132, 135, 134, 142, 126, 139, 131, 116, 122, 116, 123, 129, 133, 132, 132, 118, 141, 121, 132, 128, 125, 137, 130, 122, 125, 115, 118, 132, 121, 115, 124, 144, 151, 126, 132, 137, 124, 122, 147, 146, 129, 109, 124, 140, 108, 125, 133, 123, 115, 127, 121, 124, 107, 118, 129, 117, 113, 118, 129, 122, 114, 131, 126, 129, 117, 121, 143, 111, 118, 125, 140, 137, 99, 128, 128, 126, 119, 126, 125, 126, 121, 132, 115, 133, 122, 123, 126, 133, 106, 118, 131, 120, 122, 126, 143, 119, 123, 126, 125, 130, 133, 127, 128, 112, 142, 136, 128, 145, 109, 127, 132, 130, 144, 129, 111, 127, 142, 145, 126, 135, 114, 139, 135, 125, 132, 115, 117, 124, 146, 117, 107, 124, 134, 139, 125, 147, 103, 134, 126, 127, 124, 117, 121, 124, 118, 135, 111, 120, 143, 133, 119, 127, 131, 133, 125, 121, 145, 111, 122, 124, 136, 123, 115, 125, 121, 120, 140, 113, 115, 129, 125, 146, 138, 132, 133, 108, 137, 123, 140, 132, 144, 129, 145, 127, 112, 121, 118, 137, 126, 132, 129, 132, 113, 127, 109, 135, 116, 126, 133, 113, 130, 112, 123, 122, 128, 133, 122, 128, 114, 136, 125, 132, 133, 124, 97, 127, 148, 118, 150, 138, 122, 132, 111, 116, 109, 97, 139, 120, 143, 129, 113, 140, 130, 122, 127, 124, 125, 129, 129, 121, 117, 140, 141, 126, 119, 121, 122, 130, 122, 119, 118, 120, 121, 126, 132, 138, 127, 139, 122, 137, 115, 136, 121, 132, 151, 134, 145, 140, 117, 124, 133, 117, 121, 143, 131, 108, 119, 126, 122, 118, 123, 132, 119, 124, 132, 126, 102, 116, 108, 122, 128, 114, 119, 109, 123, 132, 136, 128, 120, 125, 129, 131, 97, 143, 127, 128, 133, 122, 132, 106, 130, 117, 127, 115, 125, 119, 135, 135, 118, 141, 123, 127, 143, 116, 143, 140, 114, 135, 120, 127, 108, 131, 129, 133, 120, 115, 126, 136, 141, 116, 130, 130, 118, 120, 110, 128, 117, 126, 128, 127, 124, 132, 128, 145, 133, 123, 117, 113, 114, 110, 121, 141, 125, 122, 126, 127, 121, 128, 129, 124, 141, 110, 117, 123, 126, 128, 119, 133, 132, 132, 111, 120, 137, 141, 153, 132, 123, 118, 110, 135, 127, 135, 124, 128, 131, 123, 118, 103, 122, 129, 123, 124, 124, 108, 122, 142, 129, 125, 116, 120, 100, 126, 110, 127, 126, 128, 111, 138, 133, 132, 130, 104, 120, 110, 127, 133, 121, 122, 134, 128, 135, 130, 109, 131, 118, 120, 136, 128, 147, 129, 143, 125, 121, 126, 119, 128, 125, 118, 112, 97, 131, 128, 133, 129, 126, 136, 131, 119, 158, 106, 110, 122, 146, 125, 131, 126, 127, 129, 124, 129, 145, 114, 110, 149, 139, 114, 123, 124, 116, 127, 108, 122, 119, 113, 136, 123, 141, 154, 128, 111, 142, 128, 118, 110, 140, 112, 111, 135, 115, 141, 113, 138, 109, 111, 111, 136, 140, 125, 139, 114, 135, 133, 107, 151, 129, 131, 121, 130, 130, 114, 129, 111, 115, 127, 121, 139, 116, 126, 137, 131, 118, 145, 136, 119, 129, 118, 121, 132, 128, 120, 124, 130, 116, 124, 121, 120, 126, 109, 128, 126, 114, 136, 115, 121, 144, 142, 140, 119, 112, 118, 119, 125, 133, 130, 120, 123, 122, 128, 124, 129, 154, 126, 130, 141, 130, 139, 135, 110, 132, 106, 127, 135, 136, 111, 114, 127, 131, 131, 123, 113, 125, 125, 137, 144, 137, 117, 122, 112, 137, 117, 120, 141, 123, 118, 133, 133, 128, 117, 127, 141, 134, 140, 126, 122, 114, 110, 133, 126, 120, 128, 115, 124, 125, 132, 135, 128, 132, 111, 132, 116, 131, 121, 102, 110, 133, 117, 125, 130, 129, 124, 125, 122, 114, 123, 119, 117, 122, 141, 117, 123, 120, 123, 120, 121, 107, 123, 125, 119, 139, 113, 102, 107, 133, 135, 120, 136, 121, 130, 126, 112, 101, 145, 146, 116, 126, 134, 118, 137, 129, 138, 123, 140, 126, 117, 131, 130, 136, 118, 142, 129, 121, 114, 135, 127, 131, 114, 137, 132, 122, 129, 109, 124, 125, 141, 113, 118, 114, 133, 139, 122, 123, 124, 122, 116, 138, 121, 119, 131, 125, 131, 94, 129, 117, 122, 135, 107, 109, 123, 130, 118, 123, 124, 115, 127, 147, 140, 114, 123, 132, 117, 132, 134, 115, 130, 130, 119, 127, 136, 124, 120, 109, 138, 133, 129, 128, 97, 133, 120, 128, 140, 118, 121, 153, 94, 112, 143, 132, 142, 125, 149, 118, 147, 125, 118, 151, 125, 104, 119, 114, 133, 118, 126, 133, 123, 139, 141, 114, 117, 142, 112, 123, 136, 132, 116, 134, 127, 117, 124, 117, 142, 123, 132, 114, 130, 123, 116, 110, 119, 127, 118, 139, 127, 125, 104, 134, 125, 152, 119, 129, 133, 128, 128, 120, 125, 116, 135, 119, 114, 118, 127, 146, 134, 125, 126, 121, 118, 111, 123, 119, 120, 131, 128, 123, 129, 117, 122, 126, 128, 148, 130, 129, 125, 126, 131, 116, 116, 126, 123, 138, 115, 127, 123, 131, 129, 105, 111, 139, 128, 111, 128, 111, 114, 123, 134, 137, 123, 119, 126, 151, 105, 129, 122, 127, 116, 101, 132, 132, 128, 127, 120, 151, 119, 119, 132, 134, 118, 130, 123, 133, 120, 125, 127, 128, 120, 134, 114, 134, 133, 114, 107, 122, 134, 110, 129, 128, 113, 117, 132, 118, 142, 114, 136, 135, 147, 134, 129, 128, 124, 141, 138, 118, 132, 123, 125, 137, 136, 116, 111, 130, 131, 131, 137, 131, 136, 122, 119, 127, 124, 129, 114, 129, 136, 128, 135, 124, 116, 109, 95, 121, 128, 124, 129, 128, 127, 133, 118, 122, 140, 120, 135, 137, 116, 113, 130, 117, 122, 132, 149, 116, 116, 117, 144, 139, 142, 144, 114, 131, 127, 100, 124, 112, 137, 120, 134, 130, 127, 132, 104, 113, 113, 133, 118, 122, 115, 140, 108, 120, 117, 124, 129, 135, 141, 128, 120, 134, 116, 118, 126, 115, 122, 135, 127, 118, 132, 120, 122, 120, 125, 120, 126, 116, 124, 133, 125, 115, 125, 107, 132, 134, 114, 136, 130, 132, 130, 128, 109, 131, 129, 109, 126, 132, 120, 128, 120, 114, 122, 152, 128, 128, 108, 121, 141, 124, 120, 132, 124, 126, 126, 135, 119, 126, 110, 129, 113, 132, 126, 125, 144, 134, 126, 134, 112, 150, 113, 145, 144, 127, 127, 121, 128, 117, 136, 107, 130, 130, 113, 118, 116, 115, 110, 110, 137, 125, 125, 118, 122, 122, 132, 128, 129, 121, 116, 117, 126, 130, 119, 129, 130, 130, 126, 127, 116, 125, 118, 128, 115, 115, 125, 137, 135, 124, 128, 137, 123, 142, 126, 109, 107, 126, 133, 113, 140, 127, 111, 131, 110, 125, 113, 119, 110, 152, 121, 127, 116, 131, 98, 131, 144, 116, 122, 124, 126, 137, 132, 128, 105, 119, 114, 135, 117, 135, 125, 132, 128, 135, 134, 123, 140, 131, 130, 121, 115, 116, 145, 113, 139, 131, 121, 140, 122, 122, 126, 130, 116, 111, 133, 121, 101, 127, 107, 116, 110, 128, 134, 128, 127, 121, 127, 130, 109, 130, 126, 126, 118, 106, 106, 120, 125, 133, 134, 129, 134, 108, 124, 106, 114, 134, 118, 117, 115, 127, 137, 120, 124, 120, 119, 117, 119, 129, 134, 135, 123, 120, 120, 124, 133, 139, 125, 131, 111, 118, 131, 128, 101, 121, 131, 117, 122, 114, 103, 135, 121, 124, 126, 113, 121, 125, 128, 118, 126, 131, 136, 129, 115, 127, 115, 139, 126, 128, 111, 134, 116, 133, 129, 111, 133, 124, 102, 125, 132, 121, 133, 116, 141, 132, 129, 129, 123, 141, 132, 127, 129, 130, 128, 122, 124, 135, 137, 122, 134, 125, 133, 134, 120, 132, 122, 122, 134, 137, 111, 102, 134, 122, 124, 141, 135, 127, 121, 127, 119, 114, 117, 143, 132, 117, 101, 121, 123, 114, 150, 115, 121, 128, 120, 107, 130, 119, 129, 129, 122, 147, 113, 127, 141, 124, 123, 120, 121, 113, 144, 114, 128, 118, 126, 125, 131, 123, 128, 129, 124, 130, 116, 118, 131, 110, 124, 124, 111, 108, 122, 121, 132, 123, 114, 127, 131, 130, 141, 128, 117, 124, 123, 121, 130, 127, 125, 124, 110, 144, 138, 119, 124, 130, 123, 135, 123, 131, 129, 135, 116, 146, 129, 159, 115, 138, 130, 124, 137, 123, 126, 116, 122, 143, 118, 119, 111, 131, 109, 125, 120, 128, 126, 112, 141, 120, 127, 110, 124, 132, 114, 93, 136, 121, 118, 133, 139, 133, 114, 124, 106, 129, 107, 129, 124, 129, 130, 133, 136, 124, 114, 135, 114, 133, 134, 137, 124, 117, 123, 102, 135, 136, 133, 134, 137, 131, 125, 134, 129, 141, 125, 119, 120, 116, 126, 130, 116, 121, 113, 127, 128, 114, 111, 130, 121, 127, 136, 124, 132, 115, 127, 115, 126, 114, 129, 126, 114, 138, 121, 117, 112, 105, 122, 138, 130, 132, 117, 129, 131, 120, 123, 124, 126, 134, 121, 96, 121, 130, 123, 122, 126, 121, 126, 133, 129, 124, 113, 125, 128, 117, 132, 129, 121, 117, 126, 125, 107, 121, 136, 147, 123, 134, 122, 120, 140, 125, 132, 129, 116, 140, 118, 146, 129, 133, 129, 114, 126, 124, 121, 118, 129, 125, 136, 119, 145, 130, 130, 135, 136, 128, 125, 129, 118, 156, 137, 141, 126, 135, 121, 125, 124, 120, 123, 128, 144, 137, 131, 120, 118, 134, 115, 121, 126, 123, 133, 138, 121, 104, 112, 119, 125, 139, 127, 129, 125, 121, 120, 120, 138, 125, 115, 116, 122, 100, 147, 129, 142, 108, 117, 133, 132, 124, 125, 127, 135, 127, 133, 159, 129, 133, 126, 123, 123, 127, 138, 133, 110, 122, 129, 125, 122, 130, 104, 126, 115, 128, 123, 128, 125, 122, 121, 116, 120, 126, 121, 131, 138, 133, 126, 133, 116, 118, 120, 99, 147, 134, 117, 145, 109, 108, 127, 123, 141, 137, 134, 121, 135, 115, 136, 115, 114, 149, 138, 131, 147, 136, 129, 132, 114, 146, 132, 126, 128, 110, 118, 115, 141, 122, 125, 140, 148, 124, 131, 131, 123, 133, 126, 113, 92, 124, 126, 140, 118, 133, 121, 127, 120, 123, 115, 130, 123, 138, 126, 107, 104, 113, 120, 119, 126, 126, 122, 131, 132, 124, 125, 136, 132, 129, 124, 125, 126, 138, 140, 126, 139, 143, 132, 127, 92, 127, 122, 134, 128, 114, 136, 120, 127, 120, 135, 147, 133, 119, 114, 131, 147, 138, 128, 133, 143, 126, 128, 117, 139, 124, 117, 130, 135, 119, 117, 121, 119, 121, 128, 131, 137, 139, 127, 117, 139, 133, 125, 148, 129, 119, 121, 109, 122, 130, 109, 122, 138, 116, 121, 130, 130, 127, 130, 138, 130, 111, 131, 118, 126, 129, 120, 132, 128, 119, 130, 113, 120, 137, 141, 128, 136, 141, 106, 123, 123, 127, 116, 128, 123, 121, 136, 125, 124, 135, 107, 129, 126, 132, 123, 112, 129, 119, 128, 117, 130, 118, 114, 119, 140, 125, 122, 130, 119, 149, 139, 127, 111, 130, 116, 120, 135, 138, 118, 143, 96, 128, 121, 105, 125, 125, 120, 125, 131, 125, 121, 153, 114, 134, 105, 115, 123, 113, 131, 116, 128, 124, 124, 119, 142, 141, 115, 122, 133, 116, 123, 118, 125, 112, 124, 119, 107, 130, 125, 123, 119, 131, 131, 117, 110, 124, 125, 96, 126, 118, 124, 133, 126, 134, 136, 103, 122, 103, 138, 136, 135, 121, 117, 141, 126, 115, 125, 114, 131, 124, 129, 116, 126, 122, 116, 123, 123, 111, 120, 123, 132, 116, 121, 152, 145, 116, 131, 92, 130, 122, 105, 121, 140, 123, 128, 123, 120, 120, 133, 134, 134, 134, 117, 135, 110, 110, 138, 124, 127, 145, 132, 118, 131, 130, 121, 110, 121, 144, 116, 114, 141, 135, 133, 121, 128, 107, 134, 134, 119, 130, 94, 153, 144, 119, 128, 119, 127, 115, 118, 117, 116, 126, 123, 127, 129, 136, 126, 133, 148, 123, 125, 116, 129, 123, 124, 129, 133, 118, 138, 114, 117, 122, 137, 120, 122, 124, 124, 139, 121, 124, 121, 134, 129, 127, 117, 130, 137, 137, 138, 115, 125, 119, 127, 127, 134, 110, 134, 117, 134, 124, 121, 135, 126, 135, 118, 124, 127, 111, 100, 135, 122, 154, 141, 122, 121, 124, 123, 116, 121, 125, 122, 125, 114, 112, 128, 136, 134, 148, 111, 133, 118, 125, 118, 112, 137, 134, 128, 126, 112, 126, 122, 136, 124, 134, 116, 120, 108, 106, 129, 117, 133, 129, 128, 144, 133, 120, 130, 134, 113, 123, 125, 139, 141, 151, 118, 145, 130, 103, 138, 123, 106, 145, 123, 126, 114, 119, 122, 121, 113, 133, 131, 127, 130, 126, 127, 116, 127, 129, 114, 116, 142, 134, 132, 150, 140, 111, 94, 122, 131, 119, 118, 139, 123, 126, 126, 140, 153, 125, 132, 135, 122, 123, 108, 134, 126, 126, 112, 145, 133, 126, 139, 126, 126, 125, 126, 124, 135, 125, 133, 141, 134, 128, 139, 121, 144, 127, 101, 146, 144, 114, 142, 125, 122, 144, 139, 117, 125, 127, 128, 118, 134, 121, 123, 140, 126, 158, 132, 122, 131, 130, 136, 129, 129, 131, 128, 113, 116, 129, 104, 130, 118, 111, 120, 111, 126, 119, 128, 120, 120, 134, 125, 119, 111, 125, 129, 103, 133, 119, 121, 134, 129, 109, 114, 135, 124, 125, 138, 144, 123, 122, 141, 129, 148, 140, 133, 135, 125, 141, 124, 117, 124, 131, 118, 121, 134, 141, 114, 140, 125, 121, 140, 126, 119, 131, 113, 127, 134, 141, 128, 122, 132, 142, 131, 127, 117, 127, 120, 135, 120, 144, 131, 135, 122, 132, 126, 118, 130, 134, 133, 141, 121, 144, 146, 127, 131, 144, 119, 128, 120, 120, 119, 135, 118, 134, 138, 113, 116, 128, 122, 121, 100, 127, 134, 119, 131, 140, 119, 119, 106, 115, 116, 137, 124, 139, 128, 146, 122, 130, 136, 138, 125, 131, 131, 121, 117, 118, 123, 114, 127, 128, 131, 119, 124, 144, 127, 138, 143, 125, 136, 108, 132, 134, 127, 107, 139, 114, 138, 113, 128, 112, 124, 131, 133, 127, 124, 110, 134, 115, 142, 141, 130, 116, 128, 127, 123, 120, 140, 124, 116, 129, 110, 125, 139, 120, 111, 122, 129, 120, 123, 118, 105, 126, 127, 109, 139, 124, 111, 124, 131, 144, 111, 117, 126, 119, 121, 126, 131, 96, 122, 123, 111, 121, 135, 133, 126, 113, 134, 137, 124, 131, 124, 122, 109, 125, 135, 121, 110, 130, 131, 105, 120, 131, 135, 108, 152, 128, 124, 120, 124, 122, 124, 144, 125, 115, 116, 102, 127, 120, 118, 145, 122, 138, 116, 117, 131, 130, 126, 112, 124, 124, 136, 112, 165, 116, 112, 118, 126, 133, 125, 123, 136, 145, 139, 142, 109, 113, 118, 127, 123, 121, 126, 141, 132, 110, 113, 127, 119, 119, 127, 121, 115, 115, 118, 137, 116, 120, 136, 109, 141, 116, 106, 120, 120, 129, 150, 133, 115, 100, 134, 116, 128, 113, 144, 113, 136, 125, 111, 134, 130, 124, 117, 136, 125, 131, 127, 144, 116, 136, 133, 136, 92, 114, 112, 107, 106, 121, 112, 136, 106, 130, 137, 123, 128, 129, 123, 129, 115, 142, 140, 120, 139, 124, 114, 118, 124, 104, 128, 116, 119, 137, 129, 147, 105, 130, 130, 125, 109, 133, 106, 127, 122, 136, 121, 122, 118, 135, 123, 118, 141, 132, 130, 139, 141, 140, 144, 136, 121, 125, 132, 115, 106, 121, 121, 156, 133, 129, 135, 121, 117, 120, 130, 117, 115, 134, 134, 135, 116, 134, 120, 140, 127, 125, 126, 130, 126, 112, 103, 131, 126, 115, 141, 118, 99, 123, 144, 118, 135, 121, 113, 127, 130, 123, 119, 114, 118, 120, 133, 128, 142, 105, 141, 119, 130, 112, 128, 137, 135, 140, 127, 105, 126, 127, 129, 115, 127, 129, 130, 114, 128, 141, 115, 124, 114, 113, 132, 125, 113, 123, 129, 112, 135, 129, 132, 121, 128, 113, 136, 127, 124, 131, 122, 124, 127, 117, 120, 124, 117, 110, 127, 115, 120, 116, 138, 122, 123, 146, 135, 125, 120, 103, 131, 125, 124, 129, 126, 124, 147, 107, 124, 123, 114, 120, 116, 102, 137, 111, 144, 124, 130, 123, 145, 129, 123, 134, 114, 119, 123, 124, 144, 137, 128, 130, 146, 114, 134, 129, 133, 140, 133, 119, 125, 128, 125, 116, 129, 126, 98, 116, 123, 127, 107, 129, 139, 129, 119, 126, 122, 116, 122, 145, 109, 110, 136, 120, 149, 131, 129, 126, 135, 135, 124, 132, 127, 123, 125, 121, 125, 106, 119, 135, 125, 131, 136, 116, 108, 126, 118, 131, 117, 142, 119, 122, 116, 149, 107, 120, 116, 144, 138, 130, 120, 116, 125, 129, 127, 140, 128, 126, 124, 122, 119, 129, 115, 132, 124, 140, 122, 126, 126, 126, 128, 133, 122, 135, 133, 128, 140, 126, 136, 135, 112, 122, 139, 133, 119, 116, 121, 121, 117, 133, 136, 122, 124, 116, 132, 105, 111, 128, 138, 125, 112, 116, 128, 134, 132, 115, 94, 141, 137, 132, 145, 120, 115, 139, 143, 140, 120, 127, 136, 121, 122, 134, 127, 119, 130, 141, 131, 134, 143, 127, 121, 117, 131, 140, 125, 120, 112, 132, 120, 119, 110, 125, 142, 110, 117, 106, 131, 120, 132, 110, 124, 127, 126, 130, 115, 122, 130, 102, 139, 128, 99, 143, 130, 126, 146, 129, 117, 126, 135, 132, 114, 123, 111, 123, 127, 121, 114, 140, 120, 119, 128, 127, 119, 124, 123, 128, 141, 129, 113, 117, 144, 121, 120, 130, 126, 148, 135, 131, 125, 130, 156, 121, 129, 127, 99, 119, 136, 122, 114, 131, 116, 106, 119, 130, 131, 132, 121, 134, 128, 127, 132, 125, 121, 130, 122, 145, 142, 124, 134, 108, 113, 146, 126, 136, 115, 125, 135, 130, 145, 141, 142, 143, 133, 135, 122, 111, 131, 126, 132, 105, 125, 90, 128, 126, 130, 135, 141, 142, 123, 108, 146, 120, 139, 113, 126, 127, 108, 104, 124, 145, 123, 141, 128, 106, 130, 106, 144, 145, 128, 131, 128, 130, 116, 143, 135, 120, 123, 117, 125, 118, 127, 128, 134, 125, 118, 130, 129, 123, 107, 123, 137, 118, 120, 114, 121, 125, 130, 106, 128, 100, 127, 108, 130, 148, 116, 144, 125, 131, 144, 100, 124, 134, 125, 122, 124, 130, 118, 139, 130, 105, 124, 119, 133, 147, 124, 131, 112, 116, 126, 122, 122, 112, 134, 113, 134, 122, 130, 100, 123, 123, 122, 126, 131, 117, 145, 125, 128, 126, 161, 135, 120, 127, 117, 126, 125, 134, 133, 141, 130, 118, 117, 113, 123, 116, 122, 120, 138, 127, 112, 124, 131, 103, 112, 137, 127, 128, 126, 144, 133, 121, 126, 143, 140, 132, 137, 123, 145, 123, 117, 129, 122, 136, 127, 128, 130, 142, 127, 116, 129, 133, 115, 121, 123, 120, 120, 140, 126, 130, 122, 123, 124, 110, 133, 129, 123, 132, 112, 119, 128, 135, 129, 115, 133, 136, 131, 128, 140, 126, 118, 120, 120, 142, 120, 109, 136, 140, 126, 138, 132, 127, 110, 137, 131, 103, 130, 121, 113, 122, 131, 114, 134, 105, 133, 121, 118, 117, 127, 132, 120, 107, 122, 141, 116, 110, 121, 135, 143, 123, 138, 136, 130, 131, 142, 146, 121, 108, 132, 130, 129, 116, 124, 135, 136, 117, 129, 159, 100, 125, 119, 130, 111, 124, 117, 109, 135, 139, 137, 130, 131, 143, 132, 132, 129, 125, 118, 115, 140, 112, 116, 129, 116, 114, 109, 134, 107, 139, 139, 130, 127, 123, 135, 141, 101, 129, 117, 123, 120, 117, 127, 122, 126, 139, 123, 109, 131, 134, 105, 143, 124, 131, 112, 122, 138, 120, 124, 123, 109, 113, 138, 130, 118, 115, 117, 124, 147, 117, 124, 150, 114, 123, 123, 120, 136, 130, 136, 132, 126, 130, 121, 120, 108, 129, 132, 129, 139, 133, 124, 118, 111, 121, 140, 122, 106, 118, 130, 131, 143, 123, 132, 106, 126, 122, 146, 133, 126, 130, 145, 129, 123, 143, 105, 123, 124, 99, 130, 125, 127, 119, 111, 124, 131, 117, 116, 101, 123, 118, 123, 124, 119, 118, 124, 143, 124, 120, 127, 134, 128, 133, 122, 127, 129, 135, 115, 122, 114, 122, 127, 114, 111, 125, 127, 132, 132, 131, 120, 115, 111, 127, 119, 127, 120, 125, 135, 119, 111, 132, 110, 113, 116, 124, 129, 143, 134, 122, 135, 122, 116, 120, 103, 129, 111, 112, 124, 122, 135, 126, 133, 138, 123, 128, 124, 110, 121, 137, 110, 99, 126, 128, 123, 148, 123, 110, 121, 112, 115, 136, 130, 122, 130, 139, 131, 127, 119, 120, 114, 127, 119, 128, 134, 122, 124, 139, 146, 124, 112, 136, 131, 113, 115, 140, 130, 129, 145, 129, 118, 115, 121, 121, 108, 120, 136, 117, 124, 114, 122, 123, 117, 121, 131, 120, 120, 120, 129, 109, 145, 115, 129, 139, 116, 118, 136, 134, 139, 104, 116, 118, 147, 118, 120, 131, 150, 108, 140, 110, 137, 125, 143, 123, 122, 119, 133, 135, 120, 149, 129, 138, 116, 136, 136, 123, 115, 128, 109, 134, 121, 111, 139, 141, 124, 148, 114, 131, 125, 127, 121, 105, 124, 116, 118, 125, 119, 140, 136, 131, 121, 100, 136, 121, 115, 135, 133, 117, 138, 145, 136, 129, 137, 158, 130, 120, 119, 125, 128, 134, 111, 126, 122, 126, 147, 110, 132, 131, 106, 126, 130, 145, 144, 113, 131, 131, 119, 134, 111, 124, 133, 122, 150, 151, 108, 120, 108, 123, 132, 125, 118, 131, 122, 121, 147, 118, 138, 126, 142, 131, 115, 126, 127, 122, 116, 134, 123, 147, 130, 138, 131, 122, 130, 132, 110, 137, 141, 132, 101, 127, 112, 125, 103, 130, 130, 129, 108, 131, 125, 108, 133, 139, 101, 135, 138, 134, 126, 111, 124, 129, 98, 145, 118, 113, 123, 115, 117, 133, 108, 117, 141, 129, 124, 111, 132, 133, 112, 115, 122, 131, 114, 133, 122, 116, 134, 135, 155, 126, 131, 131, 135, 119, 135, 124, 119, 133, 129, 99, 128, 129, 106, 133, 120, 124, 122, 128, 129, 139, 153, 95, 138, 120, 120, 132, 125, 109, 119, 126, 122, 128, 126, 128, 127, 140, 131, 134, 154, 116, 110, 113, 110, 119, 112, 126, 123, 140, 126, 135, 105, 138, 118, 128, 120, 133, 131, 121, 133, 123, 129, 114, 120, 142, 118, 114, 108, 125, 134, 121, 113, 120, 119, 118, 119, 143, 124, 120, 132, 128, 127, 134, 145, 131, 122, 131, 132, 123, 124, 150, 124, 132, 127, 128, 131, 113, 142, 131, 126, 156, 120, 115, 130, 115, 132, 128, 124, 132, 133, 129, 141, 142, 132, 133, 118, 122, 126, 118, 136, 126, 116, 111, 140, 126, 123, 123, 124, 139, 131, 117, 134, 128, 125, 107, 135, 128, 114, 128, 136, 131, 128, 109, 129, 128, 128, 123, 122, 131, 135, 125, 137, 117, 126, 100, 109, 134, 126, 131, 102, 132, 134, 134, 124, 121, 134, 127, 152, 132, 126, 124, 145, 124, 120, 112, 121, 125, 111, 108, 100, 124, 111, 128, 121, 107, 121, 120, 113, 124, 132, 120, 135, 120, 112, 123, 148, 111, 127, 121, 126, 132, 117, 120, 119, 126, 128, 113, 129, 107, 133, 100, 130, 99, 113, 124, 112, 144, 123, 140, 130, 124, 136, 113, 120, 124, 119, 107, 121, 123, 135, 118, 129, 128, 122, 133, 122, 127, 137, 119, 138, 130, 140, 136, 132, 140, 115, 123, 124, 147, 123, 128, 112, 139, 124, 117, 140, 126, 125, 135, 132, 120, 111, 122, 110, 120, 125, 117, 124, 124, 122, 122, 129, 135, 118, 146, 130, 112, 116, 137, 121, 143, 133, 120, 151, 114, 119, 136, 119, 140, 120, 145, 134, 114, 148, 119, 114, 126, 139, 120, 127, 113, 113, 119, 130, 119, 111, 119, 120, 122, 127, 116, 120, 118, 143, 128, 126, 137, 108, 116, 118, 121, 99, 121, 108, 120, 128, 116, 136, 132, 111, 117, 122, 132, 125, 124, 114, 143, 99, 119, 145, 147, 130, 102, 138, 142, 123, 134, 119, 127, 118, 138, 122, 111, 130, 140, 120, 108, 138, 124, 131, 135, 119, 120, 140, 124, 123, 112, 143, 142, 125, 122, 116, 128, 110, 122, 119, 112, 127, 123, 136, 130, 119, 120, 121, 123, 118, 102, 117, 125, 119, 131, 137, 129, 128, 125, 140, 119, 131, 127, 129, 143, 124, 125, 116, 126, 118, 124, 127, 108, 134, 125, 108, 114, 109, 118, 123, 136, 101, 135, 150, 135, 121, 123, 128, 107, 124, 127, 132, 127, 115, 129, 126, 139, 135, 107, 131, 121, 126, 143, 131, 127, 126, 141, 118, 128, 128, 113, 135, 124, 100, 111, 112, 114, 120, 120, 119, 125, 117, 125, 119, 121, 135, 111, 92, 113, 114, 135, 122, 130, 121, 121, 128, 121, 131, 128, 130, 161, 128, 132, 111, 130, 108, 126, 150, 122, 131, 130, 133, 141, 122, 112, 122, 106, 112, 129, 101, 135, 131, 123, 148, 121, 117, 124, 129, 133, 108, 138, 118, 125, 114, 148, 124, 99, 141, 111, 138, 121, 131, 129, 127, 140, 116, 122, 127, 133, 134, 140, 125, 127, 119, 117, 110, 149, 119, 115, 130, 144, 118, 112, 129, 129, 132, 125, 133, 131, 136, 125, 129, 115, 124, 143, 129, 113, 123, 122, 113, 115, 125, 131, 118, 131, 121, 126, 136, 142, 133, 124, 112, 113, 114, 115, 146, 133, 141, 131, 125, 131, 132, 144, 118, 118, 126, 108, 129, 123, 126, 117, 119, 133, 126, 132, 122, 123, 128, 131, 131, 104, 124, 95, 141, 132, 127, 110, 112, 126, 129, 119, 113, 120, 123, 122, 116, 112, 126, 115, 103, 124, 126, 113, 138, 129, 126, 119, 106, 116, 112, 130, 137, 115, 136, 140, 123, 122, 131, 126, 123, 124, 130, 147, 98, 127, 144, 113, 149, 138, 99, 120, 135, 124, 119, 130, 116, 125, 112, 112, 153, 120, 116, 127, 123, 127, 127, 127, 133, 100, 126, 141, 112, 109, 141, 110, 111, 136, 107, 139, 130, 124, 117, 125, 110, 120, 145, 120, 143, 128, 128, 116, 119, 126, 131, 123, 139, 123, 125, 144, 129, 113, 115, 118, 128, 134, 131, 133, 127, 114, 128, 121, 128, 129, 124, 125, 116, 109, 137, 151, 103, 135, 133, 139, 119, 130, 112, 104, 122, 115, 113, 104, 137, 120, 124, 139, 108, 110, 124, 109, 113, 133, 130, 128, 104, 131, 121, 111, 123, 119, 135, 116, 129, 126, 116, 136, 129, 124, 141, 127, 142, 123, 116, 137, 134, 137, 120, 139, 121, 125, 126, 130, 143, 119, 128, 128, 112, 130, 128, 127, 120, 126, 123, 119, 120, 137, 126, 125, 121, 120, 120, 119, 128, 114, 118, 137, 137, 118, 121, 120, 131, 126, 127, 137, 126, 140, 123, 126, 129, 127, 127, 153, 154, 118, 120, 119, 122, 121, 116, 127, 127, 122, 115, 133, 138, 123, 121, 126, 104, 122, 124, 118, 114, 121, 115, 128, 119, 134, 134, 122, 141, 125, 127, 93, 116, 145, 130, 130, 129, 113, 127, 125, 143, 123, 126, 126, 127, 131, 138, 112, 112, 118, 135, 120, 135, 142, 122, 120, 111, 125, 122, 122, 115, 122, 146, 136, 126, 123, 127, 120, 138, 122, 109, 145, 123, 119, 136, 122, 127, 118, 125, 124, 119, 120, 133, 113, 120, 124, 115, 137, 127, 127, 120, 130, 142, 125, 123, 128, 131, 119, 116, 139, 125, 133, 141, 116, 127, 119, 127, 118, 124, 129, 123, 118, 138, 116, 140, 139, 123, 159, 118, 118, 121, 119, 127, 135, 130, 128, 110, 108, 124, 123, 131, 125, 121, 125, 133, 126, 129, 127, 144, 112, 113, 128, 123, 119, 125, 131, 141, 135, 116, 137, 145, 124, 111, 123, 132, 125, 138, 116, 128, 112, 124, 132, 129, 124, 116, 131, 140, 124, 119, 116, 113, 122, 107, 130, 135, 130, 129, 149, 142, 133, 124, 131, 130, 124, 125, 132, 115, 124, 148, 108, 133, 126, 134, 122, 156, 138, 132, 135, 117, 126, 127, 126, 134, 122, 128, 125, 124, 126, 119, 123, 119, 121, 130, 116, 136, 134, 137, 120, 119, 132, 118, 122, 139, 145, 129, 135, 136, 127, 130, 115, 127, 135, 116, 131, 128, 138, 133, 112, 130, 136, 112, 149, 101, 123, 119, 128, 116, 120, 134, 125, 115, 128, 124, 129, 127, 123, 126, 133, 128, 123, 115, 129, 133, 126, 109, 121, 114, 129, 124, 132, 125, 94, 123, 130, 130, 130, 120, 134, 117, 135, 118, 118, 126, 120, 123, 126, 142, 103, 132, 114, 122, 135, 141, 129, 110, 134, 129, 129, 117, 126, 120, 117, 153, 98, 124, 119, 126, 121, 134, 117, 110, 117, 115, 117, 116, 127, 113, 97, 121, 129, 133, 126, 125, 137, 131, 131, 115, 125, 101, 115, 118, 129, 122, 123, 144, 134, 106, 133, 146, 114, 119, 120, 111, 110, 113, 130, 139, 121, 124, 130, 106, 117, 146, 124, 132, 138, 139, 139, 99, 135, 127, 134, 126, 117, 132, 134, 124, 125, 122, 121, 123, 114, 126, 142, 139, 128, 113, 107, 144, 137, 129, 125, 121, 124, 116, 139, 130, 141, 131, 140, 138, 129, 130, 139, 113, 131, 137, 151, 113, 140, 138, 136, 141, 140, 129, 121, 131, 126, 135, 111, 114, 150, 132, 121, 118, 128, 113, 137, 124, 107, 122, 128, 124, 123, 140, 125, 122, 131, 129, 119, 130, 120, 126, 133, 122, 121, 125, 128, 128, 119, 113, 124, 131, 136, 131, 134, 120, 107, 129, 151, 128, 132, 127, 138, 130, 118, 134, 124, 132, 122, 116, 127, 121, 123, 109, 110, 129, 114, 128, 133, 120, 109, 143, 124, 135, 136, 121, 124, 111, 115, 121, 134, 126, 133, 118, 118, 116, 130, 112, 126, 120, 135, 141, 125, 145, 136, 122, 131, 112, 132, 139, 109, 114, 118, 139, 137, 121, 119, 147, 116, 124, 147, 130, 142, 119, 119, 120, 109, 131, 134, 135, 117, 124, 107, 141, 122, 116, 132, 123, 116, 128, 130, 127, 113, 138, 120, 131, 126, 127, 102, 131, 112, 121, 129, 124, 126, 108, 111, 138, 113, 106, 112, 140, 130, 135, 136, 120, 140, 127, 118, 129, 127, 134, 134, 142, 92, 147, 130, 130, 139, 128, 115, 156, 145, 121, 118, 133, 129, 127, 126, 127, 123, 120, 132, 118, 123, 124, 123, 125, 103, 143, 139, 154, 123, 130, 127, 138, 116, 134, 119, 129, 108, 116, 136, 135, 119, 141, 132, 121, 132, 115, 134, 123, 116, 104, 123, 135, 107, 130, 91, 117, 147, 126, 133, 114, 124, 132, 120, 123, 126, 120, 113, 123, 135, 108, 123, 132, 120, 119, 128, 131, 129, 123, 151, 151, 145, 124, 118, 137, 135, 126, 136, 135, 131, 128, 124, 121, 114, 129, 124, 126, 114, 114, 139, 113, 125, 114, 127, 124, 127, 135, 138, 119, 127, 112, 121, 123, 127, 121, 117, 104, 128, 108, 125, 120, 132, 121, 114, 120, 147, 128, 118, 133, 114, 145, 122, 123, 116, 131, 137, 117, 120, 129, 134, 121, 142, 124, 127, 126, 126, 118, 123, 126, 123, 130, 151, 126, 126, 117, 115, 118, 119, 125, 122, 129, 114, 132, 113, 124, 110, 142, 123, 132, 127, 120, 114, 117, 126, 118, 134, 101, 117, 136, 143, 124, 132, 123, 130, 116, 126, 123, 117, 133, 118, 125, 117, 124, 122, 122, 123, 130, 116, 111, 136, 123, 132, 126, 140, 113, 114, 137, 140, 118, 126, 129, 114, 132, 128, 117, 127, 125, 127, 114, 107, 115, 117, 111, 130, 124, 124, 134, 134, 119, 136, 130, 120, 151, 139, 131, 108, 127, 120, 125, 148, 131, 124, 126, 125, 122, 123, 148, 127, 131, 139, 119, 151, 135, 114, 149, 114, 107, 118, 131, 112, 119, 152, 120, 147, 125, 128, 129, 122, 114, 130, 130, 112, 125, 123, 124, 130, 127, 127, 137, 149, 108, 131, 140, 118, 119, 125, 133, 136, 123, 124, 132, 116, 118, 128, 137, 124, 127, 120, 125, 121, 151, 127, 135, 129, 138, 123, 147, 114, 120, 125, 112, 123, 113, 123, 134, 139, 130, 140, 110, 126, 121, 123, 120, 128, 127, 121, 146, 138, 134, 142, 125, 132, 127, 112, 120, 120, 138, 137, 105, 119, 136, 113, 127, 132, 128, 132, 112, 114, 108, 123, 127, 133, 125, 124, 121, 116, 135, 133, 128, 147, 120, 130, 125, 117, 111, 132, 130, 132, 113, 139, 123, 117, 125, 126, 126, 110, 131, 122, 122, 123, 123, 120, 118, 128, 117, 134, 116, 144, 112, 123, 125, 132, 126, 126, 142, 119, 125, 123, 131, 120, 116, 145, 141, 117, 130, 124, 119, 130, 120, 130, 121, 155, 121, 119, 119, 118, 137, 144, 127, 142, 121, 128, 118, 114, 129, 145, 124, 129, 133, 135, 132, 108, 115, 133, 121, 142, 130, 118, 124, 118, 119, 127, 128, 134, 123, 120, 128, 143, 132, 134, 137, 119, 134, 115, 119, 118, 131, 133, 126, 123, 125, 135, 127, 125, 123, 121, 123, 118, 131, 135, 122, 133, 130, 129, 114, 121, 124, 123, 124, 144, 127, 117, 122, 114, 140, 148, 118, 131, 121, 129, 124, 128, 128, 125, 124, 115, 113, 132, 136, 119, 139, 129, 130, 114, 118, 117, 123, 111, 114, 128, 117, 116, 119, 130, 127, 120, 134, 119, 142, 128, 144, 133, 134, 125, 128, 102, 125, 129, 124, 135, 110, 126, 135, 125, 106, 125, 107, 124, 116, 129, 108, 124, 129, 141, 116, 110, 112, 126, 141, 138, 139, 129, 124, 118, 125, 113, 119, 128, 131, 124, 132, 133, 130, 117, 120, 137, 127, 111, 124, 126, 127, 133, 127, 129, 104, 131, 121, 121, 115, 147, 138, 126, 129, 124, 121, 124, 120, 130, 140, 150, 115, 123, 115, 118, 140, 121, 138, 120, 132, 114, 112, 118, 130, 114, 147, 120, 135, 114, 128, 126, 140, 131, 135, 127, 144, 117, 126, 117, 129, 113, 124, 125, 124, 118, 128, 132, 141, 122, 101, 127, 142, 122, 126, 128, 117, 120, 127, 131, 150, 112, 137, 109, 114, 118, 126, 131, 121, 126, 135, 134, 136, 124, 139, 141, 114, 139, 128, 130, 123, 125, 122, 141, 125, 97, 123, 120, 120, 128, 107, 133, 127, 105, 125, 129, 142, 132, 128, 123, 117, 110, 114, 125, 107, 120, 133, 125, 132, 121, 116, 135, 119, 138, 144, 141, 109, 115, 107, 124, 133, 138, 129, 133, 110, 133, 123, 120, 116, 117, 128, 119, 122, 115, 119, 125, 110, 122, 132, 112, 141, 145, 135, 120, 149, 118, 133, 132, 139, 112, 94, 113, 135, 127, 135, 115, 125, 129, 117, 120, 120, 119, 140, 131, 103, 118, 127, 135, 118, 128, 143, 122, 114, 108, 122, 143, 104, 132, 130, 125, 125, 125, 147, 121, 130, 140, 111, 127, 123, 126, 122, 132, 124, 136, 141, 114, 109, 136, 131, 126, 116, 126, 117, 121, 125, 132, 118, 119, 119, 132, 114, 141, 125, 136, 133, 112, 118, 122, 139, 121, 114, 135, 129, 130, 152, 130, 147, 112, 122, 123, 126, 132, 122, 129, 133, 128, 130, 119, 128, 120, 119, 120, 106, 142, 124, 121, 128, 122, 130, 115, 126, 114, 134, 119, 129, 128, 125, 134, 118, 137, 139, 97, 131, 113, 122, 126, 122, 124, 122, 132, 144, 118, 128, 143, 126, 128, 131, 130, 132, 120, 124, 126, 117, 148, 125, 114, 100, 120, 128, 115, 109, 120, 130, 137, 118, 116, 129, 121, 119, 118, 119, 115, 131, 129, 125, 123, 139, 129, 108, 119, 144, 132, 123, 136, 125, 126, 125, 132, 132, 137, 141, 135, 116, 129, 88, 118, 126, 139, 143, 130, 122, 122, 130, 129, 135, 110, 133, 130, 139, 124, 141, 134, 123, 129, 141, 112, 126, 129, 140, 109, 138, 149, 118, 121, 118, 124, 125, 121, 130, 118, 119, 121, 118, 139, 120, 124, 134, 139, 117, 135, 142, 118, 127, 114, 129, 126, 150, 129, 128, 140, 137, 142, 119, 136, 117, 131, 136, 131, 138, 136, 137, 120, 140, 144, 140, 118, 132, 107, 105, 134, 129, 127, 129, 116, 118, 129, 117, 122, 129, 122, 123, 140, 139, 121, 122, 140, 118, 115, 117, 106, 127, 102, 139, 129, 137, 111, 134, 117, 130, 128, 126, 117, 123, 118, 137, 132, 137, 126, 126, 120, 125, 119, 131, 133, 114, 124, 125, 130, 125, 118, 120, 152, 134, 123, 108, 129, 125, 114, 128, 118, 123, 132, 127, 125, 117, 104, 108, 120, 140, 131, 139, 125, 119, 141, 134, 115, 118, 139, 133, 121, 121, 118, 105, 132, 122, 115, 112, 122, 126, 137, 122, 139, 121, 128, 136, 116, 117, 128, 134, 130, 119, 133, 130, 115, 132, 141, 132, 125, 146, 108, 142, 121, 112, 137, 121, 137, 107, 126, 129, 116, 130, 116, 130, 128, 107, 133, 127, 140, 120, 124, 130, 136, 120, 115, 127, 130, 126, 113, 119, 152, 123, 130, 124, 130, 131, 143, 130, 123, 127, 110, 135, 134, 109, 120, 133, 126, 125, 130, 127, 121, 140, 120, 120, 124, 115, 119, 134, 128, 142, 140, 124, 151, 122, 126, 133, 100, 112, 132, 130, 142, 146, 141, 125, 135, 139, 125, 129, 129, 136, 127, 140, 115, 139, 114, 134, 118, 140, 128, 119, 127, 117, 110, 124, 138, 129, 136, 109, 128, 140, 134, 122, 118, 128, 134, 129, 85, 131, 130, 126, 112, 108, 147, 136, 126, 119, 137, 134, 136, 127, 127, 155, 118, 116, 107, 116, 148, 130, 128, 115, 135, 115, 121, 121, 133, 120, 139, 122, 130, 129, 123, 118, 120, 129, 135, 118, 134, 134, 120, 122, 131, 121, 119, 126, 144, 120, 133, 132, 140, 118, 119, 126, 133, 144, 124, 116, 144, 140, 115, 111, 119, 134, 120, 133, 140, 122, 127, 143, 105, 134, 129, 115, 125, 120, 124, 129, 135, 111, 139, 136, 140, 124, 122, 127, 119, 135, 130, 97, 125, 124, 126, 135, 112, 140, 113, 138, 146, 125, 122, 114, 122, 134, 131, 120, 139, 120, 125, 103, 131, 124, 114, 127, 118, 119, 126, 124, 129, 112, 122, 127, 126, 125, 109, 120, 124, 115, 128, 114, 133, 139, 123, 137, 135, 121, 107, 120, 119, 122, 130, 137, 125, 121, 126, 112, 114, 114, 134, 132, 123, 118, 122, 120, 126, 120, 131, 125, 120, 136, 126, 126, 122, 133, 130, 126, 152, 136, 117, 113, 139, 97, 134, 131, 122, 128, 114, 124, 117, 114, 120, 131, 126, 124, 132, 129, 130, 113, 147, 125, 129, 130, 126, 132, 121, 116, 121, 120, 117, 119, 122, 138, 129, 122, 118, 125, 124, 102, 117, 115, 112, 138, 136, 129, 124, 119, 120, 130, 135, 126, 111, 119, 126, 117, 127, 128, 102, 135, 121, 146, 127, 132, 129, 139, 118, 133, 120, 116, 149, 139, 117, 123, 107, 142, 117, 121, 129, 118, 134, 130, 131, 127, 108, 135, 135, 120, 134, 119, 122, 105, 113, 100, 107, 132, 120, 118, 122, 125, 134, 122, 128, 118, 133, 129, 114, 128, 125, 124, 131, 129, 136, 128, 117, 105, 122, 143, 116, 124, 106, 136, 114, 137, 129, 133, 126, 114, 116, 130, 136, 118, 130, 125, 139, 106, 124, 111, 125, 110, 131, 116, 109, 135, 127, 129, 140, 143, 137, 111, 121, 113, 134, 117, 128, 123, 137, 120, 136, 135, 137, 118, 146, 128, 107, 122, 129, 125, 129, 121, 131, 125, 129, 115, 124, 117, 119, 123, 116, 112, 118, 110, 128, 148, 119, 123, 147, 120, 119, 138, 108, 138, 122, 127, 122, 102, 133, 131, 132, 123, 125, 129, 119, 115, 122, 147, 121, 119, 127, 130, 127, 126, 157, 137, 126, 128, 142, 136, 128, 124, 136, 125, 124, 136, 125, 110, 138, 118, 111, 129, 123, 130, 127, 129, 130, 132, 122, 134, 112, 136, 141, 122, 134, 133, 124, 133, 130, 129, 123, 124, 127, 113, 129, 120, 132, 133, 121, 124, 121, 129, 125, 123, 124, 117, 123, 129, 119, 123, 139, 120, 124, 123, 125, 135, 113, 153, 120, 108, 140, 133, 137, 126, 131, 114, 117, 140, 125, 118, 124, 135, 136, 131, 125, 124, 110, 113, 120, 136, 126, 119, 120, 112, 135, 131, 131, 119, 134, 110, 128, 129, 119, 124, 135, 142, 121, 135, 130, 128, 127, 115, 129, 117, 116, 127, 121, 121, 119, 130, 123, 121, 120, 119, 120, 119, 115, 139, 140, 105, 131, 121, 114, 135, 131, 98, 134, 119, 117, 139, 129, 126, 109, 139, 138, 113, 123, 116, 118, 131, 125, 113, 121, 127, 156, 116, 115, 137, 134, 141, 125, 115, 128, 133, 132, 134, 146, 126, 111, 120, 129, 116, 126, 133, 113, 136, 115, 140, 133, 131, 133, 129, 126, 124, 128, 122, 129, 126, 111, 148, 127, 105, 141, 117, 124, 124, 117, 129, 133, 114, 146, 140, 116, 116, 125, 129, 109, 124, 119, 114, 126, 123, 123, 134, 124, 132, 118, 138, 130, 123, 113, 147, 122, 121, 128, 143, 115, 127, 118, 126, 128, 131, 140, 129, 128, 131, 131, 121, 119, 150, 131, 122, 108, 117, 123, 123, 119, 121, 137, 126, 117, 118, 129, 131, 107, 143, 119, 120, 114, 126, 139, 130, 126, 139, 114, 140, 113, 113, 134, 111, 139, 117, 124, 123, 139, 100, 125, 136, 141, 136, 121, 118, 136, 124, 122, 113, 117, 130, 120, 132, 133, 140, 128, 142, 120, 122, 115, 122, 140, 142, 145, 132, 137, 122, 114, 126, 114, 121, 110, 115, 136, 135, 129, 121, 143, 128, 111, 112, 111, 131, 129, 125, 110, 128, 127, 116, 123, 117, 120, 116, 112, 142, 110, 134, 117, 116, 128, 112, 136, 121, 130, 125, 93, 120, 120, 132, 128, 132, 120, 129, 126, 112, 137, 120, 116, 133, 116, 135, 103, 137, 131, 117, 127, 117, 143, 115, 122, 116, 127, 117, 142, 130, 132, 127, 117, 125, 128, 122, 122, 129, 118, 114, 117, 128, 126, 118, 132, 123, 152, 138, 126, 124, 117, 135, 136, 127, 117, 127, 126, 124, 113, 116, 138, 140, 129, 124, 121, 130, 110, 132, 138, 120, 142, 149, 101, 120, 130, 134, 115, 101, 126, 125, 121, 99, 123, 111, 117, 129, 111, 120, 123, 111, 121, 120, 127, 127, 127, 123, 121, 121, 127, 122, 130, 130, 108, 139, 130, 113, 140, 128, 103, 132, 126, 141, 126, 119, 133, 129, 117, 119, 106, 125, 126, 133, 96, 135, 120, 122, 117, 112, 114, 112, 121, 141, 129, 131, 126, 127, 124, 134, 125, 112, 118, 145, 124, 134, 121, 130, 131, 126, 126, 122, 145, 135, 127, 122, 120, 129, 129, 129, 119, 139, 135, 126, 138, 141, 133, 127, 123, 134, 122, 129, 124, 135, 129, 113, 119, 121, 118, 127, 136, 113, 132, 132, 113, 119, 163, 142, 140, 120, 140, 116, 112, 127, 115, 137, 111, 112, 113, 130, 134, 140, 120, 124, 125, 153, 105, 121, 126, 122, 126, 115, 111, 125, 119, 117, 136, 129, 123, 121, 121, 137, 137, 124, 135, 131, 123, 135, 115, 153, 118, 129, 117, 148, 115, 120, 126, 116, 132, 101, 124, 125, 124, 123, 130, 109, 122, 123, 124, 125, 123, 114, 146, 145, 122, 144, 129, 150, 126, 126, 105, 123, 128, 143, 129, 120, 119, 114, 116, 119, 129, 124, 137, 118, 127, 102, 117, 119, 126, 121, 129, 111, 131, 138, 106, 117, 115, 128, 126, 133, 139, 131, 123, 126, 135, 132, 107, 147, 116, 113, 115, 103, 119, 129, 123, 117, 112, 122, 128, 142, 128, 120, 130, 111, 139, 127, 118, 148, 126, 130, 121, 117, 132, 132, 141, 112, 127, 101, 125, 136, 131, 147, 116, 139, 127, 121, 129, 118, 121, 123, 130, 123, 149, 123, 112, 132, 118, 117, 131, 120, 123, 127, 109, 124, 134, 135, 136, 130, 111, 127, 116, 105, 134, 139, 120, 134, 125, 126, 137, 125, 123, 135, 132, 111, 110, 124, 116, 134, 122, 129, 105, 129, 122, 134, 128, 122, 122, 126, 120, 123, 119, 133, 127, 115, 120, 129, 127, 127, 132, 112, 120, 145, 120, 131, 120, 105, 129, 132, 131, 89, 133, 117, 152, 121, 115, 127, 140, 121, 132, 119, 131, 123, 145, 130, 141, 125, 133, 116, 110, 122, 127, 132, 107, 151, 129, 117, 134, 134, 107, 133, 123, 129, 129, 137, 119, 143, 112, 116, 112, 98, 125, 124, 143, 124, 111, 133, 96, 117, 126, 130, 120, 127, 119, 132, 121, 130, 113, 125, 125, 112, 124, 123, 123, 130, 151, 126, 121, 126, 113, 142, 129, 115, 110, 134, 131, 128, 117, 132, 109, 123, 105, 134, 122, 131, 126, 126, 134, 126, 128, 139, 135, 127, 115, 106, 140, 128, 133, 119, 137, 144, 116, 131, 126, 130, 114, 116, 127, 135, 140, 118, 106, 117, 110, 115, 120, 129, 131, 116, 127, 135, 119, 121, 116, 132, 127, 136, 153, 124, 124, 131, 113, 127, 139, 113, 122, 128, 128, 137, 135, 135, 154, 141, 131, 114, 131, 96, 134, 110, 127, 116, 142, 136, 139, 121, 154, 136, 121, 126, 138, 105, 133, 113, 129, 129, 122, 123, 150, 121, 122, 118, 126, 127, 136, 127, 128, 135, 120, 119, 136, 114, 109, 127, 114, 123, 133, 107, 136, 128, 127, 104, 125, 102, 103, 119, 105, 127, 126, 117, 102, 120, 145, 120, 127, 123, 131, 132, 121, 135, 106, 137, 116, 128, 116, 131, 118, 129, 128, 132, 122, 112, 146, 119, 121, 127, 130, 135, 142, 131, 119, 139, 161, 128, 140, 111, 126, 115, 128, 134, 135, 121, 130, 140, 118, 105, 131, 138, 147, 99, 118, 125, 129, 125, 116, 134, 110, 130, 138, 145, 115, 118, 114, 142, 106, 136, 121, 136, 122, 126, 144, 130, 119, 117, 119, 131, 132, 119, 106, 107, 121, 131, 114, 105, 129, 109, 146, 130, 116, 129, 113, 125, 125, 119, 141, 113, 110, 135, 142, 125, 133, 136, 138, 127, 125, 123, 122, 144, 136, 142, 140, 124, 146, 119, 124, 123, 125, 128, 113, 138, 139, 117, 119, 102, 125, 113, 133, 116, 136, 136, 112, 130, 128, 109, 125, 105, 119, 123, 129, 124, 124, 133, 132, 127, 112, 154, 116, 113, 100, 139, 132, 121, 124, 137, 124, 113, 134, 122, 138, 133, 125, 156, 141, 117, 133, 134, 148, 141, 117, 138, 126, 136, 131, 132, 122, 126, 153, 122, 129, 117, 130, 132, 131, 122, 130, 135, 139, 109, 118, 114, 108, 125, 117, 139, 134, 136, 147, 119, 133, 121, 123, 118, 110, 135, 110, 135, 129, 154, 108, 122, 115, 123, 136, 130, 134, 126, 124, 125, 119, 132, 128, 121, 124, 130, 130, 157, 137, 126, 129, 138, 125, 135, 126, 129, 132, 112, 124, 118, 130, 147, 116, 126, 135, 121, 123, 108, 129, 130, 152, 125, 134, 134, 104, 138, 120, 139, 114, 124, 139, 106, 128, 124, 131, 108, 111, 143, 131, 143, 114, 141, 130, 117, 121, 124, 134, 143, 110, 129, 115, 132, 127, 134, 133, 131, 133, 128, 114, 108, 131, 149, 110, 123, 128, 124, 123, 126, 134, 114, 116, 130, 118, 120, 136, 119, 120, 142, 142, 117, 123, 133, 104, 118, 125, 116, 141, 136, 121, 150, 132, 137, 113, 124, 135, 101, 136, 127, 119, 103, 145, 128, 132, 133, 129, 120, 122, 131, 134, 158, 135, 122, 120, 122, 123, 137, 112, 146, 116, 133, 129, 143, 123, 126, 153, 114, 93, 127, 108, 141, 140, 135, 114, 128, 114, 123, 134, 133, 147, 127, 110, 140, 125, 136, 128, 133, 125, 117, 132, 133, 124, 126, 119, 141, 142, 127, 119, 121, 142, 138, 129, 138, 131, 119, 131, 111, 125, 119, 134, 142, 122, 118, 127, 121, 132, 124, 108, 127, 125, 137, 149, 138, 129, 112, 114, 129, 126, 125, 115, 135, 137, 132, 131, 136, 116, 126, 144, 107, 144, 134, 125, 117, 133, 120, 116, 127, 138, 130, 124, 116, 129, 116, 142, 142, 119, 136, 139, 125, 120, 129, 139, 131, 112, 147, 124, 116, 120, 115, 163, 128, 131, 124, 129, 135, 140, 132, 119, 107, 118, 114, 125, 126, 130, 126, 124, 125, 130, 126, 117, 117, 121, 124, 121, 135, 129, 129, 138, 117, 131, 136, 124, 136, 109, 127, 132, 124, 135, 111, 116, 143, 128, 110, 129, 123, 139, 119, 123, 125, 140, 127, 140, 115, 126, 132, 126, 131, 127, 125, 126, 137, 124, 132, 115, 130, 122, 135, 118, 117, 131, 114, 143, 125, 133, 115, 139, 137, 126, 151, 126, 124, 120, 136, 142, 121, 122, 111, 131, 127, 116, 137, 123, 121, 122, 135, 139, 150, 135, 122, 128, 122, 127, 110, 121, 116, 127, 111, 146, 110, 103, 119, 122, 129, 131, 130, 122, 113, 109, 150, 128, 139, 112, 133, 120, 125, 133, 118, 125, 123, 123, 117, 122, 128, 138, 120, 144, 125, 146, 125, 114, 165, 128, 131, 119, 132, 106, 122, 138, 108, 110, 120, 133, 135, 149, 124, 127, 133, 118, 128, 136, 121, 119, 118, 132, 134, 127, 108, 117, 130, 131, 113, 125, 117, 134, 114, 102, 134, 127, 129, 129, 114, 125, 122, 147, 149, 117, 131, 132, 123, 130, 131, 107, 129, 130, 107, 103, 97, 125, 121, 122, 132, 109, 144, 117, 145, 109, 117, 121, 117, 130, 126, 133, 141, 106, 125, 116, 103, 126, 131, 119, 115, 104, 123, 140, 122, 113, 124, 122, 156, 103, 119, 141, 120, 128, 143, 124, 136, 129, 117, 130, 110, 110, 132, 124, 122, 111, 120, 120, 124, 140, 133, 126, 126, 110, 114, 130, 127, 143, 135, 123, 121, 121, 115, 123, 131, 127, 126, 129, 107, 129, 114, 108, 150, 121, 95, 122, 115, 123, 129, 125, 141, 131, 126, 133, 106, 147, 123, 135, 133, 105, 130, 117, 132, 114, 116, 122, 131, 113, 115, 134, 152, 122, 130, 116, 121, 105, 119, 121, 131, 121, 145, 121, 155, 107, 150, 110, 146, 128, 123, 131, 120, 135, 129, 132, 134, 106, 126, 119, 105, 131, 114, 127, 123, 140, 131, 129, 123, 124, 135, 127, 147, 133, 119, 127, 140, 142, 137, 124, 131, 151, 133, 123, 132, 133, 121, 129, 127, 134, 127, 126, 140, 143, 134, 138, 134, 123, 120, 132, 131, 123, 143, 107, 142, 119, 132, 124, 124, 129, 123, 115, 121, 100, 150, 143, 121, 146, 123, 139, 141, 108, 104, 130, 127, 104, 104, 129, 123, 135, 128, 143, 134, 131, 129, 133, 138, 138, 129, 112, 134, 116, 137, 119, 121, 154, 112, 124, 137, 122, 145, 137, 124, 106, 112, 134, 128, 125, 139, 119, 138, 144, 104, 136, 143, 129, 120, 131, 136, 112, 131, 124, 131, 113, 125, 107, 122, 134, 131, 136, 112, 110, 128, 127, 119, 126, 135, 126, 133, 125, 130, 121, 116, 119, 127, 146, 124, 123, 116, 143, 125, 120, 124, 116, 121, 137, 125, 132, 117, 137, 138, 149, 110, 121, 118, 119, 135, 115, 117, 113, 129, 111, 105, 116, 131, 152, 125, 148, 123, 116, 108, 124, 127, 107, 121, 128, 122, 120, 131, 139, 120, 115, 111, 118, 134, 106, 109, 121, 101, 125, 143, 129, 107, 136, 125, 115, 125, 120, 122, 129, 120, 137, 125, 148, 125, 124, 138, 132, 149, 133, 145, 137, 121, 131, 132, 113, 115, 114, 116, 114, 119, 130, 119, 136, 136, 132, 119, 138, 112, 143, 130, 130, 131, 125, 120, 126, 142, 112, 128, 138, 133, 117, 122, 117, 133, 122, 109, 119, 114, 124, 125, 128, 144, 120, 123, 130, 133, 108, 131, 140, 137, 127, 121, 127, 109, 117, 125, 124, 105, 120, 110, 110, 136, 126, 118, 117, 132, 127, 142, 122, 112, 133, 128, 136, 114, 126, 119, 125, 116, 121, 117, 141, 118, 123, 134, 142, 121, 107, 135, 135, 134, 116, 109, 146, 122, 127, 129, 126, 126, 123, 130, 116, 121, 130, 118, 139, 130, 108, 134, 117, 137, 104, 111, 124, 109, 139, 119, 140, 123, 132, 141, 142, 128, 128, 114, 128, 127, 132, 125, 144, 122, 126, 123, 114, 112, 125, 114, 118, 124, 115, 140, 122, 112, 139, 117, 114, 124, 139, 135, 143, 140, 125, 110, 136, 99, 121, 129, 139, 132, 120, 112, 127, 118, 148, 130, 119, 131, 138, 134, 120, 140, 121, 127, 117, 118, 132, 116, 130, 139, 121, 128, 124, 109, 123, 124, 131, 121, 125, 146, 128, 117, 102, 108, 111, 120, 122, 130, 113, 107, 126, 118, 147, 123, 105, 108, 101, 126, 121, 127, 118, 122, 129, 100, 115, 123, 150, 119, 124, 122, 130, 126, 120, 125, 119, 126, 121, 111, 119, 125, 128, 114, 125, 107, 126, 115, 117, 125, 116, 141, 132, 124, 110, 112, 124, 117, 129, 134, 155, 122, 120, 128, 129, 128, 115, 138, 131, 153, 107, 103, 134, 130, 135, 138, 123, 124, 133, 118, 122, 104, 140, 140, 129, 122, 137, 157, 127, 135, 129, 105, 108, 123, 137, 144, 106, 136, 122, 130, 122, 111, 123, 119, 120, 123, 141, 124, 109, 139, 125, 148, 124, 129, 129, 118, 124, 107, 138, 130, 132, 122, 114, 125, 122, 126, 127, 147, 120, 131, 130, 142, 111, 128, 135, 110, 126, 122, 139, 116, 124, 125, 117, 133, 131, 133, 138, 137, 114, 140, 135, 122, 121, 120, 123, 117, 120, 126, 147, 118, 142, 126, 174, 115, 132, 146, 124, 129, 151, 125, 132, 106, 127, 138, 124, 109, 125, 125, 120, 122, 131, 117, 133, 140, 131, 117, 127, 113, 115, 146, 131, 127, 111, 120, 120, 123, 131, 115, 132, 132, 122, 113, 133, 117, 117, 126, 107, 128, 136, 121, 116, 125, 129, 119, 117, 128, 121, 140, 117, 135, 129, 117, 135, 113, 114, 111, 136, 103, 129, 125, 110, 109, 112, 132, 141, 123, 135, 131, 123, 126, 143, 134, 132, 110, 116, 123, 104, 131, 129, 134, 99, 113, 116, 107, 121, 143, 143, 133, 123, 124, 127, 118, 109, 113, 130, 147, 145, 148, 119, 129, 130, 121, 114, 126, 122, 121, 125, 123, 124, 130, 112, 114, 128, 113, 133, 128, 133, 139, 117, 130, 130, 123, 123, 106, 130, 149, 118, 130, 125, 120, 105, 122, 134, 120, 133, 136, 134, 102, 130, 93, 119, 110, 118, 131, 128, 128, 109, 131, 123, 130, 121, 122, 133, 128, 119, 107, 134, 126, 135, 128, 99, 138, 122, 131, 120, 124, 123, 117, 119, 134, 138, 124, 136, 138, 127, 112, 134, 143, 123, 114, 121, 102, 125, 148, 113, 116, 130, 122, 130, 129, 113, 154, 125, 116, 133, 124, 117, 135, 136, 105, 135, 139, 129, 125, 103, 111, 137, 132, 120, 129, 161, 116, 136, 126, 133, 127, 129, 131, 123, 128, 116, 102, 123, 117, 116, 129, 147, 119, 147, 111, 122, 146, 121, 126, 113, 123, 119, 135, 123, 142, 141, 129, 127, 127, 128, 116, 135, 117, 127, 136, 109, 121, 146, 147, 115, 133, 122, 139, 114, 112, 124, 109, 123, 124, 120, 133, 158, 99, 131, 127, 111, 125, 118, 137, 127, 117, 128, 109, 119, 132, 130, 125, 127, 148, 104, 129, 128, 131, 112, 140, 111, 116, 125, 128, 131, 100, 103, 137, 122, 135, 118, 132, 136, 116, 116, 121, 127, 118, 125, 126, 136, 127, 109, 121, 128, 139, 145, 134, 121, 112, 101, 124, 125, 132, 103, 122, 119, 120, 139, 108, 123, 123, 125, 97, 137, 128, 122, 116, 134, 127, 147, 116, 114, 120, 126, 102, 135, 130, 140, 127, 122, 124, 138, 137, 130, 120, 128, 137, 127, 129, 128, 137, 117, 118, 109, 125, 135, 123, 153, 130, 119, 114, 115, 126, 134, 121, 116, 111, 125, 138, 150, 122, 129, 121, 134, 120, 129, 118, 127, 111, 123, 116, 122, 144, 111, 135, 129, 125, 135, 120, 132, 110, 119, 154, 125, 171, 120, 130, 137, 118, 118, 116, 128, 106, 134, 133, 130, 131, 128, 139, 113, 128, 117, 122, 114, 128, 133, 128, 124, 146, 134, 130, 127, 125, 106, 130, 118, 119, 118, 159, 121, 135, 156, 127, 119, 121, 95, 113, 117, 126, 125, 132, 125, 122, 113, 112, 133, 125, 127, 118, 123, 133, 117, 132, 126, 111, 132, 126, 141, 134, 122, 137, 153, 124, 127, 135, 119, 129, 122, 143, 129, 106, 131, 131, 137, 126, 134, 121, 118, 121, 114, 125, 118, 117, 118, 116, 131, 119, 131, 133, 122, 115, 121, 99, 125, 122, 129, 123, 135, 110, 120, 130, 136, 131, 145, 109, 121, 123, 112, 123, 132, 133, 124, 136, 131, 113, 108, 116, 124, 119, 117, 124, 109, 135, 125, 99, 121, 126, 112, 115, 127, 123, 141, 135, 113, 112, 125, 134, 133, 116, 147, 146, 110, 110, 140, 133, 117, 104, 122, 126, 147, 119, 135, 130, 127, 136, 94, 121, 126, 117, 119, 118, 131, 131, 132, 118, 115, 127, 116, 140, 135, 136, 130, 109, 138, 134, 127, 118, 135, 111, 123, 115, 121, 129, 125, 137, 111, 127, 125, 140, 121, 127, 137, 108, 126, 121, 112, 125, 115, 129, 118, 114, 123, 128, 133, 120, 111, 130, 118, 129, 136, 114, 117, 102, 130, 130, 126, 114, 122, 122, 130, 117, 111, 130, 123, 133, 125, 135, 124, 108, 138, 108, 133, 137, 131, 111, 142, 107, 135, 132, 141, 145, 115, 123, 121, 122, 128, 151, 117, 119, 119, 127, 138, 137, 132, 121, 126, 129, 99, 141, 131, 120, 134, 116, 128, 117, 131, 115, 123, 125, 124, 114, 128, 127, 135, 123, 126, 125, 110, 126, 135, 126, 111, 140, 117, 114, 125, 133, 122, 120, 116, 136, 126, 128, 131, 117, 124, 119, 109, 130, 106, 125, 117, 134, 154, 134, 100, 116, 148, 147, 127, 138, 133, 128, 116, 121, 118, 144, 132, 141, 123, 115, 121, 137, 122, 127, 126, 140, 132, 134, 121, 109, 151, 130, 167, 138, 120, 107, 107, 131, 94, 119, 134, 127, 130, 128, 115, 121, 139, 103, 113, 128, 126, 121, 123, 121, 118, 127, 123, 115, 105, 121, 130, 106, 134, 102, 121, 123, 116, 125, 120, 122, 116, 137, 126, 139, 131, 105, 119, 123, 127, 136, 128, 117, 121, 140, 138, 145, 134, 120, 109, 122, 144, 125, 123, 127, 114, 108, 147, 135, 120, 132, 113, 134, 124, 127, 106, 116, 127, 119, 126, 126, 129, 128, 130, 117, 137, 150, 121, 122, 116, 116, 121, 112, 123, 135, 123, 132, 124, 132, 97, 130, 144, 132, 138, 122, 140, 128, 124, 129, 129, 110, 138, 132, 137, 129, 116, 122, 129, 123, 110, 115, 121, 140, 118, 128, 131, 139, 124, 124, 140, 113, 135, 146, 127, 130, 124, 126, 131, 108, 130, 120, 138, 118, 114, 153, 131, 138, 134, 122, 137, 127, 127, 135, 131, 126, 107, 120, 129, 133, 123, 133, 119, 140, 120, 114, 122, 126, 126, 132, 118, 116, 124, 117, 131, 146, 122, 123, 132, 115, 111, 118, 121, 108, 133, 114, 148, 117, 149, 124, 121, 124, 135, 133, 145, 112, 122, 128, 102, 124, 111, 115, 114, 111, 121, 141, 141, 113, 117, 128, 128, 133, 123, 142, 119, 136, 114, 132, 115, 121, 132, 126, 123, 107, 124, 151, 136, 150, 125, 110, 126, 116, 117, 127, 117, 119, 123, 113, 101, 120, 146, 120, 120, 117, 139, 142, 121, 127, 121, 132, 116, 124, 125, 125, 114, 129, 132, 111, 120, 127, 140, 133, 140, 115, 135, 143, 132, 119, 129, 126, 123, 129, 135, 114, 130, 134, 128, 109, 121, 121, 136, 115, 122, 134, 127, 134, 131, 133, 110, 112, 111, 145, 135, 144, 123, 110, 137, 91, 143, 123, 130, 128, 118, 115, 140, 117, 140, 121, 142, 120, 128, 128, 140, 143, 127, 134, 132, 119, 128, 89, 131, 120, 135, 133, 107, 104, 143, 120, 137, 132, 121, 130, 125, 153, 130, 118, 127, 123, 143, 139, 131, 126, 142, 138, 113, 145, 134, 126, 114, 131, 126, 124, 130, 106, 130, 145, 138, 106, 125, 140, 149, 117, 121, 121, 126, 113, 127, 122, 111, 132, 131, 126, 126, 108, 144, 125, 124, 123, 142, 129, 113, 121, 120, 136, 126, 127, 118, 128, 113, 124, 118, 122, 134, 130, 120, 123, 132, 129, 144, 129, 109, 133, 117, 116, 120, 112, 115, 132, 118, 130, 122, 131, 138, 136, 146, 134, 111, 125, 133, 114, 107, 114, 135, 121, 119, 134, 109, 134, 126, 119, 123, 127, 130, 110, 120, 125, 125, 130, 103, 115, 135, 130, 113, 113, 108, 108, 138, 123, 116, 111, 109, 126, 128, 114, 113, 141, 121, 140, 133, 108, 121, 109, 117, 106, 121, 119, 107, 112, 122, 128, 112, 120, 133, 145, 116, 139, 136, 132, 112, 120, 128, 137, 130, 113, 122, 124, 131, 139, 122, 118, 137, 139, 125, 122, 123, 132, 120, 121, 136, 145, 120, 124, 140, 114, 88, 115, 112, 102, 121, 119, 135, 133, 117, 116, 122, 136, 131, 91, 102, 119, 114, 152, 126, 128, 137, 136, 123, 113, 122, 147, 118, 129, 129, 117, 115, 113, 115, 119, 144, 127, 143, 137, 129, 113, 121, 115, 143, 122, 131, 123, 138, 131, 102, 111, 138, 145, 123, 144, 131, 116, 132, 107, 119, 118, 129, 112, 127, 154, 126, 121, 122, 112, 133, 107, 116, 119, 127, 115, 137, 129, 137, 145, 124, 122, 111, 122, 123, 130, 116, 148, 124, 123, 145, 121, 113, 116, 128, 126, 122, 129, 139, 124, 130, 131, 129, 136, 146, 139, 104, 138, 125, 122, 123, 126, 117, 134, 128, 122, 130, 123, 122, 122, 100, 134, 140, 134, 107, 120, 140, 127, 117, 94, 123, 132, 130, 127, 120, 126, 109, 139, 132, 124, 124, 121, 124, 113, 118, 115, 144, 119, 140, 107, 139, 111, 122, 114, 110, 117, 135, 120, 133, 139, 124, 139, 126, 116, 128, 128, 130, 124, 127, 129, 118, 133, 109, 134, 123, 122, 146, 133, 126, 133, 124, 145, 134, 124, 118, 119, 110, 127, 120, 131, 116, 136, 124, 113, 121, 128, 115, 130, 120, 137, 119, 107, 124, 112, 129, 135, 105, 116, 109, 126, 136, 129, 130, 131, 122, 129, 124, 128, 127, 117, 107, 126, 125, 127, 114, 128, 121, 117, 98, 109, 133, 122, 127, 142, 147, 126, 122, 124, 115, 112, 119, 119, 105, 117, 150, 136, 123, 130, 130, 122, 130, 145, 106, 122, 128, 116, 126, 123, 117, 115, 125, 108, 106, 132, 123, 108, 121, 107, 127, 107, 127, 133, 140, 117, 137, 132, 121, 132, 121, 132, 139, 103, 119, 136, 105, 119, 140, 135, 136, 142, 122, 136, 117, 127, 126, 125, 137, 116, 104, 121, 124, 135, 118, 124, 103, 138, 147, 107, 128, 128, 124, 123, 131, 118, 118, 130, 129, 141, 121, 129, 130, 116, 114, 125, 113, 141, 118, 121, 123, 135, 110, 105, 150, 123, 146, 136, 134, 128, 131, 135, 117, 135, 118, 142, 111, 123, 126, 115, 100, 120, 122, 138, 116, 124, 139, 112, 133, 136, 123, 128, 115, 128, 122, 128, 134, 122, 111, 145, 130, 117, 125, 121, 148, 140, 119, 128, 105, 125, 125, 108, 116, 120, 129, 134, 135, 131, 113, 127, 119, 131, 132, 134, 119, 138, 122, 108, 128, 99, 125, 122, 140, 138, 147, 125, 125, 128, 118, 131, 123, 112, 134, 135, 130, 129, 120, 129, 134, 131, 132, 116, 136, 108, 129, 127, 116, 122, 108, 130, 130, 137, 129, 131, 136, 125, 112, 139, 120, 127, 121, 141, 132, 105, 116, 117, 117, 121, 110, 118, 129, 127, 134, 128, 110, 119, 114, 123, 118, 136, 129, 114, 119, 141, 135, 113, 121, 131, 130, 135, 121, 108, 128, 125, 124, 106, 126, 138, 111, 118, 110, 110, 107, 137, 122, 135, 112, 110, 114, 107, 148, 127, 128, 132, 120, 105, 117, 128, 140, 133, 130, 124, 128, 120, 131, 130, 129, 104, 113, 121, 120, 132, 140, 141, 126, 131, 133, 127, 127, 132, 122, 109, 117, 125, 123, 135, 132, 126, 131, 113, 115, 116, 113, 145, 120, 147, 126, 125, 132, 123, 134, 113, 151, 135, 132, 130, 117, 124, 127, 121, 135, 121, 126, 128, 131, 112, 126, 120, 143, 123, 122, 123, 117, 126, 129, 122, 134, 122, 116, 120, 125, 134, 101, 124, 124, 141, 129, 128, 122, 120, 120, 132, 128, 113, 134, 132, 124, 114, 133, 131, 141, 141, 125, 124, 160, 122, 127, 114, 119, 125, 146, 138, 123, 133, 107, 123, 106, 134, 129, 119, 122, 106, 117, 113, 129, 141, 130, 135, 124, 124, 118, 126, 134, 113, 124, 113, 127, 123, 129, 145, 119, 119, 126, 122, 127, 130, 113, 136, 119, 129, 124, 122, 112, 130, 148, 135, 123, 120, 121, 125, 124, 136, 144, 115, 144, 129, 127, 115, 134, 144, 144, 116, 120, 123, 124, 138, 114, 137, 119, 127, 120, 116, 127, 108, 120, 115, 121, 121, 118, 126, 118, 144, 111, 118, 115, 124, 139, 123, 122, 113, 122, 125, 122, 123, 114, 126, 123, 135, 125, 127, 114, 129, 134, 123, 125, 128, 113, 135, 133, 130, 129, 130, 142, 124, 128, 118, 118, 128, 124, 125, 131, 118, 137, 133, 129, 117, 141, 114, 127, 119, 105, 118, 130, 135, 136, 130, 135, 110, 148, 121, 125, 120, 115, 115, 135, 119, 128, 132, 126, 117, 116, 107, 112, 120, 127, 135, 132, 114, 127, 130, 110, 133, 141, 125, 118, 122, 128, 123, 124, 138, 132, 114, 129, 126, 126, 133, 105, 117, 110, 126, 131, 126, 132, 142, 128, 134, 121, 131, 122, 134, 136, 131, 120, 128, 128, 124, 134, 134, 120, 144, 119, 121, 122, 115, 147, 135, 131, 123, 120, 131, 116, 115, 131, 127, 128, 125, 139, 145, 119, 138, 116, 130, 131, 124, 118, 129, 143, 121, 135, 143, 123, 132, 117, 112, 131, 128, 139, 132, 116, 121, 114, 123, 148, 125, 108, 108, 127, 130, 142, 123, 149, 139, 128, 117, 120, 112, 114, 125, 123, 129, 117, 131, 112, 114, 111, 126, 132, 124, 118, 129, 138, 120, 129, 125, 129, 122, 121, 133, 131, 113, 132, 126, 112, 118, 115, 124, 141, 128, 128, 130, 117, 125, 119, 133, 119, 112, 135, 127, 135, 119, 124, 111, 122, 125, 130, 135, 144, 118, 99, 114, 119, 139, 106, 132, 136, 125, 118, 136, 125, 119, 118, 116, 126, 140, 126, 117, 122, 131, 127, 132, 130, 133, 140, 135, 135, 115, 127, 137, 137, 133, 120, 153, 125, 125, 113, 121, 124, 130, 120, 134, 126, 120, 123, 120, 108, 119, 122, 122, 115, 128, 103, 127, 115, 109, 124, 127, 122, 126, 132, 123, 119, 130, 115, 121, 124, 123, 136, 137, 131, 97, 127, 120, 123, 134, 134, 134, 124, 120, 141, 117, 135, 134, 134, 134, 133, 131, 144, 110, 121, 134, 117, 130, 121, 124, 111, 122, 114, 127, 125, 139, 140, 123, 127, 126, 109, 128, 117, 119, 137, 130, 125, 111, 133, 151, 149, 131, 125, 105, 114, 111, 131, 118, 132, 128, 120, 135, 127, 121, 108, 126, 125, 110, 128, 121, 118, 135, 122, 129, 123, 122, 135, 122, 125, 120, 135, 123, 140, 131, 123, 133, 139, 125, 119, 134, 128, 122, 124, 125, 138, 129, 133, 157, 123, 131, 125, 129, 118, 107, 138, 133, 130, 125, 117, 117, 128, 125, 132, 117, 138, 131, 137, 115, 116, 120, 140, 140, 106, 121, 137, 116, 143, 128, 142, 138, 127, 135, 117, 107, 98, 123, 123, 138, 127, 123, 130, 128, 128, 117, 108, 126, 149, 117, 114, 121, 131, 122, 134, 128, 122, 119, 132, 122, 118, 127, 124, 121, 122, 136, 129, 118, 115, 108, 117, 120, 137, 110, 135, 145, 129, 124, 124, 142, 111, 113, 124, 125, 125, 129, 119, 117, 126, 128, 130, 135, 132, 132, 116, 131, 109, 132, 135, 126, 133, 146, 130, 135, 132, 132, 130, 128, 123, 128, 113, 124, 133, 128, 129, 136, 123, 125, 122, 125, 127, 126, 134, 121, 126, 139, 132, 117, 129, 130, 140, 125, 122, 129, 145, 126, 124, 138, 117, 116, 135, 130, 114, 116, 122, 117, 143, 125, 132, 111, 122, 136, 144, 132, 137, 122, 118, 129, 117, 122, 121, 124, 112, 129, 130, 128, 130, 124, 110, 120, 129, 118, 132, 122, 116, 123, 135, 119, 134, 142, 129, 109, 128, 127, 122, 138, 132, 134, 137, 115, 133, 135, 137, 126, 117, 127, 116, 141, 124, 123, 135, 120, 124, 122, 118, 119, 126, 136, 118, 129, 125, 123, 129, 118, 136, 129, 110, 116, 131, 117, 143, 128, 120, 120, 122, 131, 136, 125, 143, 122, 137, 142, 118, 128, 116, 115, 117, 122, 121, 108, 140, 143, 111, 124, 128, 121, 118, 130, 136, 119, 114, 128, 154, 129, 135, 125, 117, 124, 114, 135, 120, 125, 116, 129, 128, 97, 125, 142, 104, 124, 134, 124, 129, 112, 113, 129, 125, 141, 124, 131, 116, 132, 132, 122, 131, 123, 122, 117, 121, 127, 134, 132, 135, 128, 131, 142, 130, 121, 139, 105, 126, 128, 110, 133, 129, 141, 108, 113, 121, 133, 112, 149, 136, 122, 140, 141, 117, 127, 128, 127, 134, 109, 130, 117, 131, 122, 130, 125, 139, 142, 113, 128, 127, 135, 128, 126, 113, 122, 115, 119, 116, 129, 131, 119, 120, 112, 118, 121, 119, 113, 129, 144, 132, 128, 121, 118, 122, 116, 136, 117, 146, 142, 118, 116, 127, 98, 117, 119, 122, 131, 129, 122, 130, 121, 118, 129, 144, 116, 122, 95, 131, 128, 144, 127, 133, 137, 123, 123, 130, 120, 115, 125, 123, 118, 124, 133, 137, 133, 119, 139, 116, 142, 121, 120, 135, 138, 120, 118, 125, 147, 117, 117, 120, 125, 140, 132, 122, 131, 130, 124, 122, 142, 111, 115, 115, 112, 128, 121, 111, 139, 130, 138, 128, 149, 122, 131, 153, 136, 119, 132, 112, 131, 143, 127, 131, 128, 139, 113, 112, 117, 102, 116, 118, 107, 147, 143, 126, 109, 108, 126, 131, 113, 118, 133, 132, 137, 124, 110, 139, 117, 120, 121, 121, 114, 138, 122, 135, 124, 132, 130, 133, 106, 134, 134, 147, 135, 119, 125, 114, 120, 125, 104, 133, 134, 133, 124, 111, 106, 139, 118, 113, 128, 132, 134, 133, 129, 131, 115, 138, 133, 109, 119, 119, 124, 118, 129, 138, 136, 135, 133, 126, 142, 117, 120, 131, 130, 134, 144, 130, 126, 120, 122, 120, 131, 136, 120, 140, 140, 146, 133, 120, 132, 129, 107, 119, 133, 127, 140, 136, 138, 130, 136, 117, 110, 128, 132, 122, 124, 133, 127, 122, 114, 143, 124, 113, 133, 114, 106, 120, 110, 121, 140, 124, 129, 126, 125, 113, 122, 125, 123, 115, 120, 126, 116, 139, 133, 131, 100, 133, 129, 146, 129, 116, 119, 117, 133, 119, 131, 115, 116, 113, 132, 127, 117, 137, 129, 132, 122, 105, 130, 114, 112, 120, 135, 113, 131, 133, 122, 132, 112, 104, 111, 115, 122, 110, 111, 120, 114, 137, 117, 116, 126, 132, 105, 125, 126, 111, 120, 122, 115, 123, 128, 132, 128, 122, 101, 129, 115, 125, 133, 137, 117, 138, 130, 144, 112, 120, 137, 133, 142, 123, 102, 129, 123, 131, 130, 125, 120, 130, 126, 125, 124, 119, 139, 140, 132, 128, 127, 134, 131, 120, 137, 152, 119, 107, 104, 147, 134, 119, 112, 115, 141, 121, 119, 132, 133, 132, 143, 144, 144, 121, 131, 110, 139, 109, 122, 135, 120, 112, 134, 118, 127, 125, 120, 118, 140, 128, 150, 125, 107, 130, 145, 119, 115, 104, 124, 111, 132, 138, 112, 112, 114, 119, 136, 119, 108, 118, 132, 120, 121, 133, 108, 119, 140, 134, 129, 101, 117, 125, 125, 123, 123, 107, 135, 131, 128, 135, 118, 155, 112, 107, 141, 117, 126, 124, 122, 124, 138, 125, 137, 135, 148, 113, 120, 127, 129, 113, 124, 120, 120, 96, 106, 128, 113, 143, 121, 135, 113, 137, 109, 144, 129, 137, 118, 124, 131, 133, 125, 116, 124, 126, 130, 113, 127, 128, 115, 123, 128, 124, 139, 134, 122, 142, 129, 104, 145, 118, 125, 126, 123, 126, 129, 144, 125, 134, 130, 124, 126, 117, 125, 129, 129, 131, 142, 120, 133, 113, 103, 127, 120, 109, 118, 129, 140, 129, 144, 119, 131, 131, 117, 113, 147, 110, 120, 123, 157, 124, 110, 129, 114, 139, 116, 124, 135, 124, 98, 140, 126, 128, 127, 143, 119, 120, 121, 123, 122, 133, 121, 117, 123, 135, 131, 117, 137, 126, 125, 126, 120, 120, 125, 127, 118, 130, 115, 116, 131, 129, 142, 140, 122, 146, 125, 130, 126, 139, 104, 130, 124, 136, 125, 130, 140, 117, 131, 123, 116, 133, 116, 139, 142, 128, 112, 122, 131, 123, 127, 127, 119, 157, 143, 138, 123, 115, 138, 112, 141, 118, 130, 119, 139, 134, 125, 110, 131, 133, 123, 105, 131, 133, 135, 107, 135, 133, 134, 136, 130, 115, 121, 113, 125, 121, 118, 123, 119, 114, 117, 132, 145, 135, 134, 118, 118, 134, 140, 129, 142, 143, 140, 130, 140, 116, 118, 123, 129, 111, 127, 130, 118, 92, 144, 127, 124, 112, 120, 127, 124, 108, 131, 128, 127, 120, 115, 134, 130, 129, 126, 131, 124, 136, 152, 109, 131, 123, 136, 113, 130, 131, 129, 125, 110, 122, 130, 121, 114, 115, 110, 116, 120, 120, 115, 118, 137, 124, 122, 110, 112, 134, 105, 115, 118, 113, 142, 140, 117, 118, 124, 127, 134, 129, 137, 129, 131, 144, 117, 143, 122, 133, 131, 109, 125, 149, 141, 130, 127, 119, 136, 124, 109, 131, 134, 129, 122, 142, 118, 139, 125, 131, 125, 121, 125, 119, 146, 138, 128, 108, 142, 136, 106, 133, 126, 128, 136, 121, 131, 121, 115, 124, 105, 148, 111, 140, 126, 116, 130, 138, 119, 131, 141, 113, 128, 122, 117, 132, 114, 126, 126, 127, 126, 137, 129, 132, 132, 120, 128, 110, 95, 135, 113, 128, 121, 115, 137, 141, 129, 120, 131, 103, 129, 113, 110, 126, 132, 138, 111, 108, 109, 118, 136, 137, 120, 136, 138, 136, 121, 121, 128, 110, 152, 126, 131, 110, 121, 114, 123, 153, 122, 123, 109, 137, 127, 100, 113, 116, 132, 117, 120, 129, 127, 134, 119, 114, 120, 115, 121, 112, 121, 148, 114, 126, 140, 129, 107, 119, 119, 126, 120, 126, 108, 109, 112, 114, 141, 116, 120, 95, 116, 121, 112, 123, 129, 136, 139, 127, 117, 120, 133, 122, 120, 128, 120, 115, 125, 111, 113, 112, 130, 138, 123, 121, 125, 115, 127, 111, 150, 114, 122, 115, 131, 137, 119, 120, 144, 132, 115, 116, 122, 117, 133, 119, 131, 131, 128, 121, 129, 122, 107, 114, 111, 108, 134, 141, 122, 121, 114, 117, 106, 122, 130, 126, 126, 113, 137, 131, 127, 129, 123, 113, 137, 112, 131, 122, 127, 129, 125, 138, 127, 124, 125, 125, 148, 143, 110, 110, 129, 113, 129, 124, 130, 133, 126, 112, 115, 124, 113, 117, 120, 125, 113, 116, 136, 113, 141, 124, 130, 116, 130, 137, 137, 128, 139, 114, 129, 134, 129, 139, 122, 132, 123, 112, 126, 142, 111, 118, 117, 111, 108, 131, 115, 120, 120, 107, 148, 119, 134, 122, 141, 139, 129, 117, 115, 105, 134, 131, 120, 132, 132, 133, 136, 128, 126, 102, 128, 128, 130, 139, 115, 123, 124, 107, 124, 111, 117, 133, 121, 144, 139, 130, 93, 118, 133, 139, 117, 94, 134, 112, 111, 122, 124, 128, 149, 145, 133, 137, 138, 118, 124, 116, 119, 144, 129, 134, 145, 121, 126, 110, 118, 136, 120, 115, 126, 124, 125, 142, 143, 110, 130, 126, 130, 134, 119, 110, 135, 114, 138, 122, 120, 112, 129, 129, 126, 115, 136, 132, 137, 146, 126, 122, 127, 167, 129, 111, 113, 126, 128, 146, 121, 103, 143, 119, 120, 147, 128, 131, 118, 108, 116, 134, 127, 123, 130, 129, 113, 114, 118, 113, 141, 133, 109, 116, 116, 121, 123, 114, 143, 123, 108, 105, 125, 126, 99, 126, 117, 116, 131, 124, 112, 97, 106, 121, 132, 124, 123, 143, 116, 120, 124, 125, 123, 145, 134, 127, 132, 146, 120, 126, 136, 136, 116, 101, 126, 114, 120, 122, 117, 126, 121, 136, 124, 122, 124, 122, 118, 107, 138, 142, 139, 139, 138, 121, 131, 142, 124, 121, 126, 130, 121, 128, 119, 112, 101, 118, 121, 112, 124, 129, 129, 123, 135, 125, 120, 126, 121, 120, 121, 120, 125, 142, 125, 116, 114, 145, 132, 128, 127, 126, 128, 132, 131, 115, 131, 144, 125, 127, 121, 118, 123, 135, 120, 142, 137, 120, 134, 148, 131, 139, 121, 118, 117, 124, 110, 130, 114, 112, 111, 123, 137, 131, 122, 135, 116, 119, 137, 102, 129, 128, 123, 131, 134, 126, 129, 106, 140, 123, 147, 120, 147, 116, 122, 140, 129, 98, 113, 117, 139, 118, 115, 119, 126, 118, 114, 136, 135, 111, 125, 149, 123, 136, 128, 133, 121, 139, 139, 129, 128, 138, 130, 128, 122, 119, 155, 122, 114, 145, 119, 132, 116, 127, 132, 131, 132, 105, 125, 110, 112, 126, 127, 119, 118, 109, 139, 110, 122, 111, 133, 133, 127, 119, 107, 116, 133, 134, 109, 119, 124, 131, 150, 123, 118, 112, 132, 110, 140, 126, 127, 124, 141, 124, 111, 142, 130, 141, 117, 138, 124, 122, 109, 106, 127, 127, 124, 100, 134, 132, 101, 125, 121, 95, 123, 137, 137, 129, 127, 149, 129, 120, 145, 127, 142, 133, 123, 130, 110, 101, 100, 121, 106, 122, 132, 142, 124, 144, 151, 129, 137, 123, 123, 102, 113, 142, 122, 134, 139, 125, 135, 141, 117, 138, 118, 113, 113, 132, 130, 94, 133, 127, 118, 134, 142, 132, 140, 122, 133, 128, 126, 123, 116, 128, 109, 120, 118, 109, 136, 115, 133, 142, 131, 121, 129, 127, 118, 115, 130, 128, 117, 140, 118, 153, 131, 125, 125, 119, 120, 102, 110, 137, 153, 118, 129, 95, 126, 116, 123, 126, 116, 121, 119, 122, 135, 132, 134, 133, 117, 108, 126, 118, 126, 117, 131, 125, 116, 135, 137, 116, 127, 108, 121, 117, 122, 131, 126, 137, 105, 142, 109, 125, 113, 139, 118, 144, 103, 129, 123, 101, 114, 133, 128, 136, 114, 111, 123, 123, 121, 135, 134, 119, 123, 125, 121, 138, 118, 110, 122, 103, 138, 142, 134, 138, 146, 111, 131, 124, 129, 134, 114, 132, 123, 112, 124, 115, 121, 113, 98, 134, 118, 138, 132, 122, 142, 127, 126, 124, 125, 126, 136, 126, 134, 113, 126, 121, 131, 150, 127, 108, 127, 114, 119, 130, 140, 130, 126, 117, 125, 124, 121, 114, 116, 117, 126, 114, 131, 131, 124, 116, 107, 112, 113, 134, 118, 143, 143, 113, 119, 139, 102, 125, 135, 119, 113, 129, 131, 162, 125, 130, 143, 104, 146, 129, 120, 121, 141, 111, 134, 115, 117, 130, 142, 128, 120, 115, 131, 104, 120, 140, 114, 123, 140, 101, 129, 114, 138, 115, 128, 141, 136, 138, 122, 115, 113, 112, 116, 120, 106, 119, 124, 138, 126, 121, 129, 133, 133, 105, 121, 104, 107, 133, 129, 141, 132, 134, 133, 114, 108, 134, 131, 117, 146, 133, 138, 117, 123, 134, 122, 124, 126, 129, 125, 137, 134, 117, 138, 117, 136, 116, 113, 119, 145, 123, 126, 125, 135, 124, 133, 149, 145, 133, 117, 133, 145, 130, 139, 117, 121, 123, 102, 130, 142, 112, 115, 124, 119, 121, 139, 117, 126, 123, 128, 119, 127, 128, 130, 121, 140, 110, 132, 132, 126, 123, 140, 115, 122, 145, 122, 128, 112, 119, 110, 147, 125, 128, 130, 141, 131, 127, 105, 113, 135, 136, 117, 135, 126, 128, 158, 128, 135, 121, 117, 106, 129, 126, 120, 136, 121, 131, 131, 124, 147, 125, 111, 135, 148, 110, 126, 116, 116, 123, 113, 130, 123, 114, 120, 130, 104, 112, 124, 118, 139, 126, 112, 100, 117, 128, 131, 136, 110, 130, 123, 124, 129, 128, 119, 137, 135, 121, 145, 131, 139, 109, 132, 146, 114, 145, 147, 122, 111, 115, 145, 130, 128, 124, 128, 136, 123, 133, 121, 134, 107, 127, 120, 125, 105, 115, 130, 123, 136, 135, 118, 109, 124, 126, 126, 124, 136, 115, 105, 120, 116, 151, 116, 128, 126, 122, 128, 126, 101, 131, 136, 110, 108, 130, 105, 126, 115, 133, 123, 127, 155, 121, 132, 132, 114, 125, 142, 126, 118, 128, 132, 131, 125, 119, 130, 119, 125, 106, 127, 116, 137, 128, 120, 131, 134, 112, 117, 126, 112, 137, 133, 113, 131, 152, 140, 130, 125, 126, 115, 133, 119, 125, 136, 138, 133, 158, 124, 117, 126, 108, 149, 135, 135, 111, 124, 128, 119, 132, 117, 149, 115, 97, 131, 131, 131, 115, 130, 128, 126, 117, 117, 136, 123, 115, 125, 117, 131, 131, 111, 118, 104, 105, 130, 101, 125, 135, 101, 138, 135, 128, 111, 133, 123, 132, 116, 129, 120, 126, 133, 119, 115, 116, 123, 142, 124, 122, 116, 131, 129, 112, 137, 119, 130, 119, 122, 111, 132, 141, 131, 125, 122, 142, 111, 111, 136, 133, 135, 134, 137, 112, 115, 140, 119, 123, 139, 130, 146, 124, 134, 131, 129, 126, 131, 134, 107, 133, 119, 136, 143, 143, 125, 135, 125, 125, 126, 128, 108, 127, 134, 128, 124, 107, 126, 119, 108, 118, 125, 119, 132, 115, 126, 143, 122, 116, 109, 122, 119, 118, 155, 112, 123, 139, 134, 143, 122, 143, 130, 130, 134, 113, 130, 118, 126, 132, 120, 130, 123, 107, 120, 125, 121, 113, 124, 125, 136, 140, 134, 108, 115, 128, 149, 122, 128, 117, 110, 127, 131, 119, 127, 132, 124, 110, 113, 122, 121, 113, 125, 116, 131, 129, 112, 124, 130, 112, 119, 129, 132, 138, 122, 105, 108, 123, 114, 144, 127, 125, 127, 117, 141, 110, 114, 121, 130, 136, 113, 135, 113, 126, 139, 122, 124, 137, 110, 132, 125, 131, 118, 117, 109, 121, 116, 125, 119, 126, 128, 133, 127, 121, 120, 111, 149, 120, 129, 142, 146, 142, 153, 119, 123, 125, 155, 121, 132, 120, 111, 110, 134, 142, 133, 127, 137, 138, 118, 124, 126, 130, 133, 137, 121, 110, 127, 121, 118, 137, 137, 116, 130, 110, 113, 117, 136, 133, 119, 140, 119, 108, 131, 122, 116, 136, 111, 125, 127, 125, 128, 130, 117, 135, 134, 136, 141, 102, 131, 133, 113, 133, 110, 124, 114, 130, 132, 132, 134, 101, 133, 130, 134, 125, 121, 118, 125, 134, 106, 123, 131, 124, 128, 130, 152, 133, 113, 125, 118, 107, 131, 126, 116, 126, 121, 112, 112, 116, 123, 139, 100, 135, 113, 115, 127, 110, 137, 129, 129, 117, 111, 134, 113, 129, 115, 120, 123, 115, 110, 133, 122, 126, 121, 111, 127, 152, 125, 115, 140, 137, 127, 126, 138, 113, 131, 132, 118, 120, 125, 113, 128, 121, 103, 134, 124, 117, 118, 118, 145, 118, 105, 137, 117, 133, 133, 125, 119, 137, 122, 126, 152, 126, 127, 126, 116, 114, 139, 132, 138, 122, 107, 139, 138, 92, 119, 120, 133, 119, 135, 126, 120, 121, 122, 127, 115, 137, 114, 123, 127, 121, 126, 128, 132, 142, 130, 108, 113, 122, 121, 130, 133, 117, 141, 139, 136, 127, 127, 110, 112, 127, 114, 140, 127, 136, 125, 107, 126, 137, 132, 129, 135, 136, 128, 136, 123, 127, 132, 132, 123, 101, 122, 137, 132, 114, 124, 112, 137, 125, 121, 109, 133, 135, 118, 116, 119, 110, 113, 120, 113, 116, 133, 115, 124, 113, 139, 123, 110, 133, 126, 127, 146, 120, 138, 130, 132, 128, 119, 111, 123, 137, 118, 120, 121, 155, 132, 135, 130, 128, 121, 145, 114, 127, 124, 119, 124, 111, 131, 121, 163, 127, 132, 129, 131, 122, 119, 140, 126, 128, 124, 122, 123, 138, 118, 119, 92, 128, 139, 150, 106, 122, 125, 135, 128, 124, 122, 124, 127, 116, 121, 123, 112, 124, 138, 128, 128, 129, 127, 131, 125, 102, 116, 130, 129, 120, 120, 115, 133, 143, 129, 140, 134, 122, 122, 136, 121, 132, 123, 141, 141, 129, 131, 128, 137, 124, 118, 132, 107, 109, 136, 128, 107, 112, 127, 123, 138, 114, 118, 141, 155, 131, 117, 111, 119, 118, 116, 132, 118, 116, 104, 113, 121, 133, 137, 100, 129, 120, 142, 122, 126, 129, 120, 125, 120, 126, 118, 135, 113, 112, 126, 129, 127, 112, 115, 147, 114, 130, 131, 112, 104, 118, 122, 97, 127, 110, 113, 107, 125, 125, 123, 115, 138, 127, 136, 131, 121, 137, 140, 114, 136, 123, 118, 113, 126, 133, 126, 115, 110, 131, 135, 109, 122, 131, 116, 114, 119, 143, 139, 124, 143, 130, 123, 130, 127, 119, 110, 118, 117, 115, 136, 120, 118, 125, 122, 113, 140, 148, 115, 124, 130, 132, 136, 121, 150, 99, 113, 122, 134, 134, 139, 122, 120, 110, 118, 127, 133, 123, 136, 129, 132, 121, 137, 119, 145, 106, 109, 138, 132, 144, 108, 123, 149, 134, 128, 119, 131, 127, 120, 118, 141, 118, 121, 109, 124, 116, 120, 130, 124, 115, 132, 110, 133, 134, 129, 116, 120, 133, 135, 125, 113, 128, 141, 144, 123, 121, 119, 119, 122, 129, 125, 113, 125, 135, 121, 134, 132, 124, 136, 138, 135, 120, 118, 115, 132, 131, 141, 126, 126, 113, 115, 106, 121, 142, 137, 117, 126, 144, 130, 122, 112, 129, 138, 110, 139, 143, 114, 115, 138, 114, 121, 135, 116, 139, 118, 118, 130, 132, 140, 128, 130, 136, 126, 122, 113, 144, 138, 131, 125, 117, 124, 130, 141, 114, 130, 131, 119, 115, 123, 118, 116, 128, 117, 135, 122, 129, 131, 127, 117, 127, 130, 128, 144, 120, 126, 124, 126, 116, 130, 121, 129, 121, 136, 112, 97, 113, 116, 128, 125, 124, 151, 115, 116, 159, 126, 136, 112, 112, 129, 136, 131, 114, 118, 119, 114, 134, 111, 127, 116, 127, 118, 129, 130, 132, 122, 126, 145, 123, 134, 126, 130, 125, 127, 143, 141, 133, 114, 133, 120, 131, 133, 140, 133, 109, 145, 118, 128, 111, 116, 123, 139, 137, 124, 141, 137, 126, 105, 130, 120, 105, 122, 114, 124, 130, 125, 109, 118, 117, 124, 133, 125, 126, 102, 120, 112, 110, 121, 137, 116, 123, 122, 113, 104, 117, 121, 116, 120, 126, 117, 108, 135, 125, 140, 119, 133, 126, 118, 122, 155, 131, 124, 134, 127, 143, 123, 124, 131, 125, 132, 117, 118, 126, 126, 144, 121, 116, 129, 121, 115, 118, 125, 126, 134, 130, 129, 133, 157, 113, 129, 132, 111, 117, 116, 129, 124, 123, 131, 118, 117, 113, 112, 122, 139, 113, 127, 112, 112, 140, 129, 128, 135, 125, 142, 117, 142, 121, 130, 107, 121, 118, 121, 132, 128, 128, 128, 130, 103, 126, 126, 125, 133, 133, 129, 138, 126, 137, 134, 131, 128, 125, 133, 142, 131, 128, 125, 120, 133, 116, 126, 131, 142, 134, 127, 133, 111, 127, 101, 137, 111, 116, 124, 114, 131, 133, 126, 120, 108, 144, 129, 135, 124, 138, 133, 120, 123, 141, 105, 136, 114, 135, 122, 127, 135, 119, 126, 123, 139, 122, 107, 110, 119, 120, 110, 134, 119, 115, 133, 130, 124, 144, 127, 107, 121, 123, 120, 121, 107, 100, 122, 120, 123, 116, 128, 122, 121, 132, 128, 129, 131, 112, 116, 133, 113, 111, 130, 125, 118, 136, 136, 115, 134, 124, 108, 121, 134, 120, 135, 119, 117, 135, 146, 109, 149, 142, 126, 137, 114, 151, 125, 133, 120, 139, 127, 129, 115, 143, 125, 127, 109, 142, 118, 116, 110, 131, 139, 132, 127, 125, 122, 121, 128, 121, 117, 129, 130, 146, 103, 117, 129, 123, 123, 127, 117, 126, 117, 110, 115, 123, 104, 126, 128, 113, 114, 134, 140, 103, 111, 118, 124, 143, 139, 140, 131, 142, 126, 125, 118, 119, 105, 137, 122, 114, 130, 124, 132, 97, 114, 118, 130, 119, 130, 126, 103, 112, 126, 114, 104, 125, 138, 105, 130, 126, 126, 85, 118, 117, 137, 149, 128, 124, 127, 129, 120, 129, 110, 115, 124, 123, 118, 146, 133, 138, 121, 108, 132, 115, 114, 145, 123, 128, 136, 143, 121, 147, 118, 131, 132, 154, 130, 111, 130, 133, 119, 147, 132, 123, 136, 131, 117, 121, 118, 118, 138, 106, 140, 107, 121, 112, 125, 119, 149, 131, 123, 124, 138, 128, 112, 118, 133, 134, 130, 129, 114, 127, 115, 126, 120, 134, 123, 129, 111, 128, 126, 117, 122, 121, 122, 121, 139, 148, 121, 150, 119, 133, 129, 123, 127, 111, 132, 122, 133, 119, 116, 127, 125, 135, 109, 137, 139, 131, 140, 114, 116, 116, 117, 98, 135, 115, 138, 124, 128, 117, 123, 140, 130, 126, 143, 123, 103, 101, 124, 130, 140, 150, 106, 125, 114, 140, 120, 137, 118, 115, 136, 138, 106, 132, 128, 133, 126, 126, 137, 130, 118, 111, 114, 120, 130, 126, 121, 131, 124, 112, 123, 132, 122, 114, 125, 128, 118, 135, 126, 127, 117, 127, 136, 123, 90, 118, 133, 127, 142, 127, 114, 124, 119, 108, 128, 137, 135, 116, 122, 130, 129, 126, 126, 121, 136, 113, 122, 131, 121, 118, 132, 121, 136, 126, 119, 115, 121, 134, 133, 104, 119, 113, 137, 112, 121, 123, 112, 113, 122, 113, 131, 127, 122, 116, 108, 135, 135, 123, 113, 124, 132, 123, 110, 131, 121, 125, 132, 133, 136, 126, 121, 113, 107, 123, 127, 131, 149, 121, 119, 113, 150, 144, 128, 107, 115, 141, 121, 137, 135, 121, 115, 119, 136, 108, 135, 122, 137, 120, 124, 125, 124, 125, 137, 107, 111, 123, 124, 137, 122, 138, 126, 116, 127, 133, 114, 154, 117, 122, 119, 118, 118, 121, 123, 119, 115, 126, 129, 122, 143, 123, 135, 143, 131, 128, 136, 130, 117, 132, 99, 108, 118, 154, 122, 116, 132, 130, 117, 134, 119, 119, 112, 141, 120, 146, 129, 120, 121, 125, 111, 136, 137, 128, 129, 121, 143, 137, 117, 113, 107, 110, 135, 134, 113, 128, 125, 114, 129, 125, 123, 114, 127, 130, 122, 123, 122, 126, 134, 122, 111, 117, 114, 114, 126, 133, 119, 121, 118, 129, 117, 118, 137, 139, 131, 123, 128, 105, 131, 144, 124, 129, 137, 146, 128, 122, 129, 126, 119, 129, 126, 133, 114, 124, 128, 116, 113, 122, 124, 124, 123, 118, 110, 121, 141, 119, 144, 126, 112, 118, 111, 124, 122, 127, 116, 138, 134, 131, 126, 131, 117, 141, 123, 138, 130, 121, 134, 133, 136, 141, 151, 101, 123, 124, 124, 119, 137, 129, 113, 142, 135, 148, 119, 128, 133, 128, 123, 111, 139, 129, 136, 126, 114, 121, 128, 133, 120, 119, 123, 119, 120, 113, 130, 128, 132, 105, 128, 105, 130, 113, 118, 114, 116, 139, 107, 133, 124, 134, 121, 121, 127, 124, 105, 126, 122, 123, 143, 129, 116, 124, 121, 124, 116, 131, 151, 153, 118, 124, 118, 116, 140, 120, 138, 117, 98, 118, 134, 145, 131, 107, 118, 108, 132, 120, 128, 130, 147, 125, 119, 124, 112, 141, 124, 125, 128, 145, 115, 132, 126, 136, 105, 137, 118, 123, 118, 126, 119, 127, 120, 112, 136, 121, 140, 131, 135, 110, 135, 112, 129, 113, 108, 121, 131, 126, 109, 127, 131, 104, 124, 130, 135, 134, 136, 113, 123, 145, 126, 125, 124, 141, 140, 137, 126, 124, 121, 124, 110, 121, 135, 128, 116, 122, 124, 117, 132, 121, 160, 145, 125, 111, 128, 136, 126, 119, 129, 123, 138, 132, 120, 124, 126, 118, 111, 120, 128, 130, 128, 117, 127, 127, 135, 127, 126, 131, 143, 138, 120, 126, 122, 122, 151, 111, 124, 130, 124, 128, 132, 147, 113, 111, 120, 119, 114, 142, 134, 118, 130, 128, 115, 124, 139, 108, 121, 121, 123, 122, 124, 134, 116, 137, 117, 127, 135, 117, 145, 117, 121, 164, 135, 130, 107, 119, 115, 115, 130, 133, 139, 100, 130, 119, 116, 120, 123, 107, 145, 120, 117, 107, 133, 130, 135, 117, 116, 142, 106, 125, 104, 117, 111, 121, 104, 135, 117, 143, 130, 113, 114, 136, 130, 136, 120, 107, 140, 122, 132, 137, 114, 130, 126, 128, 113, 127, 147, 121, 144, 120, 133, 126, 133, 115, 117, 122, 118, 130, 118, 122, 141, 127, 113, 127, 122, 131, 120, 120, 123, 137, 121, 138, 131, 147, 125, 125, 123, 134, 125, 143, 133, 139, 116, 124, 130, 127, 130, 148, 128, 131, 108, 120, 126, 113, 107, 124, 129, 118, 126, 126, 130, 133, 125, 144, 137, 114, 105, 108, 135, 124, 135, 123, 141, 121, 138, 126, 130, 112, 139, 117, 119, 132, 127, 125, 125, 113, 125, 114, 121, 132, 111, 126, 140, 123, 115, 140, 119, 144, 131, 120, 117, 102, 122, 119, 125, 127, 125, 124, 114, 129, 114, 129, 120, 122, 133, 125, 131, 119, 114, 131, 124, 124, 123, 111, 114, 133, 137, 128, 133, 124, 119, 131, 130, 148, 132, 122, 125, 139, 114, 137, 122, 132, 126, 117, 134, 124, 136, 118, 123, 119, 145, 132, 129, 114, 123, 140, 128, 133, 127, 126, 119, 129, 121, 124, 124, 132, 122, 126, 129, 126, 123, 122, 115, 114, 136, 133, 115, 124, 115, 128, 153, 129, 119, 122, 111, 118, 129, 130, 126, 114, 112, 123, 102, 114, 125, 111, 130, 127, 125, 109, 132, 130, 116, 121, 141, 115, 128, 124, 121, 140, 125, 134, 143, 106, 125, 134, 117, 106, 131, 113, 134, 127, 146, 125, 97, 119, 121, 131, 117, 130, 115, 117, 128, 134, 132, 121, 134, 134, 110, 124, 137, 136, 121, 122, 131, 117, 120, 134, 131, 121, 133, 146, 121, 135, 112, 134, 119, 112, 139, 124, 111, 121, 121, 141, 122, 123, 125, 138, 134, 143, 139, 108, 140, 128, 114, 117, 117, 137, 145, 133, 119, 125, 128, 121, 124, 110, 132, 143, 124, 114, 121, 136, 133, 105, 118, 126, 118, 114, 116, 118, 121, 123, 113, 156, 109, 114, 118, 140, 122, 134, 122, 137, 143, 127, 150, 130, 127, 114, 107, 107, 133, 133, 117, 129, 137, 135, 119, 116, 129, 102, 118, 134, 113, 113, 140, 139, 110, 123, 139, 131, 124, 135, 135, 127, 144, 125, 122, 129, 141, 117, 137, 122, 97, 126, 147, 120, 132, 124, 112, 124, 127, 125, 114, 142, 116, 120, 142, 131, 133, 112, 128, 123, 113, 126, 120, 122, 143, 134, 138, 139, 124, 123, 112, 123, 145, 112, 135, 128, 120, 138, 125, 117, 113, 129, 130, 148, 131, 125, 129, 123, 112, 108, 134, 127, 128, 124, 115, 114, 128, 112, 133, 135, 123, 127, 117, 124, 124, 130, 132, 137, 122, 122, 118, 118, 115, 130, 129, 125, 118, 138, 113, 133, 128, 134, 116, 115, 103, 131, 120, 117, 139, 134, 136, 142, 116, 132, 128, 116, 122, 113, 122, 135, 113, 136, 121, 130, 115, 135, 129, 107, 109, 115, 127, 132, 121, 125, 127, 116, 131, 125, 138, 118, 106, 129, 120, 135, 129, 109, 104, 122, 129, 115, 131, 114, 136, 112, 130, 120, 94, 126, 167, 110, 132, 132, 135, 135, 132, 138, 126, 137, 130, 133, 137, 125, 113, 130, 129, 117, 137, 128, 128, 121, 141, 135, 134, 119, 122, 133, 140, 130, 138, 133, 125, 121, 131, 125, 110, 122, 133, 120, 116, 124, 134, 129, 112, 120, 117, 121, 102, 146, 123, 120, 133, 114, 117, 136, 131, 130, 115, 123, 119, 132, 115, 119, 116, 133, 131, 122, 117, 116, 130, 122, 120, 121, 126, 111, 131, 116, 132, 111, 124, 103, 131, 125, 117, 128, 136, 124, 121, 110, 114, 116, 119, 116, 109, 105, 142, 133, 131, 125, 130, 144, 118, 113, 124, 117, 130, 103, 131, 127, 119, 136, 124, 147, 129, 133, 117, 143, 123, 132, 131, 133, 116, 113, 128, 139, 144, 123, 131, 131, 110, 140, 115, 133, 128, 132, 126, 122, 131, 130, 139, 142, 137, 124, 142, 128, 128, 117, 137, 127, 142, 127, 122, 114, 125, 115, 133, 120, 129, 126, 136, 132, 153, 126, 99, 144, 123, 136, 119, 123, 124, 118, 142, 118, 144, 132, 122, 116, 129, 120, 118, 131, 125, 120, 129, 128, 119, 144, 119, 130, 120, 126, 121, 124, 139, 118, 131, 142, 118, 132, 118, 128, 121, 132, 135, 140, 136, 128, 128, 125, 113, 118, 118, 122, 115, 112, 130, 140, 110, 137, 124, 135, 112, 105, 134, 131, 143, 142, 129, 122, 108, 120, 138, 135, 123, 136, 149, 138, 116, 126, 133, 122, 135, 133, 133, 121, 118, 139, 114, 127, 140, 123, 110, 125, 115, 142, 141, 118, 136, 109, 132, 119, 129, 131, 102, 123, 120, 123, 125, 111, 128, 123, 132, 125, 124, 111, 131, 122, 114, 132, 119, 122, 117, 130, 135, 126, 149, 121, 133, 132, 126, 133, 129, 124, 131, 112, 124, 119, 133, 108, 115, 135, 136, 106, 125, 123, 98, 132, 113, 126, 114, 133, 125, 118, 128, 127, 127, 119, 135, 112, 127, 133, 121, 122, 127, 112, 111, 114, 123, 117, 146, 136, 137, 129, 131, 136, 120, 144, 127, 145, 136, 131, 108, 116, 138, 137, 133, 110, 117, 105, 117, 115, 112, 118, 123, 123, 142, 120, 134, 125, 125, 125, 128, 117, 136, 124, 120, 129, 116, 119, 126, 131, 115, 131, 136, 133, 126, 126, 130, 120, 114, 122, 134, 127, 120, 134, 131, 135, 138, 121, 121, 123, 137, 126, 131, 129, 133, 129, 108, 137, 141, 133, 126, 128, 133, 110, 114, 132, 126, 128, 129, 116, 113, 130, 118, 113, 124, 143, 130, 131, 129, 129, 122, 114, 113, 121, 124, 129, 120, 123, 126, 129, 136, 127, 124, 135, 138, 109, 128, 125, 122, 127, 122, 119, 110, 129, 124, 117, 125, 132, 105, 102, 130, 126, 126, 138, 128, 136, 135, 122, 134, 112, 146, 142, 121, 138, 141, 128, 131, 122, 128, 124, 131, 111, 117, 140, 133, 123, 120, 130, 134, 122, 113, 128, 131, 119, 134, 119, 120, 138, 129, 118, 125, 106, 132, 124, 123, 128, 137, 132, 136, 135, 124, 117, 120, 124, 112, 120, 119, 132, 129, 119, 141, 141, 116, 139, 109, 135, 137, 131, 142, 118, 127, 124, 127, 109, 122, 125, 111, 121, 122, 129, 129, 118, 143, 100, 144, 127, 106, 116, 116, 124, 119, 130, 129, 126, 121, 117, 113, 127, 99, 109, 136, 113, 140, 109, 114, 120, 126, 128, 125, 123, 113, 130, 133, 131, 107, 126, 126, 119, 118, 134, 126, 113, 141, 127, 139, 111, 127, 124, 120, 113, 124, 102, 122, 150, 118, 139, 132, 125, 116, 123, 141, 122, 132, 119, 110, 118, 131, 112, 111, 140, 123, 122, 128, 138, 112, 116, 118, 146, 142, 130, 143, 123, 134, 132, 131, 120, 119, 137, 117, 122, 128, 132, 132, 131, 112, 127, 131, 137, 132, 123, 120, 111, 118, 127, 122, 139, 132, 119, 122, 139, 123, 119, 139, 131, 123, 111, 134, 105, 142, 128, 130, 120, 121, 115, 133, 121, 127, 153, 138, 128, 138, 147, 121, 121, 120, 115, 139, 131, 119, 122, 131, 114, 125, 121, 132, 133, 131, 137, 135, 126, 115, 125, 124, 150, 132, 135, 124, 133, 114, 132, 130, 114, 125, 126, 115, 131, 132, 127, 126, 137, 132, 133, 134, 115, 129, 120, 121, 139, 100, 121, 128, 123, 132, 118, 115, 136, 120, 117, 113, 140, 101, 115, 126, 128, 132, 130, 114, 123, 129, 119, 121, 118, 135, 121, 126, 125, 122, 103, 132, 113, 137, 122, 129, 118, 126, 137, 127, 139, 115, 123, 121, 134, 115, 132, 123, 128, 137, 107, 118, 115, 130, 110, 114, 110, 118, 133, 133, 127, 131, 126, 126, 138, 126, 142, 142, 126, 134, 123, 109, 133, 122, 127, 117, 129, 129, 120, 109, 122, 124, 134, 136, 126, 102, 126, 132, 125, 129, 132, 126, 106, 136, 125, 133, 131, 127, 116, 136, 118, 107, 117, 120, 104, 114, 130, 126, 144, 126, 130, 104, 115, 127, 144, 118, 133, 129, 139, 139, 123, 129, 134, 122, 116, 119, 124, 127, 137, 130, 116, 120, 112, 133, 124, 116, 129, 123, 143, 125, 143, 123, 118, 122, 120, 129, 137, 114, 122, 121, 128, 142, 127, 129, 122, 112, 116, 142, 113, 133, 129, 124, 116, 126, 124, 107, 117, 120, 140, 139, 115, 114, 120, 130, 122, 127, 136, 121, 119, 139, 145, 111, 117, 110, 132, 116, 135, 130, 125, 143, 129, 143, 120, 125, 137, 127, 105, 112, 106, 119, 122, 126, 129, 120, 128, 129, 97, 128, 117, 147, 137, 121, 126, 105, 126, 135, 139, 138, 108, 104, 132, 138, 121, 111, 107, 141, 131, 128, 134, 137, 117, 131, 129, 138, 130, 141, 135, 111, 120, 130, 131, 137, 134, 117, 140, 132, 129, 126, 128, 128, 129, 123, 133, 127, 120, 116, 136, 117, 123, 134, 113, 125, 147, 144, 139, 123, 137, 129, 132, 137, 128, 129, 117, 103, 119, 137, 125, 136, 134, 148, 118, 117, 127, 111, 116, 118, 162, 129, 121, 126, 104, 129, 138, 118, 123, 116, 112, 137, 112, 137, 129, 121, 125, 117, 107, 146, 135, 123, 122, 133, 128, 124, 113, 116, 118, 137, 130, 127, 123, 120, 130, 131, 133, 116, 125, 113, 141, 129, 164, 114, 132, 123, 116, 118, 126, 121, 124, 136, 122, 131, 128, 113, 137, 130, 128, 134, 115, 122, 128, 123, 121, 114, 137, 143, 142, 126, 120, 127, 116, 128, 133, 117, 129, 120, 110, 121, 118, 113, 136, 120, 147, 116, 126, 119, 110, 119, 118, 136, 125, 117, 120, 136, 109, 123, 108, 124, 127, 141, 124, 129, 113, 134, 139, 125, 144, 112, 128, 127, 123, 122, 129, 130, 113, 123, 135, 129, 128, 129, 114, 100, 122, 122, 128, 120, 131, 131, 100, 107, 127, 131, 127, 111, 116, 125, 117, 132, 132, 127, 116, 133, 113, 152, 141, 113, 115, 123, 133, 107, 124, 132, 113, 113, 130, 129, 122, 120, 121, 117, 124, 124, 110, 133, 108, 127, 123, 150, 143, 133, 135, 133, 135, 134, 122, 124, 127, 123, 127, 131, 141, 138, 137, 130, 123, 145, 118, 138, 120, 135, 130, 120, 121, 96, 126, 131, 88, 147, 134, 116, 130, 121, 120, 114, 123, 124, 128, 124, 122, 127, 104, 116, 128, 137, 137, 118, 114, 131, 138, 116, 115, 117, 110, 132, 122, 117, 151, 116, 121, 136, 130, 123, 121, 127, 140, 127, 136, 129, 120, 119, 112, 128, 115, 124, 128, 114, 121, 116, 107, 113, 126, 104, 131, 128, 137, 144, 127, 119, 120, 133, 121, 129, 124, 140, 124, 119, 138, 122, 111, 125, 127, 124, 128, 117, 125, 132, 124, 129, 130, 137, 143, 120, 144, 98, 113, 129, 124, 139, 128, 138, 130, 132, 124, 128, 122, 124, 130, 127, 118, 132, 130, 131, 115, 129, 133, 122, 126, 118, 128, 107, 100, 123, 121, 128, 128, 129, 120, 110, 117, 119, 129, 123, 119, 111, 133, 128, 119, 120, 124, 128, 124, 135, 117, 111, 133, 125, 125, 119, 128, 117, 144, 127, 145, 134, 112, 133, 115, 114, 128, 126, 135, 137, 137, 115, 119, 137, 130, 124, 128, 136, 125, 125, 131, 139, 123, 121, 123, 122, 138, 144, 131, 136, 121, 125, 109, 115, 121, 120, 111, 124, 139, 138, 125, 130, 120, 132, 124, 157, 142, 108, 136, 132, 137, 134, 131, 118, 112, 135, 121, 118, 125, 123, 126, 134, 102, 145, 120, 132, 121, 106, 139, 128, 130, 116, 132, 139, 121, 112, 112, 109, 135, 130, 124, 138, 101, 134, 116, 116, 132, 132, 108, 121, 120, 127, 122, 139, 129, 133, 126, 123, 128, 144, 134, 132, 132, 132, 137, 121, 121, 140, 112, 107, 117, 117, 134, 132, 137, 124, 129, 128, 132, 133, 132, 121, 109, 110, 136, 127, 137, 132, 125, 113, 128, 137, 130, 133, 140, 137, 119, 125, 126, 121, 134, 125, 110, 124, 127, 114, 136, 119, 117, 108, 142, 122, 127, 98, 128, 129, 151, 129, 134, 144, 114, 141, 139, 120, 126, 141, 152, 127, 137, 122, 126, 132, 129, 119, 143, 122, 127, 132, 125, 119, 113, 121, 123, 120, 122, 130, 133, 143, 122, 120, 127, 114, 126, 110, 140, 120, 132, 114, 119, 134, 124, 119, 127, 119, 138, 127, 99, 140, 132, 127, 134, 140, 135, 118, 125, 155, 113, 128, 130, 98, 136, 121, 126, 132, 132, 130, 107, 146, 108, 133, 131, 113, 137, 108, 142, 132, 142, 115, 141, 139, 122, 116, 145, 133, 132, 115, 112, 149, 119, 122, 127, 102, 140, 140, 132, 126, 134, 132, 129, 123, 121, 127, 119, 111, 112, 128, 122, 118, 142, 144, 121, 121, 147, 122, 120, 100, 133, 117, 131, 130, 115, 136, 111, 115, 121, 110, 130, 138, 120, 133, 118, 139, 115, 114, 129, 114, 123, 125, 140, 137, 106, 119, 124, 108, 106, 128, 121, 136, 124, 121, 105, 119, 109, 130, 105, 119, 135, 113, 146, 134, 139, 135, 117, 126, 141, 107, 129, 136, 117, 113, 111, 125, 123, 115, 106, 121, 120, 137, 116, 109, 115, 137, 119, 119, 126, 129, 129, 126, 133, 137, 107, 117, 129, 134, 131, 132, 134, 144, 120, 119, 136, 134, 118, 119, 147, 124, 123, 159, 123, 115, 129, 123, 120, 128, 126, 133, 116, 128, 118, 111, 139, 137, 102, 125, 130, 121, 136, 108, 113, 135, 118, 134, 111, 126, 136, 131, 136, 119, 109, 126, 140, 130, 111, 126, 118, 121, 112, 123, 131, 119, 130, 128, 137, 114, 145, 127, 125, 119, 107, 142, 135, 126, 127, 120, 124, 127, 130, 145, 128, 129, 135, 103, 119, 134, 124, 120, 122, 115, 123, 141, 129, 138, 126, 138, 139, 133, 128, 140, 122, 110, 134, 124, 119, 114, 127, 130, 118, 124, 123, 142, 129, 111, 122, 111, 142, 127, 129, 121, 126, 130, 125, 126, 118, 131, 121, 122, 140, 115, 122, 122, 125, 112, 119, 125, 129, 156, 133, 135, 124, 120, 156, 116, 104, 111, 119, 126, 128, 112, 138, 133, 120, 127, 114, 130, 151, 127, 107, 128, 114, 130, 111, 148, 134, 127, 134, 129, 117, 121, 122, 117, 118, 105, 126, 126, 124, 122, 128, 145, 121, 124, 107, 100, 129, 106, 139, 111, 129, 122, 141, 129, 148, 141, 125, 125, 104, 129, 115, 146, 124, 133, 133, 141, 130, 110, 115, 128, 119, 116, 123, 110, 113, 117, 123, 110, 114, 133, 143, 131, 96, 132, 119, 122, 124, 133, 133, 133, 119, 132, 114, 132, 124, 125, 130, 125, 124, 137, 123, 111, 146, 146, 118, 129, 122, 118, 135, 134, 121, 113, 137, 122, 108, 137, 125, 119, 123, 116, 114, 121, 138, 114, 128, 124, 123, 129, 93, 125, 109, 115, 129, 128, 139, 122, 124, 130, 124, 126, 111, 120, 114, 126, 138, 125, 121, 124, 113, 132, 126, 131, 119, 124, 125, 129, 139, 145, 128, 137, 130, 131, 117, 121, 128, 126, 128, 119, 125, 117, 103, 101, 140, 129, 128, 114, 150, 134, 124, 135, 127, 127, 118, 128, 131, 118, 132, 122, 129, 119, 124, 137, 113, 119, 122, 110, 116, 124, 123, 137, 117, 115, 120, 120, 128, 128, 109, 91, 132, 115, 124, 111, 125, 121, 139, 135, 130, 120, 120, 112, 135, 121, 119, 120, 124, 118, 142, 129, 128, 130, 131, 137, 127, 128, 127, 126, 117, 122, 125, 121, 124, 126, 121, 116, 118, 127, 126, 126, 131, 131, 107, 119, 102, 125, 121, 118, 111, 135, 119, 136, 107, 129, 122, 136, 139, 117, 111, 139, 121, 144, 125, 134, 127, 115, 139, 125, 113, 102, 112, 125, 136, 129, 133, 130, 134, 133, 115, 121, 143, 119, 132, 115, 103, 126, 132, 121, 106, 119, 134, 137, 123, 126, 115, 144, 116, 132, 130, 136, 130, 121, 123, 122, 143, 122, 134, 136, 131, 131, 126, 115, 126, 134, 128, 116, 114, 136, 114, 119, 146, 127, 143, 143, 114, 119, 137, 136, 122, 126, 127, 129, 122, 123, 134, 132, 115, 127, 131, 125, 131, 111, 135, 127, 154, 135, 133, 140, 138, 121, 127, 122, 125, 140, 137, 112, 108, 132, 124, 109, 129, 127, 116, 121, 138, 154, 119, 124, 132, 111, 123, 117, 116, 124, 133, 127, 139, 135, 140, 127, 114, 127, 122, 132, 141, 117, 120, 138, 122, 130, 129, 114, 118, 132, 109, 130, 129, 127, 110, 129, 110, 124, 131, 131, 121, 129, 118, 139, 140, 127, 147, 118, 126, 130, 116, 135, 120, 141, 118, 141, 126, 115, 114, 132, 128, 133, 114, 142, 124, 126, 123, 134, 119, 127, 129, 136, 127, 121, 113, 110, 130, 117, 138, 126, 124, 105, 133, 129, 126, 125, 140, 158, 127, 124, 141, 103, 132, 125, 100, 123, 133, 135, 118, 123, 136, 131, 126, 128, 132, 118, 122, 114, 109, 125, 121, 148, 124, 125, 120, 128, 122, 132, 156, 131, 129, 111, 118, 122, 128, 120, 138, 135, 129, 120, 124, 143, 133, 116, 132, 103, 129, 121, 121, 122, 142, 109, 117, 126, 121, 121, 123, 124, 129, 132, 118, 133, 119, 136, 130, 111, 123, 125, 123, 142, 133, 120, 128, 140, 149, 135, 124, 120, 116, 118, 122, 118, 142, 127, 143, 119, 107, 135, 138, 133, 114, 123, 130, 105, 126, 106, 139, 131, 126, 133, 130, 124, 143, 118, 122, 139, 133, 136, 140, 144, 131, 105, 122, 123, 145, 140, 129, 123, 134, 133, 126, 125, 117, 143, 108, 120, 122, 140, 133, 129, 143, 109, 125, 116, 132, 118, 120, 128, 129, 118, 128, 145, 118, 112, 150, 128, 130, 127, 117, 95, 119, 118, 115, 131, 137, 125, 119, 121, 128, 138, 128, 125, 127, 120, 116, 146, 123, 127, 131, 133, 127, 123, 135, 124, 124, 133, 120, 125, 118, 121, 111, 113, 150, 157, 118, 124, 135, 123, 132, 142, 120, 136, 116, 135, 129, 123, 130, 117, 132, 128, 139, 139, 142, 137, 111, 123, 117, 119, 116, 115, 117, 132, 130, 119, 106, 128, 121, 133, 124, 135, 128, 129, 131, 126, 125, 126, 132, 121, 126, 126, 112, 128, 125, 122, 118, 129, 112, 122, 119, 127, 133, 138, 114, 138, 132, 123, 124, 133, 123, 119, 123, 117, 131, 121, 126, 119, 148, 123, 133, 126, 133, 115, 121, 134, 113, 131, 152, 126, 124, 132, 129, 135, 114, 105, 127, 128, 120, 137, 113, 144, 131, 123, 133, 118, 122, 120, 125, 122, 121, 121, 121, 121, 124, 126, 123, 133, 125, 127, 128, 114, 128, 116, 131, 135, 134, 120, 133, 127, 136, 128, 137, 115, 153, 139, 122, 132, 121, 117, 118, 122, 128, 145, 120, 137, 116, 124, 136, 117, 108, 121, 143, 128, 127, 118, 129, 129, 123, 113, 120, 125, 132, 137, 115, 125, 138, 126, 117, 140, 119, 131, 128, 121, 130, 117, 119, 106, 145, 124, 138, 121, 121, 134, 128, 113, 127, 124, 123, 127, 118, 126, 145, 121, 130, 135, 125, 126, 118, 139, 112, 130, 113, 138, 121, 112, 132, 127, 127, 124, 124, 121, 124, 132, 126, 134, 111, 129, 118, 141, 138, 125, 131, 129, 123, 125, 114, 123, 112, 128, 150, 126, 119, 124, 116, 122, 121, 116, 135, 121, 121, 130, 142, 134, 120, 130, 122, 130, 141, 114, 107, 124, 119, 127, 129, 116, 129, 141, 128, 113, 113, 126, 126, 126, 125, 134, 135, 119, 142, 134, 120, 107, 111, 126, 110, 123, 116, 139, 122, 142, 121, 129, 117, 126, 136, 133, 128, 116, 127, 138, 121, 137, 123, 136, 118, 102, 120, 109, 131, 138, 140, 108, 117, 110, 136, 141, 114, 135, 117, 144, 114, 122, 136, 125, 115, 133, 121, 126, 127, 123, 131, 135, 112, 127, 129, 128, 135, 124, 110, 134, 126, 128, 117, 125, 135, 122, 130, 111, 121, 124, 130, 124, 137, 122, 107, 113, 133, 119, 116, 131, 124, 126, 118, 124, 127, 124, 131, 146, 120, 103, 123, 121, 126, 126, 117, 132, 140, 124, 116, 124, 117, 124, 96, 125, 114, 124, 143, 122, 122, 122, 135, 133, 121, 131, 131, 133, 124, 118, 135, 124, 122, 135, 123, 114, 123, 123, 131, 136, 129, 133, 149, 118, 124, 138, 140, 134, 116, 134, 129, 136, 120, 119, 137, 120, 117, 136, 123, 118, 123, 116, 121, 143, 119, 115, 117, 123, 137, 120, 129, 128, 120, 117, 114, 124, 115, 118, 127, 139, 130, 126, 124, 134, 119, 142, 112, 125, 117, 115, 122, 138, 144, 131, 119, 139, 123, 113, 137, 131, 135, 120, 131, 112, 113, 116, 130, 122, 125, 121, 125, 113, 138, 129, 144, 138, 113, 119, 128, 134, 132, 107, 127, 121, 130, 117, 130, 114, 131, 131, 108, 116, 125, 126, 113, 120, 150, 123, 128, 133, 125, 123, 112, 136, 142, 107, 134, 125, 143, 136, 127, 133, 131, 112, 130, 148, 123, 146, 125, 126, 126, 123, 121, 138, 126, 97, 135, 128, 122, 125, 140, 116, 127, 124, 115, 120, 124, 122, 130, 132, 139, 122, 101, 119, 111, 110, 129, 129, 124, 131, 117, 131, 124, 132, 124, 129, 101, 112, 124, 163, 117, 129, 132, 125, 128, 113, 126, 132, 117, 133, 143, 123, 124, 136, 145, 119, 111, 121, 121, 129, 128, 115, 130, 148, 126, 140, 129, 130, 122, 127, 123, 138, 119, 121, 132, 111, 135, 129, 140, 106, 138, 106, 119, 148, 138, 142, 118, 137, 122, 131, 122, 125, 111, 111, 122, 132, 118, 117, 122, 120, 114, 128, 125, 121, 107, 123, 114, 134, 125, 123, 123, 134, 124, 129, 143, 121, 118, 111, 108, 111, 118, 128, 122, 126, 125, 132, 128, 141, 125, 143, 112, 118, 130, 133, 123, 113, 123, 105, 127, 111, 126, 130, 106, 139, 133, 141, 121, 131, 122, 123, 127, 100, 120, 125, 150, 127, 140, 114, 119, 132, 133, 119, 139, 129, 126, 120, 121, 114, 125, 118, 117, 122, 117, 122, 116, 121, 120, 119, 117, 123, 116, 131, 142, 121, 124, 119, 135, 122, 129, 128, 103, 130, 131, 141, 151, 114, 126, 115, 129, 128, 118, 116, 130, 126, 142, 121, 134, 125, 105, 132, 138, 127, 116, 138, 132, 125, 125, 124, 129, 129, 122, 118, 146, 126, 111, 134, 137, 131, 122, 114, 125, 141, 123, 107, 129, 127, 128, 119, 130, 125, 138, 128, 128, 114, 129, 109, 121, 126, 119, 127, 129, 121, 132, 130, 117, 135, 111, 108, 121, 107, 136, 124, 146, 118, 123, 134, 136, 96, 122, 128, 135, 140, 125, 121, 125, 128, 133, 114, 134, 139, 101, 121, 132, 98, 128, 127, 134, 134, 129, 130, 131, 121, 118, 128, 131, 125, 134, 112, 135, 135, 119, 113, 118, 123, 122, 122, 128, 139, 120, 118, 135, 143, 115, 112, 128, 130, 124, 133, 116, 140, 128, 113, 128, 131, 114, 123, 129, 132, 120, 127, 137, 131, 101, 119, 132, 117, 111, 126, 125, 118, 130, 126, 126, 127, 121, 140, 118, 130, 127, 115, 136, 119, 122, 117, 130, 128, 123, 123, 149, 127, 127, 132, 134, 115, 122, 119, 115, 126, 114, 120, 116, 118, 115, 131, 118, 135, 123, 131, 116, 129, 115, 134, 131, 134, 117, 128, 130, 116, 135, 119, 131, 125, 105, 122, 131, 132, 126, 132, 121, 141, 138, 131, 116, 107, 126, 121, 124, 135, 129, 122, 145, 115, 129, 113, 105, 122, 128, 136, 110, 134, 121, 113, 127, 113, 120, 128, 113, 130, 124, 118, 162, 117, 114, 148, 121, 134, 120, 148, 126, 111, 132, 128, 129, 126, 123, 127, 119, 136, 116, 127, 134, 146, 121, 123, 134, 121, 118, 128, 115, 134, 114, 142, 122, 130, 149, 146, 119, 121, 111, 119, 131, 119, 119, 128, 118, 139, 122, 125, 131, 118, 124, 131, 125, 124, 130, 130, 136, 124, 120, 139, 128, 119, 136, 138, 128, 115, 128, 140, 134, 131, 117, 119, 123, 118, 117, 129, 116, 134, 126, 123, 123, 125, 116, 116, 127, 119, 131, 135, 122, 139, 123, 115, 124, 126, 115, 132, 118, 140, 116, 129, 123, 106, 135, 113, 133, 124, 138, 143, 113, 120, 138, 135, 130, 112, 120, 142, 114, 127, 125, 117, 108, 134, 122, 121, 122, 122, 130, 137, 127, 116, 114, 120, 108, 122, 109, 132, 130, 147, 124, 148, 130, 121, 126, 138, 113, 125, 123, 114, 121, 120, 136, 118, 129, 120, 121, 130, 128, 133, 142, 126, 115, 115, 141, 123, 110, 130, 112, 110, 131, 123, 117, 126, 118, 123, 129, 149, 123, 117, 141, 118, 123, 126, 129, 141, 129, 133, 109, 134, 119, 115, 128, 143, 139, 158, 154, 131, 126, 114, 116, 135, 110, 113, 129, 115, 120, 122, 133, 126, 112, 129, 137, 132, 123, 116, 125, 114, 116, 124, 118, 112, 132, 124, 104, 127, 111, 128, 120, 123, 128, 128, 134, 128, 133, 131, 96, 137, 122, 125, 122, 139, 133, 138, 140, 108, 121, 131, 120, 124, 121, 117, 119, 121, 121, 122, 152, 131, 133, 135, 120, 118, 120, 124, 123, 132, 130, 118, 129, 110, 116, 153, 119, 116, 125, 136, 129, 116, 112, 143, 116, 118, 127, 130, 123, 120, 131, 124, 127, 114, 134, 112, 127, 120, 102, 119, 128, 129, 128, 117, 120, 138, 144, 126, 126, 137, 126, 135, 113, 122, 121, 128, 115, 137, 147, 146, 125, 135, 111, 126, 148, 136, 127, 131, 129, 115, 127, 135, 119, 141, 129, 125, 137, 135, 115, 112, 123, 144, 127, 123, 127, 120, 131, 130, 116, 102, 107, 133, 125, 122, 115, 139, 108, 123, 120, 113, 122, 159, 113, 127, 116, 143, 119, 118, 124, 120, 137, 117, 125, 108, 136, 110, 129, 121, 138, 128, 113, 117, 122, 130, 113, 129, 123, 129, 140, 130, 136, 131, 121, 123, 128, 145, 146, 143, 128, 136, 122, 115, 141, 127, 114, 122, 146, 128, 134, 111, 126, 102, 114, 130, 120, 135, 118, 137, 113, 127, 125, 132, 138, 119, 111, 127, 122, 129, 126, 120, 111, 124, 121, 136, 118, 126, 119, 118, 131, 115, 120, 124, 132, 141, 122, 125, 146, 128, 116, 132, 127, 125, 122, 150, 143, 143, 128, 124, 120, 141, 149, 122, 115, 127, 112, 134, 113, 124, 120, 129, 130, 128, 133, 140, 112, 123, 103, 142, 134, 118, 124, 124, 137, 114, 115, 137, 131, 130, 128, 128, 121, 113, 130, 116, 131, 137, 129, 101, 127, 138, 144, 127, 137, 114, 122, 118, 142, 136, 127, 119, 151, 115, 140, 134, 131, 123, 139, 140, 131, 134, 142, 113, 126, 122, 116, 113, 120, 117, 145, 136, 128, 107, 137, 113, 106, 118, 99, 136, 121, 111, 122, 121, 153, 122, 127, 146, 129, 146, 113, 134, 129, 139, 123, 117, 135, 133, 130, 135, 121, 139, 111, 119, 117, 118, 119, 79, 118, 132, 140, 130, 132, 114, 128, 113, 105, 114, 117, 116, 138, 102, 128, 113, 135, 114, 124, 119, 130, 121, 121, 133, 116, 121, 145, 116, 125, 135, 108, 129, 140, 134, 120, 122, 130, 138, 130, 131, 123, 108, 114, 132, 139, 124, 133, 148, 107, 118, 127, 164, 133, 120, 117, 126, 133, 122, 116, 131, 134, 118, 138, 131, 119, 154, 122, 136, 124, 118, 128, 122, 121, 123, 111, 124, 121, 111, 132, 125, 123, 125, 120, 118, 76, 133, 123, 130, 132, 124, 130, 130, 125, 128, 133, 141, 131, 112, 137, 127, 125, 127, 134, 120, 124, 114, 125, 117, 144, 120, 113, 139, 102, 120, 117, 128, 123, 130, 134, 131, 105, 130, 135, 122, 120, 127, 111, 144, 115, 127, 116, 122, 112, 123, 113, 104, 115, 139, 140, 127, 126, 124, 119, 123, 136, 129, 128, 137, 145, 131, 130, 125, 128, 109, 124, 135, 133, 114, 112, 118, 125, 130, 133, 129, 136, 130, 133, 113, 125, 124, 145, 141, 123, 130, 126, 125, 133, 119, 119, 122, 129, 123, 142, 127, 117, 129, 127, 115, 118, 120, 115, 145, 123, 129, 109, 111, 117, 131, 114, 123, 132, 128, 108, 125, 132, 120, 131, 107, 138, 131, 126, 129, 126, 127, 127, 134, 123, 130, 131, 115, 134, 125, 119, 131, 149, 104, 117, 131, 118, 127, 121, 136, 142, 143, 127, 132, 143, 120, 133, 120, 132, 127, 139, 127, 125, 131, 129, 148, 135, 105, 123, 112, 133, 123, 113, 120, 138, 117, 119, 121, 111, 136, 124, 119, 106, 80, 128, 128, 138, 121, 116, 141, 140, 126, 125, 124, 123, 126, 118, 127, 129, 140, 123, 116, 128, 117, 131, 112, 129, 127, 117, 145, 127, 128, 137, 131, 116, 130, 129, 153, 118, 122, 123, 83, 135, 144, 121, 130, 126, 132, 118, 110, 117, 131, 123, 140, 119, 143, 138, 142, 143, 101, 134, 118, 133, 134, 136, 124, 106, 115, 111, 120, 113, 112, 128, 134, 121, 120, 120, 119, 121, 129, 126, 128, 132, 130, 138, 140, 123, 126, 117, 133, 142, 126, 134, 121, 122, 123, 103, 134, 152, 120, 136, 126, 106, 130, 126, 139, 131, 116, 127, 118, 110, 148, 122, 114, 119, 133, 127, 117, 118, 106, 131, 111, 126, 131, 128, 146, 117, 128, 136, 131, 123, 109, 145, 130, 122, 138, 138, 129, 135, 121, 127, 127, 125, 134, 132, 129, 116, 123, 145, 112, 128, 126, 118, 135, 112, 119, 115, 131, 123, 138, 135, 115, 156, 110, 116, 131, 123, 107, 112, 136, 128, 112, 119, 131, 110, 139, 122, 115, 127, 125, 136, 99, 115, 128, 114, 128, 132, 140, 108, 114, 129, 133, 138, 114, 119, 120, 103, 125, 137, 129, 118, 118, 132, 128, 117, 137, 125, 135, 122, 114, 124, 127, 136, 122, 141, 120, 130, 123, 116, 110, 143, 135, 126, 129, 117, 126, 138, 120, 119, 115, 136, 121, 133, 97, 117, 128, 119, 116, 119, 131, 116, 116, 140, 118, 123, 109, 114, 129, 116, 109, 110, 126, 137, 134, 130, 136, 131, 123, 133, 127, 130, 118, 136, 136, 122, 120, 126, 119, 124, 138, 115, 135, 140, 123, 124, 133, 123, 112, 125, 122, 120, 126, 105, 125, 130, 115, 144, 158, 115, 125, 124, 116, 127, 124, 109, 115, 116, 119, 112, 125, 117, 138, 130, 129, 111, 123, 127, 118, 118, 140, 116, 128, 139, 117, 123, 115, 135, 120, 129, 126, 124, 114, 119, 118, 133, 129, 128, 116, 119, 112, 115, 116, 115, 138, 98, 125, 130, 136, 132, 118, 137, 128, 116, 122, 114, 131, 120, 135, 122, 116, 120, 119, 121, 121, 113, 121, 118, 124, 128, 121, 134, 113, 138, 112, 116, 112, 138, 119, 123, 131, 123, 117, 138, 132, 124, 137, 127, 112, 121, 119, 131, 126, 130, 116, 135, 99, 126, 132, 133, 126, 133, 144, 124, 134, 137, 116, 139, 108, 118, 135, 120, 125, 160, 120, 135, 129, 152, 128, 128, 130, 132, 132, 125, 114, 157, 121, 121, 138, 123, 106, 130, 122, 135, 124, 134, 121, 136, 125, 134, 144, 140, 123, 143, 121, 131, 127, 126, 113, 111, 117, 125, 124, 145, 115, 115, 124, 137, 114, 136, 128, 120, 129, 130, 114, 129, 127, 124, 135, 117, 118, 126, 124, 119, 133, 129, 137, 113, 124, 118, 121, 137, 138, 135, 122, 147, 126, 124, 105, 132, 132, 85, 127, 120, 121, 119, 120, 130, 138, 138, 124, 141, 145, 97, 127, 126, 136, 134, 113, 119, 122, 121, 116, 126, 122, 145, 122, 142, 104, 120, 125, 107, 129, 129, 125, 99, 125, 129, 103, 123, 117, 117, 127, 127, 124, 131, 138, 148, 144, 113, 127, 119, 118, 127, 116, 117, 128, 131, 126, 128, 134, 119, 106, 130, 108, 106, 112, 117, 135, 123, 136, 128, 129, 134, 120, 134, 111, 138, 132, 118, 145, 130, 139, 120, 148, 133, 126, 120, 125, 140, 113, 112, 142, 129, 115, 126, 108, 123, 125, 129, 113, 133, 124, 110, 117, 118, 120, 146, 127, 136, 126, 128, 115, 136, 127, 114, 145, 129, 103, 126, 118, 115, 137, 136, 114, 134, 104, 132, 132, 136, 137, 126, 137, 99, 117, 135, 119, 127, 116, 125, 127, 136, 134, 103, 129, 134, 116, 116, 130, 132, 116, 138, 129, 110, 138, 113, 121, 115, 122, 159, 141, 121, 137, 123, 131, 122, 110, 112, 136, 117, 118, 102, 133, 118, 122, 124, 133, 121, 138, 127, 130, 128, 116, 115, 119, 123, 120, 130, 145, 130, 111, 128, 126, 118, 117, 115, 114, 125, 129, 127, 143, 128, 141, 123, 133, 110, 117, 129, 160, 105, 133, 126, 117, 133, 133, 105, 136, 122, 112, 131, 120, 116, 115, 150, 120, 137, 130, 117, 125, 113, 112, 139, 128, 138, 122, 137, 109, 132, 118, 116, 126, 143, 124, 128, 125, 118, 98, 135, 134, 121, 131, 137, 127, 124, 112, 121, 118, 142, 117, 125, 120, 121, 137, 135, 136, 125, 133, 114, 106, 120, 126, 127, 133, 115, 133, 128, 131, 114, 118, 123, 123, 135, 118, 129, 122, 128, 109, 116, 123, 127, 138, 113, 128, 109, 129, 121, 124, 133, 131, 119, 135, 120, 144, 117, 118, 137, 126, 121, 126, 121, 132, 150, 126, 124, 114, 127, 121, 115, 129, 97, 133, 124, 117, 137, 117, 122, 121, 126, 119, 121, 125, 141, 133, 125, 153, 119, 122, 109, 122, 109, 124, 123, 122, 122, 139, 137, 114, 112, 123, 110, 123, 132, 135, 121, 116, 126, 133, 131, 124, 120, 116, 120, 129, 129, 141, 118, 133, 124, 146, 133, 124, 149, 123, 139, 129, 112, 124, 122, 146, 127, 121, 131, 126, 129, 132, 144, 128, 131, 126, 137, 105, 126, 104, 116, 106, 101, 127, 119, 135, 120, 119, 138, 133, 132, 128, 120, 144, 117, 128, 128, 118, 131, 138, 141, 117, 127, 126, 120, 123, 130, 122, 115, 138, 115, 114, 124, 135, 118, 131, 122, 131, 137, 125, 112, 119, 121, 133, 128, 130, 118, 132, 124, 108, 122, 109, 118, 140, 113, 125, 111, 133, 128, 133, 115, 124, 109, 123, 132, 124, 105, 131, 127, 119, 142, 127, 130, 128, 123, 123, 130, 129, 129, 138, 131, 107, 115, 130, 133, 127, 123, 116, 117, 127, 121, 132, 118, 122, 120, 130, 120, 128, 134, 130, 112, 139, 109, 110, 115, 136, 130, 138, 121, 125, 129, 111, 127, 113, 116, 135, 99, 135, 127, 127, 121, 135, 116, 104, 155, 123, 128, 130, 120, 138, 144, 128, 114, 111, 121, 112, 117, 115, 127, 124, 137, 124, 130, 124, 142, 141, 123, 128, 125, 126, 116, 117, 118, 127, 118, 137, 128, 123, 122, 134, 128, 135, 128, 128, 134, 120, 109, 128, 140, 137, 129, 140, 116, 131, 122, 124, 128, 114, 125, 121, 148, 124, 124, 128, 142, 131, 115, 113, 114, 118, 128, 125, 131, 124, 128, 119, 118, 121, 109, 100, 123, 126, 125, 114, 113, 104, 116, 111, 124, 128, 129, 146, 120, 114, 151, 141, 126, 143, 122, 133, 117, 136, 108, 134, 133, 134, 118, 144, 108, 107, 122, 116, 124, 115, 128, 120, 95, 127, 137, 130, 128, 119, 122, 119, 130, 121, 145, 115, 133, 116, 128, 108, 115, 118, 132, 133, 133, 111, 128, 132, 122, 134, 139, 127, 120, 131, 134, 125, 149, 135, 100, 132, 136, 134, 129, 139, 131, 130, 134, 121, 117, 102, 147, 121, 132, 111, 114, 122, 121, 139, 116, 115, 119, 141, 112, 128, 130, 124, 136, 159, 120, 133, 136, 137, 129, 132, 139, 108, 126, 138, 133, 116, 119, 124, 129, 130, 120, 114, 111, 120, 128, 110, 127, 121, 120, 129, 123, 128, 130, 108, 120, 114, 132, 141, 122, 129, 124, 129, 135, 109, 128, 136, 131, 133, 125, 125, 137, 134, 137, 106, 117, 122, 112, 131, 140, 130, 150, 133, 137, 128, 109, 132, 132, 114, 127, 128, 112, 103, 112, 126, 132, 127, 136, 133, 99, 122, 133, 115, 121, 117, 107, 108, 122, 119, 121, 121, 106, 115, 124, 136, 141, 116, 119, 125, 135, 146, 159, 124, 131, 129, 118, 142, 121, 117, 116, 130, 107, 127, 129, 153, 108, 101, 121, 118, 145, 134, 118, 129, 115, 112, 125, 127, 129, 133, 130, 123, 134, 116, 129, 132, 137, 108, 122, 129, 131, 124, 123, 106, 141, 128, 148, 132, 126, 133, 115, 118, 131, 109, 100, 122, 140, 132, 131, 111, 121, 116, 114, 125, 127, 132, 154, 119, 143, 99, 98, 134, 117, 139, 125, 124, 128, 131, 137, 139, 123, 121, 131, 134, 136, 122, 130, 126, 124, 128, 109, 113, 115, 126, 153, 104, 138, 131, 123, 107, 121, 115, 134, 132, 129, 110, 132, 130, 140, 145, 118, 134, 114, 121, 123, 125, 122, 129, 140, 125, 110, 150, 129, 127, 118, 127, 128, 116, 118, 124, 122, 116, 132, 132, 133, 127, 127, 129, 134, 113, 123, 117, 135, 102, 126, 131, 134, 132, 123, 124, 133, 118, 130, 130, 129, 135, 118, 143, 117, 132, 128, 122, 128, 115, 131, 122, 127, 126, 120, 132, 128, 137, 130, 124, 121, 118, 138, 132, 120, 122, 124, 101, 126, 128, 129, 129, 137, 114, 137, 115, 116, 118, 124, 140, 136, 126, 138, 118, 114, 114, 133, 117, 133, 130, 133, 114, 127, 109, 126, 124, 119, 137, 115, 122, 115, 124, 117, 126, 122, 119, 141, 141, 122, 137, 120, 127, 114, 127, 99, 122, 133, 104, 131, 136, 121, 135, 123, 125, 147, 130, 127, 128, 124, 137, 130, 134, 118, 121, 133, 129, 123, 124, 105, 116, 131, 118, 138, 123, 127, 102, 133, 119, 126, 108, 118, 128, 112, 124, 138, 127, 128, 115, 112, 132, 127, 141, 124, 130, 129, 142, 131, 131, 122, 125, 106, 123, 124, 123, 119, 119, 121, 135, 136, 121, 131, 125, 125, 151, 122, 139, 121, 117, 135, 121, 121, 129, 127, 130, 118, 136, 122, 113, 116, 129, 122, 125, 119, 124, 129, 118, 127, 129, 118, 120, 127, 118, 119, 120, 121, 138, 104, 145, 106, 113, 128, 114, 107, 133, 133, 138, 124, 116, 130, 132, 127, 136, 118, 98, 117, 116, 119, 138, 121, 122, 138, 106, 150, 145, 123, 124, 127, 130, 131, 134, 127, 123, 132, 126, 116, 129, 127, 122, 116, 158, 137, 145, 121, 120, 136, 112, 130, 157, 122, 124, 111, 142, 123, 128, 127, 117, 146, 125, 125, 112, 141, 153, 124, 136, 132, 109, 132, 105, 113, 121, 115, 129, 118, 120, 128, 122, 117, 113, 128, 108, 129, 137, 123, 130, 132, 130, 121, 108, 134, 130, 125, 125, 110, 120, 121, 113, 147, 123, 144, 137, 121, 138, 128, 150, 125, 116, 143, 121, 118, 138, 148, 137, 98, 116, 117, 108, 128, 128, 122, 125, 140, 133, 125, 128, 126, 118, 123, 126, 122, 129, 133, 140, 156, 133, 114, 116, 136, 128, 131, 119, 131, 120, 132, 145, 136, 122, 137, 128, 107, 137, 130, 132, 114, 124, 136, 123, 129, 137, 130, 109, 139, 125, 121, 118, 137, 124, 122, 145, 130, 116, 135, 123, 121, 107, 114, 135, 130, 103, 118, 113, 128, 117, 110, 126, 134, 125, 130, 130, 108, 132, 140, 112, 127, 117, 130, 134, 131, 101, 125, 108, 137, 131, 127, 126, 119, 138, 144, 129, 124, 137, 116, 134, 132, 125, 141, 113, 129, 134, 119, 132, 141, 138, 123, 120, 158, 126, 121, 118, 121, 116, 131, 123, 132, 116, 96, 139, 140, 144, 112, 123, 100, 137, 110, 116, 126, 130, 134, 120, 112, 121, 123, 110, 127, 134, 130, 150, 131, 134, 116, 118, 143, 132, 132, 135, 117, 114, 136, 112, 130, 134, 142, 110, 129, 106, 141, 110, 131, 140, 150, 132, 127, 125, 125, 112, 117, 128, 126, 114, 131, 117, 117, 115, 116, 120, 122, 128, 129, 139, 132, 99, 131, 109, 121, 129, 109, 129, 136, 143, 119, 109, 111, 110, 151, 110, 136, 127, 163, 105, 114, 129, 144, 140, 146, 130, 120, 136, 106, 126, 123, 121, 118, 126, 130, 152, 109, 123, 124, 129, 114, 119, 122, 124, 133, 114, 110, 104, 119, 128, 134, 122, 134, 132, 141, 132, 128, 116, 129, 112, 106, 126, 119, 132, 139, 108, 118, 131, 129, 118, 120, 115, 119, 155, 128, 123, 127, 128, 136, 102, 123, 127, 127, 122, 117, 131, 146, 131, 132, 124, 126, 125, 120, 114, 121, 97, 111, 121, 131, 143, 121, 130, 122, 129, 132, 114, 125, 121, 124, 128, 119, 119, 111, 118, 109, 127, 130, 137, 123, 130, 111, 126, 121, 135, 123, 114, 116, 112, 123, 136, 109, 126, 143, 115, 133, 120, 123, 134, 124, 114, 124, 128, 121, 129, 124, 129, 127, 130, 130, 143, 115, 126, 150, 125, 135, 121, 113, 136, 174, 96, 137, 116, 127, 110, 127, 118, 104, 111, 112, 100, 121, 130, 125, 131, 112, 135, 138, 110, 110, 111, 130, 135, 118, 120, 128, 142, 105, 134, 139, 126, 129, 126, 123, 119, 128, 127, 135, 118, 125, 120, 114, 107, 139, 120, 124, 114, 125, 116, 125, 128, 116, 127, 120, 128, 120, 120, 119, 126, 127, 124, 123, 139, 136, 104, 156, 136, 124, 122, 126, 139, 139, 135, 119, 106, 113, 118, 133, 129, 132, 129, 133, 130, 118, 119, 118, 132, 124, 109, 124, 125, 143, 132, 134, 133, 132, 134, 135, 127, 120, 142, 129, 104, 105, 130, 124, 125, 127, 116, 140, 138, 120, 118, 131, 126, 127, 147, 126, 102, 120, 138, 126, 134, 138, 121, 113, 114, 124, 129, 116, 151, 113, 117, 144, 104, 131, 150, 121, 130, 115, 115, 166, 134, 115, 106, 121, 115, 140, 131, 117, 123, 143, 132, 128, 119, 135, 134, 129, 127, 139, 125, 108, 126, 122, 118, 147, 127, 115, 119, 113, 124, 131, 144, 138, 120, 125, 109, 109, 144, 98, 112, 127, 125, 128, 123, 131, 109, 115, 145, 117, 134, 130, 110, 113, 132, 121, 152, 138, 123, 146, 108, 122, 116, 139, 133, 112, 112, 123, 114, 118, 128, 118, 113, 132, 127, 121, 127, 133, 128, 123, 120, 128, 120, 111, 129, 112, 139, 139, 115, 129, 119, 115, 118, 131, 114, 136, 144, 121, 116, 145, 127, 121, 126, 107, 125, 127, 130, 136, 126, 132, 138, 120, 129, 114, 120, 128, 123, 131, 113, 120, 122, 125, 137, 140, 135, 116, 139, 122, 124, 123, 132, 140, 115, 140, 126, 115, 116, 129, 145, 128, 120, 124, 125, 116, 130, 134, 127, 119, 118, 109, 125, 108, 128, 124, 121, 131, 129, 145, 133, 131, 117, 112, 128, 129, 124, 112, 132, 124, 108, 127, 118, 135, 114, 141, 129, 146, 136, 132, 128, 138, 128, 121, 124, 122, 105, 130, 136, 138, 117, 103, 107, 117, 123, 123, 126, 124, 129, 117, 126, 126, 135, 112, 136, 116, 111, 117, 132, 124, 117, 109, 121, 126, 127, 141, 116, 139, 129, 137, 126, 107, 145, 125, 131, 137, 128, 132, 130, 123, 128, 107, 118, 140, 127, 115, 102, 121, 121, 115, 134, 117, 133, 120, 116, 118, 114, 124, 159, 116, 130, 137, 142, 113, 132, 123, 109, 148, 127, 137, 135, 131, 124, 134, 155, 133, 109, 142, 145, 115, 122, 143, 144, 122, 101, 125, 128, 136, 124, 131, 120, 141, 130, 119, 141, 127, 119, 136, 134, 140, 102, 108, 140, 139, 124, 121, 122, 106, 116, 123, 131, 121, 109, 121, 118, 115, 136, 135, 120, 112, 137, 116, 119, 127, 127, 144, 135, 119, 133, 135, 127, 136, 124, 138, 106, 124, 114, 133, 123, 135, 117, 122, 150, 109, 140, 129, 115, 122, 127, 113, 143, 117, 135, 122, 114, 123, 141, 117, 134, 94, 120, 114, 131, 117, 110, 122, 121, 127, 122, 129, 108, 111, 101, 127, 119, 125, 107, 118, 133, 113, 123, 110, 128, 106, 127, 128, 128, 131, 125, 133, 124, 134, 134, 123, 111, 114, 118, 124, 125, 109, 102, 135, 107, 135, 131, 119, 129, 112, 120, 123, 120, 140, 121, 112, 121, 134, 146, 104, 128, 99, 121, 126, 126, 120, 128, 142, 137, 110, 112, 134, 130, 122, 145, 122, 120, 126, 102, 117, 115, 140, 130, 103, 110, 122, 129, 122, 134, 105, 124, 129, 120, 129, 113, 119, 131, 120, 128, 143, 135, 125, 126, 128, 136, 120, 126, 124, 117, 117, 125, 108, 126, 119, 133, 135, 142, 127, 134, 131, 151, 125, 104, 106, 116, 123, 119, 136, 142, 131, 118, 144, 125, 125, 130, 136, 147, 117, 108, 150, 128, 118, 127, 112, 120, 119, 168, 111, 126, 118, 129, 127, 127, 123, 126, 111, 123, 123, 136, 137, 118, 124, 141, 118, 115, 119, 116, 105, 136, 121, 121, 118, 118, 115, 119, 126, 110, 138, 123, 133, 114, 117, 115, 118, 113, 125, 143, 126, 121, 127, 97, 121, 128, 116, 134, 138, 119, 141, 138, 131, 127, 116, 126, 122, 120, 122, 124, 129, 124, 121, 131, 122, 132, 130, 136, 117, 136, 122, 111, 132, 142, 122, 140, 137, 115, 127, 139, 121, 133, 125, 119, 132, 134, 123, 129, 126, 120, 124, 123, 116, 108, 123, 125, 117, 124, 118, 141, 107, 135, 118, 138, 122, 124, 118, 122, 115, 132, 113, 116, 129, 119, 122, 114, 124, 125, 146, 111, 109, 119, 141, 99, 124, 132, 134, 152, 109, 117, 132, 124, 126, 128, 135, 132, 118, 118, 124, 134, 133, 122, 123, 125, 115, 126, 130, 117, 122, 133, 143, 123, 136, 117, 110, 124, 118, 127, 118, 117, 125, 109, 136, 123, 134, 133, 122, 133, 126, 124, 126, 120, 125, 120, 119, 131, 116, 115, 124, 126, 124, 124, 126, 106, 130, 127, 131, 128, 122, 136, 126, 128, 127, 120, 131, 121, 140, 113, 127, 128, 116, 121, 139, 123, 130, 122, 120, 131, 127, 124, 117, 135, 106, 133, 130, 129, 101, 127, 122, 116, 117, 105, 131, 134, 135, 128, 136, 129, 122, 137, 131, 117, 130, 132, 129, 117, 121, 126, 116, 119, 135, 128, 115, 127, 105, 126, 122, 135, 128, 122, 129, 134, 121, 120, 131, 85, 109, 135, 121, 133, 127, 128, 127, 106, 130, 121, 133, 120, 132, 121, 127, 136, 110, 115, 144, 127, 120, 110, 125, 119, 148, 116, 122, 150, 118, 139, 131, 124, 128, 110, 120, 139, 121, 131, 122, 133, 123, 134, 142, 120, 126, 143, 133, 123, 122, 142, 112, 150, 133, 119, 125, 131, 118, 108, 120, 128, 115, 132, 117, 133, 158, 139, 140, 128, 123, 130, 125, 124, 116, 116, 114, 105, 120, 117, 118, 130, 135, 109, 129, 114, 113, 111, 121, 134, 115, 123, 106, 120, 120, 133, 128, 126, 142, 118, 122, 129, 126, 127, 123, 117, 152, 150, 148, 132, 124, 137, 129, 119, 128, 146, 139, 123, 126, 124, 120, 110, 125, 130, 125, 129, 130, 127, 120, 139, 128, 129, 122, 118, 127, 117, 113, 110, 123, 122, 128, 142, 111, 137, 116, 111, 122, 122, 106, 125, 135, 127, 127, 140, 133, 128, 137, 123, 128, 110, 135, 115, 132, 105, 127, 121, 123, 122, 134, 113, 141, 131, 136, 133, 138, 115, 124, 127, 139, 126, 116, 117, 117, 144, 124, 136, 121, 116, 134, 135, 125, 133, 128, 118, 117, 107, 107, 116, 129, 128, 114, 143, 131, 122, 118, 140, 127, 119, 130, 123, 136, 117, 131, 120, 121, 138, 132, 124, 128, 127, 121, 128, 118, 111, 140, 122, 129, 125, 137, 128, 145, 121, 134, 124, 133, 118, 131, 131, 125, 106, 129, 133, 118, 127, 128, 127, 111, 120, 113, 124, 127, 138, 121, 132, 130, 141, 111, 110, 106, 116, 108, 106, 123, 105, 131, 122, 110, 133, 126, 115, 124, 129, 127, 131, 118, 119, 132, 127, 109, 130, 151, 134, 131, 134, 124, 151, 125, 131, 130, 132, 116, 141, 119, 112, 123, 113, 136, 139, 121, 126, 128, 134, 119, 104, 98, 111, 121, 128, 133, 114, 120, 132, 118, 135, 124, 131, 117, 126, 113, 133, 114, 122, 121, 137, 118, 114, 115, 128, 142, 125, 118, 123, 125, 139, 129, 128, 123, 113, 114, 122, 118, 135, 139, 102, 133, 124, 126, 135, 122, 120, 117, 131, 111, 126, 125, 123, 126, 111, 120, 128, 129, 136, 136, 134, 133, 128, 147, 123, 140, 120, 138, 108, 143, 119, 102, 112, 131, 124, 123, 125, 125, 116, 116, 124, 123, 133, 128, 113, 125, 119, 136, 122, 156, 121, 115, 142, 98, 128, 123, 138, 120, 138, 117, 156, 117, 122, 110, 141, 111, 149, 119, 125, 122, 126, 115, 118, 116, 129, 122, 125, 115, 145, 130, 126, 132, 132, 129, 121, 122, 124, 132, 124, 109, 130, 133, 132, 114, 139, 136, 130, 145, 121, 122, 119, 130, 121, 113, 125, 122, 143, 132, 134, 123, 128, 115, 114, 124, 110, 124, 130, 130, 133, 145, 142, 117, 122, 120, 133, 125, 120, 111, 128, 114, 106, 122, 112, 123, 114, 115, 124, 125, 129, 127, 136, 127, 139, 123, 130, 135, 137, 118, 145, 116, 124, 152, 124, 162, 118, 141, 133, 125, 131, 129, 134, 127, 117, 124, 145, 130, 121, 99, 124, 111, 135, 120, 150, 118, 105, 107, 138, 122, 127, 129, 118, 110, 107, 126, 136, 115, 128, 123, 116, 134, 108, 131, 118, 120, 138, 124, 127, 122, 124, 118, 115, 123, 154, 115, 112, 131, 119, 125, 120, 126, 112, 134, 115, 135, 119, 120, 123, 133, 125, 133, 123, 138, 127, 121, 126, 117, 127, 136, 111, 116, 143, 115, 119, 131, 125, 109, 126, 139, 129, 130, 133, 136, 143, 124, 115, 127, 134, 106, 146, 114, 128, 126, 143, 119, 128, 121, 127, 124, 144, 118, 134, 121, 136, 114, 112, 122, 142, 148, 139, 116, 130, 130, 123, 99, 127, 131, 129, 132, 137, 118, 122, 116, 135, 130, 108, 126, 98, 136, 124, 126, 109, 132, 126, 138, 137, 128, 130, 130, 133, 132, 136, 129, 126, 123, 118, 123, 130, 122, 122, 141, 129, 128, 121, 140, 125, 139, 148, 125, 132, 126, 133, 112, 122, 138, 113, 116, 126, 137, 125, 140, 144, 123, 141, 133, 128, 123, 120, 123, 139, 120, 124, 143, 136, 133, 117, 133, 117, 133, 127, 115, 107, 121, 140, 108, 115, 118, 123, 118, 107, 110, 121, 128, 112, 138, 128, 127, 138, 116, 124, 133, 134, 129, 128, 115, 130, 116, 122, 116, 118, 114, 149, 132, 115, 118, 116, 141, 110, 127, 126, 134, 139, 112, 125, 127, 136, 120, 119, 134, 127, 131, 125, 115, 117, 128, 113, 123, 126, 134, 130, 128, 136, 123, 131, 106, 113, 118, 136, 140, 117, 138, 121, 132, 118, 113, 121, 152, 138, 124, 138, 117, 106, 137, 117, 124, 111, 131, 133, 123, 120, 129, 124, 107, 121, 129, 119, 117, 119, 123, 141, 126, 123, 122, 107, 128, 117, 109, 137, 135, 117, 118, 118, 123, 98, 105, 142, 132, 130, 119, 114, 144, 117, 139, 130, 117, 116, 131, 111, 135, 108, 112, 132, 128, 121, 126, 141, 136, 133, 116, 137, 138, 102, 129, 139, 119, 124, 122, 136, 133, 137, 138, 112, 133, 144, 120, 124, 134, 146, 115, 123, 127, 138, 132, 128, 115, 113, 120, 122, 128, 132, 112, 132, 120, 128, 121, 125, 114, 115, 129, 135, 124, 126, 116, 120, 128, 119, 138, 129, 134, 120, 116, 127, 114, 122, 135, 133, 126, 121, 135, 132, 125, 117, 121, 134, 110, 101, 131, 125, 107, 114, 139, 137, 110, 128, 123, 103, 126, 125, 140, 126, 131, 110, 122, 123, 108, 124, 135, 122, 121, 133, 133, 128, 118, 129, 130, 126, 129, 107, 122, 137, 100, 116, 96, 129, 124, 133, 135, 136, 120, 129, 108, 129, 118, 119, 114, 115, 122, 131, 125, 130, 130, 114, 145, 129, 113, 140, 127, 124, 138, 120, 129, 126, 130, 125, 130, 135, 143, 117, 117, 121, 128, 127, 123, 127, 117, 124, 126, 128, 133, 108, 132, 127, 116, 120, 114, 126, 123, 139, 127, 124, 136, 130, 121, 121, 128, 127, 140, 119, 132, 120, 108, 140, 117, 129, 131, 119, 118, 122, 137, 128, 118, 142, 137, 123, 148, 132, 114, 117, 123, 137, 110, 130, 119, 120, 113, 120, 123, 124, 117, 134, 128, 125, 117, 132, 132, 124, 115, 149, 120, 136, 117, 139, 129, 119, 119, 108, 130, 120, 126, 115, 122, 120, 132, 100, 132, 137, 115, 120, 119, 118, 128, 127, 107, 136, 120, 129, 108, 138, 113, 123, 117, 137, 139, 123, 136, 106, 137, 132, 128, 138, 116, 133, 128, 143, 127, 120, 134, 126, 133, 137, 119, 121, 126, 135, 117, 118, 124, 128, 134, 124, 114, 119, 133, 126, 104, 120, 135, 137, 120, 126, 129, 124, 135, 118, 117, 121, 123, 127, 129, 115, 137, 133, 136, 124, 120, 145, 118, 136, 121, 111, 113, 134, 133, 128, 125, 100, 141, 112, 118, 132, 110, 128, 121, 122, 137, 132, 143, 113, 116, 125, 123, 129, 128, 139, 124, 117, 141, 129, 109, 125, 129, 139, 142, 114, 126, 145, 134, 132, 128, 138, 115, 129, 122, 158, 124, 137, 122, 131, 123, 113, 137, 120, 135, 124, 116, 119, 120, 139, 128, 101, 124, 150, 118, 153, 108, 125, 107, 129, 138, 131, 113, 124, 129, 98, 127, 146, 126, 134, 120, 122, 134, 127, 135, 125, 119, 116, 138, 132, 124, 137, 117, 129, 135, 131, 124, 122, 115, 120, 117, 127, 136, 138, 110, 121, 121, 123, 115, 144, 120, 119, 110, 110, 135, 134, 128, 134, 141, 123, 129, 152, 118, 116, 114, 131, 117, 115, 127, 126, 123, 117, 131, 131, 134, 127, 117, 123, 120, 134, 119, 106, 129, 120, 122, 129, 141, 135, 128, 143, 128, 130, 115, 121, 136, 146, 126, 81, 145, 137, 133, 130, 125, 136, 120, 126, 129, 110, 123, 132, 129, 122, 122, 134, 131, 138, 124, 115, 107, 156, 133, 114, 131, 151, 116, 119, 117, 137, 125, 113, 114, 123, 129, 126, 128, 118, 116, 132, 121, 123, 119, 110, 128, 127, 130, 113, 109, 132, 122, 108, 128, 122, 118, 119, 135, 124, 126, 132, 131, 125, 109, 128, 108, 121, 116, 127, 136, 138, 108, 113, 118, 131, 131, 129, 111, 134, 135, 116, 130, 116, 135, 133, 112, 115, 133, 127, 106, 132, 127, 127, 114, 120, 126, 118, 126, 121, 142, 129, 114, 134, 137, 122, 126, 149, 107, 129, 120, 142, 124, 129, 130, 125, 126, 137, 125, 126, 129, 129, 127, 115, 125, 121, 131, 127, 118, 109, 119, 122, 125, 125, 114, 107, 137, 123, 130, 133, 121, 126, 126, 125, 124, 134, 130, 121, 106, 121, 137, 151, 140, 129, 106, 121, 132, 127, 125, 124, 127, 125, 143, 118, 106, 116, 115, 117, 136, 122, 134, 120, 112, 133, 131, 117, 143, 131, 134, 122, 117, 111, 134, 116, 124, 133, 119, 117, 135, 114, 128, 118, 115, 117, 121, 115, 140, 134, 126, 121, 117, 142, 136, 133, 130, 119, 127, 124, 118, 135, 133, 104, 113, 119, 123, 125, 133, 125, 116, 108, 125, 128, 120, 121, 112, 134, 123, 126, 135, 132, 113, 134, 125, 108, 130, 119, 130, 121, 127, 128, 135, 125, 133, 121, 139, 112, 146, 148, 133, 112, 125, 120, 141, 127, 109, 124, 140, 120, 130, 132, 106, 127, 129, 136, 115, 126, 127, 131, 132, 122, 127, 128, 130, 120, 130, 114, 124, 111, 123, 124, 128, 141, 125, 126, 114, 113, 123, 112, 120, 128, 130, 127, 134, 120, 92, 128, 115, 143, 113, 126, 120, 120, 140, 112, 141, 119, 121, 128, 129, 114, 131, 114, 127, 140, 137, 134, 110, 132, 128, 132, 144, 116, 118, 107, 110, 113, 135, 107, 137, 126, 129, 128, 113, 130, 131, 129, 114, 133, 123, 121, 148, 116, 126, 111, 124, 123, 138, 135, 129, 133, 141, 120, 111, 142, 108, 128, 120, 119, 142, 114, 114, 119, 123, 133, 143, 115, 128, 132, 130, 130, 102, 127, 139, 125, 132, 127, 134, 139, 131, 149, 140, 132, 111, 114, 123, 139, 121, 127, 126, 131, 139, 151, 130, 132, 123, 116, 123, 139, 111, 126, 110, 122, 124, 133, 131, 127, 146, 138, 128, 128, 129, 133, 140, 118, 133, 119, 124, 114, 122, 115, 143, 136, 121, 133, 135, 124, 130, 116, 134, 117, 148, 134, 129, 125, 120, 139, 123, 121, 126, 151, 119, 117, 138, 116, 127, 121, 140, 132, 129, 130, 134, 141, 126, 130, 116, 126, 133, 118, 140, 127, 109, 143, 125, 120, 108, 131, 131, 135, 120, 122, 125, 133, 113, 127, 123, 122, 109, 122, 130, 116, 137, 130, 129, 141, 126, 145, 127, 108, 131, 128, 119, 139, 112, 118, 145, 136, 121, 118, 133, 117, 131, 112, 119, 116, 123, 133, 105, 128, 123, 136, 124, 131, 117, 159, 124, 122, 130, 124, 128, 130, 127, 134, 125, 136, 102, 146, 118, 127, 126, 110, 128, 131, 120, 135, 120, 135, 118, 111, 120, 103, 119, 129, 114, 138, 137, 130, 127, 131, 145, 122, 118, 138, 124, 121, 115, 128, 125, 117, 120, 133, 119, 110, 128, 123, 105, 155, 140, 121, 135, 140, 135, 125, 140, 121, 142, 121, 125, 113, 140, 127, 110, 117, 131, 116, 122, 123, 114, 113, 128, 115, 101, 118, 97, 125, 127, 127, 135, 149, 130, 98, 131, 119, 119, 135, 132, 130, 123, 121, 131, 128, 113, 136, 118, 132, 124, 141, 127, 124, 130, 135, 129, 110, 119, 113, 140, 120, 117, 130, 120, 135, 129, 129, 132, 125, 136, 110, 124, 123, 114, 125, 129, 118, 117, 126, 132, 118, 121, 135, 134, 114, 128, 123, 127, 132, 127, 125, 129, 147, 117, 137, 144, 140, 120, 119, 131, 132, 139, 118, 120, 141, 123, 129, 133, 126, 124, 125, 134, 122, 132, 127, 123, 161, 135, 116, 121, 130, 135, 117, 112, 119, 124, 134, 131, 110, 139, 133, 131, 145, 145, 117, 138, 105, 119, 115, 124, 107, 127, 129, 117, 115, 121, 118, 122, 130, 129, 120, 139, 137, 141, 110, 104, 129, 123, 142, 128, 120, 127, 143, 120, 143, 133, 140, 125, 131, 107, 120, 141, 155, 125, 130, 101, 130, 131, 125, 114, 111, 136, 129, 126, 127, 122, 129, 115, 111, 139, 150, 125, 120, 112, 119, 132, 129, 121, 119, 122, 126, 120, 116, 111, 124, 128, 115, 124, 113, 121, 126, 127, 105, 114, 139, 134, 123, 127, 118, 136, 125, 111, 114, 114, 116, 127, 127, 123, 113, 138, 139, 118, 128, 121, 133, 136, 122, 121, 139, 142, 115, 124, 150, 120, 138, 125, 130, 121, 130, 148, 130, 116, 119, 144, 119, 123, 107, 138, 110, 142, 121, 139, 127, 120, 133, 130, 145, 112, 143, 135, 163, 105, 128, 112, 138, 110, 114, 120, 118, 107, 127, 110, 122, 136, 125, 121, 112, 114, 133, 113, 117, 124, 130, 140, 127, 128, 130, 119, 125, 126, 123, 125, 117, 110, 124, 103, 133, 112, 134, 129, 125, 119, 131, 126, 115, 134, 127, 113, 123, 127, 122, 149, 141, 134, 125, 144, 110, 109, 124, 136, 117, 114, 116, 116, 113, 134, 132, 131, 118, 142, 124, 124, 126, 114, 110, 148, 133, 122, 131, 131, 120, 118, 120, 109, 112, 126, 127, 127, 121, 111, 129, 98, 132, 147, 139, 127, 119, 132, 128, 157, 133, 132, 119, 133, 133, 134, 121, 82, 127, 132, 107, 109, 123, 132, 136, 127, 137, 130, 122, 103, 119, 111, 110, 127, 116, 123, 132, 121, 126, 129, 131, 128, 126, 115, 138, 137, 135, 125, 133, 119, 118, 136, 126, 116, 134, 121, 125, 135, 113, 131, 145, 124, 109, 128, 135, 127, 123, 131, 121, 137, 122, 146, 123, 127, 102, 118, 136, 127, 113, 121, 112, 124, 132, 136, 130, 121, 130, 140, 126, 125, 116, 124, 125, 145, 107, 133, 132, 121, 118, 131, 125, 109, 94, 115, 130, 114, 111, 126, 131, 129, 131, 121, 134, 118, 132, 139, 117, 119, 139, 140, 109, 104, 111, 119, 128, 132, 117, 124, 123, 112, 127, 124, 115, 128, 121, 122, 139, 129, 136, 117, 118, 119, 108, 131, 124, 126, 128, 152, 130, 119, 127, 92, 121, 132, 133, 123, 119, 123, 115, 128, 108, 118, 111, 132, 133, 116, 122, 120, 136, 116, 138, 139, 130, 109, 131, 138, 118, 139, 130, 108, 138, 121, 117, 119, 114, 134, 131, 119, 128, 111, 126, 129, 140, 129, 117, 116, 125, 137, 134, 129, 138, 129, 132, 147, 146, 123, 122, 131, 129, 133, 135, 128, 122, 134, 124, 110, 127, 117, 138, 122, 133, 135, 151, 111, 124, 123, 120, 133, 110, 122, 121, 127, 120, 117, 139, 128, 134, 118, 155, 126, 115, 111, 128, 119, 131, 128, 131, 125, 130, 111, 128, 117, 123, 118, 134, 136, 139, 127, 129, 130, 120, 110, 104, 134, 118, 119, 135, 127, 115, 120, 136, 151, 122, 117, 125, 145, 126, 126, 132, 116, 115, 125, 131, 108, 128, 131, 124, 117, 137, 118, 116, 125, 139, 122, 113, 144, 120, 130, 134, 129, 126, 131, 113, 128, 135, 116, 105, 127, 127, 105, 139, 123, 137, 110, 137, 126, 131, 115, 144, 116, 137, 129, 127, 129, 127, 137, 118, 119, 122, 133, 119, 124, 130, 127, 135, 130, 128, 105, 119, 133, 123, 122, 121, 136, 124, 132, 122, 117, 125, 126, 133, 128, 146, 134, 109, 122, 110, 140, 131, 116, 132, 135, 143, 126, 138, 124, 110, 105, 123, 133, 124, 123, 127, 165, 135, 126, 118, 131, 110, 125, 131, 135, 128, 119, 145, 132, 104, 142, 131, 119, 134, 144, 125, 126, 104, 120, 125, 111, 114, 127, 133, 122, 117, 127, 124, 135, 120, 116, 114, 123, 128, 114, 124, 127, 121, 131, 117, 119, 122, 136, 132, 130, 131, 114, 138, 124, 117, 139, 123, 125, 138, 120, 130, 126, 127, 124, 125, 128, 122, 129, 129, 132, 133, 109, 147, 124, 118, 122, 133, 125, 126, 131, 123, 141, 124, 124, 132, 120, 117, 120, 115, 138, 121, 124, 115, 116, 123, 136, 118, 117, 115, 120, 130, 145, 120, 119, 120, 122, 144, 118, 127, 132, 133, 99, 126, 115, 119, 130, 120, 130, 115, 125, 125, 123, 136, 124, 119, 131, 126, 134, 117, 126, 138, 130, 127, 126, 128, 129, 126, 115, 97, 133, 126, 139, 107, 145, 141, 137, 123, 114, 123, 125, 109, 131, 114, 117, 125, 128, 131, 126, 117, 140, 125, 131, 121, 143, 123, 133, 130, 133, 136, 137, 129, 134, 113, 125, 117, 123, 131, 122, 120, 123, 150, 125, 120, 143, 133, 106, 122, 110, 140, 128, 112, 126, 128, 121, 96, 126, 135, 117, 134, 90, 133, 104, 130, 126, 119, 116, 134, 130, 128, 136, 138, 116, 134, 125, 122, 131, 144, 113, 112, 128, 119, 133, 151, 137, 133, 110, 119, 132, 145, 133, 152, 137, 124, 116, 113, 126, 124, 130, 97, 125, 129, 126, 104, 102, 118, 113, 112, 120, 132, 124, 118, 112, 132, 123, 143, 120, 134, 136, 110, 119, 119, 127, 117, 124, 131, 132, 118, 120, 131, 123, 133, 133, 129, 135, 140, 131, 121, 126, 131, 107, 125, 105, 125, 125, 106, 134, 136, 110, 137, 123, 127, 126, 135, 129, 121, 143, 136, 119, 137, 110, 104, 131, 114, 123, 145, 114, 137, 144, 132, 110, 117, 140, 142, 143, 116, 136, 120, 151, 138, 129, 108, 134, 130, 144, 115, 138, 102, 133, 125, 116, 110, 128, 114, 145, 125, 136, 132, 105, 114, 123, 150, 143, 136, 114, 129, 121, 126, 127, 113, 114, 133, 121, 122, 125, 113, 118, 136, 119, 112, 123, 120, 108, 121, 108, 147, 114, 106, 127, 132, 149, 126, 127, 125, 143, 137, 121, 117, 102, 125, 156, 111, 121, 134, 121, 121, 122, 123, 147, 128, 133, 130, 112, 151, 118, 134, 117, 109, 131, 135, 122, 143, 131, 126, 146, 119, 124, 105, 121, 119, 114, 109, 122, 157, 136, 128, 131, 125, 117, 161, 134, 122, 124, 131, 123, 133, 129, 144, 127, 132, 116, 117, 136, 124, 117, 117, 113, 127, 131, 120, 112, 125, 123, 108, 127, 117, 137, 129, 136, 113, 113, 124, 118, 139, 125, 122, 127, 125, 132, 121, 143, 118, 142, 113, 127, 122, 116, 124, 129, 129, 149, 125, 116, 119, 124, 114, 124, 124, 114, 133, 111, 117, 144, 134, 158, 129, 151, 125, 120, 127, 113, 137, 107, 117, 144, 116, 107, 128, 121, 124, 124, 115, 130, 131, 138, 126, 116, 120, 135, 112, 118, 121, 121, 132, 118, 133, 117, 131, 141, 148, 136, 135, 132, 124, 139, 135, 119, 123, 106, 119, 130, 127, 140, 97, 116, 112, 137, 135, 137, 124, 129, 140, 121, 122, 118, 122, 135, 122, 114, 123, 117, 118, 117, 140, 132, 110, 127, 108, 138, 127, 151, 109, 118, 120, 149, 124, 127, 112, 128, 119, 144, 118, 109, 133, 137, 123, 131, 117, 118, 137, 129, 142, 130, 130, 121, 138, 128, 127, 137, 130, 121, 120, 121, 133, 125, 140, 145, 143, 128, 133, 117, 121, 145, 123, 107, 132, 123, 131, 138, 136, 138, 133, 122, 124, 123, 126, 137, 136, 135, 120, 125, 131, 132, 131, 146, 124, 137, 122, 108, 121, 124, 115, 126, 138, 117, 118, 152, 119, 139, 124, 125, 136, 131, 118, 129, 98, 124, 118, 132, 147, 129, 125, 131, 122, 112, 124, 118, 114, 119, 124, 128, 126, 120, 115, 133, 137, 122, 116, 118, 145, 113, 94, 136, 138, 114, 126, 131, 133, 112, 108, 116, 121, 136, 125, 116, 135, 117, 118, 127, 132, 138, 130, 156, 126, 110, 113, 108, 130, 122, 127, 113, 134, 131, 121, 125, 145, 102, 146, 143, 137, 141, 135, 141, 129, 143, 131, 119, 118, 128, 115, 115, 114, 143, 142, 118, 117, 124, 116, 127, 129, 98, 134, 126, 118, 110, 121, 121, 110, 127, 120, 124, 133, 121, 130, 116, 126, 117, 107, 125, 118, 139, 115, 140, 138, 121, 127, 125, 138, 134, 133, 138, 126, 116, 112, 130, 111, 117, 121, 137, 129, 123, 125, 139, 127, 111, 131, 130, 122, 126, 129, 128, 147, 114, 126, 136, 112, 124, 124, 150, 126, 134, 116, 110, 124, 135, 124, 107, 108, 112, 142, 140, 137, 135, 115, 113, 124, 152, 115, 127, 122, 117, 111, 130, 126, 129, 130, 117, 122, 128, 129, 117, 124, 130, 129, 139, 131, 116, 119, 128, 109, 127, 130, 155, 108, 113, 118, 138, 130, 130, 127, 131, 131, 126, 125, 117, 116, 120, 129, 136, 143, 126, 106, 115, 116, 149, 93, 125, 121, 106, 144, 135, 118, 129, 133, 127, 128, 112, 129, 140, 146, 129, 117, 127, 128, 116, 137, 119, 122, 122, 112, 146, 137, 119, 118, 129, 126, 138, 137, 134, 127, 129, 130, 115, 110, 104, 127, 120, 122, 116, 123, 118, 150, 113, 143, 108, 125, 115, 132, 128, 108, 142, 126, 137, 126, 152, 117, 127, 146, 122, 125, 121, 134, 104, 137, 127, 117, 145, 122, 135, 136, 127, 101, 140, 123, 129, 118, 102, 124, 121, 129, 120, 119, 119, 118, 141, 124, 122, 124, 120, 121, 108, 106, 111, 119, 115, 143, 111, 113, 136, 123, 141, 138, 129, 135, 128, 141, 110, 129, 131, 118, 122, 148, 121, 141, 115, 126, 128, 125, 127, 98, 106, 127, 116, 113, 129, 140, 129, 113, 133, 125, 115, 122, 116, 117, 124, 138, 112, 150, 136, 131, 130, 126, 119, 127, 116, 120, 122, 139, 138, 132, 115, 127, 126, 130, 116, 112, 133, 104, 117, 125, 113, 127, 129, 107, 128, 119, 118, 128, 129, 128, 124, 135, 131, 116, 125, 105, 105, 133, 123, 126, 125, 151, 135, 122, 131, 127, 131, 130, 125, 129, 108, 141, 119, 127, 123, 110, 122, 126, 117, 122, 118, 139, 107, 119, 103, 127, 117, 117, 114, 111, 130, 128, 124, 127, 128, 150, 142, 117, 128, 126, 119, 129, 125, 133, 136, 132, 133, 124, 115, 115, 140, 121, 120, 131, 113, 124, 124, 134, 125, 150, 128, 133, 123, 126, 122, 142, 147, 134, 110, 112, 147, 114, 136, 118, 130, 127, 124, 115, 136, 124, 120, 125, 120, 134, 118, 119, 128, 126, 135, 119, 111, 121, 124, 134, 121, 120, 113, 141, 134, 116, 127, 127, 124, 122, 124, 129, 123, 107, 138, 120, 137, 144, 120, 118, 120, 114, 148, 133, 108, 122, 123, 123, 127, 145, 128, 122, 124, 109, 117, 132, 130, 137, 118, 122, 108, 120, 119, 146, 112, 132, 126, 118, 139, 132, 126, 133, 118, 127, 122, 139, 132, 116, 117, 127, 137, 119, 135, 101, 111, 125, 123, 145, 121, 149, 134, 131, 111, 118, 123, 107, 127, 124, 115, 130, 119, 117, 142, 140, 118, 133, 125, 103, 140, 147, 138, 122, 130, 111, 103, 133, 132, 126, 130, 140, 129, 129, 119, 125, 110, 115, 101, 119, 123, 111, 108, 118, 130, 121, 125, 110, 135, 130, 136, 119, 124, 113, 132, 145, 137, 116, 129, 121, 131, 131, 117, 142, 117, 145, 133, 134, 123, 146, 132, 124, 137, 137, 116, 116, 124, 106, 129, 120, 117, 112, 131, 131, 112, 127, 139, 117, 134, 121, 114, 122, 128, 104, 116, 124, 123, 115, 128, 120, 113, 147, 137, 141, 127, 105, 119, 117, 129, 130, 122, 128, 130, 129, 138, 124, 133, 121, 127, 167, 136, 136, 127, 136, 122, 144, 128, 136, 144, 133, 121, 121, 140, 127, 133, 129, 119, 128, 132, 121, 120, 136, 124, 128, 146, 128, 120, 151, 123, 131, 127, 127, 134, 122, 118, 127, 141, 119, 117, 124, 112, 132, 129, 112, 126, 121, 128, 116, 148, 147, 125, 123, 138, 111, 114, 131, 118, 123, 132, 126, 149, 116, 116, 129, 135, 125, 117, 125, 110, 125, 131, 131, 104, 115, 140, 108, 126, 150, 113, 122, 135, 129, 117, 122, 102, 135, 127, 120, 111, 125, 109, 124, 126, 127, 128, 125, 131, 120, 127, 131, 138, 119, 131, 127, 124, 132, 133, 119, 124, 116, 109, 138, 131, 121, 127, 132, 129, 131, 117, 123, 132, 110, 138, 122, 127, 125, 108, 141, 127, 126, 128, 118, 145, 118, 137, 133, 138, 123, 122, 128, 128, 118, 125, 130, 129, 127, 115, 112, 131, 139, 117, 128, 104, 133, 128, 133, 121, 129, 129, 135, 126, 126, 139, 116, 119, 103, 141, 128, 108, 139, 107, 140, 122, 126, 121, 118, 121, 133, 123, 132, 133, 129, 127, 107, 134, 128, 124, 126, 131, 116, 134, 134, 117, 109, 115, 101, 117, 125, 113, 131, 124, 125, 119, 122, 121, 126, 114, 120, 123, 132, 127, 125, 125, 142, 123, 112, 109, 137, 130, 122, 117, 129, 97, 120, 125, 113, 125, 113, 125, 108, 122, 140, 130, 129, 126, 120, 128, 130, 150, 126, 123, 127, 118, 94, 118, 106, 127, 116, 132, 122, 128, 106, 139, 106, 125, 117, 116, 130, 132, 137, 132, 130, 129, 113, 135, 134, 85, 112, 111, 118, 120, 128, 129, 123, 125, 143, 123, 117, 129, 128, 125, 120, 90, 130, 131, 116, 129, 127, 127, 114, 124, 122, 128, 125, 124, 125, 117, 129, 111, 132, 125, 124, 129, 122, 128, 136, 114, 114, 110, 123, 136, 120, 120, 122, 125, 127, 113, 136, 131, 117, 141, 119, 110, 135, 116, 140, 128, 105, 131, 130, 117, 135, 113, 121, 117, 108, 118, 142, 124, 123, 124, 126, 133, 134, 129, 132, 122, 133, 136, 129, 131, 119, 161, 120, 119, 120, 123, 131, 115, 124, 142, 137, 129, 131, 122, 131, 133, 138, 130, 127, 113, 98, 117, 112, 140, 132, 145, 127, 119, 123, 133, 139, 128, 125, 128, 122, 130, 133, 126, 126, 136, 151, 130, 124, 149, 122, 120, 144, 174, 111, 130, 118, 106, 128, 121, 109, 145, 121, 138, 125, 127, 130, 120, 126, 127, 124, 124, 121, 136, 135, 118, 110, 121, 120, 136, 123, 118, 109, 137, 128, 118, 122, 141, 132, 126, 124, 111, 126, 113, 124, 118, 125, 118, 126, 150, 114, 118, 136, 126, 125, 122, 115, 141, 132, 132, 129, 133, 124, 99, 147, 131, 116, 101, 119, 114, 137, 112, 143, 131, 118, 134, 124, 133, 150, 117, 125, 134, 108, 128, 138, 123, 143, 134, 130, 128, 115, 126, 119, 119, 122, 118, 133, 127, 141, 116, 117, 110, 110, 147, 127, 114, 116, 142, 135, 146, 141, 119, 141, 109, 99, 121, 131, 118, 131, 138, 106, 127, 134, 101, 139, 120, 126, 141, 121, 107, 123, 117, 127, 120, 147, 130, 127, 128, 129, 121, 120, 117, 124, 120, 139, 125, 135, 136, 142, 136, 133, 125, 115, 140, 138, 127, 134, 120, 133, 128, 128, 123, 131, 135, 120, 115, 115, 131, 128, 126, 115, 138, 125, 116, 106, 102, 107, 135, 125, 116, 124, 121, 124, 118, 128, 134, 116, 125, 127, 123, 108, 122, 122, 124, 141, 130, 132, 126, 128, 127, 145, 124, 124, 128, 137, 137, 131, 134, 116, 129, 136, 131, 126, 122, 125, 128, 114, 119, 114, 115, 131, 110, 112, 124, 141, 117, 135, 119, 110, 122, 120, 101, 126, 128, 131, 139, 158, 118, 124, 123, 115, 111, 129, 123, 126, 143, 133, 122, 118, 127, 132, 121, 142, 159, 120, 120, 124, 123, 118, 126, 110, 124, 138, 99, 132, 134, 136, 138, 129, 104, 138, 112, 139, 123, 118, 118, 139, 103, 122, 126, 123, 111, 115, 126, 108, 132, 111, 140, 120, 111, 130, 122, 131, 134, 104, 134, 140, 129, 137, 143, 132, 138, 130, 130, 115, 131, 131, 112, 109, 143, 140, 111, 139, 113, 128, 118, 141, 115, 129, 122, 121, 142, 127, 130, 121, 122, 123, 102, 141, 121, 130, 130, 129, 112, 122, 130, 146, 142, 130, 125, 126, 154, 120, 124, 130, 124, 118, 125, 120, 140, 114, 129, 116, 138, 125, 125, 132, 140, 106, 135, 137, 137, 112, 126, 114, 106, 127, 116, 117, 110, 129, 116, 128, 118, 135, 153, 125, 113, 119, 117, 134, 135, 129, 143, 112, 114, 140, 126, 126, 128, 133, 118, 119, 107, 133, 144, 137, 133, 98, 109, 135, 115, 140, 123, 124, 118, 122, 114, 125, 128, 137, 138, 122, 124, 123, 134, 124, 131, 139, 111, 145, 132, 126, 117, 150, 127, 119, 133, 133, 109, 126, 122, 110, 121, 116, 119, 146, 114, 122, 134, 122, 113, 126, 110, 145, 126, 120, 127, 125, 125, 118, 130, 124, 131, 129, 140, 127, 137, 133, 111, 133, 127, 117, 134, 121, 107, 128, 124, 130, 137, 126, 129, 121, 130, 121, 128, 142, 115, 123, 115, 142, 107, 126, 141, 129, 115, 126, 128, 132, 121, 123, 136, 121, 114, 142, 128, 111, 103, 141, 132, 134, 123, 131, 115, 115, 144, 143, 144, 126, 129, 124, 137, 112, 136, 121, 115, 138, 130, 127, 150, 137, 122, 131, 116, 128, 99, 123, 119, 147, 142, 119, 130, 118, 132, 119, 115, 121, 131, 128, 117, 116, 138, 122, 131, 130, 111, 131, 125, 131, 104, 130, 107, 112, 124, 115, 166, 115, 130, 129, 123, 130, 121, 157, 130, 127, 122, 128, 128, 122, 128, 126, 131, 119, 128, 151, 112, 129, 116, 133, 130, 118, 128, 106, 131, 129, 135, 94, 114, 112, 131, 124, 120, 149, 127, 126, 116, 97, 126, 119, 130, 125, 109, 137, 124, 145, 116, 109, 127, 123, 117, 136, 113, 111, 119, 115, 136, 113, 110, 127, 131, 119, 134, 133, 134, 112, 120, 126, 138, 139, 127, 119, 121, 119, 126, 134, 124, 133, 131, 115, 145, 128, 149, 149, 111, 138, 116, 112, 142, 126, 123, 122, 147, 112, 137, 104, 125, 136, 139, 122, 116, 132, 131, 129, 105, 127, 132, 104, 138, 127, 138, 116, 135, 125, 112, 138, 137, 123, 130, 142, 126, 128, 134, 117, 125, 104, 107, 129, 139, 129, 123, 134, 101, 133, 142, 136, 117, 114, 123, 122, 121, 119, 110, 131, 129, 119, 143, 115, 127, 128, 144, 139, 138, 121, 140, 120, 127, 124, 113, 125, 125, 133, 136, 120, 130, 134, 132, 136, 120, 121, 112, 127, 130, 159, 127, 142, 132, 131, 123, 112, 119, 120, 125, 120, 119, 120, 129, 119, 118, 127, 124, 114, 133, 130, 103, 124, 134, 124, 106, 124, 133, 102, 129, 120, 137, 112, 123, 113, 115, 120, 133, 126, 122, 135, 126, 103, 130, 131, 123, 130, 116, 114, 120, 131, 135, 120, 122, 118, 127, 139, 128, 124, 104, 113, 126, 127, 131, 122, 117, 125, 134, 125, 132, 116, 120, 123, 129, 130, 122, 96, 131, 123, 120, 146, 115, 136, 125, 130, 131, 136, 144, 127, 121, 107, 120, 133, 121, 138, 108, 125, 126, 117, 118, 113, 122, 134, 129, 119, 128, 125, 124, 138, 118, 116, 114, 137, 113, 125, 103, 126, 98, 131, 129, 132, 104, 127, 108, 101, 141, 117, 122, 120, 124, 138, 129, 132, 113, 113, 123, 121, 111, 110, 125, 132, 118, 123, 124, 139, 141, 116, 122, 117, 111, 121, 145, 130, 113, 117, 132, 124, 125, 125, 113, 125, 115, 135, 135, 116, 130, 126, 140, 110, 100, 128, 116, 121, 112, 123, 118, 107, 131, 118, 131, 124, 124, 130, 114, 123, 114, 136, 112, 123, 122, 139, 119, 151, 137, 132, 130, 127, 132, 125, 128, 128, 121, 128, 115, 110, 129, 116, 120, 119, 132, 119, 126, 132, 119, 130, 134, 122, 124, 130, 124, 107, 126, 125, 119, 115, 126, 116, 95, 120, 111, 131, 132, 125, 116, 122, 120, 150, 115, 119, 127, 110, 121, 154, 115, 118, 137, 106, 137, 125, 127, 124, 140, 143, 133, 118, 119, 116, 135, 127, 134, 113, 104, 120, 123, 123, 121, 113, 136, 131, 131, 116, 121, 142, 131, 121, 128, 116, 116, 127, 129, 122, 125, 148, 132, 110, 106, 125, 144, 120, 112, 113, 128, 127, 119, 140, 133, 122, 133, 116, 108, 121, 141, 100, 121, 141, 136, 136, 120, 128, 137, 122, 118, 122, 132, 135, 115, 118, 130, 109, 131, 124, 125, 125, 135, 118, 119, 114, 136, 138, 121, 127, 144, 116, 137, 129, 141, 124, 136, 140, 113, 128, 127, 110, 127, 132, 132, 132, 138, 127, 108, 131, 148, 123, 139, 127, 128, 125, 107, 125, 115, 110, 116, 116, 112, 132, 121, 135, 119, 133, 117, 120, 111, 114, 121, 121, 135, 110, 132, 133, 136, 118, 126, 114, 130, 121, 118, 131, 120, 148, 143, 140, 113, 133, 114, 133, 112, 131, 128, 122, 120, 108, 124, 105, 120, 138, 109, 127, 141, 129, 120, 131, 139, 124, 129, 128, 123, 119, 125, 118, 136, 127, 118, 146, 137, 129, 131, 123, 113, 128, 123, 106, 126, 110, 143, 126, 107, 135, 128, 126, 143, 143, 110, 123, 127, 130, 136, 128, 123, 125, 117, 140, 113, 123, 126, 123, 117, 111, 137, 98, 119, 124, 144, 112, 130, 121, 129, 132, 118, 130, 135, 118, 132, 122, 131, 133, 146, 130, 116, 139, 124, 108, 131, 128, 134, 131, 124, 129, 129, 135, 124, 128, 125, 133, 120, 131, 114, 110, 126, 118, 119, 114, 119, 137, 121, 131, 117, 132, 125, 103, 121, 130, 115, 110, 110, 117, 113, 124, 112, 148, 129, 128, 126, 126, 128, 113, 124, 130, 106, 107, 129, 130, 113, 120, 134, 117, 131, 103, 121, 114, 123, 122, 131, 122, 106, 132, 136, 116, 128, 126, 114, 125, 112, 125, 128, 115, 114, 140, 124, 126, 121, 122, 136, 149, 144, 127, 134, 131, 150, 123, 135, 97, 133, 132, 116, 115, 104, 132, 128, 133, 123, 124, 123, 122, 133, 118, 109, 123, 110, 123, 105, 126, 123, 147, 118, 123, 108, 132, 138, 126, 146, 125, 112, 131, 136, 104, 121, 130, 114, 128, 123, 120, 111, 123, 118, 136, 132, 107, 127, 125, 146, 129, 117, 106, 131, 122, 126, 115, 137, 133, 116, 122, 118, 136, 128, 117, 115, 114, 129, 131, 116, 125, 113, 123, 115, 121, 128, 141, 121, 131, 119, 126, 124, 126, 130, 126, 129, 121, 114, 123, 144, 108, 117, 128, 125, 129, 140, 134, 127, 122, 126, 128, 122, 125, 112, 134, 102, 110, 130, 117, 115, 119, 128, 135, 146, 130, 105, 122, 115, 135, 120, 130, 118, 144, 117, 117, 131, 118, 106, 122, 139, 139, 121, 125, 131, 130, 129, 127, 125, 134, 126, 116, 104, 124, 129, 121, 146, 113, 127, 128, 130, 128, 127, 119, 124, 111, 117, 114, 123, 117, 139, 126, 122, 128, 115, 115, 128, 123, 122, 126, 137, 123, 116, 125, 109, 131, 119, 132, 125, 96, 128, 133, 122, 123, 131, 137, 142, 120, 131, 117, 137, 120, 136, 125, 115, 127, 131, 121, 126, 132, 111, 138, 109, 102, 122, 133, 104, 128, 128, 133, 123, 131, 119, 126, 128, 128, 128, 111, 141, 127, 121, 137, 109, 131, 123, 118, 122, 137, 117, 125, 125, 121, 138, 117, 116, 127, 135, 114, 124, 131, 126, 133, 112, 121, 127, 129, 99, 118, 121, 104, 131, 137, 125, 126, 107, 128, 110, 113, 116, 118, 131, 114, 109, 133, 115, 133, 127, 122, 110, 122, 115, 143, 143, 139, 117, 117, 109, 147, 147, 152, 144, 122, 122, 116, 111, 146, 128, 117, 141, 120, 152, 113, 123, 140, 111, 138, 124, 130, 109, 132, 126, 115, 122, 119, 121, 137, 128, 128, 133, 140, 133, 128, 120, 125, 133, 113, 116, 104, 121, 124, 123, 122, 139, 128, 123, 114, 137, 114, 110, 116, 128, 128, 117, 110, 137, 112, 117, 128, 132, 117, 130, 117, 116, 127, 125, 137, 116, 108, 140, 121, 118, 142, 124, 124, 118, 122, 119, 143, 133, 130, 128, 125, 145, 125, 141, 114, 114, 141, 143, 117, 137, 124, 116, 134, 127, 112, 139, 113, 134, 132, 150, 121, 116, 131, 134, 133, 104, 118, 129, 101, 122, 119, 137, 111, 134, 120, 133, 127, 120, 126, 135, 130, 130, 127, 122, 118, 123, 133, 130, 124, 128, 121, 102, 126, 116, 136, 130, 99, 133, 116, 140, 132, 141, 132, 114, 144, 124, 120, 129, 126, 129, 126, 135, 126, 122, 137, 125, 114, 105, 124, 123, 130, 130, 144, 122, 127, 136, 132, 133, 146, 131, 147, 126, 144, 143, 113, 128, 116, 132, 125, 121, 129, 116, 129, 118, 119, 104, 129, 123, 138, 140, 129, 144, 131, 128, 125, 113, 146, 117, 122, 128, 103, 122, 103, 129, 116, 134, 122, 129, 115, 124, 130, 131, 121, 140, 117, 140, 128, 116, 124, 107, 121, 127, 126, 129, 118, 132, 144, 136, 127, 139, 104, 128, 126, 123, 126, 134, 125, 129, 136, 125, 129, 121, 128, 122, 151, 129, 125, 120, 127, 133, 137, 115, 109, 151, 118, 129, 118, 113, 129, 122, 127, 124, 135, 116, 104, 114, 115, 111, 141, 130, 120, 132, 133, 122, 110, 120, 129, 140, 127, 107, 124, 135, 119, 141, 125, 133, 126, 108, 116, 123, 127, 125, 121, 127, 121, 129, 141, 129, 124, 139, 128, 150, 120, 120, 134, 122, 119, 123, 142, 121, 123, 103, 113, 125, 120, 124, 122, 127, 141, 138, 139, 122, 108, 119, 121, 122, 123, 136, 120, 136, 125, 133, 116, 130, 144, 126, 121, 119, 125, 119, 151, 108, 124, 119, 134, 111, 106, 128, 125, 131, 117, 127, 119, 121, 113, 113, 118, 113, 115, 115, 119, 132, 163, 109, 146, 127, 145, 115, 131, 130, 139, 134, 123, 130, 133, 123, 136, 125, 151, 135, 117, 120, 131, 125, 137, 127, 122, 123, 139, 105, 118, 122, 118, 135, 119, 121, 137, 118, 122, 136, 129, 100, 137, 130, 133, 129, 124, 128, 133, 115, 121, 119, 129, 129, 133, 134, 133, 114, 139, 121, 115, 122, 142, 136, 121, 157, 112, 104, 115, 126, 124, 102, 137, 128, 114, 132, 106, 114, 123, 119, 102, 135, 129, 133, 140, 151, 131, 113, 128, 128, 124, 108, 125, 124, 132, 128, 130, 104, 120, 130, 138, 130, 111, 121, 115, 121, 121, 119, 127, 146, 132, 125, 119, 121, 125, 131, 121, 134, 119, 123, 124, 137, 117, 120, 130, 150, 110, 129, 128, 133, 142, 129, 147, 115, 143, 124, 131, 117, 112, 135, 126, 122, 130, 126, 141, 133, 118, 126, 123, 117, 126, 144, 124, 125, 131, 120, 107, 128, 125, 122, 127, 129, 146, 106, 130, 141, 144, 118, 103, 128, 134, 134, 110, 143, 123, 122, 135, 123, 114, 116, 123, 113, 113, 118, 129, 119, 118, 118, 121, 127, 139, 111, 120, 118, 110, 124, 124, 122, 120, 116, 125, 125, 109, 143, 133, 120, 138, 128, 123, 135, 117, 124, 115, 128, 122, 118, 133, 136, 118, 127, 125, 130, 129, 125, 127, 116, 119, 132, 122, 123, 121, 122, 134, 127, 120, 146, 147, 115, 126, 121, 132, 132, 116, 128, 123, 128, 121, 127, 129, 114, 113, 120, 127, 129, 140, 143, 121, 119, 139, 126, 115, 136, 120, 106, 131, 120, 134, 121, 122, 126, 130, 108, 122, 132, 130, 108, 120, 115, 119, 130, 130, 117, 124, 153, 128, 121, 130, 133, 146, 122, 121, 124, 110, 126, 121, 137, 113, 115, 140, 125, 115, 122, 128, 146, 135, 120, 131, 138, 128, 138, 120, 130, 114, 123, 115, 133, 130, 131, 123, 133, 139, 113, 118, 133, 127, 128, 135, 137, 141, 140, 134, 122, 140, 121, 123, 126, 124, 138, 131, 131, 136, 131, 123, 112, 124, 131, 124, 116, 116, 140, 128, 129, 141, 133, 118, 115, 132, 123, 117, 124, 132, 110, 136, 109, 117, 123, 120, 115, 119, 104, 132, 127, 114, 134, 129, 118, 101, 129, 111, 126, 126, 126, 128, 138, 129, 126, 126, 118, 133, 119, 110, 139, 128, 137, 102, 118, 129, 145, 136, 136, 127, 138, 135, 114, 134, 138, 141, 111, 126, 122, 142, 137, 133, 116, 132, 142, 118, 107, 138, 125, 136, 124, 112, 116, 123, 114, 108, 125, 131, 112, 129, 124, 124, 118, 131, 125, 132, 118, 133, 129, 126, 118, 127, 105, 119, 118, 123, 112, 128, 137, 135, 144, 143, 122, 114, 138, 120, 122, 109, 111, 134, 114, 126, 121, 122, 116, 131, 139, 136, 123, 123, 113, 123, 115, 123, 130, 120, 120, 130, 118, 147, 127, 117, 95, 128, 123, 120, 135, 127, 128, 134, 121, 146, 135, 135, 123, 139, 124, 123, 140, 141, 126, 112, 111, 130, 144, 123, 102, 135, 122, 131, 121, 129, 121, 138, 129, 121, 122, 123, 135, 120, 110, 123, 131, 121, 134, 155, 123, 129, 115, 128, 138, 128, 134, 124, 127, 101, 134, 131, 113, 120, 110, 113, 106, 113, 118, 137, 127, 128, 120, 148, 111, 118, 137, 127, 128, 130, 138, 126, 101, 129, 136, 129, 125, 137, 120, 102, 129, 122, 130, 124, 138, 125, 130, 136, 116, 149, 126, 129, 124, 121, 130, 139, 110, 155, 131, 116, 128, 128, 118, 108, 130, 130, 131, 136, 129, 121, 120, 124, 140, 136, 124, 124, 136, 129, 146, 118, 135, 134, 126, 122, 118, 132, 128, 146, 113, 123, 138, 138, 125, 115, 119, 111, 113, 120, 152, 133, 139, 127, 120, 140, 120, 130, 122, 140, 139, 132, 114, 113, 127, 117, 136, 125, 109, 129, 107, 121, 128, 138, 116, 104, 143, 136, 130, 114, 121, 121, 126, 139, 110, 128, 134, 133, 142, 104, 128, 133, 137, 114, 110, 117, 124, 105, 122, 121, 121, 101, 108, 123, 107, 135, 132, 121, 110, 128, 125, 134, 118, 106, 131, 123, 125, 125, 144, 150, 125, 136, 118, 109, 142, 134, 131, 124, 111, 121, 115, 134, 108, 128, 149, 138, 104, 125, 109, 121, 126, 126, 130, 126, 112, 113, 127, 118, 118, 124, 124, 120, 132, 115, 111, 140, 133, 123, 144, 127, 127, 114, 130, 143, 121, 121, 127, 118, 127, 117, 150, 144, 136, 116, 144, 130, 117, 102, 122, 123, 140, 117, 122, 134, 114, 122, 136, 116, 137, 122, 116, 132, 134, 132, 112, 115, 143, 130, 139, 137, 121, 104, 116, 112, 113, 120, 130, 130, 125, 122, 111, 112, 96, 107, 131, 112, 146, 126, 129, 127, 122, 113, 114, 118, 121, 104, 117, 134, 131, 129, 132, 120, 105, 125, 132, 138, 124, 130, 117, 117, 118, 111, 147, 125, 127, 122, 144, 113, 145, 126, 127, 131, 128, 142, 123, 133, 138, 129, 137, 103, 130, 129, 112, 139, 145, 118, 127, 127, 127, 141, 129, 124, 123, 123, 126, 139, 120, 126, 126, 117, 127, 123, 135, 84, 135, 111, 125, 132, 116, 123, 139, 128, 117, 119, 123, 141, 140, 132, 90, 123, 138, 120, 113, 118, 122, 127, 125, 134, 122, 132, 125, 121, 133, 121, 132, 115, 125, 118, 142, 111, 128, 108, 117, 114, 116, 122, 127, 128, 129, 121, 136, 137, 141, 129, 125, 132, 126, 115, 119, 132, 105, 113, 136, 122, 137, 137, 140, 130, 117, 108, 136, 142, 137, 130, 128, 128, 121, 128, 99, 146, 140, 126, 113, 143, 136, 123, 127, 147, 129, 127, 91, 126, 115, 145, 100, 116, 112, 126, 133, 117, 135, 145, 126, 134, 107, 116, 113, 114, 128, 124, 116, 129, 123, 155, 120, 116, 129, 124, 122, 112, 140, 121, 116, 145, 128, 158, 118, 131, 123, 117, 112, 116, 112, 137, 129, 125, 120, 100, 124, 122, 153, 125, 122, 133, 123, 139, 133, 125, 120, 126, 128, 149, 128, 115, 122, 111, 120, 126, 126, 127, 113, 119, 121, 118, 126, 114, 108, 138, 119, 123, 124, 115, 127, 128, 133, 119, 107, 108, 132, 121, 118, 138, 114, 153, 127, 110, 131, 134, 132, 128, 152, 138, 121, 116, 116, 148, 135, 137, 134, 139, 116, 97, 119, 134, 127, 133, 124, 116, 137, 134, 110, 106, 124, 131, 113, 135, 123, 114, 124, 109, 154, 133, 138, 122, 111, 128, 119, 125, 121, 111, 134, 127, 128, 116, 123, 121, 149, 124, 129, 119, 139, 131, 128, 138, 112, 120, 133, 111, 132, 111, 116, 137, 144, 117, 119, 132, 120, 114, 139, 120, 133, 126, 126, 122, 116, 132, 125, 115, 112, 133, 131, 139, 129, 120, 158, 112, 125, 124, 117, 106, 135, 127, 121, 129, 124, 143, 117, 124, 132, 147, 148, 128, 118, 119, 125, 137, 121, 118, 114, 123, 123, 129, 119, 122, 119, 127, 112, 128, 121, 129, 129, 98, 105, 132, 131, 123, 138, 134, 133, 115, 140, 145, 131, 121, 139, 132, 130, 128, 110, 116, 140, 115, 131, 113, 121, 112, 149, 137, 128, 118, 115, 128, 110, 119, 127, 122, 123, 120, 127, 126, 121, 125, 121, 128, 129, 126, 126, 108, 112, 119, 131, 125, 138, 123, 130, 124, 137, 138, 126, 116, 137, 130, 121, 122, 132, 112, 115, 117, 126, 150, 128, 127, 135, 123, 129, 127, 138, 127, 124, 123, 129, 125, 122, 126, 127, 131, 125, 121, 130, 120, 136, 116, 120, 118, 123, 125, 111, 135, 111, 116, 120, 139, 119, 139, 121, 136, 139, 124, 121, 138, 118, 135, 144, 125, 121, 119, 134, 120, 122, 134, 122, 126, 124, 114, 138, 124, 121, 123, 122, 106, 137, 124, 101, 130, 135, 128, 138, 113, 127, 127, 106, 129, 106, 123, 127, 136, 116, 141, 118, 129, 144, 141, 98, 122, 119, 141, 117, 146, 117, 108, 141, 126, 133, 137, 126, 118, 132, 135, 112, 123, 114, 117, 121, 143, 136, 117, 137, 136, 125, 134, 127, 119, 117, 116, 123, 112, 114, 124, 110, 144, 104, 124, 121, 144, 124, 124, 124, 119, 133, 130, 134, 119, 128, 112, 129, 104, 112, 135, 144, 134, 116, 135, 123, 125, 119, 120, 140, 117, 139, 126, 124, 117, 122, 121, 126, 109, 148, 104, 106, 127, 118, 132, 120, 120, 134, 140, 116, 126, 121, 119, 111, 144, 125, 128, 99, 147, 127, 139, 125, 127, 127, 123, 149, 120, 134, 123, 119, 119, 108, 120, 131, 142, 143, 126, 142, 138, 126, 125, 124, 111, 133, 150, 133, 118, 162, 117, 107, 127, 140, 136, 123, 138, 129, 141, 116, 155, 136, 118, 102, 124, 138, 132, 128, 123, 131, 133, 130, 129, 126, 114, 126, 131, 122, 123, 127, 118, 141, 112, 146, 108, 128, 140, 128, 124, 108, 127, 138, 129, 144, 131, 119, 127, 126, 122, 115, 126, 124, 121, 126, 124, 122, 114, 141, 116, 110, 137, 111, 118, 123, 135, 125, 126, 124, 122, 148, 124, 130, 136, 112, 123, 111, 145, 110, 146, 107, 121, 129, 129, 111, 111, 115, 111, 119, 140, 120, 125, 147, 94, 141, 117, 128, 134, 131, 134, 147, 133, 128, 123, 136, 142, 127, 128, 122, 149, 129, 136, 127, 142, 129, 133, 128, 133, 110, 111, 129, 130, 136, 106, 124, 114, 141, 120, 125, 101, 112, 131, 127, 128, 135, 89, 110, 130, 131, 133, 128, 132, 130, 127, 133, 118, 111, 118, 111, 114, 116, 118, 106, 150, 121, 116, 109, 125, 129, 129, 144, 126, 140, 124, 149, 117, 115, 118, 124, 142, 121, 125, 123, 139, 107, 118, 126, 122, 113, 128, 122, 116, 111, 110, 118, 110, 126, 111, 120, 125, 110, 133, 134, 112, 140, 141, 110, 129, 117, 116, 127, 137, 105, 125};
+ model->setOperandValue(op26, op26_init, sizeof(uint8_t) * 1048576);
+ static int32_t op28_init[] = {-214, 37, 177, -2, 224, 317, -103, 216, 476, 474, -28, 469, 217, 378, 588, -201, -3, 142, -11, 224, 453, -40, -58, -34, 194, 206, -2, -1, 341, 555, 282, 490};
+ model->setOperandValue(op28, op28_init, sizeof(int32_t) * 32);
+ static uint8_t op29_init[] = {49, 48, 48, 49, 38, 37, 60, 49, 49, 49, 55, 50, 54, 50, 54, 72, 49, 47, 49, 41, 49, 48, 49, 49, 46, 46, 49, 49, 48, 50, 50, 49, 48, 50, 46, 51, 57, 0, 49, 40, 50, 50, 55, 50, 46, 54, 49, 42, 51, 57, 49, 80, 49, 47, 48, 47, 21, 54, 49, 49, 50, 48, 44, 50, 49, 49, 53, 49, 47, 49, 40, 44, 49, 49, 54, 49, 48, 52, 53, 39, 49, 48, 49, 60, 49, 48, 49, 46, 54, 47, 49, 49, 50, 49, 54, 50, 49, 64, 72, 49, 22, 60, 88, 49, 50, 51, 54, 49, 97, 51, 46, 7, 49, 49, 49, 55, 50, 49, 48, 50, 56, 56, 49, 49, 84, 50, 53, 51, 59, 46, 27, 52, 79, 53, 101, 71, 41, 41, 50, 37, 47, 30, 12, 127, 52, 45, 49, 34, 42, 67, 58, 50, 71, 66, 49, 49, 14, 36, 55, 39, 46, 47, 42, 51, 51, 47, 101, 41, 51, 49, 51, 52, 4, 57, 58, 1, 51, 49, 49, 24, 50, 44, 46, 50, 45, 49, 49, 49, 48, 52, 16, 50, 48, 47, 51, 49, 51, 51, 53, 49, 49, 49, 53, 50, 53, 49, 56, 35, 49, 49, 49, 51, 49, 48, 49, 45, 46, 53, 49, 49, 49, 50, 47, 50, 48, 42, 55, 49, 47, 93, 56, 49, 51, 50, 54, 51, 41, 48, 55, 255, 49, 48, 49, 46, 49, 45, 46, 47, 54, 20, 49, 49, 47, 53, 63, 50, 48, 49, 50, 49, 48, 51, 85, 50, 48, 49, 58, 49, 53, 50, 54, 83, 49, 50, 49, 51, 49, 49, 49, 48, 49, 51, 49, 49, 50, 49, 60, 50};
+ model->setOperandValue(op29, op29_init, sizeof(uint8_t) * 288);
+ static int32_t op31_init[] = {-6964, 10465, 6932, 769, 9820, -27892, 16191, 12325, 3922, 576, 7832, -31349, 8476, 1446, 7604, 14775, 23991, -5413, 14563, 13075, 3752, 8458, -17350, -4570, 7793, 11717, -18004, 9922, 8681, 11955, 9022, 16446, -1849, 8243, -3433, 8905, 7633, 9763, 11686, 10638, 7641, -12636, 11025, 10665, 14012, 5747, -10068, 318, 10564, 21012, -13789, -11988, 12228, -15600, 11258, 13908, 11669, 10026, -7522, 15192, 14940, 13538, 1850, -1946};
+ model->setOperandValue(op31, op31_init, sizeof(int32_t) * 64);
+ static uint8_t op32_init[] = {139, 168, 128, 140, 112, 141, 138, 138, 151, 133, 138, 134, 137, 147, 144, 138, 140, 165, 138, 119, 144, 146, 138, 138, 154, 108, 138, 138, 112, 135, 140, 139, 141, 146, 141, 145, 146, 134, 138, 138, 146, 135, 138, 149, 142, 133, 135, 138, 130, 129, 138, 143, 142, 134, 141, 138, 139, 137, 138, 138, 126, 134, 138, 140, 137, 137, 138, 137, 139, 136, 138, 140, 134, 140, 138, 127, 137, 143, 139, 138, 133, 144, 138, 137, 145, 72, 144, 138, 136, 137, 138, 138, 139, 120, 138, 155, 138, 139, 140, 199, 136, 138, 138, 138, 142, 130, 138, 152, 139, 134, 136, 138, 131, 135, 138, 137, 158, 138, 140, 138, 138, 140, 138, 138, 142, 134, 136, 143, 138, 141, 141, 139, 144, 138, 138, 126, 147, 149, 138, 151, 140, 143, 136, 138, 138, 127, 138, 142, 142, 134, 144, 138, 139, 134, 138, 138, 137, 136, 140, 130, 135, 127, 163, 139, 135, 140, 138, 176, 153, 134, 138, 133, 140, 147, 151, 138, 129, 156, 138, 151, 142, 148, 143, 138, 172, 124, 138, 138, 134, 135, 170, 136, 134, 132, 143, 134, 135, 137, 138, 144, 135, 140, 138, 130, 134, 142, 140, 138, 141, 128, 138, 138, 139, 143, 132, 138, 130, 132, 138, 138, 145, 135, 133, 131, 136, 128, 143, 134, 128, 139, 138, 145, 139, 135, 138, 131, 137, 134, 140, 138, 141, 141, 138, 128, 139, 141, 136, 138, 139, 140, 138, 138, 143, 134, 136, 142, 142, 140, 141, 139, 141, 142, 138, 139, 154, 136, 138, 154, 139, 137, 119, 138, 132, 132, 138, 133, 128, 237, 98, 138, 143, 136, 138, 138, 134, 180, 134, 105, 131, 136, 173, 128, 100, 137, 138, 174, 137, 141, 138, 130, 139, 145, 148, 138, 164, 116, 138, 147, 142, 142, 140, 138, 119, 124, 138, 138, 164, 136, 127, 134, 140, 144, 137, 152, 144, 135, 138, 129, 135, 144, 138, 147, 139, 144, 137, 138, 127, 141, 138, 145, 137, 138, 140, 138, 137, 135, 138, 138, 137, 138, 142, 133, 147, 135, 132, 158, 143, 136, 138, 132, 187, 134, 138, 140, 139, 135, 132, 138, 147, 126, 138, 140, 249, 146, 138, 138, 138, 139, 138, 138, 144, 141, 138, 145, 139, 115, 119, 141, 131, 137, 138, 137, 136, 140, 138, 133, 159, 142, 141, 138, 138, 120, 138, 107, 136, 142, 138, 138, 123, 108, 138, 138, 168, 132, 137, 134, 137, 144, 108, 146, 113, 135, 138, 159, 129, 128, 138, 133, 136, 149, 143, 138, 132, 114, 138, 142, 135, 140, 134, 138, 114, 151, 138, 138, 118, 147, 159, 143, 138, 141, 137, 135, 133, 139, 138, 121, 151, 136, 138, 150, 141, 141, 134, 138, 145, 150, 138, 133, 142, 135, 145, 138, 152, 135, 138, 138, 139, 126, 137, 142, 135, 135, 144, 134, 135, 136, 138, 145, 137, 140, 138, 128, 135, 142, 142, 138, 142, 131, 138, 139, 141, 144, 132, 138, 134, 132, 138, 138, 145, 135, 133, 130, 138, 145, 142, 135, 143, 81, 138, 143, 143, 136, 138, 142, 140, 142, 139, 138, 137, 126, 138, 153, 139, 136, 139, 138, 131, 124, 138, 138, 132, 135, 134, 137, 142, 110, 149, 144, 169, 134, 138, 137, 122, 141, 138, 142, 139, 128, 130, 138, 133, 118, 138, 158, 132, 134, 134, 138, 119, 168, 138, 138, 165, 139, 137, 137, 136, 138, 138, 134, 139, 139, 138, 137, 112, 140, 138, 135, 137, 138, 152, 138, 142, 143, 138, 139, 143, 115, 148, 138, 137, 140, 138, 138, 138, 125, 137, 142, 149, 138, 137, 141, 136, 138, 138, 137, 180, 143, 138, 125, 138, 138, 102, 138, 137, 140, 138, 138, 127, 143, 137, 138, 136, 136, 138, 138, 139, 144, 139, 134, 140, 135, 168, 143, 146, 135, 138, 108, 135, 140, 138, 145, 125, 146, 136, 138, 132, 123, 138, 120, 135, 136, 142, 138, 112, 129, 138, 138, 118, 138, 160, 133, 140, 141, 131, 144, 140, 140, 138, 132, 144, 131, 138, 148, 144, 135, 137, 138, 133, 144, 138, 136, 140, 136, 140, 138, 145, 140, 138, 138, 135, 137, 143, 143, 142, 138, 144, 153, 142, 133, 138, 141, 127, 237, 138, 120, 143, 172, 135, 138, 141, 142, 138, 133, 134, 139, 139, 138, 141, 144, 138, 138, 140, 139, 140, 137, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 139, 136, 145, 137, 138, 140, 138, 142, 137, 128, 138, 136, 125, 127, 139, 138, 138, 148, 138, 140, 142, 139, 140, 138, 144, 154, 138, 138, 130, 133, 133, 146, 141, 143, 144, 145, 140, 137, 138, 140, 148, 133, 138, 150, 137, 132, 134, 138, 127, 128, 138, 137, 146, 137, 143, 138, 136, 140, 138, 138, 128, 131, 136, 141, 140, 164, 151, 148, 145, 140, 138, 134, 133, 136, 138, 143, 117, 138, 133, 138, 141, 167, 138, 165, 133, 130, 140, 138, 150, 169, 138, 138, 117, 143, 135, 142, 130, 137, 138, 128, 139, 138, 138, 137, 114, 129, 138, 157, 138, 135, 158, 138, 143, 142, 138, 139, 141, 141, 137, 138, 135, 137, 138, 138, 139, 141, 140, 130, 138, 125, 151, 135, 113, 139, 138, 147, 140, 130, 138, 132, 90, 143, 140, 138, 143, 135, 138, 126, 141, 140, 137, 138, 140, 150, 138, 138, 153, 139, 126, 138, 134, 134, 139, 127, 127, 137, 138, 145, 142, 133, 138, 127, 138, 137, 141, 138, 150, 136, 138, 134, 139, 141, 133, 138, 141, 141, 138, 138, 148, 137, 131, 141, 140, 146, 138, 140, 131, 141, 138, 125, 155, 135, 138, 150, 137, 137, 135, 138, 140, 143, 138, 134, 147, 136, 140, 138, 154, 131, 138, 138, 141, 129, 132, 138, 138, 138, 138, 140, 138, 138, 138, 138, 124, 140, 138, 136, 138, 140, 144, 138, 137, 138, 138, 138, 145, 118, 149, 138, 139, 139, 138, 138, 137, 124, 138, 145, 137, 153, 126, 138, 158, 127, 138, 133, 133, 145, 138, 142, 173, 137, 135, 138, 142, 132, 138, 153, 137, 135, 141, 138, 135, 120, 138, 138, 124, 137, 147, 135, 141, 139, 133, 145, 147, 146, 138, 137, 144, 135, 138, 148, 143, 133, 135, 138, 126, 143, 138, 136, 139, 136, 141, 138, 140, 142, 138, 138, 131, 136, 141, 142, 140, 119, 128, 161, 144, 143, 138, 155, 118, 135, 138, 134, 133, 139, 138, 138, 134, 148, 138, 136, 126, 140, 136, 138, 120, 160, 138, 138, 139, 149, 158, 139, 142, 128, 136, 147, 132, 137, 138, 144, 124, 134, 138, 130, 133, 135, 141, 138, 128, 150, 138, 135, 134, 140, 137, 138, 133, 149, 138, 138, 141, 141, 144, 141, 139, 138, 138, 151, 137, 138, 138, 136, 148, 129, 138, 151, 139, 138, 134, 138, 123, 133, 138, 139, 156, 137, 141, 138, 139, 137, 138, 138, 142, 128, 138, 145, 141, 135, 146, 138, 133, 137, 138, 141, 152, 130, 138, 142, 138, 129, 135, 138, 134, 133, 138, 133, 146, 141, 140, 138, 144, 142, 138, 138, 132, 126, 133, 145, 138, 139, 129, 141, 140, 139, 138, 129, 122, 150, 138, 135, 138, 150, 140, 138, 137, 151, 138, 143, 127, 136, 137, 138, 141, 138, 138, 138, 143, 146, 141, 131, 138, 141, 145, 138, 140, 138, 138, 129, 149, 146, 138, 150, 142, 138, 134, 138, 139, 129, 138, 138, 145, 136, 143, 138, 142, 134, 138, 138, 136, 129, 134, 132, 144, 140, 131, 142, 143, 140, 138, 131, 138, 135, 138, 145, 145, 136, 137, 138, 133, 145, 138, 132, 136, 134, 143, 138, 145, 143, 138, 138, 135, 138, 144, 143, 139, 132, 167, 134, 161, 139, 138, 122, 145, 145, 138, 142, 143, 129, 130, 138, 142, 174, 138, 133, 141, 140, 139, 138, 156, 124, 138, 138, 157, 129, 115, 133, 136, 147, 137, 132, 145, 134, 138, 135, 143, 146, 138, 144, 144, 143, 136, 138, 143, 126, 138, 145, 142, 137, 140, 138, 137, 130, 138, 138, 137, 137, 137, 131, 139, 139, 146, 138, 135, 140, 138, 145, 153, 126, 138, 140, 134, 127, 135, 138, 139, 126, 138, 134, 147, 141, 139, 138, 143, 146, 138, 138, 133, 129, 134, 147, 130, 139, 139, 128, 138, 138, 138, 137, 124, 128, 138, 162, 139, 134, 158, 138, 147, 143, 138, 138, 131, 141, 129, 138, 136, 138, 138, 138, 140, 139, 139, 118, 136, 148, 146, 136, 134, 126, 138, 143, 149, 135, 138, 134, 136, 146, 139, 138, 147, 110, 138, 150, 152, 139, 139, 138, 136, 122, 138, 138, 139, 127, 127, 136, 134, 141, 133, 133, 137, 136, 138, 140, 140, 112, 138, 217, 136, 125, 153, 138, 138, 136, 138, 140, 152, 154, 138, 138, 136, 137, 138, 138, 146, 145, 140, 123, 140, 137, 141, 138, 120, 147, 138, 113, 145, 137, 138, 141, 138, 126, 131, 138, 146, 177, 138, 115, 140, 142, 138, 138, 160, 138, 138, 138, 138, 129, 132, 141, 141, 130, 133, 143, 137, 139, 138, 136, 135, 130, 138, 147, 141, 134, 135, 138, 131, 143, 138, 136, 134, 137, 141, 138, 140, 146, 138, 138, 135, 136, 147, 149, 141, 142, 137, 141, 135, 141, 138, 138, 141, 134, 138, 140, 137, 135, 133, 138, 74, 130, 138, 140, 146, 136, 137, 138, 138, 140, 138, 138, 142, 131, 138, 143, 135, 134, 139, 145, 135, 136, 138, 139, 92, 161, 138, 120, 142, 148, 160, 138, 165, 169, 138, 142, 214, 161, 127, 138, 128, 135, 138, 138, 135, 148, 141, 108, 134, 139, 108, 134, 132, 139, 138, 170, 140, 132, 138, 131, 150, 127, 136, 138, 143, 160, 138, 153, 140, 139, 134, 138, 163, 146, 138, 138, 156, 139, 112, 147, 144, 138, 139, 140, 140, 138, 138, 140, 138, 152, 138, 102, 137, 142, 131, 138, 132, 139, 138, 140, 134, 116, 149, 138, 140, 137, 138, 138, 138, 129, 138, 151, 148, 137, 139, 142, 141, 139, 138, 137, 255, 139, 138, 136, 140, 138, 144, 138, 149, 137, 138, 136, 132, 143, 134, 138, 137, 142, 138, 138, 137, 138, 135, 139, 138, 140, 142, 135, 137, 104, 138, 146, 138, 139, 138, 138, 132, 146, 138, 138, 142, 128, 138, 151, 141, 139, 136, 138, 130, 126, 138, 138, 143, 135, 128, 135, 140, 139, 137, 143, 137, 136, 138, 138, 159, 139, 138, 136, 139, 138, 127, 138, 135, 136, 138, 139, 134, 146, 133, 138, 138, 138, 138, 138, 138, 143, 138, 140, 134, 142, 141, 133, 143, 136, 138, 142, 140, 144, 138, 134, 138, 147, 140, 138, 144, 125, 138, 147, 145, 137, 138, 138, 134, 133, 138, 138, 140, 140, 133, 131, 134, 137, 137, 137, 138, 136, 138, 138, 132, 122, 138, 163, 138, 134, 150, 138, 145, 136, 138, 137, 142, 147, 134, 138, 138, 138, 138, 138, 137, 144, 140, 128, 140, 138, 122, 146, 161, 153, 138, 128, 133, 139, 138, 140, 161, 131, 137, 138, 134, 153, 138, 130, 131, 139, 137, 138, 142, 147, 138, 138, 128, 142, 152, 137, 138, 144, 137, 135, 132, 146, 138, 139, 139, 140, 138, 129, 138, 135, 142, 138, 151, 0, 138, 136, 134, 137, 143, 138, 150, 143, 138, 138, 139, 136, 143, 136, 142, 153, 114, 138, 136, 135, 138, 102, 125, 141, 138, 145, 134, 126, 128, 138, 142, 124, 138, 131, 132, 130, 138, 138, 108, 161, 138, 138, 142, 144, 106, 141, 141, 138, 137, 145, 140, 137, 138, 139, 137, 141, 138, 131, 140, 137, 136, 138, 126, 135, 138, 138, 151, 121, 151, 138, 136, 137, 138, 138, 138, 120, 138, 151, 135, 142, 140, 135, 143, 139, 138, 144, 128, 77, 138, 218, 139, 137, 157, 138, 150, 140, 138, 134, 149, 158, 138, 138, 136, 136, 138, 138, 144, 143, 138, 124, 137, 138, 136, 143, 138, 137, 138, 139, 157, 139, 138, 142, 138, 136, 126, 138, 137, 129, 138, 139, 130, 168, 89, 138, 138, 141, 138, 138, 139, 178, 138, 118};
+ model->setOperandValue(op32, op32_init, sizeof(uint8_t) * 2048);
+ static int32_t op34_init[] = {3049, 1380, 52, -29, -50, 3034, 9, 2144, 4103, 1083, -123, 16, 3044, 3052, 53, 99, 3415, 3056, 245, 3490, 6, -26, 156, -280, 368, 44, 79, 3, -44, 41, 44, 673, 77, 1252, 2850, -161, -83, 1487, 79, 19, -236, 51, 74, 244, 3141, 814, 29, 87, 194, 3437, 3071, 3068, -51, 24, 24, 965, 148, 82, 2992, 2322, 36, 217, 2456, -398};
+ model->setOperandValue(op34, op34_init, sizeof(int32_t) * 64);
+ static uint8_t op35_init[] = {40, 46, 48, 48, 49, 41, 45, 53, 44, 45, 55, 48, 40, 43, 46, 56, 45, 41, 56, 44, 49, 42, 48, 0, 38, 43, 51, 35, 48, 46, 51, 60, 47, 51, 47, 57, 37, 34, 38, 33, 66, 51, 48, 43, 45, 52, 48, 46, 46, 44, 44, 43, 36, 49, 46, 62, 53, 42, 44, 45, 51, 37, 43, 49, 40, 53, 49, 49, 36, 40, 48, 45, 43, 45, 36, 48, 41, 39, 46, 28, 43, 41, 41, 42, 53, 37, 49, 157, 48, 56, 53, 40, 49, 52, 56, 67, 48, 39, 49, 58, 31, 58, 54, 65, 42, 52, 43, 42, 42, 51, 49, 44, 50, 43, 44, 41, 33, 48, 46, 73, 57, 63, 43, 45, 52, 55, 44, 49, 44, 39, 47, 47, 55, 44, 46, 43, 46, 45, 46, 46, 44, 41, 45, 53, 43, 44, 43, 45, 51, 49, 47, 189, 50, 40, 48, 50, 47, 39, 52, 50, 48, 49, 47, 47, 39, 45, 45, 40, 41, 50, 42, 51, 44, 46, 47, 45, 48, 44, 45, 43, 45, 46, 45, 50, 51, 50, 45, 45, 49, 52, 46, 47, 40, 54, 49, 48, 40, 39, 55, 51, 43, 43, 61, 50, 41, 38, 52, 39, 44, 40, 63, 44, 52, 64, 48, 107, 41, 40, 51, 31, 49, 45, 39, 44, 48, 53, 43, 37, 46, 52, 34, 63, 29, 52, 29, 44, 44, 50, 48, 46, 41, 44, 43, 40, 39, 49, 49, 39, 40, 30, 43, 43, 52, 29, 43, 49, 38, 41, 51, 49, 67, 37, 26, 33, 43, 42, 34, 51, 39, 38, 58, 66, 43, 38, 39, 42, 56, 49, 49, 142, 57, 63, 54, 51, 50, 59, 35, 38, 50, 40, 38, 37, 53, 46, 58, 26, 51, 55, 41, 39, 41, 50, 49, 46, 29, 43, 42, 39, 50, 50, 50, 40, 33, 47, 41, 41, 55, 50, 44, 50, 41, 43, 47, 47, 31, 40, 54, 53, 45, 43, 45, 48, 42, 43, 53, 33, 44, 42, 36, 44, 51, 37, 47, 36, 43, 35, 51, 59, 48, 34, 39, 40, 49, 44, 41, 44, 51, 43, 45, 49, 53, 50, 50, 58, 43, 48, 47, 47, 37, 45, 44, 43, 55, 47, 46, 43, 38, 58, 43, 43, 50, 58, 46, 47, 44, 50, 47, 46, 51, 42, 39, 36, 45, 43, 53, 48, 44, 42, 40, 44, 45, 45, 50, 46, 51, 33, 46, 98, 52, 42, 47, 44, 47, 44, 47, 40, 48, 51, 42, 46, 54, 51, 41, 40, 46, 50, 60, 44, 45, 44, 47, 52, 51, 46, 45, 41, 50, 47, 49, 38, 45, 43, 45, 44, 49, 42, 46, 47, 42, 38, 47, 46, 33, 39, 64, 55, 45, 42, 40, 50, 43, 43, 34, 43, 45, 43, 43, 46, 51, 53, 46, 146, 43, 54, 51, 55, 48, 54, 47, 31, 49, 48, 43, 45, 56, 38, 52, 51, 47, 51, 55, 43, 44, 43, 47, 52, 58, 46, 44, 42, 57, 47, 51, 26, 49, 35, 43, 42, 51, 44, 46, 47, 43, 50, 47, 46, 53, 43, 36, 46, 46, 45, 45, 47, 43, 45, 39, 51, 46, 43, 44, 45, 47, 51, 46, 255, 43, 41, 49, 49, 47, 39, 47, 42, 47, 40, 46, 45, 48, 48, 46, 47, 43, 48, 45, 52, 45, 44, 46, 49, 54, 46, 45, 44, 50, 47, 49, 38, 47, 47, 44, 44, 49, 48, 46, 47};
+ model->setOperandValue(op35, op35_init, sizeof(uint8_t) * 576);
+ static int32_t op37_init[] = {10397, 3213, -2474, 1866, 4100, 9003, 11272, -8980, 14390, 5932, 11170, 1932, 6737, 13536, 12361, -7455, 2899, 6621, 9845, 13715, -21328, 7959, 12321, 8043, 3516, 4947, 1869, 9866, 6310, 7097, 13905, -17880, 2152, 5290, -15, 14086, 7135, 16648, 3167, 12634, 13741, 12230, -1292, 7005, -13784, 12578, 3562, 13880, 11489, 11887, 5735, -3976, 12120, 5583, 10549, 11043, 3871, 6745, 13992, 6784, 16743, 11465, 14683, -20253, 11955, -15759, 11190, 9863, 14881, 10631, 292, -2224, -4152, 10468, 3854, -3690, 11788, 7017, -15797, 10840, 6459, -8864, 5128, 1248, 4696, 11864, 7653, 3309, 10205, 7388, 7069, 30024, 10215, 9415, 9863, 6629, 6958, 4688, 3928, 9759, -2777, 6053, -6279, 15762, 18437, -21163, 1963, -7203, 4405, 6417, 5878, 6739, 741, -13719, -5667, -23613, 9525, 15965, -5816, 7987, 6860, 20016, 9765, 1172, 15322, 10155, 4962, 24292};
+ model->setOperandValue(op37, op37_init, sizeof(int32_t) * 128);
+ static uint8_t op38_init[] = {78, 81, 81, 103, 83, 75, 81, 79, 82, 83, 80, 92, 79, 78, 81, 82, 82, 80, 81, 78, 85, 85, 78, 81, 81, 83, 83, 84, 84, 86, 83, 82, 92, 83, 82, 82, 86, 79, 84, 81, 83, 84, 81, 84, 81, 86, 87, 82, 82, 62, 81, 79, 81, 89, 85, 84, 81, 83, 77, 77, 82, 85, 77, 77, 81, 72, 65, 82, 82, 80, 81, 78, 61, 83, 80, 81, 83, 83, 79, 80, 76, 77, 54, 89, 76, 81, 73, 81, 83, 81, 79, 134, 79, 85, 77, 56, 81, 77, 79, 79, 82, 81, 76, 76, 82, 77, 84, 88, 75, 80, 71, 84, 78, 81, 85, 81, 38, 85, 82, 119, 82, 64, 82, 81, 83, 87, 85, 82, 81, 80, 106, 97, 77, 81, 81, 81, 98, 83, 81, 89, 84, 85, 78, 77, 85, 83, 85, 105, 78, 77, 79, 81, 81, 80, 75, 89, 80, 79, 79, 85, 79, 84, 84, 79, 85, 81, 79, 80, 80, 78, 76, 82, 86, 82, 100, 79, 81, 74, 66, 86, 87, 96, 77, 85, 80, 83, 84, 79, 76, 85, 82, 100, 79, 80, 96, 92, 80, 81, 81, 83, 81, 79, 80, 95, 82, 79, 80, 81, 82, 81, 80, 91, 79, 81, 97, 81, 81, 77, 81, 84, 73, 79, 81, 82, 77, 81, 83, 81, 82, 81, 79, 81, 81, 80, 82, 80, 96, 80, 109, 77, 79, 100, 58, 83, 78, 105, 80, 81, 83, 85, 88, 76, 81, 83, 87, 97, 82, 100, 81, 79, 75, 83, 75, 78, 85, 83, 96, 84, 71, 86, 80, 72, 81, 82, 82, 76, 69, 85, 79, 81, 61, 134, 65, 80, 70, 141, 81, 87, 70, 83, 76, 77, 86, 87, 74, 77, 85, 74, 79, 40, 82, 86, 80, 83, 78, 80, 82, 77, 82, 81, 82, 84, 81, 77, 95, 78, 73, 75, 79, 79, 87, 81, 81, 82, 84, 86, 82, 78, 79, 75, 77, 75, 81, 92, 81, 76, 67, 93, 79, 83, 80, 76, 77, 81, 78, 79, 82, 79, 75, 85, 67, 71, 85, 81, 70, 64, 66, 80, 78, 79, 74, 73, 73, 81, 80, 80, 83, 82, 89, 77, 85, 82, 76, 82, 89, 73, 55, 77, 88, 87, 81, 76, 85, 83, 70, 83, 84, 90, 84, 78, 86, 76, 85, 80, 77, 93, 81, 85, 99, 78, 83, 77, 81, 76, 82, 87, 80, 81, 81, 80, 82, 81, 68, 79, 67, 81, 79, 80, 48, 89, 81, 76, 79, 84, 79, 83, 110, 81, 76, 55, 83, 112, 96, 75, 79, 89, 80, 91, 107, 84, 78, 82, 81, 84, 76, 79, 80, 75, 96, 80, 78, 83, 37, 97, 49, 105, 76, 86, 99, 87, 64, 115, 56, 49, 82, 102, 84, 83, 88, 57, 83, 81, 75, 97, 92, 82, 98, 94, 47, 94, 86, 83, 82, 49, 93, 94, 102, 41, 57, 52, 37, 83, 83, 74, 84, 71, 40, 89, 78, 71, 81, 78, 73, 96, 48, 92, 76, 72, 63, 89, 80, 75, 85, 78, 81, 85, 88, 65, 92, 76, 80, 77, 93, 81, 64, 79, 72, 92, 82, 84, 96, 83, 94, 86, 80, 81, 83, 96, 93, 87, 95, 90, 73, 70, 95, 84, 88, 71, 73, 80, 101, 89, 84, 81, 78, 89, 80, 80, 77, 73, 77, 83, 82, 70, 75, 81, 73, 67, 70, 80, 72, 83, 95, 87, 80, 81, 86, 75, 83, 88, 65, 53, 114, 81, 78, 76, 60, 86, 79, 96, 61, 108, 73, 88, 84, 79, 55, 110, 89, 81, 68, 62, 86, 69, 83, 66, 59, 72, 62, 101, 78, 57, 83, 86, 59, 71, 98, 66, 59, 70, 79, 90, 80, 72, 69, 91, 80, 103, 64, 83, 86, 86, 56, 89, 52, 79, 104, 92, 80, 82, 75, 79, 85, 79, 84, 78, 82, 80, 81, 79, 83, 91, 78, 77, 85, 84, 83, 78, 82, 80, 86, 86, 94, 81, 82, 84, 86, 82, 85, 80, 84, 85, 85, 84, 80, 86, 87, 79, 85, 84, 83, 87, 85, 80, 79, 85, 76, 84, 84, 105, 70, 76, 84, 84, 85, 81, 84, 83, 78, 70, 84, 83, 87, 85, 84, 78, 86, 100, 78, 79, 83, 81, 84, 83, 81, 83, 80, 82, 80, 81, 78, 81, 82, 52, 83, 79, 90, 81, 80, 75, 77, 75, 77, 77, 81, 89, 85, 79, 84, 82, 82, 77, 79, 78, 82, 82, 80, 79, 85, 80, 63, 77, 78, 79, 90, 80, 66, 99, 98, 89, 79, 70, 78, 81, 85, 85, 101, 60, 83, 82, 85, 80, 80, 81, 81, 83, 80, 82, 81, 77, 78, 80, 80, 82, 81, 82, 108, 73, 80, 79, 79, 81, 81, 83, 82, 73, 83, 84, 80, 59, 82, 81, 81, 79, 84, 81, 81, 80, 81, 80, 80, 81, 75, 83, 83, 80, 81, 80, 81, 83, 82, 83, 83, 99, 80, 80, 82, 78, 84, 69, 78, 82, 83, 83, 82, 81, 80, 81, 84, 80, 80, 86, 83, 79, 80, 83, 77, 76, 76, 79, 77, 84, 82, 98, 82, 81, 80, 84, 85, 86, 79, 77, 81, 77, 83, 69, 80, 80, 84, 82, 84, 83, 85, 81, 84, 75, 82, 74, 80, 81, 80, 78, 83, 79, 80, 78, 63, 77, 86, 74, 70, 83, 81, 74, 79, 85, 77, 85, 87, 79, 84, 75, 85, 76, 79, 74, 82, 83, 76, 77, 88, 82, 79, 76, 85, 80, 84, 83, 89, 81, 84, 84, 85, 85, 87, 86, 77, 81, 80, 84, 62, 81, 85, 80, 77, 82, 78, 87, 89, 89, 77, 80, 77, 98, 90, 95, 75, 77, 85, 82, 75, 80, 83, 79, 89, 78, 86, 80, 90, 87, 83, 88, 75, 80, 79, 83, 78, 79, 73, 80, 74, 77, 83, 74, 79, 79, 85, 82, 84, 84, 83, 82, 81, 81, 82, 87, 84, 75, 84, 84, 86, 88, 88, 87, 81, 77, 90, 78, 80, 78, 83, 76, 81, 88, 93, 83, 82, 79, 80, 73, 81, 83, 74, 115, 78, 87, 77, 76, 81, 56, 85, 81, 84, 97, 79, 82, 85, 93, 79, 78, 84, 81, 83, 74, 77, 95, 80, 79, 83, 83, 63, 81, 83, 81, 81, 84, 82, 81, 82, 84, 81, 79, 82, 81, 86, 88, 89, 81, 84, 79, 77, 82, 82, 82, 84, 84, 86, 79, 83, 97, 87, 79, 85, 84, 75, 82, 83, 83, 110, 91, 82, 81, 91, 76, 82, 88, 77, 79, 75, 73, 80, 80, 77, 85, 83, 83, 81, 79, 78, 80, 86, 86, 59, 90, 78, 76, 78, 81, 80, 109, 81, 81, 78, 77, 78, 75, 82, 77, 96, 82, 77, 86, 85, 63, 76, 81, 77, 79, 67, 76, 89, 78, 83, 101, 81, 90, 94, 79, 80, 80, 76, 81, 71, 85, 83, 87, 73, 83, 77, 83, 81, 80, 93, 82, 82, 82, 72, 56, 81, 91, 83, 89, 79, 83, 61, 86, 91, 77, 76, 93, 80, 79, 122, 75, 84, 81, 79, 58, 103, 81, 65, 68, 93, 80, 68, 78, 82, 86, 94, 79, 69, 78, 79, 82, 82, 75, 77, 81, 80, 85, 87, 83, 81, 40, 83, 80, 80, 80, 94, 73, 90, 69, 103, 80, 82, 81, 81, 78, 77, 82, 82, 80, 83, 81, 85, 88, 68, 85, 84, 80, 77, 83, 82, 80, 76, 75, 84, 79, 81, 81, 70, 98, 83, 79, 60, 78, 76, 77, 109, 60, 83, 78, 79, 85, 84, 81, 80, 81, 81, 48, 82, 83, 81, 81, 78, 78, 82, 83, 86, 92, 79, 84, 80, 75, 64, 81, 83, 73, 77, 77, 79, 132, 82, 80, 86, 88, 81, 108, 82, 81, 65, 81, 93, 89, 80, 79, 90, 83, 81, 80, 97, 81, 79, 81, 67, 94, 66, 88, 81, 76, 79, 85, 88, 71, 80, 70, 82, 90, 90, 82, 85, 69, 77, 121, 78, 88, 81, 85, 75, 81, 83, 68, 85, 80, 92, 82, 78, 77, 87, 82, 77, 82, 79, 81, 81, 80, 85, 74, 81, 80, 81, 82, 71, 81, 82, 76, 82, 79, 79, 81, 81, 80, 80, 59, 82, 80, 90, 81, 81, 80, 81, 81, 79, 81, 84, 82, 81, 83, 83, 81, 84, 81, 80, 80, 82, 81, 81, 81, 94, 81, 78, 81, 81, 82, 81, 81, 82, 97, 80, 75, 84, 83, 82, 80, 81, 79, 92, 93, 76, 82, 72, 106, 82, 76, 81, 76, 78, 83, 79, 99, 80, 82, 81, 81, 85, 78, 79, 68, 82, 82, 75, 81, 80, 84, 82, 82, 76, 84, 80, 82, 75, 76, 79, 81, 77, 80, 80, 80, 83, 81, 80, 84, 71, 78, 71, 83, 83, 74, 87, 81, 82, 85, 93, 86, 81, 83, 81, 78, 83, 81, 73, 70, 80, 80, 99, 80, 81, 80, 81, 81, 94, 80, 83, 82, 80, 80, 80, 82, 82, 81, 78, 91, 82, 80, 81, 81, 80, 81, 83, 81, 81, 80, 81, 80, 81, 81, 82, 81, 81, 80, 81, 81, 80, 81, 81, 81, 95, 82, 86, 81, 81, 84, 76, 80, 81, 68, 81, 81, 82, 81, 80, 81, 81, 81, 83, 66, 86, 76, 88, 82, 81, 78, 76, 82, 78, 79, 76, 74, 85, 84, 83, 81, 77, 81, 68, 76, 83, 82, 74, 81, 84, 77, 76, 109, 79, 79, 85, 74, 79, 82, 81, 80, 81, 80, 76, 80, 81, 74, 81, 80, 77, 83, 85, 80, 81, 78, 76, 83, 73, 81, 80, 65, 82, 134, 81, 85, 82, 52, 83, 77, 83, 82, 92, 87, 80, 82, 81, 82, 93, 83, 80, 84, 81, 82, 81, 81, 80, 80, 81, 82, 80, 80, 86, 81, 80, 80, 81, 81, 81, 80, 81, 81, 80, 79, 82, 80, 81, 80, 81, 81, 83, 81, 81, 81, 95, 81, 69, 81, 81, 72, 81, 81, 84, 84, 81, 81, 80, 83, 82, 81, 80, 82, 92, 69, 81, 83, 83, 79, 92, 82, 87, 77, 87, 75, 85, 74, 83, 86, 96, 86, 84, 81, 71, 87, 79, 93, 83, 81, 84, 96, 88, 77, 92, 92, 89, 84, 92, 92, 76, 91, 81, 81, 95, 88, 89, 89, 94, 86, 92, 88, 88, 92, 88, 82, 82, 74, 76, 83, 84, 85, 92, 81, 59, 63, 95, 81, 82, 80, 81, 80, 88, 82, 82, 82, 81, 80, 94, 81, 80, 90, 81, 80, 82, 81, 81, 81, 82, 97, 81, 80, 77, 81, 80, 81, 81, 82, 84, 80, 81, 78, 82, 81, 80, 80, 81, 82, 80, 81, 80, 80, 81, 80, 67, 82, 73, 80, 81, 87, 80, 81, 82, 64, 82, 83, 81, 79, 80, 83, 80, 82, 78, 67, 82, 83, 83, 79, 80, 84, 77, 83, 80, 85, 68, 78, 94, 84, 80, 80, 79, 82, 66, 89, 74, 77, 77, 81, 81, 66, 74, 72, 63, 82, 82, 84, 68, 79, 79, 82, 81, 82, 70, 76, 78, 78, 80, 74, 87, 80, 83, 83, 81, 78, 82, 90, 77, 80, 78, 84, 84, 74, 92, 82, 79, 69, 84, 85, 89, 91, 83, 74, 84, 79, 83, 77, 77, 72, 79, 77, 84, 83, 76, 82, 83, 82, 20, 90, 87, 92, 77, 81, 80, 84, 81, 86, 63, 75, 72, 110, 75, 82, 77, 80, 83, 77, 83, 81, 89, 85, 83, 76, 80, 71, 78, 76, 79, 75, 80, 78, 78, 79, 78, 31, 81, 114, 71, 93, 78, 104, 82, 79, 79, 55, 85, 79, 77, 72, 80, 75, 85, 72, 89, 88, 81, 75, 83, 85, 84, 76, 94, 79, 85, 78, 79, 81, 82, 85, 83, 70, 109, 86, 81, 76, 63, 44, 79, 77, 87, 86, 73, 81, 78, 83, 75, 68, 77, 89, 83, 89, 87, 75, 81, 84, 75, 80, 82, 78, 85, 84, 91, 78, 87, 91, 82, 73, 80, 74, 77, 81, 81, 91, 168, 75, 78, 82, 78, 83, 87, 103, 85, 178, 83, 82, 83, 84, 63, 94, 76, 81, 79, 78, 75, 80, 84, 81, 68, 83, 91, 79, 84, 78, 80, 79, 76, 77, 139, 61, 71, 86, 83, 71, 81, 78, 77, 80, 84, 105, 85, 80, 85, 84, 85, 76, 85, 88, 71, 81, 84, 82, 92, 81, 80, 88, 89, 84, 73, 75, 80, 88, 79, 81, 94, 66, 79, 73, 85, 88, 80, 80, 96, 75, 82, 81, 86, 81, 71, 87, 75, 80, 80, 83, 100, 76, 85, 78, 81, 78, 78, 91, 78, 97, 87, 82, 82, 75, 82, 80, 81, 83, 81, 66, 87, 82, 69, 80, 82, 78, 112, 77, 80, 76, 80, 78, 81, 77, 75, 92, 80, 80, 81, 85, 83, 81, 82, 88, 79, 79, 82, 82, 83, 82, 83, 76, 82, 80, 78, 81, 84, 81, 80, 81, 83, 82, 78, 77, 82, 82, 92, 92, 77, 83, 78, 80, 81, 80, 83, 81, 82, 73, 79, 68, 70, 69, 86, 84, 79, 92, 103, 81, 76, 79, 84, 80, 80, 81, 73, 71, 81, 67, 81, 82, 77, 84, 78, 87, 81, 82, 66, 79, 88, 82, 81, 79, 78, 81, 78, 78, 92, 81, 85, 81, 90, 86, 96, 83, 78, 95, 82, 81, 82, 81, 82, 82, 79, 76, 88, 78, 81, 79, 81, 114, 80, 77, 80, 81, 81, 82, 79, 93, 80, 80, 78, 83, 77, 81, 78, 89, 77, 77, 80, 82, 76, 80, 81, 78, 76, 73, 85, 86, 81, 72, 87, 84, 60, 88, 77, 92, 73, 79, 88, 82, 77, 88, 81, 81, 81, 86, 99, 78, 89, 83, 77, 73, 73, 89, 84, 70, 78, 83, 90, 77, 93, 73, 76, 82, 78, 90, 83, 78, 75, 82, 81, 82, 71, 81, 85, 73, 73, 89, 52, 84, 86, 88, 80, 81, 81, 85, 83, 73, 82, 82, 80, 81, 67, 78, 82, 75, 83, 80, 80, 82, 82, 82, 71, 77, 82, 83, 85, 81, 78, 83, 82, 81, 74, 80, 80, 74, 81, 84, 79, 82, 81, 80, 89, 78, 82, 78, 81, 76, 92, 77, 77, 79, 82, 77, 82, 82, 92, 93, 77, 82, 79, 70, 76, 85, 83, 105, 73, 101, 73, 80, 82, 92, 81, 75, 89, 77, 82, 78, 83, 90, 76, 78, 86, 83, 82, 74, 82, 74, 84, 85, 83, 81, 80, 91, 90, 82, 89, 87, 81, 82, 84, 84, 78, 82, 85, 79, 85, 83, 82, 87, 85, 84, 75, 82, 81, 86, 85, 78, 79, 74, 78, 88, 94, 82, 83, 86, 61, 73, 85, 88, 78, 76, 91, 13, 80, 81, 104, 90, 87, 37, 78, 83, 96, 84, 100, 92, 83, 84, 77, 86, 90, 83, 97, 91, 85, 81, 105, 96, 60, 84, 82, 59, 78, 82, 78, 84, 84, 75, 84, 126, 49, 55, 88, 70, 77, 57, 79, 73, 79, 79, 86, 81, 84, 63, 82, 80, 82, 77, 75, 81, 79, 81, 70, 82, 81, 79, 79, 53, 82, 82, 85, 80, 78, 75, 83, 84, 74, 86, 81, 77, 83, 77, 83, 77, 86, 81, 92, 82, 77, 81, 81, 93, 83, 85, 87, 114, 81, 82, 98, 76, 82, 82, 81, 84, 73, 88, 86, 78, 77, 58, 74, 77, 83, 81, 80, 77, 82, 69, 80, 80, 75, 77, 77, 82, 88, 77, 85, 84, 82, 78, 71, 81, 80, 90, 85, 79, 83, 77, 79, 79, 80, 88, 83, 75, 93, 86, 82, 72, 80, 70, 81, 90, 88, 81, 83, 79, 82, 80, 75, 83, 86, 84, 84, 83, 63, 92, 90, 81, 78, 88, 84, 89, 97, 82, 79, 82, 78, 95, 95, 83, 77, 82, 85, 81, 92, 80, 84, 81, 79, 75, 81, 81, 82, 81, 81, 75, 55, 95, 78, 82, 77, 84, 63, 81, 76, 90, 81, 79, 81, 78, 87, 87, 79, 75, 88, 82, 82, 81, 82, 81, 79, 77, 84, 73, 73, 77, 85, 80, 73, 79, 88, 82, 80, 83, 79, 79, 76, 74, 73, 81, 107, 81, 83, 86, 68, 81, 70, 67, 100, 74, 75, 87, 71, 82, 71, 82, 65, 66, 79, 84, 82, 89, 80, 83, 85, 78, 71, 82, 84, 80, 78, 79, 82, 81, 81, 82, 85, 46, 80, 82, 103, 81, 80, 78, 79, 84, 80, 79, 82, 86, 79, 79, 81, 83, 78, 82, 82, 81, 82, 81, 81, 78, 98, 82, 67, 78, 80, 62, 85, 83, 88, 92, 82, 75, 80, 84, 80, 83, 80, 83, 108, 61, 82, 82, 92, 89, 81, 80, 81, 81, 96, 81, 81, 89, 82, 82, 80, 81, 81, 82, 84, 94, 79, 81, 78, 81, 81, 81, 81, 80, 81, 81, 82, 78, 79, 81, 81, 81, 79, 82, 80, 81, 81, 80, 81, 80, 78, 82, 75, 82, 82, 82, 77, 81, 82, 66, 82, 82, 81, 79, 81, 83, 80, 79, 78, 68, 77, 78, 89, 110, 82, 94, 81, 81, 63, 92, 76, 102, 89, 87, 75, 86, 109, 87, 80, 61, 72, 90, 81, 81, 79, 79, 81, 75, 73, 89, 77, 71, 61, 64, 94, 76, 96, 78, 81, 83, 79, 80, 75, 74, 79, 74, 76, 64, 85, 91, 82, 80, 64, 100, 98, 74, 83, 81, 105, 78, 89, 78, 65, 63, 81, 81, 72, 78, 81, 81, 80, 81, 69, 80, 80, 80, 81, 81, 81, 81, 80, 81, 81, 83, 81, 81, 75, 81, 81, 81, 80, 81, 81, 81, 80, 81, 81, 80, 80, 81, 83, 81, 81, 81, 80, 80, 82, 82, 67, 82, 95, 82, 80, 89, 81, 82, 77, 78, 81, 81, 81, 79, 80, 80, 80, 79, 70, 92, 84, 78, 80, 78, 79, 83, 76, 80, 79, 75, 76, 74, 85, 79, 78, 77, 74, 84, 80, 80, 79, 75, 78, 81, 80, 76, 75, 75, 91, 78, 81, 82, 64, 81, 85, 78, 73, 79, 74, 79, 77, 80, 78, 77, 84, 89, 81, 77, 75, 75, 84, 85, 77, 80, 107, 82, 80, 85, 92, 83, 78, 81, 81, 79, 77, 55, 78, 81, 80, 76, 87, 92, 81, 78, 83, 83, 71, 80, 81, 80, 82, 80, 80, 84, 84, 81, 80, 81, 90, 94, 86, 81, 90, 71, 82, 80, 78, 60, 83, 79, 81, 59, 88, 83, 85, 80, 83, 79, 82, 88, 80, 81, 80, 84, 80, 79, 82, 81, 82, 80, 80, 79, 78, 83, 84, 79, 78, 80, 75, 87, 81, 84, 76, 74, 85, 82, 83, 86, 78, 81, 78, 81, 82, 82, 60, 74, 78, 79, 75, 86, 79, 81, 81, 80, 82, 82, 54, 79, 80, 87, 111, 85, 75, 83, 65, 81, 77, 73, 84, 75, 83, 75, 81, 87, 82, 84, 86, 84, 78, 85, 84, 78, 103, 83, 84, 75, 72, 83, 81, 71, 81, 80, 79, 86, 81, 80, 81, 79, 77, 80, 82, 81, 81, 84, 81, 86, 69, 81, 80, 83, 83, 79, 79, 77, 80, 81, 82, 83, 80, 81, 80, 79, 93, 80, 83, 79, 70, 66, 82, 72, 80, 85, 88, 81, 67, 82, 80, 76, 82, 91, 72, 79, 82, 81, 81, 80, 83, 82, 94, 82, 83, 77, 80, 82, 81, 81, 88, 81, 80, 79, 77, 86, 78, 83, 79, 84, 74, 74, 86, 86, 79, 77, 80, 87, 76, 82, 75, 78, 74, 81, 79, 74, 73, 76, 71, 78, 80, 79, 74, 81, 83, 79, 74, 83, 73, 76, 77, 73, 78, 78, 85, 74, 80, 79, 78, 75, 87, 88, 79, 80, 78, 80, 80, 76, 91, 91, 74, 76, 80, 79, 79, 84, 70, 98, 84, 81, 78, 81, 106, 82, 75, 98, 85, 84, 81, 80, 80, 79, 91, 77, 85, 76, 83, 81, 78, 77, 82, 93, 92, 79, 79, 84, 91, 82, 82, 85, 80, 82, 81, 81, 83, 83, 84, 80, 90, 84, 77, 82, 82, 61, 73, 78, 72, 81, 94, 88, 78, 73, 69, 76, 84, 84, 91, 59, 85, 86, 75, 74, 77, 89, 84, 81, 75, 69, 75, 70, 84, 82, 77, 83, 78, 81, 123, 77, 97, 94, 72, 81, 75, 72, 81, 46, 75, 70, 66, 12, 64, 75, 88, 73, 89, 78, 83, 85, 95, 80, 71, 69, 80, 68, 82, 80, 83, 79, 81, 69, 82, 84, 76, 111, 89, 117, 64, 74, 79, 21, 78, 87, 84, 81, 80, 79, 81, 82, 81, 81, 74, 79, 82, 77, 81, 82, 82, 83, 81, 81, 79, 95, 80, 82, 78, 81, 81, 80, 81, 86, 82, 82, 82, 69, 82, 82, 80, 79, 78, 80, 83, 81, 80, 79, 79, 80, 85, 82, 92, 80, 81, 87, 82, 79, 70, 83, 78, 108, 82, 75, 80, 82, 80, 80, 76, 105, 70, 83, 79, 82, 84, 76, 86, 80, 79, 81, 76, 78, 86, 70, 95, 87, 86, 71, 80, 82, 77, 92, 81, 81, 83, 74, 78, 79, 75, 81, 90, 87, 78, 83, 71, 96, 93, 76, 74, 88, 85, 92, 98, 78, 83, 89, 82, 95, 94, 81, 82, 84, 85, 82, 94, 93, 91, 85, 74, 73, 86, 82, 82, 83, 79, 82, 82, 76, 82, 79, 83, 84, 87, 82, 83, 85, 76, 78, 76, 81, 79, 82, 80, 89, 84, 77, 92, 81, 81, 80, 82, 81, 80, 79, 77, 73, 81, 81, 82, 81, 81, 83, 80, 82, 80, 81, 79, 81, 107, 81, 68, 82, 84, 83, 79, 79, 88, 78, 79, 77, 82, 76, 81, 84, 78, 83, 81, 42, 81, 93, 84, 75, 82, 79, 80, 76, 81, 77, 83, 83, 80, 82, 79, 78, 104, 83, 79, 85, 79, 83, 86, 81, 85, 79, 80, 73, 94, 82, 82, 79, 64, 76, 82, 83, 83, 76, 74, 81, 83, 80, 80, 96, 87, 85, 80, 81, 80, 89, 80, 83, 81, 79, 74, 82, 80, 80, 82, 82, 80, 79, 86, 85, 81, 75, 81, 85, 81, 84, 82, 81, 80, 80, 73, 81, 81, 83, 85, 81, 101, 78, 83, 82, 80, 82, 77, 81, 79, 81, 82, 73, 103, 86, 76, 79, 57, 79, 75, 88, 94, 86, 77, 84, 75, 81, 83, 81, 79, 64, 79, 87, 81, 78, 85, 84, 72, 81, 70, 78, 82, 81, 87, 79, 83, 85, 82, 84, 84, 84, 80, 84, 81, 78, 77, 80, 78, 82, 79, 85, 88, 76, 81, 78, 99, 86, 74, 82, 90, 71, 80, 81, 79, 81, 74, 71, 52, 76, 78, 76, 95, 81, 82, 76, 82, 77, 77, 82, 80, 85, 75, 65, 82, 70, 78, 81, 79, 89, 78, 75, 76, 82, 56, 81, 71, 75, 48, 89, 77, 73, 82, 82, 80, 84, 84, 77, 83, 80, 82, 78, 83, 82, 80, 74, 83, 82, 82, 81, 79, 79, 47, 73, 80, 80, 79, 81, 82, 80, 83, 89, 79, 82, 79, 50, 76, 86, 84, 81, 83, 83, 81, 82, 81, 81, 83, 80, 89, 83, 82, 81, 82, 78, 81, 82, 94, 85, 80, 100, 82, 82, 80, 81, 83, 98, 73, 90, 79, 94, 83, 79, 82, 75, 76, 37, 84, 82, 78, 83, 69, 80, 82, 85, 80, 80, 82, 81, 86, 79, 79, 81, 35, 78, 78, 82, 84, 91, 81, 80, 81, 79, 79, 82, 82, 90, 85, 78, 84, 82, 79, 78, 79, 83, 81, 82, 80, 80, 81, 85, 82, 83, 82, 78, 83, 82, 82, 81, 83, 81, 80, 80, 75, 81, 82, 81, 85, 76, 85, 80, 79, 79, 80, 89, 76, 76, 86, 86, 86, 76, 84, 80, 88, 85, 87, 81, 82, 90, 88, 82, 87, 89, 88, 86, 87, 86, 78, 86, 92, 79, 85, 85, 85, 88, 87, 87, 77, 88, 79, 87, 85, 94, 75, 75, 87, 81, 89, 86, 88, 87, 73, 66, 87, 83, 84, 81, 84, 83, 81, 83, 82, 83, 82, 82, 82, 87, 78, 85, 80, 81, 80, 81, 79, 88, 78, 80, 79, 80, 81, 81, 80, 82, 83, 84, 45, 82, 80, 81, 105, 81, 82, 81, 82, 79, 91, 81, 81, 79, 80, 75, 77, 81, 79, 79, 77, 80, 80, 81, 85, 81, 78, 78, 77, 76, 63, 81, 79, 76, 84, 82, 106, 65, 77, 81, 63, 85, 62, 95, 78, 80, 150, 82, 74, 106, 83, 70, 79, 105, 83, 84, 89, 72, 80, 81, 82, 188, 93, 84, 86, 167, 94, 79, 88, 69, 84, 83, 80, 87, 182, 65, 79, 52, 74, 107, 78, 75, 78, 74, 82, 80, 88, 81, 81, 76, 81, 77, 85, 82, 77, 82, 76, 85, 76, 81, 98, 83, 81, 83, 92, 68, 80, 68, 79, 84, 64, 80, 88, 64, 73, 76, 87, 100, 74, 82, 81, 71, 83, 81, 83, 55, 71, 79, 84, 59, 71, 81, 92, 80, 79, 83, 83, 75, 59, 87, 71, 103, 92, 68, 82, 84, 79, 82, 77, 83, 81, 80, 86, 82, 76, 81, 73, 67, 89, 81, 94, 69, 79, 81, 96, 98, 75, 74, 236, 92, 88, 86, 78, 79, 69, 83, 104, 80, 73, 91, 74, 98, 81, 80, 87, 84, 82, 81, 75, 87, 62, 65, 84, 77, 87, 83, 72, 79, 83, 85, 77, 65, 75, 255, 78, 91, 84, 89, 79, 77, 78, 84, 79, 79, 83, 71, 74, 74, 85, 83, 82, 80, 84, 79, 69, 77, 81, 79, 81, 81, 86, 79, 84, 83, 82, 81, 94, 80, 83, 86, 81, 80, 79, 80, 81, 82, 90, 88, 80, 81, 82, 81, 82, 82, 82, 75, 77, 83, 80, 90, 76, 81, 80, 82, 76, 82, 82, 82, 82, 84, 81, 82, 78, 78, 75, 81, 82, 78, 80, 81, 50, 75, 77, 86, 81, 62, 84, 81, 78, 74, 72, 94, 86, 60, 79, 81, 83, 82, 81, 88, 82, 80, 77, 82, 60, 85, 83, 80, 83, 86, 81, 80, 68, 80, 80, 81, 82, 100, 84, 84, 78, 67, 84, 83, 81, 46, 78, 82, 80, 62, 120, 82, 79, 74, 84, 81, 83, 88, 81, 81, 78, 80, 80, 90, 84, 81, 81, 78, 79, 81, 80, 85, 77, 79, 81, 79, 81, 68, 82, 80, 85, 80, 82, 57, 83, 83, 95, 79, 84, 82, 83, 83, 81, 81, 77, 82, 82, 82, 79, 81, 95, 83, 80, 80, 82, 87, 80, 84, 82, 80, 78, 84, 80, 58, 64, 83, 81, 80, 79, 75, 82, 82, 82, 81, 80, 81, 82, 86, 81, 82, 81, 84, 80, 80, 84, 80, 84, 79, 81, 83, 81, 81, 65, 79, 81, 81, 81, 81, 66, 82, 81, 79, 82, 81, 81, 82, 82, 81, 78, 73, 80, 81, 82, 81, 81, 80, 81, 80, 81, 81, 81, 85, 80, 81, 82, 81, 80, 81, 81, 81, 82, 80, 82, 82, 71, 81, 77, 82, 80, 80, 85, 82, 81, 95, 81, 82, 80, 82, 80, 81, 81, 83, 82, 98, 82, 85, 85, 74, 82, 81, 81, 81, 77, 68, 85, 74, 83, 80, 80, 82, 74, 85, 84, 87, 78, 79, 86, 81, 83, 82, 75, 81, 106, 79, 82, 82, 62, 100, 78, 80, 80, 79, 82, 82, 77, 83, 82, 93, 87, 82, 78, 82, 82, 91, 79, 79, 78, 74, 93, 81, 78, 82, 93, 80, 84, 87, 88, 94, 81, 84, 81, 81, 72, 86, 71, 86, 81, 83, 84, 81, 79, 84, 121, 74, 86, 82, 82, 83, 82, 71, 81, 81, 80, 83, 80, 81, 79, 82, 74, 78, 78, 80, 87, 88, 77, 83, 84, 76, 78, 81, 71, 81, 81, 87, 81, 87, 133, 80, 82, 81, 80, 82, 81, 80, 75, 81, 81, 84, 74, 84, 81, 83, 74, 80, 81, 81, 75, 88, 76, 86, 81, 84, 82, 81, 82, 90, 126, 77, 80, 88, 81, 82, 81, 81, 80, 81, 78, 85, 80, 81, 78, 84, 116, 79, 79, 79, 72, 60, 85, 82, 85, 77, 72, 83, 89, 81, 81, 75, 79, 62, 80, 82, 82, 84, 80, 82, 79, 79, 128, 82, 83, 85, 77, 81, 82, 79, 84, 81, 77, 80, 82, 83, 83, 79, 81, 80, 82, 85, 85, 82, 80, 74, 81, 83, 80, 80, 78, 81, 79, 81, 76, 84, 79, 82, 83, 80, 79, 80, 79, 44, 81, 83, 83, 72, 80, 81, 81, 80, 77, 79, 81, 80, 80, 77, 77, 81, 80, 82, 79, 87, 91, 83, 80, 82, 84, 82, 77, 77, 75, 75, 81, 75, 83, 74, 82, 67, 84, 82, 77, 84, 82, 79, 78, 84, 84, 83, 134, 84, 78, 81, 87, 87, 76, 81, 82, 77, 87, 70, 95, 87, 72, 86, 63, 77, 82, 84, 96, 83, 78, 80, 83, 78, 87, 84, 81, 53, 80, 88, 78, 82, 81, 80, 78, 83, 45, 87, 85, 82, 70, 82, 89, 83, 80, 78, 91, 85, 78, 85, 95, 82, 73, 74, 80, 94, 86, 79, 77, 76, 75, 77, 89, 93, 84, 82, 93, 70, 85, 81, 92, 84, 80, 96, 88, 84, 79, 81, 120, 73, 82, 83, 81, 77, 87, 91, 84, 91, 94, 88, 83, 87, 82, 78, 76, 80, 80, 71, 88, 81, 67, 77, 83, 68, 117, 77, 79, 79, 78, 82, 84, 80, 62, 101, 83, 80, 83, 79, 78, 82, 82, 80, 83, 80, 80, 81, 83, 79, 81, 67, 81, 81, 64, 81, 82, 83, 82, 81, 82, 83, 82, 80, 77, 83, 83, 81, 87, 83, 82, 80, 81, 81, 84, 85, 75, 86, 76, 79, 82, 43, 88, 84, 83, 69, 76, 76, 80, 78, 83, 80, 93, 83, 69, 69, 80, 79, 79, 80, 79, 82, 81, 82, 80, 81, 82, 77, 80, 82, 80, 82, 77, 81, 100, 73, 81, 80, 79, 81, 81, 81, 81, 71, 80, 79, 82, 97, 80, 80, 84, 83, 80, 80, 79, 80, 80, 81, 80, 79, 65, 83, 80, 78, 80, 80, 83, 84, 68, 87, 80, 65, 82, 79, 77, 82, 82, 73, 82, 83, 91, 83, 78, 78, 63, 87, 64, 88, 84, 88, 59, 79, 99, 95, 66, 59, 83, 94, 73, 85, 61, 63, 79, 81, 76, 59, 67, 72, 81, 63, 65, 81, 81, 76, 85, 60, 74, 87, 62, 64, 62, 73, 56, 77, 73, 81, 74, 73, 62, 82, 78, 102, 71, 80, 79, 72, 68, 73, 87, 77, 69, 75, 80, 79, 73, 84, 83, 82, 91, 79, 83, 77, 82, 81, 83, 82, 81, 74, 99, 85, 84, 74, 81, 79, 83, 87, 83, 81, 85, 77, 79, 86, 76, 79, 84, 87, 90, 76, 55, 89, 87, 78, 79, 89, 84, 92, 101, 80, 77, 80, 83, 103, 97, 79, 79, 80, 90, 82, 100, 87, 82, 83, 86, 74, 83, 82, 79, 82, 79, 79, 95, 107, 79, 80, 78, 83, 89, 80, 79, 89, 82, 79, 76, 76, 73, 82, 79, 101, 84, 79, 78, 81, 83, 76, 82, 77, 82, 75, 81, 76, 77, 75, 82, 80, 85, 81, 78, 80, 80, 83, 78, 83, 81, 80, 94, 78, 79, 64, 86, 79, 72, 86, 81, 78, 80, 71, 79, 80, 78, 80, 77, 78, 93, 85, 80, 86, 158, 99, 90, 77, 82, 79, 66, 79, 85, 76, 66, 98, 81, 89, 89, 84, 81, 88, 75, 81, 87, 61, 73, 80, 83, 67, 65, 89, 79, 85, 74, 60, 84, 69, 65, 152, 88, 85, 74, 82, 83, 87, 82, 79, 73, 79, 86, 78, 84, 81, 79, 93, 59, 79, 73, 85, 57, 87, 85, 87, 73, 80, 81, 78, 85, 79, 80, 81, 79, 72, 80, 79, 81, 75, 78, 88, 66, 78, 82, 81, 83, 77, 81, 81, 84, 82, 81, 84, 88, 82, 100, 91, 80, 84, 87, 91, 64, 82, 80, 85, 90, 91, 72, 80, 73, 113, 83, 80, 87, 91, 80, 83, 84, 83, 99, 73, 88, 76, 77, 74, 78, 84, 82, 74, 81, 80, 100, 97, 81, 81, 80, 81, 88, 77, 84, 89, 83, 81, 81, 82, 83, 82, 83, 90, 81, 82, 97, 81, 80, 81, 81, 84, 80, 80, 83, 84, 80, 83, 82, 82, 85, 81, 80, 82, 82, 83, 82, 81, 101, 80, 108, 79, 81, 95, 58, 81, 82, 106, 83, 85, 79, 83, 82, 73, 81, 79, 83, 93, 79, 81, 113, 69, 81, 80, 78, 82, 93, 81, 83, 79, 81, 83, 81, 78, 77, 83, 89, 81, 80, 80, 92, 81, 80, 77, 86, 90, 79, 81, 81, 83, 79, 80, 82, 81, 92, 82, 75, 81, 81, 83, 81, 83, 95, 82, 107, 86, 79, 104, 54, 81, 89, 113, 74, 85, 82, 82, 83, 69, 82, 89, 60, 71, 79, 89, 78, 81, 82, 82, 84, 80, 79, 88, 84, 73, 81, 79, 80, 78, 90, 78, 75, 83, 82, 83, 84, 81, 81, 84, 79, 85, 64, 79, 79, 83, 93, 89, 75, 80, 91, 86, 81, 80, 79, 84, 85, 82, 82, 69, 76, 88, 82, 79, 83, 81, 84, 76, 61, 77, 84, 76, 69, 85, 83, 77, 82, 86, 79, 78, 84, 73, 81, 81, 87, 81, 77, 76, 80, 79, 80, 83, 82, 84, 72, 79, 82, 79, 77, 81, 85, 81, 79, 79, 83, 81, 87, 82, 84, 83, 81, 89, 73, 79, 78, 82, 81, 79, 81, 80, 82, 81, 80, 92, 80, 88, 92, 90, 77, 81, 84, 78, 72, 86, 76, 84, 80, 78, 82, 83, 88, 86, 86, 85, 81, 81, 88, 78, 84, 78, 80, 79, 96, 81, 72, 86, 82, 79, 79, 89, 92, 81, 94, 82, 81, 81, 86, 103, 90, 88, 95, 95, 74, 78, 98, 82, 75, 77, 82, 77, 104, 84, 79, 80, 81, 93, 82, 74, 80, 86, 83, 83, 82, 70, 82, 85, 80, 80, 71, 86, 81, 80, 85, 91, 82, 83, 79, 83, 83, 84, 73, 78, 80, 64, 80, 80, 73, 82, 82, 79, 80, 82, 78, 82, 84, 78, 83, 62, 80, 81, 95, 84, 82, 80, 81, 76, 83, 80, 83, 83, 82, 58, 86, 64, 83, 83, 88, 85, 101, 81, 84, 81, 83, 99, 70, 81, 83, 82, 83, 83, 80, 82, 102, 80, 80, 77, 83, 82, 83, 82, 82, 66, 83, 83, 80, 80, 85, 75, 82, 84, 80, 85, 82, 80, 82, 83, 80, 81, 87, 83, 84, 79, 79, 81, 81, 82, 80, 80, 84, 81, 79, 79, 84, 85, 90, 88, 85, 89, 82, 82, 77, 84, 96, 71, 81, 75, 85, 76, 81, 74, 81, 82, 81, 80, 81, 76, 79, 79, 80, 77, 81, 85, 84, 81, 81, 81, 84, 81, 81, 81, 81, 81, 84, 82, 81, 80, 81, 81, 82, 80, 81, 81, 79, 69, 79, 81, 89, 81, 81, 80, 80, 79, 82, 81, 80, 80, 79, 81, 81, 81, 81, 82, 81, 81, 81, 80, 81, 81, 97, 82, 63, 81, 81, 76, 86, 81, 85, 94, 82, 77, 81, 81, 81, 81, 81, 80, 91, 79, 35, 98, 86, 77, 75, 96, 58, 86, 68, 68, 86, 73, 81, 13, 65, 72, 67, 0, 82, 82, 63, 53, 67, 81, 82, 86, 78, 77, 84, 90, 152, 56, 67, 77, 108, 177, 68, 79, 87, 77, 103, 134, 52, 83, 92, 62, 78, 129, 97, 82, 80, 98, 76, 72, 66, 74, 56, 81, 84, 96, 64, 77, 86, 95, 81, 82, 89, 77, 82, 79, 82, 79, 85, 77, 87, 93, 77, 78, 82, 83, 84, 79, 83, 82, 83, 82, 93, 81, 81, 85, 83, 82, 85, 82, 83, 81, 82, 83, 84, 83, 84, 82, 86, 82, 83, 82, 82, 83, 82, 85, 77, 82, 80, 108, 68, 78, 83, 85, 78, 82, 83, 84, 78, 77, 81, 84, 86, 82, 84, 80, 75, 72, 80, 82, 81, 82, 81, 82, 80, 72, 82, 82, 80, 82, 81, 81, 80, 86, 80, 78, 72, 81, 78, 79, 78, 82, 81, 79, 84, 77, 79, 80, 88, 77, 79, 82, 80, 79, 77, 78, 76, 78, 88, 80, 82, 78, 77, 70, 92, 84, 82, 73, 79, 76, 80, 78, 84, 88, 78, 77, 85, 83, 80, 81, 81, 89, 81, 81, 80, 84, 65, 81, 83, 83, 80, 80, 77, 79, 78, 79, 83, 58, 79, 81, 85, 81, 82, 79, 79, 90, 79, 79, 78, 84, 78, 80, 81, 79, 79, 83, 80, 82, 81, 81, 81, 80, 70, 82, 87, 79, 83, 72, 83, 82, 87, 117, 83, 73, 84, 85, 84, 75, 79, 81, 77, 117, 86, 79, 80, 79, 77, 86, 79, 83, 79, 83, 75, 67, 87, 89, 76, 77, 79, 84, 75, 83, 73, 79, 76, 81, 78, 75, 73, 75, 76, 78, 79, 75, 69, 79, 81, 79, 73, 81, 74, 76, 77, 72, 78, 81, 87, 70, 79, 77, 78, 81, 87, 89, 78, 77, 75, 76, 78, 79, 87, 90, 73, 76, 84, 83, 88, 108, 83, 84, 62, 91, 77, 52, 83, 85, 89, 81, 98, 83, 86, 84, 79, 85, 81, 81, 89, 85, 80, 81, 93, 64, 74, 87, 80, 89, 82, 84, 77, 82, 88, 78, 81, 0, 81, 86, 74, 79, 80, 88, 83, 82, 85, 80, 84, 80, 78, 78, 84, 81, 80, 78, 78, 77, 79, 85, 71, 78, 79, 83, 80, 77, 81, 79, 79, 82, 80, 83, 81, 74, 84, 82, 80, 81, 81, 83, 79, 78, 82, 81, 78, 79, 80, 81, 80, 76, 79, 79, 92, 90, 80, 83, 74, 81, 83, 81, 77, 84, 74, 83, 79, 82, 81, 89, 80, 84, 80, 79, 80, 83, 81, 81, 80, 83, 97, 81, 82, 84, 88, 78, 81, 86, 83, 82, 80, 82, 80, 86, 83, 80, 87, 79, 74, 77, 80, 80, 78, 87, 72, 82, 71, 80, 70, 67, 85, 82, 74, 81, 78, 79, 79, 45, 76, 79, 74, 18, 71, 75, 82, 79, 80, 80, 77, 86, 80, 79, 85, 80, 85, 75, 69, 80, 80, 79, 82, 83, 175, 63, 76, 69, 78, 114, 83, 92, 80, 92, 68, 83, 81, 65, 80, 84, 81, 79, 80, 79, 78, 76, 93, 85, 77, 84, 83, 86, 79, 84, 78, 82, 87, 86, 86, 81, 87, 72, 83, 81, 93, 75, 80, 84, 63, 58, 75, 80, 84, 79, 78, 82, 87, 78, 83, 68, 82, 96, 81, 85, 80, 86, 81, 81, 80, 82, 95, 85, 77, 86, 94, 80, 74, 92, 81, 81, 67, 81, 81, 81, 80, 81, 80, 81, 80, 86, 80, 83, 81, 97, 82, 81, 88, 93, 84, 83, 79, 79, 84, 81, 77, 81, 82, 84, 78, 85, 73, 78, 80, 79, 98, 82, 78, 81, 84, 79, 84, 99, 75, 78, 79, 92, 80, 100, 86, 85, 78, 82, 77, 84, 81, 79, 95, 78, 82, 92, 78, 81, 79, 83, 79, 70, 95, 71, 73, 88, 88, 81, 86, 80, 81, 44, 75, 88, 83, 86, 76, 81, 105, 68, 82, 79, 70, 81, 83, 73, 87, 109, 81, 67, 65, 129, 64, 81, 79, 84, 59, 87, 81, 76, 76, 89, 85, 77, 65, 68, 96, 83, 83, 72, 79, 79, 157, 73, 75, 50, 70, 68, 76, 70, 90, 59, 79, 66, 90, 80, 79, 73, 80, 80, 80, 85, 81, 78, 81, 73, 79, 81, 81, 81, 27, 83, 83, 84, 86, 78, 80, 81, 80, 83, 83, 73, 83, 85, 85, 88, 96, 87, 84, 76, 61, 79, 84, 83, 75, 81, 80, 83, 85, 103, 81, 72, 78, 84, 82, 73, 77, 78, 124, 91, 78, 83, 89, 80, 94, 85, 81, 82, 79, 78, 82, 81, 81, 73, 85, 82, 82, 77, 97, 88, 65, 77, 82, 85, 73, 80, 86, 76, 98, 81, 87, 81, 85, 88, 95, 82, 86, 84, 83, 79, 86, 81, 84, 77, 78, 80, 97, 84, 80, 83, 80, 83, 75, 79, 84, 77, 83, 82, 77, 65, 82, 84, 75, 78, 78, 84, 78, 75, 89, 86, 77, 77, 72, 79, 82, 81, 83, 63, 93, 80, 79, 77, 82, 85, 67, 77, 82, 91, 82, 71, 82, 81, 88, 87, 84, 81, 80, 81, 91, 78, 76, 80, 81, 81, 75, 84, 86, 80, 80, 80, 86, 85, 86, 86, 79, 81, 79, 82, 80, 78, 84, 82, 79, 72, 79, 82, 80, 85, 84, 89, 78, 73, 102, 83, 83, 78, 73, 94, 81, 81, 63, 126, 63, 84, 79, 80, 78, 85, 112, 78, 79, 68, 88, 72, 96, 80, 12, 87, 82, 81, 81, 89, 52, 96, 108, 85, 83, 76, 104, 85, 74, 86, 81, 86, 73, 71, 92, 90, 83, 85, 77, 93, 78, 86, 88, 84, 79, 148, 87, 83, 93, 73, 90, 84, 62, 73, 36, 95, 80, 76, 87, 83, 80, 82, 76, 85, 78, 83, 82, 82, 83, 79, 78, 76, 88, 76, 81, 76, 78, 81, 80, 73, 81, 81, 78, 84, 83, 81, 74, 83, 136, 84, 80, 79, 77, 124, 79, 80, 85, 78, 80, 74, 76, 82, 80, 80, 79, 90, 97, 80, 82, 84, 87, 80, 82, 78, 77, 81, 85, 82, 73, 75, 81, 79, 90, 70, 82, 84, 81, 79, 87, 77, 84, 76, 76, 82, 70, 87, 78, 73, 81, 92, 83, 83, 72, 100, 80, 81, 77, 58, 102, 84, 84, 81, 82, 75, 84, 132, 79, 83, 78, 95, 85, 81, 95, 77, 80, 97, 86, 81, 83, 82, 76, 80, 84, 93, 80, 83, 78, 80, 75, 84, 77, 84, 74, 84, 81, 81, 78, 88, 85, 84, 87, 78, 82, 95, 82, 83, 90, 79, 81, 82, 86, 79, 78, 81, 84, 80, 86, 83, 83, 81, 68, 84, 85, 83, 75, 83, 82, 88, 96, 81, 79, 86, 73, 76, 84, 87, 78, 83, 85, 85, 82, 86, 82, 79, 85, 83, 79, 81, 84, 82, 89, 78, 78, 78, 81, 80, 83, 76, 82, 78, 74, 99, 77, 80, 83, 71, 79, 78, 83, 91, 113, 86, 80, 78, 80, 80, 88, 78, 91, 83, 83, 87, 82, 81, 76, 55, 82, 78, 61, 49, 87, 87, 89, 100, 82, 80, 76, 76, 110, 79, 90, 86, 86, 64, 84, 76, 83, 75, 84, 81, 78, 88, 87, 81, 79, 79, 82, 75, 69, 86, 77, 60, 75, 80, 79, 82, 72, 87, 79, 83, 82, 81, 50, 83, 84, 85, 80, 80, 88, 84, 82, 80, 83, 77, 76, 84, 67, 81, 76, 86, 86, 82, 81, 78, 84, 87, 83, 80, 82, 80, 97, 78, 85, 76, 85, 80, 81, 81, 49, 85, 142, 79, 82, 78, 68, 81, 79, 37, 79, 90, 80, 87, 75, 75, 82, 83, 81, 93, 82, 89, 83, 80, 86, 79, 81, 76, 81, 80, 83, 82, 82, 77, 82, 80, 97, 80, 87, 81, 80, 82, 79, 81, 87, 79, 83, 82, 97, 84, 82, 84, 69, 78, 78, 82, 87, 73, 79, 86, 83, 83, 84, 91, 80, 79, 82, 86, 79, 83, 81, 79, 81, 81, 75, 76, 87, 79, 88, 81, 81, 83, 84, 84, 86, 86, 81, 102, 75, 95, 74, 89, 67, 74, 83, 98, 85, 83, 78, 74, 65, 82, 81, 66, 74, 76, 110, 81, 90, 82, 89, 76, 70, 83, 82, 84, 78, 87, 75, 88, 99, 80, 86, 77, 78, 73, 81, 83, 70, 83, 65, 79, 85, 124, 62, 82, 74, 67, 68, 88, 80, 85, 90, 49, 80, 84, 82, 83, 94, 127, 81, 79, 81, 89, 113, 90, 84, 76, 81, 79, 68, 90, 81, 128, 73, 92, 84, 79, 68, 68, 82, 81, 97, 84, 96, 83, 86, 93, 86, 78, 82, 42, 77, 86, 80, 96, 41, 74, 57, 74, 87, 55, 79, 85, 79, 82, 72, 83, 80, 95, 78, 79, 78, 83, 76, 87, 79, 84, 80, 90, 82, 79, 78, 86, 79, 71, 85, 78, 85, 79, 70, 80, 79, 77, 74, 81, 78, 82, 76, 81, 92, 82, 84, 85, 111, 81, 83, 81, 77, 87, 76, 78, 80, 86, 76, 90, 79, 80, 70, 77, 81, 84, 80, 81, 85, 84, 67, 79, 77, 83, 84, 108, 72, 78, 86, 69, 70, 90, 81, 84, 86, 87, 80, 80, 80, 92, 88, 73, 88, 85, 87, 84, 83, 144, 83, 92, 71, 83, 90, 98, 79, 87, 69, 109, 82, 84, 74, 93, 83, 81, 26, 80, 73, 84, 90, 84, 85, 93, 84, 87, 68, 124, 60, 111, 91, 140, 69, 75, 70, 66, 87, 70, 85, 67, 80, 85, 80, 88, 86, 92, 75, 76, 65, 77, 81, 75, 79, 73, 77, 73, 81, 81, 78, 83, 82, 81, 81, 81, 80, 81, 79, 82, 83, 81, 81, 81, 81, 81, 83, 95, 82, 81, 74, 81, 82, 82, 81, 82, 79, 82, 80, 81, 81, 81, 81, 82, 79, 80, 82, 81, 80, 81, 81, 82, 70, 81, 101, 81, 81, 85, 78, 81, 76, 73, 81, 85, 81, 79, 80, 81, 80, 81, 68, 83, 86, 79, 88, 71, 82, 79, 81, 79, 81, 88, 78, 75, 83, 76, 78, 80, 83, 77, 80, 88, 78, 84, 84, 81, 82, 81, 80, 80, 84, 81, 85, 81, 73, 82, 65, 76, 83, 79, 79, 84, 80, 76, 81, 81, 86, 79, 80, 101, 89, 86, 79, 79, 86, 79, 49, 86, 86, 82, 74, 80, 83, 82, 90, 90, 77, 77, 86, 79, 80, 83, 82, 79, 82, 89, 74, 127, 80, 79, 80, 81, 80, 82, 72, 79, 81, 81, 80, 81, 79, 73, 82, 75, 76, 81, 76, 73, 75, 77, 82, 72, 81, 80, 72, 78, 82, 85, 79, 80, 80, 84, 95, 77, 79, 68, 84, 80, 77, 95, 86, 75, 78, 75, 89, 77, 81, 73, 75, 71, 72, 76, 81, 82, 82, 81, 84, 81, 81, 84, 81, 79, 86, 78, 92, 84, 82, 72, 74, 80, 75, 89, 79, 81, 82, 71, 77, 75, 66, 73, 96, 87, 72, 79, 75, 94, 93, 82, 71, 83, 86, 91, 87, 76, 80, 89, 79, 88, 94, 79, 82, 91, 83, 84, 93, 93, 97, 84, 84, 76, 81, 74, 77, 81, 81, 82, 80, 105, 82, 80, 82, 80, 84, 83, 81, 99, 81, 81, 81, 81, 83, 81, 81, 77, 81, 83, 74, 81, 81, 82, 82, 83, 83, 82, 80, 79, 82, 82, 81, 79, 84, 81, 82, 82, 81, 82, 80, 82, 80, 83, 86, 82, 82, 63, 85, 82, 81, 86, 82, 82, 81, 79, 80, 80, 80, 82, 75, 77, 70, 83, 79, 84, 85, 70, 87, 80, 82, 78, 90, 88, 72, 68, 85, 93, 81, 68, 83, 80, 91, 89, 87, 81, 83, 86, 93, 81, 85, 81, 90, 85, 83, 81, 89, 86, 88, 79, 92, 90, 90, 91, 85, 81, 77, 95, 78, 79, 86, 84, 77, 72, 83, 82, 88, 85, 88, 83, 64, 65, 94, 87, 83, 78, 81, 82, 85, 58, 80, 82, 82, 81, 87, 78, 80, 72, 82, 79, 80, 81, 81, 80, 80, 79, 79, 82, 86, 81, 80, 79, 77, 81, 80, 80, 81, 80, 84, 81, 81, 82, 77, 80, 79, 81, 81, 81, 83, 78, 79, 83, 66, 80, 80, 96, 86, 84, 84, 69, 82, 82, 83, 80, 79, 84, 81, 81, 89, 73, 75, 77, 90, 78, 86, 80, 81, 83, 96, 69, 81, 84, 85, 74, 94, 80, 82, 77, 82, 70, 86, 78, 82, 81, 82, 80, 79, 88, 72, 83, 97, 39, 88, 82, 88, 95, 82, 87, 84, 83, 85, 87, 78, 80, 89, 100, 78, 70, 89, 78, 80, 81, 103, 80, 98, 112, 79, 78, 90, 75, 83, 76, 74, 79, 59, 80, 82, 80, 76, 64, 98, 87, 79, 81, 73, 82, 80, 104, 79, 102, 89, 60, 75, 83, 74, 104, 80, 81, 79, 63, 80, 73, 78, 67, 78, 87, 83, 84, 84, 74, 84, 83, 67, 78, 99, 56, 68, 73, 82, 78, 79, 81, 88, 79, 81, 85, 83, 81, 81, 85, 83, 76, 83, 83, 99, 76, 81, 81, 83, 81, 84, 58, 79, 82, 81, 81, 78, 79, 80, 66, 81, 82, 81, 81, 82, 80, 81, 85, 80, 80, 87, 81, 80, 81, 81, 80, 80, 81, 79, 81, 82, 81, 80, 80, 78, 82, 80, 80, 80, 80, 80, 80, 82, 80, 77, 79, 80, 100, 77, 82, 80, 78, 80, 81, 80, 80, 81, 83, 81, 82, 88, 87, 75, 81, 80, 93, 82, 80, 81, 83, 81, 83, 83, 82, 84, 66, 78, 90, 104, 70, 77, 80, 84, 85, 85, 81, 85, 83, 81, 86, 86, 86, 103, 82, 80, 82, 105, 102, 95, 82, 80, 85, 94, 93, 82, 83, 70, 86, 78, 70, 73, 77, 80, 76, 84, 81, 71, 83, 117, 79, 73, 75, 84, 79, 80, 79, 54, 79, 82, 82, 82, 73, 87, 80, 82, 82, 81, 81, 85, 53, 73, 85, 75, 52, 80, 81, 79, 84, 83, 81, 79, 84, 78, 78, 73, 81, 73, 78, 71, 82, 84, 80, 77, 80, 83, 83, 85, 108, 78, 81, 80, 81, 79, 74, 88, 86, 81, 83, 76, 79, 79, 78, 77, 84, 88, 73, 90, 82, 81, 80};
+ model->setOperandValue(op38, op38_init, sizeof(uint8_t) * 8192);
+ static int32_t op40_init[] = {518, 2789, 647, -259, -1601, 712, 289, 1468, 3580, 4537, 98, 1244, -59, 68, 2265, -231, 593, -1620, -6, 42, 3718, -133, 311, 2639, -60, 150, -1999, 22, -1973, -189, 28, 2487, 2570, 157, -1716, 2638, 16, 1363, -464, 290, 222, 1091, 4184, 82, 2165, 56, -628, 152, 1094, 920, 1590, -1231, 4661, 4487, 1757, 1657, 138, 3384, 734, -52, -19, 3295, 5841, 1952, 5486, 1686, 9854, -1466, 221, 1366, 710, -1652, -14, -382, -316, 2411, 4122, 2079, 1222, 1689, 1569, -35, 191, -45, -734, 1771, 1981, 1967, -40, 67, -58, 1093, 176, 8471, 2074, 1607, -1123, 416, 1634, 1678, -740, 4056, -907, 731, 52, 3104, -792, -1329, 452, 252, -877, -23, -50, -57, -2578, 5709, 32, 500, -2343, 797, 1081, 2721, 150, -15, 5426, 1879, 141, 736};
+ model->setOperandValue(op40, op40_init, sizeof(int32_t) * 128);
+ static uint8_t op41_init[] = {130, 106, 119, 96, 123, 111, 103, 111, 123, 112, 130, 112, 136, 143, 130, 132, 125, 107, 116, 123, 123, 115, 111, 139, 135, 143, 115, 95, 134, 119, 108, 111, 108, 128, 128, 95, 107, 182, 115, 96, 125, 113, 106, 96, 128, 81, 121, 113, 101, 118, 134, 119, 111, 111, 139, 99, 129, 112, 117, 92, 123, 128, 120, 109, 115, 108, 108, 111, 118, 91, 120, 136, 121, 91, 111, 138, 113, 146, 136, 87, 117, 115, 111, 94, 117, 112, 70, 118, 109, 92, 82, 107, 133, 93, 113, 109, 113, 158, 104, 115, 111, 120, 114, 128, 121, 115, 114, 108, 104, 103, 123, 86, 112, 117, 103, 117, 143, 123, 104, 105, 80, 118, 96, 110, 115, 152, 106, 114, 101, 109, 126, 86, 113, 99, 99, 118, 110, 111, 116, 105, 74, 83, 110, 143, 136, 124, 124, 106, 95, 61, 109, 104, 76, 116, 118, 116, 80, 111, 125, 112, 113, 142, 105, 110, 128, 58, 112, 129, 163, 108, 86, 65, 129, 47, 135, 80, 123, 101, 158, 133, 114, 115, 83, 103, 101, 130, 110, 141, 74, 108, 106, 113, 114, 112, 95, 122, 154, 15, 100, 128, 123, 154, 116, 106, 108, 113, 98, 104, 106, 127, 99, 117, 130, 134, 132, 134, 125, 140, 54, 106, 158, 93, 109, 107, 104, 64, 109, 101, 80, 104, 118, 79, 176, 110, 116, 116, 158, 125, 136, 149, 127, 117, 114, 119, 113, 143, 109, 138, 50, 127, 72, 103, 110, 118, 94, 120, 111, 108, 103, 110, 113, 111, 109, 110, 120, 120, 98, 117, 131, 117, 113, 99, 118, 117, 113, 115, 120, 109, 107, 107, 125, 88, 110, 134, 131, 107, 111, 111, 114, 119, 114, 126, 110, 106, 112, 113, 117, 117, 137, 106, 103, 104, 101, 114, 115, 124, 115, 106, 123, 113, 118, 127, 112, 113, 108, 114, 123, 115, 114, 113, 116, 113, 106, 113, 114, 103, 113, 115, 116, 116, 115, 99, 122, 107, 139, 150, 120, 115, 112, 131, 102, 102, 142, 123, 114, 114, 102, 103, 123, 118, 120, 113, 114, 120, 106, 124, 124, 114, 112, 126, 73, 119, 113, 114, 111, 113, 104, 114, 103, 114, 107, 116, 88, 115, 108, 112, 84, 114, 108, 112, 119, 76, 109, 112, 171, 111, 123, 109, 139, 119, 126, 121, 108, 111, 172, 112, 81, 76, 103, 143, 111, 116, 121, 137, 104, 126, 106, 252, 103, 172, 118, 70, 155, 113, 104, 109, 109, 98, 161, 129, 93, 54, 117, 110, 98, 113, 108, 120, 116, 124, 87, 117, 122, 158, 113, 123, 113, 103, 122, 101, 149, 140, 124, 139, 111, 177, 103, 110, 109, 113, 106, 116, 111, 118, 150, 116, 123, 138, 120, 107, 110, 117, 117, 153, 106, 126, 122, 78, 129, 90, 149, 99, 83, 149, 119, 110, 113, 87, 110, 112, 115, 87, 111, 121, 122, 109, 125, 142, 86, 109, 123, 120, 127, 99, 123, 149, 119, 118, 142, 121, 174, 106, 106, 90, 104, 123, 118, 122, 111, 208, 125, 121, 78, 120, 137, 108, 113, 163, 147, 140, 87, 95, 100, 108, 159, 155, 77, 144, 106, 149, 134, 91, 105, 183, 172, 72, 146, 111, 146, 118, 52, 145, 143, 103, 155, 85, 95, 108, 146, 161, 140, 105, 84, 110, 87, 121, 127, 120, 138, 151, 140, 70, 112, 160, 94, 98, 95, 94, 77, 101, 142, 75, 149, 65, 79, 112, 90, 105, 106, 147, 80, 120, 102, 111, 129, 82, 139, 117, 97, 64, 0, 100, 105, 123, 147, 118, 137, 121, 92, 89, 143, 83, 120, 119, 109, 115, 107, 179, 148, 147, 112, 85, 155, 97, 138, 74, 108, 106, 138, 150, 77, 137, 134, 84, 144, 139, 229, 88, 111, 96, 255, 129, 98, 72, 120, 133, 91, 109, 152, 141, 100, 111, 111, 119, 114, 110, 116, 114, 112, 119, 76, 120, 108, 117, 134, 101, 110, 97, 111, 120, 118, 112, 103, 18, 104, 59, 112, 156, 149, 111, 104, 115, 102, 109, 114, 130, 106, 121, 114, 116, 107, 116, 121, 119, 110, 117, 125, 117, 106, 108, 115, 110, 118, 114, 135, 115, 122, 96, 110, 127, 111, 101, 119, 114, 114, 114, 107, 113, 114, 124, 116, 114, 111, 115, 111, 129, 117, 127, 148, 95, 116, 115, 116, 150, 107, 144, 101, 110, 119, 113, 120, 112, 113, 117, 116, 91, 114, 115, 111, 133, 105, 116, 112, 146, 130, 115, 114, 113, 116, 110, 107, 112, 107, 113, 119, 125, 61, 109, 106, 97, 116, 132, 114, 117, 118, 24, 118, 112, 121, 106, 104, 137, 115, 111, 113, 110, 119, 121, 117, 118, 122, 117, 115, 96, 106, 117, 114, 121, 104, 110, 111, 135, 110, 125, 112, 107, 120, 106, 112, 113, 118, 119, 110, 128, 109, 109, 111, 141, 112, 117, 133, 130, 108, 140, 110, 114, 116, 116, 99, 106, 122, 108, 118, 131, 120, 111, 101, 116, 111, 122, 116, 116, 118, 114, 117, 114, 117, 139, 117, 112, 114, 119, 114, 104, 121, 110, 133, 114, 119, 113, 108, 108, 105, 120, 117, 128, 118, 116, 143, 109, 98, 118, 117, 112, 113, 106, 106, 116, 111, 114, 112, 115, 118, 119, 113, 117, 117, 112, 106, 113, 107, 114, 114, 116, 123, 111, 110, 115, 155, 112, 131, 113, 119, 143, 109, 112, 108, 112, 109, 148, 115, 103, 106, 110, 128, 119, 115, 114, 117, 114, 137, 112, 112, 110, 112, 108, 125, 100, 103, 108, 122, 115, 116, 115, 103, 114, 116, 115, 99, 121, 114, 113, 121, 126, 112, 107, 113, 115, 131, 158, 106, 178, 110, 115, 108, 116, 73, 96, 116, 110, 101, 117, 108, 102, 116, 125, 121, 109, 118, 112, 118, 115, 99, 113, 108, 204, 109, 113, 114, 110, 115, 119, 117, 126, 153, 110, 117, 115, 105, 116, 108, 99, 122, 129, 112, 114, 171, 113, 79, 118, 117, 93, 115, 135, 112, 112, 117, 115, 117, 103, 81, 115, 116, 104, 108, 117, 99, 112, 110, 104, 127, 118, 116, 116, 104, 140, 211, 133, 153, 110, 115, 113, 105, 108, 112, 107, 111, 121, 113, 114, 114, 111, 117, 116, 112, 119, 107, 113, 116, 103, 110, 114, 113, 114, 113, 119, 114, 103, 114, 104, 109, 123, 121, 114, 113, 114, 116, 113, 115, 93, 113, 110, 113, 115, 111, 117, 117, 121, 112, 124, 116, 112, 111, 115, 114, 108, 117, 114, 119, 123, 116, 129, 112, 107, 110, 116, 115, 114, 120, 114, 113, 108, 117, 125, 111, 114, 116, 114, 113, 118, 120, 122, 122, 115, 117, 113, 113, 120, 113, 115, 111, 115, 112, 115, 125, 108, 109, 114, 116, 119, 113, 104, 110, 117, 114, 119, 114, 121, 130, 117, 113, 111, 115, 114, 116, 117, 109, 111, 122, 116, 106, 112, 111, 105, 138, 113, 122, 115, 117, 91, 111, 112};
+ model->setOperandValue(op41, op41_init, sizeof(uint8_t) * 1152);
+ static int32_t op43_init[] = {-9119, 406, 8026, -2442, 22035, 7830, 5239, -16418, 3066, 244, 17626, -11691, -4541, 14457, 8384, 3859, -8220, -7972, -3881, -3717, 2242, -11349, -13582, 486, 3455, -2435, -1912, 3185, -10701, 3372, -3150, 6759, 10970, 6665, 16016, 2817, 14058, -556, 7218, -8752, 11568, -9512, -11502, -4894, 4890, -1483, 7517, 9618, 3061, 12316, 19276, 10143, -23717, -5637, 13399, -2423, 4260, 799, 2376, 3188, 4820, 7535, -3916, 13854, 14245, -704, -770, 1514, 3930, 745, 1798, -5644, -3217, 19698, -265, -26449, 11816, -20746, -2139, 1080, -13117, -2232, 4019, -4479, -6283, 1058, 16636, 16248, 3525, -2806, -2207, 3284, 952, 6117, 15768, -10433, 14577, -8859, -11789, 7781, 16966, 18525, -3438, 7560, 211, 3327, -807, 17839, -2552, 9905, 2938, -3158, 5764, 7175, 4135, -10571, 16909, 17722, 16820, 1561, 9099, 7644, 21318, 1901, 22449, 60, -7215, -9300};
+ model->setOperandValue(op43, op43_init, sizeof(int32_t) * 128);
+ static uint8_t op44_init[] = {117, 122, 124, 128, 124, 104, 122, 132, 111, 133, 115, 130, 122, 119, 110, 126, 129, 110, 114, 115, 128, 111, 113, 124, 128, 126, 126, 125, 121, 115, 115, 132, 118, 105, 130, 136, 125, 113, 120, 122, 117, 118, 125, 123, 103, 117, 107, 122, 104, 116, 118, 125, 119, 132, 118, 125, 121, 125, 155, 120, 125, 127, 117, 120, 112, 121, 126, 121, 121, 120, 120, 121, 112, 108, 173, 136, 126, 117, 134, 114, 131, 120, 104, 124, 124, 128, 122, 116, 116, 114, 123, 125, 132, 129, 131, 156, 116, 119, 121, 133, 120, 125, 118, 126, 125, 123, 113, 121, 116, 119, 122, 119, 113, 117, 118, 124, 123, 143, 121, 137, 142, 133, 136, 105, 127, 121, 88, 100, 127, 125, 122, 116, 119, 131, 112, 127, 112, 114, 126, 124, 123, 135, 125, 122, 106, 117, 123, 136, 138, 119, 107, 123, 126, 125, 121, 129, 128, 133, 108, 137, 85, 106, 105, 97, 125, 132, 98, 122, 115, 122, 125, 122, 124, 126, 145, 143, 107, 123, 116, 123, 114, 123, 137, 118, 116, 138, 141, 119, 128, 122, 131, 133, 120, 117, 122, 135, 119, 123, 108, 122, 126, 139, 108, 115, 123, 118, 125, 133, 125, 131, 116, 126, 125, 103, 124, 102, 120, 119, 119, 115, 122, 128, 117, 128, 105, 94, 127, 135, 121, 131, 118, 99, 126, 120, 119, 146, 115, 128, 120, 127, 127, 149, 118, 135, 131, 132, 121, 112, 121, 109, 124, 117, 130, 120, 115, 123, 144, 129, 124, 122, 122, 125, 126, 120, 115, 122, 68, 121, 115, 115, 128, 125, 130, 127, 115, 122, 117, 116, 137, 114, 122, 128, 130, 126, 129, 120, 114, 119, 121, 127, 123, 118, 119, 122, 124, 119, 119, 120, 117, 117, 119, 112, 118, 121, 121, 121, 114, 124, 128, 120, 123, 123, 132, 137, 120, 117, 124, 87, 98, 134, 120, 124, 130, 114, 124, 120, 130, 120, 123, 118, 119, 119, 110, 127, 120, 123, 114, 121, 123, 160, 111, 128, 126, 120, 117, 117, 122, 120, 122, 120, 118, 131, 125, 124, 126, 123, 122, 126, 124, 125, 120, 134, 117, 122, 125, 130, 119, 125, 132, 121, 143, 124, 132, 117, 122, 109, 128, 138, 108, 120, 125, 58, 128, 120, 139, 128, 116, 118, 131, 130, 106, 131, 97, 129, 132, 132, 118, 116, 125, 123, 108, 115, 119, 132, 120, 113, 124, 122, 119, 133, 118, 135, 122, 117, 127, 133, 125, 110, 126, 114, 137, 122, 115, 125, 95, 125, 121, 117, 124, 114, 118, 127, 119, 121, 110, 119, 124, 120, 140, 127, 124, 121, 125, 117, 122, 123, 135, 98, 140, 120, 138, 131, 114, 121, 133, 119, 111, 115, 105, 109, 128, 116, 117, 126, 122, 105, 102, 126, 125, 119, 115, 143, 121, 107, 116, 124, 106, 147, 123, 140, 112, 124, 132, 135, 127, 133, 111, 135, 117, 124, 117, 123, 107, 128, 122, 111, 122, 124, 115, 125, 129, 99, 114, 119, 117, 125, 115, 109, 141, 124, 118, 117, 121, 110, 107, 114, 119, 128, 112, 123, 116, 109, 113, 121, 126, 124, 95, 117, 125, 118, 133, 122, 108, 126, 132, 127, 125, 101, 145, 99, 134, 121, 116, 129, 139, 118, 117, 97, 124, 113, 132, 128, 128, 129, 139, 110, 122, 121, 117, 131, 109, 131, 121, 115, 116, 121, 134, 123, 115, 118, 101, 127, 125, 107, 92, 129, 126, 126, 120, 120, 124, 121, 119, 118, 116, 131, 95, 99, 119, 126, 130, 131, 113, 121, 124, 106, 134, 115, 120, 140, 122, 128, 112, 125, 100, 120, 122, 107, 130, 117, 115, 131, 126, 112, 103, 108, 140, 107, 128, 120, 132, 110, 117, 109, 149, 131, 126, 121, 102, 115, 128, 109, 125, 79, 109, 124, 122, 114, 142, 132, 120, 125, 116, 116, 122, 116, 111, 123, 117, 131, 127, 119, 125, 130, 102, 121, 130, 122, 127, 135, 124, 132, 116, 123, 123, 111, 135, 107, 106, 125, 113, 128, 119, 135, 121, 157, 126, 114, 126, 114, 120, 128, 135, 110, 127, 116, 130, 129, 126, 126, 123, 119, 115, 122, 100, 122, 116, 112, 120, 125, 122, 101, 118, 133, 133, 124, 125, 121, 122, 119, 113, 117, 118, 126, 115, 148, 111, 122, 133, 110, 113, 118, 131, 115, 129, 117, 114, 93, 122, 124, 111, 135, 111, 127, 117, 106, 121, 115, 125, 135, 123, 117, 123, 123, 118, 124, 126, 123, 136, 120, 118, 112, 131, 126, 129, 112, 112, 117, 127, 148, 124, 92, 112, 122, 124, 118, 130, 119, 132, 123, 123, 119, 131, 122, 118, 124, 132, 115, 129, 121, 124, 126, 122, 122, 118, 123, 123, 132, 122, 125, 122, 124, 125, 131, 119, 133, 130, 126, 131, 118, 121, 122, 130, 115, 126, 128, 122, 126, 123, 118, 122, 122, 125, 125, 125, 127, 119, 120, 124, 120, 121, 119, 124, 118, 127, 122, 125, 122, 125, 119, 124, 111, 130, 125, 119, 130, 122, 122, 129, 120, 118, 131, 118, 116, 127, 125, 122, 125, 118, 118, 120, 129, 125, 124, 124, 124, 120, 123, 122, 119, 118, 116, 118, 115, 120, 128, 122, 123, 121, 123, 121, 124, 125, 130, 119, 125, 122, 131, 118, 123, 124, 124, 124, 124, 130, 119, 128, 128, 123, 122, 122, 121, 122, 126, 122, 120, 129, 124, 119, 123, 131, 160, 145, 160, 107, 136, 126, 124, 122, 107, 124, 123, 120, 119, 118, 134, 122, 125, 124, 121, 116, 126, 120, 125, 123, 119, 135, 131, 110, 111, 136, 121, 118, 123, 118, 108, 133, 120, 118, 119, 107, 125, 120, 85, 124, 113, 122, 113, 131, 120, 155, 121, 122, 117, 125, 121, 100, 119, 136, 122, 145, 119, 124, 130, 90, 120, 127, 108, 118, 101, 103, 130, 116, 126, 133, 133, 118, 110, 97, 127, 127, 126, 129, 96, 120, 104, 120, 110, 123, 133, 123, 145, 105, 108, 121, 135, 125, 120, 101, 103, 115, 114, 114, 120, 92, 139, 119, 104, 126, 109, 112, 142, 128, 83, 102, 129, 120, 130, 121, 119, 144, 118, 89, 116, 123, 125, 116, 129, 126, 123, 115, 116, 126, 116, 131, 114, 119, 121, 128, 128, 149, 125, 121, 123, 125, 126, 110, 123, 112, 119, 130, 115, 101, 118, 122, 122, 125, 118, 117, 120, 118, 134, 123, 115, 145, 118, 126, 113, 115, 121, 115, 117, 120, 117, 11, 123, 126, 118, 121, 117, 130, 118, 120, 119, 119, 138, 124, 115, 125, 125, 126, 129, 128, 115, 124, 112, 119, 125, 103, 131, 117, 125, 130, 123, 108, 123, 125, 115, 124, 128, 130, 141, 122, 123, 121, 122, 161, 137, 119, 131, 126, 131, 127, 121, 119, 123, 105, 115, 142, 120, 116, 122, 124, 129, 116, 122, 120, 117, 101, 119, 126, 113, 113, 121, 83, 122, 122, 123, 124, 121, 111, 123, 121, 121, 129, 128, 119, 121, 120, 114, 129, 139, 124, 124, 121, 123, 124, 125, 128, 116, 114, 118, 119, 130, 113, 125, 126, 130, 122, 131, 121, 116, 119, 126, 121, 131, 119, 108, 123, 126, 120, 126, 135, 124, 126, 138, 121, 130, 113, 123, 126, 129, 140, 116, 129, 128, 126, 117, 127, 121, 107, 129, 122, 124, 123, 119, 107, 111, 115, 123, 124, 124, 114, 121, 120, 120, 141, 119, 121, 123, 126, 131, 121, 123, 120, 131, 127, 121, 119, 124, 126, 134, 134, 114, 138, 121, 114, 121, 121, 123, 120, 116, 123, 107, 130, 126, 125, 124, 125, 124, 127, 122, 127, 131, 122, 123, 132, 121, 128, 128, 128, 121, 128, 125, 128, 128, 131, 125, 128, 126, 125, 124, 128, 123, 113, 116, 116, 103, 125, 120, 125, 122, 117, 114, 111, 120, 107, 125, 123, 124, 132, 119, 120, 121, 123, 127, 116, 131, 128, 122, 122, 116, 127, 103, 115, 129, 124, 118, 117, 119, 127, 126, 118, 121, 123, 118, 114, 127, 127, 127, 119, 126, 125, 120, 114, 123, 123, 121, 117, 118, 124, 117, 127, 129, 113, 117, 126, 114, 119, 121, 130, 130, 153, 113, 109, 123, 122, 120, 110, 116, 120, 129, 108, 126, 119, 122, 116, 122, 125, 114, 121, 104, 117, 117, 122, 118, 115, 119, 121, 121, 145, 124, 109, 122, 129, 133, 139, 118, 117, 121, 119, 115, 122, 121, 118, 124, 126, 98, 119, 126, 120, 120, 119, 117, 109, 124, 115, 170, 103, 121, 132, 135, 101, 122, 124, 106, 193, 125, 114, 119, 119, 114, 124, 124, 113, 109, 122, 98, 133, 127, 124, 123, 124, 104, 121, 111, 131, 112, 103, 129, 126, 123, 100, 96, 113, 123, 97, 137, 120, 116, 120, 130, 121, 128, 122, 111, 125, 113, 115, 125, 119, 122, 119, 115, 114, 122, 125, 120, 118, 132, 124, 120, 94, 133, 126, 102, 119, 122, 110, 125, 122, 116, 133, 107, 124, 120, 119, 124, 118, 113, 128, 116, 131, 125, 122, 168, 114, 109, 129, 126, 133, 139, 118, 157, 99, 128, 126, 109, 132, 117, 135, 107, 134, 94, 131, 110, 125, 111, 126, 120, 130, 97, 112, 139, 106, 123, 104, 135, 125, 134, 133, 124, 116, 117, 130, 108, 123, 135, 119, 115, 123, 136, 121, 115, 121, 133, 109, 130, 111, 127, 135, 107, 123, 124, 128, 113, 125, 91, 111, 126, 96, 75, 123, 89, 119, 118, 118, 117, 127, 117, 126, 133, 95, 121, 129, 127, 125, 129, 135, 92, 107, 72, 135, 126, 120, 119, 118, 117, 129, 121, 123, 110, 118, 124, 124, 95, 126, 125, 115, 120, 119, 116, 110, 125, 124, 123, 119, 123, 122, 119, 120, 142, 117, 116, 127, 120, 114, 122, 124, 115, 124, 127, 122, 114, 128, 125, 83, 123, 118, 146, 132, 137, 118, 123, 148, 116, 127, 141, 120, 118, 120, 127, 122, 123, 120, 117, 104, 123, 110, 122, 104, 119, 77, 126, 117, 140, 115, 112, 112, 109, 115, 120, 124, 129, 135, 121, 119, 123, 110, 133, 97, 147, 92, 93, 129, 118, 123, 133, 128, 124, 119, 108, 154, 117, 120, 122, 125, 125, 133, 132, 124, 130, 114, 122, 115, 116, 124, 94, 112, 138, 130, 136, 136, 120, 112, 124, 126, 125, 118, 122, 123, 138, 114, 108, 124, 130, 122, 126, 113, 120, 120, 128, 125, 130, 127, 119, 126, 145, 108, 116, 121, 115, 133, 122, 126, 56, 41, 141, 124, 131, 120, 125, 136, 119, 119, 148, 98, 129, 120, 117, 131, 116, 117, 142, 121, 138, 121, 132, 125, 120, 140, 128, 120, 117, 85, 125, 122, 117, 139, 131, 64, 138, 139, 112, 124, 143, 120, 143, 113, 116, 127, 101, 116, 122, 122, 118, 129, 94, 118, 119, 96, 85, 123, 125, 124, 124, 126, 108, 135, 107, 130, 113, 119, 120, 123, 141, 136, 124, 110, 133, 121, 120, 121, 125, 138, 122, 124, 120, 128, 121, 115, 133, 114, 119, 104, 103, 119, 115, 113, 135, 115, 125, 122, 119, 121, 120, 126, 124, 111, 123, 115, 119, 114, 120, 109, 122, 133, 118, 120, 105, 119, 121, 118, 118, 126, 112, 140, 122, 121, 110, 119, 118, 115, 120, 112, 114, 112, 105, 128, 118, 126, 113, 121, 119, 129, 121, 121, 142, 128, 138, 113, 116, 121, 135, 124, 126, 119, 126, 120, 118, 123, 114, 119, 122, 119, 130, 120, 125, 116, 109, 117, 119, 120, 118, 121, 117, 127, 129, 125, 135, 132, 110, 113, 99, 119, 124, 109, 125, 129, 131, 120, 120, 118, 130, 136, 122, 126, 140, 113, 138, 114, 125, 115, 111, 122, 119, 125, 126, 155, 102, 118, 126, 114, 122, 118, 125, 118, 125, 118, 121, 103, 130, 119, 126, 141, 115, 119, 104, 124, 120, 126, 124, 127, 127, 120, 128, 121, 132, 113, 126, 129, 125, 119, 120, 132, 116, 107, 126, 117, 113, 144, 129, 115, 90, 149, 132, 124, 132, 126, 120, 113, 134, 137, 107, 121, 124, 122, 118, 123, 128, 127, 113, 121, 121, 118, 120, 119, 124, 122, 103, 129, 124, 128, 123, 127, 116, 122, 109, 118, 108, 119, 119, 130, 129, 122, 146, 137, 125, 111, 115, 123, 106, 119, 128, 118, 125, 123, 125, 117, 126, 119, 120, 126, 126, 132, 123, 129, 102, 114, 124, 131, 120, 115, 132, 151, 140, 113, 141, 133, 120, 124, 131, 121, 128, 135, 126, 122, 123, 117, 116, 114, 120, 117, 126, 114, 123, 127, 117, 135, 105, 150, 124, 122, 120, 122, 95, 139, 114, 123, 122, 118, 115, 116, 115, 110, 106, 136, 113, 119, 127, 135, 125, 94, 132, 140, 128, 130, 120, 114, 126, 133, 119, 123, 117, 126, 114, 127, 119, 105, 121, 117, 117, 135, 181, 119, 128, 114, 163, 127, 118, 93, 117, 129, 112, 110, 94, 123, 126, 116, 121, 115, 126, 124, 139, 138, 110, 121, 118, 104, 123, 108, 110, 121, 128, 108, 102, 119, 132, 124, 119, 124, 102, 116, 114, 125, 92, 119, 126, 120, 146, 122, 110, 115, 120, 101, 118, 118, 116, 117, 119, 120, 121, 139, 124, 119, 115, 119, 125, 114, 128, 136, 116, 108, 118, 106, 107, 129, 122, 132, 132, 123, 125, 127, 121, 135, 124, 153, 132, 126, 111, 116, 133, 131, 111, 139, 147, 126, 127, 117, 119, 124, 117, 119, 109, 112, 136, 112, 121, 126, 112, 134, 123, 165, 188, 129, 124, 112, 127, 118, 119, 117, 130, 123, 130, 124, 114, 135, 126, 117, 119, 118, 127, 121, 118, 125, 135, 130, 106, 121, 124, 114, 110, 112, 116, 127, 172, 121, 127, 116, 125, 124, 115, 120, 117, 124, 130, 119, 127, 112, 116, 129, 114, 124, 112, 113, 136, 112, 189, 114, 113, 123, 110, 122, 131, 132, 138, 119, 96, 120, 126, 119, 120, 131, 125, 131, 117, 118, 122, 126, 134, 169, 114, 124, 113, 120, 131, 115, 145, 165, 118, 92, 119, 95, 127, 128, 134, 133, 123, 124, 123, 127, 123, 119, 128, 124, 138, 114, 190, 118, 135, 119, 122, 102, 97, 163, 131, 125, 117, 129, 125, 108, 102, 131, 129, 124, 118, 122, 120, 129, 124, 101, 127, 106, 127, 108, 127, 116, 137, 124, 118, 106, 128, 104, 118, 105, 131, 115, 105, 142, 113, 118, 116, 134, 132, 134, 124, 193, 123, 117, 134, 130, 131, 132, 164, 125, 121, 121, 103, 118, 108, 120, 100, 113, 104, 103, 117, 124, 124, 114, 113, 109, 112, 128, 112, 115, 147, 116, 107, 118, 108, 119, 200, 119, 127, 111, 112, 135, 171, 121, 128, 191, 104, 132, 123, 125, 122, 126, 116, 121, 116, 109, 127, 128, 127, 122, 128, 118, 126, 129, 123, 130, 134, 117, 132, 126, 122, 121, 126, 151, 129, 116, 120, 134, 117, 125, 132, 121, 116, 123, 119, 125, 128, 126, 121, 121, 126, 122, 125, 124, 125, 127, 122, 125, 130, 120, 123, 113, 121, 132, 120, 120, 118, 123, 125, 135, 114, 130, 116, 120, 130, 127, 122, 129, 133, 131, 130, 130, 118, 118, 123, 114, 116, 119, 120, 132, 125, 133, 128, 121, 131, 123, 130, 126, 120, 125, 140, 120, 106, 125, 128, 118, 136, 130, 117, 135, 114, 122, 128, 134, 126, 134, 123, 127, 132, 136, 128, 133, 120, 127, 135, 135, 115, 124, 131, 129, 127, 117, 125, 129, 137, 122, 113, 125, 116, 124, 132, 125, 115, 120, 122, 114, 132, 118, 121, 141, 112, 121, 120, 123, 121, 125, 119, 114, 158, 121, 117, 120, 115, 124, 122, 104, 119, 134, 119, 116, 121, 113, 111, 122, 124, 120, 136, 102, 108, 121, 115, 123, 123, 168, 119, 123, 140, 121, 112, 128, 129, 138, 123, 124, 122, 128, 110, 110, 124, 129, 127, 119, 121, 124, 157, 116, 116, 120, 116, 96, 125, 119, 54, 122, 132, 130, 123, 154, 117, 119, 132, 121, 115, 119, 133, 118, 123, 109, 118, 127, 105, 121, 126, 115, 136, 123, 110, 122, 118, 125, 138, 123, 120, 125, 131, 126, 112, 124, 123, 120, 117, 118, 132, 122, 132, 106, 114, 129, 106, 125, 100, 115, 118, 124, 116, 121, 139, 130, 133, 133, 110, 129, 120, 153, 121, 124, 119, 128, 125, 121, 115, 121, 116, 128, 111, 107, 120, 117, 132, 96, 125, 120, 118, 114, 129, 127, 121, 123, 134, 126, 122, 122, 110, 120, 129, 113, 111, 126, 127, 113, 108, 110, 117, 157, 125, 130, 110, 128, 150, 118, 112, 111, 117, 113, 86, 66, 133, 126, 112, 116, 130, 124, 122, 119, 119, 127, 115, 91, 143, 143, 120, 131, 132, 139, 110, 117, 140, 131, 119, 123, 107, 114, 109, 127, 113, 108, 113, 128, 144, 116, 118, 116, 117, 127, 117, 79, 134, 115, 146, 123, 110, 94, 122, 136, 104, 139, 116, 123, 132, 126, 108, 120, 111, 124, 142, 131, 129, 118, 125, 114, 132, 127, 117, 124, 126, 125, 122, 124, 132, 128, 119, 114, 119, 92, 88, 116, 119, 125, 100, 117, 122, 119, 130, 124, 124, 100, 127, 121, 120, 120, 122, 131, 154, 122, 134, 124, 120, 128, 116, 107, 117, 128, 117, 126, 127, 125, 125, 131, 78, 130, 82, 123, 119, 128, 127, 121, 121, 128, 124, 136, 94, 43, 119, 133, 109, 110, 160, 127, 120, 87, 118, 117, 127, 121, 94, 136, 121, 123, 123, 113, 120, 117, 107, 123, 123, 123, 133, 117, 134, 85, 94, 124, 123, 120, 130, 123, 111, 98, 115, 114, 134, 118, 124, 134, 131, 104, 135, 126, 118, 103, 120, 127, 111, 134, 93, 120, 169, 124, 135, 122, 121, 121, 109, 131, 124, 123, 121, 127, 135, 130, 127, 114, 138, 125, 105, 130, 120, 118, 127, 115, 129, 157, 147, 113, 128, 120, 123, 109, 130, 127, 124, 119, 158, 122, 110, 126, 111, 129, 64, 113, 124, 123, 129, 123, 116, 128, 123, 124, 118, 129, 125, 150, 133, 121, 126, 116, 127, 113, 125, 105, 119, 93, 145, 129, 123, 126, 118, 159, 124, 120, 110, 127, 121, 120, 120, 118, 127, 127, 78, 108, 123, 124, 124, 127, 122, 109, 136, 138, 121, 139, 125, 107, 112, 122, 138, 111, 116, 117, 118, 121, 124, 120, 128, 111, 133, 126, 83, 130, 134, 127, 118, 96, 124, 122, 126, 118, 127, 125, 132, 103, 125, 132, 117, 131, 126, 110, 125, 122, 131, 127, 122, 111, 125, 121, 108, 135, 115, 129, 123, 120, 119, 125, 124, 116, 125, 112, 128, 122, 116, 118, 118, 113, 120, 105, 114, 122, 135, 83, 116, 107, 123, 124, 127, 113, 126, 128, 110, 134, 122, 156, 108, 114, 130, 126, 132, 154, 114, 118, 122, 124, 120, 119, 124, 106, 129, 125, 114, 128, 122, 135, 119, 136, 117, 106, 97, 109, 122, 121, 119, 124, 131, 123, 138, 121, 107, 139, 121, 108, 131, 125, 111, 125, 110, 122, 126, 128, 125, 123, 108, 107, 126, 124, 132, 123, 110, 117, 122, 123, 115, 111, 123, 119, 119, 144, 136, 122, 122, 126, 115, 116, 114, 115, 122, 122, 105, 131, 117, 124, 123, 117, 113, 119, 132, 125, 128, 118, 123, 119, 128, 124, 114, 110, 124, 117, 123, 126, 120, 123, 121, 127, 104, 114, 87, 139, 148, 126, 126, 119, 118, 112, 118, 111, 128, 107, 128, 123, 124, 124, 119, 115, 119, 127, 123, 114, 126, 133, 130, 125, 107, 124, 125, 119, 123, 110, 129, 135, 122, 125, 124, 119, 124, 123, 122, 129, 123, 132, 117, 120, 121, 119, 115, 132, 120, 127, 118, 118, 112, 123, 124, 121, 127, 117, 120, 117, 119, 122, 109, 110, 121, 107, 119, 114, 118, 135, 129, 112, 114, 115, 123, 115, 119, 124, 131, 125, 114, 121, 110, 124, 132, 110, 112, 115, 123, 123, 124, 135, 116, 109, 136, 144, 75, 96, 119, 119, 124, 118, 126, 122, 114, 124, 130, 121, 110, 113, 130, 125, 118, 127, 119, 125, 123, 119, 222, 120, 137, 126, 118, 135, 123, 130, 121, 118, 121, 122, 128, 144, 156, 119, 123, 118, 143, 115, 130, 123, 129, 123, 125, 131, 120, 130, 115, 130, 140, 130, 90, 119, 123, 133, 134, 129, 110, 114, 115, 136, 119, 121, 119, 122, 119, 129, 135, 122, 121, 113, 129, 111, 125, 117, 127, 106, 127, 125, 110, 123, 130, 116, 109, 137, 128, 124, 137, 113, 119, 129, 126, 128, 157, 122, 128, 124, 119, 123, 128, 129, 112, 132, 119, 112, 125, 122, 129, 115, 88, 118, 122, 120, 113, 118, 129, 97, 135, 128, 126, 124, 127, 116, 124, 141, 124, 130, 147, 93, 140, 124, 94, 122, 133, 123, 134, 119, 129, 123, 135, 119, 132, 116, 130, 131, 121, 135, 123, 118, 122, 127, 126, 131, 107, 137, 100, 135, 137, 117, 121, 119, 119, 115, 123, 107, 114, 122, 118, 114, 125, 115, 124, 123, 121, 127, 122, 112, 111, 115, 123, 167, 108, 121, 101, 116, 133, 124, 123, 123, 122, 124, 126, 125, 125, 125, 120, 124, 136, 119, 121, 130, 121, 126, 120, 124, 147, 117, 125, 121, 115, 117, 119, 106, 131, 119, 126, 115, 122, 111, 117, 117, 118, 124, 101, 119, 124, 126, 151, 122, 126, 124, 122, 122, 111, 114, 137, 130, 123, 126, 132, 120, 133, 118, 112, 118, 127, 118, 112, 116, 113, 115, 125, 124, 117, 116, 120, 121, 124, 127, 138, 120, 124, 124, 105, 121, 136, 128, 117, 113, 110, 121, 127, 119, 123, 131, 123, 122, 120, 117, 124, 121, 150, 100, 112, 115, 122, 128, 122, 122, 117, 146, 123, 138, 122, 116, 122, 133, 118, 112, 121, 122, 125, 115, 126, 119, 119, 106, 112, 120, 126, 126, 124, 121, 126, 100, 118, 113, 115, 116, 124, 121, 120, 124, 126, 174, 109, 131, 127, 122, 114, 120, 122, 119, 132, 113, 123, 127, 125, 113, 119, 120, 124, 127, 126, 107, 124, 109, 115, 115, 120, 108, 133, 127, 120, 127, 114, 119, 110, 115, 119, 124, 124, 120, 116, 114, 125, 120, 127, 124, 123, 127, 126, 103, 125, 124, 129, 115, 124, 151, 129, 124, 130, 117, 122, 107, 124, 116, 112, 109, 125, 124, 135, 127, 111, 104, 130, 119, 134, 133, 119, 110, 119, 117, 119, 112, 124, 118, 125, 96, 116, 127, 119, 152, 129, 113, 120, 116, 121, 125, 124, 132, 136, 134, 88, 130, 136, 127, 123, 116, 112, 142, 108, 101, 120, 94, 104, 133, 136, 100, 129, 81, 112, 120, 120, 134, 123, 123, 131, 123, 131, 110, 136, 126, 127, 128, 121, 121, 121, 123, 124, 95, 129, 118, 115, 132, 131, 119, 164, 98, 105, 127, 104, 125, 124, 105, 136, 147, 123, 133, 124, 121, 118, 114, 113, 125, 135, 129, 107, 114, 126, 124, 110, 126, 121, 129, 121, 131, 127, 128, 134, 120, 122, 112, 95, 123, 119, 128, 95, 117, 126, 140, 117, 128, 100, 123, 122, 122, 127, 122, 123, 109, 135, 124, 107, 118, 146, 131, 132, 94, 124, 123, 127, 112, 86, 124, 138, 116, 119, 121, 114, 121, 130, 117, 155, 112, 120, 136, 119, 120, 120, 133, 126, 121, 126, 129, 129, 145, 148, 121, 116, 128, 123, 123, 118, 119, 127, 118, 120, 91, 126, 127, 123, 117, 94, 134, 86, 135, 145, 123, 132, 136, 113, 117, 118, 131, 37, 117, 65, 123, 114, 117, 88, 121, 129, 131, 126, 122, 124, 176, 125, 125, 139, 122, 125, 120, 132, 121, 115, 116, 125, 132, 119, 129, 120, 130, 128, 141, 119, 127, 121, 124, 125, 157, 127, 119, 127, 112, 108, 120, 127, 185, 122, 112, 114, 129, 115, 115, 126, 121, 120, 121, 122, 97, 124, 115, 121, 120, 122, 123, 124, 110, 116, 106, 120, 93, 112, 117, 123, 122, 123, 133, 124, 122, 119, 102, 128, 123, 121, 111, 127, 113, 121, 123, 108, 125, 131, 118, 121, 111, 143, 130, 121, 119, 128, 130, 123, 137, 124, 118, 124, 107, 121, 125, 120, 105, 131, 118, 116, 120, 116, 127, 117, 120, 118, 114, 123, 127, 123, 133, 117, 123, 120, 117, 121, 119, 117, 107, 101, 151, 124, 124, 119, 130, 139, 111, 107, 123, 111, 120, 119, 71, 120, 125, 103, 120, 126, 138, 123, 124, 114, 130, 121, 123, 123, 124, 91, 125, 114, 121, 111, 126, 125, 123, 112, 125, 128, 131, 112, 122, 159, 125, 123, 121, 111, 126, 123, 120, 124, 115, 107, 125, 116, 131, 118, 139, 123, 120, 132, 118, 119, 110, 114, 125, 129, 115, 132, 125, 112, 118, 128, 124, 125, 125, 106, 108, 105, 132, 108, 118, 120, 124, 125, 131, 121, 129, 145, 116, 114, 113, 134, 116, 122, 124, 121, 127, 126, 107, 133, 119, 120, 103, 131, 125, 108, 111, 138, 113, 121, 126, 118, 129, 128, 124, 127, 134, 119, 119, 118, 124, 116, 104, 121, 143, 113, 124, 136, 134, 119, 117, 115, 117, 114, 141, 120, 119, 111, 118, 123, 122, 129, 115, 135, 122, 85, 124, 116, 133, 103, 113, 122, 133, 121, 120, 110, 93, 137, 119, 119, 123, 134, 121, 128, 116, 120, 113, 125, 127, 112, 122, 126, 117, 130, 127, 117, 104, 113, 115, 114, 119, 123, 120, 111, 120, 135, 125, 105, 124, 122, 125, 97, 118, 123, 105, 124, 131, 135, 103, 127, 124, 117, 108, 114, 117, 121, 111, 121, 122, 121, 128, 112, 117, 125, 134, 130, 121, 122, 119, 129, 118, 119, 125, 121, 107, 126, 130, 125, 130, 129, 114, 130, 113, 115, 125, 129, 120, 117, 130, 111, 122, 121, 121, 123, 115, 128, 109, 123, 87, 121, 117, 124, 129, 119, 132, 131, 100, 125, 127, 86, 123, 136, 118, 123, 121, 120, 122, 125, 105, 128, 128, 128, 114, 122, 131, 120, 127, 127, 108, 124, 136, 132, 126, 97, 113, 118, 122, 123, 120, 120, 128, 123, 115, 133, 121, 136, 127, 127, 127, 127, 137, 114, 141, 123, 111, 143, 123, 94, 120, 124, 115, 129, 113, 121, 116, 120, 126, 118, 114, 113, 135, 119, 130, 141, 120, 119, 178, 121, 132, 109, 111, 131, 122, 126, 104, 117, 131, 107, 132, 131, 115, 121, 147, 124, 118, 117, 123, 126, 117, 131, 121, 122, 115, 106, 120, 124, 112, 116, 131, 119, 119, 125, 124, 136, 124, 112, 132, 109, 118, 114, 135, 124, 117, 132, 126, 129, 105, 126, 126, 119, 117, 120, 109, 119, 126, 125, 125, 141, 114, 122, 115, 114, 125, 126, 123, 123, 118, 123, 123, 128, 106, 115, 108, 114, 121, 119, 104, 124, 125, 98, 121, 128, 128, 115, 122, 93, 108, 123, 114, 140, 114, 108, 125, 119, 127, 115, 126, 122, 126, 112, 121, 120, 124, 127, 117, 116, 117, 112, 120, 129, 111, 123, 114, 118, 128, 110, 86, 119, 137, 124, 124, 41, 113, 119, 147, 122, 122, 119, 125, 113, 127, 117, 118, 127, 103, 120, 119, 128, 131, 122, 130, 122, 123, 97, 134, 120, 112, 120, 124, 117, 130, 112, 103, 121, 93, 128, 123, 111, 121, 131, 119, 116, 112, 115, 126, 126, 121, 126, 114, 121, 94, 116, 153, 117, 120, 123, 118, 117, 114, 125, 117, 132, 147, 124, 120, 117, 122, 123, 112, 126, 128, 118, 112, 118, 104, 125, 129, 112, 100, 126, 128, 123, 130, 119, 115, 123, 117, 122, 119, 141, 123, 117, 123, 124, 128, 118, 128, 128, 120, 128, 108, 113, 125, 120, 132, 124, 112, 124, 123, 116, 122, 108, 124, 115, 122, 115, 105, 108, 105, 122, 116, 117, 109, 111, 119, 129, 110, 120, 110, 62, 116, 116, 110, 119, 112, 102, 124, 118, 109, 112, 115, 125, 108, 126, 121, 127, 125, 128, 130, 122, 121, 112, 126, 124, 122, 124, 120, 125, 129, 129, 121, 120, 118, 115, 125, 123, 121, 123, 117, 114, 120, 115, 124, 123, 124, 100, 118, 103, 121, 122, 126, 121, 80, 115, 123, 124, 119, 119, 116, 123, 122, 122, 124, 102, 123, 123, 117, 116, 124, 124, 130, 118, 112, 125, 135, 125, 128, 117, 121, 125, 128, 127, 123, 125, 122, 129, 119, 118, 131, 129, 121, 129, 105, 118, 122, 127, 129, 128, 124, 121, 123, 118, 123, 118, 123, 129, 121, 114, 124, 119, 128, 119, 125, 130, 116, 120, 124, 124, 122, 129, 115, 126, 116, 137, 104, 120, 117, 128, 123, 134, 112, 129, 116, 124, 117, 119, 161, 108, 121, 115, 129, 118, 123, 178, 119, 122, 166, 138, 107, 107, 121, 128, 101, 123, 126, 136, 126, 122, 109, 134, 106, 126, 121, 189, 108, 132, 124, 124, 119, 124, 162, 124, 134, 125, 119, 120, 147, 104, 115, 124, 123, 123, 121, 121, 126, 113, 120, 124, 134, 113, 96, 135, 109, 118, 109, 145, 113, 100, 106, 128, 127, 145, 133, 178, 130, 113, 121, 120, 147, 121, 118, 98, 171, 122, 118, 88, 80, 113, 118, 106, 127, 124, 109, 106, 125, 114, 104, 145, 124, 113, 118, 119, 126, 120, 139, 114, 140, 120, 116, 124, 127, 118, 123, 108, 124, 130, 129, 108, 117, 133, 144, 128, 109, 156, 136, 119, 174, 105, 109, 118, 128, 140, 113, 116, 124, 126, 123, 122, 127, 130, 116, 121, 100, 133, 110, 123, 117, 125, 117, 110, 124, 73, 126, 121, 129, 124, 129, 121, 131, 118, 126, 117, 120, 121, 119, 112, 122, 124, 119, 128, 144, 139, 123, 128, 124, 129, 59, 123, 106, 126, 115, 132, 119, 125, 122, 117, 127, 123, 116, 146, 120, 126, 123, 118, 129, 121, 130, 67, 134, 117, 115, 122, 130, 125, 106, 180, 133, 115, 134, 120, 117, 132, 129, 113, 123, 123, 120, 110, 129, 126, 118, 123, 118, 140, 124, 128, 121, 117, 117, 123, 95, 115, 126, 130, 120, 115, 116, 113, 108, 127, 115, 125, 119, 122, 114, 141, 123, 122, 130, 96, 103, 113, 118, 143, 128, 114, 126, 131, 121, 131, 102, 130, 121, 123, 117, 128, 118, 123, 129, 97, 138, 126, 122, 101, 114, 135, 133, 119, 131, 124, 121, 126, 112, 124, 120, 122, 148, 132, 117, 115, 117, 140, 122, 112, 116, 148, 116, 125, 122, 121, 120, 119, 136, 127, 130, 115, 117, 124, 128, 117, 117, 129, 118, 124, 123, 117, 130, 117, 123, 135, 106, 126, 120, 138, 115, 121, 110, 120, 129, 165, 120, 115, 131, 119, 120, 118, 119, 114, 119, 118, 126, 126, 116, 121, 117, 118, 121, 110, 126, 125, 122, 117, 109, 169, 130, 100, 134, 126, 118, 123, 125, 119, 130, 108, 119, 88, 122, 113, 118, 149, 119, 124, 121, 116, 117, 116, 121, 116, 117, 115, 134, 117, 123, 124, 81, 127, 119, 123, 119, 122, 134, 115, 126, 120, 103, 133, 119, 126, 106, 123, 102, 126, 120, 128, 112, 117, 128, 116, 123, 120, 117, 120, 125, 122, 139, 117, 120, 127, 126, 126, 122, 115, 119, 117, 111, 123, 119, 118, 104, 120, 117, 124, 95, 120, 158, 131, 125, 127, 117, 123, 118, 113, 125, 120, 128, 71, 119, 129, 129, 124, 126, 118, 122, 116, 137, 119, 121, 121, 138, 113, 125, 128, 130, 143, 125, 122, 113, 127, 124, 124, 124, 110, 120, 124, 121, 128, 111, 110, 118, 118, 122, 129, 120, 117, 112, 121, 109, 122, 112, 126, 118, 130, 110, 115, 134, 130, 123, 130, 117, 120, 117, 137, 125, 115, 142, 110, 105, 118, 119, 155, 139, 124, 117, 129, 125, 128, 119, 122, 123, 123, 123, 126, 133, 123, 120, 140, 125, 115, 104, 116, 119, 109, 117, 111, 139, 119, 121, 122, 124, 123, 117, 133, 116, 121, 125, 93, 128, 128, 121, 108, 115, 122, 117, 116, 113, 117, 119, 121, 104, 121, 120, 117, 134, 124, 115, 115, 113, 120, 114, 113, 135, 120, 114, 131, 117, 114, 118, 117, 126, 115, 124, 124, 125, 121, 112, 116, 115, 119, 118, 119, 114, 140, 123, 120, 100, 120, 114, 167, 147, 125, 124, 117, 126, 122, 118, 120, 124, 136, 120, 121, 127, 129, 116, 127, 129, 120, 123, 131, 108, 110, 117, 115, 123, 123, 118, 113, 117, 128, 124, 143, 106, 131, 115, 137, 131, 111, 127, 125, 103, 120, 112, 119, 136, 144, 114, 156, 152, 142, 128, 107, 124, 117, 118, 114, 145, 126, 105, 116, 115, 120, 129, 121, 109, 125, 116, 111, 133, 109, 116, 126, 128, 127, 105, 115, 125, 111, 118, 127, 114, 121, 121, 115, 112, 125, 105, 123, 123, 110, 125, 116, 217, 142, 127, 115, 101, 131, 114, 130, 139, 121, 111, 119, 137, 116, 123, 114, 135, 122, 112, 125, 116, 105, 106, 113, 96, 148, 115, 124, 90, 113, 131, 124, 109, 115, 124, 128, 127, 137, 115, 119, 114, 118, 108, 122, 123, 158, 108, 120, 120, 117, 107, 122, 109, 125, 124, 110, 104, 118, 111, 121, 134, 118, 114, 119, 119, 133, 109, 112, 113, 126, 123, 158, 124, 123, 125, 116, 88, 96, 132, 128, 122, 132, 121, 134, 116, 121, 117, 121, 127, 123, 116, 125, 138, 128, 126, 120, 121, 119, 119, 108, 129, 79, 127, 126, 131, 123, 123, 130, 101, 117, 129, 124, 120, 125, 126, 107, 118, 119, 126, 120, 134, 124, 131, 135, 112, 124, 161, 124, 114, 105, 133, 121, 124, 120, 130, 129, 128, 115, 126, 116, 102, 132, 128, 117, 124, 121, 126, 96, 117, 114, 121, 118, 99, 117, 125, 173, 120, 129, 122, 120, 128, 120, 123, 126, 116, 121, 118, 126, 120, 120, 115, 112, 117, 114, 117, 120, 117, 128, 115, 137, 115, 124, 121, 128, 121, 127, 109, 125, 105, 124, 115, 128, 117, 115, 121, 108, 112, 119, 108, 101, 124, 146, 131, 102, 116, 120, 130, 125, 116, 122, 174, 124, 122, 124, 102, 114, 116, 124, 112, 111, 121, 112, 117, 96, 145, 190, 92, 112, 105, 128, 125, 113, 138, 127, 174, 116, 182, 142, 110, 120, 155, 131, 151, 115, 164, 146, 120, 122, 124, 121, 126, 119, 100, 149, 120, 97, 128, 125, 125, 115, 125, 121, 175, 119, 120, 121, 143, 123, 137, 84, 125, 132, 119, 161, 159, 122, 138, 136, 127, 121, 113, 142, 117, 122, 146, 116, 131, 127, 114, 117, 110, 128, 118, 103, 90, 126, 119, 142, 120, 116, 125, 95, 145, 122, 128, 157, 124, 127, 115, 129, 117, 125, 137, 143, 130, 183, 116, 125, 114, 150, 116, 127, 110, 113, 119, 138, 117, 120, 123, 114, 119, 120, 115, 96, 125, 124, 142, 113, 120, 122, 122, 126, 119, 117, 127, 130, 124, 124, 120, 146, 120, 123, 121, 117, 121, 125, 120, 124, 123, 124, 123, 123, 125, 122, 120, 124, 124, 119, 127, 120, 124, 122, 122, 124, 122, 136, 108, 122, 131, 124, 123, 123, 119, 126, 122, 115, 123, 118, 122, 136, 122, 118, 123, 122, 123, 120, 122, 122, 122, 126, 123, 124, 122, 118, 125, 123, 123, 122, 123, 121, 193, 126, 118, 126, 118, 121, 119, 116, 157, 118, 120, 124, 124, 122, 119, 121, 129, 135, 119, 122, 122, 120, 123, 111, 122, 122, 117, 123, 125, 124, 120, 122, 121, 125, 133, 121, 139, 121, 136, 122, 122, 122, 124, 122, 123, 119, 123, 119, 126, 119, 124, 128, 138, 114, 121, 126, 124, 124, 120, 131, 144, 118, 124, 123, 124, 167, 109, 127, 99, 121, 121, 191, 112, 126, 97, 122, 134, 126, 120, 127, 158, 122, 177, 135, 131, 109, 123, 129, 150, 126, 130, 136, 116, 119, 136, 128, 123, 129, 156, 106, 107, 114, 113, 122, 122, 126, 129, 124, 134, 96, 121, 119, 114, 109, 106, 106, 117, 139, 128, 117, 109, 124, 72, 124, 121, 167, 114, 126, 119, 132, 139, 116, 127, 110, 114, 122, 117, 70, 100, 118, 116, 128, 128, 134, 120, 107, 123, 121, 114, 117, 118, 158, 114, 124, 107, 145, 144, 115, 135, 131, 127, 156, 128, 141, 132, 102, 121, 126, 126, 117, 120, 129, 116, 108, 131, 128, 123, 129, 121, 113, 121, 130, 136, 108, 122, 125, 124, 126, 109, 120, 122, 126, 116, 122, 118, 126, 122, 115, 156, 119, 125, 111, 130, 124, 114, 115, 130, 113, 124, 116, 122, 124, 124, 125, 123, 114, 107, 121, 121, 122, 117, 123, 113, 113, 126, 114, 116, 122, 125, 116, 116, 124, 123, 124, 124, 134, 115, 124, 128, 117, 130, 122, 118, 121, 115, 115, 127, 118, 124, 124, 121, 117, 119, 121, 121, 120, 106, 121, 123, 126, 108, 122, 126, 111, 119, 122, 122, 126, 118, 119, 120, 124, 115, 122, 117, 121, 121, 124, 135, 116, 123, 136, 121, 121, 134, 157, 118, 117, 119, 118, 129, 125, 118, 122, 124, 129, 118, 126, 124, 120, 121, 129, 123, 122, 116, 123, 126, 138, 81, 123, 120, 112, 120, 131, 120, 117, 126, 118, 105, 121, 123, 118, 123, 122, 164, 121, 126, 121, 127, 117, 117, 137, 120, 113, 107, 122, 126, 120, 123, 114, 123, 130, 123, 122, 124, 127, 121, 113, 134, 120, 122, 123, 117, 134, 130, 123, 116, 122, 91, 122, 121, 122, 122, 122, 124, 123, 98, 119, 130, 106, 126, 136, 123, 115, 124, 120, 125, 123, 138, 117, 120, 115, 102, 115, 133, 118, 126, 121, 122, 118, 128, 138, 122, 111, 113, 130, 120, 115, 118, 123, 121, 128, 123, 134, 123, 116, 124, 124, 122, 127, 127, 120, 128, 132, 115, 125, 118, 123, 118, 120, 118, 119, 125, 116, 121, 113, 111, 128, 64, 119, 148, 130, 118, 174, 111, 126, 130, 120, 120, 66, 125, 117, 146, 114, 124, 118, 129, 126, 132, 125, 127, 115, 100, 126, 129, 131, 122, 136, 133, 123, 126, 132, 141, 129, 115, 132, 128, 120, 132, 133, 119, 112, 128, 121, 119, 120, 107, 128, 125, 49, 113, 58, 127, 121, 125, 127, 82, 119, 114, 124, 110, 121, 121, 119, 115, 134, 120, 124, 125, 117, 126, 121, 132, 121, 127, 109, 121, 134, 132, 124, 112, 114, 130, 129, 112, 125, 117, 126, 144, 134, 124, 125, 129, 145, 126, 128, 54, 132, 54, 133, 121, 111, 123, 121, 118, 123, 119, 101, 94, 123, 112, 126, 131, 118, 132, 126, 124, 130, 123, 121, 107, 120, 131, 137, 114, 126, 110, 137, 56, 134, 119, 119, 136, 115, 122, 102, 120, 122, 125, 123, 122, 128, 121, 124, 124, 88, 128, 122, 116, 129, 122, 121, 124, 123, 124, 130, 124, 125, 114, 129, 128, 138, 121, 125, 122, 119, 125, 123, 121, 119, 119, 121, 121, 123, 122, 155, 95, 140, 124, 138, 119, 122, 123, 121, 126, 123, 117, 93, 125, 103, 125, 124, 126, 127, 123, 120, 121, 122, 123, 120, 122, 120, 125, 120, 121, 124, 122, 126, 125, 123, 110, 124, 121, 119, 119, 120, 121, 123, 125, 124, 120, 124, 123, 122, 81, 123, 127, 121, 129, 128, 124, 127, 155, 122, 120, 122, 128, 120, 122, 124, 124, 124, 125, 123, 77, 124, 117, 124, 124, 121, 107, 124, 121, 121, 123, 114, 115, 122, 118, 124, 118, 121, 140, 124, 113, 116, 129, 107, 93, 75, 85, 127, 125, 133, 122, 114, 120, 117, 117, 126, 101, 136, 125, 92, 117, 123, 115, 136, 127, 136, 138, 110, 129, 107, 117, 94, 128, 121, 131, 111, 113, 105, 94, 130, 127, 109, 117, 110, 118, 99, 118, 127, 119, 126, 135, 125, 110, 124, 132, 119, 111, 116, 105, 122, 138, 118, 140, 111, 120, 133, 110, 118, 129, 123, 132, 104, 114, 131, 110, 121, 127, 109, 126, 127, 99, 128, 120, 126, 118, 129, 125, 110, 119, 112, 109, 120, 126, 120, 116, 108, 136, 140, 138, 139, 120, 105, 100, 111, 122, 114, 111, 131, 123, 102, 112, 110, 118, 119, 131, 111, 121, 132, 119, 140, 117, 98, 130, 126, 92, 164, 110, 120, 121, 126, 101, 129, 124, 121, 146, 125, 138, 124, 124, 120, 132, 122, 122, 125, 118, 90, 160, 113, 129, 123, 129, 124, 126, 124, 121, 113, 103, 117, 112, 126, 112, 152, 130, 122, 116, 107, 109, 123, 119, 115, 117, 120, 114, 107, 128, 120, 113, 123, 121, 119, 119, 126, 116, 142, 117, 126, 118, 127, 117, 132, 127, 118, 126, 105, 109, 121, 134, 133, 127, 115, 124, 164, 123, 122, 120, 111, 127, 117, 124, 127, 125, 131, 130, 108, 117, 123, 123, 123, 119, 121, 123, 146, 107, 123, 121, 117, 128, 119, 119, 153, 129, 115, 138, 109, 116, 104, 124, 119, 120, 112, 120, 134, 121, 116, 111, 128, 120, 143, 117, 123, 121, 118, 132, 116, 129, 125, 132, 128, 116, 143, 115, 115, 118, 136, 120, 122, 124, 105, 120, 124, 130, 115, 123, 115, 120, 115, 122, 122, 121, 122, 113, 124, 107, 114, 121, 124, 128, 124, 112, 131, 115, 103, 125, 121, 123, 117, 114, 118, 121, 121, 152, 113, 115, 119, 130, 127, 128, 121, 110, 128, 121, 122, 85, 120, 118, 123, 143, 120, 117, 113, 125, 107, 119, 124, 141, 113, 114, 114, 120, 136, 120, 120, 122, 127, 123, 126, 121, 125, 122, 109, 131, 123, 127, 120, 122, 125, 128, 120, 122, 134, 126, 130, 130, 102, 113, 127, 152, 127, 122, 126, 119, 103, 120, 114, 126, 118, 118, 116, 118, 119, 118, 115, 120, 127, 129, 135, 129, 123, 133, 133, 119, 124, 99, 130, 124, 113, 126, 122, 119, 113, 121, 129, 113, 114, 109, 121, 114, 117, 122, 119, 124, 130, 123, 113, 120, 193, 115, 169, 119, 119, 118, 104, 119, 116, 127, 120, 112, 110, 122, 123, 116, 120, 123, 112, 124, 109, 128, 117, 123, 120, 129, 121, 116, 116, 93, 125, 118, 112, 118, 120, 120, 102, 116, 120, 82, 129, 124, 118, 109, 111, 123, 124, 116, 116, 113, 117, 111, 119, 107, 84, 128, 126, 126, 122, 123, 119, 132, 122, 119, 122, 124, 130, 113, 121, 122, 107, 129, 113, 124, 127, 132, 122, 122, 99, 114, 102, 120, 118, 125, 117, 123, 122, 113, 121, 116, 127, 118, 118, 151, 118, 128, 119, 118, 114, 112, 116, 123, 104, 117, 129, 144, 125, 120, 113, 127, 123, 119, 126, 118, 116, 142, 125, 126, 129, 116, 118, 120, 125, 118, 133, 113, 128, 126, 121, 123, 145, 123, 148, 143, 124, 132, 121, 128, 122, 129, 123, 137, 121, 129, 125, 124, 118, 126, 117, 126, 115, 128, 124, 126, 121, 116, 119, 125, 118, 131, 111, 136, 122, 123, 127, 120, 111, 130, 113, 125, 127, 125, 132, 123, 119, 130, 123, 118, 129, 118, 118, 122, 124, 129, 127, 117, 123, 120, 140, 124, 126, 121, 129, 123, 128, 115, 124, 118, 129, 121, 122, 127, 126, 125, 126, 120, 127, 119, 129, 122, 120, 122, 128, 126, 136, 116, 127, 119, 124, 128, 124, 146, 119, 133, 115, 118, 114, 117, 121, 129, 130, 125, 114, 115, 128, 115, 113, 124, 104, 131, 90, 100, 149, 127, 123, 123, 128, 100, 121, 117, 128, 129, 129, 125, 125, 128, 122, 124, 121, 127, 125, 124, 127, 138, 127, 135, 119, 126, 145, 125, 126, 137, 122, 124, 127, 129, 125, 127, 121, 115, 131, 116, 127, 124, 116, 123, 125, 107, 120, 122, 126, 116, 121, 130, 104, 107, 130, 135, 124, 121, 133, 127, 122, 124, 128, 133, 133, 110, 130, 129, 125, 145, 124, 119, 109, 136, 113, 125, 118, 117, 91, 128, 126, 124, 134, 116, 127, 127, 95, 137, 114, 124, 120, 129, 122, 116, 114, 120, 142, 128, 133, 132, 135, 118, 122, 115, 134, 122, 101, 123, 129, 125, 123, 117, 66, 113, 130, 112, 115, 137, 139, 123, 121, 126, 130, 122, 122, 127, 120, 136, 116, 128, 123, 119, 126, 124, 121, 127, 128, 114, 124, 125, 132, 128, 120, 126, 123, 126, 124, 125, 129, 123, 119, 122, 131, 122, 120, 122, 119, 117, 118, 139, 122, 124, 129, 124, 130, 128, 120, 118, 119, 122, 122, 116, 122, 120, 124, 121, 125, 129, 120, 118, 122, 120, 127, 138, 126, 121, 122, 115, 122, 124, 141, 142, 122, 125, 127, 123, 119, 123, 122, 124, 110, 132, 125, 121, 120, 124, 121, 115, 110, 127, 119, 128, 123, 122, 121, 116, 124, 119, 124, 130, 123, 124, 125, 126, 113, 134, 120, 115, 125, 122, 113, 125, 119, 123, 128, 123, 132, 125, 131, 123, 120, 132, 128, 115, 118, 132, 126, 114, 121, 122, 131, 106, 135, 135, 114, 128, 123, 107, 129, 118, 123, 118, 116, 113, 117, 121, 114, 123, 117, 133, 123, 112, 120, 138, 119, 120, 109, 104, 123, 135, 120, 117, 122, 118, 139, 134, 126, 102, 125, 116, 112, 114, 118, 126, 122, 145, 127, 146, 122, 126, 118, 132, 122, 137, 152, 122, 125, 126, 79, 119, 117, 123, 122, 126, 113, 120, 128, 112, 116, 117, 126, 103, 119, 120, 125, 119, 122, 124, 117, 116, 131, 116, 112, 107, 111, 119, 126, 122, 125, 96, 116, 119, 115, 117, 119, 131, 138, 124, 107, 127, 121, 109, 130, 116, 122, 109, 115, 126, 117, 130, 127, 117, 115, 128, 121, 125, 109, 124, 122, 125, 115, 129, 119, 103, 133, 126, 120, 131, 121, 114, 113, 128, 127, 116, 119, 123, 125, 122, 115, 107, 125, 119, 123, 116, 120, 136, 118, 129, 120, 119, 121, 115, 120, 106, 112, 128, 119, 111, 112, 116, 123, 112, 133, 106, 120, 124, 120, 123, 122, 110, 119, 126, 121, 60, 113, 125, 130, 127, 131, 121, 121, 124, 113, 109, 120, 129, 127, 145, 119, 111, 123, 126, 108, 110, 124, 131, 124, 125, 120, 135, 136, 113, 124, 128, 104, 120, 115, 115, 122, 125, 112, 120, 113, 110, 103, 124, 120, 120, 131, 122, 157, 99, 121, 125, 89, 129, 128, 100, 127, 131, 126, 114, 125, 125, 107, 126, 119, 120, 122, 121, 147, 124, 135, 113, 124, 116, 139, 117, 116, 103, 131, 112, 111, 153, 124, 126, 133, 123, 122, 129, 114, 117, 128, 119, 133, 121, 110, 123, 124, 99, 121, 123, 127, 125, 115, 127, 125, 119, 122, 119, 113, 116, 125, 121, 131, 112, 123, 120, 123, 123, 130, 129, 129, 109, 119, 117, 117, 110, 109, 121, 116, 120, 124, 142, 125, 113, 125, 124, 121, 134, 127, 143, 128, 122, 129, 108, 124, 114, 122, 127, 124, 132, 115, 111, 112, 125, 117, 139, 121, 114, 121, 118, 121, 123, 128, 106, 107, 122, 124, 118, 113, 125, 126, 121, 126, 128, 122, 118, 126, 131, 116, 127, 122, 119, 126, 100, 117, 116, 128, 129, 123, 124, 132, 130, 125, 115, 124, 119, 116, 118, 136, 124, 123, 157, 103, 114, 120, 122, 93, 135, 118, 122, 111, 119, 126, 162, 152, 146, 139, 99, 120, 119, 121, 113, 107, 120, 125, 121, 112, 99, 151, 116, 107, 117, 129, 112, 110, 107, 117, 162, 125, 152, 135, 121, 119, 152, 110, 141, 112, 120, 117, 142, 122, 122, 116, 110, 118, 110, 106, 107, 110, 120, 120, 125, 123, 139, 125, 135, 120, 124, 120, 118, 119, 119, 125, 137, 123, 127, 148, 110, 128, 138, 117, 121, 106, 96, 107, 113, 124, 117, 117, 128, 113, 103, 120, 123, 115, 121, 82, 117, 108, 116, 94, 120, 125, 126, 129, 112, 104, 115, 130, 124, 123, 102, 125, 105, 120, 100, 118, 115, 165, 122, 106, 119, 125, 116, 138, 114, 99, 116, 152, 126, 128, 123, 116, 132, 121, 98, 118, 117, 126, 132, 128, 126, 121, 125, 127, 130, 119, 129, 94, 119, 127, 120, 118, 116, 124, 116, 122, 119, 121, 158, 126, 120, 122, 129, 120, 127, 119, 120, 122, 125, 119, 127, 123, 124, 114, 122, 122, 128, 94, 141, 127, 157, 125, 112, 122, 125, 123, 120, 118, 125, 118, 120, 110, 124, 129, 120, 121, 121, 120, 118, 123, 132, 129, 125, 123, 123, 123, 124, 121, 120, 129, 120, 118, 88, 122, 117, 121, 89, 123, 128, 127, 128, 128, 123, 122, 122, 124, 122, 120, 123, 149, 95, 112, 127, 124, 126, 121, 126, 127, 112, 124, 121, 115, 122, 125, 125, 128, 95, 127, 138, 124, 123, 120, 119, 124, 138, 127, 117, 120, 130, 123, 129, 125, 125, 111, 145, 105, 124, 120, 118, 120, 122, 119, 121, 121, 107, 115, 120, 122, 123, 120, 127, 118, 126, 126, 118, 134, 129, 76, 133, 103, 129, 142, 132, 125, 129, 119, 125, 121, 117, 127, 126, 126, 121, 120, 123, 121, 116, 112, 124, 130, 116, 120, 133, 122, 121, 127, 123, 115, 124, 115, 116, 125, 122, 121, 120, 127, 115, 119, 121, 121, 132, 130, 122, 132, 117, 118, 120, 119, 123, 128, 119, 122, 119, 123, 122, 125, 121, 106, 127, 120, 122, 129, 117, 117, 127, 122, 127, 110, 123, 114, 121, 120, 118, 126, 119, 128, 118, 126, 125, 114, 117, 120, 121, 127, 126, 117, 128, 122, 124, 124, 99, 120, 120, 129, 127, 128, 117, 127, 124, 107, 128, 118, 123, 123, 123, 120, 120, 124, 124, 121, 114, 88, 123, 119, 132, 124, 118, 120, 128, 137, 117, 123, 140, 120, 126, 122, 131, 125, 122, 124, 119, 124, 128, 80, 101, 127, 120, 127, 120, 114, 88, 116, 123, 125, 121, 123, 123, 120, 117, 133, 127, 104, 120, 122, 121, 125, 122, 121, 121, 125, 113, 106, 138, 124, 126, 126, 139, 144, 125, 130, 96, 121, 125, 116, 111, 130, 127, 117, 117, 119, 122, 126, 125, 92, 121, 124, 125, 119, 121, 122, 103, 97, 121, 129, 120, 132, 123, 129, 88, 121, 124, 124, 110, 127, 124, 120, 136, 117, 109, 141, 97, 126, 121, 103, 120, 141, 119, 148, 123, 121, 116, 128, 126, 113, 125, 120, 68, 123, 120, 125, 88, 122, 115, 122, 118, 110, 95, 116, 145, 125, 116, 116, 119, 112, 106, 129, 161, 126, 121, 93, 125, 130, 101, 123, 122, 115, 127, 114, 117, 120, 121, 122, 126, 140, 114, 114, 115, 125, 122, 125, 127, 117, 125, 129, 124, 126, 119, 123, 131, 115, 116, 118, 114, 129, 105, 120, 129, 134, 132, 119, 129, 120, 114, 109, 113, 121, 121, 115, 126, 121, 140, 128, 114, 121, 124, 109, 120, 122, 122, 114, 114, 124, 147, 116, 123, 115, 110, 151, 115, 117, 123, 137, 117, 126, 125, 139, 116, 129, 120, 103, 120, 129, 129, 119, 117, 134, 118, 113, 126, 112, 119, 115, 121, 121, 123, 124, 115, 103, 121, 142, 126, 120, 124, 123, 116, 111, 127, 107, 108, 124, 125, 113, 122, 136, 113, 127, 128, 124, 129, 131, 94, 103, 108, 117, 123, 123, 120, 124, 128, 132, 117, 57, 124, 113, 127, 117, 123, 159, 133, 121, 123, 113, 120, 114, 117, 126, 128, 123, 126, 127, 120, 107, 122, 118, 135, 118, 112, 126, 129, 144, 160, 117, 121, 120, 118, 119, 75, 105, 123, 132, 121, 131, 125, 114, 124, 112, 119, 152, 142, 118, 117, 123, 107, 116, 122, 136, 119, 113, 136, 125, 146, 129, 117, 104, 125, 108, 127, 119, 115, 115, 110, 122, 124, 122, 122, 143, 119, 96, 116, 125, 126, 121, 120, 128, 113, 116, 128, 110, 119, 120, 123, 125, 117, 126, 120, 130, 122, 119, 103, 104, 116, 102, 125, 145, 124, 120, 111, 130, 130, 130, 117, 120, 127, 106, 160, 121, 114, 121, 118, 117, 122, 126, 129, 128, 122, 110, 122, 140, 123, 121, 122, 110, 129, 112, 116, 126, 110, 126, 128, 132, 109, 104, 113, 125, 112, 122, 135, 120, 120, 135, 125, 133, 127, 122, 122, 117, 137, 119, 115, 127, 130, 119, 114, 117, 128, 117, 120, 129, 116, 130, 123, 127, 124, 111, 111, 125, 114, 126, 128, 116, 125, 88, 125, 117, 116, 121, 115, 115, 136, 121, 120, 119, 125, 145, 118, 108, 133, 118, 134, 137, 122, 135, 112, 124, 118, 114, 129, 118, 132, 111, 126, 118, 124, 112, 114, 120, 122, 116, 121, 108, 119, 130, 108, 128, 122, 130, 125, 124, 139, 129, 108, 120, 137, 121, 118, 129, 128, 115, 118, 122, 125, 119, 125, 121, 109, 153, 107, 130, 118, 127, 123, 125, 124, 121, 125, 114, 121, 85, 97, 69, 123, 126, 126, 122, 121, 114, 127, 117, 121, 117, 136, 122, 125, 124, 120, 136, 134, 139, 115, 75, 126, 128, 121, 126, 122, 101, 124, 134, 122, 147, 128, 126, 130, 123, 123, 124, 112, 117, 117, 115, 100, 123, 129, 77, 125, 119, 120, 132, 108, 117, 125, 157, 126, 121, 132, 125, 126, 113, 117, 120, 126, 118, 118, 120, 147, 120, 114, 120, 129, 116, 125, 129, 109, 126, 119, 116, 116, 120, 120, 131, 123, 121, 123, 117, 109, 118, 113, 124, 111, 125, 149, 115, 126, 115, 116, 114, 127, 128, 110, 123, 119, 122, 99, 119, 118, 118, 132, 123, 131, 123, 104, 119, 141, 118, 142, 117, 108, 115, 139, 113, 111, 117, 115, 128, 145, 139, 141, 53, 142, 50, 136, 124, 130, 128, 136, 128, 134, 122, 125, 146, 131, 127, 128, 131, 121, 120, 110, 118, 112, 119, 119, 118, 127, 120, 122, 116, 114, 120, 125, 125, 104, 132, 134, 177, 111, 139, 129, 119, 138, 118, 122, 120, 130, 123, 117, 128, 114, 114, 116, 123, 129, 111, 106, 123, 136, 69, 132, 113, 116, 116, 122, 124, 108, 111, 113, 132, 118, 107, 119, 132, 128, 118, 126, 112, 112, 98, 122, 114, 126, 121, 119, 137, 118, 126, 125, 130, 133, 120, 57, 125, 112, 108, 129, 105, 108, 123, 140, 190, 128, 121, 146, 121, 112, 130, 131, 118, 134, 115, 133, 125, 175, 125, 115, 120, 117, 125, 113, 129, 119, 122, 115, 113, 99, 122, 123, 120, 115, 126, 123, 137, 126, 127, 101, 123, 128, 125, 122, 126, 119, 131, 90, 124, 125, 114, 108, 111, 131, 113, 119, 131, 163, 128, 116, 125, 138, 120, 117, 124, 114, 124, 114, 190, 109, 125, 124, 130, 122, 122, 119, 125, 119, 126, 121, 122, 122, 112, 125, 115, 125, 121, 115, 123, 115, 126, 119, 115, 118, 105, 130, 121, 123, 128, 101, 137, 120, 116, 115, 121, 118, 110, 111, 122, 116, 129, 112, 120, 120, 115, 118, 128, 119, 120, 116, 120, 108, 124, 116, 119, 110, 109, 126, 99, 115, 116, 114, 80, 116, 119, 125, 119, 124, 123, 115, 130, 109, 130, 107, 116, 134, 124, 121, 124, 143, 123, 108, 118, 115, 121, 119, 105, 110, 125, 127, 128, 114, 130, 116, 111, 116, 121, 128, 120, 112, 91, 132, 136, 122, 122, 106, 121, 123, 115, 119, 115, 119, 118, 118, 123, 109, 128, 129, 123, 177, 123, 120, 118, 121, 126, 120, 144, 129, 133, 116, 118, 122, 115, 115, 121, 120, 126, 127, 119, 127, 97, 119, 125, 110, 147, 115, 129, 114, 128, 125, 122, 122, 113, 123, 119, 119, 108, 119, 138, 121, 148, 121, 121, 123, 125, 122, 121, 131, 142, 133, 114, 118, 114, 116, 122, 122, 125, 117, 115, 114, 133, 129, 125, 103, 92, 120, 151, 116, 117, 124, 120, 107, 118, 136, 118, 126, 133, 122, 118, 124, 113, 122, 125, 138, 124, 125, 127, 125, 125, 128, 122, 122, 126, 125, 128, 128, 123, 125, 139, 126, 142, 128, 125, 125, 117, 123, 125, 121, 120, 128, 127, 124, 122, 131, 121, 125, 136, 123, 136, 123, 124, 125, 126, 132, 121, 123, 118, 124, 122, 126, 122, 127, 126, 124, 115, 129, 118, 115, 117, 117, 126, 124, 124, 124, 124, 127, 126, 123, 126, 125, 124, 125, 125, 121, 127, 127, 134, 131, 121, 122, 129, 126, 130, 133, 114, 134, 124, 118, 121, 124, 125, 115, 125, 126, 115, 122, 129, 125, 124, 129, 123, 128, 123, 121, 128, 127, 122, 127, 122, 136, 125, 133, 122, 127, 129, 137, 126, 125, 130, 126, 130, 118, 122, 122, 121, 124, 118, 109, 114, 109, 123, 121, 127, 133, 136, 112, 128, 108, 148, 106, 94, 114, 123, 123, 120, 135, 119, 143, 121, 111, 122, 98, 91, 129, 99, 124, 124, 119, 117, 144, 121, 126, 122, 118, 121, 117, 123, 111, 148, 120, 143, 129, 123, 115, 116, 116, 119, 101, 122, 108, 136, 121, 121, 109, 118, 140, 106, 124, 134, 149, 122, 113, 126, 132, 129, 102, 132, 123, 119, 132, 115, 120, 145, 100, 118, 125, 114, 115, 122, 144, 138, 119, 125, 119, 130, 119, 128, 154, 115, 121, 96, 119, 121, 108, 125, 118, 118, 131, 146, 134, 105, 123, 124, 110, 143, 123, 105, 119, 94, 115, 127, 122, 128, 120, 113, 117, 123, 107, 125, 108, 118, 129, 131, 119, 130, 121, 126, 124, 117, 123, 112, 122, 108, 103, 123, 201, 121, 123, 115, 126, 122, 101, 122, 115, 125, 107, 126, 128, 117, 122, 133, 101, 150, 124, 129, 127, 130, 108, 104, 131, 129, 129, 136, 120, 128, 125, 115, 125, 111, 136, 122, 125, 120, 126, 122, 114, 62, 137, 118, 125, 125, 110, 126, 130, 114, 117, 123, 112, 121, 133, 119, 116, 108, 109, 135, 114, 118, 122, 107, 121, 118, 131, 123, 127, 131, 122, 108, 126, 124, 123, 125, 115, 111, 122, 132, 119, 122, 124, 111, 117, 121, 117, 117, 118, 121, 112, 119, 142, 133, 121, 123, 120, 124, 114, 138, 124, 86, 112, 130, 145, 136, 116, 120, 119, 114, 119, 119, 121, 107, 112, 104, 114, 161, 113, 147, 140, 108, 121, 107, 126, 114, 136, 112, 115, 114, 116, 97, 115, 128, 124, 125, 128, 115, 126, 119, 119, 101, 92, 123, 126, 95, 115, 111, 125, 120, 99, 118, 121, 110, 136, 118, 124, 107, 120, 110, 115, 112, 112, 112, 140, 113, 139, 107, 102, 121, 129, 124, 109, 146, 105, 129, 111, 121, 123, 107, 120, 126, 111, 115, 114, 113, 92, 114, 122, 125, 100, 135, 119, 130, 94, 111, 121, 113, 127, 148, 114, 117, 120, 115, 119, 129, 121, 162, 102, 121, 105, 97, 120, 121, 96, 122, 128, 119, 118, 116, 114, 108, 113, 115, 137, 108, 137, 164, 114, 94, 148, 109, 122, 133, 116, 99, 128, 127, 112, 124, 105, 117, 122, 129, 109, 126, 124, 110, 122, 134, 104, 122, 117, 114, 125, 123, 129, 124, 124, 111, 126, 124, 120, 120, 122, 109, 122, 109, 109, 113, 117, 127, 130, 131, 110, 133, 114, 115, 124, 121, 122, 125, 121, 128, 120, 127, 113, 118, 125, 127, 128, 124, 126, 125, 116, 130, 119, 119, 115, 121, 120, 124, 123, 143, 98, 113, 128, 114, 126, 119, 111, 132, 134, 113, 133, 128, 119, 124, 116, 118, 127, 135, 126, 113, 121, 118, 122, 117, 122, 126, 125, 118, 124, 132, 127, 130, 128, 122, 120, 114, 124, 118, 129, 122, 110, 109, 128, 117, 130, 114, 128, 128, 121, 118, 120, 112, 107, 127, 113, 122, 124, 125, 130, 128, 118, 124, 127, 133, 128, 123, 134, 119, 127, 157, 120, 117, 118, 123, 133, 126, 125, 113, 139, 116, 129, 119, 115, 105, 123, 127, 131, 118, 124, 116, 96, 114, 118, 114, 92, 117, 139, 111, 121, 130, 120, 117, 105, 125, 124, 116, 112, 117, 109, 111, 117, 110, 105, 117, 116, 122, 127, 122, 128, 129, 102, 132, 120, 125, 118, 136, 108, 116, 112, 118, 124, 113, 119, 126, 121, 116, 123, 118, 106, 124, 112, 118, 114, 136, 126, 121, 102, 123, 125, 121, 132, 155, 119, 114, 115, 120, 126, 136, 133, 199, 97, 118, 118, 109, 124, 129, 106, 117, 121, 135, 123, 112, 118, 113, 127, 111, 116, 114, 78, 140, 114, 107, 80, 113, 121, 154, 121, 108, 114, 122, 103, 125, 120, 126, 109, 150, 122, 124, 131, 110, 129, 130, 111, 120, 127, 115, 130, 130, 114, 117, 123, 118, 127, 132, 147, 124, 123, 119, 129, 116, 112, 107, 123, 125, 131, 126, 119, 120, 116, 124, 120, 126, 126, 137, 144, 135, 129, 141, 137, 118, 147, 120, 124, 80, 113, 137, 111, 142, 122, 131, 93, 110, 119, 123, 122, 118, 122, 120, 119, 122, 124, 77, 122, 126, 124, 117, 90, 121, 125, 135, 123, 120, 110, 120, 124, 113, 118, 128, 126, 118, 115, 120, 132, 119, 83, 118, 124, 118, 120, 131, 118, 128, 121, 120, 134, 118, 129, 128, 119, 120, 120, 116, 105, 126, 110, 126, 123, 118, 113, 122, 119, 120, 91, 111, 144, 130, 125, 121, 107, 124, 129, 130, 116, 116, 119, 110, 122, 119, 118, 130, 120, 116, 102, 130, 123, 123, 118, 120, 116, 128, 130, 134, 120, 65, 118, 121, 134, 126, 122, 154, 108, 122, 126, 122, 122, 118, 136, 127, 119, 123, 119, 124, 120, 103, 102, 119, 104, 124, 136, 122, 121, 106, 168, 115, 122, 125, 121, 125, 157, 121, 124, 122, 108, 123, 121, 115, 120, 123, 124, 153, 114, 116, 123, 117, 132, 116, 116, 120, 129, 120, 118, 125, 112, 118, 127, 124, 107, 111, 119, 120, 113, 123, 125, 104, 123, 130, 124, 96, 117, 125, 125, 122, 105, 119, 118, 122, 120, 128, 122, 127, 117, 127, 118, 118, 115, 120, 129, 125, 125, 113, 126, 115, 105, 120, 111, 109, 137, 119, 137, 122, 126, 109, 125, 133, 80, 148, 101, 122, 120, 127, 124, 121, 151, 123, 109, 123, 127, 130, 116, 137, 133, 121, 125, 120, 101, 116, 121, 123, 129, 125, 124, 102, 134, 142, 124, 122, 117, 124, 167, 124, 119, 118, 124, 117, 121, 122, 117, 113, 120, 116, 129, 127, 104, 121, 118, 129, 114, 125, 126, 138, 128, 128, 121, 122, 122, 127, 121, 121, 129, 130, 127, 119, 100, 112, 134, 121, 115, 105, 123, 119, 112, 119, 112, 116, 124, 114, 118, 128, 120, 111, 114, 124, 120, 137, 122, 118, 125, 131, 126, 128, 109, 124, 131, 128, 111, 123, 124, 117, 123, 121, 121, 121, 115, 122, 121, 142, 109, 146, 119, 131, 116, 118, 129, 122, 162, 110, 117, 126, 126, 124, 119, 95, 137, 124, 121, 128, 118, 121, 122, 118, 113, 127, 119, 115, 113, 118, 123, 121, 128, 120, 118, 124, 128, 123, 124, 122, 111, 122, 126, 123, 119, 129, 121, 126, 115, 120, 121, 119, 123, 123, 122, 122, 125, 122, 119, 173, 119, 122, 121, 128, 118, 124, 108, 129, 112, 120, 123, 124, 114, 120, 102, 139, 126, 120, 118, 121, 130, 123, 126, 125, 130, 122, 112, 121, 125, 111, 124, 104, 104, 122, 124, 99, 147, 123, 118, 108, 122, 123, 122, 129, 126, 132, 115, 130, 127, 130, 111, 125, 120, 124, 128, 120, 95, 123, 136, 127, 126, 119, 121, 122, 122, 120, 125, 119, 118, 124, 119, 128, 123, 120, 139, 121, 130, 118, 119, 124, 125, 120, 132, 126, 131, 130, 109, 117, 113, 122, 126, 128, 125, 126, 114, 127, 130, 127, 120, 121, 125, 120, 120, 121, 126, 122, 122, 132, 127, 113, 119, 128, 132, 130, 126, 115, 125, 123, 127, 122, 116, 120, 116, 120, 129, 127, 117, 118, 141, 124, 114, 119, 126, 131, 121, 124, 129, 119, 126, 116, 116, 106, 139, 122, 118, 132, 123, 127, 123, 124, 126, 129, 120, 126, 116, 122, 125, 126, 122, 119, 122, 125, 118, 123, 124, 126, 116, 120, 117, 123, 121, 112, 121, 117, 119, 125, 127, 127, 120, 120, 124, 128, 125, 128, 126, 133, 115, 128, 128, 123, 124, 131, 125, 126, 118, 123, 130, 130, 130, 130, 123, 123, 125, 129, 125, 124, 116, 125, 127, 116, 125, 113, 129, 122, 109, 129, 123, 114, 123, 126, 109, 122, 119, 121, 124, 122, 128, 124, 141, 121, 122, 118, 122, 116, 116, 121, 130, 120, 121, 112, 128, 167, 123, 121, 126, 115, 124, 117, 122, 117, 123, 116, 112, 123, 121, 120, 124, 116, 124, 119, 97, 115, 115, 128, 120, 122, 131, 113, 115, 133, 131, 122, 124, 127, 123, 119, 121, 124, 121, 119, 122, 160, 127, 121, 126, 111, 119, 122, 119, 119, 123, 126, 127, 93, 118, 129, 115, 133, 116, 125, 112, 116, 125, 123, 122, 120, 126, 120, 114, 126, 119, 122, 123, 125, 124, 113, 114, 127, 119, 123, 130, 117, 124, 127, 132, 152, 119, 97, 118, 124, 121, 125, 131, 124, 117, 127, 124, 118, 121, 106, 129, 126, 133, 113, 120, 111, 119, 119, 116, 119, 108, 117, 120, 134, 122, 116, 125, 124, 118, 118, 129, 122, 110, 121, 122, 123, 123, 119, 113, 124, 120, 120, 124, 118, 108, 117, 128, 115, 118, 129, 121, 125, 103, 119, 103, 133, 127, 117, 130, 117, 114, 125, 119, 121, 120, 126, 112, 124, 122, 114, 115, 120, 120, 126, 121, 132, 127, 123, 141, 121, 111, 115, 127, 130, 136, 128, 109, 115, 124, 133, 126, 115, 121, 114, 129, 121, 177, 126, 122, 120, 121, 122, 118, 111, 120, 132, 94, 126, 123, 125, 118, 119, 120, 124, 125, 112, 131, 119, 129, 126, 122, 132, 125, 115, 230, 136, 96, 117, 124, 129, 136, 124, 128, 123, 115, 127, 115, 150, 129, 123, 128, 124, 124, 124, 119, 119, 114, 127, 136, 113, 119, 124, 131, 113, 107, 122, 114, 125, 110, 121, 109, 103, 111, 113, 137, 124, 121, 109, 118, 158, 102, 115, 124, 125, 122, 120, 106, 125, 102, 121, 121, 120, 131, 129, 133, 123, 132, 123, 102, 82, 119, 128, 123, 112, 122, 106, 119, 119, 125, 123, 115, 123, 106, 113, 115, 116, 117, 136, 122, 123, 109, 89, 129, 117, 112, 123, 126, 136, 125, 115, 123, 128, 126, 122, 123, 110, 129, 151, 113, 119, 124, 124, 113, 113, 119, 122, 116, 125, 118, 120, 122, 117, 131, 112, 128, 125, 102, 129, 126, 82, 124, 105, 129, 148, 123, 111, 115, 127, 95, 122, 106, 121, 114, 119, 116, 110, 123, 119, 121, 124, 119, 119, 117, 125, 99, 128, 115, 120, 121, 123, 117, 126, 138, 159, 118, 117, 114, 99, 127, 126, 137, 114, 116, 120, 125, 121, 134, 117, 122, 120, 124, 125, 119, 93, 110, 120, 126, 121, 81, 119, 119, 110, 128, 124, 126, 125, 130, 109, 116, 113, 126, 132, 136, 128, 114, 124, 113, 125, 120, 164, 125, 117, 121, 123, 137, 122, 119, 60, 118, 124, 113, 121, 112, 125, 129, 118, 118, 106, 124, 119, 109, 127, 138, 120, 118, 120, 121, 118, 112, 110, 114, 93, 102, 118, 122, 125, 118, 128, 110, 118, 128, 135, 106, 123, 116, 123, 116, 135, 132, 130, 129, 119, 107, 134, 113, 127, 134, 118, 124, 122, 124, 125, 111, 125, 124, 122, 112, 115, 126, 124, 126, 140, 127, 121, 123, 134, 113, 123, 127, 119, 115, 121, 127, 121, 112, 121, 121, 122, 123, 100, 122, 118, 110, 127, 118, 134, 126, 131, 119, 121, 122, 123, 123, 123, 131, 131, 124, 138, 126, 122, 128, 122, 120, 121, 125, 122, 124, 126, 126, 123, 125, 132, 112, 105, 125, 115, 132, 120, 125, 101, 92, 142, 127, 122, 123, 124, 121, 132, 123, 139, 119, 120, 121, 122, 126, 116, 137, 150, 123, 127, 126, 115, 120, 117, 132, 135, 124, 121, 92, 127, 126, 124, 126, 123, 94, 127, 137, 117, 122, 146, 113, 123, 120, 109, 123, 120, 122, 120, 122, 113, 123, 116, 114, 121, 117, 134, 85, 120, 127, 132, 138, 121, 121, 130, 97, 112, 49, 125, 127, 127, 121, 114, 135, 119, 118, 139, 117, 130, 121, 118, 132, 45, 134, 50, 119, 129, 143, 118, 129, 130, 126, 116, 134, 126, 123, 131, 119, 128, 127, 135, 121, 134, 107, 123, 112, 117, 133, 120, 122, 118, 132, 129, 132, 124, 110, 129, 119, 153, 91, 127, 138, 112, 128, 130, 121, 128, 131, 120, 124, 129, 120, 119, 121, 127, 111, 123, 120, 128, 129, 64, 117, 122, 120, 114, 125, 131, 130, 122, 142, 126, 124, 115, 125, 127, 120, 125, 122, 116, 128, 108, 120, 116, 126, 131, 130, 131, 127, 132, 119, 130, 109, 124, 45, 127, 117, 114, 121, 132, 135, 124, 127, 95, 123, 141, 114, 122, 131, 119, 117, 117, 110, 139, 128, 109, 135, 119, 125, 125, 136, 119, 127, 123, 123, 126, 130, 122, 131, 122, 116, 112, 124, 124, 117, 114, 125, 127, 138, 131, 127, 132, 127, 113, 121, 115, 104, 123, 114, 74, 128, 99, 115, 119, 135, 128, 142, 135, 124, 123, 132, 125, 110, 130, 116, 129, 124, 124, 113, 116, 132, 123, 104, 126, 117, 139, 130, 125, 126, 122, 106, 134, 117, 128, 123, 124, 137, 129, 118, 114, 118, 121, 123, 126, 122, 132, 100, 116, 69, 128, 131, 138, 128, 120, 127, 110, 120, 125, 125, 133, 121, 119, 123, 128, 126, 124, 131, 124, 141, 125, 147, 120, 122, 110, 120, 129, 0, 110, 154, 116, 124, 121, 123, 139, 127, 119, 130, 136, 121, 127, 127, 119, 128, 122, 130, 119, 124, 125, 127, 125, 128, 127, 117, 117, 124, 134, 128, 120, 124, 126, 126, 130, 121, 129, 124, 122, 119, 125, 122, 128, 122, 127, 122, 124, 134, 121, 123, 144, 122, 136, 133, 121, 122, 120, 130, 126, 117, 123, 120, 123, 123, 123, 130, 123, 122, 116, 123, 124, 124, 121, 122, 120, 123, 126, 122, 121, 119, 127, 126, 123, 125, 123, 120, 123, 121, 122, 125, 127, 127, 123, 124, 120, 120, 125, 135, 116, 137, 127, 118, 122, 122, 126, 115, 122, 121, 119, 130, 118, 129, 126, 120, 122, 123, 120, 122, 127, 126, 121, 130, 126, 126, 129, 129, 120, 128, 120, 136, 125, 119, 122, 127, 125, 118, 126, 118, 119, 113, 133, 119, 122, 119, 108, 118, 121, 126, 116, 133, 116, 127, 117, 122, 108, 132, 118, 132, 127, 125, 119, 125, 125, 123, 138, 126, 134, 97, 124, 122, 87, 129, 141, 99, 114, 121, 119, 121, 126, 124, 120, 123, 151, 113, 119, 121, 115, 112, 120, 127, 117, 110, 112, 131, 120, 137, 124, 120, 135, 110, 125, 119, 130, 116, 119, 150, 123, 126, 124, 108, 116, 118, 117, 128, 129, 118, 118, 115, 121, 123, 137, 115, 121, 119, 123, 123, 117, 121, 124, 117, 118, 103, 148, 128, 116, 124, 131, 118, 107, 127, 117, 123, 155, 122, 132, 113, 118, 118, 153, 124, 133, 124, 111, 124, 114, 123, 103, 117, 115, 134, 115, 105, 118, 121, 129, 117, 122, 124, 121, 115, 119, 121, 125, 114, 121, 123, 143, 102, 129, 125, 129, 120, 112, 112, 119, 103, 122, 127, 123, 122, 125, 117, 140, 102, 135, 112, 126, 124, 131, 113, 103, 114, 123, 117, 120, 119, 122, 110, 125, 152, 119, 114, 114, 125, 121, 103, 127, 118, 118, 119, 144, 145, 116, 120, 124, 120, 119, 115, 122, 124, 107, 119, 119, 105, 126, 121, 145, 124, 110, 117, 112, 117, 150, 120, 129, 118, 124, 115, 92, 93, 137, 120, 116, 127, 119, 127, 128, 126, 149, 104, 126, 125, 115, 122, 134, 111, 110, 119, 130, 111, 117, 120, 121, 129, 126, 120, 107, 112, 140, 123, 94, 114, 120, 122, 122, 127, 109, 130, 121, 107, 126, 134, 115, 123, 123, 118, 126, 120, 128, 114, 134, 133, 122, 117, 120, 125, 124, 121, 119, 132, 124, 103, 115, 123, 122, 125, 127, 119, 128, 119, 104, 122, 134, 136, 119, 115, 122, 119, 134, 141, 129, 114, 118, 116, 125, 125, 120, 108, 121, 132, 128, 128, 118, 133, 121, 130, 123, 138, 118, 115, 133, 119, 114, 125, 130, 103, 107, 128, 105, 136, 120, 113, 105, 104, 111, 130, 127, 119, 128, 126, 124, 121, 145, 114, 129, 124, 120, 125, 121, 129, 146, 125, 131, 124, 138, 120, 136, 146, 120, 121, 117, 113, 118, 117, 115, 114, 123, 110, 103, 143, 122, 125, 142, 123, 108, 126, 110, 127, 115, 119, 118, 124, 112, 127, 114, 126, 124, 117, 115, 118, 123, 120, 112, 124, 122, 122, 122, 124, 116, 113, 120, 122, 121, 125, 122, 122, 124, 123, 117, 129, 121, 124, 123, 120, 110, 123, 111, 116, 123, 117, 120, 121, 120, 122, 124, 118, 124, 119, 118, 118, 120, 120, 114, 123, 117, 123, 123, 118, 117, 117, 121, 118, 122, 121, 122, 116, 123, 125, 119, 123, 127, 118, 130, 124, 127, 124, 125, 119, 121, 119, 124, 124, 124, 119, 124, 122, 121, 117, 118, 117, 119, 125, 109, 119, 122, 121, 113, 119, 117, 115, 125, 118, 124, 122, 125, 114, 121, 127, 119, 122, 128, 124, 119, 122, 121, 124, 125, 117, 123, 117, 115, 120, 124, 121, 125, 109, 122, 118, 121, 120, 122, 119, 123, 121, 118, 122, 123, 78, 119, 112, 112, 133, 124, 111, 106, 132, 123, 159, 124, 122, 114, 122, 121, 120, 117, 115, 121, 127, 115, 123, 132, 125, 132, 101, 141, 114, 117, 142, 123, 115, 126, 112, 131, 118, 109, 119, 115, 114, 125, 118, 119, 128, 120, 120, 125, 89, 118, 118, 116, 124, 125, 133, 121, 150, 135, 92, 113, 115, 164, 129, 132, 112, 119, 125, 117, 119, 118, 160, 117, 116, 120, 132, 111, 115, 112, 114, 128, 118, 116, 115, 109, 124, 152, 122, 111, 117, 120, 124, 128, 135, 131, 119, 133, 111, 124, 120, 115, 124, 128, 126, 134, 123, 128, 117, 112, 115, 118, 118, 123, 104, 120, 109, 130, 134, 111, 117, 118, 122, 127, 118, 125, 120, 142, 131, 111, 105, 124, 120, 125, 142, 116, 125, 106, 78, 126, 116, 123, 121, 93, 111, 129, 118, 108, 152, 108, 108, 123, 111, 124, 128, 119, 119, 121, 111, 120, 117, 112, 113, 119, 141, 119, 122, 107, 139, 122, 122, 121, 114, 128, 115, 121, 113, 152, 116, 103, 128, 123, 126, 124, 117, 129, 99, 128, 116, 118, 207, 137, 117, 109, 135, 90, 125, 148, 155, 116, 107, 111, 113, 105, 128, 117, 123, 123, 125, 113, 115, 143, 118, 120, 118, 118, 119, 136, 104, 104, 125, 120, 128, 117, 122, 113, 145, 105, 123, 108, 119, 119, 124, 129, 142, 161, 114, 125, 101, 121, 123, 94, 107, 147, 114, 136, 117, 127, 119, 137, 120, 131, 128, 123, 116, 115, 127, 159, 122, 130, 113, 110, 111, 96, 154, 79, 178, 146, 122, 126, 113, 102, 109, 122, 117, 122, 104, 122, 127, 133, 113, 129, 114, 122, 116, 127, 132, 119, 117, 140, 116, 151, 129, 116, 124, 113, 101, 114, 147, 122, 125, 121, 122, 119, 102, 107, 128, 117, 116, 113, 113, 115, 127, 117, 120, 115, 114, 111, 111, 114, 112, 122, 131, 140, 123, 111, 108, 126, 125, 176, 185, 100, 113, 107, 120, 119, 144, 129, 125, 97, 145, 126, 126, 119, 115, 146, 111, 86, 115, 145, 106, 126, 118, 120, 96, 110, 126, 127, 178, 114, 126, 145, 122, 113, 189, 106, 111, 130, 115, 97, 113, 99, 116, 136, 127, 138, 117, 134, 121, 117, 115, 153, 131, 126, 169, 116, 126, 122, 129, 109, 132, 124, 102, 141, 126, 143, 126, 119, 121, 106, 123, 117, 107, 112, 112, 135, 119, 100, 127, 120, 122, 128, 131, 135, 122, 123, 136, 136, 120, 97, 127, 112, 136, 117, 123, 135, 93, 124, 117, 101, 120, 103, 122, 120, 126, 111, 124, 116, 123, 118, 157, 115, 129, 121, 131, 111, 122, 118, 126, 99, 143, 122, 118, 127, 122, 116, 135, 106, 100, 113, 109, 130, 119, 121, 114, 134, 123, 102, 99, 128, 130, 120, 121, 155, 119, 109, 111, 132, 124, 126, 116, 140, 109, 132, 123, 131, 116, 120, 123, 130, 117, 121, 103, 120, 102, 133, 119, 111, 125, 118, 118, 130, 127, 101, 122, 112, 117, 128, 102, 102, 142, 129, 104, 124, 120, 122, 120, 124, 120, 122, 130, 114, 133, 123, 117, 122, 121, 126, 117, 122, 122, 121, 120, 120, 128, 127, 125, 124, 120, 117, 124, 116, 126, 124, 121, 120, 120, 129, 120, 131, 121, 121, 118, 118, 133, 118, 124, 123, 120, 126, 124, 120, 121, 126, 122, 120, 121, 119, 121, 122, 116, 121, 119, 122, 121, 125, 121, 138, 117, 120, 120, 119, 121, 124, 120, 132, 139, 122, 123, 126, 120, 123, 125, 116, 120, 122, 128, 114, 116, 126, 122, 112, 125, 123, 122, 116, 123, 123, 116, 120, 118, 120, 124, 120, 128, 124, 117, 116, 120, 114, 136, 120, 123, 123, 122, 122, 122, 121, 122, 120, 115, 129, 119, 126, 124, 121, 124, 131, 121, 122, 132, 134, 119, 117, 118, 123, 124, 121, 127, 121, 120, 126, 109, 123, 120, 116, 119, 126, 123, 121, 129, 114, 123, 119, 121, 120, 122, 105, 126, 101, 106, 116, 118, 125, 126, 126, 118, 133, 120, 114, 123, 123, 122, 122, 118, 119, 123, 118, 116, 118, 123, 123, 121, 125, 121, 122, 115, 123, 117, 125, 119, 125, 119, 129, 119, 130, 115, 122, 128, 115, 124, 118, 113, 124, 127, 114, 129, 125, 119, 125, 113, 119, 121, 131, 124, 104, 120, 120, 121, 113, 121, 128, 118, 119, 125, 129, 124, 128, 126, 113, 119, 114, 124, 121, 123, 120, 112, 117, 124, 113, 124, 118, 123, 125, 122, 117, 121, 121, 103, 128, 113, 121, 124, 123, 126, 123, 113, 121, 127, 128, 124, 45, 135, 131, 122, 125, 121, 125, 115, 121, 119, 148, 127, 122, 116, 141, 123, 121, 119, 121, 122, 157, 134, 137, 119, 109, 121, 121, 120, 137, 122, 119, 127, 118, 120, 118, 109, 124, 126, 117, 124, 106, 127, 117, 109, 100, 121, 120, 124, 119, 125, 118, 125, 109, 119, 94, 120, 125, 122, 116, 118, 123, 121, 117, 116, 122, 99, 126, 124, 149, 122, 119, 121, 122, 118, 124, 114, 119, 119, 116, 113, 120, 121, 120, 116, 115, 121, 126, 121, 124, 121, 120, 124, 123, 154, 129, 122, 123, 164, 118, 121, 114, 134, 121, 119, 121, 126, 120, 119, 123, 127, 119, 123, 118, 126, 119, 124, 125, 121, 120, 115, 110, 111, 122, 120, 122, 122, 121, 123, 126, 121, 123, 120, 127, 122, 119, 128, 145, 126, 121, 114, 109, 115, 121, 120, 104, 133, 126, 108, 123, 123, 120, 117, 125, 128, 121, 121, 117, 126, 155, 165, 128, 119, 131, 118, 119, 149, 118, 128, 121, 126, 122, 119, 125, 120, 103, 107, 131, 119, 120, 126, 123, 125, 118, 125, 123, 140, 131, 103, 118, 119, 117, 74, 77, 123, 110, 137, 126, 125, 118, 116, 108, 116, 122, 120, 123, 133, 116, 120, 153, 129, 123, 120, 128, 119, 112, 133, 121, 126, 126, 126, 128, 125, 118, 152, 116, 120, 127, 110, 121, 121, 126, 124, 117, 115, 91, 122, 128, 124, 114, 114, 90, 116, 102, 125, 119, 114, 124, 121, 109, 120, 122, 181, 123, 121, 111, 138, 119, 127, 125, 127, 125, 122, 125, 120, 139, 145, 124, 123, 118, 120, 125, 118, 121, 117, 131, 105, 114, 122, 123, 121, 138, 116, 145, 133, 119, 134, 122, 129, 120, 126, 122, 129, 123, 134, 135, 124, 117, 123, 130, 126, 124, 113, 121, 130, 125, 123, 122, 132, 123, 129, 111, 139, 120, 113, 130, 119, 111, 134, 107, 108, 116, 115, 121, 131, 127, 123, 119, 114, 117, 133, 111, 123, 125, 133, 134, 123, 128, 116, 136, 125, 123, 122, 135, 126, 129, 133, 116, 124, 123, 115, 117, 134, 123, 118, 126, 121, 110, 117, 131, 121, 131, 112, 113, 128, 129, 123, 140, 121, 113, 133, 113, 142, 120, 134, 119, 120, 111, 124, 117, 115, 130, 128, 111, 149, 126, 116, 121, 129, 115, 126, 116, 148, 115, 127, 119, 121, 116, 125, 120, 116, 129, 121, 112, 137, 125, 108, 124, 128, 122, 113, 122, 110, 118, 93, 123, 107, 116, 114, 136, 130, 121, 103, 114, 130, 117, 117, 122, 112, 117, 120, 102, 130, 111, 120, 123, 118, 118, 113, 117, 96, 103, 120, 126, 107, 131, 123, 130, 121, 126, 120, 105, 119, 122, 97, 123, 127, 120, 125, 144, 120, 117, 111, 114, 117, 124, 131, 122, 121, 108, 122, 105, 115, 124, 124, 121, 124, 123, 123, 146, 98, 119, 127, 108, 133, 127, 130, 162, 128, 114, 122, 108, 130, 128, 121, 110, 124, 105, 110, 135, 128, 121, 114, 141, 120, 130, 128, 120, 115, 125, 117, 117, 109, 127, 125, 108, 129, 123, 123, 119, 127, 123, 128, 137, 115, 117, 119, 127, 122, 118, 125, 127, 128, 136, 118, 158, 133, 162, 116, 125, 120, 123, 126, 121, 130, 124, 122, 119, 116, 123, 123, 118, 118, 122, 144, 137, 121, 55, 124, 121, 124, 124, 123, 106, 86, 134, 123, 138, 121, 119, 110, 126, 121, 126, 127, 122, 123, 119, 86, 126, 123, 75, 127, 120, 120, 121, 109, 117, 116, 121, 126, 120, 131, 121, 120, 129, 111, 132, 119, 117, 123, 128, 165, 125, 98, 127, 119, 115, 122, 125, 131, 115, 121, 121, 112, 122, 123, 124, 121, 124, 122, 122, 112, 129, 114, 125, 109, 115, 71, 120, 126, 125, 116, 123, 124, 135, 120, 113, 123, 121, 116, 127, 125, 122, 124, 123, 179, 107, 141, 116, 119, 129, 120, 124, 116, 121, 103, 125, 125, 121, 126, 118, 135, 122, 123, 121, 125, 120, 119, 131, 130, 120, 121, 107, 127, 108, 120, 134, 123, 123, 92, 122, 119, 112, 121, 120, 124, 123, 132, 125, 127, 130, 113, 120, 128, 128, 118, 124, 105, 120, 122, 122, 121, 124, 128, 122, 110, 127, 122, 122, 121, 103, 117, 121, 114, 121, 129, 124, 122, 124, 118, 120, 156, 116, 121, 119, 124, 119, 124, 122, 118, 131, 108, 119, 120, 117, 123, 130, 123, 126, 114, 123, 130, 126, 104, 128, 127, 120, 114, 117, 121, 117, 135, 127, 125, 117, 122, 116, 127, 115, 110, 91, 132, 127, 131, 129, 92, 127, 126, 132, 127, 116, 124, 122, 122, 127, 135, 118, 125, 129, 107, 135, 120, 130, 124, 131, 98, 122, 116, 110, 123, 125, 107, 118, 127, 116, 121, 114, 123, 110, 122, 125, 119, 120, 111, 121, 129, 127, 124, 115, 115, 114, 120, 115, 121, 127, 127, 131, 121, 124, 125, 125, 126, 136, 121, 122, 126, 109, 119, 114, 127, 106, 131, 124, 126, 127, 132, 121, 122, 132, 133, 134, 125, 117, 122, 119, 123, 125, 119, 124, 121, 113, 106, 125, 122, 122, 127, 136, 122, 127, 122, 107, 128, 129, 130, 127, 139, 122, 117, 142, 128, 127, 118, 90, 135, 131, 132, 124, 130, 132, 121, 127, 124, 116, 120, 127, 127, 121, 122, 114, 128, 121, 124, 122, 123, 93, 140, 119, 127, 134, 122, 123, 127, 125, 122, 116, 139, 124, 123, 125, 123, 126, 126, 123, 119, 125, 119, 126, 125, 125, 124, 143, 123, 143, 131, 123, 124, 123, 125, 128, 123, 125, 126, 128, 126, 124, 133, 122, 121, 134, 126, 132, 126, 121, 128, 124, 133, 126, 125, 119, 125, 128, 131, 120, 121, 123, 121, 118, 125, 115, 122, 122, 114, 125, 122, 123, 127, 120, 119, 128, 127, 123, 134, 126, 122, 131, 130, 123, 125, 141, 133, 122, 121, 125, 125, 128, 130, 119, 139, 110, 124, 118, 124, 127, 111, 124, 119, 114, 121, 125, 128, 119, 123, 124, 125, 125, 132, 129, 132, 124, 130, 118, 143, 125, 131, 130, 123, 122, 128, 124, 124, 126, 123, 116, 123, 129, 119, 120, 113, 127, 113, 120, 119, 106, 118, 121, 127, 130, 126, 119, 115, 131, 121, 120, 129, 116, 123, 123, 127, 124, 119, 124, 118, 132, 120, 107, 120, 111, 115, 115, 122, 125, 122, 119, 103, 116, 118, 123, 119, 123, 137, 122, 115, 117, 119, 125, 122, 125, 122, 125, 121, 123, 131, 121, 118, 123, 130, 128, 129, 122, 125, 118, 119, 124, 125, 116, 108, 131, 118, 121, 123, 117, 118, 131, 119, 117, 117, 126, 114, 124, 127, 124, 120, 114, 125, 126, 119, 126, 129, 130, 116, 127, 132, 126, 117, 138, 123, 114, 123, 124, 110, 123, 115, 117, 124, 116, 119, 122, 117, 125, 123, 113, 118, 112, 125, 128, 122, 112, 107, 124, 107, 127, 133, 117, 158, 121, 123, 117, 126, 125, 122, 126, 128, 138, 120, 122, 120, 89, 124, 120, 122, 120, 121, 118, 119, 123, 124, 116, 133, 120, 122, 125, 123, 121, 125, 125, 124, 119, 115, 126, 124, 121, 123, 125, 86, 119, 106, 117, 124, 124, 120, 123, 121, 149, 120, 154, 124, 99, 125, 122, 123, 121, 122, 120, 125, 120, 123, 121, 121, 121, 123, 126, 126, 125, 122, 121, 119, 118, 126, 122, 125, 123, 92, 120, 123, 120, 148, 124, 119, 121, 121, 121, 119, 126, 128, 126, 215, 127, 124, 121, 128, 122, 125, 128, 126, 123, 125, 124, 123, 122, 123, 126, 124, 120, 117, 125, 117, 120, 115, 123, 119, 123, 124, 118, 128, 115, 120, 122, 125, 124, 116, 121, 122, 124, 118, 126, 124, 136, 111, 132, 116, 116, 125, 124, 119, 118, 130, 121, 130, 103, 95, 121, 127, 121, 125, 122, 121, 120, 129, 111, 128, 126, 150, 122, 122, 131, 132, 123, 155, 172, 123, 121, 124, 125, 124, 121, 116, 120, 120, 121, 123, 117, 128, 123, 138, 115, 147, 136, 119, 119, 121, 121, 119, 138, 125, 132, 123, 106, 140, 120, 127, 123, 129, 124, 116, 106, 124, 122, 127, 123, 123, 111, 116, 122, 123, 118, 126, 132, 112, 113, 122, 115, 123, 131, 122, 119, 147, 110, 123, 111, 130, 118, 119, 108, 122, 122, 124, 102, 110, 131, 117, 131, 120, 107, 124, 113, 121, 107, 125, 122, 126, 114, 117, 117, 113, 120, 112, 117, 108, 133, 110, 124, 122, 123, 119, 119, 128, 123, 117, 120, 114, 123, 122, 125, 124, 120, 126, 123, 123, 107, 116, 142, 110, 89, 119, 76, 119, 101, 127, 117, 118, 129, 120, 126, 133, 118, 121, 120, 123, 132, 108, 142, 122, 150, 126, 123, 125, 119, 119, 131, 111, 105, 124, 123, 122, 115, 109, 114, 123, 129, 120, 126, 116, 115, 127, 123, 120, 91, 126, 121, 115, 122, 118, 124, 124, 123, 118, 128, 119, 126, 118, 117, 122, 126, 118, 120, 122, 125, 54, 120, 113, 127, 133, 114, 126, 118, 121, 125, 120, 121, 120, 128, 120, 127, 118, 120, 127, 123, 118, 121, 122, 122, 115, 120, 171, 126, 124, 124, 117, 129, 109, 128, 116, 114, 127, 120, 122, 132, 112, 110, 123, 110, 110, 123, 131, 124, 120, 120, 255, 113, 117, 130, 117, 105, 104, 129, 115, 120, 123, 126, 226, 97, 117, 93, 110, 104, 129, 132, 128, 121, 132, 126, 121, 133, 111, 127, 114, 113, 116, 103, 116, 108, 123, 111, 127, 108, 121, 111, 123, 120, 105, 122, 119, 125, 125, 253, 134, 118, 114, 124, 127, 139, 110, 119, 106, 121, 117, 134, 122, 117, 122, 117, 119, 119, 108, 130, 125, 108, 124, 115, 128, 129, 120, 123, 109, 120, 108, 113, 121, 110, 119, 127, 109, 126, 125, 124, 146, 118, 123, 118, 144, 121, 123, 113, 116, 114, 107, 135, 113, 102, 113, 121, 114, 130, 127, 112, 123, 109, 110, 122, 127, 115, 114, 107, 109, 123, 125, 111, 112, 122, 97, 118, 112, 134, 90, 126, 123, 126, 130, 123, 111, 116, 124, 112, 123, 121, 137, 127, 125, 116, 136, 116, 130, 127, 100, 127, 129, 104, 116, 117, 114, 121, 119, 115, 145, 126, 127, 130, 134, 114, 98, 123, 116, 121, 69, 118, 114, 126, 126, 116, 124, 117, 138, 126, 127, 80, 119, 127, 120, 113, 120, 126, 125, 121, 122, 122, 124, 115, 129, 119, 118, 121, 133, 124, 129, 123, 103, 123, 126, 137, 125, 128, 123, 121, 121, 126, 142, 111, 118, 122, 130, 122, 125, 132, 121, 123, 111, 117, 129, 126, 120, 124, 130, 123, 118, 127, 130, 129, 115, 126, 116, 133, 116, 113, 120, 118, 120, 117, 118, 121, 142, 129, 122, 118, 118, 113, 122, 114, 120, 126, 133, 127, 117, 119, 119, 145, 130, 117, 118, 114, 123, 113, 143, 122, 160, 121, 120, 122, 132, 119, 138, 124, 134, 124, 125, 111, 123, 115, 123, 156, 117, 105, 124, 123, 116, 115, 143, 126, 104, 125, 122, 119, 115, 111, 121, 116, 120, 116, 122, 117, 107, 122, 123, 126, 115, 132, 123, 124, 125, 127, 112, 118, 165, 117, 115, 114, 128, 118, 115, 131, 125, 107, 122, 111, 128, 127, 123, 190, 147, 112, 111, 120, 125, 139, 110, 112, 111, 104, 119, 136, 118, 107, 122, 127, 126, 109, 128, 121, 122, 133, 116, 153, 110, 124, 119, 123, 127, 117, 134, 119, 150, 126, 123, 109, 116, 120, 119, 125, 127, 126, 123, 89, 122, 110, 122, 121, 119, 123, 120, 125, 125, 140, 117, 120, 114, 127, 121, 125, 123, 123, 119, 124, 127, 121, 120, 122, 122, 135, 122, 120, 122, 121, 122, 121, 120, 118, 113, 122, 126, 125, 118, 109, 128, 136, 124, 116, 121, 125, 126, 123, 121, 108, 119, 102, 120, 121, 122, 125, 127, 112, 122, 118, 126, 121, 120, 119, 104, 122, 122, 88, 123, 121, 121, 123, 121, 122, 122, 116, 122, 123, 124, 123, 123, 116, 121, 119, 120, 124, 122, 119, 134, 120, 122, 120, 107, 126, 122, 126, 135, 123, 123, 132, 123, 120, 120, 119, 121, 120, 121, 121, 130, 118, 121, 122, 120, 124, 123, 127, 129, 124, 125, 115, 127, 118, 120, 123, 123, 121, 99, 123, 121, 125, 95, 123, 121, 119, 119, 127, 109, 123, 117, 114, 123, 126, 122, 126, 112, 117, 128, 124, 122, 123, 122, 115, 123, 120, 122, 123, 114, 123, 116, 122, 102, 127, 116, 111, 120, 115, 124, 126, 121, 119, 122, 119, 117, 121, 121, 120, 113, 123, 122, 126, 120, 134, 114, 123, 121, 118, 121, 121, 123, 136, 113, 123, 122, 108, 118, 123, 118, 131, 129, 110, 124, 126, 122, 118, 125, 121, 127, 119, 124, 121, 130, 122, 121, 122, 121, 116, 120, 122, 128, 128, 128, 120, 121, 116, 125, 129, 123, 122, 125, 119, 126, 112, 125, 121, 117, 110, 128, 115, 124, 120, 122, 124, 112, 119, 120, 116, 118, 122, 122, 121, 122, 119, 122, 123, 124, 97, 127, 118, 120, 119, 125, 127, 124, 123, 125, 110, 121, 120, 118, 126, 120, 121, 122, 126, 122, 127, 128, 118, 128, 119, 126, 126, 124, 124, 125, 123, 129, 120, 124, 123, 126, 122, 119, 120, 131, 124, 114, 158, 125, 115, 122, 122, 124, 120, 129, 126, 118, 119, 124, 123, 115, 118, 121, 126, 121, 124, 119, 124, 126, 126, 126, 125, 119, 87, 121, 122, 124, 118, 116, 123, 127, 112, 120, 122, 122, 121, 123, 124, 133, 122, 122, 114, 120, 123, 97, 121, 123, 117, 112, 127, 124, 117, 120, 118, 122, 128, 130, 123, 122, 120, 121, 120, 118, 121, 135, 126, 121, 121, 124, 123, 125, 123, 116, 113, 120, 120, 137, 128, 122, 121, 123, 120, 131, 125, 123, 120, 113, 121, 114, 114, 121, 93, 127, 117, 130, 137, 119, 120, 122, 131, 126, 117, 131, 126, 134, 124, 132, 125, 131, 131, 116, 133, 119, 103, 121, 118, 117, 125, 118, 134, 110, 122, 125, 118, 121, 123, 124, 123, 143, 132, 119, 114, 125, 122, 114, 121, 124, 128, 109, 126, 139, 119, 126, 123, 121, 134, 127, 123, 122, 119, 120, 121, 125, 111, 110, 146, 117, 122, 122, 121, 127, 129, 121, 121, 124, 128, 122, 126, 126, 123, 121, 120, 121, 128, 124, 128, 124, 127, 116, 135, 126, 119, 117, 136, 128, 119, 135, 129, 106, 133, 118, 117, 118, 116, 121, 131, 125, 127, 125, 120, 126, 115, 124, 115, 128, 117, 105, 123, 116, 133, 120, 124, 119, 122, 121, 123, 122, 125, 125, 120, 120, 123, 124, 120, 114, 124, 123, 121, 122, 123, 122, 124, 121, 93, 115, 101, 122, 134, 124, 123, 122, 121, 126, 121, 122, 123, 117, 126, 123, 122, 118, 119, 132, 111, 121, 131, 121, 124, 121, 123, 129, 123, 119, 119, 126, 122, 120, 123, 125, 126, 124, 126, 119, 123, 121, 124, 120, 121, 122, 138, 128, 124, 123, 121, 121, 121, 121, 121, 120, 126, 122, 121, 120, 121, 122, 121, 120, 115, 120, 125, 112, 122, 129, 117, 125, 122, 122, 121, 123, 123, 125, 124, 123, 118, 121, 124, 123, 122, 126, 119, 125, 126, 120, 122, 118, 120, 136, 123, 126, 115, 117, 118, 116, 120, 120, 131, 123, 125, 137, 125, 123, 117, 128, 113, 111, 122, 111, 126, 124, 117, 123, 122, 126, 124, 112, 121, 117, 131, 112, 118, 108, 123, 122, 119, 106, 120, 133, 107, 106, 124, 142, 124, 118, 114, 118, 102, 116, 122, 115, 119, 125, 122, 123, 124, 123, 119, 154, 116, 108, 122, 129, 121, 115, 116, 112, 103, 122, 120, 126, 135, 122, 139, 120, 144, 124, 128, 124, 124, 114, 121, 126, 118, 119, 100, 127, 123, 120, 118, 113, 122, 125, 120, 114, 127, 119, 112, 123, 145, 121, 120, 127, 132, 116, 123, 129, 126, 122, 111, 131, 125, 120, 102, 126, 125, 120, 113, 151, 142, 118, 103, 124, 115, 120, 111, 122, 116, 123, 120, 118, 104, 126, 118, 106, 114, 115, 120, 118, 117, 174, 117, 120, 124, 121, 119, 130, 125, 116, 127, 128, 119, 125, 135, 119, 122, 113, 126, 122, 133, 124, 120, 133, 125, 114, 126, 120, 125, 121, 122, 121, 121, 118, 122, 128, 117, 120, 121, 120, 134, 98, 126, 119, 126, 118, 121, 122, 120, 122, 126, 121, 119, 122, 135, 123, 122, 117, 126, 120, 120, 115, 123, 124, 123, 125, 121, 118, 119, 120, 123, 123, 119, 110, 125, 110, 127, 121, 119, 97, 122, 122, 123, 137, 124, 119, 119, 122, 122, 126, 122, 118, 121, 107, 124, 121, 117, 114, 123, 120, 114, 117, 121, 119, 116, 121, 121, 119, 120, 133, 121, 104, 120, 110, 122, 127, 118, 118, 122, 117, 120, 116, 124, 124, 122, 118, 108, 117, 122, 123, 124, 128, 104, 96, 111, 134, 130, 117, 124, 120, 120, 106, 122, 130, 117, 120, 113, 125, 128, 105, 119, 117, 124, 115, 120, 117, 111, 121, 123, 154, 132, 132, 110, 116, 123, 113, 127, 126, 120, 124, 127, 127, 126, 113, 124, 140, 136, 121, 120, 133, 123, 115, 116, 117, 93, 111, 122, 122, 124, 114, 116, 109, 133, 118, 126, 117, 123, 127, 111, 110, 121, 132, 109, 114, 127, 127, 153, 119, 121, 132, 122, 126, 133, 139, 131, 137, 128, 121, 134, 120, 124, 119, 112, 125, 112, 125, 111, 125, 116, 125, 127, 126, 118, 122, 120, 132, 111, 119, 115, 116, 117, 130, 111, 123, 98, 119, 120, 125, 113, 121, 124, 122, 122, 137, 121, 117, 119, 122, 121, 104, 119, 113, 109, 134, 121, 126, 114, 125, 120, 122, 117, 113, 123, 119, 117, 130, 120, 123, 122, 124, 121, 127, 117, 110, 120, 117, 120, 122, 117, 107, 123, 113, 122, 115, 121, 118, 121, 118, 119, 119, 118, 122, 121, 125, 127, 129, 128, 120, 124, 110, 122, 118, 124, 116, 124, 120, 121, 126, 146, 101, 121, 123, 107, 121, 120, 122, 125, 126, 120, 120, 116, 122, 122, 118, 123, 122, 133, 114, 120, 119, 125, 121, 120, 128, 125, 115, 122, 116, 121, 125, 129, 120, 123, 120, 117, 128, 122, 116, 114, 121, 115, 121, 116, 120, 114, 120, 123, 123, 119, 119, 119, 120, 120, 119, 114, 123, 126, 113, 116, 112, 124, 114, 140, 126, 117, 121, 119, 128, 127, 117, 111, 122, 122, 129, 123, 123, 123, 116, 123, 120, 118, 110, 127, 132, 122, 124, 119, 121, 120, 128, 123, 124, 118, 115, 128, 126, 103, 123, 138, 118, 114, 105, 113, 117, 125, 121, 123, 120, 122, 121, 123, 115, 94, 121, 122, 129, 116, 123, 122, 106, 133, 124, 120, 121, 117, 126, 120, 102, 105, 125, 128, 120, 121, 116, 109, 99, 116, 120, 127, 119, 120, 127, 133, 123, 114, 125, 122, 124, 122, 97, 133, 179, 133, 120, 131, 118, 127, 126, 123, 114, 120, 124, 120, 116, 127, 126, 128, 125, 116, 158, 129, 96, 126, 120, 128, 123, 129, 125, 105, 123, 133, 119, 118, 124, 123, 116, 121, 135, 121, 117, 125, 119, 126, 121, 125, 123, 149, 95, 123, 128, 131, 115, 131, 126, 88, 100, 126, 109, 188, 122, 122, 126, 116, 121, 127, 120, 122, 114, 116, 127, 119, 120, 137, 127, 113, 124, 112, 121, 127, 121, 123, 128, 128, 118, 118, 124, 123, 114, 113, 114, 125, 121, 118, 128, 116, 125, 124, 124, 122, 113, 121, 119, 125, 130, 124, 126, 122, 122, 120, 117, 120, 129, 83, 114, 114, 114, 112, 122, 120, 115, 122, 120, 122, 132, 122, 127, 100, 184, 121, 105, 124, 120, 129, 120, 125, 122, 126, 123, 139, 118, 128, 113, 131, 130, 118, 117, 127, 136, 112, 116, 130, 116, 127, 125, 119, 122, 117, 117, 143, 117, 127, 128, 121, 115, 135, 107, 117, 98, 126, 105, 118, 117, 122, 128, 128, 111, 118, 127, 132, 141, 126, 116, 113, 143, 116, 109, 117, 120, 98, 129, 120, 129, 117, 122, 122, 113, 124, 115, 106, 115, 129, 134, 106, 134, 109, 114, 120, 112, 126, 118, 124, 126, 123, 131, 122, 117, 117, 113, 118, 105, 117, 138, 129, 123, 115, 137, 150, 115, 123, 121, 139, 118, 117, 112, 133, 122, 120, 117, 119, 118, 117, 113, 123, 130, 116, 112, 127, 117, 110, 123, 122, 101, 123, 126, 113, 118, 123, 121, 149, 121, 123, 135, 138, 125, 144, 114, 123, 121, 114, 113, 115, 106, 117, 123, 125, 113, 117, 128, 120, 117, 150, 123, 121, 120, 123, 122, 124, 105, 121, 120, 138, 123, 116, 108, 111, 124, 123};
+ model->setOperandValue(op44, op44_init, sizeof(uint8_t) * 16384);
+ static int32_t op46_init[] = {-4, 19041, 11198, 12939, 89, 21739, 4637, -436, -1022, 1301, 19261, -30, 1277, 861, 299, -3221, 472, 8599, 8650, 500, 8521, -366, -3871, 7440, 146, -11, 17873, -202, 653, 21242, 14690, 1682, 38, 2498, -1230, 102, 7678, 9604, 8617, 364, 12383, 3741, 9240, 7630, 11816, -1966, 9708, -6149, 7842, 18989, -13873, -36, 17319, 21848, 7300, 2687, 8614, 8988, 5411, 888, 192, 9617, 252, 13840, -290, 242, 10315, 5935, 4901, 9698, 7611, 3060, 3275, 22662, 8285, -2336, 1784, -21, 9092, 11491, -211, 42, 12242, 21922, 8100, 17614, 9945, 21637, 19098, 9326, 2513, 135, 18572, 11188, -1950, 7730, 11608, 9488, -335, 197, -1356, 16575, 183, 620, 17908, 6314, 2500, -5468, 513, 5895, -123, 176, 2709, 10640, 12294, 7853, -18153, -8770, 19015, 8094, -21784, 1519, -5720, 176, 18060, 313, 14927, 1630};
+ model->setOperandValue(op46, op46_init, sizeof(int32_t) * 128);
+ static uint8_t op47_init[] = {161, 114, 136, 103, 179, 98, 177, 159, 154, 113, 117, 163, 156, 151, 169, 155, 160, 106, 117, 149, 119, 185, 188, 123, 163, 152, 140, 161, 158, 131, 135, 159, 172, 175, 148, 163, 139, 118, 123, 161, 119, 160, 121, 116, 115, 150, 130, 155, 135, 123, 146, 151, 121, 121, 124, 88, 107, 88, 162, 153, 153, 125, 154, 121, 154, 163, 124, 143, 148, 128, 150, 163, 104, 126, 116, 211, 175, 165, 128, 153, 160, 159, 102, 86, 126, 122, 120, 124, 124, 129, 109, 168, 121, 128, 255, 125, 125, 126, 143, 85, 105, 119, 160, 128, 118, 154, 174, 153, 191, 154, 149, 159, 162, 127, 118, 124, 161, 189, 117, 102, 170, 165, 152, 165, 156, 154, 122, 154, 167, 106, 119, 103, 188, 86, 32, 171, 159, 89, 109, 173, 157, 154, 173, 160, 160, 98, 114, 154, 115, 181, 195, 111, 175, 162, 115, 180, 170, 125, 129, 163, 178, 180, 156, 169, 122, 100, 120, 170, 114, 171, 114, 109, 114, 158, 113, 158, 125, 117, 161, 155, 111, 113, 117, 65, 97, 133, 175, 170, 159, 122, 163, 113, 159, 169, 115, 126, 159, 125, 163, 173, 168, 122, 115, 223, 125, 174, 124, 162, 167, 181, 106, 75, 128, 111, 118, 119, 121, 125, 65, 176, 112, 100, 105, 112, 121, 122, 148, 146, 119, 116, 164, 85, 109, 155, 180, 157, 189, 175, 153, 174, 165, 119, 114, 113, 165, 75, 110, 118, 173, 178, 159, 183, 159, 172, 117, 168, 150, 126, 117, 127, 157, 116, 165, 153, 148, 86, 127, 156, 143, 147, 152, 147, 148, 120, 131, 145, 127, 154, 152, 125, 159, 152, 115, 160, 156, 131, 131, 153, 148, 151, 149, 155, 118, 120, 128, 154, 131, 154, 129, 126, 128, 148, 116, 147, 121, 129, 148, 146, 125, 130, 123, 91, 116, 154, 152, 161, 148, 129, 151, 119, 148, 151, 123, 119, 152, 135, 153, 154, 174, 131, 132, 168, 103, 154, 131, 153, 154, 164, 137, 115, 132, 127, 127, 129, 130, 134, 95, 154, 125, 112, 84, 116, 131, 131, 142, 190, 203, 131, 148, 164, 123, 146, 153, 148, 137, 156, 144, 158, 150, 130, 134, 118, 147, 179, 125, 139, 166, 163, 148, 165, 148, 162, 131, 155, 171, 105, 131, 124, 186, 81, 243, 171, 166, 78, 115, 167, 164, 156, 175, 159, 163, 98, 111, 155, 114, 175, 209, 109, 174, 160, 120, 177, 169, 127, 125, 161, 179, 172, 153, 169, 159, 100, 121, 167, 115, 167, 120, 112, 114, 157, 107, 160, 115, 118, 160, 160, 110, 115, 117, 149, 98, 116, 182, 169, 157, 120, 160, 110, 162, 171, 114, 179, 159, 122, 153, 169, 78, 121, 113, 232, 176, 175, 116, 162, 169, 177, 116, 72, 111, 108, 117, 115, 119, 124, 166, 178, 105, 168, 179, 117, 118, 121, 154, 49, 159, 110, 166, 105, 108, 161, 176, 160, 179, 126, 155, 172, 168, 116, 114, 111, 166, 198, 115, 113, 179, 179, 160, 181, 126, 163, 116, 166, 181, 92, 114, 137, 192, 66, 44, 186, 167, 135, 108, 180, 171, 162, 191, 170, 177, 78, 100, 165, 103, 166, 225, 101, 190, 172, 94, 191, 182, 119, 118, 176, 193, 189, 161, 182, 145, 94, 112, 183, 109, 184, 115, 100, 105, 168, 93, 169, 113, 107, 175, 169, 95, 101, 108, 147, 86, 163, 189, 184, 165, 114, 169, 110, 171, 181, 106, 150, 171, 118, 171, 183, 142, 113, 100, 237, 143, 188, 108, 171, 180, 199, 134, 57, 103, 97, 110, 104, 109, 116, 137, 192, 96, 135, 0, 105, 109, 114, 168, 146, 60, 106, 178, 123, 96, 165, 191, 168, 125, 152, 163, 188, 177, 107, 101, 101, 170, 43, 104, 156, 181, 196, 171, 201, 114, 190, 105, 192, 160, 113, 113, 151, 162, 97, 118, 160, 154, 184, 126, 157, 144, 149, 163, 153, 159, 102, 116, 150, 116, 153, 163, 121, 161, 156, 113, 162, 161, 127, 122, 158, 164, 163, 152, 163, 126, 119, 122, 165, 128, 162, 131, 114, 119, 153, 106, 150, 123, 123, 155, 153, 118, 121, 115, 133, 110, 168, 154, 164, 152, 122, 157, 122, 153, 156, 119, 124, 159, 132, 166, 162, 194, 128, 121, 181, 88, 159, 125, 155, 161, 171, 159, 104, 122, 121, 123, 122, 123, 128, 129, 165, 116, 119, 217, 112, 125, 126, 154, 201, 191, 121, 157, 195, 121, 152, 162, 151, 110, 158, 150, 162, 158, 124, 125, 113, 154, 198, 121, 173, 178, 168, 154, 163, 126, 175, 121, 172, 154, 123, 137, 144, 162, 113, 204, 158, 151, 185, 133, 151, 147, 149, 151, 147, 145, 126, 123, 145, 127, 157, 170, 122, 157, 150, 123, 162, 154, 136, 126, 150, 149, 143, 145, 152, 161, 113, 130, 152, 134, 151, 131, 126, 131, 148, 119, 150, 118, 129, 154, 150, 124, 129, 133, 174, 118, 142, 160, 158, 149, 131, 149, 125, 151, 152, 126, 170, 150, 132, 143, 152, 118, 131, 126, 183, 150, 157, 123, 149, 153, 157, 143, 106, 125, 125, 131, 127, 130, 126, 148, 158, 118, 176, 74, 128, 126, 128, 146, 74, 180, 122, 152, 98, 125, 152, 152, 149, 124, 103, 146, 158, 153, 126, 130, 119, 159, 174, 118, 135, 161, 164, 150, 162, 120, 149, 130, 159, 163, 114, 131, 166, 167, 103, 135, 162, 153, 193, 127, 152, 150, 150, 165, 151, 160, 106, 106, 149, 118, 157, 176, 119, 162, 152, 121, 158, 160, 133, 120, 157, 171, 162, 148, 159, 161, 108, 121, 162, 131, 161, 130, 118, 125, 153, 113, 154, 120, 124, 162, 154, 114, 120, 123, 193, 109, 172, 160, 159, 151, 126, 155, 126, 155, 158, 121, 154, 156, 131, 151, 161, 119, 126, 112, 190, 161, 164, 119, 156, 159, 167, 160, 94, 119, 119, 123, 122, 124, 123, 193, 169, 115, 159, 122, 122, 118, 125, 159, 148, 92, 116, 162, 175, 118, 156, 163, 153, 82, 124, 151, 165, 160, 119, 118, 116, 172, 76, 112, 174, 163, 169, 156, 163, 105, 164, 121, 171, 150, 125, 133, 160, 149, 120, 83, 152, 145, 144, 133, 142, 140, 143, 157, 147, 152, 116, 122, 143, 127, 151, 153, 129, 151, 148, 137, 146, 148, 136, 125, 152, 160, 152, 143, 152, 143, 128, 127, 155, 133, 149, 137, 125, 128, 148, 128, 145, 132, 132, 152, 147, 132, 127, 128, 162, 126, 142, 144, 144, 145, 129, 147, 131, 146, 147, 131, 137, 153, 138, 152, 153, 160, 133, 123, 169, 116, 148, 133, 145, 150, 152, 162, 119, 128, 131, 128, 130, 129, 133, 185, 156, 130, 138, 221, 130, 128, 133, 150, 184, 138, 124, 153, 148, 135, 146, 152, 145, 107, 144, 146, 148, 149, 129, 129, 129, 155, 169, 124, 168, 155, 148, 148, 147, 125, 154, 127, 155};
+ model->setOperandValue(op47, op47_init, sizeof(uint8_t) * 1152);
+ static int32_t op49_init[] = {12653, -8529, 24113, -140, 12541, 8831, -1487, 16060, -11404, 19859, -2400, 15109, 18889, 6725, 1316, 5486, 11674, 11494, -3898, -5248, 17829, 11567, -8580, 10665, 10401, -1922, 11345, -19019, 17381, -4916, 8797, -5136, 2835, -4168, 1998, 19420, 20453, -4502, 3868, 8987, 22315, 7014, 28658, 12616, 30051, 15990, 945, 5435, 2817, 22329, 6500, 11242, 7768, 4994, 4917, 5266, 22487, -2863, 5099, 7439, 20409, 9082, 15371, 3027, 11324, -3723, 4469, -552, 4506, 14672, 8012, 7595, 5475, -12377, 12562, 8553, 7956, -5384, 17055, 18198, 19644, -27371, 4, -10482, 2560, -25736, 10030, 3921, 11295, 9291, 8032, 14893, -979, -2343, 3021, 1837, -6895, 22514, 31714, 2578, -1999, 10605, 22767, -8279, 6359, 20589, 5827, 3968, -4741, -1444, 1435, 1665, -12307, 13134, 11597, 12006, 17185, 3086, 17768, -5026, -14200, -16654, 8311, 10285, -7415, -815, -12954, 5880, 3402, 10161, -4169, 17869, 8108, 6209, 6538, 22511, -2628, 12514, 6197, 15069, 3081, -471, 17288, 564, 4521, 10750, 1720, 10659, 14208, 10787, -8546, 5895, 12084, 13825, -9637, 15126, 19276, 1468, 23091, -848, 4716, 2033, -892, 2287, -4571, -5989, -8835, -9332, 10582, 8059, 2861, 6131, -6980, 11197, 11190, 4810, 16684, 21408, 10435, 14235, -2578, -11244, 857, -1325, 12114, 8938, 20349, 4835, 6779, -2684, 10173, 5752, 11452, 9893, 5123, -1962, 5121, 26792, 9639, 4330, 9663, 9259, 1657, 18902, 24283, 2068, -3790, 12946, 3198, 7630, -11651, 2158, 5881, 7799, 17144, 9899, 17055, 6459, 6033, 15551, 54, 5965, 7067, -21070, 6809, 9412, -20587, 15542, -1148, -12815, 5175, 6771, 3980, 4002, -2081, -1257, 7702, 2627, -7320, 38581, 14712, -4, 14482, 18631, 3255, 4782, 13145, 5407, -6823, 4063, 3622, 13707, 3945, 8530, 2875, 9850};
+ model->setOperandValue(op49, op49_init, sizeof(int32_t) * 256);
+ static uint8_t op50_init[] = {120, 125, 125, 122, 108, 113, 130, 130, 106, 127, 170, 131, 135, 138, 125, 89, 121, 112, 98, 135, 121, 134, 130, 110, 135, 93, 126, 125, 115, 132, 125, 103, 116, 120, 119, 108, 118, 108, 125, 150, 124, 125, 125, 127, 124, 129, 111, 91, 136, 109, 120, 102, 116, 132, 132, 129, 135, 116, 122, 111, 124, 118, 138, 117, 111, 123, 128, 130, 115, 120, 121, 120, 131, 131, 123, 132, 122, 132, 136, 115, 119, 147, 131, 117, 130, 131, 130, 125, 109, 120, 129, 127, 116, 119, 119, 126, 157, 119, 122, 119, 126, 122, 104, 121, 115, 118, 132, 138, 135, 124, 121, 136, 114, 98, 128, 126, 125, 128, 116, 116, 117, 137, 138, 118, 123, 127, 96, 127, 144, 117, 80, 135, 122, 136, 117, 114, 125, 121, 116, 122, 129, 118, 113, 116, 127, 124, 126, 129, 131, 118, 117, 117, 124, 123, 119, 130, 112, 122, 132, 135, 117, 128, 127, 137, 123, 124, 131, 122, 132, 99, 135, 128, 119, 131, 127, 120, 135, 132, 119, 122, 121, 137, 116, 111, 120, 119, 121, 118, 150, 118, 115, 131, 124, 139, 141, 113, 112, 159, 115, 118, 144, 125, 134, 139, 131, 133, 138, 129, 126, 120, 122, 113, 92, 126, 126, 118, 126, 162, 106, 112, 131, 136, 121, 143, 110, 123, 124, 112, 124, 122, 122, 122, 121, 134, 133, 121, 116, 123, 116, 125, 128, 107, 95, 130, 126, 124, 115, 128, 151, 127, 119, 122, 119, 120, 124, 122, 118, 123, 130, 122, 121, 121, 120, 121, 128, 123, 113, 117, 120, 118, 122, 126, 123, 122, 121, 138, 120, 127, 109, 120, 123, 133, 115, 122, 119, 122, 123, 119, 119, 118, 127, 119, 117, 118, 122, 124, 122, 123, 125, 123, 119, 117, 118, 141, 125, 116, 124, 132, 130, 124, 123, 122, 117, 118, 125, 122, 120, 127, 122, 126, 125, 125, 124, 120, 126, 121, 123, 117, 123, 104, 121, 132, 124, 116, 122, 123, 123, 120, 114, 116, 119, 128, 119, 125, 118, 121, 118, 121, 119, 123, 123, 120, 116, 123, 117, 121, 120, 123, 120, 125, 126, 117, 119, 102, 125, 119, 117, 122, 119, 125, 124, 124, 122, 118, 125, 120, 120, 122, 109, 122, 131, 125, 121, 121, 140, 116, 130, 133, 120, 132, 127, 133, 119, 118, 122, 107, 129, 110, 114, 126, 118, 123, 128, 104, 137, 123, 116, 110, 129, 123, 118, 118, 104, 136, 130, 110, 127, 123, 100, 120, 123, 134, 108, 124, 113, 125, 138, 137, 126, 133, 119, 118, 145, 115, 124, 132, 120, 134, 124, 124, 124, 112, 117, 119, 138, 121, 116, 115, 121, 109, 139, 115, 121, 119, 119, 131, 123, 106, 139, 112, 127, 138, 141, 130, 132, 117, 130, 106, 89, 123, 119, 126, 124, 185, 110, 127, 128, 117, 117, 130, 128, 130, 128, 122, 122, 121, 118, 123, 119, 119, 121, 120, 115, 116, 129, 121, 120, 124, 116, 120, 125, 123, 122, 114, 116, 126, 125, 131, 122, 127, 126, 132, 122, 121, 127, 124, 125, 126, 120, 125, 112, 116, 126, 124, 130, 122, 118, 117, 122, 128, 128, 92, 128, 114, 126, 128, 122, 118, 123, 124, 128, 121, 127, 125, 121, 120, 121, 125, 132, 125, 130, 121, 129, 123, 125, 126, 121, 116, 126, 136, 121, 115, 118, 132, 123, 124, 124, 121, 126, 116, 116, 123, 122, 126, 112, 116, 123, 123, 126, 122, 116, 119, 119, 118, 115, 129, 123, 112, 123, 124, 124, 120, 124, 122, 126, 126, 125, 124, 130, 130, 111, 124, 115, 125, 124, 121, 116, 123, 130, 124, 119, 122, 123, 123, 122, 115, 125, 120, 123, 134, 117, 122, 118, 121, 121, 129, 122, 125, 116, 119, 115, 121, 119, 121, 113, 123, 121, 123, 127, 120, 122, 122, 125, 136, 125, 122, 121, 122, 121, 116, 122, 121, 131, 124, 120, 120, 120, 123, 126, 114, 127, 124, 122, 122, 123, 123, 122, 120, 122, 126, 123, 123, 122, 117, 121, 123, 120, 128, 128, 124, 124, 121, 130, 126, 120, 122, 124, 126, 119, 111, 118, 131, 126, 124, 122, 120, 125, 119, 122, 119, 122, 121, 119, 124, 126, 124, 120, 111, 120, 120, 120, 124, 125, 124, 124, 116, 125, 125, 128, 126, 125, 121, 125, 123, 126, 128, 128, 126, 120, 125, 105, 123, 122, 128, 125, 123, 123, 125, 134, 123, 122, 125, 117, 123, 123, 118, 123, 124, 128, 122, 121, 125, 123, 121, 125, 122, 121, 127, 120, 121, 122, 121, 121, 121, 122, 123, 124, 120, 123, 115, 103, 125, 117, 122, 117, 133, 115, 132, 119, 117, 120, 117, 117, 125, 126, 116, 118, 117, 112, 116, 123, 122, 112, 124, 114, 131, 88, 125, 125, 112, 129, 122, 123, 111, 133, 126, 129, 123, 139, 123, 115, 115, 121, 117, 120, 124, 113, 145, 128, 126, 121, 128, 121, 123, 111, 131, 158, 152, 125, 113, 113, 122, 124, 135, 125, 120, 127, 153, 120, 121, 125, 124, 124, 122, 120, 136, 109, 126, 113, 117, 125, 136, 125, 124, 135, 121, 135, 103, 126, 125, 124, 121, 140, 121, 122, 116, 125, 117, 115, 126, 112, 143, 114, 113, 140, 121, 131, 120, 126, 133, 114, 121, 121, 120, 119, 125, 128, 119, 118, 160, 126, 132, 135, 128, 122, 100, 124, 122, 130, 120, 121, 120, 125, 124, 116, 123, 125, 121, 142, 118, 121, 126, 123, 124, 122, 130, 107, 126, 127, 101, 126, 123, 125, 128, 128, 119, 109, 122, 129, 126, 122, 123, 128, 125, 109, 124, 129, 120, 127, 134, 119, 116, 127, 115, 124, 124, 126, 126, 122, 122, 116, 120, 121, 126, 120, 125, 124, 121, 109, 115, 125, 124, 111, 125, 128, 129, 119, 120, 126, 123, 124, 124, 122, 124, 125, 119, 124, 124, 122, 124, 125, 125, 124, 128, 122, 128, 127, 131, 123, 123, 127, 126, 120, 117, 127, 125, 123, 124, 128, 126, 121, 123, 123, 127, 124, 125, 106, 130, 120, 129, 125, 124, 124, 126, 124, 121, 123, 127, 89, 125, 128, 122, 127, 122, 159, 136, 121, 103, 114, 146, 128, 126, 127, 123, 115, 116, 116, 129, 148, 124, 142, 130, 135, 127, 117, 99, 118, 124, 115, 132, 112, 156, 87, 127, 134, 114, 106, 122, 118, 118, 118, 123, 109, 119, 98, 115, 92, 128, 127, 124, 123, 121, 116, 132, 124, 123, 130, 133, 120, 136, 107, 133, 118, 156, 139, 119, 133, 131, 129, 128, 121, 132, 123, 136, 125, 117, 127, 121, 133, 119, 136, 128, 133, 124, 111, 120, 121, 120, 112, 107, 117, 120, 132, 124, 139, 133, 120, 118, 125, 112, 124, 122, 119, 114, 125, 120, 126, 125, 117, 124, 132, 122, 110, 145, 128, 130, 118, 135, 138, 114, 128, 123, 116, 116, 117, 125, 118, 95, 129, 129, 128, 105, 122, 120, 127, 116, 119, 118, 131, 123, 123, 127, 123, 128, 124, 120, 114, 119, 119, 120, 121, 125, 119, 119, 123, 124, 120, 126, 126, 129, 128, 113, 124, 123, 113, 123, 118, 119, 128, 122, 122, 123, 119, 120, 124, 123, 125, 118, 127, 122, 121, 125, 121, 120, 120, 123, 123, 124, 120, 136, 121, 123, 126, 123, 123, 121, 114, 124, 122, 103, 122, 126, 120, 117, 129, 128, 121, 129, 119, 121, 120, 122, 129, 129, 126, 115, 123, 120, 122, 125, 126, 125, 124, 126, 126, 125, 122, 127, 123, 123, 111, 136, 123, 124, 133, 117, 118, 117, 123, 118, 123, 100, 119, 120, 119, 121, 119, 125, 123, 122, 124, 125, 119, 120, 122, 132, 124, 132, 126, 122, 119, 178, 122, 122, 124, 123, 114, 126, 123, 114, 121, 124, 128, 120, 143, 131, 151, 113, 124, 122, 126, 117, 111, 129, 165, 137, 127, 94, 119, 135, 122, 129, 149, 115, 121, 129, 130, 108, 121, 85, 124, 132, 126, 124, 103, 124, 125, 123, 127, 131, 118, 116, 120, 120, 118, 122, 120, 125, 124, 121, 122, 133, 129, 119, 113, 125, 124, 121, 125, 129, 121, 125, 114, 122, 130, 125, 111, 115, 122, 124, 126, 76, 132, 117, 124, 135, 119, 138, 131, 121, 125, 76, 120, 115, 136, 127, 123, 126, 111, 124, 106, 120, 114, 136, 116, 123, 121, 124, 125, 134, 126, 163, 120, 121, 120, 135, 122, 123, 119, 117, 121, 130, 122, 86, 116, 71, 87, 117, 134, 130, 128, 125, 117, 104, 122, 123, 125, 117, 118, 159, 111, 119, 121, 120, 118, 121, 121, 118, 131, 103, 119, 129, 118, 122, 117, 111, 127, 138, 119, 115, 114, 137, 127, 124, 109, 121, 120, 108, 109, 106, 102, 126, 113, 117, 126, 112, 109, 128, 120, 117, 135, 112, 129, 123, 41, 123, 124, 114, 126, 137, 116, 119, 129, 139, 122, 132, 124, 120, 135, 180, 120, 143, 131, 92, 116, 170, 127, 122, 118, 121, 127, 92, 133, 104, 122, 117, 127, 133, 119, 116, 110, 128, 115, 127, 119, 140, 133, 123, 116, 128, 122, 118, 111, 123, 127, 122, 117, 122, 123, 112, 125, 122, 115, 119, 122, 124, 121, 122, 121, 127, 129, 112, 121, 124, 121, 120, 132, 116, 129, 122, 122, 120, 127, 135, 140, 123, 123, 135, 130, 127, 125, 127, 122, 122, 124, 121, 123, 124, 129, 120, 129, 122, 120, 129, 128, 116, 121, 117, 125, 123, 117, 120, 125, 123, 120, 131, 125, 127, 111, 129, 128, 124, 128, 122, 121, 150, 123, 116, 129, 118, 126, 133, 127, 121, 123, 122, 133, 125, 123, 116, 115, 121, 125, 129, 121, 116, 111, 106, 118, 113, 117, 124, 126, 126, 110, 122, 124, 108, 121, 118, 121, 122, 121, 123, 97, 120, 123, 126, 119, 125, 124, 132, 113, 132, 120, 119, 119, 125, 117, 125, 129, 120, 126, 120, 125, 122, 119, 127, 117, 116, 118, 121, 123, 118, 124, 121, 122, 130, 125, 128, 127, 117, 135, 126, 89, 109, 140, 106, 107, 137, 152, 119, 107, 123, 110, 116, 146, 121, 137, 117, 119, 116, 122, 135, 122, 156, 127, 117, 127, 122, 115, 130, 126, 118, 136, 121, 147, 109, 125, 110, 107, 125, 130, 118, 96, 89, 101, 134, 133, 140, 130, 97, 144, 142, 123, 107, 129, 98, 133, 168, 125, 112, 107, 106, 152, 117, 105, 108, 115, 109, 126, 119, 124, 116, 169, 124, 79, 119, 122, 127, 124, 150, 133, 136, 135, 126, 117, 132, 103, 112, 127, 112, 117, 132, 170, 123, 111, 136, 109, 138, 123, 121, 125, 124, 114, 118, 116, 123, 129, 141, 95, 115, 103, 151, 114, 111, 142, 123, 114, 118, 141, 120, 140, 123, 135, 131, 106, 124, 138, 124, 141, 111, 123, 118, 124, 129, 124, 124, 119, 123, 126, 128, 119, 124, 115, 127, 116, 120, 118, 122, 122, 128, 118, 127, 120, 127, 114, 121, 126, 140, 124, 115, 121, 118, 116, 117, 129, 122, 122, 118, 121, 127, 113, 117, 126, 119, 121, 126, 128, 124, 128, 126, 124, 118, 127, 124, 124, 123, 123, 137, 127, 126, 121, 127, 121, 125, 110, 119, 127, 119, 129, 120, 121, 125, 118, 122, 117, 128, 129, 118, 121, 117, 122, 133, 130, 121, 124, 111, 120, 123, 125, 124, 123, 130, 130, 135, 121, 120, 125, 124, 122, 118, 122, 125, 133, 114, 127, 115, 123, 119, 130, 134, 120, 115, 116, 124, 132, 121, 124, 121, 123, 127, 123, 122, 124, 141, 121, 135, 128, 132, 123, 129, 104, 119, 120, 132, 120, 120, 126, 120, 129, 116, 111, 126, 129, 113, 122, 118, 119, 126, 143, 129, 126, 143, 119, 123, 115, 120, 121, 121, 132, 124, 112, 126, 113, 126, 131, 130, 147, 129, 120, 120, 120, 94, 123, 129, 135, 137, 118, 116, 127, 125, 121, 119, 131, 125, 108, 127, 116, 132, 125, 123, 172, 112, 123, 122, 158, 122, 120, 100, 125, 115, 120, 130, 121, 120, 124, 126, 93, 146, 125, 120, 123, 108, 109, 124, 96, 128, 123, 114, 125, 128, 118, 116, 122, 118, 120, 127, 127, 124, 126, 119, 125, 126, 128, 132, 130, 130, 130, 120, 122, 124, 122, 110, 112, 111, 122, 128, 114, 122, 120, 120, 124, 118, 126, 126, 117, 122, 125, 118, 121, 123, 122, 123, 119, 123, 125, 130, 117, 121, 122, 118, 123, 113, 118, 121, 119, 124, 124, 123, 118, 126, 120, 124, 120, 130, 128, 108, 123, 126, 123, 125, 126, 121, 128, 120, 122, 127, 122, 122, 120, 124, 128, 120, 127, 118, 125, 127, 121, 118, 121, 119, 125, 128, 123, 121, 128, 123, 122, 135, 118, 123, 117, 119, 126, 112, 128, 122, 127, 118, 123, 121, 118, 122, 123, 127, 120, 118, 122, 131, 125, 122, 120, 113, 120, 118, 128, 119, 123, 126, 124, 151, 127, 122, 124, 120, 118, 122, 119, 123, 133, 128, 126, 118, 119, 123, 125, 123, 122, 119, 117, 122, 122, 123, 124, 119, 124, 122, 120, 126, 125, 134, 124, 132, 124, 130, 127, 127, 125, 123, 121, 122, 129, 123, 120, 120, 122, 131, 120, 110, 123, 123, 119, 123, 119, 131, 121, 126, 127, 118, 119, 127, 121, 121, 133, 116, 125, 121, 123, 122, 124, 116, 120, 121, 120, 121, 118, 122, 118, 123, 128, 127, 126, 120, 124, 134, 120, 115, 122, 118, 124, 130, 124, 118, 122, 120, 131, 120, 127, 124, 121, 129, 124, 122, 124, 125, 125, 124, 126, 125, 120, 127, 124, 122, 122, 125, 121, 125, 119, 120, 126, 122, 121, 131, 122, 119, 119, 118, 122, 124, 122, 124, 125, 124, 110, 123, 125, 123, 121, 127, 118, 124, 124, 119, 131, 118, 121, 119, 124, 126, 123, 123, 128, 127, 125, 125, 124, 123, 122, 124, 120, 124, 118, 122, 114, 124, 117, 114, 125, 130, 124, 142, 117, 124, 127, 121, 120, 119, 121, 134, 123, 122, 124, 115, 121, 120, 126, 122, 121, 126, 116, 124, 118, 136, 124, 124, 122, 124, 124, 123, 122, 124, 120, 118, 124, 120, 125, 122, 105, 131, 122, 113, 123, 123, 126, 137, 130, 125, 118, 118, 126, 113, 125, 118, 122, 102, 124, 123, 115, 124, 119, 124, 125, 116, 125, 128, 125, 130, 126, 118, 132, 118, 126, 121, 129, 123, 119, 126, 127, 130, 121, 132, 129, 127, 127, 120, 126, 135, 125, 119, 124, 122, 142, 128, 126, 123, 118, 122, 119, 123, 124, 130, 123, 125, 127, 122, 125, 126, 118, 120, 125, 126, 123, 119, 119, 124, 122, 127, 128, 123, 124, 125, 126, 122, 118, 119, 123, 114, 118, 123, 112, 121, 120, 128, 95, 124, 123, 105, 126, 122, 120, 142, 127, 119, 128, 127, 125, 114, 114, 132, 121, 135, 125, 125, 117, 125, 120, 119, 110, 117, 123, 126, 122, 115, 112, 120, 124, 196, 127, 121, 118, 137, 105, 114, 127, 127, 125, 113, 120, 119, 126, 121, 121, 128, 147, 116, 114, 127, 123, 127, 119, 127, 120, 129, 124, 121, 121, 124, 125, 134, 123, 122, 114, 126, 131, 112, 129, 126, 120, 124, 138, 121, 112, 118, 124, 128, 123, 124, 113, 123, 118, 122, 120, 105, 112, 121, 125, 117, 122, 96, 135, 122, 158, 126, 116, 111, 125, 125, 119, 126, 118, 123, 115, 118, 161, 116, 128, 125, 122, 121, 118, 126, 120, 127, 118, 127, 127, 123, 117, 117, 113, 123, 126, 99, 130, 98, 122, 122, 105, 117, 120, 127, 127, 125, 125, 155, 134, 119, 119, 105, 125, 127, 127, 124, 123, 135, 128, 113, 121, 112, 121, 125, 129, 123, 140, 123, 128, 114, 123, 107, 122, 126, 108, 120, 121, 131, 122, 126, 127, 126, 119, 123, 125, 130, 112, 125, 119, 127, 123, 120, 133, 125, 125, 127, 118, 128, 129, 121, 125, 124, 113, 128, 131, 123, 121, 123, 120, 137, 132, 122, 123, 118, 115, 121, 123, 119, 143, 107, 101, 124, 122, 124, 119, 128, 110, 121, 112, 128, 120, 122, 119, 119, 118, 125, 123, 121, 123, 124, 120, 114, 126, 130, 127, 120, 104, 135, 109, 124, 130, 120, 133, 119, 124, 114, 121, 107, 131, 123, 137, 109, 121, 114, 125, 115, 125, 117, 116, 121, 116, 125, 117, 112, 118, 77, 99, 121, 113, 116, 122, 122, 119, 124, 123, 112, 137, 111, 116, 126, 124, 116, 128, 111, 108, 116, 129, 72, 127, 119, 124, 128, 136, 129, 112, 130, 121, 122, 117, 122, 123, 133, 128, 127, 113, 128, 121, 115, 126, 118, 135, 101, 129, 48, 137, 117, 117, 129, 119, 136, 112, 138, 113, 117, 128, 124, 116, 113, 128, 134, 129, 118, 130, 114, 132, 138, 140, 134, 113, 118, 121, 118, 124, 130, 139, 125, 122, 186, 126, 124, 124, 124, 125, 150, 114, 124, 126, 125, 122, 116, 121, 119, 133, 116, 136, 131, 120, 121, 117, 121, 120, 120, 125, 128, 128, 135, 120, 111, 111, 114, 129, 112, 112, 106, 116, 125, 147, 97, 121, 118, 125, 120, 119, 144, 114, 117, 130, 144, 127, 141, 108, 113, 129, 138, 110, 144, 121, 132, 132, 118, 126, 120, 103, 115, 102, 118, 123, 132, 118, 144, 133, 117, 124, 122, 142, 126, 107, 127, 118, 114, 122, 120, 123, 125, 119, 110, 121, 120, 124, 113, 124, 144, 148, 117, 113, 112, 130, 119, 113, 95, 141, 121, 118, 132, 122, 136, 131, 131, 124, 125, 130, 116, 119, 109, 112, 135, 135, 126, 115, 116, 120, 118, 120, 127, 113, 110, 121, 127, 122, 121, 121, 114, 133, 118, 122, 112, 122, 122, 124, 121, 133, 109, 102, 111, 139, 126, 110, 117, 124, 119, 128, 120, 126, 118, 123, 117, 121, 125, 125, 118, 124, 123, 129, 118, 118, 124, 111, 119, 120, 126, 124, 129, 120, 116, 163, 126, 116, 130, 124, 123, 129, 135, 123, 122, 124, 126, 119, 120, 124, 109, 125, 116, 126, 124, 125, 128, 127, 121, 132, 119, 116, 123, 117, 124, 120, 98, 116, 124, 121, 119, 115, 124, 126, 123, 124, 126, 126, 123, 123, 122, 125, 116, 124, 113, 114, 117, 128, 118, 122, 122, 133, 127, 131, 118, 128, 112, 121, 124, 116, 122, 124, 125, 121, 122, 115, 121, 123, 134, 120, 116, 132, 113, 109, 129, 120, 121, 121, 120, 120, 120, 120, 124, 119, 118, 122, 123, 118, 115, 130, 125, 120, 118, 122, 129, 130, 119, 120, 126, 121, 117, 127, 133, 132, 129, 125, 135, 116, 117, 121, 134, 116, 122, 117, 127, 117, 120, 121, 119, 118, 123, 121, 136, 124, 111, 117, 124, 120, 120, 121, 118, 124, 116, 121, 122, 126, 119, 118, 120, 122, 120, 125, 115, 120, 136, 125, 111, 127, 121, 127, 125, 121, 122, 118, 127, 124, 120, 124, 117, 117, 136, 128, 135, 128, 119, 123, 121, 128, 128, 116, 123, 122, 126, 118, 121, 133, 127, 117, 115, 127, 118, 120, 139, 117, 126, 124, 124, 132, 110, 122, 128, 126, 107, 111, 115, 115, 125, 123, 120, 125, 124, 130, 128, 119, 123, 125, 117, 123, 129, 122, 121, 124, 117, 127, 126, 119, 119, 125, 130, 128, 130, 126, 124, 119, 128, 120, 123, 123, 126, 131, 130, 122, 117, 128, 126, 119, 120, 123, 137, 123, 123, 129, 118, 121, 121, 128, 123, 125, 123, 123, 119, 119, 134, 124, 120, 122, 123, 125, 125, 122, 123, 122, 116, 121, 124, 130, 120, 112, 127, 122, 130, 124, 115, 123, 130, 126, 125, 122, 126, 127, 126, 127, 124, 118, 111, 121, 124, 123, 123, 119, 118, 120, 125, 122, 131, 124, 131, 125, 124, 114, 118, 125, 122, 124, 117, 120, 129, 124, 128, 122, 133, 124, 126, 119, 117, 123, 126, 123, 123, 117, 124, 141, 137, 124, 123, 115, 128, 124, 124, 126, 121, 124, 120, 124, 126, 124, 124, 123, 123, 124, 124, 123, 121, 123, 120, 121, 119, 135, 118, 123, 117, 121, 137, 122, 119, 122, 124, 123, 124, 126, 123, 121, 126, 121, 118, 128, 122, 130, 121, 122, 126, 122, 124, 125, 124, 140, 122, 135, 121, 125, 116, 124, 124, 127, 120, 121, 125, 120, 129, 121, 110, 123, 128, 122, 124, 125, 124, 123, 120, 126, 122, 125, 119, 121, 121, 125, 128, 123, 117, 125, 121, 123, 132, 127, 128, 108, 125, 124, 117, 123, 126, 122, 121, 124, 119, 121, 120, 112, 123, 119, 119, 125, 117, 114, 123, 121, 119, 118, 120, 123, 121, 122, 111, 121, 122, 130, 121, 126, 126, 118, 125, 120, 122, 134, 132, 121, 119, 123, 120, 125, 124, 123, 139, 121, 123, 129, 128, 123, 117, 121, 130, 124, 132, 126, 119, 123, 116, 118, 129, 130, 116, 114, 138, 125, 128, 126, 107, 123, 121, 130, 103, 126, 89, 111, 163, 114, 131, 138, 135, 121, 116, 133, 128, 132, 125, 128, 111, 121, 178, 118, 128, 111, 123, 119, 125, 117, 110, 127, 141, 129, 111, 129, 136, 93, 125, 115, 130, 135, 133, 123, 126, 109, 127, 120, 118, 122, 134, 123, 125, 116, 132, 110, 121, 118, 110, 124, 116, 125, 127, 122, 109, 123, 138, 128, 119, 118, 126, 114, 117, 126, 106, 132, 128, 114, 128, 132, 183, 141, 123, 122, 141, 128, 124, 124, 114, 100, 57, 84, 112, 116, 120, 119, 129, 131, 116, 118, 139, 118, 122, 126, 140, 115, 101, 131, 127, 120, 125, 117, 116, 130, 122, 119, 115, 124, 107, 138, 112, 118, 120, 123, 127, 130, 127, 128, 117, 119, 126, 98, 117, 132, 120, 126, 105, 122, 126, 126, 128, 127, 128, 100, 126, 129, 135, 119, 123, 119, 107, 120, 123, 129, 125, 118, 118, 125, 121, 121, 121, 132, 119, 130, 129, 132, 131, 121, 153, 126, 125, 120, 135, 108, 129, 125, 118, 124, 129, 127, 119, 112, 128, 106, 118, 132, 109, 126, 119, 123, 119, 127, 122, 129, 114, 126, 121, 125, 128, 122, 114, 120, 117, 129, 126, 122, 130, 130, 118, 125, 124, 123, 130, 129, 119, 126, 126, 106, 117, 112, 115, 126, 124, 124, 128, 115, 117, 122, 98, 111, 124, 119, 132, 117, 125, 123, 125, 121, 126, 121, 115, 121, 127, 119, 120, 121, 120, 127, 129, 118, 118, 117, 127, 122, 129, 120, 115, 121, 118, 114, 123, 116, 118, 147, 117, 135, 132, 123, 124, 133, 121, 127, 115, 118, 120, 111, 121, 112, 124, 120, 122, 152, 142, 115, 119, 126, 118, 130, 121, 135, 132, 123, 132, 124, 127, 116, 123, 117, 131, 116, 114, 139, 111, 125, 129, 122, 114, 113, 118, 138, 122, 111, 128, 141, 127, 105, 110, 110, 129, 141, 127, 138, 130, 124, 128, 132, 127, 119, 137, 120, 117, 118, 136, 124, 139, 136, 109, 144, 123, 121, 133, 114, 132, 114, 117, 115, 116, 107, 118, 138, 123, 112, 115, 140, 135, 125, 123, 122, 140, 123, 121, 138, 111, 104, 116, 120, 121, 125, 118, 133, 113, 124, 114, 116, 117, 112, 118, 123, 127, 145, 121, 123, 128, 131, 121, 126, 122, 119, 118, 122, 125, 121, 126, 122, 119, 120, 129, 133, 122, 120, 129, 124, 120, 121, 122, 117, 124, 124, 114, 123, 127, 100, 115, 122, 121, 108, 123, 111, 128, 121, 127, 127, 122, 125, 124, 104, 123, 123, 127, 121, 117, 131, 123, 125, 123, 115, 134, 112, 122, 133, 123, 128, 128, 108, 122, 125, 93, 118, 123, 119, 123, 121, 126, 125, 116, 122, 119, 123, 122, 121, 125, 115, 129, 117, 125, 134, 122, 124, 122, 122, 125, 126, 107, 124, 126, 127, 128, 123, 125, 124, 127, 126, 126, 125, 126, 131, 124, 122, 128, 129, 123, 130, 119, 123, 126, 126, 120, 125, 116, 121, 123, 122, 122, 123, 125, 123, 115, 115, 126, 118, 127, 113, 124, 124, 120, 121, 122, 119, 124, 121, 129, 127, 119, 123, 134, 121, 123, 125, 121, 124, 122, 112, 124, 123, 132, 122, 124, 121, 125, 125, 123, 129, 120, 120, 125, 121, 122, 125, 119, 117, 127, 118, 121, 118, 123, 120, 124, 123, 127, 119, 117, 121, 119, 125, 124, 124, 120, 127, 128, 121, 124, 120, 131, 125, 125, 127, 126, 140, 124, 126, 129, 143, 123, 122, 127, 122, 124, 128, 127, 126, 125, 124, 117, 139, 122, 121, 131, 125, 130, 119, 117, 119, 121, 133, 132, 144, 119, 124, 123, 124, 127, 124, 123, 124, 125, 125, 123, 125, 122, 123, 115, 124, 124, 121, 124, 130, 122, 124, 120, 129, 125, 125, 120, 114, 123, 128, 120, 118, 131, 130, 125, 111, 134, 122, 129, 131, 116, 120, 114, 130, 119, 124, 121, 132, 107, 108, 120, 152, 104, 123, 127, 167, 117, 121, 130, 119, 127, 115, 136, 127, 120, 105, 125, 101, 122, 119, 137, 120, 119, 131, 126, 123, 140, 123, 126, 113, 131, 129, 120, 114, 128, 97, 71, 123, 112, 132, 121, 134, 119, 119, 125, 121, 116, 108, 111, 125, 128, 119, 104, 125, 132, 135, 119, 144, 127, 119, 138, 115, 103, 110, 122, 146, 125, 122, 126, 129, 127, 143, 95, 111, 114, 119, 118, 117, 125, 117, 150, 128, 113, 109, 120, 134, 127, 130, 122, 113, 118, 129, 120, 126, 133, 120, 124, 118, 70, 117, 130, 126, 119, 119, 165, 146, 129, 112, 123, 124, 126, 123, 114, 130, 123, 129, 120, 132, 122, 124, 118, 118, 124, 123, 124, 125, 121, 125, 107, 132, 121, 119, 122, 112, 126, 126, 126, 115, 126, 124, 140, 118, 136, 118, 120, 117, 143, 126, 125, 124, 119, 130, 135, 127, 128, 124, 123, 120, 162, 111, 121, 123, 124, 120, 124, 139, 120, 126, 123, 121, 127, 136, 120, 120, 144, 107, 120, 136, 127, 123, 126, 124, 122, 125, 127, 118, 120, 117, 118, 110, 119, 115, 121, 119, 137, 106, 123, 132, 124, 127, 123, 123, 126, 124, 128, 121, 124, 124, 125, 124, 119, 127, 132, 126, 120, 126, 126, 126, 117, 109, 112, 121, 125, 116, 120, 125, 124, 124, 129, 122, 118, 122, 120, 118, 127, 123, 124, 120, 123, 129, 127, 138, 120, 109, 114, 120, 122, 120, 129, 138, 121, 115, 138, 119, 150, 112, 121, 127, 120, 111, 124, 118, 126, 126, 126, 131, 130, 132, 117, 132, 112, 118, 128, 113, 129, 115, 120, 108, 122, 112, 112, 120, 148, 123, 113, 114, 124, 128, 125, 119, 117, 132, 122, 132, 115, 117, 137, 115, 124, 124, 120, 126, 138, 135, 115, 127, 127, 116, 109, 124, 136, 124, 129, 128, 122, 115, 122, 123, 118, 119, 103, 144, 124, 124, 122, 124, 119, 132, 120, 112, 118, 112, 130, 133, 120, 113, 124, 112, 129, 134, 120, 152, 119, 117, 121, 124, 124, 122, 124, 129, 132, 133, 123, 136, 116, 134, 134, 122, 122, 119, 124, 113, 124, 125, 120, 124, 122, 121, 122, 122, 123, 112, 115, 127, 123, 120, 128, 124, 123, 125, 125, 127, 124, 112, 122, 122, 133, 122, 121, 119, 118, 124, 119, 122, 119, 117, 120, 128, 123, 128, 119, 127, 125, 127, 126, 121, 117, 123, 148, 122, 113, 121, 135, 128, 127, 123, 121, 118, 123, 121, 121, 125, 123, 119, 121, 117, 120, 126, 123, 120, 120, 125, 119, 121, 110, 122, 121, 123, 127, 123, 123, 123, 122, 122, 121, 123, 120, 128, 121, 115, 120, 120, 121, 121, 124, 120, 125, 114, 126, 117, 121, 122, 126, 123, 121, 121, 121, 124, 105, 115, 125, 118, 124, 124, 126, 121, 121, 119, 120, 118, 122, 121, 123, 109, 120, 125, 123, 121, 123, 125, 120, 120, 118, 131, 121, 127, 112, 106, 119, 119, 126, 126, 122, 125, 110, 121, 126, 127, 118, 126, 117, 124, 124, 123, 127, 130, 118, 125, 118, 125, 125, 118, 128, 123, 124, 120, 124, 125, 124, 125, 125, 134, 116, 131, 129, 132, 121, 123, 91, 119, 133, 109, 122, 118, 118, 128, 123, 119, 121, 119, 133, 125, 130, 115, 120, 117, 123, 119, 130, 134, 133, 121, 116, 126, 123, 125, 105, 126, 128, 122, 128, 125, 119, 121, 128, 123, 129, 146, 122, 124, 128, 121, 122, 125, 119, 123, 127, 122, 132, 125, 124, 130, 128, 116, 123, 111, 126, 113, 131, 122, 124, 121, 120, 122, 127, 122, 127, 113, 119, 128, 119, 120, 113, 112, 125, 116, 118, 132, 125, 129, 118, 124, 125, 119, 119, 102, 122, 129, 119, 122, 121, 111, 123, 117, 120, 126, 128, 119, 120, 121, 115, 120, 129, 126, 125, 125, 131, 129, 125, 111, 105, 120, 136, 119, 125, 128, 124, 130, 135, 108, 124, 121, 123, 124, 134, 147, 123, 119, 125, 127, 145, 118, 133, 127, 121, 118, 121, 152, 125, 119, 125, 131, 120, 123, 117, 120, 127, 151, 126, 102, 108, 121, 127, 124, 112, 114, 131, 118, 121, 119, 118, 118, 125, 121, 126, 123, 123, 125, 116, 122, 126, 120, 122, 124, 129, 114, 125, 117, 119, 121, 122, 122, 127, 127, 122, 117, 125, 124, 123, 132, 124, 138, 125, 128, 118, 130, 119, 135, 123, 125, 127, 128, 122, 122, 124, 123, 122, 125, 119, 126, 124, 124, 128, 118, 122, 131, 127, 130, 126, 124, 114, 124, 125, 125, 106, 123, 120, 136, 125, 122, 121, 129, 122, 120, 129, 124, 123, 123, 125, 125, 124, 119, 128, 123, 122, 122, 122, 115, 125, 129, 122, 124, 108, 120, 122, 122, 116, 118, 123, 119, 122, 125, 123, 122, 126, 123, 121, 122, 121, 127, 121, 124, 121, 123, 125, 121, 126, 124, 134, 124, 111, 123, 129, 127, 123, 123, 124, 126, 127, 124, 122, 124, 125, 126, 124, 121, 123, 122, 124, 123, 122, 134, 121, 131, 127, 124, 122, 124, 121, 119, 122, 125, 139, 122, 124, 131, 124, 120, 124, 124, 124, 121, 124, 116, 125, 122, 125, 131, 124, 123, 124, 123, 122, 128, 127, 123, 124, 121, 123, 125, 121, 129, 122, 120, 129, 123, 111, 123, 124, 121, 124, 116, 126, 120, 123, 122, 122, 118, 129, 121, 120, 123, 121, 123, 123, 121, 122, 123, 123, 123, 114, 121, 121, 124, 123, 120, 123, 124, 124, 125, 121, 124, 121, 122, 119, 120, 124, 125, 124, 122, 132, 122, 123, 121, 121, 125, 121, 117, 129, 121, 137, 123, 123, 125, 125, 126, 126, 120, 125, 122, 120, 124, 121, 122, 128, 123, 125, 125, 123, 126, 133, 124, 122, 123, 120, 123, 114, 122, 125, 121, 110, 107, 124, 123, 121, 123, 122, 120, 123, 127, 123, 128, 132, 126, 123, 121, 119, 124, 125, 123, 123, 123, 114, 125, 122, 123, 124, 116, 127, 122, 117, 102, 113, 105, 122, 112, 125, 140, 115, 105, 114, 112, 128, 129, 119, 142, 119, 126, 118, 120, 117, 120, 110, 112, 112, 123, 114, 116, 122, 119, 116, 122, 97, 124, 86, 120, 96, 125, 119, 125, 124, 121, 107, 126, 117, 117, 128, 111, 123, 126, 136, 112, 122, 123, 69, 125, 122, 118, 118, 137, 134, 137, 110, 126, 119, 118, 120, 131, 126, 116, 156, 133, 115, 123, 133, 125, 108, 135, 138, 133, 129, 136, 123, 115, 140, 113, 127, 127, 122, 130, 120, 127, 133, 122, 123, 120, 122, 116, 118, 125, 118, 126, 121, 121, 118, 116, 122, 99, 119, 122, 120, 131, 129, 125, 119, 91, 119, 123, 134, 117, 117, 132, 142, 119, 121, 117, 127, 116, 115, 127, 121, 121, 121, 115, 123, 122, 117, 119, 125, 126, 117, 125, 117, 125, 117, 126, 117, 121, 135, 121, 118, 124, 121, 127, 106, 129, 124, 124, 128, 124, 126, 126, 122, 121, 122, 121, 121, 122, 129, 128, 128, 131, 123, 121, 121, 117, 104, 125, 123, 124, 120, 126, 122, 122, 122, 124, 123, 117, 120, 125, 120, 119, 122, 127, 128, 123, 119, 124, 125, 116, 120, 125, 117, 121, 125, 117, 122, 123, 125, 124, 129, 125, 126, 121, 127, 124, 113, 119, 124, 118, 125, 120, 122, 124, 116, 136, 121, 123, 124, 122, 123, 127, 124, 130, 124, 124, 156, 122, 124, 124, 125, 125, 121, 126, 119, 121, 122, 124, 121, 124, 125, 131, 128, 126, 126, 117, 120, 148, 126, 125, 124, 112, 136, 128, 140, 109, 134, 123, 141, 116, 112, 123, 134, 133, 126, 125, 104, 113, 115, 119, 110, 119, 118, 94, 123, 144, 145, 163, 120, 115, 132, 145, 129, 100, 119, 120, 97, 116, 128, 145, 121, 114, 103, 139, 79, 112, 114, 103, 114, 104, 97, 145, 114, 170, 120, 122, 128, 142, 126, 120, 105, 103, 123, 125, 129, 101, 105, 103, 113, 124, 94, 134, 104, 134, 125, 130, 131, 138, 122, 132, 117, 124, 123, 114, 117, 114, 113, 122, 122, 130, 121, 130, 122, 127, 128, 114, 123, 121, 104, 102, 117, 103, 104, 124, 85, 128, 124, 113, 116, 104, 28, 120, 139, 95, 134, 90, 119, 92, 126, 144, 118, 125, 119, 124, 114, 123, 123, 129, 130, 126, 122, 102, 124, 126, 120, 129, 136, 126, 126, 128, 123, 121, 122, 122, 117, 121, 118, 115, 119, 121, 125, 126, 128, 126, 115, 122, 119, 126, 118, 106, 123, 118, 121, 124, 125, 136, 120, 122, 123, 131, 126, 124, 120, 116, 130, 120, 102, 129, 122, 128, 139, 123, 118, 116, 124, 129, 133, 117, 117, 121, 123, 122, 132, 117, 113, 126, 119, 145, 118, 119, 114, 126, 132, 125, 122, 125, 126, 116, 118, 125, 123, 128, 131, 101, 123, 127, 121, 117, 124, 107, 125, 125, 123, 122, 118, 115, 125, 128, 109, 131, 129, 125, 119, 99, 120, 126, 118, 132, 126, 126, 125, 117, 111, 124, 123, 124, 111, 123, 122, 121, 124, 120, 121, 91, 140, 136, 107, 135, 127, 106, 126, 129, 118, 115, 118, 129, 131, 120, 120, 113, 116, 123, 122, 124, 107, 113, 123, 115, 126, 119, 140, 117, 120, 126, 100, 113, 115, 83, 88, 131, 125, 126, 108, 119, 97, 118, 128, 107, 122, 133, 116, 83, 123, 116, 117, 123, 71, 118, 118, 100, 127, 126, 152, 107, 124, 122, 147, 120, 124, 103, 129, 116, 109, 121, 116, 124, 129, 123, 110, 110, 120, 113, 118, 149, 121, 128, 122, 135, 110, 129, 133, 124, 115, 114, 115, 127, 107, 111, 108, 122, 118, 108, 132, 113, 127, 116, 116, 118, 133, 107, 124, 112, 113, 127, 136, 140, 113, 106, 122, 126, 114, 105, 112, 143, 135, 122, 123, 127, 120, 128, 103, 108, 119, 125, 125, 122, 121, 112, 101, 123, 108, 109, 116, 120, 100, 118, 102, 124, 121, 138, 151, 134, 128, 111, 124, 138, 109, 130, 111, 120, 120, 121, 116, 106, 135, 122, 117, 129, 117, 128, 147, 119, 120, 121, 135, 126, 119, 132, 105, 124, 128, 130, 124, 131, 129, 133, 131, 92, 127, 128, 123, 124, 151, 132, 129, 82, 120, 127, 112, 118, 115, 131, 135, 139, 115, 130, 125, 99, 157, 120, 112, 101, 109, 123, 130, 126, 111, 133, 114, 112, 131, 129, 149, 109, 124, 131, 139, 136, 122, 109, 121, 111, 130, 109, 135, 109, 127, 129, 115, 127, 122, 125, 154, 126, 108, 119, 128, 125, 112, 136, 124, 130, 146, 121, 104, 118, 109, 119, 134, 133, 125, 123, 122, 120, 122, 125, 123, 120, 123, 129, 121, 118, 119, 122, 120, 123, 128, 122, 127, 116, 126, 124, 117, 127, 124, 123, 119, 133, 123, 124, 135, 125, 128, 124, 134, 122, 125, 127, 125, 125, 127, 122, 118, 121, 126, 116, 120, 128, 123, 124, 126, 125, 140, 119, 124, 123, 128, 128, 113, 127, 125, 119, 125, 124, 126, 131, 122, 122, 134, 119, 123, 134, 124, 122, 126, 126, 122, 123, 124, 125, 129, 121, 124, 126, 119, 125, 122, 124, 125, 120, 124, 124, 120, 127, 138, 123, 125, 123, 130, 127, 121, 125, 125, 122, 125, 124, 120, 118, 118, 121, 120, 125, 120, 118, 131, 121, 121, 123, 126, 124, 123, 116, 131, 124, 125, 122, 126, 122, 120, 125, 119, 122, 125, 120, 121, 122, 121, 127, 125, 122, 121, 125, 123, 121, 124, 124, 125, 128, 116, 122, 119, 125, 124, 115, 121, 121, 126, 126, 122, 131, 125, 122, 126, 112, 121, 126, 124, 125, 124, 118, 123, 125, 126, 123, 130, 122, 128, 125, 118, 129, 123, 126, 125, 123, 139, 124, 123, 123, 120, 124, 123, 137, 129, 118, 98, 120, 126, 123, 128, 128, 121, 125, 123, 108, 124, 124, 125, 121, 119, 110, 126, 127, 131, 129, 116, 122, 123, 119, 123, 121, 134, 124, 119, 121, 124, 126, 133, 130, 128, 107, 125, 119, 126, 122, 128, 122, 121, 126, 119, 129, 122, 121, 119, 120, 121, 123, 124, 121, 118, 121, 121, 124, 119, 120, 120, 122, 132, 119, 132, 125, 124, 111, 112, 124, 128, 127, 116, 124, 131, 122, 123, 123, 116, 124, 127, 113, 124, 125, 125, 129, 127, 132, 126, 118, 136, 124, 118, 120, 123, 123, 119, 116, 128, 117, 119, 111, 122, 107, 113, 113, 126, 116, 126, 117, 134, 126, 126, 124, 123, 116, 132, 120, 107, 134, 123, 118, 124, 119, 129, 119, 128, 122, 135, 138, 125, 128, 134, 126, 119, 124, 125, 139, 120, 118, 118, 111, 111, 119, 125, 117, 119, 115, 125, 139, 128, 124, 112, 122, 123, 148, 127, 120, 130, 126, 121, 119, 123, 128, 178, 118, 118, 125, 125, 108, 118, 127, 142, 115, 122, 127, 125, 131, 117, 124, 112, 123, 135, 125, 123, 135, 116, 120, 125, 125, 126, 131, 125, 122, 129, 120, 124, 126, 122, 121, 120, 141, 117, 127, 125, 126, 116, 116, 92, 118, 119, 112, 126, 129, 125, 119, 122, 122, 128, 126, 117, 121, 130, 125, 125, 118, 118, 125, 127, 109, 115, 124, 124, 116, 108, 126, 145, 114, 100, 120, 123, 126, 126, 129, 123, 123, 121, 111, 125, 129, 115, 115, 111, 126, 129, 125, 120, 115, 115, 128, 123, 122, 119, 119, 101, 120, 124, 124, 123, 127, 128, 123, 123, 119, 118, 127, 130, 102, 125, 122, 126, 116, 123, 119, 129, 117, 113, 117, 119, 119, 126, 130, 125, 123, 112, 121, 141, 105, 120, 124, 127, 115, 120, 131, 121, 116, 121, 117, 123, 112, 125, 119, 120, 115, 125, 119, 115, 131, 123, 114, 121, 125, 122, 113, 116, 148, 118, 126, 119, 131, 112, 113, 119, 120, 112, 118, 125, 122, 108, 119, 120, 127, 132, 118, 123, 130, 136, 127, 136, 122, 147, 107, 130, 131, 128, 116, 122, 109, 120, 145, 116, 126, 109, 121, 129, 76, 128, 120, 124, 130, 117, 119, 129, 125, 123, 126, 128, 90, 125, 125, 130, 133, 133, 116, 118, 120, 132, 87, 134, 146, 118, 131, 106, 120, 108, 119, 121, 117, 122, 124, 119, 140, 129, 115, 119, 127, 120, 106, 107, 121, 116, 120, 133, 132, 128, 113, 127, 122, 134, 116, 122, 134, 121, 111, 138, 118, 113, 124, 124, 118, 120, 110, 123, 123, 115, 118, 124, 120, 122, 124, 127, 125, 124, 112, 119, 118, 129, 124, 126, 123, 127, 109, 110, 131, 117, 117, 105, 120, 126, 119, 146, 117, 117, 117, 126, 118, 118, 104, 121, 110, 123, 118, 121, 120, 146, 122, 120, 112, 115, 119, 124, 120, 122, 121, 123, 125, 121, 121, 127, 111, 124, 123, 158, 120, 129, 123, 119, 131, 124, 125, 120, 122, 134, 124, 120, 119, 130, 121, 121, 97, 129, 124, 126, 126, 128, 117, 116, 120, 103, 124, 130, 110, 122, 124, 122, 115, 118, 132, 132, 129, 125, 126, 107, 115, 124, 120, 110, 119, 122, 121, 118, 101, 138, 121, 115, 119, 127, 113, 118, 136, 127, 122, 100, 116, 124, 133, 111, 126, 128, 122, 122, 124, 111, 129, 123, 122, 117, 117, 115, 120, 119, 123, 117, 128, 123, 80, 122, 127, 122, 121, 125, 121, 127, 119, 116, 123, 127, 121, 126, 121, 122, 122, 122, 110, 117, 120, 111, 124, 123, 123, 119, 124, 122, 121, 121, 124, 125, 145, 154, 127, 120, 134, 124, 123, 122, 118, 114, 124, 125, 121, 123, 132, 123, 125, 127, 122, 117, 111, 121, 117, 127, 130, 123, 141, 120, 125, 103, 126, 127, 131, 122, 125, 161, 116, 124, 135, 123, 122, 125, 127, 117, 123, 128, 124, 121, 129, 125, 117, 125, 120, 124, 112, 124, 123, 127, 120, 124, 125, 142, 124, 126, 126, 121, 125, 127, 127, 123, 123, 127, 123, 121, 120, 119, 121, 129, 127, 127, 113, 118, 120, 123, 126, 122, 106, 122, 123, 122, 126, 122, 125, 115, 121, 121, 123, 121, 121, 128, 129, 123, 112, 122, 128, 121, 132, 132, 113, 113, 127, 125, 137, 108, 124, 122, 119, 130, 123, 122, 127, 112, 123, 125, 124, 129, 118, 124, 123, 128, 119, 122, 125, 122, 130, 118, 122, 124, 122, 130, 126, 120, 123, 124, 120, 137, 115, 117, 122, 124, 132, 123, 123, 124, 118, 122, 124, 121, 126, 121, 120, 119, 120, 124, 122, 118, 120, 125, 114, 120, 119, 123, 132, 118, 129, 121, 135, 129, 125, 121, 127, 113, 127, 122, 131, 126, 118, 122, 123, 125, 127, 134, 137, 124, 121, 128, 125, 123, 125, 120, 118, 122, 112, 127, 128, 132, 121, 124, 127, 123, 124, 123, 122, 126, 121, 126, 113, 120, 121, 122, 124, 121, 130, 126, 131, 118, 124, 121, 120, 123, 120, 123, 118, 122, 126, 121, 120, 124, 124, 118, 123, 123, 145, 124, 120, 131, 128, 121, 122, 124, 123, 130, 138, 124, 123, 127, 101, 117, 126, 126, 94, 117, 120, 123, 126, 108, 123, 120, 121, 115, 122, 124, 119, 122, 123, 123, 152, 128, 123, 120, 112, 122, 123, 127, 127, 97, 126, 121, 101, 123, 143, 116, 121, 121, 124, 122, 120, 126, 131, 123, 120, 132, 121, 125, 122, 125, 119, 123, 149, 124, 119, 129, 124, 124, 126, 124, 124, 126, 127, 123, 126, 118, 127, 133, 124, 112, 124, 122, 123, 115, 124, 122, 122, 126, 119, 128, 121, 127, 141, 124, 106, 119, 141, 120, 129, 126, 120, 125, 129, 124, 125, 119, 119, 110, 124, 124, 123, 125, 118, 120, 119, 129, 147, 123, 124, 127, 125, 124, 121, 150, 127, 126, 123, 112, 124, 124, 124, 124, 124, 121, 111, 125, 129, 125, 128, 123, 119, 126, 114, 122, 127, 121, 123, 133, 121, 127, 122, 113, 126, 137, 128, 125, 127, 124, 127, 118, 119, 126, 125, 126, 125, 124, 160, 127, 126, 121, 119, 128, 128, 133, 124, 127, 121, 127, 118, 126, 125, 125, 123, 109, 123, 123, 119, 122, 120, 124, 138, 125, 132, 125, 121, 121, 130, 127, 119, 114, 120, 127, 126, 122, 124, 116, 128, 124, 123, 122, 124, 127, 130, 122, 18, 121, 119, 135, 120, 125, 126, 125, 122, 123, 130, 124, 103, 125, 126, 122, 123, 125, 106, 117, 123, 124, 117, 109, 120, 134, 120, 120, 119, 127, 141, 122, 117, 130, 125, 130, 126, 124, 125, 142, 120, 123, 126, 124, 115, 121, 122, 114, 132, 115, 120, 129, 121, 115, 120, 124, 130, 124, 127, 119, 128, 125, 133, 128, 121, 132, 128, 119, 116, 118, 111, 131, 131, 121, 122, 119, 125, 107, 130, 122, 140, 110, 123, 116, 130, 117, 116, 119, 117, 121, 108, 113, 117, 137, 115, 144, 125, 118, 130, 124, 129, 118, 117, 117, 134, 131, 106, 118, 115, 121, 127, 121, 119, 132, 116, 124, 125, 124, 111, 114, 125, 113, 114, 120, 124, 109, 130, 116, 117, 125, 118, 117, 118, 125, 108, 121, 109, 126, 114, 121, 133, 125, 121, 122, 123, 132, 133, 133, 123, 125, 125, 114, 115, 126, 134, 106, 138, 122, 133, 124, 141, 144, 127, 136, 120, 113, 141, 123, 129, 105, 117, 134, 131, 116, 113, 126, 121, 101, 128, 130, 111, 123, 140, 105, 141, 102, 153, 150, 120, 152, 126, 128, 137, 130, 119, 140, 122, 108, 142, 106, 131, 121, 128, 116, 101, 104, 135, 131, 128, 128, 100, 126, 107, 124, 102, 124, 126, 98, 122, 108, 130, 125, 114, 128, 110, 137, 116, 122, 125, 118, 119, 143, 145, 138, 122, 125, 127, 111, 91, 129, 115, 140, 113, 142, 110, 113, 113, 127, 130, 107, 139, 139, 118, 120, 121, 121, 127, 113, 134, 125, 109, 127, 128, 111, 124, 116, 129, 108, 115, 109, 127, 127, 106, 107, 121, 122, 123, 121, 122, 119, 114, 129, 117, 128, 119, 132, 127, 134, 124, 127, 121, 120, 125, 106, 123, 117, 119, 126, 129, 126, 128, 123, 120, 118, 124, 112, 125, 121, 112, 124, 123, 124, 129, 129, 133, 123, 127, 123, 124, 119, 123, 129, 122, 109, 127, 119, 120, 128, 119, 127, 129, 121, 117, 120, 125, 120, 109, 125, 136, 126, 122, 124, 126, 126, 122, 120, 129, 117, 117, 97, 115, 132, 130, 123, 126, 126, 135, 133, 126, 120, 122, 123, 121, 124, 124, 124, 121, 124, 124, 121, 123, 117, 130, 130, 118, 125, 132, 126, 126, 128, 125, 129, 117, 125, 124, 125, 128, 126, 123, 122, 124, 117, 125, 130, 131, 121, 129, 126, 113, 123, 120, 125, 132, 131, 131, 125, 112, 127, 102, 125, 120, 132, 130, 138, 113, 109, 112, 134, 126, 125, 116, 124, 124, 124, 126, 125, 123, 126, 115, 120, 122, 83, 124, 113, 118, 119, 115, 114, 128, 116, 124, 118, 126, 119, 118, 132, 139, 125, 130, 108, 120, 132, 120, 118, 134, 120, 130, 137, 127, 126, 116, 122, 124, 125, 124, 123, 119, 130, 131, 125, 125, 131, 110, 120, 128, 130, 120, 115, 110, 132, 123, 125, 126, 124, 122, 125, 123, 115, 121, 134, 104, 121, 125, 107, 121, 132, 119, 133, 131, 121, 102, 106, 123, 124, 115, 117, 143, 123, 125, 115, 114, 120, 119, 113, 126, 132, 128, 136, 124, 114, 120, 120, 128, 116, 131, 123, 118, 123, 120, 116, 126, 126, 121, 112, 131, 112, 122, 125, 109, 124, 123, 125, 127, 122, 123, 122, 123, 122, 120, 127, 74, 129, 129, 80, 122, 119, 122, 125, 124, 123, 137, 120, 122, 124, 123, 128, 127, 125, 84, 126, 127, 120, 122, 135, 125, 128, 124, 134, 126, 130, 112, 122, 125, 125, 111, 119, 120, 120, 122, 125, 127, 125, 125, 101, 121, 124, 77, 126, 118, 125, 115, 123, 117, 125, 122, 121, 121, 124, 138, 104, 123, 123, 121, 128, 108, 126, 136, 127, 127, 111, 120, 124, 125, 117, 118, 123, 121, 123, 122, 124, 122, 124, 123, 123, 124, 120, 131, 128, 116, 121, 128, 123, 125, 120, 115, 118, 114, 126, 108, 117, 116, 126, 123, 128, 120, 121, 124, 127, 127, 122, 124, 122, 120, 125, 123, 119, 123, 120, 123, 115, 122, 121, 121, 118, 124, 114, 121, 135, 125, 124, 125, 125, 131, 119, 120, 120, 126, 133, 130, 124, 123, 129, 117, 124, 124, 125, 122, 124, 100, 130, 121, 127, 117, 116, 131, 125, 112, 131, 120, 116, 120, 122, 125, 130, 118, 141, 116, 123, 127, 123, 134, 130, 124, 126, 124, 111, 121, 115, 120, 119, 132, 124, 125, 133, 127, 123, 117, 123, 129, 127, 122, 114, 124, 114, 108, 119, 128, 122, 117, 115, 114, 112, 127, 120, 122, 125, 122, 128, 127, 121, 119, 120, 125, 123, 124, 129, 130, 110, 121, 120, 123, 126, 127, 114, 127, 120, 124, 137, 120, 113, 123, 125, 136, 122, 122, 122, 121, 98, 134, 122, 113, 161, 115, 110, 123, 126, 124, 112, 119, 120, 97, 120, 115, 107, 116, 128, 115, 113, 118, 120, 154, 127, 135, 90, 118, 128, 125, 117, 137, 126, 121, 136, 132, 121, 126, 124, 114, 98, 128, 118, 121, 122, 121, 129, 112, 119, 124, 124, 126, 126, 117, 135, 113, 121, 111, 129, 126, 129, 122, 121, 133, 146, 119, 119, 119, 121, 132, 140, 123, 136, 119, 116, 117, 133, 124, 120, 127, 131, 118, 72, 126, 95, 128, 130, 118, 118, 114, 99, 92, 125, 121, 141, 123, 126, 120, 127, 118, 122, 132, 118, 140, 123, 126, 129, 119, 123, 125, 104, 121, 116, 130, 102, 129, 118, 121, 122, 126, 137, 122, 136, 131, 122, 119, 100, 128, 109, 126, 136, 124, 118, 132, 117, 120, 125, 125, 121, 120, 138, 116, 123, 115, 125, 124, 124, 120, 125, 125, 118, 110, 119, 113, 131, 119, 129, 126, 122, 114, 123, 125, 119, 119, 121, 121, 132, 127, 122, 126, 120, 115, 126, 117, 128, 124, 118, 121, 124, 119, 128, 124, 118, 125, 117, 124, 122, 127, 116, 128, 123, 128, 120, 120, 125, 121, 120, 124, 126, 126, 123, 121, 125, 138, 124, 125, 123, 127, 124, 119, 120, 125, 123, 125, 121, 125, 120, 115, 133, 127, 129, 118, 120, 119, 129, 128, 124, 125, 123, 122, 122, 122, 126, 122, 125, 118, 128, 125, 120, 127, 122, 123, 122, 118, 125, 120, 98, 124, 121, 121, 123, 143, 129, 131, 124, 131, 119, 129, 119, 121, 122, 125, 118, 118, 113, 123, 127, 122, 122, 128, 129, 124, 118, 122, 122, 131, 118, 124, 122, 125, 120, 121, 115, 101, 124, 129, 114, 123, 127, 112, 107, 123, 119, 106, 123, 114, 127, 127, 127, 124, 123, 122, 125, 119, 126, 126, 122, 133, 116, 120, 125, 123, 123, 128, 166, 116, 124, 120, 126, 118, 124, 120, 126, 125, 116, 122, 122, 125, 117, 118, 120, 130, 117, 122, 121, 115, 127, 127, 115, 110, 129, 111, 122, 119, 131, 122, 128, 118, 123, 121, 112, 124, 123, 117, 117, 128, 122, 118, 118, 130, 122, 125, 126, 115, 124, 120, 117, 121, 124, 125, 119, 124, 121, 124, 119, 125, 125, 123, 129, 127, 122, 122, 116, 121, 119, 124, 122, 122, 124, 108, 117, 131, 118, 127, 118, 123, 133, 112, 138, 126, 125, 125, 121, 124, 122, 118, 126, 129, 115, 110, 116, 119, 133, 120, 128, 111, 124, 120, 126, 120, 124, 126, 125, 120, 121, 125, 120, 116, 126, 120, 134, 120, 131, 122, 120, 118, 126, 124, 123, 124, 142, 128, 122, 124, 120, 120, 121, 114, 117, 121, 111, 118, 125, 123, 128, 112, 122, 125, 122, 140, 122, 128, 126, 115, 122, 138, 128, 125, 120, 120, 118, 113, 124, 122, 129, 127, 142, 124, 118, 118, 121, 130, 124, 130, 121, 126, 121, 124, 120, 120, 121, 127, 141, 126, 133, 121, 120, 123, 124, 122, 132, 124, 142, 125, 126, 129, 113, 127, 121, 123, 121, 118, 128, 118, 125, 117, 122, 121, 119, 111, 89, 124, 113, 123, 131, 137, 120, 133, 125, 132, 122, 130, 126, 118, 125, 128, 123, 120, 114, 126, 134, 125, 127, 137, 128, 110, 131, 126, 128, 136, 115, 123, 133, 137, 134, 121, 121, 117, 117, 121, 102, 120, 132, 118, 121, 118, 122, 125, 110, 119, 124, 131, 136, 127, 129, 126, 118, 116, 111, 116, 125, 136, 123, 118, 111, 125, 119, 128, 130, 128, 131, 121, 115, 125, 123, 119, 129, 137, 117, 129, 120, 122, 121, 110, 126, 120, 125, 127, 132, 145, 125, 122, 128, 124, 127, 121, 132, 126, 127, 115, 118, 126, 138, 131, 124, 123, 123, 118, 122, 112, 144, 126, 128, 123, 107, 126, 114, 114, 119, 146, 113, 120, 111, 134, 127, 125, 111, 132, 121, 122, 124, 137, 117, 132, 124, 131, 113, 117, 129, 128, 123, 109, 119, 123, 118, 106, 112, 79, 121, 126, 109, 131, 125, 116, 97, 122, 118, 108, 123, 129, 121, 120, 128, 118, 125, 120, 120, 109, 130, 123, 131, 116, 107, 114, 130, 121, 122, 142, 168, 117, 124, 125, 127, 115, 134, 120, 121, 129, 121, 133, 124, 117, 122, 135, 120, 123, 117, 125, 135, 122, 116, 127, 110, 123, 157, 113, 120, 137, 140, 110, 128, 108, 117, 104, 116, 114, 125, 117, 119, 122, 125, 131, 114, 147, 125, 136, 116, 132, 121, 126, 108, 128, 117, 113, 118, 129, 121, 130, 128, 119, 151, 113, 138, 115, 126, 117, 102, 134, 127, 103, 127, 130, 129, 119, 112, 95, 132, 123, 108, 118, 119, 117, 133, 121, 126, 123, 133, 121, 147, 109, 126, 128, 123, 118, 115, 131, 127, 132, 135, 123, 125, 111, 122, 115, 119, 129, 122, 96, 122, 96, 124, 111, 120, 122, 104, 128, 122, 127, 130, 128, 116, 130, 132, 134, 128, 138, 124, 128, 125, 133, 130, 123, 120, 121, 125, 130, 134, 118, 114, 147, 118, 117, 128, 125, 103, 124, 124, 118, 123, 134, 120, 134, 122, 124, 120, 124, 116, 139, 120, 121, 129, 124, 134, 116, 122, 120, 118, 117, 121, 122, 122, 133, 120, 122, 116, 119, 126, 127, 114, 125, 124, 128, 125, 124, 120, 131, 123, 127, 116, 119, 125, 119, 117, 127, 109, 112, 94, 127, 125, 137, 126, 126, 148, 118, 130, 131, 152, 125, 137, 116, 117, 127, 123, 118, 120, 121, 118, 113, 129, 146, 132, 122, 132, 110, 116, 122, 96, 151, 105, 113, 119, 133, 121, 132, 125, 138, 112, 135, 128, 113, 122, 122, 122, 134, 127, 117, 126, 101, 136, 124, 120, 134, 128, 113, 107, 104, 108, 117, 119, 147, 127, 124, 124, 121, 122, 111, 125, 117, 102, 138, 113, 128, 112, 132, 113, 140, 124, 116, 83, 129, 134, 128, 112, 104, 123, 130, 124, 130, 124, 121, 142, 132, 112, 130, 132, 131, 121, 149, 127, 132, 125, 116, 117, 119, 124, 119, 119, 118, 119, 126, 138, 114, 126, 120, 126, 117, 125, 128, 147, 131, 117, 121, 117, 124, 130, 126, 125, 128, 128, 118, 118, 127, 115, 111, 125, 117, 116, 135, 124, 129, 128, 134, 120, 120, 123, 123, 125, 140, 133, 119, 110, 126, 106, 123, 122, 137, 120, 125, 122, 120, 115, 123, 121, 120, 125, 121, 123, 127, 124, 127, 118, 125, 136, 122, 115, 113, 125, 123, 125, 131, 128, 125, 127, 124, 126, 123, 113, 146, 124, 122, 123, 123, 119, 120, 123, 123, 124, 135, 116, 113, 119, 120, 122, 130, 116, 121, 129, 120, 128, 123, 133, 113, 125, 128, 124, 122, 124, 127, 121, 128, 95, 122, 127, 116, 121, 118, 125, 119, 127, 127, 126, 119, 127, 122, 141, 125, 122, 122, 126, 124, 120, 128, 125, 121, 125, 125, 113, 111, 119, 130, 117, 123, 136, 113, 121, 119, 133, 122, 118, 121, 111, 129, 123, 118, 121, 125, 114, 129, 116, 122, 131, 123, 116, 126, 159, 125, 130, 121, 132, 122, 117, 106, 127, 114, 132, 114, 121, 115, 124, 131, 113, 123, 128, 127, 117, 124, 105, 124, 113, 126, 127, 112, 114, 126, 128, 156, 124, 112, 121, 115, 122, 109, 118, 103, 88, 133, 121, 80, 130, 102, 138, 123, 119, 131, 109, 117, 131, 119, 118, 155, 158, 121, 125, 113, 125, 101, 128, 127, 128, 120, 120, 111, 125, 129, 124, 121, 123, 128, 120, 119, 125, 126, 104, 117, 115, 127, 128, 126, 114, 129, 127, 135, 124, 53, 124, 135, 126, 121, 129, 161, 123, 127, 125, 128, 126, 135, 128, 125, 118, 131, 125, 116, 123, 124, 119, 126, 100, 118, 125, 123, 114, 133, 143, 134, 120, 141, 93, 125, 110, 118, 109, 109, 130, 165, 113, 164, 142, 117, 125, 126, 121, 136, 125, 97, 127, 133, 134, 122, 104, 132, 118, 112, 123, 129, 120, 112, 132, 121, 130, 124, 104, 99, 108, 122, 113, 109, 110, 119, 120, 129, 120, 120, 132, 143, 118, 118, 115, 109, 120, 128, 111, 113, 120, 110, 116, 124, 115, 115, 123, 125, 113, 114, 116, 115, 126, 130, 118, 120, 112, 120, 127, 130, 118, 143, 124, 119, 126, 136, 132, 112, 121, 223, 158, 108, 122, 122, 132, 115, 120, 122, 175, 130, 102, 121, 142, 121, 128, 117, 116, 137, 150, 125, 135, 136, 122, 123, 127, 132, 117, 126, 116, 123, 123, 115, 111, 122, 126, 147, 122, 119, 154, 111, 155, 119, 128, 138, 134, 125, 122, 114, 122, 135, 115, 121, 114, 131, 145, 121, 121, 113, 124, 125, 118, 116, 126, 123, 133, 125, 124, 117, 124, 104, 124, 114, 134, 127, 128, 125, 99, 133, 124, 122, 123, 127, 117, 128, 123, 126, 128, 126, 121, 114, 119, 123, 121, 123, 124, 122, 125, 124, 123, 127, 124, 118, 126, 120, 121, 123, 114, 117, 127, 121, 123, 128, 120, 120, 122, 120, 134, 126, 124, 123, 127, 113, 125, 145, 130, 123, 123, 109, 123, 130, 123, 125, 119, 125, 126, 123, 131, 122, 119, 126, 126, 127, 120, 128, 122, 121, 124, 119, 119, 137, 109, 135, 125, 130, 125, 123, 130, 122, 121, 119, 120, 125, 122, 120, 140, 124, 114, 125, 125, 118, 125, 122, 122, 123, 120, 117, 119, 118, 131, 121, 117, 127, 100, 124, 120, 124, 120, 121, 117, 126, 118, 122, 124, 123, 124, 123, 127, 122, 122, 124, 116, 122, 124, 123, 122, 120, 125, 129, 121, 122, 124, 120, 120, 127, 122, 124, 118, 120, 128, 127, 129, 121, 125, 125, 113, 121, 129, 116, 115, 130, 125, 120, 120, 122, 126, 125, 120, 127, 126, 123, 142, 121, 121, 121, 119, 125, 120, 122, 130, 125, 112, 106, 112, 123, 123, 117, 123, 111, 123, 124, 125, 122, 126, 123, 121, 121, 126, 123, 125, 123, 124, 121, 130, 119, 118, 124, 121, 120, 128, 122, 120, 108, 131, 147, 123, 120, 123, 115, 127, 132, 121, 129, 116, 118, 118, 119, 125, 129, 127, 132, 117, 116, 119, 117, 119, 116, 120, 128, 120, 124, 131, 110, 137, 115, 143, 136, 109, 117, 121, 115, 122, 107, 101, 117, 136, 124, 145, 110, 104, 121, 110, 123, 126, 151, 133, 118, 125, 128, 119, 105, 125, 134, 123, 111, 125, 119, 137, 114, 120, 132, 138, 132, 128, 119, 109, 103, 141, 120, 131, 155, 111, 104, 120, 129, 126, 128, 104, 143, 127, 112, 125, 120, 122, 108, 120, 117, 151, 124, 127, 115, 128, 122, 127, 118, 121, 108, 129, 123, 108, 121, 126, 134, 119, 135, 112, 151, 123, 129, 114, 124, 121, 127, 127, 109, 126, 117, 122, 123, 99, 125, 122, 130, 118, 116, 125, 125, 121, 111, 124, 124, 122, 129, 118, 116, 127, 120, 121, 119, 124, 126, 121, 124, 142, 124, 124, 129, 126, 126, 123, 109, 124, 128, 122, 112, 118, 121, 122, 125, 120, 119, 128, 119, 116, 127, 124, 125, 123, 113, 122, 119, 127, 126, 117, 150, 122, 125, 119, 121, 119, 112, 128, 114, 96, 123, 121, 88, 118, 122, 125, 129, 128, 111, 120, 122, 121, 125, 122, 132, 146, 122, 121, 119, 126, 132, 122, 123, 122, 129, 105, 127, 120, 118, 119, 121, 115, 123, 124, 123, 129, 133, 120, 119, 118, 126, 126, 129, 121, 120, 126, 106, 126, 98, 130, 132, 120, 118, 121, 131, 123, 128, 125, 127, 126, 123, 126, 131, 127, 123, 116, 145, 120, 131, 131, 118, 110, 108, 125, 138, 119, 126, 123, 122, 124, 119, 123, 126, 142, 118, 111, 120, 125, 120, 122, 126, 119, 138, 126, 119, 121, 117, 114, 139, 122, 105, 122, 116, 121, 125, 125, 110, 120, 122, 116, 124, 118, 139, 121, 123, 120, 134, 111, 129, 136, 133, 120, 133, 133, 141, 125, 119, 121, 123, 123, 108, 132, 119, 111, 160, 133, 92, 119, 124, 103, 120, 103, 117, 124, 120, 118, 127, 125, 134, 128, 122, 122, 129, 112, 129, 118, 121, 127, 114, 103, 123, 127, 118, 126, 125, 124, 127, 114, 140, 126, 120, 126, 116, 141, 130, 118, 117, 121, 140, 123, 125, 132, 115, 115, 122, 132, 119, 120, 122, 111, 125, 121, 110, 119, 129, 125, 109, 122, 116, 125, 119, 119, 125, 124, 124, 123, 126, 129, 110, 128, 121, 125, 124, 127, 128, 128, 121, 122, 125, 117, 108, 116, 123, 102, 128, 108, 124, 96, 128, 122, 120, 115, 127, 114, 135, 131, 123, 128, 116, 118, 126, 122, 120, 125, 128, 84, 126, 122, 134, 125, 131, 145, 125, 126, 120, 118, 126, 114, 124, 123, 122, 121, 128, 123, 126, 126, 121, 122, 120, 130, 118, 123, 121, 122, 127, 123, 120, 133, 123, 121, 119, 118, 125, 122, 129, 123, 119, 126, 129, 123, 122, 121, 124, 121, 125, 124, 117, 123, 111, 127, 120, 123, 123, 123, 128, 121, 112, 125, 120, 124, 127, 120, 126, 145, 121, 124, 119, 124, 118, 115, 124, 125, 124, 121, 118, 117, 120, 118, 128, 123, 124, 119, 122, 113, 118, 127, 124, 119, 118, 140, 118, 123, 117, 120, 121, 125, 115, 119, 125, 131, 122, 122, 116, 122, 124, 121, 132, 119, 122, 125, 116, 124, 126, 118, 115, 119, 118, 128, 122, 122, 123, 123, 123, 127, 125, 121, 112, 125, 126, 125, 127, 123, 127, 120, 112, 125, 118, 118, 125, 118, 133, 134, 119, 107, 121, 134, 125, 125, 122, 126, 122, 125, 121, 110, 120, 116, 120, 119, 118, 118, 122, 119, 122, 123, 125, 123, 117, 123, 113, 119, 121, 120, 123, 123, 121, 123, 122, 118, 124, 122, 124, 126, 121, 125, 124, 115, 120, 125, 123, 122, 122, 125, 118, 117, 126, 123, 124, 121, 123, 122, 119, 115, 120, 128, 116, 127, 128, 121, 120, 123, 121, 112, 124, 112, 124, 120, 126, 119, 113, 94, 122, 138, 122, 132, 120, 122, 118, 127, 51, 123, 120, 120, 126, 126, 124, 118, 131, 118, 122, 127, 117, 123, 122, 107, 125, 128, 119, 136, 211, 119, 126, 127, 113, 123, 121, 119, 127, 131, 117, 123, 96, 120, 124, 120, 119, 123, 80, 120, 118, 122, 123, 115, 114, 123, 125, 119, 128, 130, 127, 124, 117, 130, 114, 124, 111, 127, 126, 123, 119, 124, 122, 115, 122, 123, 126, 118, 124, 122, 121, 186, 123, 124, 127, 71, 126, 134, 132, 125, 160, 120, 152, 118, 128, 121, 31, 125, 110, 122, 117, 123, 125, 125, 129, 127, 125, 124, 154, 132, 121, 119, 119, 126, 120, 123, 129, 122, 124, 122, 101, 122, 127, 124, 124, 130, 123, 156, 127, 122, 108, 127, 114, 121, 128, 117, 146, 124, 124, 136, 115, 127, 137, 133, 121, 121, 126, 117, 120, 128, 134, 130, 111, 100, 116, 85, 134, 138, 135, 151, 138, 100, 129, 136, 138, 124, 107, 130, 139, 124, 129, 153, 122, 126, 121, 130, 139, 133, 125, 113, 132, 138, 130, 126, 124, 110, 121, 120, 131, 121, 119, 126, 134, 128, 130, 123, 139, 131, 128, 121, 131, 119, 127, 122, 106, 119, 113, 133, 124, 123, 122, 118, 120, 130, 112, 146, 150, 118, 140, 120, 130, 141, 127, 130, 140, 120, 139, 118, 142, 122, 122, 116, 138, 126, 135, 120, 132, 130, 121, 135, 120, 115, 127, 116, 122, 122, 157, 113, 124, 128, 133, 161, 121, 129, 103, 119, 122, 122, 113, 119, 113, 71, 126, 128, 131, 95, 121, 122, 128, 116, 126, 122, 123, 110, 119, 113, 126, 119, 122, 124, 114, 120, 140, 147, 128, 105, 127, 83, 125, 126, 126, 130, 118, 122, 125, 127, 126, 137, 115, 129, 133, 137, 121, 126, 124, 120, 118, 109, 123, 149, 111, 133, 127, 127, 120, 127, 120, 133, 130, 129, 114, 122, 115, 118, 148, 120, 121, 116, 125, 125, 127, 134, 78, 101, 110, 120, 118, 123, 116, 131, 134, 128, 128, 120, 119, 120, 118, 109, 121, 126, 119, 126, 116, 117, 112, 120, 125, 120, 123, 130, 130, 135, 110, 132, 119, 126, 128, 118, 122, 119, 120, 131, 119, 118, 117, 120, 117, 117, 124, 118, 121, 122, 118, 143, 123, 109, 122, 129, 127, 125, 128, 130, 125, 117, 173, 124, 123, 122, 117, 128, 128, 124, 123, 118, 118, 123, 133, 116, 124, 108, 123, 143, 117, 137, 6, 121, 131, 130, 121, 128, 119, 118, 120, 131, 117, 130, 97, 120, 120, 126, 126, 125, 153, 129, 126, 126, 121, 118, 124, 118, 131, 119, 118, 121, 123, 121, 116, 121, 108, 120, 133, 116, 131, 114, 118, 123, 122, 118, 126, 123, 121, 124, 123, 121, 125, 0, 125, 130, 124, 152, 119, 132, 123, 120, 136, 126, 125, 126, 127, 127, 174, 125, 143, 120, 115, 120, 141, 122, 129, 125, 126, 125, 122, 152, 116, 105, 127, 123, 107, 139, 129, 123, 126, 121, 124, 113, 140, 123, 139, 131, 122, 111, 127, 120, 119, 116, 135, 133, 118, 116, 124, 116, 128, 114, 157, 129, 106, 124, 126, 121, 134, 99, 134, 124, 118, 130, 123, 126, 128, 124, 121, 141, 119, 121, 126, 122, 124, 128, 126, 138, 119, 117, 129, 116, 127, 120, 127, 126, 110, 122, 111, 131, 133, 111, 128, 122, 125, 119, 118, 115, 122, 131, 118, 104, 118, 118, 124, 134, 140, 124, 119, 116, 135, 94, 120, 117, 133, 134, 121, 130, 115, 117, 119, 127, 127, 128, 114, 133, 125, 120, 127, 113, 124, 130, 135, 124, 113, 126, 127, 115, 122, 129, 126, 131, 115, 107, 114, 103, 103, 118, 134, 119, 145, 140, 105, 130, 137, 126, 145, 123, 121, 138, 123, 128, 136, 118, 148, 119, 116, 123, 125, 127, 106, 141, 116, 122, 119, 160, 101, 115, 128, 135, 133, 166, 143, 130, 133, 115, 138, 120, 153, 119, 122, 123, 112, 126, 130, 130, 111, 132, 121, 116, 138, 131, 125, 115, 113, 128, 136, 132, 116, 104, 121, 120, 136, 138, 132, 115, 123, 119, 113, 105, 116, 134, 105, 112, 127, 147, 107, 114, 107, 102, 122, 119, 142, 117, 125, 126, 133, 128, 112, 141, 124, 137, 138, 129, 116, 106, 131, 120, 130, 123, 138, 127, 106, 127, 173, 119, 131, 127, 121, 139, 120, 121, 142, 118, 123, 139, 119, 136, 119, 150, 114, 131, 137, 127, 130, 95, 121, 126, 105, 122, 114, 130, 125, 122, 108, 125, 122, 122, 123, 125, 123, 126, 125, 119, 119, 107, 123, 110, 119, 127, 121, 121, 122, 124, 124, 127, 125, 122, 122, 123, 118, 121, 114, 128, 127, 122, 120, 131, 109, 118, 122, 97, 127, 120, 127, 125, 117, 125, 122, 123, 122, 129, 126, 121, 128, 125, 119, 120, 110, 127, 125, 126, 127, 123, 121, 128, 120, 124, 126, 122, 125, 106, 126, 125, 116, 122, 122, 120, 125, 123, 133, 120, 130, 119, 127, 114, 123, 126, 125, 121, 122, 122, 121, 122, 126, 123, 125, 120, 123, 127, 120, 126, 128, 128, 122, 122, 121, 128, 121, 120, 133, 117, 128, 121, 125, 125, 119, 126, 145, 121, 119, 121, 124, 117, 121, 127, 119, 136, 120, 117, 123, 122, 121, 122, 123, 128, 124, 109, 123, 125, 127, 122, 117, 128, 124, 122, 120, 121, 123, 127, 122, 120, 121, 118, 126, 123, 124, 118, 122, 123, 124, 120, 124, 119, 118, 124, 121, 125, 124, 120, 120, 122, 123, 120, 123, 122, 127, 122, 121, 127, 122, 134, 125, 121, 124, 122, 124, 123, 121, 124, 121, 120, 118, 124, 125, 119, 119, 123, 125, 123, 129, 123, 125, 123, 128, 120, 136, 120, 123, 123, 125, 121, 124, 121, 119, 121, 121, 137, 116, 125, 123, 115, 117, 116, 119, 126, 126, 120, 120, 121, 123, 128, 123, 127, 123, 124, 123, 124, 125, 121, 127, 122, 123, 156, 123, 119, 123, 119, 123, 120, 118, 121, 122, 123, 123, 121, 119, 122, 123, 116, 122, 124, 109, 116, 117, 118, 123, 130, 125, 122, 123, 142, 124, 120, 110, 122, 124, 138, 119, 119, 122, 121, 122, 124, 124, 120, 125, 128, 129, 120, 120, 123, 125, 124, 126, 122, 116, 116, 120, 149, 124, 122, 124, 140, 128, 122, 124, 123, 121, 123, 123, 126, 125, 127, 131, 126, 120, 125, 127, 118, 124, 121, 125, 124, 124, 108, 123, 130, 123, 112, 123, 124, 127, 122, 121, 121, 122, 125, 124, 119, 118, 123, 121, 120, 126, 125, 124, 124, 118, 126, 123, 118, 123, 123, 121, 121, 126, 123, 120, 100, 123, 121, 117, 123, 125, 124, 124, 123, 125, 118, 128, 121, 126, 120, 112, 120, 125, 124, 122, 122, 123, 128, 122, 130, 122, 125, 110, 124, 131, 128, 119, 127, 126, 126, 128, 119, 127, 126, 124, 122, 121, 126, 120, 125, 124, 129, 127, 126, 128, 111, 124, 119, 131, 118, 124, 125, 121, 125, 123, 119, 129, 125, 118, 122, 128, 117, 126, 122, 126, 135, 125, 114, 124, 123, 126, 125, 127, 117, 121, 124, 120, 128, 121, 122, 125, 129, 123, 128, 123, 120, 118, 110, 123, 123, 122, 117, 113, 123, 118, 118, 124, 125, 125, 129, 123, 119, 123, 125, 116, 121, 128, 117, 123, 121, 125, 125, 126, 116, 115, 113, 118, 122, 127, 123, 128, 120, 121, 127, 123, 126, 119, 122, 119, 121, 125, 124, 124, 116, 130, 120, 121, 121, 124, 127, 119, 123, 121, 128, 124, 132, 125, 121, 131, 131, 113, 134, 130, 118, 131, 119, 120, 142, 134, 131, 132, 126, 127, 107, 123, 121, 129, 127, 130, 121, 141, 124, 120, 129, 125, 114, 135, 124, 121, 124, 127, 126, 120, 113, 119, 129, 118, 124, 122, 128, 128, 123, 126, 119, 120, 128, 126, 114, 122, 123, 126, 119, 122, 116, 118, 112, 123, 126, 98, 123, 122, 120, 127, 121, 125, 119, 119, 125, 126, 119, 121, 119, 126, 119, 127, 114, 125, 135, 124, 130, 115, 117, 117, 124, 126, 109, 116, 120, 133, 134, 120, 138, 136, 120, 115, 120, 144, 138, 115, 120, 125, 122, 121, 121, 121, 128, 120, 128, 122, 131, 120, 124, 123, 122, 120, 126, 127, 117, 130, 116, 112, 126, 122, 123, 131, 119, 115, 126, 123, 119, 112, 124, 122, 122, 130, 117, 124, 113, 128, 119, 124, 92, 122, 117, 122, 126, 120, 116, 124, 125, 122, 130, 121, 127, 122, 120, 104, 125, 118, 122, 126, 122, 119, 109, 119, 121, 127, 162, 129, 103, 119, 122, 130, 120, 126, 129, 122, 115, 118, 125, 122, 118, 114, 126, 72, 127, 123, 130, 118, 128, 125, 128, 125, 126, 123, 126, 121, 116, 124, 121, 125, 123, 124, 118, 125, 118, 132, 115, 125, 115, 124, 134, 122, 126, 122, 125, 127, 127, 123, 121, 123, 126, 122, 126, 120, 121, 129, 123, 120, 118, 117, 122, 118, 124, 125, 121, 127, 123, 125, 122, 128, 125, 123, 122, 106, 121, 124, 123, 122, 115, 116, 117, 122, 121, 118, 127, 153, 113, 115, 118, 123, 112, 117, 128, 129, 122, 126, 122, 129, 137, 125, 126, 122, 125, 114, 123, 116, 125, 119, 124, 118, 124, 135, 136, 118, 118, 122, 124, 125, 132, 131, 135, 122, 124, 117, 118, 120, 120, 121, 143, 125, 120, 124, 127, 126, 133, 121, 120, 115, 124, 120, 123, 125, 126, 122, 122, 119, 119, 116, 125, 127, 117, 104, 130, 125, 128, 111, 126, 115, 129, 118, 126, 127, 122, 131, 129, 126, 111, 139, 116, 141, 133, 126, 102, 111, 109, 120, 122, 128, 125, 135, 123, 121, 122, 120, 143, 120, 123, 108, 106, 129, 114, 146, 116, 119, 129, 120, 132, 134, 112, 136, 113, 130, 120, 127, 122, 122, 121, 127, 121, 120, 126, 125, 125, 120, 125, 120, 123, 128, 120, 126, 130, 120, 123, 122, 125, 128, 110, 124, 124, 124, 124, 121, 117, 128, 125, 125, 134, 124, 123, 122, 120, 125, 124, 119, 127, 123, 123, 126, 125, 122, 125, 121, 121, 122, 126, 125, 125, 124, 122, 126, 119, 123, 123, 127, 118, 120, 124, 123, 121, 124, 123, 119, 120, 123, 121, 123, 121, 126, 127, 125, 129, 126, 117, 122, 129, 125, 122, 124, 121, 129, 131, 126, 122, 124, 115, 128, 125, 124, 129, 125, 125, 124, 120, 120, 133, 130, 122, 124, 123, 122, 121, 125, 122, 127, 125, 123, 129, 125, 123, 122, 127, 126, 124, 127, 122, 124, 125, 121, 124, 123, 124, 125, 120, 128, 130, 113, 126, 124, 111, 152, 113, 121, 129, 135, 123, 119, 133, 117, 137, 126, 120, 127, 112, 113, 142, 119, 121, 111, 125, 119, 180, 111, 124, 133, 158, 125, 124, 131, 127, 125, 115, 134, 112, 130, 130, 107, 123, 91, 125, 114, 123, 114, 131, 118, 113, 124, 91, 118, 117, 128, 119, 96, 121, 135, 126, 114, 118, 118, 130, 125, 122, 125, 126, 123, 136, 140, 132, 121, 113, 126, 104, 131, 110, 133, 124, 159, 128, 113, 115, 124, 124, 129, 111, 138, 127, 119, 119, 133, 117, 118, 109, 125, 101, 106, 127, 115, 129, 124, 116, 124, 116, 105, 115, 128, 121, 132, 124, 124, 122, 117, 123, 123, 123, 124, 121, 124, 118, 105, 126, 126, 125, 117, 115, 129, 127, 118, 121, 118, 124, 124, 119, 138, 122, 130, 123, 122, 119, 127, 122, 118, 125, 124, 153, 124, 124, 124, 124, 123, 125, 120, 129, 122, 130, 129, 122, 113, 139, 138, 129, 129, 118, 123, 121, 110, 118, 117, 120, 121, 120, 125, 131, 121, 124, 121, 117, 124, 115, 128, 128, 122, 124, 117, 124, 144, 121, 168, 130, 123, 129, 118, 125, 119, 120, 127, 126, 124, 117, 121, 131, 127, 129, 127, 124, 123, 126, 119, 115, 123, 112, 118, 124, 125, 113, 123, 120, 118, 122, 123, 128, 126, 122, 123, 120, 121, 124, 125, 121, 124, 117, 120, 136, 127, 121, 128, 126, 117, 125, 128, 108, 121, 123, 118, 124, 122, 125, 128, 124, 128, 126, 121, 118, 142, 124, 122, 127, 119, 121, 128, 128, 123, 129, 121, 125, 126, 126, 126, 113, 135, 126, 130, 122, 127, 121, 126, 120, 120, 124, 125, 124, 98, 125, 133, 127, 125, 123, 114, 127, 116, 118, 119, 123, 125, 129, 119, 129, 124, 126, 125, 130, 136, 121, 121, 123, 124, 154, 116, 128, 121, 127, 132, 144, 127, 120, 128, 120, 126, 122, 120, 128, 125, 124, 125, 116, 119, 115, 126, 135, 123, 135, 130, 129, 119, 124, 116, 122, 107, 121, 119, 122, 133, 139, 132, 124, 119, 120, 119, 120, 126, 123, 130, 123, 122, 118, 124, 123, 119, 122, 139, 123, 119, 126, 113, 124, 122, 125, 123, 121, 122, 125, 126, 128, 121, 131, 121, 127, 127, 125, 129, 117, 120, 123, 127, 123, 122, 128, 121, 123, 125, 122, 125, 118, 139, 120, 126, 125, 120, 121, 123, 109, 120, 122, 121, 123, 124, 121, 124, 123, 124, 122, 132, 123, 123, 123, 122, 121, 120, 123, 129, 122, 118, 125, 124, 124, 128, 86, 125, 118, 121, 117, 124, 122, 123, 126, 120, 124, 123, 119, 126, 123, 121, 123, 116, 121, 124, 126, 124, 120, 125, 125, 122, 120, 122, 130, 124, 124, 121, 126, 125, 127, 126, 121, 125, 125, 123, 121, 123, 125, 119, 121, 120, 123, 123, 122, 123, 125, 124, 121, 127, 123, 123, 128, 124, 121, 123, 126, 123, 127, 120, 124, 87, 124, 120, 117, 121, 125, 128, 122, 122, 123, 123, 121, 84, 120, 122, 121, 126, 121, 142, 141, 111, 117, 118, 162, 108, 125, 145, 116, 118, 105, 125, 127, 150, 110, 122, 110, 101, 137, 112, 118, 120, 131, 111, 133, 127, 126, 120, 128, 129, 109, 90, 127, 143, 135, 141, 127, 125, 121, 63, 107, 122, 117, 118, 126, 141, 145, 94, 119, 107, 121, 139, 116, 129, 119, 81, 120, 99, 126, 136, 124, 166, 93, 117, 140, 112, 125, 112, 98, 120, 122, 112, 142, 132, 126, 120, 111, 95, 117, 119, 122, 112, 90, 114, 111, 126, 129, 127, 108, 111, 118, 100, 121, 114, 128, 132, 137, 128, 117, 110, 117, 114, 109, 104, 98, 112, 132, 108, 113, 125, 127, 114, 108, 128, 89, 117, 129, 116, 117, 107, 125, 109, 93, 123, 131, 121, 97, 123, 126, 122, 123, 122, 122, 122, 123, 133, 122, 125, 129, 114, 124, 124, 117, 125, 117, 125, 155, 124, 125, 124, 122, 123, 121, 122, 125, 122, 120, 129, 124, 125, 130, 134, 127, 123, 123, 123, 125, 114, 118, 118, 119, 120, 119, 123, 123, 121, 130, 125, 118, 122, 118, 123, 127, 123, 124, 120, 124, 136, 121, 162, 125, 125, 130, 126, 125, 123, 123, 127, 121, 129, 127, 122, 135, 129, 123, 121, 127, 118, 126, 114, 121, 119, 120, 124, 128, 126, 117, 120, 123, 122, 123, 124, 122, 123, 125, 126, 120, 123, 125, 122, 128, 119, 122, 125, 136, 128, 119, 124, 123, 120, 120, 123, 115, 126, 121, 124, 123, 119, 122, 124, 125, 128, 126, 121, 122, 113, 122, 125, 112, 112, 139, 136, 150, 148, 131, 109, 129, 151, 131, 123, 129, 147, 101, 111, 107, 125, 111, 139, 125, 119, 142, 111, 130, 118, 139, 125, 118, 130, 139, 101, 104, 74, 114, 119, 119, 125, 129, 75, 126, 110, 116, 102, 130, 131, 128, 117, 103, 87, 134, 113, 125, 94, 124, 126, 120, 104, 113, 119, 108, 117, 117, 130, 123, 126, 150, 137, 137, 134, 116, 120, 6, 128, 202, 123, 125, 141, 124, 153, 137, 114, 117, 133, 130, 131, 127, 123, 117, 138, 129, 121, 131, 119, 120, 128, 127, 134, 116, 119, 132, 97, 119, 128, 129, 129, 119, 127, 113, 118, 146, 118, 117, 121, 134, 111, 122, 109, 104, 128, 115, 109, 126, 130, 134, 125, 103, 127, 110, 126, 122, 129, 115, 124, 131, 125, 132, 118, 134, 112, 129, 106, 123, 118, 125, 121, 132, 121, 122, 105, 117, 114, 132, 124, 117, 122, 129, 104, 124, 130, 119, 119, 122, 115, 143, 121, 117, 118, 119, 120, 126, 120, 124, 121, 130, 125, 117, 124, 125, 122, 117, 122, 116, 126, 128, 126, 128, 120, 120, 128, 122, 133, 137, 123, 120, 118, 120, 128, 127, 122, 122, 137, 128, 120, 119, 123, 143, 113, 124, 121, 118, 124, 134, 123, 124, 124, 148, 130, 127, 111, 125, 127, 112, 124, 112, 138, 125, 124, 111, 127, 125, 126, 121, 123, 120, 123, 110, 121, 121, 119, 125, 126, 124, 126, 123, 119, 117, 119, 142, 111, 142, 145, 118, 135, 131, 117, 123, 112, 117, 112, 90, 82, 117, 115, 100, 122, 105, 111, 129, 122, 122, 137, 116, 115, 102, 93, 120, 126, 126, 114, 106, 132, 122, 124, 132, 102, 98, 119, 133, 119, 129, 122, 130, 146, 134, 158, 119, 126, 115, 121, 157, 124, 107, 121, 139, 133, 114, 125, 122, 137, 122, 116, 135, 116, 142, 121, 122, 112, 126, 124, 123, 123, 119, 81, 113, 131, 110, 118, 124, 110, 99, 118, 119, 104, 132, 132, 114, 132, 127, 122, 102, 104, 121, 121, 114, 108, 127, 108, 116, 114, 135, 113, 107, 109, 128, 123, 122, 141, 115, 107, 102, 107, 130, 126, 119, 122, 123, 133, 115, 132, 103, 129, 117, 124, 126, 113, 113, 115, 120, 115, 122, 135, 123, 125, 122, 120, 124, 134, 127, 115, 119, 118, 121, 127, 121, 119, 118, 136, 120, 120, 123, 125, 125, 122, 131, 123, 122, 120, 120, 116, 124, 124, 137, 126, 145, 123, 128, 130, 119, 118, 125, 127, 144, 119, 126, 120, 122, 121, 120, 107, 138, 124, 125, 120, 152, 125, 120, 123, 120, 122, 120, 120, 113, 123, 127, 114, 133, 118, 123, 120, 114, 121, 121, 125, 128, 122, 122, 126, 134, 119, 112, 117, 123, 121, 128, 128, 121, 122, 122, 137, 113, 126, 126, 121, 126, 116, 113, 118, 118, 124, 121, 131, 125, 131, 118, 124, 129, 152, 123, 124, 117, 129, 126, 127, 122, 146, 116, 125, 132, 122, 121, 130, 117, 120, 129, 124, 124, 122, 126, 129, 126, 116, 123, 117, 121, 110, 125, 128, 120, 111, 114, 118, 143, 132, 105, 121, 127, 127, 116, 128, 129, 104, 122, 123, 131, 137, 126, 123, 99, 117, 132, 144, 113, 129, 146, 123, 122, 118, 122, 133, 130, 124, 128, 147, 126, 135, 116, 127, 133, 130, 129, 118, 109, 119, 105, 134, 118, 118, 140, 118, 144, 133, 136, 130, 116, 126, 137, 117, 122, 105, 128, 135, 122, 127, 114, 116, 114, 122, 119, 109, 119, 125, 127, 117, 127, 129, 130, 136, 127, 122, 124, 118, 124, 108, 123, 134, 120, 105, 119, 115, 127, 129, 112, 126, 121, 121, 128, 137, 109, 132, 113, 123, 124, 130, 128, 131, 96, 131, 126, 133, 125, 120, 129, 83, 124, 126, 117, 120, 126, 122, 125, 122, 111, 120, 117, 123, 121, 109, 123, 113, 114, 121, 121, 125, 122, 121, 138, 117, 123, 118, 119, 122, 129, 119, 118, 122, 124, 125, 122, 121, 122, 125, 123, 128, 119, 124, 128, 121, 125, 125, 121, 121, 126, 122, 122, 126, 110, 123, 132, 128, 125, 124, 120, 117, 125, 125, 122, 124, 124, 125, 121, 115, 123, 119, 123, 125, 119, 123, 130, 120, 108, 125, 131, 118, 121, 125, 126, 129, 127, 113, 118, 114, 123, 122, 122, 115, 125, 123, 118, 122, 120, 118, 121, 119, 124, 116, 121, 121, 117, 117, 122, 130, 123, 124, 120, 121, 121, 120, 119, 121, 120, 123, 123, 121, 121, 119, 121, 120, 124, 123, 121, 129, 125, 120, 123, 116, 121, 115, 122, 120, 125, 127, 133, 116, 124, 119, 122, 118, 133, 127, 129, 125, 120, 128, 122, 131, 126, 121, 129, 122, 131, 126, 130, 122, 130, 126, 130, 134, 132, 128, 137, 131, 125, 124, 114, 121, 128, 126, 119, 128, 129, 118, 116, 122, 111, 124, 132, 110, 116, 108, 119, 125, 122, 128, 121, 116, 125, 129, 129, 118, 115, 125, 118, 125, 128, 130, 126, 135, 126, 127, 123, 129, 117, 129, 124, 122, 129, 123, 127, 125, 119, 126, 123, 145, 125, 122, 128, 120, 124, 132, 118, 127, 125, 133, 132, 131, 126, 120, 132, 110, 117, 119, 124, 124, 125, 121, 121, 118, 122, 121, 118, 123, 132, 117, 129, 125, 127, 117, 136, 123, 127, 117, 131, 138, 121, 117, 130, 118, 115, 122, 112, 116, 123, 145, 112, 117, 136, 130, 117, 123, 123, 122, 124, 119, 112, 123, 119, 131, 109, 119, 126, 132, 125, 115, 132, 130, 120, 122, 135, 124, 119, 116, 124, 129, 130, 127, 124, 120, 108, 117, 120, 129, 126, 128, 123, 124, 112, 122, 121, 130, 130, 126, 129, 127, 134, 98, 126, 134, 121, 119, 118, 120, 116, 112, 113, 123, 120, 120, 123, 122, 110, 116, 118, 116, 127, 122, 123, 123, 132, 123, 106, 120, 125, 122, 129, 122, 123, 124, 118, 131, 130, 122, 124, 121, 130, 127, 125, 133, 118, 125, 159, 120, 130, 113, 129, 125, 127, 125, 122, 130, 114, 127, 119, 128, 130, 117, 127, 130, 122, 119, 126, 119, 128, 122, 122, 110, 126, 126, 123, 125, 118, 137, 123, 120, 146, 118, 115, 126, 102, 122, 108, 131, 124, 115, 114, 113, 133, 140, 100, 112, 124, 120, 127, 112, 135, 121, 119, 130, 123, 126, 125, 133, 142, 122, 127, 121, 116, 122, 124, 117, 124, 117, 116, 130, 107, 120, 128, 127, 111, 112, 109, 137, 119, 129, 128, 53, 132, 114, 125, 119, 120, 138, 115, 125, 143, 124, 135, 123, 125, 121, 134, 125, 126, 126, 131, 127, 131, 128, 116, 119, 120, 132, 111, 111, 123, 118, 132, 126, 128, 134, 120, 126, 122, 190, 116, 124, 132, 137, 115, 121, 122, 128, 113, 133, 128, 111, 125, 128, 128, 121, 115, 130, 106, 123, 106, 131, 127, 126, 108, 123, 125, 91, 108, 117, 120, 122, 116, 92, 145, 131, 110, 144, 115, 119, 121, 113, 135, 116, 126, 131, 143, 125, 120, 120, 118, 117, 116, 122, 126, 125, 129, 114, 137, 106, 113, 136, 123, 136, 124, 91, 115, 103, 137, 128, 129, 123, 131, 108, 124, 121, 122, 125, 135, 117, 141, 125, 153, 148, 115, 104, 128, 128, 142, 117, 115, 138, 110, 143, 152, 110, 118, 193, 129, 129, 124, 140, 121, 127, 111, 111, 122, 138, 120, 128, 120, 122, 115, 129, 119, 154, 122, 126, 120, 152, 138, 129, 127, 128, 133, 132, 123, 120, 149, 129, 97, 119, 115, 104, 127, 115, 120, 107, 109, 114, 117, 128, 125, 122, 140, 121, 113, 117, 125, 125, 115, 121, 115, 125, 115, 121, 120, 125, 126, 122, 117, 126, 123, 125, 123, 119, 122, 133, 115, 121, 127, 122, 135, 128, 121, 120, 119, 123, 120, 121, 124, 119, 122, 124, 125, 130, 131, 124, 125, 131, 118, 128, 132, 125, 132, 122, 126, 127, 123, 121, 120, 120, 126, 121, 117, 124, 119, 123, 124, 119, 120, 121, 118, 130, 122, 124, 129, 127, 129, 118, 125, 119, 123, 130, 124, 125, 121, 123, 129, 121, 122, 122, 129, 124, 122, 124, 130, 124, 123, 126, 116, 128, 124, 126, 131, 115, 125, 127, 120, 121, 126, 118, 125, 129, 122, 125, 121, 126, 129, 125, 127, 128, 128, 124, 122, 127, 122, 115, 119, 122, 125, 125, 132, 129, 120, 121, 123, 122, 122, 119, 120, 118, 126, 116, 121, 126, 125, 133, 122, 117, 120, 119, 124, 125, 131, 119, 108, 128, 126, 128, 129, 129, 121, 121, 121, 132, 115, 125, 118, 116, 123, 126, 134, 124, 140, 115, 123, 123, 115, 136, 116, 130, 126, 126, 128, 127, 122, 114, 124, 111, 110, 117, 123, 113, 109, 122, 123, 123, 130, 116, 119, 141, 115, 127, 121, 129, 133, 111, 123, 114, 125, 143, 128, 125, 141, 129, 126, 136, 125, 128, 142, 129, 126, 127, 129, 125, 130, 130, 115, 124, 122, 125, 122, 124, 125, 122, 118, 125, 115, 128, 131, 133, 124, 126, 127, 115, 142, 130, 122, 119, 127, 120, 138, 145, 122, 107, 121, 121, 133, 120, 123, 130, 117, 126, 117, 115, 125, 125, 111, 153, 123, 117, 115, 153, 53, 135, 120, 93, 117, 117, 132, 114, 131, 87, 115, 121, 124, 124, 121, 116, 106, 116, 129, 123, 122, 122, 103, 115, 115, 112, 123, 155, 120, 116, 125, 143, 106, 124, 123, 139, 171, 70, 119, 123, 126, 111, 128, 128, 151, 122, 118, 111, 132, 117, 133, 98, 125, 186, 131, 94, 112, 116, 111, 117, 119, 126, 126, 116, 132, 133, 129, 106, 127, 138, 129, 132, 143, 117, 120, 127, 121, 115, 149, 129, 163, 130, 124, 141, 110, 128, 116, 155, 108, 129, 100, 114, 117, 126, 126, 129, 117, 120, 127, 126, 125, 194, 129, 126, 122, 121, 120, 127, 110, 108, 136, 118, 123, 128, 126, 121, 138, 112, 178, 124, 121, 131, 126, 126, 123, 127, 126, 131, 114, 114, 131, 113, 122, 129, 125, 139, 114, 128, 124, 118, 120, 123, 103, 119, 120, 125, 130, 119, 118, 135, 121, 125, 125, 124, 123, 120, 114, 127, 121, 121, 127, 123, 121, 119, 112, 126, 123, 122, 126, 128, 133, 120, 101, 125, 121, 122, 131, 125, 120, 126, 123, 126, 122, 108, 125, 118, 115, 116, 125, 130, 124, 131, 111, 117, 124, 116, 129, 121, 110, 122, 127, 129, 118, 125, 122, 122, 123, 119, 127, 114, 135, 105, 132, 108, 120, 122, 129, 129, 129, 126, 117, 123, 119, 118, 124, 120, 120, 128, 109, 124, 128, 122, 127, 122, 126, 108, 127, 135, 130, 117, 123, 114, 125, 104, 125, 129, 117, 124, 122, 125, 127, 120, 123, 123, 120, 122, 118, 132, 126, 116, 114, 124, 121, 130, 124, 124, 122, 123, 134, 131, 105, 132, 117, 119, 126, 114, 127, 111, 110, 121, 119, 125, 129, 121, 123, 116, 132, 134, 120, 129, 125, 143, 126, 126, 128, 123, 120, 126, 137, 121, 112, 113, 131, 125, 119, 125, 127, 126, 104, 112, 125, 132, 131, 124, 123, 124, 122, 123, 119, 108, 122, 119, 126, 122, 113, 133, 104, 119, 123, 126, 124, 122, 122, 128, 120, 127, 127, 134, 133, 117, 122, 129, 123, 116, 119, 108, 128, 128, 130, 121, 124, 123, 118, 115, 117, 128, 126, 121, 119, 109, 127, 129, 111, 130, 130, 126, 117, 117, 119, 121, 121, 128, 111, 127, 116, 115, 113, 123, 113, 121, 123, 124, 105, 125, 129, 120, 125, 138, 117, 131, 123, 120, 124, 123, 119, 125, 118, 122, 124, 119, 123, 123, 121, 125, 116, 129, 121, 125, 128, 119, 127, 126, 123, 124, 127, 128, 124, 119, 120, 137, 123, 135, 120, 122, 126, 130, 129, 121, 122, 127, 122, 121, 123, 126, 93, 123, 117, 122, 127, 119, 125, 124, 122, 117, 134, 129, 143, 125, 122, 112, 132, 127, 118, 117, 123, 129, 120, 121, 122, 111, 123, 105, 132, 124, 124, 122, 124, 125, 127, 130, 123, 126, 120, 120, 126, 121, 124, 114, 117, 122, 120, 130, 126, 130, 113, 124, 128, 128, 111, 124, 130, 117, 123, 121, 125, 121, 120, 127, 108, 124, 129, 120, 127, 80, 122, 121, 125, 132, 133, 117, 117, 126, 111, 123, 102, 128, 113, 119, 137, 130, 105, 121, 124, 130, 118, 120, 153, 111, 122, 112, 118, 132, 121, 117, 122, 113, 115, 117, 131, 122, 117, 126, 119, 120, 107, 114, 130, 119, 135, 126, 118, 109, 114, 108, 126, 120, 132, 131, 105, 119, 132, 121, 121, 125, 132, 127, 123, 114, 131, 130, 133, 94, 133, 123, 122, 123, 134, 120, 125, 124, 119, 130, 115, 117, 110, 119, 118, 108, 121, 119, 101, 123, 137, 113, 137, 133, 124, 117, 106, 111, 124, 125, 116, 115, 111, 106, 136, 119, 126, 153, 130, 133, 108, 120, 123, 136, 122, 133, 131, 114, 130, 126, 110, 135, 118, 123, 112, 115, 111, 117, 109, 122, 122, 110, 118, 125, 121, 120, 121, 125, 128, 117, 125, 120, 128, 128, 119, 125, 126, 115, 130, 121, 123, 124, 125, 122, 123, 123, 124, 124, 120, 124, 128, 121, 131, 122, 122, 113, 122, 124, 124, 122, 121, 120, 122, 121, 120, 129, 120, 124, 124, 123, 132, 124, 117, 127, 130, 118, 127, 120, 112, 125, 124, 124, 122, 123, 119, 124, 122, 123, 119, 126, 121, 125, 120, 120, 132, 132, 122, 124, 118, 130, 122, 123, 120, 119, 129, 125, 126, 123, 119, 120, 122, 128, 123, 119, 127, 124, 128, 126, 121, 117, 129, 125, 128, 125, 122, 123, 129, 119, 115, 123, 122, 116, 139, 125, 128, 117, 121, 129, 124, 124, 121, 124, 122, 119, 124, 123, 124, 119, 125, 125, 125, 121, 118, 127, 122, 123, 119, 120, 122, 119, 125, 127, 123, 124, 121, 121, 125, 120, 123, 120, 120, 130, 123, 124, 123, 122, 122, 124, 125, 111, 123, 123, 104, 128, 119, 114, 98, 125, 123, 119, 125, 120, 119, 125, 127, 126, 133, 121, 121, 118, 124, 122, 122, 125, 105, 125, 122, 125, 124, 131, 144, 119, 124, 122, 124, 125, 121, 119, 124, 122, 120, 122, 122, 134, 119, 124, 123, 125, 122, 122, 121, 122, 126, 119, 127, 121, 125, 117, 126, 121, 119, 124, 120, 122, 121, 125, 119, 123, 125, 123, 122, 126, 121, 121, 130, 119, 123, 122, 121, 121, 123, 124, 122, 121, 123, 120, 124, 121, 125, 127, 125, 117, 135, 117, 122, 125, 127, 120, 116, 124, 130, 122, 124, 117, 126, 119, 126, 132, 128, 131, 116, 119, 158, 122, 108, 103, 143, 120, 122, 135, 127, 108, 122, 110, 133, 85, 117, 132, 115, 123, 118, 114, 117, 150, 118, 122, 98, 111, 134, 95, 126, 122, 127, 135, 122, 109, 117, 126, 131, 129, 122, 121, 143, 130, 123, 123, 132, 146, 132, 104, 126, 125, 123, 179, 133, 129, 124, 132, 111, 121, 122, 123, 129, 137, 118, 118, 118, 124, 118, 116, 101, 114, 128, 123, 129, 114, 111, 128, 132, 123, 114, 98, 129, 127, 126, 126, 131, 129, 128, 109, 122, 93, 130, 112, 115, 120, 117, 127, 136, 130, 118, 114, 131, 135, 104, 128, 116, 132, 133, 113, 120, 120, 118, 109, 106, 117, 120, 168, 129, 138, 128, 125, 113, 129, 130, 136, 114, 119, 114, 121, 133, 118, 116, 138, 117, 116, 125, 121, 109, 117, 119, 106, 120, 117, 142, 65, 124, 124, 109, 134, 146, 132, 111, 124, 123, 122, 130, 150, 128, 130, 114, 116, 121, 122, 136, 110, 109, 123, 108, 115, 145, 126, 114, 106, 121, 136, 165, 118, 113, 126, 126, 133, 132, 135, 114, 126, 123, 115, 128, 121, 130, 111, 106, 124, 114, 136, 129, 106, 117, 131, 141, 118, 138, 131, 119, 107, 132, 113, 133, 134, 129, 116, 134, 121, 109, 132, 122, 127, 127, 122, 113, 88, 130, 146, 112, 120, 114, 125, 140, 122, 121, 135, 128, 123, 133, 118, 124, 117, 157, 123, 125, 126, 126, 123, 100, 129, 112, 110, 111, 120, 126, 119, 115, 141, 127, 126, 135, 103, 130, 102, 124, 101, 118, 124, 125, 128, 127, 108, 122, 124, 121, 123, 103, 127, 129, 125, 109, 133, 114, 113, 122, 108, 133, 126, 110, 136, 150, 118, 119, 123, 109, 133, 121, 135, 136, 118, 125, 82, 109, 124, 126, 114, 121, 145, 131, 106, 132, 117, 133, 132, 113, 135, 141, 124, 126, 132, 144, 134, 135, 141, 115, 110, 132, 119, 126, 125, 110, 132, 132, 116, 142, 121, 117, 132, 123, 125, 103, 139, 124, 122, 109, 125, 128, 123, 119, 118, 117, 139, 118, 158, 125, 120, 133, 140, 126, 123, 98, 123, 115, 98, 124, 123, 117, 125, 110, 129, 113, 129, 126, 111, 118, 131, 142, 106, 142, 112, 124, 129, 130, 132, 127, 141, 119, 146, 128, 124, 159, 115, 105, 118, 136, 124, 103, 130, 129, 92, 123, 112, 112, 110, 112, 107, 108, 123, 120, 107, 130, 129, 107, 132, 126, 123, 114, 112, 103, 128, 132, 122, 123, 141, 95, 118, 123, 122, 125, 135, 138, 125, 126, 126, 124, 121, 104, 123, 125, 133, 121, 93, 127, 129, 128, 119, 122, 134, 117, 136, 38, 143, 105, 121, 120, 132, 116, 128, 143, 131, 122, 126, 132, 123, 93, 128, 125, 128, 108, 140, 116, 124, 130, 155, 130, 116, 133, 118, 124, 81, 125, 124, 126, 120, 138, 122, 127, 126, 116, 128, 135, 120, 142, 118, 124, 124, 125, 121, 114, 132, 118, 121, 134, 120, 111, 120, 124, 123, 119, 114, 125, 119, 131, 118, 125, 120, 128, 121, 124, 122, 119, 127, 130, 127, 121, 125, 127, 124, 126, 120, 127, 124, 122, 113, 123, 125, 124, 122, 118, 124, 125, 121, 130, 125, 119, 128, 125, 127, 122, 126, 124, 126, 110, 128, 110, 122, 133, 135, 129, 121, 121, 130, 122, 121, 124, 123, 119, 124, 125, 124, 123, 124, 122, 124, 123, 117, 123, 128, 118, 129, 123, 117, 133, 129, 123, 123, 125, 128, 123, 121, 121, 124, 129, 131, 124, 123, 122, 118, 122, 122, 122, 126, 124, 135, 122, 121, 120, 123, 120, 132, 121, 133, 119, 122, 127, 122, 123, 121, 127, 131, 124, 119, 119, 112, 120, 123, 126, 122, 124, 118, 124, 125, 122, 125, 137, 111, 114, 112, 123, 122, 123, 124, 114, 116, 107, 123, 138, 96, 121, 101, 93, 127, 122, 106, 122, 118, 137, 137, 140, 156, 116, 140, 124, 130, 125, 102, 120, 116, 136, 128, 146, 121, 98, 121, 98, 126, 114, 133, 121, 140, 135, 118, 124, 123, 120, 131, 122, 126, 127, 126, 110, 126, 136, 143, 120, 129, 136, 94, 119, 130, 126, 115, 128, 135, 116, 122, 120, 106, 119, 123, 110, 123, 108, 129, 138, 132, 120, 122, 114, 125, 114, 129, 119, 126, 98, 162, 119, 113, 124, 125, 127, 120, 135, 114, 123, 95, 118, 120, 130, 123, 118, 116, 123, 124, 133, 130, 125, 109, 143, 117, 110, 127, 124, 144, 137, 121, 127, 117, 129, 150, 136, 122, 122, 120, 116, 125, 119, 124, 141, 125, 123, 137, 118, 117, 128, 124, 146, 121, 122, 128, 121, 122, 121, 129, 123, 126, 116, 117, 124, 123, 139, 124, 120, 126, 124, 124, 122, 126, 125, 123, 122, 120, 121, 124, 121, 108, 122, 117, 116, 124, 122, 126, 118, 129, 125, 121, 124, 126, 128, 122, 119, 124, 108, 121, 122, 120, 122, 119, 115, 125, 124, 125, 118, 119, 125, 122, 121, 122, 123, 121, 124, 130, 123, 116, 123, 125, 125, 124, 130, 120, 122, 120, 119, 128, 122, 127, 120, 115, 127, 149, 127, 123, 122, 120, 119, 126, 121, 125, 131, 125, 123, 125, 125, 123, 123, 122, 120, 123, 124, 124, 125, 121, 123, 127, 123, 132, 121, 125, 126, 106, 115, 122, 121, 107, 149, 123, 107, 122, 115, 110, 108, 129, 98, 125, 143, 127, 109, 109, 114, 126, 127, 120, 128, 134, 128, 121, 127, 111, 136, 108, 113, 129, 120, 101, 119, 134, 113, 116, 123, 135, 122, 123, 123, 104, 107, 111, 99, 123, 163, 127, 123, 133, 139, 111, 119, 121, 129, 116, 108, 106, 110, 112, 132, 148, 115, 111, 119, 126, 152, 129, 106, 116, 142, 123, 102, 119, 123, 115, 125, 113, 132, 129, 122, 142, 122, 125, 124, 145, 129, 118, 127, 126, 122, 121, 121, 124, 109, 112, 125, 135, 146, 149, 113, 128, 141, 114, 93, 122, 117, 148, 127, 150, 174, 129, 115, 116, 128, 145, 118, 136, 121, 117, 129, 134, 130, 124, 128, 126, 121, 130, 124, 123, 120, 127, 126, 128, 123, 126, 136, 120, 117, 125, 123, 122, 124, 122, 125, 124, 123, 123, 121, 124, 124, 118, 122, 126, 120, 122, 127, 122, 120, 127, 127, 120, 118, 121, 124, 128, 124, 125, 121, 128, 115, 124, 120, 127, 121, 121, 120, 117, 128, 124, 122, 126, 153, 118, 123, 124, 121, 126, 126, 119, 124, 122, 112, 118, 118, 127, 124, 119, 125, 123, 124, 115, 123, 124, 125, 129, 124, 120, 122, 128, 125, 126, 135, 118, 126, 125, 123, 127, 139, 117, 120, 128, 115, 116, 128, 121, 124, 116, 111, 118, 126, 124, 123, 124, 118, 126, 123, 127, 126, 132, 129, 124, 125, 124, 104, 120, 116, 122, 117, 125, 121, 119, 123, 139, 142, 121, 123, 130, 109, 128, 116, 126, 117, 131, 107, 121, 122, 127, 118, 127, 140, 147, 127, 128, 127, 124, 119, 110, 124, 134, 119, 129, 133, 130, 120, 115, 134, 134, 119, 128, 99, 117, 115, 122, 110, 133, 123, 124, 124, 124, 117, 121, 116, 124, 124, 117, 128, 124, 110, 127, 116, 118, 119, 123, 123, 117, 120, 127, 134, 129, 107, 122, 112, 133, 122, 119, 118, 73, 122, 131, 123, 141, 122, 108, 120, 122, 129, 107, 118, 128, 129, 124, 136, 118, 131, 120, 128, 121, 123, 127, 131, 119, 125, 133, 124, 128, 124, 114, 125, 122, 128, 113, 119, 124, 128, 127, 128, 134, 125, 118, 123, 115, 129, 125, 128, 117, 122, 137, 119, 132, 105, 120, 130, 124, 111, 124, 122, 122, 116, 124, 126, 122, 119, 118, 125, 120, 125, 127, 119, 126, 129, 122, 126, 125, 127, 135, 120, 127, 112, 124, 131, 124, 120, 123, 121, 122, 119, 125, 124, 120, 120, 124, 120, 122, 119, 119, 122, 122, 123, 123, 125, 125, 123, 120, 121, 123, 122, 125, 113, 126, 123, 122, 125, 124, 126, 115, 125, 122, 124, 127, 123, 127, 127, 120, 119, 123, 125, 129, 122, 122, 121, 123, 117, 108, 123, 121, 121, 118, 120, 120, 124, 120, 120, 127, 148, 125, 122, 119, 127, 117, 122, 123, 123, 129, 131, 121, 118, 126, 117, 122, 135, 125, 138, 119, 124, 121, 122, 124, 127, 124, 104, 123, 128, 122, 117, 114, 113, 125, 126, 122, 133, 127, 121, 127, 126, 116, 117, 119, 123, 107, 121, 125, 127, 107, 120, 123, 106, 129, 125, 111, 128, 111, 134, 139, 121, 110, 131, 149, 116, 125, 121, 107, 110, 119, 130, 121, 133, 106, 112, 112, 105, 130, 107, 125, 121, 127, 112, 130, 120, 126, 134, 123, 146, 116, 125, 120, 127, 137, 150, 117, 119, 123, 132, 183, 116, 138, 118, 133, 127, 115, 128, 123, 113, 114, 126, 126, 114, 121, 106, 119, 118, 124, 125, 123, 102, 111, 123, 122, 121, 122, 112, 150, 125, 129, 119, 118, 125, 113, 127, 116, 126, 62, 125, 120, 101, 118, 131, 126, 126, 123, 129, 105, 120, 132, 131, 121, 119, 121, 130, 127, 152, 123, 144, 129, 123, 124, 165, 121, 130, 126, 123, 124, 119, 120, 129, 121, 123, 125, 119, 122, 119, 112, 123, 114, 122, 119, 119, 113, 123, 123, 128, 122, 119, 145, 129, 127, 116, 121, 121, 113, 110, 123, 124, 123, 136, 119, 122, 117, 116, 122, 119, 118, 121, 130, 122, 127, 121, 124, 126, 122, 120, 123, 126, 123, 121, 122, 126, 118, 125, 120, 119, 104, 120, 129, 122, 131, 120, 115, 119, 117, 129, 122, 117, 122, 121, 122, 114, 123, 132, 124, 124, 125, 116, 114, 131, 116, 123, 117, 120, 134, 120, 118, 122, 129, 120, 122, 122, 122, 124, 126, 124, 122, 114, 121, 122, 122, 111, 119, 125, 115, 124, 127, 129, 122, 122, 122, 121, 118, 124, 126, 128, 123, 133, 133, 128, 140, 125, 149, 128, 121, 124, 126, 121, 147, 119, 132, 121, 122, 115, 120, 122, 123, 128, 125, 130, 145, 121, 123, 119, 118, 122, 124, 126, 100, 118, 126, 117, 118, 122, 119, 109, 124, 124, 101, 127, 122, 120, 142, 123, 119, 133, 122, 115, 125, 123, 131, 124, 131, 125, 134, 113, 124, 123, 98, 140, 124, 128, 124, 117, 131, 122, 125, 129, 126, 106, 117, 118, 118, 119, 122, 124, 129, 117, 135, 128, 117, 128, 115, 121, 107, 130, 113, 127, 126, 149, 116, 123, 123, 116, 119, 108, 125, 125, 117, 121, 123, 122, 121, 119, 128, 116, 113, 122, 129, 124, 123, 125, 117, 124, 119, 121, 124, 126, 115, 119, 127, 128, 99, 113, 129, 128, 126, 130, 124, 121, 109, 120, 130, 113, 125, 127, 121, 126, 134, 130, 116, 122, 120, 112, 125, 125, 127, 150, 118, 130, 128, 121, 121, 118, 119, 119, 131, 123, 129, 136, 123, 114, 127, 123, 134, 115, 123, 123, 130, 124, 125, 123, 119, 162, 118, 100, 118, 125, 123, 113, 118, 115, 122, 126, 125, 125, 134, 121, 118, 121, 119, 123, 123, 127, 118, 129, 121, 119, 122, 124, 128, 129, 124, 125, 121, 123, 132, 126, 117, 124, 121, 120, 124, 129, 125, 123, 132, 118, 126, 119, 127, 118, 120, 125, 130, 122, 122, 122, 123, 121, 122, 125, 124, 124, 125, 128, 132, 119, 115, 121, 118, 123, 116, 132, 121, 123, 125, 115, 121, 125, 88, 125, 136, 122, 121, 130, 125, 125, 118, 128, 126, 120, 119, 136, 127, 123, 127, 111, 122, 131, 117, 122, 148, 117, 147, 124, 118, 119, 122, 133, 116, 126, 135, 124, 127, 131, 131, 126, 126, 138, 129, 121, 131, 105, 124, 125, 130, 110, 129, 119, 122, 124, 115, 119, 105, 114, 121, 131, 109, 122, 120, 116, 126, 122, 126, 133, 102, 119, 126, 122, 118, 127, 123, 114, 128, 115, 120, 116, 119, 116, 107, 121, 124, 130, 127, 115, 120, 124, 122, 124, 122, 119, 126, 130, 127, 124, 121, 119, 123, 129, 122, 125, 124, 126, 134, 123, 119, 119, 124, 122, 118, 108, 128, 123, 121, 124, 122, 123, 116, 126, 130, 141, 111, 124, 120, 127, 124, 127, 130, 117, 126, 125, 130, 126, 125, 123, 130, 118, 127, 123, 126, 126, 122, 126, 126, 123, 131, 124, 122, 120, 125, 127, 124, 118, 124, 121, 116, 125, 122, 122, 124, 125, 123, 109, 126, 115, 123, 117, 124, 123, 128, 125, 128, 121, 123, 122, 125, 127, 128, 120, 128, 129, 128, 126, 119, 115, 129, 125, 125, 133, 123, 121, 124, 126, 120, 131, 119, 107, 125, 123, 129, 114, 122, 118, 103, 118, 107, 121, 123, 122, 110, 127, 122, 119, 121, 121, 128, 123, 122, 126, 124, 128, 83, 123, 130, 123, 128, 117, 113, 129, 122, 123, 115, 112, 112, 129, 117, 115, 124, 117, 121, 120, 123, 114, 127, 127, 116, 128, 124, 125, 122, 112, 120, 124, 106, 119, 120, 126, 122, 122, 124, 123, 116, 124, 122, 120, 123, 126, 122, 126, 128, 121, 117, 119, 99, 126, 124, 132, 125, 117, 119, 132, 117, 124, 120, 111, 125, 127, 119, 121, 119, 130, 119, 121, 121, 114, 119, 108, 121, 119, 122, 126, 123, 114, 121, 120, 126, 133, 122, 110, 126, 139, 118, 108, 130, 148, 113, 122, 115, 119, 116, 124, 99, 124, 110, 121, 123, 124, 106, 119, 121, 147, 128, 120, 122, 114, 122, 133, 121, 118, 116, 144, 120, 131, 121, 120, 115, 126, 124, 120, 132, 136, 131, 118, 124, 124, 116, 124, 120, 119, 119, 120, 133, 118, 120, 118, 123, 157, 113, 102, 121, 119, 122, 123, 150, 118, 132, 124, 116, 120, 138, 118, 132, 119, 154, 124, 120, 125, 126, 118, 122, 115, 121, 108, 122, 123, 131, 122, 124, 123, 129, 118, 120, 131, 115, 131, 121, 124, 128, 127, 125, 124, 126, 119, 124, 119, 118, 122, 124, 137, 121, 121, 119, 126, 125, 127, 124, 128, 126, 129, 118, 126, 123, 119, 119, 126, 119, 121, 125, 124, 119, 126, 121, 124, 119, 119, 120, 129, 121, 121, 126, 121, 122, 126, 130, 122, 123, 118, 125, 124, 123, 119, 120, 122, 124, 128, 126, 121, 121, 127, 123, 121, 113, 114, 124, 124, 125, 118, 122, 125, 121, 130, 120, 109, 122, 122, 118, 127, 135, 127, 129, 122, 118, 120, 123, 127, 124, 119, 125, 111, 122, 124, 127, 126, 121, 118, 122, 128, 122, 147, 124, 122, 121, 125, 121, 122, 127, 123, 120, 127, 127, 112, 119, 123, 113, 120, 129, 118, 134, 118, 121, 135, 123, 118, 141, 116, 124, 137, 118, 124, 123, 121, 136, 119, 128, 117, 126, 137, 123, 123, 134, 124, 122, 121, 133, 121, 118, 118, 118, 123, 124, 120, 119, 128, 120, 121, 131, 127, 122, 123, 121, 117, 125, 115, 117, 125, 126, 125, 122, 125, 120, 124, 109, 119, 124, 120, 129, 124, 128, 127, 118, 117, 124, 124, 131, 118, 118, 123, 122, 118, 117, 119, 122, 118, 118, 118, 123, 122, 127, 116, 128, 121, 127, 124, 124, 131, 125, 114, 120, 121, 140, 128, 119, 116, 124, 123, 126, 119, 121, 136, 123, 122, 115, 125, 129, 117, 124, 122, 124, 137, 120, 118, 118, 116, 121, 129, 115, 121, 116, 119, 130, 119, 127, 122, 107, 127, 121, 114, 130, 121, 117, 117, 119, 132, 129, 128, 118, 107, 119, 126, 127, 121, 120, 113, 137, 132, 127, 124, 122, 124, 121, 123, 131, 113, 123, 123, 107, 121, 106, 118, 120, 122, 129, 126, 116, 127, 122, 124, 125, 107, 118, 141, 122, 130, 133, 113, 114, 124, 113, 117, 120, 127, 119, 121, 119, 122, 128, 122, 119, 117, 103, 118, 128, 127, 124, 122, 123, 120, 124, 116, 120, 118, 125, 119, 125, 114, 126, 125, 119, 124, 122, 131, 122, 124, 129, 129, 126, 125, 124, 126, 127, 118, 115, 123, 112, 129, 126, 121, 122, 122, 128, 117, 118, 123, 118, 128, 118, 111, 120, 124, 130, 123, 123, 116, 126, 175, 120, 122, 131, 112, 143, 129, 101, 120, 116, 131, 124, 129, 177, 115, 149, 116, 114, 111, 118, 124, 114, 119, 90, 128, 115, 186, 133, 120, 121, 131, 83, 135, 113, 129, 132, 115, 116, 136, 129, 96, 123, 122, 121, 113, 112, 131, 126, 118, 126, 116, 152, 121, 122, 115, 119, 125, 101, 122, 114, 101, 127, 122, 117, 83, 120, 127, 123, 120, 118, 108, 120, 133, 117, 104, 138, 122, 131, 123, 121, 132, 120, 135, 130, 114, 122, 122, 108, 130, 120, 175, 127, 124, 129, 146, 108, 116, 120, 104, 137, 123, 121, 128, 69, 119, 114, 114, 118, 115, 126, 170, 120, 126, 137, 105, 124, 136, 123, 122, 119, 115, 136, 84, 122, 132, 126, 121, 115, 120, 117, 113, 122, 112, 131, 115, 122, 118, 120, 117, 122, 147, 117, 129, 134, 136, 129, 127, 105, 129, 90, 119, 119, 139, 107, 120, 117, 101, 122, 142, 113, 132, 125, 117, 139, 132, 111, 103, 110, 114, 117, 95, 118, 117, 139, 124, 115, 157, 120, 138, 123, 114, 86, 135, 117, 115, 117, 105, 118, 112, 121, 123, 128, 125, 100, 116, 145, 142, 129, 104, 125, 84, 132, 118, 123, 131, 120, 157, 136, 111, 117, 111, 115, 126, 95, 106, 147, 127, 111, 128, 147, 124, 134, 125, 113, 127, 104, 120, 125, 124, 128, 129, 120, 137, 133, 137, 121, 135, 126, 122, 148, 232, 119, 136, 132, 140, 122, 126, 127, 116, 98, 118, 114, 124, 146, 108, 126, 124, 130, 117, 124, 124, 128, 125, 122, 128, 127, 130, 120, 127, 122, 118, 114, 123, 119, 126, 118, 126, 123, 124, 120, 130, 133, 136, 128, 108, 121, 117, 117, 124, 126, 122, 125, 123, 120, 126, 116, 115, 118, 119, 130, 122, 126, 118, 125, 131, 124, 116, 125, 123, 121, 130, 123, 125, 127, 127, 118, 127, 121, 119, 116, 124, 132, 123, 129, 120, 116, 120, 122, 122, 121, 124, 102, 124, 121, 113, 122, 134, 120, 122, 120, 116, 116, 124, 113, 124, 124, 128, 127, 108, 121, 122, 121, 119, 117, 124, 119, 119, 132, 116, 123, 118, 122, 122, 123, 103, 124, 118, 118, 125, 126, 128, 122, 121, 127, 118, 113, 123, 121, 138, 126, 133, 128, 130, 129, 133, 127, 121, 119, 132, 132, 122, 123, 120, 122, 119, 119, 120, 129, 139, 124, 139, 121, 104, 131, 122, 123, 124, 108, 124, 123, 127, 122, 102, 122, 124, 118, 121, 132, 132, 114, 118, 117, 94, 124, 122, 129, 125, 166, 117, 150, 112, 118, 141, 127, 121, 115, 117, 125, 129, 134, 123, 117, 126, 120, 140, 122, 138, 113, 125, 120, 130, 124, 124, 129, 120, 129, 117, 121, 108, 125, 124, 117, 118, 112, 124, 135, 126, 127, 117, 123, 118, 135, 133, 120, 115, 121, 124, 113, 135, 131, 129, 108, 130, 110, 122, 112, 123, 122, 126, 121, 112, 129, 129, 133, 100, 125, 140, 130, 133, 139, 108, 136, 124, 135, 116, 126, 127, 110, 127, 129, 120, 129, 125, 129, 108, 127, 128, 123, 126, 134, 140, 127, 136, 112, 117, 130, 125, 121, 123, 114, 131, 119, 117, 131, 118, 121, 124, 114, 131, 127, 116, 116, 121, 124, 131, 122, 118, 116, 116, 118, 122, 127, 127, 107, 122, 128, 121, 120, 127, 125, 152, 125, 101, 129, 116, 126, 123, 123, 130, 119, 122, 124, 119, 126, 116, 127, 129, 126, 155, 128, 124, 123, 124, 106, 127, 118, 138, 122, 123, 109, 125, 128, 121, 127, 126, 129, 118, 123, 128, 116, 126, 169, 116, 124, 123, 118, 128, 120, 117, 95, 116, 126, 121, 122, 121, 124, 129, 117, 117, 110, 136, 123, 115, 130, 125, 108, 126, 131, 119, 128, 127, 125, 123, 120, 124, 144, 122, 120, 128, 117, 129, 103, 123, 122, 120, 123, 123, 126, 122, 115, 126, 123, 121, 119, 124, 122, 115, 129, 117, 124, 125, 124, 127, 120, 125, 123, 120, 123, 123, 121, 102, 124, 126, 127, 132, 120, 118, 129, 119, 124, 123, 128, 121, 124, 107, 139, 132, 124, 121, 125, 126, 117, 128, 118, 120, 123, 123, 117, 114, 120, 125, 126, 129, 123, 128, 123, 122, 123, 124, 122, 122, 125, 123, 123, 124, 126, 118, 125, 122, 125, 123, 126, 124, 118, 127, 126, 125, 123, 124, 124, 126, 125, 117, 119, 112, 122, 120, 121, 123, 127, 129, 126, 123, 131, 123, 121, 119, 121, 122, 125, 126, 122, 125, 125, 104, 127, 123, 123, 124, 130, 113, 122, 122, 121, 124, 125, 130, 126, 125, 124, 123, 126, 122, 121, 128, 124, 124, 124, 129, 137, 125, 126, 124, 126, 127, 125, 118, 118, 116, 128, 119, 123, 120, 129, 126, 123, 120, 140, 123, 128, 119, 119, 126, 124, 124, 126, 124, 124, 120, 121, 127, 122, 116, 121, 120, 121, 125, 104, 121, 124, 125, 110, 119, 119, 124, 122, 121, 119, 117, 122, 137, 123, 124, 126, 125, 163, 126, 123, 123, 119, 129, 125, 122, 118, 123, 121, 130, 123, 122, 114, 124, 122, 124, 113, 127, 118, 119, 125, 125, 126, 122, 124, 125, 126, 123, 121, 122, 124, 128, 123, 124, 126, 149, 123, 122, 131, 124, 158, 122, 107, 119, 122, 124, 121, 124, 148, 122, 139, 121, 114, 121, 127, 121, 122, 122, 117, 128, 132, 129, 131, 126, 121, 119, 122, 123, 123, 116, 83, 132, 126, 131, 120, 121, 124, 96, 100, 127, 127, 105, 118, 122, 124, 129, 118, 124, 110, 120, 130, 119, 117, 106, 123, 120, 109, 118, 127, 123, 123, 115, 125, 132, 119, 97, 120, 131, 128, 115, 121, 133, 102, 119, 124, 128, 117, 118, 110, 122, 105, 119, 117, 123, 100, 124, 141, 140, 131, 125, 121, 117, 125, 123, 117, 124, 127, 136, 125, 119, 124, 121, 128, 125, 103, 122, 134, 136, 123, 124, 129, 122, 125, 125, 120, 121, 113, 123, 125, 124, 124, 123, 119, 152, 118, 87, 119, 120, 119, 122, 148, 95, 128, 127, 127, 118, 128, 122, 132, 117, 159, 118, 123, 123, 130, 122, 120, 115, 123, 110, 116, 124, 123, 124, 126, 121, 132, 106, 115, 129, 118, 117, 126, 118, 129, 122, 123, 124, 119, 128, 127, 114, 125, 120, 125, 140, 127, 122, 116, 131, 122, 124, 123, 128, 125, 130, 127, 128, 128, 121, 117, 126, 116, 123, 123, 121, 124, 139, 118, 116, 119, 108, 121, 131, 123, 121, 121, 133, 123, 124, 120, 121, 119, 146, 128, 124, 123, 128, 126, 106, 120, 121, 127, 125, 124, 124, 114, 127, 116, 122, 130, 118, 125, 110, 121, 122, 126, 130, 118, 96, 127, 125, 120, 137, 140, 125, 128, 124, 127, 124, 112, 122, 115, 124, 130, 128, 123, 127, 123, 124, 121, 124, 126, 127, 123, 105, 122, 122, 118, 121, 134, 125, 124, 131, 114, 129, 119, 115, 119, 120, 116, 125, 120, 122, 122, 117, 126, 118, 125, 123, 123, 122, 124, 119, 117, 123, 123, 126, 129, 125, 124, 110, 122, 137, 125, 125, 116, 116, 134, 127, 124, 123, 113, 114, 117, 117, 127, 116, 113, 127, 117, 129, 127, 114, 126, 132, 122, 130, 119, 118, 124, 123, 130, 130, 109, 127, 122, 125, 116, 119, 124, 113, 132, 124, 122, 132, 131, 118, 128, 114, 119, 121, 129, 115, 117, 118, 130, 122, 121, 117, 116, 121, 139, 129, 121, 113, 122, 123, 128, 123, 122, 121, 134, 132, 120, 124, 119, 127, 123, 107, 116, 120, 130, 125, 121, 131, 109, 121, 135, 122, 128, 118, 121, 121, 115, 127, 122, 115, 117, 116, 121, 127, 115, 124, 119, 114, 130, 116, 123, 140, 131, 131, 122, 137, 134, 129, 127, 116, 127, 140, 136, 127, 132, 131, 157, 132, 120, 128, 126, 128, 123, 120, 121, 124, 126, 125, 123, 118, 112, 131, 131, 123, 126, 115, 120, 127, 126, 124, 132, 129, 121, 124, 126, 125, 120, 126, 116, 132, 112, 121, 127, 133, 112, 123, 139, 114, 132, 120, 132, 127, 122, 117, 121, 144, 129, 125, 134, 136, 121, 135, 129, 112, 122, 116, 126, 116, 114, 115, 132, 124, 124, 120, 127, 120, 125, 125, 124, 128, 127, 118, 128, 123, 122, 119, 116, 130, 119, 119, 126, 109, 133, 119, 123, 125, 117, 129, 123, 125, 117, 129, 117, 123, 116, 117, 115, 115, 125, 117, 132, 122, 124, 123, 115, 116, 121, 122, 123, 122, 120, 122, 131, 107, 125, 141, 127, 120, 125, 124, 134, 117, 123, 123, 117, 125, 124, 116, 127, 127, 125, 138, 124, 126, 129, 126, 122, 131, 124, 132, 125, 124, 120, 126, 120, 124, 121, 125, 121, 127, 121, 126, 123, 122, 129, 119, 120, 118, 126, 126, 123, 122, 120, 125, 121, 126, 129, 118, 122, 119, 124, 124, 119, 120, 125, 120, 131, 120, 118, 126, 126, 121, 117, 119, 123, 119, 125, 122, 129, 107, 125, 125, 128, 125, 118, 126, 121, 121, 121, 141, 135, 124, 123, 125, 125, 122, 128, 124, 122, 119, 127, 123, 123, 123, 124, 122, 124, 121, 120, 118, 122, 124, 126, 122, 120, 130, 126, 120, 122, 126, 119, 129, 130, 120, 112, 130, 126, 129, 127, 123, 120, 130, 130, 128, 139, 120, 134, 121, 122, 113, 119, 126, 128, 120, 120, 120, 123, 139, 122, 126, 118, 123, 114, 136, 122, 119, 119, 118, 121, 125, 123, 108, 121, 117, 126, 125, 120, 123, 116, 121, 121, 114, 132, 126, 120, 124, 118, 121, 114, 119, 122, 115, 127, 117, 121, 120, 121, 128, 124, 123, 127, 128, 124, 126, 108, 126, 123, 136, 125, 129, 122, 124, 130, 121, 116, 105, 118, 118, 129, 124, 125, 136, 110, 123, 124, 136, 124, 121, 119, 122, 125, 119, 116, 125, 105, 126, 128, 118, 118, 125, 120, 133, 123, 124, 128, 114, 119, 124, 115, 124, 118, 128, 122, 116, 116, 123, 125, 122, 127, 121, 98, 117, 125, 125, 124, 127, 126, 120, 123, 123, 123, 122, 129, 120, 124, 126, 123, 124, 122, 126, 123, 126, 122, 128, 124, 125, 125, 123, 117, 125, 125, 113, 127, 114, 124, 123, 121, 128, 116, 111, 125, 112, 128, 117, 116, 111, 135, 121, 120, 121, 120, 119, 136, 125, 127, 125, 123, 127, 128, 126, 120, 104, 125, 117, 112, 119, 132, 148, 116, 126, 135, 124, 124, 122, 128, 129, 146, 140, 128, 121, 116, 121, 110, 122, 125, 128, 129, 140, 122, 123, 122, 116, 124, 137, 122, 118, 126, 122, 128, 118, 124, 120, 118, 116, 109, 113, 125, 117, 127, 123, 98, 116, 109, 137, 124, 118, 134, 125, 122, 133, 124, 119, 129, 123, 119, 120, 141, 126, 117, 123, 109, 101, 126, 120, 127, 130, 122, 113, 126, 112, 120, 116, 121, 131, 119, 123, 124, 134, 115, 120, 115, 108, 128, 124, 140, 125, 120, 147, 115, 130, 127, 127, 125, 121, 117, 116, 119, 144, 134, 124, 118, 119, 124, 131, 116, 130, 125, 141, 122, 105, 117, 130, 143, 130, 131, 134, 141, 130, 126, 122, 116, 128, 120, 127, 126, 130, 123, 122, 126, 197, 103, 132, 124, 126, 116, 133, 114, 104, 130, 126, 120, 124, 114, 129, 137, 127, 129, 123, 118, 124, 130, 111, 96, 140, 121, 126, 128, 123, 111, 129, 121, 122, 132, 91, 135, 121, 129, 118, 129, 125, 116, 119, 124, 126, 122, 123, 125, 124, 121, 125, 125, 112, 134, 136, 128, 123, 139, 122, 117, 122, 127, 121, 117, 122, 123, 125, 124, 121, 123, 125, 121, 117, 125, 125, 103, 124, 122, 117, 127, 122, 121, 124, 122, 124, 119, 129, 122, 125, 110, 124, 129, 123, 146, 118, 118, 124, 122, 147, 124, 131, 123, 125, 104, 120, 123, 127, 119, 113, 86, 123, 128, 118, 121, 128, 128, 121, 131, 142, 129, 119, 142, 133, 104, 103, 115, 124, 121, 127, 117, 121, 120, 128, 132, 118, 121, 120, 132, 120, 116, 126, 83, 124, 118, 122, 125, 122, 126, 127, 125, 116, 125, 124, 122, 124, 123, 116, 121, 120, 120, 135, 125, 128, 123, 121, 124, 124, 134, 124, 115, 126, 112, 125, 130, 115, 107, 118, 126, 124, 119, 127, 123, 121, 124, 114, 133, 117, 109, 123, 124, 124, 121, 120, 123, 120, 135, 129, 131, 124, 125, 125, 120, 161, 95, 121, 130, 89, 119, 120, 128, 132, 129, 119, 122, 129, 120, 133, 146, 125, 126, 123, 94, 114, 117, 119, 133, 156, 122, 112, 126, 102, 119, 112, 125, 132, 128, 116, 114, 122, 121, 128, 122, 120, 149, 122, 76, 111, 125, 125, 85, 117, 121, 122, 113, 118, 120, 124, 113, 146, 124, 121, 163, 81, 118, 124, 123, 123, 118, 123, 169, 120, 116, 113, 120, 126, 116, 119, 116, 134, 126, 122, 121, 120, 132, 144, 129, 125, 118, 114, 125, 124, 117, 119, 201, 124, 120, 125, 131, 116, 117, 130, 111, 124, 124, 138, 85, 119, 123, 126, 127, 115, 123, 145, 125, 128, 105, 87, 114, 132, 136, 122, 131, 133, 118, 116, 141, 136, 122, 127, 132, 127, 118, 116, 121, 125, 106, 133, 125, 136, 127, 126, 130, 127, 106, 121, 126, 130, 130, 125, 128, 121, 124, 114, 120, 124, 122, 118, 119, 119, 126, 130, 122, 125, 146, 121, 124, 120, 111, 128, 112, 124, 127, 130, 113, 134, 146, 106, 122, 121, 119, 125, 128, 135, 127, 109, 118, 128, 118, 109, 123, 116, 108, 125, 123, 122, 120, 128, 131, 132, 124, 123, 125, 136, 132, 124, 118, 121, 131, 114, 131, 133, 118, 123, 144, 116, 127, 121, 103, 135, 116, 119, 117, 132, 121, 106, 132, 126, 129, 112, 125, 124, 129, 107, 126, 103, 129, 127, 124, 121, 113, 124, 124, 124, 125, 122, 116, 127, 122, 121, 124, 123, 126, 121, 123, 132, 118, 125, 119, 120, 120, 114, 121, 130, 126, 121, 123, 123, 130, 123, 121, 114, 123, 118, 118, 107, 128, 116, 125, 126, 125, 116, 124, 123, 124, 120, 120, 123, 108, 120, 123, 122, 129, 90, 121, 120, 118, 124, 125, 120, 120, 121, 114, 127, 123, 124, 115, 122, 124, 115, 123, 124, 123, 116, 121, 117, 125, 120, 116, 121, 127, 120, 127, 123, 131, 122, 122, 120, 119, 109, 119, 120, 118, 123, 123, 119, 121, 125, 120, 124, 123, 128, 119, 126, 122, 123, 113, 124, 121, 116, 126, 125, 124, 124, 128, 121, 119, 123, 119, 122, 122, 124, 121, 120, 123, 122, 117, 125, 131, 100, 121, 143, 134, 122, 128, 108, 115, 120, 120, 118, 121, 124, 113, 119, 121, 124, 131, 125, 123, 114, 118, 125, 123, 126, 119, 131, 120, 121, 126, 127, 107, 130, 125, 125, 116, 130, 127, 136, 124, 125, 134, 123, 126, 121, 118, 124, 123, 118, 123, 120, 120, 121, 112, 132, 125, 100, 124, 126, 122, 129, 126, 129, 128, 111, 119, 115, 116, 128, 125, 129, 122, 119, 130, 126, 132, 124, 129, 127, 128, 121, 132, 121, 123, 127, 125, 118, 140, 125, 106, 143, 123, 138, 120, 116, 122, 126, 133, 126, 138, 119, 128, 122, 126, 120, 118, 122, 119, 123, 122, 123, 119, 119, 125, 116, 123, 123, 119, 145, 127, 121, 120, 134, 137, 123, 126, 125, 129, 122, 122, 129, 118, 130, 122, 123, 122, 125, 123, 122, 116, 130, 130, 126, 126, 120, 116, 137, 121, 123, 124, 124, 128, 122, 116, 130, 127, 129, 120, 128, 121, 140, 139, 131, 120, 123, 123, 121, 104, 116, 116, 122, 118, 130, 125, 116, 113, 131, 125, 119, 120, 117, 126, 124, 121, 120, 119, 127, 145, 119, 160, 121, 129, 130, 122, 122, 124, 119, 127, 120, 121, 130, 127, 135, 122, 124, 125, 124, 126, 118, 120, 120, 122, 116, 124, 124, 129, 115, 126, 126, 120, 125, 122, 130, 123, 119, 121, 115, 122, 131, 124, 121, 107, 119, 123, 132, 123, 125, 127, 125, 122, 121, 130, 115, 123, 127, 125, 121, 125, 126, 119, 119, 125, 124, 123, 117, 125, 124, 123, 130, 123, 124, 123, 119, 126, 124, 117, 127, 122, 121, 127, 117, 116, 127, 125, 121, 129, 118, 121, 119, 112, 128, 118, 126, 122, 116, 124, 122, 117, 124, 120, 125, 115, 123, 130, 124, 126, 121, 122, 130, 127, 126, 124, 125, 125, 125, 124, 123, 135, 121, 125, 129, 125, 123, 127, 119, 125, 124, 121, 124, 133, 124, 118, 124, 115, 121, 119, 123, 115, 122, 123, 124, 123, 124, 120, 125, 120, 122, 120, 128, 122, 122, 130, 122, 118, 124, 126, 125, 123, 142, 121, 124, 122, 124, 120, 121, 121, 125, 116, 117, 126, 128, 120, 126, 121, 136, 122, 114, 127, 124, 125, 119, 124, 122, 124, 122, 125, 124, 118, 124, 129, 124, 122, 122, 120, 117, 119, 112, 125, 133, 133, 129, 123, 115, 124, 134, 118, 123, 111, 141, 115, 127, 125, 118, 124, 126, 134, 126, 132, 121, 128, 109, 118, 147, 126, 127, 110, 120, 123, 123, 130, 126, 121, 128, 125, 116, 127, 122, 111, 126, 121, 125, 124, 111, 125, 131, 119, 132, 125, 117, 123, 129, 124, 124, 119, 110, 124, 129, 124, 125, 124, 121, 124, 123, 127, 115, 122, 125, 128, 113, 132, 121, 124, 121, 127, 108, 121, 131, 125, 133, 127, 146, 130, 127, 123, 133, 129, 123, 125, 122, 121, 108, 131, 128, 130, 120, 122, 133, 116, 121, 122, 130, 116, 118, 121, 134, 123, 120, 124, 126, 126, 136, 122, 119, 125, 125, 126, 114, 125, 115, 135, 117, 133, 90, 124, 130, 121, 119, 133, 124, 116, 132, 122, 126, 127, 127, 85, 130, 91, 129, 109, 111, 126, 120, 117, 127, 73, 143, 109, 140, 120, 139, 125, 126, 77, 126, 136, 121, 120, 128, 119, 150, 124, 110, 120, 121, 121, 130, 120, 120, 120, 129, 118, 115, 128, 121, 117, 128, 126, 116, 120, 127, 121, 119, 123, 117, 120, 117, 131, 121, 121, 120, 113, 122, 123, 131, 120, 123, 138, 120, 124, 118, 129, 161, 128, 122, 120, 113, 120, 132, 130, 120, 118, 153, 140, 119, 107, 128, 123, 135, 117, 122, 130, 126, 114, 112, 135, 128, 118, 112, 119, 120, 124, 82, 118, 117, 128, 115, 125, 127, 118, 119, 121, 104, 120, 150, 117, 163, 157, 123, 112, 114, 123, 119, 120, 127, 118, 114, 134, 130, 94, 118, 130, 108, 114, 67, 124, 121, 131, 125, 123, 132, 107, 125, 125, 179, 119, 117, 122, 149, 124, 132, 125, 121, 123, 122, 119, 129, 122, 136, 123, 120, 114, 120, 118, 120, 113, 98, 125, 150, 119, 151, 126, 122, 116, 127, 128, 124, 124, 125, 122, 101, 127, 118, 123, 119, 122, 122, 123, 118, 123, 115, 123, 146, 129, 131, 121, 123, 115, 127, 121, 105, 125, 132, 129, 129, 124, 110, 95, 125, 131, 127, 132, 124, 127, 119, 144, 127, 119, 121, 127, 120, 126, 115, 129, 116, 116, 134, 130, 125, 125, 123, 129, 121, 120, 123, 125, 125, 128, 122, 120, 128, 127, 110, 114, 111, 138, 118, 115, 126, 111, 125, 123, 132, 124, 124, 142, 123, 123, 129, 119, 123, 122, 119, 124, 124, 125, 132, 115, 124, 127, 122, 125, 125, 125, 124, 129, 122, 126, 119, 117, 122, 159, 130, 126, 121, 136, 117, 153, 125, 130, 112, 122, 127, 122, 122, 124, 126, 119, 118, 128, 127, 116, 128, 117, 125, 121, 122, 120, 123, 133, 118, 122, 136, 128, 127, 127, 134, 133, 129, 118, 124, 125, 129, 124, 121, 114, 124, 118, 128, 114, 119, 141, 120, 129, 124, 122, 99, 124, 115, 120, 125, 125, 129, 125, 126, 122, 125, 122, 119, 121, 122, 118, 124, 125, 128, 129, 120, 121, 126, 128, 128, 126, 120, 114, 124, 120, 125, 122, 140, 124, 125, 135, 121, 129, 123, 128, 120, 105, 116, 132, 116, 138, 116, 101, 128, 121, 114, 129, 127, 117, 123, 112, 120, 125, 133, 121, 125, 113, 112, 131, 126, 120, 130, 122, 130, 122, 123, 121, 104, 137, 138, 116, 110, 124, 131, 120, 112, 104, 121, 127, 116, 115, 121, 167, 123, 138, 126, 121, 120, 126, 139, 122, 126, 120, 111, 186, 119, 118, 130, 135, 110, 140, 135, 120, 132, 153, 118, 90, 127, 115, 112, 108, 115, 135, 128, 134, 116, 131, 126, 104, 125, 126, 115, 113, 163, 144, 120, 127, 121, 111, 129, 116, 127, 120, 130, 125, 137, 123, 120, 129, 130, 114, 123, 113, 120, 128, 122, 142, 126, 133, 124, 131, 126, 133, 113, 153, 120, 127, 125, 114, 124, 122, 131, 120, 124, 142, 121, 108, 125, 120, 121, 125, 116, 121, 121, 130, 126, 125, 123, 130, 124, 117, 137, 156, 112, 118, 149, 127, 129, 123, 121, 112, 127, 122, 136, 120, 138, 143, 123, 124, 121, 157, 120, 115, 108, 133, 108, 116, 169, 115, 111, 113, 126, 112, 116, 139, 119, 140, 118, 119, 125, 122, 118, 129, 115, 83, 145, 133, 132, 174, 116, 125, 120, 136, 118, 122, 124, 102, 134, 129, 125, 115, 160, 121, 127, 118, 119, 119, 104, 98, 119, 117, 119, 118, 126, 115, 118, 119, 148, 123, 107, 119, 122, 125, 115, 123, 123, 118, 130, 122, 111, 122, 120, 11, 131, 104, 135, 144, 127, 112, 118, 113, 117, 115, 130, 131, 122, 144, 127, 123, 101, 122, 122, 117, 124, 101, 129, 117, 109, 125, 119, 114, 114, 124, 129, 131, 128, 119, 117, 116, 113, 81, 117, 126, 86, 120, 116, 116, 126, 129, 124, 117, 101, 122, 121, 129, 133, 118, 124, 96, 121, 123, 120, 129, 200, 119, 122, 127, 117, 144, 117, 136, 121, 120, 130, 114, 133, 120, 118, 129, 117, 130, 123, 122, 121, 126, 116, 76, 122, 124, 119, 123, 118, 121, 120, 132, 128, 119, 125, 179, 42, 122, 127, 130, 125, 139, 131, 185, 110, 111, 121, 130, 124, 121, 126, 122, 134, 124, 121, 116, 122, 130, 154, 128, 121, 124, 120, 115, 119, 128, 127, 96, 127, 119, 132, 113, 121, 133, 122, 141, 127, 144, 128, 150, 120, 125, 126, 130, 131, 127, 117, 121, 121, 119, 118, 122, 126, 122, 127, 133, 117, 127, 116, 119, 120, 123, 121, 124, 125, 159, 116, 123, 158, 123, 116, 121, 122, 127, 122, 116, 135, 130, 117, 119, 126, 126, 117, 151, 127, 131, 118, 137, 98, 111, 121, 115, 99, 121, 114, 118, 126, 126, 119, 135, 125, 121, 125, 114, 123, 119, 125, 132, 121, 126, 123, 162, 116, 135, 112, 122, 117, 126, 117, 116, 131, 118, 127, 76, 158, 124, 128, 126, 118, 127, 122, 94, 118, 117, 145, 125, 124, 116, 132, 125, 116, 124, 119, 121, 122, 124, 121, 126, 126, 120, 131, 116, 107, 125, 119, 148, 127, 129, 114, 130, 124, 136, 124, 115, 119, 118, 124, 137, 129, 127, 125, 118, 122, 122, 126, 119, 128, 122, 124, 126, 114, 122, 121, 120, 122, 117, 126, 125, 118, 123, 117, 119, 131, 117, 122, 121, 126, 134, 125, 135, 134, 130, 126, 118, 122, 124, 120, 124, 121, 119, 122, 118, 116, 113, 121, 121, 116, 121, 124, 122, 125, 126, 126, 127, 115, 130, 125, 122, 119, 120, 121, 129, 124, 123, 123, 122, 128, 116, 126, 125, 126, 126, 125, 123, 126, 127, 120, 118, 127, 125, 123, 122, 119, 120, 131, 123, 128, 122, 119, 116, 113, 130, 122, 121, 121, 127, 120, 130, 122, 121, 125, 118, 124, 123, 124, 125, 124, 124, 121, 121, 123, 122, 123, 128, 132, 120, 122, 125, 125, 125, 121, 128, 125, 124, 131, 119, 135, 122, 133, 124, 133, 118, 131, 121, 137, 125, 125, 121, 127, 122, 124, 125, 120, 120, 120, 123, 122, 126, 121, 123, 123, 119, 121, 122, 122, 135, 126, 127, 118, 123, 127, 123, 120, 126, 118, 122, 125, 124, 125, 122, 115, 118, 121, 124, 119, 120, 125, 120, 118, 121, 119, 123, 124, 128, 124, 119, 129, 123, 118, 123, 122, 122, 115, 122, 123, 115, 124, 121, 118, 127, 123, 124, 128, 121, 125, 122, 123, 117, 120, 125, 121, 126, 122, 135, 125, 124, 128, 119, 125, 123, 123, 122, 113, 126, 114, 126, 121, 122, 120, 133, 128, 122, 124, 130, 127, 121, 121, 123, 122, 119, 129, 124, 131, 120, 123, 123, 124, 123, 125, 123, 116, 122, 125, 122, 119, 138, 118, 119, 123, 134, 122, 128, 126, 134, 123, 126, 127, 102, 133, 93, 125, 122, 95, 143, 113, 130, 116, 130, 99, 124, 114, 55, 125, 129, 167, 111, 141, 140, 136, 123, 133, 151, 111, 120, 134, 128, 125, 126, 126, 123, 122, 128, 136, 110, 121, 131, 168, 126, 129, 127, 139, 113, 119, 134, 116, 105, 123, 105, 144, 113, 117, 107, 125, 192, 127, 127, 119, 110, 122, 105, 133, 120, 221, 119, 103, 132, 100, 122, 115, 132, 104, 118, 108, 128, 122, 120, 125, 127, 130, 130, 127, 127, 124, 130, 119, 66, 105, 110, 131, 126, 130, 199, 125, 113, 117, 121, 60, 110, 124, 125, 124, 123, 99, 136, 115, 126, 122, 125, 128, 126, 128, 120, 134, 119, 106, 139, 120, 128, 121, 119, 122, 127, 121, 122, 116, 123, 122, 129, 118, 114, 120, 115, 123, 120, 122, 125, 150, 121, 128, 116, 118, 125, 123, 120, 114, 132, 116, 126, 124, 128, 120, 123, 120, 123, 119, 116, 122, 123, 127, 121, 119, 123, 140, 121, 113, 124, 129, 128, 117, 123, 121, 123, 121, 122, 123, 129, 123, 121, 126, 116, 121, 122, 131, 124, 124, 124, 120, 124, 124, 125, 116, 126, 128, 120, 120, 119, 126, 121, 126, 122, 118, 120, 128, 119, 125, 125, 118, 121, 117, 125, 120, 123, 123, 116, 126, 119, 124, 125, 119, 122, 120, 125, 125, 127, 119, 125, 127, 129, 119, 122, 120, 117, 120, 120, 123, 119, 121, 122, 120, 113, 130, 130, 123, 121, 125, 133, 121, 120, 120, 112, 121, 124, 142, 119, 137, 128, 132, 122, 103, 119, 135, 121, 123, 111, 123, 130, 124, 121, 112, 103, 123, 111, 130, 126, 107, 122, 122, 118, 123, 131, 125, 127, 117, 129, 115, 127, 124, 120, 129, 128, 125, 126, 112, 119, 136, 126, 124, 130, 115, 129, 138, 131, 128, 120, 123, 127, 125, 133, 122, 125, 127, 117, 132, 121, 122, 117, 116, 125, 136, 111, 115, 123, 128, 119, 125, 126, 140, 130, 124, 124, 121, 124, 131, 114, 121, 125, 119, 120, 120, 111, 128, 120, 119, 119, 110, 128, 123, 115, 112, 120, 133, 120, 119, 127, 127, 124, 100, 131, 124, 121, 118, 129, 121, 126, 119, 125, 121, 122, 135, 125, 139, 119, 118, 118, 119, 118, 134, 118, 125, 123, 125, 128, 132, 116, 128, 116, 126, 134, 121, 131, 118, 114, 145, 122, 128, 129, 119, 129, 114, 121, 134, 135, 121, 125, 123, 128, 111, 121, 120, 131, 111, 116, 123, 107, 116, 127, 119, 125, 130, 124, 110, 124, 148, 126, 113, 113, 113, 120, 127, 127, 132, 119, 109, 144, 120, 124, 122, 122, 116, 126, 118, 129, 122, 124, 118, 121, 131, 122, 127, 126, 127, 129, 131, 140, 127, 121, 124, 116, 114, 109, 123, 129, 127, 125, 121, 119, 126, 131, 117, 124, 115, 123, 122, 121, 117, 122, 128, 122, 125, 111, 136, 130, 121, 125, 120, 128, 121, 110, 120, 132, 121, 133, 126, 129, 116, 115, 126, 123, 121, 122, 139, 126, 122, 126, 118, 123, 122, 125, 124, 121, 125, 126, 124, 119, 124, 122, 121, 127, 123, 128, 118, 109, 126, 124, 117, 124, 123, 121, 122, 126, 122, 102, 128, 123, 128, 131, 123, 124, 126, 114, 125, 116, 119, 126, 140, 121, 142, 121, 127, 122, 118, 104, 121, 126, 121, 131, 122, 116, 121, 119, 125, 135, 123, 113, 119, 121, 127, 112, 119, 122, 127, 121, 121, 125, 121, 117, 115, 122, 130, 139, 103, 123, 123, 122, 129, 129, 120, 139, 123, 123, 125, 124, 126, 120, 120, 123, 128, 127, 122, 122, 119, 123, 97, 121, 126, 118, 119, 126, 123, 126, 122, 95, 121, 128, 128, 129, 124, 139, 124, 118, 122, 128, 126, 141, 122, 123, 122, 123, 113, 133, 129, 131, 103, 122, 121, 143, 115, 128, 122, 128, 127, 118, 123, 128, 122, 123, 127, 120, 125, 132, 129, 122, 127, 123, 128, 128, 126, 128, 98, 120, 111, 131, 125, 123, 124, 117, 121, 128, 121, 122, 129, 127, 131, 133, 123, 130, 117, 127, 127, 121, 117, 129, 116, 127, 120, 117, 123, 123, 126, 131, 131, 124, 122, 122, 121, 125, 102, 118, 122, 110, 112, 119, 121, 119, 124, 87, 131, 118, 117, 120, 126, 113, 122, 124, 122, 130, 119, 113, 125, 118, 122, 115, 108, 107, 127, 124, 131, 97, 115, 101, 123, 126, 99, 123, 127, 123, 119, 130, 139, 123, 115, 129, 125, 119, 125, 121, 131, 128, 152, 125, 120, 123, 127, 119, 124, 121, 130, 129, 114, 121, 123, 124, 118, 122, 116, 116, 125, 130, 113, 120, 136, 117, 119, 118, 119, 130, 121, 118, 127, 120, 128, 119, 120, 136, 128, 126, 134, 126, 125, 109, 125, 130, 125, 125, 134, 125, 124, 115, 118, 132, 116, 120, 125, 126, 124, 126, 105, 124, 130, 121, 123, 118, 125, 124, 117, 135, 127, 118, 123, 122, 124, 114, 114, 129, 101, 129, 126, 110, 121, 120, 121, 127, 121, 123, 125, 129, 118, 125, 134, 115, 124, 117, 111, 120, 119, 128, 125, 108, 134, 129, 136, 127, 126, 125, 135, 141, 126, 123, 121, 131, 125, 125, 114, 121, 119, 118, 134, 124, 117, 108, 127, 131, 122, 120, 125, 120, 132, 117, 124, 117, 133, 128, 129, 132, 128, 111, 123, 127, 115, 130, 127, 115, 127, 136, 173, 125, 117, 129, 121, 112, 115, 109, 120, 113, 123, 115, 132, 122, 123, 108, 127, 138, 151, 116, 125, 120, 124, 116, 123, 131, 128, 124, 123, 113, 116, 127, 115, 104, 115, 126, 126, 125, 122, 127, 145, 129, 123, 124, 126, 110, 126, 124, 108, 128, 119, 116, 125, 110, 131, 104, 113, 128, 119, 134, 127, 119, 120, 132, 120, 123, 126, 112, 115, 119, 116, 115, 129, 102, 122, 120, 107, 121, 108, 143, 114, 117, 118, 131, 120, 141, 122, 125, 127, 106, 125, 113, 114, 139, 141, 132, 110, 117, 115, 123, 130, 122, 116, 102, 126, 127, 123, 126, 121, 132, 114, 117, 125, 130, 154, 111, 135, 131, 136, 111, 115, 114, 107, 124, 131, 124, 126, 109, 120, 118, 115, 129, 129, 116, 117, 118, 131, 128, 110, 127, 124, 124, 116, 115, 126, 109, 133, 116, 131, 127, 131, 111, 134, 115, 138, 125, 131, 137, 132, 136, 127, 122, 127, 130, 134, 119, 131, 116, 112, 115, 134, 133, 119, 121, 119, 126, 117, 109, 112, 130, 132, 130, 127, 142, 118, 112, 122, 113, 122, 125, 125, 131, 128, 128, 111, 130, 130, 128, 129, 118, 124, 124, 126, 124, 130, 141, 126, 130, 120, 124, 138, 123, 111, 119, 125, 120, 121, 135, 136, 123, 123, 119, 126, 124, 141, 121, 116, 113, 136, 129, 115, 136, 126, 120, 118, 117, 115, 117, 114, 130, 111, 124, 120, 115, 125, 129, 113, 115, 116, 118, 125, 147, 128, 122, 151, 134, 124, 138, 144, 115, 144, 136, 125, 133, 126, 123, 119, 120, 134, 149, 123, 132, 134, 132, 136, 123, 121, 122, 119, 137, 128, 122, 124, 120, 127, 120, 128, 114, 125, 109, 120, 133, 139, 119, 106, 121, 130, 121, 91, 106, 122, 118, 120, 115, 125, 135, 118, 124, 111, 134, 123, 141, 119, 114, 122, 124, 118, 136, 121, 123, 140, 123, 121, 121, 142, 124, 128, 142, 125, 121, 132, 118, 113, 117, 139, 135, 120, 114, 136, 124, 124, 123, 115, 148, 110, 139, 127, 122, 122, 139, 119, 103, 127, 129, 140, 131, 120, 120, 133, 123, 126, 114, 122, 123, 127, 118, 124, 122, 131, 130, 133, 130, 123, 123, 129, 128, 127, 123, 128, 121, 121, 124, 119, 122, 123, 122, 125, 104, 129, 124, 122, 125, 124, 124, 127, 127, 117, 125, 119, 124, 124, 121, 125, 122, 127, 113, 125, 121, 120, 117, 122, 128, 118, 119, 123, 125, 125, 122, 117, 125, 141, 120, 101, 121, 128, 127, 117, 120, 122, 112, 126, 118, 122, 123, 122, 118, 119, 117, 129, 127, 124, 125, 126, 142, 128, 123, 129, 126, 118, 119, 127, 123, 123, 125, 130, 123, 126, 123, 119, 126, 121, 117, 123, 129, 128, 119, 124, 122, 129, 126, 121, 122, 124, 119, 122, 124, 129, 127, 125, 120, 133, 117, 104, 128, 120, 153, 127, 129, 119, 128, 121, 118, 123, 125, 123, 130, 123, 159, 123, 128, 122, 119, 122, 104, 148, 95, 118, 120, 83, 124, 118, 108, 113, 121, 129, 112, 118, 130, 110, 118, 125, 115, 128, 125, 119, 115, 124, 97, 109, 129, 128, 103, 122, 119, 114, 105, 116, 96, 111, 133, 116, 126, 125, 140, 164, 135, 125, 131, 134, 113, 122, 139, 114, 120, 111, 118, 135, 119, 121, 117, 118, 151, 114, 103, 117, 119, 113, 122, 81, 128, 134, 112, 110, 111, 133, 117, 133, 128, 100, 123, 151, 114, 124, 114, 128, 119, 136, 110, 157, 117, 112, 110, 119, 119, 135, 159, 128, 119, 97, 124, 128, 122, 123, 121, 128, 125, 121, 133, 118, 136, 121, 134, 122, 116, 128, 116, 130, 105, 131, 122, 130, 116, 121, 110, 109, 126, 110, 125, 126, 110, 165, 129, 122, 128, 116, 121, 125, 123, 125, 104, 128, 130, 124, 119, 127, 118, 132, 122, 125, 128, 112, 123, 111, 110, 124, 126, 123, 121, 119, 124, 123, 126, 128, 120, 113, 106, 122, 115, 119, 119, 128, 126, 116, 117, 126, 118, 133, 115, 113, 124, 124, 124, 128, 122, 118, 124, 125, 128, 119, 121, 121, 122, 119, 114, 126, 127, 122, 125, 122, 124, 125, 114, 120, 131, 124, 116, 108, 122, 126, 126, 123, 126, 123, 132, 126, 119, 121, 120, 123, 123, 133, 120, 119, 116, 123, 127, 125, 121, 126, 124, 123, 120, 122, 133, 125, 124, 126, 122, 127, 125, 126, 124, 124, 121, 120, 121, 131, 127, 125, 125, 122, 126, 117, 122, 121, 113, 122, 122, 128, 115, 125, 110, 110, 127, 112, 120, 118, 105, 126, 124, 126, 146, 117, 118, 125, 116, 116, 130, 114, 139, 92, 125, 112, 120, 127, 123, 126, 126, 136, 107, 125, 129, 111, 103, 127, 126, 112, 72, 116, 110, 127, 119, 94, 117, 71, 118, 116, 121, 130, 147, 127, 131, 139, 140, 128, 123, 127, 121, 122, 109, 121, 126, 112, 113, 132, 121, 133, 134, 130, 126, 134, 117, 119, 120, 131, 145, 110, 71, 119, 119, 129, 119, 124, 112, 126, 144, 113, 139, 149, 132, 121, 127, 120, 122, 128, 124, 128, 125, 136, 128, 134, 131, 126, 133, 124, 123, 123, 112, 128, 144, 123, 128, 119, 126, 117, 128, 128, 65, 123, 119, 116, 84, 128, 120, 123, 117, 128, 123, 114, 120, 122, 112, 104, 115, 114, 120, 123, 141, 117, 120, 111, 119, 93, 126, 106, 102, 140, 114, 122, 128, 112, 131, 106, 122, 117, 125, 146, 127, 135, 122, 108, 119, 125, 122, 108, 117, 131, 125, 135, 124, 121, 120, 113, 105, 112, 119, 112, 119, 107, 121, 113, 120, 133, 121, 126, 129, 134, 119, 123, 121, 115, 137, 133, 118, 121, 120, 121, 113, 133, 121, 156, 105, 129, 120, 132, 120, 125, 124, 131, 120, 106, 115, 120, 116, 115, 105, 120, 120, 116, 113, 121, 120, 113, 151, 133, 120, 119, 128, 116, 132, 116, 128, 120, 126, 129, 130, 117, 118, 117, 123, 126, 124, 106, 120, 120, 118, 119, 116, 122, 129, 127, 127, 121, 112, 125, 128, 122, 115, 120, 112, 110, 117, 128, 124, 120, 120, 135, 126, 140, 124, 104, 124, 118, 122, 121, 114, 114, 126, 121, 125, 128, 126, 129, 131, 124, 122, 139, 118, 118, 120, 129, 120, 121, 119, 129, 124, 133, 124, 118, 126, 127, 122, 124, 121, 132, 124, 118, 136, 115, 123, 121, 130, 116, 127, 131, 126, 123, 119, 124, 111, 124, 117, 124, 120, 132, 116, 122, 117, 163, 117, 127, 116, 108, 118, 125, 126, 114, 130, 118, 122, 127, 118, 122, 130, 127, 117, 125, 118, 124, 122, 105, 130, 133, 128, 125, 120, 120, 106, 120, 138, 126, 122, 117, 118, 124, 123, 122, 124, 128, 121, 115, 121, 116, 120, 123, 124, 134, 119, 121, 117, 113, 125, 135, 110, 117, 119, 122, 121, 128, 124, 129, 118, 122, 125, 115, 135, 130, 126, 120, 121, 118, 112, 121, 127, 121, 119, 124, 129, 122, 124, 120, 118, 130, 123, 126, 116, 109, 121, 131, 115, 141, 119, 126, 117, 130, 128, 127, 121, 116, 123, 129, 123, 112, 120, 133, 115, 126, 122, 118, 121, 123, 120, 131, 123, 119, 143, 123, 127, 107, 125, 112, 121, 131, 125, 123, 120, 127, 146, 128, 123, 117, 114, 127, 129, 120, 114, 114, 117, 128, 116, 114, 130, 116, 120, 122, 131, 127, 123, 121, 129, 124, 142, 122, 121, 122, 125, 126, 120, 120, 117, 124, 122, 124, 126, 122, 114, 126, 123, 119, 123, 127, 122, 123, 124, 125, 133, 116, 128, 122, 120, 130, 121, 123, 119, 144, 126, 127, 120, 125, 127, 125, 122, 123, 116, 118, 124, 119, 123, 116, 122, 125, 123, 122, 124, 127, 129, 125, 137, 129, 125, 125, 114, 128, 120, 122, 136, 126, 126, 125, 117, 122, 120, 116, 125, 118, 119, 125, 121, 127, 126, 128, 132, 127, 131, 122, 122, 128, 127, 98, 129, 127, 122, 118, 124, 132, 102, 128, 123, 129, 133, 124, 123, 136, 125, 123, 124, 125, 127, 116, 122, 116, 119, 125, 140, 134, 122, 120, 115, 110, 126, 125, 118, 119, 127, 130, 126, 117, 119, 118, 137, 122, 121, 124, 132, 119, 125, 119, 124, 130, 124, 130, 123, 127, 114, 121, 126, 124, 125, 126, 127, 121, 122, 124, 120, 129, 132, 122, 125, 128, 120, 126, 117, 125, 127, 115, 120, 129, 115, 118, 126, 127, 116, 95, 119, 146, 117, 121, 124, 137, 115, 116, 130, 117, 124, 125, 119, 117, 121, 134, 125, 127, 120, 118, 120, 122, 125, 117, 123, 128, 131, 125, 126, 122, 108, 139, 119, 117, 124, 121, 120, 124, 124, 129, 127, 115, 124, 121, 130, 128, 116, 106, 114, 116, 109, 128, 117, 124, 115, 115, 121, 120, 126, 120, 120, 138, 116, 118, 120, 121, 121, 117, 117, 126, 119, 135, 124, 147, 115, 119, 125, 120, 129, 126, 120, 124, 123, 103, 119, 120, 120, 121, 113, 114, 123, 124, 131, 141, 115, 119, 124, 123, 122, 121, 118, 125, 120, 123, 120, 131, 121, 122, 122, 120, 117, 120, 122, 126, 134, 112, 122, 124, 126, 120, 124, 113, 123, 128, 125, 113, 163, 125, 129, 132, 124, 122, 124, 141, 126, 113, 117, 128, 131, 121, 133, 120, 124, 104, 117, 118, 136, 122, 120, 139, 137, 112, 120, 125, 123, 121, 129, 124, 122, 100, 118, 142, 125, 121, 137, 150, 133, 112, 121, 121, 119, 123, 127, 120, 128, 114, 135, 124, 130, 115, 123, 115, 117, 110, 124, 113, 129, 117, 129, 112, 135, 122, 119, 126, 130, 127, 114, 126, 120, 122, 124, 121, 110, 121, 124, 129, 124, 123, 132, 119, 123, 114, 131, 117, 126, 128, 128, 127, 128, 112, 130, 163, 121, 126, 117, 125, 123, 191, 114, 124, 124, 125, 126, 117, 120, 130, 72, 122, 121, 137, 113, 134, 113, 126, 121, 125, 126, 123, 125, 123, 120, 118, 103, 122, 129, 122, 118, 132, 120, 121, 124, 121, 132, 131, 114, 129, 121, 138, 120, 121, 121, 114, 122, 119, 124, 124, 120, 123, 125, 127, 128, 118, 116, 116, 129, 124, 123, 124, 124, 147, 127, 119, 121, 135, 128, 132, 124, 127, 113, 126, 125, 117, 119, 124, 123, 118, 119, 118, 125, 124, 116, 126, 122, 125, 125, 124, 131, 126, 125, 134, 122, 117, 124, 122, 120, 120, 125, 120, 129, 129, 120, 125, 126, 124, 125, 124, 118, 129, 109, 127, 128, 119, 124, 125, 122, 118, 125, 125, 125, 92, 114, 124, 125, 123, 125, 120, 123, 125, 125, 123, 118, 124, 123, 120, 115, 117, 121, 125, 129, 125, 124, 128, 117, 121, 124, 129, 113, 126, 115, 121, 132, 111, 114, 119, 137, 116, 127, 112, 116, 173, 117, 124, 127, 120, 118, 125, 123, 136, 122, 134, 120, 121, 124, 128, 121, 126, 132, 120, 119, 125, 116, 123, 129, 117, 124, 120, 121, 126, 120, 100, 122, 121, 140, 123, 114, 116, 121, 121, 126, 126, 131, 115, 135, 122, 117, 121, 118, 124, 118, 115, 110, 109, 118, 115, 110, 117, 125, 120, 118, 129, 124, 131, 108, 134, 111, 118, 115, 122, 108, 131, 115, 131, 115, 120, 116, 124, 132, 125, 119, 115, 118, 122, 117, 120, 129, 125, 127, 124, 111, 121, 116, 128, 125, 128, 120, 119, 125, 114, 116, 122, 123, 129, 122, 128, 141, 127, 115, 122, 125, 115, 122, 118, 124, 123, 126, 118, 111, 115, 116, 114, 123, 122, 124, 115, 123, 132, 139, 119, 146, 123, 118, 113, 115, 118, 123, 104, 96, 125, 125, 130, 123, 134, 124, 135, 130, 129, 141, 141, 149, 143, 134, 138, 126, 119, 102, 119, 111, 124, 118, 129, 116, 104, 119, 118, 121, 110, 108, 111, 123, 136, 121, 124, 73, 109, 104, 116, 110, 124, 131, 122, 118, 101, 141, 125, 130, 126, 122, 144, 114, 132, 129, 126, 125, 137, 155, 125, 139, 127, 124, 138, 89, 120, 109, 117, 135, 125, 125, 127, 133, 121, 142, 113, 125, 137, 119, 124, 118, 129, 125, 115, 131, 115, 108, 97, 122, 117, 125, 127, 124, 101, 118, 112, 113, 133, 147, 95, 115, 118, 127, 117, 125, 123, 107, 125, 121, 110, 118, 119, 130, 131, 171, 130, 139, 144, 139, 111, 141, 118, 110, 102, 119, 129, 108, 101, 122, 111, 124, 107, 167, 129, 129, 135, 147, 99, 143, 133, 125, 146, 120, 141, 146, 120, 112, 116, 119, 135, 119, 120, 110, 125, 125, 113, 118, 140, 124, 111, 123, 120, 116, 128, 159, 118, 107, 128, 112, 111, 131, 103, 121, 125, 145, 121, 117, 117, 120, 135, 125, 99, 129, 129, 119, 135, 131, 139, 124, 126, 122, 128, 89, 124, 119, 125, 122, 107, 126, 123, 117, 118, 119, 123, 115, 124, 127, 127, 136, 132, 120, 115, 118, 117, 116, 98, 130, 114, 115, 149, 117, 116, 125, 96, 120, 104, 95, 107, 121, 109, 121, 124, 125, 126, 133, 126, 122, 126, 125, 121, 120, 126, 121, 122, 116, 120, 120, 125, 127, 122, 124, 121, 111, 125, 115, 126, 117, 124, 124, 126, 120, 129, 123, 124, 120, 125, 130, 134, 125, 129, 129, 123, 123, 122, 118, 118, 116, 119, 122, 122, 121, 127, 125, 127, 123, 121, 117, 120, 125, 119, 121, 122, 138, 122, 117, 119, 115, 121, 126, 120, 127, 123, 120, 124, 132, 123, 123, 131, 123, 126, 120, 125, 126, 127, 131, 129, 124, 123, 121, 140, 121, 122, 113, 118, 122, 121, 127, 127, 135, 122, 113, 118, 127, 133, 124, 122, 115, 126, 121, 112, 132, 123, 121, 120, 124, 130, 124, 114, 126, 116, 122, 126, 129, 125, 122, 118, 131, 108, 124, 131, 121, 120, 135, 90, 118, 120, 119, 140, 126, 154, 114, 111, 128, 125, 132, 126, 125, 128, 121, 125, 140, 114, 125, 116, 125, 75, 116, 132, 110, 127, 122, 121, 124, 118, 124, 149, 125, 128, 127, 126, 156, 118, 133, 130, 121, 123, 127, 94, 102, 117, 129, 124, 120, 123, 125, 128, 121, 154, 124, 128, 122, 123, 124, 123, 121, 127, 116, 118, 119, 109, 119, 118, 123, 119, 117, 124, 115, 118, 123, 119, 112, 118, 120, 103, 133, 118, 121, 145, 113, 124, 129, 126, 127, 127, 118, 128, 125, 124, 118, 135, 112, 125, 115, 123, 126, 127, 129, 148, 121, 126, 122, 122, 123, 123, 124, 132, 125, 129, 122, 113, 113, 111, 125, 127, 118, 122, 124, 120, 121, 124, 122, 122, 121, 122, 121, 123, 118, 118, 128, 123, 121, 125, 123, 130, 107, 127, 122, 130, 122, 122, 123, 126, 128, 126, 109, 121, 129, 121, 129, 123, 125, 123, 138, 125, 124, 121, 121, 133, 118, 128, 122, 126, 120, 130, 132, 120, 124, 115, 121, 122, 123, 126, 120, 116, 125, 126, 133, 121, 124, 122, 106, 123, 114, 127, 122, 126, 122, 120, 120, 122, 121, 116, 143, 130, 127, 124, 122, 119, 123, 122, 112, 123, 124, 111, 127, 123, 123, 123, 127, 118, 125, 118, 116, 123, 126, 126, 122, 127, 125, 112, 121, 124, 122, 124, 122, 125, 120, 124, 125, 123, 99, 123, 132, 124, 130, 123, 126, 128, 127, 125, 122, 121, 126, 126, 123, 118, 124, 124, 116, 129, 125, 125, 126, 120, 128, 131, 114, 116, 111, 121, 118, 116, 120, 116, 127, 129, 127, 121, 139, 134, 122, 118, 125, 124, 114, 108, 126, 126, 124, 133, 120, 117, 115, 117, 117, 123, 125, 120, 133, 122, 128, 126, 122, 119, 122, 123, 121, 127, 124, 148, 129, 126, 120, 121, 121, 121, 97, 124, 130, 123, 129, 120, 119, 122, 123, 128, 124, 116, 123, 123, 127, 113, 118, 129, 136, 123, 127, 112, 120, 123, 129, 123, 125, 116, 127, 125, 120, 122, 123, 120, 122, 132, 124, 124, 139, 120, 121, 114, 127, 118, 124, 122, 119, 129, 107, 129, 130, 130, 126, 122, 127, 138, 118, 125, 126, 135, 121, 132, 126, 126, 126, 123, 126, 123, 139, 114, 121, 117, 132, 125, 141, 129, 126, 152, 131, 116, 128, 133, 132, 119, 121, 126, 133, 121, 124, 117, 131, 135, 118, 133, 128, 125, 132, 119, 114, 114, 118, 124, 123, 120, 127, 122, 113, 116, 142, 136, 124, 129, 120, 119, 115, 90, 113, 131, 123, 122, 127, 118, 129, 124, 106, 121, 115, 104, 142, 129, 121, 129, 124, 115, 127, 128, 119, 120, 128, 123, 127, 131, 116, 124, 123, 122, 122, 109, 119, 124, 119, 106, 122, 125, 117, 133, 128, 120, 123, 122, 126, 129, 130, 127, 122, 111, 139, 126, 121, 118, 130, 121, 120, 125, 118, 130, 116, 107, 120, 129, 114, 125, 110, 127, 109, 120, 129, 127, 120, 122, 117, 123, 128, 112, 121, 112, 132, 116, 137, 109, 117, 121, 124, 98, 135, 101, 111, 119, 115, 116, 120, 124, 118, 120, 117, 114, 138, 135, 122, 109, 122, 145, 123, 114, 111, 135, 119, 116, 125, 122, 120, 133, 119, 123, 127, 116, 120, 123, 115, 122, 118, 128, 122, 141, 109, 130, 111, 109, 126, 116, 128, 119, 118, 115, 126, 116, 133, 118, 112, 110, 123, 128, 132, 134, 116, 129, 113, 115, 137, 113, 128, 131, 107, 120, 116, 113, 128, 135, 121, 118, 135, 118, 118, 145, 128, 121, 120, 117, 127, 130, 140, 128, 132, 126, 129, 123, 101, 125, 112, 118, 122, 125, 127, 140, 128, 124, 125, 124, 127, 139, 127, 123, 119, 126, 118, 112, 132, 124, 121, 120, 136, 124, 108, 118, 124, 120, 114, 111, 147, 114, 128, 101, 117, 128, 116, 123, 123, 107, 118, 126, 122, 127, 120, 121, 128, 128, 128, 117, 125, 125, 123, 133, 118, 145, 99, 122, 150, 126, 127, 117, 122, 114, 140, 127, 125, 125, 121, 129, 83, 115, 114, 112, 113, 133, 132, 112, 125, 114, 120, 125, 118, 133, 128, 144, 117, 116, 123, 114, 111, 139, 111, 116, 187, 122, 115, 118, 130, 123, 132, 129, 111, 134, 129, 126, 117, 122, 138, 124, 120, 125, 101, 120, 124, 118, 111, 138, 117, 123, 117, 121, 131, 118, 118, 110, 132, 127, 108, 126, 122, 109, 128, 118, 136, 125, 104, 136, 118, 120, 118, 120, 149, 119, 131, 122, 107, 131, 118, 123, 118, 114, 131, 120, 114, 98, 128, 164, 105, 117, 130, 163, 134, 127, 125, 145, 130, 111, 106, 98, 117, 115, 137, 117, 135, 136, 116, 122, 112, 131, 127, 110, 118, 121, 119, 121, 132, 106, 120, 129, 126, 133, 130, 114, 107, 136, 117, 130, 128, 146, 124, 101, 112, 138, 121, 113, 110, 120, 123, 120, 121, 98, 121, 135, 96, 125, 116, 128, 121, 131, 112, 149, 127, 90, 106, 113, 134, 105, 129, 127, 132, 126, 119, 90, 123, 128, 121, 114, 141, 121, 113, 135, 105, 118, 129, 125, 142, 90, 131, 138, 138, 123, 92, 119, 108, 126, 128, 128, 128, 121, 124, 135, 123, 138, 120, 113, 127, 127, 126, 117, 126, 127, 111, 128, 136, 120, 118, 120, 122, 119, 123, 127, 117, 114, 119, 114, 126, 120, 126, 118, 121, 101, 118, 87, 120, 116, 116, 140, 117, 117, 117, 119, 122, 114, 112, 117, 121, 133, 126, 126, 110, 121, 125, 124, 118, 114, 124, 128, 122, 128, 121, 118, 119, 122, 115, 111, 120, 122, 121, 117, 127, 125, 117, 118, 115, 123, 129, 123, 126, 130, 128, 120, 109, 125, 120, 118, 119, 122, 120, 142, 125, 109, 118, 132, 115, 132, 125, 126, 121, 130, 131, 116, 121, 116, 123, 99, 126, 120, 120, 121, 117, 123, 121, 119, 137, 129, 110, 116, 122, 122, 110, 116, 131, 116, 115, 149, 121, 119, 127, 119, 118, 113, 119, 117, 122, 119, 116, 121, 117, 121, 120, 121, 121, 130, 116, 124, 118, 122, 112, 120, 127, 125, 121, 120, 135, 118, 122, 126, 121, 120, 121, 122, 127, 120, 120, 123, 122, 125, 127, 123, 119, 125, 124, 126, 131, 124, 126, 117, 124, 119, 155, 125, 122, 127, 127, 124, 145, 127, 129, 114, 124, 110, 124, 122, 125, 122, 113, 117, 125, 126, 126, 124, 116, 122, 121, 130, 123, 124, 142, 117, 124, 129, 120, 130, 128, 136, 127, 122, 121, 121, 123, 128, 129, 121, 112, 124, 122, 122, 111, 123, 133, 130, 131, 128, 115, 106, 122, 116, 127, 118, 116, 127, 125, 121, 120, 116, 121, 125, 124, 122, 125, 122, 123, 115, 118, 122, 127, 121, 119, 130, 125, 123, 123, 119, 115, 120, 129, 135, 116, 123, 138, 128, 126, 117, 129, 129, 122, 124, 125, 124, 117, 135, 134, 117, 126, 119, 126, 136, 125, 136, 124, 118, 122, 122, 118, 121, 123, 123, 125, 122, 117, 121, 126, 135, 123, 122, 121, 124, 125, 125, 112, 127, 123, 121, 129, 118, 129, 119, 106, 122, 115, 122, 122, 129, 122, 114, 132, 118, 124, 123, 125, 120, 114, 120, 123, 113, 121, 123, 122, 122, 126, 120, 125, 122, 121, 120, 122, 123, 123, 118, 126, 117, 122, 123, 136, 121, 132, 125, 125, 123, 121, 122, 117, 120, 121, 117, 129, 128, 120, 121, 115, 129, 139, 118, 119, 123, 128, 119, 130, 121, 123, 125, 120, 121, 129, 122, 123, 122, 120, 121, 126, 120, 128, 108, 123, 121, 127, 124, 152, 122, 125, 123, 120, 123, 136, 127, 121, 124, 119, 125, 127, 124, 122, 122, 122, 119, 125, 116, 119, 129, 126, 130, 88, 111, 124, 122, 126, 129, 123, 131, 131, 123, 120, 127, 126, 123, 121, 130, 120, 122, 146, 125, 125, 126, 129, 158, 123, 118, 121, 128, 115, 129, 103, 122, 123, 124, 82, 119, 121, 120, 133, 125, 130, 122, 104, 138, 122, 130, 130, 130, 112, 117, 121, 121, 121, 117, 119, 124, 121, 123, 141, 115, 114, 124, 118, 119, 113, 124, 87, 120, 116, 124, 114, 124, 122, 123, 120, 113, 126, 123, 118, 128, 124, 118, 127, 123, 123, 105, 123, 126, 133, 118, 154, 124, 125, 127, 124, 116, 106, 118, 150, 121, 112, 122, 133, 120, 133, 125, 123, 118, 120, 125, 159, 114, 131, 126, 121, 124, 121, 125, 128, 125, 121, 125, 113, 117, 130, 125, 129, 136, 127, 128, 124, 123, 129, 117, 126, 121, 135, 127, 121, 139, 123, 134, 113, 138, 127, 121, 119, 119, 129, 131, 124, 121, 125, 144, 116, 102, 123, 124, 118, 123, 116, 136, 126, 125, 120, 125, 119, 107, 101, 118, 124, 126, 129, 126, 116, 120, 127, 117, 121, 124, 126, 130, 123, 128, 125, 119, 120, 115, 125, 122, 129, 121, 122, 117, 114, 121, 133, 119, 122, 121, 125, 125, 126, 111, 129, 128, 122, 126, 127, 123, 126, 125, 129, 124, 132, 121, 122, 127, 130, 122, 121, 125, 131, 127, 128, 125, 116, 117, 120, 109, 78, 121, 124, 121, 122, 133, 116, 124, 125, 121, 130, 120, 132, 124, 122, 127, 140, 122, 121, 118, 124, 128, 125, 138, 122, 120, 125, 132, 96, 126, 119, 119, 122, 121, 121, 105, 124, 139, 132, 115, 125, 115, 127, 132, 122, 107, 124, 105, 128, 119, 126, 118, 140, 119, 115, 111, 122, 136, 120, 124, 122, 130, 118, 123, 118, 121, 120, 125, 120, 115, 176, 132, 122, 125, 124, 119, 127, 124, 123, 123, 129, 123, 131, 128, 126, 123, 126, 120, 118, 115, 119, 132, 117, 121, 114, 123, 128, 128, 149, 122, 128, 125, 129, 130, 127, 127, 127, 121, 193, 129, 126, 123, 125, 113, 132, 125, 118, 130, 120, 120, 121, 130, 121, 130, 119, 120, 117, 107, 132, 118, 127, 129, 121, 105, 126, 117, 125, 117, 120, 125, 124, 122, 123, 121, 118, 117, 116, 116, 126, 112, 122, 125, 125, 127, 126, 116, 124, 122, 119, 121, 122, 123, 130, 123, 154, 119, 120, 121, 118, 123, 119, 123, 114, 124, 129, 126, 129, 118, 129, 142, 123, 145, 123, 128, 193, 126, 122, 121, 141, 124, 118, 122, 124, 126, 115, 128, 112, 115, 122, 120, 122, 128, 146, 124, 125, 119, 131, 121, 127, 116, 136, 125, 114, 118, 122, 124, 110, 125, 121, 123, 137, 130, 124, 131, 120, 126, 123, 118, 124, 122, 125, 120, 126, 120, 122, 160, 120, 127, 125, 145, 124, 132, 132, 118, 66, 125, 120, 132, 121, 118, 93, 124, 70, 126, 122, 128, 146, 121, 139, 124, 122, 123, 105, 127, 107, 120, 132, 116, 129, 133, 110, 122, 122, 120, 118, 115, 111, 131, 119, 125, 119, 119, 121, 123, 121, 129, 118, 117, 119, 114, 139, 125, 118, 108, 124, 115, 121, 116, 136, 128, 137, 118, 155, 141, 111, 126, 118, 95, 124, 114, 109, 127, 125, 127, 115, 116, 119, 114, 130, 119, 138, 114, 87, 122, 150, 114, 122, 133, 117, 123, 125, 121, 121, 118, 118, 120, 127, 109, 128, 125, 109, 122, 119, 122, 123, 127, 136, 137, 120, 110, 122, 100, 120, 125, 134, 124, 122, 112, 126, 129, 116, 129, 126, 122, 119, 127, 127, 124, 125, 119, 121, 122, 101, 122, 122, 123, 118, 126, 117, 128, 112, 114, 114, 126, 140, 127, 122, 118, 131, 131, 116, 122, 116, 125, 127, 127, 119, 123, 120, 121, 127, 116, 133, 122, 121, 122, 123, 123, 120, 139, 123, 122, 121, 122, 124, 128, 122, 119, 124, 122, 120, 117, 121, 125, 130, 125, 120, 127, 123, 123, 121, 128, 126, 121, 122, 75, 123, 134, 124, 126, 122, 126, 122, 121, 122, 117, 129, 127, 126, 123, 132, 125, 131, 121, 118, 124, 121, 125, 126, 118, 123, 124, 124, 119, 125, 122, 124, 122, 111, 129, 117, 125, 114, 128, 119, 125, 120, 127, 126, 116, 126, 122, 127, 120, 125, 122, 123, 123, 126, 116, 126, 125, 120, 120, 118, 125, 124, 122, 119, 120, 108, 120, 122, 119, 126, 124, 123, 123, 123, 124, 126, 124, 156, 124, 126, 124, 127, 120, 111, 134, 126, 119, 117, 121, 129, 125, 114, 133, 122, 116, 130, 109, 126, 126, 126, 118, 92, 130, 120, 118, 117, 125, 114, 145, 115, 121, 115, 116, 122, 126, 131, 115, 119, 123, 132, 102, 125, 108, 127, 109, 118, 117, 120, 123, 121, 122, 127, 119, 119, 116, 119, 131, 126, 125, 115, 130, 113, 125, 114, 107, 124, 121, 149, 131, 121, 121, 120, 123, 130, 126, 127, 133, 120, 119, 129, 119, 125, 123, 139, 156, 123, 117, 128, 127, 122, 131, 125, 124, 121, 112, 139, 123, 119, 120, 138, 91, 115, 121, 124, 122, 154, 119, 116, 122, 127, 135, 116, 115, 120, 112, 124, 121, 132, 131, 116, 136, 111, 122, 124, 118, 123, 137, 117, 146, 92, 114, 123, 128, 137, 115, 123, 130, 113, 120, 112, 116, 125, 121, 123, 124, 120, 126, 123, 118, 121, 117, 125, 107, 123, 109, 127, 122, 125, 126, 119, 121, 118, 124, 128, 117, 122, 117, 124, 121, 120, 127, 122, 126, 121, 127, 130, 107, 122, 109, 120, 120, 137, 120, 127, 116, 82, 117, 116, 120, 113, 127, 123, 124, 120, 121, 126, 124, 148, 128, 94, 123, 121, 125, 114, 127, 120, 115, 127, 123, 103, 107, 118, 119, 119, 124, 126, 128, 120, 122, 131, 126, 121, 115, 120, 118, 123, 101, 124, 121, 123, 129, 134, 97, 122, 121, 118, 167, 118, 112, 127, 122, 178, 128, 102, 131, 121, 125, 125, 120, 113, 121, 48, 124, 116, 128, 125, 127, 121, 125, 111, 123, 126, 116, 130, 119, 122, 129, 143, 122, 125, 117, 120, 120, 120, 128, 123, 122, 121, 121, 116, 116, 124, 133, 126, 123, 126, 118, 128, 133, 124, 125, 118, 139, 143, 121, 123, 125, 133, 122, 139, 133, 129, 120, 125, 117, 121, 122, 86, 126, 125, 119, 121, 121, 125, 119, 121, 117, 123, 120, 92, 119, 120, 123, 124, 126, 124, 121, 120, 131, 113, 125, 122, 122, 130, 119, 127, 125, 98, 106, 114, 123, 124, 125, 185, 129, 134, 123, 115, 72, 117, 128, 130, 131, 119, 132, 125, 122, 117, 130, 128, 131, 128, 114, 117, 120, 133, 124, 117, 120, 125, 129, 122, 126, 122, 130, 130, 126, 136, 123, 126, 128, 139, 126, 126, 121, 121, 121, 118, 124, 126, 126, 129, 139, 118, 127, 125, 124, 132, 123, 108, 133, 127, 126, 114, 120, 117, 172, 114, 125, 126, 120, 122, 126, 121, 128, 136, 118, 124, 119, 119, 127, 124, 135, 125, 127, 126, 122, 134, 125, 126, 120, 122, 159, 127, 93, 119, 124, 119, 122, 110, 121, 128, 118, 129, 123, 114, 116, 119, 124, 108, 117, 119, 126, 118, 117, 130, 117, 123, 120, 127, 124, 128, 117, 125, 117, 129, 120, 126, 126, 122, 129, 130, 123, 118, 133, 119, 109, 123, 122, 122, 116, 120, 130, 124, 126, 123, 122, 120, 121, 126, 125, 109, 130, 119, 106, 124, 118, 101, 120, 123, 113, 135, 120, 124, 122, 128, 122, 119, 120, 60, 120, 129, 125, 122, 126, 115, 124, 115, 110, 118, 124, 123, 140, 117, 121, 137, 113, 112, 128, 114, 134, 125, 123, 127, 120, 124, 120, 121, 129, 123, 120, 124, 119, 120, 141, 123, 122, 114, 120, 123, 129, 121, 131, 129, 123, 126, 128, 121, 120, 102, 123, 117, 120, 122, 113, 125, 134, 122, 120, 120, 116, 124, 131, 122, 125, 118, 118, 121, 125, 122, 122, 123, 125, 121, 128, 121, 125, 111, 124, 125, 113, 127, 119, 128, 124, 122, 119, 117, 117, 124, 124, 123, 124, 125, 123, 122, 126, 121, 122, 115, 118, 123, 135, 152, 122, 126, 121, 115, 118, 118, 124, 126, 124, 120, 123, 124, 128, 124, 131, 126, 123, 124, 125, 120, 121, 124, 121, 121, 118, 119, 118, 123, 119, 127, 122, 120, 120, 175, 90, 118, 133, 130, 124, 125, 126, 131, 119, 100, 116, 121, 138, 129, 136, 117, 112, 122, 105, 121, 124, 127, 108, 132, 135, 123, 128, 145, 109, 117, 133, 117, 120, 117, 131, 136, 136, 104, 125, 123, 104, 112, 121, 127, 115, 118, 124, 108, 115, 117, 125, 115, 124, 151, 131, 103, 125, 110, 119, 122, 112, 112, 119, 116, 123, 131, 123, 126, 120, 128, 104, 118, 127, 134, 118, 140, 124, 122, 132, 130, 139, 127, 133, 123, 124, 122, 107, 137, 123, 118, 107, 126, 129, 124, 124, 119, 126, 122, 121, 144, 120, 136, 127, 123, 122, 127, 101, 126, 121, 95, 148, 116, 120, 116, 117, 119, 108, 136, 141, 124, 118, 120, 133, 128, 124, 116, 117, 120, 122, 121, 123, 125, 124, 126, 120, 123, 120, 130, 123, 129, 124, 126, 129, 123, 127, 121, 127, 120, 119, 127, 121, 124, 111, 124, 132, 122, 119, 121, 127, 124, 125, 122, 127, 123, 123, 129, 124, 124, 177, 123, 108, 116, 115, 112, 126, 122, 122, 129, 126, 125, 119, 128, 125, 126, 123, 74, 119, 125, 128, 119, 126, 122, 121, 119, 121, 124, 121, 126, 115, 125, 127, 117, 116, 125, 124, 116, 129, 128, 116, 126, 128, 119, 127, 126, 127, 124, 123, 123, 114, 127, 120, 128, 123, 121, 117, 130, 126, 127, 120, 128, 135, 126, 119, 123, 124, 123, 127, 121, 122, 127, 122, 121, 123, 122, 122, 82, 118, 128, 124, 127, 125, 110, 121, 124, 102, 121, 117, 145, 124, 126, 124, 126, 121, 117, 118, 121, 139, 124, 119, 127, 136, 121, 120, 125, 121, 122, 121, 115, 120, 117, 147, 123, 122, 121, 131, 130, 129, 122, 123, 120, 132, 123, 122, 116, 113, 110, 126, 128, 122, 127, 122, 127, 129, 126, 119, 122, 124, 124, 120, 122, 133, 126, 112, 128, 130, 119, 118, 118, 112, 123, 124, 121, 128, 131, 133, 126, 128, 109, 119, 124, 131, 136, 119, 114, 117, 124, 123, 120, 120, 128, 124, 121, 125, 126, 116, 112, 122, 119, 116, 134, 137, 124, 123, 117, 111, 122, 130, 124, 132, 129, 134, 119, 127, 127, 117, 119, 122, 124, 133, 119, 147, 129, 124, 120, 119, 131, 119, 128, 115, 128, 126, 127, 120, 120, 123, 122, 116, 122, 125, 121, 128, 124, 117, 118, 120, 118, 108, 110, 126, 121, 119, 125, 126, 118, 123, 128, 134, 131, 119, 121, 121, 121, 125, 114, 118, 116, 127, 117, 123, 109, 119, 116, 117, 124, 120, 123, 132, 134, 132, 127, 113, 132, 122, 124, 128, 121, 130, 130, 127, 125, 127, 131, 124, 119, 127, 129, 127, 125, 122, 118, 127, 129, 124, 133, 130, 119, 119, 119, 120, 122, 133, 122, 125, 119, 118, 114, 126, 125, 128, 128, 122, 124, 127, 123, 124, 120, 124, 114, 122, 122, 124, 126, 122, 124, 117, 120, 123, 120, 131, 126, 121, 118, 119, 124, 125, 126, 120, 127, 122, 121, 124, 122, 117, 128, 129, 122, 129, 126, 125, 123, 117, 116, 126, 123, 129, 123, 120, 121, 135, 123, 92, 119, 156, 123, 125, 121, 122, 121, 123, 131, 122, 122, 132, 119, 116, 121, 134, 125, 119, 115, 119, 122, 119, 121, 119, 125, 125, 124, 121, 129, 127, 114, 126, 121, 119, 123, 126, 123, 128, 126, 129, 125, 123, 122, 126, 123, 122, 119, 97, 124, 123, 117, 133, 125, 128, 120, 124, 126, 124, 124, 134, 123, 126, 125, 121, 124, 122, 134, 128, 124, 126, 122, 127, 124, 130, 125, 123, 124, 120, 127, 124, 121, 124, 120, 98, 133, 126, 123, 125, 119, 122, 123, 122, 125, 125, 122, 117, 123, 128, 124, 118, 126, 124, 122, 131, 124, 119, 123, 122, 126, 119, 127, 125, 115, 119, 119, 126, 131, 120, 116, 114, 119, 131, 117, 126, 128, 129, 144, 128, 115, 108, 123, 137, 130, 110, 124, 125, 137, 114, 119, 121, 126, 121, 117, 131, 190, 111, 124, 125, 131, 118, 123, 130, 124, 127, 130, 114, 113, 127, 128, 151, 126, 133, 119, 121, 175, 117, 118, 112, 108, 119, 123, 119, 125, 118, 112, 120, 129, 138, 125, 118, 135, 116, 215, 121, 116, 129, 128, 129, 127, 119, 127, 137, 97, 171, 121, 125, 124, 124, 119, 132, 91, 131, 112, 128, 113, 123, 133, 119, 116, 134, 135, 113, 115, 123, 125, 185, 122, 113, 123, 203, 135, 132, 117, 120, 120, 120, 80, 112, 135, 132, 102, 121, 113, 120, 162, 126, 119, 131, 128, 125, 117, 118, 122, 128, 124, 124, 125, 123, 118, 119, 125, 130, 127, 114, 128, 133, 121, 117, 122, 111, 122, 125, 119, 125, 120, 130, 138, 120, 129, 135, 127, 126, 122, 119, 125, 119, 123, 124, 130, 123, 117, 116, 122, 122, 122, 118, 126, 121, 118, 127, 128, 124, 125, 117, 119, 123, 123, 115, 126, 124, 129, 127, 122, 131, 120, 121, 117, 115, 130, 120, 129, 123, 121, 119, 121, 121, 121, 123, 114, 121, 120, 114, 119, 140, 129, 125, 121, 110, 117, 113, 125, 125, 123, 118, 122, 119, 130, 122, 130, 127, 122, 117, 122, 123, 143, 128, 121, 118, 121, 124, 126, 118, 123, 142, 118, 120, 127, 123, 122, 121, 123, 129, 122, 135, 122, 140, 120, 137, 134, 132, 127, 116, 124, 122, 122, 125, 119, 121, 121, 117, 124, 118, 129, 124, 132, 116, 129, 131, 123, 124, 130, 120, 122, 114, 118, 118, 111, 118, 123, 121, 124, 129, 130, 130, 120, 128, 119, 122, 129, 131, 129, 132, 125, 128, 130, 123, 121, 121, 120, 120, 118, 121, 122, 119, 126, 127, 119, 119, 120, 121, 127, 126, 125, 120, 145, 122, 117, 121, 110, 121, 126, 119, 123, 123, 126, 121, 123, 129, 122, 131, 122, 114, 115, 118, 123, 135, 133, 119, 118, 117, 120, 132, 112, 127, 119, 126, 125, 126, 118, 120, 125, 125, 111, 115, 125, 133, 123, 126, 121, 121, 123, 114, 129, 121, 118, 122, 120, 121, 119, 126, 126, 117, 122, 118, 122, 120, 115, 117, 200, 139, 121, 123, 136, 117, 121, 117, 109, 112, 132, 118, 127, 129, 115, 125, 122, 122, 122, 124, 125, 110, 131, 124, 111, 136, 123, 114, 107, 123, 129, 117, 118, 119, 104, 131, 113, 123, 127, 118, 124, 154, 122, 122, 116, 125, 125, 128, 136, 125, 127, 125, 137, 149, 125, 130, 123, 119, 136, 154, 138, 122, 107, 129, 125, 147, 130, 121, 120, 116, 127, 139, 120, 126, 109, 91, 118, 107, 129, 128, 85, 130, 131, 124, 87, 133, 118, 124, 133, 164, 110, 115, 123, 119, 113, 123, 118, 132, 122, 130, 124, 123, 114, 112, 113, 118, 147, 120, 111, 128, 123, 123, 124, 129, 140, 129, 124, 121, 134, 118, 131, 125, 117, 129, 122, 135, 130, 104, 123, 125, 127, 124, 122, 120, 120, 122, 119, 120, 120, 120, 89, 123, 128, 126, 118, 121, 120, 129, 112, 123, 123, 114, 122, 124, 119, 124, 121, 131, 124, 119, 122, 127, 122, 119, 121, 122, 107, 121, 124, 120, 125, 120, 119, 126, 120, 92, 121, 125, 120, 114, 121, 129, 113, 122, 125, 124, 117, 119, 120, 124, 103, 113, 122, 124, 106, 122, 134, 129, 120, 130, 122, 114, 126, 124, 119, 121, 127, 125, 121, 122, 125, 119, 127, 126, 117, 116, 129, 132, 119, 124, 124, 124, 122, 122, 125, 123, 114, 121, 122, 111, 128, 121, 124, 137, 118, 86, 117, 122, 118, 123, 133, 113, 126, 122, 113, 121, 118, 124, 124, 124, 162, 120, 123, 124, 124, 119, 120, 119, 137, 124, 120, 125, 137, 124, 126, 121, 122, 113, 115, 114, 116, 126, 125, 126, 123, 127, 134, 124, 115, 128, 115, 116, 121, 120, 117, 128, 124, 113, 128, 115, 132, 115, 122, 122, 120, 115, 133, 132, 121, 123, 125, 127, 125, 118, 134, 122, 121, 132, 107, 119, 121, 124, 120, 115, 125, 120, 123, 131, 125, 128, 116, 114, 123, 115, 119, 115, 151, 143, 97, 124, 124, 131, 132, 136, 126, 124, 117, 121, 123, 131, 122, 126, 126, 117, 138, 116, 130, 122, 134, 121, 129, 115, 125, 134, 132, 122, 133, 126, 115, 124, 110, 134, 120, 123, 136, 130, 126, 125, 125, 121, 125, 123, 125, 136, 121, 122, 129, 126, 115, 124, 121, 123, 129, 124, 115, 128, 127, 135, 121, 108, 125, 119, 116, 130, 120, 143, 121, 120, 132, 119, 132, 125, 111, 125, 119, 107, 131, 126, 115, 120, 122, 129, 103, 121, 115, 128, 120, 131, 117, 123, 120, 119, 125, 125, 123, 141, 104, 117, 130, 107, 121, 127, 120, 144, 131, 110, 129, 138, 123, 148, 111, 129, 136, 137, 120, 128, 137, 119, 119, 122, 119, 115, 122, 125, 126, 127, 107, 118, 124, 130, 119, 128, 122, 122, 121, 125, 129, 134, 127, 124, 127, 124, 129, 113, 140, 125, 130, 131, 125, 118, 123, 117, 124, 124, 120, 129, 120, 121, 120, 129, 131, 129, 119, 137, 125, 129, 128, 120, 137, 121, 121, 127, 132, 130, 125, 130, 133, 117, 146, 124, 121, 114, 127, 123, 125, 146, 126, 119, 123, 109, 132, 110, 122, 121, 121, 129, 121, 112, 124, 114, 125, 121, 125, 117, 121, 128, 137, 130, 138, 116, 128, 118, 119, 125, 122, 120, 132, 128, 111, 129, 118, 125, 120, 119, 141, 121, 123, 125, 123, 127, 124, 115, 124, 125, 124, 117, 125, 118, 124, 120, 124, 120, 113, 126, 125, 126, 116, 124, 124, 114, 123, 123, 114, 126, 120, 123, 126, 124, 118, 123, 122, 120, 123, 120, 146, 122, 128, 124, 122, 120, 130, 126, 128, 120, 123, 130, 128, 122, 126, 132, 136, 131, 121, 123, 132, 125, 119, 117, 119, 119, 129, 104, 124, 136, 125, 123, 122, 122, 124, 132, 117, 128, 122, 125, 121, 116, 152, 125, 121, 127, 111, 118, 133, 131, 171, 82, 123, 124, 184, 116, 108, 129, 118, 127, 112, 114, 120, 128, 121, 124, 125, 127, 101, 111, 126, 154, 119, 108, 124, 121, 126, 116, 150, 128, 126, 125, 141, 106, 112, 116, 122, 137, 96, 120, 116, 132, 114, 136, 119, 147, 122, 104, 86, 113, 132, 119, 73, 125, 128, 113, 105, 114, 125, 115, 119, 107, 126, 115, 111, 120, 157, 125, 115, 131, 127, 131, 129, 133, 137, 126, 147, 123, 106, 127, 115, 142, 112, 125, 147, 128, 113, 94, 147, 113, 117, 113, 129, 121, 124, 125, 120, 118, 125, 123, 134, 119, 116, 127, 126, 124, 135, 104, 115, 133, 72, 127, 112, 131, 109, 120, 105, 111, 101, 134, 128, 124, 134, 154, 127, 124, 122, 124, 122, 125, 126, 126, 119, 125, 123, 129, 125, 127, 121, 115, 127, 126, 123, 108, 123, 122, 130, 124, 122, 119, 124, 126, 124, 114, 123, 124, 123, 123, 118, 123, 120, 124, 126, 124, 124, 123, 121, 126, 129, 126, 124, 111, 117, 128, 121, 119, 117, 122, 123, 124, 128, 123, 123, 123, 124, 121, 121, 123, 128, 121, 125, 126, 122, 127, 117, 123, 124, 135, 120, 120, 127, 128, 124, 123, 119, 125, 134, 131, 121, 121, 124, 123, 128, 123, 125, 122, 123, 118, 128, 123, 129, 124, 117, 127, 125, 124, 123, 123, 119, 123, 123, 135, 125, 122, 122, 125, 124, 124, 121, 127, 121, 128, 125, 121, 124, 122, 136, 125, 118, 124, 122, 124, 128, 121, 119, 158, 125, 124, 130, 114, 128, 122, 121, 128, 120, 102, 122, 127, 117, 125, 124, 128, 127, 127, 124, 123, 122, 128, 119, 121, 125, 120, 122, 119, 119, 129, 123, 119, 115, 119, 122, 120, 121, 128, 131, 122, 124, 122, 124, 125, 117, 125, 123, 124, 119, 127, 118, 127, 124, 111, 123, 124, 119, 129, 127, 125, 125, 128, 128, 92, 123, 127, 115, 135, 128, 125, 121, 127, 126, 124, 124, 126, 124, 123, 127, 122, 126, 121, 122, 135, 123, 119, 117, 122, 116, 151, 123, 123, 130, 126, 121, 128, 123, 122, 121, 126, 117, 120, 116, 129, 123, 104, 123, 121, 129, 119, 123, 122, 121, 129, 122, 136, 122, 124, 124, 120, 126, 128, 118, 123, 134, 126, 127, 118, 118, 122, 134, 119, 120, 120, 126, 121, 124, 118, 126, 119, 119, 126, 115, 155, 130, 124, 126, 128, 126, 128, 121, 123, 114, 127, 127, 123, 117, 130, 141, 125, 132, 135, 121, 124, 113, 124, 124, 122, 126, 132, 125, 137, 119, 118, 134, 117, 127, 127, 121, 123, 122, 121, 121, 127, 132, 120, 178, 120, 130, 119, 122, 127, 116, 120, 132, 136, 123, 122, 129, 146, 124, 120, 132, 121, 118, 125, 117, 110, 119, 121, 119, 122, 132, 119, 116, 122, 120, 121, 124, 125, 121, 122, 126, 134, 129, 123, 126, 129, 114, 112, 126, 133, 124, 116, 129, 129, 121, 119, 126, 118, 115, 130, 112, 121, 120, 127, 143, 120, 122, 124, 124, 121, 124, 124, 122, 123, 120, 123, 123, 119, 128, 118, 120, 119, 123, 129, 132, 117, 126, 123, 121, 131, 126, 127, 122, 121, 122, 122, 112, 123, 125, 126, 124, 123, 133, 130, 119, 130, 121, 120, 125, 122, 126, 129, 122, 129, 126, 123, 119, 122, 119, 131, 120, 119, 120, 119, 122, 121, 120, 127, 123, 122, 123, 131, 123, 124, 143, 117, 116, 135, 116, 125, 128, 118, 127, 121, 123, 128, 128, 125, 120, 130, 123, 122, 125, 118, 121, 120, 130, 121, 128, 121, 128, 131, 116, 128, 123, 124, 121, 128, 122, 121, 125, 120, 115, 121, 125, 133, 123, 121, 121, 129, 125, 123, 131, 121, 121, 122, 124, 121, 123, 134, 129, 122, 122, 123, 128, 124, 121, 120, 116, 119, 125, 121, 122, 119, 127, 126, 97, 118, 127, 124, 115, 121, 128, 126, 126, 126, 125, 117, 107, 119, 128, 127, 129, 119, 122, 138, 123, 117, 123, 124, 127, 121, 141, 124, 129, 133, 142, 123, 125, 128, 110, 121, 122, 111, 124, 110, 101, 108, 121, 121, 134, 130, 122, 135, 119, 123, 137, 127, 117, 122, 129, 117, 124, 124, 110, 121, 121, 131, 130, 122, 126, 122, 125, 122, 121, 130, 98, 126, 113, 115, 124, 124, 146, 123, 128, 131, 123, 81, 116, 131, 125, 117, 117, 124, 123, 119, 126, 119, 125, 113, 130, 124, 118, 129, 148, 120, 94, 130, 122, 126, 131, 124, 143, 127, 87, 120, 68, 121, 118, 136, 136, 130, 126, 129, 129, 111, 127, 125, 121, 121, 121, 124, 127, 120, 124, 123, 132, 121, 120, 127, 124, 133, 120, 122, 121, 133, 123, 124, 116, 125, 125, 116, 122, 124, 124, 144, 122, 122, 122, 132, 119, 119, 128, 121, 124, 125, 118, 118, 123, 122, 111, 124, 119, 125, 122, 127, 125, 117, 129, 124, 121, 124, 121, 112, 129, 121, 122, 118, 125, 126, 120, 124, 122, 124, 126, 124, 121, 128, 113, 119, 127, 125, 131, 120, 122, 124, 122, 118, 129, 123, 125, 125, 125, 119, 117, 121, 120, 128, 124, 123, 124, 125, 112, 126, 134, 117, 120, 127, 121, 126, 129, 123, 125, 127, 126, 120, 129, 126, 121, 122, 119, 119, 127, 119, 125, 120, 123, 124, 116, 123, 132, 117, 122, 120, 131, 138, 133, 103, 129, 128, 128, 97, 142, 108, 132, 112, 146, 117, 116, 128, 126, 114, 121, 124, 122, 112, 118, 119, 120, 116, 111, 114, 128, 130, 120, 131, 112, 117, 161, 137, 96, 126, 119, 122, 134, 134, 146, 111, 103, 130, 123, 118, 123, 123, 112, 127, 146, 128, 127, 132, 143, 85, 107, 120, 133, 127, 142, 132, 115, 135, 130, 106, 127, 125, 119, 133, 94, 117, 114, 100, 97, 112, 127, 128, 115, 122, 153, 130, 139, 123, 115, 123, 132, 124, 99, 106, 122, 126, 114, 114, 122, 132, 98, 142, 111, 121, 132, 100, 148, 108, 111, 128, 182, 114, 127, 130, 108, 117, 141, 122, 116, 115, 119, 117, 119, 117, 118, 117, 114, 121, 122, 115, 120, 120, 115, 127, 125, 124, 121, 126, 123, 123, 123, 122, 129, 121, 122, 129, 120, 120, 123, 123, 131, 109, 121, 116, 128, 124, 127, 123, 118, 124, 120, 125, 122, 123, 116, 121, 120, 124, 113, 122, 119, 115, 125, 119, 120, 42, 122, 80, 123, 131, 127, 115, 125, 133, 121, 123, 118, 127, 123, 123, 115, 117, 110, 125, 120, 126, 117, 121, 128, 131, 127, 126, 124, 124, 120, 113, 124, 125, 113, 125, 124, 125, 121, 126, 122, 119, 120, 123, 131, 133, 116, 124, 127, 119, 119, 125, 125, 122, 123, 120, 123, 108, 120, 125, 117, 134, 120, 101, 116, 128, 101, 123, 129, 117, 127, 124, 110, 121, 120, 123, 123, 122, 51, 122, 116, 121, 123, 125, 120, 123, 120, 121, 117, 122, 123, 129, 126, 121, 104, 125, 128, 127, 125, 135, 126, 124, 127, 138, 124, 124, 110, 121, 122, 131, 119, 127, 122, 118, 123, 120, 124, 120, 126, 122, 124, 125, 124, 119, 122, 124, 122, 123, 120, 125, 127, 163, 123, 123, 125, 130, 124, 119, 122, 124, 120, 120, 124, 123, 123, 121, 120, 123, 117, 126, 126, 121, 121, 121, 121, 126, 122, 117, 123, 126, 121, 126, 122, 119, 127, 120, 121, 118, 122, 122, 125, 119, 126, 122, 122, 122, 122, 123, 124, 121, 101, 122, 126, 124, 123, 125, 123, 121, 125, 121, 127, 86, 123, 119, 118, 121, 123, 121, 123, 124, 127, 120, 120, 129, 121, 122, 107, 127, 122, 123, 124, 122, 119, 111, 118, 123, 113, 122, 114, 120, 126, 119, 114, 108, 118, 130, 125, 125, 115, 128, 130, 133, 117, 113, 116, 118, 118, 128, 121, 128, 104, 140, 121, 127, 137, 104, 160, 132, 109, 128, 134, 118, 137, 120, 129, 112, 115, 126, 119, 117, 135, 126, 130, 122, 124, 107, 126, 129, 123, 137, 135, 135, 162, 115, 130, 135, 115, 125, 124, 119, 113, 144, 142, 122, 135, 132, 128, 130, 121, 123, 115, 140, 121, 122, 109, 122, 121, 129, 132, 119, 145, 121, 121, 138, 116, 118, 125, 136, 117, 124, 142, 139, 125, 119, 127, 125, 110, 124, 118, 131, 122, 115, 121, 139, 121, 112, 98, 117, 117, 121, 119, 132, 126, 151, 117, 121, 130, 128, 124, 108, 122, 124, 119, 118, 113, 126, 118, 134, 120, 131, 128, 120, 109, 115, 117, 137, 119, 125, 118, 131, 118, 124, 123, 123, 121, 127, 117, 123, 125, 116, 120, 132, 118, 111, 136, 124, 123, 122, 117, 119, 110, 119, 123, 124, 119, 127, 121, 111, 127, 117, 128, 142, 117, 129, 126, 111, 122, 130, 129, 128, 121, 105, 131, 126, 126, 127, 129, 126, 136, 119, 114, 122, 115, 124, 123, 118, 134, 118, 123, 121, 135, 123, 122, 114, 126, 117, 113, 132, 122, 118, 122, 115, 135, 118, 129, 121, 124, 115, 136, 118, 122, 124, 113, 134, 112, 119, 125, 123, 129, 123, 130, 124, 114, 133, 125, 121, 126, 127, 128, 114, 120, 134, 122, 123, 137, 119, 118, 129, 130, 109, 126, 125, 127, 130, 128, 124, 126, 136, 114, 124, 117, 123, 112, 123, 117, 127, 125, 114, 122, 123, 124, 124, 120, 135, 137, 129, 117, 101, 122, 128, 113, 128, 129, 126, 124, 135, 121, 136, 119, 120, 120, 123, 131, 122, 123, 114, 127, 129, 121, 121, 114, 115, 124, 126, 126, 127, 120, 121, 128, 127, 121, 117, 105, 121, 124, 122, 127, 117, 123, 125, 121, 118, 120, 117, 120, 118, 122, 120, 130, 117, 130, 130, 121, 126, 122, 131, 115, 121, 120, 137, 127, 119, 121, 124, 130, 99, 123, 126, 122, 119, 145, 121, 118, 122, 127, 124, 125, 124, 126, 123, 122, 125, 124, 124, 120, 124, 127, 122, 116, 117, 127, 130, 107, 118, 130, 122, 130, 128, 127, 127, 125, 123, 121, 121, 134, 127, 124, 137, 116, 122, 131, 125, 118, 123, 121, 134, 126, 127, 121, 119, 124, 124, 120, 125, 126, 110, 122, 120, 131, 120, 130, 122, 121, 122, 126, 120, 126, 123, 113, 127, 123, 126, 124, 116, 124, 142, 124, 107, 126, 119, 128, 121, 126, 129, 121, 122, 127, 126, 125, 122, 124, 131, 123, 147, 122, 122, 128, 113, 117, 127, 120, 130, 125, 125, 114, 122, 122, 121, 124, 125, 123, 124, 124, 124, 107, 116, 134, 121, 118, 123, 120, 129, 126, 118, 112, 117, 120, 124, 121, 115, 126, 127, 129, 122, 127, 119, 121, 121, 129, 133, 116, 123, 127, 118, 129, 121, 122, 123, 119, 126, 125, 126, 124, 124, 129, 127, 127, 130, 120, 123, 120, 128, 119, 118, 126, 139, 117, 111, 121, 131, 123, 125, 114, 123, 122, 122, 129, 120, 124, 119, 117, 115, 125, 113, 122, 124, 118, 119, 119, 116, 120, 110, 118, 125, 123, 120, 122, 125, 119, 120, 126, 119, 119, 128, 120, 118, 115, 124, 125, 129, 127, 126, 125, 126, 127, 122, 126, 120, 116, 131, 123, 126, 122, 126, 116, 126, 116, 131, 120, 118, 125, 125, 123, 124, 128, 120, 131, 126, 125, 127, 121, 155, 120, 122, 120, 121, 127, 126, 119, 124, 123, 103, 108, 123, 122, 122, 119, 120, 122, 122, 122, 127, 123, 114, 122, 126, 126, 125, 122, 127, 121, 123, 124, 121, 120, 118, 125, 119, 125, 122, 124, 117, 125, 106, 123, 124, 125, 123, 129, 118, 121, 122, 127, 112, 128, 135, 139, 125, 134, 123, 120, 122, 129, 125, 116, 115, 113, 125, 124, 126, 118, 117, 124, 124, 142, 133, 118, 125, 128, 122, 133, 135, 128, 134, 120, 132, 129, 122, 119, 122, 121, 121, 120, 118, 121, 118, 124, 121, 123, 124, 116, 118, 124, 127, 119, 124, 143, 117, 116, 120, 115, 124, 127, 119, 127, 117, 119, 122, 121, 123, 122, 134, 120, 114, 117, 123, 122, 127, 133, 110, 126, 123, 125, 147, 111, 128, 121, 124, 126, 128, 118, 115, 127, 124, 119, 122, 122, 133, 123, 129, 120, 127, 122, 109, 130, 119, 114, 110, 125, 120, 121, 123, 126, 122, 122, 122, 120, 114, 107, 121, 118, 107, 128, 124, 125, 129, 136, 129, 116, 146, 120, 119, 123, 149, 110, 119, 112, 98, 120, 100, 109, 125, 107, 138, 125, 134, 171, 170, 115, 107, 122, 118, 129, 130, 118, 139, 128, 138, 116, 109, 124, 113, 117, 111, 146, 122, 128, 126, 127, 124, 118, 116, 123, 113, 122, 119, 112, 114, 125, 126, 133, 118, 119, 129, 120, 107, 130, 122, 130, 122, 122, 108, 135, 127, 110, 125, 123, 110, 122, 108, 119, 165, 103, 129, 117, 103, 114, 135, 121, 119, 110, 135, 126, 109, 145, 128, 122, 112, 125, 125, 122, 117, 170, 116, 125, 112, 122, 142, 102, 128, 123, 127, 117, 113, 120, 127, 117, 122, 122, 117, 133, 146, 127, 182, 120, 157, 145, 144, 154, 131, 111, 125, 119, 113, 122, 108, 126, 119, 152, 112, 105, 118, 101, 115, 116, 133, 127, 97, 125, 103, 119, 117, 116, 110, 122, 102, 145, 146, 124, 162, 107, 117, 138, 146, 108, 120, 111, 128, 149, 131, 127, 125, 121, 109, 107, 104, 126, 140, 129, 140, 147, 92, 131, 125, 145, 113, 123, 140, 115, 127, 123, 139, 123, 133, 112, 112, 121, 119, 106, 122, 124, 157, 124, 74, 124, 99, 117, 130, 112, 131, 137, 141, 132, 123, 120, 102, 136, 131, 122, 110, 119, 129, 112, 109, 130, 125, 96, 116, 121, 127, 106, 118, 133, 113, 120, 160, 119, 122, 135, 115, 117, 118, 127, 126, 136, 111, 124, 125, 123, 120, 118, 116, 110, 125, 127, 127, 123, 121, 117, 112, 120, 121, 131, 138, 116, 126, 130, 126, 116, 119, 121, 134, 129, 122, 120, 122, 124, 123, 119, 119, 122, 124, 118, 110, 119, 127, 127, 127, 122, 130, 118, 122, 118, 119, 133, 126, 129, 124, 126, 126, 122, 123, 122, 121, 118, 117, 120, 135, 126, 122, 127, 115, 120, 129, 118, 119, 129, 109, 129, 125, 119, 127, 121, 127, 117, 124, 126, 123, 124, 134, 128, 118, 127, 123, 123, 130, 127, 125, 115, 123, 123, 130, 131, 134, 122, 123, 128, 126, 125, 119, 118, 123, 123, 115, 136, 120, 125, 121, 121, 125, 120, 133, 127, 126, 120, 125, 126, 120, 135, 123, 114, 126, 121, 128, 120, 111, 129, 116, 122, 117, 128, 124, 126, 117, 122, 123, 121, 122, 122, 124, 120, 120, 131, 123, 116, 118, 112, 127, 121, 129, 122, 123, 122, 153, 120, 123, 114, 121, 121, 128, 117, 124, 122, 130, 120, 121, 128, 126, 125, 119, 117, 120, 122, 125, 119, 124, 122, 120, 120, 139, 120, 114, 127, 127, 128, 119, 119, 125, 117, 118, 122, 124, 121, 120, 125, 122, 123, 131, 120, 121, 121, 122, 125, 131, 128, 124, 134, 112, 121, 132, 128, 118, 122, 128, 125, 125, 123, 120, 126, 125, 122, 121, 144, 125, 126, 117, 127, 122, 129, 117, 112, 121, 125, 130, 131, 122, 124, 128, 114, 132, 122, 103, 132, 119, 135, 123, 129, 117, 123, 123, 122, 121, 127, 128, 131, 122, 133, 124, 132, 124, 125, 121, 116, 117, 136, 126, 122, 119, 116, 122, 121, 123, 117, 126, 131, 118, 123, 128, 124, 128, 120, 122, 125, 125, 124, 121, 124, 126, 123, 124, 124, 121, 124, 154, 123, 117, 110, 115, 115, 126, 119, 126, 127, 111, 121, 124, 135, 128, 96, 122, 117, 121, 127, 120, 139, 119, 121, 124, 124, 119, 122, 128, 116, 129, 103, 127, 115, 112, 118, 124, 119, 117, 118, 129, 113, 115, 125, 122, 112, 125, 129, 124, 127, 120, 120, 123, 125, 119, 121, 129, 131, 126, 123, 117, 111, 114, 116, 135, 121, 120, 114, 123, 118, 116, 123, 116, 121, 121, 124, 113, 117, 124, 120, 114, 119, 126, 124, 143, 123, 117, 115, 125, 125, 124, 131, 123, 126, 124, 127, 112, 130, 81, 125, 128, 133, 130, 127, 104, 122, 128, 110, 130, 134, 146, 138, 126, 127, 139, 131, 111, 126, 108, 104, 132, 128, 111, 85, 132, 143, 125, 110, 115, 158, 135, 137, 127, 137, 103, 116, 140, 111, 104, 114, 125, 138, 126, 91, 125, 131, 134, 127, 105, 97, 148, 125, 117, 111, 120, 125, 138, 97, 129, 111, 122, 255, 116, 124, 122, 130, 125, 118, 114, 105, 117, 129, 124, 138, 118, 114, 106, 117, 121, 98, 111, 120, 119, 117, 120, 121, 123, 111, 168, 130, 118, 118, 122, 108, 111, 126, 125, 142, 124, 166, 128, 114, 111, 120, 131, 120, 125, 113, 134, 103, 118, 137, 104, 126, 134, 128, 133, 113, 124, 109, 129, 137, 129, 126, 125, 128, 128, 127, 117, 126, 120, 119, 124, 129, 116, 121, 122, 122, 114, 136, 115, 131, 127, 122, 125, 121, 121, 118, 122, 120, 128, 118, 119, 125, 105, 123, 122, 137, 123, 117, 123, 128, 117, 127, 115, 124, 128, 125, 133, 132, 122, 121, 118, 125, 127, 123, 114, 125, 120, 123, 120, 122, 135, 121, 118, 123, 131, 126, 119, 136, 123, 121, 134, 120, 122, 125, 119, 122, 117, 125, 126, 116, 125, 120, 128, 119, 117, 125, 122, 124, 127, 126, 118, 119, 120, 127, 114, 118, 120, 124, 125, 128, 124, 113, 122, 115, 120, 117, 114, 123, 132, 122, 122, 128, 130, 119, 120, 126, 123, 118, 121, 121, 122, 124, 135, 121, 124, 122, 124, 115, 118, 110, 125, 121, 123, 118, 121, 114, 129, 126, 124, 130, 129, 117, 121, 109, 123, 127, 126, 126, 124, 121, 160, 126, 121, 114, 129, 120, 128, 118, 131, 121, 118, 117, 122, 121, 134, 130, 122, 114, 121, 123, 120, 115, 119, 122, 120, 122, 131, 120, 110, 122, 144, 127, 114, 119, 121, 124, 118, 120, 122, 120, 122, 131, 118, 143, 132, 120, 126, 125, 128, 130, 128, 126, 120, 128, 117, 125, 134, 124, 125, 122, 126, 129, 125, 118, 121, 132, 116, 125, 127, 130, 125, 128, 124, 123, 124, 125, 127, 116, 125, 122, 122, 126, 127, 122, 122, 116, 134, 115, 111, 137, 126, 136, 123, 126, 121, 125, 121, 130, 125, 132, 127, 135, 126, 132, 121, 133, 125, 125, 120, 121, 126, 125, 131, 124, 122, 118, 120, 126, 123, 116, 138, 124, 119, 125, 117, 128, 125, 122, 121, 122, 124, 121, 124, 126, 131, 121, 124, 125, 109, 123, 123, 123, 122, 122, 122, 121, 122, 123, 120, 120, 123, 121, 127, 124, 122, 125, 121, 124, 124, 121, 115, 119, 124, 125, 127, 125, 135, 122, 122, 124, 121, 122, 122, 127, 126, 123, 132, 121, 122, 123, 119, 121, 124, 123, 122, 125, 119, 122, 124, 126, 124, 124, 124, 122, 126, 123, 132, 119, 121, 122, 122, 122, 122, 125, 126, 126, 114, 114, 116, 125, 121, 121, 120, 119, 123, 125, 126, 124, 124, 124, 124, 124, 124, 123, 127, 122, 121, 124, 117, 124, 120, 123, 122, 118, 123, 123, 121};
+ model->setOperandValue(op50, op50_init, sizeof(uint8_t) * 32768);
+ static int32_t op52_init[] = {-1884, 2616, -210, 550, -35, -382, -1691, 5683, -100, -539, -2141, -164, 6676, -343, 494, 2084, 827, -61, -825, -1788, -119, 1560, -409, -792, 577, -401, 157, -731, 2754, -50, 4553, 1216, -369, -336, 2904, -595, 4462, -129, -434, -418, -2171, 4857, -144, 1306, -441, -386, 533, -575, 787, 2255, 3091, 3404, 3667, -272, 5095, -370, -103, -1000, 2933, 4342, 4233, -277, -126, -592, -68, -1615, 60, -475, 725, -768, 4874, 2, 1842, -514, 197, -2733, -512, 104, 5692, 1038, 751, 1345, -1439, -441, 1379, 1495, 2301, -1405, -408, 1437, 4501, 2220, -724, -222, 2513, -240, 692, 5183, 1577, 125, 1689, 3981, 4447, -1720, 2478, 3643, 5164, 2865, -759, 1997, 2077, 6366, 1727, -1623, -821, -120, -448, 1712, 500, -288, -300, 2786, -917, 8269, -261, -531, 2269, -421, -1191, 785, -521, -561, -63, -208, -746, -1521, -84, 112, 264, -1404, 4937, 2907, 1315, 393, 10, -598, 7132, 2318, 1271, -1888, -2319, 376, 3824, 464, -1671, 4753, 727, 6596, -752, 2540, 1856, 3008, 4146, -1702, -1343, 3173, 2241, -115, -1630, -159, 1511, -50, 1575, -317, 2710, -364, 3336, -412, -462, -133, -73, 1213, -18, -545, 4880, 1681, 2053, 3955, -97, 402, 3232, 1745, -520, -37, -833, 2292, 300, 3179, 585, 1183, 4481, -1922, -650, -21, 4456, 397, -736, -159, 829, 6986, -700, -1406, 4107, 2184, 299, -3703, 3540, 1565, 5888, 2576, 1245, 440, 7928, 3104, 4737, -253, 2132, 185, 3027, -905, -559, 1685, -561, 855, -93, 3513, 2287, -170, 27, 2200, 1498, -98, 997, 4617, 382, -274, 4951, 2198, 207, 1266, -270, -1587, 1827, 609, -195, -557};
+ model->setOperandValue(op52, op52_init, sizeof(int32_t) * 256);
+ static uint8_t op53_init[] = {69, 67, 94, 72, 99, 6, 55, 72, 59, 83, 72, 72, 73, 75, 81, 68, 68, 60, 68, 67, 70, 64, 68, 46, 70, 63, 81, 66, 67, 73, 70, 118, 62, 68, 73, 76, 78, 75, 88, 91, 81, 77, 75, 89, 70, 72, 90, 72, 48, 64, 71, 64, 68, 84, 71, 72, 65, 78, 74, 75, 67, 61, 75, 63, 42, 68, 91, 62, 65, 70, 75, 71, 63, 69, 82, 79, 71, 75, 65, 78, 69, 57, 69, 66, 62, 64, 73, 56, 60, 85, 70, 73, 80, 95, 64, 64, 84, 69, 64, 85, 62, 62, 78, 81, 67, 75, 76, 63, 70, 59, 30, 86, 67, 65, 99, 69, 69, 75, 89, 66, 75, 62, 67, 60, 64, 65, 70, 86, 86, 74, 69, 73, 57, 67, 60, 89, 78, 94, 75, 57, 69, 67, 68, 76, 79, 87, 72, 74, 78, 50, 75, 73, 64, 66, 73, 70, 71, 71, 109, 51, 62, 57, 70, 71, 70, 75, 67, 74, 73, 66, 94, 102, 63, 83, 76, 66, 69, 56, 77, 46, 67, 71, 60, 74, 75, 67, 65, 70, 85, 74, 61, 64, 67, 72, 75, 62, 77, 74, 84, 65, 76, 71, 83, 74, 77, 53, 75, 64, 66, 56, 67, 66, 72, 60, 65, 72, 73, 78, 72, 73, 80, 80, 71, 68, 69, 59, 67, 60, 72, 68, 71, 60, 89, 75, 61, 24, 70, 85, 78, 72, 70, 65, 33, 64, 46, 62, 76, 71, 62, 104, 83, 83, 63, 106, 84, 136, 77, 63, 97, 80, 91, 106, 85, 55, 73, 52, 81, 79, 46, 52, 40, 57, 121, 71, 40, 68, 73, 66, 80, 90, 78, 125, 50, 85, 63, 52, 67, 26, 82, 49, 81, 38, 74, 81, 132, 118, 76, 60, 77, 41, 76, 76, 57, 72, 97, 71, 88, 69, 64, 89, 61, 70, 54, 79, 54, 69, 56, 71, 77, 28, 100, 79, 97, 71, 66, 79, 52, 55, 65, 72, 47, 84, 87, 61, 66, 27, 58, 72, 76, 58, 65, 65, 49, 80, 72, 81, 63, 76, 65, 50, 66, 101, 91, 70, 62, 66, 62, 76, 64, 74, 86, 61, 70, 72, 80, 65, 100, 55, 62, 116, 72, 41, 80, 54, 52, 77, 78, 66, 79, 65, 78, 32, 64, 55, 98, 113, 84, 49, 58, 37, 48, 42, 89, 112, 89, 55, 67, 66, 83, 67, 102, 54, 81, 63, 80, 79, 70, 67, 56, 82, 78, 60, 75, 62, 30, 60, 62, 114, 69, 79, 81, 73, 74, 79, 81, 81, 79, 118, 68, 119, 52, 51, 66, 87, 105, 76, 72, 72, 32, 79, 47, 58, 67, 61, 96, 59, 72, 65, 40, 73, 80, 69, 122, 55, 98, 71, 73, 82, 75, 78, 70, 59, 125, 55, 69, 57, 61, 52, 69, 60, 79, 87, 69, 87, 68, 69, 48, 111, 66, 70, 64, 53, 64, 78, 66, 50, 36, 62, 57, 83, 60, 102, 54, 54, 83, 60, 68, 72, 86, 58, 60, 75, 60, 60, 72, 72, 62, 61, 63, 61, 110, 1, 67, 71, 70, 70, 63, 101, 74, 77, 69, 74, 67, 69, 81, 69, 91, 74, 66, 66, 72, 70, 70, 67, 66, 77, 60, 68, 78, 61, 67, 68, 73, 72, 75, 63, 70, 66, 72, 68, 81, 83, 64, 75, 72, 74, 66, 70, 67, 66, 65, 64, 77, 68, 69, 78, 68, 70, 89, 60, 73, 75, 75, 67, 70, 80, 74, 68, 70, 75, 75, 68, 69, 67, 66, 70, 79, 71, 71, 67, 73, 69, 72, 56, 68, 73, 67, 68, 71, 72, 87, 68, 73, 72, 67, 67, 69, 73, 76, 68, 71, 65, 66, 78, 79, 56, 64, 74, 73, 64, 65, 70, 79, 67, 69, 75, 60, 67, 69, 63, 68, 64, 72, 65, 63, 65, 69, 71, 71, 68, 78, 80, 71, 72, 69, 65, 67, 78, 45, 67, 57, 76, 71, 69, 68, 75, 73, 68, 66, 76, 76, 71, 75, 74, 73, 76, 69, 66, 69, 73, 69, 72, 66, 62, 69, 71, 66, 70, 72, 69, 69, 65, 38, 67, 65, 75, 70, 72, 72, 68, 84, 89, 60, 71, 67, 69, 75, 72, 67, 74, 79, 69, 63, 66, 75, 69, 64, 71, 72, 77, 75, 59, 75, 69, 76, 70, 77, 69, 65, 73, 72, 58, 73, 67, 73, 70, 77, 68, 72, 72, 73, 72, 79, 79, 71, 66, 80, 72, 72, 66, 66, 70, 60, 64, 66, 74, 63, 77, 71, 67, 70, 69, 69, 69, 90, 82, 99, 78, 75, 71, 64, 41, 63, 69, 69, 68, 81, 76, 78, 73, 99, 76, 99, 138, 84, 55, 79, 112, 81, 79, 57, 70, 90, 58, 43, 45, 78, 67, 75, 66, 76, 84, 46, 56, 110, 87, 65, 63, 60, 45, 82, 90, 83, 108, 58, 59, 56, 45, 72, 59, 77, 86, 78, 77, 109, 41, 86, 69, 58, 64, 56, 48, 52, 67, 57, 81, 46, 81, 57, 43, 76, 61, 102, 42, 58, 74, 66, 80, 63, 84, 63, 71, 105, 81, 57, 92, 50, 67, 68, 65, 82, 66, 61, 62, 57, 44, 39, 47, 60, 71, 48, 133, 66, 42, 52, 72, 62, 124, 63, 51, 65, 70, 66, 61, 30, 73, 81, 58, 105, 46, 65, 45, 69, 71, 76, 74, 112, 76, 80, 67, 83, 62, 83, 68, 66, 107, 66, 61, 79, 100, 65, 92, 95, 112, 44, 68, 50, 82, 66, 64, 31, 83, 56, 116, 67, 67, 40, 65, 67, 33, 56, 50, 78, 53, 73, 64, 51, 73, 74, 44, 61, 82, 82, 73, 66, 76, 79, 77, 76, 51, 69, 67, 69, 79, 68, 47, 48, 91, 67, 73, 88, 78, 53, 62, 65, 65, 55, 38, 68, 67, 38, 76, 80, 61, 57, 66, 61, 66, 72, 75, 62, 78, 72, 54, 64, 54, 46, 58, 64, 77, 72, 66, 60, 70, 73, 48, 72, 70, 84, 77, 64, 69, 59, 46, 66, 77, 74, 86, 71, 63, 122, 52, 69, 97, 71, 124, 85, 62, 70, 52, 96, 69, 85, 15, 60, 65, 69, 59, 111, 112, 64, 90, 65, 7, 92, 56, 42, 92, 25, 44, 96, 5, 100, 28, 94, 96, 32, 99, 24, 57, 37, 48, 148, 108, 95, 73, 107, 94, 131, 47, 26, 89, 119, 117, 42, 86, 97, 92, 21, 58, 22, 91, 29, 41, 105, 27, 88, 40, 93, 88, 31, 134, 57, 130, 59, 117, 52, 40, 48, 102, 35, 102, 63, 22, 51, 129, 98, 126, 60, 122, 41, 90, 71, 101, 43, 78, 65, 105, 36, 101, 78, 60, 29, 146, 94, 76, 102, 109, 103, 59, 127, 138, 64, 30, 51, 51, 118, 7, 70, 66, 38, 65, 52, 32, 70, 61, 42, 120, 96, 40, 46, 119, 99, 63, 0, 20, 59, 42, 22, 109, 88, 46, 34, 107, 93, 77, 103, 60, 98, 77, 73, 36, 55, 22, 98, 52, 89, 91, 89, 33, 113, 25, 102, 120, 54, 70, 100, 62, 43, 33, 23, 39, 47, 129, 255, 53, 54, 70, 95, 47, 92, 45, 119, 80, 124, 62, 50, 98, 98, 51, 62, 95, 90, 102, 22, 11, 68, 47, 52, 115, 47, 92, 40, 70, 117, 100, 92, 96, 126, 81, 87, 55, 38, 118, 116, 75, 72, 96, 97, 65, 20, 55, 49, 121, 26, 93, 92, 81, 27, 95, 48, 96, 101, 56, 101, 99, 35, 61, 79, 87, 56, 35, 41, 46, 48, 41, 8, 58, 33, 79, 63, 126, 62, 102, 106, 68, 17, 47, 61, 73, 52, 39, 59, 108, 115, 106, 53, 42, 32, 108, 42, 63, 105, 64, 46, 51, 69, 49, 40, 112, 72, 67, 49, 67, 63, 35, 61, 70, 70, 75, 74, 68, 74, 63, 102, 64, 73, 56, 63, 76, 68, 67, 61, 48, 34, 88, 81, 82, 63, 66, 59, 67, 61, 62, 90, 43, 74, 80, 64, 55, 68, 73, 70, 88, 71, 70, 70, 48, 71, 56, 79, 54, 66, 57, 70, 66, 90, 72, 69, 87, 66, 56, 67, 78, 56, 57, 56, 76, 80, 70, 78, 63, 70, 68, 92, 71, 85, 65, 77, 45, 68, 65, 71, 66, 78, 66, 57, 50, 111, 71, 73, 70, 49, 72, 67, 99, 63, 68, 65, 56, 62, 83, 73, 70, 63, 77, 60, 59, 71, 70, 81, 76, 67, 103, 97, 72, 68, 127, 68, 71, 68, 65, 70, 68, 65, 66, 67, 81, 66, 60, 69, 48, 78, 58, 68, 83, 86, 66, 82, 71, 72, 69, 80, 81, 66, 74, 71, 75, 52, 60, 41, 126, 67, 86, 70, 68, 67, 74, 55, 65, 58, 88, 70, 72, 73, 63, 73, 68, 71, 64, 100, 73, 70, 67, 83, 69, 73, 74, 74, 62, 66, 64, 50, 68, 52, 75, 64, 70, 62, 65, 64, 72, 92, 66, 69, 68, 62, 69, 62, 57, 83, 69, 75, 74, 80, 80, 65, 77, 81, 64, 69, 73, 70, 71, 79, 69, 69, 74, 80, 73, 88, 45, 73, 69, 66, 86, 69, 55, 54, 70, 79, 63, 77, 57, 66, 61, 72, 61, 71, 67, 62, 59, 65, 71, 98, 92, 67, 71, 64, 87, 57, 64, 63, 55, 64, 97, 69, 70, 71, 69, 69, 64, 73, 70, 70, 70, 70, 68, 75, 68, 67, 70, 83, 103, 66, 69, 70, 65, 63, 80, 68, 85, 76, 60, 66, 71, 73, 49, 76, 64, 69, 82, 73, 57, 66, 69, 63, 76, 71, 60, 70, 69, 78, 65, 85, 65, 74, 68, 70, 80, 69, 69, 81, 64, 75, 73, 74, 70, 69, 72, 72, 70, 63, 77, 76, 68, 72, 71, 68, 69, 75, 75, 61, 80, 77, 57, 71, 59, 66, 69, 67, 69, 70, 73, 65, 64, 77, 70, 69, 74, 69, 70, 75, 70, 71, 79, 66, 83, 78, 61, 70, 72, 85, 64, 66, 72, 83, 71, 70, 80, 64, 70, 71, 74, 80, 68, 68, 63, 65, 64, 71, 77, 72, 78, 66, 68, 70, 85, 74, 69, 64, 77, 62, 72, 59, 68, 70, 69, 71, 71, 72, 81, 59, 75, 85, 72, 75, 74, 74, 68, 69, 71, 69, 74, 50, 72, 63, 96, 72, 67, 66, 70, 61, 69, 67, 65, 38, 66, 64, 62, 61, 67, 70, 62, 74, 69, 63, 71, 76, 69, 72, 75, 66, 71, 74, 66, 63, 64, 78, 69, 64, 75, 73, 76, 64, 64, 76, 67, 66, 70, 77, 69, 68, 72, 69, 58, 71, 77, 71, 69, 66, 70, 71, 85, 73, 72, 76, 51, 71, 66, 82, 77, 71, 63, 70, 64, 75, 65, 79, 76, 87, 76, 73, 79, 73, 69, 68, 70, 84, 78, 78, 67, 72, 66, 63, 47, 87, 79, 69, 70, 64, 66, 78, 74, 44, 68, 64, 77, 61, 74, 72, 74, 72, 67, 65, 68, 66, 67, 69, 96, 33, 75, 69, 69, 72, 62, 69, 38, 63, 79, 63, 52, 70, 101, 66, 75, 90, 91, 81, 60, 54, 69, 70, 73, 73, 64, 72, 70, 61, 69, 58, 56, 67, 62, 70, 86, 67, 69, 81, 65, 73, 78, 67, 66, 68, 68, 57, 73, 75, 77, 78, 69, 61, 81, 67, 71, 58, 66, 63, 78, 67, 47, 77, 66, 71, 78, 69, 62, 66, 63, 63, 125, 72, 67, 69, 72, 70, 47, 77, 68, 64, 52, 64, 77, 73, 64, 65, 73, 77, 62, 71, 71, 79, 79, 67, 49, 99, 70, 68, 50, 60, 70, 68, 67, 71, 70, 67, 107, 64, 63, 69, 77, 68, 88, 77, 87, 76, 65, 43, 60, 46, 63, 73, 68, 60, 73, 72, 65, 56, 77, 79, 71, 50, 66, 70, 61, 70, 69, 66, 74, 83, 83, 58, 50, 76, 74, 73, 61, 64, 68, 71, 61, 98, 82, 71, 57, 73, 50, 72, 82, 69, 66, 68, 64, 88, 68, 59, 81, 67, 69, 80, 76, 65, 72, 94, 66, 71, 65, 81, 58, 67, 62, 83, 76, 71, 76, 80, 80, 71, 78, 63, 63, 79, 81, 70, 64, 67, 75, 71, 103, 78, 73, 51, 70, 74, 68, 67, 85, 68, 57, 71, 67, 70, 64, 60, 87, 93, 70, 72, 63, 67, 70, 63, 69, 70, 64, 69, 72, 71, 72, 65, 83, 64, 70, 66, 64, 63, 102, 69, 72, 70, 70, 63, 76, 69, 64, 70, 74, 69, 70, 78, 71, 69, 75, 67, 89, 74, 76, 71, 67, 67, 66, 73, 74, 68, 59, 69, 70, 68, 67, 66, 77, 67, 74, 72, 71, 68, 67, 72, 74, 72, 75, 68, 71, 68, 72, 70, 67, 74, 70, 71, 78, 73, 70, 81, 68, 79, 71, 76, 67, 71, 59, 74, 68, 76, 66, 81, 68, 77, 69, 71, 70, 71, 76, 74, 72, 72, 75, 72, 63, 66, 73, 69, 71, 70, 70, 79, 65, 69, 71, 74, 67, 70, 69, 73, 65, 71, 72, 68, 67, 76, 71, 69, 73, 74, 68, 65, 69, 54, 77, 73, 73, 71, 69, 68, 75, 69, 64, 69, 64, 66, 66, 71, 77, 72, 70, 68, 73, 69, 75, 71, 71, 79, 68, 71, 75, 74, 62, 71, 70, 72, 71, 69, 69, 56, 73, 80, 60, 82, 70, 76, 71, 70, 72, 70, 71, 78, 73, 64, 65, 70, 66, 65, 68, 70, 69, 67, 68, 72, 67, 65, 67, 71, 69, 70, 69, 64, 72, 66, 72, 76, 70, 68, 75, 69, 70, 71, 68, 65, 60, 79, 72, 70, 73, 65, 78, 68, 71, 72, 69, 74, 67, 74, 73, 68, 68, 71, 58, 75, 75, 69, 70, 72, 70, 71, 64, 70, 68, 76, 76, 71, 65, 75, 78, 72, 65, 70, 68, 70, 68, 74, 76, 76, 61, 75, 64, 71, 73, 70, 70, 54, 70, 62, 70, 76, 71, 68, 79, 64, 65, 68, 69, 68, 48};
+ model->setOperandValue(op53, op53_init, sizeof(uint8_t) * 2304);
+ static int32_t op55_init[] = {13038, 7187, -24298, -18509, -18780, 1558, -12880, 6409, 2493, -614, 3006, 17689, -15305, -15619, -7550, -7451, 6741, -7009, -9807, 4343, 9604, -17478, 17697, 13585, 12043, -10615, -13043, 5678, 603, -19885, 2479, 2669, 10616, -6847, 6035, 6746, -3640, -16645, -1685, -2293, -3217, -12684, 1057, 16536, 11521, 5124, -8610, -8002, -12629, -5272, -5030, 6394, 7465, -2211, -11773, 688, 7272, 6863, 8981, 6999, -74, -7641, 9782, -24887, 8374, -2762, 9621, 4844, -12309, -811, -15184, -1548, -16757, 18301, -14979, -3268, 414, -1826, -17006, -11037, 10889, -8445, 6257, 6089, 9536, -2040, 15106, -716, -1134, -24398, 5140, 17991, 12970, 903, -588, 17261, 334, 19344, -6391, -5587, 9229, -5262, -1242, 6141, 8087, 12221, 11573, -3360, 5190, -3270, -16340, 7408, -9833, -15706, -11246, -1534, 1398, -574, -21277, 9695, 10785, 1425, 1469, 2030, 2195, -10946, -24017, -5205, -4717, 13443, 8551, 16814, 7685, 9186, -11930, -4643, -11006, -8981, -1500, -4608, -11237, -6168, -7115, -16394, -5450, -260, 8360, 16201, 8555, 7904, 6814, 11052, -7812, 5190, -4231, 8700, -7556, -16692, -15109, 1501, -179, -15900, -21630, -840, 78, 12024, -19599, -7008, -1401, 11691, -6062, -2361, -2078, -9851, -12886, -6197, -14323, 10714, -2559, 18021, -3530, -6368, -14301, 16510, -218, 9119, 19707, 9512, 156, -5396, -8165, -10861, -8285, -14774, -1369, 1001, -18740, -4590, -11465, -11136, -12620, -12954, -6689, 5329, -9041, 2334, -11316, 2216, 2525, 3014, 129, -7723, 5379, 5859, -22827, -3197, 222, -598, -4346, -10434, -8591, 7781, 6463, -6531, -11027, 5974, 9465, -10909, 78, 6011, -9447, 10412, -3753, -2977, 17704, -13772, 13510, -4946, -18878, -5365, -9546, -6774, 433, 15195, -9317, 4092, -9579, 3417, 18249, -40, 56, -6738, -494, -7194, -1236, 1385};
+ model->setOperandValue(op55, op55_init, sizeof(int32_t) * 256);
+ static uint8_t op56_init[] = {128, 122, 133, 119, 116, 124, 117, 128, 124, 127, 107, 176, 132, 123, 125, 117, 128, 124, 120, 127, 109, 130, 103, 119, 137, 106, 114, 115, 126, 132, 124, 128, 118, 125, 125, 109, 151, 129, 159, 113, 110, 129, 92, 113, 137, 146, 121, 114, 122, 124, 117, 146, 123, 130, 125, 120, 122, 113, 143, 128, 120, 135, 146, 124, 119, 119, 106, 115, 106, 119, 134, 130, 104, 99, 106, 131, 122, 111, 119, 162, 115, 130, 130, 118, 122, 112, 108, 130, 138, 144, 136, 120, 127, 137, 124, 115, 125, 128, 108, 108, 116, 125, 154, 123, 102, 114, 124, 134, 127, 108, 106, 118, 104, 121, 120, 145, 122, 124, 111, 120, 116, 109, 114, 138, 98, 117, 130, 118, 119, 117, 133, 115, 129, 125, 124, 116, 131, 111, 132, 138, 132, 139, 118, 114, 122, 123, 127, 120, 109, 123, 116, 109, 124, 121, 116, 123, 126, 95, 124, 127, 122, 136, 124, 104, 121, 131, 113, 133, 132, 137, 110, 131, 129, 138, 118, 124, 139, 115, 104, 115, 109, 77, 130, 131, 112, 133, 107, 118, 116, 123, 140, 119, 113, 137, 110, 134, 119, 121, 120, 116, 151, 117, 126, 129, 101, 124, 112, 128, 121, 133, 117, 121, 118, 117, 117, 124, 118, 114, 101, 121, 130, 122, 88, 130, 113, 115, 121, 129, 113, 131, 124, 100, 140, 125, 130, 144, 123, 115, 99, 138, 138, 122, 124, 134, 119, 113, 118, 123, 115, 112, 126, 120, 107, 108, 120, 117, 126, 109, 99, 126, 95, 94, 115, 126, 131, 128, 126, 143, 136, 139, 144, 121, 112, 126, 122, 110, 118, 126, 124, 114, 131, 125, 131, 124, 122, 122, 131, 105, 113, 131, 136, 143, 128, 126, 124, 128, 129, 132, 124, 112, 135, 117, 130, 121, 139, 154, 146, 119, 141, 114, 116, 123, 122, 139, 113, 113, 118, 122, 119, 110, 113, 112, 113, 113, 115, 126, 128, 136, 115, 120, 111, 116, 149, 146, 131, 130, 114, 118, 122, 110, 126, 124, 124, 118, 142, 123, 119, 128, 127, 119, 138, 141, 124, 137, 126, 126, 118, 118, 94, 136, 127, 116, 145, 112, 176, 139, 106, 101, 119, 117, 132, 113, 110, 131, 125, 130, 129, 122, 130, 131, 133, 119, 124, 105, 127, 110, 93, 123, 102, 137, 126, 142, 139, 111, 129, 117, 128, 110, 111, 121, 135, 129, 131, 120, 132, 117, 113, 129, 121, 146, 135, 130, 116, 119, 128, 124, 122, 112, 133, 131, 130, 122, 106, 122, 124, 119, 97, 129, 127, 122, 113, 120, 124, 125, 141, 122, 147, 121, 135, 133, 125, 111, 124, 111, 134, 102, 142, 113, 111, 129, 140, 112, 112, 135, 123, 104, 121, 120, 138, 121, 129, 118, 123, 99, 124, 144, 117, 123, 127, 133, 129, 141, 124, 118, 119, 132, 123, 125, 112, 130, 169, 90, 111, 121, 132, 140, 126, 124, 112, 132, 141, 147, 127, 101, 112, 131, 138, 120, 149, 134, 139, 112, 86, 126, 128, 126, 126, 119, 139, 112, 132, 124, 141, 121, 118, 124, 117, 122, 127, 126, 126, 137, 147, 137, 162, 112, 126, 127, 133, 120, 133, 127, 108, 88, 160, 122, 134, 123, 118, 148, 152, 112, 123, 121, 114, 116, 153, 110, 141, 133, 142, 110, 118, 170, 127, 128, 120, 116, 127, 118, 123, 130, 119, 132, 116, 123, 128, 117, 113, 165, 120, 101, 129, 124, 142, 131, 122, 118, 114, 123, 109, 142, 109, 127, 113, 111, 113, 133, 128, 116, 121, 142, 124, 130, 187, 129, 129, 116, 115, 127, 117, 135, 122, 118, 123, 132, 128, 117, 110, 129, 139, 120, 129, 131, 109, 116, 137, 126, 137, 118, 133, 119, 129, 157, 136, 119, 123, 135, 121, 135, 123, 117, 122, 122, 173, 102, 129, 123, 123, 129, 119, 124, 161, 118, 135, 116, 122, 131, 125, 124, 130, 123, 139, 126, 128, 126, 121, 126, 119, 126, 113, 140, 117, 131, 119, 131, 135, 116, 122, 92, 128, 137, 108, 121, 107, 148, 146, 114, 125, 134, 124, 122, 125, 132, 127, 131, 129, 118, 124, 112, 109, 126, 132, 86, 119, 134, 123, 128, 120, 142, 112, 126, 136, 132, 115, 105, 174, 121, 131, 130, 133, 122, 134, 138, 113, 134, 159, 143, 110, 130, 125, 115, 123, 117, 123, 108, 123, 108, 127, 125, 131, 115, 122, 116, 138, 129, 138, 123, 134, 117, 116, 123, 117, 129, 124, 109, 117, 128, 116, 120, 124, 122, 157, 131, 129, 121, 126, 138, 140, 112, 124, 124, 122, 127, 111, 123, 124, 120, 126, 136, 140, 130, 114, 125, 119, 127, 128, 124, 141, 114, 129, 107, 120, 119, 107, 138, 114, 120, 165, 121, 148, 124, 113, 119, 122, 121, 126, 109, 130, 121, 116, 121, 150, 124, 107, 129, 140, 118, 118, 150, 125, 124, 121, 128, 128, 121, 117, 120, 113, 128, 131, 120, 132, 122, 128, 157, 113, 100, 114, 120, 125, 104, 119, 123, 118, 111, 103, 128, 138, 131, 141, 166, 126, 111, 131, 120, 123, 124, 124, 126, 141, 125, 135, 130, 118, 113, 127, 115, 137, 134, 114, 122, 122, 126, 126, 124, 126, 121, 121, 118, 134, 121, 159, 139, 120, 124, 142, 130, 131, 147, 129, 118, 123, 109, 125, 111, 114, 144, 118, 125, 139, 122, 152, 136, 130, 131, 118, 126, 146, 122, 129, 128, 125, 122, 130, 130, 128, 113, 121, 115, 122, 150, 122, 121, 121, 121, 121, 134, 98, 125, 134, 131, 135, 135, 120, 127, 121, 127, 124, 103, 143, 151, 147, 117, 128, 119, 107, 120, 120, 112, 138, 124, 132, 117, 127, 126, 120, 123, 152, 118, 127, 112, 128, 127, 130, 117, 119, 111, 124, 123, 121, 101, 149, 122, 111, 132, 129, 129, 125, 125, 127, 138, 157, 132, 130, 122, 133, 146, 120, 115, 122, 143, 129, 124, 103, 126, 126, 114, 135, 131, 154, 121, 153, 126, 119, 123, 129, 121, 124, 127, 128, 119, 128, 107, 128, 144, 115, 126, 121, 121, 117, 133, 121, 128, 152, 130, 125, 129, 121, 123, 144, 125, 117, 123, 122, 129, 126, 122, 111, 117, 136, 132, 125, 134, 118, 118, 140, 122, 128, 129, 117, 137, 122, 121, 188, 143, 109, 137, 133, 120, 133, 128, 168, 110, 132, 123, 124, 116, 123, 117, 115, 129, 123, 122, 124, 124, 123, 123, 123, 130, 138, 129, 127, 130, 129, 97, 128, 113, 133, 126, 133, 104, 130, 117, 119, 122, 124, 124, 134, 116, 115, 123, 118, 118, 97, 127, 123, 109, 117, 128, 124, 125, 128, 116, 131, 125, 101, 127, 114, 128, 115, 133, 120, 129, 141, 116, 130, 138, 129, 121, 123, 121, 123, 124, 123, 128, 127, 121, 156, 126, 116, 114, 118, 108, 123, 135, 127, 128, 123, 119, 132, 134, 131, 170, 120, 119, 115, 126, 115, 125, 118, 131, 126, 110, 158, 120, 133, 119, 116, 114, 120, 133, 121, 122, 127, 129, 122, 152, 124, 130, 130, 123, 112, 129, 119, 130, 121, 128, 123, 125, 127, 120, 122, 134, 127, 118, 101, 102, 153, 125, 124, 122, 124, 129, 139, 115, 119, 125, 125, 120, 128, 118, 125, 122, 135, 105, 135, 121, 127, 124, 128, 116, 124, 143, 143, 128, 124, 99, 120, 119, 118, 116, 130, 121, 151, 140, 119, 123, 105, 132, 128, 133, 124, 95, 129, 119, 121, 98, 125, 126, 121, 116, 134, 125, 127, 117, 120, 129, 124, 118, 122, 123, 122, 123, 122, 134, 134, 106, 129, 139, 130, 127, 121, 128, 107, 124, 125, 123, 130, 130, 119, 124, 126, 133, 118, 130, 119, 120, 126, 130, 120, 124, 118, 136, 123, 138, 115, 124, 129, 125, 118, 121, 125, 120, 124, 124, 110, 127, 159, 125, 125, 124, 126, 122, 118, 126, 112, 114, 117, 116, 128, 111, 119, 125, 126, 122, 114, 122, 116, 117, 122, 123, 129, 132, 118, 115, 117, 136, 123, 122, 124, 128, 128, 115, 119, 124, 124, 108, 126, 141, 122, 120, 120, 140, 128, 123, 124, 112, 120, 119, 130, 126, 124, 126, 130, 119, 121, 122, 119, 125, 124, 127, 120, 120, 136, 125, 120, 135, 133, 143, 122, 125, 115, 126, 130, 125, 120, 124, 131, 129, 123, 101, 122, 130, 109, 126, 124, 125, 123, 129, 110, 115, 121, 110, 125, 143, 125, 131, 121, 113, 125, 125, 129, 131, 130, 137, 133, 113, 124, 118, 117, 126, 119, 124, 125, 134, 123, 106, 113, 124, 130, 124, 138, 127, 120, 126, 121, 124, 109, 136, 116, 123, 129, 123, 121, 126, 123, 136, 119, 78, 132, 127, 117, 124, 122, 119, 121, 123, 122, 128, 115, 95, 120, 122, 111, 122, 132, 133, 125, 136, 124, 116, 126, 126, 127, 131, 127, 123, 116, 114, 139, 117, 122, 124, 118, 117, 174, 119, 121, 119, 130, 118, 117, 120, 130, 123, 125, 125, 126, 120, 119, 118, 126, 123, 126, 122, 126, 111, 128, 127, 115, 111, 106, 120, 131, 116, 112, 129, 118, 120, 120, 132, 122, 128, 125, 81, 120, 127, 114, 122, 117, 126, 135, 117, 124, 137, 116, 116, 122, 117, 116, 123, 123, 151, 117, 143, 141, 121, 122, 125, 131, 127, 124, 121, 136, 123, 111, 116, 126, 139, 125, 118, 131, 114, 123, 126, 118, 64, 112, 125, 123, 130, 135, 108, 165, 129, 103, 115, 123, 135, 104, 109, 125, 120, 146, 123, 121, 134, 159, 120, 110, 117, 139, 136, 118, 140, 118, 172, 106, 133, 122, 121, 133, 131, 113, 138, 127, 128, 119, 137, 122, 122, 124, 118, 111, 131, 110, 138, 129, 133, 139, 136, 142, 113, 133, 126, 123, 124, 134, 140, 119, 114, 119, 125, 124, 119, 112, 119, 121, 123, 132, 132, 126, 149, 113, 127, 124, 129, 142, 123, 122, 105, 119, 123, 121, 121, 125, 105, 122, 121, 126, 130, 114, 122, 134, 139, 129, 125, 225, 106, 138, 140, 110, 146, 128, 128, 114, 139, 141, 130, 132, 120, 118, 143, 136, 135, 125, 5, 123, 145, 115, 137, 116, 117, 127, 136, 120, 120, 124, 132, 96, 128, 122, 137, 132, 118, 110, 124, 143, 121, 127, 104, 123, 133, 130, 116, 129, 129, 198, 127, 140, 121, 133, 127, 130, 116, 123, 86, 131, 132, 125, 130, 156, 186, 122, 129, 92, 109, 113, 126, 117, 119, 130, 109, 147, 122, 119, 114, 142, 153, 124, 141, 138, 149, 127, 163, 128, 129, 120, 132, 137, 110, 136, 132, 133, 108, 125, 139, 144, 106, 123, 131, 131, 100, 112, 133, 136, 111, 126, 133, 117, 128, 120, 140, 120, 126, 127, 121, 139, 109, 124, 139, 122, 118, 113, 132, 124, 129, 124, 128, 134, 121, 113, 132, 123, 130, 128, 114, 122, 123, 134, 113, 114, 117, 123, 129, 117, 123, 119, 141, 122, 121, 103, 122, 134, 120, 119, 119, 150, 145, 129, 140, 124, 168, 123, 103, 118, 120, 134, 122, 118, 143, 124, 102, 113, 126, 112, 130, 123, 139, 118, 115, 116, 124, 125, 120, 135, 124, 114, 93, 123, 151, 117, 118, 120, 135, 128, 136, 117, 129, 115, 131, 139, 124, 102, 158, 122, 122, 130, 115, 125, 122, 135, 127, 121, 129, 110, 114, 118, 123, 125, 120, 154, 112, 155, 112, 129, 120, 119, 116, 121, 111, 119, 105, 137, 116, 111, 125, 122, 151, 111, 110, 104, 122, 132, 129, 113, 124, 105, 108, 124, 146, 134, 127, 114, 132, 107, 128, 124, 136, 124, 139, 109, 146, 116, 120, 121, 127, 135, 109, 119, 134, 130, 127, 145, 122, 120, 123, 120, 125, 131, 90, 115, 133, 120, 125, 111, 134, 127, 133, 136, 97, 138, 115, 115, 178, 129, 136, 127, 124, 123, 128, 140, 140, 123, 126, 135, 122, 121, 105, 114, 128, 141, 114, 123, 121, 133, 127, 122, 100, 109, 95, 121, 114, 121, 119, 157, 105, 124, 123, 119, 93, 111, 159, 121, 104, 119, 136, 116, 119, 129, 123, 123, 127, 116, 132, 129, 130, 132, 100, 121, 118, 105, 135, 131, 123, 156, 130, 121, 127, 119, 111, 115, 118, 130, 141, 128, 119, 123, 137, 124, 122, 117, 123, 118, 95, 109, 129, 79, 108, 121, 137, 121, 134, 92, 107, 117, 122, 122, 109, 106, 125, 111, 118, 117, 127, 125, 115, 121, 119, 114, 131, 120, 122, 133, 116, 127, 128, 96, 117, 135, 118, 141, 124, 118, 110, 108, 129, 121, 139, 122, 136, 131, 118, 161, 127, 149, 118, 138, 115, 112, 105, 137, 119, 110, 120, 120, 138, 124, 154, 120, 148, 120, 127, 113, 145, 132, 117, 116, 121, 117, 129, 123, 122, 121, 122, 115, 131, 103, 133, 88, 149, 101, 122, 126, 123, 121, 144, 126, 132, 152, 126, 131, 122, 118, 125, 121, 117, 90, 123, 116, 100, 122, 128, 122, 125, 123, 105, 116, 118, 129, 131, 111, 135, 142, 135, 164, 138, 117, 117, 124, 122, 122, 130, 124, 125, 119, 116, 131, 123, 120, 134, 131, 126, 113, 123, 120, 129, 110, 128, 118, 129, 129, 134, 129, 124, 128, 128, 123, 121, 117, 103, 133, 112, 118, 133, 123, 107, 122, 115, 122, 120, 115, 119, 127, 116, 125, 136, 130, 134, 129, 107, 112, 122, 117, 128, 122, 129, 123, 130, 120, 132, 97, 138, 124, 117, 118, 119, 117, 118, 125, 128, 125, 126, 116, 120, 129, 121, 136, 119, 119, 134, 144, 115, 125, 117, 133, 116, 115, 101, 129, 106, 130, 127, 128, 115, 126, 110, 122, 124, 132, 131, 123, 123, 121, 126, 120, 126, 125, 125, 111, 120, 108, 117, 125, 122, 131, 133, 129, 120, 97, 118, 133, 119, 125, 114, 124, 123, 141, 113, 132, 124, 101, 119, 122, 120, 132, 130, 107, 129, 119, 120, 124, 119, 124, 120, 129, 122, 118, 124, 116, 127, 125, 120, 103, 127, 115, 125, 103, 124, 134, 106, 128, 132, 126, 129, 113, 121, 125, 134, 136, 119, 125, 114, 129, 128, 120, 120, 126, 125, 128, 115, 127, 118, 132, 128, 120, 118, 119, 102, 130, 108, 116, 127, 127, 129, 122, 114, 123, 126, 122, 113, 121, 115, 118, 119, 125, 126, 126, 122, 135, 121, 127, 121, 158, 122, 134, 108, 93, 125, 135, 134, 128, 130, 124, 123, 115, 125, 105, 125, 115, 132, 119, 129, 143, 129, 125, 119, 117, 125, 122, 130, 126, 121, 115, 111, 131, 135, 143, 129, 118, 116, 120, 123, 130, 134, 121, 125, 131, 129, 106, 117, 119, 116, 121, 120, 130, 132, 143, 120, 122, 77, 126, 117, 126, 114, 126, 132, 116, 130, 129, 130, 95, 123, 126, 125, 119, 127, 122, 115, 123, 121, 129, 105, 122, 86, 122, 125, 121, 121, 125, 128, 127, 128, 123, 126, 124, 161, 131, 114, 122, 124, 121, 129, 106, 140, 127, 120, 132, 126, 131, 125, 105, 149, 114, 120, 124, 131, 123, 122, 129, 119, 120, 112, 120, 127, 136, 125, 123, 124, 127, 130, 120, 161, 124, 124, 118, 117, 111, 127, 129, 121, 123, 131, 124, 121, 122, 125, 126, 128, 123, 137, 120, 131, 148, 117, 116, 124, 100, 125, 126, 134, 121, 124, 139, 123, 116, 101, 127, 127, 122, 128, 118, 124, 130, 118, 120, 111, 123, 152, 129, 84, 123, 122, 110, 122, 127, 134, 130, 137, 141, 123, 132, 127, 124, 124, 118, 126, 117, 123, 118, 154, 151, 125, 110, 122, 121, 129, 128, 133, 119, 127, 122, 123, 125, 122, 108, 118, 106, 109, 130, 120, 113, 118, 119, 122, 134, 120, 118, 126, 113, 114, 123, 112, 119, 157, 119, 114, 115, 151, 122, 135, 134, 121, 134, 122, 113, 129, 124, 121, 116, 119, 167, 122, 115, 104, 123, 119, 112, 139, 146, 132, 133, 129, 110, 118, 129, 110, 123, 130, 126, 132, 112, 127, 119, 121, 108, 115, 119, 136, 134, 115, 122, 123, 115, 113, 120, 123, 116, 101, 123, 128, 129, 115, 106, 132, 154, 132, 142, 123, 118, 138, 126, 131, 120, 128, 127, 129, 112, 131, 135, 127, 140, 120, 104, 124, 125, 127, 121, 106, 125, 124, 137, 125, 120, 126, 124, 111, 122, 122, 98, 147, 111, 123, 125, 117, 124, 129, 113, 114, 125, 121, 116, 125, 127, 132, 122, 140, 119, 123, 125, 132, 123, 120, 136, 117, 128, 123, 132, 137, 130, 124, 106, 126, 117, 120, 131, 120, 114, 115, 102, 115, 132, 146, 118, 121, 115, 125, 122, 112, 146, 122, 130, 146, 118, 135, 119, 128, 125, 109, 129, 99, 120, 139, 81, 130, 117, 124, 131, 125, 121, 126, 120, 133, 131, 127, 118, 112, 124, 139, 132, 123, 117, 132, 110, 125, 131, 124, 125, 120, 115, 135, 115, 128, 116, 139, 136, 117, 113, 119, 95, 112, 118, 147, 112, 119, 117, 134, 106, 121, 116, 119, 139, 119, 116, 116, 126, 125, 118, 125, 122, 123, 121, 127, 118, 127, 127, 122, 128, 121, 128, 122, 125, 124, 119, 120, 122, 122, 118, 122, 120, 122, 123, 123, 124, 125, 123, 122, 117, 126, 125, 127, 124, 116, 130, 121, 120, 129, 124, 127, 121, 125, 125, 122, 127, 123, 127, 124, 124, 123, 123, 120, 127, 121, 124, 128, 123, 122, 126, 123, 125, 119, 121, 127, 125, 123, 122, 121, 128, 116, 126, 128, 121, 125, 122, 119, 119, 130, 123, 126, 123, 131, 122, 123, 132, 123, 125, 122, 125, 127, 127, 122, 124, 122, 126, 125, 131, 127, 121, 119, 121, 114, 126, 125, 123, 127, 123, 125, 126, 126, 128, 123, 127, 120, 124, 117, 121, 128, 124, 117, 120, 117, 128, 126, 122, 118, 123, 124, 124, 119, 124, 130, 123, 122, 119, 124, 122, 122, 126, 118, 125, 125, 127, 122, 126, 121, 130, 121, 131, 124, 118, 123, 121, 124, 121, 123, 121, 123, 121, 121, 126, 126, 125, 124, 124, 121, 121, 126, 124, 123, 122, 122, 120, 125, 126, 125, 122, 109, 120, 127, 121, 124, 122, 129, 125, 121, 124, 123, 126, 130, 119, 128, 124, 120, 121, 122, 127, 121, 125, 122, 121, 121, 119, 120, 122, 124, 124, 123, 121, 120, 122, 121, 127, 125, 122, 126, 124, 118, 121, 121, 123, 124, 126, 120, 130, 123, 123, 132, 126, 122, 122, 121, 120, 123, 129, 122, 131, 125, 125, 125, 128, 126, 115, 128, 124, 126, 122, 123, 125, 126, 122, 121, 124, 121, 117, 126, 134, 118, 124, 108, 123, 135, 131, 119, 107, 123, 126, 113, 125, 124, 142, 126, 142, 124, 126, 127, 141, 129, 130, 127, 111, 125, 120, 122, 121, 127, 127, 118, 127, 143, 125, 126, 120, 119, 116, 117, 133, 119, 123, 127, 115, 128, 106, 114, 118, 134, 124, 138, 123, 120, 134, 136, 118, 134, 134, 129, 137, 127, 124, 130, 108, 124, 119, 120, 121, 141, 124, 120, 122, 111, 131, 140, 125, 134, 122, 109, 127, 120, 118, 127, 115, 137, 130, 150, 123, 118, 128, 121, 127, 115, 113, 134, 126, 119, 134, 138, 132, 115, 110, 133, 125, 117, 125, 117, 109, 124, 128, 142, 136, 136, 116, 132, 131, 124, 112, 128, 127, 123, 116, 136, 129, 123, 119, 133, 128, 126, 136, 116, 117, 127, 141, 128, 128, 125, 119, 121, 118, 118, 109, 136, 111, 120, 112, 129, 129, 140, 122, 124, 105, 124, 131, 116, 163, 137, 128, 134, 120, 100, 138, 85, 119, 138, 125, 129, 121, 118, 121, 123, 134, 125, 127, 126, 117, 141, 121, 123, 118, 130, 131, 118, 127, 133, 124, 127, 122, 130, 109, 122, 119, 124, 130, 129, 121, 123, 114, 134, 122, 146, 131, 128, 120, 132, 115, 139, 108, 124, 120, 116, 122, 110, 115, 131, 138, 128, 132, 129, 125, 119, 119, 96, 112, 127, 121, 112, 130, 122, 116, 128, 130, 131, 118, 151, 127, 138, 120, 116, 121, 123, 129, 119, 130, 126, 119, 133, 128, 133, 118, 129, 121, 126, 120, 125, 123, 150, 134, 128, 130, 119, 143, 127, 119, 128, 106, 124, 135, 116, 122, 127, 144, 133, 111, 131, 113, 129, 117, 120, 141, 138, 118, 103, 133, 135, 121, 126, 112, 126, 129, 121, 122, 126, 121, 130, 122, 117, 128, 117, 120, 129, 120, 114, 127, 117, 126, 129, 119, 141, 125, 105, 118, 127, 127, 117, 125, 111, 102, 123, 120, 120, 114, 123, 119, 109, 107, 125, 122, 114, 120, 137, 123, 127, 123, 119, 166, 118, 127, 110, 118, 128, 98, 124, 102, 118, 116, 124, 125, 136, 122, 119, 116, 175, 132, 120, 141, 135, 127, 125, 127, 127, 105, 109, 118, 118, 114, 131, 132, 121, 122, 125, 121, 130, 123, 128, 113, 133, 117, 125, 123, 118, 119, 124, 118, 131, 130, 116, 131, 128, 127, 120, 129, 122, 116, 124, 128, 119, 121, 121, 128, 117, 121, 114, 119, 117, 120, 122, 124, 127, 119, 146, 132, 109, 111, 113, 137, 128, 129, 126, 122, 122, 133, 113, 130, 120, 120, 127, 126, 147, 146, 119, 104, 116, 123, 131, 128, 122, 125, 127, 125, 128, 136, 126, 120, 125, 114, 88, 128, 126, 126, 103, 128, 125, 121, 126, 125, 132, 134, 124, 120, 124, 119, 126, 127, 138, 118, 124, 120, 145, 123, 126, 141, 121, 128, 129, 134, 102, 124, 131, 128, 128, 118, 128, 131, 121, 125, 132, 123, 139, 123, 127, 119, 113, 128, 150, 118, 109, 94, 116, 125, 113, 117, 127, 144, 134, 123, 128, 116, 116, 130, 143, 123, 119, 128, 117, 132, 108, 109, 135, 121, 133, 123, 125, 117, 108, 115, 125, 108, 110, 136, 140, 116, 123, 126, 129, 136, 116, 128, 126, 122, 134, 146, 129, 131, 129, 119, 87, 120, 139, 127, 123, 127, 137, 133, 113, 119, 125, 135, 122, 125, 107, 110, 126, 123, 114, 137, 125, 122, 122, 121, 117, 144, 126, 122, 130, 133, 119, 129, 131, 127, 150, 107, 128, 132, 127, 129, 114, 124, 108, 75, 129, 120, 136, 127, 124, 132, 125, 115, 127, 131, 111, 153, 129, 116, 128, 130, 127, 132, 124, 112, 120, 129, 129, 118, 100, 128, 131, 149, 130, 135, 131, 126, 125, 101, 123, 124, 121, 118, 120, 138, 113, 122, 122, 121, 108, 124, 115, 135, 118, 132, 140, 118, 121, 124, 121, 129, 131, 137, 104, 125, 103, 105, 133, 124, 130, 117, 135, 129, 114, 142, 127, 121, 122, 124, 113, 136, 117, 121, 132, 88, 108, 159, 121, 118, 122, 123, 122, 142, 124, 140, 135, 145, 108, 120, 125, 118, 118, 130, 125, 133, 128, 127, 126, 130, 114, 110, 124, 129, 115, 125, 111, 140, 147, 132, 115, 117, 118, 136, 134, 127, 104, 140, 134, 120, 139, 126, 157, 123, 125, 136, 163, 127, 131, 124, 125, 122, 130, 125, 123, 125, 119, 119, 126, 123, 128, 114, 128, 103, 129, 124, 95, 138, 133, 131, 123, 129, 125, 125, 127, 132, 125, 139, 103, 123, 138, 121, 132, 114, 128, 130, 118, 131, 111, 121, 119, 127, 115, 111, 129, 112, 102, 124, 127, 124, 110, 107, 114, 123, 119, 126, 113, 118, 119, 123, 110, 123, 125, 140, 126, 119, 121, 123, 122, 122, 126, 114, 134, 138, 122, 117, 133, 126, 110, 105, 122, 108, 122, 120, 123, 125, 129, 123, 123, 102, 124, 124, 128, 135, 147, 124, 123, 134, 137, 95, 130, 119, 125, 130, 117, 125, 129, 114, 125, 127, 122, 120, 125, 128, 121, 148, 105, 125, 133, 123, 125, 138, 103, 129, 114, 118, 123, 123, 123, 132, 133, 124, 122, 125, 125, 118, 134, 123, 116, 126, 124, 143, 109, 119, 118, 107, 140, 123, 123, 124, 121, 113, 111, 119, 126, 149, 134, 115, 116, 121, 131, 111, 143, 118, 122, 103, 127, 119, 122, 131, 116, 141, 127, 115, 125, 136, 123, 127, 119, 109, 122, 130, 118, 122, 118, 124, 104, 126, 111, 122, 127, 109, 133, 127, 125, 97, 127, 123, 127, 119, 118, 118, 124, 129, 107, 137, 114, 108, 123, 125, 128, 115, 132, 117, 114, 131, 119, 119, 122, 111, 124, 130, 104, 103, 145, 124, 132, 113, 121, 142, 123, 119, 161, 121, 118, 124, 121, 140, 119, 124, 128, 112, 134, 108, 136, 123, 116, 121, 117, 143, 115, 113, 124, 127, 110, 114, 127, 116, 132, 112, 118, 120, 134, 122, 129, 126, 125, 110, 116, 133, 117, 129, 116, 126, 123, 128, 125, 112, 176, 130, 120, 125, 136, 124, 123, 110, 125, 132, 123, 119, 115, 122, 120, 104, 131, 134, 132, 130, 122, 136, 125, 130, 126, 124, 120, 125, 125, 111, 121, 123, 129, 128, 127, 118, 125, 132, 126, 116, 129, 118, 122, 125, 126, 124, 122, 123, 126, 122, 122, 124, 111, 129, 117, 124, 123, 115, 127, 120, 121, 129, 135, 121, 120, 132, 126, 127, 128, 123, 126, 121, 120, 123, 128, 124, 115, 131, 125, 129, 126, 125, 116, 132, 120, 120, 126, 118, 123, 119, 122, 120, 128, 119, 117, 125, 125, 125, 128, 128, 122, 119, 120, 125, 122, 112, 130, 119, 121, 110, 119, 127, 117, 128, 131, 127, 116, 127, 123, 122, 121, 125, 129, 135, 126, 119, 131, 119, 142, 126, 115, 126, 124, 137, 133, 123, 117, 131, 119, 122, 130, 129, 130, 128, 121, 124, 124, 135, 112, 126, 120, 127, 109, 118, 126, 121, 128, 119, 127, 112, 130, 126, 118, 124, 130, 134, 127, 118, 115, 130, 116, 128, 121, 127, 124, 121, 131, 119, 125, 133, 118, 122, 127, 132, 128, 133, 125, 137, 117, 130, 130, 123, 126, 121, 114, 129, 125, 117, 125, 120, 125, 127, 129, 126, 129, 125, 124, 121, 126, 123, 123, 111, 126, 118, 111, 131, 133, 122, 114, 115, 120, 124, 122, 121, 126, 119, 132, 130, 127, 129, 124, 120, 126, 121, 121, 124, 121, 118, 128, 128, 130, 111, 126, 120, 121, 133, 130, 127, 128, 119, 125, 129, 127, 128, 113, 126, 126, 123, 123, 122, 120, 119, 115, 129, 117, 123, 122, 110, 124, 131, 120, 126, 120, 111, 125, 116, 129, 116, 119, 121, 110, 101, 125, 151, 114, 110, 127, 121, 106, 129, 137, 125, 127, 111, 128, 120, 132, 131, 119, 123, 129, 129, 125, 143, 122, 139, 140, 123, 116, 116, 101, 111, 138, 125, 111, 133, 116, 117, 127, 137, 113, 114, 122, 153, 127, 131, 110, 108, 113, 115, 123, 112, 129, 146, 114, 114, 118, 116, 117, 128, 130, 125, 118, 126, 110, 120, 127, 114, 103, 142, 127, 102, 120, 124, 127, 121, 115, 116, 124, 140, 121, 108, 145, 125, 103, 113, 117, 124, 119, 128, 122, 138, 117, 122, 127, 111, 120, 108, 101, 113, 132, 118, 134, 117, 116, 104, 113, 130, 120, 115, 141, 113, 116, 111, 134, 113, 111, 112, 112, 131, 133, 130, 113, 118, 135, 128, 135, 128, 117, 118, 121, 137, 146, 142, 131, 126, 103, 123, 128, 118, 131, 128, 127, 117, 117, 135, 111, 119, 92, 114, 144, 123, 113, 117, 138, 130, 142, 119, 165, 97, 124, 104, 173, 138, 132, 124, 116, 122, 140, 113, 115, 128, 123, 116, 123, 104, 138, 129, 140, 131, 123, 132, 130, 149, 114, 127, 124, 118, 124, 121, 135, 127, 121, 111, 110, 108, 105, 103, 99, 126, 116, 137, 115, 131, 108, 124, 123, 114, 133, 111, 110, 95, 117, 119, 119, 132, 135, 125, 134, 137, 152, 130, 116, 122, 105, 109, 129, 140, 142, 99, 127, 131, 141, 139, 128, 116, 121, 114, 130, 125, 124, 128, 112, 112, 129, 121, 124, 117, 113, 132, 113, 125, 137, 119, 120, 125, 96, 122, 126, 125, 114, 122, 122, 116, 115, 131, 118, 126, 121, 121, 120, 120, 118, 133, 115, 114, 127, 144, 111, 123, 118, 121, 132, 136, 119, 122, 130, 122, 115, 124, 122, 123, 116, 126, 120, 126, 121, 118, 128, 113, 123, 130, 117, 124, 151, 128, 122, 131, 120, 123, 135, 108, 131, 122, 124, 119, 134, 113, 129, 126, 113, 118, 119, 113, 122, 132, 112, 124, 123, 119, 126, 130, 115, 123, 122, 135, 122, 120, 131, 133, 129, 130, 122, 127, 107, 112, 122, 133, 113, 132, 126, 134, 130, 122, 113, 119, 127, 117, 118, 131, 126, 119, 119, 117, 135, 135, 136, 123, 121, 121, 129, 130, 131, 125, 116, 114, 129, 125, 119, 123, 122, 126, 111, 123, 126, 124, 117, 124, 113, 126, 130, 124, 118, 135, 129, 136, 134, 116, 119, 126, 116, 117, 147, 130, 121, 102, 122, 117, 114, 124, 125, 127, 126, 121, 118, 136, 130, 142, 119, 129, 127, 123, 129, 119, 130, 115, 121, 122, 112, 118, 114, 126, 137, 122, 140, 123, 115, 117, 130, 134, 122, 127, 119, 122, 134, 119, 124, 135, 123, 119, 126, 119, 135, 127, 142, 118, 108, 105, 123, 143, 122, 105, 122, 118, 117, 134, 114, 110, 125, 124, 122, 129, 125, 117, 118, 124, 116, 125, 123, 122, 127, 125, 127, 127, 134, 127, 127, 118, 125, 130, 124, 111, 128, 111, 120, 117, 132, 123, 101, 124, 122, 119, 120, 117, 117, 124, 116, 125, 127, 121, 126, 125, 130, 141, 130, 131, 120, 127, 127, 126, 130, 129, 123, 122, 93, 123, 124, 124, 122, 130, 124, 126, 117, 141, 125, 133, 123, 130, 129, 128, 117, 122, 128, 119, 117, 130, 118, 122, 129, 133, 118, 130, 120, 121, 135, 130, 136, 129, 125, 129, 70, 132, 132, 137, 116, 101, 128, 116, 122, 121, 126, 121, 130, 115, 117, 126, 171, 130, 125, 128, 101, 96, 122, 131, 133, 104, 118, 121, 200, 121, 120, 131, 127, 120, 123, 128, 118, 116, 125, 118, 131, 101, 123, 106, 122, 116, 121, 131, 128, 119, 118, 116, 135, 117, 121, 124, 126, 117, 119, 115, 129, 125, 114, 119, 120, 126, 130, 121, 139, 130, 118, 123, 130, 124, 116, 119, 125, 118, 119, 123, 125, 121, 126, 126, 129, 124, 109, 125, 123, 125, 133, 115, 102, 123, 127, 111, 125, 108, 108, 124, 132, 154, 115, 117, 124, 123, 121, 136, 124, 118, 127, 125, 92, 97, 118, 121, 125, 123, 121, 130, 126, 129, 119, 119, 124, 127, 115, 114, 110, 152, 110, 128, 129, 130, 121, 119, 114, 120, 132, 124, 123, 121, 128, 118, 125, 126, 132, 111, 126, 118, 111, 123, 146, 118, 124, 49, 96, 85, 119, 99, 143, 144, 123, 119, 122, 124, 115, 124, 133, 131, 122, 119, 127, 127, 126, 121, 118, 126, 111, 125, 122, 135, 118, 120, 136, 134, 120, 122, 124, 125, 117, 130, 129, 127, 134, 103, 126, 131, 122, 109, 118, 110, 127, 127, 124, 131, 132, 127, 126, 125, 119, 142, 121, 115, 131, 127, 125, 129, 118, 128, 123, 131, 112, 125, 131, 116, 131, 136, 123, 114, 132, 121, 134, 125, 136, 127, 119, 118, 130, 127, 126, 133, 108, 123, 122, 114, 128, 124, 127, 137, 120, 118, 122, 126, 118, 127, 128, 121, 132, 126, 121, 123, 118, 124, 133, 133, 127, 109, 132, 122, 128, 126, 130, 125, 125, 119, 128, 122, 123, 124, 125, 123, 125, 120, 123, 118, 117, 125, 132, 124, 120, 129, 124, 142, 128, 127, 123, 121, 125, 124, 127, 124, 120, 124, 135, 125, 128, 122, 129, 135, 121, 137, 132, 122, 128, 133, 118, 125, 124, 121, 117, 125, 120, 108, 123, 123, 120, 127, 117, 122, 129, 111, 144, 122, 131, 126, 113, 127, 118, 128, 121, 116, 133, 122, 128, 120, 122, 123, 122, 118, 121, 120, 127, 128, 127, 133, 126, 121, 119, 149, 120, 126, 128, 128, 138, 123, 129, 126, 124, 124, 130, 151, 114, 115, 124, 127, 122, 125, 109, 139, 144, 121, 126, 128, 125, 120, 126, 118, 124, 118, 132, 135, 121, 123, 130, 136, 95, 133, 124, 125, 146, 135, 139, 123, 105, 124, 117, 120, 124, 120, 118, 126, 122, 124, 127, 123, 133, 118, 115, 123, 117, 118, 122, 121, 128, 150, 134, 128, 124, 120, 122, 122, 119, 117, 121, 121, 131, 124, 127, 116, 123, 116, 121, 128, 118, 124, 122, 93, 124, 125, 137, 130, 119, 100, 134, 125, 133, 119, 119, 125, 136, 105, 129, 133, 87, 131, 127, 129, 124, 124, 118, 122, 114, 126, 119, 128, 119, 131, 133, 129, 128, 124, 125, 127, 119, 125, 130, 146, 117, 130, 130, 132, 119, 114, 118, 134, 129, 127, 120, 142, 121, 134, 129, 122, 129, 125, 131, 138, 133, 144, 118, 126, 144, 137, 126, 127, 128, 97, 129, 111, 121, 129, 122, 122, 140, 109, 116, 129, 95, 119, 129, 130, 67, 128, 125, 149, 130, 97, 121, 127, 86, 125, 121, 164, 127, 119, 120, 128, 110, 117, 118, 114, 129, 114, 89, 124, 133, 120, 119, 137, 124, 129, 124, 116, 150, 124, 128, 129, 121, 109, 120, 119, 120, 129, 122, 117, 124, 136, 125, 124, 137, 123, 126, 109, 121, 137, 122, 127, 118, 110, 125, 117, 111, 127, 131, 123, 134, 132, 128, 125, 120, 117, 129, 150, 122, 127, 125, 109, 126, 124, 137, 130, 138, 89, 108, 124, 124, 120, 120, 137, 123, 126, 130, 115, 113, 109, 143, 125, 120, 124, 120, 130, 115, 115, 125, 128, 127, 116, 122, 131, 96, 158, 180, 123, 112, 123, 119, 102, 139, 124, 125, 124, 119, 122, 126, 120, 125, 127, 132, 110, 132, 126, 107, 128, 94, 106, 125, 110, 80, 98, 126, 100, 143, 95, 126, 119, 115, 122, 117, 119, 126, 121, 126, 118, 145, 111, 124, 129, 116, 128, 130, 120, 118, 143, 124, 123, 230, 119, 121, 122, 125, 113, 125, 126, 122, 127, 126, 116, 126, 117, 119, 111, 123, 106, 127, 121, 131, 124, 130, 128, 131, 130, 125, 113, 130, 108, 124, 116, 126, 128, 117, 145, 117, 146, 157, 137, 126, 124, 136, 111, 109, 129, 133, 114, 128, 120, 122, 126, 115, 135, 120, 130, 115, 124, 129, 130, 121, 118, 130, 123, 121, 125, 131, 120, 128, 112, 122, 120, 118, 111, 123, 125, 123, 131, 125, 133, 133, 133, 116, 130, 125, 121, 130, 112, 117, 139, 105, 112, 124, 120, 124, 128, 128, 123, 134, 82, 118, 126, 120, 124, 126, 119, 123, 118, 132, 123, 119, 107, 122, 112, 122, 124, 120, 115, 123, 119, 132, 128, 117, 113, 124, 122, 130, 128, 119, 118, 126, 119, 128, 112, 118, 116, 117, 129, 125, 109, 113, 125, 136, 129, 116, 115, 130, 132, 121, 119, 117, 121, 119, 124, 129, 119, 122, 108, 125, 118, 120, 131, 124, 123, 131, 119, 121, 120, 113, 114, 115, 135, 115, 127, 136, 130, 123, 121, 122, 119, 110, 160, 124, 124, 124, 128, 127, 120, 138, 100, 117, 125, 122, 130, 130, 117, 128, 121, 148, 124, 126, 134, 122, 113, 89, 117, 121, 121, 122, 119, 135, 126, 124, 126, 139, 117, 127, 125, 121, 120, 139, 120, 115, 127, 120, 118, 124, 125, 115, 123, 117, 119, 121, 132, 133, 114, 124, 124, 125, 115, 122, 119, 123, 136, 115, 127, 127, 132, 116, 114, 123, 125, 129, 119, 118, 114, 120, 135, 129, 133, 113, 120, 103, 124, 115, 125, 126, 116, 123, 136, 112, 129, 128, 115, 147, 109, 125, 130, 131, 117, 113, 120, 146, 115, 190, 112, 126, 112, 121, 131, 122, 128, 121, 116, 126, 100, 121, 132, 127, 109, 110, 131, 128, 125, 121, 114, 134, 104, 127, 126, 130, 131, 122, 112, 104, 112, 116, 119, 143, 134, 122, 115, 117, 111, 153, 117, 117, 116, 123, 101, 101, 121, 144, 126, 128, 134, 134, 123, 110, 123, 124, 118, 107, 120, 114, 130, 116, 123, 127, 116, 112, 114, 172, 120, 123, 94, 112, 105, 116, 100, 124, 122, 162, 133, 115, 112, 159, 113, 127, 123, 134, 122, 137, 84, 120, 164, 123, 105, 104, 124, 110, 113, 111, 104, 119, 103, 122, 132, 152, 133, 155, 120, 114, 105, 127, 93, 122, 91, 119, 130, 106, 109, 127, 109, 128, 129, 125, 123, 118, 114, 127, 135, 129, 146, 141, 111, 123, 125, 122, 123, 117, 99, 142, 131, 136, 123, 122, 94, 119, 134, 92, 122, 119, 134, 147, 115, 105, 98, 115, 113, 120, 124, 116, 113, 126, 120, 118, 105, 123, 131, 124, 112, 107, 108, 99, 133, 173, 95, 119, 109, 118, 117, 145, 134, 135, 135, 127, 92, 144, 125, 119, 111, 108, 129, 104, 123, 152, 73, 123, 112, 127, 126, 104, 109, 131, 124, 122, 134, 111, 119, 116, 104, 121, 129, 125, 111, 125, 104, 119, 116, 129, 89, 136, 118, 110, 123, 113, 125, 144, 114, 113, 117, 132, 139, 123, 113, 132, 117, 115, 121, 146, 117, 110, 126, 119, 126, 130, 126, 130, 118, 126, 132, 119, 141, 129, 132, 121, 124, 124, 117, 122, 127, 122, 125, 120, 121, 125, 120, 123, 122, 120, 124, 128, 126, 123, 126, 125, 120, 121, 121, 122, 130, 123, 119, 123, 121, 121, 126, 120, 119, 122, 129, 136, 118, 121, 127, 125, 134, 119, 118, 120, 124, 122, 133, 126, 120, 118, 120, 127, 115, 122, 122, 122, 126, 128, 129, 123, 125, 119, 127, 124, 107, 125, 130, 120, 119, 119, 119, 125, 125, 122, 125, 128, 129, 120, 126, 125, 134, 119, 115, 124, 118, 128, 122, 127, 122, 125, 118, 135, 116, 127, 127, 124, 122, 121, 116, 123, 127, 113, 119, 124, 119, 116, 126, 123, 131, 123, 126, 123, 122, 124, 122, 118, 129, 122, 120, 130, 123, 124, 122, 123, 129, 126, 124, 131, 122, 128, 120, 124, 128, 123, 121, 119, 119, 126, 122, 125, 118, 129, 128, 131, 117, 123, 120, 132, 123, 121, 127, 124, 128, 114, 120, 119, 122, 127, 123, 121, 119, 122, 134, 125, 120, 123, 128, 121, 125, 128, 113, 127, 119, 120, 127, 119, 125, 122, 118, 119, 123, 129, 121, 123, 131, 125, 117, 124, 125, 121, 124, 121, 125, 126, 119, 125, 124, 129, 123, 129, 124, 127, 125, 126, 122, 122, 121, 124, 123, 125, 125, 123, 129, 126, 118, 119, 111, 142, 121, 126, 123, 121, 123, 117, 126, 122, 123, 126, 126, 129, 125, 125, 126, 124, 126, 123, 128, 129, 127, 115, 119, 128, 137, 121, 125, 131, 132, 128, 117, 118, 139, 116, 125, 108, 114, 123, 123, 104, 141, 124, 122, 128, 109, 118, 111, 124, 116, 131, 147, 123, 112, 128, 112, 116, 122, 138, 126, 113, 119, 121, 120, 117, 128, 121, 124, 115, 133, 123, 130, 129, 118, 126, 126, 126, 135, 106, 111, 136, 128, 126, 130, 140, 125, 133, 125, 118, 120, 106, 108, 126, 119, 121, 121, 119, 143, 130, 123, 129, 119, 119, 124, 107, 128, 121, 120, 122, 131, 131, 121, 127, 118, 131, 108, 115, 122, 113, 132, 125, 144, 143, 117, 101, 114, 122, 116, 134, 119, 122, 116, 132, 139, 120, 129, 117, 148, 105, 127, 124, 126, 126, 101, 115, 103, 120, 135, 112, 127, 124, 131, 120, 124, 124, 121, 122, 121, 124, 119, 137, 119, 117, 128, 130, 123, 136, 131, 139, 134, 116, 103, 119, 127, 118, 123, 138, 121, 120, 153, 112, 117, 98, 113, 137, 117, 129, 123, 119, 128, 133, 128, 137, 78, 145, 130, 121, 121, 128, 114, 122, 124, 126, 115, 127, 120, 132, 129, 134, 125, 128, 110, 144, 128, 128, 141, 128, 132, 108, 123, 102, 166, 123, 127, 121, 115, 119, 132, 109, 120, 115, 145, 107, 121, 129, 132, 127, 127, 126, 129, 95, 129, 118, 118, 108, 133, 115, 121, 131, 120, 119, 119, 115, 122, 127, 140, 122, 127, 136, 151, 127, 129, 108, 129, 145, 129, 128, 130, 118, 126, 126, 122, 124, 123, 114, 114, 114, 139, 128, 125, 128, 118, 131, 110, 122, 118, 112, 124, 118, 146, 128, 96, 122, 126, 101, 129, 123, 127, 145, 116, 134, 130, 128, 128, 122, 133, 137, 124, 115, 138, 122, 135, 125, 120, 123, 127, 128, 140, 116, 126, 121, 116, 130, 122, 105, 132, 132, 126, 133, 111, 115, 133, 122, 122, 134, 122, 135, 140, 107, 139, 113, 128, 120, 132, 129, 114, 109, 126, 126, 114, 127, 118, 124, 120, 118, 143, 128, 132, 136, 121, 129, 103, 90, 140, 147, 131, 121, 138, 125, 127, 132, 127, 121, 154, 131, 130, 131, 118, 106, 126, 116, 129, 120, 125, 123, 138, 119, 115, 122, 163, 123, 139, 160, 113, 111, 121, 127, 129, 119, 117, 113, 119, 115, 119, 132, 125, 128, 133, 127, 107, 128, 133, 122, 105, 132, 124, 122, 128, 115, 103, 105, 116, 115, 127, 119, 123, 124, 124, 113, 127, 133, 124, 129, 130, 120, 124, 122, 95, 121, 128, 127, 121, 126, 114, 120, 118, 120, 128, 133, 118, 126, 125, 138, 110, 108, 126, 127, 138, 122, 144, 123, 127, 123, 120, 128, 116, 114, 126, 154, 117, 108, 158, 135, 133, 117, 119, 122, 110, 125, 127, 113, 129, 117, 122, 125, 137, 143, 95, 125, 113, 124, 142, 104, 133, 131, 116, 119, 130, 97, 119, 133, 125, 135, 132, 109, 105, 113, 126, 118, 122, 135, 130, 119, 111, 129, 134, 121, 137, 126, 132, 128, 118, 137, 131, 127, 120, 121, 117, 116, 105, 132, 113, 128, 133, 121, 137, 110, 122, 121, 127, 114, 115, 117, 120, 113, 128, 131, 122, 125, 133, 128, 117, 127, 123, 131, 130, 127, 130, 112, 122, 126, 119, 126, 116, 124, 119, 118, 120, 121, 126, 115, 127, 122, 131, 126, 132, 129, 123, 130, 128, 110, 117, 126, 131, 128, 127, 125, 117, 122, 130, 130, 125, 141, 126, 129, 127, 117, 118, 123, 121, 130, 120, 124, 138, 121, 114, 124, 120, 126, 124, 130, 125, 121, 123, 122, 121, 120, 129, 99, 114, 129, 120, 125, 130, 127, 118, 124, 120, 124, 141, 129, 122, 124, 123, 134, 127, 131, 120, 111, 122, 140, 138, 118, 113, 125, 123, 125, 125, 123, 129, 116, 116, 120, 133, 129, 103, 123, 115, 124, 120, 121, 122, 121, 127, 87, 123, 119, 117, 125, 127, 126, 128, 123, 121, 118, 125, 121, 128, 124, 122, 127, 131, 126, 138, 132, 126, 120, 124, 133, 121, 114, 120, 132, 113, 121, 128, 135, 125, 121, 108, 131, 120, 120, 132, 124, 121, 121, 113, 125, 131, 104, 141, 137, 135, 124, 120, 139, 123, 128, 131, 126, 125, 124, 129, 135, 114, 144, 126, 127, 113, 122, 119, 130, 117, 124, 126, 106, 122, 132, 116, 123, 122, 126, 126, 119, 127, 112, 129, 125, 125, 119, 112, 108, 126, 135, 113, 121, 125, 117, 165, 124, 109, 147, 121, 128, 119, 132, 115, 121, 123, 123, 125, 133, 115, 101, 126, 121, 114, 131, 139, 119, 122, 118, 120, 122, 125, 127, 127, 120, 119, 123, 126, 120, 124, 119, 121, 128, 117, 128, 116, 117, 124, 131, 120, 119, 116, 120, 128, 121, 152, 124, 114, 128, 115, 126, 121, 140, 130, 116, 125, 129, 115, 121, 125, 127, 118, 174, 128, 118, 128, 117, 126, 123, 119, 127, 131, 114, 133, 152, 125, 120, 120, 115, 131, 123, 125, 120, 115, 132, 117, 130, 124, 131, 124, 121, 121, 130, 130, 109, 118, 126, 121, 116, 114, 115, 125, 124, 119, 113, 107, 110, 149, 124, 131, 120, 120, 120, 122, 133, 131, 112, 153, 115, 127, 118, 132, 107, 119, 126, 133, 122, 112, 121, 126, 128, 136, 123, 121, 127, 123, 124, 132, 120, 120, 123, 144, 116, 119, 131, 119, 127, 121, 116, 120, 127, 129, 120, 125, 105, 124, 133, 115, 134, 120, 134, 118, 130, 131, 117, 117, 121, 130, 128, 128, 127, 123, 129, 120, 134, 127, 124, 121, 122, 132, 127, 117, 124, 140, 116, 97, 139, 125, 116, 132, 123, 119, 116, 110, 139, 126, 127, 70, 162, 135, 123, 120, 125, 123, 127, 129, 133, 120, 126, 108, 131, 119, 120, 130, 124, 112, 128, 132, 111, 133, 122, 131, 128, 135, 120, 129, 121, 129, 116, 120, 136, 126, 161, 138, 117, 134, 115, 122, 148, 121, 123, 144, 111, 119, 133, 127, 124, 125, 107, 124, 132, 127, 125, 117, 122, 120, 126, 120, 125, 138, 123, 124, 123, 128, 123, 135, 121, 126, 135, 133, 126, 129, 129, 117, 127, 118, 124, 115, 112, 118, 143, 139, 141, 123, 125, 126, 120, 145, 117, 119, 123, 120, 112, 134, 115, 113, 120, 118, 127, 114, 116, 187, 115, 127, 124, 127, 128, 139, 144, 118, 126, 127, 134, 129, 134, 115, 119, 106, 136, 116, 123, 121, 104, 125, 127, 121, 123, 122, 113, 125, 141, 125, 112, 122, 137, 140, 151, 125, 116, 170, 121, 135, 143, 119, 121, 114, 122, 127, 119, 111, 156, 115, 130, 130, 107, 132, 139, 123, 107, 122, 128, 84, 118, 81, 152, 141, 125, 118, 118, 127, 123, 123, 132, 108, 122, 127, 118, 119, 126, 117, 114, 93, 113, 125, 104, 121, 130, 129, 118, 129, 114, 120, 159, 142, 131, 103, 114, 129, 153, 130, 125, 154, 93, 130, 129, 149, 119, 140, 115, 126, 123, 125, 119, 106, 136, 144, 122, 120, 129, 114, 144, 142, 129, 127, 131, 133, 142, 132, 111, 153, 121, 133, 133, 101, 123, 116, 129, 123, 123, 127, 148, 115, 130, 126, 116, 115, 116, 136, 132, 124, 123, 139, 117, 119, 89, 132, 108, 116, 129, 128, 129, 109, 136, 112, 129, 157, 120, 126, 131, 121, 108, 78, 115, 131, 127, 136, 116, 124, 109, 124, 138, 142, 125, 127, 120, 106, 117, 120, 131, 126, 134, 113, 150, 122, 110, 145, 126, 142, 129, 122, 127, 128, 120, 121, 128, 121, 136, 126, 110, 126, 124, 104, 113, 115, 127, 77, 149, 127, 124, 117, 121, 118, 124, 132, 141, 131, 110, 144, 145, 110, 127, 131, 133, 118, 146, 100, 143, 177, 122, 117, 123, 102, 118, 105, 122, 121, 147, 130, 112, 121, 137, 146, 118, 120, 125, 129, 122, 128, 125, 133, 118, 128, 125, 118, 139, 119, 132, 114, 125, 120, 108, 115, 130, 128, 111, 120, 111, 133, 120, 122, 104, 121, 119, 133, 124, 132, 128, 125, 118, 119, 125, 126, 136, 123, 122, 118, 126, 112, 122, 139, 122, 141, 144, 124, 130, 135, 125, 127, 122, 135, 118, 104, 121, 127, 129, 116, 122, 128, 120, 126, 127, 126, 126, 121, 115, 121, 123, 132, 104, 115, 119, 120, 132, 121, 123, 123, 125, 126, 149, 124, 125, 140, 138, 114, 131, 117, 126, 125, 122, 122, 124, 131, 112, 128, 136, 119, 118, 117, 129, 129, 134, 120, 128, 124, 121, 126, 123, 121, 131, 122, 120, 127, 135, 117, 119, 111, 123, 119, 132, 116, 134, 113, 132, 134, 133, 128, 116, 129, 126, 127, 124, 130, 125, 130, 133, 127, 118, 133, 116, 126, 115, 125, 137, 134, 120, 102, 123, 123, 125, 132, 125, 129, 129, 124, 124, 127, 131, 119, 123, 126, 142, 127, 126, 134, 125, 130, 124, 123, 121, 133, 118, 129, 120, 128, 120, 121, 122, 125, 111, 114, 132, 127, 127, 119, 127, 122, 124, 137, 126, 133, 114, 123, 123, 123, 112, 124, 111, 124, 137, 149, 125, 126, 148, 104, 125, 137, 148, 123, 125, 122, 129, 135, 129, 127, 127, 129, 120, 121, 129, 120, 125, 142, 122, 151, 130, 123, 121, 130, 117, 129, 130, 117, 115, 139, 127, 118, 126, 135, 118, 125, 132, 149, 119, 120, 124, 142, 124, 129, 118, 121, 124, 128, 124, 125, 141, 123, 119, 119, 124, 117, 142, 125, 121, 131, 123, 109, 129, 125, 129, 116, 113, 129, 112, 128, 134, 130, 116, 130, 119, 133, 116, 130, 123, 123, 122, 125, 121, 130, 125, 121, 126, 118, 133, 127, 138, 129, 124, 131, 128, 119, 105, 125, 109, 128, 125, 125, 122, 128, 122, 131, 118, 135, 120, 130, 120, 118, 121, 109, 124, 112, 124, 119, 126, 126, 119, 129, 121, 119, 125, 125, 120, 117, 136, 113, 127, 109, 128, 133, 121, 140, 125, 124, 127, 128, 129, 105, 119, 129, 125, 132, 119, 122, 121, 114, 134, 117, 101, 112, 128, 151, 132, 120, 128, 126, 122, 131, 138, 144, 129, 129, 123, 133, 114, 145, 86, 132, 121, 125, 126, 104, 128, 124, 132, 136, 123, 112, 126, 121, 124, 123, 119, 126, 133, 111, 120, 126, 124, 133, 127, 118, 125, 108, 131, 123, 123, 114, 117, 124, 126, 121, 124, 128, 122, 119, 112, 131, 129, 120, 129, 123, 129, 120, 126, 115, 112, 124, 129, 126, 127, 131, 118, 128, 128, 131, 124, 143, 116, 95, 158, 123, 120, 129, 133, 112, 111, 114, 130, 119, 133, 123, 138, 126, 119, 126, 119, 122, 118, 120, 132, 123, 112, 125, 123, 131, 123, 111, 131, 100, 120, 116, 123, 132, 132, 121, 125, 122, 129, 130, 111, 131, 126, 139, 137, 136, 125, 133, 123, 139, 121, 148, 117, 126, 127, 120, 124, 148, 136, 126, 131, 132, 130, 124, 125, 126, 121, 122, 129, 130, 124, 128, 129, 131, 118, 122, 131, 121, 120, 120, 120, 121, 128, 125, 127, 123, 118, 122, 135, 118, 119, 123, 121, 121, 120, 124, 113, 126, 126, 121, 120, 118, 127, 121, 123, 124, 131, 130, 125, 124, 127, 121, 126, 122, 126, 129, 117, 128, 117, 125, 128, 135, 128, 127, 118, 124, 126, 126, 121, 121, 127, 129, 121, 129, 122, 122, 129, 121, 122, 125, 120, 125, 129, 128, 120, 121, 124, 118, 124, 116, 125, 117, 120, 116, 125, 126, 123, 125, 120, 124, 117, 129, 123, 122, 121, 117, 126, 127, 123, 125, 121, 115, 135, 132, 111, 126, 129, 126, 131, 123, 118, 124, 122, 125, 120, 127, 112, 130, 120, 128, 126, 127, 108, 129, 118, 122, 124, 119, 123, 115, 122, 121, 127, 125, 119, 120, 120, 122, 125, 118, 135, 116, 115, 131, 119, 129, 121, 130, 128, 125, 118, 126, 124, 115, 129, 126, 122, 127, 125, 128, 125, 126, 130, 128, 119, 129, 120, 126, 130, 115, 122, 120, 126, 118, 132, 121, 118, 128, 135, 129, 131, 126, 125, 125, 123, 127, 136, 121, 138, 124, 121, 125, 123, 116, 130, 120, 126, 122, 127, 121, 132, 126, 123, 127, 126, 123, 121, 125, 124, 122, 122, 126, 130, 123, 125, 120, 127, 126, 120, 127, 122, 125, 131, 121, 118, 118, 129, 119, 125, 127, 124, 123, 124, 121, 120, 128, 117, 139, 127, 123, 124, 119, 120, 137, 126, 121, 122, 114, 122, 129, 99, 136, 111, 144, 124, 128, 100, 125, 124, 139, 117, 123, 123, 109, 123, 127, 122, 119, 129, 114, 126, 113, 120, 116, 122, 133, 104, 128, 109, 129, 125, 100, 114, 128, 115, 127, 124, 129, 116, 126, 135, 120, 123, 119, 142, 132, 103, 135, 125, 119, 116, 143, 119, 133, 110, 119, 148, 111, 135, 123, 151, 128, 129, 107, 92, 115, 99, 121, 123, 140, 126, 115, 106, 126, 140, 119, 129, 120, 137, 123, 114, 137, 114, 132, 130, 122, 128, 135, 122, 117, 143, 128, 127, 113, 131, 117, 102, 108, 142, 130, 114, 125, 118, 118, 136, 121, 119, 113, 120, 113, 116, 141, 108, 129, 121, 100, 130, 139, 110, 119, 122, 116, 137, 128, 112, 126, 140, 115, 122, 119, 138, 127, 117, 128, 113, 128, 144, 133, 120, 128, 122, 131, 142, 113, 128, 130, 123, 123, 128, 120, 127, 125, 130, 116, 106, 123, 119, 134, 105, 124, 132, 116, 133, 128, 124, 107, 122, 122, 123, 120, 113, 138, 123, 131, 126, 118, 116, 113, 119, 121, 123, 124, 102, 120, 105, 111, 92, 144, 120, 145, 117, 112, 128, 128, 126, 121, 142, 129, 125, 118, 128, 120, 124, 121, 126, 110, 129, 121, 114, 120, 129, 125, 130, 129, 122, 123, 130, 110, 152, 130, 134, 112, 144, 114, 132, 125, 143, 112, 125, 98, 119, 125, 131, 125, 129, 123, 128, 128, 147, 122, 135, 143, 136, 122, 133, 101, 141, 104, 124, 123, 123, 100, 133, 134, 130, 119, 130, 127, 125, 117, 122, 116, 135, 132, 127, 146, 117, 125, 130, 124, 95, 116, 123, 126, 127, 126, 125, 126, 120, 126, 125, 123, 121, 128, 120, 120, 127, 141, 116, 107, 115, 117, 109, 119, 131, 126, 130, 126, 116, 130, 131, 117, 137, 124, 133, 135, 115, 123, 124, 117, 122, 121, 134, 135, 132, 136, 114, 124, 129, 109, 125, 127, 131, 138, 118, 119, 124, 126, 126, 125, 132, 127, 127, 121, 126, 127, 117, 128, 128, 129, 129, 123, 121, 117, 120, 116, 136, 116, 115, 117, 132, 133, 132, 134, 118, 117, 115, 118, 124, 109, 125, 120, 117, 120, 121, 129, 100, 120, 124, 123, 128, 131, 132, 130, 122, 124, 113, 128, 107, 139, 123, 117, 116, 124, 124, 122, 118, 120, 129, 114, 123, 119, 120, 126, 120, 126, 110, 103, 122, 127, 131, 121, 141, 118, 141, 130, 126, 129, 134, 130, 130, 130, 114, 111, 125, 115, 129, 125, 127, 122, 125, 133, 128, 123, 124, 127, 118, 136, 112, 124, 135, 112, 118, 131, 122, 104, 129, 131, 127, 127, 130, 116, 131, 141, 130, 117, 130, 130, 124, 117, 130, 116, 121, 112, 132, 120, 122, 122, 121, 124, 124, 128, 127, 127, 114, 126, 133, 122, 110, 127, 120, 124, 119, 131, 112, 134, 124, 129, 127, 123, 122, 118, 115, 121, 131, 130, 120, 106, 124, 94, 131, 127, 124, 117, 121, 115, 135, 138, 136, 125, 119, 126, 116, 137, 135, 118, 142, 92, 122, 120, 124, 121, 122, 129, 120, 118, 123, 126, 130, 129, 118, 119, 120, 127, 126, 132, 131, 127, 126, 115, 131, 129, 113, 122, 128, 124, 141, 132, 124, 117, 124, 127, 114, 118, 120, 125, 120, 127, 136, 126, 120, 124, 124, 120, 106, 115, 127, 126, 126, 124, 136, 121, 122, 123, 125, 112, 127, 118, 127, 115, 126, 121, 131, 111, 130, 125, 125, 121, 132, 127, 126, 111, 157, 126, 119, 126, 128, 121, 130, 119, 126, 135, 123, 123, 117, 124, 129, 119, 127, 123, 122, 122, 128, 122, 130, 127, 123, 121, 124, 118, 124, 116, 120, 126, 129, 119, 127, 136, 123, 124, 123, 125, 116, 112, 136, 124, 126, 119, 142, 128, 131, 118, 134, 129, 137, 117, 128, 125, 134, 126, 128, 121, 121, 122, 115, 126, 133, 131, 127, 126, 123, 120, 114, 112, 112, 124, 121, 122, 122, 120, 142, 121, 120, 123, 121, 125, 125, 114, 119, 124, 125, 104, 135, 117, 124, 124, 123, 124, 124, 125, 133, 120, 115, 127, 116, 125, 124, 118, 125, 123, 134, 123, 120, 120, 127, 131, 129, 116, 123, 124, 121, 121, 119, 120, 123, 129, 122, 123, 130, 120, 133, 120, 131, 118, 118, 140, 118, 123, 135, 126, 126, 124, 129, 123, 125, 117, 127, 129, 122, 130, 128, 123, 119, 137, 129, 119, 128, 124, 122, 125, 125, 135, 123, 125, 129, 125, 156, 118, 127, 127, 124, 117, 135, 116, 132, 132, 122, 124, 120, 126, 115, 107, 133, 121, 134, 123, 123, 124, 125, 112, 122, 122, 117, 129, 129, 125, 119, 123, 126, 120, 111, 124, 121, 132, 120, 132, 125, 128, 128, 137, 123, 124, 119, 138, 125, 127, 118, 121, 128, 125, 124, 112, 129, 125, 124, 127, 120, 122, 123, 128, 113, 128, 124, 123, 130, 121, 130, 126, 124, 126, 157, 130, 127, 124, 121, 115, 132, 128, 122, 129, 121, 124, 123, 108, 120, 126, 107, 126, 120, 124, 105, 148, 118, 128, 129, 103, 139, 119, 147, 122, 122, 133, 124, 127, 119, 121, 97, 117, 123, 129, 125, 123, 139, 125, 124, 121, 124, 127, 123, 120, 114, 118, 140, 124, 120, 124, 126, 123, 109, 127, 125, 117, 125, 120, 117, 122, 119, 122, 147, 124, 129, 145, 121, 120, 127, 125, 121, 126, 124, 125, 118, 131, 125, 125, 125, 128, 119, 122, 113, 126, 126, 149, 119, 122, 133, 122, 119, 123, 140, 123, 123, 75, 123, 127, 128, 133, 118, 123, 127, 127, 120, 132, 161, 151, 111, 126, 125, 126, 123, 127, 126, 69, 124, 121, 125, 123, 122, 125, 116, 142, 142, 127, 118, 128, 123, 131, 121, 125, 120, 123, 124, 125, 129, 131, 119, 124, 129, 118, 132, 123, 125, 124, 100, 126, 128, 175, 108, 95, 123, 104, 123, 130, 125, 127, 96, 121, 120, 124, 110, 126, 127, 125, 145, 126, 121, 128, 130, 126, 125, 126, 127, 135, 120, 119, 75, 132, 129, 121, 130, 129, 128, 129, 120, 132, 130, 118, 124, 121, 121, 109, 119, 130, 121, 116, 127, 124, 126, 126, 117, 119, 117, 125, 115, 111, 121, 128, 128, 130, 127, 123, 121, 120, 120, 113, 123, 153, 130, 136, 127, 160, 120, 119, 129, 143, 126, 104, 121, 109, 122, 119, 130, 128, 125, 126, 129, 87, 133, 106, 101, 117, 130, 123, 114, 122, 127, 119, 127, 125, 126, 123, 133, 124, 114, 112, 107, 122, 140, 127, 128, 121, 102, 138, 139, 115, 114, 111, 100, 137, 123, 116, 121, 125, 128, 133, 128, 112, 125, 127, 119, 138, 128, 129, 117, 111, 121, 126, 127, 142, 133, 123, 110, 107, 116, 125, 155, 98, 146, 130, 113, 124, 106, 124, 116, 125, 124, 125, 118, 131, 123, 110, 119, 123, 117, 138, 130, 121, 122, 109, 115, 133, 115, 114, 135, 131, 132, 127, 158, 125, 130, 109, 141, 127, 124, 97, 126, 124, 118, 131, 124, 115, 108, 115, 161, 120, 115, 130, 120, 129, 136, 126, 119, 137, 131, 112, 130, 114, 141, 135, 118, 119, 128, 124, 133, 128, 116, 121, 126, 121, 116, 127, 117, 109, 125, 122, 119, 145, 126, 113, 133, 125, 118, 134, 124, 132, 126, 115, 139, 129, 113, 126, 126, 124, 147, 136, 130, 129, 121, 112, 132, 131, 119, 129, 128, 119, 123, 122, 130, 131, 119, 142, 128, 158, 128, 130, 116, 124, 128, 110, 131, 117, 121, 118, 135, 119, 122, 121, 134, 121, 109, 126, 130, 118, 109, 116, 126, 120, 110, 125, 144, 116, 122, 110, 105, 118, 144, 125, 125, 118, 128, 141, 116, 126, 126, 131, 124, 153, 124, 114, 144, 129, 122, 133, 114, 122, 137, 126, 133, 121, 134, 137, 121, 120, 131, 131, 114, 107, 135, 128, 133, 126, 98, 109, 136, 117, 130, 135, 112, 124, 108, 128, 141, 126, 124, 97, 128, 133, 146, 129, 108, 107, 145, 109, 120, 133, 135, 133, 130, 125, 123, 90, 125, 131, 121, 129, 100, 135, 110, 124, 119, 109, 116, 137, 135, 116, 137, 124, 127, 118, 121, 132, 123, 125, 135, 141, 124, 120, 114, 117, 109, 120, 133, 121, 125, 155, 118, 111, 131, 126, 125, 142, 120, 122, 138, 124, 146, 121, 129, 116, 125, 123, 127, 145, 125, 117, 110, 164, 122, 113, 137, 114, 120, 130, 122, 130, 132, 143, 137, 124, 123, 101, 127, 122, 118, 125, 132, 122, 122, 67, 125, 129, 132, 143, 115, 120, 128, 129, 120, 113, 124, 118, 138, 123, 120, 137, 105, 138, 122, 156, 115, 125, 125, 118, 110, 138, 114, 126, 126, 110, 127, 121, 103, 127, 127, 137, 138, 133, 141, 122, 117, 127, 149, 130, 127, 124, 88, 112, 123, 118, 134, 132, 125, 132, 117, 139, 123, 118, 120, 118, 137, 114, 117, 102, 123, 129, 123, 129, 119, 123, 141, 123, 122, 115, 118, 109, 139, 146, 117, 117, 135, 98, 133, 127, 123, 105, 123, 134, 125, 124, 129, 118, 123, 118, 120, 130, 122, 119, 140, 114, 129, 129, 119, 125, 127, 119, 118, 138, 131, 117, 148, 115, 133, 123, 128, 125, 134, 133, 116, 114, 122, 108, 127, 120, 127, 121, 110, 123, 116, 132, 121, 127, 114, 126, 126, 119, 121, 119, 129, 128, 131, 124, 119, 139, 129, 122, 118, 114, 127, 140, 127, 113, 128, 119, 118, 117, 134, 105, 120, 125, 128, 124, 133, 125, 115, 126, 120, 123, 122, 124, 123, 132, 125, 125, 128, 112, 124, 128, 126, 124, 131, 119, 117, 99, 147, 122, 126, 110, 123, 126, 123, 127, 115, 124, 125, 122, 123, 110, 131, 128, 141, 111, 129, 124, 119, 131, 144, 122, 121, 110, 123, 128, 139, 119, 123, 139, 122, 105, 102, 129, 104, 129, 112, 122, 128, 130, 130, 129, 123, 130, 132, 141, 124, 133, 115, 124, 131, 115, 125, 118, 135, 123, 125, 118, 133, 124, 127, 137, 125, 128, 125, 123, 135, 131, 132, 126, 122, 134, 105, 124, 126, 126, 118, 129, 126, 123, 129, 134, 121, 113, 134, 127, 100, 128, 120, 133, 123, 123, 126, 130, 115, 129, 121, 113, 117, 128, 131, 116, 122, 125, 122, 138, 121, 125, 121, 121, 75, 126, 122, 136, 132, 124, 139, 118, 131, 134, 114, 131, 163, 134, 133, 127, 128, 130, 126, 131, 132, 130, 126, 128, 125, 130, 129, 124, 133, 121, 116, 102, 104, 131, 128, 91, 121, 123, 115, 124, 122, 121, 137, 117, 135, 127, 118, 130, 120, 125, 117, 118, 121, 128, 119, 133, 131, 126, 132, 190, 117, 121, 125, 128, 125, 117, 132, 131, 119, 122, 130, 110, 128, 125, 126, 122, 126, 108, 125, 119, 129, 122, 123, 131, 112, 130, 118, 113, 129, 139, 126, 125, 125, 111, 123, 121, 121, 123, 127, 116, 124, 116, 127, 136, 140, 123, 135, 122, 117, 117, 124, 120, 129, 128, 106, 129, 130, 123, 120, 123, 115, 126, 145, 106, 129, 127, 122, 129, 118, 130, 124, 115, 132, 119, 132, 123, 122, 127, 104, 122, 139, 108, 129, 120, 122, 117, 124, 119, 114, 128, 126, 128, 116, 125, 127, 125, 121, 120, 125, 170, 126, 122, 99, 128, 134, 114, 120, 133, 131, 124, 129, 117, 121, 124, 121, 119, 86, 130, 125, 127, 124, 112, 143, 116, 115, 138, 119, 123, 128, 117, 113, 115, 122, 121, 139, 119, 122, 124, 118, 114, 129, 124, 115, 121, 114, 122, 151, 123, 126, 126, 116, 130, 161, 122, 124, 126, 125, 139, 128, 111, 124, 125, 125, 106, 111, 125, 98, 121, 128, 124, 123, 117, 127, 124, 93, 126, 131, 133, 118, 113, 121, 123, 124, 122, 127, 123, 145, 124, 120, 123, 124, 126, 122, 125, 120, 130, 114, 129, 122, 120, 122, 127, 117, 121, 133, 98, 124, 114, 122, 139, 124, 117, 125, 113, 107, 113, 120, 124, 117, 122, 127, 126, 122, 130, 128, 126, 125, 125, 130, 115, 125, 124, 127, 126, 126, 127, 122, 135, 123, 113, 124, 123, 123, 126, 121, 130, 123, 121, 129, 119, 158, 125, 122, 122, 126, 119, 122, 116, 131, 125, 146, 110, 120, 117, 130, 121, 125, 127, 84, 123, 154, 154, 129, 133, 108, 125, 131, 111, 113, 114, 125, 118, 96, 120, 115, 121, 129, 118, 128, 127, 125, 131, 123, 131, 132, 133, 117, 125, 135, 96, 138, 132, 127, 118, 128, 110, 128, 133, 135, 105, 121, 113, 106, 113, 131, 113, 137, 138, 120, 127, 137, 136, 114, 128, 133, 128, 126, 130, 134, 131, 131, 118, 133, 121, 115, 131, 115, 120, 117, 118, 111, 130, 120, 142, 123, 121, 115, 119, 129, 99, 118, 123, 113, 164, 126, 117, 139, 135, 126, 127, 123, 124, 116, 128, 121, 132, 126, 130, 122, 129, 126, 148, 124, 102, 125, 121, 140, 125, 169, 140, 125, 115, 127, 128, 130, 130, 128, 132, 131, 118, 125, 108, 119, 92, 124, 137, 125, 134, 117, 129, 126, 165, 128, 128, 138, 126, 128, 120, 124, 124, 125, 140, 141, 126, 130, 127, 130, 127, 122, 123, 133, 103, 133, 131, 125, 169, 124, 128, 149, 135, 128, 144, 128, 114, 113, 170, 119, 126, 121, 125, 141, 132, 121, 135, 122, 119, 118, 123, 129, 126, 126, 127, 106, 135, 135, 133, 130, 91, 69, 123, 135, 130, 120, 141, 141, 139, 119, 123, 125, 127, 126, 146, 114, 130, 123, 86, 116, 112, 126, 118, 174, 120, 119, 121, 136, 133, 127, 136, 125, 128, 128, 118, 127, 100, 121, 121, 130, 107, 125, 131, 129, 114, 141, 114, 121, 130, 122, 128, 124, 129, 131, 74, 131, 133, 129, 127, 124, 119, 128, 124, 129, 113, 129, 148, 129, 120, 117, 126, 120, 139, 123, 137, 124, 132, 118, 128, 137, 121, 124, 119, 122, 140, 124, 112, 122, 111, 119, 122, 126, 116, 141, 135, 114, 148, 120, 122, 127, 120, 134, 129, 106, 123, 119, 133, 115, 120, 125, 113, 126, 125, 131, 119, 117, 146, 136, 129, 127, 122, 130, 118, 126, 124, 125, 126, 122, 125, 114, 122, 138, 125, 124, 146, 131, 139, 122, 129, 127, 127, 116, 132, 122, 133, 129, 121, 129, 117, 125, 121, 125, 132, 125, 133, 122, 126, 138, 121, 119, 120, 123, 141, 141, 122, 122, 121, 116, 126, 151, 120, 119, 126, 126, 135, 130, 130, 131, 131, 116, 132, 133, 121, 116, 136, 120, 133, 126, 147, 126, 115, 119, 128, 115, 124, 112, 127, 131, 122, 117, 113, 118, 140, 111, 104, 141, 116, 127, 119, 128, 129, 127, 125, 141, 117, 153, 125, 121, 127, 132, 134, 135, 114, 126, 115, 124, 124, 115, 129, 119, 123, 121, 119, 120, 116, 128, 128, 130, 121, 123, 142, 120, 126, 119, 125, 124, 122, 130, 110, 132, 135, 122, 117, 123, 127, 125, 136, 129, 121, 131, 119, 126, 129, 127, 131, 124, 113, 126, 120, 123, 121, 113, 123, 128, 125, 149, 125, 147, 135, 123, 123, 119, 125, 120, 129, 124, 127, 116, 127, 123, 142, 138, 128, 126, 120, 131, 126, 123, 127, 114, 124, 120, 147, 130, 113, 125, 122, 133, 130, 124, 126, 143, 130, 119, 130, 139, 121, 127, 129, 131, 140, 146, 131, 146, 120, 140, 123, 103, 68, 124, 71, 115, 91, 124, 109, 124, 122, 130, 113, 132, 119, 123, 131, 103, 128, 131, 125, 122, 112, 99, 131, 141, 118, 133, 139, 117, 136, 117, 112, 144, 133, 150, 110, 170, 113, 120, 134, 116, 118, 95, 160, 126, 112, 130, 131, 130, 108, 129, 126, 96, 90, 129, 114, 123, 100, 131, 128, 115, 132, 108, 114, 123, 116, 103, 118, 135, 119, 148, 121, 132, 117, 123, 147, 128, 135, 150, 114, 124, 117, 114, 109, 136, 127, 115, 137, 98, 154, 124, 123, 118, 113, 156, 87, 135, 137, 114, 125, 131, 121, 137, 118, 106, 107, 140, 126, 150, 125, 123, 108, 137, 115, 125, 95, 115, 120, 108, 115, 127, 112, 121, 135, 115, 114, 108, 100, 119, 139, 137, 65, 140, 117, 128, 152, 98, 155, 96, 112, 121, 128, 105, 106, 107, 127, 121, 110, 103, 114, 145, 132, 154, 124, 102, 121, 116, 153, 113, 132, 133, 114, 123, 109, 98, 112, 127, 117, 122, 117, 104, 135, 116, 133, 110, 134, 86, 113, 129, 126, 137, 138, 124, 134, 114, 127, 126, 95, 125, 125, 128, 81, 143, 138, 136, 103, 129, 94, 135, 119, 112, 156, 143, 100, 60, 118, 75, 129, 122, 116, 119, 121, 115, 136, 125, 121, 128, 121, 129, 98, 95, 120, 123, 102, 86, 119, 118, 130, 126, 130, 128, 116, 108, 122, 143, 103, 127, 94, 131, 128, 114, 143, 122, 126, 123, 122, 117, 125, 126, 123, 131, 138, 93, 99, 138, 127, 129, 124, 121, 123, 120, 122, 127, 121, 119, 124, 124, 129, 116, 121, 125, 127, 121, 124, 122, 126, 125, 122, 123, 121, 118, 125, 126, 126, 120, 130, 116, 118, 125, 125, 127, 126, 123, 121, 124, 127, 126, 123, 118, 129, 123, 125, 122, 123, 133, 125, 129, 125, 125, 124, 120, 125, 124, 121, 122, 128, 124, 126, 122, 124, 120, 127, 122, 122, 129, 127, 124, 129, 122, 121, 127, 120, 131, 129, 119, 121, 126, 126, 123, 125, 129, 126, 120, 120, 127, 129, 127, 122, 126, 124, 122, 124, 126, 127, 120, 129, 123, 117, 120, 127, 119, 130, 123, 121, 126, 123, 128, 126, 116, 127, 126, 121, 123, 125, 123, 124, 123, 126, 126, 125, 121, 125, 122, 122, 122, 128, 114, 122, 120, 122, 116, 120, 125, 126, 125, 121, 124, 128, 123, 124, 129, 122, 122, 125, 125, 121, 116, 133, 129, 127, 123, 126, 121, 126, 124, 122, 119, 125, 131, 128, 122, 122, 124, 129, 123, 121, 124, 125, 119, 121, 121, 126, 120, 120, 123, 131, 121, 122, 128, 125, 124, 127, 127, 127, 120, 124, 124, 121, 127, 127, 126, 120, 125, 126, 124, 125, 122, 125, 125, 125, 119, 124, 121, 122, 127, 125, 121, 121, 126, 125, 120, 127, 125, 117, 125, 120, 127, 127, 131, 128, 118, 126, 118, 133, 122, 126, 128, 122, 124, 122, 121, 120, 127, 128, 125, 129, 119, 125, 127, 127, 125, 124, 126, 126, 124, 123, 127, 129, 122, 119, 118, 122, 121, 119, 125, 117, 116, 120, 130, 125, 114, 106, 126, 119, 120, 100, 125, 126, 120, 119, 126, 119, 128, 116, 129, 144, 120, 111, 115, 124, 121, 124, 132, 120, 113, 128, 119, 135, 127, 133, 113, 130, 128, 126, 114, 127, 112, 122, 113, 106, 124, 120, 119, 129, 114, 121, 124, 116, 112, 128, 107, 123, 117, 121, 137, 123, 149, 129, 121, 120, 126, 155, 120, 133, 108, 125, 123, 128, 121, 126, 127, 122, 118, 121, 126, 103, 126, 125, 123, 125, 129, 129, 124, 124, 97, 119, 132, 122, 123, 126, 121, 123, 95, 131, 131, 133, 126, 125, 116, 123, 122, 127, 133, 119, 126, 134, 120, 115, 131, 123, 113, 116, 129, 134, 122, 131, 133, 122, 146, 118, 135, 124, 126, 130, 131, 117, 125, 124, 130, 129, 126, 120, 126, 121, 123, 116, 123, 123, 127, 113, 108, 123, 153, 119, 120, 121, 121, 126, 125, 122, 125, 122, 127, 122, 145, 131, 114, 120, 122, 123, 121, 109, 129, 132, 126, 122, 130, 123, 126, 118, 134, 111, 117, 126, 123, 134, 121, 126, 119, 121, 146, 122, 131, 122, 133, 119, 128, 114, 128, 122, 142, 124, 121, 129, 120, 118, 126, 127, 117, 123, 136, 125, 125, 121, 126, 126, 124, 118, 143, 121, 125, 139, 129, 119, 121, 102, 136, 123, 128, 115, 129, 130, 125, 133, 113, 123, 110, 125, 111, 129, 129, 124, 116, 117, 119, 118, 64, 131, 94, 121, 135, 117, 124, 125, 133, 122, 101, 132, 117, 104, 130, 106, 122, 111, 127, 118, 131, 105, 125, 108, 129, 124, 114, 132, 119, 130, 129, 120, 113, 124, 119, 132, 128, 133, 103, 136, 133, 129, 103, 113, 111, 129, 108, 108, 123, 101, 161, 115, 119, 134, 105, 133, 119, 131, 137, 112, 153, 144, 161, 143, 114, 132, 130, 104, 108, 126, 151, 109, 128, 119, 126, 124, 132, 128, 126, 113, 113, 126, 132, 119, 124, 126, 110, 128, 134, 124, 139, 132, 113, 103, 123, 117, 142, 160, 124, 106, 122, 130, 126, 103, 121, 110, 121, 118, 128, 116, 128, 145, 126, 100, 117, 113, 101, 109, 118, 128, 130, 106, 109, 105, 102, 112, 129, 127, 123, 125, 124, 116, 137, 135, 112, 117, 151, 127, 121, 116, 123, 122, 128, 103, 121, 123, 105, 122, 124, 127, 141, 148, 143, 115, 94, 96, 129, 120, 111, 141, 117, 110, 122, 123, 134, 86, 132, 118, 110, 123, 121, 126, 115, 126, 116, 135, 122, 129, 115, 107, 113, 116, 128, 149, 128, 123, 114, 124, 122, 120, 120, 123, 88, 113, 109, 152, 142, 115, 127, 116, 123, 129, 139, 111, 129, 119, 121, 127, 135, 118, 115, 124, 108, 107, 135, 115, 128, 136, 130, 115, 127, 120, 124, 135, 114, 121, 126, 133, 127, 124, 136, 134, 123, 101, 124, 110, 132, 134, 138, 135, 119, 144, 112, 126, 121, 123, 120, 119, 142, 130, 137, 132, 120, 116, 132, 126, 116, 111, 117, 129, 118, 95, 130, 125, 133, 94, 125, 119, 117, 137, 137, 119, 141, 140, 116, 144, 136, 121, 130, 135, 119, 123, 114, 124, 137, 127, 129, 115, 122, 118, 113, 131, 124, 117, 124, 115, 133, 128, 134, 118, 128, 101, 138, 132, 142, 121, 113, 125, 113, 114, 133, 136, 128, 119, 121, 128, 91, 110, 131, 130, 136, 149, 135, 133, 123, 121, 119, 115, 125, 106, 117, 139, 123, 132, 124, 105, 114, 132, 130, 120, 123, 118, 112, 128, 117, 119, 121, 125, 120, 116, 127, 118, 127, 142, 120, 136, 116, 126, 145, 136, 125, 129, 118, 130, 141, 131, 112, 116, 122, 126, 127, 120, 128, 129, 126, 115, 113, 118, 121, 113, 133, 142, 122, 134, 118, 143, 120, 120, 133, 122, 118, 119, 124, 127, 132, 129, 125, 117, 125, 117, 121, 119, 133, 141, 118, 132, 110, 107, 117, 128, 123, 131, 122, 127, 111, 113, 123, 117, 131, 128, 125, 127, 132, 109, 107, 128, 121, 149, 122, 127, 125, 124, 124, 133, 113, 116, 129, 114, 128, 132, 118, 125, 127, 128, 122, 123, 122, 127, 123, 133, 141, 122, 120, 122, 121, 118, 129, 119, 117, 120, 131, 120, 124, 129, 121, 130, 122, 150, 128, 118, 131, 137, 140, 120, 139, 113, 124, 130, 130, 114, 120, 131, 130, 144, 120, 146, 145, 120, 122, 127, 120, 115, 130, 119, 137, 120, 126, 113, 122, 119, 123, 123, 136, 139, 112, 120, 112, 120, 117, 116, 130, 132, 125, 123, 125, 110, 120, 110, 140, 125, 124, 112, 122, 124, 119, 117, 129, 115, 120, 124, 123, 127, 127, 116, 121, 132, 114, 131, 126, 131, 126, 136, 119, 116, 145, 149, 129, 117, 137, 138, 139, 93, 106, 128, 122, 118, 120, 124, 121, 145, 118, 125, 119, 122, 114, 122, 136, 131, 93, 131, 132, 117, 142, 132, 147, 125, 115, 121, 130, 122, 128, 121, 141, 123, 130, 119, 128, 120, 133, 110, 120, 122, 129, 136, 118, 136, 124, 146, 126, 120, 120, 113, 127, 129, 126, 106, 123, 121, 117, 132, 117, 121, 121, 109, 122, 116, 116, 120, 113, 128, 126, 120, 110, 118, 111, 139, 129, 84, 122, 121, 130, 120, 129, 128, 120, 127, 118, 114, 136, 112, 115, 126, 120, 121, 128, 113, 116, 118, 140, 109, 122, 138, 107, 113, 123, 128, 122, 125, 130, 129, 115, 115, 129, 129, 134, 132, 128, 120, 132, 123, 125, 118, 118, 105, 118, 119, 126, 114, 125, 122, 118, 123, 123, 124, 130, 103, 123, 144, 130, 122, 125, 136, 124, 134, 126, 113, 126, 117, 114, 117, 163, 120, 114, 116, 113, 126, 120, 140, 132, 126, 129, 123, 118, 155, 124, 125, 121, 113, 130, 110, 169, 131, 122, 141, 126, 119, 139, 139, 120, 163, 123, 120, 118, 126, 128, 119, 114, 121, 127, 120, 102, 120, 121, 133, 125, 116, 114, 133, 117, 123, 127, 124, 125, 115, 116, 134, 119, 131, 137, 123, 124, 119, 127, 124, 133, 126, 135, 134, 115, 134, 126, 125, 125, 114, 133, 129, 141, 135, 116, 112, 116, 117, 134, 126, 126, 125, 137, 124, 126, 122, 123, 132, 125, 129, 135, 122, 117, 128, 136, 119, 127, 120, 132, 122, 122, 123, 122, 115, 131, 126, 117, 125, 125, 114, 117, 132, 124, 132, 121, 124, 124, 104, 124, 129, 137, 120, 123, 121, 135, 142, 118, 137, 129, 118, 65, 127, 129, 115, 128, 103, 133, 111, 126, 128, 124, 121, 130, 127, 127, 121, 146, 131, 119, 125, 125, 97, 128, 124, 122, 175, 124, 124, 72, 118, 124, 121, 125, 121, 128, 127, 141, 127, 115, 123, 124, 117, 125, 128, 118, 130, 122, 135, 129, 131, 129, 113, 107, 124, 118, 118, 125, 123, 117, 117, 125, 127, 129, 125, 127, 126, 143, 126, 110, 122, 118, 83, 118, 126, 128, 127, 117, 114, 136, 123, 119, 130, 117, 128, 125, 119, 117, 136, 141, 125, 126, 52, 127, 119, 126, 100, 128, 123, 102, 127, 132, 177, 133, 133, 117, 113, 135, 136, 120, 123, 124, 119, 72, 103, 140, 121, 126, 125, 137, 121, 128, 203, 122, 119, 125, 123, 132, 132, 116, 136, 88, 131, 118, 120, 119, 113, 114, 127, 116, 129, 125, 123, 116, 95, 122, 126, 128, 118, 127, 120, 108, 129, 147, 129, 122, 125, 95, 122, 125, 179, 125, 132, 124, 129, 131, 123, 122, 117, 104, 126, 132, 124, 150, 115, 117, 122, 129, 118, 127, 124, 125, 123, 128, 127, 161, 115, 129, 125, 121, 123, 129, 122, 130, 121, 123, 125, 126, 127, 118, 129, 122, 121, 115, 132, 117, 128, 129, 125, 117, 122, 116, 120, 124, 113, 128, 125, 120, 132, 157, 126, 124, 117, 126, 133, 108, 115, 134, 118, 117, 124, 130, 116, 128, 136, 112, 115, 124, 142, 101, 138, 161, 131, 125, 126, 106, 119, 110, 123, 121, 123, 133, 112, 132, 115, 139, 129, 122, 121, 138, 115, 128, 112, 120, 120, 130, 113, 121, 146, 123, 113, 141, 127, 124, 124, 107, 119, 105, 120, 118, 126, 138, 128, 124, 137, 130, 121, 109, 119, 116, 115, 134, 107, 122, 113, 127, 117, 128, 121, 121, 113, 120, 110, 120, 138, 138, 129, 135, 135, 134, 112, 122, 133, 128, 129, 131, 140, 131, 116, 116, 117, 124, 134, 129, 125, 115, 130, 157, 126, 124, 114, 136, 119, 137, 115, 120, 124, 121, 132, 159, 137, 118, 124, 136, 127, 134, 143, 123, 121, 124, 146, 112, 123, 122, 111, 124, 109, 121, 122, 132, 111, 143, 136, 121, 122, 117, 118, 121, 120, 117, 114, 123, 129, 131, 114, 143, 108, 144, 117, 125, 150, 130, 112, 137, 135, 112, 114, 123, 135, 117, 130, 121, 127, 122, 144, 119, 117, 119, 131, 132, 141, 117, 127, 112, 132, 123, 107, 131, 154, 122, 119, 116, 120, 134, 115, 122, 135, 115, 116, 146, 122, 116, 135, 140, 126, 121, 128, 131, 129, 123, 122, 126, 145, 109, 119, 135, 124, 122, 143, 114, 118, 133, 130, 126, 129, 117, 121, 125, 124, 124, 119, 135, 112, 121, 125, 123, 156, 128, 122, 123, 118, 118, 131, 123, 161, 123, 136, 129, 120, 117, 116, 107, 133, 122, 126, 128, 123, 115, 132, 126, 124, 110, 133, 127, 123, 116, 135, 129, 111, 122, 105, 119, 111, 124, 118, 127, 116, 119, 126, 119, 129, 115, 125, 124, 114, 112, 128, 128, 117, 111, 117, 126, 117, 122, 123, 113, 114, 120, 131, 125, 132, 129, 122, 113, 124, 144, 119, 129, 122, 122, 116, 123, 125, 129, 119, 118, 144, 129, 125, 124, 113, 115, 127, 100, 127, 134, 121, 114, 129, 125, 130, 119, 137, 117, 122, 118, 119, 126, 129, 115, 124, 158, 129, 114, 124, 125, 117, 119, 117, 117, 91, 128, 128, 126, 126, 122, 123, 120, 152, 132, 124, 103, 128, 117, 126, 127, 127, 128, 119, 114, 123, 139, 120, 120, 121, 123, 128, 122, 135, 128, 133, 119, 119, 119, 121, 124, 128, 114, 128, 128, 120, 115, 112, 121, 124, 135, 119, 121, 143, 123, 121, 122, 113, 110, 132, 123, 123, 118, 116, 126, 129, 104, 126, 102, 121, 123, 127, 124, 116, 116, 118, 130, 93, 123, 128, 130, 128, 129, 138, 132, 122, 142, 119, 115, 128, 125, 121, 133, 105, 119, 116, 117, 128, 139, 134, 125, 139, 119, 116, 119, 123, 125, 119, 113, 121, 131, 131, 107, 122, 115, 121, 123, 122, 118, 84, 114, 121, 137, 127, 147, 120, 135, 119, 127, 97, 116, 126, 120, 141, 129, 110, 121, 128, 127, 121, 115, 116, 112, 126, 122, 120, 123, 111, 129, 116, 122, 118, 129, 122, 122, 135, 124, 130, 122, 140, 123, 110, 128, 125, 121, 125, 125, 113, 126, 117, 128, 122, 122, 112, 132, 138, 145, 150, 149, 125, 135, 134, 126, 126, 126, 127, 130, 121, 130, 117, 129, 125, 105, 122, 125, 122, 132, 117, 115, 118, 135, 123, 113, 123, 128, 122, 131, 128, 140, 125, 119, 127, 98, 126, 116, 135, 124, 123, 131, 105, 128, 122, 131, 115, 119, 126, 114, 124, 134, 126, 120, 121, 123, 134, 116, 113, 108, 131, 110, 132, 130, 126, 121, 122, 130, 117, 130, 121, 118, 118, 130, 132, 116, 142, 126, 112, 152, 113, 130, 115, 113, 123, 121, 120, 115, 110, 110, 115, 122, 123, 125, 119, 131, 112, 119, 130, 118, 123, 119, 119, 134, 130, 125, 135, 103, 127, 115, 127, 119, 115, 125, 140, 125, 109, 122, 123, 128, 115, 110, 120, 140, 123, 120, 124, 122, 121, 123, 116, 125, 129, 108, 129, 132, 120, 123, 138, 121, 118, 124, 121, 106, 125, 127, 119, 118, 126, 115, 106, 117, 145, 116, 126, 122, 109, 127, 126, 120, 116, 113, 85, 126, 118, 130, 136, 98, 123, 127, 120, 90, 102, 123, 117, 127, 112, 127, 116, 125, 130, 126, 125, 120, 116, 142, 123, 129, 121, 115, 132, 123, 126, 124, 134, 127, 97, 126, 130, 126, 124, 126, 114, 119, 119, 128, 124, 95, 130, 119, 117, 122, 117, 125, 159, 135, 119, 126, 101, 134, 128, 102, 120, 128, 112, 107, 118, 103, 122, 138, 124, 93, 141, 117, 145, 124, 126, 119, 125, 118, 114, 117, 123, 125, 122, 135, 122, 135, 115, 122, 125, 133, 122, 118, 122, 120, 124, 121, 136, 123, 116, 123, 132, 116, 137, 136, 135, 113, 117, 115, 112, 127, 136, 130, 139, 112, 121, 120, 136, 120, 137, 133, 129, 131, 129, 126, 128, 128, 119, 126, 123, 118, 122, 110, 132, 122, 135, 126, 121, 138, 124, 133, 120, 126, 134, 135, 135, 121, 133, 125, 114, 131, 127, 105, 124, 123, 119, 137, 124, 112, 136, 126, 124, 129, 138, 129, 123, 130, 113, 120, 115, 141, 132, 139, 132, 127, 127, 116, 120, 132, 100, 128, 130, 118, 124, 115, 131, 124, 123, 126, 124, 139, 128, 130, 101, 119, 130, 116, 120, 111, 134, 152, 121, 123, 131, 122, 119, 122, 116, 118, 127, 131, 139, 129, 127, 125, 122, 125, 109, 118, 130, 126, 119, 122, 115, 128, 128, 130, 125, 126, 126, 122, 124, 100, 145, 120, 127, 131, 115, 125, 115, 104, 120, 103, 126, 120, 124, 123, 116, 123, 145, 117, 123, 126, 129, 129, 135, 121, 120, 117, 113, 116, 127, 126, 117, 129, 148, 122, 141, 122, 125, 107, 132, 121, 130, 134, 122, 111, 130, 136, 112, 126, 128, 189, 121, 124, 129, 117, 123, 117, 122, 131, 129, 121, 144, 122, 124, 136, 113, 136, 126, 124, 125, 122, 94, 116, 136, 126, 122, 131, 119, 124, 106, 122, 125, 127, 122, 125, 126, 127, 121, 119, 140, 117, 125, 127, 135, 125, 129, 125, 123, 123, 119, 97, 129, 128, 115, 123, 132, 128, 185, 128, 120, 126, 117, 119, 131, 118, 96, 94, 118, 122, 130, 106, 131, 123, 130, 134, 117, 122, 113, 124, 126, 102, 119, 124, 127, 117, 125, 132, 126, 103, 123, 122, 121, 137, 118, 110, 129, 128, 122, 135, 118, 135, 123, 134, 128, 115, 128, 98, 119, 127, 124, 123, 110, 126, 110, 129, 151, 123, 122, 120, 126, 129, 126, 123, 124, 123, 124, 125, 127, 144, 117, 120, 119, 120, 117, 127, 124, 114, 115, 122, 127, 124, 124, 160, 127, 123, 119, 124, 105, 143, 122, 113, 119, 131, 117, 119, 134, 101, 128, 111, 122, 112, 126, 128, 123, 122, 123, 142, 129, 129, 124, 108, 129, 106, 127, 127, 123, 115, 120, 127, 117, 120, 121, 130, 151, 131, 120, 125, 128, 127, 115, 126, 120, 113, 126, 122, 120, 131, 127, 126, 129, 114, 121, 154, 126, 116, 117, 135, 135, 124, 124, 120, 134, 122, 129, 128, 114, 125, 125, 128, 116, 125, 110, 119, 125, 126, 127, 122, 132, 119, 117, 126, 114, 121, 122, 118, 125, 113, 125, 115, 119, 142, 115, 129, 109, 119, 121, 126, 110, 130, 117, 121, 125, 118, 126, 128, 127, 129, 125, 127, 126, 125, 100, 129, 126, 124, 103, 137, 120, 124, 124, 122, 153, 127, 124, 110, 122, 120, 125, 136, 127, 123, 134, 124, 129, 122, 135, 122, 124, 116, 122, 96, 123, 128, 125, 118, 118, 108, 89, 131, 129, 74, 108, 119, 100, 122, 118, 119, 122, 116, 118, 122, 127, 140, 122, 128, 146, 117, 118, 134, 130, 158, 125, 123, 115, 127, 104, 128, 126, 116, 133, 126, 132, 118, 127, 121, 126, 118, 140, 117, 99, 112, 169, 112, 143, 123, 124, 129, 148, 141, 121, 117, 124, 128, 139, 109, 140, 138, 132, 114, 116, 123, 125, 118, 115, 132, 113, 113, 125, 142, 131, 119, 122, 134, 136, 123, 151, 117, 131, 105, 116, 128, 119, 140, 147, 123, 119, 121, 120, 112, 118, 117, 91, 116, 147, 122, 131, 127, 130, 127, 117, 98, 127, 129, 114, 151, 115, 130, 108, 107, 145, 109, 117, 125, 112, 123, 160, 121, 112, 119, 117, 152, 124, 137, 130, 129, 110, 124, 121, 115, 129, 132, 154, 118, 124, 131, 123, 147, 107, 115, 130, 136, 115, 149, 124, 111, 124, 118, 108, 128, 119, 137, 130, 135, 125, 122, 149, 120, 113, 122, 124, 115, 126, 120, 113, 120, 118, 123, 119, 132, 108, 112, 120, 117, 131, 115, 121, 121, 117, 116, 116, 88, 139, 131, 142, 88, 143, 121, 139, 131, 119, 104, 112, 119, 131, 124, 132, 113, 143, 119, 119, 108, 109, 119, 134, 143, 116, 80, 133, 115, 119, 130, 136, 115, 125, 115, 104, 125, 117, 144, 119, 131, 131, 118, 135, 125, 125, 110, 125, 108, 121, 127, 131, 114, 122, 133, 133, 123, 112, 116, 117, 116, 134, 122, 122, 125, 147, 120, 119, 144, 127, 133, 128, 116, 110, 131, 126, 96, 122, 113, 126, 113, 118, 138, 129, 122, 121, 118, 123, 119, 124, 121, 117, 118, 138, 123, 118, 124, 122, 110, 142, 115, 125, 112, 123, 111, 114, 120, 112, 124, 134, 108, 101, 146, 116, 115, 123, 115, 127, 117, 140, 121, 116, 124, 113, 122, 120, 113, 133, 123, 118, 125, 124, 113, 114, 120, 115, 124, 116, 124, 105, 118, 115, 118, 138, 125, 125, 123, 114, 114, 110, 116, 128, 116, 132, 122, 126, 124, 129, 111, 122, 129, 128, 109, 130, 128, 120, 121, 121, 121, 121, 123, 123, 113, 126, 124, 128, 123, 127, 111, 119, 129, 119, 142, 118, 122, 124, 127, 122, 113, 137, 117, 129, 121, 130, 114, 118, 123, 121, 138, 123, 124, 127, 127, 122, 138, 117, 100, 159, 119, 129, 120, 117, 120, 115, 126, 109, 118, 118, 134, 115, 118, 128, 112, 117, 132, 123, 117, 126, 128, 127, 103, 121, 140, 148, 134, 132, 129, 118, 113, 134, 116, 125, 113, 129, 118, 122, 137, 133, 132, 123, 129, 116, 113, 116, 118, 107, 127, 123, 118, 122, 119, 100, 119, 125, 131, 132, 136, 130, 120, 109, 125, 130, 118, 137, 120, 127, 117, 114, 120, 104, 125, 126, 119, 126, 134, 116, 132, 121, 111, 111, 135, 129, 125, 124, 149, 121, 128, 134, 136, 122, 132, 132, 153, 131, 117, 123, 103, 105, 126, 98, 127, 123, 125, 124, 121, 128, 130, 126, 135, 130, 124, 121, 123, 132, 120, 131, 127, 95, 126, 121, 125, 125, 129, 123, 124, 122, 110, 129, 127, 124, 124, 122, 123, 125, 120, 123, 126, 126, 127, 124, 126, 127, 125, 127, 124, 126, 128, 128, 124, 126, 126, 125, 123, 128, 118, 122, 128, 125, 123, 126, 126, 129, 122, 125, 121, 127, 126, 124, 139, 120, 133, 126, 123, 126, 156, 127, 124, 123, 123, 134, 124, 124, 125, 124, 121, 124, 121, 120, 127, 123, 160, 124, 126, 122, 119, 125, 127, 124, 124, 91, 125, 125, 164, 121, 120, 130, 126, 124, 123, 122, 128, 126, 124, 133, 127, 123, 122, 129, 121, 123, 125, 121, 120, 124, 117, 125, 134, 127, 126, 121, 126, 120, 128, 126, 123, 122, 119, 127, 122, 124, 124, 121, 128, 124, 127, 137, 124, 126, 123, 124, 123, 117, 118, 120, 123, 123, 125, 125, 124, 122, 126, 122, 124, 128, 125, 171, 130, 125, 123, 122, 126, 128, 111, 129, 116, 98, 129, 121, 122, 122, 129, 123, 127, 126, 123, 128, 147, 124, 133, 124, 124, 126, 122, 122, 127, 84, 122, 120, 119, 123, 125, 115, 135, 128, 115, 121, 125, 122, 123, 121, 121, 116, 131, 124, 123, 126, 127, 129, 125, 123, 122, 125, 125, 116, 126, 126, 140, 119, 128, 117, 128, 125, 124, 99, 123, 127, 126, 122, 122, 123, 128, 124, 164, 126, 126, 125, 133, 127, 127, 125, 125, 123, 121, 119, 124, 121, 122, 122, 114, 131, 125, 125, 124, 122, 126, 126, 125, 122, 126, 120, 128, 126, 123, 123, 126, 122, 115, 122, 127, 127, 120, 110, 132, 123, 117, 129, 127, 127, 121, 121, 124, 126, 115, 125, 126, 118, 131, 117, 126, 124, 126, 118, 127, 115, 123, 127, 121, 107, 136, 117, 124, 117, 124, 122, 123, 138, 125, 117, 112, 127, 127, 127, 125, 114, 128, 119, 141, 127, 128, 125, 129, 132, 119, 121, 130, 118, 126, 126, 116, 113, 117, 129, 113, 123, 110, 146, 126, 62, 114, 123, 122, 129, 126, 121, 137, 128, 123, 111, 115, 116, 132, 126, 127, 127, 125, 83, 123, 132, 116, 118, 134, 130, 123, 125, 128, 121, 124, 121, 147, 130, 128, 124, 125, 196, 119, 131, 118, 128, 125, 108, 130, 153, 122, 121, 100, 119, 123, 118, 128, 151, 132, 123, 109, 123, 125, 63, 110, 120, 130, 123, 131, 125, 118, 137, 124, 128, 126, 125, 121, 131, 127, 123, 116, 126, 113, 111, 119, 122, 124, 128, 126, 121, 130, 124, 129, 133, 130, 124, 124, 129, 122, 117, 129, 119, 127, 107, 116, 124, 118, 131, 127, 126, 131, 123, 121, 116, 114, 130, 130, 129, 122, 122, 111, 127, 120, 126, 125, 122, 122, 146, 129, 135, 124, 127, 130, 121, 126, 128, 111, 114, 113, 123, 124, 128, 98, 119, 119, 125, 125, 124, 123, 120, 125, 126, 121, 117, 118, 103, 125, 86, 132, 128, 136, 131, 130, 120, 130, 127, 131, 129, 113, 120, 122, 130, 126, 129, 130, 112, 96, 125, 129, 150, 71, 128, 114, 123, 125, 138, 128, 122, 121, 111, 125, 120, 117, 121, 117, 135, 117, 126, 133, 117, 120, 107, 126, 127, 113, 134, 128, 129, 135, 113, 120, 112, 118, 128, 120, 124, 127, 116, 125, 111, 119, 118, 132, 130, 119, 125, 134, 145, 129, 122, 112, 120, 123, 127, 114, 128, 130, 127, 100, 116, 116, 113, 135, 122, 123, 112, 125, 132, 131, 104, 131, 131, 133, 125, 128, 121, 120, 113, 125, 115, 125, 116, 124, 130, 130, 124, 123, 122, 125, 138, 135, 124, 120, 126, 118, 116, 129, 115, 126, 124, 131, 122, 138, 120, 121, 128, 129, 114, 123, 132, 124, 157, 124, 132, 117, 116, 124, 120, 119, 123, 112, 110, 114, 127, 129, 132, 112, 126, 124, 133, 122, 115, 135, 117, 140, 122, 130, 131, 131, 116, 116, 126, 132, 123, 108, 134, 125, 134, 124, 136, 127, 127, 114, 133, 121, 121, 123, 131, 105, 123, 99, 121, 126, 119, 110, 122, 122, 126, 123, 136, 121, 126, 118, 111, 106, 123, 118, 113, 115, 115, 139, 126, 134, 116, 128, 128, 121, 121, 126, 118, 119, 137, 131, 115, 121, 114, 113, 123, 117, 124, 129, 121, 129, 108, 121, 118, 117, 135, 126, 127, 131, 121, 134, 114, 130, 131, 129, 114, 129, 129, 134, 115, 118, 127, 133, 118, 135, 127, 126, 122, 137, 113, 124, 118, 128, 118, 128, 124, 133, 129, 120, 132, 118, 153, 121, 132, 133, 118, 130, 124, 134, 121, 127, 118, 121, 118, 117, 118, 120, 122, 125, 120, 100, 136, 131, 128, 140, 126, 122, 98, 135, 119, 122, 141, 123, 131, 123, 130, 115, 116, 126, 133, 100, 118, 130, 116, 135, 121, 144, 116, 121, 137, 133, 132, 123, 126, 121, 112, 106, 139, 124, 109, 121, 125, 116, 121, 132, 117, 119, 114, 128, 115, 113, 123, 124, 121, 144, 136, 114, 136, 126, 128, 110, 121, 133, 114, 131, 119, 127, 133, 123, 118, 138, 117, 111, 131, 118, 106, 116, 115, 131, 120, 136, 120, 130, 120, 132, 117, 122, 129, 127, 133, 128, 126, 128, 108, 128, 117, 129, 120, 130, 124, 127, 123, 131, 129, 120, 117, 121, 131, 118, 120, 127, 136, 135, 112, 140, 120, 112, 100, 113, 132, 117, 118, 124, 118, 125, 131, 136, 138, 139, 119, 115, 123, 125, 124, 107, 138, 120, 124, 106, 114, 139, 115, 128, 125, 118, 123, 125, 111, 121, 130, 115, 115, 128, 123, 120, 123, 119, 112, 131, 125, 123, 121, 125, 126, 125, 133, 121, 116, 140, 129, 123, 118, 122, 113, 128, 131, 134, 134, 109, 130, 120, 123, 137, 127, 113, 128, 124, 128, 124, 134, 121, 118, 116, 119, 129, 113, 121, 109, 129, 114, 124, 126, 123, 116, 113, 114, 119, 117, 130, 121, 138, 129, 144, 129, 131, 127, 126, 124, 128, 127, 120, 120, 130, 109, 121, 121, 128, 94, 146, 123, 128, 114, 125, 134, 110, 124, 115, 126, 98, 144, 130, 169, 125, 127, 120, 110, 109, 113, 131, 141, 101, 133, 154, 125, 123, 131, 114, 131, 133, 131, 140, 119, 103, 108, 131, 127, 128, 118, 122, 122, 112, 124, 113, 116, 128, 116, 122, 119, 115, 129, 118, 125, 114, 118, 125, 132, 123, 143, 142, 106, 120, 115, 134, 118, 142, 139, 110, 142, 138, 111, 127, 113, 118, 130, 121, 112, 131, 119, 119, 145, 140, 131, 126, 123, 122, 141, 113, 123, 122, 115, 119, 129, 117, 127, 123, 117, 122, 122, 114, 126, 131, 133, 118, 127, 118, 140, 122, 139, 123, 126, 123, 112, 114, 121, 110, 127, 125, 121, 128, 124, 97, 120, 122, 130, 184, 142, 130, 117, 125, 116, 130, 110, 139, 127, 112, 131, 125, 125, 118, 120, 115, 128, 106, 130, 113, 120, 119, 134, 119, 135, 142, 132, 124, 126, 132, 126, 125, 119, 113, 117, 136, 127, 117, 121, 134, 148, 122, 114, 127, 141, 138, 102, 123, 142, 127, 127, 117, 124, 121, 106, 133, 98, 114, 116, 110, 115, 126, 125, 131, 89, 125, 125, 115, 137, 132, 136, 128, 121, 121, 135, 119, 134, 110, 127, 110, 124, 125, 120, 124, 127, 121, 129, 96, 148, 115, 138, 133, 124, 131, 130, 127, 129, 99, 116, 123, 128, 130, 134, 117, 126, 129, 150, 113, 117, 95, 123, 134, 140, 122, 122, 121, 137, 127, 132, 163, 130, 122, 101, 110, 130, 125, 118, 125, 120, 129, 141, 126, 127, 106, 128, 120, 112, 117, 139, 119, 100, 128, 139, 128, 141, 113, 128, 141, 130, 111, 110, 127, 133, 122, 101, 123, 129, 114, 163, 121, 118, 111, 121, 122, 112, 127, 118, 122, 125, 127, 114, 122, 135, 117, 126, 116, 128, 114, 121, 126, 114, 118, 124, 121, 117, 118, 122, 122, 124, 121, 129, 125, 116, 119, 121, 134, 116, 125, 114, 120, 129, 119, 125, 134, 132, 116, 133, 128, 121, 115, 127, 130, 127, 124, 127, 131, 121, 117, 125, 126, 107, 119, 122, 122, 123, 127, 115, 119, 123, 113, 133, 128, 124, 133, 128, 120, 129, 127, 125, 124, 122, 119, 124, 127, 123, 128, 122, 120, 134, 110, 123, 122, 138, 135, 124, 133, 118, 128, 121, 130, 115, 122, 119, 132, 117, 123, 104, 120, 125, 120, 127, 111, 127, 143, 116, 125, 118, 128, 120, 121, 119, 126, 120, 123, 125, 111, 118, 133, 123, 130, 122, 127, 125, 132, 115, 140, 136, 116, 135, 116, 130, 122, 144, 120, 116, 128, 117, 123, 117, 127, 127, 136, 121, 134, 122, 132, 122, 124, 126, 119, 129, 126, 103, 126, 125, 129, 122, 119, 110, 124, 115, 120, 122, 121, 126, 120, 125, 136, 124, 126, 136, 115, 125, 120, 124, 120, 124, 118, 119, 116, 129, 122, 123, 130, 128, 121, 116, 127, 117, 121, 128, 130, 136, 124, 124, 119, 126, 121, 124, 130, 121, 123, 122, 127, 130, 127, 125, 130, 120, 126, 133, 119, 114, 121, 132, 121, 120, 127, 135, 115, 124, 123, 128, 121, 120, 120, 118, 132, 121, 130, 127, 124, 124, 136, 133, 138, 114, 122, 121, 132, 142, 125, 117, 126, 116, 128, 119, 120, 120, 121, 128, 124, 124, 124, 123, 114, 126, 118, 127, 120, 125, 121, 118, 124, 140, 117, 126, 127, 131, 120, 123, 127, 123, 122, 133, 130, 134, 121, 116, 128, 109, 127, 122, 129, 132, 123, 125, 123, 120, 124, 135, 114, 129, 133, 117, 122, 121, 137, 138, 122, 131, 130, 117, 120, 124, 134, 115, 132, 117, 126, 128, 131, 119, 119, 120, 121, 130, 127, 127, 128, 124, 127, 117, 124, 134, 138, 131, 125, 124, 127, 126, 124, 133, 119, 119, 105, 128, 124, 133, 122, 129, 125, 115, 132, 119, 125, 120, 121, 136, 121, 137, 128, 115, 129, 124, 125, 125, 116, 125, 123, 124, 141, 118, 131, 123, 129, 121, 131, 124, 134, 126, 135, 128, 124, 125, 120, 127, 119, 127, 126, 130, 125, 128, 119, 131, 123, 128, 123, 129, 126, 121, 121, 123, 125, 119, 133, 113, 127, 125, 130, 122, 132, 129, 122, 122, 136, 143, 126, 123, 124, 122, 122, 124, 120, 119, 127, 128, 113, 130, 120, 132, 111, 128, 132, 127, 124, 134, 126, 124, 125, 132, 122, 131, 120, 121, 128, 137, 126, 127, 119, 129, 121, 123, 127, 124, 126, 112, 121, 126, 122, 124, 134, 122, 127, 128, 124, 123, 119, 130, 129, 127, 128, 130, 108, 119, 126, 129, 123, 125, 120, 127, 124, 128, 130, 124, 110, 124, 120, 132, 123, 131, 133, 136, 124, 128, 135, 123, 135, 125, 123, 127, 128, 120, 121, 127, 118, 131, 126, 125, 121, 129, 133, 121, 117, 127, 129, 122, 125, 127, 123, 122, 106, 119, 120, 115, 129, 112, 127, 120, 121, 125, 122, 141, 120, 104, 139, 122, 147, 116, 127, 131, 130, 128, 158, 131, 134, 116, 126, 115, 130, 115, 125, 129, 120, 129, 116, 132, 148, 111, 123, 148, 116, 128, 117, 128, 113, 135, 126, 124, 121, 120, 113, 124, 121, 115, 136, 150, 131, 121, 124, 114, 124, 111, 135, 127, 119, 112, 118, 125, 116, 123, 122, 129, 119, 125, 120, 114, 128, 128, 113, 117, 144, 137, 124, 132, 125, 121, 128, 125, 118, 119, 132, 134, 131, 118, 127, 134, 118, 129, 129, 123, 127, 141, 128, 127, 130, 124, 141, 140, 116, 116, 126, 127, 120, 130, 127, 136, 132, 126, 114, 123, 136, 130, 135, 133, 128, 119, 114, 133, 148, 136, 118, 128, 129, 119, 139, 106, 114, 126, 125, 121, 118, 137, 122, 123, 135, 121, 128, 130, 114, 148, 113, 129, 124, 143, 116, 113, 119, 128, 122, 118, 114, 144, 145, 129, 125, 119, 112, 122, 88, 123, 128, 124, 125, 118, 122, 128, 108, 126, 115, 115, 133, 114, 126, 131, 117, 136, 122, 148, 106, 121, 116, 109, 106, 131, 130, 127, 132, 129, 128, 125, 133, 125, 122, 124, 128, 122, 137, 122, 125, 132, 124, 108, 123, 133, 121, 119, 132, 123, 126, 115, 114, 127, 132, 113, 117, 116, 126, 136, 111, 130, 121, 121, 118, 141, 106, 124, 126, 120, 113, 114, 143, 120, 119, 132, 107, 135, 150, 106, 104, 118, 145, 122, 129, 147, 121, 140, 125, 111, 128, 114, 132, 121, 129, 124, 112, 129, 112, 113, 154, 120, 114, 129, 121, 133, 141, 151, 129, 119, 127, 142, 118, 121, 113, 130, 119, 119, 130, 140, 163, 139, 123, 127, 127, 118, 124, 135, 135, 113, 117, 134, 128, 116, 121, 110, 122, 122, 128, 126, 121, 122, 132, 113, 134, 122, 133, 117, 139, 121, 120, 105, 135, 117, 113, 119, 123, 138, 131, 124, 150, 108, 110, 122, 102, 147, 128, 127, 119, 116, 141, 131, 122, 89, 133, 118, 140, 122, 132, 115, 126, 136, 141, 126, 118, 111, 82, 110, 114, 125, 116, 123, 109, 122, 119, 116, 121, 121, 107, 136, 135, 138, 122, 118, 110, 120, 129, 122, 121, 115, 115, 113, 116, 118, 120, 126, 124, 128, 121, 116, 123, 112, 117, 130, 118, 128, 126, 134, 126, 100, 116, 107, 127, 118, 120, 124, 145, 110, 120, 124, 126, 126, 112, 117, 125, 117, 112, 121, 120, 126, 118, 94, 121, 122, 132, 126, 124, 131, 129, 126, 123, 124, 113, 139, 127, 166, 165, 128, 120, 111, 133, 114, 113, 118, 122, 127, 111, 125, 133, 113, 129, 122, 127, 143, 124, 117, 117, 122, 112, 121, 117, 124, 116, 122, 116, 121, 116, 129, 138, 129, 118, 117, 135, 114, 117, 145, 137, 119, 122, 129, 105, 134, 123, 125, 125, 130, 115, 126, 113, 201, 124, 120, 115, 121, 119, 111, 112, 120, 119, 128, 121, 97, 120, 121, 123, 128, 122, 120, 125, 129, 123, 124, 131, 120, 123, 123, 122, 123, 125, 121, 120, 127, 125, 127, 150, 121, 128, 125, 123, 124, 125, 124, 125, 125, 123, 121, 123, 124, 122, 127, 121, 125, 125, 125, 125, 124, 128, 131, 126, 121, 126, 122, 124, 121, 112, 119, 126, 121, 121, 126, 100, 121, 124, 129, 120, 127, 123, 125, 126, 123, 125, 124, 126, 128, 128, 121, 121, 126, 129, 119, 131, 124, 122, 122, 120, 123, 123, 126, 124, 125, 127, 125, 125, 119, 125, 120, 110, 124, 125, 135, 118, 125, 201, 137, 117, 129, 122, 122, 123, 124, 116, 121, 120, 126, 127, 122, 125, 133, 126, 119, 126, 121, 124, 120, 128, 124, 117, 129, 115, 126, 124, 105, 123, 123, 124, 128, 130, 120, 120, 124, 124, 118, 126, 127, 123, 125, 134, 123, 131, 121, 121, 125, 86, 123, 124, 128, 125, 120, 122, 128, 125, 121, 125, 122, 122, 129, 127, 123, 122, 128, 127, 124, 130, 118, 144, 119, 126, 123, 127, 123, 122, 113, 122, 123, 124, 123, 126, 143, 125, 118, 121, 126, 118, 122, 124, 125, 180, 123, 127, 125, 122, 127, 127, 128, 125, 122, 122, 131, 117, 123, 124, 125, 119, 122, 126, 124, 130, 120, 127, 123, 123, 128, 126, 131, 121, 122, 124, 121, 114, 120, 125, 121, 162, 123, 121, 125, 132, 121, 122, 117, 129, 124, 124, 123, 118, 115, 123, 123, 119, 124, 126, 118, 125, 128, 126, 142, 123, 127, 124, 137, 123, 120, 117, 124, 127, 130, 132, 134, 126, 120, 120, 145, 122, 111, 128, 127, 132, 133, 127, 126, 127, 118, 131, 128, 123, 122, 127, 127, 122, 126, 126, 129, 131, 135, 128, 122, 125, 129, 126, 128, 119, 128, 125, 134, 123, 129, 132, 120, 119, 133, 130, 120, 122, 128, 125, 120, 121, 127, 140, 118, 114, 126, 123, 126, 122, 130, 124, 123, 125, 127, 123, 116, 125, 112, 135, 117, 124, 127, 124, 128, 120, 120, 120, 123, 127, 123, 127, 126, 127, 131, 126, 111, 117, 121, 123, 123, 125, 123, 127, 129, 124, 119, 133, 127, 126, 130, 124, 124, 130, 130, 126, 131, 116, 124, 128, 128, 126, 126, 128, 131, 126, 125, 118, 129, 121, 125, 130, 126, 124, 126, 123, 124, 129, 126, 127, 125, 114, 126, 128, 131, 117, 125, 120, 121, 125, 133, 122, 123, 127, 126, 134, 114, 130, 119, 126, 126, 120, 127, 127, 124, 121, 123, 127, 130, 101, 118, 127, 120, 120, 127, 125, 134, 124, 116, 127, 133, 126, 118, 116, 126, 126, 119, 137, 125, 126, 117, 121, 128, 121, 124, 134, 124, 125, 125, 120, 130, 113, 126, 112, 120, 127, 121, 119, 123, 114, 121, 124, 126, 124, 126, 121, 127, 121, 123, 133, 124, 126, 121, 122, 130, 120, 118, 120, 128, 115, 117, 129, 120, 126, 125, 121, 125, 117, 126, 131, 126, 132, 126, 125, 130, 124, 126, 117, 126, 127, 123, 128, 123, 120, 124, 124, 133, 119, 122, 130, 131, 124, 127, 119, 129, 132, 132, 122, 118, 122, 129, 120, 131, 102, 111, 125, 118, 128, 119, 136, 119, 117, 107, 130, 129, 131, 121, 129, 124, 125, 125, 117, 128, 122, 130, 124, 142, 120, 115, 127, 112, 124, 127, 128, 119, 113, 131, 117, 134, 120, 119, 144, 146, 133, 137, 120, 132, 131, 136, 124, 138, 128, 138, 111, 95, 120, 122, 118, 123, 128, 155, 113, 117, 124, 131, 115, 122, 112, 121, 148, 143, 122, 129, 113, 114, 129, 126, 129, 154, 126, 118, 123, 119, 115, 121, 127, 103, 146, 123, 123, 122, 144, 128, 125, 121, 115, 128, 136, 122, 150, 115, 106, 130, 126, 121, 125, 122, 119, 117, 123, 123, 126, 134, 122, 122, 136, 130, 121, 133, 120, 126, 122, 116, 129, 126, 131, 118, 126, 128, 125, 122, 121, 137, 144, 120, 128, 116, 122, 116, 125, 115, 115, 114, 130, 109, 131, 115, 139, 115, 114, 128, 122, 103, 123, 112, 132, 128, 131, 111, 125, 126, 122, 126, 120, 121, 147, 124, 114, 117, 125, 129, 118, 119, 106, 121, 89, 147, 127, 132, 123, 119, 124, 121, 135, 124, 94, 118, 126, 129, 120, 115, 126, 122, 121, 142, 119, 114, 116, 122, 117, 124, 104, 124, 124, 143, 120, 118, 146, 137, 117, 131, 147, 125, 119, 117, 122, 116, 116, 117, 111, 117, 127, 128, 108, 112, 129, 161, 134, 151, 129, 155, 141, 126, 109, 122, 120, 120, 125, 113, 128, 134, 121, 143, 124, 126, 129, 151, 126, 124, 119, 116, 128, 105, 110, 130, 131, 121, 118, 104, 130, 95, 128, 138, 115, 130, 129, 123, 125, 154, 119, 102, 122, 130, 133, 133, 109, 148, 124, 121, 138, 124, 130, 150, 124, 133, 122, 139, 127, 120, 129, 129, 132, 126, 130, 96, 136, 143, 139, 121, 130, 115, 121, 109, 123, 112, 131, 118, 94, 113, 122, 121, 128, 116, 133, 102, 114, 118, 138, 118, 125, 105, 103, 143, 120, 117, 127, 118, 136, 124, 125, 120, 117, 138, 119, 140, 137, 110, 122, 129, 126, 111, 113, 131, 130, 133, 127, 127, 110, 115, 129, 122, 120, 138, 124, 146, 118, 127, 136, 111, 120, 120, 117, 114, 125, 143, 123, 90, 112, 119, 132, 123, 160, 108, 128, 119, 123, 126, 131, 112, 111, 118, 131, 132, 125, 127, 120, 131, 128, 119, 126, 106, 136, 117, 100, 126, 130, 135, 105, 107, 111, 124, 126, 106, 104, 117, 124, 111, 149, 125, 114, 150, 96, 118, 118, 120, 117, 111, 126, 141, 122, 134, 122, 109, 113, 123, 116, 137, 119, 113, 121, 132, 128, 138, 130, 129, 135, 116, 129, 129, 127, 116, 103, 99, 124, 137, 97, 138, 129, 125, 104, 116, 128, 122, 119, 106, 110, 119, 144, 127, 129, 124, 122, 110, 132, 116, 114, 123, 125, 118, 114, 112, 123, 131, 114, 123, 127, 137, 144, 117, 113, 115, 122, 134, 124, 140, 105, 119, 136, 118, 121, 133, 114, 123, 116, 108, 114, 134, 121, 105, 103, 126, 114, 134, 140, 133, 140, 128, 115, 120, 123, 117, 132, 125, 117, 109, 125, 135, 122, 122, 124, 121, 112, 109, 116, 120, 112, 119, 115, 108, 112, 124, 125, 136, 114, 114, 121, 112, 121, 113, 133, 130, 135, 120, 130, 118, 144, 121, 132, 113, 129, 127, 128, 121, 144, 128, 138, 122, 135, 124, 127, 110, 128, 117, 116, 127, 122, 135, 130, 118, 116, 134, 119, 106, 130, 141, 123, 123, 110, 143, 119, 123, 124, 121, 117, 121, 130, 116, 122, 124, 139, 135, 125, 132, 114, 113, 121, 119, 115, 123, 111, 120, 145, 140, 114, 117, 113, 114, 120, 125, 130, 131, 114, 119, 135, 129, 122, 140, 114, 107, 126, 119, 118, 123, 117, 130, 122, 136, 144, 118, 103, 126, 120, 121, 136, 115, 105, 130, 121, 119, 124, 116, 122, 124, 134, 116, 111, 122, 127, 112, 118, 126, 129, 131, 144, 138, 116, 123, 121, 117, 121, 128, 132, 123, 139, 143, 120, 118, 112, 130, 128, 137, 128, 123, 121, 132, 130, 128, 117, 122, 121, 119, 141, 132, 117, 148, 136, 121, 128, 144, 120, 129, 121, 131, 123, 156, 107, 124, 128, 124, 141, 125, 123, 126, 136, 103, 112, 116, 136, 124, 131, 117, 123, 133, 138, 127, 112, 134, 125, 125, 113, 129, 132, 123, 129, 118, 132, 118, 130, 128, 115, 134, 126, 138, 130, 122, 148, 114, 123, 119, 122, 111, 119, 122, 131, 134, 117, 113, 124, 132, 112, 121, 133, 116, 122, 120, 122, 126, 121, 112, 111, 118, 129, 121, 116, 143, 127, 123, 124, 127, 126, 128, 119, 126, 128, 127, 128, 119, 120, 123, 119, 118, 122, 130, 126, 131, 123, 125, 120, 113, 128, 126, 116, 127, 120, 120, 133, 129, 138, 126, 128, 129, 114, 127, 132, 125, 120, 126, 131, 121, 122, 117, 120, 129, 127, 130, 124, 119, 118, 131, 124, 123, 127, 115, 127, 124, 133, 117, 124, 119, 121, 122, 116, 124, 125, 119, 121, 115, 112, 122, 125, 124, 121, 120, 126, 130, 115, 128, 124, 129, 125, 111, 132, 124, 124, 130, 132, 128, 132, 120, 133, 120, 119, 134, 128, 124, 130, 124, 119, 115, 119, 129, 115, 125, 136, 123, 125, 129, 120, 126, 121, 125, 124, 117, 125, 130, 115, 125, 122, 132, 125, 121, 134, 125, 113, 137, 124, 131, 123, 117, 124, 126, 123, 121, 124, 134, 127, 120, 124, 127, 130, 123, 136, 117, 126, 119, 124, 120, 123, 117, 127, 139, 139, 126, 116, 120, 130, 142, 116, 124, 125, 120, 123, 127, 110, 130, 128, 128, 143, 122, 120, 126, 130, 126, 130, 123, 124, 128, 116, 118, 131, 122, 126, 118, 131, 119, 124, 125, 130, 126, 127, 129, 135, 126, 123, 122, 136, 131, 129, 127, 119, 121, 126, 121, 124, 127, 122, 125, 120, 124, 124, 134, 139, 122, 116, 124, 132, 131, 124, 119, 134, 126, 121, 136, 131, 120, 126, 123, 132, 119, 129, 123, 122, 125, 127, 137, 127, 130, 133, 117, 125, 130, 130, 121, 124, 126, 127, 121, 122, 109, 132, 109, 133, 123, 122, 119, 148, 128, 126, 111, 133, 145, 125, 127, 115, 146, 122, 117, 124, 126, 129, 111, 113, 132, 120, 140, 137, 128, 124, 125, 127, 119, 124, 118, 128, 127, 118, 127, 121, 126, 109, 123, 121, 119, 113, 125, 123, 125, 126, 123, 114, 118, 130, 120, 139, 122, 139, 120, 111, 128, 161, 125, 100, 126, 123, 122, 123, 114, 125, 126, 130, 134, 120, 127, 123, 130, 126, 124, 121, 119, 118, 98, 127, 126, 148, 128, 115, 116, 125, 130, 108, 124, 126, 120, 129, 124, 119, 119, 147, 127, 130, 134, 126, 119, 141, 118, 134, 138, 120, 121, 131, 119, 117, 123, 129, 121, 120, 127, 127, 124, 121, 118, 132, 126, 137, 122, 132, 119, 131, 127, 124, 129, 120, 128, 102, 122, 120, 122, 129, 117, 138, 121, 125, 128, 130, 129, 118, 121, 137, 123, 127, 124, 119, 123, 124, 118, 153, 128, 115, 121, 122, 127, 119, 128, 127, 125, 119, 125, 115, 128, 122, 127, 122, 128, 104, 124, 113, 126, 116, 123, 123, 124, 120, 128, 123, 122, 108, 103, 125, 118, 126, 131, 130, 112, 112, 126, 117, 118, 123, 131, 118, 114, 124, 126, 123, 126, 125, 118, 122, 118, 129, 129, 130, 124, 144, 124, 127, 122, 117, 131, 127, 117, 104, 123, 126, 108, 122, 117, 131, 120, 108, 122, 160, 124, 113, 118, 126, 129, 128, 115, 125, 105, 117, 108, 120, 121, 136, 119, 123, 128, 143, 121, 111, 119, 118, 121, 137, 134, 122, 127, 122, 123, 123, 122, 120, 127, 121, 121, 117, 124, 128, 121, 119, 118, 129, 123, 125, 124, 118, 123, 128, 125, 120, 133, 120, 118, 126, 125, 125, 121, 124, 128, 127, 127, 121, 132, 123, 137, 122, 125, 124, 120, 125, 123, 126, 138, 125, 121, 112, 127, 123, 132, 124, 123, 120, 106, 119, 124, 125, 124, 126, 132, 121, 120, 115, 124, 126, 126, 138, 116, 127, 126, 121, 123, 111, 125, 125, 123, 126, 124, 123, 123, 122, 124, 110, 123, 128, 110, 124, 129, 141, 117, 128, 124, 126, 115, 123, 128, 111, 128, 134, 122, 120, 123, 122, 111, 126, 117, 116, 124, 121, 133, 127, 122, 113, 125, 130, 128, 116, 135, 130, 124, 121, 131, 127, 120, 153, 117, 120, 117, 123, 123, 129, 128, 122, 122, 126, 118, 132, 127, 120, 123, 119, 127, 118, 139, 128, 133, 121, 132, 121, 123, 119, 125, 126, 122, 122, 126, 120, 124, 125, 119, 128, 121, 125, 118, 151, 123, 127, 132, 122, 123, 123, 121, 128, 122, 136, 116, 122, 125, 118, 122, 122, 129, 119, 127, 124, 127, 126, 123, 125, 124, 123, 126, 123, 128, 120, 122, 127, 126, 113, 130, 117, 118, 137, 172, 124, 122, 130, 75, 123, 126, 76, 126, 125, 124, 122, 123, 127, 117, 109, 118, 121, 122, 124, 122, 125, 122, 123, 132, 131, 127, 121, 128, 124, 127, 120, 123, 123, 121, 130, 128, 122, 133, 122, 125, 126, 131, 118, 129, 165, 115, 72, 116, 124, 115, 117, 95, 130, 126, 140, 118, 139, 126, 128, 123, 123, 123, 122, 123, 132, 134, 151, 131, 121, 121, 123, 130, 128, 128, 129, 167, 102, 134, 125, 107, 122, 117, 108, 159, 132, 128, 128, 137, 139, 114, 127, 127, 133, 129, 137, 118, 120, 128, 113, 120, 126, 133, 113, 128, 128, 131, 122, 114, 124, 124, 106, 130, 137, 119, 126, 131, 129, 127, 123, 140, 141, 116, 134, 130, 123, 117, 122, 124, 143, 135, 130, 124, 120, 117, 112, 116, 126, 114, 118, 145, 137, 134, 124, 126, 123, 123, 111, 122, 148, 107, 129, 128, 113, 130, 123, 117, 104, 126, 114, 102, 131, 106, 122, 87, 145, 131, 144, 119, 123, 126, 123, 99, 112, 129, 117, 121, 136, 142, 119, 118, 127, 124, 153, 114, 130, 123, 114, 112, 114, 121, 117, 124, 115, 94, 118, 124, 121, 109, 120, 117, 125, 139, 122, 127, 132, 136, 128, 128, 98, 149, 118, 129, 111, 129, 115, 127, 113, 115, 130, 126, 134, 120, 124, 128, 120, 116, 116, 138, 118, 145, 147, 117, 125, 113, 134, 116, 100, 126, 127, 129, 147, 111, 135, 129, 131, 114, 137, 132, 115, 127, 120, 122, 136, 126, 139, 120, 118, 126, 185, 104, 127, 131, 134, 134, 137, 124, 121, 120, 123, 175, 120, 116, 98, 121, 132, 125, 125, 132, 134, 104, 114, 123, 122, 123, 127, 122, 123, 118, 120, 125, 125, 146, 121, 123, 117, 126, 129, 107, 124, 121, 120, 118, 129, 129, 126, 124, 123, 126, 94, 108, 121, 112, 122, 129, 122, 141, 130, 101, 135, 130, 127, 121, 124, 149, 121, 123, 118, 145, 138, 124, 122, 124, 119, 111, 141, 122, 119, 115, 98, 123, 120, 126, 120, 131, 108, 118, 168, 114, 125, 116, 117, 128, 122, 114, 128, 119, 116, 122, 127, 122, 128, 126, 94, 128, 128, 117, 131, 124, 132, 122, 126, 126, 111, 120, 124, 116, 125, 122, 127, 126, 130, 115, 122, 129, 121, 131, 93, 111, 133, 126, 118, 128, 140, 132, 135, 123, 124, 122, 117, 123, 116, 126, 133, 128, 123, 114, 128, 113, 111, 133, 114, 122, 122, 125, 148, 140, 148, 116, 122, 122, 124, 125, 129, 121, 123, 119, 109, 128, 112, 110, 108, 125, 123, 124, 124, 125, 152, 130, 118, 106, 122, 149, 125, 115, 126, 122, 126, 120, 119, 122, 113, 122, 127, 126, 122, 124, 119, 121, 105, 137, 99, 112, 100, 129, 123, 124, 122, 115, 122, 132, 149, 126, 124, 128, 121, 123, 126, 127, 118, 128, 117, 120, 123, 122, 127, 142, 113, 132, 140, 111, 124, 119, 112, 130, 126, 105, 124, 124, 101, 116, 117, 122, 132, 124, 132, 126, 131, 133, 134, 116, 135, 128, 132, 117, 120, 130, 137, 118, 130, 122, 114, 94, 124, 109, 111, 133, 132, 124, 115, 112, 123, 131, 132, 119, 144, 127, 128, 112, 127, 118, 120, 125, 118, 114, 122, 110, 122, 120, 114, 119, 119, 127, 99, 122, 135, 119, 127, 145, 112, 142, 115, 126, 115, 95, 138, 128, 117, 127, 129, 129, 112, 131, 124, 128, 123, 125, 124, 129, 104, 104, 127, 121, 124, 130, 113, 112, 121, 145, 130, 88, 136, 132, 122, 136, 134, 120, 110, 115, 138, 118, 118, 141, 103, 140, 98, 141, 114, 120, 127, 131, 121, 90, 120, 111, 126, 104, 116, 121, 113, 103, 112, 148, 159, 129, 103, 121, 125, 118, 126, 130, 100, 122, 115, 120, 120, 120, 136, 120, 134, 102, 128, 124, 116, 134, 110, 131, 111, 114, 127, 120, 135, 125, 127, 114, 125, 120, 116, 129, 129, 124, 123, 130, 125, 113, 125, 132, 123, 127, 120, 126, 140, 123, 127, 135, 122, 100, 127, 123, 120, 108, 114, 123, 124, 119, 118, 109, 130, 137, 126, 133, 138, 117, 135, 124, 114, 130, 119, 135, 121, 117, 118, 136, 119, 119, 136, 123, 133, 115, 120, 119, 128, 114, 128, 125, 130, 119, 99, 123, 122, 127, 125, 118, 111, 106, 131, 113, 132, 122, 110, 118, 132, 121, 121, 123, 142, 111, 115, 120, 120, 122, 140, 118, 112, 129, 164, 127, 116, 149, 128, 126, 135, 144, 124, 117, 112, 126, 138, 111, 123, 124, 113, 129, 135, 117, 145, 109, 127, 116, 125, 125, 124, 129, 108, 118, 115, 114, 91, 130, 112, 111, 120, 113, 144, 136, 109, 122, 146, 127, 123, 131, 141, 130, 114, 100, 130, 127, 118, 137, 121, 113, 119, 125, 115, 120, 125, 132, 122, 133, 141, 128, 137, 123, 139, 117, 119, 134, 127, 134, 120, 119, 126, 120, 112, 127, 144, 127, 123, 111, 164, 142, 110, 120, 117, 138, 117, 118, 126, 131, 116, 122, 120, 128, 116, 121, 93, 111, 134, 135, 125, 111, 109, 129, 135, 125, 120, 120, 117, 133, 129, 109, 128, 126, 135, 116, 122, 117, 133, 145, 108, 123, 139, 114, 127, 115, 113, 124, 126, 132, 121, 124, 126, 118, 127, 130, 110, 116, 112, 123, 122, 116, 131, 134, 124, 102, 134, 117, 127, 142, 132, 117, 131, 121, 113, 123, 128, 119, 124, 91, 126, 119, 134, 119, 126, 134, 141, 108, 113, 99, 115, 126, 119, 135, 113, 124, 130, 130, 109, 122, 137, 152, 117, 110, 134, 136, 112, 121, 105, 127, 127, 119, 109, 120, 127, 114, 113, 119, 127, 126, 102, 128, 129, 118, 118, 130, 117, 111, 133, 120, 129, 102, 126, 110, 121, 113, 133, 109, 108, 121, 110, 111, 96, 150, 126, 135, 113, 132, 131, 132, 118, 114, 136, 126, 101, 118, 114, 132, 133, 120, 126, 140, 117, 129, 119, 123, 116, 134, 128, 123, 127, 104, 118, 129, 119, 139, 137, 125, 118, 86, 139, 132, 141, 117, 110, 112, 113, 129, 132, 108, 134, 134, 119, 132, 109, 123, 116, 122, 106, 121, 90, 114, 116, 126, 116, 116, 122, 123, 126, 138, 128, 132, 139, 114, 119, 127, 168, 126, 154, 110, 114, 134, 127, 129, 132, 105, 126, 138, 127, 133, 123, 133, 118, 129, 132, 129, 123, 92, 122, 130, 128, 139, 104, 116, 130, 118, 122, 107, 124, 113, 146, 119, 141, 121, 134, 126, 125, 129, 127, 126, 103, 122, 117, 138, 119, 121, 130, 141, 123, 106, 121, 124, 124, 119, 135, 124, 98, 125, 123, 114, 140, 121, 115, 105, 135, 116, 125, 117, 129, 144, 117, 113, 119, 112, 134, 117, 121, 103, 115, 139, 126, 130, 124, 114, 127, 124, 110, 136, 112, 122, 115, 126, 119, 117, 126, 135, 139, 99, 118, 118, 110, 131, 115, 127, 120, 125, 126, 123, 135, 118, 111, 119, 121, 136, 123, 130, 117, 132, 117, 106, 124, 143, 125, 117, 140, 113, 98, 121, 119, 141, 119, 141, 120, 120, 125, 112, 128, 119, 119, 119, 111, 131, 121, 124, 126, 127, 125, 113, 127, 124, 130, 128, 141, 119, 125, 114, 121, 127, 119, 123, 129, 122, 128, 126, 130, 131, 132, 121, 123, 137, 124, 124, 128, 118, 104, 130, 130, 118, 123, 154, 129, 121, 117, 133, 134, 119, 144, 147, 111, 134, 123, 135, 133, 124, 136, 120, 123, 123, 118, 125, 141, 121, 120, 132, 142, 110, 129, 124, 124, 123, 136, 127, 125, 116, 131, 123, 122, 126, 137, 104, 121, 126, 108, 140, 116, 119, 117, 157, 114, 144, 132, 124, 129, 115, 133, 114, 121, 141, 111, 121, 122, 113, 122, 124, 119, 139, 123, 123, 121, 121, 134, 116, 123, 126, 133, 111, 119, 119, 111, 125, 125, 125, 124, 116, 131, 122, 126, 105, 120, 129, 110, 127, 119, 122, 123, 114, 120, 130, 111, 127, 131, 124, 113, 133, 126, 92, 129, 126, 126, 99, 117, 125, 108, 122, 121, 177, 124, 113, 118, 129, 122, 99, 98, 150, 144, 137, 122, 134, 131, 121, 121, 103, 142, 118, 124, 130, 117, 129, 114, 125, 118, 124, 100, 106, 137, 119, 120, 144, 125, 141, 129, 134, 119, 116, 120, 122, 120, 122, 133, 130, 105, 147, 122, 106, 118, 119, 133, 138, 112, 107, 130, 135, 121, 125, 140, 133, 123, 138, 118, 116, 113, 127, 110, 135, 137, 149, 126, 120, 133, 113, 132, 123, 126, 122, 145, 124, 115, 134, 124, 138, 114, 110, 116, 120, 122, 121, 116, 118, 118, 128, 125, 123, 150, 119, 132, 123, 117, 126, 130, 119, 118, 125, 106, 114, 150, 123, 134, 131, 132, 130, 119, 129, 130, 122, 129, 139, 119, 125, 154, 116, 126, 123, 119, 125, 120, 119, 132, 118, 128, 127, 140, 120, 128, 128, 149, 120, 125, 174, 93, 114, 121, 125, 122, 124, 127, 123, 123, 120, 130, 119, 117, 130, 121, 126, 143, 123, 118, 127, 130, 118, 124, 126, 118, 122, 136, 108, 127, 120, 137, 117, 98, 137, 118, 127, 126, 142, 107, 141, 110, 101, 134, 108, 126, 125, 131, 129, 113, 125, 136, 128, 106, 124, 119, 122, 118, 127, 128, 109, 124, 105, 139, 119, 133, 118, 121, 140, 117, 126, 121, 119, 145, 122, 113, 120, 136, 128, 122, 122, 112, 120, 115, 106, 90, 133, 122, 134, 125, 128, 116, 122, 117, 121, 124, 128, 128, 122, 131, 123, 115, 137, 120, 109, 126, 126, 125, 124, 123, 136, 124, 127, 127, 94, 107, 134, 124, 121, 127, 131, 107, 131, 126, 123, 114, 115, 127, 117, 130, 128, 135, 128, 116, 115, 120, 127, 125, 128, 123, 121, 123, 114, 115, 130, 129, 120, 123, 124, 129, 123, 133, 119, 137, 128, 121, 120, 129, 128, 126, 125, 120, 118, 132, 133, 127, 106, 161, 101, 118, 126, 124, 117, 130, 128, 113, 97, 128, 122, 127, 123, 134, 127, 126, 110, 123, 128, 118, 127, 133, 132, 131, 126, 121, 119, 121, 119, 125, 134, 129, 112, 132, 135, 126, 133, 125, 126, 121, 127, 125, 108, 137, 119, 136, 124, 124, 133, 127, 129, 123, 125, 119, 136, 126, 130, 123, 128, 137, 133, 121, 127, 130, 129, 129, 129, 114, 119, 112, 123, 116, 124, 121, 109, 126, 97, 116, 128, 122, 125, 120, 122, 110, 127, 117, 135, 126, 135, 110, 129, 123, 121, 121, 123, 122, 131, 126, 126, 126, 138, 123, 116, 120, 125, 125, 127, 125, 122, 118, 119, 122, 120, 112, 123, 125, 108, 123, 125, 126, 129, 128, 127, 117, 121, 128, 112, 140, 126, 107, 122, 126, 133, 127, 122, 140, 126, 131, 124, 149, 127, 132, 121, 123, 120, 122, 126, 127, 140, 124, 110, 126, 111, 127, 118, 134, 119, 127, 131, 134, 129, 137, 124, 131, 132, 123, 128, 115, 129, 138, 130, 116, 111, 129, 121, 121, 122, 121, 114, 124, 124, 132, 123, 125, 121, 129, 120, 122, 125, 118, 129, 125, 121, 128, 123, 126, 124, 134, 125, 117, 121, 121, 109, 118, 124, 132, 136, 123, 129, 120, 130, 130, 125, 118, 121, 131, 123, 122, 120, 123, 129, 120, 123, 119, 127, 121, 132, 126, 122, 125, 122, 112, 124, 125, 124, 125, 130, 95, 128, 130, 116, 117, 136, 126, 124, 118, 126, 126, 122, 123, 91, 121, 123, 81, 119, 122, 122, 119, 145, 117, 126, 127, 244, 129, 130, 76, 124, 128, 115, 129, 118, 119, 122, 111, 128, 126, 116, 126, 113, 138, 116, 134, 124, 115, 127, 128, 131, 126, 120, 136, 118, 130, 126, 122, 108, 117, 128, 121, 125, 131, 123, 116, 124, 137, 129, 132, 131, 125, 125, 121, 140, 126, 122, 125, 106, 109, 118, 128, 122, 123, 124, 125, 135, 122, 125, 118, 123, 138, 54, 106, 127, 122, 121, 111, 126, 138, 122, 128, 109, 108, 129, 121, 129, 121, 119, 122, 123, 117, 120, 93, 129, 109, 125, 127, 116, 116, 126, 132, 96, 120, 131, 122, 126, 117, 117, 117, 139, 149, 116, 103, 129, 133, 132, 110, 127, 122, 126, 128, 120, 125, 123, 132, 122, 118, 112, 121, 127, 102, 127, 96, 114, 124, 218, 96, 134, 127, 167, 130, 128, 126, 116, 107, 122, 121, 118, 150, 120, 130, 125, 146, 121, 129, 122, 117, 124, 126, 128, 132, 127, 117, 115, 131, 126, 122, 125, 121, 118, 124, 117, 125, 127, 118, 109, 134, 117, 121, 115, 125, 117, 129, 129, 127, 135, 124, 122, 127, 125, 117, 132, 136, 91, 138, 115, 126, 120, 128, 123, 121, 127, 121, 122, 126, 113, 125, 120, 127, 133, 120, 122, 125, 125, 128, 150, 114, 145, 124, 134, 122, 121, 122, 125, 114, 117, 131, 105, 118, 130, 137, 134, 121, 117, 114, 118, 121, 112, 134, 128, 110, 119, 124, 121, 114, 141, 114, 125, 123, 135, 121, 113, 132, 122, 125, 120, 115, 121, 131, 121, 124, 119, 122, 136, 120, 121, 118, 136, 124, 113, 118, 133, 127, 119, 115, 131, 124, 129, 129, 121, 113, 127, 124, 122, 125, 135, 118, 134, 118, 131, 131, 144, 126, 118, 128, 113, 119, 136, 137, 110, 123, 126, 124, 120, 151, 124, 124, 118, 118, 132, 121, 125, 119, 129, 124, 127, 98, 127, 128, 129, 132, 127, 122, 123, 131, 122, 103, 128, 115, 126, 116, 110, 116, 127, 117, 125, 117, 126, 120, 133, 130, 118, 122, 136, 134, 130, 131, 120, 119, 132, 121, 141, 124, 125, 135, 112, 120, 122, 101, 128, 121, 115, 130, 128, 128, 125, 125, 122, 116, 122, 126, 126, 126, 125, 122, 121, 115, 130, 123, 142, 123, 118, 117, 115, 123, 108, 127, 122, 127, 126, 121, 118, 133, 118, 128, 113, 128, 113, 124, 121, 121, 101, 126, 125, 125, 127, 124, 118, 125, 137, 140, 122, 122, 112, 119, 141, 142, 133, 124, 126, 124, 117, 121, 121, 114, 121, 118, 131, 120, 124, 113, 116, 113, 127, 113, 140, 126, 124, 122, 116, 126, 121, 104, 121, 125, 128, 118, 120, 126, 132, 121, 127, 116, 123, 131, 107, 122, 114, 130, 127, 120, 127, 109, 141, 128, 137, 114, 118, 182, 121, 115, 116, 132, 94, 108, 122, 125, 121, 124, 120, 124, 120, 121, 125, 139, 117, 122, 122, 132, 123, 120, 128, 129, 108, 110, 129, 151, 112, 130, 127, 122, 139, 121, 122, 119, 125, 110, 139, 124, 124, 143, 130, 116, 125, 117, 127, 126, 132, 128, 130, 129, 112, 133, 127, 115, 122, 84, 136, 114, 142, 152, 120, 131, 115, 124, 116, 121, 115, 91, 134, 122, 112, 128, 113, 124, 130, 127, 102, 114, 130, 126, 126, 125, 110, 127, 127, 121, 120, 127, 133, 131, 123, 125, 123, 121, 125, 109, 116, 123, 116, 125, 121, 116, 127, 90, 145, 124, 125, 122, 143, 122, 108, 128, 122, 132, 129, 95, 121, 123, 123, 126, 113, 125, 122, 122, 121, 117, 126, 112, 120, 115, 110, 122, 117, 124, 115, 125, 127, 89, 131, 125, 122, 115, 120, 126, 109, 116, 142, 109, 123, 118, 132, 120, 125, 110, 113, 102, 128, 119, 119, 115, 125, 133, 127, 120, 112, 111, 125, 130, 128, 134, 116, 119, 114, 115, 127, 135, 126, 123, 119, 117, 132, 120, 130, 107, 127, 122, 86, 119, 126, 125, 129, 113, 120, 136, 106, 118, 124, 123, 115, 120, 122, 99, 117, 122, 121, 130, 126, 129, 134, 103, 136, 135, 91, 125, 123, 128, 118, 122, 121, 129, 125, 115, 126, 133, 136, 116, 104, 117, 117, 132, 124, 127, 121, 119, 127, 128, 123, 118, 113, 133, 125, 128, 122, 124, 123, 122, 129, 126, 127, 129, 135, 130, 120, 123, 120, 125, 129, 120, 129, 129, 134, 131, 118, 120, 121, 121, 136, 122, 130, 120, 122, 123, 117, 133, 129, 135, 119, 118, 123, 122, 132, 131, 124, 118, 131, 126, 119, 121, 123, 117, 114, 123, 126, 128, 122, 126, 125, 128, 127, 139, 128, 126, 127, 125, 123, 123, 120, 124, 120, 130, 110, 127, 128, 128, 122, 114, 122, 114, 131, 125, 121, 129, 131, 116, 137, 118, 124, 110, 142, 123, 123, 153, 124, 117, 121, 123, 122, 130, 130, 127, 123, 123, 124, 119, 120, 140, 123, 127, 122, 129, 126, 124, 121, 126, 124, 131, 130, 120, 121, 122, 123, 123, 125, 122, 117, 115, 129, 128, 121, 121, 126, 120, 124, 124, 132, 125, 124, 112, 132, 117, 124, 119, 124, 125, 126, 120, 124, 122, 116, 123, 122, 128, 127, 113, 123, 131, 125, 128, 133, 120, 128, 127, 119, 111, 131, 123, 124, 121, 120, 122, 128, 123, 131, 124, 125, 132, 120, 127, 123, 126, 126, 122, 121, 129, 110, 121, 113, 122, 134, 126, 128, 127, 121, 128, 117, 120, 129, 130, 122, 129, 117, 123, 115, 126, 128, 133, 118, 123, 124, 126, 105, 126, 124, 121, 118, 127, 131, 121, 127, 130, 127, 122, 122, 129, 117, 128, 112, 118, 120, 128, 130, 121, 130, 118, 120, 135, 125, 124, 117, 115, 123, 128, 129, 119, 111, 127, 123, 124, 130, 126, 117, 115, 128, 129, 131, 121, 121, 119, 119, 122, 120, 137, 123, 126, 131, 130, 136, 121, 120, 117, 119, 113, 127, 129, 125, 130, 129, 118, 128, 115, 130, 115, 139, 149, 121, 110, 112, 118, 111, 127, 125, 116, 116, 124, 112, 104, 122, 130, 126, 125, 124, 128, 143, 121, 110, 117, 123, 114, 135, 127, 122, 117, 111, 130, 130, 130, 127, 130, 124, 123, 128, 130, 109, 128, 127, 134, 126, 117, 113, 127, 124, 121, 124, 127, 114, 124, 129, 118, 121, 121, 126, 129, 134, 106, 107, 135, 108, 128, 137, 159, 117, 127, 114, 124, 117, 131, 117, 110, 125, 123, 125, 133, 162, 126, 133, 115, 119, 125, 173, 133, 123, 135, 125, 114, 123, 116, 148, 121, 123, 119, 125, 122, 122, 120, 119, 125, 118, 129, 117, 121, 116, 126, 111, 112, 122, 130, 121, 115, 131, 137, 134, 111, 119, 110, 128, 124, 124, 124, 133, 110, 130, 119, 141, 119, 132, 122, 141, 111, 102, 113, 130, 125, 124, 127, 134, 108, 118, 131, 102, 126, 119, 135, 102, 149, 122, 119, 117, 158, 110, 124, 132, 127, 118, 123, 119, 122, 123, 136, 125, 121, 123, 131, 122, 126, 126, 114, 125, 129, 128, 122, 133, 125, 106, 126, 126, 133, 122, 122, 118, 123, 125, 129, 123, 117, 115, 124, 123, 125, 133, 118, 113, 120, 119, 127, 147, 94, 133, 126, 116, 128, 132, 113, 126, 127, 118, 122, 121, 125, 125, 120, 120, 135, 124, 126, 121, 136, 140, 122, 134, 138, 121, 121, 125, 127, 116, 122, 126, 118, 131, 130, 128, 111, 119, 125, 115, 113, 122, 119, 131, 112, 118, 117, 116, 127, 123, 117, 155, 118, 132, 134, 118, 125, 121, 118, 128, 125, 107, 122, 132, 75, 115, 121, 107, 134, 139, 130, 139, 137, 128, 125, 120, 124, 118, 124, 123, 162, 117, 122, 121, 147, 117, 118, 120, 120, 122, 122, 131, 145, 122, 125, 118, 126, 107, 125, 125, 134, 128, 123, 139, 127, 127, 118, 115, 113, 138, 125, 114, 125, 112, 119, 116, 109, 125, 135, 123, 128, 120, 126, 121, 121, 128, 125, 129, 121, 125, 127, 121, 110, 116, 125, 111, 125, 127, 126, 126, 112, 112, 115, 111, 127, 151, 130, 123, 115, 125, 129, 117, 127, 127, 119, 96, 36, 127, 114, 111, 120, 119, 121, 127, 139, 142, 125, 123, 118, 115, 127, 119, 127, 125, 124, 126, 87, 65, 169, 120, 129, 130, 120, 127, 118, 169, 124, 123, 117, 100, 132, 160, 120, 124, 119, 118, 129, 117, 119, 103, 135, 119, 122, 130, 117, 122, 133, 142, 123, 122, 124, 122, 122, 124, 113, 131, 172, 116, 132, 104, 126, 141, 117, 136, 119, 110, 124, 122, 152, 129, 130, 121, 141, 117, 118, 120, 167, 115, 129, 127, 116, 117, 117, 128, 130, 121, 127, 122, 152, 120, 119, 123, 125, 127, 128, 121, 123, 121, 131, 132, 128, 115, 128, 133, 120, 128, 121, 113, 122, 132, 121, 143, 123, 119, 127, 130, 123, 124, 121, 121, 121, 122, 128, 117, 129, 143, 125, 116, 134, 130, 120, 122, 119, 133, 127, 119, 126, 117, 138, 117, 121, 121, 125, 119, 122, 128, 139, 104, 118, 124, 125, 130, 128, 132, 102, 123, 128, 129, 124, 136, 142, 130, 120, 130, 130, 100, 124, 112, 124, 125, 127, 128, 125, 113, 124, 124, 122, 130, 132, 122, 135, 146, 123, 124, 148, 103, 127, 128, 106, 124, 124, 94, 117, 111, 126, 132, 121, 126, 129, 128, 127, 119, 123, 112, 129, 125, 118, 133, 131, 124, 134, 129, 138, 134, 114, 116, 122, 124, 124, 141, 129, 130, 121, 123, 138, 131, 136, 122, 114, 133, 132, 116, 124, 121, 124, 131, 120, 157, 153, 120, 122, 124, 124, 122, 137, 116, 131, 121, 131, 113, 129, 133, 115, 121, 121, 123, 124, 127, 128, 121, 116, 150, 115, 127, 123, 125, 120, 124, 124, 126, 131, 117, 142, 122, 73, 117, 120, 136, 133, 131, 124, 134, 127, 123, 117, 118, 136, 116, 140, 113, 140, 137, 131, 128, 127, 153, 132, 125, 131, 118, 119, 124, 116, 134, 120, 110, 129, 124, 123, 118, 125, 124, 117, 154, 122, 124, 120, 137, 133, 105, 121, 106, 129, 83, 98, 123, 122, 129, 133, 119, 123, 124, 113, 118, 130, 122, 122, 132, 129, 121, 129, 135, 127, 118, 147, 123, 130, 122, 130, 123, 122, 127, 123, 116, 114, 131, 121, 130, 125, 120, 130, 121, 116, 121, 110, 117, 108, 125, 127, 124, 98, 104, 141, 144, 119, 115, 122, 133, 127, 143, 127, 150, 123, 105, 121, 113, 110, 108, 144, 152, 148, 136, 132, 137, 115, 120, 117, 102, 128, 121, 128, 134, 124, 112, 140, 121, 111, 162, 111, 127, 113, 115, 119, 136, 128, 134, 140, 125, 110, 154, 153, 122, 137, 136, 136, 105, 114, 119, 129, 120, 126, 132, 122, 97, 89, 122, 122, 127, 114, 127, 131, 121, 141, 119, 109, 124, 110, 117, 100, 126, 134, 128, 130, 136, 111, 102, 128, 125, 127, 132, 135, 117, 131, 124, 134, 127, 119, 123, 119, 118, 106, 119, 118, 122, 112, 123, 120, 128, 126, 117, 119, 129, 105, 121, 129, 114, 122, 120, 135, 120, 143, 119, 120, 112, 118, 130, 142, 122, 129, 130, 113, 116, 124, 118, 153, 120, 152, 124, 127, 132, 121, 130, 108, 119, 125, 118, 121, 121, 155, 108, 127, 139, 122, 91, 98, 128, 111, 137, 131, 106, 125, 128, 135, 121, 126, 141, 116, 122, 124, 121, 128, 124, 127, 117, 129, 131, 122, 117, 125, 118, 119, 128, 133, 122, 130, 110, 124, 151, 103, 122, 117, 136, 118, 128, 91, 106, 122, 118, 114, 140, 125, 124, 111, 129, 110, 131, 105, 132, 111, 107, 131, 103, 113, 96, 113, 116, 120, 139, 127, 111, 109, 142, 118, 137, 130, 108, 115, 117, 109, 119, 126, 119, 139, 116, 135, 120, 130, 101, 123, 134, 129, 128, 136, 101, 111, 102, 120, 111, 108, 122, 125, 99, 124, 124, 120, 129, 121, 116, 106, 126, 121, 117, 120, 124, 125, 124, 117, 99, 92, 141, 120, 127, 117, 126, 108, 158, 120, 125, 120, 129, 120, 131, 127, 125, 120, 124, 135, 130, 132, 111, 122, 134, 114, 118, 122, 120, 131, 141, 160, 138, 127, 139, 122, 128, 130, 125, 103, 127, 111, 129, 119, 123, 125, 126, 130, 134, 115, 125, 128, 119, 92, 107, 114, 131, 140, 128, 126, 134, 119, 152, 129, 124, 120, 141, 126, 130, 124, 111, 128, 123, 104, 145, 113, 127, 132, 128, 129, 138, 129, 104, 129, 140, 115, 120, 112, 107, 130, 128, 125, 126, 109, 112, 109, 116, 134, 128, 97, 125, 116, 128, 130, 124, 120, 110, 112, 121, 115, 134, 125, 114, 125, 108, 115, 124, 117, 125, 128, 127, 127, 121, 119, 131, 118, 115, 111, 130, 131, 104, 121, 125, 116, 151, 135, 114, 150, 119, 124, 116, 121, 131, 125, 128, 131, 109, 118, 125, 117, 134, 122, 124, 136, 114, 116, 132, 131, 123, 114, 130, 96, 121, 121, 145, 133, 100, 100, 126, 118, 108, 126, 139, 101, 132, 131, 128, 112, 131, 125, 164, 140, 121, 109, 146, 110, 114, 129, 123, 118, 136, 108, 130, 120, 119, 137, 124, 112, 131, 128, 129, 112, 100, 125, 128, 125, 120, 127, 141, 117, 132, 131, 119, 138, 126, 125, 135, 121, 129, 131, 166, 118, 128, 123, 125, 125, 130, 128, 148, 129, 106, 116, 113, 118, 100, 118, 118, 118, 126, 118, 130, 111, 120, 125, 136, 160, 126, 121, 131, 121, 137, 126, 111, 125, 119, 125, 121, 123, 121, 127, 149, 128, 118, 118, 125, 130, 125, 129, 121, 120, 129, 117, 128, 125, 128, 131, 128, 123, 122, 119, 126, 120, 128, 113, 116, 129, 124, 114, 127, 128, 122, 123, 119, 123, 123, 100, 125, 115, 116, 123, 123, 114, 114, 131, 125, 122, 114, 117, 136, 120, 101, 128, 123, 125, 133, 123, 128, 127, 133, 123, 164, 131, 121, 167, 126, 113, 120, 126, 122, 129, 119, 121, 122, 122, 125, 115, 127, 81, 115, 119, 121, 124, 124, 117, 120, 124, 112, 120, 121, 120, 128, 114, 135, 128, 124, 121, 120, 127, 125, 120, 124, 120, 124, 144, 130, 126, 120, 150, 124, 125, 124, 120, 128, 121, 131, 121, 125, 122, 86, 126, 133, 124, 120, 125, 121, 119, 124, 141, 133, 122, 123, 125, 120, 124, 119, 142, 125, 123, 101, 119, 127, 122, 121, 122, 121, 122, 120, 128, 126, 126, 117, 127, 121, 129, 112, 131, 119, 128, 121, 125, 127, 126, 134, 120, 125, 108, 145, 127, 115, 113, 111, 134, 126, 120, 126, 125, 131, 118, 116, 126, 129, 124, 125, 120, 120, 124, 121, 121, 125, 116, 126, 126, 127, 139, 116, 124, 118, 120, 105, 126, 132, 137, 131, 125, 125, 124, 120, 126, 111, 130, 125, 109, 120, 116, 124, 119, 121, 115, 130, 125, 121, 138, 121, 126, 122, 125, 125, 118, 128, 91, 121, 121, 128, 127, 132, 117, 125, 120, 131, 153, 122, 124, 122, 126, 133, 117, 129, 142, 124, 121, 128, 133, 123, 124, 126, 125, 123, 120, 121, 127, 126, 127, 121, 122, 121, 128, 121, 125, 120, 123, 129, 121, 125, 130, 135, 122, 117, 122, 125, 122, 120, 127, 122, 128, 124, 121, 133, 139, 126, 129, 121, 126, 96, 119, 112, 125, 128, 123, 128, 121, 123, 130, 124, 126, 124, 123, 126, 127, 130, 126, 122, 129, 129, 128, 129, 119, 124, 140, 125, 123, 125, 121, 121, 117, 121, 122, 122, 118, 117, 134, 120, 117, 121, 130, 127, 125, 122, 118, 128, 130, 124, 120, 121, 131, 104, 125, 122, 122, 123, 119, 128, 123, 127, 120, 123, 123, 128, 123, 123, 124, 118, 128, 129, 123, 133, 134, 125, 120, 131, 124, 126, 130, 118, 125, 126, 121, 122, 122, 114, 102, 125, 124, 130, 125, 128, 119, 121, 123, 132, 112, 127, 124, 129, 122, 128, 121, 122, 123, 133, 135, 146, 81, 120, 127, 122, 134, 126, 128, 104, 122, 126, 122, 123, 124, 128, 125, 122, 115, 124, 117, 120, 126, 130, 135, 126, 109, 133, 120, 129, 124, 127, 124, 130, 127, 126, 133, 120, 124, 120, 128, 124, 127, 118, 119, 126, 121, 122, 118, 127, 125, 105, 133, 126, 130, 124, 110, 122, 122, 130, 143, 123, 132, 128, 112, 124, 122, 119, 121, 126, 120, 115, 124, 121, 124, 125, 125, 123, 119, 121, 121, 126, 123, 130, 123, 122, 125, 123, 123, 137, 117, 117, 116, 127, 125, 114, 125, 123, 103, 134, 123, 128, 112, 95, 120, 125, 135, 138, 124, 116, 118, 119, 108, 106, 125, 91, 125, 129, 122, 130, 124, 126, 113, 141, 115, 125, 113, 119, 134, 121, 131, 124, 112, 131, 148, 79, 103, 112, 146, 123, 131, 125, 132, 124, 123, 120, 135, 129, 106, 134, 102, 124, 127, 101, 95, 128, 126, 127, 140, 110, 114, 116, 136, 105, 127, 105, 116, 131, 130, 129, 120, 121, 123, 124, 123, 120, 100, 104, 129, 124, 126, 101, 98, 102, 121, 138, 118, 128, 99, 131, 133, 117, 111, 130, 122, 150, 136, 131, 126, 112, 140, 116, 116, 117, 125, 105, 147, 68, 129, 134, 127, 142, 116, 126, 119, 131, 105, 131, 136, 132, 106, 126, 126, 129, 114, 120, 132, 118, 125, 114, 124, 112, 124, 134, 74, 123, 125, 132, 114, 114, 109, 130, 108, 111, 123, 130, 123, 92, 130, 123, 126, 135, 129, 144, 127, 114, 122, 122, 129, 125, 132, 120, 120, 119, 127, 121, 95, 107, 109, 128, 114, 117, 128, 126, 120, 124, 115, 131, 103, 131, 130, 120, 131, 125, 125, 136, 142, 124, 127, 118, 132, 116, 109, 121, 119, 133, 111, 116, 141, 121, 126, 123, 121, 117, 131, 122, 117, 116, 128, 106, 128, 131, 123, 135, 114, 122, 125, 131, 131, 135, 122, 80, 139, 129, 125, 128, 92, 122, 118, 121, 89, 106, 120, 103, 96, 126, 126, 125, 105, 127, 90, 117, 116, 123, 118, 129, 122, 116, 125, 127, 130, 136, 112, 120, 131, 115, 113, 121, 123, 122, 117, 122, 121, 132, 131, 139, 119, 122, 127, 125, 126, 124, 121, 128, 129, 133, 122, 135, 142, 123, 125, 119, 127, 115, 120, 125, 125, 120, 123, 124, 115, 133, 125, 124, 117, 117, 127, 128, 127, 120, 99, 134, 128, 124, 132, 122, 119, 122, 125, 135, 130, 123, 125, 109, 118, 128, 145, 125, 128, 125, 143, 109, 119, 116, 137, 131, 132, 132, 120, 123, 120, 91, 125, 119, 118, 124, 115, 120, 123, 131, 125, 125, 111, 116, 125, 128, 122, 128, 128, 121, 128, 125, 127, 127, 111, 113, 119, 116, 119, 137, 131, 121, 115, 126, 122, 119, 140, 113, 119, 128, 131, 137, 117, 123, 123, 125, 123, 141, 145, 116, 116, 135, 122, 128, 124, 143, 133, 128, 131, 128, 127, 118, 135, 131, 117, 139, 124, 123, 101, 125, 134, 120, 122, 132, 130, 124, 131, 125, 119, 127, 126, 123, 121, 101, 165, 116, 116, 126, 135, 125, 136, 143, 127, 122, 121, 117, 126, 119, 147, 125, 102, 132, 129, 124, 133, 143, 114, 135, 127, 118, 119, 124, 122, 114, 118, 113, 126, 122, 125, 112, 114, 120, 152, 161, 115, 104, 125, 158, 129, 141, 126, 94, 124, 118, 87, 122, 132, 121, 148, 126, 111, 125, 94, 110, 120, 128, 121, 127, 128, 120, 126, 119, 119, 118, 101, 130, 130, 125, 139, 121, 125, 121, 124, 124, 120, 119, 117, 124, 126, 119, 124, 135, 115, 117, 123, 115, 177, 119, 124, 124, 126, 112, 121, 121, 130, 121, 131, 134, 136, 136, 124, 118, 116, 125, 106, 121, 127, 130, 116, 134, 111, 127, 109, 123, 121, 141, 117, 114, 125, 117, 142, 117, 122, 124, 122, 140, 106, 137, 124, 125, 131, 124, 121, 132, 105, 113, 128, 129, 118, 124, 131, 126, 119, 132, 114, 119, 126, 147, 110, 126, 125, 150, 128, 132, 124, 124, 125, 130, 121, 136, 119, 126, 124, 116, 128, 130, 121, 134, 110, 132, 140, 139, 124, 127, 119, 125, 127, 100, 128, 131, 125, 134, 134, 114, 127, 116, 121, 119, 121, 124, 129, 108, 105, 125, 119, 103, 129, 123, 132, 132, 127, 123, 120, 126, 116, 112, 108, 126, 120, 110, 100, 123, 111, 122, 120, 110, 139, 126, 117, 113, 113, 128, 119, 134, 132, 140, 141, 126, 133, 111, 134, 114, 124, 129, 131, 117, 116, 129, 125, 125, 125, 131, 119, 123, 131, 126, 118, 110, 125, 128, 124, 141, 114, 134, 128, 120, 117, 129, 118, 102, 103, 148, 123, 127, 130, 134, 126, 126, 119, 104, 111, 121, 124, 115, 127, 132, 136, 106, 133, 124, 111, 123, 122, 121, 114, 122, 115, 119, 125, 135, 126, 120, 119, 119, 114, 128, 119, 127, 100, 119, 122, 120, 149, 125, 127, 116, 103, 131, 123, 116, 114, 123, 124, 132, 144, 118, 122, 129, 116, 119, 126, 119, 135, 113, 114, 111, 108, 127, 90, 129, 112, 113, 143, 144, 113, 131, 121, 116, 112, 125, 119, 125, 135, 129, 115, 122, 125, 114, 129, 135, 128, 126, 114, 118, 118, 129, 119, 118, 109, 131, 125, 118, 124, 128, 119, 121, 127, 122, 136, 114, 122, 128, 136, 115, 131, 125, 109, 131, 113, 132, 141, 117, 114, 136, 130, 122, 113, 123, 120, 123, 116, 132, 133, 113, 112, 117, 126, 108, 121, 128, 125, 126, 134, 111, 123, 120, 111, 125, 127, 124, 131, 143, 110, 120, 124, 117, 123, 117, 112, 115, 128, 129, 123, 119, 127, 148, 102, 122, 125, 139, 139, 120, 132, 122, 124, 117, 145, 114, 125, 128, 127, 117, 115, 100, 114, 123, 112, 132, 108, 122, 153, 120, 112, 115, 135, 128, 125, 120, 122, 118, 109, 119, 110, 112, 131, 122, 133, 119, 140, 119, 134, 123, 141, 137, 112, 133, 121, 131, 119, 139, 117, 119, 134, 122, 124, 114, 129, 131, 140, 112, 128, 116, 137, 114, 127, 126, 115, 117, 127, 107, 112, 122, 131, 123, 116, 112, 120, 121, 117, 114, 123, 128, 117, 123, 139, 125, 125, 125, 128, 133, 116, 117, 118, 112, 110, 118, 126, 121, 117, 127, 125, 130, 107, 128, 130, 122, 127, 127, 141, 134, 125, 125, 125, 122, 122, 119, 122, 128, 120, 116, 125, 118, 126, 123, 126, 131, 121, 139, 117, 112, 114, 125, 123, 112, 133, 127, 117, 116, 112, 136, 117, 131, 120, 128, 124, 112, 126, 129, 128, 131, 133, 130, 141, 110, 117, 120, 139, 145, 127, 109, 130, 124, 135, 121, 131, 129, 124, 113, 125, 122, 141, 127, 126, 122, 123, 124, 126, 125, 134, 122, 126, 130, 139, 122, 123, 123, 127, 127, 130, 123, 121, 131, 131, 128, 125, 121, 127, 128, 122, 126, 132, 125, 121, 119, 125, 95, 116, 128, 116, 125, 128, 125, 126, 131, 127, 125, 127, 118, 64, 125, 127, 112, 116, 134, 128, 125, 120, 129, 128, 123, 119, 108, 127, 133, 139, 122, 116, 128, 110, 126, 119, 127, 128, 150, 137, 116, 138, 122, 124, 131, 126, 128, 124, 122, 95, 127, 122, 139, 123, 132, 190, 120, 124, 112, 127, 127, 124, 122, 127, 131, 112, 125, 116, 128, 129, 124, 115, 133, 120, 118, 120, 127, 117, 114, 145, 115, 139, 122, 131, 135, 121, 127, 132, 121, 119, 119, 118, 128, 120, 133, 130, 126, 132, 118, 114, 132, 118, 130, 129, 112, 153, 126, 126, 123, 128, 135, 117, 124, 125, 131, 131, 134, 131, 134, 121, 122, 124, 125, 118, 125, 103, 131, 141, 128, 123, 127, 112, 132, 125, 127, 126, 120, 124, 135, 121, 117, 122, 139, 102, 126, 124, 123, 122, 124, 88, 120, 110, 125, 127, 128, 127, 118, 125, 114, 126, 116, 131, 120, 113, 127, 139, 125, 126, 127, 104, 127, 124, 142, 127, 171, 117, 124, 76, 127, 124, 121, 133, 128, 125, 117, 112, 139, 130, 126, 124, 122, 125, 122, 124, 126, 127, 122, 41, 128, 126, 122, 127, 124, 128, 125, 124, 121, 127, 100, 128, 123, 129, 110, 126, 144, 133, 127, 120, 139, 125, 122, 123, 127, 121, 118, 141, 124, 125, 121, 118, 122, 121, 113, 134, 117, 109, 126, 124, 124, 112, 130, 125, 122, 122, 117, 122, 121, 131, 112, 131, 131, 126, 123, 126, 128, 114, 134, 122, 120, 136, 126, 116, 121, 128, 110, 126, 110, 119, 108, 116, 117, 141, 127, 123, 134, 122, 117, 113, 119, 124, 124, 124, 112, 112, 132, 120, 127, 126, 117, 118, 114, 120, 135, 123, 118, 130, 159, 116, 122, 115, 124, 123, 124, 123, 115, 151, 123, 124, 119, 140, 118, 137, 115, 144, 119, 131, 126, 126, 123, 125, 125, 121, 125, 118, 131, 130, 118, 120, 118, 114, 128, 124, 117, 118, 138, 121, 132, 138, 123, 105, 164, 129, 125, 112, 144, 127, 126, 133, 118, 123, 114, 115, 119, 127, 118, 154, 116, 131, 119, 119, 130, 125, 116, 128, 113, 116, 120, 112, 129, 107, 126, 114, 126, 125, 120, 127, 122, 122, 118, 117, 128, 119, 131, 119, 134, 118, 141, 134, 121, 109, 123, 126, 123, 118, 117, 150, 118, 128, 140, 116, 112, 154, 122, 121, 120, 128, 127, 147, 141, 118, 122, 115, 122, 121, 120, 134, 130, 109, 119, 115, 115, 117, 124, 117, 122, 113, 116, 129, 111, 113, 122, 109, 119, 137, 136, 120, 110, 126, 123, 130, 115, 119, 120, 122, 118, 124, 144, 120, 139, 123, 102, 133, 130, 104, 110, 133, 128, 132, 124, 129, 128, 129, 137, 127, 127, 123, 123, 131, 127, 113, 124, 123, 126, 139, 114, 125, 131, 125, 126, 114, 121, 121, 129, 128, 130, 125, 125, 132, 146, 125, 132, 98, 127, 119, 120, 119, 130, 121, 145, 116, 119, 129, 130, 124, 139, 121, 100, 122, 112, 108, 129, 116, 120, 130, 123, 160, 123, 121, 122, 130, 132, 136, 119, 112, 119, 131, 127, 131, 133, 126, 112, 126, 116, 123, 118, 117, 126, 134, 120, 122, 115, 123, 121, 87, 124, 130, 128, 125, 127, 123, 126, 120, 89, 123, 117, 125, 123, 127, 129, 132, 142, 125, 126, 115, 142, 128, 121, 128, 126, 132, 126, 128, 111, 131, 132, 110, 117, 120, 110, 112, 135, 134, 121, 120, 123, 116, 115, 126, 115, 102, 125, 123, 141, 119, 117, 113, 117, 113, 125, 124, 131, 128, 131, 124, 127, 117, 119, 114, 127, 128, 120, 120, 123, 127, 136, 123, 119, 120, 106, 141, 117, 121, 137, 131, 101, 122, 118, 113, 126, 123, 124, 123, 104, 108, 159, 129, 120, 119, 121, 126, 132, 138, 118, 122, 137, 120, 136, 131, 117, 125, 135, 98, 130, 118, 131, 129, 122, 133, 120, 124, 136, 116, 125, 124, 153, 137, 139, 143, 123, 115, 147, 167, 119, 94, 109, 131, 103, 127, 129, 85, 126, 129, 125, 95, 125, 127, 130, 108, 120, 125, 121, 127, 120, 124, 126, 130, 128, 125, 112, 123, 116, 125, 141, 114, 126, 121, 123, 118, 131, 126, 113, 129, 131, 115, 136, 124, 138, 132, 132, 133, 119, 115, 128, 120, 124, 121, 115, 120, 124, 132, 121, 129, 124, 123, 108, 126, 120, 116, 123, 139, 131, 125, 116, 125, 124, 122, 128, 133, 123, 129, 127, 128, 134, 127, 130, 145, 119, 141, 120, 137, 96, 138, 131, 117, 125, 126, 125, 111, 124, 130, 121, 110, 144, 138, 138, 110, 123, 128, 120, 116, 123, 118, 116, 134, 118, 135, 121, 128, 163, 126, 124, 131, 123, 147, 125, 127, 120, 126, 126, 115, 141, 129, 127, 124, 127, 132, 122, 134, 134, 116, 127, 127, 113, 126, 122, 119, 114, 107, 136, 141, 126, 119, 111, 122, 130, 125, 118, 119, 138, 129, 116, 123, 124, 137, 120, 116, 120, 126, 115, 123, 134, 112, 122, 119, 94, 111, 128, 107, 121, 133, 123, 127, 135, 127, 120, 122, 131, 133, 132, 130, 109, 132, 130, 115, 125, 130, 168, 131, 116, 135, 137, 131, 124, 119, 129, 129, 112, 131, 146, 107, 111, 125, 122, 160, 114, 124, 123, 129, 119, 117, 120, 140, 119, 126, 123, 124, 125, 121, 128, 143, 126, 131, 121, 142, 128, 127, 127, 108, 123, 122, 137, 114, 124, 124, 141, 124, 128, 122, 135, 99, 128, 119, 118, 124, 119, 125, 126, 129, 124, 117, 108, 106, 114, 122, 138, 124, 120, 117, 136, 122, 126, 136, 117, 134, 96, 117, 117, 106, 106, 126, 119, 130, 125, 131, 121, 117, 117, 128, 122, 112, 125, 117, 135, 103, 115, 122, 124, 125, 135, 118, 133, 132, 113, 116, 129, 127, 120, 102, 127, 122, 114, 130, 114, 125, 132, 120, 125, 131, 118, 118, 112, 114, 117, 125, 116, 132, 120, 117, 132, 130, 121, 123, 128, 119, 130, 116, 118, 132, 116, 108, 126, 114, 118, 131, 126, 114, 114, 125, 135, 115, 133, 146, 115, 123, 126, 115, 118, 109, 118, 116, 117, 110, 114, 129, 122, 140, 131, 121, 112, 125, 125, 106, 100, 129, 120, 132, 126, 118, 168, 135, 131, 126, 124, 123, 128, 108, 127, 123, 117, 123, 123, 121, 127, 126, 118, 133, 126, 119, 122, 130, 117, 119, 132, 127, 112, 115, 124, 128, 121, 132, 115, 137, 109, 117, 137, 141, 126, 126, 139, 110, 118, 130, 124, 133, 111, 119, 121, 120, 136, 106, 120, 116, 135, 126, 124, 130, 125, 132, 130, 118, 112, 129, 114, 114, 124, 135, 121, 117, 129, 133, 123, 122, 138, 123, 109, 129, 155, 115, 129, 123, 144, 104, 134, 113, 117, 122, 111, 127, 127, 129, 131, 137, 139, 121, 133, 130, 123, 130, 118, 120, 104, 125, 127, 124, 115, 122, 114, 139, 123, 120, 139, 140, 109, 121, 138, 112, 131, 121, 121, 111, 135, 116, 135, 117, 139, 120, 106, 123, 127, 121, 124, 125, 128, 110, 117, 126, 137, 117, 130, 124, 125, 121, 127, 119, 124, 113, 124, 121, 122, 132, 121, 117, 118, 127, 120, 118, 115, 138, 128, 131, 130, 135, 142, 114, 115, 150, 141, 125, 123, 102, 127, 127, 130, 121, 127, 102, 119, 116, 124, 108, 112, 129, 113, 127, 117, 122, 143, 125, 121, 128, 105, 113, 94, 109, 100, 116, 124, 126, 135, 125, 129, 112, 131, 134, 129, 117, 140, 124, 126, 128, 128, 115, 129, 116, 113, 122, 126, 134, 110, 116, 111, 133, 156, 96, 124, 133, 110, 109, 112, 115, 116, 123, 106, 125, 132, 140, 129, 125, 116, 129, 98, 148, 88, 127, 115, 134, 131, 136, 125, 122, 101, 130, 132, 126, 119, 131, 120, 101, 124, 128, 138, 121, 139, 128, 129, 116, 127, 137, 130, 141, 125, 112, 123, 108, 152, 132, 94, 124, 129, 124, 119, 115, 133, 119, 112, 122, 130, 106, 133, 122, 134, 122, 127, 114, 121, 135, 134, 121, 120, 133, 119, 107, 128, 127, 128, 113, 121, 130, 134, 130, 129, 125, 131, 119, 120, 117, 119, 126, 131, 114, 127, 98, 141, 112, 123, 138, 128, 124, 127, 106, 135, 137, 117, 93, 126, 131, 131, 133, 122, 114, 120, 153, 129, 86, 130, 121, 121, 127, 126, 113, 132, 134, 125, 105, 129, 129, 129, 138, 107, 137, 130, 120, 131, 101, 122, 119, 115, 122, 142, 118, 114, 156, 89, 126, 125, 114, 105, 122, 145, 125, 109, 149, 133, 125, 127, 137, 132, 133, 114, 137, 106, 123, 107, 148, 129, 132, 74, 124, 136, 118, 111, 124, 129, 103, 131, 131, 130, 125, 95, 123, 133, 128, 142, 118, 133, 132, 124, 131, 132, 131, 127, 121, 116, 107, 114, 125, 113, 121, 128, 146, 127, 124, 118, 113, 138, 121, 125, 139, 101, 127, 129, 124, 106, 119, 117, 160, 124, 134, 114, 128, 133, 119, 160, 126, 122, 127, 121, 122, 126, 117, 118, 119, 123, 131, 123, 129, 135, 119, 126, 121, 126, 123, 123, 129, 84, 119, 90, 113, 120, 112, 119, 124, 124, 126, 155, 115, 117, 122, 191, 113, 165, 125, 112, 125, 140, 122, 191, 116, 136, 132, 140, 128, 131, 124, 122, 125, 117, 127, 142, 118, 114, 166, 112, 125, 128, 132, 114, 112, 124, 121, 127, 136, 92, 128, 125, 120, 124, 131, 117, 125, 113, 121, 135, 125, 124, 119, 112, 126, 111, 120, 124, 116, 120, 121, 125, 114, 118, 103, 133, 122, 134, 125, 123, 133, 116, 144, 125, 123, 122, 126, 121, 123, 156, 129, 150, 115, 130, 119, 126, 124, 132, 123, 137, 130, 128, 116, 146, 126, 123, 121, 123, 130, 119, 121, 125, 134, 119, 138, 116, 116, 130, 124, 126, 120, 93, 136, 133, 124, 123, 126, 113, 114, 144, 137, 120, 128, 113, 134, 135, 174, 148, 126, 126, 118, 120, 117, 105, 132, 124, 124, 135, 113, 123, 119, 113, 128, 121, 115, 148, 112, 134, 121, 118, 122, 126, 125, 128, 120, 126, 118, 122, 126, 114, 129, 113, 105, 125, 113, 112, 141, 138, 135, 92, 102, 123, 122, 126, 124, 150, 126, 133, 129, 126, 116, 118, 112, 115, 130, 122, 128, 102, 129, 120, 118, 128, 124, 109, 115, 119, 131, 134, 115, 115, 119, 119, 112, 126, 120, 124, 128, 124, 118, 137, 127, 118, 175, 128, 124, 118, 124, 117, 137, 113, 109, 134, 131, 101, 116, 126, 145, 114, 124, 106, 139, 109, 106, 128, 107, 117, 119, 124, 116, 120, 125, 132, 121, 119, 116, 129, 134, 122, 114, 120, 126, 114, 118, 109, 136, 125, 117, 114, 117, 113, 118, 128, 108, 135, 129, 112, 138, 101, 117, 135, 150, 124, 120, 116, 121, 135, 126, 125, 133, 128, 121, 130, 133, 111, 124, 115, 132, 121, 116, 126, 127, 121, 124, 123, 122, 127, 143, 124, 113, 125, 109, 118, 114, 117, 120, 112, 136, 136, 139, 124, 153, 135, 132, 131, 119, 113, 130, 134, 136, 154, 106, 119, 118, 126, 99, 106, 106, 127, 110, 117, 116, 127, 144, 140, 145, 118, 114, 120, 126, 132, 131, 123, 106, 113, 123, 125, 116, 117, 122, 124, 116, 133, 121, 122, 111, 122, 124, 128, 126, 114, 115, 113, 126, 119, 113, 121, 119, 122, 130, 133, 121, 115, 119, 112, 106, 124, 132, 134, 141, 124, 114, 116, 100, 125, 109, 116, 129, 129, 119, 125, 119, 124, 120, 116, 107, 106, 117, 123, 113, 111, 114, 97, 123, 104, 90, 128, 153, 106, 115, 123, 125, 114, 130, 124, 123, 115, 128, 101, 133, 127, 109, 110, 127, 111, 124, 126, 130, 134, 138, 113, 124, 122, 113, 131, 127, 116, 125, 127, 133, 103, 137, 118, 120, 119, 133, 109, 123, 130, 114, 127, 113, 105, 149, 121, 135, 129, 127, 132, 122, 116, 124, 107, 115, 124, 137, 114, 112, 132, 119, 124, 128, 123, 119, 119, 125, 131, 122, 125, 120, 120, 126, 123, 129, 116, 133, 140, 120, 124, 120, 132, 122, 123, 123, 126, 114, 115, 124, 134, 121, 122, 123, 139, 123, 126, 121, 123, 124, 122, 125, 122, 134, 138, 119, 119, 129, 113, 122, 125, 135, 121, 125, 123, 119, 115, 132, 124, 124, 128, 127, 120, 120, 136, 133, 120, 130, 131, 121, 122, 124, 124, 122, 118, 128, 131, 126, 117, 122, 130, 130, 126, 103, 123, 133, 127, 125, 125, 123, 118, 125, 117, 128, 113, 119, 128, 129, 120, 129, 104, 124, 124, 137, 114, 118, 125, 130, 133, 122, 126, 113, 122, 111, 128, 119, 117, 121, 120, 124, 119, 125, 140, 126, 122, 120, 125, 129, 132, 136, 118, 122, 122, 118, 121, 118, 121, 124, 127, 126, 123, 115, 127, 129, 131, 125, 131, 115, 125, 113, 118, 126, 120, 127, 120, 119, 122, 112, 126, 125, 113, 125, 129, 114, 123, 129, 129, 125, 125, 117, 123, 117, 125, 122, 118, 125, 122, 127, 124, 134, 128, 123, 131, 118, 119, 122, 121, 109, 124, 126, 123, 120, 118, 139, 123, 123, 125, 125, 114, 143, 127, 128, 118, 124, 127, 122, 125, 129, 131, 129, 116, 122, 123, 125, 128, 121, 118, 122, 115, 112, 123, 118, 109, 123, 121, 116, 122, 126, 118, 122, 113, 128, 131, 126, 114, 118, 131, 110, 130, 127, 122, 127, 129, 128, 114, 128, 147, 128, 122, 129, 124, 119, 114, 123, 118, 127, 127, 123, 118, 122, 127, 128, 134, 139, 100, 126, 99, 118, 115, 129, 128, 126, 131, 134, 116, 128, 116, 130, 122, 133, 127, 117, 118, 128, 115, 121, 114, 121, 120, 129, 123, 125, 132, 121, 118, 125, 133, 116, 129, 124, 122, 127, 126, 126, 126, 111, 127, 129, 115, 123, 124, 129, 130, 121, 114, 125, 100, 111, 121, 139, 124, 117, 139, 135, 132, 121, 123, 116, 125, 120, 136, 137, 122, 118, 137, 122, 123, 130, 121, 127, 124, 130, 127, 126, 124, 118, 121, 123, 123, 117, 114, 135, 137, 123, 116, 127, 128, 117, 136, 128, 129, 111, 128, 119, 118, 121, 122, 120, 143, 122, 122, 145, 126, 128, 128, 123, 123, 129, 114, 132, 112, 121, 128, 120, 129, 148, 118, 127, 125, 121, 126, 123, 119, 132, 115, 124, 134, 106, 120, 130, 129, 124, 110, 122, 123, 132, 129, 111, 127, 129, 135, 119, 109, 107, 139, 120, 130, 103, 126, 123, 117, 130, 122, 123, 143, 135, 131, 126, 123, 124, 137, 131, 120, 119, 129, 125, 111, 126, 127, 107, 139, 108, 123, 128, 125, 127, 120, 124, 129, 127, 124, 120, 132, 121, 107, 122, 128, 123, 120, 134, 127, 126, 126, 111, 129, 125, 124, 116, 118, 115, 120, 123, 124, 123, 123, 129, 121, 131, 121, 124, 120, 123, 115, 129, 135, 134, 132, 106, 131, 114, 144, 138, 123, 131, 116, 128, 134, 119, 118, 117, 127, 129, 117, 122, 121, 119, 116, 104, 126, 126, 130, 112, 94, 116, 128, 105, 138, 121, 134, 131, 123, 131, 127, 121, 120, 126, 122, 122, 125, 128, 138, 115, 119, 133, 122, 105, 121, 120, 127, 126, 122, 125, 121, 113, 129, 129, 119, 120, 125, 119, 125, 120, 120, 112, 113, 117, 104, 117, 118, 126, 121, 127, 124, 122, 130, 124, 116, 129, 138, 125, 123, 115, 123, 118, 131, 110, 120, 130, 137, 127, 131, 119, 124, 126, 117, 122, 117, 124, 135, 125, 124, 128, 122, 131, 118, 123, 125, 124, 119, 127, 126, 120, 118, 133, 123, 123, 126, 118, 125, 116, 113, 124, 128, 117, 122, 124, 129, 124, 132, 123, 120, 114, 127, 121, 114, 120, 121, 124, 118, 135, 137, 105, 128, 124, 120, 127, 128, 127, 123, 125, 130, 111, 133, 118, 130, 127, 119, 122, 135, 117, 119, 118, 117, 125, 110, 123, 113, 125, 118, 123, 123, 115, 103, 127, 124, 122, 118, 133, 117, 126, 131, 122, 134, 124, 126, 121, 119, 123, 123, 129, 121, 126, 130, 129, 133, 124, 136, 124, 127, 123, 131, 122, 134, 115, 125, 128, 106, 118, 124, 125, 113, 125, 126, 124, 127, 124, 122, 128, 124, 126, 128, 125, 124, 130, 120, 129, 122, 127, 118, 134, 114, 120, 123, 124, 126, 128, 127, 129, 123, 118, 128, 129, 131, 120, 128, 120, 120, 117, 132, 119, 126, 129, 121, 128, 125, 127, 127, 115, 121, 130, 134, 116, 115, 135, 119, 124, 133, 121, 119, 122, 115, 127, 135, 115, 132, 122, 120, 124, 124, 132, 132, 130, 109, 116, 135, 125, 132, 109, 116, 122, 121, 121, 114, 123, 120, 118, 127, 118, 124, 119, 122, 110, 129, 125, 119, 120, 127, 123, 128, 129, 129, 129, 116, 129, 108, 123, 129, 118, 134, 129, 116, 132, 142, 128, 123, 116, 128, 121, 140, 118, 132, 132, 130, 104, 103, 134, 123, 114, 117, 146, 123, 116, 133, 115, 133, 135, 127, 125, 130, 126, 119, 137, 119, 132, 118, 136, 115, 126, 116, 122, 112, 126, 120, 128, 109, 115, 112, 115, 123, 124, 132, 127, 131, 123, 125, 161, 125, 126, 120, 118, 117, 140, 128, 97, 123, 119, 133, 116, 138, 130, 114, 115, 130, 120, 127, 119, 118, 115, 122, 122, 122, 123, 127, 131, 110, 110, 117, 133, 116, 129, 124, 115, 119, 125, 126, 126, 121, 121, 133, 120, 133, 131, 127, 123, 143, 124, 122, 120, 126, 123, 123, 136, 132, 124, 145, 123, 134, 135, 123, 123, 111, 132, 126, 134, 132, 123, 113, 119, 127, 114, 138, 101, 117, 139, 134, 123, 128, 125, 118, 127, 135, 125, 118, 122, 133, 130, 141, 140, 129, 126, 129, 117, 126, 127, 118, 115, 128, 134, 125, 124, 124, 117, 120, 125, 122, 123, 110, 129, 112, 156, 123, 135, 119, 141, 112, 151, 98, 119, 127, 109, 153, 132, 117, 191, 120, 125, 127, 127, 121, 124, 134, 110, 126, 122, 129, 125, 128, 122, 114, 127, 126, 123, 116, 111, 111, 127, 120, 122, 123, 125, 115, 117, 123, 124, 111, 137, 110, 129, 112, 120, 104, 121, 131, 114, 136, 125, 132, 130, 121, 147, 118, 122, 118, 120, 152, 126, 134, 117, 128, 127, 112, 128, 139, 105, 146, 128, 140, 119, 118, 145, 115, 130, 136, 124, 140, 122, 134, 114, 121, 119, 130, 113, 115, 133, 120, 116, 119, 136, 139, 112, 107, 115, 111, 121, 120, 125, 124, 96, 124, 142, 130, 139, 133, 137, 117, 138, 127, 123, 116, 126, 128, 119, 104, 115, 136, 113, 112, 99, 119, 144, 116, 121, 113, 128, 123, 118, 112, 135, 111, 132, 126, 125, 125, 141, 128, 126, 130, 125, 130, 124, 117, 121, 121, 124, 122, 124, 109, 155, 110, 112, 121, 97, 121, 114, 141, 152, 132, 131, 111, 115, 124, 114, 104, 131, 118, 118, 120, 134, 124, 130, 109, 140, 114, 121, 125, 142, 123, 134, 138, 131, 117, 127, 146, 132, 130, 125, 134, 128, 122, 120, 123, 125, 134, 122, 140, 123, 138, 122, 104, 124, 124, 130, 105, 112, 128, 120, 122, 129, 126, 129, 116, 144, 109, 126, 129, 137, 138, 143, 128, 127, 110, 101, 127, 128, 112, 129, 126, 112, 125, 148, 133, 126, 120, 137, 94, 116, 136, 130, 124, 135, 139, 141, 125, 81, 109, 123, 124, 116, 134, 106, 118, 124, 113, 128, 120, 117, 120, 122, 118, 119, 147, 123, 96, 129, 122, 132, 126, 114, 111, 139, 123, 129, 136, 122, 116, 125, 128, 143, 114, 130, 111, 141, 111, 120, 133, 129, 131, 107, 127, 116, 132, 118, 107, 134, 118, 135, 122, 116, 120, 128, 117, 119, 117, 135, 130, 124, 102, 125, 119, 116, 113, 119, 129, 112, 117, 129, 123, 123, 113, 128, 131, 119, 121, 120, 109, 124, 126, 115, 105, 135, 130, 111, 115, 118, 120, 117, 112, 118, 104, 109, 128, 126, 130, 117, 106, 132, 140, 139, 132, 120, 124, 136, 119, 118, 122, 117, 110, 127, 141, 119, 135, 109, 112, 127, 138, 100, 126, 132, 124, 116, 110, 135, 131, 132, 124, 125, 126, 129, 113, 120, 120, 129, 135, 123, 124, 144, 133, 127, 120, 122, 105, 116, 127, 124, 114, 121, 122, 127, 101, 117, 121, 110, 120, 138, 135, 124, 119, 114, 129, 117, 120, 124, 127, 156, 123, 114, 110, 125, 116, 138, 113, 109, 118, 126, 126, 104, 121, 113, 125, 122, 127, 115, 123, 103, 120, 122, 136, 123, 112, 115, 123, 132, 119, 121, 102, 131, 125, 112, 120, 132, 126, 126, 135, 134, 123, 113, 118, 131, 127, 101, 122, 131, 109, 122, 121, 125, 130, 125, 123, 128, 106, 112, 133, 121, 114, 109, 122, 106, 124, 120, 137, 136, 132, 113, 119, 126, 121, 123, 121, 112, 109, 137, 115, 114, 129, 133, 149, 118, 124, 130, 77, 119, 115, 136, 124, 121, 136, 124, 125, 125, 135, 131, 134, 101, 133, 139, 124, 115, 101, 133, 101, 117, 119, 115, 129, 120, 124, 114, 109, 120, 125, 158, 133, 125, 139, 125, 101, 118, 107, 126, 118, 115, 110, 142, 149, 108, 122, 125, 126, 110, 120, 113, 137, 129, 118, 112, 115, 125, 122, 123, 120, 127, 123, 124, 133, 118, 128, 130, 127, 118, 154, 119, 126, 131, 134, 120, 142, 127, 134, 151, 97, 111, 120, 118, 121, 121, 133, 118, 143, 128, 131, 120, 122, 124, 122, 122, 119, 114, 120, 124, 118, 143, 118, 138, 119, 129, 119, 129, 124, 131, 138, 133, 118, 128, 135, 112, 119, 121, 122, 117, 128, 113, 126, 122, 133, 96, 130, 121, 124, 127, 117, 131, 121, 123, 109, 122, 128, 124, 132, 121, 114, 124, 124, 125, 125, 123, 121, 131, 135, 127, 122, 133, 118, 132, 125, 121, 97, 127, 123, 106, 126, 121, 160, 125, 118, 117, 113, 125, 129, 126, 123, 121, 122, 127, 123, 127, 121, 132, 109, 120, 125, 109, 115, 128, 125, 118, 121, 116, 122, 121, 116, 128, 126, 119, 128, 134, 119, 126, 123, 125, 119, 130, 114, 128, 122, 127, 119, 112, 131, 120, 116, 122, 125, 127, 97, 128, 131, 125, 125, 124, 132, 129, 153, 121, 114, 124, 108, 119, 133, 118, 126, 134, 125, 134, 130, 131, 139, 125, 126, 116, 117, 131, 161, 125, 121, 129, 113, 109, 104, 184, 127, 124, 156, 82, 125, 125, 126, 125, 131, 125, 117, 84, 122, 123, 124, 105, 129, 129, 121, 120, 115, 121, 115, 123, 117, 122, 139, 128, 120, 121, 118, 120, 116, 124, 119, 110, 123, 128, 127, 109, 124, 125, 119, 124, 142, 134, 118, 131, 142, 120, 128, 130, 123, 122, 126, 129, 124, 128, 123, 122, 124, 124, 125, 101, 123, 128, 129, 130, 89, 121, 130, 120, 124, 120, 133, 111, 117, 119, 128, 129, 96, 116, 136, 133, 140, 128, 129, 117, 131, 120, 131, 112, 117, 123, 131, 106, 125, 124, 135, 111, 123, 111, 127, 107, 125, 126, 119, 132, 123, 119, 133, 129, 126, 127, 115, 99, 125, 106, 120, 117, 122, 117, 121, 129, 159, 118, 120, 119, 143, 123, 113, 106, 109, 123, 131, 135, 129, 125, 124, 120, 153, 120, 99, 118, 117, 135, 123, 119, 172, 132, 138, 131, 117, 130, 128, 121, 122, 132, 118, 100, 140, 131, 124, 120, 123, 124, 111, 109, 158, 141, 115, 131, 144, 115, 121, 124, 112, 127, 123, 125, 120, 126, 138, 124, 128, 118, 133, 134, 120, 136, 137, 124, 90, 124, 124, 126, 121, 128, 121, 131, 137, 124, 129, 120, 116, 119, 127, 95, 113, 140, 120, 122, 117, 135, 128, 131, 123, 134, 129, 120, 119, 168, 107, 122, 120, 127, 126, 127, 108, 115, 110, 117, 111, 139, 127, 129, 97, 157, 115, 118, 119, 124, 123, 118, 122, 133, 125, 124, 137, 118, 131, 123, 131, 135, 127, 134, 125, 136, 141, 132, 134, 110, 111, 128, 128, 125, 124, 119, 123, 122, 123, 107, 128, 115, 122, 143, 124, 123, 139, 159, 117, 120, 93, 145, 120, 122, 120, 120, 142, 124, 128, 121, 115, 108, 117, 123, 112, 123, 122, 117, 130, 108, 123, 135, 145, 90, 120, 126, 136, 120, 91, 117, 110, 113, 121, 127, 112, 103, 82, 106, 116, 116, 133, 132, 146, 158, 145, 140, 132, 127, 113, 120, 124, 131, 114, 135, 125, 121, 120, 111, 118, 122, 127, 131, 100, 112, 108, 127, 161, 102, 122, 125, 112, 118, 113, 117, 107, 113, 135, 125, 137, 143, 117, 137, 140, 137, 90, 110, 86, 127, 136, 137, 120, 117, 119, 146, 132, 124, 136, 125, 113, 130, 130, 123, 119, 145, 121, 119, 144, 123, 143, 145, 136, 124, 134, 142, 132, 135, 136, 126, 133, 126, 97, 112, 134, 106, 117, 116, 114, 105, 114, 119, 129, 116, 124, 118, 112, 110, 135, 122, 141, 125, 117, 123, 117, 144, 116, 99, 121, 128, 130, 95, 124, 117, 124, 135, 125, 125, 131, 114, 115, 116, 117, 130, 124, 109, 133, 112, 121, 101, 120, 127, 114, 123, 129, 113, 127, 118, 101, 132, 121, 130, 143, 142, 134, 107, 113, 131, 129, 83, 123, 127, 116, 130, 124, 106, 124, 142, 128, 121, 137, 118, 126, 124, 115, 123, 121, 123, 139, 139, 131, 111, 118, 137, 151, 115, 105, 123, 144, 121, 121, 112, 131, 124, 129, 121, 111, 121, 137, 126, 130, 149, 154, 143, 104, 123, 106, 134, 109, 121, 137, 148, 125, 129, 135, 113, 124, 124, 131, 111, 148, 141, 133, 121, 94, 115, 138, 125, 133, 119, 130, 142, 131, 147, 131, 133, 115, 108, 108, 91, 108, 112, 127, 114, 118, 126, 139, 130, 130, 106, 135, 123, 136, 142, 103, 109, 121, 127, 100, 123, 133, 137, 140, 131, 108, 121, 129, 122, 123, 130, 124, 123, 113, 134, 106, 120, 121, 126, 123, 115, 99, 123, 99, 113, 130, 137, 137, 126, 149, 125, 113, 125, 131, 131, 116, 140, 102, 122, 122, 125, 135, 125, 130, 151, 91, 121, 133, 114, 124, 139, 126, 109, 118, 134, 120, 113, 112, 124, 112, 109, 116, 116, 113, 122, 117, 118, 132, 98, 128, 111, 118, 130, 130, 119, 92, 99, 121, 115, 99, 116, 125, 129, 126, 132, 136, 126, 130, 134, 133, 137, 116, 131, 133, 142, 137, 142, 142, 130, 122, 125, 118, 130, 117, 129, 110, 137, 117, 107, 120, 134, 129, 117, 120, 124, 116, 119, 128, 133, 115, 118, 131, 138, 127, 137, 117, 114, 115, 125, 144, 130, 122, 129, 133, 133, 125, 112, 127, 118, 133, 131, 126, 132, 157, 104, 130, 127, 131, 122, 108, 110, 105, 115, 116, 125, 129, 118, 123, 140, 129, 120, 136, 145, 114, 130, 115, 110, 120, 118, 118, 130, 120, 125, 128, 117, 116, 126, 120, 180, 118, 117, 108, 116, 113, 119, 139, 109, 130, 134, 138, 135, 130, 124, 131, 119, 114, 134, 122, 108, 123, 104, 127, 156, 105, 133, 128, 130, 107, 131, 123, 102, 121, 130, 122, 121, 121, 137, 115, 108, 129, 128, 141, 116, 134, 119, 125, 129, 100, 127, 115, 118, 124, 129, 134, 117, 123, 134, 133, 128, 110, 135, 116, 108, 133, 135, 110, 140, 140, 137, 122, 126, 156, 107, 121, 105, 127, 131, 120, 120, 122, 124, 101, 124, 126, 146, 126, 129, 123, 130, 131, 121, 123, 127, 119, 123, 127, 154, 125, 127, 122, 131, 135, 124, 123, 118, 128, 127, 127, 120, 116, 126, 132, 125, 120, 127, 119, 125, 124, 121, 113, 123, 125, 123, 120, 130, 132, 117, 126, 126, 131, 126, 147, 98, 148, 125, 128, 120, 131, 125, 118, 124, 120, 127, 119, 122, 107, 125, 127, 139, 126, 123, 127, 125, 124, 125, 127, 128, 146, 126, 125, 129, 125, 120, 127, 126, 115, 133, 130, 123, 128, 122, 129, 119, 127, 147, 131, 114, 130, 122, 130, 128, 126, 114, 130, 126, 130, 127, 120, 122, 125, 121, 122, 127, 126, 127, 124, 125, 124, 127, 120, 130, 126, 123, 117, 121, 124, 130, 121, 119, 114, 120, 128, 113, 129, 125, 123, 129, 119, 117, 132, 127, 129, 126, 111, 111, 126, 122, 121, 120, 124, 123, 128, 107, 135, 124, 129, 126, 131, 127, 124, 128, 132, 123, 129, 119, 126, 140, 121, 129, 124, 132, 127, 129, 124, 124, 116, 119, 125, 136, 131, 130, 132, 123, 129, 117, 116, 122, 133, 132, 119, 121, 126, 124, 127, 126, 125, 124, 126, 129, 118, 131, 123, 123, 127, 136, 117, 126, 131, 117, 128, 132, 144, 130, 134, 120, 120, 118, 130, 126, 119, 120, 126, 123, 127, 142, 120, 121, 122, 122, 122, 126, 118, 127, 133, 127, 132, 94, 118, 129, 129, 129, 120, 125, 129, 126, 122, 114, 136, 121, 128, 122, 132, 124, 117, 129, 117, 118, 131, 117, 113, 115, 123, 107, 108, 152, 112, 108, 121, 113, 138, 120, 120, 128, 126, 122, 123, 128, 131, 121, 121, 122, 118, 132, 111, 125, 121, 112, 116, 139, 122, 127, 115, 123, 105, 111, 124, 122, 133, 125, 123, 135, 121, 128, 107, 126, 129, 122, 116, 130, 133, 112, 129, 122, 118, 147, 156, 125, 126, 116, 119, 126, 108, 127, 124, 131, 117, 125, 120, 122, 115, 123, 137, 137, 134, 134, 115, 116, 129, 119, 133, 115, 117, 134, 127, 125, 123, 145, 119, 151, 140, 131, 108, 110, 112, 132, 151, 136, 122, 122, 109, 125, 126, 99, 125, 108, 124, 124, 122, 140, 130, 133, 130, 128, 130, 127, 113, 128, 117, 117, 129, 119, 124, 131, 110, 121, 111, 120, 126, 118, 130, 133, 138, 110, 136, 130, 147, 133, 121, 105, 117, 121, 115, 111, 121, 104, 108, 124, 117, 115, 118, 120, 129, 111, 147, 110, 129, 117, 123, 103, 140, 114, 123, 131, 129, 143, 120, 126, 118, 114, 127, 132, 122, 117, 121, 108, 112, 114, 112, 123, 129, 127, 138, 121, 125, 127, 121, 128, 113, 124, 118, 127, 121, 117, 113, 116, 139, 130, 110, 150, 121, 122, 114, 113, 126, 137, 110, 124, 120, 122, 125, 115, 139, 127, 122, 130, 116, 128, 121, 114, 125, 136, 129, 114, 124, 113, 130, 119, 112, 137, 123, 119, 118, 116, 128, 106, 115, 127, 126, 126, 113, 123, 128, 109, 117, 141, 118, 104, 118, 130, 111, 104, 109, 129, 118, 154, 120, 122, 113, 115, 140, 112, 116, 136, 133, 118, 127, 114, 117, 125, 126, 122, 121, 128, 132, 134, 125, 121, 109, 126, 130, 153, 114, 141, 119, 162, 112, 141, 128, 113, 141, 120, 119, 135, 134, 129, 120, 122, 125, 115, 103, 120, 131, 125, 104, 132, 121, 137, 119, 127, 107, 118, 124, 127, 132, 121, 118, 121, 109, 118, 116, 136, 118, 118, 120, 125, 137, 124, 118, 127, 124, 128, 126, 118, 127, 119, 118, 126, 133, 116, 116, 114, 139, 115, 130, 137, 121, 121, 123, 123, 122, 121, 132, 144, 121, 128, 107, 130, 127, 115, 110, 114, 116, 155, 128, 113, 111, 106, 119, 121, 117, 134, 123, 114, 114, 127, 126, 121, 121, 131, 118, 141, 117, 137, 134, 129, 160, 122, 132, 111, 123, 132, 144, 136, 142, 125, 127, 118, 127, 108, 123, 133, 116, 130, 117, 110, 122, 118, 136, 140, 138, 130, 129, 126, 119, 111, 114, 120, 117, 123, 127, 138, 125, 127, 135, 130, 125, 123, 138, 131, 125, 124, 150, 123, 128, 119, 133, 116, 131, 115, 131, 122, 107, 124, 141, 112, 114, 113, 123, 101, 136, 123, 147, 111, 122, 116, 115, 118, 125, 126, 123, 130, 117, 131, 126, 129, 119, 135, 130, 120, 124, 121, 132, 126, 128, 121, 125, 132, 109, 120, 119, 117, 122, 124, 123, 113, 125, 119, 120, 122, 121, 126, 125, 118, 110, 132, 85, 120, 120, 141, 125, 125, 121, 125, 122, 131, 138, 121, 126, 122, 118, 113, 116, 131, 124, 127, 104, 120, 133, 122, 130, 122, 124, 142, 130, 123, 130, 129, 134, 119, 150, 108, 144, 108, 125, 112, 123, 127, 120, 123, 122, 117, 133, 121, 119, 157, 123, 130, 119, 126, 127, 129, 132, 127, 126, 128, 127, 121, 123, 141, 121, 121, 123, 112, 118, 124, 128, 124, 125, 133, 123, 134, 131, 123, 120, 130, 109, 123, 136, 139, 140, 122, 121, 125, 119, 116, 120, 120, 131, 122, 121, 123, 118, 136, 123, 123, 131, 127, 123, 135, 121, 116, 136, 124, 121, 119, 128, 121, 132, 121, 118, 121, 141, 125, 123, 122, 111, 114, 126, 114, 116, 119, 133, 128, 138, 126, 125, 130, 129, 130, 128, 118, 124, 145, 131, 127, 117, 102, 130, 117, 126, 140, 121, 131, 130, 131, 130, 125, 105, 113, 142, 129, 126, 121, 145, 134, 124, 133, 129, 121, 126, 124, 128, 131, 117, 130, 135, 123, 98, 103, 132, 123, 120, 128, 127, 124, 115, 132, 127, 119, 126, 131, 132, 118, 127, 106, 129, 124, 121, 123, 128, 130, 123, 122, 139, 114, 128, 127, 121, 123, 117, 145, 122, 115, 124, 123, 124, 136, 117, 129, 136, 129, 125, 122, 126, 111, 120, 124, 128, 112, 124, 123, 125, 125, 124, 124, 130, 128, 105, 123, 159, 102, 123, 125, 133, 126, 131, 131, 120, 149, 118, 119, 119, 130, 124, 132, 125, 126, 116, 105, 137, 151, 153, 146, 129, 114, 119, 127, 127, 120, 114, 138, 112, 105, 123, 133, 121, 127, 136, 122, 118, 117, 127, 115, 126, 105, 124, 88, 125, 125, 121, 110, 119, 126, 118, 138, 130, 128, 132, 134, 120, 120, 128, 125, 128, 129, 137, 134, 116, 131, 124, 123, 122, 127, 128, 127, 126, 124, 119, 120, 119, 134, 127, 128, 141, 123, 125, 129, 133, 133, 129, 135, 110, 120, 109, 123, 136, 114, 119, 136, 128, 122, 116, 118, 114, 121, 110, 85, 115, 126, 130, 122, 134, 132, 117, 89, 124, 126, 184, 118, 125, 113, 122, 137, 123, 128, 124, 116, 134, 121, 106, 121, 132, 123, 108, 125, 121, 128, 131, 139, 132, 116, 122, 131, 118, 117, 129, 130, 129, 123, 134, 129, 118, 125, 130, 127, 126, 118, 128, 122, 140, 121, 129, 114, 100, 134, 131, 121, 125, 130, 125, 124, 125, 138, 118, 125, 121, 123, 114, 112, 120, 124, 132, 122, 121, 139, 114, 128, 107, 123, 132, 122, 119, 124, 123, 132, 122, 116, 135, 95, 122, 122, 118, 128, 111, 146, 120, 112, 129, 114, 127, 125, 123, 116, 124, 109, 99, 152, 137, 121, 108, 126, 114, 139, 126, 109, 120, 138, 116, 125, 115, 129, 143, 125, 118, 128, 128, 145, 124, 120, 97, 120, 92, 125, 107, 126, 133, 129, 135, 126, 118, 145, 120, 133, 119, 137, 118, 120, 125, 125, 122, 134, 125, 128, 139, 123, 112, 126, 136, 117, 127, 220, 135, 137, 125, 116, 124, 125, 116, 124, 114, 128, 129, 140, 125, 127, 124, 126, 137, 125, 122, 118, 137, 123, 128, 117, 124, 126, 120, 131, 112, 118, 126, 118, 127, 119, 137, 117, 96, 90, 117, 131, 132, 129, 133, 102, 125, 132, 120, 120, 113, 115, 110, 116, 121, 129, 122, 119, 123, 101, 122, 121, 123, 109, 118, 126, 123, 136, 133, 147, 113, 130, 105, 131, 121, 114, 124, 134, 104, 120, 117, 140, 130, 126, 128, 123, 124, 130, 125, 120, 121, 99, 132, 111, 120, 120, 119, 144, 127, 115, 116, 130, 120, 123, 125, 135, 117, 131, 107, 123, 124, 123, 127, 122, 126, 131, 121, 122, 116, 131, 131, 125, 102, 110, 127, 128, 116, 126, 117, 115, 122, 119, 119, 145, 133, 124, 113, 104, 124, 142, 125, 129, 99, 124, 121, 126, 123, 132, 119, 123, 125, 128, 121, 122, 133, 131, 133, 122, 119, 120, 121, 117, 114, 124, 122, 125, 125, 119, 119, 121, 110, 132, 110, 118, 113, 132, 129, 132, 129, 127, 123, 119, 102, 121, 128, 119, 113, 131, 115, 129, 151, 127, 110, 119, 121, 130, 128, 123, 108, 119, 131, 123, 129, 125, 97, 112, 121, 135, 127, 121, 130, 123, 114, 131, 131, 119, 125, 125, 130, 125, 119, 147, 91, 122, 132, 127, 119, 133, 124, 119, 136, 104, 118, 116, 124, 128, 130, 138, 126, 113, 115, 121, 101, 118, 116, 150, 123, 127, 127, 130, 133, 131, 122, 133, 122, 136, 129, 124, 105, 125, 124, 119, 113, 116, 100, 126, 129, 121, 135, 123, 113, 113, 129, 135, 122, 134, 120, 115, 126, 127, 120, 118, 117, 121, 142, 137, 122, 118, 119, 121, 127, 124, 120, 135, 130, 129, 120, 132, 132, 115, 121, 139, 131, 123, 110, 126, 114, 138, 119, 129, 117, 119, 115, 119, 119, 121, 124, 111, 127, 130, 137, 125, 119, 105, 120, 127, 104, 120, 109, 133, 124, 115, 131, 132, 121, 120, 89, 128, 115, 118, 122, 135, 113, 90, 127, 132, 127, 142, 115, 118, 133, 117, 129, 136, 120, 123, 127, 130, 122, 119, 103, 123, 116, 139, 130, 124, 118, 116, 115, 128, 123, 116, 117, 122, 113, 126, 128, 112, 124, 118, 124, 127, 128, 110, 114, 115, 112, 116, 133, 127, 131, 130, 120, 132, 115, 144, 127, 131, 124, 124, 118, 129, 120, 120, 125, 124, 137, 133, 120, 111, 117, 124, 125, 142, 101, 128, 124, 140, 117, 132, 124, 120, 120, 119, 125, 120, 116, 130, 138, 110, 123, 97, 122, 123, 122, 130, 126, 139, 130, 128, 122, 128, 102, 110, 120, 122, 125, 125, 118, 119, 128, 117, 112, 113, 119, 125, 119, 121, 130, 125, 141, 115, 125, 116, 152, 131, 124, 131, 117, 136, 116, 135, 134, 121, 107, 120, 128, 110, 112, 135, 125, 129, 131, 123, 128, 116, 112, 129, 130, 119, 141, 125, 79, 110, 116, 114, 138, 124, 123, 125, 118, 130, 96, 130, 126, 116, 132, 123, 122, 127, 124, 126, 134, 119, 101, 128, 117, 130, 113, 128, 126, 134, 147, 119, 123, 112, 128, 119, 126, 119, 126, 114, 124, 130, 112, 125, 128, 127, 119, 121, 104, 98, 107, 113, 128, 106, 121, 140, 121, 142, 115, 128, 111, 122, 125, 127, 128, 120, 139, 130, 120, 121, 119, 132, 132, 111, 121, 138, 128, 112, 125, 116, 109, 121, 116, 119, 142, 122, 114, 118, 114, 153, 134, 121, 117, 129, 126, 126, 159, 121, 115, 128, 111, 121, 126, 113, 127, 117, 101, 106, 117, 144, 116, 115, 111, 130, 118, 117, 119, 129, 129, 127, 120, 147, 125, 111, 132, 119, 117, 135, 128, 128, 123, 124, 123, 127, 119, 105, 123, 109, 120, 126, 101, 129, 106, 105, 119, 139, 106, 120, 129, 118, 112, 114, 120, 138, 135, 132, 110, 107, 119, 115, 125, 130, 110, 124, 119, 116, 131, 116, 117, 113, 126, 126, 128, 122, 127, 126, 136, 130, 142, 137, 117, 97, 113, 129, 119, 103, 113, 119, 120, 125, 136, 126, 99, 116, 120, 122, 126, 129, 123, 125, 114, 113, 121, 116, 139, 118, 118, 134, 138, 121, 129, 134, 114, 119, 125, 127, 123, 120, 119, 93, 123, 124, 131, 110, 110, 120, 126, 126, 127, 133, 119, 141, 112, 140, 125, 133, 121, 124, 123, 131, 115, 125, 108, 150, 120, 139, 114, 112, 115, 128, 116, 100, 129, 122, 127, 107, 123, 129, 129, 114, 105, 116, 94, 118, 119, 140, 124, 121, 117, 125, 118, 135, 116, 140, 125, 122, 124, 121, 142, 131, 121, 123, 124, 120, 94, 133, 120, 117, 112, 125, 123, 122, 105, 118, 115, 121, 137, 127, 120, 123, 121, 97, 101, 135, 132, 114, 116, 117, 125, 112, 129, 120, 126, 122, 132, 136, 125, 118, 126, 122, 126, 126, 120, 113, 110, 132, 119, 118, 126, 122, 115, 122, 135, 115, 120, 129, 128, 114, 85, 110, 116, 138, 125, 138, 104, 109, 122, 121, 104, 134, 122, 127, 105, 131, 118, 107, 89, 131, 124, 132, 125, 118, 124, 118, 121, 119, 115, 114, 137, 122, 119, 127, 121, 121, 115, 132, 135, 102, 124, 139, 129, 125, 142, 119, 120, 125, 119, 129, 138, 103, 115, 105, 163, 119, 128, 133, 125, 121, 122, 116, 128, 142, 122, 133, 124, 119, 104, 120, 127, 127, 117, 114, 110, 131, 121, 92, 126, 127, 124, 132, 120, 132, 117, 135, 120, 118, 117, 106, 134, 124, 138, 137, 134, 134, 120, 123, 132, 115, 110, 112, 132, 138, 124, 125, 126, 126, 115, 149, 113, 102, 97, 118, 130, 125, 132, 117, 120, 123, 116, 61, 186, 101, 158, 127, 122, 137, 121, 128, 124, 107, 116, 112, 130, 120, 131, 109, 142, 157, 135, 146, 132, 110, 123, 121, 131, 131, 124, 112, 113, 127, 126, 123, 130, 130, 97, 106, 122, 119, 124, 149, 141, 113, 92, 130, 121, 128, 96, 116, 115, 82, 157, 133, 96, 149, 120, 135, 117, 119, 124, 129, 124, 135, 136, 146, 123, 116, 127, 116, 100, 119, 131, 125, 108, 157, 115, 127, 122, 118, 124, 125, 122, 120, 121, 123, 123, 118, 109, 130, 129, 128, 120, 119, 118, 116, 129, 126, 127, 141, 118, 122, 120, 119, 137, 126, 118, 121, 121, 120, 120, 127, 126, 122, 127, 129, 129, 130, 131, 118, 137, 120, 118, 124, 126, 122, 112, 117, 129, 138, 127, 119, 123, 122, 102, 117, 128, 136, 124, 118, 119, 113, 124, 126, 132, 125, 135, 112, 113, 127, 134, 121, 141, 129, 120, 125, 123, 129, 120, 125, 118, 125, 132, 148, 122, 126, 119, 106, 128, 118, 125, 124, 47, 117, 127, 218, 117, 125, 180, 122, 117, 121, 124, 133, 127, 125, 111, 122, 137, 107, 125, 123, 122, 125, 114, 122, 119, 127, 122, 125, 127, 114, 118, 124, 118, 128, 115, 122, 115, 125, 125, 131, 124, 127, 120, 132, 133, 129, 95, 122, 131, 126, 124, 121, 104, 138, 126, 127, 138, 125, 126, 125, 131, 130, 123, 127, 124, 128, 121, 115, 129, 120, 118, 119, 137, 119, 132, 127, 118, 123, 133, 120, 116, 124, 129, 123, 124, 96, 129, 114, 113, 127, 122, 117, 110, 122, 129, 116, 115, 123, 119, 128, 131, 130, 125, 120, 120, 122, 136, 119, 120, 120, 134, 106, 122, 119, 125, 123, 119, 125, 126, 124, 112, 128, 117, 118, 135, 132, 127, 141, 114, 129, 36, 81, 58, 131, 104, 122, 107, 118, 117, 114, 131, 123, 120, 0, 119, 119, 113, 153, 118, 130, 120, 121, 119, 126, 128, 130, 125, 117, 120, 135, 117, 120, 129, 130, 116, 119, 122, 120, 121, 125, 117, 128, 121, 128, 116, 126, 119, 129, 140, 127, 142, 132, 133, 120, 126, 115, 134, 118, 119, 121, 127, 120, 133, 117, 118, 123, 132, 124, 120, 128, 114, 127, 130, 124, 128, 116, 123, 119, 131, 128, 121, 118, 117, 118, 130, 115, 122, 120, 127, 124, 123, 129, 121, 117, 132, 120, 123, 136, 127, 110, 133, 124, 131, 114, 125, 120, 122, 120, 122, 126, 127, 124, 137, 133, 120, 121, 147, 119, 108, 130, 113, 123, 124, 112, 120, 123, 125, 129, 120, 125, 121, 123, 130, 131, 123, 129, 112, 126, 114, 128, 127, 125, 116, 128, 118, 128, 121, 111, 139, 117, 136, 126, 118, 127, 133, 116, 115, 153, 124, 123, 130, 124, 145, 119, 124, 118, 122, 121, 120, 128, 131, 127, 127, 117, 121, 124, 123, 109, 135, 127, 117, 112, 118, 127, 117, 124, 121, 122, 114, 122, 111, 129, 125, 127, 118, 125, 121, 128, 125, 122, 123, 131, 126, 124, 125, 121, 125, 117, 146, 134, 121, 121, 126, 124, 118, 127, 149, 109, 122, 124, 148, 126, 126, 119, 104, 128, 110, 123, 120, 125, 131, 129, 123, 116, 120, 137, 108, 121, 138, 131, 117, 124, 131, 117, 121, 136, 116, 121, 120, 116, 120, 135, 113, 137, 119, 135, 129, 119, 121, 132, 118, 125, 116, 121, 125, 122, 117, 135, 141, 125, 90, 151, 128, 131, 127, 118, 125, 122, 119, 124, 129, 123, 130, 123, 123, 130, 126, 122, 127, 109, 117, 138, 129, 104, 123, 133, 131, 125, 134, 134, 121, 130, 122, 119, 123, 110, 118, 130, 121, 124, 123, 140, 129, 125, 141, 126, 135, 124, 93, 138, 86, 122, 119, 134, 131, 116, 103, 108, 97, 133, 125, 129, 127, 102, 123, 121, 123, 121, 103, 117, 119, 131, 134, 120, 127, 128, 129, 123, 118, 122, 170, 131, 122, 135, 122, 130, 121, 127, 124, 124, 120, 150, 119, 132, 130, 118, 125, 130, 133, 124, 116, 120, 76, 119, 110, 150, 132, 116, 114, 117, 125, 127, 124, 128, 129, 123, 143, 122, 128, 130, 120, 123, 99, 118, 117, 128, 109, 125, 125, 126, 124, 121, 119, 129, 129, 136, 111, 125, 126, 136, 115, 122, 131, 103, 115, 127, 122, 113, 144, 135, 127, 130, 115, 125, 124, 135, 129, 112, 121, 122, 125, 110, 129, 121, 116, 125, 129, 121, 126, 123, 137, 125, 117, 130, 115, 131, 124, 124, 124, 122, 130, 157, 123, 132, 126, 125, 120, 123, 122, 126, 116, 114, 136, 109, 108, 116, 129, 116, 126, 129, 123, 121, 99, 123, 125, 121, 158, 120, 129, 135, 125, 103, 84, 119, 125, 121, 132, 119, 125, 117, 133, 134, 148, 130, 127, 116, 114, 117, 96, 125, 120, 123, 117, 122, 117, 128, 141, 125, 131, 125, 126, 130, 121, 121, 122, 115, 125, 128, 129, 114, 128, 123, 103, 110, 129, 119, 80, 135, 118, 137, 123, 131, 112, 120, 129, 144, 120, 124, 139, 124, 119, 123, 122, 126, 117, 141, 123, 118, 150, 156, 118, 109, 117, 121, 123, 121, 115, 130, 128, 119, 128, 119, 136, 126, 124, 125, 124, 140, 106, 114, 104, 118, 86, 127, 119, 122, 136, 126, 120, 119, 119, 134, 140, 116, 119, 130, 130, 106, 128, 145, 120, 133, 117, 129, 110, 133, 121, 140, 127, 129, 129, 122, 120, 135, 116, 131, 133, 138, 123, 133, 125, 122, 128, 125, 124, 108, 123, 123, 125, 126, 123, 130, 132, 115, 122, 126, 121, 122, 103, 129, 147, 122, 149, 127, 128, 125, 124, 137, 127, 125, 145, 119, 113, 122, 134, 126, 125, 129, 134, 125, 129, 141, 131, 122, 125, 122, 126, 118, 126, 122, 134, 120, 125, 131, 138, 113, 121, 128, 123, 111, 123, 128, 121, 136, 132, 136, 106, 116, 119, 132, 119, 145, 112, 136, 137, 142, 124, 132, 113, 105, 126, 126, 124, 127, 122, 139, 132, 128, 116, 140, 118, 118, 131, 116, 122, 121, 145, 123, 124, 155, 116, 136, 120, 127, 117, 135, 132, 141, 128, 120, 43, 115, 108, 124, 121, 119, 119, 116, 121, 144, 127, 131, 116, 122, 128, 117, 125, 87, 107, 131, 127, 125, 129, 118, 143, 125, 128, 127, 147, 138, 125, 105, 116, 154, 143, 104, 124, 115, 135, 104, 117, 165, 115, 130, 123, 125, 129, 77, 125, 119, 123, 123, 126, 116, 131, 156, 130, 126, 113, 128, 120, 130, 139, 115, 125, 115, 126, 134, 136, 131, 138, 120, 123, 129, 137, 138, 115, 123, 117, 122, 122, 109, 124, 151, 129, 152, 129, 123, 119, 118, 141, 113, 134, 145, 125, 125, 114, 121, 133, 110, 128, 120, 123, 115, 117, 125, 107, 116, 135, 128, 152, 133, 125, 127, 124, 127, 120, 124, 114, 125, 106, 122, 125, 149, 127, 121, 122, 123, 110, 132, 115, 114, 116, 123, 135, 124, 127, 111, 128, 124, 118, 120, 123, 125, 113, 133, 120, 133, 113, 124, 119, 115, 103, 130, 121, 136, 117, 114, 130, 123, 117, 126, 112, 131, 117, 127, 129, 109, 123, 126, 123, 124, 123, 121, 120, 121, 121, 127, 145, 124, 131, 122, 130, 149, 117, 117, 116, 141, 127, 125, 125, 128, 131, 106, 124, 132, 133, 121, 107, 126, 108, 115, 124, 90, 123, 116, 122, 125, 138, 123, 120, 94, 115, 126, 120, 135, 123, 114, 114, 133, 128, 132, 125, 140, 116, 114, 129, 115, 123, 118, 131, 127, 120, 125, 119, 121, 155, 144, 115, 128, 129, 132, 115, 124, 120, 111, 125, 129, 124, 123, 119, 134, 127, 128, 130, 130, 119, 123, 120, 127, 119, 123, 129, 120, 109, 153, 127, 130, 117, 120, 115, 112, 142, 135, 135, 124, 113, 134, 120, 120, 136, 119, 125, 125, 122, 121, 121, 125, 115, 133, 116, 117, 119, 112, 123, 105, 134, 120, 105, 122, 122, 123, 131, 128, 120, 127, 123, 126, 124, 112, 127, 108, 124, 117, 116, 129, 118, 126, 125, 143, 117, 117, 152, 124, 130, 129, 116, 125, 115, 139, 113, 124, 126, 124, 130, 128, 117, 117, 151, 135, 101, 117, 125, 114, 121, 124, 133, 109, 109, 148, 115, 127, 123, 121, 109, 118, 119, 149, 123, 119, 128, 116, 120, 115, 120, 111, 123, 118, 126, 119, 127, 125, 122, 127, 133, 120, 119, 125, 134, 121, 130, 119, 119, 118, 130, 124, 120, 137, 133, 123, 120, 118, 128, 113, 130, 111, 126, 132, 117, 124, 115, 135, 120, 132, 121, 59, 129, 114, 122, 127, 115, 120, 133, 124, 129, 123, 121, 122, 114, 112, 125, 146, 118, 128, 131, 119, 120, 126, 128, 131, 155, 126, 122, 145, 125, 114, 144, 118, 121, 137, 120, 144, 122, 123, 121, 120, 141, 147, 103, 113, 111, 116, 132, 125, 121, 115, 124, 139, 121, 120, 122, 118, 116, 105, 136, 134, 129, 131, 125, 121, 126, 130, 117, 148, 126, 133, 131, 129, 124, 127, 119, 125, 121, 135, 135, 121, 117, 129, 125, 135, 125, 116, 124, 118, 119, 121, 94, 108, 126, 123, 124, 119, 132, 132, 125, 118, 169, 126, 131, 123, 133, 116, 124, 128, 123, 112, 132, 112, 107, 96, 118, 130, 115, 131, 127, 116, 136, 121, 123, 121, 116, 103, 122, 121, 109, 98, 121, 123, 131, 127, 137, 93, 127, 117, 119, 121, 126, 122, 120, 119, 125, 130, 117, 117, 117, 132, 125, 145, 113, 126, 147, 116, 93, 121, 145, 135, 152, 124, 119, 129, 120, 120, 128, 146, 130, 123, 137, 136, 121, 123, 125, 120, 126, 121, 129, 126, 125, 122, 122, 66, 135, 137, 122, 122, 127, 126, 123, 125, 121, 124, 111, 125, 108, 112, 111, 119, 119, 123, 123, 131, 131, 131, 130, 118, 124, 124, 116, 126, 120, 127, 122, 124, 125, 125, 124, 121, 115, 126, 120, 125, 129, 127, 132, 129, 126, 136, 123, 134, 127, 125, 125, 136, 125, 128, 123, 124, 134, 123, 131, 126, 120, 131, 118, 124, 132, 120, 117, 119, 129, 126, 127, 127, 123, 127, 118, 121, 123, 120, 124, 123, 126, 121, 127, 129, 132, 118, 121, 127, 120, 125, 123, 123, 119, 123, 114, 120, 118, 121, 126, 129, 125, 121, 118, 123, 123, 122, 122, 120, 131, 122, 123, 129, 121, 129, 125, 129, 114, 121, 118, 132, 121, 128, 110, 123, 121, 115, 136, 126, 122, 135, 124, 120, 121, 125, 127, 119, 128, 119, 128, 113, 127, 123, 118, 124, 127, 128, 125, 137, 119, 129, 122, 130, 125, 124, 128, 119, 124, 121, 124, 130, 128, 126, 130, 122, 121, 120, 122, 122, 117, 123, 126, 122, 127, 129, 122, 116, 121, 124, 122, 119, 119, 124, 127, 121, 125, 124, 124, 127, 119, 125, 127, 120, 122, 126, 130, 125, 124, 131, 130, 124, 119, 121, 128, 126, 127, 117, 119, 123, 120, 125, 124, 118, 128, 118, 124, 129, 124, 133, 133, 122, 127, 119, 121, 124, 125, 124, 122, 126, 122, 121, 115, 136, 118, 125, 128, 120, 129, 126, 125, 120, 122, 124, 121, 124, 116, 117, 124, 120, 125, 125, 127, 123, 124, 124, 120, 124, 129, 121, 129, 123, 128, 126, 117, 119, 121, 126, 140, 127, 116, 122, 134, 128, 123, 107, 116, 113, 106, 117, 119, 125, 117, 132, 129, 119, 127, 129, 133, 125, 134, 131, 116, 121, 118, 119, 125, 117, 136, 131, 137, 119, 128, 127, 127, 124, 125, 163, 128, 156, 123, 157, 121, 140, 127, 125, 126, 135, 143, 127, 150, 126, 135, 126, 116, 124, 131, 132, 115, 129, 129, 129, 116, 112, 127, 128, 127, 114, 116, 124, 113, 117, 123, 124, 113, 145, 126, 125, 127, 126, 148, 146, 114, 127, 120, 127, 129, 116, 116, 125, 127, 130, 138, 114, 126, 120, 120, 132, 120, 148, 129, 122, 133, 136, 124, 117, 121, 140, 131, 130, 126, 129, 120, 118, 135, 118, 121, 143, 119, 115, 119, 125, 137, 125, 122, 119, 134, 120, 129, 116, 125, 131, 125, 127, 131, 150, 104, 138, 143, 147, 142, 114, 146, 115, 130, 124, 124, 135, 135, 147, 124, 124, 137, 136, 129, 129, 126, 159, 119, 122, 120, 119, 135, 126, 122, 120, 116, 130, 119, 115, 109, 120, 124, 126, 121, 122, 126, 119, 129, 126, 125, 124, 139, 110, 126, 118, 130, 128, 121, 123, 128, 119, 137, 124, 123, 127, 111, 124, 107, 126, 122, 119, 118, 131, 123, 111, 143, 117, 131, 110, 120, 113, 134, 124, 125, 124, 127, 125, 140, 125, 124, 124, 129, 128, 137, 102, 128, 121, 122, 116, 127, 116, 121, 128, 121, 121, 136, 137, 120, 117, 123, 132, 128, 122, 123, 137, 121, 139, 132, 135, 125, 122, 127, 121, 145, 151, 117, 130, 116, 113, 120, 124, 132, 122, 131, 121, 124, 119, 129, 116, 116, 122, 125, 121, 119, 118, 124, 119, 126, 126, 117, 115, 111, 132, 130, 119, 118, 123, 126, 121, 116, 124, 124, 134, 120, 121, 130, 133, 138, 116, 123, 122, 114, 131, 124, 121, 129, 118, 120, 119, 123, 119, 117, 129, 120, 127, 127, 125, 128, 123, 115, 122, 118, 122, 129, 118, 120, 132, 126, 115, 123, 136, 137, 116, 119, 127, 127, 125, 129, 120, 125, 108, 125, 133, 125, 125, 119, 119, 130, 125, 123, 133, 124, 113, 115, 130, 136, 127, 118, 123, 122, 130, 134, 124, 118, 116, 122, 113, 124, 124, 119, 127, 124, 126, 118, 121, 133, 124, 130, 122, 129, 121, 117, 137, 117, 116, 115, 126, 132, 118, 127, 120, 134, 125, 125, 123, 130, 121, 121, 131, 123, 110, 120, 122, 120, 132, 126, 124, 116, 116, 126, 116, 128, 123, 122, 120, 120, 116, 133, 123, 127, 126, 125, 122, 128, 129, 119, 126, 121, 123, 116, 123, 135, 130, 121, 123, 125, 120, 117, 124, 113, 123, 128, 123, 124, 124, 115, 128, 132, 122, 128, 120, 127, 142, 118, 129, 118, 123, 126, 125, 124, 129, 134, 124, 127, 131, 122, 137, 118, 130, 130, 124, 125, 123, 127, 119, 120, 123, 120, 121, 120, 124, 116, 127, 121, 118, 109, 130, 121, 121, 123, 121, 137, 123, 118, 122, 132, 124, 124, 126, 127, 128, 121, 129, 121, 119, 123, 131, 127, 123, 128, 126, 129, 117, 134, 119, 125, 118, 126, 124, 133, 122, 124, 121, 126, 131, 114, 125, 129, 129, 135, 123, 131, 117, 122, 122, 124, 121, 136, 115, 129, 124, 137, 126, 117, 126, 112, 130, 125, 115, 124, 135, 120, 130, 126, 122, 127, 122, 128, 136, 118, 124, 119, 143, 138, 120, 116, 127, 115, 127, 115, 120, 118, 117, 123, 132, 112, 138, 114, 129, 122, 140, 120, 120, 113, 125, 110, 124, 116, 116, 136, 114, 122, 135, 122, 124, 131, 121, 120, 124, 123, 118, 121, 135, 128, 115, 126, 121, 134, 140, 120, 126, 121, 120, 115, 150, 118, 124, 124, 123, 117, 132, 107, 130, 122, 118, 138, 112, 122, 131, 131, 123, 122, 114, 129, 130, 132, 132, 120, 122, 125, 132, 129, 141, 125, 126, 125, 138, 120, 130, 120, 130, 131, 132, 138, 127, 117, 119, 141, 131, 124, 130, 124, 127, 120, 129, 128, 120, 115, 118, 122, 117, 120, 129, 119, 125, 124, 112, 121, 115, 125, 119, 119, 113, 125, 122, 125, 134, 118, 124, 127, 125, 126, 133, 127, 126, 129, 128, 133, 120, 121, 120, 119, 113, 122, 124, 124, 114, 127, 118, 137, 119, 119, 132, 129, 128, 125, 135, 124, 128, 116, 120, 125, 118, 120, 132, 118, 120, 120, 121, 120, 122, 127, 140, 125, 121, 142, 127, 133, 120, 119, 138, 124, 125, 121, 131, 123, 118, 143, 119, 126, 115, 127, 145, 134, 116, 119, 138, 128, 109, 133, 136, 125, 121, 127, 125, 149, 126, 112, 127, 127, 135, 109, 117, 127, 125, 124, 121, 124, 121, 129, 129, 122, 127, 108, 117, 124, 127, 122, 120, 121, 146, 126, 124, 117, 125, 126, 116, 124, 126, 125, 125, 126, 117, 121, 126, 119, 125, 108, 122, 115, 116, 118, 125, 127, 111, 123, 130, 125, 122, 121, 88, 122, 131, 124, 122, 109, 103, 119, 118, 132, 127, 98, 117, 130, 122, 118, 126, 114, 123, 112, 126, 123, 130, 122, 133, 130, 125, 135, 114, 121, 117, 140, 136, 122, 119, 123, 121, 106, 122, 129, 135, 122, 120, 126, 123, 132, 123, 117, 103, 109, 121, 115, 129, 122, 120, 116, 114, 115, 107, 125, 114, 115, 118, 122, 105, 125, 128, 127, 132, 125, 125, 119, 126, 123, 122, 124, 123, 133, 124, 119, 125, 112, 115, 121, 116, 126, 107, 135, 119, 120, 123, 122, 116, 123, 112, 121, 127, 116, 113, 116, 113, 124, 125, 114, 117, 121, 112, 115, 131, 122, 124, 107, 125, 119, 131, 122, 127, 128, 112, 107, 150, 118, 120, 119, 121, 117, 123, 112, 126, 111, 119, 118, 129, 160, 128, 132, 114, 111, 118, 127, 123, 126, 100, 119, 138, 120, 123, 115, 124, 136, 121, 116, 120, 113, 126, 127, 117, 129, 143, 119, 115, 138, 125, 112, 126, 139, 124, 127, 126, 135, 119, 119, 124, 120, 127, 124, 122, 121, 197, 117, 122, 124, 118, 114, 119, 122, 123, 116, 122, 117, 104, 114, 119, 120, 127, 113, 122, 122, 130, 119, 115, 119, 120, 117, 120, 113, 125, 120, 127, 112, 131, 126, 129, 106, 122, 141, 127, 120, 113, 108, 153, 127, 121, 120, 129, 127, 125, 131, 128, 112, 123, 125, 128, 122, 123, 119, 128, 130, 138, 181, 129, 126, 118, 115, 125, 118, 96, 162, 116, 131, 120, 125, 113, 121, 114, 137, 137, 139, 120, 125, 147, 132, 134, 122, 132, 116, 117, 123, 143, 127, 119, 135, 108, 132, 110, 104, 113, 129, 126, 114, 128, 138, 114, 122, 108, 118, 132, 113, 130, 129, 140, 125, 133, 90, 127, 112, 127, 125, 129, 126, 122, 121, 110, 110, 124, 126, 104, 102, 123, 135, 106, 124, 119, 130, 136, 126, 117, 123, 125, 138, 125, 132, 126, 126, 126, 121, 113, 108, 119, 117, 140, 120, 123, 117, 127, 118, 125, 123, 120, 131, 119, 124, 119, 132, 128, 125, 145, 109, 119, 135, 122, 112, 123, 134, 130, 127, 116, 114, 121, 108, 134, 122, 124, 128, 133, 120, 121, 149, 116, 123, 119, 119, 139, 122, 116, 133, 121, 123, 135, 112, 115, 119, 168, 134, 118, 130, 130, 121, 129, 117, 129, 141, 133, 129, 128, 135, 129, 120, 118, 132, 132, 132, 119, 137, 114, 124, 125, 127, 126, 112, 124, 117, 117, 130, 128, 129, 113, 122, 113, 133, 135, 121, 97, 124, 124, 147, 128, 118, 115, 121, 121, 129, 113, 149, 121, 123, 115, 111, 120, 124, 143, 139, 130, 145, 117, 120, 129, 127, 132, 126, 123, 116, 124, 125, 120, 111, 125, 112, 117, 127, 124, 102, 126, 118, 137, 119, 112, 99, 111, 115, 127, 113, 120, 131, 123, 114, 125, 127, 128, 129, 106, 118, 122, 127, 125, 124, 125, 131, 120, 114, 124, 142, 120, 110, 123, 117, 128, 135, 106, 108, 122, 118, 120, 113, 121, 119, 130, 123, 124, 115, 120, 119, 156, 131, 123, 104, 102, 111, 118, 127, 136, 124, 135, 128, 140, 147, 131, 117, 119, 128, 128, 118, 124, 125, 122, 121, 130, 127, 128, 127, 121, 122, 134, 121, 124, 131, 122, 133, 124, 102, 131, 124, 108, 129, 130, 121, 116, 119, 125, 120, 128, 122, 124, 131, 119, 123, 121, 135, 118, 129, 134, 134, 132, 112, 126, 97, 111, 123, 140, 119, 104, 113, 130, 115, 126, 115, 118, 128, 136, 133, 123, 99, 133, 124, 112, 133, 122, 99, 122, 119, 154, 135, 119, 162, 118, 134, 124, 110, 106, 127, 116, 151, 120, 114, 115, 130, 107, 125, 116, 127, 151, 143, 140, 92, 94, 116, 128, 117, 135, 113, 127, 120, 130, 111, 131, 121, 136, 125, 123, 122, 119, 132, 128, 119, 104, 110, 95, 147, 114, 120, 120, 155, 123, 153, 122, 111, 127, 133, 113, 132, 126, 127, 119, 108, 118, 118, 116, 102, 110, 141, 127, 122, 117, 126, 110, 122, 135, 113, 117, 135, 152, 102, 127, 110, 97, 128, 122, 134, 125, 114, 123, 122, 106, 144, 123, 125, 114, 115, 108, 103, 128, 121, 126, 133, 114, 141, 122, 126, 126, 124, 122, 131, 143, 118, 120, 119, 134, 130, 130, 132, 123, 129, 123, 122, 124, 123, 119, 122, 131, 122, 120, 134, 115, 119, 123, 154, 116, 155, 126, 121, 121, 142, 116, 127, 138, 108, 115, 106, 131, 130, 122, 116, 117, 120, 126, 121, 123, 122, 123, 125, 123, 120, 123, 130, 111, 125, 121, 140, 128, 121, 132, 126, 110, 124, 129, 123, 109, 120, 147, 120, 135, 126, 118, 120, 125, 119, 133, 124, 123, 133, 121, 130, 129, 124, 117, 119, 115, 117, 125, 125, 124, 123, 117, 122, 128, 128, 109, 126, 142, 121, 128, 129, 118, 129, 115, 121, 131, 126, 114, 122, 131, 129, 125, 109, 132, 116, 117, 124, 116, 115, 113, 123, 120, 120, 115, 115, 104, 127, 127, 124, 127, 126, 129, 119, 113, 134, 138, 125, 149, 118, 117, 120, 128, 123, 131, 124, 106, 123, 135, 131, 119, 122, 133, 120, 125, 126, 134, 112, 113, 126, 123, 128, 123, 120, 130, 118, 127, 115, 166, 133, 94, 113, 135, 126, 131, 130, 123, 124, 116, 128, 184, 130, 119, 113, 120, 118, 127, 108, 127, 130, 122, 122, 122, 136, 123, 129, 124, 120, 121, 160, 130, 121, 121, 124, 127, 96, 107, 120, 110, 131, 131, 110, 118, 134, 123, 126, 119, 126, 120, 123, 126, 122, 121, 123, 125, 122, 89, 114, 127, 131, 128, 107, 119, 122, 136, 122, 120, 127, 117, 130, 128, 125, 122, 119, 109, 122, 118, 129, 120, 129, 130, 124, 123, 122, 116, 130, 125, 124, 130, 119, 128, 124, 128, 115, 114, 117, 119, 129, 122, 126, 110, 127, 126, 125, 128, 140, 124, 118, 122, 134, 118, 133, 130, 93, 129, 126, 126, 129, 121, 103, 77, 132, 134, 133, 120, 123, 123, 128, 128, 127, 109, 105, 123, 123, 128, 132, 129, 126, 125, 124, 148, 120, 102, 154, 125, 133, 142, 128, 116, 138, 124, 125, 115, 118, 138, 118, 120, 128, 119, 125, 116, 100, 126, 122, 119, 107, 129, 106, 129, 123, 123, 127, 116, 122, 123, 123, 120, 124, 116, 123, 121, 124, 122, 123, 116, 110, 125, 119, 126, 125, 129, 130, 118, 126, 135, 121, 118, 119, 129, 134, 131, 117, 134, 123, 126, 145, 138, 120, 121, 137, 107, 140, 130, 121, 121, 119, 124, 127, 133, 134, 138, 133, 126, 121, 90, 124, 114, 126, 127, 131, 108, 122, 134, 122, 121, 124, 113, 117, 126, 123, 124, 123, 128, 134, 140, 123, 146, 121, 125, 127, 125, 126, 124, 120, 118, 124, 125, 138, 113, 118, 122, 117, 120, 125, 119, 113, 103, 123, 126, 135, 111, 127, 122, 121, 142, 105, 125, 126, 124, 121, 128, 122, 113, 114, 157, 107, 130, 137, 118, 111, 132, 135, 111, 121, 121, 107, 125, 124, 126, 130, 125, 98, 128, 134, 143, 120, 122, 120, 133, 118, 119, 123, 127, 130, 132, 111, 116, 134, 128, 96, 127, 125, 124, 125, 117, 151, 125, 125, 129, 129, 120, 128, 125, 123, 126, 129, 126, 109, 119, 121, 121, 114, 118, 119, 154, 125, 124, 123, 133, 125, 128, 130, 129, 135, 118, 133, 127, 114, 111, 124, 128, 116, 130, 126, 125, 125, 106, 125, 128, 128, 149, 145, 127, 123, 115, 129, 129, 118, 110, 124, 123, 113, 122, 114, 131, 123, 120, 135, 130, 139, 121, 115, 149, 114, 124, 118, 151, 123, 119, 122, 113, 112, 124, 125, 122, 128, 131, 111, 123, 143, 128, 111, 124, 121, 124, 122, 116, 132, 128, 122, 132, 133, 123, 134, 141, 127, 121, 116, 122, 128, 126, 123, 147, 115, 112, 120, 125, 119, 124, 136, 120, 139, 152, 126, 123, 96, 132, 123, 176, 108, 131, 138, 120, 136, 119, 120, 101, 128, 97, 130, 127, 121, 131, 118, 130, 120, 122, 142, 125, 113, 124, 133, 135, 133, 120, 127, 132, 139, 130, 120, 126, 133, 129, 126, 135, 122, 134, 122, 125, 130, 126, 138, 134, 121, 116, 127, 116, 118, 121, 125, 122, 123, 126, 134, 113, 109, 125, 113, 129, 116, 123, 131, 131, 123, 119, 128, 107, 121, 124, 114, 120, 123, 119, 121, 138, 133, 128, 124, 128, 127, 119, 116, 138, 128, 127, 136, 120, 137, 143, 118, 122, 132, 132, 121, 163, 130, 123, 117, 135, 124, 118, 117, 118, 131, 126, 115, 125, 126, 117, 121, 136, 123, 119, 123, 129, 127, 113, 79, 124, 118, 117, 130, 120, 124, 120, 125, 127, 127, 126, 119, 121, 124, 112, 126, 122, 139, 128, 126, 129, 117, 93, 153, 123, 126, 135, 120, 126, 133, 130, 116, 127, 140, 114, 129, 127, 130, 127, 124, 133, 119, 127, 130, 137, 125, 130, 128, 158, 121, 130, 121, 124, 140, 121, 138, 123, 120, 128, 126, 127, 122, 126, 122, 156, 153, 111, 132, 131, 120, 133, 132, 129, 119, 121, 124, 125, 114, 105, 120, 120, 120, 136, 127, 115, 123, 103, 118, 119, 116, 121, 136, 141, 128, 126, 132, 118, 122, 131, 121, 118, 121, 101, 122, 114, 122, 131, 116, 120, 117, 130, 122, 126, 138, 130, 116, 121, 119, 135, 124, 127, 124, 122, 104, 123, 124, 119, 124, 139, 133, 127, 116, 113, 119, 129, 131, 122, 120, 128, 133, 109, 131, 116, 130, 124, 116, 118, 116, 131, 106, 120, 128, 115, 137, 140, 110, 139, 115, 139, 126, 121, 124, 131, 120, 103, 130, 131, 122, 104, 122, 129, 129, 125, 115, 120, 126, 158, 143, 123, 137, 132, 119, 133, 106, 117, 119, 125, 124, 123, 126, 155, 119, 120, 119, 129, 125, 132, 128, 117, 133, 82, 120, 118, 117, 125, 123, 122, 119, 123, 118, 135, 120, 120, 118, 126, 128, 113, 125, 127, 134, 114, 122, 132, 125, 125, 121, 121, 126, 113, 140, 126, 118, 131, 123, 115, 122, 112, 121, 101, 117, 125, 119, 122, 117, 128, 126, 122, 123, 117, 127, 127, 128, 122, 127, 121, 131, 129, 135, 126, 125, 123, 110, 126, 123, 105, 124, 128, 131, 117, 118, 122, 121, 119, 119, 99, 131, 108, 120, 123, 122, 122, 114, 126, 123, 117, 114, 135, 120, 135, 134, 124, 123, 150, 125, 148, 122, 116, 109, 133, 138, 122, 102, 118, 138, 138, 118, 146, 109, 146, 119, 117, 130, 118, 122, 119, 139, 121, 124, 118, 132, 108, 132, 126, 109, 126, 125, 119, 125, 127, 127, 119, 124, 144, 132, 133, 127, 120, 113, 112, 114, 122, 110, 126, 127, 138, 119, 127, 119, 127, 127, 129, 126, 110, 115, 135, 126, 149, 170, 132, 139, 131, 114, 120, 118, 131, 120, 125, 128, 126, 112, 127, 129, 121, 123, 149, 126, 130, 119, 125, 118, 143, 124, 137, 108, 125, 126, 131, 118, 130, 125, 116, 113, 123, 114, 126, 118, 119, 137, 104, 120, 117, 118, 134, 134, 118, 117, 120, 123, 126, 123, 115, 134, 129, 129, 131, 106, 137, 119, 120, 121, 130, 129, 124, 125, 110, 127, 133, 120, 112, 114, 122, 133, 106, 118, 136, 137, 129, 98, 124, 134, 111, 123, 124, 127, 116, 119, 129, 121, 128, 119, 119, 125, 130, 124, 133, 146, 148, 114, 111, 119, 120, 118, 113, 124, 115, 127, 119, 122, 123, 129, 153, 124, 120, 112, 124, 117, 120, 122, 116, 104, 121, 124, 128, 108, 123, 128, 130, 126, 132, 118, 123, 120, 114, 112, 133, 127, 113, 101, 142, 106, 135, 105, 128, 107, 117, 118, 110, 115, 126, 122, 107, 126, 122, 139, 125, 121, 129, 117, 123, 121, 137, 114, 132, 120, 133, 120, 122, 134, 119, 140, 136, 133, 127, 114, 129, 121, 137, 125, 121, 123, 135, 124, 130, 121, 117, 118, 130, 127, 112, 108, 132, 118, 129, 113, 130, 121, 120, 118, 122, 120, 118, 133, 132, 131, 119, 122, 128, 121, 123, 124, 113, 127, 113, 113, 130, 121, 122, 127, 123, 162, 127, 129, 126, 114, 121, 131, 112, 118, 158, 145, 122, 114, 133, 123, 122, 131, 125, 121, 131, 123, 115, 106, 152, 124, 131, 121, 127, 126, 122, 130, 133, 123, 130, 127, 123, 139, 125, 127, 117, 100, 121, 128, 112, 124, 127, 131, 130, 124, 109, 111, 136, 118, 118, 107, 121, 123, 132, 104, 120, 117, 118, 129, 131, 120, 118, 113, 124, 138, 134, 125, 115, 118, 120, 142, 121, 117, 117, 123, 106, 134, 118, 121, 129, 115, 124, 134, 120, 132, 115, 136, 134, 101, 131, 133, 133, 125, 134, 121, 137, 131, 119, 118, 129, 121, 114, 125, 115, 122, 124, 123, 116, 139, 135, 132, 119, 116, 114, 124, 110, 118, 120, 123, 125, 139, 129, 105, 126, 121, 126, 134, 137, 118, 104, 129, 135, 141, 116, 134, 126, 123, 110, 114, 120, 120, 119, 132, 119, 130, 118, 126, 134, 123, 89, 127, 136, 102, 123, 104, 123, 117, 120, 123, 141, 115, 142, 116, 117, 127, 126, 118, 120, 132, 117, 120, 116, 139, 144, 130, 118, 123, 107, 122, 133, 109, 119, 123, 140, 117, 133, 101, 138, 118, 125, 131, 128, 124, 133, 114, 123, 115, 124, 146, 119, 156, 124, 114, 109, 131, 133, 106, 142, 156, 124, 124, 133, 124, 133, 116, 115, 106, 127, 118, 135, 120, 124, 120, 118, 133, 135, 123, 121, 123, 127, 112, 126, 120, 131, 115, 109, 126, 119, 119, 134, 126, 124, 138, 131, 139, 127, 116, 120, 129, 119, 126, 117, 132, 133, 128, 120, 117, 122, 131, 122, 133, 128, 132, 135, 111, 131, 122, 116, 112, 122, 127, 131, 119, 127, 123, 113, 122, 126, 126, 121, 107, 118, 119, 128, 135, 120, 98, 130, 115, 127, 125, 108, 104, 150, 122, 127, 122, 134, 120, 129, 127, 105, 115, 133, 118, 140, 116, 127, 120, 110, 106, 127, 120, 134, 129, 130, 120, 136, 130, 127, 119, 127, 138, 104, 109, 125, 143, 115, 119, 122, 120, 140, 126, 125, 124, 120, 125, 134, 132, 154, 123, 134, 113, 128, 117, 105, 118, 115, 122, 122, 130, 113, 122, 124, 120, 125, 136, 123, 135, 125, 115, 122, 134, 127, 92, 124, 125, 130, 126, 127, 128, 141, 118, 120, 128, 124, 115, 124, 134, 126, 138, 89, 111, 120, 130, 132, 122, 116, 126, 138, 127, 137, 136, 139, 125, 132, 131, 109, 120, 122, 129, 120, 129, 116, 118, 133, 120, 162, 142, 124, 127, 130, 123, 134, 135, 128, 119, 149, 116, 118, 130, 124, 124, 118, 109, 116, 111, 142, 125, 129, 123, 119, 126, 142, 118, 106, 117, 127, 121, 125, 120, 112, 141, 112, 128, 125, 114, 122, 117, 113, 137, 126, 112, 126, 126, 132, 130, 123, 117, 135, 108, 128, 99, 121, 133, 124, 120, 125, 115, 125, 116, 113, 101, 116, 116, 121, 124, 123, 98, 124, 141, 134, 86, 114, 135, 132, 130, 133, 117, 109, 126, 97, 118, 140, 128, 130, 115, 125, 114, 106, 136, 132, 110, 119, 133, 108, 118, 121, 156, 120, 112, 136, 129, 103, 158, 111, 118, 102, 86, 108, 130, 128, 126, 117, 100, 123, 115, 121, 127, 184, 130, 158, 112, 121, 100, 117, 130, 123, 119, 111, 128, 131, 131, 113, 112, 111, 119, 115, 134, 126, 142, 122, 133, 139, 115, 115, 128, 127, 118, 121, 121, 117, 127, 122, 127, 134, 143, 125, 94, 118, 138, 118, 126, 91, 127, 150, 125, 126, 135, 147, 140, 130, 104, 121, 124, 117, 127, 118, 135, 110, 142, 124, 126, 129, 126, 106, 129, 121, 108, 120, 122, 142, 124, 123, 111, 84, 129, 119, 119, 111, 122, 107, 121, 120, 114, 144, 123, 101, 103, 120, 120, 135, 109, 116, 133, 99, 125, 127, 113, 137, 99, 110, 123, 131, 115, 93, 131, 125, 121, 126, 112, 117, 123, 127, 122, 122, 128, 118, 137, 128, 129, 111, 133, 113, 123, 131, 127, 132, 110, 128, 134, 97, 122, 121, 133, 120, 117, 145, 117, 117, 125, 118, 123, 116, 115, 130, 124, 128, 126, 129, 125, 118, 122, 123, 129, 120, 101, 127, 134, 139, 125, 114, 126, 128, 129, 110, 125, 113, 124, 115, 129, 115, 126, 126, 116, 101, 121, 104, 136, 140, 112, 139, 98, 127, 128, 132, 110, 97, 147, 142, 128, 118, 121, 146, 144, 109, 113, 129, 136, 117, 136, 116, 134, 111, 144, 123, 118, 132, 131, 120, 125, 119, 126, 123, 124, 143, 135, 153, 114, 119, 110, 125, 125, 123, 122, 133, 117, 127, 122, 130, 125, 113, 109, 110, 138, 125, 124, 120, 109, 115, 126, 123, 119, 121, 126, 123, 113, 122, 137, 111, 120, 113, 132, 121, 124, 127, 121, 141, 122, 122, 119, 117, 117, 116, 127, 116, 126, 122, 153, 126, 121, 114, 113, 125, 116, 149, 138, 120, 121, 119, 114, 121, 127, 116, 127, 149, 127, 119, 126, 127, 122, 113, 117, 118, 125, 142, 129, 109, 120, 149, 119, 116, 127, 127, 115, 112, 117, 130, 140, 124, 121, 117, 116, 113, 109, 124, 126, 115, 117, 122, 125, 138, 137, 136, 125, 107, 118, 128, 116, 132, 117, 109, 125, 117, 120, 109, 113, 108, 125, 130, 122, 129, 128, 113, 125, 123, 122, 124, 120, 128, 126, 124, 120, 134, 126, 118, 122, 126, 107, 126, 117, 118, 123, 102, 127, 125, 110, 132, 127, 134, 125, 121, 118, 125, 123, 134, 133, 126, 123, 127, 121, 119, 126, 117, 110, 120, 113, 97, 128, 130, 111, 122, 116, 104, 121, 136, 130, 128, 121, 102, 118, 134, 119, 111, 124, 122, 130, 124, 114, 157, 117, 119, 109, 122, 133, 112, 123, 123, 123, 128, 125, 122, 125, 113, 131, 122, 131, 121, 134, 131, 127, 110, 126, 135, 114, 131, 128, 120, 126, 124, 117, 136, 113, 122, 125, 136, 146, 122, 119, 131, 115, 113, 128, 137, 120, 118, 117, 124, 122, 113, 123, 120, 120, 125, 110, 126, 112, 128, 125, 122, 114, 127, 116, 137, 123, 119, 124, 171, 122, 124, 130, 145, 133, 132, 108, 124, 130, 121, 119, 112, 132, 131, 137, 117, 121, 133, 125, 115, 134, 115, 115, 121, 115, 129, 111, 126, 122, 126, 138, 126, 128, 110, 121, 132, 139, 115, 123, 149, 115, 127, 117, 120, 92, 117, 118, 126, 120, 120, 116, 124, 110, 137, 131, 142, 122, 131, 122, 93, 118, 122, 116, 126, 128, 122, 118, 109, 120, 125, 123, 128, 117, 131, 126, 120, 122, 122, 123, 126, 126, 114, 148, 121, 109, 121, 113, 126, 112, 120, 122, 146, 124, 129, 116, 124, 109, 121, 126, 134, 126, 135, 128, 129, 128, 114, 122, 119, 124, 122, 103, 125, 128, 130, 128, 116, 126, 117, 129, 128, 119, 130, 130, 121, 116, 122, 129, 128, 131, 123, 114, 94, 124, 128, 127, 124, 140, 111, 132, 125, 183, 125, 120, 123, 117, 135, 116, 117, 120, 133, 119, 118, 170, 61, 124, 126, 120, 124, 122, 123, 113, 130, 121, 119, 125, 121, 117, 137, 123, 123, 126, 127, 130, 133, 133, 132, 118, 127, 125, 125, 122, 130, 118, 122, 134, 116, 119, 121, 123, 112, 126, 147, 129, 125, 98, 113, 88, 130, 141, 128, 120, 133, 92, 117, 128, 121, 120, 139, 120, 128, 125, 170, 125, 119, 128, 130, 112, 132, 122, 129, 127, 117, 118, 146, 117, 128, 119, 132, 123, 118, 126, 117, 119, 116, 117, 130, 123, 116, 123, 122, 120, 121, 121, 127, 131, 118, 114, 122, 122, 126, 136, 126, 122, 119, 133, 122, 120, 124, 127, 125, 102, 126, 130, 122, 121, 114, 119, 128, 115, 115, 110, 120, 122, 126, 139, 113, 131, 110, 124, 123, 114, 125, 119, 127, 127, 125, 125, 128, 128, 121, 130, 131, 113, 130, 114, 127, 115, 115, 131, 139, 115, 129, 123, 114, 123, 128, 120, 127, 134, 118, 129, 121, 112, 155, 129, 127, 123, 121, 127, 125, 123, 124, 121, 116, 119, 127, 121, 123, 117, 109, 99, 127, 115, 112, 122, 127, 125, 136, 118, 115, 125, 118, 127, 121, 110, 116, 118, 117, 121, 127, 126, 110, 127, 114, 113, 125, 126, 134, 123, 106, 122, 125, 123, 125, 118, 128, 125, 127, 131, 115, 118, 120, 122, 122, 126, 114, 116, 121, 112, 122, 126, 122, 118, 101, 124, 127, 120, 125, 120, 141, 126, 127, 126, 121, 125, 104, 129, 129, 126, 128, 122, 120, 98, 112, 128, 127, 127, 118, 121, 118, 120, 119, 130, 128, 139, 125, 125, 123, 115, 125, 126, 125, 123, 125, 122, 123, 118, 124, 127, 126, 132, 124, 122, 142, 114, 137, 119, 137, 120, 118, 123, 136, 119, 135, 133, 121, 133, 123, 122, 128, 120, 125, 124, 133, 121, 121, 121, 137, 122, 125, 122, 120, 111, 128, 116, 127, 122, 128, 129, 121, 127, 122, 131, 124, 128, 112, 131, 136, 121, 123, 121, 127, 118, 133, 127, 113, 137, 132, 120, 131, 102, 121, 130, 142, 112, 118, 134, 127, 133, 136, 126, 122, 121, 123, 115, 120, 121, 130, 117, 120, 121, 127, 128, 136, 118, 113, 124, 121, 135, 119, 121, 131, 129, 122, 124, 127, 123, 124, 116, 131, 109, 126, 124, 132, 137, 129, 119, 122, 122, 116, 116, 128, 122, 117, 121, 125, 117, 120, 112, 130, 124, 102, 127, 138, 100, 129, 127, 124, 129, 119, 124, 121, 133, 121, 106, 139, 126, 130, 123, 138, 119, 122, 124, 119, 114, 136, 122, 152, 127, 121, 123, 132, 119, 125, 123, 124, 116, 100, 124, 127, 137, 114, 128, 92, 126, 113, 113, 118, 124, 124, 125, 143, 135, 135, 134, 116, 131, 135, 127, 126, 142, 128, 107, 122, 120, 135, 124, 129, 141, 111, 134, 135, 129, 118, 124, 129, 129, 132, 132, 122, 124, 124, 126, 137, 134, 123, 123, 142, 127, 130, 129, 126, 127, 123, 128, 123, 115, 125, 129, 115, 109, 122, 116, 113, 124, 128, 146, 128, 116, 126, 133, 129, 121, 119, 124, 126, 130, 126, 121, 121, 135, 122, 117, 128, 139, 123, 127, 106, 128, 135, 113, 121, 153, 140, 122, 120, 129, 122, 124, 107, 134, 113, 127, 134, 126, 118, 122, 123, 120, 111, 121, 129, 137, 123, 125, 128, 115, 117, 108, 136, 126, 122, 153, 124, 115, 105, 133, 131, 127, 131, 131, 132, 123, 121, 129, 122, 128, 127, 135, 125, 119, 126, 125, 134, 117, 131, 121, 124, 131, 122, 116, 122, 132, 119, 129, 133, 114, 124, 120, 128, 119, 116, 122, 115, 130, 123, 124, 125, 130, 128, 139, 128, 124, 124, 125, 120, 124, 125, 125, 119, 127, 127, 126, 117, 122, 129, 127, 126, 122, 121, 115, 126, 128, 124, 121, 127, 129, 126, 125, 126, 123, 124, 121, 113, 118, 125, 129, 122, 133, 126, 121, 123, 127, 125, 127, 125, 128, 118, 130, 120, 128, 126, 122, 125, 130, 128, 131, 125, 122, 120, 134, 119, 124, 131, 118, 126, 124, 133, 127, 136, 127, 130, 130, 118, 127, 115, 123, 123, 126, 121, 126, 124, 126, 123, 125, 125, 122, 124, 125, 130, 119, 124, 126, 125, 129, 126, 123, 121, 123, 136, 128, 122, 122, 120, 115, 124, 122, 123, 122, 123, 132, 129, 128, 120, 117, 129, 124, 125, 120, 126, 129, 126, 124, 124, 132, 125, 126, 129, 119, 125, 124, 124, 122, 121, 122, 120, 124, 129, 113, 117, 122, 124, 121, 124, 122, 127, 136, 127, 132, 127, 125, 126, 125, 127, 119, 122, 132, 129, 120, 126, 117, 123, 125, 128, 125, 128, 125, 118, 132, 125, 122, 123, 121, 123, 129, 118, 125, 120, 112, 113, 129, 122, 126, 125, 122, 120, 123, 123, 126, 116, 128, 123, 123, 126, 123, 120, 119, 127, 127, 129, 123, 123, 119, 128, 127, 120, 131, 131, 126, 125, 123, 124, 123, 125, 119, 135, 124, 125, 116, 126, 130, 129, 126, 130, 125, 123, 126, 125, 130, 126, 124, 124, 104, 125, 122, 123, 125, 126, 121, 121, 137, 117, 124, 129, 115, 123, 122, 122, 116, 131, 121, 111, 137, 120, 122, 115, 127, 124, 126, 130, 128, 126, 121, 115, 116, 124, 120, 129, 127, 126, 121, 130, 119, 126, 121, 130, 123, 124, 115, 118, 132, 119, 110, 111, 128, 107, 141, 119, 130, 142, 93, 126, 115, 127, 118, 123, 118, 115, 129, 134, 101, 134, 131, 117, 116, 119, 100, 132, 129, 120, 120, 119, 125, 128, 130, 123, 117, 127, 118, 163, 128, 123, 118, 109, 131, 119, 128, 125, 128, 128, 111, 132, 126, 128, 109, 125, 135, 122, 130, 111, 135, 123, 117, 117, 125, 138, 130, 114, 103, 124, 134, 123, 125, 135, 114, 124, 126, 122, 125, 117, 128, 133, 135, 127, 126, 122, 112, 124, 126, 121, 120, 119, 111, 120, 89, 125, 117, 117, 125, 117, 127, 121, 113, 126, 149, 123, 125, 127, 124, 111, 120, 131, 122, 121, 137, 95, 126, 119, 147, 129, 109, 115, 123, 109, 106, 131, 128, 125, 118, 134, 126, 128, 129, 123, 116, 118, 117, 157, 125, 120, 130, 123, 117, 136, 126, 111, 118, 130, 110, 134, 147, 124, 124, 121, 131, 126, 124, 124, 111, 146, 118, 125, 125, 131, 116, 124, 128, 117, 138, 137, 134, 132, 128, 107, 129, 167, 120, 132, 140, 109, 108, 123, 126, 109, 115, 125, 135, 107, 122, 116, 130, 138, 124, 122, 126, 160, 113, 131, 120, 114, 130, 130, 116, 124, 122, 120, 116, 105, 119, 120, 124, 120, 114, 123, 132, 130, 120, 126, 153, 114, 130, 118, 131, 116, 121, 126, 136, 121, 135, 126, 113, 121, 126, 132, 122, 132, 132, 126, 129, 117, 125, 133, 136, 131, 124, 120, 120, 127, 125, 125, 118, 122, 124, 123, 119, 127, 126, 126, 119, 127, 111, 136, 121, 112, 131, 121, 121, 126, 129, 115, 129, 123, 116, 117, 114, 127, 126, 128, 117, 132, 133, 113, 126, 136, 114, 129, 129, 125, 132, 126, 127, 126, 121, 126, 133, 124, 118, 128, 129, 129, 124, 129, 125, 134, 132, 126, 125, 122, 122, 118, 119, 121, 141, 129, 128, 121, 121, 130, 119, 135, 115, 127, 120, 143, 118, 126, 144, 123, 120, 125, 119, 126, 126, 118, 127, 110, 119, 126, 125, 139, 127, 119, 132, 120, 121, 126, 122, 124, 119, 113, 124, 130, 119, 126, 118, 130, 124, 117, 118, 133, 133, 121, 136, 126, 118, 121, 138, 123, 113, 128, 121, 126, 122, 125, 125, 135, 115, 133, 122, 124, 129, 112, 120, 120, 141, 125, 126, 125, 118, 127, 123, 119, 112, 129, 118, 130, 124, 126, 130, 123, 124, 129, 121, 122, 124, 120, 120, 134, 118, 124, 116, 118, 122, 130, 126, 126, 127, 133, 120, 121, 128, 125, 121, 121, 120, 136, 126, 137, 109, 130, 123, 127, 130, 128, 127, 129, 126, 120, 135, 110, 126, 122, 124, 119, 126, 110, 112, 119, 119, 123, 121, 135, 121, 122, 123, 120, 139, 127, 119, 116, 114, 134, 112, 118, 119, 131, 118, 134, 125, 137, 120, 124, 125, 122, 140, 133, 115, 126, 112, 125, 120, 121, 122, 113, 127, 125, 119, 122, 117, 123, 112, 124, 125, 119, 126, 121, 120, 110, 126, 133, 127, 119, 121, 119, 121, 118, 124, 132, 136, 122, 123, 120, 117, 121, 123, 107, 124, 129, 133, 127, 115, 116, 118, 120, 127, 131, 119, 129, 121, 115, 118, 140, 125, 125, 123, 118, 119, 114, 137, 133, 120, 137, 137, 128, 124, 132, 115, 120, 96, 128, 122, 111, 120, 115, 120, 131, 125, 110, 119, 127, 126, 129, 120, 109, 129, 127, 114, 118, 137, 129, 132, 126, 121, 137, 114, 124, 120, 129, 124, 127, 132, 131, 141, 113, 110, 111, 107, 117, 118, 132, 119, 113, 118, 117, 123, 131, 135, 124, 123, 114, 117, 129, 125, 126, 117, 110, 124, 129, 111, 123, 124, 127, 121, 120, 126, 125, 129, 123, 125, 120, 128, 125, 119, 109, 111, 120, 124, 116, 113, 124, 115, 123, 125, 126, 104, 125, 129, 123, 122, 131, 125, 126, 120, 112, 129, 106, 135, 119, 113, 129, 126, 128, 127, 135, 129, 122, 130, 120, 111, 128, 119, 94, 124, 127, 124, 115, 118, 128, 121, 130, 133, 129, 119, 153, 124, 123, 121, 132, 124, 118, 131, 128, 135, 124, 107, 128, 118, 119, 127, 119, 120, 125, 118, 111, 129, 123, 113, 117, 122, 112, 126, 125, 117, 133, 108, 118, 133, 139, 130, 108, 124, 114, 136, 113, 110, 128, 129, 124, 118, 125, 138, 125, 121, 132, 121, 128, 116, 122, 117, 124, 119, 121, 123, 124, 135, 124, 127, 93, 125, 180, 115, 120, 128, 131, 154, 131, 128, 134, 121, 117, 121, 136, 127, 122, 125, 130, 128, 120, 121, 116, 130, 127, 123, 134, 125, 120, 114, 118, 110, 136, 121, 134, 119, 138, 116, 119, 106, 130, 116, 116, 105, 126, 112, 125, 116, 126, 118, 136, 108, 122, 116, 128, 137, 118, 140, 123, 123, 123, 117, 124, 123, 121, 126, 124, 108, 131, 123, 130, 126, 117, 124, 130, 118, 120, 126, 123, 130, 125, 119, 136, 126, 114, 124, 126, 125, 127, 127, 119, 124, 120, 133, 119, 129, 113, 130, 119, 130, 122, 119, 149, 124, 123, 126, 122, 123, 130, 124, 118, 123, 116, 113, 126, 129, 129, 117, 125, 163, 131, 133, 128, 134, 124, 140, 125, 171, 124, 123, 129, 123, 100, 101, 122, 123, 127, 129, 98, 128, 116, 129, 124, 101, 125, 124, 120, 112, 120, 108, 122, 132, 123, 132, 120, 120, 125, 117, 136, 132, 125, 127, 127, 126, 142, 109, 133, 120, 127, 127, 130, 124, 126, 114, 108, 129, 129, 128, 112, 113, 118, 115, 137, 141, 128, 126, 127, 103, 127, 124, 123, 126, 133, 117, 129, 136, 136, 137, 127, 119, 120, 121, 131, 130, 128, 118, 129, 123, 124, 117, 122, 132, 121, 126, 105, 133, 118, 138, 115, 129, 114, 122, 123, 123, 133, 61, 130, 128, 140, 126, 120, 132, 123, 128, 134, 156, 132, 122, 128, 112, 124, 113, 120, 121, 129, 123, 118, 140, 119, 122, 112, 120, 134, 112, 118, 122, 106, 143, 123, 121, 123, 137, 110, 114, 125, 122, 135, 124, 129, 123, 123, 123, 120, 128, 116, 117, 130, 121, 118, 119, 115, 123, 123, 123, 128, 131, 124, 130, 122, 135, 125, 131, 117, 126, 117, 125, 132, 119, 115, 110, 124, 120, 128, 120, 129, 121, 123, 133, 115, 122, 130, 123, 123, 140, 131, 149, 118, 101, 125, 118, 123, 126, 123, 136, 107, 115, 118, 117, 123, 118, 145, 114, 139, 120, 129, 122, 127, 121, 123, 125, 121, 154, 123, 137, 117, 115, 141, 126, 121, 111, 116, 109, 124, 138, 122, 125, 134, 136, 141, 129, 125, 114, 134, 122, 113, 125, 127, 102, 125, 109, 122, 114, 118, 123, 121, 127, 96, 136, 126, 117, 119, 118, 125, 120, 120, 119, 123, 119, 133, 123, 113, 123, 120, 121, 124, 155, 119, 122, 129, 132, 116, 123, 118, 122, 125, 142, 119, 146, 131, 116, 122, 123, 127, 114, 129, 120, 123, 125, 122, 125, 113, 132, 130, 134, 125, 114, 127, 121, 146, 123, 126, 115, 120, 131, 115, 130, 131, 127, 164, 126, 125, 119, 113, 115, 121, 119, 126, 126, 91, 127, 126, 123, 120, 119, 127, 109, 112, 130, 118, 124, 127, 127, 113, 121, 121, 114, 144, 150, 125, 121, 121, 127, 123, 108, 145, 114, 125, 105, 114, 117, 122, 137, 112, 114, 134, 124, 97, 126, 128, 127, 132, 131, 116, 117, 134, 119, 129, 125, 114, 121, 119, 111, 123, 130, 119, 120, 120, 116, 121, 126, 121, 132, 130, 106, 125, 127, 113, 87, 120, 116, 119, 125, 132, 105, 122, 127, 121, 113, 126, 127, 116, 105, 113, 116, 120, 121, 126, 152, 123, 139, 134, 113, 132, 82, 132, 140, 111, 136, 125, 120, 125, 84, 137, 123, 108, 122, 135, 102, 130, 139, 138, 134, 123, 96, 118, 99, 107, 108, 113, 132, 182, 116, 118, 115, 117, 118, 141, 127, 128, 125, 115, 108, 125, 117, 124, 128, 121, 114, 110, 121, 123, 123, 118, 131, 116, 127, 139, 108, 115, 92, 118, 119, 107, 120, 86, 144, 120, 153, 125, 120, 97, 121, 109, 143, 87, 103, 104, 101, 123, 125, 115, 130, 108, 123, 123, 135, 111, 130, 104, 101, 124, 132, 117, 106, 186, 115, 117, 109, 129, 152, 125, 127, 122, 139, 126, 127, 103, 126, 113, 120, 130, 75, 124, 126, 145, 131, 101, 135, 129, 135, 120, 120, 92, 145, 112, 109, 106, 124, 148, 115, 115, 143, 118, 127, 135, 122, 126, 123, 116, 128, 128, 124, 119, 127, 137, 112, 130, 126, 150, 115, 123, 126, 122, 116, 120, 120, 123, 124, 159, 153, 117, 145, 118, 123, 116, 120, 120, 118, 160, 148, 133, 112, 140, 119, 131, 150, 116, 127, 118, 105, 124, 122, 150, 110, 116, 118, 139, 100, 101, 116, 130, 119, 126, 144, 130, 128, 118, 105, 144, 85, 124, 111, 134, 154, 127, 135, 117, 137, 154, 112, 128, 106, 127, 129, 105, 116, 120, 129, 134, 120, 128, 100, 107, 112, 133, 136, 129, 112, 123, 134, 115, 131, 125, 120, 122, 128, 127, 115, 150, 127, 128, 129, 127, 118, 119, 117, 121, 114, 131, 132, 113, 131, 118, 128, 113, 132, 123, 123, 110, 131, 113, 131, 121, 123, 130, 121, 121, 125, 126, 111, 125, 116, 138, 118, 137, 121, 144, 121, 128, 130, 133, 121, 117, 125, 115, 127, 123, 127, 125, 140, 124, 117, 128, 117, 107, 100, 102, 122, 117, 114, 113, 122, 121, 120, 130, 119, 135, 122, 127, 130, 126, 128, 123, 128, 123, 124, 123, 123, 115, 119, 125, 115, 132, 126, 123, 116, 145, 116, 125, 129, 126, 117, 133, 124, 128, 109, 117, 116, 120, 131, 125, 119, 142, 114, 124, 119, 117, 127, 131, 122, 125, 126, 122, 125, 125, 121, 129, 115, 125, 117, 124, 125, 121, 128, 122, 128, 121, 126, 124, 129, 121, 111, 117, 121, 127, 120, 131, 125, 141, 107, 122, 119, 129, 122, 133, 110, 129, 124, 121, 123, 125, 119, 104, 130, 126, 130, 120, 119, 120, 109, 128, 129, 129, 120, 109, 123, 121, 135, 121, 125, 115, 130, 117, 121, 110, 121, 122, 136, 129, 119, 106, 119, 136, 124, 115, 121, 125, 120, 125, 142, 113, 122, 123, 124, 107, 124, 112, 118, 112, 134, 127, 124, 118, 141, 121, 124, 121, 114, 118, 111, 122, 120, 120, 133, 127, 114, 129, 119, 105, 132, 120, 122, 121, 126, 134, 132, 129, 128, 122, 121, 120, 116, 134, 117, 128, 127, 114, 144, 118, 116, 126, 133, 131, 108, 131, 146, 119, 137, 112, 146, 125, 122, 112, 142, 119, 112, 116, 129, 121, 132, 121, 118, 127, 123, 128, 115, 149, 115, 125, 129, 123, 119, 120, 127, 119, 142, 115, 106, 108, 124, 112, 129, 122, 116, 111, 118, 141, 108, 123, 115, 124, 145, 125, 123, 126, 121, 140, 130, 127, 124, 111, 130, 128, 116, 127, 125, 126, 148, 137, 139, 126, 122, 112, 126, 116, 123, 118, 119, 125, 122, 121, 130, 123, 124, 130, 131, 125, 122, 115, 128, 135, 122, 128, 126, 122, 122, 117, 127, 112, 124, 126, 120, 122, 114, 122, 134, 120, 123, 125, 103, 131, 109, 108, 137, 145, 113, 112, 150, 123, 114, 113, 122, 121, 132, 122, 117, 121, 144, 122, 127, 122, 124, 140, 147, 122, 148, 114, 117, 123, 119, 126, 119, 123, 121, 125, 117, 131, 129, 118, 130, 122, 131, 127, 117, 125, 112, 119, 109, 126, 129, 137, 126, 136, 132, 114, 146, 167, 123, 125, 129, 125, 113, 132, 122, 115, 127, 126, 135, 123, 127, 135, 112, 137, 98, 123, 117, 119, 121, 129, 134, 111, 123, 130, 127, 119, 158, 121, 117, 122, 136, 106, 118, 118, 120, 118, 110, 105, 125, 137, 117, 139, 110, 132, 133, 119, 125, 125, 127, 124, 122, 125, 135, 123, 111, 141, 140, 127, 86, 149, 127, 138, 115, 123, 132, 112, 123, 123, 118, 129, 137, 128, 113, 127, 135, 127, 149, 113, 130, 119, 146, 103, 126, 125, 128, 117, 125, 136, 129, 119, 141, 120, 130, 136, 127, 122, 113, 117, 130, 117, 125, 124, 140, 112, 123, 132, 126, 120, 123, 117, 123, 149, 131, 130, 134, 124, 119, 127, 82, 122, 138, 124, 112, 123, 156, 131, 99, 120, 109, 115, 119, 122, 128, 122, 131, 116, 124, 128, 122, 125, 129, 91, 126, 129, 122, 123, 138, 138, 145, 102, 139, 116, 112, 123, 136, 113, 123, 121, 144, 130, 116, 116, 132, 115, 112, 123, 127, 133, 128, 117, 129, 133, 135, 116, 126, 130, 135, 119, 129, 129, 113, 129, 120, 117, 105, 122, 136, 128, 124, 117, 124, 123, 106, 113, 142, 134, 136, 177, 111, 124, 128, 137, 131, 125, 118, 121, 112, 139, 132, 131, 133, 115, 129, 139, 145, 117, 133, 129, 141, 124, 127, 119, 117, 122, 125, 118, 125, 122, 122, 132, 120, 127, 125, 135, 114, 124, 123, 130, 120, 124, 94, 122, 121, 127, 153, 120, 120, 121, 130, 122, 119, 120, 112, 122, 123, 127, 119, 124, 138, 130, 117, 130, 104, 119, 122, 112, 112, 116, 127, 128, 121, 131, 126, 112, 139, 130, 160, 138, 117, 136, 139, 139, 135, 96, 139, 137, 126, 121, 119, 134, 135, 126, 119, 115, 119, 115, 126, 110, 114, 105, 124, 125, 138, 135, 126, 137, 125, 119, 127, 128, 130, 122, 128, 127, 140, 122, 129, 119, 122, 121, 118, 100, 117, 125, 134, 136, 132, 122, 123, 127, 101, 112, 127, 97, 119, 121, 136, 132, 146, 128, 140, 133, 129, 116, 132, 129, 121, 128, 125, 127, 118, 126, 129, 81, 124, 130, 129, 116, 116, 132, 132, 151, 125, 128, 122, 123, 130, 125, 121, 117, 118, 124, 131, 118, 113, 127, 126, 119, 121, 138, 120, 123, 135, 122, 131, 120, 125, 119, 140, 122, 123, 125, 132, 117, 121, 140, 130, 113, 123, 120, 123, 134, 127, 126, 129, 118, 96, 123, 132, 117, 114, 116, 124, 132, 109, 114, 133, 126, 123, 139, 124, 130, 137, 123, 129, 130, 121, 123, 128, 90, 120, 124, 101, 126, 123, 124, 127, 120, 122, 122, 129, 138, 103, 99, 130, 134, 120, 119, 126, 126, 123, 119, 121, 139, 130, 123, 125, 123, 131, 124, 118, 122, 136, 118, 105, 134, 127, 128, 123, 120, 126, 126, 122, 119, 121, 122, 132, 125, 135, 123, 118, 120, 129, 117, 115, 130, 129, 125, 126, 127, 131, 123, 128, 115, 121, 124, 116, 116, 106, 122, 120, 118, 149, 122, 121, 122, 129, 132, 125, 124, 127, 146, 108, 137, 95, 120, 119, 123, 128, 120, 128, 128, 109, 119, 119, 119, 124, 121, 105, 107, 162, 144, 138, 123, 126, 121, 114, 144, 130, 130, 125, 124, 115, 120, 125, 125, 128, 133, 109, 123, 125, 111, 120, 124, 143, 109, 89, 101, 126, 127, 118, 128, 100, 126, 122, 110, 124, 130, 121, 125, 128, 122, 124, 107, 120, 109, 121, 121, 131, 123, 126, 124, 118, 117, 116, 255, 120, 114, 134, 126, 129, 122, 131, 128, 139, 126, 130, 110, 123, 124, 123, 124, 126, 129, 129, 111, 135, 159, 122, 127, 123, 123, 162, 119, 134, 124, 129, 117, 134, 108, 116, 119, 148, 130, 105, 126, 128, 121, 123, 130, 134, 129, 118, 122, 134, 143, 115, 128, 121, 120, 117, 114, 124, 107, 120, 126, 118, 124, 118, 134, 121, 145, 109, 112, 127, 143, 136, 127, 127, 145, 124, 97, 121, 121, 126, 122, 120, 110, 102, 119, 125, 118, 105, 127, 87, 96, 107, 132, 124, 99, 111, 128, 127, 123, 143, 115, 146, 120, 120, 126, 124, 114, 83, 123, 120, 134, 118, 124, 129, 115, 119, 125, 119, 135, 137, 120, 138, 114, 123, 139, 129, 137, 107, 99, 118, 122, 108, 105, 141, 127, 121, 141, 127, 123, 110, 128, 112, 123, 135, 138, 128, 115, 115, 137, 112, 115, 147, 116, 145, 130, 117, 109, 115, 136, 104, 128, 144, 117, 125, 119, 131, 113, 116, 128, 120, 115, 123, 134, 128, 129, 118, 159, 143, 112, 138, 88, 111, 132, 122, 124, 125, 133, 152, 106, 111, 116, 130, 150, 122, 137, 164, 126, 99, 124, 117, 118, 120, 129, 117, 117, 145, 125, 143, 117, 124, 122, 114, 89, 122, 124, 119, 96, 138, 122, 119, 118, 125, 127, 128, 118, 134, 106, 121, 126, 131, 119, 122, 116, 123, 157, 119, 122, 148, 91, 113, 123, 157, 112, 123, 123, 123, 125, 114, 122, 116, 135, 116, 116, 119, 115, 117, 121, 121, 116, 117, 128, 108, 135, 92, 139, 119, 119, 132, 113, 103, 129, 118, 145, 129, 120, 129, 130, 126, 116, 121, 120, 122, 156, 100, 119, 109, 135, 132, 115, 143, 106, 119, 134, 115, 131, 119, 119, 131, 131, 141, 120, 122, 135, 119, 113, 124, 122, 118, 119, 107, 126, 127, 134, 127, 126, 126, 117, 125, 112, 116, 94, 132, 122, 118, 118, 122, 112, 122, 133, 126, 113, 118, 111, 121, 143, 132, 150, 132, 96, 105, 134, 121, 140, 115, 121, 114, 125, 128, 121, 124, 127, 121, 134, 118, 126, 116, 120, 124, 123, 123, 169, 119, 139, 121, 130, 117, 132, 143, 110, 119, 132, 119, 110, 128, 132, 134, 120, 109, 120, 113, 130, 108, 113, 125, 112, 110, 122, 122, 95, 138, 121, 122, 110, 128, 128, 124, 133, 132, 124, 118, 118, 129, 104, 121, 119, 123, 127, 119, 123, 122, 119, 118, 142, 108, 123, 108, 115, 124, 127, 122, 125, 123, 122, 127, 123, 130, 134, 127, 127, 124, 125, 122, 128, 134, 148, 117, 102, 121, 126, 133, 122, 128, 126, 134, 101, 124, 121, 106, 140, 134, 130, 105, 128, 129, 116, 129, 124, 120, 125, 138, 107, 130, 90, 118, 128, 121, 107, 118, 135, 112, 112, 120, 169, 111, 128, 119, 127, 110, 130, 133, 122, 127, 132, 122, 120, 117, 121, 123, 128, 135, 137, 120, 131, 114, 127, 94, 120, 111, 137, 115, 129, 117, 129, 130, 123, 123, 107, 140, 113, 129, 121, 138, 131, 123, 132, 116, 127, 116, 125, 102, 131, 122, 113, 118, 129, 122, 104, 121, 125, 123, 128, 130, 114, 123, 107, 123, 124, 128, 111, 151, 123, 138, 120, 113, 131, 121, 123, 138, 122, 115, 127, 141, 129, 118, 127, 108, 114, 119, 130, 130, 131, 121, 124, 130, 122, 111, 120, 123, 151, 125, 121, 122, 122, 118, 119, 133, 135, 101, 128, 126, 130, 127, 108, 132, 124, 125, 111, 123, 142, 129, 130, 129, 121, 121, 139, 121, 129, 122, 117, 100, 116, 136, 140, 123, 115, 126, 129, 120, 122, 121, 126, 116, 120, 117, 123, 131, 123, 121, 119, 115, 125, 119, 123, 117, 123, 111, 127, 133, 123, 123, 147, 118, 128, 117, 126, 107, 130, 123, 121, 140, 116, 122, 119, 122, 135, 125, 130, 122, 125, 120, 130, 130, 125, 131, 111, 130, 120, 112, 98, 123, 129, 120, 126, 144, 125, 120, 114, 115, 109, 128, 126, 105, 121, 149, 127, 126, 132, 127, 150, 115, 120, 125, 119, 114, 130, 117, 128, 124, 122, 132, 152, 125, 117, 120, 125, 136, 117, 125, 119, 99, 130, 126, 128, 120, 121, 126, 123, 124, 120, 106, 121, 122, 123, 129, 130, 130, 114, 107, 136, 135, 130, 121, 119, 116, 120, 135, 128, 120, 121, 119, 120, 120, 123, 139, 127, 128, 132, 129, 126, 126, 117, 123, 122, 123, 120, 120, 88, 118, 122, 125, 120, 125, 122, 111, 130, 130, 123, 126, 111, 145, 123, 127, 142, 116, 131, 123, 123, 131, 122, 132, 126, 119, 151, 139, 124, 143, 141, 119, 132, 125, 121, 133, 123, 128, 116, 102, 106, 81, 130, 116, 131, 126, 105, 133, 115, 119, 100, 117, 124, 125, 130, 116, 132, 121, 120, 91, 131, 146, 121, 120, 120, 121, 104, 156, 122, 131, 129, 134, 122, 124, 111, 117, 122, 65, 135, 138, 114, 164, 128, 122, 112, 126, 128, 127, 141, 144, 161, 132, 135, 129, 125, 120, 132, 129, 112, 139, 122, 127, 122, 136, 128, 129, 126, 144, 132, 106, 119, 133, 79, 134, 129, 112, 130, 129, 114, 136, 103, 132, 134, 127, 130, 132, 123, 78, 123, 105, 120, 122, 113, 137, 143, 126, 116, 136, 126, 136, 121, 123, 127, 135, 129, 133, 79, 86, 127, 131, 125, 139, 122, 132, 101, 108, 125, 136, 100, 126, 121, 132, 109, 133, 113, 140, 111, 129, 117, 117, 118, 119, 126, 138, 126, 114, 122, 125, 124, 123, 157, 126, 133, 122, 131, 130, 111, 125, 136, 116, 121, 119, 130, 153, 125, 122, 144, 129, 120, 137, 120, 107, 127, 126, 131, 129, 136, 125, 126, 132, 117, 120, 111, 119, 132, 102, 127, 124, 125, 137, 103, 124, 130, 126, 117, 96, 118, 129, 130, 128, 153, 131, 109, 136, 125, 129, 122, 122, 125, 102, 133, 116, 111, 142, 139, 109, 121, 122, 125, 134, 133, 132, 135, 127, 120, 135, 124, 142, 151, 132, 129, 100, 128, 128, 117, 127, 142, 132, 135, 119, 154, 86, 132, 128, 126, 126, 113, 145, 129, 133, 130, 128, 100, 126, 118, 120, 128, 129, 130, 106, 137, 135, 125, 115, 120, 118, 119, 128, 126, 123, 124, 144, 127, 128, 115, 116, 128, 131, 117, 121, 123, 121, 119, 120, 124, 102, 129, 119, 135, 119, 121, 124, 129, 148, 126, 123, 122, 136, 121, 124, 113, 146, 128, 121, 126, 111, 128, 121, 124, 126, 114, 133, 115, 115, 128, 132, 133, 129, 129, 132, 130, 136, 93, 124, 123, 123, 125, 132, 125, 130, 107, 128, 122, 115, 122, 103, 119, 145, 112, 126, 126, 127, 127, 113, 126, 126, 129, 120, 123, 119, 123, 122, 110, 128, 120, 165, 130, 115, 113, 125, 125, 125, 122, 135, 130, 121, 124, 121, 120, 132, 124, 131, 127, 100, 111, 112, 116, 130, 120, 126, 129, 101, 118, 122, 159, 124, 126, 135, 127, 93, 130, 125, 119, 123, 128, 197, 128, 133, 133, 123, 135, 120, 115, 112, 132, 126, 129, 120, 125, 131, 126, 118, 122, 132, 129, 118, 123, 124, 123, 121, 127, 122, 128, 118, 129, 127, 116, 121, 113, 130, 124, 130, 131, 122, 129, 132, 117, 116, 118, 125, 127, 122, 118, 119, 116, 131, 116, 122, 126, 130, 125, 118, 116, 134, 113, 116, 134, 124, 133, 82, 96, 118, 127, 131, 104, 125, 126, 120, 106, 115, 129, 123, 132, 127, 94, 123, 114, 124, 135, 126, 125, 129, 120, 127, 124, 114, 124, 100, 129, 147, 113, 130, 128, 122, 132, 125, 131, 125, 130, 124, 136, 129, 120, 122, 128, 124, 130, 114, 163, 122, 126, 81, 119, 131, 113, 125, 124, 56, 113, 121, 113, 113, 128, 122, 127, 128, 120, 111, 108, 116, 124, 123, 128, 108, 140, 117, 122, 121, 112, 121, 133, 123, 126, 125, 131, 149, 113, 113, 128, 109, 132, 118, 121, 113, 137, 122, 119, 111, 135, 110, 119, 115, 119, 127, 105, 103, 119, 120, 122, 119, 117, 107, 122, 133, 117, 113, 132, 128, 107, 115, 136, 114, 165, 150, 122, 133, 113, 115, 142, 127, 133, 123, 120, 122, 121, 121, 122, 122, 121, 121, 144, 127, 123, 108, 120, 122, 121, 128, 112, 110, 149, 126, 118, 125, 116, 133, 139, 124, 116, 115, 132, 127, 129, 133, 120, 117, 120, 114, 119, 126, 109, 114, 111, 107, 121, 135, 138, 129, 133, 123, 123, 119, 108, 114, 123, 120, 118, 111, 126, 125, 113, 118, 115, 132, 120, 121, 109, 129, 121, 128, 128, 133, 112, 110, 136, 129, 115, 126, 115, 114, 116, 119, 102, 119, 132, 126, 118, 117, 158, 128, 131, 154, 135, 128, 127, 125, 100, 131, 112, 121, 137, 115, 129, 116, 141, 113, 126, 126, 112, 110, 126, 110, 125, 121, 101, 97, 125, 133, 118, 123, 126, 119, 117, 120, 115, 109, 124, 119, 122, 126, 117, 136, 119, 125, 123, 111, 130, 124, 121, 108, 125, 129, 125, 126, 122, 129, 114, 130, 125, 136, 117, 107, 117, 117, 131, 110, 119, 121, 137, 111, 118, 121, 135, 129, 120, 111, 122, 123, 120, 124, 118, 124, 144, 115, 134, 102, 124, 111, 123, 124, 108, 117, 134, 123, 106, 122, 117, 120, 126, 128, 117, 125, 126, 134, 123, 119, 126, 126, 125, 119, 126, 127, 119, 128, 130, 126, 125, 124, 126, 134, 124, 124, 124, 117, 108, 122, 127, 123, 124, 129, 133, 123, 123, 120, 118, 121, 128, 127, 121, 124, 127, 116, 127, 138, 130, 122, 125, 126, 124, 124, 119, 119, 126, 127, 130, 122, 120, 125, 123, 107, 127, 130, 120, 127, 120, 127, 103, 125, 122, 132, 121, 131, 123, 132, 131, 123, 128, 126, 131, 133, 123, 124, 114, 133, 125, 126, 126, 127, 118, 121, 127, 129, 125, 125, 121, 111, 126, 122, 126, 123, 133, 129, 124, 127, 127, 122, 121, 124, 130, 135, 122, 122, 121, 125, 120, 121, 123, 136, 126, 131, 117, 129, 126, 124, 127, 127, 126, 128, 122, 131, 135, 124, 125, 127, 130, 129, 137, 91, 130, 125, 124, 124, 132, 122, 125, 125, 128, 128, 126, 110, 127, 137, 112, 125, 96, 128, 123, 129, 122, 129, 122, 129, 120, 130, 122, 134, 124, 125, 130, 121, 127, 122, 123, 127, 120, 124, 126, 133, 118, 122, 135, 129, 128, 117, 109, 126, 124, 119, 123, 126, 129, 128, 124, 127, 124, 125, 125, 119, 127, 121, 128, 120, 122, 125, 127, 130, 132, 125, 126, 131, 129, 128, 115, 120, 128, 139, 121, 125, 123, 126, 127, 129, 124, 127, 136, 127, 131, 128, 136, 125, 125, 119, 123, 120, 123, 125, 128, 124, 133, 123, 129, 129, 121, 129, 127, 129, 124, 126, 127, 136, 129, 114, 125, 121, 131, 123, 122, 112, 119, 103, 126, 121, 132, 93, 101, 130, 127, 126, 150, 136, 133, 135, 111, 152, 135, 129, 117, 126, 132, 126, 106, 135, 122, 127, 117, 105, 126, 144, 121, 128, 127, 120, 125, 106, 107, 102, 114, 127, 108, 120, 132, 112, 198, 133, 118, 124, 106, 104, 122, 117, 117, 106, 142, 150, 119, 118, 135, 132, 128, 119, 123, 130, 137, 126, 118, 102, 139, 120, 120, 132, 129, 118, 125, 140, 111, 138, 136, 120, 122, 130, 129, 117, 131, 124, 132, 119, 135, 116, 104, 133, 128, 126, 110, 135, 125, 127, 110, 112, 124, 110, 152, 138, 119, 116, 110, 117, 110, 120, 131, 120, 147, 128, 152, 120, 123, 103, 132, 151, 139, 106, 131, 135, 138, 128, 120, 123, 110, 131, 116, 117, 136, 128, 130, 140, 133, 123, 126, 133, 117, 132, 189, 120, 120, 111, 138, 135, 127, 122, 116, 134, 132, 126, 118, 106, 123, 138, 96, 135, 121, 109, 136, 155, 129, 124, 131, 112, 116, 127, 109, 122, 118, 128, 114, 122, 114, 129, 114, 133, 137, 129, 115, 111, 126, 129, 114, 121, 117, 127, 106, 130, 119, 130, 132, 106, 134, 119, 132, 103, 108, 141, 120, 132, 115, 136, 107, 118, 127, 130, 126, 127, 113, 112, 116, 123, 126, 102, 137, 124, 122, 107, 89, 126, 120, 134, 126, 128, 124, 113, 137, 120, 145, 131, 143, 127, 114, 110, 114, 128, 113, 122, 102, 132, 109, 148, 129, 101, 128, 135, 133, 120, 124, 129, 121, 114, 114, 125, 123, 126, 109, 129, 117, 129, 126, 146, 123, 113, 126, 123, 120, 127, 122, 128, 128, 155, 125, 123, 117, 124, 124, 128, 121, 119, 126, 121, 123, 131, 121, 135, 131, 122, 122, 124, 109, 127, 118, 128, 138, 118, 135, 123, 114, 127, 132, 123, 125, 122, 132, 129, 108, 119, 114, 122, 120, 121, 135, 120, 121, 122, 128, 124, 122, 119, 115, 101, 123, 119, 122, 124, 119, 117, 128, 127, 124, 97, 124, 122, 118, 114, 122, 126, 125, 126, 126, 119, 115, 123, 127, 127, 119, 126, 173, 126, 122, 138, 126, 131, 112, 128, 132, 115, 114, 125, 117, 122, 114, 130, 139, 125, 116, 126, 122, 125, 127, 122, 131, 132, 138, 122, 126, 114, 105, 119, 122, 129, 122, 125, 142, 118, 122, 120, 120, 152, 128, 135, 129, 123, 121, 121, 114, 122, 121, 128, 116, 120, 123, 124, 130, 125, 125, 131, 107, 106, 125, 126, 117, 121, 123, 120, 122, 113, 114, 126, 123, 116, 133, 125, 105, 130, 132, 111, 120, 126, 124, 124, 125, 124, 119, 134, 139, 157, 122, 128, 119, 113, 114, 123, 121, 129, 101, 135, 112, 121, 113, 132, 124, 115, 126, 118, 117, 122, 126, 123, 121, 120, 128, 119, 139, 123, 122, 131, 120, 94, 123, 126, 110, 129, 127, 131, 125, 126, 127, 106, 121, 128, 100, 126, 126, 114, 126, 119, 111, 133, 119, 110, 145, 120, 132, 123, 125, 115, 117, 124, 141, 122, 115, 129, 118, 105, 135, 114, 128, 135, 103, 135, 125, 134, 147, 136, 130, 120, 130, 124, 130, 125, 135, 124, 133, 120, 129, 128, 124, 127, 133, 120, 128, 138, 122, 131, 131, 123, 132, 127, 129, 109, 128, 127, 111, 126, 126, 124, 114, 129, 126, 129, 124, 126, 142, 132, 126, 133, 123, 131, 132, 130, 113, 110, 129, 117, 123, 130, 121, 116, 126, 132, 108, 119, 135, 129, 110, 122, 130, 133, 129, 130, 130, 134, 118, 126, 118, 124, 117, 128, 125, 115, 127, 109, 107, 130, 132, 138, 135, 124, 123, 128, 129, 110, 128, 117, 142, 141, 190, 131, 119, 125, 107, 125, 134, 125, 113, 132, 111, 98, 125, 134, 125, 121, 113, 121, 120, 130, 132, 120, 122, 134, 128, 128, 131, 129, 132, 136, 122, 131, 123, 116, 127, 115, 126, 126, 169, 126, 134, 118, 132, 130, 134, 107, 133, 114, 135, 141, 126, 122, 142, 126, 129, 124, 126, 113, 132, 122, 131, 113, 124, 117, 116, 124, 121, 122, 112, 120, 123, 115, 130, 116, 120, 129, 169, 130, 138, 121, 122, 126, 101, 134, 118, 117, 122, 131, 65, 128, 123, 127, 124, 128, 122, 113, 120, 116, 127, 120, 136, 118, 133, 136, 119, 128, 127, 130, 120, 135, 140, 155, 128, 121, 130, 127, 128, 124, 133, 131, 128, 116, 121, 120, 137, 123, 138, 118, 129, 135, 123, 141, 117, 131, 122, 81, 125, 135, 121, 126, 128, 127, 121, 120, 126, 117, 138, 129, 122, 124, 120, 124, 120, 143, 123, 158, 146, 138, 125, 127, 117, 133, 122, 121, 126, 116, 120, 125, 118, 120, 122, 119, 123, 133, 139, 122, 127, 119, 117, 107, 116, 152, 130, 131, 135, 131, 142, 119, 134, 120, 120, 133, 120, 124, 129, 126, 122, 112, 117, 122, 130, 117, 120, 157, 114, 145, 123, 125, 137, 114, 117, 120, 111, 124, 121, 134, 112, 120, 129, 117, 133, 128, 126, 129, 119, 114, 120, 134, 126, 121, 128, 120, 118, 130, 125, 125, 122, 116, 113, 152, 108, 116, 129, 116, 131, 131, 139, 114, 128, 121, 154, 117, 122, 119, 131, 122, 125, 116, 122, 128, 109, 131, 135, 122, 133, 124, 121, 122, 120, 116, 125, 131, 122, 122, 105, 135, 135, 124, 121, 119, 125, 140, 137, 127, 131, 118, 135, 132, 130, 130, 120, 115, 127, 125, 142, 118, 120, 119, 122, 121, 119, 128, 151, 116, 142, 119, 147, 126, 123, 129, 118, 116, 121, 129, 130, 129, 129, 119, 125, 116, 124, 130, 127, 118, 119, 126, 112, 129, 120, 127, 135, 117, 127, 122, 126, 120, 125, 136, 122, 121, 109, 127, 121, 123, 129, 120, 123, 126, 119, 114, 111, 125, 123, 131, 129, 124, 132, 129, 123, 128, 115, 124, 113, 124, 125, 132, 117, 121, 131, 125, 132, 122, 127, 122, 124, 127, 132, 122, 127, 120, 120, 122, 119, 143, 121, 122, 128, 123, 127, 123, 119, 124, 108, 135, 126, 142, 137, 129, 121, 118, 139, 163, 120, 130, 145, 125, 127, 125, 123, 120, 123, 113, 129, 135, 134, 105, 123, 126, 122, 127, 126, 126, 152, 127, 125, 134, 106, 133, 123, 119, 127, 128, 123, 119, 117, 148, 125, 129, 114, 126, 117, 127, 115, 136, 139, 112, 132, 139, 114, 141, 115, 129, 124, 116, 132, 120, 131, 135, 139, 133, 131, 110, 70, 137, 129, 116, 138, 76, 117, 121, 119, 121, 131, 123, 124, 126, 117, 126, 152, 117, 130, 125, 110, 102, 139, 123, 129, 160, 131, 120, 152, 126, 127, 172, 122, 121, 118, 132, 96, 130, 125, 119, 128, 135, 126, 109, 132, 125, 130, 120, 132, 113, 121, 128, 147, 116, 120, 118, 127, 114, 122, 121, 121, 126, 122, 130, 122, 122, 141, 114, 129, 122, 126, 126, 126, 120, 125, 134, 124, 116, 113, 124, 120, 119, 124, 121, 132, 131, 134, 125, 114, 116, 118, 81, 94, 121, 126, 113, 119, 120, 104, 122, 122, 186, 124, 130, 125, 117, 123, 143, 111, 125, 133, 119, 99, 130, 67, 125, 124, 121, 131, 130, 127, 143, 128, 132, 123, 125, 126, 115, 111, 120, 113, 122, 115, 116, 120, 130, 119, 123, 115, 126, 123, 124, 130, 101, 120, 125, 133, 112, 119, 112, 112, 128, 140, 120, 130, 105, 94, 122, 127, 138, 118, 101, 129, 95, 103, 126, 123, 120, 151, 121, 122, 114, 143, 121, 133, 133, 115, 131, 122, 119, 120, 128, 118, 123, 128, 129, 127, 118, 131, 123, 107, 132, 116, 129, 127, 113, 128, 115, 120, 104, 130, 130, 115, 130, 122, 166, 123, 114, 125, 139, 125, 120, 121, 110, 129, 127, 117, 126, 115, 121, 129, 138, 125, 138, 131, 115, 131, 123, 128, 121, 111, 108, 120, 109, 129, 138, 116, 107, 138, 145, 121, 118, 133, 123, 110, 121, 129, 108, 112, 129, 143, 127, 121, 119, 120, 132, 116, 137, 119, 111, 128, 130, 134, 120, 120, 122, 123, 123, 116, 200, 116, 118, 123, 123, 125, 121, 116, 116, 109, 129, 113, 122, 115, 126, 139, 120, 141, 138, 128, 154, 118, 116, 110, 115, 133, 118, 144, 132, 130, 113, 88, 123, 135, 117, 120, 110, 127, 103, 133, 125, 81, 130, 116, 107, 114, 109, 122, 124, 119, 125, 134, 115, 126, 122, 138, 142, 128, 123, 135, 124, 121, 119, 125, 134, 128, 130, 122, 118, 130, 127, 139, 118, 126, 124, 123, 106, 129, 129, 136, 119, 123, 122, 121, 127, 126, 115, 131, 125, 137, 130, 142, 88, 113, 125, 121, 130, 169, 130, 114, 132, 111, 126, 129, 119, 103, 120, 114, 111, 121, 128, 128, 117, 121, 127, 111, 118, 130, 124, 128, 131, 130, 137, 128, 145, 116, 129, 108, 126, 134, 105, 127, 108, 118, 139, 132, 126, 114, 130, 127, 127, 132, 131, 104, 115, 132, 124, 113, 120, 114, 118, 140, 127, 117, 119, 118, 129, 126, 103, 116, 164, 128, 132, 134, 123, 126, 129, 123, 98, 143, 85, 136, 121, 113, 119, 114, 133, 127, 121, 123, 125, 130, 89, 121, 116, 121, 67, 134, 121, 99, 120, 122, 112, 120, 151, 123, 117, 131, 122, 131, 114, 135, 125, 127, 124, 131, 126, 122, 137, 129, 121, 124, 120, 129, 128, 121, 130, 129, 147, 125, 90, 114, 124, 128, 113, 135, 119, 132, 150, 122, 119, 124, 109, 119, 108, 118, 129, 120, 127, 115, 103, 117, 121, 123, 109, 122, 115, 142, 125, 106, 136, 117, 123, 125, 133, 134, 116, 129, 121, 125, 126, 123, 131, 119, 133, 117, 112, 130, 120, 125, 125, 119, 107, 132, 133, 116, 126, 122, 129, 121, 102, 117, 130, 124, 126, 125, 120, 146, 118, 114, 126, 90, 113, 115, 122, 123, 126, 138, 127, 111, 123, 119, 121, 134, 122, 128, 132, 140, 120, 134, 123, 131, 118, 131, 125, 130, 129, 112, 116, 130, 115, 105, 134, 124, 121, 131, 121, 112, 122, 117, 112, 122, 119, 144, 124, 121, 124, 136, 122, 143, 125, 126, 126, 126, 124, 137, 123, 123, 143, 136, 131, 131, 116, 98, 127, 114, 124, 128, 124, 122, 128, 122, 120, 127, 120, 121, 118, 128, 125, 119, 117, 121, 110, 130, 124, 119, 122, 146, 133, 131, 116, 118, 120, 117, 130, 125, 127, 107, 125, 121, 105, 117, 120, 139, 128, 126, 141, 123, 124, 131, 122, 122, 116, 120, 123, 117, 121, 116, 128, 111, 130, 123, 127, 120, 120, 127, 107, 120, 126, 130, 134, 116, 125, 118, 116, 92, 114, 128, 127, 155, 118, 127, 112, 114, 124, 128, 124, 116, 125, 118, 124, 150, 120, 123, 110, 133, 132, 120, 126, 124, 121, 126, 124, 132, 140, 130, 116, 127, 128, 114, 127, 121, 129, 133, 146, 132, 124, 126, 128, 128, 131, 120, 139, 125, 121, 122, 137, 127, 134, 130, 109, 132, 140, 119, 129, 127, 116, 118, 120, 106, 125, 135, 131, 114, 113, 107, 128, 118, 126, 130, 128, 116, 100, 130, 119, 126, 131, 134, 129, 138, 115, 123, 106, 133, 137, 126, 110, 155, 139, 122, 120, 123, 116, 127, 130, 131, 113, 114, 134, 115, 124, 132, 137, 118, 141, 141, 132, 127, 109, 117, 128, 123, 116, 125, 117, 121, 157, 123, 152, 138, 116, 130, 133, 121, 128, 126, 101, 121, 121, 128, 135, 112, 122, 140, 130, 123, 114, 143, 135, 126, 108, 130, 122, 137, 96, 123, 129, 123, 122, 121, 130, 124, 127, 125, 116, 132, 121, 111, 119, 125, 118, 130, 125, 120, 115, 123, 122, 125, 121, 130, 121, 107, 127, 132, 137, 121, 142, 146, 121, 124, 123, 128, 119, 125, 123, 127, 100, 128, 123, 123, 124, 128, 124, 116, 140, 140, 128, 122, 126, 121, 115, 126, 126, 131, 100, 120, 122, 121, 108, 120, 122, 114, 123, 136, 88, 132, 125, 128, 143, 128, 130, 130, 125, 106, 127, 124, 116, 124, 128, 124, 116, 120, 124, 123, 125, 127, 149, 128, 136, 121, 112, 140, 132, 127, 133, 121, 132, 127, 119, 117, 132, 122, 110, 115, 133, 129, 125, 146, 132, 124, 139, 119, 130, 121, 123, 128, 115, 126, 125, 137, 131, 125, 123, 134, 105, 127, 117, 124, 119, 120, 197, 119, 110, 128, 113, 119, 122, 116, 132, 124, 143, 136, 131, 128, 134, 124, 102, 167, 129, 117, 123, 118, 122, 130, 149, 113, 125, 131, 116, 98, 122, 117, 109, 106, 117, 126, 121, 118, 105, 144, 132, 139, 132, 109, 122, 126, 111, 114, 124, 135, 114, 122, 124, 123, 125, 111, 110, 120, 112, 106, 136, 124, 132, 149, 115, 125, 124, 130, 130, 125, 129, 126, 128, 124, 128, 113, 141, 123, 116, 139, 149, 117, 110, 120, 125, 122, 128, 123, 133, 113, 137, 131, 130, 121, 126, 104, 106, 126, 136, 130, 122, 110, 123, 108, 117, 126, 124, 148, 119, 139, 132, 137, 121, 134, 130, 119, 117, 129, 134, 123, 116, 109, 124, 119, 115, 127, 115, 122, 122, 124, 114, 141, 122, 92, 130, 125, 123, 109, 104, 119, 105, 117, 126, 133, 107, 125, 123, 115, 124, 121, 116, 127, 116, 196, 136, 119, 127, 127, 122, 121, 125, 126, 114, 125, 134, 115, 127, 106, 107, 100, 115, 85, 111, 125, 155, 134, 121, 129, 122, 125, 138, 134, 119, 123, 111, 105, 118, 162, 127, 119, 121, 120, 125, 123, 125, 131, 129, 119, 120, 84, 128, 129, 128, 135, 125, 121, 121, 105, 119, 120, 111, 117, 192, 123, 146, 122, 130, 122, 122, 122, 118, 118, 108, 121, 121, 141, 121, 111, 124, 133, 120, 115, 105, 132, 120, 121, 145, 116, 135, 109, 119, 122, 139, 108, 118, 118, 124, 127, 123, 123, 131, 113, 137, 121, 127, 117, 103, 127, 133, 115, 112, 127, 123, 140, 98, 128, 96, 133, 144, 111, 131, 125, 157, 126, 118, 105, 126, 128, 128, 115, 122, 124, 126, 133, 122, 147, 112, 116, 127, 120, 125, 128, 120, 126, 105, 130, 125, 134, 123, 134, 128, 127, 123, 100, 132, 141, 117, 124, 130, 122, 122, 129, 122, 131, 118, 117, 142, 125, 129, 151, 116, 126, 124, 125, 120, 122, 127, 125, 129, 120, 93, 126, 132, 116, 121, 130, 156, 126, 116, 124, 112, 115, 118, 125, 127, 120, 122, 100, 123, 117, 116, 123, 123, 125, 131, 124, 93, 130, 125, 114, 124, 127, 97, 121, 128, 112, 129, 122, 128, 135, 113, 111, 128, 122, 118, 128, 111, 115, 125, 126, 125, 121, 125, 123, 114, 123, 130, 123, 127, 121, 129, 119, 126, 123, 142, 96, 117, 130, 127, 123, 118, 123, 132, 121, 130, 119, 144, 127, 116, 162, 121, 136, 126, 122, 125, 121, 145, 117, 128, 127, 108, 136, 126, 106, 124, 120, 157, 131, 122, 126, 136, 125, 121, 119, 117, 122, 131, 129, 126, 124, 136, 131, 136, 133, 122, 114, 123, 121, 122, 132, 134, 118, 112, 122, 118, 122, 126, 122, 125, 106, 126, 127, 124, 112, 123, 126, 112, 138, 140, 119, 163, 119, 131, 129, 121, 122, 125, 125, 126, 136, 130, 135, 129, 129, 114, 119, 130, 132, 119, 80, 134, 127, 67, 140, 119, 114, 123, 128, 105, 119, 125, 130, 109, 111, 148, 139, 108, 133, 121, 108, 127, 130, 111, 136, 106, 145, 137, 116, 128, 124, 142, 104, 106, 123, 131, 117, 127, 132, 125, 113, 117, 134, 133, 120, 125, 110, 91, 129, 116, 114, 125, 128, 120, 116, 145, 118, 125, 117, 118, 128, 126, 141, 150, 129, 131, 105, 112, 113, 128, 119, 120, 134, 113, 134, 145, 112, 114, 132, 129, 122, 135, 128, 107, 116, 128, 100, 127, 107, 125, 154, 119, 122, 129, 137, 120, 136, 124, 120, 136, 112, 138, 119, 113, 118, 109, 149, 122, 137, 113, 122, 110, 135, 121, 115, 126, 126, 127, 143, 113, 106, 114, 125, 119, 107, 147, 121, 126, 124, 108, 112, 118, 117, 136, 127, 131, 112, 126, 137, 146, 122, 128, 128, 122, 133, 110, 128, 115, 120, 112, 125, 128, 132, 151, 143, 132, 123, 131, 132, 124, 127, 127, 135, 116, 141, 116, 120, 134, 115, 116, 130, 122, 120, 150, 120, 113, 112, 134, 132, 119, 100, 116, 129, 123, 123, 115, 122, 104, 127, 117, 124, 135, 124, 125, 118, 116, 121, 149, 132, 132, 112, 131, 137, 102, 129, 140, 106, 123, 117, 127, 116, 124, 124, 113, 99, 127, 109, 99, 107, 122, 120, 134, 115, 125, 122, 130, 130, 125, 137, 133, 123, 139, 123, 126, 127, 96, 124, 110, 130, 128, 116, 142, 115, 122, 120, 109, 118, 135, 130, 134, 115, 149, 133, 132, 130, 128, 106, 138, 127, 108, 116, 147, 124, 118, 131, 125, 136, 139, 128, 124, 142, 115, 123, 117, 118, 117, 130, 142, 130, 132, 118, 119, 144, 128, 136, 119, 136, 128, 109, 129, 119, 130, 132, 128, 138, 121, 136, 139, 123, 132, 130, 118, 129, 122, 122, 119, 109, 136, 115, 116, 124, 119, 128, 121, 109, 127, 117, 121, 134, 113, 126, 128, 117, 124, 126, 133, 122, 127, 116, 129, 119, 117, 125, 127, 121, 120, 127, 134, 120, 115, 127, 112, 128, 119, 120, 143, 162, 131, 117, 131, 116, 111, 132, 120, 151, 124, 130, 118, 121, 119, 126, 119, 118, 118, 97, 116, 127, 132, 141, 125, 130, 115, 109, 114, 109, 125, 132, 130, 124, 123, 119, 105, 140, 117, 119, 115, 118, 128, 129, 117, 131, 121, 134, 126, 123, 130, 131, 111, 124, 126, 114, 132, 126, 125, 107, 110, 126, 129, 128, 127, 120, 132, 125, 103, 115, 131, 121, 112, 123, 123, 135, 130, 99, 114, 126, 113, 128, 131, 123, 104, 118, 118, 125, 133, 130, 37, 131, 122, 123, 128, 117, 125, 111, 119, 121, 115, 120, 125, 127, 124, 116, 136, 109, 130, 119, 120, 128, 134, 118, 135, 123, 115, 121, 114, 136, 128, 130, 111, 127, 109, 117, 93, 125, 120, 117, 120, 119, 130, 123, 128, 102, 127, 114, 127, 112, 125, 119, 106, 133, 117, 118, 123, 123, 120, 119, 99, 120, 93, 111, 123, 139, 122, 123, 175, 128, 100, 120, 122, 138, 122, 126, 128, 119, 121, 123, 125, 116, 131, 125, 129, 135, 131, 126, 74, 125, 141, 111, 120, 124, 114, 114, 125, 128, 125, 108, 119, 127, 123, 128, 126, 121, 124, 129, 128, 126, 119, 134, 128, 105, 123, 121, 107, 125, 139, 108, 120, 119, 119, 133, 130, 125, 121, 134, 132, 114, 118, 129, 122, 111, 139, 125, 120, 143, 136, 130, 128, 129, 126, 121, 120, 127, 113, 143, 124, 118, 126, 118, 123, 119, 110, 121, 114, 115, 118, 128, 117, 124, 145, 111, 113, 120, 119, 137, 127, 133, 124, 124, 117, 124, 136, 123, 122, 108, 120, 123, 124, 120, 135, 135, 118, 122, 114, 129, 124, 130, 123, 131, 120, 118, 131, 123, 139, 127, 127, 130, 121, 109, 123, 140, 131, 138, 106, 142, 119, 121, 116, 130, 141, 138, 101, 136, 119, 121, 125, 119, 119, 98, 106, 125, 128, 98, 130, 135, 134, 118, 124, 134, 138, 114, 122, 122, 124, 123, 115, 102, 111, 104, 121, 129, 114, 117, 125, 120, 130, 126, 127, 107, 117, 108, 132, 114, 111, 127, 121, 125, 113, 131, 133, 136, 112, 124, 124, 139, 131, 132, 129, 117, 131, 125, 134, 120, 125, 131, 123, 112, 123, 128, 117, 128, 125, 108, 116, 126, 116, 116, 122, 109, 121, 149, 120, 109, 132, 105, 122, 133, 114, 122, 124, 128, 123, 115, 125, 133, 117, 129, 144, 109, 107, 128, 149, 105, 119, 119, 129, 131, 120, 122, 118, 127, 127, 136, 129, 126, 119, 129, 126, 124, 131, 147, 129, 132, 88, 145, 127, 132, 127, 122, 125, 95, 112, 102, 123, 130, 123, 120, 133, 125, 120, 127, 135, 123, 111, 119, 118, 125, 117, 123, 124, 116, 116, 122, 138, 122, 123, 125, 126, 124, 123, 118, 127, 128, 126, 125, 129, 121, 124, 122, 116, 128, 122, 126, 126, 123, 123, 114, 121, 125, 124, 127, 130, 123, 119, 119, 125, 117, 122, 122, 120, 121, 121, 113, 125, 131, 118, 130, 129, 125, 126, 116, 126, 124, 119, 126, 120, 120, 119, 127, 120, 127, 124, 123, 127, 125, 122, 121, 119, 119, 124, 125, 120, 125, 140, 128, 128, 127, 124, 126, 123, 128, 120, 126, 125, 118, 123, 124, 131, 120, 129, 126, 123, 125, 129, 127, 119, 121, 127, 122, 134, 121, 121, 130, 124, 128, 121, 122, 126, 138, 132, 120, 123, 126, 124, 128, 126, 118, 126, 118, 123, 123, 120, 120, 122, 125, 117, 126, 119, 122, 119, 123, 126, 119, 124, 121, 122, 123, 121, 122, 127, 117, 125, 131, 125, 127, 135, 121, 121, 125, 121, 122, 125, 123, 123, 125, 121, 118, 122, 123, 129, 111, 119, 129, 127, 127, 117, 129, 122, 123, 121, 122, 114, 124, 120, 125, 120, 127, 125, 117, 127, 114, 123, 127, 121, 117, 123, 116, 113, 126, 123, 125, 124, 119, 128, 122, 123, 121, 123, 112, 125, 136, 127, 126, 111, 136, 124, 125, 113, 126, 126, 118, 127, 131, 124, 126, 119, 120, 120, 124, 117, 112, 121, 128, 121, 123, 124, 114, 121, 120, 119, 115, 122, 121, 119, 119, 117, 117, 118, 127, 124, 131, 127, 124, 123, 126, 133, 117, 121, 122, 146, 115, 117, 128, 123, 120, 112, 121, 111, 131, 132, 129, 126, 120, 105, 131, 134, 128, 124, 126, 118, 132, 142, 123, 103, 129, 120, 125, 124, 128, 135, 136, 128, 124, 118, 118, 116, 127, 131, 130, 110, 106, 116, 121, 126, 126, 114, 135, 111, 131, 113, 121, 119, 117, 121, 135, 131, 130, 114, 127, 120, 127, 135, 122, 138, 124, 126, 116, 135, 122, 114, 136, 113, 121, 137, 126, 115, 115, 118, 107, 120, 128, 125, 125, 127, 123, 125, 122, 128, 113, 120, 111, 151, 132, 123, 142, 128, 118, 118, 119, 125, 135, 124, 116, 129, 105, 122, 98, 126, 130, 129, 118, 125, 120, 130, 137, 130, 126, 122, 128, 125, 122, 124, 122, 123, 115, 120, 127, 122, 120, 111, 127, 124, 134, 133, 123, 124, 116, 138, 129, 134, 126, 119, 130, 119, 127, 121, 122, 125, 130, 148, 110, 137, 148, 126, 120, 130, 123, 113, 117, 120, 117, 122, 109, 130, 125, 123, 138, 131, 132, 134, 140, 124, 123, 107, 114, 119, 129, 130, 120, 139, 122, 130, 120, 129, 122, 125, 130, 128, 125, 108, 140, 126, 128, 141, 130, 136, 120, 125, 123, 117, 132, 118, 134, 125, 132, 125, 145, 119, 120, 127, 131, 157, 127, 141, 123, 133, 122, 119, 125, 135, 131, 120, 131, 121, 100, 128, 115, 123, 113, 119, 129, 137, 125, 129, 127, 137, 126, 124, 138, 114, 127, 122, 133, 119, 127, 127, 146, 124, 126, 115, 115, 102, 122, 131, 111, 122, 120, 132, 113, 124, 118, 121, 125, 138, 123, 134, 124, 124, 124, 121, 115, 117, 118, 136, 136, 101, 132, 151, 111, 112, 119, 116, 123, 123, 132, 86, 118, 124, 136, 123, 122, 132, 125, 130, 108, 114, 120, 134, 113, 125, 131, 125, 119, 119, 145, 123, 156, 130, 139, 131, 124, 124, 98, 115, 122, 129, 117, 131, 124, 116, 115, 129, 116, 147, 126, 120, 130, 118, 130, 122, 128, 119, 124, 124, 120, 118, 123, 144, 119, 136, 112, 121, 135, 117, 109, 115, 126, 128, 169, 113, 113, 121, 121, 127, 125, 114, 121, 126, 129, 137, 125, 125, 115, 133, 121, 103, 144, 124, 125, 128, 129, 123, 113, 131, 136, 130, 120, 125, 132, 116, 124, 107, 109, 122, 120, 123, 123, 132, 123, 123, 106, 123, 125, 121, 124, 120, 127, 125, 129, 121, 125, 128, 135, 134, 118, 138, 119, 129, 124, 119, 130, 124, 119, 127, 124, 112, 124, 131, 118, 134, 142, 127, 129, 123, 127, 122, 122, 123, 137, 121, 122, 115, 120, 131, 106, 125, 124, 138, 125, 118, 120, 130, 125, 129, 124, 115, 132, 116, 124, 126, 128, 127, 119, 135, 129, 123, 128, 121, 119, 117, 121, 117, 115, 131, 119, 112, 128, 122, 119, 122, 128, 113, 124, 119, 124, 120, 124, 109, 120, 121, 134, 133, 125, 127, 132, 137, 87, 129, 121, 141, 132, 127, 119, 115, 119, 101, 137, 123, 133, 113, 123, 111, 120, 128, 125, 115, 117, 115, 127, 133, 116, 167, 138, 114, 119, 118, 129, 123, 122, 114, 129, 131, 102, 130, 118, 115, 119, 135, 120, 163, 132, 122, 128, 116, 123, 142, 125, 112, 123, 127, 125, 122, 157, 124, 114, 126, 134, 127, 114, 127, 129, 120, 135, 122, 121, 127, 120, 125, 121, 125, 122, 124, 122, 124, 127, 125, 121, 129, 127, 108, 101, 128, 133, 114, 146, 116, 121, 133, 114, 125, 127, 125, 134, 139, 129, 124, 125, 121, 125, 123, 126, 111, 112, 127, 123, 122, 124, 120, 118, 128, 117, 129, 128, 116, 126, 134, 127, 122, 136, 148, 123, 123, 109, 129, 120, 132, 113, 113, 131, 113, 129, 122, 126, 171, 132, 110, 129, 145, 117, 125, 115, 157, 115, 138, 126, 131, 130, 118, 125, 137, 122, 110, 111, 119, 140, 138, 126, 115, 119, 130, 122, 123, 117, 124, 128, 134, 129, 120, 156, 123, 121, 120, 118, 154, 170, 160, 120, 126, 123, 125, 127, 123, 106, 134, 124, 146, 123, 125, 131, 123, 111, 134, 103, 127, 131, 130, 129, 127, 73, 128, 115, 80, 129, 125, 128, 134, 135, 109, 130, 126, 138, 116, 125, 125, 140, 132, 138, 119, 135, 126, 139, 123, 121, 120, 147, 129, 123, 121, 119, 126, 131, 132, 121, 153, 119, 49, 117, 121, 132, 127, 124, 130, 124, 121, 150, 118, 144, 134, 134, 117, 124, 148, 128, 110, 122, 106, 122, 40, 102, 118, 115, 119, 127, 112, 127, 110, 119, 118, 119, 132, 120, 134, 124, 124, 121, 122, 124, 118, 122, 113, 127, 125, 118, 126, 132, 127, 124, 123, 117, 122, 127, 124, 127, 123, 118, 119, 126, 123, 130, 130, 119, 116, 128, 134, 121, 136, 131, 122, 118, 128, 116, 124, 121, 119, 121, 124, 115, 123, 123, 122, 129, 129, 123, 117, 121, 120, 121, 112, 123, 121, 129, 123, 117, 135, 125, 123, 120, 114, 121, 119, 119, 122, 121, 120, 125, 120, 119, 118, 123, 122, 123, 123, 122, 120, 129, 124, 121, 125, 128, 118, 123, 128, 124, 125, 126, 117, 125, 118, 120, 129, 128, 130, 120, 131, 119, 123, 125, 120, 127, 118, 124, 128, 116, 129, 116, 120, 121, 129, 124, 123, 123, 125, 134, 120, 121, 123, 131, 117, 124, 127, 128, 127, 117, 130, 127, 125, 124, 128, 120, 120, 131, 138, 121, 126, 119, 135, 115, 129, 118, 117, 125, 118, 124, 119, 122, 126, 131, 130, 124, 127, 123, 118, 127, 123, 124, 118, 120, 125, 127, 118, 125, 113, 132, 121, 118, 127, 135, 119, 122, 129, 119, 121, 121, 119, 115, 130, 120, 119, 120, 135, 118, 113, 123, 127, 119, 126, 122, 123, 115, 122, 126, 130, 125, 127, 120, 122, 122, 124, 125, 122, 117, 124, 133, 120, 123, 129, 119, 119, 132, 119, 118, 116, 136, 116, 127, 127, 127, 128, 118, 121, 132, 134, 119, 126, 116, 127, 124, 126, 124, 131, 114, 116, 120, 127, 121, 120, 131, 121, 123, 121, 126, 139, 124, 116, 122, 98, 119, 125, 126, 99, 113, 145, 119, 137, 118, 131, 113, 118, 128, 118, 100, 116, 120, 136, 114, 107, 128, 124, 112, 138, 144, 139, 141, 121, 125, 105, 130, 139, 108, 88, 119, 111, 123, 104, 139, 111, 136, 130, 111, 140, 115, 122, 151, 117, 121, 129, 145, 121, 127, 121, 126, 119, 114, 120, 118, 109, 128, 120, 126, 133, 129, 121, 125, 124, 127, 121, 106, 126, 118, 114, 123, 129, 140, 118, 110, 126, 112, 138, 115, 112, 122, 123, 121, 114, 120, 124, 109, 100, 112, 114, 127, 132, 116, 115, 139, 155, 89, 128, 114, 121, 118, 106, 118, 129, 129, 131, 111, 134, 120, 110, 119, 134, 119, 113, 122, 122, 107, 111, 99, 127, 118, 105, 128, 121, 114, 128, 117, 128, 136, 124, 124, 110, 121, 98, 117, 126, 110, 107, 137, 123, 122, 149, 113, 122, 122, 125, 131, 109, 124, 117, 138, 128, 137, 123, 113, 115, 140, 131, 123, 129, 121, 121, 137, 124, 117, 138, 117, 138, 94, 122, 124, 126, 145, 131, 144, 115, 119, 103, 126, 128, 122, 117, 120, 140, 124, 112, 155, 126, 125, 113, 132, 114, 136, 110, 104, 121, 112, 135, 123, 134, 131, 127, 132, 117, 115, 115, 123, 132, 102, 125, 148, 103, 124, 125, 122, 139, 125, 122, 120, 128, 145, 122, 108, 155, 125, 112, 154, 107, 103, 92, 106, 134, 132, 131, 120, 132, 132, 120, 120, 112, 122, 119, 130, 134, 127, 129, 117, 103, 123, 126, 127, 116, 119, 127, 114, 127, 123, 140, 134, 100, 88, 117, 116, 111, 127, 129, 131, 122, 120, 124, 115, 122, 129, 133, 127, 128, 107, 140, 128, 127, 107, 116, 132, 109, 123, 114, 114, 119, 150, 130, 110, 122, 114, 124, 107, 127, 126, 115, 136, 114, 129, 122, 121, 120, 125, 128, 119, 130, 124, 116, 108, 108, 123, 119, 128, 126, 120, 112, 140, 119, 119, 101, 118, 110, 131, 127, 104, 138, 123, 125, 110, 120, 127, 121, 117, 111, 132, 113, 133, 125, 122, 123, 134, 145, 126, 117, 127, 126, 115, 145, 127, 115, 125, 117, 109, 118, 135, 120, 125, 143, 119, 127, 125, 119, 125, 115, 145, 116, 115, 143, 138, 118, 113, 124, 109, 131, 118, 122, 115, 120, 127, 129, 110, 120, 123, 122, 123, 130, 122, 76, 134, 119, 113, 141, 119, 124, 114, 130, 121, 131, 131, 100, 110, 128, 123, 118, 100, 134, 121, 122, 149, 120, 103, 115, 127, 136, 123, 115, 118, 147, 130, 123, 105, 126, 121, 116, 141, 136, 119, 113, 98, 123, 105, 151, 123, 130, 111, 119, 141, 121, 128, 116, 112, 126, 120, 125, 104, 127, 132, 129, 138, 111, 122, 114, 118, 112, 118, 129, 109, 124, 123, 139, 112, 128, 126, 130, 100, 120, 132, 143, 144, 97, 122, 112, 123, 126, 122, 135, 106, 131, 139, 122, 145, 123, 163, 120, 139, 113, 136, 126, 117, 115, 112, 110, 118, 120, 122, 125, 112, 115, 109, 108, 128, 129, 109, 113, 75, 121, 126, 116, 126, 107, 128, 116, 121, 126, 125, 123, 110, 122, 128, 121, 120, 119, 124, 118, 140, 139, 157, 122, 125, 117, 119, 120, 121, 195, 111, 141, 155, 131, 120, 122, 145, 126, 128, 94, 112, 124, 120, 93, 122, 136, 119, 118, 135, 120, 115, 85, 122, 144, 121, 131, 132, 116, 129, 127, 119, 119, 120, 121, 120, 109, 107, 126, 126, 115, 135, 128, 116, 124, 133, 132, 119, 183, 126, 123, 113, 119, 120, 135, 136, 128, 124, 125, 116, 126, 125, 126, 128, 105, 121, 120, 119, 130, 124, 128, 126, 129, 128, 127, 121, 106, 125, 136, 119, 111, 117, 124, 114, 124, 126, 126, 127, 160, 118, 125, 115, 121, 120, 140, 122, 137, 120, 116, 123, 125, 128, 130, 113, 119, 119, 129, 122, 132, 126, 112, 127, 128, 131, 114, 166, 128, 107, 123, 116, 91, 128, 139, 136, 132, 146, 115, 108, 124, 129, 127, 116, 110, 133, 131, 98, 92, 129, 127, 121, 121, 116, 108, 129, 128, 121, 122, 123, 123, 120, 122, 120, 112, 117, 118, 116, 128, 107, 128, 111, 126, 126, 118, 125, 120, 117, 112, 124, 114, 125, 132, 111, 128, 111, 115, 118, 134, 128, 143, 108, 126, 118, 127, 120, 132, 129, 123, 122, 103, 117, 111, 118, 119, 127, 129, 125, 121, 114, 142, 116, 125, 127, 120, 121, 130, 123, 120, 129, 141, 120, 118, 121, 128, 121, 139, 132, 109, 121, 131, 126, 109, 113, 116, 118, 117, 132, 123, 123, 122, 122, 120, 126, 122, 124, 122, 123, 126, 124, 122, 123, 123, 122, 126, 131, 127, 124, 134, 123, 124, 126, 125, 124, 121, 128, 120, 122, 123, 121, 121, 124, 126, 123, 124, 120, 126, 129, 120, 122, 128, 120, 126, 118, 124, 122, 121, 126, 125, 119, 121, 132, 121, 121, 123, 125, 124, 119, 121, 122, 125, 126, 121, 123, 134, 124, 125, 126, 114, 123, 127, 120, 131, 126, 120, 119, 121, 124, 122, 121, 126, 124, 123, 121, 122, 123, 119, 126, 129, 127, 118, 125, 124, 125, 126, 125, 121, 121, 119, 129, 127, 121, 127, 123, 132, 120, 121, 127, 120, 122, 125, 118, 123, 123, 132, 123, 121, 120, 122, 122, 125, 122, 123, 131, 124, 128, 123, 124, 119, 122, 125, 123, 126, 120, 127, 128, 126, 125, 126, 125, 123, 127, 130, 126, 126, 124, 137, 118, 123, 120, 120, 122, 124, 123, 125, 124, 123, 127, 125, 123, 120, 131, 123, 125, 125, 122, 121, 125, 122, 124, 121, 133, 114, 132, 125, 124, 137, 122, 117, 130, 122, 120, 120, 123, 123, 119, 129, 123, 131, 122, 123, 125, 116, 123, 130, 125, 123, 122, 131, 118, 127, 129, 125, 125, 125, 122, 123, 121, 122, 128, 122, 116, 124, 122, 124, 129, 119, 124, 125, 125, 119, 119, 128, 121, 124, 120, 124, 125, 131, 118, 122, 129, 123, 124, 121, 121, 124, 123, 122, 123, 123, 117, 121, 119, 130, 122, 123, 122, 118, 122, 127, 127, 136, 124, 118, 114, 109, 125, 113, 129, 117, 120, 121, 122, 128, 119, 122, 130, 125, 117, 126, 106, 121, 122, 121, 126, 120, 123, 125, 127, 127, 128, 134, 143, 123, 135, 125, 136, 125, 147, 114, 135, 132, 120, 131, 118, 125, 118, 129, 122, 122, 131, 126, 120, 115, 126, 125, 120, 117, 124, 124, 140, 116, 124, 122, 120, 128, 120, 120, 114, 108, 122, 113, 123, 114, 133, 136, 136, 125, 122, 132, 131, 130, 133, 121, 128, 114, 123, 132, 120, 131, 111, 133, 109, 148, 127, 140, 116, 120, 131, 121, 129, 127, 121, 116, 125, 134, 131, 138, 122, 127, 133, 116, 136, 142, 108, 118, 152, 126, 117, 110, 115, 118, 127, 125, 122, 125, 132, 117, 136, 120, 124, 121, 126, 116, 150, 118, 133, 128, 126, 140, 113, 134, 115, 123, 131, 144, 122, 123, 120, 123, 126, 127, 110, 123, 133, 122, 134, 118, 120, 123, 121, 129, 134, 123, 117, 136, 126, 122, 122, 122, 126, 118, 119, 112, 129, 123, 126, 129, 127, 122, 116, 136, 129, 136, 116, 140, 127, 129, 127, 128, 120, 124, 117, 116, 123, 113, 132, 130, 103, 118, 116, 127, 112, 121, 137, 139, 119, 117, 116, 118, 119, 127, 137, 116, 118, 119, 131, 130, 128, 122, 123, 119, 119, 120, 113, 137, 127, 132, 103, 119, 128, 117, 130, 122, 122, 121, 115, 124, 124, 124, 122, 109, 130, 125, 120, 143, 148, 120, 132, 94, 125, 125, 122, 127, 130, 110, 109, 119, 121, 104, 126, 127, 132, 118, 124, 123, 118, 124, 123, 123, 123, 142, 122, 120, 121, 133, 126, 137, 125, 101, 130, 128, 125, 121, 128, 118, 126, 115, 124, 116, 125, 122, 120, 132, 126, 121, 125, 127, 124, 120, 118, 117, 125, 126, 107, 121, 134, 129, 119, 120, 138, 115, 121, 120, 131, 117, 109, 136, 137, 112, 131, 122, 124, 117, 126, 124, 127, 119, 121, 125, 118, 120, 167, 113, 124, 123, 122, 126, 127, 127, 120, 115, 115, 124, 120, 131, 122, 126, 117, 108, 134, 119, 126, 119, 135, 120, 133, 118, 130, 118, 125, 143, 121, 118, 125, 117, 112, 122, 122, 123, 110, 120, 120, 116, 124, 109, 124, 119, 122, 137, 122, 116, 130, 121, 132, 124, 128, 128, 128, 120, 127, 128, 129, 125, 108, 130, 121, 130, 128, 124, 128, 121, 102, 121, 116, 122, 119, 118, 135, 117, 122, 130, 122, 119, 121, 120, 116, 118, 117, 126, 116, 108, 119, 115, 119, 130, 115, 118, 123, 126, 127, 112, 133, 129, 122, 127, 111, 119, 132, 136, 138, 129, 112, 137, 125, 131, 121, 118, 126, 124, 122, 125, 139, 121, 127, 131, 143, 123, 118, 128, 159, 124, 150, 132, 129, 144, 124, 124, 117, 124, 123, 124, 123, 139, 129, 115, 133, 124, 122, 108, 123, 111, 128, 131, 130, 126, 135, 108, 117, 123, 114, 125, 128, 127, 118, 122, 132, 114, 120, 131, 119, 129, 126, 122, 116, 138, 128, 127, 134, 123, 120, 125, 114, 130, 133, 114, 124, 130, 115, 107, 120, 132, 118, 141, 129, 124, 130, 139, 125, 120, 119, 126, 117, 124, 127, 134, 125, 132, 129, 130, 121, 119, 129, 106, 127, 127, 124, 115, 126, 132, 131, 125, 125, 129, 113, 119, 101, 115, 114, 136, 129, 126, 130, 120, 139, 138, 122, 125, 121, 118, 91, 143, 133, 144, 113, 106, 128, 125, 126, 128, 118, 113, 126, 122, 116, 127, 139, 120, 130, 125, 139, 120, 131, 129, 117, 158, 132, 127, 121, 118, 121, 108, 125, 132, 129, 127, 111, 125, 138, 107, 116, 118, 117, 111, 118, 130, 118, 136, 131, 130, 127, 126, 136, 131, 115, 124, 125, 124, 112, 117, 126, 129, 134, 123, 123, 130, 149, 130, 134, 129, 123, 117, 129, 137, 125, 136, 117, 130, 133, 121, 108, 125, 121, 126, 117, 95, 118, 132, 110, 126, 131, 103, 124, 119, 127, 122, 127, 110, 113, 135, 123, 146, 110, 126, 128, 139, 127, 131, 128, 117, 127, 119, 110, 110, 150, 127, 125, 116, 123, 121, 141, 124, 124, 111, 117, 124, 127, 121, 125, 152, 114, 115, 106, 129, 129, 134, 121, 122, 127, 130, 130, 124, 121, 113, 128, 109, 138, 112, 122, 107, 109, 128, 133, 128, 139, 137, 122, 125, 124, 146, 124, 117, 116, 146, 106, 114, 116, 124, 146, 113, 116, 123, 109, 121, 125, 120, 123, 113, 121, 124, 131, 115, 119, 131, 121, 97, 126, 132, 125, 117, 122, 112, 123, 132, 124, 118, 127, 120, 125, 114, 126, 128, 113, 146, 133, 104, 125, 116, 140, 122, 127, 100, 119, 114, 111, 107, 137, 115, 124, 127, 122, 114, 116, 109, 125, 136, 108, 110, 111, 148, 125, 137, 114, 104, 128, 123, 125, 119, 135, 134, 104, 100, 144, 106, 104, 131, 139, 129, 122, 116, 142, 120, 135, 138, 118, 139, 113, 130, 123, 127, 127, 138, 119, 137, 120, 125, 113, 113, 121, 118, 112, 140, 129, 124, 126, 102, 141, 135, 109, 114, 126, 130, 119, 116, 139, 115, 132, 110, 120, 146, 143, 131, 118, 117, 121, 161, 113, 130, 134, 131, 117, 145, 128, 120, 115, 113, 100, 119, 119, 134, 135, 117, 122, 142, 125, 136, 127, 132, 139, 140, 119, 106, 117, 126, 117, 101, 102, 106, 111, 133, 110, 132, 116, 138, 117, 134, 129, 115, 108, 118, 114, 140, 129, 119, 128, 120, 134, 124, 140, 106, 118, 115, 121, 143, 128, 117, 140, 125, 102, 127, 121, 111, 129, 118, 102, 123, 120, 129, 138, 144, 131, 124, 114, 127, 119, 102, 114, 118, 104, 114, 109, 109, 87, 123, 132, 111, 130, 125, 140, 129, 127, 139, 130, 111, 120, 121, 130, 113, 107, 134, 121, 148, 93, 118, 105, 138, 135, 99, 124, 127, 109, 128, 124, 127, 113, 123, 130, 134, 111, 131, 124, 123, 127, 91, 133, 104, 120, 115, 117, 124, 113, 110, 138, 122, 113, 129, 144, 133, 102, 131, 134, 170, 118, 101, 143, 121, 111, 103, 127, 104, 103, 118, 136, 134, 112, 111, 112, 129, 107, 112, 176, 116, 129, 138, 128, 132, 122, 135, 120, 120, 116, 123, 117, 128, 127, 125, 114, 123, 131, 134, 114, 125, 126, 119, 129, 123, 120, 129, 119, 125, 121, 138, 120, 127, 129, 108, 123, 126, 124, 117, 123, 116, 121, 130, 124, 120, 146, 137, 145, 135, 115, 128, 120, 138, 120, 113, 116, 134, 113, 115, 118, 122, 125, 118, 129, 117, 114, 116, 140, 129, 120, 129, 102, 124, 120, 133, 129, 132, 134, 109, 120, 126, 95, 146, 120, 112, 121, 117, 139, 120, 127, 117, 123, 90, 130, 122, 111, 120, 126, 124, 133, 129, 130, 128, 123, 130, 125, 123, 119, 115, 116, 117, 106, 112, 126, 106, 129, 119, 127, 129, 122, 128, 122, 128, 132, 119, 124, 126, 116, 113, 118, 116, 114, 132, 117, 130, 114, 118, 124, 121, 110, 117, 124, 112, 127, 109, 126, 129, 132, 128, 147, 117, 118, 121, 130, 109, 122, 136, 112, 124, 127, 124, 140, 113, 120, 131, 116, 119, 124, 126, 130, 129, 98, 120, 127, 122, 121, 134, 129, 118, 121, 137, 125, 126, 134, 101, 115, 117, 127, 123, 116, 119, 127, 119, 123, 128, 127, 112, 125, 116, 129, 130, 140, 134, 124, 100, 124, 135, 103, 99, 116, 134, 101, 173, 112, 123, 157, 130, 108, 124, 126, 123, 112, 95, 117, 124, 152, 118, 135, 116, 134, 131, 125, 139, 126, 141, 132, 120, 128, 120, 122, 129, 131, 123, 123, 137, 116, 122, 120, 127, 134, 109, 130, 104, 117, 122, 123, 114, 117, 116, 127, 132, 127, 136, 120, 130, 111, 118, 132, 119, 130, 126, 111, 84, 137, 126, 139, 126, 110, 115, 124, 162, 128, 129, 112, 126, 127, 126, 138, 120, 127, 119, 122, 117, 126, 127, 135, 127, 124, 121, 122, 124, 144, 125, 140, 123, 124, 122, 130, 141, 143, 121, 105, 132, 127, 132, 119, 123, 118, 121, 130, 132, 121, 135, 126, 118, 121, 119, 112, 125, 126, 128, 138, 130, 120, 165, 130, 125, 130, 128, 120, 130, 129, 125, 125, 118, 135, 145, 121, 128, 124, 128, 130, 142, 125, 92, 129, 127, 83, 132, 136, 120, 127, 128, 131, 126, 120, 122, 116, 127, 129, 126, 113, 112, 118, 121, 123, 117, 101, 126, 107, 136, 123, 137, 124, 114, 131, 135, 127, 130, 121, 115, 129, 126, 105, 127, 130, 131, 130, 120, 116, 127, 140, 99, 116, 130, 117, 161, 119, 118, 129, 130, 125, 114, 130, 124, 126, 126, 133, 122, 130, 127, 136, 134, 113, 86, 116, 132, 119, 118, 126, 120, 123, 126, 88, 118, 110, 132, 125, 134, 107, 123, 126, 132, 128, 142, 122, 138, 121, 121, 125, 126, 118, 164, 140, 109, 113, 131, 131, 106, 125, 118, 94, 125, 115, 119, 138, 134, 122, 124, 114, 115, 129, 129, 123, 123, 123, 137, 125, 117, 136, 121, 130, 120, 133, 124, 135, 128, 127, 123, 94, 126, 135, 194, 126, 123, 133, 123, 129, 138, 124, 131, 128, 114, 129, 124, 123, 120, 111, 161, 121, 130, 126, 107, 128, 114, 119, 126, 126, 130, 118, 126, 117, 126, 124, 126, 122, 136, 136, 134, 87, 127, 128, 132, 131, 127, 122, 98, 134, 130, 124, 115, 123, 115, 140, 124, 126, 125, 131, 115, 103, 121, 128, 119, 115, 124, 134, 122, 138, 135, 124, 134, 123, 130, 135, 133, 113, 134, 123, 116, 125, 137, 124, 126, 128, 123, 120, 118, 149, 124, 130, 114, 126, 123, 128, 124, 131, 114, 137, 129, 116, 111, 122, 126, 127, 135, 122, 125, 121, 137, 110, 126, 131, 123, 126, 125, 118, 122, 125, 128, 122, 149, 120, 125, 135, 118, 172, 128, 123, 124, 115, 131, 122, 117, 142, 132, 128, 111, 138, 108, 123, 129, 120, 132, 126, 132, 121, 118, 140, 122, 124, 119, 126, 123, 124, 121, 127, 128, 125, 139, 130, 129, 109, 127, 120, 119, 125, 131, 121, 101, 131, 136, 119, 133, 124, 129, 95, 126, 125, 128, 125, 120, 126, 140, 122, 127, 130, 122, 129, 122, 134, 151, 133, 132, 132, 128, 126, 127, 135, 115, 145, 126, 121, 131, 126, 92, 145, 129, 132, 140, 118, 144, 126, 119, 113, 130, 137, 123, 123, 129, 132, 116, 122, 90, 123, 137, 128, 118, 125, 121, 121, 125, 119, 127, 130, 126, 127, 117, 111, 121, 121, 129, 127, 122, 126, 129, 128, 127, 122, 131, 128, 131, 131, 123, 128, 129, 121, 121, 129, 43, 123, 123, 125, 123, 119, 125, 112, 128, 121, 120, 117, 116, 121, 114, 134, 117, 128, 130, 127, 133, 130, 136, 116, 120, 121, 110, 144, 123, 151, 129, 123, 132, 121, 130, 125, 111, 125, 119, 120, 140, 120, 132, 131, 126, 133, 123, 132, 133, 125, 111, 128, 155, 129, 133, 119, 128, 120, 119, 113, 121, 131, 127, 132, 136, 120, 116, 138, 118, 118, 126, 123, 119, 112, 130, 124, 122, 128, 126, 133, 119, 133, 118, 130, 111, 113, 114, 118, 115, 130, 97, 124, 121, 119, 141, 144, 120, 123, 98, 113, 122, 128, 114, 140, 121, 116, 119, 125, 124, 123, 119, 125, 113, 122, 123, 127, 119, 124, 144, 129, 119, 121, 123, 111, 116, 118, 105, 116, 125, 125, 138, 129, 116, 122, 120, 120, 133, 121, 115, 128, 97, 138, 111, 115, 125, 122, 114, 113, 125, 133, 122, 121, 129, 125, 126, 134, 132, 127, 115, 116, 135, 129, 125, 138, 104, 126, 130, 115, 122, 123, 105, 126, 124, 120, 112, 136, 134, 136, 108, 110, 139, 126, 127, 111, 113, 122, 103, 121, 115, 115, 106, 136, 122, 108, 112, 119, 123, 136, 127, 130, 119, 123, 115, 117, 126, 131, 127, 125, 134, 140, 108, 134, 124, 144, 128, 120, 115, 113, 130, 123, 115, 130, 137, 124, 118, 95, 126, 122, 116, 117, 131, 137, 125, 151, 112, 122, 112, 120, 106, 127, 102, 119, 127, 132, 114, 136, 110, 124, 138, 118, 129, 132, 126, 120, 127, 121, 132, 126, 130, 114, 115, 115, 96, 127, 121, 120, 119, 128, 122, 106, 126, 127, 131, 168, 129, 127, 125, 117, 145, 121, 148, 122, 130, 133, 127, 138, 129, 126, 124, 129, 129, 127, 120, 123, 112, 98, 121, 128, 127, 133, 138, 134, 91, 116, 98, 108, 114, 113, 131, 107, 121, 127, 172, 131, 119, 103, 170, 138, 146, 121, 104, 144, 131, 131, 205, 122, 123, 118, 142, 124, 143, 119, 129, 111, 128, 124, 117, 122, 133, 154, 104, 132, 128, 114, 114, 124, 112, 132, 117, 136, 100, 126, 124, 135, 132, 124, 119, 112, 124, 126, 121, 126, 116, 111, 110, 92, 126, 120, 113, 123, 127, 95, 127, 116, 120, 115, 131, 125, 142, 120, 120, 135, 127, 121, 126, 119, 110, 137, 113, 135, 125, 130, 152, 133, 132, 119, 114, 125, 132, 129, 121, 125, 117, 126, 117, 111, 128, 115, 126, 132, 117, 116, 131, 128, 117, 119, 127, 102, 131, 126, 138, 127, 107, 132, 119, 115, 118, 131, 131, 137, 105, 130, 129, 128, 111, 119, 128, 159, 146, 119, 123, 121, 124, 132, 134, 119, 126, 124, 128, 118, 126, 127, 130, 131, 131, 120, 136, 126, 118, 138, 117, 125, 122, 126, 123, 126, 122, 126, 117, 117, 121, 129, 106, 123, 112, 131, 128, 126, 129, 124, 98, 127, 121, 113, 121, 120, 136, 98, 146, 113, 132, 127, 128, 119, 123, 131, 116, 115, 126, 132, 95, 125, 126, 121, 109, 130, 112, 132, 126, 118, 111, 131, 126, 125, 125, 125, 123, 127, 131, 128, 141, 109, 107, 147, 124, 128, 122, 112, 121, 106, 130, 126, 119, 122, 108, 120, 122, 129, 126, 128, 131, 101, 127, 123, 132, 118, 126, 136, 123, 126, 124, 124, 128, 125, 131, 117, 114, 125, 126, 117, 128, 147, 149, 118, 120, 131, 124, 116, 97, 107, 109, 118, 117, 117, 112, 130, 126, 114, 127, 121, 114, 118, 116, 129, 145, 131, 125, 122, 113, 125, 141, 135, 140, 123, 119, 123, 126, 109, 122, 138, 108, 113, 129, 129, 140, 126, 164, 120, 149, 133, 131, 115, 124, 112, 133, 120, 130, 124, 126, 125, 112, 124, 112, 112, 118, 112, 125, 127, 121, 120, 130, 124, 140, 113, 131, 147, 122, 112, 110, 129, 113, 107, 112, 128, 142, 119, 127, 116, 158, 111, 118, 134, 127, 129, 113, 125, 110, 127, 135, 118, 125, 113, 112, 130, 137, 141, 124, 129, 138, 132, 114, 113, 141, 130, 111, 109, 129, 129, 119, 115, 116, 132, 123, 119, 118, 137, 120, 127, 134, 116, 119, 126, 124, 117, 135, 115, 110, 124, 121, 130, 101, 141, 128, 122, 134, 114, 106, 124, 134, 109, 113, 120, 131, 127, 125, 116, 127, 121, 133, 118, 130, 122, 134, 131, 136, 112, 135, 129, 107, 136, 114, 130, 102, 131, 127, 138, 123, 114, 135, 121, 111, 118, 147, 120, 129, 128, 112, 134, 116, 117, 116, 135, 118, 120, 84, 130, 132, 123, 130, 117, 128, 114, 127, 125, 138, 115, 117, 126, 105, 134, 122, 125, 115, 120, 116, 121, 132, 128, 114, 114, 103, 126, 126, 129, 125, 123, 117, 129, 132, 122, 128, 123, 108, 121, 123, 112, 121, 114, 109, 124, 131, 131, 124, 120, 124, 125, 124, 120, 127, 122, 121, 125, 135, 119, 120, 113, 121, 105, 122, 127, 118, 128, 123, 142, 117, 113, 126, 118, 129, 118, 119, 114, 117, 133, 108, 127, 124, 110, 122, 125, 130, 125, 122, 116, 133, 134, 150, 121, 127, 112, 132, 123, 123, 140, 126, 123, 131, 124, 97, 125, 113, 127, 117, 122, 135, 129, 130, 119, 125, 136, 145, 129, 123, 135, 113, 130, 131, 116, 123, 116, 128, 123, 119, 112, 123, 125, 118, 132, 124, 122, 120, 126, 121, 132, 141, 121, 121, 128, 120, 135, 119, 145, 124, 117, 115, 131, 130, 119, 117, 118, 127, 120, 121, 117, 126, 121, 108, 132, 122, 119, 122, 115, 126, 123, 152, 120, 125, 115, 123, 108, 115, 127, 119, 122, 124, 126, 143, 124, 120, 116, 125, 153, 124, 110, 132, 127, 126, 126, 128, 107, 142, 117, 132, 124, 145, 126, 127, 125, 125, 120, 124, 126, 129, 118, 120, 129, 116, 113, 100, 127, 124, 122, 140, 125, 122, 122, 124, 122, 127, 123, 114, 122, 119, 129, 127, 125, 119, 116, 135, 139, 124, 125, 113, 121, 125, 127, 118, 122, 131, 112, 109, 104, 125, 124, 129, 121, 122, 132, 128, 124, 125, 117, 129, 109, 114, 123, 115, 138, 118, 154, 117, 135, 121, 122, 134, 113, 119, 120, 117, 129, 131, 127, 115, 111, 130, 126, 127, 108, 119, 113, 120, 119, 133, 116, 117, 134, 120, 115, 122, 150, 126, 127, 138, 116, 137, 113, 112, 142, 112, 129, 120, 116, 144, 128, 117, 114, 135, 98, 109, 95, 126, 97, 127, 127, 124, 125, 125, 125, 120, 128, 127, 127, 118, 141, 124, 93, 122, 134, 96, 120, 123, 131, 126, 138, 128, 135, 118, 110, 123, 159, 113, 127, 126, 112, 128, 140, 125, 114, 126, 122, 141, 122, 127, 102, 142, 120, 125, 121, 119, 131, 131, 120, 116, 120, 125, 128, 129, 123, 132, 86, 112, 131, 111, 137, 137, 126, 126, 133, 120, 124, 118, 124, 135, 129, 101, 133, 123, 104, 145, 140, 121, 100, 126, 116, 103, 115, 121, 119, 114, 138, 124, 125, 123, 121, 125, 119, 124, 120, 121, 102, 123, 132, 129, 132, 128, 140, 128, 109, 117, 140, 129, 127, 132, 129, 128, 112, 120, 114, 115, 134, 132, 123, 120, 125, 121, 127, 126, 124, 124, 121, 134, 105, 114, 128, 119, 131, 120, 118, 117, 121, 122, 100, 116, 125, 106, 124, 129, 178, 137, 112, 124, 124, 133, 121, 138, 121, 126, 121, 132, 130, 157, 124, 133, 118, 111, 115, 80, 175, 127, 120, 141, 137, 120, 152, 126, 131, 120, 125, 131, 100, 122, 136, 122, 131, 121, 117, 122, 131, 122, 125, 133, 126, 123, 123, 122, 129, 126, 128, 121, 133, 114, 119, 129, 124, 128, 122, 132, 121, 120, 121, 130, 128, 117, 132, 147, 126, 121, 109, 130, 129, 119, 117, 128, 156, 122, 121, 123, 129, 129, 126, 116, 118, 118, 131, 133, 122, 128, 124, 119, 128, 128, 148, 123, 121, 130, 126, 127, 133, 119, 119, 126, 125, 129, 130, 130, 127, 125, 121, 119, 128, 129, 124, 112, 125, 132, 120, 126, 127, 108, 118, 124, 123, 130, 128, 124, 121, 135, 135, 119, 124, 130, 92, 130, 122, 132, 125, 101, 126, 135, 123, 121, 122, 126, 124, 123, 116, 122, 152, 122, 128, 125, 129, 128, 118, 123, 126, 85, 130, 121, 181, 130, 119, 115, 128, 128, 122, 118, 91, 126, 118, 128, 133, 112, 130, 125, 127, 112, 123, 122, 124, 129, 122, 116, 119, 129, 131, 125, 128, 116, 119, 129, 131, 111, 127, 115, 128, 125, 143, 131, 127, 127, 130, 117, 123, 119, 125, 124, 123, 130, 125, 120, 125, 122, 122, 126, 125, 120, 125, 127, 123, 122, 122, 121, 113, 125, 122, 119, 121, 114, 106, 124, 117, 154, 134, 111, 127, 129, 121, 118, 126, 123, 134, 119, 103, 146, 125, 120, 125, 127, 118, 129, 132, 126, 124, 121, 127, 132, 114, 131, 109, 152, 107, 127, 125, 126, 123, 132, 122, 123, 111, 124, 124, 131, 133, 125, 135, 111, 113, 120, 126, 129, 95, 121, 144, 149, 133, 77, 114, 168, 128, 118, 123, 115, 124, 128, 85, 123, 119, 121, 111, 121, 126, 130, 151, 122, 111, 124, 111, 122, 125, 128, 130, 114, 125, 113, 118, 115, 125, 118, 126, 121, 130, 124, 120, 136, 121, 109, 121, 120, 119, 109, 129, 124, 126, 118, 125, 106, 120, 116, 129, 134, 120, 123, 108, 118, 118, 127, 125, 119, 120, 115, 130, 127, 119, 119, 126, 123, 117, 128, 117, 146, 128, 126, 119, 118, 135, 147, 108, 127, 143, 138, 122, 122, 112, 114, 127, 130, 112, 119, 122, 117, 129, 111, 163, 121, 129, 115, 121, 123, 112, 127, 120, 137, 128, 143, 120, 131, 116, 119, 126, 92, 124, 130, 126, 112, 119, 119, 135, 131, 105, 132, 131, 138, 125, 122, 120, 127, 115, 104, 128, 129, 126, 128, 113, 119, 128, 135, 112, 124, 128, 127, 111, 111, 123, 126, 124, 121, 110, 118, 132, 118, 123, 130, 122, 138, 107, 118, 121, 138, 128, 126, 120, 133, 109, 119, 123, 113, 138, 117, 116, 124, 125, 113, 116, 140, 119, 122, 120, 128, 122, 122, 121, 128, 125, 128, 113, 127, 133, 113, 144, 126, 123, 124, 113, 128, 111, 103, 116, 147, 126, 121, 137, 121, 117, 116, 126, 115, 122, 109, 127, 132, 135, 130, 122, 130, 128, 129, 128, 125, 126, 113, 123, 122, 84, 119, 102, 129, 122, 108, 124, 135, 123, 148, 130, 119, 138, 119, 120, 120, 123, 126, 118, 152, 118, 108, 112, 118, 121, 111, 134, 146, 129, 125, 109, 129, 122, 139, 127, 107, 121, 137, 107, 114, 118, 117, 131, 121, 122, 120, 127, 122, 106, 129, 130, 144, 121, 112, 127, 112, 123, 113, 138, 142, 132, 122, 127, 127, 115, 116, 116, 122, 119, 102, 127, 113, 119, 106, 119, 120, 128, 130, 107, 108, 130, 147, 126, 108, 133, 116, 120, 118, 110, 126, 117, 126, 123, 118, 131, 121, 128, 119, 140, 148, 122, 123, 126, 120, 124, 126, 119, 97, 115, 117, 113, 139, 120, 122, 101, 101, 120, 117, 118, 139, 132, 114, 127, 116, 113, 101, 144, 120, 123, 120, 119, 110, 122, 141, 118, 129, 117, 137, 128, 115, 121, 118, 117, 113, 123, 121, 112, 129, 142, 125, 130, 126, 115, 121, 124, 118, 139, 118, 123, 120, 100, 114, 126, 124, 124, 121, 109, 125, 123, 135, 115, 130, 118, 133, 104, 118, 124, 134, 138, 124, 116, 121, 146, 137, 131, 117, 128, 115, 125, 138, 138, 104, 127, 118, 135, 128, 127, 122, 135, 122, 118, 136, 128, 109, 124, 130, 109, 129, 126, 145, 118, 121, 116, 127, 116, 128, 116, 128, 113, 125, 119, 127, 132, 97, 126, 124, 119, 135, 124, 135, 125, 127, 132, 130, 108, 157, 130, 122, 110, 126, 106, 131, 129, 125, 142, 127, 120, 128, 108, 120, 104, 130, 122, 110, 115, 117, 101, 123, 132, 108, 121, 124, 125, 157, 135, 133, 130, 109, 122, 125, 126, 113, 131, 133, 122, 128, 128, 127, 118, 117, 139, 127, 122, 121, 121, 136, 131, 115, 127, 123, 144, 124, 124, 132, 113, 136, 127, 111, 129, 113, 123, 133, 122, 116, 150, 118, 135, 115, 108, 122, 130, 102, 127, 108, 138, 133, 130, 127, 126, 116, 123, 115, 123, 130, 132, 108, 123, 123, 117, 133, 129, 117, 128, 134, 119, 137, 130, 133, 118, 134, 127, 122, 120, 131, 122, 126, 119, 113, 120, 123, 127, 114, 120, 128, 128, 124, 120, 127, 120, 123, 116, 124, 124, 128, 122, 125, 123, 117, 121, 121, 114, 124, 123, 127, 143, 121, 123, 125, 124, 129, 120, 123, 128, 123, 125, 134, 127, 129, 116, 130, 130, 110, 127, 119, 129, 129, 134, 120, 111, 127, 117, 134, 122, 114, 129, 122, 120, 125, 124, 128, 126, 125, 118, 125, 126, 134, 124, 127, 120, 131, 120, 108, 126, 121, 132, 121, 126, 120, 128, 121, 136, 118, 122, 130, 123, 123, 121, 98, 118, 123, 114, 121, 126, 119, 114, 117, 116, 130, 128, 125, 119, 127, 124, 124, 124, 130, 122, 122, 139, 122, 124, 124, 127, 123, 126, 122, 131, 118, 128, 125, 128, 132, 124, 128, 118, 115, 128, 119, 124, 112, 139, 128, 130, 123, 128, 118, 134, 126, 127, 122, 121, 126, 117, 110, 116, 123, 126, 125, 121, 114, 123, 130, 121, 123, 125, 136, 129, 122, 138, 114, 126, 118, 122, 119, 118, 127, 124, 120, 119, 123, 129, 118, 122, 134, 130, 114, 127, 119, 133, 124, 121, 121, 130, 117, 127, 121, 127, 129, 131, 124, 126, 126, 120, 121, 125, 128, 116, 120, 128, 117, 127, 138, 119, 125, 124, 117, 135, 123, 131, 122, 119, 116, 117, 125, 125, 124, 128, 126, 132, 130, 122, 125, 132, 127, 134, 129, 137, 133, 123, 121, 123, 144, 129, 129, 132, 127, 129, 112, 126, 141, 127, 122, 123, 147, 112, 115, 122, 114, 123, 126, 125, 119, 116, 137, 123, 119, 125, 127, 128, 127, 121, 113, 123, 126, 129, 133, 108, 133, 118, 133, 124, 99, 113, 126, 132, 129, 120, 120, 120, 117, 136, 111, 116, 120, 113, 149, 102, 130, 134, 132, 115, 136, 127, 113, 117, 120, 130, 108, 134, 126, 118, 111, 116, 125, 157, 122, 116, 122, 127, 125, 121, 126, 115, 123, 118, 116, 129, 125, 122, 121, 126, 125, 122, 123, 127, 122, 117, 119, 115, 115, 133, 130, 126, 120, 126, 113, 118, 109, 134, 122, 122, 124, 133, 116, 127, 114, 107, 124, 119, 127, 123, 137, 119, 132, 114, 131, 135, 122, 129, 124, 134, 115, 129, 126, 132, 116, 118, 122, 108, 131, 125, 128, 119, 123, 119, 124, 131, 132, 124, 121, 117, 122, 122, 127, 127, 127, 131, 126, 131, 121, 128, 113, 136, 119, 125, 122, 141, 132, 109, 114, 115, 119, 132, 121, 117, 106, 130, 105, 116, 125, 121, 124, 130, 132, 130, 106, 156, 102, 127, 124, 122, 129, 129, 124, 121, 130, 140, 127, 117, 131, 112, 119, 128, 132, 124, 116, 140, 117, 131, 114, 126, 116, 129, 128, 127, 119, 135, 129, 121, 125, 125, 127, 124, 122, 122, 124, 121, 114, 112, 101, 118, 95, 141, 113, 139, 128, 121, 131, 127, 126, 115, 128, 137, 139, 109, 109, 129, 138, 130, 134, 123, 130, 131, 124, 117, 120, 123, 129, 117, 131, 127, 124, 130, 119, 125, 117, 126, 125, 123, 139, 127, 112, 123, 129, 117, 126, 123, 125, 119, 122, 123, 123, 126, 126, 130, 125, 142, 122, 123, 125, 125, 124, 120, 124, 125, 135, 143, 122, 119, 119, 123, 116, 122, 137, 113, 126, 126, 116, 116, 128, 124, 121, 120, 130, 128, 112, 126, 110, 125, 127, 129, 126, 118, 117, 130, 129, 123, 141, 124, 125, 120, 129, 116, 126, 127, 129, 123, 126, 120, 123, 130, 122, 121, 123, 128, 136, 125, 124, 130, 128, 120, 124, 120, 126, 126, 125, 128, 123, 130, 138, 121, 125, 126, 121, 126, 126, 132, 122, 119, 128, 128, 119, 129, 118, 122, 98, 122, 123, 119, 130, 123, 136, 121, 116, 132, 116, 132, 128, 121, 128, 122, 135, 126, 126, 121, 139, 129, 123, 127, 132, 125, 123, 127, 155, 124, 122, 121, 124, 137, 123, 122, 124, 122, 133, 124, 124, 134, 136, 110, 127, 143, 146, 123, 127, 123, 129, 126, 121, 121, 128, 126, 112, 126, 122, 121, 122, 130, 126, 135, 124, 126, 123, 123, 126, 124, 120, 130, 126, 117, 106, 112, 127, 125, 129, 108, 125, 125, 128, 122, 122, 126, 127, 124, 121, 130, 116, 127, 122, 119, 122, 135, 131, 116, 127, 127, 122, 128, 125, 122, 121, 126, 115, 124, 122, 126, 133, 120, 131, 119, 122, 131, 124, 126, 124, 116, 118, 123, 120, 126, 119, 122, 126, 122, 125, 128, 124, 123, 123, 122, 127, 126, 131, 124, 128, 130, 127, 125, 125, 124, 113, 109, 124, 124, 106, 115, 133, 121, 140, 119, 127, 137, 120, 127, 118, 122, 133, 124, 129, 124, 124, 128, 123, 127, 124, 131, 129, 131, 121, 127, 131, 120, 113, 136, 139, 125, 119, 122, 118, 132, 113, 126, 122, 121, 135, 129, 133, 128, 120, 111, 119, 121, 132, 128, 128, 151, 133, 127, 140, 111, 133, 129, 138, 124, 124, 126, 117, 130, 120, 128, 126, 125, 118, 126, 121, 125, 138, 121, 123, 117, 100, 127, 137, 119, 123, 108, 115, 121, 120, 128, 120, 111, 118, 123, 127, 125, 125, 118, 118, 116, 121, 122, 140, 126, 127, 146, 120, 130, 133, 119, 126, 126, 120, 113, 124, 129, 126, 124, 122, 133, 111, 141, 128, 127, 132, 128, 103, 123, 130, 124, 125, 125, 143, 133, 124, 119, 127, 133, 127, 120, 122, 116, 127, 125, 121, 126, 130, 144, 129, 119, 139, 124, 127, 116, 129, 124, 132, 131, 123, 122, 131, 130, 127, 131, 126, 121, 116, 152, 104, 108, 130, 124, 130, 139, 126, 132, 120, 125, 116, 120, 128, 142, 127, 124, 143, 136, 132, 113, 130, 117, 138, 125, 126, 130, 130, 126, 122, 128, 138, 130, 111, 125, 114, 125, 111, 117, 128, 116, 148, 129, 121, 113, 144, 128, 115, 124, 90, 126, 132, 104, 120, 128, 120, 119, 123, 125, 126, 109, 118, 116, 125, 123, 127, 125, 119, 126, 122, 125, 109, 149, 116, 132, 119, 123, 121, 124, 124, 121, 130, 123, 115, 123, 119, 119, 109, 123, 127, 122, 126, 121, 127, 119, 123, 126, 127, 113, 119, 120, 127, 123, 129, 121, 130, 148, 118, 132, 121, 127, 120, 122, 133, 134, 116, 129, 125, 116, 117, 123, 126, 124, 126, 120, 146, 119, 152, 152, 123, 127, 134, 110, 127, 122, 125, 126, 132, 110, 126, 130, 122, 143, 114, 128, 124, 121, 134, 111, 108, 122, 116, 113, 115, 120, 139, 122, 118, 128, 127, 134, 130, 121, 119, 125, 119, 117, 123, 122, 121, 133, 125, 123, 125, 116, 123, 126, 110, 127, 131, 124, 110, 119, 121, 117, 137, 132, 121, 109, 122, 125, 139, 119, 124, 122, 143, 116, 125, 121, 118, 134, 119, 114, 123, 128, 138, 116, 132, 113, 125, 120, 125, 139, 128, 137, 118, 129, 129, 120, 109, 124, 121, 131, 127, 123, 126, 143, 121, 131, 121, 124, 114, 120, 142, 127, 123, 116, 148, 108, 121, 109, 125, 121, 123, 115, 132, 122, 113, 137, 129, 119, 109, 133, 131, 129, 127, 126, 122, 121, 124, 132, 122, 137, 116, 140, 123, 126, 126, 132, 115, 124, 133, 124, 122, 125, 128, 122, 136, 126, 133, 125, 124, 115, 115, 130, 121, 132, 140, 123, 134, 119, 119, 127, 126, 127, 135, 123, 109, 118, 130, 127, 128, 111, 125, 131, 117, 134, 118, 123, 123, 134, 116, 118, 126, 117, 128, 141, 142, 131, 135, 122, 123, 137, 144, 111, 141, 127, 112, 115, 122, 123, 121, 103, 119, 108, 129, 134, 128, 129, 103, 119, 125, 117, 141, 111, 128, 96, 132, 123, 117, 133, 123, 127, 116, 117, 123, 121, 124, 116, 138, 132, 124, 125, 117, 119, 116, 125, 113, 125, 140, 130, 144, 123, 144, 138, 125, 131, 145, 128, 105, 128, 136, 104, 128, 131, 173, 124, 130, 121, 140, 117, 128, 122, 124, 113, 104, 124, 111, 138, 111, 117, 105, 123, 123, 125, 107, 128, 107, 129, 125, 118, 116, 119, 117, 120, 132, 123, 120, 119, 104, 106, 124, 131, 118, 124, 126, 136, 120, 122, 124, 145, 154, 125, 133, 122, 121, 116, 115, 135, 125, 116, 141, 126, 118, 117, 112, 123, 137, 89, 122, 125, 138, 105, 123, 126, 125, 128, 148, 112, 126, 121, 126, 118, 118, 112, 98, 151, 123, 129, 109, 128, 119, 127, 124, 123, 124, 131, 130, 102, 123, 133, 133, 137, 133, 103, 103, 131, 117, 134, 140, 119, 120, 124, 130, 120, 120, 127, 121, 123, 115, 129, 129, 123, 130, 119, 127, 125, 133, 129, 114, 119, 130, 114, 117, 123, 121, 130, 128, 169, 129, 161, 126, 122, 126, 123, 134, 133, 135, 131, 108, 119, 110, 106, 110, 122, 122, 128, 134, 124, 122, 124, 128, 114, 126, 113, 113, 141, 131, 110, 121, 129, 109, 121, 114, 126, 123, 137, 122, 126, 123, 119, 126, 129, 117, 114, 126, 122, 115, 128, 126, 127, 148, 119, 131, 118, 122, 120, 133, 109, 108, 126, 141, 112, 127, 122, 126, 133, 129, 123, 110, 125, 118, 126, 117, 124, 120, 135, 131, 120, 113, 130, 123, 121, 146, 106, 123, 118, 128, 128, 112, 122, 112, 126, 126, 124, 121, 121, 119, 128, 125, 122, 117, 124, 116, 118, 112, 115, 115, 122, 115, 127, 175, 129, 104, 119, 112, 110, 125, 125, 120, 129, 131, 114, 124, 136, 108, 116, 128, 123, 132, 111, 127, 132, 79, 133, 175, 133, 126, 115, 132, 134, 110, 100, 128, 127, 122, 117, 126, 134, 131, 124, 145, 114, 130, 123, 126, 123, 118, 134, 123, 128, 121, 126, 116, 115, 124, 96, 128, 121, 129, 108, 121, 116, 123, 131, 122, 121, 147, 123, 107, 192, 121, 121, 125, 104, 115, 123, 126, 124, 123, 122, 126, 116, 124, 124, 129, 132, 120, 130, 140, 130, 140, 129, 131, 118, 124, 115, 136, 129, 119, 127, 118, 115, 136, 107, 120, 136, 109, 130, 123, 112, 130, 129, 113, 123, 137, 131, 117, 135, 129, 123, 108, 121, 121, 124, 115, 177, 116, 129, 131, 124, 129, 122, 124, 119, 123, 99, 105, 120, 122, 117, 107, 119, 120, 115, 128, 102, 128, 131, 113, 126, 115, 122, 119, 101, 128, 123, 126, 130, 123, 109, 126, 120, 147, 111, 123, 128, 132, 125, 124, 119, 130, 124, 102, 119, 115, 121, 125, 124, 136, 119, 126, 138, 140, 121, 137, 137, 126, 129, 127, 113, 109, 143, 109, 130, 118, 119, 145, 143, 116, 119, 127, 125, 136, 111, 104, 118, 109, 101, 148, 122, 138, 129, 119, 126, 135, 119, 125, 124, 125, 118, 132, 114, 126, 122, 133, 117, 127, 73, 117, 105, 107, 123, 109, 128, 117, 116, 116, 132, 120, 120, 115, 129, 126, 132, 132, 130, 114, 128, 101, 119, 128, 114, 119, 139, 137, 128, 189, 112, 168, 114, 122, 113, 117, 124, 131, 130, 101, 122, 121, 100, 85, 124, 101, 119, 119, 133, 119, 136, 87, 126, 136, 124, 114, 112, 117, 126, 131, 114, 126, 135, 100, 127, 118, 103, 129, 130, 129, 119, 120, 129, 112, 126, 107, 107, 184, 135, 131, 134, 132, 115, 126, 122, 143, 130, 118, 135, 118, 112, 131, 116, 126, 109, 110, 124, 127, 112, 131, 130, 123, 138, 129, 120, 119, 122, 123, 119, 124, 122, 109, 114, 121, 137, 121, 126, 139, 116, 121, 124, 133, 122, 120, 117, 130, 126, 115, 128, 119, 113, 118, 94, 109, 126, 117, 130, 136, 138, 134, 117, 129, 120, 138, 143, 125, 123, 135, 132, 105, 109, 115, 109, 119, 145, 114, 127, 117, 133, 120, 129, 104, 129, 120, 84, 110, 106, 125, 115, 140, 121, 140, 115, 114, 128, 133, 109, 133, 116, 129, 126, 136, 125, 131, 116, 123, 137, 119, 122, 131, 125, 121, 118, 114, 121, 120, 116, 124, 133, 128, 110, 121, 133, 128, 110, 128, 121, 148, 138, 121, 108, 116, 117, 120, 120, 113, 117, 106, 114, 122, 128, 132, 132, 126, 136, 139, 134, 152, 126, 128, 120, 124, 133, 126, 121, 110, 131, 131, 120, 135, 111, 107, 121, 110, 118, 106, 133, 149, 118, 105, 90, 120, 117, 127, 121, 128, 142, 114, 128, 121, 126, 124, 117, 114, 129, 118, 116, 125, 149, 136, 123, 120, 116, 136, 120, 124, 123, 114, 112, 127, 131, 114, 127, 132, 139, 129, 134, 112, 141, 108, 132, 117, 123, 126, 126, 154, 111, 126, 126, 111, 129, 136, 131, 123, 139, 113, 117, 109, 142, 128, 119, 100, 106, 133, 129, 121, 93, 104, 139, 132, 117, 131, 126, 110, 100, 120, 130, 126, 124, 113, 113, 121, 101, 98, 141, 119, 133, 128, 133, 131, 126, 114, 126, 112, 135, 115, 141, 122, 124, 130, 114, 119, 135, 135, 144, 120, 122, 127, 86, 122, 114, 109, 113, 128, 131, 121, 113, 129, 133, 124, 129, 118, 120, 95, 103, 135, 110, 124, 128, 120, 117, 122, 110, 121, 137, 125, 110, 130, 126, 118, 117, 116, 121, 137, 126, 136, 120, 152, 119, 122, 140, 132, 131, 118, 123, 124, 121, 114, 113, 124, 124, 127, 124, 118, 121, 143, 121, 117, 130, 117, 114, 98, 120, 117, 128, 120, 122, 140, 108, 130, 140, 132, 130, 137, 127, 114, 131, 127, 121, 139, 121, 125, 122, 128, 106, 123, 126, 117, 130, 115, 112, 127, 119, 113, 133, 134, 131, 106, 116, 128, 133, 126, 129, 121, 131, 123, 113, 132, 114, 112, 124, 125, 114, 139, 135, 123, 122, 127, 125, 114, 121, 122, 116, 115, 112, 115, 133, 110, 132, 133, 124, 131, 138, 115, 110, 131, 185, 127, 116, 129, 142, 120, 121, 111, 129, 111, 120, 127, 125, 126, 131, 106, 129, 118, 118, 112, 128, 135, 132, 124, 125, 98, 130, 94, 124, 123, 126, 122, 116, 131, 125, 92, 117, 120, 125, 128, 114, 128, 104, 117, 132, 120, 127, 122, 115, 137, 120, 123, 123, 119, 103, 127, 110, 113, 117, 120, 123, 118, 134, 127, 132, 134, 139, 130, 123, 130, 134, 133, 114, 135, 153, 127, 126, 139, 122, 119, 125, 120, 132, 123, 116, 147, 129, 108, 174, 119, 130, 132, 131, 126, 138, 121, 125, 104, 110, 120, 122, 135, 124, 121, 123, 109, 124, 127, 126, 119, 120, 119, 127, 122, 115, 129, 121, 127, 124, 108, 110, 107, 143, 126, 128, 123, 110, 127, 121, 120, 129, 121, 118, 116, 115, 122, 125, 118, 143, 110, 96, 123, 112, 115, 124, 115, 120, 117, 125, 133, 113, 127, 116, 127, 126, 124, 109, 124, 105, 120, 114, 128, 123, 106, 117, 110, 118, 119, 126, 130, 130, 127, 133, 130, 117, 131, 131, 124, 100, 119, 128, 117, 128, 126, 119, 129, 123, 123, 126, 146, 115, 143, 119, 119, 125, 127, 108, 120, 130, 132, 134, 102, 90, 120, 131, 128, 128, 121, 150, 106, 129, 131, 100, 119, 125, 107, 144, 125, 117, 113, 129, 115, 130, 128, 126, 122, 122, 120, 143, 116, 127, 115, 114, 124, 129, 107, 126, 120, 136, 96, 124, 118, 122, 128, 129, 118, 119, 131, 118, 123, 136, 135, 116, 130, 131, 127, 124, 121, 149, 134, 115, 97, 123, 132, 116, 115, 118, 116, 121, 128, 124, 128, 146, 124, 122, 108, 158, 129, 118, 127, 119, 131, 132, 120, 126, 111, 124, 119, 125, 111, 114, 125, 122, 133, 131, 138, 142, 109, 127, 122, 101, 127, 164, 132, 126, 120, 112, 137, 132, 112, 112, 125, 127, 114, 126, 111, 120, 126, 112, 106, 126, 98, 134, 123, 112, 124, 126, 121, 106, 114, 131, 118, 129, 117, 118, 121, 128, 124, 124, 147, 126, 113, 119, 128, 115, 119, 117, 116, 105, 120, 138, 128, 124, 117, 128, 110, 117, 139, 148, 109, 108, 127, 122, 96, 134, 125, 119, 123, 132, 114, 134, 125, 114, 114, 119, 124, 132, 137, 110, 119, 124, 111, 126, 124, 108, 115, 129, 130, 117, 118, 118, 123, 121, 121, 122, 130, 128, 126, 119, 112, 125, 132, 118, 116, 125, 123, 119, 114, 137, 137, 136, 115, 126, 131, 125, 115, 129, 125, 121, 122, 151, 116, 126, 121, 112, 118, 126, 125, 131, 126, 123, 113, 136, 118, 119, 124, 136, 125, 115, 130, 122, 124, 133, 122, 144, 114, 116, 116, 109, 135, 112, 104, 129, 119, 117, 124, 126, 130, 128, 128, 148, 126, 117, 134, 104, 105, 120, 118, 126, 131, 156, 114, 114, 119, 124, 119, 121, 110, 131, 122, 118, 137, 118, 135, 130, 111, 126, 134, 119, 126, 126, 127, 113, 117, 126, 104, 128, 125, 120, 110, 133, 123, 122, 112, 117, 132, 80, 130, 117, 145, 130, 120, 117, 111, 114, 157, 122, 125, 135, 128, 158, 118, 119, 108, 147, 131, 145, 122, 117, 118, 139, 117, 131, 132, 129, 142, 120, 110, 153, 145, 138, 123, 126, 126, 123, 132, 118, 126, 124, 108, 127, 131, 119, 121, 123, 124, 130, 146, 132, 146, 134, 104, 132, 157, 117, 141, 130, 133, 117, 128, 126, 126, 141, 136, 120, 128, 124, 129, 133, 143, 126, 136, 133, 123, 131, 132, 125, 130, 137, 137, 118, 129, 110, 117, 118, 114, 105, 126, 116, 151, 131, 102, 116, 127, 110, 109, 129, 116, 131, 146, 124, 121, 111, 99, 128, 135, 133, 121, 128, 128, 116, 157, 123, 123, 124, 129, 118, 102, 127, 143, 130, 127, 122, 111, 137, 146, 120, 111, 134, 130, 132, 146, 132, 101, 140, 125, 133, 100, 126, 110, 113, 120, 115, 131, 122, 139, 115, 142, 108, 131, 116, 114, 136, 119, 112, 120, 131, 112, 138, 121, 114, 136, 139, 120, 126, 107, 122, 121, 124, 114, 107, 128, 130, 134, 129, 123, 121, 144, 138, 110, 110, 124, 142, 120, 136, 141, 120, 117, 115, 123, 111, 110, 144, 135, 117, 112, 116, 119, 98, 133, 126, 132, 122, 125, 124, 126, 128, 115, 127, 123, 130, 127, 133, 116, 122, 109, 115, 156, 110, 112, 102, 105, 116, 103, 115, 143, 108, 116, 126, 115, 132, 109, 139, 129, 106, 150, 136, 125, 111, 102, 116, 114, 120, 121, 124, 106, 102, 115, 130, 121, 121, 127, 144, 126, 120, 114, 134, 127, 137, 120, 123, 119, 130, 101, 134, 132, 122, 130, 137, 147, 112, 109, 125, 119, 122, 126, 121, 130, 121, 114, 125, 135, 126, 116, 126, 110, 137, 126, 127, 122, 126, 128, 125, 130, 131, 135, 133, 137, 124, 133, 122, 106, 125, 116, 133, 139, 109, 120, 124, 102, 133, 109, 128, 137, 117, 125, 115, 135, 121, 111, 127, 129, 138, 110, 101, 103, 117, 111, 116, 123, 121, 120, 124, 130, 148, 127, 134, 131, 134, 106, 120, 135, 119, 117, 133, 125, 127, 113, 121, 120, 123, 132, 132, 126, 133, 135, 120, 122, 135, 137, 127, 113, 125, 108, 131, 123, 125, 127, 114, 136, 123, 118, 122, 135, 126, 141, 113, 121, 123, 123, 116, 113, 126, 117, 120, 125, 117, 128, 110, 116, 128, 133, 128, 116, 125, 121, 134, 132, 143, 130, 120, 140, 132, 118, 125, 109, 121, 126, 116, 116, 129, 121, 124, 118, 125, 115, 134, 118, 101, 124, 126, 124, 113, 119, 122, 123, 145, 111, 106, 135, 123, 133, 126, 171, 135, 132, 115, 118, 94, 144, 106, 142, 113, 118, 124, 125, 117, 132, 128, 133, 125, 115, 113, 114, 131, 113, 129, 95, 122, 131, 114, 102, 120, 114, 130, 121, 125, 127, 123, 117, 130, 117, 128, 118, 125, 116, 111, 127, 152, 132, 130, 115, 119, 119, 143, 115, 128, 129, 101, 121, 135, 139, 128, 124, 140, 125, 129, 130, 129, 113, 120, 122, 138, 124, 117, 123, 119, 117, 129, 136, 122, 120, 117, 114, 126, 119, 117, 123, 130, 127, 120, 130, 111, 114, 130, 123, 123, 105, 125, 119, 124, 135, 130, 124, 130, 138, 125, 126, 119, 123, 131, 123, 131, 120, 127, 120, 124, 129, 119, 125, 112, 114, 122, 131, 126, 121, 115, 133, 132, 127, 129, 135, 121, 123, 120, 120, 128, 129, 122, 133, 116, 124, 123, 113, 146, 124, 124, 123, 131, 123, 127, 131, 129, 125, 133, 130, 136, 125, 111, 126, 119, 114, 120, 121, 117, 127, 129, 125, 104, 130, 121, 144, 94, 122, 115, 124, 124, 120, 127, 125, 130, 131, 114, 124, 126, 136, 122, 129, 123, 135, 118, 130, 115, 134, 129, 119, 132, 125, 127, 118, 124, 116, 137, 120, 93, 127, 129, 113, 110, 126, 130, 122, 124, 125, 118, 130, 120, 123, 99, 121, 129, 144, 115, 111, 121, 120, 111, 116, 125, 144, 118, 127, 122, 125, 124, 125, 120, 116, 119, 120, 117, 132, 118, 132, 125, 121, 132, 125, 140, 96, 115, 119, 125, 116, 131, 121, 136, 127, 127, 135, 121, 127, 121, 127, 127, 128, 123, 127, 126, 120, 124, 141, 127, 128, 132, 126, 131, 123, 126, 133, 101, 119, 131, 135, 128, 137, 132, 127, 121, 126, 113, 114, 131, 148, 132, 122, 133, 115, 128, 135, 137, 129, 115, 112, 131, 109, 128, 133, 160, 126, 119, 140, 114, 127, 126, 127, 116, 122, 119, 123, 124, 116, 132, 122, 125, 129, 120, 118, 129, 127, 128, 129, 122, 115, 125, 123, 102, 137, 129, 146, 122, 128, 132, 129, 115, 126, 135, 130, 132, 126, 128, 145, 120, 112, 124, 120, 133, 129, 110, 120, 146, 121, 120, 103, 117, 121, 120, 104, 127, 122, 123, 140, 110, 143, 124, 130, 117, 119, 136, 118, 125, 129, 116, 111, 126, 115, 121, 127, 132, 88, 142, 150, 113, 141, 109, 125, 111, 114, 125, 123, 136, 119, 111, 118, 108, 122, 139, 115, 140, 121, 129, 132, 112, 117, 120, 105, 128, 128, 122, 135, 116, 141, 135, 127, 120, 109, 120, 127, 115, 120, 109, 119, 121, 121, 125, 125, 127, 112, 138, 148, 131, 125, 128, 125, 113, 135, 108, 109, 108, 113, 136, 123, 127, 117, 139, 114, 123, 132, 136, 149, 123, 131, 111, 128, 135, 110, 117, 119, 114, 123, 136, 130, 92, 129, 121, 123, 129, 128, 125, 121, 120, 129, 118, 114, 117, 122, 126, 129, 124, 97, 111, 137, 124, 147, 114, 120, 120, 118, 120, 123, 120, 124, 116, 131, 105, 119, 142, 111, 125, 116, 121, 113, 133, 127, 116, 128, 104, 129, 120, 127, 134, 111, 117, 108, 131, 125, 128, 124, 114, 120, 117, 114, 123, 147, 139, 118, 122, 129, 119, 125, 132, 113, 109, 129, 111, 148, 115, 134, 125, 111, 123, 124, 121, 118, 116, 127, 111, 119, 133, 129, 126, 120, 129, 124, 122, 114, 131, 120, 117, 123, 116, 124, 127, 120, 113, 136, 114, 119, 116, 117, 116, 112, 132, 135, 106, 105, 132, 126, 140, 133, 114, 130, 120, 126, 127, 138, 123, 125, 124, 129, 118, 110, 125, 124, 130, 125, 125, 127, 117, 113, 122, 122, 137, 138, 127, 138, 121, 133, 128, 129, 128, 118, 127, 114, 131, 125, 125, 125, 121, 118, 124, 110, 128, 115, 126, 128, 121, 123, 127, 134, 129, 120, 115, 139, 125, 130, 118, 120, 121, 127, 119, 114, 123, 131, 119, 106, 137, 120, 125, 119, 128, 131, 127, 122, 112, 149, 126, 124, 151, 132, 126, 123, 120, 117, 123, 104, 107, 138, 141, 117, 115, 119, 116, 140, 112, 111, 123, 118, 121, 134, 131, 125, 122, 124, 123, 125, 123, 123, 126, 117, 117, 111, 127, 115, 119, 128, 120, 125, 120, 115, 125, 132, 131, 120, 115, 134, 100, 115, 129, 143, 110, 113, 106, 127, 114, 130, 127, 121, 130, 129, 148, 116, 126, 127, 129, 98, 128, 135, 125, 124, 120, 83, 114, 125, 113, 127, 112, 121, 123, 121, 135, 129, 116, 123, 129, 115, 122, 120, 125, 118, 112, 121, 120, 115, 121, 127, 142, 125, 134, 139, 119, 125, 125, 138, 112, 122, 128, 131, 125, 123, 123, 127, 122, 135, 120, 124, 122, 127, 120, 111, 121, 141, 115, 123, 128, 126, 123, 122, 114, 120, 119, 107, 127, 134, 133, 168, 59, 119, 121, 118, 97, 97, 118, 111, 132, 116, 135, 113, 132, 131, 136, 128, 121, 123, 135, 123, 123, 121, 120, 122, 123, 134, 122, 121, 126, 141, 143, 127, 138, 114, 126, 117, 119, 132, 111, 116, 160, 130, 118, 127, 121, 138, 127, 126, 126, 122, 128, 91, 148, 125, 106, 121, 123, 130, 140, 129, 113, 110, 113, 124, 135, 128, 126, 103, 124, 137, 124, 132, 142, 120, 134, 125, 100, 127, 128, 125, 123, 140, 135, 115, 125, 133, 126, 127, 126, 135, 128, 127, 121, 108, 126, 125, 123, 119, 115, 126, 125, 114, 138, 114, 118, 136, 135, 124, 123, 120, 178, 114, 135, 131, 121, 144, 116, 105, 113, 130, 150, 117, 126, 156, 121, 123, 126, 120, 124, 123, 101, 126, 129, 125, 130, 117, 115, 131, 123, 136, 147, 130, 103, 118, 124, 133, 114, 109, 128, 120, 131, 129, 108, 113, 130, 125, 130, 121, 134, 86, 123, 110, 121, 149, 113, 111, 113, 120, 105, 134, 118, 111, 115, 144, 120, 138, 131, 112, 136, 120, 143, 128, 114, 108, 136, 126, 123, 124, 119, 119, 117, 121, 120, 135, 134, 122, 115, 116, 118, 126, 133, 89, 127, 123, 146, 117, 115, 126, 131, 116, 122, 121, 125, 103, 127, 100, 132, 131, 106, 127, 125, 143, 130, 112, 140, 122, 115, 115, 121, 138, 110, 119, 125, 122, 135, 117, 98, 128, 120, 121, 117, 117, 127, 124, 87, 88, 119, 134, 142, 118, 124, 127, 130, 126, 127, 111, 113, 123, 128, 125, 133, 120, 114, 129, 114, 118, 125, 131, 121, 129, 119, 124, 123, 132, 125, 127, 130, 126, 123, 161, 126, 122, 118, 134, 129, 119, 123, 117, 111, 105, 114, 127, 135, 136, 131, 129, 139, 125, 116, 131, 122, 136, 121, 120, 127, 117, 118, 120, 116, 115, 113, 132, 119, 131, 124, 126, 122, 118, 116, 132, 122, 133, 124, 113, 121, 127, 123, 120, 160, 117, 124, 118, 146, 122, 133, 121, 113, 112, 127, 109, 117, 124, 126, 117, 112, 148, 122, 127, 123, 112, 126, 121, 123, 116, 120, 124, 134, 119, 134, 123, 114, 134, 122, 128, 131, 118, 138, 132, 148, 123, 121, 126, 128, 119, 109, 114, 137, 133, 121, 96, 123, 121, 123, 125, 136, 137, 110, 122, 126, 129, 112, 111, 116, 125, 133, 134, 145, 130, 105, 116, 131, 124, 130, 113, 121, 126, 138, 123, 125, 119, 120, 122, 129, 118, 133, 139, 125, 94, 130, 140, 118, 122, 113, 103, 110, 117, 116, 125, 113, 87, 132, 130, 130, 125, 136, 129, 110, 116, 122, 125, 130, 119, 123, 130, 132, 123, 115, 123, 131, 124, 128, 127, 115, 128, 122, 126, 123, 152, 127, 120, 137, 116, 126, 115, 131, 116, 115, 128, 126, 147, 126, 114, 133, 113, 123, 120, 119, 114, 123, 120, 126, 120, 130, 121, 125, 121, 106, 129, 130, 120, 123, 120, 119, 117, 125, 120, 114, 119, 118, 129, 135, 124, 128, 129, 123, 119, 121, 134, 132, 130, 99, 114, 129, 128, 119, 121, 124, 105, 106, 137, 130, 117, 135, 119, 126, 115, 115, 121, 134, 150, 124, 120, 130, 141, 118, 67, 127, 139, 130, 117, 120, 121, 123, 119, 98, 110, 121, 116, 97, 127, 137, 124, 142, 129, 126, 135, 131, 142, 109, 114, 126, 114, 135, 121, 133, 121, 113, 132, 125, 137, 129, 138, 118, 118, 122, 136, 125, 136, 124, 128, 120, 120, 124, 121, 121, 120, 126, 126, 120, 129, 136, 131, 128, 123, 119, 126, 127, 120, 126, 125, 112, 123, 125, 125, 129, 128, 123, 121, 120, 131, 123, 137, 125, 123, 116, 123, 123, 118, 126, 120, 121, 126, 119, 122, 123, 125, 129, 135, 129, 122, 121, 121, 120, 114, 127, 125, 131, 124, 121, 129, 133, 134, 121, 125, 125, 114, 122, 119, 122, 124, 124, 120, 125, 120, 118, 117, 124, 128, 120, 128, 130, 126, 123, 123, 123, 124, 124, 123, 125, 124, 131, 123, 128, 121, 122, 129, 127, 129, 129, 126, 120, 130, 118, 124, 130, 119, 126, 118, 123, 131, 121, 126, 124, 124, 127, 121, 126, 129, 131, 117, 127, 118, 129, 124, 128, 130, 134, 117, 126, 124, 125, 121, 125, 129, 121, 121, 129, 129, 123, 128, 119, 128, 125, 131, 125, 120, 122, 118, 132, 122, 125, 123, 125, 122, 123, 133, 123, 124, 130, 119, 123, 118, 123, 124, 125, 119, 129, 122, 127, 120, 124, 125, 128, 123, 126, 133, 120, 122, 126, 122, 114, 126, 125, 125, 122, 132, 121, 117, 123, 127, 114, 127, 129, 120, 128, 123, 120, 129, 125, 129, 127, 126, 123, 126, 126, 124, 121, 121, 135, 119, 122, 126, 123, 123, 121, 122, 129, 122, 134, 119, 131, 120, 122, 129, 119, 124, 124, 132, 124, 134, 124, 127, 121, 124, 124, 126, 115, 125, 128, 122, 113, 126, 131, 131, 120, 119, 129, 134, 124, 115, 119, 128, 126, 135, 124, 115, 57, 127, 129, 129, 130, 131, 112, 121, 90, 128, 121, 130, 107, 119, 121, 131, 124, 128, 123, 116, 129, 118, 118, 112, 126, 120, 125, 135, 122, 122, 119, 119, 117, 111, 121, 145, 122, 116, 122, 117, 127, 123, 123, 125, 132, 126, 123, 145, 140, 113, 127, 108, 130, 71, 117, 128, 120, 110, 127, 127, 128, 128, 116, 115, 109, 117, 126, 131, 61, 160, 110, 121, 135, 119, 113, 126, 154, 130, 118, 127, 132, 113, 119, 123, 104, 130, 123, 149, 125, 120, 143, 118, 112, 126, 121, 123, 111, 118, 119, 115, 132, 124, 132, 123, 119, 123, 126, 126, 121, 127, 122, 114, 119, 123, 136, 116, 125, 120, 120, 101, 125, 116, 121, 133, 124, 116, 107, 124, 123, 158, 116, 117, 128, 124, 120, 123, 127, 113, 117, 137, 28, 113, 115, 112, 123, 119, 138, 133, 130, 59, 113, 127, 118, 118, 120, 122, 132, 125, 131, 119, 171, 131, 108, 119, 123, 117, 122, 115, 124, 72, 132, 125, 128, 112, 130, 165, 111, 111, 145, 117, 113, 125, 129, 121, 152, 129, 133, 130, 130, 130, 121, 159, 127, 133, 127, 124, 116, 121, 114, 118, 120, 113, 129, 185, 102, 93, 122, 126, 118, 123, 125, 126, 107, 126, 120, 112, 78, 128, 129, 120, 195, 119, 127, 124, 125, 118, 116, 112, 140, 135, 131, 117, 142, 122, 127, 120, 119, 122, 125, 123, 130, 120, 121, 124, 119, 125, 121, 127, 117, 131, 116, 132, 122, 128, 120, 128, 116, 128, 121, 135, 131, 145, 131, 115, 124, 130, 124, 125, 121, 117, 126, 146, 118, 114, 121, 122, 126, 121, 129, 122, 126, 137, 122, 121, 128, 111, 120, 114, 113, 136, 122, 129, 133, 124, 118, 144, 127, 128, 124, 121, 131, 122, 120, 127, 120, 131, 105, 118, 134, 105, 137, 118, 131, 109, 131, 117, 120, 123, 115, 123, 120, 136, 126, 139, 113, 125, 131, 122, 130, 124, 119, 123, 120, 124, 114, 127, 119, 143, 128, 121, 121, 129, 133, 125, 129, 126, 127, 116, 149, 120, 131, 138, 133, 111, 123, 113, 136, 112, 113, 123, 109, 125, 115, 130, 123, 111, 133, 146, 119, 130, 133, 128, 113, 124, 124, 125, 131, 123, 118, 133, 118, 121, 127, 119, 146, 127, 110, 124, 122, 117, 123, 126, 140, 121, 152, 123, 125, 121, 128, 112, 133, 115, 127, 126, 114, 117, 136, 119, 122, 128, 122, 85, 140, 137, 123, 125, 121, 111, 127, 117, 124, 116, 120, 129, 118, 122, 156, 112, 121, 117, 134, 117, 120, 133, 125, 126, 119, 122, 125, 111, 124, 117, 122, 136, 130, 125, 143, 119, 114, 126, 151, 124, 125, 121, 130, 125, 118, 128, 86, 118, 116, 111, 111, 133, 111, 127, 112, 124, 115, 131, 116, 118, 126, 133, 118, 129, 134, 122, 119, 129, 120, 133, 134, 119, 120, 121, 136, 124, 132, 122, 142, 119, 125, 121, 129, 134, 128, 132, 123, 152, 147, 131, 130, 117, 125, 146, 128, 110, 113, 115, 129, 126, 116, 127, 124, 116, 111, 113, 107, 117, 120, 112, 122, 135, 131, 116, 154, 125, 126, 144, 119, 112, 119, 112, 127, 135, 123, 121, 137, 112, 128, 118, 130, 112, 111, 118, 143, 115, 120, 128, 122, 123, 132, 119, 145, 127, 127, 129, 124, 128, 123, 128, 113, 133, 131, 128, 121, 133, 121, 143, 114, 125, 119, 119, 114, 119, 124, 140, 96, 127, 114, 130, 130, 113, 114, 129, 112, 128, 134, 121, 153, 138, 119, 111, 125, 120, 115, 126, 117, 141, 113, 129, 121, 133, 109, 137, 127, 100, 121, 126, 146, 129, 144, 112, 132, 108, 120, 147, 120, 123, 130, 116, 118, 137, 112, 93, 118, 98, 127, 125, 114, 122, 115, 136, 119, 121, 119, 127, 134, 119, 121, 127, 120, 127, 118, 117, 131, 125, 135, 134, 135, 122, 136, 118, 126, 124, 129, 111, 133, 196, 119, 126, 130, 130, 122, 129, 123, 125, 121, 131, 123, 135, 119, 127, 130, 104, 125, 87, 121, 103, 120, 121, 123, 118, 115, 132, 163, 128, 132, 138, 131, 81, 95, 133, 135, 137, 145, 143, 135, 111, 142, 127, 111, 121, 132, 125, 113, 114, 106, 109, 128, 111, 126, 122, 112, 129, 118, 122, 161, 133, 132, 126, 125, 136, 129, 106, 123, 109, 121, 110, 125, 117, 141, 137, 128, 111, 162, 98, 113, 124, 126, 130, 105, 127, 127, 106, 115, 130, 125, 135, 119, 111, 133, 128, 128, 123, 129, 149, 123, 110, 118, 123, 123, 126, 127, 125, 122, 126, 124, 125, 125, 135, 125, 135, 123, 124, 126, 126, 126, 123, 124, 132, 124, 121, 124, 129, 129, 120, 128, 121, 122, 128, 124, 126, 124, 130, 126, 117, 122, 128, 133, 127, 124, 125, 133, 126, 129, 124, 116, 125, 122, 125, 121, 133, 126, 129, 126, 128, 134, 125, 115, 120, 123, 124, 118, 124, 121, 123, 126, 128, 119, 121, 120, 123, 118, 128, 125, 123, 127, 123, 120, 123, 120, 123, 122, 131, 122, 124, 122, 126, 128, 120, 124, 122, 123, 124, 123, 126, 127, 124, 125, 122, 129, 125, 125, 125, 122, 130, 118, 125, 124, 122, 124, 122, 123, 119, 123, 135, 128, 130, 118, 120, 122, 124, 120, 124, 126, 118, 125, 123, 119, 124, 115, 119, 129, 123, 124, 125, 124, 123, 125, 123, 123, 120, 125, 126, 127, 127, 120, 129, 129, 123, 126, 126, 123, 126, 127, 123, 127, 122, 130, 119, 126, 119, 117, 128, 124, 117, 122, 122, 122, 122, 123, 123, 124, 123, 124, 123, 131, 127, 122, 121, 124, 125, 123, 124, 127, 128, 120, 125, 126, 125, 122, 121, 119, 121, 130, 128, 126, 124, 121, 134, 123, 125, 125, 124, 121, 122, 125, 125, 125, 124, 126, 125, 114, 124, 125, 127, 124, 123, 126, 127, 123, 117, 125, 131, 124, 121, 123, 129, 125, 129, 123, 128, 126, 127, 121, 128, 118, 126, 126, 117, 120, 125, 121, 120, 115, 135, 128, 124, 128, 129, 123, 131, 120, 125, 124, 124, 124, 126, 128, 127, 130, 128, 123, 121, 124, 109, 123, 121, 125, 126, 128, 128, 131, 125, 123, 119, 129, 126, 121, 129, 126, 132, 128, 121, 117, 124, 126, 132, 120, 124, 122, 131, 123, 124, 125, 126, 123, 127, 120, 123, 120, 123, 128, 123, 124, 125, 121, 125, 127, 123, 123, 123, 118, 124, 123, 126, 123, 120, 126, 126, 126, 132, 125, 124, 122, 131, 125, 128, 128, 124, 121, 127, 122, 128, 118, 119, 117, 125, 127, 121, 123, 121, 124, 124, 126, 130, 125, 128, 130, 123, 123, 124, 128, 125, 125, 118, 118, 124, 129, 122, 126, 120, 121, 119, 120, 129, 133, 125, 124, 126, 123, 114, 126, 125, 126, 123, 120, 123, 123, 122, 118, 121, 122, 126, 121, 120, 125, 124, 124, 121, 126, 126, 127, 124, 124, 120, 122, 134, 128, 124, 123, 124, 125, 120, 117, 118, 129, 121, 124, 127, 125, 128, 129, 126, 117, 120, 124, 129, 145, 122, 128, 119, 123, 122, 123, 132, 122, 119, 126, 116, 128, 121, 125, 118, 134, 137, 133, 124, 122, 121, 122, 126, 120, 124, 122, 122, 124, 128, 121, 132, 128, 119, 132, 124, 129, 125, 131, 123, 126, 122, 126, 125, 121, 129, 125, 122, 124, 125, 126, 127, 124, 124, 120, 125, 122, 128, 132, 127, 122, 124, 129, 123, 126, 124, 122, 123, 120, 127, 127, 127, 128, 124, 125, 128, 121, 125, 122, 125, 117, 125, 127, 123, 124, 126, 121, 129, 125, 118, 128, 133, 122, 119, 114, 129, 122, 112, 139, 117, 122, 117, 133, 97, 123, 144, 119, 123, 128, 124, 131, 124, 121, 181, 146, 105, 117, 133, 128, 118, 133, 135, 123, 122, 121, 112, 132, 128, 127, 106, 140, 129, 121, 136, 121, 122, 121, 135, 129, 138, 118, 119, 139, 124, 114, 129, 110, 118, 126, 124, 125, 124, 117, 123, 125, 126, 119, 122, 138, 117, 118, 124, 118, 144, 134, 119, 115, 125, 123, 136, 123, 127, 128, 121, 124, 109, 120, 117, 127, 115, 133, 126, 130, 147, 119, 130, 124, 122, 131, 128, 122, 123, 123, 125, 127, 121, 134, 144, 128, 119, 117, 193, 119, 122, 110, 123, 123, 121, 121, 131, 133, 125, 110, 114, 120, 123, 122, 135, 133, 125, 131, 121, 123, 110, 126, 118, 126, 126, 119, 132, 127, 132, 121, 131, 138, 122, 153, 123, 136, 128, 118, 113, 115, 115, 127, 126, 117, 119, 134, 125, 113, 136, 132, 120, 136, 96, 113, 151, 126, 123, 128, 127, 129, 122, 117, 130, 123, 125, 114, 137, 119, 118, 105, 121, 111, 119, 124, 139, 123, 124, 125, 128, 129, 124, 129, 116, 109, 155, 126, 121, 115, 122, 145, 149, 137, 134, 127, 115, 128, 115, 120, 132, 98, 126, 120, 117, 97, 133, 120, 117, 125, 122, 125, 129, 113, 102, 128, 99, 122, 125, 123, 119, 126, 118, 129, 124, 114, 123, 115, 127, 128, 125, 126, 118, 123, 125, 88, 125, 126, 125, 102, 123, 130, 123, 126, 138, 119, 119, 132, 116, 125, 136, 120, 151, 122, 131, 122, 134, 116, 121, 113, 133, 115, 119, 119, 127, 123, 128, 128, 116, 124, 124, 137, 130, 127, 121, 122, 115, 114, 121, 117, 133, 120, 117, 107, 113, 116, 122, 125, 127, 121, 122, 141, 122, 122, 119, 122, 140, 114, 128, 132, 125, 121, 142, 126, 129, 114, 124, 143, 109, 131, 114, 124, 134, 128, 117, 121, 115, 123, 132, 118, 114, 122, 130, 119, 118, 117, 123, 118, 126, 128, 114, 118, 119, 122, 122, 123, 130, 101, 101, 125, 119, 117, 125, 120, 116, 125, 119, 131, 120, 127, 139, 123, 118, 128, 121, 124, 123, 115, 128, 129, 124, 122, 141, 115, 136, 111, 122, 122, 130, 125, 123, 112, 135, 118, 125, 143, 121, 124, 136, 114, 130, 112, 118, 135, 119, 119, 122, 121, 120, 125, 121, 118, 121, 120, 127, 119, 113, 122, 124, 140, 112, 124, 111, 129, 124, 128, 129, 129, 131, 107, 123, 120, 123, 126, 136, 117, 112, 130, 112, 114, 122, 128, 137, 122, 130, 130, 114, 132, 107, 115, 126, 119, 127, 126, 126, 120, 112, 137, 121, 119, 131, 124, 113, 124, 135, 123, 116, 128, 125, 130, 112, 120, 126, 135, 132, 135, 123, 132, 127, 119, 122, 126, 132, 121, 124, 128, 129, 123, 134, 133, 128, 133, 115, 131, 124, 137, 111, 122, 114, 120, 135, 122, 122, 113, 128, 115, 123, 126, 129, 129, 126, 129, 137, 131, 131, 116, 121, 133, 119, 132, 111, 136, 125, 127, 117, 120, 124, 132, 138, 152, 140, 123, 122, 124, 146, 120, 120, 137, 143, 123, 135, 120, 121, 122, 116, 126, 121, 160, 129, 134, 135, 121, 125, 154, 126, 147, 135, 139, 122, 124, 119, 131, 134, 122, 127, 112, 123, 117, 122, 128, 116, 126, 149, 127, 120, 118, 118, 114, 117, 123, 123, 142, 121, 125, 124, 116, 122, 128, 188, 133, 133, 119, 120, 124, 120, 126, 105, 117, 105, 116, 129, 119, 126, 129, 123, 122, 112, 127, 133, 119, 107, 132, 117, 116, 116, 121, 140, 120, 117, 126, 107, 121, 126, 127, 126, 119, 134, 124, 117, 135, 108, 122, 114, 121, 156, 133, 117, 148, 144, 112, 125, 118, 117, 142, 126, 126, 117, 115, 141, 124, 116, 111, 117, 128, 136, 159, 135, 122, 118, 111, 131, 120, 140, 125, 119, 130, 133, 124, 108, 119, 122, 126, 110, 133, 117, 125, 112, 132, 110, 120, 117, 131, 181, 119, 114, 132, 133, 142, 125, 126, 126, 123, 126, 129, 149, 129, 127, 124, 138, 123, 126, 113, 115, 152, 121, 121, 126, 117, 119, 125, 122, 116, 112, 126, 130, 117, 117, 131, 143, 88, 134, 121, 118, 130, 120, 120, 119, 121, 126, 132, 115, 132, 128, 134, 126, 120, 122, 119, 123, 119, 123, 126, 126, 126, 111, 129, 120, 122, 121, 158, 124, 130, 115, 117, 123, 120, 122, 112, 118, 129, 126, 126, 119, 118, 124, 114, 149, 116, 135, 125, 134, 97, 120, 137, 129, 128, 110, 133, 127, 140, 125, 125, 122, 133, 128, 119, 126, 135, 125, 125, 120, 115, 131, 118, 121, 121, 125, 134, 125, 127, 200, 125, 110, 128, 131, 128, 131, 168, 145, 125, 128, 130, 121, 129, 119, 111, 101, 135, 127, 118, 125, 122, 125, 121, 120, 156, 128, 123, 127, 139, 126, 125, 137, 115, 127, 136, 130, 115, 127, 117, 127, 124, 132, 117, 124, 117, 116, 125, 118, 114, 107, 130, 125, 87, 120, 117, 138, 130, 121, 127, 123, 120, 89, 123, 124, 129, 129, 131, 134, 124, 155, 122, 129, 136, 116, 120, 118, 132, 120, 126, 117, 129, 140, 128, 144, 107, 121, 124, 114, 115, 131, 122, 120, 132, 118, 126, 141, 135, 133, 114, 113, 128, 135, 126, 122, 133, 111, 133, 120, 121, 114, 127, 132, 126, 116, 123, 125, 124, 130, 128, 129, 134, 124, 141, 118, 131, 118, 123, 111, 120, 100, 135, 121, 130, 115, 128, 121, 119, 137, 127, 138, 115, 124, 124, 150, 125, 127, 120, 117, 131, 132, 124, 127, 112, 122, 114, 134, 122, 114, 127, 122, 105, 121, 114, 130, 133, 124, 127, 114, 131, 126, 124, 115, 126, 127, 115, 126, 127, 114, 127, 152, 135, 128, 124, 101, 128, 118, 125, 124, 134, 115, 117, 123, 98, 128, 130, 125, 119, 127, 128, 132, 125, 106, 131, 127, 130, 124, 130, 113, 120, 114, 120, 134, 108, 116, 126, 118, 143, 128, 136, 106, 125, 119, 107, 117, 119, 124, 115, 127, 126, 137, 125, 123, 127, 115, 130, 135, 148, 150, 126, 144, 123, 134, 129, 142, 117, 128, 126, 141, 105, 115, 136, 95, 111, 105, 130, 141, 120, 108, 157, 116, 96, 118, 133, 138, 127, 137, 123, 133, 89, 115, 90, 109, 79, 99, 111, 101, 122, 125, 142, 104, 132, 131, 123, 117, 130, 126, 142, 129, 112, 150, 121, 123, 140, 136, 140, 123, 138, 118, 136, 142, 113, 106, 136, 113, 145, 122, 85, 133, 137, 107, 126, 92, 104, 131, 105, 126, 115, 123, 132, 126, 132, 124, 134, 124, 110, 103, 133, 106, 126, 106, 89, 90, 125, 123, 141, 126, 131, 123, 92, 129, 101, 105, 136, 126, 118, 111, 136, 122, 90, 118, 121, 150, 129, 133, 159, 128, 121, 110, 119, 92, 103, 125, 123, 96, 103, 129, 91, 143, 82, 108, 107, 88, 126, 91, 111, 107, 125, 111, 112, 103, 120, 116, 135, 129, 152, 113, 145, 143, 92, 120, 152, 124, 129, 111, 124, 131, 127, 123, 111, 108, 140, 152, 123, 125, 129, 129, 110, 132, 108, 151, 108, 121, 98, 111, 105, 109, 124, 85, 129, 127, 134, 120, 135, 99, 136, 135, 127, 141, 132, 115, 102, 112, 121, 91, 109, 110, 103, 87, 130, 113, 167, 118, 155, 136, 127, 131, 104, 125, 108, 118, 121, 125, 118, 111, 116, 108, 108, 115, 120, 105, 132, 125, 138, 136, 94, 112, 126, 142, 117, 88, 134, 121, 112, 136, 134, 126, 117, 123, 125, 119, 131, 120, 123, 114, 131, 125, 119, 106, 125, 106, 136, 132, 131, 125, 130, 121, 136, 130, 123, 130, 117, 123, 126, 114, 113, 95, 126, 72, 122, 131, 131, 118, 122, 123, 125, 137, 164, 100, 123, 141, 109, 129, 117, 132, 126, 121, 117, 115, 123, 116, 99, 116, 126, 132, 131, 123, 123, 130, 141, 121, 121, 124, 140, 120, 123, 135, 122, 120, 118, 125, 145, 125, 116, 120, 140, 122, 151, 136, 115, 127, 121, 123, 129, 117, 116, 133, 123, 126, 119, 129, 132, 122, 121, 116, 126, 121, 125, 123, 115, 123, 121, 121, 120, 122, 116, 118, 118, 122, 129, 124, 134, 119, 107, 126, 112, 130, 123, 119, 132, 118, 124, 130, 135, 122, 127, 135, 151, 124, 139, 123, 108, 127, 126, 127, 120, 134, 125, 125, 141, 123, 168, 130, 130, 133, 127, 116, 120, 108, 107, 171, 118, 125, 124, 76, 128, 97, 127, 128, 127, 113, 124, 122, 135, 122, 123, 123, 130, 124, 129, 126, 126, 128, 126, 124, 123, 122, 123, 122, 125, 121, 123, 147, 95, 127, 117, 122, 124, 126, 103, 118, 113, 111, 118, 110, 123, 122, 120, 124, 123, 130, 137, 95, 126, 131, 118, 123, 113, 146, 118, 121, 140, 113, 115, 112, 118, 112, 127, 136, 131, 123, 129, 133, 129, 125, 133, 127, 121, 124, 145, 121, 129, 126, 122, 126, 134, 100, 130, 127, 128, 115, 121, 88, 121, 116, 130, 110, 112, 131, 117, 124, 126, 125, 120, 115, 122, 130, 138, 117, 115, 120, 108, 120, 120, 130, 131, 122, 115, 124, 111, 132, 117, 132, 113, 123, 125, 119, 127, 129, 117, 119, 118, 120, 119, 125, 133, 132, 137, 124, 127, 127, 132, 131, 128, 117, 130, 127, 126, 122, 115, 111, 130, 129, 131, 114, 121, 126, 125, 107, 119, 118, 122, 131, 124, 149, 111, 129, 101, 129, 118, 111, 138, 127, 128, 116, 118, 135, 128, 121, 123, 146, 124, 123, 115, 125, 137, 124, 123, 126, 121, 128, 127, 118, 130, 135, 113, 127, 112, 113, 124, 121, 126, 118, 118, 127, 118, 132, 127, 128, 124, 127, 112, 109, 121, 136, 139, 126, 100, 129, 126, 128, 120, 127, 118, 126, 134, 123, 113, 122, 122, 114, 123, 124, 123, 131, 119, 127, 117, 113, 138, 129, 137, 122, 128, 116, 138, 123, 118, 122, 115, 141, 147, 126, 120, 127, 127, 130, 131, 123, 120, 128, 116, 125, 146, 122, 131, 125, 125, 121, 115, 138, 121, 139, 116, 126, 133, 118, 115, 132, 124, 124, 129, 130, 118, 129, 145, 124, 107, 132, 124, 121, 139, 115, 138, 117, 124, 124, 125, 130, 125, 124, 128, 132, 135, 125, 118, 130, 129, 143, 132, 130, 126, 112, 143, 114, 128, 135, 120, 114, 123, 119, 128, 110, 116, 131, 116, 145, 134, 128, 121, 124, 119, 124, 129, 111, 117, 110, 107, 107, 120, 120, 125, 116, 116, 130, 117, 119, 131, 122, 127, 120, 129, 131, 135, 123, 112, 115, 117, 119, 130, 115, 124, 116, 114, 110, 134, 136, 121, 107, 115, 126, 123, 118, 131, 110, 121, 125, 122, 128, 119, 112, 120, 122, 129, 132, 117, 128, 121, 131, 128, 126, 129, 120, 124, 164, 131, 125, 118, 120, 130, 137, 86, 125, 112, 125, 116, 119, 110, 115, 127, 111, 116, 130, 138, 116, 133, 112, 122, 127, 116, 124, 138, 116, 124, 129, 137, 119, 121, 127, 126, 120, 102, 113, 114, 117, 131, 123, 121, 113, 149, 123, 121, 122, 129, 106, 120, 115, 112, 122, 119, 116, 122, 117, 130, 118, 122, 124, 124, 125, 124, 120, 131, 120, 125, 149, 131, 117, 122, 128, 127, 127, 128, 126, 129, 121, 121, 126, 115, 141, 118, 121, 132, 132, 130, 117, 104, 122, 124, 116, 126, 132, 126, 126, 148, 126, 129, 114, 114, 132, 131, 126, 123, 117, 126, 127, 128, 119, 130, 115, 115, 125, 127, 133, 127, 124, 104, 126, 157, 115, 123, 126, 117, 126, 120, 110, 124, 120, 118, 127, 124, 123, 123, 115, 111, 131, 122, 137, 129, 141, 132, 122, 125, 125, 120, 119, 119, 107, 122, 132, 120, 122, 132, 124, 116, 120, 127, 124, 124, 127, 125, 113, 111, 127, 131, 135, 118, 130, 109, 117, 112, 121, 108, 119, 120, 116, 149, 114, 109, 125, 122, 122, 123, 115, 125, 123, 124, 120, 114, 117, 135, 125, 110, 124, 122, 128, 112, 142, 120, 118, 126, 119, 130, 128, 118, 123, 124, 126, 119, 126, 129, 129, 129, 123, 121, 119, 120, 113, 119, 133, 124, 129, 109, 122, 114, 120, 127, 99, 134, 125, 118, 116, 126, 106, 113, 111, 124, 122, 127, 126, 126, 138, 132, 121, 116, 124, 122, 126, 122, 140, 131, 129, 119, 136, 115, 134, 133, 129, 118, 121, 126, 95, 120, 101, 113, 155, 121, 118, 133, 133, 127, 112, 121, 120, 121, 129, 134, 114, 135, 130, 111, 117, 119, 92, 140, 101, 116, 130, 129, 127, 130, 127, 132, 143, 131, 120, 131, 124, 121, 108, 145, 122, 128, 122, 120, 139, 128, 120, 111, 109, 131, 118, 131, 134, 126, 127, 126, 102, 122, 103, 122, 122, 122, 120, 118, 137, 114, 134, 116, 125, 100, 127, 119, 152, 110, 126, 102, 127, 134, 125, 110, 130, 129, 121, 116, 126, 130, 126, 110, 124, 125, 103, 142, 118, 131, 127, 118, 119, 135, 120, 130, 129, 121, 122, 121, 136, 112, 126, 118, 122, 121, 129, 126, 125, 132, 131, 123, 120, 130, 119, 133, 121, 106, 126, 109, 121, 105, 126, 155, 120, 126, 128, 121, 126, 136, 129, 106, 141, 111, 125, 129, 126, 119, 129, 129, 132, 134, 127, 127, 123, 129, 130, 125, 122, 133, 133, 127, 127, 124, 133, 138, 147, 116, 120, 148, 137, 128, 128, 139, 123, 130, 101, 140, 108, 127, 112, 123, 126, 132, 152, 126, 117, 135, 107, 125, 122, 103, 114, 122, 104, 99, 117, 124, 128, 132, 136, 123, 128, 147, 112, 115, 136, 127, 140, 132, 119, 115, 113, 138, 106, 121, 115, 116, 134, 122, 117, 117, 135, 130, 124, 133, 111, 112, 124, 121, 112, 128, 129, 126, 115, 126, 125, 131, 142, 124, 132, 121, 112, 114, 112, 121, 125, 129, 120, 118, 123, 136, 126, 132, 116, 121, 130, 126, 112, 121, 127, 132, 121, 137, 138, 122, 103, 117, 120, 136, 115, 99, 141, 118, 120, 143, 124, 115, 113, 121, 128, 134, 114, 153, 120, 131, 130, 126, 116, 101, 131, 159, 122, 135, 99, 123, 131, 120, 107, 118, 103, 109, 114, 128, 117, 95, 138, 138, 120, 103, 127, 134, 131, 124, 115, 124, 123, 116, 119, 118, 115, 118, 122, 121, 123, 109, 115, 125, 123, 127, 120, 124, 113, 130, 134, 141, 90, 124, 104, 121, 123, 123, 103, 105, 113, 127, 142, 123, 128, 104, 118, 103, 134, 136, 110, 143, 97, 111, 124, 134, 120, 108, 123, 110, 122, 125, 123, 126, 126, 105, 115, 116, 101, 127, 119, 126, 116, 115, 124, 117, 92, 108, 123, 115, 112, 127, 117, 134, 125, 137, 130, 131, 139, 113, 102, 112, 110, 126, 128, 121, 126, 130, 99, 122, 117, 125, 106, 128, 134, 122, 104, 136, 100, 116, 126, 134, 114, 121, 120, 133, 122, 121, 151, 123, 113, 139, 108, 116, 124, 120, 116, 111, 143, 102, 122, 142, 83, 142, 124, 133, 126, 113, 123, 130, 123, 122, 134, 130, 119, 140, 136, 123, 95, 116, 105, 134, 82, 111, 113, 129, 111, 127, 126, 120, 134, 117, 117, 111, 133, 103, 119, 123, 132, 129, 117, 125, 121, 118, 76, 115, 113, 122, 115, 124, 120, 111, 129, 134, 118, 116, 127, 136, 107, 122, 142, 95, 140, 119, 117, 155, 134, 135, 120, 143, 124, 134, 128, 120, 115, 131, 123, 122, 132, 115, 116, 127, 118, 118, 125, 123, 134, 114, 131, 130, 131, 130, 128, 119, 123, 112, 115, 120, 121, 142, 108, 123, 120, 146, 122, 127, 124, 110, 131, 133, 138, 125, 132, 119, 138, 143, 152, 118, 123, 116, 130, 107, 131, 108, 126, 129, 121, 123, 120, 162, 115, 134, 109, 126, 99, 120, 124, 121, 113, 97, 122, 124, 130, 125, 118, 99, 118, 121, 127, 140, 118, 126, 112, 135, 105, 120, 143, 151, 126, 133, 114, 123, 129, 123, 126, 132, 144, 118, 118, 126, 112, 128, 124, 128, 132, 126, 137, 133, 125, 131, 116, 118, 121, 114, 126, 124, 119, 119, 127, 115, 117, 125, 120, 120, 107, 133, 123, 119, 125, 131, 128, 114, 124, 128, 108, 117, 96, 116, 121, 131, 133, 127, 128, 131, 125, 124, 123, 123, 113, 132, 120, 139, 141, 124, 120, 117, 112, 113, 117, 128, 120, 117, 123, 122, 125, 147, 121, 104, 146, 116, 135, 130, 126, 123, 118, 130, 121, 116, 121, 125, 119, 132, 123, 127, 128, 110, 128, 113, 117, 111, 122, 129, 157, 98, 100, 115, 170, 124, 122, 128, 93, 129, 156, 103, 121, 124, 111, 115, 117, 123, 135, 150, 123, 109, 124, 118, 118, 125, 127, 131, 119, 113, 116, 143, 108, 137, 126, 125, 120, 115, 130, 120, 128, 125, 122, 132, 120, 124, 119, 126, 112, 119, 124, 123, 124, 126, 127, 129, 128, 127, 113, 118, 124, 121, 122, 123, 128, 123, 129, 126, 103, 133, 127, 129, 127, 123, 126, 136, 106, 122, 118, 120, 125, 122, 130, 119, 149, 131, 129, 123, 120, 125, 118, 122, 122, 88, 123, 122, 127, 137, 134, 160, 126, 128, 129, 130, 131, 142, 119, 135, 125, 126, 132, 132, 135, 122, 121, 120, 122, 113, 144, 126, 120, 173, 124, 123, 124, 139, 115, 134, 117, 127, 175, 123, 123, 127, 123, 121, 135, 128, 118, 119, 121, 125, 122, 131, 128, 121, 125, 130, 120, 121, 119, 117, 97, 149, 114, 144, 138, 123, 128, 138, 128, 123, 122, 137, 116, 125, 126, 137, 118, 121, 122, 131, 118, 136, 121, 120, 126, 120, 146, 122, 129, 121, 122, 127, 125, 119, 114, 123, 129, 125, 132, 100, 125, 132, 126, 115, 122, 120, 121, 129, 115, 128, 122, 123, 118, 118, 124, 119, 130, 131, 117, 122, 106, 123, 121, 123, 130, 118, 124, 122, 115, 126, 117, 122, 131, 117, 125, 127, 115, 106, 120, 121, 131, 124, 131, 113, 123, 116, 124, 127, 118, 126, 124, 129, 118, 113, 126, 120, 99, 87, 122, 130, 153, 122, 150, 130, 127, 103, 125, 114, 121, 130, 134, 126, 132, 123, 131, 127, 122, 124, 113, 128, 120, 126, 118, 121, 129, 127, 116, 117, 127, 131, 116, 137, 134, 128, 140, 125, 153, 127, 134, 141, 117, 122, 111, 127, 132, 125, 120, 126, 109, 125, 125, 126, 121, 125, 117, 124, 120, 118, 117, 131, 123, 141, 105, 122, 118, 130, 103, 125, 125, 119, 130, 135, 123, 131, 128, 117, 136, 120, 101, 137, 122, 122, 122, 113, 126, 130, 108, 121, 113, 126, 112, 123, 134, 123, 124, 118, 118, 112, 129, 111, 108, 115, 125, 113, 119, 117, 120, 127, 130, 120, 127, 117, 117, 123, 122, 141, 127, 116, 117, 127, 128, 132, 132, 130, 126, 114, 126, 125, 128, 118, 120, 135, 124, 131, 118, 132, 119, 130, 117, 114, 126, 152, 136, 120, 120, 125, 136, 115, 121, 119, 129, 120, 131, 128, 131, 123, 140, 123, 114, 124, 116, 124, 135, 112, 116, 116, 128, 141, 123, 133, 133, 116, 121, 118, 125, 118, 118, 96, 122, 142, 126, 108, 119, 112, 120, 126, 125, 124, 123, 98, 131, 118, 104, 113, 113, 121, 126, 128, 121, 120, 111, 110, 130, 119, 130, 124, 132, 120, 127, 131, 120, 121, 139, 160, 132, 103, 122, 130, 122, 127, 114, 131, 139, 122, 124, 132, 110, 130, 122, 105, 104, 109, 111, 115, 125, 132, 123, 126, 141, 112, 114, 149, 126, 118, 129, 101, 122, 143, 131, 115, 132, 118, 105, 131, 113, 127, 134, 128, 129, 137, 126, 127, 125, 127, 123, 127, 126, 118, 138, 90, 126, 126, 128, 119, 110, 127, 109, 109, 121, 130, 115, 115, 107, 128, 122, 124, 119, 146, 133, 124, 114, 121, 120, 129, 117, 134, 102, 123, 109, 140, 133, 110, 124, 120, 133, 120, 121, 100, 117, 107, 127, 123, 110, 120, 116, 128, 138, 118, 126, 120, 121, 116, 116, 113, 130, 130, 124, 131, 136, 125, 124, 141, 125, 130, 122, 126, 124, 132, 135, 128, 124, 133, 133, 121, 125, 138, 128, 119, 118, 130, 121, 129, 118, 122, 122, 113, 122, 122, 108, 136, 117, 122, 128, 153, 115, 130, 158, 107, 125, 111, 115, 136, 120, 113, 114, 116, 115, 124, 124, 123, 126, 127, 130, 123, 133, 114, 140, 131, 117, 115, 131, 123, 134, 114, 133, 127, 123, 124, 130, 153, 120, 130, 129, 128, 134, 146, 119, 166, 133, 120, 125, 125, 127, 125, 127, 100, 132, 126, 120, 121, 115, 127, 119, 135, 119, 120, 118, 124, 127, 126, 125, 136, 133, 121, 121, 132, 135, 139, 126, 115, 124, 124, 139, 124, 126, 125, 129, 124, 128, 114, 126, 141, 129, 138, 120, 131, 127, 121, 148, 124, 116, 127, 133, 135, 108, 115, 119, 122, 164, 123, 132, 120, 123, 117, 120, 124, 124, 124, 125, 132, 124, 117, 127, 120, 130, 127, 132, 129, 125, 144, 122, 116, 120, 117, 132, 112, 120, 122, 125, 129, 129, 126, 123, 117, 129, 122, 136, 118, 129, 114, 112, 125, 119, 148, 134, 132, 125, 125, 125, 127, 108, 123, 130, 109, 144, 125, 139, 171, 124, 127, 117, 118, 126, 129, 128, 125, 123, 126, 126, 107, 127, 129, 129, 123, 121, 119, 121, 110, 126, 136, 119, 125, 119, 122, 119, 116, 122, 133, 119, 121, 119, 113, 126, 125, 109, 114, 117, 107, 119, 149, 124, 124, 125, 127, 111, 122, 119, 136, 123, 123, 115, 114, 123, 122, 130, 114, 127, 120, 114, 139, 132, 127, 120, 154, 112, 138, 122, 83, 95, 140, 132, 129, 127, 126, 133, 108, 124, 123, 123, 124, 135, 129, 123, 114, 141, 113, 129, 125, 117, 119, 106, 116, 114, 134, 109, 125, 124, 120, 125, 134, 119, 121, 122, 102, 129, 124, 127, 123, 131, 105, 125, 123, 124, 128, 119, 131, 120, 121, 115, 125, 122, 118, 137, 120, 121, 125, 137, 125, 131, 128, 127, 135, 119, 122, 116, 132, 125, 139, 130, 115, 115, 147, 122, 141, 117, 118, 115, 107, 122, 102, 129, 93, 122, 117, 125, 117, 118, 127, 127, 138, 129, 123, 132, 116, 116, 138, 123, 141, 149, 130, 143, 137, 113, 121, 135, 130, 95, 129, 148, 109, 118, 120, 140, 117, 127, 149, 123, 130, 108, 119, 125, 112, 123, 128, 143, 162, 132, 123, 114, 121, 137, 114, 109, 122, 135, 129, 117, 108, 137, 130, 133, 131, 106, 131, 121, 113, 136, 123, 121, 119, 117, 99, 114, 132, 137, 130, 124, 125, 116, 118, 122, 120, 117, 102, 125, 114, 124, 130, 128, 131, 115, 125, 123, 128, 120, 122, 116, 126, 122, 127, 127, 126, 123, 123, 129, 133, 122, 126, 116, 107, 112, 124, 122, 149, 132, 122, 119, 111, 124, 93, 130, 117, 129, 139, 132, 113, 140, 131, 102, 118, 110, 135, 116, 127, 114, 117, 129, 124, 112, 139, 124, 118, 120, 128, 130, 123, 132, 138, 132, 118, 126, 124, 129, 121, 122, 112, 120, 123, 118, 132, 121, 125, 120, 128, 120, 123, 123, 119, 125, 124, 127, 121, 126, 122, 122, 124, 134, 120, 125, 115, 125, 123, 121, 128, 128, 124, 130, 119, 117, 131, 125, 124, 126, 125, 126, 154, 123, 124, 122, 122, 136, 126, 120, 124, 125, 117, 118, 123, 132, 119, 126, 112, 126, 124, 120, 115, 132, 122, 123, 124, 128, 111, 116, 108, 122, 130, 137, 120, 122, 122, 123, 161, 127, 117, 124, 129, 125, 116, 128, 134, 122, 125, 126, 126, 131, 124, 121, 127, 125, 125, 117, 127, 130, 128, 115, 120, 133, 123, 127, 121, 120, 116, 128, 131, 121, 111, 112, 129, 123, 117, 126, 120, 124, 127, 125, 118, 124, 120, 118, 126, 121, 121, 123, 128, 129, 131, 132, 120, 119, 121, 121, 124, 126, 133, 118, 130, 110, 127, 123, 122, 122, 128, 121, 128, 124, 134, 114, 135, 125, 133, 121, 120, 132, 131, 121, 131, 117, 123, 121, 119, 120, 134, 125, 124, 127, 141, 126, 126, 128, 120, 120, 124, 119, 137, 121, 127, 117, 118, 131, 124, 130, 127, 125, 122, 127, 125, 123, 124, 124, 127, 142, 132, 78, 128, 118, 129, 144, 122, 114, 162, 121, 125, 117, 136, 124, 122, 128, 138, 125, 129, 122, 125, 121, 120, 130, 127, 129, 119, 128, 141, 123, 122, 120, 132, 123, 124, 124, 124, 123, 122, 137, 125, 129, 121, 138, 127, 132, 128, 113, 123, 93, 118, 108, 122, 117, 131, 120, 127, 123, 127, 116, 130, 126, 104, 123, 128, 128, 129, 121, 116, 134, 117, 117, 123, 122, 126, 112, 121, 112, 129, 120, 118, 116, 134, 110, 117, 116, 128, 123, 109, 128, 127, 122, 132, 119, 123, 123, 128, 115, 118, 110, 115, 121, 126, 120, 134, 142, 124, 130, 118, 121, 127, 103, 122, 115, 128, 128, 122, 135, 126, 122, 125, 121, 124, 123, 129, 117, 138, 123, 118, 127, 137, 130, 123, 104, 117, 117, 122, 132, 116, 124, 113, 119, 128, 134, 104, 140, 122, 123, 122, 120, 112, 125, 125, 128, 148, 115, 117, 132, 116, 124, 120, 121, 128, 122, 121, 128, 134, 121, 119, 119, 122, 121, 114, 118, 121, 126, 104, 105, 116, 122, 111, 123, 113, 121, 132, 109, 129, 127, 114, 111, 121, 125, 123, 120, 114, 105, 108, 132, 121, 124, 107, 123, 122, 127, 124, 131, 124, 129, 121, 121, 114, 125, 129, 129, 126, 113, 119, 134, 106, 121, 119, 124, 123, 120, 114, 131, 121, 118, 125, 124, 117, 123, 137, 104, 118, 136, 132, 115, 143, 128, 123, 119, 130, 117, 129, 117, 117, 119, 123, 130, 110, 119, 117, 125, 136, 121, 127, 124, 125, 126, 115, 126, 122, 125, 123, 113, 114, 125, 126, 125, 112, 120, 132, 126, 123, 114, 140, 118, 116, 113, 120, 113, 115, 134, 126, 129, 119, 119, 120, 116, 119, 114, 126, 116, 118, 102, 120, 134, 116, 105, 113, 101, 129, 125, 119, 124, 127, 121, 131, 124, 131, 120, 128, 121, 124, 129, 124, 125, 120, 121, 133, 118, 159, 130, 132, 129, 123, 125, 117, 139, 121, 113, 126, 126, 134, 126, 121, 122, 126, 134, 125, 127, 150, 112, 124, 122, 128, 133, 131, 126, 127, 115, 124, 114, 128, 120, 129, 132, 126, 134, 131, 122, 128, 118, 122, 127, 128, 125, 132, 117, 97, 126, 136, 127, 122, 127, 133, 132, 123, 126, 126, 125, 129, 147, 121, 125, 117, 119, 127, 133, 131, 121, 132, 124, 127, 138, 124, 131, 111, 123, 123, 132, 120, 103, 120, 126, 103, 125, 125, 118, 114, 127, 124, 116, 124, 135, 124, 117, 131, 130, 125, 126, 121, 119, 137, 141, 124, 114, 132, 131, 120, 118, 134, 131, 126, 126, 121, 126, 128, 131, 125, 119, 124, 125, 132, 120, 132, 125, 119, 126, 129, 109, 126, 127, 132, 168, 125, 123, 135, 136, 128, 136, 123, 134, 118, 108, 124, 123, 123, 121, 124, 128, 121, 89, 123, 120, 120, 125, 124, 127, 122, 128, 106, 117, 125, 130, 128, 150, 88, 132, 127, 111, 107, 123, 121, 128, 124, 128, 123, 130, 124, 129, 131, 121, 104, 129, 128, 120, 130, 128, 83, 127, 124, 117, 136, 133, 116, 119, 122, 121, 119, 131, 126, 112, 126, 131, 123, 107, 117, 118, 126, 117, 117, 133, 123, 121, 126, 124, 139, 128, 129, 199, 131, 121, 122, 124, 130, 133, 128, 130, 126, 124, 129, 121, 131, 120, 125, 132, 136, 139, 116, 130, 122, 116, 121, 128, 111, 111, 119, 119, 116, 118, 134, 132, 120, 131, 94, 125, 117, 120, 117, 126, 134, 120, 133, 108, 114, 137, 117, 113, 110, 126, 127, 115, 113, 145, 126, 118, 123, 128, 111, 116, 103, 114, 118, 115, 119, 131, 129, 124, 116, 111, 104, 128, 106, 114, 122, 134, 110, 113, 121, 112, 119, 106, 117, 136, 120, 115, 122, 147, 124, 122, 106, 125, 140, 123, 123, 135, 124, 120, 133, 121, 140, 147, 112, 137, 120, 110, 127, 112, 122, 142, 131, 111, 113, 129, 128, 117, 133, 124, 105, 113, 142, 103, 94, 119, 136, 138, 111, 142, 119, 124, 121, 115, 123, 117, 114, 125, 142, 131, 113, 103, 133, 119, 142, 116, 113, 108, 122, 125, 119, 120, 108, 136, 122, 117, 124, 126, 73, 112, 122, 104, 108, 127, 66, 113, 126, 122, 136, 112, 135, 117, 107, 105, 132, 125, 127, 111, 125, 116, 111, 128, 112, 125, 126, 114, 124, 128, 122, 132, 135, 109, 106, 86, 119, 114, 116, 115, 123, 128, 129, 130, 133, 138, 105, 115, 119, 126, 96, 129, 103, 108, 152, 115, 113, 119, 109, 102, 105, 127, 111, 98, 123, 137, 119, 119, 132, 131, 133, 138, 109, 124, 129, 127, 129, 129, 142, 113, 122, 122, 111, 108, 123, 120, 186, 131, 119, 120, 129, 134, 121, 122, 126, 124, 139, 140, 137, 121, 116, 117, 111, 128, 138, 99, 154, 131, 128, 129, 114, 146, 117, 133, 124, 113, 110, 125, 124, 126, 131, 122, 125, 119, 128, 124, 127, 117, 122, 129, 76, 123, 125, 129, 117, 119, 124, 115, 128, 128, 121, 126, 126, 116, 124, 117, 130, 122, 118, 124, 118, 109, 118, 122, 131, 120, 119, 117, 117, 123, 118, 118, 132, 126, 139, 121, 126, 130, 117, 114, 83, 125, 120, 114, 130, 156, 132, 115, 125, 127, 128, 121, 127, 121, 131, 122, 139, 122, 126, 124, 107, 92, 123, 129, 130, 174, 135, 118, 97, 118, 127, 144, 124, 128, 121, 122, 119, 130, 128, 116, 117, 124, 126, 143, 117, 116, 124, 124, 121, 127, 132, 123, 130, 127, 121, 126, 119, 114, 122, 126, 125, 130, 120, 122, 120, 115, 118, 129, 126, 123, 131, 112, 128, 130, 124, 125, 128, 101, 114, 122, 122, 131, 130, 127, 134, 129, 139, 121, 116, 125, 127, 78, 132, 134, 125, 117, 129, 120, 133, 113, 129, 87, 130, 133, 123, 131, 127, 127, 123, 123, 102, 146, 103, 52, 181, 126, 122, 121, 131, 124, 108, 159, 130, 132, 119, 121, 106, 126, 124, 139, 108, 126, 117, 118, 129, 116, 126, 121, 108, 121, 119, 120, 123, 98, 125, 117, 113, 119, 129, 120, 131, 127, 135, 92, 129, 118, 117, 100, 121, 167, 118, 151, 128, 124, 138, 127, 128, 125, 160, 120, 129, 120, 124, 128, 129, 127, 124, 124, 122, 125, 126, 142, 125, 121, 143, 118, 118, 123, 127, 125, 126, 126, 122, 126, 121, 116, 130, 121, 124, 120, 120, 126, 119, 126, 131, 126, 120, 126, 146, 135, 121, 127, 117, 120, 123, 124, 127, 120, 126, 123, 129, 120, 123, 127, 127, 122, 126, 126, 128, 121, 122, 136, 122, 133, 129, 118, 125, 123, 134, 128, 125, 125, 122, 138, 125, 126, 112, 131, 123, 125, 137, 121, 120, 132, 126, 124, 109, 125, 120, 129, 123, 111, 126, 132, 125, 129, 124, 122, 122, 131, 122, 122, 125, 123, 121, 126, 131, 116, 126, 126, 125, 117, 112, 123, 138, 126, 126, 121, 120, 125, 123, 127, 168, 120, 123, 131, 140, 129, 154, 115, 136, 129, 126, 117, 135, 126, 115, 123, 128, 127, 128, 124, 117, 132, 124, 124, 122, 123, 120, 127, 126, 124, 113, 126, 127, 129, 121, 143, 124, 135, 120, 125, 122, 125, 125, 131, 122, 114, 124, 123, 123, 128, 125, 121, 128, 123, 129, 120, 128, 124, 122, 133, 125, 126, 128, 131, 122, 140, 119, 126, 122, 124, 125, 125, 123, 124, 124, 125, 124, 132, 117, 122, 121, 126, 126, 125, 129, 138, 123, 125, 125, 120, 123, 115, 115, 135, 118, 129, 124, 126, 124, 128, 121, 125, 127, 119, 122, 122, 124, 120, 124, 125, 122, 126, 118, 117, 135, 125, 121, 131, 123, 114, 139, 107, 127, 122, 137, 148, 125, 123, 159, 120, 130, 124, 120, 124, 118, 129, 110, 126, 124, 127, 126, 127, 128, 132, 124, 125, 124, 129, 119, 124, 121, 123, 122, 119, 123, 122, 119, 129, 123, 127, 127, 125, 123, 123, 125, 125, 126, 112, 115, 113, 120, 106, 124, 123, 133, 121, 126, 145, 103, 136, 125, 111, 104, 99, 126, 144, 118, 122, 101, 138, 115, 126, 118, 127, 121, 127, 107, 132, 89, 137, 130, 121, 115, 70, 95, 137, 124, 132, 115, 130, 124, 142, 125, 114, 141, 118, 127, 125, 81, 122, 121, 133, 118, 118, 114, 126, 131, 127, 109, 95, 133, 95, 123, 122, 123, 148, 114, 114, 104, 122, 127, 122, 119, 126, 99, 116, 119, 157, 110, 118, 121, 125, 142, 127, 128, 134, 130, 118, 129, 133, 123, 98, 125, 127, 136, 135, 122, 123, 126, 131, 98, 125, 138, 119, 123, 111, 127, 116, 115, 116, 98, 125, 129, 142, 118, 136, 129, 123, 134, 128, 76, 124, 120, 105, 118, 117, 119, 86, 91, 88, 134, 114, 108, 117, 100, 111, 117, 126, 137, 101, 138, 120, 125, 114, 113, 113, 120, 132, 136, 144, 121, 128, 138, 95, 124, 112, 132, 121, 124, 99, 121, 123, 130, 124, 132, 111, 108, 119, 86, 122, 96, 130, 132, 98, 120, 112, 130, 90, 138, 113, 120, 114, 127, 96, 125, 138, 126, 115, 146, 116, 121, 113, 125, 82, 131, 117, 124, 129, 120, 106, 117, 112, 108, 141, 143, 123, 115, 118, 117, 134, 113, 121, 124, 110, 125, 141, 95, 120, 127, 135, 114, 131, 133, 123, 101, 101, 133, 143, 94, 92, 136, 105, 139, 118, 119, 122, 122, 99, 141, 130, 126, 123, 109, 123, 109, 133, 143, 113, 127, 86, 108, 116, 146, 135, 135, 117, 131, 125, 128, 136, 123, 97, 119, 96, 117, 118, 123, 105, 122, 123, 128, 104, 123, 119, 128, 132, 103, 117, 112, 138, 124, 117, 108, 125, 111, 137, 103, 153, 106, 141, 103, 108, 120, 120, 113, 105, 105, 107, 120, 128, 139, 135, 137, 118, 133, 135, 121, 108, 92, 140, 104, 119, 120, 119, 139, 118, 122, 155, 135, 122, 121, 118, 118, 145, 136, 117, 124, 112, 126, 121, 127, 132, 119, 124, 119, 116, 123, 118, 118, 104, 129, 154, 123, 115, 107, 130, 116, 136, 129, 116, 117, 115, 118, 119, 112, 132, 125, 138, 124, 106, 119, 135, 138, 124, 109, 116, 122, 117, 133, 111, 145, 116, 124, 121, 151, 104, 136, 120, 120, 139, 131, 121, 123, 154, 125, 115, 129, 118, 127, 121, 138, 116, 120, 119, 109, 129, 112, 127, 125, 120, 121, 114, 110, 125, 124, 113, 138, 125, 131, 126, 130, 119, 118, 147, 150, 122, 137, 131, 122, 117, 129, 95, 130, 124, 143, 109, 136, 126, 124, 91, 118, 99, 113, 115, 127, 130, 129, 113, 121, 135, 113, 138, 121, 136, 119, 125, 125, 132, 108, 140, 139, 110, 110, 94, 115, 125, 142, 127, 135, 122, 137, 124, 134, 131, 133, 123, 125, 125, 122, 126, 122, 126, 153, 109, 127, 110, 132, 116, 124, 136, 129, 124, 125, 106, 112, 146, 133, 138, 109, 121, 126, 133, 110, 125, 112, 117, 105, 126, 121, 130, 127, 117, 113, 91, 121, 131, 120, 115, 119, 127, 125, 124, 111, 137, 126, 125, 111, 130, 120, 105, 117, 108, 117, 105, 117, 105, 131, 126, 127, 121, 121, 91, 117, 121, 138, 137, 113, 125, 125, 122, 126, 123, 113, 120, 122, 126, 113, 126, 129, 124, 122, 126, 126, 121, 118, 149, 120, 127, 156, 118, 117, 122, 125, 111, 114, 125, 145, 121, 133, 126, 140, 123, 133, 120, 112, 108, 125, 121, 128, 116, 120, 109, 125, 127, 123, 120, 126, 121, 119, 119, 126, 128, 124, 118, 128, 126, 127, 102, 128, 134, 124, 132, 132, 116, 130, 124, 124, 115, 124, 125, 130, 137, 134, 117, 137, 120, 125, 125, 134, 124, 123, 143, 114, 125, 123, 121, 116, 118, 120, 122, 129, 126, 128, 135, 114, 121, 144, 122, 122, 128, 119, 124, 113, 126, 123, 117, 118, 128, 123, 108, 122, 107, 127, 124, 127, 112, 117, 121, 127, 126, 127, 123, 120, 122, 122, 120, 122, 121, 110, 138, 138, 118, 115, 117, 124, 124, 125, 136, 121, 129, 123, 157, 122, 127, 103, 128, 160, 107, 124, 124, 122, 110, 122, 126, 119, 118, 136, 96, 127, 130, 126, 112, 139, 119, 131, 121, 142, 103, 130, 122, 121, 113, 122, 128, 128, 125, 125, 125, 129, 118, 141, 120, 124, 111, 113, 122, 125, 125, 122, 125, 125, 106, 143, 134, 131, 123, 121, 107, 123, 123, 136, 123, 116, 126, 111, 122, 121, 120, 123, 102, 109, 117, 145, 102, 90, 121, 159, 114, 127, 136, 126, 118, 153, 129, 125, 129, 134, 112, 127, 121, 114, 129, 126, 113, 148, 122, 120, 126, 137, 114, 123, 131, 111, 132, 140, 135, 124, 124, 127, 122, 123, 102, 127, 140, 123, 127, 111, 140, 138, 116, 121, 110, 141, 121, 103, 121, 108, 141, 113, 133, 127, 128, 149, 155, 102, 138, 116, 123, 121, 131, 117, 115, 113, 138, 121, 100, 121, 119, 122, 122, 127, 133, 125, 123, 131, 132, 135, 131, 81, 123, 135, 152, 127, 119, 131, 120, 118, 120, 134, 163, 129, 124, 110, 120, 101, 121, 132, 75, 119, 124, 139, 116, 112, 106, 119, 151, 121, 137, 147, 118, 164, 118, 136, 118, 119, 111, 123, 120, 127, 117, 119, 130, 132, 145, 140, 108, 147, 134, 118, 134, 126, 128, 124, 120, 120, 101, 112, 118, 118, 130, 125, 124, 139, 114, 114, 117, 116, 118, 134, 136, 104, 138, 115, 86, 124, 101, 128, 130, 143, 116, 126, 116, 132, 111, 122, 119, 123, 123, 145, 111, 122, 121, 114, 121, 116, 120, 116, 121, 120, 113, 121, 122, 119, 117, 125, 117, 83, 152, 129, 130, 116, 113, 124, 135, 137, 129, 82, 113, 128, 115, 133, 128, 129, 127, 119, 121, 156, 113, 114, 140, 117, 115, 161, 139, 102, 136, 120, 123, 146, 145, 116, 110, 142, 124, 115, 128, 129, 120, 124, 104, 134, 134, 129, 129, 104, 117, 120, 142, 114, 145, 119, 125, 142, 82, 110, 123, 119, 123, 117, 122, 131, 138, 126, 117, 121, 133, 128, 110, 127, 110, 121, 120, 117, 125, 116, 124, 121, 125, 114, 129, 127, 133, 121, 123, 126, 117, 124, 136, 127, 114, 132, 145, 134, 126, 132, 146, 135, 122, 115, 119, 133, 139, 123, 123, 123, 129, 127, 120, 123, 125, 110, 120, 138, 125, 128, 178, 121, 143, 128, 123, 126, 135, 113, 133, 126, 135, 113, 115, 133, 114, 133, 118, 127, 130, 127, 116, 125, 116, 125, 135, 131, 104, 134, 132, 120, 124, 118, 130, 116, 127, 124, 119, 120, 124, 118, 123, 128, 127, 127, 122, 124, 135, 118, 130, 119, 106, 116, 119, 124, 112, 125, 126, 127, 125, 131, 107, 134, 130, 113, 118, 117, 126, 126, 129, 131, 126, 147, 166, 130, 124, 132, 117, 127, 131, 136, 117, 137, 121, 118, 126, 122, 130, 119, 124, 142, 135, 129, 129, 118, 111, 118, 127, 121, 121, 168, 129, 128, 128, 115, 121, 124, 115, 125, 125, 125, 124, 139, 127, 124, 124, 124, 97, 124, 124, 128, 129, 117, 131, 125, 131, 135, 119, 119, 134, 124, 126, 144, 122, 116, 118, 117, 128, 123, 114, 128, 126, 107, 118, 125, 109, 122, 127, 125, 121, 119, 123, 131, 131, 129, 124, 132, 123, 129, 112, 131, 133, 131, 124, 112, 119, 127, 124, 136, 140, 126, 125, 119, 128, 123, 152, 116, 142, 134, 140, 121, 130, 133, 116, 124, 128, 121, 156, 128, 126, 116, 129, 163, 119, 127, 119, 151, 127, 126, 119, 132, 132, 125, 134, 116, 138, 160, 109, 125, 122, 123, 126, 116, 112, 121, 118, 123, 126, 126, 126, 140, 125, 121, 146, 130, 118, 130, 135, 119, 119, 122, 139, 131, 124, 136, 111, 116, 133, 129, 130, 124, 120, 115, 121, 117, 135, 131, 117, 116, 120, 147, 120, 122, 134, 118, 131, 128, 129, 126, 123, 129, 138, 119, 131, 113, 127, 126, 120, 139, 128, 104, 127, 126, 117, 132, 121, 116, 114, 123, 143, 131, 123, 121, 128, 143, 120, 135, 123, 128, 119, 125, 124, 119, 122, 121, 122, 138, 135, 143, 141, 122, 132, 127, 112, 117, 125, 133, 133, 132, 128, 120, 139, 135, 121, 118, 141, 132, 132, 122, 121, 115, 121, 132, 132, 105, 123, 99, 124, 140, 114, 137, 119, 123, 130, 117, 125, 160, 127, 122, 111, 119, 124, 136, 122, 114, 133, 124, 132, 107, 111, 139, 115, 122, 103, 124, 110, 120, 118, 132, 142, 122, 116, 140, 135, 126, 127, 123, 118, 111, 136, 126, 120, 125, 120, 127, 122, 124, 126, 124, 135, 123, 122, 107, 112, 140, 131, 109, 122, 113, 102, 118, 138, 118, 116, 119, 125, 109, 138, 132, 102, 110, 123, 129, 120, 111, 136, 117, 130, 127, 119, 135, 127, 125, 135, 120, 129, 115, 111, 115, 123, 127, 119, 119, 121, 127, 120, 110, 123, 138, 125, 134, 132, 128, 134, 122, 142, 131, 126, 117, 130, 130, 122, 121, 126, 116, 112, 132, 123, 123, 134, 119, 117, 114, 132, 134, 115, 116, 144, 121, 134, 123, 117, 131, 126, 119, 138, 124, 110, 120, 133, 120, 129, 143, 133, 125, 119, 128, 119, 127, 122, 129, 124, 127, 141, 143, 125, 117, 121, 122, 118, 118, 132, 131, 116, 122, 125, 146, 119, 116, 123, 140, 118, 127, 125, 116, 131, 154, 128, 115, 120, 121, 127, 117, 116, 134, 126, 121, 118, 130, 125, 157, 128, 125, 124, 132, 128, 125, 123, 127, 120, 130, 117, 118, 136, 118, 117, 124, 124, 130, 117, 118, 117, 121, 118, 120, 114, 130, 127, 116, 124, 121, 119, 110, 121, 120, 130, 143, 122, 126, 126, 123, 119, 126, 178, 115, 123, 120, 123, 123, 132, 132, 139, 132, 138, 143, 113, 111, 128, 129, 118, 120, 135, 123, 126, 124, 121, 136, 118, 121, 121, 115, 138, 123, 127, 122, 163, 138, 114, 127, 136, 132, 143, 121, 128, 133, 127, 137, 132, 118, 125, 130, 155, 123, 124, 116, 140, 121, 110, 126, 128, 120, 132, 125, 119, 118, 117, 125, 121, 127, 132, 121, 121, 117, 123, 128, 123, 133, 128, 135, 123, 141, 119, 158, 131, 125, 132, 135, 126, 116, 127, 120, 125, 120, 134, 117, 166, 123, 114, 122, 128, 114, 121, 116, 146, 115, 152, 122, 126, 143, 122, 110, 117, 120, 124, 123, 120, 106, 117, 132, 114, 122, 124, 115, 127, 129, 133, 120, 129, 153, 124, 131, 131, 123, 114, 112, 110, 131, 136, 123, 120, 139, 126, 124, 108, 116, 122, 121, 115, 120, 131, 118, 117, 122, 127, 119, 130, 132, 124, 120, 119, 123, 132, 125, 113, 139, 116, 128, 119, 150, 126, 119, 119, 130, 116, 119, 114, 122, 117, 124, 131, 109, 109, 125, 118, 125, 130, 118, 114, 152, 121, 122, 134, 154, 132, 142, 122, 137, 94, 142, 119, 91, 128, 131, 131, 112, 126, 121, 120, 135, 112, 121, 117, 112, 102, 127, 126, 104, 125, 134, 109, 126, 119, 130, 114, 130, 122, 128, 129, 99, 114, 118, 121, 115, 123, 124, 129, 120, 111, 116, 112, 128, 114, 119, 116, 120, 123, 133, 123, 127, 131, 122, 129, 101, 130, 118, 145, 132, 129, 129, 123, 133, 116, 120, 107, 131, 115, 136, 134, 130, 119, 136, 122, 133, 124, 114, 126, 146, 125, 127, 126, 106, 123, 114, 118, 131, 121, 127, 117, 121, 122, 117, 114, 131, 103, 106, 133, 131, 108, 115, 133, 104, 149, 121, 134, 122, 147, 129, 116, 128, 131, 131, 126, 110, 123, 134, 116, 135, 119, 119, 124, 119, 117, 155, 109, 106, 133, 126, 121, 123, 109, 117, 110, 127, 122, 132, 122, 111, 130, 123, 117, 86, 131, 119, 124, 121, 135, 121, 125, 130, 125, 111, 125, 105, 115, 117, 115, 113, 127, 104, 122, 119, 118, 113, 111, 125, 142, 114, 113, 124, 140, 123, 115, 141, 120, 125, 111, 125, 124, 122, 123, 131, 128, 124, 117, 128, 117, 122, 107, 113, 115, 132, 112, 118, 121, 131, 123, 103, 135, 113, 128, 122, 129, 135, 129, 130, 135, 128, 115, 139, 102, 130, 122, 127, 122, 132, 120, 128, 117, 116};
+ model->setOperandValue(op56, op56_init, sizeof(uint8_t) * 65536);
+ static int32_t op58_init[] = {8192, 10583, -634, -390, 3031, 18442, 13861, 8686, 3844, -134, -596, 16090, 8189, -439, -1761, 2197, 601, -658, 1692, 13325, 19431, 13409, 28900, 9820, -4456, 73, 564, 10928, 10775, 10520, 21773, 10722, 759, 1081, 2361, 17568, 139, 58, 23, 748, -169, 10246, 36892, -2024, -3657, 23, 16690, 689, 9339, 8827, 8516, 3383, -238, 10715, -128, 11371, 1402, 17076, 7921, 1763, 6428, 8633, -3792, -135, 12191, 971, -4242, 4471, 10561, 409, -7689, 5657, 95, 20772, 2033, -122, -644, 16590, -168, 1749, 11040, 16, 11236, 761, 2884, -540, 10755, 6725, 73, 574, -47, 22319, -1251, 8132, 16944, -2905, -294, 26607, 122, 17473, -3419, 268, 10719, 19680, -285, 1808, -1082, 15089, 8505, 22274, -1285, 9980, 248, 297, -21, 8372, 7912, 20472, 8401, 10274, 97, 705, -3609, 18, 12276, -1326, -1725, 1554, 58, 7482, 29769, 17989, 7137, 83, 9677, 14574, 751, -214, 436, 835, 7954, 36, -245, 353, -189, -1044, 2984, 26780, -1300, 8929, 3639, 1503, 4059, 9479, -852, 15017, 8355, -162, 8954, 9982, 2181, 120, -5145, 6335, -34, 37077, 11, 81, 557, 24335, 7147, -428, 3780, 706, 13473, -230, 15495, -669, -414, 7458, 584, 2840, -1885, -4488, -1361, 16221, 10598, 4656, 12683, -239, 662, 791, 321, 8543, 632, 1288, -1324, 72, 19208, -729, 45, 16619, -175, -2996, 290, 25937, 404, 1592, 1780, 8043, -1192, 1727, -53, 16790, -420, 359, 14036, 302, -1003, 14993, -295, 629, 8419, 8404, -12276, 4780, 5363, 4793, 6723, 16119, 9861, -983, -30, -868, 18024, -146, 17419, 9504, 27, -92, 911, 17520, 12707, -1608, 44, -1222, 3030, 17253, -1654, 120, -208, 7766, 11888, -123, 13024, -428};
+ model->setOperandValue(op58, op58_init, sizeof(int32_t) * 256);
+ static uint8_t op59_init[] = {76, 112, 160, 144, 142, 76, 101, 100, 135, 142, 148, 152, 88, 150, 131, 143, 157, 135, 218, 99, 87, 94, 98, 99, 40, 134, 150, 102, 100, 96, 94, 90, 132, 138, 138, 88, 142, 154, 136, 125, 164, 100, 66, 139, 63, 147, 99, 136, 85, 99, 89, 144, 150, 100, 154, 96, 142, 95, 128, 71, 167, 100, 160, 190, 105, 127, 131, 178, 99, 130, 199, 102, 180, 96, 136, 189, 92, 95, 157, 134, 101, 143, 97, 149, 75, 128, 86, 76, 142, 143, 154, 88, 138, 84, 96, 127, 126, 99, 138, 94, 152, 148, 101, 54, 176, 133, 78, 98, 78, 79, 154, 95, 153, 146, 197, 87, 106, 91, 85, 83, 188, 147, 151, 151, 115, 145, 136, 164, 148, 99, 103, 81, 79, 175, 97, 99, 158, 150, 128, 140, 82, 139, 154, 144, 174, 140, 101, 100, 48, 84, 154, 75, 138, 101, 158, 100, 83, 152, 81, 102, 190, 142, 150, 135, 175, 74, 143, 158, 129, 84, 99, 123, 145, 138, 93, 141, 84, 139, 146, 149, 151, 140, 145, 72, 164, 97, 101, 68, 76, 136, 164, 135, 133, 97, 128, 156, 145, 153, 84, 140, 154, 85, 149, 171, 179, 74, 158, 155, 143, 97, 134, 149, 129, 94, 149, 157, 99, 165, 141, 74, 155, 51, 89, 91, 159, 102, 176, 139, 118, 84, 105, 128, 144, 22, 100, 165, 98, 102, 146, 191, 142, 80, 98, 7, 131, 169, 145, 95, 142, 129, 148, 92, 73, 141, 77, 175, 56, 94, 168, 148, 154, 62, 97, 87, 146, 160, 164, 124, 81, 161, 138, 157, 67, 149, 238, 94, 71, 87, 91, 90, 162, 142, 166, 97, 95, 93, 93, 96, 199, 164, 152, 86, 148, 162, 143, 133, 162, 95, 53, 144, 221, 169, 93, 148, 74, 93, 74, 153, 158, 92, 174, 89, 152, 85, 137, 117, 153, 89, 81, 225, 99, 133, 139, 159, 85, 135, 218, 79, 184, 86, 140, 206, 147, 85, 170, 141, 97, 149, 83, 163, 122, 144, 85, 67, 160, 155, 165, 82, 161, 76, 85, 157, 136, 92, 148, 88, 155, 160, 93, 44, 91, 147, 40, 89, 50, 62, 166, 93, 168, 152, 180, 76, 82, 79, 66, 77, 199, 159, 158, 165, 156, 160, 143, 175, 155, 156, 67, 82, 76, 184, 87, 89, 172, 165, 134, 158, 74, 152, 170, 155, 194, 148, 135, 98, 32, 85, 160, 59, 147, 95, 167, 93, 82, 160, 64, 90, 203, 161, 156, 143, 189, 46, 152, 165, 131, 72, 91, 139, 156, 146, 82, 148, 75, 133, 134, 165, 161, 157, 163, 88, 178, 90, 95, 42, 80, 144, 168, 146, 137, 85, 136, 167, 152, 169, 78, 149, 163, 76, 162, 144, 189, 67, 156, 89, 144, 96, 147, 160, 135, 82, 162, 165, 92, 168, 144, 64, 161, 43, 86, 85, 160, 157, 164, 149, 137, 80, 98, 139, 164, 136, 91, 172, 88, 95, 155, 220, 136, 77, 93, 63, 135, 193, 151, 96, 147, 137, 166, 84, 64, 149, 63, 193, 81, 96, 151, 130, 135, 85, 106, 96, 132, 144, 144, 105, 94, 139, 126, 139, 77, 134, 189, 106, 89, 103, 101, 105, 170, 127, 141, 105, 101, 102, 103, 122, 177, 146, 137, 94, 133, 140, 133, 126, 134, 104, 87, 128, 117, 150, 107, 132, 97, 102, 95, 133, 135, 104, 160, 104, 137, 101, 131, 137, 124, 96, 99, 201, 109, 124, 127, 125, 100, 124, 143, 87, 146, 104, 128, 147, 156, 100, 145, 131, 102, 134, 107, 138, 148, 139, 99, 86, 139, 137, 147, 101, 146, 89, 98, 69, 127, 104, 134, 100, 135, 140, 100, 63, 86, 69, 77, 105, 78, 90, 139, 108, 139, 136, 138, 100, 82, 95, 90, 88, 154, 137, 143, 139, 148, 143, 128, 152, 134, 152, 72, 110, 120, 158, 104, 103, 147, 140, 126, 146, 88, 134, 148, 136, 153, 132, 137, 105, 66, 95, 138, 85, 133, 106, 142, 98, 105, 138, 83, 99, 164, 142, 141, 132, 154, 76, 131, 138, 122, 98, 97, 139, 136, 130, 98, 133, 91, 115, 115, 141, 142, 141, 141, 118, 153, 103, 101, 89, 109, 126, 149, 132, 124, 101, 128, 140, 134, 142, 97, 134, 141, 95, 139, 79, 140, 96, 134, 82, 129, 99, 140, 139, 125, 94, 142, 144, 103, 127, 131, 92, 141, 64, 99, 92, 147, 163, 125, 135, 137, 91, 105, 131, 155, 150, 104, 147, 99, 107, 138, 182, 121, 104, 105, 149, 129, 164, 133, 105, 127, 127, 144, 96, 87, 139, 84, 140, 61, 98, 172, 153, 159, 66, 95, 90, 146, 159, 159, 119, 80, 159, 136, 156, 172, 152, 236, 95, 67, 86, 90, 91, 91, 150, 163, 88, 97, 93, 85, 97, 0, 162, 118, 77, 150, 158, 142, 133, 166, 94, 61, 142, 18, 163, 92, 145, 73, 93, 83, 158, 161, 92, 178, 89, 154, 86, 134, 45, 156, 89, 188, 188, 95, 131, 137, 144, 91, 140, 216, 140, 183, 90, 146, 215, 149, 87, 173, 143, 86, 153, 95, 156, 58, 146, 85, 64, 151, 154, 167, 82, 153, 76, 89, 104, 136, 95, 149, 85, 119, 161, 93, 44, 181, 149, 158, 95, 64, 62, 169, 95, 174, 153, 184, 82, 72, 80, 67, 75, 204, 157, 159, 171, 70, 162, 146, 180, 152, 56, 77, 80, 65, 183, 88, 87, 166, 164, 132, 154, 74, 152, 169, 156, 183, 151, 95, 97, 130, 89, 94, 125, 145, 94, 174, 96, 96, 160, 59, 92, 208, 154, 155, 136, 187, 49, 155, 173, 132, 75, 88, 134, 161, 146, 82, 152, 71, 151, 158, 101, 160, 150, 161, 187, 174, 90, 93, 125, 85, 142, 171, 148, 146, 90, 136, 165, 154, 156, 73, 149, 169, 77, 162, 180, 189, 58, 162, 171, 154, 96, 146, 148, 135, 78, 159, 175, 91, 167, 147, 66, 166, 14, 87, 77, 158, 53, 148, 146, 79, 78, 98, 137, 165, 15, 93, 174, 87, 95, 157, 215, 150, 77, 92, 60, 137, 190, 151, 86, 153, 139, 166, 83, 62, 129, 56, 163, 41, 86, 179, 159, 171, 45, 88, 81, 160, 177, 175, 63, 71, 186, 144, 171, 110, 165, 255, 87, 67, 76, 79, 80, 211, 161, 178, 80, 89, 85, 73, 80, 87, 181, 130, 72, 161, 179, 155, 143, 185, 88, 25, 154, 192, 180, 78, 163, 64, 85, 76, 171, 183, 81, 198, 81, 162, 73, 149, 115, 131, 76, 96, 202, 79, 142, 152, 107, 70, 147, 218, 122, 209, 75, 152, 238, 184, 69, 185, 152, 80, 165, 81, 184, 122, 164, 82, 63, 166, 168, 188, 65, 174, 68, 70, 176, 154, 86, 163, 70, 102, 175, 85, 22, 88, 126, 126, 81, 46, 50, 188, 83, 186, 171, 87, 66, 65, 59, 52, 59, 226, 169, 166, 190, 113, 184, 155, 201, 170, 104, 47, 60, 76, 203, 77, 75, 189, 180, 144, 183, 63, 171, 186, 166, 214, 161, 138, 93, 153, 88, 73, 127, 153, 84, 186, 80, 78, 172, 53, 80, 223, 174, 165, 152, 205, 16, 164, 185, 140, 57, 76, 146, 168, 157, 74, 166, 60, 155, 160, 100, 173, 173, 180, 210, 186, 80, 85, 122, 123, 149, 184, 158, 156, 76, 148, 171, 166, 183, 54, 165, 178, 59, 172, 94, 173, 34, 163, 99, 165, 78, 165, 171, 147, 59, 176, 194, 80, 188, 158, 55, 183, 111, 83, 70, 158, 126, 110, 158, 76, 70, 87, 148, 182, 171, 84, 187, 72, 85, 173, 237, 139, 50, 78, 138, 147, 219, 160, 75, 160, 149, 182, 74, 54, 151, 51, 209, 73, 100, 155, 135, 147, 68, 101, 90, 143, 150, 149, 71, 85, 153, 127, 147, 53, 142, 205, 103, 91, 97, 100, 100, 96, 134, 146, 97, 100, 95, 98, 96, 162, 154, 125, 86, 140, 155, 135, 129, 159, 100, 61, 141, 161, 155, 97, 142, 83, 102, 91, 142, 152, 104, 162, 101, 141, 92, 137, 154, 101, 95, 94, 163, 96, 129, 133, 83, 93, 129, 149, 107, 176, 99, 134, 173, 172, 87, 157, 136, 97, 144, 104, 162, 155, 144, 91, 76, 144, 145, 158, 98, 149, 81, 87, 80, 135, 100, 143, 94, 94, 149, 93, 54, 66, 49, 90, 100, 69, 81, 147, 97, 153, 146, 61, 87, 85, 89, 68, 87, 162, 143, 150, 159, 144, 153, 138, 172, 145, 154, 76, 98, 135, 168, 97, 94, 154, 146, 127, 160, 86, 145, 157, 141, 164, 140, 142, 102, 124, 90, 94, 120, 133, 102, 146, 97, 85, 146, 75, 96, 175, 140, 144, 138, 168, 60, 137, 153, 125, 87, 93, 144, 143, 134, 92, 140, 85, 130, 131, 113, 149, 152, 153, 160, 159, 97, 98, 117, 148, 127, 152, 139, 132, 96, 130, 145, 142, 155, 86, 140, 151, 89, 145, 74, 128, 67, 134, 62, 138, 86, 146, 149, 128, 88, 151, 159, 100, 154, 140, 86, 148, 158, 93, 77, 148, 160, 81, 138, 94, 81, 103, 137, 156, 186, 102, 149, 91, 104, 146, 198, 123, 76, 101, 176, 131, 174, 139, 100, 138, 135, 154, 91, 66, 147, 76, 185, 91, 100, 150, 137, 140, 93, 104, 102, 131, 143, 145, 106, 95, 133, 129, 136, 143, 136, 199, 105, 87, 98, 100, 105, 145, 135, 146, 96, 102, 104, 98, 119, 119, 145, 68, 92, 137, 129, 131, 126, 142, 104, 97, 128, 47, 144, 104, 134, 98, 102, 92, 138, 140, 100, 165, 103, 139, 100, 129, 71, 121, 96, 155, 152, 100, 124, 127, 109, 103, 127, 151, 147, 140, 106, 133, 188, 152, 103, 150, 130, 99, 141, 100, 132, 86, 140, 94, 84, 137, 135, 143, 102, 139, 91, 99, 92, 129, 104, 136, 99, 105, 137, 102, 59, 144, 136, 152, 103, 91, 91, 148, 105, 145, 134, 135, 86, 74, 101, 88, 93, 159, 142, 143, 143, 80, 148, 131, 162, 139, 78, 81, 103, 86, 156, 98, 98, 149, 141, 124, 139, 92, 136, 146, 134, 144, 133, 103, 104, 165, 102, 92, 143, 134, 99, 153, 105, 113, 143, 87, 102, 168, 143, 142, 126, 165, 76, 136, 152, 124, 101, 101, 131, 136, 132, 100, 132, 90, 145, 144, 90, 144, 134, 147, 106, 148, 102, 97, 150, 109, 126, 141, 131, 136, 103, 128, 136, 131, 125, 90, 133, 145, 95, 142, 151, 138, 90, 138, 145, 135, 104, 132, 130, 127, 89, 140, 154, 102, 142, 130, 89, 140, 206, 97, 103, 141, 71, 123, 132, 87, 99, 102, 131, 154, 81, 104, 147, 101, 108, 145, 174, 135, 110, 106, 139, 128, 152, 134, 100, 137, 132, 151, 97, 98, 116, 82, 108, 74, 102, 157, 139, 144, 73, 98, 98, 141, 142, 151, 69, 87, 152, 130, 146, 146, 144, 200, 100, 85, 92, 94, 100, 156, 140, 147, 91, 98, 96, 96, 97, 57, 147, 47, 87, 141, 145, 137, 130, 160, 98, 66, 141, 104, 148, 96, 145, 87, 97, 85, 145, 158, 97, 165, 97, 145, 89, 135, 121, 99, 89, 121, 46, 88, 129, 132, 82, 94, 130, 140, 149, 169, 100, 141, 216, 162, 92, 167, 132, 91, 153, 88, 156, 113, 144, 86, 77, 139, 144, 164, 99, 148, 84, 90, 143, 136, 99, 143, 92, 104, 149, 99, 43, 90, 101, 163, 100, 71, 79, 156, 94, 150, 143, 52, 79, 85, 90, 71, 78, 176, 152, 148, 165, 92, 154, 139, 174, 149, 86, 81, 92, 117, 169, 91, 93, 162, 148, 126, 160, 87, 148, 155, 145, 160, 142, 123, 100, 190, 97, 78, 156, 138, 99, 159, 96, 89, 150, 72, 95, 181, 145, 143, 134, 171, 64, 142, 161, 127, 86, 91, 136, 143, 136, 96, 142, 83, 147, 147, 77, 150, 142, 154, 71, 157, 95, 97, 158, 154, 124, 147, 139, 140, 93, 131, 143, 139, 142, 80, 137, 154, 88, 147, 64, 108, 61, 137, 105, 149, 88, 139, 142, 131, 77, 152, 164, 100, 156, 142, 83, 153, 220, 94, 96, 145, 89, 73, 136, 64, 86, 99, 136, 157, 156, 97, 151, 92, 102, 153, 199, 130, 79, 100, 168, 133, 168, 137, 95, 146, 132, 155, 92, 77, 127, 63, 160, 101, 116, 144, 133, 135, 78, 109, 105, 133, 127, 136, 85, 100, 139, 124, 129, 82, 132, 171, 104, 104, 104, 106, 108, 36, 124, 132, 101, 103, 104, 107, 97, 70, 124, 75, 96, 132, 139, 128, 124, 149, 106, 79, 135, 148, 128, 105, 133, 103, 108, 96, 132, 144, 110, 133, 110, 131, 97, 127, 145, 96, 107, 93, 79, 101, 125, 124, 95, 104, 122, 76, 124, 163, 110, 129, 159, 136, 101, 143, 125, 103, 136, 107, 154, 131, 125, 101, 95, 130, 130, 146, 105, 135, 94, 100, 109, 129, 107, 134, 104, 110, 133, 105, 67, 87, 87, 146, 107, 96, 98, 135, 102, 138, 132, 59, 97, 107, 97, 89, 92, 139, 136, 140, 148, 117, 133, 126, 149, 136, 123, 108, 111, 132, 145, 107, 106, 142, 125, 122, 146, 98, 135, 142, 133, 138, 130, 122, 106, 143, 103, 88, 131, 127, 110, 135, 106, 89, 132, 91, 107, 145, 128, 135, 132, 149, 86, 130, 145, 121, 100, 102, 141, 130, 126, 104, 131, 92, 129, 136, 102, 134, 129, 141, 75, 140, 106, 107, 141, 146, 122, 133, 128, 127, 105, 123, 130, 128, 140, 100, 129, 140, 100, 134, 96, 101, 99, 122, 86, 132, 100, 129, 136, 122, 97, 135, 141, 106, 141, 134, 99, 135, 135, 101, 97, 142, 122, 78, 128, 80, 101, 107, 128, 135, 169, 109, 129, 104, 109, 136, 168, 121, 84, 110, 142, 126, 153, 125, 104, 132, 125, 131, 106, 81, 134, 94, 164};
+ model->setOperandValue(op59, op59_init, sizeof(uint8_t) * 2304);
+ static int32_t op61_init[] = {8937, 6537, 21884, 10468, 3507, 14032, 4759, -1045, 3965, 15433, -1356, -4865, 8679, -2776, 10542, -1806, 4446, 7307, 5257, 8326, 3394, 5448, 11299, 7848, 7223, 12731, 536, -11115, -3148, 13731, 6134, 4912, 9067, 5639, 3782, -4903, 57, 10165, 12833, -149, 10247, 8892, 2184, 9888, 13967, 5789, 9410, 2778, 11441, 9104, 987, 5302, 4424, 9299, 8594, -8523, 8121, 9473, -5515, 4887, 6729, 6111, 2761, -279, 6953, 5800, 8562, -5045, 1369, 3070, -14741, -6482, -16501, 1323, 28602, 6944, 17244, 4133, 8619, 2298, -2104, 4099, 11631, 6731, 6301, -2814, 19082, 5353, 13335, 1088, 13068, 5905, 14688, 6054, -10109, 27965, -10988, 1433, 7925, -9321, 9117, -6120, -4738, -3975, 6515, 4775, 10850, 8499, 8497, 10522, 5253, 5387, 7205, 14252, 6642, 11033, 654, 6191, 9670, 18442, 8265, 11132, 2898, 3425, -1201, 12747, 10945, 8954, 7663, 8573, 14019, 2349, 6683, 7720, 2377, 7271, 3764, 13685, 3275, -1397, 12473, 9157, 14790, 6429, 10448, 18103, 10124, 10625, 5135, 2469, 6960, -2339, 8602, 19515, 12958, 13660, 7951, 534, 23728, 16329, 7156, 15659, 9277, 8345, 6317, 1668, 3529, 10163, -1691, 16872, 16569, -12046, 23037, 11517, -706, 15458, 7730, 2947, 3825, 18318, 13384, 12361, 3702, -4315, 5480, 13865, 14733, 11594, 9426, 10632, 8869, -2425, 5727, 13603, -938, 8071, 11835, 7208, -2337, 6295, -172, 13667, 1327, 21014, -4853, 19988, 12823, -6207, 7475, 3977, -676, 4884, 8123, 4510, -20520, 12407, 11526, -5909, 12450, 1, 6583, 7299, 20038, 5494, 10090, 3620, 7006, 21643, 8055, 2278, 16831, 5347, -1338, 11789, 5875, 8375, 43367, -2471, 15451, -3498, 8922, -3886, 9147, 25997, 9166, 5346, 1638, 7556, -8368, 14273, 10156, 15340, 16007, 4415, 11825, 18362, 15790, 15566, 9383, 6632, 1464, 14781, 8866, 9078, 1535, 7655, 8892, 15235, 5438, 3692, 12421, -13492, 11857, 12649, 3349, 4317, 7370, -420, 11994, 15352, 7125, 5416, 2919, -4984, 6265, 8901, 10763, 11070, 10206, 15538, 2245, 5535, -9140, 5765, 5817, 11231, -549, -4533, -23493, 9124, 15043, 4110, 2180, 16154, 331, 17082, 1228, 18549, 1549, 6832, 2132, 14838, 6721, -15078, 607, -4037, 5825, 4692, 9928, 9274, 2280, 7861, 3759, 20397, 12272, 10415, 6201, 9703, 1278, 19193, 3336, 13006, 13657, 20229, 9596, 6589, 7008, 4693, 13016, 12715, -2885, 3539, 8366, 18528, 416, 16554, 6379, 6002, 5711, -1527, 13552, 3823, 4331, 8100, 12181, 7226, 16789, 3859, 9394, 14979, 7953, -6742, -4827, 5135, -112, 852, -11103, 13168, -2648, 5323, 9266, 9962, -16716, 6705, 9169, 350, 11698, -3587, 1380, 15088, 13800, -787, 5121, 6692, 13817, 14092, 11734, 11507, 9570, 7402, 12231, 5929, 8801, 23374, 8235, 9069, 1078, 7737, 17523, 10029, 7349, 10543, -654, 12417, 21654, 1116, 6791, 15846, 5110, 13203, 5020, -2780, 11306, 9143, 14691, 881, 3450, 15345, 9787, 13890, -7510, 4895, 8558, 13681, -849, 7602, 6780, -4204, 10001, -4443, 9705, 13936, 12143, 1583, 2776, 16214, 7533, 7641, 16903, 2781, 4473, 4519, -21099, 3466, 21709, 3667, 13076, 9639, 20569, 9159, 8983, 1314, 11778, 6757, 6628, 8284, 19108, 2185, 15044, 5594, 4727, 10253, 6737, 17520, 1434, 974, -11621, 16619, 4242, -1222, -10720, 8169, 7095, 8525, -4675, 10682, -2073, 3077, 18794, -5472, 13116, 13481, 1217, 11946, -2357, 10084, 24698, 19707, 884, 11580, 7002, -5687, -3247, 5673, 16892, 11375, 971, 14552, -919, 6136, 1358, 16805, 5739, 4381, -286, 10285, 16184, 3604, 11058, -10067, 3861, 11507};
+ model->setOperandValue(op61, op61_init, sizeof(int32_t) * 512);
+ static uint8_t op62_init[] = {138, 118, 138, 127, 131, 155, 141, 160, 156, 149, 129, 148, 149, 138, 150, 139, 153, 143, 138, 139, 177, 150, 142, 137, 138, 129, 136, 144, 143, 132, 149, 138, 138, 120, 141, 137, 143, 150, 143, 139, 136, 153, 160, 202, 145, 158, 150, 147, 148, 137, 144, 141, 144, 141, 163, 136, 127, 140, 166, 138, 140, 134, 161, 149, 137, 153, 147, 149, 145, 160, 148, 155, 136, 149, 149, 148, 137, 147, 149, 157, 143, 148, 149, 154, 145, 193, 150, 146, 152, 141, 138, 151, 147, 146, 137, 156, 141, 150, 120, 139, 145, 139, 165, 156, 151, 149, 145, 150, 145, 152, 132, 142, 139, 140, 136, 149, 122, 144, 146, 150, 138, 139, 146, 144, 142, 134, 148, 144, 138, 150, 110, 142, 147, 139, 148, 149, 140, 148, 150, 161, 143, 150, 149, 141, 147, 150, 146, 145, 144, 149, 139, 148, 157, 145, 145, 140, 138, 146, 134, 158, 142, 153, 152, 111, 134, 139, 145, 137, 147, 144, 145, 136, 142, 144, 133, 123, 142, 162, 129, 152, 139, 154, 152, 149, 143, 149, 127, 143, 140, 151, 151, 130, 156, 155, 154, 157, 133, 161, 139, 144, 147, 151, 149, 138, 131, 138, 144, 153, 153, 161, 149, 143, 151, 160, 150, 136, 157, 147, 104, 134, 148, 145, 140, 142, 138, 145, 147, 165, 145, 131, 146, 106, 153, 131, 156, 140, 152, 141, 123, 136, 144, 128, 140, 138, 160, 143, 147, 144, 150, 126, 135, 140, 145, 134, 140, 138, 145, 143, 142, 149, 145, 141, 147, 146, 147, 145, 142, 140, 150, 146, 145, 149, 144, 141, 145, 144, 144, 169, 145, 146, 149, 147, 151, 129, 148, 150, 162, 148, 142, 155, 146, 148, 158, 145, 144, 134, 143, 145, 148, 144, 148, 148, 144, 157, 152, 144, 141, 150, 151, 151, 147, 146, 147, 150, 147, 148, 145, 154, 148, 152, 151, 142, 154, 148, 147, 140, 147, 150, 147, 157, 137, 146, 148, 147, 144, 142, 145, 152, 146, 146, 142, 148, 149, 138, 146, 147, 143, 133, 142, 147, 146, 147, 169, 122, 140, 148, 143, 145, 146, 142, 147, 147, 140, 144, 147, 145, 139, 145, 149, 147, 146, 146, 147, 148, 142, 144, 157, 145, 146, 142, 150, 146, 148, 147, 149, 149, 149, 150, 143, 143, 154, 142, 148, 141, 150, 148, 152, 152, 149, 143, 143, 140, 146, 135, 146, 147, 151, 147, 145, 139, 144, 139, 143, 142, 157, 150, 144, 141, 147, 147, 143, 148, 145, 144, 155, 148, 148, 147, 141, 146, 143, 147, 145, 142, 149, 144, 144, 145, 146, 145, 148, 147, 140, 148, 147, 146, 155, 145, 167, 150, 144, 147, 141, 146, 150, 142, 144, 152, 144, 143, 144, 139, 146, 147, 150, 152, 146, 151, 144, 141, 141, 130, 153, 142, 147, 146, 146, 144, 152, 147, 145, 144, 143, 144, 145, 148, 147, 145, 147, 150, 146, 147, 147, 170, 146, 147, 153, 143, 140, 149, 136, 146, 158, 125, 144, 144, 145, 143, 153, 147, 144, 141, 128, 145, 159, 139, 144, 143, 138, 146, 139, 145, 164, 142, 142, 143, 138, 142, 142, 148, 145, 146, 146, 143, 144, 126, 145, 137, 148, 145, 145, 148, 154, 140, 142, 146, 147, 147, 147, 141, 146, 157, 150, 143, 146, 144, 148, 144, 141, 142, 145, 148, 143, 141, 141, 151, 148, 146, 143, 145, 147, 146, 147, 145, 142, 145, 145, 150, 151, 145, 146, 142, 147, 144, 149, 153, 145, 154, 140, 148, 144, 144, 146, 147, 144, 138, 149, 142, 143, 145, 151, 136, 144, 143, 146, 146, 143, 147, 143, 140, 142, 155, 143, 141, 145, 136, 150, 142, 145, 141, 142, 156, 144, 147, 141, 139, 143, 134, 147, 146, 147, 135, 153, 139, 147, 137, 146, 144, 145, 152, 145, 148, 145, 151, 140, 150, 145, 148, 146, 142, 148, 147, 138, 153, 150, 143, 159, 146, 150, 148, 146, 146, 148, 149, 144, 140, 141, 142, 145, 145, 146, 150, 147, 148, 153, 149, 160, 144, 136, 146, 138, 148, 147, 147, 148, 137, 143, 144, 144, 147, 146, 148, 137, 146, 156, 148, 137, 153, 146, 144, 148, 137, 145, 135, 141, 154, 157, 153, 147, 142, 151, 143, 151, 145, 149, 140, 141, 150, 147, 147, 143, 147, 149, 145, 154, 138, 143, 146, 144, 141, 142, 145, 151, 146, 145, 146, 154, 143, 142, 145, 146, 140, 144, 142, 149, 150, 151, 139, 132, 145, 148, 153, 145, 143, 149, 147, 140, 147, 144, 141, 143, 143, 141, 141, 144, 142, 145, 137, 148, 149, 157, 152, 142, 131, 153, 140, 153, 123, 145, 141, 144, 146, 134, 145, 148, 150, 160, 152, 142, 132, 154, 154, 153, 151, 149, 155, 142, 141, 163, 144, 139, 140, 138, 139, 149, 149, 145, 149, 145, 136, 144, 137, 147, 155, 153, 135, 151, 149, 155, 151, 137, 144, 141, 147, 136, 148, 146, 150, 141, 148, 145, 145, 140, 147, 148, 136, 153, 151, 144, 139, 140, 153, 140, 172, 151, 162, 150, 146, 159, 142, 151, 154, 153, 150, 139, 154, 163, 156, 134, 145, 152, 145, 158, 145, 144, 127, 144, 133, 151, 149, 148, 148, 143, 155, 145, 149, 150, 143, 150, 138, 139, 141, 138, 151, 155, 126, 142, 147, 150, 142, 152, 137, 134, 136, 120, 140, 145, 143, 137, 146, 149, 146, 150, 147, 148, 114, 153, 111, 154, 132, 157, 143, 139, 142, 153, 151, 152, 146, 141, 148, 143, 159, 151, 148, 138, 146, 149, 130, 158, 157, 152, 142, 146, 138, 144, 168, 143, 134, 143, 150, 149, 154, 141, 139, 149, 150, 162, 138, 145, 149, 137, 146, 146, 138, 152, 136, 141, 150, 139, 143, 134, 141, 151, 142, 156, 147, 133, 141, 146, 151, 131, 149, 158, 147, 144, 145, 132, 142, 153, 138, 131, 157, 144, 135, 153, 142, 160, 147, 144, 146, 146, 140, 152, 141, 151, 138, 128, 142, 150, 141, 215, 144, 142, 135, 151, 157, 149, 182, 146, 163, 142, 152, 146, 140, 141, 140, 152, 143, 155, 147, 149, 140, 134, 151, 147, 161, 150, 140, 146, 147, 146, 155, 152, 140, 149, 159, 147, 145, 152, 145, 142, 145, 142, 144, 156, 147, 155, 146, 154, 154, 146, 146, 147, 119, 144, 132, 144, 150, 140, 140, 148, 147, 147, 143, 150, 151, 146, 137, 143, 148, 147, 144, 155, 147, 151, 147, 154, 150, 155, 147, 144, 144, 155, 149, 148, 147, 142, 149, 145, 147, 147, 137, 143, 146, 149, 141, 141, 148, 142, 141, 147, 147, 146, 138, 142, 146, 145, 135, 141, 156, 149, 145, 142, 149, 143, 146, 145, 146, 159, 140, 145, 144, 152, 145, 149, 154, 146, 146, 153, 147, 149, 144, 142, 143, 140, 156, 149, 149, 147, 146, 146, 148, 147, 142, 149, 143, 139, 149, 153, 175, 150, 146, 145, 152, 143, 147, 146, 149, 145, 143, 139, 162, 146, 142, 152, 144, 143, 145, 148, 146, 137, 147, 143, 148, 146, 149, 148, 146, 141, 146, 133, 145, 147, 144, 140, 160, 143, 145, 147, 142, 147, 153, 143, 144, 146, 149, 151, 147, 143, 134, 146, 138, 138, 148, 150, 144, 146, 146, 147, 144, 143, 146, 147, 148, 147, 143, 150, 139, 142, 141, 151, 150, 148, 139, 149, 148, 144, 157, 139, 147, 145, 144, 145, 143, 150, 146, 153, 141, 142, 151, 147, 149, 146, 147, 146, 139, 151, 145, 148, 138, 153, 139, 137, 140, 149, 156, 135, 148, 145, 150, 145, 144, 144, 146, 143, 141, 143, 146, 148, 143, 148, 149, 138, 131, 129, 143, 136, 143, 151, 149, 139, 139, 158, 132, 142, 153, 164, 131, 139, 153, 152, 139, 151, 155, 107, 147, 143, 153, 144, 145, 147, 154, 157, 149, 140, 162, 138, 144, 83, 128, 132, 152, 149, 144, 143, 125, 145, 136, 146, 150, 141, 141, 153, 147, 152, 146, 154, 149, 126, 145, 153, 146, 156, 138, 136, 151, 141, 146, 161, 149, 155, 142, 139, 134, 160, 132, 142, 147, 142, 104, 139, 147, 138, 137, 136, 140, 141, 163, 147, 110, 164, 139, 131, 139, 151, 135, 144, 150, 157, 135, 158, 150, 134, 155, 161, 143, 146, 144, 164, 153, 146, 147, 141, 141, 140, 140, 142, 146, 149, 149, 189, 133, 149, 138, 148, 150, 145, 148, 144, 148, 149, 144, 146, 147, 137, 152, 135, 144, 150, 155, 147, 133, 144, 149, 153, 158, 140, 149, 139, 130, 151, 139, 137, 156, 144, 140, 152, 145, 142, 147, 154, 148, 145, 150, 137, 137, 141, 146, 154, 138, 144, 139, 144, 155, 156, 150, 138, 140, 149, 153, 152, 144, 145, 153, 110, 165, 143, 144, 147, 150, 155, 145, 142, 140, 138, 163, 140, 138, 144, 130, 142, 169, 143, 129, 145, 150, 142, 145, 151, 131, 148, 136, 146, 138, 146, 142, 145, 142, 143, 146, 146, 149, 116, 147, 131, 135, 148, 132, 146, 141, 158, 143, 142, 142, 145, 144, 142, 144, 149, 146, 123, 146, 136, 147, 177, 146, 152, 141, 146, 142, 143, 151, 140, 140, 158, 144, 139, 147, 144, 139, 153, 157, 134, 140, 145, 150, 139, 156, 140, 137, 155, 135, 143, 130, 147, 147, 136, 140, 147, 152, 132, 154, 151, 143, 148, 155, 144, 148, 150, 144, 150, 148, 143, 138, 142, 131, 147, 151, 139, 145, 149, 124, 159, 156, 130, 152, 145, 163, 136, 131, 143, 152, 151, 157, 134, 144, 134, 143, 138, 143, 149, 155, 139, 147, 144, 147, 137, 142, 144, 152, 151, 157, 151, 139, 144, 143, 147, 158, 142, 142, 134, 137, 157, 145, 133, 140, 135, 149, 156, 156, 146, 140, 147, 148, 166, 143, 152, 142, 140, 137, 153, 161, 148, 170, 143, 141, 139, 143, 147, 164, 149, 152, 138, 133, 139, 136, 128, 141, 142, 156, 159, 142, 137, 135, 149, 142, 131, 151, 158, 139, 143, 154, 148, 149, 151, 144, 138, 145, 132, 148, 145, 155, 148, 151, 148, 149, 150, 137, 141, 152, 146, 135, 146, 159, 157, 145, 135, 141, 147, 147, 128, 145, 140, 137, 151, 145, 129, 146, 147, 141, 142, 132, 155, 141, 143, 131, 151, 140, 148, 150, 160, 139, 147, 149, 131, 141, 127, 157, 147, 136, 140, 143, 146, 151, 147, 151, 146, 135, 154, 145, 142, 154, 140, 169, 160, 148, 156, 135, 139, 150, 156, 135, 138, 151, 145, 138, 136, 155, 163, 148, 151, 133, 135, 149, 138, 145, 138, 140, 139, 136, 133, 141, 142, 153, 138, 134, 139, 134, 145, 152, 132, 134, 140, 150, 158, 131, 155, 156, 149, 145, 139, 145, 148, 151, 136, 134, 140, 136, 144, 150, 143, 146, 148, 137, 145, 150, 138, 147, 143, 138, 141, 150, 143, 146, 148, 147, 151, 145, 161, 142, 146, 143, 151, 142, 150, 150, 146, 142, 145, 144, 151, 156, 142, 161, 145, 145, 149, 147, 144, 153, 150, 147, 151, 146, 144, 155, 150, 147, 139, 147, 141, 149, 149, 145, 154, 146, 155, 144, 146, 142, 151, 144, 147, 148, 154, 152, 158, 145, 143, 147, 150, 136, 141, 148, 140, 146, 147, 137, 142, 145, 145, 152, 139, 148, 161, 160, 143, 133, 144, 144, 143, 149, 141, 143, 136, 143, 144, 152, 150, 150, 148, 151, 145, 144, 137, 149, 150, 147, 142, 145, 140, 148, 147, 142, 151, 151, 147, 146, 142, 161, 143, 146, 143, 141, 143, 156, 146, 141, 150, 152, 142, 142, 135, 151, 146, 145, 145, 141, 157, 144, 150, 156, 147, 146, 145, 147, 148, 146, 149, 153, 145, 147, 135, 144, 140, 145, 138, 143, 155, 144, 149, 146, 137, 139, 144, 146, 138, 143, 147, 134, 149, 139, 140, 141, 156, 148, 149, 154, 144, 145, 152, 145, 145, 153, 151, 138, 148, 149, 149, 147, 145, 166, 140, 146, 141, 148, 146, 141, 151, 146, 148, 166, 143, 144, 143, 145, 146, 145, 145, 149, 143, 143, 147, 140, 146, 154, 143, 150, 143, 149, 161, 150, 147, 146, 149, 141, 142, 149, 154, 161, 148, 147, 141, 139, 145, 142, 147, 148, 145, 149, 141, 137, 143, 145, 143, 147, 150, 148, 149, 145, 158, 136, 137, 145, 140, 146, 149, 146, 139, 134, 141, 144, 139, 147, 143, 155, 150, 141, 145, 148, 149, 181, 149, 146, 144, 148, 147, 140, 135, 145, 138, 146, 139, 133, 152, 147, 150, 145, 145, 163, 148, 146, 146, 154, 146, 141, 150, 142, 150, 148, 163, 148, 145, 143, 146, 141, 138, 148, 147, 150, 153, 146, 137, 144, 156, 146, 139, 141, 136, 144, 141, 143, 149, 143, 142, 141, 144, 155, 142, 144, 141, 146, 144, 141, 152, 143, 148, 151, 149, 150, 146, 135, 147, 144, 145, 145, 142, 140, 146, 150, 150, 143, 159, 148, 148, 150, 146, 144, 139, 146, 146, 149, 144, 144, 157, 151, 149, 141, 138, 161, 150, 141, 143, 148, 133, 165, 145, 140, 147, 140, 148, 143, 142, 148, 136, 143, 140, 140, 138, 143, 147, 145, 144, 141, 144, 141, 144, 147, 146, 152, 146, 141, 142, 146, 146, 140, 147, 149, 148, 146, 146, 148, 145, 154, 146, 145, 143, 131, 140, 153, 147, 149, 145, 144, 139, 137, 143, 142, 141, 139, 142, 152, 145, 132, 146, 150, 160, 147, 150, 147, 148, 149, 148, 144, 140, 138, 163, 137, 151, 147, 148, 143, 149, 146, 150, 154, 147, 155, 146, 150, 146, 151, 151, 144, 152, 153, 144, 151, 143, 145, 137, 150, 149, 142, 141, 152, 164, 148, 144, 148, 147, 153, 144, 146, 163, 138, 144, 148, 148, 137, 150, 142, 141, 150, 151, 145, 141, 142, 149, 144, 149, 142, 147, 146, 143, 146, 141, 126, 143, 147, 156, 143, 148, 153, 150, 155, 144, 145, 158, 140, 152, 152, 139, 139, 152, 149, 146, 126, 116, 153, 141, 143, 147, 144, 149, 151, 139, 138, 145, 145, 136, 148, 109, 150, 154, 138, 146, 143, 150, 135, 147, 148, 148, 142, 140, 157, 140, 154, 147, 139, 148, 150, 142, 146, 138, 153, 129, 149, 160, 138, 149, 146, 137, 140, 137, 150, 145, 144, 138, 139, 146, 148, 148, 150, 148, 146, 155, 145, 140, 140, 145, 147, 146, 126, 173, 144, 143, 141, 149, 122, 145, 144, 137, 153, 157, 147, 145, 143, 137, 144, 145, 146, 151, 142, 137, 143, 142, 148, 141, 146, 143, 146, 142, 143, 138, 153, 139, 145, 147, 149, 148, 139, 145, 148, 146, 135, 155, 147, 146, 141, 188, 154, 143, 151, 146, 145, 145, 144, 146, 154, 153, 139, 156, 153, 138, 140, 144, 148, 152, 143, 145, 159, 146, 145, 143, 146, 144, 156, 139, 148, 156, 151, 142, 154, 141, 153, 148, 134, 139, 149, 151, 151, 144, 136, 146, 150, 148, 151, 135, 141, 139, 149, 148, 150, 148, 147, 123, 143, 143, 145, 140, 139, 146, 157, 147, 150, 149, 141, 146, 149, 151, 143, 145, 134, 147, 150, 144, 147, 155, 147, 138, 148, 141, 149, 149, 144, 129, 141, 147, 149, 150, 145, 124, 148, 150, 148, 143, 134, 152, 144, 140, 162, 147, 146, 134, 149, 148, 146, 163, 150, 134, 143, 155, 151, 147, 141, 145, 142, 141, 146, 151, 149, 145, 140, 140, 150, 138, 150, 138, 143, 152, 137, 148, 147, 154, 147, 153, 146, 150, 141, 147, 146, 157, 138, 157, 148, 145, 143, 144, 147, 147, 154, 151, 144, 139, 139, 144, 146, 153, 148, 157, 143, 140, 141, 143, 146, 140, 148, 140, 146, 141, 131, 142, 154, 152, 137, 141, 145, 148, 145, 163, 132, 143, 150, 141, 137, 157, 147, 155, 148, 164, 149, 155, 152, 151, 140, 152, 147, 141, 136, 142, 157, 148, 148, 154, 154, 133, 164, 149, 148, 135, 145, 147, 144, 150, 149, 143, 143, 150, 151, 145, 152, 147, 147, 147, 146, 141, 142, 150, 144, 134, 141, 143, 139, 147, 151, 136, 147, 149, 139, 146, 155, 150, 144, 145, 148, 146, 151, 146, 148, 143, 137, 147, 145, 147, 148, 150, 159, 139, 152, 148, 150, 144, 147, 149, 141, 143, 144, 148, 150, 147, 140, 144, 143, 160, 157, 147, 156, 142, 149, 143, 140, 158, 142, 144, 141, 149, 152, 146, 156, 149, 145, 144, 150, 151, 147, 151, 145, 147, 138, 146, 149, 147, 144, 144, 144, 137, 147, 139, 148, 155, 142, 143, 130, 171, 147, 148, 150, 142, 144, 142, 154, 147, 145, 148, 140, 146, 142, 144, 148, 140, 150, 147, 152, 142, 157, 157, 155, 148, 144, 143, 132, 153, 140, 150, 149, 148, 121, 148, 130, 154, 140, 152, 140, 152, 149, 146, 154, 147, 144, 146, 160, 146, 146, 153, 140, 151, 144, 150, 149, 145, 150, 149, 144, 147, 151, 147, 142, 155, 144, 144, 150, 150, 159, 147, 132, 141, 153, 146, 147, 139, 145, 144, 146, 145, 150, 152, 144, 152, 143, 142, 146, 143, 147, 155, 184, 145, 156, 145, 146, 140, 149, 153, 141, 143, 147, 147, 150, 150, 146, 146, 144, 203, 148, 146, 151, 148, 148, 146, 148, 148, 145, 147, 155, 146, 171, 142, 139, 145, 148, 146, 142, 146, 132, 148, 153, 147, 153, 153, 158, 146, 148, 181, 148, 146, 144, 145, 142, 146, 156, 147, 147, 142, 144, 139, 148, 140, 163, 149, 149, 142, 144, 157, 149, 140, 144, 145, 149, 144, 143, 145, 144, 167, 141, 147, 148, 143, 141, 141, 148, 144, 142, 151, 145, 144, 147, 150, 144, 150, 145, 157, 144, 148, 144, 152, 141, 145, 142, 158, 145, 145, 145, 147, 148, 134, 147, 147, 147, 147, 156, 146, 148, 142, 148, 162, 146, 145, 144, 144, 144, 149, 135, 150, 156, 148, 136, 144, 138, 145, 146, 146, 150, 144, 147, 161, 146, 142, 148, 144, 145, 146, 149, 149, 146, 153, 147, 171, 148, 145, 148, 142, 149, 142, 147, 146, 141, 144, 148, 150, 144, 146, 148, 146, 147, 143, 148, 151, 146, 146, 149, 151, 146, 147, 150, 150, 144, 147, 142, 146, 146, 148, 150, 140, 141, 146, 143, 158, 145, 151, 141, 146, 145, 144, 143, 146, 143, 144, 146, 128, 147, 147, 148, 143, 142, 145, 146, 149, 141, 144, 146, 148, 143, 142, 149, 148, 146, 155, 146, 136, 146, 147, 140, 129, 147, 144, 146, 145, 147, 149, 138, 148, 150, 150, 146, 149, 143, 147, 148, 144, 150, 151, 137, 148, 144, 142, 148, 146, 147, 147, 144, 147, 143, 151, 147, 144, 149, 147, 150, 147, 147, 140, 142, 146, 144, 146, 145, 147, 148, 146, 145, 149, 139, 152, 141, 147, 149, 143, 150, 147, 142, 147, 144, 146, 137, 146, 142, 141, 144, 145, 148, 147, 146, 135, 152, 147, 154, 143, 143, 145, 149, 142, 149, 147, 150, 148, 150, 149, 145, 150, 146, 148, 144, 143, 147, 144, 144, 144, 140, 147, 148, 146, 144, 144, 143, 145, 148, 142, 142, 147, 146, 148, 151, 144, 146, 190, 147, 144, 145, 143, 151, 142, 146, 147, 145, 145, 150, 149, 144, 150, 147, 145, 144, 146, 144, 148, 148, 146, 141, 145, 147, 145, 158, 146, 142, 151, 146, 143, 147, 154, 149, 144, 145, 147, 142, 148, 150, 148, 151, 151, 140, 148, 146, 146, 145, 147, 143, 144, 144, 144, 146, 144, 154, 149, 141, 147, 141, 145, 148, 151, 147, 153, 147, 140, 146, 141, 146, 142, 151, 148, 150, 139, 145, 146, 162, 147, 151, 141, 145, 101, 146, 144, 147, 147, 145, 143, 146, 150, 147, 114, 156, 144, 143, 144, 147, 146, 148, 141, 147, 150, 151, 148, 132, 182, 137, 142, 145, 145, 146, 148, 144, 146, 149, 149, 147, 149, 147, 146, 146, 145, 147, 145, 144, 145, 145, 145, 142, 148, 141, 148, 142, 145, 147, 155, 143, 148, 145, 142, 146, 145, 146, 146, 142, 149, 144, 144, 149, 151, 139, 154, 150, 157, 156, 150, 141, 137, 145, 142, 148, 148, 149, 133, 149, 146, 142, 147, 150, 150, 143, 151, 154, 139, 145, 145, 140, 149, 151, 146, 145, 149, 147, 148, 141, 146, 139, 149, 144, 142, 149, 147, 148, 146, 147, 148, 150, 144, 153, 140, 142, 142, 144, 146, 153, 149, 144, 146, 144, 147, 147, 147, 144, 143, 150, 141, 152, 147, 147, 146, 149, 156, 146, 143, 151, 146, 147, 144, 146, 142, 142, 145, 155, 148, 146, 144, 151, 151, 151, 145, 142, 151, 146, 151, 150, 148, 144, 147, 155, 142, 147, 147, 137, 153, 145, 146, 146, 145, 139, 150, 152, 147, 146, 147, 146, 149, 136, 148, 145, 153, 146, 145, 145, 140, 151, 145, 146, 158, 147, 152, 146, 151, 150, 140, 160, 142, 131, 152, 146, 138, 149, 133, 161, 148, 150, 147, 144, 146, 139, 148, 147, 148, 147, 144, 145, 135, 142, 148, 151, 142, 150, 147, 148, 157, 143, 145, 152, 154, 146, 144, 153, 148, 147, 161, 152, 149, 149, 149, 150, 149, 145, 140, 152, 143, 147, 136, 160, 151, 146, 148, 150, 146, 145, 148, 151, 157, 150, 144, 145, 136, 142, 155, 165, 147, 147, 142, 136, 147, 146, 150, 149, 146, 143, 143, 146, 134, 154, 152, 150, 152, 173, 155, 145, 146, 153, 147, 144, 147, 150, 149, 153, 143, 143, 147, 146, 143, 150, 149, 149, 153, 149, 151, 149, 150, 142, 146, 148, 149, 148, 155, 142, 147, 140, 154, 154, 151, 146, 145, 149, 144, 148, 140, 151, 143, 145, 145, 151, 147, 142, 141, 145, 146, 143, 145, 140, 141, 140, 148, 170, 128, 137, 144, 152, 150, 126, 151, 148, 153, 154, 143, 150, 145, 140, 122, 133, 149, 139, 146, 149, 150, 142, 141, 149, 155, 150, 141, 121, 146, 144, 146, 148, 148, 147, 147, 172, 142, 147, 147, 144, 142, 153, 152, 144, 147, 148, 145, 146, 153, 143, 144, 146, 151, 146, 143, 144, 140, 150, 145, 149, 147, 145, 144, 147, 137, 158, 146, 150, 143, 184, 148, 135, 148, 148, 181, 135, 150, 148, 151, 139, 143, 140, 149, 143, 147, 143, 138, 147, 147, 153, 152, 146, 150, 146, 151, 148, 144, 146, 148, 149, 140, 146, 147, 141, 148, 144, 142, 148, 143, 152, 146, 141, 145, 142, 149, 151, 139, 148, 143, 147, 147, 145, 151, 125, 144, 138, 144, 146, 148, 148, 144, 149, 147, 137, 145, 143, 162, 150, 151, 144, 137, 148, 147, 147, 149, 141, 145, 147, 157, 146, 150, 147, 148, 144, 138, 150, 147, 142, 144, 138, 149, 147, 148, 144, 147, 144, 148, 140, 157, 135, 151, 144, 142, 149, 144, 151, 145, 147, 149, 145, 145, 146, 144, 153, 128, 153, 148, 147, 144, 142, 145, 145, 149, 147, 144, 145, 147, 138, 147, 138, 172, 144, 135, 146, 148, 141, 146, 148, 145, 151, 146, 145, 143, 147, 144, 151, 143, 151, 146, 149, 155, 151, 139, 150, 175, 129, 142, 153, 148, 139, 143, 145, 154, 146, 151, 138, 148, 136, 139, 152, 186, 150, 141, 136, 140, 154, 151, 154, 137, 138, 140, 139, 158, 150, 137, 137, 106, 151, 136, 150, 127, 154, 141, 153, 149, 142, 143, 149, 147, 140, 146, 145, 166, 126, 148, 100, 153, 148, 146, 155, 161, 163, 147, 146, 156, 156, 149, 155, 145, 137, 144, 144, 152, 145, 152, 161, 153, 167, 162, 132, 161, 149, 151, 133, 134, 150, 142, 140, 126, 143, 150, 135, 146, 138, 163, 151, 133, 144, 148, 152, 148, 145, 137, 148, 143, 153, 134, 159, 147, 144, 137, 143, 128, 173, 147, 106, 141, 150, 146, 144, 141, 161, 131, 172, 145, 147, 166, 152, 137, 146, 153, 152, 142, 134, 144, 145, 144, 146, 144, 147, 141, 149, 132, 149, 153, 143, 145, 147, 152, 144, 138, 143, 135, 132, 133, 152, 151, 153, 151, 132, 146, 168, 171, 146, 139, 149, 132, 153, 140, 130, 151, 153, 149, 143, 157, 151, 142, 142, 139, 137, 153, 147, 156, 149, 153, 143, 159, 135, 124, 158, 145, 133, 138, 147, 146, 147, 153, 144, 137, 121, 140, 138, 143, 134, 196, 151, 149, 139, 152, 150, 130, 162, 132, 147, 151, 155, 154, 143, 157, 142, 163, 143, 159, 159, 131, 134, 177, 135, 145, 136, 157, 145, 144, 139, 147, 147, 153, 141, 138, 143, 142, 148, 152, 140, 157, 148, 144, 139, 137, 128, 143, 134, 128, 152, 137, 147, 144, 148, 164, 137, 139, 145, 164, 142, 144, 145, 131, 141, 133, 162, 158, 147, 153, 148, 148, 150, 149, 142, 146, 146, 147, 157, 142, 145, 148, 154, 147, 144, 145, 155, 148, 135, 137, 150, 147, 149, 164, 138, 142, 142, 151, 148, 151, 141, 144, 141, 136, 147, 151, 136, 146, 144, 151, 144, 147, 144, 165, 146, 150, 144, 141, 141, 145, 146, 149, 142, 143, 145, 148, 150, 151, 144, 149, 151, 152, 152, 138, 151, 149, 143, 143, 151, 148, 146, 155, 146, 146, 144, 141, 149, 139, 138, 143, 144, 146, 144, 144, 151, 150, 147, 147, 156, 152, 149, 148, 145, 138, 140, 136, 147, 146, 149, 139, 146, 152, 146, 146, 151, 150, 157, 153, 149, 144, 146, 142, 145, 145, 145, 148, 152, 145, 135, 134, 141, 146, 145, 148, 148, 148, 141, 147, 154, 144, 152, 150, 141, 143, 149, 145, 147, 148, 149, 157, 148, 148, 149, 145, 128, 142, 150, 143, 148, 147, 140, 151, 135, 146, 153, 139, 145, 150, 152, 160, 152, 145, 147, 153, 152, 172, 144, 149, 147, 144, 151, 147, 148, 129, 148, 143, 143, 139, 141, 149, 140, 148, 158, 144, 148, 149, 154, 148, 141, 144, 155, 152, 152, 151, 148, 149, 143, 141, 143, 141, 147, 146, 152, 132, 149, 148, 140, 153, 145, 141, 145, 141, 146, 157, 148, 145, 145, 150, 143, 148, 141, 142, 148, 149, 151, 145, 147, 150, 145, 148, 145, 141, 147, 139, 131, 148, 144, 142, 152, 145, 143, 141, 153, 138, 154, 150, 142, 146, 129, 144, 147, 148, 153, 146, 146, 145, 150, 146, 151, 147, 146, 145, 146, 137, 152, 149, 146, 150, 145, 148, 148, 145, 156, 146, 154, 146, 143, 147, 144, 139, 161, 146, 146, 131, 147, 144, 148, 151, 143, 156, 151, 147, 160, 146, 143, 150, 147, 146, 149, 146, 145, 149, 150, 150, 142, 145, 152, 144, 149, 144, 147, 143, 148, 146, 146, 139, 146, 143, 141, 154, 145, 149, 144, 140, 144, 147, 98, 145, 142, 144, 144, 153, 150, 150, 149, 145, 147, 149, 147, 151, 135, 143, 142, 144, 150, 148, 127, 144, 152, 158, 140, 146, 140, 144, 147, 142, 142, 148, 146, 142, 146, 146, 149, 142, 147, 147, 145, 145, 149, 145, 143, 145, 145, 149, 148, 151, 144, 144, 147, 144, 149, 144, 146, 146, 145, 145, 143, 137, 147, 144, 145, 172, 148, 149, 147, 147, 146, 142, 136, 146, 172, 147, 144, 146, 149, 153, 146, 141, 150, 147, 148, 158, 146, 148, 147, 145, 143, 145, 144, 143, 144, 146, 148, 144, 145, 142, 152, 142, 145, 156, 144, 142, 146, 146, 144, 145, 143, 145, 148, 144, 146, 146, 151, 151, 147, 146, 150, 154, 141, 147, 146, 146, 145, 161, 132, 144, 147, 145, 142, 162, 145, 151, 147, 150, 148, 153, 146, 140, 144, 145, 149, 144, 149, 148, 148, 149, 146, 145, 146, 141, 147, 147, 148, 146, 149, 146, 153, 150, 145, 148, 144, 145, 146, 144, 144, 173, 146, 146, 145, 147, 158, 138, 146, 143, 152, 147, 147, 146, 146, 142, 147, 148, 145, 148, 146, 144, 143, 145, 145, 145, 158, 147, 143, 150, 145, 148, 150, 143, 156, 147, 148, 150, 141, 146, 147, 142, 157, 150, 149, 134, 143, 141, 148, 147, 143, 141, 147, 139, 152, 148, 147, 148, 141, 143, 145, 142, 143, 149, 147, 151, 152, 148, 146, 145, 146, 139, 146, 151, 145, 147, 149, 144, 154, 150, 143, 149, 148, 146, 141, 138, 144, 147, 108, 146, 151, 145, 149, 141, 149, 145, 149, 148, 147, 145, 148, 146, 134, 149, 143, 144, 148, 149, 119, 142, 150, 143, 144, 146, 137, 147, 144, 139, 144, 142, 148, 145, 148, 150, 145, 145, 145, 143, 146, 148, 150, 147, 147, 149, 142, 152, 140, 153, 151, 150, 144, 142, 146, 146, 147, 148, 142, 141, 145, 150, 144, 147, 144, 170, 144, 151, 145, 148, 142, 146, 139, 144, 164, 146, 150, 147, 148, 152, 137, 141, 151, 149, 149, 147, 147, 147, 149, 146, 146, 148, 146, 145, 148, 142, 144, 148, 146, 143, 147, 148, 145, 155, 143, 149, 145, 144, 151, 146, 146, 145, 150, 149, 147, 147, 148, 149, 144, 151, 149, 149, 146, 155, 145, 140, 146, 160, 140, 141, 141, 152, 145, 169, 147, 141, 140, 152, 142, 145, 148, 139, 142, 145, 145, 147, 152, 148, 144, 152, 147, 149, 145, 149, 147, 149, 144, 143, 146, 144, 158, 150, 157, 147, 161, 146, 152, 145, 143, 164, 145, 152, 147, 147, 156, 145, 145, 145, 152, 144, 144, 148, 144, 150, 142, 145, 137, 144, 145, 155, 145, 149, 146, 142, 135, 145, 139, 156, 141, 156, 141, 147, 140, 149, 147, 146, 151, 143, 136, 133, 160, 167, 140, 149, 143, 126, 142, 129, 150, 132, 137, 144, 148, 152, 133, 149, 145, 133, 139, 136, 145, 155, 148, 154, 146, 140, 141, 140, 131, 140, 150, 157, 151, 152, 145, 132, 163, 144, 138, 140, 143, 138, 134, 139, 157, 138, 147, 143, 149, 136, 157, 160, 147, 141, 147, 143, 147, 144, 153, 138, 145, 156, 148, 149, 148, 138, 141, 153, 134, 149, 147, 138, 147, 156, 149, 144, 135, 144, 148, 149, 129, 159, 129, 142, 145, 128, 133, 142, 141, 140, 136, 150, 138, 155, 139, 159, 121, 137, 134, 129, 148, 164, 157, 139, 132, 146, 142, 153, 140, 153, 137, 140, 151, 143, 147, 134, 134, 143, 137, 144, 161, 132, 154, 150, 135, 167, 150, 138, 149, 143, 126, 146, 151, 149, 147, 147, 160, 146, 138, 158, 146, 136, 141, 149, 143, 142, 122, 141, 138, 160, 145, 133, 145, 145, 151, 147, 124, 143, 153, 131, 131, 145, 141, 157, 148, 155, 136, 142, 133, 150, 152, 146, 136, 165, 158, 147, 138, 144, 142, 155, 145, 139, 149, 162, 144, 170, 146, 143, 141, 148, 142, 150, 153, 140, 130, 156, 156, 150, 132, 141, 146, 144, 133, 144, 143, 153, 156, 154, 142, 146, 163, 148, 149, 152, 147, 160, 136, 146, 145, 158, 139, 144, 155, 137, 154, 140, 154, 150, 144, 150, 147, 143, 143, 144, 146, 147, 142, 148, 147, 151, 150, 150, 148, 151, 148, 145, 143, 143, 145, 141, 147, 150, 144, 144, 146, 141, 162, 144, 145, 131, 147, 148, 154, 153, 147, 146, 147, 151, 152, 147, 149, 147, 145, 150, 147, 137, 144, 148, 154, 145, 153, 147, 144, 151, 146, 145, 145, 150, 150, 147, 147, 150, 152, 147, 133, 144, 146, 151, 147, 134, 150, 142, 105, 144, 152, 140, 144, 153, 150, 147, 144, 149, 145, 148, 149, 144, 122, 152, 149, 147, 130, 151, 126, 148, 149, 132, 144, 146, 140, 146, 142, 149, 145, 149, 147, 144, 153, 140, 146, 140, 149, 142, 150, 146, 150, 143, 145, 149, 147, 155, 144, 142, 150, 146, 146, 148, 150, 150, 147, 144, 143, 147, 141, 141, 156, 148, 145, 162, 148, 150, 144, 153, 149, 145, 152, 150, 169, 146, 149, 150, 143, 155, 134, 143, 152, 145, 144, 142, 151, 151, 149, 149, 147, 147, 140, 146, 145, 149, 142, 139, 146, 151, 143, 149, 150, 156, 141, 147, 147, 143, 141, 142, 151, 146, 147, 138, 147, 145, 150, 146, 143, 146, 149, 150, 142, 148, 146, 147, 147, 153, 143, 142, 145, 153, 146, 197, 143, 153, 139, 148, 150, 144, 144, 146, 142, 146, 149, 144, 153, 146, 151, 148, 146, 143, 153, 141, 146, 143, 141, 145, 143, 149, 157, 147, 148, 145, 144, 144, 143, 139, 143, 153, 148, 146, 147, 147, 160, 144, 148, 147, 151, 148, 143, 147, 150, 142, 138, 139, 140, 149, 145, 154, 143, 157, 137, 140, 153, 145, 149, 150, 155, 137, 144, 147, 149, 143, 139, 150, 146, 133, 152, 152, 145, 157, 142, 153, 145, 144, 148, 153, 139, 137, 143, 151, 139, 152, 149, 144, 136, 150, 148, 145, 141, 142, 135, 140, 141, 145, 147, 139, 139, 150, 155, 158, 146, 151, 145, 147, 152, 144, 133, 142, 141, 146, 147, 140, 151, 139, 149, 146, 141, 142, 152, 137, 150, 143, 148, 141, 149, 146, 145, 143, 148, 137, 151, 140, 144, 132, 152, 150, 136, 148, 148, 135, 155, 148, 146, 140, 143, 139, 135, 149, 137, 145, 139, 137, 145, 149, 139, 146, 150, 146, 145, 144, 138, 146, 140, 147, 135, 148, 146, 145, 139, 151, 152, 135, 136, 145, 145, 143, 150, 145, 142, 137, 142, 142, 148, 142, 132, 149, 136, 153, 154, 151, 153, 148, 146, 161, 151, 153, 146, 146, 135, 146, 143, 140, 146, 154, 151, 141, 142, 159, 151, 157, 146, 137, 144, 145, 145, 153, 144, 145, 150, 154, 145, 142, 142, 144, 148, 142, 140, 144, 144, 145, 146, 157, 143, 150, 158, 159, 150, 155, 153, 156, 144, 143, 143, 146, 143, 146, 139, 146, 134, 148, 149, 146, 142, 158, 151, 141, 145, 159, 145, 144, 146, 143, 139, 142, 145, 144, 153, 147, 146, 144, 138, 150, 131, 148, 150, 139, 147, 139, 145, 148, 139, 150, 136, 148, 138, 126, 138, 151, 142, 134, 145, 145, 132, 141, 145, 140, 142, 145, 145, 144, 145, 144, 146, 144, 146, 144, 150, 145, 148, 145, 149, 145, 149, 146, 145, 142, 147, 141, 145, 145, 146, 147, 155, 146, 144, 145, 146, 144, 149, 147, 148, 147, 149, 148, 143, 149, 147, 147, 147, 146, 141, 145, 146, 145, 145, 144, 146, 141, 145, 146, 146, 145, 146, 151, 146, 148, 146, 147, 144, 142, 144, 139, 148, 148, 147, 149, 152, 143, 147, 146, 144, 145, 146, 145, 145, 149, 154, 149, 145, 142, 144, 145, 145, 147, 145, 150, 146, 144, 144, 145, 143, 150, 145, 146, 148, 143, 149, 144, 147, 142, 149, 146, 146, 151, 145, 146, 148, 146, 141, 146, 140, 146, 143, 141, 147, 143, 143, 145, 148, 148, 143, 150, 145, 151, 148, 149, 147, 144, 145, 147, 147, 145, 146, 143, 143, 149, 147, 144, 148, 146, 145, 145, 147, 144, 150, 147, 147, 149, 147, 150, 148, 145, 148, 139, 144, 146, 141, 143, 145, 145, 150, 145, 146, 145, 147, 143, 142, 144, 148, 142, 148, 150, 145, 144, 145, 144, 144, 141, 142, 146, 151, 144, 148, 144, 150, 143, 141, 147, 142, 144, 147, 149, 146, 147, 145, 146, 142, 144, 144, 146, 140, 149, 145, 147, 142, 148, 146, 144, 147, 143, 143, 144, 145, 146, 145, 144, 147, 146, 146, 145, 149, 143, 143, 148, 147, 146, 139, 142, 141, 148, 146, 140, 147, 142, 145, 143, 144, 147, 142, 144, 146, 142, 144, 146, 142, 141, 150, 147, 147, 147, 144, 141, 146, 140, 141, 140, 144, 150, 141, 147, 146, 146, 148, 143, 151, 145, 146, 145, 143, 147, 148, 148, 145, 147, 147, 142, 146, 149, 144, 147, 147, 144, 147, 145, 145, 144, 144, 148, 147, 147, 146, 146, 154, 147, 154, 146, 143, 143, 144, 150, 147, 144, 147, 144, 152, 144, 146, 149, 141, 147, 144, 147, 146, 149, 142, 144, 144, 145, 172, 153, 153, 149, 144, 139, 141, 144, 144, 150, 146, 146, 146, 143, 152, 150, 148, 147, 149, 146, 151, 143, 147, 146, 146, 150, 146, 144, 146, 148, 145, 147, 154, 142, 148, 142, 145, 145, 141, 149, 147, 144, 149, 147, 144, 146, 146, 146, 148, 148, 144, 146, 147, 147, 149, 142, 141, 149, 146, 143, 144, 145, 148, 146, 156, 145, 146, 147, 145, 142, 146, 148, 148, 157, 147, 146, 148, 146, 142, 146, 147, 144, 146, 138, 146, 146, 145, 148, 144, 142, 144, 144, 155, 145, 147, 147, 146, 131, 148, 148, 146, 146, 143, 127, 139, 146, 151, 147, 150, 141, 149, 146, 143, 142, 146, 147, 147, 146, 147, 139, 146, 149, 146, 148, 154, 149, 145, 149, 133, 117, 149, 148, 144, 149, 146, 150, 146, 148, 144, 145, 144, 143, 143, 145, 145, 147, 149, 147, 144, 142, 148, 139, 148, 147, 143, 151, 145, 144, 148, 126, 152, 151, 150, 151, 145, 147, 143, 148, 144, 142, 147, 145, 145, 147, 148, 148, 147, 146, 146, 172, 144, 147, 143, 144, 142, 145, 145, 148, 154, 145, 148, 144, 149, 149, 139, 146, 146, 144, 148, 153, 144, 152, 143, 144, 146, 135, 145, 146, 146, 148, 145, 151, 161, 140, 144, 142, 138, 147, 146, 150, 149, 156, 138, 143, 142, 147, 151, 151, 143, 142, 159, 148, 152, 149, 153, 143, 141, 137, 147, 146, 156, 156, 150, 149, 149, 149, 155, 144, 146, 143, 146, 146, 148, 144, 149, 147, 154, 131, 140, 152, 145, 159, 148, 144, 148, 146, 151, 143, 148, 154, 143, 144, 137, 141, 139, 143, 140, 159, 156, 151, 143, 148, 159, 150, 145, 147, 140, 147, 134, 145, 143, 145, 151, 148, 144, 147, 148, 143, 149, 143, 145, 146, 144, 151, 146, 142, 142, 156, 143, 156, 148, 142, 151, 149, 145, 147, 144, 146, 150, 142, 139, 148, 151, 146, 137, 144, 143, 148, 140, 161, 152, 143, 143, 151, 145, 149, 143, 149, 142, 145, 151, 146, 142, 141, 144, 147, 146, 149, 146, 148, 142, 145, 145, 142, 153, 148, 149, 146, 146, 137, 162, 154, 148, 144, 139, 143, 139, 140, 140, 147, 147, 148, 150, 149, 144, 147, 152, 149, 143, 149, 146, 143, 138, 143, 147, 139, 151, 143, 141, 145, 146, 144, 138, 148, 145, 146, 145, 141, 148, 143, 151, 143, 149, 146, 144, 149, 142, 140, 146, 144, 149, 142, 145, 157, 152, 149, 141, 144, 152, 145, 148, 149, 154, 143, 148, 152, 148, 143, 147, 147, 151, 146, 154, 152, 141, 146, 149, 138, 142, 154, 149, 140, 153, 148, 138, 143, 143, 148, 139, 141, 142, 155, 150, 151, 146, 137, 147, 147, 157, 145, 149, 141, 145, 146, 143, 152, 144, 143, 151, 131, 148, 146, 150, 145, 146, 145, 144, 142, 145, 149, 144, 149, 156, 143, 141, 145, 142, 143, 141, 142, 141, 146, 147, 146, 143, 142, 142, 145, 144, 146, 147, 143, 141, 147, 150, 143, 145, 148, 143, 142, 148, 146, 137, 147, 151, 141, 147, 134, 146, 145, 139, 142, 149, 149, 136, 144, 153, 150, 141, 145, 146, 145, 142, 143, 145, 148, 147, 149, 149, 141, 145, 140, 143, 154, 158, 155, 147, 148, 145, 145, 139, 146, 145, 148, 142, 145, 145, 148, 145, 145, 142, 146, 143, 147, 144, 143, 145, 146, 149, 143, 146, 147, 145, 138, 142, 146, 151, 145, 139, 143, 145, 145, 150, 142, 144, 147, 140, 146, 144, 142, 144, 150, 148, 141, 161, 148, 145, 143, 145, 146, 143, 138, 147, 145, 143, 148, 145, 151, 146, 146, 147, 149, 142, 146, 149, 155, 145, 142, 142, 144, 146, 151, 145, 144, 149, 141, 145, 149, 145, 145, 153, 145, 146, 141, 142, 147, 144, 147, 147, 145, 150, 151, 146, 145, 151, 143, 144, 149, 154, 147, 142, 148, 144, 149, 144, 146, 145, 146, 145, 143, 146, 142, 144, 147, 154, 146, 146, 143, 144, 147, 144, 143, 144, 151, 151, 149, 144, 134, 144, 151, 150, 132, 147, 150, 146, 139, 148, 148, 143, 143, 143, 140, 145, 147, 139, 146, 144, 147, 141, 143, 158, 148, 148, 135, 146, 183, 125, 203, 153, 150, 152, 131, 147, 141, 132, 153, 145, 173, 144, 137, 138, 148, 150, 140, 152, 112, 150, 139, 153, 145, 159, 137, 140, 153, 147, 145, 149, 122, 170, 151, 129, 150, 155, 137, 111, 155, 140, 156, 135, 150, 144, 136, 160, 150, 141, 145, 147, 136, 131, 146, 145, 157, 137, 139, 144, 152, 159, 157, 120, 147, 141, 150, 129, 143, 155, 147, 137, 140, 143, 147, 148, 154, 145, 144, 138, 159, 141, 142, 139, 158, 155, 175, 152, 151, 144, 142, 156, 144, 145, 155, 169, 232, 147, 158, 142, 142, 165, 149, 148, 139, 128, 150, 151, 154, 137, 139, 124, 145, 148, 134, 147, 148, 136, 147, 140, 148, 139, 154, 149, 129, 126, 147, 154, 159, 142, 129, 135, 148, 168, 141, 148, 135, 149, 153, 144, 159, 143, 146, 139, 127, 141, 148, 148, 151, 158, 141, 153, 145, 158, 139, 142, 149, 140, 157, 136, 146, 142, 134, 143, 141, 143, 146, 157, 146, 147, 133, 136, 143, 146, 154, 147, 136, 128, 143, 143, 161, 134, 156, 151, 143, 148, 158, 140, 141, 146, 135, 135, 167, 160, 161, 158, 149, 111, 146, 143, 135, 148, 151, 151, 148, 143, 150, 141, 166, 134, 112, 147, 151, 138, 126, 149, 137, 142, 154, 126, 140, 123, 124, 147, 138, 194, 145, 150, 98, 154, 155, 157, 114, 155, 171, 153, 125, 148, 160, 157, 144, 155, 115, 144, 148, 138, 152, 123, 139, 156, 134, 149, 157, 153, 147, 145, 141, 131, 137, 140, 149, 152, 165, 141, 133, 148, 145, 142, 128, 136, 150, 143, 140, 131, 147, 162, 155, 141, 144, 127, 135, 149, 141, 154, 158, 135, 141, 146, 148, 130, 142, 155, 138, 140, 146, 152, 142, 152, 153, 140, 131, 154, 143, 145, 154, 147, 145, 158, 145, 171, 140, 146, 139, 144, 144, 142, 149, 146, 145, 154, 166, 153, 141, 141, 153, 140, 147, 163, 146, 143, 148, 151, 135, 137, 151, 150, 134, 143, 142, 141, 144, 148, 144, 149, 147, 147, 144, 141, 160, 149, 135, 147, 139, 151, 141, 138, 157, 145, 141, 150, 146, 151, 150, 137, 140, 149, 152, 155, 146, 143, 153, 140, 142, 138, 147, 165, 151, 164, 144, 150, 144, 151, 139, 158, 155, 147, 154, 148, 161, 132, 153, 140, 142, 149, 137, 145, 134, 160, 154, 147, 149, 150, 134, 146, 160, 158, 144, 153, 140, 145, 161, 140, 146, 139, 141, 140, 141, 137, 140, 139, 141, 140, 130, 147, 145, 147, 147, 145, 153, 142, 151, 139, 148, 147, 147, 144, 139, 145, 146, 148, 154, 141, 141, 141, 150, 148, 153, 134, 143, 141, 143, 148, 142, 147, 134, 149, 159, 149, 145, 137, 150, 154, 143, 148, 142, 143, 153, 142, 151, 151, 134, 139, 148, 155, 143, 138, 156, 154, 142, 152, 155, 139, 153, 147, 157, 151, 147, 146, 153, 145, 149, 158, 151, 137, 145, 151, 153, 157, 159, 151, 139, 141, 154, 153, 147, 161, 151, 147, 142, 143, 151, 159, 152, 147, 142, 152, 147, 149, 143, 129, 145, 153, 142, 139, 142, 145, 128, 142, 145, 147, 145, 141, 156, 145, 171, 148, 142, 148, 148, 116, 148, 136, 149, 156, 141, 143, 145, 151, 149, 139, 153, 140, 137, 142, 141, 150, 147, 155, 157, 147, 151, 155, 149, 141, 130, 142, 145, 143, 149, 148, 148, 148, 150, 141, 153, 146, 149, 128, 144, 137, 152, 144, 144, 141, 142, 151, 155, 142, 147, 133, 139, 153, 147, 138, 147, 148, 144, 143, 144, 145, 157, 143, 146, 148, 155, 139, 152, 146, 144, 141, 144, 139, 146, 145, 151, 183, 147, 150, 146, 148, 148, 155, 146, 143, 144, 151, 145, 141, 142, 143, 147, 146, 151, 147, 156, 169, 160, 141, 147, 130, 147, 144, 157, 148, 142, 143, 139, 169, 144, 149, 142, 146, 142, 150, 139, 146, 177, 146, 146, 146, 137, 141, 147, 152, 141, 144, 137, 141, 146, 141, 138, 136, 143, 150, 148, 141, 144, 148, 143, 139, 147, 144, 150, 158, 153, 158, 146, 150, 140, 146, 145, 145, 145, 142, 146, 149, 145, 146, 131, 137, 143, 145, 147, 137, 141, 144, 151, 153, 151, 137, 146, 149, 148, 144, 149, 140, 147, 166, 141, 140, 138, 140, 147, 138, 144, 145, 147, 145, 143, 148, 143, 150, 143, 140, 153, 155, 182, 148, 116, 156, 143, 171, 138, 146, 147, 143, 151, 145, 148, 147, 151, 157, 150, 145, 153, 151, 145, 147, 146, 133, 153, 148, 130, 147, 158, 151, 147, 152, 147, 153, 146, 138, 151, 143, 144, 148, 139, 150, 142, 146, 146, 142, 144, 149, 145, 145, 140, 141, 131, 148, 147, 149, 151, 144, 151, 141, 144, 150, 148, 145, 147, 142, 148, 145, 146, 154, 147, 148, 148, 148, 144, 148, 144, 142, 138, 145, 140, 156, 146, 147, 149, 144, 149, 146, 141, 145, 146, 145, 146, 148, 144, 154, 147, 147, 143, 151, 148, 147, 154, 145, 147, 150, 146, 144, 147, 145, 137, 148, 150, 145, 144, 148, 148, 146, 146, 149, 147, 144, 151, 143, 148, 145, 148, 155, 155, 146, 147, 143, 156, 145, 146, 144, 146, 145, 139, 139, 147, 142, 136, 144, 144, 153, 153, 138, 152, 150, 144, 146, 151, 151, 144, 145, 143, 147, 145, 145, 153, 151, 143, 146, 145, 148, 153, 148, 145, 150, 149, 134, 152, 139, 135, 142, 148, 145, 145, 149, 146, 148, 146, 149, 145, 149, 151, 148, 140, 144, 152, 147, 152, 136, 145, 147, 152, 149, 145, 148, 143, 146, 143, 149, 156, 145, 147, 145, 149, 147, 149, 144, 133, 146, 148, 129, 154, 143, 144, 157, 143, 137, 149, 148, 149, 143, 148, 146, 150, 144, 146, 143, 145, 144, 145, 149, 147, 145, 146, 149, 145, 144, 143, 144, 140, 153, 148, 149, 147, 146, 134, 146, 143, 151, 149, 145, 150, 143, 142, 144, 138, 147, 151, 145, 148, 144, 148, 150, 146, 151, 147, 143, 149, 145, 144, 151, 143, 147, 140, 144, 146, 146, 148, 153, 145, 147, 149, 148, 152, 154, 149, 154, 151, 148, 154, 146, 129, 152, 131, 148, 144, 175, 142, 130, 198, 137, 147, 154, 149, 153, 141, 151, 160, 151, 143, 146, 151, 151, 136, 147, 151, 149, 140, 140, 145, 157, 140, 134, 143, 140, 149, 140, 157, 157, 147, 121, 140, 132, 149, 134, 142, 140, 142, 146, 152, 149, 146, 135, 143, 138, 147, 157, 142, 145, 162, 134, 153, 149, 140, 151, 142, 151, 139, 153, 143, 140, 146, 147, 144, 141, 148, 148, 133, 131, 144, 145, 144, 155, 139, 144, 136, 150, 162, 161, 164, 155, 151, 132, 144, 142, 145, 145, 144, 142, 148, 146, 144, 141, 155, 139, 152, 139, 134, 145, 144, 142, 142, 140, 153, 145, 147, 150, 133, 140, 117, 141, 144, 128, 139, 150, 142, 164, 143, 139, 155, 138, 132, 153, 133, 150, 139, 135, 147, 146, 160, 132, 144, 144, 153, 158, 140, 162, 143, 126, 136, 144, 148, 154, 144, 151, 154, 152, 144, 141, 151, 149, 140, 139, 149, 138, 144, 154, 139, 148, 132, 149, 142, 147, 156, 163, 152, 136, 145, 148, 142, 150, 167, 145, 126, 143, 143, 145, 153, 151, 150, 154, 157, 155, 137, 135, 146, 140, 145, 145, 141, 135, 150, 139, 133, 151, 140, 128, 145, 141, 153, 163, 170, 134, 127, 140, 144, 147, 140, 143, 140, 147, 150, 137, 145, 136, 141, 138, 138, 140, 160, 151, 153, 140, 132, 149, 146, 137, 154, 152, 137, 148, 149, 142, 148, 135, 137, 144, 145, 148, 126, 137, 110, 152, 150, 142, 153, 137, 160, 146, 156, 131, 101, 155, 148, 145, 149, 135, 144, 142, 114, 149, 153, 146, 145, 145, 152, 151, 137, 154, 152, 146, 147, 120, 148, 148, 150, 123, 156, 160, 192, 195, 142, 146, 177, 151, 153, 142, 136, 164, 139, 146, 152, 127, 156, 145, 139, 145, 149, 160, 150, 157, 178, 168, 140, 145, 153, 159, 153, 147, 162, 137, 154, 153, 139, 140, 122, 135, 170, 146, 139, 150, 159, 151, 150, 162, 160, 145, 163, 148, 177, 162, 144, 149, 137, 125, 111, 132, 151, 130, 141, 152, 155, 147, 169, 149, 146, 173, 151, 141, 142, 148, 146, 154, 145, 167, 168, 138, 150, 144, 150, 128, 150, 140, 155, 146, 149, 152, 181, 134, 144, 147, 146, 162, 145, 148, 145, 132, 164, 120, 149, 147, 172, 153, 139, 199, 139, 150, 122, 129, 157, 140, 141, 125, 147, 136, 155, 142, 150, 148, 123, 120, 154, 195, 141, 143, 131, 152, 148, 150, 145, 138, 122, 141, 162, 156, 146, 157, 124, 146, 147, 136, 141, 125, 140, 138, 143, 139, 152, 104, 152, 162, 129, 151, 160, 163, 138, 139, 152, 156, 140, 148, 159, 163, 125, 155, 138, 143, 151, 143, 165, 148, 138, 151, 177, 142, 175, 119, 148, 145, 150, 121, 144, 145, 146, 115, 148, 157, 172, 203, 144, 133, 125, 118, 98, 134, 120, 141, 130, 146, 139, 157, 160, 138, 142, 168, 235, 163, 145, 124, 140, 139, 163, 147, 145, 142, 144, 138, 145, 147, 142, 143, 145, 147, 144, 146, 151, 145, 146, 148, 148, 146, 143, 130, 145, 161, 145, 152, 142, 148, 155, 135, 145, 146, 163, 147, 144, 145, 144, 150, 160, 143, 145, 134, 142, 146, 150, 143, 151, 145, 139, 146, 143, 153, 149, 148, 146, 137, 143, 140, 147, 146, 147, 147, 148, 139, 145, 148, 152, 145, 171, 150, 135, 135, 149, 147, 149, 139, 146, 150, 141, 141, 130, 148, 139, 141, 146, 146, 146, 145, 139, 149, 147, 157, 145, 150, 143, 151, 152, 139, 179, 157, 144, 149, 145, 145, 139, 140, 144, 148, 142, 154, 149, 143, 148, 143, 141, 146, 148, 147, 150, 148, 153, 141, 145, 136, 125, 142, 143, 146, 145, 146, 146, 144, 148, 138, 148, 134, 147, 150, 146, 144, 136, 147, 141, 157, 144, 137, 148, 146, 145, 139, 149, 137, 152, 148, 143, 162, 150, 140, 149, 145, 157, 144, 142, 146, 144, 151, 148, 144, 140, 145, 148, 139, 130, 154, 147, 144, 145, 145, 141, 160, 143, 149, 146, 149, 148, 147, 153, 145, 142, 147, 149, 146, 145, 147, 136, 149, 148, 150, 154, 137, 148, 140, 146, 151, 149, 148, 148, 149, 136, 146, 138, 137, 154, 146, 152, 150, 148, 154, 147, 142, 149, 140, 139, 143, 149, 140, 146, 141, 148, 149, 142, 152, 144, 142, 151, 147, 147, 140, 146, 135, 149, 147, 150, 145, 157, 139, 143, 142, 142, 147, 137, 148, 144, 130, 143, 136, 147, 142, 141, 144, 138, 146, 143, 144, 154, 135, 150, 154, 140, 159, 138, 148, 138, 143, 146, 134, 150, 151, 146, 146, 133, 160, 156, 161, 149, 146, 159, 144, 149, 151, 143, 152, 157, 157, 135, 142, 158, 122, 151, 166, 144, 150, 135, 142, 151, 162, 148, 152, 134, 229, 130, 100, 146, 169, 135, 153, 138, 142, 130, 135, 139, 170, 143, 167, 139, 140, 150, 154, 150, 139, 158, 140, 143, 130, 138, 123, 130, 138, 147, 148, 143, 151, 145, 145, 141, 132, 146, 139, 144, 154, 152, 142, 142, 154, 147, 125, 149, 135, 151, 132, 152, 151, 145, 140, 152, 168, 135, 143, 144, 135, 138, 157, 151, 138, 141, 145, 143, 144, 134, 156, 150, 140, 149, 153, 156, 131, 134, 142, 147, 148, 144, 156, 166, 136, 148, 146, 154, 163, 168, 135, 130, 162, 136, 153, 135, 124, 147, 141, 148, 153, 152, 148, 131, 161, 139, 137, 145, 137, 146, 150, 156, 142, 141, 135, 145, 144, 150, 147, 147, 137, 147, 138, 137, 146, 165, 130, 148, 144, 140, 175, 149, 159, 125, 147, 150, 158, 149, 142, 143, 135, 165, 150, 132, 155, 144, 137, 152, 135, 143, 148, 184, 142, 160, 131, 157, 140, 130, 134, 141, 131, 148, 141, 164, 126, 140, 152, 152, 156, 142, 153, 132, 129, 155, 147, 152, 139, 142, 142, 144, 139, 142, 149, 155, 149, 128, 141, 146, 126, 146, 138, 137, 149, 148, 143, 148, 147, 148, 150, 140, 137, 146, 131, 139, 161, 150, 139, 146, 161, 146, 147, 145, 144, 144, 141, 151, 140, 154, 135, 162, 141, 150, 154, 141, 138, 152, 150, 145, 146, 143, 133, 150, 147, 160, 145, 166, 142, 143, 145, 130, 143, 134, 151, 150, 145, 139, 137, 139, 146, 155, 137, 141, 137, 143, 141, 163, 139, 135, 159, 147, 149, 141, 141, 148, 147, 155, 148, 146, 139, 161, 145, 135, 148, 141, 149, 153, 145, 148, 146, 147, 149, 139, 143, 138, 141, 126, 139, 145, 152, 139, 140, 148, 149, 142, 145, 138, 161, 142, 146, 139, 144, 152, 131, 140, 147, 136, 152, 146, 139, 144, 148, 136, 154, 143, 144, 139, 146, 148, 144, 146, 151, 150, 135, 155, 145, 153, 147, 138, 141, 142, 160, 144, 158, 137, 151, 147, 153, 147, 135, 146, 143, 154, 144, 143, 153, 155, 144, 145, 149, 153, 148, 154, 144, 135, 150, 149, 142, 141, 146, 144, 143, 143, 149, 148, 150, 154, 144, 146, 140, 156, 145, 152, 135, 144, 146, 139, 149, 148, 140, 146, 155, 150, 147, 152, 136, 149, 149, 144, 143, 149, 145, 143, 141, 150, 156, 144, 155, 148, 148, 149, 142, 153, 148, 146, 162, 141, 152, 129, 148, 138, 155, 144, 149, 131, 149, 154, 151, 154, 140, 141, 144, 143, 134, 151, 145, 141, 146, 158, 139, 146, 143, 151, 143, 147, 148, 150, 151, 137, 148, 144, 146, 147, 150, 147, 156, 141, 161, 160, 149, 147, 152, 142, 154, 168, 140, 139, 145, 139, 152, 165, 142, 146, 147, 147, 145, 146, 144, 161, 144, 143, 142, 153, 151, 154, 148, 138, 145, 142, 135, 159, 137, 151, 146, 145, 147, 150, 146, 152, 164, 144, 140, 128, 145, 150, 146, 149, 147, 147, 137, 186, 140, 152, 150, 140, 151, 144, 150, 148, 157, 142, 152, 143, 141, 153, 138, 151, 135, 151, 133, 145, 147, 143, 158, 157, 153, 150, 134, 157, 147, 144, 147, 154, 148, 153, 168, 156, 153, 127, 138, 128, 144, 141, 152, 151, 149, 154, 152, 143, 153, 139, 128, 143, 149, 152, 194, 150, 149, 140, 156, 146, 179, 144, 144, 156, 139, 148, 145, 152, 145, 133, 161, 153, 140, 145, 139, 144, 146, 145, 145, 158, 147, 139, 151, 153, 144, 146, 145, 158, 150, 151, 139, 145, 153, 146, 144, 149, 144, 150, 148, 139, 149, 144, 154, 148, 150, 162, 144, 144, 143, 149, 149, 150, 144, 131, 157, 132, 135, 147, 136, 148, 147, 153, 144, 138, 148, 150, 143, 142, 151, 153, 138, 139, 151, 170, 154, 139, 153, 130, 156, 160, 145, 145, 136, 146, 141, 143, 130, 141, 144, 131, 150, 138, 141, 148, 143, 132, 141, 141, 123, 150, 145, 136, 156, 161, 149, 147, 140, 150, 146, 143, 135, 147, 141, 149, 144, 160, 148, 146, 135, 150, 145, 124, 143, 140, 140, 127, 154, 151, 144, 141, 138, 138, 154, 143, 139, 140, 139, 139, 121, 143, 143, 166, 143, 143, 161, 152, 159, 152, 132, 140, 146, 152, 134, 139, 147, 142, 143, 142, 146, 138, 163, 166, 146, 155, 143, 153, 153, 141, 145, 153, 148, 143, 148, 142, 155, 150, 149, 145, 145, 163, 137, 141, 152, 139, 139, 148, 143, 132, 150, 150, 142, 146, 131, 143, 143, 144, 152, 148, 143, 140, 153, 142, 159, 138, 159, 137, 156, 148, 150, 145, 147, 157, 141, 156, 149, 153, 144, 153, 151, 149, 141, 138, 127, 146, 151, 148, 157, 149, 148, 150, 155, 149, 144, 151, 144, 149, 150, 150, 139, 149, 144, 153, 165, 144, 152, 138, 131, 147, 155, 135, 149, 152, 141, 148, 154, 124, 140, 140, 153, 136, 151, 146, 143, 144, 160, 138, 159, 144, 141, 157, 141, 143, 149, 152, 144, 150, 150, 142, 142, 157, 154, 144, 140, 159, 157, 138, 148, 139, 157, 145, 144, 159, 142, 140, 148, 149, 161, 142, 151, 151, 133, 148, 160, 145, 134, 141, 151, 136, 148, 146, 150, 143, 145, 155, 145, 150, 145, 146, 148, 138, 150, 144, 142, 162, 155, 134, 139, 146, 150, 145, 149, 125, 146, 138, 145, 154, 153, 137, 139, 137, 147, 145, 143, 138, 142, 148, 148, 140, 123, 148, 142, 137, 143, 146, 152, 154, 149, 133, 130, 138, 141, 146, 148, 144, 146, 136, 149, 143, 140, 145, 139, 163, 146, 155, 148, 165, 127, 148, 147, 138, 152, 142, 147, 144, 162, 152, 141, 138, 156, 146, 143, 138, 141, 174, 147, 174, 135, 140, 148, 144, 144, 149, 132, 149, 148, 154, 149, 137, 137, 134, 161, 137, 153, 144, 148, 143, 138, 152, 147, 140, 146, 142, 141, 137, 149, 147, 142, 139, 143, 145, 142, 144, 148, 150, 140, 150, 152, 145, 150, 143, 149, 149, 144, 149, 150, 147, 146, 144, 147, 148, 148, 143, 148, 142, 149, 148, 146, 150, 141, 144, 144, 140, 143, 150, 147, 143, 140, 142, 129, 144, 147, 150, 145, 145, 143, 143, 145, 145, 148, 148, 148, 130, 148, 150, 145, 144, 142, 155, 142, 147, 149, 154, 144, 145, 145, 150, 144, 146, 142, 150, 137, 145, 132, 140, 143, 149, 139, 149, 147, 147, 150, 141, 153, 145, 136, 133, 146, 147, 145, 144, 141, 152, 143, 147, 146, 151, 149, 145, 145, 150, 146, 138, 149, 148, 147, 148, 146, 145, 141, 145, 142, 144, 149, 147, 137, 149, 153, 152, 151, 147, 144, 143, 147, 149, 155, 135, 140, 144, 144, 148, 144, 148, 141, 147, 149, 153, 152, 147, 149, 150, 158, 153, 146, 144, 144, 141, 151, 149, 142, 147, 142, 147, 149, 149, 151, 146, 154, 147, 141, 152, 148, 146, 147, 147, 144, 140, 143, 145, 149, 137, 144, 146, 149, 148, 145, 148, 147, 144, 150, 143, 154, 143, 148, 147, 144, 140, 145, 145, 143, 148, 146, 143, 144, 143, 146, 141, 145, 145, 150, 150, 146, 145, 141, 142, 144, 149, 148, 143, 148, 147, 149, 147, 148, 142, 146, 145, 149, 145, 137, 149, 149, 149, 143, 149, 147, 144, 144, 148, 136, 154, 146, 143, 144, 144, 137, 142, 147, 151, 145, 147, 141, 142, 145, 147, 148, 143, 146, 148, 147, 147, 141, 134, 148, 152, 145, 144, 145, 148, 138, 143, 148, 142, 153, 140, 146, 144, 157, 143, 144, 120, 146, 147, 145, 146, 145, 140, 149, 145, 154, 144, 148, 142, 143, 146, 143, 146, 155, 149, 146, 146, 139, 140, 146, 150, 142, 148, 143, 147, 151, 142, 140, 146, 155, 146, 154, 140, 146, 142, 144, 141, 150, 147, 163, 145, 146, 146, 147, 148, 149, 144, 144, 149, 148, 154, 145, 141, 144, 150, 142, 149, 149, 143, 149, 146, 143, 137, 127, 145, 152, 150, 148, 141, 140, 148, 143, 149, 119, 146, 145, 144, 147, 145, 145, 141, 132, 146, 142, 148, 146, 149, 148, 152, 143, 147, 143, 146, 145, 155, 147, 142, 140, 146, 140, 146, 145, 145, 145, 166, 146, 142, 152, 142, 151, 139, 144, 148, 172, 146, 148, 147, 145, 145, 156, 143, 146, 145, 147, 147, 145, 146, 144, 147, 146, 144, 140, 141, 148, 145, 142, 152, 151, 139, 151, 141, 147, 146, 152, 149, 146, 147, 152, 144, 149, 148, 146, 145, 142, 147, 148, 144, 146, 154, 144, 144, 145, 150, 142, 152, 144, 139, 156, 150, 144, 148, 146, 147, 150, 139, 150, 144, 149, 142, 150, 145, 159, 149, 147, 146, 141, 144, 145, 145, 146, 152, 151, 142, 147, 144, 141, 146, 145, 148, 150, 146, 144, 145, 144, 146, 144, 184, 148, 133, 146, 146, 149, 144, 116, 143, 145, 145, 145, 145, 147, 146, 147, 148, 142, 152, 141, 148, 147, 140, 151, 152, 142, 149, 143, 153, 143, 150, 138, 144, 149, 148, 152, 149, 146, 160, 151, 152, 135, 139, 145, 147, 146, 141, 138, 144, 144, 147, 157, 142, 143, 151, 151, 143, 141, 147, 148, 144, 144, 140, 149, 151, 146, 153, 146, 146, 145, 148, 144, 140, 154, 147, 148, 149, 146, 144, 150, 142, 150, 140, 146, 139, 145, 156, 146, 149, 146, 149, 144, 144, 145, 141, 147, 144, 144, 146, 143, 151, 145, 147, 146, 142, 153, 153, 145, 148, 145, 145, 145, 148, 149, 162, 144, 147, 151, 147, 142, 139, 149, 145, 152, 150, 146, 145, 145, 141, 146, 148, 152, 151, 147, 149, 152, 147, 141, 149, 139, 151, 144, 140, 142, 143, 151, 151, 146, 149, 143, 152, 149, 143, 145, 143, 141, 149, 140, 144, 148, 145, 148, 143, 122, 145, 155, 155, 141, 151, 146, 146, 146, 140, 152, 147, 151, 148, 142, 140, 148, 147, 147, 149, 146, 142, 145, 146, 150, 142, 137, 156, 147, 142, 145, 144, 143, 160, 146, 145, 151, 144, 145, 147, 144, 148, 134, 141, 162, 150, 133, 137, 142, 153, 143, 152, 149, 146, 150, 148, 146, 153, 153, 140, 148, 149, 144, 150, 145, 138, 143, 146, 151, 131, 149, 154, 150, 146, 148, 151, 150, 141, 151, 150, 145, 147, 143, 149, 150, 149, 148, 149, 152, 154, 154, 147, 147, 151, 148, 148, 149, 161, 148, 145, 142, 153, 146, 142, 156, 147, 150, 157, 144, 146, 150, 142, 143, 143, 143, 146, 157, 138, 147, 146, 156, 143, 149, 140, 146, 146, 148, 148, 141, 156, 153, 125, 142, 145, 158, 158, 146, 132, 147, 155, 149, 142, 144, 146, 136, 149, 146, 140, 144, 139, 152, 144, 145, 150, 145, 142, 145, 130, 150, 130, 147, 135, 147, 147, 145, 156, 146, 142, 143, 143, 150, 147, 165, 151, 156, 144, 152, 153, 143, 141, 149, 148, 149, 146, 143, 152, 139, 146, 144, 144, 142, 153, 144, 150, 142, 145, 144, 143, 148, 142, 138, 138, 147, 138, 149, 149, 161, 132, 151, 154, 142, 144, 143, 152, 143, 150, 147, 145, 150, 158, 143, 143, 147, 150, 148, 152, 136, 145, 145, 140, 136, 139, 147, 148, 145, 155, 144, 149, 140, 143, 146, 149, 138, 145, 144, 152, 141, 160, 146, 142, 143, 149, 142, 153, 146, 149, 145, 140, 142, 142, 145, 134, 143, 135, 147, 151, 140, 143, 140, 146, 164, 145, 141, 139, 145, 150, 150, 143, 141, 143, 143, 150, 152, 155, 147, 147, 144, 154, 152, 144, 144, 141, 143, 157, 145, 145, 138, 147, 171, 143, 148, 144, 148, 155, 148, 141, 140, 139, 150, 147, 148, 147, 149, 152, 148, 151, 142, 144, 145, 145, 149, 131, 153, 143, 154, 144, 149, 141, 143, 151, 138, 146, 140, 144, 146, 160, 142, 146, 146, 146, 144, 150, 151, 158, 147, 146, 137, 150, 141, 144, 143, 149, 146, 133, 142, 148, 141, 134, 135, 143, 135, 139, 145, 142, 137, 138, 144, 147, 157, 145, 157, 155, 142, 151, 146, 140, 146, 133, 151, 140, 192, 153, 136, 157, 127, 146, 121, 154, 145, 144, 161, 164, 145, 157, 149, 148, 147, 147, 151, 152, 141, 141, 156, 155, 151, 147, 146, 146, 142, 145, 142, 152, 167, 152, 130, 146, 119, 147, 134, 137, 139, 152, 149, 151, 141, 150, 136, 150, 147, 140, 132, 123, 143, 158, 154, 142, 139, 139, 164, 145, 150, 160, 137, 140, 144, 144, 124, 137, 146, 142, 144, 89, 125, 135, 127, 145, 117, 151, 154, 147, 148, 170, 163, 148, 157, 149, 142, 150, 154, 157, 144, 147, 148, 147, 132, 142, 150, 148, 152, 164, 145, 140, 148, 130, 138, 144, 156, 140, 145, 153, 149, 157, 145, 141, 147, 141, 134, 143, 190, 150, 147, 141, 141, 139, 150, 149, 147, 121, 148, 135, 132, 144, 133, 147, 112, 146, 145, 139, 163, 148, 149, 143, 151, 92, 151, 141, 149, 141, 149, 142, 153, 122, 144, 155, 139, 123, 137, 143, 141, 152, 143, 141, 141, 140, 150, 140, 134, 146, 154, 146, 138, 142, 146, 150, 150, 148, 137, 131, 138, 148, 137, 139, 159, 151, 150, 123, 147, 135, 152, 151, 138, 147, 137, 140, 130, 135, 138, 150, 148, 143, 139, 144, 157, 144, 153, 146, 143, 90, 145, 148, 145, 143, 140, 140, 145, 136, 141, 140, 139, 141, 135, 150, 162, 140, 141, 149, 138, 135, 139, 156, 122, 140, 166, 142, 153, 145, 144, 135, 145, 144, 159, 148, 148, 143, 145, 150, 150, 143, 148, 145, 146, 148, 147, 155, 146, 147, 146, 140, 142, 144, 142, 147, 148, 150, 148, 145, 147, 143, 145, 144, 145, 143, 146, 149, 144, 149, 149, 133, 146, 147, 144, 145, 146, 148, 147, 149, 147, 148, 152, 146, 126, 144, 145, 143, 144, 143, 142, 146, 171, 148, 145, 148, 148, 152, 157, 148, 145, 196, 145, 149, 147, 146, 149, 143, 144, 148, 147, 142, 146, 147, 147, 145, 151, 147, 144, 148, 148, 124, 146, 145, 145, 148, 133, 142, 144, 144, 140, 183, 145, 148, 144, 148, 142, 143, 145, 145, 136, 145, 142, 146, 142, 148, 147, 142, 146, 164, 146, 146, 147, 151, 146, 147, 143, 144, 140, 145, 147, 145, 144, 169, 147, 147, 144, 147, 148, 146, 148, 149, 145, 149, 144, 148, 143, 142, 154, 144, 158, 152, 152, 146, 141, 147, 149, 144, 148, 142, 147, 145, 146, 154, 148, 149, 147, 150, 145, 145, 145, 147, 145, 147, 148, 133, 149, 143, 152, 143, 144, 147, 148, 146, 143, 149, 147, 144, 146, 145, 145, 142, 144, 146, 149, 146, 145, 147, 147, 148, 147, 144, 145, 144, 147, 149, 149, 149, 144, 146, 147, 146, 145, 151, 146, 147, 149, 144, 145, 143, 149, 143, 145, 143, 149, 146, 145, 147, 151, 148, 146, 142, 148, 147, 145, 146, 147, 148, 145, 148, 148, 146, 151, 152, 146, 150, 148, 152, 145, 139, 145, 156, 129, 146, 150, 147, 143, 145, 148, 148, 145, 145, 153, 147, 142, 151, 136, 148, 145, 148, 135, 143, 154, 140, 150, 148, 149, 157, 136, 143, 145, 149, 145, 150, 148, 165, 150, 143, 148, 149, 138, 155, 151, 138, 171, 147, 143, 150, 128, 150, 148, 142, 147, 144, 135, 144, 177, 148, 147, 137, 146, 145, 144, 147, 153, 122, 145, 141, 147, 148, 155, 145, 143, 152, 153, 157, 150, 143, 140, 149, 128, 145, 139, 156, 147, 139, 137, 139, 144, 139, 140, 146, 146, 160, 145, 161, 138, 143, 144, 145, 137, 143, 148, 153, 147, 147, 166, 147, 146, 135, 145, 135, 131, 139, 144, 154, 154, 141, 146, 142, 146, 140, 144, 136, 180, 146, 135, 158, 143, 139, 136, 140, 142, 147, 149, 149, 147, 142, 126, 147, 158, 135, 145, 147, 150, 145, 148, 139, 128, 145, 143, 135, 148, 146, 150, 143, 141, 142, 153, 145, 146, 141, 142, 142, 150, 129, 136, 147, 137, 146, 150, 130, 145, 146, 154, 152, 151, 141, 155, 143, 131, 138, 153, 138, 144, 152, 131, 149, 137, 131, 145, 140, 164, 148, 144, 152, 153, 149, 148, 147, 132, 148, 138, 138, 147, 144, 139, 152, 155, 139, 154, 149, 151, 152, 171, 145, 147, 149, 152, 142, 139, 145, 157, 157, 148, 139, 156, 144, 144, 159, 148, 143, 143, 148, 130, 136, 148, 141, 149, 124, 134, 151, 145, 165, 147, 138, 136, 144, 148, 148, 146, 146, 156, 144, 160, 142, 140, 143, 146, 143, 139, 143, 143, 137, 148, 142, 147, 147, 143, 144, 148, 146, 148, 148, 148, 147, 141, 150, 151, 143, 148, 148, 150, 151, 147, 143, 147, 149, 143, 148, 145, 144, 146, 143, 145, 154, 143, 149, 147, 148, 154, 145, 146, 152, 142, 135, 152, 142, 146, 139, 148, 147, 148, 140, 141, 145, 149, 154, 144, 148, 140, 142, 134, 149, 145, 153, 148, 146, 145, 141, 149, 147, 147, 146, 144, 145, 149, 150, 141, 142, 141, 156, 145, 146, 145, 150, 143, 144, 144, 147, 150, 142, 148, 147, 141, 151, 138, 147, 144, 143, 145, 148, 149, 148, 143, 147, 133, 145, 144, 107, 143, 153, 148, 144, 142, 150, 148, 149, 149, 148, 156, 148, 145, 144, 145, 138, 148, 141, 147, 141, 144, 147, 148, 148, 141, 152, 145, 142, 145, 147, 148, 147, 148, 141, 144, 150, 146, 146, 149, 146, 147, 149, 148, 147, 144, 149, 147, 147, 146, 145, 149, 143, 146, 152, 147, 143, 148, 144, 149, 149, 149, 145, 142, 139, 140, 141, 144, 144, 141, 154, 146, 141, 145, 148, 148, 140, 145, 147, 129, 145, 144, 157, 149, 178, 146, 144, 146, 145, 145, 144, 146, 150, 142, 159, 146, 140, 148, 142, 146, 150, 143, 147, 147, 142, 149, 145, 157, 115, 164, 143, 147, 144, 152, 144, 148, 142, 141, 150, 145, 146, 144, 148, 145, 141, 144, 148, 146, 147, 142, 150, 142, 147, 141, 151, 148, 143, 141, 138, 147, 146, 147, 149, 145, 147, 142, 142, 151, 145, 144, 141, 144, 149, 151, 141, 145, 137, 141, 164, 152, 140, 154, 145, 149, 126, 147, 145, 155, 139, 135, 152, 128, 147, 139, 145, 141, 151, 141, 139, 133, 138, 142, 141, 144, 137, 138, 141, 156, 154, 113, 152, 146, 164, 172, 137, 143, 155, 146, 135, 140, 137, 143, 135, 151, 138, 133, 155, 155, 133, 165, 142, 149, 144, 137, 147, 139, 143, 136, 156, 149, 143, 152, 143, 168, 148, 151, 134, 138, 146, 139, 147, 168, 140, 159, 140, 142, 137, 157, 130, 147, 145, 140, 120, 146, 136, 138, 143, 142, 143, 129, 150, 145, 143, 137, 143, 127, 159, 138, 137, 146, 149, 149, 139, 148, 151, 137, 168, 162, 153, 143, 149, 144, 144, 149, 140, 146, 148, 142, 157, 161, 126, 140, 143, 149, 157, 135, 146, 148, 147, 176, 142, 147, 153, 155, 144, 137, 135, 170, 148, 136, 151, 137, 145, 148, 151, 153, 168, 152, 193, 150, 146, 142, 148, 126, 135, 140, 138, 141, 135, 165, 149, 144, 135, 166, 146, 137, 152, 143, 153, 154, 157, 141, 148, 135, 144, 144, 145, 153, 123, 112, 162, 146, 144, 145, 145, 167, 128, 143, 150, 149, 155, 155, 127, 174, 143, 143, 158, 150, 150, 147, 140, 140, 149, 161, 153, 129, 134, 153, 146, 150, 158, 132, 139, 151, 158, 144, 142, 160, 143, 146, 155, 158, 160, 152, 155, 136, 142, 146, 128, 177, 147, 171, 139, 130, 143, 117, 134, 146, 140, 145, 149, 147, 136, 153, 157, 147, 144, 136, 146, 150, 142, 152, 139, 136, 151, 146, 145, 144, 145, 146, 140, 143, 152, 146, 139, 142, 145, 158, 139, 138, 144, 147, 147, 144, 137, 138, 149, 148, 149, 145, 170, 145, 138, 150, 140, 150, 148, 146, 138, 158, 144, 144, 144, 146, 150, 148, 127, 138, 147, 146, 153, 136, 145, 152, 146, 146, 144, 143, 152, 143, 147, 152, 145, 152, 151, 148, 156, 145, 150, 146, 152, 143, 148, 148, 144, 146, 143, 146, 144, 149, 146, 138, 143, 148, 142, 142, 147, 141, 139, 141, 145, 143, 130, 148, 147, 142, 139, 149, 145, 149, 139, 141, 147, 143, 146, 141, 133, 152, 144, 147, 144, 145, 151, 148, 140, 151, 152, 146, 145, 146, 151, 158, 144, 157, 148, 148, 147, 147, 141, 148, 146, 143, 150, 144, 149, 141, 142, 143, 145, 144, 143, 148, 151, 133, 141, 149, 153, 143, 145, 143, 140, 142, 146, 148, 156, 152, 154, 147, 145, 139, 150, 143, 136, 152, 146, 156, 143, 140, 135, 162, 141, 147, 150, 140, 135, 150, 150, 143, 138, 143, 142, 143, 149, 134, 153, 141, 136, 149, 144, 140, 135, 143, 138, 146, 148, 141, 146, 142, 140, 152, 146, 143, 143, 142, 132, 140, 141, 143, 146, 150, 147, 147, 148, 147, 145, 145, 155, 142, 148, 151, 147, 145, 146, 155, 154, 142, 140, 151, 146, 141, 147, 144, 143, 146, 144, 147, 146, 154, 149, 153, 135, 157, 153, 135, 139, 136, 152, 153, 146, 144, 150, 139, 137, 143, 139, 141, 147, 144, 148, 147, 141, 144, 144, 146, 148, 150, 147, 148, 143, 143, 143, 142, 149, 144, 146, 157, 146, 156, 141, 145, 149, 150, 139, 133, 150, 144, 146, 145, 149, 147, 146, 142, 136, 152, 144, 141, 149, 142, 146, 150, 148, 145, 147, 160, 143, 144, 147, 143, 146, 153, 149, 148, 149, 145, 148, 148, 147, 157, 145, 152, 145, 143, 137, 144, 151, 144, 150, 147, 142, 171, 147, 150, 147, 143, 153, 147, 142, 146, 147, 143, 147, 145, 149, 149, 150, 142, 145, 145, 148, 136, 147, 145, 140, 135, 144, 159, 147, 148, 143, 153, 150, 143, 145, 118, 141, 150, 143, 149, 143, 150, 145, 142, 147, 148, 137, 152, 152, 141, 179, 143, 145, 148, 149, 146, 137, 150, 142, 152, 147, 152, 139, 142, 148, 144, 152, 146, 147, 147, 143, 148, 143, 144, 143, 141, 151, 145, 149, 144, 146, 141, 144, 159, 148, 146, 148, 146, 144, 149, 153, 151, 142, 148, 147, 147, 161, 150, 161, 151, 142, 147, 149, 148, 147, 150, 144, 147, 148, 149, 147, 143, 149, 143, 156, 146, 145, 143, 153, 145, 150, 143, 146, 142, 144, 141, 141, 143, 140, 149, 138, 146, 145, 147, 140, 146, 156, 165, 138, 146, 147, 149, 148, 148, 148, 142, 150, 149, 156, 147, 149, 144, 146, 148, 144, 144, 141, 148, 152, 144, 152, 144, 145, 148, 148, 154, 144, 149, 151, 146, 128, 145, 142, 152, 152, 130, 145, 151, 142, 150, 140, 149, 149, 142, 148, 150, 147, 144, 144, 145, 146, 140, 143, 161, 145, 154, 146, 130, 151, 144, 147, 144, 144, 144, 151, 146, 142, 148, 146, 139, 144, 146, 152, 156, 153, 144, 145, 146, 145, 147, 146, 145, 144, 145, 147, 145, 138, 145, 146, 154, 144, 144, 147, 143, 147, 148, 138, 147, 145, 150, 143, 146, 155, 149, 142, 154, 153, 146, 146, 148, 147, 139, 148, 137, 145, 150, 146, 150, 147, 146, 148, 150, 147, 155, 142, 147, 141, 152, 148, 150, 148, 147, 140, 144, 151, 147, 145, 150, 135, 152, 147, 149, 149, 147, 147, 152, 144, 146, 146, 145, 149, 142, 145, 147, 146, 123, 148, 149, 151, 143, 144, 145, 148, 144, 138, 146, 149, 146, 130, 132, 140, 151, 146, 146, 158, 149, 142, 148, 145, 149, 148, 149, 144, 145, 147, 146, 149, 149, 145, 146, 143, 146, 144, 146, 144, 146, 147, 148, 148, 145, 140, 146, 146, 155, 141, 138, 147, 140, 139, 144, 144, 145, 146, 145, 146, 149, 147, 143, 149, 154, 147, 145, 135, 136, 144, 145, 145, 149, 142, 145, 144, 138, 140, 144, 146, 146, 143, 146, 147, 146, 147, 150, 148, 149, 147, 146, 146, 142, 142, 148, 145, 143, 146, 141, 145, 147, 148, 145, 148, 145, 147, 142, 136, 148, 143, 155, 145, 148, 148, 153, 146, 154, 145, 144, 145, 143, 139, 141, 154, 146, 145, 146, 145, 144, 145, 145, 148, 145, 145, 144, 148, 145, 150, 159, 145, 147, 144, 144, 150, 153, 145, 147, 150, 149, 152, 146, 146, 146, 143, 142, 147, 149, 143, 142, 154, 148, 160, 144, 150, 147, 145, 148, 148, 146, 156, 144, 146, 146, 145, 145, 146, 149, 149, 154, 146, 140, 143, 146, 142, 146, 152, 146, 139, 143, 141, 149, 150, 144, 145, 144, 143, 141, 146, 146, 149, 140, 145, 143, 143, 150, 150, 143, 138, 148, 151, 146, 142, 153, 143, 127, 144, 141, 149, 149, 142, 144, 144, 143, 144, 139, 143, 145, 162, 153, 145, 146, 147, 144, 144, 147, 148, 143, 139, 147, 146, 165, 143, 147, 147, 147, 143, 144, 143, 143, 150, 164, 139, 142, 143, 144, 145, 147, 144, 154, 148, 145, 145, 139, 145, 141, 144, 138, 147, 139, 143, 149, 152, 146, 147, 152, 138, 149, 149, 147, 147, 151, 150, 143, 148, 142, 143, 142, 143, 146, 148, 140, 139, 155, 147, 143, 140, 145, 142, 149, 144, 142, 146, 147, 146, 146, 149, 146, 149, 148, 143, 141, 147, 149, 144, 132, 146, 150, 143, 147, 149, 149, 145, 152, 148, 148, 143, 148, 147, 142, 147, 147, 147, 145, 141, 149, 149, 147, 146, 145, 146, 149, 148, 154, 145, 148, 150, 146, 146, 138, 143, 145, 150, 153, 143, 140, 150, 153, 149, 147, 143, 146, 147, 143, 143, 147, 145, 147, 143, 136, 140, 156, 149, 150, 145, 145, 147, 145, 149, 145, 151, 143, 146, 147, 149, 147, 149, 147, 142, 144, 144, 145, 146, 145, 152, 138, 145, 144, 142, 146, 154, 151, 142, 142, 136, 134, 132, 139, 141, 134, 138, 135, 141, 147, 145, 120, 169, 151, 154, 149, 144, 146, 125, 142, 151, 144, 151, 131, 148, 141, 174, 150, 156, 160, 149, 148, 143, 159, 143, 141, 144, 157, 158, 153, 139, 151, 150, 128, 156, 149, 195, 147, 162, 149, 155, 147, 155, 152, 137, 144, 161, 149, 148, 148, 138, 149, 132, 150, 148, 153, 142, 150, 145, 145, 154, 148, 148, 144, 146, 152, 145, 147, 133, 143, 132, 142, 148, 165, 146, 152, 150, 138, 152, 147, 142, 152, 154, 147, 146, 151, 137, 146, 141, 146, 147, 144, 147, 150, 146, 138, 149, 141, 131, 153, 150, 135, 148, 149, 122, 182, 141, 139, 145, 148, 149, 145, 147, 135, 142, 154, 146, 149, 145, 151, 152, 143, 143, 152, 152, 156, 144, 139, 141, 146, 157, 151, 145, 150, 138, 145, 142, 140, 144, 144, 147, 150, 143, 144, 114, 156, 147, 155, 148, 144, 142, 155, 154, 148, 149, 152, 143, 149, 150, 147, 142, 158, 136, 143, 138, 145, 133, 148, 141, 149, 171, 137, 138, 146, 147, 149, 142, 128, 147, 147, 147, 131, 148, 153, 147, 148, 144, 138, 146, 142, 141, 145, 153, 144, 152, 148, 145, 145, 149, 150, 179, 145, 152, 144, 149, 151, 165, 143, 141, 149, 146, 174, 152, 143, 145, 138, 138, 126, 150, 152, 155, 146, 131, 147, 144, 146, 128, 143, 153, 131, 145, 156, 139, 144, 152, 146, 144, 146, 153, 154, 154, 141, 158, 151, 150, 141, 145, 150, 143, 154, 149, 145, 149, 149, 145, 147, 143, 141, 139, 147, 155, 144, 143, 149, 144, 146, 147, 143, 142, 147, 141, 149, 151, 146, 144, 151, 156, 144, 153, 149, 147, 143, 146, 147, 145, 142, 153, 155, 146, 150, 141, 144, 147, 147, 142, 143, 150, 145, 146, 147, 150, 145, 142, 138, 156, 142, 127, 146, 144, 144, 145, 150, 147, 151, 148, 149, 156, 146, 139, 145, 133, 147, 144, 144, 155, 146, 135, 146, 146, 148, 147, 146, 136, 143, 155, 147, 140, 145, 148, 148, 144, 148, 145, 145, 145, 146, 145, 142, 147, 140, 150, 150, 146, 148, 150, 147, 145, 142, 145, 147, 142, 146, 146, 149, 148, 140, 143, 140, 136, 149, 149, 139, 150, 152, 147, 144, 142, 149, 146, 143, 136, 147, 148, 146, 142, 151, 144, 143, 146, 145, 142, 147, 146, 147, 156, 144, 143, 143, 150, 148, 155, 142, 141, 143, 155, 148, 150, 150, 147, 145, 146, 149, 146, 144, 144, 144, 143, 144, 147, 142, 146, 145, 141, 147, 151, 145, 144, 155, 143, 148, 147, 148, 165, 137, 145, 146, 146, 144, 146, 148, 143, 149, 149, 140, 144, 144, 145, 146, 157, 143, 145, 151, 151, 152, 147, 144, 138, 145, 146, 145, 144, 158, 146, 146, 143, 155, 145, 150, 148, 139, 149, 149, 161, 148, 143, 144, 136, 146, 143, 144, 144, 150, 148, 144, 146, 141, 149, 145, 150, 145, 145, 147, 141, 149, 147, 144, 140, 156, 149, 156, 137, 152, 152, 147, 150, 141, 143, 145, 136, 145, 146, 127, 139, 140, 137, 148, 143, 144, 144, 151, 140, 152, 148, 145, 150, 138, 138, 159, 137, 151, 144, 144, 149, 154, 153, 149, 145, 150, 145, 152, 152, 146, 146, 139, 151, 144, 148, 149, 144, 150, 153, 152, 139, 143, 148, 149, 142, 151, 144, 145, 144, 157, 158, 138, 151, 147, 147, 154, 151, 145, 152, 158, 145, 150, 146, 136, 139, 151, 145, 149, 147, 141, 152, 139, 143, 142, 142, 145, 147, 140, 145, 144, 144, 148, 148, 149, 129, 158, 142, 150, 144, 148, 146, 138, 140, 156, 135, 153, 134, 151, 149, 143, 147, 146, 152, 142, 136, 150, 147, 142, 154, 151, 162, 148, 148, 149, 143, 151, 147, 152, 148, 149, 147, 152, 144, 152, 146, 139, 143, 153, 141, 156, 143, 155, 153, 145, 151, 149, 137, 143, 122, 205, 143, 156, 144, 152, 147, 146, 150, 143, 158, 144, 145, 146, 140, 147, 140, 149, 142, 138, 152, 155, 145, 143, 140, 149, 154, 161, 149, 123, 136, 150, 140, 144, 143, 147, 147, 152, 144, 147, 148, 137, 138, 142, 137, 133, 143, 144, 143, 145, 144, 145, 142, 149, 150, 139, 146, 156, 137, 149, 144, 151, 139, 144, 146, 137, 140, 137, 135, 152, 140, 146, 144, 146, 143, 154, 167, 144, 141, 142, 131, 140, 144, 156, 150, 156, 135, 155, 149, 151, 148, 140, 137, 142, 146, 143, 148, 142, 148, 147, 142, 155, 141, 135, 141, 138, 149, 143, 146, 143, 145, 142, 144, 143, 143, 146, 146, 155, 146, 143, 155, 146, 152, 141, 147, 142, 140, 145, 157, 148, 144, 146, 144, 149, 148, 144, 123, 151, 149, 144, 149, 143, 149, 151, 146, 143, 155, 144, 147, 144, 150, 143, 149, 154, 146, 144, 145, 142, 149, 143, 150, 144, 148, 144, 146, 147, 145, 150, 152, 154, 144, 144, 161, 147, 143, 150, 139, 149, 146, 130, 152, 146, 146, 146, 147, 148, 145, 147, 149, 147, 147, 145, 139, 145, 149, 144, 146, 140, 152, 139, 144, 148, 147, 143, 150, 151, 148, 141, 140, 142, 142, 147, 150, 136, 147, 147, 147, 143, 139, 143, 150, 145, 133, 148, 145, 147, 144, 144, 148, 147, 144, 145, 143, 143, 153, 136, 136, 143, 137, 143, 147, 152, 146, 146, 148, 146, 149, 150, 143, 143, 147, 146, 144, 163, 146, 145, 145, 144, 147, 140, 143, 146, 146, 150, 146, 145, 154, 145, 148, 153, 144, 147, 149, 148, 147, 139, 144, 151, 146, 150, 150, 150, 148, 152, 156, 145, 151, 143, 143, 148, 144, 141, 149, 141, 146, 153, 145, 145, 146, 142, 149, 143, 146, 143, 145, 145, 150, 147, 146, 145, 146, 143, 151, 148, 143, 145, 150, 142, 144, 145, 141, 145, 146, 143, 143, 144, 153, 149, 141, 146, 142, 139, 150, 144, 144, 144, 143, 143, 145, 144, 144, 144, 149, 142, 146, 149, 149, 146, 147, 143, 143, 148, 144, 139, 146, 145, 143, 146, 154, 143, 146, 143, 143, 143, 147, 146, 139, 149, 142, 147, 147, 147, 150, 145, 146, 145, 145, 149, 149, 148, 148, 143, 146, 147, 153, 143, 145, 142, 147, 143, 150, 147, 149, 147, 148, 141, 144, 146, 145, 146, 143, 137, 145, 132, 145, 148, 145, 149, 132, 147, 149, 144, 148, 148, 143, 151, 148, 149, 147, 148, 148, 149, 141, 145, 151, 157, 147, 126, 147, 144, 142, 144, 146, 145, 147, 144, 146, 142, 152, 149, 151, 143, 137, 144, 144, 148, 145, 146, 138, 142, 147, 145, 147, 146, 141, 150, 153, 147, 146, 135, 147, 145, 147, 149, 142, 147, 145, 147, 144, 142, 143, 146, 142, 149, 147, 151, 147, 146, 145, 147, 150, 134, 150, 153, 142, 148, 146, 143, 145, 143, 145, 149, 141, 138, 146, 142, 147, 145, 147, 142, 139, 146, 148, 142, 142, 148, 147, 146, 145, 152, 151, 147, 143, 145, 154, 149, 149, 157, 147, 137, 142, 149, 142, 146, 157, 150, 146, 145, 144, 147, 165, 147, 144, 146, 148, 139, 150, 142, 145, 144, 150, 149, 147, 144, 151, 144, 148, 147, 141, 148, 142, 138, 146, 149, 145, 163, 181, 139, 149, 148, 142, 147, 153, 145, 151, 146, 146, 146, 146, 148, 146, 144, 149, 146, 153, 152, 144, 150, 146, 149, 142, 149, 146, 145, 142, 147, 175, 147, 140, 147, 150, 137, 142, 146, 145, 147, 147, 142, 145, 148, 141, 143, 146, 148, 149, 138, 116, 146, 145, 148, 141, 153, 142, 140, 139, 143, 145, 147, 140, 148, 117, 139, 146, 152, 227, 140, 158, 151, 143, 152, 144, 149, 126, 150, 150, 135, 144, 152, 132, 140, 128, 127, 152, 165, 137, 136, 149, 139, 143, 152, 150, 150, 143, 147, 147, 143, 181, 157, 154, 162, 157, 151, 142, 147, 158, 142, 167, 148, 148, 130, 157, 145, 151, 142, 155, 150, 191, 144, 141, 155, 152, 144, 160, 136, 139, 149, 157, 147, 144, 140, 139, 142, 135, 150, 149, 147, 149, 122, 138, 147, 139, 141, 137, 131, 119, 143, 159, 159, 139, 145, 156, 146, 147, 152, 146, 150, 147, 160, 146, 141, 146, 157, 144, 153, 145, 146, 120, 154, 141, 127, 157, 163, 144, 145, 151, 166, 142, 137, 142, 144, 148, 149, 146, 148, 147, 150, 142, 144, 153, 158, 157, 150, 145, 145, 143, 152, 145, 149, 149, 145, 133, 168, 149, 155, 141, 152, 141, 143, 150, 150, 141, 135, 145, 128, 148, 140, 138, 129, 138, 144, 169, 182, 153, 152, 153, 149, 170, 155, 151, 133, 150, 176, 125, 153, 145, 144, 143, 147, 146, 141, 120, 146, 148, 144, 146, 134, 145, 161, 141, 184, 140, 98, 136, 168, 144, 158, 147, 166, 136, 138, 135, 148, 148, 151, 153, 149, 153, 148, 139, 145, 159, 130, 145, 144, 167, 149, 134, 131, 160, 149, 142, 145, 126, 151, 148, 145, 139, 138, 168, 148, 146, 142, 120, 134, 138, 132, 129, 148, 139, 149, 137, 155, 154, 138, 149, 156, 156, 150, 152, 153, 148, 146, 127, 150, 148, 149, 138, 149, 153, 137, 137, 137, 131, 146, 149, 147, 144, 135, 139, 147, 160, 141, 143, 145, 153, 142, 156, 155, 144, 149, 147, 152, 145, 143, 152, 154, 140, 140, 135, 142, 149, 152, 149, 148, 150, 144, 134, 145, 156, 144, 134, 142, 147, 154, 148, 146, 152, 148, 143, 153, 135, 151, 151, 151, 139, 149, 159, 141, 155, 144, 151, 140, 152, 139, 146, 150, 148, 148, 151, 146, 145, 152, 150, 153, 146, 139, 161, 159, 149, 145, 143, 143, 152, 152, 146, 144, 144, 147, 143, 160, 149, 136, 154, 139, 158, 141, 141, 154, 147, 140, 143, 143, 144, 148, 141, 131, 141, 150, 146, 147, 140, 132, 146, 152, 150, 145, 147, 144, 135, 150, 142, 149, 143, 140, 139, 150, 139, 142, 146, 144, 147, 148, 146, 147, 146, 149, 147, 149, 139, 155, 147, 141, 149, 148, 142, 145, 150, 154, 158, 147, 156, 142, 144, 156, 144, 136, 147, 148, 147, 147, 142, 142, 146, 143, 144, 141, 154, 142, 165, 142, 153, 143, 149, 144, 142, 147, 140, 147, 139, 144, 150, 138, 144, 159, 136, 152, 140, 149, 144, 138, 146, 142, 143, 164, 147, 147, 142, 143, 140, 149, 147, 145, 142, 141, 144, 154, 139, 156, 149, 147, 148, 145, 151, 147, 147, 142, 147, 139, 152, 144, 145, 163, 145, 154, 131, 137, 140, 152, 141, 147, 145, 147, 146, 152, 143, 146, 143, 144, 150, 141, 155, 145, 150, 149, 144, 147, 150, 149, 142, 154, 142, 143, 144, 140, 147, 145, 147, 145, 145, 145, 148, 149, 149, 142, 138, 142, 147, 147, 144, 144, 149, 145, 145, 145, 143, 148, 144, 150, 144, 144, 140, 145, 148, 148, 144, 153, 145, 145, 139, 164, 145, 152, 145, 144, 147, 143, 144, 143, 147, 143, 144, 154, 147, 149, 149, 147, 149, 149, 145, 144, 147, 143, 147, 145, 146, 156, 148, 152, 148, 151, 138, 147, 148, 144, 142, 140, 143, 148, 145, 154, 150, 147, 146, 146, 146, 144, 145, 146, 146, 147, 147, 147, 143, 143, 145, 145, 144, 143, 151, 145, 150, 147, 145, 151, 143, 147, 147, 144, 145, 144, 145, 145, 148, 149, 149, 147, 145, 147, 144, 143, 143, 143, 149, 150, 145, 148, 145, 145, 147, 149, 143, 139, 146, 146, 148, 143, 147, 146, 168, 145, 148, 144, 146, 143, 143, 148, 145, 165, 148, 147, 141, 140, 149, 146, 148, 151, 143, 146, 147, 145, 144, 145, 138, 146, 147, 145, 146, 142, 120, 143, 146, 140, 145, 145, 143, 143, 143, 143, 143, 149, 143, 149, 145, 148, 144, 149, 145, 139, 149, 145, 148, 144, 155, 142, 139, 144, 148, 147, 149, 145, 144, 148, 145, 146, 148, 143, 146, 148, 145, 142, 149, 143, 146, 148, 146, 142, 137, 148, 150, 143, 148, 142, 149, 143, 139, 147, 152, 148, 144, 147, 138, 146, 142, 147, 146, 148, 147, 148, 144, 145, 147, 144, 144, 146, 151, 145, 147, 143, 144, 145, 146, 148, 143, 150, 146, 148, 126, 152, 146, 136, 143, 140, 149, 145, 128, 160, 133, 161, 137, 164, 139, 152, 151, 157, 154, 147, 144, 153, 160, 130, 153, 138, 146, 149, 149, 156, 147, 148, 144, 135, 147, 137, 150, 156, 162, 130, 150, 159, 136, 126, 155, 158, 168, 169, 156, 161, 157, 138, 136, 157, 156, 154, 134, 154, 146, 149, 144, 138, 153, 139, 137, 135, 139, 150, 149, 161, 155, 147, 145, 146, 164, 143, 143, 168, 137, 144, 176, 132, 139, 141, 150, 146, 146, 152, 145, 136, 131, 153, 145, 140, 157, 152, 162, 146, 131, 132, 152, 143, 163, 153, 149, 156, 140, 144, 126, 164, 137, 144, 135, 163, 156, 149, 136, 156, 156, 147, 168, 138, 151, 154, 140, 129, 160, 154, 148, 142, 142, 153, 151, 142, 147, 144, 149, 149, 120, 147, 150, 133, 139, 154, 170, 138, 138, 146, 148, 150, 148, 137, 171, 138, 140, 148, 134, 156, 131, 140, 145, 126, 142, 136, 167, 148, 160, 145, 153, 148, 149, 147, 149, 169, 130, 124, 140, 155, 159, 148, 153, 151, 147, 144, 136, 145, 159, 139, 145, 137, 138, 164, 150, 127, 154, 130, 135, 156, 150, 154, 152, 135, 131, 151, 149, 133, 141, 144, 130, 146, 133, 158, 146, 156, 145, 146, 153, 144, 158, 146, 169, 139, 147, 129, 131, 146, 153, 138, 139, 153, 150, 132, 143, 145, 126, 126, 135, 148, 149, 146, 160, 148, 155, 146, 149, 132, 135, 142, 143, 143, 131, 144, 156, 142, 133, 147, 149, 146, 148, 150, 138, 143, 145, 149, 148, 148, 146, 150, 147, 147, 148, 147, 133, 142, 146, 146, 141, 146, 142, 145, 145, 149, 149, 146, 145, 149, 142, 143, 150, 152, 152, 142, 146, 143, 144, 146, 153, 144, 161, 159, 136, 147, 152, 156, 156, 143, 143, 150, 157, 144, 158, 148, 151, 149, 141, 145, 156, 153, 122, 150, 129, 143, 149, 143, 147, 160, 140, 145, 145, 150, 147, 144, 153, 145, 151, 149, 145, 149, 127, 134, 144, 153, 146, 149, 144, 147, 146, 145, 148, 148, 146, 133, 148, 153, 138, 146, 147, 144, 141, 149, 139, 152, 147, 145, 151, 148, 146, 145, 145, 132, 148, 147, 145, 152, 149, 147, 145, 142, 150, 146, 146, 142, 150, 147, 147, 145, 155, 147, 162, 143, 141, 141, 149, 165, 148, 151, 142, 148, 145, 142, 144, 148, 160, 150, 146, 145, 149, 147, 144, 145, 145, 154, 134, 140, 149, 145, 153, 147, 148, 150, 142, 150, 147, 147, 151, 146, 148, 156, 145, 156, 140, 153, 143, 144, 144, 145, 150, 142, 134, 150, 145, 151, 140, 141, 138, 137, 139, 150, 146, 149, 146, 146, 146, 147, 146, 121, 144, 145, 147, 130, 158, 149, 145, 137, 142, 149, 150, 141, 152, 138, 148, 149, 140, 145, 155, 142, 147, 146, 148, 159, 141, 147, 150, 140, 146, 133, 144, 151, 142, 145, 155, 146, 146, 140, 146, 148, 144, 146, 144, 140, 145, 153, 148, 144, 123, 153, 156, 147, 153, 151, 142, 146, 143, 143, 149, 142, 149, 167, 146, 105, 141, 148, 146, 141, 147, 144, 154, 148, 163, 144, 140, 145, 130, 153, 161, 147, 136, 153, 145, 145, 143, 165, 144, 159, 140, 140, 144, 133, 142, 164, 145, 154, 141, 145, 137, 145, 158, 148, 137, 148, 139, 150, 149, 143, 146, 143, 152, 149, 149, 146, 142, 154, 145, 147, 149, 153, 157, 151, 147, 151, 145, 133, 145, 145, 132, 140, 146, 146, 148, 149, 144, 134, 144, 151, 155, 169, 158, 149, 148, 143, 138, 151, 148, 145, 145, 146, 139, 158, 141, 136, 141, 148, 141, 138, 153, 146, 149, 133, 140, 145, 145, 151, 138, 142, 149, 135, 141, 148, 144, 143, 145, 141, 151, 139, 143, 149, 133, 135, 152, 143, 145, 140, 143, 148, 150, 143, 147, 148, 145, 147, 140, 163, 145, 149, 144, 148, 145, 145, 129, 148, 145, 145, 145, 143, 142, 145, 153, 143, 138, 148, 148, 152, 142, 129, 147, 146, 151, 146, 141, 157, 138, 148, 144, 144, 151, 152, 150, 190, 144, 142, 158, 140, 135, 147, 148, 142, 149, 148, 147, 138, 164, 145, 147, 144, 142, 141, 146, 148, 144, 145, 146, 155, 146, 151, 149, 136, 140, 143, 148, 153, 146, 146, 146, 141, 157, 141, 141, 147, 152, 138, 139, 144, 152, 147, 141, 137, 142, 136, 139, 151, 147, 152, 149, 121, 148, 149, 143, 143, 143, 149, 151, 147, 144, 148, 143, 145, 143, 150, 149, 144, 152, 151, 147, 146, 133, 147, 159, 129, 147, 144, 146, 143, 151, 152, 146, 120, 150, 133, 141, 143, 150, 130, 145, 149, 140, 148, 147, 148, 147, 146, 159, 152, 147, 160, 143, 148, 134, 118, 152, 143, 143, 143, 147, 141, 144, 150, 147, 153, 144, 144, 143, 150, 146, 138, 148, 146, 178, 145, 152, 150, 141, 146, 153, 151, 151, 147, 145, 145, 146, 150, 148, 144, 140, 150, 146, 147, 148, 145, 150, 147, 143, 144, 142, 143, 144, 154, 145, 135, 145, 148, 141, 161, 153, 143, 145, 147, 151, 146, 158, 151, 145, 148, 151, 143, 148, 138, 148, 148, 151, 148, 148, 146, 148, 147, 146, 147, 146, 146, 127, 149, 144, 141, 143, 147, 150, 117, 149, 152, 147, 144, 143, 145, 145, 168, 145, 142, 150, 146, 138, 152, 142, 143, 143, 147, 141, 147, 142, 149, 147, 145, 142, 145, 146, 149, 145, 145, 145, 145, 145, 143, 146, 147, 147, 140, 149, 144, 146, 156, 145, 150, 143, 149, 141, 147, 150, 155, 147, 150, 146, 146, 146, 151, 148, 175, 146, 143, 141, 144, 148, 149, 148, 148, 146, 144, 149, 151, 145, 143, 148, 144, 147, 149, 141, 143, 151, 154, 147, 122, 146, 144, 142, 147, 152, 149, 149, 148, 150, 148, 148, 147, 152, 143, 144, 146, 151, 141, 140, 148, 150, 145, 147, 147, 143, 149, 145, 147, 147, 149, 138, 149, 149, 146, 145, 146, 152, 143, 148, 143, 144, 150, 146, 144, 149, 144, 146, 146, 144, 149, 130, 147, 141, 141, 153, 145, 143, 143, 153, 149, 144, 142, 143, 147, 144, 147, 144, 149, 144, 152, 146, 142, 148, 141, 148, 144, 144, 146, 139, 153, 145, 144, 144, 142, 144, 150, 136, 149, 144, 150, 149, 151, 145, 148, 138, 137, 145, 144, 144, 145, 148, 144, 151, 152, 148, 142, 144, 174, 140, 160, 149, 156, 146, 145, 148, 141, 150, 155, 144, 148, 145, 147, 148, 150, 152, 146, 147, 146, 149, 146, 104, 149, 143, 151, 150, 145, 146, 153, 142, 146, 143, 144, 146, 144, 147, 154, 142, 151, 142, 143, 147, 148, 143, 142, 145, 142, 148, 154, 141, 155, 144, 143, 144, 152, 146, 140, 146, 150, 152, 145, 143, 141, 149, 146, 153, 150, 150, 146, 145, 141, 147, 146, 144, 149, 144, 150, 148, 138, 142, 142, 160, 146, 143, 146, 143, 148, 147, 147, 145, 143, 144, 144, 149, 148, 144, 148, 148, 144, 197, 145, 152, 157, 147, 149, 140, 148, 142, 139, 145, 149, 143, 144, 144, 144, 155, 144, 148, 144, 147, 145, 143, 145, 143, 142, 145, 141, 151, 143, 152, 148, 143, 143, 145, 149, 139, 143, 144, 142, 180, 143, 142, 144, 151, 157, 155, 147, 148, 141, 152, 148, 150, 143, 150, 144, 124, 149, 140, 141, 150, 145, 144, 139, 146, 151, 140, 141, 144, 151, 142, 141, 150, 148, 148, 144, 149, 144, 144, 146, 146, 142, 146, 139, 146, 138, 148, 141, 150, 141, 147, 147, 155, 148, 145, 149, 140, 149, 142, 146, 147, 143, 141, 153, 142, 146, 156, 158, 141, 149, 164, 140, 162, 149, 145, 150, 152, 148, 136, 129, 146, 129, 132, 115, 141, 181, 150, 137, 150, 144, 157, 145, 149, 147, 145, 157, 145, 159, 143, 143, 132, 140, 150, 155, 148, 149, 141, 147, 153, 150, 150, 135, 150, 144, 143, 147, 144, 139, 148, 135, 148, 150, 147, 144, 146, 141, 144, 167, 140, 138, 111, 145, 141, 155, 147, 144, 143, 150, 138, 136, 148, 137, 147, 145, 148, 157, 150, 152, 147, 143, 112, 110, 151, 146, 142, 117, 139, 175, 143, 145, 154, 155, 154, 145, 149, 155, 143, 138, 148, 152, 148, 163, 139, 144, 145, 144, 147, 146, 149, 141, 143, 137, 176, 153, 153, 155, 106, 155, 143, 144, 139, 150, 184, 140, 140, 148, 137, 135, 157, 153, 146, 142, 151, 149, 137, 148, 131, 143, 137, 219, 140, 128, 153, 132, 151, 148, 136, 157, 143, 142, 150, 138, 105, 149, 141, 144, 141, 157, 162, 143, 136, 148, 148, 151, 88, 128, 143, 137, 144, 149, 162, 142, 144, 156, 144, 151, 140, 157, 150, 147, 144, 144, 140, 146, 118, 147, 152, 150, 155, 147, 151, 151, 132, 143, 140, 150, 156, 144, 153, 139, 159, 144, 152, 139, 150, 142, 148, 141, 168, 148, 140, 151, 150, 154, 137, 140, 147, 142, 143, 147, 140, 145, 144, 136, 147, 139, 141, 147, 148, 144, 150, 136, 145, 133, 134, 143, 162, 148, 160, 127, 171, 152, 145, 160, 147, 138, 141, 144, 146, 153, 152, 147, 153, 155, 143, 150, 144, 143, 156, 151, 145, 148, 143, 153, 155, 145, 143, 152, 143, 146, 146, 150, 155, 152, 144, 145, 145, 147, 145, 143, 152, 151, 147, 147, 145, 135, 146, 146, 144, 147, 141, 142, 151, 141, 145, 152, 143, 147, 143, 144, 143, 152, 140, 144, 143, 155, 143, 145, 149, 144, 147, 146, 144, 150, 147, 146, 144, 151, 146, 144, 146, 152, 147, 142, 140, 150, 144, 143, 145, 132, 142, 148, 141, 139, 143, 148, 149, 147, 139, 137, 145, 148, 147, 148, 143, 145, 148, 146, 126, 147, 140, 143, 147, 153, 150, 147, 144, 147, 146, 159, 144, 150, 141, 150, 146, 148, 144, 148, 147, 144, 150, 148, 149, 148, 147, 139, 156, 139, 148, 147, 150, 149, 149, 146, 147, 135, 138, 143, 144, 150, 144, 147, 143, 147, 141, 145, 150, 138, 151, 143, 150, 144, 145, 149, 146, 151, 146, 142, 145, 149, 150, 146, 146, 151, 153, 145, 149, 145, 136, 144, 144, 148, 140, 148, 135, 142, 151, 147, 146, 146, 138, 142, 153, 147, 142, 147, 145, 143, 144, 149, 146, 138, 146, 143, 139, 149, 148, 141, 144, 146, 143, 142, 154, 144, 143, 140, 147, 145, 147, 150, 148, 148, 159, 144, 154, 147, 150, 144, 150, 147, 134, 146, 146, 154, 143, 144, 146, 144, 148, 144, 156, 139, 139, 145, 160, 135, 146, 153, 174, 150, 149, 143, 150, 142, 146, 145, 141, 150, 145, 147, 139, 145, 146, 154, 147, 147, 145, 144, 144, 150, 147, 150, 143, 149, 145, 148, 147, 148, 143, 146, 145, 152, 143, 145, 152, 151, 144, 140, 153, 144, 146, 145, 143, 153, 144, 149, 136, 144, 148, 140, 149, 145, 167, 145, 149, 154, 146, 149, 144, 144, 146, 144, 141, 142, 144, 154, 144, 147, 147, 146, 144, 145, 151, 125, 146, 147, 146, 139, 146, 153, 146, 149, 146, 145, 144, 146, 147, 146, 146, 124, 148, 148, 148, 145, 152, 148, 142, 145, 145, 145, 147, 148, 157, 142, 145, 147, 147, 147, 145, 142, 150, 145, 128, 155, 147, 144, 144, 147, 144, 143, 146, 146, 144, 158, 147, 145, 145, 148, 145, 145, 143, 148, 150, 148, 147, 143, 146, 143, 145, 145, 147, 145, 147, 146, 136, 145, 145, 141, 146, 147, 147, 148, 146, 145, 161, 143, 145, 146, 143, 148, 144, 148, 148, 163, 143, 141, 146, 146, 143, 145, 140, 152, 146, 149, 140, 146, 148, 147, 141, 148, 149, 146, 145, 146, 135, 147, 145, 154, 146, 150, 144, 145, 149, 152, 145, 146, 146, 148, 146, 145, 147, 148, 148, 147, 142, 151, 148, 146, 139, 146, 151, 147, 146, 146, 141, 144, 151, 145, 150, 144, 149, 143, 150, 148, 146, 144, 145, 144, 152, 150, 138, 150, 141, 145, 145, 149, 149, 151, 134, 144, 145, 145, 145, 147, 149, 148, 145, 143, 149, 150, 149, 143, 149, 136, 143, 147, 143, 146, 157, 143, 148, 145, 134, 170, 142, 143, 148, 147, 144, 146, 148, 148, 138, 148, 146, 135, 148, 148, 146, 139, 149, 142, 145, 159, 145, 148, 140, 156, 146, 137, 145, 137, 141, 142, 148, 140, 149, 146, 152, 151, 155, 145, 142, 153, 145, 155, 146, 127, 142, 143, 143, 153, 144, 158, 137, 138, 142, 149, 148, 137, 137, 137, 133, 143, 151, 148, 150, 146, 151, 157, 148, 139, 145, 148, 144, 147, 147, 149, 144, 150, 154, 141, 138, 143, 144, 151, 144, 131, 144, 153, 147, 146, 141, 153, 148, 149, 148, 138, 146, 142, 146, 145, 147, 139, 142, 150, 144, 143, 149, 152, 140, 145, 145, 144, 143, 152, 151, 149, 144, 140, 143, 137, 143, 141, 152, 148, 147, 143, 143, 146, 146, 136, 142, 150, 154, 151, 142, 149, 133, 139, 151, 142, 142, 138, 131, 160, 144, 151, 143, 137, 149, 143, 143, 150, 132, 140, 149, 139, 149, 167, 149, 142, 141, 144, 145, 150, 138, 149, 138, 143, 149, 139, 141, 148, 143, 156, 142, 141, 152, 150, 132, 134, 143, 159, 139, 152, 150, 148, 149, 141, 139, 143, 133, 145, 147, 148, 144, 142, 153, 141, 155, 149, 153, 126, 148, 153, 146, 153, 148, 159, 154, 150, 146, 140, 148, 147, 156, 138, 152, 150, 146, 148, 140, 145, 162, 151, 145, 140, 148, 146, 156, 141, 145, 150, 140, 141, 145, 140, 146, 140, 140, 148, 144, 133, 148, 146, 142, 143, 140, 142, 152, 128, 145, 145, 144, 147, 129, 140, 161, 149, 135, 146, 147, 136, 144, 142, 143, 143, 148, 147, 146, 140, 150, 144, 154, 149, 146, 148, 144, 153, 156, 145, 144, 145, 147, 141, 145, 142, 149, 143, 157, 149, 146, 147, 144, 150, 144, 142, 146, 147, 146, 145, 153, 145, 177, 148, 144, 145, 148, 148, 146, 150, 148, 148, 146, 156, 141, 154, 147, 148, 143, 144, 144, 140, 146, 131, 147, 146, 144, 145, 146, 143, 147, 145, 207, 152, 145, 143, 144, 147, 142, 149, 149, 146, 149, 149, 144, 143, 141, 141, 149, 147, 145, 148, 128, 144, 148, 145, 145, 134, 146, 157, 144, 146, 164, 143, 147, 141, 142, 149, 145, 144, 145, 151, 142, 150, 148, 151, 146, 150, 146, 145, 155, 148, 149, 144, 149, 143, 146, 148, 151, 151, 148, 145, 142, 147, 159, 152, 146, 146, 150, 159, 150, 148, 143, 145, 152, 147, 147, 145, 144, 146, 145, 162, 144, 153, 144, 127, 147, 150, 147, 146, 145, 154, 150, 150, 152, 145, 144, 146, 145, 146, 147, 148, 139, 149, 141, 147, 145, 145, 144, 146, 148, 147, 149, 145, 144, 150, 144, 147, 145, 146, 148, 149, 144, 142, 146, 140, 146, 150, 150, 149, 147, 147, 149, 147, 150, 149, 136, 151, 142, 145, 146, 153, 147, 149, 145, 148, 148, 148, 147, 151, 144, 148, 144, 143, 143, 144, 146, 146, 125, 147, 148, 149, 153, 148, 143, 150, 142, 142, 144, 148, 144, 142, 146, 150, 147, 144, 140, 146, 132, 147, 143, 152, 152, 140, 146, 145, 143, 145, 147, 147, 149, 148, 137, 145, 156, 150, 160, 144, 133, 148, 147, 150, 156, 136, 152, 142, 149, 144, 144, 145, 144, 152, 148, 144, 147, 141, 144, 147, 145, 146, 145, 145, 136, 143, 148, 147, 143, 154, 142, 142, 150, 160, 145, 149, 158, 157, 148, 142, 142, 150, 148, 145, 152, 149, 142, 150, 149, 151, 151, 149, 146, 147, 144, 147, 149, 153, 145, 155, 146, 144, 151, 139, 152, 149, 150, 144, 144, 147, 149, 142, 151, 150, 141, 144, 152, 145, 152, 143, 145, 147, 146, 137, 145, 146, 154, 150, 144, 146, 146, 144, 158, 148, 144, 151, 148, 142, 143, 147, 151, 148, 149, 151, 143, 149, 148, 141, 144, 146, 151, 145, 154, 158, 147, 147, 145, 146, 144, 144, 133, 151, 142, 148, 159, 150, 149, 145, 150, 156, 148, 143, 160, 150, 152, 152, 150, 147, 152, 154, 144, 128, 147, 148, 147, 152, 149, 143, 134, 150, 155, 153, 142, 151, 146, 145, 135, 151, 139, 148, 149, 145, 142, 147, 149, 149, 138, 148, 147, 142, 136, 146, 149, 138, 148, 141, 146, 150, 150, 150, 145, 153, 146, 145, 144, 153, 143, 146, 147, 146, 146, 148, 149, 139, 140, 142, 147, 147, 141, 158, 149, 145, 144, 146, 151, 140, 139, 144, 152, 145, 143, 140, 140, 146, 148, 142, 149, 145, 143, 145, 150, 156, 148, 151, 147, 159, 145, 146, 146, 137, 155, 141, 148, 144, 147, 143, 143, 145, 142, 151, 149, 144, 148, 147, 145, 151, 153, 148, 156, 147, 149, 148, 144, 147, 141, 149, 147, 146, 143, 150, 141, 148, 156, 136, 141, 146, 147, 138, 140, 146, 148, 145, 145, 145, 148, 144, 148, 157, 146, 148, 149, 145, 145, 153, 146, 152, 143, 147, 165, 139, 150, 146, 148, 146, 150, 141, 153, 156, 147, 139, 143, 154, 148, 146, 151, 138, 157, 147, 151, 147, 146, 149, 146, 149, 145, 141, 144, 147, 150, 151, 143, 147, 153, 142, 136, 146, 148, 144, 146, 141, 149, 159, 149, 145, 148, 146, 146, 140, 150, 143, 148, 140, 139, 149, 139, 143, 131, 143, 148, 163, 143, 160, 142, 152, 146, 144, 144, 149, 143, 150, 146, 141, 143, 147, 141, 154, 143, 151, 149, 145, 159, 148, 144, 150, 147, 144, 137, 142, 144, 145, 143, 139, 139, 146, 149, 161, 143, 144, 135, 142, 161, 143, 165, 145, 146, 153, 143, 161, 151, 148, 146, 141, 152, 149, 155, 148, 145, 149, 139, 147, 147, 146, 154, 143, 144, 138, 144, 148, 143, 143, 143, 146, 129, 144, 145, 140, 148, 145, 145, 141, 147, 143, 145, 145, 151, 129, 146, 143, 145, 144, 160, 139, 152, 149, 138, 147, 150, 146, 168, 141, 139, 149, 149, 145, 147, 153, 146, 149, 141, 149, 148, 150, 153, 147, 153, 139, 138, 141, 144, 140, 144, 144, 144, 139, 146, 149, 146, 146, 139, 144, 147, 140, 147, 147, 150, 131, 129, 134, 140, 154, 150, 135, 148, 150, 147, 146, 154, 160, 155, 143, 144, 142, 141, 143, 138, 145, 139, 146, 157, 154, 146, 134, 145, 146, 155, 132, 162, 153, 140, 141, 137, 120, 145, 141, 135, 137, 144, 148, 142, 133, 150, 141, 138, 164, 154, 148, 156, 144, 148, 134, 151, 138, 159, 134, 211, 146, 145, 175, 150, 143, 144, 150, 149, 187, 149, 147, 127, 162, 138, 140, 151, 125, 135, 150, 146, 144, 155, 130, 147, 160, 144, 131, 151, 145, 148, 154, 134, 145, 145, 153, 151, 142, 131, 138, 138, 142, 137, 153, 156, 159, 136, 148, 146, 149, 144, 132, 149, 151, 170, 150, 153, 157, 149, 140, 149, 205, 149, 110, 130, 163, 143, 148, 163, 172, 134, 138, 133, 146, 156, 148, 146, 136, 131, 144, 149, 136, 175, 157, 137, 147, 147, 145, 132, 144, 124, 151, 139, 144, 142, 157, 150, 127, 152, 162, 136, 143, 146, 145, 125, 148, 141, 142, 139, 145, 149, 148, 146, 140, 155, 165, 126, 138, 139, 140, 145, 148, 134, 144, 152, 132, 136, 139, 142, 153, 153, 150, 148, 145, 154, 142, 140, 138, 169, 151, 155, 153, 138, 184, 133, 157, 124, 135, 140, 151, 142, 148, 175, 124, 146, 153, 122, 155, 156, 110, 182, 136, 154, 137, 142, 148, 156, 141, 172, 137, 187, 138, 141, 111, 150, 139, 152, 159, 144, 149, 146, 156, 149, 142, 138, 141, 87, 145, 141, 151, 139, 149, 148, 144, 164, 148, 145, 149, 134, 134, 150, 150, 157, 145, 144, 147, 164, 139, 143, 152, 153, 161, 140, 140, 142, 160, 143, 165, 146, 151, 152, 141, 150, 143, 146, 144, 151, 146, 150, 148, 150, 144, 147, 155, 143, 147, 152, 193, 144, 149, 141, 144, 143, 150, 147, 143, 144, 148, 144, 143, 144, 144, 145, 144, 193, 144, 144, 144, 151, 145, 150, 147, 147, 141, 154, 152, 143, 169, 144, 137, 141, 146, 144, 143, 146, 133, 150, 148, 147, 141, 148, 153, 144, 144, 166, 137, 146, 142, 147, 147, 142, 146, 143, 146, 143, 155, 139, 145, 140, 171, 146, 144, 144, 147, 166, 148, 152, 152, 147, 144, 144, 145, 143, 149, 154, 140, 146, 143, 144, 146, 137, 148, 146, 143, 148, 151, 147, 147, 140, 148, 146, 146, 154, 143, 143, 147, 158, 144, 144, 137, 144, 144, 149, 147, 151, 155, 133, 148, 149, 153, 145, 155, 144, 147, 149, 147, 159, 145, 147, 143, 151, 140, 150, 144, 146, 160, 141, 148, 147, 147, 146, 145, 143, 142, 148, 143, 157, 143, 145, 153, 154, 147, 150, 140, 151, 152, 153, 149, 173, 141, 146, 151, 151, 150, 138, 147, 145, 144, 146, 146, 152, 151, 145, 143, 148, 147, 145, 152, 147, 149, 150, 145, 154, 149, 153, 148, 151, 145, 141, 149, 153, 144, 142, 152, 149, 146, 145, 144, 151, 147, 147, 143, 141, 152, 145, 148, 151, 140, 149, 140, 134, 147, 142, 146, 144, 151, 151, 142, 146, 144, 143, 149, 150, 146, 143, 138, 150, 150, 149, 147, 134, 136, 145, 141, 123, 154, 143, 148, 145, 143, 142, 156, 148, 142, 152, 135, 208, 149, 166, 133, 137, 145, 157, 148, 155, 150, 141, 152, 147, 172, 148, 128, 159, 159, 146, 157, 146, 152, 152, 147, 141, 161, 136, 136, 162, 141, 148, 153, 148, 129, 160, 158, 171, 153, 160, 133, 135, 128, 153, 152, 153, 128, 139, 143, 135, 134, 144, 140, 179, 149, 128, 134, 148, 159, 138, 136, 142, 140, 146, 148, 143, 148, 147, 133, 136, 145, 173, 162, 157, 149, 149, 162, 119, 138, 150, 154, 145, 143, 150, 136, 149, 129, 157, 163, 151, 135, 161, 144, 153, 152, 153, 155, 159, 132, 149, 149, 147, 143, 149, 146, 146, 153, 146, 153, 150, 151, 125, 150, 145, 148, 129, 154, 137, 126, 138, 144, 161, 142, 152, 140, 150, 157, 146, 140, 125, 159, 134, 160, 147, 171, 168, 147, 151, 145, 149, 115, 153, 160, 156, 123, 144, 136, 159, 152, 153, 151, 144, 161, 129, 159, 143, 128, 149, 147, 162, 137, 128, 153, 160, 137, 134, 156, 159, 126, 158, 138, 139, 147, 152, 127, 140, 146, 146, 151, 141, 147, 186, 144, 142, 152, 149, 141, 147, 147, 167, 170, 151, 140, 157, 144, 138, 150, 161, 136, 153, 170, 140, 136, 152, 140, 143, 149, 140, 130, 133, 151, 129, 143, 133, 151, 143, 147, 142, 164, 116, 147, 150, 133, 132, 140, 139, 163, 136, 139, 147, 114, 166, 151, 158, 126, 147, 166, 180, 155, 143, 143, 148, 142, 142, 152, 141, 152, 127, 135, 138, 158, 139, 140, 142, 145, 147, 146, 145, 146, 146, 148, 147, 147, 147, 142, 145, 155, 147, 142, 149, 151, 147, 150, 142, 161, 145, 130, 156, 147, 148, 147, 143, 155, 143, 147, 138, 147, 152, 142, 152, 150, 154, 142, 143, 146, 153, 143, 148, 146, 147, 148, 144, 146, 152, 159, 146, 146, 145, 147, 142, 147, 142, 129, 150, 145, 148, 146, 143, 151, 143, 141, 145, 151, 142, 144, 139, 141, 142, 127, 149, 145, 145, 144, 144, 147, 142, 150, 146, 144, 144, 146, 155, 137, 146, 146, 140, 142, 146, 138, 147, 143, 122, 154, 147, 138, 148, 145, 143, 143, 148, 153, 145, 147, 152, 144, 141, 146, 144, 147, 150, 150, 145, 152, 143, 141, 153, 146, 154, 152, 144, 144, 140, 146, 142, 152, 142, 139, 149, 143, 150, 146, 147, 147, 158, 146, 147, 152, 142, 145, 145, 143, 148, 166, 148, 147, 148, 146, 157, 140, 142, 154, 143, 143, 141, 144, 141, 147, 151, 145, 146, 144, 144, 152, 139, 143, 155, 147, 146, 144, 146, 148, 149, 144, 149, 146, 143, 140, 148, 147, 146, 149, 145, 147, 147, 153, 150, 141, 149, 145, 156, 146, 148, 153, 146, 146, 148, 146, 143, 146, 145, 141, 161, 148, 151, 145, 150, 143, 152, 148, 138, 146, 143, 147, 141, 149, 148, 144, 135, 147, 144, 146, 151, 150, 147, 148, 144, 142, 147, 152, 147, 148, 148, 146, 147, 143, 149, 151, 144, 148, 149, 147, 140, 162, 144, 142, 145, 153, 147, 146, 147, 146, 147, 138, 145, 143, 141, 146, 144, 157, 157, 152, 161, 146, 134, 170, 140, 141, 148, 140, 148, 137, 117, 149, 137, 152, 133, 132, 152, 149, 142, 139, 136, 174, 180, 134, 148, 147, 142, 128, 141, 147, 114, 150, 173, 163, 148, 144, 141, 134, 145, 143, 124, 148, 147, 143, 152, 149, 133, 146, 145, 141, 138, 138, 136, 132, 133, 146, 145, 144, 139, 166, 133, 126, 142, 149, 144, 139, 143, 113, 156, 148, 155, 139, 130, 138, 133, 158, 140, 147, 146, 144, 144, 145, 156, 144, 168, 145, 138, 156, 149, 152, 136, 142, 132, 140, 145, 136, 172, 144, 144, 144, 147, 162, 139, 149, 147, 143, 116, 160, 141, 133, 152, 130, 139, 151, 151, 145, 135, 149, 138, 152, 124, 143, 150, 148, 148, 133, 141, 139, 152, 158, 141, 152, 142, 135, 144, 139, 160, 144, 152, 142, 142, 158, 140, 152, 142, 143, 151, 139, 146, 123, 147, 162, 137, 154, 145, 131, 151, 118, 135, 131, 141, 134, 160, 143, 136, 130, 147, 147, 149, 132, 136, 144, 155, 145, 137, 144, 140, 139, 160, 135, 150, 142, 148, 143, 157, 134, 141, 148, 132, 144, 152, 154, 150, 127, 136, 141, 155, 152, 142, 164, 135, 157, 133, 164, 147, 144, 142, 172, 130, 144, 141, 149, 145, 152, 142, 133, 153, 151, 143, 140, 142, 127, 136, 148, 132, 134, 153, 144, 139, 145, 146, 130, 150, 140, 144, 149, 147, 142, 134, 124, 135, 140, 156, 139, 134, 187, 127, 146, 151, 130, 162, 142, 150, 155, 159, 136, 139, 156, 140, 146, 153, 138, 146, 165, 151, 146, 142, 115, 146, 137, 142, 143, 153, 127, 135, 152, 145, 141, 142, 145, 149, 139, 134, 154, 155, 146, 150, 151, 138, 134, 143, 143, 137, 147, 149, 143, 145, 156, 145, 146, 146, 146, 141, 141, 163, 149, 139, 146, 144, 146, 137, 146, 171, 155, 142, 139, 141, 147, 152, 148, 149, 142, 138, 151, 149, 154, 145, 128, 138, 141, 159, 142, 139, 162, 145, 142, 140, 140, 147, 124, 140, 147, 141, 149, 164, 141, 145, 159, 146, 149, 145, 148, 143, 135, 141, 149, 151, 144, 131, 148, 148, 138, 137, 148, 111, 144, 142, 180, 146, 132, 153, 140, 159, 150, 170, 142, 136, 146, 155, 171, 130, 147, 150, 145, 149, 149, 148, 129, 138, 128, 146, 128, 141, 133, 136, 129, 146, 148, 142, 125, 136, 152, 140, 139, 134, 147, 136, 154, 132, 160, 141, 133, 116, 151, 151, 133, 145, 149, 149, 143, 146, 149, 137, 144, 147, 156, 154, 152, 148, 146, 135, 157, 142, 139, 147, 147, 136, 163, 154, 133, 144, 146, 143, 136, 151, 142, 125, 134, 139, 143, 151, 135, 152, 149, 148, 146, 147, 159, 135, 154, 143, 156, 141, 140, 136, 130, 130, 142, 135, 136, 155, 147, 151, 161, 145, 150, 139, 128, 151, 154, 148, 140, 149, 137, 185, 132, 150, 146, 136, 143, 135, 187, 138, 135, 124, 143, 140, 139, 144, 145, 143, 153, 143, 151, 145, 150, 139, 140, 147, 148, 141, 177, 150, 146, 147, 139, 137, 143, 148, 145, 142, 145, 154, 144, 139, 147, 143, 147, 148, 143, 139, 152, 146, 141, 144, 146, 149, 148, 146, 152, 148, 146, 148, 147, 141, 144, 145, 137, 144, 148, 143, 145, 139, 144, 146, 142, 138, 145, 151, 144, 149, 148, 148, 150, 140, 144, 143, 143, 152, 137, 146, 142, 144, 143, 142, 145, 145, 150, 147, 142, 148, 145, 148, 147, 142, 142, 149, 140, 145, 143, 146, 146, 152, 147, 150, 145, 137, 139, 145, 148, 146, 143, 152, 144, 145, 144, 145, 146, 147, 149, 151, 148, 145, 120, 152, 138, 142, 143, 148, 139, 147, 144, 144, 141, 144, 148, 113, 142, 145, 149, 144, 136, 141, 145, 149, 147, 143, 146, 151, 138, 152, 146, 143, 146, 146, 145, 148, 146, 154, 146, 149, 142, 153, 149, 146, 147, 146, 142, 143, 144, 143, 158, 138, 132, 144, 146, 148, 143, 141, 137, 148, 147, 145, 146, 147, 148, 145, 150, 145, 143, 139, 145, 147, 140, 146, 146, 147, 150, 146, 134, 146, 149, 141, 148, 146, 145, 149, 152, 150, 151, 148, 152, 147, 146, 147, 142, 143, 148, 150, 135, 149, 145, 147, 145, 141, 147, 147, 148, 145, 145, 144, 145, 147, 152, 145, 143, 146, 166, 149, 150, 153, 145, 145, 139, 146, 152, 141, 151, 144, 148, 151, 147, 143, 148, 146, 146, 140, 145, 143, 147, 142, 166, 141, 147, 152, 143, 140, 145, 152, 150, 158, 163, 154, 148, 142, 142, 146, 152, 144, 154, 143, 144, 145, 143, 150, 149, 142, 144, 139, 142, 155, 148, 149, 152, 154, 141, 138, 140, 154, 155, 145, 150, 142, 133, 149, 142, 151, 152, 146, 151, 147, 142, 146, 146, 149, 141, 141, 150, 137, 140, 151, 151, 146, 145, 155, 148, 158, 139, 148, 149, 144, 161, 153, 150, 140, 152, 154, 147, 138, 143, 144, 151, 152, 147, 145, 139, 140, 152, 154, 144, 146, 146, 133, 145, 149, 148, 140, 143, 147, 151, 153, 148, 148, 145, 147, 148, 142, 150, 151, 143, 143, 147, 150, 148, 150, 151, 146, 149, 154, 140, 147, 147, 148, 149, 145, 155, 143, 155, 144, 141, 141, 151, 140, 151, 154, 144, 151, 143, 144, 152, 139, 139, 149, 148, 144, 150, 146, 150, 145, 149, 152, 141, 141, 137, 145, 131, 145, 147, 146, 145, 141, 146, 147, 157, 145, 146, 145, 146, 141, 150, 150, 148, 147, 155, 148, 145, 142, 144, 147, 148, 150, 162, 125, 150, 145, 146, 147, 142, 142, 141, 146, 148, 146, 145, 150, 142, 143, 167, 146, 130, 150, 147, 151, 146, 146, 149, 141, 151, 146, 149, 144, 149, 150, 151, 143, 142, 142, 146, 144, 146, 143, 150, 138, 146, 160, 152, 148, 138, 147, 142, 150, 146, 139, 148, 148, 157, 143, 148, 144, 147, 146, 145, 141, 144, 146, 151, 158, 140, 142, 147, 145, 143, 135, 146, 146, 147, 144, 138, 154, 139, 146, 161, 145, 149, 141, 139, 151, 151, 146, 143, 140, 141, 151, 145, 148, 143, 140, 145, 148, 145, 146, 147, 151, 144, 141, 148, 140, 145, 151, 147, 156, 132, 145, 143, 151, 141, 143, 147, 141, 137, 147, 151, 140, 145, 142, 146, 141, 143, 148, 143, 147, 147, 147, 145, 139, 141, 149, 151, 147, 161, 147, 143, 139, 150, 143, 137, 144, 145, 134, 174, 147, 150, 150, 155, 155, 147, 146, 167, 142, 144, 144, 151, 159, 148, 140, 145, 141, 142, 145, 145, 148, 151, 150, 154, 148, 153, 149, 162, 144, 137, 147, 135, 153, 147, 141, 156, 154, 151, 151, 149, 142, 157, 141, 148, 151, 146, 153, 144, 142, 146, 143, 143, 152, 147, 138, 147, 128, 150, 145, 143, 146, 152, 145, 134, 142, 149, 140, 144, 137, 148, 146, 142, 146, 151, 135, 150, 149, 159, 144, 153, 149, 140, 145, 141, 146, 151, 139, 143, 154, 128, 141, 147, 144, 147, 152, 143, 148, 143, 153, 147, 138, 150, 153, 138, 138, 150, 146, 158, 162, 149, 132, 150, 150, 144, 148, 148, 145, 142, 145, 158, 149, 147, 142, 145, 133, 143, 140, 146, 132, 155, 144, 137, 147, 139, 139, 151, 145, 146, 146, 153, 141, 148, 146, 141, 141, 154, 143, 133, 151, 146, 137, 143, 144, 143, 150, 144, 143, 137, 134, 150, 150, 146, 144, 138, 146, 140, 150, 137, 146, 150, 154, 128, 144, 141, 142, 145, 145, 148, 152, 159, 149, 145, 146, 148, 147, 140, 142, 140, 149, 141, 146, 145, 147, 145, 146, 144, 145, 147, 146, 147, 146, 148, 143, 148, 147, 145, 146, 142, 143, 142, 146, 144, 147, 146, 149, 152, 151, 137, 147, 149, 140, 147, 142, 148, 148, 144, 144, 143, 142, 142, 147, 144, 147, 147, 145, 150, 147, 151, 146, 145, 150, 147, 146, 167, 144, 154, 144, 145, 147, 148, 144, 158, 143, 146, 146, 150, 152, 153, 147, 142, 144, 155, 149, 150, 117, 145, 147, 143, 142, 144, 143, 144, 149, 147, 146, 142, 148, 152, 144, 147, 144, 146, 147, 146, 145, 147, 151, 148, 147, 144, 145, 144, 145, 149, 147, 145, 144, 144, 147, 143, 143, 148, 146, 149, 146, 149, 149, 143, 141, 151, 146, 148, 154, 147, 152, 143, 145, 142, 147, 147, 144, 141, 144, 150, 148, 148, 149, 144, 146, 147, 139, 145, 147, 142, 143, 144, 148, 139, 148, 146, 142, 145, 167, 142, 147, 150, 143, 144, 151, 150, 146, 141, 148, 149, 144, 151, 146, 148, 152, 146, 148, 144, 148, 145, 149, 147, 148, 144, 149, 145, 145, 152, 143, 146, 153, 149, 141, 148, 144, 144, 146, 146, 164, 145, 144, 146, 145, 146, 146, 143, 146, 149, 143, 147, 147, 147, 142, 143, 142, 155, 147, 149, 146, 150, 143, 152, 147, 146, 149, 145, 150, 146, 147, 144, 149, 143, 151, 142, 144, 148, 147, 145, 146, 147, 144, 148, 146, 150, 148, 148, 151, 143, 140, 148, 147, 149, 152, 146, 147, 147, 150, 144, 145, 145, 148, 143, 143, 147, 152, 157, 138, 149, 150, 148, 140, 147, 148, 156, 152, 141, 156, 149, 145, 152, 144, 149, 144, 148, 141, 148, 145, 158, 169, 140, 146, 142, 151, 144, 147, 150, 149, 146, 152, 146, 147, 148, 154, 147, 145, 140, 146, 148, 146, 146, 146, 139, 145, 150, 149, 142, 149, 140, 148, 150, 145, 145, 145, 143, 149, 149, 147, 147, 151, 146, 154, 144, 141, 145, 145, 142, 142, 150, 147, 143, 139, 145, 141, 151, 149, 142, 139, 145, 144, 145, 143, 155, 142, 147, 141, 148, 143, 148, 155, 147, 140, 147, 151, 143, 145, 151, 148, 150, 145, 149, 144, 144, 145, 145, 152, 154, 149, 146, 144, 141, 145, 152, 152, 141, 137, 145, 146, 150, 153, 147, 137, 158, 141, 139, 147, 146, 144, 147, 151, 149, 149, 145, 150, 146, 151, 141, 151, 143, 148, 149, 153, 142, 144, 146, 151, 141, 142, 144, 142, 162, 142, 147, 147, 151, 155, 138, 144, 146, 144, 154, 169, 142, 148, 145, 141, 162, 162, 150, 139, 140, 146, 144, 148, 146, 147, 146, 143, 142, 140, 142, 147, 154, 152, 153, 149, 150, 150, 149, 151, 157, 151, 154, 145, 157, 143, 144, 142, 143, 149, 142, 148, 145, 153, 148, 139, 144, 143, 137, 161, 148, 144, 152, 157, 143, 142, 145, 149, 150, 150, 138, 140, 149, 150, 140, 149, 146, 143, 142, 149, 149, 139, 147, 148, 146, 147, 147, 155, 143, 142, 147, 141, 143, 146, 133, 144, 150, 144, 152, 144, 146, 145, 148, 141, 142, 147, 147, 148, 149, 151, 155, 146, 158, 129, 144, 150, 146, 145, 148, 141, 143, 150, 145, 143, 163, 144, 147, 128, 142, 142, 144, 151, 145, 155, 146, 149, 144, 149, 149, 148, 146, 147, 139, 146, 144, 147, 142, 142, 145, 137, 148, 151, 148, 146, 145, 147, 147, 147, 145, 152, 147, 143, 152, 137, 145, 145, 162, 145, 152, 138, 148, 145, 142, 147, 140, 144, 137, 145, 140, 154, 148, 143, 140, 145, 146, 147, 147, 156, 147, 135, 139, 148, 141, 153, 145, 142, 152, 142, 146, 145, 146, 143, 144, 148, 141, 147, 149, 150, 145, 144, 151, 144, 144, 146, 147, 148, 146, 140, 145, 149, 150, 150, 145, 168, 142, 156, 140, 151, 159, 147, 142, 145, 151, 141, 142, 146, 138, 145, 144, 142, 156, 146, 143, 148, 139, 136, 153, 141, 150, 155, 141, 150, 148, 139, 144, 148, 144, 148, 142, 151, 152, 142, 148, 146, 147, 146, 146, 145, 143, 143, 144, 144, 153, 155, 145, 151, 146, 145, 154, 147, 148, 148, 151, 143, 145, 144, 165, 134, 140, 144, 143, 143, 140, 149, 148, 149, 145, 146, 139, 154, 141, 139, 148, 153, 140, 146, 144, 146, 145, 150, 149, 133, 148, 141, 146, 144, 152, 145, 149, 140, 143, 145, 145, 141, 130, 160, 147, 157, 147, 140, 137, 140, 150, 139, 143, 151, 150, 142, 145, 145, 147, 149, 147, 146, 144, 147, 144, 138, 150, 148, 145, 151, 153, 146, 146, 146, 143, 167, 144, 143, 153, 146, 148, 155, 154, 155, 150, 149, 155, 163, 133, 152, 157, 135, 145, 154, 142, 149, 137, 141, 156, 138, 145, 143, 145, 160, 140, 150, 143, 136, 145, 148, 151, 156, 144, 136, 137, 138, 141, 146, 157, 149, 129, 138, 147, 143, 147, 168, 151, 141, 138, 146, 148, 137, 144, 141, 149, 150, 143, 149, 139, 146, 148, 150, 144, 146, 138, 144, 147, 153, 142, 155, 143, 150, 148, 152, 155, 155, 161, 144, 171, 144, 149, 131, 153, 145, 147, 145, 150, 146, 144, 140, 132, 152, 132, 148, 155, 144, 144, 143, 144, 144, 134, 156, 148, 152, 140, 153, 149, 145, 142, 151, 143, 142, 146, 150, 150, 149, 146, 156, 167, 157, 148, 150, 146, 142, 149, 152, 150, 140, 136, 136, 159, 145, 153, 143, 127, 149, 134, 173, 148, 147, 158, 152, 146, 147, 142, 147, 148, 138, 158, 146, 151, 143, 143, 155, 140, 142, 133, 138, 143, 135, 145, 151, 154, 143, 134, 144, 144, 162, 158, 145, 140, 155, 146, 160, 144, 161, 141, 152, 130, 146, 148, 140, 136, 148, 166, 146, 128, 151, 128, 154, 155, 133, 177, 153, 136, 145, 148, 136, 134, 148, 146, 141, 152, 155, 147, 138, 143, 138, 164, 149, 147, 157, 153, 134, 142, 142, 144, 138, 144, 147, 138, 147, 142, 153, 146, 135, 145, 148, 142, 171, 155, 144, 138, 147, 152, 153, 141, 157, 142, 145, 147, 145, 148, 161, 144, 157, 140, 145, 152, 146, 146, 147, 141, 151, 148, 148, 144, 146, 139, 149, 152, 145, 132, 134, 144, 148, 146, 145, 144, 152, 146, 149, 140, 143, 159, 143, 148, 121, 147, 149, 139, 145, 149, 149, 142, 145, 152, 145, 146, 143, 144, 143, 141, 147, 137, 150, 146, 143, 148, 145, 146, 139, 149, 147, 145, 147, 148, 138, 150, 142, 149, 151, 143, 155, 146, 142, 147, 143, 149, 150, 151, 149, 145, 144, 149, 146, 149, 147, 144, 157, 146, 149, 148, 145, 134, 147, 141, 151, 150, 154, 150, 149, 145, 149, 148, 145, 151, 148, 142, 143, 144, 148, 142, 146, 145, 150, 146, 141, 148, 150, 142, 149, 155, 146, 145, 154, 127, 147, 148, 146, 146, 143, 148, 145, 155, 161, 147, 142, 147, 138, 147, 146, 144, 149, 148, 142, 144, 147, 145, 141, 141, 148, 147, 147, 145, 150, 155, 148, 143, 149, 141, 149, 146, 153, 141, 154, 144, 144, 141, 149, 149, 143, 144, 145, 149, 147, 146, 145, 154, 146, 143, 147, 137, 153, 155, 144, 146, 141, 148, 142, 146, 143, 147, 142, 143, 149, 152, 145, 141, 147, 145, 146, 149, 141, 150, 146, 146, 150, 146, 146, 153, 147, 146, 144, 144, 146, 146, 145, 149, 145, 146, 138, 146, 144, 148, 150, 141, 136, 150, 146, 146, 145, 137, 144, 147, 144, 152, 148, 159, 141, 143, 152, 144, 154, 147, 144, 149, 148, 147, 146, 144, 147, 146, 147, 140, 146, 146, 144, 145, 137, 146, 142, 145, 137, 138, 145, 143, 146, 150, 148, 149, 147, 143, 144, 149, 152, 144, 143, 147, 141, 148, 163, 145, 144, 145, 141, 144, 152, 144, 147, 149, 149, 146, 148, 147, 145, 152, 152, 137, 150, 142, 146, 151, 148, 143, 134, 148, 142, 149, 144, 143, 151, 144, 141, 148, 144, 150, 151, 142, 146, 145, 148, 148, 139, 148, 145, 143, 133, 142, 154, 146, 147, 147, 144, 163, 148, 145, 155, 145, 145, 146, 146, 144, 150, 140, 147, 146, 149, 152, 148, 138, 148, 146, 140, 151, 154, 143, 152, 147, 145, 152, 148, 138, 144, 147, 148, 145, 149, 140, 145, 153, 138, 147, 147, 144, 142, 155, 148, 147, 147, 147, 144, 147, 147, 144, 147, 146, 148, 146, 154, 147, 151, 146, 146, 141, 136, 145, 161, 147, 143, 144, 141, 141, 149, 162, 146, 150, 144, 148, 146, 144, 178, 138, 148, 146, 148, 146, 150, 145, 147, 146, 150, 149, 145, 144, 143, 139, 147, 152, 143, 144, 144, 142, 148, 140, 148, 146, 148, 147, 154, 147, 147, 147, 146, 143, 148, 146, 148, 145, 141, 144, 145, 150, 136, 140, 145, 147, 147, 147, 142, 142, 141, 149, 144, 154, 146, 146, 147, 137, 140, 144, 144, 148, 153, 148, 145, 144, 146, 152, 147, 148, 144, 148, 156, 145, 146, 141, 142, 142, 143, 134, 144, 145, 152, 154, 145, 134, 143, 150, 140, 149, 150, 144, 142, 142, 148, 149, 143, 146, 150, 144, 149, 147, 148, 146, 138, 144, 149, 146, 142, 145, 136, 152, 153, 142, 132, 147, 159, 144, 141, 144, 147, 144, 151, 149, 144, 168, 148, 139, 135, 150, 142, 154, 162, 142, 153, 156, 186, 142, 151, 144, 152, 153, 152, 143, 161, 155, 135, 149, 157, 151, 151, 129, 148, 160, 150, 146, 165, 146, 157, 150, 144, 141, 139, 145, 151, 151, 166, 146, 147, 156, 150, 146, 139, 158, 158, 150, 161, 148, 148, 132, 155, 154, 149, 158, 149, 151, 149, 145, 150, 142, 135, 141, 153, 141, 167, 149, 151, 160, 147, 144, 151, 137, 140, 155, 152, 156, 130, 129, 156, 152, 148, 147, 159, 138, 194, 145, 146, 147, 135, 155, 153, 149, 145, 156, 139, 139, 144, 144, 153, 140, 153, 170, 137, 142, 150, 148, 139, 145, 156, 138, 147, 136, 135, 138, 170, 137, 151, 140, 143, 141, 147, 191, 140, 171, 143, 129, 144, 133, 152, 149, 149, 161, 143, 131, 165, 135, 141, 182, 144, 156, 147, 146, 155, 141, 172, 145, 153, 142, 146, 134, 141, 150, 149, 137, 149, 140, 115, 148, 137, 157, 119, 147, 140, 157, 152, 165, 153, 147, 141, 152, 150, 143, 133, 126, 161, 154, 127, 139, 157, 141, 140, 79, 142, 146, 152, 135, 128, 152, 169, 144, 132, 143, 134, 151, 140, 148, 146, 151, 140, 165, 129, 151, 148, 134, 141, 140, 136, 132, 139, 149, 141, 157, 159, 135, 135, 164, 131, 151, 135, 141, 143, 148, 139, 153, 147, 142, 134, 138, 140, 145, 142, 143, 148, 148, 137, 152, 147, 139, 148, 127, 143, 173, 148, 117, 149, 139, 146, 151, 144, 148, 142, 146, 169, 133, 144, 142, 136, 138, 146, 149, 139, 159, 147, 135, 144, 152, 145, 169, 159, 154, 153, 144, 148, 186, 134, 157, 171, 139, 141, 125, 156, 140, 139, 120, 152, 149, 138, 143, 165, 140, 144, 138, 149, 145, 150, 150, 140, 155, 142, 172, 144, 143, 143, 151, 135, 145, 158, 162, 127, 154, 134, 145, 141, 160, 156, 157, 149, 145, 141, 154, 151, 146, 149, 138, 154, 151, 116, 139, 158, 147, 154, 150, 142, 147, 154, 116, 140, 143, 132, 145, 145, 127, 155, 136, 140, 144, 152, 152, 146, 137, 148, 148, 121, 134, 137, 148, 146, 145, 149, 146, 134, 151, 140, 155, 144, 157, 131, 144, 132, 149, 140, 157, 153, 143, 149, 156, 134, 139, 146, 146, 134, 144, 119, 147, 144, 146, 160, 139, 156, 147, 131, 142, 152, 154, 139, 140, 129, 164, 149, 146, 143, 142, 136, 156, 157, 133, 142, 145, 150, 142, 141, 136, 143, 142, 164, 149, 139, 128, 137, 148, 134, 153, 152, 167, 137, 153, 149, 149, 142, 143, 148, 155, 148, 122, 130, 139, 143, 148, 131, 144, 142, 145, 148, 153, 142, 146, 134, 127, 158, 157, 132, 153, 138, 135, 129, 145, 143, 144, 146, 141, 141, 136, 152, 145, 160, 145, 140, 140, 134, 146, 141, 129, 157, 150, 142, 134, 141, 76, 138, 161, 146, 138, 144, 139, 147, 140, 145, 144, 146, 120, 143, 120, 139, 156, 139, 142, 152, 160, 149, 140, 146, 159, 149, 136, 144, 151, 142, 144, 146, 147, 140, 144, 142, 147, 150, 150, 166, 144, 150, 152, 150, 136, 158, 150, 131, 121, 142, 143, 143, 187, 150, 145, 171, 157, 141, 146, 156, 141, 151, 147, 132, 142, 144, 161, 147, 147, 166, 149, 143, 149, 149, 157, 138, 151, 145, 159, 152, 149, 145, 133, 144, 137, 157, 157, 117, 147, 145, 147, 175, 145, 142, 129, 146, 143, 172, 138, 157, 147, 140, 143, 153, 146, 147, 145, 156, 144, 163, 170, 141, 143, 135, 142, 138, 131, 144, 151, 151, 163, 134, 142, 141, 139, 140, 144, 138, 121, 144, 147, 142, 142, 137, 138, 144, 158, 145, 149, 152, 142, 147, 166, 148, 137, 137, 143, 153, 148, 149, 150, 161, 149, 148, 154, 142, 146, 143, 144, 139, 143, 140, 152, 143, 141, 132, 147, 143, 146, 128, 133, 146, 144, 151, 140, 137, 136, 143, 141, 148, 142, 146, 149, 145, 124, 139, 148, 160, 139, 149, 140, 153, 137, 149, 154, 148, 128, 146, 143, 147, 145, 144, 141, 154, 144, 154, 144, 155, 147, 144, 143, 149, 136, 144, 148, 148, 152, 150, 153, 169, 140, 151, 150, 150, 126, 145, 132, 157, 151, 133, 146, 140, 139, 153, 153, 141, 149, 146, 126, 136, 153, 145, 152, 125, 136, 142, 145, 121, 152, 145, 136, 140, 152, 144, 141, 145, 141, 137, 145, 146, 142, 143, 147, 147, 135, 139, 143, 144, 138, 134, 133, 145, 136, 154, 139, 148, 158, 149, 133, 149, 143, 148, 144, 147, 131, 149, 146, 157, 143, 146, 143, 130, 144, 140, 146, 137, 142, 141, 142, 144, 147, 145, 169, 155, 141, 153, 145, 149, 154, 146, 148, 161, 146, 139, 166, 157, 153, 151, 144, 142, 146, 145, 139, 154, 147, 149, 152, 140, 145, 148, 151, 139, 140, 156, 152, 139, 147, 142, 139, 144, 139, 143, 149, 149, 143, 146, 148, 144, 153, 146, 145, 144, 146, 149, 149, 147, 147, 147, 149, 141, 144, 145, 142, 143, 146, 147, 161, 145, 142, 147, 141, 139, 145, 144, 147, 150, 144, 156, 141, 148, 145, 150, 145, 144, 138, 143, 147, 124, 140, 145, 143, 144, 144, 145, 147, 145, 150, 144, 148, 145, 138, 137, 147, 139, 147, 146, 146, 152, 144, 148, 153, 140, 143, 147, 150, 144, 143, 145, 152, 141, 145, 144, 148, 144, 151, 145, 147, 156, 144, 145, 143, 140, 142, 143, 139, 141, 146, 141, 154, 149, 132, 141, 142, 154, 143, 148, 138, 146, 149, 150, 144, 142, 138, 149, 139, 143, 147, 144, 145, 140, 146, 144, 146, 148, 145, 143, 150, 139, 144, 149, 141, 148, 151, 145, 135, 132, 143, 146, 154, 152, 148, 147, 143, 145, 159, 146, 144, 142, 148, 145, 148, 146, 144, 141, 140, 140, 150, 145, 159, 152, 140, 140, 131, 139, 146, 149, 142, 145, 149, 145, 142, 151, 123, 144, 143, 145, 147, 149, 147, 146, 146, 138, 140, 146, 142, 150, 144, 142, 159, 144, 141, 151, 143, 143, 147, 148, 133, 146, 149, 147, 149, 150, 148, 132, 146, 146, 149, 149, 141, 159, 146, 171, 138, 144, 146, 152, 126, 153, 137, 143, 169, 143, 145, 149, 132, 145, 151, 140, 148, 145, 125, 142, 141, 152, 147, 155, 146, 146, 141, 138, 147, 134, 147, 149, 139, 150, 148, 169, 150, 147, 155, 147, 147, 150, 140, 140, 139, 135, 144, 148, 137, 140, 148, 144, 150, 137, 144, 136, 149, 139, 136, 148, 155, 142, 141, 142, 149, 155, 146, 147, 147, 160, 148, 147, 141, 140, 143, 139, 158, 146, 146, 154, 159, 149, 150, 144, 147, 143, 157, 157, 158, 146, 144, 137, 153, 142, 145, 148, 141, 141, 143, 151, 172, 141, 145, 152, 141, 148, 145, 148, 141, 141, 147, 122, 153, 147, 136, 148, 141, 151, 143, 146, 140, 152, 153, 144, 143, 147, 151, 148, 148, 144, 138, 139, 141, 149, 133, 149, 166, 140, 142, 146, 140, 145, 140, 146, 143, 150, 154, 141, 145, 148, 140, 146, 150, 131, 144, 138, 153, 149, 143, 151, 143, 148, 152, 159, 131, 147, 151, 141, 146, 145, 147, 154, 142, 138, 123, 159, 144, 140, 154, 139, 146, 152, 156, 144, 140, 145, 157, 152, 140, 139, 148, 150, 154, 145, 149, 149, 140, 150, 154, 141, 143, 147, 139, 136, 137, 147, 171, 141, 143, 149, 148, 143, 150, 142, 148, 143, 149, 146, 154, 148, 152, 152, 145, 139, 125, 163, 151, 143, 141, 153, 153, 147, 144, 150, 148, 150, 145, 144, 146, 150, 139, 147, 148, 142, 141, 149, 152, 138, 144, 144, 146, 141, 143, 153, 141, 146, 146, 150, 148, 146, 146, 144, 152, 144, 145, 149, 142, 141, 148, 144, 148, 144, 149, 139, 146, 161, 148, 146, 146, 143, 143, 141, 144, 150, 142, 149, 140, 143, 145, 147, 151, 141, 146, 170, 155, 151, 143, 144, 147, 145, 132, 139, 151, 149, 149, 141, 147, 154, 151, 146, 145, 142, 143, 154, 154, 154, 147, 146, 145, 148, 149, 148, 140, 141, 148, 144, 149, 146, 151, 150, 142, 143, 144, 142, 146, 149, 129, 145, 144, 146, 145, 142, 145, 149, 138, 144, 142, 139, 147, 143, 147, 144, 141, 147, 145, 145, 149, 150, 142, 149, 131, 139, 146, 132, 148, 146, 147, 145, 147, 147, 145, 143, 148, 140, 143, 145, 145, 154, 156, 147, 140, 140, 151, 137, 148, 133, 138, 142, 135, 146, 144, 145, 146, 148, 145, 144, 143, 150, 150, 141, 133, 144, 147, 151, 143, 150, 152, 144, 146, 144, 149, 140, 144, 146, 143, 146, 147, 146, 144, 147, 152, 149, 141, 139, 146, 143, 149, 145, 151, 147, 147, 149, 145, 147, 153, 156, 137, 148, 148, 147, 143, 148, 141, 152, 150, 141, 143, 143, 147, 142, 150, 141, 145, 141, 139, 136, 139, 150, 153, 137, 144, 148, 140, 149, 154, 145, 144, 146, 149, 154, 143, 146, 138, 141, 147, 144, 144, 146, 145, 146, 137, 147, 143, 141, 148, 147, 146, 142, 169, 147, 145, 147, 133, 145, 146, 140, 129, 148, 149, 147, 150, 153, 143, 146, 144, 151, 141, 142, 140, 147, 142, 159, 136, 145, 145, 144, 161, 145, 135, 144, 162, 147, 152, 145, 149, 144, 148, 144, 142, 139, 133, 146, 141, 148, 147, 155, 142, 151, 143, 142, 149, 130, 150, 143, 147, 153, 150, 150, 146, 140, 143, 137, 147, 146, 149, 141, 143, 144, 141, 154, 145, 142, 136, 155, 151, 147, 142, 134, 149, 140, 146, 146, 163, 145, 147, 133, 146, 151, 146, 139, 147, 152, 142, 146, 143, 147, 141, 136, 141, 143, 142, 139, 143, 143, 146, 145, 152, 156, 158, 148, 144, 150, 147, 146, 163, 144, 144, 153, 146, 143, 143, 123, 140, 150, 141, 147, 153, 169, 144, 151, 155, 145, 148, 128, 169, 147, 138, 146, 149, 150, 147, 144, 139, 144, 148, 143, 145, 161, 148, 143, 146, 144, 150, 127, 145, 150, 135, 148, 140, 149, 137, 147, 142, 145, 149, 145, 137, 145, 156, 158, 154, 145, 150, 139, 134, 136, 138, 144, 144, 148, 139, 145, 144, 147, 130, 149, 133, 140, 142, 145, 143, 152, 141, 150, 146, 145, 140, 147, 152, 141, 156, 152, 145, 151, 151, 145, 143, 145, 148, 148, 136, 151, 145, 150, 148, 143, 152, 145, 155, 147, 158, 148, 150, 141, 135, 138, 139, 148, 175, 144, 143, 146, 155, 141, 143, 147, 146, 147, 136, 147, 157, 145, 156, 148, 142, 132, 133, 193, 145, 143, 143, 149, 144, 135, 145, 142, 141, 144, 157, 137, 145, 155, 140, 147, 154, 132, 145, 139, 158, 160, 121, 141, 139, 142, 151, 148, 166, 141, 150, 157, 139, 144, 145, 151, 154, 139, 140, 138, 141, 165, 151, 111, 145, 141, 147, 149, 141, 146, 143, 157, 124, 147, 152, 149, 159, 154, 158, 145, 147, 150, 152, 150, 145, 149, 142, 147, 162, 152, 145, 141, 144, 146, 143, 147, 149, 140, 149, 127, 142, 149, 157, 151, 149, 149, 141, 148, 155, 151, 137, 142, 132, 161, 157, 144, 139, 141, 139, 138, 144, 147, 145, 148, 96, 151, 135, 139, 160, 144, 151, 153, 139, 149, 132, 148, 137, 150, 149, 144, 144, 150, 140, 145, 150, 141, 135, 137, 154, 147, 145, 140, 145, 131, 145, 142, 134, 146, 143, 152, 120, 133, 144, 147, 140, 134, 127, 130, 144, 119, 157, 145, 145, 149, 145, 152, 139, 183, 147, 158, 151, 146, 149, 153, 140, 150, 140, 130, 153, 141, 161, 146, 135, 141, 147, 138, 143, 157, 147, 159, 150, 150, 128, 137, 150, 153, 141, 147, 151, 169, 158, 121, 140, 152, 140, 141, 149, 163, 143, 158, 144, 133, 192, 132, 154, 151, 113, 139, 149, 160, 141, 148, 151, 137, 144, 154, 129, 143, 145, 142, 157, 149, 154, 142, 137, 143, 139, 151, 146, 135, 136, 151, 151, 144, 145, 146, 150, 132, 158, 136, 167, 139, 148, 149, 140, 144, 158, 135, 141, 147, 135, 143, 143, 152, 144, 149, 139, 154, 136, 148, 149, 145, 159, 139, 153, 148, 149, 139, 139, 149, 153, 147, 135, 146, 152, 144, 143, 143, 140, 147, 143, 146, 144, 144, 145, 153, 159, 143, 139, 137, 158, 142, 134, 129, 149, 148, 147, 153, 139, 142, 146, 144, 139, 148, 135, 147, 152, 137, 140, 143, 143, 142, 145, 136, 146, 132, 145, 157, 148, 153, 145, 165, 136, 137, 163, 147, 141, 145, 170, 140, 151, 146, 141, 133, 138, 142, 145, 143, 160, 143, 154, 157, 147, 140, 145, 147, 155, 143, 145, 144, 145, 138, 148, 143, 147, 135, 143, 151, 147, 151, 150, 154, 141, 142, 150, 145, 139, 146, 143, 153, 144, 156, 141, 142, 150, 147, 146, 154, 155, 142, 146, 146, 139, 141, 142, 131, 136, 143, 133, 144, 153, 162, 143, 148, 149, 152, 144, 148, 160, 148, 142, 141, 151, 144, 139, 142, 143, 153, 148, 147, 142, 157, 156, 148, 149, 154, 149, 142, 141, 150, 155, 138, 141, 140, 142, 147, 147, 150, 150, 149, 146, 146, 151, 140, 146, 144, 154, 149, 131, 137, 138, 158, 144, 146, 157, 143, 147, 145, 141, 145, 141, 142, 139, 133, 148, 146, 142, 152, 145, 148, 138, 148, 141, 141, 146, 151, 140, 149, 141, 151, 137, 148, 139, 145, 146, 141, 150, 145, 144, 142, 141, 148, 145, 141, 151, 142, 155, 130, 146, 146, 153, 145, 156, 146, 142, 141, 141, 150, 143, 144, 146, 148, 149, 152, 165, 142, 141, 144, 146, 140, 161, 170, 146, 139, 159, 151, 133, 150, 128, 158, 149, 144, 145, 143, 154, 168, 144, 142, 147, 138, 145, 153, 135, 144, 152, 148, 138, 132, 143, 156, 146, 135, 157, 143, 129, 159, 160, 158, 142, 141, 170, 143, 148, 152, 159, 118, 112, 145, 183, 157, 152, 148, 147, 140, 144, 152, 141, 150, 173, 144, 131, 141, 164, 157, 144, 163, 137, 148, 160, 151, 149, 148, 172, 136, 140, 165, 155, 130, 146, 146, 142, 164, 152, 154, 138, 133, 151, 153, 153, 141, 139, 139, 149, 144, 142, 158, 142, 149, 145, 146, 133, 153, 140, 159, 134, 180, 149, 147, 165, 169, 140, 133, 140, 140, 154, 121, 156, 156, 143, 170, 152, 141, 149, 144, 147, 144, 156, 143, 133, 133, 147, 142, 138, 134, 160, 148, 141, 141, 151, 137, 134, 92, 143, 149, 143, 145, 144, 142, 109, 137, 172, 116, 148, 142, 171, 135, 148, 140, 134, 132, 127, 114, 135, 145, 125, 137, 152, 149, 143, 146, 161, 159, 152, 137, 149, 170, 161, 134, 126, 162, 135, 137, 152, 159, 129, 138, 143, 137, 173, 147, 136, 140, 161, 161, 141, 148, 145, 159, 118, 171, 149, 113, 142, 140, 130, 147, 145, 160, 155, 168, 142, 147, 143, 159, 136, 168, 148, 140, 167, 144, 121, 163, 143, 133, 154, 144, 170, 125, 134, 142, 132, 149, 146, 145, 146, 153, 147, 153, 143, 144, 155, 161, 124, 150, 105, 147, 150, 149, 145, 135, 141, 135, 148, 145, 162, 149, 164, 138, 145, 130, 147, 130, 147, 138, 163, 134, 132, 125, 152, 153, 128, 141, 167, 123, 149, 146, 171, 127, 149, 153, 155, 143, 146, 135, 144, 159, 174, 149, 178, 177, 150, 134, 129, 158, 162, 152, 126, 148, 146, 138, 152, 127, 140, 139, 160, 138, 147, 148, 148, 158, 136, 137, 151, 144, 150, 186, 142, 138, 151, 143, 150, 150, 149, 144, 148, 142, 149, 161, 182, 136, 148, 135, 141, 141, 147, 141, 139, 155, 142, 130, 124, 150, 135, 148, 139, 153, 154, 138, 148, 140, 158, 148, 165, 146, 150, 140, 143, 142, 143, 140, 145, 147, 147, 148, 151, 148, 154, 154, 143, 142, 140, 129, 102, 164, 116, 121, 164, 141, 163, 139, 153, 145, 136, 129, 148, 148, 144, 144, 165, 157, 134, 155, 143, 143, 143, 141, 133, 134, 135, 139, 169, 130, 136, 155, 175, 141, 144, 136, 137, 144, 154, 152, 142, 142, 151, 146, 149, 195, 146, 143, 170, 149, 127, 146, 143, 148, 151, 152, 171, 147, 138, 121, 155, 137, 152, 134, 159, 140, 164, 148, 152, 135, 153, 140, 132, 154, 137, 203, 123, 144, 151, 139, 145, 143, 118, 145, 147, 143, 146, 150, 148, 125, 167, 145, 145, 154, 143, 137, 148, 140, 141, 144, 147, 146, 152, 138, 163, 147, 144, 151, 141, 144, 128, 143, 142, 142, 138, 131, 153, 143, 130, 136, 148, 154, 142, 130, 147, 130, 155, 111, 141, 127, 156, 139, 165, 155, 137, 131, 148, 129, 150, 133, 143, 174, 139, 133, 137, 133, 140, 151, 149, 148, 159, 147, 152, 149, 152, 149, 148, 147, 159, 146, 153, 162, 140, 147, 144, 149, 144, 150, 140, 147, 147, 144, 144, 151, 147, 147, 148, 147, 149, 146, 146, 140, 144, 151, 149, 149, 142, 144, 143, 149, 138, 143, 154, 149, 146, 139, 148, 154, 146, 137, 156, 140, 143, 150, 145, 145, 150, 140, 151, 161, 159, 172, 149, 145, 141, 152, 139, 140, 146, 146, 152, 146, 142, 147, 149, 147, 153, 132, 146, 165, 138, 147, 133, 140, 143, 140, 147, 146, 145, 142, 143, 140, 150, 147, 155, 149, 152, 154, 148, 140, 144, 146, 158, 146, 146, 140, 153, 129, 146, 143, 150, 153, 147, 147, 138, 143, 144, 149, 140, 150, 146, 146, 157, 142, 142, 145, 145, 137, 148, 139, 144, 148, 157, 153, 134, 146, 135, 150, 145, 144, 142, 142, 149, 163, 148, 146, 148, 145, 134, 144, 143, 133, 144, 145, 141, 146, 147, 140, 163, 140, 146, 148, 140, 142, 139, 151, 137, 143, 152, 149, 137, 151, 143, 149, 144, 145, 153, 152, 147, 140, 147, 152, 149, 147, 137, 147, 173, 142, 150, 153, 139, 148, 147, 152, 141, 150, 175, 142, 148, 137, 144, 141, 145, 145, 151, 147, 145, 149, 146, 149, 148, 146, 146, 147, 136, 141, 152, 146, 136, 145, 133, 147, 153, 161, 144, 137, 149, 158, 153, 143, 147, 152, 140, 149, 149, 141, 142, 143, 140, 142, 139, 151, 145, 144, 142, 165, 140, 131, 144, 131, 145, 153, 141, 148, 151, 148, 150, 158, 147, 145, 143, 147, 146, 146, 149, 166, 141, 139, 138, 148, 150, 135, 143, 142, 140, 148, 141, 146, 144, 154, 137, 139, 143, 167, 151, 144, 167, 147, 140, 142, 148, 143, 137, 143, 146, 145, 148, 150, 147, 153, 140, 147, 153, 138, 143, 152, 143, 151, 146, 152, 145, 148, 146, 148, 155, 142, 151, 147, 143, 153, 147, 148, 155, 147, 149, 147, 133, 138, 144, 149, 152, 153, 150, 146, 159, 139, 148, 140, 148, 144, 130, 147, 145, 150, 103, 152, 165, 140, 149, 128, 172, 147, 136, 148, 146, 145, 148, 150, 151, 147, 167, 135, 156, 152, 137, 158, 150, 146, 157, 145, 148, 143, 145, 153, 141, 123, 153, 141, 149, 149, 144, 157, 145, 144, 149, 138, 133, 145, 143, 144, 150, 140, 147, 146, 147, 151, 142, 147, 176, 147, 136, 147, 145, 145, 142, 145, 137, 145, 152, 143, 140, 141, 137, 146, 146, 146, 148, 137, 159, 156, 146, 139, 140, 123, 140, 142, 149, 137, 150, 155, 144, 140, 141, 131, 154, 139, 144, 142, 147, 148, 140, 139, 164, 135, 135, 135, 145, 151, 147, 145, 149, 134, 147, 124, 147, 133, 144, 144, 139, 149, 146, 159, 152, 156, 139, 144, 146, 152, 156, 153, 151, 153, 166, 154, 148, 137, 139, 149, 144, 148, 152, 147, 145, 139, 142, 138, 150, 148, 147, 155, 161, 153, 150, 130, 138, 151, 146, 135, 134, 162, 179, 146, 143, 150, 134, 138, 153, 134, 147, 135, 139, 150, 138, 136, 141, 147, 143, 164, 143, 149, 142, 147, 148, 152, 148, 150, 139, 141, 147, 142, 147, 159, 142, 148, 146, 144, 148, 133, 141, 141, 143, 146, 150, 147, 121, 148, 148, 147, 151, 141, 140, 152, 149, 145, 139, 144, 148, 136, 144, 144, 145, 145, 140, 137, 149, 144, 147, 136, 146, 139, 151, 138, 154, 152, 141, 141, 147, 147, 149, 145, 144, 146, 138, 153, 140, 152, 152, 146, 138, 139, 148, 133, 148, 143, 136, 146, 144, 141, 150, 150, 148, 142, 148, 150, 145, 145, 138, 137, 145, 146, 146, 147, 149, 141, 150, 149, 140, 141, 147, 151, 150, 145, 155, 145, 150, 154, 144, 146, 136, 149, 144, 146, 144, 142, 147, 158, 143, 146, 150, 149, 137, 147, 150, 146, 140, 139, 142, 147, 135, 146, 141, 142, 147, 148, 143, 144, 146, 151, 147, 146, 148, 155, 149, 150, 160, 153, 146, 147, 145, 144, 150, 145, 134, 142, 147, 147, 136, 137, 159, 145, 146, 145, 146, 152, 154, 149, 151, 152, 148, 145, 146, 136, 149, 144, 148, 152, 143, 152, 156, 145, 148, 140, 143, 143, 149, 144, 149, 147, 140, 150, 140, 152, 142, 153, 142, 150, 155, 149, 149, 149, 138, 150, 146, 146, 149, 146, 139, 144, 145, 147, 148, 148, 150, 143, 156, 146, 129, 152, 152, 159, 144, 155, 148, 187, 148, 149, 149, 161, 138, 146, 139, 141, 149, 150, 146, 149, 148, 144, 154, 158, 145, 136, 148, 147, 147, 159, 133, 135, 136, 157, 147, 157, 154, 148, 137, 142, 145, 146, 135, 154, 155, 147, 144, 150, 148, 147, 144, 154, 157, 146, 142, 125, 155, 141, 153, 148, 138, 145, 142, 159, 148, 149, 141, 145, 139, 145, 134, 142, 153, 163, 139, 141, 160, 144, 151, 145, 135, 134, 150, 143, 134, 144, 147, 154, 151, 141, 130, 159, 141, 143, 132, 146, 146, 138, 151, 144, 143, 141, 144, 139, 139, 154, 154, 128, 139, 152, 142, 139, 143, 146, 137, 143, 150, 161, 128, 141, 146, 148, 151, 139, 147, 152, 160, 135, 151, 160, 139, 137, 148, 141, 148, 156, 157, 162, 125, 148, 149, 141, 146, 147, 146, 138, 158, 142, 141, 135, 130, 147, 137, 142, 139, 146, 149, 143, 151, 145, 138, 149, 143, 158, 159, 139, 144, 142, 141, 151, 136, 137, 188, 145, 147, 146, 144, 144, 150, 157, 144, 155, 160, 131, 154, 146, 152, 145, 153, 135, 148, 143, 151, 158, 135, 169, 145, 158, 155, 145, 154, 146, 147, 131, 143, 146, 160, 150, 142, 154, 140, 151, 146, 141, 149, 143, 145, 145, 137, 138, 158, 146, 128, 143, 139, 149, 148, 151, 138, 151, 155, 148, 154, 152, 131, 145, 148, 154, 140, 150, 141, 148, 142, 136, 147, 139, 154, 133, 148, 137, 149, 144, 150, 139, 144, 148, 155, 146, 142, 153, 152, 147, 141, 162, 138, 160, 153, 178, 135, 151, 141, 147, 156, 141, 142, 151, 137, 151, 156, 132, 154, 148, 153, 142, 156, 149, 149, 146, 149, 135, 141, 136, 141, 144, 147, 146, 161, 143, 149, 145, 151, 145, 151, 146, 146, 144, 147, 141, 141, 148, 164, 149, 147, 145, 146, 145, 153, 147, 150, 150, 136, 149, 149, 144, 150, 148, 166, 141, 143, 150, 146, 150, 142, 148, 147, 141, 155, 148, 148, 148, 154, 154, 143, 144, 146, 143, 146, 144, 154, 148, 161, 146, 154, 147, 145, 138, 148, 148, 144, 145, 144, 148, 140, 138, 151, 145, 139, 145, 149, 142, 141, 142, 144, 152, 143, 151, 135, 149, 141, 148, 146, 141, 136, 151, 151, 146, 152, 156, 148, 148, 148, 147, 151, 146, 143, 149, 144, 141, 157, 151, 147, 140, 146, 144, 144, 142, 144, 146, 147, 143, 147, 149, 146, 145, 151, 144, 153, 141, 153, 140, 154, 151, 149, 161, 144, 147, 143, 149, 155, 144, 146, 142, 149, 142, 136, 149, 151, 138, 141, 150, 140, 142, 152, 142, 146, 147, 147, 144, 139, 150, 141, 143, 143, 143, 135, 144, 157, 137, 156, 146, 153, 148, 150, 148, 146, 151, 149, 142, 158, 150, 140, 155, 154, 147, 160, 143, 131, 151, 150, 146, 154, 147, 144, 151, 144, 142, 144, 139, 151, 148, 144, 143, 150, 147, 140, 144, 155, 138, 149, 133, 147, 146, 153, 147, 142, 151, 152, 145, 139, 135, 141, 149, 139, 143, 140, 144, 142, 146, 140, 150, 144, 138, 144, 146, 146, 152, 146, 146, 150, 132, 151, 142, 147, 140, 144, 152, 144, 140, 147, 151, 151, 119, 149, 121, 119, 139, 136, 162, 140, 156, 135, 192, 140, 143, 135, 153, 151, 145, 156, 149, 149, 143, 139, 86, 139, 137, 148, 146, 139, 133, 137, 138, 158, 152, 161, 152, 158, 131, 151, 163, 130, 140, 132, 199, 165, 129, 129, 165, 143, 161, 146, 130, 149, 148, 141, 148, 148, 130, 142, 177, 130, 141, 153, 159, 150, 157, 147, 146, 144, 165, 156, 144, 157, 142, 144, 140, 149, 143, 154, 129, 189, 132, 139, 141, 145, 123, 160, 151, 159, 163, 153, 123, 142, 217, 168, 154, 142, 131, 170, 159, 137, 155, 148, 161, 143, 125, 154, 150, 159, 145, 155, 160, 150, 136, 154, 142, 145, 149, 148, 141, 124, 147, 145, 139, 144, 141, 149, 139, 148, 152, 152, 189, 151, 144, 140, 135, 140, 154, 161, 158, 149, 153, 136, 168, 133, 142, 145, 155, 146, 160, 140, 159, 162, 157, 149, 148, 127, 145, 134, 153, 137, 149, 154, 133, 163, 147, 166, 136, 139, 122, 179, 144, 135, 146, 132, 131, 173, 138, 128, 150, 147, 144, 144, 174, 160, 129, 151, 165, 152, 134, 172, 143, 126, 138, 155, 159, 141, 158, 149, 148, 141, 143, 158, 132, 154, 142, 151, 126, 150, 145, 150, 145, 137, 152, 160, 140, 130, 150, 156, 155, 150, 152, 146, 139, 145, 168, 152, 129, 156, 151, 145, 146, 139, 147, 137, 116, 159, 152, 143, 101, 153, 149, 136, 151, 152, 123, 146, 144, 149, 127, 166, 141, 151, 153, 138, 139, 143, 164, 142, 144, 139, 153, 146, 132, 131, 145, 154, 131, 153, 150, 147, 141, 133, 146, 151, 149, 158, 149, 154, 141, 160, 145, 151, 133, 146, 147, 132, 140, 152, 152, 149, 166, 133, 142, 143, 144, 144, 138, 155, 133, 141, 144, 151, 160, 152, 127, 135, 138, 146, 154, 149, 137, 175, 147, 136, 149, 145, 151, 142, 148, 147, 153, 158, 153, 150, 150, 159, 143, 138, 138, 154, 149, 138, 148, 143, 126, 156, 143, 145, 148, 149, 147, 171, 143, 151, 149, 144, 156, 139, 143, 138, 139, 146, 148, 152, 138, 147, 153, 127, 150, 151, 159, 148, 148, 144, 146, 155, 139, 140, 143, 144, 144, 146, 153, 130, 139, 137, 113, 143, 159, 145, 152, 149, 133, 143, 141, 150, 145, 161, 131, 147, 145, 163, 136, 148, 153, 163, 149, 143, 156, 146, 135, 145, 142, 141, 151, 136, 154, 145, 140, 144, 134, 141, 140, 169, 157, 137, 135, 149, 163, 142, 141, 118, 219, 153, 142, 139, 154, 156, 136, 145, 156, 153, 128, 147, 152, 141, 138, 146, 136, 148, 125, 124, 154, 160, 148, 155, 163, 115, 152, 170, 162, 159, 143, 149, 160, 151, 151, 147, 126, 147, 157, 146, 144, 136, 157, 139, 136, 139, 133, 130, 135, 150, 136, 150, 173, 152, 104, 145, 137, 142, 141, 145, 153, 148, 147, 143, 144, 146, 142, 141, 150, 131, 145, 143, 150, 127, 154, 143, 157, 151, 150, 152, 152, 145, 162, 145, 148, 138, 149, 165, 138, 152, 149, 142, 142, 146, 149, 143, 149, 147, 148, 146, 142, 145, 158, 143, 146, 151, 146, 141, 163, 191, 144, 161, 147, 146, 146, 140, 147, 150, 141, 146, 149, 146, 144, 151, 154, 144, 221, 142, 148, 144, 148, 150, 145, 139, 144, 147, 148, 154, 144, 185, 151, 146, 144, 146, 142, 143, 141, 102, 148, 144, 141, 144, 143, 143, 149, 139, 150, 148, 144, 149, 154, 154, 144, 150, 153, 143, 148, 142, 151, 143, 142, 150, 147, 150, 146, 146, 175, 144, 148, 142, 151, 149, 147, 145, 151, 143, 142, 144, 146, 140, 146, 151, 145, 142, 147, 151, 150, 160, 146, 146, 142, 147, 150, 143, 135, 143, 140, 147, 156, 147, 151, 134, 152, 116, 144, 146, 142, 149, 137, 147, 143, 152, 142, 153, 142, 150, 139, 147, 151, 146, 147, 149, 144, 150, 141, 145, 141, 151, 146, 138, 143, 154, 141, 156, 133, 144, 144, 141, 159, 145, 149, 147, 158, 148, 145, 142, 161, 143, 143, 144, 164, 154, 145, 151, 147, 153, 136, 140, 148, 141, 150, 144, 147, 149, 143, 148, 139, 151, 146, 158, 131, 134, 148, 146, 143, 152, 150, 152, 147, 148, 130, 142, 148, 147, 152, 148, 145, 148, 146, 145, 150, 146, 146, 148, 139, 153, 143, 143, 145, 135, 137, 147, 103, 144, 143, 147, 145, 147, 145, 145, 149, 147, 148, 148, 143, 145, 154, 160, 148, 142, 145, 141, 135, 149, 147, 143, 116, 149, 144, 148, 147, 136, 149, 149, 152, 145, 142, 149, 148, 149, 164, 147, 150, 149, 138, 150, 153, 142, 143, 150, 141, 145, 143, 147, 139, 148, 144, 144, 134, 148, 146, 157, 146, 146, 135, 146, 137, 141, 147, 138, 148, 156, 143, 149, 136, 141, 145, 145, 147, 144, 148, 146, 148, 145, 139, 145, 148, 148, 144, 149, 144, 146, 146, 149, 150, 149, 147, 148, 150, 142, 139, 140, 149, 141, 144, 149, 140, 148, 145, 151, 147, 146, 147, 147, 145, 149, 158, 147, 150, 149, 147, 146, 143, 144, 148, 141, 151, 144, 143, 145, 144, 146, 149, 145, 168, 142, 144, 149, 145, 151, 145, 150, 147, 144, 149, 144, 147, 143, 142, 151, 150, 151, 150, 146, 145, 149, 143, 143, 147, 142, 148, 151, 149, 144, 145, 145, 148, 144, 146, 141, 143, 149, 148, 145, 150, 150, 147, 141, 148, 145, 145, 149, 142, 149, 152, 148, 141, 147, 152, 149, 141, 152, 150, 141, 147, 148, 149, 144, 138, 147, 150, 143, 149, 145, 147, 146, 145, 148, 140, 148, 142, 151, 148, 150, 152, 140, 150, 146, 144, 148, 144, 144, 149, 147, 149, 148, 145, 151, 146, 150, 149, 149, 145, 145, 147, 147, 149, 150, 144, 147, 148, 144, 149, 146, 150, 149, 143, 151, 126, 140, 139, 148, 139, 152, 138, 143, 146, 149, 144, 137, 144, 141, 152, 167, 150, 150, 129, 154, 147, 146, 125, 146, 146, 148, 139, 144, 151, 149, 144, 142, 131, 143, 147, 145, 154, 140, 145, 147, 147, 152, 146, 145, 145, 135, 151, 134, 139, 147, 147, 156, 146, 167, 147, 141, 143, 245, 152, 154, 129, 151, 140, 146, 122, 142, 151, 152, 148, 143, 151, 148, 147, 158, 144, 159, 156, 147, 142, 132, 144, 135, 147, 150, 141, 145, 161, 133, 135, 158, 147, 138, 131, 148, 142, 139, 145, 153, 128, 155, 155, 143, 139, 139, 151, 147, 141, 150, 153, 147, 145, 138, 148, 155, 145, 152, 133, 151, 140, 136, 142, 148, 140, 166, 165, 139, 148, 146, 142, 139, 137, 147, 150, 154, 153, 145, 138, 148, 168, 140, 148, 138, 139, 146, 138, 137, 147, 142, 145, 151, 147, 147, 143, 155, 142, 153, 144, 139, 150, 140, 129, 145, 144, 139, 144, 146, 144, 139, 149, 158, 121, 148, 156, 142, 139, 149, 157, 144, 141, 149, 136, 139, 141, 165, 153, 137, 154, 141, 147, 153, 146, 139, 146, 143, 148, 153, 138, 140, 148, 138, 133, 148, 149, 96, 147, 140, 152, 135, 151, 144, 144, 149, 149, 136, 147, 150, 145, 143, 141, 152, 145, 140, 151, 143, 141, 144, 153, 141, 142, 143, 134, 156, 152, 141, 139, 146, 141, 145, 151, 150, 155, 144, 142, 160, 144, 147, 147, 157, 149, 150, 153, 144, 141, 152, 146, 151, 141, 152, 146, 139, 139, 152, 173, 142, 139, 132, 153, 151, 157, 143, 156, 148, 147, 141, 145, 140, 141, 145, 141, 143, 150, 143, 143, 147, 149, 134, 138, 151, 141, 149, 149, 149, 147, 119, 142, 146, 153, 141, 130, 144, 142, 152, 149, 150, 145, 143, 144, 145, 141, 135, 149, 151, 145, 136, 140, 145, 142, 150, 145, 145, 160, 146, 136, 144, 155, 152, 143, 145, 152, 159, 146, 142, 142, 142, 151, 147, 144, 132, 147, 149, 150, 145, 142, 155, 142, 171, 140, 147, 151, 146, 140, 148, 147, 143, 138, 148, 148, 146, 148, 141, 142, 143, 154, 143, 148, 143, 147, 144, 147, 143, 137, 142, 151, 142, 144, 144, 145, 146, 148, 154, 151, 148, 140, 142, 145, 144, 142, 144, 148, 151, 141, 147, 143, 147, 126, 136, 145, 150, 145, 147, 142, 146, 142, 144, 146, 149, 139, 146, 147, 138, 147, 124, 143, 154, 150, 144, 145, 155, 147, 140, 152, 148, 146, 145, 171, 141, 141, 148, 148, 153, 149, 148, 154, 144, 143, 149, 147, 140, 148, 139, 148, 147, 149, 140, 148, 147, 141, 147, 144, 148, 144, 146, 149, 148, 150, 145, 130, 148, 144, 162, 145, 137, 147, 144, 146, 148, 141, 141, 144, 145, 149, 147, 143, 144, 141, 155, 146, 142, 136, 143, 152, 146, 152, 153, 148, 146, 146, 152, 142, 147, 145, 142, 152, 148, 146, 147, 150, 148, 142, 149, 152, 150, 144, 139, 139, 147, 154, 159, 147, 151, 149, 147, 139, 152, 148, 146, 148, 139, 145, 145, 155, 149, 145, 151, 144, 131, 147, 151, 152, 139, 138, 144, 154, 151, 141, 151, 147, 143, 152, 142, 152, 154, 148, 141, 138, 143, 144, 145, 143, 163, 147, 149, 150, 146, 141, 144, 149, 153, 142, 154, 143, 140, 140, 149, 133, 141, 144, 157, 146, 145, 140, 141, 146, 152, 144, 152, 147, 143, 140, 143, 140, 152, 153, 145, 139, 151, 152, 141, 151, 151, 144, 134, 149, 145, 139, 145, 144, 164, 143, 145, 150, 151, 148, 142, 142, 145, 144, 146, 147, 144, 143, 153, 151, 146, 143, 147, 144, 140, 149, 145, 150, 174, 152, 154, 150, 149, 147, 144, 150, 150, 151, 145, 139, 142, 138, 150, 146, 145, 148, 146, 143, 150, 145, 143, 140, 140, 145, 144, 154, 146, 146, 145, 138, 136, 142, 149, 144, 156, 153, 150, 149, 152, 152, 151, 149, 146, 151, 145, 145, 156, 149, 150, 145, 151, 146, 146, 145, 151, 140, 148, 146, 147, 154, 146, 140, 144, 147, 156, 141, 150, 140, 151, 142, 145, 168, 148, 149, 156, 151, 149, 147, 139, 144, 148, 143, 139, 142, 145, 144, 139, 148, 134, 149, 168, 143, 145, 142, 154, 140, 138, 147, 145, 142, 144, 143, 148, 151, 146, 140, 165, 138, 147, 137, 150, 144, 148, 144, 143, 150, 140, 149, 150, 152, 150, 137, 157, 142, 139, 146, 151, 126, 148, 145, 143, 149, 153, 141, 140, 145, 150, 133, 149, 147, 148, 149, 145, 144, 155, 136, 149, 141, 150, 146, 144, 139, 140, 148, 142, 143, 144, 137, 147, 146, 142, 144, 159, 147, 145, 143, 146, 146, 148, 142, 135, 145, 143, 148, 152, 147, 151, 150, 150, 145, 151, 148, 141, 150, 136, 147, 143, 146, 146, 143, 146, 146, 143, 147, 145, 147, 146, 146, 149, 145, 145, 150, 148, 145, 144, 146, 151, 145, 144, 148, 149, 148, 147, 146, 143, 144, 154, 149, 147, 137, 148, 146, 148, 147, 149, 143, 150, 149, 182, 147, 153, 139, 148, 141, 139, 142, 150, 144, 143, 146, 147, 146, 149, 146, 147, 147, 150, 143, 144, 149, 145, 142, 148, 145, 163, 137, 145, 151, 145, 145, 138, 142, 145, 146, 145, 145, 144, 147, 149, 150, 145, 150, 147, 140, 151, 147, 145, 145, 148, 145, 146, 145, 143, 150, 145, 143, 154, 152, 149, 147, 147, 147, 150, 158, 147, 150, 144, 144, 150, 146, 143, 148, 147, 144, 146, 143, 144, 142, 148, 143, 148, 154, 147, 146, 142, 141, 148, 142, 140, 147, 140, 146, 142, 144, 146, 147, 146, 161, 146, 149, 148, 144, 141, 141, 146, 143, 150, 144, 144, 141, 147, 143, 150, 143, 151, 142, 148, 146, 146, 140, 144, 131, 141, 141, 146, 145, 142, 114, 143, 147, 142, 145, 144, 146, 147, 146, 145, 146, 149, 144, 152, 144, 148, 144, 146, 145, 144, 150, 143, 145, 146, 145, 137, 130, 140, 144, 145, 144, 147, 147, 139, 145, 146, 147, 142, 143, 142, 143, 146, 148, 146, 144, 154, 148, 144, 132, 147, 149, 145, 147, 144, 149, 148, 136, 147, 145, 148, 145, 145, 142, 145, 143, 145, 151, 145, 147, 156, 145, 144, 142, 148, 145, 145, 167, 143, 150, 143, 146, 145, 146, 156, 145, 144, 147, 148, 144, 145, 136, 138, 138, 149, 149, 145, 151, 149, 144, 140, 152, 155, 151, 144, 149, 147, 142, 147, 149, 147, 164, 146, 146, 143, 149, 149, 143, 147, 146, 148, 139, 148, 134, 123, 144, 149, 143, 153, 143, 150, 148, 143, 149, 152, 141, 142, 137, 148, 135, 147, 142, 147, 148, 151, 148, 145, 145, 148, 140, 147, 152, 150, 161, 150, 142, 145, 142, 136, 153, 145, 144, 151, 145, 142, 145, 151, 144, 137, 142, 140, 145, 144, 146, 145, 140, 149, 146, 148, 145, 145, 138, 139, 149, 150, 145, 130, 124, 147, 151, 147, 149, 146, 151, 148, 147, 145, 143, 145, 140, 143, 149, 149, 152, 147, 144, 149, 150, 141, 149, 145, 148, 139, 150, 142, 152, 146, 146, 152, 147, 145, 147, 143, 148, 143, 147, 137, 149, 149, 148, 153, 144, 150, 143, 143, 158, 137, 143, 149, 146, 153, 145, 145, 149, 143, 147, 149, 147, 147, 145, 147, 145, 140, 140, 151, 146, 148, 137, 149, 147, 148, 141, 145, 141, 140, 146, 146, 151, 139, 149, 143, 140, 145, 148, 146, 145, 145, 144, 155, 149, 140, 145, 138, 137, 147, 146, 144, 141, 145, 146, 149, 146, 143, 149, 144, 142, 152, 147, 146, 147, 150, 170, 146, 148, 143, 149, 140, 144, 148, 148, 143, 150, 143, 146, 153, 152, 138, 148, 152, 166, 144, 141, 143, 171, 144, 134, 146, 167, 145, 147, 147, 148, 149, 151, 143, 143, 147, 148, 148, 143, 143, 131, 141, 143, 146, 151, 148, 145, 141, 149, 138, 143, 150, 143, 205, 154, 145, 147, 135, 143, 148, 140, 155, 132, 140, 149, 147, 145, 151, 150, 137, 148, 141, 148, 139, 144, 152, 147, 139, 147, 137, 148, 126, 153, 148, 89, 140, 145, 141, 139, 64, 150, 150, 149, 147, 134, 151, 152, 143, 169, 150, 162, 144, 157, 137, 151, 146, 151, 149, 162, 145, 147, 148, 144, 144, 146, 145, 179, 141, 138, 132, 149, 139, 146, 134, 144, 151, 149, 150, 149, 152, 145, 147, 141, 141, 220, 144, 141, 147, 149, 154, 149, 147, 138, 154, 139, 144, 145, 152, 140, 145, 150, 148, 155, 136, 141, 130, 147, 146, 150, 150, 142, 141, 150, 140, 162, 139, 153, 134, 131, 154, 127, 141, 145, 158, 145, 148, 147, 151, 139, 142, 137, 143, 148, 185, 148, 155, 138, 143, 150, 145, 141, 149, 145, 150, 153, 150, 138, 142, 141, 141, 152, 142, 137, 141, 156, 130, 151, 149, 136, 144, 140, 92, 150, 148, 148, 150, 138, 150, 149, 143, 138, 145, 117, 143, 145, 143, 149, 155, 143, 153, 133, 147, 157, 140, 149, 145, 143, 145, 141, 143, 156, 144, 141, 150, 145, 147, 156, 143, 149, 142, 149, 158, 155, 146, 156, 149, 137, 146, 142, 137, 152, 154, 159, 144, 151, 149, 146, 159, 156, 141, 150, 143, 144, 137, 138, 149, 111, 154, 140, 153, 147, 149, 150, 134, 151, 158, 147, 149, 141, 148, 143, 140, 154, 139, 137, 148, 145, 163, 127, 154, 144, 142, 171, 136, 140, 141, 80, 150, 151, 159, 188, 134, 151, 147, 159, 146, 146, 154, 151, 149, 148, 143, 206, 158, 132, 144, 154, 149, 134, 147, 135, 152, 141, 135, 140, 164, 142, 148, 141, 146, 151, 142, 142, 148, 149, 147, 130, 153, 143, 144, 135, 141, 153, 146, 155, 159, 143, 144, 140, 143, 151, 148, 144, 139, 138, 139, 145, 147, 139, 159, 147, 149, 162, 157, 148, 152, 131, 135, 151, 147, 146, 147, 151, 138, 140, 168, 154, 138, 144, 139, 159, 143, 164, 147, 143, 136, 152, 128, 186, 153, 151, 148, 146, 149, 153, 152, 149, 159, 160, 145, 166, 135, 147, 144, 150, 156, 141, 148, 152, 132, 151, 142, 153, 141, 155, 144, 141, 156, 148, 144, 143, 152, 142, 147, 138, 147, 150, 145, 166, 143, 145, 146, 145, 138, 124, 149, 148, 94, 151, 155, 144, 147, 145, 151, 138, 180, 145, 148, 148, 145, 144, 156, 112, 143, 138, 137, 142, 149, 92, 134, 153, 148, 137, 129, 144, 145, 150, 149, 163, 145, 139, 146, 154, 145, 144, 148, 137, 153, 146, 148, 149, 149, 149, 164, 171, 150, 145, 137, 147, 145, 144, 161, 144, 143, 146, 151, 143, 150, 139, 145, 146, 144, 121, 145, 146, 144, 109, 145, 149, 161, 147, 132, 151, 138, 138, 149, 145, 146, 145, 138, 136, 151, 158, 145, 172, 149, 147, 144, 128, 147, 139, 154, 140, 138, 105, 140, 156, 145, 137, 144, 154, 158, 162, 157, 151, 145, 142, 145, 144, 129, 138, 145, 139, 150, 148, 146, 151, 141, 148, 142, 136, 148, 142, 145, 140, 154, 143, 155, 144, 146, 143, 137, 142, 155, 154, 153, 151, 144, 144, 147, 150, 155, 145, 143, 154, 152, 145, 144, 151, 153, 146, 148, 135, 147, 152, 147, 152, 148, 137, 146, 140, 149, 147, 151, 143, 145, 145, 144, 148, 147, 143, 138, 144, 150, 149, 146, 154, 147, 146, 149, 142, 149, 136, 146, 150, 146, 145, 155, 144, 143, 144, 147, 147, 147, 148, 144, 144, 143, 145, 142, 150, 144, 142, 132, 155, 151, 145, 157, 153, 148, 146, 143, 141, 148, 143, 143, 147, 149, 146, 151, 145, 144, 145, 145, 152, 135, 148, 154, 155, 134, 147, 140, 142, 145, 146, 147, 154, 140, 147, 148, 146, 149, 149, 140, 149, 147, 150, 140, 150, 153, 141, 145, 151, 156, 146, 151, 144, 150, 141, 153, 152, 142, 150, 142, 145, 147, 143, 144, 141, 144, 146, 139, 143, 144, 134, 156, 143, 150, 142, 133, 146, 141, 145, 148, 150, 145, 146, 150, 145, 140, 151, 145, 150, 149, 145, 136, 153, 145, 144, 146, 152, 146, 147, 145, 151, 143, 141, 141, 148, 143, 146, 147, 139, 148, 145, 149, 142, 150, 150, 148, 152, 150, 130, 143, 141, 147, 142, 145, 144, 147, 152, 140, 147, 144, 154, 145, 146, 152, 147, 143, 159, 152, 136, 145, 143, 148, 147, 146, 146, 141, 132, 151, 149, 143, 150, 151, 147, 151, 149, 140, 147, 142, 139, 156, 144, 130, 167, 148, 151, 122, 133, 143, 131, 149, 151, 147, 121, 147, 140, 143, 142, 149, 140, 144, 143, 132, 151, 143, 140, 150, 131, 122, 137, 147, 150, 141, 154, 139, 140, 155, 150, 146, 147, 162, 149, 132, 147, 146, 149, 147, 134, 145, 139, 144, 140, 138, 150, 146, 143, 147, 139, 142, 143, 142, 150, 157, 176, 148, 147, 151, 137, 128, 148, 150, 151, 156, 126, 143, 144, 141, 144, 141, 139, 147, 153, 161, 146, 127, 148, 140, 159, 131, 145, 153, 143, 154, 147, 154, 144, 167, 131, 132, 147, 149, 139, 127, 136, 148, 144, 140, 141, 129, 146, 146, 143, 151, 148, 143, 136, 138, 149, 138, 142, 159, 148, 143, 149, 154, 144, 147, 151, 146, 142, 154, 140, 150, 140, 169, 142, 145, 147, 144, 148, 140, 132, 136, 168, 143, 156, 157, 148, 148, 141, 154, 129, 142, 144, 127, 149, 126, 146, 142, 158, 130, 148, 147, 135, 138, 160, 157, 135, 167, 153, 141, 138, 136, 134, 149, 141, 144, 144, 147, 147, 138, 135, 139, 124, 142, 141, 151, 147, 166, 147, 153, 156, 152, 141, 153, 161, 152, 151, 134, 137, 139, 155, 149, 151, 142, 156, 141, 153, 146, 152, 141, 164, 161, 146, 155, 151, 138, 123, 141, 150, 141, 145, 134, 144, 149, 150, 156, 141, 152, 127, 121, 146, 161, 142, 162, 133, 154, 149, 139, 143, 154, 141, 138, 148, 145, 153, 142, 120, 128, 135, 144, 143, 141, 137, 151, 151, 148, 153, 156, 147, 149, 136, 144, 141, 157, 151, 153, 145, 155, 154, 142, 145, 147, 145, 146, 140, 142, 143, 147, 147, 147, 147, 150, 154, 142, 158, 153, 150, 147, 138, 138, 148, 145, 145, 149, 153, 144, 145, 149, 146, 152, 147, 140, 148, 147, 146, 148, 160, 151, 145, 148, 153, 148, 151, 146, 149, 148, 143, 150, 139, 154, 143, 144, 148, 143, 149, 147, 146, 143, 147, 150, 144, 150, 143, 151, 145, 136, 146, 153, 141, 157, 148, 141, 135, 146, 147, 142, 157, 143, 146, 145, 148, 145, 148, 144, 147, 151, 146, 145, 148, 142, 147, 147, 151, 143, 152, 141, 146, 144, 147, 147, 146, 154, 145, 146, 147, 137, 142, 139, 144, 156, 146, 147, 152, 145, 151, 152, 147, 146, 144, 150, 145, 152, 153, 146, 144, 145, 149, 143, 140, 139, 144, 133, 143, 142, 149, 147, 144, 148, 143, 154, 138, 149, 135, 145, 142, 147, 153, 147, 146, 151, 136, 141, 145, 142, 146, 144, 152, 163, 139, 154, 142, 143, 144, 144, 155, 144, 158, 147, 153, 146, 148, 147, 143, 146, 146, 143, 143, 144, 146, 137, 141, 147, 142, 147, 142, 148, 141, 143, 148, 144, 148, 147, 142, 147, 142, 142, 147, 153, 138, 145, 153, 141, 160, 148, 144, 147, 148, 153, 148, 144, 146, 149, 145, 139, 151, 148, 153, 147, 143, 151, 158, 145, 145, 147, 145, 140, 148, 147, 146, 148, 146, 150, 147, 145, 156, 143, 150, 147, 149, 153, 143, 147, 149, 148, 149, 148, 137, 145, 136, 149, 141, 142, 139, 148, 144, 159, 154, 149, 143, 148, 144, 132, 146, 142, 158, 141, 147, 144, 143, 149, 146, 146, 143, 145, 148, 147, 135, 152, 147, 162, 148, 144, 147, 148, 150, 148, 141, 154, 147, 130, 144, 138, 148, 145, 148, 147, 151, 149, 143, 147, 145, 148, 145, 169, 147, 149, 136, 144, 146, 154, 143, 143, 150, 148, 148, 153, 152, 138, 143, 151, 138, 151, 150, 146, 144, 152, 138, 139, 139, 147, 145, 140, 142, 145, 142, 155, 147, 152, 158, 158, 147, 152, 141, 145, 152, 144, 142, 144, 140, 136, 142, 145, 140, 151, 150, 147, 148, 145, 136, 140, 145, 148, 148, 141, 146, 152, 142, 147, 144, 153, 143, 142, 148, 153, 149, 155, 147, 150, 147, 145, 147, 154, 145, 143, 148, 141, 149, 148, 144, 139, 142, 149, 148, 154, 147, 157, 151, 143, 129, 142, 146, 144, 140, 140, 139, 145, 152, 151, 137, 144, 146, 152, 141, 154, 151, 153, 147, 145, 147, 151, 144, 141, 141, 144, 147, 129, 144, 144, 148, 161, 152, 135, 143, 138, 147, 137, 145, 141, 150, 151, 137, 149, 140, 144, 145, 145, 143, 155, 144, 148, 141, 145, 150, 151, 144, 142, 139, 146, 143, 146, 149, 150, 134, 146, 152, 150, 138, 144, 144, 144, 138, 141, 147, 148, 141, 143, 149, 156, 136, 156, 144, 143, 143, 146, 150, 143, 147, 151, 139, 147, 150, 149, 147, 150, 142, 143, 130, 148, 144, 148, 151, 146, 155, 138, 150, 147, 158, 142, 146, 153, 144, 152, 151, 147, 145, 148, 149, 149, 142, 140, 150, 145, 149, 147, 155, 132, 136, 145, 148, 148, 150, 139, 147, 148, 142, 156, 142, 147, 153, 146, 146, 149, 157, 143, 131, 148, 144, 149, 143, 151, 148, 154, 147, 152, 153, 147, 144, 151, 153, 141, 157, 143, 146, 145, 148, 147, 150, 148, 145, 150, 154, 137, 146, 145, 148, 137, 141, 138, 150, 155, 149, 136, 146, 156, 135, 157, 142, 153, 154, 150, 151, 150, 142, 154, 149, 137, 145, 144, 161, 147, 151, 150, 145, 150, 131, 141, 141, 146, 141, 150, 144, 148, 151, 148, 152, 138, 137, 147, 147, 148, 147, 158, 147, 133, 147, 147, 158, 156, 142, 147, 146, 153, 145, 147, 147, 153, 147, 135, 145, 143, 148, 147, 151, 146, 149, 146, 143, 153, 149, 150, 161, 137, 151, 147, 153, 143, 145, 148, 150, 147, 155, 147, 149, 144, 141, 153, 148, 146, 138, 154, 147, 154, 148, 144, 147, 149, 150, 143, 155, 146, 145, 143, 158, 155, 148, 152, 142, 134, 145, 146, 154, 164, 148, 149, 148, 165, 147, 141, 148, 152, 151, 152, 144, 149, 145, 151, 148, 143, 159, 147, 149, 143, 150, 144, 131, 140, 136, 145, 140, 152, 158, 148, 144, 151, 144, 161, 151, 148, 138, 142, 126, 147, 130, 150, 143, 136, 141, 145, 147, 142, 140, 143, 150, 150, 155, 151, 143, 144, 140, 147, 147, 148, 145, 153, 166, 149, 149, 151, 146, 144, 153, 147, 141, 157, 159, 141, 153, 147, 141, 129, 156, 194, 139, 139, 154, 141, 136, 143, 129, 149, 140, 147, 134, 154, 143, 144, 141, 143, 169, 134, 148, 149, 140, 150, 145, 136, 148, 138, 153, 154, 143, 98, 142, 138, 143, 145, 137, 147, 147, 147, 152, 157, 136, 149, 139, 148, 139, 143, 180, 146, 138, 140, 143, 149, 144, 152, 136, 151, 142, 143, 145, 140, 152, 221, 148, 149, 149, 150, 115, 152, 146, 144, 146, 115, 148, 156, 155, 149, 136, 161, 145, 149, 148, 146, 148, 145, 152, 144, 140, 158, 146, 144, 144, 150, 139, 140, 138, 141, 135, 147, 153, 135, 141, 141, 159, 144, 157, 153, 146, 132, 150, 144, 150, 141, 149, 202, 147, 151, 145, 147, 146, 148, 142, 144, 135, 152, 150, 143, 141, 156, 145, 127, 139, 145, 138, 149, 144, 139, 147, 147, 150, 140, 143, 138, 125, 149, 154, 144, 164, 150, 138, 133, 150, 145, 143, 155, 152, 149, 146, 148, 135, 148, 142, 145, 141, 148, 141, 138, 151, 144, 149, 148, 137, 142, 134, 144, 137, 152, 137, 154, 147, 149, 120, 153, 144, 141, 155, 141, 149, 154, 134, 143, 140, 145, 135, 141, 135, 132, 163, 145, 139, 140, 148, 152, 88, 148, 144, 142, 136, 144, 147, 137, 160, 140, 144, 148, 147, 143, 140, 163, 155, 146, 144, 148, 145, 153, 142, 146, 104, 151, 147, 146, 153, 148, 149, 153, 152, 144, 140, 141, 142, 140, 141, 144, 144, 142, 158, 149, 146, 141, 147, 159, 164, 147, 144, 148, 140, 143, 147, 147, 154, 155, 142, 151, 147, 151, 147, 137, 146, 153, 144, 143, 146, 123, 139, 139, 150, 147, 142, 146, 146, 139, 143, 153, 143, 139, 138, 147, 141, 144, 143, 148, 149, 143, 152, 151, 145, 148, 144, 146, 144, 155, 158, 149, 138, 147, 146, 136, 149, 143, 143, 144, 150, 144, 147, 143, 144, 139, 137, 144, 137, 146, 146, 139, 146, 151, 144, 148, 148, 153, 136, 150, 145, 144, 144, 142, 124, 147, 147, 141, 143, 149, 143, 146, 145, 144, 146, 144, 142, 153, 143, 140, 146, 153, 151, 142, 143, 139, 145, 138, 145, 142, 143, 144, 148, 142, 144, 143, 151, 141, 148, 145, 151, 144, 139, 144, 148, 147, 149, 152, 146, 146, 142, 151, 159, 133, 151, 157, 149, 149, 143, 150, 141, 155, 145, 140, 145, 149, 141, 145, 139, 150, 143, 152, 150, 152, 133, 147, 138, 147, 148, 153, 142, 147, 148, 148, 146, 146, 146, 149, 147, 147, 148, 149, 138, 154, 148, 153, 138, 142, 151, 138, 143, 145, 149, 139, 146, 138, 145, 144, 138, 144, 143, 147, 142, 146, 148, 145, 151, 145, 184, 144, 148, 141, 156, 146, 145, 149, 143, 147, 147, 148, 142, 141, 147, 139, 143, 144, 177, 144, 143, 146, 173, 142, 148, 144, 175, 143, 149, 150, 145, 141, 148, 142, 149, 148, 144, 149, 143, 143, 136, 146, 151, 147, 103, 147, 140, 153, 147, 145, 161, 154, 154, 142, 161, 148, 155, 134, 130, 140, 143, 136, 138, 140, 138, 130, 125, 114, 140, 144, 146, 162, 153, 159, 154, 143, 145, 144, 148, 139, 144, 140, 138, 143, 146, 145, 136, 147, 141, 135, 151, 131, 161, 144, 156, 149, 142, 156, 144, 149, 137, 152, 143, 139, 149, 148, 148, 163, 150, 157, 154, 148, 150, 152, 143, 141, 155, 150, 140, 140, 143, 140, 143, 151, 146, 139, 149, 145, 152, 131, 145, 157, 149, 151, 141, 149, 141, 156, 149, 143, 139, 159, 126, 146, 145, 150, 151, 144, 143, 145, 142, 144, 123, 122, 137, 148, 148, 145, 143, 124, 148, 142, 129, 132, 119, 168, 162, 146, 148, 138, 139, 146, 143, 149, 144, 151, 141, 155, 137, 143, 149, 145, 146, 140, 115, 127, 138, 139, 169, 139, 145, 162, 147, 139, 134, 156, 132, 159, 141, 139, 158, 144, 146, 141, 141, 142, 141, 157, 159, 141, 149, 142, 145, 155, 141, 141, 153, 158, 160, 134, 142, 133, 142, 148, 163, 150, 140, 144, 153, 142, 155, 152, 145, 144, 141, 150, 136, 138, 143, 141, 150, 148, 145, 150, 140, 130, 154, 144, 152, 151, 156, 147, 150, 146, 151, 151, 153, 153, 156, 141, 150, 150, 134, 115, 126, 140, 143, 156, 158, 150, 147, 147, 144, 134, 143, 145, 141, 143, 154, 149, 126, 141, 150, 135, 140, 157, 141, 140, 141, 125, 153, 149, 142, 150, 134, 141, 145, 142, 132, 138, 147, 140, 146, 159, 140, 152, 146, 150, 133, 147, 144, 148, 136, 154, 147, 148, 163, 147, 141, 147, 148, 142, 152, 140, 141, 141, 150, 146, 135, 160, 143, 154, 139, 140, 159, 140, 146, 154, 149, 146, 150, 147, 140, 146, 149, 143, 143, 142, 143, 144, 140, 144, 130, 148, 141, 146, 146, 142, 147, 150, 140, 137, 152, 174, 163, 143, 145, 136, 145, 141, 144, 142, 133, 141, 144, 147, 143, 139, 143, 146, 141, 146, 161, 160, 148, 145, 148, 145, 147, 144, 142, 143, 143, 140, 140, 153, 144, 140, 144, 149, 140, 145, 143, 147, 151, 148, 143, 147, 141, 149, 139, 138, 142, 149, 148, 143, 147, 144, 143, 144, 148, 149, 149, 141, 146, 130, 145, 150, 141, 152, 140, 146, 146, 145, 151, 145, 150, 141, 143, 151, 152, 146, 148, 139, 141, 142, 146, 146, 139, 144, 149, 142, 147, 149, 143, 142, 147, 147, 150, 143, 138, 140, 139, 137, 144, 140, 150, 146, 145, 135, 146, 140, 148, 137, 146, 167, 146, 142, 142, 130, 146, 144, 148, 151, 149, 152, 140, 153, 148, 186, 145, 147, 145, 145, 149, 139, 144, 146, 141, 175, 151, 144, 143, 151, 142, 144, 149, 143, 146, 138, 147, 145, 143, 150, 144, 137, 147, 145, 135, 139, 141, 146, 145, 125, 144, 141, 145, 146, 141, 160, 153, 140, 148, 144, 156, 147, 143, 146, 153, 145, 149, 156, 141, 143, 152, 144, 142, 144, 163, 143, 139, 145, 134, 152, 150, 136, 146, 143, 147, 141, 147, 158, 137, 154, 150, 143, 152, 150, 141, 153, 149, 147, 142, 149, 140, 145, 145, 147, 144, 145, 157, 144, 142, 146, 146, 128, 147, 135, 142, 145, 140, 149, 148, 146, 139, 146, 171, 146, 140, 140, 143, 168, 143, 141, 148, 154, 135, 141, 145, 142, 161, 145, 141, 150, 152, 148, 146, 147, 131, 142, 146, 145, 146, 160, 146, 154, 146, 153, 132, 144, 152, 149, 137, 144, 151, 159, 146, 145, 143, 132, 147, 141, 146, 144, 144, 147, 132, 151, 142, 142, 147, 143, 152, 146, 151, 149, 148, 152, 144, 147, 144, 157, 154, 144, 143, 140, 144, 140, 142, 148, 149, 150, 148, 129, 144, 148, 149, 147, 145, 142, 147, 148, 136, 138, 140, 142, 143, 142, 155, 143, 141, 140, 165, 172, 150, 163, 146, 146, 146, 148, 144, 146, 160, 141, 146, 145, 140, 145, 150, 147, 148, 152, 141, 148, 146, 137, 140, 146, 146, 150, 146, 145, 145, 165, 145, 144, 145, 142, 146, 147, 156, 150, 147, 145, 147, 159, 144, 147, 142, 154, 142, 145, 144, 142, 131, 144, 140, 148, 150, 145, 147, 149, 142, 144, 146, 145, 149, 145, 138, 139, 144, 147, 150, 149, 144, 149, 138, 149, 134, 140, 146, 146, 149, 149, 142, 147, 145, 150, 150, 143, 149, 145, 137, 148, 135, 137, 145, 144, 132, 141, 143, 145, 149, 140, 147, 136, 147, 137, 145, 139, 147, 145, 148, 142, 144, 140, 129, 150, 137, 145, 147, 137, 142, 145, 148, 145, 146, 145, 145, 145, 146, 145, 146, 157, 153, 146, 145, 143, 147, 144, 145, 143, 146, 150, 151, 146, 146, 149, 144, 145, 147, 147, 150, 147, 143, 147, 143, 146, 136, 146, 145, 139, 146, 144, 146, 142, 147, 146, 148, 155, 150, 131, 149, 147, 144, 144, 140, 145, 144, 168, 147, 142, 146, 146, 142, 151, 145, 145, 206, 152, 151, 147, 148, 145, 142, 138, 148, 145, 141, 144, 148, 145, 147, 158, 145, 145, 144, 143, 125, 147, 144, 147, 144, 135, 145, 147, 147, 143, 180, 142, 147, 145, 148, 144, 145, 143, 147, 151, 147, 145, 142, 146, 146, 145, 142, 147, 166, 146, 144, 146, 152, 142, 146, 142, 144, 143, 144, 146, 145, 143, 162, 148, 142, 144, 144, 149, 146, 147, 147, 143, 149, 145, 148, 145, 146, 152, 144, 149, 138, 150, 145, 140, 146, 148, 144, 147, 146, 151, 144, 146, 152, 145, 145, 147, 144, 146, 147, 146, 144, 146, 148, 142, 138, 149, 145, 146, 148, 145, 144, 146, 148, 146, 146, 151, 146, 147, 148, 145, 143, 146, 146, 148, 143, 145, 148, 144, 143, 143, 148, 149, 148, 146, 151, 145, 146, 147, 143, 150, 143, 146, 148, 145, 147, 148, 142, 149, 146, 144, 147, 143, 146, 145, 147, 147, 141, 147, 147, 149, 155, 148, 144, 145, 141, 146, 149, 148, 149, 144, 151, 151, 148, 148, 138, 145, 152, 147, 143, 147, 155, 130, 147, 146, 146, 147, 147, 146, 145, 143, 150, 146, 150, 154, 141, 146, 146, 149, 145, 144, 147, 152, 141, 146, 146, 149, 150, 143, 151, 145, 147, 140, 146, 144, 151, 144, 150, 150, 146, 150, 143, 145, 148, 148, 145, 139, 137, 152, 148, 133, 146, 151, 149, 144, 149, 148, 154, 150, 149, 145, 141, 145, 144, 145, 145, 153, 149, 148, 143, 145, 145, 142, 148, 151, 149, 148, 148, 153, 141, 144, 150, 147, 147, 141, 150, 150, 145, 145, 162, 149, 147, 138, 150, 148, 145, 150, 144, 148, 152, 149, 149, 150, 154, 150, 146, 147, 140, 139, 144, 148, 145, 159, 153, 145, 149, 147, 148, 156, 148, 148, 147, 150, 148, 148, 148, 138, 142, 148, 155, 154, 142, 149, 134, 142, 148, 147, 150, 147, 157, 146, 151, 162, 146, 155, 137, 149, 149, 149, 146, 147, 140, 146, 143, 150, 148, 150, 143, 143, 148, 143, 148, 148, 142, 140, 145, 126, 144, 152, 136, 151, 145, 150, 155, 143, 154, 143, 142, 148, 157, 144, 143, 155, 148, 146, 150, 148, 132, 157, 149, 145, 146, 144, 144, 148, 150, 155, 151, 145, 146, 148, 143, 144, 139, 152, 147, 144, 137, 149, 146, 148, 142, 144, 145, 148, 147, 159, 154, 151, 140, 146, 140, 155, 142, 143, 148, 148, 145, 140, 144, 145, 146, 143, 151, 145, 141, 146, 149, 141, 146, 152, 152, 147, 145, 142, 150, 148, 144, 120, 143, 147, 148, 148, 152, 143, 143, 153, 144, 153, 145, 144, 146, 145, 149, 145, 147, 146, 156, 144, 148, 154, 147, 147, 170, 144, 133, 142, 136, 145, 148, 142, 154, 143, 147, 146, 148, 152, 136, 151, 104, 147, 149, 146, 147, 141, 157, 146, 155, 147, 149, 141, 140, 153, 133, 143, 152, 154, 143, 165, 143, 142, 147, 145, 159, 145, 151, 144, 150, 145, 144, 151, 149, 149, 144, 147, 144, 153, 146, 151, 143, 137, 136, 173, 139, 143, 158, 141, 132, 141, 143, 143, 151, 149, 157, 148, 147, 146, 150, 143, 147, 146, 147, 148, 145, 146, 150, 154, 146, 162, 152, 152, 142, 149, 148, 165, 141, 159, 140, 156, 144, 139, 144, 145, 148, 148, 139, 162, 149, 145, 148, 140, 145, 143, 142, 140, 147, 163, 141, 146, 140, 148, 149, 150, 142, 148, 140, 143, 143, 161, 139, 153, 146, 149, 139, 152, 151, 149, 143, 144, 164, 155, 146, 147, 140, 152, 139, 139, 151, 149, 139, 149, 149, 142, 140, 157, 140, 137, 154, 146, 169, 149, 156, 145, 148, 142, 170, 145, 145, 139, 144, 155, 146, 154, 132, 142, 141, 146, 141, 143, 140, 152, 139, 149, 147, 141, 152, 151, 150, 158, 141, 141, 122, 163, 142, 138, 142, 141, 140, 151, 142, 152, 139, 147, 147, 144, 141, 147, 141, 145, 138, 138, 144, 147, 160, 144, 149, 145, 138, 151, 146, 134, 147, 148, 141, 147, 146, 137, 150, 139, 151, 143, 120, 144, 144, 144, 139, 146, 147, 151, 146, 152, 176, 131, 141, 153, 147, 139, 141, 158, 140, 152, 152, 144, 146, 144, 147, 145, 149, 137, 143, 143, 138, 150, 150, 148, 148, 140, 144, 151, 154, 141, 149, 145, 144, 147, 145, 151, 145, 147, 144, 151, 151, 150, 151, 149, 145, 143, 138, 146, 146, 148, 143, 142, 139, 144, 146, 149, 148, 141, 146, 147, 142, 146, 145, 155, 143, 141, 141, 152, 139, 143, 136, 149, 145, 144, 148, 142, 141, 146, 146, 155, 147, 149, 141, 140, 163, 146, 144, 143, 146, 144, 144, 151, 151, 145, 143, 152, 145, 149, 148, 148, 147, 145, 158, 147, 149, 146, 155, 147, 143, 142, 144, 141, 149, 142, 145, 149, 149, 149, 148, 147, 150, 141, 143, 145, 141, 145, 142, 152, 139, 142, 151, 145, 142, 149, 150, 143, 141, 138, 146, 145, 145, 152, 147, 145, 149, 145, 147, 145, 141, 141, 147, 153, 144, 144, 144, 144, 146, 146, 143, 144, 154, 148, 142, 147, 147, 145, 140, 148, 146, 143, 145, 146, 147, 144, 145, 155, 145, 146, 147, 138, 154, 145, 147, 145, 150, 149, 145, 140, 146, 143, 142, 128, 148, 141, 146, 139, 154, 148, 147, 143, 138, 138, 150, 153, 153, 153, 147, 142, 146, 152, 147, 147, 147, 142, 150, 143, 149, 145, 149, 148, 140, 148, 144, 146, 140, 148, 146, 147, 143, 151, 152, 138, 149, 142, 145, 147, 153, 142, 148, 139, 143, 146, 138, 142, 149, 149, 141, 142, 145, 144, 143, 145, 147, 154, 149, 144, 146, 149, 149, 153, 144, 152, 142, 143, 149, 148, 137, 149, 147, 148, 147, 141, 146, 145, 147, 147, 150, 146, 146, 142, 145, 147, 151, 138, 141, 146, 149, 149, 141, 143, 143, 148, 149, 155, 142, 128, 153, 146, 144, 148, 144, 148, 144, 150, 132, 139, 143, 137, 150, 149, 146, 144, 142, 144, 138, 150, 149, 146, 149, 141, 146, 143, 147, 139, 138, 144, 151, 146, 146, 159, 142, 152, 144, 145, 135, 151, 148, 141, 143, 142, 143, 156, 157, 151, 145, 143, 145, 146, 146, 147, 152, 142, 143, 146, 148, 146, 152, 140, 144, 139, 142, 134, 142, 148, 140, 152, 141, 148, 148, 133, 143, 155, 144, 149, 145, 123, 145, 149, 142, 145, 151, 142, 143, 153, 143, 148, 133, 149, 148, 143, 175, 138, 143, 144, 149, 143, 141, 145, 143, 154, 143, 153, 143, 136, 146, 142, 145, 144, 151, 151, 144, 139, 146, 142, 150, 152, 151, 150, 145, 145, 137, 124, 146, 159, 141, 139, 147, 147, 145, 145, 147, 154, 136, 143, 147, 149, 148, 145, 155, 138, 153, 145, 143, 141, 153, 135, 141, 142, 146, 158, 148, 148, 144, 147, 148, 146, 140, 136, 160, 140, 155, 145, 142, 144, 148, 142, 138, 145, 155, 142, 150, 142, 147, 140, 146, 142, 162, 156, 144, 144, 145, 148, 147, 139, 150, 148, 145, 154, 151, 143, 146, 141, 144, 148, 149, 151, 144, 147, 149, 140, 145, 147, 151, 144, 139, 164, 150, 148, 156, 148, 131, 147, 145, 148, 154, 128, 149, 145, 144, 148, 137, 150, 147, 152, 146, 150, 146, 149, 142, 150, 142, 146, 142, 146, 151, 139, 149, 145, 142, 151, 145, 146, 149, 162, 149, 127, 147, 142, 146, 147, 146, 145, 144, 145, 140, 144, 143, 146, 148, 149, 135, 142, 144, 171, 148, 154, 149, 147, 148, 144, 130, 147, 147, 145, 149, 149, 142, 149, 150, 150, 151, 139, 149, 144, 147, 148, 151, 146, 153, 154, 115, 147, 154, 149, 143, 147, 147, 159, 141, 156, 149, 147, 146, 146, 149, 148, 150, 149, 143, 149, 153, 143, 150, 145, 149, 147, 143, 146, 149, 144, 125, 140, 148, 145, 147, 143, 142, 144, 146, 146, 143, 142, 148, 148, 147, 142, 154, 144, 148, 138, 148, 148, 134, 148, 148, 148, 154, 139, 145, 145, 140, 143, 147, 151, 148, 145, 147, 147, 149, 142, 142, 140, 160, 150, 144, 149, 145, 145, 152, 143, 146, 154, 135, 156, 153, 148, 149, 150, 142, 161, 145, 141, 135, 144, 150, 143, 140, 148, 140, 140, 147, 149, 134, 150, 153, 141, 146, 143, 145, 145, 153, 145, 148, 147, 144, 149, 143, 141, 143, 148, 143, 147, 149, 148, 146, 146, 148, 139, 146, 146, 148, 150, 144, 154, 149, 150, 139, 144, 142, 138, 149, 144, 140, 147, 145, 144, 153, 147, 144, 141, 142, 148, 147, 152, 147, 141, 139, 144, 145, 145, 142, 144, 145, 149, 142, 146, 150, 146, 147, 153, 145, 158, 145, 151, 145, 148, 125, 148, 161, 148, 143, 144, 144, 148, 141, 153, 148, 146, 148, 146, 151, 148, 141, 147, 149, 142, 145, 147, 151, 145, 148, 145, 153, 147, 144, 142, 150, 146, 147, 150, 147, 152, 145, 149, 145, 145, 145, 148, 145, 148, 149, 143, 141, 141, 139, 151, 145, 148, 139, 149, 143, 150, 153, 154, 146, 144, 141, 141, 145, 152, 152, 146, 143, 148, 145, 148, 147, 146, 141, 147, 147, 149, 149, 143, 147, 150, 144, 147, 148, 146, 151, 141, 146, 149, 147, 145, 144, 152, 144, 148, 147, 145, 146, 142, 144, 143, 151, 149, 147, 148, 142, 153, 149, 147, 147, 147, 150, 144, 148, 143, 150, 147, 145, 146, 143, 146, 143, 150, 150, 146, 147, 149, 145, 146, 140, 154, 149, 149, 149, 152, 143, 140, 148, 145, 145, 141, 146, 146, 144, 151, 154, 150, 154, 143, 149, 147, 149, 146, 146, 144, 147, 146, 151, 143, 141, 147, 146, 132, 150, 147, 151, 147, 145, 150, 152, 145, 150, 149, 150, 149, 147, 141, 147, 144, 147, 152, 151, 142, 148, 152, 148, 144, 143, 139, 144, 141, 146, 144, 148, 144, 150, 145, 146, 144, 146, 143, 146, 147, 142, 135, 146, 154, 145, 142, 137, 146, 147, 147, 142, 143, 147, 143, 147, 148, 147, 150, 142, 146, 143, 150, 143, 143, 138, 148, 144, 145, 147, 140, 144, 147, 148, 139, 150, 145, 144, 145, 144, 149, 147, 151, 149, 152, 145, 145, 145, 149, 149, 149, 143, 147, 145, 147, 148, 148, 147, 150, 143, 148, 151, 147, 145, 153, 151, 146, 147, 146, 147, 139, 142, 152, 145, 141, 146, 151, 142, 147, 148, 150, 143, 170, 134, 142, 149, 145, 148, 148, 146, 148, 143, 147, 143, 153, 144, 147, 143, 149, 134, 145, 152, 142, 155, 148, 153, 143, 146, 143, 136, 139, 146, 134, 148, 141, 141, 147, 144, 144, 133, 148, 135, 141, 150, 151, 142, 144, 147, 148, 148, 140, 148, 151, 142, 145, 148, 136, 142, 161, 142, 149, 157, 144, 145, 144, 145, 136, 146, 149, 158, 143, 139, 139, 145, 155, 146, 142, 144, 148, 165, 147, 141, 144, 146, 139, 143, 150, 142, 140, 143, 145, 148, 151, 145, 148, 158, 146, 148, 144, 146, 145, 147, 142, 141, 148, 141, 144, 140, 147, 150, 147, 147, 149, 144, 150, 152, 140, 143, 150, 145, 147, 151, 142, 146, 142, 145, 144, 149, 151, 143, 149, 136, 149, 145, 150, 138, 146, 150, 147, 149, 151, 146, 145, 152, 154, 145, 140, 146, 143, 145, 145, 143, 145, 146, 140, 152, 137, 146, 138, 145, 146, 145, 149, 154, 146, 149, 145, 141, 135, 148, 149, 148, 154, 147, 147, 147, 159, 155, 142, 141, 146, 144, 146, 151, 145, 140, 154, 150, 149, 150, 148, 139, 151, 153, 141, 145, 144, 149, 151, 146, 145, 136, 145, 147, 141, 147, 180, 140, 144, 145, 157, 144, 150, 147, 137, 155, 148, 143, 144, 137, 135, 145, 153, 148, 137, 145, 146, 147, 142, 147, 142, 153, 139, 144, 143, 148, 147, 135, 147, 150, 141, 153, 149, 133, 156, 146, 140, 148, 147, 135, 145, 142, 145, 144, 144, 148, 144, 144, 149, 146, 150, 141, 147, 147, 146, 150, 139, 161, 142, 143, 144, 137, 155, 140, 148, 143, 145, 146, 143, 155, 153, 148, 149, 155, 123, 139, 113, 137, 142, 149, 140, 140, 145, 147, 150, 150, 144, 151, 140, 146, 151, 146, 139, 146, 144, 145, 145, 143, 155, 145, 123, 154, 141, 144, 147, 135, 146, 145, 143, 141, 148, 154, 141, 153, 146, 143, 148, 141, 140, 139, 146, 146, 146, 144, 151, 144, 149, 136, 145, 143, 141, 141, 142, 149, 147, 141, 156, 147, 146, 144, 137, 143, 144, 140, 146, 147, 148, 149, 138, 151, 142, 146, 149, 144, 139, 148, 151, 152, 151, 149, 148, 152, 145, 148, 151, 141, 136, 143, 148, 145, 142, 150, 149, 124, 144, 145, 136, 145, 151, 142, 143, 149, 158, 147, 152, 149, 143, 143, 157, 143, 167, 142, 133, 140, 149, 145, 150, 159, 147, 145, 148, 136, 143, 160, 153, 142, 144, 153, 131, 140, 150, 152, 141, 150, 149, 138, 143, 143, 147, 146, 147, 146, 151, 138, 138, 146, 148, 143, 159, 205, 136, 136, 146, 145, 137, 152, 143, 148, 148, 144, 141, 148, 138, 151, 146, 141, 140, 148, 143, 150, 150, 140, 152, 145, 154, 148, 145, 144, 139, 190, 148, 145, 143, 145, 133, 140, 147, 144, 148, 151, 155, 144, 151, 131, 146, 144, 143, 145, 149, 117, 142, 141, 141, 136, 153, 149, 152, 145, 143, 133, 144, 144, 139, 145, 153, 143, 152, 146, 144, 149, 135, 149, 149, 148, 148, 128, 145, 148, 148, 144, 149, 152, 148, 157, 146, 139, 185, 147, 146, 118, 147, 142, 141, 142, 148, 144, 142, 144, 139, 140, 141, 148, 144, 148, 137, 150, 134, 154, 139, 154, 147, 133, 146, 142, 145, 142, 146, 151, 145, 142, 145, 141, 143, 151, 143, 147, 142, 145, 154, 150, 165, 149, 150, 137, 145, 144, 146, 136, 144, 146, 138, 151, 146, 146, 160, 153, 144, 148, 143, 154, 145, 146, 145, 157, 149, 145, 151, 147, 148, 145, 146, 151, 145, 151, 143, 149, 141, 158, 142, 145, 155, 146, 156, 148, 149, 152, 140, 151, 138, 145, 145, 150, 146, 146, 147, 141, 149, 171, 144, 146, 140, 136, 143, 145, 146, 141, 145, 140, 143, 146, 140, 147, 144, 144, 142, 145, 142, 145, 148, 150, 142, 150, 149, 148, 146, 143, 150, 157, 141, 146, 144, 141, 151, 146, 149, 142, 144, 144, 147, 148, 154, 148, 130, 139, 139, 150, 148, 143, 145, 146, 142, 139, 148, 151, 149, 143, 152, 149, 153, 135, 146, 145, 143, 145, 144, 143, 142, 145, 144, 142, 143, 145, 146, 143, 154, 143, 141, 148, 133, 142, 153, 154, 144, 140, 147, 145, 143, 150, 151, 143, 144, 146, 143, 152, 145, 146, 164, 145, 149, 150, 161, 149, 136, 146, 150, 146, 144, 150, 146, 144, 141, 150, 147, 144, 147, 145, 142, 147, 143, 137, 142, 146, 143, 143, 147, 134, 143, 142, 165, 152, 140, 142, 125, 143, 142, 139, 130, 152, 159, 152, 144, 147, 143, 141, 150, 135, 145, 144, 142, 152, 149, 166, 152, 144, 151, 149, 137, 144, 139, 147, 169, 166, 143, 143, 142, 157, 151, 151, 147, 141, 139, 149, 153, 150, 141, 153, 148, 139, 134, 148, 155, 136, 154, 151, 140, 169, 151, 144, 146, 145, 152, 131, 144, 146, 146, 143, 145, 141, 152, 146, 152, 145, 155, 129, 169, 147, 147, 145, 146, 147, 146, 140, 146, 143, 145, 139, 151, 138, 153, 147, 151, 133, 146, 153, 147, 146, 145, 138, 140, 145, 149, 152, 163, 138, 143, 148, 141, 137, 134, 140, 157, 154, 143, 149, 148, 143, 145, 144, 145, 151, 154, 154, 146, 145, 145, 143, 148, 148, 150, 157, 146, 149, 144, 137, 127, 145, 134, 148, 146, 143, 143, 156, 140, 155, 154, 147, 149, 148, 134, 165, 146, 142, 142, 134, 141, 147, 145, 136, 155, 144, 137, 139, 146, 152, 160, 139, 144, 153, 151, 139, 146, 145, 147, 144, 145, 146, 124, 144, 153, 143, 157, 140, 145, 142, 152, 136, 144, 146, 155, 141, 142, 150, 140, 153, 148, 157, 140, 138, 149, 143, 143, 139, 147, 150, 137, 148, 146, 148, 151, 151, 135, 139, 155, 148, 133, 148, 141, 144, 152, 146, 143, 141, 141, 152, 144, 128, 148, 144, 146, 150, 141, 145, 144, 149, 144, 142, 151, 149, 141, 142, 140, 147, 143, 153, 142, 145, 147, 168, 151, 151, 139, 146, 140, 140, 140, 149, 144, 149, 146, 144, 148, 152, 148, 146, 141, 150, 145, 150, 144, 141, 146, 149, 149, 147, 143, 149, 144, 145, 153, 146, 149, 149, 147, 132, 144, 144, 146, 147, 143, 144, 143, 144, 162, 148, 149, 143, 138, 143, 146, 148, 144, 147, 140, 139, 147, 146, 146, 149, 144, 146, 147, 151, 148, 146, 140, 143, 159, 148, 151, 160, 143, 139, 145, 135, 147, 145, 139, 146, 149, 148, 146, 147, 142, 145, 150, 144, 145, 140, 147, 140, 146, 144, 151, 145, 147, 145, 147, 146, 145, 145, 143, 147, 142, 147, 145, 149, 146, 145, 147, 143, 134, 143, 142, 145, 145, 145, 147, 149, 138, 147, 147, 149, 141, 145, 144, 149, 146, 147, 147, 144, 145, 150, 155, 143, 141, 142, 146, 143, 147, 150, 147, 169, 146, 149, 145, 147, 140, 147, 150, 149, 178, 143, 147, 145, 146, 151, 144, 151, 159, 145, 143, 145, 144, 151, 150, 144, 147, 145, 142, 147, 150, 131, 139, 146, 171, 140, 154, 141, 146, 146, 146, 144, 145, 143, 148, 146, 145, 144, 149, 145, 141, 148, 154, 149, 149, 147, 142, 149, 148, 149, 151, 148, 145, 150, 141, 147, 144, 146, 145, 149, 147, 149, 150, 153, 141, 157, 146, 141, 147, 143, 142, 147, 142, 148, 150, 144, 143, 145, 150, 142, 151, 146, 143, 148, 142, 147, 148, 145, 148, 150, 146, 148, 148, 152, 147, 142, 139, 151, 146, 143, 140, 143, 148, 145, 145, 144, 158, 141, 143, 145, 147, 145, 144, 146, 144, 146, 137, 137, 142, 145, 154, 141, 146, 152, 144, 157, 143, 152, 143, 134, 146, 148, 144, 141, 143, 148, 143, 153, 148, 145, 171, 165, 147, 148, 140, 151, 130, 145, 150, 137, 153, 145, 139, 146, 143, 143, 144, 151, 145, 139, 151, 146, 144, 147, 144, 137, 146, 135, 142, 146, 139, 152, 161, 142, 148, 150, 156, 149, 140, 143, 135, 150, 142, 143, 139, 140, 139, 146, 151, 143, 147, 144, 162, 140, 141, 146, 147, 145, 140, 148, 147, 145, 144, 159, 152, 144, 142, 151, 151, 154, 139, 140, 147, 148, 145, 158, 145, 142, 151, 150, 147, 139, 160, 146, 143, 133, 151, 137, 143, 152, 140, 153, 151, 167, 142, 142, 140, 148, 148, 139, 147, 146, 147, 151, 140, 145, 147, 149, 150, 146, 152, 147, 149, 145, 143, 148, 152, 152, 144, 145, 152, 148, 143, 142, 144, 149, 139, 148, 139, 142, 148, 141, 151, 150, 142, 141, 139, 142, 129, 141, 144, 144, 146, 151, 146, 147, 141, 141, 148, 132, 152, 139, 147, 137, 147, 146, 136, 148, 146, 147, 139, 150, 143, 145, 139, 143, 151, 145, 138, 145, 143, 143, 142, 147, 139, 144, 155, 139, 146, 146, 160, 150, 150, 141, 143, 144, 157, 153, 152, 149, 142, 143, 142, 141, 156, 153, 139, 149, 143, 148, 142, 144, 143, 144, 136, 148, 150, 144, 144, 151, 152, 145, 145, 147, 146, 142, 145, 146, 147, 140, 141, 142, 145, 150, 182, 149, 152, 138, 140, 148, 142, 148, 146, 140, 139, 140, 143, 147, 144, 136, 145, 144, 149, 145, 139, 142, 150, 144, 143, 138, 139, 143, 144, 144, 147, 157, 140, 151, 144, 141, 149, 147, 158, 144, 151, 141, 149, 140, 149, 149, 135, 144, 146, 150, 149, 150, 145, 143, 145, 142, 149, 140, 142, 138, 148, 145, 143, 158, 149, 140, 153, 149, 144, 143, 153, 154, 145, 145, 143, 150, 144, 146, 150, 150, 146, 150, 139, 145, 145, 147, 141, 149, 144, 152, 142, 143, 153, 148, 149, 146, 136, 142, 142, 153, 147, 142, 150, 153, 147, 143, 134, 141, 144, 148, 146, 152, 148, 151, 159, 141, 148, 150, 143, 148, 148, 147, 157, 137, 157, 141, 144, 149, 144, 137, 136, 150, 146, 139, 152, 149, 144, 147, 147, 146, 145, 149, 143, 143, 158, 143, 147, 148, 149, 139, 142, 148, 140, 142, 146, 147, 144, 151, 157, 143, 144, 143, 141, 144, 141, 143, 147, 140, 137, 140, 148, 145, 137, 147, 144, 149, 147, 145, 144, 142, 155, 142, 149, 144, 145, 154, 145, 151, 147, 150, 148, 140, 152, 140, 145, 150, 150, 144, 138, 141, 144, 138, 151, 144, 157, 156, 150, 145, 142, 139, 148, 139, 151, 142, 137, 147, 145, 143, 146, 137, 148, 143, 145, 142, 145, 156, 150, 148, 147, 153, 150, 145, 143, 150, 145, 146, 150, 150, 146, 139, 146, 146, 148, 150, 153, 146, 144, 142, 152, 151, 140, 145, 147, 153, 138, 147, 143, 143, 182, 143, 128, 171, 134, 141, 145, 127, 147, 149, 157, 143, 138, 152, 152, 151, 145, 151, 149, 130, 143, 145, 143, 143, 131, 152, 147, 151, 163, 155, 121, 154, 149, 149, 143, 143, 142, 147, 150, 159, 152, 132, 115, 146, 139, 145, 142, 144, 145, 154, 142, 130, 152, 124, 150, 142, 145, 134, 147, 164, 155, 147, 149, 137, 148, 143, 149, 139, 139, 146, 138, 176, 145, 151, 146, 136, 151, 150, 146, 143, 149, 146, 146, 147, 177, 143, 147, 139, 143, 155, 141, 145, 142, 156, 141, 150, 148, 142, 148, 141, 147, 137, 145, 148, 142, 146, 144, 148, 146, 150, 147, 146, 140, 143, 150, 145, 150, 142, 133, 153, 150, 143, 145, 143, 132, 147, 145, 148, 157, 167, 148, 149, 149, 145, 151, 141, 147, 146, 135, 143, 148, 151, 153, 145, 144, 143, 143, 141, 143, 151, 149, 141, 141, 139, 152, 117, 151, 146, 145, 142, 129, 148, 157, 156, 141, 145, 145, 149, 136, 155, 157, 143, 148, 149, 146, 149, 150, 123, 148, 140, 140, 150, 143, 140, 145, 149, 139, 154, 142, 147, 144, 148, 152, 140, 147, 144, 149, 142, 143, 152, 143, 138, 130, 150, 133, 156, 143, 148, 133, 149, 148, 144, 131, 140, 147, 143, 147, 127, 146, 146, 140, 143, 156, 149, 150, 142, 134, 135, 134, 144, 181, 134, 146, 154, 145, 131, 149, 171, 143, 153, 150, 148, 142, 146, 146, 151, 148, 136, 145, 173, 149, 152, 147, 162, 150, 142, 147, 119, 124, 151, 147, 133, 158, 139, 137, 132, 144, 149, 142, 154, 146, 142, 134, 142, 146, 142, 135, 159, 146, 140, 132, 138, 152, 145, 160, 123, 132, 147, 151, 141, 132, 143, 143, 138, 135, 153, 154, 143, 145, 147, 155, 127, 121, 149, 145, 144, 153, 143, 153, 144, 153, 154, 136, 149, 146, 152, 154, 144, 163, 138, 144, 168, 146, 120, 143, 155, 146, 144, 142, 149, 145, 137, 152, 134, 156, 144, 149, 143, 139, 156, 136, 146, 144, 139, 165, 157, 142, 123, 145, 149, 135, 135, 150, 132, 144, 149, 131, 150, 148, 160, 140, 146, 142, 143, 139, 139, 152, 127, 137, 144, 138, 161, 142, 137, 137, 142, 153, 156, 131, 152, 139, 155, 148, 160, 147, 137, 154, 146, 118, 152, 159, 147, 140, 148, 155, 143, 150, 163, 119, 144, 132, 145, 166, 148, 148, 144, 152, 143, 136, 139, 132, 162, 151, 155, 150, 143, 148, 147, 143, 126, 133, 131, 163, 136, 131, 140, 161, 138, 152, 159, 142, 121, 150, 140, 136, 162, 138, 131, 143, 134, 141, 144, 149, 140, 146, 149, 142, 152, 150, 140, 138, 144, 139, 154, 147, 147, 153, 136, 148, 139, 152, 145, 149, 142, 150, 148, 145, 142, 145, 125, 145, 150, 130, 145, 123, 140, 145, 141, 157, 128, 153, 146, 149, 162, 138, 152, 142, 151, 152, 136, 145, 157, 138, 152, 139, 149, 144, 147, 144, 139, 190, 139, 144, 145, 137, 144, 145, 145, 140, 145, 132, 149, 128, 148, 140, 132, 155, 149, 127, 146, 146, 146, 148, 146, 143, 150, 150, 155, 143, 145, 146, 137, 148, 152, 152, 137, 150, 145, 146, 145, 165, 145, 167, 142, 144, 146, 142, 144, 152, 149, 147, 151, 144, 141, 170, 151, 142, 144, 149, 152, 146, 154, 149, 146, 148, 153, 145, 148, 146, 157, 145, 140, 151, 153, 158, 146, 148, 148, 138, 149, 140, 142, 146, 133, 147, 145, 138, 147, 150, 141, 138, 147, 143, 150, 170, 148, 144, 149, 148, 145, 144, 139, 144, 145, 147, 140, 149, 147, 142, 141, 149, 144, 144, 144, 147, 152, 139, 152, 139, 151, 144, 145, 142, 150, 148, 143, 147, 136, 148, 143, 142, 149, 143, 144, 144, 141, 136, 154, 147, 144, 139, 139, 145, 142, 149, 147, 143, 146, 148, 146, 151, 140, 152, 147, 142, 149, 142, 140, 148, 144, 148, 142, 150, 148, 148, 146, 144, 141, 145, 147, 154, 145, 144, 150, 133, 145, 142, 147, 151, 148, 145, 146, 143, 145, 151, 152, 183, 143, 150, 151, 145, 145, 149, 148, 145, 149, 142, 146, 150, 153, 140, 150, 148, 148, 145, 144, 143, 145, 151, 144, 145, 151, 143, 143, 138, 141, 141, 150, 147, 145, 150, 147, 150, 148, 152, 148, 143, 142, 150, 149, 145, 145, 150, 143, 141, 146, 143, 149, 158, 149, 149, 143, 131, 156, 145, 144, 146, 146, 144, 149, 146, 146, 145, 145, 138, 148, 148, 143, 142, 145, 150, 152, 145, 144, 149, 151, 138, 158, 150, 153, 161, 155, 142, 143, 144, 142, 149, 141, 154, 146, 155, 147, 148, 147, 152, 146, 146, 143, 143, 151, 157, 148, 147, 145, 148, 136, 138, 146, 152, 148, 149, 147, 138, 147, 150, 151, 146, 152, 149, 140, 143, 147, 144, 150, 147, 142, 146, 145, 145, 151, 150, 144, 151, 147, 145, 151, 149, 150, 145, 145, 151, 153, 154, 145, 148, 150, 147, 144, 144, 143, 149, 148, 147, 145, 147, 141, 154, 152, 144, 155, 150, 142, 149, 148, 148, 143, 152, 148, 151, 151, 143, 150, 147, 145, 157, 148, 142, 144, 144, 143, 144, 147, 148, 146, 147, 147, 153, 153, 140, 147, 153, 148, 149, 147, 149, 143, 155, 144, 137, 141, 145, 146, 153, 148, 145, 142, 145, 146, 161, 145, 139, 147, 147, 144, 149, 139, 146, 148, 142, 141, 142, 146, 137, 150, 129, 146, 149, 148, 142, 154, 152, 154, 153, 142, 142, 143, 143, 147, 146, 142, 150, 145, 151, 151, 147, 145, 144, 148, 148, 148, 156, 138, 156, 150, 141, 148, 150, 152, 150, 153, 146, 147, 136, 146, 143, 147, 153, 146, 146, 145, 144, 148, 142, 144, 146, 141, 160, 150, 156, 142, 147, 143, 150, 150, 146, 143, 145, 141, 143, 131, 149, 141, 141, 155, 146, 145, 146, 142, 142, 151, 141, 140, 147, 149, 158, 141, 147, 144, 147, 153, 145, 135, 145, 153, 150, 155, 144, 148, 143, 149, 144, 159, 143, 148, 145, 149, 139, 147, 150, 144, 149, 148, 148, 143, 151, 142, 142, 160, 143, 146, 151, 142, 137, 146, 146, 145, 139, 133, 148, 143, 143, 150, 149, 142, 142, 130, 143, 139, 151, 144, 146, 141, 150, 144, 140, 145, 147, 150, 167, 147, 143, 149, 151, 143, 143, 151, 151, 149, 139, 146, 147, 151, 148, 149, 146, 144, 146, 147, 146, 139, 149, 137, 149, 148, 142, 144, 144, 142, 139, 147, 143, 146, 170, 149, 149, 145, 145, 147, 147, 143, 149, 143, 154, 160, 143, 140, 148, 142, 148, 144, 141, 136, 150, 141, 147, 149, 146, 145, 142, 146, 156, 161, 143, 149, 143, 147, 140, 146, 141, 144, 153, 143, 146, 146, 142, 150, 141, 142, 146, 146, 141, 147, 146, 140, 146, 147, 143, 147, 145, 147, 148, 147, 137, 143, 144, 146, 144, 148, 142, 143, 150, 158, 141, 145, 147, 145, 148, 148, 146, 147, 152, 148, 147, 149, 145, 154, 149, 157, 147, 147, 147, 144, 143, 146, 145, 141, 144, 144, 151, 143, 144, 139, 148, 147, 144, 153, 140, 148, 157, 141, 146, 143, 146, 149, 145, 145, 150, 141, 144, 146, 145, 142, 145, 149, 150, 150, 151, 145, 144, 144, 151, 149, 156, 151, 145, 148, 149, 147, 145, 141, 140, 145, 148, 142, 142, 121, 145, 143, 144, 137, 150, 145, 147, 147, 142, 144, 143, 146, 147, 152, 151, 145, 154, 118, 141, 149, 147, 128, 154, 144, 152, 132, 146, 142, 147, 146, 149, 149, 146, 145, 144, 141, 151, 144, 145, 153, 144, 140, 143, 142, 145, 148, 149, 149, 143, 156, 146, 139, 146, 142, 145, 145, 143, 146, 142, 143, 146, 137, 74, 144, 150, 146, 145, 145, 145, 148, 151, 152, 144, 155, 147, 149, 149, 151, 146, 156, 143, 151, 153, 142, 142, 143, 143, 147, 145, 147, 147, 148, 187, 146, 149, 143, 140, 142, 149, 142, 101, 140, 144, 150, 156, 150, 153, 148, 143, 171, 155, 144, 148, 142, 147, 144, 143, 137, 144, 150, 149, 141, 149, 141, 107, 145, 152, 146, 143, 128, 154, 140, 149, 142, 151, 142, 150, 142, 146, 148, 147, 143, 154, 146, 143, 147, 145, 141, 143, 150, 138, 137, 150, 142, 146, 147, 149, 147, 143, 146, 144, 147, 145, 152, 160, 146, 177, 148, 150, 143, 143, 149, 143, 142, 137, 151, 144, 150, 142, 141, 147, 137, 149, 152, 151, 141, 141, 149, 148, 148, 152, 145, 131, 141, 142, 150, 146, 146, 148, 147, 147, 150, 152, 145, 145, 145, 147, 150, 146, 137, 148, 142, 145, 135, 145, 140, 144, 148, 150, 151, 148, 149, 150, 146, 148, 146, 144, 143, 146, 146, 153, 135, 144, 136, 146, 140, 148, 143, 145, 142, 141, 140, 144, 157, 151, 145, 145, 146, 139, 146, 144, 141, 146, 143, 147, 146, 145, 151, 143, 153, 150, 142, 142, 144, 139, 149, 151, 145, 142, 141, 145, 143, 146, 139, 143, 144, 152, 143, 145, 152, 143, 153, 141, 147, 147, 155, 141, 143, 143, 138, 137, 140, 149, 149, 143, 142, 148, 145, 145, 148, 132, 144, 146, 158, 148, 152, 149, 144, 150, 140, 143, 145, 150, 142, 149, 145, 140, 125, 150, 144, 136, 150, 134, 140, 149, 133, 143, 157, 150, 142, 136, 141, 149, 148, 136, 143, 147, 155, 162, 137, 126, 136, 131, 154, 134, 141, 150, 146, 143, 148, 150, 142, 135, 147, 140, 138, 144, 159, 144, 154, 143, 153, 143, 156, 130, 141, 143, 128, 145, 147, 147, 145, 143, 132, 149, 148, 140, 145, 169, 136, 144, 127, 139, 147, 147, 139, 149, 140, 150, 148, 138, 135, 137, 149, 140, 145, 158, 142, 153, 152, 144, 143, 98, 150, 156, 140, 151, 137, 148, 154, 141, 149, 145, 142, 122, 148, 149, 149, 140, 123, 146, 155, 146, 142, 147, 142, 152, 145, 152, 134, 145, 146, 145, 147, 134, 136, 148, 144, 139, 141, 139, 151, 159, 174, 143, 143, 143, 148, 139, 160, 152, 155, 135, 139, 134, 149, 142, 139, 145, 152, 140, 149, 151, 161, 144, 162, 141, 132, 133, 143, 153, 134, 130, 161, 145, 166, 149, 129, 136, 149, 136, 147, 139, 144, 137, 144, 145, 147, 132, 151, 142, 157, 133, 145, 145, 143, 152, 160, 153, 146, 148, 146, 147, 143, 144, 135, 142, 146, 149, 144, 141, 168, 140, 147, 148, 144, 150, 151, 157, 145, 137, 152, 140, 125, 144, 152, 147, 148, 140, 133, 141, 137, 150, 135, 136, 148, 174, 148, 146, 139, 143, 146, 141, 160, 137, 137, 139, 129, 154, 144, 142, 136, 142, 145, 147, 150, 146, 144, 144, 142, 146, 149, 157, 150, 150, 150, 140, 151, 145, 151, 151, 114, 154, 148, 158, 152, 146, 149, 149, 133, 156, 137, 153, 154, 147, 147, 139, 148, 139, 158, 150, 147, 126, 146, 145, 139, 135, 150, 142, 160, 141, 142, 143, 145, 142, 147, 146, 143, 135, 142, 131, 148, 140, 149, 120, 157, 145, 159, 159, 143, 138, 149, 144, 138, 137, 135, 158, 141, 143, 139, 148, 129, 141, 143, 150, 149, 149, 139, 144, 146, 151, 147, 140, 142, 146, 149, 145, 145, 145, 144, 125, 144, 156, 139, 149, 148, 144, 149, 140, 158, 122, 138, 149, 155, 137, 135, 150, 138, 131, 146, 147, 149, 143, 154, 145, 146, 137, 145, 142, 160, 144, 138, 135, 149, 135, 154, 142, 131, 149, 143, 145, 138, 138, 147, 133, 149, 150, 141, 132, 148, 146, 97, 147, 148, 146, 148, 141, 143, 139, 153, 149, 140, 133, 144, 150, 149, 150, 144, 153, 152, 149, 154, 150, 134, 150, 150, 136, 138, 145, 143, 146, 141, 156, 157, 149, 157, 143, 149, 152, 142, 153, 133, 147, 153, 148, 141, 147, 141, 145, 152, 146, 156, 145, 153, 138, 146, 144, 147, 155, 148, 147, 146, 139, 143, 139, 160, 148, 156, 141, 149, 144, 153, 147, 142, 146, 148, 150, 148, 147, 141, 183, 150, 143, 148, 143, 149, 146, 150, 151, 155, 148, 149, 163, 145, 152, 154, 152, 149, 142, 146, 149, 149, 139, 135, 147, 147, 153, 141, 144, 152, 143, 145, 150, 148, 145, 144, 147, 144, 145, 144, 156, 148, 151, 143, 154, 159, 145, 146, 147, 147, 144, 144, 143, 153, 146, 150, 136, 142, 145, 157, 146, 143, 153, 145, 139, 145, 140, 147, 152, 146, 141, 161, 147, 144, 142, 148, 141, 144, 146, 147, 145, 146, 148, 146, 144, 155, 149, 146, 146, 153, 149, 153, 148, 148, 152, 149, 148, 149, 151, 145, 136, 137, 148, 140, 142, 142, 148, 149, 147, 146, 144, 138, 145, 148, 141, 149, 152, 141, 144, 143, 146, 144, 143, 145, 143, 147, 150, 147, 144, 143, 149, 141, 147, 145, 146, 143, 148, 147, 148, 148, 147, 142, 147, 141, 138, 148, 144, 138, 154, 146, 146, 146, 141, 142, 145, 143, 144, 143, 151, 145, 136, 147, 146, 131, 148, 143, 146, 154, 155, 142, 152, 145, 147, 147, 144, 146, 146, 144, 147, 144, 145, 146, 143, 144, 145, 142, 145, 139, 144, 145, 143, 144, 145, 145, 148, 144, 143, 148, 148, 150, 134, 144, 147, 146, 154, 149, 142, 145, 150, 150, 147, 144, 141, 147, 141, 143, 145, 140, 143, 145, 153, 144, 147, 146, 144, 147, 142, 143, 144, 146, 150, 146, 149, 145, 149, 157, 142, 147, 149, 146, 144, 146, 143, 159, 146, 142, 145, 148, 145, 147, 147, 145, 142, 145, 146, 143, 135, 159, 142, 145, 135, 152, 145, 135, 145, 144, 148, 146, 143, 147, 142, 145, 146, 144, 153, 147, 145, 145, 147, 152, 143, 144, 145, 144, 142, 149, 142, 99, 140, 135, 145, 129, 149, 147, 160, 153, 149, 135, 146, 155, 146, 149, 140, 149, 133, 144, 145, 157, 144, 145, 135, 142, 149, 158, 149, 138, 154, 145, 150, 145, 143, 153, 141, 164, 149, 156, 162, 149, 146, 139, 144, 153, 143, 152, 148, 147, 137, 144, 132, 141, 143, 142, 137, 153, 150, 136, 144, 148, 138, 148, 157, 143, 142, 122, 154, 152, 154, 147, 143, 149, 151, 151, 145, 146, 152, 150, 141, 147, 137, 153, 144, 154, 159, 157, 145, 139, 137, 148, 135, 130, 157, 148, 144, 159, 135, 150, 148, 149, 135, 140, 160, 139, 150, 142, 140, 148, 131, 136, 146, 139, 154, 150, 152, 144, 148, 148, 136, 130, 139, 144, 150, 146, 147, 134, 134, 145, 151, 144, 134, 145, 155, 153, 135, 151, 141, 162, 128, 151, 156, 121, 131, 149, 145, 147, 140, 144, 141, 141, 148, 149, 137, 136, 123, 141, 150, 148, 151, 144, 148, 91, 127, 138, 145, 148, 152, 151, 130, 153, 151, 139, 153, 160, 137, 158, 133, 160, 151, 153, 144, 129, 143, 149, 150, 147, 149, 142, 156, 149, 164, 145, 115, 118, 145, 154, 148, 152, 155, 137, 114, 139, 151, 150, 131, 144, 143, 147, 148, 151, 145, 142, 150, 148, 157, 121, 155, 154, 132, 164, 141, 142, 154, 110, 147, 145, 125, 142, 144, 148, 143, 144, 139, 151, 136, 139, 139, 148, 146, 152, 143, 134, 137, 172, 141, 153, 157, 139, 148, 145, 137, 149, 138, 158, 140, 142, 154, 145, 148, 131, 142, 147, 161, 143, 150, 148, 154, 149, 104, 147, 149, 150, 141, 145, 144, 147, 144, 141, 139, 152, 157, 144, 149, 126, 114, 145, 165, 156, 144, 148, 151, 146, 150, 143, 145, 141, 146, 145, 161, 152, 152, 144, 149, 157, 145, 147, 146, 216, 146, 160, 150, 137, 147, 128, 149, 138, 152, 139, 161, 149, 147, 148, 154, 144, 126, 146, 151, 123, 144, 146, 139, 153, 151, 152, 157, 149, 145, 147, 124, 147, 109, 146, 143, 132, 139, 146, 144, 145, 140, 151, 152, 141, 152, 142, 144, 147, 143, 149, 144, 138, 148, 144, 145, 145, 160, 147, 103, 145, 152, 144, 147, 135, 147, 143, 139, 148, 145, 148, 143, 143, 194, 159, 153, 146, 142, 133, 146, 145, 148, 148, 147, 139, 121, 150, 140, 144, 141, 147, 150, 144, 145, 148, 140, 148, 145, 148, 142, 138, 141, 138, 140, 153, 144, 147, 192, 144, 177, 149, 168, 148, 143, 140, 138, 144, 148, 144, 144, 149, 146, 158, 110, 136, 149, 148, 143, 136, 150, 153, 152, 140, 143, 144, 151, 136, 140, 145, 146, 151, 143, 151, 140, 149, 146, 145, 151, 149, 147, 144, 156, 138, 144, 145, 150, 139, 143, 144, 141, 148, 141, 148, 149, 138, 141, 178, 147, 147, 147, 146, 155, 143, 149, 146, 159, 140, 138, 143, 140, 138, 146, 143, 142, 139, 144, 139, 137, 143, 152, 147, 148, 145, 145, 148, 140, 142, 168, 93, 141, 156, 144, 145, 160, 138, 145, 146, 151, 138, 142, 148, 146, 159, 138, 144, 153, 142, 149, 135, 148, 152, 144, 152, 147, 143, 149, 166, 134, 166, 161, 145, 146, 134, 144, 152, 149, 137, 142, 151, 138, 145, 156, 142, 150, 147, 143, 141, 135, 145, 162, 148, 142, 146, 135, 142, 147, 146, 140, 141, 144, 148, 146, 136, 143, 132, 146, 129, 152, 147, 144, 146, 138, 148, 154, 147, 151, 144, 147, 143, 148, 149, 150, 147, 134, 151, 161, 147, 146, 144, 134, 145, 146, 165, 145, 151, 141, 154, 146, 152, 150, 146, 135, 134, 151, 144, 145, 141, 141, 149, 162, 143, 143, 148, 135, 137, 147, 146, 134, 150, 155, 145, 146, 150, 143, 146, 147, 156, 145, 146, 145, 152, 147, 150, 168, 135, 140, 166, 144, 145, 159, 146, 151, 145, 151, 142, 157, 152, 135, 148, 146, 163, 157, 145, 146, 155, 148, 150, 147, 148, 141, 143, 151, 145, 146, 148, 138, 147, 148, 156, 146, 144, 154, 141, 143, 144, 147, 160, 146, 140, 145, 147, 139, 141, 144, 141, 153, 138, 142, 147, 145, 142, 147, 136, 142, 149, 146, 141, 143, 142, 140, 155, 156, 140, 144, 155, 146, 151, 136, 149, 140, 147, 173, 147, 145, 152, 150, 150, 153, 144, 141, 139, 142, 150, 139, 149, 148, 146, 140, 150, 121, 138, 145, 135, 145, 146, 139, 148, 146, 149, 140, 129, 147, 143, 150, 150, 145, 148, 146, 150, 142, 154, 144, 136, 147, 145, 137, 145, 142, 130, 148, 146, 138, 140, 148, 140, 153, 148, 148, 163, 134, 147, 150, 148, 139, 137, 150, 144, 138, 146, 149, 146, 145, 152, 147, 142, 169, 149, 149, 136, 142, 152, 154, 155, 143, 156, 150, 145, 141, 148, 145, 162, 146, 164, 154, 140, 133, 149, 150, 156, 144, 141, 145, 166, 144, 139, 150, 146, 143, 143, 143, 145, 141, 143, 151, 143, 145, 141, 144, 152, 157, 148, 147, 144, 147, 144, 146, 146, 139, 141, 135, 145, 144, 137, 140, 145, 139, 149, 149, 148, 148, 150, 147, 148, 151, 156, 147, 146, 141, 142, 149, 147, 143, 145, 144, 143, 147, 164, 141, 147, 141, 154, 158, 144, 137, 146, 145, 136, 148, 142, 144, 144, 143, 147, 145, 143, 147, 165, 148, 144, 144, 124, 149, 147, 151, 141, 144, 142, 147, 150, 147, 143, 144, 139, 146, 152, 138, 144, 143, 148, 149, 150, 150, 143, 148, 149, 150, 156, 143, 144, 124, 141, 162, 146, 141, 144, 144, 142, 154, 147, 153, 146, 145, 145, 140, 142, 149, 149, 145, 153, 150, 149, 139, 155, 153, 152, 144, 144, 159, 147, 140, 151, 143, 139, 143, 140, 139, 150, 142, 142, 145, 152, 146, 146, 149, 146, 143, 145, 144, 153, 152, 146, 148, 145, 154, 151, 144, 143, 158, 160, 142, 146, 140, 145, 153, 149, 148, 152, 147, 141, 158, 149, 136, 143, 141, 152, 150, 150, 144, 142, 139, 145, 140, 143, 140, 144, 146, 147, 143, 127, 134, 146, 140, 148, 151, 130, 157, 152, 154, 147, 150, 141, 148, 145, 137, 141, 144, 148, 157, 145, 116, 122, 139, 147, 140, 145, 143, 155, 140, 148, 148, 150, 186, 154, 144, 125, 142, 140, 140, 136, 150, 157, 143, 144, 142, 146, 138, 147, 142, 143, 140, 154, 151, 150, 147, 149, 151, 137, 147, 153, 147, 160, 143, 146, 145, 145, 147, 132, 141, 138, 146, 145, 138, 145, 150, 149, 165, 147, 151, 135, 146, 148, 147, 155, 145, 140, 145, 160, 146, 135, 144, 144, 127, 147, 141, 155, 146, 129, 145, 152, 150, 131, 145, 143, 146, 149, 147, 169, 148, 148, 146, 147, 149, 146, 148, 143, 153, 145, 144, 141, 151, 147, 148, 163, 134, 152, 145, 150, 142, 145, 140, 146, 151, 168, 145, 146, 148, 151, 141, 155, 141, 145, 139, 151, 149, 146, 149, 145, 146, 147, 143, 149, 145, 144, 143, 143, 140, 153, 149, 150, 150, 149, 155, 149, 146, 144, 172, 148, 146, 149, 140, 150, 144, 142, 131, 156, 156, 146, 151, 149, 137, 156, 149, 145, 140, 130, 144, 145, 137, 146, 156, 148, 154, 158, 149, 139, 151, 146, 142, 144, 146, 143, 140, 145, 142, 150, 137, 142, 146, 140, 147, 156, 146, 149, 143, 145, 144, 144, 144, 137, 143, 145, 148, 139, 139, 154, 144, 150, 155, 149, 146, 150, 142, 137, 150, 154, 156, 138, 137, 147, 147, 141, 144, 146, 142, 143, 147, 148, 160, 148, 155, 145, 149, 144, 145, 142, 164, 131, 147, 152, 146, 133, 135, 150, 149, 144, 151, 145, 151, 148, 148, 148, 145, 141, 166, 149, 147, 142, 145, 148, 145, 142, 148, 149, 145, 153, 144, 150, 133, 143, 147, 153, 154, 151, 149, 147, 141, 145, 150, 145, 152, 143, 146, 140, 141, 149, 150, 145, 139, 141, 148, 147, 146, 154, 145, 148, 145, 139, 142, 149, 146, 152, 136, 150, 146, 145, 144, 145, 141, 145, 150, 144, 143, 162, 144, 147, 155, 145, 147, 153, 144, 148, 146, 145, 146, 151, 146, 139, 143, 147, 147, 143, 143, 144, 145, 145, 144, 144, 159, 142, 146, 145, 148, 147, 147, 146, 144, 151, 158, 143, 144, 148, 146, 143, 147, 153, 136, 144, 146, 149, 150, 146, 144, 143, 152, 146, 149, 144, 145, 142, 144, 148, 136, 148, 151, 146, 139, 148, 146, 151, 144, 145, 145, 146, 145, 146, 150, 148, 148, 132, 145, 144, 143, 143, 144, 139, 147, 145, 139, 147, 146, 142, 148, 144, 152, 154, 145, 146, 145, 145, 143, 147, 156, 146, 132, 149, 143, 142, 148, 142, 148, 149, 147, 149, 144, 143, 144, 150, 143, 154, 145, 146, 149, 149, 145, 147, 141, 151, 148, 147, 139, 147, 146, 140, 143, 151, 145, 148, 148, 145, 158, 143, 151, 147, 145, 144, 148, 147, 150, 148, 140, 146, 143, 146, 145, 145, 148, 157, 138, 154, 149, 152, 146, 146, 150, 143, 141, 147, 146, 147, 145, 143, 143, 146, 147, 143, 149, 140, 144, 144, 139, 143, 144, 145, 146, 148, 136, 144, 143, 147, 148, 147, 145, 146, 145, 143, 144, 146, 146, 149, 158, 151, 143, 151, 145, 150, 148, 144, 153, 145, 142, 158, 143, 149, 149, 154, 137, 149, 144, 141, 149, 145, 147, 146, 141, 161, 147, 144, 143, 146, 149, 147, 144, 146, 144, 147, 157, 144, 134, 142, 144, 146, 140, 147, 147, 149, 143, 146, 149, 147, 147, 147, 150, 147, 147, 203, 151, 148, 147, 138, 145, 146, 142, 144, 142, 150, 142, 142, 151, 143, 156, 146, 145, 145, 148, 137, 148, 145, 150, 143, 132, 143, 142, 146, 153, 160, 154, 145, 145, 150, 142, 149, 146, 144, 152, 147, 149, 141, 145, 142, 146, 148, 144, 160, 144, 141, 149, 145, 138, 148, 144, 145, 152, 148, 145, 143, 146, 143, 142, 143, 142, 143, 160, 153, 145, 146, 150, 150, 145, 148, 145, 141, 150, 148, 151, 145, 151, 149, 133, 146, 144, 146, 147, 143, 145, 147, 144, 148, 148, 146, 149, 138, 149, 153, 146, 145, 143, 142, 142, 146, 143, 147, 146, 148, 147, 150, 145, 144, 151, 145, 147, 148, 150, 145, 150, 147, 144, 147, 145, 141, 145, 140, 147, 143, 148, 145, 149, 150, 140, 159, 149, 143, 145, 151, 146, 140, 143, 147, 144, 142, 146, 143, 147, 144, 144, 146, 148, 148, 149, 157, 147, 129, 145, 143, 146, 144, 142, 145, 144, 146, 139, 144, 149, 147, 146, 146, 149, 146, 149, 145, 143, 147, 152, 148, 140, 143, 155, 142, 147, 146, 147, 141, 141, 144, 146, 150, 157, 151, 143, 204, 142, 149, 143, 139, 138, 148, 140, 149, 150, 121, 140, 146, 144, 142, 160, 137, 149, 125, 157, 146, 132, 145, 156, 128, 137, 153, 151, 140, 152, 137, 139, 139, 153, 130, 149, 143, 131, 137, 147, 144, 147, 136, 148, 134, 139, 141, 154, 151, 153, 139, 176, 128, 142, 144, 149, 146, 152, 151, 161, 148, 142, 144, 145, 134, 140, 146, 145, 133, 154, 148, 133, 151, 143, 133, 170, 156, 153, 148, 150, 149, 151, 150, 153, 150, 121, 141, 143, 147, 144, 156, 154, 150, 156, 149, 145, 143, 133, 153, 139, 150, 149, 147, 148, 149, 150, 165, 132, 146, 153, 141, 147, 140, 145, 138, 147, 137, 144, 156, 156, 139, 157, 158, 148, 142, 141, 145, 169, 133, 141, 153, 139, 144, 161, 147, 154, 141, 139, 148, 152, 148, 134, 142, 145, 139, 141, 155, 146, 136, 158, 147, 146, 141, 131, 161, 124, 142, 143, 133, 149, 147, 128, 160, 141, 139, 143, 150, 160, 136, 125, 130, 153, 160, 150, 142, 141, 135, 149, 185, 137, 135, 143, 143, 150, 148, 144, 144, 112, 154, 161, 146, 142, 141, 141, 159, 132, 151, 138, 136, 145, 153, 142, 151, 153, 145, 147, 149, 149, 133, 148, 163, 129, 132, 146, 151, 131, 113, 142, 148, 142, 150, 150, 146, 187, 143, 146, 107, 156, 142, 154, 147, 127, 138, 161, 163, 140, 140, 155, 158, 151, 144, 170, 146, 148, 148, 132, 152, 143, 153, 153, 152, 144, 145, 145, 145, 135, 138, 142, 144, 143, 147, 145, 137, 155, 143, 149, 150, 129, 144, 143, 151, 128, 136, 149, 152, 145, 153, 143, 148, 157, 152, 138, 147, 152, 142, 141, 146, 142, 142, 145, 143, 147, 153, 152, 143, 139, 148, 147, 153, 149, 149, 142, 145, 150, 147, 149, 143, 137, 140, 162, 141, 146, 145, 130, 150, 148, 145, 136, 154, 149, 138, 141, 145, 144, 142, 139, 138, 141, 146, 152, 147, 145, 137, 150, 160, 145, 149, 144, 144, 156, 150, 141, 144, 144, 142, 147, 150, 145, 162, 130, 140, 141, 151, 138, 143, 143, 149, 149, 144, 145, 142, 138, 136, 146, 149, 144, 142, 137, 140, 148, 165, 143, 136, 146, 139, 142, 143, 148, 139, 145, 186, 143, 140, 134, 141, 134, 151, 134, 148, 141, 152, 149, 135, 137, 134, 149, 146, 148, 153, 160, 156, 151, 153, 154, 143, 154, 143, 140, 144, 141, 141, 145, 161, 142, 157, 147, 144, 150, 144, 150, 141, 136, 129, 145, 155, 146, 149, 140, 147, 150, 144, 147, 145, 158, 145, 150, 146, 140, 140, 136, 147, 145, 149, 142, 148, 145, 147, 149, 154, 154, 138, 143, 149, 127, 159, 149, 147, 141, 144, 144, 145, 143, 152, 142, 152, 142, 136, 154, 136, 146, 140, 141, 142, 144, 157, 139, 151, 150, 159, 140, 142, 140, 144, 139, 148, 140, 150, 146, 143, 146, 130, 145, 146, 147, 151, 153, 138, 150, 145, 127, 142, 148, 148, 137, 145, 135, 145, 154, 143, 144, 143, 146, 150, 148, 151, 149, 148, 146, 141, 143, 144, 149, 148, 146, 144, 147, 142, 126, 148, 143, 154, 147, 144, 143, 136, 147, 149, 145, 150, 144, 147, 150, 152, 147, 133, 143, 145, 146, 145, 136, 143, 143, 150, 143, 141, 140, 147, 133, 148, 148, 150, 149, 146, 144, 149, 153, 149, 145, 146, 152, 150, 151, 146, 134, 136, 146, 140, 140, 148, 144, 145, 148, 140, 144, 142, 148, 150, 152, 145, 141, 146, 144, 145, 148, 135, 149, 144, 150, 144, 160, 138, 144, 147, 145, 148, 156, 145, 151, 148, 144, 143, 146, 144, 146, 140, 142, 145, 143, 144, 143, 149, 144, 141, 148, 150, 143, 143, 146, 148, 146, 146, 145, 146, 139, 140, 148, 143, 151, 142, 137, 146, 138, 148, 141, 143, 140, 130, 146, 144, 141, 142, 140, 149, 136, 146, 146, 151, 147, 147, 145, 153, 154, 149, 154, 145, 133, 142, 144, 147, 143, 140, 151, 143, 142, 148, 144, 124, 142, 141, 143, 146, 140, 139, 143, 150, 146, 144, 148, 144, 148, 143, 139, 143, 142, 137, 144, 150, 140, 145, 151, 148, 137, 141, 141, 150, 147, 150, 146, 151, 149, 150, 145, 144, 141, 142, 144, 142, 147, 148, 142, 153, 147, 147, 142, 143, 144, 148, 145, 140, 142, 149, 145, 146, 147, 143, 150, 150, 149, 146, 144, 145, 141, 143, 147, 148, 157, 152, 146, 143, 143, 150, 142, 150, 141, 158, 145, 145, 147, 138, 150, 141, 140, 144, 143, 142, 153, 140, 134, 140, 142, 148, 138, 150, 152, 144, 154, 137, 151, 133, 148, 142, 142, 147, 152, 147, 144, 142, 149, 136, 146, 146, 155, 133, 135, 143, 149, 148, 128, 139, 140, 148, 136, 158, 148, 131, 154, 139, 135, 142, 136, 146, 157, 149, 147, 127, 167, 142, 142, 162, 152, 113, 142, 163, 141, 142, 139, 142, 138, 135, 147, 144, 148, 147, 157, 149, 136, 159, 149, 167, 138, 161, 108, 148, 153, 150, 149, 137, 140, 145, 147, 145, 152, 142, 145, 144, 153, 135, 142, 148, 142, 148, 154, 148, 151, 166, 141, 141, 151, 154, 144, 159, 157, 142, 133, 135, 140, 136, 144, 135, 135, 147, 145, 145, 137, 148, 164, 147, 144, 141, 147, 152, 143, 147, 151, 142, 145, 143, 150, 162, 121, 144, 161, 151, 144, 140, 147, 145, 137, 143, 143, 135, 132, 160, 142, 157, 142, 153, 152, 143, 140, 155, 144, 145, 144, 150, 143, 152, 154, 149, 138, 152, 144, 157, 144, 139, 138, 147, 136, 146, 155, 155, 140, 146, 148, 142, 138, 144, 169, 125, 147, 140, 139, 155, 146, 152, 144, 166, 152, 147, 146, 133, 158, 152, 137, 147, 134, 135, 137, 158, 137, 152, 141, 148, 137, 131, 144, 132, 145, 152, 128, 150, 178, 146, 142, 135, 157, 149, 147, 153, 137, 144, 141, 150, 142, 151, 139, 132, 148, 143, 142, 149, 141, 156, 148, 151, 153, 148, 151, 147, 138, 140, 151, 143, 151, 135, 145, 136, 163, 138, 162, 147, 138, 151, 154, 144, 154, 162, 155, 141, 143, 151, 156, 151, 133, 144, 139, 141, 151, 144, 145, 153, 146, 141, 151, 138, 134, 148, 153, 153, 157, 150, 147, 155, 138, 212, 151, 150, 137, 135, 138, 129, 140, 148, 144, 149, 134, 141, 144, 165, 149, 119, 143, 142, 153, 153, 144, 134, 151, 150, 146, 151, 150, 141, 145, 148, 145, 136, 141, 146, 145, 157, 150, 144, 151, 149, 137, 151, 115, 138, 148, 137, 147, 132, 142, 138, 151, 147, 148, 153, 141, 154, 139, 135, 143, 131, 143, 133, 147, 157, 134, 132, 148, 144, 141, 142, 142, 128, 146, 146, 151, 150, 139, 148, 136, 143, 149, 134, 122, 148, 157, 146, 146, 150, 161, 152, 149, 131, 133, 145, 137, 137, 145, 147, 152, 155, 161, 146, 154, 153, 128, 145, 139, 142, 144, 152, 146, 147, 151, 145, 153, 132, 112, 130, 137, 155, 157, 145, 153, 142, 129, 152, 161, 156, 151, 152, 145, 140, 146, 141, 150, 143, 142, 151, 134, 134, 160, 132, 153, 144, 166, 149, 141, 150, 170, 131, 143, 145, 180, 144, 142, 144, 156, 145, 134, 143, 142, 151, 155, 149, 158, 151, 141, 137, 149, 135, 147, 146, 146, 155, 149, 146, 146, 142, 152, 135, 144, 139, 183, 153, 149, 147, 176, 144, 161, 149, 130, 135, 147, 156, 144, 158, 148, 128, 138, 148, 147, 150, 145, 151, 139, 140, 145, 163, 126, 145, 140, 150, 144, 166, 158, 134, 154, 135, 140, 150, 141, 134, 139, 146, 146, 148, 141, 151, 139, 141, 139, 134, 141, 151, 145, 133, 153, 146, 150, 150, 144, 136, 144, 145, 134, 150, 135, 154, 142, 157, 140, 163, 148, 136, 153, 140, 150, 154, 147, 146, 145, 156, 156, 144, 153, 141, 155, 162, 151, 150, 143, 157, 161, 132, 151, 148, 150, 138, 148, 151, 143, 146, 152, 144, 155, 138, 155, 144, 155, 156, 149, 147, 144, 152, 152, 152, 138, 145, 153, 139, 153, 147, 147, 151, 145, 147, 143, 145, 153, 154, 151, 141, 145, 142, 146, 148, 149, 144, 159, 131, 141, 143, 155, 152, 149, 145, 151, 147, 145, 129, 150, 142, 138, 154, 149, 143, 144, 137, 153, 138, 132, 139, 141, 155, 150, 145, 139, 145, 149, 142, 149, 149, 144, 136, 161, 139, 143, 154, 140, 141, 153, 151, 138, 138, 160, 147, 153, 143, 179, 150, 139, 128, 148, 154, 139, 134, 145, 136, 155, 149, 140, 138, 150, 145, 145, 144, 142, 147, 152, 141, 138, 139, 142, 153, 151, 140, 140, 151, 138, 142, 140, 118, 162, 148, 146, 130, 150, 148, 140, 139, 149, 143, 133, 152, 148, 139, 145, 150, 150, 158, 137, 155, 135, 148, 146, 154, 142, 142, 145, 158, 149, 150, 148, 160, 138, 144, 143, 145, 144, 138, 145, 136, 139, 139, 143, 133, 143, 154, 149, 135, 137, 139, 158, 154, 145, 154, 136, 102, 145, 140, 141, 142, 136, 141, 150, 146, 138, 149, 147, 162, 148, 134, 136, 142, 138, 140, 148, 145, 141, 148, 145, 147, 149, 147, 140, 150, 145, 152, 147, 146, 144, 150, 131, 143, 147, 148, 145, 141, 150, 144, 145, 152, 131, 147, 137, 154, 150, 148, 148, 148, 149, 155, 154, 140, 159, 115, 131, 149, 146, 153, 152, 154, 143, 159, 138, 159, 144, 145, 151, 137, 139, 147, 143, 122, 144, 137, 147, 142, 145, 150, 149, 147, 144, 146, 150, 135, 140, 153, 142, 149, 153, 157, 149, 152, 161, 139, 145, 153, 146, 141, 143, 138, 148, 150, 154, 169, 144, 146, 142, 171, 141, 135, 147, 133, 154, 150, 82, 153, 132, 141, 156, 144, 154, 144, 132, 134, 144, 128, 140, 134, 153, 147, 140, 129, 144, 149, 144, 143, 153, 135, 145, 149, 147, 134, 136, 152, 142, 149, 142, 148, 135, 150, 129, 151, 139, 151, 138, 146, 124, 113, 152, 145, 150, 140, 154, 151, 147, 143, 146, 144, 132, 123, 155, 129, 162, 145, 137, 149, 154, 139, 147, 175, 153, 146, 143, 153, 145, 151, 151, 138, 138, 132, 142, 150, 151, 148, 148, 145, 141, 151, 156, 124, 153, 142, 143, 140, 147, 127, 146, 158, 141, 144, 177, 148, 175, 114, 140, 143, 138, 157, 145, 166, 143, 121, 145, 134, 142, 150, 167, 150, 145, 151, 144, 144, 147, 141, 157, 135, 146, 142, 139, 143, 147, 147, 148, 143, 139, 150, 156, 150, 145, 144, 120, 139, 155, 141, 143, 152, 136, 145, 155, 138, 141, 152, 144, 161, 149, 138, 139, 145, 142, 145, 156, 147, 153, 143, 147, 145, 168, 144, 159, 150, 162, 148, 141, 143, 163, 161, 144, 134, 144, 152, 150, 160, 142, 149, 147, 141, 134, 150, 153, 149, 137, 144, 116, 132, 145, 142, 138, 141, 153, 144, 142, 159, 150, 147, 136, 148, 107, 152, 145, 149, 145, 163, 142, 147, 149, 217, 146, 154, 154, 170, 171, 152, 150, 159, 140, 163, 150, 126, 151, 148, 138, 153, 143, 157, 153, 140, 148, 159, 153, 149, 132, 135, 145, 135, 156, 163, 162, 149, 138, 130, 150, 160, 147, 142, 143, 147, 130, 148, 121, 144, 140, 131, 136, 155, 122, 132, 130, 135, 150, 142, 131, 157, 145, 142, 120, 141, 143, 156, 149, 144, 146, 146, 149, 145, 134, 157, 136, 138, 155, 159, 153, 149, 158, 138, 149, 138, 147, 164, 166, 137, 152, 133, 150, 141, 148, 144, 143, 96, 145, 157, 147, 142, 150, 135, 147, 145, 148, 138, 147, 150, 133, 182, 139, 149, 128, 132, 146, 148, 133, 147, 151, 140, 160, 151, 155, 141, 151, 147, 151, 141, 158, 158, 148, 140, 142, 131, 120, 138, 131, 167, 144, 142, 139, 146, 149, 135, 132, 131, 143, 139, 142, 147, 148, 150, 165, 161, 144, 149, 143, 145, 150, 158, 138, 149, 141, 144, 150, 157, 133, 133, 155, 157, 152, 140, 155, 149, 154, 139, 159, 140, 134, 140, 142, 124, 153, 157, 142, 147, 146, 137, 149, 135, 142, 146, 153, 145, 147, 141, 146, 148, 119, 140, 139, 142, 149, 138, 127, 145, 145, 148, 142, 162, 146, 153, 142, 138, 149, 149, 148, 146, 150, 145, 146, 148, 144, 142, 144, 122, 147, 150, 146, 148, 141, 146, 152, 150, 152, 150, 161, 142, 153, 143, 144, 148, 151, 143, 143, 146, 146, 149, 140, 147, 149, 143, 145, 144, 152, 145, 147, 133, 150, 146, 145, 147, 149, 100, 150, 145, 145, 147, 153, 144, 149, 149, 149, 144, 139, 145, 143, 144, 147, 146, 146, 145, 150, 146, 148, 143, 145, 149, 135, 147, 143, 146, 146, 148, 148, 144, 147, 142, 147, 145, 151, 145, 147, 147, 146, 145, 143, 147, 147, 146, 148, 150, 149, 150, 149, 145, 157, 149, 143, 149, 142, 145, 149, 151, 143, 146, 140, 148, 145, 144, 155, 142, 147, 152, 138, 145, 146, 144, 141, 146, 143, 145, 142, 146, 145, 146, 148, 150, 144, 146, 142, 140, 150, 144, 148, 146, 149, 149, 149, 150, 148, 150, 142, 143, 136, 147, 142, 145, 196, 148, 142, 142, 150, 146, 146, 148, 142, 150, 149, 148, 144, 147, 149, 166, 143, 146, 140, 141, 144, 144, 147, 146, 142, 142, 147, 147, 147, 148, 147, 149, 144, 147, 143, 149, 146, 145, 146, 151, 137, 150, 147, 144, 151, 151, 145, 149, 140, 145, 139, 143, 148, 148, 147, 158, 143, 146, 148, 148, 149, 145, 138, 148, 131, 150, 148, 145, 147, 148, 145, 135, 149, 146, 146, 150, 142, 144, 149, 144, 143, 142, 148, 145, 150, 145, 152, 158, 149, 147, 148, 148, 136, 176, 138, 137, 126, 137, 145, 0, 151, 146, 145, 139, 139, 144, 148, 165, 152, 145, 151, 130, 119, 155, 161, 177, 160, 153, 134, 153, 147, 125, 156, 159, 144, 148, 153, 141, 138, 150, 145, 132, 141, 145, 147, 146, 151, 148, 136, 149, 157, 139, 128, 155, 147, 150, 135, 153, 141, 146, 135, 124, 142, 145, 149, 149, 157, 148, 149, 128, 140, 163, 151, 167, 145, 154, 145, 132, 143, 145, 142, 139, 161, 142, 143, 133, 141, 154, 138, 131, 159, 140, 139, 152, 145, 105, 143, 145, 142, 157, 188, 136, 150, 145, 158, 157, 153, 145, 139, 147, 153, 160, 136, 156, 163, 156, 144, 156, 150, 152, 132, 144, 114, 146, 134, 151, 149, 153, 150, 146, 150, 167, 151, 144, 118, 141, 136, 145, 146, 149, 149, 114, 132, 144, 129, 167, 125, 156, 130, 149, 153, 149, 122, 147, 150, 146, 141, 153, 144, 146, 142, 134, 159, 143, 141, 122, 128, 150, 152, 150, 147, 154, 149, 153, 161, 147, 128, 155, 154, 142, 155, 131, 157, 137, 153, 132, 146, 140, 149, 141, 147, 140, 138, 142, 132, 147, 165, 157, 135, 141, 133, 149, 134, 146, 140, 158, 150, 148, 139, 145, 144, 146, 151, 144, 151, 148, 147, 140, 142, 119, 132, 146, 141, 149, 152, 131, 136, 138, 145, 146, 129, 151, 145, 147, 137, 149, 143, 129, 134, 156, 151, 135, 144, 150, 149, 129, 148, 143, 255, 128, 141, 138, 153, 146, 154, 133, 137, 146, 143, 143, 147, 144, 148, 141, 144, 147, 146, 143, 147, 145, 150, 146, 146, 150, 142, 143, 150, 144, 144, 144, 145, 146, 147, 143, 139, 146, 146, 146, 144, 145, 153, 142, 142, 144, 146, 147, 146, 147, 147, 145, 147, 142, 143, 149, 145, 147, 147, 145, 145, 143, 147, 150, 146, 145, 147, 148, 144, 147, 145, 146, 147, 151, 144, 154, 146, 147, 147, 147, 141, 138, 150, 146, 143, 142, 141, 144, 146, 145, 144, 142, 145, 157, 147, 148, 144, 146, 147, 145, 145, 146, 146, 144, 143, 140, 152, 146, 144, 144, 146, 142, 144, 143, 147, 148, 146, 146, 143, 141, 147, 149, 143, 144, 153, 147, 145, 149, 144, 147, 144, 146, 146, 150, 147, 146, 144, 140, 148, 146, 152, 142, 142, 137, 146, 147, 149, 144, 143, 148, 143, 147, 147, 146, 145, 145, 145, 139, 152, 146, 145, 144, 143, 145, 149, 141, 142, 141, 146, 145, 144, 145, 143, 148, 149, 144, 144, 149, 147, 141, 140, 145, 150, 149, 144, 147, 146, 147, 146, 138, 147, 143, 151, 147, 142, 143, 146, 146, 143, 147, 160, 148, 141, 146, 146, 147, 151, 148, 147, 147, 161, 148, 144, 146, 156, 148, 143, 145, 147, 145, 140, 144, 148, 151, 145, 145, 146, 145, 144, 148, 148, 147, 151, 147, 143, 145, 147, 152, 146, 137, 143, 146, 139, 147, 147, 152, 145, 143, 146, 144, 144, 145, 145, 145, 150, 147, 145, 143, 144, 147, 142, 146, 146, 144, 147, 145, 150, 149, 164, 142, 144, 143, 137, 137, 155, 137, 109, 159, 158, 140, 144, 140, 143, 152, 157, 144, 137, 150, 146, 142, 146, 130, 141, 138, 141, 142, 134, 147, 135, 142, 159, 157, 144, 145, 146, 129, 152, 128, 138, 127, 137, 147, 165, 137, 153, 150, 146, 137, 142, 144, 147, 126, 153, 132, 149, 152, 140, 147, 148, 133, 147, 138, 159, 141, 154, 145, 145, 147, 130, 158, 153, 142, 124, 141, 157, 144, 153, 148, 145, 147, 150, 144, 143, 155, 142, 154, 141, 133, 132, 142, 141, 145, 157, 141, 143, 153, 135, 141, 144, 139, 141, 141, 152, 131, 140, 139, 153, 145, 135, 132, 143, 140, 159, 165, 141, 150, 143, 141, 145, 137, 143, 178, 124, 139, 139, 141, 165, 144, 152, 144, 146, 141, 153, 129, 121, 149, 130, 151, 152, 145, 144, 145, 146, 150, 136, 151, 143, 160, 150, 141, 147, 137, 144, 114, 146, 142, 150, 141, 154, 145, 152, 142, 152, 143, 144, 148, 128, 152, 159, 144, 153, 148, 141, 136, 136, 138, 142, 141, 145, 140, 158, 138, 148, 147, 159, 159, 152, 137, 152, 152, 155, 152, 136, 143, 142, 142, 143, 145, 146, 140, 154, 176, 139, 151, 166, 146, 136, 149, 143, 135, 153, 149, 145, 142, 137, 146, 147, 149, 141, 147, 152, 145, 147, 138, 127, 145, 132, 138, 144, 204, 145, 142, 136, 151, 148, 149, 155, 144, 154, 145, 163, 150, 144, 146, 136, 150, 152, 155, 143, 151, 133, 140, 133, 147, 154, 143, 130, 153, 153, 143, 155, 151, 155, 144, 151, 147, 132, 160, 139, 139, 145, 151, 151, 153, 144, 144, 149, 158, 149, 148, 141, 141, 104, 141, 131, 143, 151, 145, 157, 149, 147, 143, 147, 133, 143, 144, 149, 137, 149, 147, 152, 139, 148, 144, 140, 155, 147, 134, 150, 145, 143, 148, 146, 146, 150, 142, 155, 150, 144, 138, 144, 144, 155, 139, 147, 136, 152, 147, 143, 155, 143, 141, 150, 142, 146, 148, 141, 143, 188, 143, 147, 138, 142, 140, 147, 144, 147, 156, 141, 148, 148, 150, 148, 142, 142, 143, 144, 146, 157, 154, 144, 139, 153, 146, 151, 149, 141, 143, 142, 142, 151, 145, 143, 142, 148, 144, 150, 142, 180, 156, 140, 143, 144, 141, 153, 142, 147, 148, 141, 141, 175, 152, 143, 145, 143, 151, 152, 146, 143, 152, 135, 142, 147, 145, 141, 150, 149, 145, 141, 132, 145, 145, 145, 140, 169, 147, 147, 151, 146, 143, 137, 150, 149, 144, 135, 148, 145, 143, 156, 145, 144, 134, 147, 137, 146, 158, 146, 142, 147, 148, 151, 144, 152, 149, 134, 143, 145, 145, 141, 144, 141, 144, 154, 142, 144, 152, 153, 150, 145, 148, 144, 146, 149, 147, 146, 147, 143, 149, 144, 147, 152, 144, 140, 140, 144, 141, 150, 147, 149, 144, 141, 131, 136, 144, 162, 134, 141, 143, 147, 153, 145, 147, 139, 144, 138, 147, 144, 146, 141, 152, 150, 142, 130, 192, 138, 138, 152, 153, 151, 142, 144, 153, 148, 153, 155, 153, 153, 141, 133, 144, 146, 136, 149, 156, 138, 151, 142, 146, 150, 147, 143, 138, 147, 147, 140, 144, 147, 136, 142, 150, 146, 137, 148, 147, 141, 150, 150, 150, 148, 147, 140, 148, 147, 152, 147, 150, 150, 132, 144, 151, 144, 137, 140, 143, 141, 129, 143, 141, 146, 150, 148, 141, 153, 162, 146, 148, 146, 145, 128, 153, 144, 142, 143, 149, 142, 143, 145, 149, 135, 143, 145, 165, 149, 137, 143, 142, 143, 136, 150, 141, 145, 135, 148, 145, 147, 143, 152, 165, 145, 144, 153, 153, 152, 140, 145, 137, 148, 136, 150, 152, 149, 153, 158, 147, 141, 153, 139, 146, 148, 143, 145, 146, 144, 142, 151, 155, 141, 149, 146, 146, 143, 143, 147, 156, 156, 146, 149, 138, 137, 145, 150, 142, 150, 150, 141, 154, 153, 144, 145, 144, 149, 135, 149, 153, 146, 151, 142, 146, 141, 143, 152, 148, 140, 152, 147, 142, 142, 150, 154, 145, 147, 144, 136, 143, 154, 148, 143, 144, 155, 151, 150, 149, 141, 143, 149, 143, 144, 153, 182, 144, 143, 148, 137, 141, 154, 139, 138, 151, 163, 143, 151, 156, 152, 142, 144, 149, 147, 141, 144, 141, 150, 147, 143, 147, 154, 136, 147, 141, 143, 148, 140, 137, 125, 145, 148, 139, 153, 144, 146, 143, 151, 148, 143, 155, 152, 147, 145, 139, 147, 143, 147, 143, 139, 156, 149, 146, 151, 147, 136, 134, 146, 121, 142, 147, 144, 140, 148, 145, 149, 145, 145, 139, 142, 149, 145, 150, 154, 142, 142, 145, 142, 146, 149, 143, 156, 145, 164, 146, 144, 150, 146, 156, 134, 145, 149, 139, 146, 154, 142, 149, 151, 114, 141, 150, 145, 145, 144, 145, 149, 147, 141, 155, 154, 145, 115, 144, 143, 148, 145, 143, 152, 143, 172, 142, 147, 149, 147, 146, 147, 144, 146, 153, 151, 146, 159, 144, 151, 145, 146, 146, 140, 144, 141, 138, 138, 148, 155, 151, 143, 149, 150, 132, 161, 148, 150, 146, 193, 145, 123, 148, 146, 186, 142, 154, 141, 148, 146, 146, 156, 140, 151, 149, 143, 142, 152, 149, 140, 139, 140, 151, 149, 139, 155, 135, 148, 149, 142, 152, 141, 145, 140, 147, 142, 130, 147, 141, 154, 141, 133, 157, 137, 148, 151, 147, 144, 147, 147, 151, 158, 149, 117, 141, 132, 151, 147, 141, 149, 137, 143, 144, 143, 144, 140, 160, 144, 149, 152, 145, 147, 138, 148, 145, 146, 139, 152, 157, 141, 149, 149, 143, 148, 143, 138, 143, 143, 142, 146, 149, 150, 143, 158, 149, 149, 143, 151, 169, 144, 147, 144, 151, 156, 140, 152, 144, 142, 143, 141, 156, 146, 149, 150, 116, 145, 145, 148, 143, 149, 140, 145, 137, 143, 140, 144, 140, 144, 145, 146, 161, 153, 140, 147, 146, 145, 148, 148, 151, 154, 138, 144, 142, 158, 146, 154, 144, 148, 149, 144, 140, 147, 144, 151, 163, 142, 151, 152, 151, 142, 143, 151, 150, 143, 150, 150, 147, 141, 147, 146, 140, 150, 146, 143, 149, 149, 139, 141, 142, 140, 145, 145, 138, 130, 150, 158, 150, 147, 151, 150, 141, 151, 153, 142, 152, 150, 146, 154, 144, 148, 159, 145, 146, 138, 143, 149, 146, 143, 148, 146, 144, 138, 145, 163, 149, 143, 147, 142, 141, 144, 150, 155, 147, 149, 144, 148, 147, 154, 148, 147, 135, 145, 143, 147, 152, 145, 145, 146, 142, 149, 143, 150, 153, 149, 152, 131, 145, 149, 148, 141, 142, 149, 139, 144, 145, 140, 144, 141, 142, 150, 136, 160, 147, 147, 147, 140, 139, 142, 150, 146, 147, 145, 146, 140, 155, 142, 149, 149, 150, 143, 141, 147, 152, 148, 141, 154, 143, 238, 149, 150, 146, 144, 145, 145, 145, 148, 147, 146, 142, 148, 146, 149, 145, 145, 139, 138, 151, 142, 144, 135, 141, 142, 144, 154, 151, 142, 153, 142, 145, 140, 143, 142, 144, 142, 144, 148, 137, 146, 148, 148, 131, 144, 146, 140, 153, 144, 150, 139, 140, 144, 158, 141, 146, 150, 145, 147, 142, 151, 146, 143, 144, 146, 145, 145, 156, 149, 149, 145, 149, 136, 143, 142, 149, 146, 112, 139, 153, 148, 149, 146, 157, 150, 145, 139, 141, 142, 146, 156, 149, 141, 155, 150, 142, 152, 144, 141, 145, 150, 144, 144, 145, 144, 146, 152, 144, 146, 148, 148, 147, 144, 143, 146, 143, 149, 149, 138, 144, 145, 150, 140, 129, 140, 143, 147, 152, 146, 149, 141, 147, 146, 141, 145, 144, 147, 147, 144, 146, 148, 146, 142, 144, 145, 149, 149, 146, 148, 148, 155, 148, 140, 144, 152, 148, 145, 143, 143, 148, 143, 149, 149, 148, 146, 142, 147, 143, 145, 193, 144, 147, 147, 144, 147, 144, 145, 146, 145, 145, 149, 146, 180, 149, 145, 147, 146, 144, 145, 144, 114, 149, 145, 151, 142, 143, 150, 147, 146, 192, 146, 148, 149, 142, 149, 142, 141, 141, 147, 148, 149, 144, 150, 148, 135, 145, 146, 144, 147, 153, 151, 146, 152, 146, 148, 143, 146, 144, 146, 167, 143, 144, 143, 146, 146, 145, 146, 145, 148, 145, 146, 142, 150, 142, 146, 151, 144, 150, 142, 148, 148, 155, 146, 148, 150, 156, 149, 146, 144, 147, 148, 141, 148, 149, 142, 146, 144, 151, 139, 146, 145, 154, 144, 150, 147, 150, 144, 149, 143, 144, 155, 144, 134, 144, 144, 149, 150, 147, 145, 150, 146, 158, 144, 144, 145, 140, 147, 144, 151, 140, 151, 143, 150, 157, 142, 145, 145, 145, 147, 148, 140, 147, 143, 144, 148, 148, 145, 146, 144, 144, 145, 149, 143, 141, 152, 148, 145, 147, 142, 142, 149, 150, 144, 160, 148, 150, 146, 145, 147, 139, 145, 142, 145, 147, 146, 145, 146, 147, 147, 149, 145, 149, 146, 150, 145, 130, 147, 143, 145, 149, 147, 147, 149, 145, 147, 144, 151, 143, 142, 144, 144, 146, 148, 151, 145, 150, 150, 144, 143, 127, 143, 143, 147, 145, 143, 148, 149, 144, 144, 137, 150, 145, 139, 151, 146, 142, 144, 142, 144, 148, 136, 144, 145, 135, 150, 145, 145, 148, 146, 143, 142, 145, 138, 145, 146, 148, 151, 143, 148, 141, 144, 145, 143, 145, 148, 144, 146, 146, 165, 145, 153, 142, 145, 146, 148, 140, 144, 147, 141, 145, 146, 142, 146, 142, 151, 147, 150, 147, 141, 146, 148, 143, 152, 143, 147, 150, 142, 148, 147, 146, 147, 143, 136, 143, 146, 143, 150, 153, 146, 151, 147, 143, 144, 146, 143, 146, 141, 148, 138, 140, 146, 144, 139, 149, 147, 141, 139, 152, 147, 141, 147, 144, 151, 149, 146, 140, 143, 142, 145, 148, 144, 141, 146, 149, 140, 148, 145, 145, 145, 152, 151, 149, 142, 145, 147, 147, 139, 147, 143, 144, 136, 143, 152, 145, 147, 142, 143, 167, 143, 145, 152, 144, 141, 144, 146, 146, 158, 145, 145, 143, 143, 151, 143, 151, 151, 148, 151, 145, 149, 137, 144, 142, 147, 147, 144, 146, 147, 131, 144, 148, 152, 144, 142, 141, 144, 146, 152, 146, 149, 135, 142, 142, 142, 144, 152, 146, 149, 142, 146, 153, 142, 144, 146, 146, 152, 143, 148, 145, 139, 144, 132, 144, 146, 147, 143, 144, 147, 145, 149, 144, 148, 148, 150, 146, 144, 144, 147, 139, 147, 152, 147, 147, 144, 143, 139, 140, 150, 147, 143, 135, 145, 147, 146, 146, 149, 136, 147, 142, 143, 143, 145, 142, 148, 141, 144, 147, 147, 142, 145, 144, 149, 147, 144, 144, 143, 147, 136, 143, 144, 142, 143, 140, 149, 139, 139, 138, 137, 142, 141, 147, 135, 143, 148, 152, 146, 143, 145, 143, 143, 142, 143, 144, 162, 145, 145, 156, 141, 146, 136, 128, 148, 148, 134, 155, 141, 144, 142, 140, 141, 150, 141, 147, 138, 143, 154, 143, 150, 142, 135, 145, 139, 134, 149, 145, 146, 147, 124, 147, 148, 135, 151, 152, 148, 144, 158, 153, 143, 139, 149, 154, 154, 142, 155, 146, 150, 151, 144, 139, 141, 146, 147, 150, 149, 142, 144, 136, 161, 145, 148, 147, 147, 143, 143, 151, 147, 153, 142, 143, 140, 143, 135, 144, 156, 153, 156, 154, 149, 148, 139, 139, 138, 146, 140, 154, 147, 150, 135, 125, 142, 142, 144, 151, 141, 136, 140, 150, 153, 141, 141, 144, 125, 146, 151, 138, 153, 149, 145, 136, 163, 139, 140, 148, 148, 139, 153, 155, 149, 142, 159, 146, 145, 145, 151, 153, 147, 151, 144, 148, 139, 152, 144, 133, 148, 148, 151, 139, 141, 166, 146, 134, 142, 132, 146, 149, 147, 150, 149, 148, 134, 145, 150, 143, 135, 141, 141, 144, 147, 143, 152, 152, 145, 144, 133, 149, 141, 148, 149, 161, 147, 138, 148, 143, 151, 127, 130, 142, 147, 157, 130, 140, 152, 145, 141, 152, 143, 141, 137, 159, 139, 150, 146, 152, 143, 155, 139, 148, 145, 151, 140, 153, 141, 142, 136, 140, 147, 147, 153, 164, 145, 146, 143, 140, 136, 151, 140, 150, 148, 148, 154, 145, 143, 158, 153, 127, 91, 131, 172, 162, 131, 140, 167, 143, 139, 153, 181, 133, 148, 159, 138, 143, 142, 153, 136, 157, 184, 142, 180, 150, 147, 134, 120, 164, 168, 142, 121, 152, 155, 135, 157, 143, 148, 116, 118, 137, 148, 132, 151, 158, 150, 126, 152, 151, 123, 207, 152, 113, 144, 155, 148, 159, 136, 157, 155, 154, 154, 167, 178, 139, 149, 134, 156, 175, 147, 115, 137, 149, 139, 139, 133, 139, 148, 148, 143, 151, 169, 134, 132, 143, 157, 140, 118, 117, 141, 147, 165, 137, 137, 156, 134, 143, 148, 149, 122, 140, 150, 147, 161, 138, 131, 156, 130, 187, 122, 141, 157, 144, 165, 143, 156, 150, 156, 138, 130, 145, 156, 147, 187, 156, 114, 146, 150, 140, 139, 143, 150, 179, 154, 125, 156, 149, 121, 164, 166, 139, 155, 126, 142, 159, 163, 149, 146, 148, 137, 167, 153, 200, 179, 132, 168, 153, 125, 145, 145, 153, 159, 159, 193, 141, 130, 126, 150, 145, 150, 138, 112, 182, 171, 165, 159, 131, 146, 119, 140, 210, 148, 218, 122, 138, 157, 142, 139, 157, 120, 133, 140, 151, 120, 146, 146, 120, 172, 144, 147, 155, 153, 133, 158, 147, 138, 148, 150, 143, 130, 154, 199, 166, 122, 149, 156, 138, 126, 152, 142, 138, 134, 154, 154, 153, 130, 146, 127, 148, 159, 114, 148, 143, 151, 136, 146, 143, 144, 149, 158, 130, 157, 129, 141, 146, 145, 144, 148, 196, 141, 142, 135, 130, 134, 138, 156, 136, 133, 136, 147, 144, 134, 148, 140, 135, 137, 163, 148, 149, 148, 156, 137, 123, 151, 151, 159, 141, 154, 151, 157, 162, 183, 146, 135, 154, 165, 145, 129, 150, 139, 148, 138, 188, 156, 138, 137, 151, 144, 140, 139, 147, 140, 139, 149, 134, 136, 155, 160, 139, 145, 173, 149, 144, 153, 142, 123, 138, 153, 148, 153, 148, 144, 135, 145, 147, 148, 140, 143, 148, 157, 146, 135, 145, 145, 142, 148, 150, 149, 148, 160, 141, 155, 151, 151, 138, 150, 141, 160, 147, 136, 144, 111, 164, 175, 148, 178, 130, 121, 152, 148, 152, 174, 147, 119, 147, 132, 124, 135, 139, 153, 135, 148, 152, 143, 146, 144, 144, 142, 146, 147, 137, 137, 138, 147, 151, 142, 138, 157, 125, 183, 141, 144, 137, 138, 157, 143, 137, 146, 149, 134, 148, 142, 146, 153, 146, 144, 159, 170, 192, 138, 143, 156, 166, 130, 151, 140, 138, 144, 139, 129, 130, 136, 111, 147, 141, 161, 114, 133, 159, 143, 149, 158, 154, 135, 143, 123, 138, 147, 197, 96, 147, 148, 148, 148, 141, 144, 135, 149, 128, 141, 154, 134, 177, 143, 144, 154, 131, 141, 134, 176, 141, 140, 136, 151, 147, 158, 143, 156, 146, 178, 134, 126, 154, 100, 147, 144, 147, 146, 133, 144, 151, 144, 139, 140, 142, 141, 149, 142, 142, 130, 124, 129, 152, 165, 146, 150, 169, 141, 138, 153, 142, 144, 137, 150, 148, 139, 147, 157, 151, 139, 146, 126, 145, 142, 154, 151, 146, 121, 127, 142, 142, 150, 143, 132, 152, 138, 158, 142, 145, 148, 125, 144, 154, 145, 132, 148, 142, 146, 149, 165, 144, 165, 152, 144, 131, 138, 160, 138, 147, 146, 118, 153, 126, 171, 147, 148, 149, 141, 155, 139, 156, 158, 162, 140, 145, 149, 143, 146, 138, 146, 134, 135, 197, 148, 155, 156, 133, 136, 141, 113, 148, 142, 141, 148, 135, 138, 142, 155, 144, 140, 139, 145, 160, 211, 156, 151, 144, 138, 143, 137, 159, 146, 155, 149, 123, 152, 140, 144, 141, 140, 145, 142, 150, 150, 146, 144, 149, 147, 146, 150, 140, 134, 157, 162, 143, 145, 137, 149, 140, 150, 146, 138, 141, 146, 163, 136, 145, 135, 145, 149, 133, 147, 124, 144, 149, 147, 126, 138, 148, 147, 140, 158, 146, 144, 145, 141, 156, 146, 151, 140, 133, 145, 142, 152, 153, 141, 141, 147, 142, 160, 146, 135, 141, 146, 149, 144, 146, 149, 138, 123, 145, 147, 129, 154, 144, 189, 136, 142, 154, 148, 138, 148, 156, 140, 155, 153, 144, 131, 140, 142, 141, 151, 152, 147, 148, 155, 134, 150, 133, 135, 150, 139, 154, 132, 124, 140, 153, 147, 149, 136, 154, 150, 150, 154, 146, 148, 147, 128, 147, 141, 147, 146, 143, 134, 132, 164, 148, 157, 149, 139, 146, 121, 164, 141, 136, 138, 160, 151, 144, 139, 145, 165, 145, 133, 144, 151, 137, 154, 146, 155, 143, 144, 129, 146, 155, 160, 131, 148, 148, 138, 151, 149, 153, 145, 149, 155, 143, 154, 115, 150, 145, 165, 145, 138, 155, 146, 138, 172, 149, 136, 151, 146, 144, 135, 150, 147, 143, 143, 145, 144, 160, 145, 137, 146, 138, 148, 137, 142, 141, 144, 143, 143, 150, 144, 135, 135, 142, 144, 150, 147, 145, 144, 159, 117, 147, 154, 142, 149, 152, 167, 141, 135, 179, 152, 154, 145, 138, 137, 151, 150, 144, 142, 158, 147, 150, 154, 140, 156, 145, 140, 143, 138, 148, 146, 151, 143, 147, 144, 148, 134, 151, 142, 157, 146, 145, 145, 143, 167, 142, 140, 152, 152, 144, 106, 143, 159, 149, 146, 141, 141, 147, 141, 137, 149, 104, 150, 142, 155, 193, 151, 145, 138, 138, 154, 92, 153, 141, 157, 145, 152, 154, 136, 141, 143, 140, 148, 153, 129, 151, 141, 143, 138, 151, 142, 142, 123, 142, 149, 158, 135, 163, 154, 142, 144, 198, 150, 153, 143, 141, 145, 147, 138, 136, 142, 139, 144, 169, 136, 141, 132, 148, 140, 155, 136, 149, 156, 141, 151, 134, 140, 149, 146, 139, 151, 144, 147, 150, 147, 143, 144, 141, 136, 139, 158, 144, 144, 192, 141, 148, 143, 145, 146, 119, 148, 139, 145, 145, 149, 138, 149, 136, 147, 144, 154, 149, 164, 155, 145, 153, 144, 144, 150, 146, 150, 145, 141, 148, 143, 139, 149, 141, 140, 140, 147, 145, 142, 143, 143, 140, 143, 141, 134, 214, 139, 134, 145, 146, 159, 139, 146, 142, 134, 142, 143, 147, 139, 148, 142, 154, 144, 144, 145, 146, 146, 163, 148, 136, 131, 142, 111, 130, 131, 145, 124, 150, 145, 145, 145, 145, 149, 146, 142, 125, 141, 146, 147, 156, 144, 144, 149, 151, 144, 150, 151, 143, 150, 144, 148, 159, 139, 149, 152, 145, 140, 146, 145, 149, 136, 150, 169, 147, 151, 147, 141, 147, 145, 141, 136, 127, 144, 141, 137, 145, 148, 148, 163, 141, 145, 147, 158, 133, 148, 145, 118, 139, 146, 140, 150, 120, 154, 154, 148, 145, 97, 150, 164, 149, 140, 149, 163, 151, 150, 151, 140, 140, 151, 145, 149, 141, 158, 146, 139, 148, 140, 137, 146, 160, 146, 132, 143, 163, 148, 120, 140, 126, 137, 146, 146, 144, 151, 188, 146, 154, 146, 141, 156, 150, 159, 146, 149, 138, 142, 141, 142, 132, 158, 141, 216, 142, 146, 141, 136, 151, 147, 154, 161, 150, 147, 138, 142, 117, 141, 151, 148, 140, 142, 155, 144, 138, 153, 140, 144, 96, 155, 151, 147, 147, 145, 147, 150, 146, 148, 141, 147, 146, 146, 147, 132, 149, 143, 143, 154, 136, 162, 133, 148, 159, 141, 146, 142, 130, 153, 138, 143, 143, 146, 143, 156, 156, 145, 145, 142, 142, 147, 156, 144, 155, 152, 142, 148, 150, 145, 148, 146, 148, 146, 150, 146, 150, 147, 146, 146, 138, 139, 143, 144, 138, 142, 139, 110, 154, 149, 137, 144, 151, 143, 143, 140, 124, 140, 146, 145, 150, 129, 139, 155, 148, 142, 147, 129, 153, 145, 140, 139, 149, 132, 151, 144, 145, 145, 148, 150, 142, 147, 142, 144, 146, 146, 136, 149, 145, 144, 134, 152, 146, 145, 144, 145, 149, 156, 151, 140, 152, 142, 141, 150, 142, 147, 147, 143, 153, 167, 146, 150, 143, 146, 147, 145, 151, 149, 145, 142, 136, 150, 144, 151, 142, 145, 140, 142, 148, 142, 130, 150, 144, 149, 151, 144, 144, 142, 153, 149, 149, 152, 143, 145, 144, 153, 146, 146, 138, 152, 151, 145, 148, 149, 150, 147, 148, 146, 145, 154, 150, 145, 147, 145, 142, 142, 150, 149, 149, 150, 141, 128, 147, 149, 144, 149, 149, 143, 148, 139, 139, 142, 129, 154, 147, 147, 145, 145, 144, 149, 148, 151, 141, 149, 148, 148, 143, 150, 145, 146, 148, 142, 148, 146, 148, 147, 145, 149, 148, 144, 146, 149, 140, 142, 144, 150, 146, 148, 146, 146, 163, 151, 150, 149, 147, 143, 149, 145, 141, 142, 146, 150, 143, 145, 148, 153, 148, 136, 149, 145, 145, 155, 143, 149, 153, 147, 147, 144, 145, 148, 146, 151, 146, 150, 145, 137, 149, 147, 148, 148, 152, 143, 142, 148, 140, 128, 142, 149, 142, 144, 136, 153, 147, 137, 153, 154, 146, 152, 144, 160, 145, 141, 147, 149, 153, 146, 145, 145, 148, 146, 149, 145, 147, 143, 165, 140, 142, 131, 142, 151, 149, 154, 146, 147, 146, 151, 146, 138, 145, 140, 144, 143, 147, 145, 136, 147, 145, 147, 142, 147, 149, 161, 150, 148, 151, 147, 146, 142, 146, 140, 137, 151, 148, 145, 152, 147, 147, 131, 145, 148, 135, 99, 147, 159, 148, 148, 133, 144, 152, 145, 149, 151, 140, 146, 140, 147, 145, 148, 149, 153, 151, 136, 142, 151, 139, 148, 154, 148, 144, 155, 150, 158, 152, 143, 140, 137, 145, 151, 137, 130, 142, 150, 153, 147, 151, 136, 147, 148, 182, 149, 140, 143, 143, 153, 142, 138, 148, 148, 152, 141, 136, 141, 149, 111, 146, 145, 143, 146, 131, 145, 146, 158, 145, 162, 146, 139, 146, 142, 180, 143, 141, 143, 148, 145, 156, 144, 144, 151, 144, 138, 139, 141, 145, 149, 144, 147, 157, 145, 144, 141, 157, 148, 141, 155, 145, 159, 146, 143, 150, 147, 139, 147, 148, 148, 144, 146, 145, 149, 146, 143, 145, 146, 144, 146, 148, 145, 148, 157, 146, 156, 148, 108, 144, 142, 140, 137, 142, 146, 143, 142, 154, 147, 144, 145, 132, 135, 144, 143, 147, 145, 147, 139, 139, 144, 145, 140, 152, 149, 158, 143, 149, 142, 153, 146, 148, 132, 136, 151, 148, 140, 149, 137, 137, 152, 142, 158, 146, 148, 136, 135, 143, 148, 165, 164, 142, 152, 144, 150, 134, 141, 148, 153, 144, 143, 151, 149, 141, 152, 157, 145, 150, 154, 157, 144, 148, 148, 155, 147, 144, 139, 140, 147, 144, 144, 148, 155, 148, 141, 145, 145, 146, 151, 143, 158, 151, 139, 151, 145, 148, 141, 149, 148, 146, 150, 147, 146, 150, 142, 145, 147, 144, 152, 139, 151, 145, 146, 153, 137, 144, 143, 147, 137, 129, 143, 146, 140, 141, 148, 157, 145, 149, 147, 151, 189, 151, 149, 126, 142, 139, 135, 146, 147, 151, 144, 147, 145, 140, 143, 138, 145, 142, 135, 146, 146, 151, 143, 152, 145, 134, 148, 140, 144, 142, 146, 147, 144, 145, 148, 146, 144, 131, 152, 144, 140, 146, 137, 151, 167, 147, 151, 145, 144, 141, 144, 147, 141, 144, 139, 155, 148, 143, 147, 137, 140, 143, 142, 150, 151, 147, 144, 152, 147, 140, 144, 143, 141, 144, 149, 160, 146, 147, 145, 141, 144, 147, 149, 146, 152, 148, 150, 146, 146, 146, 146, 153, 142, 144, 145, 147, 146, 143, 146, 153, 148, 172, 143, 145, 153, 139, 145, 154, 149, 143, 141, 150, 154, 145, 151, 143, 145, 146, 142, 146, 147, 144, 144, 148, 142, 144, 148, 144, 149, 155, 148, 153, 147, 141, 146, 142, 147, 147, 147, 142, 145, 147, 149, 150, 159, 146, 138, 146, 135, 148, 152, 145, 147, 146, 143, 145, 142, 151, 153, 146, 147, 151, 154, 152, 149, 141, 141, 142, 140, 142, 144, 150, 143, 143, 149, 143, 142, 145, 135, 140, 146, 146, 150, 145, 144, 150, 143, 137, 146, 140, 144, 149, 158, 144, 148, 150, 144, 146, 146, 146, 137, 148, 149, 149, 159, 147, 139, 142, 146, 139, 150, 150, 146, 143, 144, 147, 146, 149, 148, 149, 143, 150, 144, 141, 145, 140, 141, 145, 143, 132, 137, 130, 142, 153, 140, 150, 146, 144, 140, 142, 139, 150, 149, 143, 142, 137, 141, 141, 141, 144, 144, 144, 153, 146, 127, 140, 142, 144, 152, 147, 150, 147, 144, 144, 152, 147, 148, 143, 137, 147, 144, 146, 155, 145, 144, 146, 144, 149, 143, 151, 146, 148, 151, 132, 148, 144, 148, 145, 147, 149, 151, 149, 147, 140, 149, 152, 149, 139, 147, 148, 148, 147, 147, 142, 139, 144, 159, 143, 146, 143, 154, 147, 141, 148, 139, 167, 147, 146, 144, 145, 141, 150, 143, 142, 141, 148, 142, 140, 143, 143, 146, 140, 146, 147, 132, 148, 144, 147, 151, 132, 158, 138, 146, 153, 137, 141, 117, 147, 145, 149, 133, 156, 152, 154, 146, 149, 143, 144, 152, 145, 146, 149, 142, 139, 152, 145, 145, 148, 139, 150, 141, 129, 153, 155, 140, 163, 142, 148, 137, 140, 144, 145, 157, 145, 143, 135, 134, 151, 150, 148, 150, 155, 146, 138, 149, 151, 144, 151, 147, 141, 140, 147, 149, 143, 153, 148, 143, 142, 148, 141, 150, 136, 146, 139, 145, 133, 142, 141, 142, 151, 146, 148, 140, 148, 133, 145, 145, 145, 137, 145, 138, 145, 141, 152, 140, 149, 146, 142, 145, 147, 152, 147, 142, 148, 135, 141, 142, 147, 145, 145, 141, 148, 149, 144, 148, 144, 141, 139, 154, 147, 149, 144, 136, 146, 149, 142, 147, 144, 147, 155, 151, 136, 146, 145, 142, 142, 134, 151, 143, 131, 145, 145, 146, 142, 152, 143, 140, 141, 154, 145, 140, 140, 146, 148, 146, 145, 154, 148, 151, 143, 148, 133, 145, 147, 148, 142, 142, 149, 146, 134, 147, 143, 155, 145, 144, 146, 156, 144, 141, 146, 152, 151, 149, 147, 138, 146, 146, 148, 146, 144, 137, 150, 162, 145, 141, 142, 145, 129, 149, 144, 143, 134, 144, 150, 142, 160, 145, 156, 145, 144, 144, 145, 148, 148, 137, 143, 142, 143, 154, 146, 145, 146, 145, 143, 151, 146, 158, 152, 147, 144, 148, 143, 138, 140, 146, 146, 142, 140, 143, 146, 148, 124, 148, 142, 144, 146, 150, 151, 146, 141, 146, 149, 145, 141, 149, 148, 148, 148, 128, 151, 148, 146, 148, 142, 151, 141, 139, 143, 142, 145, 147, 149, 137, 139, 144, 143, 145, 149, 144, 150, 148, 147, 147, 142, 146, 149, 141, 144, 147, 145, 142, 143, 143, 148, 146, 151, 144, 141, 150, 149, 147, 146, 150, 130, 142, 145, 155, 142, 138, 146, 139, 144, 146, 149, 145, 143, 142, 147, 148, 145, 149, 148, 148, 143, 148, 140, 147, 141, 144, 150, 159, 148, 144, 143, 140, 153, 143, 146, 141, 147, 144, 149, 148, 143, 147, 146, 144, 146, 147, 145, 136, 145, 141, 150, 139, 143, 144, 144, 146, 139, 146, 141, 143, 146, 139, 146, 147, 143, 151, 145, 150, 142, 140, 150, 146, 145, 141, 139, 137, 138, 146, 143, 144, 145, 142, 149, 143, 144, 144, 145, 150, 143, 144, 146, 140, 142, 153, 157, 147, 158, 146, 133, 144, 145, 145, 144, 140, 148, 122, 145, 131, 144, 148, 149, 142, 145, 145, 146, 144, 159, 149, 144, 143, 141, 148, 148, 147, 144, 145, 145, 138, 145, 155, 144, 153, 133, 142, 137, 140, 144, 154, 148, 147, 138, 147, 141, 146, 144, 148, 141, 142, 147, 144, 146, 148, 139, 150, 146, 142, 147, 148, 143, 150, 145, 143, 150, 136, 158, 147, 148, 156, 147, 133, 145, 157, 146, 142, 147, 146, 150, 149, 147, 141, 141, 151, 157, 172, 147, 143, 151, 144, 149, 144, 149, 144, 147, 145, 140, 151, 149, 144, 156, 143, 144, 148, 144, 146, 147, 148, 155, 144, 143, 143, 137, 142, 147, 146, 145, 146, 151, 145, 147, 143, 150, 144, 146, 145, 141, 137, 150, 147, 147, 150, 145, 146, 148, 149, 146, 145, 135, 140, 146, 129, 144, 146, 143, 143, 146, 141, 142, 147, 147, 147, 139, 147, 144, 154, 147, 145, 146, 145, 144, 150, 143, 138, 148, 152, 141, 142, 150, 149, 148, 147, 144, 141, 153, 146, 150, 162, 143, 145, 150, 178, 143, 148, 149, 143, 144, 149, 141, 155, 119, 152, 145, 147, 147, 144, 140, 146, 147, 150, 148, 145, 149, 147, 150, 138, 140, 145, 142, 143, 147, 144, 144, 142, 143, 150, 143, 146, 142, 148, 149, 148, 153, 148, 149, 130, 144, 123, 158, 151, 142, 142, 144, 140, 150, 147, 147, 144, 147, 149, 146, 146, 144, 150, 144, 145, 146, 145, 152, 145, 146, 149, 144, 148, 131, 148, 149, 146, 147, 146, 142, 143, 150, 146, 150, 147, 148, 149, 148, 145, 148, 146, 146, 149, 143, 146, 144, 133, 146, 134, 149, 144, 140, 146, 144, 137, 149, 146, 160, 142, 146, 144, 148, 148, 145, 146, 152, 135, 147, 149, 142, 146, 147, 144, 139, 148, 148, 144, 145, 145, 144, 141, 140, 146, 142, 144, 144, 144, 148, 153, 143, 153, 148, 149, 188, 145, 140, 151, 146, 146, 147, 166, 149, 146, 148, 143, 146, 146, 138, 137, 144, 150, 146, 153, 133, 149, 147, 147, 148, 134, 146, 148, 143, 142, 148, 155, 149, 146, 145, 143, 145, 148, 146, 147, 145, 151, 143, 144, 144, 145, 147, 143, 153, 147, 147, 151, 135, 142, 159, 146, 148, 146, 145, 150, 146, 142, 143, 147, 148, 149, 150, 150, 154, 144, 149, 145, 136, 145, 153, 145, 149, 145, 148, 150, 145, 141, 147, 133, 143, 147, 140, 143, 151, 148, 149, 147, 153, 145, 148, 145, 146, 151, 144, 144, 136, 144, 142, 143, 149, 152, 144, 143, 148, 145, 144, 142, 151, 146, 147, 145, 147, 143, 146, 152, 144, 149, 148, 142, 139, 148, 153, 142, 143, 145, 144, 151, 154, 147, 139, 152, 145, 142, 142, 145, 143, 141, 150, 148, 141, 145, 143, 145, 150, 143, 151, 150, 143, 144, 148, 145, 134, 144, 151, 146, 145, 150, 144, 146, 147, 145, 147, 148, 148, 150, 147, 151, 148, 149, 144, 146, 129, 143, 147, 149, 158, 145, 145, 143, 146, 141, 146, 149, 142, 142, 145, 146, 147, 153, 140, 135, 147, 142, 138, 139, 131, 146, 159, 153, 133, 135, 149, 132, 147, 146, 151, 147, 147, 147, 145, 143, 136, 129, 144, 144, 141, 145, 152, 132, 148, 135, 147, 135, 156, 154, 155, 142, 138, 139, 142, 148, 146, 151, 140, 147, 142, 162, 140, 142, 148, 155, 154, 146, 154, 143, 148, 165, 142, 152, 139, 142, 149, 144, 139, 152, 147, 149, 147, 149, 129, 144, 136, 139, 130, 149, 146, 132, 149, 142, 145, 144, 130, 130, 149, 150, 148, 139, 135, 145, 144, 148, 155, 142, 140, 166, 148, 100, 148, 147, 140, 145, 149, 137, 147, 143, 144, 142, 169, 156, 148, 143, 140, 148, 147, 131, 148, 150, 139, 147, 144, 144, 146, 138, 132, 137, 144, 147, 139, 154, 154, 140, 159, 143, 150, 129, 138, 143, 116, 173, 131, 151, 139, 143, 156, 145, 145, 148, 140, 155, 155, 143, 146, 140, 143, 147, 152, 151, 137, 150, 131, 126, 140, 143, 151, 149, 153, 132, 176, 148, 172, 140, 140, 129, 149, 156, 142, 186, 139, 158, 157, 137, 153, 152, 146, 144, 167, 169, 141, 138, 149, 135, 137, 136, 140, 142, 133, 163, 140, 153, 138, 148, 175, 144, 185, 158, 131, 108, 149, 155, 162, 123, 140, 149, 139, 150, 151, 145, 138, 134, 159, 144, 145, 143, 149, 149, 144, 135, 158, 172, 136, 217, 163, 154, 145, 141, 148, 156, 142, 149, 138, 155, 150, 147, 134, 140, 149, 145, 135, 145, 141, 148, 149, 143, 147, 146, 147, 154, 148, 148, 146, 146, 146, 145, 142, 146, 146, 144, 141, 149, 146, 146, 147, 147, 149, 151, 145, 145, 147, 154, 145, 150, 150, 146, 147, 132, 146, 151, 146, 153, 157, 144, 148, 148, 145, 149, 148, 143, 149, 158, 148, 148, 149, 151, 147, 134, 150, 145, 142, 146, 145, 147, 147, 131, 146, 147, 149, 148, 144, 148, 145, 145, 146, 146, 140, 146, 154, 152, 148, 147, 149, 144, 145, 144, 147, 145, 140, 142, 145, 142, 142, 141, 146, 147, 147, 150, 150, 143, 149, 148, 145, 158, 146, 137, 128, 149, 151, 146, 146, 139, 152, 144, 146, 146, 146, 137, 150, 137, 148, 146, 152, 146, 149, 148, 144, 147, 146, 145, 143, 150, 148, 147, 144, 149, 148, 146, 149, 137, 152, 149, 146, 146, 147, 152, 136, 147, 148, 148, 144, 149, 147, 146, 142, 146, 142, 142, 142, 140, 148, 147, 144, 150, 145, 145, 148, 143, 144, 151, 147, 150, 145, 146, 147, 147, 142, 148, 144, 147, 149, 144, 151, 154, 150, 162, 147, 147, 144, 150, 165, 145, 147, 149, 149, 146, 147, 149, 144, 145, 151, 132, 145, 150, 142, 146, 146, 145, 151, 147, 150, 148, 151, 156, 139, 127, 146, 146, 148, 152, 147, 145, 143, 152, 150, 149, 148, 147, 144, 149, 143, 149, 146, 145, 146, 145, 144, 145, 148, 154, 142, 140, 146, 146, 139, 136, 146, 148, 148, 145, 145, 145, 150, 146, 139, 150, 142, 144, 146, 140, 138, 154, 137, 134, 159, 139, 148, 148, 141, 150, 142, 131, 146, 148, 121, 146, 153, 146, 149, 143, 141, 140, 145, 144, 145, 131, 140, 149, 136, 152, 157, 139, 141, 144, 144, 163, 148, 149, 141, 140, 146, 148, 136, 147, 145, 152, 149, 148, 154, 150, 152, 148, 150, 151, 147, 145, 137, 150, 138, 150, 144, 139, 148, 144, 141, 143, 148, 144, 144, 164, 151, 143, 145, 146, 153, 146, 150, 150, 142, 155, 166, 146, 144, 147, 142, 146, 146, 149, 149, 148, 138, 151, 141, 145, 150, 148, 144, 136, 154, 144, 138, 149, 152, 144, 144, 149, 143, 148, 147, 141, 147, 143, 150, 155, 142, 143, 149, 148, 148, 150, 140, 142, 148, 140, 147, 150, 137, 152, 147, 140, 149, 143, 147, 143, 149, 150, 145, 149, 146, 144, 140, 143, 150, 153, 140, 145, 137, 161, 141, 150, 147, 150, 149, 152, 156, 145, 152, 146, 148, 140, 143, 139, 148, 137, 139, 145, 146, 145, 150, 149, 148, 142, 150, 147, 154, 146, 148, 147, 146, 150, 146, 148, 142, 143, 147, 140, 148, 143, 144, 134, 142, 147, 142, 150, 146, 145, 142, 153, 143, 165, 144, 141, 143, 148, 143, 144, 141, 145, 145, 149, 145, 152, 125, 149, 150, 144, 140, 145, 143, 142, 151, 143, 146, 145, 152, 144, 145, 155, 142, 147, 125, 147, 149, 144, 124, 154, 137, 147, 137, 142, 142, 152, 145, 147, 142, 148, 143, 144, 150, 153, 145, 147, 160, 149, 138, 145, 143, 144, 145, 146, 149, 147, 144, 145, 146, 154, 147, 136, 154, 145, 150, 145, 147, 151, 146, 145, 147, 153, 142, 145, 143, 150, 142, 153, 143, 144, 123, 144, 147, 141, 148, 144, 148, 149, 141, 158, 147, 148, 146, 139, 144, 143, 145, 150, 146, 147, 152, 143, 146, 149, 150, 144, 141, 142, 146, 144, 147, 153, 150, 160, 143, 152, 137, 142, 136, 140, 137, 142, 148, 173, 144, 146, 150, 146, 143, 145, 145, 144, 142, 148, 143, 140, 152, 145, 152, 148, 150, 146, 151, 147, 151, 146, 133, 125, 151, 145, 147, 147, 144, 139, 147, 145, 144, 121, 143, 140, 144, 151, 146, 146, 144, 147, 147, 146, 149, 148, 143, 141, 150, 144, 145, 144, 150, 148, 153, 142, 142, 140, 146, 141, 145, 146, 148, 155, 170, 143, 143, 141, 143, 143, 148, 149, 148, 172, 149, 138, 146, 148, 148, 154, 151, 157, 145, 146, 141, 148, 146, 141, 147, 146, 150, 138, 145, 147, 144, 142, 151, 166, 136, 151, 145, 148, 152, 175, 145, 145, 149, 141, 146, 144, 148, 145, 147, 142, 143, 150, 145, 144, 155, 139, 147, 148, 151, 149, 148, 142, 144, 151, 134, 146, 151, 147, 151, 146, 138, 150, 148, 147, 153, 146, 146, 148, 149, 149, 145, 139, 143, 149, 145, 143, 148, 141, 141, 148, 148, 147, 140, 142, 146, 151, 138, 144, 152, 152, 142, 143, 169, 148, 119, 146, 147, 143, 143, 123, 138, 148, 149, 148, 141, 148, 145, 149, 144, 147, 145, 149, 150, 146, 150, 143, 141, 147, 143, 151, 142, 150, 145, 145, 146, 146, 148, 144, 144, 147, 147, 146, 144, 150, 150, 148, 127, 145, 146, 144, 141, 141, 143, 143, 152, 144, 145, 143, 141, 143, 150, 147, 146, 144, 147, 149, 139, 146, 145, 147, 139, 144, 149, 148, 149, 144, 138, 142, 148, 144, 150, 139, 147, 137, 141, 149, 146, 148, 143, 151, 146, 148, 145, 142, 145, 149, 140, 145, 152, 147, 148, 147, 141, 152, 147, 149, 146, 148, 146, 147, 145, 147, 145, 144, 144, 139, 151, 148, 144, 148, 146, 144, 144, 144, 144, 144, 147, 145, 152, 147, 142, 140, 146, 145, 143, 137, 146, 143, 146, 144, 144, 148, 148, 143, 146, 146, 145, 150, 147, 146, 143, 142, 146, 151, 147, 150, 142, 145, 144, 145, 143, 146, 143, 142, 145, 146, 147, 150, 139, 147, 148, 149, 148, 150, 151, 147, 147, 146, 146, 141, 151, 136, 144, 146, 149, 147, 151, 149, 143, 145, 144, 141, 147, 151, 145, 147, 147, 145, 145, 145, 132, 144, 146, 146, 143, 146, 150, 156, 148, 150, 151, 146, 146, 147, 143, 147, 146, 139, 146, 145, 144, 145, 145, 149, 142, 141, 143, 146, 147, 142, 140, 151, 144, 150, 144, 145, 137, 147, 145, 143, 148, 142, 149, 143, 147, 146, 150, 149, 137, 143, 136, 143, 158, 149, 148, 146, 154, 145, 147, 142, 148, 147, 136, 145, 145, 144, 146, 141, 150, 143, 145, 147, 146, 148, 143, 159, 140, 144, 153, 147, 142, 138, 143, 141, 142, 142, 144, 152, 145, 141, 141, 140, 142, 146, 138, 147, 144, 140, 145, 139, 145, 142, 141, 154, 147, 135, 145, 149, 145, 136, 148, 144, 143, 145, 144, 147, 139, 128, 140, 140, 154, 148, 140, 146, 138, 146, 155, 145, 152, 149, 147, 146, 127, 146, 148, 152, 136, 141, 139, 145, 147, 143, 148, 141, 153, 145, 144, 144, 148, 140, 141, 143, 146, 154, 146, 153, 141, 144, 145, 134, 147, 149, 145, 151, 145, 145, 145, 149, 152, 142, 145, 149, 137, 147, 143, 140, 143, 148, 144, 147, 145, 151, 145, 149, 155, 146, 143, 147, 150, 148, 162, 138, 149, 141, 138, 145, 142, 149, 148, 134, 154, 154, 149, 140, 152, 142, 142, 144, 146, 152, 149, 136, 148, 156, 139, 146, 148, 148, 136, 145, 151, 149, 149, 143, 140, 149, 144, 146, 155, 147, 134, 145, 146, 142, 143, 151, 149, 154, 140, 148, 138, 144, 151, 141, 148, 155, 145, 147, 144, 149, 145, 142, 137, 152, 136, 149, 151, 143, 148, 147, 148, 147, 149, 148, 146, 136, 146, 146, 150, 154, 146, 144, 148, 141, 145, 148, 145, 142, 160, 145, 151, 148, 140, 133, 143, 146, 144, 129, 150, 143, 146, 145, 169, 143, 148, 144, 142, 140, 145, 150, 143, 141, 139, 140, 143, 169, 152, 147, 144, 150, 144, 147, 148, 142, 143, 160, 145, 147, 146, 146, 144, 146, 141, 162, 136, 149, 142, 144, 140, 138, 152, 157, 137, 138, 148, 152, 143, 145, 134, 146, 123, 138, 137, 159, 140, 142, 139, 153, 145, 148, 144, 153, 140, 154, 142, 151, 151, 148, 163, 146, 163, 158, 141, 139, 141, 147, 144, 148, 143, 134, 145, 162, 147, 139, 145, 158, 145, 141, 153, 146, 152, 172, 163, 137, 135, 151, 152, 138, 154, 147, 142, 147, 132, 132, 144, 165, 157, 150, 147, 147, 142, 144, 149, 143, 148, 147, 142, 137, 143, 159, 156, 138, 152, 147, 149, 139, 139, 138, 151, 145, 139, 136, 148, 138, 146, 139, 131, 132, 155, 145, 149, 152, 154, 146, 141, 142, 148, 144, 144, 138, 135, 146, 146, 147, 144, 153, 134, 153, 149, 146, 152, 137, 157, 151, 137, 155, 146, 144, 145, 136, 149, 146, 149, 160, 146, 142, 141, 157, 151, 143, 145, 148, 129, 153, 134, 146, 141, 149, 143, 131, 140, 152, 141, 153, 152, 158, 140, 149, 140, 139, 150, 154, 142, 148, 150, 155, 139, 151, 133, 166, 145, 146, 150, 169, 153, 154, 147, 155, 133, 152, 155, 150, 145, 147, 164, 135, 155, 146, 150, 146, 144, 130, 145, 149, 142, 165, 150, 143, 135, 140, 142, 154, 139, 142, 138, 146, 144, 140, 152, 143, 147, 149, 150, 150, 137, 154, 159, 144, 144, 148, 134, 144, 141, 146, 144, 153, 137, 143, 140, 154, 147, 136, 146, 152, 127, 172, 141, 145, 129, 158, 144, 145, 141, 146, 132, 153, 131, 139, 150, 126, 157, 155, 156, 139, 149, 136, 142, 149, 140, 147, 142, 144, 139, 145, 144, 150, 144, 144, 143, 148, 137, 146, 148, 149, 147, 143, 146, 148, 143, 140, 143, 143, 148, 145, 139, 144, 142, 147, 143, 142, 146, 138, 142, 154, 139, 151, 143, 161, 145, 145, 144, 144, 141, 148, 147, 141, 142, 147, 150, 145, 146, 157, 146, 147, 144, 146, 152, 144, 141, 154, 150, 163, 151, 150, 146, 156, 141, 152, 145, 151, 152, 150, 148, 143, 146, 144, 149, 145, 143, 146, 146, 145, 145, 155, 142, 145, 145, 154, 148, 148, 148, 143, 143, 140, 147, 156, 149, 154, 158, 146, 151, 144, 149, 147, 146, 143, 147, 149, 146, 153, 144, 139, 148, 153, 144, 144, 141, 155, 149, 150, 147, 148, 155, 142, 144, 146, 147, 142, 142, 146, 147, 145, 146, 149, 155, 146, 142, 147, 146, 155, 145, 139, 146, 144, 142, 139, 148, 140, 143, 146, 163, 145, 146, 151, 147, 150, 144, 146, 137, 144, 154, 142, 141, 142, 136, 147, 150, 149, 143, 157, 144, 150, 139, 148, 145, 147, 145, 144, 148, 143, 142, 152, 157, 146, 146, 158, 140, 134, 145, 142, 135, 148, 137, 149, 152, 147, 143, 142, 147, 146, 145, 147, 134, 144, 144, 145, 134, 155, 140, 145, 149, 141, 142, 146, 147, 136, 152, 142, 143, 146, 143, 144, 148, 143, 148, 146, 143, 142, 146, 139, 148, 148, 141, 137, 143, 147, 147, 145, 142, 147, 150, 149, 145, 147, 143, 149, 141, 146, 146, 154, 143, 148, 153, 149, 164, 160, 130, 126, 139, 140, 140, 111, 169, 152, 162, 137, 145, 143, 151, 155, 143, 138, 139, 154, 153, 141, 140, 142, 137, 146, 136, 145, 138, 146, 142, 136, 158, 144, 148, 133, 180, 155, 209, 145, 148, 148, 146, 170, 151, 176, 151, 140, 136, 160, 127, 157, 133, 140, 144, 145, 141, 145, 136, 153, 140, 153, 134, 144, 141, 143, 162, 161, 143, 149, 143, 150, 145, 189, 129, 155, 128, 145, 137, 149, 144, 126, 154, 157, 149, 159, 140, 151, 142, 150, 137, 152, 140, 147, 144, 148, 147, 155, 155, 142, 148, 143, 159, 137, 152, 151, 136, 156, 133, 144, 121, 144, 147, 145, 150, 129, 148, 138, 136, 135, 144, 136, 153, 140, 117, 160, 144, 144, 151, 157, 136, 140, 143, 146, 177, 118, 140, 135, 153, 164, 155, 134, 185, 148, 140, 135, 142, 150, 149, 141, 154, 137, 137, 133, 145, 152, 150, 144, 151, 161, 139, 137, 136, 154, 178, 216, 139, 147, 148, 141, 140, 158, 147, 145, 115, 138, 157, 149, 138, 144, 133, 153, 131, 136, 143, 145, 150, 163, 153, 133, 129, 130, 155, 147, 150, 136, 161, 141, 155, 172, 142, 156, 149, 152, 138, 147, 152, 146, 153, 134, 144, 141, 136, 148, 146, 131, 154, 152, 163, 144, 150, 154, 110, 147, 138, 123, 142, 124, 151, 152, 221, 144, 130, 140, 151, 135, 136, 157, 141, 144, 146, 134, 151, 148, 152, 135, 164, 150, 130, 146, 153, 128, 137, 140, 136, 136, 169, 153, 150, 140, 156, 149, 151, 144, 142, 142, 153, 144, 154, 145, 145, 141, 142, 145, 150, 141, 131, 155, 141, 145, 139, 144, 139, 143, 139, 143, 145, 150, 147, 143, 145, 146, 153, 140, 143, 137, 147, 142, 149, 141, 150, 145, 144, 151, 145, 147, 141, 147, 146, 139, 141, 156, 147, 141, 143, 147, 149, 147, 152, 162, 136, 148, 138, 135, 139, 147, 149, 144, 147, 147, 142, 151, 142, 144, 134, 146, 145, 145, 151, 150, 153, 147, 149, 171, 148, 153, 141, 148, 148, 139, 152, 164, 138, 149, 144, 140, 149, 150, 142, 140, 144, 151, 147, 153, 141, 146, 149, 146, 148, 151, 148, 146, 137, 150, 153, 134, 142, 137, 141, 143, 144, 147, 149, 140, 147, 141, 137, 145, 147, 146, 140, 145, 139, 147, 153, 148, 137, 138, 152, 148, 148, 153, 146, 149, 151, 148, 151, 153, 139, 144, 147, 142, 140, 143, 143, 152, 115, 143, 148, 148, 152, 150, 136, 136, 145, 154, 148, 140, 147, 141, 149, 146, 142, 142, 143, 141, 160, 143, 136, 143, 146, 143, 144, 142, 151, 156, 141, 115, 136, 142, 150, 149, 147, 144, 143, 144, 153, 147, 153, 142, 150, 142, 142, 156, 146, 144, 146, 143, 152, 144, 131, 148, 154, 148, 147, 139, 144, 146, 153, 143, 145, 149, 146, 146, 144, 144, 154, 147, 138, 143, 150, 156, 159, 143, 156, 143, 145, 144, 203, 137, 145, 143, 138, 148, 146, 154, 145, 145, 143, 148, 138, 143, 149, 151, 146, 151, 141, 139, 144, 157, 144, 149, 151, 154, 131, 146, 141, 146, 150, 151, 148, 147, 141, 144, 142, 163, 148, 146, 129, 138, 143, 146, 133, 150, 146, 145, 148, 145, 144, 149, 136, 140, 145, 140, 142, 141, 128, 146, 149, 148, 141, 142, 151, 150, 149, 145, 152, 147, 147, 148, 145, 144, 145, 129, 146, 151, 144, 118, 150, 152, 139, 152, 144, 140, 147, 149, 139, 144, 152, 144, 147, 141, 145, 144, 144, 149, 141, 145, 168, 150, 146, 146, 144, 142, 145, 142, 149, 153, 142, 150, 167, 151, 144, 151, 146, 143, 153, 146, 146, 144, 143, 149, 150, 147, 149, 147, 146, 146, 144, 146, 149, 147, 145, 140, 127, 143, 154, 144, 147, 140, 146, 143, 142, 144, 148, 143, 150, 150, 152, 142, 136, 149, 146, 140, 143, 142, 145, 144, 144, 143, 145, 152, 150, 153, 139, 153, 151, 145, 146, 145, 142, 153, 142, 156, 154, 138, 147, 124, 149, 148, 146, 145, 152, 144, 156, 148, 138, 146, 138, 162, 145, 149, 144, 153, 149, 141, 147, 100, 167, 140, 140, 141, 139, 147, 154, 144, 141, 143, 146, 133, 146, 143, 140, 139, 145, 152, 150, 141, 144, 146, 145, 144, 127, 153, 147, 144, 143, 147, 150, 148, 142, 143, 142, 142, 144, 171, 124, 144, 144, 142, 141, 147, 143, 149, 145, 146, 141, 144, 148, 148, 150, 144, 149, 145, 150, 144, 148, 139, 143, 139, 143, 146, 146, 151, 140, 147, 150, 164, 149, 144, 144, 150, 148, 146, 139, 181, 151, 157, 143, 144, 144, 155, 156, 145, 148, 142, 152, 144, 144, 148, 142, 147, 142, 148, 144, 155, 142, 141, 140, 146, 144, 146, 145, 146, 146, 142, 146, 143, 143, 140, 148, 172, 149, 141, 141, 146, 138, 148, 148, 146, 143, 145, 151, 150, 152, 140, 154, 144, 151, 150, 147, 140, 147, 149, 144, 135, 144, 141, 139, 147, 147, 151, 141, 146, 142, 158, 154, 151, 145, 145, 153, 146, 144, 146, 144, 144, 140, 147, 147, 142, 141, 149, 143, 148, 143, 148, 149, 148, 146, 148, 143, 145, 145, 147, 152, 152, 139, 120, 143, 144, 146, 140, 145, 160, 147, 142, 148, 139, 146, 142, 150, 156, 134, 145, 146, 151, 163, 144, 150, 143, 139, 144, 143, 135, 144, 147, 147, 151, 145, 145, 145, 146, 147, 149, 143, 147, 149, 148, 151, 143, 141, 146, 129, 146, 145, 168, 139, 137, 144, 148, 148, 144, 141, 140, 154, 143, 147, 148, 146, 152, 145, 141, 137, 142, 136, 147, 146, 147, 144, 155, 143, 153, 145, 147, 141, 143, 143, 142, 148, 142, 146, 146, 148, 151, 148, 157, 149, 147, 149, 143, 139, 150, 147, 143, 144, 147, 146, 140, 141, 140, 144, 148, 147, 141, 140, 146, 145, 144, 146, 148, 143, 146, 148, 144, 149, 136, 146, 137, 141, 148, 144, 153, 145, 138, 147, 144, 146, 151, 146, 148, 140, 147, 146, 148, 146, 181, 142, 145, 158, 148, 138, 149, 145, 153, 141, 141, 149, 146, 148, 145, 146, 147, 145, 152, 150, 144, 146, 143, 148, 146, 142, 147, 148, 149, 145, 148, 140, 149, 146, 143, 149, 145, 146, 141, 143, 145, 152, 144, 146, 148, 153, 145, 143, 142, 148, 147, 152, 142, 142, 144, 145, 141, 147, 140, 144, 156, 151, 146, 150, 147, 150, 145, 148, 150, 147, 154, 147, 142, 147, 145, 143, 139, 145, 148, 149, 160, 138, 148, 145, 147, 144, 145, 145, 138, 139, 143, 158, 146, 143, 149, 142, 147, 142, 147, 142, 144, 142, 145, 149, 144, 144, 153, 150, 145, 174, 144, 149, 140, 144, 135, 146, 145, 146, 149, 142, 137, 144, 143, 148, 150, 142, 148, 142, 142, 150, 143, 150, 141, 148, 149, 145, 132, 143, 146, 147, 147, 149, 147, 138, 145, 147, 142, 147, 151, 150, 139, 152, 145, 143, 152, 142, 146, 150, 147, 151, 148, 146, 148, 143, 142, 158, 149, 150, 146, 149, 146, 143, 147, 150, 151, 145, 141, 151, 148, 139, 143, 146, 144, 145, 148, 149, 149, 151, 155, 151, 147, 147, 143, 106, 142, 137, 143, 146, 148, 153, 146, 144, 149, 134, 147, 150, 145, 147, 144, 148, 151, 148, 148, 139, 147, 145, 140, 182, 138, 146, 146, 145, 146, 146, 147, 147, 145, 147, 146, 154, 144, 140, 150, 148, 145, 147, 151, 141, 145, 144, 159, 147, 148, 146, 155, 141, 148, 160, 140, 138, 143, 138, 145, 150, 134, 145, 143, 145, 146, 142, 151, 149, 141, 138, 160, 144, 139, 140, 143, 146, 138, 136, 150, 136, 153, 146, 158, 149, 153, 157, 145, 142, 140, 148, 151, 148, 147, 146, 150, 152, 164, 137, 135, 157, 159, 143, 156, 157, 142, 145, 160, 189, 148, 155, 154, 140, 134, 142, 161, 147, 130, 144, 146, 132, 138, 158, 149, 139, 146, 164, 154, 152, 149, 143, 135, 145, 160, 150, 146, 137, 146, 145, 149, 146, 153, 138, 147, 160, 141, 155, 132, 147, 148, 141, 133, 156, 150, 150, 157, 144, 149, 133, 161, 142, 154, 152, 149, 143, 140, 148, 144, 146, 170, 145, 209, 144, 138, 151, 148, 149, 154, 135, 158, 143, 136, 127, 153, 146, 147, 132, 147, 140, 139, 146, 141, 156, 144, 146, 153, 146, 141, 149, 143, 135, 156, 141, 143, 111, 166, 146, 154, 138, 159, 155, 132, 135, 143, 141, 142, 148, 131, 144, 146, 141, 148, 149, 157, 150, 145, 137, 131, 143, 136, 141, 155, 138, 144, 169, 124, 140, 142, 141, 141, 143, 137, 119, 142, 153, 149, 145, 143, 156, 138, 124, 136, 133, 149, 156, 108, 142, 142, 150, 161, 134, 146, 138, 136, 144, 150, 157, 136, 170, 157, 144, 147, 132, 151, 140, 169, 147, 144, 130, 140, 160, 179, 137, 153, 151, 171, 144, 143, 163, 110, 140, 148, 144, 139, 139, 148, 154, 140, 134, 137, 142, 130, 146, 145, 149, 145, 133, 134, 135, 137, 145, 134, 153, 140, 152, 142, 150, 150, 127, 141, 154, 147, 152, 151, 143, 152, 146, 142, 150, 146, 138, 149, 147, 141, 149, 150, 150, 146, 144, 142, 142, 143, 147, 145, 142, 145, 145, 145, 143, 152, 142, 145, 141, 140, 142, 146, 138, 147, 150, 142, 145, 149, 150, 141, 139, 147, 148, 143, 144, 141, 139, 147, 148, 151, 143, 142, 131, 138, 138, 151, 143, 144, 139, 145, 147, 140, 141, 147, 140, 133, 143, 153, 142, 154, 140, 151, 153, 147, 155, 142, 149, 149, 151, 138, 155, 142, 145, 149, 142, 141, 143, 149, 148, 145, 141, 147, 157, 146, 139, 148, 145, 142, 149, 154, 147, 150, 154, 151, 145, 144, 143, 140, 155, 139, 145, 146, 150, 146, 142, 147, 151, 149, 136, 139, 144, 146, 146, 142, 145, 148, 150, 144, 139, 140, 152, 151, 148, 139, 140, 143, 137, 151, 137, 143, 148, 142, 142, 141, 147, 145, 149, 148, 144, 149, 161, 142, 151, 146, 149, 144, 157, 154, 148, 148, 145, 138, 151, 150, 142, 143, 142, 146, 153, 158, 147, 152, 151, 140, 138, 149, 147, 155, 145, 140, 147, 140, 140, 137, 148, 155, 138, 148, 142, 135, 151, 148, 147, 146, 152, 145, 150, 151, 145, 156, 152, 142, 145, 149, 145, 140, 150, 148, 144, 143, 160, 153, 142, 159, 147, 147, 138, 149, 149, 155, 138, 152, 145, 144, 145, 152, 144, 150, 151, 142, 156, 141, 149, 140, 144, 145, 151, 142, 147, 153, 149, 145, 152, 133, 136, 142, 146, 148, 153, 144, 144, 157, 145, 146, 141, 144, 141, 155, 140, 134, 150, 131, 165, 181, 148, 124, 134, 155, 139, 151, 147, 142, 146, 159, 175, 143, 154, 138, 142, 148, 147, 152, 128, 149, 148, 150, 140, 146, 150, 165, 149, 146, 135, 134, 153, 145, 146, 143, 122, 144, 168, 185, 160, 140, 142, 132, 146, 142, 151, 151, 146, 142, 177, 149, 151, 146, 145, 148, 139, 141, 150, 165, 159, 148, 147, 138, 148, 131, 147, 145, 123, 149, 147, 142, 133, 146, 140, 149, 154, 143, 150, 184, 147, 188, 147, 144, 143, 148, 159, 150, 136, 148, 152, 165, 148, 130, 148, 146, 138, 136, 146, 143, 157, 144, 147, 144, 148, 166, 148, 143, 129, 149, 143, 145, 119, 146, 145, 151, 150, 140, 148, 149, 142, 145, 143, 152, 148, 151, 117, 153, 141, 149, 139, 154, 129, 132, 144, 177, 136, 138, 145, 135, 138, 147, 139, 157, 138, 144, 137, 145, 142, 151, 135, 144, 152, 140, 141, 141, 151, 153, 146, 160, 149, 143, 154, 147, 145, 129, 141, 139, 147, 134, 154, 112, 148, 151, 162, 146, 128, 145, 143, 128, 145, 156, 137, 148, 146, 148, 147, 141, 147, 149, 150, 146, 135, 149, 137, 145, 144, 145, 136, 139, 130, 145, 142, 148, 142, 151, 143, 148, 152, 156, 138, 145, 151, 144, 127, 147, 144, 137, 147, 142, 153, 148, 147, 137, 156, 145, 143, 110, 171, 148, 137, 139, 141, 144, 155, 145, 143, 137, 144, 129, 145, 143, 139, 149, 178, 151, 135, 149, 158, 141, 168, 166, 151, 138, 135, 152, 147, 149, 163, 147, 144, 149, 153, 135, 149, 143, 141, 142, 146, 157, 143, 147, 154, 146, 140, 144, 142, 140, 147, 148, 138, 148, 152, 141, 142, 141, 138, 157, 141, 136, 144, 135, 145, 116, 153, 156, 146, 146, 141, 145, 145, 153, 151, 139, 142, 146, 143, 143, 147, 140, 145, 150, 153, 142, 147, 143, 140, 124, 144, 142, 142, 144, 143, 138, 141, 148, 145, 141, 142, 150, 147, 142, 143, 143, 140, 141, 146, 150, 148, 143, 147, 139, 147, 138, 146, 144, 140, 147, 156, 140, 139, 140, 136, 148, 133, 138, 143, 139, 135, 132, 157, 155, 155, 142, 142, 138, 140, 149, 143, 147, 150, 144, 165, 147, 142, 137, 140, 146, 138, 141, 142, 143, 148, 143, 152, 144, 153, 143, 147, 145, 138, 146, 153, 144, 143, 135, 146, 155, 147, 149, 146, 159, 149, 146, 160, 141, 150, 158, 148, 148, 143, 140, 146, 148, 161, 142, 148, 147, 144, 141, 172, 155, 148, 143, 139, 135, 143, 143, 149, 146, 144, 148, 146, 142, 148, 137, 150, 152, 138, 143, 150, 142, 141, 155, 148, 155, 167, 140, 157, 141, 150, 141, 155, 150, 142, 147, 139, 138, 154, 147, 134, 144, 158, 136, 140, 148, 140, 154, 153, 140, 161, 157, 146, 138, 151, 147, 169, 145, 139, 146, 152, 146, 145, 148, 136, 151, 137, 146, 150, 149, 143, 142, 149, 145, 166, 141, 144, 149, 139, 146, 149, 143, 137, 138, 151, 147, 149, 140, 143, 146, 140, 139, 144, 147, 142, 142, 148, 148, 137, 157, 150, 149, 143, 142, 148, 144, 133, 135, 144, 125, 139, 133, 150, 149, 135, 143, 143, 142, 154, 149, 151, 152, 146, 140, 128, 145, 163, 146, 142, 139, 149, 150, 153, 146, 161, 140, 151, 153, 144, 152, 152, 145, 142, 142, 145, 159, 153, 151, 148, 148, 150, 168, 148, 153, 128, 147, 137, 151, 176, 147, 147, 145, 147, 143, 145, 144, 146, 140, 140, 129, 152, 144, 150, 143, 218, 143, 150, 156, 144, 157, 134, 151, 146, 147, 161, 149, 139, 143, 153, 145, 153, 150, 151, 151, 149, 150, 151, 143, 143, 148, 147, 144, 145, 146, 152, 149, 139, 148, 158, 140, 130, 141, 140, 155, 148, 149, 170, 147, 145, 143, 145, 130, 148, 147, 145, 151, 150, 144, 140, 141, 153, 158, 156, 139, 147, 150, 147, 167, 142, 147, 151, 156, 142, 133, 149, 140, 148, 151, 145, 142, 151, 144, 135, 145, 172, 137, 149, 149, 152, 155, 146, 155, 140, 148, 147, 155, 151, 147, 146, 141, 139, 147, 138, 146, 154, 143, 143, 148, 154, 146, 158, 131, 158, 153, 155, 146, 147, 141, 143, 130, 149, 149, 153, 140, 156, 143, 150, 150, 155, 138, 150, 136, 149, 141, 136, 145, 140, 141, 145, 146, 218, 145, 151, 149, 150, 150, 146, 145, 151, 148, 143, 155, 143, 153, 145, 161, 150, 140, 148, 151, 144, 149, 148, 129, 148, 141, 135, 149, 150, 140, 146, 141, 146, 143, 140, 143, 147, 137, 148, 143, 143, 143, 147, 150, 143, 148, 142, 139, 137, 144, 145, 141, 144, 145, 147, 139, 148, 148, 146, 137, 145, 145, 151, 144, 149, 145, 156, 142, 152, 146, 146, 144, 149, 150, 142, 152, 142, 144, 144, 136, 144, 139, 147, 147, 133, 140, 150, 148, 152, 143, 137, 147, 153, 141, 142, 141, 137, 153, 131, 147, 151, 148, 142, 152, 139, 128, 152, 141, 146, 142, 150, 134, 149, 148, 148, 144, 144, 149, 144, 153, 146, 147, 145, 146, 156, 146, 148, 139, 150, 148, 144, 153, 146, 153, 147, 142, 147, 153, 150, 142, 149, 144, 145, 147, 148, 137, 142, 147, 148, 148, 140, 144, 138, 139, 147, 144, 148, 147, 144, 153, 148, 141, 149, 147, 139, 143, 140, 145, 149, 149, 145, 159, 145, 152, 149, 146, 149, 143, 150, 146, 144, 147, 147, 143, 146, 150, 137, 144, 145, 145, 140, 144, 144, 139, 142, 145, 142, 150, 143, 139, 149, 140, 142, 136, 141, 149, 144, 150, 150, 151, 147, 140, 136, 138, 137, 149, 148, 161, 139, 143, 143, 140, 146, 152, 144, 143, 142, 139, 147, 150, 149, 148, 150, 135, 150, 146, 141, 149, 157, 142, 144, 146, 148, 147, 148, 148, 141, 148, 145, 141, 142, 162, 153, 145, 145, 150, 144, 149, 145, 146, 161, 147, 151, 135, 141, 147, 144, 145, 141, 148, 144, 143, 147, 149, 150, 148, 148, 156, 143, 149, 142, 149, 135, 146, 148, 141, 150, 148, 138, 156, 147, 153, 140, 152, 146, 144, 147, 154, 133, 144, 150, 148, 146, 146, 138, 153, 144, 141, 147, 148, 143, 147, 158, 159, 145, 146, 147, 152, 143, 152, 153, 147, 149, 145, 148, 145, 152, 148, 147, 149, 154, 138, 149, 144, 147, 148, 153, 147, 152, 148, 154, 143, 144, 150, 154, 143, 143, 146, 138, 149, 143, 156, 143, 145, 146, 136, 145, 143, 148, 146, 145, 145, 149, 151, 156, 150, 147, 155, 157, 148, 149, 152, 148, 151, 153, 137, 148, 138, 150, 146, 146, 146, 147, 153, 153, 149, 146, 142, 136, 149, 144, 149, 151, 157, 150, 146, 144, 145, 152, 142, 142, 145, 140, 152, 142, 151, 144, 151, 144, 145, 149, 155, 159, 137, 148, 145, 154, 142, 153, 146, 148, 139, 148, 139, 150, 144, 151, 148, 140, 143, 153, 160, 143, 138, 146, 144, 147, 146, 152, 143, 147, 147, 161, 158, 151, 153, 143, 145, 140, 146, 150, 145, 146, 138, 154, 144, 143, 148, 156, 144, 150, 148, 148, 142, 139, 141, 142, 145, 147, 146, 148, 145, 151, 145, 144, 146, 152, 150, 141, 150, 162, 153, 142, 138, 147, 130, 134, 153, 132, 146, 151, 148, 145, 143, 148, 140, 148, 148, 140, 149, 132, 150, 142, 156, 146, 143, 146, 146, 140, 144, 147, 146, 149, 149, 146, 148, 147, 144, 147, 150, 147, 145, 155, 150, 152, 148, 136, 146, 149, 148, 149, 146, 144, 145, 160, 149, 152, 143, 140, 144, 147, 151, 151, 151, 145, 148, 149, 134, 155, 147, 143, 154, 147, 146, 139, 128, 143, 133, 135, 135, 146, 143, 141, 145, 160, 150, 143, 161, 151, 133, 138, 133, 142, 139, 164, 147, 156, 144, 141, 144, 149, 151, 152, 144, 164, 146, 161, 149, 137, 135, 133, 155, 153, 154, 152, 153, 122, 149, 136, 146, 122, 148, 138, 152, 138, 151, 142, 141, 141, 143, 113, 142, 148, 147, 135, 143, 153, 119, 123, 133, 141, 202, 134, 152, 157, 144, 138, 159, 154, 127, 162, 148, 148, 147, 143, 149, 132, 137, 136, 150, 140, 138, 151, 146, 144, 160, 142, 146, 145, 127, 157, 145, 150, 142, 141, 146, 145, 136, 138, 141, 144, 115, 135, 140, 147, 133, 150, 153, 160, 138, 170, 146, 144, 157, 155, 146, 132, 140, 124, 151, 149, 156, 144, 132, 140, 168, 170, 141, 163, 153, 148, 145, 144, 141, 140, 152, 196, 126, 157, 142, 143, 128, 140, 151, 150, 140, 138, 144, 147, 138, 147, 142, 135, 194, 131, 133, 145, 137, 146, 139, 153, 149, 136, 133, 161, 135, 131, 132, 143, 146, 151, 150, 138, 161, 135, 150, 153, 130, 152, 148, 141, 148, 134, 151, 156, 143, 147, 150, 145, 140, 130, 142, 141, 162, 153, 140, 146, 152, 151, 122, 147, 136, 151, 135, 151, 144, 156, 131, 138, 140, 139, 142, 140, 141, 168, 147, 145, 147, 181, 136, 127, 148, 137, 149, 147, 169, 144, 158, 153, 158, 151, 142, 140, 144, 148, 134, 133, 141, 157, 148, 137, 141, 145, 126, 144, 137, 143, 158, 149, 155, 167, 143, 148, 156, 147, 154, 149, 152, 135, 148, 153, 146, 142, 143, 142, 145, 147, 127, 152, 141, 154, 141, 147, 172, 154, 140, 147, 137, 155, 136, 146, 143, 138, 147, 163, 189, 148, 136, 149, 143, 138, 139, 153, 140, 163, 138, 179, 142, 143, 144, 159, 142, 127, 137, 140, 146, 138, 149, 149, 149, 141, 163, 143, 154, 138, 145, 150, 147, 150, 154, 142, 150, 139, 152, 149, 140, 141, 129, 147, 151, 139, 144, 137, 152, 144, 145, 160, 130, 150, 151, 148, 150, 136, 138, 148, 150, 143, 150, 148, 148, 140, 141, 143, 159, 149, 148, 142, 142, 129, 158, 142, 134, 149, 145, 147, 147, 149, 151, 134, 146, 146, 145, 118, 150, 144, 149, 147, 143, 147, 141, 144, 157, 147, 144, 152, 145, 145, 144, 142, 142, 149, 151, 151, 145, 145, 143, 144, 150, 165, 149, 141, 147, 150, 141, 146, 123, 146, 149, 149, 133, 146, 147, 143, 140, 146, 151, 149, 137, 146, 150, 163, 149, 143, 140, 147, 136, 137, 136, 138, 139, 144, 146, 148, 146, 159, 148, 147, 154, 141, 152, 139, 140, 154, 145, 149, 151, 141, 141, 150, 143, 155, 161, 140, 140, 145, 164, 142, 143, 143, 145, 156, 151, 144, 143, 143, 154, 148, 144, 149, 170, 152, 153, 145, 113, 157, 139, 155, 147, 136, 145, 150, 144, 147, 138, 151, 144, 147, 149, 145, 152, 138, 119, 127, 151, 158, 160, 150, 152, 145, 132, 147, 145, 139, 144, 147, 156, 154, 138, 151, 147, 144, 171, 136, 141, 135, 146, 141, 144, 130, 145, 139, 144, 145, 147, 145, 149, 136, 143, 145, 155, 156, 143, 140, 144, 149, 148, 145, 148, 136, 143, 158, 152, 148, 146, 142, 142, 142, 146, 132, 146, 157, 147, 144, 147, 148, 142, 137, 150, 134, 146, 137, 154, 149, 145, 147, 153, 143, 150, 144, 157, 138, 142, 149, 146, 144, 151, 149, 149, 153, 142, 140, 133, 145, 150, 145, 146, 150, 147, 140, 142, 148, 142, 161, 140, 146, 148, 144, 150, 138, 145, 146, 142, 137, 145, 161, 147, 147, 141, 146, 152, 144, 144, 146, 151, 134, 159, 144, 142, 146, 138, 149, 148, 131, 146, 148, 149, 146, 138, 131, 143, 145, 142, 147, 150, 150, 143, 147, 144, 147, 143, 146, 146, 147, 146, 137, 151, 152, 149, 138, 152, 150, 147, 144, 139, 148, 149, 147, 126, 145, 162, 150, 158, 148, 145, 156, 136, 145, 141, 150, 138, 151, 146, 151, 141, 147, 145, 144, 148, 146, 145, 149, 146, 144, 144, 141, 147, 126, 142, 148, 141, 143, 147, 148, 146, 147, 145, 145, 141, 148, 148, 143, 136, 133, 145, 149, 147, 144, 148, 143, 140, 150, 150, 145, 145, 141, 151, 148, 148, 147, 147, 146, 144, 139, 148, 121, 141, 145, 153, 144, 142, 154, 142, 147, 143, 150, 146, 153, 148, 152, 118, 143, 136, 145, 146, 148, 141, 144, 129, 141, 147, 147, 152, 136, 147, 141, 142, 148, 132, 155, 153, 143, 137, 130, 131, 146, 147, 144, 155, 150, 156, 141, 150, 147, 142, 125, 139, 142, 146, 147, 143, 145, 143, 141, 156, 151, 174, 151, 157, 145, 148, 146, 142, 139, 137, 136, 149, 141, 123, 144, 126, 146, 149, 153, 145, 149, 146, 143, 147, 153, 144, 143, 142, 80, 146, 134, 143, 143, 156, 148, 149, 147, 140, 147, 150, 146, 147, 131, 147, 146, 149, 146, 149, 144, 144, 156, 147, 147, 141, 147, 127, 143, 143, 151, 138, 140, 144, 147, 143, 155, 144, 145, 153, 138, 142, 145, 139, 147, 146, 142, 153, 152, 143, 151, 145, 138, 172, 142, 143, 150, 148, 144, 146, 150, 150, 137, 139, 143, 147, 143, 145, 155, 145, 144, 146, 147, 138, 147, 153, 140, 148, 149, 141, 146, 159, 143, 143, 157, 150, 152, 142, 140, 159, 141, 144, 143, 140, 152, 142, 146, 149, 146, 141, 147, 132, 153, 156, 149, 183, 146, 141, 146, 139, 146, 149, 144, 145, 146, 152, 141, 148, 142, 142, 171, 144, 150, 142, 150, 143, 147, 151, 153, 142, 143, 144, 143, 149, 148, 148, 144, 144, 153, 141, 145, 144, 151, 141, 148, 156, 149, 138, 146, 146, 144, 144, 150, 145, 148, 143, 149, 146, 143, 147, 172, 145, 151, 145, 148, 138, 143, 143, 150, 125, 142, 151, 150, 154, 154, 144, 148, 151, 146, 144, 148, 156, 151, 155, 145, 150, 146, 146, 146, 141, 145, 155, 140, 142, 143, 144, 149, 147, 143, 144, 179, 169, 173, 147, 118, 143, 147, 140, 153, 151, 147, 147, 153, 140, 141, 137, 137, 148, 143, 147, 155, 145, 143, 153, 152, 158, 137, 142, 148, 148, 142, 143, 150, 138, 148, 134, 151, 161, 150, 153, 151, 148, 148, 147, 150, 142, 134, 151, 139, 139, 152, 153, 151, 156, 149, 139, 164, 146, 149, 145, 136, 160, 162, 153, 138, 139, 161, 146, 140, 144, 142, 159, 145, 166, 143, 142, 155, 149, 155, 144, 155, 139, 143, 146, 148, 151, 139, 131, 145, 143, 147, 155, 155, 153, 140, 144, 155, 155, 140, 145, 153, 144, 146, 144, 150, 162, 142, 168, 142, 150, 151, 144, 152, 134, 142, 149, 156, 153, 128, 145, 144, 136, 147, 140, 153, 150, 148, 136, 153, 165, 137, 134, 152, 153, 147, 148, 154, 149, 141, 147, 180, 141, 154, 139, 146, 104, 138, 140, 146, 153, 153, 167, 159, 166, 149, 141, 145, 148, 164, 142, 131, 150, 147, 143, 159, 160, 130, 146, 154, 145, 145, 156, 123, 149, 135, 157, 144, 145, 141, 132, 145, 150, 147, 137, 148, 148, 139, 165, 145, 132, 147, 154, 163, 148, 144, 136, 153, 143, 136, 151, 147, 147, 138, 166, 140, 152, 140, 148, 150, 146, 138, 144, 144, 142, 160, 141, 143, 145, 134, 142, 140, 152, 149, 138, 152, 174, 151, 137, 149, 148, 150, 147, 145, 133, 158, 145, 164, 158, 129, 144, 146, 148, 136, 152, 146, 149, 139, 138, 140, 141, 139, 152, 141, 145, 149, 147, 149, 145, 142, 149, 149, 149, 141, 145, 144, 145, 152, 140, 150, 146, 139, 149, 144, 146, 148, 146, 139, 154, 141, 150, 143, 144, 146, 146, 148, 145, 143, 148, 141, 145, 145, 142, 142, 148, 142, 151, 153, 152, 143, 144, 143, 144, 149, 147, 149, 151, 144, 145, 141, 146, 146, 147, 143, 148, 149, 147, 140, 147, 149, 147, 143, 143, 150, 151, 139, 146, 141, 149, 144, 146, 145, 149, 138, 139, 144, 144, 144, 145, 138, 149, 148, 150, 149, 146, 144, 149, 156, 149, 146, 139, 147, 149, 148, 149, 141, 151, 150, 149, 141, 141, 141, 152, 150, 148, 141, 149, 154, 142, 145, 150, 151, 148, 149, 150, 148, 142, 144, 142, 148, 145, 147, 144, 146, 150, 153, 144, 150, 146, 145, 141, 145, 144, 143, 142, 151, 148, 141, 148, 148, 147, 148, 143, 144, 144, 145, 142, 145, 149, 140, 151, 150, 144, 150, 152, 143, 145, 144, 146, 145, 147, 146, 142, 134, 157, 146, 141, 144, 145, 137, 144, 153, 143, 149, 144, 148, 150, 143, 143, 146, 150, 146, 146, 145, 145, 142, 154, 147, 146, 136, 140, 145, 144, 145, 139, 146, 142, 141, 136, 142, 150, 142, 142, 145, 148, 146, 146, 147, 148, 142, 144, 143, 148, 147, 148, 145, 143, 151, 153, 137, 146, 139, 142, 145, 152, 150, 149, 144, 145, 151, 148, 145, 152, 146, 144, 147, 147, 150, 140, 148, 147, 145, 149, 157, 145, 144, 148, 148, 151, 153, 144, 158, 147, 152, 164, 150, 150, 147, 150, 145, 148, 153, 151, 139, 148, 137, 146, 145, 149, 131, 140, 146, 148, 143, 138, 147, 153, 159, 138, 147, 148, 146, 147, 150, 151, 146, 138, 149, 151, 145, 145, 150, 149, 147, 150, 151, 148, 139, 142, 147, 142, 143, 151, 151, 146, 148, 149, 145, 150, 140, 148, 142, 144, 148, 145, 145, 153, 135, 142, 143, 147, 158, 148, 146, 152, 149, 142, 155, 143, 132, 140, 145, 142, 151, 151, 144, 149, 146, 140, 143, 161, 143, 147, 151, 151, 148, 146, 149, 152, 142, 152, 140, 150, 141, 153, 150, 146, 143, 144, 149, 135, 151, 143, 146, 148, 148, 142, 153, 151, 146, 140, 146, 145, 135, 152, 150, 153, 154, 146, 145, 147, 150, 154, 148, 162, 141, 152, 143, 152, 147, 149, 145, 152, 162, 151, 146, 149, 144, 150, 144, 146, 147, 147, 143, 156, 149, 141, 151, 161, 144, 146, 148, 148, 154, 141, 153, 151, 149, 145, 146, 151, 141, 137, 141, 153, 151, 152, 141, 142, 143, 143, 148, 147, 150, 149, 149, 142, 145, 152, 146, 149, 145, 147, 154, 151, 148, 156, 152, 147, 142, 152, 136, 174, 138, 145, 140, 145, 148, 148, 142, 142, 150, 153, 143, 145, 145, 147, 149, 149, 151, 155, 123, 149, 151, 153, 144, 147, 144, 148, 145, 150, 145, 152, 143, 150, 144, 142, 138, 139, 156, 138, 146, 144, 151, 143, 140, 137, 146, 155, 155, 147, 149, 120, 147, 146, 151, 151, 147, 176, 143, 142, 146, 151, 147, 154, 139, 158, 150, 141, 147, 139, 146, 144, 143, 146, 145, 145, 159, 143, 145, 144, 147, 137, 147, 142, 154, 141, 141, 129, 144, 144, 141, 146, 145, 151, 148, 141, 142, 151, 147, 127, 142, 157, 149, 146, 148, 145, 151, 153, 131, 143, 141, 153, 141, 149, 170, 148, 167, 145, 143, 133, 145, 150, 140, 142, 143, 142, 139, 146, 135, 143, 144, 142, 152, 146, 141, 147, 144, 149, 151, 140, 146, 172, 147, 148, 146, 149, 142, 146, 151, 145, 138, 143, 148, 142, 143, 141, 149, 155, 138, 140, 145, 139, 131, 158, 149, 148, 145, 137, 143, 145, 144, 146, 150, 145, 148, 150, 146, 147, 145, 148, 137, 154, 145, 141, 146, 145, 156, 142, 153, 150, 144, 146, 142, 152, 139, 139, 150, 143, 144, 147, 147, 140, 157, 145, 143, 147, 151, 144, 140, 144, 142, 147, 123, 145, 145, 150, 153, 135, 144, 129, 151, 144, 145, 137, 149, 141, 144, 147, 143, 162, 144, 141, 147, 146, 127, 144, 145, 141, 142, 150, 146, 151, 147, 147, 157, 150, 148, 143, 150, 145, 146, 142, 150, 143, 151, 143, 152, 140, 143, 144, 150, 137, 148, 147, 151, 136, 141, 148, 152, 140, 144, 144, 144, 143, 126, 148, 145, 147, 145, 154, 145, 145, 151, 142, 141, 143, 146, 165, 145, 150, 135, 147, 153, 145, 144, 142, 146, 155, 141, 146, 146, 148, 147, 146, 146, 151, 157, 143, 155, 145, 146, 138, 141, 141, 146, 149, 133, 146, 143, 143, 144, 146, 160, 149, 141, 152, 147, 135, 150, 151, 179, 146, 148, 153, 152, 144, 149, 148, 139, 143, 164, 148, 144, 148, 141, 159, 150, 161, 155, 160, 118, 133, 147, 161, 136, 143, 146, 144, 146, 141, 152, 147, 140, 158, 144, 142, 152, 154, 134, 152, 139, 143, 140, 153, 144, 154, 150, 164, 148, 145, 158, 153, 147, 145, 150, 142, 142, 136, 151, 142, 160, 134, 156, 150, 153, 149, 144, 142, 146, 134, 144, 138, 149, 156, 150, 135, 141, 150, 153, 162, 157, 143, 152, 137, 158, 156, 145, 151, 151, 136, 129, 161, 137, 143, 141, 144, 141, 149, 139, 144, 138, 157, 143, 161, 160, 134, 145, 140, 156, 146, 148, 132, 135, 146, 148, 143, 106, 159, 144, 145, 134, 141, 139, 133, 155, 151, 137, 141, 146, 155, 155, 140, 142, 145, 123, 134, 125, 153, 141, 136, 138, 136, 149, 152, 149, 144, 142, 142, 136, 147, 158, 145, 150, 142, 173, 146, 144, 142, 143, 130, 145, 149, 143, 163, 140, 160, 114, 147, 157, 146, 142, 133, 157, 141, 156, 152, 143, 138, 133, 137, 139, 151, 181, 144, 181, 143, 160, 140, 164, 142, 165, 145, 130, 165, 150, 145, 180, 122, 146, 146, 138, 146, 139, 151, 144, 142, 148, 141, 143, 132, 135, 149, 151, 136, 148, 159, 165, 111, 137, 122, 135, 146, 147, 141, 138, 144, 154, 144, 148, 128, 135, 150, 145, 157, 153, 140, 132, 157, 134, 147, 140, 138, 140, 150, 144, 154, 147, 141, 159, 140, 150, 142, 137, 150, 146, 134, 143, 144, 139, 149, 137, 121, 147, 139, 155, 138, 158, 152, 153, 139, 145, 148, 144, 154, 148, 143, 144, 166, 140, 150, 142, 148, 146, 142, 140, 146, 150, 156, 152, 140, 143, 151, 139, 153, 143, 143, 147, 148, 146, 156, 139, 156, 149, 146, 146, 146, 149, 143, 140, 145, 143, 140, 146, 151, 148, 148, 145, 143, 132, 140, 143, 143, 145, 134, 141, 136, 144, 141, 143, 138, 137, 156, 145, 147, 142, 128, 142, 148, 149, 143, 138, 144, 158, 137, 146, 154, 137, 145, 144, 150, 147, 140, 154, 143, 154, 146, 150, 138, 153, 163, 140, 146, 142, 151, 137, 146, 150, 151, 143, 145, 145, 149, 154, 145, 145, 146, 170, 149, 146, 160, 165, 142, 160, 160, 144, 151, 145, 148, 145, 154, 148, 129, 155, 136, 152, 157, 152, 152, 152, 152, 162, 141, 145, 148, 134, 147, 149, 144, 152, 151, 141, 147, 159, 157, 136, 154, 142, 146, 149, 141, 148, 147, 151, 156, 141, 151, 140, 138, 140, 139, 152, 156, 152, 154, 148, 146, 151, 146, 141, 136, 146, 145, 140, 149, 143, 146, 151, 157, 150, 142, 150, 146, 156, 143, 143, 149, 140, 142, 157, 148, 147, 147, 156, 144, 148, 141, 148, 146, 145, 147, 148, 152, 148, 147, 145, 145, 140, 148, 138, 146, 143, 147, 124, 147, 147, 141, 141, 150, 143, 141, 140, 140, 145, 143, 144, 158, 150, 143, 144, 145, 143, 144, 146, 158, 144, 146, 145, 147, 150, 148, 142, 141, 151, 147, 142, 146, 146, 145, 148, 136, 150, 147, 160, 146, 144, 141, 141, 153, 146, 149, 145, 147, 147, 147, 148, 151, 139, 137, 144, 145, 146, 149, 151, 147, 141, 146, 139, 147, 150, 148, 154, 144, 162, 147, 154, 150, 144, 151, 138, 145, 150, 147, 146, 142, 145, 146, 142, 142, 144, 143, 147, 153, 147, 147, 140, 143, 142, 146, 147, 167, 148, 146, 149, 148, 140, 144, 149, 141, 146, 138, 141, 142, 147, 149, 140, 152, 138, 148, 146, 145, 146, 144, 142, 144, 144, 144, 147, 149, 149, 145, 148, 155, 140, 144, 148, 140, 148, 148, 132, 136, 138, 145, 151, 147, 152, 145, 144, 152, 149, 149, 151, 155, 144, 146, 145, 150, 141, 150, 146, 144, 144, 148, 144, 148, 147, 147, 144, 142, 146, 148, 139, 149, 147, 141, 145, 145, 151, 137, 141, 145, 151, 147, 148, 140, 147, 157, 145, 161, 145, 148, 150, 138, 142, 142, 141, 151, 146, 146, 147, 143, 142, 148, 154, 138, 147, 144, 148, 145, 144, 148, 143, 152, 142, 146, 148, 144, 144, 148, 153, 148, 151, 143, 142, 145, 144, 151, 151, 143, 143, 149, 154, 144, 140, 146, 146, 150, 147, 148, 144, 154, 140, 147, 135, 143, 143, 150, 142, 142, 137, 154, 148, 144, 145, 137, 149, 142, 147, 146, 145, 145, 146, 143, 143, 139, 166, 146, 142, 145, 143, 147, 153, 142, 172, 157, 163, 149, 148, 140, 157, 150, 139, 147, 143, 147, 138, 148, 146, 146, 149, 156, 155, 161, 141, 130, 159, 157, 152, 156, 149, 143, 145, 144, 150, 143, 162, 159, 129, 142, 148, 143, 145, 154, 139, 152, 147, 151, 170, 150, 152, 152, 138, 143, 148, 144, 134, 172, 134, 141, 149, 147, 135, 149, 144, 150, 148, 158, 147, 138, 163, 149, 156, 148, 130, 160, 140, 142, 148, 149, 136, 155, 147, 140, 148, 156, 151, 152, 150, 157, 151, 137, 151, 154, 148, 158, 148, 162, 153, 136, 156, 143, 147, 125, 163, 149, 160, 149, 144, 137, 146, 154, 146, 146, 137, 144, 149, 149, 139, 142, 168, 151, 122, 124, 156, 144, 145, 148, 144, 150, 140, 143, 137, 153, 141, 158, 155, 155, 147, 144, 172, 148, 151, 148, 179, 152, 152, 159, 140, 138, 142, 142, 146, 147, 132, 122, 154, 145, 151, 135, 128, 141, 143, 144, 138, 152, 137, 154, 164, 149, 135, 136, 154, 143, 153, 161, 147, 148, 148, 144, 142, 149, 171, 153, 174, 162, 141, 166, 164, 146, 156, 148, 142, 149, 138, 166, 153, 152, 139, 136, 157, 148, 153, 131, 138, 148, 147, 151, 145, 143, 161, 139, 146, 142, 143, 150, 135, 135, 153, 158, 149, 142, 150, 155, 139, 146, 139, 147, 136, 168, 145, 159, 148, 154, 141, 138, 138, 135, 145, 150, 164, 139, 159, 136, 152, 153, 126, 159, 145, 159, 161, 156, 156, 146, 148, 128, 139, 149, 143, 142, 146, 153, 147, 143, 149, 143, 148, 151, 139, 138, 143, 148, 147, 143, 153, 140, 143, 139, 138, 146, 153, 144, 151, 148, 143, 145, 144, 143, 140, 141, 141, 122, 146, 147, 149, 165, 138, 140, 148, 147, 137, 135, 170, 144, 143, 156, 146, 149, 149, 144, 140, 142, 154, 147, 151, 151, 149, 146, 134, 145, 141, 158, 141, 149, 139, 150, 146, 153, 149, 153, 150, 138, 144, 153, 150, 148, 151, 158, 154, 146, 149, 139, 154, 148, 147, 144, 159, 145, 139, 139, 147, 142, 148, 154, 150, 147, 136, 150, 149, 153, 137, 156, 147, 143, 143, 137, 141, 146, 143, 145, 140, 137, 150, 138, 141, 142, 136, 145, 135, 144, 141, 141, 144, 140, 147, 150, 154, 138, 138, 143, 146, 149, 134, 150, 156, 146, 145, 151, 156, 145, 156, 144, 142, 151, 154, 138, 150, 144, 143, 139, 151, 148, 137, 144, 140, 147, 142, 150, 142, 147, 141, 145, 143, 141, 138, 145, 157, 138, 141, 139, 117, 142, 145, 146, 147, 130, 143, 148, 136, 180, 143, 141, 152, 152, 153, 147, 142, 146, 141, 145, 147, 148, 151, 143, 133, 144, 139, 145, 146, 155, 142, 146, 153, 143, 160, 153, 124, 159, 147, 130, 136, 148, 153, 138, 139, 144, 146, 148, 144, 143, 139, 137, 148, 151, 151, 145, 147, 147, 148, 142, 150, 142, 145, 129, 145, 143, 146, 142, 139, 136, 143, 158, 145, 146, 154, 136, 148, 155, 149, 142, 140, 143, 146, 133, 146, 143, 149, 149, 148, 147, 149, 148, 150, 148, 145, 144, 146, 143, 146, 145, 149, 148, 142, 144, 145, 144, 142, 143, 147, 146, 150, 128, 146, 145, 158, 146, 146, 148, 144, 140, 146, 151, 150, 138, 145, 146, 143, 147, 147, 148, 152, 144, 144, 145, 141, 141, 145, 138, 148, 140, 145, 148, 148, 146, 145, 148, 145, 151, 150, 143, 138, 142, 143, 145, 147, 145, 145, 176, 151, 150, 146, 145, 143, 144, 144, 147, 147, 146, 145, 141, 147, 147, 142, 143, 146, 142, 146, 149, 148, 148, 140, 141, 146, 151, 145, 140, 139, 148, 146, 145, 146, 135, 144, 145, 146, 149, 143, 146, 143, 144, 146, 150, 136, 143, 150, 146, 151, 149, 153, 149, 147, 150, 144, 145, 145, 157, 141, 151, 148, 143, 147, 144, 141, 147, 152, 147, 147, 139, 152, 149, 143, 137, 148, 143, 148, 145, 139, 134, 145, 136, 146, 147, 147, 147, 146, 151, 149, 143, 151, 147, 147, 148, 162, 148, 151, 145, 140, 143, 148, 140, 145, 139, 151, 144, 147, 145, 144, 143, 147, 149, 150, 148, 142, 147, 150, 141, 149, 148, 141, 149, 145, 139, 149, 151, 137, 145, 149, 145, 147, 140, 144, 149, 147, 151, 141, 142, 144, 145, 145, 143, 152, 141, 148, 144, 147, 143, 147, 142, 147, 143, 145, 145, 148, 149, 148, 140, 146, 146, 144, 147, 148, 149, 149, 149, 151, 142, 124, 148, 140, 146, 150, 135, 148, 144, 144, 139, 149, 147, 143, 144, 146, 154, 139, 141, 146, 139, 139, 141, 170, 130, 155, 152, 151, 123, 155, 142, 144, 150, 149, 155, 148, 151, 136, 149, 138, 140, 149, 144, 136, 135, 140, 139, 143, 150, 151, 140, 151, 142, 150, 148, 153, 145, 161, 120, 140, 130, 153, 139, 141, 145, 135, 155, 139, 135, 135, 132, 151, 145, 158, 137, 151, 148, 156, 143, 132, 152, 151, 146, 147, 162, 145, 146, 149, 146, 143, 147, 142, 157, 148, 159, 122, 153, 135, 138, 139, 138, 142, 146, 145, 140, 137, 143, 170, 145, 151, 138, 138, 157, 137, 160, 154, 139, 146, 143, 135, 148, 138, 143, 153, 158, 143, 147, 141, 150, 148, 150, 160, 127, 144, 147, 142, 137, 146, 138, 138, 145, 131, 149, 145, 154, 177, 147, 146, 151, 135, 134, 159, 148, 150, 140, 149, 152, 159, 138, 140, 144, 149, 131, 157, 141, 151, 161, 158, 148, 140, 147, 146, 145, 147, 148, 147, 141, 142, 169, 136, 148, 155, 136, 140, 160, 145, 155, 136, 140, 141, 150, 144, 146, 143, 145, 132, 140, 141, 152, 153, 147, 156, 140, 151, 154, 143, 134, 146, 149, 151, 159, 150, 142, 154, 135, 147, 150, 156, 147, 144, 144, 152, 142, 148, 136, 155, 136, 137, 145, 137, 154, 156, 138, 160, 143, 145, 145, 144, 164, 143, 145, 150, 135, 149, 143, 163, 149, 140, 139, 149, 148, 151, 150, 131, 140, 154, 151, 145, 147, 142, 151, 143, 140, 119, 189, 136, 147, 148, 153, 125, 142, 145, 141, 128, 140, 143, 145, 153, 141, 140, 144, 135, 138, 140, 141, 136, 138, 160, 154, 142, 146, 145, 144, 141, 139, 148, 137, 136, 143, 143, 149, 158, 141, 138, 146, 137, 151, 148, 163, 146, 153, 140, 149, 142, 155, 137, 144, 144, 146, 153, 148, 156, 148, 145, 148, 142, 152, 138, 145, 140, 152, 146, 130, 136, 147, 135, 152, 152, 141, 143, 154, 159, 140, 142, 146, 150, 144, 159, 146, 148, 145, 146, 140, 141, 143, 147, 145, 148, 149, 153, 146, 146, 153, 150, 148, 150, 144, 141, 142, 146, 147, 144, 149, 148, 144, 141, 159, 150, 146, 148, 137, 137, 143, 139, 149, 140, 140, 140, 144, 149, 143, 145, 154, 133, 156, 142, 149, 144, 152, 140, 168, 140, 149, 162, 149, 146, 149, 155, 143, 139, 154, 150, 144, 144, 168, 143, 146, 146, 143, 134, 140, 154, 149, 139, 150, 149, 145, 146, 144, 147, 149, 138, 149, 137, 142, 147, 144, 137, 144, 140, 150, 143, 148, 147, 143, 142, 153, 143, 131, 140, 141, 149, 141, 138, 136, 151, 137, 155, 141, 145, 146, 139, 149, 135, 143, 135, 143, 138, 134, 149, 142, 135, 152, 141, 144, 137, 148, 147, 145, 142, 156, 139, 153, 140, 147, 148, 145, 138, 151, 143, 144, 146, 140, 144, 148, 150, 155, 148, 144, 145, 143, 147, 144, 143, 149, 142, 150, 151, 144, 135, 141, 138, 145, 150, 143, 151, 151, 138, 154, 148, 147, 146, 152, 154, 146, 144, 146, 156, 143, 145, 149, 143, 140, 144, 142, 149, 157, 141, 154, 147, 162, 155, 137, 144, 145, 148, 142, 151, 145, 164, 150, 149, 147, 158, 150, 142, 146, 144, 148, 143, 150, 151, 149, 151, 152, 161, 138, 149, 145, 150, 141, 145, 157, 146, 160, 143, 147, 139, 149, 155, 140, 142, 151, 126, 145, 138, 141, 138, 140, 146, 152, 153, 161, 143, 141, 139, 144, 141, 140, 150, 153, 158, 143, 140, 138, 144, 147, 150, 147, 156, 163, 147, 144, 147, 146, 145, 151, 148, 150, 166, 149, 140, 154, 147, 160, 147, 140, 147, 122, 149, 143, 149, 151, 145, 155, 143, 166, 145, 147, 120, 153, 150, 145, 132, 150, 143, 151, 139, 158, 139, 136, 145, 160, 152, 151, 143, 141, 139, 146, 145, 145, 146, 157, 146, 154, 137, 144, 143, 137, 131, 151, 148, 141, 140, 134, 147, 149, 149, 145, 151, 153, 136, 146, 137, 154, 147, 142, 143, 147, 139, 143, 145, 142, 137, 141, 177, 139, 154, 147, 149, 133, 151, 149, 151, 142, 142, 147, 145, 149, 148, 149, 137, 137, 152, 139, 143, 125, 144, 157, 151, 143, 134, 142, 155, 143, 151, 154, 144, 154, 146, 150, 151, 148, 147, 144, 150, 136, 153, 143, 132, 151, 148, 146, 137, 140, 145, 144, 148, 148, 141, 136, 140, 147, 152, 147, 142, 153, 151, 138, 142, 141, 150, 121, 144, 142, 138, 147, 146, 137, 149, 147, 147, 150, 139, 146, 138, 155, 160, 140, 147, 146, 140, 162, 140, 145, 147, 138, 142, 151, 144, 144, 146, 148, 148, 150, 150, 144, 144, 146, 144, 148, 141, 140, 147, 148, 148, 143, 146, 142, 143, 144, 144, 145, 146, 147, 143, 146, 146, 147, 148, 145, 145, 171, 149, 145, 148, 148, 145, 148, 141, 144, 145, 149, 142, 143, 150, 140, 144, 152, 146, 147, 145, 145, 148, 143, 147, 144, 144, 165, 145, 145, 145, 139, 147, 149, 146, 144, 153, 148, 147, 147, 146, 140, 141, 143, 151, 141, 149, 147, 144, 147, 143, 148, 145, 148, 147, 148, 148, 146, 146, 151, 153, 146, 148, 144, 147, 146, 144, 147, 145, 153, 145, 150, 146, 147, 144, 146, 142, 146, 146, 146, 149, 144, 142, 156, 147, 144, 146, 147, 137, 147, 144, 148, 148, 147, 147, 144, 143, 147, 145, 142, 152, 145, 150, 144, 145, 144, 149, 150, 153, 140, 146, 148, 143, 147, 144, 148, 146, 142, 146, 150, 149, 146, 149, 147, 136, 143, 148, 150, 145, 145, 120, 145, 144, 141, 145, 142, 148, 143, 144, 141, 144, 151, 143, 149, 149, 144, 152, 145, 148, 145, 146, 143, 140, 154, 137, 138, 136, 148, 146, 147, 147, 142, 146, 144, 149, 148, 144, 151, 145, 146, 148, 143, 148, 144, 152, 143, 145, 151, 134, 144, 144, 144, 141, 141, 148, 146, 140, 151, 146, 145, 148, 145, 145, 151, 150, 147, 155, 147, 145, 151, 144, 145, 143, 147, 149, 148, 165, 142, 144, 150, 146, 147, 145, 150, 149, 144, 148, 143, 148, 142, 164, 148, 135, 145, 145, 150, 142, 133, 167, 153, 147, 143, 153, 151, 142, 139, 146, 154, 149, 150, 110, 141, 146, 164, 138, 141, 127, 141, 166, 147, 147, 142, 147, 169, 155, 142, 148, 161, 147, 121, 131, 132, 145, 135, 155, 136, 141, 143, 152, 140, 144, 139, 138, 121, 148, 150, 149, 148, 142, 147, 139, 163, 148, 133, 156, 150, 147, 139, 145, 146, 147, 146, 132, 151, 155, 129, 141, 140, 143, 142, 144, 142, 144, 145, 151, 146, 156, 131, 137, 146, 146, 158, 141, 142, 152, 166, 175, 161, 157, 158, 124, 150, 151, 142, 153, 148, 156, 133, 157, 165, 157, 135, 149, 153, 145, 142, 144, 135, 143, 140, 140, 153, 151, 147, 138, 146, 135, 153, 125, 136, 143, 134, 158, 146, 149, 146, 158, 133, 153, 178, 149, 133, 142, 145, 145, 145, 153, 142, 143, 146, 153, 142, 122, 143, 142, 154, 145, 159, 149, 153, 167, 145, 145, 141, 144, 142, 154, 158, 142, 142, 150, 159, 140, 159, 142, 134, 138, 149, 144, 147, 156, 146, 144, 160, 130, 153, 139, 150, 152, 159, 146, 141, 151, 160, 128, 152, 139, 123, 155, 148, 145, 138, 145, 132, 144, 151, 148, 133, 130, 146, 154, 157, 149, 137, 137, 171, 148, 155, 123, 143, 147, 132, 152, 149, 149, 137, 147, 131, 128, 134, 144, 153, 145, 134, 163, 147, 125, 151, 148, 146, 151, 143, 157, 135, 150, 151, 138, 139, 139, 128, 126, 140, 152, 143, 125, 145, 204, 132, 162, 166, 144, 158, 164, 145, 164, 140, 156, 147, 144, 150, 146, 142, 146, 139, 148, 153, 145, 120, 138, 148, 161, 136, 145, 152, 145, 144, 143, 153, 137, 151, 145, 143, 137, 147, 144, 159, 142, 148, 141, 138, 174, 155, 147, 149, 131, 142, 141, 132, 149, 154, 137, 141, 133, 137, 139, 144, 137, 140, 144, 142, 133, 141, 136, 130, 135, 145, 140, 143, 144, 140, 141, 139, 149, 137, 153, 146, 144, 149, 162, 148, 155, 156, 151, 136, 153, 152, 149, 141, 146, 143, 163, 136, 153, 150, 150, 151, 145, 158, 149, 147, 161, 147, 146, 133, 133, 159, 143, 138, 147, 152, 141, 173, 145, 136, 140, 116, 137, 152, 139, 144, 153, 138, 137, 153, 141, 134, 144, 138, 139, 146, 142, 148, 176, 141, 134, 157, 137, 124, 172, 134, 144, 147, 145, 139, 140, 140, 135, 137, 145, 119, 148, 151, 155, 162, 139, 138, 134, 131, 116, 129, 159, 137, 138, 145, 154, 149, 142, 149, 135, 137, 104, 133, 153, 145, 153, 150, 146, 145, 133, 178, 152, 138, 147, 126, 157, 133, 144, 122, 152, 148, 145, 145, 159, 142, 141, 124, 158, 148, 156, 141, 147, 151, 154, 147, 142, 153, 144, 156, 150, 139, 127, 151, 147, 126, 147, 145, 144, 130, 161, 143, 150, 143, 141, 160, 148, 136, 150, 148, 153, 151, 148, 134, 147, 147, 143, 140, 144, 147, 135, 149, 158, 139, 141, 149, 146, 132, 150, 131, 135, 145, 142, 144, 149, 143, 141, 148, 141, 141, 149, 145, 148, 142, 149, 154, 160, 147, 144, 147, 147, 148, 147, 144, 152, 145, 143, 145, 147, 145, 156, 142, 146, 144, 144, 144, 142, 133, 146, 145, 148, 151, 144, 145, 151, 144, 145, 150, 142, 149, 138, 147, 146, 144, 146, 148, 146, 146, 147, 147, 150, 146, 149, 148, 146, 149, 155, 151, 149, 149, 149, 133, 147, 147, 148, 148, 147, 146, 148, 143, 147, 131, 131, 147, 150, 143, 149, 149, 143, 150, 147, 147, 143, 145, 147, 153, 146, 144, 144, 144, 134, 148, 147, 146, 143, 147, 148, 145, 147, 149, 147, 147, 141, 154, 145, 145, 148, 149, 147, 147, 148, 144, 143, 148, 150, 149, 142, 143, 150, 140, 146, 153, 143, 142, 146, 147, 147, 144, 144, 143, 147, 148, 147, 147, 150, 141, 149, 144, 150, 140, 143, 152, 147, 147, 145, 147, 146, 146, 146, 143, 145, 146, 147, 150, 142, 152, 148, 148, 148, 150, 138, 146, 150, 144, 147, 146, 145, 140, 143, 144, 149, 150, 146, 148, 150, 147, 148, 146, 147, 148, 141, 148, 148, 148, 145, 141, 148, 144, 148, 150, 146, 140, 148, 144, 148, 146, 148, 147, 145, 145, 146, 145, 146, 148, 172, 146, 148, 147, 149, 144, 150, 145, 149, 144, 146, 144, 145, 153, 145, 145, 141, 144, 162, 146, 148, 149, 155, 144, 149, 143, 150, 148, 143, 147, 146, 147, 151, 146, 149, 146, 143, 146, 144, 147, 138, 151, 149, 141, 136, 142, 154, 156, 145, 148, 147, 149, 148, 142, 156, 144, 151, 144, 139, 134, 148, 140, 133, 153, 149, 152, 143, 132, 147, 141, 155, 138, 151, 150, 135, 143, 146, 155, 148, 146, 141, 151, 148, 149, 144, 139, 146, 151, 146, 153, 151, 145, 146, 147, 141, 135, 147, 147, 144, 163, 149, 143, 145, 143, 146, 154, 149, 150, 148, 145, 141, 152, 152, 150, 136, 144, 142, 140, 142, 142, 156, 142, 152, 142, 142, 147, 149, 145, 150, 147, 146, 157, 146, 145, 146, 146, 147, 138, 146, 149, 139, 151, 142, 143, 144, 144, 148, 151, 151, 149, 145, 144, 140, 168, 149, 145, 146, 146, 148, 146, 144, 145, 145, 144, 142, 147, 147, 156, 147, 148, 152, 151, 147, 149, 143, 155, 139, 160, 154, 151, 140, 150, 147, 148, 148, 147, 156, 145, 155, 142, 145, 140, 145, 152, 147, 153, 134, 136, 140, 138, 147, 145, 148, 141, 145, 146, 151, 141, 141, 141, 156, 151, 149, 140, 153, 151, 139, 151, 160, 143, 126, 145, 152, 145, 133, 134, 140, 149, 144, 154, 151, 144, 143, 143, 149, 141, 141, 146, 155, 149, 139, 154, 152, 143, 134, 137, 147, 145, 148, 152, 144, 150, 136, 144, 138, 145, 149, 138, 149, 140, 146, 152, 141, 137, 147, 147, 147, 148, 156, 145, 146, 141, 148, 147, 146, 148, 140, 149, 142, 144, 145, 150, 145, 142, 139, 144, 149, 148, 152, 157, 136, 143, 152, 144, 144, 147, 153, 150, 146, 150, 144, 144, 142, 148, 134, 141, 143, 150, 155, 144, 147, 151, 144, 141, 137, 149, 142, 143, 146, 144, 146, 146, 178, 141, 147, 135, 143, 142, 141, 150, 147, 139, 145, 150, 147, 134, 139, 154, 143, 145, 147, 146, 143, 142, 151, 148, 153, 146, 151, 140, 144, 144, 148, 145, 151, 144, 139, 145, 144, 146, 146, 146, 140, 140, 141, 149, 139, 148, 143, 160, 149, 148, 146, 150, 146, 154, 145, 158, 145, 147, 143, 148, 135, 147, 146, 140, 142, 147, 143, 151, 149, 147, 144, 146, 156, 143, 145, 138, 127, 140, 144, 139, 147, 143, 145, 142, 145, 149, 153, 145, 138, 142, 144, 150, 149, 145, 145, 143, 146, 146, 144, 144, 148, 138, 147, 151, 148, 148, 148, 144, 143, 145, 146, 149, 150, 146, 148, 139, 137, 143, 142, 141, 148, 147, 152, 145, 144, 144, 148, 148, 148, 151, 153, 145, 150, 143, 147, 150, 143, 142, 153, 144, 146, 146, 146, 142, 151, 147, 146, 144, 149, 143, 152, 150, 156, 139, 152, 146, 142, 147, 147, 140, 144, 142, 139, 144, 149, 147, 143, 143, 147, 153, 140, 136, 140, 141, 147, 140, 147, 154, 145, 147, 143, 148, 147, 144, 143, 148, 140, 146, 150, 144, 150, 145, 144, 144, 152, 138, 144, 146, 144, 146, 149, 162, 147, 144, 143, 141, 148, 147, 156, 140, 153, 141, 155, 150, 144, 147, 158, 153, 144, 149, 148, 142, 164, 146, 147, 148, 144, 154, 144, 148, 156, 140, 139, 146, 144, 151, 151, 146, 147, 145, 142, 143, 147, 149, 146, 147, 142, 150, 141, 145, 151, 150, 141, 147, 145, 150, 143, 144, 145, 155, 149, 147, 144, 152, 140, 145, 149, 141, 145, 144, 148, 150, 144, 154, 141, 149, 147, 134, 144, 155, 145, 147, 140, 145, 137, 147, 151, 142, 140, 140, 138, 145, 154, 137, 138, 146, 142, 148, 140, 150, 146, 173, 145, 139, 137, 141, 149, 142, 154, 140, 153, 137, 151, 151, 147, 152, 145, 143, 138, 153, 143, 146, 147, 143, 137, 142, 150, 142, 144, 147, 146, 147, 143, 154, 146, 146, 142, 156, 142, 145, 145, 141, 145, 149, 146, 147, 144, 147, 145, 151, 147, 158, 148, 141, 148, 148, 151, 147, 146, 142, 147, 133, 147, 157, 154, 139, 150, 143, 140, 139, 141, 150, 147, 154, 148, 151, 146, 143, 140, 143, 146, 142, 150, 143, 149, 149, 139, 146, 149, 154, 138, 144, 145, 152, 140, 146, 141, 151, 146, 149, 149, 154, 146, 143, 144, 143, 152, 157, 149, 147, 147, 150, 141, 140, 140, 146, 150, 155, 142, 147, 143, 157, 128, 147, 151, 142, 149, 147, 151, 143, 145, 145, 141, 149, 147, 146, 151, 143, 150, 144, 147, 154, 147, 140, 140, 148, 148, 142, 150, 142, 151, 152, 148, 146, 152, 146, 145, 147, 145, 135, 155, 146, 149, 141, 143, 144, 156, 145, 131, 147, 143, 146, 148, 144, 144, 152, 143, 154, 145, 145, 147, 146, 139, 164, 149, 147, 149, 144, 140, 145, 145, 168, 145, 139, 155, 150, 151, 146, 142, 169, 149, 148, 139, 148, 151, 143, 136, 146, 144, 148, 145, 144, 144, 146, 162, 131, 148, 145, 146, 145, 151, 140, 143, 132, 151, 148, 143, 150, 149, 150, 149, 148, 135, 138, 145, 136, 147, 144, 145, 146, 128, 156, 143, 146, 146, 153, 133, 145, 147, 147, 130, 143, 143, 143, 137, 150, 141, 149, 150, 143, 153, 148, 150, 139, 139, 139, 171, 138, 155, 158, 145, 142, 142, 150, 144, 141, 146, 146, 134, 149, 155, 145, 143, 145, 130, 142, 146, 138, 142, 153, 151, 147, 142, 143, 147, 148, 143, 141, 140, 146, 149, 135, 144, 132, 148, 144, 148, 155, 139, 142, 144, 143, 148, 147, 141, 139, 140, 140, 148, 150, 151, 145, 142, 147, 149, 141, 158, 175, 150, 141, 140, 150, 152, 149, 144, 143, 142, 150, 149, 140, 141, 144, 137, 149, 144, 156, 115, 144, 147, 143, 146, 129, 143, 141, 148, 149, 145, 135, 142, 125, 141, 154, 158, 136, 153, 150, 145, 143, 134, 138, 135, 141, 141, 161, 145, 152, 146, 135, 140, 151, 144, 149, 150, 140, 146, 135, 142, 151, 141, 141, 147, 147, 150, 142, 168, 140, 147, 140, 143, 142, 136, 141, 149, 139, 138, 144, 147, 143, 146, 147, 142, 181, 141, 144, 148, 142, 147, 136, 140, 129, 148, 149, 132, 150, 154, 145, 140, 153, 155, 142, 148, 148, 148, 157, 146, 144, 143, 141, 139, 141, 151, 148, 140, 146, 140, 146, 145, 145, 142, 146, 167, 155, 151, 142, 128, 141, 146, 141, 145, 142, 132, 143, 152, 138, 148, 140, 150, 143, 141, 148, 145, 158, 144, 148, 131, 143, 152, 148, 140, 147, 149, 162, 143, 147, 146, 144, 152, 142, 144, 146, 145, 139, 147, 145, 148, 147, 146, 145, 142, 147, 149, 151, 146, 145, 139, 152, 150, 143, 142, 154, 142, 140, 146, 155, 146, 160, 144, 145, 144, 144, 144, 151, 141, 149, 138, 153, 168, 141, 142, 149, 140, 150, 143, 144, 147, 147, 146, 147, 140, 148, 149, 141, 143, 150, 165, 142, 148, 144, 147, 144, 148, 145, 145, 149, 145, 145, 146, 142, 148, 148, 144, 144, 146, 137, 145, 144, 147, 141, 150, 141, 148, 154, 155, 151, 143, 153, 147, 144, 142, 144, 149, 144, 144, 151, 149, 147, 142, 144, 143, 143, 148, 141, 147, 163, 146, 147, 140, 146, 145, 150, 148, 148, 145, 143, 147, 145, 149, 148, 144, 133, 146, 147, 143, 147, 143, 147, 143, 151, 150, 144, 140, 149, 147, 142, 146, 141, 147, 149, 134, 142, 144, 148, 147, 145, 151, 146, 150, 143, 148, 149, 150, 142, 145, 146, 141, 141, 148, 144, 141, 143, 148, 145, 142, 145, 148, 143, 150, 146, 129, 152, 143, 145, 133, 147, 145, 154, 153, 146, 144, 140, 143, 151, 143, 164, 145, 152, 112, 153, 137, 140, 134, 151, 144, 150, 130, 151, 143, 144, 146, 139, 139, 144, 151, 148, 145, 137, 145, 141, 148, 146, 145, 155, 146, 145, 149, 147, 147, 147, 151, 143, 151, 144, 147, 153, 143, 144, 134, 153, 147, 149, 146, 151, 147, 149, 144, 145, 139, 181, 149, 147, 126, 148, 146, 136, 144, 148, 149, 143, 147, 149, 146, 144, 144, 142, 142, 144, 140, 147, 147, 143, 150, 148, 143, 151, 138, 140, 138, 144, 153, 145, 144, 145, 140, 149, 145, 152, 144, 141, 145, 141, 147, 154, 150, 149, 141, 148, 140, 149, 147, 146, 147, 142, 153, 147, 143, 142, 151, 138, 150, 144, 147, 145, 152, 144, 148, 146, 144, 143, 149, 150, 144, 144, 150, 149, 145, 145, 140, 150, 146, 146, 147, 145, 146, 144, 141, 152, 149, 143, 146, 140, 147, 145, 148, 142, 148, 142, 153, 152, 175, 145, 147, 157, 145, 147, 151, 147, 139, 147, 146, 145, 152, 152, 144, 146, 146, 141, 148, 151, 139, 152, 148, 145, 147, 150, 147, 145, 150, 147, 148, 143, 146, 144, 149, 147, 145, 143, 147, 143, 140, 160, 147, 151, 148, 149, 145, 136, 149, 149, 152, 140, 146, 142, 148, 146, 147, 154, 151, 147, 146, 154, 150, 142, 144, 145, 147, 144, 144, 142, 149, 146, 149, 146, 149, 140, 143, 144, 141, 146, 151, 147, 146, 147, 147, 141, 138, 151, 145, 148, 144, 149, 146, 148, 145, 149, 148, 149, 144, 142, 146, 145, 145, 151, 142, 141, 142, 147, 148, 145, 146, 149, 145, 151, 147, 149, 145, 141, 149, 149, 143, 145, 143, 151, 137, 142, 149, 145, 140, 142, 142, 140, 144, 146, 143, 146, 148, 144, 150, 141, 143, 146, 147, 146, 149, 144, 142, 146, 147, 135, 152, 147, 154, 143, 142, 140, 147, 157, 153, 145, 145, 143, 142, 140, 147, 145, 138, 143, 148, 146, 144, 144, 148, 141, 148, 145, 145, 141, 148, 131, 147, 149, 147, 142, 144, 141, 143, 163, 154, 146, 148, 138, 140, 155, 141, 136, 140, 148, 138, 145, 139, 149, 145, 119, 152, 146, 144, 146, 134, 143, 145, 147, 143, 145, 148, 151, 135, 150, 143, 150, 145, 158, 144, 139, 142, 145, 164, 161, 150, 141, 149, 145, 138, 144, 143, 140, 145, 148, 147, 142, 142, 144, 146, 135, 147, 140, 150, 146, 152, 142, 142, 137, 134, 139, 149, 144, 141, 147, 148, 143, 144, 141, 143, 137, 145, 142, 145, 145, 139, 144, 145, 142, 138, 140, 151, 136, 145, 151, 148, 155, 145, 148, 154, 156, 144, 141, 142, 134, 145, 150, 144, 149, 143, 142, 152, 147, 147, 149, 136, 144, 129, 147, 156, 139, 140, 147, 146, 148, 144, 150, 146, 148, 141, 147, 145, 146, 147, 148, 143, 148, 153, 143, 133, 142, 148, 148, 157, 145, 145, 139, 161, 138, 150, 143, 150, 147, 142, 147, 145, 138, 151, 143, 154, 142, 140, 152, 133, 149, 148, 143, 145, 144, 159, 148, 141, 147, 147, 144, 144, 148, 142, 145, 146, 144, 146, 147, 148, 142, 147, 141, 137, 148, 176, 141, 136, 143, 139, 156, 147, 140, 144, 141, 142, 145, 146, 144, 144, 162, 153, 150, 147, 164, 145, 150, 139, 165, 151, 145, 150, 157, 155, 140, 134, 146, 146, 143, 151, 139, 151, 156, 144, 136, 147, 145, 143, 137, 142, 132, 143, 142, 140, 146, 146, 145, 137, 137, 148, 143, 149, 135, 146, 143, 149, 145, 151, 145, 146, 144, 155, 148, 156, 150, 148, 139, 147, 141, 160, 149, 137, 143, 147, 149, 143, 159, 151, 145, 133, 145, 138, 140, 140, 142, 165, 141, 148, 151, 142, 143, 144, 143, 143, 154, 145, 150, 142, 147, 163, 147, 149, 145, 136, 140, 147, 143, 146, 148, 155, 147, 144, 148, 150, 137, 145, 145, 144, 146, 143, 134, 150, 140, 148, 149, 150, 158, 148, 145, 151, 134, 144, 152, 142, 163, 143, 142, 148, 137, 157, 146, 140, 148, 152, 150, 154, 166, 145, 136, 147, 150, 146, 151, 143, 141, 140, 140, 144, 147, 145, 141, 141, 144, 149, 149, 119, 144, 143, 137, 155, 148, 146, 157, 148, 141, 149, 137, 148, 132, 147, 154, 143, 144, 138, 147, 146, 138, 142, 145, 143, 143, 139, 154, 145, 150, 144, 137, 159, 148, 148, 154, 148, 143, 153, 142, 147, 142, 143, 138, 147, 147, 147, 154, 191, 144, 152, 137, 142, 144, 145, 150, 137, 139, 142, 148, 145, 143, 141, 143, 148, 149, 146, 145, 144, 151, 148, 133, 138, 130, 150, 153, 128, 146, 145, 146, 148, 144, 144, 152, 146, 147, 145, 163, 139, 144, 142, 143, 144, 150, 143, 145, 142, 151, 154, 143, 145, 145, 150, 157, 167, 138, 146, 130, 133, 141, 143, 162, 153, 140, 138, 136, 148, 141, 163, 138, 138, 140, 139, 148, 142, 139, 155, 140, 143, 134, 141, 163, 137, 146, 140, 146, 151, 135, 150, 141, 152, 160, 138, 157, 146, 138, 151, 153, 143, 148, 132, 141, 146, 156, 147, 145, 133, 143, 142, 142, 155, 150, 150, 140, 138, 156, 145, 151, 147, 114, 144, 149, 151, 133, 151, 150, 147, 150, 150, 139, 137, 149, 170, 143, 135, 161, 143, 151, 147, 144, 152, 141, 148, 135, 151, 148, 143, 151, 147, 155, 138, 151, 134, 140, 149, 144, 145, 147, 141, 166, 165, 142, 151, 138, 151, 152, 143, 143, 139, 148, 147, 145, 150, 143, 144, 144, 149, 163, 155, 138, 143, 150, 137, 143, 146, 164, 156, 144, 146, 139, 154, 151, 149, 144, 145, 142, 144, 141, 145, 149, 142, 154, 140, 146, 139, 155, 148, 168, 142, 137, 130, 144, 152, 145, 158, 149, 162, 147, 169, 137, 145, 142, 148, 146, 138, 141, 152, 156, 151, 146, 146, 146, 154, 132, 140, 149, 138, 151, 144, 181, 160, 136, 157, 149, 147, 161, 158, 159, 145, 135, 152, 140, 141, 145, 152, 141, 143, 152, 144, 144, 148, 142, 133, 143, 142, 144, 145, 131, 154, 131, 144, 142, 144, 139, 147, 143, 147, 168, 142, 133, 135, 156, 153, 141, 150, 151, 147, 146, 142, 142, 142, 155, 141, 142, 141, 155, 142, 143, 142, 132, 141, 129, 144, 157, 139, 145, 146, 144, 145, 139, 144, 150, 148, 151, 146, 151, 144, 149, 144, 149, 144, 139, 147, 152, 143, 128, 150, 142, 145, 141, 146, 151, 146, 120, 146, 151, 166, 146, 145, 153, 140, 145, 132, 143, 146, 126, 148, 145, 139, 144, 148, 146, 133, 144, 145, 139, 146, 153, 145, 147, 145, 146, 146, 143, 144, 145, 148, 156, 150, 152, 151, 152, 150, 143, 135, 150, 146, 145, 148, 175, 140, 147, 146, 145, 138, 142, 151, 140, 145, 149, 142, 149, 138, 141, 146, 154, 149, 132, 145, 151, 151, 142, 134, 150, 147, 139, 144, 131, 144, 146, 148, 150, 144, 155, 144, 145, 145, 144, 149, 145, 142, 149, 150, 150, 135, 141, 154, 159, 144, 151, 143, 148, 152, 145, 150, 143, 144, 148, 143, 149, 150, 144, 147, 150, 132, 139, 146, 147, 144, 148, 144, 152, 145, 132, 146, 142, 147, 147, 135, 132, 145, 144, 144, 145, 141, 145, 145, 147, 146, 143, 148, 153, 135, 147, 138, 146, 147, 143, 148, 145, 145, 147, 149, 142, 150, 144, 144, 146, 149, 143, 151, 152, 143, 146, 149, 140, 145, 146, 165, 143, 144, 148, 141, 147, 142, 142, 132, 161, 143, 148, 145, 144, 147, 145, 158, 151, 140, 138, 145, 140, 144, 143, 144, 144, 148, 150, 150, 143, 146, 140, 146, 145, 147, 142, 147, 145, 143, 144, 147, 147, 153, 162, 148, 162, 141, 152, 137, 148, 124, 146, 152, 148, 169, 139, 146, 146, 149, 143, 148, 151, 146, 146, 142, 145, 143, 154, 149, 140, 146, 145, 147, 146, 150, 153, 142, 150, 151, 138, 152, 143, 145, 146, 148, 146, 140, 147, 160, 150, 141, 146, 144, 143, 144, 142, 142, 167, 147, 156, 149, 122, 135, 147, 151, 143, 137, 146, 135, 138, 144, 150, 139, 149, 148, 153, 141, 144, 154, 149, 145, 146, 140, 153, 147, 160, 142, 153, 143, 150, 139, 138, 155, 148, 143, 141, 137, 138, 144, 138, 133, 145, 142, 152, 149, 148, 150, 144, 147, 139, 139, 144, 158, 136, 139, 140, 144, 137, 153, 160, 140, 142, 140, 146, 144, 140, 161, 149, 146, 152, 142, 152, 133, 147, 150, 149, 141, 150, 156, 157, 146, 144, 140, 149, 139, 156, 149, 146, 156, 139, 148, 160, 158, 151, 136, 144, 156, 149, 149, 146, 150, 133, 139, 140, 150, 151, 143, 151, 145, 147, 135, 150, 148, 152, 144, 146, 144, 150, 148, 150, 149, 140, 144, 142, 147, 149, 143, 160, 148, 146, 138, 140, 143, 135, 139, 140, 187, 149, 139, 144, 146, 139, 143, 140, 135, 95, 147, 150, 152, 147, 133, 148, 142, 141, 138, 139, 144, 153, 153, 137, 149, 144, 149, 135, 146, 150, 151, 145, 141, 146, 151, 155, 158, 116, 128, 172, 145, 146, 152, 130, 144, 149, 145, 143, 149, 150, 146, 131, 148, 150, 144, 141, 135, 136, 150, 140, 153, 155, 152, 138, 149, 142, 152, 150, 157, 162, 145, 148, 145, 150, 153, 145, 157, 140, 140, 145, 135, 143, 144, 153, 138, 145, 145, 137, 141, 148, 146, 146, 149, 145, 147, 122, 148, 145, 143, 145, 142, 150, 144, 140, 145, 146, 153, 142, 145, 140, 144, 153, 149, 142, 143, 141, 143, 143, 147, 144, 141, 143, 141, 180, 141, 148, 142, 151, 147, 143, 136, 148, 144, 147, 149, 153, 145, 148, 145, 150, 147, 153, 143, 146, 149, 153, 146, 159, 147, 150, 144, 147, 153, 148, 146, 149, 144, 144, 144, 140, 150, 150, 152, 147, 150, 142, 145, 144, 144, 145, 145, 146, 143, 144, 147, 150, 139, 145, 147, 143, 143, 145, 146, 145, 148, 148, 147, 151, 143, 140, 142, 140, 142, 149, 145, 144, 142, 149, 147, 143, 147, 144, 143, 145, 143, 152, 155, 149, 141, 146, 147, 139, 145, 149, 143, 135, 148, 146, 147, 137, 145, 149, 160, 143, 144, 151, 144, 143, 143, 145, 149, 158, 145, 145, 148, 144, 146, 151, 148, 161, 143, 141, 147, 145, 147, 145, 135, 148, 141, 148, 145, 142, 120, 148, 148, 142, 143, 140, 137, 140, 153, 140, 146, 152, 139, 144, 147, 143, 148, 150, 147, 141, 142, 144, 147, 147, 141, 144, 145, 138, 141, 147, 139, 141, 144, 139, 149, 146, 148, 141, 147, 144, 139, 144, 145, 145, 155, 153, 152, 142, 141, 145, 149, 151, 142, 143, 151, 152, 146, 147, 145, 147, 144, 146, 143, 149, 146, 149, 157, 145, 146, 159, 150, 150, 137, 144, 144, 149, 154, 142, 154, 141, 146, 144, 143, 157, 141, 151, 140, 148, 134, 126, 159, 139, 144, 121, 136, 149, 129, 149, 149, 147, 140, 135, 138, 146, 161, 136, 160, 135, 140, 159, 144, 134, 130, 137, 148, 164, 157, 139, 155, 151, 155, 128, 121, 143, 153, 132, 130, 139, 132, 134, 132, 132, 179, 153, 160, 153, 140, 136, 145, 141, 128, 150, 139, 157, 141, 134, 138, 139, 146, 163, 130, 119, 127, 167, 146, 149, 133, 145, 141, 178, 182, 142, 147, 147, 130, 151, 143, 141, 154, 144, 152, 126, 142, 140, 143, 154, 158, 149, 175, 137, 154, 149, 138, 161, 148, 155, 139, 157, 165, 138, 141, 106, 163, 132, 164, 168, 137, 145, 142, 145, 150, 136, 143, 155, 148, 126, 155, 126, 142, 147, 158, 140, 103, 132, 137, 132, 153, 180, 138, 157, 140, 157, 142, 141, 130, 126, 157, 162, 107, 132, 141, 152, 159, 148, 130, 136, 153, 156, 112, 170, 146, 143, 143, 124, 152, 147, 154, 143, 216, 126, 145, 145, 165, 145, 150, 133, 127, 136, 133, 135, 172, 158, 159, 120, 151, 181, 130, 134, 134, 137, 138, 139, 144, 135, 150, 166, 131, 132, 140, 132, 138, 146, 143, 159, 136, 164, 137, 120, 148, 157, 142, 146, 148, 148, 136, 172, 123, 137, 147, 150, 131, 123, 134, 161, 153, 151, 138, 145, 137, 132, 148, 119, 161, 159, 143, 137, 130, 130, 150, 131, 136, 143, 151, 137, 139, 152, 140, 178, 153, 142, 144, 144, 126, 129, 128, 142, 143, 122, 128, 148, 143, 139, 143, 157, 135, 156, 150, 161, 157, 173, 151, 114, 130, 122, 151, 154, 141, 121, 162, 149, 141, 148, 142, 143, 141, 143, 170, 136, 148, 156, 157, 140, 113, 115, 142, 148, 153, 154, 147, 161, 143, 150, 142, 144, 128, 146, 135, 159, 140, 124, 151, 138, 178, 152, 152, 155, 159, 150, 118, 164, 155, 143, 147, 144, 128, 151, 161, 153, 139, 164, 147, 138, 137, 145, 136, 127, 136, 150, 137, 139, 156, 141, 145, 127, 147, 145, 150, 193, 146, 159, 152, 139, 130, 148, 157, 148, 143, 146, 145, 132, 152, 143, 142, 143, 132, 141, 143, 142, 146, 153, 140, 153, 144, 164, 191, 150, 142, 145, 143, 143, 134, 121, 136, 135, 157, 146, 154, 140, 148, 166, 175, 145, 140, 147, 148, 155, 149, 148, 139, 160, 112, 195, 147, 162, 141, 132, 161, 146, 147, 145, 154, 145, 140, 142, 145, 140, 130, 149, 131, 128, 130, 138, 147, 128, 154, 127, 151, 128, 150, 150, 143, 153, 149, 161, 144, 153, 136, 137, 156, 183, 147, 144, 137, 149, 126, 136, 154, 133, 144, 132, 147, 150, 141, 139, 142, 142, 149, 139, 145, 154, 153, 135, 141, 136, 143, 161, 144, 144, 146, 144, 148, 150, 137, 150, 144, 144, 169, 144, 152, 139, 147, 153, 137, 155, 142, 148, 148, 165, 157, 169, 160, 152, 136, 121, 135, 158, 128, 144, 150, 137, 142, 145, 153, 147, 145, 141, 149, 144, 160, 144, 153, 140, 148, 113, 184, 133, 143, 150, 158, 160, 143, 144, 144, 150, 147, 148, 142, 148, 147, 143, 145, 142, 141, 147, 145, 147, 144, 142, 145, 146, 150, 132, 143, 142, 142, 146, 146, 147, 146, 148, 146, 144, 146, 141, 144, 142, 136, 142, 148, 148, 146, 147, 147, 146, 146, 145, 140, 139, 147, 152, 143, 148, 149, 146, 144, 147, 145, 144, 149, 147, 148, 145, 146, 153, 150, 148, 96, 144, 141, 151, 147, 146, 149, 147, 154, 148, 146, 148, 143, 144, 140, 142, 145, 150, 146, 148, 164, 143, 148, 147, 144, 151, 146, 147, 145, 145, 120, 144, 145, 148, 150, 147, 147, 148, 147, 146, 147, 148, 143, 145, 145, 141, 146, 148, 131, 142, 145, 146, 139, 143, 144, 148, 146, 146, 149, 146, 150, 144, 136, 147, 143, 147, 148, 136, 146, 143, 151, 146, 146, 145, 146, 152, 149, 141, 150, 134, 144, 146, 151, 165, 143, 147, 152, 141, 145, 148, 143, 145, 139, 149, 149, 147, 148, 152, 143, 149, 149, 144, 146, 152, 153, 147, 147, 147, 146, 144, 144, 150, 147, 140, 146, 148, 145, 143, 144, 147, 141, 145, 145, 146, 143, 143, 144, 143, 150, 145, 148, 148, 147, 147, 145, 139, 150, 147, 148, 145, 150, 149, 151, 144, 152, 152, 147, 144, 143, 144, 137, 145, 141, 146, 151, 146, 154, 146, 142, 148, 148, 146, 146, 142, 146, 147, 145, 148, 146, 152, 145, 144, 144, 147, 149, 147, 139, 147, 149, 150, 138, 147, 147, 149, 147, 143, 145, 145, 142, 148, 147, 141, 151, 145, 149, 163, 142, 139, 141, 145, 149, 158, 145, 113, 155, 144, 157, 145, 143, 148, 140, 142, 151, 145, 139, 153, 146, 143, 144, 140, 149, 169, 149, 150, 146, 144, 146, 152, 146, 145, 137, 146, 148, 177, 152, 149, 142, 143, 158, 146, 158, 143, 183, 150, 146, 151, 142, 145, 136, 146, 137, 147, 140, 153, 139, 148, 146, 149, 147, 126, 151, 144, 138, 144, 145, 144, 146, 146, 144, 139, 140, 149, 147, 162, 147, 139, 148, 147, 141, 142, 144, 149, 140, 147, 146, 151, 147, 149, 148, 147, 148, 144, 145, 144, 146, 142, 147, 146, 154, 155, 164, 134, 151, 141, 138, 145, 132, 155, 143, 144, 148, 140, 146, 153, 147, 149, 150, 144, 139, 152, 141, 151, 139, 145, 142, 141, 153, 140, 149, 152, 145, 149, 145, 148, 143, 140, 133, 145, 144, 143, 151, 142, 142, 146, 140, 143, 140, 143, 148, 167, 142, 154, 147, 157, 146, 147, 142, 150, 145, 141, 143, 136, 148, 159, 146, 146, 141, 151, 149, 132, 145, 147, 150, 149, 144, 145, 141, 132, 162, 133, 146, 144, 146, 141, 148, 147, 145, 152, 140, 133, 150, 148, 147, 142, 152, 142, 143, 154, 145, 147, 152, 143, 153, 149, 150, 146, 144, 149, 158, 149, 144, 136, 146, 146, 146, 146, 137, 149, 159, 137, 149, 133, 148, 143, 141, 149, 145, 145, 147, 146, 150, 146, 149, 146, 150, 148, 147, 145, 141, 143, 145, 142, 142, 150, 150, 166, 147, 146, 141, 147, 143, 147, 142, 150, 143, 143, 148, 147, 143, 139, 141, 160, 149, 139, 141, 150, 149, 157, 139, 142, 151, 146, 147, 146, 148, 154, 148, 152, 147, 152, 153, 144, 152, 150, 145, 140, 141, 137, 143, 148, 146, 144, 147, 152, 150, 152, 142, 138, 141, 148, 145, 156, 146, 146, 143, 144, 150, 146, 148, 156, 146, 151, 144, 143, 152, 150, 144, 149, 145, 151, 137, 140, 148, 143, 154, 150, 153, 140, 147, 146, 144, 157, 147, 130, 151, 152, 145, 143, 152, 157, 142, 154, 151, 133, 144, 143, 149, 140, 154, 144, 150, 152, 147, 152, 143, 152, 144, 149, 153, 152, 148, 144, 140, 144, 149, 148, 145, 140, 142, 128, 145, 142, 148, 150, 133, 145, 143, 143, 142, 136, 142, 139, 145, 140, 160, 149, 143, 141, 149, 160, 138, 151, 147, 145, 142, 140, 145, 141, 136, 146, 147, 139, 141, 138, 153, 146, 144, 149, 158, 146, 140, 140, 164, 141, 139, 142, 146, 149, 145, 149, 145, 136, 146, 142, 151, 146, 141, 143, 135, 151, 154, 152, 152, 149, 145, 155, 136, 138, 140, 151, 152, 141, 140, 145, 140, 146, 150, 155, 147, 149, 147, 144, 157, 145, 143, 148, 144, 144, 150, 143, 155, 139, 141, 148, 156, 144, 150, 148, 146, 145, 155, 145, 145, 144, 144, 150, 144, 147, 144, 149, 152, 153, 152, 152, 145, 137, 146, 142, 141, 149, 146, 140, 173, 155, 152, 143, 142, 145, 150, 150, 149, 145, 141, 143, 145, 148, 137, 150, 139, 151, 148, 136, 142, 156, 141, 137, 141, 144, 139, 150, 156, 147, 153, 149, 148, 145, 140, 132, 141, 146, 152, 146, 145, 135, 144, 134, 149, 149, 146, 152, 143, 145, 138, 148, 141, 141, 146, 146, 153, 150, 151, 143, 150, 153, 135, 146, 138, 142, 147, 145, 178, 155, 145, 148, 155, 141, 149, 158, 147, 143, 150, 150, 146, 148, 137, 144, 142, 144, 144, 146, 141, 144, 135, 149, 149, 150, 150, 197, 145, 147, 151, 134, 145, 149, 140, 147, 142, 152, 141, 144, 139, 148, 143, 160, 152, 142, 142, 139, 147, 147, 147, 150, 142, 150, 156, 137, 148, 144, 139, 154, 142, 142, 145, 150, 149, 152, 148, 142, 141, 144, 142, 138, 139, 149, 138, 143, 143, 152, 144, 159, 155, 151, 141, 157, 139, 140, 154, 140, 158, 149, 140, 143, 142, 151, 150, 145, 149, 142, 134, 138, 148, 150, 146, 153, 144, 138, 145, 144, 146, 141, 136, 149, 148, 144, 149, 169, 132, 144, 144, 146, 138, 146, 149, 146, 161, 142, 147, 153, 144, 147, 148, 139, 146, 133, 145, 148, 148, 140, 137, 146, 146, 147, 145, 148, 149, 139, 135, 138, 150, 146, 156, 152, 152, 145, 146, 146, 149, 141, 149, 155, 130, 146, 143, 146, 145, 155, 150, 140, 159, 147, 144, 138, 144, 135, 142, 151, 135, 153, 152, 140, 131, 143, 146, 144, 142, 145, 148, 145, 150, 144, 145, 140, 165, 140, 152, 134, 145, 149, 156, 149, 151, 159, 135, 149, 137, 142, 142, 152, 153, 144, 153, 148, 151, 139, 145, 161, 142, 150, 150, 148, 135, 145, 142, 164, 141, 156, 153, 141, 142, 155, 144, 137, 154, 144, 149, 139, 158, 154, 145, 142, 155, 142, 144, 152, 132, 144, 140, 145, 138, 143, 146, 154, 146, 132, 156, 150, 158, 143, 155, 147, 146, 153, 153, 150, 145, 147, 153, 139, 140, 150, 142, 150, 152, 152, 145, 131, 137, 133, 132, 150, 155, 142, 145, 154, 134, 150, 137, 150, 148, 142, 143, 153, 138, 140, 147, 153, 152, 161, 151, 144, 146, 142, 150, 144, 148, 139, 145, 154, 150, 154, 147, 141, 147, 153, 146, 152, 136, 135, 157, 122, 149, 141, 143, 148, 158, 147, 140, 148, 150, 155, 142, 149, 137, 144, 146, 150, 144, 139, 146, 158, 149, 140, 154, 138, 148, 141, 148, 149, 143, 151, 155, 158, 136, 149, 143, 145, 154, 158, 142, 158, 147, 158, 153, 158, 144, 145, 148, 149, 144, 148, 150, 140, 135, 151, 146, 149, 142, 147, 136, 146, 158, 144, 158, 135, 142, 149, 149, 133, 142, 141, 148, 141, 150, 135, 153, 124, 137, 148, 158, 155, 139, 148, 139, 142, 148, 145, 155, 147, 152, 129, 148, 152, 144, 147, 150, 151, 154, 153, 152, 150, 155, 143, 142, 148, 146, 136, 141, 146, 148, 148, 146, 144, 149, 142, 135, 148, 133, 161, 149, 142, 146, 142, 141, 140, 145, 139, 143, 149, 147, 151, 121, 155, 156, 140, 147, 165, 143, 125, 145, 150, 141, 137, 138, 152, 127, 146, 155, 164, 154, 133, 150, 154, 135, 150, 135, 148, 154, 146, 151, 165, 144, 117, 132, 134, 148, 160, 146, 135, 149, 145, 150, 149, 116, 140, 143, 156, 137, 140, 149, 152, 130, 134, 145, 145, 134, 145, 156, 149, 144, 150, 137, 139, 141, 150, 141, 155, 139, 162, 160, 159, 147, 147, 140, 149, 134, 146, 145, 155, 160, 138, 139, 134, 127, 138, 145, 133, 157, 162, 145, 150, 144, 141, 138, 166, 158, 131, 147, 127, 135, 154, 134, 159, 163, 118, 157, 105, 163, 154, 152, 149, 153, 140, 128, 145, 146, 132, 146, 155, 143, 149, 132, 151, 137, 130, 142, 147, 119, 138, 151, 159, 150, 143, 156, 146, 138, 162, 140, 176, 144, 118, 151, 153, 142, 136, 131, 140, 135, 158, 141, 135, 146, 127, 145, 142, 144, 147, 131, 131, 149, 149, 133, 150, 152, 144, 147, 163, 129, 145, 142, 161, 155, 145, 130, 139, 138, 145, 161, 148, 165, 147, 155, 147, 137, 159, 133, 146, 127, 153, 145, 150, 144, 140, 145, 151, 137, 146, 149, 143, 138, 157, 150, 150, 101, 164, 142, 140, 141, 142, 147, 131, 143, 148, 167, 152, 156, 127, 128, 145, 132, 144, 143, 146, 139, 142, 135, 146, 146, 143, 139, 145, 151, 138, 145, 145, 148, 140, 140, 151, 148, 180, 145, 164, 141, 141, 143, 151, 148, 151, 126, 147, 141, 154, 133, 138, 164, 138, 147, 141, 133, 156, 153, 142, 144, 152, 158, 149, 146, 139, 140, 144, 144, 147, 147, 158, 145, 145, 145, 145, 143, 147, 124, 148, 152, 146, 145, 143, 145, 148, 144, 152, 147, 154, 147, 153, 147, 141, 145, 143, 149, 148, 143, 144, 147, 149, 143, 148, 145, 145, 142, 142, 143, 147, 149, 150, 158, 142, 147, 147, 114, 145, 132, 144, 142, 148, 145, 145, 148, 149, 147, 140, 150, 146, 143, 146, 145, 137, 150, 143, 148, 151, 141, 145, 146, 146, 146, 139, 147, 149, 146, 145, 148, 149, 144, 145, 159, 146, 146, 144, 149, 151, 143, 149, 143, 145, 146, 146, 150, 145, 143, 146, 151, 156, 151, 143, 144, 145, 148, 142, 147, 145, 149, 150, 146, 148, 145, 147, 143, 145, 148, 146, 147, 149, 145, 141, 154, 144, 147, 142, 147, 157, 147, 152, 138, 142, 140, 151, 146, 142, 147, 146, 145, 147, 145, 152, 147, 142, 152, 146, 147, 133, 143, 149, 148, 183, 146, 147, 144, 148, 147, 148, 144, 145, 147, 143, 151, 153, 147, 144, 162, 144, 143, 142, 142, 144, 146, 143, 145, 147, 140, 146, 148, 142, 147, 143, 148, 148, 143, 146, 146, 144, 139, 150, 145, 145, 143, 145, 147, 146, 145, 152, 144, 144, 148, 146, 146, 145, 145, 149, 155, 149, 144, 147, 148, 151, 149, 147, 147, 133, 149, 150, 148, 151, 153, 146, 136, 146, 147, 144, 149, 140, 143, 153, 148, 147, 144, 146, 148, 147, 149, 157, 147, 147, 150, 150, 146, 149, 144, 164, 153, 145, 134, 141, 149, 150, 138, 180, 149, 163, 144, 149, 147, 149, 137, 145, 149, 143, 152, 144, 141, 143, 149, 140, 144, 148, 144, 164, 143, 133, 149, 148, 151, 143, 148, 132, 150, 148, 147, 149, 144, 142, 148, 162, 144, 142, 143, 144, 143, 147, 140, 144, 149, 148, 152, 146, 159, 150, 137, 150, 160, 144, 148, 141, 141, 158, 150, 144, 145, 141, 144, 149, 150, 150, 152, 154, 142, 169, 153, 154, 138, 152, 152, 149, 145, 147, 136, 143, 132, 141, 144, 146, 129, 145, 142, 147, 145, 145, 155, 148, 141, 149, 147, 132, 141, 155, 149, 151, 141, 126, 148, 153, 144, 152, 145, 162, 144, 143, 140, 147, 149, 143, 138, 148, 130, 148, 145, 145, 164, 144, 147, 146, 141, 148, 146, 134, 146, 139, 145, 147, 152, 144, 145, 147, 130, 146, 141, 145, 153, 156, 143, 147, 148, 147, 124, 141, 147, 161, 137, 139, 146, 148, 150, 139, 143, 147, 153, 146, 147, 139, 148, 154, 145, 147, 148, 145, 133, 142, 142, 149, 143, 161, 139, 147, 143, 135, 140, 144, 149, 146, 144, 149, 143, 141, 147, 148, 141, 145, 146, 148, 147, 142, 156, 146, 148, 139, 145, 141, 151, 142, 135, 135, 148, 149, 140, 136, 144, 144, 148, 166, 146, 154, 148, 139, 142, 144, 145, 133, 142, 134, 134, 144, 145, 148, 142, 148, 149, 147, 144, 154, 141, 143, 142, 146, 150, 140, 141, 180, 139, 150, 157, 148, 141, 149, 148, 133, 150, 146, 142, 157, 142, 135, 138, 143, 145, 143, 144, 144, 149, 149, 152, 144, 143, 145, 134, 149, 154, 150, 142, 141, 143, 144, 148, 150, 150, 164, 161, 148, 146, 141, 144, 145, 148, 149, 158, 146, 146, 158, 148, 148, 151, 145, 146, 141, 138, 148, 157, 138, 135, 146, 142, 150, 133, 144, 142, 150, 163, 142, 138, 146, 145, 142, 147, 142, 144, 141, 146, 140, 149, 154, 137, 145, 146, 141, 144, 146, 142, 166, 144, 149, 147, 145, 140, 147, 143, 148, 141, 150, 152, 159, 147, 145, 140, 144, 140, 145, 149, 144, 148, 140, 148, 147, 145, 149, 146, 137, 148, 162, 142, 138, 132, 145, 146, 146, 142, 149, 144, 146, 161, 148, 146, 157, 144, 135, 141, 140, 141, 145, 144, 139, 148, 140, 144, 148, 147, 146, 149, 147, 144, 142, 138, 143, 143, 150, 146, 143, 143, 146, 146, 143, 151, 156, 145, 145, 147, 140, 136, 155, 148, 154, 146, 146, 146, 142, 142, 141, 142, 148, 150, 158, 147, 155, 164, 139, 149, 151, 149, 145, 150, 145, 138, 149, 170, 141, 146, 146, 142, 147, 147, 147, 139, 146, 140, 144, 143, 151, 149, 140, 142, 144, 143, 146, 142, 146, 150, 157, 158, 147, 146, 149, 149, 149, 145, 150, 148, 148, 146, 147, 143, 150, 147, 149, 164, 139, 143, 143, 140, 146, 143, 144, 144, 150, 146, 147, 146, 141, 146, 144, 146, 143, 148, 145, 148, 151, 152, 142, 149, 138, 144, 150, 150, 144, 140, 149, 149, 144, 148, 144, 148, 147, 146, 153, 145, 142, 142, 150, 145, 147, 147, 152, 144, 149, 140, 151, 145, 146, 166, 138, 142, 143, 161, 143, 148, 145, 144, 143, 142, 144, 143, 128, 144, 143, 143, 139, 146, 145, 156, 140, 146, 144, 147, 143, 144, 144, 146, 145, 143, 153, 148, 145, 147, 143, 144, 151, 144, 145, 140, 153, 144, 144, 150, 152, 145, 145, 149, 152, 142, 147, 146, 143, 142, 145, 143, 146, 149, 143, 143, 145, 146, 142, 147, 151, 148, 150, 148, 146, 153, 143, 140, 146, 147, 147, 147, 145, 146, 144, 140, 155, 148, 147, 144, 145, 143, 147, 146, 141, 143, 141, 150, 148, 145, 143, 134, 140, 148, 148, 146, 149, 146, 142, 147, 154, 144, 143, 146, 146, 148, 144, 138, 148, 148, 149, 148, 148, 139, 149, 146, 129, 145, 149, 149, 147, 144, 137, 148, 135, 144, 147, 145, 149, 149, 147, 159, 149, 148, 146, 144, 148, 177, 144, 142, 155, 147, 146, 151, 148, 135, 149, 145, 144, 142, 142, 146, 147, 149, 152, 150, 146, 144, 149, 145, 144, 146, 158, 155, 151, 144, 147, 148, 148, 146, 145, 148, 143, 149, 149, 144, 147, 149, 149, 141, 148, 146, 143, 142, 147, 156, 145, 146, 149, 147, 145, 148, 143, 149, 145, 150, 150, 147, 144, 150, 143, 144, 144, 137, 148, 142, 134, 150, 147, 142, 152, 154, 148, 136, 150, 140, 151, 148, 139, 147, 134, 150, 146, 146, 143, 142, 137, 151, 160, 148, 156, 133, 159, 142, 149, 153, 149, 144, 145, 141, 133, 142, 147, 152, 144, 148, 144, 184, 148, 144, 149, 146, 141, 157, 159, 142, 144, 145, 146, 174, 145, 151, 145, 138, 142, 154, 144, 123, 121, 162, 167, 139, 141, 134, 148, 145, 149, 135, 142, 147, 152, 165, 146, 161, 154, 148, 139, 145, 174, 184, 147, 143, 146, 156, 125, 133, 138, 149, 139, 154, 148, 149, 126, 149, 120, 163, 145, 181, 141, 156, 140, 142, 146, 155, 140, 167, 143, 128, 143, 136, 159, 147, 136, 144, 136, 147, 154, 140, 147, 165, 147, 137, 151, 149, 155, 145, 142, 143, 137, 148, 149, 154, 142, 144, 143, 150, 136, 146, 142, 150, 136, 140, 140, 146, 147, 118, 147, 134, 155, 154, 164, 133, 138, 151, 137, 141, 148, 157, 145, 153, 148, 141, 159, 145, 147, 137, 141, 148, 142, 124, 146, 163, 138, 145, 140, 155, 138, 141, 158, 148, 147, 156, 170, 144, 159, 147, 152, 154, 140, 159, 118, 145, 142, 145, 144, 140, 146, 149, 148, 157, 157, 147, 142, 150, 130, 139, 139, 149, 143, 134, 128, 144, 152, 153, 170, 149, 162, 143, 143, 144, 149, 143, 154, 137, 132, 138, 142, 144, 143, 135, 146, 144, 147, 151, 153, 139, 149, 144, 115, 142, 151, 148, 159, 137, 159, 155, 150, 135, 152, 118, 145, 138, 142, 154, 150, 138, 154, 142, 140, 145, 141, 141, 137, 200, 135, 132, 146, 123, 158, 154, 136, 142, 146, 144, 170, 158, 155, 153, 148, 133, 149, 148, 141, 142, 150, 137, 152, 140, 145, 145, 134, 145, 143, 158, 145, 142, 148, 154, 150, 137, 145, 142, 144, 141, 139, 140, 146, 145, 146, 139, 152, 142, 132, 147, 141, 140, 145, 152, 137, 151, 143, 154, 123, 148, 145, 145, 146, 152, 146, 146, 143, 141, 143, 149, 146, 148, 136, 151, 143, 146, 145, 132, 140, 140, 144, 150, 147, 144, 158, 142, 143, 154, 142, 142, 143, 143, 149, 141, 140, 141, 144, 145, 145, 139, 150, 151, 140, 139, 141, 141, 155, 141, 141, 142, 135, 154, 146, 144, 151, 152, 148, 142, 150, 142, 148, 150, 143, 148, 158, 142, 148, 156, 145, 149, 151, 153, 151, 149, 135, 141, 149, 146, 139, 145, 160, 149, 154, 142, 150, 157, 150, 148, 153, 145, 139, 149, 145, 151, 150, 142, 136, 152, 147, 146, 152, 149, 146, 144, 146, 137, 153, 147, 134, 147, 145, 152, 143, 131, 140, 134, 142, 147, 141, 149, 163, 116, 147, 144, 145, 145, 144, 142, 139, 153, 142, 144, 157, 142, 144, 140, 148, 147, 130, 135, 146, 155, 146, 140, 137, 147, 147, 145, 150, 151, 142, 131, 142, 148, 146, 143, 148, 146, 148, 136, 148, 154, 142, 151, 138, 151, 139, 142, 142, 138, 145, 152, 151, 146, 153, 147, 143, 134, 140, 132, 149, 130, 147, 150, 144, 143, 146, 142, 157, 147, 143, 143, 146, 144, 148, 149, 135, 138, 140, 144, 148, 146, 136, 147, 151, 148, 135, 148, 140, 148, 136, 147, 156, 145, 143, 147, 153, 138, 143, 144, 157, 136, 147, 145, 154, 134, 151, 136, 141, 147, 149, 144, 138, 175, 150, 141, 146, 144, 137, 143, 140, 146, 156, 154, 148, 138, 141, 148, 150, 129, 127, 139, 160, 142, 153, 153, 150, 151, 152, 150, 144, 154, 144, 155, 150, 139, 152, 152, 158, 145, 143, 152, 147, 142, 160, 148, 150, 148, 145, 134, 146, 143, 148, 152, 142, 137, 148, 142, 154, 157, 154, 142, 153, 155, 154, 141, 151, 149, 136, 153, 135, 141, 143, 138, 153, 144, 154, 141, 144, 142, 160, 142, 161, 147, 144, 153, 143, 140, 150, 143, 143, 149, 139, 142, 141, 147, 141, 143, 146, 154, 144, 144, 148, 141, 154, 141, 138, 144, 135, 150, 145, 146, 149, 143, 149, 158, 127, 147, 146, 146, 131, 144, 159, 139, 138, 149, 151, 154, 154, 141, 147, 154, 134, 143, 148, 139, 149, 141, 151, 151, 146, 123, 148, 146, 157, 145, 144, 145, 152, 146, 152, 148, 144, 130, 147, 140, 141, 150, 138, 142, 139, 148, 143, 136, 137, 140, 144, 151, 150, 143, 147, 145, 148, 141, 144, 140, 145, 135, 151, 138, 147, 134, 154, 148, 141, 159, 147, 140, 150, 154, 142, 160, 147, 147, 145, 162, 136, 151, 151, 144, 150, 143, 136, 142, 142, 148, 147, 130, 147, 134, 159, 150, 140, 134, 161, 164, 142, 139, 137, 144, 144, 141, 134, 149, 146, 139, 142, 134, 137, 146, 150, 147, 146, 146, 147, 141, 148, 150, 146, 148, 150, 137, 146, 145, 148, 141, 145, 148, 149, 148, 147, 140, 145, 144, 146, 149, 153, 144, 147, 145, 149, 148, 145, 150, 146, 131, 143, 143, 152, 148, 143, 149, 143, 148, 147, 150, 141, 147, 133, 142, 148, 146, 147, 149, 145, 145, 162, 146, 145, 144, 142, 147, 151, 145, 147, 90, 145, 145, 145, 146, 147, 146, 139, 147, 148, 148, 146, 143, 149, 149, 152, 152, 145, 149, 145, 163, 141, 144, 148, 145, 156, 146, 145, 145, 143, 136, 148, 144, 144, 148, 142, 145, 148, 149, 147, 148, 142, 144, 148, 146, 147, 146, 151, 136, 147, 146, 149, 147, 140, 142, 145, 145, 148, 146, 144, 145, 142, 141, 149, 149, 143, 144, 138, 143, 144, 152, 154, 147, 145, 145, 146, 148, 144, 148, 141, 149, 155, 149, 159, 144, 147, 150, 147, 142, 144, 142, 145, 136, 146, 147, 146, 144, 147, 148, 144, 156, 148, 150, 148, 141, 144, 149, 148, 144, 147, 144, 146, 146, 146, 138, 145, 148, 144, 149, 146, 146, 148, 147, 151, 154, 142, 147, 148, 155, 145, 148, 143, 138, 149, 148, 138, 149, 144, 149, 148, 151, 142, 148, 141, 145, 145, 150, 146, 146, 144, 139, 146, 147, 141, 144, 145, 164, 143, 144, 146, 146, 145, 145, 146, 145, 142, 148, 147, 147, 144, 142, 146, 143, 146, 152, 147, 153, 144, 145, 138, 136, 143, 144, 144, 145, 145, 143, 147, 142, 141, 151, 146, 148, 145, 141, 142, 148, 139, 147, 147, 147, 145, 142, 140, 157, 142, 144, 144, 143, 137, 145, 144, 138, 148, 143, 140, 147, 144, 144, 148, 138, 156, 142, 145, 137, 140, 147, 142, 148, 146, 138, 146, 146, 142, 141, 137, 148, 140, 142, 145, 136, 149, 148, 148, 144, 153, 136, 143, 137, 143, 136, 144, 140, 151, 143, 141, 160, 144, 151, 136, 143, 137, 146, 140, 138, 149, 153, 143, 147, 144, 136, 138, 143, 145, 144, 145, 146, 148, 141, 146, 141, 145, 145, 143, 140, 145, 142, 136, 148, 144, 147, 156, 145, 147, 144, 139, 153, 149, 140, 151, 144, 150, 146, 151, 152, 140, 149, 141, 149, 148, 146, 154, 147, 143, 146, 150, 146, 144, 143, 140, 150, 142, 145, 154, 146, 137, 142, 149, 152, 154, 150, 137, 157, 149, 150, 150, 146, 137, 147, 143, 151, 144, 148, 146, 149, 152, 144, 148, 141, 146, 148, 148, 150, 156, 151, 143, 140, 141, 139, 155, 146, 131, 138, 157, 142, 160, 145, 137, 139, 154, 145, 144, 136, 149, 142, 141, 150, 150, 137, 174, 152, 140, 148, 149, 167, 152, 147, 149, 144, 138, 143, 151, 151, 140, 143, 146, 153, 144, 148, 146, 146, 150, 163, 141, 150, 142, 162, 151, 152, 149, 139, 145, 144, 146, 152, 144, 144, 138, 155, 144, 158, 143, 146, 149, 146, 151, 155, 144, 145, 148, 144, 147, 147, 145, 137, 142, 144, 143, 142, 146, 145, 143, 140, 141, 149, 152, 149, 146, 151, 148, 145, 146, 150, 145, 150, 145, 141, 152, 132, 147, 156, 144, 142, 141, 154, 146, 143, 157, 140, 153, 150, 140, 143, 142, 149, 145, 131, 150, 147, 146, 151, 146, 142, 143, 140, 146, 149, 143, 143, 142, 148, 145, 152, 157, 148, 153, 146, 153, 147, 143, 145, 152, 145, 139, 146, 148, 144, 154, 145, 155, 148, 144, 131, 146, 159, 144, 145, 154, 151, 142, 141, 151, 147, 149, 154, 146, 142, 138, 148, 146, 147, 143, 148, 150, 149, 139, 148, 153, 159, 135, 142, 152, 137, 135, 145, 147, 143, 140, 149, 151, 145, 145, 144, 118, 149, 153, 149, 145, 149, 145, 145, 148, 145, 138, 139, 154, 144, 149, 166, 150, 141, 145, 137, 140, 147, 139, 142, 150, 144, 139, 145, 139, 148, 151, 147, 149, 147, 147, 150, 146, 142, 139, 148, 156, 154, 147, 144, 150, 140, 128, 138, 153, 143, 146, 146, 140, 148, 148, 156, 144, 133, 146, 139, 150, 162, 144, 156, 147, 161, 144, 157, 148, 152, 145, 144, 144, 146, 157, 142, 151, 138, 148, 148, 146, 149, 158, 154, 147, 152, 148, 154, 143, 150, 145, 140, 148, 148, 139, 157, 149, 147, 146, 151, 149, 148, 148, 150, 145, 148, 145, 154, 137, 154, 145, 145, 156, 153, 152, 147, 147, 148, 141, 146, 145, 144, 141, 146, 147, 146, 146, 144, 149, 152, 148, 146, 146, 151, 142, 137, 147, 149, 159, 146, 127, 147, 142, 147, 162, 150, 145, 144, 150, 146, 144, 156, 151, 153, 129, 139, 149, 138, 138, 145, 150, 126, 140, 150, 151, 147, 141, 145, 147, 143, 147, 149, 140, 151, 135, 142, 150, 144, 145, 154, 143, 144, 158, 146, 148, 145, 138, 147, 148, 144, 148, 135, 133, 145, 164, 145, 157, 139, 143, 139, 162, 141, 133, 139, 145, 133, 142, 143, 147, 140, 136, 146, 151, 143, 155, 148, 144, 142, 146, 142, 145, 160, 149, 146, 152, 134, 155, 142, 154, 138, 147, 151, 148, 147, 154, 146, 139, 149, 146, 153, 145, 139, 145, 147, 152, 149, 146, 140, 140, 142, 140, 149, 137, 143, 142, 144, 145, 139, 141, 145, 146, 155, 149, 143, 141, 149, 135, 143, 139, 142, 159, 148, 148, 142, 141, 142, 142, 149, 153, 138, 151, 150, 144, 159, 138, 138, 138, 147, 148, 148, 139, 142, 159, 148, 149, 167, 149, 152, 149, 147, 146, 147, 157, 144, 136, 145, 150, 150, 150, 145, 146, 145, 151, 148, 147, 148, 155, 144, 155, 140, 123, 186, 147, 145, 140, 134, 142, 147, 141, 148, 126, 142, 142, 153, 157, 144, 151, 141, 153, 140, 146, 149, 147, 151, 148, 146, 136, 144, 146, 145, 149, 165, 141, 142, 148, 151, 158, 155, 121, 139, 146, 139, 124, 144, 148, 134, 142, 139, 145, 146, 149, 145, 140, 147, 144, 141, 146, 138, 139, 132, 157, 173, 148, 152, 158, 144, 141, 151, 148, 157, 151, 145, 145, 149, 143, 150, 143, 144, 148, 148, 146, 141, 145, 145, 148, 146, 146, 149, 143, 152, 119, 142, 149, 154, 137, 147, 146, 140, 160, 147, 141, 147, 148, 147, 148, 148, 143, 152, 145, 152, 147, 147, 149, 139, 114, 150, 142, 143, 149, 153, 146, 145, 154, 144, 148, 137, 149, 153, 147, 148, 132, 145, 148, 145, 143, 149, 147, 147, 146, 137, 143, 142, 149, 147, 145, 135, 148, 139, 153, 135, 154, 143, 126, 141, 143, 147, 133, 151, 144, 158, 139, 154, 152, 153, 145, 143, 149, 148, 136, 146, 148, 144, 141, 151, 140, 148, 147, 147, 144, 153, 144, 150, 142, 154, 143, 150, 144, 146, 141, 139, 157, 138, 141, 140, 145, 134, 156, 147, 149, 147, 146, 146, 146, 147, 148, 149, 146, 142, 146, 113, 167, 151, 148, 150, 144, 140, 142, 149, 142, 139, 146, 128, 126, 145, 135, 151, 138, 142, 146, 146, 145, 159, 148, 138, 141, 141, 150, 147, 149, 145, 151, 142, 144, 147, 143, 143, 172, 148, 144, 149, 145, 143, 142, 153, 144, 144, 149, 152, 149, 144, 140, 152, 150, 140, 126, 141, 143, 148, 141, 147, 147, 150, 138, 142, 154, 148, 144, 142, 142, 137, 136, 147, 145, 148, 133, 154, 148, 145, 150, 144, 144, 148, 147, 147, 149, 145, 149, 143, 139, 147, 141, 148, 150, 155, 139, 145, 152, 148, 130, 142, 158, 161, 146, 131, 140, 142, 155, 158, 146, 134, 152, 151, 144, 149, 137, 148, 160, 148, 146, 151, 143, 145, 148, 146, 131, 151, 145, 134, 143, 151, 144, 145, 151, 154, 154, 151, 143, 150, 147, 140, 148, 138, 146, 136, 147, 140, 154, 143, 148, 153, 146, 145, 144, 143, 141, 142, 157, 152, 144, 147, 145, 154, 148, 144, 145, 141, 134, 146, 148, 156, 143, 153, 149, 144, 139, 143, 146, 160, 143, 145, 143, 140, 143, 152, 142, 149, 139, 144, 147, 147, 145, 143, 147, 147, 152, 155, 151, 145, 148, 151, 149, 137, 142, 148, 152, 145, 160, 149, 141, 145, 149, 154, 144, 146, 150, 149, 139, 143, 149, 149, 144, 149, 143, 152, 152, 145, 140, 144, 143, 141, 152, 147, 143, 154, 143, 149, 147, 149, 139, 141, 144, 154, 139, 148, 147, 151, 135, 141, 148, 150, 145, 148, 143, 145, 147, 147, 146, 156, 147, 149, 147, 139, 149, 137, 148, 139, 145, 149, 146, 140, 141, 139, 148, 149, 151, 152, 145, 149, 148, 146, 142, 144, 149, 138, 149, 149, 142, 142, 155, 148, 138, 151, 146, 149, 144, 149, 150, 142, 152, 146, 142, 145, 146, 148, 151, 138, 148, 140, 153, 144, 151, 140, 151, 146, 142, 153, 143, 148, 140, 140, 159, 150, 134, 146, 150, 157, 148, 140, 150, 138, 144, 148, 139, 143, 144, 152, 151, 140, 142, 146, 148, 141, 140, 146, 147, 143, 151, 158, 142, 142, 143, 152, 140, 139, 141, 140, 145, 148, 143, 143, 154, 145, 139, 149, 143, 142, 144, 141, 140, 152, 159, 144, 145, 142, 148, 132, 140, 147, 142, 141, 140, 149, 132, 149, 154, 135, 142, 148, 145, 142, 146, 146, 146, 147, 142, 141, 150, 149, 146, 138, 146, 154, 147, 154, 142, 145, 147, 142, 147, 138, 147, 145, 153, 148, 147, 144, 146, 146, 152, 151, 145, 151, 140, 145, 142, 146, 141, 151, 148, 143, 146, 151, 143, 150, 142, 132, 146, 144, 143, 145, 145, 138, 146, 146, 146, 143, 148, 140, 143, 149, 152, 136, 143, 144, 132, 147, 148, 144, 143, 138, 141, 143, 147, 145, 143, 145, 150, 146, 151, 152, 142, 149, 138, 145, 146, 147, 149, 149, 150, 143, 147, 143, 147, 149, 149, 144, 142, 146, 144, 144, 150, 144, 143, 145, 147, 137, 143, 149, 140, 146, 147, 142, 146, 145, 142, 146, 146, 144, 150, 146, 147, 125, 141, 147, 147, 144, 141, 145, 146, 142, 144, 143, 147, 160, 135, 145, 161, 153, 148, 149, 147, 148, 145, 146, 149, 143, 145, 151, 143, 147, 144, 148, 149, 148, 143, 147, 145, 138, 152, 145, 144, 147, 144, 141, 140, 144, 143, 146, 144, 145, 141, 146, 138, 142, 142, 146, 118, 150, 149, 147, 151, 147, 146, 142, 148, 164, 158, 139, 146, 141, 142, 148, 144, 148, 143, 147, 154, 150, 150, 143, 144, 143, 150, 147, 146, 144, 146, 148, 150, 142, 145, 151, 142, 145, 146, 139, 146, 148, 153, 144, 138, 142, 150, 153, 141, 148, 147, 145, 149, 149, 145, 153, 154, 143, 147, 148, 147, 149, 143, 148, 147, 144, 146, 147, 146, 153, 145, 144, 139, 137, 144, 155, 145, 143, 141, 145, 143, 146, 150, 148, 141, 139, 146, 144, 144, 162, 145, 149, 140, 145, 180, 151, 168, 139, 107, 141, 137, 144, 145, 137, 140, 138, 152, 155, 145, 141, 143, 147, 142, 136, 149, 133, 148, 145, 138, 143, 141, 151, 144, 151, 160, 150, 140, 141, 151, 143, 144, 151, 145, 141, 128, 148, 149, 146, 147, 145, 150, 150, 146, 151, 147, 144, 142, 148, 145, 149, 142, 147, 148, 146, 142, 140, 157, 140, 124, 146, 138, 152, 148, 133, 169, 147, 154, 142, 176, 138, 107, 143, 141, 145, 138, 142, 151, 140, 135, 148, 149, 144, 143, 137, 144, 145, 145, 139, 146, 144, 144, 153, 148, 143, 138, 133, 148, 140, 143, 142, 138, 143, 147, 144, 155, 137, 143, 146, 139, 145, 182, 150, 141, 139, 145, 155, 147, 151, 148, 163, 152, 141, 109, 148, 146, 150, 114, 142, 152, 152, 150, 140, 153, 145, 151, 147, 146, 148, 146, 133, 151, 132, 151, 154, 144, 146, 142, 191, 140, 142, 150, 150, 142, 146, 150, 145, 151, 145, 144, 145, 142, 146, 152, 149, 142, 142, 140, 166, 153, 151, 147, 141, 148, 154, 147, 147, 138, 138, 153, 147, 149, 144, 141, 126, 148, 151, 150, 153, 140, 148, 142, 139, 135, 142, 142, 142, 154, 155, 146, 125, 140, 149, 146, 143, 149, 141, 149, 151, 141, 143, 138, 147, 163, 141, 163, 148, 154, 145, 146, 131, 143, 141, 140, 140, 158, 143, 146, 140, 149, 147, 141, 143, 147, 139, 135, 148, 143, 132, 164, 147, 109, 124, 152, 150, 139, 146, 147, 142, 148, 158, 149, 144, 145, 139, 145, 153, 141, 139, 128, 152, 148, 143, 206, 146, 165, 134, 153, 146, 142, 148, 145, 143, 144, 122, 140, 134, 154, 155, 150, 136, 146, 169, 148, 139, 146, 113, 149, 160, 144, 149, 146, 142, 146, 141, 151, 154, 161, 151, 158, 145, 143, 149, 123, 144, 141, 129, 144, 149, 146, 146, 149, 149, 138, 146, 147, 153, 171, 150, 159, 146, 149, 135, 146, 153, 145, 143, 150, 111, 154, 150, 159, 137, 153, 150, 146, 141, 148, 145, 136, 138, 140, 149, 152, 127, 129, 150, 140, 151, 147, 149, 159, 146, 140, 146, 143, 147, 140, 143, 131, 157, 149, 145, 149, 143, 148, 142, 143, 144, 151, 140, 148, 143, 149, 142, 145, 157, 144, 149, 146, 139, 153, 141, 148, 140, 145, 145, 145, 142, 141, 132, 143, 144, 157, 148, 105, 143, 137, 149, 142, 146, 154, 146, 148, 146, 147, 143, 147, 141, 199, 142, 146, 156, 147, 133, 135, 147, 148, 140, 151, 142, 143, 145, 145, 141, 152, 151, 146, 150, 151, 140, 148, 140, 142, 145, 150, 143, 126, 142, 144, 151, 150, 148, 141, 153, 148, 148, 153, 149, 143, 148, 147, 126, 148, 144, 156, 147, 138, 149, 150, 157, 155, 152, 169, 141, 124, 165, 151, 155, 144, 132, 151, 151, 151, 148, 150, 143, 150, 146, 144, 147, 140, 146, 149, 156, 149, 132, 146, 148, 127, 145, 153, 143, 133, 142, 140, 149, 142, 143, 142, 141, 149, 153, 145, 143, 146, 139, 146, 152, 151, 144, 158, 140, 152, 143, 159, 140, 145, 146, 136, 146, 146, 145, 158, 153, 145, 160, 148, 155, 152, 151, 149, 139, 150, 142, 149, 153, 145, 145, 143, 138, 122, 152, 158, 147, 140, 165, 140, 141, 145, 142, 152, 149, 151, 137, 148, 136, 146, 155, 146, 146, 159, 148, 148, 147, 144, 138, 161, 150, 146, 156, 146, 147, 150, 148, 143, 152, 145, 149, 145, 151, 141, 137, 139, 140, 140, 156, 158, 145, 158, 148, 155, 149, 143, 146, 141, 146, 132, 132, 149, 145, 136, 148, 149, 145, 152, 145, 135, 144, 145, 143, 157, 156, 153, 151, 150, 157, 144, 154, 147, 142, 149, 139, 150, 101, 170, 140, 148, 147, 158, 150, 129, 159, 155, 135, 146, 144, 153, 142, 148, 151, 143, 134, 143, 144, 143, 141, 141, 152, 138, 140, 154, 156, 151, 139, 149, 152, 153, 135, 159, 141, 132, 144, 151, 144, 146, 152, 137, 141, 140, 134, 150, 155, 154, 129, 138, 153, 152, 143, 140, 154, 142, 129, 145, 150, 140, 146, 131, 149, 130, 148, 134, 131, 145, 143, 137, 149, 145, 187, 157, 145, 165, 158, 145, 156, 151, 154, 138, 144, 159, 146, 146, 148, 147, 159, 148, 152, 143, 142, 154, 146, 145, 145, 147, 152, 147, 134, 155, 146, 141, 148, 127, 140, 144, 150, 152, 150, 142, 135, 148, 162, 151, 144, 148, 134, 149, 140, 143, 145, 148, 151, 147, 142, 131, 142, 141, 151, 146, 142, 138, 160, 144, 163, 149, 144, 146, 138, 147, 147, 146, 144, 151, 144, 142, 145, 145, 144, 151, 137, 139, 135, 146, 145, 147, 143, 145, 168, 151, 147, 145, 144, 164, 135, 149, 133, 144, 151, 143, 148, 150, 141, 145, 145, 150, 143, 155, 157, 137, 131, 147, 140, 148, 144, 148, 145, 143, 150, 140, 142, 145, 137, 141, 140, 151, 153, 141, 145, 146, 147, 156, 150, 148, 144, 142, 147, 140, 143, 150, 151, 144, 145, 154, 145, 141, 143, 141, 143, 143, 145, 150, 148, 140, 156, 146, 142, 139, 154, 147, 137, 149, 145, 150, 134, 146, 145, 147, 147, 143, 147, 144, 112, 142, 152, 145, 141, 162, 140, 148, 160, 149, 153, 147, 151, 153, 146, 140, 147, 148, 142, 145, 144, 150, 145, 143, 151, 144, 149, 138, 143, 145, 138, 141, 144, 151, 144, 148, 143, 146, 143, 135, 148, 148, 146, 151, 146, 140, 144, 140, 154, 160, 143, 139, 147, 134, 140, 153, 145, 143, 142, 136, 147, 151, 144, 149, 161, 150, 140, 150, 145, 149, 145, 155, 148, 148, 146, 151, 144, 151, 141, 151, 150, 142, 150, 151, 144, 143, 149, 150, 158, 151, 144, 149, 148, 140, 138, 147, 145, 147, 144, 139, 145, 127, 145, 151, 146, 142, 148, 142, 154, 149, 141, 145, 149, 148, 144, 144, 144, 137, 146, 150, 148, 141, 148, 152, 143, 146, 153, 143, 150, 146, 151, 147, 150, 148, 150, 149, 154, 145, 141, 146, 141, 143, 144, 147, 146, 141, 129, 145, 145, 145, 146, 147, 146, 145, 152, 151, 147, 144, 146, 145, 152, 145, 149, 147, 149, 145, 148, 153, 145, 148, 148, 144, 151, 141, 142, 145, 149, 147, 150, 146, 159, 144, 150, 145, 149, 148, 145, 148, 141, 149, 154, 146, 146, 145, 144, 146, 140, 149, 147, 142, 146, 154, 144, 146, 145, 148, 140, 148, 145, 144, 145, 151, 156, 145, 150, 146, 147, 152, 146, 145, 151, 147, 145, 147, 145, 148, 145, 145, 149, 144, 151, 146, 143, 147, 144, 146, 147, 141, 144, 144, 147, 146, 151, 139, 146, 146, 146, 144, 148, 150, 146, 146, 146, 144, 144, 149, 147, 145, 145, 147, 147, 145, 143, 147, 143, 148, 148, 147, 149, 145, 143, 147, 147, 147, 143, 146, 145, 145, 140, 151, 145, 145, 144, 145, 143, 146, 144, 143, 145, 146, 145, 144, 143, 143, 145, 157, 149, 149, 148, 148, 153, 150, 147, 146, 152, 144, 152, 146, 144, 144, 143, 146, 143, 150, 157, 148, 145, 145, 146, 145, 146, 137, 150, 146, 146, 142, 148, 138, 149, 148, 147, 148, 145, 143, 143, 143, 143, 144, 145, 142, 145, 144, 147, 147, 141, 149, 141, 145, 142, 142, 151, 146, 147, 147, 143, 147, 147, 149, 143, 156, 145, 140, 130, 151, 150, 147, 132, 149, 144, 146, 136, 148, 143, 150, 146, 148, 142, 150, 145, 145, 153, 143, 148, 146, 154, 146, 144, 144, 146, 145, 146, 137, 143, 144, 148, 143, 146, 149, 147, 145, 156, 142, 156, 140, 148, 145, 137, 141, 145, 142, 149, 145, 141, 146, 142, 153, 153, 141, 151, 148, 146, 144, 146, 145, 141, 145, 150, 141, 152, 148, 146, 145, 148, 147, 135, 137, 139, 139, 147, 147, 147, 148, 149, 141, 145, 163, 154, 151, 147, 137, 146, 150, 150, 142, 142, 151, 137, 140, 155, 147, 147, 142, 149, 151, 137, 147, 142, 144, 140, 147, 148, 147, 141, 155, 140, 142, 148, 149, 149, 133, 135, 148, 154, 148, 156, 155, 142, 137, 147, 145, 142, 145, 146, 145, 144, 161, 149, 143, 143, 142, 139, 141, 145, 156, 143, 146, 155, 140, 140, 135, 126, 133, 146, 146, 145, 150, 159, 148, 144, 149, 143, 139, 149, 145, 144, 143, 139, 141, 146, 140, 140, 145, 147, 164, 152, 133, 157, 153, 155, 144, 151, 152, 149, 146, 151, 139, 137, 145, 147, 145, 144, 153, 157, 142, 146, 152, 141, 143, 124, 161, 146, 140, 152, 143, 153, 149, 146, 140, 153, 141, 146, 144, 152, 139, 140, 148, 147, 136, 137, 154, 145, 137, 136, 146, 153, 144, 145, 147, 149, 153, 146, 140, 140, 146, 141, 150, 149, 143, 156, 149, 154, 144, 139, 156, 138, 147, 142, 141, 141, 141, 156, 145, 145, 141, 145, 145, 146, 139, 149, 144, 144, 146, 145, 145, 145, 137, 151, 144, 143, 143, 158, 134, 144, 142, 147, 156, 140, 146, 143, 140, 137, 146, 152, 151, 160, 144, 159, 139, 165, 136, 139, 144, 149, 137, 165, 149, 152, 134, 136, 145, 145, 128, 142, 150, 142, 152, 164, 151, 142, 125, 133, 152, 160, 151, 154, 141, 141, 145, 149, 146, 146, 148, 147, 146, 145, 150, 145, 154, 151, 141, 149, 153, 154, 139, 158, 151, 136, 155, 151, 153, 140, 141, 154, 152, 144, 151, 144, 149, 139, 136, 150, 141, 151, 133, 150, 145, 153, 151, 145, 142, 153, 153, 156, 151, 140, 150, 145, 139, 152, 143, 144, 157, 151, 136, 146, 148, 142, 145, 150, 150, 136, 142, 155, 152, 131, 145, 149, 151, 153, 148, 131, 148, 153, 137, 139, 139, 153, 137, 143, 141, 149, 139, 154, 144, 146, 146, 148, 149, 141, 136, 134, 153, 143, 144, 146, 141, 140, 146, 149, 154, 148, 141, 153, 144, 145, 139, 146, 146, 142, 140, 152, 162, 148, 151, 140, 136, 140, 143, 137, 136, 148, 155, 141, 144, 145, 137, 148, 141, 146, 143, 155, 146, 142, 138, 147, 156, 141, 140, 154, 143, 136, 145, 143, 151, 149, 147, 156, 144, 131, 145, 150, 144, 149, 135, 166, 144, 145, 158, 163, 160, 148, 151, 153, 140, 142, 141, 148, 143, 144, 151, 145, 141, 146, 142, 147, 147, 158, 140, 141, 150, 132, 146, 142, 137, 139, 143, 148, 140, 143, 145, 147, 164, 144, 140, 142, 157, 149, 151, 146, 146, 149, 135, 145, 142, 141, 150, 151, 133, 125, 153, 141, 148, 175, 133, 138, 148, 148, 144, 151, 144, 150, 142, 146, 153, 138, 146, 143, 154, 140, 153, 158, 151, 153, 148, 160, 152, 150, 150, 150, 151, 153, 144, 162, 157, 145, 132, 157, 137, 135, 139, 161, 143, 142, 149, 154, 162, 145, 158, 158, 124, 121, 70, 151, 140, 142, 137, 134, 150, 140, 144, 148, 131, 143, 145, 142, 145, 137, 141, 146, 146, 141, 160, 146, 147, 144, 122, 157, 161, 141, 140, 138, 151, 151, 132, 137, 138, 148, 140, 158, 149, 148, 156, 143, 146, 144, 148, 147, 156, 138, 142, 142, 163, 144, 144, 144, 147, 141, 150, 136, 154, 140, 156, 145, 136, 145, 156, 140, 142, 145, 150, 148, 145, 139, 150, 140, 147, 141, 136, 141, 133, 161, 144, 151, 147, 150, 142, 132, 156, 150, 164, 143, 126, 161, 140, 161, 147, 134, 145, 126, 146, 145, 137, 148, 154, 151, 132, 147, 157, 160, 161, 140, 147, 142, 150, 151, 171, 137, 140, 149, 137, 142, 132, 177, 141, 147, 143, 131, 126, 168, 148, 147, 141, 144, 126, 142, 152, 139, 144, 148, 150, 133, 133, 154, 146, 152, 148, 146, 139, 145, 131, 159, 141, 139, 147, 202, 131, 149, 144, 132, 149, 139, 156, 160, 147, 146, 138, 141, 147, 133, 153, 146, 146, 148, 151, 154, 131, 152, 144, 156, 148, 142, 150, 140, 149, 199, 140, 150, 146, 143, 139, 146, 138, 131, 143, 155, 142, 155, 160, 130, 145, 126, 149, 142, 138, 135, 143, 147, 143, 152, 152, 144, 156, 152, 126, 128, 151, 149, 145, 147, 144, 148, 148, 149, 150, 147, 144, 145, 144, 143, 148, 148, 144, 145, 148, 142, 147, 146, 148, 144, 146, 149, 142, 141, 149, 145, 147, 150, 146, 147, 150, 144, 148, 149, 148, 150, 147, 144, 145, 143, 148, 147, 145, 146, 143, 147, 149, 148, 140, 145, 130, 146, 137, 148, 146, 147, 148, 143, 140, 149, 148, 145, 147, 143, 143, 142, 147, 150, 147, 146, 147, 165, 147, 147, 147, 150, 144, 143, 145, 148, 146, 149, 142, 148, 140, 144, 144, 147, 145, 147, 145, 145, 148, 151, 141, 145, 151, 145, 142, 169, 144, 146, 145, 148, 145, 148, 146, 147, 148, 149, 150, 148, 147, 148, 145, 146, 146, 148, 144, 142, 147, 145, 145, 143, 143, 151, 150, 143, 150, 151, 148, 140, 148, 145, 146, 148, 144, 148, 148, 144, 147, 146, 147, 151, 147, 146, 144, 145, 148, 136, 146, 145, 145, 148, 146, 144, 145, 145, 146, 147, 149, 142, 144, 145, 143, 148, 147, 146, 142, 147, 146, 145, 145, 150, 148, 147, 149, 149, 147, 142, 147, 143, 147, 118, 148, 146, 144, 146, 146, 133, 148, 146, 148, 122, 146, 146, 149, 143, 144, 147, 148, 144, 145, 141, 145, 149, 135, 160, 137, 142, 145, 143, 153, 146, 148, 145, 146, 151, 150, 149, 148, 148, 146, 147, 145, 145, 145, 149, 147, 146, 152, 147, 145, 150, 143, 143, 146, 152, 147, 142, 145, 146, 147, 143, 142, 147, 146, 149, 147, 143, 144, 147, 146, 154, 148, 127, 135, 150, 152, 163, 131, 156, 145, 133, 153, 135, 151, 146, 158, 158, 143, 147, 145, 152, 145, 141, 171, 150, 143, 148, 152, 142, 132, 132, 159, 150, 152, 150, 140, 152, 146, 166, 136, 147, 82, 136, 130, 151, 149, 148, 143, 147, 144, 135, 138, 153, 141, 153, 154, 149, 146, 128, 146, 145, 140, 146, 158, 143, 136, 154, 145, 147, 140, 150, 149, 146, 138, 130, 151, 149, 139, 151, 155, 155, 151, 138, 145, 143, 186, 140, 141, 146, 161, 148, 140, 135, 143, 145, 145, 141, 123, 156, 126, 150, 145, 154, 152, 145, 153, 149, 134, 136, 170, 131, 138, 128, 151, 152, 147, 132, 141, 148, 142, 143, 134, 152, 157, 144, 153, 157, 139, 145, 145, 136, 143, 145, 147, 142, 146, 145, 147, 150, 147, 139, 132, 145, 147, 149, 138, 139, 125, 156, 150, 146, 152, 135, 150, 160, 138, 129, 120, 141, 137, 147, 145, 148, 138, 144, 137, 149, 142, 140, 130, 141, 159, 139, 103, 150, 155, 136, 147, 155, 151, 141, 144, 145, 152, 155, 133, 151, 146, 151, 138, 146, 132, 144, 127, 168, 124, 137, 147, 139, 152, 147, 158, 159, 150, 160, 148, 149, 144, 146, 148, 141, 144, 137, 152, 162, 148, 123, 146, 177, 146, 176, 152, 143, 143, 156, 140, 147, 143, 142, 145, 135, 136, 135, 149, 157, 150, 157, 140, 152, 146, 152, 132, 142, 145, 140, 134, 152, 143, 131, 143, 138, 149, 155, 138, 142, 155, 148, 143, 143, 145, 145, 148, 145, 146, 147, 147, 145, 161, 149, 147, 160, 148, 147, 145, 149, 144, 140, 147, 147, 148, 150, 133, 144, 146, 169, 145, 151, 154, 151, 149, 138, 153, 147, 145, 148, 146, 145, 147, 146, 159, 147, 155, 144, 148, 147, 147, 155, 151, 159, 143, 139, 145, 145, 147, 152, 150, 146, 148, 148, 149, 144, 150, 144, 148, 143, 134, 148, 146, 140, 154, 153, 144, 149, 151, 136, 139, 138, 145, 149, 156, 150, 153, 149, 146, 139, 146, 143, 146, 145, 151, 145, 148, 145, 146, 142, 142, 144, 146, 143, 146, 145, 148, 138, 144, 149, 146, 146, 143, 152, 143, 140, 144, 140, 166, 144, 147, 146, 142, 143, 148, 140, 144, 136, 144, 145, 149, 149, 151, 142, 144, 141, 140, 142, 148, 144, 148, 148, 150, 151, 149, 149, 148, 146, 142, 140, 144, 145, 142, 144, 147, 143, 141, 136, 146, 148, 147, 147, 143, 147, 156, 150, 142, 147, 150, 147, 139, 144, 148, 145, 158, 143, 141, 145, 142, 153, 141, 153, 145, 153, 140, 152, 146, 142, 141, 154, 135, 146, 147, 150, 145, 147, 148, 146, 144, 147, 133, 146, 144, 151, 144, 146, 151, 145, 148, 150, 147, 148, 145, 164, 143, 148, 145, 146, 139, 151, 142, 143, 139, 145, 146, 145, 147, 142, 147, 144, 130, 147, 156, 147, 144, 139, 148, 152, 149, 145, 144, 144, 144, 143, 146, 144, 151, 147, 146, 140, 142, 162, 148, 150, 142, 149, 147, 147, 147, 138, 141, 146, 142, 152, 148, 144, 149, 143, 151, 149, 147, 143, 125, 149, 144, 127, 151, 145, 177, 146, 145, 140, 135, 146, 146, 149, 149, 144, 144, 144, 144, 147, 143, 85, 140, 131, 137, 150, 147, 145, 139, 145, 144, 151, 147, 147, 97, 147, 140, 150, 145, 142, 146, 151, 212, 143, 146, 139, 139, 142, 141, 146, 148, 148, 143, 153, 142, 156, 146, 143, 142, 142, 147, 142, 154, 150, 147, 146, 198, 153, 144, 153, 148, 121, 149, 148, 144, 150, 143, 150, 132, 150, 149, 165, 154, 145, 145, 145, 148, 143, 142, 144, 150, 144, 146, 148, 145, 148, 145, 151, 146, 177, 145, 144, 142, 148, 148, 140, 150, 138, 123, 144, 142, 147, 142, 171, 139, 143, 148, 144, 153, 147, 159, 142, 150, 148, 149, 143, 138, 145, 149, 148, 147, 151, 141, 154, 135, 147, 151, 144, 147, 150, 143, 146, 144, 154, 145, 148, 149, 148, 144, 140, 151, 144, 139, 149, 153, 130, 136, 143, 152, 149, 145, 152, 142, 144, 146, 137, 146, 143, 149, 154, 149, 144, 143, 145, 148, 187, 141, 150, 149, 146, 147, 139, 159, 139, 149, 156, 137, 137, 137, 143, 149, 118, 148, 144, 150, 141, 145, 144, 147, 143, 150, 153, 145, 145, 141, 150, 140, 159, 153, 141, 149, 148, 147, 143, 143, 143, 142, 148, 149, 149, 158, 143, 153, 142, 150, 131, 151, 157, 137, 142, 140, 193, 153, 147, 141, 147, 152, 141, 146, 140, 148, 142, 142, 144, 145, 144, 144, 149, 146, 148, 148, 151, 146, 144, 148, 145, 135, 149, 139, 142, 120, 148, 165, 136, 149, 147, 141, 140, 135, 147, 140, 147, 147, 148, 148, 150, 149, 128, 148, 148, 148, 147, 144, 144, 140, 149, 143, 150, 151, 143, 139, 146, 143, 147, 148, 141, 146, 148, 176, 143, 144, 142, 152, 142, 145, 147, 149, 131, 143, 148, 147, 147, 144, 144, 167, 149, 148, 145, 144, 143, 146, 146, 140, 146, 149, 140, 141, 138, 146, 143, 144, 142, 144, 145, 148, 149, 144, 175, 136, 145, 149, 146, 146, 146, 144, 148, 150, 149, 136, 144, 145, 145, 150, 147, 146, 148, 145, 144, 145, 147, 146, 143, 156, 146, 146, 147, 149, 147, 148, 164, 148, 148, 147, 142, 140, 147, 148, 144, 148, 143, 144, 147, 150, 148, 145, 153, 147, 143, 144, 147, 152, 142, 143, 144, 149, 148, 142, 140, 143, 163, 147, 146, 144, 138, 146, 147, 142, 152, 145, 139, 142, 148, 154, 145, 144, 146, 145, 141, 150, 148, 144, 144, 142, 147, 144, 146, 141, 143, 145, 147, 143, 148, 140, 158, 151, 145, 142, 148, 145, 147, 146, 146, 149, 150, 142, 144, 145, 138, 142, 150, 146, 137, 147, 144, 147, 149, 143, 146, 144, 144, 141, 145, 147, 160, 146, 141, 146, 152, 149, 145, 142, 141, 145, 148, 142, 142, 149, 147, 161, 144, 153, 159, 141, 149, 145, 140, 148, 159, 114, 140, 150, 145, 146, 147, 147, 143, 145, 150, 147, 148, 161, 179, 143, 148, 146, 164, 147, 137, 145, 145, 144, 152, 135, 145, 146, 143, 152, 143, 152, 154, 154, 146, 147, 151, 153, 153, 144, 140, 148, 146, 152, 144, 146, 142, 143, 146, 165, 140, 162, 144, 146, 149, 142, 143, 147, 144, 156, 149, 144, 144, 153, 144, 152, 150, 151, 168, 154, 146, 148, 147, 141, 147, 157, 149, 149, 144, 140, 149, 144, 145, 146, 142, 149, 150, 139, 152, 151, 141, 142, 151, 146, 142, 134, 154, 148, 150, 129, 147, 143, 158, 144, 143, 148, 147, 166, 129, 145, 148, 149, 142, 149, 148, 145, 146, 143, 148, 157, 147, 147, 147, 143, 143, 143, 145, 143, 148, 163, 142, 140, 153, 145, 146, 143, 137, 146, 153, 143, 143, 160, 145, 143, 147, 145, 142, 146, 147, 154, 144, 155, 149, 152, 139, 148, 148, 118, 141, 146, 154, 143, 139, 151, 132, 155, 147, 145, 153, 143, 149, 149, 138, 165, 150, 142, 161, 142, 134, 147, 148, 150, 147, 152, 128, 146, 155, 147, 139, 143, 138, 145, 153, 147, 145, 145, 150, 149, 149, 154, 134, 132, 148, 139, 146, 145, 143, 143, 145, 140, 141, 143, 149, 146, 151, 154, 146, 147, 142, 141, 145, 145, 140, 145, 150, 149, 167, 154, 141, 146, 141, 145, 149, 149, 138, 143, 149, 178, 150, 149, 153, 151, 143, 145, 137, 136, 151, 147, 189, 157, 151, 145, 151, 148, 157, 150, 154, 144, 142, 143, 142, 149, 150, 161, 153, 150, 143, 149, 145, 144, 149, 145, 142, 143, 146, 143, 154, 138, 144, 140, 150, 141, 148, 139, 137, 82, 148, 151, 147, 149, 154, 152, 143, 150, 147, 145, 151, 148, 147, 148, 147, 145, 157, 143, 151, 148, 146, 142, 145, 145, 138, 140, 156, 143, 145, 190, 141, 148, 146, 143, 151, 146, 146, 101, 143, 147, 144, 156, 141, 158, 140, 142, 146, 140, 146, 153, 147, 147, 147, 142, 139, 148, 150, 150, 137, 149, 147, 110, 144, 147, 148, 145, 135, 155, 139, 139, 143, 155, 149, 144, 142, 143, 137, 151, 142, 149, 148, 140, 147, 146, 155, 151, 144, 139, 145, 144, 149, 148, 144, 150, 137, 144, 149, 139, 145, 147, 145, 151, 146, 191, 150, 141, 147, 144, 142, 150, 150, 143, 144, 148, 141, 154, 143, 147, 142, 148, 154, 144, 157, 141, 146, 130, 142, 145, 144, 140, 144, 145, 150, 136, 144, 148, 150, 143, 150, 149, 143, 141, 149, 151, 141, 148, 137, 144, 141, 142, 152, 156, 144, 144, 145, 150, 147, 140, 150, 146, 144, 149, 142, 148, 144, 142, 152, 144, 142, 144, 139, 147, 135, 151, 150, 146, 149, 142, 144, 145, 175, 147, 146, 141, 144, 145, 148, 143, 150, 148, 143, 143, 144, 145, 146, 135, 155, 151, 152, 147, 143, 152, 141, 146, 148, 150, 139, 143, 143, 155, 144, 150, 142, 146, 146, 146, 143, 137, 150, 150, 150, 148, 161, 144, 138, 141, 132, 138, 146, 142, 142, 146, 143, 147, 147, 147, 138, 143, 153, 136, 140, 164, 148, 147, 149, 142, 151, 146, 144, 141, 142, 149, 150, 141, 144, 147, 148, 146, 145, 148, 132, 136, 139, 141, 154, 147, 143, 151, 147, 143, 159, 152, 139, 135, 139, 148, 144, 141, 147, 147, 141, 149, 142, 144, 151, 147, 148, 144, 145, 143, 146, 136, 141, 146, 161, 163, 143, 142, 130, 155, 148, 143, 144, 150, 152, 143, 136, 134, 140, 149, 144, 154, 142, 139, 139, 156, 140, 145, 136, 151, 160, 156, 144, 145, 139, 151, 143, 147, 125, 144, 149, 131, 142, 157, 133, 147, 156, 145, 131, 149, 129, 144, 153, 138, 143, 142, 140, 139, 152, 129, 145, 135, 140, 147, 143, 144, 149, 143, 148, 144, 141, 141, 135, 147, 146, 142, 141, 143, 164, 141, 140, 145, 152, 158, 143, 148, 141, 159, 149, 139, 144, 141, 178, 152, 147, 150, 143, 150, 136, 139, 151, 160, 148, 140, 142, 151, 149, 153, 146, 154, 140, 151, 144, 150, 143, 148, 147, 158, 144, 142, 149, 147, 143, 147, 134, 138, 151, 139, 150, 156, 138, 151, 152, 133, 136, 135, 146, 143, 139, 144, 149, 146, 162, 145, 151, 140, 142, 152, 145, 118, 142, 148, 154, 146, 149, 157, 148, 142, 154, 148, 143, 145, 144, 147, 147, 145, 146, 153, 144, 147, 141, 127, 148, 140, 138, 139, 151, 147, 141, 146, 151, 149, 132, 150, 149, 147, 142, 133, 141, 131, 147, 144, 146, 140, 137, 150, 151, 141, 135, 152, 150, 142, 145, 141, 145, 142, 143, 147, 151, 146, 148, 144, 145, 148, 156, 147, 135, 141, 145, 154, 148, 151, 144, 147, 147, 142, 152, 141, 150, 147, 153, 147, 177, 143, 140, 148, 141, 144, 152, 144, 147, 141, 145, 139, 149, 141, 145, 145, 138, 129, 144, 146, 138, 153, 145, 146, 145, 144, 150, 142, 156, 149, 143, 143, 140, 146, 145, 152, 161, 149, 148, 143, 146, 143, 142, 130, 145, 156, 147, 146, 144, 142, 139, 152, 143, 142, 144, 140, 144, 149, 148, 146, 150, 138, 137, 148, 147, 142, 146, 154, 140, 134, 145, 154, 147, 147, 147, 149, 140, 166, 139, 152, 141, 140, 148, 149, 153, 140, 151, 148, 151, 138, 139, 144, 123, 149, 142, 149, 141, 148, 147, 153, 147, 150, 140, 143, 155, 144, 147, 142, 144, 148, 156, 138, 153, 140, 150, 164, 147, 141, 148, 143, 149, 141, 147, 140, 155, 139, 139, 141, 146, 144, 149, 144, 143, 149, 154, 146, 145, 151, 148, 147, 136, 136, 146, 145, 155, 151, 146, 138, 144, 139, 148, 154, 149, 139, 149, 145, 146, 144, 143, 143, 142, 143, 147, 151, 151, 144, 148, 147, 141, 149, 155, 148, 151, 137, 151, 152, 146, 146, 139, 149, 142, 142, 149, 147, 144, 150, 154, 142, 153, 148, 143, 141, 146, 146, 153, 145, 146, 145, 147, 135, 149, 147, 152, 148, 139, 142, 145, 142, 147, 150, 132, 151, 166, 146, 140, 142, 135, 169, 145, 145, 146, 145, 142, 143, 143, 136, 135, 147, 159, 150, 158, 144, 136, 144, 154, 145, 151, 151, 143, 150, 134, 141, 146, 141, 144, 140, 144, 147, 178, 141, 148, 145, 151, 149, 144, 144, 142, 146, 145, 151, 146, 137, 143, 149, 137, 165, 142, 156, 150, 146, 151, 148, 140, 143, 156, 145, 141, 145, 142, 148, 145, 156, 140, 145, 153, 149, 145, 147, 149, 144, 151, 157, 133, 156, 156, 152, 142, 150, 143, 157, 146, 141, 150, 144, 146, 149, 154, 136, 140, 138, 147, 142, 146, 144, 147, 128, 145, 141, 151, 146, 152, 147, 146, 134, 137, 148, 143, 138, 148, 142, 148, 145, 141, 145, 149, 154, 147, 146, 145, 147, 150, 141, 147, 153, 152, 145, 144, 143, 146, 149, 148, 140, 143, 149, 149, 151, 146, 142, 147, 141, 148, 149, 147, 146, 163, 147, 143, 156, 150, 147, 146, 145, 146, 129, 149, 143, 145, 145, 138, 146, 141, 148, 148, 151, 146, 143, 149, 141, 134, 149, 152, 151, 152, 150, 137, 136, 144, 147, 147, 150, 129, 138, 135, 147, 148, 148, 136, 143, 141, 147, 142, 149, 155, 141, 148, 156, 140, 141, 146, 156, 151, 139, 147, 144, 146, 148, 148, 144, 140, 149, 149, 151, 134, 144, 143, 147, 141, 146, 141, 142, 147, 146, 151, 150, 143, 143, 148, 146, 150, 149, 139, 147, 149, 157, 140, 152, 149, 153, 150, 146, 148, 138, 150, 150, 164, 141, 145, 150, 154, 146, 131, 146, 147, 148, 142, 150, 147, 141, 150, 157, 145, 150, 144, 142, 146, 145, 144, 147, 147, 147, 147, 136, 150, 142, 147, 145, 141, 139, 141, 147, 141, 146, 145, 144, 138, 153, 141, 147, 152, 150, 147, 150, 141, 150, 146, 154, 151, 141, 145, 127, 150, 152, 143, 149, 146, 148, 145, 148, 151, 150, 144, 144, 144, 142, 150, 144, 152, 140, 148, 144, 147, 152, 141, 143, 150, 162, 151, 146, 147, 151, 149, 136, 144, 152, 149, 152, 135, 149, 136, 144, 146, 151, 147, 140, 146, 152, 147, 148, 149, 145, 142, 155, 146, 150, 149, 140, 144, 147, 146, 142, 146, 145, 149, 149, 92, 137, 144, 139, 146, 131, 144, 144, 148, 137, 141, 147, 147, 157, 144, 149, 147, 146, 143, 140, 150, 138, 148, 145, 146, 145, 149, 155, 147, 150, 153, 149, 143, 149, 148, 144, 146, 143, 149, 147, 150, 141, 151, 147, 147, 147, 144, 150, 150, 148, 137, 152, 151, 145, 146, 137, 150, 154, 150, 147, 145, 146, 147, 146, 145, 148, 146, 136, 146, 147, 151, 144, 153, 145, 145, 150, 137, 149, 149, 114, 143, 147, 147, 146, 193, 148, 144, 148, 150, 145, 146, 147, 142, 153, 197, 136, 152, 142, 144, 142, 147, 153, 145, 151, 151, 149, 154, 154, 116, 152, 152, 151, 152, 141, 147, 141, 143, 152, 138, 145, 153, 146, 139, 150, 140, 148, 150, 152, 141, 143, 146, 137, 150, 153, 148, 150, 137, 145, 147, 145, 142, 146, 146, 147, 152, 142, 157, 148, 144, 147, 144, 149, 151, 152, 144, 149, 155, 158, 148, 144, 151, 156, 148, 146, 150, 155, 140, 144, 156, 149, 150, 135, 148, 152, 142, 143, 133, 141, 144, 139, 147, 151, 147, 152, 134, 137, 149, 154, 142, 144, 128, 141, 136, 168, 147, 147, 149, 143, 144, 144, 156, 136, 145, 136, 148, 143, 142, 147, 150, 149, 150, 150, 140, 152, 146, 157, 147, 146, 145, 146, 143, 154, 161, 139, 147, 146, 147, 144, 145, 151, 149, 150, 164, 143, 142, 148, 145, 144, 148, 146, 143, 142, 143, 140, 151, 137, 151, 146, 145, 149, 131, 139, 149, 140, 148, 147, 154, 137, 147, 145, 146, 146, 147, 156, 144, 153, 150, 148, 148, 146, 149, 138, 150, 155, 139, 152, 145, 140, 145, 144, 142, 151, 152, 146, 152, 159, 149, 159, 151, 140, 151, 143, 174, 152, 145, 152, 146, 139, 156, 159, 144, 147, 150, 145, 145, 149, 133, 129, 139, 148, 143, 150, 143, 152, 162, 149, 156, 141, 151, 149, 137, 150, 158, 142, 146, 145, 154, 146, 151, 149, 139, 142, 148, 146, 141, 144, 144, 142, 137, 160, 150, 143, 144, 149, 142, 155, 141, 148, 150, 152, 147, 148, 136, 147, 145, 142, 152, 145, 143, 150, 158, 146, 146, 153, 145, 141, 144, 143, 152, 148, 160, 148, 145, 155, 156, 154, 148, 147, 145, 147, 149, 141, 149, 148, 158, 149, 146, 144, 149, 157, 155, 148, 145, 147, 148, 151, 143, 142, 156, 163, 144, 140, 154, 142, 144, 158, 153, 144, 150, 144, 141, 155, 141, 138, 151, 144, 143, 151, 144, 152, 142, 142, 143, 158, 140, 150, 158, 143, 143, 144, 148, 140, 136, 146, 156, 155, 155, 147, 145, 139, 148, 145, 149, 131, 148, 154, 153, 161, 146, 148, 141, 144, 147, 150, 145, 145, 144, 142, 141, 149, 143, 150, 147, 144, 149, 151, 150, 147, 148, 137, 131, 149, 136, 162, 150, 142, 149, 156, 150, 140, 154, 146, 143, 139, 151, 135, 170, 137, 152, 151, 150, 144, 156, 144, 152, 145, 147, 148, 147, 133, 149, 141, 146, 145, 145, 149, 139, 158, 156, 151, 149, 146, 141, 153, 142, 161, 144, 147, 140, 153, 150, 146, 141, 141, 151, 151, 150, 143, 138, 137, 144, 149, 149, 153, 140, 146, 156, 146, 139, 145, 140, 146, 143, 146, 144, 138, 145, 146, 154, 155, 145, 147, 148, 150, 146, 145, 137, 143, 144, 140, 138, 140, 138, 143, 144, 150, 141, 151, 139, 150, 141, 150, 142, 140, 145, 148, 144, 136, 145, 136, 142, 143, 145, 148, 147, 152, 151, 141, 152, 142, 133, 142, 144, 145, 144, 148, 148, 150, 130, 150, 145, 136, 144, 150, 156, 145, 141, 146, 143, 139, 142, 145, 147, 146, 158, 141, 147, 156, 152, 140, 137, 141, 136, 151, 150, 150, 142, 153, 143, 149, 150, 152, 138, 130, 145, 151, 155, 151, 144, 144, 130, 143, 133, 145, 142, 142, 147, 142, 144, 141, 138, 149, 141, 150, 135, 144, 148, 149, 141, 147, 148, 140, 139, 138, 144, 145, 148, 142, 143, 146, 147, 144, 149, 146, 150, 150, 149, 149, 141, 149, 139, 146, 141, 144, 137, 139, 143, 142, 152, 148, 146, 152, 143, 146, 141, 144, 143, 147, 150, 148, 154, 138, 144, 142, 146, 144, 153, 140, 147, 144, 148, 148, 153, 142, 151, 150, 132, 146, 150, 140, 150, 145, 144, 145, 148, 146, 143, 153, 145, 150, 137, 143, 143, 142, 145, 152, 132, 155, 140, 152, 138, 141, 140, 153, 145, 148, 154, 146, 133, 142, 144, 146, 143, 146, 148, 144, 143, 143, 151, 149, 144, 142, 146, 142, 145, 152, 155, 143, 146, 148, 145, 145, 147, 137, 146, 146, 148, 144, 139, 146, 148, 150, 140, 150, 145, 145, 146, 145, 150, 146, 148, 139, 144, 140, 151, 141, 144, 145, 148, 149, 143, 144, 150, 146, 143, 145, 151, 150, 143, 144, 151, 145, 142, 147, 153, 148, 150, 150, 147, 149, 151, 145, 142, 145, 148, 146, 147, 148, 150, 146, 146, 144, 149, 153, 145, 146, 147, 150, 141, 148, 144, 140, 147, 154, 152, 148, 143, 139, 151, 151, 145, 145, 147, 146, 136, 134, 144, 146, 144, 143, 147, 145, 150, 143, 147, 139, 147, 146, 146, 135, 141, 141, 145, 143, 143, 153, 151, 144, 144, 144, 145, 147, 146, 139, 149, 145, 146, 149, 146, 151, 143, 144, 142, 150, 151, 144, 146, 136, 142, 148, 143, 140, 144, 146, 154, 143, 154, 137, 142, 143, 143, 146, 152, 137, 142, 148, 146, 143, 149, 138, 137, 147, 151, 151, 149, 147, 150, 146, 143, 158, 149, 145, 146, 143, 143, 153, 148, 148, 143, 148, 148, 148, 151, 147, 146, 147, 155, 144, 143, 147, 145, 134, 144, 134, 142, 147, 143, 146, 148, 142, 146, 147, 141, 145, 146, 140, 145, 145, 145, 150, 142, 147, 140, 146, 144, 147, 157, 148, 148, 144, 156, 148, 149, 147, 144, 138, 146, 145, 146, 146, 144, 147, 146, 145, 138, 145, 142, 143, 148, 145, 146, 141, 147, 148, 147, 143, 151, 153, 145, 145, 147, 147, 146, 148, 146, 148, 146, 145, 144, 142, 148, 144, 144, 148, 142, 145, 145, 149, 145, 148, 146, 148, 147, 143, 145, 147, 148, 146, 155, 143, 145, 146, 145, 146, 147, 143, 144, 154, 143, 147, 144, 144, 147, 143, 148, 146, 146, 147, 148, 154, 146, 144, 145, 144, 144, 148, 144, 146, 154, 145, 147, 145, 145, 145, 146, 147, 144, 148, 134, 145, 145, 144, 150, 145, 145, 135, 149, 147, 147, 145, 144, 145, 145, 149, 145, 146, 148, 137, 147, 141, 137, 146, 145, 146, 145, 143, 146, 145, 149, 148, 150, 144, 144, 144, 146, 148, 145, 148, 150, 146, 148, 150, 146, 149, 145, 149, 154, 145, 145, 145, 144, 145, 148, 145, 154, 142, 143, 148, 149, 148, 142, 151, 146, 147, 145, 152, 146, 143, 147, 145, 133, 142, 147, 156, 153, 145, 146, 150, 146, 147, 147, 142, 144, 152, 146, 151, 147, 145, 144, 143, 143, 138, 147, 146, 150, 141, 140, 149, 144, 136, 149, 143, 153, 143, 143, 154, 150, 126, 145, 154, 144, 163, 151, 150, 145, 146, 143, 145, 136, 146, 147, 144, 151, 135, 148, 149, 155, 141, 149, 156, 157, 146, 150, 147, 144, 144, 146, 143, 142, 149, 156, 150, 144, 134, 146, 147, 146, 144, 146, 149, 148, 146, 145, 149, 146, 148, 136, 142, 138, 146, 136, 143, 149, 145, 147, 141, 145, 153, 147, 148, 148, 151, 151, 141, 147, 148, 148, 143, 144, 143, 145, 139, 145, 139, 145, 142, 144, 143, 152, 147, 142, 150, 158, 141, 145, 147, 151, 149, 144, 145, 147, 149, 145, 149, 149, 145, 149, 143, 144, 165, 147, 145, 149, 147, 137, 149, 148, 146, 148, 143, 147, 143, 153, 156, 145, 144, 145, 146, 129, 145, 147, 148, 145, 145, 142, 149, 143, 149, 148, 146, 145, 146, 146, 143, 155, 148, 145, 144, 145, 146, 147, 148, 144, 145, 152, 146, 144, 120, 144, 156, 150, 151, 145, 146, 148, 147, 144, 143, 146, 144, 148, 148, 148, 139, 144, 150, 156, 149, 145, 144, 149, 144, 145, 144, 145, 143, 157, 145, 144, 148, 144, 147, 145, 147, 150, 145, 146, 145, 149, 145, 146, 144, 148, 147, 145, 151, 147, 153, 144, 147, 150, 144, 143, 147, 149, 151, 160, 148, 141, 138, 144, 145, 148, 148, 156, 139, 145, 149, 146, 152, 156, 145, 142, 146, 144, 148, 144, 147, 147, 147, 143, 147, 146, 144, 151, 147, 142, 125, 138, 149, 144, 150, 150, 150, 148, 138, 143, 123, 139, 159, 150, 90, 141, 137, 149, 151, 143, 123, 150, 145, 153, 146, 146, 148, 125, 141, 147, 155, 130, 156, 149, 147, 136, 154, 145, 160, 145, 155, 145, 153, 149, 146, 150, 146, 135, 144, 126, 149, 148, 136, 153, 144, 144, 144, 144, 138, 195, 146, 134, 153, 147, 143, 135, 151, 152, 151, 150, 157, 149, 146, 144, 154, 148, 139, 139, 149, 135, 145, 142, 135, 145, 153, 143, 151, 145, 143, 146, 186, 144, 153, 136, 145, 132, 144, 142, 140, 138, 147, 126, 158, 149, 151, 146, 142, 155, 140, 146, 138, 151, 142, 141, 137, 146, 154, 147, 142, 148, 142, 150, 146, 136, 139, 145, 140, 142, 139, 142, 152, 151, 155, 153, 141, 151, 147, 144, 152, 144, 147, 145, 146, 138, 150, 146, 161, 140, 151, 157, 150, 149, 137, 148, 142, 151, 144, 141, 146, 146, 147, 147, 151, 136, 146, 142, 157, 149, 136, 151, 141, 150, 153, 144, 144, 151, 145, 143, 149, 147, 155, 142, 219, 147, 142, 137, 149, 132, 156, 160, 153, 142, 140, 144, 145, 149, 158, 146, 138, 143, 139, 142, 150, 140, 153, 146, 152, 145, 142, 151, 142, 152, 134, 151, 152, 149, 146, 144, 148, 145, 141, 144, 150, 144, 151, 167, 140, 139, 148, 142, 158, 150, 134, 153, 143, 153, 141, 139, 142, 141, 146, 143, 147, 156, 142, 148, 143, 143, 149, 143, 152, 143, 150, 145, 143, 145, 151, 153, 140, 144, 145, 162, 155, 141, 165, 144, 154, 143, 136, 142, 143, 137, 145, 155, 150, 148, 145, 149, 149, 137, 147, 150, 142, 144, 145, 137, 144, 157, 131, 149, 140, 153, 159, 148, 142, 146, 150, 143, 146, 150, 135, 145, 143, 145, 144, 142, 136, 144, 150, 153, 143, 145, 149, 143, 150, 140, 142, 134, 149, 148, 147, 153, 140, 162, 148, 150, 148, 141, 142, 146, 130, 149, 145, 148, 163, 147, 139, 146, 137, 158, 145, 151, 147, 138, 150, 145, 150, 136, 157, 150, 140, 138, 145, 139, 144, 151, 141, 143, 140, 152, 145, 139, 144, 146, 143, 142, 147, 147, 147, 135, 152, 155, 152, 155, 149, 153, 142, 148, 148, 144, 165, 143, 142, 153, 140, 143, 146, 174, 133, 139, 148, 148, 141, 173, 142, 143, 142, 144, 137, 143, 168, 154, 142, 145, 152, 148, 150, 149, 140, 137, 145, 147, 140, 146, 146, 150, 145, 146, 154, 129, 136, 142, 140, 140, 130, 143, 147, 147, 146, 148, 137, 145, 143, 148, 150, 145, 154, 144, 151, 148, 145, 139, 153, 149, 145, 145, 148, 148, 152, 151, 149, 156, 142, 146, 146, 148, 142, 147, 152, 149, 144, 144, 149, 151, 141, 142, 145, 156, 148, 159, 150, 144, 139, 139, 144, 143, 142, 143, 143, 147, 146, 143, 148, 150, 147, 145, 157, 148, 139, 157, 141, 147, 136, 143, 166, 140, 145, 150, 147, 141, 144, 145, 150, 147, 149, 146, 158, 142, 146, 147, 145, 138, 145, 172, 145, 157, 134, 145, 151, 142, 145, 150, 151, 140, 146, 149, 143, 162, 154, 145, 151, 143, 154, 130, 150, 142, 144, 150, 141, 149, 148, 158, 144, 144, 159, 153, 146, 131, 144, 145, 141, 141, 146, 143, 142, 144, 149, 147, 143, 143, 142, 146, 137, 142, 145, 150, 149, 143, 144, 137, 151, 141, 140, 146, 144, 155, 146, 141, 143, 148, 148, 152, 133, 140, 144, 150, 141, 146, 151, 136, 158, 145, 140, 146, 146, 147, 148, 149, 138, 149, 150, 138, 143, 147, 149, 139, 148, 147, 152, 154, 139, 153, 145, 143, 136, 146, 140, 137, 151, 149, 144, 144, 139, 144, 151, 150, 146, 150, 149, 144, 147, 143, 152, 146, 143, 150, 154, 144, 142, 144, 149, 149, 147, 150, 145, 156, 147, 151, 148, 153, 140, 149, 145, 140, 145, 149, 138, 150, 143, 148, 145, 146, 142, 148, 143, 142, 144, 144, 142, 145, 147, 155, 147, 147, 149, 148, 145, 148, 151, 142, 145, 146, 151, 143, 144, 143, 145, 146, 143, 144, 143, 143, 146, 152, 139, 151, 145, 149, 142, 143, 150, 141, 153, 143, 141, 146, 142, 151, 142, 147, 141, 147, 140, 141, 140, 144, 151, 143, 144, 147, 150, 147, 142, 144, 143, 150, 143, 144, 144, 147, 140, 130, 149, 147, 150, 146, 143, 144, 148, 147, 143, 142, 146, 144, 147, 150, 137, 142, 157, 155, 140, 144, 146, 153, 147, 146, 144, 154, 144, 150, 148, 147, 145, 149, 148, 146, 144, 137, 164, 144, 142, 151, 143, 133, 145, 150, 148, 147, 145, 146, 143, 150, 140, 144, 143, 154, 145, 149, 145, 145, 146, 143, 144, 145, 144, 141, 142, 142, 144, 138, 151, 139, 148, 147, 143, 146, 143, 143, 142, 141, 146, 148, 145, 154, 151, 149, 145, 147, 143, 146, 143, 142, 136, 147, 150, 149, 140, 146, 109, 145, 133, 149, 146, 149, 146, 151, 146, 143, 140, 148, 136, 139, 144, 139, 146, 143, 149, 150, 153, 196, 151, 140, 146, 144, 145, 143, 143, 146, 146, 148, 151, 147, 146, 149, 153, 146, 142, 146, 145, 153, 144, 145, 152, 151, 144, 152, 144, 165, 144, 147, 149, 149, 143, 147, 150, 145, 147, 143, 142, 147, 143, 147, 140, 145, 149, 143, 144, 143, 143, 154, 143, 144, 152, 150, 140, 147, 153, 144, 146, 140, 145, 145, 138, 136, 145, 154, 146, 153, 142, 150, 148, 143, 145, 152, 144, 144, 151, 130, 141, 146, 148, 146, 146, 155, 147, 148, 153, 145, 145, 149, 150, 144, 147, 141, 149, 148, 147, 142, 147, 150, 145, 149, 139, 141, 150, 148, 148, 149, 148, 146, 146, 125, 150, 151, 147, 139, 147, 120, 148, 147, 148, 142, 140, 145, 148, 145, 153, 144, 142, 151, 143, 136, 145, 154, 129, 158, 147, 151, 141, 142, 146, 146, 146, 148, 144, 143, 143, 151, 147, 142, 145, 145, 143, 147, 148, 147, 146, 151, 149, 144, 144, 142, 150, 148, 148, 147, 146, 146, 142, 149, 146, 157, 140, 155, 143, 140, 147, 147, 150, 154, 143, 152, 156, 148, 152, 137, 86, 144, 128, 137, 132, 160, 144, 150, 128, 147, 146, 147, 143, 142, 148, 131, 137, 140, 146, 149, 146, 149, 149, 145, 149, 147, 149, 165, 140, 140, 139, 144, 130, 146, 148, 97, 145, 145, 139, 157, 152, 151, 140, 149, 148, 147, 145, 128, 154, 124, 149, 139, 147, 146, 144, 141, 151, 144, 143, 141, 147, 147, 154, 142, 159, 143, 154, 212, 147, 148, 147, 139, 158, 146, 158, 148, 147, 143, 151, 139, 166, 147, 144, 148, 144, 169, 141, 150, 145, 142, 152, 145, 149, 148, 143, 150, 146, 141, 148, 154, 148, 149, 155, 138, 148, 143, 148, 140, 170, 147, 151, 134, 143, 142, 141, 155, 143, 149, 146, 146, 137, 141, 133, 146, 153, 150, 151, 158, 146, 144, 137, 110, 122, 152, 98, 146, 154, 143, 144, 158, 144, 145, 142, 144, 147, 140, 149, 145, 146, 149, 141, 151, 142, 141, 134, 157, 159, 154, 152, 139, 138, 147, 127, 146, 135, 141, 140, 144, 150, 137, 137, 142, 151, 138, 154, 145, 149, 150, 151, 149, 152, 153, 132, 149, 148, 151, 147, 145, 144, 150, 135, 158, 146, 147, 138, 145, 154, 135, 150, 140, 142, 151, 158, 151, 141, 146, 152, 144, 169, 144, 145, 148, 157, 155, 147, 151, 135, 145, 132, 138, 140, 132, 139, 144, 140, 143, 142, 172, 144, 147, 146, 153, 144, 147, 157, 156, 138, 149, 149, 143, 147, 143, 144, 139, 153, 155, 144, 136, 156, 142, 167, 147, 142, 145, 145, 146, 147, 141, 148, 145, 146, 148, 157, 139, 142, 150, 145, 147, 146, 145, 137, 143, 151, 148, 151, 146, 148, 140, 152, 146, 145, 128, 143, 148, 141, 153, 145, 143, 146, 145, 157, 150, 146, 146, 143, 145, 150, 156, 156, 148, 146, 144, 141, 147, 131, 143, 142, 144, 146, 151, 146, 146, 136, 146, 144, 142, 148, 138, 150, 143, 146, 140, 142, 146, 159, 154, 146, 145, 145, 143, 142, 145, 146, 150, 141, 148, 150, 146, 143, 151, 145, 145, 151, 147, 150, 147, 147, 139, 131, 149, 151, 146, 143, 143, 141, 148, 147, 146, 125, 145, 143, 145, 145, 140, 148, 147, 133, 146, 146, 149, 143, 146, 144, 146, 146, 149, 145, 147, 146, 154, 152, 144, 141, 146, 141, 149, 145, 146, 144, 163, 150, 150, 150, 145, 145, 145, 147, 145, 173, 144, 145, 150, 151, 146, 150, 142, 148, 148, 147, 144, 144, 148, 147, 146, 146, 151, 144, 145, 151, 141, 141, 149, 149, 145, 151, 143, 146, 148, 146, 143, 148, 148, 142, 142, 146, 150, 148, 147, 144, 145, 157, 143, 143, 150, 143, 149, 145, 149, 145, 150, 145, 142, 147, 143, 150, 143, 145, 149, 146, 138, 141, 148, 147, 149, 145, 146, 147, 148, 145, 147, 142, 143, 145, 150, 153, 144, 151, 151, 146, 146, 147, 145, 144, 144, 145, 146, 143, 151, 146, 149, 144, 168, 150, 126, 149, 144, 145, 149, 117, 142, 141, 144, 145, 147, 152, 142, 144, 148, 156, 139, 154, 154, 148, 151, 147, 143, 146, 140, 152, 128, 156, 146, 143, 149, 145, 148, 142, 148, 145, 149, 154, 147, 155, 145, 147, 144, 143, 153, 145, 147, 140, 151, 149, 150, 146, 160, 146, 144, 151, 147, 144, 146, 150, 148, 153, 145, 145, 152, 151, 151, 146, 143, 140, 142, 149, 147, 149, 145, 131, 152, 149, 146, 145, 141, 150, 142, 145, 152, 146, 139, 146, 146, 141, 143, 138, 130, 149, 145, 145, 149, 150, 144, 148, 140, 149, 146, 137, 142, 156, 151, 138, 143, 145, 137, 139, 146, 152, 149, 145, 145, 141, 150, 146, 149, 136, 154, 150, 145, 141, 142, 150, 148, 133, 148, 154, 140, 146, 141, 139, 157, 148, 148, 151, 147, 138, 143, 149, 152, 140, 150, 142, 144, 141, 143, 151, 146, 146, 135, 140, 132, 153, 140, 133, 145, 145, 149, 145, 145, 151, 146, 154, 143, 147, 146, 142, 143, 145, 142, 144, 149, 146, 154, 147, 142, 144, 140, 150, 147, 146, 152, 153, 139, 144, 156, 153, 148, 150, 145, 153, 146, 149, 139, 145, 142, 148, 145, 149, 152, 147, 134, 141, 146, 140, 143, 154, 141, 157, 156, 147, 144, 152, 150, 133, 134, 145, 147, 143, 138, 143, 144, 153, 129, 169, 144, 148, 146, 147, 147, 147, 148, 148, 150, 146, 151, 150, 146, 146, 143, 147, 141, 140, 144, 148, 145, 149, 154, 142, 157, 144, 143, 144, 146, 148, 136, 141, 149, 147, 153, 142, 153, 148, 152, 149, 141, 143, 146, 137, 139, 145, 129, 144, 147, 149, 155, 146, 139, 146, 143, 149, 149, 151, 144, 140, 146, 141, 172, 146, 147, 142, 150, 152, 150, 151, 145, 148, 148, 147, 146, 148, 142, 148, 148, 139, 147, 128, 145, 154, 147, 147, 136, 149, 148, 145, 143, 143, 147, 144, 149, 161, 144, 148, 149, 148, 146, 138, 146, 146, 153, 123, 143, 147, 142, 151, 135, 142, 151, 145, 141, 144, 150, 139, 146, 136, 146, 145, 142, 148, 146, 146, 139, 145, 140, 148, 149, 149, 147, 141, 141, 145, 152, 131, 157, 145, 144, 140, 154, 144, 144, 148, 146, 143, 138, 133, 150, 144, 145, 148, 151, 147, 146, 146, 143, 123, 151, 153, 145, 145, 147, 152, 148, 141, 142, 145, 144, 138, 146, 146, 148, 150, 143, 142, 130, 141, 144, 140, 140, 152, 139, 140, 149, 156, 147, 152, 145, 142, 144, 150, 151, 159, 147, 132, 146, 145, 136, 145, 148, 149, 146, 149, 146, 146, 145, 149, 141, 143, 147, 140, 150, 149, 147, 152, 150, 141, 151, 151, 144, 148, 150, 144, 151, 149, 146, 140, 149, 144, 150, 166, 201, 142, 144, 151, 149, 145, 151, 147, 139, 145, 148, 145, 144, 147, 143, 144, 145, 149, 158, 142, 144, 149, 141, 151, 149, 147, 147, 146, 147, 153, 134, 149, 150, 138, 149, 135, 139, 150, 144, 148, 155, 143, 150, 148, 139, 149, 139, 147, 142, 149, 102, 143, 150, 152, 138, 155, 147, 141, 151, 146, 146, 146, 148, 137, 139, 140, 133, 143, 147, 151, 170, 145, 144, 151, 145, 176, 133, 155, 138, 142, 144, 147, 144, 139, 169, 150, 135, 134, 144, 145, 131, 156, 146, 141, 145, 144, 150, 138, 153, 153, 144, 140, 141, 136, 158, 134, 143, 150, 154, 144, 143, 146, 137, 144, 127, 144, 145, 142, 148, 149, 159, 143, 147, 150, 149, 145, 148, 142, 139, 154, 147, 161, 135, 143, 149, 134, 149, 146, 143, 150, 140, 149, 150, 147, 132, 151, 162, 145, 145, 146, 145, 144, 132, 153, 145, 147, 156, 146, 146, 136, 133, 141, 137, 145, 145, 145, 145, 142, 151, 146, 155, 149, 148, 159, 142, 147, 146, 148, 145, 144, 151, 146, 148, 137, 140, 137, 138, 149, 148, 141, 142, 137, 151, 145, 140, 151, 142, 138, 144, 159, 140, 146, 149, 149, 142, 145, 144, 146, 160, 153, 149, 148, 153, 150, 155, 149, 142, 148, 152, 138, 150, 134, 151, 147, 147, 129, 141, 149, 152, 167, 150, 149, 151, 143, 159, 144, 149, 148, 153, 147, 150, 148, 148, 140, 143, 144, 148, 146, 146, 151, 125, 137, 144, 148, 148, 137, 141, 143, 155, 142, 148, 154, 144, 149, 146, 150, 148, 143, 146, 126, 150, 151, 144, 151, 135, 145, 145, 148, 142, 145, 139, 145, 144, 142, 151, 155, 147, 150, 151, 148, 149, 154, 152, 135, 142, 145, 160, 148, 144, 148, 166, 142, 147, 145, 153, 147, 164, 146, 145, 147, 141, 137, 148, 150, 147, 139, 135, 140, 145, 142, 145, 144, 139, 147, 148, 155, 155, 136, 145, 146, 141, 156, 143, 145, 150, 145, 143, 145, 169, 146, 145, 150, 146, 146, 149, 142, 146, 136, 146, 135, 148, 146, 147, 146, 146, 146, 151, 148, 150, 151, 142, 149, 147, 151, 148, 147, 151, 146, 153, 147, 155, 144, 139, 150, 148, 149, 193, 145, 153, 149, 150, 155, 137, 149, 149, 144, 147, 156, 147, 149, 148, 145, 143, 141, 143, 156, 144, 144, 144, 141, 144, 140, 146, 156, 145, 145, 145, 149, 147, 142, 150, 146, 140, 146, 148, 148, 146, 145, 147, 142, 139, 142, 147, 152, 146, 146, 145, 143, 145, 138, 148, 146, 147, 146, 143, 144, 142, 152, 145, 149, 145, 141, 143, 159, 150, 145, 148, 141, 149, 149, 148, 145, 146, 150, 147, 144, 149, 140, 146, 146, 147, 147, 143, 144, 152, 147, 146, 145, 148, 149, 148, 143, 146, 151, 144, 145, 144, 150, 147, 148, 144, 103, 142, 148, 146, 141, 148, 146, 142, 150, 144, 153, 145, 136, 146, 151, 127, 145, 148, 144, 149, 149, 147, 144, 148, 146, 145, 144, 147, 148, 146, 144, 146, 147, 151, 144, 147, 148, 143, 143, 148, 140, 149, 150, 147, 149, 148, 145, 146, 143, 144, 152, 143, 144, 148, 142, 136, 152, 148, 144, 145, 147, 143, 148, 134, 161, 142, 137, 144, 143, 144, 144, 143, 147, 149, 148, 138, 142, 150, 141, 144, 141, 150, 144, 143, 144, 142, 134, 147, 146, 153, 145, 142, 146, 144, 137, 147, 145, 144, 139, 151, 137, 147, 143, 154, 139, 143, 143, 138, 146, 152, 149, 147, 146, 138, 153, 159, 142, 150, 145, 149, 148, 145, 135, 147, 154, 154, 140, 149, 153, 143, 131, 159, 152, 153, 147, 145, 142, 150, 156, 143, 161, 152, 148, 149, 142, 148, 160, 150, 158, 141, 149, 147, 141, 139, 173, 139, 159, 140, 147, 150, 151, 149, 145, 148, 148, 158, 150, 145, 138, 126, 139, 146, 147, 150, 150, 160, 152, 151, 134, 151, 148, 152, 149, 141, 145, 147, 144, 141, 163, 149, 145, 149, 152, 149, 139, 170, 147, 146, 147, 143, 161, 143, 163, 149, 143, 129, 150, 149, 163, 123, 142, 146, 140, 139, 143, 146, 137, 144, 151, 159, 139, 142, 160, 145, 147, 153, 149, 138, 147, 150, 154, 142, 135, 140, 136, 150, 146, 148, 157, 132, 146, 144, 150, 143, 150, 145, 149, 139, 140, 143, 137, 148, 137, 150, 145, 147, 145, 150, 143, 138, 145, 144, 129, 145, 120, 184, 153, 157, 144, 140, 184, 156, 152, 148, 114, 149, 143, 149, 149, 105, 147, 147, 141, 136, 164, 155, 136, 158, 146, 146, 148, 157, 145, 151, 159, 156, 141, 145, 139, 145, 155, 152, 86, 168, 170, 148, 157, 136, 153, 147, 153, 143, 152, 146, 137, 146, 127, 147, 160, 139, 144, 135, 141, 142, 156, 144, 135, 151, 136, 119, 152, 140, 140, 173, 148, 146, 151, 149, 147, 138, 137, 153, 142, 141, 155, 152, 128, 155, 162, 148, 156, 146, 148, 147, 138, 145, 147, 142, 136, 149, 158, 144, 149, 145, 143, 147, 144, 145, 141, 147, 145, 152, 148, 153, 150, 145, 145, 145, 147, 140, 135, 148, 149, 149, 138, 145, 144, 146, 143, 135, 142, 140, 129, 143, 151, 147, 146, 147, 148, 141, 147, 144, 147, 134, 147, 146, 146, 153, 142, 143, 154, 137, 151, 138, 145, 144, 142, 144, 147, 132, 149, 151, 145, 149, 136, 141, 151, 144, 149, 149, 148, 142, 146, 140, 152, 144, 143, 149, 144, 144, 147, 152, 147, 142, 146, 147, 146, 144, 150, 152, 144, 154, 144, 147, 151, 139, 146, 145, 147, 146, 144, 140, 146, 145, 154, 156, 146, 146, 147, 146, 143, 148, 146, 152, 147, 149, 143, 146, 146, 155, 145, 150, 148, 145, 151, 142, 139, 144, 139, 147, 146, 146, 143, 146, 147, 146, 144, 145, 148, 146, 149, 148, 150, 152, 145, 130, 144, 149, 151, 151, 150, 145, 148, 145, 148, 148, 144, 146, 139, 147, 159, 145, 150, 146, 141, 148, 145, 140, 147, 144, 150, 149, 152, 145, 148, 141, 144, 158, 143, 145, 147, 144, 141, 141, 143, 145, 146, 147, 139, 143, 150, 144, 145, 148, 144, 149, 151, 144, 140, 151, 145, 144, 140, 144, 146, 139, 143, 140, 145, 146, 153, 145, 147, 142, 146, 140, 144, 144, 139, 142, 155, 157, 143, 142, 141, 147, 143, 147, 146, 156, 151, 147, 148, 145, 149, 147, 139, 145, 154, 150, 146, 148, 139, 144, 153, 149, 153, 141, 143, 150, 140, 140, 144, 144, 151, 146, 150, 144, 149, 160, 140, 149, 143, 140, 146, 141, 147, 153, 146, 153, 141, 143, 145, 153, 144, 151, 155, 143, 142, 150, 134, 146, 150, 149, 147, 140, 150, 138, 142, 147, 146, 145, 144, 143, 148, 146, 143, 143, 149, 163, 144, 142, 147, 145, 146, 142, 154, 156, 151, 156, 150, 144, 148, 145, 130, 144, 150, 165, 149, 143, 142, 155, 138, 141, 130, 139, 144, 162, 154, 145, 149, 147, 143, 148, 141, 145, 149, 137, 142, 147, 158, 149, 144, 146, 145, 149, 150, 148, 147, 145, 150, 138, 141, 138, 147, 141, 148, 148, 160, 147, 146, 142, 142, 142, 145, 145, 150, 152, 147, 149, 148, 145, 145, 147, 142, 139, 148, 144, 145, 146, 149, 154, 147, 145, 140, 146, 144, 146, 145, 146, 146, 157, 144, 152, 142, 125, 143, 139, 150, 139, 142, 146, 142, 149, 149, 148, 143, 147, 147, 138, 144, 147, 142, 146, 134, 151, 147, 150, 143, 144, 144, 151, 146, 148, 153, 144, 148, 144, 134, 149, 135, 143, 142, 145, 164, 148, 145, 146, 146, 145, 145, 148, 150, 147, 157, 148, 146, 146, 148, 152, 149, 142, 148, 150, 144, 145, 150, 166, 151, 146, 147, 147, 149, 145, 145, 148, 144, 147, 140, 146, 150, 148, 148, 136, 137, 152, 149, 142, 144, 151, 151, 148, 146, 145, 143, 144, 153, 140, 139, 141, 149, 145, 147, 148, 138, 141, 146, 136, 141, 157, 144, 147, 165, 148, 138, 138, 132, 151, 146, 155, 141, 135, 153, 147, 141, 142, 149, 135, 151, 146, 148, 149, 144, 146, 149, 166, 151, 146, 143, 132, 127, 150, 140, 137, 160, 140, 142, 151, 139, 151, 143, 172, 143, 116, 104, 138, 154, 148, 134, 151, 142, 154, 148, 132, 142, 115, 153, 153, 145, 148, 148, 145, 155, 132, 163, 152, 142, 143, 153, 148, 151, 144, 138, 179, 147, 146, 149, 152, 144, 137, 156, 151, 149, 145, 133, 151, 107, 140, 141, 129, 153, 158, 147, 149, 139, 146, 137, 148, 134, 136, 140, 142, 144, 147, 133, 155, 157, 134, 146, 147, 161, 150, 149, 132, 143, 148, 148, 161, 134, 145, 149, 146, 148, 149, 149, 146, 173, 141, 147, 142, 148, 192, 143, 154, 151, 134, 141, 134, 150, 143, 127, 152, 140, 135, 145, 149, 149, 139, 154, 131, 140, 139, 135, 143, 144, 133, 137, 124, 143, 153, 143, 145, 116, 152, 130, 144, 137, 149, 157, 144, 134, 150, 168, 146, 129, 146, 155, 142, 125, 130, 140, 140, 150, 149, 134, 137, 151, 146, 145, 150, 150, 144, 144, 145, 143, 142, 147, 153, 140, 145, 138, 144, 151, 145, 164, 170, 135, 146, 145, 140, 135, 150, 145, 161, 123, 144, 146, 148, 138, 210, 143, 149, 145, 143, 138, 149, 147, 144, 161, 125, 142, 143, 180, 120, 146, 134, 139, 136, 141, 150, 144, 149, 160, 148, 159, 150, 135, 146, 148, 156, 116, 163, 147, 150, 144, 164, 134, 145, 147, 141, 143, 159, 145, 142, 143, 152, 140, 125, 150, 126, 141, 157, 150, 147, 151, 168, 144, 141, 146, 164, 149, 145, 144, 150, 135, 148, 139, 138, 144, 140, 132, 146, 140, 148, 154, 140, 145, 145, 150, 147, 148, 148, 151, 141, 159, 142, 153, 145, 125, 147, 169, 147, 146, 122, 154, 142, 148, 148, 136, 151, 136, 150, 148, 149, 159, 144, 156, 150, 151, 154, 149, 153, 168, 146, 134, 160, 136, 152, 146, 154, 145, 141, 140, 146, 148, 137, 139, 147, 140, 148, 138, 148, 152, 151, 149, 153, 142, 145, 152, 155, 137, 145, 141, 152, 158, 140, 130, 147, 151, 147, 158, 152, 152, 140, 138, 138, 146, 161, 172, 152, 154, 141, 143, 149, 146, 145, 142, 150, 141, 144, 143, 120, 165, 144, 144, 135, 145, 122, 146, 144, 156, 126, 149, 144, 135, 142, 145, 155, 157, 139, 144, 148, 139, 141, 146, 139, 148, 172, 135, 141, 138, 155, 141, 140, 158, 154, 151, 152, 153, 141, 147, 147, 138, 151, 157, 141, 146, 152, 149, 137, 134, 136, 143, 144, 147, 149, 161, 146, 128, 137, 154, 146, 167, 146, 135, 159, 164, 142, 145, 108, 148, 149, 135, 143, 142, 161, 151, 156, 165, 146, 144, 196, 125, 144, 138, 146, 155, 145, 146, 150, 150, 141, 151, 151, 156, 141, 147, 140, 141, 144, 150, 131, 130, 160, 152, 152, 169, 151, 159, 148, 152, 143, 138, 145, 149, 136, 144, 143, 139, 149, 164, 138, 140, 143, 144, 148, 143, 141, 141, 149, 150, 142, 148, 147, 147, 146, 143, 153, 148, 152, 138, 149, 147, 140, 147, 138, 141, 148, 148, 160, 137, 143, 153, 131, 140, 155, 141, 163, 134, 148, 146, 137, 143, 151, 152, 129, 150, 139, 141, 149, 148, 147, 153, 141, 149, 147, 175, 143, 172, 142, 143, 146, 147, 139, 161, 151, 147, 145, 161, 159, 144, 148, 153, 147, 139, 138, 151, 94, 142, 149, 146, 136, 144, 134, 141, 135, 144, 145, 143, 146, 152, 148, 138, 149, 155, 148, 147, 140, 147, 148, 143, 167, 149, 143, 137, 159, 145, 152, 145, 138, 148, 137, 140, 148, 149, 144, 149, 150, 151, 145, 148, 162, 144, 137, 155, 143, 138, 150, 148, 144, 153, 143, 145, 140, 149, 133, 151, 156, 151, 149, 146, 134, 152, 153, 142, 141, 149, 153, 149, 150, 137, 136, 146, 147, 140, 196, 140, 139, 147, 147, 135, 144, 146, 145, 145, 140, 147, 146, 146, 152, 149, 149, 143, 141, 152, 147, 136, 148, 152, 133, 149, 150, 144, 155, 152, 149, 145, 149, 143, 151, 165, 141, 153, 141, 139, 175, 139, 141, 140, 137, 131, 153, 139, 149, 144, 145, 140, 142, 149, 150, 143, 146, 153, 139, 147, 152, 140, 142, 135, 131, 150, 141, 149, 148, 150, 144, 140, 142, 148, 147, 146, 155, 150, 141, 155, 152, 138, 135, 155, 148, 134, 149, 142, 151, 144, 152, 142, 139, 144, 147, 160, 157, 141, 146, 145, 150, 136, 156, 149, 138, 141, 173, 151, 148, 143, 152, 145, 147, 157, 140, 149, 146, 146, 166, 152, 148, 155, 133, 138, 147, 152, 143, 144, 147, 149, 147, 144, 145, 149, 156, 148, 145, 169, 144, 152, 150, 156, 169, 140, 142, 149, 144, 146, 150, 149, 161, 164, 146, 137, 153, 144, 138, 137, 145, 143, 164, 144, 143, 148, 147, 152, 148, 135, 145, 127, 141, 145, 151, 151, 135, 148, 149, 149, 156, 146, 155, 149, 149, 143, 154, 150, 139, 146, 148, 142, 146, 133, 139, 146, 146, 133, 150, 147, 144, 146, 144, 135, 154, 177, 147, 174, 139, 166, 134, 139, 146, 150, 147, 153, 145, 146, 155, 149, 152, 173, 142, 153, 147, 145, 185, 137, 150, 153, 147, 149, 141, 151, 132, 147, 143, 139, 155, 142, 138, 184, 145, 146, 158, 148, 183, 144, 198, 155, 136, 160, 144, 151, 154, 138, 150, 140, 167, 145, 149, 162, 141, 139, 142, 149, 140, 148, 151, 145, 127, 135, 138, 143, 162, 138, 152, 131, 114, 142, 133, 145, 161, 142, 149, 148, 141, 133, 155, 146, 142, 128, 138, 135, 143, 146, 172, 164, 156, 139, 141, 143, 146, 146, 194, 142, 151, 159, 131, 146, 142, 154, 151, 148, 147, 148, 139, 160, 148, 140, 141, 136, 149, 137, 151, 168, 156, 143, 142, 147, 149, 137, 144, 148, 146, 143, 155, 144, 145, 152, 149, 136, 122, 156, 149, 159, 163, 126, 134, 146, 162, 138, 152, 140, 139, 151, 138, 150, 142, 153, 148, 148, 144, 148, 150, 143, 144, 151, 140, 146, 139, 156, 151, 150, 139, 151, 141, 160, 150, 135, 159, 149, 141, 141, 149, 141, 144, 139, 143, 124, 145, 150, 154, 147, 151, 154, 149, 146, 142, 140, 148, 155, 139, 152, 139, 144, 154, 143, 133, 155, 143, 144, 157, 143, 148, 125, 144, 148, 139, 137, 140, 146, 146, 145, 146, 156, 154, 146, 132, 139, 140, 145, 144, 150, 145, 181, 170, 153, 153, 147, 140, 147, 145, 149, 151, 139, 146, 153, 149, 143, 143, 147, 145, 133, 139, 160, 155, 147, 149, 148, 149, 158, 139, 149, 142, 129, 143, 150, 137, 137, 141, 144, 151, 144, 158, 144, 150, 138, 145, 149, 126, 145, 163, 157, 162, 142, 140, 149, 144, 144, 139, 150, 140, 157, 145, 152, 154, 150, 141, 144, 143, 141, 149, 161, 145, 140, 153, 145, 142, 149, 142, 148, 145, 146, 133, 143, 149, 142, 147, 145, 152, 148, 153, 146, 144, 140, 140, 154, 151, 148, 144, 137, 152, 133, 141, 142, 137, 148, 150, 122, 142, 135, 141, 142, 148, 152, 149, 133, 153, 149, 148, 142, 148, 136, 139, 145, 148, 144, 149, 144, 141, 154, 148, 166, 149, 150, 147, 145, 137, 143, 144, 145, 138, 141, 141, 144, 147, 129, 138, 144, 154, 153, 154, 146, 142, 145, 143, 146, 146, 144, 147, 141, 141, 142, 144, 149, 145, 148, 141, 157, 144, 149, 136, 152, 133, 141, 148, 142, 155, 128, 143, 146, 149, 144, 143, 144, 150, 139, 144, 135, 156, 148, 147, 149, 145, 141, 148, 143, 142, 146, 147, 146, 155, 136, 145, 142, 150, 142, 149, 145, 148, 138, 145, 151, 143, 141, 149, 144, 158, 143, 148, 142, 146, 146, 148, 138, 157, 146, 146, 144, 143, 135, 143, 145, 140, 136, 145, 147, 140, 148, 140, 147, 146, 142, 155, 151, 150, 146, 150, 126, 149, 164, 141, 142, 145, 141, 144, 133, 144, 149, 155, 139, 136, 165, 139, 150, 136, 145, 128, 147, 147, 145, 152, 144, 147, 148, 151, 158, 154, 140, 136, 156, 145, 141, 157, 162, 149, 136, 140, 138, 138, 134, 146, 146, 140, 158, 149, 145, 144, 151, 144, 141, 147, 138, 144, 136, 151, 141, 138, 150, 134, 133, 141, 141, 139, 151, 153, 140, 131, 150, 142, 145, 148, 149, 143, 137, 127, 146, 157, 138, 146, 131, 157, 148, 146, 143, 144, 155, 153, 143, 161, 147, 148, 130, 150, 139, 150, 150, 151, 143, 146, 145, 153, 138, 149, 151, 151, 136, 141, 155, 147, 144, 154, 142, 138, 150, 146, 143, 140, 144, 142, 148, 145, 140, 142, 157, 153, 139, 137, 166, 143, 147, 150, 147, 147, 143, 145, 138, 152, 147, 156, 141, 140, 152, 151, 148, 140, 134, 144, 141, 153, 138, 137, 150, 136, 131, 146, 142, 144, 153, 157, 139, 138, 136, 143, 141, 150, 141, 145, 135, 150, 145, 135, 136, 156, 137, 145, 145, 143, 144, 158, 135, 144, 148, 149, 147, 147, 138, 147, 138, 133, 142, 156, 139, 146, 145, 145, 140, 146, 146, 147, 145, 150, 145, 144, 147, 150, 147, 149, 142, 144, 147, 140, 146, 146, 149, 148, 153, 148, 138, 142, 144, 149, 145, 152, 143, 143, 150, 150, 150, 146, 142, 147, 143, 144, 141, 152, 149, 142, 145, 142, 145, 147, 149, 151, 147, 147, 149, 144, 141, 144, 147, 149, 146, 147, 143, 146, 147, 147, 143, 143, 146, 146, 143, 152, 152, 145, 154, 144, 143, 146, 144, 146, 145, 144, 143, 148, 145, 141, 147, 147, 150, 145, 149, 142, 148, 144, 147, 144, 144, 145, 149, 150, 145, 142, 148, 146, 151, 148, 145, 139, 145, 144, 151, 147, 147, 145, 148, 145, 150, 147, 149, 147, 147, 148, 141, 145, 145, 150, 150, 141, 145, 144, 138, 152, 150, 152, 139, 148, 146, 145, 150, 133, 144, 150, 140, 148, 144, 141, 151, 144, 133, 145, 153, 145, 147, 145, 152, 149, 149, 141, 145, 145, 144, 145, 144, 150, 148, 139, 147, 151, 144, 148, 153, 146, 143, 144, 144, 140, 149, 150, 142, 144, 146, 151, 147, 146, 145, 148, 142, 145, 147, 151, 141, 150, 149, 149, 146, 146, 146, 150, 145, 147, 141, 144, 148, 150, 148, 150, 150, 142, 149, 143, 150, 150, 149, 144, 146, 148, 148, 148, 145, 151, 147, 141, 148, 152, 148, 152, 142, 146, 147, 148, 142, 152, 150, 152, 144, 148, 143, 147, 150, 149, 144, 143, 148, 150, 142, 148, 146, 148, 153, 148, 147, 152, 150, 143, 145, 147, 146, 136, 143, 146, 134, 150, 155, 137, 143, 150, 140, 145, 148, 153, 133, 165, 147, 141, 134, 149, 147, 146, 152, 163, 138, 138, 139, 158, 143, 137, 149, 141, 141, 144, 133, 145, 148, 139, 131, 142, 153, 141, 155, 139, 136, 143, 138, 159, 150, 142, 152, 138, 132, 146, 138, 146, 130, 146, 147, 144, 152, 149, 148, 143, 143, 140, 151, 145, 144, 148, 139, 153, 140, 146, 131, 158, 142, 141, 157, 146, 148, 130, 141, 146, 138, 157, 132, 154, 152, 151, 130, 144, 153, 131, 154, 152, 141, 145, 153, 147, 155, 142, 141, 132, 150, 155, 140, 146, 138, 154, 138, 156, 151, 143, 125, 142, 144, 141, 145, 148, 166, 144, 145, 140, 146, 149, 146, 143, 148, 138, 149, 139, 143, 146, 138, 161, 157, 141, 145, 145, 149, 148, 157, 142, 115, 148, 142, 148, 142, 153, 143, 150, 152, 167, 125, 176, 137, 146, 151, 140, 148, 143, 141, 134, 147, 146, 152, 133, 143, 170, 138, 162, 155, 146, 144, 166, 148, 143, 147, 144, 145, 147, 139, 143, 140, 161, 153, 134, 146, 142, 131, 140, 167, 149, 145, 126, 148, 169, 155, 153, 137, 147, 132, 158, 147, 141, 162, 162, 145, 134, 138, 164, 144, 130, 148, 153, 136, 165, 135, 136, 120, 160, 143, 147, 144, 127, 144, 141, 151, 148, 149, 139, 142, 141, 151, 151, 145, 150, 139, 153, 138, 152, 155, 148, 141, 162, 155, 140, 140, 131, 145, 154, 140, 134, 149, 139, 141, 145, 145, 139, 139, 146, 139, 149, 145, 148, 137, 152, 148, 143, 139, 138, 155, 142, 145, 149, 144, 144, 145, 146, 144, 141, 142, 147, 148, 144, 144, 149, 147, 140, 150, 148, 140, 143, 146, 149, 153, 144, 146, 146, 140, 144, 138, 137, 144, 144, 143, 146, 143, 148, 146, 145, 143, 145, 145, 143, 141, 147, 148, 142, 148, 147, 146, 147, 147, 153, 142, 146, 144, 143, 139, 142, 148, 146, 148, 146, 142, 141, 145, 143, 145, 142, 143, 143, 142, 146, 144, 141, 139, 144, 142, 149, 139, 144, 145, 139, 148, 144, 149, 147, 144, 155, 151, 143, 144, 145, 145, 145, 143, 152, 143, 144, 143, 148, 144, 148, 142, 155, 154, 148, 140, 149, 143, 142, 143, 150, 148, 149, 139, 148, 148, 148, 149, 147, 148, 154, 140, 144, 151, 154, 142, 156, 145, 143, 156, 145, 146, 148, 156, 150, 147, 151, 144, 147, 145, 145, 146, 153, 144, 145, 150, 159, 142, 142, 145, 135, 152, 140, 140, 145, 143, 149, 153, 145, 147, 142, 146, 140, 153, 144, 146, 141, 152, 144, 145, 148, 150, 150, 132, 142, 146, 150, 155, 143, 153, 152, 145, 149, 140, 152, 143, 141, 144, 144, 145, 146, 143, 150, 148, 154, 141, 146, 147, 137, 146, 142, 143, 151, 142, 145, 142, 144, 146, 137, 144, 148, 145, 147, 140, 144, 146, 149, 146, 140, 146, 146, 150, 146, 145, 146, 139, 142, 144, 146, 145, 138, 142, 144, 144, 141, 146, 145, 146, 146, 159, 138, 144, 154, 144, 146, 152, 138, 143, 144, 141, 149, 160, 139, 148, 156, 140, 140, 142, 156, 146, 150, 146, 154, 145, 153, 146, 146, 143, 145, 139, 135, 158, 143, 152, 152, 149, 148, 152, 156, 145, 132, 135, 139, 138, 144, 151, 139, 151, 150, 142, 139, 146, 155, 131, 150, 149, 144, 148, 143, 152, 140, 150, 158, 136, 144, 140, 151, 132, 151, 150, 144, 146, 140, 143, 149, 149, 141, 145, 153, 147, 163, 146, 152, 149, 148, 145, 151, 146, 140, 143, 143, 146, 144, 153, 147, 145, 146, 149, 153, 143, 141, 151, 148, 168, 139, 147, 143, 154, 136, 163, 141, 151, 148, 144, 153, 150, 140, 152, 143, 143, 146, 151, 151, 145, 153, 156, 147, 150, 144, 144, 153, 146, 146, 153, 161, 156, 150, 141, 148, 148, 142, 140, 146, 146, 145, 146, 148, 147, 144, 144, 140, 151, 134, 146, 146, 144, 145, 142, 134, 151, 152, 149, 138, 140, 147, 137, 138, 136, 142, 152, 151, 144, 147, 142, 145, 133, 135, 146, 141, 145, 146, 145, 142, 145, 139, 147, 164, 155, 149, 142, 141, 146, 152, 134, 159, 145, 150, 168, 148, 150, 143, 160, 160, 149, 147, 154, 146, 133, 152, 142, 148, 148, 145, 146, 145, 139, 148, 148, 145, 142, 142, 133, 149, 150, 141, 144, 138, 159, 144, 151, 148, 148, 145, 147, 143, 144, 147, 139, 145, 150, 141, 152, 147, 144, 149, 146, 156, 130, 152, 144, 133, 138, 145, 134, 145, 133, 146, 152, 141, 136, 144, 153, 143, 142, 140, 141, 142, 142, 142, 144, 149, 146, 148, 149, 138, 148, 148, 128, 142, 139, 141, 148, 148, 153, 157, 145, 150, 141, 145, 138, 148, 152, 151, 139, 136, 141, 143, 146, 172, 149, 145, 145, 154, 143, 144, 146, 150, 143, 137, 145, 141, 147, 144, 134, 139, 148, 140, 148, 143, 145, 144, 145, 141, 141, 142, 156, 151, 148, 148, 151, 152, 151, 143, 162, 140, 143, 144, 147, 138, 144, 142, 144, 144, 152, 147, 142, 137, 138, 143, 146, 152, 151, 148, 150, 148, 149, 140, 130, 169, 134, 145, 149, 145, 148, 147, 146, 154, 140, 143, 168, 148, 145, 150, 134, 147, 146, 143, 144, 131, 145, 153, 142, 148, 144, 136, 155, 140, 151, 149, 146, 133, 153, 146, 154, 144, 134, 153, 150, 149, 144, 163, 150, 144, 143, 155, 147, 147, 147, 146, 127, 151, 146, 142, 142, 149, 146, 145, 145, 144, 146, 148, 143, 140, 129, 140, 134, 161, 146, 145, 146, 143, 155, 141, 151, 148, 154, 140, 138, 150, 148, 143, 150, 138, 150, 152, 146, 151, 148, 147, 139, 147, 143, 152, 149, 148, 149, 144, 140, 140, 143, 143, 163, 138, 134, 143, 138, 137, 132, 145, 144, 149, 143, 149, 144, 142, 142, 146, 131, 146, 144, 137, 149, 144, 142, 150, 146, 160, 145, 141, 143, 151, 151, 145, 150, 157, 136, 152, 150, 149, 146, 144, 140, 146, 143, 142, 147, 143, 149, 151, 141, 185, 155, 150, 158, 138, 154, 151, 150, 143, 145, 172, 154, 141, 145, 168, 151, 148, 155, 147, 141, 150, 144, 160, 160, 155, 153, 138, 128, 148, 145, 135, 145, 157, 143, 156, 155, 144, 153, 143, 149, 143, 152, 155, 162, 152, 140, 136, 140, 138, 152, 144, 141, 150, 148, 139, 148, 150, 141, 124, 152, 147, 146, 153, 147, 145, 154, 154, 145, 155, 136, 137, 144, 144, 138, 159, 147, 160, 135, 142, 139, 118, 144, 152, 153, 144, 149, 145, 141, 131, 148, 143, 156, 155, 149, 135, 141, 135, 127, 161, 137, 157, 142, 142, 151, 144, 152, 153, 146, 159, 135, 152, 158, 145, 152, 144, 148, 135, 155, 142, 157, 141, 153, 133, 142, 146, 154, 143, 142, 141, 148, 158, 144, 152, 140, 137, 152, 138, 153, 159, 145, 151, 158, 132, 146, 153, 151, 156, 136, 150, 139, 147, 133, 148, 143, 151, 149, 144, 165, 152, 153, 141, 149, 156, 131, 145, 147, 141, 143, 132, 145, 149, 145, 155, 154, 157, 152, 134, 151, 153, 148, 159, 138, 136, 152, 134, 138, 142, 147, 139, 139, 144, 168, 148, 157, 134, 145, 157, 153, 131, 143, 139, 148, 138, 151, 151, 164, 151, 144, 155, 141, 152, 152, 130, 145, 152, 139, 143, 154, 141, 152, 162, 155, 142, 149, 139, 152, 154, 131, 141, 153, 148, 167, 137, 148, 166, 149, 155, 141, 146, 147, 153, 140, 148, 148, 149, 162, 145, 146, 168, 136, 150, 145, 150, 160, 177, 158, 149, 153, 150, 152, 147, 147, 144, 156, 141, 153, 143, 143, 142, 149, 156, 149, 146, 146, 149, 145, 147, 147, 129, 141, 143, 134, 141, 143, 128, 150, 136, 148, 147, 145, 146, 137, 143, 139, 144, 141, 144, 143, 150, 137, 151, 153, 142, 142, 122, 141, 136, 137, 150, 153, 150, 147, 147, 146, 129, 149, 141, 146, 143, 152, 157, 137, 145, 140, 151, 141, 148, 142, 152, 146, 146, 142, 144, 138, 140, 143, 142, 148, 151, 129, 146, 141, 143, 147, 136, 143, 144, 144, 135, 151, 138, 145, 147, 150, 148, 145, 145, 148, 144, 145, 140, 144, 141, 146, 135, 145, 167, 144, 147, 144, 146, 143, 152, 145, 151, 139, 147, 144, 146, 143, 144, 133, 145, 143, 141, 151, 146, 147, 141, 147, 147, 142, 144, 133, 147, 147, 143, 147, 146, 149, 147, 145, 152, 146, 144, 149, 146, 148, 147, 150, 142, 151, 156, 139, 140, 145, 151, 148, 151, 141, 139, 143, 148, 139, 138, 144, 149, 144, 143, 132, 144, 122, 142, 148, 149, 142, 144, 142, 135, 145, 149, 147, 145, 142, 150, 172, 146, 144, 148, 145, 153, 152, 142, 147, 150, 177, 147, 146, 149, 148, 145, 147, 141, 143, 139, 147, 144, 146, 139, 146, 146, 147, 137, 146, 141, 149, 145, 144, 146, 135, 149, 146, 144, 140, 140, 157, 148, 143, 143, 144, 174, 141, 148, 145, 142, 141, 144, 148, 141, 144, 136, 140, 140, 144, 151, 148, 150, 143, 127, 143, 147, 154, 87, 132, 151, 160, 141, 155, 148, 155, 145, 141, 139, 142, 122, 144, 152, 148, 143, 165, 158, 150, 133, 156, 160, 65, 145, 147, 142, 112, 150, 148, 160, 135, 135, 159, 147, 139, 148, 146, 149, 140, 133, 147, 130, 142, 146, 139, 142, 158, 157, 152, 151, 142, 146, 137, 137, 138, 155, 149, 156, 159, 157, 150, 145, 146, 138, 128, 131, 155, 139, 145, 149, 147, 137, 141, 137, 136, 158, 140, 148, 136, 138, 147, 141, 142, 160, 142, 149, 94, 143, 155, 143, 125, 149, 127, 151, 142, 158, 145, 162, 168, 151, 158, 144, 138, 146, 151, 155, 135, 119, 159, 148, 151, 154, 140, 144, 156, 150, 163, 154, 125, 234, 149, 132, 154, 137, 140, 141, 162, 146, 149, 136, 153, 155, 135, 143, 161, 142, 158, 138, 131, 170, 152, 173, 142, 132, 162, 145, 122, 140, 142, 134, 163, 151, 109, 148, 142, 153, 129, 128, 152, 143, 144, 147, 153, 130, 133, 139, 138, 140, 140, 151, 141, 145, 150, 128, 140, 153, 136, 141, 148, 154, 139, 124, 138, 153, 145, 135, 145, 147, 136, 155, 146, 147, 138, 132, 158, 143, 153, 162, 151, 155, 173, 157, 156, 141, 134, 118, 145, 142, 151, 144, 151, 148, 140, 124, 146, 137, 141, 142, 179, 206, 145, 145, 156, 150, 144, 152, 148, 153, 146, 150, 140, 139, 151, 130, 130, 130, 159, 149, 147, 140, 141, 145, 133, 157, 120, 145, 146, 140, 138, 144, 134, 145, 153, 134, 151, 150, 150, 151, 140, 147, 144, 149, 149, 142, 139, 147, 126, 149, 140, 139, 154, 136, 144, 154, 132, 148, 140, 149, 154, 132, 148, 127, 156, 147, 147, 152, 145, 146, 137, 144, 148, 143, 136, 136, 167, 151, 131, 144, 146, 145, 153, 134, 127, 149, 143, 150, 149, 145, 144, 144, 134, 146, 152, 149, 142, 143, 159, 141, 141, 145, 129, 144, 144, 148, 142, 141, 143, 149, 148, 145, 145, 141, 146, 143, 146, 148, 151, 143, 145, 144, 151, 146, 141, 137, 154, 143, 151, 131, 153, 150, 136, 142, 167, 139, 146, 141, 145, 141, 147, 136, 141, 136, 149, 156, 138, 150, 145, 146, 141, 136, 155, 151, 140, 149, 136, 160, 152, 143, 140, 148, 143, 138, 141, 153, 151, 142, 141, 148, 139, 156, 132, 139, 146, 142, 139, 146, 145, 143, 117, 138, 140, 151, 154, 149, 138, 137, 144, 147, 165, 139, 165, 149, 131, 146, 150, 147, 143, 143, 147, 142, 147, 147, 148, 109, 152, 142, 144, 150, 136, 142, 140, 161, 144, 144, 145, 142, 144, 138, 135, 145, 147, 136, 140, 147, 145, 152, 154, 150, 137, 156, 136, 148, 145, 132, 146, 151, 157, 141, 142, 142, 137, 156, 151, 137, 154, 150, 136, 157, 152, 138, 139, 150, 151, 147, 156, 124, 145, 146, 151, 160, 150, 145, 145, 148, 155, 143, 142, 143, 152, 139, 150, 151, 174, 146, 148, 138, 153, 144, 137, 142, 127, 169, 152, 137, 141, 147, 157, 145, 139, 145, 140, 156, 149, 152, 144, 141, 147, 164, 145, 154, 148, 139, 163, 142, 143, 155, 145, 141, 145, 145, 145, 150, 138, 133, 146, 141, 153, 149, 148, 135, 142, 142, 146, 144, 142, 143, 134, 141, 149, 145, 127, 141, 137, 144, 134, 153, 137, 168, 138, 140, 147, 136, 147, 155, 141, 142, 127, 140, 145, 133, 148, 142, 149, 142, 140, 138, 142, 156, 148, 132, 142, 152, 151, 142, 144, 156, 154, 151, 150, 155, 148, 149, 149, 145, 144, 151, 142, 137, 151, 152, 159, 148, 142, 151, 138, 148, 152, 134, 156, 138, 139, 143, 133, 142, 136, 151, 140, 140, 135, 132, 151, 155, 153, 146, 146, 150, 137, 136, 140, 136, 161, 156, 148, 155, 153, 148, 149, 154, 146, 144, 140, 141, 151, 136, 154, 140, 140, 146, 148, 141, 157, 147, 140, 162, 137, 154, 143, 144, 146, 155, 139, 154, 146, 161, 128, 138, 139, 138, 174, 139, 147, 156, 144, 149, 139, 159, 145, 139, 139, 186, 134, 148, 146, 146, 147, 156, 144, 152, 153, 144, 151, 145, 147, 143, 138, 139, 152, 147, 144, 146, 143, 157, 148, 148, 144, 138, 153, 145, 158, 145, 140, 156, 150, 149, 142, 148, 142, 143, 148, 144, 146, 145, 146, 128, 135, 137, 154, 162, 152, 149, 164, 142, 141, 145, 133, 123, 146, 148, 138, 147, 136, 152, 133, 147, 155, 159, 151, 136, 141, 149, 165, 152, 144, 143, 145, 155, 141, 136, 142, 133, 140, 157, 140, 134, 157, 139, 144, 142, 135, 147, 154, 147, 136, 144, 149, 141, 147, 156, 155, 140, 145, 146, 162, 151, 158, 138, 136, 145, 151, 139, 145, 154, 145, 151, 142, 144, 152, 164, 137, 148, 149, 149, 146, 151, 153, 154, 157, 156, 142, 138, 144, 157, 150, 142, 151, 144, 132, 136, 142, 137, 141, 145, 155, 156, 149, 144, 148, 140, 139, 152, 143, 133, 160, 143, 146, 148, 156, 145, 143, 156, 168, 150, 142, 156, 127, 144, 142, 151, 151, 139, 148, 151, 140, 139, 132, 146, 141, 152, 143, 168, 138, 137, 157, 143, 166, 151, 132, 145, 129, 157, 154, 140, 157, 150, 151, 136, 134, 150, 151, 136, 160, 146, 148, 124, 144, 147, 134, 148, 149, 133, 155, 150, 143, 153, 161, 146, 143, 143, 150, 136, 145, 143, 144, 152, 141, 146, 147, 147, 136, 135, 193, 157, 142, 140, 145, 141, 144, 143, 136, 128, 169, 128, 154, 134, 136, 138, 148, 137, 158, 133, 146, 142, 154, 144, 157, 129, 134, 133, 140, 142, 162, 134, 142, 149, 147, 153, 152, 139, 143, 153, 146, 154, 147, 160, 143, 145, 133, 161, 141, 148, 142, 162, 148, 128, 146, 143, 144, 141, 131, 137, 147, 159, 142, 145, 154, 157, 141, 132, 143, 135, 130, 140, 158, 149, 155, 133, 143, 137, 144, 142, 130, 159, 152, 145, 144, 137, 133, 144, 144, 149, 157, 156, 137, 139, 158, 157, 142, 147, 140, 140, 154, 142, 141, 141, 161, 141, 151, 142, 160, 137, 153, 146, 148, 145, 148, 147, 143, 143, 137, 140, 147, 146, 153, 145, 145, 145, 148, 139, 138, 125, 141, 145, 146, 153, 150, 143, 143, 143, 141, 148, 149, 138, 144, 148, 136, 136, 140, 138, 134, 143, 135, 146, 151, 154, 152, 147, 137, 160, 141, 140, 139, 136, 147, 146, 138, 148, 153, 151, 145, 140, 147, 151, 139, 140, 151, 172, 155, 148, 147, 147, 131, 145, 141, 146, 164, 142, 144, 147, 152, 142, 151, 144, 150, 146, 145, 150, 126, 144, 141, 146, 144, 149, 149, 146, 153, 149, 151, 150, 141, 150, 156, 147, 147, 148, 147, 152, 147, 147, 134, 158, 149, 144, 146, 144, 148, 149, 152, 149, 138, 151, 145, 146, 146, 143, 155, 138, 144, 152, 151, 151, 151, 150, 151, 150, 142, 129, 142, 144, 140, 145, 135, 142, 139, 143, 151, 140, 144, 148, 156, 109, 151, 142, 145, 157, 148, 143, 148, 150, 142, 155, 139, 153, 145, 143, 160, 144, 148, 148, 149, 146, 141, 147, 155, 142, 147, 141, 150, 150, 128, 146, 145, 147, 143, 142, 144, 142, 146, 143, 151, 140, 148, 142, 156, 146, 148, 145, 147, 151, 144, 142, 142, 152, 157, 149, 148, 144, 165, 135, 146, 144, 141, 144, 145, 148, 154, 154, 141, 141, 147, 151, 147, 146, 147, 143, 141, 143, 149, 144, 158, 156, 144, 146, 149, 154, 134, 134, 140, 156, 147, 138, 149, 152, 141, 141, 142, 143, 150, 139, 141, 150, 148, 152, 148, 144, 147, 138, 148, 151, 142, 145, 145, 150, 145, 136, 151, 158, 137, 145, 146, 156, 154, 135, 142, 151, 144, 150, 141, 155, 132, 145, 158, 157, 134, 147, 136, 156, 135, 148, 141, 137, 144, 141, 153, 158, 148, 140, 142, 174, 142, 153, 165, 148, 145, 149, 151, 146, 166, 144, 135, 152, 150, 150, 164, 145, 146, 144, 145, 149, 143, 152, 162, 154, 152, 144, 129, 136, 148, 135, 153, 149, 160, 140, 140, 134, 152, 143, 147, 136, 144, 139, 169, 145, 145, 152, 160, 152, 133, 147, 147, 153, 149, 150, 168, 152, 142, 150, 164, 142, 177, 142, 133, 139, 127, 142, 149, 139, 160, 142, 156, 143, 136, 148, 152, 149, 143, 150, 147, 133, 151, 155, 137, 138, 116, 144, 145, 154, 148, 143, 134, 141, 148, 144, 134, 153, 154, 147, 144, 141, 142, 121, 156, 130, 131, 147, 158, 147, 150, 149, 151, 138, 139, 174, 155, 132, 139, 140, 140, 157, 140, 142, 141, 146, 150, 156, 157, 153, 150, 150, 147, 137, 149, 159, 136, 149, 145, 162, 157, 158, 145, 127, 155, 137, 146, 136, 139, 140, 152, 143, 147, 131, 146, 166, 141, 129, 140, 152, 145, 148, 148, 166, 157, 136, 147, 140, 145, 136, 143, 150, 142, 152, 124, 152, 149, 145, 187, 149, 134, 156, 153, 150, 146, 137, 145, 128, 146, 141, 135, 138, 139, 146, 154, 143, 142, 152, 147, 145, 144, 130, 151, 150, 138, 139, 135, 157, 138, 175, 139, 148, 159, 151, 137, 149, 143, 149, 130, 153, 142, 143, 150, 152, 151, 147, 154, 141, 139, 147, 138, 151, 145, 146, 145, 155, 146, 147, 139, 145, 143, 153, 145, 139, 142, 137, 152, 155, 151, 152, 143, 135, 142, 124, 146, 145, 153, 145, 152, 142, 145, 139, 161, 144, 142, 138, 151, 149, 145, 151, 144, 144, 152, 143, 146, 137, 145, 148, 149, 152, 153, 154, 131, 156, 146, 146, 159, 151, 137, 144, 139, 143, 146, 144, 144, 143, 160, 144, 148, 147, 142, 157, 152, 145, 145, 143, 147, 149, 140, 144, 149, 132, 150, 138, 151, 139, 138, 151, 152, 177, 150, 146, 148, 147, 144, 159, 150, 149, 138, 144, 148, 146, 157, 145, 147, 150, 139, 149, 145, 144, 146, 145, 145, 156, 158, 141, 149, 142, 155, 144, 143, 142, 145, 150, 143, 142, 146, 145, 149, 147, 142, 151, 150, 148, 146, 145, 150, 141, 149, 133, 138, 147, 150, 147, 141, 149, 152, 154, 146, 145, 154, 139, 150, 144, 145, 148, 144, 145, 149, 144, 141, 146, 133, 144, 151, 140, 132, 142, 149, 149, 152, 143, 119, 150, 143, 146, 137, 139, 156, 148, 156, 146, 151, 143, 147, 148, 145, 146, 163, 152, 141, 142, 148, 154, 152, 142, 147, 141, 149, 149, 150, 152, 149, 142, 144, 140, 139, 146, 147, 142, 115, 153, 142, 147, 149, 149, 148, 154, 140, 146, 164, 144, 144, 151, 146, 148, 147, 140, 142, 143, 151, 144, 155, 147, 152, 142, 150, 175, 140, 141, 149, 143, 145, 154, 146, 145, 141, 146, 140, 141, 142, 147, 146, 150, 145, 148, 149, 155, 146, 146, 147, 144, 151, 150, 178, 140, 154, 143, 148, 143, 141, 144, 140, 149, 144, 140, 151, 146, 143, 147, 151, 207, 142, 140, 145, 146, 141, 149, 146, 148, 152, 149, 155, 145, 173, 146, 141, 145, 143, 143, 148, 145, 120, 149, 146, 144, 143, 148, 145, 145, 143, 184, 145, 148, 147, 151, 147, 140, 158, 143, 147, 139, 147, 147, 145, 141, 157, 144, 151, 144, 145, 155, 150, 145, 139, 145, 143, 150, 146, 146, 147, 167, 142, 148, 145, 145, 144, 145, 144, 144, 146, 145, 147, 142, 148, 148, 145, 146, 142, 154, 148, 146, 143, 159, 144, 144, 143, 156, 147, 144, 148, 140, 147, 139, 148, 148, 148, 143, 148, 146, 146, 144, 143, 158, 146, 148, 145, 141, 149, 143, 141, 142, 156, 147, 133, 145, 143, 148, 151, 150, 150, 143, 142, 160, 146, 141, 144, 144, 150, 151, 149, 148, 144, 148, 144, 169, 150, 148, 142, 150, 150, 145, 147, 144, 147, 146, 144, 142, 149, 141, 149, 146, 150, 148, 142, 151, 149, 145, 144, 147, 143, 150, 145, 151, 144, 146, 147, 148, 142, 143, 148, 145, 147, 142, 144, 146, 146, 148, 144, 146, 147, 145, 147, 142, 147, 144, 141, 125, 147, 150, 141, 140, 144, 144, 139, 151, 146, 149, 145, 144, 144, 145, 149, 145, 147, 153, 148, 136, 145, 144, 140, 128, 149, 145, 154, 147, 148, 152, 147, 144, 143, 142, 148, 146, 148, 139, 136, 143, 148, 150, 147, 147, 138, 148, 151, 154, 149, 156, 140, 150, 146, 147, 150, 143, 148, 152, 138, 145, 147, 149, 145, 147, 146, 134, 148, 145, 141, 149, 149, 144, 148, 144, 141, 150, 131, 145, 149, 143, 146, 125, 143, 140, 139, 128, 149, 147, 140, 138, 145, 150, 147, 137, 151, 155, 145, 166, 148, 148, 142, 148, 139, 150, 152, 145, 143, 146, 146, 149, 138, 151, 146, 139, 143, 164, 139, 152, 133, 146, 144, 152, 146, 142, 141, 142, 141, 137, 155, 148, 138, 146, 146, 150, 141, 146, 147, 147, 151, 150, 156, 134, 147, 143, 157, 150, 156, 150, 140, 148, 147, 153, 142, 149, 145, 148, 144, 149, 140, 145, 146, 136, 144, 145, 137, 153, 143, 151, 148, 161, 125, 152, 138, 147, 141, 147, 145, 153, 145, 154, 143, 143, 150, 139, 143, 141, 149, 150, 145, 152, 149, 147, 152, 146, 151, 143, 153, 147, 153, 143, 142, 151, 145, 145, 139, 141, 128, 150, 134, 148, 140, 147, 137, 147, 145, 152, 141, 153, 153, 144, 144, 149, 165, 135, 152, 152, 141, 143, 155, 144, 145, 143, 188, 145, 143, 147, 148, 144, 143, 150, 151, 145, 139, 150, 147, 148, 151, 147, 144, 148, 151, 134, 145, 154, 144, 147, 141, 152, 144, 143, 144, 150, 159, 154, 137, 138, 151, 154, 149, 142, 151, 154, 146, 141, 151, 143, 149, 144, 146, 141, 145, 152, 147, 129, 144, 142, 143, 147, 137, 152, 143, 147, 142, 145, 147, 145, 149, 150, 142, 146, 149, 140, 145, 147, 133, 148, 142, 138, 139, 156, 156, 146, 154, 149, 146, 145, 151, 145, 141, 123, 145, 150, 152, 152, 144, 144, 140, 155, 141, 146, 146, 148, 143, 146, 150, 150, 159, 143, 143, 144, 154, 147, 144, 149, 142, 154, 149, 154, 152, 141, 151, 145, 156, 148, 143, 138, 144, 147, 148, 136, 143, 147, 151, 151, 145, 144, 149, 147, 149, 143, 151, 153, 145, 148, 144, 141, 142, 148, 146, 149, 135, 159, 143, 145, 148, 148, 134, 147, 154, 146, 141, 145, 149, 146, 150, 145, 122, 141, 151, 141, 139, 141, 148, 148, 139, 149, 143, 140, 147, 142, 143, 149, 143, 144, 147, 148, 142, 161, 144, 149, 143, 149, 138, 141, 151, 147, 147, 149, 149, 145, 143, 137, 146, 143, 151, 149, 160, 146, 156, 144, 150, 158, 144, 145, 147, 142, 143, 146, 140, 148, 148, 143, 142, 143, 150, 154, 147, 148, 139, 141, 141, 145, 151, 149, 149, 155, 159, 146, 143, 146, 153, 148, 149, 136, 139, 143, 145, 144, 155, 143, 146, 152, 144, 150, 146, 157, 143, 145, 148, 140, 148, 144, 145, 138, 144, 150, 146, 152, 144, 156, 146, 147, 154, 145, 161, 146, 140, 151, 147, 145, 147, 159, 146, 136, 147, 146, 145, 145, 147, 147, 151, 147, 145, 146, 147, 141, 150, 148, 147, 162, 139, 138, 144, 144, 150, 161, 122, 149, 142, 156, 146, 147, 147, 141, 146, 150, 146, 141, 152, 145, 146, 150, 148, 141, 147, 144, 159, 147, 150, 149, 150, 147, 143, 143, 148, 144, 145, 138, 147, 143, 147, 161, 134, 143, 144, 157, 147, 146, 145, 146, 146, 146, 143, 146, 124, 148, 145, 142, 140, 144, 145, 154, 139, 146, 143, 147, 145, 146, 145, 143, 144, 145, 153, 146, 146, 147, 141, 144, 145, 145, 153, 141, 148, 139, 143, 151, 146, 147, 150, 150, 152, 148, 146, 144, 145, 142, 146, 144, 145, 138, 144, 145, 143, 147, 149, 143, 147, 149, 148, 144, 143, 149, 149, 142, 146, 148, 148, 143, 142, 153, 146, 148, 154, 146, 147, 147, 148, 143, 146, 143, 151, 145, 147, 148, 150, 150, 138, 137, 145, 142, 148, 148, 146, 146, 149, 143, 157, 143, 146, 144, 149, 148, 145, 138, 144, 147, 145, 151, 152, 143, 151, 146, 127, 146, 147, 148, 149, 144, 140, 149, 129, 144, 149, 144, 148, 147, 145, 157, 144, 149, 144, 145, 148, 174, 145, 143, 143, 145, 146, 156, 149, 141, 152, 146, 144, 146, 146, 145, 147, 148, 153, 146, 146, 147, 148, 147, 147, 150, 153, 144, 152, 146, 143, 150, 149, 142, 154, 147, 145, 143, 148, 146, 146, 149, 143, 146, 150, 145, 141, 145, 145, 149, 149, 144, 143, 148, 147, 143, 144, 147, 150, 144, 142, 146, 143, 152, 143, 148, 144, 137, 145, 146, 138, 145, 145, 144, 142, 146, 142, 145, 146, 142, 153, 146, 142, 147, 137, 148, 143, 149, 146, 144, 150, 146, 150, 144, 146, 144, 152, 136, 154, 142, 151, 142, 150, 149, 150, 154, 142, 145, 146, 146, 145, 131, 143, 142, 142, 154, 146, 134, 151, 144, 148, 137, 149, 141, 140, 147, 145, 149, 145, 147, 150, 140, 135, 144, 149, 140, 144, 122, 143, 138, 143, 146, 149, 143, 145, 146, 143, 137, 155, 145, 143, 145, 148, 160, 137, 149, 146, 149, 143, 146, 148, 142, 149, 144, 142, 142, 144, 145, 146, 146, 147, 160, 129, 149, 137, 147, 147, 142, 144, 147, 145, 145, 150, 138, 150, 150, 155, 146, 150, 144, 146, 143, 152, 145, 149, 145, 143, 141, 148, 167, 147, 146, 139, 146, 140, 156, 145, 146, 148, 145, 153, 143, 145, 152, 118, 158, 150, 143, 145, 143, 142, 143, 152, 150, 139, 146, 139, 145, 144, 145, 145, 144, 147, 143, 150, 157, 150, 144, 149, 141, 145, 143, 152, 150, 151, 155, 141, 141, 148, 139, 138, 143, 139, 143, 143, 144, 142, 138, 141, 149, 141, 143, 136, 145, 117, 149, 144, 146, 145, 142, 147, 142, 145, 148, 149, 145, 151, 143, 168, 142, 141, 146, 145, 149, 147, 149, 138, 153, 186, 150, 151, 149, 142, 144, 140, 143, 148, 146, 145, 147, 138, 139, 150, 143, 153, 138, 142, 139, 148, 143, 143, 149, 137, 144, 142, 142, 150, 141, 153, 147, 139, 148, 145, 163, 151, 142, 147, 144, 140, 148, 144, 146, 145, 143, 142, 146, 144, 151, 143, 148, 143, 134, 147, 154, 140, 144, 138, 169, 135, 148, 151, 161, 143, 169, 142, 136, 139, 155, 141, 147, 142, 148, 144, 149, 146, 141, 151, 152, 143, 151, 148, 141, 149, 147, 144, 157, 143, 147, 143, 146, 147, 143, 139, 155, 158, 143, 141, 145, 152, 145, 141, 157, 143, 149, 143, 152, 147, 146, 148, 141, 146, 142, 145, 156, 148, 146, 147, 149, 147, 141, 130, 150, 147, 148, 143, 152, 146, 139, 148, 149, 144, 146, 147, 141, 137, 140, 147, 143, 142, 145, 137, 146, 153, 160, 158, 146, 147, 150, 158, 145, 148, 142, 145, 173, 146, 148, 142, 148, 147, 148, 150, 150, 145, 148, 136, 154, 141, 145, 144, 145, 148, 143, 144, 147, 147, 134, 152, 152, 148, 144, 137, 140, 144, 148, 145, 147, 148, 149, 144, 148, 149, 144, 142, 141, 145, 152, 139, 146, 154, 143, 148, 145, 148, 148, 144, 143, 148, 153, 144, 151, 154, 146, 138, 147, 144, 143, 145, 142, 159, 143, 149, 140, 144, 139, 151, 148, 142, 146, 149, 148, 144, 145, 144, 142, 146, 159, 147, 140, 150, 151, 145, 150, 145, 146, 142, 147, 164, 142, 125, 150, 148, 145, 148, 146, 147, 152, 129, 147, 146, 151, 153, 144, 147, 150, 145, 146, 145, 139, 144, 152, 142, 144, 148, 138, 146, 138, 146, 146, 148, 140, 145, 145, 148, 147, 148, 150, 156, 143, 143, 151, 147, 150, 145, 153, 141, 145, 147, 145, 149, 142, 140, 147, 142, 157, 156, 148, 154, 147, 147, 147, 150, 146, 143, 138, 147, 146, 148, 148, 149, 145, 150, 147, 141, 146, 146, 143, 144, 151, 148, 142, 144, 146, 151, 148, 146, 144, 142, 144, 148, 143, 147, 158, 141, 145, 147, 136, 144, 153, 148, 151, 143, 141, 146, 146, 146, 141, 144, 136, 137, 153, 147, 151, 151, 145, 116, 148, 146, 140, 145, 138, 145, 147, 132, 148, 159, 145, 148, 152, 151, 144, 148, 150, 146, 146, 138, 184, 147, 149, 139, 158, 144, 139, 144, 145, 147, 144, 145, 150, 145, 144, 146, 153, 145, 148, 146, 143, 147, 143, 153, 143, 142, 139, 150, 159, 144, 146, 153, 152, 147, 146, 149, 143, 145, 145, 153, 144, 151, 146, 146, 143, 147, 143, 143, 149, 145, 149, 144, 147, 146, 150, 140, 142, 159, 149, 148, 143, 152, 148, 146, 144, 139, 151, 144, 145, 153, 148, 147, 146, 148, 144, 148, 147, 146, 119, 144, 144, 145, 141, 148, 149, 146, 151, 144, 151, 136, 145, 152, 141, 141, 146, 150, 145, 145, 143, 143, 146, 146, 153, 146, 141, 144, 149, 150, 149, 143, 148, 142, 147, 149, 148, 151, 149, 140, 126, 149, 147, 147, 139, 144, 142, 152, 146, 140, 149, 149, 146, 145, 140, 142, 151, 136, 144, 147, 147, 146, 158, 142, 140, 152, 138, 151, 151, 146, 151, 146, 149, 142, 141, 145, 144, 148, 155, 146, 136, 147, 160, 152, 151, 141, 143, 149, 142, 150, 157, 148, 141, 151, 147, 148, 145, 146, 146, 150, 141, 143, 147, 151, 143, 145, 145, 149, 155, 143, 155, 148, 148, 150, 141, 155, 146, 150, 150, 140, 148, 142, 143, 145, 145, 146, 129, 147, 147, 152, 142, 148, 145, 145, 145, 145, 147, 150, 151, 139, 151, 146, 145, 156, 142, 160, 146, 138, 145, 144, 152, 143, 149, 150, 142, 147, 145, 147, 146, 140, 150, 143, 147, 145, 152, 143, 141, 153, 147, 174, 154, 153, 148, 140, 142, 150, 144, 143, 148, 153, 142, 149, 136, 150, 149, 138, 148, 149, 140, 148, 145, 146, 144, 153, 149, 144, 138, 154, 150, 148, 145, 163, 141, 144, 143, 146, 145, 145, 144, 153, 148, 150, 150, 146, 145, 146, 147, 144, 151, 144, 145, 139, 150, 153, 142, 136, 150, 142, 146, 146, 140, 145, 146, 138, 147, 150, 140, 148, 143, 146, 144, 145, 156, 147, 146, 151, 147, 142, 148, 147, 141, 148, 144, 142, 151, 147, 146, 146, 149, 141, 145, 158, 148, 149, 144, 146, 129, 147, 151, 143, 146, 148, 138, 145, 146, 146, 145, 154, 144, 145, 143, 152, 150, 143, 148, 145, 148, 142, 141, 150, 141, 146, 146, 150, 144, 145, 146, 130, 116, 150, 147, 146, 148, 147, 154, 146, 148, 142, 144, 142, 147, 149, 148, 143, 148, 141, 143, 142, 141, 145, 149, 144, 149, 141, 148, 150, 139, 143, 141, 141, 153, 154, 146, 147, 147, 139, 148, 145, 140, 143, 149, 147, 156, 152, 150, 147, 152, 145, 186, 147, 139, 149, 140, 141, 141, 145, 147, 146, 147, 148, 142, 145, 145, 146, 146, 144, 151, 141, 140, 147, 143, 144, 140, 144, 145, 155, 141, 145, 150, 121, 148, 119, 152, 140, 147, 141, 143, 150, 152, 147, 142, 144, 141, 146, 139, 141, 124, 145, 145, 146, 145, 144, 143, 141, 144, 147, 143, 136, 147, 122, 144, 150, 146, 142, 145, 132, 144, 159, 147, 145, 151, 148, 145, 145, 147, 130, 142, 145, 140, 144, 144, 147, 148, 146, 148, 151, 149, 148, 142, 148, 147, 140, 147, 152, 145, 148, 127, 151, 137, 149, 145, 162, 143, 147, 149, 140, 127, 168, 146, 146, 144, 147, 143, 138, 144, 148, 146, 145, 147, 137, 144, 143, 154, 150, 143, 140, 150, 145, 136, 146, 146, 146, 146, 144, 145, 147, 154, 150, 142, 144, 142, 134, 145, 145, 142, 145, 146, 148, 127, 145, 140, 152, 139, 141, 154, 131, 147, 155, 151, 140, 142, 145, 152, 157, 143, 153, 146, 139, 130, 146, 141, 142, 143, 146, 143, 141, 143, 142, 129, 144, 133, 144, 150, 147, 142, 148, 145, 151, 143, 141, 145, 143, 144, 141, 146, 146, 144, 144, 142, 153, 153, 142, 137, 140, 143, 147, 148, 151, 152, 149, 148, 147, 143, 144, 146, 142, 135, 146, 140, 148, 147, 146, 160, 152, 149, 139, 148, 146, 147, 147, 139, 141, 142, 143, 148, 145, 143, 147, 144, 155, 141, 140, 146, 148, 141, 145, 149, 144, 153, 143, 144, 143, 144, 146, 153, 138, 154, 152, 144, 148, 148, 142, 152, 149, 144, 148, 145, 143, 146, 149, 142, 144, 147, 160, 145, 146, 144, 150, 142, 152, 137, 146, 156, 142, 147, 143, 152, 144, 135, 138, 147, 143, 147, 150, 139, 158, 148, 142, 146, 148, 150, 145, 145, 143, 147, 146, 145, 142, 145, 138, 147, 153, 143, 146, 124, 146, 144, 140, 140, 148, 148, 143, 143, 145, 139, 143, 138, 141, 149, 150, 157, 141, 144, 147, 146, 142, 141, 138, 150, 147, 144, 147, 141, 135, 145, 135, 149, 143, 151, 131, 146, 141, 144, 146, 143, 147, 145, 146, 146, 142, 138, 146, 149, 152, 145, 150, 146, 144, 155, 144, 147, 149, 148, 148, 138, 144, 153, 149, 147, 155, 147, 145, 153, 142, 147, 144, 142, 147, 142, 147, 146, 141, 158, 147, 141, 141, 144, 141, 142, 146, 148, 147, 151, 136, 144, 147, 147, 142, 151, 150, 145, 147, 155, 150, 148, 148, 148, 147, 146, 147, 140, 153, 154, 145, 145, 145, 147, 145, 148, 139, 150, 142, 147, 138, 152, 151, 149, 141, 144, 136, 148, 129, 148, 150, 148, 149, 150, 146, 148, 147, 151, 142, 148, 148, 146, 158, 145, 145, 144, 147, 151, 148, 147, 147, 148, 166, 148, 147, 146, 148, 136, 146, 147, 147, 147, 144, 145, 146, 137, 142, 146, 147, 142, 153, 149, 148, 150, 146, 147, 130, 150, 145, 144, 144, 147, 165, 144, 139, 149, 146, 157, 146, 151, 150, 147, 149, 149, 153, 146, 146, 138, 140, 140, 143, 149, 146, 136, 146, 130, 148, 139, 145, 147, 139, 144, 145, 142, 148, 150, 144, 146, 143, 150, 146, 149, 143, 145, 147, 148, 148, 149, 149, 143, 144, 148, 147, 145, 148, 144, 147, 146, 143, 150, 149, 145, 145, 139, 140, 146, 133, 155, 143, 149, 148, 151, 153, 147, 146, 143, 149, 146, 146, 147, 142, 143, 121, 151, 135, 139, 145, 145, 146, 143, 142, 144, 146, 148, 139, 144, 148, 147, 150, 145, 146, 146, 148, 180, 152, 145, 147, 143, 149, 145, 145, 146, 141, 139, 152, 150, 147, 149, 150, 146, 140, 147, 147, 142, 146, 146, 152, 148, 149, 143, 149, 123, 141, 147, 145, 142, 136, 148, 147, 148, 145, 143, 146, 144, 144, 139, 143, 148, 147, 140, 142, 143, 145, 139, 143, 142, 149, 142, 149, 144, 154, 143, 144, 140, 149, 149, 146, 138, 149, 150, 145, 151, 146, 155, 147, 150, 150, 150, 143, 144, 149, 130, 146, 147, 143, 146, 145, 150, 146, 152, 145, 140, 150, 150, 144, 145, 151, 142, 148, 144, 138, 140, 145, 152, 150, 147, 151, 152, 149, 150, 139, 148, 148, 144, 147, 170, 146, 143, 149, 144, 149, 124, 147, 144, 145, 169, 138, 142, 146, 149, 150, 143, 142, 137, 149, 144, 147, 153, 153, 133, 149, 152, 150, 144, 145, 147, 146, 144, 143, 143, 141, 147, 146, 136, 145, 146, 146, 147, 145, 146, 144, 152, 140, 145, 148, 143, 148, 145, 154, 142, 145, 145, 142, 145, 148, 152, 142, 149, 142, 141, 147, 147, 158, 150, 149, 141, 147, 142, 149, 152, 140, 140, 147, 141, 138, 149, 148, 144, 149, 139, 146, 144, 145, 151, 149, 143, 148, 154, 149, 146, 145, 143, 143, 157, 146, 140, 160, 148, 146, 138, 144, 142, 142, 147, 150, 127, 148, 140, 150, 146, 147, 139, 139, 151, 148, 140, 146, 170, 144, 145, 150, 153, 151, 127, 148, 136, 145, 148, 136, 137, 144, 141, 147, 147, 152, 143, 162, 139, 143, 143, 145, 146, 151, 147, 146, 143, 144, 145, 160, 144, 134, 147, 143, 147, 145, 138, 149, 141, 145, 148, 141, 150, 151, 142, 146, 142, 145, 147, 147, 147, 148, 156, 142, 151, 146, 146, 141, 145, 146, 144, 145, 147, 143, 144, 147, 148, 141, 152, 145, 159, 137, 142, 152, 151, 142, 144, 148, 135, 140, 150, 143, 138, 130, 139, 127, 145, 149, 143, 145, 143, 142, 127, 150, 149, 146, 148, 145, 153, 150, 142, 147, 144, 146, 146, 141, 147, 150, 144, 163, 143, 142, 142, 160, 141, 145, 141, 148, 138, 160, 152, 147, 149, 144, 165, 156, 146, 147, 146, 140, 139, 152, 141, 129, 148, 138, 147, 139, 146, 144, 152, 154, 136, 149, 152, 144, 147, 145, 141, 150, 140, 141, 145, 142, 143, 146, 146, 142, 140, 148, 145, 145, 147, 148, 161, 149, 141, 145, 146, 150, 141, 160, 140, 141, 152, 142, 144, 137, 155, 147, 134, 144, 148, 151, 143, 146, 144, 146, 146, 145, 150, 144, 147, 142, 143, 149, 138, 147, 147, 155, 142, 159, 155, 145, 134, 131, 130, 133, 158, 163, 152, 151, 150, 154, 138, 157, 162, 155, 154, 148, 151, 142, 151, 140, 114, 155, 146, 143, 143, 143, 121, 154, 131, 151, 142, 143, 143, 145, 149, 141, 132, 147, 144, 153, 152, 145, 143, 146, 145, 140, 70, 143, 125, 159, 166, 135, 142, 144, 146, 145, 162, 144, 148, 148, 142, 154, 154, 132, 144, 149, 144, 121, 150, 148, 134, 147, 154, 135, 144, 137, 136, 142, 146, 144, 141, 126, 139, 143, 135, 143, 133, 155, 136, 158, 124, 150, 139, 149, 149, 158, 171, 140, 144, 137, 145, 148, 138, 140, 143, 150, 134, 155, 211, 149, 144, 141, 145, 154, 151, 147, 146, 154, 138, 149, 142, 144, 142, 135, 143, 152, 147, 156, 152, 147, 137, 149, 145, 144, 156, 152, 151, 142, 145, 141, 143, 144, 143, 150, 163, 135, 150, 154, 147, 147, 154, 152, 155, 159, 151, 137, 142, 138, 138, 145, 151, 164, 142, 145, 152, 128, 136, 163, 141, 150, 149, 151, 126, 143, 139, 148, 148, 162, 145, 146, 147, 154, 139, 162, 144, 141, 140, 151, 138, 151, 163, 144, 156, 169, 135, 150, 150, 163, 147, 143, 145, 140, 153, 146, 157, 147, 144, 160, 130, 139, 121, 147, 144, 152, 137, 151, 143, 138, 141, 147, 148, 113, 159, 141, 144, 133, 151, 148, 162, 137, 143, 143, 154, 137, 149, 136, 128, 133, 150, 149, 146, 142, 139, 134, 144, 139, 140, 146, 166, 155, 109, 139, 144, 154, 174, 148, 151, 142, 117, 145, 133, 138, 128, 147, 152, 144, 142, 156, 141, 144, 146, 149, 141, 136, 157, 156, 170, 150, 151, 128, 133, 143, 134, 148, 139, 155, 143, 148, 145, 152, 138, 146, 131, 110, 152, 113, 135, 141, 149, 157, 128, 152, 129, 154, 144, 154, 160, 153, 143, 149, 149, 135, 118, 150, 152, 162, 151, 184, 134, 165, 172, 150, 145, 141, 164, 156, 142, 142, 140, 146, 134, 136, 163, 145, 153, 168, 143, 147, 145, 156, 176, 136, 134, 191, 150, 156, 150, 134, 141, 145, 126, 168, 166, 152, 142, 158, 146, 133, 154, 153, 144, 163, 129, 173, 158, 150, 140, 147, 150, 150, 136, 136, 145, 137, 165, 145, 159, 133, 145, 146, 165, 166, 142, 145, 140, 149, 142, 123, 132, 148, 149, 143, 120, 152, 124, 150, 157, 157, 141, 148, 140, 157, 151, 156, 152, 148, 142, 167, 152, 153, 147, 146, 159, 150, 144, 144, 170, 119, 151, 143, 132, 145, 108, 147, 138, 147, 162, 131, 136, 142, 144, 143, 152, 142, 129, 156, 134, 144, 143, 144, 143, 141, 141, 132, 153, 126, 147, 133, 144, 147, 149, 142, 135, 133, 150, 188, 169, 149, 147, 164, 147, 154, 140, 151, 151, 146, 160, 144, 155, 129, 121, 128, 162, 164, 152, 140, 146, 138, 152, 143, 148, 121, 142, 143, 150, 137, 149, 137, 155, 136, 139, 149, 119, 151, 147, 145, 153, 149, 158, 172, 146, 119, 138, 141, 151, 167, 145, 141, 129, 139, 145, 150, 149, 135, 156, 139, 148, 145, 141, 148, 135, 138, 146, 145, 133, 150, 146, 152, 147, 138, 141, 140, 146, 143, 137, 143, 144, 140, 141, 148, 141, 142, 140, 138, 143, 133, 137, 146, 143, 153, 151, 153, 150, 146, 148, 142, 122, 157, 142, 145, 138, 148, 148, 156, 154, 143, 118, 149, 151, 144, 155, 136, 142, 145, 145, 154, 135, 151, 117, 143, 146, 142, 154, 157, 148, 149, 146, 146, 136, 138, 149, 142, 139, 150, 130, 134, 137, 131, 129, 141, 147, 135, 150, 138, 151, 137, 150, 157, 146, 147, 153, 136, 147, 132, 143, 143, 146, 153, 148, 138, 143, 142, 129, 143, 139, 150, 156, 148, 158, 144, 159, 137, 138, 147, 150, 148, 150, 139, 139, 154, 153, 155, 148, 131, 147, 139, 153, 156, 139, 143, 152, 144, 144, 127, 162, 134, 147, 148, 149, 139, 151, 137, 135, 138, 145, 134, 157, 140, 137, 147, 152, 140, 146, 150, 147, 157, 149, 149, 138, 140, 142, 147, 140, 140, 138, 147, 157, 149, 146, 138, 161, 132, 148, 131, 142, 128, 146, 139, 142, 141, 151, 133, 170, 154, 142, 141, 153, 151, 160, 153, 137, 174, 134, 148, 150, 141, 130, 141, 147, 146, 150, 146, 150, 142, 134, 145, 139, 149, 140, 144, 160, 145, 148, 152, 156, 146, 151, 151, 151, 144, 141, 146, 148, 142, 130, 118, 137, 164, 150, 150, 147, 158, 165, 143, 142, 155, 126, 153, 141, 153, 150, 134, 142, 141, 151, 156, 145, 148, 145, 151, 149, 145, 150, 142, 143, 150, 147, 149, 144, 148, 147, 151, 141, 143, 149, 149, 145, 146, 143, 146, 148, 154, 149, 143, 147, 146, 142, 149, 146, 143, 143, 138, 151, 147, 142, 154, 153, 155, 146, 141, 146, 151, 148, 145, 145, 144, 138, 147, 151, 142, 147, 147, 143, 143, 151, 148, 144, 148, 145, 162, 143, 150, 152, 149, 143, 153, 141, 141, 145, 144, 147, 145, 148, 137, 146, 153, 148, 146, 144, 141, 145, 153, 144, 143, 146, 149, 151, 139, 149, 144, 151, 144, 148, 149, 144, 148, 162, 142, 146, 146, 151, 143, 145, 151, 148, 147, 143, 148, 140, 142, 144, 149, 141, 144, 143, 146, 151, 138, 153, 149, 145, 142, 142, 144, 146, 151, 144, 143, 140, 148, 149, 150, 151, 152, 161, 144, 147, 148, 139, 145, 146, 139, 140, 154, 162, 136, 141, 148, 142, 146, 147, 145, 144, 143, 149, 150, 151, 147, 141, 145, 150, 143, 147, 151, 141, 133, 149, 151, 146, 157, 147, 140, 149, 149, 145, 153, 140, 145, 146, 154, 138, 148, 144, 137, 145, 141, 149, 139, 153, 143, 139, 148, 142, 151, 149, 141, 151, 147, 142, 143, 154, 143, 150, 151, 143, 146, 142, 151, 147, 146, 139, 142, 148, 154, 148, 145, 147, 138, 138, 143, 136, 144, 156, 144, 144, 139, 136, 140, 146, 151, 135, 145, 146, 153, 146, 147, 146, 142, 142, 142, 154, 143, 143, 149, 138, 149, 149, 142, 146, 146, 147, 151, 146, 146, 142, 140, 146, 141, 147, 145, 142, 149, 138, 138, 143, 147, 148, 144, 148, 142, 144, 145, 145, 148, 138, 142, 144, 146, 145, 143, 146, 148, 148, 147, 145, 147, 147, 138, 144, 149, 148, 155, 136, 157, 141, 143, 145, 144, 155, 141, 144, 146, 144, 149, 150, 144, 146, 140, 150, 148, 144, 147, 147, 138, 144, 149, 142, 172, 141, 147, 144, 146, 144, 149, 149, 142, 149, 150, 144, 148, 142, 149, 150, 144, 147, 147, 146, 149, 150, 144, 146, 145, 145, 144, 147, 147, 145, 143, 138, 151, 147, 148, 148, 148, 142, 147, 151, 145, 146, 148, 149, 144, 145, 146, 143, 148, 143, 143, 143, 148, 146, 150, 143, 145, 150, 143, 150, 148, 149, 150, 149, 136, 144, 142, 147, 142, 145, 145, 145, 145, 154, 147, 144, 161, 145, 143, 145, 146, 144, 139, 141, 143, 147, 147, 149, 141, 142, 138, 142, 161, 150, 143, 144, 143, 135, 145, 151, 143, 143, 146, 134, 141, 139, 151, 147, 152, 148, 145, 144, 150, 151, 147, 146, 146, 143, 136, 140, 155, 142, 144, 143, 147, 147, 148, 148, 130, 113, 147, 152, 143, 148, 144, 145, 147, 147, 146, 147, 144, 140, 142, 148, 139, 155, 152, 145, 145, 143, 146, 138, 146, 155, 150, 147, 141, 150, 142, 122, 141, 143, 146, 143, 149, 144, 142, 147, 146, 139, 148, 143, 141, 146, 148, 151, 144, 147, 143, 183, 149, 153, 144, 143, 140, 148, 142, 147, 144, 148, 148, 137, 139, 146, 146, 142, 142, 145, 143, 147, 147, 149, 148, 148, 149, 147, 151, 145, 152, 144, 158, 149, 113, 153, 145, 149, 149, 153, 147, 143, 144, 144, 151, 148, 144, 151, 143, 134, 145, 149, 148, 143, 142, 149, 138, 144, 144, 145, 145, 148, 140, 146, 139, 144, 141, 146, 146, 145, 146, 152, 145, 147, 148, 142, 155, 145, 138, 111, 146, 144, 148, 141, 145, 144, 167, 147, 145, 145, 143, 147, 150, 142, 159, 145, 149, 142, 154, 153, 144, 146, 151, 147, 137, 144, 168, 149, 146, 106, 167, 151, 146, 146, 138, 144, 148, 149, 146, 144, 154, 144, 140, 150, 145, 148, 150, 143, 145, 147, 150, 141, 138, 147, 145, 140, 148, 148, 149, 142, 142, 147, 138, 143, 139, 146, 158, 144, 146, 147, 143, 129, 145, 143, 152, 142, 141, 149, 153, 149, 148, 146, 153, 144, 144, 151, 156, 145, 155, 146, 143, 126, 147, 146, 146, 138, 148, 147, 143, 155, 142, 137, 144, 151, 150, 146, 142, 145, 146, 144, 152, 149, 148, 147, 144, 144, 145, 142, 145, 144, 147, 147, 147, 144, 142, 140, 140, 147, 146, 148, 151, 151, 147, 128, 141, 138, 142, 153, 147, 142, 144, 145, 140, 150, 140, 155, 154, 149, 148, 139, 145, 146, 147, 147, 147, 131, 143, 143, 149, 145, 148, 145, 141, 143, 141, 145, 144, 142, 148, 148, 147, 143, 143, 140, 144, 121, 146, 147, 143, 128, 166, 142, 150, 143, 141, 143, 149, 144, 152, 144, 146, 132, 143, 149, 159, 143, 139, 134, 156, 147, 145, 127, 166, 148, 128, 145, 138, 159, 151, 152, 149, 158, 161, 138, 144, 154, 154, 145, 135, 126, 153, 145, 128, 146, 146, 143, 131, 120, 139, 150, 150, 153, 146, 133, 150, 134, 144, 139, 149, 148, 137, 151, 144, 141, 144, 131, 148, 154, 146, 157, 138, 155, 147, 150, 143, 149, 146, 137, 144, 137, 140, 145, 146, 135, 147, 138, 141, 143, 158, 149, 149, 149, 150, 150, 161, 148, 160, 149, 143, 147, 157, 126, 160, 146, 144, 145, 156, 139, 128, 149, 99, 148, 150, 142, 145, 145, 142, 144, 155, 156, 143, 161, 142, 145, 121, 149, 149, 147, 151, 132, 131, 150, 156, 147, 152, 150, 138, 146, 143, 146, 147, 150, 147, 148, 111, 145, 154, 145, 135, 114, 154, 105, 138, 141, 142, 142, 133, 151, 151, 144, 141, 127, 154, 138, 127, 151, 137, 154, 135, 159, 152, 131, 154, 139, 159, 139, 150, 146, 147, 149, 161, 197, 146, 134, 155, 124, 149, 153, 152, 131, 157, 146, 140, 128, 164, 154, 145, 139, 145, 139, 155, 130, 142, 149, 127, 129, 141, 92, 142, 152, 137, 166, 150, 144, 147, 138, 143, 151, 138, 138, 116, 142, 152, 143, 164, 151, 146, 157, 144, 171, 145, 149, 150, 139, 148, 146, 147, 155, 150, 141, 145, 145, 134, 134, 146, 176, 129, 142, 156, 139, 167, 146, 136, 149, 147, 127, 133, 134, 148, 150, 149, 135, 141, 148, 149, 145, 144, 142, 139, 146, 130, 139, 142, 144, 140, 143, 151, 144, 141, 150, 139, 157, 133, 145, 147, 131, 147, 149, 145, 147, 152, 143, 159, 146, 144, 152, 153, 136, 135, 154, 143, 144, 134, 142, 136, 142, 148, 144, 142, 139, 159, 149, 112, 149, 150, 150, 149, 140, 147, 132, 141, 145, 144, 140, 146, 139, 130, 132, 152, 149, 143, 146, 144, 133, 138, 140, 138, 152, 168, 148, 133, 145, 140, 145, 159, 139, 154, 149, 156, 143, 149, 140, 145, 149, 151, 144, 146, 155, 146, 138, 153, 135, 151, 147, 125, 142, 139, 191, 149, 144, 169, 144, 153, 139, 163, 143, 149, 142, 160, 146, 126, 154, 144, 150, 143, 140, 145, 152, 143, 144, 153, 159, 141, 146, 160, 147, 141, 153, 147, 148, 137, 131, 140, 160, 146, 143, 134, 148, 125, 136, 148, 145, 137, 144, 149, 145, 150, 161, 149, 139, 144, 141, 141, 149, 143, 135, 146, 146, 155, 132, 143, 157, 138, 143, 144, 142, 163, 107, 139, 139, 140, 159, 142, 136, 145, 142, 232, 145, 144, 139, 144, 101, 148, 136, 140, 142, 156, 148, 140, 143, 141, 137, 175, 144, 140, 153, 133, 130, 142, 138, 146, 148, 151, 120, 165, 166, 100, 145, 141, 134, 171, 144, 158, 153, 148, 133, 150, 148, 130, 150, 143, 145, 153, 134, 147, 138, 152, 161, 143, 150, 140, 137, 163, 148, 150, 151, 159, 145, 147, 146, 141, 146, 136, 136, 146, 159, 146, 138, 149, 150, 170, 135, 164, 150, 142, 157, 148, 145, 190, 153, 138, 149, 143, 145, 155, 141, 148, 132, 150, 147, 143, 166, 147, 140, 142, 149, 136, 146, 144, 140, 96, 149, 139, 153, 143, 154, 154, 146, 143, 138, 148, 159, 142, 151, 135, 145, 140, 152, 146, 171, 144, 141, 143, 138, 148, 140, 147, 143, 148, 150, 151, 152, 147, 139, 151, 158, 147, 148, 148, 144, 141, 141, 138, 156, 149, 153, 149, 147, 145, 147, 142, 147, 147, 144, 123, 152, 126, 142, 150, 138, 144, 148, 147, 146, 146, 172, 140, 149, 151, 151, 146, 141, 147, 153, 147, 145, 150, 151, 149, 149, 142, 126, 166, 145, 145, 146, 149, 131, 161, 140, 142, 150, 140, 150, 143, 148, 191, 146, 152, 150, 155, 135, 142, 147, 142, 144, 149, 136, 145, 144, 144, 146, 142, 148, 152, 152, 145, 147, 158, 143, 147, 143, 142, 149, 144, 148, 142, 155, 147, 152, 121, 145, 192, 142, 137, 151, 141, 142, 142, 148, 150, 147, 149, 142, 148, 130, 104, 143, 146, 142, 148, 140, 145, 146, 142, 142, 147, 144, 146, 149, 145, 143, 145, 155, 143, 144, 148, 149, 142, 146, 134, 150, 143, 143, 154, 140, 150, 149, 149, 141, 146, 144, 147, 142, 143, 141, 142, 147, 146, 161, 146, 144, 145, 148, 141, 147, 151, 139, 125, 139, 158, 147, 157, 132, 153, 140, 142, 135, 150, 142, 150, 150, 140, 143, 141, 148, 149, 152, 142, 142, 119, 112, 148, 126, 145, 142, 159, 148, 144, 147, 143, 146, 148, 145, 143, 149, 142, 149, 142, 147, 145, 145, 148, 147, 143, 152, 139, 147, 145, 143, 151, 144, 144, 151, 145, 144, 143, 137, 148, 140, 143, 145, 153, 148, 146, 145, 148, 147, 150, 145, 149, 140, 146, 146, 148, 147, 146, 149, 156, 145, 178, 146, 158, 149, 150, 142, 148, 148, 149, 150, 143, 150, 154, 152, 148, 148, 146, 143, 152, 142, 140, 116, 148, 142, 153, 146, 149, 144, 141, 143, 144, 144, 144, 140, 156, 147, 138, 153, 152, 146, 148, 142, 143, 144, 150, 143, 136, 150, 144, 148, 151, 149, 150, 148, 162, 148, 142, 147, 147, 144, 144, 144, 148, 142, 146, 149, 150, 140, 149, 146, 139, 148, 146, 148, 150, 139, 150, 142, 134, 144, 139, 149, 152, 142, 146, 147, 144, 134, 143, 146, 148, 141, 144, 144, 136, 145, 149, 145, 146, 184, 151, 140, 141, 147, 138, 143, 143, 146, 148, 144, 149, 148, 147, 143, 147, 146, 146, 148, 145, 151, 145, 143, 149, 150, 152, 147, 143, 144, 146, 149, 143, 148, 143, 131, 147, 146, 146, 148, 146, 161, 148, 145, 141, 135, 160, 157, 147, 147, 132, 129, 145, 151, 148, 151, 151, 154, 150, 143, 142, 138, 146, 154, 141, 151, 145, 140, 137, 136, 136, 144, 145, 140, 147, 144, 144, 145, 145, 148, 152, 148, 143, 143, 143, 138, 137, 149, 146, 144, 144, 145, 141, 147, 145, 136, 154, 144, 144, 146, 141, 149, 148, 151, 145, 149, 138, 156, 143, 150, 144, 148, 147, 151, 145, 147, 145, 147, 150, 150, 143, 145, 149, 146, 149, 149, 148, 150, 147, 151, 146, 141, 145, 149, 144, 149, 151, 146, 148, 146, 147, 146, 146, 148, 146, 149, 145, 150, 150, 146, 150, 151, 144, 146, 144, 149, 145, 154, 144, 140, 146, 143, 146, 134, 148, 146, 142, 153, 137, 145, 144, 146, 147, 146, 148, 149, 146, 147, 144, 146, 148, 148, 149, 145, 145, 148, 141, 145, 145, 150, 139, 145, 147, 146, 148, 143, 148, 154, 149, 139, 146, 142, 145, 151, 143, 147, 149, 148, 149, 147, 144, 147, 148, 150, 143, 146, 147, 146, 145, 145, 148, 145, 147, 145, 149, 145, 146, 143, 146, 147, 148, 142, 148, 146, 144, 152, 145, 150, 147, 145, 146, 145, 143, 146, 140, 147, 143, 148, 150, 142, 147, 148, 141, 147, 146, 151, 143, 147, 145, 145, 150, 146, 148, 146, 151, 146, 137, 149, 155, 142, 151, 147, 144, 153, 151, 145, 146, 148, 142, 149, 149, 146, 145, 148, 146, 148, 145, 146, 147, 150, 145, 151, 145, 145, 140, 145, 157, 146, 146, 143, 145, 144, 147, 139, 140, 144, 146, 144, 149, 145, 152, 146, 143, 151, 148, 146, 147, 142, 148, 144, 149, 151, 144, 151, 151, 143, 148, 149, 146, 147, 148, 149, 148, 149, 145, 147, 147, 140, 148, 147, 149, 154, 147, 152, 147, 147, 145, 144, 147, 149, 149, 144, 149, 150, 144, 147, 147, 148, 149, 146, 146, 143, 153, 146, 143, 158, 133, 148, 147, 138, 145, 143, 144, 122, 161, 136, 143, 149, 141, 156, 145, 140, 154, 149, 141, 147, 146, 135, 140, 144, 138, 149, 144, 144, 145, 154, 132, 143, 148, 130, 158, 166, 148, 143, 141, 138, 165, 134, 137, 125, 138, 134, 139, 153, 150, 145, 147, 130, 144, 144, 150, 142, 144, 147, 149, 131, 144, 149, 138, 149, 143, 144, 137, 147, 149, 148, 162, 145, 151, 137, 149, 138, 150, 152, 147, 147, 145, 142, 151, 133, 145, 142, 147, 150, 153, 144, 150, 140, 168, 133, 135, 145, 126, 148, 136, 146, 150, 145, 135, 133, 156, 147, 146, 151, 152, 146, 128, 147, 149, 140, 134, 144, 163, 160, 157, 149, 153, 157, 154, 136, 143, 145, 169, 134, 150, 158, 128, 155, 155, 150, 151, 145, 153, 136, 147, 154, 136, 149, 149, 147, 149, 152, 144, 145, 148, 150, 147, 147, 135, 141, 142, 146, 153, 149, 141, 146, 176, 147, 166, 127, 150, 140, 143, 166, 153, 157, 143, 134, 139, 141, 147, 122, 148, 147, 142, 150, 135, 153, 152, 148, 146, 152, 143, 139, 147, 157, 135, 150, 149, 107, 146, 150, 154, 168, 145, 135, 134, 145, 148, 130, 152, 141, 134, 141, 143, 141, 144, 153, 142, 146, 155, 152, 152, 159, 142, 139, 148, 150, 145, 148, 142, 139, 147, 166, 147, 134, 158, 145, 158, 155, 151, 140, 152, 143, 142, 142, 152, 148, 135, 137, 142, 147, 147, 137, 147, 142, 145, 135, 150, 148, 133, 145, 145, 142, 145, 146, 145, 149, 134, 152, 141, 137, 151, 149, 147, 140, 138, 147, 143, 145, 142, 146, 143, 154, 157, 151, 146, 152, 150, 146, 144, 144, 152, 140, 151, 146, 181, 148, 157, 143, 153, 149, 150, 138, 144, 149, 143, 146, 145, 146, 143, 145, 151, 147, 151, 140, 142, 150, 150, 147, 155, 146, 152, 144, 144, 155, 150, 148, 140, 144, 143, 148, 138, 149, 141, 150, 145, 145, 144, 143, 144, 142, 146, 144, 144, 144, 136, 140, 137, 140, 142, 148, 146, 141, 140, 159, 147, 148, 152, 145, 151, 150, 148, 147, 149, 137, 149, 155, 145, 147, 147, 145, 148, 141, 147, 145, 140, 148, 161, 153, 147, 145, 145, 145, 140, 157, 146, 140, 139, 144, 148, 147, 144, 150, 151, 163, 148, 147, 156, 147, 145, 141, 148, 145, 149, 136, 142, 140, 146, 136, 146, 150, 151, 148, 147, 147, 144, 143, 149, 139, 143, 145, 148, 143, 150, 131, 148, 144, 150, 146, 136, 139, 146, 151, 145, 147, 144, 143, 145, 144, 141, 147, 149, 148, 149, 144, 142, 142, 140, 132, 148, 147, 149, 143, 137, 148, 150, 144, 134, 141, 143, 142, 150, 143, 147, 144, 148, 143, 148, 144, 150, 148, 139, 139, 147, 144, 143, 151, 146, 145, 148, 150, 141, 142, 144, 147, 146, 139, 146, 141, 146, 156, 145, 134, 148, 141, 148, 136, 145, 143, 147, 135, 138, 159, 146, 141, 145, 144, 151, 146, 142, 140, 144, 145, 145, 150, 159, 148, 143, 140, 149, 140, 143, 146, 148, 124, 142, 150, 145, 141, 132, 151, 142, 156, 138, 150, 144, 145, 147, 147, 143, 150, 146, 143, 146, 152, 141, 150, 145, 148, 134, 152, 155, 147, 139, 146, 153, 142, 149, 146, 161, 148, 152, 150, 173, 141, 139, 150, 157, 144, 133, 139, 146, 146, 154, 143, 152, 141, 141, 146, 136, 149, 140, 154, 148, 153, 154, 135, 150, 137, 144, 150, 144, 137, 139, 142, 143, 145, 147, 141, 150, 136, 156, 149, 149, 147, 136, 142, 143, 133, 151, 150, 151, 145, 134, 149, 138, 145, 146, 139, 123, 154, 143, 153, 147, 153, 141, 148, 141, 148, 140, 125, 152, 146, 149, 172, 155, 149, 153, 145, 152, 135, 151, 147, 142, 151, 158, 182, 132, 143, 152, 155, 141, 152, 157, 131, 136, 145, 145, 149, 150, 135, 140, 137, 152, 163, 145, 149, 158, 146, 148, 165, 144, 145, 144, 143, 140, 134, 155, 144, 152, 133, 133, 157, 137, 155, 146, 147, 158, 159, 132, 152, 148, 146, 158, 151, 143, 146, 160, 144, 151, 138, 155, 146, 150, 165, 145, 151, 144, 145, 143, 139, 151, 147, 154, 144, 151, 140, 141, 133, 143, 131, 154, 150, 120, 139, 147, 145, 149, 158, 148, 147, 159, 152, 147, 155, 150, 146, 154, 141, 148, 147, 152, 143, 154, 145, 143, 142, 164, 144, 162, 148, 145, 151, 149, 126, 136, 151, 151, 154, 135, 155, 143, 137, 160, 155, 144, 158, 143, 148, 142, 181, 175, 149, 152, 109, 127, 135, 153, 170, 147, 142, 157, 163, 131, 147, 151, 150, 151, 155, 143, 154, 166, 155, 153, 156, 162, 148, 132, 156, 144, 140, 140, 152, 157, 138, 145, 157, 121, 150, 135, 161, 125, 156, 154, 157, 146, 139, 148, 136, 146, 138, 150, 152, 165, 149, 148, 148, 148, 136, 134, 147, 137, 160, 156, 150, 149, 143, 133, 154, 143, 147, 142, 152, 141, 142, 148, 139, 163, 144, 157, 146, 147, 141, 156, 145, 135, 145, 170, 142, 156, 193, 144, 148, 149, 136, 134, 156, 146, 143, 148, 152, 142, 154, 152, 147, 152, 153, 173, 180, 140, 142, 151, 143, 141, 125, 154, 138, 146, 161, 126, 139, 143, 150, 152, 144, 128, 143, 148, 148, 147, 137, 157, 135, 150, 152, 155, 164, 149, 140, 159, 129, 177, 117, 141, 141, 124, 135, 139, 147, 146, 149, 146, 154, 150, 119, 153, 150, 131, 132, 154, 146, 145, 164, 139, 132, 148, 146, 145, 144, 153, 142, 114, 128, 151, 157, 154, 153, 148, 114, 143, 225, 147, 145, 165, 155, 145, 139, 138, 148, 111, 149, 149, 150, 152, 148, 141, 143, 125, 151, 160, 135, 144, 149, 145, 142, 145, 151, 135, 148, 146, 131, 151, 138, 146, 141, 152, 157, 137, 141, 145, 144, 126, 149, 146, 154, 157, 133, 150, 136, 131, 146, 146, 160, 153, 99, 137, 169, 146, 152, 141, 145, 145, 150, 142, 138, 141, 145, 134, 140, 144, 138, 169, 142, 151, 149, 146, 141, 153, 144, 155, 151, 145, 146, 138, 147, 154, 144, 139, 152, 145, 153, 150, 144, 141, 141, 147, 147, 143, 147, 131, 143, 144, 145, 143, 136, 146, 141, 147, 145, 138, 146, 156, 146, 142, 144, 143, 139, 147, 147, 145, 145, 151, 149, 146, 149, 143, 157, 147, 150, 147, 136, 144, 147, 153, 144, 139, 156, 162, 157, 141, 149, 146, 143, 139, 134, 147, 143, 142, 148, 149, 146, 147, 146, 148, 133, 146, 153, 159, 145, 151, 146, 140, 135, 146, 145, 145, 151, 140, 151, 154, 146, 136, 149, 146, 143, 146, 142, 143, 148, 156, 146, 137, 141, 135, 150, 144, 139, 148, 147, 150, 146, 152, 149, 147, 145, 142, 142, 148, 147, 160, 141, 147, 147, 161, 138, 143, 150, 142, 149, 150, 146, 159, 142, 151, 150, 144, 142, 146, 147, 142, 150, 151, 144, 141, 136, 147, 149, 145, 146, 145, 151, 149, 146, 144, 148, 148, 150, 145, 143, 142, 146, 145, 143, 132, 146, 152, 151, 153, 142, 160, 152, 143, 146, 145, 152, 149, 147, 140, 142, 138, 141, 145, 144, 167, 148, 144, 149, 141, 146, 139, 147, 143, 145, 153, 147, 149, 144, 152, 142, 139, 150, 147, 142, 153, 147, 148, 146, 146, 143, 145, 146, 143, 148, 145, 150, 151, 140, 138, 139, 144, 139, 147, 141, 149, 152, 152, 140, 148, 140, 143, 162, 145, 147, 140, 148, 144, 143, 140, 146, 150, 150, 138, 148, 143, 151, 148, 139, 156, 149, 142, 140, 138, 145, 149, 141, 149, 146, 145, 150, 146, 141, 160, 135, 141, 140, 162, 143, 146, 173, 147, 148, 151, 145, 132, 143, 151, 147, 143, 139, 155, 153, 144, 140, 150, 144, 141, 154, 140, 141, 145, 158, 147, 147, 146, 148, 141, 144, 149, 146, 142, 148, 143, 139, 140, 144, 141, 140, 138, 153, 158, 162, 147, 140, 142, 144, 143, 142, 149, 147, 142, 147, 143, 145, 148, 148, 168, 147, 141, 145, 146, 144, 152, 134, 136, 152, 133, 142, 141, 149, 150, 158, 146, 140, 146, 139, 146, 148, 138, 140, 150, 144, 146, 146, 121, 143, 141, 135, 136, 142, 135, 150, 143, 145, 142, 141, 116, 144, 145, 146, 142, 150, 156, 157, 149, 146, 144, 147, 144, 147, 151, 134, 144, 145, 145, 141, 140, 145, 144, 147, 142, 128, 141, 146, 145, 155, 136, 138, 149, 142, 145, 143, 154, 153, 145, 141, 147, 151, 141, 145, 135, 170, 142, 154, 140, 159, 139, 139, 144, 145, 143, 152, 140, 142, 142, 143, 149, 142, 150, 142, 152, 137, 139, 145, 140, 134, 133, 139, 144, 152, 144, 151, 139, 141, 146, 145, 141, 144, 144, 139, 149, 149, 149, 145, 147, 152, 139, 147, 137, 141, 159, 145, 149, 145, 152, 140, 155, 146, 150, 155, 149, 154, 145, 135, 144, 151, 151, 155, 144, 148, 140, 140, 131, 146, 150, 153, 149, 142, 149, 136, 163, 147, 147, 140, 132, 144, 144, 144, 134, 132, 139, 149, 138, 140, 146, 139, 144, 149, 138, 153, 141, 141, 145, 150, 151, 143, 152, 135, 156, 149, 147, 156, 152, 148, 140, 142, 152, 150, 143, 138, 148, 147, 148, 152, 147, 148, 148, 156, 137, 145, 143, 144, 146, 145, 146, 142, 154, 149, 145, 138, 139, 146, 147, 156, 148, 146, 141, 155, 152, 149, 142, 146, 138, 147, 144, 138, 153, 151, 147, 148, 143, 144, 167, 142, 154, 145, 135, 145, 141, 145, 149, 146, 144, 145, 147, 140, 144, 147, 145, 153, 145, 149, 149, 151, 147, 150, 161, 149, 144, 138, 146, 153, 148, 151, 151, 146, 145, 145, 148, 142, 148, 150, 145, 140, 155, 154, 146, 137, 153, 144, 146, 148, 148, 150, 145, 142, 152, 149, 141, 148, 147, 148, 150, 146, 148, 146, 143, 138, 145, 148, 149, 149, 144, 145, 143, 145, 143, 150, 152, 149, 143, 149, 148, 139, 148, 148, 144, 146, 148, 147, 143, 143, 141, 148, 155, 150, 145, 146, 147, 147, 142, 149, 144, 147, 143, 164, 143, 147, 144, 143, 149, 159, 145, 145, 148, 142, 146, 144, 146, 150, 142, 146, 152, 143, 146, 148, 134, 149, 162, 146, 130, 124, 142, 150, 143, 146, 145, 152, 148, 145, 145, 145, 138, 146, 148, 140, 141, 151, 149, 138, 148, 150, 145, 141, 150, 148, 146, 150, 143, 143, 142, 155, 145, 153, 144, 152, 147, 146, 142, 148, 149, 140, 154, 148, 153, 144, 150, 151, 148, 143, 142, 190, 142, 138, 142, 141, 140, 147, 152, 146, 148, 144, 141, 109, 142, 173, 173, 141, 149, 149, 161, 134, 143, 171, 144, 135, 151, 146, 145, 142, 119, 148, 139, 148, 144, 152, 88, 137, 148, 149, 138, 146, 159, 143, 137, 153, 142, 139, 142, 149, 144, 155, 148, 145, 149, 145, 141, 143, 150, 157, 149, 150, 152, 140, 140, 155, 154, 153, 149, 132, 154, 149, 149, 145, 163, 151, 144, 139, 152, 141, 144, 163, 153, 151, 141, 154, 149, 156, 164, 158, 139, 127, 136, 150, 133, 146, 148, 152, 144, 146, 151, 132, 152, 144, 139, 152, 153, 147, 146, 152, 162, 149, 134, 150, 132, 146, 129, 136, 140, 141, 149, 118, 164, 156, 158, 174, 145, 143, 118, 140, 143, 150, 126, 131, 149, 140, 148, 149, 148, 162, 158, 146, 144, 151, 169, 140, 149, 151, 136, 153, 154, 147, 143, 109, 115, 148, 159, 207, 140, 143, 147, 151, 142, 148, 162, 137, 147, 155, 149, 145, 131, 146, 153, 185, 141, 147, 132, 187, 157, 130, 148, 154, 143, 155, 133, 145, 165, 154, 145, 131, 131, 159, 151, 162, 139, 127, 151, 152, 136, 144, 149, 145, 147, 140, 172, 150, 128, 147, 141, 154, 155, 126, 170, 138, 148, 157, 147, 146, 145, 161, 152, 136, 150, 153, 139, 149, 117, 179, 138, 147, 148, 147, 122, 146, 148, 140, 133, 140, 147, 141, 136, 149, 139, 142, 146, 149, 149, 141, 156, 170, 139, 126, 167, 147, 141, 150, 148, 141, 139, 141, 151, 139, 139, 144, 130, 153, 156, 133, 158, 131, 141, 153, 145, 173, 159, 166, 147, 204, 132, 127, 127, 150, 126, 173, 141, 151, 128, 155, 148, 157, 153, 136, 154, 153, 113, 152, 143, 159, 162, 153, 149, 138, 145, 156, 164, 136, 139, 154, 140, 141, 102, 151, 169, 137, 128, 169, 140, 167, 161, 148, 130, 118, 142, 146, 161, 147, 149, 147, 140, 133, 167, 151, 137, 145, 110, 142, 145, 147, 135, 128, 147, 156, 126, 137, 140, 153, 128, 145, 144, 135, 148, 138, 142, 158, 158, 157, 161, 178, 131, 140, 146, 135, 158, 138, 139, 158, 111, 187, 142, 148, 165, 150, 137, 145, 151, 163, 139, 137, 160, 143, 153, 164, 133, 150, 148, 126, 154, 133, 148, 119, 135, 162, 147, 139, 129, 126, 147, 147, 142, 156, 139, 153, 142, 138, 116, 135, 136, 142, 134, 148, 162, 135, 145, 155, 149, 139, 144, 159, 153, 132, 148, 131, 138, 175, 154, 126, 107, 155, 138, 146, 144, 145, 149, 119, 152, 133, 139, 146, 148, 149, 154, 154, 96, 173, 136, 129, 150, 141, 147, 107, 158, 154, 143, 156, 161, 156, 147, 145, 118, 154, 129, 123, 130, 140, 109, 130, 146, 126, 139, 143, 165, 196, 149, 156, 137, 146, 147, 155, 159, 129, 155, 145, 144, 198, 141, 132, 148, 151, 157, 161, 153, 145, 128, 138, 139, 144, 183, 136, 144, 135, 178, 134, 141, 163, 186, 146, 132, 175, 156, 161, 156, 134, 169, 163, 153, 131, 140, 144, 184, 113, 153, 152, 132, 150, 153, 143, 127, 128, 123, 129, 152, 145, 130, 165, 141, 153, 147, 147, 152, 150, 141, 158, 142, 136, 145, 153, 149, 135, 150, 149, 145, 142, 145, 159, 158, 145, 163, 148, 145, 154, 153, 149, 149, 142, 147, 158, 138, 140, 131, 155, 139, 130, 145, 147, 153, 140, 154, 150, 142, 154, 149, 150, 142, 213, 142, 149, 156, 144, 146, 152, 139, 134, 129, 146, 144, 147, 146, 141, 152, 141, 131, 150, 138, 146, 142, 138, 141, 155, 144, 144, 118, 150, 150, 155, 152, 146, 140, 150, 145, 150, 145, 144, 149, 156, 143, 147, 147, 140, 164, 141, 136, 141, 145, 143, 139, 140, 159, 139, 142, 147, 148, 139, 145, 141, 142, 143, 136, 143, 144, 141, 132, 151, 137, 146, 142, 145, 146, 134, 139, 144, 139, 142, 158, 147, 154, 148, 151, 146, 144, 144, 149, 147, 142, 147, 153, 145, 131, 145, 150, 151, 161, 156, 143, 135, 144, 136, 144, 135, 98, 135, 138, 137, 156, 155, 149, 142, 148, 154, 143, 155, 151, 146, 144, 151, 163, 154, 144, 149, 140, 146, 146, 143, 138, 140, 144, 146, 141, 155, 147, 141, 150, 151, 140, 134, 147, 145, 148, 147, 158, 158, 139, 140, 149, 145, 135, 137, 142, 154, 148, 156, 144, 142, 143, 172, 154, 150, 141, 144, 141, 139, 143, 152, 177, 144, 136, 138, 140, 145, 144, 134, 146, 145, 142, 139, 144, 134, 157, 145, 146, 149, 146, 151, 145, 142, 139, 137, 152, 152, 147, 139, 136, 138, 144, 135, 137, 146, 143, 143, 145, 145, 146, 142, 144, 147, 146, 152, 141, 146, 145, 144, 153, 145, 164, 145, 141, 144, 144, 153, 140, 142, 143, 140, 146, 144, 145, 147, 148, 171, 142, 144, 137, 144, 144, 137, 139, 142, 150, 150, 139, 134, 136, 147, 142, 150, 147, 143, 152, 149, 134, 146, 145, 147, 142, 143, 154, 147, 138, 155, 145, 147, 150, 138, 145, 146, 148, 140, 141, 148, 151, 133, 145, 141, 169, 146, 149, 147, 152, 151, 150, 151, 142, 150, 150, 142, 158, 142, 144, 139, 145, 143, 142, 143, 148, 143, 146, 148, 142, 143, 148, 138, 154, 154, 140, 142, 144, 141, 147, 149, 146, 165, 144, 145, 140, 140, 183, 145, 149, 137, 147, 122, 144, 143, 152, 144, 139, 157, 143, 143, 146, 151, 146, 146, 143, 148, 147, 146, 169, 146, 152, 147, 152, 147, 146, 145, 136, 145, 138, 148, 144, 153, 143, 146, 143, 150, 147, 142, 144, 161, 148, 144, 154, 159, 138, 144, 143, 154, 147, 154, 144, 147, 146, 139, 142, 144, 145, 147, 146, 146, 142, 148, 153, 145, 152, 149, 150, 143, 148, 145, 146, 148, 145, 150, 139, 154, 145, 145, 152, 139, 142, 147, 150, 144, 141, 144, 140, 146, 151, 138, 144, 148, 145, 155, 145, 144, 149, 140, 145, 145, 145, 151, 142, 146, 142, 140, 141, 140, 142, 151, 140, 136, 144, 149, 150, 146, 145, 143, 139, 142, 149, 142, 144, 152, 141, 143, 143, 140, 145, 145, 138, 158, 126, 143, 146, 152, 139, 150, 150, 158, 146, 143, 142, 155, 154, 148, 154, 144, 155, 136, 144, 152, 148, 136, 141, 135, 148, 156, 144, 146, 153, 129, 130, 125, 133, 134, 137, 140, 157, 152, 138, 137, 131, 148, 128, 126, 142, 141, 147, 150, 141, 146, 150, 149, 134, 132, 142, 154, 141, 175, 122, 152, 149, 142, 130, 149, 169, 134, 146, 131, 146, 143, 152, 153, 145, 141, 157, 149, 150, 137, 138, 147, 146, 134, 141, 141, 149, 144, 155, 143, 146, 141, 147, 164, 139, 154, 160, 155, 137, 178, 140, 144, 98, 149, 148, 151, 151, 168, 138, 134, 157, 135, 145, 158, 138, 145, 145, 153, 145, 147, 119, 148, 129, 129, 134, 135, 148, 150, 164, 140, 140, 131, 138, 152, 146, 143, 142, 139, 148, 140, 137, 151, 129, 158, 150, 138, 153, 140, 140, 156, 151, 147, 136, 150, 139, 153, 126, 136, 156, 144, 132, 140, 160, 151, 141, 156, 146, 150, 135, 148, 133, 151, 147, 161, 140, 150, 138, 127, 158, 161, 146, 147, 132, 143, 144, 139, 116, 156, 146, 137, 158, 142, 149, 155, 134, 144, 159, 147, 132, 157, 160, 141, 152, 150, 142, 168, 140, 150, 140, 144, 141, 161, 152, 142, 144, 146, 151, 144, 145, 145, 132, 143, 146, 130, 139, 159, 145, 149, 130, 134, 137, 151, 159, 132, 151, 162, 164, 146, 137, 148, 152, 149, 139, 156, 156, 147, 145, 135, 154, 149, 142, 145, 170, 156, 159, 140, 141, 145, 144, 146, 147, 143, 149, 145, 150, 143, 145, 145, 148, 149, 159, 145, 140, 146, 165, 149, 124, 152, 149, 146, 148, 152, 157, 144, 144, 144, 146, 141, 145, 133, 142, 139, 148, 149, 149, 150, 142, 145, 141, 144, 147, 153, 140, 144, 152, 143, 145, 147, 141, 143, 143, 148, 146, 150, 144, 144, 144, 144, 158, 146, 139, 106, 139, 147, 144, 147, 145, 149, 153, 147, 148, 146, 148, 140, 149, 138, 158, 148, 143, 147, 142, 157, 138, 142, 144, 147, 137, 139, 155, 146, 143, 112, 162, 156, 153, 150, 145, 143, 149, 148, 153, 142, 149, 147, 144, 142, 145, 143, 141, 139, 152, 147, 146, 149, 145, 142, 139, 142, 152, 147, 147, 148, 139, 141, 144, 144, 142, 146, 156, 148, 144, 149, 139, 137, 142, 143, 145, 145, 144, 142, 151, 150, 148, 143, 155, 144, 143, 150, 148, 145, 150, 145, 147, 129, 143, 145, 145, 140, 150, 149, 145, 149, 149, 144, 142, 151, 141, 146, 146, 152, 147, 145, 144, 147, 140, 143, 145, 144, 143, 146, 143, 150, 147, 145, 144, 142, 147, 142, 142, 154, 145, 153, 153, 147, 148, 134, 139, 146, 146, 147, 146, 156, 148, 143, 141, 153, 137, 153, 146, 149, 151, 139, 143, 151, 146, 145, 143, 135, 144, 145, 145, 148, 144, 143, 143, 142, 149, 147, 148, 144, 144, 144, 144, 140, 147, 145, 144, 132, 148, 147, 146, 125, 164, 141, 148, 144, 145, 147, 146, 141, 140, 121, 142, 172, 156, 131, 157, 135, 153, 135, 151, 170, 153, 141, 150, 153, 148, 140, 128, 140, 133, 148, 149, 147, 120, 142, 139, 215, 137, 139, 160, 161, 138, 145, 146, 136, 139, 143, 143, 143, 155, 140, 125, 141, 134, 143, 146, 147, 138, 148, 148, 141, 131, 145, 153, 148, 153, 147, 146, 129, 146, 158, 142, 148, 144, 135, 150, 132, 151, 145, 137, 146, 151, 146, 155, 140, 146, 149, 149, 141, 142, 146, 157, 150, 150, 146, 158, 145, 132, 142, 156, 156, 141, 137, 157, 146, 139, 148, 142, 146, 158, 154, 133, 143, 147, 160, 147, 150, 153, 138, 152, 135, 148, 142, 152, 151, 138, 147, 136, 147, 136, 159, 140, 115, 138, 153, 145, 156, 137, 128, 146, 138, 137, 130, 140, 159, 147, 146, 153, 162, 133, 136, 207, 142, 113, 165, 148, 143, 131, 161, 134, 136, 156, 158, 138, 138, 139, 144, 148, 147, 149, 138, 141, 154, 136, 148, 138, 144, 147, 142, 140, 143, 150, 138, 139, 169, 145, 112, 135, 149, 152, 141, 143, 149, 148, 133, 161, 140, 143, 143, 152, 161, 139, 138, 146, 174, 132, 155, 154, 133, 142, 163, 164, 159, 146, 150, 137, 139, 142, 143, 143, 149, 149, 147, 156, 134, 132, 130, 142, 165, 174, 177, 139, 141, 148, 154, 143, 138, 140, 152, 145, 145, 132, 142, 138, 157, 146, 135, 138, 150, 140, 146, 138, 152, 139, 170, 130, 155, 154, 132, 133, 150, 99, 143, 155, 138, 146, 150, 140, 153, 143, 144, 150, 143, 152, 146, 144, 147, 148, 146, 142, 152, 142, 148, 150, 147, 149, 147, 144, 148, 148, 144, 143, 145, 139, 145, 146, 140, 143, 151, 138, 152, 154, 147, 145, 148, 146, 142, 147, 146, 152, 148, 150, 147, 146, 151, 145, 151, 147, 144, 141, 147, 145, 139, 147, 140, 149, 150, 137, 146, 147, 142, 159, 142, 147, 140, 144, 148, 147, 145, 147, 145, 149, 145, 144, 140, 140, 137, 143, 148, 148, 150, 149, 146, 146, 142, 154, 147, 149, 145, 146, 143, 146, 149, 155, 156, 144, 148, 147, 148, 144, 141, 146, 151, 150, 149, 147, 145, 151, 142, 147, 145, 150, 144, 151, 149, 154, 144, 142, 144, 143, 144, 146, 143, 145, 142, 142, 146, 147, 151, 144, 147, 153, 143, 145, 145, 141, 150, 141, 146, 156, 146, 141, 147, 124, 147, 147, 152, 147, 144, 141, 150, 144, 145, 145, 146, 150, 151, 150, 142, 144, 148, 146, 142, 150, 154, 147, 149, 142, 144, 141, 155, 147, 142, 143, 156, 144, 157, 146, 145, 149, 146, 150, 148, 147, 146, 142, 145, 166, 150, 136, 129, 147, 150, 144, 151, 148, 150, 156, 151, 145, 147, 149, 146, 148, 148, 147, 146, 146, 135, 143, 148, 149, 132, 146, 146, 147, 151, 152, 143, 151, 140, 148, 152, 141, 144, 149, 153, 149, 151, 145, 155, 148, 150, 146, 141, 147, 150, 144, 144, 140, 166, 151, 145, 153, 147, 145, 145, 154, 149, 144, 156, 148, 150, 143, 143, 149, 134, 149, 146, 143, 143, 145, 143, 149, 145, 146, 151, 146, 148, 142, 141, 150, 152, 150, 156, 151, 152, 149, 136, 147, 144, 146, 136, 149, 150, 146, 150, 151, 146, 152, 151, 137, 144, 141, 150, 139, 148, 147, 159, 147, 152, 146, 145, 154, 141, 141, 145, 148, 149, 143, 143, 149, 146, 144, 147, 148, 150, 141, 144, 145, 144, 148, 146, 149, 144, 148, 144, 145, 147, 141, 140, 147, 151, 148, 148, 146, 145, 151, 148, 145, 152, 159, 147, 151, 150, 145, 141, 151, 145, 145, 143, 141, 150, 149, 150, 137, 149, 149, 149, 148, 146, 140, 145, 147, 141, 151, 149, 146, 143, 147, 153, 147, 135, 140, 145, 150, 149, 146, 144, 146, 146, 144, 143, 145, 151, 137, 142, 154, 146, 146, 146, 145, 147, 135, 151, 165, 148, 147, 143, 140, 151, 151, 152, 148, 138, 140, 149, 147, 143, 150, 143, 149, 149, 149, 150, 144, 142, 144, 146, 146, 153, 148, 147, 144, 146, 146, 143, 143, 142, 146, 150, 147, 159, 151, 142, 152, 153, 148, 151, 145, 146, 145, 142, 153, 148, 147, 141, 147, 145, 142, 146, 150, 141, 146, 140, 148, 148, 145, 139, 147, 154, 141, 144, 150, 146, 147, 145, 151, 141, 144, 147, 146, 148, 152, 146, 144, 145, 145, 145, 137, 143, 152, 148, 142, 148, 145, 145, 161, 158, 158, 126, 142, 141, 144, 140, 145, 147, 151, 144, 148, 153, 146, 145, 157, 146, 147, 143, 145, 145, 139, 149, 146, 139, 158, 147, 140, 147, 153, 147, 142, 144, 141, 154, 147, 145, 146, 147, 150, 135, 142, 146, 143, 138, 143, 148, 145, 150, 148, 147, 159, 148, 141, 147, 147, 148, 148, 146, 145, 176, 152, 148, 157, 144, 141, 146, 146, 149, 144, 144, 154, 159, 139, 145, 141, 142, 145, 135, 146, 138, 145, 150, 153, 134, 149, 147, 126, 144, 139, 144, 138, 130, 147, 152, 145, 146, 139, 150, 147, 145, 148, 142, 142, 148, 141, 146, 146, 149, 147, 140, 139, 142, 147, 154, 144, 146, 143, 146, 146, 137, 145, 152, 146, 149, 145, 147, 146, 147, 141, 148, 140, 148, 145, 144, 139, 133, 147, 142, 144, 147, 145, 153, 148, 149, 147, 147, 152, 144, 147, 144, 148, 138, 147, 146, 143, 150, 147, 147, 152, 147, 146, 145, 142, 142, 146, 133, 142, 146, 147, 146, 146, 140, 147, 143, 146, 147, 143, 147, 143, 149, 142, 145, 155, 144, 142, 145, 149, 144, 141, 149, 145, 145, 148, 143, 151, 147, 149, 157, 136, 146, 150, 143, 143, 146, 143, 141, 163, 132, 146, 141, 147, 149, 147, 143, 142, 145, 151, 144, 143, 146, 145, 141, 147, 140, 144, 145, 145, 146, 145, 147, 149, 145, 145, 147, 141, 148, 150, 152, 149, 147, 152, 144, 149, 143, 149, 174, 145, 147, 140, 144, 147, 138, 149, 137, 145, 152, 149, 142, 140, 144, 143, 142, 140, 148, 146, 146, 144, 151, 142, 140, 145, 146, 141, 147, 147, 147, 153, 142, 144, 141, 145, 139, 146, 141, 147, 143, 146, 143, 148, 141, 153, 145, 148, 144, 147, 144, 147, 142, 141, 148, 153, 150, 144, 140, 140, 150, 150, 147, 145, 148, 134, 145, 154, 142, 153, 146, 163, 142, 140, 154, 144, 151, 145, 147, 144, 137, 148, 157, 147, 149, 149, 153, 147, 145, 147, 146, 140, 145, 160, 149, 164, 147, 156, 144, 142, 142, 152, 146, 144, 148, 145, 151, 142, 140, 147, 144, 148, 146, 142, 146, 148, 142, 147, 148, 142, 147, 146, 145, 149, 145, 146, 141, 140, 144, 152, 141, 150, 148, 150, 148, 149, 147, 147, 145, 142, 150, 145, 142, 144, 146, 141, 143, 149, 144, 144, 144, 144, 144, 146, 146, 145, 152, 148, 147, 147, 145, 149, 141, 152, 145, 158, 149, 147, 165, 150, 146, 144, 147, 151, 146, 146, 150, 154, 147, 141, 147, 149, 145, 143, 151, 141, 141, 156, 143, 145, 144, 149, 147, 144, 150, 144, 142, 149, 140, 137, 146, 158, 141, 162, 141, 149, 142, 153, 149, 148, 141, 141, 147, 148, 152, 140, 149, 146, 147, 163, 142, 136, 150, 149, 142, 159, 143, 151, 148, 147, 142, 142, 143, 148, 153, 144, 145, 144, 148, 147, 149, 148, 149, 147, 137, 147, 147, 144, 144, 141, 145, 149, 143, 139, 136, 148, 151, 141, 143, 140, 143, 139, 146, 145, 147, 143, 142, 139, 146, 141, 153, 144, 146, 147, 139, 151, 145, 147, 140, 138, 151, 139, 142, 153, 146, 145, 141, 143, 143, 140, 139, 144, 139, 149, 148, 150, 150, 144, 147, 146, 142, 150, 148, 148, 145, 139, 143, 146, 162, 145, 141, 134, 140, 144, 147, 148, 146, 146, 147, 146, 145, 147, 148, 143, 147, 139, 149, 133, 140, 149, 142, 144, 126, 147, 144, 142, 147, 149, 142, 144, 142, 152, 144, 148, 141, 142, 148, 143, 142, 149, 144, 127, 145, 140, 144, 151, 141, 149, 148, 148, 143, 146, 144, 141, 150, 143, 143, 147, 143, 148, 136, 142, 144, 145, 139, 149, 148, 147, 143, 146, 142, 143, 146, 139, 149, 149, 147, 147, 146, 147, 149, 145, 140, 142, 144, 136, 148, 148, 150, 146, 146, 143, 146, 147, 146, 128, 150, 153, 143, 144, 145, 147, 147, 148, 145, 143, 145, 138, 143, 147, 146, 145, 144, 146, 134, 146, 148, 132, 140, 155, 139, 140, 156, 156, 149, 152, 141, 144, 142, 153, 143, 151, 148, 128, 144, 145, 144, 140, 143, 142, 147, 148, 142, 147, 138, 149, 141, 142, 143, 137, 143, 150, 151, 148, 150, 141, 150, 150, 140, 146, 150, 147, 150, 139, 147, 137, 151, 137, 146, 157, 175, 142, 146, 147, 145, 144, 144, 150, 149, 145, 144, 142, 143, 147, 151, 149, 147, 149, 154, 148, 148, 147, 137, 148, 144, 148, 144, 149, 146, 152, 155, 146, 148, 136, 144, 133, 141, 147, 138, 141, 157, 144, 143, 156, 142, 150, 139, 148, 144, 147, 110, 141, 146, 147, 141, 155, 146, 140, 143, 140, 146, 149, 145, 151, 148, 141, 145, 143, 161, 145, 139, 148, 159, 149, 142, 152, 134, 149, 156, 145, 151, 141, 149, 161, 164, 144, 159, 146, 139, 140, 150, 146, 137, 143, 144, 128, 145, 149, 156, 156, 148, 149, 142, 153, 142, 146, 155, 154, 143, 154, 148, 148, 146, 134, 156, 145, 142, 145, 136, 149, 144, 165, 135, 136, 144, 155, 147, 148, 136, 145, 145, 133, 142, 144, 146, 130, 144, 137, 160, 145, 136, 148, 158, 151, 165, 154, 164, 142, 156, 149, 154, 151, 135, 140, 148, 145, 147, 152, 141, 157, 141, 141, 144, 153, 100, 145, 154, 153, 143, 133, 144, 161, 148, 139, 133, 140, 150, 125, 138, 141, 146, 147, 142, 154, 145, 142, 141, 144, 151, 143, 146, 133, 135, 148, 156, 143, 127, 148, 140, 147, 154, 149, 140, 137, 151, 147, 144, 151, 140, 147, 145, 151, 143, 147, 143, 148, 140, 145, 140, 140, 147, 142, 147, 147, 148, 143, 156, 142, 145, 133, 142, 125, 134, 167, 98, 149, 156, 147, 155, 135, 139, 143, 148, 195, 149, 140, 152, 147, 167, 146, 148, 140, 140, 156, 155, 144, 158, 150, 193, 147, 141, 145, 152, 151, 135, 147, 158, 144, 154, 152, 127, 180, 148, 130, 146, 154, 152, 153, 141, 153, 142, 144, 138, 144, 153, 136, 156, 145, 147, 142, 138, 142, 142, 147, 142, 147, 153, 120, 133, 149, 145, 137, 132, 148, 150, 142, 154, 147, 146, 139, 152, 150, 151, 150, 150, 137, 142, 141, 145, 148, 146, 146, 146, 145, 145, 143, 146, 146, 146, 146, 145, 144, 151, 147, 149, 144, 146, 145, 146, 146, 146, 144, 149, 141, 147, 145, 146, 144, 146, 148, 148, 146, 146, 142, 147, 147, 148, 146, 148, 147, 144, 141, 145, 148, 146, 148, 141, 146, 145, 146, 144, 150, 149, 147, 146, 145, 147, 148, 147, 148, 149, 145, 152, 145, 145, 147, 148, 141, 145, 145, 147, 145, 145, 144, 146, 145, 144, 145, 141, 144, 152, 146, 145, 149, 145, 146, 143, 146, 145, 146, 143, 144, 146, 148, 145, 147, 144, 146, 144, 147, 144, 147, 146, 147, 147, 144, 142, 144, 145, 148, 145, 147, 145, 144, 143, 143, 146, 144, 145, 146, 148, 146, 147, 148, 145, 147, 146, 146, 145, 145, 144, 145, 148, 146, 146, 147, 147, 149, 145, 147, 146, 146, 148, 144, 152, 147, 146, 148, 143, 144, 146, 147, 145, 146, 147, 144, 145, 145, 146, 147, 146, 147, 146, 145, 146, 146, 144, 143, 147, 148, 147, 145, 144, 144, 147, 147, 145, 145, 146, 147, 146, 144, 147, 147, 144, 144, 149, 154, 146, 143, 147, 147, 147, 148, 145, 145, 147, 157, 147, 145, 148, 145, 146, 144, 146, 148, 146, 144, 145, 146, 152, 146, 145, 147, 145, 146, 144, 144, 146, 145, 147, 142, 145, 145, 145, 145, 146, 143, 148, 147, 143, 145, 147, 146, 144, 146, 147, 146, 144, 147, 144, 145, 145, 145, 147, 144, 147, 144, 147, 144, 144, 146, 147, 144, 136, 141, 146, 151, 147, 150, 147, 147, 147, 145, 136, 143, 148, 139, 149, 148, 145, 151, 137, 132, 139, 162, 136, 130, 150, 142, 160, 119, 146, 154, 175, 145, 153, 143, 147, 150, 148, 145, 141, 146, 142, 136, 143, 144, 149, 139, 155, 139, 159, 153, 141, 156, 137, 149, 146, 148, 134, 148, 134, 148, 149, 151, 142, 145, 142, 140, 117, 147, 142, 138, 141, 144, 139, 123, 151, 143, 150, 146, 141, 148, 140, 156, 142, 141, 142, 147, 145, 124, 155, 148, 144, 110, 153, 151, 150, 144, 141, 115, 149, 129, 144, 130, 138, 133, 160, 147, 148, 137, 150, 144, 151, 150, 139, 147, 139, 155, 146, 147, 162, 147, 172, 156, 120, 153, 141, 146, 139, 150, 160, 141, 143, 143, 146, 124, 161, 132, 145, 145, 174, 143, 156, 162, 153, 146, 138, 169, 144, 139, 144, 156, 147, 156, 144, 109, 150, 150, 145, 174, 144, 146, 148, 149, 146, 143, 127, 165, 159, 145, 139, 142, 124, 152, 143, 152, 150, 145, 137, 150, 142, 152, 148, 142, 144, 153, 153, 178, 135, 143, 144, 154, 137, 143, 163, 143, 159, 156, 147, 155, 135, 142, 120, 153, 127, 145, 136, 133, 142, 148, 158, 144, 148, 141, 142, 149, 142, 147, 143, 149, 151, 169, 175, 149, 147, 146, 140, 148, 146, 150, 146, 151, 152, 157, 140, 161, 139, 157, 155, 171, 151, 144, 141, 156, 141, 152, 147, 147, 147, 155, 149, 143, 145, 128, 153, 148, 144, 141, 144, 143, 143, 141, 151, 146, 146, 147, 143, 146, 142, 135, 147, 148, 146, 142, 144, 146, 149, 145, 149, 152, 132, 146, 143, 151, 142, 148, 145, 145, 142, 143, 151, 146, 148, 142, 148, 143, 146, 169, 147, 162, 141, 143, 143, 146, 145, 146, 147, 148, 144, 152, 149, 144, 146, 141, 145, 150, 140, 146, 146, 143, 143, 152, 145, 176, 144, 147, 145, 149, 146, 147, 146, 139, 155, 151, 146, 149, 140, 155, 148, 146, 147, 144, 145, 146, 147, 142, 145, 149, 146, 143, 144, 150, 148, 143, 145, 159, 144, 146, 144, 146, 145, 145, 147, 144, 146, 150, 146, 146, 144, 143, 146, 144, 144, 145, 145, 147, 149, 151, 146, 142, 153, 141, 143, 143, 137, 143, 150, 147, 144, 142, 147, 139, 145, 147, 152, 151, 165, 146, 146, 154, 144, 145, 149, 145, 147, 145, 145, 144, 148, 150, 145, 143, 143, 143, 145, 162, 148, 143, 144, 146, 130, 146, 151, 146, 142, 145, 131, 144, 145, 153, 145, 156, 147, 147, 145, 148, 147, 144, 148, 152, 145, 146, 142, 153, 140, 146, 147, 150, 149, 144, 148, 130, 115, 146, 147, 143, 146, 149, 149, 145, 147, 145, 148, 143, 145, 145, 145, 142, 151, 148, 139, 148, 142, 147, 134, 145, 146, 142, 150, 151, 149, 148, 132, 146, 150, 146, 146, 146, 147, 143, 143, 147, 142, 147, 145, 147, 147, 149, 149, 144, 145, 143, 184, 151, 147, 144, 144, 144, 146, 146, 154, 151, 148, 148, 145, 147, 151, 142, 155, 151, 157, 154, 150, 147, 146, 145, 152, 150, 142, 146, 145, 151, 137, 147, 149, 158, 154, 150, 146, 152, 149, 139, 150, 140, 145, 142, 140, 124, 153, 141, 155, 144, 146, 159, 157, 155, 150, 152, 141, 156, 140, 132, 138, 151, 126, 79, 149, 197, 145, 105, 141, 147, 138, 149, 145, 167, 150, 147, 142, 148, 144, 148, 139, 152, 143, 163, 140, 144, 173, 141, 148, 155, 142, 136, 150, 146, 143, 146, 143, 150, 141, 147, 140, 140, 145, 148, 149, 143, 146, 152, 139, 164, 148, 159, 135, 146, 150, 158, 147, 147, 148, 130, 142, 155, 145, 142, 134, 148, 141, 156, 146, 142, 143, 143, 131, 145, 150, 135, 144, 135, 147, 140, 142, 148, 148, 147, 150, 147, 83, 139, 142, 147, 150, 144, 131, 137, 136, 142, 150, 143, 142, 148, 142, 150, 148, 142, 125, 144, 139, 141, 136, 145, 142, 141, 139, 149, 149, 142, 130, 152, 138, 156, 143, 150, 143, 139, 139, 149, 149, 135, 149, 149, 159, 146, 140, 168, 147, 141, 131, 157, 143, 141, 146, 149, 139, 143, 124, 143, 151, 160, 137, 139, 144, 154, 151, 153, 128, 152, 148, 139, 140, 144, 205, 158, 147, 159, 163, 140, 143, 184, 147, 139, 145, 154, 137, 141, 150, 147, 148, 142, 144, 155, 141, 145, 154, 153, 163, 143, 147, 145, 136, 145, 152, 139, 130, 163, 145, 151, 138, 147, 147, 142, 150, 155, 142, 139, 153, 148, 136, 141, 151, 149, 158, 140, 144, 149, 135, 145, 153, 153, 148, 156, 173, 146, 146, 166, 152, 169, 172, 143, 147, 129, 146, 149, 142, 147, 162, 154, 140, 152, 150, 147, 145, 123, 139, 161, 143, 148, 136, 132, 150, 156, 139, 146, 133, 147, 154, 158, 152, 125, 146, 127, 147, 136, 153, 160, 135, 130, 139, 138, 142, 145, 149, 152, 157, 166, 197, 140, 161, 149, 147, 146, 150, 175, 134, 148, 131, 138, 118, 154, 149, 144, 138, 136, 145, 156, 145, 174, 144, 146, 150, 198, 143, 178, 143, 145, 143, 163, 152, 141, 144, 182, 150, 145, 144, 151, 138, 152, 132, 154, 148, 147, 137, 147, 149, 141, 140, 145, 183, 152, 137, 158, 147, 153, 148, 147, 146, 142, 161, 150, 147, 155, 150, 178, 136, 141, 142, 149, 135, 147, 125, 127, 150, 141, 151, 160, 143, 155, 143, 138, 135, 144, 142, 150, 137, 146, 133, 131, 116, 145, 139, 144, 143, 145, 160, 142, 142, 146, 159, 151, 146, 146, 161, 138, 149, 148, 123, 138, 148, 150, 148, 155, 161, 141, 135, 144, 156, 148, 139, 139, 130, 164, 142, 148, 148, 143, 159, 134, 130, 153, 151, 132, 166, 150, 145, 160, 163, 146, 121, 152, 159, 149, 155, 145, 160, 128, 148, 138, 149, 145, 134, 143, 129, 142, 144, 156, 143, 144, 143, 139, 150, 149, 144, 134, 150, 131, 139, 121, 144, 148, 156, 155, 129, 144, 144, 144, 125, 161, 141, 145, 148, 146, 155, 137, 142, 144, 146, 144, 144, 140, 142, 152, 145, 148, 150, 146, 146, 140, 150, 147, 143, 138, 144, 150, 145, 135, 146, 153, 149, 148, 147, 144, 138, 154, 150, 149, 141, 142, 146, 148, 151, 150, 142, 146, 150, 178, 147, 148, 147, 146, 147, 143, 137, 146, 148, 142, 147, 150, 149, 150, 141, 147, 154, 150, 145, 148, 146, 148, 146, 155, 149, 161, 145, 146, 146, 146, 154, 149, 148, 142, 147, 149, 147, 142, 149, 150, 140, 143, 148, 149, 147, 150, 143, 151, 142, 155, 147, 147, 143, 146, 147, 147, 145, 149, 151, 146, 139, 152, 147, 145, 142, 148, 141, 146, 144, 153, 143, 148, 148, 147, 145, 147, 147, 148, 144, 145, 145, 158, 148, 149, 146, 150, 142, 144, 151, 149, 143, 139, 150, 139, 141, 144, 145, 148, 157, 145, 145, 142, 142, 152, 140, 144, 146, 153, 143, 146, 148, 145, 144, 150, 149, 155, 148, 145, 146, 146, 143, 145, 133, 147, 141, 146, 144, 145, 113, 150, 142, 144, 147, 138, 142, 146, 146, 146, 144, 152, 143, 149, 149, 147, 146, 144, 146, 149, 140, 141, 144, 151, 140, 130, 129, 137, 141, 144, 143, 140, 150, 151, 148, 147, 146, 143, 146, 147, 145, 148, 140, 154, 148, 150, 150, 150, 130, 145, 147, 145, 137, 143, 151, 150, 144, 146, 144, 141, 148, 143, 147, 147, 145, 144, 156, 144, 145, 149, 145, 145, 146, 146, 151, 144, 173, 145, 147, 139, 143, 150, 149, 156, 148, 145, 147, 145, 149, 142, 151, 155, 148, 143, 154, 148, 148, 137, 148, 154, 140, 147, 153, 150, 151, 137, 147, 146, 146, 142, 154, 143, 147, 147, 145, 150, 148, 146, 141, 146, 146, 154, 149, 154, 149, 137, 157, 140, 148, 137, 147, 140, 144, 151, 151, 151, 147, 146, 145, 141, 145, 148, 143, 136, 151, 146, 146, 141, 150, 151, 144, 150, 142, 132, 148, 146, 150, 149, 138, 145, 146, 139, 155, 149, 143, 149, 144, 146, 144, 146, 143, 142, 141, 146, 147, 141, 143, 142, 144, 135, 145, 147, 150, 142, 146, 152, 140, 154, 149, 146, 136, 150, 141, 148, 143, 132, 146, 147, 142, 148, 150, 149, 147, 146, 141, 147, 141, 146, 143, 143, 156, 143, 148, 143, 144, 144, 149, 146, 145, 141, 148, 140, 145, 147, 147, 144, 137, 154, 144, 149, 147, 135, 150, 145, 144, 156, 150, 153, 146, 148, 163, 144, 148, 155, 141, 147, 145, 145, 143, 141, 162, 151, 141, 139, 150, 146, 164, 142, 148, 140, 140, 148, 152, 145, 153, 144, 141, 145, 141, 145, 148, 152, 141, 145, 147, 147, 147, 139, 147, 150, 149, 151, 166, 144, 151, 156, 154, 141, 146, 143, 145, 146, 146, 139, 155, 147, 145, 143, 150, 145, 143, 149, 146, 150, 163, 149, 149, 146, 147, 138, 149, 146, 160, 141, 150, 150, 143, 141, 146, 142, 150, 149, 146, 143, 141, 153, 152, 145, 151, 143, 144, 147, 138, 144, 152, 140, 132, 151, 147, 142, 144, 149, 144, 149, 149, 147, 152, 145, 144, 146, 150, 148, 150, 144, 145, 151, 148, 146, 149, 142, 147, 145, 148, 152, 149, 142, 148, 153, 144, 145, 144, 167, 148, 143, 138, 147, 149, 145, 147, 148, 146, 146, 151, 139, 147, 146, 146, 146, 153, 145, 149, 147, 152, 156, 150, 139, 146, 148, 144, 142, 145, 142, 148, 141, 141, 146, 144, 152, 147, 136, 144, 148, 148, 148, 146, 150, 147, 120, 149, 151, 144, 144, 164, 148, 150, 142, 146, 144, 150, 144, 146, 135, 151, 141, 150, 146, 148, 145, 142, 147, 134, 156, 144, 149, 144, 146, 148, 149, 145, 150, 143, 150, 142, 153, 150, 147, 148, 142, 146, 149, 142, 148, 149, 149, 139, 142, 142, 148, 147, 142, 146, 143, 147, 144, 146, 149, 147, 145, 139, 154, 144, 149, 141, 147, 153, 144, 156, 142, 148, 155, 148, 158, 144, 147, 148, 148, 149, 139, 148, 146, 140, 140, 137, 147, 144, 148, 147, 148, 145, 138, 138, 140, 159, 144, 142, 149, 146, 144, 142, 148, 149, 144, 141, 145, 146, 151, 143, 151, 148, 148, 146, 147, 149, 146, 145, 145, 138, 149, 148, 145, 149, 147, 147, 140, 156, 144, 152, 141, 149, 150, 171, 143, 148, 147, 151, 155, 144, 147, 153, 139, 150, 149, 139, 144, 144, 143, 142, 142, 144, 148, 145, 146, 145, 144, 149, 143, 144, 149, 154, 135, 144, 119, 148, 147, 145, 142, 157, 144, 142, 146, 142, 160, 146, 146, 148, 150, 142, 151, 150, 149, 132, 143, 143, 133, 156, 163, 153, 138, 152, 154, 143, 150, 138, 148, 144, 147, 152, 127, 136, 141, 158, 149, 142, 140, 148, 147, 148, 153, 147, 139, 150, 145, 150, 150, 156, 150, 139, 135, 148, 143, 160, 152, 159, 153, 156, 141, 145, 152, 140, 146, 149, 174, 153, 148, 155, 143, 140, 136, 155, 146, 156, 157, 163, 156, 149, 139, 149, 151, 136, 142, 149, 156, 125, 158, 153, 142, 135, 145, 144, 150, 146, 154, 159, 151, 151, 159, 143, 151, 158, 151, 145, 154, 151, 151, 157, 153, 139, 147, 146, 119, 143, 141, 97, 152, 148, 147, 141, 155, 133, 150, 138, 140, 144, 123, 146, 160, 139, 148, 148, 143, 145, 153, 148, 146, 156, 141, 152, 159, 147, 144, 142, 138, 148, 138, 155, 143, 161, 145, 157, 150, 145, 128, 129, 128, 147, 145, 142, 146, 145, 153, 144, 145, 140, 146, 140, 152, 151, 143, 143, 154, 134, 140, 142, 147, 134, 142, 154, 140, 144, 144, 148, 135, 208, 132, 145, 144, 170, 157, 155, 145, 148, 37, 142, 142, 140, 139, 195, 143, 148, 148, 141, 152, 147, 147, 150, 139, 170, 127, 144, 143, 149, 139, 143, 140, 170, 144, 151, 146, 181, 125, 123, 176, 158, 149, 136, 172, 143, 147, 150, 142, 129, 142, 149, 135, 151, 147, 146, 151, 146, 139, 139, 144, 142, 140, 148, 154, 146, 155, 145, 141, 147, 154, 136, 143, 147, 143, 153, 154, 138, 138, 134, 139, 144, 152, 146, 143, 145, 149, 145, 143, 143, 145, 146, 144, 146, 144, 146, 152, 141, 142, 144, 158, 144, 142, 159, 145, 143, 144, 153, 137, 155, 146, 146, 144, 143, 148, 142, 151, 146, 142, 150, 139, 145, 148, 144, 150, 147, 152, 144, 143, 146, 144, 147, 147, 154, 141, 146, 151, 141, 144, 143, 145, 141, 147, 147, 163, 141, 145, 150, 155, 149, 146, 139, 147, 145, 139, 144, 148, 141, 146, 143, 155, 143, 146, 146, 149, 149, 153, 149, 147, 153, 145, 145, 145, 158, 139, 143, 145, 149, 144, 151, 152, 145, 147, 141, 145, 143, 139, 149, 145, 145, 150, 144, 144, 144, 140, 145, 148, 148, 142, 145, 130, 139, 147, 146, 140, 146, 146, 148, 148, 156, 144, 145, 147, 142, 134, 141, 143, 139, 149, 143, 149, 141, 146, 147, 146, 143, 152, 137, 151, 146, 139, 140, 157, 150, 148, 147, 148, 151, 144, 147, 139, 147, 149, 145, 142, 149, 147, 146, 131, 158, 142, 143, 144, 136, 142, 145, 153, 150, 142, 139, 140, 145, 142, 150, 143, 137, 146, 140, 142, 148, 154, 146, 147, 145, 149, 154, 143, 140, 143, 142, 139, 147, 146, 148, 140, 147, 147, 145, 152, 162, 144, 148, 145, 146, 140, 150, 145, 152, 148, 147, 140, 139, 144, 145, 141, 149, 138, 135, 136, 145, 148, 151, 145, 154, 146, 140, 135, 151, 156, 152, 148, 137, 143, 145, 144, 146, 147, 142, 146, 148, 144, 144, 146, 142, 143, 156, 138, 144, 148, 148, 142, 147, 146, 141, 147, 147, 150, 150, 149, 155, 137, 141, 136, 149, 140, 146, 145, 139, 140, 146, 143, 146, 143, 154, 147, 138, 135, 144, 154, 158, 150, 149, 139, 133, 133, 143, 165, 146, 141, 132, 151, 133, 151, 144, 146, 137, 141, 140, 148, 151, 153, 167, 152, 143, 147, 137, 150, 139, 143, 156, 148, 144, 153, 136, 145, 145, 156, 141, 148, 154, 151, 145, 143, 144, 166, 148, 137, 142, 142, 148, 154, 148, 143, 140, 134, 146, 141, 144, 140, 137, 137, 141, 145, 134, 145, 142, 145, 142, 149, 138, 145, 143, 147, 145, 147, 142, 135, 137, 147, 140, 157, 137, 149, 145, 133, 146, 150, 158, 134, 148, 148, 143, 150, 151, 146, 138, 143, 137, 139, 143, 149, 154, 138, 159, 130, 148, 146, 139, 138, 151, 142, 140, 149, 146, 136, 140, 151, 145, 136, 142, 151, 133, 149, 145, 151, 148, 155, 155, 130, 148, 143, 134, 146, 139, 160, 161, 145, 151, 145, 142, 163, 145, 137, 143, 131, 146, 145, 146, 137, 144, 155, 143, 142, 142, 133, 148, 161, 142, 146, 146, 136, 143, 162, 148, 138, 128, 144, 139, 137, 150, 136, 141, 142, 150, 137, 146, 152, 147, 138, 141, 151, 142, 142, 152, 143, 154, 151, 138, 145, 143, 132, 141, 134, 149, 162, 146, 149, 138, 151, 148, 143, 148, 149, 141, 148, 146, 143, 141, 144, 156, 140, 137, 160, 143, 140, 148, 146, 146, 151, 140, 147, 136, 152, 155, 137, 142, 137, 144, 151, 147, 147, 143, 148, 144, 150, 148, 145, 144, 146, 147, 144, 145, 144, 143, 143, 143, 138, 146, 166, 143, 146, 143, 146, 148, 146, 145, 149, 145, 148, 143, 146, 138, 144, 128, 141, 143, 146, 155, 150, 146, 145, 142, 144, 151, 149, 149, 114, 144, 144, 146, 146, 144, 144, 144, 177, 147, 150, 143, 143, 148, 154, 145, 147, 184, 147, 150, 145, 146, 146, 143, 151, 148, 151, 145, 150, 147, 146, 147, 154, 151, 146, 151, 147, 127, 150, 144, 144, 144, 131, 144, 143, 145, 147, 182, 148, 148, 144, 147, 147, 141, 150, 149, 148, 143, 146, 144, 142, 146, 143, 144, 147, 159, 146, 146, 147, 150, 150, 146, 141, 147, 145, 148, 145, 147, 143, 170, 148, 148, 148, 145, 144, 143, 145, 147, 145, 148, 145, 140, 145, 141, 147, 145, 158, 147, 146, 144, 141, 148, 143, 143, 148, 147, 142, 146, 144, 153, 146, 148, 145, 149, 146, 149, 151, 144, 147, 149, 143, 130, 141, 148, 147, 150, 146, 141, 144, 146, 140, 143, 144, 148, 144, 146, 143, 146, 147, 144, 145, 144, 148, 142, 146, 148, 145, 144, 151, 144, 147, 145, 145, 143, 142, 152, 150, 143, 147, 151, 145, 146, 142, 147, 148, 148, 148, 150, 142, 144, 145, 139, 137, 155, 148, 146, 146, 150, 148, 144, 148, 150, 145, 144, 144, 141, 145, 140, 148, 148, 148, 147, 147, 154, 144, 141, 148, 164, 130, 142, 146, 145, 144, 146, 144, 143, 145, 148, 146, 144, 147, 150, 138, 148, 147, 147, 140, 149, 149, 143, 138, 151, 148, 159, 148, 144, 144, 147, 146, 147, 147, 147, 134, 146, 146, 145, 143, 142, 147, 149, 138, 148, 138, 145, 161, 148, 148, 142, 148, 140, 149, 156, 141, 146, 149, 143, 144, 147, 146, 149, 145, 137, 144, 145, 145, 149, 141, 152, 154, 146, 157, 156, 140, 146, 152, 138, 133, 140, 148, 149, 143, 145, 142, 148, 145, 150, 137, 139, 144, 156, 150, 149, 145, 145, 144, 143, 141, 147, 148, 143, 143, 145, 154, 145, 146, 151, 149, 142, 148, 143, 145, 148, 149, 141, 142, 144, 140, 147, 144, 141, 145, 146, 150, 148, 139, 145, 148, 144, 145, 145, 145, 140, 162, 146, 154, 149, 135, 140, 149, 135, 146, 148, 146, 139, 144, 144, 141, 149, 149, 144, 147, 148, 143, 159, 151, 144, 143, 143, 144, 146, 146, 145, 138, 154, 140, 147, 145, 150, 146, 147, 147, 149, 144, 145, 146, 145, 140, 145, 144, 148, 149, 145, 157, 150, 148, 152, 145, 149, 136, 146, 138, 145, 146, 142, 147, 149, 157, 148, 145, 148, 143, 147, 147, 146, 147, 147, 153, 147, 145, 146, 155, 156, 144, 149, 152, 147, 143, 149, 144, 147, 152, 142, 143, 147, 146, 147, 145, 145, 141, 145, 139, 142, 150, 151, 146, 146, 149, 148, 147, 149, 149, 149, 141, 150, 148, 143, 146, 142, 144, 144, 149, 144, 149, 147, 143, 147, 140, 146, 143, 134, 145, 153, 151, 141, 146, 148, 148, 150, 143, 143, 150, 149, 143, 145, 153, 149, 140, 142, 145, 145, 147, 149, 147, 143, 143, 151, 143, 144, 148, 146, 149, 146, 146, 142, 144, 149, 143, 150, 138, 146, 139, 143, 157, 142, 149, 143, 141, 149, 148, 147, 145, 147, 139, 144, 145, 150, 147, 143, 139, 143, 149, 145, 141, 151, 147, 151, 145, 147, 151, 158, 151, 139, 148, 143, 149, 154, 139, 149, 149, 138, 145, 143, 142, 143, 151, 142, 148, 141, 146, 146, 145, 145, 147, 147, 145, 141, 147, 144, 147, 141, 139, 145, 145, 148, 146, 150, 146, 146, 139, 143, 141, 148, 138, 146, 143, 149, 147, 154, 152, 146, 148, 149, 143, 147, 142, 151, 146, 144, 144, 143, 136, 153, 137, 146, 141, 139, 145, 150, 145, 142, 144, 166, 146, 148, 145, 146, 141, 146, 148, 148, 175, 147, 148, 146, 149, 149, 144, 150, 149, 146, 145, 145, 146, 148, 146, 143, 148, 144, 139, 147, 147, 129, 147, 147, 133, 148, 151, 144, 144, 147, 161, 147, 148, 145, 147, 147, 148, 142, 151, 149, 144, 143, 147, 151, 142, 145, 145, 150, 146, 145, 149, 149, 144, 149, 143, 145, 151, 142, 141, 145, 143, 143, 138, 145, 147, 152, 144, 144, 145, 146, 146, 151, 142, 148, 146, 144, 147, 148, 137, 150, 145, 151, 145, 144, 136, 150, 149, 145, 149, 148, 148, 148, 146, 150, 146, 143, 147, 150, 147, 142, 142, 142, 147, 149, 146, 144, 144, 141, 148, 149, 145, 141, 145, 141, 150, 148, 141, 136, 160, 140, 145, 128, 169, 150, 137, 149, 123, 136, 146, 157, 140, 145, 126, 143, 143, 130, 150, 150, 139, 136, 144, 151, 165, 143, 130, 163, 141, 161, 156, 141, 143, 145, 147, 142, 165, 119, 157, 144, 148, 138, 169, 156, 160, 135, 142, 174, 145, 151, 140, 161, 173, 154, 156, 153, 140, 152, 158, 151, 152, 144, 160, 137, 154, 151, 137, 161, 137, 132, 163, 139, 155, 144, 151, 142, 163, 140, 143, 146, 137, 136, 144, 148, 145, 155, 149, 148, 146, 150, 188, 150, 105, 142, 158, 141, 146, 144, 149, 138, 187, 149, 148, 214, 151, 142, 125, 159, 150, 156, 146, 157, 151, 162, 150, 155, 155, 162, 159, 129, 141, 137, 157, 147, 148, 163, 108, 154, 155, 147, 148, 118, 124, 138, 143, 135, 137, 144, 130, 133, 150, 137, 138, 146, 161, 128, 128, 154, 145, 142, 150, 128, 160, 148, 141, 129, 149, 145, 147, 147, 152, 150, 135, 185, 131, 151, 162, 184, 127, 144, 153, 112, 172, 135, 146, 138, 127, 150, 149, 149, 142, 152, 134, 126, 137, 157, 145, 150, 166, 119, 166, 146, 146, 141, 152, 134, 148, 146, 150, 164, 159, 142, 119, 158, 140, 125, 179, 141, 151, 158, 148, 136, 142, 154, 152, 144, 146, 148, 135, 152, 174, 151, 145, 133, 141, 139, 152, 159, 158, 136, 135, 137, 141, 160, 144, 161, 152, 162, 148, 144, 138, 166, 141, 144, 154, 149, 150, 147, 141, 146, 149, 140, 150, 145, 145, 143, 151, 145, 145, 146, 143, 146, 143, 148, 148, 149, 161, 148, 158, 147, 147, 149, 149, 140, 156, 151, 144, 134, 150, 144, 151, 146, 144, 133, 146, 149, 148, 151, 141, 145, 141, 144, 146, 150, 140, 149, 141, 146, 151, 143, 134, 148, 144, 147, 161, 146, 148, 145, 146, 144, 149, 147, 145, 151, 141, 146, 151, 144, 145, 144, 110, 153, 150, 142, 141, 143, 143, 147, 151, 147, 144, 146, 149, 137, 139, 145, 149, 141, 150, 146, 119, 143, 144, 158, 142, 147, 140, 147, 146, 151, 148, 147, 147, 144, 151, 150, 144, 144, 145, 145, 148, 148, 150, 146, 149, 150, 145, 145, 144, 149, 149, 146, 145, 144, 150, 145, 148, 146, 143, 148, 146, 142, 151, 147, 141, 164, 147, 151, 142, 148, 153, 144, 134, 144, 165, 150, 151, 147, 150, 138, 145, 147, 150, 145, 144, 152, 145, 145, 148, 147, 147, 147, 148, 149, 148, 144, 147, 146, 147, 146, 147, 147, 144, 150, 147, 150, 147, 148, 148, 142, 144, 142, 146, 147, 146, 147, 150, 163, 142, 143, 151, 153, 146, 147, 135, 140, 148, 166, 138, 145, 148, 146, 142, 158, 145, 138, 145, 148, 147, 145, 142, 140, 142, 145, 144, 149, 147, 143, 141, 157, 148, 151, 145, 144, 139, 146, 144, 141, 143, 150, 152, 144, 156, 148, 139, 147, 148, 146, 142, 166, 141, 146, 146, 140, 155, 141, 148, 147, 153, 145, 145, 147, 145, 146, 143, 145, 149, 144, 141, 143, 148, 148, 149, 144, 151, 141, 149, 131, 144, 146, 142, 146, 143, 139, 146, 145, 141, 144, 152, 144, 144, 141, 151, 143, 143, 147, 141, 149, 146, 152, 151, 148, 143, 144, 146, 145, 135, 146, 147, 150, 149, 148, 147, 141, 147, 146, 143, 146, 146, 150, 141, 143, 147, 142, 144, 142, 146, 136, 146, 141, 144, 147, 165, 148, 147, 146, 144, 144, 146, 150, 145, 150, 157, 156, 146, 137, 141, 146, 145, 147, 145, 153, 147, 143, 148, 148, 146, 146, 146, 139, 146, 143, 147, 149, 149, 144, 146, 143, 145, 144, 144, 144, 146, 153, 147, 145, 144, 146, 144, 145, 148, 148, 146, 147, 150, 144, 152, 151, 143, 142, 146, 145, 152, 149, 145, 152, 147, 142, 147, 148, 141, 150, 148, 145, 147, 148, 145, 143, 145, 139, 156, 144, 145, 145, 146, 151, 141, 154, 152, 146, 146, 145, 141, 145, 146, 144, 150, 144, 142, 144, 143, 151, 153, 146, 145, 151, 143, 149, 143, 145, 147, 143, 148, 148, 145, 149, 147, 144, 147, 151, 146, 145, 134, 148, 142, 145, 147, 147, 142, 144, 144, 148, 144, 145, 146, 148, 145, 148, 149, 147, 142, 149, 149, 144, 147, 131, 146, 149, 147, 146, 145, 145, 145, 149, 145, 144, 149, 152, 148, 150, 140, 152, 147, 139, 141, 142, 148, 139, 149, 141, 143, 147, 145, 152, 145, 144, 146, 150, 146, 146, 143, 137, 157, 142, 146, 153, 140, 138, 146, 141, 143, 152, 155, 144, 162, 147, 151, 147, 158, 160, 150, 150, 160, 126, 144, 147, 150, 146, 145, 138, 147, 158, 146, 140, 178, 151, 143, 137, 157, 135, 148, 148, 143, 141, 141, 147, 138, 131, 133, 129, 147, 150, 147, 140, 134, 149, 137, 162, 147, 135, 147, 154, 137, 122, 140, 159, 145, 146, 143, 159, 143, 141, 138, 126, 144, 140, 145, 150, 167, 139, 148, 131, 145, 124, 152, 144, 154, 154, 164, 162, 148, 149, 146, 150, 150, 143, 144, 159, 158, 148, 143, 150, 136, 151, 136, 153, 144, 127, 155, 139, 137, 142, 136, 142, 139, 137, 143, 150, 142, 142, 126, 142, 135, 142, 145, 150, 144, 148, 155, 149, 153, 156, 153, 141, 145, 144, 151, 147, 152, 153, 141, 160, 146, 137, 142, 136, 152, 141, 148, 143, 141, 149, 145, 156, 149, 123, 150, 145, 149, 153, 142, 139, 144, 121, 145, 155, 146, 143, 132, 149, 146, 145, 151, 148, 144, 155, 130, 160, 134, 143, 151, 147, 159, 148, 135, 152, 150, 142, 136, 151, 147, 126, 144, 150, 147, 144, 144, 149, 132, 141, 155, 146, 139, 148, 141, 162, 146, 139, 137, 148, 138, 139, 142, 142, 146, 148, 146, 146, 141, 160, 143, 129, 145, 156, 144, 149, 145, 143, 146, 150, 138, 150, 162, 146, 138, 147, 144, 153, 147, 142, 145, 143, 148, 139, 139, 170, 144, 142, 153, 156, 144, 145, 141, 147, 146, 148, 144, 140, 147, 156, 146, 162, 158, 126, 159, 152, 143, 136, 156, 140, 141, 154, 147, 143, 153, 144, 160, 133, 152, 156, 140, 148, 152, 142, 139, 142, 151, 137, 150, 145, 145, 134, 149, 148, 140, 140, 151, 146, 137, 147, 140, 147, 145, 143, 134, 140, 131, 154, 142, 147, 151, 143, 131, 149, 159, 143, 159, 148, 146, 148, 151, 152, 137, 157, 146, 155, 148, 152, 153, 151, 132, 144, 149, 153, 146, 141, 141, 153, 131, 144, 149, 149, 137, 141, 153, 146, 136, 144, 148, 141, 159, 143, 145, 140, 163, 150, 150, 146, 138, 144, 145, 144, 125, 145, 143, 149, 142, 150, 145, 146, 145, 148, 147, 144, 150, 140, 141, 154, 146, 145, 143, 146, 143, 148, 145, 144, 141, 138, 147, 146, 148, 139, 151, 144, 145, 144, 154, 139, 139, 146, 126, 148, 146, 144, 150, 140, 138, 142, 153, 136, 142, 146, 152, 149, 148, 149, 146, 136, 154, 144, 155, 143, 136, 148, 153, 151, 150, 155, 155, 149, 149, 153, 144, 142, 147, 138, 142, 160, 149, 135, 150, 146, 143, 143, 152, 142, 154, 144, 146, 144, 145, 149, 148, 144, 152, 137, 137, 143, 147, 177, 145, 141, 148, 121, 143, 148, 152, 158, 147, 140, 143, 152, 143, 148, 144, 141, 145, 146, 147, 146, 150, 162, 154, 156, 145, 144, 138, 150, 146, 139, 149, 149, 137, 152, 134, 153, 135, 153, 151, 127, 166, 159, 155, 143, 150, 144, 154, 156, 152, 139, 152, 138, 143, 147, 140, 152, 159, 149, 148, 147, 145, 147, 131, 137, 184, 141, 144, 135, 163, 138, 136, 152, 149, 147, 117, 148, 143, 146, 150, 123, 139, 146, 150, 159, 135, 138, 143, 141, 141, 140, 162, 146, 143, 153, 140, 146, 144, 149, 136, 145, 147, 166, 127, 138, 150, 153, 134, 135, 150, 156, 147, 139, 143, 144, 149, 176, 141, 158, 149, 138, 141, 150, 145, 140, 152, 140, 157, 150, 146, 155, 162, 157, 150, 181, 149, 139, 190, 147, 150, 138, 134, 147, 138, 142, 135, 144, 154, 147, 144, 145, 143, 174, 143, 137, 142, 147, 146, 154, 157, 154, 151, 139, 151, 149, 151, 146, 145, 143, 158, 118, 152, 141, 149, 148, 136, 142, 153, 153, 128, 150, 138, 137, 132, 140, 148, 152, 126, 145, 157, 129, 152, 153, 156, 139, 142, 153, 135, 160, 144, 150, 138, 149, 137, 160, 151, 159, 142, 141, 146, 142, 148, 159, 141, 145, 154, 148, 144, 155, 142, 150, 158, 179, 144, 153, 130, 152, 142, 150, 180, 145, 154, 148, 136, 135, 164, 151, 134, 141, 145, 151, 142, 138, 133, 140, 146, 152, 142, 147, 148, 138, 150, 147, 144, 156, 140, 143, 139, 146, 141, 151, 139, 147, 146, 145, 140, 136, 163, 152, 147, 147, 142, 151, 128, 141, 114, 141, 158, 147, 141, 152, 136, 144, 147, 146, 141, 149, 145, 144, 139, 150, 138, 152, 146, 186, 147, 145, 143, 172, 154, 135, 183, 154, 148, 151, 150, 155, 153, 146, 158, 138, 145, 133, 153, 138, 164, 139, 144, 144, 150, 137, 157, 146, 153, 147, 154, 143, 139, 138, 135, 144, 146, 144, 144, 147, 147, 143, 145, 151, 147, 150, 140, 151, 128, 144, 148, 148, 151, 143, 150, 152, 157, 138, 158, 145, 129, 139, 141, 137, 139, 150, 159, 142, 141, 145, 150, 151, 143, 157, 150, 153, 145, 138, 146, 147, 153, 146, 149, 142, 147, 165, 170, 143, 142, 152, 144, 142, 147, 179, 153, 142, 155, 141, 138, 138, 141, 149, 145, 141, 150, 153, 156, 169, 153, 148, 146, 140, 142, 138, 147, 139, 140, 144, 150, 137, 140, 154, 142, 142, 146, 148, 148, 135, 143, 145, 154, 145, 148, 141, 143, 150, 163, 144, 140, 152, 150, 147, 152, 146, 159, 142, 153, 140, 148, 140, 146, 139, 173, 149, 153, 162, 148, 149, 143, 145, 144, 144, 140, 152, 146, 144, 152, 142, 146, 149, 138, 145, 139, 141, 140, 137, 139, 141, 141, 151, 150, 137, 151, 146, 151, 151, 153, 144, 148, 136, 138, 154, 157, 142, 155, 137, 142, 144, 152, 145, 134, 145, 146, 151, 149, 147, 144, 155, 138, 151, 145, 145, 155, 142, 139, 146, 138, 159, 144, 141, 150, 143, 147, 142, 137, 144, 151, 140, 146, 151, 143, 144, 147, 149, 149, 144, 151, 148, 149, 143, 150, 140, 149, 147, 140, 146, 152, 155, 155, 142, 141, 147, 141, 149, 156, 139, 140, 146, 146, 152, 141, 136, 148, 152, 161, 141, 138, 136, 150, 148, 146, 148, 148, 154, 146, 154, 146, 139, 155, 146, 145, 147, 144, 141, 142, 139, 146, 135, 150, 145, 170, 132, 151, 136, 158, 148, 153, 157, 147, 139, 146, 141, 136, 146, 151, 159, 144, 144, 143, 148, 150, 153, 147, 151, 135, 142, 147, 146, 148, 142, 158, 140, 140, 148, 146, 156, 144, 141, 141, 133, 140, 147, 148, 149, 144, 152, 146, 147, 152, 149, 150, 147, 145, 143, 163, 147, 148, 145, 150, 138, 148, 152, 145, 149, 150, 140, 147, 142, 144, 147, 144, 148, 149, 152, 148, 138, 139, 150, 148, 149, 143, 152, 147, 144, 142, 147, 135, 148, 150, 145, 148, 152, 143, 152, 146, 145, 147, 144, 139, 156, 150, 145, 145, 148, 139, 146, 153, 154, 139, 156, 146, 147, 149, 146, 146, 147, 146, 146, 146, 144, 147, 142, 152, 143, 150, 149, 145, 162, 145, 141, 152, 149, 151, 145, 145, 136, 154, 145, 142, 144, 138, 145, 136, 155, 144, 144, 155, 142, 146, 154, 152, 153, 147, 151, 149, 140, 147, 139, 146, 145, 149, 142, 164, 140, 144, 134, 152, 144, 149, 141, 141, 146, 149, 149, 144, 154, 146, 147, 157, 147, 130, 150, 148, 144, 160, 142, 149, 150, 140, 143, 145, 145, 144, 144, 146, 141, 147, 155, 148, 145, 138, 151, 137, 137, 143, 161, 145, 147, 149, 148, 151, 143, 146, 141, 144, 144, 143, 146, 144, 145, 137, 145, 148, 142, 144, 136, 140, 145, 153, 151, 137, 145, 147, 135, 151, 145, 148, 141, 139, 148, 134, 148, 151, 145, 145, 148, 144, 145, 148, 148, 134, 144, 141, 145, 149, 148, 158, 144, 147, 151, 147, 147, 143, 146, 145, 147, 142, 142, 144, 152, 141, 147, 145, 144, 145, 144, 151, 140, 154, 145, 139, 148, 138, 148, 147, 141, 147, 143, 146, 143, 152, 142, 143, 142, 145, 146, 150, 145, 150, 138, 147, 143, 147, 146, 145, 141, 149, 148, 159, 151, 146, 144, 139, 142, 135, 140, 142, 151, 141, 143, 142, 136, 147, 149, 149, 136, 147, 149, 147, 142, 146, 144, 144, 147, 144, 152, 145, 151, 142, 145, 153, 146, 152, 149, 148, 140, 143, 142, 144, 151, 153, 149, 145, 143, 148, 145, 146, 142, 161, 148, 148, 147, 148, 143, 143, 145, 147, 147, 145, 145, 148, 147, 137, 144, 160, 139, 142, 147, 149, 144, 144, 145, 140, 148, 141, 141, 148, 146, 149, 145, 146, 142, 152, 141, 144, 146, 143, 148, 143, 142, 138, 144, 146, 145, 146, 143, 147, 145, 148, 147, 144, 147, 143, 144, 135, 144, 149, 141, 148, 144, 147, 149, 148, 145, 146, 139, 153, 145, 145, 144, 149, 141, 148, 140, 152, 146, 143, 147, 145, 154, 148, 143, 148, 143, 144, 148, 150, 146, 154, 142, 142, 150, 148, 142, 145, 142, 154, 149, 146, 142, 148, 143, 147, 146, 147, 149, 145, 145, 138, 145, 154, 144, 143, 139, 141, 148, 146, 151, 145, 146, 145, 147, 144, 146, 144, 149, 151, 144, 147, 142, 147, 147, 146, 146, 144, 151, 144, 141, 149, 145, 155, 152, 139, 157, 146, 137, 141, 145, 148, 142, 148, 146, 142, 145, 148, 150, 144, 148, 150, 148, 148, 148, 144, 160, 151, 151, 145, 147, 142, 143, 149, 145, 140, 145, 147, 147, 147, 140, 151, 144, 142, 148, 149, 141, 147, 151, 147, 147, 156, 149, 141, 144, 147, 148, 140, 149, 149, 143, 145, 140, 150, 145, 139, 150, 152, 141, 156, 146, 147, 136, 141, 145, 146, 148, 148, 152, 145, 145, 152, 136, 141, 144, 146, 148, 149, 146, 142, 143, 148, 152, 158, 149, 147, 147, 142, 150, 151, 147, 154, 149, 138, 143, 145, 148, 146, 144, 147, 143, 153, 152, 142, 142, 148, 143, 151, 148, 156, 145, 145, 145, 150, 151, 142, 141, 147, 142, 145, 138, 147, 140, 141, 147, 149, 150, 147, 150, 150, 151, 145, 139, 149, 151, 139, 138, 153, 149, 145, 144, 144, 148, 149, 145, 147, 150, 143, 139, 138, 149, 148, 143, 146, 147, 143, 143, 143, 146, 145, 145, 147, 155, 136, 142, 151, 145, 148, 159, 139, 155, 144, 151, 151, 154, 146, 147, 144, 152, 149, 146, 145, 147, 125, 147, 171, 150, 133, 135, 140, 157, 144, 154, 146, 146, 152, 145, 146, 149, 148, 151, 146, 149, 140, 152, 147, 131, 145, 148, 146, 127, 145, 145, 151, 150, 143, 145, 144, 141, 147, 146, 133, 146, 144, 142, 142, 144, 145, 151, 151, 149, 149, 142, 150, 150, 146, 145, 146, 170, 148, 146, 156, 142, 149, 148, 151, 153, 141, 148, 145, 140, 141, 153, 149, 138, 137, 151, 150, 143, 146, 154, 152, 143, 149, 147, 129, 138, 165, 158, 144, 141, 147, 161, 126, 143, 143, 137, 136, 140, 149, 134, 146, 149, 148, 154, 157, 143, 129, 123, 154, 142, 144, 148, 150, 145, 134, 146, 131, 153, 149, 149, 118, 144, 163, 156, 126, 141, 148, 160, 149, 146, 165, 144, 152, 156, 140, 147, 137, 134, 138, 143, 155, 156, 145, 167, 169, 131, 173, 128, 151, 142, 167, 139, 145, 149, 149, 149, 154, 144, 155, 153, 134, 136, 148, 146, 142, 139, 164, 158, 126, 147, 106, 133, 146, 138, 147, 150, 140, 147, 138, 142, 145, 163, 132, 138, 142, 145, 149, 157, 145, 152, 148, 135, 139, 144, 144, 145, 155, 149, 135, 145, 140, 141, 143, 108, 128, 151, 127, 143, 137, 122, 136, 150, 131, 139, 149, 149, 144, 164, 149, 151, 143, 143, 123, 151, 139, 149, 138, 159, 151, 158, 155, 135, 151, 145, 158, 142, 151, 135, 133, 151, 161, 181, 158, 162, 147, 152, 206, 140, 142, 149, 145, 143, 143, 129, 162, 134, 159, 138, 153, 137, 145, 135, 149, 147, 142, 153, 149, 139, 146, 149, 131, 124, 148, 146, 148, 141, 144, 194, 151, 146, 120, 149, 136, 145, 171, 139, 125, 142, 158, 146, 148, 150, 149, 144, 143, 141, 141, 152, 145, 143, 140, 149, 149, 146, 158, 151, 157, 143, 167, 151, 157, 138, 145, 138, 148, 143, 143, 130, 150, 154, 134, 146, 127, 142, 126, 148, 142, 143, 145, 141, 142, 141, 148, 157, 147, 146, 148, 148, 149, 137, 147, 144, 147, 150, 146, 149, 143, 164, 154, 145, 138, 146, 143, 142, 150, 141, 140, 148, 144, 158, 136, 149, 147, 143, 142, 139, 140, 153, 146, 146, 148, 154, 143, 148, 149, 134, 137, 153, 149, 153, 143, 144, 140, 142, 142, 148, 142, 141, 146, 140, 148, 143, 145, 138, 154, 141, 145, 152, 140, 149, 144, 152, 144, 145, 139, 146, 151, 127, 146, 139, 143, 145, 142, 140, 146, 153, 145, 146, 145, 144, 141, 151, 144, 141, 140, 140, 138, 147, 152, 145, 144, 152, 147, 153, 146, 149, 143, 139, 149, 148, 148, 141, 152, 143, 142, 149, 144, 141, 150, 153, 145, 150, 140, 145, 145, 151, 138, 151, 149, 147, 145, 145, 148, 142, 141, 151, 148, 141, 146, 147, 146, 139, 149, 149, 150, 149, 147, 150, 149, 148, 144, 146, 143, 141, 143, 142, 142, 146, 145, 138, 147, 149, 151, 147, 148, 143, 145, 147, 152, 151, 138, 140, 145, 147, 154, 143, 144, 147, 151, 142, 146, 147, 143, 143, 135, 145, 153, 153, 142, 138, 145, 145, 149, 143, 142, 153, 153, 152, 146, 153, 136, 146, 147, 150, 148, 140, 148, 141, 145, 146, 148, 149, 152, 148, 144, 144, 152, 142, 152, 146, 146, 149, 148, 147, 144, 154, 142, 139, 144, 152, 142, 147, 146, 155, 144, 151, 145, 154, 152, 155, 146, 143, 147, 138, 154, 146, 147, 147, 152, 136, 149, 145, 144, 149, 145, 145, 143, 150, 145, 148, 146, 147, 141, 145, 150, 146, 158, 147, 146, 148, 143, 147, 108, 154, 140, 142, 144, 154, 133, 148, 143, 146, 149, 144, 142, 145, 146, 133, 147, 156, 148, 143, 140, 145, 144, 147, 146, 142, 143, 147, 139, 147, 146, 144, 142, 143, 145, 149, 145, 147, 142, 148, 151, 144, 141, 144, 140, 131, 148, 137, 151, 137, 145, 148, 161, 149, 153, 148, 142, 140, 146, 145, 148, 148, 146, 141, 145, 137, 149, 145, 147, 148, 138, 144, 155, 157, 148, 127, 157, 145, 146, 151, 144, 145, 153, 148, 146, 153, 158, 150, 144, 146, 144, 150, 152, 141, 149, 141, 150, 122, 140, 149, 138, 133, 143, 144, 143, 142, 150, 142, 147, 145, 140, 141, 151, 149, 143, 143, 147, 130, 145, 146, 146, 147, 135, 152, 145, 145, 149, 145, 147, 150, 140, 150, 147, 147, 155, 143, 149, 116, 145, 146, 143, 146, 143, 143, 142, 147, 145, 150, 144, 142, 142, 152, 150, 142, 143, 148, 140, 145, 148, 143, 146, 153, 141, 145, 147, 143, 142, 147, 144, 143, 145, 151, 149, 155, 140, 150, 154, 148, 150, 139, 153, 144, 144, 153, 147, 148, 151, 144, 142, 151, 141, 148, 145, 149, 144, 144, 153, 147, 140, 133, 141, 138, 144, 145, 147, 139, 149, 146, 143, 136, 143, 146, 150, 145, 143, 148, 139, 144, 144, 143, 145, 138, 147, 141, 142, 132, 150, 140, 150, 146, 128, 145, 148, 145, 145, 145, 162, 147, 146, 149, 141, 142, 146, 148, 147, 151, 134, 142, 138, 152, 144, 140, 143, 148, 143, 149, 142, 150, 146, 159, 147, 153, 146, 150, 127, 145, 138, 141, 145, 134, 143, 144, 147, 146, 149, 151, 148, 142, 133, 150, 144, 145, 143, 149, 143, 141, 143, 146, 149, 145, 145, 147, 149, 146, 149, 132, 142, 146, 143, 145, 147, 141, 134, 142, 149, 149, 147, 150, 139, 146, 141, 160, 151, 152, 146, 138, 148, 152, 139, 148, 143, 144, 144, 146, 144, 152, 145, 148, 148, 156, 144, 148, 142, 155, 147, 146, 144, 148, 141, 146, 165, 152, 144, 145, 139, 149, 150, 144, 137, 144, 147, 143, 144, 138, 143, 146, 147, 146, 153, 148, 168, 143, 147, 153, 142, 138, 142, 149, 148, 148, 147, 133, 163, 146, 138, 148, 145, 140, 149, 152, 145, 152, 154, 144, 145, 147, 143, 146, 148, 143, 140, 134, 143, 146, 143, 150, 143, 148, 146, 149, 141, 144, 142, 145, 132, 143, 146, 149, 151, 148, 147, 149, 147, 137, 155, 139, 146, 147, 141, 144, 150, 144, 132, 132, 155, 150, 146, 144, 142, 148, 145, 143, 151, 145, 141, 150, 143, 151, 143, 147, 141, 148, 155, 143, 136, 140, 144, 156, 150, 137, 149, 142, 143, 143, 144, 151, 144, 141, 147, 146, 149, 166, 151, 125, 142, 142, 154, 126, 145, 142, 141, 149, 150, 145, 138, 145, 141, 144, 148, 148, 148, 140, 144, 144, 134, 141, 142, 143, 143, 153, 142, 147, 147, 148, 149, 146, 139, 145, 152, 147, 135, 145, 143, 145, 151, 131, 149, 155, 141, 151, 141, 144, 143, 143, 142, 147, 139, 138, 146, 143, 151, 144, 157, 149, 140, 143, 158, 146, 147, 144, 141, 145, 150, 154, 158, 139, 140, 155, 143, 143, 145, 141, 141, 165, 144, 146, 151, 141, 147, 134, 150, 138, 142, 142, 138, 139, 146, 151, 159, 149, 158, 146, 138, 151, 150, 157, 140, 148, 142, 145, 157, 154, 142, 138, 142, 143, 134, 151, 148, 138, 142, 146, 149, 145, 152, 156, 149, 145, 149, 152, 147, 142, 147, 160, 147, 139, 151, 150, 154, 144, 149, 155, 145, 148, 146, 143, 147, 139, 149, 147, 148, 146, 149, 144, 152, 140, 152, 148, 144, 142, 142, 137, 150, 149, 141, 139, 150, 146, 149, 144, 151, 142, 149, 145, 149, 143, 145, 145, 145, 148, 149, 144, 148, 148, 142, 152, 149, 145, 144, 144, 137, 145, 153, 149, 149, 147, 146, 139, 141, 155, 143, 143, 137, 151, 154, 147, 135, 143, 150, 149, 140, 151, 152, 144, 146, 141, 142, 145, 137, 118, 136, 135, 146, 147, 148, 147, 140, 137, 144, 146, 159, 146, 147, 144, 134, 136, 147, 149, 148, 151, 150, 142, 139, 132, 143, 151, 145, 146, 144, 148, 144, 145, 150, 144, 153, 151, 150, 138, 144, 146, 147, 137, 142, 148, 142, 135, 144, 143, 144, 139, 143, 145, 140, 152, 140, 150, 145, 146, 146, 138, 139, 132, 144, 160, 144, 136, 168, 142, 134, 149, 140, 145, 141, 144, 131, 144, 144, 144, 146, 145, 151, 157, 145, 152, 142, 144, 146, 135, 149, 148, 145, 141, 142, 146, 150, 153, 150, 148, 156, 153, 143, 148, 148, 146, 144, 152, 153, 151, 147, 151, 162, 149, 141, 147, 149, 144, 145, 146, 148, 150, 144, 129, 147, 146, 145, 149, 142, 135, 143, 156, 146, 144, 144, 149, 142, 145, 143, 151, 144, 159, 144, 151, 143, 142, 149, 152, 151, 145, 148, 146, 158, 148, 149, 147, 142, 146, 144, 143, 143, 140, 144, 155, 153, 143, 148, 145, 146, 144, 142, 144, 150, 145, 139, 155, 144, 144, 147, 141, 146, 144, 147, 143, 140, 113, 152, 140, 143, 147, 147, 150, 145, 146, 148, 142, 147, 147, 145, 134, 145, 142, 150, 147, 145, 143, 142, 146, 140, 146, 150, 140, 146, 148, 145, 142, 145, 149, 145, 145, 147, 147, 147, 141, 149, 149, 149, 144, 145, 141, 147, 151, 138, 142, 146, 142, 141, 147, 142, 144, 139, 142, 148, 144, 154, 149, 154, 153, 145, 140, 147, 146, 142, 146, 143, 142, 143, 138, 144, 152, 141, 145, 147, 146, 146, 145, 144, 142, 138, 150, 146, 145, 143, 134, 139, 148, 144, 151, 158, 147, 148, 148, 160, 142, 149, 148, 149, 146, 149, 146, 140, 147, 147, 146, 144, 146, 147, 155, 136, 140, 135, 138, 147, 145, 147, 138, 151, 141, 144, 146, 139, 142, 141, 142, 139, 145, 147, 143, 140, 147, 150, 144, 154, 142, 156, 146, 142, 141, 164, 153, 142, 143, 150, 137, 139, 154, 150, 149, 142, 147, 115, 142, 144, 135, 102, 140, 167, 147, 137, 138, 146, 140, 145, 148, 145, 145, 144, 152, 149, 153, 146, 134, 152, 151, 164, 146, 150, 149, 143, 151, 145, 153, 155, 146, 168, 139, 153, 147, 151, 134, 150, 151, 156, 140, 148, 143, 158, 154, 138, 150, 149, 133, 149, 152, 142, 144, 147, 141, 118, 148, 141, 155, 144, 145, 148, 145, 95, 147, 146, 155, 151, 131, 147, 141, 139, 144, 148, 148, 134, 143, 148, 174, 125, 143, 143, 147, 138, 144, 140, 151, 146, 147, 143, 152, 156, 148, 149, 143, 146, 134, 142, 150, 142, 153, 153, 159, 164, 130, 155, 153, 143, 142, 146, 168, 146, 145, 129, 140, 122, 141, 140, 137, 150, 155, 142, 151, 146, 146, 152, 146, 127, 150, 136, 142, 146, 146, 150, 154, 150, 142, 144, 144, 153, 150, 140, 145, 142, 155, 136, 139, 143, 149, 155, 144, 147, 129, 150, 148, 155, 144, 150, 155, 153, 148, 143, 145, 151, 144, 151, 134, 150, 144, 144, 143, 146, 155, 135, 142, 150, 148, 151, 149, 146, 140, 156, 186, 135, 149, 144, 148, 151, 123, 141, 151, 147, 150, 151, 139, 149, 137, 154, 155, 150, 149, 142, 145, 146, 163, 149, 155, 150, 153, 151, 147, 145, 151, 147, 143, 153, 139, 155, 131, 152, 135, 148, 135, 144, 178, 141, 156, 150, 150, 131, 148, 141, 158, 141, 148, 135, 145, 146, 147, 145, 139, 146, 146, 146, 148, 150, 144, 149, 141, 147, 148, 150, 126, 150, 147, 150, 146, 144, 146, 144, 152, 144, 145, 150, 146, 150, 138, 145, 148, 150, 143, 150, 138, 149, 148, 146, 155, 141, 145, 149, 147, 151, 147, 146, 149, 146, 153, 147, 152, 144, 154, 141, 144, 145, 155, 146, 147, 150, 147, 138, 142, 144, 141, 142, 145, 151, 144, 155, 142, 143, 140, 152, 144, 152, 135, 157, 141, 158, 155, 141, 138, 147, 145, 143, 149, 146, 156, 145, 144, 148, 149, 149, 146, 143, 150, 144, 145, 150, 148, 146, 143, 141, 150, 146, 147, 146, 150, 145, 144, 144, 145, 143, 147, 142, 149, 155, 144, 148, 153, 151, 147, 143, 144, 143, 140, 155, 150, 145, 142, 147, 149, 144, 138, 154, 148, 145, 146, 146, 143, 145, 153, 143, 148, 150, 135, 156, 147, 147, 141, 146, 149, 148, 144, 146, 145, 146, 153, 144, 144, 145, 144, 144, 149, 142, 151, 143, 149, 146, 146, 138, 149, 153, 144, 141, 138, 141, 146, 143, 151, 146, 148, 141, 153, 142, 143, 142, 147, 129, 143, 142, 147, 150, 152, 133, 151, 139, 147, 145, 142, 145, 135, 145, 144, 146, 148, 142, 147, 144, 146, 147, 133, 148, 143, 150, 145, 136, 151, 144, 149, 135, 151, 152, 148, 142, 151, 150, 147, 149, 136, 145, 142, 146, 128, 146, 147, 150, 147, 150, 154, 143, 141, 143, 140, 141, 143, 138, 143, 138, 146, 145, 149, 150, 141, 140, 148, 142, 145, 147, 143, 141, 149, 141, 146, 148, 138, 151, 113, 150, 152, 142, 152, 149, 165, 141, 140, 150, 157, 153, 136, 150, 145, 154, 150, 144, 130, 144, 141, 144, 148, 144, 144, 146, 136, 143, 148, 148, 147, 143, 138, 149, 151, 161, 145, 148, 150, 144, 143, 145, 146, 144, 146, 146, 149, 150, 157, 141, 147, 156, 145, 146, 140, 151, 150, 144, 132, 155, 146, 127, 145, 150, 152, 154, 144, 146, 149, 146, 148, 150, 150, 154, 149, 149, 156, 142, 148, 160, 149, 136, 150, 139, 146, 143, 145, 142, 145, 145, 145, 144, 149, 146, 146, 120, 145, 150, 140, 145, 145, 153, 151, 118, 139, 144, 139, 148, 139, 142, 148, 133, 142, 151, 145, 150, 143, 148, 149, 139, 145, 149, 142, 138, 150, 146, 152, 138, 121, 143, 137, 160, 133, 132, 149, 165, 145, 150, 143, 137, 151, 152, 136, 151, 141, 144, 149, 149, 150, 153, 148, 142, 154, 149, 140, 150, 141, 139, 144, 142, 158, 160, 152, 150, 147, 162, 148, 146, 140, 160, 140, 142, 140, 150, 150, 141, 146, 143, 149, 147, 144, 150, 152, 147, 148, 149, 136, 136, 154, 149, 152, 149, 150, 142, 138, 144, 147, 146, 144, 156, 138, 136, 147, 164, 142, 149, 152, 147, 144, 143, 139, 143, 145, 146, 149, 142, 142, 135, 149, 145, 148, 139, 138, 147, 144, 145, 144, 152, 155, 153, 134, 148, 145, 155, 145, 120, 149, 150, 146, 144, 149, 146, 152, 146, 145, 144, 150, 113, 149, 138, 141, 144, 151, 140, 123, 159, 150, 137, 166, 133, 143, 126, 137, 150, 142, 136, 143, 165, 147, 137, 133, 147, 169, 147, 170, 151, 147, 129, 154, 153, 148, 135, 173, 142, 149, 136, 123, 136, 141, 144, 150, 156, 148, 142, 149, 158, 125, 149, 168, 104, 153, 134, 144, 150, 141, 147, 145, 160, 149, 144, 148, 150, 134, 148, 149, 149, 166, 135, 143, 158, 140, 142, 143, 138, 140, 149, 152, 135, 153, 141, 146, 150, 151, 128, 167, 134, 130, 141, 140, 148, 144, 133, 133, 161, 151, 137, 128, 145, 146, 150, 150, 140, 155, 132, 124, 151, 146, 136, 152, 155, 142, 146, 143, 142, 138, 130, 159, 141, 147, 126, 137, 137, 152, 148, 130, 131, 136, 148, 159, 140, 157, 131, 143, 150, 151, 153, 134, 139, 142, 131, 145, 142, 166, 144, 141, 146, 156, 138, 157, 144, 145, 163, 130, 143, 157, 144, 158, 139, 134, 136, 161, 165, 155, 155, 156, 157, 145, 149, 179, 132, 151, 150, 144, 145, 139, 140, 130, 149, 162, 134, 123, 138, 146, 161, 172, 158, 137, 143, 136, 153, 146, 173, 157, 142, 151, 147, 163, 145, 156, 136, 158, 143, 162, 144, 148, 135, 146, 143, 143, 154, 153, 153, 144, 151, 150, 143, 137, 137, 146, 144, 151, 148, 140, 128, 141, 143, 161, 141, 150, 161, 149, 151, 152, 155, 156, 149, 141, 140, 175, 152, 141, 145, 139, 142, 128, 142, 144, 152, 142, 148, 142, 147, 145, 147, 146, 145, 144, 150, 148, 151, 146, 141, 144, 146, 133, 148, 147, 148, 144, 145, 143, 145, 147, 145, 145, 159, 145, 146, 144, 145, 143, 142, 150, 146, 155, 152, 148, 143, 146, 147, 148, 149, 147, 143, 147, 145, 150, 145, 144, 148, 141, 149, 147, 144, 144, 145, 150, 145, 145, 144, 150, 147, 139, 147, 139, 146, 149, 145, 146, 163, 143, 143, 148, 144, 148, 145, 142, 141, 143, 154, 156, 146, 135, 146, 144, 144, 146, 144, 150, 147, 146, 146, 150, 146, 151, 149, 141, 147, 143, 147, 144, 142, 146, 150, 146, 148, 144, 148, 147, 146, 148, 143, 145, 146, 145, 141, 146, 144, 143, 147, 146, 147, 144, 148, 142, 147, 146, 152, 148, 149, 144, 144, 150, 146, 142, 145, 147, 142, 149, 145, 144, 147, 145, 145, 145, 144, 146, 148, 147, 144, 148, 147, 151, 145, 150, 150, 145, 146, 147, 145, 140, 146, 144, 146, 144, 144, 148, 147, 146, 149, 143, 147, 148, 144, 147, 142, 148, 149, 146, 142, 145, 147, 146, 151, 144, 147, 145, 152, 142, 133, 145, 142, 144, 146, 146, 143, 143, 148, 145, 144, 145, 146, 144, 140, 143, 147, 148, 146, 146, 145, 145, 146, 137, 145, 145, 145, 147, 154, 147, 145, 146, 148, 143, 149, 146, 144, 147, 147, 150, 146, 137, 139, 149, 144, 141, 147, 142, 146, 149, 141, 150, 147, 145, 149, 148, 146, 148, 146, 140, 152, 143, 148, 153, 143, 143, 147, 145, 149, 145, 153, 147, 149, 145, 154, 132, 142, 156, 167, 153, 142, 136, 135, 150, 151, 147, 137, 156, 143, 134, 144, 145, 132, 149, 141, 143, 157, 142, 146, 151, 142, 152, 146, 145, 143, 132, 142, 143, 127, 146, 155, 145, 137, 141, 144, 131, 143, 137, 141, 149, 145, 144, 147, 149, 148, 133, 144, 151, 145, 150, 170, 143, 126, 154, 150, 139, 147, 159, 146, 146, 144, 155, 149, 133, 150, 145, 148, 161, 150, 145, 148, 145, 160, 153, 151, 125, 127, 146, 142, 129, 141, 155, 148, 134, 137, 150, 145, 145, 148, 145, 141, 146, 149, 146, 151, 155, 144, 158, 154, 138, 145, 151, 141, 142, 146, 141, 147, 146, 144, 141, 148, 142, 145, 152, 143, 142, 152, 150, 131, 143, 147, 147, 148, 148, 135, 145, 139, 136, 146, 138, 131, 133, 139, 145, 148, 138, 145, 146, 142, 151, 138, 130, 133, 138, 147, 142, 150, 147, 144, 134, 141, 140, 141, 163, 147, 153, 139, 143, 154, 150, 135, 151, 141, 142, 149, 152, 145, 140, 145, 149, 145, 135, 143, 142, 143, 138, 145, 137, 139, 154, 140, 120, 130, 150, 139, 144, 136, 146, 150, 152, 147, 153, 139, 149, 143, 145, 145, 151, 145, 147, 153, 145, 148, 133, 142, 153, 151, 142, 145, 143, 137, 150, 145, 149, 148, 144, 140, 128, 150, 145, 141, 179, 144, 123, 133, 132, 152, 147, 149, 149, 145, 152, 150, 147, 138, 129, 138, 142, 148, 147, 146, 149, 143, 146, 142, 145, 142, 159, 146, 148, 141, 142, 149, 153, 145, 151, 146, 145, 145, 147, 151, 144, 148, 118, 146, 142, 149, 143, 145, 146, 147, 145, 152, 149, 162, 151, 148, 150, 140, 146, 140, 144, 147, 143, 144, 149, 141, 142, 147, 143, 146, 142, 149, 147, 147, 130, 145, 154, 145, 146, 146, 103, 148, 136, 144, 146, 155, 150, 149, 144, 142, 151, 144, 150, 149, 140, 149, 147, 152, 146, 148, 147, 154, 145, 144, 145, 137, 139, 141, 146, 146, 149, 146, 147, 144, 140, 142, 149, 141, 141, 148, 145, 150, 147, 141, 143, 146, 146, 140, 146, 149, 150, 144, 142, 166, 141, 150, 149, 146, 146, 143, 149, 141, 148, 145, 148, 142, 148, 157, 144, 153, 149, 159, 138, 144, 148, 146, 143, 142, 144, 148, 148, 146, 144, 144, 148, 143, 151, 144, 145, 142, 150, 145, 146, 144, 144, 145, 146, 150, 151, 149, 142, 129, 147, 147, 148, 189, 143, 145, 145, 144, 145, 146, 145, 144, 148, 145, 145, 146, 146, 145, 159, 152, 147, 148, 144, 147, 147, 146, 143, 145, 140, 147, 144, 143, 147, 146, 147, 145, 148, 148, 146, 142, 146, 147, 144, 148, 148, 145, 141, 149, 145, 150, 145, 148, 146, 140, 147, 146, 148, 149, 158, 150, 145, 149, 146, 145, 149, 146, 147, 128, 144, 151, 143, 154, 143, 145, 137, 149, 146, 146, 149, 145, 148, 158, 145, 146, 145, 145, 150, 145, 144, 152, 159, 146, 142, 154, 150, 141, 153, 144, 144, 150, 144, 145, 147, 146, 147, 148, 147, 162, 144, 142, 151, 145, 151, 148, 145, 147, 148, 145, 152, 152, 147, 152, 143, 147, 152, 147, 142, 147, 154, 141, 154, 150, 146, 149, 141, 133, 145, 147, 147, 145, 148, 144, 140, 148, 144, 150, 148, 144, 148, 151, 146, 149, 149, 140, 145, 145, 149, 147, 149, 152, 143, 143, 146, 151, 142, 144, 160, 137, 147, 153, 140, 146, 149, 137, 152, 143, 150, 144, 150, 146, 145, 145, 151, 145, 149, 144, 145, 140, 146, 147, 149, 147, 141, 147, 148, 148, 152, 147, 150, 142, 144, 147, 149, 151, 147, 143, 144, 152, 142, 145, 144, 144, 149, 151, 148, 153, 146, 144, 148, 141, 146, 143, 152, 144, 145, 154, 146, 152, 144, 145, 144, 149, 145, 147, 143, 143, 144, 142, 145, 143, 146, 146, 146, 138, 142, 137, 150, 145, 138, 139, 144, 134, 152, 144, 142, 153, 147, 143, 148, 144, 148, 140, 145, 146, 154, 149, 148, 149, 144, 143, 148, 143, 142, 149, 146, 155, 152, 143, 144, 152, 142, 145, 149, 144, 142, 133, 147, 144, 148, 146, 140, 144, 143, 141, 144, 146, 148, 148, 143, 146, 144, 148, 149, 141, 145, 148, 141, 148, 141, 150, 145, 147, 146, 145, 149, 145, 147, 143, 139, 142, 151, 154, 150, 142, 148, 154, 146, 144, 143, 146, 144, 143, 144, 143, 144, 145, 150, 148, 141, 147, 143, 146, 144, 143, 147, 146, 150, 144, 145, 141, 151, 146, 147, 143, 148, 140, 141, 143, 146, 145, 151, 144, 146, 166, 143, 149, 153, 142, 144, 150, 150, 148, 143, 142, 159, 150, 144, 144, 137, 147, 152, 144, 131, 146, 151, 144, 153, 142, 153, 150, 155, 135, 154, 140, 145, 147, 148, 152, 147, 149, 148, 147, 140, 145, 147, 149, 142, 142, 151, 137, 148, 146, 155, 142, 146, 145, 147, 142, 180, 157, 142, 143, 134, 148, 145, 133, 142, 155, 152, 151, 148, 153, 143, 145, 143, 144, 149, 147, 136, 146, 151, 149, 140, 140, 149, 141, 145, 146, 150, 134, 149, 148, 154, 145, 145, 143, 149, 146, 151, 143, 150, 150, 143, 144, 141, 148, 149, 141, 147, 147, 143, 146, 148, 145, 142, 151, 145, 150, 142, 153, 149, 150, 147, 140, 144, 144, 148, 146, 143, 142, 154, 150, 144, 140, 148, 155, 150, 148, 148, 164, 143, 149, 147, 146, 144, 143, 139, 145, 143, 145, 146, 148, 147, 151, 147, 149, 142, 144, 142, 151, 150, 138, 145, 142, 147, 152, 148, 150, 143, 147, 143, 146, 146, 145, 148, 152, 145, 135, 146, 147, 149, 152, 149, 141, 138, 145, 158, 139, 145, 153, 144, 145, 156, 148, 143, 153, 155, 141, 152, 145, 152, 143, 147, 143, 146, 141, 135, 154, 159, 146, 148, 146, 154, 145, 145, 143, 140, 152, 150, 140, 151, 140, 156, 141, 154, 147, 139, 149, 151, 141, 154, 148, 154, 138, 146, 154, 147, 148, 137, 140, 146, 147, 141, 147, 150, 163, 148, 149, 138, 153, 174, 150, 122, 130, 154, 144, 143, 153, 121, 148, 129, 138, 148, 148, 140, 157, 145, 147, 149, 138, 149, 145, 143, 137, 151, 148, 154, 148, 151, 146, 137, 143, 139, 145, 149, 151, 164, 167, 154, 160, 147, 132, 141, 156, 149, 160, 159, 151, 124, 156, 125, 155, 162, 143, 135, 153, 135, 139, 133, 131, 135, 153, 153, 145, 144, 151, 150, 153, 144, 148, 166, 147, 148, 143, 139, 143, 159, 138, 153, 151, 146, 132, 139, 156, 150, 152, 133, 187, 171, 147, 140, 134, 130, 149, 144, 149, 149, 143, 146, 143, 131, 160, 141, 140, 150, 144, 130, 173, 130, 142, 128, 148, 149, 138, 139, 137, 144, 135, 158, 150, 151, 144, 142, 142, 146, 149, 147, 143, 136, 144, 136, 161, 138, 148, 159, 143, 144, 154, 155, 129, 150, 134, 164, 163, 139, 157, 142, 137, 136, 150, 148, 143, 133, 154, 140, 139, 141, 138, 148, 159, 126, 127, 137, 143, 136, 170, 149, 173, 142, 139, 146, 177, 125, 148, 132, 146, 148, 148, 138, 141, 152, 147, 138, 147, 133, 136, 146, 141, 125, 144, 136, 118, 174, 165, 156, 144, 154, 148, 153, 137, 140, 146, 149, 142, 143, 151, 138, 143, 160, 155, 162, 143, 151, 163, 161, 148, 156, 164, 155, 137, 146, 133, 131, 145, 146, 117, 139, 163, 155, 130, 154, 143, 123, 141, 129, 153, 113, 132, 138, 147, 144, 142, 156, 132, 145, 137, 147, 138, 129, 153, 140, 136, 136, 146, 144, 150, 129, 127, 123, 137, 145, 142, 124, 151, 128, 151, 144, 150, 141, 155, 147, 152, 146, 140, 141, 161, 135, 128, 145, 145, 122, 147, 148, 145, 156, 144, 145, 140, 148, 135, 137, 141, 143, 139, 158, 130, 133, 140, 149, 149, 145, 122, 148, 147, 128, 154, 139, 154, 148, 123, 151, 146, 150, 144, 146, 148, 144, 157, 144, 148, 154, 150, 136, 134, 149, 155, 154, 147, 154, 143, 133, 139, 137, 169, 140, 147, 138, 143, 156, 140, 145, 162, 163, 168, 160, 153, 141, 147, 153, 149, 138, 154, 124, 145, 153, 143, 144, 107, 155, 148, 149, 147, 146, 104, 142, 135, 142, 143, 141, 136, 147, 127, 156, 137, 146, 147, 160, 164, 139, 148, 148, 169, 140, 140, 132, 139, 143, 135, 139, 170, 152, 137, 169, 153, 149, 154, 158, 145, 127, 139, 147, 158, 152, 151, 141, 160, 142, 150, 151, 139, 149, 168, 154, 137, 143, 141, 148, 145, 135, 143, 156, 149, 135, 140, 143, 146, 153, 160, 140, 145, 130, 142, 139, 138, 160, 142, 120, 146, 170, 142, 148, 144, 144, 173, 149, 127, 148, 163, 168, 154, 139, 146, 162, 133, 150, 162, 143, 149, 153, 141, 137, 149, 137, 157, 135, 152, 163, 142, 137, 146, 165, 152, 152, 138, 122, 149, 159, 139, 136, 147, 153, 130, 152, 140, 151, 134, 157, 153, 147, 123, 168, 163, 121, 122, 139, 147, 147, 145, 150, 145, 150, 146, 142, 134, 148, 143, 143, 127, 136, 150, 149, 145, 146, 138, 144, 149, 143, 153, 150, 150, 140, 134, 151, 147, 148, 145, 149, 154, 143, 149, 146, 148, 140, 144, 145, 147, 147, 145, 139, 152, 149, 145, 144, 142, 138, 147, 141, 144, 148, 141, 147, 151, 143, 150, 142, 145, 144, 154, 149, 149, 145, 150, 144, 169, 144, 155, 139, 146, 144, 146, 142, 145, 149, 142, 145, 148, 149, 154, 149, 135, 144, 142, 147, 146, 141, 148, 151, 144, 143, 149, 145, 147, 148, 144, 151, 147, 147, 151, 147, 145, 147, 150, 145, 148, 144, 146, 144, 146, 146, 149, 145, 150, 143, 137, 147, 144, 147, 149, 149, 144, 151, 141, 145, 146, 146, 145, 148, 147, 149, 144, 142, 143, 147, 146, 147, 150, 144, 147, 138, 152, 146, 147, 145, 151, 132, 145, 146, 145, 150, 148, 138, 145, 148, 151, 151, 144, 145, 145, 131, 152, 151, 146, 159, 145, 143, 144, 145, 147, 147, 144, 141, 151, 148, 146, 149, 147, 147, 147, 151, 140, 146, 145, 146, 146, 148, 148, 150, 154, 143, 141, 148, 150, 149, 144, 146, 140, 147, 140, 143, 146, 140, 143, 150, 144, 142, 142, 147, 148, 148, 142, 144, 142, 121, 147, 150, 145, 141, 146, 156, 149, 144, 150, 137, 147, 153, 148, 145, 154, 149, 149, 147, 142, 151, 145, 146, 143, 147, 142, 150, 143, 151, 152, 144, 139, 148, 149, 149, 145, 147, 147, 147, 148, 151, 151, 139, 147, 141, 142, 149, 145, 146, 144, 144, 151, 150, 150, 145, 133, 139, 153, 132, 142, 141, 149, 153, 146, 140, 143, 150, 152, 150, 143, 136, 161, 144, 145, 144, 151, 142, 144, 136, 149, 150, 144, 150, 151, 149, 139, 141, 137, 156, 139, 145, 137, 155, 133, 141, 144, 144, 148, 137, 156, 141, 145, 144, 145, 146, 147, 148, 141, 153, 145, 160, 143, 151, 148, 154, 144, 120, 134, 148, 146, 140, 141, 136, 146, 158, 145, 145, 151, 151, 146, 145, 126, 144, 137, 136, 138, 122, 139, 127, 146, 141, 145, 141, 153, 138, 156, 129, 151, 133, 146, 149, 147, 141, 143, 158, 158, 143, 140, 131, 134, 151, 148, 152, 137, 145, 148, 159, 124, 133, 158, 146, 153, 154, 152, 145, 140, 142, 141, 140, 137, 155, 152, 146, 142, 143, 161, 146, 138, 138, 155, 145, 142, 141, 145, 146, 141, 141, 145, 143, 146, 152, 137, 157, 152, 157, 144, 154, 132, 154, 158, 145, 144, 148, 148, 153, 154, 154, 145, 153, 148, 147, 140, 156, 161, 150, 140, 142, 147, 156, 147, 134, 149, 151, 149, 158, 143, 141, 156, 154, 157, 151, 152, 143, 135, 146, 146, 147, 146, 146, 143, 155, 150, 159, 132, 149, 159, 147, 127, 137, 161, 153, 147, 149, 148, 144, 139, 160, 142, 149, 145, 152, 153, 153, 143, 135, 152, 159, 149, 155, 149, 139, 135, 150, 142, 156, 145, 150, 155, 164, 149, 145, 137, 150, 154, 140, 147, 149, 142, 151, 153, 143, 157, 134, 159, 148, 138, 132, 157, 139, 137, 144, 134, 147, 152, 149, 150, 143, 147, 144, 144, 149, 147, 142, 141, 144, 142, 143, 144, 146, 146, 146, 141, 148, 151, 141, 140, 141, 147, 148, 151, 149, 142, 151, 147, 148, 147, 144, 143, 140, 144, 132, 143, 143, 143, 144, 149, 150, 142, 142, 146, 133, 154, 145, 151, 161, 149, 149, 146, 142, 158, 156, 146, 142, 134, 146, 146, 145, 145, 153, 160, 150, 165, 157, 151, 143, 135, 142, 147, 141, 139, 150, 153, 137, 141, 154, 150, 148, 144, 133, 150, 158, 147, 152, 146, 141, 141, 145, 146, 148, 139, 148, 144, 148, 148, 142, 139, 146, 152, 145, 147, 147, 139, 144, 146, 145, 148, 142, 140, 150, 143, 142, 145, 141, 150, 136, 139, 139, 141, 149, 149, 146, 153, 151, 145, 149, 144, 141, 147, 147, 144, 129, 147, 140, 148, 137, 144, 145, 145, 151, 147, 128, 154, 141, 148, 137, 153, 144, 146, 145, 141, 166, 146, 152, 144, 148, 143, 143, 143, 150, 149, 145, 144, 141, 149, 140, 141, 140, 150, 145, 146, 141, 143, 147, 147, 151, 145, 144, 136, 163, 139, 147, 144, 148, 148, 140, 174, 145, 147, 152, 144, 146, 146, 148, 144, 148, 143, 147, 146, 143, 148, 148, 142, 145, 132, 145, 157, 141, 143, 149, 145, 141, 161, 144, 150, 143, 148, 148, 146, 135, 144, 143, 140, 136, 146, 137, 140, 155, 145, 146, 141, 139, 148, 149, 139, 151, 152, 149, 144, 140, 149, 141, 145, 148, 141, 140, 147, 145, 147, 145, 143, 144, 152, 149, 148, 145, 146, 147, 151, 150, 148, 146, 139, 148, 151, 142, 147, 145, 149, 155, 147, 145, 146, 147, 148, 146, 145, 149, 144, 146, 148, 146, 143, 146, 148, 145, 152, 143, 148, 146, 147, 144, 149, 142, 141, 148, 149, 149, 129, 145, 121, 142, 136, 145, 145, 147, 147, 143, 144, 144, 145, 145, 143, 146, 146, 148, 147, 146, 149, 146, 149, 194, 150, 149, 149, 152, 147, 144, 143, 152, 146, 148, 145, 147, 150, 147, 143, 148, 147, 144, 143, 145, 146, 148, 150, 139, 147, 149, 146, 156, 147, 147, 146, 146, 143, 146, 151, 148, 149, 148, 147, 148, 147, 149, 148, 150, 149, 147, 147, 146, 139, 145, 144, 145, 149, 150, 151, 148, 154, 146, 147, 144, 148, 143, 150, 148, 144, 146, 151, 150, 139, 145, 145, 149, 147, 146, 140, 148, 147, 124, 139, 145, 145, 148, 144, 151, 146, 142, 148, 140, 147, 141, 147, 150, 145, 146, 149, 150, 146, 146, 141, 149, 143, 147, 143, 144, 142, 149, 149, 146, 151, 148, 153, 141, 143, 147, 150, 142, 146, 126, 144, 146, 148, 145, 147, 149, 151, 145, 145, 151, 145, 144, 147, 140, 148, 160, 139, 152, 148, 143, 146, 148, 145, 144, 145, 146, 144, 147, 142, 149, 151, 147, 150, 147, 147, 146, 148, 151, 143, 149, 153, 148, 145, 145, 149, 145, 148, 149, 144, 143, 143, 143, 148, 157, 142, 147, 143, 144, 148, 152, 148, 147, 141, 151, 143, 142, 146, 147, 149, 140, 149, 146, 141, 154, 141, 147, 150, 142, 148, 147, 146, 152, 146, 144, 147, 146, 148, 141, 158, 140, 142, 146, 144, 143, 144, 148, 147, 147, 151, 150, 139, 148, 146, 153, 151, 143, 142, 147, 138, 142, 150, 145, 143, 147, 144, 140, 153, 143, 142, 152, 146, 139, 150, 157, 149, 147, 146, 146, 151, 153, 152, 148, 152, 138, 144, 154, 145, 125, 147, 142, 140, 145, 145, 147, 156, 142, 144, 146, 134, 143, 150, 150, 137, 147, 151, 142, 146, 154, 143, 149, 148, 144, 146, 145, 154, 103, 142, 149, 143, 146, 144, 149, 137, 149, 147, 146, 143, 151, 137, 141, 148, 138, 149, 147, 154, 144, 140, 147, 147, 147, 145, 139, 141, 139, 143, 146, 146, 138, 152, 146, 140, 151, 144, 143, 151, 148, 145, 139, 151, 138, 138, 142, 143, 144, 147, 153, 146, 145, 139, 155, 147, 140, 142, 152, 152, 145, 152, 141, 151, 143, 147, 148, 150, 148, 136, 139, 142, 148, 142, 139, 149, 149, 138, 143, 152, 143, 149, 146, 148, 178, 150, 144, 141, 147, 148, 158, 155, 152, 142, 173, 137, 146, 139, 154, 144, 135, 151, 152, 148, 151, 150, 144, 162, 121, 141, 143, 149, 145, 149, 143, 149, 147, 144, 143, 143, 141, 147, 144, 149, 147, 137, 151, 147, 141, 145, 145, 128, 145, 145, 148, 149, 145, 152, 134, 140, 147, 154, 150, 148, 145, 150, 145, 144, 148, 151, 151, 136, 150, 145, 139, 148, 134, 144, 146, 149, 147, 145, 144, 146, 141, 146, 144, 148, 137, 157, 143, 144, 150, 143, 145, 145, 147, 137, 145, 155, 147, 144, 147, 150, 152, 145, 140, 145, 147, 143, 144, 141, 146, 148, 148, 149, 149, 139, 145, 145, 135, 142, 150, 145, 149, 148, 144, 143, 141, 142, 157, 149, 143, 147, 144, 143, 145, 146, 146, 144, 145, 142, 148, 148, 140, 144, 150, 141, 146, 150, 144, 147, 143, 148, 152, 147, 142, 147, 150, 141, 146, 143, 156, 144, 147, 142, 139, 146, 148, 142, 143, 140, 136, 149, 145, 146, 143, 131, 148, 145, 144, 145, 141, 147, 145, 147, 148, 141, 144, 136, 151, 146, 144, 139, 154, 153, 151, 140, 142, 142, 143, 142, 151, 148, 150, 141, 144, 154, 144, 143, 141, 140, 153, 140, 143, 149, 144, 141, 157, 144, 147, 162, 144, 142, 146, 138, 144, 146, 140, 141, 149, 147, 147, 148, 156, 143, 142, 149, 156, 141, 143, 150, 124, 152, 143, 147, 147, 147, 146, 136, 148, 141, 147, 146, 141, 148, 138, 136, 149, 148, 142, 145, 150, 141, 153, 133, 143, 147, 145, 149, 142, 149, 149, 144, 145, 140, 143, 144, 151, 138, 142, 146, 144, 149, 142, 145, 149, 144, 147, 145, 143, 144, 145, 150, 148, 142, 145, 149, 145, 144, 144, 144, 146, 149, 139, 142, 143, 146, 142, 143, 131, 150, 142, 151, 142, 147, 145, 139, 143, 143, 144, 142, 148, 147, 142, 142, 144, 145, 146, 140, 143, 149, 157, 164, 152, 152, 154, 152, 148, 151, 147, 147, 148, 152, 109, 147, 155, 149, 145, 147, 159, 147, 154, 137, 147, 170, 156, 140, 115, 144, 142, 140, 147, 150, 145, 137, 141, 157, 142, 145, 152, 148, 143, 133, 156, 155, 147, 140, 131, 146, 130, 140, 147, 146, 152, 143, 145, 149, 149, 151, 139, 146, 145, 156, 169, 146, 144, 146, 154, 144, 154, 143, 152, 149, 131, 145, 138, 141, 145, 120, 155, 142, 155, 141, 147, 127, 148, 152, 151, 151, 141, 154, 157, 151, 136, 155, 152, 150, 150, 144, 144, 144, 141, 154, 145, 149, 142, 152, 135, 159, 178, 147, 145, 160, 148, 148, 163, 147, 153, 142, 146, 162, 142, 135, 143, 145, 181, 151, 145, 148, 139, 152, 145, 147, 150, 150, 146, 144, 137, 139, 154, 140, 153, 153, 150, 147, 144, 149, 144, 155, 152, 148, 137, 152, 151, 140, 163, 146, 145, 144, 146, 149, 148, 149, 146, 135, 144, 144, 143, 161, 147, 145, 143, 144, 129, 145, 139, 143, 145, 148, 133, 137, 142, 138, 151, 149, 142, 143, 141, 151, 145, 154, 147, 136, 153, 162, 149, 138, 150, 174, 134, 144, 142, 151, 144, 148, 143, 147, 146, 147, 144, 153, 129, 147, 145, 137, 141, 131, 128, 142, 143, 150, 151, 119, 161, 148, 145, 151, 145, 182, 151, 134, 146, 152, 134, 137, 129, 147, 147, 143, 147, 154, 141, 143, 150, 146, 140, 149, 154, 145, 151, 145, 121, 145, 131, 153, 142, 139, 144, 148, 151, 153, 146, 158, 152, 134, 151, 143, 147, 171, 141, 145, 144, 145, 142, 147, 130, 146, 142, 150, 134, 143, 147, 150, 147, 141, 141, 155, 157, 141, 147, 155, 147, 142, 144, 143, 148, 148, 152, 154, 146, 133, 155, 147, 147, 148, 138, 148, 147, 147, 151, 143, 148, 148, 143, 148, 145, 145, 147, 145, 145, 141, 154, 142, 146, 157, 135, 145, 147, 144, 147, 137, 144, 139, 146, 146, 150, 148, 140, 145, 147, 147, 145, 147, 150, 148, 144, 146, 146, 149, 165, 148, 151, 149, 144, 148, 135, 153, 147, 140, 142, 145, 151, 153, 149, 138, 148, 169, 147, 139, 145, 147, 134, 158, 146, 136, 147, 144, 145, 142, 159, 144, 141, 136, 145, 146, 137, 144, 154, 142, 144, 143, 144, 149, 149, 146, 146, 148, 143, 143, 146, 144, 146, 148, 149, 150, 146, 149, 156, 149, 144, 150, 147, 143, 148, 122, 143, 161, 145, 157, 146, 151, 142, 149, 146, 142, 149, 141, 144, 149, 137, 133, 146, 153, 156, 142, 146, 147, 155, 140, 145, 146, 137, 147, 136, 148, 145, 148, 148, 144, 146, 148, 148, 149, 141, 149, 148, 150, 149, 150, 135, 147, 151, 144, 144, 147, 155, 144, 143, 148, 144, 144, 143, 151, 148, 142, 143, 145, 148, 159, 142, 146, 134, 139, 151, 147, 143, 144, 146, 149, 140, 148, 150, 143, 142, 144, 152, 140, 148, 145, 142, 147, 145, 144, 142, 128, 140, 146, 146, 141, 132, 156, 143, 134, 154, 141, 153, 148, 142, 143, 141, 144, 147, 151, 133, 142, 151, 138, 145, 133, 144, 142, 140, 140, 143, 149, 145, 144, 149, 149, 148, 148, 155, 144, 149, 150, 151, 143, 150, 146, 144, 133, 144, 155, 139, 142, 148, 143, 150, 142, 143, 149, 139, 194, 143, 114, 149, 161, 164, 148, 145, 145, 147, 111, 149, 144, 149, 145, 146, 143, 146, 147, 142, 141, 153, 150, 124, 156, 137, 145, 143, 138, 148, 144, 145, 143, 150, 145, 147, 141, 130, 149, 156, 139, 148, 144, 140, 142, 142, 132, 150, 142, 144, 152, 150, 149, 148, 145, 150, 158, 142, 144, 151, 144, 140, 143, 146, 137, 139, 146, 143, 138, 150, 139, 143, 140, 149, 148, 137, 139, 153, 141, 143, 142, 144, 142, 189, 151, 148, 141, 152, 146, 161, 134, 134, 147, 146, 143, 139, 145, 149, 150, 154, 152, 164, 144, 143, 142, 138, 146, 142, 145, 151, 148, 146, 150, 159, 142, 145, 155, 152, 145, 142, 142, 138, 147, 135, 145, 148, 129, 143, 145, 144, 143, 147, 154, 135, 122, 151, 151, 145, 148, 146, 153, 164, 146, 140, 161, 153, 156, 160, 145, 142, 150, 169, 144, 146, 141, 159, 146, 115, 128, 148, 137, 140, 143, 138, 137, 153, 138, 149, 145, 137, 155, 146, 145, 144, 146, 142, 153, 148, 136, 146, 145, 148, 141, 146, 138, 141, 143, 145, 158, 152, 128, 151, 153, 145, 152, 148, 140, 151, 142, 138, 139, 140, 138, 137, 140, 138, 140, 138, 144, 152, 144, 150, 143, 146, 145, 139, 149, 144, 148, 151, 148, 144, 143, 149, 140, 151, 133, 158, 150, 144, 145, 144, 151, 146, 150, 130, 144, 141, 144, 154, 150, 141, 144, 150, 144, 143, 133, 151, 137, 145, 146, 146, 143, 149, 137, 150, 138, 144, 150, 141, 142, 148, 154, 152, 146, 149, 146, 144, 148, 144, 134, 148, 150, 140, 136, 143, 146, 143, 139, 149, 144, 150, 151, 146, 155, 140, 152, 146, 146, 145, 146, 149, 149, 143, 155, 142, 156, 143, 144, 145, 146, 140, 165, 150, 148, 142, 143, 135, 145, 144, 145, 141, 146, 149, 146, 142, 145, 141, 144, 146, 142, 145, 142, 141, 145, 145, 143, 146, 148, 144, 141, 140, 141, 145, 148, 143, 136, 142, 144, 150, 147, 140, 140, 133, 147, 144, 151, 143, 135, 145, 140, 143, 167, 143, 155, 149, 150, 160, 156, 151, 164, 144, 133, 142, 144, 144, 149, 147, 152, 145, 145, 147, 145, 134, 135, 145, 144, 148, 139, 144, 146, 148, 148, 141, 148, 140, 143, 146, 148, 144, 145, 142, 145, 144, 142, 148, 147, 152, 138, 149, 137, 151, 147, 151, 139, 152, 145, 150, 142, 147, 144, 147, 147, 143, 142, 151, 143, 152, 153, 146, 150, 141, 145, 151, 146, 143, 142, 146, 147, 146, 145, 148, 149, 145, 147, 142, 139, 145, 145, 142, 144, 151, 154, 151, 148, 149, 144, 139, 145, 156, 142, 146, 140, 144, 150, 145, 150, 140, 143, 141, 147, 146, 145, 146, 138, 150, 150, 150, 141, 135, 151, 148, 140, 146, 141, 145, 147, 144, 144, 148, 147, 125, 147, 146, 147, 139, 148, 148, 145, 146, 156, 145, 156, 146, 146, 148, 144, 143, 145, 149, 147, 148, 147, 148, 145, 147, 144, 145, 147, 145, 146, 150, 145, 147, 149, 153, 145, 150, 143, 100, 152, 139, 142, 143, 159, 146, 147, 144, 137, 145, 138, 150, 151, 133, 142, 143, 144, 142, 154, 144, 147, 139, 148, 149, 152, 147, 146, 144, 143, 147, 146, 147, 148, 151, 146, 146, 146, 145, 152, 147, 146, 143, 144, 144, 142, 147, 145, 146, 143, 149, 143, 143, 148, 147, 142, 146, 145, 145, 144, 149, 150, 147, 144, 151, 141, 144, 140, 145, 146, 147, 141, 142, 143, 147, 145, 148, 148, 147, 144, 148, 149, 144, 149, 148, 146, 148, 146, 141, 149, 145, 145, 145, 149, 148, 148, 151, 147, 146, 142, 147, 143, 147, 152, 143, 196, 145, 146, 149, 148, 147, 146, 143, 153, 142, 147, 141, 159, 147, 148, 161, 144, 147, 144, 145, 145, 145, 149, 138, 143, 145, 147, 150, 148, 148, 144, 150, 146, 144, 139, 150, 145, 144, 144, 145, 144, 143, 144, 147, 148, 147, 144, 146, 144, 142, 139, 147, 141, 141, 141, 156, 145, 148, 147, 144, 147, 142, 145, 150, 131, 141, 150, 148, 149, 142, 146, 131, 147, 145, 147, 145, 146, 151, 140, 148, 146, 149, 145, 148, 147, 144, 159, 149, 145, 147, 149, 145, 144, 148, 144, 146, 148, 147, 143, 147, 148, 147, 143, 145, 146, 147, 143, 149, 148, 146, 142, 148, 195, 144, 124, 154, 149, 151, 146, 147, 138, 141, 144, 140, 145, 146, 145, 148, 142, 185, 149, 147, 142, 140, 142, 141, 144, 149, 146, 143, 151, 141, 152, 144, 138, 148, 141, 146, 144, 155, 149, 146, 144, 144, 149, 141, 149, 148, 148, 148, 148, 146, 153, 148, 145, 146, 167, 148, 149, 140, 148, 151, 146, 142, 176, 146, 147, 148, 148, 162, 151, 144, 149, 144, 141, 143, 161, 142, 149, 122, 154, 151, 142, 144, 147, 145, 146, 144, 149, 148, 149, 143, 141, 151, 146, 148, 149, 145, 143, 142, 146, 141, 142, 145, 145, 145, 134, 147, 152, 144, 144, 139, 146, 147, 142, 143, 150, 147, 146, 143, 142, 150, 142, 147, 145, 140, 141, 139, 147, 141, 151, 147, 143, 151, 154, 146, 151, 143, 146, 144, 141, 144, 145, 149, 142, 139, 150, 151, 150, 144, 145, 148, 144, 157, 142, 141, 145, 147, 147, 148, 147, 150, 149, 147, 144, 143, 142, 149, 150, 148, 145, 145, 142, 146, 149, 147, 143, 144, 145, 152, 148, 144, 148, 125, 147, 153, 146, 151, 143, 140, 144, 147, 143, 144, 142, 151, 148, 146, 151, 138, 144, 151, 150, 145, 148, 107, 145, 142, 145, 145, 149, 147, 142, 150, 147, 146, 143, 141, 144, 149, 147, 145, 151, 145, 148, 116, 144, 150, 138, 122, 164, 144, 144, 144, 146, 147, 143, 143, 150, 147, 144, 138, 143, 141, 145, 143, 148, 147, 145, 149, 143, 140, 144, 143, 164, 149, 138, 159, 153, 147, 140, 152, 154, 149, 147, 158, 148, 151, 147, 139, 145, 146, 148, 144, 150, 149, 150, 144, 147, 145, 147, 146, 143, 145, 145, 155, 146, 150, 149, 153, 134, 145, 141, 145, 147, 145, 141, 144, 145, 147, 146, 149, 148, 148, 146, 154, 142, 141, 144, 152, 145, 147, 158, 128, 140, 155, 145, 141, 148, 147, 166, 150, 151, 146, 140, 168, 144, 144, 143, 144, 165, 151, 145, 144, 148, 177, 161, 144, 158, 146, 143, 150, 148, 150, 151, 145, 149, 148, 133, 148, 147, 154, 149, 153, 148, 145, 146, 141, 140, 137, 140, 152, 117, 144, 144, 144, 147, 135, 143, 146, 138, 145, 185, 153, 151, 146, 147, 140, 143, 145, 146, 141, 158, 141, 140, 146, 147, 141, 133, 145, 146, 141, 165, 150, 148, 145, 141, 160, 148, 146, 144, 152, 140, 147, 146, 153, 143, 155, 149, 163, 151, 143, 149, 148, 146, 158, 141, 144, 147, 142, 141, 140, 147, 156, 143, 148, 146, 147, 145, 151, 141, 151, 148, 143, 143, 145, 146, 146, 142, 181, 150, 146, 144, 152, 144, 145, 146, 147, 143, 142, 144, 149, 140, 144, 142, 140, 151, 140, 154, 139, 142, 147, 144, 146, 146, 143, 144, 142, 145, 143, 142, 144, 139, 148, 152, 143, 154, 144, 143, 147, 149, 141, 145, 148, 132, 159, 164, 142, 149, 145, 151, 141, 146, 147, 148, 148, 148, 141, 141, 148, 151, 140, 145, 141, 145, 146, 145, 147, 150, 140, 145, 144, 143, 150, 144, 143, 142, 144, 146, 148, 151, 147, 143, 144, 145, 141, 150, 148, 147, 135, 143, 143, 143, 141, 142, 140, 149, 144, 143, 146, 150, 142, 144, 143, 144, 137, 146, 143, 146, 158, 145, 156, 145, 145, 155, 142, 143, 151, 139, 148, 148, 143, 146, 144, 160, 142, 153, 155, 146, 149, 143, 148, 155, 146, 152, 147, 142, 144, 147, 145, 148, 147, 149, 146, 143, 144, 146, 145, 147, 140, 142, 148, 146, 143, 143, 163, 149, 144, 146, 147, 146, 158, 145, 143, 144, 144, 143, 149, 149, 144, 147, 144, 145, 141, 145, 143, 138, 149, 149, 145, 142, 150, 145, 144, 146, 148, 152, 150, 147, 148, 145, 147, 149, 149, 141, 140, 143, 142, 148, 145, 146, 145, 156, 146, 145, 144, 144, 145, 146, 148, 141, 141, 144, 149, 145, 155, 147, 145, 143, 142, 146, 143, 152, 145, 148, 143, 143, 148, 143, 150, 145, 147, 146, 141, 172, 142, 148, 147, 154, 143, 143, 148, 115, 141, 136, 143, 143, 151, 148, 148, 151, 141, 148, 146, 142, 145, 144, 151, 142, 141, 148, 146, 144, 154, 140, 144, 148, 142, 143, 143, 149, 143, 142, 145, 150, 147, 140, 147, 148, 147, 149, 135, 149, 143, 141, 138, 142, 140, 140, 144, 144, 147, 145, 139, 141, 143, 140, 146, 152, 143, 144, 145, 141, 144, 145, 139, 142, 147, 156, 138, 153, 143, 159, 148, 147, 148, 143, 146, 151, 144, 141, 147, 148, 142, 150, 147, 147, 143, 149, 147, 144, 150, 141, 144, 149, 163, 141, 145, 145, 138, 137, 144, 141, 144, 162, 142, 151, 147, 143, 153, 152, 142, 142, 142, 138, 147, 142, 146, 143, 146, 147, 140, 142, 147, 140, 154, 147, 152, 144, 144, 139, 154, 149, 141, 149, 144, 150, 145, 143, 146, 149, 142, 145, 145, 144, 145, 138, 148, 153, 151, 147, 145, 141, 140, 146, 149, 140, 143, 146, 143, 137, 147, 147, 143, 148, 136, 140, 144, 138, 146, 146, 151, 146, 148, 145, 145, 147, 141, 141, 142, 146, 159, 137, 138, 151, 144, 145, 153, 144, 141, 140, 144, 147, 148, 146, 144, 142, 140, 139, 149, 143, 145, 141, 143, 148, 142, 147, 143, 140, 146, 144, 145, 148, 145, 152, 141, 145, 141, 147, 143, 143, 150, 140, 147, 151, 145, 142, 129, 149, 142, 142, 142, 146, 143, 143, 142, 139, 142, 144, 144, 141, 146, 147, 138, 146, 152, 146, 146, 143, 142, 152, 140, 153, 143, 155, 146, 147, 139, 147, 167, 144, 141, 148, 138, 148, 150, 143, 142, 144, 149, 140, 144, 147, 145, 161, 160, 141, 147, 147, 145, 136, 144, 146, 147, 149, 145, 148, 143, 144, 147, 150, 147, 149, 148, 150, 143, 150, 140, 140, 154, 133, 141, 146, 158, 150, 152, 143, 147, 146, 153, 148, 149, 152, 147, 160, 152, 148, 149, 143, 141, 147, 162, 146, 145, 142, 140, 143, 144, 140, 142, 144, 150, 146, 144, 152, 150, 130, 145, 144, 151, 164, 150, 146, 147, 149, 151, 144, 134, 147, 147, 149, 148, 138, 145, 144, 149, 136, 146, 149, 144, 148, 146, 151, 143, 145, 143, 144, 145, 142, 150, 138, 145, 132, 145, 145, 144, 147, 148, 147, 132, 148, 149, 147, 146, 146, 137, 148, 141, 145, 142, 149, 145, 146, 148, 153, 150, 160, 146, 148, 144, 151, 149, 147, 145, 141, 145, 143, 143, 144, 145, 131, 149, 146, 150, 146, 148, 144, 145, 150, 143, 147, 161, 147, 145, 145, 149, 144, 137, 140, 144, 146, 144, 150, 154, 144, 144, 142, 146, 173, 142, 144, 149, 147, 139, 140, 148, 147, 145, 141, 147, 145, 144, 152, 146, 146, 142, 140, 134, 144, 149, 143, 144, 143, 148, 151, 147, 144, 139, 144, 146, 147, 146, 147, 150, 150, 144, 146, 149, 146, 145, 148, 148, 154, 157, 144, 146, 118, 145, 153, 141, 153, 147, 143, 148, 147, 145, 151, 143, 144, 145, 145, 145, 140, 148, 141, 156, 143, 145, 142, 145, 145, 141, 148, 145, 146, 136, 145, 144, 145, 150, 143, 147, 148, 148, 145, 144, 147, 147, 141, 150, 149, 148, 148, 144, 145, 150, 157, 143, 145, 147, 146, 146, 139, 146, 151, 153, 142, 146, 147, 149, 148, 151, 153, 129, 141, 141, 148, 144, 155, 151, 149, 144, 143, 143, 149, 139, 148, 146, 143, 147, 137, 148, 145, 141, 146, 145, 127, 160, 143, 147, 147, 146, 139, 146, 140, 147, 152, 142, 145, 144, 166, 147, 149, 148, 151, 144, 171, 148, 150, 146, 144, 144, 141, 139, 142, 148, 140, 150, 132, 147, 145, 155, 134, 145, 163, 161, 143, 149, 148, 151, 148, 150, 145, 155, 146, 165, 165, 150, 149, 150, 147, 143, 144, 143, 144, 170, 145, 144, 147, 145, 147, 138, 146, 139, 140, 142, 148, 146, 144, 148, 130, 144, 150, 152, 151, 134, 150, 147, 138, 144, 141, 147, 150, 141, 151, 145, 128, 147, 140, 149, 151, 145, 146, 133, 145, 144, 146, 158, 144, 148, 147, 147, 140, 138, 149, 144, 144, 143, 138, 150, 147, 145, 150, 147, 143, 151, 144, 143, 142, 126, 174, 140, 139, 147, 145, 148, 146, 146, 150, 139, 145, 149, 147, 139, 143, 137, 144, 146, 138, 146, 141, 146, 146, 145, 153, 146, 146, 148, 141, 141, 147, 149, 142, 149, 151, 148, 146, 141, 151, 141, 145, 150, 142, 144, 146, 147, 152, 154, 140, 144, 139, 148, 142, 146, 134, 153, 156, 145, 126, 147, 150, 164, 144, 146, 142, 139, 137, 147, 147, 139, 147, 155, 141, 149, 145, 147, 143, 147, 147, 144, 147, 141, 153, 148, 146, 148, 154, 151, 148, 145, 149, 144, 157, 139, 144, 140, 151, 149, 139, 144, 153, 161, 145, 147, 142, 142, 151, 146, 139, 156, 142, 148, 142, 145, 134, 145, 145, 147, 150, 142, 145, 144, 146, 149, 141, 147, 148, 146, 145, 144, 148, 139, 139, 137, 144, 150, 151, 143, 155, 149, 148, 146, 148, 146, 144, 141, 144, 138, 145, 143, 145, 145, 138, 162, 148, 152, 143, 149, 145, 146, 142, 145, 147, 150, 140, 144, 149, 156, 143, 148, 153, 143, 147, 142, 145, 151, 149, 145, 150, 142, 152, 143, 144, 149, 141, 142, 150, 142, 145, 155, 150, 147, 152, 148, 147, 154, 143, 144, 144, 148, 150, 149, 159, 152, 152, 148, 143, 153, 126, 142, 150, 154, 150, 143, 142, 145, 151, 148, 130, 134, 146, 168, 155, 148, 145, 144, 147, 154, 140, 149, 150, 139, 144, 148, 155, 146, 148, 150, 147, 132, 147, 143, 145, 152, 145, 142, 146, 145, 145, 143, 145, 150, 153, 148, 145, 143, 144, 149, 146, 148, 148, 151, 148, 142, 148, 149, 140, 142, 148, 142, 148, 140, 143, 146, 140, 147, 147, 146, 146, 141, 153, 144, 146, 146, 143, 152, 145, 143, 144, 152, 140, 142, 152, 138, 145, 145, 150, 147, 149, 150, 147, 146, 150, 147, 144, 147, 137, 144, 143, 144, 140, 144, 148, 144, 145, 148, 136, 139, 144, 146, 150, 147, 138, 156, 142, 148, 153, 144, 165, 149, 143, 149, 145, 149, 153, 151, 143, 151, 143, 148, 140, 144, 148, 146, 145, 144, 146, 148, 139, 151, 149, 163, 149, 148, 144, 149, 140, 146, 147, 148, 144, 143, 140, 150, 143, 146, 147, 138, 142, 152, 149, 145, 148, 152, 147, 149, 144, 149, 148, 142, 147, 149, 148, 148, 147, 142, 144, 150, 141, 145, 147, 139, 149, 149, 147, 142, 144, 139, 144, 143, 149, 140, 146, 146, 148, 145, 142, 141, 150, 149, 157, 142, 152, 157, 152, 149, 149, 144, 147, 143, 144, 138, 146, 149, 145, 134, 145, 142, 140, 142, 149, 129, 146, 143, 151, 148, 146, 141, 143, 145, 147, 154, 139, 147, 152, 146, 149, 147, 145, 150, 144, 149, 144, 142, 143, 143, 142, 145, 141, 144, 144, 109, 139, 151, 144, 147, 146, 150, 127, 148, 145, 148, 148, 159, 148, 146, 144, 151, 147, 147, 140, 156, 133, 150, 146, 146, 150, 142, 143, 144, 143, 137, 140, 143, 140, 142, 145, 143, 148, 146, 147, 144, 150, 140, 143, 146, 146, 146, 144, 132, 154, 149, 142, 148, 144, 150, 137, 145, 140, 143, 145, 145, 143, 136, 145, 148, 139, 144, 130, 131, 150, 148, 150, 153, 142, 146, 143, 149, 152, 146, 146, 146, 153, 144, 157, 144, 144, 145, 152, 145, 150, 144, 139, 136, 148, 148, 143, 140, 147, 147, 142, 153, 145, 143, 145, 144, 142, 144, 151, 148, 145, 148, 149, 146, 144, 146, 153, 147, 145, 144, 143, 146, 157, 148, 144, 150, 145, 136, 148, 145, 143, 145, 143, 149, 144, 150, 136, 146, 147, 147, 141, 184, 145, 153, 138, 148, 144, 150, 146, 147, 140, 142, 145, 144, 146, 141, 145, 148, 146, 148, 143, 149, 143, 142, 146, 143, 143, 148, 154, 152, 152, 155, 146, 144, 145, 146, 148, 146, 150, 154, 147, 136, 150, 141, 148, 148, 156, 141, 137, 150, 144, 140, 140, 141, 144, 148, 141, 146, 148, 145, 147, 148, 139, 158, 143, 149, 139, 143, 150, 145, 161, 141, 154, 141, 137, 144, 145, 147, 136, 149, 147, 155, 138, 143, 149, 140, 150, 143, 151, 135, 133, 145, 150, 138, 136, 149, 146, 144, 140, 144, 154, 144, 145, 140, 147, 145, 151, 138, 141, 146, 144, 146, 146, 148, 137, 144, 148, 143, 148, 148, 144, 146, 142, 149, 145, 143, 149, 154, 152, 157, 141, 145, 141, 138, 146, 143, 144, 144, 139, 149, 149, 146, 131, 144, 140, 150, 146, 150, 154, 146, 128, 146, 144, 146, 151, 142, 138, 145, 142, 140, 140, 143, 145, 150, 147, 149, 152, 144, 146, 145, 149, 154, 138, 162, 146, 147, 146, 144, 157, 145, 144, 139, 163, 139, 161, 145, 144, 146, 145, 135, 151, 153, 141, 148, 152, 147, 159, 150, 145, 151, 142, 148, 145, 137, 127, 149, 145, 146, 146, 147, 149, 151, 144, 152, 143, 140, 145, 149, 143, 164, 142, 150, 147, 144, 144, 149, 141, 152, 139, 146, 145, 145, 148, 149, 142, 145, 157, 149, 140, 147, 136, 140, 147, 153, 151, 135, 150, 140, 147, 141, 142, 155, 151, 147, 147, 144, 145, 159, 149, 151, 154, 135, 145, 148, 134, 151, 143, 145, 147, 140, 150, 157, 146, 142, 144, 131, 146, 151, 146, 144, 142, 147, 136, 151, 150, 150, 146, 151, 158, 147, 155, 134, 140, 152, 147, 146, 147, 151, 160, 137, 146, 145, 146, 139, 149, 139, 150, 145, 151, 143, 140, 149, 144, 149, 144, 143, 157, 145, 150, 144, 151, 140, 143, 146, 147, 140, 146, 144, 142, 145, 146, 146, 143, 148, 151, 150, 147, 147, 137, 140, 148, 159, 141, 151, 147, 148, 148, 144, 145, 146, 147, 148, 138, 149, 144, 143, 147, 132, 145, 147, 144, 147, 145, 141, 150, 155, 146, 134, 146, 145, 145, 133, 141, 142, 163, 148, 144, 152, 137, 148, 147, 144, 138, 161, 138, 147, 155, 147, 151, 145, 143, 146, 145, 144, 148, 151, 145, 151, 146, 142, 148, 140, 145, 150, 147, 142, 147, 131, 142, 148, 150, 147, 148, 145, 146, 147, 147, 144, 119, 143, 143, 149, 145, 144, 145, 146, 140, 146, 148, 149, 146, 139, 145, 141, 143, 151, 150, 150, 144, 145, 150, 147, 142, 148, 147, 143, 154, 147, 150, 143, 149, 143, 147, 140, 151, 147, 146, 149, 146, 140, 153, 147, 147, 137, 143, 145, 145, 142, 139, 144, 147, 147, 139, 149, 141, 143, 140, 140, 148, 155, 146, 153, 142, 146, 145, 143, 128, 135, 154, 145, 161, 138, 151, 142, 158, 132, 140, 153, 143, 140, 146, 144, 147, 149, 153, 146, 151, 144, 149, 147, 150, 146, 140, 150, 138, 146, 138, 144, 148, 147, 143, 146, 144, 142, 150, 146, 149, 144, 163, 148, 145, 143, 144, 135, 149, 147, 146, 143, 142, 141, 144, 150, 139, 143, 150, 147, 140, 142, 145, 146, 145, 147, 144, 143, 146, 151, 151, 143, 144, 144, 149, 138, 142, 140, 156, 137, 135, 147, 139, 152, 147, 141, 149, 142, 148, 136, 143, 148, 139, 160, 157, 133, 149, 150, 136, 148, 130, 144, 149, 130, 144, 136, 144, 144, 153, 149, 186, 154, 138, 139, 165, 136, 142, 153, 137, 138, 146, 146, 142, 155, 122, 150, 145, 146, 130, 145, 143, 155, 147, 178, 149, 149, 146, 138, 137, 148, 162, 141, 133, 156, 142, 153, 147, 136, 151, 148, 164, 149, 152, 187, 143, 162, 155, 150, 136, 152, 145, 148, 151, 147, 172, 154, 151, 140, 145, 141, 159, 149, 151, 141, 152, 140, 140, 148, 229, 152, 145, 135, 143, 145, 160, 141, 155, 145, 155, 183, 162, 138, 148, 142, 152, 146, 137, 133, 141, 147, 145, 152, 140, 148, 140, 161, 141, 144, 145, 149, 159, 149, 164, 156, 145, 163, 142, 155, 128, 152, 165, 133, 147, 147, 145, 139, 151, 145, 142, 147, 144, 146, 140, 144, 149, 144, 146, 139, 151, 147, 152, 175, 143, 145, 140, 149, 143, 133, 142, 101, 153, 164, 146, 133, 153, 143, 143, 138, 117, 144, 150, 149, 130, 158, 156, 138, 166, 129, 164, 123, 142, 150, 148, 141, 170, 148, 130, 143, 151, 146, 144, 153, 137, 125, 143, 111, 142, 137, 187, 145, 157, 154, 139, 143, 157, 145, 172, 146, 145, 147, 138, 150, 151, 151, 141, 145, 153, 143, 145, 150, 134, 137, 155, 166, 148, 140, 144, 151, 128, 151, 152, 147, 142, 131, 143, 140, 143, 144, 139, 139, 149, 141, 155, 155, 148, 142, 149, 149, 144, 155, 153, 135, 155, 147, 151, 147, 159, 161, 150, 153, 151, 147, 143, 136, 146, 145, 145, 148, 115, 141, 142, 165, 153, 147, 156, 149, 151, 133, 140, 147, 142, 140, 146, 155, 150, 139, 163, 143, 166, 150, 153, 141, 141, 156, 143, 154, 146, 145, 150, 145, 148, 141, 150, 157, 148, 148, 147, 152, 147, 147, 139, 145, 129, 157, 147, 154, 150, 151, 139, 147, 151, 153, 158, 142, 142, 151, 145, 147, 156, 149, 151, 137, 150, 152, 143, 139, 152, 137, 150, 143, 145, 155, 138, 138, 145, 137, 141, 146, 150, 135, 154, 152, 141, 153, 143, 152, 150, 147, 150, 138, 163, 150, 158, 144, 144, 137, 152, 142, 145, 140, 154, 145, 151, 148, 153, 146, 140, 149, 159, 142, 147, 146, 138, 145, 150, 147, 152, 152, 153, 147, 156, 141, 149, 137, 138, 138, 137, 144, 149, 140, 153, 145, 141, 144, 145, 145, 140, 141, 147, 150, 149, 156, 121, 150, 144, 151, 163, 136, 135, 140, 156, 149, 158, 157, 144, 144, 128, 140, 146, 134, 130, 147, 146, 151, 150, 145, 142, 145, 146, 144, 145, 140, 159, 145, 148, 143, 153, 158, 144, 149, 159, 146, 145, 145, 146, 163, 144, 147, 144, 135, 132, 160, 149, 152, 140, 147, 147, 141, 149, 142, 144, 145, 131, 141, 168, 153, 145, 146, 145, 144, 142, 142, 142, 143, 154, 143, 149, 153, 153, 141, 149, 168, 139, 158, 146, 145, 145, 157, 154, 138, 154, 146, 152, 144, 154, 152, 145, 139, 143, 141, 150, 139, 140, 144, 152, 143, 148, 166, 145, 138, 153, 164, 137, 139, 142, 146, 142, 148, 153, 151, 138, 153, 144, 151, 134, 137, 144, 148, 139, 145, 154, 140, 123, 145, 138, 155, 144, 144, 136, 145, 141, 144, 145, 148, 138, 147, 143, 145, 147, 154, 143, 143, 143, 152, 142, 136, 149, 143, 148, 142, 148, 160, 150, 159, 162, 137, 145, 144, 142, 147, 159, 139, 159, 159, 165, 144, 141, 146, 151, 161, 153, 146, 143, 165, 139, 143, 130, 133, 138, 141, 142, 143, 119, 141, 137, 138, 147, 147, 148, 146, 137, 144, 146, 152, 139, 148, 148, 145, 147, 155, 151, 148, 144, 136, 145, 148, 153, 149, 152, 146, 143, 148, 143, 136, 153, 145, 145, 137, 144, 129, 137, 148, 144, 154, 142, 148, 162, 145, 149, 138, 148, 147, 141, 143, 144, 143, 143, 146, 138, 172, 150, 142, 157, 147, 146, 137, 150, 138, 151, 152, 141, 150, 145, 148, 139, 149, 147, 139, 154, 139, 153, 146, 143, 143, 134, 140, 139, 147, 141, 158, 136, 138, 137, 147, 134, 140, 160, 146, 140, 152, 151, 150, 141, 134, 139, 147, 145, 152, 143, 146, 145, 145, 134, 151, 159, 149, 140, 138, 150, 145, 137, 140, 147, 138, 144, 149, 130, 143, 141, 146, 145, 154, 151, 140, 149, 146, 149, 143, 161, 146, 147, 142, 144, 151, 145, 144, 133, 141, 155, 143, 137, 139, 145, 136, 162, 141, 138, 131, 143, 148, 148, 159, 133, 144, 137, 142, 148, 157, 144, 175, 148, 142, 147, 149, 143, 140, 146, 88, 147, 137, 149, 143, 150, 146, 127, 135, 138, 140, 134, 147, 167, 144, 131, 149, 148, 147, 116, 161, 140, 145, 143, 130, 131, 132, 135, 146, 145, 145, 148, 153, 128, 160, 147, 151, 141, 145, 141, 153, 157, 146, 126, 146, 144, 144, 132, 149, 149, 141, 145, 143, 139, 145, 143, 148, 143, 126, 138, 133, 140, 135, 156, 133, 151, 141, 168, 141, 147, 133, 144, 140, 141, 150, 162, 180, 152, 146, 149, 145, 141, 139, 146, 145, 153, 142, 161, 150, 151, 137, 135, 151, 150, 143, 141, 149, 141, 143, 139, 146, 132, 143, 145, 149, 152, 140, 154, 149, 146, 138, 138, 145, 149, 136, 147, 152, 142, 146, 136, 150, 138, 153, 147, 151, 154, 157, 135, 150, 143, 147, 150, 155, 141, 138, 126, 155, 147, 162, 144, 157, 144, 147, 130, 157, 150, 137, 164, 142, 146, 136, 133, 145, 161, 142, 148, 150, 147, 143, 141, 146, 145, 147, 137, 132, 147, 143, 142, 146, 145, 148, 141, 172, 162, 135, 146, 147, 130, 150, 155, 157, 140, 152, 142, 157, 147, 148, 152, 146, 141, 162, 147, 145, 151, 145, 141, 152, 154, 153, 149, 152, 132, 150, 156, 148, 142, 140, 136, 144, 132, 144, 146, 120, 148, 148, 166, 126, 154, 140, 144, 152, 144, 146, 149, 159, 141, 131, 149, 140, 146, 136, 135, 155, 142, 156, 153, 161, 158, 149, 151, 151, 138, 143, 166, 151, 144, 150, 129, 143, 146, 142, 143, 154, 140, 145, 141, 136, 154, 152, 141, 149, 145, 140, 146, 152, 156, 149, 144, 140, 144, 150, 145, 152, 150, 163, 142, 151, 145, 152, 117, 161, 140, 151, 150, 146, 146, 136, 150, 207, 149, 139, 148, 126, 158, 146, 152, 143, 147, 148, 160, 149, 140, 146, 133, 152, 149, 162, 140, 153, 161, 146, 161, 143, 123, 155, 149, 151, 142, 134, 145, 146, 145, 163, 150, 160, 142, 156, 151, 152, 148, 140, 148, 148, 140, 139, 141, 149, 156, 146, 147, 140, 147, 136, 146, 149, 138, 145, 142, 144, 141, 133, 150, 143, 145, 162, 149, 148, 150, 166, 132, 127, 127, 155, 150, 150, 154, 140, 149, 143, 134, 188, 175, 154, 163, 154, 134, 148, 152, 146, 145, 146, 156, 144, 147, 145, 148, 156, 150, 139, 153, 133, 142, 152, 142, 180, 132, 150, 143, 142, 145, 136, 138, 139, 150, 148, 146, 141, 146, 140, 130, 151, 145, 141, 148, 139, 140, 157, 144, 169, 136, 156, 145, 151, 147, 145, 147, 135, 143, 145, 140, 150, 156, 137, 125, 148, 160, 137, 142, 155, 149, 153, 145, 140, 149, 149, 145, 132, 159, 135, 138, 156, 149, 136, 152, 142, 151, 150, 139, 141, 140, 145, 141, 137, 150, 149, 146, 130, 147, 157, 144, 122, 146, 144, 178, 150, 143, 149, 148, 140, 148, 148, 143, 142, 136, 119, 144, 146, 145, 142, 151, 142, 147, 148, 144, 140, 150, 139, 144, 143, 140, 143, 130, 139, 146, 133, 146, 152, 145, 145, 140, 143, 148, 145, 130, 142, 141, 149, 149, 135, 141, 150, 146, 141, 161, 133, 136, 144, 147, 146, 147, 146, 150, 145, 142, 138, 149, 158, 144, 145, 145, 143, 152, 151, 133, 144, 150, 146, 146, 151, 137, 154, 144, 146, 139, 163, 144, 142, 156, 153, 148, 149, 135, 145, 145, 146, 134, 141, 147, 142, 141, 145, 140, 145, 141, 143, 145, 148, 151, 141, 141, 144, 143, 137, 152, 145, 144, 148, 150, 145, 147, 144, 145, 150, 139, 146, 148, 145, 137, 145, 145, 159, 142, 139, 150, 150, 148, 146, 146, 141, 140, 137, 145, 150, 148, 141, 154, 151, 145, 155, 153, 140, 149, 143, 144, 151, 158, 145, 144, 146, 140, 135, 149, 152, 143, 152, 136, 145, 149, 128, 140, 131, 196, 148, 153, 148, 148, 147, 146, 146, 145, 149, 145, 154, 143, 141, 155, 148, 141, 160, 152, 142, 155, 150, 146, 151, 152, 152, 155, 138, 164, 147, 144, 152, 152, 146, 136, 147, 149, 156, 138, 156, 152, 143, 146, 153, 152, 148, 145, 147, 140, 149, 144, 150, 155, 141, 147, 149, 155, 137, 150, 144, 140, 148, 153, 141, 146, 147, 137, 147, 150, 144, 142, 146, 149, 151, 152, 150, 141, 144, 140, 134, 146, 135, 149, 143, 150, 149, 145, 141, 135, 153, 129, 142, 156, 140, 145, 145, 142, 138, 143, 150, 145, 140, 149, 140, 141, 143, 139, 140, 145, 135, 147, 144, 139, 164, 169, 140, 152, 138, 123, 130, 152, 143, 140, 146, 149, 151, 148, 150, 153, 131, 165, 141, 149, 146, 139, 131, 141, 126, 151, 135, 150, 151, 148, 149, 146, 130, 147, 144, 137, 131, 128, 148, 144, 144, 154, 137, 154, 136, 133, 156, 141, 165, 137, 144, 139, 153, 138, 140, 132, 155, 144, 152, 132, 149, 158, 147, 148, 160, 141, 147, 142, 132, 157, 147, 149, 154, 146, 146, 144, 157, 140, 135, 149, 156, 147, 177, 143, 152, 144, 139, 138, 139, 157, 134, 139, 180, 146, 152, 144, 143, 147, 166, 149, 138, 148, 142, 136, 144, 142, 144, 142, 148, 130, 144, 148, 150, 147, 144, 147, 112, 159, 146, 135, 147, 143, 146, 144, 145, 145, 143, 137, 151, 144, 151, 141, 138, 136, 151, 141, 141, 145, 146, 147, 147, 136, 144, 144, 140, 136, 148, 141, 145, 139, 145, 140, 161, 147, 148, 141, 148, 145, 143, 127, 145, 160, 148, 139, 141, 142, 147, 154, 155, 136, 133, 153, 145, 135, 149, 154, 157, 150, 152, 129, 170, 142, 136, 140, 142, 146, 144, 164, 142, 156, 149, 145, 141, 142, 150, 130, 152, 147, 156, 152, 151, 144, 152, 144, 139, 138, 147, 163, 151, 157, 146, 150, 145, 147, 147, 148, 139, 170, 157, 137, 139, 153, 150, 140, 135, 141, 144, 142, 143, 146, 148, 149, 140, 148, 144, 151, 151, 140, 141, 147, 138, 162, 131, 149, 141, 151, 141, 146, 145, 160, 151, 148, 145, 158, 148, 148, 151, 141, 148, 149, 147, 140, 155, 146, 139, 149, 146, 147, 146, 146, 156, 148, 155, 145, 146, 147, 142, 137, 141, 144, 149, 149, 146, 142, 148, 147, 146, 145, 147, 143, 139, 143, 145, 144, 152, 144, 159, 146, 155, 143, 150, 144, 130, 147, 144, 143, 152, 152, 157, 146, 145, 163, 159, 149, 142, 165, 145, 139, 150, 143, 143, 148, 144, 153, 154, 143, 145, 140, 146, 149, 160, 136, 149, 148, 147, 143, 141, 147, 148, 145, 143, 146, 159, 146, 142, 145, 149, 142, 136, 146, 143, 147, 144, 146, 145, 145, 144, 146, 142, 154, 152, 153, 148, 140, 143, 148, 146, 145, 148, 147, 150, 148, 141, 181, 150, 152, 142, 145, 140, 150, 140, 148, 139, 143, 135, 149, 145, 150, 151, 150, 148, 144, 146, 148, 144, 140, 142, 143, 148, 141, 139, 141, 140, 138, 143, 148, 146, 143, 143, 167, 143, 149, 147, 143, 147, 139, 145, 145, 147, 144, 146, 147, 143, 136, 144, 136, 133, 135, 152, 147, 152, 142, 151, 150, 151, 157, 149, 160, 146, 143, 145, 145, 150, 139, 149, 144, 144, 150, 149, 147, 141, 162, 150, 142, 147, 152, 141, 145, 150, 148, 146, 142, 145, 141, 147, 146, 146, 144, 147, 142, 148, 142, 143, 148, 137, 142, 138, 144, 147, 171, 148, 147, 144, 149, 148, 140, 143, 142, 144, 148, 144, 155, 144, 145, 146, 151, 147, 137, 152, 144, 143, 143, 156, 144, 140, 150, 141, 149, 145, 142, 149, 142, 142, 139, 142, 141, 148, 130, 147, 140, 141, 149, 148, 143, 148, 143, 133, 146, 145, 154, 145, 145, 129, 145, 141, 136, 145, 150, 158, 143, 150, 140, 142, 145, 152, 146, 147, 144, 144, 136, 138, 143, 142, 152, 149, 148, 140, 144, 150, 144, 147, 143, 126, 152, 145, 148, 145, 143, 154, 142, 150, 145, 145, 142, 147, 145, 150, 139, 150, 150, 146, 144, 145, 136, 146, 148, 147, 146, 151, 145, 150, 149, 156, 149, 150, 147, 144, 150, 151, 142, 145, 148, 152, 145, 149, 146, 152, 147, 133, 144, 149, 141, 145, 149, 147, 149, 148, 151, 146, 141, 156, 135, 150, 148, 147, 147, 145, 145, 134, 153, 156, 154, 149, 142, 143, 143, 145, 142, 150, 151, 140, 142, 142, 136, 148, 150, 142, 143, 148, 143, 146, 151, 146, 148, 146, 147, 147, 148, 151, 156, 155, 141, 147, 149, 153, 156, 148, 146, 143, 141, 144, 140, 145, 152, 147, 153, 153, 133, 154, 140, 150, 139, 141, 159, 145, 143, 150, 155, 140, 145, 153, 151, 150, 153, 143, 146, 151, 148, 142, 144, 145, 145, 152, 135, 153, 142, 145, 145, 147, 146, 148, 148, 152, 149, 141, 147, 143, 149, 146, 139, 142, 148, 141, 143, 144, 150, 146, 137, 149, 139, 147, 143, 151, 161, 145, 154, 141, 153, 161, 155, 142, 148, 138, 146, 146, 141, 147, 141, 147, 147, 142, 144, 147, 150, 139, 145, 134, 147, 150, 149, 142, 144, 146, 144, 143, 165, 145, 131, 147, 146, 150, 147, 146, 150, 147, 147, 148, 146, 149, 149, 144, 143, 146, 144, 151, 149, 147, 145, 146, 140, 145, 144, 142, 141, 150, 146, 143, 140, 144, 153, 156, 148, 138, 141, 144, 151, 144, 147, 138, 147, 148, 148, 146, 143, 160, 140, 142, 144, 146, 146, 159, 146, 161, 140, 155, 153, 143, 160, 146, 134, 145, 147, 141, 144, 145, 146, 143, 148, 149, 142, 141, 137, 153, 145, 147, 147, 145, 148, 152, 147, 143, 143, 148, 144, 153, 156, 149, 142, 154, 147, 154, 148, 148, 153, 150, 160, 143, 148, 134, 144, 129, 148, 143, 157, 147, 143, 143, 142, 152, 138, 148, 136, 144, 145, 179, 146, 155, 163, 152, 138, 143, 147, 152, 147, 153, 147, 190, 157, 147, 158, 149, 142, 141, 147, 136, 148, 150, 146, 143, 150, 135, 145, 144, 151, 142, 146, 148, 150, 142, 146, 147, 131, 146, 146, 142, 143, 151, 142, 146, 144, 146, 144, 142, 149, 146, 152, 144, 143, 147, 146, 143, 152, 143, 143, 146, 141, 140, 147, 187, 156, 144, 146, 146, 143, 143, 143, 147, 149, 143, 149, 142, 144, 145, 152, 150, 146, 147, 152, 142, 144, 145, 152, 144, 150, 145, 152, 145, 142, 148, 148, 147, 143, 147, 131, 147, 160, 117, 145, 163, 138, 148, 142, 135, 147, 146, 147, 152, 149, 142, 135, 143, 149, 141, 142, 148, 142, 145, 150, 149, 146, 133, 150, 131, 136, 146, 136, 144, 153, 153, 146, 149, 147, 136, 152, 146, 136, 148, 144, 141, 145, 134, 150, 146, 143, 144, 149, 156, 149, 129, 141, 141, 161, 150, 147, 123, 153, 146, 136, 146, 147, 146, 144, 150, 147, 138, 145, 145, 149, 145, 137, 140, 149, 147, 147, 138, 145, 140, 147, 133, 147, 143, 147, 145, 149, 137, 140, 141, 145, 146, 132, 157, 146, 147, 138, 146, 139, 136, 147, 141, 145, 145, 142, 139, 146, 144, 134, 149, 147, 144, 139, 138, 120, 148, 146, 147, 144, 146, 140, 156, 144, 135, 152, 153, 150, 142, 151, 149, 139, 146, 147, 140, 149, 151, 145, 156, 142, 157, 154, 144, 150, 148, 144, 155, 137, 152, 146, 147, 149, 146, 146, 150, 130, 168, 146, 150, 143, 143, 144, 154, 152, 149, 143, 147, 134, 154, 151, 147, 142, 147, 149, 150, 147, 150, 149, 142, 134, 147, 148, 142, 145, 149, 150, 160, 150, 147, 151, 145, 149, 152, 143, 143, 138, 143, 150, 150, 147, 150, 141, 146, 137, 144, 140, 140, 140, 148, 140, 146, 137, 148, 150, 147, 156, 153, 145, 151, 160, 136, 143, 154, 147, 139, 154, 151, 144, 145, 163, 137, 148, 136, 150, 132, 141, 143, 150, 145, 149, 147, 144, 125, 144, 153, 147, 146, 148, 129, 143, 145, 143, 144, 136, 149, 140, 150, 143, 148, 174, 152, 134, 150, 150, 161, 149, 139, 145, 147, 141, 145, 155, 153, 148, 145, 153, 142, 147, 148, 139, 132, 138, 143, 149, 147, 134, 142, 147, 143, 150, 131, 141, 152, 138, 131, 142, 140, 153, 149, 136, 155, 141, 139, 152, 148, 142, 147, 139, 143, 141, 143, 139, 150, 142, 160, 133, 130, 163, 148, 151, 148, 151, 146, 147, 142, 148, 136, 162, 139, 155, 149, 126, 139, 148, 161, 146, 156, 147, 152, 137, 155, 147, 133, 148, 144, 147, 158, 149, 141, 157, 160, 141, 143, 153, 147, 134, 142, 150, 154, 141, 154, 146, 144, 134, 149, 144, 125, 149, 150, 151, 143, 161, 152, 151, 141, 147, 141, 145, 128, 143, 143, 143, 151, 148, 166, 149, 144, 152, 147, 140, 141, 145, 135, 142, 142, 140, 152, 149, 147, 146, 145, 145, 147, 127, 147, 144, 145, 155, 156, 146, 159, 163, 138, 152, 147, 148, 142, 148, 137, 146, 143, 147, 149, 154, 134, 150, 147, 148, 142, 144, 154, 141, 146, 137, 145, 147, 140, 148, 140, 147, 152, 145, 147, 144, 147, 152, 156, 142, 137, 140, 148, 139, 155, 127, 135, 146, 152, 152, 145, 156, 132, 165, 147, 157, 146, 153, 143, 144, 129, 136, 137, 139, 138, 150, 134, 166, 144, 147, 150, 140, 148, 143, 141, 143, 147, 143, 144, 137, 137, 145, 150, 140, 148, 142, 138, 148, 141, 145, 146, 144, 159, 143, 139, 147, 168, 145, 151, 151, 148, 137, 138, 152, 143, 126, 149, 148, 145, 146, 139, 152, 137, 135, 160, 148, 125, 146, 143, 148, 148, 139, 146, 141, 148, 144, 147, 137, 144, 149, 135, 153, 160, 152, 147, 148, 143, 145, 149, 150, 148, 144, 147, 146, 149, 146, 132, 146, 143, 153, 145, 135, 157, 155, 143, 144, 147, 145, 141, 142, 137, 141, 147, 144, 145, 141, 143, 144, 146, 145, 133, 153, 154, 151, 144, 141, 148, 143, 141, 143, 145, 157, 144, 151, 146, 145, 150, 140, 151, 146, 150, 140, 143, 145, 139, 154, 146, 147, 146, 140, 128, 142, 141, 150, 155, 151, 145, 161, 141, 146, 143, 145, 150, 144, 146, 142, 146, 144, 152, 149, 150, 147, 148, 149, 146, 151, 145, 148, 147, 144, 138, 125, 147, 152, 145, 158, 151, 149, 146, 145, 144, 119, 141, 146, 145, 146, 137, 141, 138, 144, 140, 146, 140, 146, 144, 153, 159, 147, 151, 140, 150, 142, 149, 141, 144, 146, 146, 145, 149, 149, 151, 149, 151, 151, 146, 151, 141, 150, 144, 147, 149, 150, 152, 151, 142, 148, 142, 143, 146, 153, 142, 152, 150, 147, 143, 143, 155, 145, 144, 142, 146, 147, 144, 149, 158, 135, 143, 147, 145, 147, 144, 136, 145, 150, 147, 136, 146, 142, 144, 144, 152, 145, 141, 151, 138, 141, 161, 143, 149, 145, 146, 148, 151, 144, 133, 148, 152, 140, 145, 144, 134, 147, 142, 138, 142, 156, 151, 144, 148, 153, 145, 148, 145, 149, 148, 142, 142, 146, 146, 144, 148, 145, 142, 143, 147, 144, 147, 141, 148, 142, 144, 156, 142, 144, 167, 150, 129, 145, 143, 153, 149, 123, 147, 146, 152, 155, 144, 143, 145, 145, 154, 146, 176, 142, 149, 140, 123, 142, 167, 143, 168, 148, 150, 141, 150, 176, 142, 116, 140, 143, 142, 151, 144, 148, 135, 148, 156, 150, 164, 144, 144, 155, 150, 137, 147, 136, 158, 141, 154, 166, 146, 145, 131, 136, 152, 135, 147, 126, 152, 148, 133, 154, 128, 127, 142, 139, 124, 154, 153, 144, 151, 142, 143, 145, 147, 167, 134, 146, 147, 149, 134, 144, 142, 162, 147, 142, 157, 138, 129, 153, 135, 144, 139, 147, 146, 145, 142, 138, 162, 203, 144, 140, 135, 151, 156, 147, 155, 142, 154, 125, 153, 149, 146, 139, 155, 143, 142, 159, 140, 159, 133, 147, 149, 139, 154, 139, 146, 139, 158, 136, 138, 145, 143, 146, 141, 142, 132, 141, 157, 143, 136, 130, 131, 135, 139, 169, 150, 145, 165, 146, 146, 138, 188, 131, 161, 129, 138, 139, 156, 140, 145, 152, 144, 161, 142, 141, 152, 139, 148, 146, 139, 136, 153, 148, 138, 149, 153, 142, 153, 140, 149, 140, 143, 129, 175, 137, 137, 134, 137, 142, 146, 146, 130, 146, 139, 140, 144, 142, 146, 137, 137, 186, 148, 143, 174, 160, 140, 152, 140, 135, 156, 143, 127, 148, 142, 154, 163, 145, 163, 146, 144, 142, 149, 139, 149, 133, 151, 150, 142, 122, 133, 146, 147, 136, 131, 144, 141, 150, 154, 155, 141, 145, 146, 155, 135, 148, 150, 146, 163, 129, 148, 153, 146, 149, 134, 141, 159, 153, 146, 141, 131, 132, 147, 156, 144, 155, 143, 150, 148, 149, 147, 147, 147, 144, 144, 146, 146, 150, 147, 148, 148, 150, 145, 144, 145, 163, 147, 156, 146, 147, 148, 149, 146, 140, 152, 145, 139, 148, 146, 144, 155, 147, 118, 145, 139, 141, 146, 146, 146, 145, 149, 145, 148, 152, 144, 104, 144, 141, 146, 146, 142, 148, 150, 183, 146, 143, 150, 146, 147, 148, 141, 148, 175, 150, 153, 147, 146, 146, 146, 144, 144, 146, 146, 144, 144, 145, 147, 179, 151, 150, 149, 144, 126, 151, 143, 145, 145, 142, 146, 147, 146, 147, 172, 150, 144, 145, 146, 142, 145, 144, 145, 148, 144, 143, 145, 148, 149, 146, 143, 146, 155, 144, 142, 148, 153, 146, 141, 143, 147, 143, 147, 147, 145, 146, 154, 143, 145, 148, 142, 147, 148, 147, 146, 150, 154, 147, 147, 149, 144, 152, 149, 153, 141, 150, 144, 143, 150, 150, 141, 150, 143, 148, 143, 143, 150, 147, 145, 147, 143, 145, 143, 147, 154, 144, 147, 141, 136, 148, 142, 147, 148, 144, 149, 143, 145, 149, 144, 145, 149, 143, 140, 151, 151, 143, 145, 149, 155, 144, 149, 149, 144, 146, 137, 146, 142, 149, 147, 145, 140, 146, 147, 152, 146, 146, 150, 144, 139, 143, 148, 147, 145, 139, 144, 145, 145, 146, 148, 148, 144, 147, 148, 145, 149, 143, 146, 143, 146, 148, 146, 142, 146, 143, 145, 150, 150, 148, 147, 141, 151, 146, 146, 140, 162, 138, 145, 146, 143, 148, 147, 146, 144, 145, 147, 145, 146, 150, 148, 143, 144, 144, 145, 145, 146, 148, 142, 143, 145, 145, 146, 143, 142, 133, 145, 145, 143, 146, 143, 147, 153, 145, 151, 149, 153, 142, 144, 145, 142, 144, 144, 145, 149, 145, 146, 145, 145, 143, 146, 147, 150, 144, 146, 159, 149, 147, 145, 142, 147, 145, 145, 148, 150, 148, 150, 144, 148, 145, 152, 147, 93, 148, 142, 145, 146, 141, 145, 156, 147, 140, 144, 147, 146, 144, 144, 133, 152, 146, 147, 144, 160, 150, 149, 140, 141, 158, 146, 154, 145, 147, 143, 149, 143, 150, 150, 149, 144, 143, 146, 152, 143, 153, 148, 146, 148, 146, 148, 147, 141, 143, 147, 146, 146, 143, 146, 146, 143, 145, 148, 149, 147, 147, 148, 150, 145, 142, 147, 142, 142, 142, 152, 143, 136, 149, 139, 144, 141, 146, 148, 143, 145, 135, 147, 160, 147, 146, 144, 146, 142, 139, 148, 142, 141, 145, 148, 146, 147, 145, 140, 151, 161, 142, 154, 144, 146, 147, 147, 142, 150, 144, 143, 145, 147, 144, 141, 144, 149, 141, 140, 148, 148, 144, 142, 141, 141, 147, 149, 146, 146, 144, 147, 149, 149, 144, 144, 142, 143, 147, 147, 143, 148, 146, 140, 145, 147, 148, 145, 143, 144, 150, 142, 148, 147, 147, 147, 140, 162, 143, 147, 148, 147, 147, 150, 144, 143, 145, 149, 146, 144, 145, 146, 147, 144, 145, 140, 145, 146, 148, 147, 145, 150, 147, 140, 148, 146, 142, 143, 143, 140, 144, 145, 160, 151, 147, 145, 144, 144, 146, 149, 140, 146, 150, 142, 149, 155, 151, 140, 146, 145, 150, 146, 144, 145, 142, 153, 144, 147, 146, 147, 139, 148, 137, 144, 146, 148, 149, 145, 147, 147, 149, 141, 145, 144, 137, 143, 149, 148, 150, 143, 144, 147, 145, 146, 143, 156, 138, 149, 150, 148, 149, 146, 151, 145, 142, 149, 144, 150, 145, 143, 141, 147, 140, 151, 142, 144, 145, 149, 146, 145, 142, 137, 147, 149, 146, 142, 163, 143, 145, 146, 150, 150, 148, 149, 146, 151, 146, 145, 141, 145, 148, 143, 150, 142, 141, 149, 146, 144, 144, 144, 141, 145, 148, 150, 145, 146, 147, 149, 148, 146, 145, 144, 145, 150, 149, 153, 147, 145, 143, 146, 138, 149, 142, 142, 149, 144, 146, 150, 154, 149, 146, 146, 147, 145, 144, 150, 145, 149, 153, 145, 147, 147, 149, 148, 147, 146, 147, 144, 147, 147, 147, 147, 149, 147, 152, 149, 145, 148, 147, 140, 146, 149, 145, 141, 149, 148, 144, 145, 145, 145, 146, 144, 150, 149, 144, 146, 146, 145, 150, 152, 151, 152, 140, 146, 149, 150, 148, 141, 142, 148, 146, 146, 144, 151, 144, 142, 149, 145, 147, 145, 142, 146, 146, 159, 136, 147, 149, 153, 148, 139, 150, 143, 145, 145, 143, 145, 142, 145, 144, 141, 144, 150, 149, 153, 146, 149, 148, 145, 145, 153, 151, 145, 144, 142, 146, 142, 144, 145, 145, 142, 144, 148, 145, 142, 143, 147, 140, 142, 144, 145, 141, 141, 124, 143, 148, 157, 154, 146, 144, 142, 140, 146, 145, 147, 146, 148, 144, 146, 148, 146, 139, 145, 137, 142, 142, 139, 134, 146, 139, 144, 146, 151, 139, 144, 148, 141, 144, 139, 150, 146, 158, 149, 142, 156, 142, 140, 143, 133, 144, 140, 140, 134, 146, 137, 148, 166, 142, 142, 141, 147, 151, 133, 152, 150, 145, 149, 156, 145, 138, 169, 144, 145, 140, 142, 148, 147, 158, 144, 148, 146, 142, 152, 156, 145, 150, 150, 148, 157, 147, 147, 146, 140, 143, 148, 149, 138, 149, 137, 148, 145, 151, 140, 143, 146, 149, 141, 143, 155, 142, 139, 145, 145, 138, 127, 138, 147, 140, 141, 144, 144, 147, 165, 154, 147, 161, 141, 143, 139, 143, 143, 144, 149, 145, 140, 146, 155, 140, 151, 144, 156, 146, 141, 144, 150, 148, 145, 144, 142, 142, 147, 139, 147, 149, 153, 145, 143, 140, 137, 142, 144, 129, 138, 149, 145, 137, 142, 143, 146, 140, 142, 151, 147, 137, 151, 141, 140, 150, 136, 146, 141, 142, 145, 149, 144, 149, 152, 159, 146, 140, 151, 148, 145, 146, 142, 142, 152, 144, 147, 150, 146, 152, 144, 151, 147, 146, 150, 158, 148, 148, 140, 152, 150, 140, 150, 146, 140, 152, 148, 143, 146, 145, 147, 144, 147, 154, 155, 136, 142, 138, 133, 144, 156, 147, 148, 147, 144, 142, 151, 143, 148, 139, 142, 145, 146, 150, 144, 136, 162, 141, 146, 144, 137, 148, 147, 143, 139, 139, 145, 141, 151, 143, 152, 144, 132, 141, 140, 142, 155, 150, 144, 153, 154, 134, 143, 147, 138, 151, 148, 136, 137, 147, 153, 142, 151, 144, 139, 146, 147, 153, 158, 144, 145, 139, 145, 135, 145, 138, 147, 143, 145, 151, 150, 148, 146, 157, 142, 146, 147, 138, 142, 142, 152, 145, 144, 137, 140, 140, 140, 133, 150, 142, 135, 139, 145, 149, 145, 143, 139, 145, 144, 147, 149, 145, 142, 154, 139, 143, 142, 149, 151, 145, 148, 160, 147, 151, 135, 153, 141, 143, 147, 154, 147, 136, 141, 151, 136, 149, 142, 144, 142, 149, 144, 143, 148, 147, 147, 139, 146, 143, 141, 146, 141, 140, 156, 162, 145, 152, 150, 142, 144, 149, 153, 147, 137, 133, 144, 141, 139, 141, 145, 147, 128, 150, 142, 136, 140, 144, 134, 143, 149, 154, 143, 148, 146, 141, 159, 158, 148, 155, 139, 138, 147, 146, 146, 142, 146, 139, 153, 138, 147, 147, 145, 142, 149, 141, 147, 130, 143, 145, 152, 153, 137, 143, 144, 149, 153, 150, 147, 149, 137, 149, 148, 137, 140, 146, 156, 143, 148, 147, 145, 158, 150, 140, 144, 146, 142, 140, 145, 137, 148, 146, 143, 143, 145, 147, 160, 142, 155, 147, 145, 144, 149, 148, 136, 146, 144, 140, 147, 150, 141, 149, 147, 143, 144, 139, 151, 148, 145, 142, 140, 157, 147, 145, 147, 149, 143, 140, 154, 145, 152, 138, 144, 144, 146, 150, 139, 139, 138, 146, 145, 149, 145, 145, 145, 145, 154, 142, 143, 142, 152, 151, 139, 150, 151, 156, 150, 144, 157, 101, 141, 172, 148, 152, 145, 149, 150, 127, 153, 135, 148, 144, 148, 154, 144, 144, 122, 150, 138, 148, 146, 142, 139, 146, 151, 146, 137, 148, 142, 151, 140, 141, 148, 134, 147, 151, 147, 163, 145, 149, 146, 146, 151, 153, 148, 150, 152, 145, 144, 154, 151, 147, 153, 154, 147, 137, 154, 145, 143, 147, 149, 114, 151, 144, 149, 145, 111, 155, 143, 145, 148, 191, 150, 123, 146, 147, 184, 149, 144, 149, 148, 150, 143, 147, 149, 149, 147, 144, 146, 136, 144, 145, 160, 153, 146, 143, 145, 144, 141, 144, 143, 150, 146, 139, 144, 143, 145, 140, 139, 149, 144, 144, 143, 125, 154, 135, 144, 146, 141, 146, 136, 147, 143, 157, 147, 141, 146, 125, 146, 123, 141, 147, 144, 159, 155, 146, 146, 147, 153, 148, 146, 148, 147, 139, 152, 151, 131, 146, 154, 141, 142, 138, 139, 145, 153, 142, 146, 138, 147, 154, 144, 145, 139, 145, 147, 151, 150, 146, 145, 141, 161, 144, 153, 138, 140, 148, 147, 149, 143, 152, 175, 150, 143, 148, 152, 149, 124, 144, 142, 140, 149, 152, 141, 149, 145, 131, 147, 150, 146, 159, 140, 147, 166, 150, 149, 148, 143, 150, 147, 143, 143, 140, 141, 146, 144, 149, 144, 144, 146, 141, 148, 147, 154, 148, 144, 117, 203, 151, 148, 149, 151, 144, 143, 140, 134, 151, 143, 143, 145, 149, 144, 145, 141, 147, 146, 149, 146, 149, 149, 143, 144, 139, 145, 147, 149, 146, 149, 145, 147, 146, 147, 145, 146, 150, 145, 148, 139, 146, 143, 145, 148, 141, 140, 145, 146, 151, 145, 150, 146, 146, 145, 146, 144, 150, 148, 140, 148, 150, 147, 149, 147, 148, 146, 158, 150, 147, 149, 153, 145, 159, 152, 155, 200, 143, 144, 146, 138, 149, 148, 129, 149, 145, 141, 146, 144, 147, 142, 146, 144, 147, 147, 147, 129, 144, 152, 149, 149, 142, 146, 144, 147, 146, 172, 140, 143, 144, 149, 146, 148, 145, 146, 147, 145, 142, 142, 148, 149, 147, 144, 145, 155, 147, 146, 148, 148, 145, 148, 143, 150, 148, 147, 147, 151, 146, 153, 141, 141, 146, 146, 143, 145, 142, 148, 146, 168, 143, 146, 145, 148, 144, 146, 149, 146, 161, 147, 146, 143, 146, 150, 144, 145, 151, 148, 148, 153, 148, 150, 151, 136, 148, 146, 144, 141, 146, 139, 142, 144, 162, 147, 146, 145, 145, 146, 157, 146, 144, 149, 144, 147, 147, 144, 152, 146, 149, 146, 150, 144, 149, 146, 142, 143, 142, 143, 148, 150, 145, 153, 143, 145, 145, 145, 147, 144, 148, 143, 145, 146, 144, 146, 146, 145, 145, 141, 142, 148, 143, 152, 148, 140, 142, 148, 144, 144, 148, 144, 149, 145, 146, 148, 148, 145, 145, 152, 143, 148, 147, 150, 146, 155, 144, 149, 146, 144, 127, 143, 148, 144, 147, 145, 148, 144, 145, 140, 136, 154, 136, 149, 152, 143, 137, 149, 146, 163, 122, 153, 145, 132, 150, 146, 150, 151, 148, 144, 154, 154, 144, 144, 145, 145, 154, 160, 141, 136, 145, 145, 147, 151, 147, 146, 139, 152, 179, 146, 156, 156, 157, 147, 147, 129, 154, 157, 151, 152, 140, 142, 148, 150, 164, 142, 144, 160, 142, 150, 147, 154, 139, 148, 147, 150, 142, 153, 152, 145, 144, 147, 148, 145, 148, 148, 144, 151, 144, 139, 148, 145, 144, 148, 141, 146, 153, 154, 130, 145, 147, 155, 156, 147, 142, 143, 141, 159, 144, 145, 143, 140, 147, 138, 151, 140, 147, 145, 142, 136, 143, 147, 137, 142, 148, 143, 147, 145, 133, 152, 158, 158, 140, 146, 143, 136, 146, 147, 150, 152, 151, 147, 146, 158, 143, 147, 142, 154, 141, 144, 143, 150, 154, 143, 159, 143, 138, 142, 146, 135, 148, 141, 152, 145, 149, 145, 127, 157, 143, 150, 141, 118, 157, 153, 140, 147, 142, 106, 138, 147, 146, 147, 141, 144, 143, 137, 149, 150, 144, 146, 140, 138, 142, 149, 144, 142, 144, 149, 134, 146, 153, 134, 150, 138, 152, 145, 155, 149, 142, 140, 145, 153, 146, 148, 164, 137, 147, 138, 146, 145, 145, 155, 144, 151, 155, 135, 149, 134, 138, 147, 152, 148, 153, 140, 147, 146, 153, 144, 144, 143, 158, 143, 144, 144, 133, 149, 150, 148, 145, 133, 140, 146, 149, 121, 138, 158, 149, 163, 148, 137, 164, 158, 138, 153, 146, 162, 142, 138, 149, 143, 134, 147, 144, 149, 150, 153, 148, 154, 141, 149, 160, 151, 159, 165, 142, 142, 157, 154, 158, 150, 144, 159, 146, 150, 141, 138, 153, 152, 147, 147, 140, 140, 140, 142, 149, 167, 152, 157, 145, 142, 160, 147, 132, 161, 134, 145, 134, 149, 152, 177, 145, 161, 147, 155, 145, 145, 179, 158, 156, 157, 118, 146, 149, 194, 159, 140, 156, 168, 142, 143, 149, 140, 145, 134, 141, 141, 146, 146, 140, 151, 163, 143, 163, 147, 146, 166, 161, 138, 162, 151, 145, 144, 137, 143, 140, 146, 186, 150, 138, 148, 147, 152, 150, 137, 154, 157, 149, 126, 152, 144, 150, 147, 130, 155, 153, 146, 150, 161, 150, 138, 142, 141, 156, 159, 149, 145, 146, 140, 163, 138, 160, 155, 148, 155, 155, 141, 218, 140, 135, 112, 132, 152, 136, 135, 148, 144, 144, 159, 161, 138, 146, 131, 135, 143, 152, 154, 146, 138, 145, 130, 135, 141, 179, 137, 164, 150, 125, 154, 155, 149, 147, 110, 129, 153, 145, 131, 144, 130, 148, 144, 161, 146, 134, 148, 162, 156, 130, 123, 144, 142, 139, 156, 138, 142, 148, 167, 175, 140, 156, 153, 153, 163, 150, 132, 172, 164, 159, 141, 150, 175, 112, 158, 150, 163, 171, 148, 151, 133, 160, 156, 148, 144, 146, 137, 154, 146, 148, 160, 146, 146, 156, 158, 118, 143, 143, 139, 147, 147, 150, 159, 149, 151, 147, 168, 152, 141, 164, 152, 152, 135, 142, 146, 150, 146, 145, 153, 148, 146, 150, 142, 140, 149, 148, 148, 142, 135, 148, 144, 149, 146, 149, 145, 143, 147, 148, 141, 143, 145, 147, 146, 148, 155, 147, 149, 149, 147, 157, 146, 142, 143, 145, 146, 146, 146, 146, 146, 142, 148, 142, 157, 149, 144, 150, 151, 149, 147, 143, 141, 147, 140, 149, 146, 145, 147, 144, 142, 143, 147, 146, 150, 154, 146, 147, 148, 149, 144, 141, 142, 148, 148, 159, 151, 144, 141, 145, 143, 155, 144, 146, 146, 150, 140, 145, 149, 144, 152, 146, 147, 147, 151, 144, 144, 151, 149, 150, 147, 142, 151, 149, 151, 143, 144, 140, 154, 148, 146, 148, 146, 145, 148, 149, 148, 144, 145, 143, 145, 150, 136, 147, 146, 144, 142, 148, 148, 146, 150, 145, 148, 148, 146, 142, 147, 148, 144, 148, 144, 144, 131, 149, 146, 146, 149, 144, 143, 146, 147, 146, 142, 147, 145, 144, 141, 153, 143, 163, 145, 146, 148, 140, 146, 146, 147, 145, 146, 149, 148, 142, 142, 146, 144, 144, 147, 149, 148, 148, 144, 145, 145, 143, 153, 133, 147, 149, 148, 149, 147, 142, 146, 147, 150, 149, 146, 145, 144, 153, 145, 146, 145, 148, 148, 149, 145, 148, 127, 144, 146, 144, 142, 148, 150, 148, 145, 145, 148, 151, 142, 142, 150, 142, 149, 146, 137, 151, 148, 149, 128, 147, 148, 149, 141, 146, 148, 142, 149, 146, 147, 147, 146, 148, 150, 149, 140, 147, 151, 147, 142, 151, 138, 144, 141, 132, 140, 144, 138, 145, 150, 141, 142, 139, 150, 140, 147, 141, 148, 148, 151, 132, 141, 145, 142, 148, 142, 143, 141, 148, 136, 147, 145, 141, 139, 142, 148, 151, 146, 146, 141, 163, 142, 154, 149, 150, 145, 146, 137, 143, 144, 148, 142, 149, 143, 142, 151, 150, 147, 146, 127, 138, 140, 140, 147, 143, 144, 153, 152, 145, 147, 142, 147, 140, 144, 136, 139, 145, 150, 144, 148, 145, 140, 142, 148, 146, 151, 153, 143, 148, 141, 137, 150, 145, 144, 150, 145, 142, 135, 140, 154, 143, 145, 146, 151, 149, 147, 145, 146, 148, 141, 149, 148, 144, 141, 144, 142, 144, 142, 141, 147, 137, 149, 159, 146, 156, 141, 145, 142, 146, 146, 146, 147, 130, 144, 150, 148, 144, 148, 139, 160, 146, 146, 162, 134, 141, 142, 148, 147, 142, 144, 140, 147, 150, 138, 150, 149, 148, 143, 149, 142, 144, 145, 149, 125, 135, 144, 147, 142, 152, 131, 140, 146, 148, 150, 119, 147, 142, 149, 149, 147, 147, 137, 151, 142, 144, 149, 147, 149, 151, 150, 142, 133, 151, 142, 144, 126, 149, 145, 135, 140, 142, 146, 141, 151, 146, 152, 144, 135, 144, 144, 150, 144, 153, 137, 153, 160, 142, 126, 148, 147, 148, 152, 149, 146, 143, 146, 149, 149, 142, 145, 140, 140, 151, 145, 146, 165, 146, 145, 144, 137, 145, 145, 149, 143, 140, 160, 149, 141, 149, 148, 150, 143, 151, 147, 141, 141, 145, 143, 156, 153, 130, 139, 138, 131, 141, 146, 151, 157, 133, 140, 143, 130, 154, 143, 148, 153, 151, 149, 149, 139, 147, 150, 138, 140, 144, 148, 141, 152, 151, 149, 142, 142, 132, 143, 132, 144, 170, 143, 137, 133, 161, 140, 146, 167, 142, 124, 157, 137, 134, 155, 136, 135, 146, 129, 142, 138, 139, 140, 152, 139, 145, 143, 167, 150, 142, 154, 165, 139, 142, 146, 153, 146, 161, 140, 162, 138, 132, 141, 144, 161, 151, 151, 131, 149, 160, 158, 139, 146, 149, 137, 150, 147, 140, 141, 174, 126, 128, 134, 118, 155, 148, 139, 153, 134, 137, 132, 148, 160, 144, 137, 140, 150, 147, 143, 142, 160, 131, 124, 131, 139, 142, 142, 150, 152, 136, 138, 145, 151, 150, 145, 126, 155, 142, 152, 147, 163, 146, 140, 149, 157, 143, 148, 145, 159, 149, 143, 145, 145, 147, 150, 150, 151, 157, 154, 139, 145, 144, 158, 143, 141, 146, 156, 195, 157, 153, 139, 152, 153, 147, 157, 148, 164, 140, 147, 160, 156, 144, 143, 147, 149, 145, 143, 155, 144, 143, 153, 146, 137, 131, 129, 150, 174, 149, 145, 138, 129, 134, 147, 129, 148, 139, 148, 146, 156, 150, 145, 138, 148, 127, 148, 154, 148, 141, 169, 143, 134, 165, 152, 155, 154, 147, 168, 136, 137, 135, 140, 148, 134, 154, 143, 161, 158, 171, 150, 155, 150, 160, 145, 133, 131, 142, 116, 149, 152, 133, 145, 155, 159, 151, 148, 139, 138, 142, 145, 147, 145, 146, 141, 147, 150, 151, 143, 146, 143, 137, 148, 148, 141, 145, 147, 147, 148, 147, 158, 149, 138, 142, 140, 142, 146, 142, 135, 154, 150, 134, 139, 147, 156, 139, 144, 156, 143, 143, 146, 144, 143, 138, 150, 147, 141, 145, 130, 147, 144, 144, 128, 151, 146, 143, 147, 146, 139, 148, 147, 148, 154, 155, 162, 142, 140, 138, 145, 138, 148, 146, 149, 145, 141, 151, 146, 138, 146, 130, 144, 147, 156, 139, 149, 139, 145, 146, 141, 147, 146, 149, 149, 148, 135, 143, 147, 151, 146, 146, 147, 141, 141, 146, 145, 147, 149, 148, 143, 143, 142, 149, 147, 146, 146, 144, 152, 137, 144, 145, 149, 152, 145, 144, 142, 145, 160, 145, 150, 149, 142, 140, 145, 150, 146, 148, 144, 134, 141, 152, 144, 141, 149, 141, 145, 145, 146, 151, 142, 143, 143, 142, 147, 146, 140, 149, 160, 148, 144, 147, 151, 149, 151, 139, 141, 148, 144, 150, 151, 149, 151, 144, 145, 134, 144, 148, 148, 141, 152, 152, 144, 145, 145, 146, 148, 146, 150, 145, 155, 163, 145, 146, 149, 145, 145, 147, 148, 145, 147, 158, 147, 149, 146, 152, 139, 146, 147, 150, 147, 147, 146, 144, 141, 145, 149, 144, 139, 144, 138, 150, 147, 147, 145, 124, 148, 146, 144, 148, 146, 167, 146, 138, 149, 148, 155, 145, 146, 148, 145, 148, 141, 148, 145, 146, 142, 144, 149, 141, 151, 147, 135, 144, 126, 151, 146, 132, 139, 148, 149, 138, 144, 138, 157, 149, 146, 143, 148, 143, 139, 162, 148, 146, 159, 141, 144, 153, 126, 144, 146, 153, 144, 136, 142, 142, 142, 138, 140, 171, 151, 155, 140, 142, 159, 115, 130, 145, 138, 147, 149, 149, 130, 153, 151, 139, 150, 140, 125, 158, 144, 142, 143, 142, 141, 144, 133, 143, 141, 148, 136, 146, 136, 150, 147, 151, 141, 148, 136, 130, 157, 142, 147, 142, 147, 117, 143, 148, 142, 143, 149, 147, 141, 155, 142, 154, 140, 154, 166, 140, 141, 145, 155, 159, 137, 143, 147, 146, 146, 145, 142, 144, 144, 144, 173, 147, 147, 140, 146, 150, 139, 161, 140, 148, 124, 148, 144, 130, 134, 137, 145, 155, 145, 146, 131, 145, 147, 177, 139, 144, 142, 152, 152, 140, 150, 153, 151, 142, 147, 135, 141, 143, 138, 138, 139, 157, 163, 143, 152, 157, 139, 143, 152, 145, 142, 137, 146, 143, 151, 143, 144, 149, 148, 140, 143, 132, 146, 129, 143, 144, 146, 140, 155, 134, 153, 150, 152, 152, 132, 151, 141, 154, 129, 149, 142, 128, 144, 138, 151, 146, 150, 144, 146, 150, 145, 183, 143, 142, 153, 141, 139, 143, 142, 137, 144, 151, 135, 148, 134, 161, 142, 158, 128, 148, 146, 186, 150, 152, 138, 142, 145, 150, 134, 147, 152, 150, 131, 130, 142, 140, 134, 148, 135, 138, 147, 160, 148, 144, 150, 152, 147, 145, 144, 151, 138, 149, 139, 144, 139, 137, 148, 154, 144, 193, 137, 151, 140, 132, 139, 150, 139, 151, 145, 142, 151, 132, 139, 137, 136, 158, 141, 142, 152, 139, 144, 148, 147, 136, 147, 132, 138, 148, 153, 148, 152, 138, 145, 142, 140, 150, 144, 140, 141, 158, 147, 142, 144, 146, 145, 139, 136, 153, 151, 148, 151, 147, 144, 146, 148, 151, 138, 146, 139, 143, 144, 148, 141, 146, 144, 144, 140, 143, 144, 146, 150, 147, 144, 144, 141, 149, 145, 146, 148, 144, 140, 136, 142, 144, 147, 145, 144, 150, 152, 146, 146, 153, 144, 140, 146, 147, 142, 131, 152, 142, 146, 144, 151, 141, 151, 148, 144, 150, 139, 144, 138, 144, 144, 139, 147, 136, 148, 142, 149, 136, 145, 159, 148, 145, 149, 141, 141, 141, 144, 151, 144, 139, 145, 145, 143, 146, 150, 148, 154, 148, 139, 148, 147, 155, 152, 142, 148, 161, 145, 145, 143, 148, 139, 146, 145, 131, 152, 150, 146, 146, 153, 143, 151, 150, 161, 141, 141, 152, 130, 150, 150, 147, 146, 137, 157, 136, 137, 152, 147, 151, 148, 145, 140, 143, 139, 150, 147, 142, 147, 134, 149, 138, 141, 149, 155, 146, 141, 150, 151, 146, 147, 139, 144, 140, 145, 145, 142, 146, 146, 143, 141, 144, 155, 137, 151, 141, 133, 146, 136, 148, 141, 147, 147, 151, 154, 147, 143, 140, 147, 140, 144, 144, 146, 141, 152, 147, 138, 142, 142, 149, 144, 147, 144, 147, 130, 146, 142, 141, 148, 150, 141, 146, 142, 139, 144, 148, 154, 152, 149, 146, 145, 162, 131, 139, 143, 130, 149, 156, 144, 138, 155, 147, 152, 136, 129, 136, 147, 143, 148, 141, 162, 134, 147, 124, 141, 145, 147, 152, 150, 176, 134, 133, 144, 161, 140, 143, 170, 138, 141, 157, 149, 160, 157, 134, 151, 148, 132, 125, 151, 136, 118, 150, 151, 146, 148, 144, 144, 153, 148, 162, 136, 153, 127, 138, 138, 150, 162, 147, 134, 167, 137, 151, 153, 164, 151, 157, 146, 144, 157, 149, 151, 149, 140, 145, 153, 152, 142, 149, 152, 143, 134, 147, 141, 152, 143, 145, 153, 141, 154, 157, 146, 146, 156, 119, 139, 152, 157, 133, 137, 157, 140, 157, 142, 139, 143, 147, 146, 151, 160, 149, 132, 149, 151, 142, 152, 154, 146, 158, 139, 161, 149, 153, 152, 135, 147, 160, 161, 135, 153, 145, 131, 143, 147, 146, 138, 135, 136, 151, 141, 133, 141, 124, 138, 153, 150, 143, 123, 167, 150, 138, 134, 139, 145, 155, 147, 132, 141, 141, 127, 147, 157, 145, 147, 123, 147, 151, 126, 141, 146, 152, 132, 138, 153, 153, 153, 158, 141, 132, 131, 151, 143, 166, 133, 126, 148, 142, 139, 149, 150, 150, 148, 152, 142, 153, 143, 156, 147, 151, 145, 141, 138, 139, 154, 129, 151, 160, 138, 144, 148, 144, 143, 144, 144, 141, 135, 140, 142, 143, 163, 145, 152, 133, 132, 153, 158, 146, 154, 120, 122, 146, 154, 146, 174, 142, 144, 137, 159, 146, 142, 130, 160, 131, 143, 164, 147, 143, 140, 157, 145, 147, 131, 147, 149, 149, 149, 152, 152, 145, 139, 148, 140, 148, 140, 147, 149, 143, 160, 145, 147, 144, 144, 147, 135, 133, 133, 152, 144, 145, 142, 144, 149, 148, 148, 148, 132, 127, 137, 141, 153, 156, 153, 141, 137, 145, 154, 146, 160, 149, 144, 147, 133, 146, 157, 155, 138, 144, 145, 139, 146, 148, 141, 138, 144, 143, 141, 141, 153, 138, 149, 156, 143, 149, 151, 158, 145, 143, 145, 142, 143, 141, 135, 154, 147, 147, 145, 139, 133, 137, 147, 146, 142, 140, 150, 142, 142, 141, 155, 162, 138, 145, 145, 148, 150, 135, 139, 144, 152, 150, 151, 152, 145, 141, 149, 148, 142, 138, 149, 156, 145, 145, 149, 147, 161, 142, 147, 147, 142, 147, 152, 163, 146, 148, 147, 139, 132, 149, 154, 144, 147, 144, 153, 150, 151, 147, 157, 143, 145, 145, 117, 142, 137, 147, 152, 136, 151, 144, 140, 143, 146, 151, 148, 133, 149, 156, 149, 152, 143, 150, 144, 141, 146, 139, 150, 150, 144, 147, 142, 144, 145, 142, 153, 138, 151, 147, 153, 144, 139, 147, 148, 146, 152, 146, 154, 144, 160, 145, 172, 142, 152, 141, 147, 135, 140, 144, 144, 128, 152, 147, 140, 140, 162, 144, 144, 157, 141, 145, 142, 156, 148, 139, 135, 144, 146, 156, 144, 150, 144, 144, 132, 147, 144, 139, 144, 155, 150, 171, 148, 145, 145, 148, 132, 149, 145, 150, 150, 139, 135, 135, 132, 151, 133, 135, 145, 156, 150, 152, 134, 166, 148, 156, 141, 158, 134, 151, 149, 138, 144, 143, 140, 156, 138, 146, 143, 148, 148, 170, 147, 146, 162, 144, 149, 134, 140, 138, 141, 139, 148, 159, 139, 164, 141, 136, 138, 147, 147, 117, 136, 147, 148, 146, 165, 135, 137, 159, 149, 144, 153, 144, 152, 169, 153, 158, 153, 131, 134, 150, 175, 142, 144, 140, 144, 146, 141, 148, 133, 147, 199, 143, 145, 147, 151, 149, 142, 151, 150, 129, 136, 136, 151, 135, 126, 156, 145, 145, 134, 148, 154, 155, 144, 143, 140, 158, 157, 144, 142, 139, 146, 147, 136, 144, 144, 148, 149, 149, 136, 138, 136, 143, 125, 176, 165, 151, 136, 152, 149, 144, 157, 146, 136, 140, 143, 188, 132, 144, 136, 146, 134, 154, 151, 167, 157, 136, 158, 141, 142, 143, 156, 142, 140, 140, 151, 150, 133, 146, 140, 124, 136, 141, 160, 152, 146, 152, 123, 147, 146, 136, 152, 136, 161, 146, 156, 149, 147, 156, 105, 146, 145, 140, 137, 141, 151, 139, 146, 137, 131, 143, 148, 142, 158, 150, 141, 139, 146, 132, 134, 135, 148, 158, 170, 148, 156, 153, 134, 141, 199, 136, 134, 153, 142, 153, 149, 146, 186, 121, 143, 144, 153, 148, 137, 139, 164, 141, 134, 148, 144, 134, 153, 134, 143, 135, 128, 164, 138, 148, 131, 113, 144, 163, 145, 159, 148, 143, 156, 143, 167, 129, 133, 142, 147, 155, 138, 141, 145, 133, 143, 148, 136, 146, 140, 160, 143, 142, 152, 146, 142, 149, 140, 151, 140, 148, 144, 144, 153, 146, 149, 151, 153, 142, 142, 160, 149, 145, 124, 150, 146, 127, 145, 140, 166, 142, 153, 147, 154, 150, 144, 150, 144, 121, 145, 151, 146, 145, 152, 148, 136, 149, 132, 134, 150, 143, 148, 152, 143, 138, 138, 143, 142, 154, 151, 148, 145, 149, 146, 156, 163, 144, 139, 145, 150, 150, 150, 133, 149, 141, 143, 147, 141, 146, 145, 140, 150, 144, 148, 145, 154, 149, 154, 149, 131, 146, 148, 151, 145, 147, 159, 149, 141, 139, 143, 144, 147, 151, 139, 146, 141, 136, 148, 147, 145, 142, 148, 128, 145, 140, 150, 153, 143, 152, 148, 149, 142, 145, 146, 151, 145, 146, 147, 158, 138, 152, 132, 141, 147, 142, 144, 140, 144, 150, 144, 140, 141, 142, 155, 140, 148, 158, 151, 141, 158, 143, 142, 147, 148, 143, 147, 150, 150, 150, 146, 147, 138, 160, 142, 169, 146, 142, 140, 137, 137, 155, 143, 141, 138, 151, 137, 141, 152, 169, 152, 150, 147, 156, 146, 143, 145, 137, 141, 147, 143, 150, 137, 144, 143, 152, 148, 138, 152, 140, 146, 145, 145, 150, 153, 144, 137, 143, 138, 152, 151, 144, 148, 157, 133, 147, 147, 153, 140, 147, 144, 146, 145, 135, 150, 160, 161, 126, 143, 153, 149, 150, 138, 149, 154, 143, 149, 151, 142, 141, 146, 138, 144, 142, 125, 160, 139, 141, 147, 143, 124, 139, 143, 142, 149, 140, 145, 153, 148, 136, 149, 153, 147, 150, 146, 150, 168, 145, 145, 146, 143, 147, 151, 152, 153, 149, 141, 153, 145, 147, 143, 144, 143, 145, 150, 144, 147, 127, 145, 143, 145, 153, 147, 142, 148, 145, 147, 157, 139, 148, 133, 147, 141, 150, 149, 142, 144, 147, 150, 149, 145, 149, 150, 146, 148, 157, 158, 148, 143, 150, 151, 126, 142, 146, 143, 148, 147, 151, 146, 140, 140, 129, 131, 150, 148, 146, 151, 143, 146, 153, 146, 144, 153, 149, 136, 144, 143, 148, 146, 142, 134, 150, 150, 139, 144, 146, 147, 142, 148, 147, 144, 144, 144, 151, 139, 141, 144, 144, 143, 149, 148, 142, 143, 143, 149, 148, 147, 141, 152, 136, 144, 143, 148, 141, 140, 141, 146, 138, 146, 141, 145, 152, 148, 143, 149, 145, 146, 146, 152, 135, 146, 149, 148, 144, 150, 148, 139, 154, 147, 143, 149, 152, 145, 148, 144, 141, 151, 148, 146, 144, 139, 152, 147, 141, 146, 143, 140, 147, 146, 146, 149, 149, 146, 145, 140, 143, 149, 150, 142, 148, 147, 155, 142, 140, 144, 140, 146, 149, 145, 145, 145, 132, 146, 142, 152, 144, 144, 150, 147, 150, 145, 148, 152, 144, 176, 148, 143, 150, 149, 148, 140, 145, 142, 144, 147, 145, 145, 144, 141, 144, 147, 144, 171, 146, 140, 145, 174, 142, 154, 148, 165, 147, 146, 150, 143, 147, 147, 147, 150, 146, 142, 150, 145, 149, 133, 152, 153, 145, 146, 147, 117, 142, 139, 143, 220, 141, 137, 148, 144, 160, 139, 152, 137, 151, 151, 160, 138, 151, 139, 129, 148, 135, 145, 154, 118, 138, 148, 138, 157, 140, 147, 145, 140, 147, 142, 153, 146, 129, 150, 147, 137, 146, 153, 145, 108, 152, 156, 156, 143, 149, 142, 157, 147, 159, 144, 137, 162, 148, 143, 143, 148, 171, 145, 167, 167, 149, 125, 147, 143, 139, 151, 141, 162, 151, 138, 141, 141, 141, 134, 137, 150, 141, 140, 148, 131, 142, 145, 192, 152, 146, 164, 145, 145, 154, 122, 135, 143, 144, 152, 127, 136, 141, 153, 148, 143, 148, 147, 147, 147, 132, 133, 153, 144, 132, 137, 155, 124, 164, 164, 147, 149, 133, 143, 148, 158, 150, 143, 146, 135, 183, 144, 128, 149, 149, 145, 142, 147, 154, 151, 141, 150, 171, 141, 133, 140, 142, 144, 183, 157, 143, 149, 149, 157, 151, 142, 143, 154, 142, 143, 152, 213, 171, 146, 146, 125, 140, 134, 142, 136, 144, 147, 154, 123, 152, 115, 147, 147, 146, 132, 142, 124, 153, 148, 140, 129, 144, 144, 145, 155, 136, 151, 93, 127, 165, 151, 145, 149, 152, 127, 168, 146, 150, 142, 153, 133, 143, 143, 141, 155, 142, 151, 143, 146, 134, 136, 142, 150, 139, 167, 138, 134, 135, 146, 146, 154, 149, 142, 147, 137, 148, 143, 150, 155, 140, 144, 138, 137, 147, 136, 132, 156, 142, 136, 124, 153, 140, 156, 141, 139, 150, 154, 150, 143, 141, 148, 147, 140, 155, 152, 156, 142, 147, 136, 149, 148, 143, 155, 150, 140, 137, 147, 161, 155, 151, 146, 152, 135, 143, 150, 160, 144, 145, 154, 148, 147, 145, 149, 149, 146, 147, 147, 149, 156, 156, 140, 147, 146, 142, 147, 139, 140, 152, 144, 143, 155, 142, 156, 151, 139, 155, 139, 144, 140, 145, 145, 144, 149, 147, 146, 158, 139, 145, 150, 144, 155, 150, 143, 141, 147, 165, 144, 144, 153, 155, 147, 159, 144, 155, 158, 127, 148, 148, 143, 123, 132, 145, 139, 148, 144, 146, 137, 154, 133, 146, 161, 143, 152, 144, 149, 144, 148, 148, 152, 114, 147, 144, 134, 146, 145, 149, 145, 149, 137, 142, 148, 163, 147, 144, 148, 152, 136, 140, 150, 145, 144, 148, 147, 149, 143, 162, 141, 148, 140, 134, 154, 154, 149, 142, 176, 155, 144, 147, 147, 147, 145, 147, 145, 146, 141, 157, 150, 146, 150, 148, 159, 144, 148, 149, 146, 142, 159, 131, 145, 150, 144, 144, 148, 144, 151, 140, 137, 144, 146, 148, 183, 144, 161, 155, 139, 121, 148, 154, 143, 142, 148, 156, 148, 148, 144, 132, 150, 136, 139, 151, 145, 139, 144, 147, 151, 143, 152, 143, 148, 142, 149, 147, 150, 165, 142, 139, 147, 145, 134, 161, 148, 145, 148, 147, 151, 145, 147, 147, 144, 151, 139, 148, 146, 154, 150, 131, 157, 149, 155, 168, 148, 127, 145, 148, 146, 148, 156, 144, 150, 144, 158, 142, 138, 139, 153, 150, 145, 143, 143, 143, 147, 151, 141, 144, 149, 143, 143, 139, 151, 158, 130, 142, 150, 153, 141, 140, 153, 142, 139, 161, 144, 177, 155, 140, 133, 151, 141, 145, 146, 148, 148, 148, 144, 134, 145, 148, 146, 150, 150, 154, 152, 157, 134, 147, 146, 149, 121, 144, 146, 145, 135, 132, 167, 146, 150, 149, 141, 146, 154, 150, 150, 149, 147, 146, 147, 114, 139, 140, 139, 134, 119, 137, 146, 130, 146, 142, 143, 144, 164, 148, 149, 139, 151, 150, 175, 150, 137, 143, 138, 143, 130, 150, 142, 155, 139, 156, 154, 147, 123, 148, 151, 151, 149, 142, 158, 153, 144, 142, 150, 132, 146, 147, 148, 143, 147, 147, 152, 147, 149, 147, 153, 148, 143, 138, 148, 151, 140, 144, 150, 145, 148, 142, 148, 141, 140, 138, 150, 143, 145, 143, 140, 141, 147, 156, 149, 147, 145, 149, 119, 135, 130, 145, 153, 141, 147, 147, 146, 163, 149, 150, 148, 139, 144, 149, 144, 137, 142, 150, 151, 139, 147, 149, 146, 152, 144, 137, 141, 146, 144, 147, 170, 150, 123, 151, 150, 142, 144, 149, 144, 151, 152, 152, 173, 148, 144, 133, 148, 144, 138, 147, 139, 148, 149, 149, 140, 132, 172, 144, 126, 152, 148, 143, 136, 148, 140, 145, 147, 142, 145, 126, 137, 146, 147, 148, 149, 154, 141, 153, 141, 153, 139, 140, 146, 146, 156, 142, 147, 153, 143, 145, 142, 153, 145, 135, 149, 137, 143, 143, 129, 143, 134, 144, 147, 147, 148, 152, 151, 143, 150, 144, 146, 146, 147, 152, 146, 138, 146, 145, 145, 144, 141, 151, 148, 148, 146, 143, 146, 148, 163, 139, 145, 142, 163, 145, 147, 150, 152, 144, 145, 142, 147, 130, 151, 149, 146, 147, 145, 150, 152, 141, 150, 144, 144, 144, 147, 143, 141, 149, 143, 150, 154, 144, 152, 147, 141, 145, 149, 143, 148, 152, 147, 141, 143, 143, 147, 155, 143, 147, 144, 148, 137, 143, 146, 149, 143, 147, 142, 141, 143, 149, 147, 143, 142, 144, 145, 152, 151, 146, 144, 146, 134, 151, 143, 141, 144, 148, 147, 148, 145, 150, 148, 144, 149, 145, 150, 151, 145, 148, 150, 149, 145, 146, 148, 137, 144, 143, 148, 146, 149, 142, 145, 148, 146, 155, 140, 146, 150, 148, 143, 145, 141, 148, 146, 147, 153, 142, 153, 149, 145, 141, 146, 149, 145, 146, 143, 139, 146, 147, 147, 146, 148, 148, 146, 145, 161, 151, 145, 148, 150, 146, 168, 147, 144, 150, 147, 153, 146, 148, 140, 145, 142, 144, 147, 146, 149, 144, 145, 155, 145, 144, 140, 152, 145, 143, 146, 156, 161, 150, 146, 146, 145, 148, 139, 148, 144, 145, 142, 149, 143, 147, 149, 141, 150, 144, 145, 142, 142, 143, 160, 144, 149, 143, 145, 147, 143, 144, 149, 149, 151, 151, 145, 145, 151, 149, 145, 143, 145, 143, 144, 140, 152, 145, 143, 147, 141, 148, 133, 142, 145, 150, 143, 143, 139, 132, 147, 147, 141, 145, 142, 177, 143, 145, 131, 137, 143, 135, 128, 168, 150, 149, 138, 139, 138, 143, 162, 141, 150, 142, 173, 146, 131, 149, 131, 152, 147, 144, 155, 153, 147, 128, 138, 137, 150, 131, 145, 153, 142, 144, 152, 146, 140, 135, 152, 177, 134, 144, 139, 142, 152, 150, 152, 149, 133, 140, 141, 143, 150, 146, 147, 152, 156, 149, 145, 143, 148, 150, 146, 130, 145, 153, 162, 149, 148, 149, 141, 149, 145, 164, 154, 144, 141, 155, 146, 123, 147, 145, 141, 151, 127, 144, 151, 150, 125, 150, 147, 149, 140, 150, 163, 146, 144, 150, 151, 138, 132, 144, 141, 147, 123, 99, 157, 161, 145, 145, 139, 165, 151, 136, 151, 143, 155, 148, 151, 168, 150, 154, 148, 151, 154, 140, 145, 146, 153, 140, 148, 113, 139, 135, 155, 141, 156, 140, 142, 144, 142, 143, 151, 144, 148, 144, 152, 148, 151, 146, 127, 147, 147, 214, 149, 140, 149, 139, 148, 145, 148, 123, 150, 154, 145, 145, 150, 149, 145, 139, 140, 142, 122, 139, 134, 146, 144, 153, 147, 149, 161, 140, 142, 148, 148, 147, 145, 149, 153, 144, 150, 144, 144, 147, 144, 141, 144, 136, 145, 141, 148, 136, 147, 141, 153, 156, 140, 141, 139, 144, 133, 135, 152, 141, 143, 150, 148, 131, 151, 136, 148, 141, 165, 168, 140, 125, 127, 148, 137, 148, 143, 142, 157, 142, 144, 146, 149, 145, 146, 148, 149, 147, 139, 191, 84, 144, 149, 157, 129, 161, 135, 153, 138, 141, 152, 142, 172, 149, 150, 141, 156, 147, 147, 134, 141, 171, 146, 148, 140, 145, 144, 142, 104, 164, 138, 137, 138, 151, 152, 151, 149, 140, 146, 140, 146, 140, 145, 149, 142, 152, 146, 103, 157, 150, 144, 144, 149, 136, 151, 146, 147, 130, 143, 162, 144, 137, 151, 140, 151, 139, 140, 163, 140, 146, 156, 121, 140, 146, 170, 136, 147, 147, 144, 147, 140, 146, 138, 154, 151, 157, 147, 143, 134, 143, 140, 145, 138, 150, 154, 162, 145, 152, 147, 154, 144, 143, 150, 142, 144, 137, 147, 145, 159, 162, 142, 143, 142, 136, 144, 126, 141, 140, 132, 146, 147, 162, 147, 144, 146, 149, 139, 152, 155, 131, 142, 136, 142, 146, 153, 149, 159, 146, 147, 143, 144, 134, 147, 145, 134, 147, 142, 147, 120, 140, 139, 159, 150, 185, 149, 148, 138, 139, 136, 147, 143, 137, 143, 150, 136, 140, 147, 147, 126, 158, 172, 140, 174, 150, 153, 151, 140, 136, 139, 136, 155, 138, 153, 132, 135, 146, 155, 143, 163, 141, 140, 143, 151, 145, 149, 148, 144, 143, 136, 129, 158, 141, 146, 141, 141, 147, 141, 145, 139, 142, 150, 144, 150, 149, 144, 152, 150, 135, 176, 148, 154, 145, 163, 146, 154, 149, 139, 135, 144, 148, 124, 143, 148, 150, 146, 147, 142, 141, 149, 151, 138, 138, 151, 149, 169, 148, 147, 139, 148, 141, 166, 139, 155, 145, 162, 141, 146, 168, 143, 145, 149, 140, 140, 144, 143, 150, 148, 139, 155, 146, 139, 143, 145, 138, 145, 147, 149, 138, 142, 142, 138, 140, 144, 150, 150, 144, 147, 146, 161, 145, 150, 145, 154, 144, 149, 153, 147, 147, 146, 144, 158, 141, 143, 143, 148, 144, 149, 144, 156, 151, 148, 142, 145, 143, 145, 145, 146, 143, 142, 149, 147, 149, 145, 147, 147, 148, 144, 134, 143, 146, 151, 143, 141, 152, 144, 140, 152, 146, 143, 146, 144, 139, 144, 143, 149, 146, 144, 142, 147, 153, 145, 147, 142, 151, 146, 147, 149, 146, 146, 146, 148, 151, 140, 141, 146, 146, 133, 142, 137, 141, 148, 147, 144, 146, 150, 144, 149, 142, 145, 140, 141, 147, 144, 139, 140, 156, 148, 149, 142, 147, 149, 142, 147, 150, 145, 142, 143, 149, 147, 143, 129, 146, 142, 142, 142, 144, 150, 137, 148, 152, 142, 147, 147, 156, 152, 140, 142, 147, 143, 152, 148, 144, 152, 143, 163, 143, 143, 146, 147, 150, 174, 147, 144, 146, 150, 151, 158, 143, 140, 148, 147, 141, 145, 147, 141, 150, 144, 147, 145, 149, 150, 147, 162, 150, 148, 145, 159, 141, 146, 151, 151, 146, 146, 147, 149, 148, 142, 142, 147, 142, 143, 143, 151, 140, 150, 147, 147, 153, 154, 145, 140, 150, 144, 146, 150, 144, 152, 149, 151, 144, 145, 144, 143, 138, 143, 141, 142, 137, 149, 138, 148, 151, 144, 143, 148, 150, 141, 148, 150, 136, 139, 145, 148, 136, 147, 148, 141, 144, 155, 154, 146, 150, 149, 180, 142, 137, 142, 93, 149, 151, 151, 149, 154, 137, 144, 143, 144, 146, 145, 148, 148, 147, 151, 165, 141, 150, 149, 138, 145, 147, 148, 143, 148, 137, 150, 140, 144, 139, 192, 148, 143, 145, 152, 205, 142, 144, 139, 150, 141, 141, 142, 151, 117, 150, 139, 144, 145, 142, 149, 148, 148, 156, 147, 139, 145, 152, 146, 135, 141, 146, 98, 136, 139, 167, 145, 151, 146, 131, 154, 152, 148, 138, 151, 152, 146, 145, 137, 144, 75, 148, 143, 144, 139, 142, 139, 144, 139, 139, 148, 149, 144, 152, 141, 141, 152, 143, 153, 143, 154, 140, 147, 135, 144, 145, 142, 132, 148, 149, 152, 141, 157, 149, 148, 151, 127, 134, 144, 147, 149, 152, 144, 144, 146, 148, 147, 144, 144, 112, 152, 145, 136, 147, 153, 146, 148, 148, 152, 143, 153, 144, 130, 148, 156, 140, 136, 144, 143, 136, 138, 154, 154, 145, 140, 139, 144, 217, 147, 148, 150, 153, 138, 142, 135, 152, 142, 145, 175, 146, 146, 135, 148, 146, 140, 150, 134, 142, 141, 152, 149, 147, 156, 150, 145, 163, 144, 146, 142, 155, 145, 153, 154, 144, 146, 144, 144, 143, 142, 153, 148, 145, 145, 147, 148, 145, 148, 137, 147, 136, 145, 149, 144, 151, 147, 142, 145, 145, 140, 144, 145, 147, 170, 140, 134, 135, 144, 147, 149, 147, 144, 140, 146, 138, 150, 145, 137, 144, 150, 146, 146, 149, 147, 132, 133, 134, 139, 148, 141, 129, 154, 151, 155, 140, 150, 148, 141, 151, 154, 152, 133, 137, 144, 152, 145, 145, 142, 141, 140, 144, 141, 150, 155, 139, 149, 137, 143, 146, 143, 144, 145, 143, 150, 143, 148, 137, 145, 165, 146, 144, 140, 145, 148, 147, 142, 147, 147, 142, 147, 140, 141, 140, 137, 146, 159, 139, 146, 150, 146, 142, 148, 161, 138, 142, 147, 152, 137, 146, 138, 143, 154, 147, 145, 154, 138, 157, 148, 150, 145, 145, 146, 138, 148, 152, 149, 133, 144, 145, 138, 146, 148, 141, 143, 147, 136, 142, 149, 139, 146, 147, 153, 146, 144, 140, 139, 156, 146, 134, 144, 146, 151, 144, 151, 140, 140, 144, 148, 143, 138, 151, 145, 149, 141, 145, 149, 141, 144, 143, 137, 146, 140, 148, 145, 149, 144, 143, 141, 150, 143, 138, 151, 149, 141, 162, 143, 140, 142, 144, 150, 133, 153, 132, 147, 147, 145, 136, 139, 144, 144, 157, 147, 150, 162, 140, 151, 152, 143, 150, 151, 153, 149, 155, 144, 147, 141, 146, 141, 150, 147, 145, 133, 146, 144, 143, 147, 146, 147, 138, 147, 146, 145, 153, 155, 149, 143, 156, 147, 151, 151, 147, 146, 143, 155, 144, 145, 148, 152, 144, 147, 150, 145, 146, 160, 147, 144, 139, 150, 148, 147, 143, 131, 150, 140, 156, 148, 144, 139, 146, 141, 147, 144, 149, 136, 133, 157, 143, 154, 145, 143, 139, 148, 143, 151, 147, 148, 149, 146, 129, 142, 141, 143, 144, 140, 150, 137, 147, 150, 150, 150, 153, 143, 150, 143, 163, 145, 149, 144, 133, 152, 163, 144, 155, 154, 43, 149, 145, 139, 139, 156, 125, 143, 154, 156, 144, 157, 149, 151, 143, 116, 154, 142, 143, 150, 142, 146, 133, 143, 152, 132, 123, 141, 152, 144, 132, 143, 150, 146, 151, 141, 158, 144, 148, 147, 149, 136, 167, 149, 148, 164, 152, 119, 149, 148, 149, 149, 154, 142, 146, 154, 136, 143, 149, 148, 125, 154, 144, 144, 146, 139, 149, 146, 153, 150, 137, 152, 140, 144, 150, 113, 152, 150, 146, 145, 143, 147, 147, 146, 145, 140, 152, 144, 158, 142, 146, 141, 150, 144, 151, 146, 148, 101, 135, 146, 156, 118, 136, 149, 140, 154, 140, 160, 145, 141, 157, 147, 155, 145, 156, 141, 145, 146, 151, 148, 145, 150, 124, 132, 127, 143, 132, 150, 149, 147, 153, 152, 133, 139, 146, 145, 143, 85, 147, 164, 140, 148, 147, 146, 148, 127, 138, 134, 151, 145, 137, 144, 142, 152, 136, 125, 149, 147, 143, 144, 140, 145, 148, 142, 145, 144, 150, 145, 144, 138, 138, 140, 146, 145, 153, 156, 147, 152, 146, 104, 163, 149, 141, 149, 142, 135, 146, 143, 146, 145, 162, 153, 142, 138, 143, 143, 147, 150, 151, 135, 150, 128, 144, 146, 147, 151, 148, 145, 156, 138, 139, 140, 147, 152, 148, 145, 146, 145, 144, 147, 143, 136, 147, 150, 160, 111, 159, 135, 128, 146, 112, 146, 137, 154, 144, 148, 143, 152, 162, 142, 151, 138, 146, 156, 151, 151, 148, 144, 146, 166, 140, 145, 145, 145, 147, 145, 148, 169, 154, 148, 149, 145, 156, 144, 142, 141, 148, 142, 148, 152, 131, 143, 148, 141, 145, 142, 149, 152, 152, 154, 147, 151, 144, 145, 145, 151, 141, 154, 145, 149, 146, 145, 143, 158, 151, 152, 147, 144, 158, 154, 147, 141, 150, 147, 129, 135, 151, 147, 143, 148, 141, 146, 146, 154, 137, 140, 145, 144, 147, 138, 150, 142, 144, 139, 149, 146, 141, 145, 145, 141, 144, 144, 142, 134, 143, 145, 143, 145, 149, 144, 144, 142, 147, 151, 142, 147, 146, 145, 147, 147, 149, 141, 158, 143, 154, 145, 143, 142, 149, 143, 150, 148, 133, 149, 141, 151, 151, 145, 138, 146, 149, 146, 151, 143, 142, 146, 144, 143, 141, 144, 148, 150, 140, 148, 145, 138, 148, 145, 146, 148, 153, 144, 142, 144, 142, 147, 146, 140, 158, 146, 147, 146, 148, 147, 143, 148, 145, 149, 157, 138, 156, 145, 146, 147, 141, 159, 147, 154, 144, 143, 149, 147, 143, 149, 151, 139, 149, 145, 141, 145, 141, 149, 144, 143, 151, 147, 156, 148, 144, 143, 149, 155, 144, 142, 147, 151, 144, 159, 140, 138, 148, 161, 144, 154, 142, 141, 145, 145, 151, 138, 146, 144, 147, 144, 143, 167, 144, 138, 148, 151, 148, 158, 150, 156, 147, 147, 143, 148, 144, 145, 147, 146, 143, 150, 146, 151, 146, 143, 145, 154, 140, 143, 141, 132, 126, 147, 142, 147, 147, 140, 140, 140, 148, 140, 134, 138, 133, 149, 146, 148, 146, 140, 134, 157, 148, 143, 131, 145, 148, 143, 142, 150, 147, 150, 144, 152, 145, 151, 157, 145, 131, 146, 158, 146, 134, 141, 149, 144, 145, 139, 140, 152, 164, 152, 169, 149, 158, 131, 147, 156, 151, 145, 147, 146, 151, 145, 142, 152, 145, 123, 154, 147, 151, 154, 132, 136, 143, 138, 149, 135, 156, 142, 140, 139, 146, 139, 141, 139, 141, 142, 144, 142, 156, 147, 147, 149, 149, 141, 137, 146, 145, 146, 140, 133, 148, 146, 147, 142, 156, 151, 143, 141, 138, 143, 158, 146, 137, 147, 144, 145, 137, 154, 154, 149, 144, 150, 144, 140, 141, 143, 141, 138, 139, 146, 143, 160, 150, 136, 152, 150, 154, 132, 137, 135, 145, 143, 135, 151, 135, 162, 146, 150, 142, 249, 154, 144, 150, 149, 152, 143, 134, 139, 135, 146, 150, 142, 142, 148, 142, 146, 147, 145, 154, 137, 143, 139, 140, 147, 155, 150, 150, 137, 136, 145, 138, 140, 140, 142, 149, 141, 147, 153, 158, 204, 143, 143, 137, 145, 159, 154, 161, 138, 145, 136, 145, 154, 126, 145, 143, 133, 155, 138, 146, 137, 155, 132, 146, 149, 137, 146, 139, 150, 151, 149, 144, 133, 149, 143, 149, 152, 143, 148, 131, 139, 143, 142, 131, 137, 138, 142, 140, 156, 150, 149, 135, 164, 131, 137, 142, 132, 145, 144, 132, 159, 140, 137, 147, 139, 146, 146, 143, 137, 145, 132, 144, 145, 143, 154, 149, 146, 140, 147, 149, 148, 146, 143, 164, 138, 167, 130, 146, 137, 143, 170, 130, 142, 141, 143, 150, 144, 141, 146, 148, 168, 148, 149, 139, 149, 142, 149, 153, 144, 142, 155, 150, 142, 151, 145, 148, 140, 144, 155, 151, 141, 143, 141, 146, 155, 143, 146, 145, 154, 143, 167, 152, 156, 151, 160, 150, 153, 130, 143, 145, 139, 147, 171, 144, 143, 174, 141, 145, 143, 140, 166, 156, 150, 139, 148, 165, 147, 140, 150, 143, 183, 149, 149, 142, 149, 145, 155, 160, 146, 146, 150, 149, 147, 155, 152, 149, 147, 141, 160, 156, 143, 148, 146, 148, 153, 150, 133, 147, 143, 147, 145, 145, 123, 140, 147, 142, 149, 158, 146, 153, 145, 142, 152, 141, 145, 129, 141, 137, 140, 160, 146, 141, 144, 144, 143, 146, 144, 142, 139, 140, 143, 148, 200, 142, 149, 150, 131, 142, 150, 139, 170, 146, 151, 141, 171, 151, 138, 145, 146, 146, 152, 150, 136, 144, 146, 136, 150, 146, 147, 157, 151, 143, 141, 148, 141, 151, 142, 151, 149, 146, 138, 153, 140, 141, 167, 141, 144, 148, 153, 165, 120, 146, 145, 141, 142, 147, 147, 143, 148, 142, 152, 146, 142, 145, 168, 146, 131, 149, 145, 147, 145, 141, 145, 150, 145, 148, 151, 142, 150, 134, 134, 141, 143, 153, 151, 145, 162, 151, 147, 136, 168, 145, 149, 138, 142, 154, 148, 156, 147, 144, 151, 133, 163, 157, 143, 146, 134, 153, 145, 150, 153, 151, 122, 138, 159, 143, 146, 134, 145, 142, 148, 146, 128, 152, 141, 140, 140, 170, 142, 152, 165, 135, 144, 126, 141, 127, 149, 143, 152, 143, 141, 137, 144, 136, 149, 143, 145, 125, 159, 150, 143, 151, 148, 159, 138, 147, 140, 145, 150, 153, 152, 123, 140, 142, 140, 153, 149, 147, 139, 135, 157, 147, 146, 154, 150, 156, 138, 142, 141, 152, 143, 145, 128, 140, 148, 151, 148, 143, 144, 168, 143, 155, 143, 146, 153, 142, 146, 131, 152, 141, 151, 143, 146, 143, 138, 147, 148, 179, 151, 139, 141, 151, 142, 140, 137, 109, 141, 150, 143, 148, 143, 120, 138, 151, 152, 148, 145, 173, 139, 150, 144, 144, 141, 138, 146, 139, 146, 144, 151, 147, 117, 139, 128, 139, 133, 132, 143, 144, 143, 141, 152, 143, 143, 174, 166, 126, 149, 155, 164, 162, 150, 142, 152, 147, 192, 148, 135, 142, 146, 139, 142, 154, 153, 150, 149, 145, 135, 142, 141, 146, 166, 148, 153, 146, 154, 157, 145, 140, 147, 143, 144, 132, 139, 153, 158, 137, 143, 147, 131, 148, 140, 153, 130, 148, 141, 147, 139, 146, 136, 147, 142, 143, 143, 132, 137, 177, 159, 147, 157, 117, 128, 149, 144, 138, 148, 142, 148, 147, 152, 137, 155, 136, 139, 145, 139, 155, 155, 141, 156, 146, 129, 158, 165, 143, 163, 147, 143, 139, 152, 139, 151, 151, 144, 154, 154, 143, 149, 151, 139, 144, 144, 141, 142, 140, 145, 142, 147, 141, 154, 146, 148, 142, 150, 144, 138, 109, 148, 164, 148, 144, 146, 146, 149, 154, 142, 147, 144, 151, 149, 152, 153, 137, 152, 149, 148, 149, 147, 154, 143, 136, 142, 149, 143, 143, 145, 156, 141, 147, 145, 147, 151, 155, 146, 143, 145, 152, 147, 148, 144, 151, 142, 140, 175, 155, 152, 146, 145, 141, 142, 146, 145, 144, 147, 144, 150, 147, 145, 184, 145, 147, 137, 144, 136, 150, 142, 142, 142, 142, 142, 151, 152, 148, 126, 157, 146, 147, 146, 145, 153, 147, 155, 143, 142, 149, 142, 141, 140, 150, 142, 147, 138, 140, 141, 142, 147, 141, 150, 157, 143, 232, 147, 142, 144, 142, 143, 155, 144, 141, 146, 149, 146, 146, 142, 148, 140, 145, 141, 148, 141, 140, 149, 136, 156, 155, 150, 134, 137, 153, 144, 144, 141, 141, 144, 142, 148, 152, 145, 148, 143, 144, 150, 141, 139, 151, 136, 143, 152, 152, 150, 138, 150, 147, 140, 146, 147, 148, 142, 144, 147, 147, 146, 143, 143, 146, 148, 141, 146, 150, 140, 151, 143, 147, 144, 155, 147, 148, 146, 143, 143, 146, 147, 143, 143, 145, 140, 145, 145, 140, 140, 146, 143, 141, 156, 157, 153, 144, 151, 154, 128, 145, 144, 154, 145, 143, 139, 140, 144, 141, 142, 144, 146, 150, 144, 152, 143, 144, 152, 148, 147, 150, 140, 143, 132, 137, 142, 145, 147, 146, 139, 145, 140, 148, 149, 154, 159, 157, 172, 149, 133, 143, 149, 147, 167, 146, 142, 150, 149, 142, 147, 138, 142, 152, 144, 145, 152, 142, 151, 159, 144, 149, 145, 145, 129, 150, 145, 153, 144, 145, 139, 139, 144, 155, 145, 148, 153, 158, 148, 148, 140, 153, 135, 143, 149, 138, 145, 154, 144, 152, 148, 146, 152, 150, 151, 151, 150, 150, 155, 144, 154, 149, 152, 149, 136, 145, 144, 148, 146, 140, 147, 142, 144, 152, 153, 144, 152, 146, 142, 140, 142, 144, 147, 126, 145, 153, 154, 143, 150, 150, 146, 146, 155, 147, 146, 140, 146, 152, 155, 145, 144, 147, 148, 153, 148, 153, 145, 139, 146, 148, 150, 155, 153, 152, 137, 138, 151, 138, 148, 143, 144, 145, 145, 145, 156, 156, 151, 147, 155, 149, 145, 146, 160, 148, 143, 153, 149, 144, 154, 149, 144, 129, 143, 141, 146, 150, 139, 151, 143, 161, 145, 146, 148, 148, 148, 150, 140, 159, 151, 149, 154, 137, 145, 144, 150, 154, 148, 150, 127, 144, 140, 152, 151, 148, 148, 139, 147, 147, 150, 152, 148, 146, 144, 148, 149, 137, 148, 157, 157, 157, 154, 144, 143, 141, 153, 139, 155, 145, 143, 158, 143, 147, 141, 148, 141, 146, 139, 137, 144, 137, 146, 149, 140, 147, 131, 147, 154, 145, 139, 145, 142, 172, 150, 147, 141, 163, 143, 149, 150, 132, 152, 134, 158, 142, 144, 144, 148, 146, 115, 146, 146, 151, 158, 147, 146, 149, 149, 159, 161, 147, 150, 145, 160, 144, 142, 150, 133, 142, 146, 149, 151, 153, 167, 142, 146, 141, 147, 162, 153, 163, 153, 135, 149, 146, 146, 138, 145, 155, 145, 149, 150, 145, 148, 140, 150, 141, 142, 145, 144, 134, 152, 129, 156, 149, 145, 146, 167, 151, 138, 163, 155, 150, 144, 143, 145, 145, 139, 135, 145, 144, 155, 143, 151, 145, 148, 131, 159, 151, 144, 151, 156, 144, 145, 123, 161, 156, 151, 144, 144, 145, 148, 140, 148, 149, 150, 152, 153, 150, 144, 126, 150, 148, 156, 146, 139, 140, 150, 163, 139, 143, 150, 151, 156, 149, 141, 145, 151, 155, 133, 162, 152, 138, 136, 145, 151, 160, 138, 150, 188, 144, 148, 142, 132, 143, 148, 147, 145, 146, 153, 154, 152, 159, 141, 150, 148, 146, 149, 149, 140, 150, 164, 138, 144, 148, 151, 153, 145, 151, 146, 144, 144, 154, 143, 130, 133, 144, 131, 147, 121, 139, 146, 159, 144, 142, 154, 142, 170, 152, 145, 147, 146, 162, 140, 138, 146, 145, 153, 172, 153, 146, 146, 144, 148, 148, 145, 125, 150, 145, 144, 140, 117, 140, 129, 154, 146, 148, 155, 144, 146, 144, 143, 132, 158, 143, 145, 145, 151, 146, 139, 145, 149, 142, 152, 149, 147, 143, 139, 159, 145, 181, 169, 145, 141, 155, 147, 144, 150, 140, 141, 155, 137, 155, 150, 143, 153, 134, 129, 138, 146, 158, 143, 140, 165, 150, 148, 159, 117, 169, 150, 152, 150, 139, 140, 154, 148, 147, 137, 149, 138, 143, 140, 157, 165, 144, 143, 145, 148, 148, 148, 150, 137, 150, 150, 140, 141, 145, 142, 143, 147, 141, 148, 146, 145, 150, 145, 143, 140, 148, 149, 148, 142, 140, 143, 146, 150, 149, 145, 163, 150, 155, 149, 153, 144, 143, 150, 149, 147, 150, 149, 139, 142, 157, 141, 151, 141, 149, 150, 134, 140, 149, 141, 137, 153, 144, 137, 145, 141, 141, 140, 150, 163, 139, 146, 146, 139, 131, 148, 139, 155, 158, 143, 149, 149, 139, 140, 147, 142, 148, 148, 151, 150, 142, 142, 125, 140, 143, 151, 135, 141, 150, 149, 148, 150, 155, 153, 139, 141, 144, 143, 149, 140, 140, 145, 153, 142, 152, 143, 155, 150, 144, 142, 158, 147, 138, 138, 148, 154, 150, 157, 155, 148, 158, 134, 147, 159, 143, 147, 139, 137, 144, 151, 145, 144, 137, 144, 148, 153, 149, 153, 153, 149, 142, 147, 141, 144, 145, 141, 146, 141, 145, 133, 142, 140, 148, 146, 140, 148, 141, 138, 150, 145, 150, 152, 140, 154, 146, 166, 150, 142, 147, 137, 140, 146, 147, 151, 146, 146, 155, 151, 147, 142, 149, 164, 147, 149, 160, 146, 143, 143, 148, 152, 146, 141, 148, 156, 137, 161, 144, 137, 150, 143, 144, 149, 148, 148, 139, 135, 148, 143, 149, 156, 147, 144, 143, 143, 149, 145, 150, 142, 145, 156, 150, 134, 145, 144, 134, 142, 149, 146, 145, 141, 124, 151, 145, 140, 146, 149, 146, 155, 146, 155, 149, 147, 145, 153, 157, 133, 144, 138, 148, 143, 147, 159, 138, 148, 146, 143, 142, 146, 157, 144, 143, 148, 142, 149, 136, 149, 146, 148, 146, 135, 149, 149, 145, 150, 148, 144, 151, 145, 146, 149, 157, 149, 152, 153, 160, 145, 147, 145, 150, 148, 145, 146, 144, 142, 152, 149, 150, 147, 147, 141, 144, 144, 149, 148, 142, 141, 153, 148, 141, 151, 151, 151, 145, 146, 152, 153, 144, 146, 146, 146, 142, 151, 152, 147, 146, 144, 144, 145, 151, 145, 143, 150, 148, 152, 147, 146, 150, 142, 154, 143, 141, 143, 148, 147, 153, 144, 141, 146, 147, 150, 153, 156, 145, 150, 150, 143, 146, 147, 146, 145, 143, 155, 146, 141, 150, 146, 145, 154, 150, 142, 146, 153, 144, 151, 136, 151, 145, 149, 148, 142, 146, 150, 147, 151, 140, 139, 145, 146, 149, 141, 151, 146, 144, 148, 151, 144, 154, 146, 156, 149, 141, 143, 152, 152, 141, 147, 150, 136, 144, 136, 150, 146, 140, 151, 144, 137, 149, 150, 145, 148, 146, 137, 144, 151, 148, 145, 153, 144, 146, 143, 145, 142, 151, 147, 151, 153, 150, 149, 147, 145, 141, 144, 144, 138, 144, 144, 145, 142, 149, 141, 145, 147, 149, 137, 147, 136, 149, 146, 148, 144, 142, 144, 150, 149, 149, 158, 147, 143, 138, 148, 150, 147, 163, 150, 146, 155, 141, 142, 146, 139, 144, 146, 146, 150, 150, 143, 146, 139, 145, 153, 147, 140, 145, 147, 140, 145, 149, 143, 145, 154, 157, 148, 147, 146, 147, 143, 148, 141, 147, 143, 145, 131, 141, 146, 141, 145, 152, 146, 148, 164, 136, 145, 158, 141, 150, 141, 146, 166, 152, 147, 147, 147, 144, 146, 147, 150, 140, 145, 147, 140, 152, 150, 157, 150, 135, 145, 144, 140, 152, 139, 148, 146, 142, 155, 145, 139, 148, 143, 150, 146, 145, 146, 143, 150, 145, 153, 155, 148, 148, 144, 151, 143, 146, 155, 153, 149, 153, 169, 154, 151, 150, 153, 142, 145, 144, 155, 145, 153, 145, 142, 148, 154, 145, 140, 122, 136, 141, 140, 148, 142, 140, 148, 145, 142, 153, 144, 154, 144, 141, 156, 148, 148, 143, 146, 148, 141, 141, 150, 143, 147, 142, 148, 148, 158, 153, 148, 142, 138, 145, 155, 148, 146, 142, 143, 148, 148, 151, 144, 148, 148, 141, 142, 151, 135, 170, 144, 149, 141, 145, 140, 150, 144, 144, 146, 147, 148, 144, 136, 139, 142, 143, 140, 146, 151, 149, 136, 142, 145, 139, 156, 138, 132, 138, 149, 141, 147, 144, 133, 149, 149, 138, 147, 146, 148, 148, 146, 137, 156, 137, 142, 149, 146, 138, 146, 143, 145, 147, 143, 140, 145, 146, 153, 141, 138, 145, 142, 149, 143, 147, 144, 148, 147, 151, 148, 138, 151, 146, 138, 141, 141, 145, 150, 140, 147, 151, 150, 146, 135, 150, 150, 140, 142, 145, 135, 151, 151, 147, 141, 143, 143, 143, 147, 139, 149, 142, 156, 142, 140, 146, 150, 142, 141, 149, 137, 149, 153, 159, 170, 152, 137, 145, 145, 148, 143, 156, 142, 148, 154, 136, 140, 135, 143, 147, 141, 146, 136, 141, 144, 148, 162, 154, 159, 146, 150, 149, 145, 144, 145, 141, 146, 137, 147, 129, 145, 139, 144, 142, 134, 144, 162, 145, 135, 146, 154, 156, 143, 140, 143, 142, 143, 146, 152, 147, 135, 153, 142, 142, 145, 142, 145, 147, 161, 135, 143, 152, 146, 139, 151, 144, 150, 148, 156, 151, 145, 148, 138, 143, 149, 146, 141, 140, 143, 123, 141, 144, 144, 145, 153, 143, 142, 143, 129, 145, 143, 156, 143, 149, 149, 143, 145, 132, 138, 161, 149, 146, 156, 139, 144, 145, 142, 147, 145, 147, 152, 144, 157, 151, 148, 140, 150, 141, 152, 146, 144, 138, 138, 160, 143, 137, 140, 146, 161, 146, 139, 161, 144, 131, 151, 153, 148, 149, 150, 142, 142, 150, 152, 142, 150, 161, 144, 147, 147, 142, 146, 142, 148, 152, 144, 136, 152, 146, 149, 147, 141, 150, 149, 143, 146, 143, 152, 148, 145, 142, 138, 148, 153, 148, 149, 158, 143, 147, 152, 153, 152, 121, 139, 173, 158, 155, 141, 150, 152, 140, 144, 150, 152, 138, 151, 144, 158, 143, 149, 153, 142, 146, 157, 144, 147, 158, 166, 150, 151, 144, 147, 142, 146, 145, 142, 148, 153, 164, 142, 143, 137, 147, 143, 149, 153, 156, 132, 137, 160, 142, 148, 151, 142, 144, 131, 141, 152, 148, 143, 145, 146, 131, 137, 153, 140, 149, 147, 149, 140, 145, 152, 145, 145, 143, 145, 145, 147, 155, 133, 145, 150, 143, 150, 150, 150, 143, 152, 147, 144, 150, 149, 144, 138, 152, 145, 148, 114, 147, 144, 140, 151, 148, 140, 146, 140, 150, 145, 145, 143, 142, 139, 148, 148, 159, 147, 145, 148, 142, 147, 142, 144, 139, 150, 142, 145, 144, 145, 147, 141, 151, 152, 156, 140, 148, 146, 138, 144, 144, 144, 170, 146, 143, 145, 147, 144, 150, 141, 142, 149, 147, 146, 144, 146, 146, 153, 138, 145, 156, 146, 154, 147, 144, 136, 122, 146, 153, 145, 143, 146, 138, 142, 151, 149, 118, 150, 144, 142, 148, 144, 147, 145, 141, 146, 148, 154, 145, 148, 146, 154, 145, 143, 145, 145, 147, 152, 142, 141, 138, 143, 141, 146, 146, 146, 145, 164, 148, 142, 147, 144, 155, 147, 144, 146, 173, 145, 151, 150, 144, 143, 155, 145, 152, 151, 149, 144, 148, 145, 148, 145, 152, 150, 142, 143, 141, 149, 142, 155, 143, 154, 152, 149, 147, 149, 168, 141, 150, 143, 131, 142, 146, 147, 147, 143, 147, 145, 154, 146, 144, 148, 148, 144, 144, 147, 145, 151, 142, 144, 153, 149, 144, 145, 143, 147, 145, 141, 132, 146, 152, 144, 145, 147, 154, 147, 141, 141, 140, 146, 147, 148, 147, 151, 142, 155, 155, 146, 142, 144, 143, 146, 137, 145, 142, 148, 143, 144, 145, 178, 150, 125, 151, 147, 145, 142, 117, 141, 148, 142, 146, 147, 149, 147, 148, 147, 151, 102, 148, 162, 141, 155, 140, 126, 145, 140, 149, 152, 149, 143, 135, 146, 183, 143, 147, 139, 152, 174, 143, 146, 150, 142, 144, 133, 141, 121, 147, 149, 152, 147, 147, 150, 147, 128, 150, 166, 135, 141, 121, 150, 152, 131, 157, 135, 154, 146, 122, 140, 144, 161, 126, 159, 147, 156, 156, 145, 140, 151, 147, 148, 116, 149, 151, 134, 129, 150, 143, 158, 128, 135, 151, 150, 160, 165, 148, 141, 144, 151, 145, 151, 127, 154, 135, 145, 147, 155, 164, 139, 150, 160, 146, 151, 179, 111, 145, 145, 131, 136, 146, 149, 151, 149, 146, 132, 149, 142, 141, 143, 150, 141, 159, 142, 152, 136, 141, 196, 158, 133, 140, 150, 133, 148, 140, 150, 146, 129, 145, 147, 142, 155, 124, 150, 153, 128, 143, 160, 169, 141, 124, 142, 155, 140, 137, 149, 155, 146, 147, 155, 161, 145, 149, 148, 134, 168, 138, 149, 157, 140, 155, 140, 139, 162, 164, 143, 154, 154, 167, 149, 158, 143, 144, 132, 159, 145, 145, 147, 132, 140, 147, 138, 141, 137, 143, 148, 147, 156, 142, 146, 136, 146, 140, 139, 142, 119, 136, 146, 163, 153, 152, 147, 143, 138, 152, 130, 150, 139, 152, 145, 156, 131, 144, 166, 145, 136, 153, 165, 145, 144, 154, 137, 149, 151, 149, 145, 167, 130, 129, 165, 155, 140, 136, 147, 146, 150, 155, 145, 141, 150, 142, 169, 138, 160, 141, 130, 135, 144, 158, 130, 147, 130, 148, 144, 143, 135, 153, 157, 153, 147, 165, 152, 142, 136, 151, 133, 146, 137, 152, 144, 139, 143, 135, 150, 152, 146, 143, 142, 141, 157, 151, 152, 150, 152, 142, 147, 141, 151, 152, 154, 134, 152, 141, 126, 153, 135, 158, 141, 139, 146, 155, 150, 142, 150, 155, 140, 150, 143, 161, 144, 142, 148, 144, 145, 153, 147, 154, 156, 141, 136, 141, 164, 147, 154, 144, 154, 141, 132, 138, 147, 124, 150, 138, 146, 145, 147, 147, 143, 143, 153, 141, 117, 139, 154, 142, 128, 145, 137, 144, 146, 147, 164, 145, 147, 158, 134, 164, 142, 147, 157, 147, 148, 136, 144, 160, 145, 152, 151, 156, 146, 143, 140, 144, 131, 148, 154, 157, 144, 160, 151, 139, 141, 147, 152, 143, 151, 165, 141, 140, 128, 146, 141, 147, 134, 144, 135, 160, 144, 151, 151, 148, 141, 139, 135, 138, 130, 146, 153, 159, 158, 143, 149, 135, 149, 157, 138, 159, 146, 147, 150, 141, 158, 140, 142, 133, 137, 144, 154, 157, 137, 156, 141, 144, 162, 151, 136, 140, 149, 150, 138, 152, 140, 153, 150, 153, 156, 144, 144, 139, 141, 148, 155, 168, 153, 146, 154, 147, 145, 138, 154, 146, 147, 143, 132, 146, 136, 137, 149, 171, 141, 171, 131, 149, 153, 146, 147, 140, 149, 148, 145, 148, 141, 141, 143, 176, 141, 138, 139, 151, 146, 139, 151, 149, 139, 148, 144, 144, 145, 148, 153, 136, 153, 151, 149, 153, 133, 138, 150, 156, 140, 150, 120, 140, 116, 150, 144, 145, 147, 152, 169, 147, 147, 150, 156, 156, 145, 149, 148, 146, 146, 140, 153, 149, 147, 158, 151, 139, 147, 151, 145, 143, 151, 133, 145, 151, 148, 139, 136, 127, 148, 155, 141, 142, 144, 154, 137, 148, 144, 155, 132, 152, 152, 142, 156, 143, 152, 147, 144, 144, 140, 151, 148, 141, 148, 162, 152, 141, 150, 140, 145, 149, 152, 161, 138, 152, 142, 138, 150, 127, 141, 143, 145, 146, 146, 137, 144, 146, 150, 147, 154, 148, 137, 150, 133, 141, 147, 137, 135, 146, 160, 137, 142, 158, 148, 148, 146, 152, 145, 104, 138, 144, 136, 144, 146, 142, 146, 145, 147, 140, 144, 159, 148, 150, 153, 140, 149, 128, 144, 140, 141, 142, 156, 151, 137, 139, 140, 147, 147, 142, 137, 151, 140, 138, 149, 151, 144, 141, 146, 146, 143, 142, 148, 145, 141, 137, 144, 141, 139, 153, 157, 150, 144, 143, 149, 145, 135, 160, 144, 141, 150, 148, 138, 153, 154, 138, 150, 140, 154, 149, 161, 144, 141, 147, 154, 149, 138, 155, 143, 140, 138, 150, 144, 159, 139, 146, 149, 151, 137, 156, 150, 144, 139, 147, 147, 153, 147, 144, 153, 149, 154, 139, 184, 140, 155, 134, 144, 149, 137, 148, 160, 147, 146, 151, 147, 150, 147, 118, 142, 142, 169, 136, 148, 151, 157, 147, 149, 125, 153, 154, 148, 144, 142, 139, 147, 141, 158, 144, 126, 144, 150, 144, 142, 144, 147, 146, 161, 143, 155, 154, 152, 149, 150, 149, 146, 150, 146, 143, 140, 147, 145, 143, 145, 140, 138, 156, 153, 150, 139, 145, 137, 146, 139, 165, 144, 147, 133, 155, 145, 151, 140, 144, 137, 149, 140, 138, 142, 148, 148, 148, 141, 144, 165, 138, 140, 144, 148, 136, 151, 150, 147, 144, 140, 146, 147, 145, 143, 148, 140, 147, 149, 136, 138, 148, 141, 143, 160, 147, 141, 148, 139, 145, 142, 147, 161, 147, 161, 142, 155, 149, 149, 147, 146, 134, 147, 130, 141, 146, 152, 139, 152, 142, 140, 142, 141, 145, 147, 148, 154, 143, 146, 146, 143, 134, 145, 160, 154, 150, 151, 145, 147, 146, 144, 145, 148, 167, 155, 142, 161, 143, 145, 145, 152, 155, 146, 146, 144, 156, 143, 149, 151, 146, 141, 147, 159, 150, 141, 149, 147, 141, 141, 150, 145, 131, 146, 139, 152, 149, 142, 139, 136, 131, 139, 141, 149, 146, 140, 146, 146, 145, 144, 143, 139, 142, 163, 134, 154, 146, 143, 135, 152, 148, 151, 148, 145, 143, 143, 139, 144, 149, 138, 150, 156, 142, 151, 140, 141, 138, 145, 160, 133, 155, 139, 141, 150, 141, 150, 148, 148, 143, 142, 146, 159, 148, 141, 151, 139, 149, 135, 144, 145, 151, 160, 143, 152, 152, 144, 139, 151, 146, 151, 150, 149, 154, 144, 145, 156, 141, 148, 148, 151, 152, 146, 146, 142, 147, 151, 139, 147, 142, 142, 136, 151, 138, 147, 145, 146, 151, 139, 148, 151, 145, 140, 157, 143, 138, 143, 141, 145, 146, 142, 163, 142, 149, 146, 149, 150, 147, 141, 144, 142, 141, 147, 150, 152, 150, 151, 145, 147, 146, 144, 121, 152, 136, 146, 146, 147, 148, 150, 145, 147, 152, 141, 148, 138, 142, 144, 161, 147, 148, 145, 146, 149, 149, 154, 146, 150, 144, 148, 146, 155, 146, 155, 149, 142, 150, 144, 140, 142, 150, 146, 140, 157, 144, 137, 144, 151, 138, 150, 148, 145, 152, 151, 149, 144, 144, 146, 153, 142, 145, 152, 144, 147, 145, 141, 142, 145, 145, 141, 144, 136, 150, 145, 149, 139, 149, 147, 148, 148, 146, 139, 146, 142, 117, 149, 149, 146, 145, 151, 151, 139, 144, 148, 151, 146, 148, 141, 157, 143, 136, 149, 145, 156, 148, 147, 148, 147, 149, 146, 153, 149, 140, 143, 151, 140, 149, 137, 141, 148, 142, 146, 148, 143, 147, 143, 147, 141, 149, 117, 149, 144, 156, 138, 147, 149, 144, 150, 146, 142, 137, 146, 146, 144, 149, 147, 147, 141, 138, 149, 150, 129, 139, 136, 150, 143, 145, 149, 146, 141, 146, 145, 143, 152, 140, 140, 140, 139, 151, 146, 148, 146, 137, 141, 141, 149, 155, 150, 144, 144, 142, 147, 141, 144, 150, 149, 151, 147, 147, 151, 151, 143, 142, 145, 151, 146, 154, 138, 148, 147, 144, 135, 129, 143, 155, 146, 146, 147, 146, 136, 148, 146, 134, 147, 145, 145, 153, 141, 134, 142, 147, 139, 156, 150, 149, 150, 145, 137, 145, 152, 152, 135, 150, 152, 145, 144, 148, 137, 143, 134, 147, 151, 144, 155, 132, 149, 163, 145, 140, 152, 130, 145, 145, 146, 154, 138, 135, 152, 142, 172, 155, 150, 138, 151, 159, 158, 144, 159, 136, 156, 129, 142, 141, 148, 146, 145, 151, 150, 150, 145, 156, 140, 146, 146, 98, 158, 145, 137, 145, 140, 138, 143, 154, 145, 138, 142, 150, 125, 146, 143, 146, 140, 137, 160, 152, 141, 140, 122, 150, 159, 137, 139, 145, 150, 146, 164, 151, 137, 142, 148, 142, 125, 134, 148, 142, 156, 130, 141, 147, 144, 137, 122, 134, 151, 147, 149, 150, 147, 150, 142, 145, 135, 141, 149, 146, 149, 150, 142, 151, 147, 131, 138, 131, 142, 152, 146, 151, 153, 145, 136, 139, 147, 158, 134, 153, 147, 139, 142, 143, 149, 156, 136, 138, 156, 136, 148, 144, 160, 146, 151, 146, 154, 145, 142, 146, 141, 166, 140, 153, 139, 147, 164, 138, 148, 145, 152, 156, 145, 151, 141, 156, 158, 153, 131, 146, 141, 158, 140, 149, 152, 139, 141, 149, 145, 142, 120, 141, 149, 148, 151, 133, 129, 143, 158, 150, 163, 148, 154, 152, 154, 152, 142, 149, 150, 135, 132, 144, 161, 148, 163, 143, 158, 154, 142, 161, 146, 143, 146, 150, 151, 147, 154, 135, 143, 147, 152, 148, 150, 137, 147, 138, 145, 148, 151, 154, 150, 144, 143, 151, 144, 144, 147, 144, 152, 132, 145, 123, 154, 139, 144, 118, 141, 144, 145, 141, 151, 143, 144, 150, 136, 152, 148, 147, 145, 150, 151, 155, 145, 149, 145, 140, 144, 151, 142, 149, 147, 145, 157, 142, 135, 135, 144, 159, 145, 151, 159, 143, 149, 147, 147, 164, 146, 150, 150, 128, 139, 116, 142, 140, 149, 145, 143, 145, 147, 142, 150, 144, 152, 144, 143, 145, 140, 148, 140, 144, 146, 142, 143, 155, 146, 138, 151, 141, 138, 147, 141, 152, 146, 153, 141, 142, 147, 138, 142, 135, 144, 147, 142, 143, 151, 142, 142, 147, 139, 146, 142, 145, 129, 141, 143, 140, 138, 138, 138, 152, 145, 150, 152, 156, 139, 147, 141, 137, 150, 148, 145, 143, 153, 143, 149, 147, 143, 150, 146, 141, 154, 149, 143, 149, 147, 142, 150, 148, 136, 147, 147, 145, 150, 147, 146, 141, 148, 145, 132, 145, 138, 139, 154, 155, 137, 137, 145, 152, 148, 157, 146, 139, 139, 156, 139, 155, 138, 140, 139, 147, 142, 148, 169, 143, 148, 147, 136, 142, 158, 157, 149, 135, 151, 129, 142, 149, 151, 140, 141, 146, 135, 143, 151, 141, 153, 145, 146, 146, 149, 127, 141, 146, 145, 155, 191, 144, 144, 137, 154, 138, 147, 147, 151, 143, 146, 137, 146, 144, 141, 140, 149, 141, 151, 142, 154, 148, 150, 148, 140, 155, 151, 137, 147, 152, 193, 149, 146, 141, 152, 142, 150, 140, 142, 145, 146, 146, 149, 150, 132, 149, 148, 155, 145, 142, 129, 132, 140, 141, 147, 149, 147, 148, 139, 137, 136, 144, 145, 142, 142, 149, 146, 143, 146, 144, 144, 148, 146, 149, 147, 149, 146, 143, 148, 148, 142, 149, 148, 146, 140, 142, 144, 144, 149, 148, 144, 140, 146, 142, 142, 136, 141, 146, 147, 150, 145, 146, 148, 143, 147, 145, 149, 151, 143, 147, 144, 146, 151, 152, 147, 111, 145, 150, 153, 142, 148, 143, 147, 124, 144, 148, 145, 148, 150, 147, 149, 154, 148, 143, 157, 146, 154, 150, 149, 142, 149, 147, 147, 144, 147, 138, 144, 150, 148, 153, 149, 142, 152, 142, 139, 150, 142, 146, 145, 149, 145, 149, 149, 142, 134, 149, 146, 148, 150, 147, 139, 154, 144, 142, 146, 145, 140, 131, 136, 144, 146, 148, 144, 145, 140, 142, 146, 152, 154, 142, 145, 143, 141, 151, 145, 144, 163, 143, 144, 145, 142, 141, 159, 155, 152, 142, 149, 140, 138, 147, 147, 153, 142, 152, 129, 142, 147, 142, 144, 145, 149, 149, 148, 145, 143, 149, 142, 147, 143, 145, 149, 145, 147, 147, 119, 147, 143, 149, 137, 124, 142, 148, 147, 175, 150, 142, 147, 144, 168, 149, 147, 148, 144, 139, 142, 152, 149, 151, 145, 139, 144, 145, 146, 150, 166, 144, 139, 147, 145, 149, 118, 172, 132, 121, 151, 150, 148, 134, 148, 142, 144, 152, 149, 146, 145, 143, 143, 150, 143, 146, 151, 144, 146, 152, 143, 138, 144, 146, 143, 145, 149, 147, 133, 138, 144, 141, 144, 148, 143, 137, 144, 145, 145, 144, 144, 141, 149, 138, 143, 152, 155, 157, 146, 136, 170, 146, 149, 149, 147, 153, 152, 146, 140, 127, 155, 163, 147, 153, 145, 182, 152, 149, 143, 154, 140, 141, 142, 142, 145, 145, 144, 142, 143, 137, 150, 139, 146, 131, 145, 159, 148, 138, 152, 141, 123, 122, 145, 113, 135, 133, 148, 149, 150, 139, 138, 140, 155, 147, 142, 136, 148, 147, 143, 144, 185, 150, 153, 148, 138, 135, 143, 151, 139, 145, 134, 150, 148, 155, 139, 220, 147, 145, 153, 142, 135, 148, 154, 152, 137, 130, 152, 152, 160, 144, 108, 163, 143, 150, 147, 137, 135, 154, 143, 150, 142, 147, 150, 146, 142, 144, 147, 145, 142, 146, 147, 144, 160, 145, 140, 153, 146, 171, 145, 149, 134, 149, 124, 145, 154, 148, 146, 178, 156, 153, 142, 145, 142, 143, 139, 142, 140, 121, 159, 159, 143, 140, 153, 131, 139, 146, 149, 160, 147, 135, 144, 146, 152, 146, 150, 138, 127, 159, 141, 141, 129, 152, 157, 142, 139, 144, 154, 136, 151, 144, 131, 141, 146, 148, 148, 140, 140, 139, 142, 134, 147, 151, 152, 150, 131, 164, 143, 130, 133, 144, 142, 145, 155, 144, 169, 145, 144, 148, 137, 144, 141, 144, 135, 134, 141, 141, 139, 145, 139, 153, 162, 146, 147, 154, 147, 145, 115, 136, 141, 145, 146, 150, 143, 141, 149, 142, 155, 140, 141, 135, 144, 134, 156, 149, 150, 152, 171, 150, 144, 140, 116, 161, 145, 143, 151, 147, 147, 149, 140, 145, 148, 153, 148, 138, 144, 144, 142, 150, 155, 146, 146, 143, 148, 148, 144, 145, 141, 148, 141, 150, 142, 148, 142, 142, 141, 145, 149, 147, 146, 142, 138, 146, 154, 138, 152, 144, 143, 151, 146, 148, 143, 150, 152, 146, 153, 152, 152, 145, 138, 144, 144, 143, 151, 146, 145, 151, 149, 146, 149, 126, 138, 150, 144, 134, 143, 142, 146, 148, 144, 156, 142, 152, 150, 143, 143, 140, 151, 143, 147, 145, 149, 148, 143, 143, 145, 149, 148, 150, 146, 144, 148, 148, 149, 148, 139, 140, 140, 145, 139, 146, 152, 151, 144, 152, 150, 140, 143, 150, 152, 148, 144, 148, 146, 145, 150, 164, 147, 153, 148, 149, 145, 146, 151, 145, 140, 145, 145, 111, 148, 134, 152, 140, 142, 145, 147, 145, 138, 146, 150, 146, 147, 148, 148, 140, 143, 147, 151, 146, 148, 147, 148, 146, 145, 146, 151, 143, 138, 146, 149, 146, 143, 143, 146, 143, 146, 147, 153, 145, 145, 162, 152, 134, 149, 146, 148, 147, 147, 153, 145, 146, 143, 142, 148, 148, 143, 144, 144, 146, 135, 138, 144, 146, 141, 146, 150, 150, 149, 147, 145, 143, 142, 147, 153, 144, 151, 150, 145, 159, 151, 144, 149, 141, 146, 150, 144, 144, 150, 147, 146, 146, 146, 147, 145, 150, 150, 143, 149, 147, 144, 150, 143, 144, 158, 141, 144, 152, 147, 149, 144, 144, 154, 142, 144, 155, 144, 145, 147, 148, 140, 150, 146, 147, 149, 142, 143, 148, 147, 148, 139, 135, 144, 148, 145, 139, 143, 150, 147, 145, 149, 142, 138, 145, 146, 149, 148, 148, 133, 148, 150, 143, 142, 144, 142, 142, 147, 151, 151, 149, 145, 146, 145, 148, 145, 144, 146, 137, 138, 144, 139, 141, 144, 140, 149, 151, 146, 146, 151, 142, 149, 139, 148, 135, 151, 149, 133, 135, 143, 138, 152, 146, 151, 144, 140, 144, 143, 151, 141, 136, 155, 154, 147, 138, 148, 150, 149, 161, 154, 146, 143, 152, 140, 149, 145, 147, 148, 141, 151, 156, 137, 145, 142, 140, 152, 156, 140, 147, 142, 141, 148, 143, 143, 145, 147, 146, 145, 135, 157, 134, 142, 150, 145, 147, 145, 145, 144, 143, 141, 142, 144, 147, 140, 147, 145, 140, 144, 143, 141, 145, 145, 136, 139, 152, 145, 153, 133, 150, 148, 144, 145, 149, 147, 139, 141, 158, 144, 148, 144, 136, 132, 147, 141, 142, 138, 140, 144, 134, 139, 144, 141, 158, 140, 150, 157, 139, 142, 144, 149, 150, 152, 142, 128, 149, 147, 140, 134, 156, 146, 150, 150, 146, 145, 140, 150, 137, 139, 144, 147, 144, 136, 147, 143, 144, 141, 137, 141, 141, 151, 144, 149, 147, 143, 145, 139, 146, 148, 142, 144, 144, 146, 151, 141, 151, 137, 140, 148, 138, 149, 150, 148, 147, 143, 139, 134, 143, 149, 135, 145, 144, 137, 141, 153, 136, 151, 139, 145, 139, 143, 139, 146, 141, 144, 145, 150, 143, 151, 152, 144, 145, 143, 144, 138, 151, 143, 148, 145, 146, 143, 139, 143, 145, 145, 145, 153, 154, 139, 142, 149, 153, 147, 150, 155, 150, 143, 124, 150, 147, 147, 149, 153, 144, 151, 146, 144, 145, 146, 149, 146, 142, 136, 143, 149, 149, 142, 143, 146, 145, 145, 148, 142, 143, 145, 151, 148, 146, 145, 143, 145, 143, 144, 139, 147, 142, 147, 144, 148, 147, 144, 141, 90, 153, 144, 147, 146, 146, 147, 155, 151, 148, 146, 145, 141, 151, 144, 143, 145, 148, 139, 144, 161, 135, 143, 150, 145, 151, 145, 147, 148, 143, 114, 156, 147, 149, 151, 146, 142, 145, 141, 154, 148, 153, 148, 143, 146, 146, 144, 146, 134, 140, 145, 150, 133, 143, 148, 140, 148, 143, 146, 151, 145, 144, 135, 141, 146, 139, 137, 150, 144, 147, 142, 146, 138, 146, 143, 142, 145, 144, 150, 145, 141, 153, 145, 155, 144, 146, 150, 144, 148, 148, 143, 143, 128, 147, 147, 148, 147, 146, 141, 145, 158, 146, 139, 148, 149, 148, 144, 146, 148, 143, 149, 145, 146, 148, 144, 149, 148, 143, 142, 150, 147, 144, 144, 143, 142, 142, 147, 145, 147, 144, 148, 148, 142, 148, 140, 149, 144, 144, 148, 142, 155, 147, 148, 141, 146, 139, 157, 143, 140, 146, 136, 148, 145, 149, 148, 149, 153, 145, 146, 142, 148, 144, 142, 145, 140, 143, 148, 147, 145, 148, 144, 144, 144, 146, 144, 145, 136, 144, 147, 148, 132, 158, 141, 146, 146, 146, 142, 148, 145, 150, 153, 149, 140, 145, 145, 144, 140, 147, 148, 137, 150, 142, 137, 142, 141, 153, 149, 154, 150, 142, 147, 137, 167, 153, 142, 122, 144, 138, 131, 138, 157, 135, 145, 151, 143, 131, 146, 170, 137, 139, 142, 137, 147, 138, 151, 138, 151, 149, 149, 141, 165, 139, 149, 139, 145, 138, 122, 154, 144, 143, 142, 142, 145, 149, 163, 153, 144, 146, 143, 153, 141, 145, 138, 147, 159, 145, 147, 168, 152, 143, 132, 149, 140, 158, 140, 138, 145, 143, 129, 149, 150, 153, 162, 146, 182, 142, 150, 131, 142, 153, 147, 142, 160, 144, 141, 150, 139, 153, 145, 123, 133, 152, 147, 172, 137, 145, 153, 141, 146, 138, 150, 140, 141, 152, 147, 157, 148, 149, 146, 142, 145, 130, 138, 143, 148, 135, 151, 154, 146, 148, 142, 151, 151, 146, 133, 139, 147, 147, 149, 140, 148, 150, 166, 150, 163, 132, 156, 160, 142, 150, 145, 122, 150, 138, 150, 138, 148, 145, 143, 150, 145, 153, 149, 161, 143, 152, 147, 144, 143, 146, 157, 143, 138, 142, 130, 158, 161, 145, 148, 165, 151, 141, 149, 144, 145, 138, 131, 151, 141, 151, 145, 156, 147, 152, 142, 141, 144, 148, 147, 153, 131, 155, 141, 157, 140, 145, 151, 141, 140, 152, 137, 145, 144, 138, 148, 149, 148, 137, 141, 151, 150, 129, 140, 151, 142, 140, 149, 154, 153, 153, 139, 148, 146, 147, 156, 148, 146, 150, 137, 153, 146, 147, 138, 127, 131, 148, 144, 142, 147, 143, 150, 137, 148, 135, 140, 147, 146, 148, 146, 140, 158, 147, 148, 148, 146, 148, 140, 146, 149, 145, 139, 148, 145, 145, 153, 144, 141, 155, 161, 148, 145, 140, 151, 144, 147, 146, 143, 146, 142, 153, 146, 157, 143, 146, 151, 152, 147, 147, 159, 149, 144, 141, 146, 140, 137, 145, 134, 146, 151, 144, 146, 146, 145, 154, 144, 122, 144, 147, 155, 143, 140, 145, 146, 144, 146, 148, 135, 149, 151, 157, 150, 152, 149, 146, 146, 149, 136, 147, 147, 143, 145, 155, 151, 151, 142, 147, 141, 147, 144, 149, 146, 148, 149, 148, 146, 143, 139, 147, 146, 147, 143, 149, 143, 151, 144, 147, 145, 145, 148, 149, 149, 139, 149, 143, 144, 147, 142, 144, 145, 151, 148, 145, 137, 142, 145, 144, 143, 151, 140, 143, 145, 151, 158, 141, 144, 148, 142, 146, 146, 146, 144, 143, 142, 144, 145, 148, 144, 149, 143, 162, 152, 143, 147, 153, 142, 140, 144, 144, 149, 154, 145, 140, 144, 150, 150, 149, 147, 144, 148, 146, 150, 143, 141, 142, 123, 140, 145, 144, 147, 145, 149, 148, 148, 151, 150, 141, 147, 146, 146, 137, 130, 145, 142, 140, 145, 143, 148, 145, 155, 148, 149, 144, 148, 135, 152, 147, 147, 144, 143, 142, 145, 163, 139, 139, 147, 143, 154, 144, 148, 146, 144, 141, 150, 145, 147, 147, 143, 145, 146, 143, 153, 145, 146, 144, 145, 150, 142, 148, 143, 146, 146, 158, 146, 153, 145, 136, 146, 145, 147, 149, 142, 147, 142, 142, 148, 142, 154, 153, 150, 140, 150, 157, 152, 141, 146, 146, 146, 138, 143, 136, 155, 147, 161, 151, 139, 153, 145, 144, 130, 147, 149, 137, 140, 153, 142, 149, 150, 141, 139, 141, 149, 151, 145, 141, 151, 151, 149, 145, 156, 142, 143, 146, 145, 170, 144, 142, 146, 150, 153, 147, 144, 141, 140, 158, 147, 140, 146, 146, 145, 156, 145, 141, 149, 143, 151, 148, 147, 155, 145, 145, 156, 138, 150, 144, 150, 148, 151, 157, 134, 153, 143, 144, 134, 161, 147, 146, 146, 153, 133, 144, 148, 150, 141, 150, 153, 146, 144, 148, 148, 145, 134, 152, 140, 151, 169, 147, 149, 145, 141, 146, 144, 139, 151, 152, 148, 143, 147, 164, 139, 144, 149, 154, 149, 158, 140, 134, 143, 133, 149, 127, 149, 144, 152, 142, 152, 133, 138, 147, 149, 137, 145, 151, 151, 133, 157, 139, 149, 155, 143, 148, 148, 144, 148, 136, 150, 137, 138, 140, 143, 135, 152, 131, 145, 141, 148, 145, 151, 155, 144, 142, 140, 144, 132, 132, 147, 149, 140, 141, 141, 150, 136, 146, 133, 152, 142, 144, 146, 146, 119, 150, 143, 153, 145, 155, 140, 141, 143, 134, 145, 139, 158, 154, 143, 145, 138, 138, 149, 140, 142, 145, 138, 152, 150, 149, 144, 137, 149, 137, 145, 149, 147, 151, 138, 145, 133, 148, 138, 144, 162, 146, 143, 141, 144, 150, 147, 145, 150, 139, 141, 146, 143, 148, 145, 143, 163, 140, 147, 148, 146, 149, 149, 147, 161, 147, 147, 131, 144, 140, 137, 166, 149, 147, 149, 146, 140, 171, 149, 150, 122, 142, 158, 140, 143, 145, 148, 144, 149, 139, 152, 151, 150, 151, 144, 146, 135, 134, 144, 155, 150, 153, 138, 145, 149, 152, 138, 145, 147, 145, 146, 158, 143, 149, 138, 135, 128, 148, 145, 143, 140, 140, 152, 95, 160, 154, 138, 147, 170, 144, 144, 144, 152, 145, 149, 144, 145, 115, 141, 144, 154, 128, 146, 137, 149, 153, 113, 147, 144, 135, 145, 137, 142, 154, 144, 149, 146, 155, 140, 155, 139, 146, 139, 142, 145, 156, 145, 146, 154, 149, 149, 150, 143, 146, 149, 144, 145, 140, 164, 146, 143, 148, 145, 136, 146, 164, 145, 144, 155, 147, 154, 138, 152, 132, 140, 164, 142, 170, 145, 153, 145, 140, 162, 133, 147, 151, 145, 134, 136, 151, 142, 140, 158, 142, 132, 142, 136, 148, 159, 142, 133, 135, 148, 142, 152, 147, 145, 136, 142, 144, 151, 158, 141, 139, 145, 157, 150, 133, 144, 148, 135, 159, 157, 149, 148, 136, 150, 141, 137, 148, 149, 150, 151, 143, 152, 141, 219, 151, 154, 147, 158, 147, 137, 152, 160, 143, 150, 138, 144, 154, 162, 155, 154, 153, 142, 144, 153, 155, 148, 149, 149, 138, 149, 164, 146, 154, 143, 144, 154, 146, 143, 154, 156, 149, 144, 150, 164, 145, 141, 143, 146, 159, 145, 146, 144, 138, 130, 160, 144, 130, 152, 147, 152, 153, 147, 146, 157, 136, 142, 142, 154, 137, 161, 138, 143, 144, 144, 148, 157, 151, 145, 150, 145, 144, 159, 132, 152, 125, 148, 151, 157, 126, 143, 148, 151, 134, 150, 135, 151, 145, 142, 159, 144, 146, 149, 144, 143, 153, 128, 141, 146, 145, 138, 146, 86, 139, 144, 142, 145, 138, 147, 138, 141, 146, 144, 149, 138, 143, 144, 145, 143, 137, 138, 152, 147, 148, 131, 148, 152, 146, 152, 172, 144, 143, 154, 154, 142, 154, 144, 139, 138, 131, 144, 144, 142, 155, 142, 144, 146, 164, 137, 154, 138, 144, 145, 146, 139, 142, 143, 145, 151, 148, 145, 139, 141, 135, 151, 146, 145, 141, 145, 149, 145, 151, 145, 149, 135, 139, 146, 150, 149, 147, 143, 151, 152, 134, 153, 150, 145, 135, 143, 141, 137, 147, 147, 148, 144, 146, 143, 152, 144, 141, 136, 135, 147, 151, 139, 139, 135, 238, 148, 142, 146, 147, 156, 141, 150, 146, 140, 131, 160, 144, 147, 143, 146, 159, 149, 158, 171, 142, 147, 151, 141, 144, 153, 141, 144, 149, 152, 132, 146, 150, 144, 144, 146, 153, 151, 153, 141, 137, 138, 142, 148, 157, 146, 147, 156, 145, 143, 140, 160, 147, 138, 158, 123, 155, 145, 146, 153, 139, 131, 163, 145, 137, 145, 142, 156, 143, 137, 147, 120, 148, 152, 139, 177, 135, 156, 150, 146, 139, 155, 150, 149, 144, 152, 153, 152, 146, 142, 159, 143, 138, 153, 137, 149, 155, 142, 152, 148, 151, 152, 144, 150, 149, 148, 160, 130, 144, 133, 150, 144, 143, 151, 143, 141, 145, 133, 173, 145, 148, 139, 151, 149, 138, 147, 136, 154, 151, 142, 148, 150, 146, 142, 141, 157, 145, 133, 161, 146, 143, 146, 143, 142, 145, 128, 149, 137, 143, 150, 146, 150, 137, 141, 145, 139, 142, 135, 138, 143, 148, 146, 167, 156, 132, 141, 146, 154, 140, 149, 130, 150, 141, 156, 143, 138, 140, 142, 143, 142, 147, 143, 150, 133, 143, 163, 146, 147, 143, 146, 145, 152, 150, 147, 145, 147, 147, 142, 144, 148, 150, 160, 141, 148, 151, 147, 135, 145, 148, 152, 145, 150, 143, 154, 154, 140, 148, 155, 145, 144, 139, 147, 144, 149, 137, 148, 146, 143, 137, 144, 139, 150, 142, 146, 143, 155, 143, 149, 148, 141, 145, 148, 149, 151, 143, 153, 147, 145, 155, 149, 147, 147, 147, 141, 142, 144, 148, 147, 141, 150, 153, 154, 163, 149, 142, 148, 134, 147, 147, 151, 142, 153, 143, 148, 142, 149, 152, 148, 150, 145, 157, 134, 143, 144, 158, 151, 144, 144, 146, 132, 145, 145, 142, 149, 149, 150, 141, 132, 150, 144, 137, 149, 149, 145, 141, 135, 147, 146, 146, 141, 156, 145, 148, 139, 148, 147, 158, 145, 143, 144, 144, 147, 155, 138, 144, 136, 143, 137, 145, 147, 144, 142, 143, 147, 150, 153, 139, 145, 144, 145, 141, 143, 158, 126, 148, 156, 145, 135, 136, 145, 143, 145, 142, 143, 137, 146, 148, 143, 151, 147, 146, 146, 145, 154, 145, 141, 146, 143, 147, 145, 145, 151, 149, 152, 137, 143, 144, 144, 145, 140, 143, 144, 144, 150, 134, 147, 147, 148, 147, 145, 147, 151, 142, 147, 140, 143, 145, 124, 149, 145, 151, 140, 142, 155, 141, 148, 144, 151, 157, 134, 143, 149, 150, 163, 148, 144, 135, 148, 133, 143, 144, 157, 144, 146, 147, 146, 142, 147, 134, 144, 143, 149, 148, 142, 145, 143, 149, 145, 145, 150, 149, 138, 149, 144, 146, 146, 142, 145, 143, 148, 151, 146, 146, 144, 143, 145, 144, 140, 139, 148, 146, 148, 147, 141, 144, 146, 139, 146, 143, 146, 146, 150, 147, 166, 149, 145, 146, 145, 146, 143, 144, 140, 153, 143, 141, 146, 142, 147, 154, 147, 148, 141, 147, 147, 145, 142, 138, 147, 148, 145, 145, 147, 146, 155, 151, 146, 141, 146, 147, 146, 140, 143, 149, 145, 140, 147, 146, 136, 147, 144, 149, 148, 148, 148, 142, 146, 147, 148, 144, 151, 149, 143, 150, 143, 149, 145, 153, 138, 153, 142, 140, 146, 143, 143, 145, 146, 141, 148, 158, 146, 143, 145, 153, 140, 146, 144, 147, 143, 145, 146, 146, 158, 141, 143, 146, 150, 146, 141, 145, 146, 149, 144, 139, 145, 151, 149, 141, 143, 150, 150, 142, 141, 148, 158, 144, 141, 147, 151, 145, 136, 148, 149, 149, 144, 145, 145, 144, 152, 144, 144, 147, 133, 146, 154, 150, 147, 146, 144, 148, 141, 149, 145, 147, 149, 146, 144, 151, 147, 146, 146, 143, 150, 147, 147, 145, 146, 148, 149, 146, 149, 142, 140, 164, 148, 147, 145, 148, 147, 143, 144, 145, 142, 145, 155, 141, 148, 143, 144, 145, 143, 146, 152, 146, 147, 139, 142, 136, 149, 150, 145, 141, 145, 158, 145, 145, 150, 139, 145, 149, 144, 142, 148, 145, 141, 146, 147, 151, 147, 121, 145, 142, 146, 143, 150, 146, 144, 149, 146, 145, 145, 149, 137, 146, 145, 151, 145, 152, 142, 149, 146, 150, 147, 153, 146, 148, 154, 156, 141, 143, 147, 150, 145, 152, 147, 141, 147, 149, 145, 144, 149, 145, 143, 151, 159, 145, 140, 141, 131, 139, 144, 148, 143, 143, 155, 146, 146, 142, 145, 141, 135, 155, 143, 144, 142, 151, 144, 144, 147, 147, 148, 147, 144, 145, 145, 153, 146, 147, 155, 153, 143, 142, 149, 147, 136, 146, 147, 147, 142, 148, 154, 139, 146, 147, 144, 147, 134, 146, 144, 148, 148, 147, 140, 155, 146, 143, 149, 152, 146, 143, 152, 141, 151, 148, 142, 152, 146, 149, 131, 148, 146, 146, 147, 143, 150, 146, 151, 143, 146, 144, 143, 152, 145, 151, 144, 145, 147, 150, 149, 144, 143, 154, 146, 143, 149, 135, 143, 146, 152, 149, 144, 144, 151, 143, 149, 147, 146, 143, 145, 148, 149, 143, 144, 125, 147, 141, 144, 144, 166, 144, 141, 145, 138, 158, 145, 148, 145, 143, 146, 143, 147, 145, 146, 126, 147, 151, 145, 152, 142, 152, 149, 135, 145, 148, 141, 184, 142, 142, 146, 138, 146, 148, 135, 138, 147, 152, 133, 137, 150, 149, 146, 145, 144, 157, 155, 146, 143, 140, 149, 146, 143, 141, 142, 140, 152, 165, 149, 128, 149, 145, 142, 148, 151, 149, 144, 145, 131, 147, 152, 142, 139, 143, 146, 135, 139, 146, 141, 146, 149, 126, 146, 165, 146, 144, 151, 149, 153, 138, 143, 148, 150, 157, 152, 145, 134, 139, 139, 146, 148, 149, 148, 146, 155, 151, 142, 146, 162, 147, 146, 150, 141, 138, 152, 150, 147, 145, 146, 138, 155, 151, 147, 147, 145, 167, 140, 155, 147, 149, 132, 156, 147, 143, 147, 143, 146, 144, 143, 162, 147, 140, 148, 148, 140, 148, 146, 146, 147, 138, 153, 136, 148, 147, 142, 140, 145, 146, 147, 142, 140, 145, 143, 139, 145, 148, 150, 139, 146, 149, 157, 151, 149, 127, 137, 159, 147, 151, 148, 143, 149, 136, 156, 153, 147, 138, 141, 153, 140, 140, 141, 145, 154, 150, 150, 149, 151, 130, 155, 145, 144, 136, 156, 145, 143, 147, 143, 145, 147, 146, 141, 150, 141, 147, 148, 149, 140, 146, 135, 149, 153, 161, 146, 154, 148, 152, 145, 166, 150, 146, 142, 161, 148, 146, 148, 137, 150, 153, 147, 147, 140, 145, 152, 143, 145, 149, 145, 144, 144, 146, 147, 149, 152, 145, 153, 135, 146, 138, 149, 149, 147, 150, 146, 130, 144, 145, 147, 153, 143, 153, 140, 157, 146, 144, 149, 146, 146, 165, 174, 133, 149, 154, 142, 151, 152, 148, 144, 145, 149, 151, 177, 149, 148, 146, 156, 152, 145, 140, 136, 89, 145, 129, 142, 147, 141, 138, 151, 141, 145, 150, 148, 150, 147, 140, 148, 144, 144, 154, 143, 149, 151, 151, 158, 149, 128, 156, 143, 145, 157, 144, 146, 149, 136, 139, 153, 148, 149, 151, 147, 143, 136, 141, 141, 132, 133, 143, 149, 138, 146, 148, 140, 156, 147, 143, 159, 144, 147, 140, 138, 145, 149, 141, 148, 154, 161, 132, 143, 134, 148, 154, 138, 152, 150, 148, 147, 146, 148, 148, 135, 143, 132, 159, 151, 151, 144, 145, 148, 141, 135, 142, 144, 144, 144, 155, 141, 222, 144, 150, 146, 149, 137, 145, 142, 146, 141, 153, 133, 142, 146, 140, 139, 146, 148, 147, 139, 141, 147, 150, 153, 143, 144, 145, 133, 140, 154, 137, 150, 149, 147, 133, 142, 169, 149, 129, 149, 142, 142, 151, 146, 136, 147, 140, 147, 148, 136, 137, 150, 147, 123, 152, 135, 153, 146, 138, 136, 146, 146, 135, 160, 145, 155, 130, 150, 148, 153, 145, 155, 146, 145, 146, 143, 150, 148, 170, 156, 141, 148, 146, 143, 149, 145, 154, 140, 145, 138, 143, 147, 144, 150, 141, 144, 149, 141, 137, 149, 132, 119, 138, 125, 132, 153, 165, 140, 153, 139, 145, 145, 149, 151, 139, 144, 150, 147, 150, 135, 147, 147, 144, 138, 119, 153, 143, 135, 147, 164, 153, 147, 169, 146, 150, 148, 141, 143, 147, 144, 160, 149, 143, 146, 147, 147, 146, 135, 146, 140, 141, 147, 145, 144, 142, 151, 141, 148, 144, 142, 154, 147, 132, 147, 150, 138, 143, 147, 146, 149, 146, 145, 147, 138, 140, 144, 139, 151, 142, 146, 146, 141, 153, 142, 142, 148, 145, 140, 146, 160, 144, 158, 152, 145, 146, 141, 149, 149, 134, 148, 151, 143, 154, 146, 148, 147, 139, 155, 144, 149, 153, 145, 143, 135, 146, 147, 160, 145, 148, 143, 141, 142, 149, 154, 148, 138, 146, 145, 145, 146, 147, 161, 148, 141, 147, 147, 155, 137, 153, 143, 154, 151, 140, 145, 144, 136, 148, 151, 158, 143, 142, 155, 144, 147, 146, 158, 141, 145, 160, 140, 145, 155, 149, 151, 149, 148, 144, 147, 171, 146, 142, 149, 144, 150, 147, 146, 144, 148, 141, 147, 147, 137, 156, 140, 146, 144, 144, 122, 145, 147, 145, 139, 132, 143, 141, 148, 146, 142, 146, 152, 138, 146, 152, 150, 149, 149, 145, 146, 147, 134, 160, 143, 145, 145, 142, 136, 150, 146, 143, 159, 143, 144, 143, 140, 141, 147, 137, 146, 140, 141, 144, 150, 150, 141, 142, 164, 144, 147, 139, 140, 145, 141, 144, 140, 137, 148, 143, 149, 145, 139, 148, 145, 147, 142, 150, 146, 141, 158, 143, 140, 134, 148, 155, 138, 149, 144, 142, 147, 145, 137, 149, 152, 159, 147, 161, 150, 143, 150, 144, 142, 151, 158, 144, 150, 139, 135, 147, 143, 129, 145, 150, 146, 144, 146, 158, 149, 140, 153, 144, 146, 193, 135, 144, 145, 146, 145, 147, 137, 148, 150, 148, 158, 135, 147, 146, 148, 153, 140, 143, 145, 162, 148, 147, 149, 149, 148, 139, 129, 142, 156, 126, 143, 128, 138, 144, 147, 150, 146, 145, 82, 150, 157, 140, 142, 151, 155, 151, 141, 146, 147, 146, 149, 151, 149, 150, 152, 180, 152, 153, 132, 150, 144, 141, 149, 145, 150, 149, 150, 144, 147, 149, 145, 165, 144, 145, 154, 147, 126, 143, 152, 144, 163, 144, 144, 153, 139, 154, 136, 145, 151, 142, 150, 161, 150, 144, 146, 143, 135, 201, 147, 150, 150, 147, 142, 154, 146, 139, 146, 141, 149, 145, 144, 125, 142, 150, 149, 148, 140, 149, 151, 146, 150, 142, 158, 162, 142, 149, 152, 145, 147, 145, 144, 142, 147, 146, 152, 153, 150, 146, 149, 147, 150, 140, 139, 140, 149, 98, 149, 142, 152, 135, 152, 142, 149, 137, 146, 148, 141, 147, 148, 142, 147, 181, 144, 148, 162, 144, 137, 148, 144, 143, 145, 143, 138, 146, 145, 136, 151, 155, 145, 145, 151, 142, 149, 140, 141, 151, 145, 143, 143, 159, 152, 145, 150, 130, 148, 155, 149, 138, 137, 159, 139, 147, 145, 163, 128, 141, 146, 148, 145, 144, 142, 148, 142, 135, 147, 168, 146, 138, 155, 145, 143, 145, 142, 151, 148, 145, 160, 141, 142, 147, 146, 147, 144, 139, 142, 100, 171, 147, 138, 137, 136, 131, 148, 135, 151, 139, 141, 151, 148, 123, 142, 144, 148, 151, 147, 143, 153, 147, 145, 145, 145, 141, 130, 146, 153, 149, 134, 152, 145, 146, 148, 165, 146, 161, 149, 155, 143, 144, 144, 149, 145, 145, 132, 147, 139, 152, 146, 145, 152, 141, 149, 146, 150, 145, 135, 146, 150, 145, 151, 149, 148, 147, 147, 140, 156, 152, 147, 151, 147, 163, 150, 142, 143, 138, 153, 143, 144, 142, 142, 147, 145, 148, 143, 148, 148, 172, 146, 149, 147, 149, 139, 146, 147, 147, 142, 144, 137, 152, 146, 146, 148, 143, 146, 146, 145, 149, 148, 145, 139, 143, 147, 143, 143, 142, 143, 146, 145, 147, 141, 144, 143, 143, 147, 142, 140, 149, 150, 136, 148, 146, 149, 145, 145, 151, 140, 150, 146, 146, 144, 152, 146, 146, 148, 144, 145, 141, 151, 144, 148, 148, 144, 151, 144, 142, 141, 143, 144, 145, 147, 146, 144, 152, 147, 132, 145, 148, 144, 146, 147, 148, 140, 144, 146, 145, 146, 154, 143, 180, 142, 145, 156, 149, 146, 148, 144, 151, 149, 147, 150, 140, 133, 148, 143, 148, 148, 143, 141, 147, 149, 149, 147, 140, 144, 150, 147, 137, 150, 142, 147, 147, 151, 142, 150, 145, 150, 145, 140, 150, 146, 145, 151, 151, 147, 142, 148, 137, 142, 156, 143, 153, 159, 145, 145, 132, 151, 142, 149, 146, 154, 143, 147, 146, 145, 153, 141, 146, 149, 147, 149, 144, 147, 152, 156, 146, 139, 149, 153, 148, 148, 157, 162, 170, 126, 154, 143, 147, 139, 156, 148, 143, 144, 157, 138, 149, 149, 148, 135, 145, 138, 146, 151, 131, 148, 151, 171, 137, 132, 146, 157, 149, 154, 154, 149, 142, 154, 154, 148, 140, 149, 163, 155, 152, 151, 148, 153, 135, 161, 145, 137, 169, 152, 143, 146, 151, 145, 154, 137, 145, 141, 151, 149, 151, 160, 157, 144, 147, 146, 153, 158, 140, 144, 145, 143, 129, 158, 130, 136, 136, 145, 155, 146, 160, 147, 141, 157, 145, 148, 174, 142, 151, 156, 145, 143, 147, 137, 126, 155, 145, 150, 148, 154, 150, 148, 153, 150, 159, 133, 133, 146, 134, 150, 155, 140, 145, 141, 163, 150, 130, 161, 147, 135, 169, 151, 162, 137, 141, 141, 144, 149, 158, 155, 153, 127, 159, 143, 156, 153, 141, 153, 139, 147, 165, 141, 152, 139, 142, 142, 132, 138, 154, 131, 142, 139, 138, 143, 163, 149, 143, 132, 150, 149, 134, 157, 144, 124, 142, 141, 152, 145, 144, 137, 154, 135, 156, 136, 142, 140, 152, 160, 143, 146, 149, 151, 142, 155, 150, 142, 145, 150, 153, 145, 140, 153, 162, 140, 154, 134, 156, 143, 135, 135, 149, 152, 155, 140, 141, 163, 151, 138, 156, 146, 157, 153, 136, 133, 153, 141, 144, 146, 149, 146, 136, 148, 148, 150, 126, 147, 157, 155, 144, 141, 155, 138, 151, 132, 143, 130, 136, 136, 139, 143, 149, 142, 158, 143, 145, 151, 145, 151, 136, 154, 146, 140, 155, 139, 146, 146, 144, 143, 144, 145, 145, 141, 141, 141, 150, 147, 149, 142, 148, 147, 148, 151, 161, 147, 145, 154, 140, 147, 146, 146, 148, 148, 150, 149, 146, 150, 146, 142, 144, 149, 150, 145, 140, 153, 145, 145, 143, 146, 151, 143, 136, 147, 150, 149, 160, 146, 138, 141, 146, 145, 141, 149, 147, 152, 147, 147, 150, 144, 141, 146, 147, 141, 145, 147, 146, 140, 117, 142, 147, 146, 139, 149, 143, 138, 152, 147, 146, 146, 147, 148, 141, 151, 150, 140, 137, 145, 132, 147, 146, 127, 159, 148, 133, 148, 140, 150, 143, 143, 145, 148, 165, 145, 142, 142, 150, 149, 148, 146, 149, 146, 150, 146, 142, 141, 146, 146, 145, 147, 151, 151, 156, 140, 143, 146, 148, 145, 146, 156, 145, 150, 141, 152, 136, 151, 146, 147, 147, 146, 144, 149, 153, 145, 151, 148, 148, 153, 130, 146, 152, 153, 151, 137, 147, 142, 150, 152, 147, 144, 143, 148, 145, 141, 148, 146, 150, 156, 152, 147, 144, 150, 135, 148, 144, 147, 148, 142, 145, 148, 146, 140, 149, 148, 154, 155, 144, 158, 144, 145, 147, 139, 148, 140, 143, 156, 140, 146, 143, 144, 142, 157, 146, 138, 139, 149, 138, 155, 150, 137, 146, 141, 149, 143, 149, 149, 150, 140, 144, 142, 144, 144, 144, 147, 147, 144, 146, 154, 152, 147, 155, 147, 139, 143, 148, 136, 145, 164, 148, 151, 145, 141, 174, 146, 147, 142, 147, 151, 148, 150, 144, 142, 148, 149, 154, 144, 143, 144, 150, 143, 149, 146, 145, 140, 148, 148, 136, 144, 152, 144, 148, 148, 168, 138, 140, 141, 146, 150, 127, 147, 144, 157, 143, 147, 142, 146, 151, 145, 144, 142, 137, 147, 148, 142, 146, 147, 147, 148, 142, 144, 140, 147, 152, 142, 155, 142, 144, 141, 169, 148, 152, 140, 148, 143, 152, 150, 148, 164, 150, 146, 144, 153, 143, 150, 131, 149, 144, 148, 144, 147, 151, 144, 146, 143, 148, 148, 147, 139, 158, 145, 156, 143, 177, 136, 133, 148, 142, 197, 141, 142, 136, 146, 148, 145, 143, 149, 144, 148, 150, 142, 146, 147, 147, 149, 144, 142, 143, 145, 147, 148, 146, 153, 147, 138, 139, 144, 149, 152, 147, 143, 146, 145, 152, 140, 137, 150, 145, 143, 146, 146, 141, 145, 145, 149, 147, 154, 128, 147, 139, 153, 149, 151, 152, 149, 143, 146, 141, 151, 145, 173, 143, 141, 150, 146, 144, 146, 146, 155, 146, 146, 149, 151, 151, 147, 148, 148, 145, 141, 144, 142, 140, 140, 148, 146, 148, 143, 153, 142, 150, 145, 143, 152, 148, 153, 145, 137, 149, 144, 148, 147, 143, 162, 133, 148, 144, 144, 148, 134, 144, 153, 156, 152, 144, 139, 145, 147, 142, 139, 146, 138, 146, 151, 145, 158, 148, 141, 143, 143, 150, 146, 149, 144, 145, 142, 144, 148, 150, 145, 151, 146, 145, 142, 149, 160, 142, 145, 144, 171, 140, 143, 148, 145, 141, 150, 148, 149, 149, 145, 142, 146, 149, 145, 145, 149, 147, 146, 143, 140, 145, 135, 141, 151, 154, 144, 146, 160, 155, 148, 148, 152, 153, 149, 146, 144, 145, 143, 147, 129, 147, 144, 142, 139, 146, 159, 141, 147, 150, 144, 149, 145, 144, 141, 141, 143, 158, 149, 151, 147, 145, 143, 148, 146, 148, 141, 138, 149, 144, 147, 154, 147, 144, 145, 152, 150, 140, 148, 148, 141, 145, 145, 162, 150, 149, 146, 144, 143, 145, 145, 156, 145, 141, 147, 149, 153, 146, 146, 147, 150, 160, 148, 153, 145, 150, 136, 140, 148, 157, 147, 144, 144, 150, 148, 149, 144, 129, 142, 150, 145, 146, 148, 142, 144, 138, 147, 145, 140, 144, 147, 145, 161, 143, 144, 149, 141, 146, 141, 144, 146, 140, 147, 142, 137, 146, 147, 147, 154, 143, 135, 151, 139, 145, 139, 133, 149, 164, 142, 153, 148, 147, 156, 151, 139, 152, 144, 140, 146, 142, 148, 148, 146, 154, 146, 142, 137, 147, 140, 147, 160, 146, 156, 150, 147, 146, 146, 138, 149, 146, 144, 147, 143, 146, 144, 149, 146, 146, 147, 151, 148, 148, 148, 142, 147, 144, 146, 144, 143, 150, 147, 152, 149, 147, 142, 148, 147, 147, 148, 150, 147, 149, 148, 140, 152, 152, 145, 147, 146, 149, 143, 138, 135, 149, 143, 149, 145, 147, 144, 143, 147, 148, 149, 148, 146, 145, 140, 145, 151, 145, 167, 153, 125, 145, 150, 147, 141, 127, 144, 147, 141, 149, 145, 148, 142, 143, 145, 141, 148, 144, 145, 145, 150, 145, 148, 148, 148, 149, 147, 145, 145, 152, 151, 147, 140, 133, 150, 127, 145, 146, 144, 144, 151, 129, 147, 149, 155, 147, 143, 148, 141, 144, 127, 148, 152, 139, 146, 150, 147, 144, 146, 149, 141, 139, 144, 134, 143, 146, 151, 145, 145, 145, 147, 150, 147, 145, 145, 146, 148, 152, 148, 150, 149, 148, 143, 142, 145, 141, 143, 178, 141, 147, 145, 140, 137, 144, 143, 149, 148, 151, 141, 153, 139, 153, 140, 154, 147, 139, 144, 155, 144, 142, 118, 169, 151, 145, 143, 143, 142, 148, 147, 145, 152, 160, 146, 151, 153, 143, 154, 146, 140, 145, 144, 150, 133, 147, 146, 147, 134, 152, 148, 145, 144, 146, 144, 149, 143, 144, 139, 150, 149, 146, 142, 148, 127, 145, 147, 142, 145, 139, 152, 153, 144, 138, 144, 146, 150, 148, 141, 149, 146, 141, 150, 133, 131, 144, 147, 145, 141, 150, 146, 147, 137, 142, 135, 141, 144, 148, 148, 145, 145, 148, 142, 146, 150, 145, 147, 147, 145, 144, 150, 147, 144, 141, 147, 148, 143, 143, 145, 141, 140, 146, 148, 150, 147, 145, 129, 158, 139, 147, 146, 150, 146, 145, 144, 145, 144, 143, 146, 143, 147, 148, 144, 145, 151, 144, 142, 143, 138, 135, 144, 146, 146, 148, 143, 146, 146, 146, 148, 145, 149, 150, 151, 148, 149, 149, 141, 145, 121, 147, 150, 151, 158, 153, 145, 146, 145, 140, 139, 147, 147, 155, 145, 145, 145, 139, 145, 143, 150, 142, 148, 147, 142, 138, 152, 150, 142, 140, 145, 151, 146, 133, 150, 146, 144, 150, 144, 138, 143, 142, 148, 144, 162, 150, 146, 141, 145, 151, 139, 141, 140, 138, 147, 141, 151, 143, 143, 148, 140, 141, 146, 145, 146, 149, 146, 146, 147, 145, 148, 154, 149, 146, 152, 140, 144, 153, 148, 144, 134, 142, 140, 146, 150, 148, 144, 162, 141, 149, 144, 148, 139, 142, 145, 143, 145, 148, 143, 152, 140, 159, 145, 153, 145, 159, 141, 147, 151, 145, 160, 153, 151, 147, 143, 150, 144, 148, 142, 143, 142, 149, 146, 140, 147, 145, 144, 144, 149, 146, 142, 149, 148, 143, 140, 139, 137, 144, 147, 147, 140, 144, 145, 147, 146, 144, 149, 140, 144, 141, 149, 149, 122, 146, 148, 142, 143, 138, 148, 139, 141, 134, 149, 154, 144, 147, 143, 156, 148, 145, 145, 138, 148, 142, 148, 147, 140, 155, 149, 142, 148, 145, 136, 153, 147, 141, 147, 137, 136, 148, 146, 141, 143, 145, 148, 146, 150, 141, 146, 141, 146, 145, 146, 143, 148, 146, 143, 140, 142, 145, 149, 141, 147, 140, 146, 152, 152, 141, 138, 150, 135, 146, 145, 141, 145, 150, 150, 145, 148, 147, 139, 146, 150, 138, 139, 141, 157, 144, 143, 144, 143, 146, 145, 143, 146, 144, 148, 141, 145, 143, 146, 145, 145, 146, 144, 146, 153, 136, 150, 143, 142, 141, 145, 146, 147, 143, 143, 140, 143, 144, 153, 148, 148, 148, 144, 141, 147, 148, 144, 148, 146, 141, 146, 145, 142, 146, 144, 141, 145, 140, 146, 148, 155, 146, 146, 147, 150, 143, 143, 147, 159, 147, 140, 143, 137, 151, 151, 152, 145, 152, 152, 147, 149, 155, 145, 148, 143, 152, 141, 143, 150, 155, 148, 137, 144, 150, 154, 141, 142, 134, 139, 140, 150, 147, 139, 142, 149, 140, 154, 142, 145, 125, 143, 150, 146, 146, 141, 154, 147, 147, 146, 149, 162, 149, 146, 150, 147, 148, 149, 140, 141, 147, 138, 144, 143, 152, 147, 145, 146, 150, 151, 151, 153, 150, 156, 140, 152, 143, 148, 142, 143, 144, 149, 156, 150, 144, 148, 146, 149, 147, 144, 146, 156, 147, 147, 145, 148, 146, 146, 144, 144, 141, 137, 140, 166, 139, 144, 147, 149, 152, 171, 149, 146, 137, 149, 146, 143, 159, 137, 145, 161, 123, 153, 151, 138, 142, 149, 146, 147, 144, 133, 143, 139, 141, 144, 147, 150, 152, 138, 149, 147, 110, 152, 145, 136, 143, 148, 103, 145, 153, 145, 140, 148, 127, 150, 141, 148, 140, 142, 160, 144, 145, 156, 151, 154, 138, 145, 151, 144, 148, 143, 142, 154, 149, 142, 147, 153, 146, 151, 134, 151, 148, 149, 151, 144, 140, 151, 146, 148, 148, 154, 133, 151, 144, 147, 145, 145, 148, 155, 149, 145, 152, 153, 141, 151, 150, 150, 154, 145, 151, 150, 147, 140, 150, 140, 150, 145, 138, 154, 138, 146, 151, 144, 151, 149, 141, 92, 142, 118, 149, 141, 160, 145, 148, 135, 150, 173, 143, 147, 154, 158, 131, 145, 147, 117, 149, 144, 139, 147, 95, 142, 160, 133, 144, 140, 145, 137, 143, 146, 146, 137, 149, 143, 141, 146, 138, 135, 152, 158, 148, 155, 143, 131, 158, 153, 144, 155, 153, 148, 155, 136, 151, 153, 145, 151, 147, 146, 139, 144, 144, 145, 153, 135, 147, 141, 141, 154, 144, 127, 140, 165, 139, 148, 130, 135, 140, 144, 143, 145, 158, 143, 131, 144, 132, 148, 173, 135, 140, 148, 123, 157, 145, 146, 141, 150, 154, 160, 142, 149, 141, 136, 149, 146, 148, 141, 128, 144, 143, 138, 148, 143, 116, 148, 150, 149, 135, 178, 105, 116, 145, 146, 150, 149, 123, 140, 148, 154, 149, 149, 155, 149, 148, 140, 155, 133, 132, 117, 140, 132, 158, 158, 131, 155, 142, 156, 142, 130, 141, 155, 141, 160, 125, 145, 145, 147, 152, 149, 140, 145, 153, 195, 152, 125, 139, 144, 133, 146, 133, 134, 148, 145, 155, 176, 145, 146, 144, 154, 143, 136, 135, 155, 174, 144, 148, 142, 130, 144, 139, 162, 140, 148, 157, 159, 148, 169, 158, 141, 176, 127, 140, 155, 142, 143, 144, 138, 130, 150, 149, 148, 141, 140, 161, 134, 148, 137, 119, 182, 139, 140, 151, 144, 139, 147, 142, 145, 152, 152, 146, 133, 155, 144, 149, 137, 143, 144, 167, 140, 145, 157, 134, 142, 129, 143, 154, 136, 141, 149, 139, 157, 145, 150, 151, 161, 146, 157, 172, 141, 143, 138, 155, 136, 143, 162, 155, 145, 142, 154, 155, 148, 148, 149, 137, 152, 141, 174, 147, 143, 149, 146, 140, 139, 153, 140, 152, 149, 138, 151, 146, 137, 139, 149, 142, 146, 143, 153, 149, 149, 149, 149, 153, 153, 146, 143, 141, 143, 144, 143, 131, 154, 148, 151, 149, 149, 146, 149, 152, 145, 149, 142, 144, 147, 131, 139, 145, 145, 137, 168, 138, 133, 149, 142, 137, 146, 155, 157, 142, 147, 163, 145, 137, 139, 142, 155, 139, 156, 144, 149, 148, 148, 137, 155, 158, 148, 141, 139, 152, 152, 143, 152, 148, 162, 159, 137, 151, 127, 147, 153, 145, 142, 150, 144, 157, 150, 136, 136, 129, 144, 153, 151, 141, 152, 147, 147, 145, 148, 142, 152, 155, 137, 145, 149, 141, 148, 155, 138, 133, 144, 136, 146, 137, 152, 145, 147, 147, 167, 141, 142, 154, 142, 154, 149, 152, 144, 147, 165, 144, 134, 142, 146, 149, 163, 124, 158, 158, 151, 144, 133, 147, 146, 155, 154, 144, 150, 146, 156, 144, 150, 153, 136, 156, 147, 147, 146, 151, 150, 139, 144, 140, 164, 140, 153, 163, 157, 158, 140, 151, 136, 150, 149, 148, 148, 145, 162, 138, 118, 149, 144, 141, 146, 141, 164, 152, 151, 152, 144, 145, 147, 145, 154, 147, 146, 147, 146, 156, 141, 145, 143, 146, 150, 137, 140, 136, 150, 152, 141, 147, 144, 148, 154, 137, 158, 136, 146, 145, 151, 144, 150, 132, 147, 150, 141, 153, 152, 150, 141, 148, 139, 150, 144, 139, 147, 150, 145, 141, 143, 147, 144, 144, 151, 146, 145, 146, 139, 158, 148, 146, 145, 146, 151, 148, 146, 145, 144, 144, 147, 146, 142, 146, 144, 155, 148, 155, 143, 144, 140, 145, 147, 149, 147, 145, 146, 151, 144, 145, 155, 142, 148, 143, 148, 147, 149, 148, 153, 151, 148, 145, 146, 147, 146, 148, 143, 152, 147, 139, 148, 139, 142, 151, 150, 145, 149, 146, 145, 145, 145, 146, 149, 143, 148, 149, 148, 148, 144, 138, 141, 151, 142, 146, 147, 145, 144, 145, 145, 143, 146, 153, 148, 151, 150, 152, 149, 138, 147, 149, 152, 151, 144, 149, 144, 146, 138, 151, 148, 146, 156, 145, 138, 150, 146, 149, 145, 141, 150, 147, 141, 147, 153, 144, 145, 146, 145, 143, 145, 148, 144, 136, 142, 145, 146, 143, 135, 149, 144, 152, 150, 148, 149, 147, 142, 150, 140, 154, 146, 154, 146, 142, 141, 152, 143, 140, 150, 146, 142, 146, 147, 143, 153, 150, 149, 145, 151, 147, 158, 144, 144, 149, 147, 147, 142, 145, 145, 148, 144, 144, 147, 142, 137, 148, 148, 145, 138, 145, 144, 149, 146, 142, 142, 146, 148, 142, 141, 148, 144, 146, 144, 146, 150, 144, 145, 144, 151, 148, 141, 150, 147, 152, 149, 156, 145, 153, 143, 146, 145, 150, 149, 147, 148, 143, 143, 152, 147, 137, 140, 146, 146, 150, 151, 139, 150, 146, 148, 151, 147, 140, 149, 134, 145, 144, 134, 144, 141, 141, 147, 149, 151, 146, 146, 151, 151, 148, 145, 150, 148, 144, 139, 147, 144, 147, 146, 137, 142, 145, 169, 152, 140, 159, 150, 145, 146, 144, 145, 141, 150, 144, 135, 147, 149, 154, 148, 152, 146, 143, 151, 149, 150, 144, 145, 147, 151, 143, 147, 152, 162, 148, 145, 141, 143, 150, 143, 145, 144, 152, 149, 149, 144, 145, 151, 144, 145, 151, 147, 148, 148, 154, 136, 147, 143, 139, 145, 134, 147, 145, 143, 143, 146, 139, 143, 143, 146, 145, 147, 145, 143, 147, 147, 151, 144, 141, 141, 150, 141, 140, 145, 142, 141, 146, 146, 144, 144, 143, 135, 149, 143, 143, 143, 143, 147, 142, 151, 147, 129, 147, 144, 154, 142, 147, 153, 146, 146, 143, 146, 145, 144, 143, 145, 150, 145, 140, 148, 152, 149, 145, 147, 147, 144, 146, 144, 145, 143, 144, 144, 147, 148, 138, 153, 148, 145, 132, 147, 145, 145, 145, 147, 140, 141, 154, 150, 148, 149, 142, 149, 143, 146, 147, 147, 144, 149, 146, 143, 139, 145, 141, 139, 138, 148, 148, 146, 149, 147, 144, 147, 147, 146, 151, 147, 148, 145, 138, 151, 146, 151, 150, 145, 145, 152, 145, 151, 149, 143, 145, 146, 143, 167, 147, 146, 149, 143, 152, 145, 154, 146, 153, 143, 128, 147, 140, 147, 145, 137, 146, 146, 145, 142, 149, 144, 148, 147, 141, 144, 150, 148, 146, 147, 141, 145, 147, 150, 151, 144, 146};
+ model->setOperandValue(op62, op62_init, sizeof(uint8_t) * 131072);
+ static int32_t op64_init[] = {-1691, 104, 5061, 660, -358, -4683, -10, 2093, -1205, -2391, 2337, -201, 305, 7238, -236, -1849, -224, 287, 8, 204, 45, 326, -725, 1155, -496, 483, -18, -2536, 520, 9077, -3042, -2994, -371, 2295, 635, -320, 3886, 9711, -68, -191, -796, 2127, 156, -3947, 6181, -1980, -510, 11, 548, -1963, -7425, 2544, -4, -93, 1424, 3005, 3725, 1282, -2086, 2705, -1690, 7843, -292, 1799, 6530, 1388, -313, 114, -375, -231, -780, -97, 2216, 345, -2884, 2715, -1881, -15, -689, -550, -1265, -4011, 7570, -86, -1190, -2096, -331, -4118, -1307, -1514, -1589, 3112, 2120, -454, -735, 2960, 2060, -101, 709, -62, -522, -1816, -1989, 2786, 2257, 2769, -1902, 46, 772, 224, -652, 169, -984, -2019, 4028, -1597, 4526, 175, -97, 2404, 2642, -609, 927, -377, 2136, 469, -31, 238, 221, 443, -338, 1162, -3274, 1306, -579, -3590, -3048, 2873, -404, -393, -302, -470, -3632, 282, 694, 2063, -6045, -939, 2961, 2490, 944, 201, 2118, -491, -619, -3895, -1078, 2492, -1160, -617, 641, 2236, -409, -835, 2887, 2521, -206, 4067, 134, 975, 794, 957, 2142, -2947, 1879, -1445, 2117, 779, 591, 397, -2073, -1206, -485, -2624, 8860, 309, 1054, 73, -2736, 2856, -251, 2635, 371, -790, -16, -92, 2485, -1917, -4039, 3404, -7462, 253, 7601, -319, -2339, -2429, -3426, -195, 3219, 8276, 2478, 2583, -174, 26, -2420, -2822, 462, -1668, -3433, -1833, 610, 2547, -1696, 299, 5909, -328, -793, -3788, 13, -110, -112, 2384, -1485, -465, -1296, 338, -783, -2147, -145, 3553, 6731, -67, 4147, 2394, 7356, -57, 1246, -339, -922, 2002, 2260, -682, 2340, -188, 2302, -1017, 561, -938, -1901, -4065, 2554, -1239, 7452, -462, 1995, -65, 5483, 2663, 371, 4160, 833, 2579, -443, 1024, -525, 26, 102, -535, 626, -950, 1721, 405, 2493, 2263, -1226, -2045, -1847, 345, 5392, -162, 197, -268, 2280, -603, 731, -2139, -2126, -1841, 1757, -422, -113, -72, 760, -1065, 2105, -1073, -424, -158, 2083, 3172, -417, -1319, 254, -1597, -528, -253, -397, 375, -235, -253, 5757, -307, 235, -362, -564, -3122, -737, 3081, -2423, 18, -2014, 1369, -47, -1258, -1579, -3709, -1615, 3505, 1859, -288, -379, -280, -290, 681, -37, 3646, 2383, -878, 3904, 924, -45, 1905, -204, 6016, -1108, -501, -431, 2534, -1303, 2120, 511, -572, -2286, 708, -270, -23, -1885, -1594, 2502, 314, 202, 1405, -2249, 577, 1076, 551, -219, -1367, 1629, -72, 1146, -235, 191, -420, 250, -2326, 1506, 3159, -951, 155, 123, 2446, 955, -16752, 224, -797, 100, -1101, -2088, 2933, 1329, -3020, -1524, -766, -1256, 2437, -186, -1357, -278, 20, 55, 3911, -635, -1523, 49, 2646, 777, 1431, 3182, -1536, -2429, 2618, 629, -299, 146, -2333, 367, 3574, 2728, -1657, 1326, -728, 1320, -1567, 329, -86, 1394, -705, 2560, 2253, 2309, 3499, -1464, 371, 219, -586, -116, -1544, -233, 2559, 2267, 1918, 2869, 510, 2208, -328, -1437, -13, -3634, -4065, 1881, -1713, -2674, 1756, 1781, 2368, -1373, 1745, -732, 28, -342, 4734, 7373, -864, 3319, -73, -178, 3220, -532, -898, 3158, 1965, -685, -4094, -2490, 2273, 2126, 295, -2108, 799, -287, -376, -1030, 158, -796, -185, 144, -1768, -78, -4335, -635, 4438, 774, -171, 646, -532, -390, 2223, -759, 2375, -633, 694};
+ model->setOperandValue(op64, op64_init, sizeof(int32_t) * 512);
+ static uint8_t op65_init[] = {119, 111, 120, 114, 124, 109, 106, 146, 73, 114, 110, 116, 116, 113, 110, 118, 111, 126, 131, 116, 114, 100, 185, 133, 126, 129, 110, 92, 98, 127, 114, 112, 126, 111, 119, 132, 119, 119, 112, 115, 114, 88, 118, 115, 107, 119, 138, 129, 138, 142, 123, 81, 128, 115, 110, 98, 114, 139, 113, 121, 118, 120, 108, 110, 120, 114, 156, 127, 105, 128, 118, 103, 107, 124, 138, 111, 123, 114, 113, 95, 113, 141, 122, 134, 116, 122, 132, 115, 134, 131, 118, 113, 107, 134, 118, 118, 120, 109, 105, 114, 120, 108, 120, 113, 115, 114, 124, 159, 132, 128, 119, 110, 162, 126, 124, 118, 109, 109, 113, 109, 110, 114, 128, 133, 126, 108, 111, 125, 130, 179, 116, 131, 120, 102, 108, 110, 106, 109, 111, 136, 124, 112, 108, 109, 135, 114, 133, 118, 120, 117, 121, 112, 111, 122, 126, 113, 118, 110, 120, 120, 128, 104, 114, 116, 115, 117, 114, 117, 112, 112, 113, 117, 114, 130, 103, 115, 131, 108, 118, 104, 91, 112, 114, 119, 117, 106, 109, 138, 98, 114, 109, 106, 115, 110, 111, 124, 115, 125, 127, 115, 120, 132, 121, 117, 122, 132, 118, 105, 117, 119, 122, 111, 128, 119, 116, 119, 121, 115, 130, 117, 133, 118, 115, 120, 118, 141, 101, 86, 116, 118, 125, 101, 123, 126, 113, 112, 119, 122, 110, 169, 118, 103, 106, 112, 128, 118, 135, 127, 111, 116, 114, 126, 114, 125, 118, 118, 114, 117, 114, 119, 118, 113, 126, 145, 114, 116, 129, 102, 125, 113, 132, 110, 125, 116, 126, 134, 108, 109, 124, 103, 144, 131, 109, 114, 107, 104, 123, 139, 119, 128, 105, 109, 110, 120, 127, 100, 118, 106, 115, 108, 109, 135, 115, 127, 101, 110, 114, 117, 109, 120, 117, 117, 102, 123, 115, 131, 128, 122, 117, 119, 119, 115, 139, 111, 130, 124, 125, 116, 132, 118, 112, 112, 113, 117, 121, 113, 115, 168, 101, 121, 118, 115, 112, 148, 133, 117, 114, 104, 117, 132, 117, 106, 129, 125, 109, 112, 123, 111, 255, 114, 112, 118, 115, 114, 123, 121, 121, 105, 134, 115, 123, 136, 121, 111, 139, 118, 134, 119, 128, 118, 107, 109, 117, 142, 112, 86, 125, 131, 112, 133, 111, 115, 101, 118, 104, 118, 155, 117, 116, 115, 120, 110, 130, 107, 116, 108, 88, 115, 176, 109, 127, 111, 86, 119, 107, 163, 113, 114, 113, 97, 117, 125, 92, 122, 114, 106, 122, 112, 132, 109, 125, 115, 114, 118, 126, 133, 115, 121, 114, 117, 108, 118, 122, 164, 109, 113, 116, 110, 108, 115, 98, 105, 105, 135, 102, 118, 112, 150, 113, 112, 116, 116, 114, 104, 112, 110, 113, 116, 117, 133, 119, 106, 119, 123, 121, 133, 119, 108, 115, 116, 87, 101, 152, 117, 113, 119, 115, 143, 112, 111, 123, 109, 115, 116, 109, 114, 143, 116, 98, 123, 122, 100, 129, 133, 111, 127, 105, 123, 117, 111, 114, 113, 124, 83, 116, 113, 185, 122, 91, 118, 121, 123, 135, 120, 111, 99, 120, 130, 77, 176, 92, 101, 101, 100, 128, 156, 85, 183, 101, 99, 100, 83, 116, 125, 161, 106, 156, 138, 117, 99, 100, 131, 106, 102, 107, 139, 93, 122, 131, 133, 184, 87, 125, 185, 156, 106, 93, 113, 121, 179, 121, 76, 117, 103, 113, 116, 111, 97, 127, 191, 79, 159, 122, 87, 111, 154, 89, 111, 127, 95, 115, 111, 94, 186, 113, 196, 123, 130, 104, 139, 101, 136, 106, 136, 100, 166, 121, 113, 168, 87, 113, 119, 101, 119, 125, 119, 124, 105, 123, 130, 108, 158, 122, 121, 143, 130, 105, 125, 114, 103, 80, 107, 97, 113, 105, 165, 130, 180, 115, 167, 184, 107, 115, 113, 93, 98, 163, 125, 125, 114, 77, 168, 112, 119, 115, 123, 97, 104, 125, 114, 93, 105, 110, 103, 116, 165, 170, 107, 94, 114, 121, 132, 109, 115, 47, 116, 115, 99, 76, 113, 73, 86, 99, 120, 116, 109, 105, 111, 92, 103, 109, 96, 99, 81, 92, 124, 106, 88, 106, 134, 113, 112, 85, 109, 93, 109, 130, 103, 108, 91, 138, 106, 133, 187, 91, 106, 123, 105, 125, 115, 103, 92, 109, 101, 112, 111, 124, 126, 98, 125, 122, 118, 175, 109, 112, 121, 109, 102, 90, 104, 102, 86, 107, 103, 128, 162, 120, 93, 100, 120, 90, 131, 100, 86, 105, 108, 103, 106, 152, 109, 110, 111, 102, 130, 104, 161, 110, 115, 88, 70, 113, 130, 111, 118, 103, 147, 107, 84, 103, 108, 183, 110, 111, 115, 150, 128, 138, 160, 114, 117, 111, 112, 168, 169, 111, 105, 119, 112, 130, 179, 97, 159, 107, 94, 105, 114, 169, 135, 115, 127, 116, 85, 101, 86, 114, 120, 116, 119, 116, 70, 110, 122, 123, 118, 168, 128, 65, 116, 150, 88, 115, 181, 114, 103, 99, 79, 109, 111, 111, 112, 120, 111, 110, 111, 117, 123, 120, 130, 103, 115, 115, 132, 106, 123, 106, 142, 183, 113, 116, 107, 108, 161, 90, 106, 118, 101, 105, 95, 95, 112, 7, 114, 100, 120, 125, 85, 112, 117, 125, 111, 124, 94, 100, 107, 129, 100, 105, 116, 119, 127, 112, 189, 102, 81, 104, 171, 103, 194, 119, 104, 110, 146, 86, 113, 93, 151, 105, 85, 147, 123, 128, 143, 100, 95, 166, 116, 104, 108, 129, 113, 138, 95, 160, 103, 115, 97, 101, 121, 100, 108, 106, 177, 128, 128, 135, 140, 121, 97, 109, 99, 99, 99, 120, 109, 106, 126, 177, 182, 90, 103, 108, 112, 110, 121, 123, 145, 111, 114, 107, 107, 109, 104, 104, 108, 103, 109, 112, 115, 119, 167, 123, 126, 106, 120, 115, 100, 100, 111, 119, 115, 97, 113, 116, 107, 94, 118, 112, 106, 127, 114, 122, 124, 112, 105, 151, 131, 122, 123, 111, 119, 122, 88, 138, 86, 103, 120, 133, 113, 94, 114, 125, 126, 193, 97, 147, 139, 99, 115, 89, 123, 120, 112, 121, 95, 113, 113, 120, 117, 128, 108, 106, 94, 117, 113, 108, 142, 123, 111, 129, 117, 113, 126, 116, 102, 123, 126, 41, 176, 109, 139, 111, 112, 112, 127, 115, 113, 131, 113, 119, 127, 118, 118, 138, 151, 121, 90, 133, 124, 120, 115, 122, 110, 121, 118, 121, 106, 125, 110, 119, 97, 124, 132, 111, 129, 115, 122, 129, 109, 118, 113, 116, 128, 110, 129, 119, 121, 109, 161, 97, 110, 89, 99, 116, 148, 109, 134, 123, 129, 116, 119, 118, 125, 117, 99, 132, 165, 99, 113, 117, 118, 121, 112, 129, 114, 118, 109, 119, 120, 113, 114, 96, 120, 112, 122, 119, 109, 125, 124, 122, 114, 108, 114, 119, 112, 115, 118, 112, 134, 128, 144, 129, 123, 128, 79, 144, 114, 126, 150, 72, 135, 125, 110, 113, 132, 115, 130, 108, 122, 111, 116, 119, 126, 108, 116, 130, 122, 109, 130, 153, 118, 117, 110, 121, 107, 110, 105, 189, 118, 117, 116, 113, 117, 112, 119, 114, 117, 114, 111, 107, 113, 112, 112, 120, 116, 138, 115, 123, 115, 112, 109, 111, 134, 125, 115, 112, 107, 111, 110, 140, 111, 113, 106, 100, 114, 123, 122, 125, 115, 112, 113, 115, 123, 113, 120, 106, 113, 105, 154, 118, 107, 110, 118, 113, 114, 131, 117, 114, 172, 117, 102, 114, 139, 129, 141, 106, 130, 120, 129, 117, 126, 113, 123, 118, 117, 121, 91, 105, 114, 117, 100, 115, 116, 110, 116, 113, 167, 116, 127, 106, 113, 119, 112, 113, 112, 118, 112, 127, 123, 114, 116, 106, 104, 128, 116, 113, 112, 118, 109, 142, 135, 124, 128, 109, 115, 124, 142, 112, 126, 106, 119, 113, 129, 120, 129, 116, 107, 111, 107, 125, 125, 117, 105, 116, 106, 110, 117, 115, 114, 130, 118, 116, 118, 109, 119, 118, 116, 97, 120, 116, 111, 122, 106, 124, 120, 118, 115, 109, 112, 113, 99, 103, 116, 132, 118, 111, 112, 128, 117, 123, 114, 106, 97, 102, 132, 117, 114, 128, 89, 126, 117, 114, 118, 118, 125, 113, 107, 113, 129, 120, 135, 102, 114, 93, 114, 129, 120, 114, 112, 115, 115, 117, 120, 134, 116, 115, 106, 122, 110, 112, 118, 110, 112, 112, 125, 134, 111, 117, 136, 111, 115, 111, 96, 113, 131, 112, 115, 175, 117, 138, 117, 137, 116, 115, 116, 123, 112, 130, 122, 114, 107, 126, 116, 122, 110, 126, 111, 155, 129, 107, 115, 117, 114, 114, 141, 117, 129, 145, 116, 118, 112, 124, 117, 109, 120, 125, 116, 116, 116, 127, 136, 126, 112, 114, 114, 111, 118, 120, 120, 110, 114, 128, 97, 127, 115, 118, 107, 113, 109, 101, 118, 108, 127, 126, 112, 114, 115, 116, 112, 115, 114, 111, 117, 107, 108, 118, 107, 122, 113, 121, 112, 118, 117, 116, 117, 128, 105, 144, 111, 114, 123, 116, 113, 114, 111, 126, 110, 106, 112, 101, 120, 117, 119, 116, 116, 116, 98, 121, 119, 120, 112, 124, 117, 116, 109, 133, 141, 125, 113, 121, 114, 98, 125, 109, 113, 72, 122, 92, 78, 80, 95, 80, 124, 108, 107, 195, 135, 84, 98, 12, 92, 154, 103, 117, 114, 155, 90, 118, 127, 109, 107, 120, 142, 115, 98, 86, 86, 66, 95, 91, 123, 107, 126, 165, 136, 96, 211, 122, 112, 100, 120, 96, 114, 118, 100, 125, 128, 94, 107, 73, 106, 110, 103, 141, 104, 108, 114, 122, 87, 110, 84, 110, 109, 93, 143, 107, 195, 122, 95, 113, 100, 90, 120, 157, 86, 88, 163, 115, 96, 114, 115, 120, 113, 119, 115, 85, 124, 187, 129, 125, 101, 109, 110, 93, 150, 177, 114, 123, 117, 144, 120, 93, 144, 104, 106, 108, 112, 116, 112, 186, 107, 133, 120, 79, 114, 107, 117, 92, 181, 106, 112, 110, 106, 130, 113, 97, 110, 178, 70, 127, 74, 187, 106, 123, 110, 109, 161, 98, 66, 107, 106, 85, 129, 126, 107, 120, 97, 171, 115, 119, 110, 104, 114, 116, 113, 111, 97, 104, 117, 115, 121, 106, 112, 139, 101, 74, 83, 127, 112, 90, 128, 88, 112, 102, 171, 119, 110, 99, 111, 96, 139, 60, 172, 107, 112, 123, 99, 134, 99, 97, 119, 120, 116, 127, 81, 89, 94, 109, 103, 155, 109, 120, 116, 135, 130, 153, 117, 110, 109, 116, 89, 99, 161, 119, 128, 76, 109, 162, 101, 110, 113, 96, 89, 119, 112, 90, 119, 94, 155, 106, 97, 101, 175, 91, 175, 125, 109, 106, 91, 108, 112, 99, 114, 89, 123, 115, 127, 109, 101, 110, 131, 110, 114, 102, 114, 107, 101, 163, 112, 124, 109, 95, 109, 93, 74, 175, 96, 72, 109, 101, 124, 115, 109, 115, 104, 98, 112, 84, 108, 103, 117, 112, 132, 124, 131, 115, 121, 112, 166, 112, 88, 109, 101, 120, 106, 108, 118, 116, 118, 118, 117, 118, 173, 101, 93, 72, 112, 110, 111, 197, 108, 182, 122, 96, 110, 123, 115, 94, 118, 80, 122, 119, 130, 122, 112, 105, 92, 123, 125, 99, 146, 116, 113, 115, 168, 114, 115, 125, 108, 174, 105, 111, 75, 149, 100, 93, 114, 83, 120, 123, 111, 183, 175, 131, 216, 124, 110, 194, 178, 125, 102, 138, 117, 156, 133, 151, 100, 111, 111, 124, 84, 99, 114, 110, 100, 116, 106, 88, 117, 105, 140, 87, 111, 117, 124, 121, 117, 146, 114, 130, 76, 121, 110, 112, 119, 135, 104, 113, 100, 176, 91, 94, 147, 110, 108, 104, 129, 128, 78, 96, 118, 121, 130, 158, 115, 152, 125, 138, 116, 98, 126, 106, 106, 161, 117, 107, 117, 105, 117, 124, 122, 104, 118, 85, 159, 73, 118, 117, 110, 121, 161, 109, 122, 123, 133, 137, 126, 97, 122, 116, 103, 116, 103, 114, 114, 130, 155, 120, 108, 106, 184, 112, 192, 125, 111, 118, 121, 101, 103, 134, 122, 117, 145, 108, 172, 120, 111, 119, 111, 110, 167, 101, 63, 135, 102, 165, 136, 117, 101, 123, 137, 110, 172, 86, 115, 119, 113, 95, 87, 163, 112, 56, 159, 96, 171, 117, 81, 170, 158, 67, 100, 124, 73, 122, 147, 114, 97, 78, 69, 90, 92, 101, 64, 91, 79, 151, 170, 117, 69, 181, 155, 103, 102, 48, 123, 90, 48, 85, 95, 188, 107, 70, 153, 72, 157, 94, 143, 59, 42, 168, 108, 78, 68, 84, 128, 64, 92, 164, 76, 174, 59, 114, 103, 69, 88, 104, 81, 111, 113, 146, 93, 109, 81, 158, 107, 210, 77, 205, 118, 200, 94, 77, 63, 195, 161, 124, 159, 202, 98, 51, 105, 112, 106, 149, 106, 103, 115, 118, 162, 96, 154, 153, 165, 179, 97, 198, 65, 90, 125, 160, 158, 77, 162, 96, 168, 82, 182, 119, 105, 91, 184, 82, 114, 48, 56, 112, 108, 79, 87, 97, 96, 185, 95, 108, 33, 162, 114, 124, 105, 102, 120, 175, 164, 76, 105, 164, 96, 93, 102, 95, 142, 108, 109, 79, 175, 165, 105, 154, 154, 100, 119, 104, 114, 95, 174, 138, 90, 105, 88, 188, 157, 153, 149, 117, 167, 77, 185, 91, 205, 195, 189, 73, 168, 66, 117, 100, 58, 210, 165, 81, 119, 185, 155, 145, 86, 102, 189, 165, 191, 134, 78, 77, 161, 160, 181, 149, 129, 203, 68, 169, 104, 123, 94, 160, 188, 99, 152, 50, 179, 83, 103, 171, 66, 82, 106, 192, 175, 113, 201, 111, 97, 155, 111, 172, 90, 160, 166, 77, 90, 90, 134, 106, 113, 71, 102, 72, 100, 161, 175, 190, 72, 172, 108, 90, 183, 76, 201, 179, 157, 98, 190, 46, 112, 179, 133, 71, 109, 91, 161, 88, 176, 145, 159, 95, 99, 116, 116, 87, 88, 42, 78, 100, 87, 187, 184, 165, 80, 83, 117, 157, 106, 101, 94, 70, 155, 165, 161, 156, 129, 104, 54, 166, 187, 72, 195, 174, 106, 107, 87, 161, 163, 115, 160, 175, 104, 42, 90, 99, 109, 66, 95, 66, 112, 89, 192, 190, 102, 130, 167, 44, 59, 105, 153, 152, 158, 174, 24, 110, 132, 156, 148, 80, 90, 83, 104, 154, 124, 76, 104, 91, 114, 99, 64, 186, 85, 90, 95, 152, 164, 94, 158, 159, 110, 97, 108, 150, 77, 35, 88, 78, 80, 154, 79, 87, 154, 111, 160, 101, 90, 80, 107, 132, 117, 202, 114, 89, 82, 153, 125, 197, 101, 80, 172, 111, 105, 81, 154, 156, 27, 72, 201, 116, 168, 172, 111, 184, 165, 84, 97, 111, 116, 120, 201, 79, 105, 80, 183, 184, 98, 163, 88, 95, 148, 159, 182, 51, 90, 85, 183, 31, 161, 177, 153, 103, 85, 67, 194, 181, 94, 87, 91, 144, 82, 196, 162, 94, 102, 116, 93, 95, 108, 90, 113, 120, 161, 168, 57, 148, 170, 189, 164, 186, 113, 187, 96, 178, 161, 167, 117, 152, 138, 46, 92, 96, 84, 146, 98, 156, 183, 80, 102, 41, 164, 170, 27, 186, 78, 170, 101, 61, 109, 171, 47, 183, 125, 57, 164, 145, 151, 101, 119, 133, 129, 80, 109, 91, 61, 163, 109, 53, 92, 123, 112, 123, 113, 117, 125, 112, 111, 136, 124, 99, 171, 158, 97, 149, 128, 111, 110, 86, 97, 182, 164, 241, 112, 83, 100, 118, 113, 123, 96, 117, 123, 122, 107, 119, 110, 117, 95, 196, 151, 124, 98, 196, 89, 128, 124, 85, 88, 118, 113, 119, 107, 104, 101, 128, 113, 110, 98, 121, 128, 106, 112, 162, 107, 108, 108, 102, 107, 116, 115, 124, 137, 113, 126, 135, 111, 88, 85, 101, 37, 89, 103, 116, 105, 99, 120, 116, 114, 91, 102, 201, 114, 104, 96, 118, 114, 119, 117, 156, 119, 71, 129, 122, 122, 113, 113, 93, 97, 86, 114, 119, 117, 85, 119, 95, 72, 110, 104, 109, 110, 114, 116, 91, 113, 120, 103, 162, 112, 110, 117, 157, 83, 130, 160, 169, 192, 112, 113, 114, 107, 75, 163, 131, 112, 113, 107, 124, 165, 119, 83, 159, 153, 106, 117, 134, 127, 123, 110, 119, 112, 94, 118, 129, 172, 112, 113, 114, 116, 105, 99, 105, 115, 116, 88, 106, 118, 123, 111, 194, 97, 115, 126, 141, 113, 122, 112, 102, 90, 101, 112, 108, 110, 115, 133, 145, 112, 104, 130, 122, 104, 131, 106, 98, 115, 123, 132, 125, 141, 92, 102, 117, 106, 75, 157, 125, 97, 86, 123, 98, 116, 104, 108, 111, 150, 105, 90, 110, 105, 168, 45, 87, 137, 111, 118, 118, 163, 109, 115, 138, 101, 100, 102, 105, 99, 109, 104, 111, 78, 127, 112, 106, 159, 116, 117, 131, 118, 132, 127, 117, 127, 113, 100, 111, 92, 109, 107, 112, 113, 111, 119, 92, 113, 99, 78, 146, 109, 156, 161, 119, 90, 97, 95, 104, 101, 115, 115, 113, 105, 98, 111, 129, 109, 119, 95, 113, 126, 123, 124, 117, 116, 111, 86, 114, 85, 105, 94, 114, 108, 107, 121, 119, 117, 111, 119, 122, 76, 107, 118, 186, 114, 115, 108, 93, 113, 87, 114, 107, 114, 123, 113, 117, 111, 174, 123, 119, 124, 115, 140, 106, 142, 114, 121, 187, 89, 106, 114, 114, 99, 116, 113, 93, 110, 75, 105, 114, 192, 84, 110, 124, 116, 176, 119, 127, 107, 79, 71, 115, 81, 125, 102, 111, 114, 121, 125, 110, 117, 83, 121, 107, 108, 190, 115, 119, 88, 104, 113, 109, 116, 123, 119, 107, 118, 146, 149, 163, 109, 98, 123, 120, 117, 148, 117, 107, 112, 124, 113, 81, 117, 87, 110, 112, 104, 59, 110, 109, 92, 110, 107, 107, 98, 119, 83, 143, 117, 112, 126, 151, 106, 117, 109, 129, 120, 117, 123, 114, 111, 89, 104, 113, 114, 104, 119, 122, 90, 109, 117, 179, 94, 162, 119, 98, 109, 123, 87, 109, 117, 120, 98, 125, 124, 112, 117, 116, 106, 111, 103, 119, 112, 84, 74, 120, 106, 114, 74, 116, 89, 123, 115, 118, 117, 107, 106, 108, 142, 120, 151, 113, 96, 119, 167, 121, 108, 121, 154, 91, 166, 156, 102, 91, 134, 104, 104, 104, 95, 99, 76, 152, 119, 116, 113, 192, 179, 112, 126, 120, 116, 104, 111, 131, 92, 119, 114, 121, 104, 108, 120, 108, 116, 129, 116, 130, 142, 111, 105, 150, 114, 147, 115, 115, 138, 138, 120, 113, 111, 109, 114, 116, 120, 117, 121, 113, 108, 118, 84, 117, 125, 117, 113, 125, 122, 116, 132, 123, 124, 121, 211, 121, 97, 118, 115, 118, 126, 101, 125, 108, 107, 119, 133, 115, 114, 135, 104, 119, 119, 106, 110, 116, 111, 106, 158, 111, 109, 110, 109, 122, 115, 112, 123, 102, 116, 100, 125, 114, 118, 109, 108, 118, 118, 109, 124, 113, 114, 127, 108, 118, 113, 104, 118, 101, 121, 133, 110, 119, 112, 123, 116, 127, 115, 113, 109, 131, 106, 118, 115, 129, 107, 127, 112, 113, 113, 115, 103, 109, 113, 127, 106, 116, 117, 133, 110, 123, 104, 127, 102, 114, 105, 127, 109, 119, 116, 113, 131, 116, 117, 111, 110, 106, 116, 115, 117, 119, 116, 125, 103, 124, 118, 121, 113, 122, 114, 130, 133, 117, 118, 114, 113, 106, 115, 134, 114, 120, 115, 130, 117, 127, 120, 128, 130, 141, 141, 120, 114, 136, 105, 113, 103, 101, 132, 112, 116, 112, 111, 124, 112, 119, 115, 114, 105, 115, 111, 117, 117, 107, 115, 128, 107, 118, 112, 152, 118, 160, 114, 111, 117, 114, 113, 118, 137, 118, 136, 119, 124, 132, 123, 121, 113, 115, 120, 115, 124, 124, 120, 118, 134, 108, 110, 117, 128, 123, 129, 111, 116, 114, 110, 117, 108, 108, 103, 121, 107, 112, 114, 118, 121, 122, 118, 114, 123, 109, 102, 109, 115, 132, 112, 117, 124, 107, 109, 105, 110, 117, 142, 121, 107, 113, 174, 108, 118, 118, 109, 118, 110, 114, 134, 107, 102, 115, 123, 118, 114, 116, 125, 135, 149, 116, 113, 130, 110, 117, 129, 108, 118, 116, 121, 134, 114, 120, 126, 126, 102, 115, 121, 119, 124, 134, 127, 129, 103, 113, 119, 130, 118, 133, 142, 111, 116, 123, 119, 113, 88, 108, 102, 116, 115, 108, 97, 113, 117, 115, 130, 120, 116, 139, 110, 126, 121, 122, 115, 163, 112, 0, 114, 115, 119, 119, 130, 125, 121, 122, 119, 131, 127, 126, 136, 119, 126, 158, 117, 127, 116, 132, 112, 114, 132, 122, 111, 117, 127, 108, 99, 117, 106, 112, 114, 115, 116, 117, 132, 110, 117, 115, 123, 118, 118, 108, 129, 116, 109, 122, 115, 113, 133, 110, 114, 110, 133, 145, 117, 136, 112, 113, 114, 117, 134, 98, 102, 116, 113, 115, 137, 129, 114, 122, 117, 112, 118, 113, 113, 139, 110, 113, 116, 137, 118, 122, 116, 111, 110, 119, 109, 116, 128, 133, 110, 115, 130, 105, 119, 110, 123, 116, 109, 113, 117, 112, 105, 107, 100, 112, 114, 113, 128, 121, 106, 120, 127, 122, 117, 123, 123, 117, 113, 138, 111, 129, 105, 115, 114, 117, 124, 112, 120, 130, 123, 103, 119, 111, 114, 115, 117, 76, 112, 113, 100, 110, 116, 141, 127, 124, 114, 116, 109, 112, 122, 123, 164, 123, 121, 89, 124, 153, 111, 123, 125, 143, 84, 111, 95, 113, 127, 168, 82, 106, 153, 103, 106, 115, 94, 138, 93, 122, 145, 112, 98, 117, 127, 88, 108, 150, 122, 117, 88, 92, 96, 108, 95, 93, 143, 99, 122, 105, 100, 107, 94, 122, 113, 126, 114, 163, 111, 134, 94, 116, 88, 130, 105, 117, 114, 110, 174, 95, 87, 158, 81, 120, 142, 112, 96, 109, 111, 115, 145, 93, 118, 125, 128, 117, 89, 121, 123, 136, 140, 118, 95, 93, 106, 115, 116, 118, 115, 91, 151, 111, 121, 110, 120, 125, 106, 96, 114, 124, 98, 109, 81, 117, 115, 97, 123, 104, 114, 118, 110, 157, 102, 172, 106, 112, 82, 119, 128, 109, 81, 94, 113, 96, 117, 121, 99, 107, 130, 122, 119, 166, 82, 113, 98, 129, 120, 100, 110, 124, 120, 97, 125, 111, 112, 114, 98, 85, 115, 101, 123, 115, 109, 110, 112, 207, 93, 111, 108, 144, 117, 176, 181, 103, 116, 116, 140, 103, 118, 85, 106, 116, 98, 86, 98, 134, 123, 93, 154, 160, 90, 106, 111, 186, 115, 114, 101, 112, 117, 103, 101, 121, 98, 134, 116, 100, 95, 121, 85, 125, 118, 102, 106, 117, 101, 115, 86, 126, 122, 138, 120, 139, 115, 96, 109, 113, 95, 111, 113, 101, 105, 113, 108, 120, 128, 121, 82, 118, 123, 108, 126, 139, 105, 106, 122, 109, 103, 112, 116, 136, 116, 131, 114, 105, 89, 113, 84, 112, 84, 151, 101, 120, 127, 111, 109, 96, 84, 106, 145, 112, 114, 90, 110, 113, 114, 79, 116, 93, 87, 117, 112, 107, 192, 144, 106, 114, 122, 118, 121, 116, 107, 97, 84, 130, 164, 106, 179, 108, 122, 112, 154, 116, 152, 153, 142, 114, 124, 143, 117, 112, 178, 113, 119, 118, 114, 65, 116, 116, 111, 159, 164, 109, 56, 112, 172, 103, 169, 106, 117, 102, 111, 128, 115, 215, 161, 101, 120, 128, 125, 126, 132, 110, 84, 126, 119, 102, 91, 85, 116, 116, 106, 113, 114, 168, 107, 112, 105, 114, 102, 132, 110, 200, 115, 109, 120, 130, 165, 110, 113, 124, 114, 131, 176, 105, 110, 119, 151, 106, 114, 108, 122, 107, 84, 101, 165, 141, 98, 93, 110, 129, 126, 127, 102, 104, 116, 114, 151, 109, 169, 102, 116, 118, 147, 109, 109, 92, 127, 106, 111, 119, 119, 94, 165, 85, 105, 114, 98, 166, 101, 153, 102, 108, 124, 126, 109, 97, 95, 113, 107, 120, 170, 118, 102, 141, 124, 113, 119, 78, 90, 136, 103, 110, 112, 169, 118, 119, 96, 98, 116, 106, 155, 116, 142, 133, 110, 95, 107, 110, 119, 124, 93, 121, 121, 103, 121, 110, 95, 97, 106, 121, 115, 129, 109, 124, 114, 109, 113, 115, 107, 117, 119, 118, 112, 98, 113, 78, 124, 115, 113, 105, 103, 123, 115, 144, 168, 123, 110, 127, 116, 118, 131, 118, 121, 96, 106, 88, 93, 164, 117, 143, 145, 115, 114, 105, 110, 114, 125, 120, 116, 115, 113, 130, 142, 128, 114, 116, 124, 129, 124, 127, 115, 129, 115, 115, 121, 126, 149, 95, 116, 126, 112, 115, 142, 119, 116, 112, 111, 113, 114, 115, 109, 118, 122, 125, 124, 120, 87, 130, 102, 113, 113, 99, 96, 109, 112, 122, 122, 119, 110, 146, 99, 120, 113, 120, 118, 119, 122, 126, 109, 119, 131, 99, 109, 135, 106, 121, 150, 109, 115, 121, 114, 119, 120, 107, 128, 106, 105, 121, 117, 112, 122, 122, 119, 124, 107, 128, 121, 107, 111, 118, 118, 110, 126, 122, 115, 119, 110, 117, 116, 100, 118, 122, 103, 111, 110, 118, 111, 106, 116, 127, 105, 116, 111, 128, 106, 129, 114, 110, 112, 127, 117, 126, 113, 116, 129, 134, 112, 91, 146, 117, 153, 113, 110, 137, 106, 116, 131, 115, 121, 114, 116, 130, 123, 121, 117, 135, 126, 109, 111, 123, 115, 118, 115, 119, 121, 110, 103, 28, 119, 113, 114, 123, 114, 127, 125, 110, 118, 115, 110, 105, 116, 119, 108, 119, 103, 98, 112, 169, 119, 109, 131, 137, 105, 106, 115, 136, 106, 110, 107, 114, 107, 113, 120, 126, 112, 124, 108, 120, 118, 122, 112, 119, 126, 115, 113, 115, 114, 108, 117, 116, 115, 116, 116, 136, 114, 111, 116, 117, 130, 120, 109, 120, 118, 125, 127, 111, 119, 124, 112, 112, 139, 119, 115, 169, 113, 119, 122, 111, 111, 123, 119, 116, 114, 110, 116, 113, 120, 117, 111, 124, 118, 145, 109, 114, 117, 116, 123, 125, 106, 112, 119, 124, 104, 110, 118, 109, 112, 101, 105, 123, 110, 126, 128, 114, 132, 119, 109, 111, 114, 103, 113, 118, 114, 117, 111, 120, 130, 108, 154, 114, 114, 117, 114, 117, 120, 131, 125, 117, 121, 101, 120, 119, 126, 113, 117, 118, 121, 142, 116, 119, 104, 124, 149, 126, 123, 115, 126, 109, 126, 112, 124, 123, 119, 130, 118, 124, 132, 124, 117, 125, 114, 118, 132, 107, 121, 116, 117, 131, 94, 112, 117, 115, 110, 123, 115, 120, 115, 111, 120, 96, 132, 124, 115, 146, 114, 139, 119, 119, 124, 111, 109, 122, 121, 136, 125, 107, 104, 118, 146, 104, 118, 105, 112, 113, 112, 119, 128, 121, 107, 114, 119, 159, 139, 123, 102, 108, 114, 125, 120, 123, 136, 110, 118, 117, 124, 117, 119, 105, 110, 115, 109, 100, 116, 101, 133, 110, 110, 132, 107, 135, 106, 136, 113, 113, 117, 114, 131, 118, 103, 118, 114, 113, 111, 115, 115, 123, 118, 115, 117, 113, 111, 116, 122, 112, 117, 133, 119, 122, 121, 108, 110, 127, 130, 128, 128, 110, 110, 111, 107, 102, 120, 109, 108, 113, 112, 113, 119, 112, 109, 105, 109, 112, 115, 113, 108, 117, 106, 117, 115, 121, 114, 125, 114, 116, 112, 99, 111, 111, 116, 115, 123, 114, 110, 112, 132, 126, 119, 115, 119, 105, 126, 121, 106, 126, 116, 105, 98, 103, 97, 117, 108, 147, 119, 116, 110, 134, 123};
+ model->setOperandValue(op65, op65_init, sizeof(uint8_t) * 4608);
+ static int32_t op67_init[] = {-4214, 9621, 9177, 13673, -3399, 4623, 1067, 210, 2937, 10176, 2208, -274, 1294, 23553, 7099, 9771, 403, 13543, 8182, 980, 3361, 8910, 6839, -6282, -2942, 5983, 7094, 805, 8640, -7148, 3248, -1032, 4779, -3521, 13360, 2996, 17431, 3380, -6047, -1334, -3578, -863, -7567, 18113, 10831, 21789, -8372, -2748, 15416, 2926, -2322, 2634, -4064, 12928, 2071, -755, 2017, 10921, 3937, 10959, 7032, -1828, 647, 3980, -6764, 5919, 12612, 6857, 6255, -4238, 12544, 3741, 15007, -6258, -1530, 10254, 7278, -1842, 1667, 7091, 2722, -6176, 12104, 3859, 6431, 16235, 31628, 9889, 471, -15, 10309, 15599, -8860, -9604, -2789, 3416, 1893, 12078, -989, 21591, 8362, -7187, -3033, 4972, -5602, 11204, 11500, 4086, 7970, 1197, 4093, -2159, 6313, -4407, 5760, 12772, -1199, -14735, 5800, 12302, 2561, 2751, -9133, 745, 516, -1498, 299, 10946, -7946, 18054, 13072, 2075, -4003, 3693, -1748, -3236, 4937, -10941, 10622, -4971, -4905, 6966, -1330, -1536, 1109, 3535, -2925, 255, 5214, 7204, 2781, -5078, 6673, -2948, 7297, 9914, 7403, 5959, 2757, 11753, -3890, -2293, 6262, 5589, -10244, 13348, 8237, -7001, 6496, 7394, 3636, 5873, 7017, 22007, 9987, 4647, -7801, -14036, 1112, 13463, 14389, 8300, 4837, -12923, -857, 5712, -7052, 8644, 9579, 5610, -8186, 5916, -6455, 6896, 5804, -221, 3106, 8643, 18571, 3234, 13241, 4051, 13093, 5111, 7440, 4162, 9808, 5245, 5786, -1997, 8380, 8949, -2292, 1910, 1160, 1740, 8316, 9836, 7519, 5989, 3636, 7251, 3554, 1892, 10585, 1357, -4868, 2893, 6972, 6499, 19649, 319, 10529, 4239, 8153, -5382, 3282, 4722, 5079, 7581, -3373, 377, 4248, 7658, -2987, 1735, -5732, 8079, -110, 5151, 4279, -5306, 12951, 6216, -6579, 12070, -1453, 4912, 12314, 3618, 6372, -307, 6707, 7514, 17017, 8105, 5397, 9705, 4120, 13173, 7793, 9891, 7840, 5828, -11351, 4782, 5657, 1744, 171, 4874, 1917, 3435, 2230, 895, -5880, -7738, 4351, 5505, 712, 8344, -1206, 10306, 2509, 8517, 679, 1208, 1316, -310, 9947, 3747, 330, -267, -421, -1917, 2503, 114, 5472, 4465, -986, 9854, -3928, -4528, -2415, 17972, 1681, 4169, -2884, -5997, 5233, 5019, 3393, 2296, 2333, 5062, -6723, 15911, 6052, 7590, -743, 16729, -2203, -80, 5817, 8775, 16237, -4735, 2325, -2220, 12630, 14261, 1024, 5443, 0, -1921, -1933, 4719, 7899, 631, 4078, 3147, 6832, -4773, 371, 3897, -19077, 8224, -4716, 17577, 3884, 6701, -7927, 5543, 5176, 17417, 9580, 15852, 10819, -3518, -10136, -10742, 3254, 7801, 6169, 13398, 17140, 9809, 5233, 14389, 8314, -3430, 2347, 3103, -2978, 17554, 464, -11624, 7638, 6576, 14372, -6335, -2211, 7258, 14969, 4861, 1405, 3201, 11549, 10988, -6060, 7378, 4038, -1653, 11015, 10010, 5542, -3215, -9556, 2601, 13904, -3614, 10757, 9733, 1208, -11780, 6799, -1678, 12578, -10509, 6580, 4022, 6939, 10130, 8437, -8254, 4920, 11614, -2303, 14567, 3832, 3145, -7085, 1060, -6096, -13084, -2155, 7686, 9324, 4686, -1867, 746, 5827, 6038, 4877, -10392, 4515, 2435, 2175, 17603, 11722, -412, -14021, 3669, 5465, 3738, 2191, 7507, -2873, -8475, 7100, 9624, -1725, 1249, 18807, -4320, 11018, 2264, -1323, 7588, 1392, -3662, 18561, 19745, 1843, 2797, 6860, 3145, -4468, 6726, -14893, -1214, 7007, 1407, -11027, -21833, -4331, 4698, 878, 13808, 1315, 17976, -6405, -15142, 8560, 6296, 18088, 4090, -8588, 9030, 1179, 1164, 913, 16050, 6468, -5945, 9028, 4995, -2600, 4175, 4801, 3264, -5051, -660};
+ model->setOperandValue(op67, op67_init, sizeof(int32_t) * 512);
+ static uint8_t op68_init[] = {120, 115, 100, 109, 110, 114, 120, 116, 102, 115, 105, 112, 102, 107, 109, 115, 108, 111, 116, 115, 107, 100, 111, 114, 108, 109, 108, 112, 111, 111, 112, 118, 112, 112, 107, 112, 107, 111, 116, 112, 104, 108, 114, 107, 112, 107, 110, 105, 100, 104, 117, 123, 106, 106, 122, 108, 107, 99, 118, 106, 101, 117, 120, 103, 114, 115, 105, 110, 104, 111, 109, 104, 115, 106, 97, 114, 113, 126, 116, 113, 110, 113, 125, 111, 97, 110, 87, 102, 113, 101, 110, 104, 108, 118, 102, 107, 114, 112, 108, 115, 117, 107, 105, 108, 107, 110, 109, 104, 111, 118, 94, 109, 106, 102, 109, 104, 104, 117, 111, 109, 121, 121, 109, 112, 100, 108, 102, 109, 113, 119, 117, 117, 102, 88, 86, 117, 107, 111, 117, 113, 113, 113, 105, 116, 102, 110, 103, 97, 108, 118, 115, 108, 108, 108, 122, 107, 122, 111, 108, 101, 100, 115, 125, 92, 118, 106, 112, 115, 112, 107, 106, 105, 106, 120, 110, 106, 95, 111, 113, 115, 104, 116, 103, 125, 112, 112, 113, 105, 107, 121, 116, 118, 108, 101, 110, 106, 120, 104, 90, 107, 114, 99, 117, 91, 99, 101, 114, 105, 106, 100, 107, 118, 111, 105, 107, 110, 112, 109, 111, 107, 110, 108, 109, 115, 114, 101, 112, 109, 106, 125, 117, 98, 108, 113, 102, 96, 128, 104, 99, 108, 121, 112, 114, 109, 104, 115, 114, 107, 101, 112, 109, 110, 109, 110, 105, 106, 130, 106, 122, 105, 117, 117, 108, 108, 116, 115, 111, 117, 115, 109, 106, 106, 108, 115, 112, 102, 112, 110, 118, 103, 116, 109, 117, 116, 108, 104, 126, 108, 104, 116, 109, 113, 103, 115, 107, 104, 118, 111, 106, 108, 112, 106, 114, 113, 127, 128, 108, 112, 109, 110, 108, 132, 114, 113, 110, 107, 116, 109, 114, 121, 99, 113, 112, 111, 103, 116, 111, 112, 104, 107, 126, 106, 108, 97, 112, 104, 104, 113, 114, 120, 115, 116, 120, 109, 105, 107, 100, 112, 116, 108, 120, 114, 97, 102, 111, 110, 116, 110, 121, 119, 102, 107, 106, 112, 118, 104, 101, 114, 123, 121, 98, 108, 101, 110, 107, 95, 113, 104, 94, 107, 90, 104, 103, 105, 108, 101, 113, 106, 108, 113, 110, 115, 110, 107, 106, 102, 110, 111, 116, 112, 106, 136, 107, 109, 102, 110, 110, 123, 105, 105, 113, 108, 117, 93, 102, 106, 109, 109, 130, 105, 93, 98, 104, 116, 105, 109, 115, 111, 109, 101, 112, 96, 110, 103, 109, 106, 119, 117, 101, 111, 114, 105, 106, 104, 111, 114, 122, 118, 113, 102, 123, 107, 106, 106, 110, 97, 105, 100, 103, 111, 103, 101, 114, 107, 110, 102, 101, 104, 118, 107, 104, 109, 97, 104, 114, 98, 106, 108, 109, 101, 112, 111, 118, 128, 116, 90, 113, 109, 106, 104, 106, 113, 116, 129, 99, 105, 115, 114, 107, 98, 105, 102, 111, 106, 113, 104, 109, 119, 112, 117, 119, 111, 114, 118, 103, 113, 109, 108, 115, 103, 112, 108, 107, 106, 111, 85, 106, 119, 104, 101, 112, 107, 109, 112, 104, 109, 109, 117, 113, 116, 110, 98, 111, 102, 108, 119, 100, 121, 83, 119, 107, 113, 118, 113, 112, 114, 112, 108, 104, 112, 111, 105, 102, 115, 115, 106, 112, 97, 114, 106, 111, 107, 117, 112, 101, 112, 106, 113, 121, 100, 108, 113, 115, 105, 106, 108, 102, 122, 118, 111, 106, 105, 114, 119, 109, 120, 114, 111, 115, 108, 104, 113, 102, 112, 122, 102, 101, 111, 106, 107, 107, 92, 106, 120, 139, 122, 111, 107, 113, 105, 106, 103, 112, 116, 109, 118, 105, 118, 107, 122, 104, 102, 99, 104, 118, 111, 125, 108, 109, 110, 95, 105, 100, 109, 115, 109, 112, 116, 106, 100, 103, 109, 102, 111, 110, 118, 110, 123, 115, 115, 112, 112, 109, 110, 96, 109, 109, 101, 104, 104, 96, 121, 100, 111, 115, 115, 96, 102, 113, 105, 104, 120, 109, 104, 97, 110, 109, 117, 117, 107, 108, 121, 108, 112, 110, 108, 114, 108, 110, 115, 122, 104, 106, 87, 110, 112, 105, 107, 108, 103, 101, 96, 108, 116, 106, 115, 109, 117, 94, 116, 104, 100, 112, 104, 110, 107, 106, 110, 115, 118, 115, 87, 111, 105, 105, 104, 99, 113, 120, 106, 109, 119, 115, 115, 127, 114, 112, 112, 118, 113, 115, 114, 102, 124, 88, 89, 97, 110, 103, 110, 100, 127, 135, 109, 114, 103, 108, 119, 103, 113, 107, 112, 103, 105, 125, 112, 108, 105, 118, 108, 108, 107, 117, 122, 115, 120, 102, 114, 98, 112, 108, 112, 113, 116, 93, 115, 113, 107, 118, 106, 116, 113, 106, 109, 113, 113, 100, 104, 109, 113, 87, 122, 109, 113, 100, 116, 110, 124, 108, 106, 109, 99, 79, 108, 105, 112, 104, 101, 107, 103, 111, 108, 116, 103, 119, 108, 106, 112, 122, 99, 123, 114, 112, 114, 111, 120, 105, 111, 103, 132, 84, 105, 114, 106, 109, 126, 118, 98, 93, 104, 105, 103, 106, 108, 120, 119, 120, 105, 109, 114, 108, 112, 115, 109, 105, 111, 100, 121, 100, 113, 116, 117, 113, 103, 147, 115, 114, 119, 103, 120, 108, 110, 117, 111, 110, 123, 111, 111, 110, 100, 114, 96, 107, 109, 103, 106, 107, 119, 108, 107, 124, 113, 111, 119, 111, 108, 114, 112, 117, 105, 111, 104, 104, 107, 113, 108, 107, 108, 108, 99, 106, 114, 101, 108, 115, 116, 113, 118, 110, 104, 114, 124, 111, 127, 109, 110, 108, 110, 113, 121, 97, 111, 108, 125, 120, 102, 102, 128, 111, 107, 114, 111, 101, 93, 118, 100, 99, 92, 111, 95, 110, 107, 112, 112, 115, 109, 122, 121, 112, 101, 115, 109, 119, 119, 109, 117, 93, 111, 114, 125, 90, 97, 103, 106, 104, 120, 118, 119, 110, 112, 99, 109, 112, 115, 106, 103, 119, 120, 116, 117, 117, 112, 108, 114, 113, 111, 112, 105, 111, 109, 95, 94, 108, 110, 107, 118, 102, 120, 103, 102, 121, 104, 102, 111, 113, 105, 115, 101, 108, 110, 113, 103, 120, 108, 110, 109, 112, 103, 107, 122, 111, 107, 114, 96, 114, 101, 112, 113, 106, 110, 104, 107, 107, 115, 118, 107, 105, 105, 112, 107, 119, 104, 101, 110, 105, 120, 120, 107, 103, 106, 110, 115, 104, 107, 118, 108, 116, 114, 122, 108, 112, 110, 107, 109, 113, 107, 104, 109, 95, 99, 102, 109, 107, 112, 121, 128, 109, 118, 111, 106, 110, 105, 110, 113, 108, 100, 111, 113, 116, 112, 102, 101, 107, 101, 115, 113, 107, 107, 90, 114, 106, 108, 108, 112, 107, 104, 112, 138, 112, 122, 108, 109, 111, 105, 116, 107, 104, 111, 112, 120, 112, 102, 105, 106, 113, 111, 110, 113, 107, 113, 95, 114, 110, 107, 116, 110, 123, 115, 116, 112, 115, 108, 111, 104, 107, 110, 102, 109, 107, 108, 100, 106, 107, 124, 112, 109, 113, 107, 112, 126, 109, 101, 102, 105, 118, 113, 117, 117, 103, 97, 117, 111, 101, 108, 101, 110, 108, 115, 109, 117, 104, 112, 108, 108, 106, 110, 107, 122, 102, 113, 107, 109, 106, 109, 109, 98, 103, 121, 101, 98, 103, 110, 103, 117, 106, 108, 112, 114, 95, 112, 111, 101, 107, 112, 106, 100, 110, 107, 107, 104, 102, 104, 109, 107, 107, 115, 102, 109, 108, 115, 97, 115, 112, 106, 107, 112, 114, 110, 110, 102, 104, 116, 103, 110, 103, 109, 130, 105, 103, 114, 99, 119, 112, 110, 102, 112, 107, 106, 116, 101, 105, 122, 103, 117, 102, 108, 106, 109, 103, 107, 112, 107, 113, 109, 111, 106, 106, 111, 102, 107, 100, 109, 107, 103, 110, 104, 114, 113, 104, 101, 103, 103, 99, 106, 103, 106, 112, 125, 106, 120, 101, 106, 102, 102, 102, 110, 114, 107, 114, 108, 103, 106, 109, 120, 115, 97, 105, 110, 108, 106, 108, 106, 107, 124, 105, 116, 119, 111, 106, 102, 103, 111, 99, 105, 100, 101, 111, 111, 115, 92, 105, 115, 108, 116, 109, 108, 116, 109, 118, 112, 106, 107, 109, 101, 110, 102, 115, 100, 103, 107, 100, 110, 112, 116, 114, 106, 103, 110, 113, 98, 115, 120, 105, 104, 117, 110, 116, 105, 112, 104, 111, 105, 117, 105, 105, 99, 108, 105, 100, 103, 108, 100, 120, 119, 110, 107, 106, 108, 122, 103, 97, 118, 107, 99, 104, 109, 110, 110, 109, 104, 115, 104, 111, 118, 118, 105, 112, 115, 101, 100, 112, 117, 111, 105, 109, 108, 114, 101, 100, 115, 99, 107, 99, 111, 113, 107, 115, 121, 113, 112, 119, 110, 115, 107, 104, 111, 107, 117, 109, 132, 99, 107, 102, 106, 106, 124, 114, 104, 126, 107, 103, 103, 108, 108, 101, 126, 112, 109, 107, 105, 116, 109, 107, 110, 110, 106, 111, 109, 99, 120, 129, 113, 116, 113, 117, 114, 103, 109, 119, 109, 112, 113, 105, 111, 103, 114, 102, 107, 111, 107, 108, 83, 105, 125, 104, 95, 107, 107, 108, 111, 117, 109, 109, 106, 120, 114, 110, 107, 110, 105, 109, 109, 110, 109, 116, 109, 110, 109, 115, 113, 116, 107, 109, 110, 104, 105, 114, 107, 107, 109, 110, 107, 109, 108, 113, 106, 118, 111, 111, 109, 108, 109, 112, 112, 120, 112, 107, 112, 114, 111, 109, 111, 109, 109, 112, 106, 114, 109, 110, 108, 111, 109, 110, 109, 108, 110, 108, 111, 109, 108, 114, 109, 109, 109, 111, 110, 106, 106, 113, 111, 100, 110, 113, 109, 107, 112, 109, 121, 112, 116, 110, 112, 111, 110, 111, 112, 110, 110, 109, 111, 108, 109, 107, 115, 113, 108, 107, 113, 113, 111, 109, 111, 109, 106, 111, 112, 115, 106, 110, 111, 109, 111, 110, 112, 110, 101, 108, 99, 107, 104, 115, 110, 105, 110, 108, 105, 109, 110, 109, 114, 116, 110, 109, 109, 110, 110, 108, 115, 109, 112, 105, 109, 108, 107, 111, 112, 110, 109, 108, 104, 113, 109, 110, 109, 111, 109, 110, 105, 107, 110, 110, 111, 108, 109, 119, 110, 110, 111, 113, 108, 108, 106, 111, 109, 114, 109, 108, 112, 111, 108, 116, 109, 111, 108, 108, 106, 108, 111, 113, 113, 114, 111, 108, 106, 112, 109, 101, 109, 109, 114, 108, 113, 110, 107, 106, 114, 107, 108, 112, 109, 107, 110, 102, 104, 115, 107, 110, 108, 113, 108, 110, 109, 107, 106, 112, 103, 107, 105, 111, 109, 108, 96, 98, 111, 109, 106, 112, 108, 113, 107, 109, 106, 109, 107, 109, 109, 105, 106, 110, 109, 107, 110, 107, 110, 108, 110, 112, 109, 106, 108, 105, 109, 108, 110, 108, 108, 118, 105, 113, 115, 109, 107, 106, 111, 108, 108, 115, 108, 108, 112, 109, 106, 110, 107, 107, 111, 111, 118, 107, 112, 108, 104, 107, 108, 108, 107, 109, 116, 114, 108, 117, 114, 110, 108, 109, 108, 111, 109, 111, 109, 113, 106, 121, 108, 113, 107, 105, 108, 109, 105, 114, 110, 108, 109, 109, 108, 108, 109, 101, 112, 110, 110, 109, 110, 111, 113, 110, 109, 115, 111, 116, 114, 110, 110, 114, 106, 109, 111, 106, 113, 111, 111, 110, 111, 112, 113, 117, 107, 108, 112, 108, 107, 111, 106, 111, 109, 105, 109, 108, 111, 111, 113, 106, 108, 110, 111, 113, 109, 116, 109, 111, 112, 112, 109, 113, 109, 110, 109, 110, 110, 112, 110, 110, 110, 107, 108, 110, 107, 88, 108, 110, 95, 112, 110, 111, 125, 107, 111, 112, 108, 110, 109, 107, 113, 109, 111, 110, 110, 111, 106, 109, 110, 111, 110, 107, 109, 111, 111, 109, 105, 110, 111, 111, 113, 113, 108, 109, 111, 111, 115, 112, 109, 112, 111, 111, 110, 114, 110, 104, 112, 110, 110, 108, 113, 111, 113, 111, 110, 108, 110, 112, 114, 110, 113, 107, 111, 107, 111, 111, 108, 108, 117, 112, 112, 109, 111, 111, 108, 107, 111, 109, 108, 113, 111, 105, 108, 105, 109, 109, 111, 113, 110, 110, 108, 107, 111, 110, 112, 105, 120, 117, 110, 121, 105, 112, 110, 113, 105, 97, 104, 110, 117, 118, 118, 108, 130, 130, 102, 101, 108, 115, 114, 109, 109, 115, 114, 106, 109, 132, 116, 108, 103, 114, 101, 112, 127, 108, 119, 109, 109, 112, 103, 104, 112, 98, 104, 102, 104, 107, 116, 105, 111, 116, 100, 113, 133, 115, 105, 103, 111, 112, 117, 110, 71, 102, 103, 102, 116, 111, 95, 104, 126, 103, 115, 115, 109, 119, 111, 109, 116, 114, 104, 107, 117, 115, 97, 114, 107, 106, 107, 99, 111, 115, 107, 98, 116, 107, 104, 127, 110, 110, 112, 107, 108, 116, 111, 114, 116, 108, 112, 102, 109, 103, 132, 112, 115, 97, 118, 110, 113, 110, 99, 102, 112, 113, 125, 95, 120, 119, 105, 116, 101, 111, 116, 104, 122, 108, 100, 116, 112, 105, 110, 105, 107, 107, 107, 108, 102, 113, 113, 113, 104, 110, 101, 97, 112, 109, 109, 115, 112, 103, 105, 115, 117, 117, 103, 109, 95, 112, 111, 116, 111, 105, 103, 110, 109, 109, 112, 108, 114, 110, 112, 108, 117, 108, 111, 112, 105, 111, 112, 111, 112, 115, 89, 114, 100, 111, 109, 113, 105, 108, 113, 109, 109, 108, 116, 114, 112, 113, 118, 115, 114, 110, 102, 118, 107, 108, 111, 112, 115, 110, 112, 113, 109, 113, 95, 108, 107, 107, 111, 111, 104, 107, 101, 109, 115, 100, 117, 108, 112, 126, 113, 106, 111, 109, 103, 100, 113, 107, 103, 119, 100, 110, 110, 107, 117, 112, 97, 106, 110, 104, 109, 113, 107, 125, 103, 107, 105, 93, 106, 105, 115, 110, 114, 101, 112, 110, 116, 119, 105, 110, 100, 107, 105, 117, 109, 105, 116, 115, 116, 109, 114, 109, 112, 109, 111, 107, 104, 107, 115, 113, 114, 116, 113, 116, 112, 118, 106, 109, 107, 103, 112, 107, 111, 105, 116, 119, 101, 109, 124, 125, 103, 109, 104, 111, 114, 104, 108, 104, 102, 116, 114, 111, 105, 119, 107, 115, 100, 109, 113, 108, 111, 114, 111, 112, 102, 102, 112, 105, 111, 113, 104, 118, 109, 112, 114, 100, 105, 115, 109, 119, 100, 107, 104, 103, 117, 110, 109, 109, 127, 112, 101, 109, 114, 114, 118, 108, 118, 108, 98, 112, 113, 112, 104, 114, 117, 112, 106, 112, 115, 102, 111, 111, 111, 133, 112, 113, 102, 105, 114, 109, 112, 112, 115, 112, 108, 125, 113, 136, 108, 106, 111, 107, 112, 103, 126, 115, 107, 122, 107, 117, 105, 117, 98, 109, 110, 111, 105, 99, 107, 116, 103, 111, 96, 111, 113, 106, 101, 94, 121, 116, 115, 113, 111, 108, 110, 103, 131, 111, 115, 106, 114, 114, 110, 105, 91, 114, 116, 101, 104, 107, 116, 111, 90, 117, 106, 109, 120, 101, 126, 118, 110, 117, 115, 109, 107, 117, 105, 113, 119, 105, 101, 104, 106, 114, 107, 115, 105, 110, 105, 106, 111, 113, 111, 110, 107, 110, 112, 114, 107, 144, 113, 111, 110, 122, 105, 110, 106, 115, 115, 113, 110, 115, 104, 115, 116, 113, 109, 109, 113, 110, 105, 111, 107, 104, 113, 113, 118, 122, 118, 90, 124, 114, 111, 110, 107, 111, 116, 111, 112, 109, 112, 109, 106, 108, 109, 108, 108, 91, 96, 120, 109, 107, 107, 101, 114, 98, 108, 101, 114, 107, 112, 107, 117, 111, 106, 109, 114, 111, 108, 111, 110, 109, 108, 109, 111, 100, 112, 110, 111, 114, 104, 109, 101, 106, 107, 105, 94, 112, 110, 108, 109, 111, 113, 111, 115, 110, 112, 109, 110, 110, 107, 105, 105, 113, 98, 110, 113, 105, 106, 102, 106, 111, 105, 112, 110, 108, 107, 123, 110, 105, 109, 127, 112, 105, 102, 109, 111, 108, 108, 106, 116, 111, 110, 108, 106, 106, 112, 107, 111, 108, 117, 114, 110, 113, 101, 111, 115, 115, 105, 111, 113, 109, 108, 111, 108, 115, 114, 110, 113, 100, 112, 109, 113, 107, 112, 110, 108, 111, 111, 111, 112, 112, 106, 101, 112, 114, 107, 109, 114, 115, 116, 112, 108, 110, 110, 107, 111, 110, 105, 110, 108, 107, 107, 106, 112, 112, 119, 104, 111, 112, 114, 106, 112, 111, 114, 105, 112, 110, 109, 111, 106, 110, 112, 115, 111, 110, 135, 113, 103, 103, 109, 113, 112, 109, 106, 100, 106, 108, 108, 113, 111, 108, 117, 114, 107, 114, 120, 111, 112, 116, 114, 117, 105, 110, 107, 108, 112, 104, 112, 113, 104, 111, 108, 110, 104, 110, 101, 111, 115, 116, 112, 114, 111, 108, 106, 120, 114, 113, 105, 113, 107, 114, 111, 106, 107, 111, 116, 109, 116, 108, 114, 107, 109, 120, 106, 105, 112, 116, 113, 112, 119, 114, 112, 106, 99, 104, 114, 105, 110, 109, 115, 108, 104, 113, 110, 114, 111, 105, 115, 112, 104, 108, 112, 108, 111, 111, 110, 109, 112, 110, 108, 110, 114, 113, 112, 109, 97, 123, 114, 113, 113, 109, 110, 117, 116, 112, 109, 107, 117, 115, 113, 116, 113, 105, 112, 110, 111, 107, 110, 115, 115, 110, 99, 114, 112, 105, 111, 106, 109, 111, 110, 128, 113, 115, 128, 114, 108, 113, 108, 108, 110, 111, 112, 110, 120, 115, 116, 106, 109, 115, 112, 114, 106, 108, 105, 104, 111, 107, 113, 105, 112, 107, 112, 115, 114, 112, 112, 106, 105, 107, 108, 112, 106, 113, 108, 114, 109, 115, 102, 110, 105, 108, 109, 106, 111, 112, 107, 119, 112, 111, 110, 115, 112, 111, 109, 108, 102, 111, 113, 113, 109, 113, 111, 118, 109, 108, 103, 131, 115, 110, 113, 109, 105, 111, 110, 102, 114, 106, 113, 114, 115, 115, 110, 112, 111, 102, 110, 98, 106, 111, 110, 111, 107, 111, 108, 110, 98, 109, 109, 117, 110, 116, 106, 111, 107, 108, 111, 111, 99, 109, 107, 112, 108, 108, 126, 108, 108, 113, 108, 107, 109, 110, 112, 113, 104, 110, 108, 120, 115, 102, 112, 112, 108, 105, 100, 109, 110, 112, 110, 105, 108, 110, 108, 113, 101, 111, 107, 107, 114, 113, 114, 111, 99, 102, 106, 112, 111, 102, 116, 110, 107, 110, 110, 106, 112, 109, 109, 87, 109, 110, 118, 109, 106, 114, 105, 120, 117, 109, 110, 107, 102, 105, 108, 123, 109, 108, 110, 102, 109, 109, 110, 111, 114, 109, 117, 110, 103, 109, 115, 113, 109, 109, 106, 114, 106, 104, 112, 110, 74, 111, 107, 115, 100, 110, 112, 113, 123, 110, 115, 107, 112, 109, 106, 107, 111, 114, 108, 109, 102, 119, 105, 108, 113, 108, 119, 110, 109, 116, 111, 112, 116, 108, 114, 112, 115, 109, 110, 106, 102, 112, 104, 111, 111, 107, 111, 116, 110, 105, 116, 117, 106, 113, 109, 105, 112, 112, 111, 110, 112, 106, 114, 112, 108, 105, 123, 112, 113, 112, 92, 113, 111, 112, 112, 113, 107, 110, 115, 117, 107, 113, 121, 103, 110, 111, 114, 100, 113, 108, 106, 109, 106, 115, 112, 108, 103, 107, 110, 110, 111, 113, 114, 105, 111, 108, 111, 112, 109, 116, 110, 110, 123, 113, 106, 107, 115, 109, 107, 109, 110, 113, 110, 112, 113, 110, 106, 115, 93, 123, 115, 116, 114, 115, 115, 111, 118, 111, 114, 112, 115, 105, 115, 111, 110, 113, 112, 114, 118, 112, 115, 114, 112, 109, 108, 114, 110, 116, 109, 97, 111, 112, 116, 90, 107, 114, 103, 101, 105, 110, 111, 103, 108, 105, 113, 102, 121, 108, 115, 114, 111, 107, 111, 114, 112, 110, 109, 112, 110, 112, 106, 117, 110, 118, 111, 111, 108, 115, 111, 108, 116, 112, 108, 110, 111, 105, 112, 114, 109, 114, 113, 115, 112, 108, 108, 109, 112, 113, 101, 110, 111, 112, 102, 113, 114, 107, 112, 111, 107, 108, 104, 119, 99, 107, 104, 108, 106, 107, 113, 110, 116, 114, 113, 106, 105, 114, 114, 110, 109, 108, 118, 104, 116, 116, 104, 109, 114, 108, 110, 110, 108, 119, 108, 108, 99, 113, 108, 112, 111, 114, 116, 104, 111, 112, 108, 110, 113, 113, 111, 113, 110, 115, 98, 110, 110, 102, 105, 119, 105, 111, 108, 110, 113, 112, 108, 116, 114, 111, 110, 110, 110, 111, 115, 108, 110, 112, 140, 110, 109, 111, 107, 110, 108, 103, 112, 110, 117, 105, 116, 109, 112, 113, 104, 108, 99, 104, 118, 119, 114, 102, 113, 113, 126, 110, 112, 107, 111, 118, 106, 115, 108, 104, 105, 111, 116, 116, 111, 114, 111, 105, 108, 113, 110, 116, 110, 112, 111, 115, 114, 114, 111, 113, 111, 106, 110, 109, 108, 109, 123, 110, 113, 112, 111, 111, 114, 111, 106, 120, 121, 111, 112, 110, 110, 121, 113, 104, 117, 103, 111, 115, 116, 112, 103, 105, 108, 113, 104, 111, 105, 113, 125, 104, 107, 116, 109, 114, 105, 118, 109, 109, 112, 110, 111, 110, 115, 113, 111, 107, 107, 110, 115, 107, 117, 108, 113, 116, 108, 110, 111, 110, 109, 106, 105, 107, 111, 113, 114, 116, 109, 110, 113, 111, 106, 113, 111, 113, 114, 110, 114, 108, 118, 113, 108, 111, 109, 113, 111, 100, 107, 112, 122, 106, 114, 104, 111, 108, 111, 107, 95, 108, 114, 105, 115, 108, 109, 112, 105, 105, 96, 106, 110, 110, 105, 117, 115, 140, 101, 108, 111, 110, 110, 102, 107, 115, 107, 110, 101, 120, 106, 109, 116, 109, 114, 113, 111, 106, 108, 116, 115, 114, 91, 112, 98, 134, 106, 115, 101, 105, 94, 113, 105, 111, 106, 111, 103, 111, 112, 109, 113, 107, 122, 108, 105, 107, 107, 115, 105, 109, 110, 114, 93, 106, 105, 109, 112, 113, 111, 106, 104, 97, 116, 111, 119, 113, 98, 113, 97, 101, 114, 104, 110, 109, 110, 111, 107, 110, 107, 104, 121, 111, 119, 119, 121, 110, 129, 115, 102, 113, 106, 111, 115, 102, 120, 108, 113, 112, 110, 110, 107, 104, 116, 109, 118, 104, 111, 102, 118, 114, 111, 112, 93, 109, 112, 104, 108, 113, 112, 121, 115, 115, 94, 103, 109, 98, 115, 110, 101, 105, 109, 107, 120, 104, 119, 112, 111, 105, 97, 96, 115, 113, 128, 110, 115, 108, 117, 108, 117, 108, 109, 102, 101, 112, 113, 110, 90, 104, 110, 125, 108, 106, 115, 101, 110, 110, 102, 107, 110, 104, 115, 107, 105, 104, 106, 122, 109, 111, 114, 110, 106, 112, 111, 114, 118, 115, 98, 107, 113, 116, 108, 111, 109, 102, 101, 106, 114, 121, 112, 117, 112, 115, 107, 108, 109, 118, 113, 106, 113, 121, 109, 110, 105, 106, 104, 103, 94, 113, 111, 95, 112, 111, 108, 106, 110, 94, 105, 104, 108, 109, 111, 86, 100, 106, 107, 105, 117, 108, 96, 112, 105, 118, 112, 115, 115, 115, 120, 111, 114, 106, 104, 111, 107, 110, 120, 105, 115, 111, 111, 104, 119, 105, 108, 105, 105, 130, 108, 113, 117, 127, 111, 106, 112, 94, 108, 84, 113, 107, 86, 116, 130, 104, 111, 112, 112, 104, 113, 95, 111, 98, 115, 112, 115, 112, 102, 113, 123, 110, 108, 110, 116, 102, 109, 98, 110, 106, 113, 108, 85, 108, 111, 110, 105, 110, 114, 84, 109, 108, 90, 107, 103, 108, 112, 108, 103, 104, 162, 106, 104, 107, 106, 107, 112, 110, 110, 116, 119, 111, 108, 99, 120, 113, 106, 109, 100, 116, 117, 116, 114, 109, 118, 103, 112, 105, 109, 90, 117, 110, 106, 108, 105, 113, 121, 116, 130, 99, 112, 108, 104, 117, 110, 116, 113, 109, 108, 110, 111, 110, 114, 106, 109, 112, 108, 113, 118, 126, 115, 101, 105, 115, 109, 103, 123, 102, 116, 107, 111, 108, 117, 118, 103, 114, 118, 109, 120, 106, 124, 116, 104, 106, 114, 117, 127, 116, 109, 103, 111, 114, 119, 103, 111, 122, 113, 103, 116, 102, 111, 96, 107, 115, 113, 99, 107, 102, 86, 104, 113, 127, 117, 107, 112, 116, 110, 104, 110, 96, 101, 106, 107, 113, 106, 120, 108, 117, 114, 104, 116, 107, 108, 106, 105, 107, 121, 108, 113, 105, 103, 101, 103, 107, 106, 109, 108, 112, 109, 106, 118, 111, 107, 98, 102, 108, 114, 110, 121, 111, 98, 109, 107, 98, 107, 120, 110, 111, 118, 108, 113, 114, 106, 111, 109, 101, 107, 120, 118, 123, 111, 114, 112, 108, 109, 98, 114, 115, 109, 111, 111, 116, 112, 110, 103, 106, 113, 103, 97, 110, 118, 114, 110, 109, 114, 117, 119, 96, 89, 107, 99, 118, 101, 112, 107, 117, 103, 132, 125, 108, 115, 119, 104, 110, 111, 113, 117, 107, 112, 105, 107, 100, 112, 112, 91, 127, 105, 109, 102, 119, 117, 97, 116, 116, 115, 101, 109, 114, 106, 139, 112, 104, 103, 98, 109, 102, 107, 88, 112, 110, 113, 111, 96, 108, 119, 109, 99, 102, 117, 105, 105, 101, 106, 101, 114, 109, 117, 120, 120, 118, 99, 95, 116, 112, 103, 109, 122, 113, 120, 102, 113, 110, 99, 117, 113, 107, 110, 113, 118, 113, 111, 109, 103, 106, 107, 99, 101, 106, 99, 94, 105, 108, 116, 102, 90, 110, 112, 109, 112, 104, 111, 105, 122, 114, 106, 114, 116, 116, 120, 108, 112, 102, 98, 112, 117, 107, 107, 105, 93, 106, 106, 104, 108, 109, 108, 103, 104, 115, 110, 112, 99, 109, 114, 98, 96, 104, 107, 101, 108, 105, 111, 113, 114, 113, 118, 107, 118, 108, 118, 102, 100, 122, 110, 89, 104, 105, 92, 105, 105, 106, 109, 111, 110, 112, 100, 126, 107, 112, 103, 110, 105, 111, 114, 118, 109, 109, 107, 109, 109, 117, 100, 88, 104, 119, 110, 118, 108, 120, 111, 116, 106, 96, 113, 116, 110, 103, 113, 111, 104, 110, 115, 113, 112, 112, 102, 94, 115, 114, 102, 108, 106, 121, 98, 126, 113, 109, 103, 100, 113, 106, 94, 109, 119, 107, 106, 110, 112, 101, 104, 107, 100, 98, 116, 119, 112, 108, 108, 106, 106, 101, 130, 107, 108, 87, 99, 113, 115, 100, 111, 111, 112, 105, 109, 109, 111, 112, 100, 112, 116, 111, 99, 104, 111, 97, 123, 105, 114, 122, 114, 104, 116, 117, 102, 109, 103, 111, 104, 135, 112, 97, 111, 97, 115, 110, 113, 110, 111, 106, 100, 111, 106, 110, 100, 109, 100, 116, 118, 113, 115, 118, 103, 105, 95, 114, 115, 102, 104, 114, 101, 117, 110, 106, 112, 117, 102, 117, 125, 109, 110, 109, 114, 110, 120, 110, 112, 118, 106, 113, 90, 126, 98, 121, 106, 102, 104, 94, 109, 109, 106, 113, 114, 112, 109, 100, 117, 109, 108, 108, 113, 116, 114, 115, 109, 108, 92, 108, 110, 113, 147, 105, 115, 109, 121, 105, 120, 123, 112, 102, 98, 118, 113, 107, 115, 100, 111, 106, 121, 119, 121, 117, 96, 101, 130, 118, 106, 121, 108, 122, 94, 110, 110, 104, 118, 130, 104, 103, 113, 109, 113, 111, 103, 109, 110, 118, 121, 115, 118, 100, 116, 111, 101, 93, 96, 112, 112, 122, 111, 111, 106, 131, 105, 110, 114, 110, 91, 114, 110, 110, 117, 107, 119, 110, 108, 110, 109, 98, 115, 113, 122, 108, 109, 106, 107, 105, 118, 110, 96, 106, 115, 109, 115, 115, 123, 119, 103, 110, 112, 95, 105, 104, 128, 100, 102, 107, 119, 103, 115, 109, 113, 111, 102, 116, 103, 113, 111, 125, 128, 101, 112, 102, 110, 100, 98, 104, 103, 109, 106, 101, 104, 111, 115, 109, 112, 113, 98, 109, 107, 106, 105, 108, 108, 118, 105, 131, 110, 111, 99, 105, 115, 99, 104, 109, 108, 97, 98, 136, 104, 100, 99, 116, 104, 118, 104, 104, 105, 122, 105, 102, 122, 111, 114, 110, 110, 120, 114, 107, 118, 116, 100, 117, 114, 118, 108, 113, 102, 109, 108, 120, 111, 115, 114, 112, 113, 109, 101, 106, 116, 113, 102, 101, 112, 112, 121, 102, 104, 102, 110, 103, 99, 126, 106, 101, 107, 113, 109, 104, 108, 104, 105, 111, 119, 123, 111, 106, 108, 98, 102, 99, 103, 113, 98, 111, 114, 111, 119, 106, 108, 101, 111, 111, 118, 102, 91, 108, 114, 99, 115, 104, 106, 113, 101, 99, 123, 102, 117, 113, 104, 96, 111, 109, 110, 109, 120, 109, 110, 119, 117, 100, 113, 101, 95, 118, 110, 119, 101, 101, 93, 123, 104, 114, 108, 111, 123, 94, 111, 107, 121, 109, 110, 123, 113, 99, 104, 111, 119, 118, 116, 110, 114, 118, 107, 109, 105, 132, 96, 106, 112, 127, 106, 116, 113, 121, 112, 106, 114, 103, 107, 129, 109, 105, 111, 108, 103, 110, 112, 107, 108, 113, 112, 102, 114, 109, 108, 111, 108, 107, 115, 107, 104, 110, 121, 109, 106, 106, 104, 99, 110, 107, 104, 119, 106, 107, 122, 111, 120, 109, 106, 105, 103, 108, 99, 108, 103, 111, 107, 107, 116, 110, 112, 132, 110, 109, 108, 108, 107, 114, 100, 113, 98, 118, 94, 108, 97, 134, 104, 101, 99, 98, 116, 121, 107, 106, 101, 100, 116, 115, 114, 109, 105, 114, 107, 109, 99, 112, 111, 104, 104, 107, 111, 116, 102, 118, 107, 99, 112, 109, 104, 113, 95, 115, 112, 117, 115, 113, 113, 112, 101, 99, 106, 100, 113, 110, 98, 116, 95, 113, 118, 111, 116, 118, 104, 109, 120, 100, 120, 103, 118, 101, 100, 105, 103, 123, 109, 121, 104, 101, 105, 131, 107, 101, 108, 113, 114, 102, 98, 113, 94, 125, 115, 121, 116, 113, 107, 126, 97, 114, 98, 102, 95, 106, 103, 102, 117, 98, 102, 114, 114, 106, 108, 114, 103, 111, 112, 100, 99, 104, 112, 115, 101, 102, 117, 112, 121, 101, 117, 102, 105, 110, 106, 118, 99, 115, 102, 110, 114, 116, 124, 100, 106, 104, 108, 121, 108, 115, 98, 117, 111, 94, 106, 122, 107, 115, 105, 122, 117, 107, 120, 112, 101, 115, 85, 93, 112, 118, 106, 103, 107, 104, 116, 135, 114, 107, 110, 111, 108, 97, 112, 95, 109, 101, 105, 99, 118, 98, 102, 101, 104, 121, 106, 102, 109, 92, 116, 115, 110, 112, 99, 109, 106, 116, 113, 114, 121, 105, 118, 108, 101, 106, 107, 108, 104, 99, 110, 101, 120, 111, 109, 100, 107, 106, 110, 108, 102, 106, 117, 126, 110, 109, 112, 113, 100, 123, 110, 107, 105, 108, 114, 111, 105, 111, 110, 104, 114, 107, 115, 103, 102, 111, 99, 105, 116, 102, 107, 114, 102, 116, 115, 123, 104, 106, 108, 121, 113, 122, 119, 108, 99, 100, 113, 106, 117, 107, 97, 113, 97, 111, 99, 107, 105, 116, 107, 113, 108, 110, 100, 108, 105, 111, 111, 117, 100, 112, 102, 108, 106, 110, 110, 124, 110, 113, 112, 114, 109, 120, 105, 106, 109, 107, 115, 109, 108, 105, 114, 111, 106, 123, 111, 109, 109, 106, 110, 110, 110, 116, 101, 100, 105, 112, 110, 118, 109, 110, 124, 108, 108, 100, 113, 116, 112, 112, 100, 109, 113, 125, 103, 115, 104, 102, 106, 112, 117, 109, 112, 106, 114, 113, 109, 113, 116, 111, 109, 114, 112, 116, 91, 116, 101, 102, 128, 107, 110, 105, 112, 107, 106, 111, 105, 119, 114, 108, 114, 114, 113, 106, 106, 106, 102, 112, 107, 117, 103, 112, 118, 104, 108, 123, 109, 108, 109, 110, 114, 109, 104, 115, 116, 113, 119, 106, 114, 109, 106, 122, 114, 111, 113, 106, 106, 114, 102, 111, 107, 108, 108, 107, 130, 114, 103, 111, 116, 124, 111, 100, 108, 116, 105, 121, 112, 101, 109, 111, 107, 101, 116, 111, 111, 127, 111, 109, 107, 109, 103, 101, 134, 104, 109, 116, 106, 113, 98, 115, 109, 110, 109, 113, 133, 102, 107, 113, 110, 113, 112, 109, 110, 116, 108, 108, 110, 108, 109, 107, 115, 110, 110, 103, 112, 110, 112, 110, 112, 106, 110, 109, 108, 119, 119, 102, 113, 116, 112, 114, 100, 111, 117, 110, 107, 105, 110, 116, 114, 113, 110, 109, 103, 111, 109, 108, 108, 106, 114, 109, 113, 101, 103, 105, 112, 103, 112, 109, 109, 108, 112, 109, 115, 112, 115, 110, 109, 101, 106, 100, 106, 103, 107, 110, 113, 109, 108, 104, 99, 121, 108, 111, 109, 104, 120, 108, 118, 119, 100, 100, 119, 110, 110, 109, 106, 109, 107, 105, 109, 121, 111, 111, 132, 118, 117, 107, 111, 138, 108, 99, 99, 125, 107, 106, 111, 118, 113, 113, 91, 118, 100, 102, 113, 127, 107, 141, 110, 100, 106, 112, 111, 109, 104, 118, 116, 105, 115, 109, 112, 130, 102, 126, 108, 110, 109, 103, 110, 102, 106, 106, 109, 114, 110, 106, 109, 116, 107, 110, 111, 108, 108, 112, 101, 118, 109, 113, 109, 110, 108, 108, 105, 104, 109, 105, 114, 100, 109, 103, 108, 113, 102, 116, 102, 106, 110, 112, 109, 104, 107, 106, 110, 108, 109, 113, 108, 126, 111, 114, 108, 109, 111, 106, 106, 104, 102, 110, 107, 118, 107, 114, 117, 115, 111, 110, 111, 112, 116, 113, 120, 112, 118, 110, 113, 107, 105, 103, 119, 110, 113, 114, 107, 105, 110, 115, 108, 108, 118, 100, 106, 116, 97, 111, 112, 111, 105, 109, 107, 120, 105, 109, 110, 104, 111, 112, 111, 114, 117, 121, 109, 108, 105, 106, 109, 111, 111, 116, 110, 107, 100, 113, 119, 125, 103, 126, 105, 105, 110, 124, 116, 108, 120, 113, 114, 112, 113, 110, 107, 100, 103, 110, 105, 113, 107, 111, 100, 114, 107, 110, 113, 98, 111, 100, 143, 99, 90, 114, 104, 109, 118, 103, 96, 112, 104, 108, 114, 92, 114, 109, 125, 115, 106, 129, 109, 105, 102, 104, 111, 109, 115, 124, 114, 106, 110, 128, 107, 107, 115, 98, 119, 111, 99, 98, 120, 134, 112, 90, 112, 125, 104, 124, 124, 110, 99, 95, 110, 113, 105, 111, 96, 108, 104, 107, 107, 115, 111, 106, 106, 116, 110, 129, 106, 108, 120, 108, 115, 105, 122, 113, 109, 112, 94, 115, 115, 110, 125, 108, 107, 113, 137, 124, 119, 103, 95, 123, 108, 101, 122, 111, 114, 118, 123, 113, 91, 111, 108, 99, 113, 110, 115, 114, 105, 106, 121, 115, 106, 98, 104, 104, 101, 116, 110, 109, 115, 114, 107, 109, 105, 113, 118, 101, 100, 110, 119, 113, 105, 99, 107, 123, 104, 111, 116, 105, 98, 128, 106, 108, 115, 97, 102, 103, 119, 112, 110, 125, 124, 109, 106, 137, 106, 118, 120, 104, 104, 107, 108, 119, 105, 112, 105, 105, 102, 123, 122, 109, 105, 114, 103, 92, 116, 110, 109, 113, 115, 110, 118, 113, 101, 123, 112, 114, 122, 112, 108, 128, 104, 115, 101, 106, 107, 104, 114, 107, 111, 98, 128, 110, 118, 124, 101, 109, 105, 115, 105, 113, 103, 109, 113, 112, 111, 112, 118, 120, 107, 103, 110, 97, 115, 113, 96, 105, 118, 110, 114, 119, 114, 105, 116, 100, 100, 97, 117, 104, 104, 101, 98, 113, 114, 101, 109, 102, 109, 96, 109, 112, 100, 108, 101, 113, 110, 106, 118, 106, 106, 112, 97, 102, 116, 110, 104, 112, 113, 119, 98, 101, 122, 123, 110, 128, 113, 109, 107, 113, 111, 110, 116, 122, 106, 112, 115, 105, 107, 112, 105, 135, 96, 114, 101, 108, 115, 112, 115, 112, 104, 111, 112, 102, 118, 110, 115, 117, 107, 118, 111, 112, 112, 123, 101, 100, 112, 120, 99, 108, 111, 115, 118, 114, 118, 113, 114, 108, 119, 99, 104, 105, 104, 109, 95, 115, 120, 89, 121, 106, 107, 112, 121, 124, 96, 111, 111, 111, 102, 112, 113, 104, 108, 107, 111, 103, 104, 121, 100, 99, 109, 110, 105, 129, 107, 110, 109, 115, 98, 113, 96, 103, 127, 95, 107, 114, 108, 93, 100, 120, 108, 125, 111, 124, 101, 118, 112, 106, 98, 107, 118, 113, 110, 111, 100, 112, 117, 113, 104, 106, 116, 106, 109, 114, 100, 119, 116, 123, 104, 114, 114, 112, 113, 127, 102, 104, 107, 105, 99, 105, 108, 114, 109, 111, 116, 115, 119, 108, 124, 124, 108, 106, 108, 106, 105, 116, 121, 114, 113, 107, 109, 107, 127, 116, 105, 103, 100, 111, 111, 115, 114, 129, 107, 114, 105, 107, 96, 124, 96, 97, 104, 113, 115, 105, 101, 109, 113, 113, 105, 110, 120, 97, 117, 113, 112, 113, 110, 114, 103, 116, 113, 107, 107, 106, 99, 109, 107, 109, 119, 106, 122, 117, 101, 108, 107, 105, 109, 97, 105, 106, 109, 114, 126, 111, 103, 114, 116, 109, 104, 117, 115, 114, 94, 125, 111, 110, 105, 116, 111, 109, 108, 105, 111, 124, 118, 112, 97, 113, 104, 117, 110, 110, 103, 104, 103, 98, 111, 117, 105, 82, 111, 107, 110, 110, 102, 121, 111, 135, 101, 104, 109, 101, 119, 110, 101, 116, 109, 109, 114, 112, 103, 117, 102, 113, 106, 108, 120, 105, 107, 116, 109, 109, 101, 121, 110, 115, 119, 111, 111, 119, 116, 118, 105, 111, 105, 105, 104, 112, 111, 102, 117, 112, 110, 97, 106, 127, 103, 118, 112, 107, 112, 107, 101, 107, 100, 97, 103, 110, 117, 119, 110, 106, 109, 109, 109, 117, 112, 110, 113, 104, 108, 114, 109, 105, 105, 121, 106, 123, 115, 105, 102, 115, 114, 109, 110, 101, 112, 108, 111, 99, 111, 122, 103, 104, 119, 117, 108, 113, 118, 107, 113, 122, 96, 113, 105, 102, 110, 126, 100, 110, 116, 105, 105, 107, 105, 95, 123, 105, 108, 106, 97, 105, 101, 113, 109, 112, 106, 104, 101, 112, 114, 104, 109, 103, 146, 101, 105, 108, 106, 115, 103, 108, 110, 105, 116, 111, 114, 110, 109, 111, 114, 112, 110, 88, 109, 107, 111, 109, 114, 118, 103, 114, 113, 109, 110, 118, 108, 114, 110, 113, 104, 120, 107, 130, 117, 106, 109, 102, 112, 98, 112, 113, 113, 117, 116, 110, 110, 113, 110, 97, 113, 108, 112, 103, 106, 113, 102, 102, 114, 115, 114, 104, 108, 108, 96, 101, 103, 102, 115, 109, 108, 115, 102, 108, 99, 121, 105, 114, 122, 113, 114, 101, 115, 109, 104, 101, 114, 103, 115, 111, 102, 112, 101, 109, 105, 109, 110, 110, 111, 111, 102, 107, 112, 121, 110, 118, 113, 114, 109, 110, 104, 107, 90, 104, 111, 110, 113, 118, 115, 96, 109, 109, 105, 113, 113, 107, 106, 110, 100, 109, 111, 111, 115, 113, 115, 109, 87, 111, 97, 107, 121, 106, 110, 100, 104, 86, 105, 119, 107, 110, 95, 93, 109, 109, 101, 116, 104, 122, 116, 115, 109, 90, 105, 112, 107, 98, 108, 108, 109, 121, 116, 110, 106, 107, 106, 115, 113, 119, 95, 106, 116, 114, 118, 112, 109, 109, 92, 116, 109, 109, 118, 114, 108, 113, 109, 103, 127, 111, 109, 121, 109, 103, 112, 123, 100, 117, 108, 110, 110, 113, 114, 118, 105, 105, 111, 102, 108, 121, 111, 113, 100, 121, 109, 106, 103, 112, 112, 110, 110, 107, 117, 110, 106, 111, 107, 112, 107, 103, 101, 109, 104, 115, 106, 112, 104, 108, 110, 107, 103, 115, 118, 94, 105, 113, 106, 103, 115, 102, 122, 101, 116, 114, 113, 112, 116, 115, 107, 111, 108, 125, 109, 112, 109, 111, 103, 110, 117, 112, 109, 110, 91, 120, 113, 107, 119, 113, 122, 102, 124, 109, 105, 104, 117, 83, 108, 114, 113, 115, 111, 111, 107, 107, 109, 114, 104, 112, 104, 114, 115, 110, 111, 111, 116, 111, 105, 103, 106, 113, 104, 110, 105, 101, 101, 112, 114, 107, 110, 107, 108, 114, 107, 111, 113, 109, 111, 112, 108, 105, 107, 112, 105, 116, 116, 110, 111, 111, 113, 116, 108, 112, 108, 107, 101, 114, 112, 107, 110, 109, 111, 104, 109, 108, 112, 110, 110, 111, 104, 109, 113, 114, 109, 104, 110, 102, 111, 104, 125, 113, 110, 114, 110, 106, 106, 109, 114, 99, 115, 105, 112, 106, 107, 110, 110, 108, 109, 113, 109, 108, 110, 98, 112, 109, 120, 106, 111, 116, 118, 97, 112, 105, 96, 107, 115, 111, 112, 119, 111, 111, 114, 105, 110, 115, 106, 118, 106, 112, 115, 115, 105, 110, 111, 106, 109, 111, 108, 115, 98, 107, 116, 114, 111, 109, 108, 108, 117, 107, 111, 107, 107, 111, 111, 106, 107, 116, 105, 110, 107, 109, 110, 108, 110, 105, 100, 108, 109, 109, 110, 109, 109, 105, 117, 110, 111, 109, 98, 110, 102, 111, 108, 107, 95, 111, 109, 117, 105, 109, 109, 109, 108, 113, 103, 115, 114, 111, 109, 116, 113, 99, 110, 125, 109, 107, 110, 111, 109, 106, 111, 115, 104, 113, 104, 96, 103, 121, 109, 108, 107, 110, 111, 112, 109, 107, 114, 101, 103, 111, 102, 114, 106, 106, 106, 110, 106, 109, 110, 104, 110, 109, 114, 108, 109, 113, 107, 105, 112, 109, 111, 111, 111, 112, 109, 111, 112, 101, 109, 123, 112, 111, 108, 109, 112, 109, 101, 107, 110, 111, 107, 110, 109, 113, 114, 109, 109, 110, 113, 107, 111, 108, 118, 110, 113, 108, 112, 106, 110, 106, 111, 104, 108, 101, 109, 110, 105, 104, 120, 111, 115, 93, 108, 109, 86, 94, 116, 112, 109, 111, 109, 113, 111, 120, 113, 90, 107, 109, 111, 112, 109, 112, 113, 112, 119, 107, 107, 108, 109, 114, 110, 110, 109, 106, 113, 105, 82, 116, 110, 111, 100, 103, 111, 108, 115, 108, 106, 113, 103, 111, 109, 108, 108, 115, 106, 107, 118, 109, 102, 114, 111, 113, 113, 105, 106, 114, 110, 104, 112, 110, 104, 109, 107, 119, 103, 111, 111, 118, 109, 116, 108, 110, 109, 114, 114, 111, 120, 105, 105, 114, 112, 111, 114, 108, 108, 118, 107, 110, 109, 122, 106, 115, 112, 114, 110, 110, 110, 110, 110, 110, 110, 111, 119, 98, 110, 102, 109, 108, 108, 109, 109, 108, 111, 113, 113, 111, 114, 112, 113, 111, 107, 109, 109, 116, 106, 111, 77, 97, 108, 131, 114, 112, 108, 105, 115, 107, 114, 109, 110, 109, 133, 108, 118, 109, 99, 87, 105, 104, 114, 108, 110, 105, 100, 110, 108, 106, 109, 96, 112, 137, 113, 102, 111, 100, 94, 110, 107, 109, 112, 112, 109, 127, 111, 109, 110, 105, 115, 112, 103, 107, 110, 109, 112, 114, 111, 108, 102, 113, 107, 110, 111, 107, 107, 101, 113, 109, 109, 114, 103, 111, 110, 110, 110, 112, 105, 112, 107, 108, 108, 121, 107, 114, 108, 108, 109, 111, 108, 110, 112, 103, 107, 108, 108, 113, 107, 111, 111, 113, 109, 110, 102, 113, 113, 118, 109, 110, 113, 114, 115, 110, 115, 110, 112, 107, 115, 104, 112, 112, 106, 115, 105, 103, 109, 105, 115, 108, 116, 111, 118, 117, 106, 130, 104, 110, 109, 110, 108, 111, 109, 112, 110, 111, 108, 108, 112, 103, 108, 114, 115, 108, 100, 113, 109, 114, 112, 110, 103, 109, 114, 108, 109, 112, 115, 109, 106, 111, 105, 113, 121, 110, 111, 103, 112, 115, 110, 111, 102, 107, 108, 107, 121, 110, 113, 114, 113, 106, 107, 106, 113, 107, 110, 110, 112, 115, 108, 112, 107, 109, 106, 108, 110, 110, 116, 108, 117, 109, 115, 130, 113, 108, 112, 109, 115, 116, 98, 111, 111, 107, 116, 106, 108, 109, 117, 107, 115, 107, 110, 117, 118, 110, 107, 109, 120, 105, 107, 107, 110, 106, 108, 106, 109, 109, 112, 111, 113, 110, 110, 103, 112, 107, 113, 111, 114, 113, 116, 110, 106, 111, 116, 110, 108, 106, 114, 107, 107, 119, 109, 110, 108, 116, 105, 110, 106, 108, 109, 107, 109, 103, 106, 113, 109, 113, 110, 109, 116, 115, 110, 107, 99, 113, 106, 111, 111, 109, 111, 118, 106, 113, 114, 114, 107, 111, 107, 107, 115, 111, 114, 111, 114, 109, 114, 106, 112, 112, 119, 113, 108, 109, 110, 112, 107, 111, 110, 111, 114, 108, 115, 114, 110, 109, 105, 112, 108, 108, 112, 100, 113, 111, 112, 109, 112, 110, 105, 114, 114, 116, 107, 109, 105, 113, 110, 107, 111, 111, 114, 110, 108, 108, 114, 107, 109, 102, 121, 113, 106, 110, 107, 107, 109, 113, 110, 104, 111, 111, 108, 109, 114, 106, 103, 105, 110, 108, 112, 104, 105, 114, 113, 112, 112, 111, 106, 110, 111, 108, 95, 112, 106, 111, 113, 110, 110, 112, 113, 106, 108, 111, 114, 109, 114, 106, 110, 109, 114, 117, 119, 106, 112, 108, 112, 110, 112, 110, 109, 107, 108, 108, 111, 111, 110, 109, 108, 106, 114, 114, 106, 111, 112, 110, 101, 109, 107, 117, 110, 107, 103, 107, 109, 112, 112, 107, 110, 109, 115, 116, 106, 110, 108, 111, 117, 113, 112, 121, 106, 105, 103, 113, 112, 109, 106, 109, 114, 108, 115, 110, 108, 112, 112, 100, 108, 107, 110, 103, 109, 101, 112, 114, 107, 113, 110, 111, 110, 105, 109, 99, 112, 106, 110, 106, 113, 111, 111, 111, 113, 104, 113, 111, 114, 109, 113, 111, 114, 108, 105, 107, 108, 108, 111, 112, 112, 112, 119, 113, 115, 113, 114, 111, 109, 116, 113, 114, 114, 129, 105, 114, 107, 112, 110, 105, 110, 110, 109, 109, 114, 106, 106, 96, 122, 107, 112, 109, 107, 109, 109, 111, 111, 108, 110, 107, 100, 117, 110, 116, 111, 106, 114, 109, 119, 116, 109, 111, 111, 106, 117, 108, 107, 107, 109, 107, 109, 103, 114, 108, 97, 113, 109, 108, 117, 103, 108, 105, 114, 108, 111, 109, 107, 116, 113, 114, 104, 103, 110, 112, 107, 111, 106, 101, 111, 120, 109, 108, 111, 110, 112, 106, 107, 114, 109, 112, 110, 105, 116, 117, 111, 117, 109, 107, 107, 129, 110, 110, 99, 110, 106, 109, 119, 111, 101, 106, 126, 117, 114, 111, 111, 116, 105, 100, 110, 111, 113, 109, 112, 110, 104, 116, 111, 112, 115, 104, 115, 108, 96, 109, 114, 107, 104, 109, 104, 108, 114, 96, 110, 109, 113, 109, 124, 119, 113, 106, 106, 112, 103, 104, 106, 113, 117, 109, 110, 112, 114, 111, 107, 107, 106, 115, 112, 115, 105, 120, 112, 99, 105, 109, 114, 112, 104, 108, 107, 114, 106, 111, 98, 104, 109, 106, 109, 97, 104, 115, 114, 103, 101, 115, 113, 110, 106, 122, 108, 115, 105, 114, 107, 110, 115, 111, 110, 113, 112, 101, 109, 112, 106, 120, 105, 113, 118, 107, 117, 111, 108, 106, 116, 107, 119, 108, 113, 97, 111, 116, 110, 101, 99, 106, 114, 106, 115, 111, 114, 107, 107, 114, 107, 109, 105, 118, 113, 112, 102, 117, 111, 112, 101, 106, 103, 121, 99, 110, 116, 116, 124, 102, 111, 116, 114, 109, 110, 106, 103, 106, 99, 109, 104, 109, 100, 109, 103, 96, 96, 116, 101, 112, 110, 110, 113, 104, 111, 107, 103, 108, 115, 111, 105, 113, 120, 108, 99, 95, 107, 112, 104, 115, 111, 121, 113, 116, 106, 116, 113, 103, 117, 111, 96, 114, 114, 102, 107, 119, 107, 107, 109, 109, 109, 104, 97, 110, 97, 115, 108, 115, 115, 106, 99, 123, 102, 100, 104, 104, 108, 110, 107, 116, 93, 104, 99, 117, 115, 101, 109, 111, 113, 111, 108, 110, 111, 107, 103, 101, 102, 107, 102, 109, 98, 108, 114, 104, 106, 103, 105, 107, 110, 118, 107, 108, 111, 113, 108, 114, 109, 117, 113, 118, 116, 110, 112, 101, 120, 103, 104, 112, 117, 120, 99, 98, 111, 113, 113, 106, 117, 116, 108, 109, 110, 109, 112, 114, 104, 106, 113, 98, 103, 110, 109, 113, 110, 106, 110, 108, 109, 113, 106, 115, 101, 107, 123, 100, 106, 108, 110, 114, 110, 108, 115, 104, 102, 103, 116, 124, 107, 116, 102, 104, 109, 125, 114, 104, 110, 112, 107, 104, 107, 116, 115, 109, 114, 103, 116, 115, 112, 108, 122, 105, 110, 99, 115, 118, 111, 107, 104, 106, 111, 115, 110, 118, 120, 109, 118, 118, 105, 110, 105, 107, 109, 108, 111, 106, 115, 108, 105, 103, 112, 109, 102, 113, 101, 105, 112, 106, 121, 115, 115, 113, 109, 111, 123, 117, 112, 117, 113, 118, 113, 118, 112, 109, 114, 116, 113, 113, 114, 112, 112, 108, 116, 113, 102, 108, 110, 106, 110, 108, 113, 105, 115, 111, 109, 107, 123, 99, 111, 111, 92, 109, 109, 102, 114, 114, 109, 104, 111, 121, 111, 108, 118, 110, 114, 105, 104, 106, 108, 114, 112, 104, 104, 110, 113, 104, 112, 115, 119, 105, 99, 115, 108, 106, 115, 101, 111, 99, 113, 106, 106, 108, 107, 113, 106, 109, 104, 109, 114, 110, 107, 107, 113, 114, 116, 106, 111, 102, 110, 109, 97, 110, 101, 106, 112, 113, 102, 106, 115, 109, 116, 113, 103, 106, 126, 106, 108, 114, 119, 120, 108, 107, 96, 113, 111, 103, 104, 111, 107, 97, 103, 108, 108, 112, 111, 106, 109, 103, 110, 114, 109, 102, 123, 103, 110, 105, 106, 112, 102, 103, 111, 103, 110, 107, 112, 110, 106, 104, 118, 108, 111, 108, 105, 105, 105, 109, 111, 108, 104, 117, 108, 114, 102, 101, 113, 104, 100, 104, 114, 116, 115, 111, 103, 99, 113, 107, 107, 113, 123, 119, 115, 106, 108, 107, 98, 119, 118, 110, 122, 105, 108, 102, 108, 110, 99, 108, 89, 108, 109, 105, 135, 115, 106, 107, 119, 108, 114, 97, 107, 113, 117, 106, 123, 109, 103, 109, 113, 103, 102, 115, 101, 106, 97, 114, 110, 117, 110, 105, 114, 108, 114, 118, 120, 109, 113, 114, 99, 105, 102, 107, 107, 112, 108, 109, 111, 118, 112, 112, 116, 109, 109, 105, 107, 114, 109, 98, 121, 99, 102, 100, 111, 104, 113, 113, 110, 105, 111, 108, 105, 109, 114, 105, 101, 105, 108, 104, 108, 112, 103, 100, 109, 105, 117, 119, 101, 102, 107, 112, 108, 102, 109, 106, 102, 110, 110, 118, 112, 109, 114, 108, 108, 105, 118, 122, 102, 103, 112, 123, 112, 113, 114, 107, 106, 102, 104, 114, 120, 119, 113, 107, 108, 107, 121, 108, 108, 111, 122, 105, 114, 113, 107, 100, 115, 103, 111, 113, 110, 113, 108, 107, 110, 107, 104, 121, 103, 115, 124, 95, 109, 98, 102, 107, 114, 110, 121, 106, 102, 110, 101, 109, 109, 104, 102, 103, 103, 111, 109, 114, 104, 106, 111, 101, 109, 111, 113, 109, 111, 106, 117, 104, 108, 110, 109, 112, 106, 110, 110, 120, 108, 110, 109, 107, 109, 118, 113, 98, 106, 110, 113, 109, 104, 111, 118, 111, 108, 127, 100, 118, 110, 102, 102, 110, 100, 103, 106, 106, 109, 107, 103, 99, 91, 120, 111, 120, 86, 111, 109, 105, 120, 106, 98, 115, 121, 123, 118, 109, 95, 108, 105, 104, 103, 104, 109, 123, 105, 114, 112, 109, 105, 107, 117, 121, 114, 109, 116, 107, 119, 114, 115, 115, 117, 109, 115, 108, 106, 112, 111, 108, 101, 111, 109, 103, 113, 106, 109, 129, 105, 107, 110, 110, 96, 106, 111, 108, 108, 122, 114, 101, 110, 97, 126, 120, 113, 107, 109, 105, 107, 106, 104, 110, 105, 109, 127, 104, 113, 97, 120, 122, 100, 111, 104, 101, 113, 116, 116, 108, 109, 106, 106, 103, 122, 113, 115, 107, 101, 110, 103, 111, 109, 105, 112, 108, 105, 103, 113, 106, 111, 116, 120, 119, 107, 107, 113, 102, 112, 104, 109, 111, 101, 106, 104, 114, 111, 98, 109, 110, 114, 105, 110, 105, 114, 110, 109, 117, 109, 106, 117, 100, 98, 114, 88, 118, 103, 108, 78, 99, 112, 116, 109, 114, 90, 115, 104, 109, 108, 105, 108, 112, 106, 114, 108, 119, 106, 110, 83, 115, 83, 108, 97, 101, 112, 96, 93, 112, 113, 108, 112, 109, 112, 103, 121, 107, 111, 112, 106, 86, 123, 108, 111, 116, 101, 100, 112, 107, 112, 107, 100, 104, 104, 98, 110, 107, 102, 105, 109, 114, 109, 108, 113, 98, 97, 104, 117, 102, 108, 95, 105, 127, 114, 105, 102, 98, 105, 101, 110, 106, 102, 111, 113, 122, 106, 104, 107, 114, 96, 107, 92, 136, 126, 109, 116, 104, 115, 106, 111, 111, 100, 113, 113, 127, 114, 93, 124, 113, 108, 112, 119, 105, 112, 123, 110, 106, 104, 107, 105, 105, 102, 102, 112, 117, 116, 116, 103, 111, 108, 105, 117, 116, 111, 109, 120, 100, 110, 109, 115, 107, 114, 95, 117, 103, 120, 110, 103, 103, 118, 102, 109, 109, 101, 112, 114, 112, 112, 113, 104, 108, 88, 122, 108, 103, 117, 110, 104, 107, 114, 109, 108, 112, 105, 109, 111, 118, 110, 108, 115, 110, 114, 105, 110, 103, 104, 90, 106, 106, 111, 118, 109, 116, 109, 119, 104, 79, 106, 117, 108, 110, 101, 111, 108, 95, 113, 113, 115, 117, 104, 108, 121, 104, 102, 98, 105, 114, 106, 108, 111, 112, 106, 118, 111, 111, 112, 115, 98, 103, 106, 115, 105, 113, 103, 81, 113, 111, 117, 120, 84, 123, 110, 104, 121, 103, 105, 104, 103, 103, 99, 106, 109, 92, 109, 121, 105, 106, 116, 109, 104, 108, 147, 115, 110, 109, 108, 102, 111, 111, 109, 102, 107, 113, 106, 101, 104, 101, 109, 110, 102, 109, 101, 104, 117, 99, 102, 124, 110, 94, 117, 106, 105, 118, 120, 113, 118, 96, 100, 113, 111, 90, 106, 110, 108, 116, 109, 100, 97, 118, 105, 89, 104, 105, 116, 109, 109, 109, 126, 110, 122, 113, 109, 115, 108, 112, 97, 110, 113, 100, 111, 99, 94, 118, 112, 96, 114, 110, 118, 91, 115, 107, 118, 106, 127, 110, 116, 113, 100, 109, 92, 111, 111, 105, 111, 110, 110, 108, 121, 100, 114, 106, 111, 105, 111, 103, 96, 108, 95, 119, 104, 111, 103, 103, 118, 105, 106, 104, 106, 112, 106, 110, 94, 109, 103, 114, 111, 109, 93, 90, 111, 109, 96, 119, 113, 120, 109, 104, 99, 100, 100, 117, 110, 109, 99, 111, 103, 105, 109, 114, 114, 108, 107, 106, 105, 101, 99, 104, 106, 116, 108, 124, 106, 116, 111, 120, 115, 102, 116, 120, 111, 110, 93, 98, 107, 116, 113, 112, 115, 109, 107, 107, 103, 104, 103, 113, 133, 117, 119, 100, 105, 94, 106, 137, 104, 122, 104, 120, 101, 115, 106, 125, 106, 124, 101, 86, 116, 118, 94, 103, 109, 98, 109, 106, 112, 112, 114, 111, 111, 99, 116, 117, 106, 123, 94, 110, 120, 113, 110, 117, 104, 109, 96, 108, 119, 119, 111, 105, 106, 101, 112, 107, 112, 110, 111, 99, 108, 105, 116, 110, 112, 106, 104, 109, 113, 108, 110, 110, 110, 103, 109, 108, 107, 118, 112, 118, 107, 112, 104, 109, 107, 110, 110, 113, 116, 111, 109, 108, 118, 117, 109, 114, 109, 110, 106, 110, 114, 110, 104, 104, 114, 121, 107, 115, 103, 113, 113, 101, 98, 113, 114, 115, 113, 115, 103, 112, 109, 110, 108, 112, 113, 107, 120, 115, 106, 113, 112, 102, 107, 111, 108, 109, 109, 107, 97, 109, 104, 96, 105, 116, 111, 102, 103, 117, 109, 113, 102, 103, 106, 112, 111, 89, 111, 122, 110, 107, 113, 88, 112, 109, 107, 117, 121, 112, 106, 115, 108, 114, 111, 107, 113, 106, 103, 109, 107, 108, 113, 112, 107, 116, 109, 115, 102, 119, 106, 113, 112, 110, 116, 111, 110, 107, 104, 100, 111, 113, 108, 114, 112, 105, 97, 108, 108, 98, 108, 106, 118, 110, 119, 110, 105, 109, 110, 107, 111, 103, 115, 109, 113, 118, 115, 110, 114, 109, 106, 113, 106, 105, 103, 113, 109, 117, 105, 113, 112, 107, 106, 114, 116, 108, 108, 109, 102, 104, 106, 112, 100, 110, 109, 110, 113, 109, 108, 113, 109, 104, 111, 98, 106, 112, 106, 112, 111, 111, 116, 125, 117, 111, 102, 117, 114, 116, 113, 113, 105, 111, 89, 105, 117, 115, 113, 140, 110, 115, 100, 98, 118, 109, 102, 114, 109, 99, 104, 111, 115, 112, 109, 113, 102, 113, 120, 111, 105, 112, 113, 113, 110, 108, 104, 103, 104, 110, 110, 114, 108, 122, 116, 112, 108, 110, 113, 110, 110, 105, 116, 115, 118, 113, 115, 112, 109, 102, 107, 116, 111, 110, 106, 106, 115, 108, 121, 105, 117, 104, 101, 112, 115, 110, 114, 110, 105, 104, 117, 110, 111, 110, 122, 107, 109, 109, 112, 108, 100, 107, 109, 108, 108, 108, 111, 111, 110, 107, 106, 108, 112, 111, 116, 103, 110, 104, 116, 111, 111, 110, 107, 105, 103, 117, 107, 107, 114, 108, 113, 109, 106, 118, 108, 104, 112, 109, 123, 107, 117, 115, 105, 111, 115, 107, 109, 111, 116, 110, 108, 112, 105, 113, 114, 112, 114, 109, 120, 113, 112, 94, 116, 109, 116, 102, 103, 103, 107, 108, 116, 125, 107, 111, 111, 109, 112, 116, 106, 107, 109, 112, 108, 113, 107, 117, 105, 112, 110, 113, 106, 100, 101, 115, 111, 119, 112, 107, 108, 100, 127, 114, 109, 111, 109, 112, 119, 105, 112, 101, 113, 110, 112, 114, 101, 112, 114, 118, 115, 107, 116, 110, 107, 102, 116, 110, 117, 115, 118, 105, 112, 114, 109, 111, 107, 104, 108, 114, 109, 91, 114, 110, 112, 95, 134, 107, 111, 108, 115, 111, 109, 107, 117, 116, 105, 125, 106, 113, 118, 118, 116, 108, 109, 112, 106, 110, 114, 105, 121, 114, 109, 105, 108, 110, 110, 117, 114, 109, 108, 114, 110, 107, 109, 120, 112, 112, 98, 117, 111, 109, 111, 113, 110, 103, 102, 108, 112, 96, 112, 110, 113, 123, 107, 107, 107, 97, 115, 111, 117, 116, 110, 114, 102, 111, 103, 118, 108, 107, 107, 115, 106, 95, 104, 118, 95, 107, 114, 112, 103, 107, 109, 107, 104, 117, 109, 109, 118, 108, 127, 112, 110, 94, 98, 108, 108, 114, 98, 158, 108, 100, 118, 108, 104, 102, 111, 105, 101, 107, 112, 115, 112, 108, 105, 107, 105, 118, 104, 101, 110, 110, 110, 120, 112, 101, 115, 111, 120, 111, 114, 107, 109, 111, 97, 119, 114, 107, 108, 111, 106, 97, 98, 101, 115, 106, 113, 103, 111, 103, 118, 103, 113, 104, 107, 107, 110, 112, 105, 106, 104, 112, 105, 112, 106, 114, 112, 114, 113, 111, 103, 110, 112, 107, 111, 99, 108, 106, 106, 115, 103, 101, 107, 120, 105, 105, 105, 111, 126, 100, 119, 109, 120, 117, 118, 115, 106, 99, 100, 118, 108, 105, 117, 119, 106, 100, 112, 111, 112, 111, 107, 109, 107, 114, 103, 113, 106, 106, 113, 101, 114, 112, 108, 111, 112, 115, 98, 115, 105, 113, 112, 111, 109, 112, 108, 113, 119, 94, 104, 124, 109, 109, 106, 110, 109, 114, 114, 116, 117, 117, 115, 100, 104, 101, 117, 114, 110, 113, 115, 103, 106, 120, 105, 117, 120, 102, 114, 108, 115, 105, 103, 135, 114, 107, 104, 113, 107, 106, 116, 103, 104, 109, 104, 103, 117, 101, 111, 109, 102, 105, 108, 117, 111, 112, 108, 113, 106, 107, 117, 107, 106, 108, 109, 108, 118, 113, 115, 118, 106, 113, 112, 114, 112, 106, 113, 105, 107, 108, 115, 115, 108, 87, 117, 112, 119, 128, 105, 121, 110, 119, 116, 77, 113, 112, 113, 109, 108, 104, 98, 111, 132, 110, 120, 107, 107, 108, 107, 95, 114, 104, 112, 115, 98, 103, 97, 110, 108, 115, 122, 100, 105, 102, 109, 107, 102, 113, 106, 108, 100, 114, 118, 111, 101, 107, 110, 106, 97, 105, 107, 114, 92, 111, 107, 105, 104, 109, 105, 109, 114, 146, 107, 111, 108, 109, 97, 100, 111, 98, 113, 119, 101, 114, 114, 110, 111, 102, 108, 111, 114, 113, 114, 107, 108, 101, 112, 118, 113, 113, 111, 109, 100, 76, 110, 107, 113, 116, 96, 104, 119, 115, 108, 102, 112, 101, 107, 133, 116, 117, 110, 114, 110, 113, 101, 116, 105, 112, 102, 105, 111, 115, 111, 113, 118, 114, 116, 98, 112, 115, 81, 112, 108, 122, 109, 115, 111, 114, 112, 103, 111, 109, 108, 114, 109, 103, 113, 108, 116, 99, 116, 113, 104, 108, 106, 109, 118, 116, 119, 98, 110, 108, 111, 103, 116, 118, 108, 106, 112, 112, 110, 109, 112, 107, 108, 102, 110, 103, 121, 106, 109, 118, 100, 118, 111, 108, 111, 115, 119, 126, 115, 114, 125, 104, 123, 111, 104, 114, 112, 112, 107, 113, 115, 109, 117, 111, 111, 112, 112, 100, 95, 111, 111, 114, 111, 102, 112, 115, 100, 113, 106, 111, 115, 111, 109, 114, 109, 114, 111, 98, 106, 108, 140, 92, 111, 108, 108, 99, 106, 115, 116, 107, 106, 116, 118, 115, 111, 110, 114, 115, 116, 112, 111, 125, 106, 112, 111, 113, 124, 110, 107, 104, 115, 123, 106, 114, 109, 112, 104, 104, 114, 122, 107, 112, 112, 113, 108, 103, 129, 115, 111, 116, 104, 107, 116, 102, 96, 104, 111, 114, 104, 106, 126, 103, 111, 104, 96, 108, 114, 105, 106, 113, 105, 102, 121, 103, 111, 109, 109, 114, 98, 107, 116, 123, 106, 111, 132, 111, 107, 110, 108, 110, 104, 118, 109, 102, 107, 120, 106, 103, 104, 119, 106, 112, 118, 112, 110, 110, 113, 118, 116, 111, 111, 116, 118, 109, 109, 112, 117, 118, 116, 101, 109, 104, 101, 104, 111, 109, 109, 111, 108, 107, 119, 108, 110, 113, 112, 130, 116, 116, 103, 97, 99, 110, 104, 96, 110, 101, 113, 114, 115, 113, 108, 112, 112, 106, 111, 105, 115, 111, 102, 113, 117, 125, 119, 117, 120, 110, 109, 109, 111, 116, 101, 106, 105, 112, 101, 111, 115, 110, 106, 103, 110, 110, 107, 104, 106, 120, 112, 100, 110, 98, 105, 120, 106, 108, 94, 98, 101, 115, 99, 113, 111, 99, 112, 105, 119, 120, 116, 103, 105, 110, 106, 103, 110, 103, 110, 108, 107, 95, 108, 113, 119, 98, 111, 125, 103, 116, 120, 120, 109, 114, 120, 109, 109, 107, 103, 108, 100, 118, 116, 107, 116, 107, 90, 122, 111, 91, 116, 113, 120, 119, 105, 112, 130, 112, 104, 107, 113, 113, 120, 116, 118, 99, 111, 108, 111, 108, 108, 111, 104, 112, 98, 101, 120, 97, 115, 112, 109, 115, 114, 107, 101, 124, 108, 119, 108, 107, 105, 113, 91, 119, 120, 117, 95, 125, 103, 107, 118, 117, 108, 100, 106, 112, 103, 111, 102, 101, 108, 114, 115, 112, 102, 119, 131, 106, 112, 103, 105, 115, 115, 112, 115, 106, 100, 110, 102, 115, 109, 116, 111, 114, 115, 110, 124, 113, 103, 112, 116, 112, 110, 115, 106, 108, 103, 116, 100, 108, 125, 110, 101, 107, 108, 111, 105, 108, 105, 103, 100, 121, 115, 105, 102, 113, 112, 121, 113, 115, 111, 103, 110, 104, 118, 119, 107, 110, 112, 108, 118, 102, 119, 99, 109, 120, 106, 109, 114, 115, 109, 98, 112, 103, 113, 114, 98, 105, 108, 109, 110, 113, 103, 104, 105, 112, 114, 104, 111, 116, 107, 110, 129, 103, 115, 102, 116, 108, 113, 103, 102, 116, 110, 108, 98, 100, 103, 117, 110, 113, 101, 103, 112, 110, 111, 108, 119, 118, 116, 109, 105, 103, 107, 105, 105, 119, 113, 133, 118, 101, 110, 119, 104, 112, 107, 108, 106, 105, 123, 107, 114, 127, 112, 111, 105, 108, 109, 107, 105, 102, 111, 116, 100, 109, 105, 111, 107, 111, 109, 112, 107, 107, 109, 112, 116, 120, 107, 110, 101, 110, 117, 126, 105, 111, 124, 103, 102, 107, 100, 108, 105, 110, 115, 113, 109, 101, 112, 115, 102, 101, 114, 114, 104, 102, 96, 118, 112, 103, 116, 106, 114, 123, 118, 111, 115, 103, 114, 109, 108, 115, 113, 104, 115, 112, 98, 111, 111, 109, 115, 112, 111, 107, 112, 111, 111, 103, 103, 104, 98, 120, 102, 102, 105, 114, 112, 111, 110, 108, 111, 114, 106, 100, 113, 108, 115, 110, 107, 109, 115, 111, 107, 113, 104, 109, 105, 115, 105, 110, 113, 114, 109, 117, 111, 106, 112, 111, 119, 117, 115, 110, 107, 118, 109, 107, 113, 111, 101, 108, 107, 106, 113, 110, 107, 108, 108, 110, 101, 118, 111, 104, 107, 108, 102, 107, 116, 114, 105, 107, 110, 114, 112, 124, 112, 101, 113, 113, 109, 93, 109, 114, 108, 107, 130, 109, 108, 114, 116, 115, 109, 112, 114, 92, 105, 107, 110, 110, 110, 112, 106, 107, 113, 106, 110, 108, 109, 115, 109, 113, 109, 104, 107, 110, 97, 128, 110, 119, 107, 103, 112, 118, 120, 110, 101, 105, 114, 103, 123, 107, 112, 109, 109, 108, 112, 122, 114, 103, 115, 111, 116, 114, 113, 115, 117, 107, 107, 110, 117, 104, 106, 104, 113, 111, 117, 107, 108, 110, 102, 112, 124, 121, 102, 116, 104, 105, 105, 111, 103, 110, 115, 111, 110, 118, 101, 113, 108, 109, 115, 109, 109, 107, 104, 112, 107, 104, 115, 108, 111, 107, 112, 111, 104, 104, 107, 118, 107, 114, 125, 108, 101, 109, 107, 96, 116, 105, 113, 105, 114, 109, 112, 110, 106, 111, 111, 116, 115, 110, 109, 105, 113, 115, 115, 112, 114, 108, 111, 108, 110, 107, 106, 114, 112, 111, 104, 118, 106, 104, 111, 108, 112, 112, 114, 113, 108, 109, 109, 109, 114, 108, 111, 118, 107, 118, 113, 111, 108, 112, 112, 107, 111, 104, 107, 105, 115, 113, 118, 108, 109, 116, 105, 114, 112, 105, 110, 113, 112, 113, 113, 114, 110, 103, 106, 103, 112, 108, 104, 106, 112, 104, 110, 107, 110, 105, 110, 111, 105, 112, 106, 111, 110, 105, 114, 106, 124, 112, 104, 109, 111, 112, 107, 115, 112, 105, 109, 108, 108, 109, 119, 111, 108, 109, 100, 105, 114, 113, 108, 107, 111, 108, 111, 106, 109, 108, 112, 112, 105, 109, 102, 111, 105, 110, 110, 112, 107, 110, 109, 109, 111, 118, 109, 111, 102, 107, 109, 113, 104, 113, 117, 109, 113, 106, 118, 105, 98, 112, 108, 95, 110, 104, 108, 108, 108, 113, 108, 106, 113, 114, 113, 114, 113, 112, 119, 107, 106, 107, 107, 108, 109, 111, 108, 109, 108, 112, 111, 114, 107, 107, 106, 110, 116, 118, 105, 107, 114, 108, 110, 114, 109, 113, 117, 100, 109, 109, 110, 108, 115, 105, 113, 110, 109, 105, 108, 105, 110, 107, 115, 106, 93, 108, 111, 109, 112, 105, 108, 114, 113, 114, 108, 119, 103, 111, 104, 111, 117, 107, 114, 111, 115, 109, 111, 112, 107, 107, 106, 108, 106, 111, 109, 107, 108, 105, 108, 116, 111, 109, 106, 106, 112, 111, 111, 110, 100, 116, 105, 112, 111, 112, 109, 112, 112, 110, 110, 109, 112, 107, 116, 113, 101, 116, 114, 117, 114, 119, 107, 113, 117, 115, 112, 109, 100, 109, 114, 114, 108, 111, 114, 109, 112, 113, 109, 111, 109, 116, 110, 101, 122, 120, 101, 104, 103, 126, 109, 107, 114, 106, 117, 121, 108, 108, 118, 116, 119, 111, 112, 114, 115, 103, 116, 110, 109, 114, 96, 100, 102, 111, 111, 105, 108, 106, 107, 104, 112, 114, 112, 107, 116, 112, 115, 115, 108, 118, 118, 114, 110, 110, 109, 105, 121, 99, 99, 110, 108, 107, 118, 99, 112, 107, 106, 110, 112, 109, 103, 115, 115, 110, 117, 105, 110, 110, 107, 126, 94, 110, 112, 110, 115, 118, 106, 110, 115, 107, 108, 108, 113, 107, 111, 105, 112, 112, 107, 109, 108, 108, 112, 106, 99, 104, 120, 106, 104, 111, 107, 100, 119, 118, 110, 103, 110, 107, 111, 106, 110, 103, 122, 102, 107, 111, 111, 112, 109, 109, 119, 113, 116, 105, 110, 106, 121, 107, 106, 112, 102, 105, 115, 109, 112, 109, 111, 104, 111, 118, 114, 107, 113, 129, 113, 126, 115, 115, 120, 115, 116, 106, 108, 112, 111, 109, 119, 110, 133, 114, 114, 107, 112, 111, 111, 113, 109, 102, 105, 113, 123, 119, 107, 110, 103, 118, 109, 110, 98, 119, 113, 109, 113, 110, 115, 116, 119, 109, 110, 111, 107, 119, 105, 109, 121, 109, 110, 100, 103, 113, 110, 109, 104, 112, 112, 102, 102, 117, 103, 112, 116, 114, 107, 106, 115, 123, 113, 93, 107, 117, 115, 109, 114, 117, 112, 109, 105, 109, 118, 109, 108, 114, 103, 118, 116, 103, 110, 112, 109, 106, 107, 113, 112, 113, 113, 109, 115, 109, 108, 132, 103, 109, 107, 110, 105, 122, 115, 112, 107, 126, 107, 103, 105, 105, 110, 109, 112, 100, 102, 105, 106, 94, 109, 111, 109, 106, 112, 107, 106, 107, 115, 123, 108, 108, 109, 107, 112, 101, 113, 107, 108, 109, 108, 109, 108, 111, 107, 107, 118, 107, 116, 107, 107, 103, 116, 110, 111, 106, 102, 107, 109, 103, 106, 100, 108, 109, 106, 109, 100, 105, 105, 111, 113, 107, 108, 109, 109, 101, 107, 109, 114, 111, 115, 117, 107, 101, 105, 126, 111, 103, 132, 107, 99, 111, 108, 110, 113, 106, 118, 112, 110, 111, 121, 107, 111, 113, 115, 97, 95, 106, 113, 106, 112, 109, 114, 108, 108, 103, 107, 116, 99, 108, 104, 104, 113, 115, 111, 111, 106, 115, 105, 120, 113, 109, 123, 102, 132, 110, 107, 100, 109, 102, 106, 105, 107, 101, 85, 112, 108, 105, 111, 114, 121, 101, 110, 109, 114, 107, 102, 112, 111, 106, 112, 113, 108, 113, 107, 99, 109, 98, 103, 128, 108, 135, 107, 104, 96, 115, 100, 98, 100, 103, 105, 115, 108, 104, 110, 111, 101, 119, 105, 107, 113, 117, 106, 107, 112, 108, 111, 110, 105, 114, 111, 111, 102, 113, 105, 109, 109, 115, 111, 104, 116, 116, 123, 113, 106, 99, 109, 113, 111, 112, 110, 115, 103, 106, 108, 114, 119, 111, 104, 111, 111, 105, 107, 114, 94, 115, 111, 116, 102, 111, 120, 105, 112, 109, 114, 108, 106, 109, 107, 112, 96, 112, 107, 107, 109, 109, 119, 102, 109, 101, 113, 111, 115, 111, 109, 110, 110, 112, 107, 112, 116, 106, 105, 118, 109, 132, 116, 113, 114, 112, 103, 121, 108, 116, 111, 124, 134, 108, 113, 106, 114, 107, 99, 108, 108, 105, 112, 108, 119, 119, 117, 117, 110, 109, 114, 118, 109, 95, 135, 107, 114, 113, 101, 109, 125, 107, 121, 111, 110, 107, 99, 100, 118, 108, 104, 100, 111, 125, 114, 107, 96, 105, 101, 113, 108, 98, 119, 106, 120, 90, 106, 114, 108, 99, 120, 97, 106, 107, 115, 112, 112, 105, 106, 117, 111, 110, 99, 113, 112, 117, 110, 144, 119, 104, 115, 108, 106, 103, 112, 114, 116, 128, 105, 106, 110, 114, 108, 108, 107, 97, 110, 109, 102, 124, 101, 111, 104, 111, 110, 93, 103, 108, 107, 114, 107, 114, 126, 111, 121, 112, 110, 110, 112, 98, 111, 124, 103, 113, 110, 119, 103, 114, 116, 111, 126, 106, 114, 106, 112, 122, 109, 106, 107, 123, 118, 114, 107, 117, 105, 132, 120, 102, 106, 118, 107, 125, 110, 110, 104, 116, 109, 110, 108, 119, 125, 103, 105, 106, 102, 108, 107, 112, 115, 104, 104, 107, 98, 117, 109, 104, 109, 114, 145, 116, 113, 113, 108, 111, 107, 88, 118, 99, 113, 107, 121, 129, 112, 113, 109, 118, 114, 114, 95, 112, 142, 108, 110, 107, 106, 110, 116, 114, 109, 116, 112, 113, 121, 106, 121, 106, 107, 106, 106, 105, 108, 100, 118, 96, 107, 102, 114, 99, 106, 106, 106, 102, 93, 103, 116, 107, 124, 110, 106, 123, 116, 105, 108, 109, 108, 113, 105, 119, 108, 104, 123, 116, 110, 115, 116, 106, 109, 90, 110, 107, 101, 114, 106, 117, 107, 123, 113, 119, 120, 116, 112, 113, 115, 117, 112, 112, 139, 108, 110, 114, 105, 105, 121, 101, 119, 108, 101, 117, 108, 112, 113, 118, 107, 109, 105, 110, 106, 107, 106, 106, 112, 104, 99, 109, 103, 112, 111, 106, 119, 107, 108, 106, 105, 133, 105, 110, 119, 111, 103, 110, 110, 116, 107, 111, 100, 118, 116, 106, 86, 105, 110, 109, 113, 104, 113, 103, 124, 108, 112, 108, 102, 103, 104, 106, 116, 100, 106, 110, 110, 106, 95, 98, 114, 104, 108, 127, 120, 103, 109, 104, 109, 119, 103, 105, 112, 102, 108, 97, 102, 111, 102, 126, 119, 104, 107, 105, 110, 98, 112, 117, 122, 116, 109, 103, 103, 105, 115, 116, 115, 117, 115, 101, 113, 110, 105, 116, 106, 112, 104, 135, 106, 107, 108, 118, 113, 120, 110, 108, 108, 106, 109, 124, 109, 95, 113, 113, 110, 110, 113, 106, 104, 91, 111, 112, 115, 104, 99, 114, 110, 106, 98, 108, 115, 110, 94, 103, 109, 108, 129, 109, 122, 107, 92, 116, 115, 109, 108, 110, 108, 123, 110, 105, 113, 116, 112, 114, 109, 113, 114, 102, 118, 100, 115, 124, 112, 113, 103, 110, 108, 115, 112, 109, 114, 112, 111, 117, 113, 118, 114, 116, 113, 110, 104, 102, 114, 111, 110, 110, 106, 113, 106, 112, 115, 108, 113, 108, 102, 111, 116, 101, 105, 124, 93, 107, 104, 113, 103, 113, 119, 124, 106, 116, 105, 112, 123, 111, 113, 112, 109, 111, 111, 112, 118, 106, 105, 112, 114, 126, 112, 104, 115, 107, 108, 113, 121, 104, 116, 117, 116, 110, 100, 101, 99, 100, 108, 111, 94, 112, 110, 107, 116, 107, 111, 112, 109, 104, 108, 120, 107, 105, 103, 106, 112, 96, 117, 115, 103, 108, 105, 111, 112, 117, 112, 108, 112, 104, 113, 105, 112, 111, 112, 109, 105, 110, 98, 105, 107, 114, 107, 102, 121, 105, 109, 108, 112, 105, 109, 107, 114, 112, 113, 90, 113, 104, 109, 110, 111, 115, 116, 112, 118, 105, 105, 100, 111, 102, 106, 107, 103, 115, 111, 113, 118, 108, 111, 114, 103, 109, 112, 108, 109, 108, 113, 98, 113, 102, 114, 115, 109, 107, 101, 106, 116, 120, 116, 110, 114, 108, 111, 112, 114, 108, 105, 107, 120, 111, 117, 127, 129, 127, 111, 117, 107, 105, 108, 110, 102, 109, 109, 118, 102, 112, 107, 117, 114, 116, 111, 113, 110, 104, 96, 109, 103, 109, 111, 100, 112, 107, 106, 114, 107, 107, 113, 113, 106, 107, 112, 100, 101, 115, 111, 112, 120, 112, 110, 117, 113, 114, 113, 104, 111, 110, 104, 113, 99, 107, 107, 113, 117, 109, 111, 102, 108, 106, 111, 118, 108, 115, 109, 111, 114, 109, 114, 113, 103, 125, 111, 113, 110, 105, 110, 108, 111, 112, 112, 107, 106, 113, 108, 107, 109, 110, 114, 111, 110, 113, 107, 122, 106, 112, 117, 108, 107, 105, 107, 114, 104, 112, 104, 114, 106, 113, 110, 111, 111, 107, 113, 108, 108, 122, 105, 111, 110, 108, 113, 107, 109, 111, 120, 116, 100, 111, 119, 111, 110, 102, 108, 116, 107, 108, 103, 110, 108, 123, 115, 109, 105, 110, 104, 113, 118, 112, 111, 111, 109, 106, 113, 106, 109, 104, 110, 114, 113, 94, 106, 107, 109, 105, 124, 107, 110, 100, 114, 101, 116, 111, 118, 110, 109, 115, 103, 114, 115, 108, 113, 113, 113, 107, 109, 104, 109, 106, 108, 109, 111, 117, 108, 115, 102, 104, 106, 106, 111, 113, 111, 111, 100, 100, 101, 113, 111, 116, 100, 115, 125, 108, 109, 110, 110, 110, 120, 113, 110, 107, 103, 108, 109, 113, 115, 117, 104, 106, 112, 108, 113, 109, 106, 110, 113, 110, 121, 105, 115, 118, 111, 116, 105, 112, 114, 114, 106, 87, 116, 113, 100, 106, 111, 110, 116, 107, 106, 112, 107, 112, 109, 107, 110, 102, 106, 106, 105, 107, 112, 111, 111, 115, 123, 115, 101, 109, 104, 110, 101, 110, 108, 110, 107, 108, 109, 109, 108, 103, 154, 106, 100, 108, 103, 115, 109, 107, 108, 108, 103, 107, 109, 123, 108, 109, 114, 106, 110, 111, 117, 106, 115, 111, 117, 107, 110, 110, 109, 111, 110, 110, 109, 111, 111, 113, 112, 111, 113, 110, 112, 109, 110, 111, 108, 112, 110, 112, 111, 108, 111, 106, 111, 108, 108, 113, 103, 111, 116, 106, 108, 103, 112, 112, 111, 110, 112, 108, 110, 105, 109, 111, 111, 117, 114, 112, 109, 108, 110, 111, 113, 109, 110, 106, 105, 112, 115, 101, 108, 119, 113, 111, 113, 110, 108, 112, 102, 105, 115, 109, 114, 116, 102, 106, 106, 109, 120, 109, 106, 109, 108, 108, 109, 107, 108, 105, 109, 113, 131, 110, 105, 102, 113, 107, 109, 109, 106, 109, 110, 110, 109, 110, 108, 110, 112, 104, 111, 110, 114, 111, 112, 116, 110, 114, 108, 109, 112, 107, 114, 113, 110, 111, 111, 108, 113, 110, 112, 110, 112, 107, 111, 129, 109, 113, 111, 113, 108, 115, 110, 110, 107, 108, 117, 106, 113, 108, 112, 96, 111, 109, 114, 108, 112, 108, 115, 113, 109, 110, 111, 109, 110, 115, 111, 125, 105, 110, 118, 112, 115, 109, 108, 108, 109, 113, 116, 110, 107, 119, 113, 111, 108, 110, 111, 109, 107, 112, 113, 97, 99, 71, 111, 115, 110, 117, 108, 110, 109, 108, 111, 116, 112, 109, 105, 112, 110, 111, 105, 110, 103, 113, 111, 113, 110, 111, 107, 108, 111, 114, 109, 113, 109, 114, 110, 109, 121, 116, 108, 143, 110, 113, 107, 109, 114, 114, 110, 99, 107, 107, 105, 111, 111, 111, 121, 112, 118, 112, 110, 116, 109, 108, 109, 115, 110, 109, 112, 108, 111, 114, 114, 111, 112, 110, 110, 102, 112, 118, 111, 111, 113, 95, 109, 109, 113, 115, 118, 115, 121, 114, 108, 110, 107, 104, 110, 106, 105, 111, 105, 101, 115, 108, 105, 111, 112, 111, 110, 111, 107, 113, 109, 110, 111, 113, 115, 109, 110, 101, 110, 107, 115, 106, 108, 117, 106, 115, 109, 116, 113, 106, 103, 104, 115, 110, 110, 108, 110, 111, 106, 111, 110, 109, 123, 110, 109, 115, 109, 102, 108, 112, 110, 110, 107, 103, 114, 112, 113, 112, 109, 111, 108, 116, 113, 109, 106, 112, 112, 112, 111, 106, 107, 109, 108, 106, 110, 110, 113, 110, 109, 111, 105, 115, 125, 105, 112, 110, 111, 111, 109, 106, 109, 110, 107, 114, 111, 110, 108, 112, 110, 108, 105, 113, 108, 104, 100, 113, 113, 112, 112, 119, 116, 112, 105, 111, 118, 111, 114, 111, 111, 110, 110, 109, 113, 108, 114, 116, 100, 104, 107, 108, 107, 115, 116, 116, 107, 109, 111, 113, 106, 111, 110, 110, 109, 111, 106, 98, 105, 97, 116, 112, 108, 114, 108, 136, 113, 113, 103, 113, 109, 115, 115, 108, 109, 112, 110, 107, 111, 110, 108, 108, 104, 105, 118, 112, 106, 93, 109, 107, 114, 116, 106, 104, 106, 107, 104, 110, 114, 103, 105, 107, 108, 97, 107, 107, 98, 111, 108, 111, 109, 111, 104, 110, 106, 110, 112, 110, 103, 103, 113, 100, 108, 108, 109, 128, 110, 111, 105, 100, 106, 109, 110, 104, 107, 109, 121, 113, 102, 112, 109, 105, 117, 103, 108, 107, 104, 111, 104, 117, 99, 114, 101, 106, 113, 111, 104, 102, 105, 111, 109, 107, 103, 111, 107, 117, 108, 110, 105, 103, 114, 102, 108, 110, 104, 105, 106, 111, 105, 108, 111, 104, 106, 121, 112, 110, 109, 106, 110, 104, 108, 106, 107, 114, 104, 114, 113, 109, 108, 103, 107, 109, 112, 109, 110, 104, 107, 112, 107, 104, 106, 110, 106, 109, 105, 114, 115, 113, 102, 109, 103, 98, 116, 110, 107, 114, 117, 109, 114, 108, 104, 108, 120, 113, 109, 116, 115, 112, 104, 97, 107, 109, 110, 113, 113, 110, 99, 108, 112, 109, 106, 112, 101, 122, 112, 103, 108, 100, 110, 111, 111, 124, 120, 107, 111, 105, 104, 103, 116, 112, 113, 104, 104, 115, 101, 108, 103, 115, 120, 109, 113, 114, 98, 114, 103, 111, 101, 106, 114, 111, 108, 114, 109, 102, 103, 100, 106, 95, 124, 110, 115, 114, 118, 114, 107, 114, 105, 105, 106, 114, 121, 113, 105, 107, 111, 113, 121, 103, 112, 107, 108, 103, 104, 106, 108, 111, 106, 101, 118, 115, 108, 108, 104, 103, 111, 112, 105, 108, 105, 110, 107, 106, 109, 105, 107, 101, 119, 114, 109, 106, 95, 103, 111, 109, 104, 129, 106, 104, 107, 110, 103, 118, 107, 111, 109, 111, 102, 100, 113, 95, 108, 104, 119, 108, 109, 109, 102, 114, 106, 110, 102, 104, 107, 104, 113, 113, 111, 104, 109, 107, 99, 119, 119, 116, 116, 111, 110, 122, 112, 103, 109, 109, 116, 108, 110, 116, 103, 111, 116, 111, 114, 114, 107, 105, 99, 107, 112, 93, 104, 123, 122, 113, 119, 119, 107, 106, 104, 106, 104, 99, 109, 113, 111, 125, 107, 108, 103, 106, 119, 96, 108, 108, 109, 110, 114, 109, 115, 114, 110, 115, 109, 110, 108, 110, 105, 107, 113, 103, 114, 104, 108, 105, 102, 112, 103, 115, 114, 100, 102, 113, 110, 112, 106, 103, 116, 103, 104, 115, 101, 111, 110, 99, 109, 106, 107, 109, 116, 121, 106, 108, 103, 97, 111, 101, 112, 109, 101, 111, 102, 110, 115, 111, 113, 104, 105, 112, 114, 112, 103, 122, 96, 109, 111, 109, 110, 108, 105, 118, 103, 108, 122, 109, 111, 125, 113, 107, 106, 104, 118, 109, 109, 116, 108, 112, 101, 113, 111, 100, 116, 106, 109, 107, 112, 130, 117, 103, 106, 110, 106, 115, 113, 120, 99, 103, 107, 112, 100, 106, 111, 105, 108, 104, 117, 105, 109, 108, 107, 109, 111, 112, 112, 99, 110, 103, 124, 110, 124, 104, 114, 118, 103, 110, 106, 107, 110, 117, 113, 118, 108, 91, 116, 119, 105, 110, 105, 105, 111, 113, 103, 109, 110, 122, 113, 112, 114, 110, 106, 109, 122, 111, 117, 111, 111, 115, 111, 116, 108, 108, 105, 105, 116, 104, 107, 104, 110, 109, 116, 115, 123, 122, 110, 106, 113, 111, 101, 117, 110, 102, 108, 104, 106, 98, 107, 116, 110, 106, 113, 108, 109, 111, 115, 112, 114, 106, 105, 115, 109, 103, 114, 115, 106, 99, 115, 116, 107, 100, 115, 110, 109, 110, 112, 105, 110, 108, 108, 106, 116, 108, 105, 104, 107, 105, 136, 100, 102, 107, 106, 105, 108, 108, 113, 129, 108, 112, 108, 93, 105, 114, 106, 108, 108, 112, 105, 107, 109, 99, 105, 99, 103, 113, 109, 114, 99, 104, 85, 115, 117, 103, 105, 112, 120, 114, 132, 105, 114, 112, 113, 82, 110, 109, 115, 112, 106, 110, 106, 105, 124, 108, 109, 114, 93, 113, 104, 106, 114, 104, 119, 109, 111, 131, 106, 127, 111, 113, 101, 113, 117, 112, 106, 108, 106, 118, 109, 105, 110, 106, 115, 104, 117, 95, 110, 110, 114, 101, 116, 108, 104, 105, 104, 124, 117, 117, 115, 114, 99, 106, 102, 101, 109, 105, 129, 111, 112, 129, 110, 98, 119, 107, 109, 105, 109, 109, 99, 111, 122, 107, 111, 117, 112, 114, 110, 103, 112, 105, 106, 108, 112, 101, 109, 106, 109, 114, 111, 110, 106, 95, 104, 108, 101, 119, 116, 112, 116, 116, 110, 104, 93, 99, 108, 111, 105, 107, 106, 111, 109, 100, 106, 107, 104, 108, 108, 99, 110, 106, 111, 108, 109, 111, 95, 115, 105, 111, 97, 111, 110, 102, 112, 110, 120, 114, 135, 112, 98, 105, 109, 108, 104, 93, 111, 123, 118, 111, 108, 118, 112, 101, 97, 115, 100, 113, 122, 107, 125, 122, 114, 117, 107, 112, 105, 132, 113, 109, 116, 108, 114, 108, 104, 113, 110, 111, 109, 88, 91, 94, 93, 102, 116, 111, 102, 111, 118, 120, 101, 111, 100, 91, 126, 116, 106, 109, 105, 103, 115, 114, 114, 103, 106, 111, 134, 109, 109, 113, 107, 101, 107, 110, 115, 90, 108, 117, 85, 108, 115, 113, 108, 117, 113, 111, 116, 113, 109, 102, 106, 109, 110, 108, 119, 112, 110, 113, 112, 105, 108, 113, 106, 105, 112, 112, 112, 105, 119, 104, 115, 112, 110, 110, 115, 110, 111, 128, 103, 116, 112, 113, 102, 117, 108, 104, 112, 110, 109, 119, 106, 109, 111, 115, 101, 111, 114, 109, 112, 116, 106, 113, 104, 110, 131, 99, 102, 112, 106, 122, 103, 111, 112, 113, 112, 112, 110, 102, 101, 116, 117, 101, 113, 105, 110, 107, 110, 107, 93, 114, 108, 108, 108, 102, 115, 99, 118, 114, 94, 109, 106, 109, 114, 108, 114, 115, 99, 115, 89, 117, 114, 104, 106, 105, 110, 121, 107, 114, 105, 98, 109, 114, 114, 110, 103, 110, 102, 116, 113, 98, 110, 109, 108, 108, 99, 110, 109, 110, 110, 111, 109, 99, 109, 115, 111, 113, 109, 114, 113, 104, 107, 113, 114, 115, 112, 113, 98, 124, 105, 107, 107, 110, 115, 109, 116, 116, 115, 127, 105, 110, 114, 113, 121, 109, 109, 112, 130, 111, 113, 139, 113, 108, 107, 115, 109, 114, 106, 107, 114, 113, 106, 108, 112, 107, 116, 106, 108, 108, 108, 117, 107, 111, 108, 103, 112, 115, 110, 119, 115, 106, 108, 98, 98, 114, 130, 104, 111, 118, 113, 115, 108, 103, 107, 114, 108, 117, 96, 121, 109, 106, 110, 110, 108, 110, 105, 109, 101, 104, 110, 111, 104, 115, 108, 111, 106, 78, 97, 117, 98, 111, 107, 118, 114, 113, 102, 113, 115, 99, 104, 116, 114, 108, 111, 107, 106, 109, 120, 111, 105, 110, 109, 108, 110, 109, 101, 112, 117, 123, 119, 116, 109, 106, 106, 103, 112, 115, 104, 112, 102, 113, 110, 105, 106, 113, 107, 107, 110, 113, 90, 72, 111, 105, 124, 122, 100, 117, 113, 103, 114, 109, 116, 112, 110, 109, 115, 114, 101, 111, 108, 104, 110, 79, 114, 113, 130, 107, 100, 111, 124, 111, 102, 100, 106, 104, 119, 106, 119, 114, 106, 110, 111, 88, 111, 109, 111, 108, 111, 111, 115, 109, 110, 106, 121, 103, 112, 106, 114, 112, 100, 105, 107, 107, 110, 114, 111, 104, 113, 115, 115, 107, 114, 111, 111, 110, 112, 94, 111, 106, 110, 108, 113, 101, 114, 109, 109, 107, 101, 112, 112, 109, 95, 114, 105, 119, 112, 115, 116, 109, 104, 116, 113, 108, 107, 114, 113, 103, 109, 111, 105, 105, 110, 94, 118, 110, 108, 117, 105, 113, 109, 105, 112, 106, 112, 108, 115, 104, 110, 115, 106, 110, 118, 111, 102, 108, 98, 114, 107, 107, 117, 112, 103, 108, 102, 112, 111, 109, 111, 105, 116, 119, 113, 109, 117, 110, 106, 113, 121, 105, 98, 111, 107, 106, 110, 102, 107, 101, 104, 111, 108, 113, 109, 111, 104, 119, 109, 113, 108, 108, 111, 112, 130, 111, 112, 116, 109, 107, 110, 111, 111, 107, 107, 108, 111, 98, 107, 116, 112, 109, 108, 107, 109, 108, 109, 107, 106, 115, 114, 105, 114, 103, 110, 112, 114, 82, 109, 112, 105, 113, 104, 108, 114, 114, 103, 113, 110, 111, 109, 116, 107, 112, 105, 109, 104, 109, 109, 113, 116, 111, 108, 108, 107, 114, 115, 104, 112, 112, 127, 161, 108, 111, 114, 177, 111, 110, 101, 137, 102, 112, 97, 103, 110, 108, 98, 118, 108, 114, 109, 124, 109, 130, 110, 103, 110, 116, 106, 110, 111, 110, 103, 113, 111, 118, 118, 112, 112, 119, 104, 117, 116, 119, 105, 110, 112, 106, 114, 122, 117, 110, 121, 119, 118, 113, 105, 110, 110, 115, 114, 110, 112, 118, 109, 117, 115, 103, 112, 109, 108, 108, 112, 107, 110, 104, 116, 112, 95, 106, 103, 109, 113, 108, 106, 106, 100, 108, 104, 106, 107, 99, 110, 102, 105, 112, 113, 111, 105, 117, 110, 116, 111, 112, 108, 101, 114, 107, 110, 115, 110, 108, 103, 116, 107, 113, 106, 110, 110, 107, 115, 107, 108, 116, 105, 108, 100, 133, 107, 117, 106, 117, 103, 114, 111, 107, 107, 114, 110, 114, 113, 115, 109, 111, 116, 104, 108, 107, 105, 108, 102, 104, 111, 114, 119, 119, 109, 96, 109, 102, 109, 113, 106, 108, 111, 116, 105, 111, 105, 106, 108, 112, 103, 113, 113, 110, 109, 113, 111, 117, 111, 114, 107, 106, 113, 119, 107, 115, 102, 104, 103, 115, 109, 105, 106, 110, 108, 98, 106, 106, 107, 109, 113, 115, 120, 115, 95, 115, 100, 113, 106, 107, 112, 115, 103, 114, 96, 98, 114, 113, 107, 101, 107, 112, 106, 106, 111, 117, 115, 111, 113, 110, 98, 110, 105, 116, 111, 107, 112, 116, 114, 111, 114, 106, 110, 111, 111, 107, 94, 105, 100, 105, 112, 107, 116, 96, 105, 116, 112, 104, 106, 110, 100, 112, 104, 104, 105, 116, 112, 107, 102, 103, 113, 110, 112, 110, 105, 114, 136, 111, 108, 107, 116, 111, 108, 109, 101, 112, 111, 125, 113, 117, 117, 109, 106, 106, 109, 111, 109, 109, 98, 105, 106, 115, 121, 91, 115, 117, 111, 111, 113, 110, 110, 107, 103, 114, 106, 106, 103, 112, 110, 117, 84, 109, 109, 106, 111, 104, 102, 106, 101, 103, 115, 107, 109, 110, 112, 114, 103, 114, 102, 107, 118, 103, 113, 111, 116, 112, 121, 114, 102, 109, 108, 110, 109, 111, 112, 107, 113, 105, 119, 116, 125, 109, 105, 111, 107, 104, 111, 110, 105, 102, 112, 111, 108, 106, 110, 106, 113, 106, 103, 107, 116, 120, 108, 108, 118, 106, 115, 107, 109, 115, 111, 118, 114, 109, 155, 110, 105, 116, 107, 92, 108, 136, 113, 100, 110, 111, 113, 108, 106, 125, 110, 106, 103, 105, 98, 105, 107, 103, 106, 109, 107, 115, 110, 127, 111, 114, 112, 107, 115, 108, 106, 111, 109, 110, 104, 108, 119, 112, 125, 104, 109, 102, 109, 102, 107, 108, 117, 117, 121, 119, 110, 110, 104, 104, 107, 109, 123, 111, 104, 120, 110, 103, 118, 112, 111, 102, 108, 113, 105, 100, 116, 118, 108, 112, 104, 108, 122, 110, 111, 112, 108, 107, 115, 110, 108, 103, 107, 109, 105, 111, 116, 107, 109, 107, 108, 105, 108, 102, 109, 100, 106, 107, 110, 117, 111, 103, 111, 119, 109, 144, 118, 113, 111, 110, 114, 114, 106, 105, 103, 115, 117, 110, 105, 114, 110, 95, 112, 107, 112, 96, 127, 109, 106, 105, 106, 104, 114, 117, 107, 113, 101, 105, 102, 111, 110, 113, 115, 107, 112, 101, 106, 105, 112, 107, 108, 107, 99, 109, 114, 118, 116, 116, 112, 110, 105, 106, 105, 115, 111, 112, 119, 112, 115, 106, 100, 105, 107, 111, 111, 115, 107, 119, 130, 123, 112, 120, 102, 119, 111, 107, 101, 118, 98, 116, 113, 108, 112, 110, 105, 112, 101, 104, 110, 112, 110, 110, 109, 113, 110, 114, 114, 101, 112, 101, 115, 103, 105, 110, 109, 107, 108, 112, 110, 110, 111, 101, 105, 114, 107, 109, 107, 102, 119, 112, 107, 99, 111, 110, 104, 108, 106, 119, 112, 101, 94, 107, 114, 111, 112, 102, 119, 111, 112, 104, 105, 125, 101, 113, 112, 110, 115, 117, 113, 113, 116, 112, 115, 109, 97, 107, 111, 99, 115, 103, 106, 112, 103, 107, 106, 117, 116, 110, 116, 110, 105, 113, 105, 108, 113, 105, 106, 107, 107, 114, 104, 124, 115, 109, 112, 108, 107, 111, 109, 113, 117, 114, 112, 108, 108, 107, 114, 115, 110, 107, 107, 107, 106, 104, 122, 115, 112, 105, 118, 107, 109, 105, 122, 120, 111, 110, 114, 93, 112, 106, 105, 112, 102, 110, 108, 112, 107, 101, 115, 109, 104, 107, 109, 111, 115, 111, 106, 113, 110, 114, 109, 115, 122, 106, 101, 102, 112, 117, 113, 79, 110, 112, 106, 106, 102, 106, 108, 113, 108, 113, 105, 111, 105, 108, 115, 106, 114, 109, 108, 113, 109, 114, 111, 128, 103, 107, 107, 107, 120, 114, 106, 113, 111, 106, 113, 113, 112, 106, 108, 116, 117, 109, 111, 106, 113, 101, 110, 117, 106, 108, 110, 116, 99, 112, 110, 117, 109, 104, 100, 114, 120, 103, 118, 114, 109, 106, 116, 108, 120, 105, 109, 107, 114, 109, 106, 116, 100, 112, 110, 123, 112, 108, 115, 110, 105, 114, 107, 109, 98, 111, 113, 109, 106, 104, 117, 116, 109, 110, 114, 101, 104, 114, 112, 109, 109, 112, 119, 113, 110, 105, 110, 111, 111, 107, 111, 121, 114, 107, 111, 108, 110, 108, 112, 99, 113, 109, 112, 104, 118, 112, 103, 112, 99, 114, 112, 121, 103, 107, 110, 108, 110, 110, 100, 106, 115, 106, 108, 116, 109, 104, 111, 125, 113, 116, 108, 125, 104, 104, 110, 110, 119, 111, 110, 108, 122, 113, 110, 113, 103, 106, 104, 100, 110, 110, 114, 107, 112, 113, 106, 116, 114, 107, 107, 107, 102, 114, 111, 106, 113, 104, 102, 111, 101, 109, 111, 107, 100, 94, 116, 110, 109, 112, 111, 110, 105, 112, 118, 105, 119, 114, 120, 111, 108, 105, 107, 103, 115, 113, 108, 112, 117, 111, 87, 117, 110, 115, 115, 111, 108, 109, 106, 114, 105, 109, 114, 110, 109, 105, 117, 111, 110, 112, 106, 108, 106, 111, 117, 105, 100, 106, 106, 108, 111, 115, 109, 112, 96, 110, 105, 117, 106, 102, 116, 115, 117, 117, 105, 111, 115, 107, 112, 106, 113, 116, 108, 108, 107, 115, 103, 116, 110, 106, 97, 114, 102, 115, 113, 110, 112, 108, 115, 104, 122, 112, 113, 116, 113, 113, 100, 103, 113, 109, 113, 113, 107, 104, 114, 110, 105, 107, 114, 104, 104, 109, 115, 120, 110, 104, 109, 121, 110, 107, 107, 109, 108, 112, 106, 104, 107, 112, 123, 111, 107, 115, 126, 103, 114, 102, 105, 122, 112, 116, 109, 118, 111, 111, 117, 108, 110, 114, 103, 112, 109, 115, 114, 110, 118, 104, 102, 115, 103, 119, 107, 113, 119, 111, 110, 113, 111, 112, 112, 108, 110, 113, 110, 123, 109, 114, 115, 111, 111, 120, 106, 118, 108, 108, 103, 109, 115, 113, 106, 105, 119, 111, 112, 112, 105, 111, 111, 106, 113, 112, 117, 97, 105, 110, 112, 115, 115, 108, 115, 115, 105, 110, 118, 114, 117, 113, 108, 102, 110, 102, 112, 111, 111, 113, 113, 109, 113, 107, 105, 104, 110, 116, 119, 114, 113, 105, 114, 111, 124, 105, 109, 109, 104, 115, 105, 103, 114, 109, 110, 104, 109, 109, 111, 115, 108, 108, 107, 110, 110, 107, 108, 106, 110, 106, 106, 111, 110, 120, 111, 109, 112, 107, 111, 108, 111, 109, 105, 101, 106, 107, 108, 100, 110, 106, 109, 107, 115, 111, 114, 112, 107, 114, 113, 110, 108, 114, 113, 111, 103, 108, 108, 109, 107, 108, 111, 110, 113, 110, 109, 102, 108, 116, 109, 112, 113, 110, 110, 129, 112, 114, 117, 106, 80, 112, 105, 106, 106, 109, 116, 104, 114, 137, 114, 115, 112, 110, 109, 110, 111, 108, 118, 106, 111, 110, 116, 112, 112, 114, 105, 113, 105, 109, 115, 109, 115, 112, 112, 114, 114, 113, 109, 116, 109, 111, 113, 111, 100, 102, 115, 106, 110, 107, 111, 110, 107, 114, 114, 113, 115, 113, 110, 112, 100, 114, 104, 106, 110, 107, 112, 115, 113, 108, 112, 110, 117, 110, 111, 110, 83, 108, 115, 115, 105, 107, 106, 118, 113, 111, 113, 108, 114, 109, 113, 117, 116, 108, 118, 111, 114, 105, 111, 108, 109, 111, 110, 113, 111, 108, 111, 112, 115, 100, 110, 100, 107, 112, 97, 111, 111, 112, 108, 112, 108, 116, 115, 110, 105, 110, 108, 113, 112, 111, 111, 109, 114, 104, 109, 111, 111, 110, 106, 113, 110, 113, 111, 120, 111, 112, 114, 104, 116, 108, 110, 115, 108, 103, 106, 112, 117, 115, 111, 99, 116, 107, 105, 107, 109, 106, 111, 111, 110, 115, 105, 112, 105, 116, 111, 114, 110, 117, 112, 110, 106, 113, 109, 112, 108, 100, 109, 109, 108, 110, 115, 119, 116, 117, 109, 110, 112, 115, 115, 108, 107, 109, 112, 110, 111, 114, 113, 115, 105, 108, 108, 111, 112, 115, 111, 112, 116, 111, 108, 108, 117, 103, 107, 106, 110, 107, 109, 118, 113, 115, 111, 113, 109, 112, 109, 117, 117, 110, 116, 112, 108, 113, 114, 113, 108, 116, 112, 120, 113, 109, 109, 109, 106, 105, 120, 110, 108, 105, 111, 109, 113, 111, 111, 112, 110, 107, 105, 112, 113, 112, 106, 108, 110, 113, 108, 113, 109, 100, 114, 113, 122, 106, 112, 106, 106, 115, 112, 109, 110, 115, 109, 117, 107, 107, 108, 109, 112, 112, 110, 106, 110, 112, 106, 107, 114, 106, 106, 124, 116, 113, 109, 106, 114, 107, 104, 112, 107, 109, 111, 113, 113, 109, 111, 114, 112, 109, 108, 114, 112, 115, 104, 113, 119, 111, 118, 110, 113, 113, 110, 113, 107, 111, 110, 114, 108, 115, 113, 109, 103, 112, 113, 109, 108, 113, 114, 108, 112, 114, 108, 113, 113, 113, 117, 108, 113, 114, 110, 109, 109, 112, 114, 114, 117, 110, 111, 110, 109, 110, 109, 110, 119, 110, 106, 116, 110, 112, 110, 112, 107, 111, 109, 105, 114, 108, 105, 108, 110, 117, 104, 108, 103, 112, 114, 107, 109, 109, 114, 108, 111, 114, 109, 107, 109, 106, 102, 105, 113, 117, 109, 111, 107, 114, 102, 96, 107, 109, 104, 103, 108, 109, 110, 112, 110, 109, 110, 113, 109, 112, 113, 108, 113, 109, 97, 111, 110, 110, 113, 115, 108, 89, 109, 112, 114, 113, 114, 108, 122, 120, 110, 107, 112, 109, 110, 110, 110, 107, 113, 112, 117, 102, 111, 113, 108, 109, 98, 110, 105, 110, 110, 117, 111, 109, 109, 111, 113, 106, 105, 113, 110, 112, 108, 113, 111, 111, 103, 106, 108, 107, 111, 110, 109, 115, 112, 124, 110, 106, 109, 114, 110, 113, 121, 85, 110, 112, 107, 98, 112, 108, 106, 113, 115, 109, 108, 111, 109, 118, 108, 111, 105, 107, 108, 113, 110, 120, 114, 109, 127, 110, 106, 108, 117, 112, 111, 100, 119, 108, 113, 124, 109, 114, 106, 113, 110, 108, 101, 114, 113, 126, 108, 108, 109, 107, 112, 109, 116, 109, 110, 112, 112, 114, 109, 110, 112, 117, 113, 111, 109, 114, 104, 111, 111, 107, 113, 111, 108, 112, 111, 107, 112, 113, 111, 111, 110, 113, 113, 110, 110, 105, 106, 110, 106, 113, 116, 112, 109, 110, 112, 110, 109, 108, 109, 117, 111, 113, 112, 96, 112, 104, 120, 113, 109, 111, 112, 112, 112, 111, 111, 109, 115, 113, 106, 118, 107, 98, 104, 110, 116, 106, 144, 108, 107, 113, 110, 112, 106, 115, 110, 117, 106, 110, 134, 110, 110, 110, 106, 115, 108, 112, 111, 111, 109, 113, 110, 114, 111, 111, 109, 114, 114, 109, 112, 106, 115, 98, 112, 110, 106, 115, 105, 111, 94, 109, 112, 110, 98, 108, 115, 113, 113, 112, 112, 116, 114, 109, 107, 117, 108, 108, 113, 108, 108, 110, 108, 109, 107, 107, 112, 112, 110, 104, 109, 110, 109, 110, 112, 112, 109, 111, 124, 113, 111, 71, 111, 107, 112, 118, 109, 111, 112, 111, 113, 105, 107, 110, 112, 117, 109, 108, 109, 113, 112, 113, 125, 109, 111, 96, 109, 112, 110, 107, 107, 113, 109, 112, 115, 128, 112, 109, 103, 91, 98, 110, 109, 108, 113, 111, 106, 113, 124, 111, 105, 110, 110, 119, 92, 110, 108, 114, 110, 99, 109, 117, 112, 99, 105, 109, 111, 112, 110, 104, 113, 110, 110, 115, 109, 110, 110, 109, 110, 118, 112, 116, 110, 113, 111, 114, 112, 107, 106, 114, 112, 109, 114, 112, 113, 110, 111, 106, 115, 110, 113, 115, 107, 106, 107, 110, 108, 111, 106, 111, 114, 106, 109, 109, 109, 121, 113, 106, 113, 103, 110, 113, 111, 112, 109, 111, 109, 110, 108, 106, 112, 128, 111, 115, 108, 106, 100, 114, 114, 110, 111, 107, 104, 113, 111, 108, 111, 114, 107, 110, 110, 107, 102, 113, 114, 106, 100, 108, 111, 110, 111, 115, 112, 108, 116, 109, 107, 112, 109, 111, 105, 113, 110, 110, 113, 109, 109, 111, 102, 108, 114, 112, 110, 113, 113, 114, 109, 111, 100, 120, 112, 113, 117, 116, 107, 114, 107, 119, 125, 121, 100, 104, 121, 120, 126, 103, 109, 111, 114, 117, 108, 109, 104, 105, 102, 112, 109, 115, 107, 113, 115, 97, 105, 116, 121, 102, 117, 107, 103, 116, 110, 93, 114, 112, 111, 103, 111, 109, 109, 118, 104, 115, 120, 111, 112, 110, 118, 105, 120, 107, 115, 108, 98, 109, 100, 105, 89, 110, 111, 84, 108, 106, 106, 99, 118, 101, 111, 120, 113, 112, 121, 121, 101, 112, 113, 100, 110, 113, 106, 127, 105, 103, 107, 112, 109, 114, 112, 106, 116, 114, 90, 123, 108, 112, 104, 113, 92, 115, 112, 115, 102, 114, 114, 128, 105, 119, 121, 107, 111, 118, 113, 110, 108, 119, 109, 107, 106, 107, 101, 114, 100, 115, 120, 103, 114, 109, 109, 105, 108, 106, 119, 126, 101, 121, 114, 101, 108, 106, 108, 115, 96, 102, 123, 105, 109, 110, 119, 119, 99, 99, 99, 97, 109, 107, 110, 108, 108, 109, 114, 111, 78, 116, 120, 111, 101, 118, 107, 120, 111, 103, 116, 113, 118, 110, 109, 106, 102, 109, 108, 117, 114, 111, 102, 120, 114, 113, 105, 115, 108, 109, 107, 100, 104, 115, 117, 116, 109, 106, 105, 124, 99, 103, 113, 113, 102, 119, 111, 114, 110, 122, 110, 110, 103, 113, 106, 106, 143, 124, 122, 107, 126, 109, 109, 113, 116, 115, 115, 100, 113, 111, 120, 111, 105, 102, 106, 101, 125, 113, 105, 96, 124, 115, 115, 112, 122, 125, 104, 95, 104, 109, 108, 100, 114, 116, 101, 112, 113, 90, 114, 105, 107, 113, 96, 117, 110, 112, 92, 113, 112, 113, 120, 106, 117, 120, 119, 111, 108, 111, 115, 124, 99, 103, 113, 121, 110, 124, 116, 105, 113, 128, 112, 113, 99, 105, 103, 104, 111, 105, 99, 113, 109, 98, 105, 109, 105, 87, 100, 113, 105, 104, 115, 108, 117, 115, 121, 105, 108, 105, 103, 110, 99, 115, 137, 106, 102, 95, 109, 116, 111, 104, 108, 110, 112, 119, 120, 108, 97, 114, 117, 122, 114, 118, 114, 91, 111, 108, 109, 117, 84, 111, 111, 113, 113, 108, 109, 112, 106, 116, 112, 108, 114, 109, 106, 103, 108, 112, 111, 99, 107, 109, 139, 112, 108, 115, 110, 107, 115, 103, 102, 107, 104, 112, 118, 104, 112, 108, 108, 108, 112, 125, 107, 105, 123, 112, 115, 101, 129, 105, 104, 116, 109, 108, 123, 108, 118, 103, 105, 123, 115, 103, 117, 114, 108, 104, 113, 109, 120, 111, 104, 105, 103, 110, 112, 116, 104, 104, 113, 107, 125, 109, 110, 126, 118, 116, 100, 111, 110, 122, 105, 119, 107, 108, 103, 116, 109, 111, 109, 109, 117, 111, 70, 120, 115, 109, 105, 110, 96, 96, 111, 93, 105, 104, 110, 112, 116, 108, 100, 112, 120, 126, 107, 113, 114, 118, 106, 120, 111, 109, 108, 114, 103, 125, 120, 110, 118, 105, 102, 104, 108, 98, 107, 105, 108, 104, 108, 117, 111, 109, 111, 111, 111, 110, 109, 113, 97, 119, 111, 107, 111, 101, 133, 116, 109, 112, 119, 102, 110, 109, 108, 113, 101, 116, 115, 98, 109, 103, 107, 109, 105, 95, 115, 123, 110, 102, 105, 114, 107, 110, 107, 113, 109, 121, 113, 107, 113, 106, 116, 111, 110, 101, 107, 115, 104, 116, 113, 110, 121, 103, 106, 117, 113, 111, 114, 115, 114, 106, 105, 117, 102, 119, 111, 105, 105, 113, 114, 112, 117, 118, 112, 105, 112, 102, 112, 103, 118, 99, 110, 114, 104, 109, 104, 100, 114, 115, 112, 113, 97, 107, 112, 113, 98, 105, 109, 112, 112, 117, 114, 108, 110, 110, 104, 107, 112, 109, 114, 129, 114, 93, 108, 109, 110, 107, 111, 106, 112, 110, 114, 111, 124, 106, 106, 118, 112, 102, 112, 115, 109, 109, 110, 116, 115, 117, 116, 102, 104, 106, 115, 111, 111, 104, 113, 124, 106, 97, 124, 99, 103, 110, 120, 113, 115, 109, 106, 112, 106, 111, 111, 104, 107, 114, 136, 118, 94, 107, 109, 112, 107, 110, 105, 110, 103, 110, 111, 97, 116, 108, 131, 106, 110, 111, 101, 100, 102, 111, 120, 111, 109, 118, 98, 110, 101, 113, 106, 104, 118, 111, 109, 113, 116, 107, 141, 98, 102, 116, 105, 97, 110, 81, 110, 109, 117, 102, 115, 109, 105, 115, 116, 119, 113, 105, 110, 101, 116, 108, 92, 110, 110, 110, 115, 104, 110, 102, 109, 109, 104, 116, 106, 119, 112, 104, 109, 109, 109, 108, 109, 117, 108, 104, 108, 115, 104, 115, 107, 102, 98, 111, 111, 108, 93, 100, 112, 101, 107, 108, 114, 105, 110, 118, 107, 115, 109, 104, 116, 116, 106, 107, 121, 119, 97, 115, 116, 109, 107, 96, 105, 110, 119, 125, 108, 114, 101, 109, 102, 125, 106, 110, 107, 114, 122, 117, 102, 114, 98, 104, 115, 104, 114, 115, 115, 114, 108, 111, 107, 108, 119, 108, 112, 112, 115, 110, 104, 114, 117, 121, 114, 109, 107, 121, 111, 98, 103, 98, 120, 109, 104, 104, 113, 106, 101, 102, 114, 115, 100, 112, 118, 108, 101, 101, 108, 109, 108, 126, 106, 119, 111, 111, 114, 104, 113, 109, 113, 113, 104, 109, 110, 107, 107, 119, 98, 108, 108, 106, 109, 106, 131, 106, 117, 122, 114, 108, 112, 110, 112, 102, 101, 114, 117, 108, 97, 94, 113, 106, 113, 105, 113, 114, 108, 122, 99, 112, 108, 124, 113, 117, 122, 107, 107, 114, 116, 104, 95, 104, 112, 108, 109, 116, 105, 102, 101, 111, 104, 107, 110, 120, 108, 116, 104, 112, 101, 111, 108, 120, 111, 104, 113, 104, 110, 105, 111, 108, 108, 118, 110, 96, 104, 100, 106, 106, 113, 93, 115, 112, 114, 111, 112, 98, 96, 118, 159, 113, 113, 101, 110, 114, 110, 106, 110, 115, 109, 110, 108, 113, 124, 114, 117, 120, 107, 116, 108, 111, 109, 115, 117, 105, 118, 112, 103, 107, 111, 108, 102, 113, 124, 120, 106, 112, 100, 114, 104, 112, 110, 117, 110, 110, 107, 97, 109, 104, 101, 116, 120, 96, 105, 110, 125, 105, 108, 109, 107, 97, 113, 119, 107, 114, 120, 92, 107, 107, 109, 109, 102, 108, 115, 106, 110, 106, 111, 104, 108, 101, 102, 121, 125, 105, 107, 123, 100, 114, 100, 106, 109, 114, 104, 105, 105, 104, 113, 104, 104, 110, 119, 103, 116, 113, 120, 117, 117, 101, 97, 108, 111, 117, 115, 120, 114, 107, 114, 95, 106, 99, 111, 118, 113, 105, 109, 107, 107, 106, 116, 102, 120, 110, 106, 98, 104, 103, 109, 102, 106, 109, 105, 107, 126, 97, 129, 105, 103, 117, 111, 110, 109, 112, 103, 101, 109, 107, 114, 113, 110, 108, 119, 102, 99, 118, 113, 103, 108, 113, 111, 103, 107, 115, 113, 100, 108, 115, 120, 105, 110, 111, 101, 115, 117, 107, 106, 102, 115, 101, 114, 102, 117, 99, 108, 107, 100, 108, 103, 112, 102, 113, 115, 115, 110, 117, 102, 112, 118, 102, 99, 108, 106, 109, 107, 119, 120, 116, 111, 111, 98, 113, 108, 103, 113, 111, 111, 105, 106, 95, 116, 102, 112, 112, 106, 116, 96, 123, 108, 118, 93, 108, 110, 114, 100, 113, 109, 112, 111, 99, 112, 116, 105, 100, 109, 98, 108, 131, 106, 108, 123, 107, 110, 108, 107, 111, 103, 118, 106, 108, 99, 112, 100, 114, 98, 116, 103, 104, 102, 106, 106, 123, 106, 102, 114, 106, 106, 117, 105, 106, 111, 117, 113, 111, 120, 124, 103, 109, 101, 90, 123, 127, 112, 116, 108, 113, 111, 107, 103, 109, 110, 111, 109, 116, 105, 128, 111, 118, 108, 107, 115, 111, 93, 116, 108, 104, 109, 114, 117, 102, 117, 111, 110, 114, 110, 99, 118, 108, 120, 115, 113, 107, 111, 101, 118, 101, 107, 104, 109, 105, 119, 110, 105, 113, 116, 109, 94, 106, 105, 118, 89, 118, 105, 104, 124, 103, 110, 101, 111, 99, 107, 115, 128, 114, 117, 103, 114, 101, 95, 108, 112, 113, 112, 117, 96, 104, 112, 122, 113, 129, 106, 119, 103, 121, 111, 103, 115, 109, 109, 120, 110, 121, 120, 96, 112, 103, 108, 116, 102, 112, 104, 108, 107, 102, 121, 113, 120, 104, 107, 101, 118, 118, 120, 98, 123, 102, 107, 114, 97, 116, 111, 112, 105, 107, 107, 120, 100, 97, 104, 106, 114, 101, 125, 105, 108, 108, 114, 121, 97, 105, 114, 100, 104, 119, 115, 105, 112, 116, 94, 119, 115, 119, 111, 106, 104, 113, 114, 108, 109, 118, 100, 99, 91, 112, 114, 106, 101, 103, 106, 108, 110, 112, 121, 112, 102, 116, 101, 107, 109, 119, 110, 121, 94, 104, 106, 105, 110, 106, 111, 109, 105, 101, 105, 110, 106, 114, 103, 109, 107, 102, 120, 110, 103, 99, 107, 101, 104, 106, 113, 104, 102, 114, 103, 105, 96, 115, 115, 111, 115, 119, 108, 107, 117, 113, 116, 110, 100, 116, 115, 103, 112, 104, 116, 109, 103, 101, 123, 104, 102, 107, 101, 105, 116, 116, 111, 110, 113, 113, 107, 129, 108, 104, 107, 110, 103, 113, 108, 110, 95, 106, 107, 108, 106, 115, 111, 104, 106, 111, 114, 105, 111, 110, 109, 112, 112, 111, 110, 110, 112, 108, 115, 111, 108, 110, 114, 105, 103, 109, 114, 113, 117, 111, 111, 115, 112, 110, 115, 112, 99, 112, 106, 113, 112, 99, 109, 109, 110, 109, 113, 113, 112, 114, 108, 109, 102, 107, 113, 117, 110, 109, 106, 106, 107, 124, 105, 114, 110, 108, 111, 109, 111, 114, 108, 113, 112, 101, 114, 110, 115, 106, 116, 112, 111, 114, 112, 110, 109, 127, 116, 111, 110, 107, 118, 110, 116, 117, 114, 111, 114, 107, 106, 106, 108, 110, 113, 107, 115, 111, 109, 121, 112, 113, 110, 113, 113, 110, 107, 109, 108, 112, 104, 114, 110, 109, 112, 105, 113, 109, 111, 118, 120, 109, 105, 109, 108, 103, 108, 106, 109, 110, 112, 111, 108, 106, 107, 118, 111, 110, 114, 117, 108, 116, 111, 108, 116, 112, 105, 109, 109, 107, 111, 100, 103, 108, 97, 108, 109, 115, 106, 114, 107, 112, 109, 110, 111, 110, 109, 108, 113, 114, 107, 104, 109, 107, 110, 113, 119, 110, 111, 108, 114, 114, 110, 109, 109, 117, 108, 119, 113, 111, 105, 109, 108, 116, 106, 108, 110, 107, 115, 111, 117, 107, 117, 111, 109, 114, 110, 110, 108, 111, 111, 104, 111, 109, 114, 115, 105, 112, 108, 112, 111, 109, 107, 97, 109, 104, 111, 112, 110, 110, 107, 117, 90, 109, 108, 118, 105, 108, 106, 111, 109, 111, 108, 105, 112, 113, 108, 108, 110, 104, 109, 111, 110, 110, 112, 105, 105, 110, 109, 116, 105, 111, 109, 111, 112, 111, 110, 117, 105, 109, 106, 104, 104, 109, 109, 109, 110, 109, 114, 109, 108, 113, 105, 106, 114, 85, 108, 110, 114, 114, 114, 110, 115, 114, 119, 113, 106, 114, 110, 109, 108, 108, 113, 122, 105, 106, 105, 108, 107, 110, 111, 115, 101, 112, 110, 109, 102, 115, 106, 100, 112, 114, 108, 99, 111, 105, 109, 108, 111, 112, 113, 110, 110, 104, 108, 108, 104, 110, 108, 112, 109, 109, 116, 108, 114, 109, 105, 110, 106, 118, 110, 112, 104, 110, 110, 117, 107, 112, 124, 109, 109, 110, 114, 107, 108, 102, 107, 107, 112, 112, 112, 108, 109, 113, 109, 108, 115, 117, 105, 112, 115, 113, 100, 115, 112, 106, 112, 112, 112, 106, 104, 109, 112, 99, 113, 111, 110, 114, 110, 106, 112, 101, 110, 118, 115, 109, 113, 110, 106, 108, 111, 108, 112, 107, 123, 111, 112, 108, 106, 111, 108, 111, 107, 108, 111, 118, 107, 110, 103, 105, 110, 109, 112, 110, 113, 117, 111, 105, 113, 122, 107, 106, 115, 113, 104, 103, 113, 105, 113, 113, 110, 106, 106, 106, 110, 114, 109, 104, 111, 104, 107, 118, 102, 109, 104, 103, 104, 99, 113, 114, 105, 98, 110, 108, 109, 113, 106, 109, 109, 110, 108, 110, 109, 111, 113, 109, 108, 106, 110, 110, 109, 112, 112, 107, 107, 105, 118, 98, 110, 112, 92, 106, 111, 113, 86, 106, 110, 114, 114, 99, 110, 114, 103, 107, 114, 92, 104, 105, 112, 107, 94, 105, 116, 113, 111, 106, 96, 109, 102, 113, 116, 128, 109, 105, 105, 99, 112, 112, 108, 112, 107, 109, 100, 108, 114, 108, 116, 111, 110, 117, 101, 112, 111, 112, 112, 104, 105, 109, 102, 135, 99, 103, 106, 101, 103, 122, 102, 132, 106, 109, 109, 115, 102, 104, 114, 110, 113, 108, 105, 103, 126, 109, 111, 120, 108, 106, 108, 112, 110, 116, 126, 103, 109, 99, 117, 108, 114, 103, 110, 108, 115, 109, 111, 117, 98, 103, 120, 107, 108, 124, 105, 105, 105, 83, 112, 104, 106, 109, 109, 129, 108, 115, 107, 102, 108, 116, 107, 108, 117, 116, 107, 116, 116, 106, 103, 91, 108, 103, 104, 117, 100, 102, 111, 111, 112, 113, 115, 127, 119, 103, 114, 116, 98, 131, 104, 97, 123, 115, 109, 112, 116, 106, 118, 110, 114, 122, 106, 117, 105, 116, 112, 113, 107, 105, 119, 103, 108, 106, 110, 116, 98, 115, 99, 107, 101, 110, 119, 113, 101, 114, 113, 107, 107, 110, 105, 107, 114, 119, 110, 112, 114, 115, 99, 129, 118, 118, 102, 105, 103, 98, 107, 114, 115, 102, 115, 101, 102, 118, 98, 106, 110, 108, 106, 87, 108, 106, 105, 103, 111, 107, 112, 108, 104, 106, 105, 100, 102, 118, 114, 114, 105, 103, 122, 103, 101, 130, 99, 117, 110, 106, 108, 104, 104, 118, 112, 129, 114, 116, 103, 124, 116, 117, 118, 100, 109, 108, 100, 110, 106, 106, 106, 103, 112, 111, 119, 112, 108, 116, 103, 115, 114, 103, 103, 113, 116, 103, 97, 102, 112, 96, 103, 103, 105, 108, 114, 114, 101, 107, 125, 114, 107, 102, 101, 102, 106, 103, 103, 108, 117, 125, 107, 104, 114, 125, 103, 82, 113, 113, 103, 113, 117, 103, 113, 104, 88, 114, 111, 113, 112, 117, 108, 112, 112, 126, 116, 116, 96, 112, 102, 115, 106, 138, 98, 108, 113, 102, 98, 108, 104, 103, 103, 112, 104, 99, 107, 115, 120, 121, 113, 115, 102, 119, 117, 99, 107, 124, 113, 100, 102, 109, 106, 103, 109, 117, 107, 116, 105, 116, 113, 107, 110, 109, 108, 97, 105, 109, 105, 101, 98, 92, 122, 114, 104, 104, 113, 109, 107, 116, 115, 117, 121, 114, 122, 107, 92, 119, 120, 104, 122, 109, 111, 108, 120, 108, 105, 120, 110, 104, 108, 101, 108, 107, 107, 115, 115, 124, 121, 109, 104, 108, 109, 105, 115, 123, 111, 114, 96, 108, 88, 137, 110, 103, 107, 110, 111, 103, 117, 104, 87, 104, 99, 106, 122, 111, 101, 98, 102, 103, 105, 106, 107, 102, 96, 101, 105, 131, 99, 102, 96, 120, 112, 99, 113, 116, 111, 110, 108, 115, 117, 97, 113, 121, 108, 98, 106, 111, 104, 103, 106, 100, 118, 110, 106, 115, 112, 114, 114, 109, 112, 104, 113, 107, 106, 103, 99, 108, 104, 114, 111, 104, 100, 83, 101, 109, 118, 105, 96, 105, 108, 110, 104, 111, 109, 110, 112, 112, 104, 109, 112, 106, 109, 110, 108, 110, 114, 148, 112, 105, 112, 107, 114, 115, 109, 111, 109, 110, 108, 102, 117, 111, 105, 109, 112, 111, 102, 124, 101, 115, 114, 112, 107, 113, 106, 123, 108, 108, 95, 112, 129, 113, 113, 102, 111, 107, 113, 114, 111, 108, 113, 115, 111, 100, 108, 118, 108, 115, 112, 109, 93, 109, 111, 99, 108, 106, 103, 109, 111, 110, 96, 112, 125, 113, 109, 108, 110, 108, 113, 109, 110, 109, 110, 105, 112, 103, 106, 105, 116, 103, 113, 112, 107, 97, 108, 114, 112, 113, 107, 103, 104, 106, 109, 105, 129, 112, 112, 112, 105, 104, 122, 115, 105, 103, 117, 127, 109, 114, 112, 114, 113, 112, 106, 108, 112, 96, 113, 106, 107, 112, 113, 110, 108, 109, 107, 109, 106, 107, 113, 105, 112, 113, 115, 96, 93, 113, 110, 112, 104, 113, 105, 110, 112, 110, 109, 98, 110, 104, 109, 109, 113, 109, 109, 114, 109, 109, 117, 113, 126, 108, 106, 104, 110, 147, 110, 106, 111, 111, 113, 110, 108, 108, 107, 106, 104, 98, 110, 106, 108, 136, 110, 116, 104, 112, 104, 106, 102, 113, 109, 104, 111, 112, 93, 108, 106, 107, 113, 115, 102, 110, 103, 110, 107, 106, 107, 113, 127, 111, 114, 115, 123, 106, 112, 112, 60, 122, 113, 102, 114, 109, 104, 105, 111, 116, 90, 108, 97, 108, 120, 107, 121, 102, 109, 119, 109, 109, 115, 109, 109, 107, 112, 111, 110, 104, 110, 109, 109, 103, 106, 102, 96, 105, 88, 98, 114, 113, 108, 107, 111, 114, 111, 112, 113, 100, 113, 107, 111, 113, 105, 110, 111, 111, 109, 109, 107, 112, 102, 112, 105, 108, 111, 107, 114, 116, 107, 123, 115, 111, 129, 107, 109, 108, 108, 112, 111, 101, 114, 108, 116, 101, 104, 107, 110, 113, 104, 107, 118, 110, 102, 101, 112, 103, 118, 107, 110, 114, 108, 111, 105, 104, 113, 111, 113, 102, 109, 105, 111, 110, 113, 108, 106, 113, 110, 108, 110, 107, 117, 108, 109, 104, 104, 108, 109, 89, 107, 106, 110, 106, 111, 121, 111, 111, 115, 113, 93, 114, 102, 113, 108, 115, 115, 124, 118, 109, 113, 104, 112, 105, 106, 109, 116, 113, 110, 110, 112, 111, 109, 110, 114, 111, 110, 106, 117, 108, 119, 115, 113, 116, 119, 113, 101, 111, 105, 120, 112, 114, 142, 122, 108, 130, 110, 108, 114, 112, 106, 120, 114, 116, 111, 110, 106, 111, 114, 105, 107, 119, 116, 114, 108, 100, 111, 117, 114, 111, 109, 97, 111, 93, 111, 110, 107, 102, 110, 111, 106, 113, 110, 110, 113, 109, 104, 116, 118, 106, 111, 112, 108, 113, 111, 105, 110, 107, 115, 112, 111, 117, 109, 103, 111, 109, 113, 113, 111, 101, 117, 117, 104, 139, 124, 124, 115, 109, 107, 109, 114, 113, 109, 112, 115, 110, 111, 110, 112, 115, 119, 110, 111, 115, 116, 104, 101, 110, 108, 103, 112, 112, 97, 111, 121, 119, 109, 120, 112, 119, 110, 107, 113, 110, 111, 107, 118, 105, 112, 109, 122, 117, 119, 120, 121, 108, 113, 120, 107, 113, 107, 108, 107, 112, 109, 113, 110, 94, 117, 109, 112, 112, 121, 110, 105, 109, 110, 113, 111, 107, 111, 121, 102, 107, 113, 117, 109, 102, 106, 110, 115, 114, 114, 110, 112, 130, 107, 111, 106, 99, 114, 105, 95, 112, 104, 120, 112, 107, 104, 118, 109, 117, 103, 114, 108, 109, 113, 113, 115, 107, 117, 117, 110, 115, 104, 116, 111, 105, 110, 114, 102, 94, 108, 114, 99, 109, 111, 108, 127, 113, 115, 98, 116, 115, 105, 116, 105, 109, 109, 114, 99, 103, 113, 102, 112, 114, 110, 112, 107, 112, 108, 111, 109, 114, 112, 108, 113, 110, 105, 121, 108, 113, 99, 116, 115, 105, 111, 104, 110, 120, 113, 100, 109, 112, 121, 112, 115, 111, 122, 149, 110, 100, 107, 109, 114, 113, 111, 112, 112, 115, 94, 119, 110, 102, 109, 112, 109, 109, 109, 109, 105, 106, 122, 88, 110, 107, 104, 102, 104, 112, 110, 109, 111, 112, 113, 100, 115, 116, 108, 109, 108, 126, 112, 117, 111, 113, 122, 112, 108, 109, 110, 101, 112, 120, 113, 112, 116, 102, 109, 119, 112, 111, 108, 115, 122, 109, 105, 102, 106, 111, 130, 119, 108, 103, 109, 113, 107, 111, 116, 107, 109, 115, 112, 125, 113, 97, 112, 96, 112, 118, 106, 105, 116, 104, 96, 104, 110, 106, 108, 105, 107, 111, 110, 118, 108, 114, 118, 113, 114, 106, 107, 111, 106, 109, 102, 103, 113, 113, 112, 98, 106, 103, 111, 111, 111, 137, 111, 109, 107, 109, 104, 111, 112, 118, 117, 101, 133, 117, 103, 111, 113, 109, 116, 118, 111, 109, 111, 115, 115, 104, 108, 110, 107, 109, 117, 110, 95, 107, 109, 113, 96, 100, 102, 114, 110, 123, 111, 85, 123, 115, 109, 114, 127, 118, 109, 101, 109, 108, 108, 106, 110, 113, 115, 115, 108, 114, 89, 107, 112, 107, 116, 119, 105, 99, 107, 122, 112, 108, 102, 87, 115, 102, 124, 105, 110, 109, 120, 101, 113, 91, 105, 105, 116, 105, 114, 110, 107, 117, 108, 109, 119, 105, 109, 103, 111, 122, 97, 105, 109, 120, 108, 99, 118, 110, 89, 112, 103, 116, 112, 106, 115, 108, 106, 111, 128, 88, 111, 111, 110, 113, 110, 108, 106, 106, 100, 113, 108, 124, 106, 114, 105, 105, 105, 105, 115, 100, 118, 105, 106, 113, 109, 97, 102, 110, 108, 109, 117, 113, 108, 100, 112, 109, 118, 110, 113, 105, 113, 119, 117, 119, 112, 113, 112, 127, 109, 106, 108, 113, 118, 115, 117, 109, 99, 103, 106, 119, 113, 110, 115, 118, 109, 114, 109, 119, 108, 107, 106, 119, 114, 112, 111, 110, 114, 109, 119, 109, 105, 107, 116, 116, 111, 98, 115, 109, 123, 107, 116, 113, 107, 109, 107, 95, 106, 115, 112, 105, 113, 107, 106, 110, 111, 125, 111, 106, 106, 106, 115, 108, 104, 115, 106, 106, 119, 98, 105, 103, 108, 116, 104, 117, 107, 103, 113, 129, 112, 122, 99, 112, 113, 118, 109, 108, 108, 110, 105, 119, 114, 100, 104, 114, 119, 103, 112, 117, 110, 119, 114, 98, 107, 114, 119, 115, 104, 103, 114, 101, 109, 104, 116, 113, 104, 114, 99, 108, 108, 111, 108, 108, 100, 110, 105, 112, 100, 104, 104, 118, 99, 112, 107, 106, 110, 114, 118, 108, 123, 104, 106, 110, 109, 97, 104, 98, 107, 119, 114, 105, 106, 106, 114, 93, 106, 112, 107, 115, 108, 110, 113, 117, 107, 124, 113, 111, 107, 107, 112, 110, 117, 131, 104, 106, 99, 120, 111, 106, 106, 108, 110, 120, 115, 107, 105, 124, 105, 106, 106, 115, 107, 107, 100, 109, 112, 104, 107, 105, 94, 117, 105, 105, 99, 105, 118, 121, 118, 110, 110, 111, 112, 124, 106, 100, 101, 113, 104, 102, 111, 114, 107, 99, 115, 130, 109, 113, 109, 106, 104, 106, 109, 109, 112, 108, 98, 108, 119, 98, 99, 105, 117, 106, 111, 107, 102, 111, 109, 107, 125, 106, 99, 117, 118, 108, 102, 103, 99, 109, 114, 116, 114, 106, 112, 114, 112, 118, 107, 103, 109, 99, 104, 101, 98, 109, 116, 96, 114, 113, 105, 106, 108, 108, 105, 104, 117, 99, 111, 102, 110, 116, 107, 105, 92, 113, 103, 110, 102, 101, 109, 124, 102, 108, 112, 103, 110, 108, 113, 92, 121, 104, 105, 103, 116, 105, 117, 114, 116, 119, 109, 97, 109, 99, 103, 110, 103, 108, 121, 123, 129, 97, 101, 98, 124, 104, 117, 109, 99, 104, 111, 104, 107, 113, 127, 103, 102, 108, 111, 113, 109, 109, 118, 112, 118, 118, 99, 117, 126, 111, 107, 114, 108, 101, 110, 115, 126, 105, 119, 111, 119, 111, 113, 115, 97, 109, 111, 108, 110, 122, 111, 103, 102, 107, 110, 104, 110, 97, 108, 106, 114, 115, 117, 106, 102, 108, 115, 111, 112, 105, 96, 110, 108, 119, 109, 115, 133, 103, 107, 111, 112, 115, 108, 103, 106, 106, 107, 107, 112, 114, 104, 103, 107, 102, 108, 109, 117, 111, 112, 105, 108, 118, 112, 106, 110, 119, 106, 112, 115, 120, 117, 117, 117, 109, 117, 104, 112, 112, 104, 97, 118, 105, 103, 97, 116, 115, 104, 107, 120, 111, 98, 123, 105, 113, 108, 95, 120, 108, 107, 95, 121, 108, 125, 107, 109, 98, 106, 120, 105, 105, 116, 107, 117, 114, 108, 105, 111, 97, 114, 111, 107, 112, 109, 111, 119, 117, 116, 101, 113, 108, 113, 115, 109, 102, 109, 114, 118, 122, 111, 122, 117, 107, 111, 111, 107, 111, 112, 118, 106, 114, 110, 113, 113, 102, 120, 114, 107, 109, 111, 110, 113, 120, 105, 100, 110, 106, 127, 110, 105, 108, 108, 102, 111, 104, 106, 115, 113, 116, 112, 110, 106, 101, 133, 112, 104, 112, 107, 111, 119, 91, 125, 112, 105, 122, 113, 106, 139, 113, 110, 104, 112, 108, 110, 116, 108, 102, 110, 108, 114, 109, 109, 107, 107, 124, 108, 110, 104, 107, 113, 110, 113, 119, 109, 101, 100, 104, 113, 100, 109, 98, 114, 111, 103, 106, 104, 108, 105, 100, 111, 121, 102, 110, 104, 99, 111, 129, 110, 108, 96, 106, 117, 121, 104, 111, 119, 111, 109, 103, 111, 102, 103, 115, 110, 117, 111, 102, 111, 108, 109, 117, 102, 113, 106, 117, 112, 114, 116, 107, 111, 112, 103, 108, 109, 106, 107, 102, 98, 106, 95, 108, 115, 128, 107, 119, 111, 107, 115, 131, 105, 111, 128, 120, 107, 111, 118, 124, 101, 106, 110, 102, 120, 116, 114, 102, 111, 118, 118, 111, 112, 103, 105, 116, 113, 101, 114, 110, 108, 107, 104, 116, 110, 113, 121, 111, 127, 113, 118, 108, 111, 98, 100, 110, 117, 102, 100, 117, 116, 110, 114, 110, 106, 120, 96, 112, 111, 117, 115, 114, 101, 101, 104, 107, 109, 101, 103, 108, 111, 102, 104, 104, 106, 109, 113, 112, 101, 115, 121, 110, 116, 99, 102, 113, 111, 118, 105, 118, 112, 103, 115, 102, 111, 101, 110, 105, 109, 110, 110, 101, 110, 109, 106, 101, 114, 109, 95, 114, 113, 112, 118, 118, 117, 106, 115, 110, 112, 121, 120, 107, 108, 110, 114, 112, 107, 114, 111, 110, 120, 103, 101, 118, 113, 101, 104, 109, 107, 123, 130, 108, 107, 99, 114, 106, 105, 110, 102, 112, 109, 110, 122, 106, 111, 129, 110, 112, 113, 108, 111, 112, 106, 109, 104, 101, 105, 112, 106, 113, 108, 99, 114, 113, 108, 101, 103, 109, 112, 113, 113, 109, 103, 108, 107, 101, 114, 119, 106, 106, 112, 121, 114, 103, 123, 110, 109, 105, 109, 108, 111, 108, 120, 111, 107, 110, 101, 114, 110, 111, 108, 112, 102, 111, 110, 108, 103, 107, 117, 107, 122, 99, 112, 107, 116, 115, 107, 111, 118, 106, 114, 114, 103, 103, 113, 113, 109, 104, 106, 103, 99, 107, 103, 106, 121, 105, 106, 109, 110, 114, 106, 105, 106, 114, 103, 107, 110, 109, 115, 116, 108, 111, 110, 102, 103, 105, 119, 100, 107, 110, 110, 104, 119, 105, 114, 105, 111, 108, 105, 108, 106, 114, 112, 110, 96, 107, 118, 103, 102, 119, 112, 114, 103, 105, 115, 148, 95, 113, 112, 113, 106, 108, 101, 113, 109, 114, 113, 120, 116, 109, 109, 111, 103, 109, 104, 120, 109, 107, 109, 109, 105, 112, 91, 108, 101, 107, 108, 108, 111, 98, 109, 108, 109, 112, 105, 118, 119, 112, 107, 106, 103, 109, 103, 99, 111, 110, 123, 119, 107, 107, 100, 104, 125, 119, 115, 92, 107, 109, 116, 105, 103, 107, 107, 115, 110, 96, 107, 118, 110, 89, 115, 101, 109, 119, 120, 106, 111, 105, 112, 108, 111, 115, 106, 103, 105, 112, 111, 110, 112, 121, 108, 106, 100, 109, 106, 106, 106, 113, 106, 108, 121, 109, 107, 93, 111, 104, 110, 113, 95, 123, 108, 108, 96, 109, 111, 106, 104, 107, 98, 114, 112, 108, 101, 112, 111, 118, 115, 111, 128, 117, 113, 113, 98, 113, 93, 113, 105, 112, 108, 109, 99, 99, 121, 103, 98, 115, 116, 111, 102, 110, 118, 106, 98, 88, 120, 116, 112, 104, 111, 107, 102, 101, 108, 118, 98, 107, 99, 84, 113, 118, 117, 110, 109, 109, 105, 95, 102, 108, 110, 107, 110, 92, 106, 101, 106, 115, 119, 114, 107, 116, 111, 115, 113, 103, 103, 117, 111, 110, 118, 93, 117, 103, 124, 116, 102, 99, 107, 119, 107, 115, 122, 115, 120, 108, 94, 101, 116, 111, 111, 113, 105, 110, 93, 118, 113, 119, 107, 130, 107, 111, 122, 123, 116, 97, 108, 115, 104, 116, 121, 101, 113, 110, 113, 120, 110, 126, 110, 111, 103, 108, 103, 108, 116, 105, 114, 94, 105, 107, 112, 109, 109, 108, 114, 113, 103, 114, 110, 104, 108, 106, 119, 111, 115, 111, 96, 106, 110, 108, 126, 109, 109, 109, 114, 117, 110, 112, 103, 106, 107, 93, 104, 96, 97, 136, 108, 118, 106, 111, 118, 105, 110, 105, 127, 109, 116, 98, 107, 99, 116, 98, 110, 116, 115, 107, 108, 118, 117, 93, 109, 116, 86, 128, 105, 114, 103, 108, 109, 109, 124, 102, 106, 112, 116, 115, 120, 88, 110, 112, 116, 113, 106, 111, 104, 99, 102, 103, 95, 96, 113, 114, 112, 100, 97, 129, 103, 107, 109, 116, 110, 109, 110, 106, 96, 101, 118, 99, 123, 120, 122, 107, 93, 117, 116, 102, 109, 102, 119, 114, 103, 115, 107, 133, 105, 116, 110, 109, 112, 117, 110, 100, 106, 98, 101, 121, 112, 114, 113, 112, 106, 99, 109, 97, 112, 110, 113, 106, 119, 105, 113, 99, 106, 105, 102, 105, 106, 119, 107, 106, 115, 115, 98, 119, 114, 92, 116, 110, 119, 111, 108, 107, 126, 99, 119, 101, 121, 111, 93, 101, 97, 110, 115, 110, 115, 105, 89, 113, 115, 108, 119, 132, 132, 112, 134, 107, 117, 117, 106, 109, 119, 108, 116, 118, 117, 116, 119, 110, 115, 100, 112, 98, 128, 98, 107, 110, 101, 95, 115, 113, 110, 101, 92, 105, 112, 112, 113, 113, 108, 112, 109, 116, 102, 107, 98, 109, 92, 118, 107, 103, 105, 99, 98, 111, 110, 110, 107, 119, 103, 110, 115, 109, 101, 104, 115, 105, 106, 115, 119, 113, 113, 110, 122, 120, 115, 108, 101, 113, 129, 95, 118, 107, 110, 110, 116, 120, 106, 121, 109, 109, 105, 104, 106, 134, 107, 117, 122, 105, 111, 99, 114, 115, 109, 121, 106, 107, 109, 108, 105, 104, 115, 108, 109, 99, 131, 121, 101, 106, 116, 136, 112, 97, 108, 105, 112, 102, 109, 136, 105, 114, 103, 96, 107, 111, 101, 105, 107, 103, 106, 98, 112, 115, 107, 113, 126, 118, 111, 126, 109, 113, 110, 108, 119, 111, 107, 107, 101, 102, 108, 112, 100, 106, 117, 98, 127, 113, 104, 104, 106, 108, 107, 104, 111, 108, 109, 100, 96, 104, 101, 110, 131, 100, 108, 110, 114, 99, 110, 95, 97, 109, 100, 102, 105, 106, 111, 113, 116, 104, 103, 114, 115, 111, 111, 100, 109, 96, 98, 104, 115, 95, 99, 116, 113, 101, 112, 104, 96, 111, 102, 104, 89, 110, 105, 107, 112, 116, 108, 111, 105, 101, 113, 112, 110, 93, 110, 113, 113, 112, 101, 149, 108, 113, 104, 106, 100, 118, 104, 103, 105, 111, 107, 114, 120, 109, 98, 108, 107, 93, 103, 103, 108, 115, 106, 109, 104, 95, 94, 98, 102, 105, 113, 125, 110, 111, 103, 101, 107, 104, 109, 98, 103, 117, 104, 108, 101, 109, 108, 108, 114, 90, 107, 108, 105, 105, 113, 93, 107, 98, 97, 112, 99, 107, 105, 106, 108, 107, 114, 100, 102, 110, 111, 83, 112, 113, 103, 103, 108, 115, 96, 119, 112, 110, 104, 111, 102, 126, 108, 101, 113, 107, 109, 107, 120, 107, 92, 106, 102, 110, 110, 115, 110, 95, 101, 117, 117, 98, 102, 114, 111, 105, 120, 108, 107, 108, 101, 106, 119, 106, 129, 114, 106, 103, 100, 125, 112, 107, 113, 112, 106, 116, 108, 106, 111, 122, 100, 113, 119, 112, 116, 96, 106, 111, 106, 108, 105, 111, 110, 110, 121, 107, 106, 125, 104, 111, 111, 95, 106, 96, 109, 106, 115, 110, 108, 102, 112, 104, 113, 117, 107, 125, 123, 117, 103, 104, 92, 106, 113, 114, 108, 110, 119, 94, 108, 98, 112, 112, 112, 116, 109, 114, 106, 108, 113, 114, 109, 106, 104, 100, 105, 108, 110, 108, 100, 102, 96, 116, 110, 110, 97, 114, 114, 109, 113, 100, 108, 116, 107, 102, 107, 117, 103, 112, 107, 124, 116, 109, 105, 105, 99, 109, 112, 109, 109, 105, 102, 108, 105, 108, 102, 104, 102, 108, 102, 103, 113, 92, 120, 97, 100, 96, 116, 101, 117, 115, 113, 103, 113, 99, 103, 100, 114, 107, 105, 113, 111, 119, 109, 124, 109, 94, 100, 114, 120, 113, 113, 109, 94, 108, 125, 89, 112, 109, 92, 106, 113, 103, 108, 92, 117, 111, 117, 103, 95, 108, 95, 116, 109, 107, 102, 123, 103, 107, 112, 97, 108, 111, 105, 96, 104, 106, 100, 116, 111, 108, 101, 111, 111, 104, 128, 108, 104, 102, 128, 106, 110, 106, 106, 110, 113, 110, 110, 115, 126, 108, 110, 104, 106, 116, 123, 104, 114, 101, 103, 109, 123, 115, 109, 130, 103, 99, 104, 108, 110, 120, 113, 98, 102, 108, 113, 113, 110, 103, 108, 97, 111, 116, 105, 104, 103, 105, 106, 117, 111, 103, 106, 100, 103, 106, 107, 92, 100, 100, 108, 108, 103, 105, 111, 118, 103, 109, 115, 124, 106, 109, 108, 110, 98, 107, 107, 97, 107, 114, 97, 100, 105, 115, 98, 109, 124, 109, 117, 110, 107, 120, 106, 108, 108, 110, 109, 110, 116, 118, 107, 114, 115, 108, 108, 105, 113, 112, 112, 110, 103, 111, 111, 109, 134, 101, 92, 109, 105, 112, 113, 109, 109, 109, 111, 111, 110, 110, 109, 112, 112, 110, 118, 95, 102, 113, 113, 113, 108, 109, 115, 116, 118, 111, 113, 107, 111, 109, 109, 119, 111, 105, 111, 114, 109, 108, 116, 111, 111, 108, 115, 114, 109, 106, 115, 108, 111, 105, 111, 106, 105, 111, 109, 108, 87, 110, 109, 110, 113, 108, 113, 112, 121, 108, 110, 116, 111, 111, 109, 110, 107, 108, 107, 111, 108, 113, 106, 115, 115, 106, 108, 112, 107, 111, 110, 109, 109, 109, 109, 114, 115, 113, 111, 110, 109, 114, 107, 108, 113, 109, 106, 112, 110, 113, 110, 107, 103, 107, 112, 103, 108, 110, 112, 115, 109, 113, 107, 114, 111, 111, 118, 107, 112, 111, 96, 110, 109, 110, 110, 110, 109, 109, 109, 111, 112, 108, 118, 109, 109, 110, 110, 110, 114, 108, 109, 108, 108, 109, 110, 113, 108, 106, 105, 108, 110, 109, 113, 109, 109, 111, 113, 113, 110, 102, 110, 109, 129, 107, 109, 111, 111, 110, 107, 110, 110, 110, 110, 108, 109, 106, 110, 113, 112, 128, 110, 109, 115, 111, 113, 104, 113, 112, 108, 110, 106, 110, 110, 109, 110, 112, 105, 110, 109, 114, 112, 116, 112, 109, 110, 111, 108, 107, 112, 109, 113, 109, 109, 103, 114, 110, 107, 112, 112, 107, 104, 110, 110, 111, 108, 111, 117, 110, 118, 108, 108, 113, 109, 112, 111, 106, 108, 108, 110, 111, 111, 112, 110, 116, 104, 113, 113, 112, 108, 112, 111, 110, 108, 113, 108, 112, 113, 113, 112, 113, 107, 109, 111, 112, 109, 106, 112, 112, 108, 111, 113, 107, 107, 110, 109, 112, 111, 110, 107, 111, 97, 111, 102, 109, 111, 111, 104, 107, 108, 107, 112, 110, 114, 98, 107, 107, 115, 112, 112, 106, 114, 108, 104, 107, 110, 111, 115, 108, 111, 107, 108, 111, 106, 109, 109, 109, 113, 114, 109, 110, 110, 114, 113, 105, 103, 110, 108, 112, 111, 108, 108, 113, 101, 106, 108, 110, 111, 125, 110, 112, 112, 112, 111, 109, 110, 113, 112, 109, 108, 115, 109, 109, 111, 109, 111, 112, 124, 110, 112, 110, 108, 103, 95, 113, 108, 114, 107, 110, 107, 109, 112, 109, 111, 109, 96, 113, 118, 110, 108, 106, 111, 113, 114, 108, 110, 110, 108, 111, 100, 118, 113, 107, 105, 107, 107, 109, 109, 109, 111, 111, 104, 109, 112, 107, 109, 107, 107, 107, 110, 112, 109, 109, 109, 111, 107, 110, 111, 109, 108, 110, 110, 108, 109, 105, 111, 109, 110, 119, 115, 112, 107, 112, 107, 111, 106, 107, 109, 107, 111, 114, 104, 114, 106, 109, 112, 110, 105, 109, 111, 114, 115, 112, 113, 113, 111, 112, 110, 108, 114, 107, 116, 108, 113, 111, 116, 112, 110, 107, 109, 115, 109, 109, 108, 112, 108, 104, 108, 110, 109, 107, 107, 111, 108, 108, 107, 110, 111, 112, 110, 109, 110, 111, 113, 108, 118, 111, 113, 112, 111, 111, 114, 108, 107, 109, 110, 106, 122, 112, 116, 109, 111, 118, 97, 103, 105, 106, 95, 90, 102, 84, 102, 115, 112, 96, 122, 92, 101, 100, 117, 108, 115, 114, 111, 123, 108, 118, 103, 129, 116, 113, 111, 92, 98, 94, 106, 109, 106, 103, 110, 112, 110, 100, 97, 120, 101, 102, 109, 117, 102, 105, 108, 92, 110, 109, 121, 106, 112, 77, 109, 110, 111, 108, 122, 120, 115, 116, 105, 99, 115, 106, 99, 106, 110, 110, 86, 117, 106, 94, 118, 104, 123, 125, 121, 98, 104, 101, 110, 103, 101, 122, 103, 111, 119, 93, 115, 95, 92, 119, 104, 114, 106, 101, 107, 98, 115, 113, 116, 111, 104, 106, 103, 113, 111, 117, 106, 103, 112, 99, 106, 112, 113, 75, 110, 119, 94, 108, 95, 113, 114, 110, 102, 117, 115, 119, 115, 91, 86, 107, 106, 95, 110, 117, 98, 119, 110, 111, 85, 108, 122, 113, 109, 104, 101, 119, 102, 102, 109, 108, 111, 104, 125, 119, 109, 119, 112, 103, 105, 97, 108, 108, 118, 112, 116, 93, 117, 107, 115, 106, 108, 110, 110, 106, 112, 105, 116, 116, 115, 110, 121, 95, 92, 104, 105, 126, 112, 105, 100, 100, 117, 120, 108, 117, 87, 106, 108, 112, 111, 83, 107, 106, 103, 104, 95, 110, 117, 121, 103, 105, 110, 112, 97, 111, 109, 92, 107, 82, 106, 120, 121, 105, 95, 112, 118, 113, 107, 112, 110, 117, 106, 114, 96, 108, 87, 133, 97, 100, 112, 112, 120, 88, 111, 106, 111, 106, 111, 106, 114, 99, 114, 118, 108, 116, 110, 120, 108, 99, 110, 105, 114, 114, 113, 86, 79, 122, 114, 123, 120, 110, 115, 101, 106, 110, 117, 112, 115, 101, 128, 112, 110, 107, 120, 116, 112, 118, 109, 113, 108, 99, 118, 99, 114, 113, 99, 107, 120, 114, 124, 106, 106, 111, 80, 110, 106, 84, 109, 119, 118, 108, 114, 106, 107, 112, 110, 114, 102, 109, 113, 90, 107, 114, 112, 110, 113, 107, 107, 103, 106, 88, 97, 107, 103, 105, 100, 111, 112, 114, 111, 89, 107, 106, 102, 115, 103, 108, 111, 95, 114, 106, 122, 95, 71, 120, 102, 118, 112, 107, 107, 115, 111, 109, 89, 93, 109, 118, 115, 113, 115, 110, 105, 118, 117, 117, 105, 113, 112, 109, 98, 104, 106, 89, 112, 107, 106, 106, 111, 114, 102, 109, 99, 111, 104, 95, 104, 110, 120, 115, 118, 93, 105, 111, 108, 107, 122, 118, 111, 102, 113, 94, 100, 105, 109, 109, 110, 106, 115, 115, 114, 114, 121, 106, 119, 95, 118, 118, 113, 100, 112, 109, 114, 112, 101, 109, 109, 92, 112, 110, 116, 112, 92, 106, 114, 119, 121, 116, 108, 120, 113, 112, 112, 113, 113, 108, 102, 112, 93, 98, 106, 113, 83, 103, 95, 107, 109, 93, 106, 104, 106, 119, 105, 107, 125, 111, 104, 122, 97, 107, 124, 117, 113, 106, 70, 103, 108, 105, 117, 110, 101, 109, 104, 114, 77, 102, 100, 109, 109, 104, 102, 119, 105, 105, 102, 112, 107, 114, 113, 100, 129, 114, 112, 112, 110, 109, 113, 106, 108, 115, 99, 113, 112, 105, 105, 113, 116, 105, 112, 119, 117, 109, 116, 109, 112, 106, 108, 107, 103, 108, 118, 112, 110, 108, 119, 111, 107, 102, 105, 109, 108, 112, 111, 108, 111, 108, 109, 102, 111, 115, 116, 119, 107, 111, 108, 106, 111, 101, 112, 108, 113, 110, 108, 117, 118, 96, 113, 115, 110, 112, 111, 119, 102, 100, 116, 112, 106, 119, 117, 114, 112, 116, 89, 112, 110, 114, 111, 111, 112, 114, 112, 114, 114, 108, 109, 117, 116, 123, 109, 109, 106, 97, 109, 102, 116, 115, 110, 111, 116, 119, 120, 113, 125, 112, 115, 109, 109, 113, 111, 107, 122, 107, 148, 109, 109, 103, 120, 115, 113, 117, 113, 132, 106, 109, 115, 99, 110, 113, 107, 120, 141, 119, 109, 113, 107, 116, 113, 106, 102, 110, 118, 119, 108, 111, 103, 105, 114, 112, 109, 106, 106, 110, 107, 107, 101, 111, 107, 118, 109, 96, 108, 112, 105, 110, 106, 98, 112, 109, 115, 102, 110, 110, 112, 113, 106, 110, 110, 106, 108, 102, 108, 111, 114, 107, 105, 91, 109, 96, 112, 109, 108, 130, 108, 108, 101, 113, 115, 117, 106, 113, 119, 105, 112, 108, 121, 103, 114, 119, 111, 101, 138, 108, 109, 107, 109, 106, 109, 109, 112, 112, 108, 109, 119, 110, 110, 124, 124, 118, 113, 123, 107, 114, 110, 96, 112, 102, 97, 105, 113, 116, 104, 110, 134, 103, 106, 117, 110, 108, 113, 109, 118, 109, 111, 113, 118, 117, 107, 111, 118, 123, 105, 110, 115, 112, 121, 115, 114, 116, 106, 109, 107, 104, 107, 107, 111, 103, 112, 115, 107, 119, 107, 112, 111, 106, 108, 113, 121, 109, 109, 107, 109, 112, 114, 114, 117, 117, 102, 115, 109, 107, 114, 111, 112, 109, 106, 111, 111, 98, 115, 108, 110, 108, 107, 112, 108, 105, 103, 109, 114, 109, 112, 108, 113, 110, 113, 111, 109, 106, 106, 111, 111, 108, 112, 111, 108, 99, 107, 109, 103, 119, 105, 113, 111, 112, 114, 111, 103, 118, 106, 114, 109, 100, 96, 113, 115, 136, 99, 113, 108, 110, 109, 120, 111, 110, 113, 110, 109, 106, 110, 110, 116, 115, 110, 93, 99, 119, 108, 107, 113, 103, 109, 110, 107, 111, 112, 108, 104, 102, 105, 110, 113, 109, 108, 120, 92, 105, 122, 111, 110, 121, 109, 117, 100, 104, 105, 108, 111, 106, 118, 100, 107, 113, 95, 111, 107, 113, 113, 95, 116, 115, 105, 114, 107, 112, 124, 113, 116, 113, 102, 119, 108, 107, 111, 103, 101, 110, 109, 108, 110, 112, 110, 110, 111, 109, 106, 115, 104, 108, 100, 116, 110, 119, 112, 107, 131, 119, 108, 119, 106, 114, 108, 111, 106, 109, 109, 110, 96, 120, 109, 115, 123, 112, 104, 108, 121, 106, 105, 113, 117, 107, 105, 102, 112, 104, 107, 111, 108, 106, 107, 114, 109, 121, 109, 108, 122, 110, 117, 110, 112, 114, 112, 111, 122, 99, 114, 129, 116, 108, 98, 103, 110, 100, 110, 103, 110, 111, 105, 112, 110, 123, 102, 114, 118, 105, 109, 113, 116, 106, 101, 110, 107, 107, 104, 101, 111, 118, 112, 113, 117, 108, 111, 111, 109, 110, 109, 117, 107, 101, 108, 111, 104, 110, 108, 102, 109, 127, 104, 120, 115, 107, 102, 120, 113, 128, 116, 116, 101, 107, 110, 113, 113, 97, 132, 120, 116, 101, 109, 103, 98, 108, 107, 107, 112, 106, 109, 113, 110, 103, 107, 110, 109, 103, 115, 117, 108, 85, 106, 120, 111, 114, 114, 110, 111, 111, 106, 111, 102, 108, 113, 115, 102, 112, 121, 113, 109, 108, 112, 112, 104, 114, 114, 104, 108, 107, 110, 113, 103, 113, 112, 112, 107, 106, 106, 112, 115, 119, 118, 110, 104, 113, 110, 105, 113, 109, 106, 122, 115, 99, 97, 105, 113, 114, 108, 110, 119, 114, 104, 112, 109, 105, 108, 126, 116, 112, 97, 116, 113, 105, 106, 112, 101, 109, 105, 106, 115, 106, 98, 110, 101, 100, 112, 108, 93, 113, 96, 117, 108, 108, 130, 105, 108, 116, 122, 102, 114, 113, 110, 112, 105, 110, 110, 111, 123, 107, 119, 108, 105, 101, 107, 105, 120, 115, 115, 117, 111, 96, 111, 129, 111, 108, 113, 117, 99, 115, 113, 108, 107, 107, 113, 109, 106, 101, 110, 138, 115, 108, 106, 106, 115, 116, 112, 115, 124, 109, 104, 94, 107, 107, 115, 106, 115, 114, 110, 117, 107, 112, 119, 101, 116, 111, 119, 109, 115, 110, 102, 126, 114, 112, 113, 139, 113, 107, 113, 117, 111, 117, 113, 103, 159, 114, 115, 101, 109, 116, 122, 104, 109, 112, 111, 96, 109, 103, 113, 121, 104, 138, 101, 108, 110, 115, 106, 118, 89, 129, 95, 105, 122, 108, 114, 118, 118, 103, 105, 100, 125, 107, 121, 110, 158, 113, 123, 100, 114, 110, 108, 102, 113, 107, 109, 125, 104, 101, 109, 91, 91, 106, 112, 118, 107, 94, 104, 114, 107, 105, 116, 108, 113, 112, 104, 106, 101, 111, 106, 110, 108, 108, 106, 109, 114, 106, 106, 112, 112, 108, 111, 103, 108, 117, 118, 112, 107, 111, 116, 112, 108, 117, 111, 124, 112, 113, 112, 113, 104, 111, 100, 110, 117, 104, 104, 112, 119, 121, 123, 109, 108, 147, 126, 107, 121, 110, 113, 117, 116, 108, 114, 106, 104, 107, 106, 116, 110, 112, 117, 99, 113, 109, 103, 111, 109, 112, 106, 105, 116, 106, 112, 95, 108, 113, 111, 112, 109, 133, 109, 114, 100, 117, 108, 104, 105, 110, 106, 107, 112, 111, 112, 101, 109, 99, 116, 129, 115, 111, 94, 121, 113, 112, 100, 109, 110, 113, 106, 108, 108, 114, 88, 109, 110, 126, 104, 127, 116, 112, 111, 112, 86, 126, 109, 133, 115, 121, 104, 116, 107, 115, 101, 116, 109, 109, 116, 109, 108, 117, 114, 109, 102, 102, 103, 123, 109, 106, 119, 121, 116, 99, 107, 118, 118, 97, 111, 114, 115, 106, 108, 111, 113, 110, 119, 116, 112, 105, 108, 106, 109, 116, 100, 113, 104, 105, 111, 111, 120, 103, 107, 102, 113, 124, 115, 98, 110, 104, 120, 108, 111, 105, 99, 106, 34, 111, 113, 109, 107, 110, 92, 109, 103, 106, 108, 106, 117, 113, 114, 110, 112, 116, 114, 110, 109, 102, 95, 107, 115, 103, 124, 111, 108, 122, 132, 118, 116, 113, 98, 109, 107, 115, 112, 113, 114, 105, 117, 109, 120, 109, 109, 109, 107, 109, 109, 108, 117, 116, 110, 109, 112, 108, 112, 105, 120, 116, 101, 113, 111, 107, 102, 111, 112, 117, 112, 105, 107, 112, 123, 114, 129, 109, 119, 109, 99, 108, 106, 106, 112, 98, 113, 108, 103, 110, 113, 111, 100, 106, 113, 115, 105, 108, 109, 114, 114, 116, 115, 112, 114, 107, 114, 112, 100, 115, 112, 113, 105, 104, 105, 113, 109, 121, 110, 110, 93, 110, 109, 106, 111, 102, 103, 105, 106, 115, 113, 114, 109, 115, 111, 112, 112, 108, 113, 108, 106, 127, 103, 109, 109, 111, 116, 108, 106, 110, 108, 100, 107, 110, 103, 112, 106, 113, 117, 41, 115, 120, 110, 108, 108, 112, 106, 111, 94, 110, 119, 100, 105, 110, 111, 114, 112, 117, 115, 104, 103, 107, 112, 115, 109, 111, 110, 113, 109, 105, 115, 111, 108, 116, 110, 112, 109, 118, 109, 119, 116, 119, 108, 113, 109, 112, 110, 114, 120, 109, 115, 111, 100, 115, 111, 103, 112, 101, 99, 124, 111, 105, 108, 110, 108, 109, 107, 112, 108, 105, 97, 114, 108, 107, 110, 100, 105, 114, 118, 111, 107, 110, 111, 108, 108, 109, 101, 101, 113, 106, 116, 113, 124, 112, 116, 116, 108, 106, 110, 103, 114, 106, 104, 112, 113, 122, 108, 106, 100, 107, 113, 108, 121, 112, 116, 108, 116, 103, 105, 122, 114, 107, 116, 112, 112, 110, 117, 104, 124, 117, 111, 119, 106, 100, 104, 106, 108, 111, 105, 97, 113, 107, 113, 106, 107, 107, 106, 112, 121, 119, 101, 96, 114, 107, 104, 116, 116, 110, 112, 108, 113, 105, 111, 115, 107, 108, 117, 111, 120, 108, 110, 111, 115, 106, 110, 104, 115, 113, 106, 112, 106, 105, 113, 111, 112, 106, 109, 82, 104, 113, 112, 112, 115, 111, 107, 107, 114, 107, 102, 113, 109, 97, 113, 111, 119, 102, 114, 94, 117, 129, 103, 103, 108, 110, 109, 103, 118, 113, 110, 114, 111, 108, 107, 109, 113, 108, 106, 102, 112, 103, 107, 109, 111, 119, 104, 103, 107, 108, 103, 102, 108, 111, 115, 109, 115, 112, 108, 106, 108, 109, 114, 111, 104, 107, 119, 109, 119, 107, 116, 114, 112, 112, 91, 109, 113, 95, 109, 118, 105, 112, 112, 106, 102, 112, 109, 102, 108, 108, 85, 110, 109, 112, 111, 86, 110, 107, 113, 112, 114, 103, 118, 111, 112, 115, 112, 107, 108, 109, 114, 114, 107, 107, 105, 116, 116, 104, 110, 114, 100, 101, 108, 112, 106, 108, 113, 109, 107, 108, 114, 108, 110, 109, 110, 106, 108, 108, 111, 110, 112, 113, 111, 106, 96, 100, 108, 104, 109, 110, 112, 115, 112, 110, 108, 110, 109, 113, 110, 110, 113, 100, 129, 117, 108, 107, 112, 106, 107, 108, 109, 108, 107, 110, 113, 107, 111, 105, 106, 110, 113, 107, 110, 109, 110, 103, 109, 107, 110, 122, 111, 111, 111, 107, 111, 117, 108, 112, 108, 113, 109, 113, 110, 109, 109, 111, 105, 112, 108, 108, 106, 118, 111, 106, 111, 113, 108, 108, 108, 111, 112, 113, 110, 115, 113, 112, 114, 114, 112, 114, 106, 113, 109, 106, 112, 109, 109, 106, 111, 112, 113, 108, 109, 114, 109, 112, 107, 113, 111, 103, 108, 113, 112, 102, 110, 111, 74, 111, 114, 108, 111, 109, 111, 113, 111, 109, 110, 114, 108, 107, 107, 109, 105, 121, 107, 111, 110, 108, 107, 110, 109, 109, 112, 111, 114, 107, 114, 110, 111, 114, 111, 114, 112, 113, 108, 111, 105, 108, 110, 113, 114, 107, 113, 107, 112, 109, 109, 119, 113, 113, 104, 110, 108, 114, 112, 111, 110, 111, 112, 111, 109, 111, 115, 107, 109, 110, 112, 106, 110, 111, 115, 115, 108, 111, 109, 110, 100, 109, 112, 107, 106, 106, 109, 106, 112, 112, 117, 109, 109, 114, 110, 100, 113, 114, 104, 110, 109, 114, 105, 112, 111, 113, 111, 109, 117, 109, 110, 111, 110, 111, 111, 108, 112, 113, 106, 112, 110, 104, 112, 102, 110, 112, 106, 113, 111, 113, 106, 111, 110, 109, 110, 106, 109, 112, 112, 106, 115, 114, 109, 113, 115, 116, 113, 109, 99, 108, 110, 113, 112, 113, 112, 111, 109, 110, 111, 103, 108, 111, 110, 107, 109, 108, 109, 109, 100, 112, 117, 108, 116, 110, 110, 112, 110, 111, 111, 110, 110, 111, 113, 110, 105, 124, 112, 109, 109, 113, 110, 97, 110, 112, 114, 109, 112, 107, 109, 105, 111, 114, 106, 110, 111, 110, 107, 112, 107, 113, 116, 112, 112, 109, 113, 110, 110, 112, 110, 92, 112, 112, 99, 119, 113, 114, 109, 118, 110, 112, 112, 120, 111, 107, 113, 111, 109, 112, 140, 112, 107, 127, 110, 115, 111, 92, 112, 101, 113, 110, 108, 117, 110, 110, 112, 109, 108, 111, 114, 94, 109, 107, 114, 112, 109, 113, 111, 111, 108, 109, 115, 109, 109, 116, 109, 113, 108, 112, 111, 106, 112, 106, 111, 108, 112, 116, 110, 109, 109, 105, 114, 108, 107, 110, 115, 99, 107, 109, 108, 110, 109, 111, 108, 117, 113, 113, 112, 115, 111, 110, 109, 111, 109, 116, 113, 103, 111, 111, 108, 109, 98, 108, 115, 109, 107, 110, 108, 112, 109, 113, 109, 114, 108, 113, 109, 115, 98, 108, 110, 107, 119, 110, 120, 107, 110, 113, 108, 113, 113, 111, 109, 110, 109, 113, 115, 108, 109, 109, 112, 112, 106, 114, 110, 111, 116, 108, 111, 116, 108, 109, 107, 115, 112, 114, 107, 114, 111, 119, 100, 106, 121, 113, 105, 108, 110, 115, 125, 111, 111, 127, 104, 114, 115, 105, 105, 116, 121, 110, 105, 100, 108, 108, 112, 111, 118, 109, 114, 106, 107, 108, 110, 118, 107, 114, 108, 116, 117, 102, 103, 106, 114, 101, 103, 114, 122, 104, 107, 107, 99, 110, 110, 116, 105, 109, 119, 118, 113, 109, 109, 116, 114, 103, 108, 101, 120, 108, 118, 112, 114, 110, 109, 114, 116, 115, 113, 108, 113, 112, 108, 106, 125, 111, 108, 114, 112, 108, 106, 112, 107, 93, 110, 118, 112, 108, 111, 114, 120, 115, 113, 96, 110, 116, 115, 116, 113, 107, 107, 105, 111, 104, 110, 111, 107, 121, 108, 105, 109, 117, 106, 108, 112, 106, 122, 106, 108, 107, 116, 117, 104, 102, 108, 113, 117, 98, 93, 95, 112, 108, 109, 106, 103, 113, 107, 99, 113, 109, 103, 99, 111, 101, 102, 119, 112, 111, 120, 125, 121, 105, 109, 110, 108, 113, 100, 117, 115, 120, 110, 119, 117, 113, 121, 111, 104, 110, 114, 115, 113, 108, 109, 121, 113, 112, 117, 114, 115, 106, 109, 112, 116, 117, 118, 109, 116, 111, 109, 116, 120, 99, 113, 108, 109, 114, 111, 104, 108, 106, 109, 111, 114, 111, 111, 105, 107, 109, 115, 114, 125, 107, 107, 120, 114, 106, 114, 114, 109, 113, 111, 99, 102, 106, 115, 100, 122, 116, 105, 111, 101, 115, 115, 118, 109, 108, 110, 99, 106, 106, 96, 109, 103, 114, 111, 113, 117, 105, 108, 112, 114, 109, 106, 106, 109, 118, 110, 117, 112, 116, 109, 109, 111, 108, 108, 115, 103, 112, 113, 115, 104, 99, 115, 107, 110, 116, 110, 112, 112, 108, 119, 120, 119, 106, 103, 119, 114, 122, 105, 110, 114, 110, 114, 112, 110, 113, 99, 125, 109, 107, 118, 110, 112, 111, 104, 107, 111, 119, 100, 117, 111, 97, 110, 106, 119, 101, 117, 103, 107, 104, 103, 111, 110, 119, 114, 102, 109, 104, 106, 114, 98, 116, 106, 107, 111, 95, 110, 116, 111, 114, 110, 104, 108, 114, 114, 93, 109, 111, 102, 112, 117, 111, 116, 99, 115, 115, 114, 102, 99, 100, 106, 101, 117, 103, 116, 103, 116, 108, 102, 105, 112, 106, 111, 89, 116, 119, 116, 111, 105, 109, 116, 109, 110, 109, 109, 103, 108, 109, 113, 113, 106, 105, 118, 111, 124, 112, 105, 114, 105, 108, 117, 116, 107, 118, 113, 103, 108, 101, 109, 112, 110, 107, 117, 110, 137, 106, 109, 113, 116, 113, 115, 107, 113, 108, 110, 111, 113, 119, 110, 111, 112, 112, 110, 109, 115, 118, 111, 115, 108, 106, 107, 98, 110, 114, 109, 88, 107, 112, 111, 111, 108, 127, 110, 112, 111, 109, 112, 117, 115, 109, 107, 111, 105, 111, 115, 110, 105, 116, 100, 110, 112, 116, 104, 112, 115, 107, 112, 112, 108, 106, 107, 114, 103, 110, 110, 112, 118, 107, 104, 104, 111, 109, 115, 105, 111, 124, 112, 116, 104, 104, 116, 107, 112, 96, 101, 101, 111, 114, 102, 105, 101, 110, 105, 105, 109, 102, 112, 114, 110, 110, 109, 104, 106, 107, 114, 111, 105, 123, 99, 111, 130, 110, 114, 114, 107, 113, 107, 113, 109, 100, 106, 114, 106, 116, 102, 114, 104, 109, 113, 114, 119, 107, 106, 111, 104, 102, 116, 105, 117, 112, 114, 114, 113, 106, 113, 109, 109, 113, 110, 119, 107, 101, 111, 99, 105, 111, 109, 109, 113, 107, 94, 107, 102, 104, 101, 98, 113, 111, 108, 107, 108, 102, 106, 95, 105, 115, 108, 117, 106, 108, 116, 103, 110, 78, 106, 109, 110, 111, 106, 143, 116, 112, 108, 104, 84, 101, 107, 116, 111, 114, 113, 118, 109, 141, 103, 108, 114, 109, 105, 99, 100, 110, 117, 114, 101, 109, 106, 97, 101, 128, 104, 114, 108, 95, 101, 88, 112, 110, 106, 113, 107, 105, 94, 115, 107, 109, 111, 104, 114, 115, 106, 119, 118, 110, 101, 103, 104, 110, 110, 101, 114, 107, 110, 111, 97, 109, 124, 110, 100, 109, 105, 117, 112, 120, 111, 106, 115, 111, 122, 116, 99, 106, 115, 119, 98, 116, 113, 116, 112, 109, 116, 111, 104, 112, 118, 109, 109, 105, 110, 99, 109, 128, 99, 122, 115, 113, 113, 102, 107, 95, 120, 115, 104, 112, 108, 109, 99, 103, 95, 114, 145, 108, 110, 125, 108, 118, 116, 109, 111, 104, 114, 104, 98, 111, 116, 100, 114, 112, 117, 80, 114, 113, 104, 111, 115, 114, 112, 103, 118, 107, 117, 117, 105, 108, 97, 112, 112, 100, 104, 117, 112, 97, 97, 116, 120, 102, 107, 105, 103, 112, 105, 108, 108, 87, 122, 107, 114, 110, 97, 113, 102, 114, 106, 100, 98, 85, 90, 108, 116, 114, 107, 113, 109, 93, 105, 104, 114, 112, 103, 100, 109, 105, 104, 119, 106, 107, 104, 102, 106, 110, 105, 107, 102, 114, 110, 97, 116, 101, 110, 107, 111, 126, 112, 112, 109, 107, 105, 116, 111, 109, 98, 112, 111, 107, 103, 119, 96, 103, 127, 100, 116, 107, 96, 114, 113, 113, 111, 101, 110, 110, 114, 105, 110, 113, 119, 107, 110, 108, 112, 109, 117, 103, 123, 108, 110, 105, 123, 109, 104, 101, 102, 104, 108, 104, 113, 111, 109, 105, 104, 102, 99, 107, 110, 122, 109, 109, 105, 118, 107, 117, 113, 109, 101, 98, 108, 112, 109, 109, 116, 109, 121, 109, 106, 109, 130, 109, 107, 105, 117, 105, 110, 107, 105, 114, 109, 111, 112, 98, 130, 109, 108, 111, 109, 103, 109, 112, 97, 107, 107, 112, 103, 120, 86, 104, 109, 114, 122, 107, 90, 106, 99, 107, 101, 111, 103, 115, 110, 104, 127, 110, 118, 123, 103, 103, 114, 110, 112, 105, 113, 113, 107, 107, 111, 106, 98, 110, 102, 128, 113, 112, 113, 104, 102, 102, 103, 113, 109, 104, 119, 108, 119, 117, 114, 101, 112, 114, 110, 174, 111, 109, 107, 116, 110, 111, 102, 124, 110, 107, 102, 114, 104, 102, 107, 106, 104, 107, 95, 111, 104, 126, 111, 109, 117, 102, 110, 105, 114, 113, 109, 126, 110, 115, 115, 127, 112, 107, 105, 111, 103, 97, 108, 116, 106, 106, 99, 109, 118, 106, 117, 115, 105, 100, 108, 102, 111, 111, 112, 105, 113, 117, 110, 117, 121, 108, 108, 105, 109, 122, 103, 99, 113, 111, 110, 117, 120, 107, 112, 107, 112, 111, 110, 112, 117, 109, 107, 116, 108, 107, 111, 109, 111, 110, 115, 108, 120, 106, 106, 110, 107, 107, 108, 109, 109, 114, 103, 103, 119, 113, 110, 102, 117, 117, 110, 113, 113, 113, 106, 112, 122, 101, 117, 100, 109, 104, 104, 112, 120, 115, 109, 114, 120, 113, 108, 105, 111, 111, 124, 118, 108, 111, 108, 109, 112, 108, 113, 109, 105, 113, 115, 110, 118, 109, 119, 116, 112, 112, 109, 114, 108, 109, 114, 119, 104, 105, 106, 106, 108, 105, 113, 119, 104, 117, 106, 114, 115, 113, 107, 117, 115, 102, 105, 117, 122, 109, 109, 111, 108, 103, 106, 107, 116, 110, 104, 115, 104, 114, 100, 114, 106, 111, 118, 112, 107, 101, 112, 109, 108, 111, 114, 112, 113, 118, 111, 115, 107, 115, 105, 110, 107, 115, 105, 115, 113, 113, 109, 111, 100, 107, 115, 107, 115, 111, 107, 110, 124, 108, 118, 110, 110, 112, 108, 104, 116, 110, 110, 115, 99, 113, 115, 108, 113, 107, 111, 107, 110, 113, 109, 117, 115, 110, 112, 113, 109, 102, 117, 116, 113, 114, 109, 110, 116, 117, 112, 112, 113, 106, 116, 118, 107, 114, 113, 114, 110, 111, 116, 114, 117, 111, 113, 115, 117, 117, 108, 115, 109, 115, 118, 104, 113, 117, 114, 106, 111, 117, 108, 119, 109, 112, 107, 117, 118, 103, 120, 113, 113, 111, 105, 114, 107, 116, 110, 116, 107, 119, 114, 113, 113, 110, 107, 106, 112, 106, 112, 103, 113, 116, 100, 105, 105, 118, 114, 110, 115, 112, 120, 103, 107, 115, 111, 109, 120, 113, 119, 111, 109, 126, 116, 108, 112, 117, 96, 118, 101, 108, 118, 107, 112, 113, 104, 111, 111, 108, 116, 108, 119, 103, 115, 111, 120, 106, 109, 104, 107, 115, 107, 115, 118, 118, 111, 117, 107, 114, 114, 111, 110, 105, 103, 115, 109, 122, 126, 111, 116, 108, 113, 107, 121, 101, 121, 110, 102, 114, 104, 113, 115, 111, 111, 106, 110, 108, 109, 111, 114, 109, 107, 115, 107, 116, 118, 96, 102, 111, 114, 120, 115, 108, 103, 110, 112, 101, 104, 108, 117, 114, 113, 114, 104, 109, 110, 100, 119, 114, 111, 115, 108, 100, 110, 108, 108, 120, 118, 112, 115, 107, 114, 104, 103, 105, 109, 109, 106, 115, 113, 104, 114, 110, 117, 111, 112, 110, 113, 108, 116, 110, 111, 111, 122, 110, 111, 105, 113, 108, 114, 111, 108, 118, 107, 116, 108, 114, 108, 113, 105, 112, 107, 120, 114, 107, 113, 117, 116, 110, 106, 107, 115, 108, 111, 107, 107, 119, 111, 114, 114, 114, 114, 119, 103, 103, 112, 109, 104, 114, 101, 113, 101, 109, 110, 113, 106, 111, 112, 124, 111, 108, 106, 117, 121, 115, 106, 110, 110, 113, 107, 105, 109, 108, 113, 113, 112, 95, 111, 107, 111, 110, 103, 102, 114, 107, 102, 111, 110, 112, 107, 111, 112, 105, 117, 110, 105, 111, 109, 109, 114, 105, 112, 114, 116, 105, 101, 113, 107, 111, 111, 100, 112, 111, 103, 114, 113, 103, 112, 111, 110, 111, 107, 111, 108, 116, 111, 111, 107, 106, 112, 115, 107, 107, 104, 112, 113, 109, 112, 108, 110, 110, 114, 113, 101, 108, 104, 108, 108, 116, 109, 107, 112, 113, 111, 112, 114, 109, 113, 110, 112, 113, 112, 106, 114, 112, 105, 107, 107, 110, 113, 110, 106, 109, 113, 112, 111, 111, 111, 109, 107, 115, 118, 118, 112, 108, 110, 111, 111, 114, 109, 112, 107, 111, 107, 109, 114, 104, 110, 106, 108, 111, 112, 112, 105, 117, 111, 108, 110, 110, 107, 105, 111, 112, 109, 109, 102, 104, 105, 109, 107, 104, 112, 107, 117, 114, 111, 107, 111, 104, 99, 113, 109, 108, 112, 110, 97, 110, 110, 112, 113, 110, 97, 104, 121, 111, 109, 109, 112, 105, 117, 118, 115, 98, 109, 115, 110, 110, 111, 114, 108, 108, 122, 110, 108, 115, 112, 113, 114, 110, 110, 96, 107, 107, 110, 113, 109, 110, 109, 109, 104, 124, 103, 111, 114, 109, 112, 111, 111, 114, 115, 102, 114, 113, 109, 113, 91, 118, 112, 103, 108, 118, 109, 118, 111, 99, 109, 108, 110, 110, 108, 111, 109, 114, 108, 109, 117, 94, 113, 111, 107, 110, 116, 108, 113, 116, 112, 108, 109, 105, 111, 107, 117, 106, 95, 113, 114, 108, 111, 118, 113, 112, 114, 117, 107, 109, 125, 117, 102, 109, 104, 111, 113, 112, 109, 117, 111, 104, 109, 116, 118, 108, 104, 114, 110, 111, 114, 112, 113, 111, 105, 114, 114, 113, 111, 109, 115, 111, 112, 112, 102, 113, 111, 97, 110, 111, 104, 121, 102, 109, 105, 108, 101, 109, 113, 106, 112, 112, 113, 107, 104, 112, 104, 107, 100, 106, 107, 110, 114, 115, 103, 114, 118, 110, 106, 108, 103, 108, 110, 113, 120, 112, 104, 109, 117, 107, 115, 109, 112, 94, 121, 110, 108, 110, 108, 116, 111, 113, 114, 114, 111, 116, 113, 113, 106, 109, 110, 103, 104, 102, 101, 101, 109, 111, 115, 111, 113, 109, 110, 109, 114, 116, 106, 112, 85, 117, 112, 115, 105, 108, 110, 104, 112, 115, 112, 109, 106, 117, 119, 147, 123, 108, 113, 117, 107, 110, 110, 111, 99, 108, 113, 110, 100, 110, 108, 106, 107, 110, 115, 110, 111, 109, 115, 106, 111, 110, 108, 119, 110, 105, 113, 114, 110, 106, 105, 109, 110, 100, 109, 110, 116, 122, 100, 103, 104, 114, 116, 108, 117, 106, 109, 111, 109, 111, 112, 102, 113, 92, 111, 109, 115, 110, 107, 113, 110, 115, 106, 113, 110, 97, 112, 105, 106, 110, 100, 108, 110, 114, 109, 103, 111, 109, 118, 123, 105, 107, 117, 117, 118, 106, 115, 106, 107, 106, 109, 107, 111, 108, 116, 109, 108, 105, 105, 112, 119, 107, 110, 126, 111, 108, 108, 107, 111, 106, 109, 115, 108, 109, 112, 107, 110, 113, 97, 106, 109, 112, 106, 102, 105, 111, 127, 109, 108, 106, 111, 126, 117, 110, 105, 95, 85, 104, 108, 112, 110, 111, 111, 110, 114, 104, 110, 111, 109, 114, 103, 98, 107, 112, 105, 106, 118, 114, 117, 102, 108, 112, 113, 100, 109, 107, 64, 110, 96, 108, 112, 137, 113, 110, 109, 116, 112, 111, 109, 113, 115, 97, 107, 105, 116, 112, 111, 109, 105, 105, 105, 118, 109, 109, 107, 104, 106, 110, 105, 112, 113, 108, 107, 115, 114, 107, 105, 115, 110, 106, 105, 114, 107, 126, 106, 112, 108, 103, 108, 116, 114, 119, 114, 91, 94, 111, 117, 110, 109, 103, 103, 101, 114, 111, 117, 109, 105, 100, 107, 98, 107, 109, 106, 110, 111, 112, 102, 113, 107, 110, 105, 106, 108, 126, 112, 87, 109, 109, 104, 112, 112, 110, 112, 111, 115, 114, 109, 111, 118, 109, 101, 111, 116, 102, 106, 112, 104, 112, 116, 112, 116, 107, 109, 110, 110, 121, 109, 109, 99, 114, 111, 108, 100, 112, 112, 108, 107, 112, 110, 108, 109, 103, 98, 115, 109, 110, 110, 109, 108, 111, 107, 113, 127, 109, 109, 109, 133, 112, 113, 107, 120, 118, 109, 96, 109, 116, 106, 103, 106, 105, 146, 115, 111, 108, 97, 107, 114, 99, 110, 112, 112, 106, 107, 89, 109, 112, 115, 110, 111, 107, 105, 107, 109, 113, 116, 100, 106, 117, 133, 109, 109, 113, 105, 104, 113, 119, 110, 111, 108, 112, 121, 107, 109, 106, 111, 109, 110, 113, 108, 97, 113, 114, 98, 113, 107, 111, 114, 121, 106, 101, 105, 115, 111, 109, 117, 108, 107, 108, 108, 105, 114, 108, 123, 109, 113, 107, 117, 108, 107, 105, 119, 112, 116, 114, 111, 101, 105, 111, 108, 106, 112, 108, 112, 111, 109, 106, 112, 111, 114, 103, 110, 109, 115, 109, 110, 110, 118, 109, 111, 109, 115, 116, 116, 116, 112, 96, 110, 114, 111, 116, 105, 109, 110, 105, 112, 107, 112, 112, 114, 110, 129, 113, 110, 109, 109, 114, 106, 114, 109, 109, 108, 107, 116, 107, 107, 108, 105, 105, 120, 102, 114, 116, 107, 111, 114, 106, 110, 108, 121, 104, 110, 96, 114, 117, 101, 110, 112, 106, 121, 102, 113, 111, 79, 92, 111, 115, 114, 107, 114, 113, 104, 115, 111, 114, 111, 110, 111, 106, 103, 112, 108, 106, 113, 111, 115, 113, 110, 109, 98, 110, 114, 103, 109, 97, 109, 107, 105, 107, 109, 116, 112, 111, 106, 105, 106, 113, 116, 108, 111, 112, 108, 115, 102, 109, 107, 107, 111, 105, 107, 109, 113, 113, 113, 112, 106, 111, 109, 118, 123, 91, 109, 108, 119, 100, 117, 109, 105, 109, 108, 107, 105, 104, 109, 115, 115, 110, 110, 116, 106, 121, 128, 106, 113, 116, 110, 110, 93, 98, 107, 92, 103, 104, 85, 91, 102, 105, 108, 102, 102, 111, 115, 110, 116, 115, 120, 105, 118, 87, 90, 104, 125, 105, 112, 99, 86, 99, 114, 109, 113, 107, 108, 104, 107, 100, 104, 110, 113, 98, 115, 123, 114, 105, 116, 100, 102, 109, 106, 119, 92, 115, 112, 104, 117, 109, 109, 113, 102, 87, 111, 124, 111, 104, 114, 105, 128, 108, 117, 105, 115, 80, 113, 114, 122, 103, 102, 108, 111, 117, 99, 108, 116, 80, 95, 115, 98, 113, 123, 123, 100, 150, 108, 106, 100, 105, 116, 110, 104, 100, 111, 106, 108, 111, 115, 121, 107, 115, 112, 103, 113, 105, 99, 103, 110, 115, 89, 116, 110, 111, 100, 112, 111, 108, 104, 115, 111, 111, 113, 106, 109, 117, 117, 110, 99, 97, 107, 107, 111, 115, 111, 105, 98, 102, 101, 117, 102, 118, 104, 113, 107, 113, 110, 108, 110, 109, 117, 104, 109, 123, 112, 121, 113, 108, 110, 107, 102, 110, 106, 115, 111, 118, 89, 114, 101, 106, 104, 121, 105, 111, 107, 121, 114, 115, 115, 105, 109, 107, 120, 98, 119, 116, 113, 112, 118, 112, 113, 101, 127, 127, 125, 117, 107, 95, 103, 101, 116, 104, 90, 106, 101, 105, 106, 109, 122, 111, 101, 103, 109, 104, 108, 109, 113, 108, 103, 111, 105, 100, 103, 97, 115, 98, 96, 113, 109, 110, 96, 98, 109, 138, 116, 112, 112, 109, 110, 123, 107, 89, 98, 122, 111, 111, 112, 110, 118, 101, 115, 111, 97, 112, 90, 103, 114, 108, 132, 110, 117, 114, 125, 108, 112, 103, 102, 116, 112, 104, 109, 118, 111, 117, 107, 113, 118, 108, 114, 106, 101, 92, 105, 113, 110, 94, 101, 114, 108, 123, 103, 124, 112, 100, 99, 116, 99, 119, 113, 110, 117, 101, 109, 107, 103, 115, 92, 109, 104, 114, 97, 94, 82, 116, 111, 102, 101, 99, 97, 91, 101, 106, 108, 106, 101, 125, 106, 126, 130, 132, 115, 109, 113, 107, 104, 128, 103, 112, 116, 101, 106, 114, 145, 113, 101, 107, 109, 116, 108, 102, 111, 111, 97, 128, 111, 95, 118, 104, 111, 127, 107, 115, 122, 112, 130, 114, 123, 115, 104, 102, 112, 117, 121, 105, 104, 108, 112, 109, 120, 110, 105, 128, 95, 116, 115, 107, 109, 97, 118, 106, 97, 102, 106, 110, 121, 113, 111, 107, 108, 115, 113, 99, 112, 107, 109, 109, 120, 101, 104, 105, 102, 111, 111, 130, 120, 123, 83, 92, 103, 109, 114, 139, 124, 117, 120, 99, 102, 112, 104, 116, 105, 113, 107, 105, 114, 106, 105, 96, 110, 113, 90, 102, 129, 126, 106, 101, 111, 111, 107, 111, 129, 104, 116, 100, 107, 105, 118, 110, 107, 96, 113, 97, 102, 110, 104, 103, 114, 112, 110, 113, 101, 121, 108, 122, 108, 112, 105, 114, 115, 112, 116, 114, 99, 111, 119, 113, 108, 105, 110, 107, 115, 89, 98, 117, 108, 111, 96, 114, 103, 110, 110, 116, 110, 110, 111, 114, 99, 117, 117, 106, 104, 115, 82, 107, 115, 114, 119, 110, 113, 106, 102, 116, 112, 115, 107, 109, 110, 119, 97, 108, 101, 113, 110, 109, 115, 114, 116, 106, 108, 100, 117, 114, 113, 112, 110, 109, 107, 112, 118, 117, 107, 115, 108, 109, 109, 109, 113, 118, 104, 106, 167, 107, 109, 100, 99, 104, 123, 115, 90, 110, 117, 111, 106, 111, 121, 122, 107, 107, 108, 106, 110, 117, 108, 109, 109, 106, 109, 109, 103, 116, 112, 105, 117, 108, 108, 112, 113, 106, 108, 117, 111, 110, 114, 109, 115, 104, 114, 115, 109, 109, 112, 111, 117, 114, 108, 111, 115, 107, 102, 112, 106, 109, 105, 118, 108, 110, 108, 117, 111, 116, 112, 113, 109, 111, 108, 105, 114, 100, 114, 108, 106, 111, 110, 110, 112, 109, 108, 107, 110, 120, 120, 112, 117, 114, 108, 106, 114, 105, 108, 111, 109, 97, 113, 122, 114, 110, 106, 107, 110, 114, 115, 107, 112, 109, 113, 110, 112, 99, 115, 104, 115, 107, 106, 114, 114, 99, 115, 114, 109, 110, 113, 108, 112, 114, 106, 108, 104, 110, 111, 109, 111, 103, 108, 111, 112, 109, 109, 105, 102, 112, 113, 97, 116, 117, 108, 119, 116, 110, 116, 113, 108, 117, 111, 105, 110, 114, 108, 102, 126, 111, 109, 110, 115, 117, 115, 103, 108, 108, 107, 107, 111, 110, 117, 112, 110, 107, 110, 107, 97, 109, 113, 112, 114, 109, 113, 112, 111, 112, 112, 105, 116, 104, 114, 109, 122, 108, 110, 108, 118, 106, 110, 111, 106, 109, 97, 110, 110, 110, 110, 118, 122, 113, 119, 110, 110, 109, 114, 110, 105, 114, 113, 108, 103, 108, 102, 106, 110, 107, 116, 118, 105, 119, 112, 103, 108, 112, 109, 104, 111, 115, 105, 110, 113, 110, 98, 110, 128, 106, 110, 106, 120, 116, 109, 118, 103, 109, 97, 109, 110, 110, 112, 107, 113, 112, 115, 104, 115, 106, 105, 111, 110, 104, 103, 112, 103, 124, 114, 115, 105, 109, 111, 112, 109, 105, 119, 108, 93, 106, 103, 118, 109, 108, 111, 113, 96, 109, 108, 110, 119, 111, 114, 114, 108, 109, 110, 110, 100, 98, 106, 122, 109, 114, 106, 112, 102, 117, 115, 106, 110, 107, 106, 97, 108, 108, 119, 110, 114, 114, 117, 116, 111, 109, 119, 108, 113, 88, 111, 107, 110, 109, 112, 120, 114, 108, 111, 112, 110, 105, 105, 107, 113, 108, 112, 114, 108, 106, 112, 106, 114, 135, 113, 108, 117, 114, 119, 109, 105, 111, 113, 110, 111, 104, 106, 111, 104, 109, 109, 108, 115, 106, 112, 112, 121, 108, 106, 111, 108, 114, 108, 117, 110, 119, 113, 107, 112, 115, 111, 108, 108, 103, 107, 109, 113, 102, 105, 104, 105, 111, 112, 108, 107, 107, 109, 111, 107, 113, 128, 109, 111, 105, 108, 109, 110, 114, 103, 108, 106, 80, 120, 111, 109, 98, 118, 116, 111, 110, 106, 116, 116, 111, 100, 95, 110, 99, 110, 104, 115, 98, 120, 110, 131, 115, 113, 110, 106, 111, 108, 112, 104, 112, 98, 114, 95, 110, 118, 100, 120, 105, 99, 105, 112, 111, 115, 111, 113, 110, 121, 113, 116, 107, 121, 116, 106, 106, 103, 109, 125, 112, 107, 112, 93, 108, 115, 105, 97, 113, 112, 102, 123, 110, 116, 118, 102, 102, 104, 97, 103, 106, 98, 126, 112, 109, 107, 110, 114, 112, 108, 110, 105, 109, 108, 113, 115, 106, 97, 104, 99, 108, 111, 110, 107, 116, 108, 124, 96, 113, 102, 106, 105, 107, 112, 109, 120, 111, 110, 107, 112, 98, 114, 104, 104, 122, 115, 104, 116, 105, 110, 99, 108, 107, 108, 105, 109, 114, 104, 97, 110, 114, 109, 104, 100, 114, 123, 108, 115, 97, 108, 101, 117, 104, 113, 84, 114, 123, 111, 109, 113, 95, 115, 108, 100, 113, 109, 114, 101, 113, 112, 109, 110, 111, 113, 121, 115, 110, 101, 110, 105, 107, 115, 112, 118, 104, 103, 101, 119, 106, 104, 108, 103, 106, 113, 129, 113, 100, 104, 112, 111, 98, 129, 116, 108, 107, 116, 118, 115, 109, 112, 113, 87, 113, 110, 105, 117, 114, 115, 120, 118, 113, 112, 117, 106, 107, 105, 114, 108, 116, 116, 106, 111, 107, 124, 120, 101, 108, 100, 114, 119, 109, 132, 106, 107, 112, 114, 108, 109, 98, 111, 111, 104, 116, 117, 105, 102, 108, 106, 112, 109, 113, 112, 109, 102, 97, 102, 100, 109, 108, 127, 102, 109, 113, 106, 113, 108, 102, 113, 112, 111, 115, 108, 102, 119, 105, 92, 106, 115, 105, 90, 94, 111, 105, 95, 109, 113, 102, 112, 115, 99, 113, 103, 100, 115, 116, 102, 107, 109, 113, 104, 99, 100, 112, 105, 103, 104, 104, 103, 113, 105, 114, 111, 96, 114, 117, 106, 104, 98, 112, 108, 107, 109, 109, 99, 121, 101, 111, 107, 109, 111, 95, 108, 115, 124, 122, 112, 102, 105, 111, 108, 116, 106, 115, 98, 105, 113, 114, 105, 113, 94, 106, 113, 114, 120, 113, 104, 106, 122, 106, 109, 113, 107, 110, 115, 105, 119, 105, 111, 115, 102, 110, 115, 115, 100, 117, 100, 103, 105, 140, 98, 119, 100, 101, 100, 107, 106, 111, 107, 111, 108, 109, 128, 119, 114, 104, 109, 89, 103, 109, 113, 107, 110, 114, 115, 106, 104, 114, 106, 98, 95, 106, 125, 109, 106, 109, 115, 108, 117, 117, 110, 119, 111, 107, 106, 100, 117, 102, 106, 104, 111, 110, 107, 110, 103, 100, 102, 97, 117, 118, 108, 96, 96, 110, 101, 111, 107, 115, 105, 113, 93, 118, 104, 99, 113, 109, 111, 117, 106, 122, 106, 119, 95, 106, 116, 121, 109, 102, 111, 107, 109, 103, 110, 94, 106, 117, 109, 110, 96, 111, 117, 119, 119, 105, 116, 110, 116, 109, 106, 110, 117, 119, 109, 111, 113, 116, 112, 109, 98, 110, 110, 102, 105, 108, 102, 102, 121, 112, 104, 112, 128, 112, 112, 113, 113, 115, 106, 112, 110, 109, 107, 103, 118, 109, 117, 109, 105, 111, 106, 103, 108, 103, 111, 114, 108, 100, 113, 116, 105, 110, 110, 98, 108, 112, 108, 109, 110, 110, 113, 110, 112, 113, 114, 103, 110, 111, 106, 110, 106, 110, 110, 113, 103, 112, 117, 113, 116, 111, 114, 105, 105, 110, 104, 108, 114, 112, 107, 111, 113, 103, 110, 111, 114, 114, 119, 110, 117, 115, 110, 108, 107, 110, 117, 110, 111, 109, 110, 128, 113, 114, 108, 116, 102, 120, 106, 111, 101, 112, 117, 107, 109, 111, 110, 113, 112, 107, 107, 111, 113, 103, 109, 111, 109, 108, 105, 110, 106, 109, 105, 110, 109, 111, 114, 110, 101, 105, 110, 109, 110, 105, 110, 115, 110, 110, 122, 109, 105, 117, 114, 100, 111, 105, 114, 108, 110, 114, 97, 114, 110, 115, 116, 102, 113, 110, 110, 113, 108, 109, 116, 111, 118, 111, 113, 108, 109, 111, 99, 120, 107, 113, 108, 114, 105, 107, 114, 105, 117, 111, 115, 102, 109, 107, 103, 103, 112, 107, 110, 110, 102, 105, 114, 102, 112, 108, 112, 109, 110, 104, 117, 114, 109, 114, 109, 113, 112, 108, 106, 125, 118, 107, 108, 105, 107, 99, 112, 110, 108, 111, 113, 114, 107, 108, 112, 116, 110, 111, 110, 109, 111, 101, 98, 111, 118, 106, 115, 110, 116, 110, 109, 111, 117, 112, 114, 110, 111, 111, 117, 110, 107, 109, 113, 109, 110, 108, 108, 107, 107, 120, 104, 110, 109, 103, 112, 111, 112, 110, 108, 111, 110, 100, 112, 112, 113, 113, 108, 114, 108, 111, 118, 117, 109, 106, 108, 119, 105, 111, 114, 113, 100, 109, 115, 108, 113, 104, 113, 107, 121, 104, 104, 102, 107, 107, 108, 114, 117, 113, 105, 114, 109, 109, 112, 107, 110, 114, 114, 120, 111, 106, 112, 121, 109, 110, 103, 114, 104, 108, 108, 104, 112, 113, 113, 106, 116, 107, 114, 109, 115, 113, 102, 113, 107, 117, 109, 109, 114, 114, 113, 103, 110, 110, 114, 110, 106, 112, 112, 107, 112, 117, 111, 113, 115, 121, 105, 111, 107, 113, 113, 105, 105, 114, 104, 113, 110, 104, 106, 113, 113, 110, 114, 105, 109, 108, 111, 121, 113, 109, 113, 110, 102, 101, 98, 111, 117, 109, 113, 104, 114, 108, 113, 109, 106, 107, 111, 107, 108, 116, 104, 107, 112, 118, 113, 102, 103, 109, 113, 104, 101, 110, 116, 108, 108, 118, 106, 110, 109, 111, 109, 109, 106, 112, 115, 114, 109, 104, 112, 109, 103, 114, 113, 109, 113, 108, 109, 108, 107, 109, 108, 106, 108, 108, 117, 106, 104, 124, 112, 113, 107, 115, 119, 111, 104, 109, 110, 108, 106, 109, 110, 110, 113, 111, 108, 117, 107, 116, 108, 105, 107, 111, 112, 112, 115, 116, 110, 114, 113, 109, 116, 111, 104, 117, 110, 108, 120, 114, 108, 101, 110, 112, 109, 104, 97, 109, 111, 108, 113, 107, 106, 109, 109, 109, 104, 113, 108, 112, 111, 106, 110, 108, 112, 109, 117, 110, 106, 112, 110, 106, 101, 111, 110, 112, 106, 113, 109, 116, 108, 108, 107, 105, 110, 113, 109, 114, 108, 117, 107, 109, 110, 110, 108, 111, 115, 112, 109, 108, 106, 120, 108, 102, 100, 117, 104, 114, 110, 114, 118, 108, 112, 107, 109, 110, 112, 111, 113, 109, 117, 112, 107, 112, 111, 110, 104, 112, 112, 112, 109, 111, 113, 107, 108, 106, 107, 111, 106, 105, 109, 110, 105, 115, 109, 98, 109, 108, 121, 111, 106, 97, 109, 112, 113, 111, 110, 107, 112, 110, 107, 106, 108, 114, 106, 109, 112, 114, 118, 115, 108, 119, 109, 115, 112, 111, 99, 110, 109, 111, 110, 106, 105, 110, 114, 111, 104, 108, 106, 111, 108, 106, 115, 105, 113, 105, 107, 114, 112, 116, 109, 111, 110, 108, 127, 117, 109, 106, 119, 109, 106, 113, 112, 107, 106, 105, 107, 106, 108, 113, 120, 110, 110, 98, 111, 104, 108, 112, 107, 111, 112, 112, 109, 114, 104, 112, 106, 110, 111, 111, 114, 110, 107, 110, 101, 104, 110, 109, 110, 114, 108, 108, 113, 114, 107, 114, 106, 110, 112, 109, 115, 113, 119, 110, 107, 105, 106, 105, 116, 107, 116, 115, 109, 110, 105, 106, 115, 108, 112, 110, 111, 111, 110, 110, 106, 105, 112, 110, 111, 111, 102, 115, 92, 107, 107, 107, 103, 107, 103, 108, 111, 110, 107, 110, 109, 113, 112, 107, 117, 119, 106, 114, 110, 104, 109, 112, 111, 107, 111, 110, 108, 109, 112, 111, 112, 112, 111, 117, 109, 104, 109, 115, 113, 113, 105, 106, 114, 116, 110, 117, 113, 106, 102, 110, 105, 107, 112, 106, 112, 106, 109, 116, 112, 108, 105, 112, 120, 115, 101, 107, 107, 110, 112, 113, 106, 104, 112, 108, 111, 111, 106, 113, 112, 108, 105, 115, 113, 114, 115, 107, 116, 110, 102, 117, 112, 109, 101, 109, 111, 113, 116, 105, 107, 108, 109, 102, 112, 109, 109, 112, 105, 110, 108, 106, 115, 108, 111, 111, 109, 108, 109, 106, 111, 114, 110, 110, 104, 114, 101, 107, 106, 109, 111, 109, 107, 113, 110, 121, 110, 108, 113, 109, 102, 103, 111, 111, 112, 108, 109, 104, 108, 109, 111, 114, 110, 115, 120, 108, 108, 110, 107, 120, 105, 113, 111, 113, 113, 110, 111, 110, 108, 111, 113, 110, 120, 114, 109, 108, 109, 114, 108, 112, 110, 111, 112, 109, 114, 105, 108, 115, 123, 108, 108, 106, 109, 113, 109, 109, 105, 109, 112, 112, 112, 112, 110, 112, 109, 112, 115, 108, 112, 109, 106, 111, 112, 108, 105, 92, 108, 108, 113, 103, 112, 111, 106, 110, 114, 112, 115, 108, 111, 110, 121, 111, 106, 112, 110, 112, 111, 107, 109, 109, 108, 112, 113, 112, 110, 111, 112, 115, 112, 106, 111, 115, 104, 109, 110, 112, 118, 110, 118, 111, 108, 108, 111, 102, 109, 117, 111, 112, 107, 106, 112, 108, 109, 108, 109, 106, 109, 114, 111, 98, 107, 109, 95, 96, 107, 113, 111, 107, 103, 109, 69, 104, 97, 114, 147, 104, 121, 112, 115, 113, 114, 102, 96, 113, 99, 90, 92, 114, 102, 103, 103, 105, 81, 113, 127, 105, 104, 106, 93, 87, 115, 121, 104, 96, 110, 93, 114, 120, 109, 112, 112, 93, 122, 111, 99, 106, 109, 105, 123, 108, 115, 117, 95, 118, 90, 112, 118, 99, 97, 95, 111, 107, 110, 137, 108, 118, 107, 108, 98, 116, 118, 109, 115, 110, 108, 116, 127, 112, 112, 108, 115, 112, 107, 92, 114, 113, 87, 95, 99, 114, 106, 103, 104, 95, 104, 102, 89, 106, 110, 114, 110, 120, 109, 108, 92, 94, 116, 96, 101, 96, 108, 108, 109, 105, 119, 116, 98, 117, 133, 96, 106, 107, 102, 110, 124, 120, 110, 109, 104, 111, 102, 104, 106, 115, 122, 94, 117, 100, 103, 109, 105, 121, 121, 100, 104, 104, 110, 101, 109, 112, 108, 117, 117, 115, 108, 91, 108, 117, 84, 102, 102, 120, 115, 118, 131, 100, 111, 110, 146, 103, 116, 121, 112, 112, 103, 110, 115, 122, 99, 109, 122, 111, 150, 100, 123, 114, 112, 106, 105, 110, 126, 99, 101, 123, 112, 111, 124, 107, 98, 124, 96, 110, 113, 117, 113, 96, 115, 102, 103, 110, 94, 98, 111, 121, 123, 115, 96, 118, 119, 105, 110, 100, 118, 94, 130, 119, 122, 113, 103, 111, 104, 90, 110, 115, 123, 100, 106, 104, 117, 103, 123, 117, 118, 119, 96, 111, 102, 106, 104, 93, 97, 108, 112, 107, 106, 111, 113, 101, 98, 125, 101, 106, 114, 110, 111, 115, 98, 116, 101, 119, 99, 98, 112, 96, 104, 105, 105, 84, 105, 135, 98, 102, 117, 121, 107, 112, 103, 128, 102, 124, 106, 95, 112, 113, 121, 103, 120, 98, 105, 101, 107, 114, 104, 109, 99, 112, 100, 98, 105, 118, 98, 121, 103, 107, 110, 115, 102, 114, 109, 118, 110, 100, 111, 112, 143, 107, 101, 101, 107, 111, 124, 116, 98, 94, 95, 107, 122, 104, 115, 112, 109, 107, 102, 110, 128, 107, 107, 114, 115, 113, 117, 97, 107, 93, 106, 106, 122, 111, 108, 107, 102, 109, 127, 136, 119, 123, 110, 110, 85, 108, 109, 110, 103, 100, 89, 104, 116, 99, 99, 109, 107, 116, 113, 109, 113, 118, 111, 100, 109, 120, 114, 112, 103, 108, 112, 120, 136, 113, 96, 101, 110, 93, 107, 108, 112, 115, 105, 101, 119, 117, 119, 125, 108, 100, 110, 112, 104, 106, 108, 105, 102, 96, 112, 118, 120, 90, 91, 109, 115, 111, 98, 100, 96, 105, 111, 106, 130, 117, 114, 97, 107, 108, 84, 108, 129, 108, 106, 121, 94, 102, 103, 116, 104, 121, 109, 116, 107, 112, 116, 122, 102, 98, 120, 119, 101, 97, 101, 95, 112, 114, 109, 105, 130, 111, 104, 107, 113, 103, 101, 102, 104, 121, 112, 112, 99, 128, 118, 106, 120, 113, 96, 108, 113, 108, 104, 91, 114, 104, 103, 99, 127, 105, 107, 105, 106, 95, 103, 103, 109, 113, 108, 107, 101, 104, 114, 113, 112, 108, 112, 108, 113, 105, 109, 110, 122, 123, 113, 123, 112, 111, 117, 105, 116, 107, 113, 108, 111, 107, 112, 115, 105, 114, 116, 104, 104, 118, 111, 108, 111, 113, 115, 102, 97, 108, 104, 102, 103, 103, 103, 108, 103, 105, 103, 97, 103, 114, 110, 108, 113, 103, 110, 110, 110, 110, 114, 107, 113, 116, 106, 109, 98, 107, 110, 107, 111, 107, 107, 115, 111, 94, 113, 111, 105, 114, 106, 97, 105, 106, 117, 101, 113, 106, 104, 110, 112, 98, 118, 107, 114, 113, 113, 110, 110, 110, 119, 109, 113, 114, 121, 98, 110, 105, 99, 107, 114, 107, 118, 118, 109, 121, 104, 104, 113, 116, 103, 113, 107, 119, 111, 103, 114, 102, 120, 113, 111, 122, 86, 101, 104, 112, 110, 108, 110, 105, 106, 109, 116, 110, 111, 111, 108, 120, 102, 117, 111, 107, 110, 105, 113, 112, 103, 113, 112, 108, 114, 112, 103, 108, 108, 115, 116, 108, 100, 107, 113, 109, 120, 107, 108, 116, 105, 110, 102, 106, 111, 103, 112, 109, 113, 106, 113, 106, 113, 110, 114, 109, 107, 115, 118, 112, 115, 119, 119, 106, 115, 119, 121, 107, 104, 106, 104, 93, 103, 106, 102, 106, 107, 109, 116, 105, 108, 120, 111, 107, 121, 113, 108, 115, 99, 117, 110, 109, 112, 103, 108, 117, 111, 113, 112, 114, 106, 101, 118, 108, 125, 118, 110, 114, 110, 108, 108, 109, 106, 115, 108, 115, 108, 117, 115, 116, 112, 111, 107, 109, 96, 112, 126, 110, 112, 116, 106, 99, 103, 112, 104, 108, 105, 106, 115, 98, 106, 112, 116, 104, 111, 109, 114, 108, 108, 117, 112, 109, 119, 102, 104, 107, 114, 106, 107, 98, 117, 112, 97, 107, 108, 110, 110, 114, 117, 109, 109, 135, 112, 102, 108, 104, 115, 123, 116, 114, 110, 104, 116, 110, 112, 110, 116, 114, 106, 115, 113, 104, 99, 119, 101, 123, 108, 112, 106, 110, 120, 107, 112, 108, 108, 108, 107, 102, 119, 132, 105, 118, 102, 125, 110, 115, 126, 104, 112, 106, 114, 105, 107, 109, 115, 101, 110, 115, 100, 115, 106, 120, 117, 116, 107, 113, 116, 101, 109, 104, 102, 104, 105, 108, 109, 107, 110, 114, 108, 107, 105, 115, 109, 112, 106, 109, 110, 111, 113, 117, 100, 108, 97, 111, 101, 109, 102, 103, 106, 112, 106, 109, 107, 108, 105, 120, 102, 112, 114, 114, 115, 122, 111, 107, 113, 108, 106, 110, 106, 111, 104, 117, 115, 108, 92, 105, 116, 118, 107, 120, 101, 95, 108, 117, 109, 110, 106, 113, 120, 108, 113, 105, 113, 100, 108, 102, 107, 107, 110, 118, 110, 117, 109, 113, 116, 111, 102, 113, 107, 105, 104, 126, 104, 115, 111, 107, 112, 118, 122, 115, 102, 106, 114, 107, 108, 112, 99, 110, 106, 108, 112, 108, 103, 120, 108, 108, 114, 107, 114, 105, 108, 116, 114, 122, 118, 110, 110, 100, 106, 105, 107, 126, 125, 125, 104, 117, 104, 108, 103, 107, 109, 111, 107, 109, 118, 112, 114, 110, 114, 110, 116, 121, 103, 124, 105, 120, 107, 116, 107, 112, 118, 113, 104, 111, 102, 112, 94, 113, 105, 104, 113, 115, 118, 104, 109, 97, 106, 113, 123, 116, 103, 115, 102, 112, 97, 108, 97, 112, 97, 115, 114, 112, 110, 119, 115, 124, 102, 112, 112, 123, 108, 116, 107, 107, 112, 116, 116, 100, 127, 108, 110, 110, 102, 111, 115, 109, 99, 103, 109, 106, 115, 110, 114, 116, 109, 114, 113, 103, 108, 113, 92, 116, 119, 112, 118, 122, 108, 115, 107, 99, 110, 118, 117, 107, 104, 110, 118, 113, 108, 112, 100, 116, 112, 118, 107, 107, 116, 110, 108, 109, 105, 107, 117, 116, 119, 110, 116, 107, 109, 112, 106, 107, 107, 101, 122, 112, 110, 112, 103, 116, 113, 113, 106, 116, 111, 117, 117, 107, 105, 109, 107, 107, 101, 120, 104, 99, 109, 111, 109, 112, 116, 106, 110, 127, 104, 116, 102, 107, 103, 111, 120, 118, 107, 114, 110, 116, 103, 111, 117, 109, 113, 119, 123, 108, 113, 104, 90, 104, 104, 110, 108, 113, 110, 105, 101, 108, 104, 109, 105, 95, 104, 107, 113, 103, 109, 109, 104, 112, 110, 115, 109, 102, 116, 111, 116, 111, 108, 97, 116, 107, 104, 111, 102, 113, 100, 110, 111, 99, 109, 116, 132, 107, 108, 102, 106, 104, 110, 115, 100, 105, 110, 103, 111, 101, 101, 109, 106, 102, 113, 106, 109, 104, 108, 106, 106, 107, 111, 112, 107, 126, 115, 115, 108, 116, 107, 99, 109, 108, 121, 111, 104, 112, 93, 101, 106, 109, 118, 108, 112, 95, 109, 94, 106, 109, 117, 112, 110, 100, 108, 121, 107, 105, 96, 111, 105, 116, 113, 109, 110, 134, 109, 104, 114, 113, 113, 103, 111, 107, 109, 104, 103, 104, 114, 107, 102, 104, 117, 108, 114, 119, 97, 117, 112, 109, 106, 113, 103, 105, 118, 118, 102, 100, 108, 116, 109, 114, 105, 111, 113, 106, 114, 119, 108, 106, 114, 108, 112, 98, 124, 108, 112, 117, 108, 111, 103, 104, 114, 110, 119, 109, 123, 111, 94, 106, 114, 101, 131, 104, 112, 106, 102, 112, 111, 115, 115, 120, 99, 107, 106, 115, 102, 108, 114, 120, 101, 106, 107, 114, 116, 109, 116, 108, 112, 114, 118, 114, 108, 109, 113, 121, 96, 117, 114, 113, 112, 105, 113, 117, 127, 111, 111, 112, 109, 104, 116, 112, 104, 121, 98, 115, 112, 113, 117, 115, 103, 124, 103, 99, 95, 111, 110, 103, 107, 112, 121, 116, 101, 96, 101, 115, 105, 110, 130, 106, 119, 111, 105, 123, 106, 112, 109, 110, 114, 117, 117, 107, 115, 109, 110, 105, 113, 106, 108, 112, 112, 99, 97, 114, 108, 109, 106, 115, 118, 109, 117, 97, 109, 119, 112, 105, 112, 115, 115, 116, 104, 107, 102, 110, 106, 117, 107, 106, 107, 111, 118, 117, 118, 113, 93, 109, 113, 118, 106, 107, 108, 102, 106, 120, 115, 116, 108, 108, 113, 122, 103, 109, 108, 108, 113, 113, 109, 110, 113, 113, 102, 110, 99, 107, 103, 113, 99, 99, 111, 99, 108, 110, 109, 102, 102, 110, 113, 106, 104, 108, 112, 106, 112, 102, 122, 111, 112, 102, 110, 110, 129, 117, 101, 107, 105, 108, 103, 112, 111, 114, 108, 110, 111, 120, 116, 100, 101, 105, 100, 108, 110, 102, 118, 103, 107, 93, 107, 105, 113, 121, 110, 111, 98, 109, 121, 114, 110, 109, 110, 108, 107, 111, 106, 97, 122, 101, 104, 119, 113, 117, 103, 107, 120, 114, 107, 114, 136, 114, 104, 114, 110, 114, 108, 108, 115, 107, 105, 120, 115, 106, 106, 113, 105, 106, 116, 126, 108, 118, 126, 115, 128, 113, 106, 112, 106, 129, 117, 132, 113, 109, 117, 101, 111, 99, 103, 107, 114, 111, 115, 108, 101, 115, 115, 109, 108, 110, 116, 110, 109, 105, 119, 107, 113, 96, 98, 113, 102, 108, 109, 109, 111, 113, 108, 107, 111, 105, 110, 108, 100, 108, 115, 108, 101, 105, 110, 110, 103, 117, 114, 100, 106, 110, 107, 105, 134, 106, 110, 119, 105, 121, 109, 115, 114, 125, 106, 110, 105, 102, 103, 117, 117, 125, 108, 113, 104, 113, 117, 108, 106, 108, 102, 112, 105, 116, 103, 114, 107, 111, 112, 102, 110, 106, 121, 117, 106, 115, 114, 118, 109, 111, 105, 102, 108, 115, 106, 97, 108, 111, 113, 103, 101, 114, 106, 111, 113, 100, 108, 110, 103, 112, 110, 99, 114, 106, 108, 104, 115, 106, 106, 111, 109, 118, 118, 114, 107, 109, 114, 103, 104, 121, 103, 104, 113, 110, 107, 108, 115, 98, 112, 108, 105, 110, 110, 111, 110, 113, 108, 106, 103, 109, 108, 109, 118, 101, 119, 108, 117, 102, 108, 109, 110, 112, 109, 115, 120, 100, 110, 103, 105, 115, 113, 111, 115, 110, 104, 107, 105, 117, 106, 112, 114, 107, 115, 114, 119, 106, 110, 99, 93, 104, 118, 112, 124, 108, 105, 108, 99, 117, 102, 98, 105, 110, 111, 98, 115, 102, 99, 105, 109, 115, 124, 103, 105, 105, 108, 117, 111, 112, 113, 99, 109, 104, 94, 128, 105, 103, 122, 113, 110, 121, 106, 117, 100, 106, 104, 108, 113, 112, 111, 96, 120, 110, 112, 104, 100, 102, 109, 118, 124, 122, 102, 99, 111, 106, 98, 110, 101, 105, 112, 105, 107, 103, 113, 113, 101, 113, 112, 107, 113, 108, 105, 112, 112, 120, 116, 116, 113, 103, 107, 111, 98, 108, 105, 106, 119, 100, 112, 109, 102, 107, 102, 115, 112, 98, 108, 108, 111, 111, 126, 106, 109, 119, 112, 103, 129, 105, 107, 116, 111, 113, 101, 102, 103, 110, 102, 117, 107, 104, 103, 110, 112, 115, 106, 110, 104, 105, 103, 104, 115, 100, 109, 96, 115, 102, 122, 121, 104, 104, 109, 113, 102, 113, 113, 114, 111, 103, 117, 119, 103, 102, 110, 111, 109, 110, 102, 116, 125, 116, 102, 107, 109, 116, 109, 111, 108, 106, 106, 108, 119, 119, 115, 108, 117, 124, 105, 99, 105, 106, 123, 108, 112, 115, 111, 103, 111, 103, 104, 110, 103, 111, 107, 98, 103, 183, 113, 109, 108, 107, 112, 109, 115, 110, 102, 110, 104, 101, 109, 114, 95, 115, 100, 115, 116, 115, 108, 113, 105, 106, 107, 112, 99, 111, 106, 99, 108, 111, 114, 105, 119, 110, 108, 110, 114, 127, 117, 112, 109, 110, 102, 120, 114, 118, 111, 110, 112, 104, 107, 116, 108, 114, 107, 114, 133, 105, 102, 114, 109, 106, 110, 119, 103, 117, 113, 112, 115, 104, 105, 104, 114, 115, 103, 113, 117, 106, 117, 108, 117, 107, 126, 108, 108, 82, 99, 117, 111, 123, 114, 105, 131, 104, 111, 106, 119, 106, 108, 117, 109, 114, 114, 102, 104, 115, 104, 110, 107, 115, 92, 110, 128, 100, 110, 108, 122, 129, 105, 110, 103, 114, 105, 108, 111, 119, 97, 113, 114, 114, 108, 108, 106, 121, 110, 110, 110, 113, 115, 109, 108, 109, 116, 91, 109, 55, 114, 110, 112, 111, 113, 100, 108, 109, 101, 109, 101, 105, 115, 113, 91, 115, 112, 115, 118, 108, 115, 121, 103, 106, 116, 112, 99, 105, 125, 97, 113, 110, 113, 101, 104, 108, 116, 104, 118, 106, 108, 110, 109, 112, 111, 103, 87, 105, 108, 109, 101, 109, 107, 114, 107, 124, 99, 103, 112, 106, 111, 109, 115, 104, 116, 117, 101, 120, 108, 113, 115, 111, 113, 108, 120, 108, 111, 113, 125, 102, 98, 112, 110, 113, 110, 116, 110, 85, 122, 106, 108, 124, 104, 108, 110, 113, 109, 110, 130, 105, 175, 99, 101, 111, 106, 135, 105, 104, 110, 102, 109, 108, 107, 113, 121, 114, 106, 110, 106, 105, 113, 103, 117, 114, 110, 108, 94, 111, 115, 111, 100, 113, 106, 106, 110, 105, 109, 109, 114, 115, 110, 108, 117, 102, 110, 116, 111, 113, 107, 111, 107, 111, 110, 104, 109, 121, 111, 113, 118, 110, 114, 105, 114, 120, 115, 97, 107, 112, 124, 117, 99, 101, 114, 128, 96, 116, 107, 117, 101, 99, 115, 114, 108, 104, 86, 95, 118, 115, 106, 117, 110, 108, 107, 104, 108, 100, 106, 109, 113, 113, 115, 109, 128, 112, 121, 107, 108, 114, 101, 121, 111, 110, 112, 106, 101, 114, 102, 113, 110, 107, 123, 108, 103, 121, 112, 110, 112, 112, 110, 109, 116, 124, 110, 113, 108, 102, 110, 108, 108, 115, 107, 117, 109, 109, 106, 106, 116, 110, 108, 107, 114, 109, 104, 91, 112, 102, 106, 109, 102, 112, 105, 105, 100, 112, 127, 111, 113, 112, 110, 113, 110, 110, 110, 111, 109, 114, 93, 114, 116, 104, 123, 112, 111, 119, 115, 107, 121, 122, 75, 118, 125, 109, 100, 104, 111, 115, 119, 104, 110, 122, 111, 109, 107, 116, 100, 107, 116, 111, 105, 109, 107, 111, 113, 104, 108, 92, 117, 96, 124, 119, 104, 112, 123, 112, 108, 98, 112, 98, 112, 108, 115, 113, 111, 114, 96, 110, 114, 112, 119, 108, 102, 113, 102, 105, 105, 105, 114, 114, 126, 95, 110, 120, 109, 114, 121, 108, 111, 106, 112, 109, 109, 117, 101, 107, 105, 106, 111, 104, 104, 109, 99, 108, 110, 110, 108, 105, 115, 112, 101, 106, 78, 99, 111, 108, 104, 112, 113, 110, 104, 104, 101, 113, 118, 101, 112, 120, 110, 95, 99, 113, 106, 117, 113, 110, 109, 99, 103, 96, 111, 122, 113, 116, 106, 113, 104, 104, 111, 108, 108, 120, 112, 106, 106, 106, 113, 108, 124, 103, 110, 119, 108, 112, 109, 102, 113, 116, 174, 107, 108, 97, 105, 125, 105, 118, 103, 112, 126, 113, 120, 141, 104, 105, 107, 103, 106, 101, 109, 110, 105, 110, 119, 111, 132, 113, 117, 117, 108, 111, 114, 114, 98, 118, 112, 102, 112, 107, 111, 112, 112, 117, 109, 101, 110, 113, 117, 111, 114, 112, 110, 107, 103, 111, 102, 111, 108, 112, 118, 110, 109, 105, 117, 102, 111, 110, 112, 107, 116, 109, 110, 99, 113, 111, 110, 103, 94, 110, 118, 97, 113, 108, 106, 112, 105, 115, 123, 108, 107, 104, 116, 111, 110, 104, 111, 109, 107, 111, 104, 117, 108, 91, 107, 109, 109, 130, 121, 96, 101, 120, 108, 122, 110, 115, 105, 114, 115, 109, 106, 106, 104, 109, 100, 111, 113, 108, 110, 120, 110, 115, 109, 107, 109, 108, 114, 118, 102, 97, 104, 101, 112, 103, 117, 115, 113, 109, 108, 109, 111, 101, 110, 125, 104, 103, 120, 110, 107, 112, 98, 110, 113, 112, 103, 108, 111, 108, 111, 111, 106, 107, 109, 119, 107, 118, 112, 105, 109, 112, 109, 112, 111, 105, 111, 107, 102, 112, 111, 111, 110, 130, 108, 107, 111, 125, 110, 101, 106, 102, 107, 113, 111, 110, 112, 109, 111, 111, 113, 95, 113, 129, 117, 107, 108, 108, 104, 106, 92, 107, 113, 107, 115, 117, 105, 117, 99, 104, 111, 116, 126, 109, 110, 117, 117, 110, 116, 101, 117, 110, 111, 113, 108, 112, 112, 109, 108, 113, 120, 118, 111, 108, 102, 108, 112, 111, 115, 116, 110, 115, 104, 112, 102, 114, 109, 109, 115, 107, 103, 110, 107, 117, 99, 112, 109, 113, 101, 116, 100, 115, 111, 113, 93, 111, 104, 100, 114, 101, 112, 106, 116, 109, 111, 92, 108, 113, 119, 106, 110, 110, 104, 114, 109, 108, 108, 110, 118, 107, 118, 105, 108, 110, 101, 104, 109, 119, 113, 106, 117, 107, 110, 109, 112, 109, 109, 114, 113, 99, 110, 114, 93, 124, 114, 127, 106, 106, 103, 113, 113, 102, 106, 101, 112, 104, 98, 104, 113, 108, 96, 98, 113, 97, 104, 124, 97, 112, 100, 106, 111, 108, 106, 106, 106, 122, 109, 113, 117, 108, 111, 108, 110, 111, 105, 106, 111, 94, 109, 108, 108, 104, 109, 121, 108, 116, 104, 108, 113, 111, 112, 115, 107, 106, 106, 108, 111, 109, 113, 118, 107, 102, 111, 103, 112, 97, 114, 110, 108, 109, 112, 108, 112, 121, 121, 111, 103, 106, 102, 141, 115, 106, 107, 105, 107, 105, 108, 117, 117, 109, 111, 103, 95, 117, 110, 125, 107, 114, 102, 112, 107, 113, 120, 111, 107, 99, 113, 114, 114, 108, 101, 102, 103, 108, 108, 111, 106, 115, 115, 99, 102, 110, 104, 108, 105, 114, 99, 101, 80, 108, 132, 117, 98, 121, 119, 116, 106, 117, 118, 108, 109, 104, 109, 114, 109, 111, 104, 104, 111, 111, 119, 106, 114, 109, 117, 98, 106, 106, 112, 104, 133, 116, 112, 108, 107, 104, 118, 109, 111, 115, 107, 104, 103, 105, 104, 107, 104, 107, 104, 102, 118, 126, 108, 106, 114, 106, 108, 114, 107, 114, 102, 100, 111, 114, 111, 108, 97, 113, 114, 113, 116, 106, 109, 112, 127, 105, 113, 107, 104, 107, 101, 109, 107, 107, 125, 116, 113, 115, 111, 125, 106, 99, 104, 112, 105, 104, 111, 107, 105, 107, 99, 61, 112, 100, 108, 110, 106, 103, 113, 105, 111, 117, 107, 117, 105, 100, 112, 111, 104, 105, 112, 104, 104, 102, 96, 109, 107, 119, 107, 103, 117, 117, 109, 110, 111, 102, 107, 112, 109, 120, 110, 111, 113, 115, 98, 116, 118, 104, 101, 109, 99, 105, 109, 114, 96, 113, 99, 121, 116, 118, 118, 111, 111, 100, 109, 115, 95, 104, 112, 105, 106, 110, 116, 106, 106, 95, 104, 118, 105, 118, 118, 112, 107, 93, 99, 108, 117, 110, 114, 109, 112, 97, 103, 103, 108, 106, 103, 100, 107, 114, 104, 109, 85, 105, 109, 173, 108, 100, 100, 109, 105, 107, 95, 111, 106, 110, 96, 108, 106, 105, 115, 95, 116, 113, 119, 113, 106, 114, 110, 105, 113, 113, 114, 113, 99, 106, 116, 109, 109, 101, 105, 114, 110, 113, 105, 110, 116, 114, 118, 105, 127, 122, 115, 103, 112, 104, 110, 103, 113, 116, 118, 105, 111, 98, 102, 108, 104, 110, 102, 110, 104, 113, 114, 119, 99, 104, 114, 119, 106, 107, 118, 108, 105, 132, 89, 118, 109, 115, 103, 116, 105, 120, 110, 108, 114, 92, 117, 109, 109, 112, 101, 112, 128, 102, 103, 115, 106, 106, 105, 109, 104, 101, 102, 109, 127, 103, 112, 114, 114, 108, 105, 149, 107, 113, 93, 105, 116, 114, 101, 120, 126, 113, 102, 115, 105, 106, 116, 102, 130, 119, 100, 107, 118, 92, 99, 106, 115, 103, 113, 109, 116, 125, 117, 105, 114, 104, 106, 108, 104, 110, 117, 113, 111, 107, 110, 110, 119, 36, 132, 112, 103, 107, 73, 112, 110, 114, 111, 117, 105, 114, 105, 113, 104, 112, 108, 108, 104, 108, 99, 110, 104, 110, 116, 100, 107, 111, 107, 112, 109, 112, 109, 130, 105, 105, 111, 117, 104, 119, 120, 105, 88, 119, 105, 109, 97, 108, 96, 101, 110, 110, 111, 105, 102, 120, 102, 108, 109, 107, 104, 114, 115, 115, 110, 114, 95, 107, 124, 115, 118, 106, 112, 106, 108, 113, 118, 107, 113, 119, 106, 106, 106, 109, 100, 105, 113, 107, 124, 103, 110, 110, 105, 112, 109, 102, 103, 111, 118, 111, 107, 109, 109, 104, 120, 118, 109, 108, 108, 113, 109, 106, 109, 102, 112, 120, 108, 103, 109, 118, 112, 109, 109, 102, 120, 103, 111, 107, 106, 109, 108, 110, 104, 105, 104, 114, 115, 124, 101, 100, 103, 96, 112, 109, 107, 106, 113, 110, 109, 104, 113, 101, 111, 112, 105, 119, 105, 121, 115, 94, 111, 115, 104, 99, 90, 106, 121, 133, 100, 109, 105, 110, 104, 99, 111, 108, 112, 110, 105, 117, 108, 118, 112, 108, 114, 112, 110, 102, 109, 112, 107, 103, 122, 97, 117, 109, 112, 102, 111, 106, 111, 109, 104, 110, 109, 106, 120, 122, 118, 98, 110, 107, 112, 108, 121, 105, 109, 114, 133, 109, 90, 96, 107, 107, 116, 113, 122, 106, 105, 115, 107, 116, 115, 112, 100, 106, 105, 107, 112, 115, 117, 107, 110, 118, 119, 114, 103, 105, 111, 111, 109, 113, 110, 104, 101, 95, 97, 111, 111, 115, 111, 98, 112, 99, 110, 109, 100, 109, 106, 107, 107, 103, 103, 101, 112, 109, 113, 111, 103, 111, 105, 104, 125, 112, 103, 110, 101, 108, 107, 112, 107, 111, 113, 105, 102, 108, 118, 112, 108, 108, 117, 104, 115, 117, 115, 114, 136, 110, 105, 112, 115, 105, 123, 115, 116, 110, 116, 109, 104, 110, 106, 107, 117, 118, 102, 111, 109, 107, 103, 109, 113, 117, 112, 113, 107, 113, 106, 107, 133, 117, 109, 108, 104, 113, 114, 120, 101, 105, 112, 108, 105, 108, 118, 97, 110, 98, 113, 112, 118, 101, 118, 119, 110, 104, 118, 113, 110, 106, 113, 116, 102, 115, 108, 110, 113, 116, 114, 105, 114, 110, 100, 98, 97, 120, 116, 105, 115, 116, 113, 106, 120, 116, 108, 114, 107, 106, 112, 122, 114, 114, 110, 120, 109, 105, 105, 113, 104, 120, 113, 122, 107, 107, 98, 121, 111, 108, 119, 108, 115, 121, 112, 112, 111, 103, 119, 111, 98, 112, 107, 121, 110, 104, 125, 108, 101, 112, 102, 125, 111, 109, 106, 106, 122, 118, 114, 111, 111, 114, 114, 111, 114, 107, 97, 111, 108, 108, 117, 113, 110, 109, 117, 115, 97, 101, 118, 109, 109, 110, 110, 98, 106, 107, 105, 111, 114, 103, 102, 109, 102, 105, 105, 111, 97, 118, 118, 109, 112, 109, 107, 123, 98, 117, 123, 119, 109, 117, 104, 110, 111, 107, 101, 109, 113, 99, 119, 121, 112, 108, 113, 114, 114, 114, 114, 108, 110, 101, 104, 105, 106, 110, 113, 103, 111, 125, 106, 118, 102, 116, 109, 110, 108, 107, 108, 112, 101, 117, 105, 109, 105, 110, 110, 107, 111, 114, 108, 111, 119, 119, 112, 112, 109, 109, 104, 107, 105, 115, 109, 108, 109, 101, 106, 112, 109, 122, 105, 110, 122, 113, 112, 110, 97, 107, 95, 93, 107, 104, 114, 115, 100, 111, 112, 105, 112, 109, 105, 103, 121, 125, 112, 106, 110, 106, 107, 115, 115, 111, 111, 114, 112, 109, 106, 114, 107, 109, 108, 106, 110, 105, 107, 102, 110, 112, 110, 112, 98, 122, 107, 111, 106, 111, 108, 113, 104, 112, 109, 113, 109, 111, 108, 115, 109, 109, 109, 109, 115, 107, 112, 118, 109, 109, 107, 108, 108, 105, 112, 109, 92, 113, 115, 108, 114, 111, 106, 109, 110, 116, 108, 109, 112, 115, 107, 111, 115, 109, 111, 113, 109, 111, 114, 116, 109, 111, 105, 112, 105, 115, 105, 111, 111, 109, 111, 111, 108, 110, 112, 116, 117, 110, 105, 113, 110, 108, 111, 90, 107, 106, 106, 107, 135, 113, 112, 108, 107, 113, 107, 104, 114, 81, 118, 108, 112, 110, 115, 108, 104, 105, 109, 101, 110, 112, 106, 114, 104, 112, 114, 110, 108, 109, 106, 116, 106, 111, 112, 112, 110, 113, 107, 114, 116, 111, 111, 107, 116, 111, 113, 105, 113, 112, 113, 122, 111, 111, 107, 111, 114, 110, 111, 110, 114, 114, 108, 106, 101, 110, 114, 111, 113, 115, 110, 112, 115, 107, 107, 112, 148, 109, 101, 113, 110, 112, 116, 109, 112, 113, 110, 103, 113, 110, 106, 104, 115, 109, 111, 109, 113, 102, 109, 106, 103, 106, 109, 108, 117, 102, 112, 108, 107, 114, 110, 110, 112, 108, 121, 108, 111, 111, 111, 116, 114, 104, 107, 106, 108, 110, 107, 109, 111, 111, 109, 110, 111, 110, 108, 101, 107, 112, 110, 116, 113, 113, 104, 109, 111, 107, 111, 111, 111, 106, 112, 110, 107, 106, 110, 112, 117, 109, 112, 127, 109, 110, 111, 109, 113, 112, 110, 108, 108, 111, 118, 111, 118, 106, 110, 112, 116, 109, 110, 112, 120, 111, 119, 110, 117, 124, 113, 108, 119, 114, 111, 109, 111, 115, 108, 111, 106, 118, 109, 106, 106, 117, 107, 107, 113, 111, 102, 111, 109, 111, 109, 108, 116, 120, 112, 110, 112, 112, 97, 106, 111, 112, 119, 103, 106, 108, 109, 111, 112, 105, 104, 112, 111, 108, 107, 109, 113, 110, 109, 113, 107, 108, 108, 111, 115, 107, 113, 108, 109, 111, 110, 115, 106, 110, 103, 109, 112, 108, 102, 107, 119, 108, 104, 110, 107, 116, 108, 114, 106, 114, 115, 110, 112, 108, 108, 113, 107, 116, 108, 118, 84, 116, 114, 108, 109, 106, 104, 115, 101, 108, 116, 107, 113, 110, 112, 116, 106, 107, 116, 112, 117, 110, 110, 115, 111, 112, 112, 93, 115, 110, 109, 109, 110, 109, 120, 110, 115, 108, 110, 114, 110, 114, 107, 114, 112, 117, 107, 106, 114, 108, 113, 109, 112, 106, 99, 105, 114, 111, 108, 108, 101, 112, 108, 111, 117, 105, 112, 109, 113, 109, 112, 110, 101, 112, 109, 115, 114, 114, 107, 110, 108, 116, 112, 109, 113, 111, 111, 110, 109, 103, 121, 109, 112, 123, 112, 108, 106, 110, 106, 114, 103, 117, 110, 109, 108, 114, 109, 110, 114, 107, 108, 116, 104, 114, 113, 110, 108, 107, 104, 109, 112, 108, 113, 115, 114, 107, 109, 109, 113, 93, 118, 115, 107, 103, 102, 107, 114, 108, 103, 100, 103, 102, 103, 112, 103, 104, 106, 108, 113, 109, 107, 98, 117, 111, 116, 93, 114, 111, 118, 107, 104, 104, 116, 109, 117, 104, 106, 109, 111, 117, 109, 114, 109, 114, 108, 111, 111, 106, 114, 109, 116, 115, 110, 114, 112, 114, 109, 114, 110, 125, 112, 121, 103, 113, 111, 121, 103, 110, 112, 110, 97, 120, 105, 107, 102, 97, 117, 116, 112, 108, 93, 99, 105, 106, 114, 107, 93, 112, 114, 120, 106, 108, 114, 104, 113, 108, 110, 109, 100, 108, 121, 110, 107, 108, 113, 122, 102, 105, 108, 120, 108, 105, 117, 99, 115, 103, 100, 101, 114, 104, 103, 95, 114, 102, 115, 113, 94, 119, 110, 111, 119, 104, 122, 106, 99, 107, 114, 113, 105, 113, 100, 96, 122, 117, 107, 111, 105, 95, 93, 103, 110, 108, 104, 107, 110, 101, 109, 122, 110, 108, 113, 107, 112, 128, 112, 114, 116, 117, 117, 119, 106, 97, 116, 109, 110, 113, 116, 114, 100, 100, 115, 119, 105, 119, 113, 107, 106, 104, 106, 109, 104, 109, 106, 112, 115, 113, 125, 107, 106, 107, 113, 101, 111, 111, 118, 106, 97, 106, 106, 106, 104, 111, 107, 99, 110, 106, 103, 112, 107, 117, 97, 104, 119, 103, 121, 114, 100, 114, 112, 114, 111, 121, 126, 117, 107, 103, 112, 118, 102, 117, 94, 102, 115, 116, 101, 109, 116, 98, 110, 103, 107, 118, 109, 116, 103, 103, 108, 124, 111, 108, 107, 100, 113, 104, 106, 111, 107, 111, 108, 115, 112, 116, 117, 115, 117, 103, 108, 109, 112, 117, 105, 106, 108, 117, 112, 104, 124, 127, 106, 107, 114, 108, 109, 121, 102, 115, 121, 101, 129, 107, 110, 104, 113, 106, 120, 123, 110, 100, 112, 108, 115, 110, 113, 117, 106, 112, 104, 111, 115, 108, 120, 111, 102, 114, 110, 106, 105, 107, 109, 102, 108, 110, 101, 100, 114, 130, 107, 110, 109, 115, 110, 110, 107, 99, 115, 107, 105, 110, 107, 107, 122, 119, 109, 112, 102, 118, 113, 113, 106, 103, 112, 110, 104, 109, 110, 109, 118, 118, 107, 122, 114, 116, 104, 111, 119, 115, 103, 110, 104, 99, 110, 111, 119, 107, 113, 106, 113, 104, 121, 124, 118, 113, 117, 111, 101, 113, 111, 118, 119, 114, 112, 115, 107, 107, 111, 120, 94, 109, 124, 107, 121, 112, 100, 119, 109, 109, 110, 94, 102, 108, 110, 112, 105, 109, 106, 112, 107, 106, 107, 99, 104, 128, 108, 100, 105, 107, 117, 115, 104, 106, 109, 125, 106, 101, 113, 105, 113, 108, 105, 118, 114, 103, 112, 117, 119, 107, 120, 100, 113, 107, 114, 109, 112, 112, 111, 105, 113, 113, 113, 114, 109, 110, 104, 108, 108, 115, 98, 108, 95, 114, 101, 108, 107, 106, 101, 105, 120, 113, 98, 116, 104, 101, 109, 115, 106, 113, 109, 111, 102, 119, 105, 114, 105, 112, 115, 107, 112, 115, 106, 108, 104, 114, 118, 124, 118, 100, 110, 113, 118, 110, 107, 102, 113, 113, 99, 108, 106, 110, 114, 105, 107, 108, 100, 106, 113, 110, 108, 112, 114, 107, 114, 105, 109, 107, 108, 106, 107, 110, 108, 109, 114, 108, 105, 107, 103, 110, 103, 121, 112, 106, 112, 119, 110, 111, 106, 111, 106, 112, 111, 108, 114, 111, 113, 111, 118, 109, 107, 106, 110, 105, 112, 115, 111, 105, 110, 102, 114, 97, 105, 114, 112, 114, 106, 109, 112, 103, 108, 105, 112, 110, 116, 104, 114, 109, 108, 114, 115, 110, 111, 107, 110, 105, 107, 106, 115, 118, 109, 110, 108, 112, 107, 116, 106, 100, 111, 117, 109, 112, 107, 106, 109, 106, 113, 105, 105, 106, 115, 115, 110, 104, 104, 116, 108, 119, 105, 105, 108, 110, 102, 107, 106, 109, 113, 116, 102, 113, 109, 112, 105, 112, 109, 110, 116, 107, 105, 108, 107, 114, 107, 111, 100, 112, 111, 104, 108, 112, 99, 105, 109, 112, 109, 110, 113, 113, 112, 104, 100, 114, 102, 108, 111, 114, 107, 108, 105, 103, 103, 107, 109, 109, 107, 113, 114, 103, 111, 111, 104, 109, 110, 121, 108, 117, 112, 116, 117, 110, 114, 114, 104, 116, 109, 111, 121, 104, 103, 119, 108, 110, 113, 115, 109, 109, 105, 113, 110, 107, 111, 107, 105, 106, 106, 111, 104, 110, 102, 116, 109, 109, 114, 113, 120, 110, 104, 109, 112, 121, 112, 108, 104, 111, 110, 117, 114, 108, 107, 108, 111, 109, 110, 108, 113, 114, 108, 109, 115, 105, 112, 108, 112, 115, 110, 101, 104, 107, 106, 104, 111, 111, 122, 118, 106, 113, 119, 109, 109, 107, 109, 112, 107, 112, 106, 102, 110, 111, 116, 111, 111, 106, 104, 116, 115, 108, 111, 110, 107, 111, 112, 120, 117, 97, 108, 112, 119, 106, 107, 115, 109, 107, 110, 103, 105, 108, 117, 107, 108, 108, 115, 110, 106, 106, 105, 117, 112, 116, 114, 107, 106, 99, 112, 110, 109, 117, 97, 110, 116, 113, 108, 105, 109, 108, 105, 104, 115, 115, 103, 111, 111, 111, 110, 103, 114, 106, 110, 104, 108, 101, 111, 104, 105, 110, 123, 104, 124, 109, 110, 101, 104, 118, 111, 105, 107, 118, 118, 115, 118, 115, 107, 110, 114, 110, 107, 103, 115, 107, 113, 107, 113, 117, 106, 116, 114, 106, 105, 114, 103, 110, 108, 111, 116, 116, 101, 126, 117, 109, 106, 107, 118, 107, 118, 114, 99, 111, 117, 109, 105, 97, 100, 103, 112, 106, 113, 116, 108, 108, 110, 105, 118, 116, 103, 111, 116, 99, 100, 102, 116, 107, 114, 112, 111, 108, 107, 97, 111, 124, 113, 109, 104, 111, 104, 107, 109, 113, 106, 101, 107, 110, 115, 112, 112, 108, 106, 120, 111, 108, 108, 112, 110, 110, 116, 115, 109, 99, 110, 112, 103, 100, 106, 104, 108, 103, 108, 110, 104, 106, 122, 105, 124, 113, 110, 116, 109, 103, 123, 108, 99, 106, 109, 113, 111, 110, 99, 108, 108, 107, 110, 123, 93, 114, 109, 106, 108, 107, 105, 114, 112, 107, 106, 112, 107, 113, 107, 113, 109, 108, 113, 109, 109, 114, 109, 113, 103, 109, 117, 99, 113, 115, 109, 117, 111, 110, 111, 108, 109, 108, 111, 107, 110, 105, 114, 114, 107, 111, 110, 109, 112, 105, 108, 100, 110, 108, 110, 109, 114, 111, 110, 115, 107, 104, 109, 110, 118, 113, 111, 134, 107, 112, 111, 110, 109, 108, 111, 126, 111, 108, 115, 109, 104, 109, 108, 108, 107, 116, 103, 118, 113, 107, 103, 106, 105, 115, 111, 108, 104, 105, 107, 105, 104, 160, 116, 112, 115, 106, 112, 110, 107, 109, 106, 109, 105, 110, 112, 109, 112, 111, 115, 117, 112, 108, 112, 109, 114, 108, 118, 106, 107, 105, 111, 109, 106, 107, 109, 110, 107, 99, 113, 110, 117, 112, 110, 109, 111, 117, 107, 110, 114, 109, 135, 114, 105, 111, 112, 112, 102, 110, 112, 107, 110, 105, 104, 109, 108, 110, 111, 113, 110, 115, 103, 104, 111, 114, 106, 113, 115, 105, 109, 113, 108, 107, 108, 111, 106, 110, 111, 105, 113, 108, 111, 111, 110, 110, 106, 112, 102, 110, 109, 102, 109, 110, 102, 105, 116, 110, 108, 109, 107, 113, 107, 117, 111, 109, 107, 118, 102, 106, 114, 106, 107, 110, 109, 108, 110, 108, 111, 116, 106, 110, 116, 109, 108, 108, 106, 102, 122, 109, 106, 110, 107, 121, 109, 109, 110, 110, 109, 109, 117, 104, 106, 108, 100, 109, 107, 109, 105, 107, 108, 103, 112, 108, 115, 110, 110, 107, 110, 112, 105, 108, 113, 105, 108, 113, 115, 114, 111, 131, 109, 109, 112, 108, 108, 112, 109, 110, 110, 114, 110, 99, 111, 109, 112, 108, 103, 111, 111, 110, 112, 113, 109, 100, 108, 107, 108, 112, 108, 106, 113, 104, 106, 115, 110, 111, 114, 108, 114, 103, 105, 108, 118, 113, 110, 105, 119, 107, 100, 108, 112, 108, 110, 106, 104, 112, 110, 115, 106, 113, 104, 106, 112, 107, 109, 106, 112, 101, 111, 114, 113, 108, 106, 109, 112, 112, 112, 105, 110, 107, 104, 113, 112, 108, 113, 107, 110, 112, 121, 107, 124, 113, 112, 110, 112, 116, 110, 107, 106, 111, 111, 108, 114, 110, 106, 112, 110, 108, 111, 111, 111, 113, 111, 109, 124, 107, 110, 109, 116, 115, 115, 112, 109, 109, 109, 108, 112, 102, 114, 106, 113, 113, 110, 114, 111, 109, 113, 137, 115, 108, 107, 107, 109, 116, 129, 112, 108, 112, 106, 108, 116, 109, 107, 105, 108, 121, 111, 110, 112, 114, 111, 106, 117, 109, 108, 107, 112, 110, 112, 99, 115, 97, 105, 109, 94, 109, 109, 115, 106, 109, 107, 107, 107, 110, 106, 113, 108, 115, 109, 117, 106, 118, 108, 109, 109, 108, 113, 105, 106, 125, 109, 109, 111, 108, 111, 109, 114, 126, 109, 119, 106, 110, 96, 106, 104, 110, 111, 109, 110, 110, 111, 100, 110, 107, 114, 114, 115, 97, 113, 112, 117, 108, 111, 112, 139, 111, 108, 104, 112, 107, 104, 116, 113, 110, 109, 110, 115, 112, 110, 103, 117, 105, 112, 110, 103, 101, 113, 109, 111, 106, 119, 106, 118, 105, 107, 126, 107, 110, 99, 110, 103, 111, 105, 105, 117, 141, 105, 101, 113, 104, 120, 112, 107, 115, 108, 105, 129, 101, 109, 99, 112, 114, 106, 105, 117, 100, 112, 113, 111, 100, 111, 115, 109, 114, 109, 119, 116, 87, 108, 120, 106, 104, 98, 103, 104, 113, 109, 118, 112, 101, 105, 107, 110, 111, 97, 110, 119, 112, 112, 103, 113, 109, 108, 113, 106, 111, 110, 111, 95, 112, 111, 104, 113, 102, 107, 104, 106, 108, 111, 105, 113, 105, 106, 106, 112, 103, 105, 107, 104, 105, 109, 118, 107, 104, 114, 105, 110, 105, 108, 116, 106, 121, 109, 101, 104, 104, 106, 110, 113, 115, 106, 113, 118, 104, 112, 114, 112, 116, 110, 101, 113, 107, 113, 110, 111, 114, 126, 97, 101, 117, 108, 111, 114, 107, 121, 106, 110, 112, 112, 109, 112, 117, 113, 107, 99, 108, 119, 116, 119, 116, 114, 105, 105, 113, 99, 105, 118, 105, 111, 111, 112, 124, 113, 122, 104, 111, 107, 105, 109, 109, 112, 112, 101, 116, 111, 102, 107, 127, 106, 101, 108, 106, 108, 107, 113, 106, 116, 107, 115, 108, 114, 107, 113, 111, 103, 105, 111, 99, 107, 116, 108, 111, 120, 112, 105, 119, 110, 106, 109, 116, 103, 110, 122, 102, 128, 110, 115, 102, 114, 106, 106, 112, 114, 108, 105, 112, 105, 110, 104, 110, 107, 111, 110, 106, 111, 109, 108, 111, 109, 123, 103, 113, 113, 107, 107, 107, 109, 114, 111, 120, 111, 102, 114, 133, 115, 98, 112, 99, 112, 106, 118, 118, 104, 115, 115, 106, 119, 109, 115, 111, 107, 108, 112, 122, 103, 111, 112, 106, 109, 112, 103, 109, 101, 121, 110, 112, 116, 109, 131, 102, 131, 103, 108, 104, 108, 107, 101, 119, 115, 117, 87, 106, 103, 109, 105, 107, 102, 116, 103, 109, 106, 111, 110, 111, 104, 105, 106, 119, 110, 103, 109, 103, 108, 109, 113, 124, 103, 111, 110, 103, 100, 116, 117, 113, 108, 115, 115, 114, 114, 110, 105, 108, 120, 95, 111, 115, 121, 104, 92, 106, 109, 107, 120, 101, 102, 118, 107, 113, 105, 99, 103, 114, 102, 113, 111, 102, 103, 110, 104, 104, 113, 111, 109, 103, 113, 116, 113, 110, 101, 116, 120, 103, 105, 113, 115, 94, 105, 110, 101, 112, 112, 109, 106, 91, 114, 106, 111, 112, 106, 109, 132, 114, 110, 108, 108, 116, 105, 105, 106, 102, 123, 98, 111, 131, 110, 103, 107, 103, 103, 108, 111, 105, 106, 108, 111, 119, 109, 100, 110, 124, 108, 110, 109, 109, 105, 130, 115, 107, 106, 109, 113, 108, 102, 103, 104, 114, 111, 107, 114, 118, 107, 107, 101, 115, 126, 104, 107, 117, 105, 117, 112, 108, 107, 98, 104, 106, 112, 105, 103, 102, 112, 111, 107, 119, 114, 108, 110, 112, 105, 122, 109, 103, 110, 118, 113, 111, 111, 106, 101, 115, 121, 114, 119, 116, 112, 117, 102, 108, 103, 109, 103, 109, 88, 106, 99, 107, 112, 118, 99, 113, 124, 92, 121, 103, 107, 120, 126, 105, 131, 105, 105, 120, 117, 110, 112, 104, 104, 107, 121, 113, 102, 111, 113, 115, 115, 113, 114, 97, 103, 116, 114, 102, 101, 113, 109, 130, 103, 125, 96, 110, 115, 115, 126, 101, 105, 112, 139, 129, 104, 99, 124, 105, 117, 94, 110, 110, 104, 111, 108, 105, 108, 116, 102, 107, 114, 113, 106, 100, 106, 116, 101, 92, 102, 108, 118, 106, 107, 116, 113, 112, 112, 109, 99, 111, 115, 111, 100, 127, 109, 98, 106, 104, 88, 104, 113, 102, 116, 116, 111, 112, 104, 104, 100, 107, 115, 108, 111, 128, 116, 121, 111, 109, 95, 104, 99, 129, 114, 111, 105, 114, 107, 105, 114, 120, 91, 114, 109, 113, 112, 107, 124, 111, 107, 116, 127, 119, 106, 113, 101, 112, 101, 118, 130, 109, 104, 105, 99, 122, 111, 105, 94, 106, 103, 113, 120, 108, 116, 113, 109, 115, 104, 105, 116, 104, 102, 104, 99, 110, 104, 112, 104, 99, 119, 103, 102, 100, 124, 117, 116, 113, 110, 105, 119, 107, 101, 106, 110, 111, 104, 117, 112, 107, 113, 110, 126, 109, 99, 116, 108, 128, 103, 103, 108, 108, 114, 103, 114, 110, 113, 126, 109, 107, 109, 98, 104, 107, 97, 100, 125, 108, 113, 113, 137, 93, 110, 131, 102, 111, 112, 108, 103, 110, 108, 104, 104, 92, 101, 107, 122, 105, 111, 108, 111, 100, 115, 117, 121, 117, 109, 124, 103, 105, 104, 109, 117, 105, 123, 87, 111, 114, 107, 112, 108, 115, 108, 113, 105, 125, 119, 104, 117, 130, 112, 106, 94, 117, 106, 109, 127, 117, 120, 134, 103, 111, 117, 114, 107, 115, 110, 109, 103, 109, 98, 109, 113, 113, 108, 103, 108, 123, 106, 119, 114, 102, 102, 110, 99, 105, 107, 118, 114, 106, 118, 117, 121, 107, 118, 122, 107, 98, 119, 124, 111, 101, 105, 119, 100, 119, 108, 106, 109, 106, 111, 114, 102, 122, 121, 88, 106, 95, 116, 119, 100, 114, 112, 117, 108, 111, 112, 118, 113, 103, 116, 118, 109, 110, 105, 118, 104, 107, 113, 108, 112, 105, 109, 112, 108, 108, 107, 114, 132, 119, 106, 123, 116, 123, 110, 124, 97, 100, 107, 105, 117, 98, 111, 122, 101, 109, 108, 118, 97, 112, 111, 105, 117, 106, 95, 105, 99, 98, 118, 118, 104, 125, 112, 119, 83, 116, 115, 108, 115, 104, 122, 106, 121, 101, 110, 103, 116, 108, 97, 108, 109, 125, 105, 117, 110, 116, 118, 104, 107, 109, 102, 97, 106, 113, 105, 111, 107, 111, 116, 94, 102, 115, 116, 118, 114, 132, 117, 111, 105, 103, 108, 104, 110, 119, 96, 109, 102, 96, 102, 111, 110, 103, 113, 106, 122, 105, 114, 117, 111, 99, 108, 110, 106, 99, 109, 105, 117, 103, 116, 111, 111, 115, 111, 121, 105, 105, 119, 105, 108, 117, 102, 120, 116, 114, 108, 98, 109, 104, 109, 116, 133, 110, 124, 104, 116, 117, 106, 111, 118, 129, 109, 110, 103, 109, 102, 106, 110, 108, 118, 109, 120, 119, 122, 108, 109, 103, 101, 99, 120, 107, 112, 109, 110, 103, 110, 110, 107, 107, 114, 107, 119, 105, 104, 108, 110, 124, 106, 110, 118, 106, 112, 103, 93, 99, 102, 111, 106, 108, 108, 124, 117, 107, 108, 110, 105, 117, 134, 107, 111, 105, 117, 109, 114, 114, 113, 116, 114, 113, 110, 114, 120, 105, 104, 104, 114, 114, 87, 108, 111, 115, 122, 111, 106, 118, 120, 106, 109, 117, 112, 109, 111, 102, 110, 107, 111, 106, 108, 107, 109, 102, 109, 113, 122, 115, 113, 109, 106, 113, 107, 112, 116, 111, 110, 120, 124, 97, 110, 117, 122, 102, 109, 105, 113, 100, 105, 118, 123, 124, 115, 140, 113, 115, 113, 104, 103, 111, 121, 108, 107, 116, 93, 117, 114, 109, 111, 115, 104, 106, 108, 111, 112, 105, 118, 90, 103, 104, 100, 100, 104, 109, 116, 106, 105, 111, 110, 109, 102, 109, 104, 106, 106, 112, 113, 122, 107, 111, 105, 98, 113, 118, 111, 102, 116, 105, 105, 114, 111, 109, 107, 118, 99, 110, 124, 121, 110, 107, 108, 117, 114, 118, 137, 115, 105, 111, 119, 112, 131, 110, 111, 107, 110, 110, 107, 112, 112, 95, 111, 117, 105, 119, 104, 121, 110, 117, 94, 105, 104, 114, 111, 106, 106, 107, 112, 120, 102, 111, 110, 112, 108, 107, 104, 108, 99, 109, 114, 96, 119, 113, 110, 98, 112, 105, 112, 119, 109, 81, 100, 120, 101, 134, 110, 115, 114, 107, 102, 148, 130, 104, 100, 108, 96, 121, 116, 104, 115, 126, 102, 99, 110, 111, 107, 110, 104, 107, 111, 120, 95, 107, 110, 111, 116, 97, 115, 113, 105, 116, 117, 87, 110, 109, 114, 106, 79, 111, 117, 107, 100, 105, 112, 104, 112, 110, 108, 125, 106, 110, 79, 115, 101, 114, 111, 115, 97, 102, 104, 101, 112, 113, 112, 89, 106, 103, 103, 107, 109, 116, 110, 108, 116, 102, 123, 107, 98, 103, 115, 117, 121, 113, 111, 104, 109, 109, 113, 115, 108, 129, 109, 105, 109, 109, 109, 98, 108, 108, 99, 120, 114, 111, 116, 108, 105, 109, 113, 110, 123, 99, 110, 117, 108, 111, 107, 106, 108, 103, 101, 115, 111, 110, 102, 93, 116, 111, 114, 113, 103, 111, 117, 117, 113, 114, 115, 103, 110, 110, 99, 113, 119, 111, 109, 111, 117, 97, 97, 105, 118, 119, 113, 107, 110, 112, 112, 112, 121, 122, 153, 106, 109, 114, 121, 109, 112, 100, 112, 105, 106, 108, 98, 114, 117, 116, 112, 102, 111, 122, 111, 115, 111, 124, 99, 113, 99, 104, 113, 106, 104, 113, 114, 114, 129, 116, 114, 121, 114, 112, 121, 107, 107, 110, 116, 106, 105, 103, 119, 114, 101, 111, 108, 101, 99, 109, 100, 106, 114, 118, 125, 109, 104, 95, 124, 93, 104, 105, 111, 105, 93, 99, 106, 107, 120, 97, 117, 112, 118, 117, 108, 124, 131, 99, 102, 109, 128, 102, 115, 118, 116, 105, 115, 104, 119, 116, 99, 100, 111, 106, 111, 103, 97, 113, 107, 109, 104, 104, 124, 108, 113, 99, 114, 101, 108, 109, 104, 117, 107, 113, 120, 113, 105, 111, 104, 99, 101, 126, 106, 105, 111, 102, 107, 106, 101, 113, 115, 121, 108, 121, 119, 96, 109, 110, 94, 106, 103, 103, 111, 97, 115, 113, 122, 110, 119, 114, 116, 102, 109, 116, 98, 115, 100, 101, 118, 113, 114, 109, 103, 113, 108, 108, 109, 115, 106, 100, 100, 105, 116, 118, 110, 91, 121, 115, 116, 103, 103, 127, 120, 119, 125, 104, 112, 115, 103, 113, 105, 115, 105, 107, 109, 98, 103, 119, 105, 106, 112, 114, 106, 106, 104, 111, 122, 111, 95, 115, 121, 108, 107, 113, 101, 101, 111, 104, 98, 105, 106, 111, 138, 110, 103, 107, 113, 105, 111, 99, 117, 116, 112, 104, 122, 118, 118, 104, 116, 113, 111, 120, 106, 96, 110, 106, 103, 123, 118, 105, 125, 101, 99, 110, 121, 107, 100, 108, 107, 115, 109, 106, 97, 118, 107, 114, 115, 120, 114, 115, 106, 101, 105, 109, 121, 110, 108, 111, 109, 111, 112, 120, 117, 113, 104, 108, 115, 100, 106, 110, 112, 121, 91, 104, 102, 99, 111, 110, 108, 126, 110, 109, 110, 108, 113, 107, 105, 94, 112, 112, 106, 113, 114, 102, 103, 113, 107, 119, 93, 107, 101, 109, 113, 109, 114, 110, 104, 123, 103, 112, 100, 111, 104, 107, 106, 92, 100, 107, 116, 110, 97, 116, 107, 99, 91, 104, 108, 119, 113, 110, 101, 117, 107, 118, 109, 99, 109, 105, 108, 110, 105, 109, 109, 101, 107, 112, 121, 108, 106, 89, 114, 107, 116, 113, 99, 105, 113, 116, 99, 106, 108, 110, 95, 113, 108, 109, 104, 115, 101, 101, 121, 109, 122, 107, 110, 104, 114, 115, 106, 111, 109, 120, 102, 100, 112, 114, 104, 106, 92, 109, 113, 113, 105, 97, 92, 101, 124, 117, 94, 115, 95, 106, 142, 116, 102, 100, 105, 117, 99, 89, 113, 106, 108, 115, 104, 102, 110, 121, 100, 102, 103, 114, 122, 116, 123, 113, 107, 102, 101, 103, 122, 103, 122, 111, 101, 130, 112, 117, 104, 120, 89, 93, 104, 122, 115, 106, 117, 114, 108, 104, 103, 104, 111, 96, 103, 115, 106, 97, 117, 120, 93, 128, 117, 100, 120, 106, 101, 106, 95, 104, 114, 114, 105, 104, 99, 109, 107, 107, 118, 111, 104, 110, 115, 110, 135, 108, 122, 98, 117, 99, 131, 108, 109, 110, 93, 99, 114, 122, 105, 106, 116, 122, 108, 110, 91, 100, 109, 108, 110, 107, 101, 102, 107, 115, 110, 107, 111, 100, 103, 109, 110, 104, 110, 98, 104, 95, 88, 112, 124, 94, 124, 103, 103, 107, 110, 107, 102, 106, 123, 125, 111, 108, 112, 113, 108, 112, 106, 110, 109, 114, 113, 115, 110, 124, 105, 113, 115, 105, 111, 109, 110, 108, 105, 105, 106, 112, 107, 112, 106, 112, 111, 117, 114, 108, 111, 105, 108, 110, 106, 111, 120, 104, 97, 107, 111, 110, 113, 102, 109, 101, 120, 97, 109, 115, 113, 113, 104, 110, 111, 107, 109, 110, 103, 115, 107, 120, 102, 102, 108, 106, 115, 109, 103, 103, 105, 102, 108, 103, 108, 87, 111, 101, 115, 110, 105, 110, 115, 120, 106, 111, 101, 105, 110, 117, 112, 125, 111, 116, 114, 116, 116, 123, 111, 111, 108, 103, 109, 109, 109, 111, 107, 92, 90, 107, 108, 102, 112, 114, 108, 105, 111, 108, 101, 127, 111, 114, 107, 119, 108, 116, 106, 100, 117, 113, 117, 113, 111, 108, 111, 116, 99, 115, 117, 105, 109, 102, 110, 116, 112, 107, 112, 109, 108, 110, 113, 98, 104, 109, 109, 110, 105, 108, 99, 107, 108, 107, 110, 109, 108, 119, 113, 113, 114, 104, 106, 113, 116, 112, 114, 107, 108, 113, 112, 111, 105, 114, 110, 108, 110, 98, 109, 110, 103, 117, 107, 91, 103, 98, 114, 101, 110, 126, 106, 117, 111, 111, 110, 110, 113, 113, 117, 112, 111, 102, 111, 107, 105, 107, 106, 115, 112, 114, 116, 106, 107, 104, 113, 102, 105, 100, 118, 104, 107, 109, 109, 116, 103, 106, 118, 111, 104, 119, 103, 102, 104, 103, 119, 108, 116, 109, 99, 106, 87, 105, 109, 102, 106, 107, 110, 112, 103, 108, 114, 116, 95, 106, 105, 113, 115, 108, 115, 100, 110, 105, 103, 112, 117, 133, 106, 105, 110, 121, 109, 106, 109, 126, 115, 107, 114, 105, 105, 101, 116, 101, 97, 99, 98, 109, 110, 111, 109, 111, 114, 116, 111, 99, 116, 106, 111, 103, 119, 114, 115, 116, 113, 120, 94, 108, 102, 115, 105, 111, 113, 110, 106, 118, 106, 103, 97, 111, 114, 115, 107, 103, 115, 106, 111, 108, 114, 107, 112, 108, 107, 118, 111, 108, 115, 109, 105, 109, 105, 110, 115, 103, 113, 114, 113, 106, 111, 112, 109, 130, 108, 109, 111, 105, 115, 120, 103, 111, 111, 94, 115, 114, 111, 117, 117, 123, 114, 118, 104, 113, 110, 121, 108, 111, 108, 108, 109, 114, 107, 118, 106, 115, 109, 112, 111, 104, 110, 100, 114, 112, 110, 101, 133, 114, 109, 101, 111, 112, 116, 102, 110, 112, 113, 94, 111, 108, 106, 107, 95, 114, 109, 108, 109, 107, 109, 102, 137, 104, 109, 109, 110, 112, 110, 103, 107, 106, 122, 119, 110, 103, 106, 107, 122, 109, 112, 110, 106, 113, 114, 121, 99, 109, 110, 108, 106, 115, 112, 112, 111, 105, 110, 112, 111, 113, 108, 106, 100, 107, 112, 106, 110, 110, 113, 112, 124, 103, 110, 109, 113, 111, 105, 111, 108, 134, 111, 122, 114, 106, 104, 121, 109, 110, 110, 110, 115, 107, 111, 107, 106, 96, 121, 117, 105, 113, 122, 110, 104, 102, 97, 115, 105, 109, 112, 118, 114, 107, 108, 106, 107, 102, 106, 105, 102, 118, 111, 110, 88, 133, 115, 106, 111, 109, 115, 109, 113, 104, 105, 128, 112, 120, 112, 120, 110, 111, 96, 118, 112, 106, 109, 107, 104, 107, 118, 106, 108, 101, 114, 105, 102, 106, 107, 107, 111, 107, 113, 113, 102, 102, 111, 103, 112, 111, 109, 114, 115, 114, 117, 106, 98, 107, 118, 113, 104, 104, 106, 107, 109, 104, 105, 114, 108, 113, 109, 104, 110, 104, 114, 102, 106, 81, 110, 105, 110, 110, 103, 130, 102, 114, 101, 108, 120, 114, 118, 109, 100, 114, 115, 122, 110, 86, 101, 104, 115, 110, 110, 95, 87, 111, 115, 108, 107, 121, 107, 114, 100, 98, 102, 100, 109, 95, 96, 87, 106, 119, 108, 107, 107, 99, 102, 101, 108, 109, 112, 106, 104, 119, 111, 111, 103, 114, 130, 111, 107, 108, 118, 107, 115, 100, 105, 102, 102, 111, 119, 107, 107, 111, 109, 110, 112, 104, 121, 119, 113, 104, 111, 107, 120, 107, 102, 104, 111, 104, 120, 114, 117, 108, 105, 120, 114, 96, 116, 101, 112, 105, 117, 110, 114, 88, 102, 115, 101, 110, 108, 115, 115, 106, 114, 101, 103, 104, 100, 112, 106, 103, 96, 113, 131, 119, 102, 137, 110, 112, 117, 101, 112, 96, 105, 122, 106, 103, 107, 108, 99, 105, 116, 126, 105, 103, 107, 104, 123, 119, 112, 94, 111, 113, 109, 118, 108, 113, 112, 117, 108, 97, 116, 129, 109, 115, 98, 117, 108, 109, 109, 110, 111, 115, 107, 113, 109, 94, 96, 107, 107, 118, 107, 102, 115, 114, 108, 109, 107, 87, 72, 106, 132, 120, 120, 111, 109, 105, 118, 112, 103, 106, 113, 99, 123, 107, 120, 112, 105, 113, 108, 103, 110, 109, 110, 111, 114, 109, 105, 99, 111, 110, 107, 104, 111, 107, 113, 111, 117, 103, 103, 108, 107, 101, 97, 113, 109, 111, 113, 110, 99, 117, 129, 113, 113, 117, 104, 110, 106, 100, 101, 117, 106, 99, 110, 115, 105, 111, 110, 104, 104, 110, 118, 114, 109, 96, 116, 102, 104, 105, 125, 111, 110, 104, 112, 104, 123, 109, 120, 116, 104, 114, 120, 111, 104, 109, 99, 110, 102, 119, 100, 100, 119, 115, 116, 113, 108, 108, 105, 109, 109, 113, 103, 120, 127, 105, 111, 110, 166, 114, 107, 112, 101, 122, 114, 128, 108, 114, 121, 121, 105, 107, 107, 101, 114, 109, 108, 136, 100, 116, 111, 105, 108, 118, 113, 135, 120, 124, 106, 111, 115, 108, 83, 106, 102, 120, 98, 100, 110, 119, 101, 114, 135, 110, 114, 107, 118, 110, 106, 107, 107, 108, 103, 106, 109, 112, 106, 110, 105, 107, 97, 116, 101, 109, 103, 111, 108, 95, 111, 105, 104, 113, 112, 114, 114, 97, 114, 102, 117, 115, 108, 89, 111, 103, 95, 111, 109, 115, 103, 123, 113, 111, 110, 114, 110, 106, 110, 105, 104, 119, 97, 103, 121, 92, 116, 112, 113, 112, 112, 111, 109, 106, 109, 102, 108, 125, 106, 121, 105, 106, 115, 110, 112, 108, 118, 106, 113, 111, 105, 116, 101, 101, 88, 108, 112, 115, 111, 89, 114, 120, 105, 115, 110, 113, 98, 105, 111, 105, 108, 104, 106, 109, 120, 127, 117, 111, 95, 105, 127, 143, 106, 115, 102, 106, 118, 107, 115, 112, 108, 109, 106, 94, 110, 131, 126, 104, 116, 108, 109, 112, 108, 120, 112, 107, 104, 116, 112, 102, 100, 103, 110, 105, 105, 108, 109, 86, 88, 111, 105, 110, 69, 108, 100, 117, 126, 113, 105, 109, 120, 118, 111, 102, 108, 107, 113, 110, 103, 107, 99, 113, 115, 104, 112, 104, 125, 111, 102, 107, 107, 105, 102, 112, 111, 105, 120, 111, 110, 99, 110, 107, 105, 107, 107, 97, 106, 113, 103, 107, 104, 113, 110, 109, 114, 102, 106, 108, 113, 112, 110, 109, 108, 119, 112, 111, 114, 110, 111, 116, 110, 109, 116, 115, 108, 119, 106, 110, 95, 113, 105, 105, 120, 102, 107, 106, 101, 114, 121, 118, 99, 103, 85, 109, 99, 118, 109, 110, 97, 108, 106, 102, 113, 104, 108, 121, 110, 102, 108, 114, 111, 121, 93, 114, 104, 107, 109, 108, 107, 96, 93, 110, 118, 110, 115, 132, 105, 69, 108, 109, 103, 104, 109, 108, 101, 114, 106, 111, 116, 103, 109, 108, 106, 107, 108, 116, 90, 125, 111, 105, 119, 103, 99, 159, 104, 108, 115, 107, 108, 93, 107, 128, 115, 115, 107, 112, 105, 93, 119, 106, 96, 101, 112, 110, 109, 115, 108, 111, 111, 102, 106, 113, 116, 112, 110, 110, 102, 103, 103, 100, 129, 118, 103, 111, 117, 107, 121, 103, 99, 106, 119, 101, 100, 116, 108, 112, 108, 114, 106, 102, 107, 88, 133, 109, 102, 116, 102, 104, 119, 107, 111, 120, 112, 117, 105, 115, 104, 105, 101, 108, 110, 121, 119, 108, 106, 112, 124, 99, 116, 108, 112, 112, 109, 93, 104, 123, 109, 109, 102, 118, 116, 90, 103, 112, 100, 105, 100, 114, 109, 108, 120, 104, 144, 112, 114, 101, 112, 112, 105, 103, 108, 108, 97, 121, 122, 92, 114, 107, 107, 111, 99, 114, 107, 116, 106, 115, 108, 103, 108, 105, 106, 126, 113, 100, 124, 111, 101, 110, 110, 126, 107, 101, 112, 112, 107, 110, 102, 101, 110, 108, 93, 111, 114, 118, 134, 108, 104, 103, 109, 106, 106, 121, 104, 106, 106, 103, 112, 101, 112, 102, 111, 108, 108, 108, 126, 101, 97, 106, 101, 106, 107, 106, 121, 120, 104, 89, 103, 114, 106, 103, 105, 100, 100, 98, 117, 105, 107, 111, 116, 103, 115, 107, 103, 117, 113, 127, 119, 107, 114, 133, 110, 107, 113, 122, 106, 99, 110, 115, 125, 117, 110, 93, 105, 108, 104, 111, 115, 111, 108, 127, 116, 100, 114, 103, 108, 108, 107, 109, 112, 111, 117, 116, 115, 114, 96, 117, 112, 106, 109, 117, 115, 108, 123, 108, 109, 109, 106, 105, 106, 112, 103, 101, 112, 108, 116, 115, 106, 112, 111, 112, 116, 114, 105, 106, 102, 110, 106, 112, 158, 103, 99, 112, 108, 110, 110, 110, 100, 109, 113, 100, 99, 117, 110, 112, 100, 111, 106, 105, 112, 108, 115, 114, 110, 110, 104, 118, 115, 115, 107, 168, 89, 116, 130, 107, 108, 110, 113, 105, 103, 109, 115, 113, 96, 104, 99, 105, 102, 117, 101, 106, 117, 118, 97, 118, 114, 117, 110, 109, 104, 113, 125, 113, 110, 109, 104, 108, 106, 105, 110, 111, 109, 111, 100, 108, 121, 110, 99, 109, 112, 118, 103, 113, 117, 124, 115, 120, 122, 103, 96, 118, 111, 107, 119, 99, 117, 107, 115, 109, 95, 131, 111, 118, 107, 114, 105, 134, 106, 113, 104, 112, 109, 107, 117, 109, 111, 109, 104, 106, 108, 104, 109, 112, 111, 109, 111, 118, 113, 115, 110, 104, 108, 114, 110, 101, 109, 115, 110, 106, 105, 107, 106, 104, 104, 100, 98, 110, 112, 113, 109, 106, 114, 112, 115, 114, 112, 110, 108, 109, 120, 104, 95, 106, 103, 108, 109, 103, 107, 102, 111, 107, 113, 116, 108, 112, 95, 108, 119, 114, 111, 106, 109, 112, 108, 116, 111, 112, 106, 105, 110, 106, 118, 110, 109, 112, 102, 123, 112, 108, 108, 111, 107, 103, 107, 108, 110, 109, 108, 111, 103, 110, 111, 109, 109, 112, 108, 112, 107, 110, 104, 110, 112, 107, 117, 114, 112, 113, 105, 112, 105, 111, 112, 108, 105, 111, 111, 111, 114, 103, 113, 123, 151, 102, 91, 107, 108, 106, 104, 104, 111, 106, 108, 112, 107, 107, 105, 109, 110, 111, 109, 104, 102, 115, 111, 102, 118, 111, 106, 108, 105, 114, 111, 115, 116, 96, 111, 102, 109, 91, 113, 117, 112, 107, 113, 104, 113, 115, 109, 112, 102, 108, 105, 109, 106, 110, 103, 111, 109, 131, 96, 107, 107, 104, 110, 102, 117, 109, 81, 108, 113, 110, 109, 107, 109, 108, 109, 105, 104, 108, 105, 132, 117, 104, 104, 106, 112, 106, 114, 110, 109, 110, 102, 140, 108, 107, 107, 112, 112, 114, 96, 111, 115, 106, 107, 102, 101, 107, 112, 116, 117, 114, 114, 106, 103, 117, 109, 101, 98, 110, 109, 114, 107, 108, 113, 107, 105, 116, 116, 114, 105, 115, 112, 114, 110, 116, 107, 108, 109, 118, 119, 113, 101, 110, 113, 107, 108, 101, 103, 107, 106, 112, 113, 114, 108, 112, 110, 113, 111, 107, 101, 104, 111, 111, 102, 106, 108, 106, 114, 114, 95, 105, 110, 106, 113, 112, 104, 105, 91, 110, 111, 112, 101, 104, 112, 106, 105, 114, 110, 103, 116, 110, 106, 116, 119, 109, 101, 102, 111, 106, 106, 112, 105, 112, 108, 107, 114, 97, 98, 102, 107, 108, 109, 108, 110, 117, 97, 112, 107, 113, 107, 120, 112, 124, 99, 110, 106, 110, 100, 107, 112, 118, 111, 108, 107, 106, 106, 107, 110, 116, 113, 108, 113, 107, 99, 112, 119, 110, 105, 108, 115, 111, 109, 105, 111, 108, 106, 112, 108, 108, 110, 115, 117, 123, 112, 115, 114, 113, 120, 109, 115, 113, 100, 93, 110, 117, 109, 113, 110, 111, 111, 110, 106, 103, 118, 112, 108, 116, 111, 111, 112, 104, 103, 119, 105, 111, 107, 108, 120, 113, 113, 115, 117, 121, 109, 110, 113, 113, 110, 107, 115, 112, 111, 116, 110, 107, 109, 109, 111, 112, 114, 107, 112, 113, 105, 102, 115, 112, 110, 107, 113, 114, 108, 110, 109, 111, 113, 110, 111, 107, 114, 116, 113, 112, 107, 105, 114, 99, 108, 98, 108, 114, 117, 117, 108, 107, 107, 113, 109, 110, 112, 97, 115, 117, 117, 109, 104, 106, 110, 110, 113, 118, 121, 109, 108, 105, 111, 108, 103, 116, 119, 104, 112, 108, 108, 113, 111, 106, 108, 98, 105, 112, 112, 113, 111, 108, 112, 107, 106, 100, 102, 110, 112, 101, 113, 109, 111, 113, 111, 117, 112, 105, 110, 103, 115, 110, 116, 105, 107, 110, 110, 111, 103, 110, 106, 116, 109, 111, 111, 102, 116, 105, 106, 113, 112, 109, 99, 112, 109, 110, 109, 100, 110, 102, 104, 111, 109, 106, 119, 112, 112, 110, 105, 107, 116, 100, 116, 107, 105, 116, 109, 92, 105, 109, 115, 105, 107, 111, 104, 113, 107, 106, 110, 112, 133, 110, 111, 124, 107, 114, 112, 114, 103, 109, 103, 110, 109, 115, 113, 108, 111, 119, 112, 109, 113, 111, 94, 112, 113, 115, 111, 106, 112, 104, 111, 114, 110, 110, 101, 113, 108, 110, 104, 112, 112, 109, 108, 112, 112, 98, 109, 103, 106, 114, 111, 115, 108, 95, 112, 102, 110, 112, 112, 105, 111, 115, 113, 110, 113, 97, 103, 108, 110, 112, 110, 111, 107, 115, 115, 107, 103, 112, 103, 109, 114, 113, 111, 111, 114, 106, 110, 111, 109, 106, 97, 111, 110, 126, 112, 114, 108, 125, 111, 104, 105, 112, 103, 113, 112, 111, 113, 110, 113, 110, 115, 106, 121, 109, 118, 108, 111, 118, 109, 108, 114, 111, 99, 108, 109, 109, 110, 109, 113, 111, 129, 100, 107, 107, 117, 105, 106, 108, 111, 114, 109, 110, 111, 114, 113, 104, 117, 112, 106, 109, 112, 106, 112, 114, 113, 120, 103, 107, 111, 106, 114, 119, 109, 108, 114, 106, 114, 109, 106, 115, 111, 112, 107, 108, 109, 112, 107, 110, 118, 112, 108, 113, 107, 120, 115, 111, 111, 108, 109, 105, 113, 111, 109, 108, 117, 116, 109, 99, 108, 112, 111, 115, 112, 102, 113, 109, 113, 118, 112, 109, 113, 106, 116, 107, 111, 113, 111, 110, 101, 109, 110, 118, 114, 135, 110, 106, 106, 106, 125, 111, 112, 108, 108, 104, 110, 106, 109, 113, 107, 111, 111, 115, 109, 110, 99, 109, 107, 108, 105, 114, 104, 112, 108, 105, 108, 113, 109, 106, 113, 105, 113, 105, 107, 112, 114, 104, 106, 116, 114, 105, 112, 116, 112, 104, 110, 117, 104, 112, 105, 111, 118, 108, 108, 107, 115, 113, 111, 105, 112, 106, 110, 106, 113, 108, 106, 113, 111, 103, 114, 105, 104, 107, 106, 109, 107, 103, 101, 108, 106, 109, 114, 104, 118, 110, 113, 107, 107, 105, 106, 109, 113, 107, 108, 116, 111, 108, 107, 105, 115, 111, 102, 113, 115, 109, 109, 104, 104, 112, 112, 104, 109, 110, 114, 106, 124, 106, 103, 104, 112, 111, 112, 122, 109, 95, 118, 116, 110, 108, 110, 116, 117, 105, 109, 101, 100, 107, 106, 111, 116, 114, 106, 122, 114, 109, 103, 109, 110, 109, 106, 107, 112, 119, 116, 96, 104, 103, 107, 99, 109, 115, 106, 113, 99, 113, 111, 104, 87, 109, 110, 106, 107, 114, 115, 115, 106, 125, 111, 120, 106, 113, 113, 100, 122, 107, 111, 112, 112, 113, 118, 101, 114, 116, 105, 108, 117, 105, 113, 121, 108, 112, 106, 95, 106, 98, 107, 101, 128, 99, 106, 112, 109, 109, 111, 113, 111, 118, 100, 79, 105, 108, 110, 116, 111, 111, 121, 108, 101, 117, 107, 113, 107, 112, 116, 99, 109, 99, 110, 111, 115, 112, 110, 106, 98, 111, 109, 109, 111, 115, 110, 108, 116, 107, 109, 115, 105, 111, 113, 111, 122, 113, 115, 103, 100, 134, 106, 121, 123, 108, 111, 113, 101, 110, 114, 104, 110, 111, 110, 109, 112, 112, 109, 112, 110, 116, 109, 98, 111, 111, 107, 114, 104, 109, 111, 107, 116, 108, 109, 104, 109, 103, 112, 89, 108, 101, 110, 111, 111, 115, 110, 121, 107, 107, 106, 111, 109, 120, 108, 106, 101, 107, 109, 113, 114, 125, 106, 98, 116, 107, 113, 112, 109, 111, 108, 113, 104, 98, 102, 114, 107, 95, 111, 110, 107, 114, 112, 115, 110, 103, 109, 107, 111, 103, 117, 109, 116, 110, 110, 114, 93, 105, 108, 107, 113, 116, 120, 109, 113, 110, 112, 116, 106, 108, 110, 112, 116, 102, 104, 113, 107, 106, 116, 97, 108, 104, 110, 116, 112, 106, 111, 109, 113, 118, 118, 112, 105, 113, 107, 114, 118, 115, 111, 107, 116, 109, 94, 109, 118, 108, 105, 107, 107, 112, 109, 107, 102, 110, 112, 104, 106, 118, 113, 106, 112, 107, 112, 107, 110, 98, 116, 104, 112, 120, 114, 112, 107, 116, 110, 135, 116, 117, 107, 107, 104, 92, 89, 110, 122, 104, 109, 95, 117, 155, 113, 108, 113, 107, 116, 107, 112, 118, 116, 115, 117, 112, 110, 114, 109, 112, 115, 110, 106, 100, 105, 121, 107, 116, 106, 120, 106, 105, 103, 108, 113, 102, 115, 117, 110, 106, 124, 109, 103, 103, 112, 115, 97, 106, 113, 110, 110, 108, 118, 106, 109, 112, 98, 99, 112, 121, 105, 118, 96, 114, 106, 108, 105, 108, 107, 113, 107, 109, 111, 109, 111, 106, 108, 107, 102, 111, 110, 115, 109, 109, 96, 111, 101, 104, 107, 121, 110, 105, 109, 111, 110, 117, 105, 95, 136, 111, 111, 120, 111, 110, 112, 106, 100, 107, 117, 110, 117, 108, 114, 111, 105, 111, 117, 111, 107, 105, 121, 113, 112, 99, 113, 109, 116, 108, 116, 112, 114, 111, 112, 107, 111, 107, 120, 113, 109, 106, 114, 107, 110, 106, 111, 114, 109, 106, 112, 111, 115, 120, 111, 112, 114, 114, 111, 105, 105, 111, 111, 111, 109, 108, 109, 102, 104, 110, 113, 112, 109, 112, 106, 111, 110, 111, 112, 112, 112, 109, 112, 113, 113, 112, 114, 102, 107, 114, 110, 111, 108, 114, 111, 113, 108, 111, 109, 109, 114, 115, 119, 120, 106, 98, 110, 108, 120, 110, 107, 114, 111, 109, 113, 115, 110, 108, 110, 113, 105, 107, 112, 111, 104, 111, 106, 110, 110, 111, 106, 109, 107, 110, 101, 113, 108, 110, 113, 118, 107, 110, 110, 111, 111, 110, 108, 108, 106, 108, 109, 109, 109, 111, 108, 108, 112, 109, 102, 109, 111, 109, 113, 103, 110, 104, 110, 107, 116, 106, 113, 112, 109, 112, 110, 112, 107, 111, 107, 111, 109, 101, 109, 101, 114, 113, 108, 110, 110, 107, 101, 109, 114, 116, 111, 99, 112, 108, 105, 110, 117, 111, 106, 114, 110, 112, 100, 107, 107, 110, 114, 114, 103, 109, 110, 108, 114, 113, 113, 109, 109, 107, 106, 111, 110, 104, 107, 107, 111, 111, 110, 107, 106, 107, 103, 111, 110, 110, 115, 106, 110, 105, 113, 110, 103, 118, 105, 115, 110, 114, 110, 112, 110, 107, 117, 111, 111, 112, 109, 107, 114, 110, 111, 118, 113, 109, 118, 110, 107, 112, 111, 107, 127, 100, 110, 112, 112, 110, 110, 109, 111, 109, 113, 113, 111, 107, 109, 113, 118, 105, 116, 118, 113, 108, 111, 115, 111, 110, 105, 110, 108, 108, 111, 106, 113, 109, 109, 105, 109, 108, 108, 109, 111, 110, 109, 111, 109, 113, 110, 118, 107, 123, 111, 109, 105, 116, 113, 113, 112, 113, 110, 109, 104, 114, 102, 111, 108, 107, 110, 108, 108, 112, 112, 107, 114, 113, 113, 112, 111, 113, 121, 119, 106, 113, 110, 106, 113, 97, 116, 115, 112, 116, 111, 110, 101, 117, 107, 110, 106, 108, 109, 113, 100, 109, 98, 114, 133, 109, 110, 109, 108, 109, 100, 110, 109, 114, 105, 108, 111, 101, 109, 107, 113, 111, 111, 108, 110, 105, 109, 112, 105, 111, 110, 107, 113, 107, 103, 116, 112, 109, 108, 108, 113, 113, 110, 105, 108, 113, 107, 105, 103, 114, 118, 114, 109, 117, 115, 111, 111, 108, 111, 109, 112, 110, 108, 110, 112, 112, 111, 106, 109, 104, 109, 104, 109, 109, 105, 106, 115, 111, 107, 112, 105, 108, 103, 110, 108, 110, 104, 107, 115, 112, 99, 113, 121, 116, 108, 113, 109, 109, 112, 113, 104, 108, 102, 108, 104, 110, 121, 101, 104, 111, 113, 121, 110, 120, 104, 113, 95, 98, 108, 117, 112, 109, 115, 106, 113, 98, 109, 119, 110, 112, 110, 111, 105, 113, 111, 114, 111, 117, 110, 124, 108, 117, 106, 107, 109, 107, 109, 111, 114, 110, 112, 113, 115, 107, 108, 112, 108, 105, 109, 100, 102, 109, 109, 107, 108, 117, 118, 130, 111, 110, 111, 126, 113, 111, 109, 119, 117, 115, 108, 107, 105, 110, 111, 107, 112, 99, 105, 111, 112, 111, 103, 125, 114, 110, 113, 108, 106, 112, 109, 111, 109, 108, 115, 117, 111, 104, 123, 111, 112, 104, 109, 119, 117, 90, 113, 107, 110, 112, 104, 123, 114, 114, 114, 90, 104, 108, 108, 109, 112, 116, 108, 114, 112, 113, 116, 116, 113, 135, 112, 103, 107, 110, 101, 108, 130, 104, 123, 117, 116, 107, 114, 89, 124, 107, 105, 107, 91, 110, 114, 106, 112, 109, 116, 105, 111, 104, 110, 115, 79, 102, 110, 111, 109, 109, 108, 114, 107, 114, 112, 100, 110, 111, 115, 107, 121, 102, 103, 113, 113, 110, 105, 108, 103, 113, 125, 101, 107, 101, 119, 99, 110, 99, 110, 110, 113, 117, 108, 108, 116, 89, 118, 82, 110, 114, 111, 111, 108, 107, 114, 116, 110, 112, 106, 112, 115, 98, 104, 87, 115, 112, 107, 111, 109, 111, 121, 109, 88, 111, 106, 116, 110, 119, 110, 81, 107, 109, 108, 116, 113, 112, 112, 111, 111, 114, 113, 107, 120, 95, 108, 115, 112, 94, 108, 111, 110, 112, 113, 114, 136, 118, 105, 114, 113, 111, 111, 105, 111, 114, 108, 112, 100, 117, 112, 109, 114, 114, 116, 111, 120, 98, 95, 113, 120, 114, 124, 107, 112, 115, 111, 105, 111, 111, 110, 105, 121, 111, 110, 103, 93, 113, 113, 130, 115, 116, 112, 107, 115, 109, 115, 109, 112, 111, 88, 112, 96, 118, 111, 110, 108, 107, 110, 120, 110, 106, 111, 109, 120, 109, 110, 113, 103, 113, 127, 103, 101, 141, 108, 122, 108, 104, 109, 109, 109, 119, 110, 107, 90, 108, 116, 110, 103, 113, 115, 106, 113, 110, 109, 105, 114, 108, 108, 113, 113, 112, 112, 107, 112, 113, 105, 119, 107, 111, 116, 104, 117, 107, 105, 114, 117, 113, 96, 110, 110, 105, 109, 105, 115, 112, 132, 121, 108, 110, 110, 111, 114, 114, 110, 106, 110, 105, 109, 116, 104, 111, 118, 111, 111, 108, 108, 108, 111, 115, 110, 106, 113, 110, 115, 103, 108, 109, 110, 117, 115, 109, 106, 113, 117, 117, 118, 105, 107, 114, 109, 110, 109, 106, 124, 110, 130, 113, 117, 108, 116, 111, 109, 120, 98, 110, 111, 109, 109, 107, 110, 110, 104, 105, 118, 111, 101, 127, 116, 111, 110, 108, 108, 108, 102, 106, 115, 116, 116, 112, 97, 112, 120, 114, 112, 111, 110, 107, 110, 109, 110, 113, 109, 113, 111, 109, 106, 116, 112, 111, 108, 107, 114, 106, 117, 114, 105, 119, 116, 107, 108, 124, 110, 108, 114, 104, 111, 116, 110, 86, 110, 113, 109, 112, 113, 112, 113, 112, 106, 115, 109, 116, 115, 108, 110, 115, 111, 108, 99, 107, 117, 124, 109, 113, 109, 110, 111, 113, 106, 117, 108, 110, 108, 111, 117, 116, 112, 123, 132, 95, 124, 101, 120, 107, 111, 115, 110, 112, 109, 112, 111, 111, 112, 111, 101, 102, 108, 107, 97, 110, 119, 106, 139, 116, 110, 98, 109, 109, 113, 106, 118, 107, 106, 102, 110, 108, 100, 110, 113, 120, 106, 115, 104, 110, 96, 114, 93, 106, 105, 109, 98, 107, 112, 128, 113, 103, 107, 105, 101, 102, 109, 96, 100, 105, 116, 110, 104, 107, 104, 114, 119, 91, 105, 119, 122, 111, 113, 106, 99, 115, 106, 108, 112, 115, 106, 105, 110, 111, 90, 113, 111, 108, 111, 126, 107, 121, 88, 109, 113, 119, 103, 113, 107, 99, 105, 102, 102, 98, 109, 114, 116, 109, 99, 111, 112, 111, 109, 104, 106, 129, 107, 106, 117, 122, 119, 107, 104, 115, 113, 109, 112, 124, 104, 117, 131, 107, 116, 109, 114, 104, 103, 106, 111, 110, 113, 112, 104, 101, 116, 107, 103, 105, 109, 115, 109, 105, 106, 114, 108, 116, 109, 114, 102, 109, 105, 105, 106, 107, 119, 116, 99, 112, 111, 121, 115, 114, 122, 118, 126, 99, 109, 105, 114, 105, 89, 109, 106, 112, 101, 105, 113, 99, 105, 102, 113, 103, 111, 102, 116, 112, 111, 113, 95, 114, 94, 114, 105, 123, 113, 98, 120, 107, 121, 105, 103, 97, 99, 95, 103, 97, 105, 116, 106, 104, 103, 109, 116, 100, 106, 112, 108, 112, 114, 103, 100, 110, 109, 103, 113, 111, 111, 107, 120, 101, 117, 109, 109, 106, 116, 110, 96, 109, 97, 94, 100, 112, 104, 97, 108, 112, 115, 96, 95, 110, 108, 126, 112, 108, 111, 103, 125, 109, 158, 102, 103, 113, 109, 99, 108, 100, 102, 96, 107, 106, 124, 107, 122, 116, 107, 109, 106, 110, 107, 115, 95, 111, 111, 107, 99, 117, 109, 103, 112, 106, 110, 105, 111, 98, 114, 107, 109, 113, 120, 107, 107, 107, 111, 106, 108, 109, 92, 119, 107, 121, 125, 114, 106, 126, 112, 96, 108, 111, 90, 105, 103, 110, 106, 97, 99, 101, 100, 111, 115, 100, 109, 112, 101, 106, 155, 110, 120, 103, 106, 120, 121, 112, 103, 117, 123, 104, 106, 116, 97, 107, 101, 112, 139, 108, 108, 111, 111, 118, 116, 117, 115, 101, 110, 111, 111, 102, 117, 107, 112, 109, 99, 113, 100, 112, 110, 111, 95, 114, 117, 108, 108, 104, 114, 111, 112, 110, 105, 114, 108, 117, 96, 105, 95, 103, 106, 104, 113, 116, 95, 111, 104, 103, 114, 109, 95, 121, 111, 113, 105, 103, 106, 111, 110, 94, 109, 106, 101, 105, 121, 111, 107, 98, 115, 108, 100, 104, 123, 112, 105, 103, 113, 111, 98, 110, 110, 105, 120, 102, 123, 115, 115, 101, 117, 115, 112, 98, 106, 101, 109, 101, 111, 94, 119, 105, 97, 139, 112, 97, 108, 114, 124, 109, 103, 132, 114, 114, 114, 107, 119, 117, 105, 88, 106, 107, 112, 112, 97, 100, 118, 109, 110, 109, 109, 106, 113, 113, 111, 112, 105, 102, 106, 109, 113, 104, 102, 120, 129, 105, 100, 117, 107, 113, 111, 99, 109, 105, 117, 104, 114, 107, 104, 113, 110, 106, 113, 112, 111, 100, 110, 111, 109, 113, 108, 113, 122, 106, 116, 114, 107, 106, 113, 106, 121, 105, 87, 102, 99, 110, 112, 110, 106, 112, 103, 108, 104, 111, 112, 113, 111, 102, 106, 104, 102, 108, 106, 107, 105, 111, 105, 114, 111, 109, 118, 117, 108, 108, 108, 111, 110, 110, 115, 104, 116, 105, 105, 103, 105, 129, 106, 116, 119, 111, 114, 108, 108, 107, 104, 118, 109, 113, 102, 111, 97, 114, 120, 117, 122, 106, 117, 106, 96, 116, 105, 112, 99, 106, 106, 109, 113, 103, 106, 118, 110, 123, 115, 108, 115, 108, 126, 113, 111, 109, 108, 116, 129, 110, 109, 103, 113, 111, 115, 113, 105, 107, 125, 113, 108, 113, 102, 111, 118, 108, 112, 106, 114, 110, 110, 103, 110, 115, 104, 102, 104, 106, 117, 114, 119, 116, 114, 110, 109, 117, 108, 112, 113, 101, 113, 104, 107, 108, 114, 111, 114, 110, 106, 106, 106, 107, 102, 103, 115, 107, 116, 112, 109, 105, 108, 111, 108, 112, 113, 108, 108, 106, 112, 109, 121, 104, 116, 109, 108, 100, 127, 107, 109, 104, 106, 113, 108, 108, 117, 110, 119, 105, 117, 107, 100, 105, 112, 119, 106, 108, 100, 102, 106, 111, 114, 107, 101, 124, 109, 110, 113, 112, 112, 102, 104, 114, 118, 110, 110, 99, 115, 119, 116, 113, 109, 111, 108, 109, 102, 109, 108, 127, 102, 100, 110, 105, 114, 118, 111, 114, 105, 105, 103, 114, 104, 112, 116, 106, 113, 113, 116, 108, 93, 108, 104, 105, 107, 102, 115, 113, 109, 113, 110, 105, 99, 109, 108, 127, 109, 115, 103, 108, 112, 113, 110, 108, 89, 111, 96, 114, 109, 115, 107, 103, 105, 108, 100, 107, 105, 110, 105, 111, 113, 103, 110, 111, 99, 110, 120, 115, 121, 108, 99, 115, 104, 113, 117, 111, 119, 118, 110, 100, 104, 123, 100, 107, 95, 114, 110, 112, 114, 103, 108, 113, 108, 109, 113, 106, 104, 104, 113, 104, 113, 101, 110, 106, 109, 108, 81, 109, 111, 106, 113, 104, 102, 94, 113, 102, 112, 106, 112, 109, 103, 97, 108, 110, 117, 114, 107, 105, 104, 112, 113, 112, 99, 95, 108, 120, 110, 106, 108, 103, 104, 119, 119, 107, 108, 105, 100, 113, 110, 106, 101, 96, 107, 86, 97, 109, 110, 101, 107, 116, 119, 111, 107, 118, 117, 99, 113, 111, 112, 113, 106, 103, 108, 109, 111, 112, 112, 114, 105, 104, 113, 107, 112, 116, 110, 113, 107, 113, 108, 112, 107, 103, 107, 103, 102, 112, 108, 117, 112, 106, 109, 106, 110, 103, 111, 102, 104, 100, 101, 100, 107, 110, 110, 106, 104, 114, 97, 117, 105, 115, 109, 109, 114, 111, 108, 105, 96, 116, 104, 100, 107, 103, 100, 106, 103, 112, 112, 109, 121, 114, 105, 108, 103, 103, 107, 112, 119, 113, 108, 108, 111, 113, 111, 111, 114, 115, 110, 99, 93, 108, 113, 109, 113, 118, 107, 102, 123, 101, 111, 105, 94, 111, 109, 112, 104, 113, 114, 108, 109, 112, 96, 116, 113, 94, 115, 98, 94, 99, 107, 102, 103, 113, 106, 102, 106, 109, 104, 114, 109, 113, 106, 101, 103, 108, 108, 112, 109, 105, 103, 109, 114, 98, 114, 111, 116, 99, 108, 106, 110, 107, 110, 112, 107, 108, 110, 111, 109, 108, 112, 109, 109, 104, 114, 110, 103, 104, 101, 103, 106, 120, 101, 112, 99, 114, 108, 113, 106, 109, 113, 105, 109, 101, 107, 114, 114, 112, 114, 117, 107, 108, 111, 117, 110, 110, 115, 111, 102, 104, 106, 108, 107, 111, 102, 106, 113, 113, 106, 99, 109, 112, 110, 102, 116, 110, 105, 117, 110, 103, 117, 116, 108, 100, 94, 106, 115, 97, 99, 111, 110, 107, 109, 110, 111, 109, 103, 111, 119, 109, 103, 108, 94, 113, 109, 110, 121, 107, 109, 115, 110, 99, 100, 114, 108, 98, 108, 116, 110, 109, 110, 110, 114, 109, 108, 112, 111, 95, 114, 99, 107, 113, 112, 111, 112, 116, 107, 108, 107, 109, 110, 111, 111, 107, 115, 103, 107, 107, 111, 108, 110, 110, 112, 105, 116, 105, 104, 115, 110, 106, 113, 111, 109, 111, 112, 107, 115, 105, 98, 119, 114, 108, 122, 96, 113, 104, 103, 102, 104, 107, 103, 101, 114, 109, 111, 123, 108, 107, 111, 108, 111, 97, 111, 107, 102, 102, 98, 111, 109, 103, 107, 123, 111, 117, 117, 106, 112, 108, 94, 109, 104, 111, 101, 110, 102, 108, 109, 107, 112, 111, 106, 108, 112, 109, 99, 114, 108, 107, 110, 106, 109, 98, 115, 105, 111, 100, 98, 106, 91, 112, 105, 112, 106, 112, 107, 110, 110, 113, 105, 105, 104, 104, 104, 105, 105, 111, 106, 108, 109, 108, 103, 101, 108, 110, 110, 114, 109, 108, 106, 117, 109, 111, 111, 110, 109, 102, 92, 113, 114, 96, 110, 115, 118, 105, 105, 105, 108, 116, 110, 118, 107, 112, 109, 95, 109, 112, 102, 106, 114, 111, 104, 116, 110, 113, 106, 103, 113, 106, 112, 116, 111, 103, 120, 98, 117, 109, 107, 105, 105, 114, 103, 99, 105, 109, 94, 103, 92, 111, 103, 111, 105, 108, 111, 112, 107, 112, 108, 104, 109, 104, 108, 110, 102, 109, 106, 109, 116, 110, 115, 111, 109, 110, 111, 110, 108, 110, 95, 105, 115, 110, 105, 110, 112, 111, 108, 113, 114, 110, 109, 104, 108, 97, 118, 118, 113, 110, 113, 111, 109, 111, 111, 117, 112, 113, 111, 116, 110, 116, 110, 107, 107, 111, 109, 114, 105, 97, 106, 107, 110, 109, 111, 113, 113, 114, 108, 109, 108, 105, 111, 106, 106, 109, 117, 114, 104, 115, 110, 106, 100, 106, 114, 115, 108, 107, 122, 110, 112, 103, 108, 108, 100, 107, 119, 112, 109, 106, 103, 117, 106, 107, 121, 110, 116, 110, 94, 106, 110, 110, 100, 112, 108, 110, 101, 109, 110, 110, 95, 115, 109, 112, 108, 109, 111, 109, 98, 109, 95, 100, 113, 108, 121, 106, 108, 117, 99, 113, 108, 109, 129, 103, 104, 108, 110, 104, 100, 116, 122, 104, 116, 114, 106, 113, 106, 109, 107, 114, 103, 96, 108, 103, 109, 96, 121, 106, 128, 97, 112, 116, 113, 110, 126, 104, 103, 107, 106, 91, 105, 111, 119, 104, 105, 103, 120, 121, 115, 116, 103, 98, 106, 108, 108, 105, 102, 121, 120, 117, 106, 118, 108, 129, 120, 106, 99, 107, 106, 120, 102, 122, 122, 108, 98, 103, 110, 102, 104, 106, 106, 125, 121, 114, 105, 113, 115, 103, 109, 117, 108, 117, 109, 109, 111, 94, 106, 107, 116, 109, 106, 110, 117, 104, 123, 107, 95, 107, 114, 103, 104, 105, 112, 107, 107, 108, 116, 106, 116, 113, 100, 108, 102, 116, 105, 99, 107, 103, 101, 107, 85, 121, 123, 95, 126, 108, 98, 97, 99, 107, 106, 110, 122, 117, 103, 92, 101, 100, 101, 120, 106, 103, 110, 123, 101, 118, 108, 95, 115, 104, 109, 105, 105, 102, 110, 106, 112, 112, 131, 112, 108, 110, 109, 113, 119, 106, 100, 112, 104, 106, 113, 122, 114, 100, 102, 101, 115, 113, 107, 98, 112, 110, 112, 114, 108, 105, 121, 103, 107, 117, 108, 109, 108, 110, 98, 123, 112, 116, 120, 95, 98, 110, 113, 99, 109, 107, 108, 109, 113, 105, 102, 111, 105, 111, 117, 103, 109, 101, 97, 116, 115, 100, 108, 102, 113, 112, 109, 114, 104, 110, 125, 116, 101, 114, 86, 108, 110, 111, 102, 119, 109, 106, 100, 101, 108, 107, 105, 108, 106, 107, 102, 114, 114, 109, 112, 107, 106, 109, 116, 103, 106, 103, 101, 115, 111, 107, 114, 113, 109, 98, 107, 103, 115, 104, 110, 125, 103, 110, 99, 100, 106, 118, 104, 106, 109, 127, 108, 106, 103, 112, 102, 107, 110, 111, 103, 120, 109, 119, 106, 115, 112, 116, 105, 109, 105, 102, 105, 119, 121, 111, 106, 120, 115, 108, 113, 112, 103, 103, 113, 105, 133, 108, 100, 115, 106, 113, 105, 106, 122, 110, 110, 111, 108, 112, 103, 119, 100, 105, 98, 101, 128, 117, 99, 104, 119, 121, 108, 102, 102, 130, 110, 121, 94, 100, 119, 104, 103, 122, 114, 126, 117, 110, 97, 105, 113, 122, 98, 103, 101, 113, 117, 103, 106, 114, 105, 118, 107, 104, 117, 115, 123, 97, 97, 113, 116, 126, 112, 103, 114, 117, 119, 114, 113, 109, 109, 124, 108, 108, 116, 106, 96, 103, 113, 114, 109, 112, 110, 128, 106, 98, 111, 133, 112, 107, 113, 108, 109, 105, 110, 109, 128, 109, 105, 105, 107, 112, 108, 97, 103, 120, 107, 116, 117, 115, 117, 121, 107, 110, 110, 103, 100, 111, 116, 117, 116, 100, 109, 100, 103, 104, 110, 114, 113, 112, 110, 107, 97, 110, 116, 108, 106, 101, 109, 101, 109, 113, 101, 105, 110, 111, 103, 119, 100, 111, 105, 112, 113, 119, 100, 99, 99, 104, 117, 109, 105, 110, 101, 111, 94, 101, 105, 112, 113, 116, 106, 100, 126, 104, 97, 111, 108, 108, 104, 107, 102, 110, 111, 108, 116, 114, 117, 114, 111, 120, 104, 103, 119, 142, 112, 149, 112, 122, 114, 106, 112, 115, 107, 110, 105, 114, 106, 121, 94, 114, 108, 109, 111, 108, 111, 117, 109, 105, 109, 108, 102, 108, 114, 115, 112, 105, 108, 107, 122, 105, 110, 108, 109, 100, 109, 105, 114, 115, 114, 113, 132, 104, 100, 109, 108, 110, 118, 113, 113, 114, 110, 112, 104, 119, 120, 110, 108, 127, 109, 109, 97, 113, 114, 105, 100, 115, 110, 108, 114, 107, 100, 123, 110, 110, 115, 113, 114, 109, 113, 108, 111, 108, 105, 116, 112, 113, 114, 112, 108, 115, 118, 102, 111, 109, 108, 104, 113, 109, 99, 116, 113, 102, 118, 123, 106, 109, 104, 115, 116, 109, 119, 105, 98, 107, 111, 106, 116, 103, 112, 100, 112, 118, 104, 112, 117, 102, 117, 105, 98, 109, 122, 116, 114, 105, 110, 102, 110, 115, 110, 113, 109, 116, 109, 120, 118, 111, 104, 111, 109, 108, 104, 109, 122, 105, 108, 117, 112, 98, 120, 112, 113, 111, 104, 115, 102, 102, 124, 109, 109, 103, 110, 111, 107, 109, 109, 124, 103, 112, 107, 105, 112, 110, 114, 123, 105, 111, 105, 112, 111, 106, 114, 101, 107, 118, 117, 116, 107, 111, 103, 112, 111, 116, 109, 115, 114, 108, 114, 114, 123, 115, 115, 106, 115, 107, 115, 100, 111, 101, 104, 104, 107, 113, 103, 114, 102, 113, 106, 106, 102, 101, 108, 109, 108, 111, 112, 113, 104, 104, 110, 105, 103, 112, 105, 103, 111, 110, 107, 123, 107, 106, 105, 113, 110, 112, 105, 110, 108, 108, 107, 111, 127, 112, 108, 108, 106, 102, 116, 108, 107, 104, 109, 115, 101, 112, 116, 101, 111, 115, 99, 113, 107, 116, 98, 107, 111, 97, 114, 110, 119, 112, 118, 113, 110, 98, 112, 111, 118, 107, 108, 104, 120, 110, 104, 110, 126, 118, 111, 122, 108, 112, 111, 102, 113, 113, 110, 119, 101, 110, 105, 113, 113, 103, 114, 103, 111, 119, 110, 107, 104, 116, 114, 100, 110, 108, 109, 108, 98, 100, 118, 111, 128, 108, 106, 114, 113, 102, 116, 105, 146, 111, 103, 111, 113, 108, 113, 110, 104, 100, 108, 128, 111, 108, 104, 109, 107, 108, 118, 108, 103, 116, 109, 116, 110, 113, 119, 106, 111, 114, 109, 101, 116, 114, 121, 111, 119, 122, 108, 110, 109, 112, 119, 108, 78, 106, 109, 105, 112, 107, 105, 109, 117, 108, 108, 103, 111, 104, 107, 120, 113, 114, 115, 103, 115, 109, 103, 119, 116, 102, 114, 113, 109, 103, 117, 118, 100, 113, 111, 110, 106, 103, 110, 113, 111, 102, 106, 124, 102, 112, 113, 104, 105, 124, 112, 111, 107, 96, 96, 110, 102, 121, 106, 112, 110, 120, 101, 107, 108, 112, 114, 110, 109, 117, 114, 108, 107, 100, 138, 113, 105, 110, 103, 110, 101, 115, 112, 110, 102, 94, 122, 104, 118, 109, 119, 111, 106, 103, 102, 111, 112, 105, 103, 102, 108, 120, 109, 115, 117, 113, 111, 110, 109, 105, 108, 120, 109, 108, 104, 108, 108, 110, 108, 103, 109, 111, 99, 121, 104, 121, 111, 117, 111, 104, 111, 106, 109, 99, 110, 116, 106, 108, 109, 106, 112, 113, 110, 109, 104, 111, 114, 108, 110, 112, 110, 110, 103, 106, 96, 110, 97, 107, 102, 109, 109, 101, 111, 100, 105, 105, 111, 106, 105, 115, 110, 115, 124, 120, 112, 113, 109, 113, 109, 112, 112, 113, 105, 115, 111, 109, 101, 111, 111, 97, 110, 85, 123, 113, 107, 108, 108, 109, 110, 103, 107, 111, 110, 108, 103, 135, 117, 113, 119, 107, 113, 114, 118, 126, 113, 130, 114, 113, 128, 114, 115, 108, 115, 130, 116, 105, 112, 112, 111, 117, 113, 108, 107, 112, 109, 108, 111, 103, 110, 113, 114, 103, 111, 108, 106, 106, 109, 109, 110, 110, 108, 113, 116, 111, 118, 114, 113, 125, 109, 102, 112, 111, 111, 115, 116, 108, 102, 105, 105, 102, 108, 106, 116, 116, 110, 117, 122, 115, 112, 113, 111, 113, 114, 112, 117, 116, 105, 115, 120, 113, 109, 109, 113, 103, 112, 99, 117, 109, 107, 103, 103, 114, 106, 106, 117, 104, 108, 111, 104, 114, 106, 115, 108, 117, 106, 112, 108, 110, 102, 119, 104, 110, 114, 109, 113, 109, 105, 103, 108, 106, 104, 116, 107, 113, 96, 108, 122, 112, 100, 116, 114, 110, 108, 111, 111, 114, 114, 113, 109, 108, 111, 120, 117, 105, 101, 112, 114, 109, 108, 115, 111, 113, 108, 107, 110, 105, 110, 113, 115, 113, 110, 106, 106, 113, 107, 113, 105, 107, 112, 108, 104, 113, 97, 114, 102, 102, 114, 105, 109, 93, 104, 117, 104, 111, 109, 104, 105, 114, 112, 120, 103, 101, 138, 108, 107, 106, 114, 122, 116, 111, 109, 119, 112, 98, 107, 110, 112, 108, 116, 113, 102, 114, 104, 109, 112, 113, 107, 105, 113, 114, 107, 115, 116, 107, 107, 108, 112, 103, 102, 122, 113, 103, 111, 104, 114, 118, 101, 114, 102, 111, 111, 108, 104, 126, 112, 107, 119, 111, 98, 110, 114, 108, 105, 104, 113, 103, 107, 110, 115, 103, 106, 111, 101, 112, 98, 106, 110, 114, 117, 115, 105, 110, 104, 103, 107, 116, 106, 105, 111, 116, 98, 109, 112, 105, 103, 104, 131, 102, 110, 107, 116, 115, 111, 108, 111, 109, 109, 110, 116, 106, 106, 128, 117, 109, 112, 110, 103, 105, 109, 114, 117, 119, 127, 120, 113, 113, 108, 119, 107, 110, 109, 126, 120, 115, 110, 123, 113, 113, 123, 109, 119, 108, 114, 105, 119, 108, 116, 108, 116, 107, 98, 107, 111, 107, 111, 113, 113, 108, 103, 110, 107, 108, 110, 110, 109, 103, 113, 113, 108, 113, 105, 114, 106, 117, 119, 104, 112, 107, 103, 116, 108, 112, 105, 108, 120, 108, 111, 114, 112, 107, 107, 114, 112, 116, 101, 99, 106, 106, 104, 105, 111, 106, 122, 107, 108, 108, 117, 111, 112, 108, 109, 111, 115, 109, 108, 111, 111, 110, 110, 109, 111, 94, 110, 110, 107, 109, 110, 117, 113, 109, 107, 110, 110, 109, 113, 109, 108, 109, 110, 107, 111, 110, 107, 109, 111, 112, 116, 115, 105, 76, 112, 110, 111, 111, 105, 111, 110, 108, 110, 109, 111, 112, 107, 110, 109, 111, 109, 107, 109, 113, 104, 108, 105, 114, 107, 110, 113, 110, 112, 110, 115, 107, 115, 109, 107, 113, 111, 111, 107, 109, 112, 111, 111, 111, 108, 108, 111, 110, 109, 110, 109, 108, 110, 109, 112, 111, 110, 112, 109, 110, 111, 110, 110, 106, 112, 107, 114, 109, 111, 110, 114, 109, 112, 115, 115, 113, 108, 112, 112, 149, 113, 106, 111, 118, 111, 112, 109, 112, 109, 109, 91, 109, 110, 110, 113, 110, 109, 107, 111, 110, 107, 113, 109, 110, 108, 110, 113, 113, 99, 111, 111, 114, 111, 109, 110, 112, 108, 107, 112, 109, 112, 111, 111, 109, 110, 109, 112, 109, 110, 112, 110, 106, 114, 108, 109, 108, 108, 110, 109, 105, 111, 110, 110, 107, 108, 109, 108, 111, 108, 110, 107, 110, 110, 107, 112, 109, 111, 106, 108, 110, 109, 111, 110, 108, 113, 114, 111, 108, 110, 114, 110, 109, 110, 102, 108, 109, 112, 108, 108, 111, 111, 111, 112, 114, 109, 114, 109, 116, 111, 112, 111, 112, 105, 112, 112, 127, 113, 111, 108, 115, 110, 113, 109, 110, 108, 113, 113, 108, 124, 111, 113, 110, 111, 107, 113, 110, 111, 112, 111, 111, 108, 113, 109, 106, 107, 114, 107, 118, 110, 112, 105, 108, 109, 110, 107, 111, 107, 109, 110, 112, 110, 110, 110, 108, 109, 110, 109, 110, 110, 107, 111, 107, 110, 110, 109, 108, 111, 110, 109, 109, 107, 110, 111, 112, 111, 109, 109, 106, 111, 110, 113, 112, 120, 107, 110, 114, 110, 109, 111, 111, 112, 110, 114, 111, 112, 113, 113, 109, 110, 126, 109, 113, 106, 111, 108, 110, 111, 106, 111, 114, 108, 109, 110, 111, 107, 114, 111, 97, 107, 111, 110, 110, 111, 107, 110, 113, 111, 108, 112, 109, 110, 108, 105, 110, 111, 109, 105, 112, 118, 110, 105, 106, 110, 107, 110, 109, 109, 115, 109, 107, 113, 108, 111, 108, 112, 114, 108, 113, 109, 110, 109, 110, 108, 107, 107, 109, 107, 112, 112, 111, 109, 114, 112, 109, 110, 106, 112, 109, 108, 111, 111, 111, 109, 111, 110, 115, 110, 110, 111, 113, 111, 112, 108, 110, 109, 108, 109, 107, 111, 111, 110, 102, 114, 111, 110, 111, 101, 105, 109, 108, 112, 108, 111, 114, 109, 112, 110, 109, 111, 111, 106, 111, 108, 108, 109, 110, 111, 112, 107, 110, 108, 109, 108, 108, 113, 112, 115, 107, 109, 113, 115, 112, 107, 111, 110, 109, 105, 108, 107, 110, 110, 109, 110, 113, 78, 111, 109, 110, 114, 108, 113, 108, 108, 110, 109, 111, 112, 107, 112, 110, 117, 111, 105, 113, 107, 107, 114, 109, 111, 109, 112, 111, 106, 109, 104, 110, 109, 110, 108, 112, 108, 115, 106, 115, 107, 107, 107, 108, 109, 111, 108, 109, 109, 107, 109, 108, 110, 108, 112, 123, 107, 106, 110, 117, 109, 110, 110, 105, 110, 115, 133, 94, 111, 113, 111, 107, 109, 107, 110, 110, 106, 111, 112, 106, 110, 104, 111, 113, 110, 113, 111, 111, 97, 115, 106, 109, 97, 110, 112, 109, 110, 107, 118, 110, 122, 111, 110, 117, 108, 117, 109, 109, 115, 110, 114, 109, 111, 115, 111, 112, 109, 102, 107, 111, 107, 115, 115, 110, 110, 106, 112, 109, 92, 112, 110, 110, 113, 103, 111, 107, 119, 113, 110, 114, 103, 108, 87, 110, 118, 106, 116, 106, 115, 112, 110, 110, 111, 108, 114, 114, 110, 109, 116, 111, 107, 107, 100, 108, 113, 110, 105, 103, 110, 106, 110, 108, 110, 112, 106, 106, 106, 110, 113, 109, 113, 114, 111, 109, 110, 110, 117, 110, 108, 114, 108, 125, 112, 110, 111, 109, 109, 107, 109, 92, 122, 106, 119, 111, 112, 109, 112, 99, 106, 114, 114, 110, 108, 113, 109, 108, 108, 112, 108, 114, 108, 105, 110, 107, 104, 137, 112, 109, 110, 106, 111, 113, 113, 107, 113, 111, 108, 111, 111, 115, 114, 108, 106, 104, 113, 105, 111, 113, 115, 125, 107, 112, 109, 108, 113, 105, 109, 107, 112, 112, 111, 110, 107, 107, 108, 109, 108, 106, 110, 113, 110, 112, 112, 104, 108, 113, 94, 113, 114, 107, 111, 108, 109, 79, 109, 111, 112, 109, 114, 109, 112, 113, 102, 119, 137, 100, 108, 100, 110, 112, 117, 110, 105, 109, 105, 113, 116, 114, 111, 108, 112, 109, 108, 115, 112, 110, 111, 114, 110, 99, 106, 115, 111, 115, 112, 116, 106, 107, 112, 105, 110, 104, 114, 110, 105, 112, 113, 113, 114, 114, 108, 109, 104, 110, 113, 111, 113, 110, 92, 110, 114, 109, 108, 115, 111, 114, 110, 113, 105, 108, 113, 106, 112, 109, 110, 110, 103, 109, 108, 112, 109, 112, 105, 99, 106, 111, 113, 114, 110, 111, 109, 111, 112, 112, 117, 109, 106, 110, 109, 112, 107, 113, 110, 104, 93, 111, 107, 105, 106, 108, 110, 110, 111, 112, 108, 105, 111, 105, 104, 105, 110, 111, 108, 142, 110, 113, 119, 111, 106, 114, 108, 117, 109, 118, 112, 112, 109, 110, 110, 109, 114, 114, 106, 108, 107, 115, 110, 110, 110, 114, 109, 111, 98, 104, 110, 107, 107, 104, 113, 109, 107, 112, 110, 108, 110, 109, 110, 108, 114, 104, 102, 107, 117, 111, 66, 112, 108, 107, 109, 105, 110, 110, 111, 111, 107, 111, 116, 109, 108, 109, 107, 107, 104, 113, 108, 118, 105, 106, 133, 115, 112, 122, 111, 120, 109, 103, 111, 103, 110, 113, 108, 113, 104, 113, 115, 113, 113, 108, 107, 130, 112, 113, 107, 114, 110, 110, 113, 111, 112, 113, 107, 110, 114, 112, 108, 109, 110, 108, 128, 113, 110, 108, 106, 108, 112, 109, 106, 119, 113, 95, 112, 105, 107, 123, 108, 111, 104, 121, 108, 114, 115, 101, 119, 109, 98, 106, 116, 101, 103, 119, 82, 113, 108, 112, 108, 111, 107, 102, 97, 103, 101, 111, 86, 120, 108, 92, 98, 118, 107, 109, 122, 98, 108, 104, 103, 111, 113, 95, 113, 111, 109, 109, 81, 112, 94, 126, 121, 108, 109, 112, 100, 106, 112, 113, 111, 110, 116, 104, 105, 124, 98, 117, 122, 111, 106, 108, 109, 115, 110, 105, 102, 108, 131, 103, 111, 112, 116, 103, 107, 94, 117, 111, 94, 103, 95, 105, 116, 133, 100, 108, 112, 96, 106, 113, 126, 129, 110, 106, 136, 109, 98, 104, 106, 112, 110, 107, 100, 115, 103, 114, 114, 119, 125, 113, 110, 90, 114, 174, 107, 102, 88, 109, 97, 108, 126, 110, 109, 113, 104, 98, 108, 103, 104, 107, 104, 124, 114, 129, 117, 107, 116, 98, 113, 126, 117, 98, 104, 103, 114, 115, 99, 104, 109, 102, 108, 101, 118, 112, 119, 114, 110, 110, 113, 106, 112, 112, 102, 108, 109, 107, 112, 107, 114, 122, 111, 108, 112, 123, 125, 108, 112, 100, 99, 104, 114, 102, 110, 114, 107, 120, 108, 102, 119, 107, 115, 112, 109, 105, 116, 111, 111, 110, 112, 106, 99, 102, 106, 105, 113, 109, 111, 106, 105, 108, 110, 114, 110, 114, 109, 104, 119, 106, 111, 102, 111, 113, 116, 113, 108, 109, 92, 111, 109, 107, 100, 107, 118, 119, 104, 118, 109, 113, 106, 99, 113, 123, 102, 126, 106, 110, 109, 114, 112, 94, 86, 112, 102, 107, 111, 102, 109, 114, 113, 114, 111, 104, 107, 106, 114, 109, 108, 102, 100, 113, 106, 105, 157, 106, 112, 100, 101, 105, 111, 119, 103, 110, 99, 108, 108, 104, 107, 123, 118, 113, 106, 104, 107, 126, 111, 111, 87, 120, 96, 112, 107, 108, 110, 107, 98, 152, 105, 110, 103, 111, 111, 111, 113, 141, 159, 101, 110, 105, 97, 103, 112, 122, 111, 107, 113, 106, 106, 134, 125, 105, 108, 114, 105, 104, 115, 110, 118, 113, 130, 117, 120, 108, 121, 135, 114, 103, 121, 104, 99, 102, 104, 103, 105, 111, 109, 117, 104, 113, 109, 108, 100, 109, 104, 102, 110, 103, 106, 125, 105, 117, 111, 113, 106, 108, 113, 112, 109, 115, 110, 109, 101, 138, 107, 106, 105, 100, 114, 111, 113, 117, 104, 110, 112, 110, 103, 112, 101, 119, 109, 117, 109, 114, 110, 114, 103, 112, 111, 104, 106, 114, 113, 100, 109, 105, 118, 111, 91, 98, 100, 105, 113, 102, 98, 121, 98, 100, 104, 109, 108, 118, 116, 109, 116, 111, 114, 107, 107, 113, 112, 109, 113, 113, 104, 131, 103, 108, 117, 104, 108, 110, 118, 118, 108, 112, 104, 101, 108, 101, 112, 98, 103, 123, 107, 101, 107, 166, 102, 115, 112, 124, 111, 131, 113, 117, 118, 105, 104, 114, 118, 117, 107, 105, 102, 105, 108, 114, 103, 117, 104, 106, 115, 122, 113, 120, 115, 97, 112, 106, 127, 106, 169, 109, 109, 103, 117, 118, 105, 105, 102, 115, 129, 111, 113, 101, 108, 109, 111, 115, 125, 104, 102, 116, 110, 113, 102, 112, 112, 109, 110, 120, 106, 99, 93, 104, 117, 120, 107, 114, 107, 104, 103, 111, 113, 116, 102, 95, 109, 116, 110, 113, 90, 112, 112, 101, 112, 115, 111, 107, 97, 99, 97, 105, 112, 103, 108, 112, 104, 103, 99, 112, 106, 109, 111, 110, 105, 113, 112, 119, 119, 100, 114, 114, 114, 113, 113, 108, 109, 117, 115, 108, 104, 107, 111, 112, 121, 107, 105, 105, 111, 106, 103, 112, 114, 111, 111, 105, 108, 111, 120, 103, 109, 98, 121, 108, 107, 117, 104, 110, 115, 135, 113, 110, 119, 102, 118, 116, 105, 107, 107, 120, 117, 104, 108, 106, 111, 116, 116, 99, 107, 112, 113, 107, 110, 103, 109, 122, 111, 97, 114, 110, 105, 105, 119, 106, 113, 109, 113, 105, 110, 113, 123, 106, 108, 106, 120, 120, 106, 116, 111, 105, 102, 113, 103, 104, 109, 116, 116, 106, 114, 107, 108, 108, 101, 113, 98, 105, 94, 100, 120, 110, 113, 110, 119, 117, 122, 110, 111, 104, 121, 113, 118, 86, 105, 115, 112, 106, 114, 114, 109, 90, 113, 114, 108, 117, 105, 120, 108, 111, 105, 106, 108, 112, 112, 117, 121, 114, 116, 129, 112, 115, 111, 110, 124, 113, 110, 112, 109, 110, 104, 102, 104, 113, 106, 95, 120, 112, 109, 126, 110, 102, 109, 109, 112, 101, 106, 105, 116, 117, 114, 103, 126, 97, 112, 120, 113, 118, 106, 102, 102, 113, 102, 113, 106, 117, 94, 110, 119, 114, 106, 114, 113, 108, 100, 110, 117, 112, 120, 117, 114, 117, 113, 120, 93, 122, 114, 103, 115, 110, 117, 114, 116, 99, 103, 102, 115, 135, 98, 101, 108, 105, 111, 114, 107, 113, 101, 108, 118, 123, 110, 109, 107, 101, 75, 99, 124, 107, 123, 110, 125, 109, 100, 116, 107, 108, 109, 113, 97, 110, 113, 116, 117, 95, 112, 105, 113, 105, 111, 114, 125, 105, 112, 113, 117, 102, 120, 116, 108, 103, 104, 107, 110, 112, 112, 110, 107, 109, 103, 106, 110, 117, 93, 111, 111, 108, 108, 110, 109, 114, 104, 114, 107, 109, 123, 111, 104, 110, 128, 116, 83, 109, 119, 106, 75, 117, 103, 106, 107, 104, 110, 126, 99, 108, 112, 105, 112, 104, 107, 110, 116, 115, 104, 115, 109, 107, 118, 112, 112, 111, 98, 122, 125, 114, 114, 102, 115, 114, 90, 109, 99, 105, 113, 110, 120, 112, 99, 103, 126, 107, 116, 125, 128, 104, 115, 114, 113, 116, 107, 107, 112, 119, 120, 109, 112, 104, 107, 106, 112, 120, 114, 113, 108, 107, 106, 113, 96, 110, 105, 114, 111, 87, 115, 123, 110, 113, 113, 109, 110, 123, 110, 114, 117, 122, 116, 117, 114, 110, 105, 102, 99, 114, 105, 119, 110, 122, 100, 107, 108, 110, 114, 107, 112, 112, 111, 121, 114, 101, 111, 119, 108, 100, 113, 98, 100, 94, 115, 102, 114, 111, 106, 107, 123, 110, 95, 105, 114, 115, 110, 105, 104, 104, 113, 118, 97, 122, 118, 107, 101, 103, 96, 111, 112, 112, 99, 111, 118, 121, 111, 110, 124, 109, 111, 119, 105, 119, 112, 106, 110, 110, 108, 116, 101, 100, 112, 108, 95, 117, 111, 105, 108, 107, 126, 100, 98, 106, 123, 110, 106, 102, 100, 124, 117, 107, 98, 121, 112, 125, 93, 111, 97, 106, 95, 113, 123, 107, 113, 127, 108, 108, 105, 109, 92, 116, 106, 116, 111, 115, 97, 119, 110, 102, 117, 103, 101, 114, 121, 125, 102, 104, 105, 104, 108, 108, 106, 105, 110, 119, 104, 109, 112, 105, 117, 118, 123, 107, 103, 109, 115, 109, 103, 104, 104, 102, 111, 103, 110, 98, 115, 105, 103, 106, 111, 97, 107, 100, 108, 95, 115, 119, 113, 100, 110, 129, 98, 112, 109, 133, 106, 120, 114, 106, 110, 111, 118, 124, 126, 113, 106, 112, 112, 100, 111, 114, 90, 110, 106, 111, 110, 106, 107, 109, 102, 122, 109, 114, 99, 123, 108, 132, 128, 109, 103, 116, 104, 119, 123, 101, 114, 116, 110, 104, 101, 93, 108, 108, 111, 112, 112, 113, 96, 108, 112, 98, 118, 102, 103, 114, 119, 112, 111, 115, 107, 104, 106, 107, 105, 112, 116, 120, 106, 102, 106, 111, 129, 107, 103, 107, 102, 105, 107, 122, 105, 108, 98, 114, 122, 108, 111, 121, 115, 115, 108, 116, 103, 106, 106, 136, 101, 104, 111, 121, 100, 115, 111, 130, 121, 113, 106, 118, 113, 116, 114, 128, 99, 104, 117, 106, 110, 108, 111, 113, 110, 105, 107, 100, 87, 109, 121, 107, 104, 114, 101, 105, 103, 131, 126, 105, 91, 104, 110, 111, 104, 113, 104, 115, 129, 106, 105, 100, 98, 105, 104, 125, 116, 105, 115, 114, 88, 87, 111, 114, 120, 108, 118, 103, 114, 114, 114, 104, 113, 105, 92, 116, 101, 110, 104, 134, 114, 99, 102, 111, 107, 107, 112, 112, 111, 85, 97, 119, 101, 104, 107, 108, 118, 110, 118, 106, 118, 111, 131, 120, 125, 104, 111, 120, 106, 116, 113, 104, 106, 105, 121, 108, 123, 103, 106, 114, 115, 101, 104, 103, 106, 119, 108, 104, 117, 108, 99, 109, 102, 104, 101, 107, 134, 107, 92, 102, 113, 108, 107, 131, 105, 107, 96, 118, 105, 113, 108, 117, 105, 114, 115, 106, 111, 100, 104, 122, 105, 103, 109, 108, 107, 110, 110, 125, 108, 115, 108, 129, 108, 109, 105, 108, 110, 102, 124, 115, 114, 119, 128, 104, 112, 113, 107, 114, 104, 111, 103, 97, 115, 104, 118, 113, 108, 107, 109, 90, 110, 116, 102, 124, 94, 109, 107, 108, 94, 103, 114, 121, 111, 109, 116, 114, 117, 102, 135, 120, 95, 116, 125, 118, 116, 124, 102, 114, 103, 123, 100, 108, 104, 111, 106, 104, 117, 123, 104, 113, 92, 101, 116, 117, 120, 112, 111, 118, 108, 95, 99, 117, 89, 99, 99, 103, 112, 114, 105, 112, 109, 119, 103, 103, 106, 101, 114, 109, 110, 107, 104, 122, 123, 108, 103, 117, 106, 111, 103, 106, 116, 116, 104, 115, 103, 106, 97, 107, 100, 106, 105, 111, 116, 116, 101, 105, 128, 94, 102, 106, 110, 104, 133, 109, 98, 111, 97, 116, 106, 110, 106, 108, 135, 104, 104, 124, 99, 110, 112, 119, 117, 107, 112, 95, 111, 106, 113, 113, 104, 103, 120, 120, 116, 109, 99, 112, 109, 97, 109, 105, 104, 109, 113, 103, 113, 107, 109, 106, 109, 112, 106, 115, 111, 117, 110, 106, 101, 113, 109, 107, 110, 109, 106, 101, 106, 116, 111, 105, 92, 107, 116, 111, 101, 108, 107, 114, 105, 106, 121, 107, 102, 105, 122, 142, 112, 106, 90, 105, 117, 114, 106, 111, 110, 116, 121, 112, 102, 113, 113, 110, 108, 112, 107, 124, 118, 115, 109, 101, 99, 105, 97, 117, 110, 121, 110, 113, 111, 105, 102, 109, 107, 107, 109, 114, 113, 106, 120, 112, 100, 100, 118, 112, 104, 111, 120, 109, 105, 132, 114, 106, 109, 114, 101, 117, 115, 111, 110, 115, 130, 100, 106, 105, 105, 119, 106, 105, 112, 101, 106, 113, 108, 95, 98, 112, 107, 110, 109, 107, 106, 101, 108, 96, 110, 105, 115, 109, 112, 100, 110, 112, 101, 114, 112, 117, 115, 107, 115, 115, 110, 125, 117, 112, 107, 102, 101, 121, 107, 109, 115, 125, 121, 110, 115, 104, 106, 102, 104, 108, 118, 102, 104, 106, 100, 107, 104, 112, 124, 117, 101, 100, 118, 122, 109, 121, 112, 106, 92, 110, 112, 120, 110, 97, 98, 115, 113, 104, 105, 110, 111, 108, 109, 97, 109, 117, 105, 113, 114, 106, 115, 108, 96, 100, 113, 107, 116, 111, 103, 106, 119, 100, 117, 106, 104, 111, 124, 112, 103, 109, 121, 122, 105, 110, 108, 109, 120, 124, 110, 104, 104, 107, 111, 110, 112, 107, 110, 108, 108, 127, 95, 111, 105, 104, 117, 105, 109, 110, 119, 113, 103, 105, 110, 104, 109, 107, 108, 126, 113, 108, 118, 113, 118, 110, 122, 116, 107, 106, 115, 138, 106, 103, 103, 125, 100, 96, 112, 117, 112, 101, 106, 113, 97, 94, 110, 95, 112, 100, 107, 107, 105, 123, 118, 107, 107, 115, 108, 105, 110, 110, 102, 108, 102, 110, 107, 131, 89, 108, 116, 114, 108, 101, 112, 110, 107, 110, 104, 120, 125, 109, 116, 103, 107, 115, 110, 114, 108, 103, 106, 115, 113, 105, 100, 112, 112, 126, 112, 107, 114, 105, 105, 112, 108, 107, 109, 99, 108, 109, 112, 113, 108, 128, 123, 126, 105, 117, 112, 105, 121, 112, 107, 115, 117, 113, 106, 104, 102, 108, 96, 106, 98, 108, 105, 108, 122, 107, 105, 108, 109, 106, 114, 97, 109, 112, 110, 106, 110, 96, 106, 100, 103, 122, 114, 117, 108, 110, 113, 109, 112, 105, 112, 111, 116, 108, 108, 107, 102, 107, 108, 118, 113, 107, 111, 109, 130, 111, 111, 100, 110, 111, 103, 112, 108, 109, 107, 128, 102, 108, 118, 110, 105, 110, 108, 112, 113, 106, 109, 112, 111, 112, 111, 115, 109, 112, 107, 98, 108, 109, 112, 109, 112, 104, 108, 109, 106, 109, 112, 111, 112, 118, 95, 107, 110, 110, 107, 111, 94, 116, 108, 113, 110, 112, 113, 113, 105, 109, 112, 114, 122, 111, 109, 97, 113, 103, 110, 111, 117, 105, 108, 115, 112, 105, 114, 110, 115, 112, 112, 115, 99, 108, 107, 116, 114, 116, 109, 108, 103, 105, 113, 111, 101, 117, 112, 114, 116, 119, 105, 106, 105, 104, 110, 108, 110, 112, 103, 108, 114, 101, 114, 120, 106, 98, 109, 117, 106, 105, 112, 116, 106, 103, 109, 110, 99, 108, 107, 111, 122, 108, 105, 106, 114, 122, 111, 97, 113, 122, 108, 109, 112, 108, 109, 99, 107, 124, 106, 108, 119, 110, 110, 114, 112, 115, 105, 109, 116, 107, 107, 108, 106, 110, 107, 130, 106, 116, 112, 109, 108, 109, 110, 109, 127, 113, 109, 101, 108, 106, 108, 107, 104, 103, 109, 106, 106, 111, 118, 111, 113, 109, 106, 110, 105, 106, 109, 107, 100, 116, 108, 109, 115, 110, 110, 138, 117, 117, 108, 119, 108, 100, 108, 108, 106, 106, 105, 109, 104, 115, 107, 108, 107, 114, 100, 103, 116, 116, 112, 116, 110, 112, 112, 109, 110, 108, 110, 109, 119, 107, 79, 106, 104, 107, 113, 100, 111, 106, 112, 114, 133, 118, 112, 121, 112, 117, 107, 119, 105, 107, 130, 110, 108, 103, 112, 110, 116, 107, 110, 109, 108, 111, 112, 108, 110, 109, 107, 109, 112, 109, 103, 121, 108, 105, 107, 101, 105, 96, 107, 104, 114, 112, 111, 109, 108, 114, 108, 108, 110, 110, 109, 108, 112, 106, 117, 118, 114, 112, 106, 106, 111, 112, 105, 107, 112, 105, 106, 101, 112, 115, 110, 113, 114, 109, 120, 110, 110, 122, 119, 112, 109, 108, 114, 110, 108, 100, 107, 113, 100, 115, 110, 108, 106, 116, 113, 108, 107, 111, 116, 107, 113, 114, 110, 104, 107, 121, 114, 110, 111, 107, 107, 117, 107, 107, 105, 113, 114, 106, 108, 103, 111, 102, 101, 110, 119, 118, 114, 106, 116, 99, 108, 106, 115, 111, 104, 120, 105, 108, 103, 114, 107, 113, 111, 105, 118, 107, 105, 104, 110, 108, 104, 105, 110, 105, 109, 105, 119, 102, 111, 110, 110, 112, 108, 115, 106, 107, 90, 103, 110, 102, 103, 120, 101, 113, 110, 102, 110, 114, 103, 115, 108, 107, 128, 105, 114, 109, 111, 108, 105, 108, 109, 113, 108, 107, 103, 108, 106, 110, 104, 111, 110, 114, 111, 124, 114, 111, 105, 109, 105, 104, 110, 110, 106, 108, 112, 119, 109, 108, 110, 110, 108, 111, 110, 114, 105, 101, 110, 110, 123, 107, 107, 116, 108, 110, 106, 109, 119, 113, 103, 111, 111, 107, 109, 113, 110, 111, 111, 109, 98, 103, 115, 100, 105, 104, 103, 108, 110, 103, 110, 109, 103, 114, 125, 112, 108, 107, 115, 112, 110, 118, 105, 106, 100, 118, 109, 105, 108, 107, 107, 113, 106, 108, 108, 105, 114, 115, 109, 108, 106, 108, 102, 107, 111, 115, 101, 104, 102, 116, 111, 108, 112, 110, 110, 113, 108, 103, 111, 103, 107, 109, 110, 111, 112, 104, 112, 110, 108, 99, 110, 104, 109, 116, 114, 111, 101, 107, 108, 110, 103, 115, 106, 111, 113, 110, 105, 113, 105, 107, 109, 111, 102, 112, 114, 111, 108, 106, 102, 110, 107, 110, 112, 111, 107, 112, 108, 106, 109, 118, 106, 116, 108, 104, 120, 112, 99, 113, 114, 106, 106, 114, 118, 110, 106, 111, 106, 108, 112, 107, 113, 116, 110, 111, 114, 100, 121, 107, 117, 115, 113, 109, 106, 115, 110, 108, 104, 111, 112, 113, 108, 98, 110, 106, 110, 110, 105, 114, 117, 111, 115, 105, 112, 104, 112, 111, 109, 118, 114, 109, 116, 114, 105, 115, 117, 116, 115, 111, 108, 106, 115, 108, 112, 109, 104, 116, 119, 103, 110, 109, 111, 109, 109, 110, 116, 108, 117, 110, 116, 105, 107, 112, 102, 111, 106, 107, 104, 111, 113, 108, 109, 112, 118, 99, 115, 105, 115, 107, 118, 100, 108, 113, 101, 102, 111, 105, 105, 111, 110, 108, 117, 110, 99, 109, 103, 106, 106, 104, 109, 113, 103, 112, 112, 107, 109, 114, 101, 118, 104, 116, 110, 116, 107, 110, 112, 114, 108, 111, 106, 115, 107, 113, 106, 112, 107, 109, 111, 118, 111, 105, 115, 107, 114, 111, 105, 108, 114, 109, 111, 105, 110, 103, 111, 111, 110, 109, 102, 110, 112, 108, 100, 101, 113, 112, 111, 113, 108, 101, 110, 110, 107, 114, 112, 101, 105, 114, 112, 110, 111, 113, 98, 115, 108, 117, 108, 108, 110, 113, 123, 107, 113, 108, 107, 102, 105, 114, 117, 113, 108, 115, 108, 116, 106, 107, 111, 108, 113, 110, 111, 104, 102, 106, 99, 108, 97, 108, 112, 109, 110, 113, 103, 109, 115, 104, 103, 107, 114, 111, 105, 103, 108, 109, 108, 103, 117, 105, 111, 112, 107, 112, 112, 106, 110, 115, 113, 108, 106, 115, 109, 110, 109, 107, 110, 105, 108, 113, 115, 110, 107, 110, 105, 109, 110, 108, 109, 114, 106, 113, 107, 111, 114, 112, 101, 112, 107, 113, 100, 111, 99, 115, 109, 112, 112, 111, 110, 115, 110, 106, 117, 115, 119, 117, 113, 102, 112, 107, 110, 113, 113, 111, 106, 106, 122, 110, 117, 114, 113, 104, 107, 115, 110, 116, 103, 107, 119, 113, 107, 112, 115, 109, 106, 104, 114, 127, 104, 102, 113, 111, 112, 106, 112, 103, 111, 106, 110, 107, 108, 102, 111, 107, 114, 113, 105, 105, 110, 116, 113, 120, 112, 110, 105, 112, 107, 110, 105, 108, 114, 118, 106, 106, 111, 118, 106, 116, 106, 100, 106, 110, 105, 103, 111, 116, 112, 107, 109, 108, 103, 114, 114, 113, 112, 116, 109, 114, 107, 113, 112, 106, 105, 112, 106, 104, 114, 108, 118, 114, 111, 114, 114, 104, 110, 123, 106, 104, 110, 121, 115, 105, 110, 121, 101, 107, 111, 117, 99, 109, 103, 111, 121, 106, 107, 122, 114, 109, 108, 103, 112, 117, 110, 109, 112, 116, 114, 107, 109, 117, 105, 115, 108, 107, 88, 119, 105, 109, 111, 118, 102, 109, 114, 114, 104, 107, 106, 112, 106, 108, 106, 126, 103, 114, 110, 109, 103, 112, 103, 110, 104, 102, 107, 103, 108, 95, 105, 107, 110, 109, 118, 112, 109, 110, 108, 107, 107, 140, 123, 135, 93, 98, 110, 106, 108, 104, 114, 110, 114, 113, 113, 115, 110, 98, 109, 107, 116, 103, 113, 106, 118, 98, 108, 107, 113, 113, 107, 109, 114, 114, 109, 100, 115, 118, 103, 110, 102, 114, 113, 101, 110, 104, 103, 113, 122, 99, 98, 110, 107, 115, 116, 112, 111, 111, 127, 117, 107, 102, 119, 108, 118, 109, 109, 108, 112, 113, 98, 104, 111, 111, 118, 102, 116, 103, 113, 107, 103, 112, 113, 109, 108, 107, 107, 111, 92, 111, 109, 102, 103, 102, 118, 104, 109, 112, 105, 85, 112, 108, 119, 106, 115, 118, 100, 109, 102, 108, 105, 111, 105, 109, 110, 111, 107, 103, 125, 114, 115, 110, 113, 107, 114, 96, 116, 108, 106, 110, 121, 108, 101, 125, 106, 103, 100, 105, 108, 115, 104, 104, 107, 111, 113, 111, 97, 104, 104, 101, 103, 104, 104, 106, 99, 112, 104, 107, 106, 117, 104, 99, 112, 112, 113, 115, 114, 109, 112, 120, 101, 112, 113, 114, 108, 98, 103, 105, 112, 111, 106, 121, 105, 111, 107, 105, 110, 103, 105, 117, 109, 110, 110, 119, 121, 122, 101, 110, 120, 109, 115, 99, 100, 98, 106, 126, 107, 121, 88, 112, 107, 112, 105, 106, 108, 102, 121, 112, 113, 108, 117, 108, 111, 109, 103, 101, 111, 109, 106, 104, 112, 116, 118, 106, 116, 111, 109, 110, 112, 112, 110, 117, 113, 110, 109, 108, 99, 116, 112, 87, 109, 110, 101, 102, 107, 104, 109, 95, 110, 113, 112, 114, 119, 115, 124, 106, 111, 104, 109, 123, 99, 116, 101, 115, 111, 108, 108, 108, 108, 108, 105, 129, 102, 114, 113, 102, 89, 107, 115, 116, 107, 106, 108, 113, 111, 117, 109, 119, 103, 110, 111, 109, 107, 118, 115, 123, 98, 105, 111, 118, 117, 110, 113, 117, 112, 116, 98, 106, 115, 111, 121, 120, 113, 109, 112, 109, 111, 110, 93, 107, 105, 103, 114, 108, 110, 112, 105, 130, 113, 115, 111, 109, 119, 115, 118, 113, 112, 115, 109, 107, 118, 105, 113, 107, 114, 95, 110, 110, 114, 106, 116, 98, 104, 107, 107, 104, 114, 109, 110, 108, 118, 114, 105, 111, 117, 121, 140, 110, 106, 115, 106, 109, 112, 102, 118, 108, 117, 117, 103, 110, 120, 108, 129, 109, 113, 111, 99, 104, 110, 110, 104, 109, 105, 113, 107, 113, 107, 102, 120, 103, 119, 109, 110, 106, 99, 112, 125, 123, 109, 111, 109, 111, 106, 107, 110, 101, 112, 110, 109, 117, 98, 110, 110, 100, 110, 115, 111, 118, 103, 112, 105, 124, 114, 129, 91, 105, 115, 101, 108, 111, 111, 103, 86, 114, 116, 107, 109, 119, 104, 113, 114, 110, 103, 100, 103, 96, 109, 107, 91, 98, 115, 99, 126, 110, 107, 109, 108, 111, 109, 104, 97, 103, 101, 112, 94, 113, 99, 109, 104, 122, 122, 118, 68, 110, 168, 105, 109, 108, 100, 115, 106, 112, 113, 113, 115, 104, 110, 128, 110, 117, 110, 118, 109, 105, 118, 109, 113, 103, 106, 106, 105, 89, 113, 109, 118, 117, 116, 96, 100, 118, 119, 111, 105, 101, 119, 97, 111, 110, 106, 123, 124, 119, 118, 108, 135, 112, 104, 105, 117, 87, 109, 106, 99, 114, 101, 113, 105, 104, 109, 107, 92, 102, 114, 99, 145, 114, 109, 115, 120, 136, 113, 95, 103, 110, 115, 102, 108, 110, 108, 108, 81, 92, 99, 101, 100, 114, 113, 105, 93, 119, 102, 100, 105, 160, 117, 96, 106, 109, 109, 113, 106, 106, 101, 114, 98, 120, 115, 108, 96, 79, 105, 108, 111, 99, 110, 118, 100, 96, 121, 103, 106, 112, 112, 92, 127, 108, 113, 110, 100, 107, 103, 109, 104, 117, 109, 115, 109, 110, 101, 102, 103, 103, 108, 106, 106, 107, 135, 106, 108, 107, 106, 90, 124, 116, 115, 109, 115, 125, 118, 115, 82, 97, 111, 114, 121, 129, 118, 94, 104, 109, 99, 113, 115, 114, 115, 94, 114, 86, 83, 107, 88, 107, 111, 104, 107, 124, 107, 89, 118, 104, 101, 106, 109, 94, 103, 107, 108, 118, 102, 141, 114, 108, 116, 112, 108, 105, 124, 107, 113, 108, 119, 113, 128, 96, 91, 107, 96, 109, 105, 109, 124, 97, 107, 96, 101, 116, 110, 115, 107, 113, 127, 113, 105, 102, 115, 109, 114, 110, 109, 116, 106, 116, 111, 110, 124, 114, 104, 106, 103, 103, 145, 101, 117, 114, 99, 118, 120, 99, 121, 118, 105, 109, 96, 111, 100, 106, 101, 114, 108, 96, 98, 100, 106, 99, 101, 95, 91, 122, 93, 112, 107, 113, 103, 111, 108, 114, 93, 109, 116, 104, 117, 108, 105, 114, 104, 102, 107, 103, 98, 105, 127, 124, 105, 106, 123, 109, 107, 116, 122, 113, 110, 125, 113, 115, 110, 96, 101, 109, 97, 119, 116, 107, 93, 109, 83, 105, 126, 115, 98, 105, 118, 105, 101, 99, 108, 89, 109, 184, 92, 107, 118, 114, 111, 110, 100, 108, 124, 95, 110, 107, 111, 95, 102, 111, 108, 106, 115, 114, 111, 120, 115, 148, 99, 110, 118, 103, 114, 72, 110, 99, 105, 113, 116, 107, 111, 107, 115, 115, 113, 98, 106, 122, 101, 108, 114, 111, 117, 92, 106, 108, 97, 110, 114, 86, 101, 87, 116, 111, 118, 121, 116, 110, 102, 116, 92, 112, 108, 104, 122, 108, 97, 113, 97, 117, 104, 97, 111, 107, 118, 113, 108, 110, 102, 116, 108, 112, 111, 112, 121, 111, 112, 109, 98, 116, 103, 123, 119, 109, 111, 107, 111, 102, 114, 107, 104, 112, 110, 117, 112, 107, 111, 110, 113, 113, 111, 111, 114, 107, 110, 108, 105, 110, 104, 101, 95, 112, 104, 112, 109, 108, 112, 119, 111, 113, 112, 114, 107, 111, 106, 117, 109, 108, 110, 100, 113, 114, 112, 103, 108, 109, 98, 108, 116, 111, 106, 116, 99, 113, 107, 111, 108, 110, 111, 108, 108, 108, 116, 116, 108, 119, 110, 113, 109, 108, 109, 104, 100, 103, 118, 101, 111, 117, 113, 112, 108, 107, 110, 108, 117, 115, 108, 116, 109, 104, 118, 110, 116, 138, 110, 106, 113, 102, 116, 106, 109, 112, 109, 109, 129, 116, 110, 115, 105, 113, 111, 107, 104, 101, 100, 105, 101, 111, 114, 113, 106, 109, 111, 111, 107, 107, 106, 110, 108, 108, 108, 103, 110, 112, 114, 136, 110, 114, 113, 106, 111, 113, 110, 103, 112, 111, 109, 111, 116, 112, 110, 106, 108, 108, 102, 113, 109, 111, 111, 113, 107, 105, 110, 105, 115, 109, 109, 109, 108, 109, 107, 112, 110, 114, 114, 113, 107, 111, 115, 105, 128, 106, 108, 111, 106, 109, 112, 106, 100, 110, 113, 109, 113, 112, 110, 107, 100, 108, 104, 106, 108, 106, 117, 110, 107, 111, 113, 117, 99, 101, 110, 111, 108, 115, 116, 110, 109, 108, 127, 107, 99, 116, 115, 101, 118, 110, 115, 98, 110, 111, 114, 105, 112, 115, 112, 105, 110, 117, 114, 102, 105, 113, 104, 102, 108, 114, 108, 108, 107, 106, 118, 111, 106, 113, 108, 109, 108, 114, 115, 116, 109, 107, 112, 108, 108, 112, 120, 111, 105, 105, 115, 110, 106, 113, 102, 108, 109, 113, 114, 106, 108, 114, 115, 112, 110, 117, 122, 118, 107, 112, 109, 118, 103, 107, 117, 109, 113, 115, 109, 117, 111, 103, 105, 108, 107, 112, 113, 104, 112, 106, 109, 111, 113, 118, 116, 104, 120, 112, 119, 102, 114, 104, 108, 111, 116, 112, 114, 113, 104, 108, 121, 112, 114, 113, 113, 118, 107, 112, 108, 114, 107, 104, 116, 111, 110, 112, 109, 108, 109, 105, 116, 105, 107, 108, 108, 110, 106, 102, 110, 109, 107, 110, 109, 115, 110, 111, 110, 113, 112, 120, 100, 110, 104, 106, 110, 110, 112, 114, 108, 107, 108, 113, 105, 113, 95, 113, 109, 99, 105, 117, 97, 107, 112, 111, 107, 109, 106, 112, 114, 106, 117, 111, 110, 116, 103, 113, 111, 108, 115, 116, 100, 100, 109, 109, 100, 111, 101, 114, 109, 106, 102, 113, 111, 109, 105, 106, 108, 114, 110, 103, 106, 98, 116, 114, 110, 108, 107, 109, 120, 107, 107, 114, 113, 113, 109, 110, 106, 106, 87, 111, 106, 109, 118, 110, 111, 108, 100, 112, 115, 115, 107, 110, 111, 116, 106, 108, 110, 109, 111, 112, 109, 104, 108, 109, 109, 112, 111, 111, 112, 107, 109, 112, 111, 116, 103, 108, 110, 109, 112, 111, 111, 110, 117, 106, 106, 115, 116, 107, 110, 103, 105, 115, 109, 106, 112, 110, 98, 100, 109, 107, 114, 96, 106, 115, 101, 116, 117, 118, 102, 107, 110, 112, 103, 106, 112, 111, 110, 109, 117, 121, 104, 103, 101, 114, 104, 121, 109, 109, 111, 110, 111, 106, 121, 114, 106, 113, 99, 110, 109, 106, 103, 112, 110, 119, 115, 122, 105, 112, 118, 113, 105, 115, 108, 114, 102, 111, 90, 99, 116, 110, 105, 117, 107, 114, 114, 106, 112, 110, 111, 112, 99, 108, 103, 128, 100, 113, 122, 113, 104, 110, 112, 106, 108, 108, 108, 97, 116, 98, 78, 113, 131, 104, 117, 104, 116, 112, 107, 123, 110, 112, 111, 98, 114, 109, 108, 110, 118, 113, 114, 118, 104, 102, 112, 118, 113, 100, 108, 120, 128, 116, 107, 106, 113, 120, 118, 116, 101, 106, 110, 105, 107, 111, 112, 116, 112, 115, 110, 111, 108, 110, 109, 117, 113, 110, 104, 108, 110, 105, 117, 104, 104, 102, 114, 105, 114, 110, 131, 109, 110, 119, 104, 103, 104, 109, 107, 111, 106, 109, 107, 106, 104, 114, 112, 113, 111, 119, 112, 107, 110, 118, 106, 105, 118, 116, 112, 123, 108, 108, 110, 108, 110, 116, 111, 106, 109, 102, 112, 106, 100, 102, 101, 104, 101, 110, 104, 108, 107, 119, 105, 109, 111, 106, 115, 107, 108, 114, 110, 108, 108, 113, 99, 113, 108, 108, 128, 104, 114, 111, 104, 106, 112, 111, 105, 106, 113, 118, 110, 113, 107, 115, 113, 97, 107, 124, 112, 97, 111, 112, 102, 112, 114, 115, 103, 114, 111, 106, 113, 111, 103, 111, 110, 106, 106, 108, 109, 105, 117, 108, 110, 116, 107, 105, 107, 101, 114, 118, 108, 95, 108, 113, 112, 106, 115, 99, 107, 99, 114, 108, 120, 113, 108, 99, 108, 102, 106, 109, 108, 115, 105, 114, 106, 112, 112, 108, 112, 112, 111, 110, 117, 118, 116, 112, 113, 113, 112, 109, 118, 114, 102, 112, 105, 113, 104, 104, 113, 110, 115, 109, 114, 108, 112, 108, 96, 109, 123, 113, 106, 100, 107, 102, 112, 112, 110, 109, 105, 116, 98, 104, 108, 115, 101, 101, 112, 104, 104, 112, 112, 103, 114, 112, 109, 115, 111, 110, 113, 117, 106, 103, 101, 106, 108, 113, 111, 111, 117, 108, 109, 93, 115, 108, 115, 108, 93, 117, 131, 110, 113, 115, 119, 125, 113, 103, 107, 106, 110, 108, 108, 108, 116, 115, 114, 103, 110, 109, 107, 117, 109, 115, 117, 105, 128, 108, 107, 111, 121, 111, 114, 112, 108, 107, 110, 137, 111, 126, 135, 116, 125, 119, 108, 118, 115, 113, 111, 123, 99, 113, 109, 118, 107, 104, 106, 111, 108, 105, 115, 109, 112, 96, 123, 109, 109, 106, 110, 103, 111, 96, 107, 109, 108, 109, 111, 129, 108, 112, 103, 111, 115, 107, 113, 105, 122, 114, 111, 113, 110, 110, 111, 106, 114, 112, 101, 108, 107, 118, 117, 101, 103, 103, 113, 110, 120, 113, 106, 123, 104, 114, 110, 116, 107, 104, 108, 104, 116, 111, 114, 113, 115, 107, 112, 121, 122, 104, 110, 105, 105, 98, 104, 107, 118, 93, 107, 121, 114, 104, 144, 99, 120, 119, 118, 116, 108, 109, 114, 111, 105, 110, 112, 108, 131, 118, 109, 113, 112, 108, 92, 92, 106, 113, 100, 107, 109, 112, 119, 101, 104, 106, 106, 103, 110, 108, 112, 106, 112, 113, 98, 112, 112, 101, 111, 105, 108, 111, 108, 121, 112, 116, 110, 100, 118, 88, 111, 114, 111, 110, 115, 106, 111, 112, 117, 134, 91, 131, 107, 107, 122, 99, 120, 111, 116, 113, 112, 111, 103, 98, 115, 104, 108, 112, 117, 117, 115, 100, 106, 102, 124, 107, 123, 121, 99, 106, 94, 115, 100, 108, 108, 143, 112, 99, 133, 105, 113, 114, 122, 100, 110, 115, 109, 115, 105, 114, 112, 104, 114, 106, 104, 95, 117, 111, 104, 107, 112, 108, 103, 101, 141, 113, 107, 112, 112, 115, 117, 131, 108, 114, 114, 111, 92, 84, 116, 111, 113, 107, 110, 114, 108, 105, 98, 115, 110, 113, 105, 95, 116, 102, 115, 105, 120, 115, 102, 102, 108, 114, 128, 89, 109, 125, 102, 114, 100, 116, 118, 115, 105, 105, 112, 121, 116, 106, 106, 117, 106, 111, 114, 92, 107, 119, 110, 111, 108, 98, 135, 105, 115, 114, 114, 104, 118, 103, 129, 118, 92, 111, 98, 125, 105, 109, 109, 104, 113, 112, 121, 111, 117, 112, 124, 106, 107, 112, 108, 123, 109, 122, 116, 112, 103, 109, 108, 109, 117, 115, 109, 101, 109, 113, 104, 92, 102, 119, 107, 124, 107, 101, 108, 116, 131, 94, 113, 110, 109, 101, 107, 118, 115, 113, 111, 115, 104, 108, 101, 102, 99, 119, 107, 104, 106, 104, 115, 102, 96, 111, 108, 114, 102, 110, 109, 111, 90, 123, 109, 106, 108, 145, 98, 101, 116, 117, 119, 125, 120, 128, 102, 107, 108, 104, 112, 109, 112, 107, 108, 104, 114, 106, 115, 118, 113, 99, 123, 103, 107, 112, 100, 109, 113, 89, 110, 115, 99, 125, 113, 110, 104, 112, 101, 96, 124, 106, 111, 103, 103, 112, 117, 103, 123, 104, 115, 105, 120, 108, 104, 109, 110, 103, 102, 123, 115, 93, 104, 104, 113, 105, 116, 107, 118, 103, 109, 108, 123, 115, 116, 100, 103, 99, 110, 138, 103, 109, 98, 111, 113, 114, 99, 108, 109, 102, 104, 113, 98, 103, 116, 114, 109, 120, 120, 102, 110, 105, 98, 115, 103, 120, 90, 104, 106, 101, 109, 107, 103, 120, 107, 112, 103, 108, 107, 110, 109, 111, 110, 112, 106, 108, 90, 113, 110, 121, 111, 107, 109, 109, 105, 114, 115, 94, 107, 100, 98, 113, 117, 106, 102, 109, 103, 96, 102, 124, 101, 122, 89, 103, 131, 129, 102, 121, 106, 106, 90, 102, 112, 120, 118, 111, 129, 115, 106, 88, 108, 120, 105, 109, 121, 98, 103, 130, 112, 111, 117, 120, 106, 131, 113, 103, 112, 107, 110, 107, 110, 110, 104, 111, 113, 108, 119, 108, 110, 112, 117, 110, 107, 96, 121, 112, 108, 92, 112, 108, 93, 95, 115, 113, 95, 111, 104, 108, 107, 108, 109, 113, 107, 99, 115, 108, 116, 109, 109, 110, 106, 103, 118, 110, 112, 101, 107, 109, 105, 110, 107, 101, 109, 109, 108, 110, 104, 111, 109, 109, 103, 112, 109, 117, 108, 112, 102, 103, 120, 111, 112, 109, 118, 101, 118, 108, 109, 117, 96, 104, 110, 108, 113, 117, 104, 110, 110, 109, 109, 109, 102, 107, 107, 101, 106, 112, 111, 103, 110, 119, 111, 133, 113, 127, 104, 119, 114, 110, 111, 106, 104, 114, 111, 101, 111, 108, 107, 108, 108, 107, 111, 106, 95, 101, 110, 108, 111, 111, 110, 115, 112, 103, 105, 113, 108, 112, 113, 113, 106, 109, 106, 111, 109, 115, 113, 113, 113, 105, 110, 99, 111, 132, 124, 97, 106, 105, 108, 117, 110, 112, 99, 103, 104, 101, 110, 93, 108, 113, 116, 106, 111, 103, 109, 106, 107, 109, 95, 106, 104, 114, 96, 140, 109, 115, 111, 104, 110, 116, 106, 108, 101, 108, 107, 105, 109, 108, 114, 109, 111, 119, 106, 109, 109, 114, 106, 116, 114, 121, 104, 112, 107, 94, 108, 112, 113, 104, 114, 103, 115, 114, 113, 117, 111, 135, 107, 118, 110, 102, 111, 104, 105, 111, 111, 103, 98, 101, 103, 113, 107, 111, 119, 110, 113, 115, 105, 110, 112, 110, 120, 115, 110, 111, 118, 113, 106, 109, 108, 111, 92, 113, 115, 94, 102, 101, 104, 106, 113, 111, 110, 133, 108, 122, 99, 116, 116, 114, 101, 104, 107, 111, 116, 104, 109, 100, 108, 108, 109, 111, 105, 107, 113, 110, 112, 104, 109, 106, 109, 121, 95, 92, 109, 104, 98, 116, 112, 111, 104, 109, 104, 102, 94, 114, 105, 112, 105, 108, 108, 110, 111, 108, 107, 112, 113, 108, 110, 115, 107, 105, 117, 106, 107, 111, 108, 113, 113, 110, 110, 112, 108, 107, 113, 103, 115, 109, 109, 121, 113, 108, 112, 105, 107, 110, 102, 112, 96, 110, 112, 112, 109, 103, 113, 112, 108, 104, 113, 107, 114, 111, 113, 111, 108, 130, 112, 109, 106, 117, 103, 111, 106, 109, 111, 106, 109, 102, 104, 113, 111, 94, 108, 103, 108, 117, 116, 113, 110, 109, 114, 127, 106, 117, 110, 108, 103, 101, 92, 111, 109, 113, 101, 102, 113, 112, 110, 117, 113, 117, 104, 104, 114, 107, 109, 117, 117, 122, 117, 125, 123, 109, 111, 110, 98, 107, 113, 107, 111, 107, 95, 107, 103, 109, 108, 105, 113, 114, 107, 106, 120, 118, 120, 114, 112, 110, 106, 105, 99, 106, 109, 109, 113, 112, 110, 106, 109, 118, 104, 106, 117, 114, 109, 114, 96, 114, 105, 112, 106, 97, 112, 109, 104, 108, 114, 112, 111, 109, 114, 112, 111, 108, 111, 119, 110, 112, 110, 100, 115, 106, 105, 126, 112, 114, 109, 115, 116, 125, 119, 116, 129, 110, 110, 121, 113, 116, 110, 106, 96, 100, 104, 117, 109, 104, 113, 109, 107, 117, 115, 104, 116, 104, 108, 117, 110, 101, 109, 114, 110, 111, 99, 103, 119, 103, 107, 104, 111, 109, 112, 107, 107, 106, 105, 108, 105, 95, 110, 100, 113, 101, 120, 121, 103, 105, 106, 102, 112, 117, 106, 100, 111, 114, 115, 113, 109, 114, 99, 102, 108, 107, 112, 107, 110, 117, 117, 106, 113, 112, 109, 104, 104, 116, 98, 108, 108, 114, 107, 111, 108, 109, 115, 111, 111, 114, 107, 112, 109, 114, 105, 111, 108, 118, 114, 113, 116, 109, 111, 117, 107, 103, 87, 107, 102, 112, 109, 108, 113, 109, 111, 124, 113, 114, 115, 115, 115, 109, 110, 102, 118, 111, 109, 115, 106, 109, 117, 106, 111, 106, 113, 111, 112, 115, 111, 100, 126, 110, 107, 110, 105, 106, 109, 117, 106, 111, 126, 107, 104, 113, 109, 110, 111, 103, 109, 114, 111, 103, 101, 119, 113, 111, 101, 111, 111, 110, 104, 110, 104, 107, 100, 114, 117, 106, 102, 104, 112, 112, 109, 106, 98, 107, 111, 108, 106, 118, 110, 110, 107, 109, 111, 101, 106, 96, 111, 108, 114, 116, 113, 116, 108, 112, 110, 111, 114, 110, 111, 101, 113, 111, 110, 111, 99, 103, 104, 111, 109, 111, 113, 102, 122, 112, 110, 97, 105, 93, 117, 104, 112, 116, 114, 98, 107, 109, 109, 104, 110, 115, 111, 112, 116, 125, 105, 115, 118, 106, 115, 111, 111, 118, 113, 134, 110, 109, 118, 118, 123, 112, 113, 107, 125, 121, 103, 91, 99, 122, 108, 117, 109, 106, 108, 110, 122, 117, 115, 101, 117, 106, 111, 111, 111, 120, 111, 106, 110, 109, 106, 110, 114, 108, 109, 105, 109, 118, 106, 110, 109, 114, 125, 104, 103, 94, 109, 111, 110, 107, 107, 113, 119, 112, 102, 101, 115, 107, 103, 106, 105, 113, 102, 114, 141, 105, 112, 107, 116, 114, 110, 107, 106, 109, 108, 116, 110, 110, 115, 113, 106, 112, 107, 98, 113, 101, 109, 111, 114, 114, 110, 112, 101, 116, 114, 110, 113, 113, 107, 104, 111, 128, 111, 111, 112, 105, 111, 117, 106, 98, 114, 97, 103, 120, 112, 106, 107, 106, 115, 112, 105, 113, 104, 114, 106, 113, 107, 117, 110, 102, 111, 105, 113, 104, 109, 113, 106, 109, 104, 110, 107, 105, 109, 108, 100, 107, 107, 110, 110, 112, 117, 104, 109, 112, 105, 102, 112, 118, 101, 105, 109, 109, 108, 96, 105, 115, 96, 110, 106, 109, 113, 119, 110, 105, 117, 102, 119, 125, 101, 108, 108, 108, 118, 106, 103, 113, 114, 112, 112, 106, 101, 107, 101, 105, 102, 120, 101, 112, 109, 113, 110, 116, 106, 106, 111, 114, 107, 118, 109, 106, 110, 109, 107, 110, 111, 107, 111, 110, 118, 110, 96, 112, 113, 100, 116, 114, 115, 109, 108, 109, 112, 104, 115, 120, 106, 108, 104, 104, 110, 113, 113, 113, 114, 111, 101, 121, 107, 102, 116, 108, 106, 105, 119, 114, 113, 110, 105, 113, 114, 115, 112, 115, 111, 112, 114, 114, 116, 113, 106, 111, 110, 111, 106, 112, 116, 113, 112, 112, 115, 111, 115, 108, 111, 118, 111, 102, 111, 106, 113, 108, 107, 110, 106, 106, 111, 108, 105, 109, 106, 109, 114, 111, 115, 108, 121, 110, 110, 115, 111, 111, 108, 106, 104, 110, 109, 99, 116, 107, 110, 106, 114, 113, 115, 109, 107, 110, 110, 111, 109, 109, 107, 107, 112, 120, 107, 109, 115, 110, 108, 108, 111, 102, 107, 107, 112, 105, 117, 111, 110, 110, 119, 106, 112, 93, 105, 110, 113, 109, 108, 109, 113, 111, 107, 105, 110, 118, 100, 109, 110, 112, 112, 113, 107, 112, 108, 101, 107, 117, 110, 106, 111, 108, 112, 108, 104, 114, 110, 108, 108, 107, 108, 109, 116, 109, 106, 119, 108, 106, 115, 115, 109, 109, 109, 106, 116, 110, 115, 114, 124, 112, 111, 112, 110, 116, 110, 108, 107, 109, 118, 107, 111, 108, 111, 111, 112, 110, 100, 108, 102, 116, 106, 115, 110, 111, 112, 107, 106, 103, 106, 105, 112, 116, 115, 106, 109, 113, 123, 110, 114, 109, 106, 108, 111, 107, 104, 104, 113, 113, 113, 114, 108, 113, 114, 112, 105, 114, 98, 108, 118, 111, 116, 115, 105, 111, 105, 115, 112, 104, 111, 108, 111, 106, 106, 108, 110, 108, 109, 108, 119, 109, 108, 106, 109, 110, 111, 118, 117, 116, 105, 108, 113, 109, 109, 102, 105, 108, 104, 112, 112, 108, 109, 108, 107, 115, 103, 104, 112, 108, 111, 112, 123, 106, 108, 96, 109, 104, 114, 109, 105, 103, 111, 100, 109, 110, 108, 107, 105, 93, 103, 109, 106, 107, 105, 111, 109, 112, 108, 101, 108, 108, 111, 108, 106, 109, 108, 123, 143, 111, 111, 107, 105, 116, 109, 108, 109, 107, 115, 104, 98, 112, 109, 111, 108, 104, 109, 107, 107, 103, 114, 118, 101, 113, 123, 105, 99, 105, 106, 110, 108, 106, 108, 106, 110, 106, 109, 107, 131, 108, 113, 112, 100, 106, 111, 105, 108, 117, 110, 83, 109, 105, 109, 95, 117, 114, 106, 111, 115, 116, 109, 114, 106, 108, 105, 111, 109, 111, 115, 111, 109, 112, 111, 108, 135, 109, 110, 109, 104, 115, 110, 108, 109, 113, 118, 105, 106, 106, 110, 108, 108, 106, 109, 105, 106, 114, 114, 120, 109, 104, 109, 105, 110, 108, 104, 107, 113, 101, 113, 110, 116, 114, 132, 105, 110, 108, 103, 117, 107, 113, 96, 111, 109, 111, 104, 111, 113, 107, 109, 120, 113, 104, 110, 104, 110, 113, 110, 106, 114, 109, 113, 115, 110, 110, 102, 109, 120, 115, 107, 109, 116, 109, 110, 113, 118, 113, 110, 112, 111, 111, 112, 116, 108, 111, 113, 105, 108, 122, 97, 98, 113, 114, 117, 116, 115, 117, 112, 116, 117, 108, 110, 112, 110, 111, 111, 117, 110, 100, 111, 110, 116, 112, 94, 107, 102, 109, 110, 105, 109, 129, 107, 122, 105, 108, 105, 114, 109, 110, 105, 111, 104, 113, 111, 111, 115, 114, 106, 112, 106, 106, 113, 103, 113, 116, 111, 107, 108, 109, 118, 112, 113, 106, 111, 109, 111, 106, 110, 109, 105, 109, 125, 113, 106, 108, 109, 110, 112, 106, 113, 107, 111, 109, 112, 110, 108, 101, 122, 115, 119, 107, 109, 111, 119, 108, 116, 108, 114, 111, 113, 111, 121, 112, 109, 110, 110, 104, 110, 111, 109, 108, 117, 106, 110, 108, 119, 115, 118, 109, 114, 107, 113, 110, 117, 121, 111, 112, 110, 111, 110, 111, 116, 106, 113, 102, 109, 111, 108, 69, 107, 115, 113, 111, 108, 108, 111, 112, 108, 102, 109, 103, 120, 107, 107, 114, 105, 112, 116, 99, 110, 114, 109, 111, 113, 115, 118, 107, 106, 114, 111, 104, 105, 122, 98, 108, 101, 110, 110, 110, 105, 116, 117, 114, 109, 114, 111, 106, 115, 112, 108, 107, 114, 118, 108, 111, 115, 109, 110, 123, 106, 113, 107, 116, 113, 109, 114, 108, 110, 112, 116, 112, 107, 114, 121, 125, 115, 111, 115, 108, 112, 112, 108, 111, 101, 110, 111, 110, 115, 101, 116, 112, 99, 109, 107, 116, 113, 112, 106, 116, 115, 107, 109, 109, 110, 113, 109, 105, 116, 106, 108, 113, 110, 122, 105, 115, 116, 106, 111, 111, 107, 119, 113, 100, 111, 103, 120, 113, 112, 118, 108, 109, 100, 111, 113, 114, 105, 113, 115, 110, 114, 111, 113, 107, 115, 109, 114, 115, 114, 110, 108, 102, 110, 120, 114, 102, 106, 115, 110, 115, 105, 102, 109, 107, 107, 120, 102, 118, 106, 114, 115, 109, 108, 113, 109, 109, 114, 120, 105, 105, 116, 118, 107, 113, 107, 114, 107, 111, 100, 106, 108, 113, 116, 113, 112, 112, 107, 109, 110, 110, 110, 122, 106, 113, 111, 105, 111, 115, 113, 110, 109, 108, 113, 94, 103, 82, 107, 112, 110, 106, 112, 113, 113, 117, 114, 116, 101, 106, 108, 113, 110, 116, 110, 106, 108, 108, 113, 116, 104, 112, 108, 110, 107, 103, 117, 114, 109, 107, 113, 108, 128, 117, 115, 110, 105, 96, 110, 121, 108, 105, 111, 115, 79, 124, 110, 112, 111, 108, 111, 118, 113, 111, 114, 110, 111, 108, 114, 110, 109, 99, 108, 110, 114, 117, 111, 122, 106, 111, 107, 126, 114, 112, 119, 114, 115, 112, 113, 110, 115, 108, 115, 103, 112, 112, 114, 125, 109, 114, 102, 111, 120, 120, 113, 105, 103, 114, 107, 111, 111, 112, 110, 108, 112, 108, 114, 110, 111, 115, 123, 109, 109, 113, 112, 113, 113, 96, 108, 116, 109, 110, 112, 114, 113, 106, 107, 109, 106, 114, 112, 111, 117, 109, 106, 113, 102, 104, 104, 115, 105, 100, 106, 104, 124, 112, 110, 109, 112, 111, 121, 107, 111, 106, 103, 105, 110, 115, 121, 113, 108, 108, 111, 109, 105, 106, 139, 105, 112, 97, 105, 108, 111, 104, 107, 103, 113, 103, 112, 111, 112, 109, 104, 102, 112, 106, 106, 113, 111, 106, 105, 109, 110, 106, 111, 111, 115, 110, 116, 111, 108, 108, 110, 112, 109, 108, 109, 117, 107, 116, 111, 103, 112, 107, 110, 108, 109, 113, 117, 109, 113, 121, 108, 116, 104, 111, 104, 110, 114, 108, 108, 113, 106, 102, 110, 106, 114, 109, 106, 108, 109, 107, 104, 111, 110, 120, 112, 118, 107, 107, 108, 120, 111, 110, 110, 112, 112, 108, 114, 104, 103, 102, 113, 113, 109, 114, 119, 114, 110, 105, 113, 113, 103, 109, 110, 113, 107, 109, 112, 113, 118, 114, 109, 113, 116, 114, 108, 113, 108, 113, 105, 115, 124, 112, 99, 114, 109, 114, 110, 109, 112, 113, 105, 107, 111, 109, 109, 119, 117, 110, 108, 101, 114, 106, 112, 117, 117, 116, 111, 111, 113, 117, 113, 111, 116, 118, 109, 110, 112, 110, 109, 111, 118, 104, 114, 109, 113, 107, 112, 111, 104, 106, 110, 114, 115, 114, 110, 104, 116, 111, 115, 107, 107, 115, 110, 116, 111, 103, 112, 102, 99, 107, 111, 111, 109, 114, 115, 112, 110, 106, 110, 115, 110, 111, 108, 118, 105, 114, 111, 118, 117, 111, 107, 107, 113, 114, 108, 108, 113, 98, 114, 107, 108, 105, 114, 104, 115, 109, 99, 103, 102, 115, 112, 109, 113, 111, 111, 115, 121, 106, 116, 112, 117, 106, 113, 94, 104, 107, 107, 112, 111, 107, 113, 106, 106, 105, 109, 114, 118, 117, 108, 113, 108, 106, 113, 110, 94, 112, 104, 106, 127, 105, 112, 110, 110, 116, 111, 106, 104, 110, 121, 114, 114, 111, 113, 111, 112, 113, 102, 110, 104, 109, 110, 107, 108, 114, 111, 112, 114, 108, 106, 109, 107, 114, 113, 104, 110, 111, 117, 108, 109, 106, 113, 106, 115, 108, 111, 110, 113, 119, 112, 104, 101, 109, 119, 122, 114, 114, 112, 105, 120, 106, 107, 117, 108, 114, 103, 105, 114, 109, 113, 110, 107, 111, 110, 119, 115, 106, 111, 111, 106, 109, 109, 110, 108, 113, 106, 114, 111, 115, 110, 112, 120, 108, 113, 103, 109, 113, 104, 103, 112, 113, 113, 105, 112, 107, 101, 113, 106, 110, 106, 108, 108, 106, 109, 115, 114, 107, 110, 113, 109, 112, 106, 105, 111, 111, 106, 109, 113, 107, 108, 110, 111, 106, 112, 103, 109, 107, 104, 109, 115, 111, 108, 113, 112, 97, 111, 107, 111, 115, 108, 117, 110, 113, 119, 111, 111, 108, 109, 113, 106, 112, 114, 108, 104, 104, 104, 116, 106, 111, 112, 103, 110, 112, 112, 110, 104, 108, 110, 114, 103, 113, 112, 103, 109, 95, 113, 115, 115, 111, 109, 110, 118, 111, 110, 112, 117, 102, 119, 92, 112, 97, 101, 116, 110, 113, 112, 107, 109, 109, 109, 110, 113, 111, 107, 113, 112, 106, 105, 104, 113, 112, 111, 92, 106, 116, 107, 118, 108, 97, 114, 113, 118, 118, 109, 111, 110, 111, 111, 110, 106, 109, 116, 106, 112, 118, 105, 110, 118, 112, 112, 111, 114, 113, 110, 104, 109, 108, 104, 122, 104, 111, 111, 105, 103, 119, 107, 110, 109, 113, 104, 111, 111, 114, 109, 116, 107, 111, 116, 113, 115, 109, 117, 110, 111, 88, 107, 109, 108, 107, 112, 110, 119, 104, 109, 108, 117, 114, 109, 109, 123, 131, 108, 125, 111, 110, 116, 105, 107, 115, 111, 109, 116, 103, 106, 105, 116, 108, 120, 105, 96, 101, 108, 114, 100, 114, 108, 109, 101, 104, 113, 113, 108, 111, 120, 102, 104, 110, 104, 106, 110, 114, 109, 105, 110, 109, 102, 114, 112, 105, 108, 107, 109, 118, 109, 110, 124, 111, 114, 113, 115, 121, 105, 106, 113, 96, 109, 110, 98, 125, 113, 112, 109, 106, 112, 103, 117, 104, 107, 114, 110, 112, 107, 114, 113, 105, 104, 117, 117, 112, 101, 112, 111, 119, 105, 107, 123, 107, 108, 107, 112, 102, 92, 106, 113, 113, 100, 115, 109, 104, 104, 114, 111, 107, 108, 131, 107, 109, 106, 108, 115, 109, 107, 104, 107, 98, 112, 119, 101, 109, 114, 108, 107, 106, 107, 109, 110, 112, 110, 111, 110, 124, 120, 114, 110, 110, 114, 115, 109, 113, 110, 104, 112, 110, 109, 114, 113, 114, 130, 105, 110, 110, 110, 107, 109, 110, 109, 106, 110, 103, 109, 108, 100, 112, 109, 120, 114, 108, 112, 112, 109, 112, 104, 109, 109, 96, 101, 111, 112, 109, 107, 104, 102, 103, 108, 110, 110, 107, 114, 114, 102, 107, 103, 108, 100, 141, 110, 118, 110, 107, 110, 105, 112, 105, 109, 108, 110, 115, 108, 108, 109, 106, 103, 115, 111, 106, 111, 107, 110, 109, 107, 110, 114, 102, 102, 103, 102, 117, 112, 105, 115, 98, 114, 122, 109, 108, 104, 133, 112, 117, 109, 109, 119, 110, 98, 108, 111, 103, 111, 108, 112, 112, 116, 111, 110, 113, 105, 106, 115, 122, 102, 108, 115, 107, 115, 117, 113, 113, 113, 93, 119, 81, 112, 122, 111, 121, 114, 111, 103, 112, 106, 127, 102, 94, 126, 109, 122, 109, 103, 114, 109, 112, 103, 98, 115, 109, 110, 107, 115, 108, 111, 113, 80, 114, 117, 110, 116, 104, 107, 120, 112, 112, 110, 95, 109, 112, 103, 114, 72, 117, 113, 110, 113, 110, 100, 107, 121, 112, 109, 108, 106, 116, 86, 112, 105, 116, 113, 110, 107, 102, 114, 98, 115, 108, 99, 100, 114, 108, 114, 108, 108, 106, 104, 114, 105, 107, 111, 114, 108, 109, 111, 110, 108, 103, 111, 110, 109, 117, 104, 107, 103, 103, 115, 113, 106, 109, 117, 102, 111, 116, 106, 105, 112, 111, 102, 108, 109, 111, 110, 108, 121, 104, 105, 106, 109, 107, 112, 118, 104, 114, 109, 106, 113, 102, 106, 96, 112, 112, 112, 105, 99, 99, 100, 110, 112, 115, 112, 109, 121, 110, 108, 112, 116, 110, 101, 108, 104, 112, 124, 106, 112, 110, 142, 111, 123, 118, 113, 112, 110, 110, 135, 109, 111, 104, 115, 107, 106, 113, 105, 102, 99, 143, 104, 111, 113, 114, 102, 104, 108, 119, 108, 110, 115, 122, 109, 116, 108, 111, 98, 113, 108, 113, 111, 110, 108, 121, 114, 107, 119, 114, 99, 135, 109, 107, 112, 103, 103, 112, 103, 113, 110, 110, 122, 111, 107, 113, 110, 114, 107, 109, 111, 115, 119, 106, 109, 115, 106, 111, 109, 117, 104, 113, 111, 116, 105, 104, 105, 116, 107, 111, 114, 109, 110, 111, 109, 107, 112, 108, 113, 112, 120, 109, 112, 109, 109, 115, 106, 115, 113, 100, 104, 117, 112, 104, 106, 109, 96, 109, 111, 107, 115, 113, 112, 114, 119, 124, 109, 116, 111, 113, 113, 104, 111, 112, 111, 108, 128, 108, 110, 111, 108, 116, 107, 114, 108, 114, 116, 122, 109, 114, 110, 107, 114, 113, 113, 100, 113, 109, 108, 123, 109, 112, 109, 114, 112, 105, 111, 110, 109, 111, 108, 109, 114, 115, 109, 117, 115, 113, 106, 112, 112, 101, 114, 118, 101, 108, 118, 118, 103, 115, 111, 122, 118, 112, 105, 107, 109, 108, 115, 112, 107, 111, 116, 107, 105, 111, 108, 117, 112, 109, 111, 101, 112, 105, 105, 100, 115, 110, 113, 108, 103, 105, 106, 110, 101, 113, 106, 111, 105, 113, 113, 109, 109, 109, 113, 123, 117, 114, 110, 105, 104, 104, 109, 108, 117, 108, 115, 109, 129, 110, 106, 99, 117, 113, 110, 102, 113, 108, 110, 117, 120, 101, 104, 103, 107, 111, 114, 111, 104, 108, 109, 111, 114, 114, 118, 114, 115, 109, 111, 107, 114, 110, 111, 107, 104, 109, 112, 107, 103, 106, 107, 106, 115, 109, 109, 111, 107, 108, 113, 102, 110, 119, 112, 103, 101, 109, 114, 114, 109, 116, 110, 110, 104, 106, 114, 96, 115, 108, 115, 102, 104, 108, 107, 110, 105, 105, 105, 108, 114, 108, 118, 105, 108, 114, 113, 107, 111, 107, 114, 118, 114, 106, 111, 106, 113, 107, 111, 113, 105, 108, 110, 110, 107, 121, 112, 116, 108, 107, 116, 110, 105, 111, 123, 112, 110, 109, 107, 115, 116, 112, 111, 117, 104, 105, 111, 110, 111, 107, 110, 108, 111, 119, 107, 113, 105, 104, 106, 111, 107, 111, 110, 95, 117, 117, 115, 106, 113, 98, 115, 116, 117, 110, 108, 108, 97, 107, 114, 120, 107, 108, 107, 109, 109, 115, 109, 105, 125, 105, 111, 108, 108, 113, 112, 115, 111, 104, 101, 119, 111, 107, 114, 104, 109, 110, 108, 116, 115, 112, 115, 114, 110, 109, 109, 105, 118, 112, 109, 104, 114, 109, 112, 107, 113, 108, 110, 109, 107, 94, 105, 116, 113, 106, 113, 108, 106, 108, 113, 112, 120, 111, 114, 117, 114, 106, 120, 114, 117, 107, 114, 105, 110, 107, 111, 118, 104, 111, 109, 121, 112, 110, 117, 111, 108, 111, 109, 101, 114, 110, 115, 112, 111, 109, 110, 113, 114, 113, 112, 113, 104, 109, 109, 113, 117, 109, 111, 110, 117, 111, 114, 106, 118, 115, 111, 109, 111, 98, 115, 113, 107, 105, 115, 113, 116, 116, 114, 109, 104, 108, 103, 105, 104, 115, 113, 100, 109, 108, 106, 111, 114, 105, 112, 112, 115, 111, 115, 115, 117, 112, 115, 107, 108, 111, 112, 116, 114, 112, 110, 101, 114, 116, 99, 107, 112, 97, 115, 110, 110, 102, 113, 119, 108, 102, 102, 101, 113, 118, 110, 115, 104, 118, 101, 105, 110, 121, 124, 112, 124, 109, 109, 107, 111, 102, 115, 127, 107, 116, 109, 106, 118, 102, 108, 106, 128, 108, 110, 106, 110, 93, 106, 99, 110, 112, 124, 103, 104, 109, 110, 110, 104, 114, 114, 126, 112, 104, 104, 118, 109, 110, 109, 102, 118, 111, 88, 110, 108, 115, 130, 108, 112, 99, 107, 113, 115, 108, 111, 118, 117, 115, 103, 111, 109, 110, 137, 113, 111, 118, 129, 109, 110, 108, 103, 108, 119, 105, 111, 101, 101, 102, 118, 110, 102, 120, 109, 120, 114, 91, 111, 104, 117, 106, 117, 88, 106, 111, 108, 109, 111, 118, 116, 110, 118, 112, 109, 118, 122, 114, 107, 113, 109, 110, 104, 104, 112, 108, 107, 111, 105, 115, 108, 105, 104, 106, 102, 119, 138, 103, 102, 112, 99, 115, 115, 115, 120, 105, 100, 103, 97, 119, 102, 106, 116, 111, 105, 120, 115, 114, 100, 110, 107, 111, 117, 103, 103, 119, 106, 109, 100, 103, 128, 121, 110, 108, 116, 112, 110, 117, 104, 114, 105, 107, 102, 120, 112, 107, 111, 132, 125, 110, 112, 104, 119, 99, 113, 107, 124, 107, 118, 108, 116, 104, 105, 121, 122, 110, 111, 110, 112, 109, 121, 114, 116, 114, 103, 105, 112, 104, 107, 121, 107, 106, 121, 111, 106, 108, 101, 121, 101, 114, 110, 91, 116, 113, 109, 112, 106, 113, 111, 119, 110, 89, 108, 105, 122, 94, 90, 104, 110, 107, 126, 105, 109, 104, 111, 117, 109, 111, 116, 108, 106, 116, 106, 127, 118, 100, 121, 98, 113, 115, 102, 98, 114, 110, 114, 106, 103, 122, 109, 108, 107, 128, 100, 116, 99, 120, 99, 124, 111, 107, 121, 112, 114, 109, 113, 105, 110, 94, 110, 101, 118, 100, 108, 115, 117, 105, 119, 109, 116, 109, 86, 112, 103, 110, 107, 117, 97, 122, 102, 111, 119, 116, 111, 100, 114, 119, 112, 106, 110, 107, 125, 103, 106, 108, 109, 114, 102, 114, 100, 103, 107, 117, 112, 124, 116, 110, 106, 95, 110, 109, 118, 106, 117, 109, 103, 126, 105, 116, 111, 103, 105, 101, 118, 107, 102, 103, 117, 105, 110, 107, 102, 111, 124, 104, 116, 127, 117, 101, 114, 103, 111, 112, 119, 102, 111, 103, 113, 122, 100, 108, 110, 104, 112, 105, 106, 106, 103, 111, 102, 115, 111, 118, 105, 106, 107, 104, 107, 106, 105, 105, 100, 102, 97, 109, 99, 115, 108, 115, 115, 113, 102, 104, 106, 120, 101, 112, 115, 106, 103, 111, 117, 111, 105, 108, 119, 125, 108, 102, 104, 107, 103, 93, 105, 109, 103, 103, 102, 113, 118, 108, 116, 124, 105, 131, 110, 111, 98, 110, 104, 112, 112, 110, 99, 120, 110, 103, 111, 115, 112, 112, 108, 117, 106, 102, 113, 111, 108, 118, 110, 111, 114, 112, 110, 111, 112, 112, 114, 110, 95, 118, 111, 100, 115, 109, 102, 110, 104, 110, 113, 104, 106, 114, 112, 110, 113, 118, 109, 120, 115, 112, 113, 109, 103, 103, 108, 111, 111, 111, 110, 99, 106, 108, 113, 111, 112, 111, 112, 113, 110, 103, 110, 109, 109, 105, 105, 120, 114, 107, 105, 114, 106, 101, 118, 113, 121, 109, 114, 116, 112, 108, 96, 101, 106, 115, 110, 120, 113, 113, 111, 109, 113, 104, 107, 112, 105, 105, 114, 110, 103, 110, 107, 118, 113, 105, 104, 93, 107, 136, 103, 104, 90, 101, 112, 106, 115, 115, 108, 114, 113, 107, 111, 107, 120, 106, 109, 113, 104, 108, 107, 114, 121, 101, 108, 109, 107, 109, 110, 118, 115, 105, 99, 111, 111, 113, 117, 105, 102, 114, 113, 110, 106, 105, 107, 107, 98, 94, 109, 111, 109, 104, 111, 108, 107, 115, 125, 145, 109, 102, 111, 107, 81, 111, 108, 107, 115, 107, 108, 120, 111, 112, 114, 148, 113, 107, 110, 124, 108, 116, 112, 122, 111, 107, 105, 109, 107, 116, 112, 111, 115, 126, 115, 104, 104, 113, 108, 108, 113, 99, 111, 112, 107, 112, 104, 113, 103, 118, 117, 110, 111, 111, 106, 102, 104, 103, 112, 106, 114, 130, 103, 111, 118, 105, 110, 109, 107, 108, 114, 112, 109, 117, 107, 116, 108, 104, 99, 111, 116, 99, 99, 116, 103, 114, 118, 101, 121, 112, 105, 118, 105, 108, 115, 114, 105, 104, 107, 100, 104, 95, 111, 105, 115, 110, 103, 113, 110, 109, 104, 112, 117, 111, 115, 103, 98, 106, 109, 115, 110, 117, 105, 102, 111, 111, 110, 111, 103, 105, 111, 118, 118, 110, 120, 126, 92, 108, 110, 115, 115, 104, 105, 107, 108, 104, 114, 110, 116, 110, 107, 101, 113, 105, 112, 111, 112, 121, 114, 116, 115, 110, 104, 110, 102, 109, 105, 111, 107, 105, 113, 105, 114, 107, 102, 114, 112, 121, 113, 103, 110, 112, 119, 114, 106, 113, 106, 108, 120, 99, 100, 109, 105, 109, 109, 112, 115, 101, 123, 111, 105, 111, 109, 110, 112, 113, 106, 109, 107, 123, 99, 114, 112, 116, 116, 98, 106, 107, 110, 110, 113, 108, 128, 107, 110, 122, 117, 110, 116, 91, 117, 107, 102, 94, 112, 93, 107, 111, 111, 110, 99, 112, 97, 116, 108, 113, 109, 104, 110, 93, 105, 109, 111, 116, 114, 105, 115, 116, 110, 118, 116, 123, 118, 113, 108, 110, 114, 101, 104, 108, 126, 112, 109, 108, 105, 107, 119, 107, 114, 107, 116, 97, 108, 93, 113, 107, 105, 107, 108, 112, 105, 98, 106, 117, 116, 104, 110, 107, 106, 112, 114, 103, 102, 103, 110, 111, 105, 101, 126, 109, 117, 120, 103, 102, 112, 116, 111, 115, 107, 131, 111, 112, 111, 109, 105, 110, 113, 112, 112, 109, 108, 106, 114, 105, 110, 127, 105, 111, 100, 112, 105, 114, 114, 108, 95, 104, 111, 124, 106, 111, 110, 105, 101, 103, 122, 115, 110, 118, 108, 110, 119, 109, 110, 114, 108, 102, 100, 115, 114, 109, 106, 110, 107, 120, 111, 105, 111, 111, 101, 105, 111, 129, 109, 99, 110, 98, 109, 109, 104, 108, 110, 108, 112, 110, 109, 109, 114, 112, 115, 99, 106, 100, 113, 113, 102, 102, 111, 120, 80, 112, 98, 109, 112, 111, 111, 107, 112, 107, 106, 108, 109, 107, 109, 107, 99, 102, 109, 111, 110, 106, 89, 103, 94, 110, 108, 113, 115, 114, 103, 110, 109, 110, 107, 110, 109, 111, 112, 110, 111, 115, 111, 104, 106, 114, 113, 108, 110, 102, 112, 111, 113, 115, 112, 108, 112, 111, 119, 117, 106, 104, 61, 118, 110, 109, 112, 105, 109, 108, 107, 114, 112, 101, 112, 108, 116, 112, 106, 110, 109, 85, 112, 110, 106, 108, 112, 112, 103, 106, 106, 106, 97, 113, 110, 107, 119, 104, 114, 109, 114, 108, 108, 110, 110, 110, 114, 105, 111, 113, 109, 113, 113, 112, 113, 108, 105, 112, 115, 110, 106, 112, 109, 113, 110, 127, 127, 107, 115, 113, 111, 111, 112, 102, 122, 107, 126, 106, 116, 112, 111, 98, 112, 115, 108, 100, 107, 108, 107, 116, 113, 117, 115, 102, 106, 109, 117, 108, 107, 88, 107, 99, 111, 106, 117, 113, 105, 111, 107, 113, 105, 106, 109, 110, 117, 116, 107, 111, 107, 109, 115, 105, 109, 111, 107, 110, 112, 110, 108, 95, 106, 111, 104, 98, 109, 101, 104, 105, 103, 103, 103, 122, 112, 109, 109, 111, 96, 107, 105, 111, 113, 115, 110, 109, 105, 113, 105, 108, 101, 110, 110, 109, 114, 109, 115, 111, 110, 110, 194, 77, 113, 114, 108, 105, 115, 118, 100, 113, 107, 108, 112, 108, 115, 114, 114, 105, 109, 114, 107, 117, 110, 115, 110, 105, 105, 111, 110, 108, 109, 115, 115, 111, 110, 105, 112, 107, 105, 111, 99, 114, 111, 110, 117, 113, 138, 110, 114, 101, 110, 110, 106, 113, 105, 112, 108, 106, 116, 111, 120, 108, 107, 95, 101, 110, 105, 105, 105, 108, 112, 109, 112, 115, 108, 113, 108, 107, 105, 125, 108, 107, 114, 112, 114, 110, 111, 114, 122, 110, 116, 118, 110, 99, 113, 102, 122, 109, 117, 110, 102, 113, 99, 106, 115, 118, 114, 110, 112, 109, 116, 102, 109, 100, 107, 87, 115, 106, 111, 140, 112, 110, 106, 113, 108, 113, 115, 112, 109, 107, 104, 117, 113, 106, 110, 109, 111, 105, 113, 100, 105, 122, 96, 113, 102, 113, 108, 108, 99, 114, 109, 117, 119, 108, 111, 108, 110, 110, 110, 110, 107, 108, 109, 100, 112, 82, 116, 106, 114, 106, 67, 99, 107, 103, 115, 107, 112, 114, 107, 110, 109, 112, 114, 109, 102, 114, 108, 104, 101, 110, 116, 125, 110, 109, 98, 115, 104, 95, 107, 112, 108, 108, 107, 115, 102, 107, 115, 108, 110, 111, 118, 116, 115, 117, 106, 95, 109, 114, 132, 115, 111, 120, 118, 107, 113, 108, 118, 116, 107, 119, 112, 102, 112, 100, 82, 110, 119, 111, 100, 115, 112, 105, 113, 110, 115, 106, 125, 105, 123, 105, 109, 110, 105, 101, 120, 103, 121, 112, 130, 109, 128, 119, 109, 107, 102, 106, 118, 100, 114, 109, 108, 112, 116, 116, 83, 115, 99, 107, 121, 92, 99, 118, 125, 114, 110, 98, 111, 111, 110, 117, 108, 117, 110, 111, 109, 104, 100, 104, 47, 105, 101, 102, 113, 105, 111, 117, 102, 122, 107, 107, 95, 115, 109, 108, 108, 111, 112, 110, 103, 117, 121, 114, 112, 113, 112, 113, 99, 109, 124, 112, 118, 110, 115, 116, 112, 113, 112, 99, 115, 108, 110, 113, 105, 105, 113, 110, 95, 111, 109, 111, 112, 107, 107, 124, 81, 123, 119, 99, 102, 103, 118, 107, 77, 110, 113, 109, 122, 94, 107, 119, 110, 115, 111, 113, 112, 110, 109, 121, 121, 118, 138, 109, 114, 122, 112, 109, 110, 106, 113, 114, 108, 104, 104, 121, 109, 112, 102, 111, 115, 116, 112, 108, 111, 115, 255, 115, 106, 104, 112, 110, 122, 111, 114, 106, 107, 110, 115, 98, 119, 109, 112, 108, 116, 111, 123, 118, 121, 115, 107, 114, 99, 110, 103, 104, 119, 120, 101, 114, 113, 106, 109, 117, 110, 125, 113, 128, 102, 115, 107, 120, 115, 116, 112, 99, 103, 114, 109, 106, 106, 108, 113, 122, 102, 105, 105, 128, 106, 104, 109, 113, 116, 104, 117, 110, 118, 115, 121, 105, 111, 109, 104, 94, 104, 105, 113, 115, 114, 119, 111, 111, 105, 107, 111, 130, 109, 108, 115, 114, 112, 106, 109, 117, 116, 111, 115, 110, 114, 101, 102, 107, 106, 108, 106, 109, 123, 117, 116, 106, 113, 117, 110, 106, 111, 111, 117, 112, 103, 111, 107, 111, 128, 112, 117, 110, 113, 108, 114, 111, 112, 95, 113, 114, 108, 107, 119, 111, 116, 114, 101, 119, 115, 99, 119, 120, 117, 106, 111, 116, 121, 120, 116, 108, 107, 92, 102, 125, 117, 96, 111, 112, 104, 109, 115, 114, 109, 115, 103, 118, 116, 121, 113, 106, 109, 108, 101, 113, 117, 109, 99, 110, 107, 108, 110, 108, 105, 122, 115, 112, 111, 110, 107, 104, 122, 120, 114, 100, 120, 106, 119, 101, 108, 129, 113, 111, 121, 112, 107, 112, 112, 113, 106, 120, 98, 108, 110, 106, 95, 110, 106, 106, 103, 104, 109, 110, 114, 112, 88, 107, 111, 99, 109, 111, 110, 112, 109, 121, 110, 117, 122, 116, 113, 117, 116, 114, 121, 114, 117, 105, 110, 109, 108, 119, 114, 114, 114, 105, 111, 122, 97, 112, 109, 108, 117, 108, 118, 105, 92, 110, 98, 106, 111, 111, 112, 111, 102, 106, 110, 127, 107, 98, 112, 111, 109, 109, 111, 113, 112, 0, 115, 99, 113, 106, 109, 105, 118, 134, 84, 111, 109, 115, 110, 118, 125, 84, 61, 130, 106, 132, 117, 111, 127, 106, 122, 106, 107, 106, 115, 134, 112, 111, 99, 104, 113, 118, 101, 117, 114, 110, 114, 115, 109, 109, 106, 107, 131, 110, 111, 106, 118, 106, 120, 115, 118, 119, 111, 109, 115, 81, 101, 113, 109, 106, 113, 102, 104, 105, 108, 108, 112, 114, 112, 110, 100, 117, 112, 108, 111, 110, 101, 114, 103, 107, 110, 106, 111, 112, 112, 112, 105, 114, 123, 104, 104, 105, 117, 109, 105, 111, 111, 110, 103, 106, 115, 111, 109, 107, 115, 111, 112, 103, 101, 114, 109, 105, 101, 106, 104, 113, 103, 116, 104, 119, 118, 116, 115, 129, 110, 109, 115, 102, 108, 109, 111, 128, 115, 107, 112, 113, 105, 104, 106, 111, 102, 104, 109, 109, 111, 101, 109, 121, 107, 115, 110, 113, 115, 108, 111, 96, 104, 107, 113, 111, 105, 110, 111, 101, 106, 109, 113, 110, 104, 104, 119, 108, 93, 113, 107, 108, 103, 121, 112, 113, 96, 110, 107, 104, 112, 105, 106, 106, 115, 111, 113, 107, 124, 108, 109, 109, 111, 115, 101, 112, 109, 110, 117, 112, 118, 115, 115, 104, 114, 99, 99, 110, 107, 107, 114, 112, 108, 109, 110, 108, 111, 108, 109, 121, 100, 118, 107, 117, 124, 107, 109, 113, 130, 108, 116, 115, 105, 100, 119, 107, 105, 120, 104, 112, 110, 113, 111, 104, 110, 98, 107, 111, 110, 109, 115, 119, 115, 112, 103, 104, 106, 95, 84, 107, 105, 116, 110, 108, 105, 112, 110, 114, 104, 104, 108, 117, 112, 107, 101, 119, 103, 109, 111, 103, 108, 110, 111, 108, 115, 124, 108, 110, 110, 117, 110, 105, 108, 108, 107, 108, 104, 113, 125, 98, 109, 107, 111, 99, 103, 102, 104, 104, 109, 119, 104, 115, 111, 122, 104, 112, 120, 114, 111, 113, 114, 108, 112, 111, 116, 114, 109, 110, 118, 118, 108, 111, 110, 109, 108, 95, 101, 95, 109, 108, 117, 114, 108, 108, 105, 121, 113, 76, 105, 109, 108, 126, 123, 115, 114, 109, 111, 111, 115, 100, 103, 109, 111, 107, 111, 103, 116, 109, 106, 99, 109, 111, 111, 111, 107, 111, 108, 112, 90, 110, 106, 111, 125, 107, 106, 120, 111, 106, 109, 98, 113, 110, 99, 105, 79, 114, 112, 116, 114, 110, 108, 116, 119, 110, 106, 111, 110, 112, 83, 108, 120, 114, 117, 111, 106, 115, 109, 106, 112, 115, 104, 112, 114, 107, 105, 109, 110, 107, 107, 112, 117, 110, 105, 117, 113, 114, 100, 106, 114, 121, 117, 108, 95, 106, 107, 106, 100, 112, 104, 118, 113, 112, 102, 114, 113, 108, 115, 100, 112, 116, 106, 109, 104, 114, 113, 106, 111, 99, 110, 104, 113, 103, 112, 99, 104, 110, 116, 110, 108, 111, 101, 106, 116, 109, 109, 107, 114, 120, 105, 110, 115, 99, 113, 124, 113, 107, 104, 121, 117, 113, 113, 104, 112, 107, 88, 103, 113, 110, 114, 111, 106, 125, 100, 113, 111, 111, 158, 113, 119, 104, 109, 113, 110, 102, 106, 90, 109, 122, 103, 110, 112, 104, 109, 106, 119, 113, 110, 110, 104, 99, 109, 112, 108, 108, 111, 111, 109, 107, 110, 112, 98, 111, 115, 105, 117, 103, 120, 143, 112, 106, 109, 115, 112, 108, 104, 107, 98, 108, 108, 116, 110, 103, 113, 121, 114, 108, 122, 96, 102, 111, 106, 107, 102, 111, 105, 103, 127, 118, 109, 109, 105, 108, 108, 109, 110, 96, 127, 108, 107, 100, 110, 111, 117, 118, 105, 111, 109, 110, 108, 108, 107, 107, 109, 117, 111, 101, 113, 103, 114, 111, 116, 103, 113, 108, 106, 133, 100, 107, 109, 102, 110, 111, 107, 113, 114, 113, 108, 121, 112, 106, 112, 108, 112, 103, 120, 107, 119, 108, 104, 109, 102, 108, 99, 110, 106, 110, 115, 120, 124, 124, 104, 118, 111, 109, 111, 117, 100, 116, 113, 104, 96, 107, 111, 110, 114, 114, 107, 112, 110, 107, 104, 115, 110, 110, 102, 114, 105, 116, 97, 99, 112, 111, 120, 112, 93, 110, 108, 107, 114, 106, 105, 128, 106, 103, 112, 113, 114, 118, 111, 102, 116, 106, 112, 110, 109, 110, 121, 101, 115, 113, 106, 112, 112, 115, 104, 109, 111, 117, 101, 106, 110, 109, 112, 103, 118, 112, 122, 117, 113, 116, 114, 105, 110, 104, 109, 120, 93, 92, 101, 108, 103, 98, 110, 109, 110, 113, 113, 114, 102, 111, 112, 108, 100, 111, 108, 112, 103, 98, 112, 112, 119, 117, 108, 119, 106, 108, 105, 116, 117, 109, 111, 105, 107, 105, 106, 113, 111, 110, 101, 108, 110, 114, 119, 112, 97, 121, 114, 112, 108, 100, 107, 116, 113, 117, 120, 105, 124, 102, 112, 113, 117, 112, 109, 114, 100, 95, 110, 97, 105, 108, 109, 109, 107, 107, 103, 107, 121, 105, 107, 105, 120, 114, 108, 111, 108, 118, 112, 101, 117, 106, 106, 106, 110, 113, 105, 106, 116, 125, 133, 108, 108, 114, 109, 103, 122, 100, 116, 99, 101, 118, 117, 96, 109, 120, 116, 115, 127, 102, 109, 109, 112, 115, 108, 116, 112, 108, 118, 106, 91, 118, 104, 114, 114, 111, 110, 107, 114, 112, 110, 104, 99, 102, 110, 114, 107, 113, 107, 115, 113, 108, 113, 116, 105, 105, 122, 104, 104, 110, 107, 102, 113, 111, 114, 116, 96, 108, 101, 112, 120, 107, 107, 107, 96, 107, 109, 117, 104, 107, 113, 114, 116, 121, 116, 111, 92, 121, 121, 111, 127, 106, 119, 104, 110, 99, 101, 107, 109, 106, 114, 109, 132, 104, 103, 107, 109, 108, 100, 121, 114, 112, 121, 105, 116, 113, 104, 108, 109, 107, 111, 106, 102, 102, 104, 114, 113, 113, 99, 116, 112, 109, 102, 112, 109, 107, 109, 105, 111, 111, 108, 106, 110, 109, 101, 104, 119, 100, 113, 109, 118, 115, 107, 102, 116, 112, 121, 108, 109, 102, 112, 111, 104, 115, 105, 95, 102, 112, 93, 113, 95, 105, 102, 112, 103, 105, 113, 115, 116, 110, 116, 110, 106, 102, 102, 112, 121, 103, 126, 101, 113, 105, 110, 108, 113, 99, 114, 102, 107, 100, 116, 98, 116, 114, 105, 112, 116, 110, 103, 116, 103, 103, 110, 103, 104, 86, 104, 98, 96, 101, 100, 110, 118, 116, 108, 110, 116, 104, 107, 106, 109, 99, 119, 124, 121, 108, 102, 106, 102, 117, 111, 109, 122, 114, 110, 105, 101, 100, 111, 106, 113, 114, 110, 115, 108, 107, 105, 115, 107, 103, 115, 115, 112, 103, 109, 110, 109, 101, 103, 112, 109, 106, 104, 109, 103, 114, 97, 111, 109, 110, 113, 113, 110, 116, 102, 104, 99, 107, 108, 116, 103, 104, 117, 126, 116, 109, 112, 114, 109, 107, 115, 110, 115, 100, 112, 111, 111, 108, 103, 118, 112, 108, 108, 109, 108, 104, 102, 112, 126, 115, 119, 108, 112, 126, 111, 117, 106, 117, 106, 103, 112, 119, 100, 110, 104, 112, 111, 112, 99, 112, 112, 110, 110, 105, 111, 113, 113, 113, 117, 114, 101, 109, 110, 101, 115, 107, 98, 97, 107, 111, 108, 111, 106, 116, 109, 111, 109, 107, 118, 153, 103, 110, 110, 109, 113, 114, 108, 110, 102, 106, 120, 110, 124, 101, 107, 96, 101, 109, 115, 96, 113, 111, 111, 116, 112, 108, 103, 112, 100, 111, 111, 91, 115, 115, 109, 107, 108, 104, 112, 104, 115, 109, 111, 99, 115, 109, 116, 114, 117, 103, 111, 112, 110, 105, 108, 109, 133, 112, 115, 114, 108, 102, 109, 121, 113, 109, 105, 104, 99, 110, 108, 109, 118, 112, 107, 113, 116, 115, 106, 110, 110, 116, 109, 107, 107, 109, 46, 103, 112, 106, 104, 114, 98, 106, 103, 109, 109, 103, 107, 118, 123, 109, 112, 106, 107, 118, 107, 117, 116, 118, 103, 110, 113, 109, 103, 116, 110, 104, 105, 110, 109, 118, 104, 111, 107, 106, 104, 109, 111, 109, 107, 109, 112, 130, 121, 108, 106, 128, 109, 112, 116, 108, 112, 104, 115, 116, 103, 115, 97, 111, 107, 113, 109, 111, 110, 112, 106, 115, 109, 107, 108, 108, 113, 114, 106, 116, 109, 98, 105, 107, 110, 109, 99, 111, 107, 121, 106, 114, 104, 89, 105, 109, 114, 108, 113, 102, 111, 108, 113, 106, 116, 115, 127, 118, 109, 107, 111, 105, 115, 103, 107, 109, 115, 108, 119, 114, 106, 109, 109, 112, 96, 108, 115, 95, 110, 109, 111, 110, 111, 102, 119, 114, 118, 101, 110, 130, 109, 103, 104, 94, 121, 101, 107, 102, 111, 101, 111, 112, 106, 118, 113, 126, 125, 110, 111, 116, 113, 118, 115, 124, 108, 112, 114, 107, 110, 103, 108, 104, 113, 115, 110, 112, 109, 112, 111, 109, 114, 105, 93, 110, 100, 98, 113, 112, 123, 106, 115, 100, 108, 106, 108, 104, 102, 114, 123, 102, 115, 116, 113, 105, 112, 125, 114, 120, 118, 109, 108, 107, 115, 106, 115, 103, 109, 106, 104, 91, 110, 116, 105, 112, 109, 113, 110, 110, 111, 110, 112, 106, 108, 119, 112, 110, 119, 103, 110, 118, 113, 113, 107, 112, 117, 108, 106, 103, 104, 92, 110, 109, 109, 113, 106, 105, 112, 106, 118, 111, 106, 113, 103, 113, 113, 105, 110, 126, 107, 107, 113, 110, 105, 113, 118, 116, 113, 110, 108, 106, 106, 105, 113, 105, 117, 109, 111, 109, 112, 115, 108, 108, 109, 114, 106, 113, 103, 115, 106, 122, 112, 122, 101, 112, 104, 114, 104, 110, 117, 105, 102, 109, 106, 112, 110, 103, 105, 124, 102, 120, 114, 114, 107, 108, 130, 103, 105, 115, 107, 107, 121, 110, 97, 113, 116, 117, 120, 103, 94, 111, 123, 117, 107, 125, 111, 119, 111, 110, 113, 117, 116, 104, 110, 111, 110, 114, 111, 97, 108, 110, 108, 117, 103, 114, 113, 104, 115, 105, 101, 117, 114, 120, 115, 111, 110, 100, 110, 102, 108, 122, 111, 106, 108, 105, 108, 112, 111, 117, 101, 116, 120, 108, 115, 118, 110, 111, 110, 106, 125, 116, 114, 93, 100, 106, 117, 115, 108, 101, 119, 117, 96, 120, 106, 112, 87, 126, 121, 110, 106, 116, 117, 110, 113, 109, 107, 118, 111, 105, 110, 126, 103, 124, 116, 103, 122, 105, 102, 108, 110, 115, 111, 111, 102, 126, 123, 111, 115, 116, 104, 113, 108, 109, 100, 112, 123, 110, 110, 112, 110, 110, 110, 116, 125, 108, 101, 127, 110, 111, 117, 106, 107, 114, 112, 113, 100, 109, 125, 111, 99, 124, 106, 116, 105, 109, 112, 110, 104, 108, 107, 109, 100, 108, 103, 112, 107, 101, 99, 108, 104, 108, 124, 108, 108, 118, 107, 103, 103, 120, 115, 118, 112, 117, 104, 100, 118, 110, 108, 110, 111, 110, 101, 105, 111, 111, 98, 113, 120, 111, 108, 114, 115, 121, 112, 119, 118, 111, 109, 111, 119, 113, 106, 113, 115, 112, 108, 114, 111, 100, 107, 116, 116, 114, 109, 116, 116, 100, 112, 106, 112, 108, 93, 106, 105, 97, 114, 111, 101, 107, 120, 99, 117, 119, 113, 106, 110, 106, 117, 107, 101, 97, 108, 109, 112, 109, 106, 99, 99, 117, 115, 120, 112, 108, 120, 118, 106, 116, 122, 110, 112, 124, 119, 115, 105, 116, 110, 107, 117, 114, 108, 113, 112, 118, 114, 114, 107, 118, 108, 109, 108, 111, 112, 108, 104, 115, 103, 113, 116, 106, 108, 106, 101, 112, 112, 115, 104, 108, 123, 114, 108, 122, 104, 112, 103, 107, 112, 117, 110, 108, 106, 111, 116, 101, 104, 104, 111, 111, 108, 110, 100, 94, 119, 123, 117, 106, 99, 115, 113, 116, 114, 106, 109, 119, 112, 105, 117, 111, 116, 117, 105, 114, 109, 120, 105, 107, 104, 114, 105, 112, 114, 113, 106, 112, 98, 104, 120, 115, 119, 109, 111, 124, 123, 105, 102, 118, 107, 111, 108, 103, 101, 119, 115, 108, 113, 104, 115, 117, 114, 116, 115, 114, 116, 114, 109, 105, 109, 109, 112, 121, 102, 117, 94, 106, 116, 126, 103, 112, 107, 117, 118, 106, 106, 112, 107, 104, 105, 131, 111, 115, 111, 116, 112, 119, 112, 115, 115, 116, 117, 101, 113, 111, 112, 113, 111, 114, 111, 107, 121, 122, 106, 105, 126, 109, 111, 104, 122, 111, 109, 112, 124, 108, 111, 106, 103, 111, 108, 113, 115, 101, 112, 107, 113, 108, 105, 110, 115, 107, 108, 112, 112, 110, 110, 109, 112, 110, 115, 116, 113, 131, 108, 114, 114, 130, 112, 72, 105, 105, 113, 107, 110, 115, 109, 105, 107, 114, 111, 110, 114, 111, 101, 112, 109, 122, 113, 114, 110, 115, 110, 102, 115, 112, 84, 111, 107, 110, 110, 111, 118, 104, 110, 106, 108, 111, 111, 111, 113, 109, 110, 111, 111, 115, 111, 109, 106, 110, 114, 114, 103, 114, 112, 118, 110, 112, 109, 113, 113, 104, 111, 108, 106, 115, 107, 111, 110, 110, 115, 112, 108, 107, 110, 113, 110, 105, 109, 110, 112, 106, 117, 114, 110, 118, 105, 117, 113, 107, 110, 109, 112, 111, 113, 112, 115, 111, 114, 108, 114, 105, 109, 114, 108, 130, 110, 103, 110, 104, 109, 110, 98, 112, 107, 107, 106, 110, 109, 113, 106, 109, 112, 113, 108, 110, 110, 111, 113, 110, 109, 112, 114, 109, 109, 110, 115, 113, 112, 104, 110, 111, 112, 113, 115, 108, 110, 113, 111, 111, 112, 108, 106, 109, 113, 111, 114, 111, 111, 110, 112, 120, 108, 95, 113, 113, 105, 111, 112, 115, 114, 107, 111, 112, 90, 108, 105, 115, 110, 111, 111, 110, 109, 109, 111, 113, 105, 116, 112, 111, 112, 108, 111, 109, 131, 90, 111, 105, 107, 112, 114, 110, 107, 114, 109, 112, 109, 111, 114, 134, 109, 111, 110, 95, 101, 108, 108, 105, 106, 111, 109, 107, 111, 111, 106, 111, 104, 109, 113, 110, 103, 118, 111, 122, 110, 111, 107, 111, 110, 112, 114, 111, 119, 106, 111, 110, 107, 105, 111, 86, 110, 111, 115, 100, 114, 111, 105, 117, 116, 109, 113, 111, 110, 109, 96, 109, 108, 105, 113, 111, 108, 134, 106, 111, 112, 108, 115, 114, 108, 114, 104, 107, 124, 112, 115, 111, 109, 105, 116, 112, 110, 114, 105, 110, 100, 110, 112, 121, 109, 106, 115, 110, 107, 109, 118, 111, 110, 109, 107, 107, 112, 102, 110, 130, 108, 112, 112, 113, 106, 108, 108, 110, 108, 110, 106, 105, 109, 112, 103, 112, 111, 103, 110, 114, 112, 113, 77, 112, 116, 108, 113, 117, 112, 112, 138, 96, 107, 110, 109, 109, 121, 110, 105, 110, 114, 111, 103, 99, 112, 104, 112, 107, 110, 118, 112, 113, 109, 111, 112, 119, 112, 109, 112, 111, 110, 115, 110, 114, 111, 112, 105, 109, 116, 113, 111, 114, 107, 114, 110, 112, 113, 107, 111, 107, 111, 108, 113, 112, 113, 112, 113, 107, 113, 111, 112, 112, 109, 109, 109, 109, 111, 122, 108, 109, 109, 107, 113, 110, 105, 113, 110, 109, 110, 111, 107, 110, 111, 107, 111, 109, 116, 112, 110, 110, 108, 116, 107, 111, 112, 111, 106, 109, 108, 110, 109, 112, 105, 109, 107, 105, 110, 113, 108, 106, 85, 108, 113, 104, 111, 116, 115, 108, 121, 111, 114, 111, 120, 110, 105, 114, 106, 110, 105, 111, 74, 113, 114, 112, 114, 107, 102, 112, 107, 107, 97, 107, 115, 116, 113, 113, 108, 109, 109, 110, 107, 109, 109, 107, 107, 114, 111, 109, 107, 108, 110, 112, 111, 111, 112, 112, 109, 109, 112, 125, 111, 111, 107, 109, 109, 111, 111, 108, 109, 107, 109, 110, 109, 108, 111, 110, 109, 110, 110, 109, 108, 112, 108, 114, 109, 112, 112, 109, 112, 113, 110, 113, 109, 114, 108, 107, 111, 109, 109, 111, 108, 110, 108, 111, 109, 110, 108, 110, 108, 108, 108, 112, 110, 111, 107, 108, 111, 112, 105, 114, 112, 106, 111, 109, 116, 106, 113, 108, 114, 111, 114, 109, 111, 113, 110, 109, 112, 106, 107, 110, 111, 113, 111, 108, 114, 113, 109, 111, 110, 112, 110, 111, 108, 109, 109, 112, 108, 109, 112, 108, 106, 108, 114, 108, 107, 111, 112, 109, 96, 111, 110, 108, 108, 113, 108, 113, 112, 106, 112, 111, 118, 117, 112, 107, 114, 115, 99, 105, 113, 110, 107, 111, 114, 110, 111, 111, 119, 112, 111, 108, 115, 110, 108, 108, 110, 107, 109, 110, 112, 109, 108, 108, 110, 107, 111, 123, 114, 113, 103, 109, 110, 109, 111, 110, 109, 116, 107, 107, 110, 110, 113, 117, 111, 111, 113, 110, 108, 111, 112, 109, 109, 106, 99, 111, 110, 108, 109, 112, 110, 108, 107, 111, 107, 111, 112, 112, 111, 109, 110, 107, 109, 111, 107, 107, 109, 111, 102, 107, 103, 112, 111, 110, 109, 103, 106, 111, 104, 111, 111, 110, 113, 110, 104, 107, 111, 107, 107, 111, 109, 106, 111, 111, 107, 109, 108, 109, 107, 112, 107, 110, 109, 111, 110, 112, 111, 107, 110, 109, 109, 110, 108, 112, 112, 111, 108, 108, 112, 109, 111, 112, 99, 112, 113, 106, 112, 110, 111, 114, 107, 110, 108, 110, 110, 107, 110, 109, 108, 109, 110, 109, 109, 106, 103, 109, 111, 108, 110, 110, 112, 112, 110, 109, 109, 110, 113, 107, 111, 111, 110, 110, 109, 112, 109, 109, 113, 110, 110, 107, 110, 108, 111, 107, 109, 108, 112, 109, 107, 109, 110, 98, 109, 109, 111, 111, 114, 108, 110, 110, 109, 113, 111, 114, 108, 111, 109, 108, 109, 112, 114, 109, 108, 108, 109, 114, 113, 111, 107, 119, 106, 108, 107, 106, 110, 111, 108, 115, 108, 98, 107, 112, 110, 110, 114, 120, 115, 110, 109, 111, 109, 116, 109, 107, 109, 110, 108, 110, 110, 108, 113, 109, 110, 112, 111, 108, 109, 109, 111, 108, 111, 110, 117, 113, 99, 110, 112, 111, 114, 110, 107, 111, 111, 114, 110, 110, 106, 114, 124, 114, 111, 109, 110, 112, 108, 112, 111, 110, 109, 111, 109, 106, 109, 110, 109, 103, 106, 110, 111, 106, 111, 111, 111, 111, 108, 111, 116, 114, 110, 110, 111, 112, 109, 109, 111, 110, 112, 107, 110, 109, 108, 111, 107, 108, 109, 111, 108, 112, 109, 108, 111, 113, 110, 110, 116, 106, 112, 109, 106, 108, 109, 108, 111, 110, 111, 109, 108, 120, 110, 111, 111, 108, 111, 108, 108, 106, 108, 111, 111, 110, 108, 104, 113, 107, 112, 113, 108, 114, 109, 124, 117, 114, 98, 104, 111, 112, 103, 114, 112, 113, 109, 109, 112, 109, 108, 105, 106, 113, 110, 110, 109, 108, 108, 107, 106, 111, 109, 112, 107, 105, 112, 127, 108, 108, 104, 105, 112, 116, 109, 106, 102, 103, 109, 106, 110, 115, 109, 104, 108, 108, 100, 105, 92, 112, 111, 109, 109, 109, 105, 110, 110, 107, 109, 106, 107, 118, 106, 121, 111, 105, 111, 114, 106, 112, 106, 118, 115, 111, 109, 110, 103, 111, 97, 108, 106, 108, 107, 108, 114, 112, 107, 111, 115, 108, 112, 118, 115, 112, 112, 116, 114, 131, 111, 119, 108, 112, 109, 109, 112, 103, 107, 116, 100, 110, 112, 110, 107, 112, 110, 115, 101, 110, 84, 105, 104, 104, 106, 101, 116, 107, 108, 98, 108, 114, 118, 118, 109, 113, 115, 107, 113, 108, 116, 108, 106, 112, 122, 122, 113, 104, 110, 109, 112, 117, 116, 108, 99, 109, 106, 110, 115, 104, 105, 114, 110, 110, 107, 108, 119, 130, 110, 115, 113, 115, 111, 109, 108, 109, 101, 111, 105, 111, 112, 114, 108, 101, 112, 110, 117, 103, 114, 111, 109, 105, 112, 99, 96, 98, 112, 116, 112, 115, 102, 110, 101, 97, 115, 106, 114, 113, 106, 114, 105, 108, 114, 103, 110, 119, 113, 119, 122, 103, 94, 101, 114, 106, 111, 115, 107, 106, 119, 104, 112, 112, 109, 131, 129, 114, 110, 104, 112, 110, 107, 104, 106, 110, 111, 111, 112, 114, 100, 104, 105, 114, 114, 100, 114, 110, 111, 125, 106, 108, 103, 110, 107, 108, 114, 110, 108, 115, 118, 113, 113, 114, 109, 129, 118, 108, 106, 109, 110, 121, 109, 105, 107, 118, 101, 110, 110, 110, 109, 110, 101, 109, 115, 108, 111, 110, 115, 108, 107, 118, 115, 119, 112, 110, 114, 115, 113, 115, 108, 107, 108, 112, 113, 102, 106, 108, 108, 110, 106, 111, 109, 111, 107, 111, 105, 109, 120, 108, 109, 106, 108, 105, 106, 109, 108, 105, 112, 106, 109, 111, 105, 107, 110, 112, 107, 111, 108, 113, 109, 110, 107, 104, 101, 107, 112, 115, 122, 115, 107, 106, 113, 105, 107, 101, 123, 114, 109, 110, 105, 97, 105, 112, 109, 112, 108, 111, 115, 110, 108, 115, 110, 116, 106, 118, 113, 108, 109, 121, 113, 105, 106, 113, 113, 117, 108, 94, 110, 110, 113, 111, 111, 102, 108, 118, 113, 111, 109, 107, 129, 111, 127, 106, 110, 109, 112, 100, 112, 103, 113, 106, 105, 106, 108, 114, 112, 112, 117, 109, 109, 109, 113, 112, 107, 109, 111, 113, 108, 107, 117, 103, 105, 101, 117, 107, 113, 113, 110, 117, 115, 110, 96, 117, 106, 108, 109, 110, 117, 112, 112, 102, 115, 119, 111, 112, 111, 113, 117, 108, 109, 105, 114, 114, 110, 110, 104, 100, 107, 107, 99, 112, 115, 105, 96, 102, 116, 120, 111, 124, 87, 112, 109, 110, 111, 114, 110, 110, 112, 113, 118, 107, 103, 107, 113, 98, 110, 91, 100, 112, 105, 130, 96, 119, 111, 108, 104, 105, 111, 110, 114, 112, 117, 105, 111, 108, 106, 113, 104, 112, 120, 90, 113, 112, 109, 112, 105, 107, 109, 105, 114, 115, 118, 121, 118, 110, 116, 111, 118, 107, 103, 109, 116, 98, 113, 110, 108, 110, 115, 107, 114, 124, 106, 87, 153, 113, 112, 109, 107, 116, 117, 115, 108, 113, 109, 106, 109, 118, 109, 127, 110, 109, 121, 114, 105, 106, 109, 107, 106, 101, 107, 105, 100, 103, 120, 112, 105, 110, 113, 108, 103, 105, 104, 112, 118, 109, 104, 111, 73, 123, 112, 101, 116, 80, 117, 113, 84, 97, 106, 110, 107, 111, 104, 120, 119, 112, 107, 103, 105, 107, 117, 106, 100, 107, 101, 100, 112, 99, 120, 117, 109, 98, 111, 119, 113, 101, 113, 102, 112, 153, 100, 113, 115, 105, 115, 115, 108, 109, 104, 103, 108, 103, 107, 116, 108, 122, 95, 146, 116, 110, 113, 112, 114, 106, 114, 104, 95, 110, 114, 114, 104, 99, 111, 123, 120, 110, 106, 115, 110, 116, 106, 114, 114, 105, 113, 109, 100, 128, 110, 106, 96, 102, 106, 113, 117, 107, 101, 98, 119, 95, 107, 107, 107, 109, 106, 108, 117, 110, 117, 110, 98, 120, 122, 113, 113, 102, 101, 100, 114, 117, 98, 103, 86, 118, 107, 117, 110, 127, 106, 108, 124, 110, 119, 112, 106, 121, 109, 109, 135, 104, 114, 120, 108, 127, 110, 101, 104, 104, 103, 107, 135, 108, 91, 118, 121, 100, 107, 99, 106, 106, 112, 98, 104, 107, 106, 106, 107, 115, 109, 107, 109, 111, 114, 86, 112, 155, 113, 98, 109, 108, 107, 107, 109, 109, 97, 109, 103, 114, 110, 103, 106, 112, 118, 110, 107, 102, 113, 102, 115, 96, 145, 112, 107, 101, 121, 113, 116, 107, 115, 134, 107, 111, 125, 107, 108, 108, 114, 116, 106, 108, 66, 112, 102, 115, 111, 109, 119, 99, 80, 105, 112, 109, 108, 107, 109, 98, 111, 115, 116, 115, 106, 99, 105, 110, 103, 111, 113, 114, 106, 114, 111, 127, 106, 106, 116, 109, 115, 108, 111, 109, 107, 117, 117, 108, 112, 107, 116, 99, 109, 113, 104, 115, 108, 109, 119, 114, 110, 117, 95, 113, 99, 119, 108, 115, 101, 113, 100, 114, 118, 105, 108, 110, 109, 113, 107, 118, 113, 105, 93, 142, 109, 112, 101, 111, 112, 111, 109, 112, 114, 104, 117, 106, 120, 104, 93, 104, 108, 100, 104, 96, 103, 114, 106, 123, 101, 114, 109, 107, 118, 98, 130, 108, 111, 124, 119, 109, 114, 105, 114, 109, 102, 114, 106, 106, 107, 129, 111, 109, 99, 112, 117, 119, 108, 112, 89, 115, 106, 121, 100, 102, 108, 102, 105, 111, 110, 107, 109, 107, 117, 109, 122, 103, 108, 94, 119, 111, 114, 115, 107, 129, 109, 88, 114, 110, 112, 111, 98, 119, 103, 127, 82, 130, 137, 94, 102, 113, 110, 100, 111, 110, 113, 101, 114, 99, 96, 109, 111, 130, 115, 116, 109, 106, 110, 118, 122, 112, 115, 119, 113, 119, 108, 118, 109, 117, 106, 117, 113, 109, 106, 110, 112, 105, 110, 100, 115, 97, 109, 112, 111, 111, 107, 111, 103, 109, 113, 110, 114, 110, 119, 106, 107, 115, 111, 112, 114, 120, 105, 109, 104, 105, 107, 111, 115, 111, 111, 105, 123, 110, 112, 105, 109, 104, 112, 106, 108, 116, 113, 116, 111, 109, 115, 104, 118, 111, 111, 120, 109, 107, 105, 107, 103, 108, 116, 109, 98, 118, 123, 112, 111, 112, 118, 126, 106, 112, 104, 112, 112, 104, 119, 120, 119, 117, 112, 111, 112, 105, 118, 109, 108, 114, 114, 111, 115, 107, 112, 94, 114, 109, 107, 104, 109, 116, 112, 111, 100, 115, 121, 108, 105, 105, 110, 123, 122, 107, 119, 117, 116, 104, 112, 121, 107, 120, 109, 119, 121, 111, 112, 113, 111, 115, 106, 111, 122, 109, 98, 115, 117, 112, 110, 119, 103, 111, 117, 110, 114, 113, 102, 110, 110, 107, 102, 117, 113, 122, 106, 105, 94, 107, 106, 114, 110, 112, 116, 103, 115, 115, 103, 106, 97, 108, 121, 107, 100, 121, 121, 107, 106, 110, 115, 125, 102, 110, 114, 128, 102, 128, 113, 118, 112, 113, 113, 113, 116, 104, 119, 113, 107, 109, 119, 109, 113, 119, 113, 111, 110, 109, 112, 108, 114, 109, 112, 102, 115, 114, 122, 101, 105, 111, 108, 109, 106, 109, 110, 106, 123, 102, 103, 93, 113, 117, 104, 114, 104, 105, 112, 125, 107, 111, 108, 112, 104, 110, 117, 113, 113, 113, 116, 120, 116, 117, 113, 116, 109, 107, 122, 107, 113, 121, 108, 117, 104, 104, 108, 99, 125, 115, 105, 114, 112, 120, 124, 113, 114, 102, 103, 112, 109, 110, 100, 109, 107, 129, 116, 102, 105, 100, 106, 109, 109, 99, 112, 109, 113, 110, 114, 109, 113, 113, 111, 100, 112, 116, 118, 114, 114, 110, 116, 112, 110, 114, 115, 103, 103, 106, 110, 119, 117, 113, 109, 108, 105, 109, 107, 111, 107, 112, 107, 110, 101, 118, 112, 106, 107, 115, 112, 113, 107, 105, 105, 110, 108, 115, 108, 105, 106, 119, 104, 109, 110, 117, 123, 112, 110, 105, 103, 118, 117, 107, 106, 111, 107, 108, 126, 109, 111, 120, 122, 115, 116, 101, 118, 111, 103, 108, 111, 101, 108, 104, 108, 97, 100, 109, 99, 110, 106, 110, 109, 110, 99, 100, 118, 102, 104, 115, 104, 109, 112, 110, 117, 101, 102, 97, 99, 112, 104, 98, 121, 113, 109, 113, 115, 110, 98, 103, 107, 111, 115, 117, 111, 104, 102, 105, 101, 110, 106, 110, 117, 122, 111, 100, 107, 116, 108, 119, 111, 111, 132, 92, 109, 113, 110, 120, 116, 105, 113, 99, 104, 110, 113, 120, 111, 115, 111, 98, 119, 128, 103, 116, 106, 113, 110, 96, 112, 111, 105, 111, 109, 104, 110, 107, 110, 104, 110, 112, 123, 111, 103, 114, 115, 105, 119, 106, 106, 105, 99, 104, 104, 113, 105, 102, 111, 95, 108, 105, 101, 112, 121, 109, 107, 118, 99, 112, 113, 111, 82, 111, 104, 116, 116, 113, 116, 100, 96, 110, 95, 111, 108, 115, 113, 105, 112, 114, 116, 101, 108, 105, 113, 112, 114, 108, 108, 117, 105, 111, 114, 112, 107, 116, 122, 120, 123, 119, 107, 116, 125, 107, 111, 110, 109, 109, 112, 109, 108, 105, 94, 95, 102, 111, 111, 110, 94, 105, 114, 109, 119, 112, 109, 123, 109, 101, 118, 105, 118, 114, 109, 109, 105, 111, 107, 118, 106, 100, 119, 101, 113, 104, 105, 113, 111, 106, 112, 105, 114, 115, 105, 113, 121, 104, 113, 113, 122, 120, 104, 110, 108, 96, 107, 120, 106, 111, 92, 110, 117, 102, 108, 136, 104, 108, 108, 111, 114, 105, 110, 103, 105, 110, 103, 111, 110, 115, 119, 111, 111, 109, 118, 115, 113, 112, 114, 108, 98, 106, 101, 105, 118, 96, 114, 103, 100, 114, 106, 118, 114, 94, 115, 103, 106, 116, 115, 117, 105, 106, 104, 103, 104, 117, 114, 112, 112, 114, 104, 106, 113, 117, 106, 111, 111, 98, 102, 111, 117, 113, 104, 110, 101, 102, 108, 105, 104, 108, 111, 104, 107, 99, 110, 114, 111, 110, 118, 111, 108, 109, 104, 111, 106, 104, 108, 139, 100, 109, 107, 115, 109, 106, 105, 117, 115, 112, 115, 113, 92, 104, 105, 107, 110, 106, 112, 114, 111, 113, 122, 101, 112, 115, 108, 100, 117, 123, 107, 115, 92, 107, 105, 118, 119, 103, 120, 104, 106, 100, 105, 116, 101, 117, 114, 108, 107, 116, 109, 104, 115, 111, 134, 105, 106, 111, 128, 114, 104, 112, 112, 105, 108, 105, 95, 102, 110, 107, 107, 116, 117, 104, 99, 104, 110, 116, 95, 126, 103, 117, 122, 107, 114, 109, 122, 106, 103, 112, 112, 114, 101, 98, 113, 118, 122, 113, 110, 110, 91, 118, 106, 118, 108, 118, 106, 112, 114, 112, 104, 111, 100, 119, 117, 96, 111, 109, 119, 113, 107, 116, 103, 127, 112, 109, 103, 103, 118, 114, 100, 116, 111, 109, 112, 109, 104, 116, 113, 110, 113, 107, 82, 113, 104, 127, 112, 98, 118, 122, 107, 116, 115, 110, 102, 115, 107, 109, 101, 112, 114, 111, 105, 102, 106, 115, 111, 110, 117, 108, 111, 109, 115, 100, 109, 93, 115, 119, 115, 102, 118, 107, 108, 114, 106, 113, 118, 102, 112, 96, 120, 112, 105, 108, 109, 107, 113, 99, 105, 107, 106, 103, 116, 104, 108, 114, 115, 112, 114, 107, 111, 114, 109, 90, 102, 108, 108, 118, 113, 119, 118, 101, 108, 113, 113, 114, 107, 110, 120, 110, 117, 117, 110, 108, 113, 120, 100, 110, 114, 112, 110, 113, 115, 110, 114, 116, 112, 104, 115, 100, 107, 102, 113, 105, 114, 112, 117, 101, 113, 115, 104, 104, 105, 108, 108, 113, 110, 109, 107, 108, 109, 111, 106, 117, 103, 106, 109, 104, 109, 101, 113, 103, 113, 107, 113, 100, 114, 99, 109, 113, 111, 106, 110, 110, 113, 111, 107, 118, 110, 110, 110, 111, 106, 112, 118, 96, 106, 109, 128, 122, 110, 123, 107, 117, 109, 111, 109, 111, 106, 112, 108, 107, 115, 113, 97, 111, 103, 123, 121, 88, 109, 110, 113, 121, 97, 103, 91, 112, 138, 104, 113, 105, 119, 99, 114, 113, 117, 109, 101, 120, 109, 108, 108, 120, 108, 105, 113, 114, 110, 122, 106, 90, 110, 111, 96, 105, 93, 112, 105, 100, 114, 97, 112, 92, 103, 111, 101, 114, 109, 117, 109, 108, 110, 107, 117, 141, 107, 104, 110, 104, 97, 108, 107, 113, 96, 104, 111, 112, 106, 107, 110, 97, 108, 117, 105, 106, 105, 113, 102, 115, 112, 116, 108, 112, 116, 101, 108, 137, 112, 119, 111, 110, 115, 111, 107, 107, 118, 104, 106, 108, 114, 112, 104, 101, 110, 104, 109, 109, 113, 111, 114, 108, 117, 110, 109, 123, 109, 110, 106, 113, 101, 117, 102, 113, 117, 109, 118, 98, 95, 100, 107, 109, 104, 71, 109, 102, 111, 106, 115, 111, 112, 114, 116, 120, 90, 113, 110, 114, 113, 102, 118, 108, 114, 115, 121, 111, 114, 113, 114, 102, 118, 113, 99, 112, 107, 102, 103, 115, 106, 114, 128, 109, 86, 114, 118, 112, 125, 114, 111, 117, 110, 118, 120, 111, 115, 111, 116, 106, 105, 116, 110, 126, 107, 105, 138, 132, 104, 106, 111, 111, 104, 118, 111, 108, 105, 113, 113, 113, 109, 112, 103, 98, 125, 111, 129, 109, 111, 106, 113, 107, 102, 91, 111, 110, 110, 100, 112, 121, 118, 109, 99, 104, 115, 115, 119, 111, 107, 117, 114, 109, 110, 102, 117, 109, 113, 116, 108, 113, 100, 108, 114, 117, 107, 103, 104, 110, 106, 111, 111, 99, 102, 106, 116, 116, 107, 108, 113, 116, 102, 112, 115, 124, 99, 111, 101, 113, 110, 112, 108, 96, 123, 111, 115, 106, 107, 117, 114, 113, 107, 118, 110, 114, 105, 106, 123, 116, 102, 106, 110, 108, 104, 137, 114, 103, 112, 102, 116, 120, 110, 117, 108, 103, 124, 111, 111, 114, 106, 110, 91, 116, 101, 106, 113, 98, 124, 111, 110, 112, 107, 118, 119, 108, 113, 111, 130, 111, 126, 110, 108, 112, 107, 109, 116, 98, 105, 121, 107, 107, 111, 114, 108, 123, 125, 106, 97, 108, 118, 102, 115, 103, 114, 115, 112, 109, 111, 110, 107, 120, 109, 111, 109, 93, 121, 109, 99, 113, 110, 106, 105, 138, 104, 121, 114, 114, 115, 106, 110, 110, 105, 111, 105, 103, 116, 157, 91, 113, 108, 109, 114, 106, 124, 108, 120, 117, 110, 111, 98, 115, 111, 105, 112, 105, 94, 114, 109, 113, 110, 117, 112, 107, 119, 116, 119, 118, 106, 111, 101, 94, 83, 106, 103, 92, 109, 108, 110, 113, 104, 113, 103, 112, 131, 109, 118, 117, 121, 104, 112, 111, 112, 110, 108, 99, 120, 110, 117, 108, 131, 115, 115, 104, 109, 105, 118, 98, 98, 100, 121, 112, 104, 95, 114, 113, 112, 114, 125, 117, 114, 114, 105, 119, 112, 115, 102, 94, 105, 99, 109, 109, 105, 98, 112, 110, 115, 112, 116, 110, 108, 116, 111, 115, 105, 108, 111, 97, 120, 110, 116, 107, 100, 108, 108, 107, 111, 101, 108, 112, 110, 105, 117, 112, 106, 110, 108, 117, 111, 105, 118, 109, 123, 105, 93, 116, 107, 101, 110, 111, 116, 109, 102, 113, 97, 109, 112, 115, 107, 113, 104, 104, 105, 114, 106, 109, 120, 114, 106, 93, 99, 109, 110, 103, 99, 105, 109, 117, 104, 107, 106, 112, 97, 106, 100, 118, 96, 115, 109, 102, 116, 91, 109, 106, 108, 111, 111, 99, 110, 108, 104, 115, 115, 109, 116, 99, 113, 114, 112, 107, 112, 111, 107, 111, 99, 101, 114, 110, 114, 113, 115, 114, 104, 111, 114, 119, 104, 112, 107, 104, 113, 107, 103, 101, 116, 111, 110, 112, 117, 106, 105, 104, 103, 105, 106, 103, 109, 110, 103, 108, 108, 112, 114, 119, 100, 112, 102, 105, 106, 106, 100, 110, 111, 107, 108, 113, 109, 101, 115, 107, 105, 110, 105, 112, 113, 112, 103, 104, 94, 123, 110, 120, 122, 100, 102, 112, 119, 107, 117, 108, 102, 116, 101, 114, 116, 110, 118, 106, 102, 110, 114, 107, 111, 99, 124, 105, 108, 111, 111, 110, 104, 111, 117, 102, 107, 114, 109, 101, 102, 103, 109, 115, 112, 103, 101, 109, 110, 102, 112, 110, 99, 103, 116, 112, 108, 117, 121, 97, 118, 115, 96, 107, 112, 109, 115, 113, 120, 114, 109, 109, 111, 101, 113, 108, 109, 104, 104, 108, 106, 106, 111, 106, 97, 118, 116, 108, 111, 108, 109, 111, 114, 113, 107, 115, 103, 113, 103, 119, 118, 112, 117, 108, 120, 109, 136, 119, 111, 115, 105, 121, 113, 110, 116, 114, 130, 100, 102, 115, 100, 107, 109, 106, 108, 114, 106, 109, 117, 103, 106, 113, 111, 100, 115, 113, 114, 101, 105, 113, 110, 103, 105, 98, 119, 125, 110, 98, 113, 122, 107, 120, 104, 106, 105, 111, 103, 112, 112, 108, 106, 117, 123, 108, 115, 107, 116, 111, 122, 110, 98, 115, 100, 111, 118, 103, 114, 94, 104, 113, 121, 114, 109, 110, 111, 116, 110, 114, 103, 107, 103, 97, 116, 121, 104, 116, 112, 109, 117, 106, 110, 115, 109, 107, 110, 107, 108, 117, 122, 101, 110, 149, 114, 101, 104, 107, 108, 109, 117, 109, 113, 113, 113, 106, 113, 111, 122, 117, 114, 95, 102, 112, 102, 115, 105, 115, 108, 100, 112, 112, 110, 112, 106, 103, 111, 116, 106, 133, 112, 120, 110, 117, 118, 107, 104, 103, 108, 117, 121, 108, 92, 111, 111, 120, 99, 105, 110, 131, 111, 110, 104, 120, 110, 120, 89, 98, 104, 107, 124, 104, 117, 98, 122, 107, 105, 112, 127, 107, 119, 104, 108, 102, 96, 117, 112, 107, 111, 152, 103, 127, 108, 107, 113, 110, 111, 109, 106, 116, 121, 117, 116, 104, 108, 98, 108, 105, 105, 106, 107, 126, 115, 121, 113, 111, 118, 114, 109, 110, 107, 109, 128, 106, 109, 114, 103, 108, 110, 108, 118, 116, 113, 113, 109, 117, 107, 108, 110, 133, 109, 102, 107, 110, 108, 116, 109, 114, 108, 79, 104, 110, 111, 106, 111, 105, 114, 112, 122, 104, 111, 122, 112, 110, 109, 110, 113, 110, 97, 95, 106, 112, 113, 108, 103, 110, 110, 116, 110, 108, 110, 103, 110, 114, 104, 107, 106, 108, 107, 110, 104, 112, 110, 106, 110, 119, 117, 107, 103, 116, 109, 111, 110, 112, 109, 108, 104, 112, 113, 115, 110, 108, 100, 113, 106, 117, 111, 144, 104, 114, 105, 109, 119, 113, 114, 112, 122, 109, 113, 108, 105, 108, 107, 108, 116, 109, 111, 113, 110, 110, 110, 109, 109, 113, 102, 113, 111, 109, 115, 120, 104, 115, 113, 101, 107, 114, 114, 116, 117, 108, 109, 116, 104, 102, 107, 100, 109, 107, 109, 108, 101, 115, 114, 115, 117, 111, 108, 112, 115, 106, 113, 110, 114, 113, 99, 107, 108, 106, 112, 106, 114, 108, 117, 116, 115, 112, 108, 110, 109, 111, 112, 114, 119, 116, 111, 114, 113, 109, 105, 100, 104, 119, 111, 106, 108, 105, 102, 115, 112, 100, 115, 102, 105, 106, 113, 114, 112, 120, 106, 110, 112, 119, 106, 120, 115, 115, 117, 107, 114, 115, 110, 117, 115, 106, 115, 121, 107, 105, 111, 107, 112, 107, 112, 110, 111, 110, 102, 88, 107, 112, 110, 129, 129, 128, 110, 86, 111, 109, 110, 108, 104, 110, 112, 108, 109, 94, 115, 135, 106, 113, 114, 121, 104, 109, 134, 112, 110, 109, 115, 105, 111, 110, 113, 112, 118, 109, 110, 96, 107, 113, 106, 115, 103, 111, 117, 114, 112, 115, 123, 120, 113, 109, 110, 115, 104, 103, 114, 104, 104, 96, 115, 106, 111, 92, 103, 112, 107, 111, 105, 113, 107, 108, 111, 102, 111, 111, 112, 107, 110, 115, 121, 107, 128, 111, 110, 112, 112, 118, 113, 106, 110, 107, 112, 105, 109, 105, 105, 110, 112, 105, 107, 107, 107, 114, 109, 115, 113, 117, 106, 108, 112, 107, 106, 108, 113, 113, 107, 106, 104, 113, 114, 111, 111, 110, 115, 107, 116, 104, 113, 105, 107, 112, 107, 108, 116, 104, 111, 116, 108, 109, 111, 118, 114, 113, 108, 105, 97, 108, 112, 107, 98, 95, 116, 121, 113, 106, 106, 109, 112, 117, 120, 106, 116, 109, 114, 111, 101, 113, 107, 107, 106, 110, 115, 107, 113, 106, 109, 115, 111, 108, 108, 119, 108, 107, 97, 114, 108, 110, 109, 114, 108, 106, 110, 114, 107, 112, 103, 103, 101, 108, 115, 108, 105, 118, 113, 117, 112, 108, 121, 103, 110, 111, 104, 109, 123, 121, 102, 104, 111, 109, 104, 106, 106, 103, 101, 125, 110, 101, 106, 117, 105, 85, 110, 109, 105, 115, 109, 106, 104, 115, 105, 108, 109, 113, 111, 115, 104, 104, 106, 103, 106, 107, 107, 115, 109, 104, 117, 110, 109, 106, 108, 106, 115, 104, 111, 108, 109, 104, 102, 109, 107, 110, 108, 113, 108, 106, 110, 103, 107, 113, 105, 105, 100, 109, 111, 118, 117, 115, 111, 109, 111, 110, 103, 109, 111, 115, 104, 116, 102, 111, 106, 106, 111, 99, 110, 116, 106, 110, 106, 110, 107, 113, 112, 114, 105, 106, 108, 113, 108, 115, 109, 108, 98, 107, 113, 106, 111, 113, 101, 114, 105, 103, 116, 111, 107, 100, 106, 112, 112, 113, 113, 110, 106, 113, 113, 106, 114, 115, 105, 115, 104, 111, 110, 106, 107, 108, 105, 106, 114, 119, 108, 115, 102, 110, 102, 114, 111, 100, 108, 114, 109, 109, 109, 106, 110, 111, 108, 109, 112, 101, 110, 112, 104, 109, 110, 112, 112, 119, 105, 109, 102, 112, 104, 114, 109, 117, 109, 109, 104, 111, 110, 115, 113, 112, 110, 109, 106, 109, 114, 109, 110, 114, 112, 110, 110, 112, 103, 114, 109, 113, 109, 104, 113, 101, 110, 109, 107, 107, 105, 115, 114, 108, 106, 105, 103, 105, 104, 113, 111, 117, 109, 111, 100, 107, 122, 112, 109, 108, 118, 108, 108, 108, 110, 114, 112, 110, 108, 110, 113, 103, 125, 103, 112, 112, 104, 108, 109, 112, 116, 114, 108, 107, 104, 101, 104, 107, 109, 111, 103, 110, 105, 106, 104, 112, 101, 107, 113, 113, 113, 116, 111, 107, 108, 112, 110, 109, 113, 112, 110, 115, 104, 111, 112, 105, 106, 107, 107, 109, 114, 112, 110, 109, 109, 110, 118, 105, 103, 113, 106, 105, 109, 106, 111, 96, 110, 102, 109, 112, 108, 110, 113, 106, 112, 111, 99, 108, 105, 100, 113, 111, 109, 123, 111, 110, 113, 107, 110, 111, 104, 106, 105, 106, 106, 115, 105, 110, 112, 110, 108, 107, 114, 108, 117, 116, 105, 107, 117, 120, 115, 110, 109, 99, 105, 98, 114, 103, 108, 110, 108, 108, 111, 104, 111, 105, 111, 114, 112, 112, 105, 111, 112, 109, 106, 110, 110, 111, 107, 110, 99, 102, 109, 118, 112, 112, 110, 106, 109, 108, 110, 108, 101, 106, 109, 124, 119, 111, 109, 113, 106, 108, 113, 114, 110, 113, 131, 106, 92, 95, 107, 114, 106, 98, 114, 112, 111, 109, 101, 102, 103, 103, 114, 106, 114, 112, 108, 113, 108, 105, 112, 118, 109, 107, 114, 108, 112, 109, 116, 109, 110, 113, 109, 112, 104, 114, 123, 115, 111, 118, 114, 110, 114, 112, 116, 110, 107, 105, 116, 112, 113, 112, 110, 110, 161, 120, 113, 99, 110, 114, 109, 103, 106, 107, 104, 107, 109, 109, 113, 123, 120, 101, 101, 112, 112, 106, 111, 115, 117, 114, 112, 113, 109, 112, 105, 109, 111, 112, 99, 108, 118, 117, 116, 106, 111, 106, 116, 98, 109, 111, 115, 113, 108, 96, 116, 105, 110, 102, 114, 111, 109, 99, 106, 105, 109, 118, 116, 109, 110, 119, 95, 89, 111, 111, 106, 121, 112, 108, 114, 111, 113, 110, 112, 109, 106, 110, 108, 111, 111, 106, 109, 110, 111, 112, 112, 139, 113, 109, 110, 111, 111, 103, 124, 111, 104, 104, 121, 112, 95, 121, 112, 118, 112, 101, 109, 103, 93, 114, 128, 111, 106, 117, 117, 104, 95, 113, 109, 106, 99, 123, 104, 111, 103, 121, 105, 130, 105, 107, 111, 117, 107, 104, 111, 103, 96, 111, 119, 107, 107, 109, 104, 116, 109, 119, 129, 122, 107, 89, 110, 111, 108, 105, 107, 114, 103, 114, 113, 99, 107, 105, 111, 113, 105, 117, 117, 109, 98, 113, 101, 121, 102, 121, 116, 96, 106, 132, 99, 111, 108, 104, 126, 108, 101, 104, 99, 106, 115, 116, 109, 111, 107, 116, 112, 121, 111, 121, 116, 106, 113, 107, 107, 107, 105, 104, 112, 113, 112, 116, 104, 108, 124, 109, 99, 107, 109, 113, 114, 114, 111, 104, 108, 117, 112, 104, 119, 125, 121, 110, 121, 114, 107, 106, 109, 116, 107, 111, 108, 107, 101, 115, 114, 110, 95, 106, 111, 118, 109, 108, 106, 112, 108, 111, 119, 106, 106, 108, 115, 112, 108, 108, 105, 119, 105, 114, 109, 113, 111, 114, 110, 134, 107, 105, 108, 113, 103, 105, 115, 107, 129, 103, 105, 106, 118, 106, 107, 105, 131, 113, 105, 114, 108, 125, 112, 119, 128, 103, 101, 106, 105, 107, 107, 109, 118, 108, 105, 106, 123, 108, 97, 107, 93, 112, 114, 114, 103, 114, 110, 108, 113, 110, 111, 102, 104, 108, 111, 110, 105, 116, 124, 106, 122, 110, 105, 105, 108, 121, 106, 105, 85, 109, 103, 119, 105, 103, 107, 104, 106, 113, 109, 100, 112, 114, 117, 92, 106, 104, 112, 112, 116, 107, 99, 107, 106, 112, 116, 109, 106, 111, 103, 113, 104, 103, 110, 111, 118, 119, 100, 109, 112, 109, 116, 113, 109, 112, 112, 88, 113, 107, 105, 114, 111, 111, 108, 113, 101, 103, 107, 117, 109, 113, 116, 117, 94, 125, 110, 111, 110, 112, 114, 110, 111, 102, 100, 112, 110, 114, 104, 108, 112, 103, 115, 110, 101, 109, 112, 114, 113, 111, 116, 105, 107, 104, 109, 113, 132, 100, 116, 102, 105, 113, 109, 112, 103, 117, 109, 109, 111, 109, 123, 105, 113, 99, 102, 105, 106, 110, 117, 117, 112, 101, 120, 105, 113, 105, 101, 100, 111, 110, 116, 112, 105, 112, 117, 104, 116, 108, 106, 108, 111, 103, 100, 113, 106, 124, 107, 104, 104, 117, 106, 100, 116, 110, 109, 119, 120, 106, 118, 105, 113, 117, 98, 114, 114, 106, 114, 107, 105, 117, 117, 108, 121, 107, 104, 117, 103, 110, 113, 106, 109, 101, 104, 100, 109, 116, 116, 109, 109, 108, 111, 102, 112, 103, 113, 115, 112, 112, 105, 109, 114, 117, 119, 104, 108, 123, 109, 134, 106, 101, 106, 104, 129, 113, 106, 117, 117, 102, 110, 111, 100, 107, 108, 114, 104, 106, 113, 100, 112, 131, 112, 111, 104, 116, 104, 100, 101, 109, 113, 99, 107, 114, 111, 119, 114, 104, 108, 105, 108, 99, 107, 116, 102, 107, 115, 117, 107, 105, 126, 104, 114, 98, 114, 110, 106, 109, 116, 110, 110, 103, 98, 110, 113, 106, 100, 109, 119, 102, 115, 98, 99, 102, 103, 97, 99, 111, 118, 99, 112, 111, 104, 105, 120, 107, 108, 105, 116, 110, 108, 107, 124, 106, 98, 109, 114, 100, 104, 106, 108, 106, 104, 109, 109, 120, 111, 104, 101, 112, 111, 108, 113, 111, 109, 101, 114, 103, 115, 123, 105, 105, 105, 105, 99, 107, 99, 119, 102, 112, 117, 111, 104, 114, 115, 110, 102, 99, 101, 105, 117, 106, 103, 109, 120, 100, 105, 116, 115, 116, 109, 104, 103, 106, 106, 107, 108, 109, 108, 114, 108, 106, 106, 105, 102, 113, 109, 108, 113, 114, 100, 116, 110, 106, 113, 110, 110, 102, 98, 109, 107, 106, 103, 102, 107, 111, 107, 113, 118, 109, 107, 111, 125, 111, 103, 103, 103, 110, 105, 100, 117, 108, 118, 110, 110, 108, 101, 121, 106, 106, 103, 115, 105, 111, 113, 110, 111, 117, 99, 108, 116, 98, 117, 94, 106, 108, 109, 114, 109, 112, 109, 109, 114, 107, 110, 117, 118, 100, 114, 115, 103, 109, 105, 113, 108, 103, 110, 109, 109, 113, 106, 116, 104, 103, 108, 109, 103, 116, 109, 101, 106, 116, 101, 118, 119, 108, 126, 104, 107, 117, 106, 109, 110, 105, 107, 108, 110, 110, 108, 122, 107, 110, 107, 103, 114, 105, 108, 108, 106, 104, 105, 110, 112, 102, 111, 120, 107, 115, 120, 121, 110, 108, 99, 112, 104, 114, 112, 113, 104, 105, 110, 102, 108, 111, 105, 116, 107, 120, 105, 116, 111, 104, 106, 108, 109, 108, 110, 99, 104, 108, 100, 109, 105, 104, 107, 112, 115, 105, 109, 114, 106, 113, 109, 123, 104, 109, 108, 113, 107, 108, 112, 106, 109, 112, 104, 105, 103, 119, 106, 109, 111, 106, 99, 115, 113, 116, 109, 113, 107, 100, 100, 108, 104, 98, 103, 105, 108, 107, 100, 113, 111, 107, 110, 109, 106, 104, 106, 101, 117, 111, 109, 107, 109, 120, 108, 107, 116, 112, 106, 105, 109, 115, 108, 107, 113, 95, 113, 108, 124, 108, 107, 104, 116, 107, 111, 108, 109, 121, 101, 111, 102, 102, 103, 110, 102, 109, 109, 117, 103, 101, 109, 106, 115, 108, 102, 106, 99, 113, 101, 105, 108, 111, 102, 108, 117, 111, 117, 107, 111, 111, 106, 108, 110, 119, 109, 111, 111, 108, 113, 115, 114, 113, 110, 105, 98, 96, 121, 106, 115, 109, 110, 101, 115, 113, 112, 122, 106, 104, 111, 116, 105, 107, 111, 108, 108, 103, 112, 114, 119, 102, 107, 109, 110, 112, 110, 107, 105, 116, 108, 111, 108, 105, 106, 104, 105, 106, 117, 105, 104, 115, 110, 113, 102, 109, 107, 111, 109, 108, 119, 109, 115, 108, 116, 107, 101, 110, 122, 111, 111, 111, 107, 110, 110, 113, 94, 108, 115, 109, 111, 115, 109, 112, 107, 106, 107, 106, 100, 108, 114, 108, 105, 111, 108, 108, 106, 105, 110, 106, 106, 111, 105, 101, 108, 113, 124, 108, 109, 107, 114, 115, 99, 105, 116, 102, 91, 114, 144, 100, 107, 108, 116, 109, 104, 104, 108, 107, 110, 102, 107, 107, 109, 112, 109, 110, 106, 118, 108, 108, 109, 109, 103, 116, 107, 107, 106, 111, 103, 141, 113, 105, 103, 109, 102, 114, 112, 110, 110, 103, 107, 104, 106, 108, 110, 101, 113, 121, 120, 97, 140, 99, 110, 100, 106, 116, 114, 106, 103, 111, 106, 105, 103, 112, 111, 104, 114, 103, 118, 115, 131, 110, 111, 122, 117, 109, 116, 109, 115, 119, 107, 110, 102, 109, 101, 114, 107, 107, 101, 113, 102, 119, 114, 110, 123, 107, 112, 112, 109, 102, 112, 110, 123, 126, 105, 91, 107, 109, 112, 123, 101, 116, 110, 115, 104, 110, 110, 102, 112, 106, 96, 114, 109, 104, 111, 101, 109, 101, 108, 111, 105, 105, 116, 108, 104, 117, 126, 101, 92, 98, 113, 112, 102, 106, 101, 114, 112, 100, 114, 106, 111, 95, 107, 113, 123, 103, 115, 109, 108, 107, 114, 113, 96, 106, 110, 122, 108, 119, 112, 104, 110, 108, 114, 111, 110, 111, 100, 114, 104, 107, 111, 113, 115, 102, 101, 103, 116, 105, 108, 113, 106, 108, 109, 100, 107, 121, 113, 104, 108, 107, 112, 116, 101, 110, 110, 97, 102, 105, 108, 111, 108, 106, 116, 110, 119, 104, 96, 113, 111, 106, 95, 110, 107, 104, 105, 98, 103, 107, 116, 100, 111, 109, 108, 115, 90, 105, 114, 135, 104, 115, 114, 101, 102, 109, 109, 113, 122, 112, 94, 110, 98, 121, 106, 96, 103, 110, 124, 107, 112, 113, 105, 110, 111, 106, 114, 116, 114, 109, 121, 112, 93, 121, 102, 122, 116, 111, 100, 113, 100, 113, 108, 109, 96, 118, 104, 115, 113, 115, 114, 105, 109, 112, 100, 88, 112, 111, 101, 110, 103, 121, 126, 103, 106, 114, 120, 118, 111, 110, 107, 118, 104, 117, 106, 81, 108, 119, 77, 116, 113, 112, 108, 99, 113, 104, 113, 103, 120, 107, 106, 113, 105, 116, 105, 115, 107, 107, 101, 108, 98, 108, 114, 110, 108, 112, 111, 109, 109, 111, 107, 105, 114, 107, 104, 107, 102, 111, 106, 105, 107, 125, 121, 107, 109, 120, 94, 108, 115, 111, 113, 103, 111, 109, 114, 112, 105, 113, 111, 106, 107, 114, 116, 102, 95, 109, 115, 113, 108, 113, 112, 113, 116, 110, 109, 115, 70, 111, 102, 106, 109, 108, 108, 107, 113, 103, 101, 115, 113, 113, 116, 110, 117, 101, 104, 103, 113, 112, 104, 95, 100, 107, 103, 114, 104, 111, 113, 114, 108, 106, 116, 108, 125, 120, 122, 108, 112, 140, 118, 99, 106, 114, 112, 101, 98, 108, 115, 121, 107, 106, 103, 112, 110, 101, 108, 106, 113, 108, 105, 110, 107, 106, 96, 103, 111, 111, 108, 112, 99, 114, 118, 121, 109, 112, 98, 112, 111, 101, 118, 110, 116, 114, 110, 109, 110, 106, 109, 102, 94, 105, 115, 91, 101, 116, 111, 110, 106, 102, 103, 109, 113, 121, 106, 105, 109, 109, 102, 110, 121, 116, 108, 113, 112, 119, 116, 114, 103, 108, 80, 112, 108, 108, 111, 108, 115, 103, 95, 102, 101, 108, 97, 110, 112, 111, 106, 113, 96, 101, 105, 113, 116, 109, 110, 121, 110, 110, 108, 118, 113, 104, 111, 107, 108, 98, 109, 116, 109, 104, 142, 111, 98, 103, 111, 116, 113, 110, 103, 106, 107, 112, 117, 106, 116, 101, 115, 102, 107, 110, 108, 114, 112, 117, 102, 103, 116, 117, 114, 116, 106, 108, 104, 111, 109, 108, 113, 116, 114, 139, 108, 107, 118, 110, 104, 103, 106, 107, 98, 107, 109, 110, 102, 95, 116, 106, 142, 110, 101, 104, 118, 104, 107, 107, 120, 109, 115, 111, 111, 108, 115, 106, 106, 109, 112, 100, 111, 109, 110, 107, 104, 108, 106, 109, 119, 109, 107, 109, 118, 106, 106, 111, 111, 119, 114, 106, 106, 111, 103, 105, 104, 110, 109, 107, 114, 108, 88, 113, 113, 111, 106, 110, 103, 113, 108, 109, 96, 103, 108, 122, 112, 110, 115, 117, 114, 110, 110, 113, 103, 104, 111, 104, 114, 106, 112, 110, 104, 117, 111, 111, 105, 103, 108, 113, 112, 113, 108, 129, 108, 111, 111, 121, 116, 106, 107, 109, 95, 111, 109, 129, 112, 112, 113, 116, 101, 105, 119, 127, 110, 117, 107, 118, 104, 116, 107, 118, 110, 97, 113, 119, 106, 110, 113, 115, 111, 101, 110, 98, 100, 124, 115, 107, 113, 117, 117, 115, 118, 99, 106, 109, 115, 109, 114, 102, 108, 109, 110, 119, 112, 111, 83, 117, 131, 111, 117, 111, 149, 111, 115, 108, 113, 104, 111, 107, 109, 104, 106, 109, 107, 111, 105, 111, 111, 111, 104, 105, 107, 108, 112, 105, 105, 106, 117, 108, 115, 117, 110, 108, 114, 115, 118, 109, 119, 105, 114, 93, 123, 114, 102, 110, 104, 110, 112, 113, 107, 124, 108, 102, 107, 115, 103, 110, 103, 113, 116, 107, 106, 115, 106, 118, 103, 111, 110, 109, 122, 116, 129, 114, 116, 107, 116, 103, 101, 108, 117, 116, 105, 103, 106, 111, 111, 108, 108, 110, 109, 101, 116, 104, 101, 97, 111, 120, 111, 115, 108, 114, 112, 113, 105, 110, 117, 105, 113, 113, 113, 109, 118, 114, 111, 106, 112, 110, 113, 114, 106, 107, 135, 111, 120, 109, 103, 111, 106, 100, 103, 124, 110, 113, 102, 118, 109, 115, 121, 108, 107, 111, 106, 107, 112, 110, 113, 113, 121, 115, 107, 100, 113, 115, 94, 114, 114, 113, 109, 113, 109, 107, 104, 111, 122, 109, 103, 111, 121, 94, 110, 107, 89, 105, 114, 122, 113, 111, 106, 111, 106, 112, 112, 117, 111, 118, 119, 109, 117, 107, 96, 105, 105, 110, 110, 110, 126, 95, 104, 106, 104, 116, 111, 109, 107, 112, 114, 89, 116, 111, 104, 122, 120, 87, 107, 109, 113, 111, 121, 110, 110, 98, 114, 109, 114, 113, 111, 116, 110, 108, 110, 113, 105, 113, 111, 110, 106, 107, 117, 109, 104, 103, 112, 113, 118, 112, 117, 115, 114, 115, 111, 99, 103, 106, 125, 114, 110, 113, 109, 113, 116, 108, 111, 116, 107, 112, 123, 124, 109, 111, 109, 113, 107, 106, 111, 106, 101, 102, 101, 107, 109, 110, 113, 115, 108, 118, 112, 108, 103, 118, 101, 111, 110, 116, 115, 105, 115, 97, 109, 104, 113, 115, 113, 115, 108, 113, 106, 105, 110, 98, 111, 113, 104, 115, 103, 111, 122, 126, 113, 109, 114, 109, 123, 112, 114, 112, 111, 98, 107, 119, 105, 126, 105, 117, 111, 115, 94, 108, 113, 106, 104, 113, 107, 113, 108, 99, 107, 104, 105, 110, 101, 107, 108, 102, 108, 98, 103, 105, 107, 109, 108, 106, 112, 108, 110, 120, 104, 105, 106, 120, 106, 106, 106, 119, 120, 110, 96, 130, 120, 107, 110, 113, 107, 120, 120, 106, 113, 95, 108, 123, 102, 95, 124, 115, 107, 109, 111, 113, 111, 101, 104, 108, 104, 119, 109, 118, 102, 121, 106, 110, 110, 116, 111, 111, 107, 111, 122, 117, 114, 89, 105, 108, 104, 108, 114, 104, 110, 113, 105, 111, 106, 105, 112, 104, 112, 109, 101, 120, 115, 106, 101, 127, 104, 109, 108, 106, 102, 119, 120, 120, 113, 112, 109, 106, 106, 117, 118, 106, 113, 121, 105, 109, 118, 105, 114, 109, 116, 109, 110, 112, 103, 109, 109, 121, 120, 112, 114, 111, 112, 112, 113, 106, 109, 99, 109, 110, 114, 96, 119, 117, 111, 101, 105, 117, 113, 116, 110, 110, 117, 105, 106, 116, 111, 102, 119, 98, 99, 110, 112, 104, 107, 104, 106, 112, 114, 98, 99, 118, 104, 109, 113, 116, 99, 107, 118, 105, 120, 106, 101, 112, 110, 106, 112, 105, 113, 103, 111, 107, 102, 103, 102, 108, 112, 112, 110, 112, 106, 133, 120, 106, 111, 113, 106, 113, 116, 117, 109, 109, 112, 113, 105, 113, 109, 109, 113, 110, 105, 105, 107, 119, 119, 115, 113, 95, 107, 127, 107, 121, 116, 112, 109, 116, 122, 103, 118, 108, 110, 105, 116, 106, 108, 113, 112, 110, 112, 115, 107, 116, 116, 115, 113, 113, 107, 113, 110, 114, 112, 119, 110, 107, 102, 117, 110, 107, 106, 110, 101, 114, 116, 106, 111, 105, 105, 109, 106, 110, 117, 111, 97, 115, 91, 109, 108, 106, 111, 108, 114, 117, 106, 111, 111, 108, 102, 112, 98, 103, 110, 98, 125, 97, 106, 101, 110, 107, 109, 101, 100, 103, 110, 119, 108, 115, 106, 107, 98, 107, 107, 110, 104, 105, 122, 115, 96, 108, 107, 102, 109, 117, 105, 111, 103, 114, 108, 106, 107, 110, 102, 102, 108, 110, 115, 115, 117, 136, 109, 120, 104, 108, 116, 108, 101, 113, 113, 104, 102, 105, 110, 103, 114, 108, 112, 111, 111, 108, 96, 114, 114, 112, 106, 115, 116, 112, 109, 112, 110, 116, 119, 108, 115, 115, 108, 103, 115, 110, 114, 118, 114, 106, 119, 115, 107, 106, 100, 107, 104, 101, 106, 118, 113, 101, 109, 106, 109, 110, 113, 107, 93, 110, 107, 103, 119, 115, 106, 105, 110, 106, 101, 114, 117, 100, 113, 117, 115, 119, 118, 113, 113, 108, 111, 108, 105, 108, 105, 107, 114, 98, 109, 121, 105, 111, 106, 103, 108, 107, 112, 108, 105, 91, 113, 122, 111, 101, 115, 112, 112, 113, 115, 107, 107, 117, 104, 107, 107, 115, 109, 112, 117, 111, 122, 112, 98, 105, 123, 104, 101, 111, 92, 110, 105, 103, 118, 113, 110, 113, 112, 106, 114, 108, 115, 115, 108, 114, 118, 115, 111, 112, 112, 107, 115, 113, 111, 111, 104, 110, 113, 108, 112, 102, 180, 108, 114, 104, 106, 116, 105, 110, 102, 114, 109, 101, 106, 100, 100, 108, 114, 105, 111, 101, 109, 112, 113, 116, 97, 113, 112, 109, 110, 113, 109, 107, 109, 115, 121, 109, 110, 111, 133, 112, 111, 104, 105, 109, 107, 108, 109, 109, 114, 108, 98, 93, 107, 116, 107, 109, 111, 109, 115, 110, 105, 114, 118, 117, 39, 70, 118, 119, 109, 106, 119, 113, 114, 111, 147, 109, 111, 108, 112, 102, 108, 109, 108, 107, 117, 115, 114, 109, 119, 110, 108, 114, 113, 106, 105, 114, 108, 92, 105, 120, 112, 113, 113, 120, 109, 112, 104, 105, 106, 110, 104, 108, 115, 114, 110, 110, 110, 113, 109, 115, 105, 107, 107, 114, 100, 109, 113, 106, 118, 105, 111, 112, 113, 106, 115, 123, 108, 118, 109, 101, 106, 122, 108, 109, 112, 104, 116, 117, 109, 117, 125, 114, 114, 113, 108, 127, 107, 105, 106, 114, 109, 112, 114, 117, 112, 115, 84, 103, 110, 148, 109, 108, 102, 112, 114, 110, 106, 113, 108, 108, 110, 115, 124, 105, 104, 121, 99, 112, 107, 108, 104, 116, 110, 112, 108, 119, 117, 104, 112, 115, 110, 107, 110, 108, 107, 98, 110, 112, 106, 105, 92, 111, 97, 110, 108, 114, 100, 103, 105, 109, 120, 111, 119, 106, 111, 107, 112, 118, 106, 107, 110, 105, 119, 97, 100, 109, 103, 115, 111, 107, 109, 106, 100, 111, 113, 77, 108, 132, 118, 117, 118, 110, 111, 109, 105, 111, 115, 104, 105, 99, 108, 112, 111, 109, 110, 105, 119, 110, 104, 113, 132, 104, 108, 109, 103, 109, 108, 113, 107, 110, 103, 92, 108, 112, 111, 112, 109, 106, 117, 106, 121, 109, 98, 118, 117, 106, 119, 107, 109, 110, 109, 99, 120, 107, 104, 105, 113, 120, 132, 114, 105, 111, 110, 110, 87, 110, 110, 108, 109, 110, 110, 116, 105, 108, 114, 107, 114, 111, 110, 112, 99, 95, 107, 110, 111, 119, 109, 102, 113, 108, 109, 116, 106, 115, 116, 105, 119, 111, 112, 99, 110, 107, 107, 111, 113, 110, 112, 118, 104, 111, 109, 112, 107, 115, 106, 128, 116, 115, 106, 103, 108, 114, 110, 104, 107, 122, 95, 112, 111, 108, 118, 85, 110, 111, 109, 108, 110, 113, 105, 112, 110, 108, 111, 107, 111, 110, 109, 111, 114, 99, 109, 104, 104, 105, 112, 120, 116, 111, 110, 105, 116, 102, 112, 119, 101, 114, 105, 101, 99, 105, 101, 111, 109, 110, 111, 113, 116, 112, 105, 117, 104, 109, 111, 104, 103, 113, 109, 108, 111, 109, 111, 103, 116, 114, 111, 106, 111, 110, 97, 109, 112, 111, 109, 103, 108, 112, 112, 107, 104, 114, 115, 106, 105, 108, 112, 116, 109, 113, 105, 112, 112, 112, 107, 101, 107, 106, 110, 116, 111, 110, 113, 106, 103, 99, 111, 119, 100, 105, 114, 111, 105, 108, 107, 101, 111, 102, 105, 103, 117, 107, 118, 107, 127, 110, 114, 100, 114, 107, 104, 110, 106, 110, 109, 117, 123, 120, 116, 109, 107, 100, 115, 110, 101, 111, 110, 107, 119, 113, 110, 120, 125, 112, 110, 107, 110, 108, 115, 96, 118, 111, 114, 104, 116, 97, 110, 112, 110, 118, 111, 112, 110, 109, 104, 106, 105, 101, 110, 132, 105, 108, 113, 109, 103, 102, 113, 103, 109, 107, 122, 113, 110, 123, 112, 102, 110, 110, 113, 114, 105, 111, 112, 105, 112, 108, 111, 121, 115, 106, 115, 115, 107, 111, 111, 107, 108, 109, 109, 115, 105, 101, 106, 114, 111, 127, 107, 112, 102, 106, 109, 110, 109, 106, 109, 100, 103, 113, 116, 111, 112, 125, 110, 114, 112, 112, 106, 106, 115, 110, 110, 103, 111, 118, 105, 105, 108, 113, 111, 110, 102, 110, 101, 113, 116, 111, 110, 107, 105, 110, 101, 110, 104, 106, 104, 109, 109, 114, 114, 108, 114, 110, 107, 114, 109, 109, 110, 114, 106, 109, 107, 119, 120, 110, 114, 109, 112, 119, 113, 102, 115, 108, 114, 113, 118, 100, 115, 110, 120, 110, 98, 106, 102, 118, 97, 117, 111, 106, 114, 106, 113, 103, 104, 119, 101, 105, 109, 101, 101, 102, 112, 112, 112, 114, 105, 110, 108, 104, 113, 112, 110, 109, 102, 118, 105, 110, 115, 119, 108, 115, 108, 110, 115, 110, 106, 111, 102, 98, 108, 107, 117, 96, 109, 115, 113, 109, 94, 106, 117, 106, 99, 110, 108, 111, 115, 105, 107, 110, 115, 101, 112, 105, 106, 116, 119, 107, 112, 108, 106, 110, 111, 112, 111, 111, 104, 115, 119, 104, 111, 112, 107, 98, 102, 105, 111, 107, 98, 113, 110, 104, 113, 116, 115, 106, 119, 107, 112, 109, 130, 108, 113, 114, 108, 104, 108, 104, 110, 112, 114, 105, 116, 114, 112, 115, 122, 104, 116, 109, 110, 113, 119, 113, 105, 114, 112, 118, 107, 130, 114, 116, 108, 105, 103, 121, 106, 121, 102, 113, 98, 104, 120, 110, 111, 119, 116, 116, 103, 97, 103, 110, 116, 100, 115, 113, 109, 108, 110, 129, 102, 119, 111, 94, 105, 115, 106, 111, 112, 95, 115, 116, 111, 111, 111, 104, 108, 108, 115, 119, 108, 105, 114, 108, 112, 113, 113, 116, 110, 112, 112, 116, 107, 105, 109, 108, 105, 112, 116, 106, 114, 106, 110, 116, 104, 115, 104, 108, 115, 101, 106, 128, 106, 99, 107, 118, 110, 97, 115, 105, 105, 109, 112, 112, 109, 117, 108, 101, 104, 108, 102, 101, 107, 107, 101, 121, 110, 123, 108, 111, 122, 116, 114, 106, 107, 107, 106, 111, 106, 112, 109, 125, 102, 108, 122, 102, 112, 110, 105, 113, 107, 103, 105, 101, 111, 112, 113, 110, 112, 111, 92, 108, 115, 118, 101, 125, 107, 112, 109, 110, 120, 120, 119, 109, 106, 99, 120, 113, 105, 108, 106, 117, 119, 112, 111, 114, 110, 120, 109, 112, 107, 112, 106, 101, 110, 113, 101, 121, 110, 90, 112, 109, 107, 104, 101, 101, 108, 107, 113, 100, 120, 117, 105, 106, 99, 110, 107, 111, 107, 114, 113, 113, 108, 112, 111, 116, 108, 108, 107, 112, 108, 125, 111, 108, 120, 113, 110, 111, 116, 105, 119, 110, 114, 119, 116, 105, 110, 109, 105, 115, 108, 100, 116, 108, 110, 112, 113, 110, 107, 109, 116, 107, 97, 105, 110, 114, 109, 113, 111, 107, 129, 127, 120, 113, 111, 119, 105, 108, 109, 111, 118, 120, 100, 104, 114, 107, 106, 92, 101, 107, 112, 110, 111, 110, 117, 110, 112, 113, 109, 108, 114, 105, 113, 110, 104, 121, 99, 104, 109, 115, 124, 109, 116, 110, 117, 101, 106, 122, 111, 97, 105, 114, 108, 113, 111, 108, 109, 114, 120, 106, 120, 114, 107, 111, 110, 115, 92, 110, 109, 103, 108, 114, 121, 113, 108, 108, 108, 114, 110, 116, 108, 108, 102, 115, 110, 111, 122, 105, 116, 113, 109, 116, 118, 125, 103, 105, 114, 133, 111, 113, 109, 117, 121, 111, 119, 113, 104, 117, 118, 109, 114, 102, 108, 114, 109, 105, 112, 105, 107, 116, 113, 117, 107, 119, 111, 114, 118, 113, 113, 101, 110, 115, 101, 113, 107, 105, 119, 104, 113, 110, 110, 108, 114, 107, 108, 113, 109, 127, 112, 109, 118, 114, 116, 104, 106, 117, 99, 108, 111, 117, 109, 111, 108, 117, 111, 114, 106, 103, 105, 104, 110, 111, 101, 110, 103, 106, 107, 107, 109, 110, 119, 103, 112, 111, 114, 125, 99, 105, 111, 111, 107, 115, 109, 112, 109, 105, 107, 113, 110, 113, 104, 114, 100, 110, 137, 105, 103, 105, 102, 104, 115, 105, 109, 108, 107, 109, 100, 114, 110, 116, 110, 108, 118, 109, 106, 116, 110, 110, 118, 110, 102, 113, 112, 113, 112, 114, 111, 119, 113, 109, 116, 113, 122, 110, 111, 112, 112, 99, 115, 118, 121, 113, 113, 104, 119, 106, 112, 108, 103, 109, 110, 116, 112, 109, 113, 104, 114, 115, 120, 112, 123, 114, 106, 107, 108, 104, 132, 121, 119, 115, 112, 114, 104, 129, 112, 113, 113, 109, 118, 106, 112, 101, 117, 112, 108, 114, 102, 108, 116, 114, 121, 143, 110, 102, 114, 114, 123, 108, 107, 113, 115, 104, 104, 107, 103, 105, 115, 110, 107, 96, 101, 109, 100, 107, 114, 117, 100, 111, 109, 98, 110, 102, 113, 72, 115, 114, 111, 116, 101, 96, 114, 111, 94, 111, 99, 114, 107, 105, 111, 106, 110, 114, 108, 105, 107, 106, 112, 103, 109, 106, 110, 102, 108, 110, 109, 112, 110, 108, 113, 120, 109, 98, 107, 112, 113, 92, 114, 137, 97, 110, 116, 105, 109, 113, 112, 107, 110, 110, 110, 105, 114, 109, 108, 112, 111, 105, 101, 113, 107, 113, 114, 113, 109, 108, 120, 110, 111, 109, 112, 107, 93, 112, 108, 111, 116, 107, 114, 110, 114, 114, 107, 110, 104, 103, 112, 111, 108, 110, 113, 111, 121, 110, 111, 110, 110, 113, 113, 113, 111, 108, 112, 112, 107, 106, 107, 111, 109, 110, 113, 107, 106, 112, 108, 112, 110, 111, 110, 99, 111, 104, 111, 118, 110, 110, 103, 100, 112, 108, 115, 109, 109, 108, 104, 106, 114, 111, 110, 110, 110, 113, 112, 115, 113, 98, 108, 110, 109, 107, 108, 112, 147, 118, 112, 108, 113, 110, 111, 105, 115, 110, 111, 108, 106, 109, 115, 111, 111, 103, 114, 113, 115, 101, 105, 108, 112, 113, 113, 110, 110, 112, 106, 110, 114, 106, 114, 110, 104, 115, 109, 109, 109, 109, 110, 114, 110, 114, 110, 116, 112, 109, 109, 122, 112, 107, 112, 115, 108, 109, 109, 115, 112, 111, 127, 109, 109, 106, 113, 105, 107, 109, 110, 110, 108, 110, 107, 113, 110, 107, 108, 105, 109, 113, 107, 127, 107, 106, 111, 113, 108, 109, 109, 110, 114, 109, 102, 114, 107, 114, 106, 112, 104, 122, 121, 108, 108, 114, 107, 110, 106, 105, 110, 107, 109, 112, 124, 111, 114, 107, 110, 109, 107, 108, 111, 112, 110, 110, 109, 110, 109, 113, 118, 113, 111, 103, 114, 114, 109, 126, 110, 107, 116, 109, 112, 102, 116, 100, 110, 108, 114, 110, 105, 112, 117, 114, 105, 114, 112, 111, 113, 100, 114, 110, 115, 105, 107, 112, 110, 115, 122, 109, 113, 108, 110, 109, 108, 106, 108, 113, 110, 114, 110, 110, 108, 108, 109, 98, 107, 111, 109, 103, 107, 110, 100, 118, 113, 112, 110, 104, 106, 100, 109, 112, 109, 111, 108, 111, 118, 102, 111, 105, 112, 114, 106, 110, 111, 114, 116, 105, 107, 116, 113, 111, 119, 110, 120, 109, 110, 117, 107, 113, 109, 110, 97, 110, 105, 109, 110, 105, 80, 112, 112, 98, 112, 109, 110, 114, 115, 113, 109, 116, 109, 121, 113, 110, 108, 110, 109, 111, 109, 110, 103, 114, 110, 110, 109, 110, 112, 112, 106, 109, 115, 111, 111, 115, 110, 117, 107, 109, 110, 108, 113, 111, 107, 108, 116, 114, 110, 111, 112, 104, 109, 107, 104, 113, 114, 108, 113, 113, 110, 103, 108, 109, 107, 103, 116, 111, 109, 104, 108, 112, 106, 112, 108, 109, 109, 115, 112, 107, 107, 110, 114, 112, 117, 115, 110, 111, 110, 112, 109, 114, 109, 112, 110, 112, 110, 107, 107, 117, 115, 110, 97, 107, 111, 110, 110, 112, 110, 106, 110, 112, 101, 112, 121, 114, 110, 107, 109, 110, 111, 113, 107, 112, 122, 110, 112, 110, 108, 110, 107, 108, 111, 102, 120, 98, 109, 116, 109, 109, 113, 115, 118, 133, 98, 115, 99, 115, 109, 103, 124, 121, 108, 108, 106, 109, 101, 103, 108, 109, 112, 114, 109, 114, 100, 108, 108, 110, 109, 106, 104, 102, 81, 101, 111, 105, 107, 100, 99, 105, 101, 107, 106, 106, 114, 112, 119, 113, 107, 107, 119, 119, 116, 110, 108, 104, 89, 109, 111, 119, 114, 104, 113, 114, 99, 121, 114, 104, 112, 112, 110, 119, 110, 104, 109, 107, 113, 114, 114, 114, 111, 98, 111, 113, 113, 122, 111, 104, 110, 107, 118, 115, 114, 105, 105, 113, 114, 112, 111, 104, 146, 120, 91, 109, 109, 121, 121, 111, 118, 112, 109, 115, 93, 106, 109, 112, 115, 110, 107, 117, 109, 104, 117, 109, 116, 111, 113, 111, 116, 108, 106, 110, 104, 117, 109, 109, 115, 107, 115, 106, 108, 104, 109, 120, 119, 114, 102, 107, 113, 112, 111, 108, 107, 112, 109, 108, 122, 122, 116, 117, 111, 112, 128, 116, 112, 115, 105, 109, 113, 116, 109, 127, 104, 127, 117, 111, 124, 114, 117, 99, 119, 104, 114, 118, 112, 108, 110, 107, 108, 108, 94, 116, 106, 124, 105, 110, 118, 104, 124, 103, 108, 111, 116, 109, 116, 105, 110, 125, 113, 124, 111, 112, 113, 108, 112, 99, 106, 114, 107, 116, 97, 116, 107, 98, 109, 124, 103, 107, 114, 102, 105, 109, 118, 110, 114, 104, 117, 112, 105, 112, 115, 105, 107, 114, 106, 132, 110, 113, 99, 109, 97, 100, 107, 102, 119, 110, 112, 115, 115, 108, 111, 106, 117, 124, 115, 112, 107, 110, 122, 111, 119, 105, 129, 104, 113, 112, 110, 114, 109, 106, 113, 115, 112, 115, 111, 108, 119, 110, 109, 100, 101, 107, 109, 112, 109, 118, 101, 114, 117, 117, 109, 109, 103, 109, 107, 109, 107, 100, 111, 103, 121, 100, 125, 114, 111, 127, 112, 111, 116, 103, 111, 76, 103, 101, 108, 114, 118, 111, 117, 80, 122, 121, 104, 106, 106, 106, 117, 109, 104, 113, 113, 108, 95, 118, 111, 103, 100, 98, 105, 105, 115, 107, 125, 100, 69, 114, 117, 103, 115, 110, 107, 105, 110, 98, 117, 113, 115, 109, 112, 109, 110, 116, 108, 105, 113, 105, 113, 111, 118, 115, 118, 112, 101, 111, 109, 101, 105, 110, 116, 112, 109, 112, 111, 110, 99, 113, 114, 110, 108, 123, 99, 104, 116, 112, 112, 99, 109, 116, 116, 106, 115, 106, 110, 110, 112, 110, 114, 113, 117, 105, 111, 123, 112, 111, 104, 104, 109, 108, 105, 108, 113, 110, 115, 108, 99, 115, 104, 114, 107, 131, 110, 111, 121, 107, 113, 122, 101, 107, 115, 110, 114, 107, 112, 112, 108, 112, 127, 108, 126, 114, 97, 106, 106, 95, 118, 111, 107, 104, 115, 105, 111, 102, 106, 118, 104, 145, 100, 103, 101, 119, 95, 109, 105, 111, 108, 107, 111, 135, 109, 102, 119, 122, 107, 110, 103, 114, 110, 109, 102, 108, 112, 112, 100, 114, 104, 109, 106, 100, 115, 121, 110, 108, 107, 108, 112, 112, 108, 109, 110, 109, 109, 111, 107, 118, 105, 108, 111, 107, 115, 114, 108, 109, 111, 107, 109, 113, 113, 112, 109, 108, 107, 109, 114, 105, 106, 107, 110, 109, 112, 115, 111, 107, 111, 105, 110, 108, 110, 110, 116, 110, 109, 107, 110, 112, 108, 113, 108, 111, 107, 110, 112, 114, 113, 112, 107, 106, 114, 109, 111, 110, 111, 112, 105, 116, 106, 109, 111, 112, 104, 108, 110, 108, 109, 110, 110, 105, 109, 113, 113, 114, 112, 114, 106, 108, 112, 114, 108, 115, 121, 108, 108, 110, 115, 111, 110, 113, 111, 111, 108, 110, 114, 110, 109, 112, 107, 111, 114, 113, 107, 111, 111, 110, 112, 109, 112, 107, 114, 116, 108, 106, 109, 112, 111, 108, 110, 112, 110, 108, 107, 111, 109, 108, 115, 113, 106, 106, 116, 114, 114, 109, 105, 109, 112, 111, 112, 112, 112, 109, 116, 117, 112, 114, 110, 112, 110, 113, 112, 109, 114, 113, 109, 109, 108, 112, 102, 105, 108, 112, 110, 112, 112, 113, 108, 109, 108, 110, 118, 107, 115, 110, 109, 106, 107, 111, 110, 113, 112, 114, 105, 108, 117, 110, 111, 113, 108, 111, 108, 112, 111, 111, 111, 111, 117, 113, 107, 108, 112, 111, 106, 110, 110, 108, 117, 113, 111, 116, 111, 110, 110, 107, 113, 111, 108, 108, 114, 102, 111, 104, 109, 108, 108, 110, 111, 107, 111, 109, 109, 111, 110, 114, 108, 108, 107, 103, 106, 118, 107, 107, 111, 110, 109, 112, 110, 102, 110, 114, 109, 119, 114, 106, 106, 105, 108, 107, 105, 108, 113, 110, 114, 105, 111, 106, 112, 112, 107, 111, 111, 114, 106, 110, 109, 109, 109, 113, 110, 116, 112, 112, 111, 111, 104, 114, 104, 112, 107, 105, 110, 109, 109, 117, 110, 112, 118, 120, 109, 111, 105, 113, 105, 112, 110, 108, 108, 108, 111, 111, 114, 111, 108, 110, 104, 113, 99, 111, 113, 106, 108, 113, 111, 103, 110, 117, 108, 106, 112, 112, 108, 109, 114, 114, 113, 109, 109, 108, 113, 110, 102, 111, 110, 109, 117, 112, 110, 114, 114, 111, 109, 108, 104, 113, 110, 109, 110, 110, 108, 114, 109, 109, 108, 112, 103, 110, 113, 109, 113, 110, 107, 110, 110, 111, 109, 111, 110, 112, 115, 113, 110, 113, 112, 109, 113, 104, 115, 111, 109, 105, 108, 110, 107, 109, 118, 106, 109, 110, 115, 111, 114, 107, 110, 110, 109, 113, 111, 113, 112, 110, 115, 103, 112, 107, 108, 107, 110, 114, 114, 115, 111, 110, 111, 107, 108, 116, 112, 112, 119, 110, 109, 106, 105, 112, 109, 110, 109, 110, 107, 109, 112, 111, 110, 93, 111, 110, 116, 113, 110, 109, 112, 110, 113, 110, 114, 110, 112, 113, 114, 115, 114, 103, 107, 108, 109, 109, 112, 113, 106, 108, 106, 107, 106, 110, 105, 121, 110, 109, 108, 115, 111, 115, 102, 107, 113, 108, 108, 108, 108, 107, 108, 110, 106, 114, 114, 108, 113, 116, 112, 115, 104, 106, 105, 118, 112, 106, 117, 113, 114, 110, 110, 107, 110, 111, 109, 116, 108, 105, 103, 116, 110, 106, 113, 99, 109, 105, 104, 104, 112, 111, 111, 110, 113, 109, 111, 109, 115, 118, 109, 111, 115, 111, 116, 108, 107, 119, 115, 93, 102, 112, 113, 113, 99, 114, 114, 115, 112, 110, 105, 101, 102, 102, 115, 99, 112, 109, 105, 111, 111, 105, 111, 112, 105, 104, 116, 115, 104, 109, 111, 117, 107, 108, 100, 106, 111, 107, 89, 109, 96, 103, 96, 119, 98, 107, 112, 103, 103, 111, 106, 103, 108, 104, 104, 113, 111, 109, 105, 105, 122, 109, 111, 113, 110, 113, 112, 108, 110, 106, 116, 105, 114, 100, 109, 117, 117, 103, 114, 111, 115, 117, 120, 127, 132, 98, 120, 103, 99, 98, 112, 120, 114, 111, 106, 87, 109, 114, 124, 112, 107, 94, 116, 115, 109, 107, 111, 114, 114, 105, 110, 123, 103, 115, 140, 99, 119, 113, 119, 120, 112, 109, 116, 118, 102, 106, 111, 120, 109, 102, 117, 113, 106, 114, 108, 116, 104, 111, 128, 98, 110, 102, 97, 107, 110, 118, 110, 110, 109, 105, 103, 103, 108, 109, 108, 121, 110, 114, 103, 108, 111, 105, 114, 116, 117, 110, 103, 103, 106, 103, 106, 104, 114, 109, 130, 106, 103, 112, 96, 105, 109, 105, 123, 106, 111, 109, 105, 108, 111, 112, 127, 109, 110, 102, 105, 119, 97, 112, 111, 112, 108, 132, 109, 115, 106, 114, 112, 113, 113, 109, 110, 110, 105, 113, 106, 102, 113, 123, 104, 90, 113, 102, 116, 104, 120, 102, 108, 113, 107, 103, 114, 106, 107, 130, 104, 110, 108, 110, 113, 120, 107, 109, 119, 111, 153, 98, 109, 106, 119, 113, 109, 115, 105, 112, 118, 110, 103, 105, 105, 112, 107, 108, 106, 109, 109, 113, 107, 107, 122, 118, 103, 115, 106, 108, 106, 93, 112, 109, 109, 110, 110, 111, 109, 115, 111, 111, 117, 109, 120, 110, 105, 111, 113, 134, 114, 113, 113, 113, 117, 111, 110, 106, 111, 113, 105, 103, 110, 107, 119, 102, 112, 115, 112, 114, 107, 104, 109, 101, 101, 95, 108, 99, 114, 110, 112, 127, 103, 110, 111, 115, 112, 150, 113, 114, 111, 111, 94, 99, 113, 102, 109, 108, 105, 89, 108, 96, 116, 111, 109, 108, 109, 104, 112, 107, 105, 115, 114, 112, 113, 107, 109, 118, 119, 112, 101, 96, 123, 104, 111, 105, 97, 111, 114, 108, 110, 111, 110, 103, 109, 116, 112, 99, 114, 103, 105, 102, 107, 107, 119, 122, 111, 114, 106, 106, 128, 106, 109, 117, 109, 113, 119, 106, 112, 108, 109, 108, 108, 113, 107, 121, 107, 114, 108, 114, 111, 113, 114, 113, 112, 103, 106, 111, 110, 107, 117, 107, 94, 112, 108, 121, 114, 96, 114, 118, 112, 113, 115, 100, 96, 112, 107, 104, 114, 103, 102, 112, 101, 110, 109, 101, 109, 118, 107, 111, 123, 104, 110, 122, 112, 113, 102, 108, 122, 103, 111, 109, 113, 148, 109, 113, 108, 111, 119, 112, 106, 110, 109, 104, 105, 107, 107, 107, 116, 113, 113, 108, 111, 109, 102, 119, 115, 89, 106, 109, 115, 99, 110, 104, 110, 112, 107, 112, 110, 109, 114, 112, 127, 113, 106, 109, 117, 116, 109, 97, 108, 102, 107, 112, 112, 110, 112, 104, 97, 86, 84, 109, 106, 104, 111, 108, 104, 111, 102, 114, 110, 110, 115, 107, 104, 119, 107, 112, 106, 107, 107, 110, 98, 108, 104, 102, 105, 103, 107, 111, 142, 114, 94, 108, 110, 88, 104, 107, 109, 109, 108, 111, 112, 111, 112, 107, 115, 106, 98, 99, 114, 115, 112, 116, 111, 107, 110, 99, 110, 130, 133, 112, 105, 110, 116, 114, 108, 104, 96, 105, 116, 99, 109, 108, 114, 85, 107, 127, 111, 110, 109, 100, 109, 101, 111, 126, 106, 100, 122, 117, 113, 113, 104, 103, 120, 115, 107, 111, 115, 113, 111, 108, 108, 104, 143, 108, 112, 109, 109, 109, 108, 112, 94, 108, 113, 114, 110, 107, 113, 100, 97, 111, 109, 110, 119, 113, 112, 116, 106, 102, 104, 101, 112, 94, 111, 105, 109, 102, 110, 109, 119, 110, 113, 115, 105, 115, 108, 112, 105, 96, 111, 112, 125, 113, 108, 106, 115, 108, 111, 110, 110, 109, 114, 101, 105, 114, 105, 107, 116, 109, 110, 114, 111, 113, 115, 106, 96, 107, 116, 111, 100, 107, 109, 107, 140, 109, 112, 127, 120, 114, 110, 108, 109, 109, 114, 107, 133, 108, 82, 112, 91, 118, 113, 109, 104, 113, 114, 123, 110, 109, 106, 114, 113, 108, 110, 111, 117, 111, 116, 108, 101, 115, 115, 114, 106, 101, 103, 113, 108, 105, 101, 110, 100, 94, 106, 114, 110, 110, 111, 108, 111, 110, 110, 106, 111, 111, 139, 111, 108, 109, 109, 115, 115, 117, 107, 105, 109, 111, 85, 111, 105, 113, 107, 116, 114, 103, 113, 112, 115, 118, 110, 106, 105, 107, 122, 109, 110, 106, 114, 112, 100, 113, 113, 107, 111, 108, 106, 108, 113, 109, 113, 106, 115, 110, 110, 110, 114, 113, 109, 106, 112, 114, 106, 112, 107, 116, 110, 116, 107, 121, 116, 104, 113, 117, 102, 112, 108, 121, 111, 106, 109, 104, 116, 109, 133, 101, 117, 108, 115, 110, 112, 114, 110, 118, 106, 108, 117, 111, 101, 111, 104, 107, 104, 112, 92, 116, 112, 113, 120, 104, 109, 111, 97, 102, 114, 99, 111, 111, 95, 110, 121, 114, 109, 114, 108, 115, 71, 109, 118, 103, 116, 107, 107, 108, 106, 103, 113, 106, 111, 115, 111, 109, 106, 111, 105, 103, 109, 121, 111, 106, 108, 106, 101, 108, 108, 118, 111, 129, 110, 112, 105, 106, 110, 113, 109, 109, 107, 108, 114, 110, 111, 105, 104, 113, 109, 109, 107, 117, 118, 111, 110, 109, 105, 114, 106, 113, 111, 117, 117, 109, 108, 110, 113, 105, 107, 105, 121, 99, 97, 99, 110, 109, 118, 114, 114, 109, 111, 108, 111, 107, 121, 112, 114, 113, 104, 108, 118, 105, 112, 110, 108, 104, 111, 108, 102, 117, 117, 111, 102, 130, 101, 90, 111, 117, 108, 108, 105, 107, 122, 108, 114, 100, 112, 116, 110, 110, 101, 110, 112, 126, 114, 107, 110, 108, 109, 110, 115, 126, 98, 106, 115, 112, 105, 108, 110, 114, 107, 111, 103, 109, 108, 114, 101, 111, 111, 109, 102, 115, 104, 114, 107, 125, 111, 111, 100, 109, 117, 106, 113, 112, 106, 107, 110, 110, 113, 108, 112, 90, 99, 107, 111, 118, 105, 107, 107, 106, 113, 111, 111, 104, 112, 114, 112, 114, 116, 112, 107, 111, 104, 110, 116, 101, 106, 114, 113, 113, 106, 112, 113, 110, 100, 119, 112, 104, 112, 105, 110, 107, 116, 111, 108, 109, 106, 107, 96, 111, 92, 102, 122, 108, 114, 108, 115, 105, 104, 116, 105, 110, 100, 115, 107, 111, 112, 112, 114, 110, 108, 108, 106, 94, 99, 103, 108, 116, 113, 111, 116, 113, 107, 115, 108, 101, 105, 107, 108, 119, 108, 110, 111, 114, 106, 108, 107, 108, 127, 100, 110, 104, 108, 114, 103, 113, 102, 116, 109, 114, 108, 118, 117, 103, 112, 112, 104, 109, 111, 105, 113, 108, 113, 110, 110, 111, 116, 118, 108, 113, 137, 93, 107, 97, 112, 111, 113, 106, 107, 115, 111, 105, 102, 104, 110, 107, 106, 106, 106, 88, 109, 109, 103, 109, 98, 112, 114, 124, 103, 102, 106, 111, 114, 106, 110, 104, 106, 112, 115, 104, 111, 111, 112, 109, 106, 106, 109, 112, 113, 108, 116, 110, 113, 115, 109, 92, 112, 107, 103, 117, 110, 118, 97, 114, 115, 109, 105, 111, 108, 113, 108, 119, 102, 113, 110, 103, 110, 121, 108, 108, 107, 112, 116, 109, 111, 106, 106, 112, 101, 105, 107, 99, 117, 121, 102, 113, 110, 118, 126, 110, 101, 101, 120, 111, 111, 103, 114, 109, 110, 115, 107, 101, 110, 101, 106, 111, 109, 108, 114, 118, 103, 113, 107, 100, 110, 115, 112, 108, 111, 112, 113, 112, 104, 105, 111, 109, 114, 106, 101, 111, 105, 106, 101, 106, 117, 111, 122, 108, 115, 107, 119, 80, 122, 115, 108, 114, 109, 111, 95, 103, 108, 132, 113, 111, 103, 93, 110, 106, 118, 105, 104, 110, 110, 107, 112, 117, 109, 111, 109, 110, 108, 116, 115, 104, 100, 120, 106, 111, 107, 105, 101, 106, 99, 102, 110, 111, 113, 112, 122, 110, 104, 112, 110, 116, 108, 90, 108, 104, 116, 107, 111, 115, 108, 115, 117, 113, 108, 128, 112, 105, 114, 109, 117, 109, 117, 106, 111, 102, 104, 104, 115, 112, 118, 121, 103, 105, 113, 107, 111, 118, 110, 104, 119, 108, 112, 119, 106, 105, 117, 121, 105, 114, 113, 108, 120, 114, 112, 113, 112, 118, 96, 105, 111, 108, 100, 109, 113, 110, 122, 101, 115, 118, 121, 120, 115, 89, 104, 110, 111, 100, 98, 108, 110, 115, 105, 104, 119, 122, 111, 113, 107, 119, 112, 113, 117, 105, 109, 110, 112, 114, 103, 106, 107, 111, 102, 118, 115, 111, 108, 111, 106, 105, 109, 112, 110, 113, 109, 108, 115, 113, 110, 112, 117, 103, 113, 104, 115, 110, 110, 110, 115, 102, 106, 115, 108, 109, 114, 99, 109, 110, 95, 113, 105, 109, 106, 102, 107, 116, 117, 107, 107, 116, 105, 98, 108, 113, 93, 112, 89, 116, 108, 117, 111, 111, 106, 112, 107, 112, 111, 107, 108, 98, 102, 117, 109, 112, 108, 121, 110, 118, 124, 103, 112, 116, 102, 123, 100, 104, 107, 113, 124, 114, 115, 123, 114, 102, 112, 114, 111, 107, 112, 113, 136, 117, 109, 105, 122, 112, 105, 108, 108, 105, 111, 114, 108, 105, 108, 68, 103, 109, 115, 102, 103, 111, 110, 117, 123, 112, 124, 106, 111, 114, 114, 109, 108, 96, 108, 109, 112, 106, 107, 105, 106, 116, 98, 114, 116, 112, 106, 101, 106, 108, 109, 99, 112, 110, 113, 102, 108, 112, 99, 108, 102, 111, 108, 109, 115, 107, 105, 108, 118, 106, 106, 101, 112, 112, 114, 115, 97, 109, 111, 108, 117, 110, 131, 107, 109, 114, 114, 106, 117, 114, 110, 108, 109, 121, 106, 106, 101, 109, 106, 102, 84, 102, 105, 109, 111, 98, 110, 108, 113, 113, 108, 107, 113, 104, 111, 105, 106, 108, 100, 114, 106, 105, 108, 111, 115, 107, 107, 109, 115, 109, 113, 111, 130, 110, 73, 111, 114, 115, 110, 112, 113, 88, 113, 83, 113, 112, 109, 120, 109, 115, 109, 114, 123, 108, 121, 103, 123, 102, 110, 113, 111, 109, 110, 84, 111, 107, 105, 103, 103, 108, 113, 107, 105, 108, 107, 137, 99, 97, 116, 114, 111, 104, 103, 105, 107, 99, 115, 114, 121, 118, 104, 109, 111, 110, 108, 108, 107, 115, 107, 112, 112, 112, 109, 109, 116, 110, 115, 114, 107, 106, 111, 119, 108, 112, 113, 108, 102, 108, 111, 109, 105, 95, 127, 107, 107, 110, 122, 107, 114, 116, 94, 106, 108, 114, 106, 107, 106, 98, 110, 109, 112, 113, 109, 106, 110, 115, 115, 114, 105, 149, 113, 110, 115, 105, 107, 113, 113, 108, 114, 108, 109, 104, 106, 114, 111, 113, 110, 110, 111, 107, 104, 112, 116, 112, 114, 113, 114, 110, 108, 109, 100, 137, 106, 116, 101, 109, 112, 117, 109, 112, 105, 108, 111, 108, 109, 110, 111, 117, 104, 102, 114, 89, 106, 105, 115, 112, 103, 114, 111, 120, 73, 96, 111, 113, 112, 118, 111, 111, 118, 114, 112, 108, 132, 113, 135, 117, 123, 110, 110, 106, 105, 119, 102, 107, 110, 114, 110, 109, 93, 114, 103, 108, 99, 117, 112, 105, 110, 106, 113, 111, 111, 104, 109, 115, 104, 110, 103, 109, 112, 124, 109, 110, 110, 114, 114, 113, 109, 104, 105, 113, 110, 117, 117, 105, 110, 107, 110, 110, 104, 113, 105, 112, 112, 117, 123, 108, 107, 110, 123, 94, 113, 119, 95, 114, 98, 139, 105, 103, 109, 116, 107, 109, 113, 109, 112, 113, 113, 110, 108, 109, 100, 114, 108, 111, 96, 99, 120, 114, 103, 124, 102, 104, 97, 112, 106, 112, 110, 109, 106, 117, 116, 114, 121, 110, 112, 104, 109, 105, 110, 114, 108, 109, 106, 104, 107, 106, 114, 112, 110, 104, 97, 114, 118, 112, 100, 121, 97, 110, 105, 95, 107, 108, 109, 100, 111, 102, 111, 112, 113, 115, 110, 114, 108, 111, 101, 107, 109, 117, 105, 107, 108, 113, 103, 114, 104, 113, 112, 108, 98, 111, 114, 138, 106, 108, 104, 110, 115, 89, 119, 111, 108, 103, 109, 119, 102, 105, 103, 107, 101, 99, 112, 106, 111, 105, 106, 106, 105, 126, 112, 113, 108, 112, 115, 121, 119, 112, 107, 109, 114, 108, 113, 110, 115, 100, 111, 122, 117, 108, 114, 113, 108, 108, 112, 107, 110, 115, 110, 120, 106, 104, 119, 98, 102, 120, 101, 113, 116, 110, 111, 110, 108, 110, 108, 107, 109, 99, 116, 114, 109, 117, 104, 108, 127, 108, 110, 110, 111, 106, 97, 110, 115, 112, 112, 111, 107, 123, 111, 102, 108, 104, 117, 100, 115, 109, 107, 113, 121, 110, 116, 115, 98, 130, 103, 93, 104, 111, 102, 115, 110, 115, 105, 109, 101, 102, 111, 110, 108, 106, 106, 110, 124, 102, 101, 105, 99, 113, 102, 111, 106, 107, 103, 112, 118, 116, 123, 110, 109, 109, 116, 120, 111, 104, 107, 105, 111, 107, 113, 99, 105, 107, 115, 104, 107, 104, 112, 116, 111, 119, 106, 135, 116, 97, 107, 106, 112, 109, 115, 105, 99, 112, 106, 117, 109, 110, 109, 109, 112, 107, 105, 111, 127, 109, 110, 103, 112, 110, 108, 110, 116, 114, 103, 94, 109, 108, 108, 107, 114, 101, 111, 105, 110, 95, 111, 102, 110, 116, 112, 102, 105, 104, 122, 106, 114, 109, 109, 112, 103, 100, 110, 112, 118, 106, 107, 107, 117, 111, 116, 111, 108, 116, 113, 111, 114, 104, 107, 110, 104, 110, 109, 106, 100, 105, 108, 109, 118, 114, 112, 110, 109, 110, 107, 113, 112, 110, 112, 118, 116, 113, 106, 116, 106, 116, 104, 110, 104, 122, 107, 115, 111, 104, 106, 110, 106, 117, 110, 113, 115, 106, 99, 110, 115, 124, 97, 111, 109, 116, 105, 106, 110, 109, 109, 118, 118, 110, 106, 109, 108, 116, 103, 127, 113, 112, 105, 113, 122, 111, 113, 110, 103, 109, 106, 96, 114, 112, 119, 110, 111, 108, 109, 116, 105, 117, 128, 105, 111, 102, 118, 119, 99, 114, 124, 120, 105, 127, 108, 98, 113, 117, 120, 115, 112, 108, 110, 93, 120, 129, 108, 112, 115, 117, 112, 111, 108, 112, 113, 114, 113, 105, 103, 115, 95, 109, 101, 111, 109, 101, 108, 113, 99, 100, 109, 121, 109, 114, 113, 116, 122, 111, 109, 119, 116, 104, 107, 113, 96, 107, 108, 106, 106, 110, 107, 110, 109, 102, 104, 110, 101, 106, 114, 112, 114, 127, 102, 117, 109, 108, 108, 114, 113, 110, 106, 116, 105, 101, 116, 108, 104, 114, 97, 111, 107, 100, 105, 107, 97, 102, 113, 121, 119, 107, 109, 113, 109, 115, 110, 118, 121, 120, 101, 118, 112, 106, 105, 110, 127, 121, 107, 112, 106, 109, 116, 114, 114, 104, 104, 101, 110, 110, 112, 114, 120, 117, 111, 113, 121, 107, 113, 117, 110, 106, 108, 84, 98, 101, 115, 102, 119, 111, 114, 111, 119, 110, 115, 119, 103, 112, 114, 114, 108, 109, 112, 123, 120, 116, 115, 111, 114, 112, 106, 108, 105, 115, 121, 116, 102, 105, 105, 103, 112, 107, 107, 107, 111, 112, 114, 103, 110, 111, 91, 113, 113, 99, 111, 114, 107, 109, 118, 110, 114, 121, 113, 121, 116, 115, 116, 112, 108, 116, 99, 116, 108, 118, 111, 112, 119, 111, 107, 95, 121, 117, 116, 98, 110, 116, 120, 110, 110, 116, 101, 116, 114, 122, 116, 112, 111, 115, 110, 118, 109, 117, 114, 107, 134, 107, 109, 94, 99, 104, 112, 105, 101, 107, 103, 118, 103, 109, 112, 104, 103, 110, 108, 122, 104, 117, 112, 111, 112, 110, 116, 109, 113, 112, 104, 110, 109, 92, 111, 110, 121, 119, 113, 111, 111, 112, 110, 108, 114, 106, 101, 110, 112, 112, 102, 110, 119, 107, 108, 104, 119, 112, 117, 108, 111, 97, 117, 115, 111, 113, 99, 116, 111, 116, 116, 106, 111, 122, 113, 116, 110, 114, 105, 100, 118, 114, 107, 118, 107, 111, 109, 104, 111, 103, 128, 106, 113, 115, 116, 109, 129, 118, 114, 111, 119, 114, 109, 107, 111, 108, 110, 108, 107, 106, 121, 103, 100, 108, 107, 109, 114, 114, 122, 99, 115, 106, 112, 110, 113, 113, 104, 112, 113, 120, 113, 114, 103, 110, 121, 104, 118, 110, 117, 114, 107, 119, 109, 124, 106, 110, 128, 119, 114, 101, 134, 102, 106, 100, 109, 106, 92, 91, 105, 110, 104, 122, 116, 106, 104, 117, 113, 120, 103, 111, 108, 113, 105, 116, 117, 106, 109, 93, 103, 106, 97, 109, 116, 117, 116, 110, 112, 107, 112, 105, 109, 116, 106, 106, 110, 120, 108, 101, 103, 122, 120, 107, 110, 107, 108, 112, 93, 113, 106, 112, 112, 115, 109, 100, 109, 111, 98, 106, 108, 107, 98, 111, 103, 112, 112, 113, 129, 118, 98, 98, 121, 103, 111, 109, 113, 118, 106, 112, 112, 112, 114, 108, 106, 120, 107, 111, 93, 114, 113, 102, 104, 120, 102, 107, 104, 109, 114, 105, 115, 109, 113, 111, 108, 120, 120, 102, 117, 118, 110, 110, 108, 110, 127, 104, 118, 109, 110, 110, 107, 106, 106, 119, 115, 114, 102, 101, 105, 89, 103, 127, 118, 119, 112, 110, 93, 114, 110, 111, 110, 110, 106, 112, 117, 114, 114, 110, 112, 116, 106, 109, 107, 112, 114, 113, 102, 114, 105, 105, 126, 112, 105, 99, 113, 114, 112, 99, 108, 106, 107, 111, 109, 94, 104, 100, 112, 118, 120, 103, 102, 106, 108, 117, 111, 116, 102, 108, 112, 109, 111, 119, 114, 104, 109, 115, 119, 112, 122, 110, 108, 105, 110, 111, 112, 106, 109, 112, 118, 125, 105, 111, 95, 114, 110, 104, 110, 111, 109, 110, 102, 111, 120, 94, 107, 93, 114, 109, 111, 110, 108, 112, 116, 102, 103, 110, 112, 109, 109, 109, 92, 110, 115, 105, 115, 106, 107, 128, 139, 107, 117, 112, 114, 115, 99, 117, 112, 114, 116, 108, 113, 111, 106, 107, 112, 113, 109, 136, 108, 110, 109, 108, 142, 108, 96, 107, 106, 111, 93, 112, 98, 108, 116, 110, 106, 117, 106, 107, 106, 102, 111, 112, 111, 113, 118, 108, 114, 110, 113, 109, 116, 102, 119, 111, 106, 112, 106, 107, 125, 108, 112, 112, 110, 135, 114, 110, 121, 106, 115, 109, 110, 109, 105, 109, 104, 112, 109, 108, 113, 108, 117, 102, 111, 119, 115, 106, 119, 105, 107, 114, 114, 108, 100, 110, 113, 118, 109, 108, 115, 113, 111, 111, 111, 111, 100, 97, 118, 114, 119, 105, 107, 114, 112, 103, 108, 118, 114, 108, 109, 107, 113, 112, 111, 109, 106, 112, 111, 121, 110, 108, 116, 110, 115, 139, 104, 102, 112, 114, 116, 115, 103, 120, 108, 111, 119, 107, 109, 111, 107, 106, 110, 113, 111, 108, 111, 124, 107, 104, 113, 111, 110, 102, 108, 108, 111, 110, 113, 95, 112, 102, 111, 117, 108, 113, 100, 108, 117, 115, 105, 111, 107, 99, 118, 105, 105, 120, 137, 108, 109, 138, 113, 107, 105, 114, 109, 116, 101, 113, 105, 121, 115, 113, 92, 109, 105, 124, 109, 129, 116, 112, 112, 116, 103, 109, 137, 116, 101, 125, 106, 110, 110, 111, 109, 128, 116, 97, 114, 116, 106, 112, 113, 114, 105, 106, 109, 119, 129, 111, 119, 108, 115, 121, 105, 108, 114, 114, 107, 106, 112, 107, 111, 108, 98, 113, 105, 102, 114, 113, 116, 110, 116, 105, 108, 104, 108, 116, 119, 111, 131, 105, 107, 114, 114, 113, 116, 107, 92, 102, 106, 110, 115, 116, 107, 99, 105, 110, 111, 107, 122, 107, 91, 102, 103, 113, 136, 117, 113, 107, 112, 114, 114, 92, 119, 112, 108, 118, 108, 98, 107, 97, 110, 118, 111, 111, 102, 105, 111, 105, 107, 115, 104, 115, 113, 106, 129, 105, 107, 119, 103, 100, 103, 113, 111, 103, 120, 118, 99, 116, 122, 106, 106, 117, 108, 106, 107, 111, 112, 128, 104, 107, 119, 111, 108, 130, 122, 110, 107, 121, 107, 139, 110, 113, 111, 104, 110, 105, 112, 112, 106, 105, 108, 103, 120, 105, 110, 104, 119, 106, 103, 113, 116, 108, 111, 116, 110, 103, 111, 104, 101, 105, 108, 107, 112, 107, 127, 110, 109, 108, 105, 114, 115, 108, 110, 115, 109, 113, 114, 113, 122, 113, 111, 114, 110, 111, 112, 113, 108, 108, 109, 99, 113, 111, 110, 112, 106, 116, 115, 110, 117, 111, 114, 109, 110, 113, 97, 110, 107, 107, 124, 114, 124, 118, 110, 99, 108, 116, 114, 113, 106, 106, 118, 113, 113, 130, 137, 105, 110, 142, 113, 104, 113, 110, 113, 120, 114, 116, 106, 115, 110, 107, 117, 116, 118, 110, 113, 99, 96, 98, 100, 110, 102, 101, 103, 101, 110, 105, 113, 115, 116, 114, 115, 116, 113, 105, 116, 121, 106, 104, 104, 121, 120, 110, 120, 117, 111, 105, 111, 102, 94, 107, 104, 115, 107, 123, 107, 102, 100, 112, 118, 114, 112, 105, 117, 106, 126, 104, 104, 122, 101, 111, 117, 113, 114, 102, 105, 108, 107, 106, 103, 109, 110, 113, 103, 108, 115, 102, 123, 114, 104, 104, 115, 106, 116, 111, 108, 127, 114, 128, 109, 115, 111, 121, 115, 110, 123, 113, 117, 115, 111, 115, 103, 117, 109, 102, 107, 113, 104, 110, 106, 114, 111, 102, 98, 114, 109, 115, 117, 98, 102, 105, 115, 108, 115, 103, 118, 107, 109, 105, 120, 112, 111, 113, 121, 110, 109, 106, 106, 114, 107, 114, 108, 99, 118, 102, 108, 117, 109, 108, 113, 119, 118, 108, 106, 108, 116, 114, 107, 114, 109, 107, 107, 111, 117, 121, 103, 103, 115, 123, 126, 116, 117, 122, 107, 107, 110, 113, 115, 100, 116, 115, 111, 120, 113, 106, 102, 104, 115, 113, 94, 111, 114, 112, 128, 118, 112, 112, 109, 109, 113, 112, 116, 112, 94, 98, 100, 106, 112, 131, 111, 114, 110, 117, 112, 115, 107, 124, 105, 114, 110, 108, 108, 115, 119, 105, 112, 112, 109, 117, 119, 109, 116, 132, 109, 108, 119, 111, 103, 104, 116, 112, 120, 125, 112, 99, 113, 109, 110, 108, 108, 121, 110, 96, 113, 109, 117, 103, 117, 123, 98, 97, 127, 112, 112, 113, 115, 109, 108, 106, 113, 95, 107, 111, 105, 110, 122, 111, 110, 113, 106, 117, 114, 121, 112, 109, 102, 113, 113, 119, 116, 112, 110, 93, 101, 105, 119, 109, 104, 116, 116, 113, 113, 119, 126, 112, 117, 108, 102, 119, 116, 112, 103, 122, 120, 111, 107, 107, 108, 111, 109, 114, 104, 115, 89, 113, 108, 112, 97, 110, 121, 96, 105, 103, 108, 102, 108, 114, 108, 112, 92, 104, 105, 112, 105, 113, 109, 120, 107, 114, 112, 106, 114, 109, 96, 110, 116, 118, 118, 109, 113, 118, 104, 110, 114, 106, 119, 99, 105, 112, 108, 111, 114, 102, 106, 106, 116, 108, 110, 101, 112, 102, 111, 105, 126, 102, 124, 119, 113, 123, 116, 104, 109, 119, 106, 113, 114, 106, 108, 93, 109, 114, 106, 111, 109, 121, 108, 111, 111, 121, 112, 125, 123, 125, 112, 99, 117, 110, 108, 105, 108, 114, 110, 108, 107, 116, 108, 104, 107, 114, 114, 112, 105, 87, 115, 105, 121, 117, 116, 99, 107, 121, 110, 113, 106, 110, 97, 107, 104, 107, 120, 94, 112, 110, 117, 114, 119, 104, 111, 119, 133, 127, 123, 107, 111, 127, 112, 106, 123, 99, 100, 92, 104, 123, 127, 117, 127, 105, 109, 109, 115, 96, 117, 110, 114, 108, 107, 104, 119, 106, 115, 112, 101, 112, 116, 105, 105, 110, 103, 109, 107, 107, 112, 114, 106, 110, 117, 106, 98, 105, 117, 108, 108, 120, 102, 109, 104, 101, 110, 111, 120, 113, 107, 101, 89, 112, 118, 111, 104, 116, 104, 108, 108, 113, 114, 98, 111, 111, 108, 109, 116, 113, 108, 120, 110, 113, 106, 112, 107, 108, 111, 117, 108, 108, 111, 104, 125, 106, 98, 114, 115, 103, 111, 96, 96, 106, 125, 101, 112, 108, 109, 104, 107, 111, 110, 109, 107, 104, 117, 94, 106, 99, 105, 105, 116, 120, 114, 111, 109, 107, 116, 116, 108, 111, 114, 105, 99, 111, 111, 111, 101, 119, 110, 107, 112, 112, 113, 111, 106, 104, 103, 109, 114, 107, 113, 106, 107, 110, 115, 110, 121, 114, 108, 96, 107, 101, 100, 131, 104, 110, 111, 108, 113, 111, 103, 122, 120, 108, 113, 107, 112, 102, 101, 104, 116, 104, 116, 107, 116, 117, 109, 106, 105, 103, 103, 120, 105, 117, 115, 106, 110, 108, 94, 109, 103, 116, 118, 115, 118, 117, 111, 105, 117, 105, 110, 99, 103, 111, 113, 112, 110, 103, 114, 121, 110, 110, 113, 105, 115, 114, 105, 113, 93, 108, 109, 109, 102, 109, 120, 109, 109, 111, 112, 107, 98, 97, 125, 108, 98, 102, 102, 102, 109, 111, 115, 126, 111, 95, 106, 116, 120, 110, 108, 111, 104, 109, 110, 112, 107, 104, 112, 113, 107, 92, 104, 109, 99, 111, 129, 126, 106, 112, 116, 126, 113, 112, 121, 108, 115, 114, 108, 103, 106, 124, 110, 110, 111, 105, 111, 114, 102, 99, 115, 116, 102, 112, 95, 106, 104, 118, 112, 125, 104, 111, 117, 110, 113, 108, 108, 113, 114, 110, 110, 110, 112, 112, 100, 112, 101, 108, 109, 103, 113, 118, 98, 112, 107, 107, 104, 99, 106, 94, 99, 117, 111, 113, 102, 107, 110, 112, 112, 102, 116, 99, 119, 108, 115, 114, 112, 111, 112, 113, 118, 119, 110, 107, 118, 116, 99, 113, 106, 115, 113, 105, 102, 108, 113, 103, 111, 110, 107, 112, 104, 109, 106, 108, 113, 100, 114, 113, 106, 111, 110, 101, 110, 112, 101, 105, 111, 108, 103, 98, 118, 108, 102, 114, 115, 110, 112, 111, 105, 114, 115, 105, 110, 106, 103, 113, 115, 98, 119, 112, 98, 117, 110, 104, 107, 106, 100, 109, 116, 105, 118, 107, 99, 113, 114, 111, 110, 108, 106, 111, 105, 102, 107, 108, 110, 119, 123, 113, 110, 106, 104, 105, 108, 104, 106, 104, 109, 112, 108, 111, 112, 124, 107, 114, 107, 102, 101, 107, 111, 132, 114, 112, 122, 110, 111, 110, 118, 112, 109, 100, 115, 112, 108, 113, 111, 116, 100, 109, 112, 103, 105, 114, 110, 107, 116, 103, 102, 126, 115, 108, 111, 112, 107, 106, 110, 116, 94, 106, 114, 110, 115, 111, 113, 111, 113, 113, 102, 115, 111, 119, 112, 109, 103, 114, 111, 109, 111, 108, 101, 106, 121, 120, 113, 120, 103, 118, 105, 113, 101, 115, 111, 116, 100, 99, 108, 113, 105, 101, 109, 111, 113, 114, 124, 112, 110, 106, 107, 110, 111, 109, 110, 103, 107, 113, 104, 111, 109, 103, 114, 120, 109, 114, 113, 112, 108, 114, 113, 113, 114, 112, 111, 111, 102, 102, 110, 115, 112, 107, 112, 104, 109, 109, 112, 113, 110, 110, 109, 111, 110, 120, 125, 109, 116, 106, 112, 105, 104, 112, 102, 110, 107, 113, 107, 97, 106, 116, 124, 113, 120, 116, 109, 108, 113, 109, 107, 111, 112, 114, 109, 105, 112, 102, 110, 112, 111, 111, 108, 110, 110, 110, 111, 131, 108, 109, 124, 118, 118, 134, 96, 114, 107, 110, 103, 111, 106, 113, 103, 107, 108, 113, 102, 106, 112, 107, 107, 113, 111, 103, 114, 107, 115, 111, 114, 108, 100, 106, 107, 106, 112, 113, 112, 119, 102, 113, 106, 100, 114, 118, 123, 116, 104, 108, 120, 112, 111, 106, 112, 113, 119, 106, 101, 100, 111, 114, 103, 114, 121, 110, 108, 110, 108, 113, 112, 115, 109, 108, 104, 105, 110, 100, 105, 99, 116, 110, 107, 107, 110, 108, 113, 111, 98, 108, 116, 119, 112, 110, 106, 105, 112, 107, 110, 111, 107, 114, 111, 104, 105, 112, 110, 109, 104, 112, 112, 105, 105, 112, 111, 114, 111, 107, 120, 110, 108, 107, 115, 103, 106, 102, 105, 123, 103, 114, 115, 121, 110, 109, 114, 108, 109, 110, 116, 105, 114, 111, 103, 116, 112, 115, 122, 121, 106, 108, 118, 107, 106, 116, 116, 104, 112, 108, 104, 106, 109, 107, 115, 124, 109, 116, 114, 105, 109, 105, 109, 106, 113, 106, 117, 110, 124, 113, 107, 111, 103, 109, 108, 107, 108, 110, 111, 110, 126, 114, 108, 103, 112, 109, 106, 109, 109, 109, 115, 110, 103, 105, 106, 108, 107, 113, 109, 105, 117, 111, 116, 107, 112, 104, 110, 112, 108, 116, 106, 100, 114, 110, 109, 109, 115, 107, 109, 117, 116, 110, 115, 106, 110, 112, 105, 114, 111, 113, 105, 111, 113, 106, 102, 111, 110, 112, 116, 117, 112, 106, 109, 113, 118, 105, 110, 109, 107, 126, 105, 105, 109, 105, 105, 109, 108, 114, 110, 114, 108, 105, 115, 111, 107, 104, 115, 119, 111, 103, 109, 110, 113, 116, 104, 111, 103, 109, 112, 111, 110, 119, 103, 111, 110, 113, 112, 119, 110, 112, 108, 110, 108, 102, 111, 110, 112, 108, 110, 115, 109, 112, 107, 106, 111, 112, 107, 115, 97, 111, 110, 104, 100, 113, 108, 112, 113, 105, 109, 116, 103, 109, 122, 110, 109, 107, 108, 109, 113, 110, 108, 101, 106, 117, 111, 112, 105, 110, 109, 105, 108, 112, 109, 110, 105, 106, 107, 118, 111, 105, 112, 111, 108, 114, 110, 114, 104, 109, 108, 111, 115, 111, 104, 112, 109, 117, 107, 112, 111, 117, 109, 116, 108, 110, 112, 113, 114, 104, 103, 108, 109, 105, 110, 108, 105, 106, 114, 110, 110, 104, 114, 107, 109, 111, 111, 113, 117, 103, 108, 101, 114, 115, 111, 117, 114, 102, 113, 111, 101, 114, 112, 113, 118, 114, 103, 115, 111, 111, 110, 117, 112, 100, 107, 111, 106, 109, 112, 107, 110, 110, 110, 109, 104, 112, 111, 110, 105, 109, 112, 113, 106, 108, 110, 110, 106, 121, 110, 114, 105, 105, 109, 110, 111, 111, 109, 116, 116, 109, 111, 107, 115, 110, 105, 111, 113, 107, 108, 107, 112, 105, 106, 111, 108, 111, 116, 106, 109, 106, 108, 112, 107, 111, 112, 125, 110, 110, 113, 114, 112, 112, 112, 118, 113, 108, 122, 109, 108, 113, 112, 110, 110, 128, 106, 112, 112, 110, 107, 114, 108, 111, 109, 111, 108, 105, 107, 115, 112, 107, 104, 107, 121, 116, 109, 115, 113, 110, 110, 109, 110, 106, 113, 112, 111, 111, 115, 116, 113, 105, 110, 108, 113, 107, 109, 104, 108, 110, 106, 109, 108, 111, 107, 110, 109, 108, 108, 103, 113, 112, 115, 109, 107, 114, 112, 108, 117, 109, 105, 114, 111, 110, 111, 105, 112, 111, 108, 111, 105, 112, 110, 110, 110, 114, 112, 108, 114, 110, 113, 110, 112, 111, 108, 115, 109, 113, 107, 108, 107, 113, 110, 106, 116, 107, 107, 112, 112, 111, 112, 115, 118, 110, 104, 105, 107, 105, 107, 112, 111, 104, 111, 110, 112, 113, 117, 102, 110, 115, 108, 106, 110, 110, 110, 106, 115, 107, 108, 108, 113, 109, 111, 110, 102, 105, 113, 110, 109, 110, 103, 116, 111, 111, 109, 117, 108, 109, 105, 115, 110, 109, 110, 111, 113, 108, 111, 112, 108, 112, 106, 102, 120, 110, 111, 110, 110, 107, 114, 109, 113, 111, 108, 113, 109, 103, 111, 112, 110, 111, 116, 114, 112, 106, 104, 108, 113, 112, 114, 107, 107, 108, 108, 111, 104, 107, 108, 95, 111, 111, 109, 111, 117, 104, 106, 112, 109, 111, 104, 113, 113, 103, 109, 115, 109, 106, 116, 113, 107, 111, 113, 113, 114, 107, 107, 113, 115, 111, 112, 109, 110, 107, 115, 120, 109, 111, 107, 109, 114, 112, 108, 118, 113, 109, 114, 110, 108, 110, 109, 113, 118, 107, 106, 107, 115, 109, 110, 113, 109, 112, 97, 108, 102, 109, 109, 112, 113, 110, 108, 111, 112, 114, 111, 110, 111, 108, 113, 112, 110, 106, 110, 116, 110, 106, 111, 107, 111, 108, 108, 112, 117, 112, 112, 109, 111, 111, 113, 110, 110, 110, 110, 110, 116, 111, 108, 110, 118, 103, 112, 111, 109, 114, 112, 111, 116, 107, 111, 116, 109, 109, 113, 112, 106, 109, 112, 111, 113, 107, 112, 112, 109, 115, 110, 109, 108, 110, 113, 112, 109, 111, 108, 112, 111, 111, 118, 115, 99, 111, 111, 110, 112, 110, 115, 109, 108, 111, 110, 107, 113, 108, 109, 108, 111, 105, 113, 111, 107, 108, 110, 99, 110, 107, 108, 115, 106, 112, 108, 109, 108, 106, 110, 109, 109, 112, 115, 109, 114, 106, 108, 108, 110, 95, 109, 112, 108, 108, 109, 108, 106, 113, 111, 114, 106, 113, 110, 101, 111, 108, 112, 113, 111, 108, 109, 111, 115, 112, 110, 111, 109, 108, 112, 115, 110, 111, 112, 107, 109, 108, 114, 110, 111, 109, 116, 108, 114, 111, 113, 110, 108, 93, 107, 106, 111, 109, 108, 120, 103, 109, 107, 115, 108, 113, 107, 113, 110, 107, 113, 113, 106, 108, 116, 112, 112, 105, 103, 110, 113, 123, 113, 119, 113, 103, 114, 111, 111, 110, 111, 111, 108, 110, 111, 110, 110, 108, 108, 107, 110, 111, 113, 113, 115, 111, 112, 112, 109, 114, 110, 111, 114, 109, 105, 113, 110, 106, 113, 117, 106, 107, 110, 113, 111, 107, 111, 109, 112, 115, 109, 108, 112, 112, 106, 108, 109, 110, 106, 103, 110, 109, 111, 111, 112, 111, 109, 111, 115, 116, 112, 106, 108, 112, 110, 105, 110, 112, 108, 108, 114, 73, 103, 115, 108, 105, 111, 110, 108, 111, 112, 108, 126, 110, 107, 115, 102, 108, 113, 109, 105, 104, 113, 106, 110, 110, 105, 111, 111, 101, 138, 112, 111, 108, 111, 111, 111, 110, 106, 110, 106, 110, 110, 111, 109, 113, 110, 111, 111, 112, 108, 111, 109, 116, 114, 111, 125, 110, 113, 112, 112, 122, 113, 116, 110, 114, 115, 114, 114, 114, 113, 113, 112, 106, 113, 115, 110, 112, 110, 109, 109, 109, 112, 113, 110, 111, 112, 115, 115, 107, 110, 108, 113, 110, 108, 119, 111, 112, 105, 109, 111, 109, 114, 115, 115, 112, 111, 113, 115, 108, 113, 107, 115, 117, 112, 113, 103, 100, 113, 114, 108, 108, 112, 109, 111, 114, 109, 111, 112, 114, 103, 112, 107, 117, 115, 111, 112, 109, 109, 111, 110, 108, 108, 108, 107, 105, 111, 108, 120, 120, 114, 115, 111, 113, 110, 106, 112, 106, 108, 106, 109, 110, 107, 110, 111, 107, 112, 112, 111, 108, 114, 110, 108, 105, 113, 112, 111, 113, 107, 109, 110, 107, 115, 109, 107, 105, 109, 116, 109, 119, 112, 105, 103, 108, 85, 107, 107, 105, 109, 109, 110, 102, 111, 110, 108, 114, 109, 105, 106, 109, 115, 110, 110, 111, 112, 111, 113, 114, 111, 107, 111, 116, 107, 113, 109, 108, 110, 108, 109, 107, 115, 115, 105, 112, 118, 106, 116, 109, 111, 107, 113, 112, 111, 114, 110, 111, 108, 119, 120, 113, 107, 110, 115, 110, 115, 110, 108, 105, 109, 116, 111, 107, 110, 101, 110, 110, 108, 114, 112, 110, 107, 109, 107, 114, 110, 110, 105, 107, 110, 108, 110, 110, 114, 113, 109, 110, 108, 114, 108, 112, 128, 110, 106, 105, 116, 112, 106, 113, 106, 112, 112, 103, 112, 112, 109, 109, 112, 106, 113, 114, 109, 94, 109, 114, 107, 112, 110, 116, 109, 108, 108, 111, 113, 116, 109, 109, 107, 109, 115, 106, 118, 107, 113, 104, 112, 112, 110, 109, 107, 112, 112, 109, 109, 111, 111, 120, 107, 106, 107, 106, 115, 107, 111, 110, 119, 110, 113, 113, 111, 111, 112, 110, 110, 115, 112, 107, 120, 107, 114, 111, 113, 112, 112, 113, 114, 108, 113, 111, 112, 111, 112, 111, 112, 108, 109, 106, 114, 114, 109, 113, 109, 104, 111, 104, 108, 93, 109, 105, 121, 111, 109, 104, 109, 117, 111, 115, 116, 108, 111, 112, 107, 114, 109, 115, 111, 93, 120, 110, 109, 112, 112, 100, 106, 115, 115, 98, 113, 105, 111, 112, 107, 113, 117, 108, 106, 117, 113, 111, 108, 107, 102, 122, 107, 111, 100, 108, 120, 114, 104, 112, 104, 100, 105, 110, 117, 107, 111, 110, 110, 109, 117, 104, 111, 116, 110, 108, 112, 105, 106, 111, 111, 104, 96, 105, 108, 117, 113, 98, 100, 98, 116, 104, 93, 112, 120, 104, 119, 107, 111, 113, 110, 107, 111, 106, 116, 107, 114, 103, 113, 106, 115, 114, 121, 121, 112, 111, 113, 117, 105, 113, 117, 104, 115, 110, 116, 110, 113, 120, 109, 107, 116, 106, 108, 114, 106, 106, 113, 128, 111, 97, 113, 96, 114, 109, 110, 97, 119, 113, 108, 110, 108, 107, 114, 111, 106, 107, 105, 115, 119, 112, 110, 104, 107, 107, 98, 102, 111, 107, 114, 115, 107, 113, 107, 115, 98, 110, 105, 107, 109, 116, 107, 110, 108, 113, 114, 118, 106, 118, 109, 111, 112, 108, 114, 111, 102, 105, 100, 118, 110, 101, 102, 113, 108, 115, 112, 99, 103, 107, 117, 122, 113, 120, 112, 109, 105, 111, 106, 97, 117, 96, 109, 115, 110, 109, 104, 113, 116, 108, 111, 111, 103, 104, 113, 105, 115, 102, 121, 107, 114, 109, 109, 112, 115, 107, 120, 131, 117, 112, 104, 108, 121, 122, 108, 119, 113, 104, 103, 114, 102, 113, 104, 114, 98, 103, 117, 121, 111, 108, 113, 112, 109, 105, 111, 111, 109, 112, 107, 120, 114, 98, 99, 101, 110, 124, 124, 110, 126, 112, 108, 115, 114, 115, 113, 112, 126, 105, 117, 110, 117, 108, 107, 111, 91, 114, 97, 116, 117, 112, 108, 120, 103, 108, 99, 115, 112, 109, 107, 100, 115, 115, 104, 108, 112, 109, 113, 107, 101, 100, 117, 105, 106, 112, 109, 110, 109, 115, 139, 105, 121, 114, 110, 115, 105, 111, 105, 111, 103, 112, 106, 110, 115, 105, 109, 104, 117, 105, 107, 102, 112, 109, 112, 114, 109, 116, 113, 111, 113, 105, 104, 109, 107, 104, 107, 113, 114, 111, 111, 108, 116, 130, 110, 114, 111, 104, 109, 115, 124, 116, 119, 111, 111, 110, 115, 110, 120, 118, 122, 115, 112, 104, 107, 108, 112, 123, 115, 103, 117, 113, 108, 110, 110, 114, 116, 106, 105, 128, 104, 108, 113, 114, 115, 109, 107, 102, 109, 105, 111, 115, 121, 97, 102, 111, 113, 119, 112, 110, 118, 106, 111, 113, 113, 111, 101, 115, 107, 111, 110, 106, 114, 119, 108, 94, 111, 110, 105, 114, 106, 99, 115, 117, 109, 116, 106, 107, 114, 121, 107, 109, 109, 107, 101, 106, 107, 102, 116, 109, 110, 112, 103, 113, 109, 95, 112, 111, 101, 104, 109, 109, 111, 111, 110, 109, 111, 109, 111, 105, 110, 113, 118, 114, 100, 105, 122, 117, 112, 107, 99, 112, 111, 112, 104, 112, 120, 116, 113, 107, 140, 105, 110, 117, 111, 123, 109, 117, 106, 101, 111, 107, 105, 104, 107, 111, 119, 111, 109, 109, 112, 109, 108, 107, 116, 107, 106, 104, 109, 117, 116, 115, 109, 107, 109, 117, 113, 113, 107, 110, 116, 112, 103, 114, 103, 107, 110, 104, 102, 104, 112, 116, 109, 103, 108, 115, 112, 109, 109, 113, 109, 112, 120, 109, 108, 125, 113, 101, 107, 109, 102, 108, 101, 107, 112, 113, 109, 111, 104, 118, 114, 89, 102, 112, 118, 119, 104, 112, 100, 112, 110, 106, 104, 116, 112, 117, 106, 109, 106, 102, 113, 103, 112, 125, 107, 112, 116, 82, 107, 120, 116, 106, 112, 105, 104, 112, 107, 109, 127, 107, 114, 107, 107, 111, 114, 113, 102, 107, 104, 110, 109, 109, 107, 104, 110, 109, 116, 101, 106, 109, 117, 109, 111, 104, 115, 115, 121, 115, 110, 104, 108, 112, 99, 108, 101, 113, 91, 95, 112, 105, 109, 120, 121, 106, 105, 111, 108, 108, 95, 116, 103, 110, 102, 105, 111, 109, 113, 98, 116, 111, 109, 110, 108, 116, 126, 114, 123, 114, 93, 114, 104, 104, 109, 103, 111, 105, 106, 110, 110, 108, 113, 106, 104, 116, 110, 104, 112, 105, 103, 113, 97, 107, 109, 107, 106, 111, 106, 107, 106, 113, 108, 120, 109, 116, 105, 109, 110, 106, 113, 115, 111, 105, 107, 110, 99, 112, 105, 119, 112, 109, 107, 112, 118, 104, 113, 113, 103, 128, 105, 105, 108, 103, 115, 107, 111, 113, 103, 111, 130, 103, 110, 113, 116, 114, 111, 103, 103, 106, 111, 116, 112, 109, 111, 114, 105, 108, 102, 104, 102, 121, 113, 105, 111, 115, 107, 103, 113, 114, 106, 110, 106, 98, 109, 121, 108, 97, 116, 112, 112, 110, 112, 101, 104, 105, 104, 115, 105, 93, 126, 110, 109, 108, 111, 115, 112, 105, 116, 116, 102, 112, 110, 104, 112, 107, 117, 106, 115, 115, 102, 108, 110, 115, 102, 109, 106, 101, 111, 111, 114, 102, 102, 108, 109, 104, 114, 115, 107, 116, 117, 106, 113, 123, 110, 113, 111, 106, 111, 109, 123, 112, 118, 114, 109, 117, 111, 124, 112, 97, 116, 109, 115, 108, 91, 109, 116, 107, 116, 102, 108, 105, 105, 106, 103, 113, 106, 110, 119, 117, 112, 109, 110, 115, 109, 112, 126, 116, 105, 112, 100, 111, 112, 118, 112, 113, 109, 109, 110, 110, 108, 107, 117, 109, 93, 104, 104, 103, 103, 113, 103, 106, 111, 107, 100, 104, 106, 109, 113, 118, 99, 109, 108, 109, 111, 103, 105, 116, 111, 107, 107, 119, 107, 108, 112, 110, 117, 106, 93, 112, 122, 110, 108, 108, 105, 115, 108, 111, 110, 112, 154, 109, 105, 111, 109, 109, 117, 104, 109, 99, 109, 114, 105, 118, 114, 118, 118, 102, 116, 110, 104, 112, 110, 113, 106, 96, 106, 113, 111, 109, 120, 110, 121, 95, 108, 109, 104, 119, 99, 106, 105, 110, 105, 106, 108, 109, 113, 103, 118, 114, 111, 103, 104, 112, 115, 99, 117, 106, 117, 122, 108, 109, 100, 115, 115, 113, 112, 112, 106, 109, 102, 105, 104, 104, 113, 107, 107, 112, 115, 114, 110, 109, 112, 96, 110, 102, 116, 109, 98, 113, 113, 112, 113, 102, 111, 112, 118, 117, 108, 93, 112, 111, 130, 115, 115, 106, 116, 116, 114, 121, 113, 104, 117, 112, 124, 104, 118, 114, 104, 115, 104, 123, 109, 110, 119, 108, 110, 113, 107, 108, 109, 119, 110, 117, 100, 112, 127, 108, 109, 104, 118, 112, 94, 109, 113, 110, 109, 100, 111, 128, 129, 114, 108, 115, 129, 100, 113, 107, 112, 112, 104, 112, 109, 109, 106, 120, 101, 111, 115, 118, 109, 122, 103, 99, 107, 114, 113, 108, 108, 103, 108, 107, 107, 109, 115, 107, 117, 112, 113, 106, 101, 114, 105, 115, 108, 117, 105, 110, 123, 109, 117, 112, 115, 112, 110, 115, 102, 101, 99, 126, 115, 105, 106, 101, 104, 116, 116, 115, 116, 121, 104, 117, 118, 116, 103, 88, 98, 108, 101, 116, 99, 109, 108, 102, 103, 106, 112, 109, 110, 106, 109, 106, 114, 105, 107, 101, 104, 106, 109, 108, 119, 109, 114, 97, 107, 123, 106, 105, 110, 115, 110, 110, 110, 110, 101, 107, 111, 104, 129, 115, 117, 101, 114, 109, 114, 112, 117, 101, 103, 107, 107, 98, 94, 113, 109, 105, 104, 105, 111, 105, 90, 116, 110, 114, 115, 107, 128, 104, 104, 127, 107, 110, 108, 103, 117, 113, 105, 104, 105, 111, 105, 116, 120, 110, 108, 101, 116, 110, 114, 105, 111, 102, 114, 113, 115, 108, 114, 99, 110, 111, 97, 100, 102, 119, 123, 117, 109, 104, 103, 111, 106, 122, 110, 107, 111, 98, 111, 103, 103, 112, 111, 109, 120, 114, 119, 112, 101, 124, 113, 113, 114, 118, 113, 103, 127, 114, 107, 105, 106, 107, 97, 119, 117, 111, 95, 113, 108, 107, 122, 111, 87, 108, 113, 106, 112, 120, 108, 113, 110, 117, 101, 114, 127, 104, 111, 108, 113, 111, 108, 98, 103, 107, 103, 107, 121, 105, 116, 104, 110, 103, 116, 105, 108, 112, 109, 107, 105, 119, 108, 127, 106, 101, 105, 113, 108, 108, 122, 108, 119, 110, 108, 117, 111, 103, 111, 103, 101, 116, 105, 108, 114, 115, 103, 113, 105, 119, 112, 117, 110, 103, 116, 102, 120, 109, 112, 126, 108, 108, 138, 109, 107, 107, 100, 102, 112, 104, 89, 119, 103, 112, 105, 110, 108, 106, 102, 108, 109, 107, 116, 115, 108, 104, 104, 118, 98, 118, 121, 123, 98, 113, 112, 123, 106, 112, 118, 109, 100, 108, 103, 108, 111, 102, 112, 105, 116, 114, 112, 104, 105, 106, 115, 110, 110, 110, 116, 117, 97, 141, 119, 105, 106, 100, 106, 111, 109, 93, 110, 126, 108, 107, 111, 107, 110, 111, 110, 118, 113, 116, 109, 127, 123, 122, 106, 107, 119, 105, 100, 115, 107, 114, 111, 93, 115, 95, 117, 104, 108, 115, 101, 116, 107, 117, 128, 105, 110, 104, 116, 111, 100, 110, 114, 114, 103, 112, 109, 113, 114, 104, 115, 107, 104, 108, 114, 108, 115, 112, 103, 108, 105, 110, 114, 113, 111, 113, 101, 114, 114, 106, 112, 96, 118, 104, 111, 120, 108, 112, 113, 103, 114, 107, 113, 111, 108, 115, 109, 117, 106, 111, 95, 106, 105, 101, 107, 114, 109, 103, 111, 107, 107, 111, 112, 104, 115, 101, 117, 110, 105, 111, 112, 110, 111, 112, 106, 114, 105, 121, 116, 106, 120, 116, 110, 107, 107, 107, 111, 106, 107, 86, 112, 114, 112, 111, 102, 106, 109, 105, 107, 109, 108, 113, 106, 106, 114, 110, 121, 115, 103, 101, 118, 100, 102, 113, 104, 109, 115, 113, 118, 107, 113, 114, 108, 110, 110, 107, 111, 113, 106, 113, 109, 103, 112, 108, 112, 115, 106, 103, 112, 115, 116, 112, 110, 110, 115, 111, 112, 109, 106, 107, 111, 108, 116, 97, 114, 113, 113, 112, 107, 108, 93, 108, 105, 111, 109, 109, 115, 119, 109, 111, 109, 108, 109, 115, 110, 115, 109, 116, 113, 107, 106, 106, 115, 105, 126, 108, 105, 111, 121, 110, 109, 107, 108, 107, 115, 108, 115, 103, 108, 100, 114, 108, 117, 112, 109, 108, 122, 113, 113, 121, 111, 112, 103, 111, 103, 106, 109, 109, 108, 101, 109, 115, 110, 118, 111, 108, 106, 96, 110, 109, 105, 109, 113, 111, 108, 98, 112, 107, 113, 109, 111, 115, 110, 105, 135, 127, 110, 120, 114, 115, 111, 108, 107, 110, 109, 114, 115, 115, 112, 104, 109, 106, 105, 105, 102, 109, 126, 111, 115, 109, 111, 109, 111, 114, 108, 109, 110, 109, 113, 104, 110, 118, 105, 111, 109, 108, 114, 117, 105, 111, 105, 107, 108, 111, 112, 111, 111, 109, 122, 108, 110, 116, 111, 117, 94, 92, 120, 111, 101, 112, 108, 110, 113, 114, 108, 109, 110, 111, 113, 106, 104, 119, 111, 109, 100, 111, 107, 105, 104, 106, 108, 114, 121, 107, 116, 108, 101, 105, 113, 112, 105, 103, 112, 110, 110, 107, 106, 112, 126, 113, 108, 114, 115, 113, 108, 105, 110, 111, 111, 108, 107, 104, 113, 107, 113, 105, 101, 118, 105, 110, 112, 111, 118, 110, 107, 118, 116, 111, 107, 99, 111, 110, 109, 110, 109, 109, 121, 109, 114, 113, 109, 103, 105, 118, 113, 111, 113, 113, 110, 126, 111, 110, 103, 109, 115, 106, 113, 109, 112, 110, 109, 113, 116, 90, 119, 103, 109, 111, 108, 112, 110, 111, 112, 116, 112, 111, 105, 112, 129, 113, 110, 109, 107, 91, 115, 113, 83, 127, 111, 116, 119, 113, 107, 112, 112, 113, 98, 108, 113, 113, 121, 114, 111, 113, 115, 96, 111, 99, 110, 115, 118, 111, 110, 108, 110, 100, 105, 113, 112, 107, 107, 108, 112, 117, 110, 105, 116, 105, 115, 109, 108, 98, 107, 106, 114, 107, 107, 106, 109, 112, 115, 111, 110, 108, 116, 110, 106, 107, 108, 112, 111, 110, 100, 104, 115, 111, 109, 111, 109, 103, 122, 109, 107, 113, 112, 109, 108, 108, 113, 104, 119, 109, 113, 106, 109, 112, 111, 108, 110, 112, 111, 111, 106, 111, 111, 108, 107, 110, 117, 112, 100, 109, 117, 103, 108, 112, 112, 111, 113, 110, 107, 121, 109, 112, 108, 107, 112, 108, 112, 112, 109, 109, 111, 109, 113, 111, 111, 108, 110, 110, 114, 113, 110, 110, 119, 106, 109, 125, 110, 104, 111, 107, 110, 108, 109, 105, 110, 108, 108, 101, 110, 110, 100, 108, 109, 106, 108, 109, 111, 123, 110, 102, 103, 108, 108, 113, 99, 113, 110, 111, 110, 105, 106, 113, 108, 110, 109, 113, 117, 111, 108, 106, 112, 112, 109, 106, 103, 104, 111, 111, 114, 109, 107, 110, 110, 109, 106, 112, 111, 112, 108, 109, 113, 113, 110, 114, 108, 107, 109, 110, 113, 113, 108, 107, 116, 109, 111, 111, 108, 108, 110, 108, 118, 113, 104, 90, 113, 111, 110, 108, 107, 111, 108, 108, 113, 106, 111, 116, 106, 168, 111, 110, 102, 109, 104, 110, 109, 108, 111, 117, 97, 107, 113, 112, 108, 110, 108, 105, 109, 112, 110, 109, 114, 78, 110, 111, 110, 108, 111, 110, 114, 110, 108, 107, 112, 108, 112, 106, 115, 114, 111, 111, 105, 110, 112, 107, 111, 109, 113, 106, 108, 112, 113, 108, 109, 107, 112, 106, 112, 114, 115, 104, 111, 111, 107, 113, 110, 116, 110, 108, 127, 106, 109, 110, 108, 112, 112, 121, 107, 118, 113, 115, 109, 107, 107, 104, 109, 104, 103, 105, 111, 116, 109, 113, 101, 108, 105, 110, 108, 111, 111, 110, 111, 113, 114, 109, 115, 109, 108, 108, 110, 115, 111, 113, 107, 110, 113, 117, 109, 109, 109, 103, 110, 105, 115, 150, 113, 115, 101, 114, 107, 107, 109, 104, 107, 108, 114, 99, 106, 108, 111, 117, 114, 113, 110, 108, 112, 103, 109, 111, 111, 110, 114, 107, 109, 111, 116, 114, 111, 110, 79, 117, 114, 115, 115, 125, 114, 103, 111, 113, 112, 115, 116, 108, 115, 110, 102, 107, 110, 117, 110, 108, 114, 109, 109, 110, 85, 109, 106, 109, 107, 111, 109, 120, 109, 113, 108, 111, 108, 102, 115, 105, 101, 113, 113, 113, 109, 108, 112, 96, 108, 110, 108, 106, 110, 113, 111, 109, 100, 107, 114, 112, 113, 111, 112, 116, 101, 107, 107, 108, 108, 117, 110, 110, 132, 110, 109, 107, 115, 108, 113, 107, 109, 108, 111, 88, 111, 107, 113, 112, 115, 116, 109, 106, 111, 110, 113, 110, 107, 122, 116, 111, 105, 111, 110, 115, 111, 111, 107, 109, 110, 104, 93, 112, 114, 115, 114, 109, 106, 101, 111, 106, 108, 106, 111, 107, 111, 111, 111, 105, 109, 106, 106, 107, 118, 110, 114, 110, 109, 109, 108, 106, 106, 105, 109, 106, 109, 110, 106, 110, 103, 102, 109, 116, 107, 107, 111, 113, 110, 114, 112, 112, 107, 108, 110, 110, 108, 108, 108, 112, 109, 108, 110, 107, 107, 109, 109, 112, 112, 111, 101, 117, 107, 114, 98, 110, 107, 117, 101, 113, 115, 118, 114, 123, 107, 119, 109, 110, 103, 109, 103, 117, 96, 111, 103, 105, 108, 112, 107, 107, 111, 109, 106, 109, 110, 109, 99, 107, 114, 113, 108, 104, 112, 109, 106, 108, 109, 115, 120, 107, 108, 105, 106, 108, 100, 109, 106, 110, 118, 108, 114, 113, 109, 107, 115, 103, 113, 107, 112, 117, 105, 95, 103, 112, 107, 107, 135, 110, 104, 97, 103, 105, 108, 112, 109, 111, 111, 113, 114, 98, 113, 107, 109, 110, 104, 113, 104, 113, 105, 118, 110, 108, 108, 119, 107, 111, 121, 103, 110, 112, 109, 108, 129, 113, 99, 97, 109, 107, 102, 111, 110, 117, 116, 120, 115, 111, 113, 114, 114, 118, 109, 104, 100, 105, 108, 109, 118, 116, 111, 108, 113, 109, 117, 116, 102, 111, 107, 111, 106, 102, 117, 107, 117, 113, 115, 114, 105, 113, 111, 113, 115, 117, 105, 109, 105, 103, 101, 108, 102, 109, 113, 110, 128, 110, 109, 100, 113, 114, 107, 112, 110, 108, 116, 112, 105, 108, 110, 113, 115, 113, 110, 109, 105, 117, 104, 105, 103, 104, 120, 120, 109, 111, 112, 105, 110, 106, 110, 111, 113, 107, 108, 109, 114, 103, 115, 119, 101, 114, 109, 104, 105, 104, 106, 110, 104, 108, 106, 113, 112, 107, 107, 110, 111, 109, 115, 108, 116, 112, 113, 106, 112, 118, 102, 105, 106, 106, 127, 106, 104, 105, 103, 108, 108, 102, 109, 105, 116, 109, 105, 105, 98, 111, 113, 113, 108, 107, 112, 109, 116, 103, 94, 104, 100, 105, 110, 105, 106, 114, 111, 109, 115, 104, 113, 116, 112, 110, 105, 111, 117, 112, 106, 103, 99, 108, 107, 118, 112, 103, 112, 106, 106, 105, 106, 109, 108, 98, 113, 106, 102, 104, 119, 114, 117, 103, 117, 107, 108, 99, 112, 99, 116, 130, 111, 124, 101, 109, 108, 102, 102, 113, 120, 105, 106, 105, 104, 112, 109, 101, 110, 124, 104, 112, 102, 104, 94, 107, 113, 109, 109, 111, 107, 114, 112, 113, 98, 102, 101, 110, 98, 103, 102, 103, 109, 110, 105, 110, 118, 100, 119, 112, 99, 105, 109, 92, 107, 107, 101, 111, 100, 107, 105, 110, 105, 109, 118, 116, 108, 100, 110, 113, 109, 104, 102, 108, 115, 107, 114, 113, 109, 112, 106, 109, 107, 115, 104, 112, 109, 102, 120, 115, 100, 114, 111, 116, 107, 114, 117, 106, 120, 110, 106, 109, 115, 115, 107, 108, 106, 105, 115, 114, 119, 121, 105, 107, 115, 107, 115, 127, 114, 108, 99, 111, 115, 117, 113, 129, 110, 114, 107, 104, 105, 109, 113, 105, 124, 104, 119, 107, 111, 111, 108, 109, 102, 101, 106, 110, 103, 116, 130, 107, 103, 110, 120, 106, 107, 101, 102, 127, 103, 100, 111, 97, 103, 107, 105, 110, 114, 120, 114, 112, 112, 113, 105, 107, 112, 116, 101, 116, 111, 101, 106, 110, 106, 109, 114, 105, 112, 108, 117, 103, 113, 113, 113, 111, 116, 107, 106, 111, 108, 111, 109, 113, 118, 112, 112, 113, 110, 114, 102, 131, 111, 79, 98, 109, 117, 106, 109, 109, 110, 107, 111, 109, 112, 115, 109, 111, 105, 109, 113, 125, 119, 105, 110, 111, 112, 109, 105, 113, 96, 115, 108, 111, 116, 112, 106, 103, 112, 108, 112, 110, 110, 107, 106, 109, 110, 108, 95, 116, 120, 111, 104, 110, 113, 109, 91, 109, 108, 113, 110, 104, 112, 108, 107, 101, 110, 105, 103, 106, 97, 102, 108, 108, 107, 121, 106, 113, 112, 104, 111, 118, 109, 99, 110, 111, 108, 109, 104, 110, 103, 103, 107, 110, 108, 105, 105, 110, 120, 113, 105, 112, 113, 107, 114, 99, 105, 114, 112, 104, 112, 112, 118, 98, 107, 115, 94, 114, 117, 115, 113, 106, 110, 116, 111, 108, 105, 107, 114, 106, 119, 113, 105, 111, 109, 112, 109, 104, 108, 107, 113, 111, 109, 110, 109, 111, 107, 116, 109, 102, 109, 109, 115, 104, 112, 106, 107, 112, 115, 112, 107, 110, 112, 106, 110, 124, 116, 106, 112, 118, 109, 118, 113, 113, 113, 112, 109, 108, 110, 108, 101, 109, 116, 107, 106, 109, 116, 103, 115, 114, 114, 110, 110, 107, 114, 114, 111, 109, 138, 104, 109, 112, 108, 107, 111, 107, 104, 110, 109, 118, 100, 108, 109, 119, 106, 110, 115, 72, 107, 108, 109, 105, 112, 110, 113, 116, 113, 112, 110, 115, 116, 112, 113, 111, 102, 126, 111, 111, 112, 113, 108, 113, 114, 110, 110, 110, 116, 116, 111, 111, 110, 112, 111, 103, 107, 111, 123, 93, 107, 103, 104, 111, 111, 110, 111, 112, 112, 109, 102, 110, 125, 114, 106, 103, 108, 115, 112, 108, 107, 106, 114, 111, 106, 108, 113, 108, 115, 111, 110, 110, 113, 106, 111, 112, 113, 107, 101, 107, 108, 108, 116, 111, 111, 112, 114, 107, 109, 105, 107, 110, 107, 107, 103, 102, 112, 94, 112, 114, 112, 115, 111, 114, 112, 101, 110, 107, 107, 110, 117, 113, 118, 115, 111, 111, 114, 108, 109, 110, 119, 113, 98, 108, 110, 117, 113, 109, 111, 118, 123, 99, 108, 112, 117, 114, 113, 102, 98, 107, 106, 118, 109, 101, 106, 105, 114, 120, 104, 117, 106, 108, 109, 108, 109, 114, 108, 106, 116, 105, 112, 113, 115, 107, 108, 109, 104, 115, 116, 116, 107, 111, 103, 117, 116, 109, 114, 112, 113, 113, 109, 111, 146, 117, 99, 108, 111, 108, 107, 112, 109, 111, 113, 116, 108, 114, 110, 96, 103, 113, 104, 107, 106, 107, 114, 106, 119, 112, 115, 109, 108, 113, 111, 111, 111, 110, 105, 112, 112, 111, 107, 113, 110, 111, 113, 113, 112, 108, 111, 113, 111, 103, 108, 113, 107, 117, 117, 110, 110, 106, 111, 113, 105, 110, 110, 112, 109, 107, 130, 112, 112, 113, 120, 110, 110, 130, 98, 114, 105, 109, 97, 110, 110, 116, 108, 115, 116, 132, 108, 118, 114, 118, 118, 107, 110, 116, 102, 109, 101, 110, 110, 103, 106, 110, 105, 107, 100, 110, 108, 112, 111, 114, 110, 113, 112, 103, 106, 103, 112, 120, 102, 111, 111, 107, 117, 108, 113, 118, 100, 121, 109, 120, 112, 113, 111, 110, 124, 115, 106, 109, 104, 117, 110, 110, 106, 110, 105, 100, 111, 118, 115, 103, 107, 106, 93, 104, 109, 111, 106, 108, 113, 117, 129, 100, 107, 104, 108, 108, 109, 111, 107, 117, 103, 106, 117, 110, 107, 121, 119, 112, 115, 108, 101, 109, 103, 112, 109, 106, 110, 109, 110, 111, 114, 128, 115, 109, 113, 114, 112, 110, 107, 118, 112, 108, 103, 107, 117, 111, 110, 116, 110, 112, 108, 107, 107, 111, 110, 98, 110, 110, 96, 110, 113, 108, 103, 127, 112, 108, 108, 110, 113, 107, 110, 106, 102, 104, 112, 106, 106, 103, 107, 99, 109, 111, 106, 107, 112, 110, 109, 109, 112, 127, 111, 125, 117, 111, 114, 109, 108, 109, 111, 113, 113, 105, 104, 112, 129, 114, 100, 114, 119, 112, 109, 107, 117, 107, 108, 114, 110, 116, 112, 111, 116, 134, 113, 106, 111, 121, 115, 109, 114, 106, 98, 109, 117, 112, 116, 108, 100, 109, 107, 111, 112, 109, 113, 112, 107, 106, 109, 109, 105, 107, 107, 115, 106, 110, 110, 114, 112, 111, 106, 113, 115, 118, 114, 107, 114, 108, 113, 112, 108, 107, 111, 114, 114, 101, 113, 110, 111, 112, 111, 112, 104, 113, 106, 103, 108, 116, 107, 112, 118, 111, 110, 127, 110, 106, 112, 111, 109, 111, 119, 115, 101, 116, 108, 116, 108, 107, 111, 107, 109, 105, 99, 102, 113, 113, 120, 113, 113, 111, 110, 114, 111, 107, 102, 105, 108, 110, 112, 109, 116, 114, 111, 110, 117, 102, 116, 98, 101, 113, 111, 106, 115, 114, 99, 111, 113, 107, 107, 108, 111, 116, 112, 111, 105, 105, 114, 111, 111, 105, 104, 112, 113, 113, 109, 108, 111, 123, 116, 113, 112, 115, 111, 109, 109, 110, 106, 106, 103, 113, 105, 117, 108, 110, 112, 110, 99, 118, 111, 113, 122, 109, 110, 109, 110, 108, 109, 109, 110, 112, 108, 111, 104, 117, 108, 117, 109, 108, 109, 106, 113, 105, 106, 110, 110, 115, 87, 113, 97, 114, 112, 113, 106, 112, 110, 118, 104, 115, 113, 107, 109, 103, 106, 100, 99, 111, 111, 109, 113, 112, 102, 104, 113, 105, 103, 121, 109, 105, 121, 113, 106, 113, 113, 111, 112, 115, 118, 107, 112, 116, 118, 103, 108, 107, 104, 110, 116, 110, 107, 112, 115, 118, 114, 111, 112, 110, 109, 121, 101, 107, 108, 110, 108, 119, 116, 114, 110, 114, 114, 108, 112, 108, 112, 112, 105, 110, 114, 120, 116, 108, 104, 118, 115, 112, 111, 107, 117, 116, 108, 111, 116, 113, 109, 111, 102, 111, 116, 109, 119, 110, 104, 108, 112, 107, 105, 114, 105, 110, 108, 111, 106, 107, 107, 106, 109, 110, 111, 109, 110, 108, 116, 124, 115, 106, 116, 110, 108, 111, 107, 108, 106, 107, 112, 110, 113, 114, 108, 122, 111, 113, 102, 119, 108, 107, 116, 122, 117, 115, 108, 97, 103, 103, 106, 101, 109, 107, 114, 117, 103, 110, 108, 116, 101, 113, 103, 110, 106, 105, 109, 131, 106, 93, 116, 96, 109, 112, 105, 115, 112, 101, 114, 107, 114, 112, 110, 114, 111, 109, 107, 108, 94, 110, 112, 99, 114, 117, 114, 109, 112, 115, 116, 109, 105, 113, 108, 115, 105, 111, 105, 99, 110, 111, 106, 98, 110, 104, 107, 99, 121, 96, 112, 104, 126, 115, 109, 103, 117, 128, 110, 106, 115, 105, 109, 107, 111, 104, 121, 117, 107, 109, 104, 112, 107, 108, 98, 99, 102, 121, 112, 113, 105, 113, 115, 112, 113, 107, 108, 119, 109, 109, 94, 106, 100, 115, 106, 96, 120, 117, 113, 106, 113, 104, 116, 124, 110, 105, 105, 120, 99, 108, 118, 109, 117, 106, 115, 117, 104, 118, 107, 103, 111, 109, 114, 101, 118, 116, 113, 121, 108, 119, 109, 111, 110, 109, 109, 112, 115, 110, 115, 111, 111, 102, 103, 111, 107, 99, 104, 106, 101, 115, 111, 109, 108, 107, 105, 106, 116, 107, 110, 112, 114, 110, 101, 112, 99, 110, 121, 123, 111, 101, 103, 111, 107, 105, 99, 109, 112, 116, 102, 114, 106, 108, 101, 113, 102, 110, 105, 106, 108, 97, 100, 111, 114, 103, 111, 111, 110, 107, 104, 107, 124, 109, 102, 113, 104, 112, 105, 102, 94, 125, 100, 129, 118, 107, 113, 105, 115, 103, 96, 107, 114, 131, 107, 105, 105, 95, 110, 115, 108, 113, 114, 109, 102, 115, 110, 106, 112, 102, 110, 108, 104, 104, 99, 113, 116, 104, 114, 108, 107, 114, 115, 117, 109, 109, 95, 109, 113, 108, 115, 113, 104, 94, 103, 105, 96, 110, 107, 112, 106, 109, 111, 109, 116, 118, 107, 116, 120, 102, 119, 115, 109, 120, 120, 113, 110, 107, 104, 113, 101, 105, 109, 95, 112, 117, 101, 113, 120, 108, 114, 117, 113, 101, 112, 116, 111, 110, 101, 107, 117, 108, 112, 109, 111, 107, 100, 108, 111, 119, 107, 107, 116, 102, 121, 110, 97, 108, 121, 113, 112, 113, 118, 109, 114, 118, 101, 102, 98, 108, 118, 107, 110, 109, 119, 106, 103, 111, 112, 116, 102, 111, 112, 117, 111, 107, 102, 112, 107, 108, 118, 97, 132, 110, 102, 111, 106, 108, 121, 108, 117, 111, 104, 107, 118, 115, 100, 116, 112, 107, 115, 111, 112, 104, 107, 106, 112, 104, 115, 86, 111, 106, 111, 120, 109, 118, 111, 121, 110, 112, 104, 110, 106, 108, 108, 123, 110, 110, 116, 110, 109, 106, 105, 108, 85, 112, 108, 104, 124, 102, 114, 110, 107, 118, 105, 115, 110, 113, 110, 109, 103, 111, 110, 112, 114, 98, 113, 101, 107, 125, 110, 109, 111, 113, 103, 116, 89, 101, 119, 112, 115, 122, 109, 117, 105, 106, 116, 112, 111, 115, 105, 113, 102, 102, 110, 116, 109, 112, 110, 107, 119, 110, 107, 116, 127, 112, 111, 122, 106, 96, 111, 107, 98, 102, 112, 105, 115, 107, 112, 109, 117, 102, 111, 103, 107, 115, 110, 110, 107, 112, 101, 105, 109, 107, 120, 104, 114, 108, 105, 114, 110, 106, 101, 110, 101, 102, 107, 113, 114, 107, 110, 107, 114, 109, 104, 104, 106, 112, 111, 119, 93, 112, 111, 111, 115, 111, 106, 115, 95, 107, 109, 106, 115, 114, 109, 122, 105, 111, 110, 110, 102, 111, 110, 112, 98, 110, 103, 109, 116, 113, 110, 103, 111, 113, 115, 114, 103, 125, 126, 132, 111, 110, 108, 110, 116, 111, 115, 107, 114, 120, 105, 114, 122, 100, 116, 101, 103, 113, 111, 109, 101, 105, 109, 86, 118, 108, 126, 105, 105, 111, 104, 82, 110, 111, 107, 124, 112, 103, 107, 110, 111, 111, 111, 112, 108, 114, 107, 109, 102, 118, 104, 118, 108, 110, 113, 119, 105, 91, 98, 107, 112, 115, 109, 129, 106, 106, 112, 109, 103, 118, 116, 115, 103, 115, 114, 107, 117, 107, 110, 117, 118, 108, 108, 117, 99, 110, 111, 113, 135, 105, 105, 116, 109, 99, 107, 112, 106, 111, 111, 110, 109, 120, 104, 114, 115, 110, 118, 110, 106, 112, 103, 115, 110, 118, 112, 101, 120, 122, 115, 108, 121, 100, 108, 105, 115, 111, 120, 113, 112, 117, 110, 106, 122, 107, 114, 109, 96, 111, 114, 102, 115, 116, 122, 116, 110, 105, 118, 108, 101, 106, 111, 117, 115, 116, 113, 106, 115, 108, 109, 109, 112, 116, 111, 116, 104, 103, 103, 112, 113, 111, 108, 110, 115, 112, 112, 104, 106, 112, 106, 105, 103, 107, 129, 111, 112, 106, 104, 110, 107, 105, 118, 115, 106, 113, 123, 110, 121, 133, 120, 111, 120, 109, 110, 120, 107, 113, 105, 113, 112, 107, 99, 104, 97, 104, 106, 109, 114, 96, 109, 109, 112, 107, 131, 111, 107, 110, 117, 112, 113, 117, 112, 110, 120, 119, 114, 106, 113, 105, 106, 118, 104, 119, 102, 116, 110, 100, 112, 95, 110, 111, 104, 109, 112, 114, 105, 107, 106, 124, 109, 112, 110, 107, 105, 120, 104, 122, 117, 105, 115, 108, 106, 115, 111, 110, 109, 112, 99, 117, 116, 110, 112, 116, 115, 109, 112, 106, 98, 108, 114, 111, 109, 107, 98, 110, 109, 118, 110, 92, 102, 117, 111, 105, 112, 104, 112, 122, 113, 103, 109, 116, 113, 105, 112, 117, 109, 108, 102, 106, 117, 91, 111, 111, 105, 114, 106, 112, 113, 100, 103, 100, 105, 107, 108, 111, 107, 118, 105, 111, 105, 104, 112, 123, 114, 103, 98, 109, 100, 115, 104, 120, 112, 109, 104, 115, 106, 120, 108, 117, 110, 117, 112, 115, 110, 114, 124, 104, 107, 107, 108, 114, 106, 107, 110, 112, 110, 112, 109, 118, 102, 106, 109, 113, 111, 111, 120, 103, 113, 128, 111, 100, 106, 107, 99, 105, 104, 112, 111, 109, 110, 106, 112, 103, 115, 122, 117, 110, 111, 104, 101, 113, 103, 112, 104, 108, 107, 109, 115, 111, 104, 116, 107, 116, 114, 114, 97, 104, 111, 109, 101, 108, 111, 116, 110, 105, 109, 118, 109, 115, 111, 110, 109, 112, 110, 116, 109, 109, 112, 112, 108, 105, 115, 110, 105, 113, 107, 110, 108, 110, 110, 109, 106, 124, 113, 110, 101, 121, 108, 106, 106, 120, 109, 122, 110, 110, 95, 111, 105, 114, 110, 107, 111, 108, 113, 111, 110, 111, 115, 108, 116, 109, 114, 112, 112, 106, 115, 113, 93, 114, 115, 103, 115, 109, 123, 104, 111, 111, 121, 104, 127, 103, 107, 108, 110, 106, 109, 110, 107, 109, 107, 111, 118, 106, 118, 110, 108, 110, 112, 119, 106, 103, 109, 110, 112, 111, 113, 111, 114, 117, 107, 109, 111, 116, 111, 107, 116, 107, 109, 113, 108, 118, 109, 126, 114, 119, 115, 110, 113, 110, 104, 106, 105, 105, 107, 125, 113, 115, 121, 105, 107, 107, 100, 104, 105, 110, 109, 111, 108, 119, 106, 83, 107, 113, 106, 115, 113, 111, 110, 115, 106, 109, 109, 122, 113, 108, 116, 117, 113, 110, 109, 108, 102, 109, 114, 108, 115, 112, 118, 112, 98, 107, 112, 106, 105, 109, 107, 109, 115, 106, 105, 107, 105, 104, 110, 113, 114, 121, 110, 108, 118, 109, 107, 110, 106, 112, 108, 113, 106, 114, 110, 109, 110, 110, 117, 107, 105, 110, 105, 111, 114, 113, 108, 108, 118, 113, 113, 110, 118, 107, 108, 126, 124, 101, 114, 104, 112, 113, 103, 110, 112, 121, 112, 110, 109, 113, 109, 111, 123, 107, 114, 116, 115, 115, 107, 109, 112, 109, 112, 113, 110, 105, 113, 111, 115, 107, 108, 109, 107, 113, 115, 99, 116, 106, 110, 101, 111, 112, 113, 120, 120, 102, 120, 102, 106, 109, 108, 106, 112, 110, 107, 107, 105, 111, 104, 114, 107, 113, 107, 108, 110, 108, 120, 103, 115, 117, 116, 107, 112, 111, 114, 106, 108, 103, 113, 106, 105, 113, 106, 111, 106, 115, 108, 113, 123, 116, 107, 104, 113, 110, 118, 112, 114, 111, 111, 114, 118, 110, 108, 118, 107, 108, 112, 112, 103, 112, 108, 113, 109, 102, 110, 110, 114, 106, 114, 107, 115, 99, 110, 109, 111, 115, 107, 112, 103, 115, 108, 116, 107, 110, 107, 115, 125, 112, 114, 115, 113, 113, 107, 100, 117, 106, 109, 115, 107, 112, 113, 109, 106, 117, 111, 106, 129, 107, 106, 113, 105, 115, 108, 105, 122, 110, 107, 100, 107, 112, 104, 109, 95, 110, 113, 116, 104, 109, 112, 106, 118, 115, 109, 108, 103, 116, 107, 106, 116, 114, 108, 109, 106, 106, 110, 105, 112, 113, 107, 112, 109, 99, 111, 114, 108, 119, 108, 102, 116, 108, 116, 111, 104, 112, 108, 115, 111, 108, 111, 108, 115, 110, 111, 117, 108, 103, 116, 106, 110, 107, 105, 96, 106, 115, 107, 111, 112, 112, 113, 106, 116, 104, 116, 112, 106, 100, 115, 113, 117, 116, 109, 102, 107, 106, 116, 110, 114, 106, 118, 115, 107, 111, 109, 112, 110, 116, 108, 111, 117, 106, 110, 90, 149, 117, 112, 94, 106, 110, 110, 108, 114, 111, 115, 109, 109, 103, 110, 101, 106, 110, 112, 109, 107, 108, 111, 106, 107, 108, 108, 113, 111, 111, 109, 117, 108, 112, 109, 107, 116, 114, 108, 122, 123, 95, 123, 114, 102, 113, 120, 105, 114, 111, 118, 109, 87, 103, 110, 115, 114, 105, 112, 112, 112, 111, 106, 95, 106, 107, 109, 109, 109, 118, 99, 116, 128, 110, 127, 116, 110, 100, 122, 95, 119, 127, 106, 116, 112, 105, 102, 116, 107, 104, 110, 113, 119, 119, 112, 105, 126, 104, 115, 109, 111, 102, 113, 113, 123, 124, 112, 106, 111, 107, 108, 114, 112, 110, 107, 106, 114, 105, 111, 113, 101, 113, 121, 101, 115, 110, 107, 99, 120, 106, 112, 115, 111, 109, 112, 110, 119, 107, 127, 74, 113, 112, 108, 104, 98, 106, 114, 112, 119, 112, 109, 98, 109, 108, 98, 114, 111, 105, 108, 111, 125, 107, 114, 105, 111, 115, 104, 107, 116, 124, 113, 98, 111, 109, 108, 107, 122, 109, 105, 111, 113, 112, 124, 111, 126, 101, 110, 113, 113, 100, 112, 111, 105, 113, 116, 91, 107, 100, 109, 120, 106, 106, 107, 108, 106, 114, 114, 113, 122, 110, 120, 106, 107, 116, 110, 112, 109, 106, 107, 106, 128, 107, 99, 109, 113, 107, 109, 112, 114, 103, 110, 109, 107, 112, 113, 105, 92, 104, 105, 107, 110, 107, 105, 106, 105, 113, 115, 118, 100, 110, 110, 110, 104, 119, 105, 113, 101, 111, 105, 128, 115, 112, 104, 111, 108, 107, 115, 108, 107, 107, 118, 114, 107, 110, 100, 122, 111, 106, 107, 109, 107, 113, 115, 115, 108, 119, 103, 112, 109, 111, 110, 115, 113, 112, 110, 109, 105, 99, 116, 116, 114, 113, 109, 103, 116, 108, 106, 109, 110, 104, 111, 110, 118, 110, 112, 119, 107, 108, 99, 109, 109, 104, 107, 111, 113, 114, 112, 106, 105, 106, 115, 104, 115, 118, 114, 109, 113, 111, 99, 102, 107, 109, 106, 108, 113, 110, 105, 112, 118, 109, 110, 110, 111, 109, 114, 110, 109, 111, 112, 104, 107, 118, 122, 106, 113, 108, 114, 113, 106, 115, 117, 104, 114, 117, 113, 111, 111, 111, 121, 98, 105, 106, 123, 110, 110, 106, 109, 108, 104, 104, 116, 107, 107, 102, 106, 117, 63, 106, 108, 101, 116, 112, 113, 109, 95, 107, 103, 104, 107, 120, 101, 115, 137, 107, 110, 104, 110, 103, 112, 109, 110, 113, 98, 111, 102, 112, 105, 116, 110, 105, 117, 110, 118, 109, 105, 113, 111, 123, 102, 110, 104, 112, 117, 67, 104, 114, 109, 122, 112, 94, 103, 106, 95, 112, 104, 112, 109, 106, 104, 109, 108, 110, 124, 104, 108, 111, 112, 109, 115, 101, 114, 119, 116, 116, 110, 111, 107, 103, 100, 121, 105, 109, 112, 112, 118, 106, 109, 107, 109, 110, 101, 113, 104, 104, 105, 114, 106, 110, 112, 114, 108, 105, 119, 106, 89, 115, 117, 114, 103, 105, 106, 114, 108, 100, 116, 108, 113, 117, 118, 97, 100, 119, 111, 115, 115, 114, 110, 111, 98, 106, 110, 108, 120, 94, 112, 102, 99, 108, 113, 111, 119, 116, 107, 124, 121, 119, 105, 107, 100, 115, 108, 104, 111, 100, 118, 103, 111, 110, 112, 110, 122, 98, 96, 104, 103, 111, 112, 105, 105, 103, 110, 96, 101, 119, 104, 118, 106, 113, 111, 118, 104, 110, 125, 114, 114, 131, 104, 105, 120, 115, 109, 113, 106, 114, 106, 113, 117, 125, 116, 98, 101, 113, 114, 110, 108, 101, 105, 108, 102, 102, 114, 117, 100, 107, 94, 112, 106, 99, 109, 123, 101, 108, 111, 116, 111, 118, 95, 101, 120, 118, 97, 93, 115, 114, 110, 108, 110, 120, 117, 101, 109, 117, 107, 104, 123, 99, 120, 117, 109, 102, 118, 100, 111, 112, 113, 114, 110, 98, 112, 100, 99, 107, 114, 107, 112, 105, 118, 118, 95, 100, 110, 96, 94, 110, 105, 111, 102, 116, 114, 95, 114, 109, 111, 122, 116, 107, 118, 114, 104, 109, 111, 113, 119, 96, 105, 114, 124, 113, 108, 109, 113, 99, 115, 105, 119, 106, 105, 94, 123, 105, 110, 111, 115, 109, 102, 110, 108, 105, 118, 114, 89, 115, 112, 97, 108, 107, 110, 100, 111, 107, 109, 105, 114, 120, 101, 110, 92, 120, 113, 118, 100, 101, 105, 102, 112, 107, 112, 109, 115, 119, 124, 100, 96, 116, 115, 103, 84, 113, 107, 96, 121, 116, 109, 102, 108, 108, 98, 112, 112, 107, 115, 104, 111, 124, 99, 100, 113, 113, 114, 115, 113, 109, 103, 123, 112, 117, 114, 114, 106, 117, 122, 113, 106, 107, 114, 109, 115, 109, 98, 98, 102, 105, 99, 103, 110, 101, 115, 99, 118, 118, 113, 112, 113, 104, 120, 112, 110, 125, 125, 120, 109, 123, 104, 111, 117, 114, 93, 111, 100, 109, 122, 109, 96, 99, 105, 117, 122, 107, 104, 120, 109, 120, 113, 103, 105, 107, 107, 98, 119, 112, 106, 108, 109, 98, 117, 118, 114, 113, 112, 112, 112, 113, 110, 109, 100, 111, 106, 112, 115, 115, 109, 113, 94, 103, 103, 120, 103, 110, 119, 111, 114, 106, 110, 114, 102, 120, 109, 104, 97, 113, 107, 122, 108, 110, 104, 102, 113, 116, 95, 97, 113, 117, 99, 120, 103, 95, 111, 125, 116, 112, 100, 108, 113, 101, 123, 113, 114, 122, 105, 116, 106, 122, 116, 130, 105, 102, 92, 118, 90, 103, 118, 117, 123, 116, 118, 102, 101, 100, 93, 108, 111, 118, 99, 109, 113, 117, 108, 107, 102, 113, 107, 118, 115, 102, 104, 107, 114, 111, 103, 117, 112, 108, 109, 115, 99, 112, 120, 99, 109, 108, 106, 110, 119, 112, 112, 102, 111, 112, 113, 118, 117, 115, 109, 103, 111, 114, 112, 105, 120, 117, 111, 100, 117, 105, 102, 105, 112, 102, 124, 102, 105, 122, 101, 107, 105, 103, 101, 106, 116, 113, 107, 106, 117, 112, 106, 109, 119, 88, 98, 112, 101, 107, 114, 119, 121, 109, 108, 113, 102, 114, 108, 113, 113, 110, 111, 108, 114, 109, 101, 106, 107, 107, 107, 112, 104, 105, 90, 116, 106, 98, 103, 88, 103, 107, 112, 107, 108, 116, 109, 105, 98, 102, 110, 114, 107, 127, 116, 108, 110, 109, 109, 119, 111, 128, 102, 104, 112, 114, 116, 104, 110, 112, 113, 110, 116, 112, 107, 100, 108, 106, 110, 117, 112, 111, 111, 121, 106, 112, 118, 110, 102, 105, 100, 105, 108, 105, 116, 107, 107, 108, 101, 113, 107, 110, 91, 109, 100, 90, 118, 110, 116, 118, 111, 117, 115, 112, 105, 112, 104, 108, 110, 117, 108, 105, 102, 107, 111, 112, 114, 119, 111, 116, 111, 114, 111, 108, 115, 109, 113, 120, 106, 112, 106, 105, 108, 108, 111, 120, 112, 114, 100, 114, 113, 109, 105, 110, 114, 110, 109, 113, 116, 111, 104, 111, 113, 110, 98, 105, 110, 115, 101, 111, 112, 110, 102, 117, 100, 109, 107, 121, 97, 110, 116, 108, 115, 102, 122, 113, 107, 102, 107, 111, 120, 103, 104, 111, 99, 117, 115, 119, 106, 107, 112, 104, 120, 108, 113, 97, 99, 111, 104, 114, 111, 118, 107, 117, 94, 113, 118, 94, 109, 109, 95, 112, 104, 111, 106, 125, 109, 99, 104, 114, 104, 107, 105, 113, 112, 103, 115, 109, 108, 110, 120, 112, 117, 107, 120, 95, 110, 114, 110, 110, 115, 96, 133, 116, 118, 108, 116, 102, 113, 111, 109, 96, 121, 108, 114, 97, 112, 110, 103, 101, 105, 107, 124, 111, 116, 115, 117, 106, 100, 103, 109, 109, 115, 111, 110, 113, 110, 105, 106, 121, 109, 96, 111, 108, 106, 103, 107, 103, 103, 111, 108, 101, 119, 116, 104, 106, 122, 104, 108, 109, 114, 98, 121, 112, 113, 113, 113, 100, 112, 111, 112, 117, 113, 139, 110, 104, 107, 114, 103, 116, 121, 109, 131, 110, 104, 115, 139, 103, 123, 105, 131, 98, 108, 109, 110, 112, 104, 114, 85, 107, 113, 99, 107, 116, 98, 117, 114, 114, 111, 109, 110, 117, 102, 104, 116, 93, 113, 114, 111, 107, 111, 109, 111, 115, 118, 108, 112, 112, 121, 111, 133, 113, 108, 109, 110, 112, 103, 113, 109, 111, 102, 121, 117, 116, 103, 107, 104, 112, 114, 113, 111, 99, 111, 110, 112, 106, 113, 127, 109, 120, 110, 105, 107, 111, 120, 110, 103, 106, 111, 103, 111, 123, 111, 99, 111, 103, 109, 113, 91, 108, 108, 112, 116, 111, 126, 107, 90, 116, 109, 108, 95, 113, 118, 107, 118, 95, 106, 100, 101, 114, 104, 111, 116, 100, 106, 104, 103, 112, 114, 99, 117, 124, 105, 114, 115, 120, 110, 120, 109, 128, 131, 105, 112, 111, 119, 114, 113, 95, 112, 117, 115, 120, 104, 108, 101, 115, 110, 109, 108, 127, 116, 111, 114, 105, 111, 106, 104, 112, 111, 112, 102, 112, 120, 108, 102, 111, 121, 114, 108, 104, 112, 136, 106, 109, 109, 111, 106, 107, 109, 113, 115, 106, 112, 112, 112, 105, 105, 109, 111, 106, 110, 112, 109, 109, 108, 111, 107, 105, 110, 111, 108, 106, 105, 110, 116, 119, 107, 108, 107, 117, 111, 107, 104, 105, 105, 101, 104, 105, 107, 103, 114, 107, 105, 109, 112, 115, 109, 113, 112, 103, 113, 110, 105, 120, 109, 110, 107, 104, 111, 100, 107, 111, 105, 117, 112, 111, 107, 111, 111, 108, 106, 107, 115, 111, 111, 112, 115, 111, 114, 113, 124, 109, 108, 114, 112, 111, 108, 106, 108, 106, 109, 109, 116, 110, 115, 104, 108, 113, 115, 105, 112, 112, 112, 106, 109, 108, 110, 111, 107, 113, 112, 107, 110, 112, 109, 113, 111, 106, 118, 115, 111, 108, 105, 107, 110, 110, 113, 112, 108, 111, 117, 122, 114, 111, 113, 109, 108, 112, 108, 111, 107, 107, 119, 107, 108, 116, 109, 110, 107, 108, 116, 108, 104, 113, 106, 109, 109, 103, 106, 109, 105, 112, 106, 110, 107, 102, 109, 102, 108, 116, 108, 111, 114, 111, 108, 106, 110, 113, 106, 111, 108, 105, 110, 114, 103, 109, 108, 112, 111, 111, 109, 114, 111, 110, 111, 113, 115, 102, 108, 117, 106, 108, 112, 108, 108, 108, 108, 110, 106, 106, 109, 110, 114, 117, 110, 109, 111, 112, 108, 110, 111, 108, 106, 108, 112, 109, 110, 111, 107, 111, 110, 114, 104, 109, 108, 112, 111, 116, 107, 105, 112, 109, 114, 113, 115, 114, 112, 113, 104, 113, 108, 110, 107, 112, 104, 109, 111, 105, 115, 99, 110, 121, 108, 109, 110, 108, 107, 108, 115, 110, 107, 106, 109, 111, 106, 114, 110, 109, 114, 123, 94, 113, 112, 109, 105, 111, 113, 112, 113, 109, 113, 130, 112, 111, 115, 112, 112, 112, 115, 110, 111, 106, 115, 110, 103, 110, 106, 103, 112, 114, 103, 105, 117, 112, 110, 104, 122, 107, 102, 111, 95, 109, 108, 109, 109, 107, 111, 104, 100, 102, 110, 138, 107, 107, 110, 111, 114, 112, 110, 110, 111, 116, 103, 117, 110, 108, 103, 109, 116, 108, 110, 110, 109, 107, 114, 109, 97, 115, 110, 109, 115, 104, 115, 113, 107, 112, 107, 105, 104, 107, 101, 109, 101, 114, 104, 113, 112, 117, 115, 111, 110, 109, 108, 109, 113, 115, 110, 111, 109, 109, 110, 107, 108, 109, 95, 106, 115, 119, 119, 116, 108, 107, 101, 108, 110, 106, 114, 113, 109, 112, 106, 116, 113, 101, 111, 107, 112, 104, 112, 110, 114, 108, 110, 112, 112, 109, 106, 111, 110, 100, 110, 111, 108, 132, 105, 104, 114, 118, 115, 116, 106, 112, 104, 109, 117, 108, 102, 107, 112, 110, 111, 96, 113, 119, 112, 115, 108, 114, 107, 114, 93, 112, 103, 110, 111, 111, 112, 109, 114, 105, 106, 111, 109, 110, 102, 108, 109, 107, 102, 109, 113, 91, 107, 128, 104, 106, 107, 111, 114, 108, 111, 109, 111, 108, 113, 110, 113, 111, 106, 113, 106, 109, 119, 103, 111, 113, 110, 112, 92, 114, 103, 115, 109, 109, 112, 108, 101, 114, 98, 116, 121, 114, 114, 118, 119, 101, 96, 106, 111, 107, 110, 118, 108, 106, 101, 107, 105, 123, 110, 108, 116, 114, 105, 111, 116, 101, 102, 109, 70, 103, 107, 102, 116, 104, 109, 114, 105, 102, 119, 109, 107, 104, 88, 112, 116, 110, 108, 110, 111, 110, 101, 114, 126, 114, 82, 110, 101, 106, 113, 110, 81, 95, 95, 115, 101, 108, 111, 110, 109, 114, 107, 106, 108, 115, 108, 115, 108, 103, 112, 120, 105, 111, 104, 114, 104, 109, 117, 108, 109, 115, 61, 112, 107, 113, 106, 99, 119, 103, 113, 105, 100, 103, 115, 118, 114, 107, 102, 121, 118, 105, 117, 104, 109, 116, 97, 112, 113, 108, 108, 93, 113, 116, 110, 106, 129, 99, 116, 116, 119, 123, 110, 113, 114, 105, 108, 115, 106, 116, 105, 108, 121, 127, 113, 114, 115, 116, 112, 102, 114, 106, 107, 98, 111, 77, 112, 143, 100, 103, 111, 100, 109, 106, 127, 101, 128, 101, 115, 108, 111, 113, 118, 113, 120, 109, 107, 112, 118, 110, 118, 116, 115, 103, 108, 113, 107, 102, 112, 87, 120, 105, 105, 108, 99, 109, 107, 115, 104, 110, 111, 106, 112, 109, 107, 115, 108, 125, 127, 105, 108, 100, 108, 108, 117, 109, 104, 113, 110, 103, 112, 104, 111, 107, 103, 108, 112, 121, 114, 105, 105, 116, 100, 103, 99, 115, 112, 106, 116, 109, 125, 114, 107, 115, 117, 104, 108, 106, 108, 116, 109, 107, 118, 112, 117, 107, 107, 108, 150, 106, 106, 120, 110, 109, 113, 105, 112, 115, 117, 112, 110, 103, 102, 112, 103, 101, 95, 109, 107, 112, 105, 111, 99, 107, 109, 113, 107, 117, 120, 109, 114, 109, 116, 112, 111, 108, 116, 106, 103, 112, 117, 102, 97, 98, 104, 113, 105, 111, 105, 110, 103, 108, 106, 107, 101, 103, 113, 107, 113, 121, 106, 100, 101, 102, 105, 110, 101, 117, 112, 97, 100, 103, 110, 106, 108, 104, 109, 124, 117, 134, 114, 111, 109, 109, 101, 112, 117, 111, 111, 105, 104, 102, 93, 110, 101, 111, 108, 102, 83, 105, 94, 117, 91, 110, 106, 110, 110, 108, 108, 104, 115, 105, 101, 105, 120, 108, 104, 88, 104, 111, 104, 106, 110, 115, 106, 106, 102, 104, 110, 113, 105, 105, 113, 111, 115, 113, 110, 110, 106, 79, 98, 107, 108, 115, 107, 102, 99, 112, 118, 106, 114, 109, 115, 98, 109, 106, 111, 106, 103, 105, 105, 98, 118, 140, 114, 98, 116, 115, 104, 86, 113, 116, 117, 108, 110, 115, 111, 113, 109, 105, 113, 114, 112, 104, 101, 103, 108, 103, 116, 115, 105, 105, 68, 117, 112, 87, 103, 97, 107, 94, 114, 118, 103, 114, 106, 108, 116, 113, 101, 116, 112, 110, 112, 93, 105, 123, 100, 105, 106, 119, 105, 111, 102, 114, 120, 109, 114, 107, 98, 118, 128, 107, 119, 117, 116, 105, 111, 106, 113, 112, 100, 104, 112, 111, 115, 113, 116, 110, 116, 102, 128, 113, 114, 108, 104, 110, 106, 110, 108, 112, 105, 118, 110, 120, 103, 107, 110, 108, 114, 100, 109, 110, 110, 116, 108, 101, 107, 111, 106, 115, 110, 109, 108, 111, 100, 103, 111, 99, 105, 112, 106, 99, 105, 105, 108, 109, 110, 103, 108, 113, 109, 110, 103, 112, 112, 111, 104, 103, 105, 113, 112, 109, 112, 106, 105, 129, 107, 106, 112, 106, 107, 120, 117, 116, 105, 122, 107, 102, 95, 102, 101, 114, 117, 103, 106, 107, 111, 108, 109, 111, 106, 110, 116, 111, 112, 111, 106, 107, 105, 110, 114, 123, 107, 103, 104, 106, 109, 114, 120, 105, 106, 125, 112, 113, 111, 104, 107, 109, 103, 115, 113, 108, 130, 109, 111, 138, 116, 105, 114, 114, 110, 119, 113, 111, 109, 96, 105, 107, 112, 99, 139, 113, 119, 109, 106, 117, 121, 107, 111, 111, 106, 107, 115, 118, 101, 121, 105, 113, 107, 113, 111, 114, 100, 112, 109, 114, 108, 102, 113, 99, 112, 110, 128, 106, 113, 113, 108, 107, 104, 109, 113, 110, 124, 107, 118, 108, 112, 106, 106, 118, 109, 112, 113, 101, 110, 96, 120, 127, 114, 113, 117, 101, 103, 106, 108, 106, 106, 115, 111, 103, 119, 107, 108, 114, 110, 103, 110, 118, 108, 108, 122, 116, 118, 101, 113, 114, 110, 114, 110, 110, 110, 102, 105, 119, 105, 99, 126, 113, 116, 101, 113, 111, 109, 119, 107, 114, 113, 113, 124, 111, 120, 105, 98, 117, 112, 107, 113, 104, 108, 111, 110, 109, 108, 116, 113, 110, 104, 103, 129, 105, 112, 128, 121, 96, 112, 112, 107, 106, 104, 108, 114, 111, 126, 109, 114, 115, 99, 111, 113, 103, 109, 111, 106, 118, 118, 108, 110, 106, 113, 106, 113, 121, 111, 113, 106, 105, 106, 120, 114, 114, 118, 111, 107, 109, 110, 108, 114, 106, 113, 114, 107, 106, 109, 115, 107, 108, 99, 117, 110, 110, 121, 107, 107, 101, 109, 113, 109, 105, 110, 106, 104, 103, 109, 122, 112, 115, 120, 113, 116, 118, 111, 109, 105, 105, 106, 108, 122, 108, 103, 104, 108, 111, 96, 106, 105, 104, 118, 117, 114, 114, 114, 113, 113, 111, 109, 113, 114, 103, 94, 109, 100, 119, 110, 102, 106, 110, 109, 105, 97, 111, 114, 110, 99, 110, 110, 115, 106, 113, 116, 103, 110, 110, 104, 115, 100, 103, 101, 103, 112, 115, 105, 106, 121, 117, 104, 116, 104, 109, 116, 118, 106, 115, 94, 105, 107, 110, 109, 99, 97, 102, 113, 110, 113, 111, 110, 113, 112, 103, 105, 118, 112, 123, 107, 93, 103, 108, 108, 101, 108, 101, 109, 107, 102, 115, 107, 125, 106, 114, 106, 119, 120, 109, 117, 111, 105, 114, 113, 116, 101, 106, 104, 122, 113, 114, 106, 111, 112, 124, 101, 114, 115, 109, 115, 117, 115, 108, 106, 110, 100, 101, 119, 113, 103, 113, 109, 112, 109, 99, 112, 113, 116, 116, 124, 108, 108, 89, 117, 112, 109, 116, 109, 106, 100, 95, 107, 105, 110, 111, 124, 105, 107, 114, 110, 113, 103, 120, 111, 96, 109, 111, 108, 111, 114, 112, 115, 101, 113, 105, 115, 117, 122, 104, 111, 114, 102, 104, 103, 119, 109, 109, 108, 111, 117, 109, 101, 121, 114, 111, 105, 112, 109, 116, 115, 103, 110, 115, 106, 120, 107, 118, 107, 106, 111, 110, 110, 109, 101, 106, 111, 105, 127, 122, 107, 102, 106, 116, 100, 106, 115, 114, 105, 108, 117, 103, 101, 108, 112, 110, 126, 105, 110, 106, 107, 113, 112, 109, 108, 103, 108, 113, 110, 117, 108, 108, 104, 99, 109, 106, 108, 112, 109, 103, 110, 106, 98, 110, 113, 98, 109, 104, 108, 109, 117, 114, 110, 113, 110, 104, 100, 106, 116, 111, 108, 108, 116, 115, 116, 113, 103, 115, 108, 114, 114, 117, 118, 121, 109, 93, 96, 112, 111, 109, 113, 107, 118, 123, 116, 116, 107, 104, 109, 107, 102, 114, 99, 100, 117, 114, 115, 107, 114, 108, 119, 103, 108, 110, 108, 102, 104, 109, 122, 105, 89, 107, 101, 109, 100, 112, 111, 111, 108, 104, 104, 110, 105, 112, 125, 115, 99, 123, 115, 114, 99, 105, 117, 87, 120, 129, 112, 103, 103, 106, 105, 109, 105, 117, 105, 95, 105, 102, 96, 103, 108, 119, 117, 120, 121, 99, 109, 104, 109, 109, 112, 112, 108, 105, 102, 121, 107, 108, 110, 107, 111, 114, 114, 118, 101, 113, 112, 111, 105, 117, 111, 119, 103, 119, 110, 118, 107, 113, 117, 114, 104, 120, 101, 106, 108, 116, 119, 113, 131, 120, 113, 114, 105, 115, 106, 105, 119, 120, 104, 115, 111, 106, 103, 99, 107, 107, 106, 103, 112, 119, 109, 106, 123, 123, 111, 113, 115, 124, 110, 101, 114, 128, 110, 111, 108, 108, 114, 109, 114, 115, 107, 120, 106, 103, 110, 118, 115, 99, 117, 108, 105, 112, 104, 114, 106, 104, 111, 103, 107, 112, 120, 101, 91, 109, 115, 106, 89, 117, 102, 107, 114, 111, 103, 100, 113, 108, 109, 115, 110, 107, 128, 110, 105, 131, 108, 111, 112, 111, 113, 99, 103, 126, 110, 96, 111, 108, 105, 118, 126, 96, 118, 110, 107, 119, 107, 114, 103, 103, 119, 102, 110, 106, 112, 103, 113, 107, 108, 107, 113, 117, 108, 108, 113, 119, 114, 115, 108, 113, 108, 107, 106, 98, 119, 118, 109, 112, 117, 111, 114, 120, 99, 108, 99, 111, 114, 106, 105, 117, 101, 111, 106, 112, 117, 106, 120, 106, 113, 104, 112, 102, 115, 111, 104, 112, 109, 117, 119, 112, 114, 123, 107, 111, 107, 113, 97, 107, 118, 104, 110, 111, 119, 116, 108, 113, 110, 104, 119, 107, 118, 100, 113, 105, 100, 121, 119, 107, 118, 97, 103, 120, 101, 120, 108, 104, 102, 111, 114, 86, 118, 112, 96, 106, 106, 112, 108, 107, 115, 105, 109, 116, 112, 106, 101, 112, 104, 107, 107, 105, 101, 106, 112, 104, 106, 107, 108, 108, 106, 126, 113, 113, 115, 119, 114, 114, 108, 108, 108, 110, 106, 110, 116, 112, 99, 103, 108, 127, 107, 110, 110, 110, 106, 118, 104, 108, 111, 111, 107, 114, 112, 109, 115, 113, 109, 107, 110, 110, 109, 109, 115, 105, 113, 114, 108, 82, 108, 113, 106, 106, 117, 114, 109, 114, 108, 134, 104, 114, 109, 108, 105, 112, 107, 113, 114, 111, 111, 108, 111, 120, 109, 116, 107, 110, 121, 106, 108, 113, 84, 110, 106, 110, 110, 105, 112, 115, 105, 114, 100, 107, 119, 117, 110, 107, 108, 107, 104, 113, 113, 113, 75, 123, 104, 103, 116, 108, 107, 108, 121, 102, 109, 105, 113, 125, 117, 110, 122, 113, 115, 110, 108, 112, 109, 121, 111, 110, 97, 111, 108, 105, 109, 97, 109, 121, 110, 110, 110, 114, 112, 109, 112, 96, 108, 137, 119, 103, 110, 115, 108, 110, 114, 110, 109, 123, 104, 108, 111, 113, 110, 121, 113, 110, 117, 114, 109, 111, 108, 109, 120, 106, 108, 105, 113, 100, 106, 125, 112, 111, 110, 107, 117, 105, 106, 102, 108, 108, 111, 109, 100, 134, 104, 110, 109, 120, 111, 107, 111, 104, 108, 115, 122, 109, 110, 107, 119, 112, 106, 108, 100, 106, 114, 111, 106, 110, 116, 105, 114, 112, 112, 109, 109, 112, 101, 108, 100, 110, 103, 104, 115, 110, 106, 106, 96, 106, 103, 108, 97, 116, 110, 115, 134, 107, 107, 102, 115, 119, 112, 112, 113, 107, 120, 110, 104, 108, 142, 115, 104, 122, 107, 115, 110, 107, 106, 84, 108, 107, 109, 108, 114, 108, 110, 104, 112, 108, 109, 116, 125, 110, 103, 109, 113, 106, 103, 109, 108, 111, 112, 110, 111, 111, 115, 103, 118, 112, 107, 114, 110, 105, 111, 117, 106, 117, 100, 116, 113, 108, 115, 116, 113, 107, 107, 100, 109, 111, 96, 122, 112, 110, 111, 89, 114, 103, 123, 107, 106, 108, 108, 112, 104, 112, 145, 115, 101, 112, 106, 117, 115, 114, 109, 109, 113, 110, 113, 114, 111, 106, 107, 110, 112, 106, 102, 105, 107, 114, 110, 109, 110, 107, 106, 112, 110, 113, 109, 109, 111, 119, 102, 111, 110, 113, 113, 110, 109, 104, 110, 112, 110, 108, 111, 113, 119, 106, 110, 110, 107, 114, 107, 113, 121, 120, 103, 108, 111, 113, 114, 111, 106, 116, 102, 118, 134, 127, 107, 106, 112, 113, 107, 130, 96, 122, 119, 110, 109, 107, 118, 105, 101, 113, 116, 106, 105, 110, 113, 111, 110, 90, 122, 110, 115, 111, 110, 108, 108, 116, 109, 111, 107, 104, 113, 111, 103, 92, 110, 107, 110, 110, 110, 111, 114, 109, 104, 120, 112, 145, 111, 109, 116, 121, 113, 103, 114, 102, 111, 109, 107, 115, 102, 114, 109, 112, 112, 105, 106, 106, 108, 119, 106, 107, 114, 113, 108, 109, 109, 112, 110, 111, 107, 110, 111, 105, 110, 110, 136, 103, 128, 123, 115, 106, 111, 114, 111, 108, 109, 113, 107, 111, 105, 122, 111, 110, 110, 107, 108, 109, 112, 112, 108, 112, 111, 109, 106, 109, 108, 112, 108, 109, 110, 112, 110, 105, 111, 110, 112, 110, 110, 114, 111, 108, 109, 111, 108, 113, 114, 109, 111, 115, 107, 113, 111, 113, 112, 113, 112, 110, 108, 115, 109, 113, 103, 107, 108, 110, 109, 112, 112, 108, 106, 102, 108, 106, 110, 106, 110, 112, 110, 111, 110, 114, 110, 110, 114, 106, 111, 111, 109, 110, 109, 114, 109, 108, 111, 116, 108, 110, 113, 111, 112, 111, 102, 109, 116, 106, 111, 113, 111, 116, 114, 111, 109, 107, 110, 111, 113, 110, 112, 117, 107, 107, 111, 110, 110, 113, 106, 110, 112, 116, 110, 111, 124, 110, 111, 113, 119, 112, 110, 109, 107, 108, 114, 108, 115, 98, 110, 106, 108, 105, 111, 115, 106, 110, 103, 109, 111, 112, 113, 112, 113, 109, 109, 112, 109, 112, 112, 108, 110, 106, 112, 121, 111, 114, 111, 100, 109, 110, 111, 112, 112, 109, 109, 110, 112, 110, 108, 119, 112, 108, 111, 119, 104, 111, 115, 109, 108, 107, 108, 106, 111, 112, 111, 112, 108, 100, 110, 107, 107, 110, 108, 111, 111, 109, 110, 116, 98, 98, 108, 110, 112, 121, 109, 112, 109, 107, 117, 116, 107, 107, 113, 111, 109, 112, 107, 109, 108, 115, 120, 106, 110, 114, 110, 101, 112, 102, 108, 101, 116, 113, 120, 110, 117, 109, 110, 126, 109, 116, 115, 108, 115, 112, 108, 101, 114, 112, 113, 110, 106, 108, 107, 113, 100, 111, 114, 110, 115, 104, 110, 104, 111, 112, 110, 111, 110, 111, 110, 107, 118, 109, 111, 104, 108, 117, 113, 109, 105, 103, 114, 106, 110, 111, 109, 112, 105, 105, 109, 105, 110, 109, 111, 111, 113, 110, 103, 111, 110, 113, 112, 107, 105, 110, 105, 115, 107, 115, 110, 113, 107, 110, 111, 110, 110, 110, 111, 105, 116, 103, 109, 106, 114, 110, 110, 112, 111, 110, 114, 107, 111, 108, 114, 109, 111, 113, 104, 109, 112, 110, 112, 112, 106, 108, 110, 113, 109, 109, 112, 113, 108, 115, 108, 105, 109, 110, 111, 111, 114, 111, 111, 111, 110, 108, 117, 113, 114, 106, 113, 108, 99, 106, 108, 109, 111, 109, 111, 109, 108, 115, 111, 112, 106, 110, 113, 109, 109, 107, 109, 107, 108, 107, 112, 107, 112, 110, 103, 107, 112, 113, 107, 115, 115, 108, 108, 117, 111, 114, 114, 110, 112, 113, 121, 110, 107, 117, 116, 110, 105, 109, 113, 110, 109, 112, 113, 115, 108, 111, 109, 111, 120, 121, 110, 109, 110, 107, 116, 110, 111, 118, 111, 112, 111, 106, 111, 110, 113, 111, 105, 114, 115, 105, 110, 106, 114, 108, 108, 114, 111, 108, 110, 115, 113, 111, 109, 112, 116, 110, 113, 108, 112, 115, 114, 104, 108, 109, 120, 109, 106, 98, 111, 106, 93, 113, 113, 109, 113, 119, 105, 116, 111, 113, 114, 111, 109, 109, 112, 111, 116, 105, 112, 114, 109, 108, 113, 110, 111, 110, 108, 116, 114, 108, 113, 105, 111, 112, 103, 118, 114, 106, 110, 110, 110, 113, 105, 103, 105, 109, 115, 110, 112, 111, 106, 115, 107, 109, 109, 115, 109, 109, 114, 110, 108, 109, 105, 106, 113, 104, 122, 120, 114, 104, 112, 113, 100, 111, 116, 108, 113, 107, 110, 118, 110, 106, 104, 108, 110, 106, 111, 110, 113, 110, 111, 114, 115, 114, 104, 110, 110, 111, 111, 110, 106, 105, 110, 113, 113, 111, 108, 102, 107, 112, 85, 100, 99, 102, 109, 106, 117, 107, 111, 118, 114, 107, 110, 104, 110, 115, 112, 113, 107, 115, 100, 105, 116, 116, 110, 100, 108, 116, 112, 114, 109, 112, 110, 102, 112, 106, 110, 108, 111, 113, 110, 107, 105, 102, 100, 119, 111, 111, 114, 116, 103, 108, 116, 103, 106, 114, 106, 119, 112, 107, 106, 109, 101, 101, 103, 114, 112, 106, 105, 112, 115, 109, 110, 113, 113, 109, 109, 114, 111, 113, 112, 113, 111, 112, 112, 109, 110, 111, 109, 103, 112, 111, 108, 111, 112, 108, 112, 117, 112, 115, 103, 109, 111, 114, 103, 108, 110, 110, 116, 106, 113, 103, 112, 109, 114, 108, 114, 103, 109, 108, 106, 110, 119, 107, 115, 103, 113, 110, 100, 112, 111, 108, 105, 114, 108, 109, 107, 112, 106, 107, 93, 105, 110, 109, 112, 101, 114, 113, 108, 114, 100, 111, 112, 112, 117, 102, 112, 115, 107, 110, 105, 108, 113, 118, 105, 110, 111, 109, 112, 112, 109, 110, 113, 112, 110, 111, 114, 111, 111, 114, 109, 107, 113, 112, 110, 107, 114, 107, 110, 110, 106, 110, 118, 107, 109, 111, 112, 111, 111, 114, 110, 107, 111, 106, 110, 106, 118, 111, 106, 107, 107, 115, 109, 112, 102, 116, 115, 111, 105, 111, 113, 109, 105, 108, 99, 110, 103, 113, 107, 108, 116, 107, 113, 106, 111, 106, 111, 98, 112, 104, 107, 111, 110, 108, 111, 102, 115, 118, 121, 106, 112, 111, 109, 114, 111, 106, 113, 111, 112, 112, 112, 113, 120, 108, 111, 94, 109, 115, 109, 106, 113, 108, 110, 106, 109, 112, 106, 103, 104, 103, 118, 106, 114, 120, 114, 108, 110, 104, 115, 105, 113, 103, 111, 111, 112, 121, 107, 112, 102, 113, 105, 116, 110, 112, 102, 110, 111, 113, 111, 111, 108, 114, 113, 108, 114, 115, 106, 112, 117, 111, 111, 109, 117, 108, 115, 106, 116, 114, 111, 107, 106, 110, 108, 110, 112, 112, 111, 109, 112, 112, 107, 104, 114, 105, 109, 114, 108, 112, 111, 111, 109, 111, 112, 118, 114, 109, 105, 112, 107, 108, 105, 105, 113, 104, 113, 110, 108, 112, 108, 117, 106, 110, 117, 113, 117, 109, 111, 107, 108, 107, 112, 107, 107, 111, 113, 116, 110, 111, 117, 121, 110, 110, 105, 113, 104, 109, 109, 115, 114, 111, 113, 107, 113, 105, 110, 112, 111, 111, 107, 108, 109, 113, 112, 107, 124, 112, 109, 109, 104, 107, 112, 110, 105, 117, 109, 115, 113, 107, 104, 106, 99, 103, 103, 104, 103, 101, 111, 116, 113, 106, 117, 109, 104, 106, 109, 108, 100, 103, 109, 107, 91, 96, 111, 107, 119, 101, 109, 111, 118, 101, 118, 118, 106, 109, 108, 107, 107, 103, 100, 109, 115, 106, 107, 104, 108, 109, 109, 105, 115, 107, 112, 113, 104, 106, 98, 107, 108, 112, 109, 83, 107, 117, 113, 116, 115, 110, 106, 112, 111, 114, 118, 110, 98, 112, 111, 110, 109, 109, 107, 116, 113, 104, 103, 97, 107, 105, 108, 113, 109, 124, 114, 103, 113, 127, 118, 109, 108, 105, 105, 75, 113, 106, 117, 105, 144, 108, 111, 115, 99, 115, 108, 108, 112, 87, 104, 110, 101, 106, 117, 117, 102, 100, 110, 104, 111, 108, 96, 108, 111, 121, 115, 107, 115, 112, 106, 134, 107, 133, 112, 107, 115, 116, 113, 104, 110, 117, 111, 115, 111, 113, 105, 104, 114, 112, 112, 144, 109, 104, 98, 105, 103, 107, 111, 105, 117, 111, 114, 105, 108, 115, 107, 106, 117, 103, 117, 111, 102, 112, 120, 120, 124, 117, 108, 115, 93, 102, 120, 124, 113, 105, 113, 122, 109, 113, 110, 105, 106, 106, 107, 107, 111, 123, 107, 128, 115, 99, 113, 97, 115, 112, 115, 108, 111, 103, 105, 107, 116, 110, 105, 108, 111, 109, 104, 124, 112, 114, 87, 97, 111, 112, 110, 113, 107, 109, 109, 103, 113, 106, 108, 127, 114, 111, 112, 112, 100, 112, 109, 120, 102, 110, 106, 109, 108, 114, 107, 120, 109, 111, 103, 110, 111, 113, 96, 96, 107, 116, 127, 107, 116, 114, 113, 113, 119, 118, 90, 104, 105, 103, 113, 122, 112, 106, 99, 110, 117, 123, 111, 112, 105, 108, 109, 110, 107, 106, 121, 119, 103, 114, 111, 106, 118, 111, 106, 111, 103, 123, 104, 107, 113, 114, 105, 107, 105, 107, 108, 103, 103, 103, 121, 102, 114, 108, 124, 107, 105, 101, 94, 111, 105, 104, 103, 106, 98, 119, 104, 105, 93, 103, 100, 101, 110, 110, 79, 109, 104, 108, 110, 108, 107, 108, 112, 103, 107, 109, 109, 101, 102, 104, 107, 107, 116, 102, 102, 98, 108, 103, 114, 110, 109, 101, 105, 115, 111, 119, 106, 107, 104, 113, 141, 108, 108, 115, 108, 110, 96, 107, 98, 108, 102, 70, 111, 115, 102, 115, 118, 93, 117, 115, 110, 108, 124, 110, 107, 114, 98, 113, 111, 106, 109, 101, 114, 111, 118, 109, 115, 104, 98, 95, 89, 109, 110, 102, 105, 120, 114, 107, 103, 102, 113, 112, 106, 118, 103, 99, 113, 103, 108, 109, 129, 103, 107, 109, 105, 94, 110, 106, 98, 106, 97, 111, 111, 115, 111, 99, 114, 104, 106, 111, 109, 143, 105, 108, 109, 106, 107, 118, 114, 117, 101, 115, 113, 107, 103, 121, 115, 101, 110, 119, 109, 106, 114, 115, 112, 116, 96, 106, 108, 122, 104, 121, 115, 101, 105, 116, 102, 111, 115, 105, 104, 98, 112, 106, 108, 108, 103, 109, 158, 112, 68, 107, 105, 110, 109, 98, 102, 116, 111, 109, 107, 110, 108, 121, 111, 75, 73, 104, 111, 117, 115, 111, 104, 102, 93, 107, 96, 117, 112, 112, 107, 76, 107, 107, 112, 100, 114, 112, 112, 112, 98, 110, 120, 118, 107, 120, 111, 110, 117, 108, 108, 107, 119, 96, 109, 112, 120, 108, 109, 124, 112, 109, 100, 120, 90, 96, 87, 72, 71, 113, 101, 123, 97, 118, 107, 117, 104, 118, 106, 113, 107, 103, 107, 109, 117, 106, 115, 109, 111, 113, 110, 111, 114, 114, 105, 118, 68, 110, 109, 113, 109, 119, 107, 122, 103, 109, 114, 113, 92, 114, 113, 113, 111, 117, 109, 110, 116, 81, 120, 109, 110, 109, 61, 111, 104, 114, 78, 87, 116, 113, 113, 112, 110, 106, 110, 113, 116, 108, 84, 107, 117, 112, 108, 118, 106, 107, 115, 100, 112, 111, 125, 117, 91, 100, 109, 98, 100, 103, 112, 103, 112, 100, 117, 102, 106, 81, 104, 67, 75, 107, 117, 114, 110, 116, 112, 107, 118, 116, 111, 106, 107, 111, 112, 105, 76, 122, 103, 110, 117, 81, 103, 113, 98, 121, 113, 115, 110, 109, 116, 103, 105, 125, 94, 120, 111, 115, 107, 118, 118, 113, 117, 116, 103, 112, 112, 106, 126, 115, 106, 104, 107, 115, 118, 112, 110, 111, 110, 117, 118, 119, 111, 112, 68, 110, 109, 110, 111, 99, 112, 111, 111, 103, 103, 112, 109, 121, 116, 97, 108, 108, 109, 99, 63, 98, 113, 103, 105, 107, 109, 102, 116, 108, 100, 113, 92, 111, 109, 109, 110, 107, 108, 95, 117, 109, 87, 106, 115, 107, 112, 110, 110, 107, 114, 119, 104, 112, 109, 114, 98, 107, 99, 113, 115, 113, 106, 100, 110, 115, 95, 90, 108, 107, 131, 108, 110, 99, 84, 121, 113, 116, 108, 105, 116, 96, 119, 123, 101, 109, 95, 100, 92, 112, 69, 112, 105, 118, 113, 114, 106, 93, 108, 118, 116, 117, 109, 100, 112, 109, 92, 114, 114, 118, 105, 85, 106, 104, 104, 108, 104, 77, 107, 119, 114, 105, 113, 112, 110, 95, 105, 117, 101, 117, 62, 119, 115, 116, 116, 109, 81, 108, 109, 121, 97, 112, 120, 113, 106, 108, 90, 108, 68, 118, 91, 110, 112, 109, 109, 110, 105, 106, 108, 103, 114, 111, 97, 92, 107, 113, 107, 104, 117, 97, 106, 114, 108, 114, 110, 101, 104, 83, 116, 116, 115, 109, 108, 105, 117, 116, 120, 115, 116, 105, 105, 108, 105, 105, 109, 108, 126, 105, 109, 122, 115, 86, 93, 105, 109, 122, 99, 120, 105, 115, 101, 112, 108, 109, 114, 120, 116, 109, 110, 101, 113, 113, 108, 117, 104, 122, 111, 118, 103, 110, 109, 116, 113, 102, 99, 116, 109, 111, 120, 112, 101, 105, 110, 115, 103, 114, 98, 108, 100, 103, 97, 117, 106, 111, 114, 112, 112, 96, 72, 108, 110, 117, 120, 108, 111, 104, 121, 117, 104, 95, 102, 81, 116, 94, 110, 120, 108, 118, 111, 111, 118, 106, 106, 106, 103, 107, 110, 112, 113, 108, 104, 110, 114, 109, 113, 107, 103, 109, 106, 108, 109, 108, 118, 105, 112, 108, 111, 108, 106, 110, 106, 109, 112, 109, 112, 114, 95, 108, 107, 112, 106, 104, 105, 109, 122, 103, 110, 109, 107, 105, 111, 112, 113, 111, 106, 116, 112, 115, 111, 103, 109, 113, 109, 113, 116, 110, 106, 112, 110, 117, 112, 114, 98, 108, 107, 111, 115, 106, 112, 110, 106, 111, 113, 106, 114, 118, 109, 109, 103, 108, 106, 107, 110, 96, 108, 117, 130, 102, 111, 107, 109, 108, 114, 110, 109, 110, 113, 108, 99, 102, 105, 112, 107, 112, 111, 108, 108, 118, 107, 107, 108, 112, 123, 116, 118, 108, 110, 116, 107, 110, 111, 111, 114, 102, 106, 108, 103, 114, 114, 110, 109, 107, 109, 112, 105, 112, 105, 110, 111, 103, 106, 108, 109, 113, 102, 106, 108, 110, 108, 103, 110, 113, 112, 115, 114, 96, 103, 113, 117, 113, 119, 109, 109, 111, 113, 107, 112, 109, 113, 113, 112, 120, 115, 107, 107, 104, 107, 113, 114, 109, 118, 109, 119, 109, 113, 116, 100, 104, 110, 108, 102, 108, 106, 113, 114, 111, 108, 106, 115, 108, 114, 108, 112, 104, 108, 114, 112, 116, 111, 112, 112, 107, 115, 112, 110, 111, 106, 104, 106, 108, 112, 110, 106, 105, 113, 107, 106, 105, 113, 115, 110, 110, 117, 117, 115, 112, 111, 100, 121, 105, 119, 109, 110, 113, 114, 112, 105, 110, 105, 107, 113, 109, 109, 112, 108, 113, 110, 99, 113, 110, 108, 107, 115, 105, 109, 109, 106, 110, 116, 111, 108, 112, 112, 109, 113, 105, 110, 105, 101, 107, 112, 116, 102, 109, 107, 106, 108, 112, 103, 103, 111, 112, 110, 115, 107, 107, 102, 109, 105, 112, 112, 115, 104, 117, 107, 111, 111, 102, 113, 113, 123, 105, 112, 110, 110, 107, 108, 102, 110, 109, 111, 106, 109, 104, 108, 105, 107, 114, 105, 116, 112, 104, 111, 118, 117, 105, 110, 111, 111, 113, 108, 104, 112, 109, 107, 108, 115, 113, 119, 107, 111, 102, 109, 111, 109, 108, 107, 112, 112, 107, 110, 110, 109, 110, 113, 105, 102, 105, 109, 112, 98, 125, 99, 106, 116, 115, 111, 115, 109, 108, 104, 111, 113, 119, 72, 106, 110, 111, 118, 112, 116, 101, 116, 113, 113, 103, 107, 112, 113, 99, 114, 107, 107, 114, 104, 107, 111, 111, 106, 112, 114, 116, 117, 114, 118, 101, 110, 105, 112, 107, 102, 106, 97, 107, 125, 105, 107, 105, 117, 111, 114, 108, 111, 107, 112, 107, 103, 112, 104, 109, 112, 110, 118, 109, 111, 111, 106, 117, 112, 108, 106, 113, 108, 109, 106, 111, 108, 112, 111, 101, 116, 115, 108, 105, 103, 111, 116, 108, 110, 107, 106, 113, 111, 116, 106, 104, 113, 112, 113, 118, 118, 108, 111, 108, 114, 111, 110, 109, 118, 113, 117, 100, 109, 106, 110, 106, 111, 114, 110, 110, 106, 113, 125, 107, 109, 110, 115, 110, 110, 111, 112, 121, 102, 107, 101, 106, 109, 118, 126, 100, 113, 100, 111, 117, 113, 105, 109, 109, 115, 112, 108, 116, 114, 123, 112, 119, 117, 115, 116, 110, 110, 108, 115, 106, 108, 112, 116, 110, 101, 117, 103, 108, 112, 110, 97, 108, 117, 103, 99, 111, 109, 109, 116, 113, 123, 115, 103, 104, 113, 104, 101, 116, 126, 108, 91, 116, 112, 118, 103, 112, 118, 119, 111, 114, 110, 116, 104, 109, 107, 112, 107, 100, 113, 112, 110, 106, 104, 101, 100, 107, 111, 111, 110, 115, 113, 113, 105, 113, 109, 106, 104, 102, 106, 110, 115, 106, 103, 108, 123, 102, 106, 108, 116, 107, 112, 106, 99, 113, 81, 105, 115, 115, 110, 109, 103, 115, 109, 120, 118, 115, 104, 102, 111, 116, 110, 109, 113, 108, 113, 108, 107, 112, 111, 110, 125, 118, 99, 103, 110, 110, 109, 100, 110, 105, 106, 110, 111, 92, 110, 123, 107, 108, 109, 105, 112, 98, 112, 111, 110, 113, 113, 113, 101, 105, 101, 119, 100, 150, 107, 110, 115, 103, 110, 111, 103, 111, 112, 117, 116, 114, 106, 112, 110, 118, 107, 118, 112, 116, 114, 110, 99, 112, 107, 108, 105, 112, 106, 117, 112, 114, 121, 118, 115, 110, 98, 102, 112, 112, 111, 109, 117, 97, 108, 105, 105, 107, 103, 115, 97, 126, 114, 114, 105, 102, 101, 113, 111, 114, 109, 109, 120, 99, 100, 117, 97, 109, 107, 100, 104, 126, 108, 103, 109, 118, 120, 108, 109, 110, 114, 104, 106, 98, 108, 128, 119, 117, 115, 114, 111, 106, 105, 107, 113, 108, 112, 111, 106, 111, 88, 103, 107, 109, 106, 100, 109, 110, 112, 103, 120, 110, 111, 102, 111, 110, 120, 109, 108, 109, 95, 114, 114, 109, 110, 108, 115, 120, 104, 105, 112, 109, 108, 110, 99, 111, 97, 111, 105, 113, 108, 116, 108, 102, 107, 102, 111, 110, 107, 125, 108, 108, 114, 104, 107, 105, 107, 115, 113, 104, 106, 116, 112, 122, 109, 119, 115, 105, 106, 110, 104, 104, 97, 109, 119, 105, 96, 113, 106, 105, 114, 115, 88, 105, 100, 96, 87, 112, 110, 112, 120, 109, 102, 114, 110, 117, 112, 118, 109, 112, 106, 115, 98, 123, 108, 111, 110, 98, 114, 110, 110, 101, 117, 106, 112, 118, 110, 106, 115, 113, 108, 102, 117, 76, 104, 113, 111, 118, 110, 108, 104, 112, 113, 98, 107, 114, 113, 109, 116, 122, 113, 108, 106, 115, 99, 113, 109, 160, 108, 103, 107, 122, 105, 67, 115, 112, 103, 113, 117, 111, 104, 116, 125, 108, 115, 109, 109, 109, 112, 106, 102, 102, 106, 112, 114, 115, 117, 110, 103, 128, 113, 114, 109, 97, 108, 113, 110, 108, 121, 111, 103, 109, 102, 115, 98, 104, 104, 120, 107, 103, 99, 105, 105, 115, 106, 107, 106, 116, 107, 113, 114, 116, 106, 107, 113, 122, 125, 144, 112, 111, 124, 116, 117, 111, 107, 108, 117, 109, 109, 114, 111, 105, 114, 113, 104, 124, 107, 104, 108, 102, 107, 108, 117, 105, 107, 101, 112, 115, 109, 112, 112, 113, 105, 114, 108, 109, 109, 115, 102, 104, 108, 117, 106, 113, 107, 115, 106, 99, 101, 105, 116, 117, 113, 116, 111, 108, 116, 114, 112, 115, 111, 128, 107, 113, 98, 103, 107, 104, 111, 111, 108, 103, 111, 110, 109, 113, 113, 114, 113, 130, 112, 115, 114, 111, 110, 111, 124, 116, 108, 98, 102, 107, 106, 95, 117, 95, 107, 116, 109, 108, 118, 105, 116, 112, 117, 110, 111, 108, 108, 112, 99, 110, 112, 114, 108, 115, 105, 111, 103, 109, 110, 125, 109, 108, 121, 111, 114, 112, 107, 108, 108, 108, 114, 103, 114, 111, 114, 114, 118, 117, 101, 99, 112, 101, 117, 119, 103, 109, 110, 99, 113, 107, 116, 94, 128, 96, 106, 106, 101, 112, 121, 117, 127, 111, 109, 105, 107, 109, 122, 110, 111, 108, 110, 113, 114, 115, 109, 110, 96, 110, 108, 109, 117, 100, 110, 109, 110, 109, 107, 108, 109, 112, 110, 116, 104, 112, 111, 121, 113, 110, 97, 121, 119, 103, 109, 108, 121, 114, 108, 122, 115, 115, 117, 114, 113, 102, 114, 106, 98, 107, 109, 107, 120, 108, 111, 111, 107, 107, 110, 110, 124, 107, 117, 105, 114, 111, 104, 100, 118, 108, 111, 110, 102, 109, 104, 113, 104, 108, 113, 107, 121, 121, 113, 100, 119, 117, 105, 108, 116, 121, 104, 117, 108, 108, 103, 114, 101, 105, 111, 107, 113, 117, 111, 119, 110, 103, 106, 117, 111, 114, 114, 111, 105, 109, 113, 107, 110, 121, 119, 120, 114, 97, 112, 106, 116, 109, 121, 118, 109, 113, 107, 110, 111, 114, 119, 116, 119, 109, 104, 121, 92, 110, 107, 108, 110, 114, 104, 109, 115, 117, 107, 107, 115, 98, 106, 109, 110, 104, 113, 105, 114, 116, 115, 112, 112, 107, 110, 104, 110, 108, 114, 118, 104, 115, 111, 111, 109, 109, 100, 111, 117, 105, 109, 108, 104, 109, 111, 106, 113, 109, 104, 106, 111, 117, 103, 115, 104, 111, 113, 107, 113, 111, 97, 108, 112, 99, 91, 106, 110, 124, 135, 114, 107, 116, 112, 121, 115, 109, 116, 114, 108, 95, 107, 112, 111, 110, 110, 103, 115, 108, 108, 109, 101, 105, 105, 111, 113, 111, 106, 114, 115, 106, 112, 118, 115, 123, 110, 119, 110, 108, 107, 99, 114, 122, 110, 108, 128, 115, 116, 107, 116, 112, 117, 105, 108, 108, 102, 106, 108, 112, 114, 112, 100, 111, 104, 103, 110, 110, 117, 111, 108, 109, 100, 103, 113, 118, 117, 107, 104, 111, 115, 110, 119, 101, 107, 115, 103, 109, 105, 113, 105, 111, 109, 110, 109, 110, 108, 108, 106, 121, 115, 114, 105, 105, 110, 112, 115, 119, 110, 110, 105, 112, 111, 106, 128, 118, 110, 113, 95, 104, 107, 109, 104, 120, 121, 99, 107, 120, 119, 108, 109, 110, 110, 114, 105, 103, 119, 102, 109, 109, 113, 113, 103, 116, 112, 119, 98, 114, 114, 107, 115, 113, 94, 112, 113, 121, 114, 109, 111, 108, 109, 107, 111, 119, 101, 113, 110, 114, 106, 111, 110, 116, 115, 116, 116, 105, 106, 106, 108, 108, 114, 111, 100, 109, 110, 108, 107, 106, 111, 106, 108, 109, 91, 117, 108, 94, 115, 107, 106, 115, 103, 108, 111, 108, 112, 109, 112, 120, 107, 110, 108, 110, 98, 113, 122, 125, 109, 93, 111, 120, 110, 117, 103, 110, 114, 130, 107, 116, 108, 98, 109, 146, 98, 111, 111, 111, 107, 111, 112, 98, 109, 116, 111, 112, 110, 98, 108, 109, 113, 110, 106, 115, 109, 106, 112, 106, 110, 112, 115, 106, 104, 136, 121, 115, 112, 118, 113, 117, 117, 106, 117, 113, 113, 118, 113, 117, 105, 103, 109, 110, 109, 114, 93, 113, 116, 109, 113, 112, 109, 110, 107, 110, 107, 113, 105, 118, 108, 97, 113, 115, 106, 110, 121, 112, 114, 109, 102, 107, 114, 130, 110, 107, 115, 117, 107, 120, 113, 110, 113, 109, 112, 109, 112, 111, 110, 121, 110, 110, 97, 116, 108, 116, 108, 111, 104, 111, 108, 111, 110, 113, 109, 115, 115, 96, 108, 102, 96, 116, 112, 111, 111, 100, 111, 112, 116, 109, 105, 100, 108, 134, 108, 104, 113, 119, 112, 104, 113, 115, 113, 102, 110, 114, 106, 110, 106, 107, 105, 112, 113, 117, 107, 101, 119, 112, 113, 120, 102, 105, 111, 101, 113, 113, 110, 118, 112, 103, 111, 115, 110, 100, 108, 112, 106, 109, 98, 113, 109, 108, 114, 113, 120, 120, 105, 107, 109, 122, 119, 116, 117, 111, 115, 136, 100, 107, 110, 103, 113, 120, 113, 113, 116, 103, 107, 126, 121, 104, 106, 109, 109, 113, 105, 108, 112, 100, 112, 103, 127, 102, 95, 112, 109, 110, 113, 105, 111, 113, 112, 70, 109, 110, 110, 111, 104, 111, 128, 88, 103, 109, 110, 109, 105, 108, 109, 107, 115, 112, 106, 110, 112, 117, 123, 102, 118, 179, 107, 108, 109, 108, 105, 109, 120, 113, 113, 111, 116, 107, 116, 113, 113, 108, 104, 108, 104, 112, 114, 115, 114, 115, 111, 115, 112, 111, 117, 113, 111, 108, 106, 111, 116, 115, 110, 110, 115, 112, 113, 109, 106, 114, 99, 118, 66, 108, 114, 107, 97, 102, 115, 120, 105, 102, 109, 103, 105, 111, 115, 104, 102, 109, 100, 110, 111, 116, 119, 119, 111, 108, 108, 117, 119, 115, 114, 102, 95, 117, 111, 102, 117, 104, 114, 112, 94, 111, 112, 116, 119, 111, 107, 115, 117, 133, 106, 126, 98, 110, 114, 107, 108, 118, 100, 105, 103, 110, 82, 121, 120, 106, 99, 104, 117, 121, 104, 106, 107, 117, 104, 109, 104, 108, 108, 126, 112, 108, 114, 102, 105, 107, 117, 104, 110, 120, 110, 116, 112, 103, 110, 103, 113, 109, 113, 133, 111, 110, 110, 114, 118, 114, 107, 116, 85, 107, 115, 111, 110, 111, 110, 117, 116, 113, 116, 109, 106, 111, 105, 113, 106, 106, 110, 115, 108, 103, 106, 109, 106, 120, 104, 114, 104, 103, 101, 110, 114, 106, 106, 118, 106, 110, 111, 105, 102, 121, 109, 107, 115, 106, 115, 120, 105, 97, 118, 120, 108, 114, 106, 101, 107, 124, 134, 111, 110, 102, 109, 112, 101, 115, 108, 110, 113, 117, 105, 108, 105, 107, 114, 121, 102, 119, 108, 114, 101, 108, 109, 113, 107, 112, 112, 110, 99, 110, 110, 114, 107, 116, 109, 110, 111, 110, 109, 109, 112, 106, 106, 111, 115, 110, 115, 112, 105, 106, 106, 120, 109, 110, 112, 110, 109, 104, 124, 123, 106, 108, 111, 118, 106, 107, 117, 108, 106, 101, 113, 118, 109, 110, 102, 104, 107, 113, 111, 104, 123, 113, 110, 112, 78, 107, 107, 110, 108, 114, 107, 105, 118, 109, 112, 89, 118, 108, 119, 111, 115, 123, 122, 116, 111, 110, 112, 112, 107, 102, 110, 106, 110, 113, 115, 112, 107, 103, 114, 106, 99, 115, 107, 107, 111, 110, 120, 107, 112, 111, 106, 110, 115, 107, 104, 110, 110, 96, 107, 117, 112, 100, 104, 107, 112, 107, 102, 108, 111, 107, 113, 109, 113, 108, 106, 110, 111, 106, 111, 111, 107, 109, 105, 126, 108, 113, 104, 112, 112, 111, 110, 105, 115, 112, 98, 111, 107, 119, 115, 115, 112, 103, 115, 111, 109, 117, 105, 115, 102, 112, 111, 109, 108, 117, 112, 99, 108, 115, 102, 104, 106, 111, 105, 107, 106, 106, 113, 103, 107, 107, 107, 104, 103, 106, 102, 116, 107, 102, 111, 114, 111, 115, 105, 112, 113, 115, 109, 105, 117, 118, 110, 115, 109, 113, 114, 108, 109, 109, 119, 113, 109, 119, 103, 90, 107, 110, 108, 103, 116, 107, 110, 117, 110, 117, 104, 109, 128, 118, 109, 109, 116, 116, 110, 110, 109, 110, 133, 117, 110, 131, 107, 109, 105, 111, 107, 111, 108, 103, 110, 119, 114, 109, 105, 109, 114, 102, 110, 105, 114, 107, 99, 107, 107, 108, 112, 102, 108, 113, 109, 116, 112, 102, 107, 113, 106, 115, 98, 106, 127, 107, 111, 105, 112, 112, 92, 121, 110, 118, 112, 108, 115, 100, 134, 107, 108, 117, 102, 116, 107, 110, 109, 109, 112, 110, 110, 110, 107, 114, 120, 111, 116, 104, 114, 103, 107, 112, 110, 116, 110, 109, 106, 104, 107, 103, 103, 113, 116, 118, 113, 112, 112, 106, 111, 126, 112, 116, 117, 109, 120, 114, 119, 106, 107, 114, 106, 112, 107, 110, 109, 109, 104, 110, 107, 96, 116, 103, 105, 111, 107, 113, 116, 101, 103, 106, 106, 106, 106, 112, 101, 116, 111, 112, 107, 107, 113, 113, 108, 101, 104, 112, 108, 116, 95, 116, 112, 114, 114, 119, 105, 106, 126, 118, 115, 110, 124, 118, 144, 117, 107, 107, 119, 112, 116, 105, 100, 110, 101, 114, 123, 115, 113, 106, 105, 107, 108, 109, 129, 109, 107, 109, 114, 115, 109, 106, 102, 107, 108, 123, 102, 109, 115, 112, 119, 109, 118, 111, 110, 113, 108, 111, 110, 110, 112, 109, 111, 115, 107, 104, 110, 112, 104, 109, 110, 110, 110, 108, 109, 106, 107, 109, 109, 111, 105, 109, 108, 99, 110, 114, 107, 116, 107, 110, 110, 112, 110, 104, 110, 115, 118, 116, 113, 107, 110, 113, 110, 107, 109, 107, 102, 111, 111, 113, 107, 113, 108, 120, 109, 111, 75, 109, 98, 113, 114, 109, 111, 112, 119, 106, 115, 110, 106, 111, 111, 110, 113, 107, 110, 110, 108, 110, 115, 109, 110, 108, 111, 108, 109, 108, 112, 108, 112, 111, 109, 112, 106, 103, 105, 108, 113, 112, 110, 113, 113, 106, 109, 110, 110, 107, 108, 113, 108, 102, 107, 111, 113, 107, 107, 109, 107, 112, 131, 105, 112, 110, 108, 107, 104, 108, 113, 109, 120, 111, 112, 108, 105, 113, 108, 108, 110, 110, 110, 112, 109, 109, 110, 109, 106, 112, 110, 111, 111, 103, 110, 106, 115, 119, 109, 111, 110, 122, 106, 114, 108, 112, 109, 111, 114, 110, 113, 110, 111, 111, 113, 107, 108, 121, 116, 112, 111, 98, 108, 106, 113, 109, 107, 109, 108, 112, 107, 103, 111, 110, 110, 98, 115, 106, 109, 109, 107, 106, 109, 117, 110, 107, 107, 111, 113, 107, 107, 114, 106, 110, 115, 114, 112, 106, 104, 107, 113, 110, 107, 107, 111, 115, 109, 108, 115, 107, 107, 112, 109, 96, 112, 115, 105, 110, 109, 108, 107, 111, 111, 107, 110, 110, 121, 109, 111, 111, 106, 110, 104, 113, 106, 111, 111, 111, 112, 109, 109, 112, 111, 110, 115, 109, 111, 114, 113, 109, 113, 109, 113, 110, 111, 109, 108, 110, 111, 116, 108, 110, 106, 106, 114, 110, 110, 106, 109, 106, 107, 110, 114, 111, 106, 115, 107, 107, 113, 111, 114, 111, 108, 107, 106, 111, 104, 112, 113, 110, 109, 107, 113, 110, 114, 110, 107, 114, 110, 109, 109, 113, 110, 112, 117, 109, 105, 114, 112, 120, 111, 115, 105, 111, 110, 107, 107, 104, 111, 112, 112, 112, 110, 122, 109, 80, 109, 111, 118, 109, 111, 107, 115, 115, 112, 111, 116, 101, 108, 108, 113, 114, 105, 109, 146, 109, 105, 106, 116, 113, 109, 114, 108, 106, 111, 110, 119, 114, 108, 109, 113, 111, 109, 126, 112, 111, 107, 112, 119, 109, 113, 102, 110, 109, 106, 109, 112, 104, 108, 104, 113, 113, 107, 115, 109, 120, 111, 112, 108, 108, 115, 106, 111, 113, 113, 113, 113, 111, 109, 107, 109, 107, 108, 108, 108, 106, 106, 109, 110, 65, 135, 111, 107, 108, 96, 156, 111, 111, 108, 112, 110, 110, 110, 112, 114, 113, 106, 112, 106, 111, 112, 113, 108, 110, 108, 117, 109, 113, 100, 111, 103, 98, 109, 108, 112, 108, 111, 120, 114, 108, 111, 113, 105, 107, 108, 107, 109, 111, 107, 99, 111, 115, 116, 110, 110, 105, 112, 109, 109, 110, 112, 112, 111, 108, 110, 115, 115, 122, 95, 106, 106, 112, 114, 104, 114, 111, 110, 112, 108, 101, 111, 110, 116, 112, 117, 112, 120, 107, 106, 106, 108, 111, 110, 115, 106, 113, 112, 109, 109, 111, 108, 107, 121, 105, 113, 113, 109, 112, 108, 106, 107, 114, 113, 109, 111, 104, 110, 110, 110, 112, 114, 111, 103, 111, 110, 105, 109, 113, 110, 117, 108, 110, 109, 109, 111, 112, 102, 109, 113, 111, 110, 110, 111, 105, 108, 108, 103, 110, 108, 106, 109, 109, 104, 107, 109, 104, 109, 111, 131, 115, 100, 105, 111, 111, 107, 116, 106, 110, 111, 109, 111, 107, 108, 112, 108, 109, 107, 107, 105, 107, 107, 108, 109, 110, 107, 110, 101, 106, 113, 112, 106, 109, 107, 111, 112, 121, 109, 114, 115, 110, 101, 113, 118, 105, 108, 109, 113, 107, 116, 105, 112, 111, 112, 118, 109, 111, 102, 109, 109, 111, 111, 106, 118, 105, 112, 110, 108, 109, 106, 106, 111, 112, 112, 105, 106, 113, 106, 91, 112, 105, 110, 112, 109, 108, 107, 111, 111, 105, 104, 111, 102, 110, 112, 106, 109, 107, 115, 115, 121, 115, 110, 108, 105, 115, 109, 113, 112, 106, 109, 110, 121, 117, 108, 111, 116, 104, 111, 109, 116, 111, 106, 116, 110, 103, 109, 102, 102, 98, 114, 108, 109, 110, 112, 113, 117, 113, 102, 105, 115, 109, 104, 110, 104, 103, 107, 107, 107, 109, 113, 103, 110, 107, 110, 112, 99, 109, 110, 117, 111, 107, 113, 107, 111, 117, 110, 106, 103, 106, 108, 104, 109, 111, 108, 112, 101, 110, 110, 108, 113, 107, 109, 110, 107, 114, 107, 114, 113, 108, 111, 110, 113, 108, 112, 109, 108, 107, 105, 109, 106, 111, 116, 115, 115, 115, 109, 111, 105, 111, 117, 104, 103, 112, 112, 105, 109, 107, 104, 106, 109, 113, 110, 111, 105, 108, 117, 110, 110, 116, 116, 107, 107, 117, 108, 110, 113, 108, 103, 113, 111, 111, 112, 104, 113, 119, 109, 112, 111, 107, 110, 107, 102, 108, 114, 117, 109, 109, 112, 106, 116, 102, 114, 108, 110, 110, 127, 111, 110, 110, 108, 108, 111, 99, 105, 106, 107, 112, 109, 109, 112, 107, 112, 109, 111, 107, 111, 105, 112, 100, 107, 109, 110, 105, 97, 103, 116, 111, 99, 107, 111, 111, 105, 111, 100, 112, 110, 102, 113, 112, 108, 107, 111, 120, 107, 99, 114, 107, 116, 107, 120, 110, 107, 115, 114, 102, 105, 105, 113, 108, 114, 110, 113, 106, 118, 116, 106, 109, 126, 109, 113, 112, 106, 115, 113, 104, 115, 111, 108, 103, 93, 102, 113, 106, 114, 114, 107, 106, 113, 106, 118, 110, 115, 108, 111, 104, 106, 108, 116, 111, 113, 113, 110, 111, 102, 113, 108, 117, 109, 104, 112, 115, 109, 110, 110, 108, 111, 111, 114, 107, 111, 110, 106, 107, 105, 110, 116, 109, 116, 107, 112, 103, 110, 116, 107, 108, 110, 107, 116, 117, 112, 117, 114, 107, 107, 112, 110, 99, 115, 116, 112, 117, 110, 112, 106, 113, 117, 115, 109, 113, 96, 108, 111, 109, 120, 117, 108, 114, 112, 108, 112, 108, 110, 110, 110, 112, 109, 110, 118, 110, 112, 109, 113, 113, 111, 110, 115, 105, 110, 109, 109, 104, 111, 106, 110, 105, 108, 111, 112, 106, 110, 113, 111, 106, 118, 110, 111, 116, 112, 114, 109, 112, 122, 106, 114, 107, 106, 108, 114, 107, 110, 110, 107, 109, 113, 102, 116, 110, 115, 112, 109, 112, 106, 108, 117, 102, 112, 109, 104, 109, 110, 113, 110, 105, 115, 111, 107, 110, 111, 112, 115, 112, 108, 110, 118, 110, 107, 112, 114, 110, 105, 108, 106, 110, 109, 100, 110, 113, 111, 112, 99, 106, 108, 112, 105, 111, 108, 109, 108, 117, 109, 107, 109, 109, 111, 109, 105, 111, 108, 109, 102, 112, 108, 111, 108, 109, 113, 114, 112, 115, 111, 110, 113, 109, 112, 109, 111, 109, 111, 110, 108, 111, 106, 114, 105, 115, 113, 104, 105, 112, 107, 112, 110, 107, 106, 111, 117, 114, 115, 108, 112, 118, 114, 112, 108, 109, 107, 113, 110, 109, 109, 104, 106, 106, 109, 110, 116, 116, 107, 111, 102, 108, 109, 110, 97, 112, 117, 111, 114, 107, 108, 109, 115, 111, 114, 108, 108, 108, 111, 110, 108, 104, 108, 112, 110, 109, 110, 110, 106, 111, 111, 115, 115, 113, 107, 111, 111, 111, 105, 106, 106, 103, 117, 115, 103, 109, 109, 107, 103, 113, 111, 104, 109, 109, 108, 108, 97, 110, 107, 105, 108, 111, 112, 117, 105, 108, 108, 103, 112, 111, 109, 109, 110, 107, 108, 107, 113, 113, 107, 119, 105, 112, 105, 105, 111, 112, 113, 111, 110, 103, 110, 108, 117, 107, 112, 111, 111, 107, 105, 111, 111, 116, 114, 111, 115, 110, 106, 118, 111, 107, 114, 110, 101, 114, 110, 108, 105, 103, 112, 116, 119, 109, 105, 110, 111, 106, 110, 105, 111, 109, 110, 117, 110, 107, 109, 110, 111, 104, 112, 111, 115, 116, 111, 110, 114, 112, 111, 103, 108, 110, 107, 114, 109, 114, 106, 106, 113, 119, 106, 109, 113, 107, 110, 107, 106, 106, 111, 111, 111, 109, 120, 112, 118, 109, 109, 114, 110, 105, 107, 109, 106, 115, 108, 109, 107, 109, 109, 109, 113, 115, 123, 106, 115, 106, 105, 109, 113, 116, 110, 113, 117, 110, 109, 104, 111, 112, 104, 120, 113, 109, 99, 112, 109, 110, 111, 102, 112, 113, 101, 110, 114, 107, 109, 113, 108, 116, 109, 114, 107, 115, 108, 106, 103, 106, 108, 108, 109, 107, 107, 109, 110, 102, 107, 117, 108, 109, 108, 111, 108, 107, 112, 117, 114, 115, 112, 112, 109, 110, 111, 111, 109, 111, 107, 104, 111, 109, 101, 112, 110, 110, 112, 112, 122, 110, 110, 110, 108, 113, 118, 114, 110, 115, 108, 112, 109, 109, 109, 110, 116, 117, 109, 110, 109, 115, 111, 106, 111, 106, 108, 118, 110, 108, 113, 108, 114, 110, 110, 104, 107, 112, 107, 113, 104, 104, 105, 110, 115, 111, 110, 111, 111, 112, 108, 122, 103, 109, 122, 97, 109, 109, 105, 103, 110, 102, 114, 107, 113, 113, 110, 103, 110, 116, 101, 111, 109, 111, 112, 105, 100, 104, 123, 100, 115, 111, 114, 123, 104, 121, 106, 99, 109, 108, 98, 109, 117, 113, 117, 120, 115, 113, 115, 101, 108, 120, 110, 118, 107, 111, 118, 108, 113, 112, 116, 110, 107, 114, 109, 113, 110, 102, 111, 110, 100, 106, 106, 103, 109, 105, 108, 106, 101, 106, 108, 107, 104, 106, 103, 107, 103, 114, 118, 106, 103, 111, 111, 103, 102, 110, 118, 135, 110, 117, 101, 111, 114, 105, 109, 102, 110, 114, 112, 115, 132, 105, 114, 104, 126, 113, 106, 110, 114, 85, 109, 99, 115, 111, 99, 113, 106, 114, 106, 88, 104, 108, 113, 115, 101, 102, 112, 115, 100, 97, 108, 112, 115, 115, 114, 121, 108, 113, 112, 110, 112, 118, 111, 115, 116, 115, 108, 110, 113, 113, 109, 144, 111, 102, 118, 114, 103, 107, 118, 109, 111, 113, 105, 121, 118, 109, 110, 114, 115, 113, 111, 100, 105, 111, 117, 119, 130, 114, 104, 110, 110, 99, 96, 110, 102, 106, 120, 110, 106, 111, 110, 106, 105, 108, 113, 117, 94, 127, 109, 118, 113, 117, 109, 114, 115, 122, 109, 119, 122, 107, 112, 117, 130, 105, 137, 115, 113, 104, 111, 114, 116, 116, 108, 119, 109, 117, 112, 106, 119, 110, 121, 106, 106, 111, 110, 123, 103, 113, 121, 116, 116, 116, 111, 103, 95, 104, 107, 97, 99, 110, 106, 105, 108, 113, 106, 110, 90, 118, 99, 105, 108, 113, 114, 112, 111, 114, 101, 123, 113, 103, 119, 108, 96, 113, 111, 112, 115, 116, 114, 108, 104, 117, 98, 107, 112, 119, 113, 108, 110, 112, 109, 101, 109, 111, 109, 108, 111, 102, 82, 112, 110, 116, 100, 101, 116, 109, 117, 113, 104, 119, 117, 119, 111, 109, 100, 99, 117, 110, 111, 108, 109, 105, 111, 114, 110, 111, 107, 105, 102, 111, 108, 117, 112, 121, 112, 102, 109, 115, 109, 102, 110, 104, 111, 99, 106, 114, 115, 108, 114, 101, 101, 109, 126, 117, 109, 106, 112, 115, 108, 103, 110, 113, 113, 94, 114, 115, 111, 114, 114, 117, 99, 114, 110, 114, 96, 107, 106, 114, 110, 109, 85, 110, 113, 114, 107, 104, 113, 112, 107, 109, 107, 112, 106, 102, 103, 110, 111, 108, 103, 107, 98, 102, 114, 111, 105, 94, 113, 85, 109, 109, 112, 115, 100, 111, 113, 105, 114, 114, 100, 106, 109, 113, 110, 112, 113, 110, 109, 100, 107, 117, 115, 108, 105, 117, 93, 106, 107, 102, 111, 106, 101, 105, 116, 106, 130, 114, 105, 99, 113, 114, 116, 116, 122, 105, 112, 108, 111, 112, 117, 113, 109, 110, 110, 114, 108, 102, 113, 114, 109, 123, 111, 118, 114, 97, 101, 112, 109, 112, 104, 118, 104, 106, 105, 110, 111, 117, 112, 106, 111, 109, 115, 106, 110, 102, 111, 106, 118, 111, 115, 109, 101, 104, 112, 99, 110, 109, 107, 117, 93, 107, 113, 111, 117, 103, 110, 112, 117, 114, 121, 117, 118, 116, 106, 106, 112, 118, 116, 113, 119, 107, 115, 112, 105, 98, 143, 118, 114, 104, 118, 99, 111, 114, 108, 104, 111, 113, 110, 120, 110, 110, 112, 114, 121, 92, 115, 108, 109, 110, 100, 116, 108, 104, 111, 112, 102, 112, 115, 112, 104, 101, 111, 109, 114, 112, 109, 124, 113, 108, 125, 111, 104, 105, 111, 101, 113, 139, 107, 116, 123, 115, 112, 110, 122, 108, 109, 111, 119, 102, 124, 111, 115, 106, 135, 111, 120, 108, 109, 117, 118, 111, 119, 106, 120, 116, 108, 100, 101, 121, 109, 92, 108, 121, 104, 110, 111, 115, 117, 126, 106, 116, 108, 111, 112, 104, 104, 116, 106, 114, 116, 98, 96, 116, 111, 118, 106, 105, 112, 105, 110, 107, 108, 108, 111, 108, 109, 110, 106, 112, 104, 123, 111, 117, 110, 110, 108, 113, 109, 118, 99, 112, 111, 109, 107, 112, 109, 108, 108, 123, 109, 111, 110, 106, 104, 110, 109, 114, 109, 115, 108, 108, 100, 100, 105, 110, 107, 98, 103, 109, 116, 121, 105, 118, 124, 107, 119, 119, 102, 108, 111, 101, 107, 124, 108, 110, 118, 105, 112, 115, 108, 112, 108, 112, 101, 108, 120, 112, 114, 98, 113, 109, 108, 113, 113, 116, 114, 97, 113, 113, 105, 102, 109, 117, 110, 116, 106, 105, 113, 99, 106, 108, 112, 127, 97, 132, 108, 106, 113, 116, 104, 118, 113, 106, 101, 112, 118, 95, 105, 140, 113, 114, 122, 116, 111, 115, 98, 112, 108, 118, 114, 115, 115, 107, 111, 118, 115, 117, 99, 101, 119, 113, 113, 109, 110, 111, 117, 104, 109, 113, 112, 104, 125, 110, 112, 126, 114, 104, 111, 107, 102, 119, 102, 110, 110, 98, 107, 109, 110, 132, 108, 108, 116, 113, 109, 119, 105, 120, 122, 113, 119, 111, 130, 109, 129, 117, 118, 109, 110, 105, 97, 122, 116, 99, 112, 116, 104, 121, 102, 111, 117, 101, 112, 107, 109, 107, 114, 101, 119, 108, 106, 105, 104, 114, 112, 110, 120, 119, 106, 113, 109, 108, 110, 110, 115, 120, 94, 116, 120, 120, 103, 104, 117, 115, 114, 116, 120, 114, 106, 106, 113, 108, 115, 105, 112, 108, 109, 124, 116, 118, 120, 100, 105, 98, 109, 111, 111, 120, 110, 114, 114, 121, 114, 115, 111, 109, 111, 115, 106, 109, 114, 117, 107, 95, 104, 128, 103, 114, 108, 102, 108, 112, 109, 114, 109, 119, 92, 120, 102, 116, 117, 109, 110, 93, 109, 109, 86, 119, 112, 105, 132, 114, 108, 111, 114, 116, 116, 117, 114, 101, 132, 110, 104, 102, 125, 100, 103, 117, 103, 111, 118, 108, 96, 103, 112, 113, 119, 101, 110, 120, 115, 121, 95, 118, 103, 109, 112, 111, 119, 131, 106, 110, 114, 109, 111, 114, 109, 120, 110, 117, 114, 113, 112, 116, 108, 104, 122, 111, 111, 120, 107, 116, 102, 103, 119, 103, 103, 109, 119, 102, 114, 115, 110, 94, 99, 117, 98, 93, 110, 106, 115, 117, 110, 111, 108, 115, 104, 120, 116, 116, 97, 120, 103, 105, 116, 116, 107, 104, 116, 115, 109, 118, 119, 117, 107, 113, 107, 107, 114, 115, 133, 108, 108, 111, 118, 106, 119, 100, 103, 107, 106, 105, 115, 109, 106, 108, 119, 116, 93, 113, 116, 108, 112, 121, 117, 111, 114, 109, 119, 105, 113, 104, 108, 106, 114, 113, 109, 109, 98, 118, 110, 101, 101, 121, 120, 111, 117, 121, 101, 115, 108, 108, 121, 96, 108, 111, 113, 120, 104, 119, 108, 111, 113, 118, 113, 114, 112, 91, 113, 115, 119, 106, 112, 115, 107, 110, 116, 124, 101, 114, 106, 105, 109, 111, 107, 104, 108, 116, 106, 127, 110, 108, 114, 102, 107, 106, 110, 106, 115, 115, 111, 100, 117, 95, 110, 123, 115, 109, 113, 104, 126, 118, 86, 92, 94, 107, 115, 116, 114, 117, 113, 96, 109, 112, 104, 109, 95, 108, 111, 113, 112, 106, 107, 112, 109, 115, 111, 106, 113, 110, 105, 106, 103, 108, 101, 116, 110, 105, 101, 111, 100, 105, 111, 112, 106, 108, 111, 117, 102, 104, 103, 102, 113, 104, 113, 119, 116, 109, 112, 115, 113, 114, 113, 114, 100, 116, 116, 111, 104, 103, 102, 105, 112, 100, 101, 118, 109, 114, 115, 123, 111, 115, 113, 106, 100, 110, 102, 113, 108, 109, 126, 99, 121, 121, 117, 101, 120, 113, 106, 122, 118, 103, 117, 114, 108, 108, 89, 100, 121, 108, 112, 117, 105, 107, 112, 116, 108, 111, 109, 116, 116, 111, 104, 111, 114, 111, 109, 115, 117, 102, 123, 105, 118, 110, 119, 101, 111, 113, 114, 109, 114, 108, 109, 102, 111, 114, 109, 107, 106, 118, 109, 98, 112, 105, 108, 119, 112, 100, 100, 115, 118, 109, 115, 119, 117, 123, 112, 108, 123, 110, 110, 111, 117, 107, 111, 115, 106, 90, 113, 113, 103, 112, 89, 119, 100, 109, 116, 95, 113, 105, 105, 117, 123, 110, 105, 112, 105, 107, 116, 116, 106, 102, 112, 110, 106, 113, 103, 121, 115, 112, 100, 119, 112, 112, 101, 106, 112, 107, 103, 97, 115, 115, 103, 116, 99, 117, 107, 105, 109, 118, 96, 107, 115, 109, 101, 111, 106, 108, 97, 114, 116, 107, 108, 108, 102, 112, 114, 113, 95, 118, 110, 95, 120, 110, 113, 118, 121, 112, 111, 105, 122, 111, 95, 110, 110, 111, 111, 102, 83, 109, 113, 105, 109, 112, 116, 112, 108, 114, 114, 117, 102, 124, 114, 106, 103, 110, 111, 104, 105, 107, 108, 104, 112, 114, 105, 117, 95, 110, 119, 127, 107, 106, 115, 96, 108, 114, 113, 114, 117, 104, 115, 107, 104, 108, 109, 106, 113, 109, 106, 123, 115, 108, 116, 109, 130, 105, 106, 104, 101, 110, 112, 115, 114, 115, 109, 113, 101, 121, 110, 112, 115, 114, 115, 113, 117, 105, 105, 111, 110, 120, 113, 116, 116, 112, 104, 104, 107, 118, 112, 105, 106, 102, 108, 117, 108, 116, 109, 101, 113, 123, 111, 126, 110, 118, 106, 105, 107, 114, 115, 121, 113, 111, 107, 112, 118, 118, 104, 103, 105, 116, 106, 111, 93, 106, 107, 104, 103, 107, 111, 120, 99, 107, 113, 114, 98, 114, 110, 117, 114, 106, 120, 106, 113, 112, 106, 123, 100, 103, 103, 109, 119, 112, 113, 100, 103, 117, 108, 115, 115, 101, 109, 101, 112, 117, 112, 103, 109, 111, 106, 118, 124, 107, 107, 115, 108, 112, 104, 96, 104, 114, 104, 106, 112, 112, 91, 108, 113, 115, 101, 117, 110, 107, 107, 128, 111, 93, 110, 106, 110, 110, 111, 111, 100, 118, 112, 117, 110, 110, 115, 109, 110, 111, 107, 109, 118, 119, 107, 113, 106, 104, 100, 114, 109, 105, 118, 106, 113, 108, 113, 106, 115, 107, 111, 105, 110, 121, 124, 113, 103, 110, 113, 117, 115, 110, 100, 111, 117, 102, 103, 108, 114, 118, 102, 107, 96, 110, 107, 110, 107, 112, 110, 113, 105, 105, 101, 101, 111, 87, 114, 125, 109, 106, 111, 111, 108, 109, 104, 110, 121, 115, 109, 106, 138, 97, 126, 100, 113, 101, 117, 110, 110, 112, 102, 113, 123, 118, 108, 119, 107, 113, 102, 117, 99, 104, 120, 109, 108, 109, 103, 113, 102, 115, 113, 105, 111, 118, 105, 108, 101, 108, 105, 91, 103, 121, 116, 108, 104, 117, 109, 107, 108, 110, 101, 118, 99, 121, 116, 98, 111, 114, 105, 115, 108, 115, 112, 110, 112, 109, 111, 110, 101, 100, 107, 93, 112, 102, 105, 112, 107, 114, 101, 112, 114, 114, 112, 124, 116, 111, 111, 111, 113, 111, 106, 120, 115, 103, 108, 113, 112, 104, 108, 106, 114, 127, 103, 100, 103, 108, 111, 117, 109, 109, 124, 106, 107, 122, 106, 101, 110, 117, 114, 121, 99, 108, 113, 119, 115, 113, 114, 110, 120, 112, 114, 111, 108, 103, 116, 111, 115, 114, 110, 115, 112, 101, 113, 100, 99, 104, 105, 99, 100, 110, 117, 114, 105, 104, 105, 115, 110, 109, 103, 108, 116, 109, 113, 116, 104, 115, 111, 113, 112, 102, 113, 109, 119, 106, 110, 114, 111, 109, 110, 121, 108, 114, 128, 107, 110, 107, 112, 106, 116, 112, 108, 118, 103, 116, 107, 111, 107, 121, 112, 107, 99, 112, 105, 116, 104, 112, 103, 111, 109, 105, 117, 108, 106, 93, 104, 112, 106, 105, 109, 112, 101, 115, 105, 116, 105, 117, 122, 117, 126, 110, 112, 105, 111, 85, 102, 116, 108, 99, 89, 105, 106, 108, 108, 115, 107, 111, 101, 113, 111, 100, 112, 103, 115, 111, 105, 108, 119, 116, 103, 105, 116, 107, 127, 152, 104, 139, 105, 105, 98, 117, 105, 102, 120, 108, 103, 109, 108, 114, 103, 104, 104, 113, 110, 114, 114, 119, 112, 106, 103, 105, 112, 107, 109, 108, 107, 87, 108, 106, 106, 108, 98, 109, 117, 93, 104, 109, 132, 117, 102, 114, 113, 109, 118, 105, 112, 110, 117, 97, 107, 112, 118, 97, 109, 112, 106, 112, 115, 114, 103, 109, 110, 124, 104, 110, 107, 114, 116, 104, 99, 111, 116, 110, 118, 106, 118, 116, 107, 96, 107, 113, 105, 115, 113, 104, 110, 119, 101, 110, 113, 110, 108, 113, 103, 107, 104, 109, 114, 90, 98, 96, 115, 112, 107, 121, 114, 116, 110, 113, 101, 108, 105, 113, 111, 120, 108, 106, 108, 116, 105, 106, 110, 105, 110, 107, 106, 114, 103, 110, 109, 106, 110, 108, 104, 102, 110, 111, 96, 95, 101, 101, 119, 108, 98, 110, 113, 107, 115, 111, 114, 107, 112, 108, 115, 107, 103, 116, 112, 99, 121, 109, 111, 106, 103, 104, 112, 118, 118, 107, 97, 118, 113, 108, 111, 108, 121, 121, 117, 111, 106, 104, 128, 125, 116, 124, 119, 117, 105, 109, 105, 116, 109, 123, 100, 90, 108, 104, 113, 113, 111, 112, 116, 101, 118, 113, 109, 109, 104, 114, 109, 103, 106, 113, 146, 103, 110, 114, 103, 115, 112, 113, 101, 111, 103, 107, 118, 106, 116, 98, 122, 122, 113, 113, 109, 120, 107, 106, 114, 108, 107, 120, 110, 110, 105, 116, 112, 104, 109, 102, 112, 107, 112, 109, 113, 101, 110, 100, 105, 116, 116, 117, 104, 114, 114, 109, 105, 111, 108, 119, 104, 111, 101, 114, 108, 108, 110, 109, 95, 114, 109, 117, 109, 97, 111, 124, 108, 108, 99, 114, 107, 110, 115, 113, 109, 117, 114, 123, 114, 98, 120, 113, 110, 107, 110, 111, 128, 112, 112, 106, 103, 100, 115, 107, 113, 115, 112, 113, 109, 103, 113, 103, 110, 120, 116, 108, 115, 111, 109, 104, 113, 104, 119, 117, 103, 109, 116, 119, 111, 98, 107, 104, 107, 108, 116, 112, 113, 100, 115, 109, 108, 107, 108, 113, 114, 119, 116, 107, 107, 110, 102, 109, 102, 107, 105, 106, 105, 109, 109, 115, 107, 115, 105, 104, 113, 110, 124, 97, 116, 117, 113, 110, 105, 119, 107, 111, 100, 112, 112, 105, 105, 109, 106, 102, 113, 118, 110, 117, 115, 107, 124, 109, 110, 115, 104, 101, 103, 107, 106, 104, 110, 121, 108, 102, 117, 98, 110, 103, 121, 110, 120, 99, 100, 107, 112, 118, 121, 113, 98, 105, 110, 129, 104, 120, 117, 115, 114, 114, 113, 109, 103, 118, 102, 103, 118, 118, 113, 108, 115, 115, 110, 106, 110, 118, 103, 113, 120, 110, 110, 110, 109, 112, 107, 108, 130, 111, 107, 106, 118, 116, 104, 108, 113, 115, 114, 96, 116, 107, 110, 110, 102, 104, 100, 109, 107, 112, 111, 94, 122, 116, 113, 104, 119, 105, 101, 108, 110, 99, 102, 116, 116, 93, 110, 107, 107, 113, 113, 113, 111, 118, 119, 116, 104, 117, 106, 128, 107, 109, 116, 110, 125, 103, 118, 119, 105, 107, 101, 99, 120, 101, 108, 99, 100, 112, 114, 113, 109, 109, 109, 109, 123, 110, 118, 119, 118, 109, 114, 106, 121, 91, 102, 111, 114, 107, 111, 116, 105, 120, 112, 112, 113, 108, 114, 109, 110, 110, 107, 112, 111, 110, 114, 110, 110, 112, 106, 98, 110, 115, 108, 109, 108, 109, 112, 108, 108, 107, 109, 111, 111, 109, 102, 111, 104, 121, 109, 110, 110, 113, 102, 113, 113, 107, 110, 108, 124, 107, 112, 111, 112, 111, 110, 109, 111, 112, 107, 113, 112, 114, 107, 114, 112, 117, 111, 110, 114, 111, 136, 114, 106, 113, 110, 110, 109, 108, 106, 108, 102, 112, 113, 110, 110, 102, 115, 112, 106, 110, 109, 112, 107, 109, 110, 111, 110, 114, 113, 109, 110, 110, 105, 111, 107, 107, 116, 110, 110, 106, 122, 111, 113, 110, 109, 107, 111, 110, 106, 108, 105, 111, 112, 109, 109, 107, 110, 109, 114, 108, 110, 107, 112, 106, 115, 106, 108, 115, 112, 111, 112, 110, 108, 111, 111, 113, 109, 104, 108, 108, 107, 110, 112, 108, 109, 112, 108, 110, 114, 110, 106, 111, 112, 108, 106, 111, 108, 112, 113, 108, 107, 112, 111, 123, 111, 112, 112, 112, 108, 109, 108, 93, 68, 112, 113, 106, 112, 113, 113, 108, 105, 111, 109, 108, 110, 108, 107, 112, 104, 114, 112, 114, 114, 109, 114, 109, 111, 120, 109, 113, 111, 116, 113, 113, 105, 111, 121, 112, 104, 109, 114, 113, 112, 109, 110, 109, 107, 107, 110, 120, 108, 113, 110, 110, 110, 108, 107, 109, 111, 110, 110, 104, 109, 104, 108, 108, 113, 109, 111, 110, 107, 117, 111, 109, 105, 110, 98, 113, 113, 109, 106, 109, 110, 109, 110, 127, 111, 109, 114, 108, 110, 105, 112, 107, 108, 113, 112, 104, 110, 108, 105, 107, 110, 118, 110, 108, 110, 110, 109, 111, 111, 109, 109, 107, 104, 115, 107, 109, 111, 110, 109, 111, 107, 114, 109, 111, 111, 111, 112, 112, 110, 115, 112, 98, 116, 111, 115, 113, 109, 110, 112, 109, 108, 112, 108, 104, 112, 106, 107, 109, 110, 111, 110, 111, 110, 113, 114, 114, 106, 107, 113, 112, 112, 113, 111, 108, 109, 116, 106, 111, 112, 104, 107, 111, 112, 110, 112, 112, 115, 108, 104, 110, 107, 107, 112, 109, 100, 108, 111, 105, 105, 112, 108, 111, 108, 111, 98, 110, 113, 116, 109, 108, 112, 113, 111, 111, 112, 111, 112, 108, 108, 99, 113, 110, 110, 120, 109, 111, 109, 112, 109, 111, 114, 115, 106, 116, 111, 114, 109, 115, 109, 104, 108, 111, 112, 113, 110, 110, 108, 106, 109, 113, 112, 110, 113, 112, 106, 108, 113, 114, 110, 109, 112, 109, 114, 108, 112, 110, 113, 126, 113, 108, 113, 114, 114, 113, 92, 113, 114, 100, 109, 107, 114, 115, 112, 111, 111, 109, 116, 112, 108, 109, 106, 107, 106, 110, 101, 108, 107, 109, 127, 111, 110, 122, 112, 104, 112, 103, 111, 107, 112, 118, 105, 112, 111, 108, 119, 111, 109, 114, 106, 115, 111, 124, 109, 116, 112, 106, 108, 109, 113, 110, 111, 111, 108, 112, 108, 110, 116, 106, 115, 104, 111, 109, 109, 109, 108, 109, 110, 115, 112, 109, 98, 94, 99, 107, 106, 108, 152, 105, 110, 121, 112, 111, 104, 113, 112, 107, 108, 106, 106, 126, 111, 110, 110, 112, 108, 107, 113, 110, 105, 105, 112, 113, 114, 106, 109, 111, 112, 136, 111, 112, 100, 111, 108, 111, 108, 111, 98, 98, 107, 110, 106, 104, 91, 106, 108, 97, 100, 91, 119, 111, 107, 100, 106, 105, 108, 111, 112, 109, 114, 106, 114, 115, 108, 106, 117, 109, 117, 108, 114, 117, 104, 103, 111, 102, 100, 123, 114, 107, 104, 109, 111, 102, 106, 111, 116, 114, 119, 115, 95, 111, 106, 101, 119, 101, 108, 110, 108, 103, 116, 109, 106, 123, 114, 99, 109, 120, 111, 108, 104, 113, 107, 111, 100, 110, 112, 112, 114, 113, 114, 104, 106, 107, 115, 109, 105, 100, 117, 113, 112, 103, 106, 99, 107, 108, 112, 100, 119, 116, 111, 110, 108, 113, 101, 107, 110, 113, 102, 103, 111, 128, 103, 118, 139, 113, 113, 113, 118, 117, 103, 113, 106, 109, 111, 114, 107, 122, 107, 105, 105, 106, 110, 110, 112, 109, 92, 132, 83, 117, 117, 111, 103, 103, 110, 106, 104, 113, 112, 113, 111, 110, 112, 109, 118, 108, 111, 109, 118, 96, 110, 110, 110, 101, 108, 105, 93, 109, 108, 117, 117, 122, 105, 101, 109, 107, 113, 121, 136, 111, 121, 121, 109, 112, 113, 107, 113, 107, 105, 110, 105, 122, 106, 99, 101, 109, 106, 109, 107, 110, 108, 96, 110, 107, 98, 111, 122, 112, 94, 100, 116, 117, 115, 102, 113, 115, 116, 139, 109, 108, 92, 113, 109, 110, 115, 109, 110, 107, 106, 104, 118, 122, 106, 107, 115, 103, 106, 118, 110, 112, 106, 109, 114, 104, 111, 112, 126, 105, 108, 108, 121, 120, 115, 106, 104, 117, 128, 106, 109, 125, 120, 119, 115, 103, 117, 108, 106, 105, 124, 104, 106, 106, 110, 120, 121, 101, 68, 115, 117, 106, 110, 113, 93, 111, 94, 114, 123, 105, 109, 116, 101, 111, 113, 114, 101, 117, 111, 111, 103, 116, 106, 111, 118, 107, 112, 101, 114, 125, 109, 109, 111, 106, 115, 114, 115, 110, 110, 119, 108, 111, 111, 107, 109, 106, 107, 116, 112, 111, 118, 106, 113, 110, 102, 112, 105, 113, 119, 114, 120, 111, 114, 109, 65, 106, 120, 113, 91, 111, 108, 110, 99, 124, 115, 118, 65, 103, 110, 112, 106, 107, 113, 130, 124, 118, 108, 111, 110, 114, 110, 105, 102, 109, 114, 105, 103, 115, 103, 98, 98, 102, 107, 109, 97, 118, 108, 104, 124, 115, 105, 110, 128, 107, 117, 125, 114, 119, 117, 111, 102, 107, 110, 101, 117, 101, 110, 105, 110, 101, 113, 109, 97, 96, 114, 106, 111, 103, 117, 109, 118, 111, 106, 89, 123, 110, 111, 97, 103, 115, 99, 109, 109, 117, 115, 98, 106, 115, 114, 102, 107, 99, 113, 106, 110, 114, 115, 108, 93, 114, 97, 93, 106, 106, 115, 109, 110, 108, 106, 119, 111, 110, 107, 102, 98, 106, 115, 104, 114, 92, 106, 103, 96, 98, 106, 106, 113, 109, 112, 99, 118, 111, 110, 116, 107, 117, 100, 102, 106, 102, 105, 106, 106, 122, 107, 109, 116, 118, 106, 118, 106, 102, 109, 113, 105, 98, 103, 114, 119, 112, 105, 109, 105, 106, 125, 108, 113, 117, 110, 110, 120, 106, 105, 110, 109, 115, 110, 95, 121, 105, 99, 106, 101, 104, 111, 110, 111, 106, 111, 109, 120, 108, 111, 113, 113, 104, 105, 114, 107, 114, 101, 106, 107, 104, 96, 115, 113, 102, 111, 99, 105, 111, 106, 114, 104, 104, 91, 105, 101, 116, 115, 106, 103, 96, 115, 103, 100, 106, 108, 115, 114, 106, 105, 109, 108, 103, 96, 105, 116, 110, 105, 123, 105, 113, 100, 104, 110, 107, 111, 108, 109, 95, 98, 113, 102, 121, 107, 103, 110, 112, 109, 114, 116, 111, 106, 103, 104, 108, 104, 110, 112, 96, 130, 115, 108, 107, 103, 113, 112, 103, 106, 109, 94, 114, 114, 119, 106, 105, 111, 104, 115, 98, 148, 112, 106, 110, 103, 106, 105, 100, 108, 111, 116, 107, 120, 108, 101, 101, 105, 109, 110, 108, 104, 111, 107, 101, 130, 106, 116, 108, 116, 100, 113, 120, 113, 107, 101, 100, 100, 108, 104, 97, 111, 111, 97, 102, 125, 118, 112, 109, 104, 115, 114, 112, 106, 109, 103, 99, 102, 138, 107, 104, 99, 105, 114, 106, 114, 108, 104, 106, 104, 102, 130, 105, 109, 122, 107, 105, 100, 115, 110, 113, 110, 92, 106, 109, 112, 98, 116, 107, 113, 105, 104, 107, 114, 110, 108, 108, 109, 107, 111, 113, 103, 112, 115, 115, 109, 118, 104, 108, 100, 104, 97, 119, 105, 109, 112, 99, 109, 110, 101, 110, 108, 121, 110, 115, 103, 97, 125, 108, 105, 106, 114, 108, 112, 103, 111, 95, 103, 96, 108, 109, 104, 106, 108, 100, 112, 110, 112, 105, 111, 116, 114, 101, 109, 112, 111, 110, 116, 94, 112, 107, 107, 115, 107, 116, 108, 127, 116, 112, 99, 104, 108, 113, 119, 106, 102, 108, 112, 112, 112, 109, 101, 113, 106, 105, 110, 111, 111, 104, 112, 114, 98, 121, 114, 108, 109, 106, 121, 122, 107, 118, 106, 110, 103, 106, 89, 100, 110, 106, 104, 114, 102, 132, 96, 104, 107, 114, 117, 105, 108, 108, 98, 122, 111, 107, 113, 136, 116, 113, 111, 108, 112, 100, 99, 105, 108, 110, 101, 102, 107, 94, 107, 108, 104, 106, 99, 108, 116, 100, 114, 115, 106, 110, 119, 107, 109, 103, 106, 108, 110, 106, 105, 103, 123, 105, 111, 111, 112, 111, 109, 99, 108, 110, 112, 108, 129, 113, 123, 108, 117, 109, 102, 124, 106, 106, 118, 103, 108, 108, 103, 113, 113, 104, 116, 133, 110, 118, 103, 114, 112, 101, 99, 108, 109, 108, 102, 109, 124, 106, 117, 99, 102, 102, 107, 101, 95, 116, 107, 101, 107, 111, 105, 104, 112, 99, 105, 103, 110, 119, 136, 89, 107, 105, 107, 124, 113, 108, 107, 104, 143, 112, 108, 108, 134, 109, 114, 104, 107, 112, 115, 113, 107, 116, 110, 107, 112, 113, 100, 107, 121, 125, 103, 109, 123, 113, 134, 112, 110, 125, 112, 81, 110, 112, 108, 111, 111, 111, 116, 115, 102, 116, 108, 108, 110, 115, 105, 100, 113, 105, 99, 116, 104, 101, 111, 111, 114, 107, 104, 91, 110, 97, 110, 116, 110, 117, 108, 91, 114, 112, 105, 109, 109, 106, 105, 102, 106, 120, 104, 106, 126, 115, 116, 120, 110, 110, 109, 116, 111, 118, 137, 109, 112, 122, 140, 107, 139, 117, 110, 112, 110, 117, 112, 110, 122, 116, 134, 104, 98, 112, 112, 111, 116, 139, 120, 103, 110, 111, 115, 130, 119, 107, 109, 108, 108, 117, 113, 108, 114, 108, 114, 117, 126, 110, 113, 114, 111, 118, 107, 101, 124, 105, 108, 105, 101, 107, 107, 93, 104, 111, 114, 110, 116, 119, 111, 119, 114, 107, 117, 105, 103, 117, 105, 109, 123, 116, 113, 100, 103, 108, 104, 109, 108, 103, 117, 105, 114, 110, 114, 106, 126, 103, 117, 119, 91, 107, 117, 116, 102, 106, 110, 112, 118, 124, 102, 109, 106, 114, 117, 119, 111, 120, 124, 109, 115, 107, 120, 116, 104, 132, 110, 106, 125, 106, 108, 109, 105, 134, 120, 119, 108, 113, 112, 125, 108, 111, 109, 110, 105, 114, 114, 110, 113, 105, 112, 116, 104, 112, 122, 115, 108, 115, 112, 131, 111, 109, 119, 103, 112, 110, 111, 110, 108, 118, 122, 114, 111, 134, 113, 122, 109, 112, 115, 105, 110, 118, 163, 110, 107, 112, 104, 112, 117, 109, 99, 110, 103, 111, 106, 110, 110, 112, 113, 113, 111, 118, 103, 110, 111, 114, 128, 112, 108, 118, 107, 97, 113, 109, 101, 114, 110, 91, 107, 115, 112, 101, 108, 108, 110, 114, 118, 111, 109, 119, 97, 98, 112, 112, 106, 108, 118, 106, 109, 99, 113, 109, 103, 113, 116, 116, 120, 117, 85, 111, 112, 99, 136, 101, 106, 117, 123, 131, 118, 119, 112, 112, 117, 106, 109, 106, 100, 125, 109, 108, 115, 108, 116, 115, 104, 111, 112, 112, 114, 111, 105, 100, 105, 111, 107, 106, 112, 109, 102, 115, 98, 108, 99, 112, 102, 111, 107, 108, 114, 108, 105, 111, 108, 106, 120, 111, 118, 109, 90, 91, 105, 116, 111, 112, 116, 87, 108, 112, 115, 118, 115, 113, 115, 106, 113, 106, 109, 108, 109, 105, 115, 118, 113, 103, 101, 110, 122, 104, 115, 116, 109, 111, 103, 106, 107, 108, 105, 118, 113, 109, 114, 103, 91, 105, 116, 106, 120, 106, 109, 108, 107, 111, 119, 110, 122, 114, 117, 109, 109, 114, 120, 114, 108, 102, 110, 112, 122, 111, 108, 104, 118, 115, 112, 116, 106, 117, 110, 113, 114, 106, 98, 112, 106, 111, 116, 112, 111, 120, 112, 110, 105, 121, 108, 130, 119, 105, 102, 113, 106, 111, 118, 107, 140, 110, 109, 111, 109, 111, 113, 98, 111, 112, 110, 115, 113, 96, 107, 117, 123, 106, 111, 112, 104, 114, 108, 106, 112, 113, 113, 110, 112, 109, 110, 108, 108, 109, 111, 109, 110, 106, 107, 108, 111, 108, 121, 105, 110, 118, 108, 107, 112, 111, 109, 109, 119, 110, 107, 108, 104, 114, 109, 116, 109, 108, 109, 111, 110, 114, 106, 114, 109, 106, 106, 105, 110, 110, 112, 83, 110, 110, 110, 112, 109, 107, 109, 110, 111, 115, 114, 112, 111, 107, 114, 107, 106, 123, 118, 101, 110, 102, 109, 107, 106, 110, 110, 112, 109, 101, 111, 113, 107, 112, 113, 112, 120, 109, 113, 108, 113, 110, 111, 110, 111, 111, 114, 109, 107, 109, 105, 99, 107, 115, 114, 108, 106, 112, 109, 117, 112, 106, 112, 118, 109, 108, 113, 108, 112, 105, 107, 104, 122, 112, 115, 104, 111, 110, 112, 111, 115, 107, 102, 107, 112, 111, 111, 113, 110, 110, 120, 113, 113, 109, 105, 102, 114, 110, 113, 103, 109, 112, 112, 113, 110, 111, 116, 116, 107, 109, 105, 106, 108, 109, 109, 107, 115, 108, 105, 110, 112, 107, 110, 116, 102, 112, 111, 109, 114, 109, 107, 113, 114, 106, 112, 110, 108, 112, 115, 107, 109, 107, 110, 110, 116, 107, 117, 110, 110, 109, 105, 109, 115, 111, 112, 109, 110, 109, 106, 109, 109, 120, 115, 106, 108, 111, 110, 107, 114, 109, 108, 110, 108, 109, 111, 118, 114, 108, 115, 108, 106, 112, 108, 107, 100, 119, 109, 128, 114, 110, 112, 105, 116, 110, 109, 112, 105, 136, 112, 107, 110, 112, 110, 111, 109, 110, 127, 109, 109, 111, 109, 107, 110, 106, 112, 117, 115, 104, 108, 113, 116, 111, 111, 115, 111, 116, 115, 114, 108, 117, 106, 108, 111, 111, 111, 110, 108, 120, 115, 109, 105, 112, 112, 109, 105, 112, 105, 111, 114, 113, 113, 114, 112, 112, 117, 105, 114, 106, 102, 107, 112, 107, 95, 110, 113, 107, 112, 109, 110, 109, 110, 116, 109, 109, 113, 115, 118, 110, 113, 111, 112, 112, 112, 112, 112, 110, 114, 107, 121, 112, 107, 113, 111, 113, 108, 108, 114, 110, 108, 108, 107, 112, 109, 112, 112, 107, 109, 105, 116, 107, 84, 111, 106, 114, 112, 113, 118, 107, 112, 106, 108, 115, 108, 111, 104, 111, 109, 106, 100, 109, 115, 112, 110, 112, 107, 108, 106, 115, 110, 106, 109, 112, 106, 112, 114, 110, 118, 110, 110, 114, 109, 108, 109, 107, 107, 109, 112, 108, 112, 115, 109, 109, 111, 107, 108, 113, 108, 116, 111, 112, 115, 106, 119, 117, 113, 106, 101, 112, 114, 114, 118, 111, 113, 107, 109, 114, 115, 103, 109, 109, 101, 112, 108, 109, 113, 108, 107, 112, 120, 111, 112, 119, 119, 108, 108, 113, 119, 102, 106, 104, 111, 114, 116, 123, 113, 108, 112, 111, 112, 113, 107, 103, 108, 105, 110, 110, 110, 116, 106, 107, 112, 109, 111, 110, 110, 114, 115, 109, 114, 110, 113, 113, 114, 112, 116, 110, 110, 118, 111, 115, 107, 111, 117, 106, 117, 124, 93, 106, 109, 107, 97, 106, 118, 109, 118, 111, 108, 109, 109, 116, 113, 111, 114, 118, 116, 117, 119, 111, 115, 113, 109, 115, 107, 92, 111, 110, 107, 107, 104, 109, 108, 104, 114, 107, 104, 122, 108, 121, 112, 114, 111, 111, 115, 119, 109, 117, 105, 112, 127, 123, 107, 103, 109, 109, 112, 110, 112, 108, 108, 116, 107, 120, 120, 114, 100, 110, 123, 110, 109, 95, 116, 102, 112, 108, 113, 110, 115, 106, 118, 109, 119, 110, 97, 102, 110, 108, 110, 114, 109, 112, 111, 119, 94, 113, 110, 111, 118, 108, 115, 112, 95, 92, 109, 118, 115, 108, 123, 103, 102, 111, 106, 104, 107, 107, 103, 117, 108, 109, 100, 107, 114, 119, 116, 141, 122, 108, 108, 110, 111, 108, 105, 101, 110, 118, 114, 114, 113, 114, 116, 116, 105, 104, 110, 99, 113, 105, 113, 119, 109, 121, 101, 101, 95, 113, 119, 110, 112, 117, 115, 109, 130, 114, 107, 113, 111, 107, 118, 122, 104, 105, 109, 110, 112, 110, 113, 111, 121, 114, 116, 113, 104, 114, 102, 107, 108, 130, 107, 112, 107, 110, 108, 140, 120, 129, 105, 108, 98, 135, 115, 119, 111, 110, 109, 113, 118, 119, 109, 116, 113, 111, 120, 113, 118, 119, 120, 113, 100, 106, 104, 110, 110, 109, 111, 112, 128, 109, 117, 108, 123, 102, 102, 126, 123, 102, 114, 110, 130, 124, 106, 114, 109, 114, 111, 107, 106, 114, 121, 107, 116, 107, 108, 105, 109, 109, 101, 115, 108, 111, 115, 108, 107, 109, 111, 103, 110, 106, 112, 113, 128, 98, 113, 115, 102, 106, 107, 106, 110, 108, 126, 114, 110, 119, 124, 100, 101, 111, 107, 107, 112, 103, 102, 118, 107, 97, 119, 116, 115, 112, 107, 116, 109, 110, 110, 107, 111, 109, 102, 116, 117, 111, 108, 114, 102, 122, 121, 115, 113, 99, 111, 118, 117, 104, 119, 114, 110, 119, 109, 105, 115, 103, 113, 110, 112, 106, 110, 105, 105, 107, 92, 110, 98, 120, 107, 108, 110, 122, 116, 110, 110, 115, 108, 119, 108, 106, 116, 115, 105, 98, 110, 110, 107, 105, 127, 109, 105, 110, 110, 104, 104, 111, 113, 120, 122, 115, 109, 108, 111, 123, 120, 105, 127, 108, 107, 114, 106, 102, 105, 103, 105, 106, 108, 102, 123, 103, 109, 104, 119, 106, 104, 114, 104, 120, 114, 113, 119, 110, 122, 110, 116, 106, 107, 104, 113, 108, 101, 112, 104, 127, 134, 107, 114, 112, 110, 114, 112, 113, 106, 109, 115, 108, 109, 105, 112, 120, 109, 115, 107, 103, 111, 127, 115, 120, 102, 106, 115, 127, 103, 112, 101, 105, 108, 113, 111, 104, 113, 110, 109, 107, 98, 117, 106, 108, 113, 102, 113, 110, 112, 108, 110, 112, 105, 105, 103, 114, 112, 106, 111, 108, 112, 116, 102, 105, 109, 94, 117, 106, 136, 110, 97, 111, 101, 112, 111, 111, 114, 114, 99, 109, 115, 108, 120, 106, 104, 113, 108, 106, 110, 115, 115, 112, 107, 113, 110, 110, 111, 116, 104, 108, 106, 108, 112, 113, 106, 112, 115, 108, 112, 108, 112, 105, 113, 108, 111, 111, 111, 107, 107, 108, 114, 114, 110, 105, 115, 115, 116, 111, 109, 113, 111, 110, 111, 112, 111, 105, 109, 113, 106, 112, 102, 113, 108, 114, 112, 108, 106, 117, 108, 114, 109, 117, 108, 103, 115, 108, 113, 112, 115, 113, 115, 115, 108, 106, 112, 114, 113, 114, 107, 116, 111, 111, 110, 111, 106, 108, 106, 103, 114, 111, 112, 115, 110, 107, 115, 107, 109, 110, 110, 109, 116, 115, 108, 106, 107, 108, 110, 111, 109, 111, 115, 112, 114, 110, 105, 108, 114, 109, 111, 108, 108, 111, 113, 116, 104, 103, 109, 114, 112, 118, 108, 110, 108, 113, 113, 109, 111, 111, 110, 108, 110, 110, 109, 113, 119, 110, 97, 114, 110, 104, 109, 112, 111, 114, 110, 103, 106, 115, 116, 119, 110, 107, 112, 121, 112, 111, 109, 104, 112, 109, 108, 113, 111, 113, 109, 109, 118, 106, 107, 106, 112, 121, 107, 111, 109, 111, 114, 96, 117, 110, 106, 105, 115, 111, 113, 112, 115, 108, 110, 106, 102, 114, 117, 110, 110, 111, 110, 114, 112, 116, 112, 113, 114, 113, 117, 108, 108, 112, 106, 109, 114, 110, 109, 107, 110, 108, 109, 108, 104, 111, 106, 110, 115, 109, 116, 106, 116, 109, 111, 105, 118, 112, 109, 108, 108, 114, 110, 109, 111, 110, 110, 95, 113, 107, 117, 105, 108, 110, 107, 111, 113, 106, 111, 104, 111, 112, 112, 111, 110, 109, 115, 115, 114, 104, 117, 113, 111, 112, 116, 105, 112, 112, 112, 106, 113, 108, 106, 107, 115, 119, 108, 103, 116, 111, 106, 106, 105, 114, 114, 107, 119, 110, 114, 111, 113, 106, 108, 110, 114, 112, 112, 115, 116, 106, 111, 110, 114, 115, 116, 111, 100, 111, 111, 111, 99, 112, 107, 108, 111, 113, 111, 101, 113, 105, 114, 115, 115, 103, 104, 111, 113, 103, 107, 109, 109, 108, 107, 109, 108, 112, 107, 108, 128, 107, 106, 114, 109, 110, 107, 114, 108, 103, 103, 112, 113, 110, 116, 108, 103, 112, 103, 111, 115, 106, 116, 105, 106, 115, 106, 113, 100, 116, 105, 106, 110, 108, 106, 113, 116, 119, 106, 109, 108, 105, 109, 116, 109, 110, 95, 112, 113, 112, 106, 108, 119, 123, 110, 109, 105, 102, 111, 116, 115, 108, 108, 105, 107, 106, 113, 117, 112, 110, 105, 112, 114, 114, 105, 106, 107, 110, 108, 110, 112, 110, 108, 104, 109, 107, 110, 113, 111, 112, 111, 106, 111, 112, 101, 113, 113, 113, 108, 109, 111, 117, 114, 106, 107, 111, 106, 108, 109, 108, 111, 115, 107, 104, 107, 112, 118, 112, 107, 108, 104, 107, 101, 108, 103, 111, 108, 110, 113, 106, 117, 110, 109, 106, 105, 105, 112, 104, 112, 107, 104, 109, 109, 106, 109, 116, 114, 111, 105, 113, 110, 119, 111, 113, 104, 117, 107, 116, 122, 109, 119, 105, 122, 116, 103, 108, 114, 113, 119, 121, 112, 105, 87, 105, 117, 127, 107, 106, 99, 123, 113, 116, 112, 122, 108, 109, 100, 110, 120, 108, 113, 115, 111, 110, 107, 103, 114, 95, 91, 108, 122, 108, 125, 101, 113, 91, 112, 108, 107, 105, 122, 106, 113, 104, 116, 93, 110, 99, 108, 118, 120, 115, 85, 112, 126, 121, 117, 111, 122, 110, 107, 113, 107, 117, 105, 98, 113, 114, 94, 120, 111, 112, 120, 110, 102, 110, 113, 116, 116, 106, 112, 108, 108, 104, 110, 106, 109, 122, 100, 113, 116, 109, 105, 86, 104, 116, 99, 106, 117, 101, 111, 108, 108, 110, 103, 116, 116, 107, 112, 108, 101, 114, 103, 110, 103, 120, 113, 120, 103, 107, 114, 107, 118, 111, 111, 114, 105, 93, 105, 97, 100, 116, 91, 116, 118, 128, 94, 115, 103, 110, 111, 105, 111, 112, 112, 95, 112, 116, 99, 112, 107, 110, 115, 113, 108, 116, 120, 110, 117, 106, 113, 110, 116, 91, 117, 115, 125, 106, 100, 102, 114, 111, 111, 109, 107, 119, 108, 114, 119, 110, 116, 113, 105, 107, 118, 97, 114, 92, 99, 121, 115, 124, 113, 102, 121, 112, 110, 126, 93, 127, 111, 104, 114, 119, 114, 109, 115, 103, 98, 108, 115, 122, 98, 107, 113, 104, 84, 117, 106, 86, 97, 112, 120, 108, 119, 112, 110, 107, 111, 116, 108, 111, 124, 102, 112, 93, 115, 90, 119, 103, 101, 102, 113, 105, 95, 112, 115, 107, 113, 109, 106, 111, 110, 98, 117, 124, 112, 109, 108, 105, 118, 106, 105, 112, 119, 107, 107, 114, 119, 108, 108, 104, 111, 103, 112, 107, 107, 114, 108, 115, 112, 116, 114, 108, 108, 115, 108, 103, 106, 110, 111, 115, 105, 116, 107, 120, 98, 109, 102, 102, 111, 112, 128, 112, 112, 99, 115, 102, 108, 111, 108, 104, 110, 112, 107, 108, 121, 116, 113, 111, 130, 108, 105, 103, 111, 108, 110, 108, 115, 109, 115, 125, 107, 108, 111, 101, 98, 118, 110, 127, 110, 93, 115, 110, 115, 99, 99, 113, 121, 115, 110, 120, 124, 108, 94, 99, 100, 99, 116, 99, 119, 111, 114, 121, 112, 108, 116, 115, 94, 115, 103, 110, 101, 98, 107, 114, 110, 109, 113, 110, 109, 106, 112, 104, 110, 110, 106, 109, 109, 101, 107, 103, 122, 109, 108, 100, 96, 101, 114, 111, 105, 110, 97, 109, 102, 102, 106, 103, 113, 111, 109, 111, 110, 120, 105, 116, 111, 123, 136, 112, 111, 99, 120, 113, 95, 118, 115, 108, 122, 103, 108, 121, 109, 107, 110, 117, 104, 109, 102, 102, 108, 123, 118, 111, 115, 115, 110, 101, 108, 119, 102, 109, 117, 107, 105, 108, 106, 111, 108, 115, 105, 114, 108, 110, 128, 111, 113, 102, 104, 121, 115, 107, 111, 114, 104, 114, 107, 113, 122, 112, 105, 101, 123, 102, 88, 116, 107, 83, 111, 113, 106, 118, 105, 121, 115, 101, 108, 111, 101, 120, 111, 109, 109, 109, 119, 117, 107, 118, 113, 104, 109, 119, 123, 113, 119, 99, 107, 114, 125, 106, 114, 110, 123, 103, 105, 110, 102, 113, 112, 113, 107, 99, 115, 134, 113, 106, 96, 114, 110, 115, 106, 108, 105, 111, 107, 100, 100, 100, 120, 115, 86, 111, 99, 107, 122, 114, 104, 106, 106, 117, 93, 117, 108, 110, 109, 100, 112, 110, 100, 104, 114, 120, 118, 110, 115, 105, 104, 115, 109, 126, 108, 124, 109, 107, 115, 100, 110, 119, 116, 113, 120, 117, 105, 109, 107, 122, 109, 104, 114, 111, 110, 118, 100, 106, 104, 105, 97, 119, 95, 96, 107, 112, 98, 111, 108, 114, 93, 116, 108, 109, 103, 100, 97, 100, 106, 107, 98, 97, 98, 107, 112, 121, 140, 109, 103, 107, 107, 107, 103, 119, 111, 112, 117, 110, 108, 100, 96, 117, 106, 105, 101, 125, 111, 102, 113, 116, 108, 111, 103, 102, 111, 109, 114, 106, 97, 106, 109, 100, 103, 105, 104, 112, 112, 115, 109, 94, 113, 123, 112, 106, 110, 109, 104, 111, 118, 110, 111, 120, 112, 106, 99, 113, 115, 114, 108, 107, 98, 110, 114, 113, 124, 103, 93, 103, 102, 122, 126, 108, 114, 96, 114, 118, 112, 101, 104, 124, 118, 96, 111, 106, 114, 116, 107, 107, 114, 98, 111, 109, 92, 105, 109, 103, 117, 97, 111, 107, 109, 104, 113, 103, 107, 104, 116, 106, 122, 109, 102, 112, 111, 111, 112, 104, 113, 109, 99, 103, 110, 115, 103, 116, 120, 115, 107, 107, 101, 110, 100, 124, 125, 124, 105, 110, 99, 111, 111, 112, 106, 110, 107, 105, 95, 102, 111, 104, 108, 105, 113, 110, 106, 123, 118, 111, 103, 103, 117, 113, 117, 113, 126, 107, 118, 103, 100, 118, 99, 114, 109, 108, 103, 107, 106, 125, 116, 93, 109, 97, 99, 105, 108, 103, 105, 117, 94, 102, 98, 113, 106, 109, 109, 119, 105, 102, 95, 112, 117, 128, 109, 114, 104, 121, 113, 98, 126, 101, 106, 115, 120, 105, 119, 115, 111, 117, 126, 94, 113, 107, 135, 103, 101, 115, 118, 116, 114, 104, 115, 106, 108, 99, 102, 105, 99, 126, 133, 111, 116, 113, 98, 111, 114, 107, 96, 113, 128, 112, 131, 102, 94, 115, 104, 103, 107, 102, 114, 106, 105, 116, 112, 113, 101, 114, 121, 102, 112, 110, 104, 112, 117, 117, 109, 116, 110, 122, 119, 102, 105, 120, 114, 106, 122, 106, 106, 120, 102, 119, 106, 111, 109, 116, 133, 97, 126, 120, 100, 115, 106, 107, 113, 139, 104, 117, 97, 103, 114, 96, 106, 116, 114, 109, 101, 110, 117, 101, 106, 126, 102, 127, 107, 112, 107, 110, 103, 118, 107, 105, 104, 115, 118, 101, 110, 128, 110, 103, 105, 101, 115, 98, 109, 112, 98, 112, 93, 112, 106, 101, 121, 114, 106, 110, 105, 111, 112, 108, 99, 110, 111, 110, 119, 117, 100, 101, 119, 108, 113, 116, 121, 103, 105, 123, 106, 105, 125, 128, 107, 105, 114, 112, 106, 108, 119, 107, 72, 116, 113, 109, 108, 109, 107, 106, 96, 118, 117, 114, 121, 106, 113, 120, 100, 112, 101, 113, 127, 100, 89, 113, 114, 113, 116, 118, 108, 98, 121, 108, 103, 113, 110, 117, 108, 107, 111, 99, 102, 116, 108, 119, 112, 103, 109, 116, 107, 95, 104, 112, 113, 102, 101, 125, 111, 102, 116, 108, 93, 113, 120, 125, 109, 97, 112, 107, 106, 113, 109, 114, 110, 113, 108, 110, 111, 114, 109, 124, 80, 114, 109, 106, 97, 123, 92, 106, 109, 120, 122, 112, 113, 97, 117, 108, 71, 109, 124, 123, 116, 110, 114, 115, 121, 113, 114, 105, 107, 87, 104, 109, 115, 119, 108, 100, 111, 112, 102, 114, 116, 112, 103, 103, 112, 117, 110, 118, 113, 105, 79, 108, 111, 114, 104, 112, 110, 105, 101, 109, 106, 107, 115, 116, 114, 122, 101, 104, 114, 120, 120, 109, 104, 109, 102, 112, 110, 120, 105, 110, 104, 113, 110, 108, 120, 110, 115, 104, 95, 104, 113, 104, 112, 108, 114, 112, 96, 135, 106, 99, 111, 96, 101, 99, 118, 108, 108, 102, 106, 111, 110, 102, 110, 96, 126, 112, 104, 110, 113, 97, 117, 107, 109, 115, 110, 101, 100, 109, 115, 117, 111, 118, 106, 119, 105, 107, 116, 116, 108, 110, 105, 110, 107, 108, 113, 118, 109, 104, 91, 104, 111, 109, 106, 110, 103, 125, 111, 100, 109, 116, 117, 112, 111, 96, 114, 105, 110, 105, 104, 97, 92, 104, 160, 110, 118, 113, 132, 107, 110, 108, 115, 110, 108, 108, 111, 108, 115, 116, 116, 116, 111, 114, 108, 110, 84, 111, 118, 111, 103, 105, 105, 115, 109, 98, 110, 112, 117, 135, 121, 114, 115, 86, 109, 109, 120, 113, 115, 105, 102, 106, 112, 115, 107, 108, 112, 91, 106, 104, 102, 107, 112, 115, 115, 102, 124, 106, 93, 104, 114, 107, 115, 111, 112, 107, 105, 104, 97, 125, 109, 102, 106, 109, 123, 105, 117, 104, 125, 109, 124, 110, 131, 84, 110, 110, 107, 95, 122, 101, 118, 104, 106, 107, 114, 125, 107, 112, 107, 105, 119, 105, 104, 101, 107, 107, 115, 103, 113, 115, 107, 114, 104, 115, 110, 114, 105, 106, 94, 107, 72, 112, 114, 115, 123, 104, 108, 112, 117, 108, 109, 116, 115, 109, 122, 108, 130, 107, 110, 110, 111, 103, 103, 107, 105, 110, 108, 103, 108, 106, 109, 113, 104, 109, 104, 109, 115, 111, 122, 97, 129, 108, 102, 106, 116, 116, 120, 107, 112, 120, 114, 127, 100, 118, 112, 112, 111, 104, 100, 113, 109, 132, 120, 119, 115, 112, 102, 100, 112, 149, 117, 102, 111, 114, 106, 116, 106, 103, 119, 121, 99, 130, 104, 103, 104, 106, 96, 109, 109, 96, 111, 117, 111, 115, 111, 114, 111, 124, 117, 120, 113, 110, 112, 108, 105, 111, 107, 104, 100, 113, 113, 102, 105, 103, 108, 106, 115, 107, 106, 104, 105, 107, 105, 111, 111, 98, 113, 105, 116, 116, 104, 101, 100, 111, 102, 102, 96, 103, 102, 104, 112, 106, 80, 113, 118, 111, 119, 111, 108, 104, 100, 103, 111, 110, 101, 122, 115, 113, 113, 114, 102, 107, 118, 121, 115, 102, 113, 115, 100, 103, 119, 112, 103, 79, 108, 111, 84, 121, 111, 117, 96, 115, 110, 108, 124, 117, 111, 121, 107, 101, 114, 102, 101, 109, 91, 119, 106, 105, 120, 115, 108, 105, 108, 105, 114, 110, 112, 107, 115, 107, 108, 109, 101, 109, 108, 108, 94, 116, 108, 110, 93, 121, 102, 111, 106, 120, 102, 96, 107, 102, 118, 107, 116, 111, 113, 103, 110, 118, 107, 109, 109, 111, 112, 103, 121, 117, 91, 93, 111, 100, 118, 114, 110, 110, 115, 116, 111, 103, 119, 101, 107, 110, 115, 116, 110, 110, 113, 111, 104, 114, 110, 113, 131, 108, 87, 101, 114, 114, 119, 110, 109, 116, 112, 119, 106, 97, 100, 110, 120, 117, 113, 120, 115, 109, 113, 108, 108, 111, 118, 114, 107, 111, 110, 112, 107, 113, 115, 104, 129, 115, 115, 109, 109, 120, 117, 109, 101, 110, 118, 108, 108, 99, 115, 108, 110, 113, 104, 110, 105, 111, 107, 109, 103, 102, 102, 103, 99, 116, 112, 96, 135, 113, 108, 106, 110, 110, 100, 104, 111, 113, 107, 118, 96, 105, 113, 111, 107, 106, 109, 117, 108, 118, 99, 117, 111, 112, 107, 100, 108, 125, 109, 109, 109, 105, 110, 99, 112, 111, 109, 105, 114, 105, 117, 122, 89, 107, 102, 115, 113, 115, 112, 110, 116, 106, 113, 116, 109, 106, 108, 111, 114, 107, 106, 117, 108, 110, 116, 97, 133, 110, 105, 104, 107, 112, 107, 107, 102, 108, 105, 92, 105, 97, 122, 104, 105, 110, 109, 118, 111, 112, 121, 117, 102, 104, 104, 116, 99, 108, 117, 98, 101, 100, 84, 108, 111, 111, 113, 103, 101, 117, 127, 107, 118, 112, 110, 99, 104, 112, 106, 114, 109, 108, 113, 94, 113, 114, 109, 100, 111, 106, 110, 112, 109, 111, 107, 99, 106, 116, 118, 103, 114, 105, 132, 115, 110, 109, 110, 109, 102, 107, 112, 91, 97, 101, 111, 109, 109, 114, 117, 114, 115, 104, 109, 109, 117, 107, 100, 106, 117, 114, 121, 102, 103, 121, 108, 113, 118, 101, 100, 112, 100, 105, 115, 115, 102, 116, 107, 111, 109, 94, 109, 108, 115, 114, 110, 101, 113, 109, 113, 106, 109, 113, 97, 105, 121, 105, 107, 107, 103, 110, 115, 117, 99, 111, 123, 113, 101, 112, 111, 115, 102, 103, 97, 114, 124, 108, 115, 117, 107, 102, 103, 120, 109, 104, 113, 112, 117, 110, 98, 141, 114, 109, 118, 105, 108, 105, 114, 114, 103, 108, 101, 122, 110, 105, 110, 121, 96, 108, 115, 107, 106, 89, 100, 108, 105, 115, 106, 99, 119, 109, 94, 110, 99, 103, 111, 109, 114, 115, 109, 111, 119, 102, 105, 105, 105, 102, 112, 120, 112, 111, 111, 116, 107, 106, 114, 107, 118, 112, 106, 102, 115, 105, 106, 113, 110, 109, 112, 106, 103, 106, 112, 111, 108, 109, 109, 112, 112, 109, 104, 106, 118, 103, 119, 112, 107, 112, 109, 107, 113, 106, 109, 112, 104, 110, 107, 111, 108, 102, 114, 105, 106, 112, 114, 110, 115, 100, 110, 111, 107, 109, 107, 107, 105, 108, 110, 110, 111, 107, 104, 110, 108, 103, 111, 109, 109, 105, 106, 110, 112, 109, 109, 104, 115, 118, 108, 108, 104, 107, 104, 102, 108, 108, 106, 111, 113, 115, 109, 106, 103, 106, 105, 106, 112, 107, 112, 112, 110, 110, 108, 112, 106, 111, 108, 109, 105, 111, 106, 106, 110, 107, 110, 104, 106, 107, 114, 112, 108, 108, 106, 101, 107, 104, 105, 107, 109, 109, 112, 106, 108, 103, 103, 109, 106, 104, 106, 108, 112, 107, 114, 111, 109, 103, 109, 109, 111, 105, 101, 111, 107, 110, 108, 101, 109, 110, 107, 110, 112, 104, 111, 103, 105, 106, 117, 111, 108, 114, 112, 103, 115, 100, 113, 113, 112, 110, 112, 113, 104, 112, 105, 110, 118, 106, 109, 112, 113, 104, 111, 106, 105, 110, 111, 110, 109, 111, 108, 107, 113, 118, 109, 110, 108, 106, 114, 108, 103, 106, 110, 111, 110, 114, 111, 108, 112, 113, 110, 113, 108, 105, 106, 106, 112, 110, 109, 106, 106, 113, 108, 106, 104, 118, 104, 112, 110, 113, 111, 119, 107, 108, 109, 108, 123, 120, 108, 117, 106, 111, 110, 105, 107, 115, 113, 109, 104, 117, 108, 116, 107, 116, 107, 108, 112, 111, 108, 108, 109, 106, 108, 110, 109, 108, 115, 107, 103, 107, 104, 110, 109, 102, 111, 115, 108, 110, 106, 112, 112, 106, 114, 105, 114, 110, 105, 115, 109, 115, 113, 108, 105, 99, 102, 114, 105, 108, 97, 111, 109, 101, 108, 107, 110, 111, 104, 108, 112, 108, 107, 109, 109, 104, 105, 110, 97, 105, 115, 108, 112, 106, 114, 111, 109, 113, 108, 109, 111, 118, 110, 107, 115, 116, 114, 103, 110, 110, 110, 110, 108, 108, 109, 105, 110, 113, 109, 108, 109, 110, 107, 107, 109, 109, 112, 110, 113, 113, 108, 110, 111, 103, 106, 106, 99, 111, 106, 113, 108, 102, 110, 109, 106, 106, 108, 111, 111, 112, 110, 105, 109, 114, 110, 113, 109, 107, 109, 114, 109, 110, 109, 117, 109, 113, 113, 107, 103, 105, 113, 109, 108, 108, 109, 108, 105, 111, 109, 107, 110, 109, 111, 106, 105, 108, 102, 109, 109, 113, 105, 117, 102, 108, 106, 109, 114, 115, 108, 109, 111, 111, 108, 114, 113, 107, 109, 107, 113, 108, 111, 105, 109, 109, 100, 114, 109, 111, 119, 108, 109, 116, 111, 108, 112, 111, 108, 110, 104, 104, 111, 107, 104, 106, 106, 109, 108, 111, 96, 111, 109, 107, 106, 113, 106, 124, 111, 110, 108, 105, 111, 110, 108, 109, 110, 110, 108, 112, 110, 106, 108, 108, 110, 111, 108, 112, 103, 112, 109, 109, 108, 110, 108, 108, 113, 112, 111, 107, 111, 112, 109, 112, 109, 123, 110, 110, 108, 114, 109, 107, 108, 111, 109, 110, 108, 113, 114, 109, 109, 115, 110, 117, 115, 110, 104, 116, 108, 109, 112, 110, 110, 117, 109, 112, 110, 110, 116, 105, 112, 107, 112, 110, 111, 117, 111, 112, 113, 110, 112, 105, 107, 112, 109, 116, 109, 112, 111, 111, 109, 118, 113, 108, 109, 110, 111, 110, 106, 114, 113, 109, 111, 108, 115, 109, 107, 110, 107, 116, 109, 114, 108, 114, 109, 107, 113, 110, 112, 109, 116, 113, 112, 114, 107, 110, 107, 109, 105, 114, 115, 106, 105, 111, 111, 111, 110, 112, 112, 112, 113, 113, 111, 113, 120, 114, 116, 105, 119, 112, 113, 112, 108, 109, 116, 109, 107, 106, 107, 112, 107, 116, 110, 111, 111, 111, 106, 113, 109, 114, 116, 106, 110, 111, 112, 112, 109, 111, 111, 112, 110, 110, 110, 114, 109, 115, 117, 112, 112, 113, 108, 113, 108, 115, 107, 111, 109, 110, 114, 111, 111, 114, 110, 116, 110, 111, 108, 110, 114, 113, 114, 109, 113, 109, 108, 112, 118, 110, 106, 112, 109, 109, 110, 110, 107, 111, 122, 109, 121, 110, 109, 109, 109, 112, 107, 109, 111, 109, 113, 110, 107, 103, 118, 108, 112, 109, 112, 106, 112, 104, 105, 108, 109, 109, 109, 106, 109, 114, 113, 103, 108, 114, 108, 108, 113, 110, 110, 106, 114, 109, 112, 113, 112, 109, 111, 111, 108, 106, 105, 112, 105, 111, 109, 108, 101, 102, 115, 107, 120, 111, 106, 112, 114, 112, 111, 109, 111, 113, 109, 108, 109, 107, 108, 112, 109, 111, 113, 113, 105, 112, 113, 112, 113, 111, 107, 112, 109, 110, 110, 104, 109, 109, 119, 105, 116, 108, 112, 110, 112, 107, 109, 110, 118, 113, 114, 107, 118, 117, 110, 110, 107, 111, 109, 110, 113, 107, 115, 114, 107, 119, 109, 113, 105, 109, 105, 114, 111, 108, 108, 110, 107, 110, 108, 115, 108, 109, 116, 111, 111, 106, 115, 107, 113, 109, 109, 111, 111, 103, 111, 111, 107, 114, 109, 108, 109, 110, 115, 114, 113, 109, 103, 113, 108, 106, 105, 108, 107, 108, 113, 108, 111, 111, 112, 112, 115, 108, 111, 109, 105, 110, 110, 109, 119, 113, 108, 110, 109, 112, 114, 112, 109, 105, 104, 112, 105, 106, 109, 107, 108, 111, 120, 109, 111, 112, 108, 111, 120, 121, 108, 118, 107, 110, 114, 106, 107, 112, 112, 105, 118, 107, 110, 114, 103, 111, 106, 108, 112, 111, 111, 110, 109, 107, 110, 107, 109, 105, 111, 108, 110, 111, 110, 111, 105, 110, 106, 104, 109, 115, 111, 118, 108, 106, 107, 107, 118, 114, 108, 110, 110, 112, 109, 113, 109, 115, 110, 111, 112, 109, 113, 113, 109, 112, 110, 110, 109, 108, 115, 110, 111, 119, 111, 101, 116, 109, 108, 113, 108, 110, 110, 111, 111, 108, 107, 109, 109, 115, 107, 110, 111, 108, 105, 109, 110, 110, 110, 104, 108, 103, 109, 111, 117, 102, 108, 115, 112, 108, 106, 118, 103, 106, 109, 105, 94, 110, 124, 102, 108, 107, 115, 108, 104, 116, 101, 108, 105, 118, 107, 105, 112, 102, 107, 113, 99, 108, 107, 111, 109, 108, 112, 100, 118, 111, 120, 107, 106, 115, 121, 120, 116, 118, 110, 116, 124, 112, 105, 110, 123, 112, 117, 116, 104, 111, 110, 120, 107, 111, 114, 109, 90, 110, 104, 116, 115, 127, 108, 105, 109, 107, 121, 114, 108, 112, 111, 105, 114, 108, 108, 115, 110, 113, 92, 95, 105, 106, 105, 107, 123, 99, 105, 115, 113, 110, 117, 115, 123, 110, 107, 112, 120, 108, 107, 112, 100, 112, 109, 126, 100, 110, 116, 107, 114, 111, 111, 106, 104, 112, 117, 119, 100, 111, 118, 114, 105, 119, 109, 108, 109, 120, 111, 103, 112, 117, 118, 103, 104, 111, 106, 105, 114, 101, 95, 105, 107, 109, 115, 104, 107, 110, 108, 109, 110, 99, 105, 116, 106, 100, 108, 121, 110, 107, 106, 112, 108, 100, 107, 113, 105, 108, 103, 105, 110, 112, 118, 111, 98, 93, 108, 108, 109, 104, 108, 106, 110, 105, 101, 105, 118, 104, 123, 116, 109, 106, 111, 109, 98, 118, 106, 115, 109, 108, 114, 102, 116, 118, 114, 113, 108, 111, 106, 105, 108, 104, 106, 105, 112, 110, 110, 111, 119, 113, 112, 106, 111, 109, 103, 109, 113, 112, 106, 107, 109, 98, 116, 100, 119, 119, 108, 89, 101, 109, 111, 103, 115, 108, 115, 95, 108, 103, 103, 106, 139, 101, 115, 106, 100, 107, 102, 117, 108, 117, 119, 107, 112, 108, 121, 109, 108, 114, 117, 113, 117, 108, 93, 98, 105, 103, 120, 117, 116, 104, 111, 113, 94, 108, 100, 102, 125, 112, 109, 111, 109, 116, 110, 111, 119, 115, 111, 112, 114, 102, 112, 103, 124, 114, 121, 112, 113, 109, 114, 110, 108, 113, 114, 116, 123, 114, 108, 110, 115, 106, 108, 106, 113, 112, 128, 107, 117, 106, 124, 107, 105, 106, 113, 112, 114, 118, 110, 111, 103, 109, 111, 107, 116, 110, 113, 106, 124, 103, 106, 113, 109, 105, 121, 120, 117, 108, 107, 119, 114, 113, 119, 106, 107, 105, 132, 105, 116, 119, 110, 113, 112, 118, 103, 111, 113, 118, 111, 106, 107, 114, 84, 101, 102, 112, 93, 102, 100, 101, 107, 113, 115, 108, 86, 90, 117, 104, 113, 109, 111, 108, 111, 103, 111, 102, 99, 108, 108, 112, 110, 107, 86, 109, 124, 105, 108, 105, 109, 106, 113, 112, 105, 102, 108, 105, 107, 112, 118, 98, 110, 104, 106, 117, 110, 107, 100, 104, 104, 99, 104, 110, 106, 114, 106, 111, 102, 104, 108, 114, 113, 113, 105, 107, 114, 111, 109, 111, 106, 106, 106, 106, 110, 100, 115, 104, 111, 111, 107, 116, 100, 112, 113, 107, 109, 112, 116, 108, 125, 110, 101, 112, 104, 104, 110, 113, 106, 108, 92, 109, 114, 128, 109, 112, 120, 123, 112, 108, 102, 120, 114, 109, 99, 107, 108, 110, 102, 122, 108, 101, 103, 116, 128, 116, 117, 114, 104, 107, 111, 114, 108, 117, 106, 108, 108, 107, 101, 105, 119, 101, 118, 104, 113, 111, 103, 107, 122, 106, 103, 107, 117, 109, 112, 106, 108, 110, 102, 113, 109, 122, 115, 97, 113, 103, 110, 114, 115, 114, 99, 106, 120, 110, 113, 111, 113, 114, 108, 113, 108, 103, 112, 108, 105, 105, 109, 110, 105, 110, 109, 103, 114, 106, 113, 110, 111, 103, 104, 109, 112, 98, 107, 107, 121, 115, 116, 104, 109, 111, 107, 112, 117, 104, 111, 108, 113, 111, 115, 119, 111, 108, 109, 100, 108, 119, 103, 111, 98, 111, 114, 123, 105, 105, 117, 106, 104, 111, 103, 101, 95, 111, 96, 105, 108, 100, 109, 127, 105, 115, 113, 115, 108, 119, 114, 111, 119, 115, 112, 118, 92, 103, 110, 117, 115, 110, 111, 118, 113, 118, 119, 100, 109, 114, 110, 113, 111, 109, 115, 112, 113, 102, 118, 109, 106, 111, 114, 109, 116, 117, 116, 113, 112, 110, 101, 116, 108, 114, 117, 112, 109, 106, 113, 113, 114, 105, 104, 113, 108, 109, 107, 112, 113, 110, 98, 113, 103, 117, 120, 112, 118, 112, 116, 104, 104, 124, 106, 108, 120, 121, 109, 111, 119, 110, 105, 126, 104, 96, 107, 109, 111, 114, 98, 109, 107, 108, 109, 111, 113, 112, 93, 112, 112, 114, 117, 122, 100, 102, 110, 119, 110, 112, 113, 105, 106, 110, 101, 108, 103, 111, 115, 113, 101, 119, 109, 112, 112, 122, 117, 109, 115, 114, 112, 111, 102, 111, 112, 112, 110, 108, 115, 112, 107, 120, 111, 108, 116, 114, 110, 124, 113, 113, 100, 112, 109, 110, 123, 115, 112, 118, 108, 111, 104, 113, 103, 116, 99, 106, 111, 116, 109, 107, 104, 112, 113, 104, 104, 110, 112, 115, 106, 108, 112, 112, 100, 112, 114, 104, 117, 107, 105, 107, 120, 113, 121, 109, 121, 115, 110, 113, 110, 110, 110, 104, 103, 109, 117, 115, 110, 107, 107, 107, 114, 112, 104, 101, 105, 99, 117, 113, 114, 112, 110, 126, 108, 112, 111, 115, 111, 108, 114, 116, 115, 102, 115, 103, 125, 113, 115, 113, 105, 98, 110, 112, 112, 102, 109, 118, 115, 110, 116, 100, 122, 114, 107, 115, 104, 107, 109, 101, 116, 106, 121, 113, 117, 115, 108, 109, 113, 106, 109, 99, 119, 107, 107, 105, 90, 116, 107, 118, 114, 108, 106, 107, 106, 106, 115, 100, 110, 115, 117, 116, 116, 110, 112, 102, 110, 112, 107, 103, 114, 121, 101, 114, 106, 113, 104, 112, 109, 107, 105, 105, 110, 114, 108, 112, 126, 110, 106, 126, 117, 111, 110, 102, 109, 103, 113, 108, 111, 107, 108, 113, 107, 110, 105, 118, 107, 110, 110, 120, 103, 114, 113, 106, 114, 115, 116, 103, 117, 108, 111, 112, 114, 119, 98, 107, 113, 103, 101, 121, 124, 97, 110, 107, 115, 109, 108, 108, 110, 121, 109, 105, 121, 103, 118, 105, 103, 118, 117, 151, 119, 101, 102, 112, 111, 107, 112, 121, 99, 118, 106, 104, 129, 109, 94, 112, 108, 104, 98, 95, 117, 111, 110, 106, 104, 108, 125, 107, 106, 99, 112, 108, 126, 119, 105, 108, 99, 89, 115, 98, 96, 100, 118, 102, 94, 102, 104, 106, 112, 89, 85, 104, 119, 94, 103, 113, 94, 107, 107, 126, 100, 109, 106, 102, 112, 107, 106, 109, 112, 104, 138, 134, 120, 100, 104, 109, 122, 98, 120, 87, 97, 138, 99, 103, 119, 108, 108, 102, 99, 118, 119, 118, 113, 124, 107, 100, 95, 111, 109, 115, 102, 116, 107, 105, 115, 111, 124, 98, 104, 102, 120, 114, 100, 113, 100, 109, 119, 102, 115, 107, 102, 139, 129, 135, 109, 91, 69, 83, 89, 105, 131, 115, 130, 106, 130, 96, 122, 107, 102, 112, 104, 96, 108, 118, 113, 118, 107, 118, 88, 123, 98, 118, 102, 92, 112, 143, 85, 116, 103, 94, 104, 118, 117, 117, 107, 125, 129, 111, 106, 90, 123, 112, 107, 104, 108, 97, 114, 155, 105, 117, 99, 102, 101, 114, 124, 114, 99, 108, 114, 100, 115, 98, 114, 127, 82, 102, 99, 91, 101, 116, 113, 105, 87, 118, 114, 111, 107, 111, 89, 125, 107, 89, 98, 102, 110, 99, 110, 93, 101, 90, 101, 123, 110, 112, 104, 132, 117, 118, 96, 139, 115, 100, 108, 97, 98, 138, 109, 87, 99, 106, 100, 97, 107, 107, 124, 100, 116, 104, 106, 107, 114, 115, 90, 100, 94, 109, 102, 110, 118, 105, 129, 126, 97, 117, 109, 108, 97, 132, 112, 115, 128, 124, 107, 106, 102, 99, 98, 113, 101, 129, 98, 106, 114, 109, 112, 97, 102, 98, 99, 115, 107, 94, 103, 116, 107, 119, 126, 126, 126, 99, 112, 104, 100, 108, 117, 118, 99, 90, 114, 110, 92, 112, 128, 101, 95, 106, 105, 124, 113, 104, 108, 107, 97, 128, 111, 113, 93, 113, 112, 108, 114, 115, 115, 105, 125, 125, 113, 107, 109, 93, 115, 113, 78, 127, 107, 116, 106, 110, 109, 132, 114, 129, 124, 111, 114, 100, 112, 132, 107, 94, 106, 125, 123, 122, 105, 105, 95, 95, 99, 99, 95, 115, 110, 91, 115, 83, 112, 107, 116, 115, 104, 94, 123, 118, 114, 112, 99, 98, 104, 99, 109, 115, 106, 110, 120, 103, 124, 101, 97, 122, 88, 94, 110, 102, 104, 106, 105, 115, 100, 111, 121, 125, 118, 105, 85, 99, 108, 130, 94, 129, 91, 116, 110, 113, 106, 95, 98, 109, 111, 113, 124, 115, 103, 109, 97, 124, 105, 121, 110, 146, 145, 119, 113, 125, 108, 110, 110, 118, 94, 102, 100, 98, 102, 102, 92, 109, 107, 114, 112, 101, 108, 121, 102, 115, 117, 87, 94, 112, 118, 100, 106, 110, 110, 110, 120, 112, 110, 98, 71, 116, 109, 113, 103, 119, 110, 113, 102, 92, 114, 107, 116, 99, 97, 100, 80, 95, 98, 121, 111, 122, 121, 111, 141, 118, 111, 108, 109, 105, 108, 117, 107, 107, 119, 121, 110, 109, 108, 120, 103, 112, 107, 110, 106, 112, 108, 108, 119, 118, 107, 116, 106, 105, 110, 103, 109, 106, 108, 105, 112, 116, 112, 107, 104, 105, 111, 113, 109, 112, 114, 104, 105, 119, 114, 101, 117, 111, 112, 108, 113, 118, 115, 110, 109, 108, 109, 105, 115, 115, 106, 106, 109, 107, 106, 112, 108, 108, 112, 112, 108, 100, 113, 112, 109, 111, 114, 110, 102, 111, 111, 102, 113, 112, 115, 104, 122, 106, 132, 113, 111, 105, 114, 119, 110, 111, 113, 113, 107, 102, 111, 110, 115, 104, 113, 120, 111, 111, 109, 109, 108, 100, 112, 113, 109, 114, 113, 113, 118, 117, 108, 110, 99, 114, 114, 106, 105, 110, 115, 113, 104, 107, 98, 123, 107, 117, 107, 115, 109, 108, 113, 116, 108, 109, 100, 118, 110, 111, 114, 109, 107, 101, 106, 104, 111, 108, 120, 117, 106, 101, 105, 91, 113, 108, 110, 108, 104, 112, 108, 114, 109, 113, 108, 132, 108, 118, 110, 113, 105, 108, 107, 109, 103, 105, 119, 113, 111, 113, 104, 104, 103, 110, 111, 105, 108, 104, 106, 111, 111, 111, 108, 103, 108, 109, 114, 107, 111, 120, 108, 109, 117, 106, 109, 103, 111, 119, 107, 104, 110, 109, 107, 109, 110, 114, 120, 108, 111, 112, 115, 110, 110, 108, 101, 112, 117, 109, 96, 109, 106, 107, 113, 123, 103, 105, 112, 111, 109, 118, 106, 111, 109, 108, 102, 105, 113, 108, 98, 113, 120, 114, 109, 107, 114, 107, 105, 111, 108, 113, 113, 111, 108, 107, 110, 107, 110, 116, 117, 106, 113, 114, 95, 106, 114, 94, 106, 106, 110, 117, 108, 112, 123, 111, 120, 110, 109, 114, 106, 111, 100, 107, 111, 102, 108, 109, 107, 111, 106, 106, 107, 120, 113, 105, 117, 106, 113, 115, 111, 111, 111, 117, 110, 122, 106, 102, 107, 113, 110, 109, 105, 108, 108, 101, 114, 110, 122, 111, 109, 103, 104, 102, 100, 111, 110, 106, 113, 112, 105, 106, 105, 119, 110, 106, 112, 109, 111, 126, 108, 113, 112, 105, 111, 110, 114, 116, 118, 110, 109, 123, 104, 109, 106, 110, 99, 114, 105, 118, 110, 94, 113, 108, 107, 110, 118, 116, 124, 112, 108, 109, 111, 128, 115, 119, 112, 101, 108, 113, 109, 110, 113, 111, 115, 104, 114, 112, 110, 111, 116, 109, 111, 104, 120, 112, 110, 112, 106, 109, 113, 107, 108, 121, 111, 111, 110, 113, 99, 116, 113, 112, 111, 108, 104, 110, 113, 107, 106, 107, 113, 113, 107, 111, 104, 109, 111, 99, 99, 111, 110, 99, 110, 111, 119, 111, 109, 107, 111, 107, 106, 106, 110, 108, 111, 107, 114, 112, 108, 108, 108, 110, 107, 108, 118, 106, 115, 115, 105, 107, 112, 104, 104, 115, 111, 108, 110, 111, 111, 108, 118, 113, 113, 108, 107, 108, 113, 116, 124, 109, 107, 100, 114, 113, 107, 116, 118, 111, 109, 111, 103, 106, 117, 98, 102, 102, 113, 106, 113, 116, 111, 118, 118, 113, 110, 121, 108, 112, 110, 119, 105, 119, 113, 111, 112, 128, 101, 106, 103, 108, 112, 102, 108, 101, 110, 102, 106, 102, 114, 117, 106, 107, 112, 101, 113, 110, 146, 99, 104, 107, 104, 108, 103, 108, 108, 103, 109, 120, 111, 124, 111, 106, 106, 107, 111, 122, 110, 105, 111, 108, 112, 110, 116, 117, 114, 113, 108, 114, 109, 118, 106, 109, 120, 109, 113, 112, 112, 102, 112, 116, 102, 91, 104, 121, 108, 108, 113, 108, 107, 104, 116, 116, 107, 101, 117, 108, 106, 117, 107, 117, 110, 110, 120, 117, 106, 109, 111, 106, 116, 107, 111, 113, 111, 116, 127, 105, 108, 108, 112, 112, 115, 116, 109, 114, 110, 122, 98, 114, 107, 112, 117, 119, 114, 103, 117, 113, 95, 106, 106, 110, 104, 119, 108, 105, 110, 108, 109, 105, 107, 114, 108, 120, 109, 111, 113, 123, 107, 99, 115, 116, 107, 114, 115, 102, 104, 109, 109, 107, 106, 127, 115, 131, 110, 117, 99, 111, 108, 116, 112, 112, 106, 118, 104, 118, 106, 107, 110, 121, 121, 105, 99, 101, 111, 109, 110, 107, 100, 100, 100, 102, 104, 117, 105, 121, 109, 113, 105, 104, 105, 104, 111, 97, 117, 109, 107, 113, 118, 107, 100, 97, 104, 116, 109, 111, 112, 105, 105, 128, 120, 106, 109, 115, 103, 109, 106, 107, 104, 118, 104, 112, 108, 114, 107, 106, 111, 100, 109, 101, 107, 118, 108, 107, 101, 111, 109, 119, 111, 108, 103, 115, 115, 108, 102, 110, 112, 126, 126, 105, 108, 103, 118, 107, 100, 104, 110, 108, 108, 104, 110, 107, 109, 98, 115, 106, 111, 104, 108, 102, 119, 101, 105, 112, 106, 106, 96, 110, 107, 99, 98, 113, 110, 106, 114, 113, 113, 109, 122, 103, 111, 111, 101, 125, 115, 112, 118, 108, 115, 104, 102, 99, 103, 112, 109, 111, 113, 109, 113, 118, 114, 105, 105, 109, 111, 108, 108, 105, 116, 110, 108, 105, 111, 109, 114, 103, 112, 114, 102, 97, 116, 108, 105, 109, 108, 122, 110, 108, 107, 108, 109, 106, 115, 113, 107, 110, 123, 107, 106, 116, 97, 120, 108, 107, 104, 94, 108, 105, 113, 108, 100, 129, 115, 112, 108, 121, 109, 120, 105, 108, 106, 105, 113, 112, 115, 115, 123, 115, 104, 107, 101, 102, 112, 113, 107, 114, 108, 108, 128, 105, 100, 117, 102, 112, 104, 98, 110, 105, 112, 113, 119, 107, 115, 117, 116, 108, 105, 107, 107, 108, 108, 99, 109, 109, 110, 110, 109, 113, 110, 104, 114, 111, 111, 123, 114, 103, 105, 108, 105, 111, 110, 112, 115, 106, 111, 110, 118, 111, 108, 113, 105, 112, 102, 109, 117, 105, 111, 112, 106, 114, 112, 108, 102, 111, 110, 101, 105, 107, 108, 109, 125, 108, 112, 103, 107, 104, 114, 105, 113, 110, 113, 115, 122, 108, 102, 107, 99, 108, 112, 112, 116, 114, 121, 112, 113, 122, 114, 110, 112, 116, 114, 109, 115, 102, 111, 111, 102, 122, 112, 113, 111, 107, 111, 110, 107, 107, 110, 111, 108, 112, 108, 113, 108, 110, 109, 104, 111, 121, 113, 104, 95, 115, 106, 129, 115, 113, 110, 116, 111, 112, 109, 114, 99, 111, 113, 120, 116, 100, 116, 113, 114, 109, 114, 114, 117, 106, 112, 116, 108, 111, 109, 111, 114, 113, 113, 113, 105, 109, 110, 110, 108, 118, 115, 110, 105, 114, 110, 112, 106, 104, 115, 113, 104, 106, 112, 111, 113, 111, 114, 109, 112, 101, 66, 104, 113, 112, 99, 110, 105, 114, 108, 113, 105, 110, 107, 113, 107, 108, 106, 113, 108, 97, 112, 105, 110, 110, 116, 108, 105, 111, 107, 114, 104, 105, 107, 109, 108, 113, 108, 105, 111, 107, 114, 112, 116, 109, 109, 105, 106, 104, 112, 106, 110, 107, 115, 103, 108, 107, 109, 111, 109, 112, 122, 118, 105, 122, 110, 110, 111, 112, 110, 102, 114, 111, 119, 110, 106, 108, 130, 120, 118, 120, 107, 107, 107, 106, 106, 118, 112, 110, 103, 105, 111, 110, 110, 113, 130, 108, 117, 108, 116, 110, 107, 119, 113, 110, 102, 106, 105, 111, 103, 114, 116, 111, 106, 106, 104, 110, 106, 109, 104, 115, 107, 108, 106, 115, 116, 112, 109, 110, 108, 123, 112, 118, 118, 107, 112, 110, 103, 102, 104, 113, 113, 105, 113, 110, 110, 111, 105, 105, 99, 113, 106, 104, 106, 108, 87, 125, 104, 104, 108, 113, 110, 104, 106, 112, 111, 114, 105, 107, 110, 106, 112, 109, 107, 114, 112, 107, 100, 108, 113, 109, 109, 107, 112, 107, 108, 111, 116, 102, 105, 113, 105, 108, 109, 108, 109, 111, 111, 105, 110, 106, 108, 110, 111, 96, 112, 107, 107, 110, 103, 111, 99, 110, 108, 117, 122, 110, 114, 114, 110, 114, 109, 108, 110, 108, 109, 109, 109, 111, 113, 115, 105, 106, 108, 116, 142, 110, 104, 107, 116, 118, 108, 108, 105, 112, 112, 123, 119, 111, 111, 103, 128, 101, 118, 108, 114, 107, 107, 106, 111, 111, 111, 113, 109, 111, 135, 106, 116, 113, 107, 109, 109, 121, 109, 115, 109, 105, 118, 89, 116, 107, 112, 105, 98, 116, 113, 102, 107, 107, 111, 115, 112, 111, 107, 109, 110, 106, 105, 107, 112, 117, 103, 112, 107, 116, 108, 111, 104, 110, 110, 104, 115, 108, 123, 112, 112, 109, 110, 112, 109, 114, 106, 110, 104, 118, 112, 87, 119, 110, 105, 115, 107, 107, 110, 107, 106, 119, 105, 115, 112, 111, 107, 105, 113, 113, 115, 110, 118, 93, 111, 112, 110, 114, 112, 112, 111, 109, 113, 101, 110, 111, 136, 109, 98, 101, 109, 106, 103, 125, 112, 110, 103, 103, 113, 108, 106, 109, 110, 119, 109, 113, 117, 107, 108, 124, 108, 104, 111, 109, 114, 108, 109, 123, 104, 113, 113, 102, 110, 115, 114, 115, 112, 111, 118, 111, 106, 114, 108, 110, 110, 108, 108, 111, 105, 111, 114, 109, 111, 108, 110, 106, 106, 111, 113, 107, 108, 112, 107, 110, 111, 111, 110, 109, 109, 102, 130, 104, 122, 107, 108, 113, 113, 111, 106, 117, 110, 110, 110, 112, 110, 98, 112, 108, 109, 117, 112, 112, 107, 112, 111, 109, 109, 110, 111, 108, 114, 108, 108, 112, 109, 111, 101, 115, 106, 108, 124, 109, 108, 110, 114, 106, 112, 111, 95, 112, 119, 109, 112, 115, 101, 115, 121, 110, 113, 112, 107, 111, 108, 109, 110, 111, 114, 113, 113, 107, 105, 112, 109, 110, 109, 110, 114, 113, 113, 115, 111, 113, 114, 105, 112, 111, 112, 112, 110, 109, 118, 108, 111, 112, 114, 107, 113, 109, 112, 115, 112, 108, 116, 106, 111, 109, 121, 114, 112, 108, 108, 101, 109, 111, 112, 112, 110, 113, 109, 107, 111, 111, 103, 113, 111, 113, 113, 114, 111, 108, 110, 112, 106, 108, 110, 115, 106, 90, 114, 111, 111, 110, 108, 108, 115, 106, 110, 109, 115, 116, 111, 101, 98, 111, 110, 110, 108, 110, 112, 113, 114, 109, 109, 109, 115, 104, 107, 105, 111, 81, 107, 110, 108, 94, 105, 114, 108, 108, 114, 107, 115, 111, 110, 117, 120, 114, 112, 112, 112, 105, 108, 113, 107, 111, 109, 106, 108, 113, 112, 105, 111, 109, 109, 106, 110, 111, 112, 110, 109, 112, 109, 111, 110, 111, 110, 111, 102, 114, 109, 109, 110, 113, 109, 109, 108, 108, 113, 111, 113, 112, 111, 108, 115, 110, 105, 114, 123, 107, 111, 103, 112, 103, 109, 113, 112, 110, 98, 109, 111, 108, 111, 111, 109, 105, 110, 113, 111, 110, 107, 109, 103, 109, 101, 110, 112, 107, 110, 111, 115, 110, 135, 111, 111, 110, 109, 114, 108, 112, 111, 112, 106, 107, 110, 132, 118, 112, 110, 114, 106, 115, 108, 114, 112, 109, 110, 107, 107, 114, 111, 112, 104, 111, 110, 108, 108, 111, 118, 108, 112, 109, 111, 107, 110, 105, 105, 109, 111, 109, 107, 111, 109, 105, 112, 113, 112, 107, 107, 107, 108, 109, 106, 111, 109, 111, 110, 110, 113, 109, 110, 112, 113, 107, 109, 111, 106, 116, 116, 111, 111, 105, 112, 109, 113, 110, 109, 108, 95, 107, 112, 112, 118, 108, 120, 111, 108, 105, 116, 113, 109, 110, 113, 114, 107, 110, 109, 112, 108, 104, 104, 124, 113, 106, 115, 109, 110, 107, 110, 115, 103, 108, 112, 99, 108, 109, 112, 111, 117, 110, 106, 112, 112, 104, 108, 110, 109, 109, 105, 112, 108, 108, 111, 107, 111, 111, 116, 114, 110, 114, 96, 108, 110, 111, 105, 82, 110, 115, 110, 111, 107, 108, 112, 111, 97, 111, 108, 108, 115, 108, 108, 106, 109, 107, 107, 112, 107, 111, 112, 119, 113, 115, 108, 113, 110, 111, 111, 110, 106, 113, 110, 113, 112, 109, 108, 111, 115, 110, 109, 110, 111, 110, 113, 109, 113, 110, 94, 108, 109, 112, 112, 111, 107, 114, 110, 109, 108, 113, 106, 99, 111, 125, 100, 115, 113, 105, 113, 107, 99, 109, 118, 111, 117, 105, 115, 111, 102, 102, 113, 115, 115, 110, 106, 104, 121, 119, 118, 115, 108, 111, 113, 108, 108, 113, 111, 109, 107, 107, 110, 107, 108, 110, 108, 125, 106, 113, 103, 110, 110, 115, 112, 117, 117, 110, 119, 114, 115, 112, 115, 104, 107, 115, 123, 96, 107, 113, 104, 113, 110, 124, 109, 106, 109, 104, 113, 103, 111, 118, 109, 110, 110, 116, 105, 105, 100, 105, 112, 107, 111, 122, 106, 104, 102, 125, 111, 112, 109, 109, 113, 113, 112, 108, 115, 108, 100, 117, 109, 112, 118, 108, 108, 114, 99, 114, 110, 115, 109, 107, 129, 110, 104, 106, 109, 107, 106, 113, 121, 106, 113, 119, 101, 100, 111, 120, 112, 95, 114, 112, 114, 119, 110, 113, 115, 115, 111, 114, 112, 110, 111, 112, 109, 110, 113, 111, 107, 100, 108, 107, 111, 99, 108, 105, 103, 109, 121, 116, 111, 114, 105, 110, 117, 103, 99, 107, 91, 109, 115, 110, 115, 114, 105, 116, 106, 104, 115, 113, 114, 119, 113, 123, 103, 117, 109, 115, 111, 110, 107, 105, 119, 111, 116, 111, 106, 107, 103, 124, 105, 101, 116, 110, 101, 108, 116, 102, 108, 120, 113, 110, 104, 114, 107, 104, 113, 109, 120, 113, 141, 110, 127, 95, 112, 97, 111, 111, 112, 118, 113, 112, 110, 104, 109, 120, 111, 107, 113, 107, 111, 115, 105, 107, 102, 107, 112, 112, 112, 115, 90, 125, 114, 79, 109, 113, 113, 112, 112, 102, 108, 109, 110, 97, 108, 112, 107, 114, 103, 104, 92, 115, 120, 105, 109, 108, 105, 114, 116, 118, 114, 119, 105, 107, 114, 116, 124, 115, 104, 101, 108, 116, 109, 101, 111, 119, 116, 110, 115, 103, 110, 106, 106, 128, 96, 114, 116, 120, 116, 116, 114, 118, 111, 112, 115, 108, 113, 123, 107, 104, 108, 114, 119, 106, 106, 107, 122, 119, 110, 109, 130, 114, 101, 114, 118, 118, 102, 108, 101, 103, 113, 111, 118, 100, 113, 103, 103, 93, 114, 118, 116, 109, 114, 103, 102, 115, 105, 110, 99, 110, 100, 112, 113, 95, 108, 120, 115, 121, 108, 102, 114, 106, 111, 121, 117, 115, 118, 107, 104, 110, 102, 102, 96, 114, 110, 120, 116, 110, 113, 117, 110, 111, 119, 109, 112, 117, 106, 109, 105, 102, 109, 104, 114, 110, 108, 99, 115, 111, 100, 109, 111, 109, 118, 116, 113, 107, 118, 117, 111, 125, 120, 89, 113, 111, 99, 109, 121, 106, 111, 107, 112, 111, 108, 114, 114, 110, 105, 126, 111, 91, 113, 117, 95, 98, 106, 113, 111, 108, 114, 112, 109, 108, 117, 111, 118, 99, 104, 120, 115, 105, 91, 118, 117, 109, 108, 118, 102, 105, 99, 109, 112, 110, 102, 111, 113, 141, 111, 121, 124, 101, 105, 108, 117, 119, 113, 101, 118, 112, 115, 103, 108, 104, 115, 116, 118, 113, 113, 113, 111, 111, 110, 112, 115, 114, 105, 114, 114, 112, 118, 117, 98, 110, 112, 104, 109, 103, 111, 102, 109, 117, 121, 106, 103, 110, 109, 114, 107, 107, 103, 113, 107, 113, 107, 118, 114, 114, 110, 106, 119, 100, 108, 108, 108, 112, 111, 115, 107, 102, 99, 113, 108, 107, 111, 113, 110, 105, 128, 95, 107, 111, 120, 101, 104, 116, 111, 113, 115, 104, 112, 109, 115, 110, 104, 102, 107, 110, 110, 97, 109, 109, 108, 114, 107, 104, 102, 116, 105, 104, 111, 113, 115, 107, 105, 114, 112, 115, 112, 117, 107, 97, 99, 104, 116, 113, 111, 112, 119, 111, 120, 108, 118, 121, 113, 112, 104, 112, 110, 103, 116, 117, 108, 101, 92, 108, 116, 109, 116, 111, 110, 104, 113, 121, 104, 108, 106, 109, 100, 116, 113, 102, 114, 112, 101, 118, 110, 130, 105, 109, 120, 129, 109, 105, 114, 122, 107, 115, 99, 102, 108, 97, 107, 126, 117, 107, 110, 111, 113, 110, 116, 105, 114, 102, 96, 114, 107, 116, 108, 103, 108, 106, 112, 109, 105, 107, 108, 107, 110, 108, 106, 116, 112, 111, 109, 109, 119, 114, 104, 114, 104, 105, 99, 126, 101, 108, 112, 115, 111, 117, 104, 109, 106, 105, 111, 106, 125, 109, 113, 96, 102, 125, 113, 119, 114, 106, 108, 116, 111, 113, 104, 115, 112, 105, 112, 102, 113, 111, 103, 118, 103, 112, 101, 110, 110, 106, 103, 105, 108, 120, 115, 104, 112, 106, 109, 104, 114, 108, 104, 81, 113, 104, 109, 109, 107, 115, 109, 128, 109, 101, 111, 107, 104, 120, 97, 107, 108, 110, 111, 113, 109, 124, 113, 116, 116, 110, 109, 109, 120, 103, 106, 116, 117, 105, 111, 113, 114, 102, 108, 114, 112, 136, 109, 106, 104, 120, 140, 114, 122, 105, 115, 109, 107, 109, 102, 115, 103, 105, 112, 107, 119, 111, 116, 111, 109, 110, 109, 104, 106, 96, 109, 109, 119, 111, 108, 111, 113, 109, 111, 109, 94, 110, 116, 112, 118, 103, 102, 113, 110, 122, 107, 100, 111, 109, 111, 108, 107, 106, 114, 112, 114, 104, 90, 104, 127, 109, 107, 104, 104, 102, 109, 112, 107, 110, 111, 110, 109, 117, 107, 107, 110, 98, 118, 104, 112, 108, 120, 102, 107, 113, 103, 110, 98, 108, 113, 111, 113, 120, 103, 113, 103, 119, 109, 107, 111, 110, 105, 116, 112, 93, 114, 105, 111, 115, 114, 115, 111, 120, 112, 108, 113, 110, 107, 112, 82, 106, 112, 121, 104, 112, 92, 102, 106, 116, 111, 107, 113, 101, 107, 99, 110, 107, 100, 106, 101, 111, 108, 119, 105, 104, 121, 99, 106, 114, 111, 111, 109, 110, 124, 107, 108, 112, 111, 106, 114, 95, 114, 112, 99, 109, 112, 104, 111, 126, 103, 115, 102, 110, 108, 123, 105, 109, 108, 107, 107, 103, 110, 113, 116, 108, 105, 111, 102, 118, 110, 107, 107, 103, 108, 110, 113, 115, 107, 111, 107, 104, 116, 126, 116, 120, 113, 111, 103, 114, 105, 110, 105, 106, 116, 108, 106, 107, 112, 109, 117, 106, 108, 110, 108, 108, 99, 117, 106, 106, 108, 104, 111, 111, 109, 102, 107, 110, 107, 108, 115, 107, 112, 108, 112, 116, 109, 115, 113, 109, 116, 99, 114, 106, 116, 108, 115, 105, 110, 111, 109, 111, 112, 106, 109, 114, 101, 103, 104, 112, 108, 110, 117, 98, 108, 104, 110, 110, 108, 106, 116, 122, 108, 116, 98, 116, 110, 110, 114, 104, 105, 110, 109, 109, 106, 107, 112, 114, 106, 111, 112, 111, 106, 114, 109, 107, 109, 104, 111, 107, 115, 131, 111, 107, 110, 109, 107, 113, 111, 117, 108, 115, 114, 114, 113, 104, 107, 114, 113, 104, 110, 107, 109, 108, 109, 109, 102, 104, 114, 114, 113, 107, 111, 94, 132, 110, 109, 113, 117, 111, 108, 106, 109, 111, 117, 105, 110, 111, 116, 103, 115, 118, 111, 111, 108, 104, 117, 104, 111, 89, 106, 107, 111, 105, 114, 110, 113, 111, 105, 107, 105, 110, 119, 104, 112, 103, 117, 113, 114, 105, 115, 107, 104, 108, 111, 111, 104, 106, 110, 97, 109, 113, 111, 104, 86, 106, 110, 106, 109, 111, 108, 106, 102, 111, 109, 109, 115, 107, 109, 110, 107, 105, 112, 103, 111, 97, 107, 108, 113, 111, 113, 108, 114, 96, 114, 118, 110, 112, 117, 112, 113, 102, 107, 102, 108, 110, 109, 115, 110, 105, 118, 111, 111, 114, 106, 120, 108, 112, 110, 103, 101, 105, 96, 103, 115, 115, 107, 112, 105, 104, 104, 105, 116, 113, 112, 103, 107, 119, 93, 110, 128, 102, 100, 115, 114, 109, 108, 111, 109, 109, 106, 99, 112, 108, 106, 111, 114, 114, 113, 112, 110, 115, 115, 130, 111, 118, 115, 112, 112, 99, 104, 108, 105, 107, 104, 111, 100, 116, 105, 102, 106, 102, 115, 111, 112, 115, 113, 99, 104, 111, 102, 107, 114, 104, 110, 113, 114, 99, 110, 121, 112, 110, 120, 117, 112, 115, 106, 112, 118, 91, 117, 115, 110, 113, 110, 113, 107, 108, 98, 108, 111, 105, 116, 107, 107, 107, 104, 113, 113, 115, 116, 108, 108, 110, 109, 116, 112, 143, 114, 117, 107, 101, 117, 113, 108, 107, 115, 111, 107, 113, 106, 110, 107, 120, 104, 112, 110, 113, 106, 111, 107, 111, 110, 117, 106, 110, 114, 110, 113, 125, 105, 111, 107, 118, 108, 112, 112, 106, 104, 109, 108, 114, 109, 121, 99, 109, 115, 110, 116, 103, 108, 109, 108, 102, 116, 111, 102, 110, 109, 104, 110, 114, 109, 111, 107, 100, 107, 134, 106, 112, 115, 107, 150, 111, 105, 110, 107, 109, 107, 106, 101, 111, 111, 117, 104, 110, 116, 109, 104, 111, 108, 104, 111, 106, 114, 110, 103, 106, 116, 109, 106, 109, 110, 111, 116, 116, 112, 109, 107, 110, 111, 105, 112, 109, 107, 114, 113, 113, 108, 114, 115, 110, 107, 113, 109, 110, 113, 113, 121, 117, 109, 116, 111, 110, 111, 110, 113, 104, 108, 112, 100, 112, 108, 98, 105, 107, 104, 112, 110, 104, 101, 112, 107, 115, 106, 106, 116, 119, 103, 110, 104, 111, 103, 108, 115, 108, 112, 108, 115, 114, 102, 112, 116, 118, 108, 114, 108, 108, 99, 116, 95, 97, 110, 102, 100, 94, 90, 116, 113, 106, 111, 110, 92, 112, 111, 115, 113, 106, 106, 112, 102, 106, 114, 107, 106, 118, 117, 115, 113, 103, 109, 115, 99, 110, 107, 108, 113, 104, 113, 106, 108, 112, 113, 110, 114, 111, 115, 126, 118, 103, 106, 111, 113, 122, 104, 116, 113, 103, 113, 116, 110, 109, 105, 104, 109, 105, 112, 113, 112, 92, 83, 114, 111, 102, 99, 120, 99, 127, 110, 111, 109, 114, 114, 115, 96, 109, 101, 101, 115, 108, 111, 111, 105, 98, 113, 107, 107, 108, 114, 103, 110, 119, 110, 102, 111, 109, 107, 111, 106, 114, 122, 102, 94, 104, 107, 96, 114, 106, 112, 116, 104, 115, 111, 107, 107, 111, 113, 112, 116, 109, 110, 112, 107, 101, 109, 97, 114, 109, 105, 108, 114, 108, 103, 106, 112, 113, 116, 119, 107, 119, 106, 111, 110, 112, 117, 111, 111, 121, 105, 109, 105, 104, 108, 110, 104, 115, 128, 112, 114, 108, 106, 105, 109, 100, 123, 106, 106, 111, 113, 102, 114, 107, 107, 121, 109, 112, 111, 109, 109, 124, 106, 114, 105, 123, 120, 113, 110, 110, 103, 107, 104, 105, 102, 98, 108, 113, 107, 122, 114, 114, 116, 111, 119, 110, 109, 122, 114, 120, 102, 107, 109, 107, 114, 105, 116, 120, 113, 108, 114, 114, 113, 111, 114, 114, 117, 109, 110, 102, 111, 116, 109, 113, 116, 113, 113, 108, 107, 99, 118, 101, 99, 107, 106, 116, 109, 109, 111, 102, 103, 111, 109, 114, 112, 99, 101, 108, 105, 116, 109, 108, 105, 104, 111, 110, 104, 111, 107, 124, 114, 109, 109, 107, 113, 113, 123, 120, 100, 106, 104, 107, 110, 102, 104, 116, 112, 121, 101, 104, 105, 111, 106, 112, 107, 107, 113, 113, 105, 106, 115, 101, 120, 109, 111, 106, 113, 111, 109, 112, 95, 105, 114, 107, 98, 115, 100, 109, 109, 108, 108, 112, 122, 102, 112, 109, 119, 110, 109, 104, 118, 110, 107, 104, 113, 105, 107, 120, 107, 113, 108, 112, 114, 108, 109, 112, 112, 120, 110, 114, 108, 115, 107, 107, 106, 112, 116, 114, 109, 111, 101, 94, 116, 111, 114, 125, 106, 106, 113, 104, 103, 118, 92, 110, 109, 112, 102, 115, 113, 109, 104, 112, 109, 105, 117, 109, 104, 112, 102, 102, 109, 108, 114, 109, 105, 112, 114, 111, 127, 107, 95, 113, 109, 105, 112, 118, 113, 106, 118, 93, 102, 122, 109, 108, 107, 106, 109, 107, 101, 99, 99, 104, 113, 111, 103, 124, 103, 119, 108, 116, 107, 114, 115, 103, 116, 113, 102, 116, 112, 96, 113, 111, 108, 110, 107, 111, 107, 109, 111, 106, 113, 109, 108, 113, 109, 117, 112, 108, 114, 103, 102, 119, 119, 109, 108, 110, 116, 110, 77, 115, 114, 110, 111, 115, 112, 101, 127, 111, 105, 114, 108, 106, 113, 108, 113, 112, 101, 109, 111, 114, 115, 106, 111, 112, 117, 105, 112, 117, 114, 106, 110, 109, 111, 111, 115, 111, 115, 112, 109, 114, 108, 109, 112, 116, 112, 109, 117, 108, 118, 112, 108, 111, 101, 112, 114, 108, 110, 114, 101, 117, 106, 115, 117, 106, 106, 108, 113, 109, 108, 110, 110, 111, 110, 111, 108, 120, 110, 106, 103, 115, 114, 114, 117, 106, 115, 108, 111, 109, 115, 115, 116, 113, 119, 105, 112, 112, 113, 115, 113, 107, 117, 112, 119, 107, 115, 113, 104, 107, 111, 117, 107, 109, 111, 110, 99, 107, 114, 106, 108, 114, 114, 104, 122, 113, 107, 110, 107, 102, 106, 111, 114, 110, 107, 105, 111, 109, 106, 110, 116, 109, 118, 95, 115, 106, 120, 109, 115, 113, 110, 110, 112, 105, 103, 117, 116, 110, 121, 98, 103, 106, 106, 113, 109, 118, 123, 114, 109, 112, 104, 106, 114, 113, 109, 114, 108, 116, 112, 114, 113, 118, 114, 107, 110, 115, 110, 103, 115, 110, 107, 98, 113, 106, 111, 109, 114, 110, 111, 115, 106, 113, 118, 112, 108, 108, 111, 114, 115, 111, 111, 110, 113, 110, 107, 118, 122, 101, 108, 116, 109, 106, 112, 108, 105, 115, 105, 116, 99, 116, 111, 108, 107, 111, 112, 106, 105, 114, 123, 106, 110, 111, 112, 115, 111, 115, 110, 109, 112, 95, 105, 111, 110, 120, 109, 109, 108, 112, 112, 113, 108, 109, 118, 109, 109, 113, 109, 105, 112, 114, 113, 116, 112, 113, 109, 112, 114, 108, 115, 110, 107, 114, 108, 105, 109, 117, 115, 120, 112, 117, 98, 115, 109, 107, 116, 104, 107, 113, 117, 115, 111, 113, 103, 112, 61, 110, 115, 109, 107, 110, 111, 114, 114, 114, 114, 114, 112, 114, 110, 109, 113, 109, 119, 109, 106, 112, 103, 111, 103, 106, 107, 111, 105, 107, 106, 104, 121, 114, 111, 115, 112, 110, 109, 109, 108, 92, 111, 110, 110, 110, 117, 103, 117, 108, 99, 101, 103, 107, 116, 116, 106, 107, 107, 102, 112, 113, 106, 112, 110, 108, 108, 117, 105, 114, 117, 122, 111, 120, 111, 110, 113, 107, 109, 114, 109, 96, 101, 105, 108, 111, 110, 109, 111, 100, 113, 110, 113, 108, 107, 113, 112, 106, 112, 108, 102, 107, 103, 110, 112, 109, 113, 106, 105, 105, 118, 109, 109, 118, 104, 107, 114, 106, 110, 113, 104, 117, 108, 120, 113, 110, 116, 116, 99, 115, 106, 110, 112, 108, 112, 109, 111, 118, 107, 110, 110, 112, 110, 108, 107, 103, 111, 111, 108, 109, 106, 115, 113, 114, 112, 117, 106, 115, 115, 111, 106, 106, 111, 111, 119, 111, 98, 109, 109, 107, 109, 111, 111, 112, 113, 116, 112, 114, 113, 108, 112, 113, 112, 108, 114, 109, 103, 117, 112, 109, 104, 108, 109, 111, 106, 108, 110, 112, 98, 104, 103, 107, 113, 108, 105, 114, 112, 104, 108, 108, 105, 111, 111, 112, 112, 106, 118, 111, 109, 113, 115, 107, 107, 111, 116, 118, 105, 102, 92, 105, 107, 96, 103, 110, 102, 106, 119, 114, 116, 108, 107, 106, 117, 108, 111, 110, 112, 112, 104, 103, 109, 116, 120, 103, 110, 119, 95, 110, 115, 107, 111, 111, 106, 101, 96, 116, 112, 117, 106, 91, 116, 104, 110, 113, 116, 97, 117, 94, 113, 112, 100, 107, 113, 109, 107, 109, 104, 108, 116, 111, 110, 102, 113, 105, 104, 98, 111, 112, 112, 114, 113, 104, 109, 102, 105, 124, 110, 110, 105, 111, 107, 102, 112, 111, 109, 115, 106, 113, 108, 110, 107, 100, 108, 100, 111, 102, 111, 112, 116, 110, 114, 115, 107, 120, 109, 103, 116, 99, 111, 115, 111, 113, 101, 112, 113, 112, 112, 120, 110, 107, 100, 119, 106, 96, 114, 100, 107, 102, 116, 114, 105, 107, 116, 105, 108, 108, 98, 125, 109, 102, 113, 118, 109, 114, 98, 98, 112, 128, 105, 108, 107, 106, 115, 113, 124, 117, 124, 119, 115, 118, 102, 107, 111, 96, 113, 110, 102, 98, 107, 110, 111, 105, 102, 106, 113, 98, 111, 107, 121, 116, 126, 102, 114, 104, 130, 115, 114, 103, 116, 103, 101, 107, 111, 113, 109, 107, 112, 111, 114, 107, 111, 110, 106, 104, 101, 112, 107, 111, 101, 121, 106, 100, 109, 111, 112, 113, 101, 109, 97, 107, 109, 98, 115, 111, 114, 111, 96, 111, 112, 110, 99, 116, 97, 113, 94, 103, 108, 110, 117, 104, 108, 136, 108, 98, 112, 106, 114, 111, 95, 119, 111, 127, 105, 115, 108, 105, 120, 103, 116, 111, 111, 112, 113, 113, 116, 133, 114, 108, 115, 105, 123, 113, 106, 95, 140, 112, 103, 104, 101, 107, 109, 106, 105, 113, 103, 118, 102, 90, 107, 118, 98, 108, 121, 104, 101, 125, 108, 119, 99, 122, 111, 111, 99, 107, 112, 114, 121, 111, 107, 112, 112, 116, 119, 108, 130, 112, 96, 106, 104, 112, 111, 110, 132, 105, 96, 93, 106, 102, 118, 99, 111, 111, 105, 114, 105, 102, 106, 103, 117, 109, 114, 111, 115, 105, 108, 112, 106, 110, 108, 112, 136, 100, 115, 106, 105, 109, 103, 116, 113, 121, 112, 96, 111, 122, 108, 113, 116, 103, 109, 120, 105, 137, 113, 109, 113, 110, 101, 110, 101, 124, 108, 120, 118, 100, 111, 107, 124, 102, 132, 109, 120, 116, 108, 102, 110, 100, 112, 108, 106, 124, 110, 107, 103, 110, 116, 108, 112, 122, 101, 107, 108, 109, 110, 122, 100, 112, 109, 106, 110, 111, 119, 118, 109, 113, 121, 103, 113, 114, 111, 104, 88, 104, 119, 108, 126, 103, 113, 113, 113, 107, 116, 115, 116, 110, 101, 107, 110, 110, 111, 112, 110, 110, 106, 114, 112, 113, 116, 99, 107, 91, 107, 119, 107, 106, 113, 116, 107, 117, 116, 111, 115, 109, 118, 127, 102, 108, 109, 107, 105, 106, 118, 108, 107, 112, 108, 109, 110, 101, 113, 105, 105, 108, 111, 110, 112, 109, 120, 112, 123, 109, 103, 116, 104, 102, 105, 107, 108, 106, 110, 105, 101, 115, 110, 118, 104, 106, 116, 111, 104, 108, 106, 108, 104, 108, 110, 110, 115, 108, 137, 103, 101, 106, 100, 113, 95, 113, 106, 112, 102, 113, 116, 106, 96, 108, 107, 119, 107, 106, 118, 108, 100, 105, 122, 107, 102, 99, 106, 106, 112, 106, 105, 117, 98, 111, 106, 113, 111, 122, 121, 104, 125, 109, 115, 97, 115, 106, 108, 113, 104, 110, 116, 96, 102, 126, 102, 115, 102, 110, 103, 115, 103, 102, 109, 113, 113, 110, 115, 115, 116, 112, 114, 106, 119, 101, 103, 103, 111, 114, 111, 107, 116, 107, 103, 97, 132, 108, 106, 115, 106, 103, 97, 108, 109, 104, 103, 121, 117, 110, 116, 126, 106, 107, 103, 102, 108, 109, 117, 99, 110, 102, 109, 118, 107, 128, 110, 101, 103, 105, 112, 112, 108, 111, 113, 99, 113, 106, 124, 102, 98, 101, 121, 108, 111, 112, 102, 106, 117, 104, 103, 113, 110, 102, 108, 114, 106, 107, 116, 111, 115, 103, 112, 102, 115, 117, 123, 109, 112, 89, 103, 115, 106, 117, 110, 112, 102, 106, 111, 101, 101, 102, 106, 100, 109, 102, 117, 102, 112, 102, 105, 105, 111, 110, 106, 123, 108, 99, 104, 105, 115, 128, 118, 115, 104, 107, 113, 105, 108, 109, 105, 111, 112, 111, 112, 99, 111, 120, 102, 108, 102, 102, 105, 114, 119, 122, 110, 105, 105, 104, 101, 105, 110, 118, 109, 114, 123, 108, 110, 101, 114, 108, 100, 112, 104, 116, 112, 111, 106, 116, 110, 114, 107, 106, 104, 108, 121, 107, 112, 104, 109, 110, 103, 113, 107, 108, 102, 107, 112, 107, 109, 104, 115, 116, 102, 113, 106, 124, 107, 119, 103, 104, 107, 110, 119, 117, 134, 102, 109, 105, 109, 110, 105, 95, 115, 111, 111, 108, 110, 100, 110, 104, 102, 99, 115, 111, 116, 105, 109, 102, 114, 104, 107, 112, 118, 100, 102, 111, 98, 116, 104, 103, 115, 104, 113, 96, 107, 111, 104, 110, 102, 125, 131, 104, 114, 117, 99, 117, 106, 104, 111, 113, 108, 116, 95, 99, 119, 105, 101, 117, 131, 129, 106, 111, 104, 107, 104, 110, 105, 106, 100, 105, 108, 122, 106, 118, 110, 113, 106, 108, 104, 104, 101, 111, 98, 107, 118, 113, 106, 109, 109, 123, 113, 99, 94, 104, 112, 114, 104, 116, 110, 106, 107, 109, 103, 104, 115, 105, 106, 106, 124, 107, 99, 117, 122, 109, 106, 110, 119, 116, 110, 113, 111, 115, 114, 111, 132, 105, 115, 109, 112, 114, 102, 100, 119, 103, 115, 113, 115, 98, 107, 123, 90, 107, 111, 96, 115, 108, 104, 100, 105, 115, 105, 108, 92, 103, 102, 118, 108, 105, 116, 108, 110, 102, 114, 117, 112, 112, 119, 99, 125, 112, 108, 105, 111, 113, 107, 102, 110, 113, 104, 114, 109, 105, 108, 106, 102, 111, 110, 110, 111, 112, 117, 106, 118, 114, 106, 119, 107, 124, 110, 108, 134, 113, 105, 103, 106, 102, 115, 107, 112, 107, 107, 104, 108, 106, 113, 112, 95, 99, 110, 112, 100, 117, 111, 103, 111, 105, 114, 121, 107, 111, 113, 95, 122, 97, 103, 126, 98, 116, 113, 119, 108, 102, 111, 114, 137, 162, 107, 110, 100, 112, 120, 118, 116, 110, 110, 115, 102, 114, 99, 105, 102, 122, 108, 115, 107, 109, 106, 98, 122, 108, 157, 108, 104, 104, 116, 112, 99, 113, 97, 113, 117, 131, 113, 113, 102, 106, 114, 114, 110, 107, 115, 106, 106, 107, 112, 118, 109, 111, 111, 117, 104, 108, 99, 110, 112, 103, 94, 114, 105, 111, 106, 118, 111, 108, 109, 101, 121, 107, 102, 117, 129, 107, 104, 115, 106, 77, 124, 109, 100, 107, 105, 102, 104, 109, 110, 113, 97, 100, 111, 107, 109, 112, 111, 105, 113, 104, 115, 112, 119, 108, 114, 110, 106, 116, 120, 104, 144, 110, 109, 113, 117, 110, 117, 101, 125, 116, 116, 108, 120, 100, 110, 96, 118, 111, 109, 111, 110, 124, 141, 107, 115, 109, 118, 111, 114, 139, 112, 102, 109, 100, 111, 113, 115, 106, 106, 122, 113, 110, 109, 113, 98, 103, 106, 90, 103, 101, 121, 110, 112, 106, 112, 121, 117, 114, 112, 115, 103, 95, 129, 102, 104, 108, 114, 119, 112, 112, 106, 101, 106, 107, 110, 113, 110, 131, 112, 108, 124, 110, 110, 116, 106, 119, 109, 119, 115, 111, 106, 112, 108, 100, 113, 108, 110, 110, 104, 116, 111, 115, 112, 114, 107, 105, 106, 109, 102, 115, 113, 98, 108, 121, 110, 109, 130, 101, 112, 108, 116, 100, 108, 118, 112, 111, 107, 117, 117, 109, 112, 129, 110, 109, 98, 105, 106, 108, 115, 111, 111, 114, 109, 115, 106, 97, 106, 108, 114, 107, 104, 111, 106, 109, 108, 110, 104, 104, 97, 114, 111, 114, 96, 113, 102, 107, 115, 104, 103, 97, 119, 108, 115, 111, 115, 111, 111, 101, 103, 86, 103, 110, 113, 94, 111, 101, 119, 110, 107, 103, 111, 123, 105, 105, 109, 138, 112, 90, 106, 107, 105, 111, 103, 120, 100, 114, 117, 110, 95, 113, 108, 100, 112, 103, 110, 118, 100, 113, 89, 100, 114, 104, 108, 115, 97, 111, 111, 104, 104, 105, 114, 102, 112, 115, 103, 126, 109, 121, 114, 107, 108, 107, 111, 111, 109, 105, 112, 121, 105, 108, 109, 116, 96, 108, 122, 103, 108, 98, 130, 111, 110, 119, 107, 109, 98, 110, 108, 94, 109, 116, 109, 109, 117, 105, 112, 101, 112, 112, 115, 119, 115, 108, 92, 102, 106, 114, 111, 83, 110, 123, 110, 123, 106, 114, 108, 105, 109, 110, 102, 111, 116, 89, 118, 107, 114, 110, 101, 112, 112, 115, 106, 114, 98, 110, 100, 114, 114, 95, 112, 108, 115, 112, 104, 113, 112, 107, 106, 112, 114, 108, 119, 88, 110, 110, 127, 110, 105, 118, 106, 104, 109, 111, 111, 113, 115, 109, 111, 103, 109, 98, 101, 112, 110, 112, 108, 104, 112, 98, 108, 115, 110, 101, 115, 97, 108, 98, 102, 108, 103, 100, 109, 117, 109, 113, 112, 113, 110, 115, 102, 111, 115, 116, 109, 105, 106, 101, 112, 102, 112, 111, 116, 112, 111, 114, 110, 114, 107, 120, 108, 106, 111, 111, 112, 113, 102, 108, 106, 82, 104, 113, 116, 104, 106, 108, 109, 117, 104, 107, 111, 106, 115, 108, 112, 102, 105, 110, 108, 111, 113, 108, 111, 110, 108, 109, 110, 103, 100, 107, 109, 108, 102, 120, 99, 100, 116, 103, 98, 104, 113, 109, 90, 108, 109, 113, 109, 120, 111, 118, 110, 107, 108, 103, 109, 99, 118, 120, 110, 111, 125, 111, 114, 114, 102, 114, 106, 106, 113, 112, 105, 99, 98, 114, 111, 111, 105, 110, 107, 104, 108, 108, 107, 119, 106, 112, 120, 123, 113, 109, 111, 113, 108, 114, 100, 100, 112, 104, 105, 113, 128, 106, 116, 110, 107, 103, 104, 106, 101, 106, 101, 101, 111, 113, 105, 102, 105, 108, 112, 112, 111, 109, 112, 117, 103, 108, 107, 113, 110, 109, 115, 114, 109, 108, 113, 117, 109, 111, 120, 112, 110, 107, 115, 112, 95, 84, 114, 112, 106, 109, 110, 108, 102, 113, 110, 101, 110, 101, 115, 114, 107, 133, 111, 115, 99, 112, 101, 110, 112, 99, 110, 106, 107, 110, 117, 109, 120, 120, 119, 110, 104, 106, 98, 109, 114, 108, 114, 108, 119, 119, 111, 111, 118, 104, 111, 124, 127, 107, 110, 98, 105, 115, 104, 112, 112, 109, 119, 116, 103, 111, 109, 110, 134, 107, 114, 110, 110, 100, 111, 111, 111, 113, 112, 112, 123, 106, 108, 106, 110, 116, 104, 99, 120, 108, 131, 114, 110, 117, 102, 105, 113, 106, 126, 106, 134, 115, 119, 112, 103, 114, 107, 105, 99, 116, 110, 103, 113, 113, 113, 107, 104, 102, 100, 98, 111, 101, 111, 111, 110, 112, 111, 111, 106, 107, 111, 106, 114, 97, 107, 116, 113, 118, 106, 111, 111, 117, 114, 108, 123, 112, 102, 106, 108, 107, 113, 106, 106, 112, 123, 111, 111, 110, 108, 114, 115, 102, 114, 112, 104, 101, 112, 110, 105, 115, 104, 109, 109, 103, 112, 104, 110, 97, 114, 105, 109, 128, 100, 106, 105, 107, 114, 123, 109, 109, 97, 111, 108, 111, 112, 108, 97, 113, 109, 99, 116, 124, 108, 110, 107, 104, 102, 101, 107, 109, 106, 111, 115, 107, 100, 106, 108, 107, 107, 101, 105, 91, 115, 87, 114, 113, 100, 106, 102, 104, 112, 105, 113, 105, 92, 101, 103, 117, 110, 104, 120, 110, 106, 103, 114, 120, 109, 105, 107, 113, 116, 114, 115, 114, 111, 116, 102, 110, 110, 121, 110, 112, 110, 109, 110, 102, 110, 113, 113, 105, 110, 116, 115, 108, 116, 109, 116, 108, 113, 117, 102, 107, 107, 110, 106, 124, 113, 101, 111, 102, 114, 113, 102, 103, 109, 106, 110, 108, 109, 108, 109, 100, 107, 120, 111, 106, 113, 118, 115, 114, 111, 103, 111, 109, 108, 111, 111, 115, 105, 107, 109, 114, 114, 112, 104, 108, 107, 111, 97, 109, 111, 112, 110, 112, 109, 107, 107, 109, 113, 111, 106, 111, 108, 113, 107, 114, 107, 109, 110, 112, 103, 107, 118, 109, 110, 113, 117, 112, 104, 113, 115, 111, 112, 111, 107, 111, 114, 114, 111, 108, 108, 110, 112, 108, 110, 107, 104, 115, 111, 108, 105, 108, 112, 111, 116, 107, 109, 107, 112, 107, 108, 112, 111, 111, 110, 112, 107, 113, 107, 117, 113, 97, 112, 113, 111, 109, 112, 106, 109, 109, 110, 112, 107, 99, 110, 108, 110, 110, 112, 111, 117, 111, 113, 111, 107, 111, 111, 105, 108, 117, 105, 112, 119, 104, 111, 120, 117, 109, 115, 110, 113, 113, 108, 104, 113, 108, 113, 103, 109, 107, 110, 113, 112, 111, 106, 105, 109, 107, 104, 110, 108, 108, 112, 110, 115, 105, 107, 112, 110, 112, 112, 113, 108, 109, 115, 109, 121, 108, 119, 112, 110, 105, 112, 109, 111, 112, 110, 106, 111, 109, 120, 105, 113, 109, 107, 112, 110, 113, 111, 113, 110, 108, 108, 108, 115, 112, 113, 108, 111, 110, 100, 113, 117, 103, 108, 109, 111, 105, 106, 109, 109, 104, 115, 105, 112, 102, 109, 105, 113, 110, 117, 108, 110, 109, 107, 107, 109, 109, 114, 114, 107, 103, 110, 112, 112, 112, 111, 111, 114, 110, 111, 109, 107, 108, 112, 112, 110, 109, 112, 112, 111, 107, 113, 105, 110, 108, 108, 106, 99, 116, 109, 112, 110, 110, 110, 103, 114, 114, 107, 109, 111, 100, 111, 112, 116, 113, 108, 117, 111, 110, 117, 110, 113, 112, 110, 107, 110, 103, 108, 106, 112, 107, 111, 108, 115, 119, 108, 113, 106, 114, 109, 110, 111, 110, 109, 109, 115, 107, 109, 110, 109, 120, 111, 113, 111, 111, 106, 118, 109, 117, 110, 111, 110, 107, 113, 105, 108, 107, 108, 118, 109, 113, 107, 112, 115, 111, 113, 113, 108, 117, 111, 112, 113, 103, 107, 110, 106, 108, 109, 107, 106, 114, 110, 109, 115, 104, 106, 103, 114, 112, 109, 106, 106, 113, 109, 109, 108, 107, 108, 109, 100, 109, 111, 109, 109, 108, 105, 106, 108, 109, 108, 108, 110, 111, 120, 109, 119, 110, 110, 109, 112, 109, 111, 113, 110, 109, 113, 110, 114, 112, 102, 108, 129, 101, 111, 111, 121, 112, 107, 111, 117, 112, 113, 102, 114, 107, 102, 111, 106, 108, 111, 110, 110, 111, 109, 110, 109, 115, 110, 120, 107, 112, 111, 118, 114, 111, 108, 112, 111, 113, 115, 108, 111, 112, 110, 107, 110, 120, 114, 109, 117, 111, 110, 104, 117, 112, 111, 109, 108, 108, 109, 112, 106, 104, 125, 113, 106, 109, 117, 116, 109, 111, 108, 111, 107, 114, 120, 110, 110, 113, 119, 113, 107, 116, 111, 121, 116, 115, 109, 107, 106, 105, 110, 113, 107, 113, 110, 115, 110, 109, 106, 110, 112, 112, 110, 113, 113, 110, 108, 109, 116, 107, 109, 109, 109, 108, 109, 109, 115, 113, 108, 106, 121, 107, 102, 117, 108, 113, 115, 113, 104, 110, 140, 113, 120, 89, 112, 114, 102, 115, 107, 104, 104, 107, 108, 119, 110, 114, 117, 108, 108, 116, 112, 109, 107, 111, 102, 100, 106, 102, 104, 114, 82, 96, 99, 110, 116, 103, 108, 110, 117, 112, 108, 111, 104, 110, 105, 106, 106, 112, 110, 107, 110, 104, 106, 115, 101, 111, 104, 115, 113, 113, 114, 109, 113, 112, 102, 116, 113, 107, 106, 110, 112, 113, 110, 109, 107, 107, 106, 108, 104, 100, 112, 114, 113, 109, 109, 111, 110, 106, 111, 112, 110, 114, 198, 109, 111, 106, 115, 115, 109, 104, 107, 112, 113, 110, 111, 106, 124, 115, 108, 110, 109, 134, 106, 114, 110, 105, 118, 103, 107, 111, 117, 101, 103, 117, 106, 103, 122, 110, 115, 116, 126, 111, 117, 111, 104, 103, 107, 106, 108, 109, 123, 112, 106, 102, 114, 115, 104, 111, 105, 112, 106, 106, 108, 112, 117, 108, 100, 101, 110, 109, 106, 110, 114, 113, 108, 102, 116, 103, 105, 110, 110, 110, 110, 117, 109, 98, 106, 112, 116, 108, 114, 108, 120, 110, 107, 107, 112, 99, 108, 87, 108, 104, 111, 108, 116, 108, 121, 107, 103, 107, 116, 109, 112, 105, 116, 103, 107, 106, 112, 110, 104, 112, 112, 107, 115, 106, 114, 112, 102, 117, 108, 116, 111, 100, 99, 108, 110, 108, 111, 102, 105, 115, 107, 110, 109, 105, 114, 107, 113, 111, 95, 115, 108, 112, 106, 106, 112, 115, 107, 114, 101, 112, 113, 110, 106, 105, 112, 115, 47, 141, 108, 108, 106, 107, 114, 109, 98, 109, 101, 112, 113, 105, 112, 105, 109, 104, 100, 112, 114, 112, 116, 116, 103, 109, 110, 110, 106, 114, 111, 105, 108, 109, 107, 109, 106, 112, 112, 116, 113, 108, 113, 112, 107, 108, 73, 109, 113, 102, 112, 109, 110, 107, 105, 116, 116, 108, 105, 108, 102, 107, 110, 123, 107, 113, 106, 105, 107, 115, 107, 113, 106, 111, 105, 110, 108, 109, 107, 110, 115, 115, 112, 112, 110, 108, 108, 106, 108, 114, 106, 113, 107, 117, 112, 109, 114, 107, 110, 105, 115, 113, 102, 110, 101, 108, 107, 112, 108, 119, 115, 108, 108, 103, 112, 116, 108, 107, 112, 81, 108, 116, 111, 110, 114, 105, 109, 111, 109, 106, 112, 119, 106, 106, 110, 110, 112, 106, 105, 107, 107, 117, 104, 108, 115, 110, 108, 113, 101, 108, 113, 109, 106, 107, 107, 112, 113, 110, 103, 106, 106, 107, 114, 112, 113, 110, 113, 105, 118, 117, 123, 97, 108, 110, 105, 116, 109, 105, 111, 107, 110, 111, 115, 111, 114, 112, 109, 106, 110, 108, 110, 106, 106, 107, 96, 110, 114, 111, 104, 104, 106, 105, 108, 116, 104, 110, 99, 109, 106, 114, 104, 110, 119, 109, 114, 110, 101, 112, 112, 110, 110, 119, 112, 110, 112, 107, 100, 111, 112, 111, 104, 100, 106, 113, 106, 110, 118, 110, 108, 107, 122, 105, 106, 107, 110, 108, 101, 106, 103, 115, 109, 110, 116, 110, 106, 109, 111, 108, 108, 105, 111, 112, 112, 109, 110, 112, 108, 108, 103, 107, 111, 110, 107, 108, 113, 108, 105, 114, 104, 116, 105, 104, 106, 111, 106, 106, 108, 108, 115, 107, 106, 107, 104, 104, 111, 110, 112, 111, 117, 114, 110, 110, 105, 104, 113, 111, 109, 109, 107, 109, 103, 111, 111, 120, 106, 119, 105, 107, 106, 112, 106, 112, 111, 110, 111, 127, 104, 109, 108, 110, 106, 110, 114, 112, 110, 107, 109, 118, 111, 113, 108, 108, 112, 107, 103, 110, 112, 111, 119, 114, 105, 110, 111, 109, 102, 107, 110, 110, 114, 112, 106, 114, 109, 110, 110, 110, 108, 105, 111, 105, 113, 102, 111, 110, 112, 105, 111, 113, 107, 110, 109, 108, 113, 113, 107, 111, 111, 113, 106, 110, 108, 111, 110, 111, 111, 113, 112, 107, 100, 106, 105, 108, 106, 112, 104, 109, 111, 119, 109, 112, 112, 108, 108, 110, 106, 110, 109, 115, 106, 110, 111, 113, 113, 104, 112, 109, 111, 101, 111, 108, 113, 112, 118, 105, 121, 103, 106, 112, 111, 113, 112, 111, 111, 107, 114, 114, 110, 108, 110, 110, 107, 109, 109, 106, 114, 113, 110, 112, 109, 106, 107, 107, 105, 110, 107, 111, 111, 113, 104, 114, 106, 112, 112, 108, 112, 110, 107, 108, 110, 105, 110, 108, 112, 114, 110, 115, 115, 107, 107, 110, 106, 113, 103, 110, 111, 109, 112, 107, 108, 105, 109, 117, 107, 109, 116, 107, 109, 114, 104, 102, 123, 110, 110, 109, 116, 107, 109, 106, 110, 117, 113, 106, 111, 112, 105, 117, 113, 109, 109, 103, 108, 107, 106, 111, 110, 112, 108, 111, 108, 113, 104, 117, 105, 110, 108, 116, 122, 112, 109, 113, 110, 101, 110, 109, 118, 109, 104, 112, 105, 112, 110, 108, 110, 120, 112, 111, 110, 105, 103, 112, 117, 112, 115, 110, 103, 115, 107, 110, 107, 107, 111, 115, 112, 110, 113, 111, 111, 103, 116, 105, 104, 118, 109, 108, 111, 108, 113, 110, 111, 108, 113, 106, 125, 105, 120, 103, 109, 111, 106, 113, 109, 113, 107, 111, 114, 117, 110, 110, 101, 108, 110, 112, 108, 109, 106, 109, 105, 109, 108, 112, 112, 112, 105, 114, 99, 108, 114, 111, 108, 109, 109, 111, 109, 112, 108, 104, 109, 120, 112, 112, 117, 107, 113, 105, 107, 110, 113, 110, 112, 109, 117, 113, 107, 110, 104, 108, 98, 107, 102, 111, 111, 111, 113, 109, 101, 110, 109, 112, 109, 110, 113, 107, 111, 105, 106, 103, 108, 113, 109, 106, 108, 111, 109, 113, 121, 108, 106, 118, 111, 113, 112, 107, 104, 113, 106, 113, 110, 110, 112, 113, 113, 108, 108, 109, 115, 111, 108, 102, 108, 106, 102, 118, 99, 107, 111, 113, 104, 102, 110, 108, 114, 119, 113, 104, 108, 107, 108, 106, 106, 112, 103, 107, 110, 108, 112, 106, 109, 111, 109, 109, 109, 118, 118, 111, 114, 110, 107, 112, 110, 112, 110, 110, 110, 107, 113, 113, 113, 109, 111, 109, 110, 116, 118, 110, 111, 117, 113, 110, 116, 107, 111, 107, 110, 113, 109, 106, 112, 105, 108, 110, 111, 114, 109, 117, 107, 109, 113, 115, 110, 108, 109, 111, 107, 109, 115, 110, 107, 112, 103, 111, 100, 107, 121, 112, 116, 111, 109, 106, 109, 104, 109, 108, 112, 107, 111, 113, 106, 112, 115, 112, 110, 106, 110, 108, 109, 115, 114, 116, 116, 115, 110, 108, 114, 121, 109, 116, 109, 117, 109, 108, 115, 111, 110, 108, 121, 108, 111, 108, 107, 112, 110, 111, 111, 108, 112, 103, 109, 109, 108, 110, 105, 108, 110, 112, 113, 113, 110, 109, 109, 112, 109, 111, 115, 111, 111, 114, 110, 110, 119, 109, 106, 107, 106, 111, 110, 111, 112, 106, 105, 108, 112, 113, 114, 104, 111, 114, 109, 115, 111, 112, 114, 111, 114, 110, 105, 105, 118, 114, 114, 121, 111, 108, 109, 108, 111, 113, 106, 113, 109, 112, 109, 109, 113, 104, 109, 112, 107, 112, 114, 102, 115, 104, 106, 105, 109, 112, 108, 109, 113, 107, 106, 110, 116, 116, 106, 111, 118, 106, 114, 116, 113, 112, 107, 113, 107, 108, 109, 110, 109, 109, 110, 106, 117, 99, 119, 114, 115, 108, 111, 109, 112, 110, 108, 110, 108, 112, 114, 111, 112, 109, 114, 108, 107, 107, 110, 107, 104, 117, 113, 104, 115, 115, 114, 114, 106, 105, 117, 105, 110, 113, 106, 113, 113, 111, 106, 114, 116, 107, 112, 109, 112, 110, 113, 106, 109, 109, 108, 110, 112, 109, 114, 109, 110, 104, 111, 111, 109, 110, 110, 112, 111, 108, 115, 110, 115, 108, 113, 117, 108, 117, 109, 111, 108, 108, 109, 117, 117, 113, 107, 114, 108, 117, 110, 110, 115, 115, 113, 110, 111, 111, 111, 111, 106, 108, 110, 110, 112, 117, 108, 106, 117, 113, 113, 111, 108, 118, 115, 107, 111, 112, 107, 106, 100, 112, 116, 106, 111, 113, 112, 104, 110, 108, 112, 113, 110, 108, 114, 113, 106, 113, 113, 104, 107, 110, 108, 108, 109, 111, 102, 110, 110, 111, 109, 111, 111, 107, 101, 110, 107, 113, 110, 111, 108, 110, 113, 112, 111, 104, 112, 113, 105, 108, 111, 113, 113, 110, 109, 108, 107, 110, 111, 114, 110, 108, 112, 112, 106, 108, 107, 110, 109, 109, 110, 111, 110, 112, 111, 113, 104, 108, 109, 113, 114, 110, 111, 105, 112, 110, 108, 113, 109, 106, 108, 109, 115, 107, 105, 112, 110, 112, 113, 109, 108, 104, 111, 108, 110, 107, 110, 111, 109, 112, 113, 112, 107, 120, 111, 109, 107, 105, 109, 107, 111, 113, 110, 113, 115, 111, 109, 106, 115, 114, 113, 111, 107, 114, 106, 107, 106, 117, 104, 115, 117, 110, 113, 115, 109, 107, 118, 111, 117, 112, 110, 114, 110, 106, 112, 109, 109, 108, 107, 106, 111, 104, 110, 109, 109, 110, 111, 109, 110, 113, 105, 108, 107, 115, 107, 101, 100, 108, 122, 112, 97, 123, 106, 104, 103, 104, 125, 93, 120, 113, 99, 100, 121, 118, 110, 111, 116, 125, 95, 103, 105, 106, 124, 108, 114, 104, 103, 105, 110, 108, 108, 129, 115, 107, 112, 105, 105, 109, 116, 115, 123, 109, 104, 103, 126, 116, 120, 110, 97, 94, 120, 103, 117, 118, 116, 108, 115, 112, 110, 127, 104, 124, 127, 99, 115, 107, 108, 106, 105, 103, 107, 110, 104, 123, 119, 94, 102, 112, 104, 108, 100, 108, 109, 104, 120, 109, 111, 103, 111, 117, 105, 108, 117, 113, 99, 123, 106, 104, 99, 131, 112, 114, 108, 100, 123, 88, 107, 108, 121, 119, 111, 121, 109, 103, 101, 101, 117, 109, 98, 93, 99, 107, 117, 104, 98, 103, 105, 106, 111, 100, 93, 111, 96, 105, 120, 112, 112, 97, 107, 99, 111, 114, 115, 116, 105, 120, 108, 94, 120, 114, 113, 100, 100, 105, 114, 99, 109, 121, 102, 108, 114, 114, 118, 109, 109, 128, 121, 107, 118, 111, 110, 107, 122, 96, 113, 105, 115, 112, 122, 128, 128, 100, 98, 110, 104, 109, 97, 121, 99, 106, 114, 110, 100, 98, 120, 119, 99, 97, 123, 107, 110, 107, 108, 129, 123, 118, 116, 115, 103, 84, 106, 106, 94, 103, 135, 110, 128, 102, 126, 99, 112, 110, 105, 109, 110, 102, 119, 120, 107, 105, 105, 117, 108, 108, 107, 107, 108, 123, 98, 109, 112, 113, 106, 98, 123, 111, 112, 95, 115, 98, 121, 107, 110, 117, 114, 92, 105, 93, 107, 116, 111, 109, 116, 101, 116, 107, 84, 112, 97, 96, 108, 109, 114, 105, 96, 114, 104, 103, 110, 104, 124, 112, 117, 96, 96, 122, 106, 108, 109, 119, 100, 118, 103, 102, 110, 111, 99, 110, 113, 104, 108, 93, 107, 111, 121, 109, 115, 110, 106, 114, 124, 113, 103, 105, 127, 96, 112, 98, 110, 121, 125, 114, 122, 100, 114, 115, 107, 116, 106, 100, 106, 113, 103, 96, 111, 99, 107, 108, 111, 99, 110, 98, 105, 111, 97, 106, 118, 114, 111, 109, 115, 104, 105, 123, 103, 99, 90, 100, 123, 123, 114, 94, 117, 109, 95, 106, 115, 106, 110, 95, 114, 102, 105, 119, 107, 99, 125, 102, 108, 117, 103, 103, 104, 110, 109, 112, 127, 104, 106, 119, 119, 108, 111, 90, 103, 106, 105, 117, 108, 109, 115, 115, 95, 114, 113, 117, 107, 121, 103, 114, 104, 107, 115, 110, 109, 113, 101, 110, 98, 118, 96, 108, 111, 100, 121, 106, 105, 113, 105, 103, 105, 119, 115, 107, 108, 101, 114, 106, 101, 121, 118, 116, 123, 112, 99, 106, 100, 99, 116, 107, 106, 103, 115, 111, 101, 106, 88, 116, 106, 103, 106, 102, 108, 116, 110, 93, 105, 98, 102, 126, 101, 95, 122, 81, 108, 96, 109, 101, 107, 107, 110, 134, 114, 129, 101, 113, 106, 106, 102, 106, 105, 102, 109, 112, 119, 108, 106, 99, 104, 120, 104, 104, 110, 125, 113, 105, 104, 103, 110, 101, 113, 111, 110, 106, 105, 106, 118, 117, 117, 131, 110, 126, 110, 110, 101, 137, 104, 108, 108, 106, 113, 117, 112, 100, 112, 113, 103, 109, 105, 107, 114, 109, 103, 110, 115, 125, 120, 101, 109, 113, 102, 94, 114, 103, 95, 110, 104, 107, 117, 112, 103, 104, 106, 109, 113, 104, 105, 110, 104, 91, 101, 99, 114, 106, 112, 119, 109, 122, 103, 116, 107, 108, 108, 118, 110, 115, 98, 117, 117, 110, 117, 98, 109, 125, 91, 101, 98, 113, 101, 123, 105, 99, 119, 104, 115, 104, 113, 104, 115, 111, 104, 103, 104, 115, 112, 108, 107, 111, 118, 103, 109, 110, 100, 114, 113, 109, 110, 108, 109, 109, 110, 114, 109, 118, 109, 118, 101, 106, 117, 112, 92, 127, 112, 107, 116, 114, 118, 104, 121, 102, 109, 110, 110, 110, 102, 104, 109, 118, 103, 115, 117, 116, 110, 115, 109, 111, 107, 112, 102, 97, 110, 103, 116, 106, 109, 112, 112, 118, 99, 122, 108, 116, 115, 116, 103, 102, 110, 102, 114, 123, 104, 94, 110, 112, 104, 117, 113, 118, 120, 107, 115, 115, 68, 101, 111, 111, 110, 117, 104, 116, 115, 102, 109, 109, 108, 116, 113, 115, 118, 113, 111, 104, 86, 91, 108, 102, 106, 113, 109, 108, 102, 106, 103, 111, 105, 104, 114, 130, 107, 112, 103, 106, 111, 112, 112, 112, 102, 108, 109, 113, 111, 123, 108, 108, 112, 105, 109, 111, 105, 112, 106, 98, 113, 111, 109, 107, 108, 96, 109, 102, 113, 112, 113, 153, 113, 114, 103, 95, 107, 117, 114, 97, 113, 102, 98, 116, 114, 110, 106, 102, 118, 116, 94, 108, 123, 112, 103, 105, 113, 118, 110, 110, 104, 113, 96, 110, 104, 104, 102, 116, 110, 103, 112, 116, 107, 108, 103, 110, 112, 108, 98, 115, 114, 107, 112, 116, 114, 103, 94, 111, 111, 101, 151, 111, 112, 114, 109, 107, 113, 131, 110, 73, 115, 86, 105, 106, 102, 100, 110, 109, 103, 117, 102, 112, 120, 103, 117, 108, 111, 95, 116, 101, 106, 101, 78, 106, 104, 110, 99, 122, 115, 97, 106, 155, 115, 103, 110, 108, 123, 109, 98, 108, 116, 122, 109, 110, 105, 122, 113, 117, 109, 107, 97, 104, 104, 110, 110, 111, 107, 109, 109, 109, 107, 110, 122, 107, 109, 100, 110, 112, 119, 105, 103, 105, 103, 119, 107, 112, 115, 104, 109, 113, 113, 116, 108, 97, 111, 114, 115, 119, 114, 107, 108, 108, 111, 112, 114, 113, 107, 110, 108, 108, 112, 107, 110, 108, 107, 108, 107, 118, 105, 111, 111, 108, 111, 105, 106, 114, 124, 108, 107, 121, 107, 119, 99, 111, 113, 116, 108, 115, 113, 112, 119, 106, 116, 116, 113, 119, 111, 110, 103, 114, 95, 108, 114, 112, 112, 104, 106, 108, 116, 110, 103, 110, 102, 100, 114, 116, 101, 110, 99, 110, 96, 113, 110, 105, 105, 110, 105, 115, 112, 109, 98, 115, 110, 112, 114, 106, 107, 98, 109, 125, 117, 114, 109, 109, 113, 105, 101, 112, 120, 114, 110, 104, 88, 112, 109, 104, 106, 112, 127, 111, 93, 123, 113, 112, 130, 112, 113, 122, 105, 107, 114, 118, 95, 113, 114, 108, 105, 115, 98, 119, 97, 97, 120, 126, 108, 116, 109, 112, 108, 103, 104, 103, 85, 108, 111, 118, 105, 113, 104, 107, 106, 108, 111, 105, 113, 117, 111, 108, 107, 87, 103, 110, 86, 112, 115, 104, 110, 111, 112, 111, 111, 106, 116, 113, 115, 112, 110, 111, 109, 103, 95, 106, 115, 109, 107, 113, 112, 96, 101, 104, 107, 99, 112, 105, 114, 151, 118, 110, 111, 120, 118, 100, 114, 105, 108, 113, 103, 113, 107, 120, 99, 116, 111, 118, 111, 117, 118, 98, 105, 115, 107, 109, 125, 117, 135, 114, 122, 120, 121, 115, 110, 106, 83, 102, 109, 115, 106, 117, 117, 118, 101, 101, 101, 118, 114, 112, 107, 107, 112, 118, 119, 120, 102, 116, 104, 113, 111, 105, 113, 102, 109, 106, 112, 109, 104, 112, 112, 117, 111, 118, 107, 97, 110, 102, 114, 108, 119, 113, 106, 93, 110, 111, 102, 97, 110, 109, 130, 108, 104, 104, 119, 114, 116, 108, 118, 81, 103, 116, 116, 112, 117, 101, 107, 96, 106, 119, 118, 117, 122, 119, 104, 98, 114, 108, 109, 113, 114, 103, 111, 116, 117, 106, 105, 111, 109, 117, 104, 124, 99, 107, 92, 114, 103, 107, 89, 101, 109, 110, 114, 119, 107, 107, 112, 119, 104, 114, 103, 116, 110, 109, 124, 114, 110, 110, 116, 120, 110, 111, 113, 103, 112, 111, 125, 99, 99, 110, 106, 111, 114, 116, 113, 120, 110, 112, 107, 105, 106, 117, 115, 107, 115, 113, 98, 110, 115, 112, 119, 103, 108, 112, 118, 115, 111, 112, 107, 101, 104, 98, 129, 114, 104, 111, 113, 108, 122, 121, 119, 82, 113, 121, 105, 107, 114, 111, 117, 73, 104, 105, 107, 111, 111, 115, 110, 112, 105, 104, 127, 120, 95, 112, 115, 110, 93, 108, 116, 118, 123, 107, 117, 137, 98, 112, 115, 90, 94, 117, 116, 86, 111, 102, 120, 101, 98, 105, 116, 144, 111, 109, 102, 100, 115, 106, 102, 105, 112, 105, 121, 117, 127, 116, 116, 109, 115, 106, 110, 95, 116, 111, 110, 108, 107, 121, 103, 109, 129, 95, 113, 107, 101, 114, 115, 115, 115, 112, 105, 118, 107, 121, 112, 115, 115, 116, 99, 107, 116, 123, 112, 114, 106, 109, 114, 112, 111, 107, 112, 125, 111, 103, 122, 119, 112, 109, 109, 104, 111, 101, 115, 104, 79, 114, 113, 106, 110, 98, 112, 115, 118, 110, 106, 109, 120, 96, 106, 110, 99, 104, 111, 137, 114, 101, 105, 102, 106, 103, 110, 108, 111, 96, 97, 111, 111, 132, 101, 115, 92, 89, 96, 111, 124, 88, 114, 108, 106, 100, 114, 103, 107, 110, 112, 105, 113, 99, 117, 111, 112, 109, 111, 109, 106, 110, 105, 102, 95, 100, 106, 111, 115, 118, 110, 94, 113, 118, 99, 106, 100, 117, 108, 100, 98, 104, 116, 115, 109, 116, 103, 104, 112, 111, 109, 109, 118, 116, 112, 111, 113, 102, 115, 109, 102, 108, 109, 117, 102, 113, 113, 103, 109, 113, 119, 113, 103, 113, 114, 99, 108, 114, 112, 105, 95, 104, 96, 105, 106, 110, 103, 115, 111, 111, 113, 104, 138, 115, 107, 95, 111, 112, 105, 116, 113, 116, 110, 104, 111, 123, 110, 102, 114, 114, 111, 110, 88, 109, 114, 116, 117, 107, 110, 108, 108, 103, 131, 106, 102, 120, 99, 116, 110, 112, 106, 112, 109, 110, 113, 97, 111, 99, 106, 110, 118, 103, 103, 101, 109, 99, 118, 112, 114, 117, 105, 107, 104, 113, 112, 109, 113, 116, 112, 115, 100, 107, 102, 116, 107, 124, 111, 130, 128, 110, 112, 115, 115, 105, 114, 108, 102, 123, 98, 117, 104, 105, 111, 108, 115, 115, 116, 111, 99, 109, 106, 120, 114, 106, 103, 110, 115, 108, 109, 112, 107, 114, 105, 103, 103, 111, 106, 116, 114, 99, 120, 120, 101, 106, 115, 107, 105, 109, 114, 96, 116, 114, 104, 115, 97, 112, 104, 97, 99, 126, 113, 113, 107, 107, 111, 142, 120, 118, 116, 130, 102, 139, 107, 114, 109, 102, 106, 109, 101, 110, 109, 108, 98, 114, 104, 112, 104, 106, 125, 115, 100, 118, 111, 111, 110, 113, 113, 116, 122, 102, 115, 104, 101, 103, 111, 124, 98, 105, 120, 114, 116, 101, 112, 119, 114, 103, 103, 114, 113, 107, 128, 120, 110, 97, 120, 98, 101, 106, 114, 99, 113, 114, 117, 108, 109, 116, 116, 104, 110, 126, 95, 118, 107, 113, 111, 95, 104, 106, 108, 105, 109, 100, 112, 99, 98, 109, 119, 99, 118, 107, 112, 109, 104, 104, 111, 110, 120, 111, 109, 112, 116, 96, 108, 106, 116, 100, 118, 101, 111, 118, 103, 111, 110, 115, 114, 102, 102, 119, 109, 112, 106, 115, 107, 117, 107, 113, 121, 113, 114, 107, 108, 105, 112, 105, 109, 112, 101, 101, 113, 109, 112, 111, 110, 123, 109, 109, 109, 104, 102, 112, 110, 112, 114, 109, 113, 116, 115, 112, 115, 108, 109, 105, 104, 113, 105, 106, 109, 116, 109, 102, 117, 118, 119, 108, 105, 109, 126, 118, 116, 116, 112, 120, 113, 104, 121, 116, 112, 103, 109, 107, 108, 109, 107, 109, 110, 109, 125, 104, 109, 106, 113, 105, 110, 111, 110, 102, 110, 101, 112, 103, 114, 119, 95, 108, 105, 107, 105, 106, 109, 112, 106, 99, 130, 111, 100, 113, 113, 102, 102, 92, 112, 110, 115, 113, 113, 107, 114, 103, 116, 103, 108, 111, 107, 124, 108, 104, 120, 94, 110, 117, 106, 117, 103, 100, 100, 120, 112, 110, 110, 112, 116, 112, 106, 110, 119, 116, 111, 103, 101, 108, 104, 115, 105, 106, 107, 102, 112, 102, 114, 112, 100, 109, 118, 101, 93, 109, 117, 106, 106, 106, 116, 111, 111, 113, 112, 116, 111, 108, 105, 107, 101, 109, 105, 106, 108, 109, 109, 103, 112, 121, 107, 111, 106, 117, 87, 97, 117, 80, 109, 122, 108, 97, 107, 92, 98, 102, 104, 99, 114, 110, 102, 113, 118, 114, 109, 108, 114, 105, 106, 106, 113, 96, 87, 106, 111, 91, 101, 103, 115, 115, 104, 108, 102, 115, 112, 116, 90, 108, 113, 112, 102, 107, 102, 109, 113, 76, 106, 117, 114, 103, 111, 116, 113, 107, 110, 112, 103, 109, 110, 112, 94, 114, 100, 110, 120, 107, 117, 107, 109, 112, 99, 116, 100, 97, 114, 107, 110, 108, 108, 111, 114, 81, 106, 85, 111, 112, 107, 100, 116, 105, 112, 102, 113, 116, 114, 106, 107, 120, 103, 115, 120, 105, 107, 112, 110, 97, 116, 116, 118, 81, 112, 114, 111, 92, 106, 118, 117, 112, 111, 107, 118, 109, 118, 92, 90, 115, 109, 89, 108, 114, 112, 112, 115, 99, 85, 109, 108, 108, 115, 107, 111, 112, 108, 99, 111, 110, 112, 105, 122, 114, 105, 117, 110, 118, 115, 117, 104, 108, 111, 113, 113, 94, 106, 111, 111, 112, 115, 98, 111, 108, 97, 120, 113, 106, 111, 111, 117, 101, 104, 114, 111, 120, 107, 112, 109, 115, 112, 109, 105, 115, 86, 129, 107, 102, 111, 87, 101, 114, 104, 95, 105, 102, 109, 106, 114, 115, 97, 117, 94, 115, 113, 91, 108, 90, 106, 110, 118, 105, 100, 111, 109, 116, 112, 109, 112, 111, 114, 109, 109, 108, 71, 115, 111, 109, 107, 107, 110, 98, 113, 112, 117, 113, 124, 113, 111, 104, 114, 114, 114, 111, 103, 110, 111, 99, 105, 108, 111, 96, 109, 95, 82, 116, 111, 113, 110, 110, 115, 116, 112, 103, 109, 109, 112, 110, 109, 111, 117, 102, 113, 111, 110, 111, 108, 111, 99, 118, 97, 117, 111, 104, 107, 108, 114, 109, 115, 107, 111, 113, 83, 116, 121, 80, 112, 110, 109, 97, 115, 102, 111, 105, 102, 109, 112, 113, 100, 69, 117, 110, 119, 107, 105, 115, 97, 106, 109, 103, 104, 114, 99, 109, 108, 111, 112, 109, 108, 74, 108, 114, 93, 109, 106, 107, 115, 91, 98, 103, 113, 93, 80, 103, 98, 101, 108, 102, 123, 112, 119, 108, 93, 91, 108, 115, 113, 118, 115, 111, 117, 111, 114, 111, 110, 107, 118, 106, 107, 97, 110, 102, 115, 103, 110, 113, 111, 119, 109, 115, 106, 131, 117, 104, 109, 111, 110, 119, 121, 103, 114, 120, 107, 113, 116, 120, 108, 126, 116, 96, 115, 116, 115, 119, 113, 109, 111, 113, 116, 116, 110, 116, 115, 102, 120, 118, 113, 102, 109, 120, 117, 118, 114, 101, 107, 80, 114, 115, 104, 101, 100, 115, 113, 110, 111, 107, 111, 117, 108, 111, 116, 117, 112, 109, 107, 111, 93, 113, 122, 110, 88, 98, 89, 110, 103, 112, 100, 100, 115, 117, 102, 113, 111, 116, 104, 116, 118, 106, 115, 114, 107, 115, 74, 116, 102, 109, 100, 110, 116, 110, 105, 110, 83, 97, 108, 115, 115, 102, 102, 110, 105, 125, 99, 110, 113, 108, 105, 107, 100, 110, 107, 126, 110, 122, 115, 107, 108, 108, 108, 106, 114, 109, 106, 110, 110, 109, 104, 113, 117, 119, 114, 109, 109, 120, 113, 104, 113, 111, 105, 108, 108, 121, 106, 117, 112, 103, 103, 115, 106, 103, 111, 110, 113, 114, 102, 111, 105, 121, 112, 104, 112, 105, 105, 113, 109, 114, 106, 113, 108, 123, 113, 118, 103, 111, 119, 116, 111, 109, 112, 114, 107, 126, 120, 110, 92, 110, 106, 110, 111, 116, 108, 113, 106, 105, 115, 116, 100, 106, 105, 106, 110, 111, 108, 110, 114, 114, 107, 104, 112, 111, 117, 110, 108, 124, 90, 108, 122, 111, 115, 108, 107, 107, 108, 106, 114, 108, 102, 115, 107, 104, 105, 115, 107, 109, 95, 99, 130, 110, 108, 97, 102, 108, 117, 116, 102, 110, 109, 107, 107, 106, 120, 115, 111, 106, 116, 117, 105, 118, 110, 116, 114, 106, 115, 107, 110, 124, 59, 101, 105, 99, 109, 118, 108, 108, 108, 110, 129, 111, 116, 102, 109, 104, 114, 114, 109, 109, 109, 110, 112, 110, 111, 106, 106, 109, 110, 102, 115, 97, 98, 108, 109, 109, 108, 102, 108, 108, 111, 103, 107, 110, 109, 107, 106, 104, 106, 112, 105, 108, 113, 101, 116, 110, 106, 103, 106, 113, 109, 118, 108, 109, 111, 122, 111, 118, 114, 105, 108, 118, 116, 113, 107, 112, 114, 109, 110, 110, 111, 104, 105, 106, 115, 116, 105, 108, 117, 121, 109, 111, 105, 105, 104, 120, 114, 118, 109, 114, 105, 108, 99, 98, 112, 132, 114, 117, 117, 106, 114, 107, 117, 111, 113, 110, 105, 112, 106, 114, 99, 110, 107, 107, 112, 110, 116, 107, 108, 114, 107, 120, 118, 117, 108, 122, 105, 106, 106, 105, 117, 116, 110, 106, 113, 110, 104, 109, 121, 109, 99, 110, 113, 97, 109, 109, 113, 99, 108, 106, 110, 106, 92, 112, 113, 112, 107, 113, 108, 117, 109, 104, 106, 130, 111, 112, 106, 111, 109, 114, 106, 82, 104, 107, 111, 112, 106, 110, 113, 103, 107, 110, 97, 105, 99, 117, 110, 101, 113, 118, 105, 106, 115, 108, 101, 109, 115, 108, 115, 121, 113, 109, 107, 112, 114, 98, 110, 97, 109, 106, 106, 117, 107, 105, 119, 115, 111, 117, 112, 103, 112, 116, 113, 115, 106, 105, 103, 109, 112, 119, 112, 103, 114, 110, 118, 107, 117, 111, 104, 107, 89, 103, 105, 103, 101, 108, 108, 114, 104, 108, 105, 105, 109, 108, 112, 114, 115, 116, 105, 104, 116, 131, 74, 103, 106, 116, 113, 111, 110, 113, 107, 111, 116, 107, 107, 106, 111, 114, 112, 113, 112, 114, 111, 121, 109, 115, 132, 112, 116, 118, 107, 158, 106, 105, 105, 104, 105, 106, 110, 113, 109, 115, 107, 104, 112, 111, 101, 113, 107, 109, 97, 105, 116, 92, 107, 112, 113, 108, 111, 110, 115, 113, 104, 109, 97, 100, 112, 112, 104, 99, 110, 109, 111, 113, 107, 109, 112, 107, 112, 108, 115, 103, 116, 120, 109, 123, 111, 114, 100, 110, 104, 110, 113, 110, 108, 110, 115, 108, 125, 107, 109, 110, 107, 99, 106, 104, 112, 114, 113, 103, 110, 109, 109, 108, 106, 111, 114, 106, 98, 115, 121, 112, 106, 120, 94, 115, 104, 109, 107, 117, 112, 122, 113, 110, 96, 106, 110, 108, 109, 114, 108, 111, 116, 114, 110, 103, 113, 118, 110, 120, 116, 101, 109, 116, 107, 111, 124, 111, 111, 110, 110, 112, 101, 100, 109, 106, 111, 106, 123, 114, 115, 117, 114, 121, 117, 99, 118, 103, 110, 112, 111, 102, 106, 112, 113, 107, 111, 114, 98, 113, 106, 122, 118, 117, 113, 99, 108, 103, 107, 105, 121, 107, 112, 105, 103, 111, 79, 111, 114, 109, 106, 115, 112, 111, 109, 105, 106, 111, 103, 115, 111, 102, 106, 115, 93, 98, 117, 112, 108, 113, 114, 107, 124, 105, 109, 107, 111, 106, 117, 117, 108, 113, 118, 115, 108, 110, 105, 113, 100, 105, 109, 103, 108, 127, 112, 122, 110, 110, 106, 117, 103, 114, 106, 113, 107, 107, 108, 114, 121, 118, 112, 112, 113, 107, 108, 111, 117, 110, 118, 105, 98, 115, 113, 117, 112, 107, 115, 106, 105, 108, 106, 110, 127, 107, 98, 113, 106, 109, 98, 112, 99, 108, 103, 116, 97, 104, 113, 97, 114, 110, 115, 104, 105, 117, 110, 110, 106, 92, 107, 115, 99, 110, 108, 105, 123, 120, 107, 113, 112, 117, 114, 118, 108, 114, 112, 111, 106, 103, 116, 110, 109, 108, 111, 106, 114, 107, 111, 114, 114, 110, 116, 109, 111, 110, 120, 110, 96, 110, 98, 111, 114, 102, 119, 109, 114, 111, 113, 117, 116, 121, 105, 104, 114, 113, 110, 119, 117, 104, 104, 114, 100, 110, 106, 111, 103, 110, 102, 103, 112, 114, 105, 103, 121, 114, 105, 108, 114, 106, 117, 111, 112, 102, 115, 114, 112, 109, 110, 110, 111, 108, 105, 112, 105, 112, 113, 115, 105, 100, 106, 117, 113, 113, 111, 107, 115, 112, 111, 102, 104, 115, 103, 109, 117, 99, 111, 116, 107, 111, 109, 110, 112, 107, 114, 110, 111, 110, 99, 102, 119, 100, 137, 112, 111, 106, 114, 102, 122, 107, 114, 109, 103, 109, 121, 109, 112, 108, 120, 113, 111, 108, 110, 110, 110, 103, 114, 111, 117, 112, 109, 117, 110, 107, 110, 106, 114, 113, 112, 104, 110, 118, 100, 112, 105, 115, 128, 106, 127, 111, 114, 105, 114, 103, 109, 112, 110, 101, 106, 111, 105, 117, 117, 107, 106, 116, 108, 107, 109, 110, 114, 112, 106, 99, 98, 104, 110, 116, 111, 111, 116, 116, 109, 113, 118, 122, 119, 116, 108, 109, 116, 111, 114, 110, 114, 108, 102, 106, 116, 109, 106, 114, 110, 108, 119, 97, 106, 112, 107, 109, 104, 112, 109, 106, 104, 112, 104, 112, 110, 119, 111, 104, 112, 105, 102, 109, 116, 114, 121, 113, 110, 105, 106, 114, 109, 111, 97, 102, 113, 112, 112, 115, 111, 112, 111, 95, 112, 106, 111, 107, 113, 118, 119, 108, 127, 105, 108, 103, 112, 112, 110, 109, 102, 118, 111, 114, 112, 110, 117, 109, 103, 116, 110, 115, 99, 112, 122, 104, 101, 100, 112, 110, 108, 104, 96, 113, 106, 111, 101, 104, 106, 114, 109, 107, 130, 109, 117, 107, 104, 112, 115, 109, 114, 117, 111, 104, 114, 103, 109, 102, 107, 98, 111, 114, 110, 110, 104, 108, 113, 110, 101, 110, 109, 106, 109, 118, 110, 110, 119, 111, 106, 101, 106, 104, 116, 108, 107, 110, 121, 100, 109, 98, 113, 109, 115, 110, 106, 108, 104, 109, 118, 107, 102, 108, 109, 125, 106, 110, 111, 103, 118, 115, 108, 118, 105, 111, 117, 105, 110, 119, 105, 112, 106, 117, 110, 110, 103, 110, 109, 99, 111, 121, 113, 111, 125, 112, 111, 109, 108, 114, 110, 115, 113, 116, 111, 109, 111, 110, 111, 113, 89, 108, 110, 107, 107, 107, 110, 111, 111, 113, 108, 115, 113, 110, 121, 108, 115, 106, 110, 107, 112, 103, 106, 112, 104, 110, 107, 113, 101, 107, 118, 112, 107, 108, 111, 116, 112, 111, 103, 104, 107, 102, 110, 111, 108, 113, 111, 113, 121, 108, 108, 111, 111, 99, 112, 106, 106, 106, 120, 109, 107, 106, 109, 120, 123, 115, 115, 112, 111, 114, 109, 99, 103, 116, 119, 114, 110, 113, 109, 113, 111, 98, 115, 119, 109, 111, 111, 114, 100, 117, 111, 106, 112, 103, 111, 104, 108, 107, 115, 115, 106, 105, 116, 110, 123, 103, 82, 112, 119, 109, 87, 103, 108, 113, 118, 104, 105, 116, 111, 110, 106, 115, 106, 119, 112, 108, 105, 104, 124, 119, 114, 105, 106, 118, 111, 109, 102, 107, 111, 123, 103, 104, 112, 111, 118, 93, 109, 104, 100, 97, 97, 110, 111, 111, 116, 118, 111, 113, 118, 103, 109, 104, 116, 114, 102, 118, 117, 120, 108, 104, 105, 105, 112, 113, 118, 106, 105, 111, 107, 104, 101, 100, 104, 112, 120, 134, 120, 116, 117, 109, 116, 113, 88, 112, 90, 124, 112, 109, 115, 109, 101, 117, 99, 113, 114, 107, 102, 124, 112, 107, 106, 106, 107, 114, 113, 115, 109, 110, 97, 110, 113, 107, 113, 114, 106, 110, 112, 99, 109, 112, 98, 111, 122, 110, 112, 105, 105, 118, 116, 106, 117, 101, 114, 105, 111, 109, 110, 121, 107, 115, 107, 105, 108, 112, 108, 108, 106, 124, 112, 108, 117, 108, 121, 99, 113, 114, 108, 107, 108, 114, 108, 107, 112, 111, 109, 117, 107, 146, 122, 111, 118, 105, 111, 100, 115, 115, 112, 112, 106, 107, 113, 110, 112, 94, 86, 123, 93, 116, 131, 117, 110, 86, 107, 114, 107, 121, 127, 107, 114, 106, 149, 116, 117, 117, 107, 119, 106, 110, 88, 107, 104, 115, 111, 112, 113, 127, 111, 120, 117, 112, 112, 116, 113, 122, 118, 109, 112, 110, 109, 109, 117, 105, 105, 116, 105, 104, 116, 109, 108, 110, 115, 101, 115, 96, 113, 124, 113, 112, 101, 103, 106, 107, 115, 102, 111, 111, 108, 113, 115, 108, 112, 108, 115, 103, 116, 113, 106, 105, 108, 101, 113, 113, 115, 107, 112, 106, 106, 128, 118, 115, 118, 107, 105, 115, 116, 96, 98, 100, 108, 103, 121, 107, 108, 124, 105, 114, 112, 79, 122, 124, 134, 97, 101, 100, 107, 124, 109, 114, 106, 121, 107, 112, 116, 105, 105, 105, 109, 106, 110, 105, 98, 104, 110, 117, 110, 105, 111, 116, 110, 99, 94, 115, 106, 112, 107, 119, 108, 123, 115, 109, 114, 104, 107, 132, 117, 114, 105, 107, 114, 102, 114, 102, 117, 110, 116, 122, 108, 118, 113, 96, 115, 106, 112, 114, 115, 112, 111, 106, 105, 100, 101, 110, 110, 111, 118, 98, 107, 100, 108, 109, 112, 117, 118, 126, 107, 108, 107, 113, 115, 111, 105, 112, 113, 104, 107, 107, 116, 110, 108, 100, 102, 93, 111, 87, 118, 118, 125, 110, 101, 114, 113, 107, 101, 97, 91, 106, 111, 110, 117, 101, 113, 110, 110, 117, 99, 103, 107, 104, 113, 102, 98, 100, 107, 115, 117, 101, 92, 110, 106, 109, 102, 111, 111, 99, 118, 96, 112, 108, 111, 107, 102, 101, 106, 115, 105, 115, 129, 105, 106, 116, 131, 106, 96, 109, 104, 96, 118, 109, 96, 110, 100, 111, 112, 95, 110, 122, 107, 111, 89, 111, 108, 97, 113, 109, 108, 112, 105, 116, 104, 126, 111, 107, 110, 107, 117, 101, 115, 114, 123, 108, 130, 110, 90, 111, 110, 121, 110, 104, 113, 93, 108, 113, 112, 112, 110, 109, 102, 98, 111, 118, 128, 118, 111, 121, 108, 102, 124, 116, 111, 121, 121, 113, 132, 105, 114, 125, 109, 102, 142, 106, 121, 104, 114, 107, 114, 87, 119, 99, 104, 115, 106, 119, 122, 88, 119, 114, 111, 115, 101, 114, 101, 111, 130, 107, 121, 92, 110, 98, 98, 113, 98, 113, 115, 115, 110, 114, 136, 126, 101, 115, 114, 109, 107, 112, 109, 112, 129, 112, 109, 104, 112, 112, 103, 117, 107, 110, 101, 107, 105, 86, 112, 111, 106, 109, 120, 104, 113, 111, 109, 111, 108, 118, 113, 110, 109, 110, 90, 109, 117, 114, 107, 108, 105, 112, 118, 109, 100, 120, 99, 111, 114, 113, 118, 123, 95, 100, 114, 106, 105, 114, 108, 114, 108, 126, 107, 113, 97, 104, 106, 107, 120, 115, 115, 103, 101, 115, 96, 110, 109, 107, 110, 106, 116, 104, 111, 113, 117, 108, 97, 102, 114, 99, 98, 107, 123, 107, 122, 100, 105, 113, 108, 108, 108, 104, 112, 111, 112, 98, 104, 118, 114, 110, 106, 94, 115, 119, 115, 110, 119, 122, 114, 106, 114, 121, 103, 113, 99, 108, 111, 108, 107, 107, 115, 108, 114, 121, 113, 122, 112, 90, 113, 106, 112, 107, 115, 108, 121, 105, 116, 135, 109, 121, 116, 111, 130, 114, 106, 107, 95, 101, 117, 126, 114, 114, 114, 113, 105, 119, 107, 112, 110, 104, 113, 111, 118, 105, 113, 112, 112, 110, 110, 107, 108, 111, 112, 109, 108, 113, 114, 94, 119, 104, 125, 109, 112, 113, 114, 100, 98, 112, 103, 106, 115, 112, 111, 103, 118, 112, 112, 107, 110, 106, 110, 111, 106, 110, 110, 105, 114, 112, 110, 113, 107, 111, 110, 115, 111, 115, 117, 106, 98, 103, 111, 108, 111, 112, 114, 115, 71, 101, 107, 110, 107, 107, 91, 110, 128, 108, 112, 105, 106, 111, 119, 114, 109, 103, 118, 111, 108, 111, 107, 110, 107, 104, 109, 111, 104, 110, 113, 111, 103, 109, 114, 112, 110, 106, 123, 108, 106, 112, 112, 112, 118, 108, 117, 109, 116, 114, 110, 108, 113, 114, 110, 102, 111, 108, 122, 119, 114, 109, 110, 118, 111, 109, 115, 109, 110, 111, 114, 108, 106, 111, 115, 109, 111, 113, 110, 107, 116, 109, 110, 110, 107, 110, 112, 112, 92, 91, 108, 119, 112, 112, 110, 108, 108, 107, 111, 110, 116, 141, 121, 101, 120, 106, 110, 111, 105, 103, 111, 112, 114, 108, 109, 111, 116, 108, 107, 111, 112, 110, 111, 111, 110, 104, 106, 112, 108, 102, 111, 108, 121, 107, 110, 122, 106, 111, 112, 112, 109, 118, 110, 110, 114, 110, 103, 107, 104, 113, 108, 109, 104, 111, 114, 113, 109, 104, 106, 114, 109, 118, 109, 116, 113, 106, 114, 112, 102, 113, 113, 117, 111, 99, 105, 108, 110, 111, 112, 116, 106, 113, 111, 108, 111, 101, 101, 112, 105, 107, 107, 104, 105, 104, 112, 110, 109, 115, 99, 108, 111, 114, 110, 105, 119, 110, 110, 123, 109, 114, 102, 104, 108, 109, 110, 113, 108, 109, 108, 109, 108, 111, 93, 104, 105, 107, 110, 107, 107, 108, 108, 115, 102, 110, 108, 117, 112, 106, 117, 113, 111, 110, 100, 111, 109, 118, 106, 104, 114, 114, 118, 112, 119, 118, 106, 112, 109, 114, 123, 108, 113, 114, 111, 110, 106, 117, 104, 111, 115, 114, 106, 113, 112, 114, 110, 105, 116, 106, 104, 113, 108, 101, 109, 110, 104, 95, 116, 115, 112, 109, 108, 116, 106, 107, 110, 108, 117, 112, 113, 112, 115, 113, 110, 114, 153, 108, 107, 100, 120, 113, 113, 108, 117, 112, 115, 106, 98, 110, 106, 119, 104, 112, 105, 114, 99, 116, 111, 114, 110, 101, 96, 104, 114, 99, 116, 109, 121, 107, 112, 112, 111, 111, 112, 97, 112, 137, 110, 112, 113, 109, 108, 114, 104, 106, 109, 105, 107, 106, 103, 105, 118, 115, 105, 105, 110, 107, 112, 124, 113, 77, 117, 107, 109, 110, 114, 145, 103, 100, 113, 113, 105, 114, 115, 114, 107, 109, 111, 111, 109, 108, 110, 108, 114, 110, 104, 116, 120, 107, 115, 120, 109, 122, 113, 108, 111, 102, 112, 113, 108, 102, 109, 105, 105, 117, 102, 112, 105, 99, 106, 120, 111, 108, 111, 105, 107, 110, 97, 108, 107, 111, 110, 109, 102, 109, 112, 108, 108, 123, 101, 103, 107, 112, 120, 110, 109, 111, 106, 113, 105, 104, 108, 106, 119, 104, 106, 118, 111, 108, 125, 103, 107, 114, 107, 110, 109, 111, 111, 147, 117, 114, 106, 120, 106, 112, 114, 104, 111, 107, 114, 108, 101, 104, 113, 106, 110, 119, 101, 109, 110, 128, 108, 123, 110, 112, 95, 116, 115, 109, 94, 105, 110, 107, 110, 105, 114, 109, 111, 105, 109, 113, 102, 113, 107, 106, 101, 107, 104, 113, 109, 111, 104, 107, 106, 101, 117, 106, 105, 107, 99, 107, 115, 120, 113, 109, 112, 107, 109, 135, 113, 104, 112, 107, 99, 116, 107, 117, 106, 119, 110, 115, 104, 106, 99, 103, 116, 118, 108, 110, 107, 110, 105, 104, 115, 114, 107, 112, 101, 109, 98, 113, 100, 114, 109, 114, 106, 114, 105, 114, 104, 99, 90, 108, 97, 112, 113, 109, 104, 112, 130, 100, 113, 118, 106, 114, 99, 109, 96, 105, 115, 104, 103, 96, 115, 111, 102, 108, 106, 114, 108, 107, 110, 113, 113, 112, 104, 105, 103, 106, 111, 118, 110, 111, 113, 102, 103, 137, 108, 103, 110, 104, 111, 119, 106, 107, 110, 114, 113, 112, 109, 108, 111, 117, 121, 106, 110, 113, 108, 107, 100, 104, 103, 117, 97, 106, 107, 107, 102, 106, 111, 115, 113, 110, 103, 113, 104, 110, 116, 103, 111, 109, 102, 104, 105, 92, 105, 113, 101, 117, 95, 117, 103, 123, 108, 105, 113, 100, 106, 111, 109, 116, 106, 117, 101, 103, 111, 117, 101, 102, 114, 100, 107, 102, 112, 117, 105, 111, 113, 108, 122, 100, 115, 118, 111, 109, 115, 97, 99, 119, 110, 107, 106, 114, 112, 107, 119, 114, 110, 122, 96, 121, 105, 96, 103, 108, 105, 110, 110, 117, 113, 113, 96, 98, 111, 106, 110, 111, 108, 111, 110, 103, 112, 97, 100, 106, 110, 105, 106, 105, 119, 109, 109, 100, 123, 108, 97, 124, 107, 112, 111, 109, 104, 116, 113, 109, 118, 110, 103, 104, 105, 126, 108, 118, 119, 112, 113, 114, 115, 106, 112, 85, 103, 108, 113, 115, 107, 112, 102, 113, 110, 118, 112, 112, 132, 116, 112, 113, 108, 110, 97, 103, 109, 111, 113, 109, 107, 114, 108, 114, 115, 114, 95, 100, 107, 119, 108, 119, 107, 108, 110, 100, 103, 104, 109, 113, 113, 112, 115, 112, 119, 127, 107, 105, 107, 109, 106, 107, 106, 126, 93, 107, 104, 113, 103, 112, 95, 118, 113, 105, 111, 113, 111, 114, 103, 96, 108, 108, 113, 110, 97, 99, 103, 114, 108, 115, 102, 115, 125, 112, 101, 104, 112, 104, 108, 114, 135, 112, 111, 103, 109, 110, 105, 103, 115, 104, 121, 117, 108, 112, 102, 108, 105, 111, 104, 118, 116, 111, 109, 115, 108, 113, 103, 107, 108, 108, 112, 105, 124, 109, 101, 107, 110, 106, 105, 103, 110, 107, 106, 107, 108, 108, 111, 105, 141, 99, 113, 105, 113, 107, 103, 110, 123, 109, 117, 113, 105, 128, 103, 113, 100, 102, 107, 112, 123, 98, 99, 108, 111, 116, 104, 116, 110, 108, 116, 132, 103, 113, 115, 110, 108, 105, 110, 108, 107, 110, 110, 107, 110, 115, 113, 111, 112, 108, 109, 117, 103, 111, 112, 77, 111, 111, 109, 110, 105, 113, 112, 112, 102, 110, 108, 105, 113, 108, 102, 116, 113, 110, 110, 105, 107, 120, 109, 108, 116, 110, 108, 131, 105, 116, 105, 110, 121, 107, 109, 111, 107, 110, 104, 110, 111, 109, 108, 107, 108, 101, 102, 102, 103, 113, 118, 114, 98, 112, 114, 94, 116, 109, 97, 102, 107, 107, 135, 110, 109, 107, 116, 107, 110, 123, 115, 114, 114, 104, 115, 107, 109, 138, 110, 108, 108, 104, 112, 110, 108, 98, 108, 117, 113, 107, 107, 128, 97, 105, 110, 106, 114, 115, 104, 110, 108, 112, 117, 116, 107, 104, 111, 119, 111, 129, 113, 104, 106, 108, 110, 103, 110, 96, 98, 111, 122, 110, 113, 109, 109, 109, 110, 108, 102, 109, 102, 107, 110, 116, 110, 110, 82, 110, 106, 108, 111, 109, 105, 106, 117, 111, 116, 101, 109, 111, 110, 112, 113, 111, 112, 106, 114, 105, 113, 107, 121, 108, 114, 114, 93, 82, 109, 108, 108, 113, 108, 110, 113, 105, 113, 101, 104, 95, 112, 111, 108, 135, 104, 107, 125, 106, 107, 116, 101, 117, 108, 110, 111, 107, 120, 108, 104, 119, 126, 113, 109, 105, 104, 109, 119, 114, 109, 103, 114, 105, 95, 111, 104, 115, 111, 108, 126, 105, 107, 96, 104, 108, 109, 105, 106, 110, 118, 111, 100, 108, 123, 111, 115, 100, 107, 114, 108, 105, 107, 115, 110, 110, 106, 104, 107, 113, 109, 112, 111, 112, 116, 117, 120, 105, 93, 101, 106, 118, 112, 106, 119, 116, 99, 109, 104, 119, 108, 114, 104, 115, 108, 107, 94, 111, 104, 109, 109, 112, 126, 110, 113, 105, 119, 105, 112, 105, 108, 116, 112, 113, 104, 107, 109, 110, 110, 113, 110, 100, 118, 111, 110, 109, 111, 116, 109, 114, 90, 113, 115, 114, 107, 110, 108, 103, 107, 110, 105, 109, 108, 109, 115, 110, 108, 109, 106, 104, 112, 109, 113, 105, 111, 109, 108, 107, 108, 107, 107, 107, 127, 113, 111, 98, 111, 110, 111, 110, 118, 112, 107, 110, 110, 110, 116, 108, 103, 117, 129, 114, 101, 113, 106, 110, 108, 88, 118, 111, 103, 104, 116, 113, 106, 105, 105, 114, 108, 107, 113, 107, 111, 109, 124, 108, 108, 114, 126, 111, 106, 112, 112, 112, 103, 112, 96, 115, 108, 105, 108, 115, 81, 116, 124, 123, 100, 109, 109, 109, 112, 94, 121, 119, 113, 110, 109, 110, 101, 107, 102, 104, 108, 111, 106, 102, 112, 110, 106, 109, 115, 99, 108, 111, 107, 107, 106, 105, 106, 104, 108, 110, 115, 112, 111, 112, 110, 113, 114, 107, 109, 112, 116, 109, 109, 103, 111, 112, 110, 108, 108, 108, 114, 105, 120, 112, 107, 113, 115, 93, 115, 111, 84, 138, 119, 112, 105, 108, 109, 110, 109, 109, 112, 110, 111, 112, 109, 122, 105, 107, 107, 107, 113, 106, 106, 110, 116, 114, 116, 107, 107, 117, 108, 109, 106, 109, 110, 108, 111, 116, 117, 105, 105, 108, 110, 109, 109, 105, 112, 107, 94, 111, 114, 122, 103, 106, 110, 112, 109, 112, 111, 111, 109, 108, 107, 110, 107, 115, 109, 107, 106, 111, 113, 108, 105, 114, 111, 110, 108, 113, 108, 106, 116, 106, 113, 105, 112, 113, 108, 111, 115, 114, 105, 111, 110, 105, 112, 106, 108, 114, 116, 105, 104, 113, 108, 119, 110, 114, 110, 114, 107, 132, 111, 111, 112, 109, 114, 101, 105, 122, 106, 104, 104, 110, 106, 110, 113, 106, 105, 111, 111, 104, 101, 106, 110, 107, 113, 109, 114, 114, 111, 107, 106, 114, 112, 114, 113, 115, 108, 106, 103, 105, 109, 110, 114, 105, 104, 110, 112, 109, 104, 105, 117, 108, 109, 109, 115, 110, 104, 107, 105, 112, 116, 103, 106, 114, 107, 115, 111, 113, 109, 105, 116, 110, 105, 111, 106, 125, 104, 105, 110, 111, 119, 104, 118, 109, 109, 111, 111, 116, 105, 108, 109, 107, 109, 109, 116, 107, 111, 112, 103, 109, 110, 106, 104, 114, 109, 110, 105, 117, 107, 111, 115, 106, 106, 105, 116, 110, 102, 105, 106, 115, 125, 110, 111, 106, 134, 109, 115, 115, 110, 111, 106, 110, 110, 112, 108, 120, 109, 111, 121, 110, 103, 116, 110, 107, 104, 113, 110, 111, 110, 111, 112, 110, 108, 113, 94, 102, 101, 115, 112, 105, 113, 109, 109, 103, 109, 110, 116, 113, 108, 120, 108, 109, 110, 109, 110, 113, 116, 109, 107, 108, 111, 106, 114, 102, 109, 110, 113, 106, 108, 110, 103, 100, 105, 102, 108, 108, 106, 100, 113, 106, 114, 111, 111, 99, 103, 111, 106, 114, 106, 108, 110, 102, 112, 119, 127, 120, 118, 113, 112, 119, 112, 111, 109, 110, 111, 108, 110, 102, 111, 108, 108, 107, 105, 111, 107, 106, 110, 115, 121, 120, 108, 122, 104, 111, 108, 94, 112, 105, 107, 112, 109, 112, 108, 114, 106, 116, 111, 100, 112, 112, 108, 113, 102, 112, 88, 110, 112, 113, 110, 108, 113, 117, 111, 109, 116, 102, 108, 102, 104, 102, 106, 105, 105, 118, 109, 99, 101, 108, 107, 104, 104, 110, 104, 120, 109, 117, 107, 101, 104, 108, 108, 104, 109, 108, 107, 108, 103, 108, 107, 103, 108, 110, 132, 111, 108, 117, 106, 109, 110, 113, 104, 106, 133, 114, 104, 90, 109, 108, 109, 108, 106, 111, 108, 110, 112, 113, 104, 102, 104, 109, 106, 103, 118, 109, 104, 110, 112, 104, 113, 116, 108, 111, 108, 105, 111, 106, 107, 107, 108, 115, 120, 107, 110, 109, 100, 109, 118, 118, 110, 111, 107, 116, 113, 112, 112, 115, 114, 116, 107, 110, 111, 104, 106, 110, 115, 108, 114, 111, 127, 106, 108, 120, 116, 103, 105, 115, 103, 111, 111, 117, 114, 108, 113, 109, 109, 107, 116, 114, 111, 112, 112, 112, 108, 110, 114, 113, 108, 110, 111, 110, 120, 110, 111, 105, 110, 105, 112, 110, 112, 111, 110, 116, 111, 107, 105, 124, 107, 112, 108, 106, 112, 108, 110, 109, 114, 119, 110, 110, 111, 104, 107, 106, 112, 112, 113, 114, 108, 112, 111, 116, 109, 114, 113, 113, 108, 103, 118, 109, 102, 105, 106, 108, 109, 101, 110, 109, 117, 115, 110, 116, 107, 116, 105, 113, 106, 105, 109, 114, 114, 113, 109, 99, 111, 109, 102, 107, 105, 107, 114, 107, 113, 107, 116, 106, 111, 106, 102, 112, 101, 106, 95, 114, 107, 116, 107, 113, 109, 121, 110, 109, 111, 108, 107, 117, 115, 117, 112, 111, 112, 100, 107, 108, 111, 113, 109, 111, 111, 112, 100, 115, 108, 107, 109, 113, 110, 107, 114, 110, 122, 111, 118, 115, 110, 111, 115, 112, 107, 113, 118, 109, 120, 113, 109, 113, 111, 111, 122, 114, 119, 107, 108, 111, 104, 110, 101, 110, 112, 107, 111, 103, 111, 112, 111, 110, 109, 106, 109, 109, 111, 106, 103, 114, 107, 103, 114, 107, 107, 105, 117, 111, 104, 108, 110, 112, 117, 114, 112, 110, 112, 106, 108, 110, 110, 115, 98, 113, 112, 107, 103, 107, 103, 113, 116, 109, 121, 111, 105, 116, 109, 117, 111, 107, 113, 103, 107, 107, 114, 100, 107, 107, 114, 109, 115, 111, 113, 119, 112, 109, 121, 121, 104, 110, 115, 110, 113, 110, 110, 109, 108, 113, 110, 104, 123, 117, 117, 114, 106, 108, 115, 118, 110, 107, 114, 111, 114, 114, 117, 114, 108, 104, 111, 121, 115, 112, 115, 104, 113, 113, 110, 113, 108, 112, 105, 116, 115, 134, 106, 105, 122, 113, 114, 104, 109, 107, 104, 110, 108, 110, 105, 107, 119, 105, 115, 105, 116, 111, 114, 108, 106, 107, 114, 109, 122, 106, 113, 107, 108, 108, 107, 106, 103, 105, 125, 107, 111, 114, 108, 111, 106, 122, 108, 111, 107, 108, 112, 109, 110, 109, 105, 118, 107, 111, 108, 105, 107, 114, 107, 108, 109, 122, 104, 106, 110, 110, 120, 113, 104, 104, 110, 111, 113, 101, 116, 107, 106, 109, 115, 112, 104, 110, 112, 117, 117, 116, 107, 112, 109, 103, 103, 113, 111, 120, 104, 113, 103, 103, 106, 115, 112, 109, 112, 108, 118, 101, 115, 108, 117, 112, 116, 105, 108, 110, 108, 110, 102, 109, 107, 116, 106, 118, 116, 107, 107, 106, 104, 105, 109, 108, 109, 110, 111, 108, 119, 104, 111, 114, 97, 109, 101, 117, 106, 109, 105, 122, 112, 106, 99, 110, 102, 102, 114, 112, 103, 112, 108, 110, 111, 104, 108, 116, 107, 103, 104, 111, 100, 120, 108, 115, 111, 108, 109, 111, 102, 114, 105, 109, 105, 114, 100, 109, 111, 113, 111, 112, 106, 108, 120, 106, 113, 102, 116, 110, 120, 103, 109, 105, 110, 113, 109, 107, 103, 111, 118, 113, 116, 110, 110, 102, 109, 108, 122, 117, 119, 108, 109, 105, 109, 109, 113, 114, 113, 107, 113, 112, 101, 112, 113, 111, 114, 112, 114, 112, 109, 113, 111, 110, 110, 111, 114, 113, 110, 107, 112, 109, 107, 109, 111, 113, 108, 112, 107, 108, 116, 115, 113, 111, 114, 103, 108, 105, 112, 112, 111, 106, 113, 106, 113, 113, 108, 115, 111, 108, 100, 109, 114, 117, 109, 119, 116, 111, 117, 110, 109, 111, 110, 113, 108, 111, 104, 102, 111, 108, 110, 115, 115, 108, 109, 108, 115, 108, 110, 110, 113, 111, 111, 110, 105, 114, 111, 109, 110, 105, 111, 112, 107, 109, 113, 109, 111, 108, 114, 112, 120, 110, 110, 107, 114, 108, 110, 119, 107, 112, 106, 118, 110, 111, 113, 113, 111, 106, 110, 110, 113, 107, 105, 107, 107, 112, 111, 111, 110, 116, 112, 107, 109, 114, 111, 109, 105, 108, 109, 104, 116, 103, 103, 115, 108, 111, 108, 110, 110, 109, 103, 118, 110, 107, 119, 108, 111, 120, 113, 108, 109, 110, 113, 112, 109, 114, 111, 117, 111, 110, 113, 107, 105, 113, 111, 111, 108, 107, 112, 113, 115, 109, 109, 108, 110, 105, 107, 115, 109, 108, 108, 114, 109, 109, 110, 110, 111, 110, 109, 113, 111, 110, 107, 107, 112, 103, 108, 109, 108, 110, 107, 113, 107, 111, 111, 106, 106, 106, 108, 112, 110, 108, 113, 109, 108, 111, 111, 109, 110, 110, 112, 108, 110, 107, 107, 108, 108, 112, 111, 109, 113, 107, 104, 110, 114, 110, 104, 106, 104, 108, 110, 110, 108, 98, 110, 108, 118, 112, 111, 106, 111, 111, 110, 105, 112, 113, 99, 106, 104, 110, 108, 111, 112, 110, 113, 113, 107, 111, 108, 110, 102, 112, 110, 111, 110, 115, 112, 110, 104, 105, 108, 117, 112, 113, 108, 111, 115, 108, 108, 112, 108, 109, 109, 111, 111, 109, 112, 106, 116, 110, 99, 108, 107, 113, 109, 110, 110, 115, 113, 114, 111, 114, 117, 108, 111, 111, 111, 110, 111, 115, 111, 117, 105, 111, 112, 109, 108, 109, 112, 108, 113, 109, 107, 108, 103, 109, 109, 107, 111, 112, 109, 109, 110, 110, 104, 110, 111, 107, 111, 108, 113, 109, 110, 112, 113, 117, 113, 108, 110, 110, 112, 114, 116, 113, 121, 110, 113, 116, 115, 110, 110, 111, 113, 109, 106, 114, 109, 109, 109, 108, 112, 115, 106, 109, 110, 111, 112, 111, 110, 97, 108, 110, 109, 110, 111, 109, 110, 106, 117, 107, 111, 113, 111, 116, 113, 113, 114, 111, 109, 103, 111, 114, 106, 116, 106, 110, 120, 105, 112, 108, 112, 109, 113, 105, 105, 113, 112, 109, 111, 113, 109, 110, 113, 107, 114, 108, 108, 109, 106, 104, 109, 110, 109, 115, 112, 109, 110, 110, 109, 112, 114, 109, 113, 112, 110, 113, 109, 113, 105, 109, 112, 106, 111, 106, 113, 106, 105, 113, 109, 113, 113, 112, 112, 107, 106, 112, 106, 113, 109, 109, 110, 104, 101, 113, 113, 106, 108, 118, 112, 107, 106, 104, 108, 107, 106, 108, 113, 101, 108, 106, 110, 109, 112, 111, 105, 108, 111, 101, 115, 107, 104, 107, 120, 117, 108, 116, 108, 115, 111, 105, 109, 110, 109, 110, 113, 109, 106, 110, 106, 114, 107, 112, 109, 113, 108, 113, 116, 112, 105, 106, 106, 109, 109, 115, 110, 115, 101, 111, 111, 115, 108, 110, 107, 110, 109, 105, 117, 119, 105, 110, 107, 106, 105, 109, 114, 118, 105, 115, 109, 100, 117, 105, 110, 110, 116, 116, 104, 113, 107, 109, 107, 111, 112, 124, 110, 104, 116, 112, 111, 118, 105, 115, 100, 117, 111, 108, 119, 97, 105, 113, 111, 115, 98, 107, 115, 111, 109, 108, 110, 111, 111, 106, 107, 111, 91, 93, 102, 115, 117, 103, 114, 110, 111, 110, 110, 108, 113, 106, 113, 130, 128, 110, 110, 108, 111, 110, 107, 114, 97, 113, 69, 109, 116, 108, 110, 106, 111, 107, 109, 103, 112, 103, 110, 130, 107, 106, 129, 101, 100, 112, 110, 113, 115, 113, 114, 113, 106, 107, 110, 125, 109, 106, 108, 113, 105, 113, 109, 107, 110, 112, 108, 109, 96, 114, 113, 108, 108, 129, 117, 102, 118, 113, 111, 105, 111, 108, 88, 109, 116, 113, 110, 114, 102, 106, 105, 107, 112, 100, 111, 112, 113, 107, 109, 113, 122, 122, 108, 108, 106, 96, 109, 111, 110, 106, 118, 106, 100, 110, 112, 112, 107, 112, 106, 110, 118, 104, 111, 120, 106, 109, 106, 105, 107, 107, 108, 115, 98, 110, 153, 113, 116, 104, 110, 93, 113, 119, 113, 121, 115, 115, 111, 104, 108, 114, 111, 111, 112, 115, 98, 112, 98, 105, 111, 109, 106, 117, 109, 104, 107, 112, 107, 109, 109, 108, 110, 114, 110, 103, 118, 108, 105, 118, 113, 107, 110, 112, 114, 115, 112, 136, 120, 112, 105, 113, 108, 109, 103, 111, 109, 106, 117, 110, 105, 106, 108, 107, 111, 109, 108, 109, 113, 113, 103, 117, 114, 110, 112, 107, 109, 115, 112, 110, 111, 103, 108, 113, 110, 111, 112, 109, 106, 109, 111, 106, 117, 109, 103, 112, 114, 107, 107, 111, 105, 112, 116, 110, 113, 110, 115, 112, 113, 105, 108, 121, 110, 112, 104, 119, 117, 107, 106, 110, 110, 110, 109, 118, 110, 110, 108, 108, 108, 109, 108, 99, 108, 110, 102, 110, 111, 108, 110, 108, 110, 113, 108, 94, 105, 108, 107, 113, 112, 103, 118, 104, 105, 105, 109, 112, 102, 107, 114, 116, 116, 109, 111, 147, 108, 107, 100, 107, 109, 106, 104, 103, 137, 110, 112, 112, 103, 115, 101, 113, 108, 111, 107, 100, 114, 108, 109, 101, 100, 105, 109, 107, 115, 114, 110, 107, 113, 111, 107, 107, 109, 110, 108, 107, 106, 112, 111, 110, 111, 119, 120, 111, 115, 113, 111, 100, 106, 113, 116, 107, 112, 106, 115, 110, 106, 113, 107, 111, 110, 111, 107, 110, 109, 113, 110, 111, 110, 116, 110, 112, 109, 113, 102, 106, 110, 107, 97, 112, 106, 113, 99, 114, 105, 101, 110, 102, 131, 106, 108, 115, 110, 113, 111, 104, 106, 112, 107, 105, 96, 125, 101, 102, 123, 110, 107, 113, 110, 100, 128, 105, 110, 113, 100, 111, 103, 110, 112, 117, 106, 112, 113, 101, 103, 103, 107, 119, 110, 110, 116, 110, 116, 113, 112, 114, 104, 116, 104, 106, 115, 106, 115, 110, 108, 117, 105, 108, 116, 99, 111, 113, 119, 101, 116, 105, 117, 104, 107, 107, 105, 110, 110, 110, 114, 93, 113, 103, 103, 105, 114, 96, 107, 104, 103, 105, 117, 107, 113, 113, 108, 115, 99, 114, 95, 116, 108, 109, 106, 109, 108, 106, 106, 114, 110, 102, 109, 134, 99, 112, 111, 100, 103, 92, 111, 119, 124, 124, 111, 109, 111, 108, 108, 104, 136, 116, 116, 98, 124, 115, 99, 105, 101, 114, 108, 106, 105, 115, 118, 107, 110, 97, 113, 119, 107, 112, 111, 98, 110, 106, 114, 104, 124, 104, 116, 114, 113, 104, 115, 102, 107, 114, 113, 107, 105, 108, 90, 101, 107, 107, 110, 120, 116, 105, 113, 111, 106, 122, 106, 108, 128, 104, 105, 112, 102, 106, 112, 111, 107, 103, 105, 112, 108, 111, 108, 108, 114, 110, 113, 103, 108, 124, 101, 121, 99, 113, 119, 108, 91, 108, 112, 105, 101, 104, 112, 105, 93, 109, 113, 113, 121, 116, 100, 107, 116, 99, 108, 124, 104, 121, 102, 102, 113, 113, 104, 112, 101, 110, 96, 100, 124, 118, 106, 113, 114, 119, 110, 115, 109, 105, 108, 107, 96, 95, 104, 118, 89, 102, 110, 106, 111, 103, 110, 89, 113, 110, 107, 118, 104, 104, 117, 96, 110, 113, 101, 110, 109, 104, 109, 102, 110, 114, 103, 110, 116, 95, 121, 117, 108, 109, 140, 102, 99, 105, 97, 109, 114, 108, 88, 110, 113, 112, 100, 115, 141, 114, 101, 120, 107, 114, 113, 122, 112, 116, 114, 103, 118, 100, 116, 109, 105, 101, 111, 103, 110, 103, 112, 120, 111, 106, 108, 113, 111, 110, 126, 101, 110, 108, 117, 115, 107, 107, 103, 110, 110, 108, 108, 112, 112, 92, 110, 105, 111, 100, 111, 105, 104, 114, 116, 114, 129, 111, 108, 108, 109, 114, 119, 111, 113, 98, 109, 112, 100, 113, 104, 109, 111, 101, 129, 109, 121, 102, 106, 101, 111, 105, 108, 106, 88, 116, 94, 113, 106, 113, 99, 115, 111, 107, 107, 109, 102, 113, 105, 95, 109, 111, 101, 104, 109, 110, 117, 105, 108, 115, 114, 107, 110, 118, 110, 104, 104, 107, 112, 102, 105, 99, 110, 94, 116, 95, 92, 95, 101, 101, 98, 117, 114, 110, 103, 106, 107, 108, 108, 116, 104, 110, 122, 115, 107, 120, 117, 111, 113, 105, 104, 110, 121, 102, 105, 100, 128, 101, 104, 83, 108, 112, 127, 121, 112, 117, 117, 112, 122, 102, 116, 109, 117, 113, 111, 112, 105, 107, 112, 108, 109, 106, 102, 103, 115, 105, 101, 105, 105, 104, 116, 109, 100, 107, 111, 121, 108, 108, 113, 119, 95, 114, 123, 111, 113, 102, 117, 111, 110, 102, 108, 117, 103, 112, 112, 106, 118, 115, 103, 112, 106, 99, 108, 104, 101, 109, 109, 106, 132, 103, 112, 112, 109, 113, 109, 110, 111, 116, 111, 112, 109, 113, 103, 107, 109, 104, 109, 108, 127, 114, 104, 108, 108, 104, 113, 105, 110, 106, 110, 115, 107, 104, 109, 107, 103, 103, 108, 105, 111, 116, 109, 113, 110, 106, 116, 108, 109, 114, 110, 102, 126, 111, 104, 116, 108, 105, 106, 120, 115, 105, 102, 117, 115, 103, 110, 115, 112, 121, 108, 113, 113, 113, 97, 117, 84, 107, 103, 107, 98, 109, 106, 109, 107, 126, 119, 111, 113, 105, 111, 112, 104, 96, 114, 119, 120, 109, 116, 96, 111, 96, 109, 117, 115, 126, 103, 110, 109, 102, 98, 109, 106, 110, 104, 117, 122, 114, 105, 108, 110, 115, 107, 100, 110, 113, 120, 107, 111, 104, 110, 103, 113, 114, 110, 105, 112, 125, 119, 116, 108, 114, 117, 119, 107, 110, 108, 110, 102, 116, 120, 104, 115, 108, 107, 122, 118, 111, 115, 114, 108, 115, 101, 110, 103, 102, 113, 110, 115, 104, 112, 101, 116, 103, 118, 110, 102, 104, 108, 112, 104, 117, 117, 106, 112, 106, 96, 123, 105, 106, 121, 114, 113, 118, 115, 103, 104, 121, 111, 129, 91, 105, 92, 112, 107, 110, 113, 106, 100, 113, 106, 100, 109, 112, 106, 106, 108, 112, 105, 103, 109, 106, 118, 100, 105, 117, 103, 113, 118, 107, 111, 104, 109, 125, 112, 112, 103, 116, 107, 112, 118, 113, 106, 106, 111, 104, 107, 101, 116, 113, 119, 117, 109, 115, 113, 116, 106, 106, 112, 101, 106, 108, 113, 118, 109, 114, 97, 100, 112, 110, 105, 114, 104, 121, 115, 114, 106, 105, 113, 116, 104, 111, 109, 112, 108, 113, 104, 112, 104, 106, 114, 111, 109, 109, 118, 106, 120, 109, 109, 91, 118, 115, 124, 115, 117, 109, 115, 115, 105, 105, 108, 122, 121, 111, 114, 106, 107, 111, 116, 120, 109, 115, 113, 105, 114, 106, 115, 116, 111, 109, 102, 101, 111, 106, 111, 106, 81, 118, 100, 99, 119, 100, 101, 110, 112, 105, 111, 114, 109, 105, 110, 107, 103, 115, 108, 111, 109, 106, 119, 101, 101, 108, 115, 123, 105, 112, 104, 107, 113, 112, 109, 105, 103, 109, 115, 120, 112, 115, 114, 109, 108, 112, 127, 107, 116, 98, 110, 106, 101, 110, 117, 108, 108, 108, 107, 116, 102, 110, 102, 107, 105, 115, 111, 109, 106, 102, 106, 106, 109, 115, 107, 121, 107, 108, 108, 107, 97, 111, 114, 110, 115, 103, 101, 108, 107, 108, 112, 101, 109, 114, 108, 110, 106, 102, 106, 106, 101, 101, 112, 125, 114, 108, 118, 103, 100, 111, 108, 110, 106, 117, 101, 114, 107, 119, 113, 122, 108, 122, 119, 119, 108, 124, 116, 103, 104, 102, 113, 111, 109, 111, 109, 117, 116, 113, 105, 118, 123, 105, 106, 121, 105, 96, 105, 106, 105, 114, 103, 110, 97, 117, 117, 112, 94, 110, 110, 114, 113, 106, 118, 134, 122, 106, 104, 114, 112, 111, 106, 109, 110, 116, 112, 109, 108, 107, 109, 118, 119, 110, 102, 105, 129, 122, 111, 119, 107, 113, 122, 103, 105, 116, 107, 110, 113, 117, 112, 116, 124, 105, 104, 110, 111, 101, 104, 107, 113, 109, 107, 108, 113, 110, 107, 107, 110, 110, 103, 114, 114, 113, 108, 111, 116, 110, 115, 113, 115, 109, 115, 116, 102, 105, 111, 106, 101, 102, 110, 110, 115, 111, 107, 109, 107, 113, 113, 106, 109, 105, 97, 111, 113, 114, 107, 111, 113, 113, 110, 105, 111, 105, 109, 103, 99, 113, 110, 114, 116, 110, 108, 111, 111, 112, 115, 113, 112, 107, 106, 107, 108, 113, 116, 104, 110, 106, 109, 119, 111, 106, 105, 109, 107, 111, 106, 111, 111, 109, 110, 109, 112, 108, 109, 113, 102, 112, 110, 111, 113, 110, 109, 104, 103, 108, 111, 114, 108, 112, 107, 111, 108, 108, 112, 113, 112, 121, 109, 106, 113, 107, 108, 114, 112, 112, 101, 102, 103, 110, 110, 111, 108, 110, 107, 114, 110, 108, 112, 113, 109, 115, 107, 118, 114, 125, 107, 109, 110, 109, 112, 115, 111, 111, 107, 107, 119, 109, 107, 106, 115, 107, 114, 111, 113, 113, 112, 111, 114, 109, 112, 111, 105, 114, 118, 126, 114, 107, 104, 113, 108, 114, 113, 111, 116, 111, 109, 106, 108, 110, 106, 112, 105, 117, 111, 114, 105, 114, 109, 118, 111, 113, 116, 116, 112, 111, 108, 117, 115, 107, 107, 111, 101, 113, 112, 109, 113, 113, 109, 104, 113, 112, 110, 114, 117, 113, 112, 106, 108, 111, 110, 116, 112, 116, 112, 104, 114, 113, 110, 113, 112, 107, 112, 114, 114, 108, 91, 112, 106, 113, 110, 112, 111, 107, 111, 112, 116, 115, 115, 111, 117, 113, 112, 114, 109, 107, 109, 111, 106, 116, 105, 108, 101, 109, 108, 112, 109, 109, 101, 107, 113, 114, 117, 111, 113, 109, 117, 106, 107, 110, 113, 107, 104, 112, 108, 122, 108, 110, 115, 111, 108, 109, 111, 105, 112, 108, 111, 112, 116, 118, 116, 113, 103, 110, 113, 107, 110, 110, 110, 113, 125, 105, 102, 108, 114, 106, 117, 110, 107, 108, 112, 102, 114, 113, 112, 111, 111, 108, 119, 109, 113, 119, 106, 113, 109, 112, 108, 106, 106, 108, 110, 111, 111, 113, 110, 115, 109, 114, 107, 114, 114, 109, 112, 117, 112, 108, 104, 107, 109, 107, 117, 112, 111, 108, 113, 111, 112, 106, 108, 110, 108, 106, 114, 111, 108, 111, 111, 110, 112, 110, 112, 118, 116, 106, 105, 107, 111, 110, 115, 103, 113, 119, 109, 109, 104, 108, 106, 112, 117, 112, 108, 113, 108, 111, 117, 105, 107, 112, 111, 106, 108, 108, 111, 110, 107, 109, 107, 113, 112, 113, 114, 114, 114, 111, 101, 106, 111, 109, 116, 107, 114, 105, 102, 116, 112, 105, 108, 110, 109, 114, 110, 114, 113, 112, 111, 108, 113, 107, 113, 108, 111, 120, 109, 115, 112, 114, 113, 112, 111, 111, 105, 109, 112, 108, 113, 106, 112, 112, 110, 108, 112, 111, 100, 114, 111, 111, 110, 112, 108, 121, 116, 92, 102, 104, 107, 117, 113, 112, 110, 106, 110, 113, 109, 112, 110, 114, 110, 109, 113, 99, 102, 122, 109, 93, 101, 114, 109, 116, 97, 115, 115, 110, 107, 109, 111, 111, 111, 107, 109, 107, 106, 113, 110, 109, 110, 107, 114, 106, 111, 110, 111, 112, 105, 110, 107, 107, 107, 118, 115, 112, 105, 103, 106, 113, 110, 121, 114, 108, 114, 109, 110, 102, 113, 109, 112, 107, 111, 113, 111, 116, 110, 114, 109, 109, 112, 112, 107, 108, 115, 115, 112, 111, 109, 112, 116, 112, 97, 109, 111, 111, 109, 108, 112, 117, 110, 113, 109, 103, 109, 113, 111, 102, 113, 109, 117, 115, 110, 108, 115, 106, 112, 111, 110, 112, 109, 108, 113, 107, 108, 108, 109, 119, 120, 109, 117, 108, 111, 111, 108, 109, 107, 108, 111, 105, 112, 106, 112, 113, 111, 114, 109, 114, 108, 108, 99, 109, 110, 113, 108, 105, 119, 110, 113, 104, 106, 111, 111, 110, 113, 109, 114, 113, 110, 116, 109, 107, 111, 109, 110, 111, 113, 108, 111, 110, 108, 107, 111, 108, 111, 113, 111, 115, 107, 104, 108, 111, 115, 112, 108, 108, 107, 110, 110, 112, 101, 110, 117, 116, 109, 105, 97, 111, 108, 110, 115, 103, 94, 106, 108, 104, 112, 111, 108, 110, 112, 110, 115, 107, 118, 108, 111, 109, 103, 107, 111, 114, 116, 106, 112, 110, 114, 109, 110, 110, 109, 114, 108, 107, 111, 110, 108, 118, 111, 104, 116, 105, 110, 110, 104, 109, 112, 117, 107, 111, 114, 109, 109, 104, 108, 111, 113, 120, 114, 115, 101, 109, 109, 113, 110, 112, 112, 109, 117, 109, 107, 108, 119, 110, 113, 111, 110, 111, 110, 109, 110, 111, 115, 112, 113, 98, 110, 107, 111, 114, 111, 117, 110, 109, 105, 109, 108, 111, 109, 98, 110, 105, 110, 111, 106, 110, 111, 105, 110, 97, 105, 109, 108, 110, 106, 110, 112, 110, 110, 115, 110, 105, 99, 117, 111, 115, 109, 104, 112, 108, 113, 114, 108, 110, 109, 109, 107, 105, 102, 112, 111, 111, 108, 110, 111, 104, 112, 117, 107, 111, 111, 112, 112, 108, 107, 112, 109, 115, 109, 107, 110, 109, 108, 111, 111, 111, 111, 109, 110, 110, 103, 113, 110, 109, 111, 111, 103, 109, 111, 108, 107, 112, 114, 108, 112, 112, 115, 110, 109, 107, 115, 107, 107, 115, 115, 107, 106, 109, 112, 114, 107, 111, 110, 108, 111, 115, 110, 109, 109, 112, 108, 112, 111, 98, 107, 108, 112, 109, 110, 108, 110, 111, 111, 113, 115, 112, 110, 116, 109, 111, 110, 112, 112, 112, 107, 100, 107, 109, 114, 108, 110, 108, 117, 108, 109, 107, 107, 109, 110, 113, 102, 114, 105, 105, 120, 113, 108, 106, 111, 103, 112, 108, 117, 115, 110, 109, 111, 112, 109, 107, 102, 108, 111, 102, 108, 112, 113, 95, 104, 112, 112, 109, 92, 114, 110, 111, 107, 112, 108, 105, 110, 108, 107, 108, 106, 110, 112, 111, 108, 109, 107, 112, 106, 111, 108, 112, 113, 108, 111, 106, 116, 107, 109, 103, 111, 112, 107, 110, 110, 101, 108, 109, 107, 111, 106, 109, 111, 126, 116, 115, 110, 110, 111, 112, 110, 126, 111, 117, 96, 97, 106, 100, 110, 107, 108, 113, 110, 109, 109, 107, 108, 115, 108, 110, 111, 107, 105, 110, 118, 114, 108, 106, 112, 106, 112, 114, 111, 103, 105, 104, 125, 114, 107, 109, 112, 86, 106, 101, 111, 113, 110, 110, 114, 102, 116, 94, 109, 109, 95, 107, 107, 114, 111, 112, 110, 111, 113, 113, 108, 119, 131, 112, 112, 112, 115, 112, 110, 113, 103, 108, 111, 109, 111, 102, 105, 110, 120, 106, 109, 107, 113, 108, 123, 118, 112, 113, 107, 115, 109, 109, 118, 114, 109, 109, 114, 110, 113, 106, 138, 112, 107, 114, 110, 111, 120, 109, 114, 105, 104, 107, 114, 111, 102, 111, 110, 111, 112, 110, 112, 103, 100, 108, 107, 109, 104, 113, 114, 105, 110, 105, 116, 107, 110, 122, 111, 108, 105, 110, 110, 106, 119, 105, 106, 118, 103, 100, 112, 107, 111, 111, 110, 108, 124, 107, 107, 114, 110, 116, 111, 103, 107, 113, 93, 109, 108, 100, 111, 112, 102, 107, 110, 111, 109, 111, 107, 102, 116, 113, 107, 109, 97, 103, 112, 122, 94, 110, 108, 107, 117, 115, 110, 110, 105, 109, 96, 114, 112, 110, 96, 109, 103, 112, 108, 111, 107, 100, 107, 107, 109, 113, 110, 108, 104, 107, 107, 111, 104, 109, 110, 108, 94, 115, 88, 100, 109, 98, 108, 106, 106, 110, 94, 107, 98, 89, 122, 104, 112, 110, 111, 116, 101, 113, 103, 96, 105, 119, 125, 111, 111, 106, 105, 106, 109, 113, 113, 115, 112, 112, 102, 117, 105, 113, 111, 109, 111, 103, 108, 110, 109, 112, 111, 111, 116, 106, 119, 113, 114, 106, 104, 113, 108, 103, 110, 115, 113, 111, 109, 111, 115, 110, 108, 108, 107, 111, 112, 107, 111, 114, 104, 113, 107, 114, 107, 113, 114, 106, 110, 105, 116, 121, 108, 114, 106, 105, 98, 109, 107, 111, 108, 101, 108, 109, 106, 112, 116, 116, 117, 109, 121, 112, 112, 136, 111, 102, 111, 110, 102, 113, 112, 111, 109, 114, 105, 105, 119, 111, 109, 109, 135, 109, 108, 103, 117, 107, 110, 109, 111, 114, 118, 110, 109, 110, 112, 128, 112, 111, 118, 113, 134, 113, 122, 106, 107, 112, 110, 105, 114, 109, 112, 115, 109, 110, 106, 105, 109, 92, 110, 109, 108, 101, 110, 111, 119, 116, 118, 105, 106, 96, 111, 119, 104, 113, 110, 121, 109, 104, 111, 109, 112, 111, 113, 110, 110, 111, 109, 114, 116, 114, 111, 101, 108, 115, 113, 110, 113, 105, 109, 121, 105, 109, 107, 113, 116, 120, 110, 112, 111, 109, 117, 99, 113, 107, 110, 106, 107, 113, 105, 111, 111, 110, 108, 114, 101, 98, 119, 106, 111, 105, 100, 112, 112, 106, 103, 113, 98, 112, 106, 123, 128, 120, 101, 107, 107, 106, 116, 117, 111, 106, 108, 112, 120, 124, 117, 112, 108, 129, 110, 114, 111, 100, 110, 109, 113, 106, 110, 108, 106, 106, 123, 106, 102, 110, 108, 116, 112, 107, 119, 105, 119, 109, 113, 117, 110, 114, 109, 110, 111, 105, 106, 116, 101, 87, 114, 107, 119, 105, 103, 115, 103, 124, 101, 111, 118, 131, 102, 109, 122, 125, 89, 114, 106, 108, 106, 112, 108, 117, 107, 108, 110, 112, 111, 110, 108, 106, 107, 109, 107, 116, 107, 107, 110, 103, 107, 103, 106, 104, 112, 121, 112, 102, 115, 117, 103, 111, 103, 103, 105, 110, 123, 98, 111, 105, 110, 111, 102, 117, 113, 109, 103, 111, 105, 112, 111, 100, 121, 114, 114, 108, 113, 107, 104, 109, 109, 114, 104, 111, 85, 109, 111, 125, 109, 107, 112, 104, 120, 113, 115, 109, 107, 112, 101, 117, 106, 98, 105, 107, 117, 109, 112, 111, 117, 123, 111, 109, 107, 122, 106, 97, 109, 110, 113, 110, 107, 113, 119, 108, 117, 97, 105, 103, 110, 106, 134, 100, 119, 107, 111, 114, 110, 105, 114, 111, 105, 102, 102, 100, 117, 108, 104, 113, 110, 97, 114, 111, 113, 107, 111, 103, 85, 106, 109, 103, 102, 111, 114, 132, 104, 108, 105, 109, 108, 103, 119, 110, 110, 119, 106, 111, 103, 116, 106, 111, 102, 115, 102, 112, 114, 114, 104, 101, 111, 105, 111, 110, 108, 96, 111, 112, 112, 106, 109, 105, 104, 112, 128, 96, 106, 118, 114, 111, 109, 111, 105, 106, 112, 110, 120, 111, 102, 117, 108, 108, 109, 107, 109, 113, 109, 97, 113, 107, 101, 128, 108, 112, 123, 105, 107, 105, 109, 103, 119, 110, 98, 105, 94, 108, 106, 114, 103, 112, 108, 120, 112, 110, 118, 107, 107, 114, 113, 115, 93, 107, 110, 101, 108, 96, 114, 99, 116, 106, 101, 102, 111, 102, 123, 114, 119, 120, 107, 118, 121, 110, 107, 111, 103, 110, 113, 109, 113, 104, 96, 107, 82, 104, 100, 108, 106, 89, 111, 111, 113, 103, 99, 91, 115, 114, 108, 104, 102, 107, 112, 114, 107, 92, 115, 115, 110, 112, 103, 105, 112, 115, 105, 104, 106, 111, 109, 98, 111, 113, 133, 109, 101, 120, 109, 115, 112, 107, 135, 117, 112, 116, 111, 105, 127, 117, 104, 113, 103, 104, 121, 109, 108, 114, 112, 103, 102, 103, 111, 108, 114, 108, 118, 121, 107, 111, 104, 102, 104, 116, 112, 104, 115, 126, 110, 111, 109, 105, 101, 106, 115, 108, 107, 112, 110, 104, 115, 112, 109, 113, 105, 110, 117, 114, 108, 108, 117, 115, 95, 106, 108, 111, 112, 122, 109, 113, 97, 115, 114, 119, 120, 108, 102, 108, 107, 108, 105, 122, 109, 106, 107, 120, 101, 111, 104, 124, 106, 105, 120, 109, 112, 105, 111, 103, 110, 105, 111, 109, 109, 102, 106, 109, 113, 112, 113, 109, 110, 104, 109, 112, 115, 113, 116, 107, 100, 109, 107, 126, 105, 108, 117, 118, 113, 105, 117, 107, 108, 101, 108, 100, 113, 112, 106, 109, 110, 116, 109, 112, 113, 120, 107, 114, 114, 116, 105, 94, 116, 104, 111, 116, 101, 106, 105, 108, 117, 111, 118, 111, 107, 107, 116, 105, 112, 107, 111, 119, 104, 110, 115, 109, 146, 112, 115, 102, 113, 122, 109, 110, 91, 103, 110, 114, 117, 115, 105, 104, 111, 115, 113, 113, 101, 103, 111, 109, 110, 106, 109, 106, 101, 117, 110, 113, 104, 118, 108, 107, 89, 108, 117, 115, 114, 104, 112, 113, 105, 102, 109, 102, 121, 112, 115, 114, 103, 111, 116, 164, 114, 112, 117, 113, 107, 107, 114, 107, 108, 110, 94, 109, 113, 113, 98, 113, 110, 119, 84, 100, 102, 115, 114, 114, 113, 110, 107, 110, 76, 112, 121, 115, 107, 112, 112, 101, 107, 108, 108, 117, 109, 107, 109, 110, 104, 106, 115, 111, 106, 108, 111, 125, 123, 118, 109, 110, 116, 110, 104, 91, 107, 112, 111, 101, 103, 110, 108, 112, 114, 107, 107, 112, 113, 111, 110, 114, 111, 87, 110, 105, 109, 108, 110, 106, 117, 109, 114, 103, 114, 123, 112, 106, 115, 115, 112, 113, 112, 114, 111, 106, 101, 106, 110, 115, 110, 107, 113, 106, 111, 123, 123, 110, 117, 112, 112, 151, 111, 125, 108, 114, 107, 114, 98, 105, 106, 112, 111, 105, 145, 115, 108, 106, 108, 108, 103, 106, 113, 104, 108, 111, 111, 114, 106, 94, 116, 104, 122, 104, 110, 108, 116, 100, 113, 103, 115, 111, 111, 107, 114, 104, 109, 113, 108, 113, 106, 98, 107, 101, 112, 108, 102, 102, 110, 106, 107, 98, 111, 110, 109, 101, 109, 110, 109, 103, 102, 113, 114, 119, 113, 112, 103, 116, 142, 104, 102, 111, 105, 113, 112, 121, 120, 114, 104, 108, 115, 104, 112, 100, 110, 104, 99, 110, 104, 113, 110, 106, 115, 109, 106, 110, 109, 114, 128, 107, 109, 118, 110, 107, 113, 113, 107, 102, 107, 114, 123, 118, 112, 102, 116, 103, 111, 117, 112, 119, 101, 112, 118, 122, 127, 101, 119, 115, 99, 108, 94, 102, 107, 114, 111, 106, 111, 114, 111, 104, 117, 128, 112, 114, 107, 115, 112, 113, 112, 121, 116, 106, 107, 120, 107, 115, 105, 108, 112, 104, 110, 120, 119, 110, 137, 113, 112, 112, 107, 111, 116, 112, 100, 102, 102, 111, 112, 109, 108, 114, 109, 111, 114, 108, 105, 118, 111, 113, 92, 111, 107, 105, 118, 90, 107, 116, 117, 116, 115, 114, 106, 115, 112, 110, 109, 114, 110, 94, 103, 106, 110, 108, 111, 112, 111, 112, 89, 117, 109, 91, 103, 111, 101, 104, 120, 107, 109, 111, 109, 100, 109, 104, 119, 102, 106, 105, 107, 104, 101, 110, 87, 113, 116, 108, 119, 109, 111, 111, 124, 110, 111, 103, 111, 105, 112, 109, 95, 110, 134, 120, 108, 101, 113, 119, 113, 106, 109, 115, 108, 104, 109, 103, 101, 109, 112, 112, 114, 117, 104, 118, 109, 109, 106, 110, 103, 104, 116, 107, 101, 119, 110, 112, 129, 110, 107, 98, 97, 99, 106, 106, 104, 100, 104, 104, 130, 107, 98, 111, 116, 106, 112, 120, 103, 111, 99, 106, 109, 112, 98, 105, 102, 103, 111, 120, 111, 109, 102, 106, 99, 107, 109, 109, 93, 100, 118, 111, 97, 118, 112, 112, 109, 115, 121, 111, 115, 114, 109, 98, 107, 113, 111, 106, 107, 113, 108, 118, 103, 93, 101, 108, 108, 111, 114, 114, 100, 94, 102, 104, 104, 102, 105, 106, 107, 109, 101, 116, 96, 115, 100, 106, 101, 109, 104, 121, 102, 108, 109, 93, 115, 103, 104, 106, 118, 97, 111, 119, 107, 110, 122, 107, 93, 113, 124, 109, 107, 115, 69, 108, 97, 104, 106, 104, 108, 114, 116, 113, 109, 111, 95, 98, 103, 100, 105, 112, 93, 111, 116, 110, 102, 107, 102, 90, 77, 132, 108, 115, 117, 105, 109, 106, 113, 105, 136, 125, 110, 111, 117, 107, 107, 101, 123, 98, 110, 106, 112, 104, 124, 111, 110, 110, 111, 118, 102, 109, 112, 114, 106, 115, 110, 108, 103, 115, 110, 109, 104, 114, 115, 119, 104, 102, 114, 102, 102, 106, 109, 115, 116, 111, 109, 103, 109, 114, 106, 108, 119, 104, 114, 119, 111, 107, 110, 108, 112, 109, 112, 109, 108, 116, 109, 111, 110, 110, 117, 110, 118, 109, 140, 128, 105, 105, 110, 102, 102, 106, 107, 117, 120, 114, 110, 101, 117, 116, 109, 106, 98, 102, 115, 117, 104, 94, 105, 106, 120, 106, 109, 115, 103, 112, 110, 109, 106, 119, 114, 95, 115, 114, 111, 118, 105, 110, 109, 117, 109, 121, 107, 97, 115, 104, 116, 116, 114, 102, 102, 97, 103, 115, 120, 110, 111, 121, 120, 108, 100, 123, 109, 107, 107, 120, 112, 116, 115, 108, 111, 107, 107, 103, 108, 130, 113, 106, 104, 115, 101, 112, 110, 120, 101, 103, 113, 116, 107, 109, 115, 99, 95, 91, 107, 104, 112, 101, 110, 106, 113, 112, 109, 104, 110, 107, 122, 116, 107, 112, 99, 105, 97, 104, 109, 114, 112, 107, 113, 121, 102, 108, 116, 102, 103, 104, 113, 100, 104, 106, 109, 105, 102, 109, 116, 107, 112, 110, 95, 101, 113, 113, 107, 113, 105, 106, 110, 109, 115, 119, 106, 106, 105, 142, 106, 111, 103, 110, 120, 115, 98, 103, 111, 115, 100, 109, 104, 111, 114, 105, 113, 117, 99, 108, 106, 105, 108, 142, 103, 104, 108, 115, 99, 116, 110, 103, 111, 116, 110, 111, 95, 108, 110, 111, 109, 103, 116, 117, 111, 110, 120, 111, 111, 99, 109, 109, 109, 107, 99, 102, 108, 136, 114, 106, 114, 113, 104, 101, 110, 108, 102, 106, 107, 103, 119, 103, 111, 111, 119, 120, 102, 107, 106, 111, 114, 112, 105, 99, 112, 112, 107, 112, 105, 105, 96, 116, 106, 110, 106, 107, 102, 105, 121, 110, 111, 111, 98, 106, 122, 109, 107, 120, 106, 110, 106, 102, 119, 112, 111, 111, 108, 111, 103, 110, 108, 120, 141, 120, 105, 103, 106, 110, 114, 106, 108, 114, 99, 103, 106, 111, 111, 111, 112, 116, 116, 99, 105, 126, 95, 112, 105, 119, 117, 116, 105, 115, 110, 111, 103, 112, 104, 114, 107, 110, 111, 118, 106, 120, 103, 104, 109, 106, 114, 103, 113, 92, 123, 112, 115, 98, 105, 116, 115, 116, 110, 117, 100, 99, 110, 111, 110, 111, 124, 106, 121, 141, 109, 101, 109, 103, 107, 104, 110, 116, 111, 119, 108, 105, 103, 107, 117, 102, 119, 117, 108, 96, 108, 122, 118, 111, 123, 106, 114, 111, 104, 104, 106, 108, 102, 104, 108, 121, 108, 109, 104, 118, 105, 100, 123, 108, 96, 97, 110, 111, 111, 124, 110, 108, 96, 105, 111, 108, 106, 106, 118, 107, 106, 111, 116, 110, 105, 113, 103, 115, 116, 108, 107, 112, 107, 101, 107, 104, 109, 113, 104, 103, 119, 107, 103, 110, 107, 109, 113, 108, 120, 102, 120, 105, 113, 95, 109, 106, 106, 108, 101, 117, 121, 107, 109, 105, 110, 111, 108, 105, 105, 124, 94, 101, 103, 105, 108, 110, 111, 110, 101, 112, 105, 112, 119, 97, 120, 109, 104, 117, 112, 106, 108, 108, 126, 99, 108, 110, 112, 111, 113, 121, 118, 116, 118, 112, 124, 106, 108, 104, 107, 106, 110, 124, 105, 114, 114, 119, 107, 112, 113, 105, 110, 110, 108, 111, 119, 112, 107, 114, 96, 110, 117, 111, 105, 120, 111, 102, 116, 118, 117, 108, 105, 115, 99, 106, 105, 136, 116, 97, 98, 119, 98, 106, 107, 110, 106, 91, 117, 102, 108, 105, 112, 124, 98, 108, 102, 105, 104, 104, 107, 109, 118, 116, 108, 105, 109, 102, 113, 114, 109, 108, 127, 113, 103, 109, 109, 119, 107, 124, 119, 103, 113, 106, 100, 134, 104, 110, 112, 108, 104, 113, 108, 117, 111, 103, 98, 116, 110, 104, 102, 101, 109, 98, 112, 108, 112, 108, 107, 108, 94, 102, 115, 115, 103, 105, 111, 122, 105, 121, 116, 119, 108, 107, 111, 119, 107, 112, 111, 124, 100, 104, 107, 102, 110, 120, 96, 118, 100, 125, 117, 106, 107, 104, 104, 106, 118, 102, 120, 104, 110, 115, 113, 105, 110, 119, 104, 110, 102, 109, 111, 119, 105, 113, 103, 107, 106, 112, 103, 111, 107, 109, 103, 114, 109, 115, 109, 109, 112, 113, 111, 111, 110, 110, 101, 113, 103, 112, 121, 113, 120, 116, 108, 104, 104, 103, 112, 109, 120, 112, 105, 103, 111, 103, 109, 108, 109, 114, 103, 109, 106, 116, 107, 102, 106, 114, 106, 105, 109, 105, 107, 107, 103, 107, 101, 109, 96, 102, 118, 122, 105, 107, 107, 104, 109, 109, 106, 99, 120, 110, 108, 107, 112, 123, 109, 103, 109, 111, 108, 117, 120, 111, 106, 114, 108, 103, 114, 104, 111, 113, 112, 111, 102, 113, 105, 113, 111, 112, 111, 110, 129, 113, 115, 116, 113, 103, 107, 105, 110, 114, 98, 107, 110, 101, 108, 105, 113, 111, 112, 105, 101, 117, 107, 113, 115, 107, 112, 112, 108, 114, 113, 112, 116, 120, 115, 110, 117, 107, 108, 114, 109, 113, 110, 118, 101, 116, 121, 111, 101, 113, 103, 104, 113, 108, 109, 104, 108, 113, 107, 94, 108, 105, 125, 120, 106, 108, 102, 127, 119, 110, 108, 107, 111, 109, 110, 105, 113, 102, 110, 111, 113, 118, 109, 107, 97, 115, 98, 108, 111, 102, 120, 114, 116, 114, 107, 108, 112, 106, 116, 108, 108, 110, 108, 120, 109, 104, 110, 101, 109, 112, 117, 115, 106, 111, 107, 108, 116, 113, 115, 110, 112, 104, 112, 110, 104, 109, 111, 101, 103, 111, 108, 104, 114, 118, 110, 96, 116, 117, 113, 88, 117, 104, 119, 106, 111, 118, 111, 100, 112, 113, 112, 111, 110, 116, 115, 113, 107, 107, 103, 110, 106, 118, 115, 107, 112, 109, 100, 105, 134, 105, 108, 107, 108, 119, 110, 109, 123, 116, 112, 113, 106, 111, 112, 104, 107, 111, 110, 109, 99, 116, 106, 114, 103, 111, 109, 113, 105, 112, 120, 112, 105, 115, 109, 110, 104, 115, 103, 87, 109, 105, 115, 129, 106, 101, 121, 111, 109, 116, 112, 109, 97, 106, 112, 100, 107, 106, 103, 109, 110, 104, 102, 110, 114, 106, 111, 123, 108, 109, 120, 119, 115, 116, 111, 108, 107, 120, 113, 114, 112, 115, 110, 127, 112, 113, 111, 116, 97, 106, 105, 107, 107, 109, 117, 123, 116, 130, 105, 130, 110, 108, 108, 105, 102, 117, 115, 109, 109, 113, 110, 114, 111, 108, 96, 98, 111, 113, 107, 102, 113, 104, 112, 114, 106, 112, 98, 105, 110, 93, 112, 110, 118, 108, 114, 107, 106, 107, 107, 103, 131, 111, 108, 104, 116, 103, 111, 118, 110, 110, 113, 112, 102, 121, 112, 98, 105, 118, 108, 108, 110, 100, 100, 107, 112, 112, 114, 112, 103, 114, 122, 108, 101, 112, 116, 111, 108, 117, 107, 110, 109, 113, 109, 113, 105, 109, 113, 115, 120, 103, 120, 113, 110, 108, 114, 120, 112, 106, 112, 123, 112, 107, 112, 111, 112, 109, 118, 109, 118, 105, 94, 123, 121, 119, 110, 100, 113, 113, 111, 107, 115, 103, 108, 109, 110, 109, 107, 115, 104, 111, 109, 112, 117, 121, 104, 117, 104, 106, 115, 109, 102, 113, 116, 118, 94, 106, 112, 106, 103, 107, 107, 99, 110, 113, 105, 107, 99, 113, 103, 109, 105, 122, 108, 103, 108, 107, 122, 107, 119, 111, 109, 112, 114, 113, 108, 117, 109, 118, 106, 108, 110, 112, 120, 112, 104, 114, 109, 116, 111, 110, 113, 113, 114, 98, 113, 112, 104, 109, 108, 108, 116, 110, 117, 110, 111, 100, 117, 105, 108, 116, 112, 102, 94, 100, 108, 112, 110, 114, 116, 105, 129, 110, 107, 113, 106, 103, 112, 108, 116, 116, 103, 110, 124, 107, 101, 113, 95, 110, 111, 113, 122, 102, 107, 114, 106, 109, 110, 113, 115, 108, 111, 110, 115, 117, 118, 111, 105, 118, 108, 103, 107, 106, 105, 101, 113, 104, 114, 100, 108, 111, 108, 103, 108, 118, 112, 127, 103, 109, 109, 110, 109, 112, 114, 96, 103, 113, 108, 110, 110, 98, 103, 105, 106, 110, 106, 112, 108, 109, 125, 107, 106, 106, 114, 109, 114, 113, 107, 116, 92, 109, 105, 112, 116, 108, 104, 109, 115, 113, 109, 115, 106, 111, 114, 100, 108, 119, 107, 110, 109, 111, 108, 96, 106, 108, 111, 104, 103, 105, 103, 112, 119, 111, 103, 102, 111, 111, 91, 104, 103, 123, 109, 105, 105, 110, 113, 109, 109, 100, 113, 110, 109, 111, 109, 106, 113, 105, 109, 116, 123, 108, 116, 106, 115, 106, 103, 107, 112, 109, 103, 109, 110, 119, 113, 104, 113, 115, 105, 106, 108, 108, 114, 107, 110, 97, 103, 108, 109, 114, 110, 91, 109, 110, 118, 104, 110, 115, 105, 104, 108, 115, 109, 99, 134, 112, 107, 111, 104, 113, 97, 124, 108, 103, 120, 110, 109, 109, 109, 110, 121, 109, 106, 118, 109, 113, 107, 114, 126, 104, 113, 107, 121, 104, 111, 103, 118, 102, 110, 105, 113, 116, 110, 111, 116, 108, 112, 114, 115, 115, 106, 104, 110, 99, 101, 107, 100, 114, 102, 112, 100, 116, 105, 104, 115, 111, 111, 104, 98, 103, 101, 113, 112, 106, 108, 116, 107, 106, 107, 116, 118, 109, 106, 105, 111, 112, 107, 103, 109, 123, 111, 144, 111, 111, 110, 105, 110, 107, 97, 119, 133, 113, 112, 102, 118, 116, 102, 106, 115, 106, 115, 114, 113, 115, 115, 110, 105, 116, 104, 115, 108, 100, 116, 110, 106, 107, 104, 100, 117, 104, 109, 107, 108, 101, 104, 124, 117, 110, 116, 120, 112, 100, 109, 121, 113, 109, 122, 113, 111, 104, 105, 111, 108, 116, 108, 113, 107, 104, 111, 107, 111, 107, 115, 111, 111, 133, 96, 109, 113, 107, 108, 107, 107, 103, 98, 110, 108, 111, 108, 110, 104, 105, 112, 111, 108, 103, 105, 105, 111, 116, 113, 107, 110, 111, 106, 108, 110, 114, 108, 108, 115, 100, 115, 110, 106, 100, 108, 124, 116, 109, 109, 103, 114, 119, 102, 113, 109, 105, 111, 113, 114, 95, 126, 106, 107, 109, 104, 110, 114, 116, 104, 122, 118, 119, 105, 109, 112, 114, 115, 109, 121, 106, 116, 102, 124, 104, 107, 117, 114, 117, 109, 111, 104, 105, 110, 108, 108, 105, 112, 105, 107, 113, 117, 98, 100, 102, 118, 102, 123, 96, 126, 115, 105, 111, 106, 109, 110, 106, 105, 104, 114, 110, 115, 101, 110, 108, 109, 106, 112, 110, 110, 115, 109, 113, 104, 97, 115, 103, 114, 100, 115, 112, 111, 120, 105, 107, 118, 109, 111, 110, 112, 116, 110, 104, 111, 105, 112, 105, 113, 107, 112, 116, 109, 110, 105, 97, 109, 116, 115, 112, 118, 103, 121, 106, 108, 112, 123, 115, 105, 107, 106, 110, 111, 106, 103, 107, 118, 106, 119, 113, 113, 118, 115, 113, 116, 109, 114, 106, 110, 111, 104, 107, 116, 108, 112, 111, 111, 111, 109, 107, 102, 113, 111, 110, 109, 120, 115, 112, 107, 112, 110, 110, 102, 106, 113, 105, 115, 104, 104, 108, 107, 109, 109, 112, 112, 114, 100, 111, 110, 104, 110, 107, 114, 110, 103, 104, 110, 110, 113, 108, 110, 109, 103, 113, 107, 112, 111, 109, 112, 117, 110, 113, 111, 107, 112, 107, 107, 108, 115, 102, 112, 117, 107, 106, 112, 106, 106, 106, 113, 113, 107, 110, 111, 112, 111, 107, 115, 112, 110, 110, 121, 114, 106, 107, 107, 111, 109, 113, 120, 121, 109, 115, 102, 112, 111, 111, 111, 118, 108, 112, 113, 109, 108, 115, 112, 114, 109, 114, 116, 112, 110, 109, 113, 108, 110, 111, 115, 115, 111, 112, 114, 108, 112, 107, 107, 109, 115, 105, 110, 113, 111, 100, 106, 110, 111, 111, 110, 108, 111, 119, 109, 104, 112, 110, 108, 110, 113, 111, 106, 110, 118, 109, 105, 98, 108, 110, 108, 110, 104, 109, 110, 107, 110, 111, 111, 116, 115, 111, 106, 109, 93, 115, 106, 109, 108, 108, 118, 109, 107, 111, 134, 107, 107, 105, 111, 116, 109, 112, 109, 104, 107, 109, 108, 111, 107, 100, 105, 108, 114, 113, 116, 119, 100, 109, 109, 110, 110, 105, 109, 107, 108, 108, 110, 113, 109, 118, 114, 108, 102, 109, 108, 115, 111, 111, 111, 114, 108, 111, 106, 112, 120, 102, 112, 110, 111, 109, 110, 110, 112, 110, 106, 114, 111, 114, 107, 109, 105, 114, 109, 109, 108, 117, 110, 113, 109, 112, 113, 120, 111, 105, 111, 109, 109, 114, 107, 106, 109, 116, 106, 109, 108, 107, 112, 105, 112, 115, 108, 113, 111, 115, 105, 111, 100, 112, 106, 110, 113, 106, 113, 107, 101, 117, 105, 115, 112, 105, 113, 109, 107, 107, 111, 105, 113, 111, 109, 113, 112, 111, 107, 115, 110, 108, 121, 114, 108, 109, 110, 113, 105, 114, 108, 101, 107, 108, 105, 107, 113, 117, 107, 113, 112, 112, 105, 109, 112, 109, 110, 110, 111, 111, 112, 112, 106, 109, 114, 98, 110, 106, 111, 114, 117, 109, 117, 106, 109, 107, 118, 113, 112, 103, 106, 109, 111, 107, 105, 128, 107, 109, 108, 107, 119, 108, 99, 108, 113, 115, 113, 111, 107, 108, 119, 103, 109, 116, 114, 106, 105, 114, 114, 102, 110, 115, 110, 112, 111, 110, 107, 111, 117, 115, 107, 109, 112, 110, 119, 112, 110, 110, 110, 102, 115, 115, 112, 104, 103, 108, 100, 112, 109, 133, 107, 117, 127, 108, 107, 103, 103, 114, 109, 111, 111, 112, 106, 111, 108, 111, 108, 119, 100, 111, 117, 137, 118, 112, 103, 114, 105, 101, 102, 108, 111, 114, 110, 110, 107, 108, 110, 124, 113, 109, 103, 106, 103, 104, 112, 110, 111, 114, 108, 105, 112, 115, 109, 111, 106, 103, 114, 107, 111, 111, 105, 107, 111, 111, 108, 110, 105, 109, 110, 101, 110, 116, 109, 111, 112, 123, 112, 110, 113, 107, 105, 103, 105, 116, 112, 119, 106, 115, 110, 111, 112, 112, 118, 107, 106, 108, 103, 108, 113, 109, 105, 112, 104, 101, 106, 103, 104, 114, 113, 116, 105, 114, 134, 107, 100, 115, 104, 111, 105, 109, 99, 119, 122, 109, 106, 105, 100, 107, 109, 98, 105, 109, 118, 116, 105, 108, 108, 111, 108, 120, 108, 105, 118, 109, 107, 103, 102, 121, 102, 102, 133, 122, 113, 106, 99, 122, 113, 104, 116, 117, 112, 126, 113, 102, 106, 113, 100, 108, 106, 99, 112, 114, 120, 119, 109, 117, 111, 117, 110, 112, 119, 124, 112, 105, 112, 107, 111, 103, 108, 104, 114, 122, 110, 118, 106, 114, 118, 107, 122, 114, 99, 121, 110, 116, 126, 108, 89, 99, 116, 109, 117, 118, 103, 102, 103, 114, 120, 109, 109, 102, 114, 105, 107, 108, 105, 107, 116, 107, 109, 119, 106, 113, 111, 110, 114, 114, 114, 108, 111, 109, 106, 108, 116, 116, 105, 111, 111, 107, 114, 100, 111, 100, 109, 102, 107, 108, 119, 116, 104, 108, 110, 109, 107, 117, 116, 121, 110, 108, 111, 104, 118, 97, 112, 108, 102, 113, 104, 109, 109, 110, 109, 101, 106, 108, 106, 114, 107, 105, 109, 111, 108, 109, 117, 116, 110, 106, 109, 105, 108, 111, 98, 120, 112, 113, 109, 115, 112, 115, 102, 120, 100, 106, 102, 103, 111, 117, 101, 101, 107, 102, 103, 115, 102, 106, 111, 107, 117, 100, 115, 107, 105, 116, 97, 110, 101, 115, 101, 121, 110, 109, 113, 112, 119, 116, 110, 104, 103, 118, 107, 103, 111, 119, 108, 118, 99, 103, 116, 109, 109, 114, 105, 106, 114, 112, 107, 92, 106, 106, 107, 113, 107, 103, 116, 108, 108, 116, 104, 111, 125, 113, 120, 105, 120, 119, 118, 118, 116, 107, 117, 110, 112, 126, 112, 110, 109, 115, 111, 125, 100, 116, 106, 114, 100, 122, 108, 108, 98, 102, 102, 112, 105, 113, 111, 106, 114, 106, 110, 114, 112, 117, 104, 104, 106, 117, 110, 96, 96, 116, 105, 115, 114, 115, 120, 116, 105, 105, 111, 123, 103, 125, 115, 122, 114, 102, 103, 100, 107, 105, 98, 117, 100, 107, 108, 100, 107, 97, 115, 114, 112, 106, 102, 108, 104, 114, 106, 112, 110, 106, 110, 105, 107, 116, 108, 115, 108, 110, 118, 97, 106, 118, 115, 106, 114, 110, 102, 117, 105, 112, 111, 118, 110, 115, 116, 107, 110, 109, 106, 108, 116, 111, 108, 116, 117, 122, 111, 104, 114, 107, 118, 112, 112, 106, 115, 101, 114, 105, 107, 109, 111, 113, 116, 117, 112, 108, 110, 115, 116, 112, 104, 100, 106, 104, 107, 126, 106, 110, 104, 109, 106, 112, 113, 105, 105, 110, 104, 112, 115, 115, 113, 103, 105, 104, 115, 115, 112, 112, 109, 105, 96, 100, 115, 124, 108, 114, 107, 116, 109, 107, 108, 109, 117, 103, 106, 109, 102, 110, 107, 116, 109, 107, 119, 105, 111, 106, 111, 109, 106, 113, 109, 115, 109, 112, 111, 109, 110, 113, 108, 109, 113, 114, 113, 113, 113, 112, 113, 104, 95, 109, 128, 105, 111, 109, 112, 111, 112, 108, 108, 110, 111, 108, 112, 105, 107, 108, 115, 118, 115, 106, 107, 109, 111, 114, 111, 110, 109, 111, 114, 113, 114, 86, 117, 107, 113, 112, 108, 113, 109, 107, 114, 108, 109, 114, 115, 111, 105, 110, 109, 111, 109, 111, 110, 111, 106, 113, 108, 112, 112, 112, 111, 111, 109, 109, 114, 109, 110, 111, 108, 111, 108, 109, 110, 110, 110, 108, 112, 104, 113, 111, 114, 116, 112, 111, 97, 72, 110, 113, 109, 114, 116, 111, 111, 111, 109, 113, 110, 110, 110, 115, 109, 108, 105, 105, 111, 109, 109, 76, 111, 112, 124, 111, 111, 110, 107, 109, 112, 106, 110, 108, 112, 114, 106, 108, 108, 110, 112, 99, 110, 114, 106, 115, 110, 109, 110, 111, 112, 110, 108, 109, 111, 111, 109, 109, 112, 112, 114, 113, 114, 110, 109, 112, 108, 111, 111, 111, 113, 111, 109, 105, 107, 110, 113, 110, 118, 111, 115, 114, 110, 115, 109, 110, 110, 108, 111, 109, 116, 107, 114, 109, 109, 111, 108, 109, 113, 116, 109, 114, 110, 114, 110, 110, 113, 112, 111, 106, 109, 112, 110, 114, 113, 111, 114, 113, 109, 112, 110, 112, 110, 109, 110, 113, 122, 106, 110, 111, 110, 111, 110, 115, 111, 107, 107, 111, 129, 108, 109, 116, 108, 110, 109, 114, 113, 112, 108, 109, 111, 112, 110, 112, 109, 111, 116, 114, 114, 108, 110, 106, 112, 113, 114, 103, 108, 112, 112, 113, 109, 112, 108, 109, 108, 110, 109, 110, 111, 114, 107, 114, 107, 113, 110, 108, 108, 108, 109, 109, 112, 113, 115, 113, 112, 109, 109, 105, 112, 113, 109, 108, 110, 113, 113, 110, 110, 110, 110, 99, 113, 114, 107, 76, 114, 110, 113, 113, 108, 113, 110, 108, 104, 109, 112, 106, 108, 109, 111, 113, 113, 107, 113, 110, 115, 104, 108, 110, 108, 111, 110, 107, 110, 96, 110, 108, 117, 122, 108, 109, 111, 149, 111, 110, 109, 123, 114, 112, 107, 107, 113, 106, 100, 107, 110, 113, 110, 114, 107, 118, 110, 108, 108, 111, 111, 112, 110, 108, 112, 106, 110, 109, 107, 110, 109, 111, 110, 113, 107, 107, 108, 107, 110, 110, 110, 105, 110, 111, 107, 112, 112, 114, 108, 112, 109, 110, 108, 109, 113, 112, 113, 110, 108, 108, 111, 106, 112, 110, 109, 110, 108, 108, 109, 110, 115, 111, 110, 114, 114, 111, 113, 111, 113, 109, 109, 115, 111, 112, 111, 97, 108, 111, 110, 109, 113, 108, 112, 110, 116, 108, 112, 109, 108, 113, 110, 113, 115, 112, 112, 110, 101, 108, 120, 111, 110, 114, 110, 112, 113, 112, 111, 109, 114, 110, 108, 104, 109, 113, 116, 110, 111, 108, 111, 112, 110, 112, 107, 109, 111, 110, 109, 110, 113, 110, 110, 115, 108, 111, 108, 107, 108, 117, 107, 111, 107, 108, 110, 111, 107, 112, 108, 109, 110, 107, 110, 109, 111, 115, 111, 111, 113, 103, 107, 115, 120, 111, 107, 116, 112, 110, 109, 111, 111, 111, 109, 108, 110, 110, 113, 112, 115, 130, 101, 114, 110, 118, 112, 115, 109, 116, 92, 108, 105, 109, 111, 107, 104, 114, 109, 110, 106, 108, 110, 112, 110, 113, 111, 109, 108, 105, 111, 109, 111, 116, 110, 109, 111, 111, 109, 112, 107, 110, 103, 106, 108, 109, 106, 112, 111, 113, 109, 115, 106, 118, 113, 110, 109, 108, 113, 108, 112, 112, 111, 103, 113, 113, 111, 112, 110, 115, 109, 105, 111, 109, 113, 111, 111, 110, 103, 114, 108, 111, 111, 110, 114, 105, 112, 110, 111, 126, 109, 115, 108, 114, 116, 109, 142, 112, 105, 107, 110, 108, 113, 119, 107, 113, 115, 96, 110, 113, 112, 109, 122, 112, 111, 112, 110, 113, 110, 108, 108, 110, 116, 108, 108, 110, 108, 106, 110, 109, 112, 112, 112, 112, 113, 108, 109, 107, 111, 110, 115, 98, 114, 107, 110, 109, 109, 102, 109, 114, 109, 113, 107, 108, 110, 113, 107, 111, 103, 108, 108, 108, 113, 104, 110, 109, 111, 108, 109, 111, 104, 116, 108, 111, 112, 106, 120, 112, 120, 101, 107, 115, 112, 107, 109, 110, 116, 109, 109, 109, 112, 102, 111, 113, 117, 106, 108, 103, 113, 109, 108, 109, 108, 107, 105, 114, 112, 111, 108, 111, 113, 106, 110, 112, 107, 114, 112, 116, 110, 115, 114, 112, 110, 111, 113, 112, 115, 114, 111, 113, 107, 110, 111, 99, 112, 112, 105, 104, 109, 118, 115, 108, 106, 109, 100, 110, 108, 107, 107, 107, 116, 111, 106, 109, 109, 127, 109, 111, 110, 109, 108, 111, 109, 110, 116, 112, 108, 110, 114, 113, 107, 110, 112, 114, 112, 112, 110, 110, 105, 107, 115, 106, 106, 112, 108, 112, 111, 106, 115, 111, 107, 107, 112, 111, 110, 107, 110, 110, 109, 109, 108, 113, 110, 109, 111, 116, 108, 113, 111, 110, 106, 112, 111, 109, 110, 114, 110, 114, 111, 108, 92, 112, 113, 107, 109, 109, 112, 98, 113, 106, 110, 106, 107, 100, 85, 108, 111, 110, 117, 100, 108, 120, 113, 115, 111, 113, 113, 111, 113, 108, 110, 113, 111, 114, 107, 103, 109, 113, 111, 113, 112, 113, 109, 110, 110, 112, 113, 109, 109, 111, 107, 108, 108, 108, 110, 109, 108, 108, 109, 110, 111, 114, 109, 105, 111, 116, 109, 115, 108, 112, 114, 108, 110, 107, 109, 120, 112, 110, 108, 101, 113, 108, 109, 110, 111, 108, 113, 108, 107, 114, 108, 105, 108, 108, 109, 110, 104, 111, 109, 110, 104, 110, 113, 113, 107, 110, 110, 113, 107, 111, 113, 110, 108, 110, 107, 111, 110, 112, 83, 110, 113, 110, 112, 111, 112, 106, 116, 107, 116, 110, 106, 111, 109, 109, 110, 109, 113, 113, 94, 116, 112, 109, 109, 112, 104, 113, 109, 106, 107, 104, 113, 108, 107, 105, 117, 99, 112, 102, 103, 100, 111, 112, 112, 104, 111, 114, 115, 110, 102, 118, 105, 111, 110, 109, 121, 112, 103, 117, 119, 114, 105, 115, 112, 124, 107, 109, 98, 114, 108, 101, 106, 112, 100, 117, 104, 117, 110, 114, 110, 98, 109, 100, 108, 114, 107, 114, 110, 114, 114, 104, 111, 118, 111, 118, 116, 112, 102, 121, 108, 107, 106, 97, 112, 115, 107, 112, 101, 107, 111, 106, 108, 111, 116, 119, 110, 115, 110, 112, 117, 97, 113, 101, 101, 102, 105, 108, 98, 110, 103, 113, 108, 93, 111, 111, 110, 109, 112, 113, 111, 101, 101, 102, 99, 113, 111, 102, 112, 106, 117, 103, 114, 112, 108, 121, 108, 119, 137, 113, 112, 103, 132, 118, 112, 110, 137, 118, 122, 108, 107, 100, 116, 120, 115, 117, 102, 124, 115, 108, 98, 118, 110, 103, 102, 102, 111, 105, 107, 105, 111, 112, 105, 113, 102, 110, 101, 109, 118, 126, 113, 94, 124, 108, 109, 116, 111, 113, 110, 109, 113, 103, 114, 110, 109, 114, 107, 128, 96, 112, 109, 116, 106, 114, 106, 109, 117, 100, 117, 113, 113, 102, 111, 107, 101, 102, 106, 107, 105, 107, 116, 92, 105, 97, 110, 111, 112, 135, 112, 112, 104, 103, 110, 109, 114, 107, 114, 104, 103, 116, 111, 104, 118, 104, 107, 113, 107, 122, 95, 110, 111, 115, 111, 103, 111, 103, 112, 105, 107, 117, 111, 106, 124, 134, 109, 106, 112, 109, 112, 112, 109, 98, 101, 106, 107, 108, 98, 106, 119, 106, 104, 105, 112, 113, 114, 108, 115, 110, 110, 104, 122, 116, 110, 113, 110, 108, 104, 91, 123, 115, 105, 107, 117, 106, 108, 105, 107, 106, 99, 113, 100, 100, 103, 108, 106, 117, 110, 112, 100, 104, 109, 102, 112, 109, 112, 105, 108, 116, 114, 106, 103, 123, 113, 112, 106, 113, 108, 119, 110, 109, 109, 106, 102, 93, 111, 115, 109, 104, 102, 110, 102, 112, 109, 105, 122, 110, 116, 103, 107, 109, 113, 109, 107, 102, 109, 109, 109, 112, 109, 117, 107, 111, 117, 115, 100, 111, 114, 105, 108, 107, 107, 117, 107, 114, 109, 116, 108, 93, 101, 113, 111, 116, 107, 106, 105, 106, 117, 122, 107, 106, 109, 114, 104, 131, 108, 108, 110, 120, 106, 87, 107, 110, 120, 109, 113, 117, 109, 110, 104, 117, 112, 104, 111, 106, 108, 102, 114, 110, 109, 129, 124, 117, 122, 124, 116, 110, 109, 113, 112, 110, 105, 119, 108, 112, 112, 106, 144, 114, 123, 115, 108, 110, 104, 102, 116, 110, 111, 110, 109, 108, 119, 109, 112, 117, 122, 110, 102, 103, 113, 112, 104, 107, 106, 108, 105, 116, 112, 116, 120, 106, 112, 120, 102, 113, 109, 108, 103, 106, 116, 122, 99, 115, 115, 107, 109, 106, 118, 104, 112, 104, 116, 109, 118, 115, 106, 113, 106, 110, 114, 123, 110, 103, 112, 105, 117, 132, 113, 106, 114, 113, 109, 105, 106, 105, 96, 110, 120, 121, 102, 107, 108, 112, 120, 110, 107, 111, 113, 112, 112, 110, 111, 120, 120, 103, 115, 114, 114, 112, 113, 110, 108, 108, 106, 113, 111, 112, 108, 107, 97, 106, 117, 108, 107, 109, 109, 103, 119, 104, 112, 114, 111, 112, 108, 119, 115, 109, 104, 98, 109, 101, 111, 109, 104, 109, 111, 107, 108, 113, 107, 104, 108, 111, 103, 116, 104, 101, 115, 112, 111, 117, 109, 108, 108, 99, 119, 116, 106, 109, 109, 119, 109, 105, 104, 105, 112, 112, 112, 113, 106, 103, 114, 110, 102, 111, 114, 110, 115, 109, 107, 110, 108, 115, 106, 109, 114, 116, 110, 115, 105, 115, 114, 111, 106, 100, 111, 117, 105, 107, 107, 110, 113, 110, 112, 101, 114, 105, 112, 116, 112, 107, 110, 107, 106, 107, 105, 113, 111, 106, 110, 103, 111, 105, 100, 109, 115, 105, 110, 119, 112, 109, 109, 110, 106, 113, 111, 104, 115, 115, 115, 98, 110, 107, 118, 116, 114, 103, 99, 112, 109, 107, 105, 101, 102, 120, 117, 110, 116, 106, 117, 96, 117, 109, 112, 115, 113, 113, 106, 115, 97, 110, 97, 121, 107, 105, 109, 113, 117, 108, 110, 107, 106, 111, 116, 117, 103, 104, 109, 109, 102, 112, 113, 109, 105, 116, 104, 104, 113, 104, 114, 114, 110, 111, 104, 110, 109, 102, 109, 106, 109, 116, 105, 123, 105, 106, 108, 115, 108, 114, 114, 112, 108, 116, 109, 102, 109, 110, 111, 107, 96, 118, 112, 115, 110, 106, 115, 104, 118, 107, 106, 111, 109, 99, 110, 110, 109, 115, 114, 102, 112, 110, 105, 110, 105, 108, 112, 113, 110, 106, 110, 112, 99, 116, 109, 111, 118, 120, 113, 122, 113, 112, 104, 112, 108, 107, 112, 115, 106, 126, 109, 111, 112, 122, 104, 109, 115, 107, 107, 115, 109, 114, 109, 111, 112, 104, 110, 113, 104, 107, 106, 115, 108, 108, 117, 111, 117, 107, 111, 110, 116, 105, 113, 117, 110, 111, 109, 112, 112, 105, 108, 107, 101, 104, 112, 109, 97, 105, 111, 107, 110, 110, 106, 106, 109, 115, 109, 107, 116, 107, 120, 112, 106, 114, 115, 109, 112, 114, 107, 108, 118, 104, 111, 110, 110, 107, 115, 103, 126, 107, 115, 111, 112, 108, 113, 117, 107, 113, 119, 109, 102, 106, 98, 107, 115, 111, 107, 103, 121, 115, 113, 110, 112, 113, 110, 106, 105, 115, 110, 111, 102, 113, 116, 109, 114, 103, 107, 101, 117, 115, 103, 107, 102, 111, 112, 131, 119, 115, 109, 106, 117, 115, 114, 106, 133, 111, 108, 107, 114, 114, 102, 108, 127, 119, 106, 103, 118, 106, 113, 106, 109, 112, 112, 123, 109, 116, 109, 106, 107, 108, 107, 111, 112, 118, 103, 113, 109, 101, 99, 110, 114, 111, 115, 105, 106, 110, 108, 116, 120, 106, 103, 115, 119, 106, 109, 97, 110, 107, 110, 108, 113, 109, 109, 108, 102, 102, 111, 111, 105, 110, 104, 112, 110, 111, 106, 112, 114, 116, 102, 89, 108, 114, 109, 109, 94, 111, 112, 111, 109, 104, 111, 116, 101, 113, 108, 100, 107, 110, 114, 100, 89, 123, 115, 114, 109, 109, 111, 107, 105, 106, 111, 108, 112, 112, 106, 111, 108, 113, 124, 109, 113, 112, 110, 115, 107, 114, 114, 110, 103, 108, 110, 113, 110, 109, 109, 110, 124, 115, 113, 110, 94, 112, 109, 107, 110, 112, 114, 115, 140, 107, 112, 97, 114, 110, 117, 105, 97, 106, 112, 112, 111, 121, 108, 108, 103, 115, 105, 107, 112, 110, 111, 111, 106, 112, 110, 120, 107, 112, 102, 110, 106, 111, 103, 110, 109, 118, 101, 114, 108, 113, 110, 116, 117, 110, 112, 111, 108, 112, 118, 113, 114, 107, 107, 107, 112, 116, 118, 111, 110, 105, 111, 107, 108, 108, 110, 109, 114, 110, 114, 113, 114, 112, 110, 114, 112, 114, 113, 109, 108, 108, 108, 114, 114, 110, 112, 108, 107, 103, 110, 109, 111, 104, 111, 113, 98, 109, 108, 108, 108, 120, 108, 120, 111, 111, 105, 107, 109, 110, 103, 108, 111, 112, 115, 112, 107, 104, 120, 106, 111, 107, 112, 106, 112, 101, 106, 110, 109, 111, 109, 111, 105, 111, 109, 110, 109, 112, 106, 113, 108, 105, 114, 114, 110, 113, 114, 112, 112, 106, 109, 95, 113, 114, 114, 102, 114, 112, 106, 106, 109, 113, 107, 114, 113, 116, 109, 111, 122, 112, 114, 111, 112, 108, 109, 113, 114, 104, 106, 111, 110, 109, 117, 110, 108, 114, 106, 109, 102, 105, 107, 105, 110, 112, 105, 115, 108, 109, 107, 111, 109, 101, 110, 120, 109, 108, 114, 108, 115, 107, 112, 115, 112, 106, 107, 109, 107, 114, 107, 111, 129, 109, 109, 107, 107, 113, 112, 107, 110, 111, 108, 106, 101, 114, 116, 107, 108, 101, 113, 113, 109, 107, 103, 112, 108, 113, 111, 111, 106, 109, 111, 107, 113, 120, 109, 113, 120, 115, 123, 106, 122, 108, 109, 109, 115, 118, 111, 114, 113, 111, 109, 90, 113, 112, 117, 109, 111, 111, 115, 105, 115, 109, 111, 114, 107, 113, 107, 114, 103, 112, 112, 110, 113, 114, 108, 117, 101, 105, 121, 107, 108, 105, 110, 102, 105, 107, 108, 114, 143, 106, 107, 108, 109, 113, 108, 109, 118, 105, 100, 108, 107, 111, 116, 111, 112, 109, 111, 106, 108, 113, 95, 101, 105, 113, 101, 106, 108, 114, 109, 113, 112, 110, 110, 102, 109, 112, 114, 107, 108, 108, 109, 103, 109, 109, 112, 113, 109, 112, 105, 109, 103, 107, 106, 107, 108, 108, 114, 121, 110, 112, 120, 107, 108, 106, 107, 131, 107, 115, 112, 104, 113, 107, 111, 113, 94, 116, 112, 116, 105, 111, 119, 104, 119, 109, 116, 115, 108, 106, 110, 112, 129, 104, 112, 108, 116, 93, 117, 108, 111, 112, 113, 109, 111, 109, 109, 111, 109, 107, 118, 104, 106, 115, 111, 112, 112, 106, 122, 109, 113, 114, 108, 108, 106, 107, 114, 112, 107, 91, 107, 113, 113, 109, 104, 112, 109, 107, 115, 107, 110, 109, 120, 112, 111, 114, 122, 111, 115, 118, 111, 118, 105, 113, 109, 112, 120, 120, 119, 111, 104, 105, 106, 103, 109, 120, 110, 100, 110, 102, 111, 114, 109, 107, 106, 112, 109, 107, 115, 126, 108, 103, 107, 103, 117, 105, 110, 105, 115, 98, 103, 116, 116, 114, 106, 110, 109, 110, 105, 102, 103, 105, 109, 113, 110, 107, 109, 117, 113, 110, 114, 111, 104, 117, 109, 103, 116, 108, 110, 109, 117, 116, 107, 108, 108, 107, 83, 101, 109, 102, 118, 112, 114, 115, 114, 113, 113, 110, 109, 112, 113, 113, 108, 114, 113, 116, 112, 106, 106, 109, 105, 105, 101, 112, 110, 111, 112, 107, 110, 114, 106, 108, 119, 104, 106, 105, 111, 117, 112, 113, 143, 113, 96, 109, 119, 100, 110, 117, 113, 114, 111, 110, 105, 97, 119, 111, 108, 105, 120, 110, 105, 107, 112, 104, 110, 101, 116, 109, 100, 112, 112, 118, 133, 126, 103, 113, 106, 113, 105, 109, 111, 113, 111, 110, 112, 98, 110, 79, 112, 113, 116, 110, 106, 116, 109, 111, 107, 113, 114, 113, 106, 114, 123, 116, 109, 111, 111, 103, 110, 106, 111, 111, 121, 117, 111, 112, 108, 112, 119, 106, 112, 108, 106, 103, 107, 106, 112, 105, 105, 114, 108, 102, 111, 109, 116, 109, 89, 104, 116, 105, 104, 101, 116, 119, 107, 114, 100, 110, 99, 113, 111, 96, 105, 111, 104, 108, 94, 104, 125, 112, 114, 110, 110, 108, 118, 106, 111, 108, 97, 110, 102, 100, 107, 111, 111, 115, 113, 107, 115, 112, 113, 111, 110, 115, 110, 122, 107, 109, 112, 117, 93, 115, 105, 116, 112, 123, 107, 109, 114, 112, 102, 100, 100, 108, 106, 101, 110, 110, 117, 111, 99, 119, 109, 123, 110, 106, 104, 110, 105, 112, 112, 118, 102, 113, 103, 109, 108, 117, 109, 114, 117, 117, 116, 101, 118, 107, 112, 113, 106, 102, 113, 105, 112, 108, 106, 116, 103, 107, 116, 110, 110, 99, 111, 112, 111, 110, 110, 106, 105, 112, 111, 91, 109, 93, 105, 109, 114, 112, 113, 106, 110, 108, 107, 109, 107, 110, 107, 108, 114, 97, 122, 105, 106, 125, 124, 113, 116, 100, 107, 122, 111, 112, 111, 113, 107, 118, 117, 105, 113, 115, 111, 94, 112, 112, 115, 113, 100, 107, 110, 113, 119, 107, 110, 120, 110, 103, 112, 112, 119, 111, 112, 112, 111, 108, 102, 120, 115, 117, 118, 108, 127, 105, 109, 98, 116, 104, 114, 107, 101, 106, 103, 107, 108, 112, 112, 113, 109, 115, 110, 103, 114, 102, 103, 114, 114, 125, 110, 109, 108, 112, 111, 106, 103, 112, 115, 110, 108, 112, 113, 114, 106, 111, 111, 117, 112, 105, 115, 104, 113, 106, 108, 106, 113, 110, 109, 111, 110, 102, 112, 119, 105, 109, 111, 118, 96, 112, 109, 112, 126, 118, 113, 108, 116, 105, 115, 115, 107, 109, 114, 104, 112, 109, 104, 111, 108, 109, 111, 113, 111, 116, 119, 115, 109, 104, 106, 103, 87, 113, 109, 106, 111, 108, 111, 117, 108, 110, 110, 112, 109, 110, 109, 108, 108, 108, 111, 110, 107, 113, 102, 109, 110, 111, 107, 111, 116, 112, 111, 103, 102, 113, 112, 113, 109, 111, 111, 112, 115, 109, 109, 106, 110, 105, 108, 113, 110, 110, 125, 103, 113, 112, 108, 110, 111, 114, 107, 119, 111, 112, 112, 112, 113, 110, 113, 110, 109, 108, 104, 106, 109, 112, 110, 115, 110, 109, 103, 114, 101, 112, 110, 108, 104, 110, 111, 101, 108, 97, 105, 113, 113, 108, 100, 111, 110, 106, 110, 112, 111, 112, 111, 110, 116, 100, 108, 108, 111, 108, 111, 108, 110, 112, 107, 108, 112, 111, 111, 116, 112, 110, 114, 112, 106, 111, 105, 106, 110, 108, 110, 114, 106, 109, 111, 116, 110, 109, 113, 109, 111, 114, 109, 111, 108, 110, 113, 111, 112, 113, 109, 112, 114, 110, 107, 110, 111, 110, 110, 112, 108, 112, 109, 112, 113, 104, 106, 115, 106, 111, 113, 107, 113, 110, 114, 109, 109, 108, 106, 110, 113, 111, 109, 113, 115, 112, 117, 108, 114, 106, 107, 113, 110, 111, 112, 112, 104, 112, 110, 113, 111, 113, 108, 95, 108, 107, 113, 110, 106, 118, 109, 111, 117, 109, 108, 115, 114, 112, 115, 108, 112, 106, 108, 113, 109, 110, 109, 111, 112, 107, 111, 111, 106, 109, 109, 104, 106, 106, 108, 112, 104, 109, 111, 113, 109, 113, 111, 115, 110, 107, 104, 106, 107, 107, 110, 113, 110, 111, 112, 115, 110, 110, 104, 98, 111, 109, 110, 111, 111, 110, 111, 110, 113, 107, 110, 107, 103, 116, 111, 112, 119, 107, 111, 108, 111, 108, 111, 108, 108, 103, 112, 112, 108, 106, 112, 111, 107, 118, 112, 108, 111, 102, 104, 106, 114, 113, 101, 108, 111, 110, 111, 107, 107, 110, 109, 112, 116, 110, 116, 106, 111, 115, 113, 112, 108, 107, 111, 111, 112, 111, 109, 107, 111, 107, 113, 110, 110, 112, 107, 111, 107, 115, 114, 106, 109, 110, 104, 116, 117, 110, 111, 109, 111, 112, 119, 109, 115, 111, 110, 105, 107, 114, 111, 107, 109, 109, 106, 110, 111, 110, 108, 112, 103, 109, 108, 107, 113, 114, 113, 113, 109, 110, 106, 113, 112, 113, 105, 112, 116, 110, 111, 113, 112, 114, 113, 111, 108, 107, 108, 112, 118, 106, 109, 112, 106, 114, 113, 108, 110, 110, 109, 108, 108, 109, 109, 112, 112, 107, 115, 106, 116, 103, 113, 114, 112, 108, 106, 106, 119, 110, 110, 107, 112, 113, 110, 109, 117, 97, 109, 105, 114, 106, 110, 108, 113, 114, 114, 109, 113, 113, 106, 113, 108, 111, 105, 119, 105, 117, 105, 111, 112, 107, 116, 113, 111, 116, 116, 117, 112, 98, 111, 112, 110, 111, 112, 112, 109, 108, 110, 112, 106, 106, 106, 112, 111, 108, 111, 114, 111, 112, 109, 107, 108, 109, 111, 106, 116, 108, 109, 111, 113, 112, 115, 104, 112, 112, 107, 111, 118, 93, 99, 115, 119, 106, 116, 112, 114, 117, 117, 120, 90, 106, 107, 113, 103, 105, 119, 107, 119, 111, 107, 103, 101, 116, 101, 118, 119, 126, 100, 110, 113, 107, 107, 110, 110, 97, 119, 109, 105, 115, 118, 102, 113, 116, 123, 115, 109, 111, 108, 114, 105, 115, 118, 105, 100, 110, 107, 107, 103, 112, 108, 99, 103, 116, 114, 112, 117, 106, 114, 99, 101, 118, 111, 106, 111, 114, 111, 109, 111, 139, 119, 99, 128, 104, 116, 113, 111, 107, 110, 108, 102, 96, 97, 114, 114, 110, 110, 112, 96, 100, 95, 107, 107, 108, 107, 99, 110, 101, 116, 117, 110, 111, 116, 110, 101, 114, 119, 109, 115, 114, 119, 115, 111, 117, 109, 126, 110, 109, 111, 106, 107, 115, 113, 111, 114, 115, 116, 105, 110, 106, 116, 113, 106, 113, 111, 104, 110, 115, 108, 113, 111, 112, 95, 102, 108, 100, 105, 113, 102, 114, 114, 103, 116, 116, 105, 110, 116, 107, 113, 101, 111, 107, 113, 99, 109, 115, 126, 105, 110, 109, 112, 109, 113, 107, 116, 125, 127, 105, 98, 111, 109, 107, 104, 113, 112, 109, 107, 119, 107, 98, 107, 105, 105, 111, 106, 105, 112, 104, 101, 115, 105, 106, 109, 108, 104, 109, 99, 112, 114, 110, 110, 100, 107, 122, 120, 111, 115, 117, 111, 109, 111, 108, 107, 113, 119, 112, 110, 114, 107, 115, 105, 107, 106, 111, 106, 112, 113, 114, 100, 93, 116, 103, 112, 112, 108, 115, 105, 104, 115, 116, 112, 103, 105, 112, 113, 113, 107, 103, 113, 114, 130, 115, 118, 97, 120, 112, 114, 109, 107, 106, 106, 107, 117, 99, 92, 111, 114, 125, 108, 95, 111, 101, 106, 118, 110, 98, 117, 110, 109, 129, 120, 109, 102, 108, 110, 99, 112, 96, 99, 114, 121, 100, 111, 107, 102, 108, 115, 102, 125, 96, 122, 116, 117, 113, 115, 122, 91, 112, 96, 107, 122, 105, 107, 102, 116, 97, 108, 133, 128, 98, 101, 102, 116, 124, 107, 111, 96, 109, 92, 117, 101, 109, 109, 110, 109, 113, 133, 102, 110, 100, 111, 115, 115, 99, 107, 104, 127, 103, 99, 111, 115, 108, 104, 108, 97, 111, 112, 115, 111, 109, 109, 115, 107, 111, 108, 111, 98, 115, 99, 107, 102, 110, 109, 111, 99, 93, 125, 120, 110, 101, 107, 122, 102, 111, 102, 104, 113, 113, 98, 111, 115, 111, 118, 105, 118, 120, 112, 96, 108, 105, 103, 99, 103, 105, 114, 113, 106, 120, 108, 130, 88, 121, 103, 98, 120, 110, 114, 111, 129, 121, 113, 128, 124, 112, 113, 113, 115, 107, 109, 110, 102, 108, 82, 115, 106, 118, 98, 112, 122, 110, 106, 110, 102, 105, 94, 114, 110, 107, 116, 111, 110, 105, 101, 118, 116, 109, 107, 101, 103, 103, 107, 102, 111, 108, 111, 109, 107, 107, 128, 115, 112, 103, 112, 111, 119, 106, 120, 109, 118, 105, 101, 109, 107, 115, 112, 124, 104, 117, 108, 109, 111, 110, 108, 110, 111, 119, 112, 110, 111, 110, 115, 113, 110, 102, 111, 111, 114, 105, 118, 119, 112, 109, 108, 115, 111, 113, 109, 110, 111, 112, 108, 110, 113, 115, 107, 108, 113, 108, 86, 117, 115, 111, 112, 107, 109, 119, 109, 106, 108, 109, 112, 108, 102, 112, 114, 113, 113, 111, 111, 115, 113, 105, 115, 110, 114, 108, 112, 111, 108, 112, 118, 111, 113, 112, 112, 110, 98, 114, 111, 105, 109, 108, 112, 111, 106, 103, 110, 112, 111, 111, 118, 108, 109, 110, 110, 111, 109, 104, 108, 91, 111, 109, 117, 118, 109, 113, 97, 157, 115, 112, 113, 124, 113, 106, 108, 111, 115, 116, 111, 113, 112, 107, 115, 108, 107, 100, 111, 113, 102, 112, 96, 114, 107, 112, 108, 111, 114, 108, 111, 121, 104, 112, 110, 101, 109, 105, 118, 112, 98, 110, 108, 111, 113, 98, 107, 110, 113, 109, 112, 109, 112, 111, 111, 108, 105, 116, 107, 113, 117, 114, 111, 113, 109, 108, 105, 108, 112, 123, 112, 113, 115, 104, 111, 113, 112, 116, 106, 108, 112, 115, 109, 109, 112, 112, 115, 112, 109, 114, 111, 114, 107, 111, 113, 110, 111, 113, 107, 112, 109, 111, 110, 110, 113, 107, 108, 103, 107, 110, 108, 113, 115, 109, 104, 108, 117, 112, 113, 108, 110, 117, 113, 111, 112, 122, 78, 111, 110, 109, 106, 107, 110, 113, 103, 108, 106, 105, 73, 112, 110, 115, 108, 114, 110, 105, 107, 117, 109, 114, 105, 110, 111, 110, 116, 111, 112, 109, 109, 106, 111, 128, 111, 109, 116, 111, 109, 103, 112, 97, 109, 111, 109, 115, 105, 111, 111, 111, 108, 111, 109, 112, 110, 104, 109, 113, 109, 109, 111, 113, 110, 109, 120, 112, 120, 109, 114, 107, 107, 113, 112, 112, 110, 110, 112, 110, 102, 112, 113, 141, 110, 111, 108, 112, 114, 105, 110, 113, 111, 107, 105, 109, 112, 103, 112, 111, 111, 110, 109, 107, 96, 108, 113, 118, 107, 113, 112, 106, 116, 110, 109, 111, 115, 120, 108, 111, 126, 119, 115, 109, 110, 100, 109, 112, 117, 103, 89, 113, 104, 110, 109, 100, 118, 111, 112, 102, 113, 101, 107, 109, 111, 120, 105, 109, 109, 114, 108, 110, 109, 112, 114, 110, 111, 106, 113, 102, 111, 113, 113, 112, 109, 109, 110, 110, 114, 112, 105, 114, 112, 125, 107, 112, 112, 108, 116, 107, 101, 111, 112, 117, 106, 110, 108, 109, 111, 113, 110, 111, 116, 108, 111, 111, 109, 111, 110, 107, 109, 110, 108, 109, 106, 112, 111, 110, 110, 110, 109, 119, 106, 93, 107, 110, 106, 111, 114, 113, 115, 112, 96, 113, 112, 119, 112, 111, 113, 108, 111, 110, 109, 111, 108, 109, 110, 108, 102, 109, 111, 111, 111, 111, 113, 112, 109, 114, 111, 110, 115, 113, 111, 109, 114, 109, 108, 109, 110, 113, 112, 109, 113, 108, 108, 114, 107, 109, 113, 110, 114, 96, 110, 112, 115, 112, 108, 111, 112, 96, 109, 109, 103, 129, 106, 105, 93, 111, 119, 112, 106, 108, 112, 125, 116, 112, 110, 106, 127, 107, 102, 98, 92, 101, 113, 110, 110, 121, 92, 113, 111, 112, 104, 96, 109, 100, 116, 113, 105, 104, 110, 114, 108, 118, 112, 107, 109, 103, 116, 130, 103, 96, 110, 114, 139, 101, 106, 108, 99, 103, 107, 104, 87, 117, 119, 103, 121, 99, 115, 89, 119, 114, 115, 110, 121, 113, 110, 113, 106, 128, 114, 98, 95, 109, 113, 108, 115, 109, 110, 95, 108, 112, 113, 93, 122, 110, 120, 103, 115, 101, 114, 104, 109, 111, 116, 111, 114, 113, 100, 141, 109, 97, 110, 101, 103, 108, 93, 124, 98, 106, 103, 111, 105, 112, 107, 128, 109, 115, 102, 104, 103, 106, 114, 117, 118, 118, 88, 115, 107, 122, 105, 103, 110, 118, 114, 115, 116, 109, 105, 91, 105, 96, 106, 109, 103, 104, 109, 106, 111, 108, 109, 108, 107, 117, 102, 113, 91, 114, 99, 109, 110, 114, 125, 102, 109, 107, 108, 106, 111, 108, 111, 114, 105, 93, 102, 106, 107, 107, 124, 113, 103, 97, 115, 104, 109, 114, 122, 96, 105, 107, 113, 114, 103, 112, 113, 109, 96, 105, 106, 114, 100, 105, 104, 108, 110, 108, 107, 127, 102, 113, 102, 103, 115, 102, 109, 113, 110, 109, 109, 88, 87, 107, 97, 103, 113, 119, 108, 103, 112, 105, 104, 114, 104, 108, 108, 111, 126, 112, 104, 104, 94, 105, 104, 122, 113, 101, 117, 101, 111, 108, 107, 121, 103, 115, 99, 105, 95, 107, 112, 101, 112, 108, 112, 115, 113, 114, 115, 105, 109, 117, 110, 103, 114, 108, 104, 103, 128, 114, 105, 112, 116, 109, 110, 116, 97, 99, 101, 125, 117, 104, 120, 113, 114, 97, 100, 121, 105, 89, 105, 106, 101, 104, 104, 113, 107, 117, 114, 101, 103, 116, 118, 112, 114, 105, 122, 116, 122, 112, 124, 98, 111, 113, 119, 105, 114, 98, 128, 103, 106, 104, 106, 101, 118, 110, 117, 108, 119, 119, 113, 119, 128, 97, 112, 108, 110, 104, 106, 110, 120, 98, 94, 106, 119, 111, 107, 112, 103, 100, 107, 95, 103, 106, 101, 104, 106, 114, 131, 110, 124, 106, 102, 120, 112, 110, 104, 113, 104, 110, 116, 107, 116, 101, 91, 96, 109, 95, 114, 105, 110, 111, 113, 117, 120, 106, 119, 93, 113, 109, 93, 109, 112, 105, 107, 109, 113, 114, 108, 110, 109, 112, 130, 114, 101, 101, 116, 106, 102, 100, 93, 113, 124, 115, 86, 106, 104, 109, 100, 97, 118, 108, 97, 118, 116, 106, 121, 111, 103, 108, 103, 114, 110, 118, 97, 113, 96, 118, 132, 107, 113, 123, 115, 105, 118, 110, 112, 114, 113, 112, 124, 123, 108, 108, 104, 110, 116, 111, 101, 103, 108, 105, 110, 114, 109, 115, 108, 104, 115, 104, 114, 112, 104, 101, 111, 107, 111, 104, 118, 99, 141, 99, 105, 111, 108, 120, 103, 100, 111, 105, 119, 111, 110, 112, 104, 107, 113, 112, 120, 107, 117, 114, 110, 118, 110, 108, 112, 113, 105, 108, 111, 109, 114, 100, 108, 109, 105, 111, 108, 109, 112, 109, 114, 109, 104, 115, 109, 108, 112, 112, 107, 114, 110, 107, 106, 114, 112, 115, 119, 106, 111, 104, 108, 114, 103, 111, 108, 110, 109, 108, 108, 114, 106, 112, 112, 110, 109, 112, 110, 114, 110, 113, 118, 115, 107, 99, 111, 115, 116, 113, 106, 114, 112, 105, 111, 107, 111, 113, 114, 114, 106, 113, 113, 114, 118, 111, 111, 112, 116, 111, 111, 107, 112, 111, 113, 113, 121, 112, 110, 113, 110, 113, 112, 114, 111, 108, 110, 109, 108, 106, 110, 106, 107, 110, 107, 115, 103, 108, 108, 115, 114, 111, 116, 115, 116, 106, 107, 118, 114, 117, 111, 109, 110, 111, 113, 117, 112, 104, 111, 128, 117, 110, 112, 110, 110, 109, 111, 115, 108, 109, 110, 108, 114, 110, 111, 111, 111, 109, 109, 115, 114, 110, 117, 113, 112, 112, 111, 113, 110, 117, 112, 120, 108, 117, 110, 108, 112, 110, 111, 111, 108, 115, 113, 108, 111, 118, 111, 111, 111, 111, 108, 108, 108, 110, 106, 104, 104, 102, 108, 104, 110, 115, 109, 108, 109, 110, 112, 107, 119, 108, 113, 114, 113, 109, 105, 109, 113, 113, 116, 110, 117, 109, 106, 105, 110, 110, 115, 109, 114, 115, 112, 107, 107, 110, 107, 120, 117, 107, 109, 108, 109, 107, 112, 108, 110, 111, 102, 113, 113, 111, 117, 109, 113, 110, 113, 108, 111, 121, 110, 118, 109, 112, 106, 112, 110, 109, 110, 113, 108, 116, 104, 117, 111, 100, 110, 118, 120, 111, 108, 112, 110, 113, 101, 117, 115, 109, 107, 110, 111, 111, 111, 109, 112, 111, 107, 108, 110, 112, 107, 110, 116, 112, 114, 110, 111, 109, 111, 108, 114, 107, 110, 109, 108, 104, 109, 111, 97, 101, 108, 112, 107, 116, 113, 109, 112, 108, 101, 104, 112, 112, 111, 109, 112, 114, 110, 111, 109, 107, 113, 115, 104, 109, 111, 107, 110, 116, 113, 113, 108, 103, 107, 110, 109, 109, 112, 106, 110, 113, 107, 114, 109, 116, 103, 112, 112, 109, 123, 106, 108, 110, 109, 110, 109, 108, 107, 108, 107, 118, 124, 110, 109, 112, 111, 108, 107, 109, 112, 112, 104, 114, 114, 114, 110, 113, 110, 111, 107, 102, 114, 114, 110, 108, 109, 102, 109, 117, 110, 111, 113, 107, 111, 110, 115, 111, 112, 105, 111, 117, 108, 111, 113, 111, 113, 115, 108, 108, 110, 105, 114, 113, 108, 108, 110, 103, 113, 117, 109, 114, 112, 109, 108, 106, 111, 103, 111, 107, 107, 117, 114, 117, 111, 115, 113, 110, 112, 115, 111, 111, 109, 105, 111, 116, 108, 109, 112, 108, 112, 103, 111, 108, 109, 110, 112, 110, 110, 110, 113, 109, 108, 104, 114, 111, 108, 103, 114, 111, 111, 103, 109, 110, 97, 114, 104, 113, 114, 111, 109, 117, 111, 112, 108, 108, 110, 123, 113, 110, 108, 113, 106, 111, 102, 108, 110, 109, 111, 103, 111, 110, 107, 115, 113, 107, 117, 109, 111, 115, 111, 112, 117, 107, 105, 105, 113, 112, 114, 117, 109, 112, 108, 104, 108, 110, 112, 105, 109, 110, 105, 110, 113, 112, 106, 114, 109, 104, 106, 108, 112, 108, 109, 112, 108, 116, 110, 120, 110, 104, 112, 112, 112, 110, 109, 109, 106, 109, 109, 108, 115, 107, 109, 113, 109, 111, 116, 112, 112, 103, 113, 109, 110, 114, 105, 119, 116, 110, 102, 113, 117, 111, 109, 116, 107, 114, 114, 108, 117, 108, 114, 108, 113, 116, 106, 116, 110, 100, 109, 109, 110, 108, 112, 111, 108, 113, 114, 107, 105, 109, 113, 109, 112, 108, 111, 115, 104, 112, 110, 112, 111, 117, 109, 108, 108, 118, 108, 108, 107, 114, 111, 105, 109, 103, 106, 111, 110, 113, 110, 112, 110, 119, 116, 108, 111, 112, 113, 106, 112, 112, 113, 117, 111, 112, 108, 114, 110, 113, 113, 111, 119, 112, 112, 103, 109, 105, 107, 120, 115, 111, 112, 113, 109, 111, 104, 105, 109, 111, 111, 108, 112, 111, 106, 108, 111, 123, 108, 109, 109, 107, 113, 116, 110, 111, 112, 113, 111, 117, 110, 106, 117, 108, 111, 118, 112, 114, 112, 111, 115, 111, 112, 112, 108, 119, 120, 104, 109, 111, 116, 112, 117, 108, 110, 111, 112, 106, 106, 112, 115, 117, 109, 115, 111, 112, 110, 105, 113, 113, 108, 113, 116, 109, 118, 108, 118, 111, 120, 112, 118, 110, 106, 108, 112, 105, 112, 117, 113, 108, 108, 106, 100, 114, 105, 107, 109, 106, 113, 116, 114, 109, 110, 113, 105, 96, 114, 110, 112, 108, 119, 112, 118, 117, 102, 107, 118, 113, 117, 111, 111, 108, 112, 121, 105, 106, 115, 108, 120, 110, 110, 107, 117, 110, 110, 124, 106, 113, 114, 109, 120, 108, 115, 112, 126, 114, 107, 109, 114, 113, 115, 110, 108, 111, 102, 123, 106, 109, 113, 109, 112, 102, 108, 111, 107, 109, 110, 111, 110, 120, 109, 110, 111, 110, 108, 108, 113, 105, 105, 115, 115, 107, 112, 114, 111, 114, 107, 113, 116, 106, 115, 112, 111, 108, 112, 111, 105, 106, 110, 108, 112, 107, 113, 111, 95, 108, 108, 111, 109, 110, 113, 110, 108, 108, 110, 111, 103, 106, 115, 108, 112, 115, 95, 108, 112, 97, 109, 114, 118, 113, 115, 114, 117, 113, 106, 109, 113, 110, 116, 112, 113, 110, 111, 111, 112, 107, 110, 108, 117, 110, 110, 111, 106, 110, 112, 118, 113, 110, 109, 107, 114, 107, 109, 107, 108, 107, 107, 106, 110, 114, 110, 108, 107, 110, 108, 101, 101, 106, 110, 116, 102, 114, 111, 107, 105, 111, 107, 112, 105, 113, 109, 107, 109, 108, 107, 106, 116, 109, 114, 113, 110, 112, 119, 106, 106, 110, 113, 112, 101, 113, 114, 111, 108, 114, 110, 106, 95, 122, 117, 121, 107, 108, 107, 118, 112, 109, 112, 114, 110, 109, 107, 110, 94, 106, 105, 110, 113, 97, 106, 105, 110, 106, 111, 107, 114, 110, 106, 115, 85, 109, 100, 111, 109, 107, 106, 109, 114, 113, 110, 110, 114, 113, 107, 99, 101, 110, 118, 112, 113, 119, 112, 114, 115, 108, 106, 110, 108, 111, 115, 114, 113, 111, 106, 115, 112, 105, 111, 107, 123, 114, 110, 110, 112, 108, 113, 111, 148, 108, 105, 113, 106, 117, 110, 113, 101, 109, 108, 109, 112, 111, 111, 114, 110, 114, 113, 107, 112, 110, 105, 114, 111, 111, 111, 115, 111, 102, 113, 111, 114, 111, 107, 114, 112, 108, 107, 113, 112, 111, 102, 108, 113, 107, 111, 116, 110, 117, 109, 106, 115, 110, 107, 109, 110, 105, 78, 113, 112, 109, 128, 102, 105, 112, 108, 114, 113, 112, 107, 114, 109, 110, 104, 109, 110, 105, 110, 114, 112, 112, 115, 112, 110, 111, 110, 107, 115, 113, 122, 113, 107, 112, 110, 110, 107, 104, 114, 110, 111, 107, 111, 107, 106, 122, 110, 114, 110, 106, 110, 111, 119, 110, 113, 116, 113, 104, 113, 103, 107, 64, 105, 112, 108, 109, 106, 114, 114, 108, 115, 109, 109, 107, 112, 109, 112, 109, 117, 116, 114, 109, 109, 106, 114, 114, 112, 111, 119, 113, 110, 94, 116, 108, 114, 110, 112, 116, 109, 109, 109, 115, 107, 110, 110, 112, 106, 111, 114, 106, 105, 110, 111, 101, 116, 110, 111, 112, 118, 110, 111, 113, 109, 114, 113, 113, 108, 111, 129, 105, 116, 113, 116, 110, 111, 107, 108, 108, 99, 111, 103, 107, 108, 124, 112, 108, 112, 112, 109, 101, 99, 116, 110, 108, 104, 115, 107, 112, 114, 118, 126, 110, 149, 108, 116, 109, 106, 116, 112, 118, 105, 105, 102, 110, 105, 109, 106, 111, 107, 106, 112, 113, 107, 114, 120, 111, 112, 106, 107, 115, 113, 114, 99, 108, 107, 104, 120, 110, 103, 109, 118, 112, 107, 108, 105, 114, 107, 113, 113, 118, 109, 99, 113, 111, 107, 115, 111, 113, 112, 118, 113, 108, 111, 103, 111, 110, 110, 114, 105, 116, 107, 107, 111, 108, 107, 107, 103, 110, 98, 107, 108, 112, 111, 114, 112, 112, 109, 111, 119, 108, 117, 112, 106, 112, 113, 111, 105, 104, 108, 114, 108, 110, 108, 106, 110, 113, 114, 108, 112, 106, 119, 113, 111, 109, 116, 107, 108, 103, 114, 115, 108, 108, 124, 116, 105, 118, 111, 105, 114, 109, 112, 104, 118, 108, 109, 99, 108, 109, 110, 108, 115, 106, 111, 116, 114, 114, 118, 110, 114, 106, 117, 107, 115, 115, 108, 120, 110, 106, 110, 113, 112, 110, 111, 110, 99, 107, 113, 111, 113, 107, 107, 108, 109, 104, 112, 119, 114, 109, 115, 124, 117, 108, 111, 109, 107, 106, 102, 108, 109, 113, 115, 111, 113, 106, 110, 111, 112, 118, 119, 111, 114, 125, 114, 107, 109, 114, 111, 116, 108, 111, 111, 107, 109, 112, 109, 114, 114, 97, 113, 90, 105, 106, 105, 116, 101, 103, 106, 100, 110, 107, 112, 108, 112, 112, 114, 114, 114, 111, 103, 113, 109, 105, 107, 114, 113, 108, 106, 108, 121, 113, 111, 111, 106, 110, 109, 100, 106, 113, 110, 110, 107, 110, 101, 113, 108, 109, 103, 112, 107, 117, 108, 131, 111, 109, 105, 110, 104, 114, 110, 111, 108, 115, 110, 108, 111, 108, 107, 115, 115, 111, 109, 108, 115, 112, 111, 112, 116, 109, 118, 107, 112, 106, 108, 113, 108, 110, 108, 104, 105, 109, 104, 116, 115, 106, 105, 104, 112, 117, 104, 106, 116, 107, 110, 110, 113, 107, 109, 122, 108, 108, 108, 107, 109, 112, 116, 111, 109, 108, 110, 121, 112, 109, 106, 107, 108, 110, 109, 113, 104, 105, 110, 110, 104, 117, 114, 109, 110, 109, 109, 111, 105, 114, 108, 109, 113, 110, 112, 108, 100, 110, 123, 111, 110, 115, 108, 115, 112, 111, 116, 107, 112, 116, 112, 107, 106, 109, 105, 107, 108, 109, 107, 117, 110, 109, 112, 108, 107, 107, 115, 109, 111, 111, 108, 110, 110, 109, 111, 110, 114, 122, 111, 113, 112, 108, 114, 126, 107, 110, 110, 115, 110, 107, 103, 109, 107, 105, 113, 111, 111, 112, 109, 102, 103, 121, 102, 111, 110, 103, 109, 103, 104, 111, 132, 109, 113, 113, 108, 110, 105, 106, 116, 115, 117, 109, 111, 108, 111, 115, 108, 110, 112, 88, 113, 109, 106, 116, 112, 110, 104, 110, 112, 98, 110, 106, 112, 112, 116, 111, 103, 115, 108, 112, 114, 113, 109, 110, 116, 114, 109, 112, 111, 110, 110, 96, 110, 110, 112, 109, 111, 121, 98, 106, 108, 106, 105, 109, 106, 111, 111, 99, 108, 111, 122, 110, 107, 103, 112, 107, 110, 106, 105, 108, 113, 113, 106, 112, 108, 109, 108, 112, 114, 109, 118, 106, 110, 109, 107, 110, 111, 112, 109, 112, 115, 107, 113, 116, 110, 107, 113, 104, 116, 119, 96, 116, 105, 109, 111, 110, 110, 123, 111, 130, 103, 110, 108, 109, 103, 114, 113, 107, 111, 114, 113, 111, 105, 112, 111, 101, 108, 107, 113, 115, 104, 103, 103, 113, 117, 114, 118, 104, 108, 100, 113, 82, 114, 106, 104, 110, 116, 111, 108, 106, 107, 117, 105, 112, 109, 113, 115, 111, 104, 113, 108, 107, 113, 113, 106, 113, 105, 107, 108, 106, 109, 112, 110, 111, 108, 114, 107, 108, 99, 113, 111, 114, 110, 105, 112, 107, 111, 109, 113, 117, 113, 109, 110, 113, 113, 107, 109, 105, 113, 109, 106, 106, 104, 112, 110, 113, 110, 110, 111, 112, 108, 106, 107, 113, 112, 103, 114, 111, 106, 109, 111, 105, 110, 103, 110, 105, 112, 108, 113, 110, 106, 106, 112, 118, 109, 112, 109, 112, 113, 114, 109, 105, 113, 108, 112, 111, 113, 111, 115, 107, 112, 108, 110, 113, 108, 107, 109, 114, 109, 106, 106, 117, 106, 108, 117, 109, 118, 122, 108, 112, 105, 113, 111, 112, 99, 115, 113, 116, 120, 106, 91, 112, 111, 109, 111, 109, 115, 102, 114, 97, 108, 118, 111, 116, 105, 120, 120, 116, 114, 129, 103, 102, 106, 110, 106, 114, 111, 109, 107, 110, 109, 110, 110, 113, 113, 112, 110, 109, 97, 110, 102, 108, 105, 104, 117, 114, 114, 119, 105, 116, 122, 116, 98, 105, 108, 110, 108, 115, 108, 108, 108, 109, 111, 101, 122, 118, 112, 114, 113, 110, 110, 113, 110, 121, 106, 111, 106, 125, 113, 106, 105, 104, 108, 124, 105, 113, 115, 114, 110, 80, 105, 106, 94, 104, 116, 117, 110, 115, 113, 106, 110, 83, 91, 112, 110, 117, 102, 105, 102, 98, 111, 101, 102, 117, 114, 106, 123, 132, 106, 111, 126, 112, 112, 106, 112, 110, 116, 109, 110, 110, 111, 115, 111, 110, 113, 117, 108, 110, 103, 120, 117, 119, 118, 112, 108, 114, 114, 114, 113, 104, 122, 106, 108, 122, 105, 102, 119, 102, 115, 101, 106, 107, 106, 104, 114, 106, 112, 114, 107, 109, 105, 98, 114, 106, 112, 112, 109, 103, 103, 118, 115, 105, 107, 115, 114, 107, 115, 109, 110, 107, 107, 102, 106, 112, 125, 102, 101, 115, 101, 115, 110, 108, 109, 102, 104, 110, 108, 115, 116, 111, 104, 109, 104, 117, 109, 104, 98, 116, 109, 99, 119, 101, 108, 110, 97, 124, 123, 108, 116, 122, 108, 105, 109, 111, 112, 116, 108, 108, 109, 127, 113, 103, 111, 109, 115, 113, 111, 112, 115, 112, 106, 117, 122, 115, 102, 122, 110, 114, 118, 115, 114, 103, 113, 107, 109, 113, 113, 112, 113, 98, 113, 92, 106, 110, 112, 105, 110, 110, 101, 111, 115, 111, 117, 110, 110, 115, 114, 115, 105, 100, 109, 110, 103, 128, 111, 97, 107, 114, 111, 101, 110, 106, 106, 110, 117, 105, 115, 105, 115, 139, 112, 105, 100, 114, 106, 111, 122, 107, 97, 103, 111, 116, 117, 105, 121, 96, 111, 122, 113, 107, 120, 107, 112, 111, 102, 116, 125, 106, 96, 105, 110, 102, 107, 114, 123, 116, 109, 106, 104, 108, 107, 105, 94, 96, 107, 105, 106, 111, 105, 109, 122, 116, 103, 114, 102, 115, 108, 107, 110, 115, 112, 111, 110, 106, 108, 109, 110, 108, 115, 93, 118, 105, 112, 106, 108, 110, 109, 108, 100, 104, 108, 112, 111, 109, 102, 113, 112, 105, 110, 103, 105, 110, 102, 112, 132, 96, 94, 109, 105, 94, 111, 102, 107, 118, 115, 107, 112, 109, 110, 112, 108, 104, 103, 113, 110, 115, 111, 97, 100, 104, 104, 112, 110, 108, 108, 111, 113, 114, 117, 96, 96, 111, 102, 114, 112, 99, 111, 113, 124, 107, 111, 103, 97, 110, 107, 102, 123, 101, 100, 110, 113, 115, 106, 136, 100, 96, 106, 116, 128, 125, 110, 111, 109, 103, 103, 112, 105, 111, 94, 105, 105, 106, 110, 98, 98, 119, 101, 104, 97, 104, 110, 103, 105, 96, 109, 93, 115, 106, 115, 107, 104, 111, 117, 120, 116, 116, 102, 118, 93, 118, 104, 120, 108, 110, 108, 121, 100, 101, 111, 108, 110, 104, 106, 109, 112, 108, 113, 110, 104, 110, 111, 103, 110, 108, 109, 108, 105, 109, 110, 106, 109, 108, 110, 109, 110, 112, 108, 117, 110, 103, 108, 96, 112, 120, 109, 114, 109, 114, 112, 115, 106, 103, 103, 112, 113, 109, 108, 112, 112, 111, 110, 107, 108, 107, 110, 109, 102, 100, 112, 116, 114, 104, 100, 120, 111, 109, 94, 112, 112, 114, 108, 106, 107, 116, 94, 113, 110, 104, 109, 112, 105, 77, 110, 114, 102, 112, 111, 117, 115, 110, 109, 113, 111, 104, 117, 113, 108, 112, 97, 109, 107, 107, 113, 107, 110, 114, 107, 104, 111, 109, 113, 107, 106, 103, 110, 111, 122, 104, 110, 112, 110, 103, 108, 114, 112, 108, 107, 112, 113, 109, 108, 112, 111, 107, 106, 115, 106, 114, 111, 112, 109, 118, 106, 115, 110, 107, 110, 107, 110, 116, 120, 109, 105, 111, 107, 117, 116, 101, 115, 115, 111, 113, 108, 108, 114, 105, 107, 106, 112, 101, 109, 112, 109, 104, 125, 109, 121, 109, 110, 115, 112, 101, 116, 113, 114, 107, 111, 111, 122, 112, 111, 109, 109, 114, 121, 111, 107, 109, 105, 109, 110, 117, 110, 114, 111, 103, 110, 101, 102, 102, 116, 106, 111, 113, 105, 106, 113, 109, 111, 112, 109, 104, 108, 110, 112, 107, 114, 114, 116, 103, 110, 108, 107, 105, 107, 113, 114, 112, 108, 120, 110, 109, 109, 102, 109, 111, 106, 109, 110, 112, 109, 122, 110, 105, 113, 110, 112, 112, 108, 112, 111, 106, 103, 105, 113, 109, 111, 116, 116, 113, 104, 111, 104, 106, 109, 116, 105, 111, 104, 108, 107, 107, 109, 115, 108, 108, 115, 115, 112, 107, 112, 108, 111, 116, 108, 102, 117, 118, 106, 108, 111, 113, 109, 110, 114, 113, 113, 105, 110, 121, 110, 113, 111, 112, 102, 113, 113, 110, 113, 105, 105, 108, 104, 110, 110, 104, 104, 105, 112, 116, 112, 109, 108, 108, 110, 113, 109, 112, 108, 106, 109, 109, 111, 105, 100, 109, 108, 101, 114, 109, 115, 110, 120, 115, 107, 109, 117, 111, 109, 110, 111, 118, 106, 109, 109, 107, 108, 116, 106, 111, 107, 110, 111, 112, 110, 108, 117, 111, 109, 107, 106, 113, 113, 105, 111, 108, 114, 98, 109, 105, 109, 110, 110, 113, 109, 107, 118, 106, 110, 112, 104, 114, 123, 109, 108, 111, 112, 108, 110, 110, 107, 110, 117, 110, 111, 113, 98, 132, 106, 113, 111, 111, 107, 116, 115, 106, 110, 106, 112, 108, 108, 81, 110, 106, 114, 111, 115, 109, 110, 100, 112, 106, 109, 114, 106, 111, 111, 108, 108, 109, 105, 108, 111, 109, 122, 111, 109, 104, 109, 101, 106, 111, 103, 115, 109, 111, 100, 121, 109, 120, 111, 114, 109, 111, 111, 109, 105, 112, 114, 110, 114, 111, 112, 134, 107, 97, 107, 98, 113, 120, 110, 110, 113, 109, 108, 115, 113, 116, 108, 109, 110, 111, 105, 115, 109, 114, 112, 112, 109, 110, 116, 106, 108, 110, 110, 106, 106, 102, 103, 101, 114, 104, 108, 108, 112, 111, 114, 108, 107, 106, 103, 104, 108, 110, 104, 109, 103, 107, 102, 120, 111, 112, 110, 110, 109, 111, 111, 104, 115, 111, 108, 109, 113, 108, 100, 116, 109, 100, 116, 113, 99, 116, 103, 109, 117, 102, 117, 116, 111, 108, 104, 105, 119, 104, 115, 101, 106, 105, 104, 108, 113, 108, 107, 108, 106, 112, 114, 113, 117, 110, 108, 113, 95, 107, 106, 112, 116, 105, 109, 102, 107, 118, 112, 101, 90, 112, 115, 109, 110, 120, 107, 104, 104, 107, 114, 113, 112, 109, 108, 109, 114, 110, 110, 106, 105, 119, 112, 106, 110, 114, 114, 95, 99, 116, 113, 112, 109, 105, 106, 99, 112, 110, 115, 108, 107, 103, 101, 122, 121, 102, 110, 114, 109, 112, 108, 110, 110, 105, 116, 105, 112, 113, 106, 118, 118, 111, 107, 124, 114, 106, 121, 117, 113, 97, 104, 106, 116, 111, 117, 104, 115, 109, 113, 109, 88, 111, 112, 125, 112, 100, 114, 106, 111, 110, 109, 104, 109, 116, 99, 106, 110, 114, 122, 105, 104, 109, 112, 108, 107, 101, 104, 118, 103, 110, 109, 93, 102, 109, 109, 109, 118, 130, 108, 113, 99, 112, 111, 111, 106, 106, 97, 104, 110, 107, 133, 112, 114, 117, 107, 87, 111, 106, 103, 113, 104, 107, 117, 101, 118, 120, 128, 110, 111, 108, 111, 112, 94, 110, 110, 119, 111, 113, 110, 104, 107, 98, 118, 110, 115, 112, 109, 112, 117, 117, 106, 118, 111, 115, 113, 110, 105, 107, 112, 111, 106, 100, 100, 117, 105, 117, 118, 101, 114, 114, 116, 111, 106, 109, 107, 113, 113, 101, 115, 122, 115, 120, 111, 107, 109, 114, 105, 113, 109, 114, 106, 110, 105, 107, 105, 109, 108, 107, 103, 115, 102, 104, 107, 111, 115, 107, 107, 112, 102, 111, 110, 102, 109, 99, 106, 112, 110, 117, 108, 102, 108, 106, 119, 105, 125, 113, 110, 111, 110, 119, 97, 108, 111, 108, 115, 111, 109, 114, 109, 106, 114, 88, 117, 113, 99, 126, 112, 111, 111, 122, 109, 108, 106, 116, 109, 114, 113, 106, 114, 107, 109, 121, 106, 103, 111, 97, 108, 109, 112, 109, 101, 110, 109, 88, 110, 107, 94, 111, 112, 97, 112, 108, 104, 106, 106, 109, 113, 109, 115, 108, 113, 113, 101, 114, 110, 105, 103, 107, 112, 113, 100, 110, 127, 99, 108, 107, 105, 113, 120, 114, 115, 108, 102, 115, 108, 103, 98, 113, 107, 119, 107, 114, 107, 108, 106, 110, 109, 113, 108, 117, 109, 105, 109, 117, 115, 106, 100, 116, 111, 118, 96, 116, 112, 110, 110, 114, 113, 108, 103, 103, 111, 113, 107, 110, 110, 111, 116, 107, 119, 117, 117, 103, 99, 115, 104, 121, 109, 113, 115, 112, 113, 110, 112, 106, 109, 110, 105, 113, 110, 107, 105, 102, 105, 119, 108, 95, 113, 111, 121, 118, 101, 108, 110, 105, 109, 114, 116, 108, 104, 129, 109, 113, 123, 109, 108, 105, 112, 111, 98, 103, 111, 110, 105, 110, 108, 107, 108, 109, 112, 109, 117, 112, 115, 109, 120, 118, 115, 107, 116, 108, 119, 111, 115, 105, 108, 85, 103, 115, 109, 112, 116, 108, 110, 108, 109, 111, 109, 117, 104, 81, 112, 113, 109, 116, 110, 108, 109, 113, 105, 109, 105, 116, 109, 102, 110, 108, 108, 104, 103, 108, 107, 110, 108, 114, 103, 112, 106, 106, 113, 117, 116, 101, 124, 111, 107, 113, 112, 110, 114, 109, 108, 105, 109, 107, 122, 115, 107, 115, 111, 116, 113, 118, 113, 117, 102, 106, 112, 115, 109, 115, 122, 114, 96, 91, 110, 124, 123, 107, 118, 112, 115, 109, 107, 109, 115, 112, 103, 102, 110, 112, 113, 112, 106, 109, 114, 103, 108, 108, 105, 108, 112, 107, 110, 111, 118, 103, 104, 112, 110, 104, 116, 111, 108, 111, 110, 109, 117, 106, 111, 108, 110, 111, 112, 108, 97, 106, 112, 104, 114, 110, 104, 107, 111, 103, 106, 110, 105, 113, 113, 110, 106, 107, 104, 107, 110, 111, 117, 116, 113, 109, 111, 119, 117, 113, 112, 108, 113, 109, 109, 113, 116, 118, 110, 103, 111, 130, 110, 112, 105, 122, 119, 111, 112, 123, 114, 112, 122, 111, 102, 113, 110, 117, 117, 103, 111, 108, 110, 111, 111, 113, 108, 117, 110, 112, 116, 115, 106, 111, 112, 112, 111, 115, 112, 129, 109, 110, 116, 111, 132, 106, 110, 113, 109, 111, 111, 105, 112, 119, 93, 117, 113, 126, 107, 110, 114, 108, 115, 116, 111, 113, 138, 111, 110, 108, 105, 112, 109, 111, 111, 111, 118, 113, 109, 99, 116, 117, 108, 106, 109, 111, 112, 112, 111, 113, 112, 109, 112, 113, 108, 106, 111, 116, 100, 111, 121, 106, 112, 106, 124, 115, 105, 116, 107, 113, 113, 110, 107, 115, 114, 100, 110, 115, 102, 126, 118, 111, 115, 113, 103, 112, 110, 112, 112, 110, 85, 108, 103, 113, 113, 114, 113, 110, 109, 113, 104, 104, 110, 107, 109, 107, 106, 112, 112, 109, 111, 116, 110, 111, 123, 114, 112, 109, 107, 110, 111, 113, 108, 114, 103, 110, 108, 108, 111, 112, 146, 112, 119, 106, 110, 107, 110, 112, 110, 106, 106, 103, 111, 108, 107, 114, 111, 109, 112, 103, 109, 114, 103, 114, 105, 113, 119, 113, 105, 94, 112, 110, 104, 109, 106, 108, 109, 112, 111, 115, 105, 105, 101, 112, 111, 101, 110, 106, 108, 106, 113, 112, 105, 116, 110, 125, 117, 112, 112, 106, 114, 109, 118, 89, 115, 114, 120, 114, 104, 102, 111, 121, 108, 113, 109, 109, 109, 109, 110, 113, 111, 110, 104, 83, 105, 108, 110, 108, 113, 116, 112, 113, 121, 105, 107, 107, 102, 114, 112, 99, 109, 104, 110, 97, 118, 112, 103, 116, 110, 128, 114, 102, 113, 114, 111, 110, 112, 116, 110, 106, 112, 105, 110, 112, 87, 108, 100, 105, 109, 101, 113, 107, 108, 111, 98, 115, 109, 102, 107, 100, 100, 116, 91, 107, 119, 115, 82, 110, 111, 106, 111, 110, 112, 110, 108, 100, 112, 105, 112, 117, 109, 104, 107, 103, 107, 111, 100, 109, 106, 111, 109, 101, 110, 141, 108, 105, 109, 105, 111, 104, 108, 116, 99, 109, 115, 115, 110, 100, 112, 113, 103, 109, 113, 118, 107, 109, 110, 111, 104, 100, 112, 117, 109, 107, 107, 102, 112, 129, 111, 112, 106, 112, 113, 113, 117, 116, 107, 129, 110, 99, 115, 113, 114, 116, 119, 113, 114, 111, 116, 121, 103, 119, 113, 117, 116, 105, 111, 102, 108, 115, 113, 101, 112, 110, 107, 108, 107, 114, 111, 109, 104, 114, 111, 104, 108, 110, 104, 106, 106, 107, 116, 106, 107, 106, 110, 106, 111, 108, 106, 115, 109, 120, 113, 117, 96, 110, 117, 103, 108, 117, 112, 109, 100, 102, 110, 117, 110, 104, 114, 115, 110, 116, 122, 115, 102, 114, 113, 109, 108, 110, 115, 119, 107, 116, 117, 112, 115, 115, 84, 103, 111, 113, 104, 115, 114, 106, 107, 115, 112, 100, 102, 111, 109, 105, 111, 104, 102, 114, 101, 111, 115, 114, 117, 112, 115, 107, 116, 108, 113, 101, 111, 119, 112, 85, 104, 120, 102, 107, 97, 112, 113, 98, 110, 103, 108, 118, 125, 116, 101, 110, 103, 102, 105, 110, 114, 109, 114, 109, 118, 106, 108, 118, 116, 112, 104, 108, 111, 111, 113, 112, 103, 86, 111, 113, 104, 109, 84, 87, 102, 112, 113, 109, 112, 113, 114, 113, 100, 107, 112, 90, 109, 116, 114, 107, 127, 117, 112, 117, 73, 109, 113, 112, 107, 122, 110, 118, 113, 107, 118, 117, 108, 110, 108, 107, 111, 114, 116, 107, 104, 109, 106, 116, 106, 112, 118, 123, 110, 114, 106, 121, 126, 113, 109, 123, 109, 102, 127, 128, 106, 115, 109, 114, 114, 109, 105, 117, 114, 112, 107, 110, 113, 124, 110, 115, 123, 110, 103, 112, 109, 113, 100, 113, 101, 113, 109, 114, 113, 105, 94, 109, 108, 110, 111, 99, 112, 105, 107, 113, 99, 110, 105, 113, 112, 109, 106, 117, 110, 107, 116, 109, 115, 111, 109, 111, 115, 115, 107, 110, 103, 101, 105, 113, 104, 110, 110, 101, 111, 116, 113, 114, 115, 110, 115, 110, 110, 103, 107, 112, 97, 110, 106, 116, 112, 102, 110, 111, 110, 108, 109, 117, 113, 114, 108, 110, 108, 103, 106, 114, 104, 107, 111, 119, 108, 107, 112, 118, 117, 92, 110, 105, 105, 102, 118, 115, 104, 106, 110, 116, 114, 122, 112, 107, 114, 112, 101, 105, 115, 103, 105, 105, 106, 121, 97, 118, 103, 112, 114, 108, 97, 113, 106, 120, 125, 108, 115, 100, 106, 120, 103, 106, 110, 111, 109, 108, 105, 111, 107, 111, 109, 106, 111, 122, 108, 103, 105, 137, 114, 106, 112, 119, 111, 121, 109, 97, 111, 106, 110, 105, 105, 108, 109, 117, 109, 110, 111, 109, 104, 109, 106, 108, 112, 108, 108, 106, 109, 124, 107, 119, 109, 103, 99, 81, 117, 102, 111, 109, 118, 129, 102, 110, 109, 130, 105, 118, 101, 102, 100, 117, 107, 112, 110, 101, 114, 106, 116, 104, 113, 118, 104, 101, 90, 97, 114, 116, 112, 130, 103, 104, 107, 120, 105, 103, 113, 128, 96, 111, 115, 105, 111, 103, 109, 117, 111, 104, 115, 133, 102, 105, 111, 107, 119, 112, 102, 99, 100, 111, 112, 105, 109, 116, 112, 110, 112, 111, 99, 131, 104, 120, 115, 101, 108, 102, 103, 116, 107, 105, 112, 113, 122, 115, 113, 107, 116, 101, 105, 109, 103, 118, 110, 106, 145, 106, 106, 100, 100, 112, 107, 109, 105, 132, 116, 113, 117, 115, 102, 106, 110, 102, 105, 112, 104, 111, 120, 121, 102, 108, 102, 105, 109, 110, 117, 104, 104, 113, 110, 132, 115, 114, 115, 115, 111, 107, 116, 122, 107, 113, 122, 101, 106, 118, 108, 114, 113, 110, 84, 82, 105, 110, 107, 111, 105, 108, 105, 110, 108, 110, 103, 105, 94, 114, 95, 106, 113, 108, 116, 113, 111, 124, 119, 110, 106, 110, 102, 110, 98, 115, 105, 109, 86, 105, 109, 109, 105, 128, 129, 102, 105, 130, 107, 111, 114, 126, 113, 133, 107, 116, 117, 123, 92, 114, 115, 109, 111, 93, 110, 105, 137, 107, 99, 97, 102, 133, 100, 113, 107, 111, 110, 113, 129, 114, 110, 115, 107, 109, 108, 112, 113, 108, 106, 116, 101, 112, 110, 118, 130, 105, 114, 107, 109, 120, 105, 112, 115, 107, 96, 108, 113, 110, 108, 116, 114, 113, 105, 98, 108, 109, 113, 110, 113, 120, 115, 102, 104, 116, 118, 132, 109, 106, 115, 107, 107, 118, 123, 134, 101, 111, 112, 118, 109, 122, 111, 100, 110, 118, 123, 110, 95, 113, 106, 111, 110, 121, 93, 113, 99, 97, 103, 105, 91, 105, 105, 111, 118, 87, 113, 102, 112, 111, 104, 95, 106, 106, 98, 113, 111, 105, 105, 111, 126, 105, 112, 114, 110, 109, 98, 104, 111, 112, 113, 108, 92, 108, 109, 118, 99, 95, 107, 110, 105, 108, 103, 105, 113, 103, 101, 110, 94, 104, 110, 110, 120, 108, 104, 111, 121, 113, 109, 121, 103, 104, 106, 105, 107, 108, 129, 107, 114, 110, 110, 108, 119, 109, 111, 104, 110, 111, 113, 113, 104, 112, 113, 106, 103, 102, 106, 114, 107, 107, 103, 99, 113, 104, 114, 124, 105, 119, 108, 109, 115, 107, 107, 109, 113, 100, 123, 107, 107, 97, 109, 106, 121, 109, 126, 117, 114, 120, 120, 110, 101, 102, 87, 109, 112, 104, 114, 117, 124, 96, 106, 113, 108, 108, 111, 122, 130, 113, 115, 106, 101, 113, 118, 92, 102, 109, 104, 126, 105, 108, 114, 101, 123, 104, 110, 112, 108, 102, 110, 106, 107, 121, 112, 103, 104, 119, 107, 100, 120, 103, 107, 112, 107, 111, 104, 112, 98, 103, 120, 117, 115, 99, 105, 114, 111, 109, 114, 120, 111, 113, 111, 110, 108, 110, 111, 107, 113, 103, 117, 125, 110, 106, 129, 110, 110, 114, 96, 111, 118, 111, 109, 108, 130, 98, 109, 98, 108, 114, 117, 102, 106, 116, 108, 110, 105, 113, 92, 107, 104, 106, 123, 113, 110, 99, 108, 102, 102, 115, 133, 91, 112, 110, 94, 114, 124, 105, 108, 120, 94, 101, 101, 103, 109, 117, 104, 108, 103, 91, 122, 123, 103, 119, 108, 107, 116, 108, 119, 96, 107, 113, 121, 98, 98, 117, 113, 106, 111, 103, 102, 105, 111, 105, 108, 103, 108, 106, 106, 107, 112, 111, 108, 115, 99, 107, 103, 123, 113, 108, 111, 109, 103, 104, 122, 106, 101, 136, 106, 110, 121, 111, 119, 94, 118, 108, 102, 98, 130, 127, 110, 116, 124, 115, 115, 113, 107, 99, 123, 110, 115, 97, 105, 103, 105, 92, 108, 111, 115, 105, 117, 109, 111, 109, 105, 108, 100, 112, 106, 111, 129, 115, 108, 107, 111, 116, 107, 93, 109, 97, 106, 111, 110, 110, 107, 114, 104, 110, 107, 112, 109, 109, 109, 105, 100, 115, 115, 106, 105, 127, 103, 109, 110, 119, 111, 104, 109, 116, 111, 109, 110, 114, 104, 115, 119, 109, 113, 114, 103, 103, 112, 101, 106, 104, 120, 120, 109, 105, 117, 108, 105, 114, 110, 136, 113, 117, 118, 101, 110, 126, 108, 112, 115, 111, 116, 91, 115, 122, 119, 99, 107, 109, 101, 115, 114, 106, 101, 119, 110, 112, 101, 107, 116, 106, 111, 105, 109, 122, 114, 118, 106, 104, 106, 99, 100, 117, 124, 109, 94, 107, 106, 116, 111, 115, 110, 107, 109, 113, 96, 118, 102, 115, 111, 93, 113, 118, 108, 104, 108, 104, 98, 112, 108, 110, 106, 107, 107, 112, 113, 107, 110, 114, 112, 114, 83, 109, 107, 108, 112, 109, 108, 105, 111, 105, 103, 109, 110, 114, 107, 111, 117, 102, 120, 134, 122, 121, 116, 111, 108, 93, 114, 107, 106, 105, 121, 134, 103, 103, 113, 103, 108, 112, 97, 127, 107, 104, 109, 104, 104, 108, 111, 105, 102, 107, 98, 110, 131, 109, 108, 87, 103, 116, 104, 100, 108, 103, 113, 96, 113, 108, 111, 87, 108, 112, 108, 96, 110, 128, 101, 91, 112, 109, 112, 97, 104, 112, 113, 105, 111, 116, 108, 99, 115, 115, 108, 110, 106, 102, 102, 108, 104, 110, 114, 114, 121, 108, 114, 110, 111, 106, 124, 106, 97, 113, 111, 108, 116, 114, 110, 102, 103, 111, 109, 101, 104, 107, 119, 117, 107, 105, 107, 110, 122, 100, 109, 106, 101, 110, 101, 106, 112, 111, 114, 111, 108, 117, 110, 115, 109, 107, 129, 114, 117, 119, 121, 109, 113, 99, 112, 111, 115, 103, 108, 100, 110, 106, 104, 105, 118, 118, 117, 110, 102, 114, 111, 115, 110, 120, 111, 120, 105, 104, 110, 106, 99, 120, 124, 121, 111, 94, 112, 128, 110, 101, 109, 115, 124, 91, 114, 111, 111, 117, 117, 114, 110, 103, 113, 112, 108, 111, 107, 107, 106, 105, 115, 109, 124, 112, 120, 117, 118, 115, 105, 98, 114, 110, 106, 109, 83, 107, 111, 107, 114, 105, 110, 106, 112, 116, 111, 115, 113, 109, 106, 93, 71, 113, 120, 111, 110, 106, 107, 111, 106, 111, 114, 111, 111, 109, 110, 100, 95, 111, 114, 113, 113, 109, 108, 113, 118, 114, 105, 113, 103, 109, 123, 110, 113, 108, 107, 113, 116, 114, 111, 112, 93, 110, 111, 111, 110, 105, 111, 107, 129, 108, 114, 103, 97, 110, 97, 113, 103, 115, 106, 112, 107, 114, 114, 114, 105, 110, 110, 111, 111, 113, 108, 107, 106, 105, 114, 114, 101, 112, 106, 116, 99, 112, 107, 112, 110, 105, 107, 110, 114, 113, 113, 114, 112, 110, 112, 107, 109, 116, 111, 105, 119, 110, 111, 103, 105, 113, 97, 114, 111, 111, 114, 112, 112, 105, 112, 112, 110, 115, 109, 107, 112, 111, 106, 106, 107, 114, 111, 113, 111, 115, 115, 110, 110, 104, 115, 112, 93, 94, 120, 110, 110, 111, 113, 104, 106, 110, 108, 106, 104, 124, 108, 99, 114, 117, 106, 110, 109, 109, 105, 109, 117, 109, 114, 112, 112, 96, 104, 105, 112, 96, 112, 107, 117, 106, 114, 112, 114, 101, 116, 111, 105, 110, 109, 107, 112, 110, 108, 109, 117, 106, 106, 111, 115, 108, 109, 115, 107, 111, 110, 90, 112, 112, 106, 100, 110, 118, 107, 109, 116, 116, 113, 107, 113, 119, 108, 109, 132, 114, 107, 111, 112, 102, 109, 110, 110, 108, 110, 109, 111, 113, 103, 113, 110, 113, 108, 115, 107, 110, 116, 106, 115, 120, 111, 121, 109, 114, 95, 112, 111, 102, 112, 108, 109, 106, 107, 107, 117, 100, 112, 118, 110, 114, 113, 112, 107, 110, 108, 115, 117, 109, 112, 115, 105, 113, 111, 114, 114, 114, 112, 100, 99, 110, 100, 124, 111, 111, 111, 107, 113, 116, 104, 106, 109, 112, 106, 104, 105, 119, 110, 114, 104, 104, 113, 107, 117, 109, 113, 109, 120, 109, 110, 107, 105, 109, 109, 105, 109, 107, 112, 97, 115, 102, 107, 118, 117, 112, 111, 111, 107, 110, 108, 114, 109, 95, 114, 110, 113, 114, 116, 110, 114, 108, 107, 115, 87, 110, 120, 110, 107, 110, 110, 109, 129, 111, 113, 102, 131, 107, 112, 111, 111, 107, 110, 117, 105, 96, 116, 114, 110, 110, 111, 117, 105, 113, 116, 105, 109, 103, 91, 95, 111, 108, 118, 104, 105, 115, 110, 123, 109, 107, 120, 95, 109, 127, 114, 106, 110, 109, 112, 108, 122, 112, 110, 102, 109, 109, 104, 111, 117, 107, 105, 109, 111, 109, 111, 114, 106, 99, 115, 109, 113, 105, 102, 147, 106, 110, 110, 112, 108, 108, 106, 112, 94, 112, 109, 108, 112, 108, 113, 114, 121, 107, 108, 113, 113, 117, 113, 120, 120, 108, 106, 118, 109, 120, 110, 112, 111, 100, 105, 105, 111, 110, 117, 113, 115, 109, 115, 108, 106, 112, 113, 110, 110, 112, 111, 115, 108, 108, 111, 111, 110, 114, 114, 108, 112, 100, 96, 95, 113, 108, 111, 111, 108, 111, 114, 109, 111, 111, 110, 108, 108, 114, 110, 106, 106, 115, 111, 109, 106, 111, 111, 116, 113, 107, 109, 109, 107, 108, 117, 110, 113, 107, 111, 116, 112, 115, 106, 111, 111, 113, 112, 110, 108, 104, 115, 112, 110, 109, 110, 111, 110, 111, 111, 118, 107, 109, 112, 101, 107, 110, 109, 114, 114, 110, 106, 110, 108, 111, 110, 105, 108, 110, 108, 110, 116, 114, 109, 109, 111, 114, 108, 108, 108, 110, 108, 110, 110, 113, 107, 108, 107, 106, 109, 110, 114, 112, 113, 111, 112, 110, 109, 101, 114, 110, 109, 105, 110, 109, 111, 110, 112, 109, 110, 106, 105, 114, 114, 110, 109, 107, 110, 110, 111, 109, 110, 118, 107, 110, 107, 112, 114, 108, 107, 110, 110, 107, 112, 105, 107, 115, 113, 114, 107, 112, 110, 110, 110, 108, 112, 108, 109, 109, 108, 107, 106, 120, 108, 111, 109, 113, 110, 119, 113, 108, 110, 116, 109, 114, 113, 111, 104, 109, 111, 117, 120, 108, 106, 107, 100, 108, 108, 103, 111, 108, 111, 115, 113, 105, 110, 109, 110, 105, 108, 110, 116, 115, 107, 111, 108, 106, 109, 110, 111, 110, 111, 110, 121, 114, 103, 115, 115, 111, 110, 109, 113, 107, 109, 107, 109, 109, 108, 111, 113, 107, 110, 109, 109, 110, 111, 111, 112, 109, 115, 110, 114, 112, 103, 109, 113, 109, 109, 115, 103, 108, 107, 110, 108, 108, 111, 112, 107, 113, 112, 102, 101, 112, 113, 104, 112, 105, 112, 113, 116, 113, 111, 109, 109, 110, 110, 106, 111, 109, 109, 117, 107, 112, 109, 111, 106, 118, 111, 114, 109, 105, 111, 113, 113, 109, 109, 113, 110, 109, 115, 107, 113, 111, 112, 109, 105, 114, 110, 109, 107, 112, 112, 111, 108, 108, 110, 116, 105, 113, 115, 111, 109, 112, 110, 105, 106, 104, 106, 116, 113, 109, 114, 113, 108, 106, 109, 108, 111, 111, 112, 109, 110, 127, 111, 112, 107, 108, 107, 104, 113, 109, 106, 111, 112, 111, 108, 110, 109, 110, 105, 110, 120, 114, 108, 110, 111, 108, 106, 105, 113, 112, 111, 104, 109, 107, 109, 107, 111, 107, 110, 111, 124, 99, 103, 110, 109, 110, 111, 109, 112, 113, 115, 106, 108, 108, 114, 107, 110, 106, 113, 107, 112, 114, 110, 109, 110, 107, 107, 111, 112, 110, 117, 111, 119, 107, 111, 109, 113, 111, 113, 109, 111, 110, 110, 113, 113, 111, 111, 108, 110, 106, 116, 109, 114, 105, 108, 109, 118, 110, 110, 115, 107, 113, 106, 107, 112, 112, 113, 113, 112, 109, 109, 108, 105, 112, 112, 111, 114, 111, 108, 108, 115, 113, 110, 108, 113, 110, 111, 105, 113, 106, 105, 111, 111, 112, 106, 111, 109, 110, 110, 116, 112, 112, 110, 111, 108, 106, 105, 110, 112, 110, 113, 109, 110, 110, 111, 111, 100, 106, 110, 108, 106, 108, 121, 108, 109, 107, 114, 106, 107, 112, 111, 116, 111, 112, 110, 117, 111, 111, 129, 109, 111, 110, 105, 106, 111, 114, 107, 122, 106, 112, 119, 108, 111, 105, 107, 107, 112, 111, 112, 113, 116, 105, 113, 105, 115, 120, 109, 109, 115, 106, 108, 115, 116, 99, 115, 109, 107, 102, 113, 115, 110, 109, 107, 103, 112, 108, 119, 100, 109, 106, 112, 129, 92, 128, 114, 110, 105, 111, 110, 126, 104, 112, 93, 90, 113, 124, 115, 127, 106, 112, 118, 108, 105, 111, 112, 109, 104, 135, 107, 105, 107, 109, 133, 111, 104, 112, 120, 107, 102, 110, 108, 116, 112, 97, 108, 118, 100, 110, 110, 106, 112, 103, 112, 118, 121, 106, 117, 105, 97, 97, 106, 105, 109, 103, 104, 108, 115, 97, 107, 119, 111, 112, 104, 109, 112, 118, 111, 102, 117, 110, 114, 114, 112, 114, 112, 110, 113, 119, 112, 121, 109, 120, 115, 117, 112, 110, 96, 107, 112, 126, 101, 86, 102, 107, 111, 97, 105, 111, 114, 102, 97, 122, 115, 117, 106, 121, 103, 84, 102, 112, 106, 111, 110, 112, 125, 107, 102, 109, 108, 107, 117, 105, 107, 106, 111, 104, 112, 115, 113, 107, 112, 124, 115, 108, 117, 111, 110, 100, 100, 116, 110, 108, 116, 108, 106, 106, 110, 138, 125, 104, 110, 116, 105, 117, 106, 112, 110, 115, 109, 113, 99, 112, 107, 100, 108, 113, 109, 112, 97, 111, 118, 109, 117, 107, 114, 113, 113, 111, 101, 115, 113, 110, 100, 109, 112, 127, 118, 105, 99, 110, 109, 90, 107, 115, 105, 109, 115, 110, 121, 108, 96, 105, 83, 111, 101, 108, 104, 113, 113, 109, 112, 102, 112, 113, 119, 113, 111, 100, 103, 104, 103, 114, 110, 119, 115, 104, 112, 96, 120, 108, 110, 108, 110, 107, 111, 102, 110, 107, 136, 109, 109, 116, 102, 94, 108, 109, 100, 115, 107, 111, 115, 110, 115, 107, 108, 122, 114, 91, 111, 107, 113, 114, 110, 108, 112, 106, 108, 106, 114, 124, 121, 112, 112, 109, 108, 112, 109, 120, 126, 121, 119, 119, 112, 113, 117, 98, 105, 112, 105, 115, 110, 116, 119, 109, 115, 119, 121, 124, 114, 104, 108, 122, 108, 107, 101, 100, 107, 111, 112, 110, 105, 111, 112, 88, 109, 115, 117, 104, 115, 101, 103, 113, 117, 102, 117, 107, 100, 110, 137, 108, 110, 112, 110, 110, 114, 101, 120, 105, 112, 112, 113, 113, 109, 104, 105, 117, 121, 112, 128, 123, 104, 114, 111, 110, 105, 112, 123, 115, 109, 100, 113, 109, 107, 110, 93, 105, 108, 110, 106, 107, 103, 101, 107, 116, 117, 118, 109, 107, 107, 106, 121, 110, 115, 104, 109, 104, 111, 112, 107, 101, 122, 108, 107, 97, 111, 129, 109, 108, 115, 91, 117, 93, 112, 113, 99, 109, 111, 124, 102, 111, 114, 111, 114, 115, 109, 112, 107, 108, 109, 103, 109, 99, 109, 94, 118, 107, 107, 112, 103, 108, 108, 104, 115, 111, 109, 108, 103, 96, 120, 115, 141, 121, 98, 108, 107, 110, 112, 112, 111, 109, 113, 111, 111, 117, 115, 109, 114, 103, 105, 112, 112, 111, 111, 108, 100, 112, 104, 104, 115, 113, 111, 109, 112, 113, 114, 106, 108, 108, 111, 111, 107, 111, 114, 109, 111, 108, 112, 114, 112, 113, 115, 121, 113, 114, 109, 112, 124, 108, 108, 106, 106, 106, 106, 109, 108, 108, 108, 110, 111, 109, 106, 110, 112, 116, 111, 111, 108, 110, 115, 112, 107, 110, 107, 111, 107, 109, 105, 113, 114, 109, 112, 107, 109, 120, 103, 109, 109, 122, 112, 112, 117, 108, 109, 112, 109, 111, 109, 114, 107, 122, 104, 113, 110, 113, 104, 107, 110, 111, 113, 111, 106, 109, 108, 112, 110, 107, 108, 109, 107, 109, 104, 110, 107, 111, 114, 109, 114, 111, 117, 108, 106, 113, 113, 112, 108, 108, 111, 109, 111, 105, 110, 106, 97, 108, 109, 108, 105, 105, 109, 111, 108, 110, 105, 112, 112, 112, 109, 111, 116, 108, 109, 110, 114, 112, 111, 109, 106, 108, 112, 111, 111, 106, 106, 106, 115, 111, 111, 116, 109, 118, 113, 109, 108, 111, 116, 112, 111, 114, 108, 110, 113, 107, 109, 110, 108, 104, 114, 110, 113, 112, 112, 112, 113, 112, 109, 110, 107, 112, 115, 105, 114, 108, 109, 110, 121, 111, 103, 109, 110, 114, 115, 111, 105, 113, 116, 110, 113, 114, 113, 107, 112, 114, 106, 111, 112, 109, 108, 115, 113, 112, 115, 113, 107, 110, 108, 113, 112, 118, 111, 109, 108, 110, 111, 107, 113, 110, 115, 108, 109, 113, 111, 109, 111, 104, 104, 109, 107, 103, 103, 108, 108, 106, 108, 117, 106, 111, 110, 110, 111, 107, 111, 111, 108, 109, 110, 112, 110, 110, 112, 109, 104, 109, 117, 112, 112, 110, 110, 114, 106, 110, 112, 121, 109, 102, 105, 112, 112, 118, 111, 111, 111, 112, 114, 108, 130, 114, 102, 108, 103, 106, 102, 110, 108, 115, 111, 115, 108, 109, 108, 111, 105, 108, 114, 118, 114, 104, 109, 111, 118, 104, 107, 114, 111, 117, 111, 100, 110, 109, 109, 115, 107, 113, 113, 103, 106, 111, 110, 110, 110, 108, 108, 109, 116, 109, 107, 108, 110, 114, 112, 107, 109, 103, 110, 106, 112, 113, 110, 104, 108, 108, 112, 105, 110, 114, 113, 110, 114, 115, 111, 107, 106, 109, 110, 109, 113, 112, 116, 107, 104, 111, 118, 109, 104, 111, 109, 110, 114, 108, 107, 108, 106, 110, 103, 111, 111, 109, 124, 108, 111, 111, 109, 109, 115, 118, 106, 109, 112, 112, 109, 110, 108, 109, 107, 109, 108, 115, 114, 108, 116, 116, 107, 113, 113, 102, 113, 111, 115, 112, 114, 113, 108, 109, 109, 110, 108, 115, 113, 109, 115, 104, 102, 105, 109, 107, 109, 109, 107, 119, 113, 110, 109, 114, 118, 111, 114, 120, 111, 111, 112, 115, 112, 107, 113, 114, 116, 107, 112, 112, 109, 112, 110, 115, 109, 111, 112, 110, 108, 111, 108, 110, 111, 108, 112, 108, 106, 114, 99, 109, 109, 112, 112, 113, 117, 116, 105, 108, 109, 119, 112, 89, 109, 110, 102, 115, 107, 115, 88, 117, 114, 120, 111, 104, 108, 110, 110, 114, 96, 109, 114, 111, 114, 108, 111, 107, 112, 115, 105, 103, 111, 105, 104, 103, 109, 104, 95, 118, 108, 112, 106, 108, 110, 114, 102, 107, 115, 110, 108, 99, 121, 114, 98, 107, 87, 117, 106, 108, 110, 112, 94, 112, 99, 99, 109, 116, 109, 118, 115, 134, 112, 117, 108, 114, 113, 117, 106, 102, 109, 106, 107, 140, 112, 118, 103, 111, 118, 108, 116, 112, 105, 112, 114, 106, 101, 107, 114, 112, 94, 110, 115, 109, 106, 112, 112, 114, 106, 119, 113, 104, 122, 103, 110, 105, 113, 86, 111, 110, 92, 117, 111, 106, 99, 148, 113, 108, 110, 114, 113, 108, 107, 120, 107, 126, 114, 106, 112, 118, 107, 124, 106, 101, 124, 122, 105, 104, 116, 102, 114, 111, 112, 108, 104, 114, 111, 110, 86, 125, 117, 129, 116, 110, 112, 109, 97, 107, 105, 107, 114, 102, 92, 119, 110, 105, 118, 113, 118, 110, 102, 111, 109, 112, 105, 110, 126, 111, 117, 107, 108, 113, 95, 99, 113, 113, 109, 108, 112, 109, 118, 114, 115, 111, 107, 104, 113, 120, 108, 111, 100, 110, 104, 107, 127, 105, 119, 112, 116, 113, 93, 111, 109, 115, 121, 99, 117, 114, 113, 119, 111, 105, 106, 99, 108, 113, 104, 99, 103, 110, 106, 109, 111, 118, 105, 121, 112, 114, 108, 112, 113, 108, 110, 118, 112, 113, 112, 109, 115, 108, 100, 108, 122, 110, 113, 132, 108, 112, 133, 123, 109, 106, 111, 106, 118, 109, 109, 115, 110, 104, 109, 113, 111, 111, 109, 107, 113, 114, 113, 102, 106, 106, 121, 107, 112, 120, 110, 109, 106, 112, 111, 98, 116, 91, 113, 106, 97, 99, 108, 102, 114, 93, 107, 114, 114, 120, 111, 104, 113, 106, 109, 100, 111, 116, 106, 120, 108, 109, 122, 99, 127, 111, 123, 114, 96, 117, 103, 114, 115, 114, 107, 109, 112, 109, 122, 118, 133, 102, 110, 104, 110, 109, 106, 112, 112, 116, 118, 110, 106, 118, 119, 128, 120, 112, 117, 111, 105, 113, 118, 121, 101, 111, 111, 110, 97, 112, 108, 112, 94, 108, 110, 110, 112, 121, 106, 114, 109, 111, 101, 115, 111, 112, 107, 114, 104, 108, 99, 106, 106, 111, 112, 110, 106, 107, 110, 120, 111, 119, 124, 97, 120, 106, 104, 106, 116, 113, 108, 112, 115, 106, 115, 108, 107, 120, 107, 109, 105, 115, 119, 115, 114, 119, 110, 110, 107, 100, 107, 113, 110, 111, 109, 107, 102, 109, 115, 111, 99, 116, 106, 106, 111, 112, 108, 111, 113, 111, 123, 101, 113, 94, 96, 111, 108, 123, 99, 121, 97, 111, 84, 110, 115, 117, 99, 112, 112, 98, 114, 109, 123, 128, 110, 103, 104, 109, 113, 111, 107, 121, 109, 112, 119, 108, 111, 116, 111, 130, 112, 110, 113, 117, 94, 107, 101, 117, 104, 110, 111, 111, 108, 107, 122, 108, 109, 114, 115, 105, 111, 111, 148, 104, 101, 119, 130, 104, 112, 117, 126, 113, 110, 105, 111, 106, 100, 104, 100, 106, 107, 109, 103, 116, 102, 109, 112, 111, 128, 103, 111, 114, 103, 128, 124, 108, 104, 127, 106, 110, 104, 123, 108, 105, 112, 106, 106, 140, 111, 103, 107, 102, 116, 114, 115, 102, 102, 112, 137, 106, 123, 102, 122, 103, 115, 101, 115, 88, 116, 104, 120, 105, 113, 113, 115, 115, 106, 116, 117, 107, 117, 110, 99, 103, 97, 114, 108, 108, 107, 109, 106, 105, 79, 111, 102, 117, 97, 105, 112, 114, 101, 108, 111, 110, 105, 107, 101, 116, 123, 113, 102, 121, 107, 110, 115, 91, 116, 108, 103, 107, 112, 109, 102, 111, 100, 97, 103, 111, 113, 114, 110, 109, 118, 109, 124, 119, 107, 93, 106, 96, 113, 108, 117, 124, 116, 106, 107, 113, 108, 106, 105, 95, 97, 99, 102, 109, 107, 100, 100, 109, 107, 110, 115, 118, 114, 98, 99, 114, 145, 115, 101, 109, 110, 101, 113, 119, 115, 107, 108, 112, 110, 121, 97, 109, 121, 121, 121, 101, 117, 113, 117, 111, 107, 110, 110, 108, 109, 112, 105, 106, 102, 102, 108, 106, 124, 118, 113, 105, 113, 111, 100, 125, 106, 108, 103, 114, 114, 110, 106, 112, 89, 125, 105, 109, 102, 109, 110, 104, 100, 111, 118, 110, 103, 112, 121, 107, 108, 118, 113, 94, 112, 106, 109, 105, 113, 111, 122, 120, 112, 105, 107, 110, 116, 108, 108, 112, 138, 108, 105, 111, 103, 107, 109, 122, 101, 98, 109, 111, 117, 105, 116, 114, 116, 110, 107, 107, 112, 106, 109, 105, 114, 113, 111, 116, 113, 126, 109, 107, 101, 103, 110, 96, 111, 106, 120, 112, 119, 109, 102, 117, 105, 104, 107, 102, 125, 115, 109, 119, 124, 108, 103, 104, 116, 108, 119, 102, 123, 133, 116, 113, 102, 111, 115, 104, 95, 118, 121, 107, 113, 112, 116, 101, 143, 109, 108, 98, 107, 122, 139, 111, 94, 109, 106, 120, 104, 121, 110, 118, 104, 108, 114, 108, 110, 113, 104, 102, 100, 112, 105, 123, 107, 116, 118, 102, 106, 107, 111, 112, 113, 107, 115, 107, 103, 105, 128, 114, 109, 105, 104, 109, 105, 114, 102, 106, 100, 116, 111, 118, 124, 103, 120, 87, 112, 115, 112, 106, 110, 104, 109, 107, 112, 116, 83, 117, 108, 101, 95, 106, 109, 108, 106, 113, 112, 101, 107, 113, 100, 108, 111, 104, 104, 131, 109, 101, 110, 110, 106, 103, 105, 104, 99, 106, 101, 109, 120, 112, 105, 118, 115, 100, 102, 108, 117, 112, 100, 107, 110, 99, 108, 99, 96, 110, 123, 128, 96, 136, 110, 116, 119, 115, 104, 120, 112, 111, 116, 105, 111, 122, 114, 91, 108, 99, 111, 110, 110, 108, 129, 109, 110, 103, 111, 117, 104, 114, 112, 108, 100, 105, 115, 108, 117, 111, 120, 111, 111, 114, 128, 109, 109, 114, 111, 104, 112, 108, 109, 111, 117, 105, 113, 103, 110, 99, 120, 105, 105, 108, 103, 109, 105, 104, 110, 122, 108, 107, 107, 98, 106, 115, 102, 110, 105, 104, 104, 110, 127, 101, 120, 99, 112, 122, 115, 114, 117, 105, 118, 104, 103, 105, 108, 102, 113, 108, 103, 111, 107, 112, 114, 105, 117, 105, 123, 99, 111, 96, 113, 112, 93, 108, 105, 104, 112, 110, 106, 112, 109, 108, 96, 111, 115, 110, 109, 102, 114, 109, 105, 113, 113, 115, 98, 104, 111, 98, 104, 108, 99, 114, 109, 118, 106, 108, 109, 115, 106, 116, 124, 114, 116, 110, 105, 113, 108, 101, 116, 112, 110, 106, 109, 110, 102, 107, 103, 106, 123, 103, 107, 117, 118, 126, 99, 103, 99, 110, 110, 113, 95, 117, 105, 89, 101, 109, 110, 113, 108, 103, 109, 101, 106, 105, 108, 106, 103, 110, 110, 109, 116, 112, 130, 102, 105, 103, 104, 106, 123, 107, 93, 103, 111, 106, 121, 104, 99, 113, 110, 108, 99, 110, 109, 104, 105, 110, 107, 114, 121, 114, 107, 112, 102, 111, 104, 107, 110, 111, 108, 113, 100, 107, 107, 108, 112, 108, 105, 113, 105, 117, 107, 107, 100, 111, 118, 112, 100, 109, 108, 103, 107, 103, 103, 111, 114, 101, 107, 109, 107, 104, 109, 115, 106, 107, 102, 111, 105, 97, 99, 108, 117, 108, 105, 106, 121, 123, 124, 104, 96, 114, 114, 115, 115, 116, 116, 112, 106, 113, 117, 110, 107, 112, 108, 107, 115, 118, 106, 101, 104, 115, 105, 106, 102, 110, 104, 103, 109, 103, 107, 113, 111, 118, 98, 108, 114, 112, 106, 107, 108, 106, 106, 113, 100, 122, 135, 98, 103, 109, 110, 126, 105, 105, 115, 109, 105, 120, 104, 109, 123, 97, 116, 120, 99, 112, 110, 99, 109, 104, 109, 102, 112, 108, 103, 121, 105, 109, 95, 115, 120, 109, 113, 105, 104, 108, 111, 111, 102, 110, 99, 106, 101, 110, 122, 108, 109, 107, 110, 105, 118, 105, 105, 110, 100, 103, 108, 111, 107, 107, 110, 114, 113, 108, 145, 102, 123, 103, 111, 113, 108, 115, 110, 109, 114, 113, 108, 104, 108, 114, 104, 109, 109, 112, 117, 108, 113, 113, 109, 105, 111, 111, 105, 108, 108, 107, 105, 110, 112, 127, 104, 112, 108, 97, 95, 106, 100, 117, 102, 105, 113, 111, 113, 111, 117, 132, 97, 106, 111, 105, 114, 108, 116, 102, 98, 116, 107, 109, 106, 104, 113, 108, 114, 98, 110, 117, 105, 106, 102, 125, 137, 115, 109, 103, 96, 107, 117, 106, 104, 115, 107, 109, 108, 93, 112, 114, 119, 113, 105, 105, 92, 108, 119, 104, 108, 108, 130, 106, 119, 98, 107, 113, 111, 111, 102, 102, 115, 119, 102, 105, 103, 111, 112, 103, 124, 109, 124, 104, 122, 109, 116, 113, 111, 101, 119, 100, 104, 102, 108, 111, 107, 124, 119, 114, 107, 120, 110, 110, 112, 110, 100, 104, 120, 113, 103, 116, 111, 116, 119, 109, 112, 105, 116, 115, 113, 103, 112, 114, 91, 105, 100, 108, 112, 111, 112, 114, 101, 107, 116, 113, 105, 104, 99, 103, 115, 116, 105, 107, 105, 113, 112, 102, 109, 99, 107, 105, 111, 109, 107, 95, 108, 107, 95, 115, 118, 114, 111, 101, 101, 117, 108, 108, 89, 109, 104, 113, 124, 110, 118, 107, 110, 109, 113, 119, 114, 113, 105, 107, 106, 112, 101, 105, 110, 112, 116, 100, 111, 107, 114, 115, 114, 112, 99, 113, 109, 119, 104, 105, 119, 109, 109, 120, 119, 114, 114, 108, 121, 109, 111, 112, 100, 103, 103, 110, 110, 112, 116, 112, 113, 111, 109, 109, 109, 109, 106, 101, 118, 109, 111, 112, 109, 121, 115, 100, 111, 109, 110, 106, 111, 113, 111, 106, 109, 109, 110, 104, 109, 116, 108, 101, 108, 97, 117, 119, 106, 98, 116, 110, 115, 103, 111, 110, 108, 106, 116, 108, 105, 105, 115, 110, 125, 108, 100, 100, 114, 112, 114, 93, 112, 109, 113, 110, 112, 124, 113, 107, 111, 112, 108, 121, 111, 98, 110, 111, 125, 113, 112, 116, 113, 100, 113, 106, 115, 102, 112, 105, 108, 140, 108, 109, 114, 109, 106, 107, 118, 125, 94, 98, 111, 108, 102, 118, 100, 109, 102, 123, 109, 104, 107, 106, 104, 117, 109, 120, 80, 113, 111, 116, 117, 110, 110, 115, 105, 103, 115, 111, 112, 112, 108, 92, 111, 112, 129, 139, 118, 105, 108, 109, 109, 108, 96, 114, 101, 106, 105, 112, 112, 105, 108, 102, 104, 117, 113, 100, 112, 117, 114, 119, 105, 122, 109, 110, 113, 112, 109, 97, 113, 112, 111, 126, 113, 118, 106, 112, 108, 95, 121, 110, 106, 106, 113, 98, 110, 108, 115, 94, 107, 107, 117, 109, 111, 95, 98, 114, 99, 97, 105, 97, 106, 118, 110, 113, 99, 106, 114, 106, 110, 113, 119, 102, 113, 112, 110, 111, 106, 111, 120, 98, 116, 107, 106, 107, 112, 116, 99, 111, 113, 113, 101, 110, 109, 106, 121, 94, 99, 113, 103, 108, 104, 113, 116, 101, 104, 112, 104, 120, 106, 110, 113, 110, 113, 119, 112, 112, 101, 108, 128, 114, 110, 107, 96, 103, 117, 111, 100, 121, 106, 110, 123, 105, 94, 111, 103, 109, 106, 109, 111, 113, 105, 109, 110, 113, 113, 104, 104, 106, 112, 108, 108, 99, 107, 110, 105, 102, 115, 109, 111, 107, 125, 111, 116, 115, 109, 100, 109, 110, 128, 112, 113, 110, 108, 106, 108, 114, 114, 107, 121, 122, 99, 104, 103, 111, 111, 118, 109, 118, 111, 107, 116, 116, 108, 99, 100, 111, 111, 106, 101, 101, 109, 124, 115, 100, 117, 110, 117, 103, 107, 114, 98, 107, 111, 112, 102, 115, 103, 111, 111, 107, 106, 109, 94, 110, 106, 115, 108, 112, 96, 104, 107, 114, 110, 106, 106, 107, 111, 110, 110, 106, 112, 106, 114, 117, 107, 119, 106, 119, 118, 104, 112, 108, 116, 112, 125, 103, 121, 117, 105, 115, 107, 122, 111, 108, 121, 117, 119, 113, 106, 107, 113, 108, 104, 105, 110, 108, 111, 109, 122, 96, 94, 119, 110, 91, 108, 114, 116, 100, 113, 111, 106, 104, 127, 114, 111, 108, 107, 100, 102, 113, 92, 108, 108, 105, 110, 103, 116, 105, 115, 121, 118, 103, 110, 111, 117, 109, 113, 114, 111, 100, 111, 112, 105, 103, 111, 106, 133, 109, 114, 121, 103, 117, 105, 106, 113, 117, 117, 106, 105, 95, 109, 111, 104, 104, 108, 98, 112, 98, 108, 115, 109, 111, 115, 102, 106, 113, 110, 114, 102, 108, 105, 106, 104, 107, 98, 108, 107, 121, 118, 95, 113, 114, 111, 101, 114, 104, 107, 114, 112, 117, 103, 110, 107, 105, 120, 99, 98, 115, 116, 119, 110, 139, 102, 94, 109, 117, 122, 101, 108, 116, 116, 106, 114, 108, 110, 121, 117, 120, 106, 109, 112, 118, 105, 113, 109, 122, 111, 105, 108, 102, 112, 110, 102, 105, 112, 111, 104, 95, 84, 105, 119, 102, 108, 118, 102, 109, 113, 105, 110, 112, 121, 105, 107, 120, 119, 117, 103, 110, 114, 110, 117, 109, 120, 108, 113, 106, 109, 116, 91, 137, 117, 109, 117, 85, 104, 117, 105, 110, 118, 114, 107, 104, 102, 112, 115, 106, 122, 101, 107, 121, 119, 123, 124, 114, 113, 117, 104, 108, 106, 111, 112, 90, 97, 107, 111, 117, 109, 127, 114, 111, 96, 117, 108, 120, 110, 107, 106, 113, 108, 115, 109, 113, 106, 112, 116, 97, 113, 119, 105, 117, 112, 105, 118, 109, 99, 116, 101, 105, 109, 116, 108, 104, 107, 110, 119, 104, 103, 113, 116, 117, 101, 102, 115, 110, 112, 111, 120, 113, 107, 109, 120, 113, 129, 109, 103, 112, 112, 113, 115, 111, 107, 121, 107, 114, 121, 103, 128, 99, 105, 114, 110, 112, 113, 132, 111, 117, 114, 105, 115, 105, 101, 109, 108, 112, 94, 107, 112, 99, 104, 113, 125, 104, 113, 114, 116, 108, 126, 92, 113, 105, 104, 115, 116, 100, 112, 116, 103, 107, 98, 122, 105, 112, 111, 111, 105, 106, 113, 103, 101, 111, 125, 108, 107, 123, 113, 107, 103, 112, 103, 106, 110, 105, 110, 118, 102, 110, 85, 111, 109, 107, 110, 103, 111, 109, 107, 113, 107, 108, 117, 115, 122, 111, 107, 113, 108, 129, 93, 109, 109, 106, 107, 107, 110, 111, 90, 101, 123, 114, 82, 108, 108, 115, 116, 99, 116, 126, 114, 105, 124, 120, 117, 103, 120, 110, 112, 106, 102, 112, 109, 96, 105, 106, 103, 110, 108, 114, 105, 115, 110, 112, 105, 105, 112, 106, 109, 117, 114, 107, 103, 108, 109, 107, 120, 131, 114, 116, 107, 106, 113, 104, 100, 106, 111, 112, 106, 134, 119, 120, 102, 104, 95, 110, 111, 111, 114, 104, 107, 100, 96, 110, 112, 103, 120, 116, 119, 132, 115, 105, 112, 110, 120, 122, 119, 109, 115, 107, 113, 107, 111, 104, 114, 117, 111, 112, 114, 124, 103, 112, 122, 107, 111, 109, 108, 103, 137, 113, 106, 115, 110, 107, 105, 114, 86, 112, 110, 111, 110, 102, 121, 114, 111, 110, 113, 111, 115, 121, 106, 110, 107, 109, 110, 114, 117, 105, 109, 114, 109, 110, 112, 106, 118, 117, 113, 114, 111, 118, 111, 112, 108, 114, 106, 115, 107, 110, 110, 118, 105, 109, 115, 108, 120, 114, 106, 111, 113, 112, 105, 108, 111, 114, 108, 110, 107, 107, 105, 109, 111, 111, 110, 108, 115, 114, 116, 111, 114, 107, 113, 108, 115, 113, 106, 107, 111, 114, 111, 107, 109, 115, 111, 109, 108, 109, 104, 110, 116, 110, 114, 109, 110, 108, 113, 114, 113, 110, 108, 112, 111, 113, 108, 104, 110, 118, 115, 108, 113, 102, 115, 118, 105, 108, 107, 109, 108, 110, 111, 119, 112, 112, 110, 115, 113, 112, 105, 116, 102, 109, 110, 110, 113, 110, 106, 108, 112, 114, 115, 107, 109, 112, 111, 110, 106, 108, 106, 103, 111, 116, 111, 110, 114, 112, 108, 102, 108, 121, 108, 112, 111, 114, 116, 113, 111, 112, 106, 111, 111, 112, 102, 106, 107, 109, 112, 113, 112, 114, 112, 115, 108, 111, 110, 111, 114, 118, 114, 115, 110, 117, 109, 111, 111, 103, 112, 112, 125, 108, 105, 112, 107, 110, 115, 105, 115, 111, 114, 105, 106, 107, 105, 107, 111, 111, 114, 108, 110, 106, 111, 111, 111, 113, 105, 108, 115, 114, 110, 114, 113, 107, 112, 104, 105, 110, 117, 112, 104, 110, 114, 106, 113, 112, 104, 109, 114, 113, 116, 104, 105, 104, 111, 119, 112, 109, 110, 103, 104, 109, 117, 105, 109, 111, 110, 102, 117, 106, 109, 119, 107, 109, 113, 112, 109, 109, 112, 108, 113, 108, 109, 111, 110, 105, 105, 113, 105, 108, 115, 103, 114, 114, 108, 111, 115, 111, 116, 113, 109, 103, 120, 108, 109, 99, 110, 108, 104, 107, 108, 112, 111, 107, 110, 111, 106, 130, 114, 106, 106, 112, 109, 105, 106, 112, 112, 111, 109, 110, 107, 108, 113, 110, 108, 111, 104, 109, 111, 113, 109, 110, 108, 107, 112, 108, 109, 116, 107, 109, 110, 112, 106, 107, 109, 112, 101, 106, 115, 109, 110, 110, 112, 116, 122, 108, 115, 114, 117, 108, 109, 114, 106, 105, 110, 103, 108, 110, 109, 110, 105, 113, 109, 106, 108, 113, 121, 108, 115, 112, 114, 114, 106, 111, 111, 110, 107, 107, 116, 113, 112, 109, 104, 111, 110, 111, 111, 102, 108, 107, 116, 116, 107, 118, 109, 107, 123, 114, 110, 113, 107, 111, 114, 104, 112, 110, 108, 100, 122, 110, 113, 111, 106, 107, 102, 110, 111, 113, 114, 111, 104, 111, 113, 111, 108, 107, 116, 110, 107, 109, 107, 113, 106, 106, 112, 102, 108, 108, 114, 115, 118, 104, 109, 106, 120, 113, 107, 106, 109, 108, 109, 109, 109, 108, 111, 110, 109, 115, 112, 105, 113, 112, 110, 110, 109, 113, 110, 107, 104, 110, 112, 106, 114, 114, 107, 110, 112, 107, 111, 112, 109, 116, 106, 112, 104, 108, 112, 108, 113, 108, 106, 104, 110, 113, 114, 114, 102, 109, 98, 125, 99, 110, 98, 111, 102, 111, 108, 106, 108, 112, 109, 112, 106, 112, 122, 104, 110, 107, 105, 106, 114, 107, 111, 99, 109, 118, 103, 116, 109, 105, 108, 104, 101, 107, 117, 121, 110, 107, 99, 120, 117, 113, 107, 113, 108, 104, 95, 108, 106, 108, 106, 96, 112, 105, 123, 128, 112, 115, 115, 105, 110, 121, 110, 103, 106, 113, 113, 113, 105, 96, 110, 124, 111, 107, 115, 111, 113, 95, 109, 130, 113, 128, 137, 130, 114, 114, 108, 108, 102, 106, 107, 113, 113, 114, 114, 104, 112, 109, 108, 122, 94, 105, 118, 114, 119, 100, 107, 112, 99, 107, 111, 104, 110, 107, 112, 97, 110, 115, 109, 109, 89, 111, 109, 109, 106, 107, 110, 104, 113, 103, 114, 103, 108, 111, 107, 130, 118, 111, 111, 100, 109, 113, 107, 105, 111, 102, 115, 110, 110, 106, 107, 104, 110, 109, 113, 112, 112, 105, 105, 107, 116, 115, 108, 109, 115, 107, 107, 109, 99, 109, 108, 128, 111, 112, 112, 108, 98, 107, 96, 91, 122, 115, 98, 119, 99, 115, 112, 110, 108, 111, 103, 110, 101, 117, 105, 115, 109, 106, 109, 112, 106, 123, 109, 110, 110, 97, 104, 106, 118, 100, 123, 107, 106, 106, 120, 117, 112, 110, 115, 105, 110, 121, 117, 109, 113, 112, 114, 102, 107, 98, 109, 104, 102, 106, 117, 103, 123, 104, 107, 109, 119, 100, 110, 118, 111, 117, 109, 111, 108, 109, 109, 113, 124, 112, 120, 109, 95, 106, 106, 107, 105, 109, 110, 104, 107, 119, 121, 107, 104, 112, 107, 119, 113, 113, 111, 108, 107, 108, 123, 107, 101, 88, 109, 110, 112, 101, 123, 120, 97, 109, 106, 109, 106, 120, 120, 106, 121, 113, 105, 99, 138, 102, 98, 110, 109, 115, 106, 115, 112, 109, 114, 100, 113, 107, 106, 114, 124, 108, 113, 106, 106, 95, 107, 112, 111, 114, 115, 111, 119, 99, 100, 114, 108, 109, 111, 106, 107, 108, 112, 103, 109, 104, 112, 104, 105, 111, 104, 112, 113, 112, 105, 112, 106, 128, 111, 111, 111, 105, 112, 124, 105, 124, 103, 109, 112, 97, 108, 114, 110, 129, 103, 114, 93, 117, 107, 123, 116, 110, 105, 116, 125, 100, 102, 115, 106, 108, 107, 122, 114, 120, 111, 108, 109, 108, 112, 117, 105, 108, 105, 100, 109, 115, 109, 111, 113, 102, 110, 124, 92, 114, 117, 105, 107, 111, 110, 107, 108, 114, 108, 112, 110, 114, 104, 105, 111, 105, 105, 109, 108, 109, 111, 114, 98, 119, 113, 105, 106, 107, 112, 109, 115, 115, 101, 120, 114, 110, 101, 112, 105, 112, 109, 108, 102, 106, 109, 110, 102, 111, 104, 120, 98, 109, 106, 109, 103, 111, 105, 109, 103, 110, 112, 104, 111, 111, 113, 114, 108, 107, 99, 106, 91, 106, 114, 115, 106, 109, 113, 114, 115, 124, 111, 111, 101, 115, 112, 100, 108, 116, 105, 105, 110, 114, 109, 108, 105, 117, 107, 107, 113, 114, 115, 109, 113, 111, 108, 106, 110, 104, 114, 113, 109, 115, 107, 108, 107, 120, 110, 123, 114, 110, 105, 115, 113, 104, 108, 108, 112, 113, 112, 109, 112, 109, 109, 103, 105, 122, 112, 106, 108, 123, 117, 109, 108, 112, 111, 111, 114, 113, 110, 108, 116, 109, 107, 113, 107, 111, 113, 111, 110, 118, 111, 99, 112, 110, 111, 106, 109, 108, 108, 108, 107, 112, 105, 108, 112, 110, 115, 109, 111, 111, 114, 111, 110, 113, 117, 111, 112, 117, 112, 109, 109, 103, 110, 107, 108, 107, 116, 117, 106, 104, 113, 104, 114, 109, 112, 117, 107, 110, 109, 110, 122, 114, 117, 108, 112, 113, 112, 116, 104, 122, 106, 110, 111, 121, 103, 106, 111, 117, 110, 104, 104, 113, 117, 118, 114, 112, 107, 105, 115, 107, 117, 116, 107, 113, 118, 112, 112, 109, 117, 112, 108, 110, 115, 108, 114, 109, 111, 103, 112, 113, 111, 114, 100, 108, 108, 106, 111, 111, 110, 110, 111, 111, 105, 109, 112, 111, 110, 111, 107, 110, 108, 113, 113, 106, 111, 106, 106, 108, 120, 112, 111, 109, 122, 107, 104, 113, 116, 108, 114, 105, 106, 117, 112, 106, 114, 115, 106, 115, 115, 119, 105, 113, 117, 111, 118, 111, 113, 104, 106, 115, 107, 109, 115, 106, 115, 107, 105, 117, 108, 114, 107, 120, 116, 103, 109, 110, 111, 110, 107, 117, 108, 106, 106, 109, 116, 105, 107, 107, 116, 102, 110, 119, 106, 109, 104, 109, 109, 112, 116, 116, 111, 109, 111, 104, 109, 112, 110, 118, 115, 106, 123, 111, 106, 120, 121, 114, 109, 109, 109, 114, 108, 118, 105, 115, 111, 114, 106, 115, 109, 103, 110, 109, 112, 111, 103, 110, 109, 111, 111, 108, 117, 106, 114, 114, 111, 110, 115, 109, 108, 112, 103, 108, 121, 113, 109, 119, 107, 101, 101, 115, 107, 106, 110, 112, 115, 106, 115, 112, 106, 121, 111, 108, 109, 105, 106, 114, 114, 107, 111, 121, 115, 104, 113, 110, 112, 115, 117, 111, 109, 115, 112, 110, 120, 110, 105, 112, 111, 112, 110, 111, 107, 117, 123, 109, 121, 105, 107, 119, 109, 107, 105, 111, 119, 114, 105, 113, 112, 116, 106, 108, 105, 114, 113, 108, 110, 107, 110, 116, 112, 116, 104, 119, 110, 110, 106, 104, 109, 113, 111, 103, 120, 104, 104, 112, 107, 108, 110, 107, 111, 113, 113, 111, 111, 117, 109, 110, 110, 108, 110, 113, 110, 109, 109, 107, 111, 114, 105, 110, 109, 111, 110, 109, 106, 114, 108, 106, 111, 114, 109, 109, 113, 115, 109, 109, 111, 111, 110, 111, 108, 119, 111, 112, 118, 114, 115, 120, 105, 113, 110, 103, 112, 105, 109, 112, 106, 114, 116, 115, 105, 108, 110, 116, 121, 112, 109, 116, 114, 109, 110, 111, 110, 112, 113, 108, 122, 110, 111, 109, 108, 109, 115, 115, 119, 108, 109, 113, 118, 108, 104, 105, 111, 105, 119, 110, 113, 107, 112, 120, 106, 114, 113, 106, 106, 106, 111, 108, 116, 112, 104, 104, 131, 106, 99, 103, 116, 115, 97, 99, 111, 114, 113, 114, 109, 115, 103, 117, 116, 112, 108, 129, 108, 100, 107, 112, 110, 118, 114, 141, 117, 115, 103, 96, 112, 107, 107, 111, 96, 112, 114, 107, 98, 116, 106, 108, 111, 105, 111, 121, 116, 112, 108, 112, 113, 117, 98, 105, 108, 113, 104, 112, 106, 102, 123, 106, 113, 106, 120, 108, 111, 123, 110, 109, 106, 103, 109, 102, 107, 115, 116, 118, 118, 116, 99, 99, 105, 106, 112, 122, 114, 115, 117, 110, 109, 108, 108, 106, 103, 97, 107, 116, 119, 110, 115, 108, 106, 114, 109, 104, 112, 116, 117, 135, 106, 107, 109, 124, 121, 109, 105, 115, 111, 105, 118, 109, 107, 109, 115, 108, 104, 114, 116, 111, 115, 105, 112, 106, 109, 107, 111, 112, 98, 113, 105, 113, 113, 104, 109, 110, 109, 115, 111, 99, 115, 101, 115, 116, 115, 111, 99, 110, 107, 108, 112, 109, 108, 104, 116, 119, 117, 108, 107, 100, 114, 102, 110, 79, 108, 106, 113, 103, 109, 107, 116, 111, 111, 106, 101, 106, 110, 112, 109, 104, 116, 112, 111, 113, 118, 105, 110, 108, 111, 110, 120, 112, 120, 101, 113, 115, 119, 104, 106, 118, 108, 115, 112, 108, 108, 105, 108, 136, 106, 105, 117, 103, 108, 106, 107, 110, 111, 110, 110, 104, 112, 114, 106, 110, 122, 108, 111, 102, 119, 112, 116, 112, 112, 109, 110, 111, 109, 109, 111, 112, 108, 106, 110, 110, 108, 116, 109, 116, 101, 104, 108, 103, 108, 109, 120, 112, 106, 104, 110, 104, 109, 106, 113, 116, 115, 105, 108, 113, 107, 117, 107, 108, 111, 117, 104, 107, 107, 126, 121, 107, 99, 110, 97, 110, 117, 105, 106, 115, 116, 110, 109, 109, 115, 115, 106, 104, 101, 109, 115, 112, 115, 110, 111, 117, 109, 112, 112, 102, 109, 129, 110, 116, 110, 112, 109, 105, 125, 110, 112, 102, 113, 106, 107, 116, 104, 110, 110, 98, 106, 122, 110, 109, 119, 110, 101, 122, 100, 110, 105, 113, 105, 107, 116, 111, 110, 107, 119, 107, 87, 108, 105, 110, 97, 115, 108, 116, 103, 107, 116, 106, 108, 108, 111, 111, 99, 108, 106, 115, 112, 113, 112, 107, 115, 104, 109, 108, 113, 114, 103, 110, 108, 115, 116, 116, 113, 101, 103, 115, 99, 113, 106, 106, 113, 106, 116, 103, 107, 105, 111, 116, 106, 114, 105, 108, 114, 107, 107, 114, 108, 119, 119, 102, 105, 109, 122, 114, 108, 117, 104, 112, 107, 111, 115, 105, 110, 113, 108, 113, 109, 102, 105, 109, 113, 108, 102, 116, 116, 113, 102, 108, 109, 112, 109, 110, 110, 110, 111, 106, 112, 117, 109, 115, 99, 111, 112, 114, 106, 111, 108, 106, 125, 105, 128, 114, 94, 111, 105, 108, 109, 105, 121, 109, 98, 109, 110, 108, 107, 109, 108, 108, 100, 99, 103, 99, 106, 106, 112, 113, 102, 107, 100, 112, 114, 105, 107, 122, 118, 105, 106, 109, 114, 104, 125, 103, 108, 120, 113, 108, 113, 109, 118, 112, 100, 102, 100, 102, 121, 104, 112, 103, 108, 110, 113, 107, 109, 107, 105, 116, 110, 103, 97, 109, 108, 99, 123, 131, 113, 111, 123, 118, 111, 108, 102, 125, 110, 110, 119, 108, 104, 114, 114, 116, 108, 118, 115, 116, 112, 113, 117, 96, 129, 109, 104, 101, 107, 107, 119, 107, 107, 102, 101, 101, 97, 107, 107, 111, 105, 111, 121, 114, 107, 92, 106, 111, 118, 109, 103, 104, 108, 114, 106, 102, 100, 113, 117, 111, 106, 104, 117, 101, 107, 115, 105, 119, 110, 113, 100, 108, 98, 106, 109, 108, 110, 102, 110, 111, 113, 104, 103, 105, 104, 111, 115, 105, 97, 106, 117, 103, 113, 108, 108, 101, 106, 102, 102, 114, 106, 109, 106, 117, 104, 110, 109, 113, 100, 116, 112, 113, 111, 110, 107, 115, 111, 109, 109, 109, 92, 108, 102, 108, 126, 113, 119, 102, 114, 114, 126, 113, 112, 114, 111, 114, 107, 110, 101, 121, 109, 105, 109, 120, 132, 106, 108, 107, 111, 115, 106, 102, 121, 114, 101, 108, 114, 102, 107, 116, 108, 115, 108, 105, 108, 107, 113, 107, 110, 107, 107, 99, 106, 108, 112, 106, 109, 109, 106, 102, 112, 105, 109, 104, 124, 106, 114, 117, 102, 105, 114, 115, 116, 112, 106, 126, 109, 116, 106, 101, 105, 107, 115, 116, 108, 111, 113, 107, 111, 117, 100, 108, 107, 105, 106, 115, 113, 111, 113, 103, 123, 110, 105, 106, 113, 128, 105, 106, 104, 110, 106, 99, 116, 112, 99, 108, 109, 115, 109, 106, 100, 112, 109, 114, 110, 116, 108, 110, 111, 108, 106, 108, 100, 110, 101, 107, 109, 109, 104, 98, 110, 111, 100, 106, 116, 113, 100, 97, 112, 113, 108, 109, 115, 100, 97, 97, 104, 107, 105, 108, 113, 101, 114, 128, 109, 112, 127, 112, 106, 114, 102, 105, 121, 115, 101, 117, 100, 99, 113, 112, 111, 100, 97, 106, 118, 103, 104, 112, 118, 105, 105, 112, 115, 105, 108, 111, 101, 109, 114, 110, 105, 110, 118, 111, 118, 119, 110, 102, 111, 106, 103, 120, 100, 107, 120, 97, 106, 110, 105, 110, 116, 103, 125, 108, 126, 107, 108, 102, 107, 96, 112, 114, 117, 105, 108, 111, 110, 116, 115, 108, 107, 106, 106, 98, 109, 111, 117, 114, 107, 109, 112, 102, 110, 112, 109, 103, 112, 107, 107, 114, 107, 105, 113, 109, 111, 112, 104, 98, 105, 110, 113, 114, 107, 109, 88, 105, 106, 126, 105, 105, 125, 108, 110, 114, 109, 102, 106, 118, 113, 110, 110, 107, 99, 111, 106, 111, 101, 108, 99, 103, 111, 116, 103, 98, 113, 95, 102, 110, 109, 98, 98, 112, 100, 104, 126, 102, 108, 113, 110, 116, 109, 113, 106, 108, 105, 105, 107, 110, 108, 105, 114, 106, 106, 101, 99, 114, 109, 117, 111, 113, 113, 100, 144, 111, 106, 113, 115, 105, 111, 122, 102, 109, 128, 106, 109, 108, 112, 115, 114, 112, 114, 113, 112, 110, 108, 104, 105, 117, 113, 123, 112, 108, 105, 123, 111, 116, 113, 114, 109, 107, 110, 119, 107, 112, 116, 104, 110, 111, 101, 110, 105, 100, 112, 84, 101, 117, 121, 112, 111, 110, 111, 119, 109, 107, 100, 112, 98, 120, 113, 109, 114, 102, 107, 109, 113, 106, 106, 110, 116, 115, 110, 106, 120, 113, 112, 114, 117, 114, 120, 97, 109, 105, 113, 110, 112, 107, 122, 109, 83, 114, 114, 110, 107, 93, 109, 113, 111, 107, 110, 96, 113, 96, 102, 100, 111, 116, 111, 102, 111, 110, 106, 112, 111, 97, 108, 107, 106, 105, 109, 107, 115, 114, 105, 111, 109, 115, 126, 119, 102, 115, 115, 117, 112, 109, 116, 109, 116, 120, 114, 111, 111, 111, 99, 106, 118, 113, 108, 110, 108, 113, 105, 115, 110, 115, 119, 105, 107, 109, 121, 79, 110, 112, 108, 108, 115, 116, 112, 107, 96, 113, 115, 95, 110, 100, 112, 98, 112, 104, 114, 114, 114, 106, 123, 99, 113, 114, 114, 111, 105, 111, 107, 112, 110, 109, 111, 106, 107, 111, 108, 104, 122, 87, 107, 120, 112, 119, 108, 104, 126, 112, 114, 112, 100, 118, 115, 112, 106, 111, 93, 112, 102, 112, 100, 109, 111, 113, 111, 107, 110, 109, 96, 121, 110, 115, 96, 109, 123, 107, 110, 127, 94, 122, 105, 102, 104, 116, 117, 107, 106, 110, 116, 107, 97, 108, 92, 106, 118, 108, 104, 112, 111, 114, 119, 93, 114, 108, 110, 103, 103, 115, 111, 116, 109, 125, 103, 99, 139, 130, 115, 102, 114, 124, 112, 112, 111, 104, 113, 114, 130, 115, 109, 117, 111, 115, 120, 111, 98, 108, 108, 102, 111, 113, 103, 107, 110, 112, 108, 114, 115, 103, 103, 99, 107, 111, 98, 119, 104, 107, 115, 133, 106, 108, 113, 111, 116, 108, 110, 109, 109, 116, 129, 112, 122, 108, 119, 107, 112, 98, 101, 112, 110, 106, 104, 111, 114, 115, 112, 108, 109, 99, 110, 110, 105, 108, 110, 105, 107, 108, 110, 97, 111, 109, 115, 102, 107, 139, 104, 110, 111, 94, 103, 105, 114, 107, 112, 100, 106, 117, 115, 110, 117, 100, 103, 107, 112, 111, 113, 121, 112, 100, 107, 108, 103, 111, 116, 99, 107, 107, 115, 115, 117, 129, 114, 105, 107, 106, 112, 101, 114, 100, 112, 92, 119, 107, 94, 116, 102, 116, 113, 104, 105, 108, 107, 142, 101, 113, 110, 115, 108, 112, 109, 118, 122, 120, 115, 115, 111, 107, 104, 105, 115, 73, 115, 100, 111, 112, 108, 114, 125, 115, 114, 109, 106, 98, 108, 109, 109, 112, 103, 125, 109, 110, 112, 113, 115, 110, 115, 115, 104, 111, 106, 111, 101, 104, 105, 106, 106, 113, 117, 106, 110, 107, 102, 109, 114, 112, 107, 109, 104, 105, 111, 98, 125, 92, 117, 94, 102, 110, 115, 118, 114, 100, 115, 110, 111, 101, 131, 109, 107, 114, 121, 116, 103, 115, 116, 112, 111, 105, 107, 97, 118, 115, 106, 117, 114, 119, 113, 112, 111, 107, 113, 113, 105, 115, 106, 114, 112, 110, 106, 112, 99, 107, 84, 108, 101, 104, 111, 117, 121, 118, 112, 108, 111, 105, 107, 106, 106, 104, 109, 111, 109, 109, 117, 105, 108, 105, 120, 117, 110, 123, 113, 116, 100, 107, 102, 128, 101, 74, 105, 109, 112, 113, 99, 117, 105, 107, 112, 123, 107, 87, 98, 115, 109, 128, 111, 119, 108, 102, 110, 77, 107, 93, 103, 105, 118, 111, 105, 112, 99, 116, 119, 117, 98, 110, 111, 108, 114, 109, 104, 111, 112, 95, 108, 106, 113, 109, 106, 109, 119, 111, 112, 127, 112, 111, 104, 108, 109, 121, 103, 105, 109, 118, 115, 118, 106, 113, 103, 111, 105, 105, 111, 103, 111, 110, 108, 114, 106, 108, 112, 115, 109, 103, 110, 110, 109, 144, 109, 106, 110, 104, 106, 105, 112, 105, 104, 116, 105, 104, 96, 107, 115, 114, 110, 115, 117, 111, 123, 121, 112, 101, 90, 121, 106, 97, 111, 110, 125, 108, 125, 106, 113, 109, 126, 115, 107, 121, 105, 103, 100, 119, 112, 114, 121, 116, 114, 98, 111, 111, 97, 103, 112, 114, 103, 113, 108, 108, 102, 108, 109, 114, 111, 101, 121, 105, 115, 109, 118, 110, 108, 115, 114, 101, 104, 114, 108, 109, 114, 106, 111, 122, 93, 117, 111, 109, 104, 112, 101, 121, 110, 121, 109, 114, 116, 106, 119, 127, 100, 115, 116, 106, 101, 110, 114, 119, 103, 108, 111, 106, 99, 108, 109, 104, 118, 129, 106, 109, 110, 112, 114, 109, 110, 109, 109, 109, 111, 115, 113, 111, 100, 116, 107, 111, 112, 93, 110, 99, 94, 106, 109, 107, 112, 112, 112, 112, 109, 117, 113, 113, 109, 114, 93, 113, 110, 107, 106, 112, 115, 116, 102, 112, 106, 111, 110, 109, 110, 120, 106, 114, 113, 101, 101, 127, 101, 122, 114, 113, 112, 106, 116, 105, 109, 115, 114, 104, 107, 105, 114, 102, 99, 112, 117, 113, 117, 105, 104, 107, 141, 111, 105, 94, 100, 113, 96, 134, 107, 127, 110, 105, 100, 90, 112, 113, 127, 116, 105, 109, 111, 101, 106, 115, 105, 112, 118, 105, 111, 108, 111, 120, 108, 112, 109, 105, 109, 107, 111, 119, 114, 116, 117, 124, 129, 116, 105, 108, 147, 107, 107, 116, 119, 111, 119, 107, 111, 118, 123, 126, 109, 118, 110, 115, 120, 118, 114, 112, 114, 116, 113, 120, 108, 107, 128, 104, 112, 113, 115, 127, 108, 115, 122, 107, 103, 111, 112, 108, 112, 104, 101, 110, 118, 110, 111, 120, 109, 117, 111, 102, 106, 105, 113, 117, 104, 104, 97, 109, 112, 111, 115, 104, 112, 111, 110, 90, 109, 109, 114, 110, 103, 114, 114, 121, 113, 107, 113, 116, 110, 124, 108, 116, 106, 105, 112, 110, 105, 113, 116, 116, 105, 115, 105, 117, 111, 105, 104, 103, 112, 115, 110, 116, 107, 88, 107, 112, 104, 105, 110, 111, 108, 109, 112, 113, 107, 112, 107, 111, 112, 112, 110, 109, 109, 107, 106, 114, 113, 106, 109, 112, 110, 110, 113, 109, 107, 109, 106, 111, 116, 109, 108, 109, 110, 111, 105, 104, 110, 104, 112, 115, 116, 113, 114, 110, 116, 110, 111, 109, 110, 109, 111, 107, 105, 116, 110, 108, 109, 110, 111, 118, 110, 111, 115, 109, 112, 109, 104, 113, 109, 114, 111, 109, 110, 109, 109, 112, 113, 114, 109, 114, 118, 105, 106, 110, 105, 109, 112, 109, 107, 109, 114, 113, 113, 100, 107, 107, 111, 112, 106, 112, 114, 112, 112, 112, 109, 113, 107, 110, 110, 110, 114, 108, 109, 108, 116, 113, 106, 108, 110, 103, 113, 108, 109, 107, 115, 103, 114, 110, 118, 113, 111, 106, 115, 104, 114, 111, 105, 117, 112, 113, 115, 110, 111, 108, 111, 112, 110, 106, 109, 109, 107, 110, 106, 108, 110, 110, 105, 118, 106, 111, 114, 109, 111, 114, 108, 109, 109, 109, 112, 113, 109, 109, 115, 101, 105, 116, 109, 105, 114, 110, 110, 137, 111, 110, 113, 111, 107, 107, 112, 108, 110, 106, 112, 109, 112, 108, 111, 96, 114, 136, 105, 108, 108, 108, 107, 109, 104, 107, 108, 109, 111, 106, 111, 112, 112, 110, 105, 107, 104, 113, 112, 117, 111, 106, 107, 110, 110, 116, 112, 104, 108, 115, 113, 110, 108, 111, 108, 89, 115, 107, 120, 113, 116, 110, 108, 119, 111, 112, 111, 111, 110, 109, 117, 108, 108, 110, 113, 108, 107, 123, 111, 109, 110, 110, 110, 111, 115, 109, 107, 108, 106, 115, 112, 106, 106, 102, 115, 111, 114, 105, 112, 109, 111, 106, 109, 112, 105, 111, 116, 112, 111, 111, 112, 108, 113, 108, 110, 108, 106, 111, 113, 112, 112, 109, 111, 108, 107, 112, 110, 108, 113, 106, 112, 111, 114, 111, 110, 114, 110, 114, 112, 108, 108, 110, 109, 103, 108, 98, 107, 106, 104, 109, 110, 106, 110, 110, 105, 111, 114, 112, 113, 107, 112, 111, 111, 108, 113, 113, 116, 107, 113, 111, 114, 109, 109, 107, 108, 118, 118, 124, 108, 112, 109, 109, 112, 109, 115, 108, 108, 108, 103, 107, 113, 108, 109, 111, 109, 111, 110, 111, 110, 108, 110, 111, 107, 105, 110, 104, 110, 113, 112, 110, 108, 109, 109, 113, 116, 115, 110, 109, 114, 118, 110, 111, 108, 110, 110, 112, 120, 107, 110, 110, 112, 106, 107, 112, 109, 116, 110, 109, 115, 108, 117, 112, 110, 112, 108, 111, 108, 107, 91, 102, 112, 109, 113, 110, 107, 108, 111, 107, 109, 120, 108, 104, 108, 108, 115, 109, 113, 108, 118, 113, 111, 109, 113, 111, 107, 110, 113, 109, 108, 108, 120, 110, 110, 106, 109, 107, 117, 109, 110, 110, 111, 114, 107, 114, 100, 114, 113, 120, 114, 108, 110, 111, 111, 123, 112, 107, 111, 112, 109, 111, 105, 114, 106, 114, 115, 107, 117, 116, 108, 109, 110, 105, 113, 106, 108, 104, 106, 116, 111, 111, 111, 107, 107, 112, 111, 112, 110, 111, 112, 112, 107, 115, 111, 113, 110, 112, 110, 105, 108, 110, 113, 104, 112, 110, 109, 107, 113, 115, 113, 113, 109, 108, 107, 116, 110, 109, 103, 108, 108, 112, 108, 90, 109, 107, 113, 107, 112, 114, 112, 94, 110, 112, 113, 108, 119, 114, 110, 110, 105, 110, 111, 111, 110, 108, 110, 113, 110, 99, 107, 145, 109, 110, 112, 110, 103, 115, 110, 102, 112, 108, 107, 107, 92, 113, 74, 109, 119, 111, 113, 121, 107, 124, 112, 108, 111, 107, 114, 118, 118, 120, 110, 111, 108, 97, 107, 108, 102, 105, 109, 110, 111, 112, 110, 108, 100, 108, 106, 107, 117, 110, 114, 112, 106, 110, 70, 114, 111, 110, 107, 117, 112, 117, 108, 99, 110, 108, 108, 139, 107, 122, 124, 125, 72, 106, 108, 114, 108, 109, 106, 106, 113, 111, 102, 110, 108, 115, 110, 131, 99, 107, 111, 110, 107, 111, 106, 114, 112, 114, 113, 105, 112, 129, 112, 122, 111, 106, 109, 110, 111, 107, 110, 109, 107, 110, 103, 109, 108, 113, 110, 109, 104, 106, 111, 105, 104, 111, 114, 101, 94, 99, 107, 106, 110, 121, 112, 113, 82, 108, 116, 106, 114, 110, 110, 108, 109, 108, 110, 113, 108, 111, 111, 118, 96, 108, 99, 109, 105, 107, 112, 104, 100, 111, 115, 110, 120, 114, 112, 114, 133, 115, 109, 112, 115, 110, 110, 106, 105, 113, 114, 110, 113, 116, 114, 113, 114, 109, 107, 109, 106, 108, 111, 98, 114, 109, 107, 108, 109, 106, 108, 108, 104, 103, 109, 110, 123, 108, 142, 116, 105, 98, 109, 107, 111, 113, 110, 110, 110, 114, 105, 109, 109, 113, 112, 106, 114, 108, 110, 115, 105, 114, 114, 110, 110, 110, 109, 106, 115, 110, 109, 109, 114, 105, 112, 111, 113, 114, 104, 103, 107, 99, 105, 112, 106, 113, 115, 112, 109, 107, 101, 106, 108, 108, 110, 108, 110, 108, 110, 112, 112, 109, 112, 108, 105, 107, 110, 110, 106, 123, 110, 110, 110, 105, 110, 107, 111, 107, 110, 109, 108, 111, 104, 108, 112, 108, 110, 108, 109, 83, 111, 117, 111, 118, 109, 110, 111, 105, 109, 110, 98, 109, 107, 110, 110, 110, 110, 115, 116, 116, 111, 112, 109, 115, 106, 107, 113, 110, 104, 113, 108, 100, 109, 109, 108, 109, 113, 110, 107, 124, 118, 113, 112, 113, 123, 110, 105, 108, 110, 110, 108, 95, 115, 92, 110, 103, 106, 112, 109, 107, 110, 119, 105, 107, 110, 104, 109, 109, 111, 109, 109, 109, 115, 112, 110, 110, 111, 111, 115, 108, 113, 110, 112, 127, 108, 110, 110, 110, 109, 105, 109, 109, 113, 107, 109, 110, 112, 112, 102, 112, 107, 114, 117, 109, 109, 104, 114, 113, 114, 113, 106, 112, 109, 104, 107, 108, 107, 108, 91, 112, 111, 119, 95, 120, 87, 117, 106, 113, 107, 104, 110, 114, 110, 108, 107, 105, 96, 111, 111, 99, 118, 118, 111, 105, 110, 114, 108, 115, 102, 114, 112, 109, 114, 113, 97, 110, 111, 112, 104, 113, 101, 114, 107, 110, 117, 100, 99, 124, 115, 103, 95, 114, 105, 113, 107, 108, 100, 110, 106, 110, 109, 104, 117, 104, 119, 111, 110, 110, 109, 112, 110, 111, 118, 113, 106, 113, 108, 116, 106, 112, 117, 113, 113, 113, 112, 130, 108, 112, 102, 113, 107, 109, 113, 110, 104, 107, 114, 110, 110, 106, 100, 115, 105, 102, 105, 106, 104, 108, 113, 109, 112, 114, 113, 115, 124, 112, 118, 110, 118, 110, 120, 109, 106, 107, 107, 105, 110, 111, 108, 102, 108, 105, 109, 115, 112, 114, 109, 97, 112, 110, 102, 109, 104, 114, 120, 100, 105, 104, 107, 104, 109, 104, 106, 103, 118, 101, 109, 114, 107, 112, 105, 106, 110, 108, 106, 109, 107, 104, 111, 107, 115, 116, 112, 109, 109, 103, 107, 104, 112, 111, 112, 107, 115, 112, 116, 113, 106, 127, 106, 108, 119, 104, 110, 114, 115, 107, 115, 116, 107, 110, 110, 105, 114, 84, 107, 105, 115, 116, 111, 109, 110, 109, 103, 103, 103, 103, 118, 110, 103, 120, 128, 103, 110, 116, 108, 110, 106, 113, 104, 110, 109, 106, 110, 105, 116, 116, 109, 88, 112, 112, 114, 113, 112, 119, 115, 111, 110, 111, 114, 106, 111, 107, 106, 104, 111, 106, 111, 103, 108, 114, 111, 116, 108, 108, 112, 102, 129, 96, 104, 116, 147, 104, 112, 99, 105, 111, 107, 120, 105, 106, 100, 105, 113, 103, 108, 98, 114, 105, 104, 110, 112, 98, 102, 107, 102, 107, 119, 110, 113, 103, 109, 107, 117, 109, 149, 96, 105, 112, 102, 103, 108, 126, 106, 107, 100, 94, 108, 123, 117, 110, 117, 110, 106, 107, 95, 109, 113, 106, 113, 108, 106, 112, 105, 106, 104, 106, 111, 115, 110, 109, 120, 115, 113, 117, 108, 120, 113, 115, 121, 103, 115, 102, 103, 100, 108, 111, 100, 108, 114, 111, 124, 107, 112, 117, 114, 109, 101, 102, 113, 111, 115, 118, 112, 111, 114, 111, 95, 108, 93, 104, 130, 109, 114, 106, 110, 111, 122, 112, 109, 114, 113, 114, 111, 106, 117, 110, 119, 115, 125, 105, 108, 118, 117, 110, 107, 112, 118, 118, 106, 114, 111, 110, 113, 119, 119, 107, 124, 113, 110, 104, 110, 112, 111, 114, 131, 110, 109, 128, 101, 114, 112, 113, 105, 107, 111, 102, 111, 106, 118, 117, 102, 99, 111, 108, 99, 109, 103, 106, 112, 108, 103, 103, 111, 102, 112, 111, 112, 112, 105, 104, 104, 111, 113, 123, 112, 109, 101, 106, 114, 111, 112, 111, 105, 106, 111, 101, 108, 116, 113, 111, 110, 103, 104, 119, 124, 101, 107, 104, 111, 116, 110, 116, 104, 109, 111, 105, 94, 111, 108, 109, 109, 108, 109, 117, 105, 113, 98, 115, 112, 112, 107, 114, 110, 109, 112, 109, 103, 114, 107, 94, 104, 98, 103, 116, 100, 110, 112, 115, 113, 107, 122, 111, 103, 108, 111, 111, 115, 107, 110, 114, 98, 109, 103, 112, 113, 107, 86, 108, 92, 109, 116, 112, 103, 116, 120, 107, 103, 111, 106, 135, 110, 85, 107, 116, 105, 97, 110, 119, 117, 114, 84, 87, 105, 116, 110, 104, 114, 109, 110, 104, 106, 111, 100, 110, 105, 109, 105, 116, 106, 109, 111, 111, 103, 113, 105, 118, 86, 120, 123, 117, 127, 106, 112, 108, 131, 112, 118, 117, 112, 106, 118, 116, 103, 116, 109, 117, 107, 119, 105, 110, 105, 99, 111, 110, 112, 107, 119, 115, 117, 105, 109, 122, 101, 118, 115, 112, 107, 108, 119, 109, 115, 107, 112, 102, 117, 112, 139, 106, 110, 110, 120, 85, 118, 114, 117, 113, 120, 96, 107, 115, 113, 105, 98, 108, 107, 107, 143, 108, 112, 119, 109, 122, 110, 115, 97, 111, 116, 109, 101, 117, 128, 114, 99, 121, 114, 116, 102, 110, 114, 111, 109, 113, 116, 108, 121, 128, 99, 171, 95, 97, 114, 104, 110, 97, 114, 108, 116, 114, 112, 110, 100, 111, 113, 107, 117, 86, 115, 112, 113, 109, 104, 102, 111, 108, 114, 96, 107, 116, 107, 104, 106, 113, 107, 110, 115, 111, 112, 108, 100, 116, 104, 106, 110, 114, 102, 102, 110, 112, 118, 103, 104, 110, 115, 105, 116, 106, 103, 113, 109, 107, 106, 109, 95, 102, 115, 104, 115, 95, 113, 90, 113, 110, 106, 110, 107, 116, 116, 108, 109, 94, 140, 97, 121, 110, 109, 112, 112, 109, 107, 114, 104, 114, 114, 114, 99, 103, 104, 109, 97, 106, 100, 133, 107, 97, 112, 117, 115, 103, 102, 109, 119, 112, 103, 114, 103, 102, 115, 108, 110, 107, 101, 110, 99, 115, 114, 105, 100, 115, 98, 106, 112, 113, 109, 113, 100, 115, 106, 93, 110, 110, 117, 112, 117, 97, 102, 110, 109, 117, 117, 120, 123, 106, 90, 110, 113, 113, 103, 105, 104, 124, 103, 120, 103, 115, 105, 106, 107, 118, 112, 112, 121, 109, 113, 117, 106, 105, 112, 101, 118, 95, 92, 108, 112, 113, 110, 119, 110, 107, 96, 104, 106, 96, 113, 111, 117, 114, 117, 109, 131, 106, 98, 114, 90, 115, 118, 106, 119, 115, 110, 114, 112, 103, 114, 114, 116, 117, 106, 90, 108, 113, 104, 112, 114, 115, 114, 95, 108, 115, 110, 112, 103, 108, 116, 102, 113, 104, 99, 118, 109, 127, 80, 110, 114, 109, 111, 102, 119, 111, 110, 123, 113, 114, 110, 98, 102, 113, 118, 102, 107, 102, 113, 105, 116, 120, 160, 101, 112, 109, 96, 152, 109, 107, 110, 114, 120, 104, 107, 114, 94, 109, 108, 105, 113, 120, 103, 106, 102, 106, 118, 101, 110, 113, 116, 117, 119, 107, 109, 134, 118, 130, 119, 122, 113, 109, 118, 111, 96, 113, 101, 111, 111, 102, 97, 115, 105, 122, 141, 104, 110, 105, 88, 112, 108, 111, 104, 107, 117, 109, 109, 115, 102, 121, 115, 119, 113, 108, 117, 116, 107, 103, 108, 107, 108, 102, 104, 127, 108, 109, 100, 91, 95, 105, 117, 108, 113, 115, 112, 110, 114, 110, 108, 113, 109, 107, 110, 108, 107, 106, 111, 108, 111, 104, 111, 108, 110, 114, 107, 108, 108, 110, 114, 103, 113, 109, 116, 108, 108, 109, 111, 103, 107, 122, 118, 114, 113, 107, 107, 115, 113, 109, 95, 96, 122, 114, 110, 102, 110, 111, 109, 107, 106, 107, 115, 116, 106, 112, 109, 105, 113, 113, 120, 110, 92, 108, 109, 118, 111, 110, 103, 108, 112, 101, 127, 108, 96, 115, 110, 126, 108, 111, 111, 111, 112, 109, 107, 101, 118, 116, 101, 105, 107, 109, 115, 108, 107, 99, 105, 117, 110, 119, 112, 123, 102, 107, 110, 108, 100, 115, 114, 120, 135, 108, 105, 106, 107, 109, 114, 107, 109, 137, 113, 114, 108, 107, 107, 114, 107, 129, 104, 102, 102, 106, 114, 114, 112, 113, 107, 107, 106, 110, 110, 112, 107, 108, 111, 109, 81, 112, 107, 104, 105, 102, 112, 105, 113, 109, 106, 98, 107, 128, 112, 108, 128, 116, 110, 112, 110, 113, 124, 119, 124, 113, 112, 117, 113, 129, 103, 110, 103, 112, 113, 115, 113, 107, 103, 124, 108, 110, 109, 112, 110, 88, 110, 106, 110, 101, 107, 104, 99, 116, 112, 109, 116, 112, 116, 114, 105, 125, 115, 112, 102, 110, 104, 111, 111, 110, 109, 113, 110, 104, 52, 108, 106, 110, 108, 97, 102, 101, 111, 96, 108, 113, 109, 121, 111, 109, 113, 110, 102, 110, 94, 114, 108, 100, 108, 113, 105, 125, 110, 106, 101, 115, 115, 109, 108, 110, 103, 108, 109, 108, 100, 122, 125, 111, 108, 96, 111, 110, 116, 105, 108, 91, 101, 108, 118, 101, 111, 109, 108, 122, 112, 108, 107, 117, 109, 114, 106, 116, 91, 107, 110, 109, 109, 118, 114, 106, 113, 117, 104, 117, 135, 105, 111, 113, 112, 115, 103, 130, 112, 114, 113, 105, 103, 111, 107, 101, 117, 107, 106, 109, 113, 106, 111, 101, 108, 108, 111, 119, 113, 106, 100, 107, 112, 113, 111, 93, 110, 105, 113, 115, 114, 112, 106, 110, 112, 114, 109, 111, 116, 111, 109, 98, 95, 105, 112, 110, 111, 107, 107, 113, 111, 105, 114, 107, 114, 114, 112, 62, 107, 107, 113, 115, 120, 98, 116, 106, 114, 107, 113, 110, 104, 107, 109, 113, 112, 109, 110, 127, 109, 107, 112, 110, 107, 116, 117, 97, 141, 108, 111, 111, 118, 113, 102, 108, 107, 114, 109, 122, 105, 114, 122, 124, 120, 110, 106, 110, 108, 115, 108, 115, 111, 105, 108, 112, 104, 107, 106, 115, 104, 120, 110, 109, 110, 115, 98, 105, 115, 96, 106, 120, 111, 105, 106, 103, 107, 110, 104, 110, 114, 109, 111, 113, 104, 109, 101, 111, 109, 114, 124, 113, 111, 98, 110, 108, 103, 109, 103, 130, 110, 105, 141, 114, 110, 113, 106, 93, 115, 107, 111, 114, 85, 75, 109, 114, 109, 110, 113, 110, 108, 109, 117, 113, 110, 114, 109, 119, 107, 110, 110, 107, 104, 113, 99, 111, 109, 100, 112, 109, 110, 108, 107, 109, 109, 108, 113, 106, 105, 106, 111, 105, 108, 113, 109, 113, 109, 107, 109, 111, 113, 104, 113, 108, 109, 115, 111, 105, 110, 104, 121, 114, 100, 112, 110, 119, 110, 105, 107, 109, 107, 108, 106, 106, 118, 113, 126, 114, 113, 119, 108, 112, 108, 113, 106, 107, 108, 115, 112, 109, 113, 112, 105, 110, 108, 109, 105, 100, 115, 118, 108, 107, 109, 106, 107, 109, 113, 113, 110, 114, 96, 112, 107, 113, 103, 109, 114, 118, 110, 112, 110, 109, 105, 108, 107, 108, 117, 106, 110, 106, 112, 106, 110, 110, 113, 114, 107, 109, 107, 116, 109, 109, 110, 109, 110, 109, 110, 110, 110, 116, 110, 128, 112, 110, 106, 117, 109, 105, 111, 108, 111, 119, 100, 116, 115, 112, 108, 112, 110, 106, 104, 108, 117, 111, 106, 116, 112, 107, 107, 101, 128, 111, 111, 110, 108, 111, 122, 118, 108, 109, 109, 118, 107, 111, 112, 110, 111, 110, 116, 110, 107, 109, 115, 107, 116, 104, 113, 110, 109, 109, 110, 108, 107, 117, 102, 105, 111, 117, 108, 127, 109, 116, 111, 106, 112, 117, 111, 109, 111, 113, 107, 108, 119, 111, 107, 107, 113, 109, 107, 113, 112, 112, 110, 111, 107, 108, 107, 123, 111, 105, 107, 108, 111, 110, 109, 116, 116, 105, 103, 119, 117, 107, 107, 123, 112, 115, 106, 128, 109, 106, 112, 110, 110, 114, 124, 117, 115, 123, 109, 106, 112, 104, 103, 114, 117, 112, 113, 107, 109, 110, 110, 112, 110, 108, 111, 109, 111, 106, 113, 108, 111, 101, 104, 107, 112, 109, 109, 114, 107, 103, 111, 107, 109, 105, 112, 111, 106, 103, 112, 110, 108, 106, 113, 111, 112, 106, 112, 107, 106, 111, 108, 107, 114, 111, 107, 111, 112, 111, 111, 113, 108, 113, 91, 110, 110, 109, 109, 108, 116, 107, 123, 109, 110, 107, 108, 106, 120, 106, 110, 108, 110, 109, 109, 108, 111, 107, 117, 112, 106, 113, 105, 114, 115, 106, 111, 110, 112, 106, 108, 109, 112, 105, 107, 110, 108, 114, 111, 117, 105, 116, 99, 110, 109, 106, 107, 113, 104, 108, 107, 108, 111, 112, 112, 111, 108, 112, 108, 117, 105, 117, 107, 109, 108, 105, 110, 101, 108, 111, 112, 99, 109, 108, 109, 107, 108, 108, 114, 107, 105, 112, 112, 105, 112, 108, 111, 117, 109, 113, 111, 105, 108, 106, 111, 104, 112, 113, 123, 106, 103, 108, 109, 109, 107, 107, 106, 109, 113, 115, 113, 111, 113, 113, 110, 109, 115, 114, 109, 119, 115, 106, 103, 105, 107, 119, 107, 106, 112, 111, 112, 120, 114, 106, 115, 107, 112, 107, 114, 113, 109, 109, 110, 110, 107, 105, 105, 110, 111, 112, 111, 112, 101, 111, 103, 119, 108, 112, 106, 109, 105, 119, 110, 109, 111, 106, 119, 109, 108, 115, 106, 110, 108, 107, 110, 114, 107, 110, 113, 105, 104, 110, 108, 105, 107, 113, 106, 114, 107, 108, 121, 121, 107, 118, 107, 117, 100, 116, 111, 119, 120, 109, 107, 116, 108, 109, 113, 108, 105, 115, 103, 102, 106, 113, 104, 108, 99, 120, 118, 118, 107, 117, 132, 107, 103, 119, 116, 108, 120, 102, 106, 108, 117, 106, 115, 114, 110, 110, 119, 116, 106, 117, 108, 106, 102, 117, 112, 115, 107, 117, 108, 102, 111, 106, 110, 110, 111, 109, 112, 119, 107, 107, 107, 103, 106, 122, 130, 116, 110, 120, 111, 107, 102, 103, 112, 110, 108, 119, 114, 113, 106, 106, 107, 109, 108, 116, 112, 116, 112, 103, 109, 110, 108, 107, 116, 101, 109, 112, 110, 108, 109, 115, 114, 121, 112, 115, 108, 112, 111, 116, 115, 115, 103, 108, 124, 104, 109, 107, 114, 118, 119, 111, 120, 117, 102, 102, 108, 113, 123, 110, 116, 104, 112, 117, 104, 111, 100, 108, 107, 112, 110, 105, 114, 110, 107, 105, 110, 107, 111, 101, 107, 118, 110, 113, 113, 118, 104, 121, 108, 109, 109, 108, 99, 115, 111, 107, 106, 114, 108, 112, 110, 108, 103, 112, 118, 100, 108, 111, 107, 111, 108, 105, 104, 100, 111, 107, 109, 108, 110, 109, 101, 116, 116, 98, 114, 114, 111, 127, 119, 107, 98, 108, 112, 101, 121, 101, 108, 113, 111, 120, 117, 119, 109, 115, 116, 106, 108, 111, 110, 104, 109, 107, 106, 107, 110, 109, 126, 116, 107, 111, 112, 103, 113, 109, 115, 118, 105, 106, 105, 106, 107, 106, 116, 110, 103, 108, 107, 114, 111, 116, 110, 111, 119, 117, 109, 117, 121, 118, 103, 114, 108, 105, 111, 106, 111, 109, 110, 102, 105, 116, 113, 109, 108, 98, 112, 100, 101, 107, 114, 108, 114, 110, 115, 100, 109, 112, 108, 109, 110, 109, 112, 107, 121, 106, 119, 108, 113, 122, 110, 109, 117, 115, 106, 114, 105, 110, 112, 111, 108, 104, 112, 120, 101, 112, 101, 111, 111, 106, 114, 108, 108, 110, 117, 112, 114, 110, 107, 111, 116, 111, 103, 119, 112, 116, 113, 115, 101, 115, 112, 112, 111, 104, 103, 119, 116, 110, 113, 120, 108, 112, 99, 109, 111, 115, 99, 116, 104, 109, 109, 119, 114, 112, 107, 116, 110, 115, 115, 108, 109, 118, 102, 110, 111, 120, 101, 110, 107, 108, 106, 115, 108, 108, 112, 110, 110, 113, 113, 114, 108, 102, 102, 109, 112, 114, 111, 101, 106, 111, 115, 103, 111, 118, 108, 110, 111, 111, 108, 109, 108, 115, 114, 114, 114, 111, 106, 108, 108, 117, 108, 112, 110, 108, 111, 114, 108, 114, 105, 117, 105, 115, 106, 113, 114, 116, 103, 118, 110, 97, 114, 112, 116, 112, 109, 113, 105, 113, 103, 113, 115, 113, 103, 114, 114, 109, 119, 112, 107, 109, 119, 109, 106, 106, 109, 115, 117, 116, 117, 105, 104, 107, 114, 113, 117, 112, 120, 111, 113, 104, 102, 109, 109, 112, 112, 108, 124, 112, 113, 110, 105, 110, 107, 109, 99, 108, 111, 112, 111, 106, 107, 108, 110, 116, 111, 108, 110, 107, 118, 106, 64, 95, 108, 97, 114, 110, 117, 112, 114, 103, 117, 108, 115, 111, 109, 119, 97, 116, 118, 118, 114, 113, 110, 113, 105, 112, 113, 106, 117, 112, 110, 111, 110, 111, 113, 105, 106, 117, 108, 112, 116, 109, 114, 106, 112, 112, 93, 108, 134, 112, 112, 111, 118, 113, 109, 109, 91, 109, 117, 104, 101, 111, 116, 108, 109, 115, 106, 110, 103, 107, 111, 106, 104, 109, 112, 115, 107, 116, 101, 107, 104, 111, 106, 109, 113, 103, 106, 111, 105, 113, 98, 112, 113, 108, 109, 108, 113, 106, 107, 113, 112, 110, 99, 117, 107, 112, 106, 106, 105, 103, 106, 106, 108, 114, 109, 110, 104, 105, 109, 115, 123, 111, 104, 123, 111, 106, 112, 114, 111, 110, 115, 107, 109, 107, 105, 106, 113, 113, 105, 108, 108, 91, 106, 117, 111, 115, 114, 108, 116, 106, 109, 104, 108, 113, 111, 109, 113, 125, 117, 108, 115, 111, 112, 114, 107, 96, 109, 99, 116, 111, 111, 110, 114, 108, 97, 109, 108, 116, 111, 98, 100, 115, 113, 111, 116, 110, 113, 112, 105, 112, 111, 115, 110, 114, 103, 113, 114, 120, 110, 91, 105, 112, 121, 113, 120, 108, 112, 112, 111, 106, 104, 115, 106, 110, 109, 106, 118, 105, 106, 109, 108, 108, 109, 106, 115, 119, 108, 120, 115, 113, 108, 111, 106, 105, 103, 107, 101, 105, 112, 103, 112, 108, 109, 117, 101, 111, 119, 113, 107, 92, 109, 110, 115, 109, 107, 112, 112, 111, 112, 106, 108, 101, 104, 112, 114, 105, 107, 109, 113, 105, 109, 116, 118, 105, 115, 113, 102, 109, 113, 98, 99, 111, 103, 99, 109, 109, 114, 107, 109, 106, 106, 118, 103, 112, 119, 111, 115, 108, 114, 114, 112, 106, 114, 111, 118, 113, 107, 114, 116, 108, 108, 107, 107, 115, 108, 110, 112, 104, 113, 91, 110, 113, 110, 99, 111, 108, 115, 113, 101, 108, 115, 119, 116, 101, 113, 111, 106, 107, 114, 106, 113, 108, 105, 110, 87, 110, 101, 110, 100, 105, 108, 109, 110, 108, 108, 112, 116, 111, 105, 107, 111, 112, 112, 106, 103, 103, 118, 109, 105, 110, 105, 112, 109, 111, 112, 115, 115, 119, 112, 102, 108, 109, 127, 111, 111, 108, 108, 112, 112, 110, 130, 112, 113, 117, 105, 109, 107, 104, 111, 111, 97, 112, 111, 104, 112, 117, 110, 110, 116, 105, 111, 111, 112, 107, 111, 112, 120, 109, 114, 109, 111, 105, 107, 120, 108, 109, 109, 113, 109, 105, 102, 109, 111, 110, 92, 109, 117, 119, 112, 108, 115, 116, 106, 116, 109, 114, 116, 111, 112, 119, 110, 114, 110, 121, 120, 111, 108, 111, 112, 109, 98, 105, 105, 109, 111, 114, 120, 111, 110, 125, 107, 107, 107, 89, 147, 110, 107, 112, 110, 107, 106, 107, 111, 111, 110, 85, 112, 106, 107, 102, 107, 115, 119, 115, 110, 117, 107, 107, 110, 109, 111, 106, 110, 110, 100, 98, 103, 117, 109, 111, 105, 110, 116, 104, 98, 103, 109, 108, 107, 105, 116, 117, 115, 109, 109, 101, 109, 107, 109, 105, 116, 116, 111, 116, 108, 106, 113, 103, 108, 117, 116, 102, 115, 112, 113, 105, 123, 104, 109, 114, 106, 105, 109, 109, 106, 108, 105, 113, 111, 99, 111, 103, 110, 107, 109, 97, 109, 108, 106, 103, 112, 112, 113, 111, 113, 110, 113, 111, 104, 116, 100, 103, 102, 108, 109, 107, 106, 106, 105, 104, 138, 93, 116, 116, 113, 106, 109, 111, 116, 118, 110, 110, 95, 103, 119, 121, 109, 109, 94, 116, 111, 112, 107, 115, 102, 112, 110, 114, 103, 102, 124, 112, 118, 88, 111, 107, 105, 103, 114, 112, 100, 113, 108, 105, 100, 122, 111, 111, 108, 105, 120, 103, 114, 119, 105, 107, 104, 108, 117, 118, 103, 105, 111, 112, 116, 112, 109, 107, 107, 110, 116, 110, 119, 105, 105, 106, 113, 106, 108, 102, 106, 101, 111, 105, 109, 108, 109, 108, 109, 116, 109, 114, 109, 116, 117, 107, 130, 106, 112, 107, 111, 113, 98, 113, 113, 110, 125, 100, 118, 111, 110, 115, 116, 109, 120, 114, 117, 106, 105, 106, 114, 114, 109, 108, 100, 109, 103, 106, 119, 118, 120, 107, 103, 121, 107, 117, 95, 102, 114, 109, 106, 116, 101, 112, 107, 107, 111, 100, 123, 107, 102, 111, 106, 104, 111, 125, 102, 103, 115, 109, 109, 110, 108, 110, 104, 123, 106, 104, 110, 117, 102, 123, 93, 112, 116, 117, 112, 108, 112, 106, 101, 114, 112, 112, 93, 115, 114, 109, 105, 101, 110, 106, 107, 108, 106, 108, 129, 96, 100, 111, 110, 109, 111, 103, 112, 106, 101, 115, 105, 107, 110, 112, 117, 116, 101, 108, 99, 113, 111, 103, 104, 114, 106, 102, 110, 106, 119, 106, 118, 105, 112, 108, 113, 114, 111, 101, 103, 113, 110, 115, 108, 121, 109, 107, 94, 113, 102, 107, 113, 111, 119, 96, 109, 110, 134, 113, 115, 112, 121, 107, 96, 110, 99, 110, 104, 107, 102, 112, 107, 109, 116, 117, 111, 120, 110, 113, 114, 105, 113, 97, 97, 114, 108, 113, 100, 114, 99, 107, 127, 109, 96, 106, 105, 108, 103, 109, 99, 103, 128, 118, 104, 112, 104, 98, 98, 102, 113, 105, 113, 102, 134, 114, 117, 114, 120, 109, 101, 111, 109, 109, 108, 118, 110, 104, 116, 100, 96, 110, 112, 111, 105, 103, 106, 109, 113, 107, 110, 104, 116, 107, 110, 111, 109, 103, 118, 110, 107, 109, 115, 101, 110, 102, 108, 102, 116, 107, 112, 123, 114, 113, 110, 112, 99, 106, 111, 113, 101, 103, 106, 99, 106, 104, 113, 101, 108, 103, 119, 116, 102, 112, 112, 110, 106, 104, 116, 108, 108, 99, 115, 109, 100, 110, 110, 108, 110, 120, 105, 114, 102, 108, 113, 113, 106, 115, 106, 111, 149, 120, 107, 102, 110, 107, 103, 107, 104, 108, 119, 103, 119, 96, 91, 114, 108, 111, 105, 106, 102, 108, 109, 101, 110, 105, 107, 113, 109, 104, 113, 112, 112, 105, 102, 113, 106, 127, 109, 113, 112, 109, 123, 113, 109, 98, 112, 113, 113, 114, 109, 100, 111, 105, 105, 100, 108, 109, 108, 105, 99, 109, 108, 94, 114, 115, 110, 95, 116, 103, 125, 120, 102, 104, 108, 125, 103, 110, 114, 117, 114, 109, 109, 109, 110, 106, 103, 107, 107, 106, 105, 99, 98, 115, 101, 106, 120, 109, 99, 121, 116, 106, 112, 109, 107, 108, 109, 108, 124, 107, 106, 104, 91, 116, 109, 126, 117, 112, 103, 105, 114, 112, 111, 103, 107, 116, 115, 109, 112, 115, 119, 106, 111, 105, 116, 98, 102, 107, 117, 111, 111, 113, 101, 113, 115, 108, 109, 130, 115, 114, 104, 116, 97, 101, 106, 104, 118, 110, 97, 119, 110, 114, 104, 101, 112, 113, 109, 118, 115, 109, 111, 114, 104, 112, 116, 104, 138, 116, 113, 110, 100, 109, 116, 117, 115, 110, 114, 117, 113, 107, 108, 106, 103, 112, 98, 107, 111, 116, 109, 108, 103, 106, 114, 112, 99, 110, 100, 120, 103, 125, 106, 110, 101, 118, 104, 132, 104, 99, 116, 124, 116, 116, 120, 109, 118, 110, 105, 111, 93, 111, 106, 111, 100, 132, 113, 110, 110, 101, 114, 120, 104, 107, 108, 105, 112, 106, 109, 106, 112, 107, 110, 116, 104, 105, 110, 104, 102, 104, 109, 133, 122, 118, 111, 118, 119, 110, 106, 110, 105, 112, 112, 119, 106, 103, 117, 122, 115, 109, 104, 104, 111, 106, 114, 112, 110, 114, 119, 103, 106, 114, 114, 105, 103, 102, 102, 97, 118, 105, 115, 115, 116, 101, 110, 112, 114, 100, 125, 117, 127, 110, 119, 120, 112, 113, 119, 104, 109, 108, 121, 113, 101, 105, 103, 111, 106, 117, 103, 96, 117, 112, 121, 103, 110, 106, 114, 107, 116, 110, 93, 106, 124, 105, 105, 104, 118, 114, 115, 122, 105, 110, 112, 110, 103, 113, 105, 106, 116, 121, 117, 107, 117, 107, 107, 108, 124, 112, 109, 108, 111, 115, 107, 104, 108, 107, 111, 108, 108, 114, 111, 112, 115, 119, 110, 108, 105, 116, 98, 111, 110, 110, 100, 111, 107, 113, 119, 107, 118, 106, 106, 121, 108, 105, 112, 119, 105, 114, 110, 107, 105, 102, 108, 117, 101, 124, 108, 106, 108, 111, 112, 116, 104, 118, 111, 103, 101, 108, 116, 107, 108, 103, 104, 94, 104, 112, 128, 107, 104, 107, 104, 100, 95, 100, 129, 106, 109, 113, 109, 108, 100, 112, 114, 109, 90, 105, 114, 113, 107, 112, 114, 109, 113, 107, 113, 113, 106, 115, 128, 101, 109, 98, 100, 100, 116, 98, 112, 103, 107, 109, 112, 110, 109, 107, 111, 112, 117, 108, 112, 108, 95, 96, 104, 112, 118, 112, 115, 108, 112, 101, 102, 101, 108, 109, 111, 113, 109, 117, 109, 114, 121, 105, 101, 119, 126, 114, 109, 109, 104, 109, 99, 113, 109, 110, 113, 115, 118, 105, 110, 110, 116, 114, 112, 107, 117, 114, 115, 110, 109, 123, 104, 121, 109, 114, 106, 96, 102, 108, 112, 108, 113, 107, 101, 116, 118, 96, 115, 106, 120, 104, 102, 107, 107, 104, 111, 114, 115, 114, 92, 109, 121, 102, 99, 111, 104, 112, 119, 111, 108, 107, 125, 105, 104, 102, 104, 107, 110, 100, 102, 105, 113, 105, 109, 107, 105, 99, 108, 108, 111, 102, 109, 111, 113, 106, 115, 110, 110, 109, 105, 110, 114, 112, 110, 110, 105, 109, 110, 111, 109, 107, 101, 105, 109, 115, 109, 108, 111, 112, 108, 110, 111, 110, 103, 97, 110, 105, 108, 103, 108, 115, 107, 111, 115, 107, 110, 109, 118, 95, 107, 109, 102, 130, 116, 111, 103, 103, 115, 109, 112, 102, 98, 112, 115, 113, 117, 110, 107, 117, 111, 111, 107, 110, 110, 117, 114, 109, 113, 114, 101, 111, 101, 108, 105, 120, 116, 105, 107, 110, 105, 102, 116, 110, 111, 119, 106, 113, 115, 110, 99, 107, 109, 113, 108, 104, 113, 107, 108, 107, 109, 104, 107, 97, 107, 109, 106, 117, 109, 118, 112, 103, 127, 101, 113, 109, 118, 108, 112, 103, 113, 103, 116, 113, 108, 107, 115, 110, 115, 110, 109, 106, 134, 104, 112, 107, 99, 120, 113, 109, 111, 108, 107, 107, 112, 108, 104, 105, 106, 109, 118, 95, 118, 105, 104, 110, 107, 107, 119, 112, 110, 112, 123, 114, 123, 113, 113, 108, 116, 108, 108, 114, 115, 108, 114, 107, 113, 102, 111, 105, 105, 114, 111, 126, 112, 109, 114, 97, 109, 105, 105, 103, 112, 141, 110, 104, 117, 115, 110, 116, 116, 105, 109, 103, 92, 118, 103, 109, 114, 123, 116, 108, 107, 99, 109, 109, 111, 125, 105, 115, 108, 107, 101, 109, 111, 103, 100, 113, 97, 105, 106, 115, 118, 104, 106, 96, 104, 109, 110, 102, 109, 95, 139, 99, 114, 104, 102, 106, 105, 112, 104, 86, 112, 103, 117, 111, 121, 108, 112, 107, 106, 99, 116, 116, 106, 113, 109, 109, 108, 114, 111, 109, 120, 101, 93, 113, 111, 105, 97, 105, 108, 93, 133, 106, 115, 111, 99, 102, 100, 101, 110, 114, 118, 105, 112, 107, 116, 107, 109, 108, 110, 105, 108, 106, 114, 123, 110, 114, 107, 103, 110, 110, 110, 100, 115, 114, 127, 111, 104, 118, 126, 115, 113, 107, 117, 100, 111, 114, 116, 112, 107, 101, 111, 110, 106, 124, 115, 122, 114, 117, 114, 111, 109, 107, 112, 109, 111, 112, 100, 128, 114, 104, 112, 113, 119, 121, 105, 111, 111, 117, 115, 105, 104, 98, 101, 110, 97, 109, 95, 106, 107, 120, 115, 110, 111, 117, 120, 114, 112, 113, 110, 110, 113, 117, 104, 110, 103, 108, 111, 116, 108, 109, 101, 121, 116, 112, 111, 116, 108, 105, 121, 112, 103, 119, 106, 96, 114, 114, 120, 107, 114, 109, 93, 113, 110, 110, 108, 99, 113, 109, 108, 105, 107, 110, 105, 104, 112, 104, 99, 111, 114, 118, 107, 107, 107, 103, 101, 105, 120, 105, 113, 112, 114, 114, 107, 88, 96, 119, 98, 107, 104, 105, 97, 113, 107, 101, 98, 109, 107, 115, 109, 112, 109, 113, 108, 99, 117, 106, 107, 109, 110, 116, 108, 105, 107, 111, 113, 104, 116, 124, 115, 130, 94, 90, 117, 115, 82, 114, 105, 106, 116, 112, 115, 125, 110, 103, 101, 102, 101, 117, 107, 112, 115, 105, 117, 107, 110, 101, 105, 97, 115, 114, 105, 110, 110, 107, 106, 102, 107, 116, 112, 109, 114, 116, 108, 125, 106, 102, 115, 107, 107, 108, 106, 84, 115, 103, 100, 123, 101, 109, 105, 101, 112, 119, 112, 109, 103, 100, 115, 113, 113, 120, 112, 104, 113, 124, 101, 84, 104, 110, 108, 103, 120, 111, 115, 111, 118, 107, 93, 112, 117, 117, 114, 108, 122, 103, 113, 109, 113, 113, 112, 106, 110, 108, 113, 109, 108, 108, 110, 99, 103, 107, 106, 109, 106, 117, 111, 108, 129, 114, 117, 115, 113, 107, 109, 105, 113, 110, 109, 105, 128, 124, 104, 109, 125, 119, 107, 107, 111, 115, 108, 116, 107, 115, 106, 117, 114, 109, 121, 108, 115, 111, 118, 111, 108, 118, 114, 122, 123, 114, 113, 111, 99, 115, 111, 114, 118, 109, 93, 101, 108, 103, 110, 117, 107, 112, 105, 106, 113, 121, 104, 108, 98, 110, 115, 109, 113, 107, 109, 107, 105, 104, 106, 114, 105, 110, 106, 105, 114, 105, 109, 105, 103, 116, 116, 105, 117, 113, 118, 108, 110, 117, 105, 103, 86, 115, 116, 121, 116, 114, 121, 110, 110, 101, 94, 108, 115, 111, 130, 122, 103, 109, 101, 112, 103, 107, 117, 111, 100, 103, 107, 119, 116, 123, 98, 107, 116, 116, 109, 93, 108, 109, 114, 111, 107, 106, 108, 112, 113, 105, 117, 105, 112, 105, 109, 120, 96, 113, 106, 113, 113, 104, 108, 112, 100, 121, 100, 109, 111, 117, 122, 119, 113, 126, 123, 130, 116, 104, 97, 110, 125, 103, 117, 103, 119, 112, 104, 103, 110, 105, 120, 103, 104, 109, 113, 101, 115, 97, 104, 115, 103, 116, 129, 109, 109, 114, 115, 102, 114, 111, 111, 112, 98, 110, 120, 114, 114, 115, 101, 114, 89, 115, 104, 103, 112, 117, 113, 108, 105, 109, 106, 107, 108, 113, 84, 119, 116, 116, 102, 103, 113, 121, 116, 115, 113, 116, 96, 129, 102, 108, 115, 111, 102, 109, 115, 96, 120, 108, 113, 114, 111, 117, 107, 111, 94, 104, 107, 113, 115, 111, 111, 110, 111, 101, 109, 103, 108, 118, 121, 136, 120, 114, 104, 99, 112, 108, 113, 111, 104, 113, 120, 102, 115, 111, 98, 114, 110, 113, 114, 107, 101, 106, 114, 131, 104, 109, 109, 109, 113, 103, 125, 111, 111, 106, 98, 112, 119, 108, 97, 110, 104, 118, 103, 111, 107, 116, 110, 95, 103, 118, 100, 105, 103, 111, 123, 100, 108, 110, 116, 109, 114, 103, 118, 101, 116, 109, 106, 118, 112, 112, 105, 109, 106, 114, 115, 106, 120, 116, 94, 108, 108, 112, 105, 110, 111, 110, 109, 109, 85, 92, 106, 93, 106, 112, 105, 115, 120, 105, 103, 110, 115, 112, 102, 116, 87, 114, 107, 129, 132, 101, 120, 118, 112, 117, 114, 119, 92, 109, 104, 107, 109, 96, 120, 104, 105, 114, 108, 101, 118, 96, 111, 115, 103, 101, 94, 115, 108, 113, 114, 106, 104, 110, 109, 96, 111, 104, 119, 111, 106, 104, 105, 103, 108, 116, 110, 110, 110, 104, 112, 109, 111, 103, 106, 108, 110, 144, 98, 105, 112, 110, 116, 107, 117, 123, 117, 108, 100, 112, 105, 111, 108, 115, 123, 115, 107, 111, 111, 112, 107, 109, 115, 115, 115, 114, 98, 99, 105, 105, 113, 102, 107, 110, 112, 115, 107, 108, 114, 107, 112, 106, 112, 116, 109, 99, 110, 116, 113, 102, 116, 104, 106, 112, 108, 106, 97, 100, 98, 110, 103, 112, 112, 109, 104, 107, 109, 96, 112, 110, 104, 109, 106, 105, 107, 76, 118, 116, 122, 107, 112, 110, 113, 115, 112, 115, 111, 106, 115, 119, 119, 121, 121, 96, 103, 108, 118, 111, 115, 115, 106, 117, 103, 95, 107, 117, 107, 110, 114, 126, 127, 103, 106, 122, 90, 114, 112, 128, 107, 102, 101, 107, 119, 108, 103, 110, 115, 114, 113, 119, 105, 115, 118, 100, 114, 103, 105, 113, 116, 109, 110, 121, 105, 105, 107, 105, 102, 122, 106, 108, 116, 109, 103, 132, 108, 125, 102, 109, 114, 104, 110, 117, 107, 79, 100, 116, 114, 104, 104, 116, 112, 111, 121, 104, 103, 109, 109, 112, 116, 113, 106, 104, 127, 114, 117, 95, 100, 114, 95, 117, 108, 98, 106, 117, 107, 105, 120, 112, 107, 83, 120, 104, 99, 107, 110, 99, 112, 96, 109, 99, 100, 109, 107, 87, 114, 103, 106, 121, 107, 102, 97, 113, 105, 117, 105, 110, 103, 112, 102, 105, 100, 120, 82, 105, 115, 110, 87, 93, 105, 100, 105, 117, 118, 99, 106, 115, 115, 116, 103, 135, 107, 92, 94, 115, 115, 121, 99, 112, 108, 116, 101, 102, 128, 111, 92, 110, 106, 99, 108, 88, 113, 107, 120, 113, 111, 101, 92, 105, 106, 115, 113, 111, 98, 112, 116, 108, 120, 88, 111, 105, 109, 108, 113, 105, 115, 109, 103, 110, 104, 98, 96, 120, 109, 110, 102, 115, 100, 104, 112, 116, 91, 103, 108, 112, 117, 107, 108, 112, 114, 114, 116, 114, 109, 101, 114, 114, 110, 111, 109, 101, 109, 114, 113, 117, 111, 124, 120, 121, 112, 112, 126, 103, 101, 107, 107, 123, 117, 103, 132, 114, 118, 115, 103, 107, 114, 105, 111, 100, 117, 104, 108, 115, 119, 93, 113, 108, 111, 113, 118, 108, 87, 107, 113, 101, 115, 112, 119, 107, 101, 86, 96, 127, 104, 109, 123, 108, 100, 105, 109, 119, 111, 108, 113, 103, 97, 108, 100, 99, 106, 103, 117, 116, 107, 111, 111, 108, 112, 97, 110, 101, 94, 100, 112, 112, 113, 110, 101, 101, 99, 105, 114, 104, 102, 112, 126, 101, 107, 125, 128, 116, 103, 110, 120, 118, 96, 106, 102, 109, 110, 118, 110, 114, 99, 109, 95, 109, 109, 101, 118, 112, 123, 93, 102, 91, 105, 112, 116, 110, 109, 96, 99, 109, 116, 113, 113, 101, 123, 101, 104, 111, 103, 115, 111, 101, 102, 105, 107, 109, 112, 119, 115, 106, 109, 110, 94, 104, 111, 101, 121, 106, 101, 112, 109, 97, 107, 103, 112, 103, 98, 108, 107, 118, 106, 106, 106, 110, 111, 104, 118, 97, 107, 114, 99, 110, 112, 113, 97, 104, 114, 95, 114, 107, 101, 110, 104, 107, 117, 101, 110, 106, 114, 110, 112, 110, 112, 109, 107, 112, 113, 114, 108, 121, 120, 111, 113, 106, 111, 118, 116, 102, 116, 113, 109, 110, 111, 113, 113, 103, 112, 106, 109, 109, 119, 110, 107, 114, 108, 114, 103, 115, 106, 105, 110, 94, 112, 106, 106, 111, 104, 110, 118, 114, 109, 104, 114, 120, 94, 140, 103, 103, 135, 125, 100, 114, 109, 104, 117, 105, 102, 107, 110, 104, 103, 98, 102, 96, 111, 107, 120, 118, 104, 79, 112, 109, 117, 116, 106, 102, 112, 107, 112, 135, 114, 118, 121, 112, 110, 102, 111, 108, 110, 115, 113, 110, 97, 104, 100, 106, 108, 99, 104, 113, 105, 113, 109, 109, 110, 114, 108, 113, 115, 105, 108, 100, 103, 122, 104, 99, 118, 139, 106, 108, 121, 117, 111, 106, 106, 113, 130, 114, 105, 112, 118, 109, 113, 99, 107, 115, 105, 91, 108, 96, 107, 122, 105, 107, 123, 115, 107, 103, 111, 101, 107, 120, 121, 107, 113, 111, 103, 126, 134, 109, 100, 106, 97, 107, 109, 113, 115, 105, 104, 90, 108, 117, 105, 117, 109, 109, 117, 97, 122, 94, 123, 118, 101, 123, 130, 101, 117, 118, 109, 120, 105, 119, 110, 98, 108, 108, 103, 106, 123, 105, 96, 104, 90, 110, 108, 95, 103, 131, 109, 103, 107, 110, 107, 97, 104, 102, 112, 101, 122, 102, 116, 108, 103, 105, 132, 114, 112, 104, 108, 102, 110, 99, 80, 107, 137, 114, 122, 109, 113, 122, 116, 109, 108, 108, 116, 111, 104, 107, 102, 111, 135, 110, 111, 111, 110, 110, 121, 113, 107, 109, 104, 111, 117, 113, 103, 110, 92, 114, 118, 121, 105, 107, 112, 109, 116, 121, 117, 111, 98, 115, 110, 108, 102, 107, 116, 107, 111, 111, 114, 104, 111, 94, 108, 101, 115, 120, 113, 115, 117, 116, 112, 110, 113, 100, 106, 117, 115, 113, 104, 104, 106, 113, 125, 103, 110, 113, 120, 108, 115, 106, 114, 103, 104, 109, 106, 110, 110, 124, 110, 115, 104, 116, 112, 119, 106, 101, 115, 113, 121, 115, 107, 105, 104, 102, 119, 109, 111, 101, 95, 112, 110, 124, 106, 116, 93, 102, 112, 109, 112, 127, 103, 79, 104, 126, 104, 112, 116, 116, 121, 110, 106, 107, 113, 111, 133, 114, 115, 103, 110, 115, 102, 105, 115, 102, 106, 111, 107, 106, 108, 113, 116, 112, 126, 116, 114, 114, 109, 109, 105, 107, 106, 110, 112, 107, 107, 108, 108, 104, 107, 110, 109, 113, 106, 102, 112, 111, 106, 111, 112, 108, 104, 108, 108, 114, 111, 111, 109, 111, 112, 104, 103, 114, 108, 117, 104, 113, 119, 113, 106, 109, 106, 104, 103, 101, 108, 100, 104, 113, 108, 112, 107, 106, 106, 108, 114, 110, 107, 113, 114, 110, 105, 106, 113, 110, 106, 105, 111, 114, 112, 119, 111, 111, 99, 124, 108, 112, 107, 115, 112, 105, 109, 114, 112, 108, 108, 112, 115, 109, 113, 102, 107, 112, 108, 109, 113, 113, 105, 108, 115, 104, 111, 121, 111, 110, 112, 124, 96, 108, 111, 107, 103, 115, 111, 112, 119, 113, 120, 110, 103, 110, 113, 106, 111, 122, 116, 110, 110, 111, 104, 104, 110, 106, 105, 105, 107, 107, 111, 111, 110, 110, 120, 110, 112, 110, 97, 107, 111, 112, 105, 118, 102, 111, 111, 109, 105, 103, 105, 110, 108, 108, 104, 97, 111, 111, 108, 110, 128, 107, 107, 111, 115, 114, 109, 106, 115, 111, 108, 112, 111, 112, 105, 110, 120, 100, 109, 103, 112, 112, 108, 117, 110, 102, 108, 108, 111, 98, 108, 112, 107, 110, 116, 115, 112, 115, 105, 109, 104, 104, 103, 108, 106, 107, 110, 113, 109, 109, 110, 108, 111, 99, 106, 109, 109, 108, 94, 110, 107, 112, 108, 108, 115, 99, 110, 101, 103, 111, 109, 116, 112, 115, 115, 104, 108, 111, 96, 110, 110, 110, 109, 107, 113, 113, 115, 107, 105, 105, 116, 110, 117, 117, 110, 112, 114, 108, 107, 127, 106, 113, 110, 105, 111, 145, 111, 106, 110, 109, 115, 108, 115, 104, 105, 103, 108, 114, 114, 107, 108, 108, 109, 119, 109, 113, 116, 111, 109, 106, 118, 116, 113, 116, 108, 118, 112, 110, 114, 116, 108, 111, 108, 107, 112, 115, 107, 109, 112, 110, 109, 112, 111, 106, 105, 109, 105, 109, 110, 111, 106, 107, 114, 114, 108, 111, 106, 110, 106, 110, 108, 106, 111, 89, 114, 108, 113, 128, 112, 106, 111, 110, 114, 106, 108, 106, 110, 115, 106, 105, 102, 109, 108, 112, 117, 111, 104, 116, 109, 111, 111, 109, 116, 109, 113, 102, 102, 109, 109, 114, 113, 104, 111, 101, 104, 112, 112, 117, 110, 109, 117, 108, 108, 106, 108, 118, 106, 107, 106, 116, 113, 117, 106, 106, 105, 119, 104, 115, 115, 115, 107, 112, 111, 98, 110, 115, 110, 104, 95, 117, 111, 110, 110, 114, 112, 107, 132, 106, 109, 110, 112, 111, 106, 104, 111, 107, 110, 116, 112, 117, 115, 101, 108, 107, 109, 102, 113, 113, 110, 106, 105, 108, 110, 116, 108, 115, 113, 110, 111, 103, 112, 113, 114, 113, 106, 112, 108, 107, 111, 118, 112, 114, 115, 109, 103, 124, 100, 109, 126, 113, 111, 111, 124, 110, 112, 110, 106, 109, 100, 103, 106, 109, 106, 109, 109, 104, 113, 108, 114, 114, 115, 99, 110, 114, 106, 102, 110, 104, 122, 109, 110, 122, 99, 111, 103, 106, 109, 113, 111, 105, 109, 117, 115, 113, 105, 107, 113, 115, 112, 97, 110, 110, 110, 105, 104, 116, 107, 112, 107, 103, 101, 113, 106, 110, 98, 105, 116, 115, 113, 95, 101, 111, 108, 113, 107, 106, 115, 108, 106, 114, 109, 108, 126, 101, 109, 106, 105, 111, 112, 114, 115, 110, 111, 110, 112, 96, 113, 95, 110, 109, 113, 112, 113, 109, 111, 99, 111, 111, 105, 108, 100, 102, 113, 111, 117, 110, 111, 108, 119, 106, 111, 109, 111, 110, 112, 114, 120, 114, 117, 109, 117, 104, 110, 112, 110, 103, 110, 114, 120, 107, 106, 118, 102, 103, 114, 99, 112, 110, 115, 107, 107, 105, 109, 111, 106, 104, 111, 124, 112, 118, 108, 105, 105, 106, 108, 97, 111, 114, 103, 129, 111, 99, 108, 110, 108, 111, 118, 103, 117, 108, 108, 109, 109, 121, 103, 125, 99, 105, 113, 109, 112, 114, 108, 118, 109, 110, 114, 104, 113, 103, 113, 134, 110, 112, 110, 112, 105, 101, 112, 108, 115, 114, 113, 114, 112, 97, 105, 111, 106, 100, 109, 114, 120, 113, 104, 90, 90, 100, 113, 115, 98, 116, 104, 107, 101, 108, 109, 108, 125, 102, 108, 117, 119, 113, 96, 105, 106, 128, 133, 111, 104, 104, 109, 99, 111, 108, 112, 113, 111, 112, 115, 111, 108, 106, 108, 113, 106, 117, 108, 103, 125, 114, 103, 109, 117, 113, 106, 116, 107, 115, 110, 113, 113, 106, 120, 106, 113, 113, 106, 105, 105, 106, 109, 118, 113, 104, 114, 111, 107, 109, 114, 113, 122, 102, 116, 118, 112, 112, 116, 106, 117, 109, 109, 112, 112, 119, 116, 102, 113, 112, 108, 112, 106, 105, 113, 114, 97, 111, 119, 109, 108, 109, 112, 112, 107, 118, 101, 117, 113, 109, 114, 118, 109, 112, 106, 109, 108, 99, 108, 111, 109, 112, 101, 106, 110, 111, 96, 110, 115, 112, 109, 108, 114, 94, 117, 114, 108, 111, 113, 110, 100, 108, 109, 112, 105, 106, 106, 104, 107, 111, 110, 107, 111, 110, 108, 111, 109, 108, 107, 118, 113, 98, 103, 105, 112, 108, 122, 107, 105, 95, 104, 111, 117, 108, 109, 113, 112, 110, 113, 113, 99, 106, 114, 104, 112, 115, 109, 100, 100, 107, 114, 110, 117, 111, 101, 115, 102, 106, 109, 108, 116, 117, 107, 111, 106, 115, 112, 110, 108, 114, 131, 113, 121, 111, 113, 114, 110, 109, 106, 112, 119, 103, 106, 106, 111, 103, 115, 101, 110, 115, 109, 102, 109, 113, 105, 112, 110, 114, 102, 112, 117, 97, 106, 108, 113, 114, 108, 116, 106, 158, 109, 107, 97, 110, 113, 108, 114, 106, 111, 109, 115, 104, 104, 113, 108, 105, 104, 109, 114, 111, 108, 107, 114, 111, 113, 116, 102, 113, 110, 104, 116, 114, 111, 114, 109, 112, 107, 99, 100, 120, 82, 109, 92, 115, 113, 107, 114, 110, 117, 107, 104, 106, 115, 96, 109, 106, 106, 108, 94, 112, 118, 103, 56, 114, 111, 114, 117, 109, 128, 119, 113, 111, 120, 114, 109, 110, 110, 105, 110, 114, 108, 112, 123, 114, 120, 115, 108, 108, 107, 138, 114, 106, 105, 108, 109, 113, 113, 105, 127, 108, 106, 106, 121, 78, 124, 122, 110, 117, 107, 108, 113, 100, 110, 110, 102, 113, 109, 111, 120, 110, 117, 117, 117, 114, 116, 115, 114, 108, 112, 111, 115, 132, 114, 116, 121, 116, 99, 117, 129, 108, 109, 119, 116, 113, 113, 106, 114, 123, 101, 111, 115, 113, 113, 107, 125, 99, 99, 112, 112, 112, 114, 108, 109, 106, 119, 111, 96, 102, 108, 116, 101, 107, 109, 114, 117, 107, 114, 102, 106, 107, 117, 110, 111, 104, 104, 116, 112, 113, 106, 91, 121, 108, 122, 110, 102, 100, 106, 115, 98, 96, 99, 110, 114, 121, 109, 119, 112, 119, 104, 111, 120, 118, 113, 105, 117, 118, 115, 102, 107, 111, 104, 115, 110, 118, 128, 120, 117, 118, 109, 108, 117, 104, 108, 107, 113, 116, 115, 102, 115, 114, 113, 109, 105, 115, 113, 113, 116, 110, 113, 113, 110, 106, 108, 114, 112, 118, 113, 98, 99, 110, 113, 113, 112, 95, 102, 108, 108, 102, 100, 108, 118, 115, 114, 109, 107, 106, 111, 102, 104, 112, 108, 109, 100, 109, 105, 107, 113, 100, 108, 113, 118, 112, 105, 112, 112, 89, 106, 113, 105, 100, 104, 102, 88, 107, 113, 108, 110, 109, 108, 114, 103, 117, 77, 114, 110, 96, 116, 121, 120, 115, 114, 98, 102, 106, 117, 115, 115, 109, 109, 109, 112, 110, 119, 98, 110, 103, 106, 99, 112, 112, 116, 112, 105, 108, 110, 107, 110, 106, 105, 120, 116, 120, 111, 107, 101, 137, 114, 119, 101, 136, 114, 102, 119, 118, 110, 110, 101, 124, 105, 114, 110, 112, 104, 107, 114, 105, 115, 120, 117, 117, 120, 114, 97, 113, 96, 102, 116, 100, 71, 109, 101, 108, 109, 119, 124, 121, 102, 104, 100, 136, 113, 105, 104, 118, 102, 105, 122, 106, 112, 106, 114, 118, 118, 104, 115, 119, 113, 108, 105, 99, 100, 103, 114, 110, 118, 112, 107, 115, 94, 100, 119, 119, 111, 109, 118, 113, 107, 114, 107, 100, 102, 120, 118, 105, 112, 113, 108, 112, 110, 106, 114, 107, 127, 103, 114, 114, 111, 106, 113, 115, 116, 107, 108, 109, 117, 109, 112, 108, 109, 105, 114, 117, 108, 110, 107, 112, 111, 124, 108, 111, 107, 109, 101, 129, 104, 100, 106, 121, 105, 113, 108, 101, 99, 112, 92, 113, 107, 126, 111, 114, 113, 101, 112, 107, 99, 112, 114, 99, 135, 110, 114, 90, 113, 114, 118, 120, 104, 112, 112, 104, 99, 111, 106, 113, 115, 106, 105, 115, 102, 112, 111, 121, 101, 106, 115, 109, 119, 98, 99, 104, 106, 102, 116, 120, 113, 115, 96, 107, 99, 114, 109, 115, 93, 113, 108, 112, 114, 107, 109, 104, 115, 121, 113, 112, 107, 113, 107, 97, 96, 105, 111, 106, 116, 114, 116, 98, 106, 110, 112, 104, 104, 112, 114, 116, 113, 109, 114, 128, 103, 108, 111, 110, 112, 102, 105, 108, 115, 107, 113, 120, 105, 99, 111, 111, 99, 111, 103, 108, 88, 115, 118, 111, 104, 108, 105, 109, 106, 119, 117, 110, 114, 115, 115, 107, 107, 99, 114, 107, 109, 109, 108, 96, 113, 107, 107, 106, 103, 111, 125, 90, 105, 111, 122, 126, 111, 111, 106, 117, 106, 112, 108, 106, 107, 109, 113, 111, 120, 106, 106, 116, 102, 120, 110, 119, 120, 108, 109, 104, 108, 106, 112, 116, 107, 101, 109, 109, 116, 104, 111, 97, 111, 114, 110, 112, 106, 114, 107, 113, 103, 99, 107, 116, 106, 106, 101, 111, 106, 99, 104, 100, 109, 105, 117, 100, 118, 110, 113, 102, 105, 112, 111, 108, 101, 110, 111, 110, 108, 110, 105, 121, 91, 100, 112, 112, 107, 104, 108, 105, 114, 102, 99, 114, 110, 112, 108, 124, 105, 117, 107, 112, 111, 99, 102, 122, 132, 106, 105, 106, 118, 95, 102, 107, 105, 107, 106, 111, 106, 106, 109, 115, 113, 117, 122, 86, 95, 110, 113, 117, 135, 98, 107, 108, 107, 101, 99, 107, 115, 107, 127, 110, 116, 114, 109, 104, 111, 106, 119, 105, 120, 112, 114, 103, 101, 107, 110, 111, 110, 124, 98, 116, 104, 104, 103, 101, 116, 113, 103, 115, 112, 107, 109, 100, 105, 97, 108, 103, 115, 114, 112, 115, 116, 103, 101, 119, 108, 100, 103, 111, 97, 113, 121, 111, 115, 108, 108, 109, 114, 105, 120, 118, 111, 108, 112, 96, 111, 115, 109, 117, 104, 103, 111, 99, 105, 111, 113, 107, 102, 123, 104, 122, 107, 110, 116, 100, 105, 111, 112, 124, 102, 107, 92, 101, 106, 100, 121, 108, 125, 109, 99, 107, 105, 108, 105, 106, 119, 112, 115, 110, 107, 109, 112, 105, 112, 111, 105, 114, 110, 110, 92, 102, 116, 116, 100, 107, 114, 102, 110, 103, 109, 111, 109, 109, 102, 112, 104, 110, 113, 114, 92, 111, 110, 124, 116, 102, 114, 103, 110, 107, 116, 114, 104, 114, 103, 119, 112, 117, 96, 99, 111, 108, 103, 109, 115, 119, 110, 120, 113, 117, 111, 105, 128, 114, 104, 114, 118, 114, 110, 112, 105, 110, 114, 109, 110, 119, 110, 108, 101, 117, 112, 103, 102, 108, 112, 113, 102, 109, 105, 109, 99, 108, 115, 113, 110, 124, 113, 111, 101, 109, 106, 99, 103, 118, 106, 107, 111, 109, 106, 118, 98, 117, 107, 110, 145, 117, 110, 113, 111, 111, 109, 110, 107, 107, 105, 111, 103, 112, 117, 102, 104, 109, 102, 117, 110, 115, 108, 110, 116, 103, 107, 98, 115, 109, 133, 104, 119, 103, 109, 104, 109, 121, 118, 98, 112, 104, 104, 116, 106, 115, 130, 110, 139, 99, 106, 104, 112, 111, 108, 111, 110, 119, 107, 115, 111, 113, 101, 117, 102, 110, 104, 115, 114, 101, 102, 99, 112, 120, 111, 111, 106, 101, 117, 99, 108, 107, 101, 103, 114, 101, 111, 113, 113, 106, 114, 112, 106, 112, 100, 114, 107, 103, 115, 101, 133, 110, 108, 115, 99, 111, 116, 109, 99, 110, 107, 115, 108, 110, 103, 107, 121, 115, 112, 118, 112, 113, 118, 107, 105, 109, 132, 118, 115, 105, 116, 107, 131, 114, 111, 113, 113, 112, 112, 115, 90, 108, 103, 111, 106, 114, 106, 105, 112, 98, 110, 109, 110, 112, 101, 112, 104, 99, 101, 108, 109, 114, 114, 102, 95, 106, 101, 106, 104, 114, 118, 91, 116, 100, 109, 121, 106, 105, 109, 116, 115, 115, 108, 111, 87, 102, 110, 111, 122, 108, 110, 118, 111, 136, 111, 126, 108, 117, 104, 120, 134, 112, 112, 99, 112, 113, 115, 118, 107, 109, 111, 106, 108, 112, 100, 108, 109, 105, 123, 115, 104, 108, 115, 113, 102, 109, 106, 104, 123, 102, 97, 97, 107, 111, 116, 97, 104, 107, 107, 106, 113, 101, 111, 99, 94, 108, 115, 104, 108, 111, 117, 110, 115, 107, 116, 109, 110, 111, 108, 110, 99, 90, 109, 105, 103, 103, 105, 121, 111, 109, 115, 118, 98, 108, 110, 110, 130, 101, 117, 104, 102, 111, 105, 120, 113, 112, 109, 107, 105, 101, 114, 116, 108, 110, 106, 115, 102, 117, 99, 114, 105, 109, 101, 103, 112, 119, 98, 104, 100, 115, 105, 107, 102, 112, 95, 111, 108, 107, 121, 115, 101, 106, 115, 120, 120, 116, 102, 112, 110, 113, 111, 107, 110, 114, 108, 118, 118, 112, 101, 116, 106, 118, 117, 95, 119, 114, 112, 104, 120, 114, 113, 112, 109, 113, 110, 116, 100, 109, 115, 113, 112, 107, 108, 107, 111, 113, 115, 99, 118, 97, 113, 106, 114, 110, 104, 104, 118, 109, 121, 100, 110, 112, 118, 113, 107, 104, 98, 107, 104, 114, 105, 111, 113, 121, 108, 108, 117, 104, 110, 108, 101, 112, 112, 114, 110, 108, 106, 109, 105, 108, 105, 114, 111, 119, 111, 110, 105, 115, 131, 106, 118, 109, 124, 109, 130, 105, 110, 108, 106, 112, 115, 103, 107, 107, 101, 111, 103, 112, 106, 109, 114, 117, 110, 106, 114, 119, 107, 113, 109, 109, 112, 110, 104, 110, 120, 124, 114, 95, 97, 114, 114, 105, 102, 112, 109, 112, 92, 115, 112, 113, 112, 110, 112, 115, 109, 99, 103, 96, 110, 118, 117, 114, 113, 108, 118, 98, 108, 105, 107, 102, 107, 102, 120, 107, 110, 112, 97, 119, 114, 102, 103, 110, 120, 104, 116, 109, 99, 115, 106, 109, 104, 97, 106, 108, 116, 104, 116, 105, 112, 116, 106, 101, 103, 103, 127, 101, 111, 115, 100, 121, 115, 116, 111, 110, 114, 101, 121, 107, 112, 111, 107, 107, 111, 107, 103, 101, 100, 111, 107, 120, 114, 99, 119, 112, 111, 112, 104, 110, 106, 106, 108, 112, 111, 113, 119, 113, 112, 119, 109, 112, 113, 111, 112, 104, 112, 104, 114, 111, 110, 107, 107, 106, 88, 110, 109, 101, 98, 105, 104, 100, 106, 66, 116, 105, 102, 115, 107, 113, 113, 112, 108, 111, 117, 107, 104, 116, 110, 113, 108, 128, 105, 114, 105, 108, 105, 110, 98, 126, 108, 98, 114, 97, 114, 107, 107, 107, 109, 114, 108, 105, 112, 106, 108, 113, 115, 100, 111, 115, 105, 96, 109, 102, 113, 109, 121, 106, 120, 112, 120, 107, 111, 116, 119, 114, 106, 104, 105, 114, 112, 114, 116, 110, 100, 114, 111, 109, 107, 113, 119, 118, 102, 113, 107, 110, 113, 100, 99, 104, 98, 108, 122, 111, 102, 122, 111, 114, 107, 111, 112, 111, 105, 103, 106, 110, 108, 106, 97, 109, 109, 102, 104, 104, 119, 107, 122, 92, 102, 112, 104, 107, 97, 113, 107, 117, 99, 107, 117, 111, 100, 100, 112, 105, 109, 100, 114, 71, 105, 114, 112, 109, 109, 107, 110, 130, 106, 112, 113, 113, 113, 105, 114, 112, 111, 123, 115, 107, 115, 107, 116, 114, 110, 115, 144, 108, 125, 98, 100, 121, 103, 124, 95, 102, 107, 116, 115, 107, 117, 106, 107, 107, 106, 119, 95, 121, 104, 98, 107, 114, 115, 114, 103, 112, 110, 96, 109, 118, 112, 110, 93, 108, 112, 108, 106, 111, 111, 144, 109, 111, 112, 107, 109, 113, 114, 110, 102, 112, 118, 97, 108, 99, 103, 113, 104, 106, 105, 116, 105, 110, 111, 106, 101, 110, 114, 113, 106, 109, 107, 98, 105, 104, 109, 121, 112, 104, 111, 117, 120, 110, 109, 117, 100, 108, 96, 111, 118, 113, 135, 112, 108, 128, 105, 125, 107, 106, 106, 99, 113, 110, 120, 106, 107, 105, 95, 110, 107, 110, 131, 101, 102, 126, 101, 109, 103, 107, 105, 95, 104, 106, 71, 113, 109, 98, 112, 111, 121, 105, 109, 112, 106, 104, 112, 105, 112, 108, 68, 99, 106, 103, 126, 99, 107, 125, 113, 97, 108, 116, 59, 97, 88, 112, 103, 94, 109, 108, 107, 106, 123, 118, 103, 110, 108, 104, 131, 95, 110, 104, 109, 103, 99, 116, 114, 93, 112, 117, 109, 118, 114, 112, 112, 109, 103, 111, 109, 113, 110, 109, 110, 114, 108, 115, 109, 118, 114, 106, 106, 96, 95, 120, 117, 113, 105, 118, 103, 117, 108, 107, 117, 108, 97, 114, 122, 116, 98, 104, 112, 101, 117, 113, 106, 115, 104, 117, 111, 119, 114, 104, 107, 123, 111, 98, 111, 122, 103, 115, 111, 107, 79, 100, 100, 123, 104, 100, 109, 99, 111, 106, 108, 107, 105, 109, 106, 107, 105, 108, 103, 113, 108, 104, 114, 104, 101, 94, 101, 103, 112, 107, 109, 119, 105, 109, 101, 119, 106, 96, 121, 114, 101, 117, 109, 96, 114, 110, 111, 123, 100, 109, 114, 108, 103, 111, 110, 132, 119, 100, 111, 112, 116, 116, 132, 102, 113, 130, 111, 109, 105, 113, 97, 108, 103, 110, 112, 116, 119, 112, 107, 128, 107, 97, 110, 103, 116, 120, 120, 110, 101, 114, 100, 79, 109, 109, 102, 103, 113, 114, 100, 115, 114, 112, 111, 112, 113, 108, 112, 103, 110, 122, 112, 108, 111, 116, 92, 108, 104, 109, 103, 101, 111, 103, 107, 109, 120, 107, 102, 99, 110, 114, 111, 103, 113, 113, 106, 124, 112, 107, 119, 110, 108, 86, 107, 116, 113, 107, 119, 114, 111, 118, 127, 105, 110, 121, 106, 110, 107, 109, 108, 98, 101, 107, 104, 107, 108, 100, 108, 108, 116, 125, 101, 107, 119, 110, 119, 107, 99, 107, 108, 109, 104, 118, 114, 102, 106, 110, 110, 111, 108, 103, 102, 105, 107, 103, 103, 114, 108, 104, 108, 108, 107, 113, 107, 109, 105, 111, 110, 108, 110, 107, 114, 123, 123, 113, 113, 110, 109, 117, 117, 113, 118, 114, 108, 104, 113, 124, 114, 117, 113, 93, 105, 120, 115, 113, 111, 116, 84, 114, 116, 106, 108, 105, 113, 111, 107, 116, 114, 111, 113, 114, 117, 112, 101, 114, 112, 110, 104, 99, 112, 109, 114, 110, 104, 108, 112, 110, 115, 115, 113, 112, 107, 117, 120, 110, 112, 106, 107, 115, 101, 107, 112, 107, 113, 111, 111, 118, 100, 118, 114, 128, 112, 117, 111, 116, 112, 118, 106, 105, 122, 106, 111, 110, 114, 109, 106, 110, 108, 117, 110, 113, 110, 115, 114, 104, 108, 107, 96, 108, 98, 103, 112, 110, 112, 110, 112, 108, 106, 112, 103, 112, 118, 110, 107, 88, 110, 110, 103, 117, 104, 115, 107, 116, 114, 110, 101, 105, 108, 107, 111, 103, 92, 103, 105, 114, 102, 123, 99, 105, 112, 112, 106, 101, 117, 107, 103, 113, 110, 110, 99, 118, 105, 103, 111, 118, 108, 115, 101, 117, 110, 118, 104, 114, 97, 109, 108, 108, 110, 116, 118, 111, 82, 104, 111, 119, 112, 92, 113, 96, 108, 119, 105, 107, 123, 97, 101, 112, 120, 107, 114, 101, 111, 115, 107, 106, 111, 109, 118, 112, 115, 109, 116, 127, 115, 108, 108, 109, 98, 101, 100, 109, 109, 108, 108, 112, 107, 110, 114, 108, 115, 107, 114, 115, 99, 119, 113, 104, 103, 126, 103, 110, 109, 106, 111, 106, 107, 107, 110, 114, 102, 106, 115, 101, 110, 109, 117, 107, 116, 107, 101, 104, 108, 115, 114, 110, 128, 110, 115, 109, 113, 103, 112, 109, 104, 109, 108, 117, 116, 113, 105, 114, 114, 103, 112, 112, 108, 108, 105, 109, 120, 106, 119, 113, 109, 112, 111, 111, 107, 115, 100, 114, 103, 119, 104, 106, 112, 110, 116, 104, 118, 111, 108, 107, 105, 108, 110, 105, 111, 105, 113, 110, 107, 106, 104, 110, 116, 117, 110, 101, 116, 114, 112, 114, 102, 115, 110, 118, 121, 120, 119, 109, 111, 110, 115, 108, 114, 110, 118, 103, 98, 108, 116, 112, 106, 114, 103, 108, 108, 115, 107, 104, 110, 105, 111, 111, 110, 105, 106, 111, 130, 103, 111, 111, 107, 102, 111, 114, 94, 104, 99, 111, 109, 110, 113, 105, 109, 108, 101, 118, 117, 112, 108, 113, 113, 108, 109, 116, 120, 117, 104, 120, 114, 109, 106, 105, 112, 114, 111, 107, 103, 121, 113, 108, 109, 92, 119, 122, 116, 103, 107, 111, 111, 116, 112, 115, 108, 115, 107, 119, 114, 120, 119, 112, 117, 109, 110, 110, 108, 110, 102, 116, 110, 109, 105, 111, 111, 111, 109, 118, 102, 106, 108, 104, 108, 126, 103, 106, 106, 115, 106, 111, 110, 115, 108, 115, 105, 104, 115, 110, 108, 112, 112, 102, 110, 115, 118, 114, 109, 109, 110, 134, 105, 104, 112, 111, 109, 109, 110, 110, 121, 110, 102, 108, 103, 113, 98, 106, 112, 109, 105, 116, 107, 120, 110, 115, 106, 109, 115, 109, 109, 117, 110, 104, 106, 107, 111, 104, 109, 100, 105, 120, 107, 112, 115, 107, 105, 105, 113, 102, 113, 106, 123, 111, 111, 111, 93, 106, 98, 112, 110, 105, 104, 100, 115, 117, 121, 113, 113, 117, 108, 103, 104, 124, 110, 93, 100, 106, 110, 103, 121, 119, 121, 108, 111, 101, 114, 117, 107, 113, 102, 108, 101, 108, 111, 114, 110, 107, 107, 110, 116, 108, 104, 100, 110, 108, 110, 96, 114, 104, 110, 120, 104, 118, 103, 112, 101, 110, 114, 115, 117, 107, 104, 104, 108, 110, 111, 114, 114, 107, 126, 130, 116, 111, 109, 114, 109, 102, 101, 112, 115, 99, 113, 114, 114, 105, 108, 110, 108, 113, 110, 104, 109, 116, 104, 107, 98, 107, 113, 105, 112, 114, 100, 106, 113, 111, 124, 105, 115, 109, 111, 105, 98, 108, 114, 104, 117, 107, 109, 117, 111, 112, 113, 108, 120, 113, 105, 111, 99, 106, 108, 109, 115, 104, 107, 114, 116, 101, 112, 110, 109, 118, 109, 100, 105, 110, 116, 116, 111, 113, 107, 117, 105, 100, 108, 103, 111, 101, 116, 102, 118, 121, 103, 112, 107, 108, 107, 117, 114, 110, 107, 116, 107, 108, 112, 107, 106, 109, 109, 112, 103, 106, 115, 108, 111, 118, 122, 114, 110, 114, 119, 104, 114, 116, 111, 113, 109, 114, 109, 111, 107, 110, 113, 115, 107, 107, 116, 111, 112, 99, 110, 115, 104, 114, 108, 106, 104, 113, 108, 113, 112, 118, 106, 115, 111, 109, 110, 111, 106, 107, 120, 104, 110, 104, 103, 115, 114, 99, 117, 112, 110, 106, 112, 110, 108, 112, 112, 100, 114, 107, 109, 112, 118, 115, 99, 109, 111, 114, 112, 110, 110, 103, 113, 108, 105, 104, 113, 108, 102, 109, 110, 114, 108, 106, 109, 107, 118, 117, 104, 121, 96, 98, 116, 102, 110, 103, 101, 113, 139, 116, 115, 108, 108, 107, 113, 103, 112, 104, 107, 112, 110, 119, 116, 109, 119, 116, 111, 114, 108, 115, 110, 110, 111, 116, 113, 101, 112, 115, 104, 113, 106, 109, 110, 109, 107, 104, 105, 115, 109, 109, 105, 109, 102, 106, 111, 113, 107, 106, 119, 107, 108, 111, 109, 104, 110, 93, 116, 102, 113, 113, 114, 108, 105, 102, 103, 113, 87, 108, 114, 108, 115, 109, 119, 97, 108, 98, 135, 112, 107, 114, 109, 114, 109, 106, 99, 112, 114, 105, 100, 116, 117, 104, 105, 108, 107, 104, 105, 122, 100, 104, 110, 108, 111, 112, 114, 115, 112, 115, 103, 112, 113, 107, 115, 110, 107, 109, 109, 109, 105, 111, 114, 105, 112, 108, 113, 115, 108, 106, 112, 104, 112, 108, 104, 111, 97, 108, 106, 111, 103, 135, 113, 108, 117, 118, 107, 116, 115, 113, 98, 103, 123, 113, 116, 107, 111, 104, 102, 109, 108, 110, 114, 112, 116, 113, 114, 115, 109, 111, 114, 105, 92, 118, 114, 107, 113, 121, 98, 129, 112, 103, 120, 116, 92, 111, 104, 104, 105, 116, 113, 123, 106, 110, 116, 108, 101, 109, 109, 109, 103, 105, 115, 100, 103, 99, 108, 115, 106, 108, 114, 105, 104, 114, 108, 112, 115, 109, 111, 107, 99, 111, 99, 110, 115, 125, 110, 117, 117, 114, 114, 109, 107, 108, 111, 114, 108, 130, 111, 100, 115, 112, 113, 112, 110, 117, 103, 102, 106, 113, 107, 118, 114, 117, 117, 104, 109, 109, 107, 116, 114, 109, 104, 110, 119, 112, 108, 108, 107, 100, 111, 108, 111, 102, 111, 114, 107, 114, 111, 114, 111, 115, 116, 111, 102, 109, 110, 108, 104, 114, 111, 113, 106, 111, 112, 133, 117, 129, 112, 111, 112, 106, 116, 109, 112, 117, 110, 113, 101, 110, 106, 110, 109, 107, 115, 109, 105, 117, 111, 111, 103, 107, 107, 115, 110, 107, 115, 113, 116, 105, 117, 106, 107, 107, 112, 97, 115, 116, 113, 104, 110, 111, 108, 116, 107, 111, 115, 103, 106, 116, 102, 115, 111, 107, 104, 109, 113, 103, 112, 108, 108, 109, 107, 104, 103, 115, 116, 106, 109, 111, 109, 110, 115, 97, 108, 95, 106, 105, 106, 112, 111, 107, 114, 101, 109, 107, 114, 108, 105, 118, 114, 108, 113, 116, 114, 122, 115, 116, 106, 107, 111, 114, 112, 113, 112, 102, 106, 98, 110, 112, 109, 111, 112, 115, 109, 103, 119, 126, 116, 108, 113, 106, 119, 110, 108, 105, 116, 109, 102, 116, 109, 111, 107, 109, 108, 110, 105, 108, 112, 107, 123, 111, 111, 112, 109, 117, 114, 107, 112, 116, 110, 113, 114, 108, 113, 113, 113, 111, 117, 110, 117, 108, 114, 111, 107, 107, 102, 116, 108, 111, 112, 106, 105, 112, 106, 111, 101, 106, 91, 111, 121, 114, 112, 109, 117, 102, 107, 112, 108, 115, 110, 105, 104, 112, 109, 104, 136, 119, 107, 109, 114, 111, 109, 108, 111, 110, 115, 100, 110, 111, 105, 119, 93, 115, 105, 109, 104, 109, 103, 117, 103, 110, 107, 118, 105, 115, 107, 114, 108, 116, 113, 109, 109, 103, 112, 110, 110, 112, 113, 117, 108, 113, 113, 139, 109, 113, 113, 100, 108, 104, 109, 114, 108, 104, 113, 103, 110, 107, 113, 108, 109, 113, 107, 121, 110, 104, 109, 108, 120, 113, 106, 113, 110, 103, 109, 104, 98, 121, 109, 102, 108, 110, 113, 111, 98, 98, 111, 112, 109, 110, 98, 112, 112, 100, 102, 106, 112, 111, 105, 110, 113, 110, 107, 108, 107, 115, 103, 115, 117, 114, 106, 106, 114, 112, 112, 115, 111, 113, 113, 108, 111, 111, 109, 110, 110, 106, 106, 113, 106, 111, 110, 112, 113, 115, 109, 108, 107, 115, 113, 113, 108, 113, 109, 114, 107, 109, 113, 112, 115, 112, 113, 99, 115, 110, 111, 108, 106, 104, 114, 104, 107, 106, 114, 121, 105, 109, 110, 104, 111, 112, 111, 109, 108, 114, 109, 109, 110, 108, 111, 109, 108, 112, 109, 111, 112, 112, 102, 119, 113, 111, 112, 117, 116, 116, 108, 111, 106, 104, 111, 107, 109, 118, 110, 114, 108, 110, 109, 104, 120, 103, 108, 112, 110, 112, 110, 110, 114, 111, 112, 105, 112, 109, 114, 109, 106, 114, 108, 111, 108, 112, 112, 107, 113, 116, 117, 113, 111, 116, 111, 104, 111, 110, 106, 108, 112, 109, 118, 107, 105, 105, 110, 116, 113, 112, 112, 112, 109, 111, 111, 113, 111, 104, 115, 117, 109, 113, 106, 101, 115, 110, 106, 108, 103, 108, 115, 109, 114, 113, 111, 110, 111, 113, 110, 110, 112, 113, 111, 112, 108, 103, 111, 108, 107, 104, 114, 107, 109, 108, 113, 112, 110, 105, 110, 107, 99, 112, 108, 106, 104, 116, 113, 108, 110, 104, 113, 117, 109, 109, 111, 112, 106, 109, 112, 111, 106, 112, 113, 113, 116, 105, 108, 110, 106, 110, 108, 109, 111, 112, 113, 108, 108, 111, 108, 114, 111, 105, 110, 112, 104, 109, 113, 115, 112, 112, 113, 116, 105, 108, 113, 112, 118, 107, 113, 109, 119, 116, 109, 102, 105, 110, 110, 119, 108, 112, 113, 109, 118, 112, 106, 114, 110, 114, 110, 107, 100, 97, 113, 114, 113, 107, 109, 115, 112, 110, 112, 108, 105, 113, 106, 110, 109, 110, 110, 109, 110, 112, 120, 106, 112, 112, 108, 110, 113, 115, 106, 113, 111, 114, 114, 107, 110, 109, 110, 114, 116, 116, 111, 116, 112, 111, 104, 109, 112, 108, 106, 113, 111, 109, 114, 114, 110, 113, 109, 110, 112, 112, 114, 111, 113, 103, 107, 110, 115, 108, 111, 106, 111, 107, 116, 111, 110, 109, 110, 115, 112, 109, 113, 112, 107, 110, 109, 110, 111, 118, 110, 111, 107, 117, 99, 114, 106, 108, 109, 117, 106, 107, 115, 108, 118, 115, 113, 110, 105, 112, 114, 113, 108, 107, 109, 106, 106, 110, 106, 113, 109, 110, 113, 99, 108, 96, 111, 108, 111, 111, 110, 114, 110, 104, 111, 108, 113, 111, 105, 107, 113, 111, 111, 111, 109, 113, 111, 116, 109, 106, 110, 112, 110, 111, 109, 114, 109, 111, 108, 113, 109, 109, 113, 105, 111, 117, 106, 113, 113, 114, 110, 114, 117, 107, 108, 116, 107, 114, 111, 112, 105, 111, 108, 112, 107, 115, 108, 114, 114, 104, 115, 110, 109, 110, 111, 109, 110, 115, 110, 120, 112, 111, 111, 109, 112, 103, 112, 114, 104, 106, 111, 107, 114, 120, 108, 115, 123, 99, 114, 118, 113, 111, 111, 110, 110, 112, 101, 111, 112, 114, 112, 100, 109, 112, 101, 112, 103, 106, 114, 111, 94, 116, 110, 97, 107, 104, 108, 114, 112, 116, 119, 109, 113, 115, 126, 109, 98, 144, 116, 117, 105, 104, 99, 115, 106, 119, 121, 115, 104, 115, 108, 113, 106, 113, 112, 95, 107, 115, 115, 113, 112, 99, 107, 119, 104, 113, 113, 100, 119, 104, 113, 113, 102, 108, 108, 93, 111, 113, 110, 107, 117, 107, 115, 102, 102, 115, 108, 114, 115, 112, 106, 106, 105, 98, 112, 101, 105, 110, 109, 111, 108, 106, 118, 116, 98, 111, 116, 112, 102, 116, 119, 110, 106, 106, 112, 126, 108, 116, 132, 118, 112, 120, 110, 110, 118, 112, 119, 116, 108, 116, 99, 102, 117, 115, 109, 128, 114, 114, 105, 103, 110, 110, 119, 118, 108, 115, 120, 97, 98, 110, 124, 113, 109, 119, 101, 106, 108, 102, 111, 106, 111, 112, 100, 95, 108, 104, 115, 117, 109, 110, 113, 99, 106, 105, 110, 104, 103, 104, 113, 113, 118, 100, 102, 115, 111, 105, 112, 110, 113, 113, 105, 113, 115, 114, 97, 119, 105, 123, 110, 108, 100, 107, 120, 115, 108, 111, 110, 108, 121, 113, 121, 114, 106, 109, 118, 96, 110, 93, 109, 97, 105, 107, 109, 118, 115, 92, 111, 111, 104, 108, 113, 112, 102, 104, 113, 93, 114, 110, 123, 106, 109, 111, 101, 98, 112, 109, 112, 108, 106, 108, 121, 102, 112, 108, 101, 105, 104, 114, 104, 99, 105, 113, 108, 124, 103, 112, 111, 108, 112, 105, 104, 119, 110, 102, 110, 111, 120, 112, 87, 102, 104, 108, 102, 105, 109, 115, 118, 102, 107, 113, 97, 114, 109, 90, 101, 116, 98, 110, 108, 112, 108, 109, 111, 110, 97, 105, 109, 110, 111, 112, 112, 122, 101, 103, 115, 112, 108, 103, 108, 103, 96, 105, 111, 108, 98, 114, 109, 112, 105, 108, 121, 94, 113, 112, 110, 109, 97, 120, 103, 99, 123, 99, 113, 113, 103, 119, 100, 112, 105, 108, 107, 97, 95, 106, 114, 102, 109, 151, 103, 99, 93, 103, 115, 110, 108, 103, 120, 110, 119, 105, 111, 111, 119, 104, 109, 103, 110, 109, 110, 119, 106, 104, 113, 106, 116, 107, 108, 112, 109, 117, 131, 100, 109, 99, 120, 122, 115, 111, 111, 104, 115, 118, 101, 105, 99, 109, 120, 110, 109, 96, 116, 117, 106, 104, 108, 106, 106, 116, 118, 106, 112, 113, 104, 111, 114, 106, 113, 117, 125, 129, 121, 95, 108, 116, 116, 111, 106, 117, 99, 115, 110, 120, 111, 124, 131, 113, 108, 126, 109, 136, 109, 101, 113, 96, 120, 103, 104, 111, 112, 110, 104, 104, 104, 103, 112, 113, 90, 99, 111, 102, 114, 115, 109, 104, 105, 119, 106, 110, 95, 106, 104, 92, 107, 123, 101, 104, 105, 99, 112, 102, 102, 106, 117, 116, 112, 104, 103, 114, 104, 102, 104, 105, 117, 118, 106, 104, 110, 117, 119, 110, 105, 114, 95, 115, 106, 106, 117, 103, 103, 104, 127, 115, 117, 112, 103, 110, 119, 114, 112, 115, 107, 115, 104, 108, 118, 117, 105, 121, 104, 107, 111, 121, 112, 127, 121, 113, 110, 113, 108, 115, 111, 118, 104, 110, 107, 104, 102, 106, 107, 116, 104, 116, 109, 127, 105, 122, 126, 108, 101, 116, 127, 117, 122, 102, 102, 113, 110, 116, 108, 104, 112, 102, 117, 112, 108, 116, 106, 109, 111, 108, 108, 105, 108, 109, 114, 104, 109, 111, 102, 110, 112, 107, 112, 113, 102, 108, 124, 108, 100, 117, 125, 120, 112, 128, 107, 111, 100, 108, 108, 106, 110, 114, 103, 111, 102, 113, 114, 106, 108, 114, 109, 121, 113, 117, 107, 109, 112, 111, 119, 105, 119, 108, 111, 115, 110, 119, 103, 113, 104, 119, 107, 114, 118, 116, 109, 110, 108, 120, 119, 107, 105, 112, 114, 107, 120, 109, 120, 106, 103, 103, 107, 112, 109, 108, 126, 103, 108, 110, 107, 107, 102, 114, 110, 109, 109, 107, 113, 110, 112, 103, 98, 107, 110, 103, 104, 107, 115, 109, 110, 109, 103, 115, 104, 110, 110, 113, 109, 117, 111, 113, 112, 111, 105, 106, 116, 114, 109, 113, 119, 110, 99, 112, 108, 109, 115, 102, 112, 104, 103, 109, 113, 101, 109, 106, 103, 119, 100, 101, 120, 118, 102, 117, 110, 112, 111, 106, 111, 103, 118, 103, 115, 115, 107, 127, 105, 118, 103, 120, 115, 108, 110, 114, 108, 102, 110, 103, 105, 104, 110, 117, 120, 123, 112, 104, 114, 107, 102, 112, 108, 112, 112, 115, 112, 108, 110, 111, 115, 110, 101, 109, 111, 115, 113, 116, 114, 111, 118, 112, 108, 117, 119, 120, 100, 114, 106, 106, 123, 114, 110, 102, 110, 99, 103, 115, 117, 107, 107, 108, 111, 107, 109, 109, 111, 108, 117, 106, 107, 99, 106, 107, 108, 107, 110, 108, 110, 107, 111, 109, 128, 109, 110, 119, 109, 106, 109, 117, 104, 113, 108, 112, 114, 113, 107, 101, 113, 117, 111, 113, 111, 118, 114, 109, 111, 113, 107, 111, 108, 109, 119, 110, 107, 109, 108, 112, 111, 121, 106, 106, 116, 114, 105, 110, 111, 117, 107, 101, 108, 119, 122, 112, 117, 115, 105, 115, 98, 112, 105, 121, 102, 115, 93, 111, 110, 111, 112, 111, 112, 109, 114, 117, 114, 108, 108, 110, 103, 112, 107, 108, 106, 110, 109, 114, 108, 122, 101, 106, 113, 115, 107, 109, 109, 111, 117, 103, 107, 110, 118, 103, 114, 115, 110, 111, 113, 105, 109, 114, 104, 115, 111, 111, 117, 114, 108, 114, 117, 105, 108, 107, 112, 108, 118, 109, 115, 116, 116, 105, 112, 109, 107, 110, 115, 114, 114, 117, 107, 113, 116, 108, 106, 115, 112, 104, 104, 114, 107, 111, 109, 108, 108, 105, 107, 118, 125, 112, 110, 113, 109, 114, 113, 104, 117, 108, 112, 112, 106, 112, 116, 114, 116, 113, 113, 115, 113, 117, 107, 113, 111, 116, 124, 110, 117, 109, 108, 111, 107, 105, 110, 109, 119, 118, 105, 111, 111, 120, 102, 120, 118, 111, 105, 105, 116, 112, 112, 111, 113, 104, 118, 112, 116, 123, 112, 107, 108, 106, 107, 119, 114, 119, 110, 112, 106, 118, 112, 109, 112, 107, 102, 108, 108, 121, 122, 98, 112, 79, 107, 112, 111, 102, 103, 98, 105, 98, 89, 111, 119, 111, 103, 114, 111, 115, 102, 112, 111, 115, 110, 109, 110, 104, 107, 102, 104, 98, 112, 109, 105, 109, 118, 106, 113, 106, 103, 106, 108, 123, 97, 109, 107, 112, 106, 107, 114, 112, 101, 107, 106, 105, 117, 110, 102, 108, 100, 110, 121, 116, 101, 118, 108, 109, 105, 124, 110, 121, 118, 117, 123, 105, 103, 111, 115, 114, 103, 109, 110, 115, 116, 111, 112, 110, 123, 107, 116, 120, 104, 112, 110, 108, 104, 112, 73, 112, 105, 116, 126, 105, 105, 109, 109, 109, 117, 105, 115, 107, 114, 108, 113, 112, 112, 109, 129, 111, 106, 111, 117, 119, 114, 107, 112, 107, 110, 108, 101, 115, 100, 108, 110, 118, 108, 101, 112, 117, 98, 104, 110, 103, 106, 112, 114, 129, 103, 124, 111, 62, 112, 111, 112, 107, 109, 101, 111, 111, 104, 112, 104, 108, 118, 115, 107, 114, 114, 111, 106, 110, 104, 113, 102, 110, 119, 108, 104, 107, 94, 111, 109, 118, 118, 107, 108, 112, 105, 102, 112, 103, 102, 121, 107, 115, 105, 113, 100, 132, 111, 110, 109, 114, 109, 113, 112, 118, 97, 108, 109, 116, 112, 111, 113, 109, 112, 116, 105, 89, 110, 103, 111, 120, 102, 105, 106, 108, 107, 113, 124, 93, 106, 111, 110, 131, 113, 105, 108, 108, 112, 103, 108, 102, 108, 109, 110, 105, 108, 104, 117, 110, 144, 107, 104, 110, 109, 90, 108, 108, 104, 103, 108, 103, 115, 107, 113, 112, 104, 109, 111, 105, 113, 108, 114, 107, 109, 111, 106, 116, 113, 119, 94, 106, 111, 106, 107, 120, 115, 109, 115, 107, 108, 110, 120, 103, 104, 113, 118, 98, 108, 104, 113, 111, 106, 107, 115, 105, 114, 112, 119, 116, 104, 104, 113, 116, 111, 119, 104, 101, 107, 106, 135, 120, 112, 102, 95, 123, 108, 109, 105, 117, 117, 114, 113, 113, 131, 102, 120, 109, 106, 110, 99, 104, 116, 108, 107, 101, 109, 115, 105, 108, 115, 109, 111, 103, 116, 105, 107, 113, 109, 113, 105, 111, 118, 110, 111, 112, 121, 113, 110, 105, 116, 117, 113, 115, 110, 115, 116, 114, 104, 113, 119, 114, 113, 117, 107, 111, 116, 110, 111, 112, 111, 106, 112, 108, 108, 104, 109, 112, 111, 113, 111, 116, 106, 83, 116, 106, 103, 102, 114, 114, 106, 114, 100, 111, 122, 107, 108, 113, 109, 121, 105, 107, 113, 115, 108, 120, 98, 107, 110, 105, 106, 110, 113, 107, 118, 109, 108, 122, 176, 117, 116, 111, 99, 106, 106, 111, 107, 107, 101, 114, 104, 107, 105, 115, 101, 116, 112, 113, 85, 108, 111, 112, 106, 105, 108, 82, 101, 106, 114, 114, 105, 108, 117, 119, 110, 108, 109, 112, 109, 106, 110, 107, 109, 100, 116, 114, 106, 105, 124, 101, 127, 115, 121, 108, 106, 107, 105, 126, 94, 107, 99, 111, 105, 108, 121, 122, 112, 100, 116, 103, 113, 107, 103, 106, 87, 114, 98, 108, 112, 118, 119, 107, 98, 101, 105, 113, 111, 102, 120, 104, 97, 104, 102, 112, 104, 118, 113, 105, 112, 130, 119, 99, 110, 103, 92, 101, 103, 104, 100, 112, 98, 115, 91, 111, 117, 113, 103, 103, 95, 109, 107, 125, 103, 113, 97, 104, 114, 105, 116, 106, 105, 106, 102, 88, 116, 113, 116, 123, 106, 107, 115, 112, 112, 86, 91, 107, 111, 109, 110, 116, 102, 95, 117, 68, 108, 101, 111, 100, 106, 108, 107, 116, 93, 95, 104, 116, 104, 113, 117, 124, 109, 118, 102, 96, 87, 85, 113, 103, 113, 93, 112, 123, 119, 106, 101, 111, 114, 118, 114, 99, 103, 110, 109, 120, 107, 62, 111, 128, 105, 115, 110, 109, 112, 113, 100, 121, 114, 110, 102, 97, 111, 110, 116, 103, 112, 113, 107, 120, 110, 120, 68, 123, 93, 104, 122, 108, 103, 110, 98, 91, 108, 103, 118, 116, 119, 102, 109, 120, 110, 114, 110, 132, 100, 159, 118, 115, 99, 94, 95, 112, 111, 110, 108, 111, 122, 103, 127, 110, 82, 104, 89, 112, 120, 84, 118, 104, 106, 112, 108, 112, 93, 121, 107, 100, 114, 124, 87, 121, 100, 130, 105, 107, 103, 102, 119, 123, 106, 118, 109, 106, 108, 98, 114, 108, 123, 113, 115, 109, 98, 116, 119, 130, 101, 81, 119, 104, 122, 105, 108, 99, 82, 109, 96, 103, 111, 111, 101, 112, 107, 107, 110, 103, 107, 106, 101, 104, 73, 102, 110, 114, 119, 103, 121, 112, 115, 104, 103, 113, 100, 110, 116, 117, 91, 110, 107, 107, 116, 118, 110, 111, 106, 116, 108, 105, 111, 106, 101, 93, 111, 106, 118, 111, 92, 109, 112, 107, 104, 108, 117, 105, 116, 113, 115, 112, 102, 106, 102, 132, 104, 94, 94, 129, 85, 112, 128, 98, 121, 92, 105, 115, 114, 100, 98, 121, 103, 93, 106, 95, 104, 112, 112, 110, 115, 111, 101, 120, 122, 111, 104, 98, 102, 90, 105, 123, 102, 108, 98, 126, 103, 115, 116, 107, 113, 103, 99, 114, 112, 109, 80, 67, 119, 112, 124, 105, 113, 104, 114, 106, 111, 111, 106, 119, 105, 97, 65, 108, 107, 118, 111, 92, 110, 95, 126, 103, 107, 97, 108, 99, 95, 100, 110, 110, 106, 111, 105, 105, 105, 119, 112, 108, 109, 94, 107, 117, 107, 115, 100, 115, 81, 110, 108, 116, 107, 103, 100, 98, 104, 104, 69, 107, 106, 114, 108, 120, 117, 111, 111, 117, 106, 117, 98, 103, 94, 112, 90, 111, 105, 100, 94, 119, 112, 119, 108, 113, 88, 113, 102, 105, 113, 109, 115, 112, 105, 109, 93, 97, 95, 94, 110, 106, 108, 107, 111, 114, 116, 96, 114, 100, 106, 108, 111, 100, 104, 114, 118, 107, 103, 107, 96, 108, 110, 113, 111, 129, 103, 107, 109, 102, 109, 119, 109, 107, 103, 97, 100, 109, 109, 104, 116, 111, 103, 102, 118, 112, 110, 109, 103, 98, 107, 111, 106, 108, 107, 112, 108, 106, 106, 105, 107, 110, 109, 101, 99, 107, 111, 107, 106, 107, 116, 99, 112, 113, 126, 109, 90, 105, 109, 113, 107, 111, 113, 100, 121, 99, 106, 102, 104, 115, 107, 104, 102, 112, 108, 110, 106, 104, 115, 99, 108, 102, 113, 116, 115, 112, 111, 111, 105, 106, 123, 104, 112, 112, 110, 109, 103, 105, 112, 100, 112, 106, 106, 117, 114, 108, 117, 104, 106, 114, 110, 104, 114, 109, 109, 104, 117, 120, 96, 107, 102, 113, 118, 123, 107, 111, 94, 130, 109, 106, 103, 110, 102, 117, 120, 101, 116, 106, 108, 110, 106, 121, 108, 115, 112, 106, 105, 111, 115, 107, 113, 98, 107, 109, 109, 99, 111, 112, 106, 107, 104, 106, 110, 105, 111, 116, 110, 107, 124, 111, 119, 106, 111, 117, 111, 109, 112, 109, 115, 110, 103, 108, 114, 105, 112, 123, 105, 113, 115, 117, 126, 113, 101, 109, 113, 114, 103, 110, 118, 113, 105, 109, 110, 107, 110, 100, 108, 121, 118, 106, 108, 106, 110, 101, 107, 106, 108, 118, 99, 103, 98, 110, 101, 109, 119, 119, 112, 109, 116, 115, 108, 121, 122, 113, 112, 115, 101, 109, 121, 112, 108, 98, 108, 101, 107, 112, 107, 106, 103, 122, 109, 113, 105, 112, 116, 119, 116, 112, 105, 113, 105, 111, 104, 117, 105, 115, 102, 105, 124, 110, 109, 108, 116, 109, 102, 106, 111, 124, 103, 114, 113, 104, 104, 106, 103, 101, 103, 103, 109, 111, 117, 111, 105, 102, 101, 116, 109, 102, 114, 113, 109, 104, 122, 101, 121, 106, 99, 120, 100, 99, 109, 105, 106, 100, 104, 106, 114, 110, 109, 104, 105, 107, 118, 104, 110, 113, 104, 105, 105, 107, 106, 108, 107, 111, 108, 126, 113, 100, 109, 110, 108, 102, 104, 118, 107, 111, 113, 114, 113, 109, 113, 116, 111, 113, 102, 118, 102, 105, 118, 105, 101, 99, 131, 109, 109, 109, 112, 106, 101, 115, 92, 110, 115, 116, 100, 109, 97, 110, 114, 125, 104, 117, 116, 112, 112, 109, 105, 120, 103, 114, 96, 110, 113, 108, 99, 108, 105, 118, 107, 113, 100, 106, 120, 114, 117, 112, 102, 104, 117, 98, 107, 108, 97, 110, 120, 106, 115, 106, 99, 115, 106, 104, 119, 108, 110, 109, 108, 109, 114, 106, 120, 103, 107, 98, 108, 103, 111, 122, 107, 120, 111, 105, 114, 113, 111, 112, 117, 117, 103, 107, 113, 115, 110, 112, 113, 116, 118, 108, 110, 106, 97, 101, 114, 116, 101, 109, 100, 116, 110, 110, 119, 116, 107, 100, 110, 113, 107, 103, 106, 107, 100, 115, 103, 109, 120, 101, 107, 113, 108, 111, 108, 115, 110, 115, 108, 112, 113, 110, 108, 113, 124, 107, 114, 116, 108, 108, 117, 108, 110, 114, 103, 110, 105, 85, 96, 117, 111, 110, 106, 112, 117, 111, 113, 119, 102, 108, 112, 114, 115, 112, 108, 117, 113, 105, 107, 100, 114, 103, 117, 108, 116, 105, 102, 121, 105, 115, 103, 121, 109, 101, 102, 108, 108, 109, 108, 109, 109, 116, 120, 114, 113, 113, 113, 109, 109, 112, 117, 117, 115, 121, 106, 110, 105, 112, 126, 107, 101, 105, 111, 107, 118, 106, 115, 109, 103, 106, 101, 110, 111, 96, 118, 101, 109, 104, 106, 109, 108, 106, 114, 113, 109, 103, 111, 106, 106, 118, 116, 113, 103, 116, 108, 109, 108, 117, 92, 116, 114, 109, 109, 111, 109, 108, 110, 107, 118, 115, 128, 122, 119, 118, 108, 114, 108, 110, 116, 105, 112, 115, 125, 119, 108, 111, 118, 119, 107, 104, 117, 114, 117, 105, 114, 109, 108, 124, 111, 102, 107, 106, 113, 111, 113, 110, 117, 106, 103, 117, 99, 105, 112, 95, 115, 108, 112, 111, 114, 108, 112, 120, 111, 114, 110, 96, 105, 114, 103, 97, 92, 110, 113, 112, 113, 111, 108, 109, 109, 107, 110, 98, 110, 110, 109, 107, 105, 117, 109, 110, 106, 111, 121, 99, 117, 104, 104, 112, 122, 113, 113, 113, 107, 105, 106, 106, 112, 112, 105, 114, 116, 108, 109, 116, 105, 109, 112, 116, 110, 92, 109, 111, 107, 113, 110, 111, 112, 103, 109, 114, 106, 106, 105, 117, 113, 111, 114, 114, 107, 117, 113, 110, 114, 102, 110, 103, 118, 114, 104, 114, 115, 114, 122, 142, 108, 99, 111, 117, 108, 113, 113, 107, 109, 117, 110, 105, 96, 114, 112, 112, 102, 108, 113, 110, 102, 107, 109, 108, 116, 113, 125, 109, 88, 115, 102, 114, 108, 111, 103, 110, 109, 110, 111, 145, 122, 110, 108, 98, 115, 106, 114, 117, 117, 93, 128, 115, 108, 116, 97, 103, 114, 108, 104, 112, 114, 113, 116, 106, 118, 112, 121, 107, 114, 119, 109, 104, 114, 118, 97, 103, 108, 96, 114, 118, 119, 108, 109, 110, 110, 112, 112, 112, 108, 109, 107, 107, 102, 111, 103, 111, 109, 110, 105, 110, 96, 107, 113, 94, 113, 110, 116, 102, 111, 116, 112, 108, 104, 114, 102, 106, 108, 111, 124, 106, 106, 112, 111, 102, 102, 102, 108, 117, 110, 111, 104, 112, 108, 113, 105, 114, 103, 108, 124, 92, 106, 112, 101, 98, 101, 114, 112, 106, 80, 109, 104, 110, 95, 111, 115, 114, 110, 112, 107, 116, 109, 106, 111, 112, 110, 106, 109, 106, 110, 113, 113, 106, 107, 149, 104, 120, 123, 107, 112, 86, 121, 101, 123, 116, 113, 106, 101, 111, 109, 109, 102, 107, 96, 112, 112, 106, 114, 104, 112, 111, 101, 122, 110, 108, 107, 100, 114, 98, 84, 109, 109, 93, 113, 126, 114, 105, 101, 103, 98, 107, 101, 112, 110, 106, 99, 99, 108, 101, 122, 102, 109, 100, 107, 117, 106, 108, 114, 109, 110, 105, 107, 112, 113, 105, 112, 103, 113, 111, 104, 113, 108, 117, 108, 127, 109, 103, 112, 105, 106, 105, 112, 104, 113, 98, 113, 101, 116, 112, 101, 108, 119, 115, 105, 112, 109, 108, 103, 100, 114, 107, 108, 108, 111, 113, 103, 109, 113, 111, 102, 103, 120, 109, 116, 115, 105, 108, 105, 107, 108, 106, 106, 108, 103, 107, 115, 123, 106, 108, 105, 101, 107, 106, 110, 117, 118, 114, 117, 124, 105, 116, 113, 110, 111, 105, 115, 111, 105, 106, 103, 110, 102, 107, 111, 111, 113, 116, 95, 115, 113, 100, 96, 116, 104, 107, 111, 100, 113, 83, 95, 102, 107, 112, 95, 109, 116, 103, 115, 110, 106, 119, 111, 101, 110, 113, 113, 104, 103, 108, 124, 100, 116, 116, 96, 107, 121, 119, 104, 123, 111, 114, 108, 111, 117, 110, 114, 108, 102, 119, 115, 120, 102, 102, 111, 100, 109, 104, 123, 102, 116, 111, 113, 102, 110, 112, 109, 108, 106, 110, 112, 104, 116, 98, 117, 110, 118, 118, 108, 107, 105, 110, 109, 107, 109, 109, 130, 136, 105, 105, 98, 108, 101, 117, 125, 115, 112, 118, 115, 109, 107, 103, 113, 132, 130, 106, 111, 104, 115, 114, 117, 104, 104, 109, 98, 104, 106, 106, 124, 110, 108, 124, 116, 90, 112, 108, 123, 114, 106, 131, 103, 108, 110, 116, 102, 109, 126, 125, 104, 102, 121, 112, 106, 111, 120, 101, 114, 106, 115, 106, 110, 123, 108, 106, 106, 97, 111, 108, 112, 116, 105, 110, 110, 116, 135, 141, 112, 114, 105, 106, 112, 113, 108, 120, 101, 105, 109, 109, 108, 116, 104, 109, 95, 98, 114, 116, 117, 105, 121, 104, 112, 115, 109, 104, 104, 108, 101, 110, 110, 112, 108, 110, 108, 112, 106, 112, 109, 108, 103, 107, 109, 106, 103, 106, 107, 105, 110, 115, 125, 108, 114, 110, 108, 111, 120, 91, 112, 109, 94, 108, 113, 108, 108, 121, 105, 118, 117, 102, 104, 102, 108, 117, 113, 114, 100, 105, 108, 104, 97, 107, 112, 117, 108, 113, 118, 109, 126, 117, 117, 117, 117, 109, 113, 108, 106, 109, 105, 124, 112, 112, 111, 101, 107, 117, 117, 104, 100, 110, 97, 113, 96, 103, 109, 121, 111, 112, 94, 90, 115, 110, 110, 117, 102, 114, 107, 114, 122, 104, 100, 97, 108, 111, 109, 109, 125, 117, 114, 109, 117, 106, 118, 105, 104, 109, 109, 123, 109, 121, 110, 116, 113, 122, 99, 111, 109, 104, 105, 109, 117, 99, 107, 109, 115, 92, 115, 105, 110, 114, 103, 109, 103, 107, 113, 119, 112, 120, 100, 119, 121, 105, 109, 107, 127, 94, 117, 107, 109, 108, 118, 110, 118, 104, 102, 107, 110, 111, 112, 103, 107, 88, 104, 114, 100, 103, 114, 95, 109, 113, 104, 113, 113, 102, 131, 105, 111, 95, 111, 114, 124, 96, 102, 106, 104, 110, 109, 110, 117, 93, 111, 119, 112, 100, 108, 115, 113, 104, 113, 117, 124, 126, 108, 112, 116, 111, 105, 110, 119, 115, 109, 109, 110, 104, 116, 113, 104, 110, 104, 118, 104, 102, 114, 119, 110, 107, 106, 115, 103, 111, 126, 108, 102, 126, 111, 109, 103, 116, 109, 105, 129, 114, 109, 118, 107, 107, 112, 124, 105, 102, 105, 110, 106, 105, 111, 115, 103, 112, 122, 118, 106, 115, 106, 115, 103, 120, 108, 108, 119, 105, 100, 118, 101, 101, 113, 104, 105, 104, 121, 124, 98, 101, 110, 106, 112, 110, 114, 113, 112, 95, 122, 107, 117, 106, 108, 106, 113, 110, 121, 106, 106, 122, 106, 116, 109, 131, 135, 122, 102, 137, 106, 107, 106, 107, 111, 102, 108, 117, 105, 120, 107, 100, 118, 112, 109, 103, 121, 113, 113, 110, 108, 114, 112, 108, 108, 100, 122, 109, 108, 104, 100, 104, 110, 114, 104, 108, 116, 108, 103, 113, 108, 102, 105, 110, 106, 106, 110, 111, 112, 114, 114, 110, 143, 108, 111, 101, 100, 113, 121, 115, 110, 111, 117, 124, 107, 108, 107, 109, 114, 112, 109, 110, 108, 111, 111, 109, 100, 107, 108, 105, 103, 109, 110, 111, 111, 110, 106, 120, 115, 109, 126, 111, 98, 101, 116, 117, 118, 102, 102, 109, 122, 114, 107, 125, 104, 115, 113, 109, 108, 114, 108, 105, 113, 107, 115, 104, 120, 101, 103, 111, 103, 120, 115, 99, 129, 110, 105, 123, 122, 110, 109, 117, 112, 97, 110, 117, 115, 109, 109, 107, 107, 98, 108, 99, 111, 113, 106, 112, 106, 106, 105, 104, 104, 113, 117, 109, 124, 110, 105, 106, 117, 113, 106, 110, 121, 117, 114, 109, 101, 114, 117, 114, 104, 112, 109, 98, 112, 117, 112, 114, 114, 109, 98, 111, 110, 122, 115, 125, 98, 121, 112, 115, 115, 105, 106, 90, 121, 100, 108, 108, 110, 117, 106, 101, 112, 106, 105, 102, 110, 103, 109, 106, 107, 104, 112, 116, 105, 116, 102, 110, 118, 116, 111, 113, 107, 113, 112, 114, 113, 113, 107, 115, 104, 117, 106, 109, 108, 117, 106, 109, 114, 117, 110, 106, 110, 108, 115, 109, 107, 111, 113, 112, 114, 104, 103, 110, 108, 103, 110, 105, 112, 121, 111, 105, 116, 127, 109, 122, 101, 110, 106, 111, 110, 115, 119, 121, 120, 115, 108, 100, 93, 97, 112, 120, 103, 102, 97, 133, 101, 90, 114, 106, 104, 114, 122, 104, 103, 102, 108, 121, 108, 104, 110, 112, 113, 107, 104, 119, 107, 123, 104, 108, 113, 121, 106, 110, 107, 106, 104, 111, 103, 113, 99, 119, 113, 106, 115, 118, 111, 111, 106, 115, 111, 121, 108, 108, 116, 127, 113, 117, 112, 107, 111, 110, 106, 101, 121, 110, 109, 117, 110, 108, 109, 103, 113, 98, 111, 108, 107, 124, 111, 116, 100, 113, 104, 122, 102, 103, 113, 107, 104, 112, 104, 119, 102, 110, 112, 120, 108, 112, 112, 112, 105, 106, 113, 98, 118, 118, 121, 113, 110, 111, 116, 111, 110, 115, 98, 100, 105, 119, 107, 110, 111, 114, 122, 108, 120, 115, 109, 106, 108, 114, 111, 114, 121, 117, 110, 111, 115, 117, 105, 109, 111, 121, 108, 105, 106, 110, 103, 106, 93, 113, 113, 115, 112, 114, 111, 103, 110, 111, 111, 112, 104, 109, 114, 108, 113, 112, 112, 110, 110, 104, 111, 101, 114, 98, 115, 109, 108, 107, 111, 107, 113, 113, 109, 105, 112, 111, 109, 112, 116, 109, 112, 105, 105, 103, 111, 102, 118, 113, 112, 107, 108, 113, 110, 106, 106, 110, 110, 105, 105, 110, 107, 111, 112, 101, 115, 114, 110, 109, 110, 106, 89, 121, 120, 117, 99, 109, 113, 108, 112, 110, 111, 107, 102, 118, 110, 121, 108, 112, 109, 109, 104, 123, 114, 122, 113, 111, 112, 110, 109, 116, 106, 107, 104, 113, 110, 107, 110, 116, 112, 101, 109, 117, 102, 115, 102, 112, 114, 102, 104, 114, 104, 112, 101, 108, 114, 105, 111, 109, 107, 114, 113, 101, 110, 116, 107, 110, 107, 107, 109, 112, 107, 110, 122, 105, 111, 104, 111, 114, 112, 109, 111, 113, 109, 106, 106, 111, 120, 114, 116, 104, 117, 106, 106, 109, 113, 108, 114, 104, 105, 98, 112, 107, 103, 109, 114, 122, 109, 109, 99, 113, 112, 109, 108, 107, 109, 110, 111, 111, 109, 114, 109, 104, 105, 112, 99, 113, 111, 113, 110, 111, 106, 111, 107, 105, 113, 110, 102, 117, 111, 122, 113, 102, 115, 108, 114, 116, 110, 115, 109, 112, 108, 114, 108, 113, 111, 116, 103, 108, 111, 109, 105, 109, 113, 108, 110, 109, 111, 103, 101, 111, 113, 107, 114, 119, 105, 118, 103, 109, 101, 115, 98, 102, 103, 111, 109, 112, 112, 104, 120, 113, 106, 112, 115, 106, 105, 111, 113, 107, 121, 115, 113, 107, 106, 102, 112, 111, 118, 118, 103, 109, 116, 108, 125, 119, 108, 124, 120, 111, 109, 99, 102, 112, 121, 105, 115, 106, 105, 111, 107, 115, 110, 114, 110, 105, 116, 106, 109, 108, 117, 113, 113, 109, 114, 115, 107, 118, 110, 114, 123, 113, 108, 113, 106, 119, 101, 127, 108, 112, 103, 101, 105, 111, 117, 103, 117, 104, 118, 110, 114, 110, 115, 118, 116, 110, 112, 108, 108, 115, 97, 112, 109, 109, 110, 110, 111, 117, 110, 106, 106, 112, 112, 101, 111, 106, 103, 114, 105, 114, 124, 112, 101, 108, 106, 115, 114, 108, 101, 114, 105, 109, 108, 108, 117, 112, 104, 113, 111, 112, 107, 107, 108, 130, 115, 92, 113, 114, 105, 107, 117, 116, 104, 109, 103, 102, 104, 110, 106, 118, 105, 107, 106, 110, 114, 111, 108, 110, 103, 107, 117, 114, 113, 103, 118, 117, 112, 115, 109, 121, 106, 111, 110, 105, 104, 108, 92, 113, 100, 111, 117, 104, 108, 110, 119, 109, 105, 106, 106, 109, 112, 111, 107, 112, 113, 102, 107, 110, 108, 114, 114, 110, 110, 117, 109, 121, 109, 113, 102, 108, 112, 106, 115, 108, 107, 110, 109, 100, 109, 107, 116, 122, 117, 118, 111, 110, 119, 105, 107, 117, 110, 110, 114, 113, 112, 109, 114, 106, 121, 111, 109, 113, 115, 104, 116, 101, 108, 95, 118, 105, 115, 101, 117, 112, 111, 109, 108, 106, 107, 127, 113, 112, 107, 109, 108, 111, 100, 114, 112, 104, 110, 132, 117, 110, 116, 108, 107, 103, 112, 115, 110, 109, 111, 109, 111, 110, 110, 108, 111, 111, 106, 102, 103, 110, 108, 110, 113, 113, 120, 99, 111, 99, 124, 141, 92, 108, 117, 91, 111, 115, 106, 116, 106, 110, 110, 103, 107, 98, 107, 101, 119, 113, 107, 114, 114, 113, 120, 118, 107, 109, 111, 100, 120, 106, 84, 114, 101, 108, 118, 126, 111, 110, 112, 118, 104, 114, 112, 119, 107, 108, 106, 108, 120, 122, 97, 115, 119, 112, 109, 111, 111, 118, 110, 90, 110, 104, 109, 111, 102, 105, 108, 106, 113, 117, 115, 111, 108, 98, 107, 103, 112, 127, 106, 112, 113, 103, 112, 107, 114, 110, 109, 113, 102, 111, 114, 117, 106, 108, 106, 102, 112, 108, 106, 106, 112, 102, 107, 102, 108, 113, 106, 113, 105, 111, 106, 111, 135, 110, 108, 114, 113, 110, 105, 95, 96, 119, 107, 102, 101, 103, 124, 108, 110, 105, 98, 113, 109, 119, 113, 108, 114, 125, 102, 108, 93, 118, 113, 102, 104, 109, 112, 112, 106, 119, 109, 116, 102, 105, 109, 109, 106, 108, 113, 106, 111, 113, 112, 110, 118, 106, 91, 106, 120, 104, 113, 107, 105, 109, 110, 104, 122, 107, 75, 111, 104, 112, 119, 111, 95, 91, 107, 112, 112, 108, 120, 123, 100, 110, 113, 111, 82, 112, 132, 108, 106, 118, 108, 107, 106, 114, 108, 73, 109, 114, 117, 107, 108, 112, 98, 113, 105, 107, 95, 92, 108, 103, 117, 121, 118, 98, 111, 109, 113, 111, 100, 110, 100, 112, 123, 113, 109, 104, 114, 114, 116, 118, 113, 105, 109, 110, 78, 109, 111, 122, 106, 127, 114, 114, 111, 86, 112, 113, 137, 113, 104, 112, 107, 108, 117, 95, 119, 112, 99, 107, 115, 105, 102, 107, 130, 118, 98, 107, 109, 110, 114, 116, 113, 107, 117, 112, 111, 111, 99, 107, 104, 110, 111, 114, 114, 119, 102, 108, 108, 116, 119, 107, 110, 110, 109, 109, 116, 113, 103, 118, 100, 111, 111, 120, 102, 111, 111, 109, 113, 105, 115, 106, 114, 112, 118, 110, 105, 106, 100, 117, 107, 116, 115, 104, 119, 108, 114, 112, 101, 116, 104, 111, 109, 97, 101, 108, 117, 114, 107, 105, 110, 110, 104, 100, 116, 112, 110, 109, 100, 108, 111, 109, 109, 98, 104, 118, 116, 112, 96, 112, 121, 112, 109, 106, 108, 113, 109, 108, 118, 108, 111, 108, 104, 111, 119, 103, 104, 115, 114, 107, 104, 99, 123, 105, 102, 120, 113, 109, 106, 114, 115, 114, 101, 122, 111, 112, 109, 115, 114, 109, 112, 109, 111, 110, 111, 111, 105, 121, 104, 115, 111, 108, 113, 105, 121, 106, 109, 127, 120, 111, 116, 112, 116, 102, 100, 101, 143, 84, 104, 79, 116, 106, 107, 102, 108, 119, 109, 109, 105, 112, 103, 103, 106, 106, 117, 109, 110, 106, 108, 104, 106, 106, 108, 111, 111, 105, 105, 114, 116, 106, 105, 105, 112, 109, 108, 105, 104, 110, 112, 110, 105, 122, 110, 115, 103, 113, 112, 106, 112, 105, 117, 103, 111, 110, 108, 109, 106, 109, 109, 107, 106, 113, 112, 102, 110, 107, 111, 102, 98, 114, 107, 108, 110, 109, 108, 111, 114, 109, 106, 111, 102, 113, 117, 104, 113, 108, 107, 107, 111, 111, 106, 103, 112, 120, 111, 110, 107, 114, 104, 109, 110, 110, 108, 112, 108, 116, 110, 107, 117, 110, 109, 110, 107, 104, 107, 118, 102, 110, 114, 108, 110, 101, 107, 107, 122, 97, 113, 112, 113, 102, 106, 109, 105, 111, 112, 111, 106, 114, 106, 116, 106, 105, 107, 104, 109, 120, 113, 98, 114, 104, 111, 109, 108, 105, 110, 107, 117, 114, 128, 105, 103, 113, 104, 105, 111, 115, 116, 112, 104, 120, 109, 115, 113, 109, 109, 117, 107, 104, 107, 106, 113, 114, 111, 105, 112, 105, 111, 101, 110, 111, 113, 106, 110, 115, 120, 109, 104, 96, 103, 127, 112, 108, 108, 116, 103, 107, 111, 109, 107, 104, 112, 101, 108, 106, 123, 108, 118, 112, 104, 109, 111, 105, 109, 109, 108, 104, 109, 110, 101, 105, 109, 106, 105, 106, 109, 113, 104, 115, 107, 112, 118, 111, 113, 101, 115, 112, 113, 120, 104, 112, 111, 106, 104, 110, 109, 109, 99, 121, 113, 106, 103, 96, 110, 99, 109, 124, 111, 113, 108, 105, 108, 112, 119, 110, 111, 113, 109, 116, 105, 116, 103, 120, 105, 116, 120, 105, 112, 109, 107, 115, 107, 109, 108, 103, 106, 110, 99, 106, 101, 109, 115, 105, 113, 109, 107, 117, 105, 122, 111, 95, 113, 106, 117, 115, 117, 114, 111, 104, 111, 113, 111, 106, 110, 110, 121, 106, 109, 110, 108, 112, 110, 105, 115, 110, 116, 109, 112, 113, 109, 113, 105, 109, 110, 113, 108, 98, 106, 112, 103, 103, 103, 110, 109, 106, 94, 105, 96, 102, 118, 109, 124, 115, 119, 104, 107, 118, 111, 108, 110, 107, 106, 117, 87, 105, 114, 109, 118, 110, 98, 110, 115, 106, 99, 105, 117, 101, 104, 115, 102, 108, 103, 113, 105, 109, 103, 115, 104, 102, 102, 103, 104, 127, 97, 101, 117, 107, 104, 105, 106, 120, 106, 108, 109, 112, 117, 112, 118, 113, 110, 105, 108, 106, 112, 110, 105, 111, 114, 101, 125, 110, 104, 104, 104, 107, 108, 121, 96, 114, 108, 106, 110, 111, 117, 108, 95, 106, 105, 99, 101, 130, 114, 108, 105, 108, 110, 112, 120, 107, 111, 109, 128, 106, 109, 97, 113, 110, 128, 110, 113, 110, 103, 112, 103, 104, 113, 112, 109, 110, 117, 114, 116, 105, 115, 112, 110, 111, 104, 106, 111, 112, 110, 103, 104, 110, 100, 110, 124, 116, 104, 112, 107, 110, 115, 104, 113, 109, 108, 107, 103, 111, 109, 106, 110, 116, 116, 103, 114, 109, 119, 111, 123, 118, 110, 109, 107, 112, 103, 110, 109, 103, 108, 118, 115, 112, 112, 111, 102, 109, 109, 107, 113, 117, 107, 117, 114, 111, 117, 110, 117, 107, 107, 107, 106, 115, 108, 110, 105, 109, 104, 110, 105, 116, 113, 113, 104, 109, 110, 116, 106, 107, 110, 109, 113, 113, 113, 116, 110, 113, 110, 110, 117, 111, 115, 111, 113, 108, 110, 110, 110, 120, 109, 116, 110, 113, 108, 98, 118, 108, 109, 110, 114, 113, 110, 106, 116, 109, 113, 113, 107, 111, 112, 112, 105, 113, 109, 101, 108, 108, 98, 110, 110, 115, 109, 116, 111, 113, 118, 117, 108, 114, 111, 110, 113, 109, 106, 105, 120, 111, 116, 110, 113, 113, 112, 100, 113, 111, 105, 113, 114, 113, 107, 100, 115, 104, 112, 107, 120, 114, 114, 108, 110, 105, 118, 114, 113, 112, 111, 116, 106, 109, 112, 110, 114, 105, 111, 105, 113, 106, 112, 109, 103, 109, 109, 105, 116, 110, 111, 111, 108, 106, 112, 111, 110, 110, 109, 110, 112, 113, 109, 109, 109, 111, 114, 113, 110, 111, 107, 108, 110, 109, 114, 109, 107, 107, 105, 109, 109, 111, 115, 102, 109, 108, 114, 112, 115, 111, 111, 104, 111, 109, 115, 118, 107, 111, 113, 115, 107, 110, 110, 106, 109, 112, 108, 110, 107, 109, 109, 107, 107, 113, 106, 109, 111, 110, 108, 113, 116, 109, 111, 114, 110, 107, 110, 109, 111, 112, 100, 108, 111, 114, 113, 109, 111, 114, 112, 112, 104, 106, 108, 104, 105, 113, 112, 110, 108, 114, 109, 110, 109, 116, 120, 106, 110, 111, 113, 111, 113, 110, 112, 114, 115, 113, 105, 113, 109, 108, 113, 107, 109, 109, 116, 102, 107, 112, 113, 105, 107, 114, 109, 110, 116, 108, 114, 110, 112, 115, 114, 105, 111, 113, 103, 103, 113, 110, 112, 108, 107, 107, 111, 105, 105, 113, 117, 117, 107, 117, 110, 111, 111, 110, 105, 108, 113, 108, 106, 112, 106, 112, 111, 111, 116, 101, 108, 107, 115, 114, 112, 112, 113, 108, 110, 108, 122, 110, 105, 110, 111, 111, 116, 107, 105, 112, 110, 117, 109, 108, 108, 112, 113, 110, 114, 101, 108, 118, 122, 108, 113, 106, 111, 115, 109, 105, 116, 119, 104, 111, 109, 114, 115, 111, 108, 109, 111, 112, 107, 107, 108, 116, 115, 118, 111, 108, 113, 113, 107, 112, 110, 114, 99, 113, 110, 108, 112, 114, 108, 113, 107, 108, 108, 106, 113, 110, 112, 104, 111, 112, 110, 112, 109, 111, 107, 109, 109, 110, 109, 110, 110, 112, 118, 105, 111, 107, 117, 117, 120, 107, 108, 113, 108, 111, 106, 112, 110, 102, 112, 111, 110, 112, 109, 112, 110, 112, 112, 108, 111, 116, 106, 116, 103, 114, 109, 109, 114, 110, 111, 118, 111, 106, 114, 115, 116, 109, 106, 112, 102, 98, 112, 111, 109, 111, 116, 109, 107, 106, 111, 112, 110, 115, 112, 110, 111, 110, 113, 110, 105, 115, 108, 111, 115, 108, 113, 114, 107, 113, 111, 101, 110, 97, 114, 101, 108, 120, 107, 114, 110, 112, 114, 111, 99, 113, 105, 112, 111, 104, 105, 117, 116, 116, 103, 111, 108, 110, 110, 122, 110, 105, 107, 105, 114, 104, 118, 119, 105, 116, 109, 111, 110, 110, 98, 113, 104, 116, 114, 104, 107, 110, 103, 110, 111, 119, 117, 106, 110, 110, 106, 105, 100, 114, 107, 109, 106, 108, 112, 116, 112, 106, 117, 111, 107, 105, 109, 104, 105, 104, 115, 108, 108, 111, 119, 103, 109, 115, 121, 101, 97, 102, 111, 108, 104, 100, 112, 100, 108, 102, 102, 114, 112, 100, 111, 106, 108, 113, 123, 108, 112, 106, 108, 118, 107, 103, 112, 109, 122, 113, 101, 109, 114, 109, 123, 111, 106, 117, 107, 114, 116, 108, 119, 106, 114, 114, 105, 108, 115, 117, 114, 116, 117, 116, 123, 105, 109, 108, 102, 104, 112, 109, 117, 107, 111, 105, 108, 102, 104, 101, 105, 116, 107, 131, 117, 97, 116, 110, 107, 114, 117, 111, 94, 109, 106, 108, 108, 110, 100, 120, 120, 117, 109, 110, 96, 95, 106, 115, 115, 102, 107, 110, 119, 112, 103, 120, 100, 108, 99, 105, 109, 111, 107, 103, 103, 104, 106, 99, 110, 100, 104, 118, 101, 114, 90, 103, 120, 106, 105, 111, 118, 110, 104, 111, 108, 104, 112, 117, 140, 118, 104, 109, 113, 108, 112, 107, 113, 117, 103, 114, 115, 110, 102, 115, 105, 114, 108, 112, 115, 116, 102, 108, 110, 103, 112, 116, 119, 111, 114, 109, 101, 111, 119, 107, 108, 108, 113, 114, 112, 106, 107, 115, 107, 117, 95, 106, 112, 119, 117, 119, 105, 104, 110, 111, 101, 97, 115, 90, 109, 99, 112, 119, 113, 110, 105, 106, 115, 109, 100, 108, 108, 107, 103, 107, 107, 104, 117, 105, 110, 113, 98, 113, 113, 102, 107, 112, 112, 110, 114, 109, 120, 109, 103, 107, 110, 117, 104, 101, 112, 119, 112, 106, 105, 113, 103, 102, 102, 111, 106, 112, 109, 109, 111, 104, 112, 116, 110, 106, 104, 108, 93, 115, 110, 115, 112, 112, 104, 110, 98, 115, 107, 116, 104, 106, 107, 116, 112, 124, 109, 109, 114, 99, 102, 100, 117, 108, 108, 114, 97, 127, 113, 94, 113, 105, 112, 113, 132, 122, 109, 103, 109, 114, 110, 112, 115, 106, 113, 111, 107, 109, 109, 114, 97, 110, 117, 117, 112, 109, 111, 111, 107, 111, 104, 121, 123, 113, 112, 113, 113, 114, 110, 100, 102, 109, 112, 101, 115, 115, 102, 121, 115, 113, 110, 102, 110, 107, 112, 108, 116, 114, 110, 107, 103, 109, 108, 102, 112, 106, 108, 116, 102, 105, 107, 112, 107, 109, 108, 100, 108, 107, 110, 114, 112, 106, 110, 127, 105, 107, 116, 117, 111, 112, 122, 120, 113, 112, 111, 104, 115, 105, 112, 105, 114, 122, 102, 113, 106, 107, 105, 110, 114, 107, 110, 102, 107, 106, 107, 115, 128, 115, 104, 113, 98, 118, 111, 114, 115, 113, 113, 108, 117, 109, 107, 110, 107, 107, 114, 113, 108, 113, 108, 113, 109, 117, 106, 100, 110, 116, 109, 115, 110, 104, 107, 110, 110, 110, 107, 109, 124, 106, 118, 107, 109, 108, 111, 116, 116, 103, 111, 108, 113, 103, 107, 109, 109, 110, 103, 104, 110, 115, 104, 108, 109, 111, 114, 115, 110, 110, 115, 103, 128, 113, 109, 104, 109, 110, 117, 114, 104, 110, 114, 110, 116, 111, 100, 107, 110, 113, 114, 112, 108, 106, 107, 118, 110, 108, 113, 103, 106, 107, 102, 105, 103, 109, 113, 110, 111, 115, 107, 108, 100, 112, 107, 110, 112, 114, 116, 127, 109, 113, 105, 112, 102, 113, 110, 111, 107, 111, 109, 106, 110, 115, 109, 117, 118, 110, 103, 107, 116, 107, 117, 116, 108, 108, 107, 105, 108, 111, 110, 104, 114, 104, 106, 115, 112, 115, 112, 107, 112, 105, 107, 111, 112, 106, 109, 108, 108, 117, 121, 108, 112, 116, 104, 93, 114, 115, 110, 110, 118, 112, 101, 111, 99, 118, 117, 110, 112, 105, 105, 107, 112, 108, 111, 110, 107, 106, 106, 118, 103, 119, 115, 107, 109, 120, 109, 113, 113, 104, 107, 108, 123, 110, 111, 113, 117, 108, 112, 103, 103, 111, 106, 117, 110, 115, 114, 107, 109, 111, 110, 110, 109, 115, 105, 114, 108, 116, 109, 113, 108, 114, 119, 109, 115, 115, 104, 108, 110, 109, 106, 114, 112, 104, 114, 116, 107, 109, 108, 109, 110, 112, 109, 114, 111, 109, 115, 108, 113, 111, 112, 103, 116, 113, 111, 112, 104, 111, 115, 107, 117, 111, 112, 106, 108, 111, 108, 105, 113, 111, 109, 115, 112, 110, 108, 114, 109, 111, 113, 106, 122, 110, 105, 112, 118, 118, 108, 111, 107, 109, 114, 120, 103, 112, 112, 105, 100, 106, 111, 106, 113, 107, 109, 105, 112, 116, 111, 113, 105, 115, 105, 109, 109, 106, 113, 111, 113, 106, 112, 109, 117, 110, 109, 113, 115, 107, 113, 110, 113, 114, 114, 107, 110, 107, 115, 105, 116, 104, 112, 110, 107, 105, 121, 106, 114, 96, 110, 105, 108, 114, 108, 107, 110, 114, 112, 110, 120, 109, 105, 105, 110, 106, 108, 109, 97, 111, 114, 106, 116, 109, 110, 108, 114, 108, 104, 113, 116, 110, 112, 113, 114, 107, 104, 111, 110, 109, 109, 107, 110, 118, 113, 102, 108, 105, 103, 104, 112, 109, 107, 106, 115, 108, 94, 112, 103, 118, 117, 107, 108, 107, 103, 110, 111, 113, 106, 105, 103, 112, 112, 110, 102, 102, 106, 98, 114, 107, 110, 106, 108, 118, 117, 113, 108, 111, 112, 121, 118, 110, 113, 106, 107, 103, 104, 109, 110, 110, 108, 113, 109, 113, 108, 109, 113, 108, 110, 106, 117, 110, 115, 102, 110, 109, 113, 113, 110, 101, 114, 110, 108, 110, 98, 110, 104, 108, 102, 108, 112, 115, 107, 112, 112, 120, 115, 109, 106, 118, 99, 116, 113, 110, 115, 108, 109, 111, 105, 108, 116, 110, 113, 115, 110, 108, 114, 116, 112, 107, 107, 115, 112, 111, 112, 103, 106, 103, 115, 113, 108, 114, 110, 106, 111, 107, 111, 107, 111, 109, 109, 112, 105, 112, 113, 128, 117, 110, 108, 112, 107, 105, 114, 107, 109, 107, 114, 116, 105, 118, 110, 107, 111, 112, 96, 116, 115, 108, 106, 108, 99, 110, 109, 109, 99, 117, 113, 105, 108, 109, 99, 113, 109, 108, 108, 105, 100, 109, 111, 121, 113, 108, 108, 113, 107, 133, 110, 113, 110, 108, 108, 118, 108, 110, 108, 108, 106, 99, 102, 101, 110, 113, 91, 111, 105, 107, 122, 109, 109, 118, 114, 99, 111, 111, 107, 108, 109, 110, 103, 110, 116, 112, 121, 108, 101, 107, 114, 116, 111, 103, 114, 110, 108, 108, 118, 107, 123, 103, 112, 108, 107, 101, 114, 110, 98, 141, 110, 117, 110, 106, 113, 109, 113, 106, 104, 104, 111, 104, 100, 95, 139, 115, 110, 115, 106, 117, 108, 114, 120, 102, 113, 105, 110, 108, 97, 122, 114, 110, 111, 119, 107, 113, 104, 111, 104, 117, 111, 93, 112, 103, 109, 113, 115, 105, 111, 114, 116, 107, 101, 115, 108, 113, 122, 116, 107, 108, 112, 110, 122, 112, 104, 109, 125, 109, 112, 108, 119, 104, 110, 111, 111, 122, 109, 114, 99, 110, 107, 117, 112, 112, 114, 110, 111, 110, 104, 111, 110, 121, 107, 109, 118, 117, 98, 103, 113, 116, 109, 110, 109, 110, 104, 114, 117, 100, 110, 105, 119, 107, 114, 104, 102, 122, 99, 109, 117, 106, 117, 104, 116, 113, 125, 112, 111, 106, 110, 115, 110, 100, 109, 110, 113, 106, 109, 117, 113, 103, 112, 110, 106, 105, 106, 106, 124, 100, 124, 108, 112, 108, 121, 108, 120, 107, 115, 110, 119, 108, 106, 109, 110, 114, 112, 114, 121, 114, 110, 119, 99, 111, 107, 117, 103, 112, 103, 107, 105, 108, 104, 114, 114, 112, 107, 115, 110, 105, 111, 106, 116, 106, 117, 105, 113, 112, 104, 111, 109, 111, 103, 111, 105, 114, 105, 110, 109, 125, 104, 114, 114, 107, 112, 109, 114, 114, 112, 111, 109, 104, 105, 116, 113, 122, 108, 110, 113, 105, 112, 112, 109, 111, 103, 110, 109, 109, 112, 96, 107, 106, 118, 107, 112, 97, 113, 134, 112, 113, 118, 113, 110, 103, 89, 103, 106, 114, 107, 113, 118, 115, 102, 114, 106, 113, 106, 105, 104, 106, 106, 103, 117, 110, 101, 111, 108, 111, 115, 105, 104, 111, 97, 101, 113, 106, 111, 105, 107, 115, 115, 106, 108, 115, 120, 114, 109, 113, 111, 106, 110, 116, 108, 122, 102, 116, 113, 106, 108, 108, 106, 107, 110, 98, 98, 108, 111, 128, 113, 108, 108, 115, 108, 109, 110, 108, 112, 108, 109, 105, 112, 113, 117, 107, 109, 110, 115, 116, 109, 115, 109, 114, 104, 117, 110, 111, 106, 108, 112, 112, 116, 114, 103, 111, 107, 105, 117, 104, 114, 114, 106, 114, 114, 126, 106, 125, 111, 112, 116, 112, 113, 107, 108, 105, 109, 106, 108, 113, 135, 114, 107, 102, 104, 106, 110, 107, 106, 123, 116, 109, 111, 113, 105, 106, 113, 109, 108, 108, 105, 109, 110, 113, 112, 107, 116, 108, 109, 117, 109, 110, 111, 109, 109, 111, 113, 104, 112, 111, 111, 109, 109, 109, 103, 110, 104, 106, 109, 111, 110, 109, 134, 111, 105, 107, 111, 106, 111, 108, 105, 118, 102, 109, 108, 106, 111, 108, 109, 109, 113, 112, 109, 111, 106, 109, 107, 111, 108, 110, 112, 108, 100, 115, 113, 107, 112, 111, 108, 115, 109, 109, 106, 110, 111, 109, 112, 105, 114, 108, 108, 109, 110, 110, 105, 107, 105, 104, 109, 105, 112, 115, 112, 115, 106, 107, 111, 107, 110, 110, 108, 122, 108, 110, 109, 110, 116, 108, 111, 118, 106, 112, 114, 107, 106, 109, 111, 106, 108, 116, 103, 110, 109, 106, 112, 113, 108, 107, 110, 107, 113, 106, 109, 110, 110, 109, 106, 107, 105, 109, 114, 109, 106, 118, 112, 105, 117, 112, 111, 112, 111, 108, 104, 109, 109, 109, 112, 112, 109, 118, 118, 112, 116, 110, 106, 107, 107, 106, 114, 113, 112, 113, 110, 112, 110, 112, 105, 107, 112, 107, 109, 108, 110, 113, 104, 107, 104, 107, 107, 104, 108, 104, 107, 107, 109, 110, 109, 109, 101, 110, 115, 111, 109, 110, 113, 105, 115, 103, 111, 106, 104, 110, 104, 108, 110, 110, 110, 115, 110, 109, 101, 110, 116, 110, 108, 110, 115, 111, 107, 114, 107, 118, 110, 105, 110, 106, 108, 113, 104, 114, 107, 107, 114, 109, 111, 113, 111, 110, 109, 105, 113, 111, 109, 108, 109, 112, 112, 108, 110, 117, 105, 108, 111, 110, 120, 102, 107, 107, 108, 106, 109, 109, 109, 109, 106, 102, 105, 114, 104, 108, 105, 108, 108, 105, 117, 102, 112, 108, 111, 108, 107, 112, 115, 111, 110, 123, 107, 109, 113, 109, 107, 112, 109, 112, 113, 107, 106, 117, 108, 111, 109, 107, 110, 107, 106, 113, 109, 115, 111, 111, 113, 107, 106, 112, 105, 111, 110, 108, 113, 107, 113, 107, 111, 107, 108, 103, 110, 110, 104, 111, 104, 110, 110, 108, 113, 112, 109, 114, 108, 110, 111, 110, 109, 107, 110, 108, 104, 107, 107, 108, 107, 110, 109, 108, 109, 115, 102, 112, 105, 111, 112, 112, 105, 107, 110, 111, 110, 106, 112, 111, 108, 113, 123, 106, 109, 112, 111, 104, 110, 111, 112, 109, 106, 112, 110, 107, 106, 114, 109, 107, 109, 107, 106, 114, 111, 103, 115, 107, 121, 108, 114, 113, 108, 111, 109, 110, 113, 120, 107, 108, 111, 111, 109, 113, 106, 114, 109, 110, 109, 110, 113, 102, 113, 109, 112, 110, 98, 111, 111, 103, 114, 105, 106, 112, 109, 114, 109, 109, 109, 110, 112, 108, 112, 109, 109, 110, 107, 109, 107, 105, 112, 106, 112, 116, 110, 111, 108, 116, 109, 103, 110, 109, 104, 116, 121, 106, 107, 108, 115, 106, 103, 108, 109, 103, 107, 110, 107, 107, 107, 107, 111, 113, 106, 107, 123, 110, 110, 104, 113, 111, 115, 109, 107, 112, 115, 113, 108, 110, 108, 83, 118, 109, 117, 110, 112, 108, 112, 111, 105, 114, 111, 111, 109, 112, 109, 121, 127, 109, 107, 118, 111, 125, 107, 113, 109, 109, 109, 110, 117, 105, 93, 103, 116, 112, 107, 111, 111, 109, 111, 110, 82, 108, 110, 99, 107, 116, 114, 101, 86, 115, 104, 100, 113, 115, 106, 111, 119, 108, 108, 106, 101, 117, 114, 111, 112, 110, 111, 109, 107, 110, 106, 110, 108, 112, 111, 108, 113, 109, 111, 106, 96, 110, 109, 111, 109, 118, 114, 110, 108, 109, 112, 106, 113, 104, 106, 107, 118, 106, 108, 110, 111, 107, 109, 101, 116, 107, 141, 112, 120, 111, 90, 99, 111, 109, 110, 113, 114, 106, 112, 114, 105, 111, 107, 112, 113, 107, 108, 114, 104, 109, 109, 110, 112, 110, 110, 109, 114, 103, 110, 114, 104, 108, 108, 115, 111, 109, 111, 114, 116, 119, 111, 107, 114, 109, 102, 114, 107, 113, 106, 107, 114, 109, 112, 112, 117, 113, 115, 113, 111, 158, 114, 113, 115, 108, 109, 116, 114, 112, 114, 113, 130, 112, 113, 113, 113, 106, 112, 106, 115, 106, 110, 115, 111, 113, 104, 103, 114, 108, 120, 120, 108, 111, 104, 109, 113, 111, 111, 106, 103, 116, 109, 109, 106, 114, 106, 107, 88, 106, 116, 114, 106, 103, 105, 110, 109, 109, 106, 108, 112, 112, 105, 111, 105, 120, 121, 111, 92, 122, 114, 96, 117, 111, 113, 107, 111, 107, 122, 119, 112, 116, 111, 106, 112, 104, 112, 106, 109, 118, 106, 115, 111, 110, 107, 110, 111, 110, 110, 113, 96, 109, 80, 108, 104, 107, 113, 104, 108, 100, 107, 117, 112, 108, 113, 86, 107, 108, 103, 114, 100, 116, 106, 115, 107, 110, 115, 108, 121, 114, 108, 114, 118, 105, 112, 111, 100, 111, 107, 109, 100, 110, 107, 104, 109, 112, 105, 113, 104, 111, 110, 123, 111, 118, 103, 106, 111, 109, 110, 110, 108, 109, 109, 114, 116, 100, 117, 114, 101, 111, 109, 111, 102, 110, 112, 108, 133, 106, 123, 110, 116, 108, 114, 105, 114, 111, 108, 111, 100, 102, 104, 108, 108, 110, 109, 115, 101, 117, 114, 118, 111, 107, 108, 115, 107, 116, 109, 110, 110, 113, 106, 120, 111, 110, 102, 112, 112, 101, 110, 113, 115, 109, 88, 107, 112, 107, 111, 108, 110, 113, 110, 111, 119, 108, 107, 107, 112, 113, 106, 111, 119, 106, 106, 116, 113, 107, 110, 113, 115, 102, 119, 109, 112, 116, 109, 118, 108, 109, 104, 109, 113, 108, 112, 108, 125, 108, 111, 112, 106, 106, 107, 111, 110, 110, 107, 115, 107, 111, 109, 121, 103, 109, 108, 108, 112, 113, 113, 106, 105, 109, 118, 109, 110, 105, 106, 110, 113, 104, 98, 107, 109, 105, 113, 110, 114, 105, 99, 110, 112, 109, 104, 107, 107, 110, 103, 112, 113, 134, 107, 121, 111, 105, 126, 107, 105, 114, 115, 111, 112, 116, 104, 117, 112, 118, 110, 114, 109, 110, 100, 109, 108, 110, 110, 118, 114, 120, 119, 96, 108, 110, 107, 113, 103, 107, 112, 121, 104, 113, 113, 114, 102, 113, 109, 108, 105, 100, 103, 124, 105, 96, 107, 106, 114, 119, 103, 109, 124, 109, 102, 108, 110, 108, 108, 103, 108, 114, 123, 118, 104, 111, 105, 106, 112, 117, 114, 112, 110, 120, 107, 108, 108, 119, 103, 117, 114, 118, 108, 107, 103, 107, 116, 109, 126, 116, 116, 113, 106, 104, 117, 107, 105, 118, 108, 120, 118, 108, 111, 108, 108, 110, 101, 105, 102, 106, 114, 118, 110, 111, 108, 115, 99, 112, 93, 105, 112, 115, 107, 112, 111, 115, 117, 109, 108, 110, 112, 117, 107, 104, 102, 103, 117, 102, 98, 111, 120, 110, 115, 110, 112, 113, 140, 112, 108, 113, 106, 110, 108, 119, 113, 110, 113, 107, 113, 107, 98, 112, 117, 109, 107, 114, 109, 112, 113, 113, 113, 105, 108, 112, 108, 112, 117, 105, 117, 105, 107, 104, 108, 105, 115, 105, 110, 111, 117, 106, 112, 111, 112, 112, 109, 113, 113, 112, 104, 109, 110, 108, 114, 110, 110, 107, 106, 114, 107, 110, 104, 101, 106, 111, 104, 106, 103, 106, 114, 104, 101, 107, 120, 107, 101, 111, 102, 107, 125, 107, 113, 113, 98, 108, 118, 119, 113, 103, 100, 105, 113, 106, 111, 105, 107, 113, 106, 112, 118, 116, 112, 119, 104, 116, 104, 123, 113, 103, 119, 112, 113, 108, 107, 105, 99, 106, 105, 109, 111, 105, 106, 109, 110, 125, 104, 112, 105, 117, 107, 110, 106, 108, 109, 119, 107, 102, 118, 109, 111, 100, 106, 107, 111, 114, 110, 112, 101, 104, 105, 112, 109, 110, 111, 111, 114, 101, 105, 108, 114, 104, 118, 108, 109, 110, 113, 114, 117, 116, 117, 114, 119, 104, 122, 110, 120, 115, 106, 118, 102, 115, 102, 111, 102, 110, 109, 107, 106, 105, 100, 110, 116, 104, 112, 114, 110, 99, 100, 110, 108, 111, 114, 108, 100, 109, 108, 107, 118, 112, 96, 123, 112, 129, 115, 102, 112, 102, 114, 117, 106, 111, 110, 112, 108, 115, 94, 113, 110, 120, 92, 105, 96, 113, 110, 107, 115, 111, 111, 113, 119, 119, 105, 113, 101, 116, 104, 111, 112, 108, 112, 108, 114, 110, 105, 113, 108, 107, 112, 111, 111, 114, 114, 108, 110, 106, 108, 113, 111, 115, 116, 116, 117, 105, 117, 116, 105, 106, 112, 105, 103, 108, 103, 105, 113, 112, 116, 105, 115, 111, 110, 109, 116, 111, 106, 108, 106, 117, 113, 114, 115, 95, 120, 102, 114, 107, 108, 109, 110, 117, 109, 104, 110, 105, 107, 107, 106, 114, 107, 120, 106, 113, 106, 105, 112, 110, 113, 112, 107, 105, 118, 109, 101, 113, 113, 109, 111, 112, 105, 110, 101, 109, 113, 115, 113, 105, 113, 112, 120, 113, 118, 113, 112, 107, 109, 108, 104, 106, 102, 113, 111, 104, 110, 106, 118, 99, 104, 99, 115, 101, 106, 112, 114, 110, 125, 105, 110, 122, 107, 99, 105, 107, 106, 122, 112, 112, 110, 112, 107, 112, 106, 104, 109, 108, 111, 99, 113, 112, 110, 117, 103, 123, 116, 116, 110, 109, 100, 108, 110, 105, 97, 106, 110, 110, 106, 96, 102, 111, 109, 114, 110, 116, 113, 99, 103, 111, 100, 104, 119, 109, 110, 112, 110, 114, 114, 126, 116, 115, 119, 109, 107, 93, 110, 93, 99, 104, 114, 103, 98, 106, 116, 93, 108, 95, 95, 101, 107, 104, 126, 113, 108, 114, 105, 119, 113, 107, 108, 110, 114, 104, 113, 112, 114, 98, 117, 104, 109, 108, 106, 112, 97, 120, 108, 113, 114, 113, 108, 114, 112, 113, 116, 107, 116, 108, 113, 113, 108, 104, 111, 115, 114, 115, 107, 128, 118, 112, 120, 108, 110, 115, 114, 98, 111, 102, 105, 117, 118, 110, 122, 107, 115, 102, 118, 111, 111, 104, 108, 107, 114, 102, 116, 112, 104, 114, 111, 113, 110, 110, 100, 112, 106, 108, 116, 98, 109, 94, 115, 126, 115, 109, 106, 114, 104, 114, 110, 120, 108, 118, 114, 111, 108, 87, 98, 104, 117, 103, 112, 110, 105, 110, 117, 95, 101, 100, 119, 112, 106, 129, 98, 109, 102, 101, 114, 102, 123, 105, 107, 111, 108, 112, 103, 103, 103, 129, 128, 105, 101, 107, 101, 103, 111, 109, 115, 109, 122, 111, 113, 112, 92, 110, 108, 115, 102, 116, 112, 105, 120, 98, 101, 123, 111, 114, 108, 108, 114, 111, 102, 114, 103, 107, 115, 114, 116, 121, 110, 116, 108, 114, 113, 115, 108, 100, 112, 106, 115, 117, 113, 114, 135, 107, 120, 122, 111, 121, 111, 108, 110, 109, 116, 101, 112, 116, 115, 113, 112, 106, 101, 115, 99, 111, 112, 111, 115, 112, 109, 104, 108, 109, 109, 113, 103, 115, 108, 109, 112, 115, 119, 118, 110, 108, 119, 115, 103, 94, 113, 114, 118, 118, 105, 109, 107, 104, 105, 114, 103, 109, 107, 107, 106, 105, 115, 112, 105, 114, 100, 107, 103, 106, 108, 110, 111, 98, 109, 102, 105, 120, 109, 109, 106, 101, 117, 107, 124, 108, 99, 108, 110, 103, 113, 106, 112, 115, 106, 106, 101, 99, 110, 109, 117, 103, 109, 117, 108, 112, 102, 110, 107, 113, 116, 95, 114, 100, 109, 118, 109, 106, 107, 115, 113, 110, 111, 114, 108, 113, 105, 117, 112, 112, 108, 94, 112, 124, 117, 111, 109, 105, 120, 112, 130, 104, 113, 107, 105, 104, 105, 118, 104, 107, 101, 109, 110, 117, 116, 100, 113, 121, 113, 106, 104, 117, 108, 113, 106, 109, 108, 115, 108, 93, 103, 106, 115, 108, 102, 106, 110, 132, 110, 109, 106, 104, 108, 111, 108, 101, 109, 109, 106, 106, 113, 113, 115, 115, 112, 108, 109, 100, 115, 100, 110, 109, 110, 111, 102, 111, 110, 113, 117, 109, 109, 113, 101, 112, 113, 92, 104, 103, 104, 124, 105, 110, 116, 114, 108, 114, 109, 114, 114, 109, 119, 115, 111, 110, 109, 100, 107, 106, 112, 110, 118, 107, 104, 111, 111, 103, 122, 102, 112, 98, 99, 106, 104, 110, 119, 100, 106, 112, 110, 108, 111, 104, 113, 108, 103, 106, 109, 110, 119, 101, 105, 106, 110, 106, 113, 110, 119, 104, 109, 108, 105, 131, 107, 108, 113, 109, 111, 115, 113, 119, 108, 110, 118, 108, 117, 107, 102, 107, 115, 95, 100, 114, 100, 111, 120, 119, 110, 115, 98, 107, 107, 122, 110, 110, 107, 111, 114, 110, 107, 108, 103, 108, 108, 115, 105, 114, 111, 108, 103, 108, 106, 100, 117, 112, 111, 113, 116, 114, 109, 105, 106, 108, 109, 113, 105, 112, 112, 108, 106, 106, 115, 107, 110, 109, 99, 109, 106, 107, 99, 101, 112, 102, 107, 112, 109, 113, 112, 120, 119, 99, 111, 113, 107, 107, 105, 110, 118, 116, 113, 114, 112, 103, 106, 112, 108, 113, 116, 101, 109, 104, 104, 108, 109, 108, 106, 113, 99, 109, 106, 101, 108, 119, 119, 107, 107, 113, 108, 108, 108, 113, 108, 111, 111, 104, 113, 108, 110, 112, 108, 109, 111, 102, 112, 116, 98, 107, 106, 117, 115, 115, 111, 113, 114, 115, 107, 121, 99, 113, 109, 119, 111, 108, 119, 105, 111, 117, 111, 106, 113, 112, 102, 121, 119, 117, 108, 115, 108, 115, 115, 108, 111, 106, 105, 107, 104, 109, 108, 112, 112, 102, 112, 118, 101, 116, 119, 109, 108, 108, 108, 111, 108, 112, 110, 109, 99, 111, 103, 102, 103, 110, 129, 106, 111, 105, 105, 114, 107, 105, 109, 98, 108, 106, 117, 104, 111, 101, 107, 111, 105, 107, 102, 111, 103, 115, 110, 109, 108, 109, 112, 112, 100, 112, 100, 108, 109, 111, 114, 106, 105, 114, 115, 107, 96, 116, 108, 106, 109, 112, 99, 114, 108, 101, 114, 110, 104, 115, 106, 108, 113, 105, 104, 109, 115, 107, 105, 100, 111, 106, 113, 112, 117, 103, 107, 105, 110, 110, 133, 111, 108, 112, 104, 102, 102, 108, 108, 111, 108, 111, 103, 108, 105, 102, 116, 107, 112, 115, 105, 102, 114, 114, 111, 107, 102, 129, 104, 101, 108, 108, 109, 108, 89, 112, 114, 123, 101, 109, 105, 106, 108, 101, 108, 113, 108, 108, 105, 113, 113, 104, 107, 111, 97, 109, 113, 109, 112, 97, 100, 117, 114, 108, 102, 107, 102, 110, 113, 104, 118, 116, 97, 108, 101, 110, 115, 107, 102, 95, 112, 101, 120, 114, 105, 127, 108, 102, 104, 112, 116, 107, 103, 113, 109, 115, 108, 111, 106, 112, 112, 102, 107, 107, 107, 120, 114, 114, 105, 112, 117, 100, 105, 106, 107, 107, 111, 120, 108, 112, 115, 112, 116, 128, 110, 114, 105, 108, 116, 105, 108, 103, 99, 112, 103, 107, 117, 111, 110, 99, 103, 110, 108, 110, 112, 112, 114, 108, 107, 115, 110, 115, 106, 114, 103, 112, 95, 112, 111, 114, 105, 107, 110, 107, 127, 102, 115, 101, 99, 103, 103, 95, 108, 104, 115, 106, 105, 114, 117, 105, 109, 110, 109, 114, 118, 105, 110, 127, 104, 114, 117, 110, 108, 117, 112, 102, 108, 102, 103, 97, 121, 105, 111, 108, 113, 106, 114, 111, 113, 117, 108, 108, 119, 117, 113, 104, 104, 103, 114, 105, 103, 112, 123, 107, 105, 114, 92, 103, 108, 115, 105, 112, 121, 120, 115, 109, 108, 110, 113, 102, 111, 104, 119, 108, 114, 108, 120, 108, 112, 109, 114, 106, 111, 106, 116, 110, 106, 109, 129, 114, 107, 113, 112, 106, 103, 111, 102, 92, 111, 116, 110, 112, 112, 118, 116, 107, 116, 100, 114, 112, 112, 119, 113, 112, 109, 100, 110, 106, 114, 111, 111, 127, 102, 107, 111, 116, 111, 113, 109, 100, 114, 102, 103, 106, 123, 108, 107, 108, 108, 112, 116, 103, 99, 97, 114, 110, 110, 106, 95, 112, 106, 92, 114, 99, 117, 101, 110, 109, 98, 120, 113, 111, 122, 126, 119, 106, 104, 113, 108, 116, 109, 111, 110, 116, 119, 116, 112, 117, 111, 108, 104, 110, 110, 113, 110, 107, 107, 117, 109, 109, 111, 116, 117, 107, 102, 113, 112, 117, 111, 113, 124, 108, 105, 113, 118, 103, 111, 110, 114, 112, 108, 104, 102, 105, 104, 119, 116, 115, 114, 101, 106, 104, 108, 111, 128, 102, 110, 116, 113, 107, 113, 117, 106, 112, 102, 104, 101, 106, 109, 97, 118, 111, 104, 110, 106, 108, 108, 119, 101, 113, 116, 111, 104, 121, 95, 112, 112, 118, 111, 106, 113, 116, 105, 117, 113, 115, 104, 108, 112, 115, 124, 121, 114, 115, 109, 106, 111, 106, 104, 112, 108, 114, 115, 112, 107, 99, 127, 116, 100, 114, 105, 115, 113, 110, 125, 115, 118, 115, 105, 115, 101, 121, 104, 111, 109, 110, 116, 114, 107, 111, 106, 125, 106, 110, 114, 112, 105, 112, 112, 112, 113, 110, 101, 110, 118, 104, 113, 106, 125, 104, 111, 103, 115, 108, 103, 107, 108, 117, 115, 100, 108, 102, 104, 114, 103, 113, 108, 107, 106, 104, 112, 113, 108, 108, 103, 107, 106, 114, 114, 102, 111, 108, 97, 110, 121, 110, 112, 109, 115, 111, 112, 104, 104, 111, 102, 106, 118, 93, 109, 109, 118, 108, 111, 105, 116, 104, 112, 103, 114, 109, 114, 114, 105, 114, 118, 108, 109, 113, 113, 108, 107, 109, 116, 114, 107, 111, 119, 116, 122, 115, 109, 116, 105, 111, 112, 110, 111, 122, 115, 105, 103, 109, 112, 121, 114, 115, 101, 114, 141, 109, 112, 108, 110, 108, 105, 108, 109, 109, 108, 106, 115, 118, 122, 109, 111, 113, 105, 104, 111, 115, 112, 112, 114, 103, 108, 102, 105, 110, 113, 91, 109, 113, 110, 111, 111, 114, 111, 114, 113, 115, 110, 114, 114, 108, 110, 113, 104, 109, 121, 103, 95, 116, 103, 111, 118, 116, 104, 115, 118, 115, 115, 110, 104, 109, 100, 115, 109, 111, 117, 108, 117, 104, 99, 112, 113, 107, 115, 109, 114, 125, 116, 121, 99, 114, 122, 110, 113, 104, 106, 113, 112, 109, 115, 116, 106, 114, 127, 98, 107, 114, 102, 107, 110, 102, 111, 114, 104, 107, 111, 109, 97, 103, 111, 111, 105, 111, 109, 121, 109, 111, 112, 110, 111, 111, 108, 119, 102, 108, 110, 120, 113, 104, 98, 111, 102, 103, 106, 137, 100, 117, 109, 106, 114, 115, 109, 120, 110, 113, 107, 102, 107, 105, 112, 114, 109, 104, 107, 113, 113, 102, 107, 114, 107, 121, 114, 100, 108, 110, 104, 110, 111, 116, 103, 109, 109, 113, 108, 92, 110, 105, 107, 111, 116, 112, 109, 103, 113, 126, 111, 110, 111, 109, 108, 110, 106, 96, 109, 109, 106, 115, 111, 112, 110, 113, 105, 117, 112, 108, 106, 109, 123, 108, 110, 107, 103, 99, 109, 107, 110, 102, 83, 104, 117, 100, 107, 117, 116, 98, 112, 108, 112, 109, 111, 136, 110, 99, 112, 101, 80, 98, 106, 116, 106, 110, 113, 108, 105, 110, 114, 102, 104, 109, 109, 99, 119, 103, 108, 107, 110, 113, 109, 112, 105, 110, 111, 106, 107, 140, 110, 96, 102, 109, 112, 110, 111, 109, 96, 111, 120, 113, 109, 105, 108, 112, 99, 112, 111, 105, 109, 115, 115, 115, 114, 113, 120, 110, 109, 116, 113, 104, 103, 111, 100, 108, 109, 104, 107, 111, 112, 108, 109, 112, 98, 109, 115, 99, 112, 129, 109, 107, 101, 102, 111, 108, 102, 110, 108, 106, 119, 118, 117, 106, 110, 115, 120, 107, 108, 115, 110, 119, 111, 109, 109, 109, 115, 113, 111, 112, 101, 111, 100, 109, 110, 108, 108, 107, 111, 109, 107, 109, 110, 106, 114, 114, 120, 105, 108, 105, 110, 106, 103, 115, 115, 108, 119, 102, 112, 115, 113, 125, 105, 105, 103, 105, 104, 111, 110, 110, 108, 116, 108, 112, 108, 108, 102, 115, 110, 114, 107, 113, 107, 111, 112, 113, 104, 110, 104, 110, 112, 112, 113, 108, 106, 94, 105, 114, 119, 108, 107, 110, 109, 110, 112, 109, 121, 110, 112, 113, 112, 108, 106, 109, 108, 112, 113, 110, 114, 111, 115, 107, 114, 105, 115, 107, 108, 112, 110, 115, 110, 103, 106, 111, 104, 102, 108, 109, 113, 119, 114, 88, 110, 107, 114, 110, 113, 108, 108, 119, 112, 109, 115, 112, 108, 109, 104, 106, 116, 107, 110, 110, 115, 97, 112, 101, 107, 107, 107, 109, 115, 103, 110, 111, 113, 109, 104, 143, 110, 110, 113, 110, 110, 111, 105, 121, 137, 118, 111, 115, 110, 109, 112, 104, 115, 111, 105, 98, 114, 75, 115, 111, 118, 110, 112, 108, 110, 106, 118, 113, 112, 111, 106, 106, 110, 111, 107, 146, 107, 106, 104, 117, 110, 106, 84, 108, 103, 103, 110, 86, 108, 115, 110, 114, 110, 114, 114, 108, 105, 113, 105, 109, 108, 110, 108, 113, 112, 114, 110, 106, 111, 104, 111, 118, 108, 118, 111, 100, 112, 117, 101, 105, 109, 106, 109, 103, 107, 91, 132, 124, 126, 101, 106, 112, 109, 111, 109, 108, 109, 111, 117, 102, 75, 99, 111, 99, 109, 111, 126, 113, 108, 113, 104, 114, 108, 107, 108, 113, 107, 107, 115, 113, 123, 113, 112, 110, 98, 106, 106, 117, 117, 111, 119, 102, 121, 105, 113, 109, 103, 128, 109, 110, 113, 107, 115, 110, 114, 105, 118, 109, 102, 112, 119, 122, 112, 107, 105, 109, 122, 108, 108, 100, 109, 108, 111, 109, 108, 107, 108, 115, 103, 111, 113, 110, 112, 115, 111, 119, 115, 114, 114, 114, 105, 100, 101, 121, 110, 106, 120, 107, 115, 112, 110, 113, 107, 112, 109, 125, 108, 108, 106, 102, 114, 102, 117, 112, 105, 114, 108, 109, 108, 100, 109, 114, 134, 113, 114, 113, 110, 105, 108, 107, 113, 110, 109, 112, 105, 117, 115, 111, 103, 117, 121, 118, 113, 107, 107, 116, 114, 110, 116, 113, 113, 109, 108, 120, 113, 108, 108, 107, 109, 100, 118, 116, 114, 108, 107, 103, 108, 112, 103, 116, 109, 103, 106, 109, 105, 117, 111, 118, 115, 115, 115, 112, 111, 115, 115, 114, 108, 109, 109, 123, 116, 116, 107, 109, 107, 113, 108, 105, 104, 108, 101, 110, 118, 107, 101, 109, 113, 113, 111, 114, 97, 111, 121, 114, 109, 110, 115, 89, 113, 118, 100, 106, 110, 109, 107, 102, 115, 108, 110, 117, 114, 107, 114, 109, 105, 101, 114, 113, 118, 105, 112, 109, 107, 109, 114, 119, 109, 117, 108, 102, 107, 103, 111, 115, 111, 93, 118, 111, 101, 116, 102, 118, 111, 103, 109, 114, 110, 111, 104, 110, 105, 106, 107, 91, 104, 118, 105, 104, 110, 110, 109, 109, 116, 110, 109, 104, 114, 109, 110, 113, 108, 113, 113, 112, 109, 113, 110, 106, 96, 110, 119, 115, 112, 112, 109, 110, 116, 107, 113, 112, 108, 116, 112, 101, 114, 115, 107, 117, 108, 111, 110, 106, 115, 110, 104, 111, 112, 105, 110, 108, 106, 103, 103, 103, 114, 114, 113, 112, 110, 120, 108, 111, 109, 108, 98, 114, 110, 109, 111, 117, 115, 104, 120, 114, 103, 110, 111, 111, 109, 115, 107, 114, 109, 113, 111, 111, 104, 105, 103, 112, 109, 100, 113, 106, 122, 117, 105, 107, 112, 114, 102, 112, 106, 112, 113, 113, 98, 115, 111, 112, 112, 111, 111, 99, 120, 115, 110, 112, 114, 115, 111, 107, 121, 120, 132, 101, 105, 103, 115, 114, 114, 113, 115, 111, 113, 114, 111, 109, 111, 99, 112, 114, 109, 109, 115, 111, 105, 119, 106, 114, 109, 106, 108, 103, 112, 115, 112, 114, 108, 107, 113, 112, 106, 113, 115, 109, 103, 114, 110, 115, 109, 106, 83, 111, 109, 126, 111, 112, 111, 116, 113, 111, 110, 108, 102, 102, 101, 112, 120, 111, 114, 101, 105, 103, 114, 109, 117, 120, 104, 111, 113, 117, 104, 104, 112, 124, 111, 103, 113, 100, 102, 105, 130, 112, 113, 120, 112, 113, 110, 116, 111, 110, 113, 115, 110, 116, 103, 120, 105, 110, 105, 102, 90, 106, 114, 101, 117, 111, 111, 112, 112, 113, 115, 118, 112, 109, 105, 113, 115, 114, 95, 99, 111, 112, 117, 109, 109, 114, 111, 112, 106, 108, 113, 112, 105, 111, 115, 121, 111, 112, 110, 120, 111, 108, 110, 116, 111, 110, 114, 110, 111, 115, 121, 109, 111, 108, 110, 108, 108, 97, 104, 105, 116, 115, 107, 110, 120, 99, 113, 108, 106, 110, 122, 101, 111, 112, 111, 106, 111, 99, 110, 109, 110, 113, 96, 113, 116, 117, 110, 107, 115, 112, 108, 113, 109, 110, 104, 107, 109, 119, 105, 125, 101, 114, 112, 105, 100, 111, 109, 110, 106, 111, 110, 110, 110, 110, 106, 111, 104, 108, 100, 115, 109, 109, 107, 102, 106, 109, 107, 112, 112, 108, 109, 110, 106, 114, 110, 106, 120, 110, 110, 108, 109, 119, 116, 103, 109, 117, 111, 124, 113, 105, 107, 112, 116, 109, 108, 101, 105, 99, 111, 91, 110, 109, 101, 109, 112, 115, 108, 111, 108, 113, 99, 106, 109, 116, 104, 119, 114, 108, 111, 114, 109, 114, 106, 109, 109, 111, 110, 101, 105, 115, 109, 111, 104, 102, 107, 110, 111, 107, 100, 99, 105, 107, 109, 112, 112, 118, 110, 111, 120, 113, 107, 111, 108, 110, 112, 89, 115, 111, 108, 113, 113, 129, 111, 110, 119, 110, 110, 124, 110, 110, 111, 109, 107, 108, 107, 112, 107, 109, 95, 113, 109, 113, 119, 115, 109, 108, 103, 112, 113, 102, 109, 112, 120, 106, 110, 102, 116, 100, 108, 111, 110, 107, 111, 110, 111, 106, 106, 106, 110, 109, 103, 110, 116, 111, 98, 111, 111, 116, 111, 114, 110, 112, 112, 102, 112, 120, 112, 112, 113, 106, 114, 113, 116, 97, 120, 112, 114, 130, 111, 108, 113, 113, 113, 113, 105, 111, 105, 112, 113, 111, 112, 115, 115, 111, 115, 119, 110, 109, 108, 108, 107, 110, 113, 105, 109, 111, 107, 107, 110, 112, 110, 111, 109, 109, 107, 110, 101, 110, 110, 112, 116, 109, 110, 116, 110, 114, 117, 111, 104, 109, 123, 108, 110, 114, 104, 108, 113, 108, 114, 110, 110, 114, 110, 109, 108, 98, 114, 125, 104, 116, 107, 108, 105, 110, 107, 110, 110, 108, 106, 111, 112, 113, 106, 111, 101, 110, 112, 106, 110, 113, 111, 119, 109, 110, 114, 114, 109, 106, 76, 109, 114, 113, 109, 110, 111, 107, 105, 108, 114, 113, 107, 111, 106, 113, 110, 110, 110, 109, 113, 103, 111, 108, 114, 111, 100, 115, 104, 110, 107, 108, 111, 108, 110, 110, 112, 104, 107, 110, 110, 108, 112, 107, 107, 105, 108, 109, 108, 108, 117, 108, 110, 109, 111, 110, 112, 113, 109, 112, 124, 107, 110, 135, 111, 111, 111, 110, 112, 110, 105, 121, 115, 106, 114, 108, 110, 106, 111, 110, 111, 112, 103, 110, 112, 107, 113, 113, 110, 108, 102, 107, 107, 132, 109, 101, 121, 108, 107, 116, 106, 108, 103, 110, 110, 119, 114, 112, 113, 114, 114, 108, 98, 109, 109, 106, 96, 113, 113, 100, 107, 108, 107, 112, 120, 98, 111, 111, 107, 109, 110, 113, 107, 104, 103, 114, 110, 106, 106, 114, 109, 113, 107, 101, 110, 107, 114, 107, 99, 104, 108, 126, 106, 110, 99, 119, 106, 108, 109, 108, 109, 115, 113, 106, 106, 111, 107, 109, 109, 111, 101, 111, 111, 108, 107, 103, 111, 107, 113, 119, 88, 106, 110, 120, 104, 112, 107, 107, 109, 92, 107, 112, 113, 108, 109, 107, 108, 89, 107, 111, 105, 112, 112, 111, 105, 108, 112, 89, 112, 112, 121, 112, 107, 104, 105, 105, 108, 118, 110, 108, 106, 105, 113, 110, 105, 111, 110, 110, 106, 111, 102, 109, 102, 99, 112, 106, 107, 115, 112, 103, 119, 112, 111, 106, 113, 107, 108, 110, 112, 89, 113, 112, 113, 107, 104, 108, 109, 116, 111, 113, 113, 107, 116, 107, 110, 108, 106, 115, 108, 109, 97, 112, 108, 112, 109, 113, 110, 98, 108, 108, 113, 111, 114, 103, 107, 119, 105, 104, 108, 110, 125, 111, 112, 109, 120, 109, 106, 104, 108, 111, 108, 103, 111, 105, 117, 109, 112, 112, 104, 111, 109, 103, 117, 102, 99, 111, 106, 160, 111, 105, 111, 98, 106, 109, 109, 108, 113, 114, 108, 105, 109, 102, 116, 116, 114, 110, 106, 116, 108, 98, 109, 113, 101, 123, 116, 101, 103, 125, 108, 102, 112, 113, 111, 111, 105, 111, 104, 106, 111, 108, 106, 111, 111, 113, 109, 115, 107, 108, 104, 103, 108, 111, 114, 106, 107, 116, 110, 102, 110, 113, 111, 112, 106, 117, 105, 103, 104, 98, 110, 96, 105, 108, 114, 108, 101, 114, 116, 105, 112, 116, 113, 108, 114, 113, 108, 109, 110, 110, 108, 113, 108, 106, 110, 110, 113, 108, 110, 114, 111, 106, 109, 110, 115, 119, 115, 114, 113, 118, 110, 109, 111, 98, 109, 113, 110, 112, 105, 108, 110, 105, 108, 106, 114, 110, 106, 85, 115, 111, 107, 108, 106, 108, 94, 83, 103, 107, 89, 107, 106, 113, 101, 102, 109, 115, 114, 118, 114, 112, 110, 115, 103, 111, 114, 112, 115, 111, 111, 102, 99, 110, 108, 113, 115, 110, 106, 109, 112, 112, 111, 114, 108, 109, 110, 122, 107, 113, 108, 118, 109, 105, 113, 109, 108, 112, 109, 110, 103, 115, 115, 103, 109, 109, 111, 110, 110, 110, 122, 105, 97, 111, 112, 108, 144, 109, 112, 111, 107, 110, 107, 97, 113, 108, 112, 102, 111, 104, 103, 106, 107, 108, 107, 107, 115, 111, 111, 110, 113, 116, 125, 111, 109, 109, 109, 102, 111, 105, 116, 104, 124, 106, 110, 113, 102, 118, 107, 104, 127, 110, 110, 125, 105, 110, 106, 111, 110, 106, 106, 109, 113, 101, 100, 104, 117, 106, 112, 91, 103, 102, 116, 111, 113, 111, 129, 110, 109, 112, 110, 118, 107, 132, 110, 99, 112, 92, 105, 108, 113, 105, 111, 115, 106, 100, 112, 106, 109, 107, 110, 121, 103, 111, 114, 109, 110, 111, 109, 103, 102, 110, 107, 105, 106, 111, 112, 114, 116, 107, 108, 110, 109, 112, 128, 108, 134, 113, 108, 104, 114, 114, 113, 104, 123, 112, 111, 116, 114, 111, 105, 104, 111, 106, 103, 111, 107, 126, 119, 108, 114, 97, 127, 105, 109, 95, 116, 107, 107, 114, 112, 110, 105, 111, 113, 120, 127, 110, 109, 111, 117, 111, 107, 99, 103, 113, 103, 100, 106, 110, 119, 113, 108, 107, 110, 122, 117, 109, 112, 112, 101, 118, 113, 111, 114, 105, 115, 108, 116, 109, 103, 102, 113, 110, 110, 112, 102, 108, 110, 112, 115, 110, 112, 110, 111, 118, 110, 106, 117, 98, 131, 111, 121, 116, 119, 114, 101, 111, 116, 103, 120, 115, 122, 107, 109, 105, 110, 107, 111, 107, 99, 112, 107, 114, 108, 126, 107, 117, 103, 108, 114, 107, 111, 112, 102, 109, 115, 103, 116, 116, 107, 122, 106, 100, 118, 103, 105, 110, 100, 107, 111, 114, 109, 95, 111, 109, 116, 119, 102, 120, 111, 120, 117, 112, 109, 108, 117, 115, 111, 114, 114, 119, 124, 124, 109, 113, 111, 112, 113, 104, 110, 103, 111, 119, 127, 111, 123, 106, 103, 109, 112, 107, 113, 103, 102, 113, 117, 111, 103, 120, 113, 112, 107, 111, 100, 103, 105, 124, 111, 126, 115, 106, 118, 112, 117, 126, 109, 110, 94, 117, 101, 110, 111, 101, 115, 109, 108, 104, 108, 115, 115, 107, 110, 119, 108, 108, 103, 106, 103, 106, 110, 100, 102, 131, 117, 118, 116, 111, 111, 120, 122, 115, 112, 96, 118, 115, 116, 110, 115, 116, 115, 105, 106, 89, 103, 140, 103, 119, 111, 107, 110, 116, 100, 104, 108, 110, 99, 119, 121, 107, 108, 112, 110, 101, 103, 96, 106, 101, 112, 104, 112, 105, 114, 115, 115, 110, 124, 112, 90, 104, 111, 100, 113, 94, 106, 117, 99, 75, 109, 121, 112, 88, 129, 110, 105, 136, 112, 107, 114, 108, 113, 94, 98, 109, 101, 110, 114, 104, 126, 95, 117, 108, 102, 113, 103, 106, 107, 112, 102, 123, 115, 104, 106, 114, 111, 112, 109, 107, 116, 112, 103, 120, 126, 108, 92, 114, 110, 112, 110, 107, 96, 112, 102, 112, 124, 120, 113, 114, 107, 119, 109, 114, 99, 107, 106, 113, 130, 116, 101, 115, 120, 107, 107, 104, 108, 113, 111, 105, 115, 112, 102, 109, 116, 106, 101, 110, 116, 113, 94, 97, 96, 114, 105, 101, 113, 105, 108, 117, 111, 104, 111, 117, 106, 104, 109, 111, 113, 98, 119, 107, 117, 119, 104, 106, 108, 105, 111, 117, 100, 112, 112, 114, 98, 109, 101, 116, 112, 110, 110, 108, 103, 101, 91, 103, 110, 125, 115, 103, 106, 109, 107, 109, 117, 109, 108, 109, 120, 110, 123, 106, 109, 109, 97, 107, 110, 111, 116, 110, 101, 110, 112, 108, 96, 112, 108, 129, 112, 84, 108, 99, 100, 97, 111, 106, 111, 99, 110, 134, 114, 112, 109, 105, 112, 112, 114, 117, 110, 110, 110, 113, 109, 111, 111, 114, 116, 111, 111, 115, 102, 114, 124, 103, 112, 104, 102, 108, 110, 149, 113, 104, 110, 102, 116, 106, 113, 110, 114, 111, 113, 103, 104, 110, 110, 111, 104, 110, 108, 112, 113, 107, 111, 97, 109, 116, 113, 111, 112, 106, 108, 111, 109, 116, 111, 115, 108, 113, 116, 107, 105, 118, 110, 99, 121, 94, 116, 109, 111, 107, 107, 104, 113, 112, 112, 125, 101, 105, 112, 108, 113, 109, 109, 105, 109, 109, 111, 114, 114, 101, 110, 115, 111, 107, 110, 116, 111, 103, 104, 122, 119, 108, 103, 108, 102, 114, 102, 107, 98, 108, 116, 119, 107, 116, 114, 115, 104, 108, 110, 122, 103, 108, 109, 115, 105, 102, 113, 111, 104, 122, 115, 100, 108, 109, 112, 124, 121, 113, 107, 112, 103, 107, 107, 109, 113, 108, 116, 106, 110, 98, 113, 107, 110, 162, 108, 104, 107, 109, 116, 103, 105, 85, 101, 121, 100, 111, 112, 113, 106, 111, 107, 110, 107, 112, 110, 109, 108, 110, 106, 121, 135, 108, 106, 106, 106, 108, 110, 107, 112, 113, 112, 104, 113, 105, 113, 104, 113, 114, 105, 110, 95, 111, 104, 103, 101, 103, 112, 110, 116, 113, 107, 108, 112, 112, 110, 107, 101, 111, 102, 100, 112, 115, 108, 110, 110, 105, 111, 116, 110, 109, 107, 108, 108, 107, 105, 111, 109, 108, 105, 106, 109, 103, 113, 116, 111, 105, 105, 107, 108, 109, 112, 112, 94, 107, 96, 112, 116, 109, 111, 120, 108, 102, 109, 120, 114, 107, 111, 110, 107, 110, 100, 107, 128, 109, 116, 119, 108, 122, 109, 104, 107, 111, 110, 109, 105, 114, 111, 114, 111, 104, 110, 112, 106, 110, 108, 119, 128, 101, 120, 118, 106, 119, 109, 104, 108, 108, 105, 110, 104, 99, 100, 115, 109, 104, 106, 111, 111, 107, 114, 100, 109, 109, 94, 105, 112, 114, 120, 111, 114, 122, 118, 101, 106, 110, 132, 109, 104, 111, 105, 109, 113, 91, 99, 106, 107, 109, 112, 109, 107, 110, 96, 115, 110, 112, 111, 107, 113, 114, 112, 110, 109, 106, 106, 106, 102, 108, 107, 110, 109, 90, 113, 113, 111, 106, 104, 109, 111, 111, 107, 112, 113, 105, 108, 112, 109, 117, 110, 110, 104, 114, 110, 113, 107, 114, 103, 124, 102, 107, 112, 105, 128, 108, 117, 107, 109, 111, 111, 106, 114, 104, 102, 114, 111, 110, 109, 114, 114, 108, 110, 108, 99, 109, 110, 109, 131, 107, 111, 112, 105, 103, 128, 102, 108, 112, 107, 110, 111, 112, 112, 108, 113, 105, 91, 100, 132, 98, 107, 107, 110, 106, 113, 106, 108, 103, 109, 111, 110, 113, 117, 113, 105, 107, 101, 120, 115, 112, 105, 108, 112, 109, 108, 116, 117, 103, 109, 110, 116, 111, 107, 103, 109, 112, 108, 114, 110, 110, 111, 110, 108, 114, 112, 110, 99, 114, 107, 121, 108, 113, 110, 109, 108, 120, 107, 110, 115, 109, 109, 107, 108, 114, 112, 117, 93, 104, 122, 72, 108, 112, 108, 107, 108, 105, 106, 111, 103, 109, 104, 101, 107, 102, 109, 109, 107, 124, 105, 110, 110, 107, 99, 99, 108, 113, 110, 115, 122, 98, 106, 104, 124, 115, 110, 97, 108, 108, 110, 111, 103, 101, 116, 107, 109, 121, 117, 113, 103, 110, 102, 113, 111, 104, 101, 109, 114, 124, 123, 96, 105, 105, 116, 103, 108, 119, 112, 115, 98, 107, 100, 105, 108, 112, 113, 103, 114, 110, 116, 111, 112, 101, 125, 107, 104, 106, 108, 119, 98, 111, 119, 110, 111, 119, 111, 100, 110, 110, 130, 94, 113, 105, 111, 109, 111, 103, 116, 114, 114, 119, 111, 113, 111, 111, 109, 108, 115, 110, 118, 109, 112, 124, 105, 127, 105, 102, 113, 105, 114, 108, 101, 115, 113, 105, 119, 118, 100, 110, 110, 134, 98, 101, 104, 97, 102, 113, 116, 108, 102, 115, 119, 111, 113, 115, 107, 103, 108, 103, 111, 115, 120, 118, 128, 100, 102, 102, 114, 109, 111, 114, 124, 108, 111, 116, 104, 111, 114, 111, 105, 106, 109, 105, 105, 108, 103, 106, 111, 117, 112, 118, 121, 116, 110, 118, 104, 104, 111, 107, 110, 128, 108, 119, 109, 115, 105, 109, 107, 105, 109, 98, 102, 102, 106, 99, 93, 103, 106, 112, 117, 101, 106, 122, 104, 118, 97, 107, 114, 100, 110, 117, 113, 120, 113, 111, 107, 99, 106, 115, 131, 109, 106, 101, 102, 99, 114, 113, 119, 109, 107, 123, 101, 116, 103, 110, 103, 109, 114, 113, 117, 116, 107, 104, 96, 108, 113, 119, 107, 133, 118, 113, 97, 110, 114, 114, 125, 111, 114, 118, 115, 111, 105, 112, 103, 127, 109, 100, 110, 105, 111, 109, 98, 100, 112, 101, 112, 105, 126, 101, 105, 109, 113, 109, 94, 112, 90, 101, 121, 113, 110, 100, 108, 113, 109, 115, 102, 103, 102, 109, 109, 116, 113, 111, 112, 112, 106, 109, 115, 122, 124, 107, 111, 110, 113, 113, 115, 112, 97, 106, 106, 111, 115, 106, 109, 105, 104, 100, 115, 105, 116, 105, 95, 111, 104, 97, 116, 116, 104, 115, 110, 113, 110, 97, 120, 129, 106, 102, 112, 100, 104, 109, 109, 111, 107, 98, 110, 116, 120, 102, 102, 116, 118, 110, 98, 94, 116, 98, 105, 113, 114, 120, 107, 107, 113, 112, 115, 113, 117, 109, 127, 112, 106, 123, 106, 122, 108, 106, 114, 112, 115, 114, 114, 106, 126, 112, 106, 109, 119, 106, 116, 123, 108, 115, 109, 105, 114, 110, 104, 112, 115, 115, 111, 102, 102, 107, 112, 121, 117, 121, 105, 111, 109, 112, 110, 106, 111, 117, 127, 107, 108, 110, 110, 113, 108, 109, 119, 115, 112, 101, 111, 117, 110, 104, 110, 109, 109, 101, 117, 107, 128, 111, 109, 106, 103, 110, 109, 109, 109, 112, 113, 104, 123, 109, 110, 113, 111, 115, 116, 113, 105, 113, 114, 110, 111, 124, 103, 108, 132, 108, 119, 111, 123, 111, 107, 101, 110, 106, 109, 117, 118, 115, 97, 100, 103, 118, 127, 104, 120, 123, 125, 101, 114, 109, 111, 103, 108, 120, 119, 110, 116, 118, 113, 100, 129, 118, 106, 108, 115, 105, 108, 113, 104, 110, 117, 104, 109, 112, 102, 112, 102, 106, 108, 101, 108, 102, 117, 107, 105, 99, 112, 102, 107, 112, 113, 110, 111, 111, 105, 109, 118, 107, 117, 108, 115, 109, 105, 118, 110, 116, 102, 108, 109, 114, 102, 100, 125, 111, 107, 121, 113, 106, 109, 110, 119, 103, 110, 102, 109, 101, 108, 111, 113, 114, 110, 113, 133, 96, 126, 115, 112, 111, 105, 104, 113, 113, 105, 106, 116, 123, 101, 117, 109, 103, 110, 104, 122, 111, 113, 126, 118, 117, 110, 111, 121, 93, 117, 110, 110, 119, 111, 99, 116, 113, 104, 92, 114, 110, 116, 102, 107, 108, 118, 110, 108, 105, 123, 109, 111, 108, 101, 98, 119, 104, 117, 110, 109, 108, 103, 102, 112, 104, 108, 104, 95, 113, 109, 109, 102, 109, 109, 102, 116, 104, 109, 108, 113, 120, 108, 114, 117, 111, 110, 109, 110, 107, 119, 110, 103, 107, 111, 109, 111, 113, 103, 98, 96, 109, 104, 113, 108, 103, 110, 103, 98, 105, 109, 102, 120, 105, 106, 100, 106, 104, 108, 114, 96, 113, 110, 99, 105, 103, 112, 114, 106, 105, 110, 109, 110, 119, 112, 109, 110, 103, 115, 112, 108, 106, 103, 108, 108, 98, 102, 108, 105, 109, 129, 107, 111, 111, 106, 104, 122, 109, 108, 111, 109, 123, 106, 112, 104, 111, 107, 103, 112, 108, 107, 97, 112, 104, 116, 114, 127, 111, 108, 104, 106, 107, 108, 109, 111, 113, 120, 96, 109, 104, 115, 113, 110, 95, 106, 105, 109, 105, 114, 113, 111, 116, 107, 107, 102, 110, 103, 115, 114, 105, 110, 111, 106, 111, 106, 114, 110, 100, 107, 115, 114, 112, 105, 107, 111, 112, 88, 119, 111, 115, 118, 124, 114, 91, 106, 110, 105, 110, 130, 104, 103, 108, 108, 131, 106, 109, 93, 108, 103, 124, 126, 104, 112, 107, 105, 111, 115, 104, 114, 117, 123, 113, 106, 105, 95, 105, 106, 110, 104, 113, 113, 109, 105, 109, 116, 106, 105, 121, 105, 115, 108, 115, 107, 108, 104, 111, 107, 107, 118, 120, 112, 114, 118, 107, 115, 111, 115, 112, 113, 109, 109, 100, 110, 119, 107, 111, 123, 106, 113, 101, 116, 106, 98, 93, 103, 105, 104, 111, 113, 108, 120, 107, 106, 115, 78, 105, 114, 112, 111, 113, 111, 109, 105, 125, 115, 121, 108, 104, 111, 113, 115, 105, 117, 114, 107, 120, 102, 107, 108, 87, 101, 114, 110, 115, 106, 111, 111, 111, 106, 108, 106, 121, 116, 112, 114, 117, 120, 110, 101, 107, 106, 103, 103, 112, 104, 105, 105, 104, 104, 103, 109, 109, 106, 117, 103, 107, 106, 106, 111, 97, 104, 99, 116, 105, 101, 110, 111, 117, 100, 115, 109, 100, 109, 112, 104, 110, 105, 105, 103, 111, 107, 106, 103, 117, 113, 113, 97, 104, 110, 105, 103, 127, 113, 102, 109, 116, 117, 109, 120, 102, 111, 113, 114, 111, 109, 115, 111, 118, 120, 115, 110, 113, 117, 104, 104, 108, 113, 109, 108, 107, 119, 112, 108, 112, 110, 112, 106, 113, 107, 108, 112, 110, 110, 117, 111, 109, 113, 103, 110, 107, 120, 104, 109, 119, 112, 104, 110, 99, 111, 103, 109, 109, 109, 109, 110, 109, 111, 115, 107, 107, 112, 105, 104, 107, 110, 100, 111, 107, 107, 110, 110, 115, 105, 111, 110, 111, 111, 107, 108, 114, 108, 120, 107, 112, 110, 89, 113, 110, 100, 105, 102, 111, 115, 112, 110, 109, 111, 112, 110, 107, 105, 104, 112, 110, 105, 114, 114, 112, 101, 110, 114, 110, 112, 100, 105, 113, 113, 109, 106, 109, 111, 111, 112, 102, 110, 109, 113, 103, 112, 119, 107, 115, 103, 113, 93, 107, 112, 108, 112, 108, 113, 108, 110, 115, 122, 112, 106, 108, 110, 115, 108, 105, 95, 111, 110, 119, 114, 111, 109, 109, 119, 122, 109, 106, 110, 109, 117, 114, 111, 111, 114, 106, 107, 110, 109, 110, 106, 120, 108, 116, 99, 115, 110, 112, 114, 113, 111, 110, 104, 109, 106, 113, 109, 102, 115, 118, 114, 110, 112, 106, 108, 106, 111, 111, 110, 103, 105, 103, 101, 109, 112, 121, 114, 109, 109, 112, 105, 118, 107, 114, 105, 112, 108, 110, 104, 112, 104, 109, 101, 106, 104, 119, 107, 112, 114, 122, 113, 116, 101, 109, 112, 112, 108, 114, 114, 111, 103, 99, 98, 107, 114, 112, 114, 103, 111, 101, 110, 104, 108, 112, 107, 109, 101, 112, 106, 113, 115, 109, 112, 109, 107, 102, 107, 110, 108, 115, 111, 107, 104, 114, 108, 105, 110, 108, 97, 105, 107, 104, 110, 108, 106, 105, 103, 107, 124, 106, 108, 114, 106, 108, 112, 119, 102, 109, 108, 107, 102, 111, 112, 110, 107, 109, 110, 121, 108, 110, 101, 110, 108, 112, 108, 112, 107, 106, 109, 106, 109, 105, 107, 113, 108, 111, 110, 111, 105, 110, 111, 106, 118, 109, 114, 109, 115, 112, 110, 113, 108, 109, 115, 109, 111, 117, 112, 100, 107, 108, 109, 114, 108, 104, 114, 108, 110, 107, 114, 106, 108, 111, 115, 113, 108, 117, 112, 109, 107, 114, 110, 105, 110, 106, 114, 101, 112, 112, 113, 107, 112, 116, 111, 106, 109, 104, 106, 116, 112, 102, 108, 109, 108, 114, 111, 113, 107, 110, 115, 110, 113, 108, 113, 102, 107, 107, 114, 103, 114, 105, 103, 110, 109, 108, 115, 106, 113, 109, 110, 107, 111, 106, 106, 116, 110, 104, 108, 108, 115, 108, 108, 111, 122, 109, 107, 109, 112, 107, 111, 110, 111, 107, 118, 108, 114, 110, 116, 105, 115, 112, 107, 114, 102, 112, 112, 109, 114, 108, 114, 110, 113, 108, 110, 113, 105, 107, 115, 113, 102, 108, 101, 111, 110, 112, 109, 112, 113, 108, 123, 109, 114, 106, 101, 105, 110, 110, 114, 110, 108, 117, 99, 112, 119, 115, 111, 102, 108, 111, 109, 114, 104, 109, 112, 112, 115, 121, 108, 110, 104, 106, 111, 117, 108, 113, 113, 109, 106, 113, 99, 115, 113, 107, 100, 118, 109, 105, 117, 96, 106, 113, 103, 108, 116, 108, 113, 98, 112, 94, 103, 113, 118, 109, 107, 102, 104, 105, 112, 112, 114, 114, 116, 107, 129, 115, 113, 114, 110, 104, 107, 114, 110, 114, 114, 100, 104, 105, 115, 117, 111, 112, 107, 104, 109, 109, 110, 117, 112, 81, 104, 109, 119, 110, 113, 113, 102, 117, 107, 115, 113, 102, 105, 119, 98, 119, 105, 117, 113, 117, 114, 118, 112, 121, 111, 106, 111, 113, 105, 111, 118, 120, 103, 118, 96, 111, 99, 112, 112, 103, 102, 104, 110, 107, 114, 106, 104, 109, 112, 114, 116, 110, 123, 101, 112, 124, 114, 102, 112, 109, 109, 107, 112, 117, 105, 108, 98, 105, 110, 111, 106, 114, 116, 109, 109, 112, 115, 114, 111, 112, 107, 99, 106, 115, 103, 99, 112, 118, 114, 120, 110, 107, 109, 99, 123, 108, 118, 113, 115, 99, 110, 126, 115, 109, 123, 117, 106, 115, 107, 127, 110, 112, 87, 131, 117, 105, 103, 119, 104, 109, 124, 106, 121, 118, 110, 84, 105, 114, 108, 102, 108, 110, 109, 108, 127, 106, 113, 108, 108, 113, 118, 112, 107, 114, 128, 109, 105, 110, 94, 115, 102, 111, 117, 103, 110, 108, 100, 102, 114, 104, 112, 113, 127, 125, 100, 101, 116, 105, 112, 113, 110, 113, 125, 105, 111, 105, 112, 110, 109, 125, 101, 119, 105, 120, 113, 108, 112, 102, 102, 102, 106, 112, 105, 105, 109, 109, 111, 110, 106, 115, 104, 107, 110, 102, 113, 101, 114, 110, 111, 109, 118, 100, 113, 111, 117, 105, 103, 110, 110, 112, 115, 116, 113, 116, 105, 97, 105, 156, 108, 116, 106, 100, 112, 102, 110, 104, 120, 97, 114, 105, 91, 106, 95, 110, 102, 104, 98, 109, 107, 122, 109, 106, 109, 113, 111, 108, 109, 115, 104, 106, 101, 105, 95, 92, 103, 110, 115, 113, 118, 84, 103, 118, 110, 102, 115, 108, 110, 96, 110, 104, 102, 110, 110, 108, 107, 112, 108, 104, 104, 106, 83, 110, 117, 105, 111, 95, 105, 117, 110, 114, 109, 103, 110, 117, 111, 107, 93, 108, 106, 110, 119, 98, 112, 100, 114, 122, 108, 106, 110, 103, 122, 114, 103, 105, 115, 100, 102, 116, 121, 108, 104, 119, 101, 112, 105, 110, 133, 107, 116, 108, 115, 110, 119, 118, 113, 114, 126, 104, 117, 139, 109, 109, 113, 92, 122, 104, 104, 108, 105, 109, 118, 117, 109, 103, 112, 108, 117, 89, 105, 107, 93, 115, 110, 110, 86, 111, 109, 113, 101, 111, 110, 113, 119, 116, 120, 107, 112, 110, 104, 96, 121, 115, 106, 111, 102, 114, 78, 104, 108, 118, 121, 115, 109, 124, 110, 108, 119, 95, 116, 103, 121, 106, 115, 104, 102, 115, 102, 112, 104, 129, 106, 106, 107, 111, 122, 110, 118, 116, 108, 115, 116, 106, 115, 106, 113, 101, 107, 102, 120, 104, 112, 110, 119, 106, 108, 103, 125, 107, 100, 117, 110, 119, 108, 125, 112, 110, 119, 109, 110, 102, 104, 102, 111, 112, 105, 115, 117, 107, 114, 102, 121, 123, 113, 122, 104, 139, 103, 119, 121, 103, 111, 110, 109, 101, 109, 128, 119, 106, 104, 103, 118, 114, 114, 114, 119, 111, 113, 114, 103, 91, 115, 108, 125, 96, 110, 100, 108, 111, 117, 107, 118, 100, 106, 111, 106, 108, 118, 120, 113, 102, 99, 122, 97, 106, 104, 118, 115, 105, 112, 111, 112, 108, 105, 118, 111, 106, 115, 104, 122, 107, 111, 103, 102, 118, 118, 119, 106, 115, 114, 109, 103, 131, 114, 109, 130, 118, 108, 111, 110, 100, 116, 98, 111, 106, 101, 114, 103, 106, 125, 112, 114, 108, 113, 107, 105, 97, 129, 112, 118, 103, 117, 118, 109, 110, 120, 104, 116, 114, 116, 113, 109, 115, 106, 111, 114, 109, 99, 118, 117, 108, 112, 118, 105, 98, 108, 112, 109, 117, 114, 118, 105, 111, 121, 95, 113, 115, 112, 120, 114, 119, 101, 120, 100, 109, 104, 107, 102, 114, 118, 105, 114, 111, 96, 114, 100, 114, 116, 114, 131, 113, 102, 109, 104, 126, 109, 114, 116, 115, 111, 103, 103, 122, 103, 106, 113, 117, 98, 113, 106, 126, 119, 108, 108, 126, 115, 102, 113, 113, 105, 107, 117, 98, 114, 116, 123, 100, 112, 107, 112, 115, 102, 110, 105, 111, 106, 118, 110, 107, 102, 109, 111, 101, 107, 95, 119, 115, 98, 113, 98, 107, 124, 98, 109, 107, 118, 97, 105, 110, 109, 102, 117, 109, 97, 112, 129, 111, 119, 117, 103, 105, 96, 102, 107, 110, 110, 110, 92, 106, 113, 110, 118, 113, 98, 114, 108, 106, 114, 128, 92, 109, 120, 122, 106, 114, 112, 98, 98, 113, 103, 116, 115, 92, 91, 107, 94, 123, 109, 98, 107, 102, 92, 120, 91, 108, 128, 114, 100, 110, 99, 118, 116, 104, 110, 107, 115, 109, 120, 103, 110, 113, 115, 102, 104, 110, 102, 125, 109, 104, 112, 106, 101, 117, 105, 106, 96, 103, 111, 115, 106, 103, 99, 106, 110, 120, 111, 106, 104, 109, 117, 103, 122, 115, 107, 98, 108, 111, 106, 106, 112, 111, 110, 121, 115, 113, 116, 110, 96, 100, 119, 106, 96, 112, 95, 107, 98, 110, 112, 105, 116, 108, 121, 101, 124, 99, 119, 95, 103, 121, 131, 103, 106, 121, 106, 104, 108, 112, 107, 112, 111, 111, 115, 98, 105, 111, 121, 82, 113, 119, 101, 114, 107, 112, 98, 114, 109, 122, 121, 110, 106, 106, 106, 107, 110, 121, 108, 109, 110, 125, 110, 108, 116, 109, 118, 101, 111, 112, 115, 125, 113, 113, 111, 112, 137, 118, 114, 99, 121, 110, 98, 106, 101, 107, 122, 125, 105, 116, 102, 104, 94, 114, 108, 115, 103, 114, 117, 114, 94, 117, 106, 92, 111, 117, 113, 105, 105, 120, 101, 117, 102, 104, 108, 107, 106, 109, 115, 117, 108, 102, 115, 104, 113, 101, 106, 112, 106, 116, 101, 117, 106, 121, 102, 113, 111, 106, 110, 114, 107, 112, 117, 116, 107, 106, 108, 112, 108, 104, 112, 108, 107, 100, 112, 104, 106, 113, 113, 103, 106, 101, 114, 107, 104, 115, 118, 117, 103, 107, 104, 116, 101, 112, 107, 115, 111, 99, 100, 111, 108, 110, 106, 109, 111, 110, 111, 129, 96, 124, 106, 99, 106, 115, 107, 102, 99, 116, 114, 107, 107, 113, 112, 104, 111, 110, 104, 107, 100, 102, 107, 124, 113, 119, 134, 124, 117, 117, 119, 106, 97, 101, 103, 124, 107, 115, 106, 110, 106, 109, 108, 114, 105, 106, 119, 114, 109, 105, 106, 114, 119, 106, 113, 106, 114, 115, 108, 114, 145, 109, 109, 112, 106, 111, 116, 110, 102, 101, 105, 100, 102, 118, 97, 103, 124, 123, 111, 113, 120, 113, 120, 98, 108, 117, 101, 115, 109, 96, 108, 115, 113, 110, 103, 109, 105, 113, 120, 113, 110, 112, 110, 115, 134, 108, 109, 111, 118, 109, 109, 117, 105, 107, 103, 118, 107, 117, 100, 103, 91, 109, 114, 101, 115, 104, 99, 112, 101, 107, 109, 106, 109, 102, 113, 103, 97, 112, 115, 111, 115, 100, 107, 113, 106, 109, 115, 109, 106, 108, 100, 124, 111, 108, 113, 106, 99, 125, 111, 107, 106, 102, 100, 105, 112, 105, 116, 108, 116, 117, 101, 122, 110, 106, 110, 108, 116, 114, 108, 107, 106, 113, 108, 106, 109, 98, 129, 113, 117, 106, 106, 106, 124, 102, 94, 107, 120, 112, 104, 113, 103, 111, 112, 112, 110, 94, 110, 106, 111, 120, 106, 112, 105, 105, 109, 110, 115, 116, 104, 120, 97, 102, 106, 106, 105, 90, 114, 102, 115, 103, 105, 108, 95, 105, 105, 106, 107, 111, 109, 113, 104, 103, 117, 101, 130, 109, 118, 108, 112, 110, 115, 116, 112, 114, 119, 113, 112, 113, 106, 118, 107, 105, 104, 121, 106, 95, 113, 109, 116, 106, 103, 113, 109, 111, 106, 111, 112, 109, 100, 109, 107, 101, 117, 118, 112, 105, 109, 109, 113, 118, 108, 105, 101, 116, 109, 105, 105, 125, 111, 116, 102, 107, 105, 115, 114, 117, 119, 117, 106, 107, 101, 105, 105, 119, 95, 111, 104, 122, 112, 111, 105, 105, 104, 99, 135, 113, 117, 109, 108, 110, 104, 126, 114, 116, 105, 109, 106, 111, 115, 114, 107, 114, 98, 106, 111, 109, 114, 111, 106, 112, 107, 114, 111, 101, 113, 106, 110, 108, 125, 106, 107, 101, 106, 145, 109, 117, 110, 122, 134, 105, 107, 101, 109, 111, 106, 99, 107, 109, 108, 106, 112, 110, 110, 106, 108, 105, 105, 96, 112, 109, 112, 111, 103, 114, 104, 110, 115, 107, 110, 109, 113, 104, 110, 131, 112, 115, 107, 113, 111, 109, 121, 116, 111, 107, 107, 121, 110, 113, 115, 110, 107, 114, 102, 109, 99, 107, 117, 111, 130, 100, 113, 110, 122, 115, 98, 122, 121, 100, 116, 119, 104, 100, 119, 108, 113, 103, 109, 114, 121, 111, 112, 102, 111, 95, 142, 108, 111, 106, 115, 108, 92, 107, 111, 121, 105, 104, 111, 105, 109, 112, 109, 107, 109, 109, 113, 106, 103, 109, 110, 106, 109, 123, 111, 112, 114, 100, 106, 107, 119, 108, 110, 111, 117, 109, 112, 116, 99, 110, 113, 111, 106, 105, 106, 108, 106, 109, 105, 102, 115, 101, 110, 116, 112, 106, 109, 111, 108, 103, 113, 108, 111, 108, 111, 111, 112, 107, 113, 106, 112, 114, 106, 111, 108, 121, 108, 100, 116, 114, 110, 108, 112, 106, 110, 108, 105, 111, 113, 102, 110, 110, 115, 111, 109, 106, 104, 99, 109, 105, 113, 121, 105, 96, 111, 110, 99, 106, 108, 116, 110, 105, 111, 116, 112, 113, 111, 98, 120, 113, 106, 107, 112, 117, 113, 110, 105, 111, 105, 113, 109, 110, 110, 102, 107, 110, 118, 109, 104, 110, 109, 111, 108, 114, 112, 112, 108, 111, 121, 114, 109, 114, 113, 111, 110, 108, 117, 115, 112, 113, 109, 104, 101, 120, 104, 105, 108, 107, 107, 107, 107, 112, 125, 110, 107, 113, 109, 106, 108, 100, 108, 98, 110, 115, 112, 111, 113, 110, 103, 109, 109, 111, 106, 114, 117, 103, 126, 113, 112, 113, 114, 99, 127, 113, 112, 113, 105, 104, 112, 113, 107, 109, 104, 109, 109, 99, 105, 105, 116, 106, 111, 110, 107, 121, 105, 107, 110, 105, 111, 125, 105, 109, 104, 100, 105, 104, 107, 113, 108, 107, 114, 112, 110, 111, 110, 112, 117, 120, 109, 105, 110, 103, 108, 112, 108, 104, 112, 111, 104, 111, 107, 112, 109, 110, 122, 107, 117, 109, 105, 106, 114, 110, 117, 117, 109, 116, 109, 108, 122, 123, 99, 101, 107, 108, 112, 120, 114, 105, 110, 118, 111, 88, 121, 102, 128, 106, 125, 112, 118, 103, 105, 109, 105, 104, 96, 106, 119, 115, 112, 110, 106, 108, 111, 104, 106, 110, 110, 108, 123, 113, 116, 103, 115, 108, 111, 108, 99, 107, 106, 104, 109, 105, 104, 119, 109, 106, 127, 102, 98, 103, 114, 105, 108, 112, 112, 109, 109, 108, 111, 110, 117, 102, 104, 105, 97, 100, 112, 109, 115, 99, 113, 122, 109, 101, 104, 112, 112, 112, 112, 114, 122, 115, 121, 108, 114, 108, 106, 111, 107, 109, 112, 109, 109, 127, 112, 116, 112, 113, 115, 114, 102, 102, 105, 109, 103, 108, 106, 122, 119, 101, 113, 108, 113, 109, 115, 111, 110, 106, 108, 112, 107, 118, 113, 120, 111, 121, 116, 131, 103, 104, 117, 111, 115, 115, 111, 109, 97, 102, 114, 99, 102, 112, 112, 105, 100, 114, 107, 109, 113, 108, 104, 109, 110, 114, 108, 104, 111, 113, 122, 112, 113, 110, 107, 111, 115, 112, 110, 104, 114, 107, 120, 105, 114, 105, 103, 112, 108, 120, 110, 107, 111, 110, 106, 111, 110, 110, 109, 106, 121, 98, 106, 108, 111, 112, 108, 109, 110, 101, 111, 108, 112, 108, 113, 109, 120, 108, 108, 101, 111, 118, 115, 117, 112, 120, 110, 102, 96, 103, 112, 108, 106, 124, 110, 122, 119, 117, 115, 119, 107, 116, 113, 118, 102, 115, 102, 112, 108, 118, 86, 101, 107, 114, 106, 117, 110, 119, 113, 97, 93, 112, 113, 106, 103, 110, 106, 115, 117, 106, 111, 109, 97, 105, 110, 118, 112, 117, 116, 98, 120, 73, 109, 118, 94, 118, 107, 106, 112, 114, 120, 102, 129, 104, 110, 93, 103, 115, 105, 105, 108, 106, 109, 119, 115, 110, 108, 112, 102, 112, 102, 113, 114, 108, 117, 104, 108, 113, 112, 121, 108, 111, 108, 106, 111, 107, 105, 124, 119, 117, 118, 95, 101, 113, 100, 109, 110, 101, 95, 113, 113, 98, 113, 113, 120, 105, 110, 117, 106, 100, 104, 92, 110, 104, 105, 117, 118, 111, 106, 105, 109, 111, 111, 101, 107, 115, 94, 119, 112, 115, 112, 111, 110, 109, 115, 102, 114, 123, 115, 99, 108, 115, 121, 106, 103, 106, 115, 118, 111, 121, 114, 109, 105, 98, 116, 97, 121, 119, 107, 105, 112, 112, 107, 109, 111, 113, 125, 105, 112, 97, 107, 110, 90, 118, 113, 109, 115, 121, 103, 120, 105, 119, 104, 94, 101, 104, 118, 113, 92, 103, 114, 89, 109, 109, 113, 130, 119, 113, 105, 119, 110, 106, 101, 108, 99, 112, 116, 84, 98, 108, 115, 110, 106, 118, 116, 109, 117, 110, 106, 113, 91, 108, 105, 113, 119, 105, 114, 112, 117, 120, 97, 106, 119, 114, 119, 97, 108, 119, 106, 102, 100, 114, 106, 115, 102, 118, 117, 113, 117, 105, 100, 117, 97, 104, 121, 119, 104, 112, 101, 106, 113, 107, 100, 103, 117, 119, 112, 111, 117, 106, 103, 113, 113, 111, 107, 103, 122, 112, 109, 114, 112, 107, 108, 109, 100, 111, 106, 103, 109, 114, 121, 112, 117, 100, 101, 117, 113, 115, 107, 117, 113, 102, 112, 108, 107, 121, 102, 120, 106, 118, 105, 100, 120, 116, 121, 112, 111, 130, 153, 120, 107, 106, 122, 111, 110, 116, 101, 100, 108, 117, 109, 89, 109, 108, 105, 115, 114, 124, 114, 105, 108, 118, 119, 91, 111, 119, 110, 120, 119, 116, 111, 97, 111, 111, 121, 98, 104, 110, 100, 110, 109, 104, 110, 105, 113, 124, 89, 113, 102, 108, 106, 120, 111, 113, 108, 100, 108, 111, 105, 112, 101, 116, 89, 117, 119, 116, 104, 107, 125, 103, 110, 116, 110, 120, 115, 114, 114, 104, 100, 112, 106, 115, 105, 111, 119, 111, 103, 112, 112, 116, 114, 101, 112, 114, 114, 106, 112, 104, 113, 105, 108, 108, 100, 117, 110, 112, 117, 127, 126, 113, 103, 119, 101, 104, 112, 109, 116, 107, 99, 110, 108, 118, 122, 110, 112, 111, 116, 109, 107, 125, 104, 103, 110, 110, 116, 109, 115, 119, 108, 116, 116, 104, 112, 105, 114, 113, 111, 103, 111, 129, 112, 112, 112, 114, 115, 112, 117, 112, 104, 115, 115, 118, 115, 111, 111, 115, 108, 107, 101, 106, 115, 107, 121, 117, 113, 106, 108, 119, 112, 104, 106, 97, 122, 111, 114, 133, 109, 113, 102, 109, 110, 107, 107, 111, 107, 102, 109, 112, 115, 105, 117, 109, 108, 106, 116, 103, 109, 101, 106, 102, 108, 104, 113, 107, 114, 102, 102, 110, 105, 107, 111, 104, 88, 123, 110, 123, 111, 108, 117, 108, 110, 106, 98, 114, 103, 106, 101, 116, 98, 110, 107, 106, 106, 107, 120, 108, 110, 116, 108, 107, 119, 111, 101, 111, 120, 103, 104, 138, 110, 103, 126, 117, 108, 107, 117, 98, 120, 97, 112, 109, 95, 103, 129, 105, 99, 113, 114, 112, 112, 106, 103, 108, 97, 108, 115, 107, 117, 106, 114, 109, 118, 123, 108, 113, 106, 101, 120, 105, 106, 118, 130, 116, 105, 94, 101, 105, 107, 119, 99, 103, 115, 96, 117, 121, 106, 103, 122, 112, 123, 108, 108, 104, 111, 100, 110, 109, 95, 115, 110, 110, 118, 106, 105, 115, 110, 106, 108, 110, 121, 115, 119, 105, 97, 111, 110, 105, 121, 105, 120, 114, 108, 111, 99, 110, 104, 112, 109, 107, 122, 101, 113, 105, 112, 106, 116, 114, 109, 125, 131, 120, 125, 104, 115, 97, 107, 109, 102, 101, 99, 109, 92, 102, 98, 110, 103, 109, 102, 99, 99, 103, 110, 109, 104, 105, 110, 100, 107, 107, 100, 110, 110, 98, 99, 109, 103, 103, 96, 109, 105, 108, 114, 106, 106, 101, 103, 111, 104, 120, 117, 113, 99, 117, 103, 121, 105, 116, 109, 100, 102, 103, 105, 100, 111, 119, 108, 115, 105, 116, 103, 112, 127, 111, 109, 118, 107, 114, 124, 117, 108, 112, 105, 109, 124, 101, 110, 112, 109, 97, 99, 100, 109, 105, 112, 102, 109, 86, 116, 102, 122, 111, 103, 117, 100, 100, 94, 114, 111, 110, 108, 109, 120, 112, 116, 120, 95, 96, 118, 101, 115, 103, 122, 119, 101, 106, 111, 112, 107, 100, 119, 101, 106, 106, 116, 112, 109, 123, 115, 109, 100, 115, 107, 97, 104, 89, 108, 102, 102, 111, 109, 108, 118, 102, 107, 100, 93, 94, 107, 109, 94, 107, 114, 106, 108, 96, 118, 101, 104, 128, 112, 122, 114, 101, 110, 114, 104, 102, 108, 113, 111, 120, 96, 99, 108, 103, 98, 124, 111, 124, 99, 106, 113, 95, 109, 112, 88, 100, 125, 105, 116, 123, 113, 111, 113, 111, 111, 113, 108, 115, 120, 109, 158, 108, 107, 109, 107, 102, 104, 122, 120, 111, 106, 110, 112, 111, 123, 112, 111, 120, 104, 98, 119, 120, 111, 125, 104, 117, 122, 95, 119, 106, 104, 109, 100, 104, 108, 98, 101, 114, 106, 107, 102, 110, 112, 108, 104, 101, 105, 125, 105, 102, 108, 110, 103, 103, 102, 100, 112, 111, 108, 114, 101, 109, 118, 99, 105, 108, 112, 110, 122, 111, 108, 92, 116, 109, 123, 99, 110, 111, 105, 98, 107, 115, 98, 109, 130, 87, 118, 104, 120, 116, 111, 97, 120, 97, 100, 124, 114, 109, 112, 106, 100, 113, 109, 108, 106, 117, 143, 116, 110, 112, 113, 98, 107, 106, 116, 107, 109, 112, 102, 130, 124, 110, 106, 111, 107, 110, 108, 115, 108, 104, 104, 102, 108, 111, 105, 104, 108, 108, 115, 123, 120, 101, 116, 105, 106, 108, 100, 105, 106, 114, 106, 124, 109, 106, 136, 102, 103, 116, 112, 116, 115, 107, 108, 105, 97, 114, 106, 97, 103, 119, 115, 110, 107, 108, 105, 104, 109, 108, 111, 113, 113, 117, 107, 113, 105, 116, 105, 106, 100, 115, 108, 117, 102, 100, 120, 106, 112, 92, 111, 100, 121, 100, 120, 116, 105, 110, 115, 110, 106, 106, 109, 103, 109, 108, 111, 112, 101, 110, 108, 109, 105, 99, 115, 114, 115, 112, 113, 107, 118, 116, 119, 115, 112, 107, 117, 102, 112, 108, 108, 111, 109, 120, 89, 115, 105, 115, 118, 90, 105, 110, 110, 104, 113, 111, 115, 113, 106, 113, 123, 95, 98, 106, 115, 111, 107, 103, 105, 102, 106, 113, 112, 110, 111, 117, 116, 114, 117, 112, 108, 109, 103, 107, 107, 101, 108, 108, 110, 103, 115, 147, 110, 106, 123, 111, 109, 115, 110, 114, 113, 115, 105, 113, 108, 117, 114, 130, 117, 103, 107, 114, 108, 105, 121, 101, 106, 114, 100, 126, 114, 105, 109, 80, 109, 113, 116, 101, 109, 101, 103, 108, 125, 107, 110, 116, 102, 107, 104, 113, 96, 131, 116, 111, 111, 106, 110, 122, 107, 113, 111, 117, 97, 111, 107, 116, 110, 97, 103, 103, 112, 123, 108, 120, 108, 109, 116, 109, 110, 107, 115, 111, 104, 113, 109, 109, 115, 109, 106, 101, 116, 113, 115, 115, 105, 111, 106, 107, 105, 106, 106, 103, 109, 108, 107, 113, 113, 119, 115, 109, 105, 101, 101, 125, 114, 101, 104, 105, 104, 112, 109, 116, 104, 110, 115, 102, 121, 108, 100, 111, 119, 108, 110, 112, 115, 108, 116, 111, 110, 113, 113, 109, 114, 107, 106, 109, 105, 117, 113, 142, 110, 107, 106, 103, 109, 103, 114, 123, 107, 109, 113, 107, 104, 113, 116, 102, 111, 109, 105, 103, 112, 109, 106, 108, 113, 119, 103, 119, 111, 110, 114, 114, 106, 112, 113, 108, 113, 106, 108, 96, 109, 120, 108, 119, 100, 119, 109, 97, 99, 113, 109, 102, 110, 97, 109, 110, 115, 107, 91, 120, 112, 108, 115, 120, 109, 128, 91, 103, 107, 102, 119, 105, 114, 120, 110, 110, 117, 113, 96, 120, 106, 104, 104, 108, 108, 115, 115, 111, 97, 110, 114, 111, 111, 117, 100, 110, 105, 103, 104, 101, 113, 112, 110, 112, 110, 107, 98, 106, 114, 116, 107, 97, 102, 112, 113, 114, 103, 115, 110, 104, 113, 111, 109, 112, 113, 114, 121, 106, 98, 107, 114, 103, 109, 118, 109, 109, 103, 111, 106, 106, 104, 109, 115, 115, 110, 111, 108, 119, 116, 126, 110, 111, 117, 112, 104, 111, 110, 102, 119, 117, 114, 113, 105, 108, 108, 108, 120, 112, 107, 107, 113, 112, 116, 114, 118, 107, 108, 112, 105, 108, 105, 110, 109, 113, 107, 105, 111, 105, 108, 107, 105, 118, 106, 108, 93, 110, 109, 109, 99, 112, 102, 111, 116, 108, 114, 106, 122, 106, 113, 99, 108, 116, 95, 117, 100, 116, 105, 101, 99, 109, 115, 117, 103, 109, 111, 112, 108, 110, 94, 120, 100, 125, 107, 118, 102, 102, 105, 111, 111, 114, 110, 106, 109, 100, 107, 116, 92, 118, 104, 101, 104, 107, 114, 110, 108, 123, 109, 98, 99, 103, 111, 121, 109, 106, 117, 112, 95, 105, 115, 100, 106, 116, 124, 105, 96, 101, 101, 109, 107, 107, 112, 98, 114, 105, 105, 115, 108, 103, 116, 110, 112, 104, 132, 118, 107, 117, 108, 115, 130, 102, 107, 112, 115, 116, 99, 106, 105, 117, 107, 118, 102, 112, 105, 104, 104, 99, 114, 101, 115, 114, 104, 116, 113, 120, 114, 101, 109, 133, 127, 112, 113, 105, 118, 114, 109, 94, 120, 103, 117, 105, 127, 98, 95, 110, 114, 109, 115, 104, 104, 96, 110, 111, 117, 110, 113, 121, 98, 103, 103, 109, 107, 109, 114, 118, 110, 101, 107, 98, 103, 94, 106, 112, 122, 108, 108, 101, 116, 120, 104, 116, 103, 98, 122, 107, 121, 112, 119, 104, 106, 105, 106, 99, 104, 111, 112, 125, 104, 113, 113, 98, 120, 110, 101, 120, 118, 117, 102, 108, 110, 102, 101, 125, 139, 116, 111, 106, 97, 105, 114, 92, 102, 110, 104, 103, 122, 101, 103, 107, 103, 98, 107, 114, 115, 119, 102, 104, 107, 103, 109, 113, 110, 100, 111, 119, 107, 114, 111, 107, 108, 114, 104, 120, 107, 102, 112, 117, 104, 115, 97, 111, 115, 120, 108, 127, 108, 111, 103, 98, 105, 102, 115, 105, 110, 98, 117, 121, 115, 102, 101, 111, 114, 105, 102, 110, 111, 121, 103, 110, 117, 108, 121, 109, 118, 109, 102, 106, 103, 109, 100, 116, 116, 113, 122, 113, 116, 102, 102, 106, 113, 108, 101, 109, 115, 114, 125, 98, 107, 106, 103, 97, 105, 118, 106, 102, 110, 105, 105, 97, 107, 112, 112, 109, 110, 104, 93, 102, 105, 110, 104, 115, 99, 117, 99, 112, 108, 113, 106, 97, 106, 107, 116, 121, 115, 111, 106, 98, 102, 104, 113, 104, 104, 113, 92, 113, 107, 106, 119, 108, 108, 115, 126, 106, 107, 112, 104, 119, 90, 116, 112, 107, 98, 113, 114, 113, 107, 111, 107, 106, 124, 114, 113, 112, 113, 100, 109, 116, 103, 113, 100, 113, 124, 108, 107, 119, 137, 105, 106, 115, 111, 110, 112, 109, 107, 122, 111, 116, 115, 108, 116, 110, 105, 113, 114, 114, 105, 107, 112, 101, 113, 105, 111, 93, 105, 116, 114, 91, 111, 111, 109, 106, 97, 100, 130, 100, 107, 110, 106, 108, 105, 112, 105, 106, 105, 107, 113, 101, 119, 122, 110, 113, 108, 101, 117, 114, 111, 103, 106, 130, 105, 106, 96, 114, 116, 109, 113, 108, 112, 105, 113, 101, 126, 116, 112, 114, 102, 120, 99, 100, 115, 109, 114, 101, 101, 109, 127, 95, 114, 105, 121, 99, 102, 106, 105, 96, 106, 101, 110, 113, 113, 99, 96, 112, 114, 116, 109, 102, 106, 105, 117, 104, 112, 115, 111, 118, 110, 112, 106, 119, 109, 109, 102, 128, 110, 113, 108, 110, 109, 123, 115, 116, 109, 111, 101, 110, 110, 104, 108, 97, 102, 115, 104, 107, 116, 103, 105, 107, 110, 103, 99, 113, 109, 114, 111, 111, 105, 123, 111, 123, 111, 100, 109, 109, 108, 121, 112, 110, 113, 115, 117, 121, 114, 110, 123, 103, 119, 119, 102, 108, 116, 116, 115, 100, 116, 119, 121, 112, 114, 100, 104, 105, 107, 106, 117, 106, 111, 110, 105, 136, 114, 110, 134, 98, 105, 116, 109, 123, 114, 114, 103, 115, 114, 101, 106, 106, 106, 104, 103, 111, 94, 103, 113, 103, 102, 102, 113, 110, 113, 105, 111, 96, 108, 115, 116, 99, 105, 114, 110, 116, 107, 105, 107, 105, 98, 115, 104, 111, 115, 96, 111, 114, 107, 109, 107, 117, 115, 116, 105, 109, 99, 111, 114, 106, 106, 109, 107, 93, 109, 97, 110, 102, 112, 106, 113, 108, 104, 101, 107, 105, 109, 114, 110, 97, 100, 108, 118, 98, 105, 117, 98, 97, 99, 103, 103, 101, 105, 102, 103, 100, 100, 110, 112, 102, 110, 103, 109, 113, 102, 107, 102, 110, 108, 109, 109, 99, 113, 112, 104, 106, 102, 122, 110, 109, 113, 117, 111, 113, 112, 102, 109, 113, 112, 111, 103, 109, 114, 104, 99, 110, 111, 123, 113, 101, 112, 105, 120, 105, 110, 110, 113, 124, 112, 111, 107, 112, 108, 113, 103, 112, 111, 115, 115, 109, 121, 103, 108, 109, 108, 102, 113, 110, 104, 101, 110, 126, 115, 110, 118, 104, 107, 108, 108, 105, 96, 112, 109, 120, 107, 105, 118, 99, 122, 107, 101, 106, 108, 102, 108, 95, 110, 121, 109, 107, 115, 124, 109, 115, 115, 116, 101, 106, 111, 105, 103, 107, 107, 115, 111, 101, 104, 108, 98, 114, 107, 98, 111, 114, 106, 122, 115, 103, 112, 111, 111, 108, 106, 109, 105, 120, 103, 117, 105, 106, 103, 110, 115, 117, 125, 111, 121, 108, 119, 108, 108, 111, 106, 114, 114, 103, 108, 110, 103, 100, 106, 110, 109, 112, 108, 108, 108, 102, 119, 112, 123, 96, 106, 106, 117, 112, 100, 100, 109, 102, 103, 104, 117, 108, 121, 110, 131, 114, 105, 110, 110, 113, 134, 104, 109, 110, 105, 109, 119, 119, 113, 110, 111, 122, 101, 103, 97, 110, 110, 144, 100, 109, 114, 108, 102, 117, 109, 114, 100, 122, 118, 106, 122, 124, 117, 107, 108, 109, 104, 115, 111, 105, 109, 114, 101, 109, 113, 106, 103, 116, 106, 100, 98, 100, 108, 112, 90, 109, 105, 99, 108, 109, 94, 110, 110, 116, 122, 98, 108, 102, 112, 115, 107, 109, 102, 102, 115, 116, 121, 117, 102, 132, 115, 120, 106, 111, 110, 108, 90, 108, 100, 113, 111, 106, 101, 105, 102, 103, 114, 103, 103, 111, 108, 116, 110, 118, 112, 110, 101, 98, 107, 105, 106, 105, 103, 115, 110, 104, 101, 107, 114, 105, 107, 101, 110, 116, 106, 107, 105, 120, 113, 107, 115, 114, 110, 104, 108, 111, 112, 113, 115, 112, 107, 97, 114, 111, 99, 111, 115, 110, 97, 112, 108, 124, 108, 107, 114, 112, 124, 105, 106, 109, 115, 109, 105, 104, 106, 109, 109, 111, 111, 114, 111, 102, 114, 109, 108, 110, 109, 111, 106, 112, 107, 113, 103, 116, 110, 113, 116, 101, 105, 106, 104, 117, 95, 108, 109, 104, 106, 104, 120, 111, 110, 97, 111, 116, 109, 112, 111, 107, 109, 109, 97, 113, 112, 116, 114, 106, 114, 117, 102, 101, 107, 114, 110, 94, 109, 117, 98, 112, 98, 103, 110, 107, 112, 122, 100, 112, 105, 102, 116, 113, 107, 109, 110, 122, 107, 109, 107, 107, 103, 116, 106, 107, 118, 96, 112, 109, 110, 108, 99, 107, 111, 108, 123, 102, 113, 107, 110, 109, 110, 116, 110, 109, 108, 103, 105, 112, 114, 113, 113, 108, 109, 99, 115, 122, 128, 110, 114, 114, 104, 107, 112, 109, 120, 127, 110, 106, 111, 110, 111, 113, 113, 104, 112, 107, 106, 112, 113, 116, 107, 106, 101, 120, 111, 101, 111, 109, 112, 111, 101, 115, 111, 108, 108, 101, 108, 114, 106, 112, 114, 117, 108, 102, 94, 103, 113, 113, 94, 113, 110, 113, 111, 106, 108, 110, 105, 121, 109, 103, 105, 106, 105, 105, 100, 105, 97, 124, 101, 105, 100, 124, 110, 122, 103, 109, 104, 104, 112, 112, 119, 118, 109, 115, 117, 111, 107, 113, 114, 107, 109, 106, 113, 111, 105, 99, 112, 107, 104, 103, 108, 115, 109, 96, 105, 108, 107, 106, 115, 114, 106, 98, 101, 103, 113, 110, 111, 107, 105, 112, 105, 104, 101, 103, 107, 103, 111, 106, 114, 115, 112, 111, 111, 101, 113, 97, 99, 112, 108, 113, 105, 113, 114, 123, 111, 111, 112, 108, 107, 104, 104, 116, 114, 109, 102, 111, 98, 114, 109, 105, 106, 112, 110, 106, 105, 107, 119, 101, 117, 110, 104, 109, 112, 108, 106, 103, 112, 109, 107, 110, 103, 102, 103, 111, 105, 110, 101, 122, 99, 103, 101, 101, 117, 117, 106, 117, 108, 114, 107, 110, 109, 106, 96, 111, 111, 110, 113, 122, 113, 116, 117, 99, 108, 107, 107, 116, 110, 105, 120, 116, 115, 105, 111, 112, 106, 109, 105, 100, 111, 107, 108, 106, 100, 102, 117, 125, 105, 103, 102, 110, 112, 99, 113, 111, 110, 116, 125, 109, 103, 112, 112, 108, 106, 96, 123, 109, 111, 112, 110, 110, 107, 111, 111, 99, 110, 108, 117, 104, 114, 109, 112, 116, 108, 107, 107, 114, 110, 112, 97, 109, 111, 105, 115, 108, 122, 106, 111, 105, 111, 111, 114, 114, 113, 112, 109, 98, 110, 108, 112, 108, 106, 108, 135, 115, 109, 103, 114, 112, 107, 110, 119, 107, 107, 114, 110, 127, 111, 99, 105, 113, 111, 102, 111, 101, 122, 103, 110, 109, 117, 115, 112, 110, 103, 112, 113, 115, 116, 102, 105, 114, 127, 116, 99, 108, 109, 121, 113, 111, 109, 116, 109, 119, 120, 111, 116, 114, 110, 113, 104, 110, 104, 121, 108, 109, 103, 95, 97, 117, 131, 103, 111, 121, 103, 94, 125, 127, 110, 104, 91, 108, 118, 101, 110, 109, 102, 105, 111, 102, 112, 113, 102, 118, 105, 96, 107, 111, 110, 114, 110, 105, 114, 102, 112, 110, 107, 112, 125, 112, 124, 118, 117, 98, 113, 105, 102, 118, 102, 109, 108, 104, 110, 97, 107, 110, 114, 112, 115, 99, 102, 100, 105, 103, 100, 117, 102, 109, 102, 112, 112, 116, 110, 101, 89, 99, 124, 101, 109, 120, 104, 107, 122, 103, 114, 114, 109, 99, 115, 118, 108, 109, 118, 117, 104, 111, 121, 114, 117, 115, 122, 117, 111, 107, 101, 102, 112, 96, 114, 112, 123, 108, 115, 106, 120, 106, 114, 106, 104, 110, 103, 103, 114, 110, 104, 108, 113, 116, 103, 120, 118, 98, 117, 98, 101, 106, 111, 114, 103, 104, 107, 118, 102, 108, 112, 108, 116, 105, 109, 107, 112, 117, 108, 105, 111, 100, 109, 104, 124, 102, 113, 113, 106, 107, 107, 105, 114, 99, 87, 107, 113, 105, 109, 112, 107, 101, 93, 111, 113, 104, 102, 113, 106, 109, 114, 110, 111, 113, 112, 103, 120, 105, 105, 115, 125, 111, 90, 114, 110, 99, 108, 105, 124, 116, 104, 112, 112, 101, 107, 110, 114, 119, 113, 115, 121, 112, 103, 106, 116, 106, 100, 108, 117, 113, 113, 105, 111, 107, 111, 113, 104, 112, 116, 117, 123, 109, 117, 110, 113, 118, 99, 113, 124, 106, 119, 115, 116, 113, 113, 100, 114, 98, 123, 112, 109, 102, 110, 111, 102, 110, 119, 112, 109, 99, 118, 106, 91, 101, 109, 104, 86, 104, 109, 111, 112, 111, 104, 110, 102, 138, 109, 101, 116, 111, 115, 105, 103, 106, 107, 108, 102, 105, 107, 110, 104, 117, 112, 110, 111, 106, 109, 115, 114, 116, 107, 111, 114, 113, 114, 115, 115, 110, 113, 100, 111, 112, 118, 110, 116, 104, 109, 107, 125, 101, 120, 105, 102, 116, 102, 108, 115, 110, 108, 116, 114, 120, 107, 128, 102, 101, 113, 128, 125, 108, 105, 112, 105, 103, 98, 117, 103, 111, 103, 98, 107, 105, 104, 110, 116, 102, 119, 108, 107, 109, 102, 111, 106, 114, 113, 109, 122, 110, 102, 120, 96, 109, 116, 110, 106, 110, 97, 117, 107, 127, 125, 108, 110, 110, 113, 117, 114, 110, 110, 112, 107, 108, 116, 112, 121, 116, 104, 114, 103, 106, 110, 111, 113, 111, 95, 125, 107, 115, 105, 115, 113, 113, 97, 111, 121, 111, 117, 103, 113, 114, 103, 114, 99, 106, 98, 125, 126, 107, 113, 117, 116, 99, 96, 111, 107, 107, 109, 107, 107, 105, 117, 109, 112, 109, 103, 115, 119, 103, 124, 109, 100, 109, 117, 108, 114, 106, 109, 106, 116, 114, 112, 115, 112, 100, 108, 100, 108, 107, 112, 114, 113, 111, 99, 114, 111, 112, 128, 122, 116, 108, 108, 107, 109, 111, 109, 113, 112, 114, 106, 110, 111, 122, 113, 114, 115, 106, 113, 103, 106, 108, 112, 116, 104, 114, 103, 114, 105, 118, 110, 107, 104, 100, 108, 106, 105, 107, 103, 110, 103, 111, 101, 107, 111, 108, 107, 111, 115, 109, 108, 99, 113, 111, 106, 112, 109, 99, 103, 113, 108, 113, 104, 111, 114, 113, 106, 108, 116, 107, 111, 117, 108, 110, 111, 97, 108, 109, 111, 124, 110, 100, 109, 111, 103, 112, 104, 116, 110, 110, 113, 109, 107, 102, 115, 101, 109, 103, 104, 107, 99, 102, 112, 100, 103, 104, 111, 118, 113, 114, 106, 118, 123, 111, 112, 108, 113, 110, 108, 111, 117, 108, 100, 109, 111, 125, 108, 102, 114, 99, 110, 110, 112, 114, 110, 113, 105, 116, 115, 98, 114, 102, 106, 111, 112, 110, 105, 108, 110, 108, 99, 99, 112, 107, 99, 113, 107, 112, 106, 114, 110, 110, 107, 111, 100, 109, 111, 105, 109, 137, 107, 108, 102, 105, 114, 112, 108, 106, 110, 97, 110, 107, 116, 113, 103, 113, 106, 109, 117, 107, 107, 106, 120, 107, 113, 120, 123, 110, 104, 111, 110, 98, 112, 112, 103, 110, 110, 110, 104, 110, 105, 110, 102, 105, 108, 106, 116, 106, 104, 111, 115, 112, 111, 110, 112, 115, 100, 114, 104, 105, 145, 108, 119, 108, 110, 104, 105, 129, 110, 97, 106, 113, 114, 115, 113, 118, 105, 107, 109, 110, 92, 108, 120, 106, 107, 110, 121, 102, 114, 120, 111, 107, 109, 115, 100, 109, 110, 102, 111, 107, 108, 120, 106, 111, 105, 100, 117, 105, 113, 106, 117, 129, 111, 106, 121, 125, 104, 111, 110, 108, 110, 103, 114, 110, 104, 110, 101, 106, 116, 106, 110, 105, 116, 112, 105, 97, 113, 114, 107, 110, 111, 111, 110, 113, 108, 105, 119, 101, 111, 108, 117, 102, 109, 113, 112, 103, 111, 122, 108, 113, 111, 110, 110, 103, 105, 117, 103, 111, 117, 110, 112, 115, 109, 108, 109, 171, 104, 110, 109, 110, 116, 103, 102, 108, 117, 109, 102, 106, 113, 108, 111, 111, 110, 107, 110, 101, 109, 105, 112, 111, 113, 94, 111, 111, 106, 108, 105, 109, 98, 106, 107, 113, 111, 123, 106, 111, 108, 107, 111, 107, 112, 116, 103, 115, 105, 111, 109, 122, 112, 109, 100, 111, 112, 106, 96, 110, 101, 103, 110, 111, 102, 109, 104, 108, 107, 116, 111, 127, 113, 109, 112, 122, 99, 110, 114, 108, 109, 117, 117, 109, 110, 104, 112, 105, 107, 112, 109, 104, 106, 106, 105, 111, 114, 110, 113, 104, 112, 103, 104, 110, 107, 111, 113, 111, 107, 123, 109, 105, 113, 111, 110, 104, 112, 112, 119, 108, 109, 108, 107, 110, 114, 113, 109, 104, 116, 113, 115, 108, 113, 107, 90, 118, 111, 109, 117, 112, 109, 111, 109, 113, 101, 129, 112, 106, 105, 117, 108, 107, 109, 112, 111, 111, 105, 114, 108, 114, 113, 111, 110, 115, 111, 112, 103, 112, 114, 116, 105, 112, 106, 114, 108, 115, 112, 115, 110, 118, 113, 116, 113, 112, 113, 115, 107, 110, 109, 111, 104, 119, 104, 114, 112, 111, 114, 115, 114, 107, 122, 110, 111, 107, 112, 125, 109, 112, 111, 113, 112, 109, 115, 121, 110, 110, 109, 111, 121, 113, 112, 109, 111, 110, 111, 109, 112, 111, 110, 109, 113, 122, 111, 107, 118, 108, 113, 107, 108, 115, 95, 117, 111, 110, 113, 101, 114, 110, 101, 110, 105, 112, 111, 112, 111, 104, 109, 114, 111, 102, 109, 114, 78, 104, 106, 113, 110, 101, 108, 110, 106, 105, 108, 106, 112, 114, 106, 109, 112, 116, 111, 114, 107, 116, 112, 117, 102, 110, 113, 108, 107, 108, 110, 107, 116, 105, 115, 113, 109, 104, 105, 108, 108, 98, 114, 85, 112, 107, 107, 107, 114, 117, 107, 111, 111, 114, 111, 103, 110, 104, 104, 104, 111, 107, 112, 106, 111, 106, 109, 115, 105, 114, 110, 105, 105, 113, 114, 99, 110, 112, 116, 104, 115, 110, 104, 114, 113, 116, 103, 113, 109, 104, 105, 110, 113, 100, 114, 108, 113, 113, 106, 130, 125, 131, 111, 116, 113, 102, 109, 108, 108, 105, 114, 111, 96, 113, 109, 114, 111, 111, 119, 113, 114, 105, 105, 112, 108, 113, 110, 111, 106, 116, 106, 110, 102, 107, 112, 112, 111, 110, 111, 94, 104, 108, 111, 113, 108, 118, 112, 108, 110, 111, 116, 107, 110, 112, 92, 112, 112, 111, 105, 111, 113, 114, 110, 107, 113, 108, 107, 106, 112, 114, 113, 108, 111, 110, 121, 105, 92, 116, 118, 112, 111, 106, 110, 104, 107, 114, 114, 106, 97, 110, 110, 108, 106, 111, 111, 114, 107, 109, 106, 112, 104, 113, 106, 114, 108, 105, 111, 113, 109, 110, 109, 101, 107, 114, 113, 108, 114, 105, 110, 105, 113, 114, 111, 109, 103, 110, 110, 108, 111, 106, 122, 114, 107, 112, 113, 107, 112, 108, 101, 114, 115, 113, 108, 108, 114, 113, 115, 112, 105, 109, 101, 115, 106, 114, 108, 105, 108, 110, 111, 104, 112, 115, 109, 113, 111, 110, 115, 110, 112, 109, 112, 112, 108, 102, 114, 109, 119, 111, 110, 108, 105, 111, 94, 111, 108, 112, 105, 114, 112, 111, 111, 114, 117, 109, 116, 110, 112, 105, 115, 114, 116, 128, 111, 102, 113, 112, 110, 109, 106, 107, 123, 104, 112, 115, 106, 107, 108, 112, 113, 108, 110, 107, 118, 110, 105, 106, 102, 103, 108, 114, 114, 114, 110, 109, 108, 107, 112, 114, 96, 109, 114, 110, 111, 104, 111, 124, 112, 119, 110, 112, 106, 113, 105, 86, 108, 107, 99, 109, 112, 106, 112, 107, 106, 112, 113, 109, 110, 110, 109, 111, 111, 110, 111, 110, 105, 117, 107, 110, 112, 110, 111, 104, 111, 106, 113, 109, 112, 107, 111, 114, 110, 114, 111, 109, 162, 112, 109, 113, 105, 113, 110, 111, 107, 110, 100, 111, 99, 117, 107, 108, 111, 114, 110, 111, 129, 112, 116, 109, 113, 111, 112, 112, 103, 113, 111, 104, 110, 110, 105, 107, 109, 109, 109, 108, 105, 116, 107, 113, 116, 117, 115, 104, 115, 116, 110, 106, 104, 112, 107, 111, 114, 110, 106, 112, 110, 124, 115, 106, 119, 121, 107, 108, 112, 121, 109, 109, 108, 102, 99, 106, 113, 110, 115, 104, 111, 111, 116, 115, 111, 108, 112, 112, 110, 104, 112, 110, 104, 108, 110, 109, 107, 109, 109, 97, 99, 110, 119, 110, 101, 113, 112, 113, 107, 108, 108, 118, 109, 112, 120, 111, 114, 103, 122, 102, 106, 109, 112, 113, 106, 113, 111, 107, 106, 114, 109, 109, 109, 109, 119, 107, 112, 114, 119, 112, 111, 113, 110, 109, 109, 118, 113, 95, 122, 101, 104, 105, 113, 122, 113, 107, 101, 115, 111, 114, 112, 110, 101, 104, 106, 111, 112, 110, 114, 110, 108, 109, 106, 100, 105, 102, 118, 67, 108, 116, 107, 105, 113, 113, 108, 111, 108, 110, 109, 112, 111, 105, 112, 108, 107, 106, 108, 117, 110, 107, 111, 90, 119, 111, 110, 109, 110, 106, 112, 106, 111, 103, 105, 115, 117, 109, 111, 100, 107, 81, 109, 118, 111, 132, 106, 106, 103, 111, 107, 117, 112, 118, 114, 107, 105, 105, 114, 101, 103, 106, 100, 112, 119, 112, 90, 100, 113, 110, 104, 111, 106, 110, 114, 111, 122, 110, 112, 148, 96, 122, 111, 108, 110, 113, 114, 102, 111, 113, 120, 114, 103, 112, 95, 102, 103, 116, 108, 119, 106, 113, 105, 101, 112, 110, 113, 111, 122, 109, 108, 106, 110, 108, 118, 103, 97, 133, 95, 107, 117, 112, 113, 118, 114, 118, 99, 107, 115, 114, 110, 113, 110, 113, 112, 108, 102, 113, 107, 99, 113, 106, 116, 112, 109, 117, 111, 124, 107, 112, 107, 101, 102, 112, 109, 109, 109, 108, 108, 94, 121, 98, 123, 116, 110, 106, 113, 110, 105, 109, 119, 114, 115, 111, 114, 112, 111, 123, 113, 107, 108, 114, 126, 108, 113, 114, 111, 105, 112, 98, 110, 107, 106, 122, 107, 106, 113, 104, 111, 106, 115, 111, 112, 105, 115, 91, 109, 104, 111, 114, 114, 109, 111, 112, 113, 117, 112, 113, 106, 116, 116, 119, 120, 109, 119, 109, 112, 99, 109, 114, 111, 113, 105, 110, 115, 106, 105, 112, 108, 110, 115, 117, 107, 110, 113, 111, 109, 117, 106, 112, 112, 113, 107, 108, 113, 107, 110, 111, 108, 103, 119, 112, 111, 104, 106, 118, 105, 109, 115, 106, 101, 101, 136, 114, 113, 107, 112, 108, 115, 108, 118, 114, 119, 108, 114, 93, 109, 102, 94, 115, 109, 108, 115, 104, 107, 107, 108, 123, 112, 126, 111, 105, 110, 108, 111, 113, 107, 109, 109, 112, 114, 110, 105, 107, 112, 97, 111, 114, 114, 114, 109, 98, 109, 119, 109, 116, 111, 100, 116, 103, 110, 105, 124, 111, 117, 94, 107, 104, 115, 107, 112, 102, 113, 111, 109, 110, 90, 96, 120, 112, 105, 105, 107, 104, 115, 115, 107, 115, 107, 97, 100, 118, 106, 125, 117, 115, 111, 118, 111, 110, 105, 115, 120, 106, 122, 116, 108, 109, 115, 107, 115, 114, 106, 124, 114, 112, 108, 111, 111, 114, 109, 99, 110, 110, 103, 108, 108, 109, 108, 108, 102, 120, 142, 103, 108, 97, 114, 116, 113, 101, 112, 111, 110, 98, 96, 104, 102, 117, 112, 106, 118, 110, 118, 101, 120, 135, 109, 112, 107, 119, 112, 125, 109, 104, 106, 121, 114, 111, 109, 118, 108, 110, 126, 115, 114, 112, 108, 107, 107, 105, 121, 111, 119, 105, 105, 120, 110, 111, 135, 108, 98, 107, 117, 111, 122, 113, 115, 117, 115, 111, 100, 120, 108, 102, 118, 112, 109, 115, 110, 107, 107, 103, 111, 106, 111, 109, 112, 116, 115, 115, 115, 110, 111, 109, 100, 111, 112, 115, 108, 104, 109, 104, 108, 106, 124, 95, 117, 100, 77, 115, 117, 121, 107, 112, 98, 116, 106, 120, 117, 111, 119, 129, 109, 115, 123, 114, 99, 112, 116, 108, 125, 107, 124, 111, 117, 107, 116, 115, 104, 121, 110, 107, 98, 132, 113, 109, 88, 116, 98, 104, 117, 111, 111, 86, 108, 117, 99, 116, 123, 105, 105, 104, 116, 120, 108, 100, 107, 106, 112, 109, 111, 105, 117, 112, 114, 121, 107, 117, 120, 103, 107, 116, 118, 120, 111, 117, 111, 107, 109, 112, 137, 83, 110, 106, 121, 111, 105, 99, 125, 102, 98, 113, 107, 114, 114, 103, 112, 115, 114, 107, 107, 125, 105, 98, 104, 110, 104, 119, 99, 112, 113, 112, 104, 100, 109, 114, 106, 110, 110, 119, 111, 103, 109, 116, 112, 111, 124, 111, 108, 113, 109, 113, 106, 112, 103, 107, 111, 105, 105, 124, 95, 111, 108, 94, 123, 119, 116, 100, 114, 112, 103, 112, 111, 123, 112, 117, 113, 152, 111, 102, 103, 118, 107, 113, 118, 100, 122, 104, 102, 124, 109, 100, 107, 106, 107, 117, 106, 100, 104, 104, 111, 109, 126, 116, 109, 127, 102, 116, 94, 101, 107, 119, 108, 129, 118, 109, 103, 106, 119, 111, 112, 106, 106, 99, 113, 109, 121, 101, 108, 102, 116, 115, 119, 109, 120, 113, 104, 102, 100, 110, 110, 103, 117, 105, 114, 103, 113, 119, 101, 117, 115, 101, 125, 102, 107, 110, 108, 100, 119, 98, 109, 97, 99, 109, 109, 105, 96, 117, 111, 110, 113, 112, 113, 121, 126, 131, 101, 103, 113, 106, 102, 107, 109, 105, 111, 107, 107, 123, 108, 117, 112, 113, 114, 110, 104, 117, 110, 108, 117, 114, 113, 126, 113, 119, 111, 115, 105, 113, 119, 111, 120, 145, 121, 94, 123, 111, 112, 111, 109, 90, 112, 124, 118, 128, 117, 108, 104, 111, 128, 106, 115, 105, 117, 118, 100, 120, 125, 118, 109, 109, 115, 99, 112, 111, 124, 125, 111, 110, 115, 113, 114, 112, 112, 104, 112, 106, 113, 105, 109, 117, 114, 117, 112, 116, 111, 96, 110, 107, 120, 95, 107, 109, 111, 104, 108, 112, 112, 110, 104, 109, 103, 105, 112, 110, 113, 108, 110, 110, 109, 116, 113, 109, 107, 111, 110, 114, 108, 111, 110, 113, 112, 109, 111, 113, 108, 112, 113, 107, 106, 107, 113, 104, 112, 104, 107, 110, 113, 116, 112, 112, 112, 112, 109, 114, 110, 112, 111, 107, 112, 110, 113, 120, 111, 110, 109, 111, 107, 111, 110, 109, 112, 112, 106, 110, 112, 109, 104, 113, 109, 109, 106, 109, 108, 109, 112, 112, 102, 107, 112, 102, 112, 110, 114, 111, 108, 108, 109, 127, 109, 114, 109, 112, 112, 112, 107, 112, 112, 113, 107, 110, 109, 115, 110, 110, 112, 112, 111, 108, 110, 111, 108, 112, 107, 109, 108, 108, 110, 109, 114, 113, 110, 113, 108, 112, 109, 118, 112, 104, 110, 119, 107, 112, 107, 110, 111, 112, 110, 108, 108, 104, 106, 111, 107, 104, 106, 107, 110, 112, 104, 104, 108, 110, 109, 114, 109, 110, 113, 109, 107, 110, 110, 110, 112, 110, 110, 113, 112, 109, 110, 108, 117, 110, 110, 108, 112, 111, 108, 122, 110, 107, 112, 116, 110, 115, 112, 112, 112, 112, 109, 110, 113, 111, 109, 102, 108, 124, 117, 110, 109, 110, 113, 115, 107, 110, 109, 109, 108, 115, 108, 111, 107, 109, 114, 112, 108, 109, 104, 100, 112, 113, 105, 112, 109, 113, 109, 112, 109, 114, 120, 110, 114, 111, 111, 97, 104, 114, 111, 108, 112, 109, 104, 108, 109, 105, 111, 110, 108, 111, 111, 110, 106, 106, 111, 111, 109, 119, 111, 107, 111, 111, 108, 111, 114, 107, 107, 111, 109, 114, 107, 109, 110, 104, 105, 106, 110, 120, 112, 109, 110, 112, 109, 113, 108, 107, 112, 111, 104, 107, 108, 110, 107, 112, 112, 111, 111, 114, 110, 111, 111, 108, 111, 109, 108, 110, 111, 108, 111, 110, 112, 110, 108, 110, 108, 109, 112, 114, 112, 112, 111, 110, 107, 108, 113, 110, 109, 103, 108, 114, 99, 106, 110, 114, 117, 109, 112, 112, 107, 108, 112, 108, 111, 110, 110, 107, 106, 110, 104, 109, 111, 108, 109, 115, 108, 107, 108, 113, 112, 109, 108, 112, 110, 109, 109, 108, 110, 115, 113, 113, 111, 115, 110, 110, 111, 110, 110, 109, 112, 112, 111, 110, 110, 109, 114, 110, 112, 111, 107, 115, 108, 115, 110, 110, 116, 113, 111, 108, 108, 110, 107, 108, 110, 114, 114, 114, 110, 109, 109, 110, 111, 115, 108, 105, 107, 107, 111, 110, 116, 107, 105, 114, 108, 108, 110, 108, 108, 108, 100, 109, 108, 108, 112, 110, 111, 110, 111, 113, 110, 102, 111, 108, 112, 112, 99, 110, 114, 109, 109, 117, 110, 106, 112, 108, 112, 109, 111, 108, 106, 111, 108, 110, 108, 111, 108, 112, 114, 112, 108, 106, 107, 109, 109, 110, 110, 112, 106, 121, 110, 107, 113, 108, 103, 121, 111, 107, 111, 113, 110, 108, 103, 115, 110, 113, 112, 106, 112, 109, 110, 111, 107, 104, 105, 107, 118, 114, 119, 107, 116, 128, 109, 102, 105, 116, 99, 110, 99, 101, 103, 108, 115, 105, 116, 102, 104, 100, 98, 116, 105, 106, 109, 112, 114, 96, 106, 108, 116, 95, 113, 123, 115, 111, 110, 116, 102, 99, 94, 116, 127, 108, 101, 107, 104, 111, 101, 108, 116, 105, 111, 96, 113, 103, 120, 126, 109, 94, 101, 119, 111, 115, 117, 118, 111, 99, 104, 112, 107, 112, 105, 116, 112, 116, 96, 105, 102, 124, 116, 131, 133, 115, 104, 117, 108, 100, 110, 110, 110, 94, 108, 113, 120, 105, 106, 113, 101, 104, 98, 116, 113, 109, 104, 102, 114, 107, 116, 115, 115, 125, 102, 115, 125, 109, 97, 96, 117, 100, 107, 113, 112, 93, 114, 106, 102, 112, 107, 107, 103, 116, 101, 115, 113, 103, 121, 103, 93, 108, 144, 111, 108, 122, 106, 109, 113, 120, 113, 119, 124, 113, 115, 109, 101, 94, 115, 100, 107, 106, 116, 104, 135, 117, 107, 116, 112, 107, 113, 133, 115, 109, 110, 104, 110, 109, 115, 105, 119, 107, 133, 109, 111, 115, 112, 110, 122, 114, 108, 106, 108, 99, 104, 95, 109, 106, 102, 113, 106, 106, 95, 110, 114, 113, 111, 106, 110, 118, 121, 102, 106, 106, 91, 115, 103, 104, 77, 119, 111, 115, 103, 112, 110, 107, 122, 93, 103, 98, 109, 111, 113, 92, 103, 109, 113, 109, 107, 108, 103, 121, 113, 117, 113, 121, 92, 106, 113, 125, 113, 120, 124, 111, 117, 108, 120, 118, 110, 110, 112, 111, 108, 109, 111, 115, 109, 110, 110, 104, 101, 108, 139, 106, 113, 112, 92, 100, 109, 115, 104, 112, 110, 109, 107, 117, 120, 105, 107, 107, 113, 116, 108, 107, 102, 97, 118, 112, 113, 117, 113, 106, 139, 108, 101, 109, 112, 106, 115, 116, 94, 115, 104, 104, 88, 109, 115, 97, 120, 110, 121, 107, 114, 119, 112, 115, 111, 111, 97, 109, 106, 92, 103, 89, 105, 106, 118, 111, 111, 105, 122, 113, 105, 109, 119, 112, 104, 106, 109, 108, 105, 110, 105, 116, 112, 112, 112, 112, 108, 107, 118, 111, 108, 100, 76, 92, 110, 121, 113, 97, 83, 111, 120, 105, 103, 110, 106, 113, 113, 116, 108, 111, 105, 110, 125, 115, 108, 93, 114, 112, 103, 120, 110, 102, 113, 119, 104, 105, 103, 127, 89, 116, 109, 95, 114, 105, 113, 108, 113, 114, 116, 99, 115, 108, 107, 118, 106, 109, 110, 139, 113, 110, 108, 111, 96, 114, 105, 102, 121, 117, 100, 113, 110, 110, 112, 104, 115, 117, 107, 118, 118, 105, 112, 120, 113, 101, 111, 109, 104, 113, 124, 105, 102, 114, 97, 98, 109, 123, 110, 92, 103, 110, 117, 124, 116, 103, 122, 114, 102, 105, 112, 104, 94, 109, 110, 115, 109, 103, 108, 110, 116, 111, 102, 111, 100, 104, 102, 115, 110, 105, 118, 112, 124, 123, 90, 107, 121, 118, 124, 116, 116, 112, 102, 115, 88, 104, 115, 132, 120, 108, 110, 110, 107, 101, 112, 112, 95, 107, 105, 110, 94, 111, 109, 112, 108, 109, 99, 107, 115, 111, 112, 109, 105, 107, 111, 113, 107, 113, 111, 105, 104, 112, 91, 112, 113, 109, 112, 104, 109, 109, 114, 112, 106, 107, 111, 109, 106, 111, 107, 107, 113, 110, 108, 112, 107, 111, 109, 106, 104, 106, 110, 109, 102, 108, 107, 104, 107, 116, 108, 111, 104, 104, 111, 109, 111, 106, 104, 109, 110, 119, 109, 110, 113, 113, 98, 112, 108, 110, 109, 108, 107, 112, 110, 109, 107, 102, 107, 110, 112, 110, 109, 105, 106, 108, 112, 104, 105, 117, 108, 109, 118, 104, 108, 107, 117, 112, 115, 110, 107, 100, 109, 106, 120, 108, 105, 109, 106, 108, 111, 113, 112, 111, 110, 110, 109, 108, 111, 106, 102, 106, 117, 112, 110, 114, 114, 111, 109, 111, 108, 112, 108, 114, 109, 108, 107, 110, 108, 104, 107, 105, 109, 125, 109, 110, 117, 109, 112, 110, 106, 114, 114, 113, 102, 104, 104, 108, 110, 112, 111, 113, 114, 110, 110, 114, 105, 111, 115, 110, 108, 112, 105, 113, 108, 115, 110, 118, 114, 103, 115, 106, 111, 102, 111, 115, 114, 106, 110, 102, 114, 108, 110, 105, 108, 106, 117, 106, 112, 107, 110, 107, 106, 111, 106, 111, 107, 99, 108, 118, 101, 111, 113, 108, 106, 103, 113, 111, 111, 110, 103, 112, 107, 104, 108, 104, 102, 104, 111, 111, 104, 109, 100, 121, 112, 101, 111, 106, 111, 110, 108, 108, 110, 113, 113, 101, 111, 102, 103, 110, 109, 106, 112, 108, 115, 105, 111, 110, 111, 115, 111, 112, 110, 113, 100, 109, 106, 115, 113, 104, 113, 112, 110, 114, 111, 108, 108, 108, 104, 112, 110, 99, 114, 114, 108, 112, 107, 109, 114, 110, 114, 110, 108, 103, 114, 109, 106, 113, 109, 110, 106, 107, 109, 105, 106, 105, 109, 100, 112, 114, 110, 112, 116, 110, 102, 110, 111, 103, 111, 105, 114, 103, 105, 109, 105, 113, 109, 115, 113, 118, 106, 102, 108, 108, 107, 109, 109, 116, 109, 107, 109, 110, 113, 107, 109, 107, 116, 106, 108, 104, 107, 109, 109, 110, 107, 105, 110, 108, 105, 111, 114, 112, 111, 111, 109, 113, 119, 111, 107, 108, 104, 110, 111, 108, 109, 107, 113, 106, 114, 112, 115, 116, 112, 108, 110, 106, 111, 107, 114, 111, 105, 111, 112, 111, 109, 111, 108, 100, 113, 110, 108, 116, 116, 106, 111, 108, 112, 99, 113, 114, 107, 115, 112, 106, 113, 110, 115, 113, 106, 111, 114, 121, 108, 112, 110, 111, 112, 113, 114, 107, 108, 107, 106, 107, 110, 107, 107, 105, 98, 114, 113, 106, 105, 112, 121, 118, 108, 116, 110, 109, 112, 111, 108, 104, 114, 112, 108, 119, 107, 114, 115, 108, 112, 105, 110, 110, 114, 105, 113, 104, 105, 111, 104, 112, 111, 110, 110, 113, 108, 114, 106, 112, 109, 109, 110, 116, 113, 110, 111, 106, 112, 101, 111, 109, 116, 107, 106, 120, 117, 112, 98, 106, 108, 105, 123, 119, 107, 120, 101, 106, 113, 113, 110, 104, 108, 112, 108, 115, 115, 114, 113, 108, 110, 106, 105, 113, 100, 112, 100, 105, 103, 113, 110, 106, 115, 121, 105, 109, 107, 111, 124, 108, 119, 113, 111, 118, 111, 106, 108, 110, 97, 98, 107, 119, 109, 105, 104, 116, 102, 112, 115, 112, 104, 114, 113, 109, 109, 109, 107, 103, 125, 109, 109, 106, 111, 138, 107, 109, 110, 123, 113, 117, 112, 101, 109, 108, 107, 103, 103, 95, 108, 108, 112, 111, 104, 109, 111, 116, 113, 114, 105, 106, 109, 115, 111, 114, 100, 113, 102, 98, 113, 105, 109, 117, 113, 112, 119, 112, 121, 106, 110, 112, 108, 111, 109, 109, 105, 107, 107, 114, 109, 106, 115, 105, 110, 117, 108, 108, 113, 113, 111, 103, 114, 106, 109, 106, 109, 115, 107, 115, 114, 111, 102, 99, 115, 121, 124, 111, 110, 104, 106, 112, 116, 117, 114, 110, 107, 103, 108, 108, 113, 107, 112, 105, 111, 107, 115, 109, 124, 120, 117, 101, 108, 113, 123, 113, 112, 110, 110, 111, 108, 98, 114, 112, 114, 115, 102, 102, 112, 104, 106, 110, 110, 97, 99, 105, 104, 115, 108, 116, 108, 111, 113, 113, 113, 127, 111, 111, 123, 98, 110, 112, 108, 109, 107, 110, 115, 111, 112, 107, 111, 110, 100, 110, 107, 91, 107, 112, 101, 118, 104, 111, 112, 110, 111, 119, 107, 118, 113, 110, 108, 113, 107, 100, 102, 98, 109, 101, 111, 108, 111, 116, 102, 111, 103, 104, 94, 114, 114, 109, 115, 106, 111, 117, 111, 111, 117, 104, 104, 113, 113, 119, 94, 111, 116, 109, 115, 111, 114, 100, 109, 107, 104, 118, 112, 101, 120, 121, 109, 108, 115, 112, 113, 109, 137, 130, 99, 112, 103, 108, 110, 104, 107, 107, 107, 115, 113, 120, 114, 108, 111, 114, 113, 99, 94, 107, 117, 106, 97, 111, 104, 104, 120, 111, 108, 112, 118, 106, 110, 119, 102, 100, 111, 112, 108, 106, 99, 119, 113, 108, 111, 107, 110, 116, 131, 112, 107, 92, 116, 115, 110, 105, 112, 107, 116, 110, 100, 123, 111, 109, 120, 110, 107, 107, 123, 114, 111, 100, 108, 117, 104, 107, 107, 110, 103, 113, 102, 106, 102, 110, 113, 108, 108, 117, 112, 110, 103, 106, 110, 102, 115, 111, 108, 106, 112, 116, 107, 113, 110, 113, 109, 113, 116, 108, 115, 104, 112, 109, 117, 116, 127, 105, 106, 113, 113, 109, 97, 119, 134, 115, 109, 105, 115, 86, 105, 109, 128, 120, 112, 92, 122, 112, 116, 108, 107, 107, 97, 110, 119, 108, 87, 101, 103, 117, 111, 130, 101, 130, 116, 113, 104, 105, 116, 111, 118, 107, 108, 117, 113, 95, 107, 95, 108, 107, 131, 107, 100, 107, 102, 111, 104, 90, 109, 116, 111, 118, 123, 110, 111, 115, 114, 108, 112, 113, 116, 108, 103, 106, 109, 108, 114, 116, 113, 102, 113, 118, 109, 113, 112, 103, 110, 114, 134, 114, 108, 114, 117, 108, 107, 120, 109, 108, 118, 111, 108, 112, 108, 106, 108, 113, 112, 107, 114, 134, 109, 108, 125, 124, 117, 109, 115, 114, 114, 123, 113, 108, 107, 113, 109, 109, 111, 108, 95, 107, 111, 110, 107, 115, 109, 108, 110, 115, 115, 113, 109, 95, 107, 102, 114, 105, 113, 134, 108, 111, 106, 112, 106, 114, 110, 105, 107, 115, 107, 116, 110, 112, 108, 110, 113, 123, 110, 100, 121, 108, 107, 116, 109, 114, 106, 105, 113, 108, 106, 109, 110, 111, 120, 110, 114, 114, 115, 120, 110, 112, 112, 110, 112, 118, 114, 112, 107, 108, 105, 116, 111, 114, 106, 106, 106, 110, 101, 105, 111, 110, 114, 105, 110, 112, 105, 106, 111, 113, 108, 117, 111, 113, 113, 111, 108, 106, 110, 106, 107, 111, 108, 107, 111, 108, 110, 107, 107, 113, 110, 115, 101, 121, 105, 110, 110, 113, 111, 115, 120, 112, 114, 109, 115, 110, 116, 111, 106, 104, 105, 103, 112, 110, 108, 108, 112, 107, 112, 106, 107, 108, 109, 121, 102, 109, 114, 114, 109, 112, 108, 124, 114, 115, 115, 106, 108, 109, 107, 114, 106, 100, 113, 107, 106, 98, 113, 113, 108, 118, 108, 108, 109, 108, 110, 109, 93, 123, 111, 108, 119, 107, 115, 109, 110, 113, 110, 121, 106, 111, 114, 110, 108, 108, 107, 115, 107, 108, 113, 99, 110, 107, 112, 124, 113, 101, 113, 97, 108, 108, 109, 109, 115, 115, 114, 111, 109, 93, 107, 133, 112, 111, 107, 113, 107, 111, 105, 108, 109, 111, 114, 114, 110, 116, 117, 111, 117, 115, 112, 102, 112, 112, 108, 111, 108, 114, 108, 105, 113, 115, 114, 105, 110, 100, 110, 113, 113, 127, 108, 107, 106, 109, 110, 115, 121, 111, 107, 114, 104, 114, 111, 114, 109, 112, 119, 102, 109, 113, 106, 110, 111, 100, 111, 99, 104, 111, 114, 114, 109, 108, 111, 101, 106, 117, 109, 114, 123, 114, 113, 112, 112, 123, 111, 117, 110, 109, 101, 113, 118, 107, 109, 111, 101, 109, 115, 112, 113, 109, 115, 112, 105, 109, 115, 112, 110, 110, 111, 101, 108, 107, 91, 106, 104, 107, 110, 103, 113, 107, 114, 106, 107, 113, 113, 108, 116, 113, 101, 111, 106, 114, 116, 111, 108, 118, 104, 110, 107, 100, 112, 106, 111, 111, 97, 109, 106, 109, 108, 108, 114, 114, 106, 108, 103, 107, 108, 111, 108, 113, 115, 129, 110, 115, 110, 110, 105, 107, 88, 114, 124, 110, 115, 111, 105, 114, 107, 108, 116, 113, 104, 113, 112, 109, 114, 111, 113, 114, 115, 107, 106, 113, 103, 133, 114, 107, 115, 117, 107, 105, 113, 107, 122, 118, 116, 111, 111, 103, 111, 117, 111, 102, 106, 103, 100, 105, 110, 110, 108, 112, 108, 112, 112, 113, 109, 94, 110, 110, 105, 116, 112, 103, 107, 112, 104, 108, 107, 115, 109, 106, 110, 102, 111, 110, 113, 107, 112, 106, 114, 115, 107, 111, 117, 109, 106, 109, 106, 122, 117, 113, 113, 113, 104, 116, 105, 107, 108, 117, 116, 110, 112, 114, 117, 115, 106, 120, 114, 105, 109, 111, 105, 108, 108, 106, 106, 115, 108, 110, 108, 121, 111, 109, 99, 111, 106, 110, 107, 90, 112, 105, 107, 116, 116, 103, 112, 94, 111, 106, 112, 123, 87, 111, 110, 118, 114, 118, 110, 107, 112, 112, 110, 111, 100, 109, 107, 123, 106, 117, 105, 107, 101, 108, 91, 106, 110, 112, 116, 111, 121, 109, 115, 112, 108, 110, 113, 90, 107, 112, 110, 110, 107, 104, 109, 111, 119, 117, 105, 112, 97, 104, 104, 109, 115, 113, 109, 121, 108, 100, 110, 131, 89, 107, 110, 106, 113, 108, 108, 108, 117, 110, 106, 122, 106, 106, 107, 117, 109, 102, 106, 103, 110, 110, 124, 116, 107, 92, 116, 130, 112, 116, 115, 109, 108, 108, 120, 111, 108, 111, 102, 112, 111, 126, 106, 115, 112, 115, 120, 113, 111, 110, 109, 109, 122, 114, 108, 103, 112, 117, 105, 104, 152, 115, 109, 107, 116, 106, 96, 104, 97, 105, 109, 107, 110, 112, 110, 105, 109, 111, 106, 109, 120, 111, 108, 87, 91, 106, 111, 109, 110, 116, 107, 111, 107, 109, 117, 114, 112, 111, 113, 105, 105, 110, 98, 103, 104, 119, 102, 118, 111, 113, 113, 114, 108, 102, 114, 104, 114, 117, 165, 111, 109, 107, 109, 105, 118, 113, 113, 119, 119, 109, 113, 117, 110, 110, 120, 106, 121, 108, 131, 112, 114, 112, 109, 111, 107, 108, 113, 122, 108, 106, 106, 108, 101, 113, 112, 111, 115, 107, 109, 117, 108, 89, 111, 115, 109, 106, 110, 106, 110, 128, 123, 105, 114, 91, 102, 110, 110, 108, 114, 112, 113, 107, 108, 121, 111, 108, 135, 111, 110, 109, 112, 90, 111, 112, 107, 109, 113, 109, 92, 112, 110, 114, 107, 98, 101, 107, 117, 113, 115, 119, 109, 112, 112, 108, 93, 106, 106, 110, 108, 106, 107, 110, 111, 108, 111, 105, 111, 107, 116, 111, 105, 104, 111, 117, 111, 109, 114, 104, 111, 113, 105, 111, 113, 110, 107, 109, 107, 115, 112, 118, 107, 107, 112, 103, 99, 103, 109, 112, 111, 97, 109, 107, 116, 110, 102, 120, 94, 110, 114, 105, 110, 105, 113, 111, 110, 114, 114, 108, 105, 116, 102, 107, 104, 105, 105, 83, 110, 110, 97, 110, 110, 111, 104, 122, 121, 106, 114, 114, 106, 103, 111, 110, 110, 106, 114, 106, 108, 100, 96, 105, 118, 105, 108, 111, 113, 109, 110, 108, 112, 108, 111, 110, 128, 108, 109, 115, 103, 113, 108, 99, 108, 97, 106, 110, 110, 117, 109, 112, 108, 120, 102, 109, 110, 118, 110, 111, 110, 111, 109, 108, 108, 101, 104, 114, 109, 107, 113, 108, 115, 112, 110, 112, 114, 109, 115, 104, 115, 108, 86, 109, 111, 106, 122, 109, 110, 129, 93, 106, 122, 138, 106, 107, 103, 110, 108, 114, 103, 114, 111, 108, 99, 107, 108, 114, 105, 95, 111, 104, 100, 100, 118, 114, 107, 113, 112, 113, 106, 109, 106, 109, 107, 106, 107, 104, 107, 105, 111, 115, 106, 96, 115, 118, 116, 116, 108, 110, 113, 102, 109, 109, 109, 116, 105, 110, 108, 104, 111, 109, 108, 95, 111, 92, 103, 104, 104, 110, 109, 97, 108, 111, 112, 126, 107, 112, 107, 104, 111, 111, 106, 110, 111, 108, 104, 110, 110, 86, 111, 121, 110, 108, 106, 109, 108, 102, 121, 108, 115, 110, 100, 122, 93, 112, 107, 109, 122, 112, 109, 111, 111, 116, 118, 111, 113, 101, 107, 117, 142, 123, 106, 107, 112, 109, 110, 114, 104, 99, 109, 112, 116, 114, 110, 109, 106, 107, 106, 115, 105, 110, 112, 108, 118, 109, 107, 112, 113, 121, 110, 96, 112, 121, 109, 108, 108, 114, 117, 103, 111, 109, 103, 137, 109, 110, 117, 110, 105, 110, 113, 112, 105, 115, 107, 113, 116, 117, 109, 138, 114, 110, 116, 108, 104, 116, 125, 106, 129, 114, 110, 104, 109, 130, 112, 140, 108, 110, 107, 110, 107, 111, 108, 110, 109, 111, 113, 110, 118, 140, 114, 112, 112, 122, 110, 114, 114, 107, 104, 99, 82, 107, 111, 112, 112, 109, 108, 103, 106, 111, 110, 107, 127, 114, 104, 114, 112, 113, 102, 113, 115, 125, 114, 113, 114, 112, 106, 113, 111, 107, 114, 103, 105, 116, 106, 110, 106, 117, 113, 115, 133, 106, 113, 119, 115, 111, 106, 109, 112, 107, 111, 108, 110, 109, 130, 108, 113, 111, 112, 110, 104, 109, 104, 126, 110, 107, 113, 111, 108, 109, 108, 106, 107, 113, 105, 116, 118, 74, 108, 127, 105, 105, 106, 111, 114, 110, 118, 107, 128, 117, 100, 112, 106, 110, 110, 104, 111, 103, 108, 123, 111, 104, 118, 111, 111, 109, 114, 108, 110, 122, 118, 118, 113, 110, 111, 110, 115, 116, 110, 118, 111, 98, 104, 108, 109, 109, 110, 107, 116, 113, 97, 114, 108, 113, 111, 109, 124, 102, 110, 112, 111, 102, 114, 114, 107, 113, 114, 112, 113, 114, 108, 111, 110, 95, 109, 110, 111, 112, 106, 110, 112, 109, 107, 115, 110, 133, 110, 115, 111, 109, 120, 113, 106, 116, 100, 109, 110, 107, 107, 110, 96, 110, 113, 110, 103, 111, 109, 114, 108, 111, 105, 105, 107, 111, 106, 112, 106, 116, 109, 111, 112, 96, 112, 111, 106, 115, 106, 108, 102, 119, 109, 113, 114, 106, 127, 113, 111, 116, 116, 110, 115, 110, 111, 111, 113, 109, 118, 110, 106, 113, 108, 104, 110, 111, 105, 105, 114, 105, 109, 112, 106, 117, 101, 111, 105, 114, 109, 89, 115, 105, 109, 120, 110, 128, 113, 105, 112, 112, 111, 112, 111, 111, 110, 113, 113, 108, 111, 113, 110, 108, 103, 102, 119, 108, 110, 112, 113, 111, 113, 107, 109, 112, 108, 111, 112, 115, 108, 112, 102, 118, 112, 103, 91, 118, 86, 126, 122, 109, 115, 115, 107, 111, 114, 118, 114, 115, 108, 109, 114, 109, 104, 109, 120, 114, 112, 113, 109, 108, 111, 108, 108, 106, 108, 114, 131, 109, 103, 110, 107, 108, 108, 108, 110, 119, 111, 112, 112, 113, 110, 113, 119, 112, 107, 114, 109, 109, 111, 112, 107, 110, 108, 112, 110, 106, 104, 110, 108, 108, 114, 108, 109, 111, 109, 110, 107, 108, 107, 109, 114, 106, 110, 109, 113, 110, 119, 116, 114, 106, 109, 105, 121, 106, 107, 113, 115, 112, 111, 115, 106, 110, 122, 104, 105, 110, 111, 109, 109, 104, 108, 105, 108, 113, 105, 103, 118, 108, 106, 106, 108, 106, 110, 109, 110, 112, 109, 107, 109, 111, 110, 114, 113, 107, 108, 109, 111, 112, 111, 116, 109, 108, 123, 106, 114, 108, 118, 113, 114, 112, 111, 110, 114, 101, 109, 111, 110, 113, 113, 116, 110, 107, 107, 108, 107, 112, 108, 106, 106, 116, 106, 112, 112, 119, 102, 101, 110, 106, 108, 113, 107, 115, 108, 110, 119, 127, 108, 118, 108, 109, 113, 110, 109, 105, 113, 111, 111, 113, 110, 106, 116, 110, 112, 111, 112, 111, 109, 114, 108, 114, 107, 114, 111, 109, 116, 107, 110, 110, 112, 110, 112, 109, 107, 112, 108, 112, 110, 108, 110, 115, 104, 110, 114, 107, 113, 106, 112, 111, 108, 118, 108, 110, 108, 113, 106, 114, 99, 109, 111, 108, 114, 114, 110, 109, 110, 119, 110, 109, 111, 107, 112, 108, 109, 117, 113, 111, 106, 105, 118, 101, 114, 117, 121, 109, 110, 111, 105, 105, 108, 109, 109, 106, 110, 104, 109, 116, 107, 111, 110, 109, 104, 114, 108, 112, 116, 107, 110, 109, 109, 110, 109, 110, 109, 109, 106, 114, 110, 104, 117, 109, 109, 109, 108, 114, 110, 112, 118, 109, 113, 110, 107, 113, 107, 114, 107, 110, 119, 109, 105, 111, 110, 114, 108, 119, 106, 112, 107, 106, 111, 116, 109, 109, 117, 110, 106, 109, 107, 109, 115, 110, 108, 106, 106, 108, 107, 114, 109, 109, 108, 113, 114, 110, 109, 117, 107, 107, 108, 110, 107, 111, 106, 109, 111, 113, 109, 112, 106, 117, 108, 109, 110, 114, 120, 108, 110, 105, 112, 107, 113, 112, 114, 105, 106, 111, 112, 110, 115, 109, 116, 108, 113, 115, 123, 109, 114, 111, 109, 112, 107, 114, 113, 114, 110, 113, 123, 114, 114, 113, 109, 107, 113, 111, 112, 104, 107, 114, 105, 113, 110, 128, 106, 107, 107, 107, 110, 110, 112, 112, 106, 105, 111, 111, 109, 111, 113, 110, 115, 108, 113, 106, 113, 111, 106, 121, 113, 111, 108, 113, 108, 110, 114, 114, 120, 105, 108, 110, 110, 109, 110, 106, 107, 107, 107, 107, 114, 113, 114, 109, 112, 115, 120, 111, 103, 110, 106, 108, 104, 115, 108, 112, 106, 112, 108, 110, 110, 108, 113, 112, 110, 112, 107, 113, 114, 109, 107, 98, 109, 113, 113, 110, 119, 108, 108, 114, 107, 110, 111, 107, 109, 107, 107, 111, 107, 109, 108, 110, 106, 111, 112, 105, 112, 105, 113, 111, 105, 109, 109, 111, 101, 123, 108, 113, 110, 108, 107, 114, 107, 109, 110, 110, 114, 111, 114, 112, 113, 109, 109, 109, 111, 114, 109, 111, 105, 113, 107, 114, 106, 111, 108, 109, 112, 112, 110, 111, 106, 113, 110, 113, 108, 106, 115, 108, 108, 112, 104, 107, 110, 103, 109, 110, 124, 123, 117, 114, 107, 108, 104, 111, 109, 108, 106, 105, 109, 112, 109, 111, 113, 101, 110, 107, 113, 116, 106, 104, 111, 97, 112, 113, 118, 116, 110, 106, 116, 109, 102, 107, 110, 107, 109, 105, 108, 104, 108, 112, 110, 113, 108, 118, 113, 105, 103, 103, 112, 115, 107, 107, 107, 103, 113, 112, 108, 114, 96, 111, 110, 111, 100, 109, 108, 113, 111, 109, 108, 106, 104, 110, 105, 104, 112, 118, 112, 111, 108, 111, 132, 109, 106, 113, 113, 110, 113, 111, 111, 108, 112, 107, 109, 110, 114, 109, 123, 109, 112, 110, 112, 112, 122, 109, 106, 107, 113, 106, 108, 112, 115, 110, 111, 114, 112, 110, 108, 110, 106, 110, 111, 109, 112, 107, 108, 112, 106, 106, 111, 111, 113, 118, 108, 105, 115, 109, 108, 111, 108, 116, 111, 111, 108, 113, 113, 108, 108, 96, 109, 113, 114, 109, 109, 110, 108, 120, 109, 109, 107, 114, 112, 109, 112, 107, 107, 114, 111, 110, 110, 113, 108, 112, 109, 104, 111, 109, 94, 107, 117, 109, 109, 108, 111, 104, 111, 121, 113, 115, 112, 114, 113, 107, 105, 113, 111, 112, 114, 114, 113, 111, 108, 103, 109, 107, 109, 107, 109, 107, 105, 110, 105, 113, 109, 107, 106, 113, 108, 106, 111, 111, 109, 113, 114, 100, 112, 107, 105, 107, 110, 106, 110, 107, 107, 113, 108, 112, 111, 110, 107, 109, 104, 103, 99, 113, 109, 109, 108, 105, 108, 107, 105, 111, 112, 107, 115, 111, 101, 114, 107, 114, 108, 109, 110, 123, 102, 112, 107, 108, 109, 112, 113, 106, 112, 107, 111, 108, 110, 110, 111, 110, 114, 110, 104, 110, 113, 109, 109, 108, 109, 109, 108, 118, 106, 110, 109, 108, 107, 110, 114, 113, 109, 111, 110, 112, 105, 112, 111, 113, 112, 104, 105, 112, 97, 117, 108, 102, 113, 99, 110, 106, 109, 107, 109, 115, 110, 110, 103, 114, 109, 114, 109, 119, 113, 113, 110, 105, 110, 114, 108, 111, 110, 112, 109, 107, 109, 109, 114, 108, 109, 110, 108, 107, 101, 108, 111, 105, 112, 110, 110, 113, 113, 108, 110, 111, 98, 105, 112, 107, 109, 108, 109, 111, 108, 113, 109, 103, 112, 110, 110, 115, 105, 110, 110, 101, 106, 111, 107, 107, 107, 112, 101, 113, 116, 110, 110, 111, 111, 111, 115, 114, 111, 115, 105, 113, 114, 108, 107, 110, 106, 114, 106, 106, 112, 107, 104, 109, 119, 113, 107, 112, 113, 110, 115, 106, 109, 110, 112, 110, 110, 113, 117, 125, 109, 107, 103, 106, 108, 93, 109, 105, 106, 107, 113, 110, 113, 109, 111, 105, 114, 108, 114, 101, 109, 113, 103, 112, 118, 108, 122, 117, 110, 103, 106, 108, 112, 124, 109, 108, 119, 109, 118, 100, 104, 115, 103, 107, 109, 107, 115, 117, 104, 107, 103, 109, 114, 108, 103, 113, 112, 111, 103, 111, 109, 108, 119, 108, 110, 95, 112, 110, 119, 109, 105, 116, 108, 119, 119, 108, 104, 109, 104, 107, 107, 111, 110, 116, 103, 113, 107, 122, 110, 107, 107, 105, 106, 108, 118, 113, 109, 104, 111, 122, 91, 114, 109, 130, 108, 122, 104, 106, 111, 107, 103, 105, 111, 110, 109, 115, 108, 106, 109, 110, 112, 118, 112, 117, 106, 110, 114, 105, 105, 102, 115, 106, 112, 109, 109, 107, 106, 119, 114, 114, 101, 103, 115, 110, 110, 94, 107, 111, 114, 126, 116, 110, 116, 116, 116, 113, 109, 110, 110, 103, 109, 115, 111, 104, 113, 108, 100, 113, 111, 106, 124, 109, 106, 117, 101, 116, 105, 105, 115, 113, 125, 109, 99, 108, 102, 113, 113, 101, 102, 112, 100, 110, 110, 109, 106, 106, 108, 119, 99, 115, 106, 101, 116, 106, 110, 108, 101, 118, 106, 106, 112, 116, 108, 111, 105, 116, 104, 111, 110, 105, 129, 112, 120, 116, 109, 113, 108, 107, 105, 111, 111, 114, 107, 109, 108, 117, 109, 99, 107, 107, 113, 109, 110, 101, 105, 111, 110, 104, 113, 99, 101, 107, 112, 100, 107, 112, 111, 114, 112, 111, 104, 113, 110, 103, 114, 110, 108, 107, 110, 107, 103, 107, 116, 108, 125, 101, 108, 93, 100, 103, 110, 107, 104, 112, 109, 108, 113, 110, 112, 119, 112, 109, 111, 109, 113, 104, 106, 120, 99, 107, 109, 116, 111, 108, 105, 101, 109, 102, 112, 113, 104, 102, 112, 107, 110, 116, 112, 104, 115, 103, 108, 116, 105, 102, 115, 113, 111, 105, 119, 112, 120, 96, 111, 111, 107, 112, 106, 103, 113, 109, 112, 104, 102, 116, 106, 114, 93, 108, 115, 110, 111, 106, 110, 115, 113, 104, 116, 112, 106, 99, 112, 103, 106, 106, 109, 110, 129, 116, 110, 110, 110, 116, 114, 120, 113, 109, 103, 113, 117, 103, 114, 115, 106, 106, 118, 111, 118, 99, 112, 110, 109, 110, 113, 107, 107, 106, 113, 116, 111, 113, 108, 107, 112, 111, 105, 108, 113, 112, 105, 108, 109, 106, 104, 102, 110, 106, 114, 110, 113, 117, 108, 105, 107, 114, 132, 105, 110, 117, 109, 114, 122, 117, 110, 110, 111, 110, 108, 107, 116, 112, 114, 115, 114, 119, 115, 108, 99, 115, 104, 105, 104, 113, 109, 105, 113, 115, 109, 103, 112, 109, 104, 107, 113, 108, 112, 112, 114, 100, 113, 100, 109, 109, 119, 98, 101, 113, 116, 124, 115, 116, 107, 112, 102, 110, 106, 111, 114, 109, 112, 105, 105, 112, 108, 110, 118, 106, 110, 111, 106, 101, 114, 111, 97, 110, 107, 109, 111, 104, 113, 112, 105, 109, 104, 113, 108, 102, 115, 115, 102, 120, 116, 113, 110, 113, 118, 110, 117, 120, 106, 117, 112, 110, 114, 113, 114, 112, 113, 107, 107, 108, 108, 112, 117, 104, 112, 110, 109, 104, 109, 110, 110, 110, 107, 108, 110, 112, 110, 106, 112, 108, 111, 110, 109, 108, 108, 105, 114, 108, 103, 106, 113, 110, 106, 110, 109, 109, 104, 108, 106, 109, 108, 114, 110, 107, 110, 109, 109, 107, 109, 112, 107, 111, 111, 109, 110, 105, 109, 110, 112, 112, 106, 113, 107, 108, 111, 108, 104, 106, 109, 109, 108, 109, 108, 109, 112, 109, 108, 106, 108, 98, 106, 113, 111, 104, 113, 112, 109, 109, 111, 101, 113, 107, 109, 110, 109, 112, 107, 105, 110, 105, 111, 105, 103, 116, 110, 110, 108, 112, 112, 105, 113, 111, 109, 109, 110, 110, 111, 111, 108, 108, 110, 115, 114, 112, 110, 107, 109, 112, 109, 109, 107, 109, 107, 109, 113, 112, 113, 106, 104, 100, 107, 111, 112, 110, 113, 111, 112, 108, 107, 114, 109, 109, 106, 111, 111, 109, 111, 111, 109, 114, 111, 110, 106, 112, 113, 109, 110, 108, 107, 109, 110, 111, 109, 114, 110, 112, 113, 107, 108, 108, 112, 109, 107, 111, 110, 115, 109, 113, 113, 111, 110, 114, 110, 114, 108, 117, 103, 111, 113, 113, 112, 105, 109, 113, 106, 111, 112, 112, 105, 110, 112, 110, 114, 115, 109, 112, 110, 103, 112, 108, 110, 105, 107, 109, 108, 110, 104, 109, 109, 113, 110, 112, 114, 110, 112, 111, 107, 109, 112, 116, 109, 112, 110, 109, 108, 111, 110, 109, 114, 113, 107, 114, 108, 111, 111, 112, 111, 104, 111, 103, 116, 108, 113, 106, 109, 104, 103, 105, 108, 109, 113, 112, 108, 107, 112, 107, 112, 113, 109, 111, 109, 111, 109, 114, 107, 105, 110, 112, 110, 107, 109, 113, 111, 110, 108, 106, 105, 111, 100, 105, 111, 110, 109, 108, 101, 112, 111, 112, 111, 108, 112, 106, 110, 103, 114, 108, 110, 108, 108, 108, 113, 102, 110, 109, 107, 112, 108, 112, 108, 113, 107, 108, 109, 108, 115, 110, 107, 111, 110, 106, 113, 108, 111, 111, 103, 107, 114, 110, 104, 108, 110, 112, 109, 105, 105, 109, 106, 107, 106, 104, 105, 114, 109, 110, 113, 108, 114, 110, 110, 123, 113, 113, 109, 110, 108, 104, 106, 109, 107, 107, 113, 113, 110, 106, 112, 110, 110, 110, 111, 111, 110, 109, 107, 111, 114, 114, 109, 107, 109, 109, 112, 108, 109, 113, 108, 110, 114, 102, 106, 109, 110, 109, 114, 105, 108, 108, 103, 111, 109, 106, 111, 112, 111, 107, 110, 105, 111, 115, 111, 110, 102, 114, 107, 110, 115, 106, 109, 104, 111, 108, 112, 109, 103, 111, 107, 112, 108, 111, 112, 110, 117, 109, 112, 109, 109, 108, 110, 111, 108, 111, 108, 107, 108, 111, 107, 111, 112, 111, 106, 110, 113, 106, 110, 110, 103, 108, 101, 108, 108, 109, 109, 111, 107, 110, 107, 109, 105, 107, 112, 108, 115, 108, 103, 108, 104, 105, 105, 113, 109, 109, 108, 108, 115, 104, 105, 106, 111, 111, 99, 116, 102, 100, 113, 116, 117, 116, 120, 102, 108, 108, 98, 113, 98, 98, 112, 108, 98, 115, 116, 109, 116, 104, 110, 98, 119, 101, 107, 112, 119, 124, 104, 107, 119, 112, 115, 110, 108, 117, 107, 101, 119, 109, 118, 106, 106, 104, 109, 105, 128, 109, 128, 121, 110, 117, 118, 116, 109, 105, 103, 104, 92, 112, 106, 115, 109, 93, 121, 112, 110, 116, 109, 106, 103, 108, 102, 115, 111, 115, 110, 104, 112, 123, 112, 112, 100, 120, 115, 111, 103, 114, 105, 108, 110, 104, 112, 106, 108, 112, 109, 114, 90, 110, 113, 107, 92, 108, 120, 119, 110, 109, 115, 100, 118, 119, 98, 111, 117, 112, 101, 88, 105, 106, 109, 109, 105, 107, 113, 106, 109, 98, 90, 116, 112, 112, 120, 112, 117, 110, 107, 133, 107, 114, 111, 114, 101, 112, 94, 88, 107, 107, 108, 103, 117, 104, 117, 109, 107, 103, 119, 98, 105, 114, 111, 115, 107, 115, 113, 111, 110, 118, 110, 109, 108, 107, 112, 110, 107, 108, 101, 109, 106, 89, 97, 111, 103, 113, 115, 117, 100, 119, 106, 107, 95, 113, 104, 102, 107, 118, 106, 121, 118, 101, 128, 119, 106, 112, 112, 113, 97, 106, 98, 93, 114, 105, 113, 122, 117, 102, 95, 119, 114, 114, 104, 104, 99, 109, 107, 110, 110, 106, 111, 112, 102, 104, 123, 120, 106, 111, 112, 115, 104, 108, 105, 114, 100, 113, 116, 109, 105, 111, 121, 114, 105, 108, 104, 108, 103, 113, 110, 98, 100, 114, 111, 94, 114, 116, 109, 118, 114, 121, 102, 106, 97, 108, 114, 115, 112, 103, 103, 118, 98, 113, 103, 113, 103, 104, 122, 108, 115, 108, 112, 105, 113, 104, 114, 102, 125, 107, 106, 113, 104, 113, 114, 102, 110, 79, 117, 114, 108, 113, 95, 105, 109, 109, 96, 103, 115, 103, 119, 110, 101, 90, 111, 118, 119, 113, 115, 112, 107, 114, 101, 110, 107, 130, 112, 99, 114, 116, 115, 116, 116, 98, 117, 108, 120, 110, 105, 105, 106, 106, 110, 112, 104, 118, 101, 114, 116, 117, 108, 111, 98, 129, 108, 119, 108, 109, 103, 113, 124, 112, 105, 120, 111, 113, 76, 102, 105, 115, 112, 110, 111, 111, 110, 112, 112, 113, 102, 99, 108, 115, 101, 109, 106, 108, 108, 105, 125, 112, 106, 104, 112, 94, 113, 100, 111, 105, 103, 97, 105, 115, 101, 109, 97, 112, 100, 106, 107, 104, 110, 111, 115, 107, 115, 113, 107, 100, 97, 108, 108, 120, 113, 102, 107, 119, 107, 109, 113, 105, 92, 115, 112, 122, 111, 141, 110, 110, 113, 107, 104, 118, 102, 114, 112, 108, 122, 106, 114, 104, 115, 109, 112, 110, 124, 107, 116, 114, 110, 119, 112, 108, 102, 113, 104, 106, 113, 115, 120, 111, 110, 112, 115, 105, 98, 110, 107, 116, 110, 111, 113, 107, 115, 106, 129, 102, 100, 100, 110, 110, 117, 111, 106, 109, 102, 105, 116, 102, 108, 119, 108, 113, 108, 120, 104, 114, 122, 114, 102, 112, 105, 127, 115, 118, 107, 111, 112, 111, 110, 126, 107, 113, 110, 112, 113, 102, 109, 113, 105, 115, 114, 116, 96, 110, 121, 131, 113, 115, 100, 114, 113, 109, 118, 102, 116, 105, 89, 109, 104, 103, 119, 107, 107, 103, 106, 116, 108, 121, 114, 95, 109, 116, 108, 120, 119, 114, 102, 114, 120, 110, 108, 111, 110, 108, 110, 111, 105, 116, 96, 114, 110, 133, 114, 127, 113, 101, 116, 107, 100, 97, 101, 115, 115, 108, 101, 120, 116, 98, 106, 122, 101, 110, 108, 122, 115, 102, 105, 101, 111, 97, 104, 113, 115, 111, 111, 104, 111, 113, 113, 103, 116, 110, 114, 121, 109, 116, 114, 105, 115, 101, 95, 103, 111, 104, 108, 108, 125, 107, 125, 125, 105, 109, 110, 91, 120, 109, 109, 112, 112, 116, 103, 105, 107, 101, 102, 98, 112, 111, 110, 103, 99, 115, 106, 117, 114, 105, 91, 113, 104, 109, 113, 111, 102, 121, 114, 105, 107, 102, 98, 92, 112, 109, 117, 97, 109, 116, 109, 110, 108, 115, 106, 101, 106, 125, 101, 107, 96, 103, 102, 114, 133, 134, 116, 111, 102, 105, 98, 113, 122, 101, 109, 103, 98, 102, 109, 106, 111, 110, 113, 101, 113, 107, 115, 118, 106, 103, 119, 101, 110, 111, 102, 113, 108, 109, 112, 110, 103, 105, 99, 91, 117, 102, 121, 108, 114, 119, 112, 114, 114, 105, 109, 110, 112, 100, 106, 95, 115, 109, 104, 109, 117, 101, 111, 112, 110, 104, 110, 112, 112, 122, 115, 114, 120, 110, 115, 106, 99, 103, 117, 111, 110, 91, 111, 96, 112, 112, 113, 110, 104, 114, 104, 96, 107, 107, 119, 101, 123, 106, 107, 119, 121, 112, 118, 114, 101, 99, 108, 117, 119, 102, 109, 111, 120, 117, 114, 110, 121, 115, 112, 116, 114, 120, 110, 115, 112, 112, 110, 111, 115, 91, 105, 114, 110, 109, 114, 113, 111, 105, 103, 114, 119, 105, 117, 107, 112, 104, 111, 111, 106, 119, 110, 116, 104, 120, 116, 110, 118, 101, 114, 125, 114, 122, 105, 117, 107, 103, 113, 101, 110, 95, 105, 110, 97, 114, 114, 95, 122, 109, 112, 114, 114, 108, 94, 103, 106, 125, 113, 108, 115, 103, 107, 110, 112, 112, 104, 117, 111, 112, 113, 109, 117, 126, 109, 105, 104, 115, 106, 120, 112, 120, 99, 102, 114, 113, 109, 92, 103, 111, 118, 113, 112, 107, 119, 118, 97, 108, 101, 102, 111, 118, 111, 110, 96, 112, 116, 109, 101, 116, 95, 108, 112, 117, 115, 111, 107, 112, 104, 112, 112, 111, 110, 106, 102, 104, 119, 117, 115, 112, 103, 122, 111, 108, 112, 113, 113, 104, 111, 118, 118, 108, 123, 100, 117, 107, 114, 109, 103, 101, 103, 108, 99, 123, 116, 106, 94, 113, 121, 123, 115, 109, 113, 108, 106, 111, 115, 120, 92, 116, 104, 103, 108, 101, 121, 106, 112, 116, 109, 107, 112, 111, 103, 107, 102, 109, 100, 119, 121, 94, 112, 101, 102, 102, 99, 106, 120, 114, 113, 116, 111, 116, 113, 115, 97, 118, 108, 106, 110, 111, 102, 117, 113, 111, 108, 110, 97, 104, 116, 116, 112, 104, 111, 108, 112, 121, 110, 104, 112, 120, 127, 103, 112, 107, 117, 105, 106, 104, 109, 106, 113, 108, 118, 97, 117, 100, 113, 113, 105, 111, 115, 112, 112, 103, 108, 117, 105, 108, 110, 116, 113, 96, 108, 123, 109, 117, 108, 112, 112, 113, 109, 103, 115, 103, 107, 101, 107, 124, 114, 122, 101, 117, 110, 110, 117, 102, 114, 116, 103, 126, 113, 109, 106, 115, 114, 114, 115, 101, 109, 117, 106, 112, 109, 116, 116, 115, 108, 114, 117, 110, 114, 112, 107, 101, 109, 108, 113, 108, 112, 106, 108, 110, 110, 119, 103, 115, 110, 115, 107, 113, 112, 111, 97, 113, 90, 104, 121, 101, 133, 107, 111, 111, 99, 102, 117, 118, 106, 107, 115, 113, 109, 108, 104, 108, 108, 106, 107, 109, 107, 112, 123, 106, 105, 103, 111, 110, 114, 102, 114, 104, 123, 119, 112, 111, 118, 108, 114, 110, 117, 123, 120, 104, 97, 112, 116, 116, 115, 102, 118, 111, 108, 112, 95, 104, 105, 112, 111, 110, 106, 114, 105, 118, 113, 113, 116, 109, 108, 110, 114, 110, 89, 110, 113, 108, 107, 120, 105, 103, 101, 109, 113, 101, 107, 115, 110, 110, 112, 113, 130, 101, 109, 104, 103, 116, 107, 120, 103, 111, 113, 105, 116, 113, 113, 103, 112, 100, 99, 101, 110, 107, 105, 118, 113, 115, 115, 116, 116, 115, 108, 104, 105, 106, 110, 124, 114, 115, 101, 108, 107, 110, 105, 109, 115, 96, 108, 100, 101, 123, 113, 113, 106, 109, 104, 94, 114, 109, 109, 112, 108, 101, 112, 107, 121, 116, 114, 113, 100, 115, 109, 114, 112, 112, 115, 111, 107, 115, 111, 108, 100, 102, 107, 116, 112, 105, 119, 100, 108, 113, 101, 109, 118, 108, 103, 117, 125, 114, 110, 111, 112, 105, 108, 119, 106, 109, 120, 116, 111, 112, 108, 107, 107, 98, 106, 112, 111, 105, 104, 112, 117, 112, 102, 112, 109, 104, 120, 117, 104, 108, 107, 118, 102, 113, 123, 117, 101, 101, 105, 125, 114, 131, 96, 103, 115, 118, 117, 107, 113, 107, 124, 114, 120, 120, 109, 101, 108, 114, 101, 113, 107, 113, 107, 117, 115, 105, 107, 105, 122, 111, 104, 104, 109, 110, 107, 114, 113, 112, 117, 115, 113, 105, 115, 128, 96, 107, 124, 123, 110, 106, 119, 98, 131, 104, 117, 101, 107, 107, 109, 102, 116, 106, 112, 109, 119, 120, 110, 112, 115, 114, 117, 125, 95, 101, 99, 110, 107, 114, 101, 111, 121, 97, 105, 117, 119, 108, 108, 119, 105, 107, 111, 111, 96, 117, 110, 106, 108, 128, 113, 118, 125, 114, 113, 110, 113, 106, 108, 105, 102, 121, 115, 113, 115, 101, 106, 111, 112, 104, 120, 103, 98, 121, 124, 112, 114, 105, 112, 106, 113, 122, 108, 101, 100, 109, 113, 136, 110, 113, 115, 120, 112, 114, 107, 113, 101, 109, 113, 114, 107, 126, 106, 107, 110, 115, 102, 107, 112, 104, 103, 120, 103, 113, 107, 104, 116, 113, 99, 117, 113, 109, 113, 117, 112, 118, 111, 118, 114, 106, 98, 104, 122, 102, 115, 102, 99, 108, 119, 131, 115, 102, 115, 131, 104, 102, 119, 107, 115, 101, 105, 104, 107, 113, 94, 125, 113, 124, 157, 109, 114, 104, 101, 105, 106, 110, 105, 112, 119, 91, 118, 94, 119, 114, 115, 100, 108, 110, 110, 118, 121, 105, 108, 113, 120, 99, 113, 121, 121, 119, 102, 106, 108, 131, 109, 106, 100, 110, 121, 119, 111, 118, 104, 113, 107, 104, 117, 106, 119, 95, 116, 106, 105, 104, 122, 102, 110, 95, 100, 100, 119, 106, 114, 116, 88, 115, 115, 117, 110, 124, 110, 99, 128, 104, 104, 110, 113, 115, 107, 106, 124, 110, 110, 119, 121, 115, 103, 119, 107, 103, 117, 112, 107, 103, 108, 102, 99, 117, 113, 112, 130, 117, 111, 113, 109, 109, 110, 119, 143, 99, 114, 119, 114, 101, 114, 109, 103, 114, 118, 102, 107, 93, 113, 128, 108, 105, 108, 104, 106, 104, 108, 112, 111, 113, 125, 113, 113, 104, 105, 108, 106, 98, 102, 99, 104, 114, 119, 116, 119, 110, 118, 109, 112, 111, 107, 95, 120, 102, 118, 99, 97, 112, 116, 111, 118, 117, 115, 120, 113, 112, 116, 105, 115, 107, 111, 99, 101, 119, 104, 108, 120, 111, 115, 108, 106, 111, 105, 116, 107, 106, 116, 119, 114, 103, 96, 108, 116, 114, 109, 120, 121, 98, 120, 116, 115, 102, 104, 114, 108, 124, 104, 124, 119, 110, 108, 115, 112, 122, 125, 100, 108, 111, 106, 111, 114, 136, 90, 109, 98, 121, 114, 105, 107, 117, 115, 108, 107, 109, 110, 110, 117, 100, 90, 113, 105, 99, 111, 110, 114, 110, 112, 112, 108, 115, 110, 112, 104, 114, 108, 119, 122, 109, 100, 100, 101, 108, 105, 115, 117, 108, 100, 110, 109, 112, 115, 111, 109, 118, 124, 100, 118, 105, 107, 114, 103, 111, 115, 102, 94, 115, 107, 110, 110, 115, 116, 111, 110, 110, 120, 111, 102, 109, 108, 108, 127, 107, 128, 114, 108, 94, 109, 111, 110, 104, 109, 110, 111, 114, 111, 105, 89, 109, 108, 115, 105, 115, 113, 100, 109, 119, 102, 132, 108, 98, 99, 109, 113, 110, 116, 102, 116, 110, 109, 104, 111, 114, 129, 108, 110, 115, 116, 110, 101, 123, 112, 101, 93, 113, 122, 114, 113, 117, 111, 114, 106, 114, 103, 103, 114, 110, 113, 122, 122, 98, 106, 111, 105, 108, 106, 111, 109, 107, 109, 108, 102, 101, 110, 99, 101, 109, 116, 113, 119, 123, 107, 104, 110, 113, 111, 110, 110, 101, 105, 109, 108, 129, 118, 104, 106, 109, 109, 107, 104, 92, 101, 94, 112, 116, 111, 101, 124, 118, 111, 107, 119, 100, 101, 122, 108, 115, 108, 112, 110, 117, 104, 113, 109, 110, 119, 103, 97, 120, 113, 123, 113, 112, 118, 120, 102, 123, 113, 121, 116, 112, 105, 116, 105, 111, 112, 113, 110, 118, 104, 110, 108, 117, 133, 107, 105, 117, 109, 105, 105, 105, 98, 114, 100, 107, 117, 114, 107, 106, 104, 106, 105, 112, 120, 112, 110, 109, 107, 102, 101, 107, 103, 115, 110, 115, 100, 109, 116, 142, 107, 105, 124, 114, 116, 117, 102, 111, 118, 105, 115, 102, 87, 121, 110, 108, 116, 113, 92, 106, 107, 111, 111, 110, 114, 117, 104, 103, 104, 112, 111, 110, 96, 111, 112, 116, 106, 100, 116, 107, 102, 110, 118, 112, 107, 103, 93, 108, 117, 109, 121, 111, 105, 122, 124, 121, 116, 112, 106, 139, 118, 105, 117, 107, 105, 104, 117, 109, 110, 103, 106, 102, 110, 114, 119, 106, 114, 111, 111, 127, 107, 105, 104, 117, 101, 103, 113, 109, 104, 111, 107, 111, 114, 109, 114, 104, 97, 111, 125, 104, 106, 90, 100, 113, 109, 105, 116, 98, 114, 122, 112, 108, 111, 99, 120, 110, 123, 114, 100, 113, 113, 98, 119, 119, 100, 113, 111, 103, 96, 131, 119, 94, 103, 105, 102, 100, 106, 105, 107, 104, 109, 116, 95, 118, 111, 104, 107, 119, 107, 98, 116, 114, 104, 114, 108, 120, 107, 118, 116, 111, 95, 124, 115, 107, 110, 104, 114, 122, 110, 100, 110, 105, 111, 111, 103, 109, 116, 110, 116, 107, 117, 100, 109, 108, 109, 107, 122, 111, 100, 109, 114, 106, 114, 107, 114, 118, 109, 102, 117, 113, 103, 103, 117, 101, 100, 114, 104, 101, 107, 96, 103, 130, 100, 108, 115, 106, 105, 102, 117, 97, 97, 116, 105, 103, 109, 110, 116, 113, 107, 116, 111, 113, 112, 108, 113, 101, 114, 121, 109, 106, 107, 114, 111, 131, 108, 106, 106, 107, 114, 97, 111, 129, 116, 119, 108, 106, 104, 121, 104, 121, 109, 114, 101, 116, 122, 108, 110, 105, 105, 110, 105, 113, 107, 114, 118, 122, 102, 110, 108, 102, 112, 125, 112, 119, 112, 116, 106, 105, 119, 113, 100, 96, 111, 118, 114, 94, 108, 107, 106, 102, 103, 113, 101, 108, 115, 113, 110, 104, 112, 112, 112, 114, 91, 107, 98, 116, 104, 94, 115, 103, 119, 113, 112, 110, 110, 117, 101, 95, 108, 109, 110, 117, 114, 96, 107, 110, 97, 125, 101, 109, 109, 105, 106, 119, 103, 117, 93, 112, 111, 110, 112, 119, 117, 116, 105, 112, 105, 103, 114, 108, 116, 115, 131, 106, 108, 114, 112, 111, 109, 111, 108, 106, 124, 121, 110, 118, 108, 116, 106, 113, 104, 111, 107, 105, 107, 108, 99, 114, 114, 112, 106, 116, 102, 110, 109, 115, 112, 117, 108, 104, 101, 108, 105, 112, 114, 115, 114, 109, 124, 113, 108, 113, 108, 117, 109, 112, 112, 110, 111, 102, 110, 103, 111, 107, 108, 132, 96, 105, 107, 115, 115, 93, 108, 111, 109, 122, 110, 105, 102, 107, 107, 111, 114, 107, 115, 109, 123, 110, 110, 82, 116, 108, 113, 93, 117, 105, 94, 107, 100, 109, 113, 106, 119, 122, 98, 110, 109, 119, 111, 103, 102, 104, 107, 91, 114, 103, 89, 105, 110, 104, 97, 127, 106, 102, 99, 108, 104, 101, 113, 100, 113, 100, 114, 108, 99, 109, 106, 115, 108, 112, 112, 100, 114, 88, 113, 103, 103, 108, 98, 108, 108, 104, 108, 112, 102, 109, 109, 100, 112, 100, 111, 106, 109, 107, 99, 103, 109, 97, 102, 117, 120, 124, 110, 106, 109, 114, 108, 102, 105, 117, 116, 103, 104, 110, 108, 92, 120, 116, 109, 96, 99, 120, 106, 108, 105, 118, 127, 107, 118, 105, 96, 107, 105, 96, 100, 98, 103, 102, 113, 104, 115, 112, 98, 105, 109, 110, 104, 123, 103, 127, 110, 119, 128, 106, 107, 104, 98, 101, 104, 107, 101, 98, 111, 106, 109, 116, 111, 119, 108, 109, 115, 108, 109, 116, 111, 107, 104, 116, 109, 107, 109, 114, 94, 102, 108, 109, 107, 109, 117, 109, 113, 125, 119, 119, 120, 111, 105, 111, 106, 109, 118, 109, 140, 106, 103, 106, 122, 104, 112, 116, 113, 103, 110, 102, 100, 121, 114, 101, 115, 97, 112, 126, 97, 96, 99, 98, 103, 110, 110, 97, 124, 127, 98, 110, 102, 125, 110, 96, 109, 108, 109, 106, 90, 108, 111, 98, 106, 124, 116, 118, 108, 104, 107, 114, 90, 107, 110, 128, 110, 108, 103, 109, 111, 105, 117, 124, 107, 116, 112, 107, 102, 109, 113, 123, 104, 114, 110, 112, 110, 109, 114, 105, 97, 152, 99, 106, 112, 109, 118, 106, 110, 98, 118, 108, 117, 120, 104, 107, 115, 112, 109, 113, 106, 117, 122, 118, 121, 109, 104, 119, 117, 115, 107, 112, 110, 119, 95, 113, 109, 116, 110, 103, 109, 117, 105, 76, 116, 113, 102, 115, 106, 112, 121, 111, 107, 98, 118, 111, 112, 107, 107, 100, 108, 99, 109, 109, 93, 117, 127, 120, 102, 95, 119, 114, 114, 110, 118, 105, 119, 91, 124, 111, 108, 101, 117, 111, 113, 96, 102, 116, 96, 94, 111, 100, 109, 103, 99, 115, 119, 110, 103, 102, 110, 98, 126, 113, 115, 114, 97, 109, 103, 116, 108, 98, 108, 107, 124, 106, 119, 102, 107, 119, 114, 112, 112, 120, 99, 104, 114, 115, 108, 109, 109, 114, 112, 94, 115, 108, 115, 110, 100, 117, 105, 120, 104, 119, 112, 114, 108, 104, 103, 112, 108, 104, 107, 104, 110, 105, 105, 102, 117, 104, 101, 112, 114, 124, 111, 107, 125, 122, 120, 98, 108, 119, 108, 96, 101, 109, 109, 103, 118, 111, 103, 117, 95, 112, 119, 109, 106, 115, 109, 111, 111, 105, 122, 107, 90, 101, 113, 120, 100, 103, 110, 122, 109, 114, 109, 111, 109, 107, 113, 109, 117, 107, 100, 106, 117, 112, 112, 111, 111, 119, 103, 109, 114, 114, 113, 101, 115, 107, 108, 104, 110, 106, 100, 121, 107, 94, 127, 120, 107, 94, 110, 105, 105, 114, 104, 105, 126, 102, 109, 108, 103, 111, 110, 103, 118, 112, 105, 112, 110, 105, 104, 113, 111, 108, 110, 104, 109, 109, 104, 103, 118, 97, 113, 106, 100, 121, 106, 113, 115, 108, 108, 105, 115, 114, 115, 101, 114, 114, 124, 99, 124, 107, 114, 114, 105, 116, 98, 105, 109, 111, 112, 108, 109, 111, 106, 99, 102, 107, 110, 114, 107, 98, 120, 107, 99, 101, 104, 107, 112, 89, 105, 105, 101, 108, 107, 99, 119, 113, 101, 120, 120, 96, 135, 103, 116, 114, 111, 109, 103, 107, 121, 109, 108, 108, 108, 107, 110, 113, 109, 105, 106, 100, 108, 120, 115, 106, 115, 107, 108, 111, 106, 100, 110, 112, 107, 102, 113, 107, 106, 112, 114, 109, 104, 101, 111, 101, 104, 111, 108, 124, 105, 111, 112, 108, 109, 108, 108, 115, 117, 111, 113, 110, 102, 116, 112, 102, 114, 112, 110, 103, 101, 109, 114, 109, 115, 105, 98, 121, 109, 113, 113, 117, 108, 104, 103, 100, 105, 103, 110, 109, 108, 111, 102, 115, 109, 108, 118, 102, 103, 105, 107, 107, 102, 114, 104, 98, 121, 108, 105, 113, 98, 102, 107, 122, 105, 131, 109, 103, 113, 102, 106, 108, 98, 115, 109, 101, 101, 106, 111, 109, 103, 115, 103, 102, 104, 112, 110, 112, 102, 101, 103, 98, 98, 107, 114, 107, 101, 108, 109, 120, 111, 118, 112, 105, 99, 100, 118, 135, 109, 116, 117, 110, 113, 107, 108, 101, 114, 112, 107, 119, 108, 128, 106, 113, 120, 111, 105, 102, 108, 115, 103, 109, 98, 109, 107, 102, 112, 108, 103, 109, 103, 102, 110, 114, 118, 105, 106, 105, 112, 115, 118, 100, 105, 97, 107, 110, 113, 99, 113, 96, 116, 104, 106, 100, 102, 118, 94, 110, 114, 109, 115, 109, 108, 105, 116, 99, 105, 116, 100, 104, 111, 107, 103, 105, 106, 121, 130, 114, 108, 104, 115, 107, 114, 98, 110, 105, 106, 107, 114, 116, 105, 101, 106, 104, 104, 110, 114, 102, 113, 101, 124, 108, 103, 102, 121, 105, 111, 105, 119, 97, 107, 116, 106, 116, 114, 103, 107, 109, 111, 118, 118, 108, 103, 102, 105, 118, 104, 115, 98, 112, 110, 102, 108, 102, 101, 114, 112, 108, 106, 104, 119, 115, 105, 108, 107, 114, 95, 101, 103, 114, 109, 123, 119, 110, 111, 119, 113, 106, 111, 109, 107, 107, 104, 108, 112, 109, 105, 108, 99, 109, 107, 110, 109, 109, 109, 115, 109, 103, 110, 110, 105, 111, 114, 108, 108, 113, 115, 120, 104, 106, 114, 106, 116, 110, 113, 102, 114, 102, 125, 109, 113, 120, 101, 98, 101, 108, 114, 105, 115, 108, 118, 109, 109, 113, 137, 114, 103, 109, 126, 104, 105, 103, 118, 119, 110, 99, 95, 110, 104, 109, 107, 112, 103, 123, 100, 113, 113, 97, 110, 103, 102, 104, 115, 105, 112, 115, 109, 103, 115, 112, 107, 113, 103, 109, 100, 123, 121, 106, 114, 98, 108, 105, 113, 112, 113, 107, 111, 109, 104, 108, 112, 112, 108, 103, 105, 104, 108, 110, 109, 114, 109, 111, 109, 109, 111, 115, 113, 116, 113, 124, 102, 106, 105, 112, 104, 126, 119, 106, 112, 110, 111, 113, 109, 112, 115, 110, 106, 113, 112, 106, 108, 109, 104, 115, 138, 105, 107, 113, 111, 116, 106, 107, 113, 112, 110, 107, 108, 109, 114, 104, 105, 103, 107, 110, 106, 111, 107, 112, 113, 112, 110, 106, 114, 108, 113, 109, 110, 114, 111, 109, 112, 107, 109, 110, 110, 105, 112, 111, 121, 109, 108, 116, 116, 106, 108, 109, 110, 105, 104, 113, 135, 114, 106, 100, 111, 113, 112, 105, 120, 113, 112, 111, 109, 103, 110, 106, 116, 110, 107, 103, 106, 112, 111, 111, 108, 111, 112, 118, 111, 106, 109, 100, 107, 110, 130, 110, 108, 108, 109, 108, 108, 111, 112, 113, 109, 112, 122, 103, 111, 107, 97, 113, 114, 109, 106, 109, 114, 108, 109, 115, 122, 108, 111, 115, 103, 108, 113, 107, 113, 112, 110, 108, 112, 107, 108, 105, 109, 105, 114, 114, 108, 113, 107, 110, 111, 109, 107, 108, 114, 106, 105, 115, 112, 113, 110, 109, 108, 111, 116, 112, 108, 109, 109, 115, 107, 109, 104, 107, 115, 110, 116, 117, 103, 115, 114, 116, 112, 108, 113, 108, 109, 109, 110, 108, 112, 114, 115, 110, 110, 98, 112, 103, 108, 110, 108, 110, 108, 106, 111, 111, 104, 116, 110, 103, 114, 116, 104, 97, 108, 106, 115, 96, 107, 114, 109, 112, 94, 113, 108, 107, 125, 110, 111, 107, 111, 114, 107, 109, 113, 112, 114, 106, 111, 116, 105, 115, 111, 112, 111, 116, 107, 105, 113, 110, 107, 116, 104, 118, 111, 104, 105, 107, 107, 112, 106, 120, 109, 112, 109, 105, 117, 114, 105, 111, 109, 112, 106, 105, 109, 108, 117, 103, 112, 113, 108, 112, 115, 123, 106, 107, 98, 106, 107, 109, 104, 110, 107, 106, 112, 111, 121, 110, 112, 111, 108, 112, 111, 112, 108, 108, 107, 107, 119, 112, 107, 120, 105, 110, 108, 104, 106, 120, 101, 111, 111, 109, 108, 110, 108, 107, 111, 107, 104, 108, 109, 105, 114, 112, 114, 104, 105, 110, 110, 111, 116, 109, 108, 105, 112, 113, 115, 110, 123, 104, 106, 106, 108, 101, 113, 106, 113, 106, 114, 98, 113, 110, 107, 112, 105, 106, 110, 109, 113, 110, 111, 111, 111, 108, 104, 101, 106, 113, 112, 120, 112, 112, 112, 110, 111, 118, 108, 110, 125, 105, 107, 106, 108, 104, 113, 109, 91, 111, 103, 100, 114, 111, 108, 109, 109, 109, 107, 104, 106, 108, 113, 108, 102, 104, 97, 117, 112, 95, 114, 114, 114, 112, 114, 106, 110, 115, 114, 106, 108, 114, 105, 105, 108, 108, 106, 113, 115, 102, 106, 107, 107, 101, 107, 111, 108, 111, 110, 114, 109, 105, 108, 111, 114, 115, 107, 113, 108, 108, 103, 108, 105, 107, 110, 105, 103, 113, 108, 106, 109, 92, 105, 109, 92, 117, 114, 109, 116, 115, 111, 111, 97, 111, 110, 115, 108, 107, 116, 109, 114, 114, 103, 108, 108, 105, 99, 107, 91, 114, 106, 118, 98, 107, 115, 101, 103, 96, 116, 113, 110, 106, 110, 107, 98, 105, 110, 115, 101, 118, 111, 108, 110, 114, 108, 115, 112, 107, 103, 111, 102, 114, 115, 97, 107, 117, 118, 106, 115, 106, 120, 110, 112, 104, 107, 107, 109, 116, 112, 112, 103, 124, 112, 108, 115, 111, 108, 104, 109, 102, 110, 104, 97, 116, 100, 115, 115, 104, 101, 104, 100, 110, 109, 110, 108, 108, 107, 110, 113, 107, 104, 107, 112, 115, 113, 92, 112, 109, 99, 100, 104, 113, 116, 118, 108, 115, 112, 120, 116, 113, 104, 108, 100, 111, 119, 97, 108, 116, 107, 102, 113, 105, 103, 109, 106, 122, 106, 103, 112, 116, 118, 95, 110, 110, 119, 112, 83, 107, 109, 106, 121, 100, 104, 106, 98, 124, 118, 111, 115, 109, 105, 92, 111, 99, 105, 108, 100, 107, 115, 114, 110, 112, 98, 119, 109, 100, 111, 118, 120, 112, 111, 104, 103, 111, 112, 105, 104, 103, 120, 106, 109, 107, 109, 96, 111, 110, 104, 108, 104, 108, 100, 112, 109, 99, 110, 118, 99, 127, 96, 111, 111, 108, 102, 95, 109, 113, 105, 110, 109, 111, 108, 100, 126, 110, 113, 111, 113, 113, 108, 102, 112, 110, 97, 105, 107, 105, 115, 101, 118, 127, 111, 119, 109, 104, 110, 107, 97, 115, 119, 103, 104, 112, 112, 128, 105, 109, 111, 117, 116, 101, 92, 118, 106, 108, 107, 120, 115, 110, 117, 107, 113, 103, 110, 109, 111, 109, 100, 104, 111, 110, 108, 109, 114, 112, 101, 117, 102, 88, 108, 107, 108, 96, 132, 112, 107, 102, 113, 101, 107, 99, 109, 113, 109, 103, 106, 103, 110, 120, 108, 118, 111, 113, 119, 116, 106, 118, 102, 107, 109, 104, 111, 117, 99, 114, 112, 115, 127, 97, 119, 117, 95, 106, 113, 108, 105, 95, 106, 102, 110, 116, 112, 117, 123, 120, 99, 107, 108, 108, 111, 103, 103, 100, 114, 115, 115, 113, 110, 109, 113, 107, 102, 129, 107, 104, 97, 109, 91, 105, 98, 122, 103, 106, 109, 107, 112, 109, 96, 118, 104, 120, 108, 108, 96, 105, 110, 107, 119, 107, 112, 117, 116, 113, 105, 140, 110, 112, 118, 106, 106, 110, 102, 110, 103, 109, 104, 121, 105, 94, 105, 112, 110, 116, 111, 101, 113, 123, 105, 119, 115, 111, 104, 128, 98, 104, 111, 110, 120, 110, 102, 109, 109, 105, 103, 128, 106, 109, 111, 113, 114, 105, 99, 101, 106, 112, 68, 107, 110, 109, 98, 105, 89, 114, 116, 111, 106, 115, 104, 113, 108, 106, 102, 103, 117, 92, 108, 81, 101, 117, 109, 98, 107, 108, 118, 110, 111, 109, 108, 96, 111, 104, 113, 107, 99, 111, 120, 114, 113, 104, 111, 108, 92, 108, 114, 108, 111, 114, 106, 103, 118, 112, 106, 112, 103, 111, 118, 107, 114, 109, 106, 114, 122, 108, 112, 112, 113, 110, 114, 112, 110, 110, 115, 109, 115, 109, 112, 112, 105, 110, 111, 111, 117, 125, 123, 110, 104, 108, 113, 124, 118, 109, 108, 111, 109, 111, 111, 111, 106, 109, 119, 104, 111, 136, 117, 113, 113, 118, 110, 115, 114, 118, 110, 108, 121, 113, 109, 106, 110, 110, 111, 103, 114, 111, 111, 104, 109, 107, 104, 116, 108, 112, 109, 111, 109, 122, 102, 113, 116, 110, 109, 110, 95, 115, 106, 111, 109, 118, 109, 107, 113, 110, 115, 112, 119, 112, 104, 112, 118, 110, 107, 113, 105, 117, 122, 112, 108, 110, 107, 107, 115, 108, 113, 105, 100, 113, 106, 110, 103, 114, 114, 108, 111, 113, 108, 111, 107, 110, 107, 115, 113, 108, 112, 109, 111, 100, 108, 109, 111, 112, 109, 110, 109, 103, 113, 109, 107, 113, 114, 116, 112, 123, 113, 104, 109, 109, 110, 114, 111, 117, 107, 113, 113, 110, 100, 100, 102, 112, 107, 109, 113, 108, 108, 106, 112, 111, 105, 113, 106, 112, 112, 105, 114, 109, 111, 113, 107, 112, 109, 108, 106, 119, 105, 109, 109, 112, 106, 116, 108, 107, 110, 125, 111, 115, 110, 110, 111, 114, 110, 109, 120, 108, 120, 105, 116, 114, 112, 107, 106, 109, 108, 105, 113, 114, 104, 110, 112, 110, 108, 109, 113, 117, 110, 111, 112, 110, 109, 113, 108, 110, 112, 127, 124, 97, 112, 110, 110, 117, 113, 112, 104, 113, 130, 120, 110, 114, 107, 109, 111, 121, 108, 102, 105, 117, 111, 113, 112, 109, 110, 110, 104, 110, 111, 114, 101, 112, 108, 114, 105, 119, 107, 109, 114, 110, 105, 108, 114, 106, 123, 111, 117, 110, 113, 113, 108, 110, 98, 109, 111, 126, 111, 115, 124, 120, 112, 108, 113, 115, 109, 105, 112, 111, 103, 102, 110, 111, 111, 101, 106, 100, 111, 110, 111, 112, 110, 114, 109, 107, 136, 117, 106, 111, 111, 112, 128, 108, 109, 105, 111, 112, 110, 112, 110, 114, 110, 103, 107, 106, 109, 117, 114, 109, 112, 111, 112, 116, 106, 114, 108, 110, 113, 117, 112, 108, 109, 108, 114, 111, 106, 112, 109, 104, 113, 114, 104, 103, 105, 107, 110, 108, 110, 102, 108, 115, 115, 108, 103, 112, 105, 112, 125, 102, 111, 110, 111, 111, 113, 98, 108, 114, 123, 113, 109, 111, 111, 110, 105, 103, 113, 104, 95, 120, 105, 113, 107, 111, 107, 123, 99, 106, 108, 103, 112, 99, 111, 113, 108, 112, 117, 109, 104, 90, 105, 104, 114, 121, 111, 113, 105, 101, 111, 110, 109, 107, 113, 110, 106, 102, 97, 103, 111, 125, 110, 100, 111, 104, 103, 118, 104, 108, 107, 107, 113, 113, 108, 110, 107, 118, 114, 105, 112, 105, 111, 110, 114, 117, 108, 105, 106, 105, 114, 114, 106, 103, 107, 110, 106, 103, 110, 107, 107, 115, 121, 113, 106, 112, 110, 116, 105, 109, 101, 107, 101, 110, 111, 133, 105, 94, 111, 98, 106, 108, 94, 117, 104, 102, 108, 115, 106, 110, 108, 106, 109, 102, 99, 110, 104, 109, 100, 106, 110, 110, 107, 106, 103, 110, 111, 108, 102, 101, 105, 109, 110, 107, 112, 104, 112, 105, 103, 116, 95, 106, 107, 116, 105, 119, 120, 112, 113, 118, 112, 104, 117, 116, 113, 122, 109, 112, 112, 104, 108, 110, 108, 113, 107, 108, 107, 101, 101, 102, 106, 121, 106, 113, 113, 106, 98, 116, 112, 111, 105, 126, 113, 122, 113, 103, 102, 110, 103, 108, 110, 111, 114, 108, 109, 114, 105, 114, 116, 113, 115, 124, 121, 111, 103, 131, 112, 107, 103, 99, 113, 113, 108, 119, 101, 100, 109, 102, 106, 112, 116, 112, 117, 106, 103, 105, 111, 110, 105, 125, 109, 95, 112, 117, 111, 114, 100, 105, 112, 119, 107, 110, 106, 104, 121, 109, 114, 107, 109, 100, 104, 109, 104, 110, 125, 110, 114, 121, 107, 122, 100, 112, 101, 112, 108, 109, 101, 110, 111, 110, 100, 97, 112, 107, 114, 105, 110, 107, 102, 102, 114, 104, 122, 96, 119, 110, 113, 116, 111, 111, 107, 112, 104, 119, 118, 117, 107, 116, 116, 142, 107, 93, 112, 119, 110, 95, 108, 104, 108, 110, 114, 112, 96, 112, 100, 105, 106, 107, 118, 108, 114, 114, 108, 107, 111, 104, 118, 104, 110, 107, 115, 112, 104, 106, 109, 105, 104, 103, 107, 93, 103, 107, 117, 113, 111, 107, 107, 100, 105, 114, 113, 107, 99, 112, 135, 107, 104, 98, 104, 131, 109, 87, 108, 112, 112, 115, 110, 107, 100, 105, 108, 117, 113, 114, 107, 104, 111, 95, 109, 107, 96, 99, 102, 111, 106, 117, 100, 102, 98, 99, 102, 116, 100, 109, 112, 108, 117, 112, 123, 116, 120, 105, 110, 111, 104, 105, 107, 104, 109, 103, 113, 103, 110, 112, 116, 115, 108, 112, 112, 112, 125, 118, 119, 110, 110, 107, 105, 110, 104, 103, 106, 119, 101, 107, 104, 112, 103, 111, 112, 113, 112, 107, 112, 109, 116, 113, 118, 117, 112, 114, 107, 109, 102, 112, 107, 114, 110, 112, 111, 117, 113, 112, 106, 107, 107, 110, 105, 112, 109, 117, 97, 105, 114, 110, 108, 121, 111, 104, 103, 114, 97, 109, 96, 107, 110, 115, 100, 111, 110, 111, 115, 108, 116, 111, 104, 110, 108, 104, 95, 108, 115, 98, 110, 112, 110, 109, 112, 104, 114, 111, 109, 103, 113, 111, 107, 112, 101, 104, 109, 117, 103, 116, 114, 114, 104, 117, 113, 113, 108, 99, 106, 118, 115, 123, 110, 104, 104, 115, 91, 111, 106, 105, 110, 112, 109, 111, 114, 120, 111, 116, 113, 107, 110, 92, 112, 111, 113, 102, 106, 124, 107, 110, 112, 108, 113, 108, 111, 117, 121, 105, 111, 114, 127, 120, 112, 96, 105, 112, 100, 112, 110, 103, 111, 99, 104, 102, 102, 99, 107, 95, 114, 117, 111, 100, 106, 120, 121, 111, 106, 106, 107, 109, 105, 116, 112, 106, 101, 106, 115, 110, 99, 111, 102, 108, 107, 104, 116, 107, 116, 113, 112, 106, 108, 113, 83, 112, 117, 112, 110, 109, 121, 129, 118, 108, 110, 103, 114, 108, 104, 132, 107, 110, 114, 107, 107, 118, 115, 115, 112, 102, 110, 113, 113, 118, 95, 112, 114, 112, 105, 110, 108, 107, 114, 109, 104, 105, 111, 111, 117, 106, 116, 113, 100, 115, 154, 112, 121, 113, 109, 104, 114, 109, 112, 110, 113, 116, 108, 108, 110, 112, 107, 111, 104, 115, 110, 107, 107, 108, 113, 112, 108, 115, 112, 119, 96, 108, 111, 113, 118, 106, 115, 115, 108, 114, 110, 107, 98, 109, 109, 111, 111, 116, 117, 110, 110, 120, 109, 106, 111, 99, 113, 109, 113, 111, 100, 102, 111, 107, 103, 122, 111, 106, 110, 106, 112, 106, 110, 112, 112, 113, 115, 108, 110, 112, 106, 111, 110, 114, 101, 108, 102, 112, 104, 107, 106, 112, 107, 95, 112, 107, 110, 109, 110, 124, 114, 100, 107, 101, 105, 107, 112, 105, 102, 106, 112, 110, 105, 114, 107, 89, 109, 111, 108, 127, 112, 104, 112, 109, 114, 107, 104, 107, 114, 104, 109, 107, 105, 117, 111, 112, 112, 110, 110, 108, 111, 105, 103, 110, 116, 109, 106, 108, 113, 104, 108, 111, 107, 113, 108, 110, 109, 107, 103, 113, 106, 107, 115, 110, 109, 115, 129, 109, 109, 113, 112, 137, 117, 107, 114, 112, 107, 113, 109, 111, 111, 107, 111, 106, 87, 115, 87, 112, 105, 105, 106, 106, 110, 114, 105, 117, 113, 106, 107, 112, 112, 108, 112, 111, 106, 111, 110, 117, 109, 113, 107, 108, 109, 113, 109, 108, 114, 104, 104, 113, 97, 111, 112, 107, 106, 107, 107, 114, 105, 104, 114, 116, 107, 104, 108, 103, 115, 105, 113, 112, 112, 114, 110, 110, 116, 108, 119, 107, 108, 107, 115, 108, 113, 113, 110, 107, 102, 107, 104, 109, 107, 106, 103, 104, 112, 119, 108, 110, 115, 103, 113, 112, 108, 100, 105, 103, 114, 123, 107, 106, 112, 104, 113, 116, 105, 117, 105, 111, 110, 113, 106, 113, 107, 107, 108, 107, 110, 106, 114, 103, 118, 107, 95, 108, 107, 112, 119, 105, 109, 113, 116, 112, 117, 106, 107, 106, 105, 114, 111, 110, 107, 106, 114, 109, 114, 109, 109, 114, 99, 113, 110, 110, 119, 110, 107, 111, 111, 114, 110, 115, 115, 114, 110, 139, 102, 114, 108, 105, 116, 104, 101, 103, 114, 113, 107, 114, 112, 105, 114, 106, 102, 103, 107, 104, 112, 109, 110, 139, 83, 107, 111, 120, 111, 84, 109, 103, 110, 112, 107, 106, 110, 114, 123, 109, 112, 115, 102, 114, 111, 106, 109, 112, 112, 111, 105, 111, 109, 107, 108, 99, 105, 101, 107, 106, 113, 114, 106, 105, 111, 114, 108, 109, 109, 111, 108, 112, 108, 120, 104, 101, 109, 109, 105, 116, 121, 113, 107, 114, 102, 105, 112, 105, 108, 110, 102, 112, 101, 110, 106, 111, 115, 116, 112, 110, 103, 106, 119, 117, 105, 107, 110, 121, 100, 108, 109, 111, 106, 108, 103, 107, 101, 126, 118, 104, 105, 101, 109, 109, 144, 106, 96, 105, 118, 100, 108, 118, 101, 97, 116, 108, 109, 107, 112, 110, 119, 113, 102, 109, 116, 112, 118, 102, 104, 107, 107, 113, 125, 122, 107, 123, 91, 104, 125, 121, 106, 114, 113, 102, 109, 114, 102, 99, 111, 103, 111, 95, 107, 101, 111, 109, 102, 115, 124, 105, 109, 131, 116, 116, 104, 109, 103, 106, 114, 104, 115, 104, 106, 110, 111, 119, 98, 117, 113, 103, 103, 113, 102, 120, 110, 103, 114, 111, 104, 102, 104, 111, 115, 106, 110, 120, 112, 98, 108, 111, 109, 104, 112, 115, 105, 107, 112, 115, 110, 119, 115, 89, 113, 114, 108, 105, 118, 107, 124, 107, 107, 112, 111, 113, 113, 106, 104, 109, 117, 113, 114, 118, 113, 110, 106, 103, 106, 108, 111, 109, 111, 109, 111, 117, 101, 105, 106, 122, 118, 108, 112, 114, 104, 115, 108, 104, 101, 104, 117, 102, 109, 109, 110, 114, 104, 121, 113, 114, 98, 111, 100, 104, 113, 105, 102, 102, 111, 101, 122, 104, 136, 114, 115, 123, 107, 111, 107, 108, 104, 114, 105, 105, 102, 114, 97, 125, 115, 114, 112, 122, 113, 126, 124, 117, 108, 107, 114, 115, 117, 101, 116, 114, 107, 117, 86, 110, 98, 120, 110, 103, 112, 117, 106, 119, 99, 115, 106, 112, 121, 98, 114, 108, 107, 119, 105, 109, 108, 131, 112, 115, 109, 104, 106, 103, 115, 114, 99, 109, 128, 99, 110, 112, 117, 102, 115, 99, 86, 111, 107, 106, 120, 113, 105, 113, 103, 113, 112, 108, 112, 113, 55, 109, 110, 98, 112, 111, 108, 111, 117, 108, 108, 122, 106, 110, 111, 103, 113, 113, 114, 102, 118, 115, 117, 108, 110, 97, 105, 108, 111, 110, 109, 113, 109, 95, 116, 107, 110, 109, 110, 85, 119, 107, 70, 108, 108, 108, 110, 117, 115, 105, 108, 103, 105, 109, 101, 136, 102, 106, 114, 100, 116, 118, 122, 107, 122, 108, 109, 117, 101, 114, 108, 101, 112, 109, 86, 121, 112, 104, 108, 126, 110, 113, 111, 114, 95, 113, 108, 110, 112, 114, 104, 112, 97, 105, 112, 111, 116, 111, 107, 109, 104, 114, 127, 111, 97, 113, 81, 105, 113, 99, 119, 109, 110, 113, 119, 108, 109, 120, 106, 95, 112, 97, 104, 106, 104, 111, 108, 109, 108, 113, 105, 120, 107, 99, 106, 109, 104, 113, 110, 102, 111, 100, 111, 126, 124, 104, 92, 117, 110, 100, 107, 105, 82, 101, 110, 113, 107, 109, 112, 100, 103, 105, 104, 110, 110, 112, 109, 109, 94, 113, 100, 110, 104, 119, 111, 106, 110, 110, 106, 112, 112, 109, 101, 116, 102, 113, 111, 120, 105, 107, 115, 99, 126, 93, 101, 120, 108, 103, 109, 108, 104, 103, 103, 111, 111, 109, 111, 108, 114, 111, 117, 113, 110, 99, 101, 95, 109, 111, 110, 114, 131, 109, 109, 113, 102, 110, 112, 105, 108, 107, 110, 111, 97, 117, 113, 100, 103, 110, 102, 105, 102, 99, 110, 96, 113, 120, 112, 109, 113, 114, 107, 115, 103, 109, 110, 109, 125, 96, 115, 109, 99, 111, 110, 111, 112, 105, 105, 118, 103, 111, 109, 111, 115, 104, 120, 112, 113, 118, 122, 103, 112, 109, 111, 97, 116, 103, 111, 111, 135, 106, 105, 112, 112, 127, 112, 108, 115, 109, 107, 113, 111, 107, 111, 109, 109, 102, 114, 109, 102, 100, 104, 108, 109, 113, 106, 137, 108, 125, 108, 104, 113, 106, 103, 113, 108, 109, 112, 105, 104, 113, 111, 114, 104, 123, 113, 110, 99, 115, 110, 109, 111, 113, 107, 109, 106, 110, 108, 114, 110, 114, 110, 101, 108, 109, 109, 101, 111, 124, 107, 115, 115, 104, 115, 109, 112, 109, 120, 111, 108, 103, 114, 104, 111, 118, 115, 103, 98, 104, 119, 107, 106, 109, 114, 102, 111, 108, 105, 111, 109, 110, 107, 116, 110, 118, 111, 114, 98, 112, 111, 108, 105, 114, 106, 104, 122, 99, 106, 106, 107, 120, 111, 111, 113, 104, 118, 113, 109, 109, 117, 87, 119, 111, 110, 115, 128, 111, 102, 112, 106, 105, 117, 119, 108, 112, 100, 115, 103, 110, 109, 94, 105, 112, 103, 106, 121, 116, 102, 115, 112, 107, 111, 109, 121, 106, 99, 103, 115, 102, 101, 112, 107, 109, 112, 101, 101, 109, 112, 106, 112, 116, 103, 121, 108, 107, 111, 102, 112, 113, 106, 107, 106, 114, 109, 87, 111, 119, 106, 106, 108, 102, 108, 97, 118, 115, 105, 111, 113, 109, 104, 118, 115, 116, 112, 114, 108, 116, 109, 106, 163, 116, 98, 103, 113, 112, 114, 109, 109, 111, 119, 116, 106, 102, 116, 110, 112, 114, 107, 107, 112, 111, 110, 113, 98, 105, 115, 113, 93, 116, 108, 101, 111, 103, 110, 101, 111, 110, 102, 111, 150, 102, 111, 115, 110, 95, 109, 111, 100, 114, 103, 68, 114, 121, 108, 110, 110, 101, 108, 104, 103, 115, 107, 114, 112, 129, 109, 113, 101, 111, 109, 106, 113, 111, 112, 107, 133, 98, 118, 108, 116, 115, 114, 117, 105, 117, 113, 119, 106, 110, 97, 112, 99, 107, 111, 107, 103, 126, 112, 106, 104, 108, 111, 115, 110, 106, 115, 109, 110, 111, 96, 109, 111, 113, 102, 106, 102, 114, 99, 114, 110, 109, 81, 102, 105, 119, 112, 119, 107, 103, 112, 117, 100, 111, 121, 108, 111, 105, 112, 116, 103, 114, 109, 106, 106, 111, 116, 97, 114, 123, 120, 113, 110, 102, 102, 108, 111, 115, 111, 106, 104, 105, 100, 119, 106, 115, 113, 110, 111, 113, 109, 98, 121, 109, 103, 103, 98, 115, 112, 117, 141, 109, 116, 113, 116, 117, 103, 110, 115, 122, 114, 101, 122, 113, 111, 109, 108, 129, 116, 112, 111, 123, 115, 110, 116, 102, 114, 109, 118, 111, 113, 108, 105, 117, 102, 108, 94, 97, 115, 101, 113, 108, 110, 110, 117, 117, 112, 106, 110, 110, 107, 113, 108, 109, 112, 110, 109, 111, 111, 115, 107, 84, 109, 111, 114, 112, 109, 121, 107, 108, 108, 107, 113, 112, 101, 104, 111, 112, 110, 105, 113, 109, 111, 116, 110, 117, 109, 112, 113, 63, 108, 109, 106, 109, 101, 110, 108, 107, 114, 112, 112, 111, 113, 112, 112, 109, 108, 112, 114, 111, 111, 111, 117, 115, 112, 111, 108, 108, 117, 111, 120, 109, 107, 113, 112, 113, 112, 116, 111, 103, 111, 110, 111, 102, 109, 113, 112, 109, 109, 106, 115, 110, 111, 108, 113, 112, 110, 108, 113, 108, 124, 111, 106, 111, 113, 109, 111, 113, 108, 106, 111, 109, 113, 113, 114, 106, 111, 110, 112, 169, 111, 113, 113, 116, 107, 107, 109, 115, 107, 109, 104, 111, 113, 108, 108, 110, 112, 110, 105, 110, 116, 113, 108, 106, 110, 112, 109, 115, 89, 113, 106, 110, 109, 109, 112, 112, 110, 113, 108, 110, 111, 110, 114, 113, 111, 111, 111, 113, 106, 114, 111, 109, 114, 111, 108, 110, 110, 109, 108, 103, 109, 109, 112, 117, 107, 110, 115, 108, 115, 114, 110, 108, 107, 111, 106, 110, 112, 117, 112, 110, 108, 108, 112, 111, 108, 117, 112, 112, 110, 107, 110, 108, 112, 108, 109, 110, 107, 110, 112, 114, 109, 108, 103, 113, 112, 109, 109, 122, 112, 111, 111, 117, 108, 107, 109, 127, 111, 110, 110, 110, 112, 114, 112, 110, 115, 107, 116, 113, 119, 115, 111, 114, 109, 104, 111, 112, 110, 111, 107, 116, 113, 114, 109, 108, 114, 109, 101, 138, 111, 104, 113, 106, 110, 114, 110, 103, 110, 110, 110, 109, 114, 112, 106, 105, 113, 109, 114, 111, 111, 109, 113, 108, 111, 110, 113, 110, 110, 107, 103, 109, 120, 111, 113, 106, 107, 111, 114, 110, 111, 106, 108, 112, 99, 115, 111, 110, 109, 105, 111, 111, 107, 107, 109, 108, 114, 107, 107, 107, 109, 138, 112, 109, 110, 111, 111, 111, 111, 113, 109, 106, 114, 109, 112, 105, 107, 111, 109, 101, 111, 104, 110, 114, 104, 109, 109, 111, 110, 113, 111, 113, 110, 105, 102, 107, 106, 109, 108, 107, 126, 109, 106, 103, 114, 109, 110, 108, 114, 112, 105, 110, 111, 113, 116, 108, 109, 110, 111, 113, 112, 111, 111, 111, 109, 113, 111, 110, 111, 112, 107, 111, 114, 111, 105, 112, 110, 108, 110, 109, 113, 107, 111, 110, 110, 105, 112, 110, 107, 110, 108, 107, 111, 114, 108, 109, 113, 109, 112, 112, 111, 126, 113, 113, 107, 112, 115, 116, 117, 111, 109, 110, 110, 113, 110, 108, 110, 111, 111, 110, 107, 111, 110, 110, 111, 111, 109, 111, 107, 112, 109, 109, 116, 111, 106, 111, 112, 115, 108, 113, 116, 106, 113, 109, 98, 109, 116, 110, 108, 110, 116, 109, 109, 120, 112, 108, 76, 111, 112, 107, 111, 111, 108, 113, 101, 110, 111, 109, 113, 111, 111, 106, 133, 104, 101, 109, 111, 115, 107, 108, 111, 94, 113, 106, 113, 105, 110, 121, 94, 98, 115, 115, 108, 103, 110, 109, 106, 115, 111, 109, 101, 107, 106, 113, 110, 104, 111, 105, 112, 101, 110, 113, 115, 111, 112, 105, 108, 118, 103, 113, 112, 101, 108, 113, 99, 116, 106, 109, 111, 96, 104, 109, 116, 120, 113, 111, 114, 104, 116, 116, 104, 125, 103, 110, 113, 113, 109, 115, 116, 108, 116, 108, 108, 105, 107, 100, 107, 113, 103, 110, 113, 107, 102, 111, 106, 101, 107, 109, 110, 101, 98, 111, 112, 109, 109, 106, 110, 107, 109, 88, 110, 100, 113, 107, 111, 104, 109, 123, 111, 106, 105, 114, 110, 110, 114, 104, 117, 118, 106, 113, 108, 109, 97, 113, 112, 109, 115, 109, 114, 112, 106, 101, 111, 107, 99, 121, 101, 103, 107, 118, 113, 110, 108, 102, 118, 112, 110, 118, 115, 103, 114, 111, 104, 110, 107, 106, 114, 113, 105, 116, 103, 96, 107, 126, 118, 137, 105, 110, 111, 107, 116, 112, 108, 114, 114, 110, 111, 97, 107, 109, 108, 109, 122, 110, 107, 104, 117, 112, 122, 117, 112, 115, 112, 108, 112, 106, 108, 107, 101, 108, 105, 112, 114, 111, 112, 106, 105, 133, 108, 119, 111, 106, 104, 110, 104, 114, 111, 110, 113, 120, 115, 110, 111, 112, 91, 110, 99, 120, 115, 112, 116, 106, 125, 100, 111, 108, 108, 108, 108, 116, 101, 112, 102, 110, 114, 88, 101, 98, 112, 107, 108, 108, 107, 121, 110, 113, 111, 115, 105, 115, 130, 108, 100, 115, 111, 110, 111, 118, 108, 114, 109, 104, 104, 113, 100, 106, 107, 109, 106, 112, 107, 125, 122, 82, 108, 116, 111, 104, 114, 116, 111, 97, 116, 106, 108, 102, 108, 111, 114, 114, 112, 113, 99, 114, 116, 118, 108, 110, 115, 113, 113, 113, 107, 106, 108, 106, 111, 106, 109, 111, 109, 113, 113, 110, 111, 131, 112, 126, 120, 119, 112, 110, 110, 107, 112, 109, 91, 109, 101, 111, 109, 110, 113, 104, 114, 111, 108, 115, 107, 108, 119, 108, 105, 108, 108, 117, 106, 107, 107, 106, 111, 112, 109, 110, 113, 102, 106, 107, 108, 107, 111, 125, 118, 104, 111, 90, 108, 105, 116, 101, 112, 107, 112, 115, 104, 109, 100, 97, 96, 104, 122, 109, 109, 124, 111, 115, 116, 110, 111, 114, 116, 101, 109, 120, 108, 111, 115, 106, 112, 111, 94, 113, 109, 109, 115, 105, 109, 113, 107, 106, 106, 108, 113, 109, 101, 113, 108, 106, 101, 128, 109, 118, 110, 107, 114, 106, 108, 115, 90, 106, 112, 105, 113, 109, 96, 108, 111, 83, 102, 111, 109, 108, 110, 101, 131, 115, 110, 103, 115, 110, 109, 108, 110, 116, 116, 123, 107, 108, 114, 107, 106, 111, 105, 108, 95, 109, 112, 115, 118, 112, 111, 122, 111, 115, 105, 114, 110, 127, 103, 113, 113, 117, 108, 123, 109, 110, 103, 110, 96, 105, 101, 107, 113, 108, 114, 110, 109, 105, 113, 107, 110, 105, 119, 125, 104, 105, 109, 107, 104, 112, 109, 119, 116, 103, 130, 111, 102, 99, 105, 115, 148, 100, 102, 139, 105, 116, 118, 127, 114, 108, 120, 104, 105, 108, 110, 115, 111, 102, 107, 115, 113, 102, 119, 108, 100, 131, 104, 93, 109, 111, 113, 98, 103, 112, 112, 118, 100, 114, 116, 108, 114, 103, 113, 115, 110, 125, 117, 114, 107, 109, 144, 105, 117, 112, 101, 117, 119, 113, 97, 110, 110, 106, 118, 107, 120, 104, 108, 117, 115, 108, 112, 117, 106, 112, 119, 95, 108, 110, 98, 112, 109, 108, 108, 105, 107, 103, 102, 109, 115, 112, 102, 112, 110, 113, 105, 105, 104, 106, 114, 114, 109, 114, 105, 109, 117, 98, 107, 106, 100, 110, 102, 100, 114, 110, 109, 103, 139, 105, 104, 107, 100, 110, 109, 108, 98, 106, 109, 106, 106, 111, 108, 107, 113, 101, 138, 110, 113, 103, 110, 109, 107, 100, 111, 114, 100, 114, 104, 105, 101, 111, 98, 100, 108, 121, 108, 120, 103, 114, 114, 113, 104, 114, 120, 108, 113, 126, 114, 93, 114, 104, 104, 118, 117, 113, 113, 109, 116, 113, 108, 104, 113, 108, 118, 92, 107, 109, 117, 111, 108, 116, 102, 114, 116, 106, 105, 117, 113, 105, 107, 114, 113, 115, 107, 115, 110, 109, 105, 113, 111, 106, 102, 114, 104, 114, 110, 119, 117, 114, 108, 115, 108, 103, 108, 126, 112, 105, 109, 112, 102, 108, 107, 112, 116, 120, 98, 113, 111, 104, 107, 103, 107, 107, 103, 106, 107, 100, 103, 112, 107, 105, 105, 101, 114, 99, 103, 109, 121, 94, 107, 105, 115, 109, 106, 118, 102, 104, 103, 108, 116, 106, 108, 97, 116, 113, 110, 112, 107, 113, 118, 109, 107, 100, 109, 104, 126, 104, 114, 119, 109, 106, 114, 115, 122, 111, 113, 117, 95, 117, 99, 108, 116, 100, 107, 114, 116, 107, 108, 107, 111, 113, 112, 107, 112, 103, 113, 98, 104, 108, 103, 120, 108, 113, 118, 113, 101, 113, 108, 106, 119, 113, 120, 106, 107, 121, 110, 121, 102, 123, 114, 108, 113, 110, 118, 114, 124, 94, 114, 127, 109, 117, 112, 113, 94, 102, 101, 110, 123, 114, 107, 117, 107, 117, 107, 121, 109, 116, 106, 115, 111, 112, 114, 131, 103, 115, 106, 109, 119, 115, 112, 123, 105, 121, 101, 113, 113, 116, 103, 119, 111, 114, 106, 107, 110, 122, 120, 112, 109, 103, 103, 113, 106, 111, 116, 106, 109, 105, 112, 104, 112, 109, 113, 113, 105, 105, 110, 111, 107, 137, 85, 115, 123, 109, 109, 93, 124, 109, 102, 104, 109, 108, 102, 111, 107, 114, 117, 110, 111, 99, 105, 107, 104, 109, 118, 113, 111, 108, 105, 116, 96, 90, 111, 118, 102, 88, 109, 104, 115, 107, 117, 93, 109, 102, 109, 117, 101, 112, 92, 104, 111, 116, 112, 112, 111, 103, 112, 111, 105, 109, 117, 114, 110, 108, 105, 119, 115, 118, 110, 108, 122, 109, 103, 110, 108, 110, 104, 105, 112, 119, 110, 110, 98, 105, 109, 107, 92, 118, 111, 116, 110, 112, 107, 111, 109, 108, 106, 108, 108, 108, 107, 109, 109, 107, 109, 114, 98, 114, 102, 112, 112, 115, 112, 109, 116, 112, 110, 113, 109, 112, 112, 116, 118, 111, 109, 113, 111, 102, 116, 114, 112, 108, 104, 111, 105, 105, 112, 111, 107, 107, 118, 118, 109, 110, 105, 110, 106, 109, 111, 119, 111, 110, 109, 106, 105, 113, 109, 113, 112, 116, 110, 112, 116, 111, 111, 107, 109, 115, 107, 113, 109, 102, 98, 113, 109, 106, 110, 109, 106, 106, 113, 112, 110, 108, 106, 113, 104, 109, 107, 109, 111, 113, 115, 100, 117, 107, 100, 113, 112, 112, 105, 115, 112, 109, 111, 107, 109, 112, 114, 112, 108, 109, 111, 118, 105, 111, 108, 106, 110, 104, 113, 111, 103, 107, 112, 110, 109, 107, 111, 115, 108, 111, 115, 105, 113, 98, 112, 111, 108, 109, 110, 109, 116, 109, 110, 113, 112, 104, 114, 125, 108, 109, 107, 111, 113, 109, 108, 110, 115, 111, 120, 111, 111, 105, 103, 112, 107, 108, 109, 106, 115, 107, 106, 107, 114, 108, 108, 116, 107, 110, 108, 123, 113, 101, 107, 113, 102, 121, 117, 107, 106, 108, 107, 110, 116, 109, 107, 111, 118, 116, 111, 107, 107, 109, 115, 104, 111, 115, 107, 117, 114, 103, 113, 108, 104, 110, 108, 115, 103, 110, 109, 100, 104, 113, 113, 109, 103, 99, 111, 110, 114, 112, 110, 109, 116, 114, 104, 112, 111, 105, 109, 110, 108, 117, 112, 111, 107, 113, 95, 112, 110, 110, 102, 112, 109, 113, 112, 118, 114, 110, 112, 116, 114, 108, 108, 106, 108, 105, 112, 111, 115, 106, 111, 113, 113, 95, 111, 108, 116, 126, 107, 110, 107, 109, 107, 119, 116, 102, 100, 111, 111, 113, 112, 111, 107, 112, 107, 108, 112, 106, 114, 109, 112, 107, 104, 113, 109, 111, 112, 112, 116, 108, 102, 114, 115, 112, 111, 109, 91, 111, 110, 111, 100, 103, 104, 108, 113, 115, 107, 106, 108, 113, 111, 111, 111, 109, 94, 105, 109, 116, 111, 106, 107, 113, 114, 110, 112, 113, 111, 115, 111, 111, 120, 106, 110, 106, 111, 114, 111, 110, 107, 117, 111, 108, 115, 103, 108, 109, 108, 109, 112, 108, 107, 112, 96, 111, 108, 109, 104, 112, 110, 109, 107, 109, 104, 108, 110, 107, 105, 106, 110, 111, 107, 109, 109, 103, 113, 113, 117, 110, 106, 98, 118, 107, 109, 108, 115, 113, 122, 109, 118, 112, 111, 107, 108, 90, 109, 109, 112, 109, 110, 114, 115, 110, 108, 107, 114, 117, 109, 116, 110, 115, 116, 113, 107, 104, 102, 113, 116, 115, 109, 106, 116, 114, 102, 113, 102, 110, 110, 104, 104, 116, 112, 102, 107, 119, 114, 109, 110, 113, 113, 113, 106, 115, 115, 110, 112, 111, 104, 105, 107, 106, 112, 104, 107, 115, 105, 113, 107, 110, 111, 111, 111, 114, 109, 113, 110, 100, 110, 138, 106, 110, 102, 112, 102, 109, 114, 104, 104, 105, 109, 104, 109, 105, 109, 111, 113, 110, 107, 105, 110, 111, 113, 111, 108, 106, 109, 110, 91, 108, 106, 114, 105, 109, 111, 109, 114, 115, 107, 113, 114, 109, 106, 107, 110, 106, 110, 114, 109, 104, 113, 115, 110, 106, 107, 122, 112, 103, 101, 112, 106, 108, 110, 101, 112, 107, 117, 106, 109, 110, 110, 109, 108, 111, 97, 109, 108, 111, 116, 104, 106, 123, 111, 106, 102, 112, 112, 115, 108, 111, 110, 114, 114, 111, 126, 114, 117, 111, 116, 108, 115, 117, 110, 104, 112, 116, 110, 108, 110, 105, 116, 110, 104, 111, 109, 98, 110, 105, 109, 108, 108, 107, 112, 121, 112, 112, 113, 107, 109, 106, 112, 107, 108, 109, 116, 124, 105, 109, 113, 112, 107, 114, 107, 114, 118, 103, 110, 111, 109, 110, 111, 110, 113, 107, 114, 110, 116, 106, 113, 107, 109, 114, 109, 110, 108, 111, 113, 106, 110, 119, 106, 110, 112, 102, 113, 107, 110, 108, 115, 106, 110, 118, 112, 107, 111, 111, 111, 125, 95, 110, 108, 113, 102, 111, 109, 110, 110, 111, 113, 110, 106, 112, 111, 132, 110, 97, 109, 116, 114, 100, 113, 108, 107, 113, 112, 107, 140, 116, 107, 106, 118, 112, 100, 106, 104, 111, 113, 109, 110, 110, 117, 112, 113, 109, 110, 111, 101, 114, 106, 109, 116, 115, 108, 97, 108, 116, 109, 98, 98, 115, 108, 139, 119, 101, 109, 106, 116, 108, 98, 112, 114, 145, 110, 109, 115, 106, 106, 103, 109, 108, 131, 112, 108, 107, 107, 107, 107, 106, 114, 110, 116, 112, 109, 118, 107, 112, 115, 107, 115, 113, 114, 113, 108, 114, 116, 114, 110, 104, 104, 109, 106, 123, 109, 114, 103, 104, 113, 109, 120, 120, 107, 115, 107, 107, 105, 113, 112, 112, 116, 101, 112, 110, 114, 107, 111, 100, 97, 116, 114, 107, 119, 108, 108, 109, 103, 117, 97, 108, 108, 113, 109, 112, 107, 115, 112, 113, 113, 109, 112, 115, 111, 104, 106, 110, 106, 105, 115, 112, 116, 109, 113, 106, 106, 108, 106, 112, 107, 102, 113, 107, 107, 103, 111, 110, 97, 108, 108, 110, 113, 117, 115, 115, 117, 111, 115, 112, 111, 107, 105, 107, 103, 112, 108, 111, 118, 115, 99, 105, 111, 107, 109, 109, 109, 94, 113, 113, 117, 108, 115, 113, 113, 112, 110, 114, 112, 109, 109, 107, 105, 107, 114, 114, 113, 112, 111, 113, 111, 104, 116, 114, 99, 113, 117, 113, 111, 110, 121, 108, 112, 106, 109, 112, 109, 107, 116, 109, 107, 111, 113, 116, 113, 107, 108, 108, 109, 105, 101, 108, 105, 112, 108, 108, 108, 127, 103, 114, 109, 108, 106, 109, 112, 104, 113, 105, 106, 102, 114, 113, 112, 112, 115, 114, 111, 117, 105, 104, 104, 127, 111, 120, 114, 118, 111, 115, 110, 108, 110, 115, 108, 109, 108, 109, 114, 113, 109, 103, 113, 104, 113, 109, 114, 115, 119, 122, 99, 106, 102, 109, 110, 114, 102, 116, 110, 120, 113, 111, 101, 112, 109, 114, 108, 112, 114, 114, 104, 111, 114, 111, 106, 117, 105, 114, 95, 106, 105, 111, 108, 98, 115, 109, 114, 121, 100, 111, 109, 113, 115, 111, 111, 107, 107, 115, 121, 119, 110, 110, 117, 115, 119, 102, 110, 120, 103, 117, 104, 108, 103, 116, 109, 117, 118, 116, 111, 107, 115, 108, 110, 111, 119, 111, 107, 115, 102, 114, 106, 107, 112, 115, 105, 117, 120, 113, 114, 111, 112, 110, 111, 95, 110, 117, 114, 110, 107, 121, 111, 104, 107, 117, 109, 123, 106, 113, 106, 119, 112, 107, 112, 112, 116, 129, 105, 116, 114, 113, 109, 111, 115, 118, 116, 104, 110, 111, 111, 109, 116, 111, 117, 113, 111, 120, 103, 122, 118, 108, 113, 102, 113, 109, 112, 104, 110, 121, 102, 99, 120, 112, 115, 103, 105, 107, 108, 118, 105, 115, 107, 93, 108, 118, 107, 116, 102, 110, 108, 113, 111, 104, 112, 113, 112, 119, 106, 116, 101, 104, 117, 107, 104, 111, 117, 110, 104, 107, 99, 105, 112, 112, 108, 91, 121, 102, 115, 126, 114, 105, 112, 111, 116, 101, 114, 111, 107, 107, 104, 114, 111, 106, 105, 111, 112, 113, 113, 116, 103, 104, 110, 108, 115, 111, 99, 112, 122, 111, 97, 113, 111, 111, 115, 98, 110, 109, 97, 115, 121, 102, 115, 105, 113, 108, 113, 113, 110, 115, 104, 104, 118, 105, 110, 113, 107, 104, 116, 98, 115, 122, 110, 101, 102, 112, 110, 115, 110, 112, 144, 119, 113, 109, 100, 115, 114, 109, 107, 105, 116, 101, 111, 117, 118, 107, 113, 102, 112, 117, 113, 110, 109, 110, 102, 100, 117, 106, 111, 115, 112, 125, 102, 109, 114, 110, 119, 116, 130, 108, 121, 104, 106, 117, 109, 103, 111, 116, 106, 104, 108, 109, 111, 107, 118, 117, 108, 111, 106, 107, 115, 109, 107, 123, 117, 133, 110, 115, 113, 99, 121, 109, 110, 111, 117, 94, 112, 114, 108, 113, 106, 116, 110, 111, 111, 107, 98, 115, 102, 111, 118, 103, 103, 114, 111, 120, 119, 115, 107, 109, 117, 121, 102, 110, 122, 108, 111, 112, 104, 108, 109, 114, 110, 115, 109, 104, 98, 122, 111, 110, 107, 111, 105, 121, 113, 114, 95, 98, 110, 111, 98, 117, 114, 105, 119, 117, 104, 112, 122, 120, 98, 115, 122, 115, 108, 107, 113, 111, 114, 114, 107, 116, 101, 98, 104, 101, 121, 108, 106, 109, 112, 103, 108, 118, 105, 116, 110, 93, 95, 97, 135, 109, 112, 100, 117, 106, 105, 116, 113, 104, 114, 107, 115, 112, 115, 114, 111, 103, 113, 112, 120, 117, 111, 134, 111, 100, 110, 102, 112, 111, 101, 115, 111, 105, 109, 118, 113, 102, 110, 102, 97, 110, 110, 104, 112, 117, 110, 89, 116, 118, 107, 110, 111, 115, 112, 112, 111, 115, 107, 108, 118, 119, 116, 107, 115, 113, 103, 103, 100, 111, 116, 118, 101, 117, 113, 111, 112, 111, 104, 110, 103, 112, 113, 116, 104, 107, 113, 112, 112, 112, 112, 108, 111, 110, 98, 108, 109, 120, 107, 113, 110, 116, 101, 104, 119, 119, 105, 103, 104, 115, 107, 115, 109, 107, 102, 114, 118, 111, 113, 111, 109, 103, 117, 110, 105, 106, 112, 108, 115, 100, 109, 107, 110, 112, 107, 104, 112, 105, 114, 113, 104, 110, 109, 108, 99, 112, 107, 110, 104, 106, 111, 114, 111, 93, 105, 109, 110, 111, 104, 101, 108, 108, 109, 107, 113, 102, 111, 125, 104, 115, 111, 98, 112, 110, 107, 113, 103, 109, 112, 108, 117, 111, 102, 118, 119, 106, 116, 120, 109, 107, 110, 103, 110, 105, 117, 102, 115, 108, 108, 120, 109, 112, 110, 113, 110, 115, 114, 108, 114, 113, 96, 108, 109, 112, 108, 110, 107, 106, 108, 105, 114, 115, 104, 107, 116, 96, 104, 112, 109, 109, 113, 111, 112, 103, 109, 109, 115, 109, 98, 113, 105, 109, 109, 112, 104, 114, 106, 108, 104, 110, 107, 119, 116, 112, 108, 111, 111, 110, 110, 122, 110, 94, 112, 132, 117, 111, 107, 109, 110, 110, 104, 112, 97, 107, 111, 108, 120, 105, 114, 110, 108, 105, 109, 111, 110, 100, 108, 106, 111, 106, 109, 96, 109, 98, 110, 103, 112, 115, 115, 115, 115, 105, 108, 113, 115, 114, 111, 103, 110, 107, 106, 115, 111, 114, 114, 110, 110, 108, 109, 112, 111, 116, 110, 105, 103, 108, 107, 107, 107, 110, 114, 108, 107, 113, 108, 103, 122, 113, 109, 117, 109, 114, 131, 114, 112, 112, 119, 107, 108, 115, 114, 111, 116, 110, 106, 112, 111, 108, 106, 107, 129, 107, 116, 106, 113, 105, 112, 110, 106, 118, 109, 107, 100, 122, 104, 110, 115, 110, 110, 108, 100, 110, 111, 108, 108, 102, 112, 96, 114, 113, 102, 99, 107, 105, 124, 106, 116, 110, 114, 114, 112, 107, 111, 112, 113, 114, 118, 113, 101, 108, 113, 107, 113, 113, 107, 88, 112, 119, 103, 112, 120, 112, 106, 109, 119, 112, 109, 105, 106, 110, 109, 107, 104, 105, 124, 117, 117, 112, 111, 108, 107, 111, 108, 121, 114, 109, 109, 112, 106, 109, 111, 116, 117, 107, 106, 118, 117, 114, 106, 111, 114, 107, 103, 111, 109, 109, 105, 109, 119, 107, 117, 111, 104, 115, 112, 105, 103, 114, 109, 94, 114, 109, 109, 114, 111, 116, 113, 114, 111, 107, 113, 116, 114, 108, 104, 112, 105, 112, 107, 114, 107, 115, 100, 104, 111, 110, 107, 109, 114, 115, 114, 108, 125, 112, 114, 112, 105, 105, 109, 111, 109, 112, 108, 100, 118, 117, 112, 125, 109, 107, 117, 111, 111, 115, 106, 121, 98, 97, 109, 115, 120, 111, 120, 117, 112, 114, 109, 118, 112, 101, 107, 103, 110, 110, 111, 111, 108, 112, 106, 103, 108, 109, 114, 111, 107, 108, 117, 112, 107, 112, 107, 116, 119, 106, 105, 117, 106, 108, 110, 98, 118, 107, 110, 110, 110, 104, 97, 115, 112, 114, 112, 110, 107, 101, 110, 117, 113, 107, 103, 110, 106, 111, 111, 110, 109, 109, 108, 110, 110, 106, 109, 108, 108, 96, 107, 112, 113, 112, 111, 111, 106, 109, 110, 105, 109, 110, 109, 114, 108, 110, 108, 108, 109, 117, 107, 122, 112, 110, 103, 113, 115, 119, 111, 108, 108, 114, 104, 110, 112, 110, 111, 104, 115, 118, 110, 115, 103, 112, 111, 111, 112, 107, 111, 110, 106, 109, 110, 118, 126, 108, 111, 108, 107, 110, 112, 111, 108, 97, 104, 118, 110, 111, 103, 115, 103, 99, 108, 104, 113, 107, 111, 109, 116, 132, 100, 112, 114, 115, 103, 103, 107, 113, 109, 111, 102, 109, 107, 112, 110, 108, 109, 113, 110, 109, 111, 110, 108, 109, 109, 118, 116, 111, 110, 112, 112, 110, 110, 105, 103, 109, 115, 113, 109, 111, 114, 111, 114, 109, 105, 102, 104, 102, 108, 113, 110, 115, 107, 113, 100, 110, 104, 108, 105, 109, 108, 121, 110, 109, 113, 111, 113, 112, 114, 107, 110, 110, 109, 102, 112, 115, 110, 108, 111, 109, 116, 108, 100, 114, 104, 109, 101, 109, 113, 109, 107, 106, 106, 118, 108, 109, 107, 109, 102, 115, 115, 105, 113, 104, 111, 108, 120, 108, 110, 111, 108, 121, 114, 109, 110, 110, 113, 115, 108, 108, 114, 116, 108, 109, 108, 105, 110, 109, 112, 116, 108, 116, 112, 103, 111, 109, 111, 111, 125, 111, 109, 105, 110, 108, 111, 112, 110, 103, 112, 109, 110, 103, 114, 109, 108, 110, 119, 115, 110, 107, 108, 110, 113, 114, 113, 105, 108, 115, 106, 110, 110, 113, 109, 113, 115, 114, 114, 115, 107, 113, 113, 110, 108, 107, 109, 100, 111, 108, 114, 111, 110, 131, 116, 109, 107, 107, 114, 103, 119, 119, 100, 111, 114, 106, 108, 116, 107, 115, 111, 108, 115, 110, 104, 110, 112, 106, 125, 112, 105, 114, 101, 110, 98, 116, 116, 105, 114, 113, 117, 106, 107, 104, 110, 104, 115, 109, 111, 106, 113, 106, 102, 113, 116, 108, 113, 109, 109, 114, 132, 108, 117, 106, 110, 111, 109, 119, 111, 113, 107, 105, 108, 106, 114, 108, 113, 104, 104, 112, 110, 106, 107, 110, 106, 106, 113, 112, 106, 118, 115, 109, 105, 110, 108, 108, 113, 108, 106, 109, 110, 112, 103, 109, 109, 117, 108, 110, 116, 109, 109, 108, 114, 110, 116, 112, 115, 111, 106, 102, 105, 104, 109, 113, 106, 111, 107, 110, 108, 114, 106, 112, 114, 101, 104, 112, 114, 106, 114, 102, 108, 109, 113, 112, 110, 117, 101, 108, 112, 111, 111, 107, 109, 113, 111, 118, 103, 114, 111, 119, 104, 117, 103, 116, 110, 110, 111, 110, 108, 113, 108, 111, 109, 110, 111, 98, 111, 110, 115, 105, 107, 109, 109, 108, 114, 109, 113, 111, 109, 114, 109, 114, 106, 109, 108, 116, 113, 109, 107, 111, 119, 111, 113, 108, 108, 116, 114, 111, 108, 121, 106, 110, 110, 111, 116, 111, 102, 113, 103, 112, 107, 113, 109, 113, 93, 89, 109, 68, 117, 113, 117, 84, 116, 82, 97, 106, 100, 98, 114, 117, 100, 127, 121, 112, 114, 110, 115, 105, 108, 94, 110, 93, 99, 112, 104, 99, 111, 101, 115, 82, 102, 115, 93, 117, 101, 112, 123, 114, 106, 120, 104, 107, 109, 111, 111, 80, 108, 117, 116, 111, 122, 114, 108, 110, 103, 112, 104, 116, 109, 112, 112, 119, 107, 113, 109, 103, 116, 112, 120, 118, 109, 117, 99, 109, 101, 105, 121, 111, 110, 107, 122, 98, 103, 85, 101, 116, 110, 107, 109, 108, 111, 69, 115, 123, 115, 98, 108, 121, 100, 111, 111, 116, 115, 108, 114, 86, 113, 117, 110, 73, 110, 116, 111, 104, 105, 115, 101, 105, 101, 120, 119, 115, 113, 82, 83, 112, 110, 119, 110, 109, 103, 106, 108, 96, 77, 112, 112, 110, 117, 122, 117, 108, 108, 85, 112, 111, 106, 107, 123, 115, 110, 120, 106, 115, 118, 113, 109, 105, 113, 114, 107, 104, 107, 114, 116, 101, 119, 101, 111, 111, 111, 111, 111, 117, 103, 110, 108, 104, 96, 115, 125, 110, 116, 108, 116, 121, 115, 110, 116, 122, 80, 122, 115, 112, 115, 67, 123, 112, 98, 109, 101, 113, 100, 108, 104, 119, 106, 118, 86, 108, 111, 87, 113, 73, 106, 114, 118, 107, 100, 110, 114, 108, 115, 116, 115, 110, 113, 120, 111, 109, 67, 123, 116, 111, 104, 117, 123, 101, 116, 109, 111, 111, 130, 117, 113, 119, 105, 113, 116, 97, 106, 114, 108, 86, 117, 112, 107, 109, 109, 82, 64, 115, 111, 110, 108, 102, 119, 106, 108, 114, 118, 121, 111, 105, 115, 104, 101, 117, 112, 107, 113, 107, 112, 111, 104, 116, 96, 111, 110, 110, 112, 110, 112, 105, 115, 114, 109, 118, 63, 112, 106, 77, 110, 107, 108, 95, 114, 95, 107, 116, 97, 110, 110, 118, 109, 84, 124, 97, 118, 122, 115, 111, 106, 116, 108, 106, 96, 117, 112, 104, 95, 106, 109, 110, 111, 65, 107, 117, 94, 101, 108, 115, 110, 83, 103, 114, 113, 92, 58, 107, 103, 106, 117, 117, 130, 110, 107, 103, 97, 75, 108, 101, 111, 92, 112, 121, 122, 120, 120, 114, 116, 110, 115, 107, 101, 117, 120, 98, 115, 109, 110, 116, 112, 115, 109, 111, 109, 122, 117, 108, 105, 114, 112, 118, 117, 104, 113, 109, 115, 112, 118, 115, 113, 124, 105, 107, 112, 102, 118, 124, 108, 104, 107, 109, 123, 121, 117, 115, 112, 101, 116, 117, 108, 107, 108, 131, 114, 113, 112, 109, 114, 85, 112, 112, 106, 104, 87, 115, 111, 121, 117, 106, 116, 113, 112, 113, 120, 114, 108, 114, 104, 116, 84, 106, 113, 108, 86, 101, 90, 112, 95, 109, 94, 113, 111, 108, 105, 108, 117, 112, 88, 111, 111, 111, 115, 102, 119, 119, 64, 124, 113, 111, 113, 112, 115, 111, 98, 120, 58, 101, 110, 116, 105, 108, 103, 107, 95, 112, 113, 115, 112, 104, 105, 110, 111, 114, 111, 114, 114, 109, 112, 112, 112, 119, 112, 99, 107, 113, 102, 107, 99, 106, 116, 108, 112, 103, 108, 102, 121, 113, 94, 113, 114, 166, 111, 111, 118, 121, 106, 113, 113, 121, 95, 110, 104, 106, 112, 107, 118, 109, 113, 112, 97, 109, 102, 110, 105, 124, 112, 102, 114, 116, 106, 105, 105, 99, 110, 102, 112, 109, 101, 110, 106, 118, 111, 110, 103, 107, 115, 117, 111, 108, 110, 108, 111, 107, 108, 108, 105, 103, 101, 105, 96, 104, 105, 121, 108, 109, 111, 102, 101, 107, 111, 110, 110, 113, 112, 112, 113, 106, 113, 110, 113, 102, 109, 111, 116, 98, 98, 110, 111, 92, 116, 114, 109, 115, 117, 101, 136, 119, 119, 109, 118, 109, 111, 108, 113, 109, 110, 105, 111, 104, 101, 100, 113, 106, 106, 107, 100, 110, 99, 110, 112, 115, 112, 113, 102, 111, 100, 111, 114, 96, 101, 109, 107, 107, 110, 119, 105, 114, 110, 109, 102, 110, 109, 107, 105, 100, 109, 111, 117, 172, 110, 111, 118, 119, 116, 113, 109, 107, 101, 103, 108, 109, 108, 118, 116, 111, 111, 106, 103, 108, 112, 113, 100, 120, 110, 114, 115, 102, 118, 112, 109, 123, 110, 111, 122, 111, 104, 94, 106, 115, 115, 112, 117, 118, 106, 110, 121, 98, 103, 112, 112, 105, 113, 117, 113, 117, 104, 107, 109, 108, 113, 107, 105, 112, 104, 104, 92, 129, 112, 104, 113, 108, 106, 111, 109, 106, 99, 109, 119, 118, 109, 118, 105, 105, 115, 111, 121, 107, 110, 109, 115, 110, 108, 111, 111, 103, 112, 108, 91, 106, 64, 97, 118, 112, 110, 118, 105, 114, 109, 109, 106, 101, 105, 112, 114, 115, 110, 112, 106, 111, 112, 106, 114, 114, 105, 105, 118, 115, 109, 112, 130, 112, 113, 114, 109, 106, 111, 110, 102, 108, 114, 105, 119, 114, 119, 119, 117, 112, 106, 117, 111, 116, 103, 97, 110, 115, 104, 110, 114, 113, 108, 108, 98, 99, 106, 116, 101, 103, 119, 114, 78, 117, 112, 125, 124, 117, 109, 111, 93, 97, 113, 111, 111, 107, 95, 100, 105, 106, 110, 116, 104, 111, 103, 106, 113, 124, 105, 108, 117, 113, 120, 119, 104, 131, 122, 112, 108, 109, 105, 104, 104, 114, 99, 108, 107, 120, 103, 106, 113, 107, 93, 114, 103, 113, 119, 111, 111, 113, 118, 102, 109, 101, 112, 119, 115, 118, 108, 111, 108, 110, 115, 109, 113, 109, 106, 111, 104, 107, 116, 114, 108, 116, 104, 130, 106, 112, 113, 106, 109, 104, 116, 118, 114, 112, 128, 109, 115, 118, 112, 117, 125, 120, 101, 109, 113, 115, 104, 108, 105, 103, 119, 117, 105, 118, 115, 104, 106, 112, 80, 114, 109, 116, 108, 110, 109, 120, 109, 105, 117, 109, 126, 118, 109, 99, 109, 110, 111, 109, 110, 109, 111, 111, 112, 116, 110, 128, 124, 133, 111, 111, 131, 117, 116, 110, 108, 108, 115, 109, 105, 93, 103, 107, 104, 105, 107, 108, 103, 114, 106, 113, 112, 113, 112, 112, 109, 102, 108, 103, 107, 102, 108, 105, 110, 107, 108, 117, 106, 107, 106, 111, 112, 118, 107, 107, 104, 116, 105, 103, 110, 112, 105, 113, 114, 132, 102, 120, 104, 114, 109, 113, 112, 101, 115, 112, 97, 128, 107, 110, 106, 108, 109, 117, 111, 109, 112, 111, 114, 109, 105, 101, 113, 129, 97, 117, 111, 109, 112, 120, 122, 110, 113, 123, 99, 114, 122, 106, 95, 113, 134, 108, 112, 110, 111, 134, 112, 109, 114, 110, 112, 99, 111, 118, 115, 111, 115, 114, 107, 118, 113, 103, 117, 116, 112, 107, 112, 103, 97, 105, 116, 104, 107, 104, 105, 116, 108, 107, 95, 104, 115, 112, 119, 103, 103, 114, 117, 113, 110, 119, 106, 124, 113, 118, 106, 114, 99, 112, 109, 108, 103, 105, 111, 112, 109, 117, 109, 117, 102, 106, 102, 137, 103, 108, 113, 113, 117, 111, 109, 108, 122, 111, 107, 100, 105, 120, 116, 115, 98, 113, 115, 108, 109, 111, 99, 114, 109, 115, 114, 112, 109, 115, 117, 116, 109, 112, 115, 107, 104, 112, 110, 109, 93, 126, 116, 124, 107, 105, 104, 105, 105, 111, 106, 110, 99, 111, 111, 115, 105, 109, 99, 109, 112, 113, 109, 113, 107, 108, 99, 107, 109, 111, 110, 106, 111, 119, 113, 106, 105, 109, 114, 89, 105, 98, 106, 98, 116, 112, 104, 126, 111, 120, 103, 120, 101, 108, 131, 105, 112, 106, 120, 110, 105, 107, 108, 84, 108, 114, 110, 105, 111, 110, 108, 112, 117, 103, 107, 128, 88, 85, 107, 105, 108, 98, 110, 118, 110, 109, 103, 106, 98, 111, 110, 114, 108, 117, 115, 108, 113, 116, 118, 118, 113, 107, 89, 107, 117, 110, 110, 114, 117, 110, 112, 92, 115, 102, 101, 111, 106, 111, 119, 85, 114, 101, 122, 110, 117, 110, 111, 112, 104, 106, 87, 109, 103, 115, 103, 110, 111, 118, 105, 115, 110, 112, 112, 109, 117, 109, 109, 108, 105, 105, 107, 110, 106, 103, 108, 105, 111, 116, 111, 113, 110, 108, 109, 103, 110, 81, 115, 114, 106, 127, 110, 110, 116, 113, 111, 130, 105, 110, 108, 113, 107, 106, 106, 106, 98, 110, 110, 99, 119, 101, 110, 117, 104, 108, 109, 108, 112, 114, 102, 118, 118, 99, 111, 113, 115, 107, 109, 107, 109, 130, 114, 95, 106, 101, 117, 111, 104, 109, 113, 118, 113, 106, 115, 98, 122, 110, 113, 111, 106, 112, 109, 105, 93, 119, 111, 111, 113, 111, 108, 104, 115, 142, 106, 108, 108, 102, 106, 114, 84, 108, 118, 105, 112, 106, 109, 106, 108, 112, 111, 127, 110, 107, 113, 111, 110, 116, 114, 112, 111, 116, 110, 105, 126, 108, 106, 102, 109, 118, 105, 113, 114, 115, 120, 108, 105, 110, 107, 113, 114, 107, 114, 116, 96, 131, 103, 124, 106, 103, 111, 108, 108, 118, 108, 108, 113, 112, 88, 108, 106, 122, 114, 108, 98, 125, 113, 104, 110, 114, 104, 101, 100, 113, 105, 130, 123, 109, 101, 100, 114, 116, 101, 110, 115, 110, 136, 101, 109, 107, 92, 101, 97, 105, 115, 111, 97, 109, 108, 119, 109, 102, 106, 113, 82, 108, 105, 106, 107, 105, 107, 118, 111, 97, 98, 113, 121, 125, 108, 96, 112, 121, 103, 109, 105, 106, 106, 119, 114, 105, 119, 113, 107, 114, 99, 110, 119, 116, 124, 103, 118, 109, 117, 104, 106, 99, 117, 115, 102, 108, 101, 97, 103, 102, 111, 112, 109, 107, 117, 126, 111, 96, 102, 106, 110, 119, 103, 111, 124, 100, 117, 117, 125, 143, 120, 111, 115, 133, 101, 99, 119, 104, 111, 99, 105, 114, 117, 108, 114, 100, 111, 111, 111, 104, 108, 121, 107, 111, 121, 112, 110, 106, 109, 88, 113, 114, 118, 109, 108, 124, 115, 85, 108, 110, 108, 91, 118, 116, 112, 105, 125, 110, 94, 109, 108, 104, 90, 116, 113, 116, 107, 108, 121, 109, 115, 102, 125, 109, 113, 105, 106, 104, 98, 103, 150, 109, 105, 131, 103, 107, 138, 118, 116, 96, 112, 108, 98, 113, 106, 114, 114, 90, 123, 126, 103, 108, 116, 113, 103, 111, 104, 113, 102, 79, 113, 93, 102, 117, 115, 98, 108, 101, 120, 96, 99, 118, 123, 111, 123, 101, 120, 114, 116, 106, 103, 114, 120, 102, 106, 102, 106, 125, 116, 103, 113, 99, 114, 101, 138, 114, 105, 109, 106, 92, 107, 121, 120, 103, 116, 112, 106, 107, 104, 105, 100, 119, 113, 103, 118, 112, 112, 112, 108, 95, 108, 115, 102, 109, 105, 101, 106, 117, 118, 113, 115, 110, 105, 102, 99, 119, 117, 102, 108, 112, 114, 127, 117, 97, 85, 102, 113, 110, 118, 117, 112, 107, 110, 107, 102, 92, 114, 119, 109, 104, 108, 105, 105, 111, 144, 106, 86, 105, 109, 116, 111, 120, 89, 88, 108, 120, 100, 110, 105, 109, 115, 111, 112, 91, 118, 106, 111, 111, 113, 109, 95, 118, 105, 91, 98, 113, 108, 114, 118, 106, 133, 92, 104, 121, 114, 103, 97, 104, 121, 107, 112, 107, 113, 128, 102, 104, 113, 94, 119, 97, 119, 114, 95, 114, 118, 96, 119, 90, 116, 117, 114, 113, 105, 98, 103, 114, 127, 108, 98, 100, 108, 92, 115, 99, 120, 92, 110, 115, 110, 128, 93, 105, 97, 111, 118, 121, 100, 120, 111, 109, 93, 102, 107, 98, 111, 108, 113, 116, 121, 114, 113, 112, 108, 95, 101, 108, 114, 112, 107, 108, 108, 99, 119, 108, 111, 86, 130, 106, 106, 119, 113, 114, 118, 108, 113, 98, 94, 109, 126, 103, 91, 92, 117, 113, 107, 107, 109, 104, 102, 113, 84, 99, 109, 117, 103, 92, 103, 101, 111, 109, 107, 113, 115, 110, 94, 106, 136, 100, 108, 103, 106, 109, 109, 119, 104, 104, 103, 110, 100, 105, 112, 107, 100, 109, 104, 107, 121, 100, 110, 104, 114, 122, 111, 101, 118, 111, 104, 111, 111, 94, 106, 110, 117, 109, 110, 107, 103, 103, 109, 107, 114, 117, 110, 109, 109, 106, 109, 111, 109, 112, 108, 116, 109, 109, 113, 107, 117, 114, 104, 111, 113, 111, 112, 117, 117, 105, 106, 109, 125, 110, 111, 113, 113, 110, 110, 107, 109, 110, 107, 111, 114, 108, 115, 108, 112, 116, 110, 112, 103, 110, 115, 118, 116, 107, 106, 113, 106, 101, 107, 113, 114, 112, 105, 109, 104, 112, 108, 108, 107, 106, 111, 108, 106, 109, 111, 111, 112, 109, 109, 108, 107, 109, 115, 110, 108, 112, 115, 116, 105, 112, 110, 113, 105, 108, 114, 110, 116, 112, 101, 109, 111, 115, 107, 108, 116, 111, 108, 114, 113, 110, 113, 105, 109, 108, 105, 112, 109, 112, 110, 113, 108, 106, 107, 114, 101, 109, 111, 110, 112, 108, 106, 110, 107, 109, 112, 110, 109, 110, 112, 111, 113, 111, 102, 106, 100, 112, 109, 107, 114, 111, 107, 108, 105, 115, 129, 108, 112, 108, 115, 107, 113, 102, 111, 109, 102, 113, 106, 116, 104, 107, 112, 110, 105, 111, 108, 113, 108, 108, 108, 113, 108, 109, 111, 117, 115, 111, 117, 116, 107, 114, 112, 112, 112, 117, 112, 110, 124, 109, 105, 110, 106, 115, 110, 109, 110, 104, 114, 102, 119, 115, 114, 106, 112, 105, 113, 108, 110, 109, 110, 110, 111, 107, 109, 109, 107, 112, 109, 106, 109, 113, 111, 115, 111, 109, 110, 110, 102, 107, 109, 106, 108, 108, 106, 111, 100, 117, 115, 102, 105, 110, 108, 114, 111, 115, 111, 109, 113, 115, 107, 111, 110, 110, 114, 112, 112, 108, 107, 105, 112, 108, 107, 108, 109, 110, 109, 120, 115, 111, 108, 108, 107, 111, 110, 98, 114, 108, 114, 116, 110, 125, 113, 112, 107, 101, 104, 105, 122, 109, 96, 109, 112, 110, 111, 104, 111, 113, 110, 110, 111, 111, 112, 115, 111, 106, 114, 114, 98, 107, 112, 113, 110, 106, 115, 105, 107, 110, 109, 113, 109, 111, 110, 103, 114, 121, 109, 102, 106, 108, 110, 110, 117, 104, 114, 110, 108, 110, 110, 107, 104, 123, 110, 109, 108, 105, 112, 107, 111, 109, 108, 108, 108, 109, 103, 111, 107, 109, 113, 108, 110, 113, 108, 108, 107, 109, 107, 103, 111, 106, 110, 105, 108, 110, 109, 112, 113, 102, 104, 112, 106, 107, 107, 113, 107, 106, 110, 107, 114, 108, 114, 111, 112, 112, 108, 116, 108, 120, 109, 114, 110, 109, 108, 105, 114, 113, 110, 113, 107, 117, 101, 116, 103, 106, 116, 108, 112, 105, 117, 112, 102, 112, 107, 104, 110, 113, 107, 110, 106, 110, 97, 106, 112, 115, 112, 108, 109, 110, 113, 107, 110, 122, 123, 105, 110, 124, 99, 102, 108, 123, 116, 115, 112, 106, 108, 110, 111, 108, 117, 109, 116, 107, 112, 118, 108, 110, 111, 110, 108, 104, 110, 111, 109, 110, 106, 113, 114, 107, 111, 108, 115, 111, 117, 108, 110, 112, 108, 105, 117, 112, 110, 101, 124, 101, 115, 113, 107, 118, 117, 108, 112, 122, 106, 112, 111, 106, 107, 116, 111, 106, 135, 110, 106, 103, 104, 110, 105, 104, 103, 107, 107, 117, 109, 108, 110, 115, 118, 109, 102, 109, 101, 115, 104, 110, 102, 104, 111, 119, 113, 101, 107, 116, 110, 112, 114, 121, 107, 114, 103, 117, 96, 101, 105, 112, 106, 113, 110, 102, 111, 105, 112, 104, 117, 105, 103, 123, 106, 119, 119, 112, 112, 111, 102, 103, 112, 109, 109, 96, 115, 116, 105, 109, 102, 103, 114, 113, 104, 110, 117, 107, 105, 113, 101, 112, 110, 108, 111, 117, 127, 105, 122, 120, 102, 121, 111, 105, 110, 110, 113, 121, 102, 102, 107, 110, 116, 106, 103, 114, 108, 121, 112, 105, 112, 107, 110, 109, 100, 98, 112, 107, 115, 109, 115, 110, 105, 103, 107, 106, 112, 107, 113, 105, 119, 103, 110, 108, 118, 139, 106, 115, 122, 108, 113, 120, 114, 111, 99, 108, 107, 116, 118, 102, 107, 103, 110, 113, 101, 111, 107, 108, 110, 111, 104, 110, 105, 114, 104, 127, 108, 108, 103, 120, 123, 112, 98, 110, 111, 110, 126, 110, 112, 115, 96, 110, 96, 102, 102, 103, 110, 107, 110, 115, 100, 109, 111, 100, 103, 109, 106, 100, 112, 117, 104, 101, 107, 105, 106, 108, 130, 108, 116, 108, 118, 97, 115, 104, 115, 115, 110, 112, 115, 107, 98, 123, 101, 109, 117, 104, 105, 103, 110, 97, 109, 101, 109, 117, 110, 114, 122, 114, 109, 107, 102, 97, 110, 105, 113, 103, 119, 110, 103, 108, 105, 110, 110, 107, 112, 104, 105, 108, 114, 112, 112, 117, 109, 101, 103, 103, 99, 104, 126, 112, 115, 111, 114, 103, 106, 106, 108, 97, 107, 120, 105, 111, 110, 115, 110, 97, 102, 111, 103, 107, 112, 116, 103, 101, 111, 106, 121, 104, 123, 102, 107, 106, 117, 118, 105, 106, 107, 105, 106, 125, 120, 109, 106, 108, 108, 114, 107, 114, 117, 105, 107, 114, 103, 111, 104, 107, 107, 110, 92, 120, 111, 108, 115, 108, 109, 118, 107, 121, 110, 115, 121, 107, 121, 111, 104, 111, 101, 120, 116, 93, 111, 113, 119, 109, 115, 111, 104, 116, 117, 100, 114, 105, 106, 109, 104, 105, 113, 100, 115, 118, 112, 112, 107, 103, 104, 111, 107, 110, 106, 106, 129, 114, 109, 110, 109, 112, 107, 107, 118, 110, 109, 112, 116, 108, 110, 107, 113, 117, 102, 106, 109, 110, 114, 124, 110, 127, 110, 107, 98, 107, 104, 111, 105, 105, 113, 113, 109, 111, 116, 115, 104, 104, 102, 111, 111, 115, 127, 111, 107, 110, 109, 103, 110, 119, 110, 110, 109, 91, 108, 115, 95, 111, 105, 106, 102, 105, 105, 113, 108, 108, 111, 99, 105, 107, 111, 95, 103, 104, 114, 106, 111, 122, 108, 107, 106, 117, 115, 102, 105, 112, 118, 109, 113, 107, 112, 121, 100, 106, 94, 110, 99, 116, 112, 113, 111, 111, 117, 106, 122, 117, 110, 104, 111, 100, 123, 114, 111, 110, 112, 107, 131, 110, 108, 110, 99, 103, 108, 109, 107, 110, 120, 110, 113, 108, 112, 110, 111, 114, 119, 99, 109, 102, 110, 111, 106, 101, 110, 123, 111, 119, 116, 113, 111, 113, 109, 113, 110, 113, 106, 113, 111, 108, 115, 103, 106, 110, 107, 110, 112, 113, 106, 98, 105, 107, 110, 105, 103, 112, 117, 107, 107, 109, 111, 100, 111, 104, 106, 99, 108, 107, 107, 113, 105, 110, 102, 106, 108, 113, 110, 110, 102, 111, 120, 113, 100, 106, 110, 103, 105, 116, 113, 113, 106, 110, 109, 119, 120, 105, 113, 114, 111, 101, 108, 110, 112, 121, 111, 103, 113, 111, 100, 105, 104, 109, 111, 114, 114, 109, 103, 110, 111, 111, 114, 115, 114, 108, 110, 108, 114, 110, 105, 109, 108, 108, 119, 108, 110, 104, 112, 108, 112, 107, 104, 115, 106, 111, 113, 107, 108, 111, 122, 104, 114, 103, 105, 119, 120, 107, 107, 110, 111, 104, 109, 123, 104, 111, 113, 102, 108, 110, 126, 107, 116, 119, 119, 110, 111, 112, 106, 105, 102, 113, 112, 106, 107, 104, 105, 105, 113, 107, 110, 113, 121, 108, 104, 114, 107, 120, 110, 112, 108, 95, 110, 111, 108, 108, 110, 107, 109, 115, 99, 108, 114, 118, 109, 105, 107, 105, 109, 113, 94, 111, 108, 106, 107, 112, 113, 119, 100, 113, 119, 110, 100, 113, 109, 119, 106, 119, 112, 100, 103, 113, 115, 118, 109, 111, 114, 102, 121, 111, 95, 105, 105, 118, 112, 114, 109, 112, 101, 116, 106, 107, 108, 114, 118, 115, 109, 103, 112, 124, 104, 108, 107, 117, 115, 113, 107, 127, 114, 108, 108, 108, 115, 102, 114, 102, 103, 108, 109, 113, 102, 113, 110, 111, 119, 108, 115, 97, 106, 107, 108, 107, 116, 101, 102, 114, 106, 112, 109, 110, 106, 100, 103, 111, 106, 102, 112, 106, 101, 110, 113, 106, 113, 105, 99, 109, 105, 105, 107, 110, 112, 104, 109, 102, 107, 106, 89, 114, 102, 120, 103, 104, 112, 117, 108, 95, 114, 110, 108, 101, 112, 112, 111, 105, 111, 108, 106, 109, 119, 120, 114, 100, 115, 102, 107, 112, 102, 110, 115, 110, 114, 114, 112, 115, 106, 114, 116, 116, 108, 119, 107, 109, 108, 109, 113, 105, 110, 108, 106, 108, 113, 116, 103, 110, 106, 116, 107, 97, 117, 112, 115, 114, 110, 110, 110, 115, 113, 106, 119, 116, 120, 120, 120, 110, 106, 139, 119, 117, 106, 111, 116, 110, 107, 111, 112, 109, 116, 109, 106, 97, 110, 107, 116, 100, 118, 105, 118, 104, 112, 115, 123, 109, 112, 104, 109, 104, 135, 102, 107, 120, 112, 114, 91, 111, 111, 111, 105, 111, 104, 110, 117, 110, 113, 107, 117, 107, 114, 110, 108, 109, 107, 113, 110, 110, 109, 106, 106, 107, 106, 120, 108, 105, 109, 106, 122, 107, 109, 112, 105, 102, 119, 121, 100, 110, 107, 116, 108, 114, 105, 111, 116, 121, 107, 98, 109, 110, 119, 111, 117, 122, 109, 107, 109, 116, 110, 102, 117, 110, 102, 111, 105, 111, 111, 117, 116, 112, 110, 104, 114, 105, 120, 114, 105, 96, 118, 105, 107, 112, 109, 122, 122, 105, 117, 112, 105, 108, 109, 111, 100, 109, 105, 116, 122, 117, 118, 115, 109, 104, 105, 110, 106, 118, 112, 112, 125, 104, 118, 105, 105, 116, 114, 112, 107, 108, 115, 98, 108, 104, 105, 112, 112, 119, 104, 118, 124, 99, 117, 114, 112, 114, 112, 105, 116, 119, 105, 119, 119, 114, 106, 110, 99, 102, 111, 112, 121, 120, 117, 108, 106, 114, 107, 105, 105, 107, 124, 112, 121, 104, 113, 106, 118, 100, 107, 113, 112, 103, 106, 115, 110, 108, 100, 116, 109, 110, 115, 114, 108, 111, 115, 105, 120, 113, 121, 106, 110, 115, 115, 113, 113, 113, 111, 111, 104, 117, 111, 117, 112, 105, 111, 119, 117, 119, 109, 108, 100, 114, 107, 105, 111, 111, 104, 110, 110, 108, 108, 116, 109, 108, 109, 111, 109, 111, 120, 115, 115, 119, 93, 104, 109, 99, 107, 104, 103, 111, 112, 116, 109, 113, 113, 99, 107, 109, 109, 100, 113, 115, 115, 102, 111, 106, 122, 110, 109, 116, 109, 115, 110, 114, 111, 110, 102, 119, 122, 110, 111, 107, 106, 91, 110, 111, 107, 107, 113, 108, 112, 113, 106, 105, 109, 112, 114, 111, 103, 112, 107, 100, 104, 111, 109, 110, 107, 112, 107, 107, 121, 112, 108, 112, 112, 107, 113, 112, 108, 102, 108, 107, 105, 119, 107, 110, 114, 114, 108, 112, 86, 102, 114, 101, 125, 111, 111, 107, 118, 108, 112, 109, 105, 117, 113, 106, 118, 108, 106, 115, 107, 113, 114, 113, 111, 105, 125, 115, 105, 105, 113, 110, 109, 110, 117, 115, 118, 122, 117, 115, 129, 108, 95, 119, 112, 115, 112, 110, 117, 126, 111, 110, 100, 119, 106, 107, 105, 100, 105, 112, 113, 105, 96, 113, 113, 115, 107, 117, 114, 103, 115, 122, 110, 109, 102, 100, 107, 111, 105, 109, 121, 119, 93, 113, 113, 111, 106, 112, 107, 109, 109, 119, 109, 111, 101, 108, 113, 111, 107, 125, 104, 111, 114, 111, 116, 119, 121, 114, 112, 115, 121, 108, 114, 120, 107, 111, 110, 116, 121, 112, 112, 107, 100, 99, 109, 109, 114, 128, 105, 107, 107, 107, 104, 105, 94, 115, 118, 101, 106, 111, 115, 114, 113, 113, 107, 111, 110, 108, 109, 124, 116, 107, 119, 106, 116, 104, 111, 107, 113, 111, 120, 110, 121, 107, 111, 114, 107, 113, 112, 111, 107, 106, 110, 124, 118, 117, 112, 116, 117, 110, 116, 103, 106, 111, 120, 108, 109, 119, 106, 110, 116, 109, 114, 106, 114, 112, 119, 111, 115, 101, 111, 111, 113, 117, 104, 100, 109, 106, 106, 109, 110, 109, 105, 115, 109, 109, 112, 121, 113, 116, 108, 111, 107, 114, 104, 108, 113, 115, 118, 112, 105, 108, 110, 108, 114, 107, 118, 112, 110, 119, 109, 113, 112, 111, 112, 109, 111, 114, 109, 112, 111, 112, 109, 99, 110, 107, 111, 109, 107, 112, 114, 110, 108, 110, 112, 110, 106, 110, 111, 112, 109, 121, 120, 118, 110, 105, 111, 105, 109, 102, 111, 111, 107, 110, 108, 113, 114, 112, 116, 110, 110, 110, 104, 108, 108, 111, 107, 112, 112, 105, 110, 110, 109, 107, 126, 111, 106, 115, 110, 110, 114, 114, 104, 111, 102, 110, 110, 111, 110, 113, 105, 112, 106, 113, 108, 107, 113, 106, 110, 113, 107, 112, 112, 108, 111, 117, 109, 110, 109, 113, 112, 104, 112, 108, 125, 112, 111, 111, 108, 112, 112, 110, 116, 112, 104, 109, 120, 105, 106, 106, 110, 111, 111, 108, 110, 116, 110, 113, 116, 108, 108, 108, 109, 111, 114, 106, 104, 112, 116, 111, 111, 112, 111, 107, 110, 109, 109, 116, 114, 111, 106, 117, 112, 114, 102, 113, 105, 106, 99, 108, 109, 109, 112, 108, 108, 108, 115, 111, 107, 107, 113, 113, 117, 103, 111, 89, 103, 108, 110, 112, 105, 110, 112, 113, 114, 110, 115, 106, 108, 112, 114, 105, 111, 107, 106, 111, 115, 121, 117, 112, 111, 109, 110, 108, 106, 116, 110, 109, 108, 108, 120, 111, 108, 110, 112, 108, 115, 109, 113, 105, 108, 109, 115, 110, 108, 107, 108, 110, 109, 113, 110, 111, 109, 120, 113, 112, 110, 106, 113, 109, 114, 109, 110, 113, 117, 109, 112, 111, 116, 110, 112, 99, 114, 120, 120, 103, 112, 106, 113, 124, 114, 94, 111, 108, 112, 111, 107, 113, 106, 108, 99, 101, 108, 107, 107, 104, 112, 113, 112, 109, 109, 109, 108, 112, 113, 110, 107, 108, 121, 110, 114, 106, 107, 109, 113, 106, 116, 110, 111, 121, 107, 104, 110, 104, 111, 105, 106, 111, 111, 102, 110, 104, 121, 110, 103, 109, 108, 105, 97, 114, 108, 107, 101, 111, 110, 107, 108, 107, 112, 108, 101, 118, 105, 106, 109, 101, 113, 107, 110, 104, 112, 126, 108, 107, 104, 110, 119, 113, 108, 110, 103, 105, 108, 112, 116, 110, 110, 116, 115, 106, 109, 105, 106, 107, 113, 105, 116, 99, 106, 105, 106, 107, 112, 113, 119, 109, 113, 108, 107, 108, 113, 111, 111, 106, 107, 109, 111, 111, 116, 105, 113, 111, 110, 109, 109, 109, 115, 103, 120, 105, 113, 109, 105, 116, 112, 114, 107, 117, 106, 112, 109, 110, 111, 111, 115, 112, 113, 106, 113, 92, 106, 115, 110, 108, 107, 110, 108, 107, 110, 109, 111, 104, 115, 120, 103, 113, 109, 109, 115, 115, 110, 115, 102, 119, 108, 106, 115, 107, 112, 107, 105, 118, 107, 112, 109, 109, 113, 114, 111, 113, 112, 110, 106, 113, 117, 113, 114, 118, 98, 108, 106, 91, 117, 104, 106, 106, 100, 109, 106, 111, 115, 111, 114, 112, 114, 101, 106, 111, 107, 114, 104, 119, 115, 108, 110, 106, 120, 110, 111, 109, 114, 107, 107, 104, 105, 99, 106, 113, 98, 103, 117, 107, 114, 91, 116, 110, 113, 97, 116, 120, 108, 115, 108, 114, 110, 120, 112, 109, 106, 111, 109, 109, 109, 112, 106, 68, 111, 107, 117, 125, 110, 109, 107, 108, 115, 113, 112, 112, 109, 121, 110, 103, 95, 111, 117, 108, 104, 114, 115, 96, 107, 90, 104, 114, 111, 119, 110, 108, 117, 103, 114, 109, 119, 114, 102, 87, 107, 113, 115, 109, 109, 121, 118, 117, 107, 109, 113, 113, 107, 118, 112, 122, 71, 108, 122, 108, 120, 105, 106, 119, 102, 113, 114, 107, 116, 110, 112, 106, 109, 117, 111, 102, 108, 103, 113, 110, 109, 111, 106, 112, 107, 101, 113, 117, 106, 108, 121, 125, 104, 102, 119, 116, 105, 118, 114, 111, 114, 111, 103, 95, 106, 113, 96, 104, 97, 110, 110, 124, 108, 88, 112, 97, 121, 92, 104, 116, 103, 115, 109, 99, 114, 104, 106, 105, 97, 113, 110, 109, 107, 102, 105, 111, 108, 127, 107, 95, 121, 98, 105, 116, 114, 112, 113, 113, 110, 119, 118, 106, 108, 111, 116, 85, 117, 107, 112, 116, 110, 110, 129, 117, 111, 101, 113, 115, 116, 110, 122, 114, 118, 114, 109, 94, 120, 111, 118, 120, 113, 85, 99, 87, 101, 137, 116, 102, 112, 96, 118, 108, 111, 112, 105, 105, 103, 118, 106, 109, 104, 108, 103, 111, 109, 98, 109, 110, 117, 116, 111, 116, 103, 113, 121, 115, 111, 113, 109, 110, 111, 90, 119, 94, 108, 123, 110, 110, 113, 110, 110, 109, 110, 108, 122, 110, 90, 111, 124, 107, 107, 109, 114, 112, 111, 114, 110, 108, 106, 108, 106, 115, 118, 121, 100, 114, 120, 66, 77, 99, 109, 112, 107, 104, 106, 118, 112, 110, 83, 108, 108, 112, 96, 115, 107, 106, 106, 124, 105, 116, 120, 106, 107, 110, 115, 112, 99, 116, 116, 101, 113, 106, 100, 130, 105, 96, 110, 112, 115, 113, 114, 102, 106, 120, 96, 116, 112, 108, 114, 101, 108, 95, 89, 111, 104, 112, 110, 108, 113, 100, 97, 110, 116, 112, 123, 107, 110, 107, 110, 97, 112, 109, 101, 106, 106, 96, 115, 104, 112, 115, 111, 97, 100, 104, 102, 107, 108, 105, 107, 114, 105, 105, 102, 99, 108, 107, 111, 119, 115, 112, 111, 110, 114, 112, 103, 113, 109, 115, 105, 96, 110, 126, 108, 118, 107, 112, 114, 113, 115, 113, 114, 126, 89, 120, 108, 106, 79, 106, 111, 65, 116, 83, 110, 116, 114, 118, 99, 109, 119, 94, 117, 119, 114, 110, 109, 102, 96, 118, 108, 113, 112, 107, 112, 115, 110, 105, 109, 107, 108, 117, 109, 113, 118, 89, 111, 87, 107, 103, 115, 103, 103, 109, 115, 123, 108, 92, 107, 118, 119, 109, 108, 130, 110, 112, 114, 105, 98, 111, 122, 102, 94, 117, 107, 118, 121, 110, 107, 103, 109, 112, 109, 115, 109, 116, 108, 115, 109, 100, 116, 102, 112, 116, 104, 120, 117, 128, 91, 103, 109, 113, 109, 108, 103, 103, 119, 117, 119, 96, 110, 115, 113, 98, 125, 105, 110, 114, 114, 108, 106, 101, 108, 106, 111, 115, 114, 111, 117, 112, 107, 111, 108, 105, 108, 106, 113, 112, 98, 107, 110, 114, 122, 105, 103, 115, 114, 128, 108, 111, 107, 110, 112, 110, 105, 117, 101, 110, 106, 103, 104, 103, 118, 102, 107, 111, 115, 104, 114, 118, 108, 99, 105, 103, 111, 102, 115, 109, 109, 113, 120, 118, 114, 103, 113, 105, 119, 104, 111, 105, 107, 115, 107, 140, 102, 102, 106, 111, 110, 113, 111, 110, 114, 116, 103, 124, 104, 109, 111, 110, 114, 104, 102, 115, 108, 105, 112, 112, 111, 111, 112, 100, 122, 109, 101, 121, 112, 122, 114, 106, 120, 103, 109, 118, 119, 102, 109, 107, 108, 108, 108, 112, 110, 107, 112, 104, 105, 106, 120, 99, 110, 108, 113, 108, 107, 114, 111, 109, 113, 109, 114, 116, 116, 112, 103, 106, 112, 104, 103, 131, 114, 107, 104, 105, 113, 119, 110, 114, 100, 115, 109, 105, 97, 130, 98, 116, 121, 97, 114, 104, 116, 98, 101, 111, 105, 104, 112, 117, 111, 120, 104, 110, 115, 115, 109, 101, 107, 102, 118, 109, 90, 112, 115, 114, 123, 113, 100, 118, 114, 97, 110, 97, 98, 107, 109, 103, 119, 103, 114, 101, 120, 107, 105, 110, 108, 106, 102, 107, 106, 107, 103, 112, 102, 112, 113, 127, 107, 117, 105, 107, 107, 108, 104, 110, 112, 120, 103, 103, 111, 103, 96, 107, 107, 109, 107, 112, 106, 105, 103, 113, 113, 100, 106, 121, 111, 114, 113, 112, 102, 108, 119, 110, 107, 118, 110, 107, 106, 111, 113, 107, 113, 103, 107, 119, 107, 110, 109, 121, 101, 110, 111, 104, 110, 106, 109, 89, 105, 122, 111, 146, 110, 115, 104, 99, 111, 103, 114, 102, 110, 111, 110, 110, 126, 107, 112, 104, 117, 93, 113, 110, 104, 111, 118, 106, 107, 106, 108, 99, 117, 115, 111, 101, 108, 115, 107, 120, 110, 117, 106, 117, 103, 103, 111, 112, 106, 110, 117, 122, 112, 108, 104, 113, 119, 105, 106, 102, 105, 113, 110, 108, 99, 116, 121, 110, 108, 110, 118, 114, 105, 116, 108, 107, 112, 111, 100, 104, 100, 111, 121, 118, 107, 109, 104, 107, 102, 111, 104, 106, 102, 107, 111, 105, 102, 109, 97, 113, 114, 105, 104, 96, 116, 103, 107, 115, 106, 106, 118, 107, 123, 109, 109, 121, 105, 108, 115, 109, 110, 104, 111, 129, 112, 114, 114, 103, 106, 137, 99, 102, 105, 108, 108, 112, 113, 107, 122, 111, 110, 102, 113, 126, 114, 108, 114, 95, 107, 109, 105, 105, 106, 108, 105, 106, 110, 105, 118, 112, 120, 104, 106, 107, 103, 114, 120, 115, 114, 97, 121, 113, 88, 118, 108, 127, 116, 108, 110, 112, 111, 118, 112, 111, 103, 109, 111, 113, 113, 119, 116, 124, 110, 105, 113, 105, 110, 108, 110, 94, 112, 112, 100, 113, 114, 106, 104, 112, 115, 108, 107, 111, 103, 102, 108, 109, 107, 101, 112, 110, 106, 120, 104, 112, 113, 108, 112, 115, 107, 107, 105, 107, 108, 111, 110, 109, 111, 108, 110, 115, 113, 106, 109, 113, 110, 112, 108, 110, 110, 107, 107, 112, 111, 107, 112, 109, 110, 110, 108, 105, 108, 112, 108, 108, 109, 117, 105, 109, 109, 115, 106, 108, 111, 108, 114, 109, 107, 107, 110, 109, 109, 102, 105, 109, 108, 116, 113, 112, 108, 110, 108, 114, 109, 112, 109, 111, 111, 110, 111, 109, 117, 112, 110, 113, 110, 112, 102, 107, 110, 113, 106, 106, 114, 114, 113, 108, 110, 105, 112, 113, 110, 114, 110, 112, 105, 108, 116, 116, 115, 109, 112, 105, 108, 110, 116, 119, 111, 109, 112, 107, 108, 114, 116, 107, 111, 117, 111, 109, 110, 116, 112, 116, 108, 109, 116, 118, 112, 110, 109, 109, 111, 114, 113, 111, 106, 113, 111, 109, 108, 112, 112, 109, 111, 112, 114, 111, 115, 109, 111, 114, 115, 104, 111, 110, 111, 110, 114, 110, 109, 106, 106, 110, 110, 111, 113, 108, 108, 117, 121, 104, 108, 108, 120, 110, 111, 106, 108, 109, 112, 111, 115, 106, 110, 107, 112, 107, 112, 107, 117, 102, 115, 108, 115, 102, 107, 111, 113, 111, 109, 108, 111, 103, 106, 113, 102, 110, 106, 119, 107, 103, 115, 115, 107, 116, 112, 107, 114, 108, 109, 117, 106, 107, 106, 113, 109, 106, 111, 108, 113, 107, 111, 106, 109, 118, 109, 111, 116, 106, 106, 115, 110, 111, 120, 110, 117, 106, 105, 109, 115, 103, 108, 108, 110, 108, 109, 111, 110, 105, 113, 109, 108, 108, 114, 111, 109, 110, 111, 120, 115, 107, 112, 108, 107, 112, 111, 105, 111, 110, 120, 113, 113, 118, 106, 109, 107, 110, 110, 115, 106, 101, 105, 113, 105, 117, 113, 110, 113, 112, 112, 114, 109, 109, 109, 121, 111, 110, 122, 117, 110, 111, 113, 106, 104, 118, 105, 109, 112, 110, 113, 112, 112, 110, 106, 108, 113, 108, 108, 108, 112, 102, 112, 114, 121, 101, 111, 108, 107, 111, 109, 108, 107, 114, 104, 108, 114, 114, 108, 110, 109, 108, 110, 105, 109, 108, 109, 109, 110, 106, 109, 103, 109, 113, 110, 108, 110, 104, 115, 113, 113, 107, 110, 116, 113, 114, 112, 107, 108, 118, 110, 113, 115, 108, 109, 107, 109, 100, 112, 107, 116, 108, 110, 104, 113, 113, 114, 104, 121, 108, 108, 116, 115, 111, 109, 112, 106, 111, 111, 112, 109, 112, 113, 112, 110, 112, 112, 108, 119, 108, 117, 109, 103, 110, 109, 111, 110, 105, 111, 103, 112, 114, 114, 114, 108, 108, 109, 104, 113, 112, 114, 113, 110, 112, 106, 105, 111, 109, 108, 112, 112, 103, 109, 118, 107, 111, 110, 110, 108, 112, 113, 109, 113, 111, 109, 108, 109, 115, 111, 110, 111, 110, 108, 107, 105, 108, 107, 106, 110, 117, 107, 112, 105, 106, 113, 110, 113, 114, 106, 115, 114, 111, 108, 115, 108, 112, 113, 111, 111, 108, 110, 108, 118, 118, 111, 111, 118, 103, 107, 112, 108, 101, 102, 141, 106, 103, 112, 106, 118, 114, 103, 107, 106, 107, 114, 110, 101, 116, 105, 114, 107, 103, 113, 115, 104, 112, 105, 115, 114, 103, 102, 105, 119, 105, 98, 108, 115, 105, 105, 103, 103, 101, 114, 114, 116, 97, 112, 106, 107, 109, 105, 118, 113, 110, 97, 103, 102, 104, 106, 111, 107, 96, 109, 113, 108, 105, 119, 116, 105, 101, 112, 123, 114, 100, 102, 111, 104, 113, 112, 106, 114, 109, 104, 97, 103, 99, 98, 96, 112, 113, 105, 109, 111, 101, 109, 115, 109, 109, 114, 111, 104, 97, 109, 107, 120, 103, 112, 105, 117, 113, 114, 118, 120, 111, 108, 120, 112, 101, 97, 101, 111, 113, 113, 110, 106, 111, 116, 114, 117, 109, 115, 109, 109, 110, 110, 111, 106, 109, 109, 113, 113, 106, 111, 105, 111, 107, 113, 108, 112, 122, 111, 108, 106, 108, 111, 107, 117, 116, 122, 103, 108, 98, 110, 104, 105, 108, 111, 104, 108, 109, 110, 108, 116, 97, 106, 120, 113, 114, 106, 118, 105, 97, 112, 114, 110, 109, 87, 116, 126, 105, 111, 118, 119, 97, 117, 107, 108, 100, 113, 108, 97, 109, 116, 107, 104, 108, 114, 119, 101, 115, 119, 112, 107, 109, 108, 103, 111, 109, 108, 113, 116, 117, 97, 112, 102, 113, 102, 112, 110, 115, 104, 107, 104, 113, 108, 96, 110, 106, 111, 110, 96, 110, 101, 109, 113, 124, 109, 100, 103, 102, 110, 113, 113, 109, 112, 102, 109, 118, 115, 100, 129, 103, 100, 119, 113, 119, 108, 99, 107, 109, 102, 115, 109, 110, 112, 114, 102, 104, 104, 117, 118, 115, 109, 109, 114, 105, 101, 110, 94, 108, 122, 112, 112, 115, 119, 111, 104, 113, 103, 104, 107, 120, 104, 104, 123, 119, 106, 108, 120, 110, 119, 104, 135, 115, 102, 107, 101, 113, 108, 114, 113, 99, 110, 109, 106, 117, 111, 120, 109, 111, 102, 110, 112, 108, 116, 108, 108, 105, 107, 104, 112, 109, 106, 109, 110, 108, 106, 116, 106, 107, 128, 107, 106, 108, 111, 110, 113, 114, 116, 111, 93, 112, 106, 99, 106, 110, 101, 111, 109, 110, 113, 116, 106, 108, 123, 110, 105, 101, 103, 116, 99, 123, 115, 105, 114, 102, 110, 122, 109, 110, 88, 105, 97, 88, 113, 106, 107, 112, 97, 109, 110, 108, 115, 107, 108, 110, 107, 108, 100, 117, 109, 107, 99, 108, 110, 103, 103, 102, 116, 116, 111, 107, 105, 123, 103, 115, 106, 111, 106, 126, 108, 84, 113, 110, 106, 110, 105, 105, 109, 108, 124, 107, 117, 120, 103, 119, 125, 115, 110, 105, 106, 132, 117, 115, 126, 109, 101, 120, 107, 109, 114, 106, 118, 106, 117, 103, 103, 120, 94, 110, 104, 111, 120, 114, 102, 120, 105, 85, 101, 119, 115, 105, 102, 110, 109, 110, 100, 101, 118, 116, 110, 101, 113, 106, 117, 123, 107, 107, 108, 116, 115, 117, 122, 108, 107, 104, 113, 111, 130, 102, 99, 106, 127, 110, 113, 120, 115, 117, 111, 110, 100, 114, 114, 111, 107, 107, 112, 114, 116, 117, 103, 111, 117, 107, 115, 103, 117, 130, 114, 111, 116, 112, 101, 118, 122, 117, 116, 115, 117, 103, 118, 107, 115, 115, 113, 107, 102, 105, 126, 100, 96, 104, 132, 110, 124, 107, 121, 119, 100, 106, 108, 110, 110, 104, 109, 109, 102, 107, 119, 119, 112, 111, 110, 111, 108, 110, 93, 119, 117, 113, 116, 112, 108, 115, 100, 122, 105, 107, 116, 105, 109, 110, 104, 113, 104, 103, 106, 103, 117, 113, 112, 107, 91, 109, 113, 112, 113, 118, 116, 110, 113, 116, 120, 119, 107, 111, 110, 118, 108, 125, 97, 99, 113, 112, 112, 106, 105, 107, 111, 102, 109, 114, 93, 113, 114, 105, 113, 109, 116, 109, 111, 116, 109, 116, 115, 101, 111, 97, 100, 117, 115, 98, 115, 112, 107, 110, 105, 117, 116, 106, 107, 115, 106, 109, 119, 113, 111, 108, 110, 118, 108, 113, 116, 109, 104, 109, 106, 114, 100, 104, 106, 109, 102, 99, 116, 111, 105, 107, 110, 113, 110, 116, 111, 110, 108, 112, 104, 108, 98, 113, 116, 119, 119, 113, 107, 109, 115, 113, 112, 118, 104, 103, 102, 89, 114, 102, 110, 114, 114, 104, 101, 114, 119, 113, 113, 110, 112, 106, 113, 107, 114, 113, 102, 116, 110, 111, 121, 110, 103, 101, 110, 123, 126, 126, 106, 105, 107, 114, 106, 102, 111, 115, 116, 113, 107, 114, 101, 115, 114, 115, 107, 110, 111, 113, 106, 103, 116, 103, 102, 106, 115, 115, 103, 108, 110, 117, 106, 110, 112, 103, 114, 124, 103, 114, 107, 107, 106, 102, 118, 106, 113, 109, 106, 102, 109, 115, 113, 102, 115, 92, 123, 121, 110, 110, 99, 110, 101, 106, 106, 109, 114, 113, 91, 120, 110, 107, 111, 115, 114, 103, 90, 116, 107, 97, 110, 115, 114, 111, 112, 109, 104, 116, 108, 106, 115, 128, 113, 112, 104, 111, 113, 113, 112, 113, 113, 109, 108, 106, 117, 108, 109, 111, 111, 109, 117, 122, 109, 114, 113, 112, 105, 99, 107, 117, 106, 104, 106, 114, 105, 113, 116, 118, 111, 110, 105, 115, 99, 119, 111, 105, 114, 108, 113, 109, 120, 107, 110, 110, 92, 126, 101, 108, 110, 112, 107, 109, 115, 102, 91, 112, 106, 102, 109, 107, 115, 112, 106, 109, 108, 113, 101, 105, 109, 114, 103, 114, 108, 106, 117, 109, 115, 114, 107, 124, 96, 112, 106, 117, 115, 105, 109, 116, 115, 111, 107, 112, 105, 115, 107, 113, 104, 115, 102, 105, 110, 120, 110, 114, 115, 117, 113, 113, 107, 116, 110, 104, 114, 107, 123, 110, 110, 107, 112, 117, 117, 97, 111, 109, 108, 105, 102, 112, 116, 111, 110, 118, 114, 116, 113, 114, 116, 106, 111, 123, 109, 107, 108, 123, 118, 109, 110, 96, 108, 111, 118, 106, 108, 111, 116, 113, 112, 108, 101, 104, 110, 118, 112, 88, 146, 94, 112, 110, 115, 109, 110, 96, 125, 103, 99, 110, 110, 101, 110, 118, 98, 111, 109, 117, 108, 102, 104, 112, 115, 109, 102, 106, 118, 113, 116, 106, 111, 113, 119, 103, 123, 99, 115, 114, 119, 108, 89, 101, 116, 103, 103, 111, 150, 97, 110, 112, 112, 111, 108, 108, 123, 101, 107, 108, 108, 104, 109, 107, 96, 108, 105, 105, 107, 105, 114, 108, 100, 109, 105, 120, 113, 118, 128, 113, 112, 114, 113, 103, 100, 87, 100, 117, 92, 112, 92, 115, 115, 94, 110, 120, 102, 106, 111, 103, 110, 102, 116, 118, 107, 104, 117, 102, 100, 87, 123, 103, 130, 113, 118, 101, 104, 108, 107, 100, 112, 109, 117, 107, 106, 111, 125, 123, 113, 133, 97, 105, 133, 105, 113, 113, 110, 106, 110, 109, 104, 115, 108, 103, 105, 115, 115, 100, 96, 111, 109, 117, 119, 101, 108, 107, 96, 111, 117, 111, 108, 115, 112, 111, 106, 106, 112, 114, 106, 109, 92, 111, 104, 94, 111, 103, 101, 115, 118, 108, 105, 104, 118, 112, 115, 104, 116, 109, 117, 102, 102, 108, 112, 109, 102, 111, 106, 109, 115, 112, 120, 104, 109, 119, 99, 98, 111, 120, 108, 108, 88, 105, 94, 115, 111, 114, 105, 99, 102, 112, 107, 106, 104, 112, 94, 103, 131, 111, 101, 108, 111, 126, 113, 140, 105, 103, 112, 107, 102, 112, 112, 117, 106, 123, 105, 108, 120, 100, 123, 109, 113, 106, 126, 97, 104, 119, 108, 108, 107, 106, 104, 106, 104, 113, 106, 104, 116, 99, 113, 106, 123, 116, 111, 113, 105, 112, 99, 92, 97, 113, 114, 108, 110, 133, 107, 114, 105, 101, 115, 111, 118, 87, 109, 115, 107, 109, 103, 108, 114, 108, 115, 102, 141, 104, 112, 103, 116, 114, 119, 109, 109, 116, 101, 111, 111, 112, 115, 116, 101, 103, 108, 99, 113, 89, 112, 112, 110, 99, 107, 114, 103, 111, 101, 114, 99, 108, 103, 104, 103, 124, 121, 100, 103, 114, 107, 113, 112, 105, 111, 96, 110, 88, 113, 107, 117, 111, 108, 107, 104, 115, 112, 106, 110, 102, 119, 123, 99, 89, 105, 99, 106, 104, 105, 106, 135, 109, 114, 130, 108, 106, 113, 114, 92, 114, 86, 111, 111, 109, 104, 94, 114, 106, 105, 108, 107, 110, 101, 112, 121, 118, 102, 116, 112, 104, 117, 108, 101, 107, 110, 114, 102, 101, 101, 100, 116, 120, 97, 103, 100, 107, 107, 113, 126, 96, 107, 113, 93, 110, 108, 111, 104, 109, 111, 102, 98, 104, 109, 117, 111, 112, 122, 110, 122, 122, 99, 100, 117, 119, 113, 97, 109, 111, 125, 101, 105, 111, 105, 105, 114, 110, 114, 106, 112, 114, 112, 122, 102, 112, 112, 113, 107, 101, 109, 106, 107, 107, 102, 113, 113, 117, 110, 111, 94, 111, 109, 95, 124, 98, 110, 111, 114, 105, 99, 95, 114, 103, 107, 121, 103, 95, 100, 111, 97, 114, 101, 103, 119, 136, 96, 110, 111, 104, 114, 107, 106, 102, 104, 112, 110, 108, 110, 99, 120, 116, 109, 108, 102, 110, 109, 110, 105, 111, 94, 112, 95, 110, 117, 118, 111, 109, 105, 107, 112, 109, 112, 110, 116, 106, 108, 109, 113, 108, 107, 116, 109, 117, 111, 110, 104, 108, 109, 116, 110, 97, 113, 116, 96, 112, 108, 102, 113, 109, 109, 117, 101, 101, 105, 103, 103, 103, 105, 128, 110, 106, 109, 102, 115, 114, 107, 113, 108, 111, 115, 107, 112, 114, 116, 110, 119, 110, 114, 114, 105, 108, 109, 107, 103, 106, 113, 108, 107, 119, 109, 114, 104, 108, 107, 114, 105, 104, 117, 109, 112, 116, 109, 112, 115, 109, 116, 107, 101, 103, 119, 108, 99, 111, 101, 107, 106, 114, 111, 104, 104, 99, 119, 115, 116, 103, 98, 106, 108, 104, 115, 105, 123, 110, 118, 97, 109, 153, 116, 111, 100, 111, 106, 111, 104, 111, 106, 109, 110, 109, 111, 104, 111, 108, 105, 104, 104, 112, 111, 112, 109, 110, 108, 113, 109, 113, 105, 110, 116, 105, 110, 109, 109, 103, 114, 108, 118, 98, 123, 110, 111, 101, 105, 114, 108, 100, 111, 113, 90, 115, 109, 108, 115, 117, 113, 130, 112, 113, 107, 115, 97, 107, 110, 113, 105, 112, 115, 107, 118, 111, 106, 113, 110, 115, 110, 100, 110, 109, 111, 118, 108, 116, 101, 108, 109, 103, 112, 107, 110, 125, 116, 113, 106, 112, 117, 111, 107, 112, 106, 111, 105, 112, 113, 103, 106, 110, 100, 109, 115, 112, 104, 116, 108, 111, 106, 107, 114, 108, 115, 104, 120, 109, 102, 109, 115, 111, 103, 107, 114, 128, 111, 109, 104, 117, 101, 122, 107, 105, 97, 122, 99, 110, 118, 109, 104, 115, 107, 103, 111, 112, 107, 106, 114, 100, 108, 109, 116, 112, 114, 114, 113, 108, 116, 106, 104, 109, 109, 111, 107, 103, 97, 113, 113, 111, 116, 114, 111, 103, 108, 112, 114, 111, 125, 108, 110, 107, 111, 109, 106, 103, 107, 100, 114, 112, 107, 108, 93, 110, 117, 118, 117, 97, 112, 122, 104, 116, 113, 106, 102, 116, 103, 115, 112, 111, 112, 102, 101, 119, 98, 114, 102, 106, 113, 110, 104, 104, 97, 112, 109, 105, 99, 116, 114, 113, 111, 102, 116, 111, 130, 106, 115, 96, 114, 92, 110, 112, 112, 103, 103, 112, 107, 111, 105, 107, 105, 98, 105, 100, 113, 108, 109, 119, 100, 114, 116, 115, 109, 118, 110, 104, 105, 105, 110, 109, 100, 107, 98, 110, 108, 112, 106, 101, 106, 105, 116, 116, 108, 98, 103, 110, 108, 103, 111, 117, 108, 107, 107, 120, 109, 111, 118, 106, 106, 115, 101, 113, 104, 110, 101, 107, 112, 124, 110, 105, 115, 105, 116, 114, 108, 105, 116, 109, 101, 101, 97, 110, 118, 105, 121, 103, 117, 107, 109, 115, 107, 105, 100, 114, 103, 107, 115, 114, 112, 103, 116, 116, 118, 103, 97, 108, 106, 106, 112, 107, 108, 104, 128, 103, 96, 104, 107, 111, 107, 121, 106, 114, 104, 114, 95, 111, 100, 108, 111, 109, 104, 112, 116, 121, 101, 106, 105, 119, 109, 103, 110, 108, 105, 102, 105, 113, 109, 107, 108, 116, 102, 109, 111, 101, 107, 108, 111, 95, 118, 106, 111, 115, 114, 113, 107, 101, 116, 108, 106, 112, 120, 109, 114, 110, 115, 106, 113, 117, 116, 100, 112, 111, 112, 106, 112, 120, 117, 112, 102, 114, 111, 102, 106, 110, 115, 104, 111, 113, 104, 116, 120, 103, 86, 108, 118, 95, 115, 108, 116, 109, 113, 108, 114, 92, 111, 113, 112, 109, 112, 115, 106, 103, 112, 118, 114, 119, 110, 110, 104, 110, 115, 104, 114, 115, 112, 104, 102, 107, 106, 116, 102, 106, 115, 110, 103, 111, 84, 120, 102, 109, 108, 109, 114, 121, 122, 88, 107, 104, 101, 117, 105, 108, 100, 110, 83, 96, 110, 117, 107, 104, 118, 105, 113, 117, 97, 110, 105, 112, 109, 107, 119, 116, 111, 109, 113, 115, 118, 112, 123, 115, 116, 115, 108, 121, 111, 105, 111, 111, 111, 108, 111, 98, 103, 107, 107, 122, 115, 107, 116, 109, 103, 111, 116, 116, 109, 111, 108, 113, 110, 115, 111, 116, 103, 112, 113, 109, 112, 106, 110, 109, 95, 106, 110, 100, 112, 113, 114, 107, 93, 108, 106, 109, 98, 118, 103, 101, 100, 110, 107, 118, 103, 111, 110, 117, 103, 108, 102, 109, 112, 115, 101, 99, 102, 116, 107, 117, 105, 120, 112, 115, 110, 118, 106, 114, 108, 109, 105, 119, 122, 100, 112, 122, 110, 112, 111, 96, 116, 111, 112, 105, 98, 115, 106, 103, 113, 111, 103, 108, 101, 106, 122, 116, 108, 106, 105, 112, 108, 108, 106, 115, 108, 116, 108, 113, 108, 111, 104, 112, 123, 112, 115, 114, 105, 110, 109, 109, 98, 107, 110, 112, 106, 107, 107, 115, 114, 112, 135, 113, 113, 108, 114, 113, 112, 116, 111, 109, 109, 102, 113, 128, 111, 108, 105, 117, 104, 106, 109, 94, 109, 104, 109, 112, 111, 110, 115, 107, 105, 103, 116, 106, 107, 108, 121, 94, 111, 108, 112, 112, 109, 94, 102, 104, 109, 113, 101, 121, 122, 111, 113, 86, 102, 114, 116, 116, 112, 102, 109, 107, 99, 109, 100, 122, 106, 114, 107, 105, 104, 147, 114, 102, 107, 114, 108, 107, 108, 109, 116, 115, 111, 108, 122, 99, 114, 110, 138, 107, 116, 113, 109, 116, 96, 112, 99, 106, 107, 110, 110, 107, 111, 110, 112, 115, 105, 101, 96, 106, 120, 105, 117, 109, 110, 108, 104, 113, 113, 113, 118, 109, 100, 110, 112, 97, 111, 106, 112, 109, 110, 106, 150, 121, 105, 109, 114, 120, 116, 109, 112, 114, 109, 99, 110, 117, 107, 105, 109, 115, 111, 116, 102, 104, 113, 107, 113, 126, 105, 106, 110, 112, 99, 105, 111, 114, 111, 107, 101, 113, 111, 110, 110, 109, 108, 96, 107, 106, 119, 115, 119, 111, 117, 107, 106, 113, 106, 117, 105, 99, 105, 108, 112, 108, 113, 99, 109, 109, 98, 94, 111, 104, 115, 112, 108, 101, 111, 107, 113, 105, 109, 108, 111, 109, 110, 113, 116, 111, 110, 108, 109, 110, 115, 111, 113, 105, 117, 112, 109, 110, 110, 108, 110, 110, 99, 105, 109, 110, 110, 87, 107, 113, 115, 109, 113, 106, 109, 102, 110, 106, 111, 117, 113, 117, 112, 104, 112, 104, 106, 106, 103, 107, 107, 112, 103, 105, 108, 110, 111, 109, 102, 112, 110, 110, 108, 122, 115, 121, 106, 115, 106, 117, 101, 107, 104, 112, 106, 88, 106, 109, 113, 113, 107, 109, 114, 98, 116, 107, 99, 109, 95, 105, 110, 103, 108, 115, 108, 110, 108, 110, 109, 130, 94, 114, 105, 109, 114, 114, 109, 104, 123, 107, 116, 110, 105, 119, 109, 107, 120, 99, 104, 118, 107, 109, 106, 105, 115, 120, 105, 106, 106, 111, 109, 110, 109, 115, 107, 107, 108, 107, 108, 122, 109, 109, 107, 113, 113, 111, 108, 107, 102, 112, 115, 110, 109, 113, 109, 107, 109, 103, 106, 103, 118, 112, 111, 104, 111, 104, 103, 105, 108, 101, 110, 111, 115, 109, 111, 112, 104, 122, 115, 105, 114, 107, 106, 114, 119, 114, 111, 111, 111, 103, 115, 117, 107, 113, 114, 108, 109, 99, 110, 104, 104, 107, 111, 113, 116, 108, 109, 112, 110, 114, 123, 109, 108, 106, 110, 113, 115, 104, 127, 113, 113, 100, 111, 97, 110, 105, 116, 114, 110, 107, 109, 121, 106, 107, 114, 103, 100, 113, 124, 106, 111, 112, 98, 114, 110, 117, 114, 113, 112, 111, 111, 105, 118, 113, 111, 116, 108, 104, 99, 106, 113, 112, 122, 103, 113, 117, 107, 106, 105, 102, 125, 107, 119, 85, 106, 107, 109, 111, 114, 113, 117, 110, 113, 117, 121, 118, 116, 110, 106, 108, 106, 104, 109, 112, 110, 104, 107, 113, 96, 115, 110, 114, 108, 105, 107, 116, 106, 111, 117, 105, 109, 108, 109, 104, 105, 108, 106, 108, 106, 104, 108, 118, 119, 105, 114, 109, 110, 103, 122, 109, 110, 117, 113, 101, 113, 111, 107, 106, 111, 111, 103, 112, 111, 107, 112, 110, 109, 105, 111, 100, 117, 112, 106, 128, 98, 110, 110, 106, 114, 118, 111, 112, 111, 111, 95, 83, 99, 111, 114, 109, 111, 97, 115, 104, 110, 106, 109, 112, 109, 115, 107, 117, 113, 112, 117, 103, 111, 104, 98, 107, 110, 105, 104, 101, 144, 116, 109, 115, 96, 110, 103, 114, 103, 106, 105, 113, 124, 99, 91, 108, 120, 106, 112, 114, 107, 109, 103, 104, 113, 113, 109, 105, 127, 102, 111, 115, 103, 112, 109, 119, 103, 113, 106, 110, 117, 105, 100, 110, 117, 108, 105, 110, 113, 117, 111, 110, 112, 114, 116, 111, 113, 121, 111, 104, 115, 111, 112, 113, 109, 112, 107, 109, 104, 111, 107, 117, 106, 112, 107, 109, 106, 109, 116, 116, 110, 114, 105, 105, 103, 110, 117, 108, 102, 101, 111, 107, 105, 113, 113, 112, 102, 115, 98, 136, 108, 111, 125, 99, 119, 116, 100, 108, 110, 99, 116, 113, 120, 105, 121, 111, 110, 103, 110, 105, 120, 108, 119, 117, 111, 113, 111, 104, 123, 107, 118, 107, 111, 118, 120, 104, 108, 103, 111, 110, 108, 111, 120, 111, 108, 111, 109, 112, 106, 104, 107, 113, 106, 113, 115, 118, 109, 106, 122, 109, 110, 122, 100, 118, 106, 132, 109, 122, 113, 115, 117, 115, 117, 113, 112, 102, 110, 114, 122, 88, 107, 116, 116, 110, 106, 106, 112, 113, 112, 116, 113, 108, 112, 109, 111, 109, 116, 110, 123, 111, 117, 113, 115, 106, 116, 113, 109, 112, 121, 107, 100, 102, 112, 111, 105, 106, 125, 115, 105, 108, 107, 113, 107, 107, 105, 88, 110, 111, 106, 111, 118, 110, 110, 122, 114, 114, 112, 107, 110, 101, 106, 110, 112, 115, 111, 111, 108, 111, 108, 123, 99, 107, 121, 105, 127, 107, 107, 111, 115, 105, 117, 113, 104, 108, 108, 110, 106, 122, 118, 117, 110, 114, 109, 109, 102, 111, 104, 113, 104, 112, 130, 106, 108, 105, 98, 105, 109, 107, 107, 112, 109, 120, 98, 120, 109, 114, 110, 104, 125, 119, 106, 128, 115, 105, 117, 116, 107, 119, 117, 111, 116, 120, 100, 110, 126, 110, 115, 97, 119, 112, 104, 111, 114, 113, 110, 105, 106, 103, 110, 115, 118, 102, 109, 106, 121, 110, 111, 110, 106, 112, 117, 103, 113, 107, 105, 124, 111, 103, 107, 112, 109, 120, 106, 107, 107, 111, 114, 106, 102, 105, 105, 120, 113, 104, 113, 114, 111, 109, 111, 111, 114, 109, 104, 101, 114, 117, 102, 108, 111, 111, 106, 113, 118, 107, 120, 112, 106, 112, 113, 117, 111, 131, 119, 110, 109, 131, 104, 112, 113, 113, 101, 119, 109, 128, 101, 104, 118, 127, 111, 105, 102, 123, 107, 111, 103, 107, 102, 100, 106, 120, 109, 115, 124, 108, 123, 102, 109, 104, 108, 110, 103, 106, 110, 110, 107, 120, 104, 107, 116, 112, 117, 119, 107, 108, 107, 114, 98, 109, 113, 107, 101, 105, 115, 109, 125, 100, 112, 117, 113, 120, 107, 111, 104, 108, 110, 103, 113, 107, 117, 123, 111, 109, 125, 114, 113, 105, 121, 112, 116, 113, 110, 112, 113, 108, 120, 111, 112, 110, 115, 108, 110, 104, 104, 110, 106, 111, 108, 97, 106, 119, 110, 101, 104, 102, 107, 109, 113, 109, 119, 107, 113, 117, 121, 109, 112, 104, 121, 121, 122, 110, 102, 110, 117, 106, 114, 105, 105, 112, 114, 113, 125, 108, 110, 105, 105, 101, 111, 109, 101, 116, 108, 108, 102, 111, 108, 112, 113, 110, 111, 121, 107, 109, 108, 105, 115, 108, 108, 117, 113, 103, 115, 99, 120, 112, 120, 106, 105, 127, 105, 114, 112, 108, 111, 103, 114, 105, 127, 120, 110, 115, 112, 119, 107, 95, 106, 119, 107, 113, 112, 111, 104, 114, 110, 110, 112, 111, 116, 110, 100, 112, 113, 112, 109, 113, 102, 107, 102, 102, 108, 113, 108, 122, 117, 101, 107, 115, 103, 96, 105, 106, 103, 123, 129, 103, 100, 117, 120, 114, 120, 114, 111, 106, 107, 112, 95, 120, 107, 100, 91, 127, 131, 114, 109, 112, 112, 99, 111, 96, 116, 109, 98, 119, 108, 108, 127, 106, 111, 113, 102, 133, 123, 112, 108, 96, 102, 96, 119, 97, 113, 107, 130, 117, 110, 114, 109, 112, 123, 114, 122, 96, 107, 101, 111, 112, 122, 108, 102, 104, 108, 102, 119, 114, 111, 115, 98, 106, 113, 124, 100, 112, 102, 107, 113, 103, 101, 104, 116, 101, 96, 111, 113, 102, 107, 113, 108, 115, 137, 124, 112, 99, 102, 111, 95, 98, 102, 104, 108, 113, 108, 111, 119, 119, 104, 125, 109, 126, 102, 120, 95, 101, 96, 102, 108, 120, 115, 93, 130, 100, 110, 113, 105, 113, 106, 98, 107, 111, 104, 92, 105, 96, 110, 110, 116, 122, 110, 119, 130, 110, 116, 120, 117, 111, 106, 99, 103, 99, 111, 108, 120, 115, 156, 107, 114, 105, 117, 110, 113, 93, 117, 109, 116, 120, 120, 117, 112, 109, 98, 115, 79, 109, 133, 130, 124, 97, 107, 110, 100, 105, 123, 95, 103, 99, 123, 96, 103, 109, 109, 94, 100, 114, 135, 115, 104, 102, 108, 119, 107, 116, 104, 127, 100, 101, 116, 123, 109, 113, 116, 100, 96, 112, 109, 99, 116, 110, 118, 118, 117, 111, 111, 95, 98, 101, 102, 106, 106, 108, 107, 115, 102, 82, 113, 99, 114, 112, 117, 108, 101, 98, 106, 113, 116, 125, 116, 132, 113, 116, 90, 99, 126, 102, 105, 117, 108, 97, 105, 108, 103, 106, 105, 118, 109, 114, 111, 115, 119, 108, 98, 107, 118, 112, 112, 118, 108, 114, 106, 115, 109, 98, 112, 89, 108, 110, 121, 103, 125, 106, 97, 115, 97, 97, 104, 103, 105, 103, 100, 106, 102, 118, 99, 92, 107, 109, 127, 103, 113, 125, 98, 85, 120, 99, 120, 112, 106, 109, 110, 114, 117, 73, 104, 121, 99, 100, 123, 107, 94, 106, 126, 118, 115, 105, 116, 106, 115, 108, 109, 103, 110, 104, 85, 108, 82, 111, 112, 106, 121, 105, 118, 106, 118, 105, 105, 112, 98, 112, 101, 101, 90, 104, 110, 100, 98, 101, 108, 112, 120, 105, 107, 98, 102, 127, 101, 99, 106, 107, 106, 110, 115, 134, 115, 106, 108, 109, 106, 118, 95, 108, 102, 116, 102, 106, 114, 110, 113, 99, 109, 116, 127, 129, 114, 130, 139, 107, 123, 105, 109, 104, 109, 108, 117, 135, 99, 112, 122, 111, 109, 97, 105, 131, 109, 118, 108, 112, 110, 96, 105, 115, 112, 125, 104, 99, 111, 99, 108, 120, 106, 124, 112, 122, 111, 133, 110, 100, 104, 106, 96, 102, 116, 108, 109, 93, 97, 130, 106, 100, 100, 95, 110, 126, 106, 105, 101, 99, 106, 102, 112, 122, 107, 108, 102, 118, 112, 119, 118, 123, 127, 112, 101, 108, 122, 105, 76, 108, 104, 117, 117, 107, 111, 103, 118, 125, 102, 108, 108, 111, 111, 90, 113, 113, 108, 107, 109, 113, 112, 112, 111, 110, 109, 110, 109, 109, 110, 108, 109, 109, 113, 108, 107, 107, 110, 115, 108, 108, 108, 109, 108, 111, 112, 112, 110, 110, 108, 111, 108, 109, 122, 109, 116, 108, 103, 112, 107, 106, 109, 113, 110, 113, 112, 102, 110, 110, 119, 112, 123, 112, 110, 106, 108, 111, 109, 109, 109, 107, 111, 112, 108, 109, 110, 116, 110, 107, 111, 107, 105, 108, 110, 120, 108, 110, 109, 100, 112, 110, 100, 110, 114, 109, 106, 109, 108, 109, 105, 109, 110, 104, 109, 109, 105, 105, 112, 112, 110, 110, 108, 109, 105, 109, 109, 103, 111, 110, 108, 105, 119, 112, 111, 110, 110, 105, 109, 112, 115, 110, 111, 111, 113, 119, 111, 107, 111, 101, 112, 115, 108, 109, 100, 108, 106, 108, 108, 112, 111, 117, 109, 109, 114, 107, 105, 108, 113, 108, 100, 107, 111, 106, 109, 106, 128, 112, 108, 109, 113, 106, 108, 116, 110, 112, 108, 119, 105, 110, 109, 109, 106, 108, 111, 109, 112, 110, 110, 110, 112, 109, 110, 109, 111, 112, 107, 106, 111, 109, 111, 108, 107, 112, 106, 101, 109, 106, 106, 107, 112, 108, 109, 106, 113, 109, 109, 106, 107, 107, 105, 109, 111, 111, 103, 108, 108, 114, 113, 110, 106, 110, 113, 106, 108, 105, 107, 110, 109, 110, 114, 111, 113, 108, 107, 113, 116, 107, 108, 121, 110, 113, 111, 111, 115, 106, 108, 110, 110, 112, 112, 113, 123, 116, 110, 109, 108, 113, 109, 104, 110, 109, 106, 110, 122, 113, 108, 106, 106, 107, 105, 107, 109, 112, 119, 100, 110, 115, 114, 108, 105, 110, 113, 112, 105, 110, 113, 115, 110, 115, 110, 111, 113, 108, 108, 110, 119, 110, 105, 110, 107, 111, 103, 100, 106, 112, 111, 103, 114, 109, 103, 115, 110, 109, 112, 108, 108, 100, 100, 110, 109, 110, 108, 109, 111, 109, 114, 109, 108, 110, 112, 108, 110, 103, 106, 110, 106, 110, 111, 107, 107, 106, 108, 109, 110, 99, 104, 109, 110, 109, 107, 109, 109, 112, 108, 108, 110, 107, 114, 112, 109, 93, 109, 109, 112, 114, 95, 110, 106, 110, 110, 107, 110, 108, 108, 107, 109, 114, 112, 107, 106, 111, 109, 111, 108, 115, 113, 114, 108, 108, 112, 112, 110, 106, 110, 112, 110, 112, 115, 112, 105, 110, 113, 111, 109, 112, 112, 108, 108, 111, 112, 110, 114, 105, 112, 102, 112, 113, 118, 103, 104, 106, 107, 108, 105, 110, 112, 109, 109, 107, 113, 111, 110, 113, 115, 107, 111, 106, 112, 106, 108, 112, 108, 109, 100, 113, 111, 106, 110, 115, 110, 109, 114, 109, 111, 117, 107, 109, 108, 113, 109, 107, 107, 112, 110, 106, 109, 112, 107, 107, 112, 105, 110, 112, 108, 106, 108, 103, 111, 110, 114, 108, 111, 112, 120, 120, 110, 115, 121, 111, 110, 108, 109, 107, 107, 111, 107, 107, 110, 108, 112, 109, 114, 110, 110, 101, 117, 109, 87, 111, 115, 110, 112, 122, 105, 103, 103, 112, 104, 105, 105, 105, 114, 106, 107, 110, 134, 102, 106, 103, 107, 117, 91, 95, 91, 112, 104, 102, 109, 100, 108, 104, 111, 105, 105, 112, 115, 112, 107, 104, 112, 114, 110, 109, 108, 96, 98, 91, 84, 98, 113, 105, 119, 113, 123, 105, 103, 120, 109, 104, 106, 103, 110, 109, 103, 114, 108, 108, 109, 111, 101, 104, 112, 109, 113, 108, 112, 113, 117, 117, 114, 114, 114, 108, 104, 105, 116, 99, 100, 109, 106, 107, 111, 104, 106, 121, 117, 126, 112, 103, 117, 117, 106, 104, 130, 106, 117, 113, 111, 104, 116, 108, 99, 108, 108, 113, 114, 143, 111, 113, 103, 107, 107, 110, 109, 116, 108, 116, 113, 107, 115, 106, 111, 114, 107, 107, 110, 106, 107, 112, 109, 116, 111, 107, 112, 107, 105, 107, 120, 112, 104, 110, 108, 120, 113, 110, 108, 112, 106, 116, 109, 111, 104, 116, 119, 120, 107, 108, 118, 114, 120, 102, 104, 110, 105, 112, 112, 114, 111, 107, 106, 107, 104, 117, 107, 96, 118, 108, 119, 103, 126, 113, 132, 118, 110, 109, 116, 114, 114, 102, 108, 96, 110, 111, 104, 113, 112, 104, 112, 110, 102, 118, 93, 117, 106, 116, 100, 95, 110, 108, 115, 115, 113, 110, 109, 97, 104, 116, 105, 113, 117, 112, 109, 110, 102, 114, 99, 103, 110, 110, 102, 119, 120, 118, 115, 112, 115, 108, 106, 106, 115, 112, 110, 111, 110, 110, 110, 152, 114, 105, 119, 115, 106, 106, 96, 107, 107, 113, 113, 114, 111, 115, 106, 109, 111, 112, 110, 106, 104, 105, 108, 113, 127, 105, 104, 104, 102, 109, 114, 116, 107, 86, 110, 111, 117, 100, 114, 115, 102, 85, 103, 111, 114, 88, 115, 107, 108, 129, 107, 108, 105, 104, 107, 106, 109, 127, 116, 110, 110, 111, 106, 107, 114, 113, 140, 114, 101, 101, 114, 107, 112, 114, 109, 109, 98, 108, 103, 122, 108, 99, 115, 107, 122, 115, 109, 114, 95, 111, 106, 102, 112, 112, 128, 126, 118, 103, 116, 103, 102, 106, 116, 115, 106, 114, 102, 99, 106, 102, 120, 109, 100, 106, 114, 113, 101, 106, 109, 120, 108, 113, 109, 127, 111, 113, 103, 103, 100, 110, 117, 109, 94, 122, 116, 112, 106, 108, 112, 99, 106, 106, 99, 104, 113, 111, 119, 115, 115, 103, 108, 113, 119, 110, 113, 114, 112, 103, 108, 98, 113, 105, 106, 117, 107, 113, 115, 121, 103, 116, 115, 99, 104, 107, 100, 117, 102, 103, 115, 102, 117, 109, 105, 110, 120, 116, 110, 123, 107, 130, 141, 96, 99, 110, 112, 132, 106, 108, 113, 109, 109, 106, 106, 108, 108, 107, 109, 105, 108, 95, 111, 99, 97, 123, 106, 112, 107, 103, 109, 106, 109, 124, 115, 127, 111, 110, 115, 101, 107, 113, 110, 113, 112, 103, 112, 114, 107, 109, 120, 102, 110, 108, 101, 105, 119, 115, 103, 109, 113, 107, 108, 113, 108, 110, 105, 108, 113, 110, 112, 105, 110, 101, 104, 119, 110, 101, 118, 102, 92, 118, 127, 103, 110, 106, 115, 108, 110, 114, 109, 110, 105, 114, 114, 106, 104, 108, 125, 109, 107, 109, 104, 108, 106, 104, 113, 109, 112, 117, 109, 110, 110, 76, 104, 106, 99, 116, 107, 107, 117, 106, 112, 111, 112, 114, 109, 121, 111, 114, 108, 104, 116, 112, 104, 104, 110, 106, 112, 112, 107, 112, 113, 114, 112, 112, 111, 104, 104, 106, 108, 109, 107, 111, 98, 111, 111, 101, 109, 101, 108, 116, 113, 106, 109, 107, 94, 73, 114, 110, 107, 115, 117, 104, 104, 106, 104, 117, 111, 108, 109, 119, 114, 103, 109, 104, 107, 111, 108, 70, 114, 108, 108, 107, 104, 111, 110, 103, 114, 116, 104, 114, 107, 114, 108, 114, 112, 112, 116, 93, 107, 103, 105, 115, 112, 109, 107, 116, 110, 109, 110, 107, 115, 104, 112, 110, 109, 118, 109, 112, 110, 118, 106, 105, 111, 117, 109, 109, 118, 112, 109, 110, 104, 111, 107, 104, 111, 110, 118, 110, 104, 114, 111, 103, 111, 105, 113, 101, 115, 108, 103, 108, 113, 112, 112, 102, 123, 105, 106, 108, 106, 109, 107, 108, 109, 107, 107, 110, 113, 100, 109, 112, 115, 103, 102, 111, 113, 115, 108, 109, 113, 115, 114, 110, 117, 113, 106, 109, 108, 112, 108, 114, 100, 111, 116, 107, 118, 110, 110, 110, 113, 107, 114, 109, 111, 106, 114, 107, 108, 114, 105, 116, 108, 111, 108, 101, 118, 108, 110, 105, 106, 115, 110, 114, 112, 109, 110, 114, 105, 112, 111, 107, 108, 106, 110, 116, 108, 101, 106, 112, 109, 100, 112, 113, 110, 109, 114, 116, 112, 111, 117, 109, 102, 109, 103, 110, 112, 107, 109, 103, 114, 109, 112, 113, 114, 112, 110, 113, 112, 108, 109, 68, 111, 123, 113, 101, 107, 105, 108, 108, 94, 103, 111, 106, 110, 111, 110, 103, 116, 110, 108, 111, 112, 101, 106, 105, 115, 110, 106, 109, 107, 94, 111, 109, 128, 117, 112, 113, 115, 156, 107, 103, 115, 133, 105, 116, 104, 110, 111, 116, 107, 106, 111, 116, 108, 123, 110, 97, 112, 110, 113, 106, 107, 110, 115, 112, 107, 110, 109, 107, 111, 111, 99, 105, 113, 115, 115, 107, 109, 113, 112, 106, 104, 115, 107, 107, 115, 108, 121, 113, 108, 109, 108, 114, 115, 113, 109, 105, 114, 112, 109, 108, 108, 104, 122, 116, 107, 115, 106, 110, 110, 110, 114, 112, 109, 118, 114, 114, 108, 107, 111, 110, 108, 112, 112, 105, 112, 102, 112, 110, 109, 108, 112, 108, 117, 109, 112, 113, 107, 113, 112, 109, 108, 109, 107, 109, 107, 108, 105, 102, 104, 121, 110, 107, 113, 116, 108, 111, 104, 106, 110, 102, 109, 104, 111, 112, 116, 116, 112, 114, 112, 115, 114, 108, 103, 117, 108, 112, 110, 101, 107, 107, 112, 111, 105, 103, 111, 110, 109, 111, 110, 111, 108, 110, 108, 107, 112, 108, 107, 116, 109, 109, 114, 112, 110, 112, 110, 110, 111, 108, 109, 114, 108, 116, 110, 110, 109, 111, 109, 122, 109, 111, 109, 108, 112, 109, 109, 112, 109, 111, 107, 110, 112, 112, 112, 112, 110, 104, 114, 106, 112, 109, 118, 107, 107, 107, 111, 105, 111, 109, 115, 109, 108, 107, 110, 111, 108, 108, 108, 110, 109, 111, 111, 107, 108, 111, 109, 108, 109, 108, 114, 113, 110, 109, 111, 114, 109, 107, 109, 118, 110, 112, 113, 111, 100, 110, 109, 108, 108, 112, 108, 106, 107, 114, 111, 105, 109, 110, 105, 105, 111, 115, 112, 105, 112, 112, 113, 107, 107, 106, 109, 112, 104, 107, 110, 111, 117, 107, 109, 114, 115, 112, 105, 113, 106, 111, 107, 110, 111, 111, 110, 112, 109, 111, 116, 115, 109, 110, 113, 109, 107, 113, 110, 110, 110, 110, 109, 109, 106, 111, 99, 111, 110, 116, 117, 112, 115, 106, 109, 110, 111, 110, 108, 113, 115, 110, 111, 104, 110, 113, 106, 106, 117, 112, 110, 112, 109, 110, 110, 109, 105, 111, 110, 111, 111, 116, 106, 110, 108, 115, 111, 110, 111, 111, 112, 110, 110, 108, 110, 112, 110, 94, 112, 111, 115, 109, 112, 110, 109, 111, 110, 107, 109, 108, 108, 108, 112, 103, 108, 108, 103, 109, 112, 113, 110, 111, 112, 115, 113, 108, 101, 109, 117, 112, 109, 110, 120, 111, 112, 110, 110, 111, 111, 115, 110, 106, 106, 111, 106, 110, 116, 108, 102, 111, 109, 114, 109, 109, 109, 103, 111, 108, 110, 111, 109, 110, 112, 109, 109, 112, 111, 102, 109, 111, 116, 110, 109, 110, 108, 112, 109, 115, 101, 106, 103, 104, 111, 111, 106, 110, 111, 110, 110, 110, 113, 109, 109, 105, 111, 110, 111, 111, 112, 97, 108, 111, 109, 109, 110, 110, 113, 111, 106, 106, 108, 111, 114, 114, 108, 110, 111, 105, 109, 113, 108, 115, 112, 108, 111, 111, 110, 111, 113, 111, 111, 110, 113, 107, 108, 111, 113, 111, 107, 111, 110, 114, 112, 114, 104, 102, 112, 111, 110, 111, 106, 114, 110, 108, 110, 110, 112, 111, 108, 108, 112, 109, 108, 109, 112, 109, 112, 109, 111, 110, 112, 109, 111, 114, 105, 113, 111, 107, 110, 105, 108, 107, 110, 107, 110, 112, 109, 110, 97, 109, 111, 110, 107, 110, 112, 108, 113, 108, 110, 119, 113, 109, 107, 109, 111, 111, 105, 109, 108, 106, 110, 113, 111, 114, 112, 115, 112, 111, 114, 107, 112, 107, 110, 115, 117, 109, 109, 114, 110, 110, 110, 109, 108, 109, 110, 107, 108, 112, 108, 109, 111, 112, 113, 115, 108, 109, 112, 111, 106, 108, 110, 111, 109, 110, 113, 110, 110, 109, 108, 110, 117, 110, 110, 113, 112, 110, 112, 111, 108, 108, 111, 110, 115, 113, 110, 115, 103, 106, 109, 109, 112, 115, 109, 103, 107, 107, 107, 112, 110, 111, 112, 106, 113, 111, 107, 113, 112, 108, 109, 110, 114, 112, 112, 112, 110, 110, 112, 114, 110, 115, 117, 113, 102, 115, 105, 115, 119, 117, 112, 113, 113, 114, 113, 106, 112, 111, 114, 111, 99, 116, 106, 111, 103, 106, 105, 108, 97, 114, 114, 110, 97, 111, 122, 106, 112, 109, 112, 107, 119, 108, 107, 112, 115, 111, 111, 111, 107, 114, 116, 109, 109, 111, 107, 109, 111, 116, 112, 110, 114, 118, 120, 101, 114, 110, 109, 112, 113, 112, 112, 114, 113, 112, 109, 108, 109, 116, 112, 106, 108, 110, 111, 106, 109, 105, 109, 112, 112, 106, 116, 113, 110, 110, 110, 111, 111, 116, 108, 107, 114, 113, 112, 113, 109, 106, 119, 110, 117, 116, 113, 105, 106, 114, 117, 115, 108, 110, 118, 116, 114, 114, 111, 117, 112, 113, 118, 114, 107, 112, 119, 113, 117, 110, 118, 111, 103, 112, 108, 118, 114, 104, 115, 111, 111, 110, 113, 106, 113, 108, 111, 114, 106, 111, 115, 108, 107, 115, 106, 120, 115, 113, 106, 109, 111, 110, 110, 119, 108, 113, 112, 112, 109, 116, 105, 106, 111, 110, 110, 111, 107, 117, 102, 105, 109, 114, 108, 103, 114, 112, 107, 105, 118, 106, 117, 114, 108, 103, 105, 111, 107, 110, 101, 113, 109, 102, 111, 111, 113, 115, 116, 107, 111, 111, 111, 107, 110, 116, 104, 111, 110, 109, 106, 116, 113, 110, 116, 111, 113, 118, 111, 105, 114, 103, 100, 112, 114, 111, 112, 113, 116, 108, 107, 115, 114, 108, 117, 119, 113, 106, 105, 109, 109, 107, 115, 108, 113, 100, 107, 109, 109, 113, 116, 121, 110, 113, 114, 107, 112, 119, 107, 113, 112, 106, 112, 111, 110, 111, 112, 95, 118, 114, 114, 102, 118, 114, 112, 111, 106, 109, 108, 107, 112, 113, 110, 110, 110, 112, 113, 105, 111, 113, 110, 109, 114, 112, 114, 113, 107, 112, 114, 107, 113, 113, 122, 111, 107, 114, 111, 109, 111, 110, 110, 112, 109, 112, 106, 113, 118, 106, 104, 113, 112, 112, 115, 118, 113, 109, 114, 111, 117, 114, 107, 117, 100, 107, 113, 108, 104, 112, 105, 111, 112, 99, 108, 114, 112, 107, 111, 116, 114, 112, 107, 104, 113, 113, 116, 109, 105, 106, 115, 115, 110, 111, 111, 113, 115, 109, 111, 105, 106, 111, 99, 114, 115, 108, 104, 114, 113, 107, 109, 114, 106, 108, 110, 108, 112, 112, 110, 107, 109, 114, 104, 109, 115, 112, 110, 115, 108, 109, 117, 104, 113, 109, 113, 103, 106, 112, 110, 114, 106, 109, 114, 111, 109, 118, 114, 107, 109, 107, 112, 111, 116, 109, 111, 108, 111, 109, 110, 117, 114, 108, 110, 116, 111, 110, 108, 107, 104, 113, 109, 110, 112, 110, 106, 110, 104, 109, 105, 114, 118, 112, 107, 119, 104, 109, 111, 114, 109, 107, 114, 106, 102, 105, 105, 107, 99, 107, 119, 111, 112, 107, 113, 113, 113, 113, 108, 113, 111, 110, 110, 118, 114, 111, 120, 116, 111, 126, 107, 114, 99, 113, 108, 115, 106, 115, 107, 113, 108, 108, 119, 111, 107, 114, 118, 104, 109, 119, 117, 111, 115, 109, 124, 117, 129, 106, 99, 119, 104, 111, 116, 119, 105, 107, 106, 106, 117, 126, 105, 117, 105, 111, 112, 105, 119, 111, 119, 103, 115, 120, 114, 109, 115, 109, 104, 117, 111, 111, 115, 116, 110, 115, 119, 104, 107, 116, 111, 123, 108, 112, 105, 116, 110, 106, 118, 107, 110, 119, 121, 106, 115, 106, 110, 114, 102, 126, 115, 109, 119, 110, 117, 114, 108, 120, 109, 121, 103, 98, 121, 113, 108, 112, 116, 108, 103, 108, 107, 105, 113, 108, 109, 112, 105, 105, 108, 118, 114, 113, 110, 110, 105, 115, 107, 115, 105, 109, 113, 121, 112, 105, 109, 116, 123, 123, 106, 118, 104, 121, 142, 114, 105, 113, 110, 114, 112, 116, 113, 106, 115, 111, 106, 123, 113, 109, 111, 110, 114, 117, 125, 123, 113, 114, 114, 109, 118, 109, 110, 121, 108, 115, 108, 110, 106, 104, 103, 98, 114, 112, 108, 114, 103, 112, 105, 108, 110, 113, 107, 115, 103, 99, 110, 114, 102, 100, 112, 112, 109, 107, 109, 113, 124, 121, 93, 115, 107, 107, 104, 119, 111, 103, 107, 91, 118, 113, 101, 110, 112, 108, 118, 109, 119, 135, 114, 114, 110, 113, 105, 103, 111, 111, 121, 109, 107, 122, 118, 100, 114, 121, 114, 110, 109, 110, 109, 109, 114, 111, 117, 99, 109, 114, 108, 108, 106, 87, 113, 99, 109, 116, 109, 116, 110, 111, 110, 115, 109, 111, 112, 102, 109, 104, 106, 112, 105, 117, 114, 115, 114, 108, 105, 110, 117, 113, 106, 116, 114, 116, 113, 111, 110, 125, 97, 109, 119, 113, 119, 116, 108, 120, 118, 110, 104, 107, 115, 114, 112, 107, 101, 113, 115, 111, 107, 110, 119, 110, 113, 110, 119, 116, 111, 112, 115, 116, 105, 110, 119, 111, 116, 105, 114, 117, 115, 114, 118, 110, 110, 117, 102, 124, 108, 111, 118, 116, 109, 112, 112, 99, 116, 106, 114, 118, 107, 111, 106, 124, 111, 116, 105, 105, 104, 118, 113, 108, 106, 116, 123, 103, 102, 121, 117, 117, 105, 129, 122, 100, 102, 109, 106, 117, 105, 116, 102, 106, 96, 109, 109, 107, 106, 108, 111, 115, 123, 101, 104, 107, 113, 117, 107, 109, 111, 110, 97, 111, 117, 103, 109, 106, 113, 98, 118, 103, 116, 115, 115, 115, 108, 104, 122, 113, 110, 119, 111, 107, 119, 122, 115, 120, 108, 118, 104, 109, 119, 104, 112, 118, 113, 116, 103, 109, 107, 117, 106, 103, 103, 107, 107, 106, 112, 111, 101, 113, 117, 115, 111, 119, 116, 111, 113, 102, 112, 111, 108, 108, 105, 102, 99, 102, 112, 112, 112, 105, 102, 117, 112, 110, 100, 96, 115, 115, 114, 112, 108, 100, 120, 121, 107, 120, 112, 113, 117, 115, 113, 111, 115, 129, 106, 110, 130, 111, 111, 109, 104, 106, 110, 113, 111, 107, 118, 112, 114, 114, 110, 115, 104, 114, 110, 109, 101, 121, 106, 102, 109, 110, 102, 104, 100, 99, 115, 116, 110, 122, 116, 104, 106, 110, 114, 114, 112, 114, 106, 107, 100, 105, 107, 111, 112, 113, 117, 107, 116, 102, 108, 105, 108, 111, 109, 115, 111, 116, 114, 110, 111, 117, 107, 103, 118, 122, 114, 104, 108, 112, 111, 111, 113, 104, 124, 116, 117, 109, 111, 112, 108, 106, 98, 107, 107, 106, 113, 115, 108, 95, 112, 112, 105, 104, 105, 109, 98, 99, 99, 115, 113, 111, 118, 106, 117, 116, 103, 109, 99, 105, 113, 106, 104, 109, 115, 111, 106, 111, 110, 114, 119, 103, 113, 110, 103, 106, 110, 110, 101, 111, 114, 111, 110, 106, 123, 103, 105, 112, 112, 107, 117, 110, 108, 107, 112, 116, 100, 108, 113, 110, 116, 120, 112, 100, 107, 116, 114, 113, 115, 117, 108, 124, 101, 121, 112, 114, 115, 113, 107, 104, 103, 108, 116, 102, 112, 104, 112, 109, 110, 109, 125, 104, 107, 105, 115, 106, 114, 112, 118, 114, 103, 115, 107, 111, 104, 103, 100, 109, 110, 110, 107, 111, 118, 110, 112, 109, 109, 108, 100, 111, 111, 109, 103, 123, 98, 117, 103, 104, 107, 113, 99, 111, 115, 113, 113, 119, 116, 112, 112, 108, 104, 109, 106, 110, 108, 101, 112, 101, 108, 110, 119, 105, 107, 107, 106, 117, 108, 119, 109, 109, 107, 107, 121, 110, 113, 113, 114, 107, 113, 119, 107, 97, 109, 126, 118, 107, 113, 120, 105, 109, 109, 105, 113, 110, 129, 122, 113, 117, 113, 108, 106, 113, 108, 110, 111, 117, 114, 106, 117, 107, 104, 105, 116, 118, 115, 110, 97, 110, 107, 104, 106, 97, 105, 113, 109, 111, 103, 110, 116, 98, 115, 105, 116, 112, 104, 112, 108, 115, 107, 105, 114, 124, 98, 113, 103, 110, 105, 104, 119, 107, 113, 101, 103, 113, 100, 108, 111, 113, 103, 113, 107, 102, 112, 107, 105, 102, 112, 109, 120, 115, 127, 107, 117, 111, 107, 114, 106, 120, 112, 102, 113, 115, 117, 107, 102, 107, 112, 112, 107, 113, 115, 109, 108, 110, 111, 115, 104, 114, 113, 118, 114, 117, 102, 109, 107, 123, 113, 111, 110, 108, 99, 118, 108, 111, 115, 111, 112, 116, 114, 104, 114, 112, 110, 114, 108, 108, 110, 114, 106, 121, 104, 93, 117, 111, 101, 113, 98, 110, 113, 103, 105, 99, 100, 110, 99, 101, 110, 106, 107, 104, 113, 94, 108, 108, 110, 113, 103, 110, 107, 95, 117, 111, 97, 109, 104, 108, 122, 108, 105, 102, 107, 103, 113, 108, 111, 109, 107, 114, 112, 110, 106, 109, 104, 104, 112, 109, 118, 120, 114, 106, 118, 106, 110, 101, 110, 114, 111, 110, 114, 117, 109, 107, 111, 103, 113, 112, 111, 108, 105, 110, 119, 106, 100, 108, 114, 111, 109, 109, 106, 115, 119, 111, 116, 111, 107, 104, 103, 109, 111, 112, 109, 110, 117, 104, 103, 105, 114, 102, 111, 104, 119, 109, 105, 116, 105, 108, 111, 103, 101, 102, 111, 114, 115, 110, 114, 111, 92, 100, 109, 112, 113, 109, 111, 102, 108, 115, 102, 109, 105, 112, 109, 102, 106, 111, 105, 117, 104, 100, 117, 113, 102, 106, 120, 120, 96, 116, 106, 102, 104, 107, 107, 112, 100, 114, 107, 110, 101, 103, 115, 117, 108, 112, 120, 117, 109, 106, 107, 111, 102, 106, 110, 108, 105, 111, 110, 100, 112, 118, 114, 101, 107, 104, 112, 109, 110, 96, 111, 105, 101, 111, 112, 100, 108, 114, 96, 105, 104, 107, 107, 137, 113, 98, 103, 102, 106, 105, 114, 118, 109, 118, 108, 102, 104, 109, 109, 109, 119, 101, 112, 97, 117, 112, 108, 123, 109, 113, 108, 119, 111, 107, 108, 106, 112, 115, 104, 104, 112, 99, 109, 123, 111, 108, 112, 111, 103, 112, 104, 114, 105, 130, 116, 118, 105, 108, 113, 116, 113, 112, 106, 102, 111, 105, 108, 112, 106, 83, 104, 134, 102, 114, 118, 108, 121, 112, 97, 111, 115, 130, 98, 141, 108, 113, 97, 101, 106, 107, 114, 110, 109, 109, 103, 94, 118, 115, 107, 108, 102, 104, 95, 113, 106, 110, 108, 84, 100, 112, 122, 105, 120, 125, 116, 109, 112, 101, 119, 124, 108, 112, 117, 117, 118, 120, 102, 108, 108, 108, 99, 103, 103, 104, 117, 106, 111, 100, 101, 105, 115, 108, 99, 96, 103, 101, 111, 114, 107, 112, 103, 116, 112, 106, 125, 98, 116, 108, 108, 113, 121, 132, 111, 95, 117, 113, 107, 115, 108, 120, 106, 104, 108, 104, 110, 114, 115, 104, 109, 104, 111, 113, 109, 104, 116, 119, 120, 104, 108, 114, 101, 110, 109, 102, 112, 108, 101, 106, 119, 102, 102, 115, 121, 109, 110, 106, 109, 109, 86, 128, 112, 107, 110, 109, 113, 117, 123, 106, 111, 105, 111, 103, 109, 115, 121, 107, 102, 112, 124, 112, 113, 104, 111, 111, 106, 109, 96, 115, 111, 109, 126, 103, 109, 110, 103, 112, 109, 112, 103, 130, 113, 104, 115, 106, 107, 109, 118, 113, 110, 105, 108, 106, 113, 110, 105, 108, 110, 105, 112, 112, 94, 108, 110, 110, 106, 105, 103, 116, 112, 100, 103, 110, 109, 106, 110, 108, 105, 101, 106, 108, 112, 117, 116, 98, 114, 108, 106, 114, 97, 105, 110, 120, 99, 107, 115, 110, 106, 120, 97, 107, 93, 107, 111, 99, 108, 117, 102, 112, 108, 105, 122, 109, 98, 106, 101, 106, 102, 108, 102, 95, 110, 97, 104, 112, 120, 97, 99, 112, 118, 113, 108, 113, 115, 105, 101, 118, 97, 109, 102, 135, 112, 109, 102, 96, 107, 116, 104, 110, 101, 107, 130, 106, 117, 106, 115, 106, 116, 100, 105, 104, 113, 118, 119, 106, 103, 112, 101, 105, 140, 107, 105, 105, 104, 115, 118, 120, 119, 103, 108, 90, 109, 100, 107, 105, 108, 130, 117, 103, 100, 108, 116, 107, 106, 120, 112, 109, 102, 107, 114, 111, 103, 116, 112, 116, 105, 131, 99, 111, 122, 135, 110, 111, 113, 106, 110, 113, 112, 111, 109, 107, 107, 110, 112, 108, 107, 112, 106, 112, 109, 108, 111, 105, 111, 112, 108, 110, 108, 113, 109, 111, 111, 105, 110, 111, 106, 109, 103, 113, 108, 114, 105, 118, 111, 114, 106, 111, 107, 111, 105, 115, 111, 110, 105, 107, 106, 104, 106, 109, 111, 109, 105, 113, 113, 109, 115, 113, 110, 105, 113, 110, 114, 113, 106, 107, 106, 112, 109, 109, 106, 117, 107, 115, 110, 113, 117, 104, 110, 112, 110, 113, 104, 106, 115, 109, 109, 108, 111, 113, 106, 108, 111, 109, 106, 109, 108, 106, 100, 113, 112, 113, 109, 111, 110, 115, 109, 114, 108, 108, 110, 110, 103, 112, 112, 113, 115, 110, 110, 110, 110, 116, 103, 111, 107, 109, 113, 107, 108, 111, 111, 107, 110, 109, 110, 110, 108, 103, 111, 109, 108, 109, 110, 111, 107, 111, 102, 110, 111, 110, 107, 108, 112, 113, 109, 112, 108, 113, 109, 109, 112, 109, 109, 104, 114, 113, 106, 104, 109, 110, 109, 109, 106, 109, 110, 109, 112, 110, 111, 107, 107, 103, 108, 107, 119, 109, 111, 108, 115, 111, 107, 108, 110, 107, 109, 107, 111, 111, 111, 109, 108, 106, 103, 106, 112, 110, 109, 114, 108, 110, 116, 105, 106, 109, 109, 110, 111, 111, 108, 114, 108, 113, 111, 111, 112, 106, 112, 107, 103, 113, 108, 111, 109, 106, 110, 114, 113, 109, 112, 110, 107, 112, 107, 108, 101, 113, 108, 113, 112, 116, 108, 111, 112, 110, 107, 113, 109, 108, 110, 101, 108, 111, 111, 112, 98, 108, 108, 111, 113, 116, 109, 107, 113, 105, 109, 108, 115, 108, 104, 113, 108, 109, 108, 101, 115, 112, 109, 116, 111, 112, 107, 107, 111, 105, 112, 111, 112, 110, 112, 110, 110, 114, 112, 108, 115, 118, 107, 110, 110, 111, 114, 116, 108, 109, 115, 114, 108, 106, 107, 106, 111, 111, 107, 110, 110, 113, 105, 105, 112, 111, 110, 111, 109, 110, 105, 119, 107, 109, 106, 109, 110, 110, 110, 114, 117, 110, 113, 105, 108, 116, 113, 109, 99, 111, 111, 112, 110, 101, 109, 109, 109, 107, 109, 116, 111, 108, 102, 113, 110, 105, 111, 106, 108, 108, 112, 110, 111, 106, 113, 115, 111, 108, 107, 112, 109, 129, 109, 109, 113, 114, 109, 111, 111, 107, 107, 109, 111, 109, 108, 104, 114, 111, 123, 110, 114, 106, 114, 108, 108, 109, 107, 110, 121, 115, 112, 109, 109, 111, 108, 116, 116, 106, 110, 106, 110, 113, 108, 138, 103, 108, 107, 107, 110, 111, 110, 110, 114, 105, 109, 106, 114, 109, 109, 106, 108, 105, 112, 108, 103, 111, 108, 114, 110, 109, 112, 120, 108, 109, 109, 113, 111, 105, 114, 110, 117, 106, 107, 112, 112, 106, 103, 106, 104, 109, 117, 106, 111, 107, 115, 102, 110, 110, 102, 107, 110, 108, 111, 110, 113, 116, 110, 110, 111, 111, 107, 111, 109, 109, 106, 109, 114, 110, 110, 105, 111, 116, 115, 114, 116, 122, 112, 114, 111, 109, 110, 111, 104, 107, 117, 97, 109, 116, 123, 111, 98, 102, 115, 104, 111, 109, 114, 109, 113, 108, 102, 110, 116, 96, 106, 107, 117, 107, 117, 111, 121, 154, 115, 115, 107, 106, 115, 111, 104, 103, 96, 108, 113, 112, 114, 113, 109, 117, 107, 117, 118, 108, 107, 108, 105, 105, 96, 112, 111, 105, 113, 109, 111, 123, 115, 117, 112, 109, 122, 109, 115, 110, 113, 120, 111, 120, 112, 110, 113, 106, 111, 106, 108, 111, 111, 117, 117, 101, 115, 117, 119, 111, 118, 108, 109, 119, 108, 101, 103, 114, 113, 105, 112, 111, 109, 112, 112, 114, 100, 116, 114, 110, 112, 112, 108, 102, 110, 115, 114, 114, 109, 104, 110, 112, 108, 114, 124, 108, 110, 106, 109, 113, 111, 107, 115, 109, 107, 110, 114, 111, 114, 112, 110, 116, 110, 111, 131, 105, 114, 113, 114, 105, 105, 116, 113, 110, 112, 110, 109, 97, 113, 108, 111, 105, 115, 114, 110, 141, 129, 107, 118, 108, 104, 111, 109, 98, 112, 103, 107, 144, 119, 112, 103, 111, 106, 104, 110, 112, 130, 108, 107, 114, 108, 104, 104, 119, 107, 114, 109, 113, 116, 117, 104, 106, 113, 109, 112, 110, 102, 96, 114, 111, 120, 114, 112, 115, 110, 105, 105, 112, 110, 116, 101, 107, 113, 111, 97, 103, 114, 109, 107, 118, 111, 108, 111, 111, 121, 109, 111, 113, 104, 113, 112, 125, 114, 115, 107, 106, 117, 113, 111, 123, 110, 117, 111, 110, 114, 118, 112, 106, 103, 120, 116, 131, 105, 117, 104, 110, 110, 129, 111, 107, 109, 114, 106, 112, 106, 107, 109, 107, 157, 104, 115, 111, 115, 97, 111, 109, 109, 109, 106, 109, 92, 113, 110, 113, 107, 111, 109, 111, 108, 133, 109, 109, 113, 104, 113, 117, 119, 112, 125, 107, 112, 117, 99, 105, 106, 111, 105, 108, 113, 105, 107, 111, 111, 110, 123, 107, 112, 126, 104, 120, 111, 88, 101, 110, 107, 114, 117, 110, 114, 108, 115, 114, 112, 110, 114, 111, 107, 108, 106, 113, 124, 108, 103, 111, 109, 110, 114, 109, 110, 113, 117, 109, 125, 113, 102, 116, 115, 111, 114, 113, 110, 107, 115, 131, 117, 98, 111, 112, 111, 125, 118, 93, 113, 111, 113, 104, 115, 107, 112, 113, 118, 108, 111, 127, 118, 107, 102, 111, 107, 114, 113, 128, 119, 109, 109, 110, 106, 111, 115, 144, 111, 111, 106, 109, 116, 106, 112, 108, 111, 103, 111, 113, 109, 67, 116, 110, 105, 112, 110, 104, 101, 118, 100, 102, 110, 109, 114, 111, 114, 110, 97, 111, 115, 109, 114, 111, 112, 112, 104, 110, 108, 107, 114, 107, 110, 110, 103, 113, 106, 122, 110, 128, 96, 105, 113, 112, 156, 109, 112, 105, 106, 114, 103, 109, 127, 102, 108, 112, 113, 115, 115, 92, 112, 108, 111, 106, 113, 108, 109, 112, 110, 116, 112, 129, 117, 142, 107, 107, 113, 114, 105, 102, 113, 112, 104, 106, 105, 106, 112, 108, 99, 110, 108, 112, 110, 103, 107, 122, 108, 123, 101, 106, 116, 107, 111, 115, 102, 101, 110, 105, 128, 107, 106, 104, 115, 89, 101, 123, 112, 110, 107, 109, 115, 105, 100, 94, 107, 118, 103, 109, 104, 106, 112, 104, 105, 106, 104, 110, 118, 112, 103, 111, 113, 113, 102, 108, 93, 110, 106, 119, 84, 113, 109, 111, 110, 107, 100, 113, 126, 114, 116, 107, 109, 112, 115, 92, 104, 109, 106, 110, 118, 106, 112, 116, 105, 107, 113, 109, 108, 108, 113, 106, 105, 100, 113, 111, 96, 103, 115, 114, 102, 104, 109, 116, 109, 119, 102, 120, 103, 101, 134, 116, 111, 114, 100, 86, 107, 111, 111, 113, 108, 111, 110, 111, 106, 115, 106, 122, 108, 106, 130, 111, 110, 103, 144, 109, 113, 112, 112, 102, 109, 109, 112, 108, 125, 111, 104, 114, 107, 110, 93, 114, 111, 123, 118, 105, 108, 107, 104, 121, 24, 97, 113, 112, 113, 118, 113, 66, 78, 111, 124, 105, 120, 109, 112, 103, 115, 118, 111, 116, 110, 114, 123, 104, 108, 110, 105, 107, 110, 124, 108, 112, 109, 94, 102, 117, 105, 111, 114, 110, 107, 110, 88, 107, 110, 105, 107, 106, 110, 111, 105, 108, 104, 105, 114, 113, 108, 89, 107, 110, 116, 103, 110, 100, 111, 109, 118, 107, 115, 102, 104, 104, 117, 117, 107, 116, 119, 107, 111, 109, 123, 108, 126, 111, 106, 109, 114, 101, 112, 116, 111, 90, 105, 109, 104, 112, 105, 119, 110, 118, 102, 109, 88, 103, 105, 164, 100, 107, 109, 118, 108, 112, 101, 112, 114, 106, 106, 108, 114, 111, 108, 106, 119, 108, 110, 110, 121, 121, 113, 111, 98, 124, 111, 101, 117, 113, 101, 102, 113, 100, 119, 102, 108, 111, 118, 113, 93, 109, 91, 106, 106, 121, 111, 95, 105, 116, 117, 112, 118, 111, 107, 93, 121, 114, 113, 104, 109, 112, 97, 100, 108, 102, 109, 114, 115, 109, 110, 110, 106, 116, 111, 46, 101, 111, 101, 125, 124, 108, 113, 113, 108, 106, 109, 111, 112, 83, 110, 115, 108, 111, 103, 109, 91, 106, 102, 108, 109, 108, 105, 102, 110, 107, 106, 106, 110, 115, 101, 105, 116, 101, 107, 102, 98, 108, 119, 109, 125, 108, 111, 99, 116, 123, 112, 117, 112, 108, 120, 112, 128, 112, 100, 107, 111, 119, 102, 107, 108, 107, 110, 109, 85, 113, 99, 96, 115, 107, 100, 119, 105, 114, 114, 105, 105, 111, 112, 105, 112, 120, 113, 108, 116, 125, 54, 105, 108, 109, 108, 127, 102, 115, 109, 113, 111, 110, 104, 107, 105, 105, 120, 108, 110, 107, 100, 119, 116, 116, 146, 105, 110, 110, 114, 196, 107, 114, 108, 107, 108, 104, 116, 95, 97, 113, 108, 105, 132, 104, 104, 180, 106, 114, 99, 113, 104, 103, 111, 116, 117, 105, 108, 111, 114, 112, 107, 112, 89, 105, 108, 110, 110, 101, 110, 105, 115, 107, 112, 106, 121, 105, 103, 116, 112, 100, 110, 112, 109, 114, 104, 112, 112, 111, 110, 122, 115, 110, 103, 112, 109, 107, 110, 107, 116, 116, 107, 111, 109, 115, 110, 117, 114, 108, 105, 108, 113, 107, 93, 114, 111, 112, 107, 102, 113, 110, 105, 109, 107, 107, 105, 107, 110, 105, 110, 112, 138, 109, 110, 108, 108, 112, 107, 108, 114, 122, 116, 118, 108, 111, 126, 108, 100, 110, 99, 112, 111, 111, 113, 107, 113, 108, 106, 109, 106, 108, 106, 108, 103, 108, 113, 110, 108, 108, 112, 106, 99, 104, 111, 117, 115, 111, 88, 107, 105, 115, 103, 113, 113, 112, 115, 113, 116, 105, 112, 110, 117, 111, 112, 108, 112, 114, 90, 102, 103, 112, 100, 83, 107, 112, 110, 110, 113, 111, 112, 111, 110, 113, 101, 114, 107, 112, 110, 111, 109, 112, 112, 108, 115, 110, 113, 105, 134, 120, 114, 106, 114, 111, 106, 119, 108, 105, 109, 108, 109, 99, 106, 113, 83, 120, 112, 104, 110, 106, 108, 111, 114, 113, 112, 109, 113, 114, 108, 109, 103, 111, 108, 111, 112, 106, 109, 114, 108, 114, 114, 108, 110, 111, 112, 108, 120, 115, 120, 107, 108, 115, 107, 113, 114, 113, 107, 111, 122, 109, 110, 122, 114, 109, 106, 121, 110, 109, 113, 106, 109, 117, 114, 112, 104, 111, 114, 109, 101, 108, 100, 110, 116, 115, 113, 110, 105, 114, 104, 113, 112, 108, 106, 108, 116, 110, 112, 111, 89, 107, 112, 106, 113, 116, 107, 105, 110, 108, 109, 110, 111, 113, 112, 109, 108, 108, 109, 111, 113, 117, 103, 116, 107, 111, 113, 112, 111, 111, 113, 113, 110, 113, 110, 109, 130, 112, 115, 110, 114, 118, 111, 114, 109, 108, 112, 110, 109, 112, 114, 118, 110, 111, 100, 113, 113, 110, 116, 110, 113, 115, 110, 111, 113, 104, 122, 109, 110, 115, 92, 109, 111, 112, 101, 101, 112, 107, 120, 107, 103, 109, 111, 108, 112, 110, 122, 118, 110, 110, 104, 91, 111, 111, 112, 110, 114, 116, 110, 107, 107, 111, 109, 102, 112, 110, 109, 112, 113, 105, 85, 111, 108, 110, 110, 112, 97, 114, 116, 112, 94, 106, 122, 107, 109, 112, 119, 108, 128, 117, 95, 119, 114, 108, 111, 109, 113, 110, 116, 112, 108, 111, 139, 117, 114, 113, 119, 104, 114, 104, 114, 117, 108, 112, 105, 113, 114, 81, 109, 107, 110, 109, 112, 104, 119, 118, 110, 112, 117, 109, 112, 111, 107, 106, 115, 111, 109, 110, 109, 123, 115, 131, 98, 104, 118, 110, 112, 77, 117, 110, 108, 114, 111, 108, 111, 109, 117, 111, 114, 120, 118, 109, 109, 108, 105, 107, 105, 115, 105, 112, 110, 109, 111, 106, 104, 109, 109, 113, 114, 115, 106, 112, 109, 106, 110, 110, 106, 112, 112, 107, 105, 113, 106, 114, 104, 100, 115, 112, 105, 116, 110, 114, 114, 107, 110, 109, 109, 114, 103, 111, 113, 114, 110, 101, 109, 110, 104, 104, 110, 115, 120, 93, 107, 112, 104, 114, 112, 115, 108, 125, 116, 112, 98, 111, 131, 116, 111, 113, 107, 116, 114, 106, 104, 107, 109, 104, 111, 102, 101, 120, 107, 105, 98, 104, 122, 107, 95, 114, 107, 125, 95, 99, 108, 125, 112, 119, 109, 107, 108, 105, 116, 104, 108, 98, 124, 125, 106, 104, 110, 114, 102, 112, 99, 97, 117, 111, 113, 106, 109, 120, 115, 93, 114, 111, 113, 112, 106, 99, 101, 126, 112, 113, 114, 98, 117, 112, 107, 116, 108, 111, 109, 122, 110, 107, 106, 104, 121, 115, 106, 110, 108, 123, 102, 115, 110, 108, 114, 111, 114, 109, 109, 109, 132, 103, 114, 116, 122, 119, 97, 99, 103, 105, 115, 111, 112, 107, 110, 101, 112, 103, 117, 114, 104, 118, 120, 106, 100, 111, 110, 108, 110, 104, 112, 115, 107, 107, 111, 102, 112, 107, 101, 102, 116, 113, 122, 113, 100, 130, 116, 113, 119, 107, 105, 100, 113, 114, 110, 105, 113, 112, 94, 115, 115, 105, 101, 107, 103, 112, 119, 114, 114, 110, 123, 113, 108, 116, 113, 112, 102, 102, 103, 99, 98, 107, 115, 108, 115, 112, 113, 123, 103, 97, 115, 107, 111, 102, 111, 103, 109, 107, 97, 107, 102, 102, 106, 112, 116, 115, 112, 114, 100, 136, 114, 83, 112, 117, 124, 111, 107, 107, 107, 115, 107, 112, 114, 108, 106, 108, 111, 97, 119, 120, 90, 102, 114, 107, 115, 100, 114, 97, 98, 115, 120, 103, 116, 109, 110, 114, 105, 112, 108, 105, 93, 163, 105, 123, 112, 101, 139, 117, 97, 112, 115, 112, 103, 119, 114, 113, 100, 110, 122, 103, 104, 108, 103, 112, 111, 94, 101, 112, 106, 105, 111, 95, 108, 98, 94, 104, 109, 113, 95, 102, 118, 101, 120, 107, 103, 105, 127, 91, 132, 114, 105, 121, 113, 109, 112, 119, 108, 81, 116, 112, 104, 115, 110, 108, 104, 113, 122, 120, 106, 119, 96, 109, 108, 111, 107, 99, 116, 89, 113, 96, 114, 122, 103, 99, 107, 74, 111, 115, 90, 102, 94, 111, 115, 103, 101, 101, 121, 102, 116, 100, 115, 116, 105, 114, 106, 116, 112, 109, 107, 114, 95, 102, 99, 105, 102, 107, 113, 121, 106, 101, 112, 109, 113, 117, 106, 123, 107, 111, 76, 108, 111, 109, 112, 108, 89, 114, 118, 125, 103, 115, 110, 106, 104, 110, 107, 113, 114, 113, 95, 109, 110, 112, 106, 103, 98, 93, 111, 108, 113, 106, 115, 108, 111, 117, 106, 114, 104, 114, 106, 97, 100, 99, 121, 93, 113, 97, 91, 107, 115, 111, 110, 104, 93, 113, 109, 109, 116, 105, 110, 106, 125, 113, 116, 110, 112, 107, 91, 142, 130, 117, 100, 107, 108, 58, 99, 114, 109, 98, 99, 107, 116, 95, 109, 116, 117, 75, 103, 101, 108, 104, 116, 116, 105, 127, 113, 106, 106, 105, 109, 116, 115, 110, 112, 116, 116, 100, 111, 110, 105, 121, 116, 113, 112, 100, 113, 89, 112, 108, 115, 110, 117, 109, 111, 109, 112, 108, 111, 111, 108, 108, 103, 109, 108, 109, 111, 108, 108, 113, 107, 107, 109, 107, 107, 108, 107, 113, 108, 112, 109, 105, 111, 111, 116, 106, 110, 106, 108, 104, 110, 111, 122, 124, 109, 108, 108, 109, 112, 111, 107, 106, 107, 112, 112, 110, 105, 110, 108, 110, 110, 114, 109, 110, 125, 111, 99, 110, 111, 112, 112, 113, 104, 110, 114, 111, 97, 111, 111, 113, 109, 104, 107, 107, 110, 109, 116, 114, 107, 110, 110, 104, 108, 109, 107, 111, 108, 110, 108, 113, 108, 107, 111, 109, 135, 112, 109, 109, 109, 110, 113, 109, 107, 110, 113, 109, 113, 111, 109, 105, 108, 109, 108, 119, 113, 113, 109, 111, 120, 110, 110, 109, 111, 114, 112, 110, 109, 109, 102, 110, 117, 109, 114, 112, 110, 108, 106, 110, 108, 111, 110, 109, 110, 108, 104, 114, 110, 108, 109, 104, 111, 107, 110, 108, 111, 108, 110, 114, 92, 113, 109, 110, 113, 109, 107, 123, 108, 111, 100, 108, 111, 112, 109, 113, 113, 110, 111, 104, 107, 109, 107, 104, 105, 110, 113, 112, 109, 111, 112, 110, 110, 120, 111, 109, 114, 110, 112, 111, 114, 111, 108, 106, 115, 112, 111, 106, 109, 108, 110, 110, 110, 110, 109, 111, 108, 110, 112, 108, 108, 110, 110, 112, 108, 112, 117, 111, 111, 111, 105, 96, 107, 123, 112, 110, 109, 112, 108, 111, 112, 110, 112, 106, 120, 111, 112, 110, 110, 109, 111, 119, 113, 105, 109, 109, 108, 114, 110, 109, 108, 112, 99, 114, 109, 108, 114, 112, 110, 111, 115, 113, 106, 113, 113, 109, 110, 112, 108, 108, 113, 109, 113, 110, 109, 109, 110, 113, 108, 108, 113, 112, 105, 111, 109, 104, 112, 110, 112, 105, 111, 113, 112, 111, 108, 106, 102, 108, 112, 111, 111, 111, 111, 107, 111, 110, 101, 111, 109, 110, 108, 106, 112, 102, 110, 109, 110, 109, 110, 115, 110, 110, 113, 118, 110, 108, 111, 113, 109, 108, 110, 104, 113, 95, 118, 110, 105, 111, 108, 109, 112, 108, 107, 110, 111, 114, 114, 110, 110, 108, 104, 112, 127, 109, 111, 108, 126, 109, 109, 112, 108, 112, 112, 111, 111, 121, 111, 122, 110, 110, 110, 100, 108, 106, 108, 108, 110, 111, 113, 107, 109, 109, 111, 110, 108, 108, 109, 112, 109, 109, 108, 113, 110, 120, 118, 109, 112, 111, 111, 105, 116, 109, 110, 111, 110, 109, 110, 111, 110, 109, 108, 111, 111, 108, 112, 119, 108, 112, 113, 107, 110, 113, 140, 135, 113, 107, 108, 110, 108, 109, 105, 108, 110, 111, 107, 109, 106, 107, 105, 109, 108, 111, 109, 110, 108, 116, 98, 108, 109, 105, 106, 111, 111, 113, 115, 107, 110, 109, 108, 106, 109, 111, 104, 109, 109, 109, 113, 115, 111, 111, 114, 108, 110, 110, 106, 112, 109, 109, 113, 110, 111, 108, 108, 110, 110, 118, 94, 103, 113, 110, 107, 113, 110, 106, 110, 105, 115, 117, 121, 109, 109, 114, 108, 107, 107, 107, 114, 106, 113, 110, 108, 103, 111, 111, 105, 117, 111, 105, 105, 110, 106, 113, 113, 112, 111, 108, 113, 117, 73, 105, 109, 106, 104, 109, 111, 111, 108, 110, 109, 118, 106, 110, 106, 109, 109, 109, 113, 107, 109, 107, 120, 108, 114, 110, 112, 106, 106, 110, 109, 111, 93, 113, 105, 102, 112, 103, 107, 109, 104, 110, 107, 112, 111, 107, 111, 113, 104, 113, 116, 115, 109, 110, 116, 107, 113, 108, 109, 95, 106, 102, 122, 107, 113, 110, 105, 109, 109, 110, 115, 120, 112, 114, 108, 113, 109, 106, 112, 111, 110, 106, 105, 104, 110, 108, 103, 109, 108, 116, 123, 113, 111, 114, 109, 112, 113, 109, 109, 116, 109, 112, 118, 112, 111, 113, 109, 113, 109, 107, 107, 111, 109, 109, 110, 112, 104, 107, 110, 106, 115, 109, 120, 111, 100, 116, 112, 110, 113, 111, 111, 109, 100, 112, 106, 117, 103, 104, 109, 110, 113, 103, 110, 110, 112, 109, 111, 108, 107, 114, 114, 118, 116, 112, 108, 110, 113, 102, 118, 111, 105, 109, 112, 117, 99, 107, 110, 116, 113, 107, 104, 107, 105, 112, 109, 115, 111, 118, 114, 116, 105, 109, 115, 121, 109, 113, 101, 111, 104, 106, 109, 107, 109, 103, 112, 111, 114, 105, 114, 110, 106, 113, 111, 112, 107, 109, 110, 106, 110, 124, 114, 112, 109, 105, 110, 108, 90, 113, 112, 111, 114, 111, 110, 114, 109, 114, 106, 132, 111, 106, 107, 123, 105, 130, 105, 111, 108, 109, 106, 110, 106, 111, 113, 109, 114, 113, 113, 113, 111, 109, 105, 117, 85, 117, 106, 115, 110, 108, 108, 113, 112, 109, 111, 103, 131, 107, 99, 97, 110, 111, 109, 110, 112, 106, 113, 119, 113, 109, 105, 109, 116, 107, 109, 109, 117, 110, 112, 105, 99, 111, 112, 114, 92, 109, 102, 113, 107, 109, 107, 112, 105, 123, 107, 143, 108, 105, 111, 128, 111, 112, 112, 105, 107, 106, 114, 107, 106, 112, 108, 111, 109, 117, 108, 109, 115, 108, 110, 111, 81, 114, 112, 113, 112, 126, 110, 112, 112, 108, 112, 113, 108, 106, 115, 111, 113, 107, 109, 111, 110, 92, 113, 112, 110, 104, 113, 110, 106, 113, 103, 104, 109, 110, 113, 103, 107, 108, 96, 109, 114, 105, 117, 114, 108, 112, 160, 109, 107, 111, 107, 109, 108, 112, 109, 112, 103, 106, 106, 117, 112, 109, 106, 118, 107, 108, 108, 107, 110, 112, 108, 109, 111, 110, 108, 116, 109, 126, 111, 105, 111, 109, 107, 107, 104, 114, 119, 111, 123, 112, 110, 116, 112, 116, 109, 105, 108, 110, 107, 112, 105, 108, 108, 113, 87, 111, 110, 116, 114, 99, 117, 112, 108, 106, 110, 98, 103, 114, 102, 111, 119, 112, 102, 102, 108, 93, 111, 107, 112, 113, 112, 116, 103, 110, 104, 107, 106, 109, 108, 106, 113, 113, 116, 112, 110, 110, 103, 109, 115, 118, 110, 107, 110, 99, 110, 106, 101, 97, 113, 109, 120, 104, 106, 107, 104, 110, 114, 115, 122, 123, 113, 119, 111, 111, 105, 110, 109, 110, 109, 106, 87, 102, 117, 106, 111, 103, 97, 113, 119, 104, 110, 108, 122, 112, 97, 114, 100, 102, 106, 112, 114, 116, 114, 98, 121, 119, 121, 115, 106, 118, 107, 102, 122, 109, 121, 111, 121, 93, 119, 115, 111, 99, 109, 97, 117, 107, 103, 102, 118, 133, 103, 112, 125, 109, 108, 109, 104, 110, 97, 106, 111, 104, 111, 114, 119, 108, 107, 109, 109, 113, 108, 113, 122, 107, 107, 106, 122, 108, 111, 107, 112, 100, 113, 117, 108, 96, 115, 115, 107, 100, 119, 105, 108, 116, 108, 103, 116, 107, 106, 115, 107, 117, 105, 103, 110, 110, 97, 116, 97, 113, 113, 106, 109, 109, 109, 109, 112, 116, 107, 122, 107, 106, 116, 116, 112, 95, 96, 115, 133, 112, 107, 111, 98, 106, 111, 118, 109, 106, 107, 117, 110, 115, 106, 122, 113, 105, 94, 101, 110, 101, 122, 100, 113, 118, 100, 114, 107, 117, 116, 112, 112, 112, 94, 116, 117, 106, 99, 108, 100, 108, 84, 110, 104, 110, 125, 107, 110, 113, 121, 117, 89, 108, 116, 121, 110, 106, 110, 108, 105, 98, 105, 118, 117, 129, 112, 101, 110, 115, 108, 108, 105, 105, 114, 109, 117, 108, 110, 119, 121, 113, 107, 116, 106, 98, 104, 114, 105, 112, 118, 104, 103, 120, 122, 109, 108, 109, 109, 117, 120, 106, 118, 111, 109, 104, 108, 115, 114, 113, 96, 117, 103, 105, 102, 111, 111, 108, 116, 108, 108, 106, 125, 109, 107, 116, 113, 107, 100, 110, 110, 102, 121, 107, 101, 105, 117, 118, 108, 104, 108, 114, 104, 120, 109, 117, 114, 112, 128, 112, 110, 115, 134, 117, 112, 109, 97, 114, 103, 113, 112, 114, 110, 119, 98, 115, 103, 110, 97, 105, 120, 109, 132, 118, 104, 109, 125, 102, 122, 100, 105, 100, 106, 108, 103, 134, 108, 119, 92, 122, 107, 107, 110, 108, 100, 110, 102, 117, 111, 112, 115, 110, 124, 115, 101, 95, 103, 122, 116, 102, 110, 112, 106, 130, 112, 99, 121, 119, 116, 118, 116, 111, 104, 106, 113, 113, 120, 109, 108, 115, 120, 110, 122, 113, 113, 111, 113, 97, 114, 111, 125, 101, 104, 115, 120, 101, 102, 104, 104, 104, 116, 106, 101, 109, 119, 116, 106, 107, 119, 125, 102, 134, 100, 102, 108, 118, 108, 107, 116, 115, 105, 110, 119, 103, 112, 115, 108, 104, 114, 112, 107, 115, 130, 118, 117, 93, 113, 117, 113, 110, 111, 122, 104, 110, 108, 117, 105, 107, 121, 111, 113, 121, 108, 111, 110, 94, 103, 99, 125, 99, 140, 113, 119, 93, 111, 109, 126, 114, 109, 102, 108, 116, 105, 125, 104, 113, 102, 101, 124, 111, 114, 114, 110, 111, 108, 107, 118, 111, 105, 103, 105, 114, 115, 112, 96, 115, 103, 105, 113, 108, 116, 101, 104, 111, 114, 114, 123, 107, 100, 108, 105, 105, 110, 105, 114, 121, 107, 116, 104, 113, 106, 105, 111, 103, 111, 116, 108, 114, 103, 116, 110, 108, 111, 105, 109, 103, 106, 111, 122, 114, 107, 109, 107, 110, 103, 110, 105, 110, 107, 101, 100, 112, 103, 111, 113, 106, 119, 111, 111, 109, 106, 108, 104, 110, 108, 103, 109, 111, 103, 109, 87, 105, 103, 114, 103, 96, 107, 110, 111, 105, 106, 111, 113, 114, 112, 106, 110, 98, 107, 114, 100, 104, 108, 112, 107, 108, 112, 108, 106, 116, 103, 114, 111, 112, 108, 107, 105, 111, 109, 113, 104, 108, 108, 112, 102, 123, 112, 110, 121, 108, 106, 114, 102, 112, 108, 99, 111, 122, 115, 111, 115, 109, 108, 102, 109, 106, 112, 107, 106, 99, 113, 106, 120, 109, 107, 116, 104, 113, 109, 106, 121, 117, 107, 114, 108, 112, 107, 105, 111, 105, 86, 125, 110, 109, 112, 115, 109, 107, 118, 109, 106, 102, 109, 111, 98, 101, 99, 110, 111, 111, 114, 111, 113, 115, 108, 102, 103, 119, 94, 119, 114, 125, 115, 108, 112, 118, 106, 108, 107, 111, 109, 103, 131, 107, 104, 104, 105, 108, 121, 105, 106, 104, 112, 105, 103, 109, 91, 110, 113, 103, 100, 106, 102, 116, 110, 115, 100, 113, 112, 105, 105, 113, 111, 113, 114, 100, 116, 122, 109, 114, 117, 110, 120, 111, 115, 112, 106, 111, 112, 111, 106, 100, 111, 109, 115, 107, 108, 119, 105, 110, 108, 110, 110, 107, 113, 96, 100, 105, 113, 115, 119, 103, 107, 109, 107, 110, 113, 109, 111, 119, 116, 110, 114, 111, 111, 103, 110, 107, 102, 110, 107, 113, 102, 115, 114, 110, 115, 98, 111, 98, 105, 133, 104, 110, 113, 111, 122, 99, 113, 110, 102, 113, 104, 110, 118, 117, 115, 105, 103, 98, 107, 105, 113, 108, 109, 121, 102, 111, 111, 110, 112, 110, 118, 109, 113, 117, 112, 107, 111, 109, 114, 112, 108, 113, 107, 100, 100, 107, 109, 106, 109, 108, 118, 120, 121, 114, 107, 102, 107, 113, 104, 111, 103, 106, 103, 110, 141, 103, 121, 119, 109, 110, 109, 116, 120, 117, 98, 97, 103, 108, 123, 101, 104, 111, 107, 108, 117, 102, 103, 107, 114, 112, 105, 120, 106, 115, 114, 108, 104, 112, 93, 106, 123, 117, 91, 110, 109, 111, 108, 97, 109, 115, 76, 109, 107, 111, 114, 114, 102, 111, 119, 99, 146, 122, 110, 102, 102, 114, 111, 102, 102, 120, 101, 111, 106, 108, 119, 97, 104, 111, 115, 110, 119, 101, 106, 109, 119, 114, 105, 104, 110, 112, 111, 117, 125, 106, 97, 117, 107, 105, 108, 110, 109, 108, 106, 115, 110, 112, 102, 122, 109, 114, 98, 114, 109, 120, 119, 110, 117, 108, 111, 119, 98, 114, 117, 112, 109, 110, 101, 103, 107, 120, 100, 100, 108, 121, 106, 107, 113, 112, 107, 117, 113, 102, 106, 111, 116, 125, 123, 117, 114, 116, 132, 102, 111, 106, 103, 111, 90, 118, 108, 97, 108, 110, 112, 111, 109, 102, 113, 112, 97, 114, 113, 80, 84, 111, 113, 113, 121, 112, 107, 113, 105, 108, 109, 96, 112, 123, 102, 90, 117, 129, 107, 103, 108, 108, 117, 130, 96, 120, 118, 111, 112, 109, 114, 114, 98, 101, 97, 119, 117, 113, 106, 125, 94, 119, 111, 110, 110, 113, 109, 118, 93, 113, 104, 99, 98, 91, 112, 120, 103, 123, 110, 113, 110, 118, 107, 113, 124, 97, 111, 117, 128, 114, 106, 120, 115, 111, 101, 101, 98, 110, 100, 107, 115, 113, 110, 120, 104, 104, 114, 116, 98, 112, 106, 120, 101, 118, 118, 115, 104, 103, 105, 106, 124, 93, 103, 113, 112, 110, 93, 119, 97, 123, 90, 114, 110, 118, 111, 114, 112, 114, 110, 113, 117, 99, 104, 114, 110, 112, 107, 113, 105, 112, 112, 98, 112, 105, 122, 117, 103, 101, 93, 119, 107, 96, 102, 117, 113, 101, 110, 110, 83, 91, 114, 89, 102, 105, 117, 130, 114, 101, 116, 118, 107, 106, 119, 123, 106, 111, 126, 122, 90, 109, 101, 110, 125, 104, 114, 107, 126, 105, 120, 107, 112, 101, 111, 101, 104, 121, 117, 104, 124, 113, 109, 115, 110, 111, 125, 111, 107, 107, 112, 108, 109, 107, 87, 98, 108, 119, 108, 101, 121, 118, 111, 117, 115, 122, 118, 106, 77, 111, 126, 112, 116, 110, 102, 109, 100, 119, 109, 109, 109, 108, 108, 107, 104, 116, 115, 102, 90, 127, 104, 112, 114, 113, 119, 107, 114, 112, 107, 89, 111, 117, 102, 116, 105, 112, 114, 95, 97, 103, 97, 106, 118, 112, 105, 94, 118, 115, 96, 125, 108, 105, 113, 111, 100, 107, 108, 110, 111, 118, 103, 107, 108, 113, 99, 115, 117, 100, 94, 119, 97, 107, 92, 107, 101, 113, 120, 103, 102, 117, 109, 105, 109, 102, 92, 112, 106, 107, 86, 112, 109, 117, 120, 108, 96, 109, 118, 110, 115, 111, 108, 108, 112, 111, 109, 101, 125, 107, 123, 101, 105, 100, 113, 114, 112, 99, 108, 109, 106, 116, 109, 113, 113, 103, 115, 121, 65, 104, 91, 118, 110, 113, 117, 119, 95, 110, 116, 113, 113, 109, 111, 111, 106, 106, 105, 109, 106, 102, 113, 109, 115, 100, 110, 92, 101, 104, 99, 101, 118, 110, 97, 106, 109, 114, 98, 102, 105, 107, 111, 137, 122, 117, 99, 111, 99, 82, 113, 110, 118, 115, 109, 112, 106, 111, 115, 135, 117, 118, 101, 113, 106, 117, 106, 114, 91, 100, 101, 113, 99, 98, 117, 98, 100, 100, 104, 103, 105, 99, 112, 119, 104, 108, 110, 114, 118, 111, 114, 110, 116, 113, 91, 145, 105, 102, 106, 112, 111, 83, 116, 117, 110, 107, 106, 114, 109, 109, 120, 123, 110, 118, 110, 102, 100, 124, 111, 102, 118, 121, 109, 110, 106, 96, 113, 84, 113, 105, 93, 104, 99, 120, 125, 107, 108, 110, 98, 108, 104, 107, 104, 100, 118, 116, 108, 120, 116, 112, 118, 126, 107, 142, 116, 116, 103, 117, 105, 106, 101, 105, 117, 104, 101, 106, 106, 122, 103, 104, 104, 121, 119, 120, 114, 113, 105, 108, 132, 112, 104, 114, 103, 113, 118, 105, 115, 110, 100, 108, 111, 102, 100, 119, 109, 112, 110, 108, 116, 111, 103, 99, 119, 112, 115, 111, 100, 104, 110, 109, 109, 110, 99, 109, 105, 110, 112, 114, 119, 109, 113, 106, 118, 104, 111, 114, 115, 108, 112, 106, 109, 101, 113, 115, 118, 111, 119, 114, 110, 98, 110, 104, 109, 113, 111, 90, 123, 105, 109, 109, 123, 119, 104, 108, 110, 100, 105, 108, 111, 111, 120, 116, 103, 110, 106, 113, 120, 124, 103, 114, 107, 112, 114, 123, 112, 91, 112, 108, 123, 111, 114, 126, 103, 120, 111, 119, 117, 114, 104, 113, 114, 121, 115, 117, 109, 109, 99, 108, 109, 108, 118, 113, 102, 107, 99, 108, 117, 110, 115, 112, 120, 122, 111, 112, 106, 108, 104, 109, 81, 109, 111, 110, 102, 100, 114, 113, 109, 110, 118, 107, 114, 109, 111, 103, 100, 112, 119, 116, 113, 113, 98, 110, 110, 115, 108, 110, 114, 100, 107, 111, 109, 109, 115, 96, 106, 110, 110, 115, 110, 126, 120, 114, 105, 117, 113, 99, 111, 105, 119, 119, 106, 115, 117, 97, 118, 114, 105, 106, 112, 119, 107, 115, 109, 102, 105, 113, 101, 116, 103, 115, 110, 109, 113, 118, 116, 115, 114, 115, 111, 113, 109, 131, 107, 104, 107, 107, 112, 116, 110, 114, 100, 113, 113, 113, 110, 116, 119, 109, 97, 113, 103, 102, 129, 121, 112, 108, 106, 116, 108, 121, 98, 105, 111, 106, 108, 98, 113, 110, 105, 106, 104, 109, 114, 104, 111, 116, 113, 101, 104, 99, 108, 117, 105, 103, 106, 112, 112, 105, 106, 125, 84, 97, 117, 116, 103, 112, 111, 117, 108, 121, 115, 97, 109, 105, 119, 111, 110, 112, 106, 91, 99, 110, 105, 119, 122, 116, 101, 105, 108, 109, 109, 115, 100, 109, 111, 98, 111, 104, 113, 120, 119, 121, 135, 115, 105, 112, 116, 102, 100, 113, 74, 109, 105, 120, 104, 123, 117, 121, 107, 110, 116, 104, 113, 107, 122, 111, 121, 113, 97, 107, 107, 115, 114, 91, 115, 115, 113, 111, 102, 119, 108, 105, 105, 117, 109, 110, 109, 109, 92, 106, 126, 111, 114, 101, 115, 105, 121, 110, 114, 121, 119, 114, 104, 118, 105, 111, 106, 110, 110, 100, 114, 109, 108, 108, 116, 100, 105, 113, 114, 107, 116, 122, 122, 113, 114, 118, 95, 112, 109, 140, 101, 113, 107, 107, 110, 118, 109, 107, 108, 105, 106, 109, 108, 115, 118, 101, 96, 100, 107, 106, 129, 108, 113, 103, 109, 117, 104, 98, 113, 118, 103, 92, 104, 120, 114, 130, 109, 127, 106, 103, 112, 108, 119, 123, 108, 118, 113, 130, 111, 104, 119, 97, 121, 112, 110, 114, 113, 108, 111, 112, 102, 107, 115, 105, 110, 105, 105, 97, 100, 104, 115, 101, 107, 119, 106, 127, 107, 108, 114, 113, 101, 112, 111, 106, 179, 115, 110, 131, 113, 118, 96, 104, 123, 88, 106, 112, 123, 121, 105, 104, 125, 103, 110, 131, 110, 110, 116, 101, 101, 105, 104, 96, 113, 111, 85, 169, 113, 107, 115, 102, 114, 123, 100, 100, 107, 105, 105, 108, 96, 103, 106, 114, 99, 102, 108, 111, 94, 105, 109, 122, 97, 110, 123, 108, 112, 105, 96, 101, 140, 109, 123, 112, 110, 119, 108, 123, 116, 114, 99, 116, 99, 108, 114, 113, 106, 102, 114, 104, 112, 111, 119, 108, 125, 108, 105, 110, 102, 117, 112, 100, 108, 104, 111, 108, 122, 105, 105, 109, 127, 121, 139, 111, 103, 109, 111, 74, 118, 102, 97, 92, 110, 114, 115, 108, 112, 121, 105, 103, 103, 119, 144, 104, 111, 109, 130, 122, 111, 111, 91, 106, 109, 107, 111, 105, 172, 108, 85, 108, 110, 107, 101, 112, 97, 114, 111, 118, 107, 102, 104, 110, 94, 99, 114, 98, 115, 116, 109, 95, 104, 109, 116, 99, 101, 117, 117, 91, 110, 92, 113, 116, 106, 105, 111, 105, 107, 104, 108, 114, 107, 101, 117, 101, 110, 110, 110, 104, 110, 103, 120, 111, 114, 111, 96, 105, 105, 108, 104, 115, 102, 109, 115, 94, 121, 108, 106, 114, 108, 107, 124, 111, 121, 104, 107, 102, 98, 121, 101, 106, 101, 111, 101, 94, 105, 97, 113, 117, 97, 113, 117, 99, 115, 118, 113, 99, 83, 103, 114, 100, 109, 107, 104, 109, 99, 118, 113, 109, 112, 124, 113, 114, 106, 110, 95, 117, 103, 128, 104, 137, 109, 112, 94, 109, 117, 114, 109, 113, 111, 113, 111, 114, 106, 111, 105, 109, 113, 106, 115, 110, 105, 107, 110, 120, 124, 113, 106, 112, 101, 105, 109, 111, 106, 99, 107, 107, 105, 112, 131, 109, 111, 111, 113, 110, 116, 121, 123, 113, 121, 112, 102, 110, 105, 107, 105, 109, 115, 88, 111, 105, 101, 102, 118, 109, 110, 106, 117, 109, 117, 117, 107, 105, 111, 97, 107, 141, 96, 115, 109, 116, 111, 117, 98, 105, 99, 98, 105, 101, 113, 121, 109, 114, 129, 95, 68, 112, 106, 118, 108, 115, 118, 111, 109, 102, 99, 98, 110, 114, 113, 119, 116, 111, 107, 94, 102, 110, 105, 108, 114, 101, 109, 98, 108, 124, 101, 116, 107, 110, 109, 110, 123, 107, 102, 126, 111, 102, 76, 114, 106, 113, 115, 109, 108, 116, 111, 108, 111, 99, 105, 108, 113, 97, 114, 113, 122, 103, 118, 100, 112, 104, 104, 109, 121, 113, 87, 54, 116, 106, 103, 108, 106, 106, 112, 109, 116, 107, 113, 93, 95, 119, 103, 97, 110, 104, 126, 106, 98, 113, 125, 111, 111, 102, 117, 128, 99, 114, 110, 129, 107, 118, 114, 115, 106, 110, 102, 113, 116, 112, 102, 111, 123, 123, 153, 121, 114, 91, 135, 107, 104, 116, 101, 110, 110, 110, 116, 110, 119, 111, 106, 118, 111, 93, 98, 108, 110, 122, 106, 104, 116, 113, 96, 113, 109, 110, 111, 106, 112, 105, 110, 107, 115, 111, 125, 104, 108, 102, 129, 109, 110, 113, 106, 109, 109, 105, 115, 101, 115, 121, 119, 98, 109, 121, 115, 101, 113, 103, 107, 110, 103, 110, 114, 118, 110, 108, 118, 118, 109, 119, 109, 116, 107, 118, 104, 125, 104, 116, 109, 114, 117, 112, 111, 101, 116, 116, 106, 106, 110, 118, 116, 108, 101, 99, 118, 115, 118, 122, 109, 109, 103, 105, 89, 114, 112, 105, 107, 109, 121, 110, 115, 120, 109, 121, 99, 124, 118, 108, 106, 109, 115, 123, 105, 113, 105, 115, 102, 111, 109, 121, 117, 110, 112, 101, 110, 105, 111, 119, 107, 105, 118, 108, 115, 111, 111, 116, 118, 108, 108, 104, 107, 108, 110, 112, 119, 118, 120, 102, 121, 109, 106, 108, 108, 102, 109, 118, 109, 117, 119, 110, 110, 109, 114, 103, 100, 104, 106, 111, 113, 108, 112, 115, 99, 106, 113, 101, 125, 119, 120, 104, 114, 107, 110, 108, 107, 117, 95, 111, 100, 106, 108, 120, 106, 107, 101, 103, 110, 112, 101, 112, 108, 105, 99, 125, 116, 104, 101, 115, 115, 110, 102, 118, 109, 116, 110, 122, 110, 105, 102, 111, 111, 111, 126, 127, 108, 114, 105, 104, 109, 107, 110, 106, 103, 103, 109, 106, 95, 101, 109, 106, 109, 115, 102, 103, 118, 102, 120, 111, 125, 108, 111, 110, 111, 122, 98, 105, 110, 110, 112, 117, 106, 109, 112, 108, 109, 117, 100, 119, 125, 113, 108, 104, 104, 116, 111, 113, 113, 134, 121, 110, 102, 102, 101, 105, 109, 108, 108, 100, 109, 114, 112, 104, 106, 102, 101, 110, 104, 111, 117, 112, 101, 106, 104, 102, 114, 107, 108, 110, 107, 111, 110, 113, 102, 124, 105, 120, 117, 111, 124, 105, 115, 120, 117, 95, 100, 114, 111, 106, 114, 120, 113, 108, 113, 114, 98, 112, 106, 107, 113, 114, 110, 107, 108, 103, 123, 106, 114, 117, 111, 116, 117, 121, 103, 108, 105, 111, 110, 107, 108, 112, 115, 104, 100, 122, 110, 111, 114, 117, 104, 108, 119, 127, 113, 111, 109, 104, 104, 112, 125, 120, 113, 113, 108, 111, 109, 108, 111, 115, 117, 107, 112, 104, 90, 114, 118, 97, 105, 101, 124, 111, 117, 115, 109, 105, 109, 108, 116, 107, 107, 106, 112, 107, 111, 95, 107, 114, 116, 101, 104, 118, 115, 109, 106, 114, 122, 109, 112, 99, 111, 111, 105, 106, 117, 107, 113, 112, 102, 113, 109, 119, 118, 120, 106, 117, 107, 110, 119, 105, 103, 109, 112, 113, 113, 107, 114, 114, 106, 112, 102, 102, 107, 108, 111, 108, 99, 99, 95, 115, 113, 110, 105, 113, 110, 120, 108, 107, 109, 104, 104, 104, 99, 113, 113, 104, 111, 103, 111, 110, 109, 116, 112, 112, 107, 117, 104, 119, 106, 112, 109, 110, 119, 108, 113, 113, 116, 112, 116, 107, 113, 112, 97, 114, 119, 108, 111, 114, 113, 105, 113, 98, 117, 101, 110, 108, 130, 116, 127, 107, 108, 107, 110, 118, 108, 103, 109, 110, 109, 115, 120, 109, 111, 110, 115, 122, 110, 105, 113, 104, 104, 94, 109, 103, 102, 105, 106, 106, 117, 106, 101, 110, 101, 119, 107, 107, 107, 102, 104, 111, 110, 121, 112, 100, 104, 110, 115, 111, 107, 127, 105, 113, 106, 107, 107, 117, 105, 101, 108, 111, 112, 112, 98, 116, 114, 108, 108, 112, 107, 94, 106, 113, 107, 112, 120, 99, 118, 115, 115, 115, 97, 113, 105, 111, 129, 111, 119, 112, 102, 112, 115, 115, 116, 109, 110, 106, 110, 113, 107, 133, 110, 112, 107, 96, 107, 115, 108, 111, 108, 110, 113, 109, 113, 105, 117, 104, 110, 112, 107, 114, 108, 113, 116, 104, 109, 116, 102, 93, 107, 110, 117, 108, 105, 101, 108, 108, 112, 104, 109, 94, 112, 108, 109, 108, 116, 106, 106, 100, 119, 108, 115, 106, 96, 101, 111, 120, 123, 122, 97, 111, 108, 112, 108, 116, 117, 109, 118, 109, 107, 109, 119, 117, 108, 120, 104, 113, 108, 109, 102, 112, 106, 105, 107, 114, 114, 113, 105, 117, 107, 111, 119, 101, 112, 109, 111, 111, 105, 110, 111, 109, 108, 113, 106, 110, 106, 111, 124, 102, 116, 107, 114, 116, 102, 106, 105, 118, 116, 107, 110, 122, 109, 105, 121, 106, 118, 101, 108, 109, 112, 108, 102, 109, 113, 111, 98, 115, 112, 105, 108, 102, 102, 102, 108, 110, 102, 102, 109, 115, 117, 105, 104, 108, 106, 110, 94, 118, 106, 98, 106, 105, 120, 107, 105, 109, 105, 108, 112, 106, 110, 106, 112, 102, 121, 109, 106, 111, 98, 124, 109, 114, 111, 107, 109, 122, 109, 115, 104, 116, 99, 110, 112, 106, 109, 113, 109, 115, 110, 120, 109, 104, 105, 111, 105, 107, 117, 97, 105, 110, 105, 114, 118, 117, 109, 106, 114, 107, 108, 108, 110, 126, 106, 114, 116, 106, 111, 110, 109, 102, 99, 116, 109, 111, 108, 107, 115, 110, 110, 109, 98, 103, 113, 114, 104, 110, 104, 103, 112, 102, 103, 108, 116, 105, 111, 112, 109, 111, 105, 110, 107, 104, 115, 112, 105, 105, 112, 106, 105, 106, 118, 111, 106, 110, 107, 109, 104, 111, 114, 108, 115, 112, 123, 112, 99, 115, 113, 97, 108, 110, 104, 110, 107, 105, 111, 102, 109, 117, 105, 111, 102, 112, 108, 106, 108, 105, 107, 126, 113, 125, 118, 122, 109, 115, 126, 112, 104, 116, 106, 93, 112, 127, 103, 107, 100, 108, 100, 111, 111, 112, 111, 106, 110, 104, 107, 112, 115, 114, 106, 116, 104, 110, 113, 119, 118, 107, 108, 98, 111, 106, 105, 110, 111, 109, 101, 112, 129, 110, 108, 108, 106, 111, 105, 109, 113, 101, 113, 107, 122, 113, 105, 108, 113, 123, 108, 114, 108, 104, 108, 115, 95, 104, 111, 111, 99, 115, 114, 116, 107, 107, 109, 104, 108, 116, 110, 105, 111, 110, 108, 119, 113, 116, 114, 119, 110, 109, 99, 119, 104, 108, 109, 109, 110, 107, 110, 106, 104, 99, 116, 117, 116, 104, 109, 100, 113, 103, 105, 109, 101, 102, 118, 120, 114, 110, 107, 120, 113, 106, 110, 115, 118, 117, 106, 112, 115, 112, 123, 111, 114, 116, 110, 114, 111, 103, 110, 97, 104, 115, 123, 100, 106, 101, 108, 116, 101, 109, 118, 106, 118, 99, 112, 100, 100, 96, 104, 102, 104, 112, 110, 118, 118, 109, 109, 111, 116, 118, 116, 111, 129, 107, 99, 110, 112, 96, 108, 108, 122, 110, 95, 103, 133, 109, 105, 89, 114, 113, 115, 118, 108, 109, 104, 103, 119, 110, 110, 102, 104, 109, 109, 97, 102, 108, 107, 112, 113, 106, 118, 131, 112, 107, 100, 113, 120, 117, 100, 106, 117, 115, 114, 99, 103, 109, 109, 111, 114, 106, 114, 99, 112, 103, 103, 108, 104, 122, 104, 119, 102, 120, 111, 121, 98, 116, 99, 105, 124, 114, 102, 106, 113, 115, 100, 103, 114, 111, 129, 106, 111, 115, 106, 109, 101, 114, 114, 105, 111, 96, 114, 106, 103, 102, 116, 112, 117, 102, 109, 105, 112, 108, 112, 110, 121, 105, 103, 118, 104, 115, 107, 110, 112, 116, 100, 121, 122, 109, 111, 115, 107, 114, 112, 115, 99, 110, 102, 110, 122, 113, 103, 110, 104, 116, 106, 113, 111, 100, 108, 107, 107, 110, 106, 112, 105, 108, 99, 130, 113, 96, 100, 118, 112, 99, 109, 123, 120, 101, 105, 111, 111, 116, 121, 110, 103, 107, 105, 103, 107, 111, 113, 114, 117, 114, 107, 111, 110, 114, 120, 133, 113, 101, 110, 105, 108, 115, 123, 112, 113, 102, 94, 98, 116, 122, 115, 119, 109, 110, 116, 106, 109, 104, 110, 108, 109, 93, 106, 116, 109, 110, 106, 110, 115, 112, 111, 123, 117, 108, 113, 103, 104, 107, 100, 110, 116, 119, 112, 104, 101, 105, 103, 116, 109, 112, 102, 108, 115, 120, 116, 103, 111, 108, 113, 118, 107, 106, 107, 108, 97, 123, 118, 112, 111, 127, 106, 111, 121, 119, 107, 111, 119, 107, 110, 103, 105, 103, 110, 110, 117, 105, 110, 114, 112, 115, 107, 116, 108, 114, 110, 118, 104, 110, 109, 104, 100, 120, 113, 103, 107, 110, 111, 112, 108, 108, 116, 103, 93, 98, 105, 115, 126, 107, 112, 103, 112, 108, 100, 105, 109, 107, 111, 100, 121, 110, 101, 105, 107, 105, 107, 105, 109, 103, 114, 108, 101, 119, 108, 115, 108, 121, 103, 111, 99, 103, 113, 96, 111, 111, 128, 114, 104, 103, 105, 106, 106, 108, 114, 124, 116, 119, 108, 114, 111, 111, 114, 115, 112, 117, 96, 103, 116, 115, 110, 115, 112, 107, 105, 116, 104, 124, 110, 110, 107, 105, 111, 104, 112, 105, 113, 112, 113, 109, 110, 111, 110, 116, 104, 113, 107, 114, 110, 114, 104, 112, 114, 114, 95, 111, 104, 108, 120, 114, 102, 111, 110, 113, 105, 103, 120, 109, 121, 111, 108, 102, 102, 117, 113, 103, 115, 113, 97, 116, 115, 110, 113, 116, 109, 115, 108, 119, 112, 106, 117, 110, 111, 108, 107, 113, 111, 107, 119, 110, 103, 116, 115, 110, 122, 114, 116, 110, 109, 115, 114, 115, 117, 109, 110, 110, 113, 116, 116, 119, 117, 108, 115, 111, 101, 119, 107, 111, 111, 112, 103, 111, 110, 115, 107, 103, 108, 112, 120, 110, 107, 111, 115, 105, 114, 115, 115, 108, 110, 111, 114, 108, 110, 100, 118, 109, 115, 111, 116, 115, 106, 108, 112, 113, 113, 108, 110, 107, 96, 110, 115, 114, 107, 110, 111, 116, 114, 111, 113, 114, 116, 110, 112, 106, 111, 116, 115, 112, 109, 107, 112, 111, 107, 111, 110, 111, 109, 114, 113, 106, 103, 113, 110, 113, 114, 107, 112, 112, 115, 118, 106, 105, 97, 104, 143, 112, 103, 110, 110, 113, 112, 104, 108, 120, 103, 107, 100, 108, 119, 115, 104, 70, 112, 111, 114, 114, 109, 106, 107, 112, 117, 116, 109, 110, 99, 113, 113, 111, 120, 109, 120, 110, 106, 111, 108, 113, 109, 109, 108, 109, 116, 109, 110, 110, 113, 120, 113, 115, 114, 113, 114, 111, 99, 115, 116, 110, 105, 111, 112, 108, 110, 115, 121, 110, 110, 114, 113, 103, 105, 111, 112, 114, 111, 117, 119, 116, 117, 114, 104, 113, 100, 107, 103, 111, 102, 105, 105, 112, 109, 116, 114, 106, 112, 101, 112, 106, 106, 114, 109, 115, 115, 99, 112, 108, 112, 107, 110, 107, 109, 116, 110, 110, 117, 104, 114, 110, 109, 122, 111, 114, 109, 114, 111, 109, 110, 108, 111, 108, 113, 112, 110, 112, 111, 116, 110, 107, 109, 113, 101, 116, 121, 113, 105, 113, 110, 109, 114, 113, 114, 105, 112, 114, 112, 103, 113, 108, 106, 108, 114, 112, 113, 115, 114, 112, 110, 109, 113, 118, 113, 105, 113, 111, 116, 112, 109, 111, 113, 111, 107, 108, 113, 119, 109, 101, 116, 101, 109, 113, 114, 113, 106, 116, 110, 116, 109, 108, 110, 113, 113, 110, 106, 108, 111, 113, 98, 112, 99, 112, 111, 109, 118, 115, 103, 100, 102, 112, 117, 108, 106, 111, 111, 114, 105, 113, 108, 106, 111, 100, 111, 102, 111, 111, 112, 104, 117, 101, 108, 108, 119, 115, 121, 106, 115, 115, 117, 108, 115, 104, 113, 111, 107, 117, 100, 118, 109, 103, 105, 116, 118, 112, 107, 111, 111, 115, 111, 116, 107, 112, 108, 107, 98, 114, 106, 115, 108, 112, 103, 109, 116, 105, 114, 112, 105, 129, 113, 115, 108, 122, 112, 99, 115, 112, 113, 117, 114, 116, 112, 107, 118, 108, 113, 115, 118, 112, 109, 108, 113, 114, 105, 109, 115, 104, 116, 110, 102, 111, 115, 109, 111, 107, 113, 109, 101, 114, 114, 114, 115, 114, 111, 110, 118, 113, 119, 112, 117, 114, 105, 110, 112, 105, 106, 109, 108, 109, 114, 110, 113, 109, 106, 112, 111, 105, 111, 107, 110, 104, 105, 108, 114, 112, 108, 112, 121, 116, 106, 108, 101, 109, 113, 112, 104, 99, 116, 107, 111, 107, 102, 104, 116, 117, 108, 121, 114, 113, 108, 107, 110, 116, 111, 108, 105, 107, 108, 108, 108, 110, 120, 110, 109, 113, 116, 108, 112, 110, 108, 110, 112, 114, 108, 117, 109, 105, 107, 114, 109, 107, 120, 113, 108, 108, 110, 91, 112, 103, 110, 111, 115, 110, 110, 93, 106, 110, 110, 109, 112, 107, 110, 112, 111, 105, 109, 113, 117, 107, 107, 114, 111, 101, 108, 113, 107, 102, 112, 116, 100, 115, 86, 105, 119, 108, 105, 110, 118, 107, 139, 112, 106, 108, 108, 113, 116, 105, 110, 106, 111, 109, 114, 116, 110, 148, 108, 104, 101, 109, 108, 109, 105, 108, 106, 111, 114, 105, 110, 115, 116, 107, 111, 110, 113, 108, 111, 115, 109, 105, 146, 110, 107, 107, 112, 98, 114, 105, 112, 112, 106, 106, 112, 97, 110, 127, 98, 130, 134, 110, 114, 112, 111, 109, 119, 112, 104, 115, 103, 116, 109, 111, 118, 125, 109, 105, 108, 106, 108, 108, 104, 110, 112, 111, 108, 108, 112, 79, 114, 121, 120, 115, 107, 112, 110, 111, 114, 110, 105, 107, 106, 110, 107, 142, 118, 109, 105, 104, 108, 112, 109, 112, 101, 101, 100, 101, 113, 109, 106, 113, 110, 108, 131, 107, 107, 114, 119, 107, 114, 113, 109, 109, 125, 110, 114, 122, 104, 101, 118, 108, 113, 106, 104, 114, 111, 109, 88, 113, 113, 112, 98, 107, 110, 121, 78, 107, 110, 119, 115, 109, 110, 108, 107, 113, 101, 109, 110, 115, 107, 115, 106, 107, 113, 106, 108, 108, 107, 106, 110, 109, 104, 112, 103, 112, 108, 112, 108, 105, 108, 111, 119, 120, 88, 120, 111, 114, 106, 116, 107, 104, 106, 109, 114, 110, 103, 111, 110, 110, 107, 109, 103, 109, 109, 113, 102, 113, 110, 111, 105, 106, 108, 111, 108, 116, 107, 110, 108, 111, 111, 113, 112, 103, 108, 109, 112, 111, 111, 114, 113, 114, 116, 112, 110, 113, 107, 108, 111, 107, 106, 106, 101, 101, 113, 108, 112, 110, 112, 108, 107, 110, 110, 107, 110, 98, 103, 110, 106, 106, 111, 113, 106, 112, 109, 103, 105, 105, 109, 113, 107, 112, 111, 107, 109, 110, 110, 101, 107, 115, 115, 119, 111, 106, 113, 116, 98, 112, 108, 109, 105, 111, 113, 87, 114, 104, 106, 112, 102, 107, 110, 109, 121, 107, 104, 111, 107, 98, 110, 110, 114, 109, 109, 118, 104, 119, 109, 112, 106, 115, 128, 106, 104, 105, 108, 113, 113, 92, 122, 126, 117, 99, 108, 108, 108, 106, 112, 109, 102, 107, 113, 111, 105, 106, 110, 111, 108, 97, 112, 109, 114, 104, 106, 100, 109, 113, 113, 119, 109, 131, 101, 111, 114, 109, 113, 105, 112, 108, 108, 110, 104, 110, 112, 108, 104, 115, 106, 115, 115, 109, 114, 104, 114, 110, 108, 114, 110, 116, 108, 110, 111, 109, 108, 112, 107, 112, 114, 111, 107, 110, 84, 114, 105, 111, 106, 110, 111, 113, 113, 113, 109, 106, 130, 123, 113, 109, 109, 111, 101, 98, 116, 111, 106, 103, 115, 108, 110, 111, 113, 115, 101, 112, 114, 115, 103, 115, 122, 103, 123, 104, 108, 109, 98, 106, 105, 106, 112, 103, 122, 110, 100, 113, 125, 120, 108, 106, 108, 114, 104, 119, 113, 108, 112, 111, 114, 120, 107, 113, 130, 117, 107, 100, 117, 112, 103, 109, 89, 106, 118, 113, 111, 105, 108, 107, 111, 91, 110, 110, 120, 110, 113, 118, 117, 141, 105, 93, 114, 113, 115, 121, 106, 103, 114, 111, 107, 125, 109, 100, 117, 113, 114, 118, 101, 121, 103, 95, 102, 106, 110, 113, 114, 109, 109, 113, 95, 112, 122, 100, 101, 119, 107, 110, 126, 103, 110, 103, 109, 104, 109, 116, 109, 117, 113, 117, 112, 111, 104, 106, 108, 109, 87, 107, 121, 112, 109, 109, 109, 113, 121, 108, 122, 123, 112, 113, 105, 112, 112, 108, 111, 118, 121, 104, 117, 119, 107, 113, 112, 115, 109, 108, 113, 107, 124, 126, 95, 114, 115, 112, 105, 112, 108, 110, 106, 110, 109, 119, 107, 109, 115, 105, 115, 120, 104, 109, 97, 110, 115, 106, 112, 103, 106, 108, 124, 112, 115, 97, 111, 115, 109, 96, 113, 108, 115, 103, 106, 102, 110, 101, 108, 115, 119, 102, 115, 111, 104, 110, 110, 114, 110, 108, 110, 107, 119, 123, 115, 114, 100, 110, 123, 114, 109, 105, 106, 131, 109, 113, 121, 87, 112, 104, 106, 113, 110, 129, 104, 105, 111, 106, 110, 116, 110, 101, 109, 109, 108, 94, 117, 118, 122, 116, 101, 111, 134, 111, 101, 105, 110, 115, 114, 108, 104, 109, 106, 109, 109, 111, 111, 112, 118, 109, 109, 108, 106, 110, 109, 104, 102, 104, 118, 99, 119, 122, 116, 123, 103, 133, 106, 112, 116, 117, 111, 94, 132, 118, 99, 110, 118, 104, 117, 106, 113, 118, 107, 101, 111, 115, 105, 110, 118, 110, 117, 103, 120, 114, 114, 110, 99, 118, 110, 108, 102, 109, 116, 94, 91, 108, 108, 115, 121, 107, 105, 95, 127, 104, 105, 123, 108, 109, 117, 119, 110, 120, 118, 114, 112, 98, 107, 105, 104, 120, 110, 123, 96, 113, 112, 98, 110, 113, 96, 107, 107, 114, 114, 116, 121, 105, 118, 110, 111, 113, 112, 112, 115, 103, 96, 116, 119, 115, 127, 107, 105, 138, 111, 102, 112, 114, 116, 110, 117, 111, 120, 117, 109, 103, 113, 112, 97, 107, 109, 108, 104, 92, 111, 106, 120, 119, 103, 107, 116, 111, 102, 119, 113, 104, 94, 95, 107, 90, 111, 116, 108, 108, 104, 108, 127, 115, 109, 101, 120, 124, 122, 114, 121, 109, 108, 113, 119, 117, 130, 117, 105, 105, 123, 141, 112, 114, 108, 110, 113, 70, 126, 108, 108, 105, 104, 124, 133, 101, 113, 116, 113, 107, 121, 110, 111, 113, 118, 121, 111, 102, 104, 109, 103, 121, 100, 113, 113, 110, 119, 111, 110, 102, 113, 106, 100, 112, 97, 112, 107, 101, 114, 86, 99, 115, 113, 109, 109, 107, 123, 114, 110, 110, 118, 137, 106, 109, 107, 108, 112, 109, 113, 108, 108, 110, 113, 110, 107, 111, 108, 112, 110, 112, 113, 105, 109, 109, 105, 111, 114, 113, 110, 113, 107, 104, 110, 111, 113, 111, 110, 108, 111, 106, 110, 129, 118, 101, 114, 109, 112, 113, 108, 129, 106, 113, 114, 99, 116, 113, 110, 108, 110, 107, 111, 113, 109, 115, 110, 107, 106, 125, 111, 101, 112, 111, 111, 111, 120, 117, 110, 121, 111, 107, 104, 93, 107, 102, 120, 109, 103, 106, 112, 118, 109, 107, 109, 116, 110, 108, 110, 119, 91, 100, 111, 108, 109, 111, 113, 111, 108, 110, 111, 106, 117, 113, 111, 107, 113, 108, 107, 109, 102, 108, 112, 109, 120, 106, 148, 106, 113, 111, 110, 105, 110, 99, 114, 113, 109, 110, 107, 97, 110, 91, 102, 102, 135, 117, 108, 112, 116, 106, 106, 111, 116, 113, 105, 96, 111, 104, 120, 111, 110, 109, 108, 111, 111, 111, 104, 109, 104, 111, 111, 112, 113, 72, 110, 95, 100, 111, 113, 106, 108, 109, 123, 110, 109, 112, 106, 107, 116, 112, 108, 112, 109, 102, 115, 110, 107, 110, 114, 120, 118, 119, 106, 104, 109, 93, 114, 111, 118, 106, 113, 110, 92, 108, 110, 108, 107, 111, 119, 114, 114, 105, 107, 100, 114, 104, 115, 110, 106, 113, 109, 113, 103, 112, 102, 105, 108, 108, 112, 101, 108, 112, 110, 113, 118, 114, 105, 106, 110, 111, 122, 109, 112, 112, 101, 117, 96, 110, 111, 101, 113, 113, 112, 99, 114, 111, 108, 110, 110, 108, 106, 110, 111, 106, 117, 109, 100, 120, 106, 115, 110, 111, 115, 109, 113, 106, 114, 109, 108, 114, 107, 106, 107, 110, 117, 113, 107, 110, 107, 104, 107, 111, 114, 109, 105, 111, 112, 114, 115, 108, 109, 106, 108, 106, 111, 106, 112, 109, 109, 107, 110, 112, 108, 112, 103, 112, 110, 109, 111, 112, 116, 113, 108, 110, 110, 112, 105, 108, 118, 112, 109, 104, 108, 109, 106, 109, 112, 104, 109, 91, 108, 114, 110, 111, 108, 109, 110, 106, 113, 106, 110, 109, 119, 111, 112, 112, 108, 109, 108, 113, 115, 108, 111, 109, 114, 111, 109, 107, 113, 112, 106, 117, 109, 111, 109, 111, 109, 96, 111, 113, 108, 105, 111, 115, 109, 106, 108, 112, 115, 111, 112, 136, 112, 114, 112, 108, 107, 113, 107, 101, 69, 115, 112, 110, 103, 109, 98, 104, 111, 109, 111, 113, 108, 125, 112, 104, 106, 106, 112, 111, 112, 103, 114, 109, 109, 110, 108, 106, 108, 110, 115, 97, 106, 112, 112, 109, 108, 110, 107, 110, 114, 109, 106, 87, 108, 113, 102, 112, 109, 105, 112, 111, 111, 110, 111, 111, 113, 112, 112, 115, 108, 120, 105, 105, 111, 102, 118, 110, 107, 111, 105, 107, 107, 116, 143, 107, 109, 107, 103, 109, 113, 102, 111, 104, 131, 117, 107, 113, 109, 106, 112, 108, 112, 109, 109, 108, 131, 110, 112, 109, 103, 118, 114, 115, 112, 116, 108, 110, 114, 101, 103, 106, 109, 109, 108, 106, 105, 113, 104, 107, 108, 108, 110, 109, 115, 106, 111, 106, 118, 111, 112, 116, 108, 109, 122, 110, 104, 107, 108, 105, 105, 131, 112, 108, 119, 106, 113, 112, 115, 116, 109, 110, 116, 111, 118, 111, 107, 107, 107, 110, 113, 104, 88, 107, 104, 110, 112, 104, 105, 103, 110, 107, 111, 107, 106, 112, 115, 111, 120, 116, 103, 114, 112, 101, 101, 105, 113, 111, 116, 93, 104, 115, 110, 106, 111, 113, 101, 102, 111, 105, 117, 111, 115, 112, 115, 99, 111, 108, 110, 105, 109, 108, 102, 109, 107, 111, 111, 114, 113, 108, 102, 107, 105, 106, 115, 99, 104, 108, 117, 114, 121, 107, 103, 107, 116, 115, 115, 107, 100, 110, 110, 108, 114, 108, 112, 111, 108, 100, 109, 113, 112, 104, 114, 110, 111, 105, 115, 114, 110, 116, 110, 106, 114, 112, 118, 110, 105, 108, 117, 106, 102, 106, 108, 104, 109, 106, 117, 107, 115, 108, 115, 133, 111, 116, 110, 105, 110, 114, 106, 109, 114, 111, 120, 113, 101, 107, 111, 105, 113, 110, 114, 106, 106, 110, 114, 113, 106, 109, 115, 111, 107, 119, 109, 127, 104, 107, 107, 107, 110, 110, 112, 110, 113, 102, 115, 118, 112, 103, 114, 113, 102, 112, 118, 108, 111, 105, 111, 106, 113, 108, 108, 114, 108, 117, 119, 106, 114, 109, 112, 110, 111, 113, 108, 106, 112, 109, 111, 106, 111, 109, 109, 114, 104, 105, 112, 111, 108, 114, 111, 106, 102, 112, 112, 103, 109, 107, 120, 112, 109, 108, 105, 108, 102, 103, 104, 114, 109, 110, 118, 94, 111, 107, 113, 106, 124, 101, 97, 114, 120, 113, 108, 108, 103, 114, 109, 109, 110, 109, 110, 109, 110, 107, 103, 111, 100, 93, 107, 114, 115, 107, 109, 113, 91, 111, 111, 116, 106, 110, 110, 110, 119, 112, 112, 130, 110, 108, 112, 113, 114, 118, 113, 107, 106, 114, 107, 115, 104, 110, 107, 112, 105, 111, 121, 98, 127, 106, 117, 111, 114, 115, 100, 114, 107, 104, 108, 107, 109, 113, 100, 108, 107, 112, 108, 114, 118, 111, 105, 107, 114, 113, 107, 108, 112, 111, 117, 115, 115, 108, 116, 115, 111, 109, 111, 108, 109, 111, 103, 109, 114, 103, 97, 110, 109, 116, 100, 109, 113, 111, 109, 106, 111, 102, 115, 114, 111, 120, 113, 108, 105, 113, 110, 109, 106, 109, 113, 105, 110, 111, 108, 106, 107, 107, 105, 111, 108, 104, 109, 110, 114, 120, 115, 105, 111, 107, 107, 114, 114, 113, 118, 113, 111, 110, 114, 110, 100, 107, 111, 109, 113, 106, 115, 111, 91, 115, 121, 106, 114, 104, 116, 108, 112, 111, 105, 108, 110, 116, 100, 123, 107, 103, 98, 108, 108, 103, 105, 112, 109, 110, 107, 105, 106, 108, 107, 110, 110, 110, 110, 114, 109, 110, 110, 109, 113, 106, 107, 110, 104, 109, 110, 110, 112, 113, 106, 102, 107, 110, 105, 125, 98, 106, 110, 117, 111, 107, 104, 116, 106, 111, 104, 105, 112, 123, 112, 108, 113, 111, 106, 99, 112, 111, 106, 109, 116, 113, 109, 111, 115, 108, 107, 111, 115, 109, 115, 108, 113, 110, 114, 121, 108, 112, 108, 109, 111, 111, 114, 113, 116, 119, 120, 104, 137, 110, 114, 103, 112, 113, 111, 112, 105, 111, 108, 107, 109, 126, 110, 120, 112, 108, 116, 110, 101, 111, 117, 107, 108, 109, 111, 109, 97, 110, 104, 114, 113, 113, 115, 115, 113, 119, 112, 112, 106, 111, 109, 111, 79, 116, 110, 116, 111, 115, 109, 113, 111, 103, 116, 106, 112, 111, 110, 108, 111, 108, 106, 109, 111, 114, 110, 106, 109, 115, 103, 113, 108, 113, 112, 108, 112, 104, 113, 102, 110, 116, 110, 111, 106, 88, 100, 126, 115, 111, 113, 110, 110, 115, 103, 109, 106, 116, 103, 111, 108, 100, 116, 123, 120, 105, 110, 108, 114, 105, 111, 111, 95, 109, 111, 112, 117, 102, 104, 134, 112, 112, 116, 109, 108, 108, 111, 110, 116, 108, 111, 109, 100, 134, 108, 112, 107, 106, 110, 111, 98, 112, 110, 118, 128, 110, 107, 105, 111, 107, 115, 109, 110, 110, 110, 111, 98, 110, 106, 114, 116, 109, 108, 115, 112, 117, 119, 104, 97, 115, 107, 106, 111, 110, 109, 109, 87, 111, 109, 110, 112, 116, 116, 106, 124, 114, 111, 122, 113, 105, 107, 116, 112, 108, 110, 111, 123, 109, 106, 120, 108, 118, 111, 112, 112, 106, 116, 105, 109, 112, 107, 111, 116, 111, 112, 112, 109, 110, 114, 105, 130, 128, 116, 104, 110, 112, 107, 108, 107, 107, 108, 111, 115, 113, 102, 113, 107, 112, 111, 109, 109, 109, 114, 104, 109, 115, 115, 108, 110, 102, 109, 106, 108, 112, 111, 117, 112, 112, 111, 113, 110, 113, 109, 110, 109, 111, 84, 112, 109, 109, 111, 111, 107, 108, 110, 107, 107, 114, 110, 108, 111, 106, 106, 111, 106, 109, 112, 105, 109, 113, 110, 109, 113, 105, 110, 109, 111, 108, 111, 109, 109, 112, 105, 114, 106, 111, 113, 109, 109, 111, 107, 111, 108, 107, 105, 112, 111, 103, 116, 115, 112, 113, 108, 107, 100, 118, 107, 110, 112, 109, 107, 109, 118, 112, 105, 111, 111, 112, 110, 109, 107, 107, 112, 104, 114, 127, 109, 109, 107, 115, 112, 118, 113, 123, 116, 106, 112, 112, 118, 114, 86, 111, 109, 110, 105, 106, 105, 111, 112, 109, 104, 113, 110, 110, 110, 102, 110, 117, 110, 109, 112, 107, 116, 109, 106, 116, 111, 112, 114, 112, 103, 128, 110, 110, 113, 109, 112, 120, 110, 110, 116, 108, 109, 108, 111, 110, 110, 115, 113, 112, 113, 115, 112, 107, 109, 106, 108, 118, 110, 109, 110, 108, 109, 110, 103, 107, 107, 103, 108, 113, 113, 110, 93, 117, 110, 120, 98, 115, 105, 103, 108, 106, 112, 110, 110, 109, 108, 110, 108, 117, 108, 105, 123, 104, 105, 100, 109, 112, 108, 106, 104, 111, 108, 127, 109, 128, 112, 119, 135, 157, 107, 99, 126, 115, 109, 106, 104, 106, 103, 104, 107, 116, 104, 108, 106, 107, 92, 112, 114, 115, 111, 107, 118, 112, 118, 108, 118, 116, 104, 107, 104, 104, 109, 112, 111, 114, 114, 104, 114, 96, 116, 105, 111, 124, 109, 109, 80, 107, 106, 112, 111, 115, 111, 110, 109, 107, 117, 115, 100, 105, 112, 112, 118, 108, 108, 101, 109, 119, 115, 108, 105, 105, 117, 103, 114, 100, 107, 109, 106, 100, 102, 126, 103, 108, 118, 101, 100, 112, 110, 120, 101, 110, 109, 111, 111, 105, 109, 100, 107, 111, 113, 101, 114, 106, 111, 111, 109, 119, 104, 102, 120, 112, 111, 107, 87, 117, 117, 106, 104, 109, 109, 113, 111, 108, 112, 107, 113, 114, 109, 128, 106, 112, 104, 115, 108, 102, 113, 108, 115, 105, 104, 112, 116, 112, 107, 106, 111, 114, 109, 110, 103, 103, 103, 107, 110, 112, 120, 112, 110, 104, 112, 108, 111, 121, 116, 97, 110, 111, 112, 111, 103, 105, 112, 111, 115, 109, 124, 109, 110, 120, 112, 111, 117, 110, 108, 107, 105, 102, 111, 112, 102, 105, 104, 122, 106, 104, 118, 102, 115, 112, 114, 112, 113, 110, 100, 115, 106, 111, 114, 108, 112, 118, 108, 108, 102, 100, 108, 109, 113, 110, 107, 107, 111, 103, 104, 108, 110, 107, 98, 117, 109, 112, 111, 111, 112, 111, 101, 106, 107, 107, 102, 101, 115, 117, 114, 106, 108, 134, 101, 108, 120, 91, 114, 115, 109, 98, 114, 140, 120, 128, 113, 110, 99, 104, 111, 108, 111, 110, 106, 108, 107, 114, 107, 116, 110, 107, 120, 111, 105, 109, 115, 114, 100, 115, 115, 111, 114, 109, 102, 101, 106, 115, 105, 107, 115, 110, 129, 106, 112, 113, 109, 107, 106, 117, 118, 104, 112, 112, 106, 116, 118, 103, 111, 120, 122, 114, 105, 109, 115, 105, 105, 112, 118, 103, 119, 97, 117, 109, 110, 107, 114, 107, 106, 103, 99, 104, 96, 114, 86, 104, 116, 107, 126, 102, 101, 110, 138, 114, 116, 110, 117, 106, 125, 108, 92, 113, 109, 125, 107, 110, 110, 102, 110, 117, 103, 120, 113, 112, 108, 108, 106, 114, 118, 108, 105, 118, 117, 119, 104, 101, 107, 114, 104, 112, 119, 110, 114, 110, 112, 102, 110, 110, 107, 114, 110, 107, 110, 113, 103, 107, 116, 102, 109, 111, 101, 107, 114, 104, 102, 115, 110, 115, 103, 117, 117, 109, 101, 109, 109, 118, 127, 96, 109, 105, 108, 107, 115, 111, 111, 107, 120, 109, 111, 107, 102, 109, 110, 113, 106, 110, 112, 117, 109, 110, 106, 108, 109, 103, 117, 106, 109, 112, 101, 111, 109, 111, 96, 107, 115, 110, 118, 110, 105, 107, 114, 110, 112, 109, 121, 101, 115, 101, 98, 114, 105, 101, 106, 105, 111, 109, 111, 105, 102, 131, 106, 105, 105, 139, 104, 115, 112, 101, 105, 107, 105, 109, 106, 106, 108, 104, 127, 112, 107, 99, 109, 107, 117, 105, 103, 102, 115, 125, 104, 99, 104, 97, 105, 104, 111, 110, 106, 113, 109, 113, 106, 113, 109, 102, 106, 109, 104, 96, 111, 110, 109, 95, 97, 118, 101, 96, 104, 100, 103, 108, 116, 104, 128, 113, 108, 111, 105, 110, 98, 111, 110, 116, 108, 104, 117, 113, 104, 108, 105, 106, 99, 103, 101, 98, 102, 109, 110, 104, 113, 93, 113, 118, 117, 106, 102, 125, 104, 112, 105, 99, 104, 110, 114, 103, 119, 93, 111, 121, 102, 109, 101, 102, 112, 109, 110, 110, 109, 109, 109, 111, 102, 97, 111, 108, 109, 117, 106, 104, 109, 121, 103, 117, 103, 119, 116, 106, 114, 114, 110, 113, 110, 111, 97, 115, 105, 118, 110, 108, 100, 112, 107, 126, 125, 113, 113, 110, 100, 122, 110, 103, 106, 103, 115, 105, 112, 109, 115, 114, 108, 115, 107, 122, 109, 98, 109, 114, 102, 110, 105, 118, 109, 108, 105, 101, 112, 108, 110, 102, 116, 117, 114, 104, 106, 108, 105, 102, 108, 106, 116, 106, 108, 112, 104, 108, 107, 118, 100, 105, 113, 109, 115, 113, 116, 98, 115, 101, 111, 124, 120, 114, 113, 103, 106, 104, 118, 123, 102, 127, 112, 100, 108, 105, 113, 105, 104, 121, 112, 102, 115, 113, 103, 96, 118, 107, 99, 121, 110, 98, 112, 101, 111, 109, 106, 104, 122, 108, 110, 102, 120, 115, 107, 100, 111, 94, 105, 98, 112, 104, 108, 105, 103, 105, 95, 117, 109, 101, 97, 111, 113, 111, 113, 98, 99, 122, 107, 107, 110, 122, 100, 109, 124, 110, 121, 107, 116, 113, 104, 107, 113, 115, 119, 105, 113, 110, 110, 124, 105, 111, 106, 109, 100, 117, 116, 118, 132, 113, 107, 104, 105, 115, 110, 113, 111, 102, 107, 111, 106, 109, 109, 111, 114, 112, 113, 101, 124, 109, 119, 114, 115, 106, 108, 116, 107, 99, 107, 113, 116, 106, 107, 108, 108, 98, 129, 108, 108, 109, 109, 106, 121, 115, 113, 104, 103, 107, 95, 106, 106, 105, 105, 110, 100, 101, 114, 122, 116, 112, 131, 105, 113, 102, 118, 104, 103, 113, 119, 114, 116, 100, 99, 96, 108, 127, 97, 109, 107, 109, 111, 111, 107, 113, 102, 109, 114, 109, 108, 109, 103, 108, 112, 110, 113, 111, 109, 110, 124, 109, 111, 113, 104, 105, 111, 117, 110, 116, 117, 119, 111, 103, 123, 99, 106, 102, 106, 109, 108, 108, 121, 106, 104, 108, 108, 114, 112, 117, 106, 112, 111, 121, 113, 113, 114, 98, 123, 113, 111, 108, 108, 110, 115, 100, 117, 112, 94, 111, 108, 111, 116, 111, 107, 111, 109, 111, 113, 125, 111, 115, 108, 110, 110, 97, 110, 114, 112, 120, 117, 101, 115, 108, 110, 107, 105, 105, 113, 108, 94, 109, 113, 106, 117, 109, 110, 113, 107, 112, 123, 110, 111, 108, 107, 110, 122, 101, 112, 121, 115, 105, 113, 116, 110, 110, 104, 111, 101, 104, 101, 105, 106, 112, 113, 104, 101, 96, 109, 107, 115, 105, 133, 120, 123, 114, 108, 115, 123, 115, 97, 114, 101, 107, 128, 102, 113, 106, 92, 109, 109, 110, 95, 119, 99, 104, 107, 117, 115, 94, 109, 100, 110, 111, 116, 109, 123, 104, 113, 116, 102, 116, 112, 109, 107, 88, 104, 109, 108, 106, 113, 115, 116, 119, 99, 113, 128, 98, 116, 102, 117, 103, 113, 117, 126, 106, 113, 101, 105, 111, 111, 111, 97, 109, 109, 100, 109, 124, 101, 86, 104, 101, 108, 109, 110, 110, 121, 117, 104, 105, 109, 94, 115, 115, 114, 101, 111, 122, 109, 115, 97, 111, 114, 104, 95, 112, 89, 110, 108, 94, 119, 100, 115, 111, 102, 102, 107, 110, 109, 107, 103, 99, 102, 96, 106, 107, 114, 112, 113, 110, 104, 108, 117, 108, 112, 113, 114, 116, 118, 105, 103, 105, 105, 110, 120, 94, 114, 103, 108, 109, 104, 111, 105, 109, 98, 112, 107, 118, 112, 99, 112, 113, 109, 106, 148, 110, 112, 107, 113, 109, 112, 103, 115, 107, 109, 106, 117, 119, 132, 109, 106, 116, 106, 135, 113, 104, 124, 123, 105, 110, 108, 100, 111, 98, 109, 137, 118, 107, 112, 104, 115, 101, 114, 111, 108, 97, 104, 96, 115, 103, 104, 110, 105, 118, 107, 106, 116, 104, 121, 100, 115, 113, 97, 111, 107, 120, 106, 119, 112, 114, 108, 96, 104, 102, 109, 105, 119, 116, 123, 114, 127, 98, 109, 128, 106, 111, 101, 120, 115, 107, 122, 115, 112, 103, 127, 111, 101, 93, 112, 116, 100, 110, 101, 103, 107, 110, 99, 103, 109, 109, 109, 113, 107, 102, 112, 114, 104, 112, 111, 117, 102, 114, 98, 109, 110, 102, 130, 108, 107, 114, 115, 111, 111, 93, 118, 112, 94, 105, 114, 118, 103, 103, 103, 108, 107, 107, 115, 101, 108, 103, 114, 116, 108, 108, 101, 92, 126, 114, 104, 109, 133, 103, 104, 106, 103, 93, 108, 126, 93, 104, 105, 96, 110, 115, 103, 93, 107, 117, 103, 101, 116, 106, 117, 109, 120, 107, 118, 102, 96, 86, 126, 117, 126, 103, 109, 104, 102, 104, 110, 119, 120, 106, 97, 106, 105, 114, 113, 104, 90, 95, 110, 101, 109, 106, 94, 112, 113, 113, 113, 107, 122, 105, 113, 108, 101, 109, 123, 109, 108, 108, 108, 110, 111, 112, 103, 112, 107, 119, 96, 109, 112, 106, 110, 102, 104, 113, 106, 98, 108, 104, 108, 100, 124, 115, 110, 112, 108, 119, 98, 121, 99, 110, 113, 102, 111, 123, 93, 110, 92, 99, 118, 137, 117, 118, 112, 110, 105, 113, 99, 99, 113, 121, 124, 107, 120, 105, 105, 106, 99, 99, 114, 110, 91, 100, 122, 130, 99, 109, 114, 93, 105, 126, 109, 97, 111, 112, 113, 96, 126, 106, 114, 113, 117, 110, 126, 127, 108, 104, 118, 113, 105, 113, 112, 112, 106, 109, 103, 101, 114, 102, 106, 114, 101, 110, 110, 100, 138, 118, 113, 109, 104, 110, 105, 116, 121, 112, 106, 113, 107, 98, 106, 105, 116, 103, 104, 96, 102, 107, 111, 107, 112, 115, 111, 107, 104, 113, 102, 110, 107, 111, 110, 100, 107, 94, 117, 111, 114, 119, 106, 113, 108, 112, 108, 115, 103, 110, 103, 118, 109, 110, 113, 110, 110, 105, 110, 110, 118, 107, 106, 110, 112, 109, 107, 106, 106, 115, 108, 112, 113, 106, 105, 102, 110, 109, 109, 110, 114, 120, 110, 119, 104, 113, 109, 109, 99, 118, 101, 103, 107, 104, 110, 110, 114, 109, 106, 106, 123, 107, 110, 115, 106, 115, 114, 113, 106, 106, 114, 110, 111, 112, 114, 109, 114, 110, 107, 110, 106, 100, 110, 108, 112, 112, 111, 111, 102, 116, 106, 98, 110, 112, 105, 118, 119, 114, 126, 108, 107, 109, 112, 110, 103, 110, 104, 109, 113, 112, 110, 108, 113, 112, 110, 109, 115, 109, 113, 110, 107, 108, 108, 104, 107, 113, 101, 112, 112, 104, 120, 105, 117, 120, 117, 126, 109, 110, 110, 111, 117, 108, 107, 111, 110, 112, 105, 105, 104, 117, 100, 110, 99, 111, 108, 105, 112, 113, 104, 102, 102, 109, 123, 108, 114, 109, 108, 108, 116, 112, 113, 121, 104, 107, 109, 113, 112, 107, 104, 114, 105, 121, 99, 113, 112, 107, 112, 106, 113, 108, 107, 115, 108, 114, 110, 100, 105, 101, 111, 112, 108, 113, 110, 104, 115, 112, 109, 110, 114, 115, 101, 112, 111, 122, 111, 98, 115, 104, 112, 113, 108, 107, 117, 109, 106, 118, 106, 111, 109, 115, 106, 116, 116, 114, 106, 105, 110, 103, 108, 105, 111, 114, 113, 112, 116, 110, 114, 106, 100, 108, 114, 107, 108, 104, 111, 104, 107, 120, 107, 105, 108, 100, 101, 99, 100, 116, 107, 107, 117, 107, 106, 105, 116, 105, 106, 108, 105, 103, 105, 113, 117, 95, 114, 109, 105, 111, 109, 106, 108, 114, 109, 115, 120, 110, 108, 109, 116, 111, 116, 112, 114, 108, 104, 102, 116, 117, 106, 105, 111, 104, 111, 105, 110, 106, 112, 114, 102, 108, 115, 108, 112, 114, 107, 114, 106, 108, 104, 108, 106, 108, 110, 111, 106, 119, 124, 107, 105, 114, 108, 115, 112, 108, 110, 118, 103, 126, 111, 112, 109, 114, 107, 114, 110, 109, 107, 112, 111, 108, 116, 105, 105, 114, 100, 99, 111, 106, 108, 101, 111, 109, 104, 107, 112, 106, 106, 115, 103, 112, 110, 120, 102, 113, 115, 105, 106, 114, 110, 105, 106, 114, 112, 103, 109, 108, 118, 88, 110, 102, 105, 113, 106, 117, 110, 114, 114, 105, 108, 112, 106, 107, 102, 109, 119, 108, 113, 109, 110, 115, 98, 118, 104, 113, 106, 125, 110, 114, 113, 114, 110, 113, 129, 112, 110, 117, 109, 112, 119, 124, 119, 113, 109, 118, 96, 107, 109, 112, 109, 118, 127, 118, 101, 107, 108, 117, 114, 110, 110, 113, 101, 107, 108, 109, 115, 109, 109, 120, 105, 115, 107, 102, 125, 117, 113, 111, 108, 107, 121, 114, 103, 109, 109, 107, 117, 108, 115, 114, 111, 108, 112, 107, 109, 118, 116, 106, 114, 105, 110, 111, 111, 111, 114, 116, 110, 110, 109, 112, 109, 121, 110, 122, 110, 109, 113, 109, 107, 107, 110, 104, 109, 106, 106, 109, 107, 112, 108, 113, 109, 125, 109, 111, 111, 116, 113, 109, 108, 109, 113, 108, 112, 110, 109, 108, 120, 117, 116, 109, 114, 107, 112, 115, 107, 109, 111, 112, 115, 113, 113, 115, 110, 113, 114, 112, 107, 114, 109, 107, 113, 112, 107, 101, 112, 108, 113, 109, 115, 110, 113, 106, 107, 117, 117, 107, 113, 110, 104, 109, 110, 114, 109, 110, 106, 110, 109, 108, 112, 115, 107, 111, 118, 104, 114, 111, 119, 118, 109, 108, 110, 113, 112, 113, 110, 113, 112, 109, 120, 111, 107, 116, 105, 107, 107, 115, 108, 108, 109, 108, 109, 108, 119, 114, 114, 113, 115, 108, 109, 108, 109, 108, 115, 113, 113, 113, 107, 119, 125, 115, 109, 111, 110, 112, 112, 113, 111, 109, 109, 116, 112, 111, 107, 108, 104, 108, 108, 110, 105, 117, 113, 111, 118, 109, 109, 111, 119, 103, 106, 110, 115, 107, 121, 111, 114, 108, 110, 110, 111, 112, 111, 111, 109, 113, 107, 111, 105, 108, 110, 122, 107, 116, 109, 111, 107, 117, 115, 110, 105, 110, 113, 108, 114, 106, 111, 116, 111, 113, 108, 113, 107, 113, 110, 106, 108, 116, 108, 106, 106, 105, 110, 109, 119, 110, 114, 111, 113, 109, 116, 112, 109, 108, 114, 106, 112, 106, 112, 105, 110, 106, 107, 113, 100, 106, 119, 111, 107, 107, 114, 116, 110, 113, 109, 103, 107, 114, 117, 111, 114, 105, 106, 115, 111, 117, 101, 117, 113, 109, 115, 118, 108, 116, 102, 114, 112, 122, 107, 106, 113, 106, 109, 112, 109, 117, 106, 116, 115, 110, 105, 105, 123, 104, 121, 113, 110, 113, 109, 106, 110, 113, 109, 105, 112, 109, 116, 119, 111, 106, 113, 110, 113, 109, 114, 113, 105, 113, 106, 112, 112, 115, 113, 104, 110, 111, 112, 111, 113, 110, 107, 108, 107, 104, 116, 108, 110, 108, 104, 116, 122, 109, 114, 107, 115, 109, 101, 107, 109, 108, 121, 109, 120, 110, 113, 116, 117, 109, 111, 109, 103, 111, 108, 112, 106, 109, 113, 118, 103, 104, 121, 105, 116, 112, 111, 104, 114, 108, 113, 112, 108, 115, 113, 113, 117, 110, 110, 107, 109, 114, 112, 116, 113, 110, 114, 113, 119, 109, 117, 108, 112, 107, 112, 107, 109, 120, 118, 109, 105, 108, 112, 108, 114, 108, 107, 113, 108, 110, 109, 111, 112, 105, 112, 103, 107, 111, 112, 109, 116, 112, 102, 111, 113, 106, 110, 108, 109, 107, 110, 110, 110, 113, 109, 111, 112, 115, 105, 108, 110, 110, 114, 112, 110, 112, 111, 103, 108, 104, 108, 106, 109, 117, 116, 109, 115, 106, 111, 112, 111, 115, 107, 107, 105, 112, 107, 121, 107, 110, 125, 102, 112, 111, 111, 110, 107, 102, 107, 107, 119, 111, 104, 107, 126, 114, 108, 119, 110, 108, 110, 108, 111, 107, 114, 109, 110, 101, 107, 108, 112, 109, 108, 108, 118, 114, 109, 109, 108, 115, 110, 108, 108, 106, 107, 119, 107, 104, 112, 105, 116, 115, 108, 103, 118, 117, 107, 113, 102, 114, 113, 104, 106, 111, 127, 119, 122, 106, 111, 120, 106, 107, 109, 105, 112, 105, 105, 101, 115, 105, 110, 113, 107, 112, 98, 107, 117, 99, 100, 120, 112, 113, 110, 103, 106, 117, 110, 106, 103, 112, 112, 118, 112, 113, 109, 111, 112, 109, 110, 119, 111, 112, 112, 106, 114, 103, 111, 110, 109, 114, 110, 104, 109, 121, 112, 109, 115, 109, 110, 113, 110, 104, 112, 110, 110, 113, 124, 107, 99, 100, 115, 113, 117, 108, 117, 112, 105, 113, 117, 111, 115, 115, 116, 115, 111, 115, 108, 110, 101, 107, 112, 113, 121, 105, 109, 102, 114, 110, 110, 109, 122, 108, 105, 110, 110, 109, 116, 108, 110, 106, 116, 112, 116, 124, 110, 111, 112, 111, 110, 110, 112, 110, 111, 104, 108, 110, 114, 106, 118, 112, 112, 115, 113, 115, 111, 111, 112, 105, 111, 109, 111, 108, 109, 112, 109, 108, 109, 106, 106, 105, 112, 110, 121, 110, 107, 110, 105, 112, 114, 117, 124, 111, 102, 115, 114, 104, 110, 111, 109, 113, 107, 105, 106, 112, 107, 111, 99, 112, 110, 113, 109, 112, 113, 129, 118, 112, 112, 109, 108, 109, 116, 115, 115, 103, 121, 114, 109, 131, 110, 105, 107, 104, 109, 120, 112, 104, 109, 107, 111, 106, 115, 110, 103, 114, 120, 106, 102, 109, 109, 126, 109, 105, 110, 106, 113, 120, 101, 111, 101, 116, 116, 111, 110, 108, 104, 112, 116, 107, 112, 103, 110, 102, 117, 110, 115, 111, 106, 109, 111, 117, 106, 116, 105, 102, 114, 107, 115, 106, 110, 115, 107, 98, 90, 114, 113, 114, 106, 110, 113, 106, 119, 117, 101, 113, 108, 108, 110, 114, 116, 107, 114, 105, 114, 106, 105, 110, 104, 102, 113, 101, 112, 113, 114, 105, 109, 115, 111, 108, 106, 104, 107, 109, 111, 113, 109, 118, 100, 105, 108, 114, 114, 110, 107, 111, 109, 112, 105, 109, 113, 109, 105, 107, 114, 109, 109, 113, 118, 116, 95, 111, 109, 108, 103, 110, 110, 108, 108, 108, 109, 113, 87, 113, 107, 113, 101, 106, 105, 101, 100, 108, 111, 114, 116, 113, 103, 117, 126, 109, 114, 101, 109, 104, 103, 108, 109, 105, 104, 110, 106, 106, 105, 104, 113, 103, 107, 111, 117, 107, 108, 111, 101, 113, 103, 106, 113, 120, 110, 109, 117, 115, 115, 121, 115, 113, 110, 110, 107, 110, 108, 107, 108, 107, 110, 113, 112, 106, 110, 113, 112, 113, 105, 99, 107, 116, 105, 111, 105, 116, 105, 107, 112, 114, 113, 125, 109, 110, 103, 112, 117, 120, 108, 108, 119, 106, 118, 111, 110, 114, 111, 113, 109, 112, 104, 112, 105, 107, 111, 109, 122, 105, 114, 106, 111, 106, 108, 113, 107, 111, 109, 109, 110, 108, 108, 118, 104, 110, 110, 106, 113, 109, 104, 111, 104, 110, 113, 110, 114, 107, 104, 106, 114, 103, 114, 115, 114, 112, 109, 109, 111, 103, 112, 117, 111, 108, 107, 106, 111, 113, 104, 101, 110, 108, 110, 112, 102, 110, 111, 110, 114, 110, 110, 120, 117, 108, 110, 112, 108, 113, 111, 121, 108, 108, 110, 108, 111, 119, 110, 117, 103, 101, 107, 112, 114, 108, 113, 106, 108, 115, 107, 114, 106, 107, 112, 109, 117, 110, 106, 111, 114, 103, 118, 115, 111, 110, 108, 106, 105, 111, 113, 109, 108, 110, 112, 114, 114, 119, 109, 111, 111, 111, 100, 103, 101, 109, 106, 102, 108, 109, 111, 112, 110, 104, 104, 115, 116, 112, 105, 109, 108, 108, 113, 108, 117, 115, 106, 112, 110, 111, 116, 110, 111, 108, 118, 117, 110, 103, 108, 106, 116, 122, 108, 108, 118, 118, 109, 126, 118, 118, 111, 114, 106, 111, 102, 109, 116, 112, 113, 111, 109, 109, 114, 108, 131, 112, 107, 110, 116, 116, 112, 111, 110, 103, 114, 113, 106, 111, 119, 106, 101, 118, 107, 109, 104, 112, 113, 127, 110, 117, 112, 111, 108, 108, 112, 112, 109, 112, 108, 105, 113, 108, 108, 119, 110, 109, 109, 105, 113, 107, 111, 104, 110, 110, 112, 109, 106, 109, 108, 108, 116, 106, 111, 113, 110, 113, 112, 114, 117, 119, 108, 120, 108, 110, 114, 113, 117, 113, 117, 114, 106, 114, 109, 115, 111, 108, 109, 103, 112, 107, 110, 110, 112, 107, 108, 113, 111, 108, 114, 108, 105, 112, 106, 112, 109, 103, 106, 108, 108, 112, 115, 114, 109, 105, 115, 107, 105, 108, 116, 107, 112, 108, 111, 111, 111, 112, 120, 115, 112, 109, 110, 106, 110, 113, 111, 104, 112, 109, 108, 112, 107, 106, 119, 103, 111, 104, 115, 111, 106, 103, 110, 113, 112, 110, 112, 105, 108, 112, 107, 110, 100, 112, 108, 106, 106, 112, 110, 112, 109, 111, 117, 113, 115, 115, 110, 114, 109, 120, 109, 108, 108, 113, 121, 107, 106, 109, 107, 106, 111, 111, 106, 111, 109, 107, 113, 109, 111, 119, 107, 106, 114, 113, 108, 110, 107, 107, 112, 109, 101, 117, 120, 105, 111, 118, 126, 107, 113, 108, 100, 113, 110, 104, 112, 118, 114, 103, 99, 108, 110, 104, 112, 104, 107, 122, 105, 105, 114, 120, 105, 110, 114, 111, 106, 113, 107, 105, 104, 113, 108, 108, 113, 119, 108, 103, 100, 114, 112, 113, 111, 111, 103, 108, 105, 110, 107, 103, 108, 106, 113, 111, 109, 112, 111, 102, 117, 110, 103, 112, 109, 113, 106, 112, 109, 116, 116, 114, 112, 119, 110, 118, 120, 107, 108, 118, 109, 109, 109, 101, 118, 116, 116, 107, 108, 112, 110, 111, 102, 104, 108, 105, 112, 110, 113, 107, 106, 108, 108, 113, 117, 106, 109, 108, 107, 106, 110, 116, 108, 109, 119, 106, 110, 110, 104, 111, 104, 108, 115, 110, 109, 109, 108, 109, 101, 117, 113, 98, 106, 114, 107, 87, 106, 128, 112, 106, 107, 109, 111, 115, 108, 111, 109, 116, 110, 110, 117, 109, 111, 113, 109, 82, 115, 111, 110, 111, 103, 109, 110, 103, 137, 111, 110, 110, 108, 113, 108, 116, 108, 110, 111, 115, 113, 110, 106, 102, 113, 109, 117, 102, 111, 111, 109, 111, 104, 111, 117, 110, 113, 115, 110, 114, 116, 117, 110, 112, 111, 110, 108, 111, 109, 113, 110, 111, 108, 107, 107, 112, 116, 113, 111, 114, 109, 114, 113, 108, 109, 114, 109, 106, 117, 95, 110, 109, 110, 109, 110, 110, 109, 114, 106, 112, 110, 115, 111, 109, 108, 109, 107, 74, 114, 113, 107, 111, 116, 113, 112, 109, 105, 108, 112, 108, 112, 108, 110, 109, 118, 109, 111, 105, 107, 111, 114, 104, 108, 113, 113, 116, 111, 106, 116, 113, 112, 109, 113, 112, 107, 109, 113, 115, 108, 113, 108, 113, 109, 111, 108, 110, 104, 112, 110, 104, 113, 112, 111, 96, 112, 122, 115, 112, 109, 107, 110, 116, 110, 115, 115, 109, 121, 109, 111, 110, 117, 112, 113, 111, 106, 109, 112, 115, 109, 115, 116, 109, 110, 105, 110, 106, 97, 137, 112, 113, 111, 111, 110, 110, 116, 109, 114, 111, 114, 109, 106, 80, 113, 113, 107, 129, 119, 108, 106, 107, 112, 107, 108, 109, 112, 107, 108, 108, 114, 110, 113, 113, 114, 114, 112, 99, 114, 104, 108, 108, 111, 109, 108, 108, 99, 106, 113, 102, 107, 110, 112, 135, 116, 108, 114, 117, 115, 98, 104, 111, 113, 109, 109, 115, 110, 108, 117, 107, 116, 109, 114, 111, 108, 80, 112, 111, 113, 105, 112, 111, 105, 111, 107, 114, 122, 103, 114, 111, 109, 103, 115, 107, 113, 111, 113, 108, 113, 111, 104, 94, 107, 106, 108, 103, 114, 114, 106, 114, 113, 106, 108, 111, 114, 116, 108, 96, 114, 113, 108, 115, 116, 116, 107, 99, 105, 114, 111, 107, 108, 111, 107, 104, 114, 107, 106, 111, 99, 103, 144, 114, 112, 117, 109, 108, 109, 109, 86, 132, 112, 105, 109, 116, 109, 110, 113, 121, 115, 102, 107, 110, 111, 113, 110, 113, 109, 116, 118, 105, 113, 116, 110, 112, 112, 103, 111, 107, 108, 112, 112, 109, 113, 109, 111, 113, 119, 110, 112, 115, 109, 102, 108, 111, 116, 106, 116, 106, 111, 110, 117, 99, 111, 103, 108, 107, 113, 107, 108, 109, 106, 113, 112, 112, 115, 98, 108, 115, 112, 105, 112, 112, 108, 121, 109, 104, 111, 112, 110, 104, 106, 113, 107, 110, 113, 111, 101, 110, 109, 117, 114, 110, 111, 113, 111, 111, 113, 112, 112, 110, 107, 110, 100, 114, 108, 113, 108, 108, 130, 109, 117, 102, 108, 109, 113, 109, 85, 107, 110, 108, 101, 109, 115, 112, 111, 111, 106, 115, 143, 112, 109, 110, 107, 109, 102, 101, 120, 111, 101, 111, 104, 114, 109, 111, 117, 105, 114, 119, 104, 107, 115, 112, 113, 122, 105, 106, 106, 106, 96, 112, 114, 116, 111, 107, 110, 106, 111, 109, 108, 116, 106, 117, 108, 117, 114, 107, 107, 110, 110, 104, 116, 114, 112, 106, 109, 107, 108, 105, 106, 108, 115, 106, 113, 111, 103, 103, 100, 114, 106, 115, 116, 116, 115, 113, 105, 121, 120, 109, 113, 121, 106, 111, 104, 115, 107, 108, 111, 104, 109, 130, 112, 98, 106, 119, 112, 105, 106, 99, 111, 100, 104, 111, 111, 142, 113, 101, 109, 110, 116, 98, 107, 102, 112, 116, 108, 116, 108, 106, 120, 97, 104, 111, 114, 105, 109, 96, 110, 113, 115, 90, 114, 119, 115, 120, 107, 109, 97, 105, 114, 106, 112, 115, 112, 116, 105, 109, 104, 108, 111, 121, 107, 122, 119, 110, 112, 114, 107, 107, 106, 104, 109, 118, 109, 109, 114, 113, 112, 102, 112, 108, 93, 92, 108, 106, 111, 110, 116, 113, 107, 94, 107, 107, 113, 110, 119, 105, 114, 117, 120, 109, 115, 107, 107, 117, 106, 125, 105, 106, 113, 103, 116, 107, 113, 110, 134, 111, 114, 117, 102, 97, 114, 103, 105, 117, 101, 105, 114, 112, 109, 121, 135, 98, 110, 105, 105, 110, 110, 113, 101, 113, 107, 108, 99, 110, 103, 109, 107, 111, 106, 113, 108, 109, 123, 115, 99, 105, 103, 115, 106, 105, 116, 111, 119, 114, 105, 111, 108, 114, 110, 101, 122, 103, 111, 100, 104, 111, 107, 122, 114, 109, 106, 118, 103, 111, 98, 109, 133, 108, 110, 114, 108, 112, 108, 107, 106, 106, 101, 110, 107, 109, 113, 114, 104, 107, 112, 94, 103, 104, 117, 85, 117, 96, 109, 107, 114, 113, 105, 109, 107, 105, 111, 112, 116, 109, 109, 116, 103, 106, 111, 116, 107, 114, 119, 116, 117, 108, 110, 119, 108, 113, 106, 113, 107, 107, 110, 107, 112, 109, 112, 110, 110, 132, 97, 110, 104, 108, 103, 112, 106, 107, 89, 111, 107, 106, 114, 104, 105, 110, 114, 110, 100, 108, 109, 104, 110, 112, 112, 115, 108, 113, 113, 110, 109, 111, 116, 109, 116, 114, 107, 112, 102, 107, 105, 125, 110, 113, 102, 113, 107, 108, 118, 114, 97, 113, 115, 109, 113, 107, 109, 107, 112, 120, 103, 113, 120, 115, 115, 105, 122, 109, 106, 107, 104, 112, 111, 102, 102, 107, 117, 100, 105, 105, 109, 114, 100, 111, 113, 103, 134, 118, 101, 93, 105, 112, 112, 114, 91, 111, 108, 106, 107, 106, 103, 124, 105, 145, 116, 111, 111, 111, 109, 112, 108, 109, 110, 102, 105, 107, 108, 106, 114, 118, 111, 110, 102, 104, 106, 128, 113, 112, 127, 101, 115, 112, 108, 115, 113, 106, 115, 125, 109, 109, 107, 104, 113, 107, 114, 122, 111, 105, 109, 102, 119, 106, 112, 92, 116, 108, 108, 102, 107, 116, 114, 111, 105, 108, 109, 104, 111, 97, 103, 108, 114, 117, 109, 102, 112, 117, 110, 106, 116, 115, 106, 110, 119, 110, 119, 115, 119, 111, 119, 105, 110, 102, 116, 112, 117, 113, 117, 110, 105, 104, 106, 112, 115, 84, 111, 100, 104, 109, 109, 109, 115, 109, 127, 99, 105, 101, 102, 108, 109, 100, 105, 106, 113, 101, 110, 107, 108, 116, 92, 98, 116, 115, 119, 101, 103, 105, 101, 110, 111, 112, 116, 106, 105, 114, 107, 113, 105, 106, 108, 109, 118, 110, 116, 111, 106, 111, 113, 106, 115, 109, 107, 111, 112, 133, 111, 107, 109, 110, 111, 110, 100, 100, 98, 98, 104, 112, 112, 116, 107, 109, 109, 109, 108, 114, 109, 126, 107, 120, 115, 115, 111, 115, 117, 109, 112, 112, 113, 113, 98, 113, 103, 110, 108, 117, 111, 106, 109, 102, 113, 108, 115, 120, 115, 103, 106, 118, 107, 105, 64, 111, 109, 103, 116, 104, 110, 100, 106, 103, 112, 105, 115, 104, 105, 109, 109, 115, 109, 104, 110, 109, 126, 121, 114, 113, 100, 113, 109, 112, 117, 120, 106, 112, 107, 111, 103, 133, 107, 112, 99, 105, 106, 105, 119, 113, 110, 99, 110, 122, 107, 129, 116, 106, 110, 120, 107, 109, 109, 107, 110, 109, 119, 109, 118, 93, 114, 109, 107, 116, 118, 108, 109, 110, 110, 105, 109, 106, 116, 117, 107, 112, 92, 111, 109, 104, 106, 113, 110, 112, 107, 117, 100, 98, 91, 117, 111, 105, 103, 107, 114, 130, 101, 131, 104, 114, 102, 111, 118, 119, 116, 107, 115, 103, 90, 103, 106, 108, 105, 110, 111, 90, 118, 109, 112, 110, 111, 105, 109, 106, 106, 120, 115, 117, 117, 113, 108, 110, 110, 110, 113, 113, 110, 109, 109, 116, 107, 111, 103, 104, 103, 116, 110, 123, 102, 114, 119, 114, 103, 79, 113, 103, 104, 108, 109, 102, 109, 102, 109, 119, 110, 123, 131, 105, 111, 98, 113, 114, 104, 114, 107, 114, 102, 108, 107, 120, 113, 108, 104, 116, 118, 123, 117, 112, 112, 106, 116, 109, 111, 98, 101, 97, 101, 112, 103, 109, 109, 96, 112, 112, 115, 111, 120, 110, 111, 110, 107, 114, 111, 105, 99, 102, 111, 106, 123, 106, 106, 104, 106, 106, 109, 115, 96, 108, 119, 123, 112, 105, 122, 95, 111, 110, 116, 97, 110, 98, 112, 89, 109, 115, 112, 104, 95, 118, 113, 116, 120, 119, 110, 107, 110, 116, 111, 112, 103, 114, 102, 109, 112, 116, 114, 98, 114, 106, 111, 110, 114, 122, 113, 107, 105, 112, 101, 111, 121, 105, 121, 113, 116, 110, 109, 95, 104, 118, 102, 119, 104, 106, 109, 103, 98, 110, 118, 113, 110, 113, 106, 105, 103, 114, 108, 104, 106, 107, 100, 116, 103, 99, 115, 102, 121, 119, 108, 110, 118, 106, 106, 118, 102, 115, 114, 118, 117, 118, 125, 102, 113, 113, 105, 107, 119, 112, 131, 106, 106, 102, 116, 106, 120, 108, 102, 117, 97, 113, 104, 108, 110, 121, 119, 104, 122, 106, 101, 113, 110, 117, 105, 103, 111, 115, 111, 104, 95, 112, 103, 103, 122, 111, 116, 111, 109, 82, 102, 111, 101, 110, 106, 108, 113, 109, 114, 118, 104, 105, 112, 102, 121, 114, 117, 110, 111, 108, 109, 109, 114, 105, 115, 107, 105, 110, 105, 102, 109, 106, 110, 108, 115, 113, 111, 112, 105, 107, 112, 114, 96, 111, 104, 107, 110, 113, 116, 100, 102, 110, 108, 116, 111, 108, 106, 106, 120, 114, 110, 109, 111, 109, 113, 116, 112, 108, 109, 95, 115, 108, 97, 115, 108, 126, 113, 119, 109, 112, 107, 107, 102, 112, 107, 107, 109, 108, 105, 112, 113, 129, 126, 110, 113, 115, 118, 107, 117, 107, 105, 108, 111, 112, 112, 114, 105, 97, 105, 105, 111, 109, 108, 110, 108, 108, 105, 110, 106, 108, 102, 106, 113, 107, 104, 114, 110, 108, 106, 104, 107, 110, 110, 105, 103, 111, 114, 110, 111, 125, 100, 108, 115, 119, 107, 114, 111, 110, 111, 108, 115, 112, 108, 110, 107, 112, 112, 112, 116, 109, 108, 108, 113, 109, 110, 113, 107, 108, 95, 97, 110, 110, 109, 106, 111, 101, 126, 108, 105, 111, 104, 113, 110, 113, 111, 110, 106, 109, 113, 110, 104, 108, 103, 104, 111, 107, 97, 113, 103, 127, 118, 103, 116, 122, 112, 101, 81, 109, 108, 110, 104, 113, 110, 106, 110, 107, 117, 110, 109, 121, 107, 102, 110, 105, 113, 112, 110, 111, 104, 108, 112, 102, 116, 120, 120, 110, 101, 114, 108, 108, 109, 127, 108, 107, 101, 109, 109, 108, 110, 117, 108, 102, 109, 106, 109, 113, 116, 120, 102, 121, 106, 111, 108, 118, 114, 114, 106, 110, 106, 106, 110, 108, 115, 104, 108, 111, 110, 106, 108, 110, 114, 108, 114, 105, 112, 103, 112, 105, 113, 109, 109, 110, 109, 108, 117, 114, 111, 106, 112, 100, 120, 105, 121, 105, 107, 98, 137, 113, 109, 111, 116, 104, 111, 108, 107, 100, 105, 119, 114, 108, 109, 108, 113, 106, 106, 117, 125, 108, 110, 109, 100, 105, 117, 102, 116, 112, 108, 97, 105, 115, 110, 112, 75, 105, 109, 109, 114, 110, 105, 110, 114, 107, 109, 114, 108, 112, 102, 113, 108, 116, 108, 113, 100, 106, 110, 116, 111, 113, 110, 116, 121, 104, 107, 112, 119, 109, 113, 107, 112, 111, 116, 124, 107, 109, 111, 104, 112, 108, 115, 106, 108, 113, 101, 113, 106, 114, 104, 105, 120, 109, 104, 109, 108, 112, 126, 112, 111, 109, 109, 108, 106, 111, 105, 110, 97, 122, 106, 125, 103, 108, 109, 106, 119, 109, 112, 114, 108, 110, 104, 102, 120, 109, 101, 109, 114, 103, 109, 115, 125, 99, 107, 104, 105, 107, 115, 117, 112, 111, 122, 110, 111, 99, 100, 101, 100, 113, 107, 123, 97, 120, 99, 105, 105, 101, 121, 114, 119, 105, 107, 110, 109, 106, 112, 96, 111, 116, 105, 112, 108, 111, 117, 106, 118, 112, 108, 114, 107, 115, 107, 117, 107, 102, 105, 111, 105, 112, 116, 108, 119, 111, 106, 108, 117, 107, 120, 127, 103, 109, 118, 120, 114, 99, 101, 93, 108, 105, 116, 117, 108, 106, 68, 101, 117, 96, 107, 125, 107, 88, 84, 116, 112, 117, 90, 61, 105, 120, 101, 100, 113, 109, 105, 90, 114, 105, 113, 112, 113, 101, 74, 118, 107, 101, 104, 106, 107, 127, 131, 109, 97, 109, 100, 98, 76, 124, 110, 106, 119, 109, 100, 122, 118, 121, 107, 112, 115, 130, 109, 119, 114, 112, 132, 104, 71, 108, 115, 90, 68, 123, 116, 99, 103, 105, 117, 112, 111, 106, 109, 112, 119, 99, 107, 115, 118, 105, 108, 108, 122, 107, 103, 102, 101, 115, 108, 115, 98, 100, 124, 103, 113, 107, 110, 126, 86, 111, 120, 126, 106, 117, 110, 115, 115, 107, 100, 105, 98, 97, 121, 102, 125, 97, 101, 122, 119, 107, 110, 96, 115, 124, 113, 111, 102, 115, 104, 105, 109, 114, 112, 111, 109, 120, 128, 118, 106, 67, 100, 96, 95, 118, 101, 103, 99, 135, 103, 110, 115, 115, 110, 111, 108, 115, 107, 120, 115, 113, 113, 102, 112, 105, 114, 115, 114, 133, 117, 94, 107, 111, 115, 131, 125, 111, 122, 108, 98, 86, 91, 115, 97, 118, 115, 106, 109, 109, 99, 121, 117, 94, 122, 114, 114, 94, 111, 107, 85, 110, 95, 63, 100, 88, 106, 120, 110, 104, 88, 117, 96, 107, 116, 114, 118, 80, 122, 109, 99, 108, 138, 109, 119, 138, 110, 114, 80, 103, 110, 110, 96, 108, 108, 102, 105, 121, 64, 117, 104, 120, 89, 129, 94, 103, 110, 104, 108, 113, 139, 112, 112, 132, 109, 107, 109, 109, 111, 128, 103, 66, 105, 105, 109, 113, 86, 99, 112, 107, 102, 94, 125, 112, 105, 109, 112, 121, 113, 113, 118, 104, 117, 113, 104, 121, 100, 108, 80, 110, 109, 108, 114, 100, 117, 109, 103, 112, 110, 120, 98, 97, 123, 106, 142, 104, 108, 111, 98, 98, 110, 114, 77, 106, 106, 112, 99, 106, 97, 99, 115, 117, 106, 83, 150, 113, 55, 109, 115, 117, 120, 118, 110, 119, 113, 111, 103, 64, 110, 121, 109, 120, 111, 86, 113, 117, 107, 119, 108, 113, 103, 112, 120, 112, 110, 101, 107, 105, 110, 114, 119, 104, 121, 120, 113, 104, 102, 104, 111, 110, 96, 115, 114, 113, 114, 111, 107, 108, 112, 94, 111, 118, 113, 119, 113, 109, 106, 106, 117, 116, 119, 120, 109, 119, 113, 130, 113, 117, 116, 131, 119, 109, 123, 108, 111, 113, 124, 119, 91, 70, 109, 110, 103, 111, 105, 106, 106, 110, 110, 117, 112, 103, 103, 73, 110, 133, 108, 114, 108, 114, 131, 106, 107, 127, 100, 118, 112, 90, 111, 109, 116, 112, 101, 99, 122, 97, 104, 118, 108, 107, 114, 111, 119, 111, 113, 95, 119, 106, 118, 106, 111, 107, 115, 118, 110, 105, 106, 90, 109, 113, 68, 113, 110, 120, 126, 108, 123, 100, 110, 92, 113, 106, 113, 103, 95, 119, 112, 122, 103, 126, 138, 76, 114, 138, 111, 112, 115, 104, 111, 105, 110, 103, 147, 107, 111, 111, 113, 110, 114, 112, 107, 113, 106, 113, 101, 110, 117, 114, 103, 109, 112, 109, 103, 100, 107, 111, 104, 113, 101, 109, 105, 113, 107, 113, 110, 115, 105, 110, 110, 108, 111, 106, 108, 109, 109, 107, 100, 101, 100, 108, 111, 111, 103, 112, 115, 119, 111, 108, 102, 109, 107, 114, 103, 116, 105, 108, 104, 108, 117, 117, 111, 102, 99, 107, 104, 118, 113, 108, 109, 107, 105, 124, 108, 96, 107, 112, 99, 97, 108, 103, 90, 106, 105, 109, 113, 116, 112, 111, 110, 108, 108, 104, 118, 111, 114, 135, 109, 106, 109, 104, 113, 107, 110, 101, 108, 112, 110, 111, 108, 115, 98, 110, 106, 107, 122, 105, 109, 112, 111, 113, 112, 114, 110, 129, 107, 99, 111, 106, 107, 109, 109, 108, 107, 117, 114, 109, 111, 115, 120, 109, 115, 107, 112, 107, 103, 103, 101, 113, 113, 111, 111, 117, 116, 103, 103, 109, 116, 109, 107, 112, 102, 116, 114, 110, 112, 105, 107, 107, 111, 110, 110, 108, 111, 117, 103, 107, 118, 108, 114, 113, 103, 112, 105, 100, 115, 105, 100, 101, 111, 101, 105, 93, 116, 104, 111, 92, 113, 111, 110, 129, 107, 104, 101, 109, 115, 106, 106, 104, 113, 108, 104, 116, 109, 112, 117, 119, 111, 119, 111, 112, 106, 110, 103, 117, 112, 109, 111, 119, 104, 103, 110, 110, 107, 95, 122, 112, 108, 99, 101, 114, 106, 99, 104, 102, 140, 112, 117, 113, 103, 103, 123, 110, 113, 122, 112, 113, 109, 103, 112, 113, 108, 114, 116, 105, 105, 107, 110, 113, 104, 101, 110, 110, 108, 104, 121, 123, 106, 105, 107, 107, 106, 103, 120, 121, 98, 107, 109, 111, 113, 112, 105, 104, 114, 102, 112, 106, 110, 107, 110, 108, 113, 115, 112, 100, 114, 121, 107, 114, 116, 108, 108, 111, 115, 113, 101, 108, 114, 116, 112, 113, 108, 111, 103, 125, 95, 109, 123, 100, 110, 109, 115, 96, 112, 111, 110, 108, 105, 115, 115, 101, 104, 121, 111, 99, 103, 103, 106, 107, 107, 113, 117, 104, 110, 119, 113, 105, 120, 112, 109, 101, 113, 109, 110, 110, 102, 115, 106, 101, 107, 114, 113, 111, 104, 110, 119, 110, 108, 106, 100, 116, 101, 112, 110, 108, 110, 110, 119, 107, 112, 109, 96, 113, 115, 109, 113, 107, 103, 115, 109, 110, 108, 112, 137, 115, 106, 106, 113, 113, 113, 105, 104, 113, 108, 108, 105, 106, 98, 110, 110, 118, 100, 109, 111, 106, 107, 102, 109, 126, 113, 104, 111, 111, 104, 107, 115, 110, 112, 114, 105, 113, 115, 108, 105, 106, 111, 108, 111, 105, 112, 114, 116, 114, 111, 109, 107, 113, 112, 107, 110, 109, 114, 116, 113, 109, 107, 114, 116, 112, 107, 104, 103, 100, 103, 110, 107, 107, 110, 111, 116, 112, 110, 113, 112, 95, 106, 113, 112, 113, 102, 110, 109, 109, 112, 107, 118, 109, 114, 110, 114, 114, 105, 126, 112, 92, 120, 114, 109, 117, 119, 111, 91, 121, 114, 118, 105, 108, 113, 107, 104, 105, 110, 108, 117, 112, 113, 101, 108, 109, 110, 116, 104, 120, 144, 115, 106, 103, 107, 127, 95, 114, 124, 113, 109, 112, 113, 118, 115, 105, 114, 114, 113, 111, 106, 117, 114, 103, 103, 127, 115, 119, 113, 104, 113, 106, 110, 115, 100, 116, 104, 115, 109, 111, 107, 115, 105, 113, 121, 105, 113, 112, 112, 107, 110, 128, 114, 104, 118, 111, 114, 104, 118, 113, 116, 114, 116, 109, 90, 118, 111, 113, 101, 110, 128, 110, 105, 106, 104, 112, 109, 112, 116, 118, 94, 113, 112, 117, 116, 105, 104, 105, 109, 109, 97, 108, 111, 112, 113, 113, 106, 116, 112, 109, 113, 113, 109, 107, 114, 134, 111, 118, 109, 115, 108, 114, 109, 116, 114, 112, 111, 114, 102, 113, 109, 113, 110, 115, 110, 117, 92, 120, 110, 113, 108, 111, 113, 121, 109, 109, 108, 105, 109, 107, 101, 108, 103, 105, 104, 112, 109, 105, 118, 108, 103, 103, 118, 104, 118, 108, 120, 119, 126, 114, 100, 113, 104, 115, 109, 106, 108, 139, 117, 105, 112, 109, 106, 134, 113, 108, 110, 118, 105, 110, 109, 110, 115, 106, 103, 115, 138, 120, 99, 116, 123, 101, 102, 107, 111, 113, 113, 107, 110, 112, 122, 108, 104, 105, 108, 112, 110, 109, 112, 112, 115, 112, 105, 108, 104, 104, 111, 147, 107, 103, 106, 124, 111, 120, 109, 112, 104, 118, 115, 107, 100, 117, 114, 122, 109, 116, 113, 111, 109, 109, 107, 112, 113, 106, 112, 110, 114, 105, 120, 111, 117, 113, 113, 111, 111, 120, 114, 106, 109, 110, 107, 107, 112, 110, 147, 118, 117, 110, 111, 113, 114, 97, 114, 114, 113, 111, 114, 111, 104, 102, 117, 108, 110, 111, 108, 104, 113, 115, 110, 110, 112, 109, 114, 110, 114, 104, 120, 100, 128, 108, 116, 111, 110, 110, 115, 109, 123, 94, 109, 111, 108, 106, 105, 113, 115, 108, 103, 120, 108, 103, 121, 119, 110, 107, 109, 103, 106, 119, 119, 115, 117, 102, 112, 117, 112, 105, 116, 114, 120, 107, 110, 100, 102, 117, 113, 116, 109, 111, 107, 111, 105, 107, 108, 109, 109, 111, 112, 114, 110, 105, 118, 115, 103, 109, 116, 107, 134, 114, 112, 113, 106, 110, 100, 137, 113, 115, 100, 111, 104, 113, 93, 113, 101, 115, 116, 117, 111, 97, 115, 111, 121, 109, 111, 120, 112, 103, 110, 115, 103, 106, 105, 110, 115, 112, 119, 110, 102, 112, 102, 111, 86, 119, 111, 114, 129, 113, 115, 114, 117, 115, 108, 109, 110, 106, 140, 109, 117, 113, 132, 111, 115, 119, 117, 110, 111, 117, 106, 111, 116, 112, 109, 105, 109, 114, 116, 99, 111, 108, 107, 104, 107, 113, 112, 104, 111, 102, 111, 110, 109, 107, 110, 112, 107, 100, 112, 106, 108, 109, 115, 114, 99, 110, 105, 110, 106, 112, 115, 121, 120, 111, 111, 111, 129, 106, 105, 110, 108, 111, 111, 108, 112, 110, 100, 106, 110, 110, 110, 117, 100, 110, 99, 113, 111, 110, 103, 102, 106, 113, 107, 114, 111, 118, 110, 104, 106, 109, 116, 108, 108, 109, 114, 113, 108, 111, 106, 106, 110, 112, 101, 115, 105, 105, 106, 106, 121, 106, 106, 113, 115, 109, 107, 111, 109, 107, 111, 110, 109, 108, 79, 103, 101, 112, 124, 104, 108, 113, 110, 110, 114, 114, 113, 114, 104, 112, 114, 107, 115, 108, 104, 107, 111, 107, 109, 111, 111, 109, 106, 102, 110, 110, 114, 114, 112, 111, 94, 111, 109, 108, 103, 108, 121, 106, 112, 118, 104, 106, 110, 112, 115, 104, 117, 125, 112, 116, 100, 106, 108, 109, 125, 115, 109, 113, 111, 110, 115, 105, 102, 115, 114, 116, 108, 109, 111, 115, 108, 109, 106, 113, 109, 109, 112, 109, 118, 108, 109, 126, 116, 110, 111, 108, 112, 113, 112, 110, 111, 107, 117, 112, 107, 137, 103, 114, 104, 111, 109, 113, 110, 109, 118, 109, 112, 107, 110, 118, 111, 109, 105, 115, 113, 113, 109, 110, 111, 114, 117, 112, 108, 112, 117, 111, 107, 116, 114, 110, 110, 110, 114, 107, 109, 116, 106, 108, 107, 113, 108, 109, 108, 114, 107, 108, 107, 124, 111, 109, 112, 108, 111, 115, 109, 112, 108, 105, 110, 104, 104, 108, 101, 112, 112, 89, 108, 111, 107, 109, 104, 110, 107, 109, 112, 112, 111, 117, 119, 108, 101, 115, 113, 116, 114, 109, 110, 110, 112, 110, 124, 118, 108, 113, 110, 110, 111, 110, 112, 104, 109, 112, 108, 109, 108, 107, 111, 111, 114, 110, 107, 108, 102, 107, 103, 109, 125, 108, 109, 106, 114, 105, 113, 110, 107, 111, 109, 101, 103, 116, 107, 114, 109, 111, 114, 110, 112, 112, 107, 108, 119, 110, 106, 112, 111, 107, 105, 113, 105, 112, 89, 107, 107, 109, 109, 106, 112, 117, 102, 117, 108, 110, 108, 109, 111, 116, 113, 112, 106, 112, 106, 113, 109, 112, 108, 111, 107, 92, 110, 108, 109, 115, 112, 102, 113, 106, 115, 110, 112, 114, 78, 113, 112, 108, 111, 113, 125, 110, 113, 104, 107, 104, 116, 109, 110, 111, 102, 106, 104, 111, 114, 112, 107, 103, 112, 108, 107, 114, 110, 102, 108, 105, 125, 95, 104, 110, 110, 109, 116, 103, 107, 118, 106, 110, 104, 118, 106, 101, 111, 110, 111, 112, 111, 115, 119, 117, 109, 110, 115, 107, 108, 109, 113, 110, 113, 110, 110, 110, 108, 112, 110, 92, 130, 111, 114, 112, 104, 148, 111, 114, 111, 114, 108, 112, 115, 112, 120, 113, 113, 113, 112, 108, 113, 106, 102, 110, 112, 111, 109, 116, 110, 117, 105, 106, 112, 109, 109, 113, 115, 115, 107, 112, 112, 109, 108, 112, 108, 106, 107, 121, 109, 112, 114, 117, 120, 113, 113, 107, 109, 113, 114, 112, 108, 109, 108, 113, 107, 111, 112, 109, 108, 107, 110, 91, 111, 114, 106, 110, 108, 119, 110, 97, 106, 116, 109, 111, 105, 94, 99, 109, 109, 81, 113, 101, 109, 111, 108, 101, 112, 105, 101, 121, 108, 100, 109, 113, 105, 111, 109, 114, 112, 115, 104, 113, 109, 117, 105, 102, 105, 96, 103, 103, 109, 109, 116, 114, 104, 112, 111, 105, 112, 118, 114, 117, 117, 113, 113, 112, 106, 91, 106, 96, 114, 106, 112, 113, 111, 115, 119, 120, 111, 112, 109, 111, 107, 86, 105, 112, 107, 109, 112, 109, 108, 89, 104, 107, 108, 94, 104, 107, 111, 102, 110, 114, 109, 111, 108, 98, 111, 110, 117, 113, 111, 107, 116, 91, 114, 96, 116, 120, 110, 115, 115, 109, 109, 109, 111, 119, 96, 111, 107, 104, 115, 112, 119, 94, 114, 108, 109, 102, 102, 115, 119, 106, 101, 105, 110, 113, 112, 89, 111, 107, 93, 103, 99, 108, 115, 118, 102, 113, 110, 109, 113, 115, 112, 114, 109, 113, 96, 89, 104, 108, 104, 112, 117, 106, 110, 113, 109, 110, 112, 114, 102, 109, 110, 104, 108, 90, 108, 117, 118, 109, 107, 112, 115, 110, 98, 105, 129, 119, 117, 110, 117, 87, 94, 112, 116, 112, 109, 110, 109, 107, 115, 114, 117, 118, 96, 136, 116, 112, 113, 96, 100, 108, 102, 106, 113, 110, 105, 120, 114, 110, 100, 115, 92, 119, 110, 92, 88, 103, 109, 112, 113, 98, 99, 110, 113, 110, 108, 114, 108, 110, 109, 118, 98, 120, 101, 114, 108, 108, 111, 117, 110, 105, 112, 109, 117, 111, 110, 109, 103, 120, 108, 112, 113, 116, 110, 103, 111, 96, 121, 114, 94, 104, 110, 84, 101, 106, 110, 120, 109, 112, 108, 108, 112, 110, 112, 110, 116, 103, 123, 112, 117, 118, 113, 121, 100, 104, 114, 110, 105, 109, 93, 112, 99, 111, 118, 111, 106, 108, 106, 111, 107, 118, 104, 120, 114, 95, 116, 111, 110, 106, 113, 104, 113, 103, 126, 116, 115, 113, 109, 105, 112, 113, 105, 110, 105, 105, 112, 103, 119, 119, 110, 109, 107, 115, 102, 115, 110, 109, 110, 97, 104, 105, 113, 106, 112, 110, 110, 96, 107, 119, 112, 102, 103, 111, 108, 99, 118, 112, 126, 113, 114, 100, 104, 88, 109, 120, 114, 114, 110, 108, 110, 111, 103, 110, 114, 104, 108, 105, 100, 108, 109, 74, 112, 111, 127, 114, 121, 95, 118, 111, 87, 128, 113, 92, 109, 113, 115, 103, 107, 114, 104, 113, 107, 117, 106, 111, 113, 115, 118, 106, 114, 115, 117, 89, 115, 115, 110, 111, 118, 107, 111, 113, 106, 99, 105, 111, 119, 107, 110, 108, 110, 111, 102, 101, 108, 97, 105, 110, 104, 104, 89, 110, 115, 114, 109, 126, 116, 112, 119, 117, 110, 115, 107, 109, 115, 109, 94, 112, 115, 116, 87, 113, 98, 109, 106, 117, 83, 108, 110, 107, 114, 112, 98, 109, 110, 117, 100, 115, 102, 113, 93, 93, 99, 87, 89, 105, 125, 121, 109, 107, 117, 110, 98, 113, 116, 122, 109, 96, 103, 105, 115, 103, 106, 109, 108, 117, 116, 112, 115, 144, 107, 107, 102, 109, 111, 116, 113, 109, 126, 109, 101, 115, 94, 102, 100, 103, 97, 105, 105, 105, 108, 106, 101, 122, 110, 114, 95, 113, 105, 119, 104, 106, 102, 99, 113, 110, 113, 121, 109, 112, 106, 113, 105, 116, 105, 109, 96, 110, 103, 108, 108, 106, 104, 119, 111, 107, 101, 101, 120, 103, 116, 113, 103, 133, 118, 121, 118, 113, 111, 108, 108, 112, 126, 112, 114, 110, 105, 118, 119, 109, 110, 103, 116, 100, 103, 103, 109, 105, 116, 118, 104, 109, 110, 117, 99, 111, 115, 108, 114, 118, 102, 116, 112, 120, 109, 107, 108, 105, 107, 106, 115, 109, 115, 101, 124, 112, 119, 113, 113, 115, 118, 102, 111, 95, 96, 103, 121, 112, 108, 113, 118, 107, 108, 102, 108, 99, 108, 103, 104, 110, 111, 105, 121, 106, 114, 136, 109, 106, 111, 115, 111, 113, 107, 108, 111, 106, 102, 128, 115, 95, 109, 113, 101, 112, 104, 115, 108, 120, 114, 110, 100, 105, 109, 115, 100, 111, 111, 108, 103, 122, 126, 109, 86, 120, 110, 117, 128, 111, 111, 113, 86, 109, 104, 102, 106, 105, 107, 99, 106, 120, 98, 111, 119, 97, 107, 111, 100, 93, 111, 110, 101, 109, 105, 100, 114, 119, 124, 110, 119, 116, 121, 104, 105, 108, 114, 109, 105, 113, 111, 112, 109, 124, 105, 102, 114, 106, 115, 107, 111, 97, 113, 114, 113, 109, 114, 115, 119, 114, 100, 110, 104, 94, 118, 111, 114, 98, 120, 124, 106, 105, 108, 119, 103, 103, 114, 106, 106, 112, 118, 101, 126, 115, 123, 105, 99, 99, 112, 104, 121, 110, 110, 110, 115, 106, 105, 116, 108, 106, 113, 120, 114, 102, 118, 117, 104, 106, 102, 107, 109, 117, 113, 112, 98, 89, 110, 97, 110, 115, 109, 103, 111, 106, 118, 115, 100, 113, 110, 110, 108, 134, 119, 107, 109, 113, 104, 103, 109, 107, 125, 109, 107, 102, 97, 113, 112, 101, 105, 106, 86, 121, 111, 110, 115, 111, 118, 114, 103, 107, 115, 108, 114, 102, 131, 107, 111, 109, 110, 112, 111, 105, 115, 106, 122, 109, 103, 111, 89, 111, 109, 98, 114, 94, 103, 114, 109, 119, 113, 107, 116, 108, 110, 100, 110, 111, 101, 115, 114, 120, 108, 108, 111, 112, 112, 98, 107, 119, 119, 100, 112, 117, 106, 118, 113, 109, 96, 96, 107, 107, 96, 108, 115, 103, 107, 107, 114, 128, 109, 112, 99, 104, 103, 101, 102, 113, 113, 110, 115, 107, 103, 106, 102, 106, 103, 108, 108, 109, 129, 115, 102, 114, 105, 100, 105, 105, 110, 101, 97, 98, 105, 110, 110, 114, 107, 120, 109, 113, 104, 113, 107, 104, 119, 107, 114, 112, 111, 100, 103, 96, 99, 100, 112, 124, 114, 109, 95, 118, 106, 106, 102, 117, 117, 104, 95, 102, 113, 113, 111, 95, 98, 110, 97, 105, 115, 120, 109, 111, 112, 115, 127, 114, 106, 108, 111, 104, 123, 123, 105, 122, 113, 108, 107, 113, 108, 100, 101, 107, 84, 110, 96, 107, 116, 110, 115, 109, 110, 122, 121, 119, 100, 115, 105, 115, 120, 112, 97, 115, 105, 100, 109, 112, 121, 109, 102, 116, 106, 113, 95, 112, 103, 107, 107, 97, 107, 105, 113, 99, 120, 113, 108, 119, 99, 100, 84, 106, 111, 103, 104, 117, 95, 124, 106, 111, 112, 93, 108, 102, 97, 116, 115, 126, 106, 115, 105, 128, 101, 103, 106, 111, 112, 115, 99, 106, 109, 117, 100, 107, 108, 107, 115, 107, 107, 111, 110, 120, 108, 111, 117, 119, 117, 103, 107, 114, 109, 116, 113, 103, 109, 114, 122, 97, 116, 117, 123, 114, 103, 109, 117, 111, 116, 121, 102, 105, 116, 105, 104, 106, 121, 98, 101, 121, 105, 97, 103, 108, 113, 112, 119, 95, 114, 117, 104, 115, 109, 113, 112, 105, 117, 100, 107, 120, 114, 123, 110, 118, 117, 108, 111, 106, 113, 101, 106, 111, 100, 113, 92, 110, 109, 102, 108, 113, 119, 101, 132, 102, 111, 108, 97, 112, 112, 114, 114, 121, 91, 113, 114, 115, 107, 104, 109, 100, 110, 109, 109, 116, 114, 103, 110, 107, 116, 87, 94, 104, 113, 107, 120, 108, 122, 109, 108, 113, 104, 101, 110, 119, 100, 117, 109, 111, 98, 108, 111, 108, 108, 108, 101, 115, 103, 120, 91, 116, 112, 107, 108, 113, 108, 105, 107, 124, 106, 104, 107, 113, 105, 123, 109, 104, 124, 107, 116, 111, 90, 116, 117, 104, 111, 115, 113, 107, 111, 100, 109, 115, 107, 109, 115, 113, 114, 107, 108, 110, 110, 124, 103, 111, 106, 109, 109, 125, 104, 113, 117, 118, 112, 109, 122, 110, 103, 109, 104, 98, 97, 113, 105, 107, 112, 107, 101, 113, 115, 102, 114, 101, 128, 119, 105, 108, 108, 115, 110, 111, 113, 101, 105, 114, 104, 98, 104, 108, 117, 103, 109, 102, 112, 110, 98, 116, 94, 100, 111, 111, 105, 95, 106, 102, 106, 120, 109, 112, 104, 113, 108, 100, 109, 120, 114, 124, 110, 110, 111, 126, 105, 106, 106, 122, 102, 106, 102, 117, 108, 117, 111, 99, 103, 99, 100, 98, 98, 109, 125, 119, 115, 120, 117, 104, 125, 110, 110, 101, 103, 102, 113, 120, 107, 100, 105, 94, 120, 112, 129, 119, 105, 110, 115, 106, 111, 112, 119, 124, 120, 108, 106, 106, 106, 109, 118, 104, 113, 105, 122, 117, 109, 110, 109, 111, 111, 124, 104, 120, 118, 107, 136, 120, 102, 109, 115, 109, 116, 112, 115, 126, 114, 110, 115, 115, 103, 112, 109, 94, 104, 115, 114, 107, 107, 106, 99, 106, 106, 113, 108, 98, 103, 118, 124, 122, 103, 100, 122, 120, 121, 104, 113, 124, 108, 115, 111, 110, 111, 115, 112, 115, 125, 105, 105, 108, 110, 109, 114, 110, 115, 105, 112, 113, 99, 109, 120, 104, 107, 119, 105, 115, 99, 118, 110, 110, 106, 114, 110, 111, 111, 108, 107, 127, 110, 106, 110, 112, 108, 109, 111, 110, 106, 105, 111, 112, 106, 113, 110, 110, 107, 112, 112, 110, 111, 108, 108, 103, 109, 110, 110, 110, 108, 114, 112, 111, 111, 111, 110, 113, 110, 108, 108, 106, 107, 113, 108, 110, 111, 105, 107, 109, 109, 104, 108, 112, 103, 107, 114, 107, 109, 97, 107, 112, 107, 117, 110, 103, 111, 109, 110, 110, 110, 111, 108, 112, 108, 111, 110, 104, 109, 119, 110, 111, 113, 108, 105, 108, 108, 106, 107, 111, 110, 116, 113, 109, 105, 111, 120, 111, 110, 113, 110, 110, 112, 111, 111, 113, 108, 111, 119, 114, 108, 114, 110, 110, 110, 111, 113, 108, 111, 113, 112, 110, 112, 106, 105, 110, 110, 109, 110, 111, 109, 112, 107, 110, 108, 112, 113, 113, 108, 111, 110, 113, 110, 112, 108, 109, 110, 108, 110, 115, 107, 123, 113, 115, 112, 111, 106, 109, 114, 111, 110, 110, 117, 109, 111, 115, 107, 125, 104, 111, 110, 110, 108, 111, 110, 109, 117, 109, 110, 105, 110, 113, 110, 123, 115, 109, 109, 106, 113, 109, 106, 114, 109, 112, 110, 112, 110, 114, 105, 109, 109, 114, 114, 112, 104, 109, 107, 105, 97, 107, 112, 115, 109, 116, 110, 108, 113, 110, 109, 110, 117, 111, 114, 108, 114, 109, 110, 109, 117, 115, 111, 108, 108, 110, 109, 108, 112, 112, 109, 107, 109, 112, 110, 110, 110, 111, 109, 110, 117, 105, 109, 107, 109, 112, 112, 112, 112, 111, 106, 111, 111, 109, 131, 107, 117, 106, 114, 112, 111, 123, 109, 112, 112, 111, 110, 112, 109, 108, 107, 111, 114, 107, 111, 117, 113, 95, 106, 110, 107, 109, 108, 108, 112, 107, 110, 112, 110, 112, 106, 111, 113, 111, 108, 110, 111, 112, 111, 119, 109, 111, 111, 112, 115, 112, 110, 111, 110, 109, 110, 108, 110, 114, 112, 113, 109, 112, 109, 108, 111, 107, 113, 111, 111, 107, 110, 108, 110, 109, 85, 110, 110, 112, 113, 108, 110, 110, 106, 112, 113, 107, 110, 107, 110, 111, 112, 112, 105, 113, 108, 115, 105, 112, 110, 108, 111, 109, 110, 114, 111, 112, 111, 106, 108, 112, 108, 110, 109, 109, 114, 112, 111, 112, 111, 113, 111, 111, 108, 111, 102, 107, 109, 110, 109, 111, 112, 104, 111, 111, 108, 111, 112, 109, 111, 110, 111, 111, 113, 110, 108, 102, 112, 111, 111, 108, 110, 115, 112, 121, 104, 108, 112, 112, 124, 114, 116, 108, 108, 114, 110, 111, 112, 106, 110, 108, 111, 112, 107, 110, 110, 110, 109, 112, 112, 107, 110, 111, 109, 111, 110, 114, 111, 111, 110, 110, 108, 107, 109, 111, 111, 112, 111, 128, 109, 107, 114, 109, 111, 112, 107, 110, 108, 112, 112, 112, 113, 112, 115, 113, 112, 110, 118, 110, 110, 109, 111, 109, 107, 113, 113, 112, 108, 109, 105, 105, 110, 107, 112, 110, 110, 109, 103, 115, 91, 119, 110, 113, 111, 107, 112, 111, 110, 112, 108, 111, 107, 109, 105, 109, 111, 113, 109, 104, 110, 108, 117, 102, 111, 141, 114, 107, 97, 101, 109, 111, 102, 105, 108, 112, 108, 115, 107, 115, 108, 116, 109, 102, 112, 116, 109, 109, 112, 100, 109, 114, 104, 99, 107, 113, 108, 114, 112, 117, 107, 108, 107, 108, 111, 111, 103, 94, 100, 103, 125, 120, 116, 113, 114, 115, 115, 108, 116, 109, 115, 101, 105, 115, 107, 119, 102, 104, 101, 111, 109, 96, 116, 109, 100, 103, 107, 112, 116, 109, 110, 118, 120, 111, 117, 114, 105, 99, 113, 122, 101, 107, 106, 105, 115, 106, 111, 113, 111, 115, 118, 115, 105, 120, 111, 110, 107, 117, 107, 109, 111, 97, 114, 107, 116, 111, 115, 108, 108, 106, 107, 102, 108, 109, 115, 114, 106, 109, 110, 118, 110, 111, 112, 112, 112, 116, 112, 100, 113, 111, 111, 108, 116, 108, 103, 109, 110, 110, 118, 110, 90, 103, 108, 111, 105, 101, 112, 105, 110, 112, 112, 100, 101, 117, 111, 114, 107, 111, 119, 118, 100, 116, 110, 104, 109, 107, 105, 113, 113, 105, 106, 115, 92, 110, 105, 110, 102, 116, 90, 102, 110, 113, 148, 107, 100, 112, 129, 116, 112, 112, 113, 88, 118, 118, 116, 104, 113, 102, 108, 105, 111, 114, 121, 108, 119, 96, 106, 105, 110, 108, 106, 109, 111, 107, 109, 113, 120, 102, 106, 114, 113, 115, 108, 107, 111, 108, 108, 104, 113, 107, 100, 121, 109, 102, 113, 113, 107, 116, 112, 114, 113, 102, 105, 101, 114, 103, 115, 110, 103, 123, 116, 115, 95, 120, 117, 114, 117, 108, 114, 96, 108, 104, 105, 108, 109, 105, 108, 107, 135, 120, 94, 108, 105, 111, 111, 107, 110, 122, 112, 108, 108, 108, 121, 97, 108, 131, 108, 109, 108, 107, 107, 117, 128, 121, 101, 114, 120, 108, 109, 105, 107, 102, 110, 110, 133, 114, 102, 112, 132, 111, 121, 115, 98, 105, 106, 107, 98, 104, 107, 98, 111, 107, 107, 109, 109, 106, 111, 108, 100, 110, 106, 126, 107, 111, 122, 112, 102, 117, 107, 106, 102, 103, 106, 107, 103, 110, 109, 118, 111, 102, 119, 111, 111, 106, 111, 112, 115, 119, 109, 115, 118, 111, 111, 104, 114, 102, 103, 130, 108, 108, 106, 110, 106, 109, 110, 116, 108, 123, 117, 101, 129, 107, 103, 101, 98, 98, 105, 110, 116, 113, 107, 100, 110, 108, 107, 110, 114, 116, 108, 109, 111, 108, 107, 113, 105, 112, 105, 119, 105, 109, 107, 114, 108, 121, 116, 119, 106, 104, 114, 112, 107, 113, 116, 105, 112, 116, 107, 101, 106, 112, 109, 113, 108, 105, 105, 108, 114, 105, 106, 127, 107, 113, 105, 134, 104, 115, 111, 111, 111, 110, 103, 110, 114, 124, 112, 102, 114, 113, 106, 100, 105, 103, 131, 106, 107, 103, 114, 102, 111, 112, 116, 99, 108, 113, 106, 107, 118, 114, 117, 103, 110, 107, 107, 116, 97, 100, 108, 106, 113, 109, 102, 113, 113, 111, 109, 111, 112, 117, 108, 112, 102, 121, 108, 127, 116, 105, 111, 114, 108, 108, 97, 120, 115, 107, 115, 110, 115, 117, 110, 112, 112, 113, 113, 106, 105, 106, 105, 108, 118, 127, 107, 107, 104, 111, 111, 114, 113, 113, 122, 106, 97, 110, 112, 101, 132, 124, 110, 112, 98, 103, 109, 104, 102, 118, 115, 102, 133, 108, 113, 99, 107, 114, 118, 117, 111, 109, 111, 100, 106, 111, 100, 128, 113, 114, 121, 112, 107, 110, 89, 138, 104, 107, 125, 112, 111, 122, 108, 113, 113, 95, 106, 112, 113, 112, 115, 115, 117, 98, 109, 134, 115, 115, 120, 105, 117, 86, 109, 112, 120, 111, 101, 91, 115, 115, 108, 100, 108, 110, 113, 113, 103, 109, 113, 103, 107, 110, 110, 110, 111, 99, 116, 127, 107, 118, 109, 107, 108, 103, 115, 108, 114, 132, 118, 123, 104, 110, 116, 110, 115, 113, 103, 108, 107, 118, 104, 105, 114, 121, 109, 108, 96, 109, 121, 113, 103, 119, 109, 113, 113, 107, 103, 117, 112, 100, 107, 105, 108, 107, 103, 108, 119, 101, 108, 108, 112, 106, 102, 115, 110, 113, 112, 103, 98, 108, 122, 109, 101, 104, 111, 133, 109, 128, 109, 132, 106, 129, 97, 107, 101, 93, 111, 111, 109, 107, 135, 117, 118, 99, 118, 100, 106, 109, 116, 107, 120, 121, 123, 126, 116, 104, 109, 110, 113, 109, 96, 96, 107, 122, 100, 128, 123, 107, 119, 102, 126, 111, 103, 101, 115, 112, 110, 107, 120, 111, 106, 110, 114, 109, 111, 99, 106, 109, 107, 94, 109, 107, 113, 113, 103, 107, 113, 106, 117, 94, 95, 109, 98, 113, 118, 138, 112, 115, 107, 103, 109, 110, 112, 111, 97, 118, 108, 117, 108, 107, 114, 113, 114, 107, 107, 97, 102, 103, 107, 111, 121, 106, 122, 120, 118, 105, 111, 127, 114, 110, 118, 115, 120, 114, 111, 126, 113, 112, 108, 111, 113, 104, 109, 103, 101, 111, 107, 114, 110, 103, 107, 112, 110, 114, 111, 107, 113, 112, 109, 105, 101, 108, 110, 115, 114, 105, 118, 112, 104, 124, 111, 115, 113, 100, 118, 119, 113, 115, 113, 108, 113, 115, 112, 111, 105, 106, 97, 112, 102, 116, 106, 102, 113, 106, 111, 124, 98, 111, 106, 106, 106, 119, 113, 112, 102, 119, 104, 105, 106, 101, 113, 109, 108, 110, 106, 102, 92, 127, 110, 112, 114, 106, 105, 125, 109, 105, 115, 115, 106, 107, 114, 103, 101, 106, 106, 121, 102, 99, 108, 110, 113, 110, 100, 112, 107, 108, 109, 114, 112, 107, 108, 111, 116, 110, 115, 103, 109, 136, 111, 108, 107, 109, 106, 123, 112, 108, 102, 95, 110, 141, 108, 116, 84, 102, 109, 102, 101, 106, 116, 104, 116, 108, 109, 100, 107, 114, 107, 112, 112, 113, 109, 112, 110, 104, 108, 104, 100, 107, 109, 119, 110, 119, 116, 112, 81, 109, 111, 101, 106, 114, 134, 108, 101, 113, 108, 115, 114, 118, 113, 112, 108, 111, 113, 110, 110, 112, 108, 111, 112, 109, 109, 112, 113, 112, 106, 111, 112, 106, 108, 110, 106, 109, 114, 109, 108, 108, 110, 110, 112, 112, 116, 105, 109, 111, 110, 107, 109, 107, 110, 107, 110, 109, 102, 110, 108, 110, 113, 104, 112, 113, 114, 108, 117, 111, 115, 109, 109, 109, 110, 111, 109, 108, 111, 112, 113, 106, 110, 113, 112, 114, 109, 113, 112, 111, 110, 110, 108, 110, 113, 113, 115, 112, 112, 114, 109, 107, 105, 113, 108, 109, 106, 111, 111, 108, 115, 111, 110, 106, 109, 108, 112, 100, 109, 109, 111, 112, 112, 109, 109, 115, 109, 109, 112, 108, 112, 108, 107, 108, 112, 111, 112, 110, 114, 109, 110, 112, 115, 110, 109, 104, 110, 110, 108, 109, 100, 114, 101, 113, 113, 108, 110, 112, 106, 99, 109, 113, 110, 120, 109, 109, 111, 111, 101, 109, 110, 111, 108, 109, 111, 110, 113, 107, 112, 115, 112, 116, 111, 112, 106, 112, 109, 112, 107, 113, 110, 110, 117, 107, 109, 106, 114, 122, 114, 110, 114, 108, 113, 113, 113, 112, 112, 115, 109, 110, 109, 110, 106, 116, 115, 109, 114, 112, 111, 111, 111, 111, 111, 110, 107, 108, 106, 110, 105, 106, 113, 106, 112, 110, 108, 106, 113, 107, 110, 108, 105, 112, 87, 111, 110, 110, 107, 130, 114, 110, 103, 110, 111, 112, 104, 113, 109, 113, 107, 112, 107, 109, 109, 110, 107, 106, 110, 110, 107, 111, 106, 109, 110, 113, 113, 113, 111, 109, 114, 114, 113, 109, 112, 116, 111, 108, 110, 108, 109, 112, 110, 112, 121, 110, 113, 104, 106, 105, 109, 110, 99, 110, 108, 112, 112, 110, 112, 110, 110, 115, 101, 107, 110, 109, 107, 108, 111, 109, 107, 109, 117, 113, 111, 110, 109, 113, 110, 110, 112, 114, 115, 114, 112, 106, 111, 110, 112, 111, 111, 110, 105, 110, 113, 113, 112, 110, 106, 106, 108, 112, 110, 108, 108, 111, 108, 112, 112, 110, 111, 113, 112, 91, 106, 112, 111, 108, 112, 110, 112, 109, 111, 115, 112, 111, 110, 108, 112, 108, 106, 114, 111, 106, 106, 114, 110, 107, 105, 108, 112, 123, 108, 112, 114, 87, 115, 117, 108, 114, 109, 105, 108, 107, 108, 113, 110, 120, 110, 109, 113, 113, 107, 126, 112, 111, 114, 109, 108, 112, 112, 111, 105, 113, 118, 110, 110, 115, 113, 111, 115, 110, 109, 107, 120, 105, 109, 105, 113, 116, 111, 112, 108, 111, 113, 105, 107, 113, 106, 118, 113, 110, 109, 110, 107, 107, 112, 113, 114, 110, 110, 111, 108, 112, 101, 111, 114, 99, 116, 111, 111, 108, 112, 112, 136, 109, 109, 108, 109, 109, 107, 112, 107, 114, 109, 117, 112, 111, 111, 110, 113, 111, 108, 110, 104, 111, 112, 108, 109, 105, 109, 112, 111, 109, 106, 112, 114, 109, 107, 113, 106, 106, 111, 111, 113, 113, 109, 115, 110, 110, 113, 111, 107, 111, 113, 111, 109, 106, 110, 108, 110, 109, 107, 119, 110, 98, 106, 114, 100, 111, 112, 108, 112, 114, 110, 107, 104, 107, 134, 104, 114, 110, 115, 109, 116, 116, 117, 113, 123, 116, 108, 110, 117, 115, 128, 103, 108, 113, 111, 119, 120, 109, 118, 112, 115, 111, 113, 114, 114, 110, 110, 106, 113, 103, 107, 106, 110, 116, 131, 110, 105, 109, 114, 109, 106, 101, 118, 110, 109, 109, 103, 117, 101, 111, 114, 105, 111, 110, 115, 108, 112, 107, 110, 115, 110, 99, 108, 110, 108, 105, 104, 110, 110, 114, 112, 124, 103, 106, 117, 113, 105, 118, 111, 106, 122, 119, 114, 115, 110, 110, 118, 105, 107, 111, 119, 118, 106, 106, 109, 122, 115, 103, 123, 107, 107, 110, 103, 116, 106, 108, 107, 111, 104, 119, 113, 105, 110, 105, 106, 120, 116, 112, 103, 109, 110, 115, 109, 109, 127, 110, 110, 109, 106, 110, 110, 106, 111, 109, 105, 118, 119, 116, 107, 102, 112, 110, 109, 107, 117, 104, 108, 110, 106, 111, 115, 111, 107, 127, 113, 110, 108, 110, 115, 107, 105, 108, 111, 114, 108, 108, 112, 119, 101, 115, 110, 113, 109, 110, 113, 108, 115, 107, 101, 111, 109, 114, 114, 113, 107, 114, 113, 113, 113, 106, 111, 104, 103, 101, 107, 111, 119, 106, 119, 114, 111, 107, 105, 101, 122, 109, 109, 112, 111, 113, 110, 116, 107, 112, 106, 111, 105, 107, 113, 103, 114, 108, 117, 106, 115, 109, 109, 109, 117, 110, 106, 119, 109, 111, 109, 108, 108, 116, 113, 111, 104, 104, 112, 115, 123, 116, 85, 109, 112, 108, 114, 112, 109, 109, 110, 112, 109, 112, 114, 107, 105, 107, 107, 110, 110, 109, 109, 99, 133, 113, 104, 113, 114, 100, 111, 113, 107, 115, 110, 105, 114, 105, 111, 109, 105, 122, 110, 112, 119, 119, 115, 108, 105, 112, 113, 111, 100, 108, 111, 128, 108, 124, 110, 106, 111, 106, 125, 136, 109, 112, 120, 110, 100, 104, 108, 104, 111, 110, 99, 105, 131, 102, 106, 126, 107, 112, 115, 106, 105, 104, 93, 118, 130, 104, 108, 122, 109, 112, 114, 126, 103, 106, 113, 113, 116, 106, 110, 99, 111, 104, 114, 111, 112, 99, 111, 109, 105, 115, 100, 110, 111, 106, 112, 112, 109, 106, 115, 107, 100, 111, 101, 95, 118, 110, 110, 107, 104, 111, 119, 111, 104, 106, 105, 110, 122, 108, 108, 114, 105, 107, 112, 113, 107, 113, 108, 106, 100, 102, 110, 115, 113, 106, 111, 117, 107, 103, 108, 107, 106, 103, 103, 110, 119, 106, 111, 111, 109, 111, 112, 112, 122, 110, 105, 99, 111, 110, 108, 111, 105, 108, 117, 111, 101, 103, 107, 111, 107, 112, 120, 113, 108, 116, 111, 105, 121, 108, 114, 115, 116, 118, 127, 108, 102, 91, 112, 106, 118, 105, 107, 109, 102, 118, 108, 109, 104, 102, 113, 111, 106, 117, 100, 116, 109, 112, 115, 105, 105, 110, 109, 110, 119, 108, 105, 117, 103, 112, 104, 118, 100, 110, 115, 108, 89, 110, 105, 106, 99, 107, 112, 105, 110, 119, 112, 107, 114, 107, 97, 90, 100, 99, 114, 109, 109, 108, 94, 110, 125, 122, 108, 110, 99, 118, 117, 98, 110, 117, 103, 112, 116, 114, 107, 104, 101, 118, 114, 107, 107, 111, 113, 114, 116, 111, 112, 105, 107, 94, 111, 108, 80, 112, 112, 112, 108, 117, 108, 102, 128, 116, 113, 125, 99, 116, 103, 110, 108, 113, 103, 113, 111, 110, 121, 99, 114, 106, 106, 109, 104, 115, 116, 113, 115, 105, 108, 109, 108, 107, 114, 113, 99, 113, 110, 112, 117, 105, 112, 115, 114, 106, 109, 116, 114, 108, 108, 102, 101, 111, 116, 113, 120, 125, 108, 113, 108, 109, 111, 105, 112, 110, 91, 107, 106, 108, 112, 105, 111, 102, 116, 118, 115, 111, 110, 117, 103, 114, 112, 112, 95, 111, 112, 106, 111, 116, 108, 104, 106, 111, 117, 120, 108, 106, 113, 107, 108, 111, 108, 112, 108, 107, 113, 99, 115, 128, 115, 114, 113, 107, 116, 105, 107, 106, 102, 110, 114, 108, 102, 100, 104, 113, 111, 111, 121, 121, 100, 128, 104, 113, 112, 107, 111, 115, 127, 106, 108, 113, 111, 121, 105, 109, 118, 110, 102, 114, 108, 105, 104, 111, 109, 106, 113, 117, 105, 78, 103, 111, 109, 111, 111, 112, 113, 113, 110, 108, 109, 124, 104, 106, 114, 114, 107, 116, 110, 109, 104, 118, 116, 113, 107, 118, 114, 117, 107, 105, 96, 100, 112, 110, 111, 106, 103, 111, 116, 117, 105, 118, 103, 112, 94, 95, 108, 113, 100, 116, 112, 107, 106, 110, 112, 103, 113, 118, 119, 108, 109, 112, 114, 113, 117, 107, 115, 108, 113, 119, 106, 115, 113, 106, 110, 115, 95, 115, 111, 113, 108, 118, 104, 116, 106, 98, 93, 109, 117, 111, 122, 107, 101, 117, 106, 110, 111, 118, 107, 105, 101, 120, 104, 110, 112, 115, 122, 80, 112, 113, 128, 114, 98, 111, 117, 107, 101, 111, 116, 110, 113, 115, 109, 103, 107, 115, 120, 117, 108, 119, 100, 105, 114, 108, 107, 110, 111, 117, 106, 115, 107, 101, 181, 112, 119, 120, 113, 118, 107, 111, 117, 100, 108, 107, 107, 107, 110, 115, 123, 105, 121, 110, 104, 117, 111, 106, 108, 115, 114, 114, 109, 109, 147, 122, 91, 114, 123, 105, 114, 105, 118, 105, 109, 111, 120, 109, 117, 104, 108, 98, 106, 110, 107, 111, 116, 109, 126, 112, 113, 111, 114, 111, 111, 115, 121, 106, 109, 106, 111, 101, 115, 115, 111, 109, 109, 106, 111, 102, 106, 120, 103, 117, 105, 117, 105, 102, 114, 107, 103, 119, 113, 110, 107, 128, 120, 108, 154, 103, 110, 108, 110, 103, 112, 113, 102, 110, 113, 110, 115, 95, 90, 108, 103, 105, 109, 93, 104, 103, 122, 106, 112, 106, 103, 104, 111, 109, 110, 108, 114, 115, 101, 120, 105, 111, 113, 109, 107, 114, 107, 112, 109, 101, 104, 106, 102, 114, 116, 112, 107, 109, 115, 105, 110, 112, 139, 102, 111, 111, 102, 107, 102, 111, 105, 113, 106, 107, 109, 106, 108, 110, 107, 114, 111, 107, 110, 114, 109, 109, 112, 125, 109, 108, 111, 107, 115, 106, 106, 111, 108, 111, 109, 112, 111, 114, 114, 111, 105, 115, 111, 114, 112, 99, 110, 106, 106, 112, 107, 100, 112, 115, 118, 100, 102, 109, 108, 113, 109, 110, 109, 109, 107, 114, 113, 106, 106, 110, 107, 103, 108, 112, 111, 110, 110, 116, 106, 104, 118, 109, 115, 101, 107, 114, 103, 106, 104, 111, 112, 118, 104, 107, 113, 111, 113, 107, 110, 109, 113, 102, 114, 110, 108, 105, 110, 113, 107, 107, 113, 113, 105, 111, 110, 94, 95, 109, 105, 114, 114, 110, 109, 110, 108, 111, 115, 118, 107, 114, 108, 108, 113, 103, 113, 113, 110, 106, 117, 111, 109, 106, 112, 110, 113, 115, 108, 113, 107, 104, 107, 105, 109, 110, 107, 109, 113, 102, 112, 111, 127, 103, 113, 107, 107, 110, 110, 113, 103, 113, 111, 102, 105, 106, 108, 105, 133, 110, 111, 110, 107, 115, 114, 109, 104, 110, 102, 111, 105, 108, 110, 110, 104, 105, 107, 106, 110, 106, 105, 106, 117, 108, 113, 111, 111, 108, 107, 111, 114, 108, 116, 109, 107, 109, 112, 102, 104, 108, 103, 111, 110, 120, 109, 110, 113, 113, 116, 123, 110, 115, 110, 115, 99, 109, 118, 104, 116, 109, 108, 105, 113, 128, 110, 113, 99, 112, 109, 114, 110, 107, 136, 109, 124, 107, 101, 117, 112, 114, 111, 117, 108, 105, 112, 106, 114, 114, 112, 109, 109, 113, 107, 112, 112, 119, 111, 119, 112, 113, 117, 108, 109, 120, 105, 105, 105, 108, 113, 111, 119, 108, 108, 105, 112, 110, 110, 112, 113, 110, 112, 107, 117, 111, 109, 111, 115, 103, 111, 113, 117, 104, 109, 117, 111, 108, 119, 112, 107, 113, 107, 109, 106, 116, 108, 112, 109, 110, 107, 109, 107, 107, 102, 108, 111, 110, 104, 110, 109, 115, 106, 109, 109, 112, 116, 111, 111, 107, 107, 111, 110, 99, 109, 113, 108, 112, 112, 108, 111, 107, 112, 112, 110, 109, 104, 114, 105, 114, 102, 114, 113, 112, 104, 110, 107, 107, 110, 112, 107, 105, 110, 111, 105, 110, 112, 108, 109, 114, 106, 114, 114, 110, 107, 110, 113, 115, 109, 114, 98, 105, 109, 105, 112, 111, 108, 111, 104, 102, 113, 110, 108, 108, 114, 102, 114, 111, 108, 114, 106, 112, 109, 103, 101, 111, 127, 107, 94, 111, 113, 113, 117, 109, 107, 114, 112, 112, 111, 112, 106, 111, 108, 111, 108, 110, 108, 116, 114, 124, 108, 116, 108, 109, 113, 108, 106, 112, 111, 112, 104, 106, 112, 109, 111, 113, 111, 106, 114, 108, 111, 112, 110, 115, 111, 115, 113, 109, 109, 103, 112, 111, 104, 111, 110, 109, 108, 118, 116, 110, 112, 113, 109, 116, 110, 109, 114, 105, 112, 123, 107, 108, 111, 107, 114, 107, 107, 106, 114, 110, 110, 106, 114, 106, 110, 110, 106, 106, 108, 109, 110, 108, 111, 115, 102, 104, 111, 105, 111, 112, 106, 112, 110, 112, 104, 114, 109, 109, 111, 110, 109, 132, 110, 109, 106, 115, 112, 114, 101, 113, 114, 111, 101, 111, 107, 109, 105, 109, 114, 117, 105, 106, 105, 118, 108, 108, 110, 110, 110, 122, 114, 110, 116, 110, 110, 100, 106, 112, 103, 110, 112, 114, 108, 109, 108, 109, 103, 112, 110, 110, 114, 109, 106, 109, 117, 111, 110, 109, 109, 102, 111, 107, 112, 111, 110, 109, 103, 110, 113, 107, 115, 107, 101, 107, 102, 107, 112, 105, 107, 104, 105, 112, 106, 106, 109, 107, 111, 110, 127, 107, 109, 107, 104, 109, 116, 112, 104, 108, 117, 119, 109, 112, 110, 106, 104, 109, 110, 108, 114, 108, 106, 109, 108, 110, 115, 114, 109, 110, 116, 107, 116, 109, 118, 112, 109, 105, 114, 108, 112, 112, 110, 106, 109, 109, 112, 112, 115, 110, 99, 108, 104, 114, 105, 98, 111, 111, 105, 108, 119, 113, 110, 110, 102, 113, 106, 103, 108, 110, 110, 107, 114, 111, 119, 109, 110, 112, 105, 104, 107, 106, 105, 114, 103, 102, 120, 110, 109, 109, 108, 99, 111, 109, 107, 107, 108, 107, 110, 109, 104, 110, 115, 106, 113, 107, 107, 116, 107, 115, 109, 115, 106, 111, 114, 112, 106, 110, 109, 111, 114, 115, 111, 116, 110, 113, 107, 112, 108, 104, 109, 107, 123, 88, 116, 119, 113, 114, 111, 110, 112, 111, 110, 114, 110, 108, 114, 108, 108, 110, 113, 109, 112, 107, 113, 112, 114, 108, 110, 108, 107, 107, 113, 104, 116, 110, 108, 111, 111, 106, 102, 99, 108, 108, 116, 106, 108, 107, 106, 118, 105, 99, 106, 110, 114, 108, 112, 112, 112, 104, 105, 113, 108, 119, 118, 107, 106, 107, 104, 110, 110, 109, 108, 111, 108, 112, 108, 111, 114, 107, 110, 105, 102, 106, 111, 105, 112, 105, 110, 100, 108, 105, 104, 112, 115, 109, 115, 108, 104, 113, 113, 121, 108, 106, 108, 110, 113, 109, 108, 111, 102, 109, 85, 110, 101, 110, 101, 107, 109, 109, 117, 109, 107, 108, 97, 110, 107, 108, 112, 112, 108, 113, 109, 109, 110, 110, 108, 108, 113, 110, 104, 99, 106, 125, 109, 111, 108, 117, 106, 106, 108, 100, 116, 114, 104, 102, 109, 118, 113, 109, 114, 107, 113, 116, 103, 112, 108, 113, 114, 106, 104, 89, 106, 110, 109, 112, 106, 106, 102, 107, 110, 112, 106, 110, 112, 115, 102, 108, 119, 101, 113, 122, 104, 98, 116, 102, 114, 121, 111, 114, 107, 110, 112, 107, 109, 103, 113, 118, 117, 110, 114, 109, 108, 114, 105, 106, 111, 105, 112, 110, 125, 114, 110, 102, 108, 117, 110, 105, 107, 105, 98, 115, 111, 110, 109, 107, 105, 105, 117, 112, 112, 108, 106, 103, 111, 114, 108, 110, 110, 110, 109, 106, 116, 109, 117, 106, 107, 111, 105, 112, 108, 119, 112, 117, 105, 105, 113, 118, 107, 112, 111, 114, 115, 117, 119, 112, 112, 115, 103, 111, 109, 113, 109, 120, 112, 110, 105, 105, 106, 100, 108, 115, 105, 113, 110, 114, 116, 109, 111, 111, 105, 116, 113, 109, 112, 107, 118, 107, 102, 107, 113, 95, 112, 105, 117, 116, 112, 116, 127, 114, 110, 114, 116, 115, 112, 112, 109, 108, 114, 113, 118, 120, 112, 115, 118, 106, 111, 99, 112, 112, 112, 109, 115, 112, 104, 113, 111, 108, 115, 109, 108, 102, 99, 115, 110, 110, 115, 114, 104, 116, 111, 113, 116, 109, 110, 114, 112, 103, 111, 106, 112, 107, 116, 105, 113, 110, 108, 108, 115, 113, 113, 116, 112, 112, 104, 111, 115, 108, 113, 107, 111, 109, 112, 112, 118, 111, 118, 112, 97, 113, 113, 109, 104, 107, 122, 112, 115, 116, 107, 109, 92, 111, 108, 115, 104, 121, 108, 113, 114, 106, 104, 107, 108, 111, 112, 118, 106, 110, 107, 119, 108, 109, 116, 113, 121, 112, 107, 112, 112, 120, 110, 110, 111, 105, 113, 115, 118, 107, 114, 109, 111, 131, 116, 110, 117, 114, 105, 109, 115, 108, 120, 104, 111, 108, 116, 114, 112, 108, 112, 110, 111, 114, 108, 111, 114, 109, 114, 118, 114, 108, 102, 107, 102, 100, 102, 114, 107, 115, 109, 106, 116, 114, 106, 112, 110, 111, 111, 110, 108, 115, 114, 115, 111, 109, 110, 108, 109, 111, 110, 103, 101, 113, 107, 113, 115, 113, 104, 110, 112, 107, 112, 116, 114, 107, 115, 115, 109, 107, 107, 111, 105, 120, 117, 112, 110, 119, 112, 123, 104, 116, 112, 113, 107, 107, 117, 112, 119, 110, 111, 108, 108, 112, 111, 104, 107, 114, 105, 104, 121, 116, 109, 104, 110, 111, 104, 122, 93, 112, 117, 112, 106, 110, 112, 106, 111, 107, 114, 112, 105, 112, 103, 117, 110, 112, 112, 115, 105, 121, 115, 112, 112, 109, 117, 104, 107, 120, 116, 109, 111, 102, 116, 106, 115, 112, 111, 106, 112, 105, 119, 109, 102, 115, 106, 108, 110, 110, 109, 109, 100, 109, 105, 106, 108, 102, 113, 107, 106, 106, 107, 109, 103, 110, 110, 103, 114, 118, 151, 109, 115, 116, 106, 111, 114, 87, 116, 109, 115, 117, 110, 105, 109, 114, 114, 113, 107, 112, 103, 105, 105, 108, 88, 117, 112, 108, 115, 112, 106, 109, 111, 116, 108, 111, 107, 120, 112, 113, 110, 106, 108, 114, 109, 110, 109, 105, 108, 113, 110, 97, 114, 113, 103, 111, 101, 110, 108, 113, 109, 112, 109, 118, 115, 117, 112, 109, 110, 127, 114, 112, 110, 115, 112, 98, 117, 110, 107, 108, 117, 104, 103, 113, 113, 113, 111, 110, 109, 105, 108, 115, 115, 113, 112, 110, 111, 108, 107, 118, 117, 115, 105, 110, 124, 115, 113, 102, 105, 112, 110, 104, 113, 110, 108, 109, 120, 110, 121, 103, 108, 108, 112, 110, 113, 111, 104, 108, 110, 116, 121, 114, 120, 115, 109, 118, 107, 116, 108, 110, 122, 109, 104, 103, 101, 118, 113, 99, 94, 124, 101, 108, 115, 109, 106, 107, 112, 110, 106, 113, 109, 110, 109, 110, 107, 119, 109, 102, 113, 106, 108, 107, 109, 111, 110, 115, 107, 115, 106, 111, 116, 107, 112, 112, 103, 110, 104, 106, 109, 119, 102, 110, 109, 98, 114, 107, 107, 110, 99, 105, 111, 117, 112, 111, 109, 110, 110, 104, 108, 114, 109, 106, 110, 111, 107, 107, 113, 109, 119, 111, 108, 108, 106, 119, 102, 101, 118, 108, 111, 110, 111, 96, 114, 111, 111, 115, 112, 121, 115, 108, 114, 116, 106, 102, 113, 101, 119, 107, 102, 111, 119, 104, 110, 106, 102, 117, 105, 101, 111, 104, 108, 89, 99, 108, 109, 113, 94, 109, 110, 107, 110, 112, 104, 106, 111, 114, 106, 100, 111, 107, 104, 110, 112, 110, 120, 122, 107, 122, 119, 98, 109, 105, 107, 106, 112, 111, 101, 108, 111, 109, 111, 106, 106, 104, 110, 111, 99, 106, 112, 109, 105, 108, 111, 111, 109, 109, 108, 97, 109, 105, 112, 99, 104, 108, 109, 107, 112, 111, 115, 107, 109, 108, 111, 110, 98, 108, 99, 107, 105, 118, 111, 110, 103, 113, 110, 122, 109, 123, 109, 118, 113, 94, 112, 109, 105, 107, 107, 105, 105, 109, 105, 106, 104, 111, 111, 111, 115, 109, 109, 108, 99, 108, 106, 112, 111, 111, 104, 111, 115, 104, 101, 112, 110, 102, 113, 106, 103, 100, 116, 103, 112, 112, 113, 127, 118, 113, 108, 110, 103, 106, 111, 108, 112, 109, 107, 110, 109, 122, 109, 112, 108, 105, 108, 109, 105, 113, 105, 113, 113, 119, 125, 104, 91, 107, 107, 103, 114, 101, 108, 111, 108, 127, 106, 105, 89, 115, 106, 111, 103, 107, 114, 112, 111, 114, 119, 102, 109, 113, 115, 111, 100, 108, 103, 108, 103, 106, 108, 112, 108, 110, 111, 110, 106, 113, 108, 112, 108, 120, 104, 111, 111, 116, 113, 117, 110, 100, 106, 105, 98, 111, 112, 110, 104, 108, 99, 108, 109, 111, 114, 110, 120, 110, 108, 110, 107, 134, 110, 111, 107, 107, 107, 110, 106, 113, 108, 111, 114, 115, 110, 104, 109, 122, 103, 109, 114, 99, 100, 108, 108, 101, 115, 107, 117, 111, 99, 107, 101, 126, 97, 112, 93, 112, 109, 116, 113, 115, 110, 112, 112, 111, 99, 108, 111, 106, 122, 112, 114, 114, 103, 103, 131, 106, 110, 110, 106, 113, 77, 86, 116, 107, 99, 106, 104, 116, 113, 107, 111, 111, 104, 117, 106, 116, 119, 105, 113, 111, 109, 111, 104, 112, 112, 106, 106, 110, 90, 112, 113, 109, 110, 111, 103, 108, 106, 126, 118, 113, 110, 111, 102, 108, 115, 113, 115, 101, 112, 112, 111, 113, 115, 110, 109, 112, 109, 122, 113, 99, 119, 113, 111, 120, 112, 108, 109, 108, 103, 113, 115, 109, 112, 105, 107, 104, 106, 112, 109, 107, 103, 103, 107, 105, 96, 111, 115, 117, 102, 111, 106, 108, 114, 109, 110, 109, 110, 109, 108, 108, 111, 112, 109, 116, 109, 105, 110, 110, 83, 114, 109, 132, 108, 114, 116, 114, 100, 101, 125, 110, 113, 123, 111, 112, 111, 108, 108, 110, 109, 112, 110, 111, 108, 110, 112, 106, 123, 107, 111, 135, 109, 111, 107, 117, 114, 112, 113, 111, 111, 108, 103, 123, 110, 105, 117, 109, 113, 115, 110, 112, 113, 112, 111, 107, 113, 111, 111, 111, 89, 112, 101, 106, 108, 116, 117, 114, 109, 105, 114, 106, 110, 107, 114, 115, 112, 116, 110, 108, 105, 109, 109, 113, 112, 112, 109, 103, 113, 118, 115, 109, 100, 113, 112, 114, 117, 128, 111, 112, 112, 116, 118, 110, 109, 115, 113, 115, 114, 110, 111, 84, 111, 111, 108, 101, 108, 108, 105, 113, 112, 110, 92, 106, 101, 113, 110, 109, 112, 111, 104, 108, 117, 103, 108, 109, 111, 113, 114, 107, 106, 112, 114, 125, 110, 110, 112, 109, 116, 111, 112, 110, 110, 114, 113, 108, 107, 106, 110, 110, 109, 109, 110, 110, 108, 110, 116, 107, 110, 113, 111, 107, 112, 111, 117, 105, 107, 106, 115, 111, 111, 113, 110, 107, 106, 111, 112, 111, 106, 109, 114, 110, 109, 113, 115, 108, 92, 113, 108, 112, 114, 117, 114, 106, 118, 114, 109, 111, 111, 111, 109, 110, 111, 111, 100, 116, 116, 106, 112, 78, 110, 114, 110, 110, 89, 111, 110, 104, 113, 111, 112, 109, 114, 110, 113, 106, 88, 109, 110, 110, 113, 114, 111, 110, 110, 110, 111, 110, 111, 110, 113, 109, 92, 110, 112, 107, 110, 110, 120, 93, 117, 110, 114, 116, 111, 107, 91, 121, 112, 112, 106, 111, 114, 114, 115, 109, 108, 109, 112, 115, 108, 103, 105, 107, 114, 112, 111, 110, 112, 109, 101, 112, 124, 113, 117, 108, 109, 110, 114, 115, 110, 105, 109, 107, 138, 109, 110, 135, 109, 110, 117, 106, 107, 114, 112, 116, 111, 106, 109, 109, 106, 109, 110, 109, 109, 114, 111, 114, 97, 111, 112, 111, 111, 104, 113, 103, 109, 107, 108, 111, 113, 89, 112, 113, 95, 113, 119, 111, 105, 110, 113, 111, 110, 98, 107, 111, 110, 107, 110, 105, 131, 111, 112, 113, 111, 106, 108, 120, 114, 114, 107, 106, 104, 119, 112, 109, 112, 112, 112, 116, 110, 106, 108, 111, 112, 113, 112, 113, 109, 111, 109, 112, 118, 112, 107, 117, 111, 102, 108, 115, 109, 106, 110, 110, 117, 108, 113, 109, 108, 109, 113, 116, 109, 113, 107, 109, 108, 111, 112, 114, 112, 113, 111, 106, 107, 107, 113, 114, 116, 108, 110, 112, 109, 111, 112, 107, 107, 97, 110, 106, 110, 110, 114, 110, 109, 113, 111, 109, 110, 115, 113, 112, 113, 116, 114, 112, 112, 114, 121, 109, 115, 109, 121, 110, 111, 108, 114, 111, 109, 112, 113, 113, 109, 108, 109, 109, 116, 113, 115, 111, 112, 112, 109, 113, 128, 111, 113, 107, 111, 107, 109, 112, 101, 112, 97, 124, 109, 110, 108, 95, 116, 119, 117, 107, 110, 112, 105, 113, 109, 108, 106, 108, 110, 100, 107, 115, 107, 108, 101, 108, 110, 106, 105, 110, 107, 106, 122, 106, 112, 106, 108, 104, 115, 109, 113, 103, 110, 114, 113, 105, 114, 99, 111, 110, 110, 115, 111, 109, 108, 108, 110, 102, 116, 107, 115, 112, 121, 101, 124, 115, 115, 110, 107, 111, 114, 121, 110, 103, 113, 112, 108, 106, 106, 122, 113, 107, 114, 116, 111, 104, 107, 110, 113, 113, 109, 106, 112, 110, 108, 108, 106, 104, 114, 105, 106, 119, 105, 107, 106, 97, 105, 108, 115, 113, 111, 123, 113, 115, 110, 122, 79, 105, 109, 107, 110, 108, 113, 113, 110, 136, 110, 114, 114, 109, 109, 108, 123, 108, 113, 114, 101, 109, 103, 103, 112, 101, 106, 114, 111, 110, 119, 86, 104, 107, 118, 119, 106, 119, 114, 118, 105, 107, 107, 115, 111, 114, 105, 107, 105, 116, 116, 91, 107, 107, 115, 99, 116, 112, 114, 114, 104, 119, 118, 115, 113, 108, 115, 114, 111, 99, 112, 108, 109, 106, 115, 116, 89, 112, 112, 106, 117, 106, 109, 115, 114, 104, 114, 114, 107, 104, 114, 110, 121, 115, 109, 111, 112, 90, 103, 118, 115, 126, 118, 111, 109, 114, 106, 123, 105, 105, 109, 109, 110, 112, 97, 115, 105, 104, 103, 110, 106, 112, 98, 113, 107, 115, 102, 106, 103, 104, 106, 102, 125, 106, 109, 131, 107, 117, 108, 107, 109, 115, 110, 100, 106, 116, 112, 105, 112, 119, 114, 114, 107, 111, 110, 119, 108, 107, 110, 95, 110, 106, 102, 108, 105, 112, 106, 106, 109, 111, 104, 109, 108, 114, 104, 103, 107, 103, 106, 116, 105, 104, 113, 107, 104, 101, 104, 115, 112, 107, 108, 109, 112, 105, 103, 107, 109, 106, 119, 111, 109, 104, 105, 104, 110, 108, 110, 103, 115, 100, 100, 113, 111, 109, 109, 111, 120, 103, 112, 116, 107, 102, 105, 122, 114, 101, 108, 113, 105, 112, 118, 116, 111, 104, 104, 110, 112, 109, 135, 107, 110, 111, 105, 106, 104, 110, 100, 112, 112, 101, 112, 108, 109, 124, 108, 114, 111, 116, 110, 102, 109, 112, 105, 103, 114, 95, 109, 110, 110, 106, 104, 100, 111, 113, 99, 115, 108, 105, 115, 110, 129, 102, 109, 115, 117, 147, 117, 109, 106, 109, 106, 109, 111, 109, 109, 116, 124, 109, 106, 118, 106, 116, 110, 103, 111, 108, 115, 120, 99, 111, 111, 107, 104, 115, 106, 109, 109, 103, 107, 96, 111, 110, 116, 106, 109, 101, 109, 115, 117, 114, 107, 117, 111, 109, 113, 106, 114, 100, 111, 108, 116, 98, 112, 113, 130, 115, 114, 107, 114, 109, 109, 109, 98, 116, 115, 108, 108, 109, 110, 103, 108, 104, 116, 112, 105, 109, 110, 100, 110, 112, 114, 101, 110, 123, 110, 115, 105, 111, 107, 107, 110, 111, 108, 95, 107, 111, 109, 107, 112, 112, 106, 102, 108, 102, 105, 108, 109, 103, 111, 106, 117, 99, 100, 107, 114, 111, 115, 105, 112, 110, 116, 115, 112, 101, 110, 107, 100, 106, 113, 103, 118, 103, 101, 109, 113, 108, 122, 104, 108, 109, 121, 119, 105, 123, 105, 105, 106, 104, 100, 111, 101, 104, 112, 102, 101, 110, 107, 109, 102, 105, 112, 103, 110, 111, 107, 101, 101, 121, 102, 113, 109, 108, 112, 108, 107, 109, 106, 102, 107, 106, 104, 99, 96, 110, 109, 108, 99, 111, 112, 110, 104, 109, 113, 106, 121, 98, 107, 109, 109, 109, 105, 107, 105, 105, 103, 109, 112, 100, 108, 106, 111, 112, 100, 113, 110, 99, 119, 112, 111, 112, 117, 109, 107, 114, 102, 107, 115, 104, 112, 110, 124, 107, 104, 117, 103, 107, 109, 122, 109, 110, 110, 98, 107, 109, 114, 103, 103, 119, 115, 114, 110, 116, 118, 109, 118, 121, 123, 101, 101, 106, 107, 113, 106, 108, 121, 109, 111, 103, 103, 102, 102, 112, 106, 116, 108, 112, 112, 113, 113, 101, 81, 122, 105, 115, 106, 100, 100, 106, 100, 108, 118, 105, 112, 99, 107, 110, 111, 113, 107, 99, 110, 110, 113, 105, 114, 118, 109, 110, 110, 121, 109, 110, 113, 106, 114, 104, 110, 112, 106, 113, 109, 113, 100, 106, 109, 111, 105, 99, 112, 107, 102, 115, 99, 114, 95, 111, 109, 117, 111, 102, 105, 113, 114, 105, 105, 98, 100, 107, 110, 112, 106, 108, 102, 118, 112, 99, 114, 110, 115, 109, 116, 110, 134, 98, 111, 101, 116, 104, 109, 106, 101, 119, 112, 122, 119, 102, 115, 115, 124, 106, 125, 108, 97, 120, 90, 108, 105, 105, 129, 111, 106, 118, 102, 106, 108, 110, 114, 107, 118, 111, 123, 101, 104, 120, 103, 111, 104, 119, 109, 115, 103, 120, 107, 104, 110, 100, 113, 113, 111, 97, 112, 99, 79, 100, 109, 109, 110, 120, 110, 105, 105, 112, 117, 103, 102, 119, 128, 105, 106, 113, 120, 104, 125, 93, 103, 103, 113, 120, 109, 112, 113, 109, 100, 112, 110, 111, 104, 118, 112, 116, 109, 103, 107, 108, 102, 119, 108, 106, 109, 99, 118, 105, 99, 107, 101, 114, 110, 106, 110, 116, 113, 110, 111, 103, 104, 104, 100, 107, 111, 119, 112, 104, 108, 108, 113, 115, 104, 123, 117, 100, 110, 92, 102, 110, 110, 105, 118, 111, 101, 103, 113, 113, 113, 104, 104, 105, 112, 134, 116, 108, 111, 97, 109, 107, 103, 101, 104, 111, 106, 109, 103, 107, 115, 101, 105, 99, 106, 117, 121, 108, 106, 110, 107, 110, 104, 109, 113, 124, 122, 113, 110, 138, 99, 100, 108, 105, 105, 114, 105, 109, 104, 114, 121, 104, 112, 109, 107, 106, 125, 101, 125, 112, 117, 102, 113, 106, 107, 105, 114, 102, 111, 131, 121, 101, 110, 103, 107, 113, 112, 106, 108, 113, 103, 114, 106, 109, 110, 124, 103, 125, 113, 122, 111, 112, 109, 116, 104, 102, 104, 111, 110, 124, 116, 103, 108, 97, 108, 107, 107, 119, 101, 112, 116, 112, 113, 113, 101, 101, 108, 110, 97, 106, 113, 112, 115, 107, 108, 115, 107, 113, 100, 103, 106, 117, 114, 118, 127, 120, 110, 111, 101, 106, 111, 118, 103, 112, 106, 110, 101, 110, 115, 114, 108, 101, 108, 117, 96, 123, 123, 103, 103, 121, 108, 113, 112, 108, 111, 110, 106, 114, 101, 110, 106, 95, 114, 112, 104, 111, 104, 78, 107, 118, 103, 105, 116, 110, 111, 107, 110, 101, 116, 105, 110, 110, 117, 112, 94, 119, 110, 118, 105, 110, 117, 114, 99, 110, 113, 112, 102, 95, 102, 103, 108, 112, 101, 108, 92, 104, 109, 105, 116, 105, 116, 116, 111, 94, 101, 106, 130, 113, 113, 93, 103, 105, 106, 113, 105, 112, 107, 118, 108, 125, 108, 127, 114, 107, 118, 114, 105, 115, 127, 107, 92, 115, 112, 107, 120, 104, 135, 117, 102, 108, 106, 110, 120, 118, 112, 114, 114, 109, 107, 102, 98, 118, 106, 114, 106, 111, 108, 110, 120, 105, 104, 111, 108, 111, 97, 114, 110, 109, 112, 111, 115, 117, 110, 108, 119, 114, 112, 110, 108, 105, 119, 111, 115, 107, 111, 120, 104, 97, 108, 98, 122, 115, 106, 112, 104, 103, 117, 116, 107, 97, 111, 95, 109, 111, 107, 112, 100, 103, 107, 116, 105, 124, 103, 98, 111, 115, 110, 101, 113, 110, 114, 121, 108, 119, 112, 109, 101, 102, 118, 110, 120, 107, 114, 109, 94, 115, 110, 99, 107, 114, 113, 113, 103, 115, 106, 120, 104, 108, 112, 107, 112, 106, 107, 108, 125, 124, 107, 100, 105, 108, 120, 108, 121, 112, 99, 114, 123, 107, 117, 110, 109, 113, 99, 116, 110, 111, 113, 114, 115, 120, 103, 110, 105, 112, 105, 110, 95, 103, 110, 110, 95, 108, 106, 114, 109, 110, 122, 104, 98, 103, 105, 103, 108, 97, 116, 106, 111, 114, 118, 107, 113, 121, 112, 113, 111, 104, 114, 111, 110, 122, 119, 109, 116, 95, 100, 119, 108, 99, 108, 107, 116, 100, 112, 103, 112, 104, 108, 107, 104, 93, 107, 111, 104, 112, 105, 108, 102, 113, 120, 110, 103, 115, 107, 112, 120, 109, 114, 118, 117, 100, 113, 133, 109, 105, 93, 103, 108, 118, 101, 109, 98, 115, 121, 126, 111, 113, 106, 110, 118, 108, 107, 103, 96, 104, 95, 113, 102, 107, 111, 104, 115, 105, 117, 113, 115, 101, 105, 106, 105, 108, 112, 112, 110, 108, 106, 112, 113, 110, 108, 93, 116, 98, 109, 102, 96, 118, 106, 108, 111, 113, 113, 112, 111, 111, 106, 107, 106, 109, 100, 110, 107, 111, 104, 98, 115, 105, 116, 107, 116, 111, 109, 111, 119, 112, 119, 111, 117, 111, 104, 100, 114, 103, 107, 102, 113, 105, 109, 100, 108, 112, 108, 110, 122, 106, 101, 111, 122, 110, 103, 107, 108, 154, 112, 107, 107, 113, 116, 107, 102, 103, 107, 124, 110, 114, 105, 101, 113, 113, 124, 106, 113, 105, 103, 111, 102, 109, 106, 110, 115, 109, 99, 106, 110, 118, 109, 134, 107, 104, 105, 105, 111, 114, 109, 112, 113, 114, 105, 112, 109, 117, 115, 112, 104, 102, 112, 101, 106, 114, 117, 106, 114, 119, 113, 111, 102, 108, 96, 108, 113, 118, 113, 128, 114, 108, 115, 109, 112, 98, 108, 118, 115, 101, 110, 116, 113, 120, 117, 118, 112, 114, 115, 117, 118, 113, 109, 104, 113, 115, 113, 122, 110, 108, 118, 108, 111, 121, 111, 111, 115, 110, 121, 104, 109, 105, 111, 105, 99, 121, 113, 88, 106, 109, 103, 109, 116, 114, 114, 111, 108, 116, 111, 124, 110, 115, 93, 110, 137, 100, 111, 111, 112, 107, 107, 108, 97, 116, 100, 100, 125, 116, 107, 120, 103, 109, 103, 108, 103, 100, 107, 99, 117, 113, 116, 116, 109, 110, 108, 108, 111, 106, 118, 108, 113, 108, 105, 122, 109, 113, 99, 113, 104, 110, 99, 106, 115, 120, 106, 111, 110, 115, 113, 106, 107, 110, 105, 104, 105, 101, 104, 109, 132, 114, 107, 114, 115, 114, 105, 117, 112, 111, 109, 104, 98, 110, 106, 113, 118, 119, 114, 116, 110, 112, 109, 114, 115, 114, 105, 108, 114, 108, 108, 107, 112, 137, 110, 118, 105, 120, 122, 109, 108, 117, 114, 121, 116, 110, 116, 112, 112, 90, 92, 107, 125, 120, 92, 109, 116, 109, 103, 117, 116, 116, 110, 122, 104, 110, 109, 116, 106, 87, 105, 113, 105, 116, 112, 109, 118, 114, 111, 111, 108, 120, 112, 104, 116, 117, 112, 150, 111, 107, 122, 105, 119, 109, 111, 106, 100, 114, 108, 96, 107, 109, 116, 109, 110, 110, 94, 114, 98, 108, 109, 113, 113, 108, 107, 115, 112, 113, 102, 96, 111, 118, 112, 118, 112, 102, 110, 116, 112, 112, 138, 118, 112, 105, 111, 116, 106, 90, 112, 104, 85, 105, 110, 108, 107, 103, 103, 101, 105, 113, 111, 117, 110, 118, 110, 123, 116, 107, 106, 113, 114, 100, 88, 112, 116, 107, 123, 107, 106, 119, 113, 103, 105, 103, 111, 103, 95, 100, 112, 113, 100, 114, 110, 107, 104, 119, 116, 120, 108, 111, 107, 107, 118, 111, 110, 116, 120, 113, 113, 110, 111, 118, 110, 122, 114, 101, 115, 102, 108, 105, 95, 109, 122, 108, 115, 117, 113, 109, 104, 97, 105, 113, 104, 102, 109, 103, 114, 108, 101, 108, 113, 108, 114, 116, 111, 95, 110, 105, 98, 114, 102, 111, 115, 110, 110, 112, 113, 109, 109, 111, 112, 105, 107, 99, 108, 119, 120, 114, 121, 124, 120, 98, 114, 100, 117, 116, 124, 108, 94, 111, 126, 106, 116, 107, 114, 107, 105, 114, 111, 111, 107, 114, 117, 112, 115, 113, 121, 107, 121, 115, 88, 106, 112, 107, 127, 101, 112, 117, 103, 105, 113, 111, 114, 104, 113, 100, 114, 103, 114, 109, 108, 104, 114, 93, 109, 111, 126, 114, 108, 113, 88, 106, 106, 124, 107, 117, 111, 109, 98, 91, 110, 102, 111, 116, 105, 116, 109, 107, 111, 113, 111, 110, 106, 106, 103, 110, 116, 108, 108, 99, 105, 110, 115, 108, 113, 102, 96, 110, 103, 114, 113, 100, 109, 109, 110, 106, 110, 113, 100, 106, 111, 104, 112, 114, 106, 111, 114, 114, 107, 111, 112, 106, 115, 112, 106, 110, 99, 107, 102, 106, 104, 110, 108, 102, 106, 103, 94, 112, 107, 112, 107, 112, 109, 116, 102, 102, 105, 111, 111, 102, 111, 105, 103, 109, 111, 112, 111, 112, 107, 116, 110, 115, 103, 106, 98, 106, 112, 104, 109, 117, 104, 106, 113, 116, 100, 110, 95, 98, 118, 113, 110, 113, 116, 114, 110, 101, 116, 102, 115, 113, 104, 103, 107, 107, 107, 94, 113, 120, 110, 105, 111, 114, 105, 119, 109, 107, 113, 107, 107, 105, 105, 110, 111, 101, 106, 106, 102, 101, 105, 117, 118, 115, 116, 117, 106, 111, 111, 98, 98, 104, 110, 111, 115, 110, 112, 113, 110, 96, 107, 109, 110, 106, 103, 109, 113, 114, 104, 100, 110, 104, 111, 113, 111, 114, 106, 113, 113, 107, 109, 111, 101, 111, 106, 112, 101, 99, 113, 116, 107, 110, 108, 101, 106, 117, 105, 111, 111, 112, 116, 103, 116, 106, 109, 114, 110, 115, 108, 105, 107, 114, 109, 114, 118, 115, 101, 130, 112, 108, 114, 102, 106, 106, 104, 102, 117, 116, 101, 108, 115, 105, 107, 112, 101, 108, 101, 103, 104, 101, 105, 98, 110, 103, 106, 111, 103, 109, 111, 120, 111, 118, 115, 113, 106, 105, 101, 105, 106, 116, 109, 114, 110, 105, 107, 111, 109, 109, 112, 115, 101, 109, 108, 115, 112, 116, 111, 106, 114, 108, 114, 107, 115, 107, 109, 115, 100, 115, 109, 104, 102, 121, 106, 107, 109, 103, 114, 112, 110, 99, 106, 106, 102, 103, 116, 111, 112, 108, 106, 114, 107, 109, 113, 114, 106, 103, 111, 112, 101, 107, 102, 106, 103, 107, 101, 107, 111, 95, 113, 104, 113, 102, 108, 98, 105, 115, 117, 106, 114, 109, 110, 106, 110, 111, 108, 112, 102, 116, 104, 103, 111, 103, 103, 113, 117, 112, 102, 105, 113, 107, 112, 100, 105, 103, 106, 100, 109, 115, 106, 105, 114, 110, 116, 104, 95, 103, 112, 115, 109, 104, 116, 104, 110, 112, 111, 98, 119, 104, 105, 120, 112, 122, 113, 103, 110, 107, 110, 103, 114, 113, 110, 109, 109, 105, 112, 112, 97, 111, 111, 106, 122, 111, 110, 111, 115, 108, 108, 103, 106, 107, 115, 110, 114, 104, 117, 109, 109, 109, 110, 108, 112, 107, 113, 113, 107, 113, 111, 108, 109, 116, 106, 101, 105, 109, 112, 114, 109, 111, 105, 110, 114, 105, 108, 105, 112, 101, 102, 97, 104, 114, 114, 108, 103, 106, 105, 112, 108, 121, 111, 112, 109, 107, 103, 114, 108, 102, 112, 107, 97, 110, 117, 110, 105, 122, 109, 107, 119, 110, 113, 108, 114, 118, 102, 113, 115, 105, 102, 113, 110, 104, 107, 111, 104, 104, 93, 115, 113, 107, 118, 109, 116, 111, 108, 112, 99, 105, 111, 115, 110, 105, 104, 113, 113, 85, 119, 109, 109, 105, 111, 111, 119, 110, 111, 111, 104, 109, 112, 110, 106, 110, 106, 110, 109, 106, 106, 106, 108, 102, 107, 102, 111, 109, 120, 109, 109, 111, 113, 112, 114, 109, 111, 110, 112, 107, 111, 113, 105, 110, 112, 107, 111, 104, 108, 111, 105, 112, 112, 107, 111, 115, 105, 107, 105, 106, 113, 110, 106, 113, 103, 108, 110, 112, 107, 108, 109, 104, 112, 113, 108, 111, 110, 107, 106, 115, 107, 104, 112, 111, 114, 108, 108, 112, 110, 113, 106, 108, 117, 110, 107, 109, 113, 107, 114, 113, 115, 110, 109, 117, 106, 108, 115, 104, 116, 104, 114, 110, 111, 114, 107, 108, 106, 106, 112, 110, 106, 111, 112, 109, 106, 115, 107, 109, 111, 112, 108, 110, 111, 101, 111, 107, 107, 107, 111, 115, 115, 111, 113, 105, 118, 106, 108, 112, 113, 117, 109, 106, 107, 100, 95, 113, 111, 112, 115, 110, 113, 114, 100, 109, 112, 108, 105, 108, 103, 106, 108, 110, 111, 106, 107, 112, 117, 104, 109, 107, 104, 108, 100, 106, 113, 113, 112, 109, 104, 109, 106, 112, 112, 110, 106, 108, 107, 112, 112, 110, 121, 103, 103, 115, 110, 104, 112, 101, 110, 110, 114, 112, 114, 112, 105, 113, 110, 102, 116, 106, 113, 107, 106, 109, 105, 110, 114, 104, 108, 107, 108, 114, 107, 117, 105, 107, 108, 108, 107, 115, 112, 112, 109, 107, 112, 107, 103, 113, 109, 109, 104, 105, 113, 108, 110, 115, 105, 102, 114, 108, 110, 113, 108, 110, 111, 105, 114, 110, 110, 108, 113, 109, 108, 113, 111, 110, 114, 109, 107, 110, 110, 108, 107, 113, 103, 114, 109, 113, 111, 105, 112, 107, 111, 108, 108, 107, 108, 111, 114, 106, 121, 106, 118, 104, 108, 110, 114, 113, 116, 111, 113, 99, 111, 112, 109, 112, 113, 114, 111, 107, 108, 104, 107, 109, 118, 115, 105, 108, 107, 110, 107, 108, 106, 105, 112, 106, 109, 109, 109, 106, 114, 110, 98, 108, 110, 105, 109, 110, 105, 115, 113, 117, 103, 109, 106, 112, 111, 107, 109, 111, 106, 108, 108, 106, 115, 109, 111, 106, 107, 110, 106, 113, 108, 107, 117, 114, 106, 117, 110, 107, 105, 104, 107, 110, 107, 107, 109, 109, 108, 104, 106, 105, 106, 108, 116, 116, 107, 111, 107, 112, 109, 124, 113, 115, 108, 106, 110, 110, 112, 111, 109, 107, 111, 104, 113, 107, 104, 107, 108, 110, 103, 119, 106, 110, 110, 114, 117, 112, 94, 114, 107, 108, 109, 106, 113, 116, 116, 104, 102, 113, 112, 112, 117, 107, 108, 112, 111, 103, 110, 104, 109, 106, 107, 112, 109, 110, 109, 105, 111, 112, 114, 102, 110, 110, 115, 108, 108, 106, 112, 110, 113, 104, 109, 111, 120, 116, 101, 105, 113, 106, 107, 112, 116, 105, 107, 106, 104, 108, 108, 109, 115, 109, 109, 111, 105, 107, 107, 112, 111, 112, 107, 105, 108, 107, 105, 117, 117, 111, 105, 113, 119, 109, 103, 114, 103, 96, 107, 110, 104, 110, 103, 109, 103, 110, 103, 98, 112, 110, 93, 112, 113, 116, 131, 112, 123, 114, 117, 107, 99, 106, 106, 100, 101, 117, 104, 111, 116, 116, 108, 110, 114, 113, 103, 117, 103, 111, 103, 109, 102, 114, 114, 115, 111, 116, 114, 101, 120, 106, 111, 101, 119, 115, 106, 100, 103, 107, 105, 109, 110, 113, 103, 112, 111, 110, 115, 112, 96, 106, 117, 113, 109, 95, 99, 111, 108, 109, 99, 99, 102, 114, 122, 116, 101, 107, 109, 120, 104, 109, 107, 105, 102, 104, 107, 104, 105, 100, 99, 106, 103, 131, 107, 93, 118, 113, 112, 113, 107, 96, 111, 100, 103, 111, 105, 110, 119, 102, 105, 89, 121, 109, 107, 107, 109, 125, 113, 105, 115, 107, 109, 106, 114, 121, 116, 111, 117, 114, 100, 114, 123, 107, 105, 107, 113, 106, 114, 106, 108, 110, 120, 115, 106, 110, 104, 104, 118, 111, 116, 92, 102, 128, 111, 111, 107, 113, 114, 103, 104, 110, 114, 109, 113, 104, 108, 106, 124, 103, 108, 115, 110, 104, 117, 114, 108, 114, 112, 106, 99, 105, 117, 113, 140, 117, 118, 99, 113, 104, 113, 124, 114, 102, 108, 113, 115, 114, 102, 111, 97, 117, 107, 108, 114, 112, 108, 113, 117, 114, 117, 110, 107, 110, 97, 108, 99, 106, 105, 105, 109, 99, 117, 98, 107, 107, 99, 105, 102, 110, 112, 109, 115, 116, 106, 124, 115, 99, 106, 101, 111, 114, 110, 122, 109, 114, 104, 108, 107, 108, 105, 109, 111, 117, 110, 104, 117, 109, 110, 117, 108, 124, 97, 112, 117, 109, 112, 110, 111, 107, 118, 110, 114, 112, 113, 101, 109, 123, 106, 116, 95, 109, 115, 109, 108, 114, 108, 107, 123, 103, 108, 96, 120, 109, 96, 115, 105, 109, 108, 104, 106, 102, 115, 116, 104, 110, 89, 100, 110, 103, 112, 120, 129, 97, 95, 119, 116, 110, 109, 100, 116, 104, 105, 114, 112, 101, 112, 109, 104, 107, 114, 94, 130, 100, 114, 113, 108, 113, 105, 108, 105, 107, 115, 105, 100, 111, 93, 112, 118, 111, 109, 100, 89, 111, 107, 109, 99, 118, 106, 107, 106, 106, 108, 121, 103, 119, 116, 112, 122, 115, 110, 110, 94, 113, 101, 110, 115, 109, 124, 120, 117, 110, 103, 109, 103, 92, 113, 108, 116, 112, 115, 116, 114, 105, 109, 113, 105, 106, 114, 96, 110, 113, 120, 110, 106, 120, 104, 114, 110, 120, 101, 108, 106, 106, 112, 106, 106, 112, 108, 106, 120, 118, 119, 100, 117, 95, 104, 110, 112, 102, 99, 113, 110, 107, 110, 125, 106, 112, 110, 113, 101, 108, 113, 108, 93, 113, 106, 111, 110, 106, 123, 106, 104, 110, 125, 126, 114, 104, 109, 115, 111, 115, 107, 116, 113, 102, 111, 118, 125, 111, 114, 116, 104, 114, 97, 104, 112, 118, 109, 111, 104, 114, 112, 121, 124, 104, 98, 94, 109, 98, 102, 112, 109, 108, 99, 114, 103, 99, 95, 107, 114, 107, 112, 110, 118, 96, 97, 116, 111, 114, 110, 109, 117, 123, 106, 108, 102, 107, 111, 102, 103, 111, 120, 104, 111, 106, 109, 104, 105, 124, 100, 122, 107, 109, 108, 116, 96, 100, 106, 117, 122, 114, 110, 108, 108, 110, 106, 129, 114, 120, 107, 118, 115, 103, 111, 110, 109, 116, 115, 115, 105, 121, 105, 111, 102, 120, 117, 109, 105, 99, 102, 111, 113, 117, 106, 100, 107, 128, 103, 111, 122, 104, 109, 108, 113, 104, 100, 107, 104, 109, 105, 113, 107, 119, 122, 118, 101, 117, 108, 105, 107, 110, 109, 111, 117, 126, 104, 117, 112, 97, 108, 102, 118, 111, 111, 110, 111, 110, 101, 96, 112, 105, 106, 108, 115, 117, 112, 105, 100, 100, 105, 102, 109, 104, 111, 104, 108, 119, 112, 112, 113, 114, 101, 109, 108, 109, 110, 106, 104, 102, 98, 103, 98, 102, 111, 114, 111, 104, 112, 112, 101, 110, 108, 101, 104, 125, 105, 118, 105, 109, 103, 112, 113, 107, 126, 100, 106, 105, 133, 112, 112, 109, 116, 137, 118, 112, 113, 107, 103, 109, 99, 115, 106, 109, 99, 106, 114, 125, 135, 105, 98, 103, 117, 104, 93, 105, 117, 114, 105, 105, 119, 104, 98, 107, 114, 109, 123, 109, 104, 105, 103, 116, 97, 110, 111, 114, 104, 114, 105, 114, 108, 117, 109, 118, 116, 119, 100, 116, 109, 114, 106, 110, 100, 98, 118, 100, 110, 119, 109, 93, 107, 102, 109, 131, 109, 103, 101, 102, 106, 112, 111, 103, 111, 109, 112, 112, 112, 117, 107, 103, 110, 103, 107, 112, 107, 107, 104, 109, 103, 103, 106, 96, 108, 103, 114, 116, 114, 114, 110, 105, 107, 105, 122, 104, 108, 103, 122, 114, 114, 107, 141, 106, 104, 100, 130, 124, 129, 106, 101, 116, 109, 110, 115, 113, 105, 110, 108, 106, 104, 111, 104, 100, 116, 112, 117, 111, 101, 117, 91, 112, 107, 107, 114, 109, 111, 105, 123, 118, 109, 106, 113, 102, 116, 112, 110, 114, 121, 107, 93, 110, 109, 109, 113, 108, 122, 108, 129, 107, 105, 119, 110, 101, 125, 122, 105, 102, 115, 105, 109, 101, 98, 116, 116, 118, 115, 99, 111, 114, 105, 114, 107, 99, 118, 109, 112, 106, 109, 113, 113, 114, 116, 112, 103, 121, 99, 114, 107, 110, 111, 111, 106, 111, 111, 111, 106, 117, 109, 117, 110, 108, 115, 100, 104, 126, 110, 108, 93, 109, 102, 115, 105, 111, 105, 117, 110, 113, 99, 118, 107, 114, 114, 110, 103, 108, 114, 99, 112, 99, 110, 111, 106, 121, 100, 119, 106, 99, 119, 104, 115, 99, 95, 109, 110, 103, 104, 105, 93, 110, 104, 108, 117, 95, 109, 111, 107, 95, 113, 113, 105, 114, 106, 92, 108, 100, 101, 105, 106, 112, 101, 104, 104, 104, 116, 104, 118, 106, 110, 106, 107, 116, 103, 113, 110, 110, 106, 107, 105, 113, 116, 104, 102, 123, 103, 113, 104, 112, 113, 129, 113, 108, 123, 101, 114, 117, 108, 99, 110, 113, 121, 116, 110, 116, 110, 121, 117, 109, 110, 105, 104, 110, 115, 112, 111, 114, 105, 99, 109, 105, 118, 108, 110, 101, 104, 105, 105, 99, 114, 108, 110, 110, 114, 111, 106, 111, 101, 99, 119, 104, 117, 123, 109, 111, 118, 101, 117, 107, 122, 123, 105, 112, 107, 103, 114, 117, 109, 113, 106, 109, 98, 107, 117, 99, 103, 101, 119, 106, 109, 112, 119, 104, 110, 113, 114, 106, 102, 125, 114, 100, 108, 111, 103, 111, 104, 94, 112, 121, 109, 110, 114, 122, 106, 103, 116, 118, 106, 109, 108, 97, 116, 105, 111, 112, 114, 107, 110, 108, 109, 112, 104, 116, 112, 114, 109, 116, 110, 100, 114, 112, 115, 112, 105, 114, 105, 95, 115, 102, 109, 109, 111, 107, 123, 112, 104, 106, 120, 102, 104, 108, 111, 109, 111, 112, 107, 109, 108, 106, 99, 113, 107, 114, 118, 124, 111, 116, 110, 112, 108, 116, 112, 115, 117, 106, 110, 100, 107, 118, 104, 108, 120, 97, 111, 118, 120, 111, 107, 85, 110, 104, 100, 115, 113, 120, 116, 107, 114, 112, 109, 119, 114, 109, 118, 122, 108, 104, 119, 110, 112, 104, 110, 108, 108, 106, 114, 116, 110, 115, 105, 99, 102, 114, 114, 105, 100, 110, 92, 104, 111, 115, 124, 114, 109, 110, 109, 115, 106, 104, 97, 106, 109, 110, 114, 107, 94, 104, 110, 119, 116, 113, 109, 115, 112, 114, 110, 99, 104, 111, 108, 116, 113, 105, 91, 107, 112, 98, 108, 98, 109, 111, 112, 100, 102, 122, 106, 105, 115, 114, 101, 109, 113, 101, 107, 110, 105, 124, 112, 109, 112, 112, 112, 103, 106, 98, 95, 108, 114, 109, 112, 109, 116, 114, 111, 118, 114, 102, 108, 119, 105, 104, 112, 108, 105, 107, 112, 104, 105, 117, 109, 120, 114, 108, 109, 121, 120, 121, 105, 107, 117, 100, 108, 109, 108, 113, 90, 111, 95, 109, 116, 110, 108, 98, 111, 106, 115, 107, 119, 103, 107, 121, 115, 98, 107, 107, 97, 111, 114, 121, 110, 113, 110, 115, 106, 107, 107, 110, 112, 113, 114, 129, 96, 107, 100, 113, 113, 107, 113, 119, 110, 97, 113, 103, 115, 116, 86, 111, 96, 106, 112, 108, 103, 125, 107, 103, 116, 118, 115, 110, 106, 114, 108, 102, 105, 112, 97, 110, 107, 102, 106, 103, 103, 105, 99, 106, 110, 122, 109, 116, 109, 113, 110, 114, 106, 98, 101, 114, 110, 120, 95, 112, 109, 114, 109, 121, 104, 111, 114, 101, 109, 107, 112, 118, 100, 107, 112, 100, 116, 111, 98, 127, 107, 107, 108, 119, 104, 115, 104, 101, 116, 109, 124, 107, 116, 117, 108, 106, 105, 109, 110, 111, 107, 110, 119, 112, 116, 111, 117, 112, 110, 118, 107, 108, 118, 113, 108, 107, 103, 105, 113, 109, 112, 104, 107, 109, 122, 111, 103, 93, 108, 117, 103, 106, 94, 115, 117, 110, 96, 109, 113, 102, 108, 117, 112, 106, 114, 111, 120, 107, 116, 110, 111, 108, 109, 113, 110, 108, 111, 108, 110, 111, 111, 113, 112, 104, 107, 114, 112, 112, 103, 109, 114, 118, 121, 112, 113, 105, 114, 102, 110, 110, 113, 112, 111, 110, 115, 111, 113, 108, 108, 111, 113, 106, 109, 106, 108, 109, 99, 115, 109, 116, 111, 113, 108, 112, 110, 110, 110, 108, 110, 112, 113, 110, 111, 114, 115, 110, 113, 108, 111, 111, 104, 110, 110, 120, 112, 107, 105, 112, 118, 111, 115, 113, 111, 112, 112, 120, 119, 113, 114, 109, 106, 110, 118, 108, 117, 113, 109, 107, 112, 107, 114, 113, 102, 110, 105, 110, 106, 105, 114, 105, 118, 108, 105, 114, 110, 105, 111, 111, 109, 109, 111, 110, 113, 108, 108, 104, 108, 121, 115, 112, 111, 110, 113, 111, 103, 112, 108, 109, 107, 117, 112, 109, 110, 104, 110, 107, 114, 112, 106, 117, 107, 115, 114, 106, 113, 115, 110, 110, 110, 110, 110, 114, 117, 107, 113, 109, 112, 115, 113, 111, 108, 111, 107, 117, 105, 115, 114, 109, 110, 118, 101, 112, 114, 109, 112, 109, 109, 120, 110, 118, 111, 112, 109, 115, 111, 119, 112, 107, 113, 117, 113, 114, 115, 110, 112, 112, 113, 113, 123, 109, 118, 105, 109, 111, 107, 106, 110, 107, 110, 109, 110, 103, 111, 114, 112, 109, 109, 109, 107, 111, 113, 107, 112, 113, 114, 109, 112, 112, 107, 116, 115, 107, 110, 108, 109, 118, 111, 114, 106, 106, 109, 117, 104, 106, 112, 118, 113, 112, 113, 114, 111, 110, 123, 111, 108, 109, 112, 112, 111, 111, 114, 113, 113, 111, 107, 113, 105, 115, 102, 109, 112, 111, 114, 112, 111, 114, 121, 107, 107, 115, 111, 107, 114, 108, 113, 114, 113, 109, 110, 105, 113, 110, 105, 107, 112, 103, 109, 107, 109, 107, 111, 103, 107, 112, 110, 117, 109, 110, 108, 112, 119, 107, 112, 110, 112, 107, 109, 114, 107, 111, 106, 108, 106, 112, 109, 107, 112, 110, 109, 108, 105, 112, 111, 108, 120, 108, 109, 110, 108, 108, 105, 112, 108, 109, 105, 110, 110, 109, 110, 104, 116, 109, 108, 109, 110, 113, 111, 113, 105, 109, 108, 111, 113, 105, 109, 110, 109, 110, 117, 107, 113, 113, 117, 115, 110, 113, 111, 112, 101, 100, 108, 107, 115, 106, 111, 111, 99, 108, 109, 107, 112, 117, 112, 106, 105, 115, 106, 113, 114, 112, 109, 107, 114, 109, 114, 112, 106, 110, 107, 107, 114, 113, 109, 112, 108, 111, 107, 114, 111, 106, 112, 109, 104, 112, 112, 111, 111, 115, 112, 108, 113, 118, 112, 116, 117, 108, 97, 116, 108, 107, 110, 114, 110, 119, 108, 112, 115, 114, 111, 111, 113, 113, 119, 102, 112, 111, 108, 103, 109, 91, 113, 113, 113, 106, 109, 113, 112, 112, 110, 106, 111, 114, 110, 112, 109, 114, 111, 108, 112, 109, 108, 110, 111, 114, 113, 113, 115, 110, 109, 113, 113, 108, 112, 104, 102, 111, 123, 108, 113, 109, 100, 107, 109, 106, 110, 113, 113, 111, 107, 107, 110, 109, 107, 108, 110, 113, 109, 114, 105, 109, 111, 111, 113, 107, 107, 109, 111, 102, 110, 105, 106, 107, 110, 114, 105, 112, 107, 109, 109, 110, 115, 114, 107, 104, 120, 110, 113, 109, 114, 111, 109, 101, 108, 110, 107, 112, 113, 106, 110, 111, 113, 109, 114, 109, 110, 114, 102, 110, 105, 115, 108, 110, 113, 118, 112, 102, 105, 114, 107, 103, 106, 106, 114, 105, 110, 110, 112, 108, 116, 109, 106, 109, 110, 111, 108, 108, 115, 105, 107, 113, 104, 113, 104, 108, 112, 108, 104, 109, 116, 116, 116, 106, 109, 108, 110, 113, 102, 116, 112, 113, 110, 115, 110, 112, 109, 109, 104, 111, 107, 110, 106, 102, 108, 108, 112, 102, 104, 109, 104, 110, 110, 107, 106, 111, 111, 107, 106, 115, 107, 108, 117, 101, 118, 115, 111, 106, 113, 108, 111, 109, 109, 111, 105, 111, 106, 104, 110, 103, 110, 107, 112, 107, 120, 108, 113, 106, 112, 109, 118, 105, 112, 108, 119, 107, 116, 113, 116, 108, 107, 113, 113, 112, 100, 111, 105, 105, 124, 113, 113, 109, 113, 103, 109, 115, 115, 111, 106, 99, 106, 106, 111, 105, 106, 105, 106, 109, 110, 105, 111, 117, 104, 106, 116, 106, 100, 106, 107, 107, 110, 115, 107, 115, 112, 111, 107, 105, 115, 108, 103, 110, 113, 107, 115, 111, 106, 123, 113, 114, 110, 106, 110, 109, 108, 109, 110, 108, 107, 116, 104, 107, 106, 109, 105, 109, 113, 115, 103, 107, 106, 110, 108, 114, 102, 113, 112, 111, 101, 114, 114, 113, 110, 106, 109, 119, 115, 115, 110, 104, 110, 107, 109, 105, 109, 107, 116, 106, 114, 102, 112, 108, 104, 98, 104, 102, 115, 108, 112, 108, 107, 108, 103, 106, 106, 113, 111, 105, 103, 113, 114, 105, 111, 109, 113, 109, 115, 111, 109, 107, 107, 111, 110, 109, 107, 116, 112, 109, 123, 110, 114, 103, 112, 108, 102, 112, 107, 106, 114, 115, 106, 108, 110, 106, 110, 108, 101, 111, 110, 110, 110, 110, 109, 122, 110, 113, 103, 112, 113, 104, 119, 110, 103, 114, 130, 109, 110, 106, 111, 117, 116, 106, 105, 107, 116, 116, 108, 101, 116, 112, 102, 114, 103, 103, 114, 110, 110, 108, 115, 118, 115, 115, 112, 115, 107, 105, 107, 114, 108, 113, 111, 114, 109, 127, 111, 105, 108, 118, 110, 112, 110, 104, 103, 113, 112, 107, 109, 113, 101, 106, 110, 106, 109, 107, 111, 106, 112, 110, 108, 112, 106, 111, 110, 107, 101, 111, 113, 109, 116, 115, 104, 105, 107, 109, 107, 105, 125, 107, 108, 110, 106, 104, 107, 108, 107, 101, 103, 103, 104, 110, 105, 103, 109, 117, 110, 104, 110, 108, 109, 107, 106, 113, 110, 113, 116, 118, 108, 115, 105, 108, 109, 103, 109, 119, 109, 110, 112, 106, 104, 107, 115, 115, 103, 108, 104, 108, 111, 115, 110, 109, 104, 111, 109, 108, 98, 123, 106, 106, 114, 109, 116, 111, 111, 110, 110, 110, 106, 109, 109, 118, 109, 109, 115, 108, 109, 109, 111, 110, 109, 114, 116, 107, 109, 106, 110, 106, 110, 101, 110, 107, 105, 109, 108, 107, 106, 118, 112, 109, 112, 104, 113, 110, 110, 115, 110, 108, 106, 131, 118, 109, 111, 111, 106, 108, 117, 107, 114, 108, 108, 116, 113, 118, 113, 107, 114, 111, 122, 110, 106, 109, 114, 115, 105, 117, 111, 121, 112, 111, 105, 109, 105, 110, 116, 104, 108, 106, 112, 113, 111, 111, 116, 106, 90, 106, 108, 106, 105, 106, 109, 105, 107, 100, 115, 120, 108, 110, 111, 111, 108, 113, 111, 109, 108, 113, 108, 112, 121, 109, 108, 104, 108, 124, 114, 96, 109, 121, 110, 108, 111, 112, 105, 108, 108, 114, 105, 94, 110, 110, 110, 109, 109, 115, 102, 114, 103, 114, 103, 115, 108, 113, 101, 117, 102, 112, 113, 108, 105, 111, 113, 101, 122, 109, 105, 98, 107, 106, 108, 105, 112, 109, 105, 107, 108, 110, 113, 121, 113, 110, 113, 110, 110, 109, 110, 108, 114, 121, 110, 114, 108, 116, 111, 132, 118, 127, 107, 107, 111, 93, 113, 109, 112, 118, 109, 109, 102, 108, 108, 111, 104, 113, 113, 110, 107, 110, 110, 112, 108, 113, 117, 107, 106, 108, 107, 109, 114, 109, 111, 114, 108, 112, 107, 103, 109, 103, 111, 103, 115, 115, 113, 116, 108, 118, 102, 114, 107, 112, 128, 116, 118, 112, 106, 116, 117, 111, 109, 105, 112, 108, 110, 106, 107, 114, 114, 108, 110, 112, 109, 116, 114, 85, 110, 100, 102, 99, 110, 113, 115, 113, 108, 108, 106, 103, 119, 108, 105, 112, 113, 112, 110, 111, 107, 111, 114, 108, 109, 115, 108, 104, 112, 115, 110, 116, 106, 109, 112, 111, 107, 110, 111, 108, 117, 106, 129, 120, 118, 112, 113, 115, 110, 107, 113, 103, 111, 111, 97, 111, 112, 108, 106, 119, 111, 114, 107, 111, 118, 111, 109, 112, 109, 109, 111, 128, 112, 107, 113, 118, 109, 112, 108, 111, 110, 114, 115, 114, 106, 109, 114, 104, 106, 111, 108, 111, 103, 108, 110, 111, 113, 113, 116, 112, 113, 112, 106, 107, 92, 111, 110, 110, 108, 109, 120, 112, 112, 106, 109, 114, 108, 107, 108, 105, 111, 107, 121, 123, 110, 113, 113, 113, 112, 112, 106, 109, 118, 110, 109, 108, 106, 108, 96, 111, 105, 109, 115, 112, 111, 113, 115, 107, 109, 111, 114, 114, 109, 111, 108, 112, 113, 108, 106, 108, 105, 107, 112, 109, 104, 109, 105, 112, 116, 114, 109, 109, 107, 106, 105, 106, 107, 110, 107, 108, 109, 111, 109, 114, 112, 111, 109, 106, 111, 108, 113, 109, 108, 108, 113, 110, 107, 113, 111, 113, 116, 110, 113, 120, 106, 108, 118, 113, 114, 106, 110, 106, 107, 114, 106, 108, 125, 117, 112, 108, 105, 114, 114, 105, 106, 112, 107, 109, 115, 123, 114, 106, 113, 114, 112, 106, 112, 109, 116, 101, 109, 113, 104, 115, 94, 107, 109, 113, 100, 114, 112, 113, 116, 104, 124, 115, 109, 109, 116, 97, 97, 114, 103, 109, 102, 99, 106, 105, 104, 102, 114, 117, 105, 101, 108, 113, 111, 121, 114, 98, 120, 100, 117, 112, 122, 103, 117, 115, 102, 116, 92, 121, 116, 109, 119, 101, 117, 113, 105, 92, 105, 109, 112, 109, 112, 109, 102, 102, 114, 107, 120, 129, 107, 113, 101, 105, 105, 102, 122, 109, 103, 104, 124, 106, 121, 101, 113, 121, 109, 110, 94, 115, 112, 113, 104, 110, 109, 112, 123, 107, 135, 111, 103, 100, 113, 113, 105, 111, 131, 111, 109, 115, 119, 105, 119, 107, 114, 110, 109, 105, 107, 114, 117, 106, 107, 98, 97, 113, 107, 124, 108, 103, 115, 119, 112, 99, 112, 109, 108, 116, 114, 114, 101, 102, 103, 102, 130, 101, 114, 117, 109, 111, 108, 100, 105, 109, 105, 122, 105, 110, 96, 95, 110, 108, 102, 102, 111, 92, 110, 116, 105, 108, 115, 105, 138, 102, 117, 117, 102, 106, 114, 116, 114, 106, 117, 107, 103, 108, 100, 117, 116, 103, 110, 100, 113, 130, 120, 114, 119, 102, 105, 107, 111, 109, 118, 112, 113, 116, 105, 104, 122, 105, 135, 106, 110, 110, 100, 120, 109, 111, 98, 110, 109, 108, 108, 113, 102, 105, 104, 102, 118, 119, 118, 122, 109, 112, 115, 117, 128, 124, 104, 109, 108, 110, 113, 116, 112, 114, 103, 114, 109, 115, 114, 127, 109, 106, 97, 119, 110, 110, 125, 114, 118, 112, 114, 108, 114, 102, 112, 114, 116, 100, 109, 98, 114, 103, 112, 116, 111, 107, 137, 109, 120, 104, 105, 112, 109, 113, 113, 113, 111, 138, 102, 105, 114, 102, 109, 107, 110, 104, 91, 108, 100, 111, 115, 98, 113, 120, 108, 109, 123, 116, 109, 105, 103, 113, 115, 104, 106, 108, 111, 103, 119, 118, 103, 121, 101, 124, 110, 98, 95, 125, 107, 116, 128, 93, 104, 102, 121, 120, 95, 101, 93, 115, 114, 108, 107, 113, 118, 114, 107, 113, 115, 115, 108, 109, 111, 100, 110, 121, 117, 106, 111, 107, 112, 112, 94, 121, 103, 115, 112, 114, 115, 113, 105, 106, 105, 112, 117, 104, 111, 107, 99, 111, 130, 125, 98, 100, 106, 115, 114, 117, 117, 97, 123, 112, 101, 117, 132, 117, 110, 117, 106, 114, 103, 122, 112, 112, 103, 107, 102, 114, 98, 98, 106, 106, 114, 118, 113, 105, 106, 107, 105, 106, 116, 121, 117, 111, 117, 99, 112, 99, 133, 111, 104, 124, 108, 103, 117, 113, 116, 114, 122, 108, 115, 112, 113, 105, 89, 119, 107, 97, 108, 111, 100, 118, 105, 108, 115, 109, 83, 118, 120, 128, 110, 105, 118, 116, 114, 104, 105, 99, 103, 114, 113, 114, 108, 116, 115, 108, 101, 119, 99, 115, 114, 109, 116, 114, 97, 108, 111, 113, 104, 108, 108, 118, 113, 101, 87, 115, 117, 116, 95, 108, 102, 129, 101, 110, 107, 115, 108, 102, 109, 119, 108, 110, 119, 103, 110, 104, 90, 108, 111, 112, 118, 106, 113, 119, 105, 104, 105, 98, 107, 103, 110, 111, 108, 109, 100, 111, 126, 109, 112, 114, 103, 117, 112, 110, 118, 116, 113, 104, 109, 107, 99, 105, 98, 108, 112, 105, 112, 107, 110, 117, 102, 100, 121, 109, 120, 98, 117, 113, 106, 117, 124, 103, 112, 97, 109, 113, 107, 108, 106, 101, 100, 105, 114, 115, 113, 108, 116, 116, 117, 108, 103, 103, 123, 97, 115, 107, 105, 109, 110, 107, 96, 125, 101, 119, 105, 101, 98, 96, 103, 112, 109, 104, 106, 107, 109, 149, 106, 133, 121, 112, 114, 109, 127, 104, 111, 115, 105, 114, 115, 120, 105, 104, 106, 109, 102, 120, 112, 112, 104, 103, 102, 103, 108, 100, 112, 104, 112, 124, 111, 119, 108, 110, 96, 102, 103, 105, 112, 111, 108, 125, 108, 101, 105, 114, 104, 102, 115, 109, 98, 115, 102, 109, 102, 108, 121, 111, 111, 122, 125, 115, 102, 96, 97, 112, 103, 110, 122, 121, 117, 109, 121, 110, 105, 107, 110, 117, 123, 120, 118, 109, 108, 105, 116, 106, 106, 110, 103, 99, 124, 112, 121, 101, 110, 113, 115, 107, 110, 119, 113, 102, 120, 104, 106, 108, 109, 119, 109, 108, 115, 99, 112, 104, 103, 100, 106, 114, 119, 105, 113, 109, 110, 106, 108, 123, 107, 116, 104, 115, 119, 94, 113, 114, 110, 120, 94, 104, 108, 106, 113, 103, 121, 111, 111, 100, 118, 122, 104, 109, 113, 106, 103, 123, 105, 107, 104, 105, 112, 126, 111, 103, 102, 108, 118, 100, 117, 106, 106, 117, 137, 118, 103, 109, 122, 106, 100, 113, 118, 102, 95, 104, 113, 108, 104, 107, 177, 110, 101, 114, 101, 114, 110, 101, 105, 134, 110, 114, 92, 113, 127, 112, 111, 114, 110, 123, 99, 107, 96, 112, 103, 102, 116, 117, 106, 91, 109, 113, 103, 112, 113, 107, 102, 123, 117, 102, 118, 105, 101, 110, 115, 108, 105, 112, 108, 114, 113, 120, 109, 108, 115, 103, 113, 112, 105, 115, 103, 107, 115, 103, 114, 137, 103, 110, 117, 110, 102, 117, 108, 103, 100, 109, 99, 115, 108, 97, 103, 108, 123, 113, 117, 119, 108, 107, 108, 109, 113, 110, 113, 119, 114, 111, 102, 110, 108, 112, 95, 116, 132, 114, 108, 106, 108, 119, 109, 131, 112, 115, 112, 106, 106, 105, 106, 99, 125, 105, 110, 113, 111, 112, 108, 122, 106, 107, 115, 111, 110, 104, 114, 118, 108, 102, 134, 101, 114, 111, 114, 107, 105, 106, 105, 104, 116, 109, 107, 110, 98, 115, 116, 125, 114, 116, 106, 113, 110, 112, 109, 109, 104, 104, 114, 95, 108, 100, 116, 91, 111, 109, 116, 112, 115, 114, 107, 103, 103, 120, 116, 106, 103, 105, 102, 115, 110, 111, 113, 114, 102, 111, 113, 130, 114, 116, 110, 106, 102, 106, 114, 104, 119, 108, 102, 106, 111, 110, 107, 113, 109, 111, 112, 113, 112, 106, 115, 105, 111, 109, 113, 113, 107, 111, 106, 110, 111, 109, 153, 111, 103, 104, 111, 114, 111, 115, 107, 111, 106, 106, 118, 108, 110, 108, 112, 117, 115, 111, 114, 110, 112, 111, 112, 110, 112, 111, 108, 115, 114, 149, 116, 112, 126, 106, 112, 112, 111, 106, 114, 106, 112, 111, 110, 105, 109, 110, 103, 109, 106, 105, 106, 112, 104, 113, 107, 114, 115, 108, 118, 108, 113, 112, 110, 109, 112, 112, 112, 112, 115, 104, 110, 111, 116, 114, 108, 110, 116, 112, 110, 111, 112, 110, 118, 116, 116, 108, 100, 102, 116, 108, 113, 108, 112, 106, 109, 102, 108, 112, 110, 107, 106, 107, 112, 116, 108, 100, 111, 112, 108, 114, 110, 114, 102, 113, 117, 113, 115, 105, 109, 112, 107, 109, 105, 109, 110, 104, 109, 111, 101, 107, 108, 105, 105, 111, 109, 109, 108, 106, 111, 107, 111, 108, 113, 111, 104, 114, 110, 109, 108, 109, 110, 113, 108, 109, 109, 105, 112, 110, 108, 112, 109, 101, 109, 111, 111, 98, 105, 116, 115, 108, 109, 113, 104, 107, 113, 107, 110, 114, 112, 118, 112, 107, 109, 116, 110, 110, 108, 112, 111, 114, 108, 110, 115, 106, 109, 124, 102, 111, 112, 102, 115, 106, 104, 113, 108, 112, 108, 112, 104, 111, 110, 107, 108, 107, 110, 115, 109, 109, 118, 106, 109, 109, 112, 106, 115, 118, 109, 112, 107, 114, 113, 109, 112, 106, 107, 108, 114, 107, 115, 112, 128, 113, 118, 112, 115, 114, 109, 112, 109, 107, 106, 115, 109, 112, 114, 107, 112, 112, 113, 112, 109, 110, 115, 119, 63, 110, 105, 111, 111, 112, 111, 112, 115, 111, 113, 104, 116, 116, 111, 106, 110, 111, 109, 111, 107, 103, 116, 111, 112, 111, 110, 111, 103, 110, 112, 115, 108, 115, 110, 114, 111, 108, 109, 112, 107, 107, 71, 114, 114, 111, 111, 114, 109, 107, 110, 104, 116, 106, 113, 111, 112, 110, 111, 108, 112, 109, 110, 108, 111, 107, 115, 117, 109, 107, 110, 101, 111, 114, 99, 109, 108, 115, 113, 105, 107, 112, 113, 105, 115, 111, 102, 108, 106, 107, 109, 115, 110, 108, 111, 106, 110, 108, 110, 110, 107, 106, 106, 107, 112, 108, 120, 110, 110, 106, 108, 114, 109, 114, 110, 117, 111, 108, 107, 109, 109, 111, 114, 109, 111, 118, 110, 106, 113, 110, 108, 112, 112, 112, 108, 114, 115, 108, 107, 114, 110, 113, 110, 110, 115, 116, 113, 112, 110, 114, 110, 106, 115, 111, 110, 115, 111, 109, 107, 109, 103, 107, 109, 109, 117, 108, 108, 111, 108, 110, 113, 110, 112, 118, 108, 114, 112, 111, 111, 112, 108, 113, 116, 115, 112, 115, 108, 110, 118, 109, 108, 111, 110, 85, 112, 112, 106, 111, 109, 104, 111, 109, 114, 111, 114, 111, 106, 108, 116, 110, 110, 113, 115, 120, 114, 111, 110, 110, 106, 106, 101, 108, 110, 115, 113, 105, 111, 115, 119, 117, 107, 110, 97, 106, 110, 108, 107, 115, 108, 110, 117, 116, 116, 118, 108, 105, 111, 103, 111, 117, 100, 110, 108, 118, 111, 116, 102, 109, 106, 119, 104, 107, 109, 121, 128, 114, 112, 107, 98, 114, 113, 109, 108, 108, 102, 120, 105, 112, 127, 111, 102, 109, 101, 110, 115, 115, 97, 113, 103, 108, 104, 108, 110, 102, 114, 98, 110, 110, 99, 119, 112, 114, 104, 106, 106, 117, 111, 103, 110, 121, 113, 107, 111, 101, 102, 103, 102, 113, 103, 108, 107, 107, 105, 110, 103, 99, 97, 113, 100, 114, 121, 121, 114, 111, 109, 109, 112, 94, 101, 124, 109, 114, 106, 114, 114, 112, 124, 116, 108, 121, 113, 108, 106, 107, 101, 107, 93, 116, 116, 111, 110, 111, 113, 117, 111, 101, 123, 119, 122, 114, 108, 106, 111, 110, 112, 99, 117, 108, 108, 108, 103, 119, 109, 121, 112, 113, 110, 112, 95, 111, 101, 116, 103, 107, 109, 117, 105, 108, 117, 101, 114, 103, 105, 110, 100, 115, 111, 110, 113, 102, 114, 113, 147, 107, 115, 112, 106, 111, 109, 92, 99, 103, 102, 112, 106, 101, 103, 101, 101, 129, 106, 104, 103, 108, 96, 107, 112, 99, 111, 123, 102, 111, 107, 113, 99, 109, 121, 114, 115, 99, 108, 124, 117, 111, 109, 105, 107, 116, 122, 103, 101, 116, 112, 108, 113, 117, 113, 124, 109, 104, 109, 101, 113, 103, 115, 118, 113, 102, 111, 106, 114, 103, 108, 96, 118, 108, 116, 107, 105, 108, 99, 105, 113, 109, 92, 113, 119, 114, 111, 106, 111, 111, 107, 108, 105, 114, 109, 97, 105, 118, 101, 102, 110, 112, 114, 108, 108, 127, 100, 92, 114, 104, 107, 113, 114, 100, 119, 106, 100, 111, 118, 113, 112, 116, 110, 114, 104, 100, 111, 113, 113, 117, 107, 121, 108, 109, 118, 108, 97, 116, 112, 112, 88, 108, 122, 102, 114, 108, 105, 108, 119, 107, 116, 104, 128, 103, 105, 110, 112, 114, 115, 112, 116, 116, 101, 112, 118, 107, 110, 104, 100, 110, 108, 109, 98, 109, 112, 105, 113, 107, 117, 102, 118, 102, 99, 100, 102, 109, 111, 105, 110, 115, 106, 113, 102, 109, 107, 112, 109, 108, 101, 105, 113, 108, 103, 110, 130, 115, 110, 103, 107, 127, 104, 109, 104, 105, 109, 126, 116, 114, 117, 106, 113, 101, 106, 104, 109, 106, 104, 115, 127, 105, 107, 114, 105, 111, 110, 118, 98, 106, 110, 114, 106, 113, 100, 107, 106, 106, 110, 105, 112, 128, 110, 105, 132, 114, 112, 107, 124, 104, 112, 112, 119, 102, 97, 93, 123, 118, 100, 131, 121, 106, 115, 104, 110, 120, 109, 110, 103, 107, 124, 115, 113, 104, 127, 124, 110, 89, 107, 115, 119, 120, 105, 106, 105, 110, 96, 114, 104, 110, 115, 99, 115, 115, 109, 114, 111, 110, 106, 113, 105, 104, 102, 111, 120, 109, 116, 112, 113, 105, 112, 118, 110, 114, 107, 102, 114, 107, 115, 107, 120, 112, 104, 109, 98, 105, 111, 92, 105, 108, 105, 106, 106, 106, 107, 108, 107, 116, 118, 106, 100, 114, 108, 109, 105, 111, 117, 103, 103, 98, 134, 118, 112, 125, 116, 107, 103, 107, 109, 120, 116, 107, 104, 111, 114, 106, 110, 117, 108, 121, 110, 101, 107, 135, 110, 105, 109, 114, 84, 119, 109, 113, 97, 113, 115, 122, 105, 112, 106, 109, 125, 105, 111, 97, 113, 112, 102, 122, 114, 103, 100, 105, 110, 104, 109, 113, 109, 114, 105, 98, 115, 111, 110, 110, 118, 109, 107, 87, 97, 128, 107, 115, 115, 122, 114, 111, 112, 121, 96, 109, 102, 102, 89, 111, 110, 107, 109, 112, 120, 142, 105, 107, 125, 102, 113, 107, 110, 114, 107, 115, 111, 109, 125, 115, 97, 112, 114, 126, 117, 109, 107, 112, 113, 110, 122, 104, 111, 113, 125, 103, 104, 118, 109, 122, 111, 109, 117, 107, 112, 109, 104, 95, 99, 115, 109, 112, 115, 118, 112, 122, 154, 113, 140, 115, 110, 105, 111, 112, 108, 112, 110, 105, 110, 99, 114, 119, 107, 102, 104, 111, 112, 105, 99, 116, 132, 112, 109, 110, 106, 113, 110, 111, 105, 131, 113, 119, 118, 105, 113, 99, 102, 105, 107, 119, 104, 110, 103, 95, 114, 120, 111, 103, 108, 109, 108, 114, 111, 96, 107, 101, 114, 110, 107, 113, 106, 110, 109, 113, 126, 104, 110, 112, 112, 115, 112, 126, 107, 113, 113, 109, 108, 111, 108, 84, 104, 113, 110, 108, 126, 110, 102, 116, 113, 118, 74, 99, 110, 95, 106, 116, 92, 121, 115, 116, 115, 113, 109, 109, 114, 109, 106, 112, 113, 110, 105, 112, 110, 99, 117, 112, 115, 114, 120, 132, 95, 108, 108, 113, 107, 106, 111, 105, 110, 94, 114, 98, 91, 113, 109, 106, 110, 110, 105, 110, 121, 97, 94, 111, 105, 110, 108, 117, 112, 117, 148, 124, 107, 108, 105, 113, 110, 116, 113, 111, 109, 103, 106, 110, 118, 110, 102, 99, 112, 83, 118, 104, 103, 112, 117, 112, 104, 104, 105, 107, 130, 114, 121, 100, 112, 111, 109, 121, 115, 106, 121, 110, 111, 118, 116, 106, 110, 107, 105, 107, 104, 114, 112, 106, 110, 100, 106, 107, 119, 128, 109, 107, 101, 114, 106, 117, 122, 102, 110, 102, 105, 102, 113, 122, 107, 98, 113, 116, 115, 108, 110, 125, 112, 107, 103, 108, 110, 126, 106, 115, 115, 100, 116, 114, 112, 115, 104, 109, 112, 104, 112, 107, 110, 91, 100, 125, 93, 118, 109, 108, 98, 126, 122, 103, 109, 105, 109, 110, 118, 115, 114, 113, 133, 108, 109, 125, 82, 110, 120, 112, 105, 106, 117, 103, 116, 121, 113, 121, 96, 122, 104, 149, 106, 102, 101, 121, 128, 113, 113, 111, 115, 118, 102, 112, 114, 73, 118, 110, 105, 94, 110, 111, 107, 106, 106, 113, 116, 108, 109, 109, 110, 115, 114, 118, 108, 112, 109, 112, 109, 113, 102, 111, 106, 111, 110, 113, 119, 111, 107, 97, 104, 111, 108, 104, 112, 98, 114, 105, 110, 110, 113, 112, 118, 109, 110, 114, 110, 118, 113, 109, 103, 100, 128, 113, 124, 103, 127, 117, 99, 125, 126, 114, 105, 106, 110, 114, 113, 119, 108, 110, 112, 120, 109, 96, 108, 117, 122, 116, 122, 114, 110, 104, 116, 106, 121, 108, 122, 114, 107, 112, 121, 109, 107, 100, 110, 114, 111, 114, 109, 114, 116, 124, 108, 117, 105, 117, 127, 116, 119, 109, 108, 111, 119, 108, 113, 133, 117, 97, 117, 107, 112, 120, 118, 116, 123, 110, 119, 109, 121, 108, 117, 113, 97, 118, 100, 121, 105, 113, 104, 117, 111, 99, 127, 112, 102, 110, 98, 104, 111, 112, 108, 112, 111, 126, 122, 112, 107, 106, 115, 106, 105, 115, 108, 100, 115, 128, 108, 120, 113, 102, 106, 112, 105, 113, 113, 117, 105, 98, 96, 113, 127, 119, 122, 100, 95, 118, 114, 114, 110, 109, 116, 112, 112, 114, 130, 110, 121, 121, 109, 113, 98, 117, 99, 105, 117, 109, 114, 110, 102, 105, 111, 113, 116, 102, 88, 110, 112, 113, 104, 123, 111, 116, 98, 117, 102, 122, 115, 106, 111, 99, 107, 127, 109, 109, 116, 106, 112, 137, 101, 105, 120, 120, 121, 119, 115, 120, 109, 127, 115, 102, 118, 106, 115, 111, 120, 108, 112, 101, 113, 112, 94, 120, 112, 112, 112, 96, 118, 101, 116, 118, 104, 104, 92, 107, 117, 101, 103, 112, 112, 112, 117, 108, 100, 115, 118, 106, 111, 111, 129, 112, 110, 127, 117, 107, 116, 106, 114, 106, 114, 111, 103, 116, 122, 116, 128, 113, 113, 118, 111, 129, 115, 131, 114, 112, 118, 117, 122, 122, 115, 104, 115, 112, 114, 106, 116, 128, 103, 105, 113, 122, 110, 129, 130, 114, 118, 118, 125, 119, 107, 123, 119, 109, 114, 120, 107, 102, 100, 117, 115, 104, 110, 106, 134, 105, 104, 113, 119, 109, 101, 103, 105, 114, 110, 114, 108, 113, 112, 110, 114, 120, 111, 119, 119, 115, 106, 107, 113, 112, 116, 105, 123, 122, 99, 112, 110, 120, 102, 128, 103, 111, 101, 113, 119, 114, 103, 116, 113, 114, 108, 116, 134, 118, 117, 106, 116, 125, 118, 110, 110, 113, 111, 97, 110, 109, 107, 119, 126, 121, 116, 119, 116, 104, 105, 111, 127, 112, 103, 93, 99, 107, 113, 111, 113, 109, 115, 113, 108, 115, 116, 126, 106, 129, 98, 131, 109, 109, 109, 133, 116, 113, 107, 109, 115, 116, 100, 118, 130, 116, 120, 111, 97, 97, 119, 111, 114, 117, 107, 105, 116, 119, 110, 104, 102, 113, 119, 111, 107, 103, 119, 107, 106, 104, 122, 99, 116, 93, 105, 105, 128, 116, 126, 103, 105, 122, 121, 102, 104, 118, 114, 114, 115, 118, 125, 119, 112, 124, 109, 120, 119, 92, 113, 122, 119, 118, 106, 108, 122, 118, 97, 111, 112, 106, 103, 114, 121, 107, 108, 111, 111, 111, 123, 123, 107, 111, 115, 104, 115, 103, 133, 114, 113, 106, 108, 109, 118, 109, 109, 106, 103, 112, 107, 111, 117, 99, 107, 110, 114, 101, 101, 101, 108, 109, 110, 99, 105, 109, 109, 105, 104, 115, 109, 113, 107, 122, 113, 108, 105, 113, 118, 105, 106, 109, 129, 108, 99, 114, 103, 110, 111, 118, 103, 121, 116, 106, 111, 109, 106, 108, 107, 104, 109, 114, 106, 113, 106, 110, 125, 110, 102, 106, 115, 118, 111, 120, 115, 111, 100, 102, 101, 111, 108, 117, 105, 96, 108, 118, 100, 106, 101, 114, 103, 116, 109, 104, 108, 114, 105, 113, 111, 109, 117, 121, 119, 107, 110, 104, 114, 117, 108, 104, 115, 107, 111, 121, 112, 102, 107, 102, 116, 111, 110, 113, 112, 107, 108, 110, 118, 108, 109, 112, 114, 122, 124, 102, 107, 106, 112, 110, 110, 104, 108, 109, 105, 110, 122, 104, 114, 107, 117, 102, 100, 106, 109, 116, 115, 102, 115, 110, 113, 103, 115, 110, 112, 113, 108, 112, 107, 110, 103, 108, 103, 127, 114, 105, 109, 110, 107, 114, 99, 105, 114, 109, 118, 125, 101, 117, 100, 111, 106, 102, 102, 109, 105, 110, 108, 112, 104, 110, 121, 110, 95, 109, 107, 102, 110, 127, 102, 115, 112, 112, 110, 103, 107, 111, 111, 109, 105, 115, 103, 105, 116, 136, 101, 122, 120, 109, 105, 121, 107, 112, 121, 110, 115, 122, 128, 107, 101, 108, 107, 95, 109, 104, 112, 103, 104, 107, 111, 114, 107, 105, 121, 105, 109, 107, 117, 111, 109, 114, 122, 108, 110, 118, 104, 110, 107, 111, 112, 130, 115, 102, 101, 113, 105, 103, 116, 105, 106, 100, 114, 105, 123, 91, 109, 102, 108, 110, 102, 115, 123, 118, 106, 113, 109, 108, 111, 108, 106, 107, 106, 110, 116, 113, 111, 113, 114, 109, 112, 107, 112, 93, 114, 110, 108, 107, 114, 116, 107, 114, 110, 112, 104, 100, 113, 111, 110, 123, 107, 113, 103, 109, 115, 109, 121, 101, 106, 108, 118, 111, 113, 121, 108, 112, 116, 112, 110, 109, 108, 113, 110, 101, 112, 108, 105, 115, 108, 114, 122, 102, 115, 117, 116, 112, 104, 116, 112, 100, 113, 98, 112, 116, 103, 118, 109, 105, 108, 110, 112, 104, 101, 113, 120, 96, 123, 109, 107, 110, 109, 111, 107, 108, 113, 108, 113, 106, 113, 115, 103, 111, 107, 100, 109, 105, 110, 112, 114, 108, 113, 119, 127, 108, 120, 97, 120, 112, 102, 111, 105, 119, 109, 103, 105, 118, 113, 114, 95, 109, 109, 110, 112, 110, 112, 105, 92, 113, 104, 111, 110, 106, 110, 109, 108, 111, 113, 117, 111, 111, 113, 104, 119, 109, 108, 97, 117, 102, 105, 116, 118, 110, 111, 115, 112, 110, 102, 107, 109, 113, 116, 109, 108, 103, 101, 112, 105, 116, 119, 104, 111, 106, 103, 105, 95, 111, 111, 111, 113, 113, 114, 117, 120, 108, 106, 118, 111, 104, 106, 119, 108, 120, 123, 115, 107, 120, 112, 112, 111, 118, 111, 111, 115, 107, 114, 104, 105, 117, 115, 112, 102, 111, 118, 109, 107, 110, 109, 116, 103, 112, 120, 116, 104, 107, 109, 102, 108, 115, 106, 115, 102, 112, 110, 109, 102, 116, 97, 110, 99, 112, 113, 104, 105, 119, 133, 102, 99, 104, 108, 111, 119, 102, 110, 107, 114, 106, 106, 102, 105, 106, 116, 103, 100, 110, 106, 96, 105, 109, 108, 109, 107, 116, 110, 98, 104, 124, 111, 106, 107, 105, 121, 121, 102, 109, 126, 107, 110, 94, 84, 111, 109, 113, 107, 114, 100, 103, 105, 106, 116, 113, 110, 102, 103, 109, 104, 109, 112, 109, 94, 109, 107, 116, 113, 102, 117, 104, 107, 110, 110, 119, 107, 101, 105, 104, 109, 107, 110, 109, 97, 118, 117, 120, 105, 111, 93, 121, 118, 118, 113, 110, 111, 115, 117, 112, 95, 120, 109, 102, 108, 112, 108, 118, 108, 106, 102, 113, 108, 106, 105, 112, 102, 116, 111, 117, 110, 101, 108, 111, 106, 116, 103, 104, 103, 104, 125, 110, 108, 107, 105, 125, 104, 107, 121, 113, 109, 134, 111, 112, 109, 115, 108, 108, 112, 108, 109, 112, 119, 106, 117, 113, 109, 112, 108, 100, 110, 110, 105, 116, 114, 101, 106, 113, 105, 111, 108, 105, 101, 113, 104, 91, 113, 113, 113, 113, 110, 105, 111, 116, 100, 106, 111, 132, 110, 104, 114, 124, 120, 127, 111, 108, 113, 107, 108, 114, 104, 108, 111, 115, 118, 112, 106, 102, 120, 108, 111, 105, 117, 104, 117, 104, 110, 112, 121, 108, 115, 110, 109, 105, 110, 110, 105, 110, 108, 105, 122, 113, 112, 110, 110, 110, 104, 108, 109, 100, 109, 108, 101, 122, 105, 99, 110, 107, 111, 102, 122, 103, 107, 110, 100, 107, 110, 115, 108, 108, 104, 119, 102, 107, 105, 108, 109, 103, 103, 114, 106, 111, 112, 120, 109, 114, 116, 103, 109, 109, 115, 96, 119, 113, 111, 107, 116, 99, 111, 122, 103, 131, 110, 112, 119, 106, 119, 105, 109, 104, 113, 107, 108, 107, 112, 104, 112, 109, 108, 113, 105, 113, 123, 107, 99, 103, 115, 107, 110, 102, 112, 121, 111, 104, 118, 114, 110, 115, 122, 97, 104, 104, 112, 109, 91, 86, 110, 101, 119, 111, 115, 111, 107, 113, 102, 104, 102, 112, 101, 118, 114, 108, 105, 109, 111, 114, 105, 121, 102, 109, 109, 113, 116, 110, 108, 110, 112, 111, 101, 113, 111, 100, 110, 108, 111, 111, 105, 104, 104, 108, 112, 118, 107, 109, 108, 108, 111, 116, 109, 106, 110, 112, 111, 112, 115, 105, 106, 116, 111, 104, 109, 105, 111, 118, 112, 115, 114, 124, 111, 105, 112, 110, 107, 113, 107, 109, 109, 98, 100, 104, 105, 107, 106, 107, 99, 112, 100, 108, 111, 111, 111, 112, 109, 108, 107, 114, 109, 109, 107, 107, 126, 106, 120, 113, 110, 108, 107, 108, 109, 113, 113, 97, 109, 115, 118, 109, 105, 119, 111, 103, 104, 119, 115, 112, 109, 113, 120, 126, 102, 111, 110, 110, 108, 112, 117, 96, 116, 96, 110, 110, 106, 111, 110, 105, 110, 108, 111, 113, 108, 105, 106, 110, 111, 112, 114, 108, 104, 106, 116, 109, 111, 113, 113, 111, 105, 110, 113, 104, 111, 104, 120, 110, 96, 108, 119, 113, 113, 102, 99, 109, 110, 109, 111, 111, 114, 115, 112, 107, 97, 106, 114, 102, 105, 112, 105, 103, 109, 114, 108, 105, 114, 116, 109, 103, 115, 107, 103, 111, 109, 113, 118, 105, 107, 111, 110, 113, 98, 108, 102, 96, 103, 111, 105, 111, 117, 113, 111, 103, 110, 114, 113, 108, 107, 110, 107, 102, 104, 120, 113, 106, 111, 112, 104, 101, 104, 126, 109, 101, 113, 112, 114, 111, 109, 105, 106, 107, 111, 106, 118, 108, 128, 111, 102, 111, 97, 112, 116, 107, 113, 112, 108, 110, 109, 114, 112, 119, 96, 105, 110, 116, 110, 110, 108, 113, 108, 115, 122, 109, 106, 116, 110, 108, 111, 118, 110, 112, 115, 115, 109, 109, 112, 108, 109, 111, 112, 108, 110, 95, 103, 112, 107, 111, 103, 108, 112, 106, 117, 104, 113, 119, 106, 108, 109, 99, 112, 120, 117, 114, 108, 108, 114, 110, 110, 114, 125, 117, 100, 114, 115, 115, 118, 112, 103, 115, 110, 104, 118, 108, 104, 116, 114, 113, 114, 119, 113, 117, 116, 107, 107, 111, 105, 97, 108, 102, 101, 106, 114, 111, 109, 108, 112, 107, 110, 119, 122, 114, 107, 103, 113, 109, 106, 114, 116, 108, 104, 99, 109, 111, 112, 116, 106, 113, 116, 109, 115, 117, 111, 110, 106, 106, 107, 106, 104, 105, 114, 105, 111, 118, 111, 114, 130, 121, 111, 111, 107, 102, 108, 116, 112, 96, 119, 115, 116, 106, 116, 109, 113, 109, 107, 114, 101, 111, 106, 111, 116, 110, 107, 108, 103, 111, 98, 101, 108, 114, 107, 106, 113, 107, 106, 105, 115, 113, 109, 106, 112, 107, 113, 108, 117, 114, 108, 110, 113, 111, 109, 110, 103, 114, 100, 110, 106, 107, 115, 119, 106, 112, 115, 114, 113, 113, 115, 110, 113, 101, 99, 111, 109, 103, 112, 107, 105, 108, 119, 105, 109, 110, 112, 114, 116, 105, 114, 109, 104, 114, 124, 112, 113, 89, 116, 100, 116, 113, 108, 112, 99, 101, 116, 108, 109, 108, 117, 87, 115, 106, 114, 110, 106, 102, 108, 104, 113, 116, 106, 111, 114, 101, 109, 107, 112, 115, 118, 109, 102, 107, 127, 111, 104, 116, 97, 111, 116, 99, 112, 98, 114, 109, 106, 112, 111, 105, 104, 109, 111, 117, 115, 107, 106, 111, 115, 111, 106, 111, 108, 108, 110, 94, 105, 105, 105, 102, 115, 112, 114, 116, 109, 111, 104, 120, 112, 108, 109, 107, 115, 118, 116, 111, 108, 111, 104, 110, 113, 110, 122, 111, 104, 105, 110, 104, 113, 119, 111, 111, 99, 108, 94, 115, 109, 109, 106, 109, 108, 106, 107, 110, 109, 101, 102, 104, 107, 107, 124, 112, 114, 112, 112, 110, 105, 111, 104, 104, 106, 107, 119, 102, 106, 109, 105, 115, 106, 107, 112, 106, 108, 118, 103, 108, 119, 113, 95, 105, 121, 102, 112, 113, 102, 110, 104, 106, 109, 109, 116, 126, 109, 117, 96, 112, 132, 122, 111, 98, 109, 116, 115, 109, 104, 117, 129, 104, 113, 107, 115, 105, 114, 106, 110, 104, 111, 101, 105, 105, 110, 119, 116, 96, 113, 109, 106, 109, 119, 118, 123, 134, 112, 115, 107, 104, 105, 110, 118, 117, 102, 107, 112, 108, 97, 121, 105, 107, 113, 116, 112, 106, 105, 103, 110, 123, 123, 115, 113, 106, 107, 102, 114, 102, 107, 106, 107, 107, 114, 118, 111, 110, 101, 106, 118, 116, 101, 120, 103, 107, 109, 109, 104, 115, 114, 108, 117, 110, 107, 111, 110, 103, 118, 109, 107, 108, 98, 111, 113, 104, 119, 114, 111, 104, 113, 109, 109, 110, 112, 105, 106, 120, 111, 110, 111, 110, 105, 105, 109, 97, 120, 112, 106, 109, 104, 104, 109, 106, 113, 117, 109, 104, 105, 97, 109, 110, 123, 111, 115, 115, 108, 113, 112, 118, 132, 90, 112, 111, 101, 106, 119, 108, 103, 114, 117, 111, 108, 111, 109, 105, 100, 105, 108, 112, 108, 104, 118, 105, 109, 98, 110, 113, 94, 111, 109, 114, 93, 119, 111, 107, 116, 113, 118, 104, 104, 126, 114, 98, 103, 110, 102, 107, 110, 111, 105, 106, 111, 112, 101, 108, 106, 109, 119, 103, 106, 111, 105, 110, 107, 104, 102, 111, 109, 106, 125, 94, 114, 118, 112, 106, 114, 85, 107, 111, 122, 99, 110, 108, 110, 109, 102, 117, 112, 120, 106, 117, 109, 107, 116, 109, 106, 110, 110, 110, 106, 116, 105, 115, 102, 96, 112, 113, 109, 110, 111, 107, 112, 111, 112, 90, 122, 111, 117, 107, 112, 103, 122, 106, 107, 114, 119, 110, 106, 108, 131, 103, 117, 112, 107, 101, 115, 102, 116, 104, 114, 108, 105, 123, 103, 104, 92, 112, 124, 106, 134, 100, 113, 133, 115, 99, 111, 108, 109, 106, 111, 109, 102, 115, 112, 108, 104, 112, 110, 114, 101, 105, 112, 117, 116, 111, 86, 112, 122, 109, 125, 109, 111, 114, 104, 111, 103, 112, 102, 131, 103, 115, 106, 111, 113, 110, 106, 118, 116, 125, 111, 110, 112, 106, 104, 108, 108, 117, 97, 115, 107, 116, 107, 105, 110, 95, 82, 102, 111, 106, 114, 107, 113, 110, 73, 111, 108, 101, 101, 113, 116, 120, 106, 109, 128, 97, 119, 77, 113, 113, 104, 112, 107, 113, 110, 105, 108, 116, 113, 84, 108, 108, 107, 112, 106, 118, 112, 101, 123, 104, 109, 101, 132, 110, 106, 109, 107, 107, 103, 102, 112, 113, 105, 105, 110, 108, 102, 129, 113, 125, 118, 116, 107, 116, 121, 112, 111, 108, 100, 119, 105, 109, 107, 108, 115, 122, 99, 109, 101, 106, 97, 108, 111, 112, 107, 102, 112, 100, 105, 110, 110, 120, 113, 111, 115, 109, 114, 111, 100, 112, 101, 111, 116, 113, 116, 98, 114, 105, 105, 121, 122, 94, 103, 104, 112, 114, 111, 115, 120, 116, 104, 106, 109, 104, 116, 113, 112, 103, 108, 100, 105, 121, 110, 98, 114, 109, 116, 120, 110, 111, 118, 116, 107, 102, 109, 102, 108, 95, 107, 104, 106, 103, 103, 108, 108, 106, 112, 105, 106, 108, 125, 109, 102, 111, 109, 120, 112, 103, 104, 111, 99, 105, 110, 113, 106, 109, 109, 109, 101, 104, 105, 109, 112, 112, 109, 117, 105, 109, 115, 118, 107, 113, 111, 106, 105, 101, 109, 105, 114, 95, 100, 110, 102, 115, 114, 102, 113, 106, 110, 111, 110, 118, 111, 106, 105, 106, 113, 107, 104, 118, 103, 103, 109, 112, 108, 114, 105, 123, 111, 115, 132, 106, 111, 107, 119, 101, 115, 112, 112, 96, 103, 107, 108, 109, 106, 103, 107, 103, 119, 107, 104, 126, 113, 121, 113, 112, 124, 95, 108, 116, 103, 101, 116, 114, 129, 114, 103, 103, 133, 103, 107, 120, 105, 107, 107, 114, 119, 112, 105, 114, 112, 109, 102, 109, 106, 111, 114, 126, 113, 109, 108, 113, 107, 104, 110, 112, 108, 110, 105, 114, 108, 110, 114, 116, 113, 116, 118, 109, 112, 110, 116, 116, 113, 109, 111, 105, 111, 109, 115, 112, 115, 109, 103, 107, 99, 109, 106, 114, 106, 112, 110, 114, 107, 110, 107, 102, 105, 114, 110, 114, 110, 96, 118, 113, 113, 107, 102, 107, 101, 112, 106, 113, 113, 113, 109, 120, 110, 109, 107, 117, 106, 110, 112, 107, 103, 104, 106, 117, 116, 108, 97, 116, 112, 115, 119, 106, 110, 112, 114, 111, 105, 104, 109, 107, 115, 104, 107, 117, 104, 97, 128, 107, 114, 111, 102, 91, 112, 112, 114, 114, 112, 114, 108, 104, 106, 108, 104, 102, 110, 107, 121, 114, 103, 119, 98, 113, 114, 114, 114, 107, 112, 111, 108, 120, 108, 109, 118, 98, 118, 112, 114, 114, 117, 113, 118, 101, 100, 117, 119, 108, 109, 93, 110, 101, 108, 117, 111, 105, 115, 107, 109, 100, 113, 112, 111, 108, 117, 106, 115, 109, 111, 115, 109, 107, 110, 102, 106, 112, 111, 106, 103, 110, 109, 104, 109, 106, 105, 115, 111, 117, 98, 105, 112, 105, 103, 111, 114, 90, 116, 95, 120, 112, 107, 106, 100, 113, 113, 104, 112, 111, 102, 119, 110, 104, 108, 115, 111, 119, 102, 115, 127, 105, 115, 116, 104, 113, 110, 105, 114, 119, 116, 110, 110, 111, 100, 117, 112, 120, 106, 109, 113, 117, 110, 125, 116, 107, 127, 111, 108, 108, 104, 117, 112, 109, 109, 122, 111, 105, 114, 104, 115, 108, 106, 104, 104, 93, 110, 121, 116, 111, 111, 99, 119, 110, 109, 103, 108, 100, 114, 113, 107, 113, 108, 110, 109, 109, 116, 107, 104, 111, 113, 115, 106, 109, 109, 112, 114, 109, 107, 101, 101, 107, 115, 107, 121, 108, 119, 110, 106, 109, 109, 98, 122, 117, 110, 114, 116, 109, 108, 112, 114, 117, 118, 110, 107, 108, 112, 105, 116, 116, 92, 112, 70, 114, 109, 95, 114, 89, 110, 116, 110, 113, 116, 110, 106, 114, 114, 70, 76, 114, 115, 115, 117, 102, 119, 117, 95, 116, 107, 102, 109, 116, 107, 68, 107, 112, 110, 103, 108, 116, 110, 110, 107, 109, 117, 108, 116, 115, 106, 102, 112, 114, 107, 111, 104, 111, 112, 113, 95, 112, 115, 118, 110, 109, 107, 103, 105, 112, 81, 80, 74, 111, 100, 105, 102, 107, 99, 115, 103, 114, 112, 111, 120, 107, 95, 112, 121, 109, 112, 109, 114, 111, 125, 112, 107, 118, 106, 107, 78, 112, 110, 113, 113, 115, 103, 117, 103, 115, 111, 109, 84, 111, 120, 108, 108, 117, 106, 107, 115, 87, 111, 107, 113, 105, 75, 120, 110, 116, 65, 70, 113, 118, 116, 105, 110, 109, 113, 118, 113, 97, 75, 118, 110, 110, 113, 113, 112, 116, 114, 117, 111, 121, 113, 113, 99, 102, 114, 108, 112, 109, 109, 109, 107, 102, 108, 106, 110, 77, 109, 75, 89, 118, 112, 113, 110, 110, 111, 108, 121, 116, 109, 111, 113, 109, 119, 108, 85, 109, 112, 111, 111, 93, 109, 113, 112, 114, 112, 109, 107, 107, 112, 102, 106, 123, 119, 122, 110, 115, 112, 126, 117, 111, 120, 111, 116, 111, 115, 99, 132, 109, 104, 85, 113, 102, 124, 118, 117, 111, 118, 107, 115, 116, 112, 112, 52, 109, 106, 110, 109, 107, 118, 124, 106, 117, 111, 108, 109, 119, 114, 101, 112, 109, 108, 112, 60, 105, 115, 104, 120, 113, 109, 103, 114, 114, 96, 106, 95, 112, 106, 94, 111, 116, 105, 90, 105, 105, 80, 111, 109, 110, 83, 113, 96, 104, 110, 123, 113, 117, 101, 117, 89, 111, 97, 107, 95, 101, 107, 111, 102, 106, 89, 99, 120, 111, 118, 116, 115, 99, 93, 104, 111, 123, 110, 103, 105, 87, 116, 123, 95, 107, 89, 105, 102, 110, 74, 114, 113, 114, 102, 115, 102, 111, 108, 112, 114, 104, 108, 103, 104, 115, 101, 104, 121, 114, 109, 92, 103, 109, 109, 108, 114, 96, 111, 112, 111, 111, 118, 114, 110, 98, 112, 118, 105, 113, 95, 119, 110, 106, 118, 107, 91, 112, 114, 111, 101, 108, 116, 107, 111, 115, 82, 107, 76, 107, 91, 111, 113, 110, 101, 102, 93, 108, 102, 110, 114, 116, 80, 113, 114, 112, 113, 103, 114, 82, 113, 121, 109, 111, 111, 111, 93, 70, 123, 106, 110, 101, 116, 108, 117, 115, 125, 109, 119, 100, 99, 106, 114, 105, 111, 105, 113, 108, 104, 114, 109, 81, 78, 108, 106, 115, 105, 116, 105, 116, 101, 120, 108, 113, 105, 110, 102, 107, 109, 111, 117, 110, 109, 111, 101, 119, 107, 125, 109, 114, 109, 115, 109, 105, 106, 112, 111, 104, 114, 111, 101, 104, 111, 117, 109, 116, 97, 100, 99, 111, 105, 109, 112, 107, 107, 120, 115, 104, 77, 109, 110, 119, 111, 108, 113, 106, 111, 101, 115, 98, 98, 96, 119, 119, 111, 114, 116, 113, 113, 112, 117, 109, 107, 110, 117, 106, 110, 120, 108, 96, 109, 116, 114, 110, 113, 101, 110, 112, 111, 115, 110, 109, 109, 110, 103, 112, 107, 109, 114, 107, 114, 111, 117, 112, 110, 107, 104, 108, 110, 112, 113, 113, 104, 110, 113, 112, 114, 101, 114, 107, 120, 110, 109, 109, 113, 101, 108, 106, 113, 106, 104, 102, 110, 108, 118, 110, 108, 114, 114, 102, 110, 108, 105, 109, 112, 135, 107, 104, 100, 108, 115, 113, 100, 120, 110, 102, 113, 107, 101, 109, 116, 120, 106, 112, 122, 114, 113, 109, 107, 108, 109, 113, 114, 123, 107, 102, 115, 112, 109, 143, 110, 109, 116, 112, 110, 114, 107, 103, 105, 110, 99, 112, 107, 109, 111, 110, 108, 112, 106, 105, 103, 99, 103, 109, 119, 103, 114, 100, 115, 104, 108, 117, 115, 128, 108, 107, 115, 113, 121, 115, 108, 111, 110, 109, 96, 112, 112, 106, 123, 99, 112, 113, 106, 111, 96, 101, 112, 112, 112, 108, 102, 109, 114, 110, 114, 108, 110, 108, 110, 108, 109, 110, 109, 114, 104, 113, 110, 104, 116, 118, 125, 111, 113, 103, 113, 105, 100, 113, 116, 107, 119, 109, 106, 102, 106, 107, 110, 104, 114, 114, 107, 108, 110, 113, 113, 115, 103, 115, 112, 121, 111, 114, 116, 108, 109, 103, 102, 112, 115, 120, 110, 107, 106, 110, 106, 114, 111, 112, 120, 103, 117, 116, 114, 103, 116, 111, 105, 118, 114, 127, 109, 94, 112, 117, 109, 121, 109, 109, 108, 113, 99, 109, 111, 117, 104, 109, 110, 102, 110, 114, 112, 105, 113, 106, 116, 110, 106, 116, 107, 103, 104, 107, 107, 119, 105, 108, 109, 114, 110, 107, 102, 113, 109, 112, 115, 113, 109, 103, 115, 117, 112, 110, 114, 102, 109, 109, 118, 112, 101, 104, 111, 114, 113, 111, 113, 116, 111, 106, 108, 110, 110, 115, 114, 109, 110, 105, 114, 107, 104, 108, 112, 115, 110, 107, 105, 112, 110, 117, 111, 114, 114, 106, 104, 116, 110, 105, 122, 107, 109, 112, 112, 107, 108, 102, 109, 109, 112, 107, 104, 107, 103, 114, 107, 110, 118, 109, 104, 105, 110, 105, 103, 109, 111, 101, 114, 110, 106, 113, 111, 116, 109, 109, 107, 112, 111, 112, 116, 111, 109, 116, 107, 98, 112, 143, 117, 119, 107, 108, 109, 114, 119, 107, 113, 119, 104, 109, 107, 109, 105, 106, 104, 105, 106, 103, 118, 112, 113, 107, 105, 112, 106, 106, 108, 115, 115, 105, 104, 100, 107, 112, 118, 111, 104, 104, 113, 122, 109, 110, 116, 114, 96, 105, 101, 108, 109, 108, 114, 102, 112, 113, 108, 108, 118, 110, 105, 109, 115, 105, 112, 110, 98, 108, 107, 108, 119, 110, 114, 105, 108, 105, 110, 107, 104, 116, 110, 106, 108, 105, 111, 115, 113, 110, 111, 108, 112, 115, 112, 118, 120, 113, 108, 103, 99, 108, 110, 117, 109, 108, 105, 108, 116, 106, 111, 114, 116, 105, 116, 113, 109, 111, 123, 120, 106, 110, 109, 111, 123, 113, 111, 118, 121, 104, 117, 116, 113, 117, 102, 113, 117, 110, 107, 115, 107, 118, 116, 111, 117, 125, 106, 108, 111, 96, 105, 120, 115, 112, 102, 112, 111, 99, 111, 103, 127, 115, 108, 119, 110, 111, 114, 111, 113, 113, 118, 128, 115, 105, 110, 105, 116, 103, 118, 113, 107, 116, 121, 121, 105, 107, 102, 114, 114, 110, 106, 107, 105, 112, 110, 111, 119, 103, 111, 119, 103, 104, 106, 111, 104, 115, 107, 112, 114, 117, 112, 118, 114, 103, 112, 107, 108, 106, 108, 115, 125, 107, 110, 113, 101, 115, 117, 109, 117, 113, 114, 116, 112, 123, 104, 111, 99, 109, 113, 112, 111, 109, 104, 115, 115, 115, 110, 108, 109, 106, 112, 116, 106, 108, 114, 109, 101, 116, 113, 108, 114, 108, 112, 113, 110, 114, 113, 114, 109, 115, 114, 101, 109, 109, 97, 113, 119, 114, 110, 100, 113, 102, 111, 111, 102, 116, 110, 113, 119, 110, 105, 116, 108, 106, 90, 112, 109, 106, 115, 114, 116, 109, 103, 119, 120, 109, 107, 110, 99, 121, 121, 116, 120, 112, 132, 108, 105, 110, 122, 104, 119, 104, 116, 108, 118, 112, 107, 110, 114, 107, 105, 110, 111, 101, 105, 104, 105, 113, 112, 123, 116, 119, 105, 118, 110, 108, 104, 105, 111, 107, 106, 118, 108, 100, 102, 111, 113, 102, 109, 116, 114, 113, 110, 108, 118, 112, 105, 114, 127, 111, 110, 112, 117, 114, 110, 108, 108, 120, 113, 110, 117, 117, 107, 106, 115, 116, 124, 106, 116, 114, 103, 111, 108, 108, 114, 134, 115, 103, 116, 114, 112, 112, 112, 103, 113, 114, 107, 109, 111, 106, 109, 116, 116, 126, 109, 126, 118, 117, 105, 110, 117, 137, 116, 103, 106, 122, 118, 116, 111, 126, 105, 107, 113, 105, 119, 112, 104, 103, 110, 120, 106, 109, 112, 114, 118, 112, 103, 109, 108, 114, 117, 110, 104, 117, 116, 129, 105, 120, 118, 120, 118, 115, 116, 118, 100, 100, 109, 115, 119, 108, 107, 103, 107, 103, 113, 99, 109, 112, 117, 109, 120, 100, 118, 109, 110, 108, 114, 114, 112, 116, 110, 108, 110, 112, 120, 106, 112, 119, 121, 105, 122, 114, 108, 117, 107, 110, 109, 129, 116, 107, 120, 110, 102, 113, 116, 115, 100, 113, 116, 105, 111, 123, 125, 111, 102, 119, 116, 105, 108, 109, 108, 116, 108, 109, 112, 115, 110, 107, 110, 104, 100, 115, 113, 110, 108, 102, 111, 111, 110, 101, 110, 113, 117, 108, 116, 112, 104, 123, 104, 112, 109, 114, 115, 112, 104, 110, 105, 111, 113, 106, 105, 108, 100, 106, 117, 128, 124, 116, 104, 108, 115, 112, 109, 106, 98, 104, 112, 106, 110, 102, 97, 113, 104, 108, 101, 121, 123, 116, 119, 104, 111, 113, 106, 119, 109, 104, 104, 115, 114, 133, 107, 107, 109, 111, 103, 108, 111, 117, 112, 109, 113, 105, 124, 112, 116, 108, 108, 135, 99, 110, 106, 109, 110, 99, 105, 105, 115, 114, 113, 117, 104, 105, 108, 99, 107, 110, 106, 114, 119, 112, 131, 107, 110, 108, 118, 103, 99, 115, 116, 112, 108, 115, 100, 114, 107, 106, 101, 107, 106, 103, 98, 119, 103, 103, 105, 94, 106, 110, 109, 111, 132, 111, 108, 111, 107, 100, 106, 104, 108, 103, 114, 98, 109, 118, 105, 114, 109, 104, 116, 111, 118, 104, 110, 113, 112, 112, 107, 106, 109, 108, 109, 104, 109, 98, 118, 105, 106, 117, 106, 122, 117, 107, 121, 103, 115, 108, 107, 109, 106, 109, 110, 101, 107, 105, 107, 111, 111, 112, 97, 106, 113, 98, 111, 116, 120, 111, 105, 113, 119, 103, 110, 109, 98, 114, 111, 104, 110, 108, 105, 101, 105, 114, 99, 104, 101, 93, 97, 111, 111, 121, 104, 112, 122, 111, 92, 117, 116, 102, 109, 113, 106, 118, 113, 96, 108, 105, 108, 118, 105, 107, 106, 112, 110, 118, 98, 103, 112, 112, 99, 113, 99, 105, 114, 102, 126, 106, 104, 93, 123, 118, 109, 112, 117, 116, 92, 128, 121, 110, 109, 108, 106, 105, 119, 112, 108, 118, 122, 118, 108, 96, 102, 117, 102, 107, 103, 99, 103, 108, 109, 102, 103, 109, 112, 104, 108, 95, 106, 102, 103, 117, 115, 105, 99, 106, 105, 95, 115, 105, 114, 102, 110, 114, 113, 115, 122, 100, 105, 107, 122, 109, 103, 109, 101, 106, 105, 114, 104, 103, 125, 106, 121, 112, 106, 114, 108, 106, 113, 105, 115, 112, 103, 115, 102, 107, 114, 105, 113, 110, 107, 112, 108, 108, 110, 108, 103, 109, 113, 107, 108, 108, 111, 102, 120, 107, 103, 114, 109, 107, 107, 105, 105, 115, 108, 112, 107, 110, 109, 109, 110, 109, 104, 116, 122, 111, 104, 115, 109, 99, 101, 112, 102, 108, 113, 121, 109, 113, 116, 112, 112, 119, 112, 108, 104, 102, 106, 105, 108, 107, 110, 112, 108, 106, 104, 104, 116, 121, 110, 115, 103, 102, 130, 105, 108, 109, 114, 109, 103, 120, 111, 108, 104, 113, 110, 129, 116, 108, 128, 129, 110, 118, 108, 127, 101, 102, 107, 121, 114, 103, 110, 102, 112, 112, 96, 110, 107, 104, 104, 117, 100, 111, 114, 88, 113, 105, 105, 111, 108, 114, 104, 108, 114, 122, 105, 111, 104, 109, 118, 109, 102, 104, 113, 127, 109, 114, 111, 113, 110, 121, 109, 114, 114, 111, 101, 109, 111, 108, 113, 114, 120, 117, 114, 109, 107, 100, 110, 110, 112, 106, 97, 103, 106, 106, 108, 111, 117, 111, 113, 100, 124, 121, 112, 101, 107, 108, 107, 121, 113, 116, 119, 113, 109, 112, 106, 110, 109, 105, 112, 118, 115, 109, 99, 105, 103, 114, 106, 113, 102, 106, 102, 108, 117, 97, 113, 113, 111, 106, 117, 102, 104, 105, 105, 114, 105, 102, 109, 108, 121, 114, 115, 108, 102, 123, 118, 103, 113, 99, 105, 116, 109, 102, 109, 103, 102, 104, 108, 115, 113, 97, 109, 103, 119, 107, 102, 105, 106, 107, 113, 109, 107, 114, 104, 106, 111, 116, 105, 103, 107, 116, 111, 115, 110, 114, 110, 119, 110, 107, 111, 112, 113, 114, 119, 112, 113, 126, 101, 109, 103, 104, 106, 106, 108, 110, 109, 112, 92, 98, 107, 110, 109, 110, 109, 115, 105, 103, 115, 115, 113, 111, 112, 106, 105, 112, 106, 109, 102, 106, 139, 115, 117, 107, 102, 114, 107, 109, 107, 104, 120, 110, 97, 109, 105, 105, 107, 113, 107, 112, 110, 112, 106, 110, 107, 110, 107, 104, 111, 117, 113, 114, 103, 105, 97, 109, 110, 109, 112, 100, 83, 109, 108, 111, 114, 113, 114, 111, 109, 109, 109, 101, 112, 120, 99, 110, 104, 109, 114, 103, 102, 110, 115, 102, 109, 115, 107, 110, 108, 115, 102, 122, 112, 116, 115, 114, 107, 117, 111, 110, 111, 109, 105, 105, 107, 114, 112, 114, 114, 110, 111, 105, 117, 104, 113, 101, 115, 112, 110, 105, 111, 107, 110, 136, 112, 108, 108, 115, 113, 108, 107, 88, 76, 109, 123, 110, 105, 112, 111, 105, 111, 114, 107, 109, 115, 101, 109, 108, 106, 114, 114, 109, 118, 103, 101, 113, 107, 99, 113, 104, 111, 111, 113, 113, 107, 110, 110, 113, 110, 107, 113, 106, 107, 106, 106, 112, 106, 119, 114, 118, 112, 115, 105, 105, 111, 118, 112, 108, 105, 106, 108, 106, 112, 107, 109, 115, 107, 117, 104, 109, 109, 114, 108, 115, 115, 111, 106, 118, 116, 119, 97, 111, 116, 110, 119, 191, 106, 119, 110, 113, 115, 105, 114, 122, 113, 104, 132, 113, 112, 105, 110, 114, 113, 117, 107, 110, 108, 113, 109, 107, 112, 107, 108, 108, 108, 107, 108, 112, 105, 112, 111, 110, 113, 108, 118, 96, 105, 108, 105, 115, 99, 110, 108, 106, 109, 116, 108, 112, 101, 114, 100, 110, 104, 111, 118, 116, 105, 108, 104, 108, 115, 107, 108, 105, 113, 92, 101, 103, 115, 117, 109, 108, 109, 120, 111, 110, 113, 121, 107, 104, 115, 113, 107, 118, 108, 128, 116, 123, 106, 106, 121, 110, 103, 111, 120, 112, 68, 111, 97, 119, 118, 105, 108, 109, 111, 114, 110, 109, 101, 106, 106, 112, 113, 107, 102, 116, 108, 107, 108, 106, 115, 106, 110, 109, 113, 126, 108, 109, 112, 110, 108, 113, 111, 110, 110, 120, 114, 113, 103, 119, 116, 101, 120, 105, 97, 112, 105, 113, 95, 107, 105, 111, 106, 111, 94, 108, 112, 106, 110, 113, 110, 110, 107, 104, 108, 108, 113, 110, 111, 107, 116, 99, 118, 102, 116, 112, 68, 111, 106, 118, 114, 108, 115, 106, 108, 115, 112, 115, 117, 108, 110, 113, 103, 108, 118, 111, 111, 110, 100, 111, 97, 106, 113, 120, 108, 104, 114, 89, 106, 111, 104, 116, 110, 112, 119, 122, 110, 117, 115, 116, 102, 100, 108, 116, 124, 116, 110, 104, 117, 112, 112, 113, 108, 108, 109, 118, 107, 107, 114, 115, 124, 103, 105, 106, 113, 107, 108, 111, 110, 98, 110, 94, 104, 109, 114, 111, 107, 106, 97, 108, 110, 109, 109, 113, 103, 124, 104, 106, 108, 108, 112, 107, 103, 111, 104, 116, 103, 109, 110, 118, 96, 111, 114, 107, 111, 99, 109, 112, 106, 109, 105, 111, 111, 107, 118, 109, 113, 111, 112, 107, 109, 115, 105, 116, 118, 112, 113, 114, 110, 111, 104, 109, 111, 118, 105, 113, 113, 108, 108, 106, 106, 103, 108, 113, 104, 110, 107, 106, 109, 107, 113, 102, 105, 109, 114, 103, 110, 108, 108, 113, 110, 113, 111, 103, 127, 113, 109, 112, 105, 109, 109, 103, 105, 111, 111, 109, 101, 112, 112, 111, 122, 109, 108, 116, 116, 102, 108, 116, 106, 109, 116, 111, 116, 124, 107, 115, 118, 105, 110, 107, 111, 107, 108, 110, 108, 111, 113, 107, 107, 111, 111, 115, 113, 108, 104, 109, 114, 112, 109, 111, 111, 113, 111, 111, 111, 113, 115, 106, 112, 113, 104, 106, 109, 111, 109, 104, 112, 106, 111, 113, 107, 109, 111, 105, 112, 110, 110, 109, 109, 107, 109, 109, 109, 111, 109, 100, 112, 106, 98, 107, 110, 122, 112, 109, 108, 108, 109, 112, 103, 105, 108, 108, 108, 111, 109, 111, 114, 106, 118, 109, 113, 108, 110, 115, 112, 120, 112, 101, 108, 111, 110, 121, 110, 94, 112, 111, 112, 111, 107, 109, 113, 103, 107, 114, 108, 109, 107, 112, 111, 104, 109, 113, 121, 116, 107, 108, 124, 111, 112, 105, 110, 110, 109, 110, 108, 108, 113, 105, 110, 112, 108, 112, 108, 113, 101, 109, 103, 109, 108, 109, 124, 111, 106, 109, 105, 106, 114, 112, 110, 111, 110, 113, 112, 114, 106, 109, 105, 112, 118, 112, 104, 110, 108, 108, 107, 109, 111, 112, 108, 112, 105, 114, 116, 111, 108, 93, 110, 103, 107, 99, 120, 107, 106, 108, 102, 114, 108, 125, 108, 90, 107, 107, 111, 112, 103, 112, 109, 92, 108, 102, 106, 115, 117, 113, 110, 110, 112, 109, 110, 114, 121, 111, 107, 110, 96, 127, 114, 117, 109, 109, 95, 107, 114, 108, 105, 113, 111, 108, 112, 105, 108, 107, 112, 111, 114, 116, 107, 110, 109, 112, 109, 111, 104, 112, 104, 111, 104, 110, 104, 112, 105, 112, 111, 106, 115, 110, 109, 107, 111, 109, 108, 111, 118, 111, 106, 104, 111, 101, 114, 115, 105, 106, 110, 114, 107, 110, 111, 108, 108, 107, 109, 110, 112, 107, 110, 110, 119, 96, 110, 107, 114, 112, 108, 105, 118, 113, 114, 113, 109, 111, 112, 111, 121, 107, 109, 107, 104, 112, 109, 104, 99, 104, 109, 121, 114, 110, 110, 111, 108, 113, 104, 112, 110, 125, 119, 104, 129, 106, 99, 100, 105, 102, 109, 109, 112, 111, 106, 111, 108, 110, 110, 109, 105, 107, 110, 108, 106, 108, 100, 110, 115, 100, 112, 104, 109, 108, 113, 101, 110, 116, 109, 118, 106, 110, 113, 109, 112, 109, 105, 109, 111, 107, 106, 106, 106, 104, 111, 114, 111, 108, 109, 117, 123, 103, 108, 111, 111, 114, 110, 108, 111, 109, 110, 113, 104, 113, 105, 108, 109, 108, 100, 114, 111, 119, 118, 103, 115, 108, 115, 110, 118, 118, 107, 114, 103, 113, 108, 106, 105, 110, 102, 113, 110, 117, 109, 112, 112, 111, 111, 109, 109, 111, 106, 108, 114, 114, 113, 105, 113, 104, 109, 108, 108, 111, 109, 107, 103, 110, 109, 97, 102, 106, 114, 112, 114, 116, 110, 114, 98, 110, 112, 112, 114, 117, 117, 113, 108, 112, 107, 108, 113, 112, 109, 109, 107, 104, 104, 111, 101, 113, 103, 106, 108, 111, 105, 107, 107, 111, 108, 107, 108, 111, 113, 109, 103, 105, 112, 105, 121, 96, 113, 109, 115, 115, 110, 107, 110, 113, 113, 112, 110, 112, 103, 114, 111, 117, 115, 111, 109, 104, 114, 112, 114, 112, 117, 114, 105, 108, 109, 105, 112, 116, 111, 108, 106, 111, 110, 107, 108, 108, 106, 118, 113, 111, 111, 111, 117, 108, 100, 116, 95, 111, 106, 103, 109, 110, 113, 107, 108, 111, 119, 110, 110, 115, 108, 112, 117, 99, 109, 112, 100, 101, 115, 127, 104, 116, 112, 106, 116, 111, 100, 109, 108, 105, 108, 118, 110, 113, 113, 126, 115, 111, 111, 106, 111, 103, 108, 110, 118, 122, 109, 109, 113, 119, 111, 109, 110, 114, 117, 116, 111, 116, 110, 107, 111, 115, 106, 110, 110, 104, 108, 105, 100, 115, 112, 115, 110, 107, 116, 105, 116, 108, 108, 121, 111, 109, 108, 104, 111, 105, 112, 106, 112, 114, 106, 104, 110, 110, 109, 113, 104, 113, 118, 108, 114, 107, 117, 109, 116, 110, 120, 106, 110, 109, 107, 111, 116, 108, 118, 110, 109, 114, 96, 109, 115, 107, 106, 109, 110, 109, 104, 109, 109, 117, 109, 101, 103, 111, 104, 111, 105, 110, 107, 109, 106, 110, 118, 101, 112, 113, 107, 113, 114, 112, 104, 113, 110, 104, 108, 111, 114, 102, 100, 118, 119, 110, 112, 115, 112, 109, 109, 113, 111, 112, 108, 107, 108, 112, 104, 106, 109, 100, 111, 108, 112, 115, 107, 106, 108, 111, 111, 115, 104, 103, 101, 113, 110, 108, 108, 107, 106, 115, 112, 114, 113, 108, 108, 108, 104, 112, 112, 121, 114, 113, 110, 116, 109, 110, 107, 109, 108, 115, 110, 110, 108, 110, 119, 107, 111, 104, 121, 114, 104, 116, 111, 111, 109, 119, 111, 113, 106, 122, 114, 109, 112, 107, 114, 102, 124, 108, 110, 105, 115, 106, 106, 113, 103, 106, 102, 115, 108, 111, 107, 118, 108, 118, 114, 106, 119, 113, 116, 110, 109, 109, 112, 128, 122, 114, 113, 113, 108, 111, 106, 107, 116, 109, 110, 114, 122, 110, 112, 92, 102, 110, 110, 128, 108, 101, 110, 115, 112, 105, 118, 114, 108, 117, 109, 112, 116, 106, 105, 109, 111, 113, 120, 110, 108, 109, 114, 110, 107, 107, 107, 106, 105, 115, 116, 115, 107, 109, 113, 112, 116, 107, 109, 97, 111, 106, 102, 107, 108, 114, 118, 109, 105, 103, 115, 110, 102, 131, 116, 102, 107, 107, 102, 111, 101, 108, 120, 108, 102, 121, 113, 110, 114, 121, 100, 103, 107, 107, 127, 106, 111, 99, 103, 102, 111, 95, 90, 114, 108, 125, 117, 115, 107, 108, 107, 103, 119, 114, 111, 106, 127, 101, 114, 112, 112, 118, 108, 115, 106, 109, 108, 108, 104, 109, 102, 122, 110, 130, 110, 114, 111, 103, 106, 111, 116, 105, 101, 112, 117, 139, 100, 112, 107, 114, 108, 110, 110, 104, 103, 111, 121, 123, 110, 101, 111, 118, 116, 104, 108, 109, 126, 145, 111, 104, 131, 120, 110, 114, 110, 106, 110, 107, 126, 110, 104, 121, 102, 109, 111, 125, 100, 111, 111, 111, 105, 101, 117, 121, 109, 113, 117, 126, 108, 107, 116, 102, 104, 106, 120, 102, 113, 120, 106, 102, 113, 102, 112, 97, 118, 108, 103, 122, 113, 124, 116, 116, 114, 110, 115, 106, 109, 109, 108, 114, 110, 113, 118, 104, 115, 101, 119, 120, 109, 120, 105, 109, 110, 113, 123, 121, 113, 101, 115, 109, 117, 106, 126, 122, 114, 111, 123, 117, 132, 96, 110, 103, 87, 110, 101, 101, 120, 119, 104, 105, 112, 98, 114, 106, 104, 113, 106, 105, 112, 102, 115, 102, 108, 108, 114, 96, 103, 98, 129, 108, 115, 113, 110, 104, 105, 111, 115, 103, 118, 110, 120, 105, 107, 116, 98, 109, 113, 111, 103, 139, 115, 101, 109, 111, 104, 99, 117, 117, 109, 110, 111, 109, 114, 103, 108, 112, 98, 118, 118, 108, 106, 128, 116, 96, 109, 121, 95, 109, 110, 121, 108, 108, 92, 82, 106, 103, 105, 111, 105, 114, 110, 103, 104, 107, 120, 108, 119, 109, 102, 115, 105, 110, 103, 109, 101, 95, 103, 108, 119, 110, 108, 121, 124, 118, 117, 108, 97, 119, 117, 112, 102, 104, 106, 102, 109, 99, 101, 115, 115, 118, 104, 114, 101, 107, 116, 108, 110, 118, 109, 109, 112, 106, 101, 104, 103, 123, 112, 78, 110, 109, 122, 100, 117, 92, 108, 87, 95, 110, 113, 113, 105, 108, 147, 119, 120, 110, 129, 121, 106, 111, 109, 111, 102, 107, 118, 125, 112, 101, 110, 94, 111, 106, 118, 104, 108, 123, 133, 99, 103, 96, 114, 101, 111, 112, 117, 107, 109, 115, 107, 112, 111, 100, 111, 108, 110, 115, 116, 101, 123, 101, 103, 108, 99, 110, 95, 117, 113, 119, 110, 114, 110, 108, 108, 112, 102, 109, 114, 104, 107, 112, 109, 103, 105, 124, 100, 113, 115, 105, 92, 102, 101, 109, 110, 111, 108, 88, 101, 106, 108, 93, 118, 109, 101, 110, 118, 106, 110, 112, 117, 98, 116, 109, 99, 93, 111, 100, 107, 110, 103, 109, 106, 110, 108, 113, 134, 100, 105, 113, 118, 110, 107, 110, 126, 100, 117, 106, 102, 108, 128, 106, 101, 103, 125, 112, 110, 140, 110, 119, 120, 107, 112, 107, 111, 116, 108, 113, 106, 106, 118, 118, 115, 116, 102, 111, 118, 113, 130, 115, 108, 105, 116, 109, 110, 118, 109, 109, 112, 104, 111, 112, 109, 108, 110, 112, 111, 111, 112, 111, 111, 109, 109, 110, 108, 110, 111, 113, 110, 94, 110, 107, 109, 113, 106, 115, 112, 109, 112, 110, 110, 110, 112, 106, 101, 111, 111, 110, 108, 106, 108, 112, 98, 113, 111, 112, 112, 116, 107, 106, 99, 104, 114, 110, 111, 109, 111, 108, 116, 113, 114, 113, 109, 110, 109, 114, 109, 110, 110, 111, 109, 111, 124, 108, 110, 105, 109, 112, 108, 111, 101, 104, 115, 111, 103, 111, 108, 123, 115, 109, 111, 110, 109, 108, 112, 109, 114, 112, 108, 109, 118, 108, 110, 108, 107, 113, 110, 111, 107, 107, 109, 101, 115, 109, 114, 110, 109, 111, 110, 110, 107, 109, 111, 114, 106, 106, 106, 115, 108, 109, 116, 105, 109, 108, 105, 107, 109, 116, 112, 108, 108, 114, 109, 109, 113, 109, 116, 104, 109, 112, 99, 104, 108, 110, 108, 110, 99, 113, 108, 113, 111, 117, 107, 114, 115, 110, 109, 112, 105, 110, 113, 114, 109, 111, 111, 111, 111, 116, 111, 108, 112, 111, 108, 112, 117, 109, 113, 108, 112, 111, 110, 111, 119, 112, 111, 120, 116, 111, 107, 111, 108, 115, 108, 108, 106, 108, 109, 113, 113, 107, 110, 120, 109, 113, 107, 110, 109, 109, 113, 109, 106, 107, 116, 105, 111, 110, 108, 110, 117, 111, 118, 111, 111, 108, 111, 105, 114, 113, 106, 102, 113, 110, 105, 112, 111, 114, 109, 109, 104, 106, 107, 105, 100, 113, 111, 106, 110, 111, 108, 104, 112, 108, 108, 116, 112, 108, 115, 112, 110, 104, 113, 113, 104, 110, 112, 115, 109, 113, 113, 112, 112, 110, 107, 108, 110, 119, 109, 104, 108, 108, 109, 113, 109, 114, 108, 116, 105, 113, 108, 112, 110, 113, 110, 111, 107, 118, 109, 115, 111, 109, 118, 108, 112, 106, 114, 110, 107, 112, 108, 110, 112, 114, 112, 107, 110, 108, 106, 112, 108, 110, 109, 112, 111, 111, 107, 114, 110, 110, 111, 109, 101, 111, 111, 109, 108, 113, 108, 108, 110, 109, 107, 109, 110, 109, 110, 106, 108, 108, 110, 111, 111, 108, 114, 110, 109, 112, 115, 110, 114, 116, 116, 110, 116, 111, 113, 110, 106, 116, 108, 111, 103, 112, 109, 105, 110, 117, 112, 109, 110, 109, 110, 107, 112, 112, 111, 107, 111, 112, 111, 109, 108, 112, 110, 109, 107, 113, 115, 118, 108, 112, 121, 109, 114, 112, 116, 110, 108, 104, 106, 108, 110, 110, 107, 113, 110, 115, 111, 102, 107, 115, 111, 110, 114, 110, 110, 112, 113, 109, 110, 112, 111, 107, 109, 111, 109, 112, 110, 113, 111, 117, 110, 107, 118, 111, 111, 106, 111, 111, 112, 106, 108, 111, 110, 105, 109, 104, 110, 111, 111, 116, 110, 111, 109, 107, 109, 109, 102, 107, 107, 105, 103, 114, 107, 108, 110, 107, 112, 108, 104, 99, 116, 116, 108, 111, 108, 109, 108, 113, 108, 113, 109, 110, 112, 113, 99, 115, 103, 120, 110, 93, 107, 117, 109, 106, 112, 104, 106, 117, 108, 110, 113, 110, 114, 100, 100, 94, 110, 116, 102, 103, 104, 95, 108, 106, 112, 114, 120, 112, 107, 118, 114, 109, 120, 108, 111, 109, 98, 114, 111, 100, 101, 116, 111, 101, 113, 104, 165, 117, 106, 110, 105, 110, 108, 120, 111, 116, 115, 96, 114, 91, 107, 120, 116, 91, 105, 114, 108, 101, 120, 110, 124, 113, 111, 119, 98, 103, 111, 113, 105, 134, 111, 127, 94, 96, 141, 112, 92, 108, 111, 107, 113, 116, 112, 113, 103, 111, 110, 113, 114, 108, 111, 110, 113, 98, 113, 103, 104, 105, 108, 117, 114, 108, 116, 95, 112, 106, 107, 111, 112, 110, 110, 108, 100, 114, 108, 110, 103, 107, 109, 109, 108, 113, 114, 109, 112, 105, 108, 130, 106, 108, 96, 103, 88, 110, 111, 111, 117, 113, 96, 97, 130, 108, 108, 112, 105, 118, 109, 114, 108, 117, 117, 109, 109, 107, 103, 103, 109, 113, 114, 111, 108, 121, 112, 113, 108, 100, 102, 106, 101, 116, 110, 98, 127, 107, 100, 111, 110, 125, 109, 112, 108, 108, 105, 107, 103, 109, 112, 113, 125, 116, 114, 104, 108, 116, 119, 110, 139, 112, 111, 123, 111, 108, 110, 102, 111, 109, 110, 104, 109, 110, 105, 113, 106, 109, 125, 115, 107, 107, 99, 110, 107, 106, 108, 108, 119, 98, 111, 118, 100, 112, 113, 108, 112, 120, 110, 112, 111, 116, 109, 115, 116, 110, 113, 112, 105, 108, 102, 110, 108, 116, 104, 116, 108, 115, 103, 101, 108, 128, 109, 101, 113, 111, 143, 114, 97, 120, 95, 109, 101, 101, 94, 109, 120, 113, 112, 111, 83, 117, 106, 103, 116, 112, 108, 111, 107, 101, 109, 120, 102, 106, 111, 117, 108, 112, 102, 96, 115, 97, 108, 103, 122, 111, 119, 121, 103, 112, 105, 102, 121, 111, 112, 107, 111, 116, 115, 108, 108, 95, 106, 118, 93, 112, 120, 110, 118, 100, 109, 112, 115, 108, 114, 102, 103, 113, 110, 115, 109, 123, 98, 125, 117, 98, 105, 108, 104, 109, 105, 110, 111, 120, 110, 107, 120, 123, 98, 108, 113, 94, 115, 106, 112, 125, 117, 104, 109, 119, 103, 112, 115, 113, 93, 108, 109, 114, 114, 122, 115, 106, 129, 100, 111, 109, 120, 109, 109, 108, 106, 111, 105, 110, 116, 98, 120, 109, 110, 106, 100, 117, 114, 83, 118, 116, 112, 105, 116, 119, 101, 112, 110, 111, 93, 95, 112, 114, 106, 109, 108, 107, 113, 98, 105, 115, 111, 101, 99, 109, 99, 110, 112, 116, 104, 104, 114, 104, 118, 121, 105, 108, 104, 106, 95, 108, 115, 109, 124, 111, 107, 105, 118, 111, 114, 109, 111, 116, 108, 110, 108, 106, 124, 110, 111, 117, 111, 130, 113, 113, 117, 116, 118, 109, 108, 112, 90, 112, 124, 115, 108, 109, 109, 104, 104, 102, 120, 98, 116, 115, 100, 119, 118, 99, 108, 114, 97, 106, 97, 104, 110, 104, 110, 102, 112, 128, 97, 110, 106, 106, 102, 104, 101, 110, 114, 119, 114, 109, 107, 112, 105, 113, 107, 105, 109, 119, 112, 126, 106, 112, 100, 114, 109, 117, 99, 134, 100, 109, 109, 111, 112, 113, 114, 113, 100, 116, 107, 113, 101, 105, 124, 102, 107, 100, 125, 93, 102, 112, 125, 122, 85, 109, 115, 120, 104, 107, 110, 113, 118, 119, 111, 105, 111, 106, 107, 108, 106, 103, 101, 117, 104, 117, 116, 91, 120, 104, 114, 110, 125, 107, 99, 106, 116, 115, 100, 109, 114, 112, 101, 105, 113, 118, 114, 104, 117, 104, 111, 115, 116, 97, 112, 111, 132, 113, 110, 109, 111, 100, 106, 121, 105, 109, 108, 104, 106, 106, 116, 124, 105, 106, 114, 107, 120, 112, 119, 118, 112, 118, 126, 111, 107, 105, 111, 104, 108, 94, 101, 126, 119, 109, 107, 98, 114, 115, 99, 106, 111, 112, 97, 108, 108, 117, 113, 100, 143, 121, 115, 122, 111, 108, 101, 116, 100, 108, 113, 110, 106, 113, 116, 104, 113, 110, 111, 108, 136, 102, 104, 106, 121, 112, 101, 112, 102, 102, 105, 102, 106, 104, 107, 116, 101, 111, 111, 107, 106, 110, 106, 114, 113, 104, 95, 109, 100, 105, 106, 111, 96, 118, 103, 106, 101, 106, 99, 115, 120, 114, 104, 115, 117, 105, 103, 128, 119, 108, 116, 110, 99, 109, 100, 109, 119, 115, 97, 114, 116, 108, 109, 110, 105, 125, 114, 122, 109, 103, 110, 110, 107, 114, 94, 112, 119, 118, 116, 108, 109, 107, 111, 121, 98, 110, 103, 109, 114, 116, 127, 107, 111, 119, 100, 106, 109, 98, 111, 91, 113, 84, 108, 114, 109, 98, 112, 109, 102, 105, 104, 121, 92, 111, 114, 113, 106, 99, 125, 102, 114, 111, 115, 103, 118, 115, 100, 119, 110, 106, 106, 108, 113, 108, 112, 120, 114, 109, 112, 110, 106, 109, 95, 121, 107, 113, 123, 109, 98, 122, 95, 104, 117, 107, 109, 111, 107, 111, 117, 101, 117, 105, 101, 107, 127, 111, 106, 104, 103, 112, 103, 104, 109, 113, 106, 108, 117, 105, 109, 107, 118, 117, 109, 107, 119, 106, 116, 103, 118, 117, 99, 111, 107, 116, 102, 114, 120, 107, 110, 116, 99, 125, 116, 109, 101, 110, 111, 114, 110, 104, 101, 111, 103, 106, 111, 99, 96, 106, 102, 102, 99, 106, 107, 109, 107, 108, 105, 111, 103, 105, 105, 107, 105, 106, 96, 109, 106, 111, 123, 96, 104, 100, 114, 104, 116, 112, 123, 116, 109, 115, 110, 117, 113, 116, 110, 107, 113, 101, 111, 112, 109, 101, 110, 115, 118, 118, 108, 115, 102, 111, 107, 109, 108, 105, 117, 110, 122, 113, 112, 118, 100, 106, 113, 107, 111, 109, 109, 117, 106, 104, 102, 100, 109, 105, 119, 110, 116, 107, 100, 113, 109, 103, 109, 111, 112, 107, 111, 114, 104, 93, 111, 105, 123, 102, 110, 103, 105, 112, 110, 117, 110, 101, 114, 115, 99, 108, 125, 113, 107, 113, 111, 102, 113, 100, 104, 108, 109, 105, 105, 103, 121, 115, 109, 106, 112, 105, 102, 108, 109, 109, 111, 104, 119, 116, 102, 95, 109, 117, 111, 109, 109, 104, 119, 111, 98, 109, 117, 107, 111, 122, 97, 108, 115, 106, 106, 109, 99, 109, 132, 103, 115, 109, 123, 115, 106, 104, 103, 102, 113, 113, 104, 109, 102, 119, 102, 114, 106, 106, 104, 101, 106, 107, 105, 114, 105, 102, 105, 112, 106, 98, 104, 117, 101, 121, 98, 104, 108, 114, 109, 114, 115, 104, 119, 107, 109, 103, 105, 109, 101, 110, 104, 105, 108, 116, 107, 110, 104, 95, 102, 106, 95, 110, 99, 114, 106, 118, 101, 105, 115, 114, 102, 107, 106, 111, 107, 102, 104, 105, 116, 113, 97, 108, 96, 100, 109, 100, 111, 97, 117, 111, 113, 113, 106, 112, 90, 98, 104, 106, 104, 111, 119, 118, 100, 121, 114, 101, 110, 105, 107, 107, 103, 105, 106, 108, 111, 110, 105, 117, 112, 118, 108, 105, 119, 103, 110, 101, 110, 103, 101, 110, 108, 107, 104, 98, 109, 116, 107, 108, 105, 116, 106, 110, 112, 111, 104, 112, 110, 109, 109, 95, 123, 100, 114, 107, 120, 108, 112, 115, 106, 112, 107, 101, 102, 124, 108, 116, 107, 110, 106, 106, 113, 115, 113, 108, 102, 110, 114, 111, 97, 98, 104, 109, 115, 122, 113, 112, 101, 106, 117, 113, 113, 100, 121, 104, 103, 106, 125, 119, 107, 114, 114, 93, 111, 102, 110, 116, 100, 92, 111, 119, 105, 114, 110, 106, 108, 113, 110, 101, 105, 107, 90, 114, 114, 116, 105, 101, 125, 115, 109, 105, 106, 117, 114, 112, 106, 104, 109, 109, 112, 100, 120, 98, 109, 96, 98, 107, 112, 111, 97, 118, 110, 102, 140, 105, 104, 109, 105, 106, 97, 109, 111, 114, 114, 110, 109, 111, 113, 109, 115, 96, 116, 109, 103, 109, 109, 108, 113, 113, 107, 113, 103, 105, 103, 114, 105, 101, 104, 117, 101, 118, 129, 110, 116, 107, 96, 105, 118, 113, 106, 98, 104, 125, 101, 108, 107, 112, 107, 119, 104, 105, 113, 107, 104, 113, 134, 123, 118, 103, 124, 105, 100, 115, 107, 116, 99, 110, 113, 99, 116, 111, 102, 105, 100, 107, 97, 108, 106, 113, 98, 106, 123, 109, 108, 121, 116, 123, 110, 110, 111, 112, 103, 107, 120, 116, 121, 109, 105, 102, 103, 111, 105, 111, 107, 106, 111, 100, 104, 105, 108, 102, 114, 97, 110, 111, 109, 116, 111, 108, 103, 118, 113, 108, 118, 111, 115, 116, 118, 106, 120, 105, 101, 110, 105, 111, 106, 98, 121, 101, 114, 102, 117, 122, 111, 111, 110, 108, 113, 119, 114, 109, 111, 110, 104, 106, 111, 111, 107, 102, 97, 111, 134, 110, 108, 109, 118, 108, 104, 109, 110, 110, 110, 116, 101, 127, 105, 110, 121, 107, 116, 120, 100, 112, 111, 100, 121, 108, 101, 114, 118, 108, 104, 119, 107, 110, 107, 107, 109, 116, 107, 111, 108, 104, 115, 113, 108, 103, 115, 112, 116, 108, 106, 106, 110, 105, 113, 107, 113, 106, 110, 107, 107, 106, 111, 103, 111, 114, 111, 113, 110, 105, 116, 108, 107, 116, 114, 108, 113, 108, 109, 112, 110, 110, 107, 106, 102, 108, 110, 110, 112, 96, 94, 119, 114, 107, 109, 106, 109, 109, 107, 107, 98, 111, 113, 109, 109, 106, 110, 112, 106, 113, 107, 109, 109, 106, 110, 109, 107, 111, 107, 113, 104, 112, 109, 115, 109, 112, 105, 106, 106, 110, 116, 111, 102, 121, 111, 112, 109, 111, 108, 105, 113, 116, 113, 114, 109, 111, 110, 109, 112, 108, 112, 108, 106, 112, 105, 111, 106, 116, 111, 111, 115, 112, 112, 113, 105, 111, 109, 109, 111, 109, 117, 107, 107, 113, 108, 109, 110, 112, 105, 111, 106, 110, 105, 112, 107, 105, 108, 111, 108, 108, 104, 109, 110, 113, 109, 102, 102, 115, 104, 113, 108, 107, 112, 108, 104, 108, 115, 108, 102, 119, 101, 105, 102, 109, 113, 111, 110, 117, 113, 108, 107, 109, 111, 112, 107, 113, 112, 110, 107, 107, 107, 108, 108, 116, 106, 107, 114, 110, 114, 110, 116, 113, 126, 104, 99, 103, 111, 109, 114, 110, 110, 107, 114, 111, 103, 111, 109, 108, 109, 114, 109, 110, 111, 109, 110, 115, 108, 112, 110, 107, 111, 107, 112, 108, 112, 105, 104, 109, 118, 111, 109, 110, 112, 109, 111, 114, 107, 112, 102, 120, 104, 112, 110, 103, 110, 105, 117, 110, 98, 105, 110, 102, 109, 110, 108, 116, 104, 111, 112, 108, 103, 113, 110, 101, 113, 110, 109, 115, 112, 106, 112, 107, 109, 107, 113, 108, 109, 116, 111, 114, 114, 106, 112, 119, 114, 110, 109, 102, 111, 109, 109, 111, 116, 106, 109, 100, 113, 106, 114, 106, 107, 112, 102, 111, 110, 113, 108, 108, 114, 118, 111, 106, 107, 112, 109, 111, 107, 114, 115, 107, 109, 108, 114, 110, 96, 109, 115, 108, 106, 101, 102, 114, 110, 111, 105, 114, 114, 102, 101, 110, 109, 105, 111, 113, 110, 108, 108, 108, 102, 110, 108, 114, 109, 107, 105, 108, 105, 113, 107, 107, 112, 112, 107, 107, 107, 106, 117, 110, 110, 111, 107, 110, 108, 110, 114, 113, 114, 110, 108, 107, 105, 110, 107, 113, 111, 115, 109, 107, 113, 106, 102, 108, 110, 119, 110, 108, 113, 108, 111, 108, 111, 111, 112, 108, 114, 111, 108, 116, 118, 110, 107, 109, 111, 111, 103, 116, 111, 113, 109, 110, 101, 104, 111, 111, 110, 102, 113, 115, 112, 111, 109, 120, 111, 111, 114, 109, 104, 101, 115, 106, 109, 108, 109, 113, 96, 105, 110, 99, 114, 107, 118, 112, 112, 97, 109, 115, 110, 107, 109, 109, 110, 110, 109, 111, 107, 112, 109, 104, 109, 113, 109, 109, 108, 115, 108, 107, 106, 109, 108, 107, 111, 108, 110, 109, 113, 115, 107, 103, 100, 112, 112, 111, 105, 108, 108, 104, 100, 108, 114, 116, 108, 109, 108, 114, 106, 117, 109, 109, 111, 113, 114, 108, 112, 109, 111, 111, 115, 109, 113, 92, 101, 122, 103, 111, 110, 102, 111, 109, 110, 102, 110, 103, 110, 106, 106, 109, 116, 108, 108, 130, 117, 109, 109, 112, 113, 121, 110, 114, 98, 103, 119, 108, 114, 106, 100, 112, 103, 111, 106, 108, 109, 113, 114, 114, 110, 104, 110, 130, 109, 109, 109, 106, 114, 109, 114, 110, 107, 108, 108, 109, 106, 110, 111, 106, 112, 116, 107, 100, 99, 100, 108, 103, 111, 105, 106, 112, 110, 109, 111, 104, 111, 114, 107, 113, 105, 118, 109, 110, 111, 122, 111, 113, 105, 113, 113, 112, 117, 107, 107, 110, 110, 114, 114, 108, 113, 108, 106, 119, 115, 108, 113, 112, 116, 112, 126, 105, 107, 109, 113, 114, 115, 112, 113, 113, 107, 105, 109, 111, 102, 109, 113, 111, 102, 109, 107, 110, 107, 113, 109, 112, 110, 111, 113, 111, 107, 106, 111, 111, 114, 110, 113, 111, 110, 107, 117, 104, 107, 112, 111, 114, 104, 112, 112, 102, 116, 114, 109, 107, 113, 115, 113, 111, 109, 107, 109, 120, 106, 110, 113, 108, 118, 110, 106, 107, 115, 110, 110, 115, 121, 108, 111, 105, 111, 111, 115, 112, 108, 116, 112, 108, 103, 111, 110, 110, 108, 110, 108, 114, 111, 107, 110, 110, 112, 109, 112, 108, 102, 114, 115, 110, 114, 108, 104, 108, 107, 106, 111, 108, 105, 113, 119, 113, 109, 117, 113, 102, 110, 105, 108, 108, 113, 107, 108, 116, 116, 109, 112, 106, 110, 110, 102, 108, 116, 100, 108, 102, 110, 116, 131, 122, 110, 107, 116, 108, 118, 107, 105, 108, 112, 105, 108, 113, 104, 120, 107, 112, 115, 111, 114, 108, 111, 108, 108, 112, 108, 110, 119, 111, 107, 106, 110, 111, 107, 108, 109, 111, 109, 108, 113, 110, 109, 112, 112, 107, 115, 113, 110, 111, 106, 115, 108, 108, 109, 85, 111, 115, 105, 116, 101, 107, 98, 114, 111, 119, 115, 108, 109, 113, 108, 109, 110, 118, 113, 109, 111, 112, 107, 114, 105, 111, 109, 108, 111, 110, 111, 105, 92, 107, 122, 104, 113, 111, 106, 109, 112, 104, 113, 92, 113, 101, 114, 101, 110, 110, 108, 103, 106, 111, 105, 116, 112, 118, 105, 113, 108, 112, 114, 106, 114, 108, 108, 112, 111, 106, 105, 107, 113, 111, 111, 115, 116, 108, 107, 111, 119, 106, 114, 106, 113, 112, 107, 110, 110, 110, 109, 112, 112, 112, 103, 115, 110, 112, 112, 121, 111, 113, 108, 111, 110, 105, 107, 106, 115, 110, 109, 104, 109, 99, 112, 105, 109, 107, 110, 109, 116, 111, 110, 111, 112, 107, 111, 112, 109, 107, 111, 110, 107, 112, 111, 117, 94, 107, 113, 112, 109, 107, 91, 113, 109, 112, 108, 107, 107, 107, 116, 111, 111, 112, 125, 109, 113, 114, 110, 112, 113, 112, 116, 113, 113, 108, 108, 103, 115, 111, 110, 103, 132, 106, 109, 109, 108, 116, 118, 100, 120, 127, 99, 108, 106, 117, 112, 110, 99, 103, 116, 111, 114, 119, 106, 123, 112, 111, 103, 112, 104, 103, 116, 114, 114, 111, 98, 107, 102, 101, 101, 106, 107, 105, 108, 123, 103, 107, 112, 99, 118, 111, 107, 102, 99, 114, 111, 107, 115, 114, 103, 117, 115, 105, 107, 110, 113, 129, 113, 108, 114, 118, 120, 116, 112, 108, 115, 115, 115, 106, 117, 109, 113, 104, 109, 107, 121, 120, 119, 115, 104, 111, 107, 118, 99, 119, 108, 112, 104, 110, 105, 107, 107, 98, 115, 110, 115, 103, 121, 116, 109, 115, 114, 105, 115, 108, 110, 106, 107, 115, 101, 113, 114, 116, 110, 114, 119, 110, 117, 106, 106, 113, 124, 119, 111, 111, 107, 115, 108, 109, 109, 114, 113, 108, 113, 111, 108, 106, 111, 114, 110, 106, 114, 112, 99, 115, 107, 122, 110, 113, 118, 111, 110, 112, 107, 107, 128, 124, 104, 106, 117, 112, 111, 110, 118, 121, 107, 118, 110, 118, 109, 100, 105, 94, 115, 113, 118, 102, 107, 104, 112, 111, 101, 105, 105, 114, 101, 106, 88, 113, 108, 127, 104, 110, 105, 116, 111, 109, 128, 119, 105, 110, 118, 108, 109, 106, 110, 121, 105, 114, 104, 110, 115, 98, 116, 121, 101, 118, 122, 112, 101, 101, 96, 92, 110, 108, 101, 106, 104, 116, 102, 114, 116, 110, 108, 109, 110, 118, 111, 102, 107, 118, 104, 107, 105, 110, 110, 108, 106, 99, 113, 103, 109, 108, 113, 118, 118, 116, 113, 120, 113, 99, 109, 113, 117, 104, 104, 111, 105, 113, 73, 109, 107, 107, 113, 101, 105, 116, 111, 113, 110, 112, 113, 107, 102, 107, 120, 104, 111, 112, 106, 113, 104, 111, 104, 121, 98, 101, 111, 115, 105, 120, 99, 112, 112, 107, 118, 93, 130, 126, 98, 109, 110, 105, 113, 111, 111, 105, 118, 108, 119, 113, 112, 101, 99, 105, 99, 96, 104, 107, 115, 113, 115, 111, 105, 114, 106, 111, 98, 113, 100, 120, 112, 112, 100, 124, 103, 95, 119, 125, 121, 107, 88, 112, 116, 100, 111, 108, 116, 108, 100, 112, 109, 110, 110, 114, 106, 105, 111, 117, 105, 95, 115, 114, 119, 115, 114, 109, 117, 109, 104, 123, 108, 116, 112, 108, 120, 105, 114, 111, 102, 116, 117, 107, 119, 119, 119, 127, 117, 108, 122, 117, 112, 93, 112, 113, 111, 123, 106, 121, 108, 103, 115, 108, 110, 114, 109, 122, 107, 114, 106, 111, 121, 95, 113, 116, 107, 108, 114, 114, 121, 117, 101, 114, 111, 113, 105, 131, 111, 103, 139, 101, 112, 115, 102, 98, 104, 109, 116, 107, 111, 115, 102, 107, 101, 97, 104, 115, 125, 114, 112, 96, 109, 110, 105, 121, 105, 110, 115, 115, 113, 131, 110, 129, 113, 118, 107, 118, 108, 118, 92, 111, 116, 110, 112, 116, 117, 133, 116, 120, 111, 111, 111, 109, 117, 111, 109, 108, 111, 107, 113, 117, 116, 117, 109, 117, 118, 126, 101, 115, 108, 115, 103, 107, 119, 101, 104, 104, 109, 110, 103, 100, 101, 105, 130, 105, 116, 101, 102, 101, 105, 107, 100, 102, 99, 101, 103, 108, 105, 104, 126, 103, 110, 105, 123, 113, 130, 111, 128, 105, 102, 113, 131, 111, 103, 116, 114, 111, 114, 112, 107, 105, 107, 105, 89, 114, 111, 109, 109, 108, 99, 112, 108, 110, 120, 116, 102, 103, 101, 98, 104, 107, 108, 131, 99, 104, 125, 111, 101, 107, 114, 105, 100, 116, 106, 114, 116, 99, 113, 116, 109, 110, 106, 112, 123, 115, 112, 108, 103, 112, 108, 103, 113, 110, 118, 112, 109, 106, 108, 104, 105, 113, 110, 103, 104, 115, 117, 118, 104, 108, 110, 114, 107, 108, 102, 105, 105, 111, 99, 102, 111, 99, 106, 107, 111, 111, 100, 106, 121, 107, 90, 105, 101, 101, 109, 106, 123, 114, 105, 108, 108, 106, 101, 121, 108, 102, 98, 107, 115, 111, 111, 111, 117, 108, 105, 109, 118, 100, 119, 101, 106, 108, 117, 122, 105, 115, 106, 102, 110, 105, 106, 106, 113, 106, 109, 114, 109, 106, 109, 112, 113, 108, 123, 110, 106, 108, 113, 125, 106, 116, 106, 111, 94, 117, 110, 106, 107, 122, 104, 107, 124, 102, 127, 107, 104, 118, 109, 104, 108, 105, 109, 110, 110, 108, 107, 133, 113, 103, 116, 107, 110, 106, 107, 101, 103, 113, 121, 111, 114, 108, 108, 116, 107, 113, 127, 117, 108, 104, 105, 108, 100, 110, 101, 113, 99, 106, 106, 117, 109, 113, 115, 111, 113, 110, 110, 117, 110, 117, 112, 109, 109, 109, 114, 104, 105, 105, 106, 117, 100, 93, 102, 111, 113, 121, 113, 107, 110, 107, 102, 129, 105, 109, 106, 110, 105, 103, 115, 118, 107, 111, 109, 112, 101, 109, 115, 111, 110, 100, 111, 116, 112, 111, 105, 103, 117, 113, 107, 110, 102, 98, 101, 101, 108, 106, 100, 102, 109, 110, 112, 109, 103, 100, 103, 111, 120, 113, 104, 110, 111, 122, 97, 108, 104, 103, 112, 107, 113, 110, 109, 108, 104, 99, 119, 106, 120, 115, 105, 100, 113, 96, 118, 116, 112, 122, 104, 113, 112, 112, 105, 125, 101, 110, 106, 121, 103, 114, 101, 113, 118, 104, 94, 100, 103, 112, 109, 107, 112, 108, 115, 106, 108, 104, 111, 107, 101, 112, 103, 94, 108, 117, 110, 109, 115, 118, 111, 111, 124, 113, 105, 110, 110, 101, 126, 109, 114, 111, 110, 109, 110, 106, 107, 119, 101, 106, 109, 116, 112, 116, 114, 112, 113, 105, 113, 110, 111, 98, 101, 114, 108, 114, 107, 107, 100, 118, 110, 108, 117, 107, 100, 104, 109, 105, 114, 101, 112, 108, 108, 106, 107, 110, 113, 117, 110, 105, 127, 120, 116, 107, 112, 109, 109, 100, 121, 104, 109, 114, 109, 119, 114, 114, 98, 101, 111, 109, 107, 105, 114, 114, 103, 106, 112, 108, 97, 106, 108, 115, 113, 106, 101, 110, 101, 108, 133, 109, 108, 101, 107, 108, 107, 110, 124, 108, 107, 112, 112, 109, 118, 107, 116, 104, 118, 112, 112, 104, 102, 110, 115, 104, 109, 110, 110, 105, 109, 106, 113, 107, 106, 105, 114, 114, 112, 123, 112, 109, 113, 107, 108, 107, 110, 103, 107, 102, 109, 113, 107, 109, 125, 108, 108, 115, 113, 112, 106, 110, 102, 104, 102, 118, 105, 124, 110, 110, 107, 110, 112, 117, 112, 109, 108, 117, 117, 115, 107, 110, 118, 112, 104, 112, 111, 114, 105, 112, 118, 108, 103, 108, 112, 102, 107, 103, 104, 103, 111, 105, 114, 110, 122, 113, 118, 104, 109, 110, 117, 108, 113, 108, 109, 112, 111, 121, 112, 109, 108, 106, 110, 116, 102, 98, 110, 113, 107, 114, 114, 107, 109, 111, 103, 107, 109, 108, 109, 108, 111, 109, 106, 118, 96, 111, 116, 127, 112, 111, 110, 115, 107, 107, 108, 106, 111, 116, 100, 116, 102, 112, 117, 106, 107, 105, 106, 109, 110, 113, 103, 110, 109, 110, 124, 97, 108, 109, 107, 110, 105, 117, 108, 105, 110, 113, 108, 125, 113, 104, 108, 120, 109, 120, 112, 114, 108, 108, 116, 124, 107, 112, 109, 108, 108, 126, 112, 113, 106, 117, 110, 109, 108, 113, 116, 100, 105, 128, 108, 103, 108, 122, 114, 111, 114, 114, 108, 103, 114, 108, 107, 112, 110, 113, 104, 115, 103, 123, 106, 113, 112, 108, 108, 106, 105, 114, 118, 108, 109, 121, 110, 113, 114, 118, 110, 118, 111, 111, 100, 108, 111, 114, 104, 107, 106, 106, 113, 116, 103, 112, 107, 120, 119, 111, 112, 109, 113, 112, 107, 110, 111, 111, 114, 112, 109, 102, 117, 111, 110, 109, 101, 105, 113, 113, 106, 108, 128, 114, 111, 108, 113, 105, 116, 111, 125, 110, 123, 108, 105, 105, 107, 112, 104, 118, 101, 111, 116, 112, 106, 113, 111, 107, 113, 117, 106, 118, 113, 112, 115, 107, 111, 109, 113, 110, 111, 105, 99, 111, 116, 115, 109, 112, 111, 104, 110, 117, 117, 108, 117, 112, 107, 106, 105, 110, 120, 106, 102, 108, 110, 112, 109, 103, 112, 108, 108, 102, 104, 106, 112, 107, 110, 114, 115, 105, 109, 116, 114, 99, 113, 111, 108, 105, 115, 113, 111, 112, 107, 115, 112, 106, 112, 103, 111, 107, 108, 112, 118, 107, 127, 109, 110, 113, 107, 107, 116, 108, 112, 118, 103, 108, 117, 111, 111, 111, 117, 102, 116, 104, 114, 119, 108, 115, 107, 113, 123, 113, 118, 108, 112, 110, 121, 107, 107, 100, 103, 98, 110, 110, 117, 109, 105, 107, 105, 109, 111, 110, 106, 108, 101, 114, 112, 108, 110, 111, 117, 106, 106, 108, 109, 114, 107, 96, 113, 108, 108, 107, 107, 105, 118, 124, 109, 112, 120, 109, 108, 109, 117, 113, 109, 108, 107, 108, 106, 110, 115, 114, 106, 104, 107, 109, 106, 100, 110, 114, 106, 107, 109, 109, 112, 104, 114, 113, 110, 127, 108, 104, 115, 107, 119, 117, 112, 111, 102, 113, 113, 104, 109, 119, 113, 110, 105, 114, 111, 110, 104, 107, 110, 112, 111, 112, 110, 114, 108, 104, 108, 118, 99, 114, 116, 108, 109, 114, 109, 120, 107, 111, 108, 109, 110, 107, 113, 110, 122, 116, 106, 108, 111, 105, 91, 114, 109, 108, 112, 103, 107, 107, 106, 110, 111, 110, 114, 112, 109, 108, 115, 107, 113, 109, 110, 115, 107, 105, 114, 111, 118, 105, 108, 121, 106, 113, 106, 113, 114, 116, 111, 111, 112, 106, 105, 109, 116, 106, 102, 109, 115, 121, 111, 110, 105, 111, 108, 105, 108, 112, 109, 114, 113, 96, 107, 110, 113, 109, 108, 109, 108, 99, 99, 111, 113, 108, 111, 106, 106, 114, 120, 111, 106, 110, 120, 109, 121, 114, 120, 111, 101, 108, 108, 115, 111, 106, 109, 110, 109, 103, 113, 114, 108, 114, 109, 119, 108, 109, 114, 104, 104, 114, 118, 112, 110, 114, 116, 109, 112, 106, 111, 112, 101, 106, 109, 114, 118, 106, 115, 105, 119, 107, 115, 113, 110, 116, 118, 105, 104, 104, 116, 106, 110, 97, 93, 107, 114, 112, 120, 107, 113, 92, 118, 110, 106, 112, 115, 109, 116, 109, 101, 109, 114, 111, 105, 128, 99, 104, 116, 106, 115, 111, 117, 116, 114, 110, 110, 120, 91, 106, 118, 115, 114, 103, 101, 103, 109, 108, 101, 108, 114, 106, 106, 106, 117, 107, 107, 112, 112, 107, 114, 99, 110, 104, 103, 106, 112, 115, 110, 101, 114, 104, 106, 107, 106, 110, 109, 108, 124, 112, 106, 104, 109, 111, 116, 113, 111, 133, 116, 119, 105, 120, 106, 100, 115, 114, 108, 113, 111, 114, 98, 110, 115, 109, 114, 104, 109, 110, 112, 113, 114, 111, 110, 108, 109, 116, 114, 112, 106, 112, 111, 120, 111, 114, 107, 117, 107, 119, 120, 115, 111, 103, 119, 109, 110, 103, 117, 69, 96, 105, 103, 109, 113, 109, 112, 111, 110, 104, 114, 111, 111, 109, 110, 108, 111, 108, 112, 114, 136, 112, 105, 108, 98, 108, 121, 98, 115, 107, 110, 129, 106, 111, 109, 105, 110, 118, 118, 107, 119, 108, 102, 108, 110, 114, 113, 113, 121, 109, 161, 109, 99, 95, 111, 108, 112, 106, 112, 113, 112, 120, 105, 113, 118, 110, 108, 111, 111, 104, 115, 116, 104, 115, 109, 118, 105, 111, 110, 111, 113, 104, 114, 112, 108, 117, 107, 115, 103, 114, 113, 107, 108, 107, 108, 124, 105, 107, 101, 108, 112, 113, 107, 108, 107, 117, 113, 109, 100, 125, 110, 102, 106, 112, 115, 108, 97, 109, 109, 108, 114, 104, 109, 118, 100, 103, 115, 110, 108, 112, 100, 112, 108, 119, 104, 122, 89, 110, 114, 112, 113, 115, 109, 109, 108, 98, 111, 101, 109, 114, 102, 99, 109, 103, 107, 110, 110, 97, 99, 108, 115, 98, 112, 108, 114, 112, 112, 119, 110, 111, 109, 109, 104, 108, 110, 100, 114, 101, 110, 125, 111, 110, 112, 118, 109, 107, 107, 112, 109, 116, 113, 111, 113, 107, 109, 109, 101, 111, 111, 143, 108, 115, 109, 114, 105, 107, 110, 108, 114, 105, 111, 109, 107, 113, 106, 107, 110, 107, 113, 113, 113, 106, 104, 113, 113, 112, 71, 104, 121, 105, 108, 108, 109, 112, 116, 113, 109, 111, 102, 117, 108, 107, 104, 112, 110, 111, 110, 105, 105, 114, 111, 106, 105, 106, 108, 116, 114, 75, 106, 110, 90, 107, 108, 107, 115, 114, 108, 105, 111, 112, 111, 111, 110, 103, 105, 114, 111, 112, 117, 112, 115, 105, 109, 116, 109, 108, 104, 110, 116, 115, 105, 111, 107, 107, 112, 111, 104, 109, 114, 113, 106, 111, 106, 110, 111, 110, 117, 114, 108, 105, 100, 108, 107, 117, 110, 117, 109, 103, 115, 111, 112, 114, 111, 108, 108, 116, 111, 109, 116, 113, 112, 101, 113, 127, 108, 114, 108, 115, 105, 106, 110, 106, 98, 106, 110, 108, 113, 103, 113, 107, 109, 105, 112, 109, 113, 112, 112, 113, 113, 116, 117, 108, 110, 113, 107, 107, 112, 113, 115, 116, 106, 106, 110, 107, 111, 109, 108, 108, 111, 114, 113, 110, 117, 110, 110, 114, 102, 112, 101, 107, 113, 112, 110, 121, 110, 109, 115, 111, 110, 117, 112, 114, 110, 112, 113, 113, 107, 108, 107, 111, 111, 118, 106, 109, 106, 109, 117, 115, 111, 107, 112, 101, 111, 83, 104, 113, 114, 110, 106, 109, 116, 111, 110, 100, 111, 108, 111, 111, 107, 109, 114, 114, 114, 109, 110, 103, 112, 110, 110, 114, 109, 114, 108, 110, 111, 104, 116, 108, 111, 109, 109, 103, 104, 107, 106, 110, 105, 113, 92, 108, 110, 104, 116, 108, 113, 112, 108, 117, 102, 107, 109, 115, 110, 111, 108, 114, 113, 111, 111, 108, 108, 113, 136, 106, 112, 110, 110, 112, 110, 109, 107, 115, 111, 110, 104, 118, 110, 110, 115, 109, 103, 106, 111, 105, 105, 109, 108, 111, 112, 110, 113, 113, 102, 114, 116, 115, 111, 109, 108, 112, 109, 116, 113, 117, 150, 109, 115, 113, 110, 117, 106, 109, 115, 109, 115, 105, 105, 95, 109, 111, 110, 111, 107, 106, 102, 110, 114, 112, 108, 105, 111, 106, 108, 120, 114, 113, 126, 114, 107, 112, 105, 102, 110, 108, 108, 113, 108, 115, 113, 112, 113, 109, 97, 111, 123, 114, 103, 115, 108, 112, 112, 111, 113, 115, 109, 110, 118, 107, 115, 107, 108, 114, 112, 109, 107, 114, 109, 110, 118, 108, 109, 114, 107, 109, 106, 108, 110, 104, 112, 111, 107, 111, 112, 111, 111, 113, 109, 111, 105, 109, 104, 108, 110, 108, 108, 111, 112, 107, 114, 104, 112, 112, 113, 117, 121, 109, 111, 110, 109, 111, 114, 106, 120, 110, 110, 108, 114, 111, 111, 108, 117, 112, 110, 117, 114, 112, 111, 112, 114, 114, 113, 110, 108, 112, 114, 111, 110, 114, 110, 110, 111, 115, 112, 115, 108, 134, 111, 114, 113, 108, 111, 114, 108, 108, 108, 109, 107, 116, 106, 110, 108, 110, 108, 106, 118, 113, 111, 113, 107, 108, 112, 111, 99, 105, 110, 103, 110, 87, 117, 107, 108, 111, 110, 109, 109, 111, 104, 109, 115, 112, 115, 109, 118, 105, 106, 114, 110, 112, 112, 107, 109, 98, 102, 105, 110, 108, 116, 108, 114, 108, 103, 119, 112, 98, 109, 113, 112, 106, 104, 109, 123, 104, 107, 116, 109, 105, 119, 106, 107, 107, 112, 100, 96, 107, 111, 111, 121, 111, 108, 116, 104, 114, 105, 108, 120, 113, 100, 101, 108, 104, 115, 113, 108, 113, 111, 118, 117, 102, 107, 116, 106, 103, 105, 110, 111, 108, 104, 117, 111, 106, 113, 113, 113, 109, 100, 106, 108, 99, 113, 109, 109, 114, 107, 102, 107, 109, 115, 107, 118, 101, 116, 107, 124, 95, 116, 107, 111, 103, 110, 117, 109, 110, 108, 119, 111, 103, 109, 103, 98, 110, 109, 103, 111, 101, 110, 101, 107, 118, 106, 111, 109, 110, 114, 108, 114, 113, 120, 111, 102, 110, 108, 104, 117, 101, 115, 101, 109, 117, 110, 110, 107, 117, 105, 111, 104, 94, 118, 129, 107, 101, 100, 105, 116, 102, 132, 108, 116, 106, 116, 113, 109, 94, 113, 111, 113, 100, 101, 108, 106, 110, 113, 104, 111, 102, 106, 112, 103, 109, 124, 102, 106, 106, 106, 93, 104, 109, 107, 116, 112, 108, 115, 113, 95, 106, 110, 108, 109, 106, 106, 107, 107, 110, 102, 105, 117, 98, 107, 108, 108, 107, 105, 118, 115, 112, 102, 101, 112, 106, 109, 111, 109, 102, 112, 105, 123, 111, 102, 123, 113, 112, 105, 107, 109, 130, 112, 97, 107, 112, 108, 122, 115, 109, 111, 113, 124, 110, 93, 111, 119, 110, 113, 111, 113, 105, 116, 114, 112, 108, 106, 105, 112, 116, 103, 126, 117, 114, 112, 122, 112, 104, 99, 120, 105, 150, 112, 106, 121, 100, 135, 110, 118, 113, 107, 94, 103, 107, 120, 107, 109, 99, 105, 105, 106, 115, 109, 106, 118, 114, 112, 114, 112, 110, 101, 121, 102, 111, 115, 105, 95, 111, 115, 109, 111, 112, 121, 97, 112, 114, 114, 119, 87, 89, 111, 111, 101, 110, 100, 117, 92, 117, 106, 110, 113, 105, 102, 117, 105, 105, 107, 106, 111, 104, 113, 123, 106, 118, 96, 102, 107, 104, 102, 114, 113, 115, 108, 116, 119, 106, 102, 111, 101, 116, 112, 111, 104, 108, 106, 103, 115, 102, 108, 105, 116, 108, 112, 112, 112, 120, 110, 136, 98, 116, 115, 103, 102, 105, 115, 110, 99, 111, 108, 103, 118, 113, 98, 101, 100, 108, 108, 117, 114, 109, 110, 117, 108, 115, 105, 107, 129, 108, 123, 101, 114, 111, 103, 105, 104, 98, 110, 117, 102, 114, 109, 115, 107, 111, 100, 98, 99, 106, 134, 107, 114, 109, 109, 108, 115, 105, 118, 108, 115, 115, 86, 112, 115, 112, 116, 109, 109, 112, 103, 106, 110, 117, 102, 106, 110, 109, 112, 111, 114, 104, 107, 108, 108, 113, 112, 101, 102, 103, 105, 112, 112, 120, 111, 106, 115, 110, 106, 106, 106, 115, 117, 119, 110, 120, 108, 119, 106, 114, 98, 115, 103, 97, 90, 107, 106, 102, 110, 109, 105, 101, 102, 103, 103, 112, 96, 108, 102, 106, 96, 101, 122, 128, 125, 104, 110, 114, 104, 111, 117, 105, 117, 131, 105, 110, 116, 100, 107, 112, 104, 106, 121, 113, 111, 107, 116, 103, 119, 113, 111, 104, 113, 104, 103, 105, 120, 102, 113, 106, 113, 126, 108, 109, 110, 102, 110, 110, 112, 111, 109, 94, 113, 110, 123, 98, 114, 102, 116, 106, 116, 112, 107, 112, 92, 122, 102, 95, 115, 115, 112, 105, 117, 102, 109, 132, 111, 113, 110, 115, 106, 146, 111, 108, 118, 111, 88, 113, 111, 98, 99, 112, 120, 127, 109, 129, 101, 106, 122, 119, 102, 101, 126, 106, 119, 107, 114, 107, 109, 115, 116, 105, 104, 96, 102, 136, 100, 129, 105, 115, 90, 86, 109, 104, 132, 105, 103, 110, 111, 107, 110, 108, 108, 117, 113, 104, 111, 97, 108, 112, 103, 113, 118, 111, 99, 111, 96, 114, 128, 109, 112, 107, 110, 111, 114, 103, 122, 118, 112, 103, 119, 100, 101, 102, 123, 101, 113, 109, 118, 125, 114, 111, 109, 113, 104, 103, 117, 109, 112, 99, 115, 112, 108, 110, 103, 114, 112, 107, 114, 107, 100, 106, 98, 109, 98, 107, 95, 111, 100, 103, 136, 109, 91, 104, 101, 71, 109, 109, 97, 116, 110, 111, 108, 111, 103, 112, 116, 108, 121, 114, 120, 120, 110, 121, 107, 108, 120, 117, 103, 90, 120, 110, 104, 119, 102, 107, 100, 113, 114, 105, 113, 127, 111, 119, 92, 115, 118, 114, 116, 113, 119, 108, 108, 107, 116, 152, 121, 115, 104, 106, 104, 105, 105, 98, 108, 104, 96, 138, 153, 102, 106, 106, 106, 105, 106, 101, 110, 98, 114, 112, 109, 101, 112, 110, 98, 117, 105, 102, 105, 104, 107, 111, 106, 112, 109, 94, 105, 99, 115, 116, 110, 112, 111, 108, 105, 109, 117, 107, 108, 113, 115, 101, 97, 110, 103, 108, 113, 112, 95, 100, 98, 103, 113, 112, 155, 106, 100, 107, 110, 103, 107, 121, 101, 112, 113, 111, 110, 106, 105, 104, 106, 110, 116, 108, 100, 102, 113, 118, 92, 111, 108, 90, 108, 113, 117, 115, 126, 92, 102, 112, 107, 104, 108, 107, 121, 108, 94, 117, 105, 96, 116, 108, 116, 117, 109, 105, 104, 117, 116, 115, 120, 113, 125, 109, 112, 121, 60, 106, 105, 113, 101, 116, 104, 109, 111, 108, 112, 112, 107, 138, 115, 115, 111, 109, 104, 107, 111, 112, 109, 111, 104, 114, 104, 95, 114, 112, 111, 110, 116, 112, 130, 109, 106, 110, 108, 115, 106, 96, 110, 109, 87, 107, 116, 114, 105, 103, 102, 102, 114, 110, 104, 109, 110, 110, 108, 107, 116, 104, 102, 123, 111, 107, 115, 106, 106, 93, 107, 92, 107, 106, 98, 111, 110, 106, 99, 95, 101, 117, 117, 68, 102, 103, 121, 107, 110, 119, 98, 85, 121, 111, 110, 113, 110, 113, 108, 108, 101, 102, 118, 105, 105, 112, 108, 91, 116, 110, 116, 119, 118, 112, 114, 112, 114, 112, 109, 111, 107, 111, 112, 110, 105, 107, 110, 110, 111, 109, 110, 136, 108, 118, 114, 108, 119, 106, 113, 112, 110, 117, 113, 126, 111, 108, 108, 115, 108, 109, 106, 125, 115, 97, 111, 109, 105, 108, 106, 103, 102, 113, 117, 93, 98, 115, 112, 112, 107, 109, 104, 101, 106, 106, 110, 110, 109, 115, 109, 107, 110, 105, 109, 109, 104, 103, 107, 114, 113, 112, 117, 102, 97, 114, 109, 106, 117, 107, 116, 91, 105, 105, 114, 108, 108, 110, 109, 121, 108, 106, 104, 108, 111, 110, 112, 110, 99, 117, 113, 105, 111, 109, 111, 72, 110, 109, 103, 113, 115, 112, 108, 115, 101, 112, 113, 106, 110, 106, 110, 102, 112, 92, 106, 105, 112, 107, 114, 113, 105, 115, 115, 113, 111, 118, 108, 112, 99, 107, 107, 104, 110, 108, 110, 114, 111, 105, 109, 112, 137, 103, 105, 103, 103, 105, 116, 110, 97, 112, 107, 107, 106, 111, 113, 106, 128, 111, 110, 115, 97, 109, 110, 107, 105, 109, 108, 109, 117, 126, 104, 105, 109, 104, 112, 111, 102, 117, 106, 108, 101, 120, 110, 111, 107, 105, 109, 117, 106, 102, 104, 106, 111, 118, 113, 108, 115, 107, 116, 106, 109, 98, 96, 105, 105, 111, 112, 104, 106, 110, 116, 108, 80, 112, 115, 110, 106, 108, 108, 116, 106, 119, 106, 122, 112, 110, 114, 114, 109, 111, 128, 109, 123, 111, 102, 117, 99, 116, 102, 103, 104, 114, 110, 112, 113, 104, 107, 111, 108, 116, 112, 113, 107, 109, 105, 93, 100, 115, 111, 115, 113, 109, 100, 106, 112, 103, 133, 113, 116, 100, 110, 110, 107, 114, 111, 107, 109, 106, 111, 107, 109, 108, 120, 108, 107, 107, 111, 99, 110, 114, 105, 102, 109, 116, 130, 112, 102, 108, 106, 96, 105, 114, 103, 108, 111, 103, 119, 110, 108, 106, 124, 109, 109, 113, 113, 108, 111, 115, 104, 108, 105, 108, 106, 106, 105, 110, 110, 112, 115, 101, 109, 113, 111, 113, 109, 111, 110, 112, 113, 106, 106, 110, 112, 116, 106, 123, 116, 110, 107, 117, 110, 103, 104, 108, 105, 109, 106, 111, 115, 107, 92, 115, 113, 107, 107, 115, 111, 105, 115, 109, 108, 110, 112, 110, 110, 118, 115, 111, 110, 115, 99, 106, 112, 112, 104, 102, 109, 112, 106, 124, 104, 105, 109, 107, 106, 113, 108, 106, 108, 112, 111, 106, 171, 109, 102, 100, 104, 108, 109, 110, 112, 119, 112, 98, 107, 115, 113, 109, 107, 114, 108, 115, 115, 119, 115, 124, 110, 110, 104, 110, 107, 113, 103, 107, 109, 114, 110, 112, 109, 103, 109, 107, 105, 114, 108, 110, 115, 111, 110, 109, 106, 109, 104, 111, 112, 119, 109, 115, 105, 108, 112, 103, 109, 106, 99, 111, 108, 109, 113, 117, 116, 112, 119, 99, 99, 163, 109, 108, 117, 108, 109, 112, 103, 111, 105, 110, 111, 107, 115, 97, 108, 121, 112, 107, 121, 116, 94, 124, 109, 90, 109, 115, 94, 111, 114, 107, 105, 113, 106, 124, 111, 107, 120, 125, 99, 124, 99, 104, 108, 112, 100, 113, 103, 126, 105, 114, 111, 119, 107, 105, 100, 114, 117, 106, 107, 99, 108, 106, 111, 119, 101, 115, 115, 96, 109, 120, 102, 99, 113, 115, 104, 118, 101, 111, 111, 115, 114, 118, 109, 114, 106, 133, 94, 121, 109, 105, 117, 119, 112, 120, 116, 107, 114, 95, 99, 103, 101, 102, 105, 115, 101, 114, 116, 128, 113, 99, 111, 107, 121, 103, 110, 112, 96, 105, 114, 114, 116, 122, 113, 106, 105, 110, 107, 117, 106, 114, 105, 103, 125, 110, 112, 104, 101, 108, 109, 119, 123, 102, 101, 101, 112, 133, 107, 109, 111, 118, 119, 114, 116, 108, 113, 117, 107, 112, 107, 95, 111, 105, 117, 100, 120, 111, 133, 101, 110, 102, 105, 99, 112, 118, 102, 106, 102, 112, 113, 106, 117, 113, 101, 111, 104, 106, 107, 101, 107, 98, 109, 113, 109, 110, 109, 117, 112, 121, 109, 106, 118, 107, 128, 112, 123, 107, 111, 102, 120, 127, 112, 109, 116, 106, 113, 111, 105, 106, 111, 117, 108, 99, 102, 106, 114, 111, 109, 106, 114, 103, 117, 117, 116, 110, 118, 111, 109, 99, 122, 121, 113, 102, 104, 106, 106, 110, 106, 106, 107, 104, 106, 110, 113, 115, 110, 101, 126, 120, 106, 98, 113, 115, 109, 105, 114, 119, 111, 104, 131, 115, 107, 101, 105, 95, 108, 99, 110, 107, 113, 90, 103, 103, 106, 107, 116, 104, 110, 104, 109, 109, 115, 111, 98, 109, 117, 98, 109, 100, 122, 101, 111, 108, 109, 108, 114, 134, 116, 112, 121, 103, 107, 106, 109, 117, 109, 115, 107, 103, 101, 109, 103, 109, 104, 118, 99, 123, 115, 114, 112, 112, 118, 110, 111, 109, 105, 103, 137, 103, 104, 109, 119, 102, 106, 106, 100, 118, 110, 118, 116, 111, 112, 110, 120, 102, 105, 126, 121, 107, 123, 113, 87, 110, 107, 108, 118, 108, 110, 110, 106, 116, 123, 111, 103, 111, 111, 102, 117, 110, 115, 111, 110, 99, 110, 103, 107, 100, 112, 118, 92, 110, 115, 103, 103, 110, 111, 122, 107, 91, 103, 101, 114, 113, 110, 109, 113, 105, 106, 117, 111, 104, 95, 97, 107, 102, 110, 107, 116, 115, 95, 108, 113, 115, 101, 113, 116, 102, 96, 113, 101, 116, 117, 104, 111, 112, 104, 118, 114, 104, 113, 100, 103, 105, 109, 101, 110, 112, 121, 114, 104, 109, 107, 114, 111, 109, 108, 110, 110, 107, 98, 109, 111, 107, 109, 94, 106, 110, 107, 86, 120, 102, 113, 111, 95, 117, 111, 106, 104, 110, 115, 116, 109, 109, 107, 105, 107, 116, 110, 104, 109, 95, 111, 94, 111, 118, 100, 116, 109, 130, 110, 116, 124, 115, 116, 117, 96, 105, 114, 108, 111, 133, 112, 107, 98, 108, 110, 104, 107, 108, 110, 113, 112, 107, 110};
+ model->setOperandValue(op68, op68_init, sizeof(uint8_t) * 262144);
+ static int32_t op70_init[] = {-1002, 2029, -402, -2538, 359, 3260, 4062, -527, -1442, -2708, 3413, -1561, -1830, 1039, 5857, 2319, -985, -1426, 3534, -2600, 2851, 302, 2463, 2189, 2217, 1388, -1514, -4014, -9208, -646, -1031, 4827, 6393, 5381, -96, -2002, 5674, -2926, -1615, -1097, -655, -2082, -3443, 2826, -8312, -1880, 2705, 2344, 3624, 5002, 341, -3120, 3803, 1552, -659, -962, 3173, 1193, -1156, -3944, -3222, 3719, 1231, -1338, -595, -3255, 1793, 2499, 4012, -1052, 291, -842, -2754, 1892, -1537, 1067, -914, -3488, -839, -5160, 2393, 1200, 4897, 5760, -1471, 2870, 741, -2419, 2893, 2592, -9724, 5604, -2698, -1457, -6016, -1730, 323, 4004, 1632, -2060, 265, -536, -6005, -2204, -236, -182, 1055, -932, -1544, 2768, -3025, 1096, 2973, 2565, 2333, 2309, 270, -382, 5413, -1687, -1530, -2561, -1611, -1046, 1992, -2155, -829, 1050, -730, -3237, 4027, 2106, 2029, -1108, -711, -701, 4495, -893, 8843, 208, -301, -1729, -335, 2877, -33, 8134, -2733, -2527, 717, 8122, 2287, 1696, -559, 4911, -1255, 650, 4529, 2895, 3613, 3608, -430, -483, -303, 5038, -1174, -543, 2459, -2064, 4289, 6395, 3510, 899, -3070, -148, 2429, 2441, 1175, -1420, 3267, -8558, 3535, 1387, 3226, -1540, 1032, -2378, -513, 7022, -2840, -1529, 2958, 5346, 2491, 1637, 3665, -946, 2463, -674, 5355, 1201, 2489, 3381, -1499, 3679, -1777, 1009, 4690, 5765, -4009, -253, 3704, 4174, -843, -1898, -239, -1874, 7533, 2469, 6266, 4426, -3035, -3421, -881, -1336, 1490, -1490, 1821, 3013, -3368, 3474, 1960, -645, -132, 2275, 2531, -1651, 956, 2764, 5209, -2713, -1162, -367, 1800, 3048, -1283, 2797, -542, 2301, 1925, 7636, 4872, -607, 5379, -3615, -1975, 8650, 2462, 6421, -1921, 5758, 7719, 3790, 3333, -567, 1463, 1183, 1501, -448, -2147, 3707, 3987, 2978, 3207, 5389, -1843, 2689, -2487, -1383, 270, -2958, -568, 7407, 2261, 1978, -2217, 2185, 4539, -2205, 2185, -1633, -596, 5091, 264, -749, 3954, -3120, -575, 3431, -2142, -993, -530, 3571, 954, -596, -2449, -1592, 2117, -1731, -468, 8349, -1686, 429, -428, 5363, 1298, -809, 2343, -2477, 119, -1943, -1717, 600, -1202, 1578, -267, -772, 4473, 877, -1673, 1356, 148, -1181, 3232, 2643, -2289, 2126, -424, 2497, 4394, -4486, -2167, -1536, 1390, -699, 4396, -558, 2445, 1778, -1338, -673, 2304, -546, 260, -3791, -4007, -480, -1387, 4487, -930, 137, -99, 4626, 1415, -2012, -2851, -1379, 1226, -1039, -255, -1344, 2393, 4937, -2735, 4990, -1743, 2479, -2378, 2705, 4332, -1177, 6672, -2527, 800, 6449, -876, 306, 1123, 6236, -405, -326, -2256, -1799, 5133, -2199, -2405, 2961, 4845, -4547, -1576, 8816, -402, 2410, 2505, 1382, 5058, -2387, 4168, -4819, -1992, -1851, 3105, -310, -173, -1424, -289, -1582, -894, 3961, 2165, 3366, -4057, 5008, -2121, -3960, -675, -2262, -2963, -1376, 2899, -518, 904, 722, -1125, -3477, -1230, -1734, 6906, 2392, -822, -4907, 3051, 9294, 3471, -975, 5099, -879, -1189, 815, -3336, 2528, -2517, 4889, -2207, 2745, 2962, 1537, -932, -810, 4907, 4906, 2267, -3058, -1100, 150, -1992, 5509, -558, 4525, -1953, -2992, -784, 3813, -610, -1078, 4770, 6130, -691, 3576, -275, 2869, 6463, -1330, -1388, -3976, 442, 1428, 3364, -1041, -529, -555, -1341, -3156, -837, -1310, 4730, 948, -5021, 3488, 351, -688, -2116, 2909, 3363, -1947, 1706, 3399, -735, 4987, 2035, -3244, -657, -368};
+ model->setOperandValue(op70, op70_init, sizeof(int32_t) * 512);
+ static uint8_t op71_init[] = {139, 97, 94, 101, 121, 98, 97, 114, 125, 111, 95, 110, 83, 108, 105, 84, 129, 110, 112, 108, 110, 106, 101, 96, 94, 100, 128, 118, 123, 109, 105, 91, 97, 101, 108, 113, 110, 118, 107, 111, 110, 110, 113, 94, 114, 109, 97, 101, 91, 96, 114, 122, 98, 106, 108, 117, 97, 133, 108, 108, 117, 116, 100, 120, 115, 121, 116, 114, 96, 108, 115, 105, 111, 104, 113, 103, 100, 116, 110, 119, 105, 109, 108, 96, 110, 85, 100, 107, 105, 97, 114, 104, 126, 107, 124, 122, 97, 98, 111, 108, 101, 105, 121, 109, 108, 105, 105, 108, 112, 109, 109, 111, 111, 91, 100, 95, 129, 100, 99, 148, 94, 113, 107, 110, 81, 110, 106, 107, 115, 115, 105, 103, 93, 105, 103, 108, 96, 110, 103, 109, 107, 99, 115, 107, 110, 98, 108, 111, 73, 109, 104, 107, 109, 101, 109, 107, 105, 103, 95, 101, 115, 89, 97, 103, 109, 106, 112, 125, 112, 99, 97, 95, 127, 108, 105, 97, 118, 116, 99, 111, 106, 104, 94, 110, 112, 109, 106, 100, 113, 126, 102, 103, 95, 99, 94, 114, 92, 111, 107, 102, 110, 96, 113, 121, 109, 105, 102, 106, 106, 100, 89, 114, 112, 113, 115, 106, 106, 105, 103, 108, 118, 118, 113, 111, 109, 107, 108, 99, 106, 98, 95, 105, 106, 109, 112, 114, 104, 98, 95, 122, 109, 124, 119, 110, 121, 103, 120, 106, 99, 94, 95, 103, 105, 110, 118, 103, 97, 97, 109, 65, 113, 98, 109, 111, 106, 110, 105, 109, 113, 95, 101, 85, 104, 105, 112, 97, 126, 86, 104, 99, 119, 101, 97, 123, 114, 94, 109, 109, 101, 108, 117, 105, 118, 108, 94, 114, 106, 102, 113, 114, 91, 113, 107, 123, 113, 115, 96, 114, 91, 104, 124, 101, 131, 96, 104, 111, 97, 122, 110, 118, 124, 138, 75, 104, 103, 102, 101, 100, 93, 105, 96, 117, 94, 70, 112, 99, 121, 87, 109, 111, 113, 107, 103, 116, 101, 57, 102, 97, 116, 142, 114, 113, 129, 97, 113, 137, 113, 108, 108, 106, 114, 95, 109, 105, 108, 85, 94, 109, 115, 113, 105, 97, 115, 104, 111, 105, 131, 108, 104, 118, 99, 113, 116, 109, 109, 116, 106, 108, 104, 109, 128, 115, 107, 113, 106, 94, 101, 100, 115, 107, 115, 109, 104, 100, 92, 113, 104, 124, 97, 109, 99, 119, 146, 113, 116, 111, 102, 97, 88, 95, 110, 105, 107, 111, 106, 120, 114, 110, 117, 109, 99, 101, 103, 117, 117, 109, 102, 98, 122, 113, 105, 108, 101, 116, 100, 116, 103, 106, 107, 107, 109, 97, 105, 110, 94, 115, 120, 108, 97, 94, 96, 110, 107, 119, 121, 98, 130, 99, 111, 114, 110, 108, 107, 119, 115, 104, 255, 105, 122, 105, 95, 110, 112, 111, 108, 123, 104, 109, 114, 104, 112, 111, 109, 111, 104, 95, 113, 111, 101, 105, 124, 104, 101, 109, 98, 104, 107, 94, 99, 128, 110, 125, 27, 97, 87, 82, 123, 108, 85, 111, 122, 103, 102, 119, 132, 100, 95, 103, 125, 113, 115, 122, 86, 128, 88, 94, 98, 101, 164, 118, 116, 105, 102, 94, 101, 105, 94, 110, 100, 113, 116, 107, 79, 116, 118, 95, 136, 108, 98, 96, 97, 100, 108, 112, 109, 102, 111, 120, 91, 101, 142, 113, 119, 98, 99, 136, 120, 111, 137, 96, 96, 103, 140, 103, 113, 98, 114, 143, 100, 145, 109, 127, 106, 116, 97, 93, 111, 102, 95, 100, 92, 88, 106, 104, 75, 113, 145, 129, 78, 90, 127, 103, 98, 74, 118, 114, 114, 97, 101, 118, 112, 105, 111, 101, 107, 112, 97, 93, 108, 108, 97, 165, 100, 109, 103, 110, 91, 107, 96, 102, 132, 72, 102, 97, 94, 90, 146, 108, 102, 113, 90, 102, 114, 107, 113, 105, 134, 93, 107, 137, 142, 95, 100, 101, 98, 109, 106, 105, 121, 98, 86, 102, 106, 87, 81, 103, 112, 94, 133, 107, 116, 92, 108, 102, 151, 148, 128, 105, 97, 115, 106, 127, 110, 123, 97, 116, 136, 107, 109, 100, 112, 158, 101, 106, 91, 94, 95, 126, 99, 130, 125, 100, 132, 105, 132, 97, 98, 105, 87, 111, 89, 100, 91, 111, 118, 105, 118, 116, 88, 98, 87, 107, 121, 121, 113, 104, 100, 104, 98, 103, 115, 95, 102, 113, 103, 97, 107, 111, 88, 103, 92, 99, 105, 144, 110, 89, 132, 104, 138, 97, 104, 96, 99, 103, 100, 106, 104, 99, 98, 100, 98, 74, 73, 95, 106, 113, 99, 103, 103, 103, 112, 98, 85, 163, 93, 104, 111, 101, 153, 114, 101, 94, 107, 107, 97, 142, 108, 99, 104, 109, 96, 135, 116, 103, 160, 137, 80, 122, 119, 108, 113, 122, 91, 100, 105, 118, 154, 118, 113, 76, 84, 113, 135, 76, 118, 94, 96, 113, 93, 114, 120, 120, 94, 123, 137, 150, 106, 107, 82, 103, 87, 79, 106, 109, 91, 107, 113, 100, 120, 92, 135, 104, 122, 114, 97, 134, 119, 138, 100, 89, 146, 111, 102, 105, 100, 109, 117, 90, 109, 113, 107, 106, 110, 96, 104, 115, 97, 122, 74, 96, 139, 133, 95, 104, 122, 99, 108, 98, 101, 124, 120, 110, 100, 108, 113, 100, 104, 128, 122, 117, 110, 103, 107, 116, 99, 58, 103, 97, 106, 138, 119, 85, 141, 114, 99, 106, 105, 114, 93, 115, 118, 111, 104, 65, 122, 119, 137, 119, 91, 101, 96, 92, 113, 115, 117, 110, 93, 123, 114, 100, 121, 107, 138, 104, 111, 115, 107, 129, 94, 103, 98, 116, 92, 71, 94, 141, 101, 114, 111, 107, 113, 102, 112, 87, 119, 148, 93, 99, 118, 118, 98, 96, 92, 100, 103, 104, 117, 99, 126, 88, 118, 112, 104, 113, 146, 110, 100, 86, 184, 101, 125, 91, 86, 109, 109, 116, 93, 100, 106, 98, 102, 115, 109, 113, 132, 116, 99, 74, 117, 102, 100, 101, 120, 93, 110, 108, 111, 102, 107, 92, 96, 116, 130, 94, 101, 100, 97, 107, 114, 112, 96, 114, 123, 114, 99, 104, 122, 109, 102, 109, 129, 110, 108, 116, 92, 111, 106, 101, 114, 115, 118, 116, 117, 111, 103, 91, 96, 100, 109, 109, 108, 115, 118, 108, 113, 107, 112, 94, 114, 112, 103, 100, 90, 96, 93, 119, 98, 105, 111, 116, 98, 102, 116, 108, 116, 96, 99, 117, 124, 122, 112, 104, 95, 108, 108, 106, 109, 111, 108, 101, 114, 132, 108, 113, 113, 127, 107, 89, 110, 97, 101, 117, 107, 98, 115, 103, 113, 107, 118, 133, 100, 101, 120, 109, 92, 101, 119, 104, 127, 107, 105, 97, 109, 108, 109, 110, 105, 91, 100, 103, 105, 121, 102, 119, 123, 111, 108, 109, 85, 112, 106, 106, 113, 90, 121, 103, 100, 108, 113, 108, 97, 109, 110, 111, 107, 110, 104, 111, 108, 107, 108, 110, 120, 107, 99, 104, 112, 100, 109, 106, 112, 107, 98, 111, 115, 104, 97, 104, 110, 107, 110, 93, 111, 101, 105, 111, 116, 106, 105, 98, 107, 113, 98, 109, 105, 102, 95, 106, 115, 109, 118, 102, 112, 104, 104, 103, 100, 96, 109, 112, 92, 109, 104, 103, 111, 111, 74, 79, 108, 104, 101, 105, 115, 109, 89, 97, 110, 114, 120, 120, 103, 103, 105, 111, 121, 112, 114, 110, 110, 121, 117, 98, 107, 97, 109, 110, 104, 96, 90, 102, 100, 97, 95, 102, 107, 118, 108, 91, 125, 99, 114, 104, 123, 92, 97, 106, 107, 110, 114, 100, 98, 100, 110, 129, 99, 98, 103, 110, 107, 103, 106, 108, 109, 97, 100, 86, 106, 101, 110, 99, 114, 111, 104, 112, 120, 98, 102, 125, 123, 97, 103, 114, 105, 108, 102, 104, 116, 107, 100, 113, 111, 102, 112, 110, 117, 93, 105, 104, 110, 109, 109, 102, 80, 98, 118, 98, 118, 97, 108, 109, 98, 99, 109, 116, 103, 131, 112, 103, 138, 102, 102, 105, 117, 107, 115, 115, 94, 133, 108, 101, 108, 107, 108, 100, 109, 109, 107, 116, 99, 111, 99, 131, 110, 102, 102, 107, 97, 111, 111, 95, 112, 108, 109, 106, 99, 92, 110, 101, 111, 123, 97, 112, 112, 111, 93, 98, 111, 103, 108, 106, 103, 107, 104, 120, 96, 100, 122, 109, 110, 112, 106, 107, 106, 113, 112, 116, 105, 132, 105, 93, 99, 98, 114, 106, 110, 108, 110, 129, 101, 110, 106, 124, 108, 108, 112, 122, 106, 116, 112, 109, 98, 98, 91, 95, 105, 105, 108, 110, 105, 115, 111, 108, 115, 106, 129, 124, 112, 118, 106, 118, 104, 98, 107, 114, 106, 109, 99, 112, 99, 111, 117, 105, 116, 95, 109, 98, 104, 100, 95, 103, 117, 107, 94, 95, 97, 100, 107, 104, 105, 96, 110, 103, 108, 109, 109, 109, 105, 116, 108, 106, 196, 106, 120, 104, 96, 108, 112, 109, 96, 99, 106, 108, 105, 103, 104, 113, 124, 109, 106, 93, 112, 112, 112, 106, 124, 104, 110, 109, 120, 110, 106, 95, 97, 121, 119, 115, 125, 98, 111, 131, 115, 86, 101, 115, 111, 110, 83, 92, 128, 102, 93, 146, 103, 113, 126, 113, 106, 82, 99, 97, 75, 91, 114, 106, 111, 98, 107, 94, 82, 103, 91, 111, 103, 114, 103, 110, 123, 118, 118, 103, 107, 112, 102, 97, 98, 86, 139, 105, 95, 101, 110, 118, 97, 114, 115, 59, 112, 138, 110, 124, 98, 119, 108, 137, 104, 99, 95, 108, 109, 113, 108, 107, 117, 114, 108, 116, 95, 95, 94, 86, 110, 103, 92, 102, 89, 98, 126, 102, 113, 113, 114, 116, 91, 92, 91, 109, 122, 150, 117, 110, 90, 107, 104, 101, 114, 100, 114, 142, 113, 111, 97, 101, 147, 107, 91, 68, 121, 115, 109, 106, 96, 121, 109, 103, 123, 149, 91, 99, 97, 110, 109, 110, 88, 109, 97, 102, 105, 92, 106, 90, 109, 95, 111, 102, 99, 98, 120, 132, 112, 103, 109, 107, 91, 87, 103, 102, 107, 94, 100, 107, 110, 105, 108, 102, 93, 88, 151, 109, 118, 106, 102, 101, 144, 112, 115, 105, 103, 106, 108, 115, 99, 116, 100, 99, 111, 139, 100, 104, 100, 99, 89, 99, 96, 107, 124, 90, 107, 103, 102, 106, 93, 105, 96, 102, 96, 118, 91, 104, 109, 120, 105, 104, 78, 121, 91, 74, 117, 108, 103, 113, 154, 89, 87, 100, 118, 101, 146, 114, 102, 103, 115, 109, 99, 99, 96, 188, 119, 127, 118, 127, 0, 89, 114, 105, 96, 79, 82, 104, 98, 109, 141, 95, 94, 85, 110, 91, 98, 99, 132, 117, 102, 95, 104, 107, 125, 94, 98, 95, 93, 95, 109, 98, 130, 123, 103, 123, 100, 69, 95, 128, 111, 99, 142, 118, 100, 108, 110, 102, 94, 106, 107, 110, 96, 104, 111, 114, 92, 135, 105, 138, 106, 110, 84, 121, 120, 77, 124, 91, 121, 94, 109, 110, 96, 136, 93, 104, 86, 93, 143, 106, 97, 86, 99, 118, 124, 92, 65, 137, 96, 119, 115, 99, 95, 89, 114, 86, 119, 115, 141, 118, 107, 124, 96, 86, 107, 155, 126, 138, 133, 118, 112, 162, 118, 105, 109, 107, 105, 93, 106, 97, 114, 181, 108, 142, 104, 120, 104, 98, 114, 97, 109, 100, 111, 106, 101, 119, 90, 116, 97, 106, 104, 109, 102, 103, 112, 101, 107, 118, 102, 120, 119, 96, 99, 108, 113, 87, 111, 110, 91, 95, 95, 113, 106, 112, 86, 108, 90, 99, 128, 120, 97, 115, 115, 101, 96, 100, 117, 101, 109, 115, 107, 114, 113, 123, 106, 110, 97, 106, 119, 120, 114, 89, 86, 105, 143, 113, 96, 107, 93, 101, 89, 105, 95, 107, 115, 95, 110, 98, 125, 98, 93, 155, 124, 108, 91, 94, 101, 105, 105, 109, 115, 89, 116, 105, 112, 116, 127, 99, 109, 111, 91, 94, 143, 92, 103, 105, 99, 116, 114, 111, 89, 144, 147, 109, 136, 109, 128, 116, 94, 107, 100, 106, 123, 102, 109, 109, 120, 92, 87, 111, 93, 103, 108, 102, 92, 127, 114, 111, 164, 97, 142, 184, 98, 91, 93, 143, 111, 154, 110, 138, 136, 147, 74, 95, 131, 137, 85, 129, 97, 98, 85, 101, 107, 97, 118, 145, 116, 141, 96, 100, 93, 82, 137, 143, 54, 135, 147, 144, 129, 146, 138, 96, 128, 150, 88, 99, 115, 89, 108, 137, 130, 152, 147, 142, 98, 96, 120, 185, 122, 78, 85, 94, 112, 154, 90, 88, 100, 122, 87, 150, 151, 82, 138, 113, 147, 124, 138, 126, 95, 112, 74, 94, 146, 112, 184, 89, 84, 101, 142, 69, 141, 143, 123, 145, 106, 73, 83, 108, 108, 107, 144, 140, 154, 147, 150, 151, 145, 77, 139, 118, 135, 105, 91, 105, 98, 112, 89, 55, 148, 134, 144, 106, 99, 153, 147, 150, 107, 105, 81, 96, 101, 133, 117, 133, 93, 139, 28, 108, 148, 126, 146, 84, 95, 69, 142, 140, 65, 40, 132, 95, 142, 81, 139, 146, 79, 134, 96, 82, 124, 76, 102, 73, 145, 151, 83, 127, 74, 91, 79, 59, 127, 101, 119, 95, 93, 143, 99, 127, 61, 66, 98, 138, 107, 140, 104, 47, 143, 154, 90, 68, 86, 73, 112, 120, 105, 106, 34, 61, 89, 73, 119, 99, 153, 146, 86, 78, 135, 162, 116, 106, 139, 120, 100, 143, 73, 136, 65, 101, 153, 131, 90, 141, 88, 144, 98, 95, 123, 100, 100, 146, 146, 107, 70, 146, 131, 105, 80, 35, 149, 88, 109, 82, 139, 88, 142, 150, 84, 90, 90, 143, 82, 123, 109, 28, 97, 94, 107, 83, 71, 90, 104, 134, 156, 112, 147, 139, 142, 119, 87, 91, 92, 67, 134, 99, 120, 143, 102, 167, 140, 64, 95, 37, 137, 99, 91, 147, 90, 106, 144, 64, 78, 109, 82, 142, 122, 101, 139, 124, 153, 107, 142, 155, 106, 140, 106, 141, 89, 48, 119, 83, 116, 129, 91, 147, 94, 110, 70, 140, 149, 92, 132, 94, 96, 177, 92, 71, 136, 176, 111, 129, 105, 106, 149, 94, 150, 93, 66, 185, 140, 143, 95, 154, 106, 143, 88, 77, 104, 141, 90, 145, 108, 136, 155, 82, 151, 69, 137, 143, 148, 95, 46, 151, 160, 74, 115, 120, 131, 116, 88, 96, 146, 80, 141, 154, 140, 99, 108, 137, 83, 140, 114, 54, 148, 130, 133, 59, 106, 104, 139, 121, 65, 146, 152, 102, 77, 130, 143, 53, 112, 127, 132, 95, 109, 149, 68, 138, 157, 151, 106, 46, 64, 139, 30, 136, 171, 76, 99, 96, 158, 69, 138, 150, 146, 161, 139, 114, 79, 148, 117, 97, 142, 142, 143, 116, 72, 100, 113, 158, 151, 44, 88, 105, 87, 143, 128, 140, 125, 86, 147, 93, 148, 90, 93, 90, 142, 141, 92, 101, 101, 162, 154, 97, 139, 90, 123, 84, 137, 145, 35, 63, 107, 151, 80, 78, 184, 86, 114, 98, 84, 137, 142, 144, 148, 75, 115, 143, 122, 107, 150, 142, 79, 143, 69, 141, 159, 92, 108, 126, 161, 163, 96, 135, 97, 94, 141, 91, 93, 140, 146, 141, 125, 99, 108, 92, 105, 123, 99, 111, 111, 104, 109, 81, 116, 100, 99, 103, 152, 106, 98, 106, 90, 126, 102, 96, 142, 140, 114, 102, 126, 122, 108, 96, 86, 103, 95, 112, 110, 112, 108, 101, 119, 110, 114, 108, 106, 108, 92, 99, 96, 83, 66, 135, 96, 92, 108, 109, 100, 100, 62, 93, 109, 90, 109, 121, 115, 113, 111, 100, 103, 133, 98, 104, 105, 120, 108, 102, 101, 135, 104, 113, 127, 134, 100, 90, 108, 106, 90, 135, 91, 98, 132, 103, 104, 106, 116, 21, 139, 95, 131, 110, 94, 96, 113, 110, 138, 104, 101, 70, 111, 108, 111, 100, 91, 113, 98, 113, 103, 149, 87, 94, 94, 115, 109, 105, 91, 114, 102, 97, 124, 73, 123, 102, 106, 103, 120, 108, 94, 105, 100, 121, 107, 130, 109, 98, 108, 93, 113, 100, 102, 103, 66, 95, 105, 106, 105, 102, 127, 110, 103, 128, 107, 124, 102, 110, 105, 104, 115, 139, 121, 89, 96, 144, 114, 106, 102, 100, 84, 107, 86, 103, 109, 110, 109, 109, 97, 110, 149, 111, 106, 122, 103, 106, 104, 100, 114, 126, 100, 105, 129, 97, 108, 120, 120, 107, 104, 103, 97, 105, 138, 101, 92, 88, 103, 121, 122, 114, 85, 88, 95, 108, 99, 111, 123, 106, 111, 124, 149, 101, 118, 102, 105, 109, 105, 154, 155, 117, 99, 97, 98, 122, 108, 115, 95, 98, 122, 89, 106, 93, 114, 82, 85, 118, 100, 107, 109, 104, 94, 82, 113, 79, 102, 101, 84, 111, 98, 115, 101, 103, 119, 95, 100, 104, 96, 97, 105, 99, 112, 103, 105, 100, 111, 72, 101, 113, 111, 99, 83, 118, 103, 106, 106, 105, 93, 106, 113, 104, 130, 105, 110, 112, 133, 80, 103, 108, 106, 110, 112, 112, 81, 82, 121, 92, 89, 91, 114, 107, 97, 100, 100, 104, 140, 96, 95, 105, 145, 82, 100, 131, 118, 88, 139, 109, 94, 93, 103, 101, 107, 104, 111, 92, 113, 112, 100, 105, 108, 97, 99, 143, 110, 79, 97, 88, 83, 118, 106, 85, 111, 107, 109, 104, 109, 93, 107, 94, 107, 76, 110, 92, 104, 120, 91, 97, 114, 100, 107, 96, 100, 108, 104, 115, 92, 116, 113, 111, 101, 102, 100, 112, 147, 114, 114, 112, 106, 114, 113, 97, 105, 108, 110, 94, 110, 108, 107, 120, 109, 111, 114, 107, 91, 104, 122, 175, 86, 116, 104, 111, 78, 104, 99, 100, 109, 103, 108, 109, 100, 109, 110, 103, 109, 103, 109, 122, 120, 113, 119, 124, 90, 90, 106, 111, 97, 113, 97, 102, 88, 106, 143, 102, 110, 98, 105, 100, 123, 98, 95, 75, 113, 109, 90, 95, 103, 111, 98, 107, 103, 89, 103, 114, 111, 110, 130, 106, 109, 100, 110, 99, 149, 102, 102, 102, 97, 108, 106, 111, 109, 85, 63, 104, 99, 108, 120, 112, 146, 107, 105, 92, 110, 108, 99, 108, 135, 96, 130, 108, 125, 91, 104, 104, 94, 108, 90, 117, 111, 99, 110, 88, 111, 103, 98, 110, 102, 112, 104, 109, 116, 107, 98, 116, 122, 108, 108, 124, 100, 91, 103, 94, 101, 100, 110, 109, 125, 110, 116, 97, 97, 106, 98, 113, 109, 114, 111, 110, 123, 112, 119, 125, 115, 108, 98, 100, 91, 99, 113, 117, 96, 104, 114, 118, 98, 122, 113, 105, 117, 105, 122, 119, 110, 119, 101, 97, 91, 114, 102, 105, 109, 119, 111, 100, 110, 123, 108, 124, 100, 109, 106, 88, 107, 99, 101, 119, 97, 92, 119, 104, 127, 108, 115, 124, 107, 97, 94, 109, 119, 117, 118, 106, 98, 106, 106, 109, 110, 102, 111, 114, 105, 92, 99, 103, 107, 98, 97, 103, 109, 118, 109, 113, 86, 119, 109, 107, 109, 119, 109, 103, 99, 110, 110, 107, 98, 106, 104, 107, 117, 107, 107, 103, 105, 110, 111, 105, 134, 103, 102, 127, 108, 111, 108, 105, 95, 102, 99, 104, 114, 102, 115, 111, 111, 105, 102, 111, 99, 98, 101, 88, 118, 107, 99, 101, 104, 114, 100, 113, 111, 109, 101, 111, 104, 111, 105, 102, 112, 101, 105, 105, 105, 117, 102, 111, 89, 110, 104, 108, 105, 113, 108, 107, 104, 106, 99, 104, 114, 116, 93, 84, 110, 112, 110, 113, 106, 109, 109, 87, 112, 114, 109, 111, 115, 110, 111, 101, 111, 101, 97, 115, 106, 111, 112, 103, 112, 95, 104, 105, 112, 115, 114, 121, 142, 104, 106, 108, 99, 92, 95, 108, 106, 114, 112, 107, 96, 98, 115, 100, 86, 101, 108, 109, 104, 93, 105, 109, 110, 96, 99, 116, 103, 104, 111, 99, 117, 114, 120, 109, 95, 102, 96, 112, 113, 95, 106, 112, 96, 107, 105, 104, 101, 108, 122, 112, 107, 98, 112, 112, 113, 119, 104, 93, 109, 112, 96, 97, 131, 105, 116, 119, 116, 96, 120, 108, 99, 116, 111, 116, 105, 95, 124, 106, 108, 106, 99, 108, 129, 104, 95, 110, 101, 123, 111, 99, 116, 107, 107, 110, 113, 109, 99, 99, 95, 108, 103, 116, 107, 109, 110, 105, 112, 113, 116, 96, 112, 103, 108, 106, 107, 98, 114, 105, 106, 115, 107, 66, 101, 111, 106, 103, 107, 101, 108, 105, 94, 103, 99, 114, 99, 113, 108, 108, 106, 107, 98, 106, 103, 113, 115, 126, 104, 115, 102, 94, 100, 99, 115, 111, 108, 87, 110, 101, 92, 106, 112, 119, 97, 112, 103, 105, 110, 108, 112, 111, 107, 99, 94, 96, 112, 97, 109, 113, 109, 117, 113, 111, 106, 105, 109, 103, 114, 117, 105, 93, 104, 100, 106, 120, 104, 103, 97, 102, 98, 111, 105, 105, 120, 98, 110, 99, 104, 104, 95, 103, 113, 111, 92, 99, 93, 106, 107, 134, 112, 95, 118, 108, 114, 111, 116, 107, 110, 120, 97, 104, 193, 104, 116, 96, 93, 113, 112, 110, 99, 132, 108, 109, 101, 110, 117, 112, 96, 106, 103, 109, 118, 84, 139, 112, 110, 104, 101, 112, 91, 103, 109, 97, 96, 115, 107, 107, 125, 98, 107, 65, 98, 115, 101, 104, 105, 102, 107, 108, 116, 100, 88, 99, 129, 110, 100, 114, 102, 89, 91, 100, 107, 101, 93, 108, 118, 108, 147, 90, 102, 112, 120, 114, 106, 109, 108, 102, 116, 100, 118, 117, 131, 113, 108, 98, 98, 102, 107, 118, 94, 95, 116, 114, 97, 103, 87, 116, 108, 119, 123, 116, 99, 114, 94, 107, 96, 137, 109, 104, 106, 147, 105, 84, 118, 105, 109, 111, 105, 105, 103, 96, 117, 113, 92, 128, 96, 86, 110, 104, 126, 109, 112, 134, 119, 112, 104, 133, 117, 119, 120, 109, 113, 108, 102, 109, 111, 86, 113, 99, 99, 109, 97, 118, 101, 114, 98, 104, 107, 108, 111, 134, 93, 128, 109, 98, 104, 142, 109, 99, 131, 119, 102, 111, 98, 102, 107, 111, 116, 119, 109, 104, 108, 91, 115, 105, 90, 93, 98, 114, 116, 102, 104, 103, 99, 100, 106, 113, 121, 132, 141, 115, 104, 102, 97, 101, 105, 88, 106, 100, 110, 109, 86, 96, 110, 109, 104, 123, 127, 143, 108, 108, 104, 102, 99, 106, 107, 80, 102, 107, 103, 133, 110, 103, 96, 104, 123, 168, 100, 121, 110, 118, 114, 100, 91, 106, 129, 123, 88, 71, 104, 153, 111, 119, 94, 101, 97, 81, 129, 115, 112, 106, 97, 124, 98, 100, 122, 95, 100, 106, 102, 98, 107, 110, 146, 97, 101, 112, 112, 103, 101, 126, 137, 104, 83, 100, 103, 100, 101, 99, 100, 124, 108, 102, 94, 101, 125, 94, 82, 87, 105, 112, 100, 111, 101, 107, 107, 93, 95, 109, 97, 92, 105, 100, 95, 107, 128, 83, 129, 120, 98, 85, 111, 96, 107, 107, 86, 106, 111, 110, 79, 95, 135, 113, 101, 94, 114, 104, 105, 106, 103, 128, 109, 124, 88, 98, 135, 104, 91, 151, 107, 93, 141, 107, 94, 119, 132, 116, 149, 106, 93, 102, 105, 97, 93, 96, 86, 96, 106, 99, 95, 109, 106, 95, 121, 104, 99, 116, 104, 117, 96, 84, 89, 100, 103, 142, 110, 87, 101, 103, 98, 108, 106, 106, 107, 94, 105, 105, 110, 96, 142, 118, 80, 95, 130, 136, 82, 96, 107, 102, 105, 97, 109, 99, 120, 88, 90, 99, 97, 108, 100, 111, 104, 98, 90, 106, 108, 120, 115, 109, 108, 113, 102, 89, 92, 134, 108, 76, 103, 82, 100, 101, 100, 113, 123, 116, 118, 108, 108, 114, 88, 110, 135, 109, 99, 101, 101, 94, 114, 97, 103, 113, 114, 114, 112, 107, 101, 112, 96, 110, 104, 124, 105, 91, 93, 98, 115, 119, 98, 78, 102, 102, 101, 90, 102, 103, 111, 93, 105, 93, 115, 112, 97, 101, 120, 126, 102, 98, 100, 105, 95, 108, 128, 98, 101, 124, 114, 117, 118, 106, 101, 98, 116, 92, 153, 97, 111, 102, 94, 108, 110, 107, 119, 122, 101, 107, 109, 158, 125, 112, 115, 100, 102, 111, 112, 169, 114, 133, 112, 99, 107, 107, 105, 93, 104, 104, 97, 108, 125, 91, 119, 99, 111, 126, 109, 113, 96, 113, 102, 114, 100, 120, 110, 106, 98, 101, 113, 107, 97, 115, 108, 107, 106, 97, 119, 112, 109, 109, 119, 124, 107, 98, 98, 105, 102, 110, 110, 114, 105, 107, 117, 114, 117, 123, 116, 109, 103, 101, 89, 96, 99, 117, 97, 106, 106, 120, 97, 95, 99, 107, 115, 107, 120, 118, 114, 117, 103, 106, 91, 128, 103, 104, 108, 118, 110, 99, 101, 111, 107, 121, 115, 111, 106, 98, 103, 110, 103, 121, 99, 95, 116, 102, 115, 108, 117, 126, 129, 93, 125, 108, 105, 106, 120, 104, 112, 106, 105, 98, 110, 103, 108, 109, 102, 91, 100, 110, 108, 117, 99, 109, 106, 117, 108, 112, 91, 117, 107, 105, 108, 112, 116, 103, 129, 107, 106, 106, 98, 107, 110, 131, 105, 109, 110, 103, 104, 95, 109, 106, 97, 103, 101, 93, 106, 110, 109, 106, 115, 109, 99, 106, 114, 130, 114, 109, 111, 107, 106, 115, 110, 100, 108, 119, 115, 106, 99, 102, 106, 114, 96, 115, 109, 104, 101, 111, 104, 109, 103, 101, 111, 101, 104, 106, 107, 113, 104, 111, 91, 109, 105, 95, 105, 107, 111, 109, 97, 106, 96, 105, 95, 101, 93, 95, 109, 107, 115, 111, 106, 99, 108, 102, 113, 121, 112, 112, 105, 122, 111, 102, 111, 100, 110, 108, 107, 91, 88, 116, 108, 97, 102, 101, 110, 108, 103, 108, 119, 103, 109, 105, 105, 95, 101, 113, 107, 117, 109, 103, 98, 98, 114, 102, 112, 100, 102, 102, 105, 130, 105, 108, 108, 97, 101, 111, 107, 105, 109, 99, 106, 109, 119, 105, 120, 104, 99, 107, 112, 96, 104, 105, 97, 109, 113, 104, 102, 109, 116, 110, 111, 99, 111, 110, 106, 103, 106, 112, 107, 109, 90, 122, 114, 107, 114, 118, 110, 96, 119, 106, 100, 107, 108, 116, 131, 93, 103, 105, 97, 107, 102, 113, 100, 105, 116, 111, 102, 89, 111, 101, 106, 102, 105, 99, 112, 110, 103, 101, 96, 107, 100, 121, 106, 106, 105, 104, 91, 109, 114, 111, 111, 103, 107, 105, 116, 90, 108, 97, 108, 101, 109, 113, 101, 112, 108, 103, 106, 102, 109, 105, 117, 105, 101, 114, 96, 113, 111, 108, 109, 109, 101, 105, 104, 126, 113, 123, 104, 120, 102, 97, 102, 100, 113, 108, 109, 88, 101, 118, 100, 116, 110, 117, 102, 112, 112, 98, 91, 108, 109, 109, 104, 100, 95, 96, 109, 98, 109, 113, 107, 114, 112, 110, 106, 110, 107, 116, 104, 113, 110, 107, 102, 102, 112, 115, 106, 104, 98, 102, 99, 109, 104, 106, 107, 130, 108, 96, 103, 102, 97, 111, 108, 105, 94, 99, 94, 109, 107, 103, 114, 97, 110, 107, 112, 105, 115, 105, 108, 88, 105, 102, 211, 106, 115, 98, 97, 107, 112, 110, 118, 105, 104, 108, 108, 106, 117, 108, 130, 106, 103, 107, 114, 80, 104, 105, 121, 104, 106, 112, 114, 95, 108, 95, 96, 118, 119, 106};
+ model->setOperandValue(op71, op71_init, sizeof(uint8_t) * 4608);
+ static int32_t op73_init[] = {-8724, -7778, 3602, -5385, 9757, 1571, 5128, 5593, 6144, 5765, -1400, 6352, -5574, -7150, -5543, -4901, 8204, -10049, -1065, -7468, 11801, -5930, -5512, 9988, -5956, 4749, 11616, 1056, 6376, -1937, -10713, -7848, -3320, 7246, -10418, 10423, 6574, -7352, 4947, 4011, -10612, 7073, -3342, 9485, 4740, 3258, 7744, -16036, 3465, -3084, 1092, 394, 6087, 6430, 1006, 3351, -15700, 3236, -2458, -3188, -4587, -2054, -13119, -7009, -691, 985, 439, -5102, 637, 2035, 6123, 1404, 8503, 5527, 7382, -4248, 1538, 11286, 11106, 1462, 1454, 1207, -2431, -4606, 6795, 6860, 47, -13226, -4222, 346, -3845, 6998, 11043, 5421, 7011, 3344, -4951, -3207, -2417, 1171, -8000, -6263, -3081, -7534, 6157, -489, 9480, 1558, 4979, 3757, -591, 540, 7083, -5873, 8541, 3227, 7182, 269, 3500, -11198, 107, -13009, -7116, 1507, -814, 4662, 4549, 2880, -2726, 2181, 1563, -3420, -3973, 3762, -12240, 981, 6115, 6628, 2686, 3787, -1583, -2288, 11353, 2463, 2607, 1896, 7597, 1396, 10398, -1863, 5210, -4564, -313, -6099, 8502, -6120, -12866, -6588, -1912, 10251, 14670, -3739, 1731, 2527, 7462, 7118, 10408, 1462, 9669, -2844, -1537, 2230, 5997, -1359, -1920, 307, 4086, 6472, 1360, 6845, -3945, -4417, 18765, 5872, 9937, 1422, 1758, 6839, 1202, 6387, 1320, 8417, -8763, -2149, 6585, 3874, 5992, -7708, 5310, 7353, 1295, 10508, -4631, -2709, 6990, 549, 7886, -3226, 1150, 4153, -3564, 4962, -9248, -4827, 265, 5837, 12968, -6554, 7619, -1029, 3099, 5949, -925, -6549, -1023, -2418, 7441, -6620, -9092, 9193, 3092, -6543, 3922, -3113, -9131, 11549, 6574, -1482, 1866, -3089, 3226, 1275, 4993, 7245, 1672, 3740, -5147, -7093, 4606, -7485, -2585, -2150, 1976, -10188, 3690, 6516, -7454, 5254, 9291, 3156, 8396, 10940, 496, -2815, 8418, 6993, -4136, -668, 1799, 1519, 3224, -4037, -8755, -74, -13973, -2863, 330, 217, 1974, -5146, 13186, 5382, 6819, 4974, 12504, 2248, 5304, 4352, 7352, 835, 1749, 9166, 4052, 7551, 2442, -6651, 2355, -889, -1261, 2651, 8616, 8115, 2646, -4016, 1421, -4807, 1437, 1941, -6912, 90, -8981, -329, 10191, 463, 1258, -2843, 4155, 11121, 4605, 6679, -5233, -2651, 5291, 1211, 3132, -1866, 9296, 1769, -4807, -8763, 790, 6888, 6678, -5483, -6088, -4492, 2073, 618, 8919, -4644, 4544, 445, 6865, 6551, -2636, 2075, -12169, 2399, -3607, -6472, 1184, 6869, 11501, 3341, -2764, 3782, 1935, 2171, 1469, 1192, 2177, -3603, -8415, 1395, -2618, 3566, -4852, 4580, -4273, 4316, 2837, -2233, -5308, 2125, 4307, -6978, -9603, -8898, 669, 837, -3653, 11063, 4187, -14361, 1513, 12101, -2012, -1080, -1526, 6016, -3047, 10784, 7372, 7585, 772, 5052, 1566, 1894, -9372, 383, 7746, 9199, -6341, 9117, -1796, -459, 2021, 1418, -7048, -9178, -1720, -2357, 8819, 755, 6741, 1400, -7859, 14130, 11811, 8679, 981, -5256, 2956, -2891, -1955, -4086, 8937, 7855, 2640, -1682, -5689, 7548, 9995, 6458, 6280, -2786, 530, 1149, 14467, 7179, -67, 1141, 5648, 5716, 454, 3057, 10795, 6216, -975, -6650, -3162, -4871, 1844, -2571, -3195, -163, 3653, 4588, 8100, 4500, 5956, -5180, 3199, 4953, -6630, 4678, 4478, -942, -967, 15768, 4864, -6945, 206, 6450, -8064, -6508, 7290, 7527, -2398, 8697, -221, -3716, 9648, 6100, 5694, 2437, -1259, 7652, -6699, -3268, -8480, 130, 4439, -1580, 4166, 6199, -10596, -11817, 8207, 7013, -1092, -1969, 3224, 2407, 3727, 6322, -2090, -10242, 5425, 4912, 10630, -4720};
+ model->setOperandValue(op73, op73_init, sizeof(int32_t) * 512);
+ static uint8_t op74_init[] = {154, 165, 158, 158, 155, 161, 160, 159, 161, 162, 161, 171, 159, 160, 168, 164, 169, 151, 163, 163, 154, 160, 159, 148, 162, 162, 150, 160, 159, 157, 157, 155, 168, 156, 161, 152, 151, 147, 163, 158, 160, 171, 149, 163, 166, 161, 161, 159, 170, 165, 166, 153, 170, 158, 163, 138, 167, 155, 160, 167, 148, 169, 169, 151, 158, 150, 171, 159, 158, 165, 157, 158, 151, 166, 159, 162, 159, 158, 139, 150, 159, 161, 152, 169, 151, 161, 159, 151, 165, 153, 158, 148, 155, 162, 156, 165, 164, 150, 160, 154, 157, 159, 150, 171, 161, 156, 171, 158, 152, 157, 167, 162, 170, 161, 156, 160, 163, 168, 162, 156, 154, 155, 148, 162, 163, 156, 166, 155, 172, 161, 164, 170, 165, 144, 159, 163, 163, 163, 152, 165, 162, 162, 165, 164, 150, 156, 156, 168, 160, 162, 168, 157, 147, 173, 148, 175, 160, 164, 165, 161, 159, 164, 163, 153, 156, 162, 144, 160, 163, 158, 160, 160, 158, 151, 164, 159, 160, 158, 153, 167, 155, 163, 156, 158, 156, 156, 161, 151, 146, 165, 155, 169, 146, 162, 160, 170, 158, 151, 159, 159, 152, 162, 160, 161, 164, 166, 164, 166, 170, 161, 149, 167, 162, 156, 166, 155, 157, 144, 160, 149, 155, 168, 150, 158, 152, 148, 156, 156, 156, 160, 156, 163, 165, 161, 164, 155, 164, 169, 150, 157, 156, 165, 161, 167, 159, 168, 163, 172, 152, 159, 160, 158, 147, 166, 163, 150, 157, 167, 153, 161, 163, 157, 162, 157, 159, 159, 173, 173, 155, 154, 163, 160, 165, 143, 167, 157, 166, 161, 166, 163, 163, 153, 153, 160, 161, 170, 165, 171, 156, 159, 158, 148, 162, 165, 159, 154, 159, 176, 158, 160, 157, 159, 153, 160, 162, 153, 159, 161, 160, 153, 150, 156, 155, 167, 144, 161, 158, 168, 166, 163, 154, 165, 168, 156, 162, 165, 160, 163, 159, 162, 162, 160, 165, 163, 155, 161, 162, 154, 165, 159, 154, 153, 158, 148, 146, 160, 163, 154, 162, 162, 162, 163, 158, 158, 161, 161, 156, 163, 150, 165, 163, 169, 162, 160, 172, 162, 170, 162, 153, 161, 160, 163, 176, 166, 164, 166, 169, 158, 176, 162, 161, 161, 155, 151, 167, 159, 162, 161, 151, 163, 161, 153, 167, 165, 158, 151, 166, 153, 157, 153, 172, 164, 167, 155, 173, 155, 151, 152, 154, 163, 167, 163, 159, 157, 165, 175, 157, 150, 153, 167, 179, 161, 165, 150, 153, 157, 151, 161, 158, 161, 157, 162, 160, 176, 167, 164, 158, 154, 158, 158, 170, 156, 155, 159, 160, 159, 169, 164, 150, 162, 157, 159, 149, 160, 153, 163, 152, 150, 155, 140, 159, 162, 160, 165, 155, 163, 163, 163, 162, 173, 154, 157, 168, 160, 160, 154, 162, 165, 162, 164, 162, 156, 153, 154, 165, 151, 155, 161, 165, 164, 165, 147, 161, 151, 166, 155, 157, 149, 162, 167, 171, 166, 169, 160, 158, 164, 159, 160, 153, 157, 161, 164, 164, 156, 166, 157, 156, 155, 157, 160, 158, 160, 164, 158, 164, 164, 158, 160, 160, 164, 153, 158, 147, 160, 155, 157, 165, 156, 171, 159, 157, 158, 164, 164, 151, 161, 162, 153, 159, 146, 157, 163, 154, 158, 169, 147, 161, 164, 158, 158, 164, 156, 157, 162, 161, 166, 158, 153, 165, 159, 158, 169, 163, 156, 152, 155, 159, 161, 158, 164, 163, 153, 171, 162, 163, 156, 159, 159, 158, 163, 162, 155, 157, 154, 156, 159, 158, 160, 158, 164, 162, 157, 158, 154, 162, 156, 158, 159, 158, 158, 147, 161, 160, 172, 160, 157, 166, 162, 161, 163, 161, 153, 159, 154, 164, 152, 159, 163, 160, 151, 151, 151, 159, 164, 162, 164, 153, 164, 164, 156, 158, 156, 166, 155, 168, 154, 157, 162, 154, 160, 161, 157, 167, 156, 160, 166, 158, 157, 157, 164, 164, 159, 164, 158, 158, 150, 163, 158, 159, 156, 159, 152, 153, 151, 160, 164, 159, 167, 158, 157, 166, 162, 171, 153, 163, 153, 160, 160, 162, 163, 161, 164, 156, 158, 159, 155, 151, 153, 154, 156, 164, 149, 159, 158, 154, 161, 168, 162, 158, 152, 165, 161, 154, 159, 169, 163, 158, 165, 163, 156, 158, 160, 161, 154, 168, 171, 165, 158, 156, 157, 159, 164, 158, 157, 162, 160, 154, 160, 161, 165, 152, 155, 163, 158, 156, 167, 162, 164, 169, 159, 161, 167, 158, 150, 159, 164, 162, 162, 163, 164, 160, 154, 162, 156, 159, 158, 154, 155, 156, 153, 167, 165, 154, 168, 163, 158, 163, 152, 159, 166, 160, 160, 157, 171, 156, 169, 166, 159, 155, 162, 164, 155, 157, 158, 158, 175, 148, 162, 160, 156, 161, 153, 162, 162, 155, 158, 167, 157, 154, 160, 156, 160, 164, 159, 171, 162, 153, 156, 160, 161, 164, 158, 168, 174, 160, 158, 167, 158, 158, 153, 153, 154, 161, 148, 156, 167, 159, 174, 161, 164, 159, 165, 161, 160, 155, 164, 157, 162, 158, 149, 169, 158, 155, 157, 168, 162, 161, 179, 159, 162, 171, 167, 153, 155, 155, 158, 160, 162, 160, 162, 157, 167, 160, 163, 154, 158, 156, 155, 162, 161, 155, 157, 148, 160, 155, 161, 165, 161, 158, 162, 157, 166, 155, 157, 159, 159, 161, 152, 157, 159, 156, 160, 151, 165, 159, 161, 167, 159, 161, 161, 161, 154, 156, 162, 170, 164, 160, 158, 159, 154, 153, 167, 170, 175, 158, 153, 166, 162, 167, 164, 162, 162, 164, 161, 156, 159, 164, 161, 163, 161, 170, 162, 175, 158, 162, 158, 159, 164, 161, 157, 163, 152, 155, 154, 161, 154, 152, 156, 166, 160, 160, 167, 159, 155, 160, 152, 151, 157, 165, 159, 161, 165, 155, 157, 161, 154, 156, 156, 155, 157, 162, 155, 155, 155, 154, 160, 163, 162, 152, 161, 153, 158, 166, 156, 166, 150, 157, 148, 162, 152, 159, 160, 159, 162, 165, 156, 160, 165, 161, 159, 157, 152, 157, 155, 161, 155, 161, 160, 168, 173, 153, 161, 158, 165, 161, 150, 159, 158, 164, 158, 161, 145, 153, 159, 165, 159, 157, 157, 157, 160, 162, 155, 157, 155, 160, 163, 162, 158, 163, 163, 163, 165, 166, 164, 159, 161, 154, 159, 158, 165, 164, 152, 159, 158, 153, 169, 169, 163, 159, 166, 164, 170, 168, 157, 161, 166, 163, 159, 162, 165, 157, 156, 158, 161, 159, 162, 166, 158, 165, 173, 165, 156, 166, 156, 161, 161, 164, 165, 163, 159, 158, 170, 164, 161, 164, 152, 163, 159, 162, 152, 163, 162, 160, 158, 156, 178, 156, 167, 161, 160, 161, 165, 158, 161, 159, 158, 171, 159, 162, 163, 155, 161, 155, 163, 168, 160, 157, 160, 167, 160, 161, 164, 163, 158, 165, 161, 157, 155, 162, 166, 165, 160, 162, 154, 165, 150, 164, 164, 159, 156, 163, 152, 156, 156, 161, 160, 161, 163, 160, 153, 159, 158, 162, 166, 160, 154, 161, 167, 165, 157, 162, 165, 155, 160, 161, 156, 158, 164, 164, 165, 164, 165, 155, 163, 160, 158, 168, 158, 159, 164, 161, 155, 166, 156, 158, 160, 161, 159, 158, 167, 162, 158, 160, 164, 142, 157, 160, 166, 160, 154, 162, 157, 153, 165, 158, 156, 161, 163, 159, 156, 163, 160, 163, 157, 164, 155, 157, 166, 156, 158, 161, 162, 166, 163, 156, 158, 168, 163, 159, 143, 162, 166, 155, 162, 162, 163, 159, 160, 160, 160, 159, 173, 156, 161, 151, 156, 163, 168, 162, 163, 159, 164, 160, 162, 160, 163, 158, 162, 165, 158, 164, 157, 164, 162, 163, 158, 158, 162, 162, 159, 164, 150, 165, 159, 164, 161, 165, 158, 160, 147, 165, 158, 160, 159, 157, 156, 167, 166, 160, 163, 159, 162, 167, 155, 157, 156, 162, 160, 157, 165, 159, 155, 166, 163, 162, 162, 156, 161, 158, 159, 159, 159, 160, 154, 166, 165, 162, 162, 165, 168, 143, 165, 164, 165, 161, 165, 162, 155, 158, 160, 154, 160, 160, 164, 159, 159, 167, 161, 171, 162, 159, 160, 165, 155, 153, 164, 155, 168, 159, 159, 163, 153, 156, 162, 162, 160, 158, 160, 164, 161, 166, 166, 159, 167, 158, 162, 157, 161, 159, 159, 153, 159, 163, 160, 163, 155, 153, 152, 159, 163, 164, 161, 164, 156, 161, 158, 164, 162, 164, 162, 163, 158, 155, 159, 162, 160, 165, 162, 166, 158, 162, 165, 160, 162, 150, 155, 164, 160, 163, 150, 160, 165, 161, 162, 165, 156, 154, 158, 159, 163, 166, 163, 168, 158, 164, 148, 153, 162, 159, 165, 163, 155, 160, 161, 157, 162, 164, 163, 161, 160, 163, 160, 164, 153, 158, 160, 153, 160, 156, 161, 165, 162, 153, 162, 171, 159, 163, 162, 162, 162, 156, 158, 157, 169, 156, 159, 160, 154, 156, 160, 157, 163, 161, 165, 158, 164, 166, 165, 162, 162, 164, 165, 152, 157, 157, 162, 140, 160, 160, 152, 163, 147, 161, 164, 166, 155, 166, 163, 168, 159, 162, 160, 153, 160, 163, 160, 156, 156, 161, 156, 160, 154, 161, 170, 161, 163, 152, 163, 164, 161, 163, 163, 161, 167, 160, 155, 167, 163, 163, 152, 161, 160, 158, 163, 153, 159, 157, 156, 166, 164, 162, 165, 165, 160, 163, 160, 162, 160, 157, 161, 164, 157, 171, 153, 156, 148, 157, 172, 167, 162, 163, 157, 162, 170, 162, 160, 165, 163, 157, 181, 159, 164, 161, 152, 154, 166, 155, 161, 156, 167, 135, 157, 165, 161, 165, 159, 155, 161, 154, 165, 154, 157, 162, 161, 164, 162, 151, 160, 165, 167, 158, 158, 167, 161, 154, 153, 160, 169, 161, 156, 174, 159, 161, 162, 155, 162, 159, 162, 154, 160, 161, 149, 154, 166, 147, 160, 159, 162, 151, 161, 190, 173, 163, 164, 162, 162, 161, 163, 166, 153, 148, 159, 162, 163, 152, 157, 160, 162, 165, 165, 163, 161, 165, 162, 164, 160, 157, 146, 158, 167, 158, 162, 154, 166, 163, 156, 154, 160, 156, 158, 149, 146, 162, 146, 160, 156, 157, 161, 160, 168, 161, 144, 177, 157, 160, 168, 166, 158, 158, 161, 164, 164, 157, 162, 157, 160, 161, 153, 155, 155, 162, 155, 167, 154, 162, 165, 159, 160, 162, 151, 163, 159, 153, 157, 161, 167, 158, 157, 166, 152, 163, 173, 160, 156, 166, 164, 159, 155, 157, 155, 158, 159, 154, 166, 163, 161, 158, 156, 152, 156, 162, 154, 160, 155, 160, 159, 158, 162, 161, 155, 160, 162, 165, 161, 154, 161, 162, 160, 164, 157, 157, 165, 157, 160, 169, 160, 164, 160, 157, 177, 159, 164, 153, 161, 160, 162, 165, 163, 176, 153, 166, 156, 163, 166, 153, 161, 161, 157, 159, 169, 151, 159, 167, 162, 157, 158, 156, 157, 164, 162, 156, 157, 157, 159, 167, 151, 161, 158, 162, 149, 160, 154, 157, 163, 167, 158, 163, 160, 154, 156, 158, 158, 169, 164, 161, 157, 157, 156, 140, 160, 155, 180, 156, 157, 157, 160, 158, 160, 163, 171, 162, 165, 169, 166, 164, 162, 160, 157, 159, 163, 156, 164, 155, 156, 162, 164, 165, 164, 165, 156, 156, 154, 161, 159, 162, 158, 158, 160, 154, 162, 163, 160, 155, 159, 164, 157, 162, 163, 164, 159, 162, 157, 155, 156, 158, 158, 156, 163, 164, 168, 168, 166, 166, 166, 161, 159, 157, 153, 169, 164, 167, 158, 156, 162, 164, 137, 155, 160, 145, 158, 160, 153, 149, 170, 162, 157, 171, 156, 164, 161, 162, 161, 164, 166, 155, 163, 160, 161, 157, 165, 159, 159, 173, 196, 162, 161, 157, 152, 158, 160, 145, 159, 158, 155, 162, 159, 165, 160, 163, 158, 158, 170, 162, 166, 164, 150, 153, 156, 159, 164, 159, 154, 162, 152, 163, 162, 160, 160, 172, 156, 159, 162, 164, 162, 158, 159, 170, 160, 146, 153, 160, 160, 161, 157, 156, 153, 160, 159, 167, 171, 154, 157, 171, 165, 154, 163, 161, 155, 160, 150, 159, 159, 169, 141, 162, 161, 164, 161, 164, 160, 170, 164, 160, 160, 155, 163, 156, 170, 148, 163, 158, 157, 176, 157, 152, 162, 157, 163, 164, 159, 167, 149, 157, 168, 159, 162, 163, 151, 162, 157, 160, 155, 161, 153, 158, 163, 164, 170, 158, 159, 142, 170, 120, 198, 158, 166, 151, 141, 163, 165, 156, 153, 158, 155, 148, 162, 168, 156, 159, 157, 160, 162, 168, 172, 159, 164, 165, 154, 155, 160, 167, 153, 172, 163, 156, 161, 162, 160, 156, 164, 157, 159, 156, 158, 157, 151, 178, 157, 160, 163, 162, 168, 157, 158, 164, 155, 160, 168, 152, 163, 172, 147, 168, 156, 164, 161, 167, 156, 156, 162, 154, 159, 153, 158, 160, 170, 161, 160, 161, 175, 163, 167, 156, 152, 165, 173, 156, 148, 160, 174, 162, 157, 158, 169, 159, 162, 164, 160, 155, 144, 155, 157, 159, 162, 154, 166, 154, 154, 157, 157, 161, 158, 155, 156, 158, 162, 162, 164, 160, 162, 174, 165, 162, 142, 161, 160, 161, 155, 160, 153, 156, 162, 162, 164, 161, 153, 160, 158, 159, 165, 156, 155, 157, 168, 161, 157, 165, 153, 150, 157, 158, 158, 159, 167, 155, 153, 167, 162, 143, 158, 165, 159, 150, 172, 165, 160, 151, 160, 165, 166, 164, 162, 160, 155, 157, 165, 161, 162, 158, 158, 159, 162, 161, 162, 161, 159, 162, 155, 153, 156, 155, 160, 162, 151, 159, 161, 162, 159, 156, 169, 157, 141, 160, 160, 169, 159, 159, 162, 151, 141, 158, 149, 158, 168, 155, 152, 161, 157, 167, 157, 156, 158, 163, 165, 155, 152, 157, 156, 158, 158, 167, 156, 168, 157, 160, 148, 158, 156, 161, 163, 153, 156, 158, 164, 160, 162, 166, 157, 157, 159, 160, 153, 159, 153, 165, 156, 163, 160, 173, 166, 166, 163, 150, 156, 158, 145, 155, 163, 162, 170, 156, 159, 163, 161, 161, 164, 160, 155, 168, 120, 162, 151, 164, 160, 158, 169, 160, 150, 162, 164, 154, 159, 161, 159, 158, 164, 171, 162, 152, 153, 160, 163, 159, 167, 162, 166, 154, 156, 158, 178, 161, 168, 163, 159, 164, 169, 158, 165, 166, 157, 160, 161, 165, 157, 156, 155, 159, 153, 155, 148, 199, 164, 166, 156, 166, 169, 168, 156, 167, 159, 154, 150, 163, 158, 171, 155, 162, 159, 171, 155, 157, 169, 156, 162, 150, 162, 161, 154, 157, 161, 165, 155, 158, 165, 162, 163, 158, 155, 154, 159, 165, 168, 170, 150, 163, 173, 157, 156, 163, 161, 163, 155, 157, 166, 158, 155, 154, 157, 169, 159, 158, 164, 168, 159, 154, 160, 157, 160, 169, 166, 160, 160, 160, 158, 160, 161, 168, 146, 157, 159, 180, 166, 141, 162, 167, 158, 157, 164, 157, 147, 142, 165, 163, 146, 157, 152, 138, 170, 159, 160, 178, 156, 161, 117, 154, 162, 156, 159, 156, 153, 157, 161, 148, 154, 158, 157, 160, 159, 162, 161, 150, 162, 151, 153, 159, 167, 158, 170, 163, 155, 157, 154, 154, 161, 170, 165, 168, 158, 164, 159, 164, 162, 159, 161, 147, 166, 157, 161, 158, 165, 160, 159, 156, 160, 160, 160, 156, 156, 162, 165, 152, 168, 164, 158, 159, 164, 164, 161, 154, 156, 160, 155, 163, 183, 149, 167, 168, 164, 159, 151, 157, 156, 168, 165, 167, 160, 163, 163, 168, 157, 164, 163, 149, 159, 158, 170, 175, 152, 163, 157, 152, 158, 163, 160, 155, 153, 157, 139, 182, 159, 155, 154, 153, 160, 160, 139, 155, 157, 161, 160, 164, 156, 158, 161, 157, 165, 171, 171, 161, 163, 158, 163, 150, 160, 162, 157, 161, 155, 151, 167, 168, 164, 151, 162, 156, 167, 148, 160, 148, 150, 157, 152, 172, 151, 165, 162, 168, 143, 154, 156, 163, 160, 174, 161, 160, 168, 155, 162, 144, 167, 158, 169, 165, 151, 162, 162, 162, 154, 154, 160, 163, 165, 163, 150, 150, 160, 149, 158, 168, 155, 156, 160, 156, 163, 160, 169, 149, 161, 172, 158, 156, 152, 161, 160, 160, 150, 154, 159, 155, 158, 162, 166, 169, 163, 157, 154, 151, 165, 171, 160, 160, 156, 162, 163, 167, 167, 158, 163, 169, 158, 167, 158, 155, 144, 168, 155, 154, 159, 159, 163, 163, 153, 153, 143, 163, 174, 160, 133, 170, 159, 155, 146, 161, 156, 169, 154, 164, 156, 149, 160, 169, 160, 159, 160, 157, 154, 161, 160, 155, 162, 159, 154, 178, 155, 145, 165, 164, 153, 160, 164, 162, 147, 161, 159, 142, 156, 167, 160, 153, 148, 156, 154, 148, 159, 162, 159, 168, 148, 159, 159, 162, 160, 150, 160, 159, 174, 164, 191, 164, 163, 154, 159, 165, 159, 165, 147, 151, 160, 152, 162, 154, 155, 171, 158, 160, 164, 153, 158, 161, 180, 163, 159, 153, 185, 155, 151, 159, 160, 156, 157, 157, 144, 153, 162, 159, 157, 156, 153, 148, 150, 161, 162, 160, 155, 158, 160, 175, 161, 143, 168, 157, 164, 157, 154, 157, 162, 163, 154, 162, 155, 158, 153, 150, 161, 163, 150, 160, 167, 154, 168, 161, 159, 156, 170, 160, 164, 157, 160, 161, 158, 155, 151, 161, 166, 152, 169, 160, 159, 165, 156, 151, 154, 166, 164, 168, 156, 157, 155, 158, 162, 159, 162, 151, 165, 145, 158, 153, 150, 144, 157, 155, 162, 158, 159, 153, 156, 160, 160, 160, 171, 161, 164, 153, 168, 167, 144, 158, 154, 154, 173, 159, 161, 150, 167, 151, 155, 176, 168, 142, 155, 159, 164, 158, 164, 163, 167, 146, 160, 150, 157, 165, 162, 167, 161, 158, 160, 173, 159, 154, 155, 166, 163, 154, 162, 162, 158, 167, 164, 153, 153, 151, 168, 161, 143, 151, 165, 156, 160, 165, 153, 161, 155, 159, 165, 154, 159, 171, 144, 156, 154, 160, 157, 159, 156, 153, 150, 161, 145, 151, 157, 161, 160, 155, 159, 169, 160, 161, 164, 162, 182, 167, 162, 167, 160, 164, 159, 167, 157, 160, 153, 160, 144, 158, 150, 157, 162, 155, 161, 170, 165, 160, 161, 157, 154, 158, 157, 163, 154, 155, 150, 164, 172, 155, 161, 146, 166, 160, 156, 163, 161, 164, 163, 169, 153, 160, 161, 165, 152, 156, 155, 161, 158, 156, 162, 162, 159, 157, 160, 159, 162, 163, 163, 163, 165, 159, 159, 150, 156, 159, 153, 163, 156, 163, 155, 162, 158, 157, 160, 161, 161, 162, 162, 173, 166, 154, 166, 161, 161, 154, 162, 163, 160, 163, 152, 154, 158, 156, 166, 165, 155, 157, 157, 159, 157, 161, 156, 161, 157, 161, 158, 165, 164, 154, 160, 161, 164, 160, 165, 154, 165, 146, 161, 167, 160, 163, 162, 157, 165, 161, 153, 165, 166, 155, 164, 161, 164, 163, 160, 166, 159, 169, 160, 156, 157, 161, 166, 149, 162, 162, 159, 160, 166, 163, 162, 162, 162, 161, 152, 161, 160, 164, 165, 159, 156, 160, 161, 160, 154, 165, 157, 157, 157, 159, 159, 156, 160, 163, 166, 158, 162, 154, 156, 152, 163, 159, 162, 158, 164, 157, 164, 155, 156, 169, 159, 160, 153, 165, 153, 155, 165, 158, 157, 164, 163, 163, 161, 158, 158, 161, 156, 160, 152, 166, 151, 154, 168, 155, 158, 153, 159, 170, 157, 176, 161, 157, 162, 166, 159, 163, 162, 157, 157, 166, 159, 154, 162, 161, 167, 157, 152, 156, 158, 161, 155, 162, 166, 156, 153, 158, 161, 162, 161, 161, 161, 161, 158, 158, 160, 151, 163, 165, 165, 163, 158, 162, 160, 159, 153, 159, 161, 157, 162, 162, 156, 161, 158, 160, 161, 162, 158, 165, 157, 160, 162, 157, 158, 167, 161, 161, 162, 156, 162, 168, 164, 161, 162, 159, 160, 165, 160, 163, 158, 154, 158, 157, 158, 155, 158, 163, 155, 164, 161, 163, 159, 156, 159, 168, 153, 155, 165, 162, 162, 161, 151, 163, 161, 155, 163, 157, 156, 167, 160, 162, 162, 160, 160, 162, 161, 152, 163, 158, 154, 163, 151, 160, 157, 163, 173, 158, 153, 156, 160, 165, 154, 153, 159, 154, 163, 167, 163, 152, 162, 159, 163, 157, 160, 164, 161, 163, 159, 159, 160, 165, 164, 166, 163, 157, 159, 160, 157, 163, 157, 161, 158, 164, 164, 164, 160, 165, 163, 157, 159, 161, 157, 162, 158, 162, 160, 164, 160, 160, 159, 162, 163, 159, 163, 160, 165, 165, 155, 162, 165, 170, 164, 162, 164, 160, 157, 153, 156, 167, 167, 162, 154, 161, 160, 154, 162, 160, 162, 161, 160, 153, 160, 164, 163, 162, 163, 161, 162, 162, 155, 161, 159, 162, 165, 157, 160, 164, 165, 159, 155, 157, 158, 157, 157, 166, 169, 158, 157, 162, 161, 162, 158, 159, 158, 162, 168, 162, 160, 159, 156, 161, 165, 161, 159, 158, 162, 154, 165, 163, 158, 163, 156, 160, 160, 163, 156, 169, 156, 162, 153, 158, 162, 163, 159, 155, 166, 161, 153, 154, 158, 157, 166, 158, 153, 161, 159, 160, 158, 157, 154, 154, 168, 164, 155, 154, 156, 165, 159, 156, 165, 160, 160, 169, 159, 167, 163, 160, 165, 162, 166, 158, 160, 164, 158, 157, 158, 154, 165, 157, 159, 171, 166, 159, 160, 160, 161, 158, 155, 160, 170, 163, 158, 163, 160, 159, 158, 161, 159, 157, 153, 168, 172, 164, 154, 159, 158, 161, 152, 160, 150, 153, 156, 154, 154, 161, 145, 165, 159, 157, 157, 159, 168, 167, 159, 157, 155, 163, 162, 163, 160, 163, 158, 158, 155, 164, 146, 159, 153, 178, 152, 159, 164, 152, 164, 164, 165, 160, 161, 162, 165, 158, 169, 164, 165, 162, 154, 154, 162, 153, 160, 163, 154, 161, 158, 163, 152, 161, 158, 161, 161, 163, 161, 163, 154, 164, 154, 168, 165, 156, 161, 161, 153, 159, 160, 169, 164, 157, 155, 163, 159, 166, 167, 161, 163, 160, 157, 168, 162, 156, 159, 158, 160, 158, 160, 164, 157, 159, 162, 162, 156, 156, 160, 158, 166, 156, 158, 163, 161, 157, 160, 160, 155, 158, 160, 161, 160, 170, 161, 164, 168, 165, 156, 154, 158, 159, 156, 157, 153, 168, 153, 168, 161, 157, 161, 159, 151, 169, 164, 164, 158, 159, 163, 158, 157, 165, 166, 198, 166, 164, 161, 165, 164, 159, 163, 160, 159, 148, 162, 163, 157, 154, 159, 156, 160, 163, 164, 159, 168, 162, 162, 157, 160, 159, 157, 151, 155, 153, 161, 164, 167, 154, 162, 170, 161, 158, 160, 164, 162, 159, 162, 158, 162, 162, 158, 168, 161, 151, 151, 160, 169, 158, 157, 160, 162, 164, 165, 159, 165, 159, 162, 159, 162, 167, 171, 169, 157, 161, 156, 162, 173, 155, 160, 163, 160, 140, 164, 160, 158, 160, 163, 151, 167, 162, 156, 158, 163, 160, 160, 160, 152, 160, 162, 161, 158, 163, 159, 154, 156, 154, 161, 161, 162, 162, 157, 167, 160, 155, 162, 158, 157, 163, 164, 152, 162, 165, 167, 164, 161, 162, 165, 160, 158, 159, 158, 164, 161, 159, 158, 170, 160, 169, 154, 156, 166, 155, 166, 161, 156, 162, 162, 162, 155, 158, 161, 170, 165, 161, 158, 154, 159, 157, 161, 162, 161, 160, 160, 156, 152, 147, 160, 156, 158, 158, 162, 155, 165, 161, 158, 155, 163, 157, 158, 165, 165, 164, 160, 161, 166, 157, 164, 155, 168, 170, 157, 164, 154, 157, 164, 164, 158, 156, 167, 158, 156, 161, 159, 152, 165, 188, 155, 169, 160, 160, 161, 171, 168, 150, 157, 154, 160, 162, 159, 158, 156, 150, 158, 162, 156, 158, 160, 164, 168, 162, 161, 156, 149, 159, 155, 164, 159, 165, 163, 159, 159, 161, 153, 151, 154, 161, 163, 155, 165, 158, 161, 165, 162, 162, 161, 148, 165, 168, 165, 158, 161, 160, 156, 165, 153, 154, 164, 162, 157, 161, 156, 150, 160, 158, 185, 167, 158, 161, 162, 163, 162, 162, 167, 163, 158, 157, 166, 159, 161, 154, 161, 158, 156, 156, 167, 162, 146, 164, 170, 160, 163, 158, 158, 162, 159, 158, 154, 161, 162, 157, 158, 155, 159, 163, 163, 159, 159, 169, 169, 160, 162, 159, 163, 162, 168, 159, 157, 165, 156, 159, 162, 151, 168, 158, 160, 162, 145, 162, 162, 154, 169, 156, 176, 171, 157, 176, 162, 162, 156, 162, 155, 161, 156, 164, 167, 166, 154, 154, 161, 159, 157, 155, 157, 163, 155, 165, 163, 163, 157, 154, 158, 150, 155, 167, 163, 158, 161, 160, 163, 150, 162, 175, 150, 164, 165, 163, 162, 158, 173, 160, 156, 164, 167, 162, 164, 157, 157, 162, 159, 178, 162, 169, 153, 158, 156, 158, 155, 162, 156, 163, 157, 128, 154, 173, 166, 150, 162, 160, 163, 158, 159, 159, 160, 157, 156, 153, 165, 163, 158, 160, 169, 163, 146, 154, 167, 156, 158, 174, 158, 160, 152, 156, 168, 162, 164, 162, 161, 155, 171, 160, 160, 165, 159, 161, 165, 151, 153, 159, 156, 159, 162, 144, 160, 162, 155, 159, 156, 165, 149, 163, 156, 160, 163, 164, 163, 157, 164, 164, 164, 157, 152, 158, 165, 155, 156, 161, 163, 164, 168, 159, 141, 156, 160, 155, 159, 162, 162, 162, 160, 157, 155, 156, 166, 173, 161, 158, 131, 156, 161, 157, 151, 157, 162, 162, 156, 162, 157, 156, 163, 161, 169, 158, 162, 158, 168, 165, 162, 160, 153, 156, 155, 154, 152, 161, 154, 162, 160, 154, 158, 154, 160, 150, 160, 165, 159, 158, 157, 161, 160, 165, 160, 161, 155, 157, 154, 175, 147, 155, 166, 158, 162, 161, 160, 147, 168, 173, 160, 159, 163, 168, 150, 164, 159, 160, 161, 159, 155, 161, 159, 158, 166, 160, 156, 156, 157, 152, 163, 165, 159, 159, 159, 151, 148, 162, 155, 156, 160, 159, 157, 164, 153, 150, 158, 159, 156, 156, 165, 161, 162, 165, 162, 162, 170, 160, 160, 156, 159, 156, 162, 165, 151, 175, 158, 156, 165, 160, 157, 160, 159, 153, 156, 159, 160, 164, 163, 156, 164, 161, 167, 157, 166, 154, 168, 176, 168, 156, 161, 153, 181, 160, 161, 153, 161, 149, 160, 156, 161, 154, 161, 164, 157, 162, 147, 160, 154, 155, 164, 142, 150, 154, 166, 157, 160, 164, 156, 163, 161, 156, 159, 151, 168, 166, 156, 164, 158, 152, 158, 171, 154, 170, 165, 172, 160, 160, 159, 158, 164, 158, 147, 168, 156, 158, 162, 154, 162, 155, 167, 160, 168, 155, 169, 158, 155, 161, 153, 159, 171, 160, 160, 162, 159, 160, 163, 149, 151, 159, 155, 168, 150, 161, 160, 173, 154, 163, 159, 159, 158, 153, 159, 162, 155, 161, 145, 154, 159, 163, 162, 160, 160, 164, 165, 165, 163, 154, 157, 152, 163, 162, 151, 162, 155, 163, 152, 159, 150, 147, 161, 164, 163, 159, 156, 168, 163, 159, 143, 148, 160, 159, 164, 159, 155, 157, 162, 157, 153, 155, 155, 162, 145, 155, 156, 151, 169, 143, 158, 157, 148, 173, 152, 161, 163, 154, 164, 164, 165, 167, 162, 163, 165, 193, 157, 157, 159, 166, 158, 157, 162, 156, 164, 157, 157, 158, 156, 165, 155, 156, 158, 151, 155, 163, 159, 151, 157, 160, 173, 178, 168, 159, 165, 155, 164, 159, 161, 162, 149, 164, 159, 158, 158, 152, 155, 155, 162, 150, 160, 158, 160, 152, 158, 153, 157, 161, 164, 161, 160, 165, 137, 161, 168, 156, 171, 151, 162, 150, 159, 157, 158, 153, 157, 159, 163, 163, 163, 154, 166, 160, 167, 152, 160, 168, 151, 170, 154, 158, 156, 165, 161, 159, 153, 160, 169, 158, 148, 169, 154, 156, 158, 162, 165, 156, 153, 155, 156, 152, 170, 159, 159, 157, 161, 155, 163, 166, 160, 153, 165, 154, 153, 158, 166, 161, 158, 153, 166, 167, 163, 163, 157, 156, 155, 159, 172, 162, 157, 157, 160, 154, 165, 169, 152, 153, 164, 159, 167, 161, 169, 157, 157, 193, 168, 163, 157, 159, 153, 157, 154, 157, 170, 156, 160, 157, 151, 158, 150, 163, 162, 161, 158, 161, 150, 160, 173, 165, 167, 154, 163, 163, 158, 169, 156, 170, 163, 158, 155, 156, 157, 161, 154, 156, 159, 163, 163, 159, 161, 162, 166, 157, 159, 152, 157, 158, 161, 163, 162, 153, 161, 151, 151, 157, 166, 163, 162, 159, 160, 163, 155, 169, 149, 161, 160, 166, 155, 154, 170, 155, 153, 158, 151, 154, 152, 155, 155, 164, 155, 172, 168, 170, 175, 163, 162, 160, 156, 162, 167, 159, 153, 149, 167, 146, 149, 169, 153, 166, 162, 154, 178, 161, 159, 161, 163, 155, 166, 146, 154, 165, 166, 163, 150, 159, 153, 157, 163, 158, 161, 167, 155, 143, 163, 162, 150, 162, 151, 155, 160, 158, 154, 166, 158, 155, 156, 154, 158, 162, 164, 165, 157, 160, 163, 169, 161, 168, 169, 158, 173, 157, 169, 161, 162, 156, 145, 156, 162, 165, 159, 166, 159, 160, 163, 152, 158, 163, 152, 161, 160, 180, 159, 154, 163, 153, 156, 152, 154, 162, 163, 159, 149, 170, 166, 168, 165, 174, 152, 162, 158, 164, 145, 154, 155, 164, 160, 174, 163, 167, 159, 151, 154, 145, 161, 158, 157, 162, 168, 163, 151, 155, 161, 154, 162, 169, 165, 159, 152, 150, 147, 153, 150, 156, 174, 157, 156, 157, 162, 154, 164, 167, 160, 157, 162, 158, 160, 159, 158, 154, 168, 157, 163, 164, 155, 155, 156, 143, 158, 159, 162, 165, 163, 152, 178, 157, 154, 157, 160, 175, 163, 167, 160, 154, 160, 156, 162, 165, 157, 150, 158, 163, 162, 160, 155, 160, 155, 147, 158, 158, 154, 154, 166, 160, 157, 159, 167, 171, 163, 164, 170, 161, 153, 165, 167, 147, 164, 158, 160, 141, 157, 164, 156, 156, 148, 162, 168, 158, 171, 167, 176, 159, 164, 159, 162, 170, 160, 166, 158, 155, 162, 166, 164, 161, 155, 164, 159, 160, 159, 158, 161, 169, 151, 164, 166, 160, 167, 166, 168, 162, 162, 158, 159, 170, 168, 162, 155, 151, 154, 166, 165, 158, 170, 150, 161, 162, 159, 165, 159, 157, 159, 166, 155, 145, 151, 151, 170, 153, 148, 149, 158, 158, 155, 162, 154, 148, 159, 171, 156, 160, 145, 155, 157, 161, 163, 156, 163, 163, 154, 162, 176, 163, 159, 161, 159, 164, 157, 162, 156, 159, 175, 182, 161, 160, 154, 154, 152, 156, 144, 160, 164, 169, 158, 171, 163, 159, 161, 161, 162, 162, 165, 144, 150, 159, 148, 161, 160, 159, 156, 169, 168, 161, 154, 161, 144, 161, 146, 158, 149, 160, 159, 168, 160, 167, 157, 153, 153, 157, 158, 160, 154, 158, 159, 161, 165, 161, 171, 156, 149, 181, 153, 159, 162, 158, 157, 154, 171, 160, 176, 158, 165, 157, 165, 165, 162, 170, 156, 156, 157, 163, 161, 161, 150, 158, 164, 156, 171, 158, 153, 160, 166, 170, 165, 167, 157, 164, 158, 160, 153, 151, 161, 162, 160, 157, 159, 155, 152, 157, 162, 166, 162, 160, 155, 157, 153, 159, 156, 151, 152, 162, 152, 157, 156, 151, 161, 161, 153, 160, 158, 178, 160, 156, 155, 162, 162, 157, 162, 155, 161, 162, 158, 167, 159, 160, 164, 147, 162, 164, 153, 171, 151, 154, 155, 159, 157, 159, 168, 162, 155, 157, 161, 159, 159, 159, 158, 159, 142, 169, 161, 157, 151, 156, 159, 167, 159, 158, 170, 153, 150, 161, 155, 155, 161, 161, 160, 159, 168, 158, 164, 162, 163, 169, 162, 163, 152, 158, 148, 162, 159, 163, 162, 174, 161, 167, 158, 164, 164, 154, 146, 162, 162, 160, 153, 162, 167, 160, 154, 157, 164, 157, 150, 152, 159, 162, 163, 162, 159, 149, 144, 158, 168, 155, 158, 156, 155, 156, 167, 157, 155, 165, 156, 148, 161, 159, 156, 149, 161, 156, 167, 159, 168, 148, 163, 150, 165, 145, 144, 170, 158, 157, 159, 163, 181, 156, 162, 160, 157, 160, 163, 167, 149, 167, 159, 172, 166, 162, 160, 153, 153, 157, 162, 160, 160, 156, 165, 171, 149, 180, 161, 142, 157, 158, 162, 168, 161, 157, 161, 160, 165, 160, 162, 165, 157, 160, 162, 170, 149, 162, 162, 158, 159, 156, 165, 160, 138, 168, 161, 164, 157, 162, 171, 147, 156, 159, 157, 157, 160, 163, 148, 161, 153, 164, 148, 157, 173, 158, 168, 164, 151, 167, 156, 165, 156, 162, 166, 161, 160, 161, 155, 164, 149, 156, 172, 164, 163, 159, 157, 164, 154, 159, 165, 144, 170, 181, 167, 163, 156, 165, 162, 153, 160, 159, 162, 152, 165, 157, 165, 162, 151, 174, 163, 174, 159, 160, 154, 160, 175, 156, 159, 154, 154, 155, 156, 158, 168, 159, 166, 164, 162, 158, 154, 160, 168, 159, 162, 160, 148, 155, 153, 162, 171, 158, 158, 164, 157, 154, 149, 162, 156, 152, 155, 159, 153, 164, 173, 150, 156, 158, 153, 158, 165, 185, 163, 170, 155, 153, 157, 160, 151, 159, 155, 159, 166, 157, 155, 165, 147, 154, 152, 153, 169, 160, 155, 162, 150, 157, 157, 162, 162, 153, 165, 159, 157, 157, 144, 159, 160, 163, 164, 158, 175, 160, 153, 154, 168, 151, 153, 171, 161, 162, 159, 165, 157, 165, 162, 151, 157, 150, 161, 161, 160, 156, 158, 157, 171, 161, 159, 159, 169, 160, 153, 163, 156, 159, 151, 156, 155, 148, 161, 157, 178, 150, 146, 160, 157, 163, 159, 163, 160, 165, 166, 158, 147, 162, 159, 169, 151, 157, 151, 157, 160, 148, 164, 152, 161, 162, 165, 159, 159, 157, 162, 163, 161, 162, 161, 158, 163, 159, 176, 162, 162, 159, 159, 157, 161, 161, 158, 161, 159, 160, 161, 160, 160, 157, 164, 158, 162, 163, 160, 158, 168, 161, 165, 158, 158, 160, 152, 156, 162, 162, 164, 165, 154, 161, 160, 161, 156, 159, 165, 163, 153, 159, 160, 158, 163, 165, 158, 157, 159, 158, 168, 155, 161, 164, 160, 161, 161, 155, 160, 163, 161, 161, 160, 161, 161, 158, 160, 163, 155, 158, 165, 163, 165, 161, 163, 160, 162, 162, 150, 163, 163, 159, 161, 163, 160, 159, 161, 161, 163, 160, 161, 165, 160, 164, 164, 151, 158, 157, 158, 155, 164, 158, 159, 159, 159, 161, 156, 155, 160, 161, 161, 157, 159, 158, 164, 157, 157, 160, 162, 159, 164, 158, 156, 168, 154, 164, 162, 163, 163, 160, 166, 166, 163, 161, 155, 160, 163, 159, 161, 172, 160, 160, 158, 159, 158, 164, 161, 163, 159, 162, 154, 155, 163, 155, 165, 159, 159, 164, 171, 162, 162, 159, 165, 160, 159, 163, 159, 163, 173, 161, 160, 161, 166, 153, 153, 162, 157, 161, 159, 159, 161, 164, 160, 160, 159, 161, 159, 158, 156, 161, 161, 161, 158, 159, 161, 163, 158, 161, 161, 161, 155, 165, 160, 159, 163, 156, 159, 168, 154, 167, 163, 158, 160, 158, 162, 159, 162, 158, 162, 158, 157, 160, 156, 161, 157, 156, 158, 158, 160, 162, 154, 159, 157, 163, 159, 163, 158, 162, 157, 162, 160, 159, 163, 157, 160, 164, 162, 158, 163, 162, 157, 161, 165, 161, 170, 158, 159, 159, 159, 160, 159, 161, 160, 157, 164, 161, 167, 160, 160, 159, 160, 160, 160, 163, 163, 159, 159, 164, 159, 161, 160, 161, 161, 164, 157, 160, 159, 167, 162, 160, 164, 160, 164, 162, 163, 159, 165, 159, 155, 160, 158, 159, 156, 158, 165, 162, 156, 159, 160, 158, 162, 162, 160, 161, 158, 161, 162, 155, 155, 161, 155, 162, 163, 160, 156, 157, 163, 156, 166, 166, 160, 166, 164, 159, 161, 158, 158, 161, 164, 157, 161, 159, 161, 157, 166, 160, 154, 159, 157, 160, 160, 162, 160, 157, 158, 162, 166, 164, 161, 156, 160, 158, 159, 154, 166, 160, 160, 157, 150, 159, 157, 161, 156, 167, 159, 161, 151, 157, 162, 153, 160, 156, 159, 156, 170, 159, 161, 158, 157, 162, 159, 163, 159, 158, 161, 154, 161, 163, 161, 159, 158, 161, 160, 161, 158, 156, 161, 160, 156, 162, 162, 151, 160, 163, 158, 164, 160, 160, 157, 160, 160, 167, 158, 159, 165, 162, 164, 158, 168, 160, 160, 158, 160, 166, 159, 164, 163, 165, 156, 162, 160, 165, 157, 163, 167, 163, 161, 157, 160, 157, 161, 161, 157, 156, 163, 160, 158, 155, 157, 161, 159, 162, 158, 153, 163, 163, 155, 162, 161, 161, 163, 158, 165, 157, 169, 161, 163, 160, 162, 158, 158, 156, 158, 158, 159, 158, 160, 163, 152, 162, 158, 161, 157, 165, 157, 162, 162, 156, 169, 160, 159, 161, 158, 162, 164, 160, 163, 152, 152, 156, 157, 151, 169, 153, 153, 164, 162, 156, 161, 152, 179, 160, 154, 161, 151, 165, 148, 145, 156, 165, 167, 156, 164, 167, 161, 151, 157, 159, 155, 158, 168, 162, 164, 161, 152, 163, 166, 163, 162, 165, 158, 161, 161, 156, 162, 160, 151, 163, 160, 166, 162, 160, 156, 164, 157, 150, 162, 168, 159, 158, 160, 165, 160, 157, 165, 158, 161, 159, 162, 172, 167, 165, 168, 161, 154, 158, 154, 157, 161, 159, 161, 166, 159, 155, 153, 166, 164, 162, 166, 160, 157, 161, 162, 160, 163, 159, 159, 159, 158, 163, 157, 161, 162, 160, 153, 166, 156, 163, 158, 167, 154, 163, 169, 153, 160, 164, 161, 151, 158, 161, 164, 163, 166, 162, 169, 152, 160, 167, 166, 164, 159, 164, 158, 159, 156, 154, 156, 164, 158, 166, 159, 147, 166, 163, 159, 160, 155, 159, 161, 155, 159, 166, 161, 160, 169, 163, 157, 162, 155, 162, 150, 157, 154, 164, 159, 154, 163, 161, 148, 172, 152, 162, 157, 161, 157, 163, 157, 165, 145, 174, 161, 157, 163, 152, 156, 160, 161, 161, 161, 159, 163, 159, 151, 156, 166, 158, 161, 157, 158, 164, 162, 165, 156, 159, 160, 153, 155, 157, 161, 162, 157, 161, 162, 164, 154, 176, 155, 158, 156, 158, 164, 158, 162, 157, 154, 152, 164, 169, 155, 160, 159, 161, 156, 166, 162, 162, 162, 164, 164, 153, 161, 158, 156, 161, 164, 163, 173, 152, 159, 153, 155, 155, 166, 141, 156, 158, 168, 153, 170, 173, 155, 156, 152, 153, 157, 167, 166, 161, 163, 159, 167, 155, 159, 157, 160, 157, 161, 151, 147, 167, 166, 159, 175, 158, 161, 156, 153, 166, 164, 152, 158, 164, 152, 162, 164, 159, 139, 169, 160, 164, 164, 170, 162, 160, 156, 161, 154, 154, 155, 162, 159, 159, 151, 160, 155, 164, 159, 168, 162, 159, 159, 158, 160, 171, 159, 148, 161, 155, 159, 167, 161, 158, 159, 157, 162, 164, 158, 154, 164, 163, 156, 159, 154, 170, 159, 170, 167, 165, 166, 160, 155, 171, 154, 165, 166, 160, 158, 162, 161, 156, 164, 149, 175, 149, 157, 164, 170, 161, 155, 162, 153, 173, 157, 160, 167, 164, 162, 156, 163, 169, 152, 177, 156, 164, 162, 156, 155, 161, 163, 157, 160, 167, 157, 166, 158, 158, 156, 155, 157, 159, 157, 149, 169, 162, 162, 159, 159, 164, 160, 153, 159, 161, 156, 154, 160, 170, 162, 162, 154, 165, 159, 161, 161, 140, 164, 156, 163, 170, 143, 145, 159, 160, 153, 160, 158, 165, 164, 155, 157, 163, 161, 153, 163, 155, 163, 159, 159, 159, 169, 161, 154, 159, 161, 152, 159, 150, 174, 164, 173, 155, 158, 159, 156, 159, 172, 155, 151, 165, 160, 164, 162, 160, 169, 164, 161, 163, 150, 160, 159, 159, 159, 158, 164, 156, 176, 163, 160, 154, 160, 159, 165, 164, 163, 167, 164, 165, 163, 167, 164, 163, 164, 155, 160, 165, 155, 158, 152, 160, 158, 167, 151, 164, 164, 153, 157, 157, 152, 158, 157, 169, 161, 175, 144, 171, 145, 160, 164, 155, 159, 154, 160, 156, 167, 154, 157, 166, 158, 152, 160, 157, 156, 153, 158, 155, 159, 156, 163, 161, 161, 165, 163, 173, 167, 169, 156, 158, 174, 160, 154, 152, 158, 157, 153, 159, 162, 158, 167, 162, 161, 160, 159, 146, 158, 166, 164, 157, 157, 151, 158, 171, 153, 161, 162, 164, 161, 165, 152, 158, 161, 159, 157, 158, 153, 165, 159, 156, 163, 159, 158, 152, 150, 166, 147, 159, 163, 163, 144, 161, 160, 156, 157, 164, 160, 165, 159, 149, 153, 160, 158, 154, 171, 153, 169, 159, 156, 153, 163, 157, 156, 186, 162, 157, 162, 157, 157, 161, 163, 158, 160, 145, 161, 170, 156, 159, 164, 158, 152, 165, 161, 161, 155, 156, 155, 169, 160, 157, 167, 155, 175, 165, 165, 173, 165, 170, 160, 159, 158, 154, 163, 144, 166, 161, 154, 172, 156, 148, 159, 159, 162, 174, 165, 161, 153, 163, 163, 158, 166, 156, 162, 157, 154, 139, 162, 167, 163, 162, 158, 162, 157, 162, 152, 165, 158, 156, 168, 163, 169, 165, 149, 164, 158, 155, 157, 159, 171, 154, 157, 159, 159, 161, 157, 160, 162, 159, 159, 151, 157, 150, 159, 159, 169, 162, 157, 157, 168, 155, 165, 159, 163, 140, 154, 162, 162, 158, 162, 156, 163, 158, 153, 156, 173, 162, 156, 148, 159, 153, 161, 167, 161, 169, 161, 176, 160, 162, 160, 160, 164, 156, 156, 160, 151, 159, 160, 160, 156, 159, 162, 158, 153, 152, 157, 160, 162, 141, 159, 160, 148, 155, 153, 151, 143, 152, 161, 156, 156, 159, 169, 158, 155, 150, 171, 158, 158, 157, 156, 162, 167, 164, 176, 156, 152, 164, 165, 159, 164, 159, 155, 156, 171, 152, 161, 154, 163, 153, 154, 163, 156, 173, 184, 161, 186, 165, 170, 158, 164, 154, 165, 176, 157, 152, 154, 160, 159, 162, 156, 160, 165, 156, 159, 157, 163, 136, 167, 162, 153, 160, 167, 160, 162, 147, 165, 160, 160, 156, 158, 160, 164, 154, 151, 157, 155, 156, 154, 162, 167, 176, 156, 156, 160, 161, 188, 162, 170, 151, 160, 160, 144, 156, 161, 145, 167, 154, 161, 153, 167, 164, 137, 164, 151, 162, 156, 161, 181, 162, 141, 162, 147, 158, 164, 159, 159, 161, 149, 149, 164, 161, 164, 151, 163, 161, 160, 166, 158, 167, 155, 154, 161, 144, 160, 158, 174, 175, 163, 151, 159, 159, 159, 169, 160, 158, 150, 171, 168, 163, 168, 161, 163, 167, 162, 160, 156, 156, 157, 165, 189, 157, 158, 165, 170, 153, 144, 169, 165, 171, 158, 156, 156, 166, 165, 152, 164, 157, 163, 154, 164, 160, 153, 156, 163, 157, 173, 161, 153, 167, 163, 164, 158, 155, 155, 158, 158, 157, 165, 157, 161, 161, 155, 163, 161, 158, 147, 155, 162, 157, 154, 163, 159, 162, 163, 155, 161, 163, 153, 161, 154, 165, 154, 160, 163, 160, 154, 154, 156, 155, 187, 162, 165, 154, 174, 159, 163, 156, 158, 161, 163, 157, 157, 154, 159, 155, 152, 156, 159, 161, 163, 164, 147, 160, 157, 156, 155, 162, 148, 157, 160, 152, 151, 161, 163, 157, 161, 162, 156, 162, 164, 157, 162, 161, 157, 159, 164, 161, 153, 167, 154, 157, 150, 161, 160, 154, 164, 164, 162, 167, 157, 164, 160, 167, 157, 165, 156, 159, 162, 153, 164, 155, 166, 161, 155, 164, 158, 160, 154, 157, 148, 154, 158, 155, 157, 166, 160, 161, 153, 163, 165, 164, 159, 161, 159, 166, 166, 155, 158, 163, 166, 163, 160, 155, 159, 160, 152, 154, 158, 161, 160, 166, 166, 156, 158, 160, 155, 156, 159, 163, 161, 165, 156, 164, 155, 162, 155, 157, 160, 157, 163, 164, 161, 154, 159, 158, 160, 165, 155, 158, 169, 162, 157, 155, 159, 158, 159, 159, 159, 166, 164, 141, 164, 161, 162, 152, 164, 155, 156, 156, 152, 161, 152, 159, 157, 162, 154, 159, 163, 168, 152, 160, 153, 156, 159, 151, 158, 148, 160, 164, 156, 158, 166, 171, 161, 147, 160, 156, 150, 161, 167, 153, 159, 156, 175, 162, 158, 152, 164, 155, 156, 162, 159, 154, 163, 175, 162, 159, 164, 161, 160, 161, 168, 158, 155, 157, 159, 169, 155, 162, 174, 163, 157, 157, 161, 158, 165, 157, 153, 160, 158, 159, 153, 161, 156, 159, 160, 160, 159, 155, 161, 166, 159, 167, 157, 164, 162, 160, 158, 160, 163, 166, 166, 164, 157, 166, 143, 152, 175, 160, 157, 163, 142, 159, 162, 161, 163, 165, 166, 157, 154, 159, 157, 161, 163, 159, 162, 159, 164, 163, 156, 163, 169, 152, 162, 176, 160, 161, 159, 166, 166, 161, 161, 158, 160, 161, 161, 157, 157, 162, 163, 159, 155, 157, 160, 154, 156, 161, 156, 154, 159, 158, 166, 153, 162, 159, 178, 171, 159, 159, 167, 171, 158, 161, 155, 159, 163, 150, 159, 157, 161, 169, 169, 164, 163, 156, 170, 159, 158, 159, 161, 162, 161, 154, 151, 167, 163, 159, 165, 160, 160, 169, 165, 157, 161, 151, 156, 156, 170, 148, 155, 151, 144, 160, 163, 158, 161, 157, 161, 158, 150, 168, 154, 154, 159, 155, 159, 157, 151, 152, 159, 168, 158, 153, 162, 167, 168, 160, 164, 166, 156, 164, 165, 172, 162, 163, 167, 153, 161, 168, 156, 155, 154, 156, 159, 156, 159, 152, 157, 158, 154, 160, 158, 155, 164, 154, 158, 168, 159, 155, 153, 161, 161, 163, 166, 153, 158, 149, 155, 165, 161, 159, 159, 157, 174, 161, 162, 153, 159, 157, 156, 157, 163, 155, 157, 158, 162, 164, 152, 163, 158, 160, 165, 160, 150, 158, 163, 159, 153, 150, 162, 160, 159, 154, 159, 156, 154, 156, 162, 155, 139, 165, 165, 157, 159, 159, 151, 159, 157, 161, 165, 161, 168, 153, 172, 163, 151, 157, 165, 162, 155, 163, 159, 145, 154, 161, 155, 161, 163, 162, 156, 167, 158, 153, 168, 154, 168, 165, 163, 151, 160, 157, 211, 160, 155, 158, 154, 159, 157, 151, 162, 158, 162, 161, 159, 162, 162, 156, 159, 159, 163, 161, 167, 164, 152, 168, 156, 161, 157, 158, 157, 160, 157, 158, 161, 159, 161, 161, 160, 158, 161, 169, 153, 160, 158, 160, 156, 159, 167, 161, 158, 160, 163, 160, 154, 161, 165, 162, 158, 162, 151, 176, 158, 158, 159, 163, 164, 177, 159, 156, 161, 155, 163, 164, 159, 158, 157, 158, 163, 165, 162, 153, 157, 167, 161, 161, 157, 161, 160, 162, 161, 162, 162, 159, 160, 166, 166, 155, 163, 150, 161, 160, 165, 160, 160, 160, 163, 158, 158, 161, 166, 149, 167, 163, 161, 159, 157, 156, 159, 161, 152, 162, 153, 155, 157, 159, 159, 164, 166, 163, 163, 161, 173, 164, 157, 157, 160, 165, 157, 162, 155, 157, 162, 178, 155, 167, 162, 162, 159, 159, 158, 157, 165, 157, 168, 160, 166, 153, 160, 160, 158, 162, 155, 162, 158, 157, 148, 159, 160, 159, 160, 162, 163, 152, 163, 158, 158, 158, 161, 153, 163, 158, 163, 164, 164, 165, 167, 164, 163, 154, 161, 160, 160, 164, 155, 157, 160, 158, 158, 161, 158, 158, 173, 161, 159, 164, 158, 156, 161, 166, 157, 169, 167, 156, 154, 157, 171, 162, 155, 168, 161, 165, 162, 157, 165, 163, 155, 167, 161, 161, 157, 163, 162, 155, 160, 154, 148, 162, 158, 160, 155, 171, 156, 158, 161, 166, 160, 166, 164, 157, 158, 159, 168, 159, 158, 161, 159, 157, 158, 157, 164, 164, 167, 163, 161, 159, 166, 159, 172, 160, 160, 156, 168, 162, 161, 169, 165, 155, 156, 159, 159, 160, 172, 155, 153, 159, 168, 157, 163, 162, 161, 154, 159, 163, 158, 158, 156, 160, 160, 157, 160, 160, 159, 155, 163, 156, 158, 158, 159, 156, 162, 161, 159, 163, 161, 159, 163, 160, 161, 156, 157, 159, 164, 162, 141, 162, 156, 161, 156, 161, 164, 161, 158, 165, 162, 160, 163, 163, 163, 162, 156, 161, 161, 154, 162, 154, 162, 156, 158, 164, 160, 167, 158, 171, 158, 161, 160, 160, 155, 160, 165, 174, 149, 167, 171, 153, 161, 149, 164, 163, 162, 158, 158, 148, 155, 154, 162, 151, 159, 163, 158, 153, 156, 173, 153, 160, 165, 157, 161, 163, 164, 164, 159, 161, 164, 159, 163, 157, 172, 144, 161, 155, 165, 161, 162, 159, 156, 163, 159, 170, 166, 154, 162, 160, 157, 148, 159, 161, 158, 158, 161, 166, 156, 162, 159, 160, 157, 160, 159, 159, 157, 161, 158, 158, 155, 159, 155, 153, 161, 161, 158, 166, 163, 155, 162, 164, 158, 159, 167, 152, 161, 156, 162, 161, 166, 166, 157, 166, 149, 157, 150, 166, 162, 163, 160, 154, 161, 159, 156, 158, 151, 168, 160, 162, 155, 162, 157, 163, 156, 152, 156, 162, 154, 142, 167, 155, 158, 163, 161, 159, 147, 160, 150, 158, 159, 152, 161, 154, 157, 163, 165, 163, 157, 155, 162, 156, 170, 161, 164, 151, 169, 155, 151, 160, 161, 149, 167, 169, 151, 152, 169, 166, 151, 146, 165, 153, 155, 164, 157, 162, 160, 145, 160, 159, 160, 164, 158, 162, 160, 160, 161, 160, 155, 155, 155, 158, 154, 160, 159, 160, 157, 158, 162, 161, 154, 155, 153, 152, 161, 164, 154, 159, 163, 168, 163, 158, 174, 160, 156, 166, 156, 161, 155, 158, 165, 158, 157, 160, 157, 161, 154, 163, 159, 151, 153, 166, 160, 157, 155, 152, 149, 162, 164, 162, 167, 158, 163, 160, 166, 159, 162, 166, 156, 157, 161, 161, 172, 167, 175, 161, 149, 157, 172, 160, 153, 167, 159, 155, 162, 166, 157, 155, 163, 155, 154, 153, 161, 147, 168, 153, 153, 160, 154, 167, 167, 158, 144, 160, 155, 153, 165, 158, 163, 156, 171, 148, 154, 158, 154, 162, 167, 170, 158, 162, 157, 151, 170, 160, 161, 157, 156, 147, 161, 154, 174, 162, 167, 160, 159, 158, 152, 164, 159, 152, 166, 150, 156, 156, 171, 153, 152, 155, 157, 153, 150, 160, 155, 176, 154, 152, 156, 159, 154, 169, 164, 163, 164, 159, 161, 153, 167, 158, 162, 161, 161, 161, 165, 155, 157, 162, 163, 153, 160, 158, 169, 162, 171, 165, 156, 158, 158, 158, 166, 157, 158, 155, 168, 157, 162, 158, 150, 172, 156, 163, 169, 153, 161, 160, 166, 154, 159, 165, 163, 159, 161, 167, 175, 154, 162, 155, 159, 162, 165, 156, 153, 157, 162, 151, 163, 168, 157, 151, 155, 155, 164, 158, 153, 163, 162, 167, 157, 148, 163, 156, 164, 160, 158, 163, 155, 156, 155, 163, 158, 150, 163, 150, 154, 147, 155, 153, 159, 163, 154, 150, 158, 154, 155, 162, 167, 164, 150, 158, 152, 165, 153, 166, 156, 160, 144, 158, 163, 151, 161, 163, 158, 156, 152, 156, 167, 157, 154, 152, 165, 154, 166, 149, 151, 151, 167, 151, 158, 164, 159, 165, 166, 163, 163, 159, 162, 163, 155, 155, 153, 166, 160, 159, 169, 159, 161, 155, 160, 160, 170, 171, 172, 160, 157, 166, 158, 170, 153, 156, 158, 154, 163, 165, 160, 145, 165, 162, 162, 167, 165, 158, 154, 159, 162, 156, 161, 145, 166, 164, 165, 159, 160, 167, 151, 150, 156, 151, 153, 151, 165, 152, 159, 161, 165, 148, 160, 158, 159, 163, 165, 166, 164, 158, 156, 163, 162, 159, 154, 159, 156, 153, 154, 157, 155, 167, 165, 152, 159, 169, 159, 169, 164, 153, 152, 150, 169, 155, 172, 159, 151, 163, 158, 157, 155, 155, 159, 160, 158, 156, 153, 148, 155, 165, 151, 161, 156, 156, 164, 161, 159, 167, 149, 163, 159, 157, 176, 161, 161, 156, 160, 161, 149, 157, 163, 163, 157, 161, 164, 158, 155, 154, 153, 152, 154, 158, 160, 157, 162, 157, 160, 163, 148, 165, 165, 164, 160, 164, 166, 147, 158, 159, 156, 162, 162, 178, 167, 158, 152, 171, 168, 167, 154, 165, 162, 163, 160, 162, 165, 161, 162, 158, 159, 152, 166, 163, 159, 165, 160, 159, 158, 175, 147, 163, 161, 149, 163, 171, 160, 161, 160, 180, 162, 166, 163, 159, 159, 155, 161, 158, 163, 157, 160, 155, 164, 163, 158, 164, 160, 160, 161, 169, 155, 168, 155, 154, 158, 163, 157, 167, 161, 164, 146, 156, 164, 165, 156, 161, 154, 154, 170, 156, 164, 165, 157, 159, 165, 158, 155, 152, 170, 161, 161, 163, 162, 154, 157, 161, 151, 158, 153, 164, 152, 161, 153, 157, 154, 160, 162, 162, 154, 158, 161, 157, 155, 155, 159, 151, 155, 154, 158, 161, 171, 156, 162, 160, 161, 153, 152, 156, 158, 156, 159, 158, 166, 163, 162, 179, 157, 160, 163, 151, 157, 156, 160, 159, 153, 166, 151, 163, 145, 161, 161, 157, 158, 175, 161, 155, 161, 156, 163, 164, 164, 156, 156, 160, 148, 157, 157, 160, 160, 158, 172, 165, 166, 154, 167, 158, 160, 168, 171, 159, 161, 157, 168, 158, 162, 155, 156, 163, 161, 159, 156, 156, 157, 155, 158, 166, 159, 159, 165, 170, 158, 163, 159, 164, 154, 161, 155, 154, 154, 164, 155, 158, 166, 183, 154, 162, 161, 160, 159, 160, 161, 151, 165, 161, 163, 151, 153, 166, 165, 157, 167, 162, 166, 156, 154, 152, 156, 152, 147, 154, 158, 160, 151, 158, 162, 149, 160, 156, 158, 165, 168, 155, 159, 161, 161, 151, 163, 159, 158, 157, 152, 167, 155, 153, 159, 166, 165, 156, 153, 155, 174, 152, 160, 161, 163, 159, 157, 155, 144, 179, 163, 157, 153, 163, 162, 158, 163, 156, 169, 162, 157, 149, 159, 159, 167, 164, 165, 167, 163, 147, 159, 167, 163, 145, 160, 148, 163, 158, 161, 163, 157, 152, 160, 163, 151, 156, 162, 163, 157, 157, 165, 159, 146, 163, 153, 159, 155, 162, 165, 170, 173, 159, 173, 164, 159, 163, 152, 155, 161, 162, 165, 178, 153, 153, 158, 165, 160, 160, 165, 162, 163, 156, 165, 163, 154, 149, 142, 170, 151, 154, 162, 167, 156, 161, 162, 156, 147, 158, 157, 160, 159, 153, 159, 163, 163, 154, 164, 160, 165, 161, 158, 147, 156, 154, 165, 171, 153, 148, 156, 178, 164, 159, 158, 150, 158, 148, 156, 167, 174, 163, 152, 160, 161, 166, 159, 160, 157, 156, 157, 168, 160, 162, 160, 155, 156, 158, 152, 160, 157, 163, 150, 160, 164, 164, 159, 165, 169, 158, 155, 164, 170, 164, 162, 160, 159, 160, 160, 161, 156, 155, 164, 162, 160, 161, 159, 160, 158, 157, 164, 143, 162, 162, 166, 164, 149, 159, 161, 141, 152, 172, 163, 170, 162, 160, 168, 156, 147, 172, 156, 153, 163, 154, 167, 151, 163, 157, 155, 155, 157, 155, 162, 155, 161, 169, 162, 151, 165, 159, 159, 157, 162, 158, 167, 175, 165, 154, 151, 161, 165, 162, 157, 169, 161, 173, 163, 163, 159, 154, 158, 160, 160, 152, 160, 161, 159, 157, 158, 153, 163, 148, 159, 164, 159, 154, 145, 156, 161, 153, 170, 159, 165, 161, 166, 156, 165, 154, 177, 167, 173, 157, 166, 163, 157, 166, 166, 162, 161, 158, 163, 165, 162, 163, 162, 157, 155, 156, 161, 157, 164, 159, 163, 160, 164, 163, 161, 159, 161, 155, 167, 159, 162, 165, 160, 147, 162, 157, 163, 158, 161, 161, 161, 157, 158, 158, 134, 158, 154, 152, 157, 166, 162, 159, 159, 157, 168, 158, 160, 158, 158, 161, 158, 160, 158, 159, 155, 169, 162, 161, 157, 157, 159, 164, 158, 164, 164, 152, 160, 155, 161, 159, 159, 152, 163, 161, 157, 156, 161, 161, 150, 162, 155, 160, 165, 158, 153, 162, 164, 152, 163, 165, 162, 165, 155, 143, 160, 168, 165, 156, 163, 158, 163, 164, 157, 154, 153, 160, 160, 157, 203, 161, 157, 160, 156, 155, 155, 165, 160, 160, 163, 158, 150, 160, 166, 153, 155, 159, 162, 158, 162, 161, 159, 166, 156, 152, 169, 167, 161, 159, 194, 164, 155, 162, 164, 161, 159, 158, 167, 162, 167, 155, 164, 164, 160, 163, 162, 169, 168, 160, 166, 158, 161, 162, 162, 156, 160, 168, 158, 158, 176, 165, 153, 162, 168, 152, 161, 163, 164, 163, 164, 159, 155, 164, 159, 160, 158, 164, 148, 156, 167, 159, 162, 163, 161, 151, 153, 167, 159, 165, 167, 158, 160, 159, 164, 156, 158, 159, 159, 161, 166, 164, 158, 163, 159, 176, 161, 157, 161, 159, 155, 163, 158, 158, 152, 158, 158, 160, 161, 162, 171, 163, 157, 161, 163, 156, 141, 162, 161, 155, 161, 159, 160, 162, 156, 154, 158, 170, 161, 164, 166, 157, 164, 151, 157, 159, 168, 156, 158, 157, 159, 158, 163, 160, 158, 158, 159, 157, 158, 159, 156, 152, 162, 155, 162, 166, 184, 155, 161, 168, 157, 164, 168, 166, 158, 169, 158, 160, 164, 166, 158, 165, 163, 161, 160, 156, 165, 150, 152, 167, 162, 162, 161, 162, 159, 163, 156, 157, 161, 166, 160, 162, 166, 161, 158, 168, 153, 160, 157, 155, 159, 160, 159, 162, 149, 160, 158, 161, 158, 155, 160, 157, 162, 157, 158, 163, 161, 161, 162, 161, 171, 177, 150, 162, 161, 160, 162, 159, 156, 159, 158, 154, 168, 158, 166, 158, 153, 153, 147, 163, 166, 150, 159, 156, 160, 149, 175, 164, 159, 170, 154, 162, 148, 162, 163, 155, 161, 158, 162, 166, 161, 158, 157, 169, 161, 159, 153, 161, 156, 160, 165, 157, 160, 151, 163, 156, 152, 160, 157, 166, 149, 162, 161, 152, 161, 167, 158, 168, 154, 149, 153, 167, 157, 153, 161, 157, 157, 162, 154, 153, 152, 162, 156, 152, 167, 162, 158, 163, 161, 158, 147, 160, 161, 164, 160, 164, 163, 157, 160, 168, 162, 163, 162, 156, 157, 149, 155, 163, 158, 162, 162, 162, 157, 157, 160, 153, 157, 158, 158, 165, 156, 161, 161, 156, 157, 164, 151, 158, 163, 159, 161, 166, 161, 157, 155, 160, 124, 156, 174, 159, 166, 156, 159, 152, 164, 149, 153, 159, 155, 163, 161, 149, 156, 156, 162, 177, 150, 177, 157, 152, 158, 152, 148, 159, 161, 159, 154, 157, 165, 161, 160, 161, 167, 153, 168, 143, 160, 165, 164, 158, 164, 173, 169, 162, 158, 151, 151, 159, 176, 172, 140, 163, 149, 166, 153, 153, 171, 170, 159, 159, 168, 167, 159, 152, 159, 158, 161, 166, 160, 153, 165, 161, 164, 154, 166, 156, 167, 167, 161, 154, 158, 162, 168, 156, 162, 174, 161, 167, 167, 159, 154, 158, 171, 157, 165, 161, 159, 170, 156, 161, 156, 152, 163, 161, 150, 166, 161, 160, 168, 165, 151, 153, 152, 143, 161, 153, 161, 159, 163, 155, 156, 171, 148, 148, 166, 151, 158, 162, 153, 150, 169, 163, 157, 157, 153, 166, 162, 153, 162, 167, 151, 158, 164, 168, 155, 155, 159, 162, 164, 149, 160, 154, 165, 163, 162, 153, 156, 158, 159, 165, 174, 164, 176, 157, 146, 167, 161, 161, 152, 162, 166, 161, 156, 164, 167, 155, 157, 155, 170, 169, 163, 162, 159, 150, 160, 166, 158, 179, 154, 171, 162, 162, 166, 153, 163, 163, 164, 158, 143, 148, 159, 169, 164, 169, 184, 160, 152, 165, 161, 178, 163, 156, 151, 152, 165, 151, 152, 177, 163, 152, 169, 158, 175, 154, 158, 153, 160, 158, 155, 153, 151, 160, 160, 158, 149, 165, 168, 158, 166, 159, 162, 155, 156, 155, 161, 171, 157, 154, 161, 158, 155, 157, 152, 157, 162, 150, 149, 157, 164, 166, 163, 157, 148, 156, 159, 158, 149, 155, 153, 150, 154, 163, 163, 163, 161, 168, 165, 150, 153, 158, 164, 161, 162, 148, 151, 163, 178, 166, 150, 163, 165, 160, 156, 164, 160, 157, 162, 158, 167, 170, 165, 180, 164, 158, 155, 153, 168, 154, 168, 163, 143, 152, 147, 155, 165, 153, 164, 156, 158, 152, 169, 161, 162, 156, 160, 170, 162, 155, 166, 150, 156, 161, 154, 166, 160, 168, 161, 167, 157, 163, 147, 157, 161, 159, 159, 160, 160, 159, 160, 158, 163, 152, 133, 169, 160, 143, 148, 154, 182, 146, 176, 170, 167, 155, 171, 167, 149, 160, 159, 157, 153, 159, 153, 143, 160, 157, 168, 160, 158, 172, 155, 163, 158, 170, 156, 149, 151, 165, 161, 157, 160, 162, 154, 167, 166, 162, 153, 162, 161, 157, 154, 151, 164, 156, 153, 164, 173, 168, 164, 177, 151, 162, 158, 172, 158, 166, 158, 186, 165, 154, 155, 173, 171, 150, 164, 162, 158, 155, 160, 156, 171, 147, 164, 159, 158, 165, 159, 150, 153, 165, 161, 153, 159, 174, 154, 168, 163, 152, 172, 167, 155, 160, 157, 156, 154, 147, 152, 170, 154, 162, 158, 169, 172, 172, 167, 176, 161, 165, 161, 155, 166, 168, 161, 165, 161, 159, 145, 185, 160, 157, 163, 163, 149, 179, 156, 164, 136, 162, 164, 160, 160, 167, 168, 159, 173, 160, 164, 157, 150, 157, 152, 153, 157, 164, 159, 154, 156, 170, 145, 154, 163, 173, 154, 171, 162, 170, 149, 168, 153, 161, 154, 162, 164, 141, 171, 157, 163, 163, 160, 155, 171, 156, 161, 165, 163, 157, 153, 153, 162, 162, 162, 158, 165, 157, 167, 154, 151, 155, 159, 156, 149, 167, 167, 164, 158, 158, 157, 163, 161, 158, 167, 166, 163, 167, 159, 156, 156, 151, 156, 155, 133, 159, 150, 164, 161, 163, 162, 157, 152, 161, 166, 163, 154, 160, 151, 158, 159, 174, 158, 168, 162, 159, 159, 160, 182, 170, 156, 160, 160, 164, 151, 166, 176, 163, 150, 161, 148, 166, 153, 161, 148, 156, 155, 165, 158, 160, 153, 164, 162, 174, 164, 168, 175, 161, 155, 152, 169, 157, 152, 165, 156, 161, 160, 165, 152, 160, 170, 158, 164, 167, 165, 160, 155, 156, 155, 157, 167, 154, 161, 160, 158, 152, 159, 162, 159, 153, 154, 157, 150, 175, 161, 159, 162, 162, 161, 158, 148, 160, 166, 157, 165, 171, 158, 161, 167, 154, 156, 156, 159, 158, 161, 168, 168, 149, 162, 165, 155, 154, 158, 171, 159, 159, 149, 152, 157, 148, 160, 157, 157, 154, 190, 159, 155, 173, 150, 161, 165, 166, 159, 154, 151, 167, 153, 151, 162, 168, 162, 157, 164, 165, 161, 155, 159, 152, 159, 155, 157, 158, 146, 149, 156, 152, 161, 162, 163, 156, 161, 144, 154, 151, 157, 162, 156, 153, 173, 164, 155, 161, 151, 158, 151, 166, 157, 151, 157, 152, 156, 172, 163, 160, 149, 144, 149, 152, 149, 164, 151, 151, 161, 163, 156, 155, 156, 154, 158, 153, 173, 163, 157, 164, 170, 163, 157, 164, 163, 166, 159, 156, 159, 163, 159, 165, 162, 159, 166, 151, 166, 159, 152, 155, 161, 164, 144, 157, 158, 158, 151, 157, 159, 157, 151, 159, 160, 156, 153, 158, 149, 162, 165, 157, 162, 167, 158, 157, 163, 166, 161, 172, 161, 166, 163, 152, 161, 167, 167, 168, 159, 157, 170, 167, 147, 161, 162, 164, 156, 166, 156, 156, 144, 157, 154, 148, 156, 157, 157, 155, 146, 168, 159, 156, 154, 163, 149, 155, 164, 156, 150, 156, 158, 166, 167, 154, 156, 164, 167, 154, 150, 163, 160, 154, 160, 169, 158, 157, 168, 163, 159, 169, 153, 166, 169, 171, 151, 152, 175, 158, 167, 166, 158, 171, 156, 164, 162, 155, 154, 149, 154, 165, 168, 153, 172, 163, 164, 160, 164, 187, 159, 165, 162, 157, 172, 158, 149, 159, 155, 160, 170, 158, 165, 142, 177, 165, 158, 163, 155, 155, 166, 164, 164, 162, 153, 159, 155, 160, 153, 160, 159, 150, 159, 156, 151, 164, 155, 158, 178, 149, 152, 158, 147, 159, 159, 160, 149, 155, 158, 147, 170, 158, 163, 157, 163, 164, 161, 168, 157, 150, 160, 157, 168, 165, 134, 150, 167, 165, 167, 156, 161, 161, 157, 172, 171, 157, 169, 157, 159, 154, 154, 166, 161, 145, 152, 153, 151, 157, 152, 150, 158, 162, 160, 151, 173, 155, 169, 156, 157, 153, 162, 162, 161, 155, 164, 161, 149, 154, 162, 162, 152, 157, 161, 159, 161, 187, 162, 156, 159, 158, 160, 165, 148, 151, 158, 159, 170, 167, 159, 153, 159, 153, 173, 163, 154, 147, 173, 165, 162, 160, 159, 169, 155, 164, 172, 161, 161, 159, 162, 152, 158, 162, 166, 155, 161, 160, 149, 158, 158, 166, 164, 160, 142, 183, 156, 160, 173, 143, 168, 152, 160, 163, 157, 165, 165, 166, 149, 169, 165, 147, 162, 156, 165, 161, 172, 165, 154, 149, 174, 160, 167, 153, 162, 152, 168, 155, 170, 159, 156, 170, 166, 160, 150, 160, 158, 164, 179, 175, 169, 161, 157, 160, 164, 158, 161, 149, 153, 140, 145, 171, 160, 157, 167, 161, 155, 147, 161, 160, 156, 155, 159, 160, 144, 158, 166, 154, 168, 157, 164, 163, 154, 149, 158, 158, 155, 171, 157, 165, 169, 165, 154, 162, 149, 156, 153, 153, 164, 157, 155, 148, 152, 155, 162, 154, 158, 168, 161, 156, 171, 144, 166, 156, 156, 162, 169, 165, 156, 154, 161, 165, 168, 151, 163, 159, 153, 147, 163, 169, 158, 157, 157, 162, 159, 152, 158, 156, 160, 156, 146, 161, 161, 165, 161, 156, 176, 158, 159, 152, 154, 167, 158, 156, 157, 159, 166, 149, 167, 157, 154, 163, 152, 163, 172, 157, 156, 151, 166, 165, 154, 154, 147, 157, 167, 167, 163, 164, 160, 151, 169, 160, 167, 150, 160, 148, 156, 164, 173, 158, 159, 172, 157, 175, 141, 161, 167, 162, 160, 158, 161, 161, 165, 154, 162, 166, 142, 155, 164, 147, 167, 156, 154, 158, 160, 145, 158, 167, 156, 164, 155, 162, 155, 162, 176, 158, 151, 149, 175, 155, 157, 154, 158, 157, 175, 157, 167, 167, 154, 159, 154, 148, 163, 146, 149, 166, 162, 165, 154, 157, 168, 169, 170, 161, 151, 166, 154, 162, 173, 157, 161, 156, 165, 157, 150, 161, 165, 162, 159, 156, 160, 154, 153, 146, 157, 151, 163, 153, 172, 163, 162, 156, 164, 157, 168, 149, 168, 161, 164, 166, 167, 144, 150, 158, 154, 163, 163, 153, 169, 170, 158, 172, 158, 161, 158, 145, 160, 171, 161, 166, 159, 160, 159, 163, 159, 163, 159, 165, 159, 151, 149, 149, 165, 155, 158, 160, 173, 163, 162, 174, 154, 152, 184, 164, 151, 155, 162, 158, 158, 165, 167, 175, 155, 157, 167, 155, 166, 155, 166, 164, 162, 160, 159, 162, 153, 161, 152, 163, 144, 169, 150, 164, 161, 160, 151, 162, 158, 163, 158, 161, 160, 167, 152, 157, 154, 156, 157, 152, 148, 152, 164, 146, 162, 154, 150, 151, 164, 154, 172, 170, 155, 154, 161, 167, 157, 159, 165, 167, 154, 164, 178, 165, 153, 163, 154, 178, 158, 170, 151, 152, 153, 150, 161, 165, 159, 162, 142, 168, 171, 164, 158, 161, 164, 161, 162, 154, 165, 159, 161, 168, 159, 156, 154, 158, 168, 161, 154, 164, 155, 162, 168, 155, 168, 170, 142, 144, 154, 164, 150, 165, 155, 169, 168, 152, 133, 160, 156, 153, 163, 158, 157, 142, 172, 162, 167, 163, 163, 167, 171, 162, 167, 161, 142, 159, 166, 159, 160, 156, 163, 167, 165, 157, 164, 159, 168, 169, 154, 158, 162, 162, 164, 163, 163, 161, 155, 153, 155, 160, 154, 157, 163, 156, 162, 167, 162, 161, 160, 159, 164, 161, 162, 165, 151, 158, 162, 155, 162, 159, 160, 166, 162, 161, 157, 159, 154, 161, 161, 160, 164, 169, 162, 168, 165, 171, 159, 165, 167, 162, 160, 160, 149, 156, 157, 156, 170, 160, 160, 167, 162, 159, 166, 160, 174, 167, 162, 162, 161, 162, 168, 159, 162, 158, 162, 160, 163, 162, 166, 160, 161, 164, 162, 155, 159, 158, 159, 157, 159, 160, 158, 154, 167, 163, 150, 158, 166, 169, 159, 156, 167, 163, 162, 162, 158, 166, 160, 163, 161, 158, 159, 161, 156, 162, 164, 162, 163, 160, 157, 164, 160, 154, 165, 164, 154, 161, 161, 160, 162, 165, 158, 164, 156, 159, 159, 158, 176, 159, 160, 164, 160, 161, 159, 157, 165, 159, 161, 159, 165, 162, 158, 159, 158, 163, 161, 152, 159, 169, 162, 156, 157, 166, 170, 161, 161, 159, 158, 155, 162, 160, 167, 157, 158, 169, 164, 167, 156, 161, 154, 156, 163, 160, 158, 162, 159, 157, 157, 162, 169, 159, 158, 165, 165, 167, 170, 167, 158, 162, 164, 164, 160, 158, 161, 157, 159, 165, 162, 157, 157, 156, 156, 160, 159, 152, 162, 158, 157, 159, 160, 171, 172, 163, 168, 161, 164, 165, 159, 160, 159, 165, 159, 163, 168, 159, 159, 151, 168, 160, 163, 165, 159, 166, 166, 155, 161, 164, 158, 161, 161, 166, 161, 163, 161, 166, 161, 163, 163, 167, 162, 160, 154, 165, 161, 156, 160, 158, 167, 166, 160, 164, 161, 160, 161, 165, 164, 158, 161, 162, 150, 155, 160, 156, 157, 151, 158, 163, 154, 164, 162, 157, 159, 160, 160, 164, 157, 158, 164, 160, 162, 156, 161, 156, 153, 155, 154, 159, 160, 158, 164, 169, 155, 165, 164, 162, 155, 159, 165, 162, 154, 161, 163, 157, 168, 157, 148, 165, 157, 163, 162, 165, 164, 164, 153, 160, 155, 158, 157, 161, 162, 161, 163, 158, 160, 160, 167, 154, 159, 156, 155, 161, 164, 169, 152, 168, 156, 153, 163, 168, 155, 159, 157, 164, 161, 155, 165, 162, 159, 162, 164, 162, 155, 160, 159, 162, 154, 163, 162, 154, 163, 166, 161, 159, 153, 169, 161, 159, 164, 164, 167, 151, 162, 165, 162, 161, 167, 168, 156, 157, 166, 160, 155, 158, 164, 157, 162, 165, 155, 162, 163, 158, 159, 161, 162, 170, 164, 164, 166, 157, 163, 166, 163, 166, 164, 164, 153, 159, 160, 157, 156, 151, 164, 158, 168, 164, 166, 159, 161, 164, 161, 158, 156, 156, 159, 164, 159, 157, 159, 165, 164, 158, 163, 159, 156, 161, 160, 164, 163, 159, 164, 165, 153, 165, 163, 160, 159, 166, 162, 164, 160, 165, 155, 157, 158, 163, 156, 157, 158, 159, 156, 165, 162, 160, 161, 162, 159, 156, 163, 166, 158, 160, 150, 164, 159, 158, 157, 159, 162, 164, 162, 161, 152, 153, 166, 153, 158, 164, 163, 163, 164, 152, 159, 154, 160, 163, 153, 149, 159, 161, 150, 152, 152, 156, 158, 154, 157, 160, 154, 158, 149, 167, 155, 164, 163, 157, 172, 156, 169, 192, 157, 153, 165, 149, 157, 154, 157, 159, 160, 163, 155, 166, 158, 172, 157, 162, 152, 149, 151, 152, 160, 156, 155, 157, 157, 155, 160, 159, 166, 165, 159, 162, 159, 152, 156, 150, 153, 163, 157, 158, 166, 158, 165, 168, 159, 153, 163, 162, 163, 152, 152, 151, 166, 162, 159, 155, 169, 155, 158, 158, 163, 161, 157, 165, 167, 157, 161, 153, 171, 164, 162, 161, 175, 168, 155, 156, 162, 159, 159, 154, 163, 164, 157, 160, 156, 156, 139, 154, 176, 149, 168, 158, 160, 158, 164, 160, 163, 154, 154, 163, 154, 146, 162, 155, 161, 153, 164, 158, 157, 158, 149, 144, 168, 162, 161, 155, 153, 156, 166, 157, 158, 153, 166, 157, 160, 167, 175, 158, 176, 165, 164, 161, 158, 163, 160, 164, 146, 160, 148, 170, 161, 160, 149, 165, 155, 155, 158, 165, 148, 154, 163, 160, 158, 160, 153, 163, 158, 171, 157, 160, 157, 158, 155, 170, 161, 163, 157, 156, 180, 163, 157, 154, 158, 163, 160, 174, 156, 165, 156, 168, 166, 157, 170, 160, 154, 167, 154, 157, 164, 167, 163, 172, 153, 154, 151, 166, 153, 173, 155, 165, 153, 162, 156, 160, 168, 151, 153, 161, 148, 154, 147, 162, 167, 164, 156, 173, 159, 155, 159, 152, 160, 149, 159, 154, 163, 156, 161, 155, 161, 155, 135, 154, 164, 158, 149, 166, 160, 160, 143, 157, 164, 159, 167, 160, 160, 159, 155, 173, 163, 169, 157, 156, 158, 149, 126, 153, 164, 158, 163, 160, 163, 161, 148, 160, 161, 162, 155, 157, 164, 151, 152, 158, 149, 159, 162, 157, 156, 163, 150, 150, 151, 158, 165, 161, 157, 164, 156, 160, 152, 161, 156, 159, 164, 170, 159, 160, 158, 165, 162, 146, 157, 158, 158, 160, 171, 157, 160, 161, 150, 167, 159, 154, 161, 159, 158, 160, 170, 155, 161, 157, 165, 164, 140, 146, 159, 161, 174, 159, 156, 161, 157, 165, 160, 154, 167, 159, 150, 163, 176, 146, 151, 152, 163, 164, 166, 156, 160, 156, 158, 165, 155, 159, 165, 173, 152, 149, 149, 154, 158, 153, 152, 172, 172, 168, 165, 155, 159, 156, 150, 159, 156, 168, 163, 156, 153, 156, 159, 170, 161, 161, 156, 166, 169, 156, 166, 165, 157, 159, 150, 145, 162, 160, 155, 155, 158, 158, 162, 155, 162, 161, 162, 152, 168, 162, 152, 153, 163, 160, 158, 166, 151, 152, 170, 163, 155, 155, 156, 170, 160, 155, 165, 164, 160, 162, 153, 160, 153, 156, 167, 160, 160, 159, 165, 161, 173, 161, 157, 163, 171, 154, 154, 163, 178, 170, 160, 156, 158, 164, 162, 163, 162, 159, 151, 153, 153, 160, 160, 159, 155, 160, 153, 165, 158, 157, 150, 156, 164, 156, 157, 160, 158, 159, 151, 148, 161, 156, 163, 164, 157, 163, 153, 157, 156, 165, 164, 164, 162, 162, 165, 165, 163, 163, 167, 160, 156, 160, 158, 158, 161, 165, 162, 170, 158, 156, 161, 161, 170, 161, 166, 159, 160, 156, 150, 161, 164, 155, 160, 155, 165, 167, 164, 156, 171, 165, 157, 157, 160, 164, 162, 162, 153, 151, 154, 160, 157, 155, 159, 155, 162, 152, 158, 161, 164, 161, 160, 160, 162, 165, 156, 160, 161, 160, 160, 152, 161, 162, 162, 162, 153, 154, 163, 169, 164, 168, 160, 159, 156, 158, 157, 164, 158, 161, 157, 160, 154, 155, 164, 160, 161, 158, 160, 163, 158, 159, 162, 164, 159, 167, 166, 163, 167, 162, 165, 158, 156, 157, 156, 163, 158, 160, 159, 157, 163, 156, 161, 168, 159, 160, 160, 152, 166, 155, 159, 163, 155, 158, 162, 163, 159, 170, 157, 154, 156, 159, 163, 163, 155, 158, 161, 161, 162, 161, 161, 148, 161, 162, 161, 167, 161, 161, 168, 163, 159, 156, 164, 163, 158, 158, 161, 158, 121, 157, 159, 167, 117, 162, 162, 158, 157, 161, 150, 163, 159, 149, 161, 158, 161, 158, 157, 161, 163, 157, 169, 158, 159, 157, 164, 162, 161, 160, 159, 168, 159, 162, 154, 156, 160, 161, 159, 163, 162, 166, 156, 159, 163, 159, 161, 156, 163, 154, 164, 163, 159, 164, 178, 165, 155, 155, 172, 167, 157, 160, 168, 144, 164, 156, 152, 163, 160, 155, 164, 164, 159, 164, 158, 158, 163, 167, 145, 161, 165, 161, 157, 159, 162, 162, 171, 160, 163, 163, 165, 161, 156, 163, 157, 181, 161, 160, 160, 160, 159, 161, 154, 157, 164, 160, 158, 180, 162, 158, 161, 165, 158, 177, 152, 162, 159, 168, 151, 163, 157, 153, 157, 160, 160, 160, 164, 161, 159, 162, 154, 155, 161, 166, 161, 163, 158, 162, 166, 165, 159, 157, 155, 155, 161, 159, 152, 163, 157, 163, 160, 139, 159, 159, 166, 157, 159, 155, 164, 156, 163, 163, 161, 163, 159, 156, 160, 163, 158, 157, 161, 158, 152, 155, 165, 155, 157, 158, 167, 153, 162, 157, 165, 155, 158, 162, 163, 161, 159, 159, 157, 157, 161, 160, 169, 158, 155, 159, 164, 163, 156, 158, 156, 163, 156, 154, 160, 169, 167, 164, 156, 163, 160, 160, 168, 159, 162, 159, 162, 158, 163, 166, 168, 164, 159, 169, 168, 160, 161, 163, 158, 163, 160, 161, 157, 160, 160, 161, 159, 153, 171, 160, 161, 161, 140, 165, 181, 160, 162, 166, 154, 155, 166, 152, 155, 159, 161, 158, 163, 168, 157, 153, 151, 162, 160, 168, 162, 162, 155, 159, 155, 155, 161, 155, 162, 166, 147, 157, 165, 165, 163, 159, 158, 162, 158, 165, 158, 164, 156, 162, 162, 154, 166, 159, 163, 155, 157, 163, 161, 158, 163, 160, 160, 160, 163, 159, 166, 156, 160, 157, 153, 169, 168, 162, 160, 165, 162, 157, 162, 165, 166, 161, 160, 163, 164, 164, 162, 158, 164, 160, 163, 156, 162, 164, 155, 163, 165, 152, 166, 167, 160, 160, 171, 167, 158, 162, 161, 157, 160, 165, 182, 168, 159, 157, 165, 166, 169, 162, 152, 167, 171, 161, 159, 162, 154, 161, 163, 164, 160, 163, 152, 161, 168, 154, 174, 154, 162, 158, 160, 152, 157, 169, 155, 163, 157, 163, 159, 160, 154, 164, 167, 155, 153, 160, 157, 158, 165, 168, 153, 151, 145, 159, 156, 161, 165, 159, 156, 165, 162, 138, 154, 150, 150, 157, 152, 162, 160, 158, 160, 178, 154, 158, 168, 166, 153, 155, 161, 155, 154, 152, 152, 162, 160, 163, 152, 161, 161, 157, 164, 153, 147, 157, 163, 159, 157, 160, 152, 157, 164, 161, 163, 158, 160, 164, 162, 162, 158, 161, 153, 151, 158, 156, 158, 157, 163, 154, 159, 158, 164, 161, 158, 163, 158, 158, 162, 157, 162, 162, 164, 152, 159, 162, 159, 158, 147, 161, 163, 162, 160, 149, 154, 158, 155, 148, 164, 157, 160, 168, 158, 161, 144, 160, 165, 167, 158, 157, 152, 166, 161, 156, 163, 164, 167, 161, 180, 155, 170, 164, 149, 171, 165, 158, 163, 161, 159, 166, 151, 176, 169, 169, 164, 157, 163, 157, 161, 157, 156, 166, 155, 158, 165, 158, 163, 155, 157, 157, 161, 163, 159, 162, 153, 156, 157, 153, 164, 152, 160, 160, 163, 166, 152, 161, 161, 163, 149, 160, 161, 160, 158, 159, 159, 158, 156, 157, 154, 155, 157, 154, 163, 152, 153, 158, 163, 161, 155, 161, 160, 163, 161, 161, 154, 163, 147, 161, 159, 151, 158, 160, 161, 160, 163, 169, 161, 141, 184, 157, 164, 164, 169, 158, 167, 161, 171, 158, 158, 161, 160, 159, 161, 164, 160, 157, 161, 168, 157, 163, 164, 158, 168, 165, 158, 168, 161, 155, 158, 159, 161, 164, 159, 176, 163, 160, 163, 160, 156, 161, 165, 161, 161, 153, 166, 161, 166, 169, 156, 161, 156, 162, 159, 163, 155, 158, 161, 160, 162, 161, 159, 164, 159, 149, 160, 157, 162, 154, 162, 157, 164, 168, 157, 160, 163, 161, 158, 156, 163, 160, 156, 163, 161, 160, 146, 153, 157, 161, 140, 156, 155, 161, 153, 158, 166, 158, 161, 158, 155, 165, 164, 160, 166, 162, 172, 166, 154, 161, 164, 149, 166, 157, 149, 157, 146, 163, 143, 165, 160, 156, 156, 155, 167, 150, 156, 154, 166, 162, 165, 168, 160, 170, 161, 166, 158, 154, 153, 161, 146, 168, 168, 155, 158, 163, 154, 158, 160, 160, 164, 166, 155, 163, 161, 158, 151, 164, 170, 155, 157, 167, 161, 158, 159, 157, 156, 161, 160, 153, 156, 158, 167, 161, 161, 165, 162, 161, 160, 163, 153, 159, 159, 160, 157, 160, 165, 156, 165, 157, 159, 164, 177, 160, 164, 154, 159, 160, 159, 162, 151, 166, 154, 160, 153, 166, 155, 155, 166, 161, 166, 147, 156, 164, 152, 159, 148, 159, 163, 159, 167, 158, 160, 153, 156, 157, 157, 142, 157, 163, 158, 153, 161, 159, 172, 165, 165, 155, 170, 171, 163, 159, 153, 157, 153, 159, 154, 155, 161, 159, 152, 165, 164, 160, 157, 155, 156, 159, 163, 158, 155, 159, 163, 159, 160, 159, 166, 153, 156, 159, 153, 149, 162, 158, 159, 156, 156, 162, 151, 161, 151, 159, 158, 160, 167, 161, 151, 154, 162, 165, 163, 154, 163, 157, 165, 164, 164, 160, 167, 158, 163, 165, 164, 157, 157, 162, 163, 158, 157, 164, 156, 160, 160, 159, 168, 169, 162, 154, 162, 159, 155, 162, 169, 163, 159, 167, 163, 164, 147, 149, 158, 159, 158, 166, 154, 159, 154, 160, 155, 158, 158, 156, 152, 160, 164, 160, 163, 151, 170, 162, 154, 172, 161, 160, 157, 156, 159, 159, 160, 155, 157, 158, 162, 160, 161, 161, 160, 148, 155, 162, 158, 165, 154, 153, 157, 166, 157, 163, 161, 163, 156, 161, 158, 153, 161, 156, 161, 157, 154, 155, 162, 158, 159, 163, 159, 160, 156, 155, 165, 158, 157, 162, 162, 156, 150, 162, 163, 163, 159, 153, 164, 157, 162, 165, 154, 162, 153, 162, 157, 155, 160, 159, 161, 156, 162, 173, 164, 164, 163, 154, 155, 160, 160, 146, 162, 158, 163, 149, 158, 162, 159, 158, 160, 153, 159, 157, 162, 160, 167, 158, 163, 164, 156, 155, 160, 159, 160, 161, 157, 161, 159, 147, 159, 168, 167, 159, 158, 159, 160, 152, 165, 158, 158, 156, 163, 163, 157, 160, 165, 158, 153, 158, 165, 158, 159, 159, 162, 160, 159, 159, 160, 172, 154, 154, 164, 162, 164, 159, 161, 160, 158, 168, 162, 154, 153, 151, 160, 151, 156, 163, 157, 176, 154, 158, 154, 163, 163, 151, 159, 153, 160, 153, 154, 159, 155, 159, 159, 159, 161, 160, 158, 159, 158, 156, 157, 160, 151, 160, 155, 156, 172, 155, 163, 164, 153, 160, 155, 166, 160, 153, 155, 160, 160, 162, 168, 161, 162, 162, 166, 166, 154, 165, 154, 155, 164, 154, 161, 162, 154, 160, 168, 158, 159, 160, 159, 163, 161, 159, 157, 165, 157, 160, 156, 165, 159, 168, 159, 171, 162, 162, 159, 155, 161, 165, 169, 156, 155, 159, 170, 158, 161, 160, 159, 166, 143, 157, 151, 158, 168, 160, 158, 156, 164, 156, 156, 158, 163, 158, 154, 161, 146, 150, 154, 164, 159, 158, 164, 160, 151, 166, 157, 163, 175, 156, 162, 156, 160, 158, 156, 156, 154, 157, 163, 154, 158, 160, 162, 159, 165, 160, 158, 164, 163, 161, 159, 162, 162, 156, 152, 155, 160, 165, 156, 159, 162, 157, 162, 173, 158, 163, 161, 157, 165, 154, 160, 167, 156, 154, 157, 163, 162, 155, 162, 159, 161, 165, 159, 152, 161, 160, 167, 164, 165, 163, 163, 150, 164, 152, 160, 161, 162, 159, 153, 158, 164, 164, 164, 157, 163, 160, 158, 162, 164, 157, 163, 154, 165, 156, 159, 159, 153, 164, 161, 162, 156, 158, 155, 159, 146, 156, 162, 156, 173, 160, 157, 162, 156, 169, 164, 158, 160, 157, 165, 161, 166, 160, 161, 160, 155, 159, 160, 148, 160, 155, 164, 161, 155, 161, 165, 156, 160, 163, 150, 163, 159, 158, 154, 158, 159, 166, 155, 163, 158, 164, 164, 156, 164, 163, 162, 161, 163, 157, 157, 170, 157, 160, 155, 158, 159, 161, 155, 160, 154, 180, 154, 159, 183, 154, 164, 161, 163, 162, 158, 162, 158, 158, 159, 157, 160, 164, 158, 165, 162, 166, 163, 163, 162, 157, 161, 159, 161, 155, 156, 161, 158, 163, 165, 164, 164, 169, 159, 171, 161, 157, 158, 163, 157, 162, 161, 163, 158, 157, 159, 158, 151, 157, 164, 159, 163, 163, 157, 163, 160, 159, 164, 155, 163, 160, 163, 157, 159, 158, 150, 153, 157, 159, 161, 151, 162, 162, 155, 165, 159, 159, 159, 157, 160, 162, 163, 163, 160, 162, 161, 156, 161, 159, 156, 159, 158, 159, 158, 158, 150, 161, 158, 181, 163, 162, 154, 164, 161, 168, 161, 168, 160, 159, 156, 157, 159, 162, 161, 168, 203, 163, 159, 160, 164, 163, 158, 157, 164, 159, 153, 160, 161, 160, 157, 158, 159, 161, 158, 161, 161, 162, 153, 164, 159, 162, 157, 162, 152, 164, 159, 162, 160, 165, 162, 169, 148, 156, 160, 163, 156, 161, 163, 157, 162, 158, 161, 165, 158, 157, 181, 164, 159, 158, 166, 151, 162, 159, 169, 163, 161, 162, 159, 160, 163, 164, 164, 167, 153, 158, 156, 160, 168, 157, 161, 155, 160, 155, 158, 162, 160, 163, 166, 160, 156, 162, 164, 162, 161, 160, 159, 161, 149, 160, 161, 160, 159, 160, 159, 160, 158, 161, 162, 156, 159, 159, 162, 154, 165, 165, 159, 159, 145, 161, 167, 160, 160, 158, 159, 159, 151, 161, 157, 159, 156, 155, 161, 158, 160, 156, 163, 164, 163, 163, 158, 160, 150, 162, 157, 162, 156, 167, 160, 157, 161, 164, 155, 162, 162, 164, 160, 159, 158, 157, 158, 166, 166, 158, 162, 161, 153, 139, 158, 158, 159, 165, 159, 158, 160, 161, 150, 165, 161, 160, 163, 158, 156, 157, 162, 157, 155, 162, 163, 162, 157, 171, 154, 159, 162, 166, 165, 163, 158, 156, 157, 163, 163, 155, 160, 158, 160, 162, 161, 162, 157, 160, 158, 155, 161, 157, 158, 160, 164, 160, 159, 159, 162, 156, 151, 148, 153, 159, 154, 158, 164, 162, 157, 164, 148, 160, 164, 160, 158, 158, 162, 156, 169, 165, 159, 158, 157, 162, 160, 154, 155, 160, 165, 160, 160, 162, 159, 165, 148, 164, 155, 152, 158, 156, 161, 164, 167, 155, 159, 164, 160, 163, 164, 163, 163, 155, 164, 156, 161, 157, 160, 159, 158, 157, 167, 162, 156, 156, 163, 158, 162, 173, 158, 159, 162, 156, 165, 168, 149, 160, 158, 154, 163, 162, 164, 155, 159, 159, 157, 157, 164, 161, 162, 155, 159, 159, 164, 162, 159, 161, 157, 159, 166, 156, 158, 158, 162, 160, 158, 154, 160, 166, 161, 156, 159, 161, 160, 155, 151, 165, 155, 166, 163, 160, 161, 163, 158, 167, 156, 160, 161, 159, 158, 163, 154, 160, 164, 160, 159, 152, 158, 164, 160, 149, 157, 158, 163, 163, 162, 164, 161, 162, 154, 171, 184, 148, 156, 155, 161, 159, 148, 156, 158, 149, 158, 168, 160, 155, 160, 152, 169, 154, 157, 165, 159, 171, 158, 157, 161, 162, 159, 163, 159, 159, 158, 166, 163, 166, 152, 174, 158, 157, 166, 175, 152, 165, 158, 160, 156, 164, 166, 161, 148, 154, 154, 156, 156, 149, 158, 167, 160, 162, 154, 149, 165, 155, 158, 157, 153, 147, 155, 163, 157, 166, 162, 160, 153, 160, 175, 148, 162, 163, 156, 165, 160, 162, 155, 158, 159, 158, 154, 142, 165, 168, 170, 156, 176, 162, 155, 157, 153, 157, 156, 157, 158, 155, 159, 159, 156, 152, 179, 169, 158, 146, 163, 163, 153, 154, 155, 151, 159, 155, 170, 157, 163, 141, 160, 159, 158, 173, 155, 158, 161, 155, 159, 150, 154, 154, 161, 156, 161, 155, 162, 157, 169, 162, 158, 157, 158, 178, 160, 157, 170, 150, 153, 158, 158, 156, 160, 167, 190, 159, 152, 154, 155, 159, 152, 156, 162, 157, 161, 156, 152, 160, 159, 163, 165, 165, 156, 163, 162, 161, 159, 164, 164, 158, 160, 163, 151, 160, 165, 149, 162, 159, 163, 163, 166, 155, 148, 160, 164, 164, 165, 165, 162, 160, 159, 164, 180, 156, 155, 162, 159, 159, 172, 162, 161, 164, 161, 155, 163, 155, 163, 162, 173, 158, 161, 168, 151, 163, 161, 153, 157, 160, 168, 156, 149, 158, 150, 161, 155, 172, 183, 160, 159, 167, 157, 157, 157, 157, 168, 155, 179, 161, 164, 156, 166, 154, 146, 160, 159, 171, 160, 155, 157, 166, 152, 166, 158, 166, 162, 155, 156, 156, 156, 160, 155, 155, 154, 152, 166, 159, 158, 154, 155, 159, 166, 157, 157, 149, 166, 163, 161, 142, 166, 159, 156, 156, 158, 169, 154, 150, 166, 153, 155, 156, 173, 159, 160, 151, 146, 164, 159, 162, 156, 147, 151, 174, 162, 157, 174, 161, 158, 156, 154, 163, 149, 159, 163, 156, 161, 161, 150, 154, 162, 155, 157, 159, 160, 145, 164, 149, 162, 156, 158, 165, 149, 157, 166, 154, 156, 163, 151, 152, 154, 165, 165, 158, 157, 151, 149, 155, 159, 138, 165, 160, 157, 156, 164, 150, 160, 155, 157, 163, 170, 163, 161, 155, 153, 160, 164, 147, 165, 165, 164, 157, 150, 161, 166, 163, 152, 158, 153, 158, 154, 154, 168, 175, 151, 166, 167, 160, 155, 162, 161, 155, 154, 160, 159, 164, 169, 159, 161, 158, 156, 160, 158, 161, 154, 153, 155, 159, 153, 155, 139, 169, 151, 172, 154, 153, 157, 151, 161, 169, 166, 161, 170, 173, 162, 153, 159, 158, 150, 159, 162, 159, 167, 160, 148, 158, 160, 165, 153, 163, 157, 161, 168, 153, 168, 154, 158, 166, 157, 144, 160, 171, 159, 163, 165, 155, 146, 156, 158, 160, 155, 158, 155, 158, 142, 162, 162, 160, 162, 166, 163, 168, 158, 161, 161, 155, 161, 153, 161, 156, 164, 160, 166, 150, 165, 159, 149, 161, 161, 158, 169, 158, 163, 160, 161, 161, 156, 152, 163, 163, 163, 160, 169, 162, 160, 151, 161, 154, 163, 158, 160, 158, 162, 182, 154, 153, 167, 170, 189, 159, 151, 163, 157, 161, 164, 161, 165, 153, 164, 171, 158, 159, 158, 168, 159, 162, 166, 160, 161, 159, 157, 157, 158, 165, 168, 158, 155, 162, 155, 158, 171, 156, 161, 156, 160, 162, 157, 162, 158, 170, 158, 156, 159, 158, 154, 154, 161, 160, 154, 162, 164, 158, 156, 165, 161, 155, 157, 154, 159, 161, 155, 160, 165, 158, 165, 162, 161, 166, 164, 163, 158, 158, 167, 164, 157, 154, 159, 163, 158, 158, 163, 157, 151, 167, 162, 158, 161, 165, 171, 163, 155, 152, 154, 162, 161, 158, 156, 160, 161, 158, 163, 164, 157, 157, 162, 165, 159, 158, 160, 165, 151, 161, 161, 161, 159, 156, 164, 157, 157, 159, 166, 166, 168, 154, 148, 150, 157, 171, 163, 165, 154, 156, 157, 170, 161, 161, 164, 159, 156, 161, 157, 164, 161, 159, 157, 159, 160, 157, 160, 162, 157, 162, 154, 162, 158, 170, 151, 165, 158, 155, 165, 158, 159, 150, 159, 157, 159, 164, 167, 162, 159, 161, 157, 169, 163, 153, 161, 160, 160, 162, 156, 156, 163, 161, 160, 170, 163, 159, 160, 161, 165, 152, 163, 160, 158, 157, 155, 153, 160, 148, 163, 156, 155, 166, 162, 161, 154, 162, 154, 155, 157, 157, 162, 160, 158, 159, 153, 165, 168, 159, 157, 163, 159, 158, 151, 153, 169, 158, 164, 157, 158, 165, 160, 164, 159, 164, 156, 154, 164, 159, 163, 158, 168, 149, 156, 169, 168, 157, 164, 158, 162, 154, 156, 161, 160, 156, 158, 160, 160, 162, 159, 170, 145, 169, 164, 152, 159, 160, 168, 156, 160, 163, 156, 165, 150, 169, 149, 164, 154, 158, 158, 165, 157, 159, 162, 158, 160, 164, 164, 157, 160, 163, 160, 179, 156, 167, 169, 161, 162, 157, 155, 161, 166, 161, 160, 161, 163, 156, 151, 167, 154, 155, 155, 168, 161, 162, 167, 162, 157, 169, 161, 158, 161, 163, 160, 164, 162, 151, 163, 159, 158, 163, 155, 156, 156, 155, 159, 157, 157, 159, 147, 147, 161, 162, 161, 153, 161, 164, 161, 158, 159, 156, 162, 163, 156, 168, 167, 158, 161, 157, 158, 152, 170, 163, 162, 153, 159, 161, 163, 163, 164, 162, 158, 163, 154, 167, 157, 163, 162, 156, 156, 155, 174, 157, 165, 158, 162, 159, 161, 162, 166, 160, 163, 162, 164, 160, 159, 154, 157, 163, 156, 168, 158, 154, 158, 155, 162, 163, 158, 159, 154, 165, 166, 171, 158, 162, 173, 153, 165, 165, 158, 163, 158, 158, 170, 156, 151, 163, 152, 159, 165, 159, 160, 161, 156, 166, 160, 156, 151, 169, 155, 154, 164, 166, 162, 157, 167, 160, 163, 165, 162, 158, 158, 159, 156, 159, 151, 159, 163, 153, 153, 160, 159, 169, 157, 163, 166, 155, 154, 159, 169, 163, 164, 162, 165, 165, 160, 160, 166, 158, 156, 157, 165, 166, 164, 155, 166, 154, 163, 162, 153, 167, 160, 158, 153, 166, 158, 153, 161, 158, 154, 145, 148, 152, 155, 159, 164, 162, 166, 153, 152, 156, 158, 150, 157, 163, 151, 159, 158, 183, 165, 156, 170, 163, 158, 164, 162, 161, 164, 163, 157, 162, 158, 159, 153, 169, 159, 162, 158, 153, 160, 159, 153, 156, 153, 157, 167, 164, 157, 161, 159, 166, 157, 160, 158, 153, 155, 165, 158, 162, 160, 160, 166, 169, 162, 155, 156, 158, 156, 153, 161, 157, 162, 161, 157, 161, 156, 158, 156, 159, 163, 155, 164, 167, 162, 155, 156, 164, 167, 163, 164, 155, 159, 155, 158, 160, 171, 153, 153, 160, 161, 153, 161, 151, 157, 151, 152, 165, 158, 156, 160, 154, 159, 165, 164, 165, 165, 153, 153, 157, 154, 158, 161, 157, 160, 164, 164, 156, 157, 155, 156, 164, 153, 162, 164, 166, 150, 151, 162, 156, 162, 167, 144, 165, 157, 166, 172, 160, 167, 164, 157, 163, 166, 148, 152, 157, 154, 162, 160, 163, 170, 158, 156, 166, 148, 176, 162, 154, 159, 160, 152, 160, 162, 155, 150, 159, 163, 174, 171, 158, 165, 158, 158, 171, 159, 163, 158, 151, 156, 165, 165, 157, 159, 156, 157, 173, 170, 155, 155, 164, 164, 156, 161, 155, 148, 160, 151, 153, 161, 164, 149, 155, 169, 164, 158, 163, 160, 158, 152, 158, 159, 164, 154, 155, 154, 161, 160, 157, 163, 169, 156, 157, 158, 162, 155, 166, 161, 156, 161, 149, 156, 161, 158, 155, 169, 171, 160, 170, 158, 160, 166, 161, 163, 157, 168, 161, 159, 147, 161, 161, 174, 159, 161, 159, 163, 161, 167, 166, 168, 179, 157, 159, 164, 161, 153, 166, 158, 168, 159, 166, 160, 150, 150, 159, 161, 176, 156, 148, 156, 154, 163, 159, 161, 163, 163, 161, 168, 164, 165, 160, 152, 172, 162, 161, 167, 156, 166, 156, 167, 160, 165, 169, 171, 159, 159, 150, 156, 157, 158, 165, 152, 172, 173, 154, 154, 165, 157, 159, 167, 162, 162, 159, 172, 151, 159, 156, 163, 156, 172, 155, 150, 160, 153, 157, 162, 158, 157, 155, 153, 154, 157, 163, 163, 149, 162, 158, 159, 157, 158, 151, 158, 163, 152, 156, 157, 161, 160, 176, 151, 168, 156, 158, 161, 168, 157, 158, 147, 154, 161, 157, 163, 160, 158, 156, 162, 165, 164, 164, 155, 161, 163, 164, 158, 166, 162, 165, 147, 159, 157, 157, 158, 161, 163, 159, 162, 156, 158, 162, 159, 162, 160, 166, 154, 167, 159, 150, 162, 156, 161, 164, 161, 160, 168, 154, 142, 159, 167, 157, 158, 156, 166, 157, 166, 154, 166, 163, 149, 164, 154, 155, 166, 153, 165, 154, 156, 158, 160, 153, 160, 171, 164, 164, 159, 147, 166, 160, 157, 169, 154, 160, 153, 162, 154, 168, 159, 155, 159, 156, 154, 157, 153, 155, 158, 160, 158, 163, 168, 151, 183, 164, 156, 161, 159, 155, 168, 152, 166, 159, 157, 160, 172, 162, 150, 161, 156, 159, 159, 157, 162, 168, 170, 182, 157, 151, 167, 159, 158, 161, 159, 155, 166, 161, 162, 157, 154, 167, 158, 156, 163, 162, 151, 161, 162, 168, 162, 147, 165, 157, 152, 156, 160, 163, 147, 162, 153, 159, 164, 173, 183, 152, 164, 165, 159, 161, 161, 165, 160, 171, 160, 154, 156, 161, 160, 158, 159, 164, 160, 160, 166, 158, 164, 164, 157, 146, 164, 155, 163, 159, 161, 165, 155, 170, 157, 162, 177, 159, 158, 164, 159, 155, 164, 172, 163, 165, 178, 161, 162, 156, 163, 152, 160, 164, 156, 159, 178, 169, 163, 159, 160, 162, 156, 164, 163, 162, 156, 169, 164, 160, 174, 157, 166, 157, 160, 157, 160, 153, 165, 162, 171, 159, 153, 159, 166, 163, 164, 161, 163, 162, 166, 159, 166, 151, 165, 160, 163, 157, 159, 161, 160, 160, 163, 154, 151, 163, 157, 166, 173, 155, 165, 157, 164, 159, 165, 187, 158, 180, 154, 141, 163, 175, 158, 158, 154, 165, 162, 155, 160, 164, 154, 152, 151, 155, 159, 157, 152, 159, 162, 132, 161, 157, 157, 165, 160, 161, 156, 161, 156, 159, 157, 155, 158, 161, 148, 155, 162, 161, 164, 164, 165, 164, 167, 140, 154, 164, 161, 168, 160, 169, 167, 161, 160, 166, 156, 158, 160, 165, 157, 153, 159, 160, 164, 161, 164, 169, 155, 157, 165, 163, 161, 155, 155, 157, 168, 150, 162, 164, 158, 165, 160, 162, 164, 153, 157, 165, 157, 158, 165, 159, 159, 164, 164, 152, 162, 167, 159, 162, 169, 165, 168, 162, 162, 154, 158, 157, 160, 165, 161, 158, 163, 158, 162, 149, 155, 163, 166, 166, 164, 160, 170, 158, 161, 161, 154, 160, 147, 165, 163, 156, 164, 176, 159, 161, 167, 167, 156, 159, 157, 161, 161, 160, 153, 160, 160, 156, 162, 170, 156, 155, 163, 153, 160, 170, 162, 165, 160, 157, 200, 163, 153, 158, 159, 162, 154, 160, 160, 171, 161, 162, 162, 169, 163, 156, 167, 171, 166, 162, 161, 163, 155, 181, 159, 164, 162, 158, 155, 159, 161, 159, 158, 157, 160, 158, 154, 162, 163, 157, 155, 157, 156, 165, 159, 169, 160, 154, 159, 159, 142, 162, 171, 170, 161, 162, 164, 151, 170, 159, 164, 179, 157, 158, 160, 152, 163, 166, 159, 161, 159, 158, 162, 163, 157, 158, 162, 161, 154, 159, 158, 166, 157, 155, 168, 150, 164, 156, 159, 162, 159, 158, 160, 154, 164, 165, 164, 159, 148, 164, 163, 161, 164, 166, 165, 169, 163, 166, 159, 151, 155, 158, 151, 152, 164, 161, 149, 162, 154, 164, 158, 165, 152, 153, 170, 160, 162, 160, 161, 170, 177, 165, 158, 163, 158, 157, 160, 163, 154, 165, 162, 158, 150, 159, 162, 152, 159, 167, 163, 162, 158, 181, 166, 155, 160, 157, 159, 156, 175, 152, 160, 159, 164, 158, 159, 161, 166, 168, 159, 160, 166, 165, 161, 158, 156, 162, 160, 163, 162, 162, 158, 158, 159, 151, 163, 149, 201, 158, 159, 156, 167, 160, 160, 165, 160, 158, 163, 155, 164, 165, 156, 161, 163, 156, 173, 159, 163, 160, 160, 156, 166, 156, 154, 166, 160, 162, 164, 160, 158, 159, 163, 153, 153, 162, 173, 160, 171, 162, 159, 159, 155, 165, 152, 166, 162, 162, 153, 165, 161, 166, 162, 162, 154, 165, 164, 162, 168, 159, 160, 160, 163, 159, 153, 158, 162, 160, 162, 168, 153, 155, 162, 163, 162, 170, 155, 159, 153, 160, 153, 168, 159, 155, 155, 167, 161, 163, 162, 154, 160, 158, 164, 158, 155, 161, 156, 156, 159, 158, 159, 163, 154, 156, 164, 165, 159, 163, 153, 159, 166, 170, 153, 146, 167, 165, 164, 172, 164, 164, 157, 164, 155, 163, 158, 162, 163, 152, 162, 149, 159, 161, 161, 161, 164, 160, 158, 160, 167, 162, 162, 163, 163, 159, 161, 164, 165, 156, 157, 157, 162, 158, 159, 162, 160, 159, 166, 163, 164, 159, 157, 160, 152, 153, 162, 162, 164, 155, 156, 163, 161, 157, 164, 156, 156, 154, 152, 163, 155, 157, 153, 159, 157, 162, 152, 160, 165, 161, 168, 164, 162, 154, 158, 147, 139, 161, 164, 162, 159, 163, 164, 152, 161, 166, 154, 160, 165, 162, 156, 162, 158, 155, 159, 159, 160, 156, 157, 162, 161, 147, 160, 172, 161, 155, 166, 162, 164, 162, 161, 157, 163, 159, 161, 159, 159, 158, 165, 153, 159, 164, 162, 159, 157, 157, 160, 158, 161, 160, 163, 161, 160, 160, 162, 161, 158, 157, 161, 161, 164, 164, 159, 157, 165, 160, 164, 164, 160, 164, 165, 160, 158, 156, 157, 161, 162, 161, 170, 164, 155, 159, 161, 158, 165, 157, 161, 161, 167, 166, 164, 166, 159, 166, 164, 163, 159, 159, 161, 155, 160, 166, 157, 157, 174, 161, 163, 162, 157, 158, 162, 157, 156, 161, 158, 158, 161, 156, 161, 160, 159, 166, 164, 161, 161, 168, 165, 161, 155, 161, 162, 155, 165, 155, 166, 162, 156, 168, 165, 161, 162, 159, 153, 159, 155, 156, 154, 164, 158, 154, 157, 164, 161, 160, 164, 159, 157, 160, 164, 155, 164, 153, 159, 158, 164, 161, 164, 158, 160, 161, 158, 164, 164, 171, 165, 159, 164, 162, 155, 150, 163, 156, 161, 162, 165, 162, 160, 158, 151, 162, 170, 156, 169, 159, 161, 162, 158, 162, 156, 164, 154, 160, 158, 154, 157, 163, 166, 167, 160, 170, 158, 160, 154, 157, 170, 165, 158, 159, 156, 158, 157, 154, 159, 162, 160, 159, 165, 161, 162, 161, 155, 164, 161, 168, 158, 166, 162, 161, 158, 159, 158, 157, 159, 160, 159, 169, 159, 163, 160, 162, 158, 160, 155, 157, 165, 159, 156, 158, 162, 162, 163, 164, 161, 154, 159, 158, 157, 155, 158, 162, 165, 156, 165, 163, 155, 158, 165, 157, 155, 163, 161, 160, 162, 156, 155, 158, 158, 167, 156, 157, 162, 159, 157, 159, 159, 156, 161, 162, 163, 156, 166, 154, 161, 161, 164, 162, 155, 157, 159, 156, 164, 143, 158, 160, 154, 157, 165, 154, 160, 155, 162, 154, 164, 161, 159, 163, 167, 153, 157, 159, 163, 169, 152, 156, 159, 160, 165, 158, 162, 153, 157, 160, 155, 153, 159, 160, 159, 161, 155, 160, 154, 157, 159, 157, 169, 163, 154, 159, 157, 159, 164, 168, 165, 158, 153, 165, 154, 161, 156, 160, 164, 161, 170, 153, 161, 156, 156, 159, 150, 162, 160, 163, 165, 157, 161, 159, 167, 163, 159, 154, 161, 161, 162, 159, 163, 164, 162, 158, 157, 165, 162, 161, 167, 159, 154, 157, 164, 163, 155, 157, 160, 161, 149, 167, 165, 158, 153, 161, 160, 151, 157, 165, 155, 158, 160, 162, 155, 153, 167, 163, 162, 161, 160, 160, 160, 161, 166, 155, 160, 167, 170, 160, 168, 161, 160, 158, 159, 163, 163, 159, 159, 161, 164, 158, 158, 152, 168, 167, 168, 165, 160, 161, 163, 158, 159, 160, 157, 160, 165, 167, 159, 157, 164, 157, 162, 156, 154, 159, 156, 159, 154, 162, 158, 160, 151, 164, 154, 163, 158, 167, 158, 168, 153, 158, 154, 154, 152, 165, 163, 154, 165, 160, 160, 162, 167, 159, 155, 159, 156, 164, 160, 162, 166, 164, 166, 158, 158, 165, 161, 154, 160, 163, 155, 165, 163, 155, 163, 157, 160, 152, 159, 165, 160, 154, 164, 167, 156, 159, 166, 158, 166, 157, 169, 161, 151, 160, 170, 164, 163, 163, 164, 158, 166, 162, 162, 166, 166, 164, 161, 161, 156, 147, 164, 160, 163, 162, 158, 160, 161, 163, 173, 157, 163, 160, 156, 152, 157, 165, 156, 159, 171, 155, 154, 159, 172, 156, 160, 157, 160, 167, 158, 167, 145, 157, 160, 154, 163, 162, 168, 162, 154, 163, 174, 163, 162, 162, 159, 161, 164, 149, 163, 155, 158, 166, 169, 167, 146, 161, 163, 163, 169, 156, 156, 156, 153, 156, 165, 151, 152, 166, 156, 154, 166, 165, 157, 157, 161, 159, 160, 158, 157, 163, 158, 162, 163, 157, 157, 156, 163, 153, 164, 158, 157, 163, 157, 164, 165, 151, 167, 161, 155, 156, 155, 156, 152, 168, 160, 157, 162, 156, 158, 166, 169, 154, 158, 162, 157, 163, 165, 163, 159, 160, 158, 164, 163, 169, 163, 161, 142, 157, 155, 157, 157, 162, 166, 162, 179, 162, 161, 157, 160, 157, 159, 156, 163, 157, 163, 167, 152, 153, 154, 154, 161, 158, 165, 168, 161, 161, 165, 157, 166, 161, 162, 160, 150, 163, 157, 155, 160, 167, 166, 157, 161, 160, 157, 163, 161, 169, 164, 162, 166, 164, 152, 151, 160, 167, 157, 171, 160, 161, 169, 162, 159, 155, 163, 162, 163, 157, 164, 167, 165, 161, 162, 160, 149, 162, 160, 159, 162, 161, 164, 160, 160, 164, 160, 160, 158, 163, 165, 158, 157, 165, 164, 155, 158, 161, 158, 157, 158, 159, 159, 157, 158, 157, 164, 155, 158, 160, 160, 163, 159, 158, 146, 161, 174, 158, 168, 155, 169, 153, 158, 164, 164, 150, 157, 169, 164, 155, 162, 167, 160, 160, 161, 168, 173, 162, 157, 160, 162, 156, 159, 152, 153, 165, 156, 156, 163, 162, 158, 160, 160, 150, 161, 161, 162, 161, 156, 164, 152, 160, 161, 159, 164, 160, 163, 166, 155, 155, 165, 157, 164, 157, 153, 161, 149, 163, 158, 153, 152, 157, 155, 164, 170, 156, 152, 167, 161, 157, 157, 161, 161, 168, 144, 159, 165, 153, 162, 159, 158, 153, 156, 169, 158, 153, 163, 162, 164, 161, 160, 159, 167, 155, 167, 161, 167, 163, 159, 159, 154, 165, 156, 159, 169, 169, 158, 162, 156, 154, 154, 158, 165, 157, 158, 153, 163, 154, 168, 161, 172, 158, 160, 163, 164, 160, 190, 168, 161, 172, 168, 157, 162, 154, 164, 163, 157, 158, 162, 161, 160, 159, 153, 166, 156, 159, 159, 167, 164, 162, 149, 166, 166, 158, 161, 164, 162, 159, 160, 158, 150, 162, 166, 161, 154, 153, 158, 156, 165, 161, 158, 165, 158, 165, 169, 157, 127, 154, 175, 153, 165, 145, 153, 159, 167, 160, 161, 165, 160, 156, 160, 151, 160, 164, 162, 170, 161, 159, 158, 165, 163, 167, 158, 149, 156, 159, 153, 164, 168, 159, 162, 160, 162, 161, 172, 164, 160, 162, 155, 165, 177, 161, 158, 156, 161, 164, 157, 159, 170, 158, 165, 165, 156, 178, 155, 161, 160, 156, 168, 165, 169, 160, 150, 159, 164, 153, 156, 168, 160, 152, 149, 164, 163, 155, 162, 155, 161, 168, 165, 151, 153, 154, 157, 154, 170, 164, 162, 159, 169, 163, 161, 158, 155, 147, 158, 163, 153, 162, 157, 162, 163, 164, 158, 174, 159, 171, 165, 163, 148, 168, 167, 146, 148, 158, 162, 158, 154, 157, 168, 158, 154, 163, 155, 160, 164, 168, 146, 162, 163, 169, 154, 159, 154, 150, 167, 150, 159, 163, 161, 162, 152, 162, 159, 158, 157, 154, 158, 151, 160, 160, 163, 159, 163, 160, 162, 169, 150, 171, 160, 157, 162, 169, 154, 160, 164, 165, 154, 153, 159, 160, 160, 160, 164, 161, 165, 169, 159, 162, 164, 159, 160, 154, 153, 162, 160, 170, 160, 165, 159, 167, 156, 160, 162, 157, 158, 158, 162, 155, 149, 156, 177, 161, 161, 167, 161, 163, 156, 147, 166, 163, 156, 157, 166, 145, 160, 160, 159, 162, 150, 160, 157, 161, 157, 151, 172, 154, 156, 164, 170, 153, 169, 162, 167, 165, 159, 160, 156, 155, 153, 155, 154, 160, 164, 157, 167, 163, 155, 164, 155, 156, 162, 159, 160, 156, 155, 161, 142, 151, 163, 163, 169, 148, 156, 133, 152, 178, 156, 165, 161, 156, 159, 155, 162, 161, 153, 160, 158, 150, 159, 159, 159, 165, 157, 159, 157, 162, 156, 150, 150, 155, 160, 172, 156, 157, 160, 161, 162, 152, 162, 159, 153, 158, 161, 153, 159, 152, 158, 168, 161, 164, 161, 160, 156, 165, 155, 163, 162, 159, 157, 159, 167, 163, 170, 149, 149, 163, 162, 168, 149, 154, 151, 160, 156, 161, 163, 155, 164, 175, 168, 156, 163, 160, 159, 158, 160, 158, 162, 158, 162, 165, 161, 161, 155, 161, 170, 159, 155, 155, 161, 154, 161, 153, 155, 171, 155, 163, 159, 156, 162, 157, 158, 162, 167, 153, 159, 154, 155, 165, 153, 165, 158, 159, 157, 159, 159, 154, 164, 161, 170, 166, 163, 164, 155, 158, 155, 159, 153, 151, 166, 162, 150, 160, 153, 165, 161, 156, 161, 158, 152, 154, 164, 159, 160, 156, 152, 163, 148, 184, 168, 151, 157, 163, 151, 159, 161, 161, 159, 169, 169, 162, 158, 158, 160, 161, 156, 160, 168, 160, 162, 161, 162, 160, 164, 155, 165, 165, 163, 157, 156, 161, 167, 159, 149, 165, 156, 161, 156, 160, 152, 161, 164, 161, 166, 154, 156, 160, 160, 166, 152, 159, 154, 169, 157, 158, 160, 158, 150, 145, 160, 163, 160, 158, 158, 154, 154, 162, 166, 152, 155, 166, 153, 167, 158, 158, 162, 158, 160, 163, 157, 155, 156, 156, 168, 163, 165, 166, 161, 161, 171, 157, 164, 159, 156, 164, 159, 160, 163, 162, 157, 153, 159, 162, 153, 157, 156, 160, 155, 151, 180, 164, 164, 159, 173, 159, 158, 160, 166, 164, 161, 158, 157, 154, 163, 159, 152, 168, 158, 163, 157, 163, 161, 159, 164, 158, 161, 159, 163, 158, 164, 147, 149, 158, 154, 161, 160, 160, 156, 160, 152, 158, 159, 162, 155, 155, 167, 161, 163, 157, 155, 156, 165, 169, 150, 156, 156, 167, 153, 157, 163, 159, 160, 181, 165, 161, 166, 156, 159, 155, 157, 160, 167, 159, 161, 154, 163, 157, 194, 157, 159, 157, 154, 158, 162, 156, 140, 161, 160, 163, 159, 153, 161, 156, 166, 136, 167, 160, 161, 161, 158, 158, 164, 164, 164, 157, 160, 145, 155, 168, 155, 161, 165, 133, 169, 160, 164, 156, 168, 167, 168, 171, 161, 158, 157, 160, 163, 164, 157, 159, 153, 168, 157, 157, 156, 162, 162, 178, 159, 160, 150, 166, 155, 158, 164, 167, 152, 156, 153, 165, 159, 190, 159, 159, 160, 158, 162, 162, 163, 161, 165, 156, 159, 164, 162, 170, 161, 155, 170, 163, 158, 158, 162, 165, 161, 162, 159, 157, 153, 161, 160, 163, 165, 159, 153, 158, 166, 154, 162, 158, 157, 166, 161, 154, 166, 162, 149, 161, 165, 150, 154, 160, 156, 142, 172, 162, 156, 145, 155, 159, 153, 165, 163, 157, 149, 164, 162, 155, 164, 147, 162, 152, 161, 153, 161, 147, 168, 157, 162, 157, 161, 162, 167, 167, 163, 159, 160, 154, 164, 161, 159, 163, 161, 159, 173, 169, 158, 163, 160, 157, 163, 160, 159, 165, 159, 157, 163, 161, 162, 163, 165, 158, 162, 157, 145, 165, 157, 160, 163, 165, 158, 158, 164, 158, 162, 162, 170, 147, 159, 159, 157, 156, 165, 159, 157, 159, 156, 161, 158, 158, 161, 156, 157, 161, 166, 158, 163, 160, 154, 161, 168, 160, 155, 161, 166, 153, 159, 167, 162, 161, 161, 159, 165, 154, 160, 157, 165, 160, 161, 163, 164, 161, 164, 155, 161, 164, 154, 150, 155, 163, 161, 162, 165, 153, 160, 156, 167, 169, 155, 163, 159, 152, 155, 157, 158, 163, 159, 165, 154, 162, 154, 160, 148, 156, 153, 165, 155, 158, 156, 151, 155, 160, 160, 167, 153, 166, 156, 184, 163, 154, 159, 158, 164, 141, 159, 165, 163, 155, 154, 157, 172, 164, 164, 158, 164, 162, 160, 153, 159, 159, 150, 147, 159, 165, 160, 159, 148, 169, 160, 163, 162, 155, 160, 166, 157, 161, 160, 161, 158, 153, 163, 168, 156, 154, 165, 163, 163, 163, 160, 165, 168, 148, 157, 157, 158, 164, 155, 162, 160, 156, 164, 161, 155, 156, 152, 156, 156, 159, 160, 156, 153, 148, 154, 159, 154, 158, 142, 156, 162, 164, 166, 156, 164, 157, 159, 156, 151, 161, 159, 161, 156, 160, 157, 154, 162, 163, 158, 160, 152, 164, 159, 162, 160, 157, 150, 175, 161, 147, 153, 140, 177, 163, 153, 158, 152, 165, 172, 163, 157, 156, 160, 170, 146, 154, 157, 149, 160, 160, 162, 150, 154, 160, 154, 154, 155, 173, 175, 145, 157, 177, 150, 162, 161, 158, 161, 166, 153, 157, 162, 162, 161, 152, 192, 153, 160, 155, 154, 158, 143, 150, 156, 159, 154, 168, 162, 159, 161, 152, 161, 165, 162, 157, 178, 157, 154, 162, 161, 169, 154, 169, 162, 163, 174, 159, 157, 160, 157, 154, 155, 162, 184, 160, 152, 166, 163, 163, 162, 160, 150, 156, 151, 154, 153, 159, 161, 170, 164, 157, 163, 158, 159, 158, 168, 156, 152, 164, 157, 169, 163, 177, 154, 157, 162, 155, 153, 161, 165, 159, 163, 167, 165, 160, 159, 167, 149, 163, 161, 154, 149, 165, 158, 152, 160, 155, 160, 166, 153, 158, 160, 155, 168, 156, 156, 170, 161, 153, 168, 163, 162, 170, 154, 157, 157, 162, 163, 158, 165, 162, 152, 163, 155, 150, 154, 155, 188, 171, 152, 162, 159, 155, 167, 157, 158, 163, 172, 164, 159, 160, 158, 154, 156, 159, 151, 163, 163, 183, 175, 152, 158, 163, 167, 164, 173, 153, 164, 152, 159, 163, 170, 164, 160, 169, 167, 156, 157, 163, 155, 147, 148, 147, 149, 171, 159, 154, 166, 154, 156, 150, 161, 159, 160, 149, 152, 171, 158, 164, 171, 159, 156, 158, 159, 164, 157, 162, 154, 165, 159, 159, 153, 163, 150, 161, 146, 166, 160, 157, 155, 158, 155, 161, 162, 165, 159, 152, 164, 165, 148, 162, 164, 161, 158, 155, 154, 157, 163, 159, 164, 161, 166, 165, 153, 164, 153, 169, 159, 163, 159, 163, 162, 162, 164, 155, 182, 165, 159, 170, 168, 159, 154, 154, 156, 164, 154, 178, 156, 162, 165, 162, 153, 152, 160, 160, 159, 161, 153, 162, 169, 166, 163, 170, 148, 161, 153, 158, 170, 169, 163, 163, 160, 164, 154, 169, 153, 163, 170, 165, 161, 155, 160, 174, 148, 155, 166, 159, 168, 159, 166, 164, 166, 161, 155, 160, 152, 171, 153, 162, 165, 170, 159, 159, 163, 154, 160, 167, 166, 161, 156, 155, 167, 159, 148, 157, 165, 159, 153, 158, 163, 154, 143, 156, 153, 155, 164, 159, 155, 162, 160, 156, 159, 157, 157, 162, 164, 165, 156, 165, 165, 162, 153, 161, 167, 166, 148, 164, 155, 169, 164, 156, 167, 148, 152, 158, 159, 162, 156, 152, 147, 158, 159, 152, 164, 180, 173, 157, 156, 153, 159, 164, 159, 167, 168, 166, 165, 169, 179, 156, 159, 162, 156, 145, 168, 163, 162, 155, 171, 163, 155, 149, 166, 155, 164, 149, 164, 152, 158, 161, 156, 161, 157, 153, 155, 159, 154, 154, 164, 154, 158, 156, 160, 165, 154, 146, 153, 145, 156, 159, 157, 162, 164, 156, 157, 144, 157, 158, 152, 160, 160, 158, 157, 175, 163, 161, 172, 167, 165, 164, 172, 155, 167, 158, 148, 159, 157, 149, 156, 161, 166, 156, 154, 167, 159, 163, 156, 164, 157, 159, 157, 159, 167, 160, 160, 164, 159, 162, 148, 162, 153, 160, 159, 166, 165, 155, 163, 151, 160, 164, 167, 163, 168, 151, 163, 163, 164, 165, 159, 168, 155, 159, 144, 153, 170, 165, 156, 160, 154, 157, 158, 158, 161, 161, 161, 163, 152, 160, 151, 175, 159, 133, 163, 161, 163, 146, 158, 161, 153, 162, 175, 159, 158, 164, 164, 151, 170, 161, 159, 154, 165, 167, 165, 160, 161, 150, 166, 154, 157, 141, 164, 160, 157, 162, 157, 163, 156, 143, 160, 161, 164, 151, 163, 155, 168, 164, 163, 159, 176, 158, 162, 163, 155, 160, 164, 157, 158, 156, 166, 170, 157, 151, 162, 166, 165, 160, 152, 166, 165, 158, 161, 160, 157, 163, 151, 170, 169, 166, 150, 167, 164, 166, 168, 157, 168, 154, 157, 149, 166, 164, 161, 161, 161, 158, 145, 159, 168, 160, 150, 160, 152, 150, 161, 154, 152, 151, 162, 156, 174, 163, 171, 151, 141, 158, 171, 159, 153, 161, 142, 170, 148, 164, 158, 170, 155, 157, 171, 162, 169, 157, 173, 165, 165, 162, 160, 158, 162, 166, 166, 163, 160, 162, 148, 158, 172, 160, 162, 168, 161, 168, 158, 159, 163, 164, 173, 160, 156, 162, 156, 152, 155, 157, 165, 161, 172, 164, 153, 172, 165, 148, 159, 170, 160, 162, 147, 160, 165, 157, 154, 163, 162, 161, 141, 156, 162, 148, 149, 162, 153, 164, 161, 163, 151, 163, 157, 161, 161, 163, 156, 163, 163, 149, 154, 152, 133, 154, 158, 155, 149, 162, 149, 150, 155, 164, 164, 160, 156, 164, 153, 164, 162, 161, 166, 165, 162, 157, 159, 155, 166, 166, 166, 159, 152, 171, 166, 156, 151, 160, 151, 161, 165, 162, 168, 162, 158, 180, 166, 161, 163, 143, 151, 160, 158, 158, 156, 147, 150, 156, 167, 163, 163, 145, 161, 156, 169, 142, 165, 148, 166, 160, 147, 148, 135, 156, 166, 156, 155, 163, 164, 150, 163, 165, 153, 152, 168, 171, 159, 158, 162, 165, 158, 162, 175, 165, 167, 165, 150, 165, 155, 158, 157, 160, 143, 156, 148, 163, 165, 166, 168, 149, 164, 159, 181, 161, 163, 163, 160, 160, 157, 160, 163, 152, 168, 172, 155, 149, 156, 164, 162, 160, 164, 164, 159, 155, 148, 157, 155, 151, 163, 163, 156, 159, 160, 166, 156, 172, 162, 160, 156, 167, 159, 166, 164, 149, 160, 143, 164, 164, 162, 160, 154, 164, 154, 150, 164, 159, 161, 153, 183, 162, 151, 165, 153, 163, 151, 164, 147, 167, 159, 168, 156, 155, 150, 155, 160, 157, 159, 153, 162, 160, 158, 165, 158, 160, 175, 159, 158, 153, 161, 159, 149, 166, 157, 158, 165, 158, 160, 161, 158, 158, 163, 149, 162, 158, 166, 160, 159, 161, 165, 163, 173, 151, 155, 157, 162, 165, 162, 161, 158, 162, 155, 158, 157, 160, 161, 163, 157, 164, 157, 157, 161, 148, 154, 164, 161, 158, 161, 159, 151, 166, 157, 159, 161, 166, 150, 171, 154, 170, 159, 166, 158, 153, 164, 162, 144, 150, 162, 157, 159, 162, 146, 163, 152, 164, 160, 158, 164, 155, 166, 166, 162, 150, 158, 168, 157, 155, 166, 168, 160, 155, 156, 162, 157, 156, 158, 167, 154, 159, 160, 154, 160, 156, 159, 157, 162, 157, 152, 160, 158, 163, 160, 156, 155, 171, 157, 158, 160, 153, 151, 168, 155, 159, 156, 161, 147, 168, 161, 159, 151, 158, 161, 164, 160, 165, 153, 148, 152, 162, 158, 157, 157, 159, 163, 163, 158, 167, 156, 159, 157, 155, 156, 151, 160, 149, 160, 171, 163, 161, 155, 149, 157, 157, 148, 152, 153, 153, 176, 167, 154, 155, 153, 157, 161, 152, 169, 163, 168, 157, 158, 167, 164, 162, 165, 158, 153, 149, 157, 164, 155, 166, 159, 167, 164, 160, 161, 162, 173, 153, 166, 163, 151, 150, 161, 135, 172, 155, 152, 169, 157, 154, 157, 166, 150, 158, 162, 159, 157, 169, 155, 153, 159, 151, 155, 152, 155, 153, 166, 159, 153, 158, 154, 147, 156, 161, 157, 154, 158, 160, 151, 166, 157, 160, 146, 157, 167, 157, 164, 151, 155, 150, 158, 172, 154, 151, 164, 162, 163, 149, 164, 160, 160, 159, 144, 156, 160, 158, 154, 158, 157, 160, 150, 151, 163, 163, 163, 177, 147, 160, 154, 173, 155, 160, 163, 166, 157, 162, 158, 148, 156, 151, 159, 157, 155, 161, 161, 165, 165, 155, 158, 159, 155, 155, 157, 165, 162, 165, 158, 159, 160, 159, 161, 160, 161, 169, 165, 163, 158, 162, 163, 153, 155, 162, 149, 154, 152, 159, 158, 155, 174, 154, 156, 166, 156, 147, 163, 152, 158, 172, 142, 159, 153, 166, 158, 159, 165, 154, 158, 154, 155, 159, 164, 153, 154, 160, 161, 145, 149, 162, 160, 163, 156, 158, 167, 149, 170, 165, 147, 161, 160, 162, 161, 166, 163, 162, 143, 159, 167, 154, 157, 153, 160, 177, 163, 161, 155, 156, 160, 156, 160, 156, 166, 156, 150, 158, 154, 164, 159, 144, 165, 163, 161, 155, 162, 153, 154, 155, 161, 160, 164, 162, 174, 155, 153, 165, 164, 156, 163, 153, 158, 159, 160, 156, 155, 149, 159, 159, 167, 156, 156, 172, 137, 158, 153, 159, 159, 161, 152, 155, 153, 161, 157, 164, 155, 153, 165, 158, 170, 166, 160, 161, 156, 146, 161, 155, 163, 161, 161, 169, 156, 162, 147, 161, 158, 137, 174, 160, 161, 169, 160, 161, 148, 160, 168, 157, 156, 170, 160, 155, 149, 156, 165, 151, 153, 159, 170, 162, 161, 166, 155, 164, 159, 162, 178, 155, 153, 160, 162, 155, 162, 164, 143, 161, 170, 164, 156, 151, 159, 160, 156, 157, 165, 155, 158, 156, 154, 163, 158, 150, 166, 154, 159, 164, 158, 159, 159, 152, 149, 154, 165, 156, 161, 160, 148, 170, 161, 154, 156, 159, 164, 157, 168, 152, 154, 165, 164, 158, 158, 160, 158, 158, 162, 164, 163, 168, 164, 161, 163, 167, 162, 154, 162, 158, 160, 163, 163, 165, 159, 163, 161, 163, 163, 169, 148, 165, 158, 159, 157, 169, 160, 163, 157, 156, 156, 152, 153, 165, 157, 160, 164, 154, 162, 160, 160, 167, 161, 164, 153, 167, 164, 165, 148, 161, 162, 165, 172, 157, 153, 168, 159, 156, 152, 152, 159, 153, 160, 168, 158, 162, 157, 168, 163, 161, 164, 165, 161, 151, 161, 162, 164, 144, 171, 160, 156, 163, 161, 156, 164, 154, 163, 156, 156, 149, 162, 158, 159, 168, 159, 163, 161, 154, 163, 160, 157, 157, 161, 164, 156, 153, 157, 155, 165, 153, 162, 159, 168, 156, 151, 154, 157, 160, 157, 157, 156, 157, 175, 160, 156, 166, 154, 156, 163, 150, 164, 177, 155, 161, 159, 158, 163, 159, 151, 162, 167, 160, 160, 161, 166, 160, 165, 155, 157, 158, 158, 172, 165, 155, 159, 153, 161, 155, 154, 160, 152, 146, 163, 166, 154, 157, 166, 163, 170, 159, 144, 160, 164, 163, 165, 170, 145, 158, 159, 161, 161, 151, 155, 158, 154, 163, 159, 162, 154, 152, 154, 160, 160, 161, 167, 158, 161, 161, 171, 163, 158, 162, 162, 157, 160, 156, 164, 167, 159, 170, 163, 160, 162, 162, 169, 160, 172, 158, 162, 166, 161, 167, 168, 168, 160, 157, 157, 166, 157, 153, 160, 157, 159, 169, 157, 165, 161, 168, 166, 154, 148, 169, 162, 160, 159, 166, 161, 155, 163, 159, 154, 161, 154, 156, 149, 160, 148, 152, 163, 163, 150, 157, 156, 160, 159, 159, 168, 167, 150, 157, 166, 159, 171, 150, 158, 157, 158, 170, 157, 154, 149, 170, 160, 155, 153, 160, 159, 161, 151, 162, 163, 161, 166, 161, 158, 162, 163, 164, 156, 163, 168, 156, 163, 160, 163, 157, 154, 170, 157, 154, 176, 148, 160, 160, 168, 163, 161, 161, 164, 163, 167, 162, 155, 156, 153, 162, 159, 154, 151, 161, 164, 151, 164, 156, 159, 159, 160, 146, 174, 168, 164, 149, 151, 155, 156, 166, 164, 152, 161, 157, 167, 161, 159, 165, 158, 155, 168, 159, 158, 159, 164, 160, 164, 167, 161, 156, 159, 156, 152, 156, 153, 166, 164, 168, 167, 155, 159, 164, 160, 168, 161, 145, 164, 158, 171, 159, 167, 162, 165, 156, 158, 165, 164, 162, 154, 168, 159, 159, 147, 164, 165, 155, 159, 160, 152, 166, 166, 162, 161, 163, 171, 163, 160, 176, 159, 157, 169, 153, 160, 157, 162, 156, 160, 174, 161, 161, 163, 160, 156, 158, 168, 176, 148, 155, 144, 157, 150, 157, 166, 161, 160, 161, 156, 163, 163, 161, 158, 153, 158, 171, 165, 160, 159, 159, 160, 163, 159, 154, 165, 156, 165, 151, 154, 159, 160, 166, 165, 166, 165, 159, 160, 155, 164, 156, 168, 157, 148, 168, 160, 166, 162, 158, 157, 159, 170, 165, 159, 158, 161, 150, 163, 154, 155, 157, 158, 154, 160, 163, 162, 160, 159, 164, 161, 154, 162, 151, 158, 151, 158, 164, 166, 154, 157, 161, 165, 159, 156, 160, 147, 164, 162, 162, 155, 158, 162, 156, 158, 165, 162, 160, 157, 162, 162, 158, 154, 156, 165, 161, 161, 157, 164, 163, 153, 164, 166, 162, 153, 163, 148, 165, 153, 156, 172, 166, 153, 158, 163, 162, 156, 161, 151, 166, 161, 156, 158, 159, 163, 162, 157, 167, 149, 161, 158, 157, 154, 153, 154, 169, 162, 158, 146, 156, 154, 160, 159, 156, 169, 161, 162, 163, 160, 161, 157, 153, 165, 152, 171, 158, 164, 166, 165, 160, 163, 158, 165, 157, 173, 155, 162, 164, 173, 165, 154, 145, 169, 159, 155, 160, 163, 157, 158, 153, 157, 158, 162, 162, 154, 170, 161, 160, 166, 159, 164, 170, 160, 158, 162, 163, 162, 155, 163, 156, 157, 163, 161, 158, 162, 158, 167, 150, 160, 157, 165, 167, 158, 160, 157, 160, 158, 157, 153, 154, 164, 169, 161, 157, 155, 154, 163, 162, 157, 155, 158, 157, 155, 159, 157, 152, 148, 159, 168, 161, 165, 163, 166, 154, 160, 160, 163, 160, 158, 159, 150, 156, 159, 163, 159, 165, 157, 152, 170, 167, 166, 164, 158, 164, 162, 161, 160, 153, 165, 152, 162, 158, 155, 160, 155, 162, 159, 158, 162, 159, 157, 155, 161, 157, 161, 160, 163, 164, 170, 165, 166, 160, 152, 169, 163, 158, 162, 166, 169, 157, 165, 156, 155, 169, 170, 166, 163, 160, 158, 155, 162, 152, 159, 156, 156, 153, 161, 163, 158, 160, 159, 158, 159, 172, 159, 158, 165, 161, 157, 162, 160, 156, 156, 168, 155, 157, 162, 154, 162, 161, 157, 168, 168, 152, 149, 165, 158, 161, 157, 166, 147, 154, 166, 165, 150, 161, 155, 168, 161, 159, 156, 168, 172, 160, 159, 169, 158, 153, 149, 156, 155, 163, 161, 156, 159, 171, 157, 165, 163, 159, 157, 155, 165, 161, 163, 164, 157, 158, 163, 162, 157, 158, 162, 165, 152, 158, 148, 160, 157, 158, 158, 168, 169, 151, 159, 163, 156, 154, 164, 157, 156, 161, 150, 163, 158, 161, 162, 174, 155, 157, 158, 159, 156, 164, 155, 155, 150, 160, 159, 162, 163, 169, 163, 159, 161, 156, 161, 149, 143, 168, 155, 158, 160, 164, 152, 161, 148, 163, 157, 153, 162, 157, 162, 166, 160, 168, 166, 168, 151, 160, 159, 162, 155, 139, 164, 155, 156, 162, 163, 161, 158, 155, 161, 148, 163, 168, 162, 163, 157, 162, 160, 166, 156, 159, 158, 156, 157, 153, 160, 164, 162, 161, 159, 158, 161, 159, 160, 162, 162, 162, 162, 159, 157, 158, 162, 163, 163, 161, 160, 159, 153, 171, 163, 162, 156, 159, 163, 160, 159, 163, 161, 161, 157, 155, 163, 158, 158, 167, 159, 162, 165, 161, 154, 161, 159, 173, 161, 162, 163, 158, 155, 162, 164, 160, 163, 158, 163, 152, 159, 159, 162, 159, 172, 168, 159, 158, 155, 160, 161, 166, 157, 162, 160, 158, 165, 161, 162, 163, 160, 160, 166, 161, 164, 156, 160, 158, 157, 164, 164, 161, 154, 163, 160, 154, 159, 158, 157, 159, 158, 161, 163, 163, 162, 165, 162, 160, 158, 150, 165, 159, 164, 157, 156, 162, 162, 162, 155, 156, 158, 158, 161, 151, 167, 168, 168, 157, 153, 163, 165, 165, 156, 155, 164, 161, 161, 151, 156, 157, 161, 165, 165, 153, 157, 155, 158, 162, 159, 159, 157, 164, 174, 162, 157, 162, 153, 166, 154, 162, 157, 158, 162, 157, 152, 161, 155, 155, 165, 158, 169, 157, 155, 163, 159, 155, 151, 167, 164, 158, 152, 161, 152, 162, 153, 167, 157, 167, 157, 160, 159, 166, 169, 164, 158, 157, 159, 164, 164, 172, 157, 159, 162, 164, 160, 160, 157, 162, 158, 159, 156, 162, 162, 160, 159, 160, 159, 156, 162, 157, 160, 159, 162, 163, 163, 160, 165, 157, 163, 159, 157, 160, 165, 162, 162, 161, 160, 165, 162, 160, 162, 158, 152, 163, 155, 165, 159, 158, 162, 155, 155, 159, 155, 151, 164, 163, 162, 165, 158, 162, 163, 165, 158, 161, 163, 158, 154, 165, 151, 161, 162, 157, 165, 163, 165, 162, 163, 157, 156, 162, 161, 159, 163, 145, 164, 153, 161, 163, 166, 165, 163, 162, 154, 170, 159, 164, 162, 156, 158, 160, 144, 155, 161, 154, 163, 159, 158, 160, 162, 163, 159, 164, 151, 158, 163, 159, 156, 164, 161, 158, 161, 159, 159, 161, 169, 164, 164, 157, 161, 159, 162, 162, 162, 160, 164, 162, 157, 160, 154, 157, 160, 162, 154, 160, 162, 153, 160, 164, 162, 164, 157, 162, 167, 155, 162, 164, 157, 152, 161, 161, 163, 158, 164, 164, 153, 159, 154, 164, 159, 163, 166, 160, 167, 159, 165, 158, 162, 158, 168, 152, 167, 158, 164, 162, 161, 153, 161, 156, 161, 164, 160, 162, 161, 156, 161, 158, 154, 163, 172, 152, 163, 155, 156, 161, 160, 166, 158, 162, 162, 165, 158, 163, 164, 157, 159, 156, 167, 163, 161, 163, 164, 161, 163, 159, 156, 165, 167, 167, 162, 166, 161, 162, 155, 161, 163, 167, 164, 159, 157, 158, 155, 157, 162, 160, 163, 162, 167, 154, 166, 162, 162, 146, 163, 164, 158, 159, 165, 163, 157, 164, 157, 157, 157, 161, 163, 157, 155, 163, 164, 159, 164, 160, 158, 164, 160, 158, 156, 154, 160, 159, 158, 159, 163, 168, 167, 159, 175, 162, 159, 161, 163, 157, 159, 164, 160, 162, 168, 159, 167, 166, 158, 166, 162, 156, 184, 153, 155, 167, 167, 154, 161, 159, 159, 166, 165, 158, 162, 158, 170, 163, 149, 164, 155, 158, 160, 153, 155, 157, 153, 159, 150, 155, 158, 154, 161, 149, 158, 159, 166, 156, 156, 159, 165, 156, 179, 164, 158, 162, 157, 160, 164, 169, 158, 161, 154, 153, 176, 152, 160, 161, 153, 162, 165, 172, 162, 156, 163, 158, 155, 164, 153, 151, 165, 167, 166, 160, 154, 156, 159, 147, 165, 158, 166, 158, 155, 154, 158, 164, 153, 156, 155, 158, 161, 161, 161, 159, 171, 161, 161, 163, 160, 151, 150, 154, 167, 171, 158, 165, 155, 160, 162, 155, 155, 151, 173, 160, 159, 165, 163, 166, 154, 157, 170, 161, 169, 159, 158, 162, 158, 153, 164, 158, 159, 166, 155, 172, 150, 157, 158, 165, 165, 155, 164, 153, 165, 168, 170, 158, 157, 158, 160, 154, 164, 155, 164, 154, 154, 162, 158, 162, 162, 168, 158, 156, 161, 156, 166, 155, 159, 170, 165, 157, 158, 167, 171, 165, 172, 156, 152, 167, 159, 159, 153, 172, 164, 157, 162, 151, 153, 156, 155, 158, 161, 163, 164, 157, 161, 159, 160, 168, 156, 155, 157, 153, 176, 159, 157, 164, 163, 160, 163, 160, 162, 162, 154, 161, 166, 161, 163, 151, 161, 158, 155, 147, 155, 155, 161, 164, 154, 152, 158, 161, 157, 167, 168, 152, 163, 156, 164, 162, 152, 155, 162, 152, 160, 161, 160, 171, 152, 175, 159, 165, 154, 150, 153, 150, 158, 140, 158, 148, 157, 148, 156, 163, 176, 160, 171, 159, 159, 160, 163, 159, 164, 162, 169, 161, 156, 165, 160, 162, 160, 163, 160, 156, 155, 163, 159, 152, 164, 156, 165, 160, 157, 165, 156, 156, 160, 162, 159, 158, 155, 172, 157, 150, 175, 159, 162, 161, 163, 163, 163, 158, 161, 161, 159, 165, 160, 153, 163, 160, 158, 168, 159, 162, 162, 168, 157, 159, 158, 159, 158, 158, 155, 161, 164, 153, 160, 163, 155, 165, 153, 162, 159, 161, 156, 151, 161, 159, 166, 154, 163, 163, 161, 157, 157, 153, 157, 156, 165, 155, 161, 159, 164, 160, 152, 161, 159, 164, 167, 163, 155, 159, 159, 168, 151, 156, 146, 158, 169, 154, 149, 162, 168, 169, 154, 159, 156, 156, 157, 154, 153, 167, 156, 162, 161, 155, 162, 157, 174, 162, 172, 175, 165, 157, 161, 161, 159, 164, 187, 154, 160, 160, 154, 174, 159, 149, 162, 163, 156, 157, 163, 162, 165, 159, 158, 151, 160, 166, 162, 162, 161, 164, 154, 165, 155, 158, 160, 157, 146, 154, 161, 156, 167, 158, 165, 162, 158, 152, 167, 157, 166, 150, 156, 153, 167, 159, 160, 162, 150, 166, 153, 151, 164, 157, 157, 165, 157, 166, 163, 154, 155, 154, 156, 155, 147, 154, 149, 168, 155, 168, 158, 164, 154, 173, 176, 143, 162, 151, 164, 154, 157, 162, 158, 157, 147, 158, 163, 176, 171, 145, 166, 161, 164, 153, 158, 154, 157, 159, 154, 154, 158, 158, 170, 159, 158, 162, 158, 154, 163, 161, 160, 157, 159, 163, 163, 163, 158, 162, 161, 152, 159, 158, 153, 172, 156, 156, 159, 160, 160, 155, 160, 155, 154, 153, 159, 167, 160, 156, 157, 158, 164, 165, 156, 160, 158, 159, 163, 154, 158, 153, 160, 158, 160, 161, 157, 164, 164, 160, 158, 165, 163, 161, 163, 157, 157, 161, 161, 158, 155, 158, 159, 160, 160, 165, 161, 157, 164, 160, 161, 163, 158, 156, 154, 156, 158, 157, 162, 162, 159, 159, 154, 157, 159, 160, 157, 165, 158, 160, 157, 161, 159, 160, 158, 164, 156, 160, 157, 162, 160, 160, 160, 157, 159, 161, 157, 160, 173, 161, 166, 163, 155, 158, 163, 162, 162, 165, 162, 157, 154, 155, 161, 166, 164, 155, 157, 151, 161, 154, 160, 159, 157, 158, 160, 158, 160, 155, 161, 158, 161, 158, 158, 157, 158, 157, 158, 151, 155, 160, 164, 171, 159, 157, 165, 153, 160, 164, 151, 159, 154, 159, 160, 161, 157, 167, 155, 163, 161, 154, 152, 159, 164, 157, 164, 156, 160, 155, 164, 162, 163, 162, 163, 163, 164, 162, 165, 160, 159, 159, 156, 151, 158, 163, 157, 160, 159, 162, 166, 162, 160, 159, 155, 157, 156, 158, 156, 162, 159, 158, 164, 164, 160, 161, 156, 160, 153, 162, 159, 154, 161, 166, 158, 161, 163, 156, 156, 165, 155, 159, 165, 159, 156, 161, 157, 155, 157, 161, 160, 159, 169, 156, 157, 162, 164, 162, 153, 167, 159, 154, 162, 161, 161, 162, 161, 149, 161, 163, 167, 155, 163, 159, 159, 163, 161, 162, 163, 159, 163, 158, 162, 160, 159, 160, 165, 161, 161, 160, 163, 156, 158, 158, 159, 164, 159, 161, 157, 157, 160, 158, 163, 152, 165, 159, 152, 166, 159, 159, 165, 158, 165, 162, 161, 152, 158, 160, 157, 155, 158, 163, 158, 149, 155, 163, 185, 157, 161, 159, 161, 154, 160, 158, 162, 175, 168, 156, 161, 155, 152, 157, 153, 157, 158, 165, 164, 162, 159, 160, 154, 159, 159, 158, 162, 157, 161, 158, 164, 159, 163, 154, 161, 172, 161, 158, 160, 155, 160, 161, 160, 163, 159, 162, 163, 164, 158, 154, 153, 159, 169, 160, 160, 159, 154, 161, 162, 156, 157, 158, 161, 160, 164, 159, 164, 165, 164, 157, 155, 163, 159, 160, 153, 156, 165, 164, 162, 160, 159, 163, 155, 162, 157, 160, 162, 163, 153, 167, 150, 163, 160, 150, 177, 162, 157, 176, 162, 160, 164, 162, 161, 161, 161, 159, 160, 160, 164, 165, 158, 164, 153, 158, 155, 157, 158, 158, 159, 157, 154, 158, 158, 163, 157, 158, 160, 158, 157, 157, 154, 159, 162, 161, 154, 158, 159, 165, 163, 157, 157, 168, 161, 166, 163, 161, 157, 156, 158, 150, 163, 164, 160, 158, 155, 167, 155, 162, 163, 163, 160, 165, 156, 162, 162, 159, 151, 164, 159, 156, 169, 162, 159, 157, 158, 158, 160, 159, 161, 154, 161, 152, 159, 149, 154, 146, 146, 162, 157, 146, 145, 148, 161, 172, 164, 158, 149, 153, 156, 146, 154, 170, 157, 160, 164, 173, 154, 141, 159, 155, 159, 166, 155, 158, 167, 160, 152, 160, 155, 176, 159, 147, 157, 153, 157, 156, 144, 148, 168, 167, 155, 136, 156, 168, 160, 143, 158, 152, 178, 168, 193, 152, 166, 150, 171, 161, 167, 150, 162, 157, 158, 159, 146, 156, 146, 155, 154, 171, 161, 157, 168, 151, 164, 154, 155, 163, 154, 143, 162, 156, 146, 157, 165, 155, 164, 165, 153, 167, 156, 162, 152, 164, 188, 156, 146, 157, 163, 158, 165, 159, 148, 157, 141, 162, 162, 164, 153, 165, 153, 157, 160, 185, 147, 147, 168, 154, 160, 156, 157, 145, 146, 156, 157, 165, 158, 163, 162, 160, 163, 147, 149, 157, 153, 164, 156, 156, 143, 167, 153, 180, 151, 166, 149, 168, 163, 157, 158, 148, 161, 162, 154, 154, 165, 151, 154, 168, 162, 164, 157, 161, 150, 172, 173, 153, 151, 152, 152, 161, 156, 162, 156, 153, 165, 168, 157, 152, 154, 159, 161, 165, 159, 161, 155, 143, 159, 174, 156, 161, 174, 159, 159, 155, 163, 144, 167, 162, 169, 153, 157, 173, 168, 153, 150, 143, 159, 163, 147, 159, 159, 155, 171, 150, 155, 160, 154, 135, 159, 175, 167, 152, 155, 155, 144, 164, 154, 155, 162, 164, 153, 167, 145, 166, 154, 157, 157, 151, 170, 157, 156, 157, 159, 158, 177, 152, 160, 145, 160, 157, 170, 159, 145, 162, 165, 164, 161, 156, 167, 166, 155, 169, 152, 162, 163, 151, 166, 163, 157, 161, 165, 171, 167, 166, 156, 162, 174, 151, 162, 154, 176, 155, 162, 161, 161, 172, 153, 171, 166, 160, 173, 164, 146, 157, 149, 159, 153, 149, 158, 152, 148, 154, 154, 164, 159, 163, 158, 166, 157, 154, 138, 153, 150, 155, 150, 169, 141, 170, 166, 148, 160, 178, 167, 164, 155, 159, 154, 159, 161, 172, 138, 182, 157, 161, 149, 158, 163, 156, 171, 174, 145, 164, 166, 164, 159, 167, 154, 166, 157, 150, 166, 168, 155, 167, 151, 154, 157, 142, 158, 165, 167, 147, 157, 166, 162, 150, 159, 145, 177, 154, 152, 154, 169, 156, 155, 162, 163, 158, 157, 160, 159, 162, 155, 161, 161, 157, 174, 162, 152, 166, 143, 151, 154, 162, 166, 143, 152, 170, 151, 158, 167, 157, 152, 164, 150, 155, 137, 164, 162, 162, 172, 158, 159, 151, 158, 169, 149, 153, 146, 161, 166, 169, 154, 145, 160, 145, 159, 153, 154, 143, 164, 165, 147, 156, 152, 156, 163, 155, 142, 157, 161, 154, 154, 166, 154, 152, 144, 148, 172, 160, 154, 153, 159, 162, 138, 166, 153, 157, 156, 137, 161, 143, 169, 153, 157, 159, 162, 198, 158, 154, 169, 145, 159, 167, 165, 164, 145, 165, 161, 167, 153, 155, 170, 158, 155, 147, 166, 166, 171, 148, 181, 157, 165, 154, 171, 153, 155, 166, 157, 166, 164, 159, 155, 152, 182, 156, 155, 158, 163, 158, 162, 160, 162, 157, 168, 161, 155, 159, 185, 165, 158, 165, 141, 161, 166, 161, 156, 159, 149, 161, 150, 164, 156, 154, 159, 170, 162, 169, 156, 161, 150, 161, 162, 159, 147, 159, 157, 159, 161, 167, 164, 164, 162, 161, 166, 163, 159, 161, 160, 159, 163, 157, 166, 164, 156, 156, 160, 164, 160, 163, 178, 153, 159, 161, 161, 159, 156, 178, 159, 159, 157, 153, 163, 163, 163, 164, 154, 160, 153, 158, 169, 156, 157, 155, 158, 169, 162, 156, 169, 155, 159, 164, 170, 166, 163, 157, 161, 163, 157, 155, 168, 170, 164, 160, 156, 168, 151, 154, 170, 163, 157, 154, 158, 164, 167, 157, 161, 154, 166, 159, 151, 142, 159, 144, 156, 168, 153, 161, 163, 159, 153, 160, 153, 155, 157, 156, 162, 156, 158, 157, 160, 152, 160, 164, 159, 161, 166, 165, 158, 143, 159, 157, 157, 156, 163, 148, 158, 166, 161, 162, 162, 167, 159, 161, 160, 159, 164, 165, 152, 162, 158, 157, 162, 166, 157, 153, 156, 165, 152, 163, 156, 157, 163, 161, 161, 142, 148, 154, 160, 164, 165, 167, 168, 165, 158, 155, 160, 163, 159, 160, 154, 161, 147, 154, 156, 168, 149, 160, 168, 166, 157, 161, 166, 169, 165, 152, 171, 171, 154, 160, 167, 164, 143, 153, 160, 158, 156, 161, 160, 161, 164, 155, 161, 167, 160, 150, 158, 155, 161, 160, 159, 157, 158, 160, 159, 164, 157, 157, 152, 158, 178, 150, 167, 155, 157, 166, 158, 157, 163, 165, 160, 147, 154, 175, 161, 150, 163, 158, 156, 158, 150, 167, 160, 159, 163, 155, 158, 155, 163, 172, 167, 166, 161, 162, 162, 163, 158, 156, 153, 163, 163, 156, 160, 167, 155, 159, 161, 155, 158, 152, 144, 155, 162, 163, 155, 165, 153, 165, 165, 169, 163, 172, 165, 160, 162, 161, 166, 160, 160, 164, 164, 156, 157, 166, 160, 165, 164, 153, 160, 180, 156, 157, 155, 159, 164, 158, 172, 156, 167, 173, 161, 155, 158, 172, 158, 161, 155, 159, 150, 177, 154, 169, 166, 145, 170, 160, 153, 158, 159, 161, 160, 161, 160, 162, 157, 157, 160, 158, 146, 165, 170, 165, 154, 164, 152, 168, 157, 156, 178, 144, 156, 168, 165, 156, 167, 168, 161, 161, 157, 168, 150, 157, 163, 174, 157, 162, 160, 159, 160, 166, 149, 155, 157, 158, 149, 144, 160, 156, 159, 164, 165, 158, 157, 161, 168, 161, 155, 162, 159, 152, 164, 162, 160, 152, 166, 161, 157, 161, 158, 162, 154, 153, 162, 159, 155, 163, 148, 161, 162, 163, 161, 160, 169, 161, 154, 154, 158, 162, 158, 165, 155, 150, 155, 160, 162, 155, 150, 168, 163, 158, 176, 150, 147, 163, 154, 158, 160, 157, 157, 159, 166, 162, 164, 153, 168, 159, 164, 159, 157, 159, 161, 161, 159, 158, 161, 164, 164, 164, 159, 135, 165, 166, 159, 153, 169, 158, 160, 171, 152, 160, 158, 164, 163, 151, 162, 158, 153, 167, 157, 159, 163, 161, 161, 159, 164, 155, 154, 157, 154, 156, 170, 163, 167, 161, 156, 163, 162, 155, 160, 159, 156, 158, 163, 159, 158, 161, 162, 157, 163, 161, 161, 161, 154, 164, 160, 154, 155, 162, 162, 162, 163, 165, 154, 155, 161, 160, 165, 163, 165, 158, 161, 159, 165, 159, 165, 158, 150, 158, 162, 166, 162, 157, 161, 160, 154, 157, 154, 160, 160, 157, 163, 169, 159, 157, 162, 160, 157, 150, 161, 158, 155, 160, 156, 161, 164, 160, 154, 159, 162, 162, 162, 159, 154, 159, 154, 169, 158, 158, 160, 161, 157, 163, 155, 159, 161, 156, 165, 155, 157, 158, 161, 157, 159, 159, 157, 161, 161, 157, 160, 152, 165, 159, 162, 165, 169, 162, 161, 159, 158, 154, 160, 162, 158, 164, 165, 160, 160, 161, 158, 157, 160, 162, 158, 164, 159, 166, 151, 157, 163, 153, 167, 159, 161, 167, 160, 160, 159, 161, 166, 163, 168, 159, 162, 161, 161, 155, 158, 156, 153, 157, 157, 157, 156, 164, 160, 159, 157, 153, 150, 163, 158, 157, 153, 164, 159, 171, 170, 159, 158, 160, 159, 156, 158, 160, 162, 158, 158, 163, 161, 157, 159, 161, 149, 160, 165, 165, 153, 159, 160, 161, 160, 160, 154, 156, 160, 155, 160, 161, 161, 165, 158, 159, 156, 157, 153, 155, 158, 160, 159, 159, 161, 152, 157, 158, 154, 159, 156, 157, 164, 158, 162, 162, 151, 157, 159, 152, 162, 163, 160, 159, 161, 162, 161, 160, 163, 158, 157, 157, 160, 160, 161, 160, 162, 164, 165, 156, 159, 163, 158, 153, 155, 156, 164, 163, 158, 154, 155, 161, 153, 159, 162, 159, 156, 162, 157, 159, 157, 156, 171, 170, 155, 163, 148, 158, 162, 163, 162, 158, 158, 153, 162, 157, 157, 158, 159, 165, 158, 160, 165, 158, 159, 162, 161, 155, 162, 159, 159, 162, 162, 156, 160, 160, 166, 160, 159, 161, 159, 160, 160, 155, 163, 163, 156, 156, 156, 155, 156, 156, 150, 158, 169, 162, 164, 158, 160, 155, 159, 164, 157, 160, 159, 166, 164, 156, 158, 166, 171, 159, 158, 161, 159, 156, 158, 152, 155, 160, 163, 164, 165, 159, 153, 153, 149, 160, 160, 163, 159, 158, 159, 164, 168, 166, 160, 160, 164, 157, 157, 161, 164, 156, 162, 161, 152, 163, 158, 158, 158, 157, 159, 164, 163, 159, 155, 169, 158, 162, 166, 162, 164, 160, 159, 167, 167, 164, 152, 160, 161, 152, 162, 158, 166, 166, 155, 161, 155, 161, 155, 159, 157, 153, 158, 155, 161, 157, 162, 162, 155, 169, 149, 160, 164, 163, 156, 162, 179, 161, 164, 160, 161, 154, 159, 145, 159, 160, 159, 161, 160, 160, 152, 158, 155, 160, 157, 163, 163, 161, 156, 154, 158, 157, 169, 162, 157, 160, 153, 160, 161, 163, 156, 163, 163, 153, 163, 148, 159, 166, 162, 160, 168, 160, 159, 154, 159, 162, 157, 161, 162, 165, 164, 155, 163, 163, 155, 163, 163, 154, 160, 156, 158, 153, 152, 168, 161, 163, 156, 163, 163, 164, 159, 159, 155, 163, 155, 150, 151, 157, 161, 156, 153, 159, 155, 167, 162, 166, 180, 167, 152, 156, 153, 154, 156, 155, 166, 149, 171, 162, 160, 154, 160, 160, 160, 160, 157, 156, 165, 169, 163, 158, 157, 157, 162, 169, 166, 157, 160, 154, 159, 158, 150, 160, 159, 168, 162, 171, 155, 158, 164, 161, 160, 159, 171, 164, 163, 153, 164, 173, 153, 163, 168, 165, 155, 172, 159, 151, 161, 168, 152, 154, 161, 155, 160, 157, 156, 153, 153, 149, 158, 156, 157, 166, 159, 167, 181, 163, 153, 157, 164, 164, 159, 158, 158, 158, 161, 166, 158, 151, 158, 148, 156, 160, 165, 162, 163, 166, 166, 155, 163, 157, 157, 151, 158, 163, 162, 160, 157, 160, 160, 150, 159, 157, 157, 159, 151, 164, 159, 167, 165, 165, 154, 156, 156, 153, 169, 165, 159, 161, 156, 152, 153, 171, 162, 153, 177, 158, 160, 166, 156, 164, 159, 141, 160, 156, 153, 163, 162, 169, 160, 159, 160, 173, 157, 173, 156, 155, 157, 168, 168, 164, 163, 159, 153, 163, 161, 178, 155, 166, 156, 158, 152, 162, 163, 155, 151, 161, 157, 156, 164, 162, 162, 160, 159, 165, 161, 159, 156, 157, 162, 174, 158, 158, 156, 159, 158, 157, 161, 166, 157, 156, 158, 153, 157, 156, 155, 163, 155, 157, 165, 162, 157, 174, 158, 159, 162, 152, 160, 166, 154, 167, 152, 151, 150, 150, 159, 164, 159, 162, 155, 155, 156, 158, 164, 166, 152, 159, 165, 160, 155, 155, 169, 161, 161, 159, 156, 160, 159, 167, 158, 157, 166, 170, 173, 154, 159, 180, 162, 183, 153, 160, 163, 156, 149, 165, 164, 159, 177, 155, 164, 161, 158, 160, 165, 158, 159, 167, 158, 157, 156, 162, 151, 164, 164, 169, 159, 164, 161, 159, 161, 156, 160, 158, 156, 158, 170, 161, 159, 164, 146, 154, 171, 157, 160, 155, 159, 167, 159, 163, 162, 156, 178, 171, 154, 162, 157, 168, 158, 168, 158, 152, 168, 155, 164, 165, 149, 155, 186, 166, 158, 158, 152, 160, 160, 155, 157, 160, 159, 163, 164, 156, 163, 169, 170, 160, 156, 156, 162, 163, 162, 165, 169, 155, 143, 158, 159, 176, 161, 155, 157, 169, 153, 182, 147, 169, 153, 157, 162, 163, 166, 158, 157, 169, 165, 158, 166, 163, 167, 158, 160, 164, 158, 165, 152, 157, 169, 158, 157, 164, 160, 163, 163, 160, 162, 166, 159, 158, 158, 160, 157, 146, 154, 165, 165, 153, 158, 150, 169, 159, 165, 154, 170, 167, 151, 154, 164, 149, 160, 164, 161, 163, 162, 155, 153, 152, 162, 169, 175, 156, 156, 158, 156, 163, 157, 158, 156, 154, 160, 164, 160, 152, 158, 155, 166, 166, 162, 162, 150, 158, 163, 157, 151, 162, 162, 164, 153, 165, 158, 167, 159, 155, 156, 159, 156, 163, 156, 157, 173, 161, 170, 158, 154, 159, 166, 166, 163, 160, 158, 163, 163, 159, 156, 159, 165, 154, 155, 155, 164, 151, 167, 159, 158, 161, 166, 149, 154, 144, 164, 162, 163, 171, 158, 160, 148, 164, 160, 163, 164, 171, 161, 160, 159, 156, 158, 155, 149, 149, 165, 164, 154, 162, 155, 157, 167, 164, 164, 169, 165, 161, 157, 159, 162, 144, 173, 156, 159, 156, 136, 157, 157, 156, 165, 150, 153, 162, 163, 162, 162, 147, 159, 168, 172, 163, 159, 153, 159, 164, 161, 147, 155, 165, 166, 157, 163, 159, 161, 160, 152, 157, 156, 155, 155, 160, 162, 178, 155, 153, 163, 161, 139, 157, 159, 164, 161, 155, 153, 164, 156, 157, 165, 153, 152, 159, 166, 161, 152, 149, 161, 157, 150, 148, 162, 189, 170, 160, 162, 159, 152, 160, 158, 154, 177, 168, 167, 165, 164, 162, 154, 163, 156, 138, 160, 169, 153, 164, 158, 163, 161, 161, 161, 156, 162, 159, 156, 163, 159, 156, 172, 163, 162, 166, 178, 173, 156, 157, 162, 156, 150, 159, 170, 168, 161, 158, 157, 154, 168, 158, 155, 166, 156, 169, 161, 156, 154, 159, 160, 162, 160, 156, 147, 167, 163, 161, 162, 162, 156, 156, 167, 178, 166, 164, 157, 158, 157, 153, 156, 148, 153, 156, 164, 155, 153, 158, 160, 170, 163, 160, 156, 142, 165, 164, 161, 164, 159, 166, 161, 167, 164, 159, 160, 165, 170, 166, 156, 178, 173, 156, 157, 154, 155, 165, 159, 158, 151, 161, 159, 150, 169, 163, 156, 158, 167, 153, 158, 162, 158, 159, 154, 162, 162, 163, 155, 168, 162, 162, 164, 141, 168, 154, 155, 161, 161, 157, 164, 156, 158, 154, 164, 158, 161, 157, 189, 165, 154, 150, 157, 152, 163, 166, 160, 151, 158, 160, 156, 160, 164, 165, 174, 161, 163, 147, 164, 161, 151, 160, 157, 156, 168, 162, 158, 159, 166, 164, 156, 162, 155, 165, 162, 158, 154, 160, 148, 155, 163, 164, 159, 156, 152, 160, 161, 155, 154, 163, 157, 169, 163, 157, 172, 161, 155, 164, 152, 166, 153, 155, 162, 159, 160, 172, 165, 152, 157, 156, 162, 164, 160, 159, 163, 168, 166, 163, 158, 164, 153, 165, 157, 162, 163, 165, 153, 169, 161, 154, 159, 160, 156, 166, 158, 161, 157, 162, 157, 161, 166, 132, 166, 160, 166, 152, 171, 159, 165, 166, 156, 157, 169, 162, 161, 163, 162, 154, 164, 162, 159, 161, 162, 156, 158, 152, 161, 163, 163, 153, 157, 157, 159, 158, 146, 157, 156, 152, 155, 144, 163, 159, 164, 166, 157, 170, 162, 169, 152, 153, 165, 158, 168, 161, 161, 159, 160, 156, 167, 162, 172, 163, 165, 158, 163, 133, 159, 157, 153, 147, 160, 166, 159, 155, 166, 157, 156, 168, 162, 158, 162, 158, 162, 165, 160, 158, 164, 158, 153, 157, 160, 162, 155, 156, 149, 150, 166, 166, 158, 166, 162, 159, 163, 167, 162, 153, 162, 158, 182, 158, 154, 150, 156, 161, 159, 163, 162, 168, 153, 164, 161, 165, 165, 164, 163, 149, 159, 153, 158, 152, 165, 165, 159, 155, 154, 164, 161, 154, 157, 155, 156, 157, 154, 155, 159, 161, 170, 157, 166, 158, 158, 157, 155, 158, 152, 159, 161, 158, 160, 164, 160, 163, 158, 147, 156, 160, 169, 164, 162, 168, 157, 151, 156, 153, 163, 159, 159, 166, 147, 159, 175, 173, 159, 160, 161, 163, 162, 158, 156, 161, 169, 158, 158, 146, 158, 158, 151, 150, 155, 156, 148, 161, 158, 165, 170, 176, 152, 158, 158, 160, 159, 162, 161, 156, 154, 153, 160, 165, 165, 167, 148, 158, 158, 154, 164, 153, 172, 165, 161, 160, 149, 165, 160, 161, 157, 177, 150, 156, 154, 156, 169, 156, 165, 157, 154, 162, 163, 155, 158, 157, 158, 164, 163, 170, 149, 145, 157, 144, 160, 155, 167, 148, 160, 164, 160, 163, 155, 164, 154, 157, 151, 152, 156, 161, 154, 156, 152, 162, 155, 153, 169, 159, 152, 164, 167, 153, 167, 157, 158, 146, 167, 155, 156, 152, 167, 173, 167, 169, 159, 164, 171, 168, 160, 158, 152, 159, 149, 171, 154, 149, 163, 164, 154, 165, 158, 174, 146, 156, 154, 154, 157, 172, 160, 169, 158, 168, 171, 160, 177, 159, 163, 138, 156, 170, 160, 171, 162, 162, 161, 163, 168, 157, 153, 157, 157, 156, 156, 156, 154, 166, 164, 152, 166, 147, 155, 153, 161, 163, 158, 155, 166, 145, 160, 163, 158, 158, 161, 156, 157, 172, 152, 167, 150, 159, 153, 154, 162, 165, 156, 153, 176, 160, 163, 155, 162, 163, 163, 156, 159, 157, 160, 174, 160, 156, 165, 162, 158, 165, 171, 148, 160, 159, 149, 162, 164, 154, 170, 153, 145, 153, 160, 155, 153, 158, 150, 158, 155, 160, 155, 159, 158, 167, 152, 155, 168, 163, 162, 164, 157, 161, 164, 153, 160, 161, 162, 161, 152, 160, 161, 158, 170, 159, 153, 169, 163, 156, 162, 160, 163, 161, 148, 158, 159, 156, 158, 165, 158, 159, 166, 170, 161, 166, 154, 162, 157, 167, 154, 153, 159, 157, 151, 156, 159, 148, 152, 154, 160, 153, 161, 156, 170, 153, 159, 158, 161, 152, 166, 149, 159, 155, 163, 148, 160, 161, 163, 154, 163, 154, 150, 154, 159, 158, 168, 162, 166, 158, 158, 168, 149, 158, 158, 158, 159, 156, 166, 167, 156, 155, 164, 157, 166, 154, 155, 160, 169, 162, 172, 164, 152, 161, 152, 168, 157, 162, 168, 161, 164, 162, 162, 165, 148, 163, 162, 161, 161, 161, 158, 162, 154, 170, 173, 153, 160, 162, 164, 165, 160, 167, 150, 157, 154, 167, 166, 159, 159, 158, 159, 158, 158, 154, 152, 151, 161, 156, 156, 145, 155, 155, 160, 147, 160, 156, 158, 151, 162, 154, 157, 158, 150, 160, 157, 162, 157, 167, 151, 169, 164, 155, 164, 155, 159, 160, 159, 148, 160, 152, 161, 158, 162, 161, 169, 161, 162, 161, 161, 150, 155, 159, 169, 165, 167, 161, 145, 154, 167, 158, 147, 152, 172, 154, 174, 161, 158, 155, 168, 153, 158, 160, 172, 168, 163, 156, 161, 157, 162, 158, 161, 150, 166, 162, 164, 167, 161, 152, 165, 159, 155, 163, 165, 155, 163, 166, 163, 158, 155, 156, 158, 191, 138, 169, 161, 169, 159, 155, 172, 153, 161, 157, 167, 160, 163, 157, 166, 169, 161, 151, 154, 161, 162, 163, 152, 169, 161, 159, 163, 156, 163, 159, 166, 157, 152, 163, 165, 162, 153, 157, 164, 149, 154, 158, 159, 169, 164, 164, 159, 148, 161, 164, 166, 165, 152, 162, 170, 159, 162, 170, 156, 160, 168, 156, 163, 159, 167, 154, 163, 157, 162, 160, 154, 158, 154, 171, 164, 155, 162, 158, 162, 154, 159, 160, 167, 158, 153, 159, 159, 160, 154, 155, 156, 165, 161, 159, 159, 159, 163, 148, 203, 155, 153, 156, 158, 154, 164, 169, 161, 167, 162, 161, 167, 168, 171, 163, 163, 162, 159, 139, 158, 163, 160, 162, 172, 158, 162, 166, 159, 158, 162, 159, 150, 165, 160, 161, 166, 164, 165, 156, 164, 148, 153, 172, 153, 162, 149, 157, 163, 159, 154, 163, 161, 165, 157, 159, 162, 165, 157, 160, 159, 157, 166, 157, 150, 163, 158, 156, 167, 160, 166, 136, 162, 163, 168, 168, 158, 151, 157, 165, 155, 164, 153, 159, 159, 167, 162, 163, 164, 163, 155, 152, 157, 160, 169, 162, 161, 156, 172, 172, 157, 162, 177, 151, 156, 158, 160, 152, 157, 158, 180, 166, 161, 157, 165, 152, 158, 166, 160, 156, 160, 161, 165, 152, 160, 163, 159, 162, 158, 159, 162, 156, 164, 149, 161, 156, 158, 161, 166, 155, 159, 164, 164, 159, 166, 157, 161, 155, 161, 161, 160, 148, 162, 167, 163, 166, 155, 171, 158, 162, 149, 160, 163, 165, 162, 163, 161, 155, 160, 170, 143, 158, 157, 156, 161, 164, 169, 165, 154, 158, 164, 163, 161, 150, 159, 159, 160, 161, 185, 158, 159, 162, 156, 157, 165, 163, 158, 156, 157, 163, 158, 165, 160, 171, 158, 154, 154, 170, 173, 150, 159, 160, 161, 159, 162, 146, 146, 170, 161, 166, 167, 162, 163, 158, 166, 170, 153, 160, 161, 160, 163, 166, 147, 160, 164, 152, 161, 152, 164, 137, 149, 157, 158, 160, 160, 153, 166, 163, 153, 146, 157, 170, 148, 159, 168, 178, 157, 162, 161, 157, 156, 158, 167, 156, 162, 159, 153, 156, 159, 161, 166, 164, 158, 146, 168, 156, 157, 160, 153, 159, 166, 166, 164, 158, 160, 156, 176, 163, 161, 157, 160, 157, 150, 155, 150, 166, 165, 164, 167, 157, 158, 166, 169, 156, 159, 163, 158, 154, 170, 163, 161, 164, 158, 153, 163, 132, 160, 172, 145, 166, 163, 194, 156, 158, 186, 162, 164, 180, 151, 166, 162, 149, 168, 172, 173, 168, 154, 155, 157, 157, 164, 167, 155, 166, 161, 163, 158, 164, 160, 160, 156, 164, 161, 169, 164, 162, 146, 158, 169, 164, 163, 163, 148, 161, 152, 155, 157, 146, 157, 164, 156, 152, 154, 163, 162, 164, 163, 162, 155, 161, 159, 154, 160, 158, 148, 164, 153, 162, 167, 148, 166, 157, 174, 159, 168, 154, 161, 157, 159, 160, 156, 163, 164, 156, 160, 155, 158, 155, 165, 156, 161, 153, 157, 160, 156, 158, 161, 160, 160, 164, 168, 163, 161, 155, 162, 162, 154, 139, 165, 161, 170, 175, 158, 155, 159, 157, 163, 158, 161, 153, 161, 163, 157, 162, 168, 169, 148, 164, 161, 163, 168, 163, 158, 161, 165, 163, 161, 154, 159, 165, 157, 160, 161, 161, 159, 139, 158, 168, 162, 156, 157, 162, 161, 158, 162, 161, 156, 154, 161, 157, 159, 152, 162, 158, 173, 165, 159, 156, 146, 156, 155, 166, 156, 166, 161, 166, 168, 140, 164, 161, 161, 158, 158, 163, 166, 158, 160, 160, 160, 172, 163, 158, 167, 154, 152, 141, 156, 164, 163, 171, 160, 153, 148, 160, 169, 164, 159, 153, 158, 145, 155, 167, 169, 166, 168, 154, 157, 164, 171, 154, 165, 159, 156, 165, 171, 138, 154, 159, 169, 157, 155, 167, 155, 160, 156, 159, 160, 157, 161, 161, 157, 160, 163, 168, 153, 155, 162, 162, 161, 160, 152, 167, 158, 159, 162, 166, 175, 162, 153, 170, 156, 158, 172, 159, 154, 160, 164, 147, 154, 141, 162, 165, 157, 158, 164, 167, 177, 151, 148, 165, 162, 166, 162, 151, 159, 158, 157, 164, 157, 153, 154, 149, 159, 154, 167, 153, 155, 160, 162, 167, 159, 163, 167, 190, 168, 168, 164, 155, 157, 161, 150, 163, 162, 157, 155, 159, 164, 162, 169, 161, 158, 155, 162, 156, 167, 160, 168, 172, 159, 158, 158, 162, 159, 164, 159, 159, 154, 152, 158, 164, 156, 163, 163, 161, 145, 172, 162, 162, 158, 155, 164, 165, 155, 159, 158, 170, 164, 159, 162, 157, 154, 160, 146, 163, 164, 166, 164, 162, 164, 174, 165, 159, 162, 155, 160, 153, 163, 158, 158, 160, 167, 155, 161, 166, 156, 156, 164, 188, 157, 151, 165, 155, 156, 165, 164, 160, 164, 154, 161, 158, 158, 156, 160, 160, 170, 160, 152, 167, 155, 163, 153, 156, 162, 169, 146, 152, 152, 156, 155, 164, 164, 160, 168, 158, 161, 171, 158, 138, 165, 152, 144, 164, 162, 153, 162, 162, 155, 155, 161, 151, 158, 168, 153, 161, 173, 157, 163, 160, 156, 170, 164, 159, 164, 158, 172, 163, 162, 161, 166, 154, 162, 170, 153, 163, 149, 154, 161, 158, 157, 164, 162, 156, 164, 155, 163, 162, 159, 173, 152, 159, 153, 171, 160, 160, 162, 162, 154, 168, 159, 160, 155, 153, 163, 148, 150, 180, 143, 151, 149, 159, 160, 161, 149, 163, 159, 161, 162, 162, 152, 158, 153, 155, 161, 159, 163, 172, 168, 156, 173, 155, 156, 163, 154, 166, 165, 154, 152, 155, 161, 165, 172, 160, 166, 157, 153, 157, 156, 160, 164, 154, 159, 156, 153, 157, 156, 158, 156, 151, 162, 163, 165, 159, 150, 158, 153, 163, 156, 153, 178, 155, 155, 163, 159, 157, 154, 172, 163, 155, 161, 161, 161, 156, 170, 161, 163, 162, 156, 146, 155, 164, 156, 163, 159, 158, 159, 158, 160, 156, 161, 162, 163, 163, 158, 148, 153, 172, 161, 160, 156, 165, 160, 154, 153, 167, 161, 161, 160, 159, 160, 158, 160, 160, 167, 158, 164, 154, 161, 159, 154, 161, 156, 161, 162, 163, 159, 160, 161, 157, 160, 160, 163, 155, 172, 158, 158, 163, 163, 156, 160, 157, 158, 163, 162, 159, 162, 156, 163, 173, 157, 160, 162, 161, 156, 158, 164, 163, 169, 156, 156, 162, 160, 164, 164, 163, 159, 158, 161, 158, 159, 156, 159, 159, 159, 163, 162, 164, 159, 163, 155, 159, 154, 166, 159, 156, 164, 160, 162, 157, 159, 152, 153, 159, 160, 158, 156, 154, 165, 163, 166, 156, 163, 135, 164, 154, 160, 158, 157, 164, 160, 160, 157, 164, 159, 160, 165, 159, 160, 162, 157, 167, 165, 160, 155, 158, 167, 161, 156, 161, 156, 165, 161, 158, 160, 158, 161, 158, 158, 159, 160, 161, 157, 159, 164, 160, 159, 161, 161, 158, 164, 160, 159, 155, 160, 159, 165, 160, 165, 155, 162, 163, 159, 190, 156, 159, 156, 164, 156, 159, 160, 162, 160, 162, 164, 156, 160, 161, 155, 162, 160, 161, 155, 159, 158, 160, 161, 155, 163, 160, 164, 156, 161, 161, 163, 167, 159, 161, 159, 163, 158, 163, 162, 157, 150, 160, 157, 163, 160, 159, 161, 163, 161, 165, 162, 162, 158, 161, 173, 162, 157, 167, 163, 164, 161, 157, 159, 162, 166, 160, 157, 160, 156, 161, 161, 142, 161, 162, 163, 158, 164, 157, 175, 157, 159, 163, 157, 162, 165, 161, 166, 157, 159, 160, 163, 161, 159, 161, 164, 157, 158, 160, 148, 155, 163, 161, 156, 132, 160, 161, 163, 153, 159, 164, 158, 163, 159, 158, 161, 156, 160, 176, 159, 157, 162, 158, 162, 156, 157, 158, 161, 184, 163, 156, 160, 164, 160, 140, 159, 158, 155, 159, 149, 157, 159, 165, 160, 155, 158, 161, 162, 157, 160, 160, 159, 162, 161, 163, 158, 161, 160, 159, 152, 159, 158, 171, 160, 157, 161, 164, 163, 154, 161, 161, 165, 161, 156, 159, 161, 156, 162, 162, 160, 158, 163, 159, 159, 158, 156, 162, 154, 160, 160, 160, 159, 162, 163, 159, 167, 161, 159, 160, 159, 158, 157, 161, 161, 156, 156, 162, 158, 157, 161, 161, 168, 160, 163, 161, 162, 157, 157, 156, 157, 162, 152, 168, 165, 159, 157, 158, 163, 157, 162, 157, 160, 164, 161, 158, 153, 161, 158, 158, 166, 158, 158, 157, 161, 159, 157, 150, 158, 163, 155, 157, 162, 159, 178, 159, 162, 164, 161, 160, 151, 160, 158, 160, 163, 161, 159, 187, 162, 152, 160, 161, 159, 162, 158, 160, 162, 157, 161, 166, 164, 160, 161, 161, 159, 161, 148, 162, 168, 161, 160, 157, 158, 160, 160, 164, 158, 156, 160, 165, 163, 164, 162, 164, 155, 158, 161, 155, 159, 159, 153, 160, 160, 159, 156, 159, 156, 161, 164, 162, 155, 164, 155, 160, 161, 167, 160, 160, 167, 160, 158, 157, 163, 160, 160, 155, 163, 156, 157, 161, 154, 153, 160, 161, 149, 170, 153, 155, 154, 158, 160, 151, 152, 152, 153, 176, 160, 154, 153, 151, 165, 157, 168, 164, 166, 158, 164, 174, 161, 158, 161, 160, 163, 153, 161, 168, 153, 155, 164, 163, 157, 165, 160, 146, 166, 164, 171, 148, 164, 159, 161, 160, 172, 162, 158, 166, 155, 170, 156, 161, 160, 162, 155, 162, 174, 170, 167, 148, 174, 155, 165, 158, 173, 153, 163, 155, 149, 161, 158, 154, 157, 158, 164, 158, 165, 168, 162, 155, 155, 162, 168, 155, 166, 167, 166, 153, 161, 153, 159, 156, 160, 161, 165, 161, 165, 154, 156, 158, 159, 171, 159, 148, 182, 170, 162, 160, 165, 160, 161, 169, 158, 154, 170, 167, 151, 149, 164, 153, 154, 170, 161, 161, 159, 163, 219, 147, 165, 158, 163, 156, 145, 159, 156, 167, 154, 160, 167, 155, 160, 161, 154, 172, 164, 145, 158, 166, 176, 148, 155, 161, 161, 153, 148, 163, 151, 154, 150, 158, 163, 171, 164, 164, 153, 152, 161, 161, 161, 156, 158, 168, 150, 182, 165, 162, 160, 165, 161, 156, 155, 160, 152, 160, 156, 160, 163, 155, 150, 149, 160, 167, 154, 164, 157, 158, 153, 162, 204, 160, 156, 161, 180, 164, 161, 165, 153, 148, 163, 162, 157, 165, 161, 162, 152, 162, 161, 154, 166, 161, 154, 164, 165, 159, 157, 156, 153, 152, 167, 151, 161, 151, 165, 149, 166, 154, 166, 160, 165, 162, 159, 170, 161, 154, 172, 164, 159, 162, 158, 155, 156, 162, 149, 162, 160, 152, 172, 166, 158, 157, 157, 152, 152, 174, 158, 164, 165, 150, 168, 168, 156, 168, 155, 154, 149, 164, 158, 162, 158, 150, 152, 161, 162, 152, 172, 161, 159, 147, 162, 155, 147, 154, 161, 150, 155, 155, 162, 160, 151, 157, 160, 156, 161, 164, 155, 156, 172, 156, 157, 156, 155, 138, 168, 172, 160, 169, 153, 148, 162, 163, 164, 159, 159, 157, 158, 161, 157, 156, 159, 160, 157, 174, 163, 164, 142, 153, 162, 153, 157, 169, 164, 164, 154, 150, 156, 166, 159, 163, 157, 166, 155, 155, 155, 147, 149, 167, 160, 158, 166, 168, 153, 160, 158, 157, 158, 168, 150, 164, 163, 151, 159, 154, 159, 163, 164, 136, 168, 156, 148, 162, 151, 158, 160, 156, 157, 162, 151, 162, 161, 160, 179, 173, 160, 157, 163, 164, 158, 159, 152, 161, 156, 168, 153, 161, 160, 158, 160, 153, 162, 153, 165, 154, 156, 161, 159, 163, 162, 147, 132, 181, 147, 163, 155, 155, 159, 156, 146, 164, 159, 157, 171, 170, 163, 164, 166, 169, 156, 160, 162, 163, 155, 150, 158, 166, 158, 165, 157, 162, 157, 163, 161, 153, 165, 156, 159, 164, 158, 147, 161, 163, 157, 166, 152, 163, 161, 157, 153, 165, 158, 165, 160, 175, 160, 151, 154, 157, 144, 163, 156, 162, 164, 170, 154, 147, 159, 134, 159, 150, 165, 167, 162, 146, 127, 157, 161, 166, 151, 172, 154, 163, 167, 163, 158, 163, 158, 163, 166, 157, 157, 161, 154, 156, 160, 160, 165, 172, 160, 154, 162, 167, 163, 166, 157, 160, 159, 159, 159, 163, 155, 155, 157, 158, 166, 163, 170, 163, 165, 161, 161, 167, 160, 166, 162, 163, 158, 164, 160, 158, 167, 165, 168, 162, 162, 161, 174, 161, 163, 163, 156, 158, 153, 158, 145, 162, 164, 160, 162, 161, 156, 165, 156, 158, 159, 152, 166, 156, 163, 162, 160, 158, 161, 164, 156, 159, 158, 159, 157, 160, 167, 156, 158, 160, 163, 156, 150, 158, 163, 154, 156, 161, 157, 153, 160, 161, 160, 162, 159, 159, 166, 169, 159, 167, 167, 169, 156, 160, 163, 162, 160, 155, 158, 169, 161, 162, 163, 157, 158, 161, 163, 163, 166, 155, 166, 165, 158, 165, 165, 158, 163, 156, 159, 157, 169, 157, 160, 162, 155, 158, 164, 154, 159, 158, 153, 164, 162, 155, 157, 159, 160, 160, 166, 160, 160, 160, 159, 163, 161, 157, 157, 160, 154, 156, 172, 158, 163, 160, 154, 167, 158, 162, 147, 164, 166, 158, 151, 162, 153, 163, 171, 157, 158, 161, 159, 161, 150, 164, 162, 155, 155, 154, 154, 155, 165, 162, 160, 161, 158, 166, 159, 171, 166, 152, 159, 158, 161, 160, 154, 156, 158, 154, 162, 165, 156, 163, 158, 160, 154, 152, 169, 163, 158, 149, 161, 154, 156, 160, 160, 162, 158, 158, 151, 150, 158, 150, 158, 158, 156, 159, 160, 159, 155, 159, 163, 160, 167, 166, 159, 159, 158, 163, 165, 158, 148, 161, 164, 160, 167, 152, 160, 161, 165, 153, 157, 156, 166, 166, 157, 162, 151, 155, 158, 163, 158, 163, 164, 160, 162, 161, 159, 163, 166, 153, 161, 154, 160, 153, 162, 158, 156, 157, 157, 161, 156, 160, 156, 159, 156, 164, 161, 161, 161, 159, 155, 159, 156, 165, 169, 155, 159, 161, 152, 162, 161, 167, 161, 159, 159, 157, 156, 160, 159, 160, 161, 164, 164, 157, 162, 160, 151, 157, 162, 165, 165, 165, 162, 167, 149, 156, 154, 154, 155, 161, 155, 169, 156, 151, 166, 159, 164, 158, 156, 162, 158, 160, 160, 158, 164, 161, 157, 162, 155, 167, 147, 157, 155, 158, 155, 163, 165, 158, 158, 158, 170, 165, 154, 154, 159, 170, 157, 164, 154, 153, 153, 162, 161, 166, 156, 152, 158, 160, 155, 163, 166, 162, 160, 155, 158, 162, 158, 156, 158, 162, 163, 160, 167, 152, 160, 161, 160, 156, 173, 160, 164, 154, 154, 165, 160, 160, 153, 162, 163, 157, 161, 158, 166, 158, 166, 164, 161, 170, 162, 164, 159, 161, 151, 154, 162, 167, 161, 162, 161, 161, 165, 160, 160, 162, 152, 159, 155, 161, 154, 154, 161, 161, 159, 164, 163, 161, 160, 159, 160, 162, 155, 165, 155, 165, 152, 166, 161, 162, 150, 165, 162, 157, 157, 160, 157, 156, 173, 165, 163, 157, 153, 160, 152, 156, 165, 164, 149, 169, 154, 157, 164, 162, 159, 169, 164, 162, 164, 157, 159, 157, 165, 154, 158, 194, 154, 158, 167, 164, 160, 157, 159, 149, 169, 162, 166, 158, 151, 153, 175, 165, 157, 166, 156, 161, 149, 154, 160, 162, 160, 172, 143, 158, 153, 162, 157, 163, 174, 160, 160, 174, 157, 151, 162, 159, 161, 156, 169, 163, 159, 164, 160, 159, 162, 157, 149, 183, 154, 157, 163, 158, 159, 156, 151, 158, 152, 166, 155, 171, 170, 159, 166, 151, 159, 158, 155, 153, 153, 163, 167, 151, 171, 167, 173, 161, 175, 163, 159, 170, 159, 159, 156, 155, 155, 174, 159, 164, 164, 158, 160, 164, 156, 163, 159, 160, 159, 162, 168, 161, 148, 161, 158, 156, 152, 145, 153, 165, 161, 165, 158, 160, 162, 165, 157, 155, 164, 149, 154, 157, 161, 154, 164, 154, 164, 165, 154, 159, 160, 164, 161, 161, 162, 157, 159, 173, 157, 157, 150, 158, 154, 154, 158, 157, 161, 159, 164, 162, 163, 175, 153, 159, 161, 145, 151, 163, 156, 159, 162, 157, 160, 159, 156, 150, 153, 161, 162, 153, 169, 157, 162, 153, 167, 171, 163, 151, 146, 159, 167, 148, 156, 171, 166, 150, 166, 155, 150, 160, 151, 154, 160, 149, 155, 152, 167, 162, 154, 149, 163, 162, 156, 158, 166, 165, 166, 159, 162, 170, 154, 163, 166, 157, 170, 162, 155, 153, 163, 166, 157, 170, 158, 161, 164, 159, 164, 151, 163, 169, 149, 148, 162, 160, 156, 173, 159, 156, 157, 163, 164, 166, 165, 162, 165, 158, 151, 158, 165, 167, 163, 161, 166, 158, 158, 147, 171, 164, 151, 157, 161, 158, 167, 173, 174, 166, 161, 156, 147, 156, 158, 156, 151, 154, 164, 155, 160, 154, 162, 145, 162, 151, 151, 163, 153, 162, 160, 159, 164, 148, 164, 165, 171, 158, 156, 161, 161, 162, 168, 164, 157, 159, 154, 152, 156, 158, 156, 157, 156, 154, 163, 165, 156, 160, 181, 154, 168, 159, 163, 164, 161, 162, 167, 165, 157, 155, 173, 159, 160, 157, 164, 157, 159, 152, 160, 163, 164, 161, 154, 160, 150, 155, 160, 163, 165, 160, 163, 152, 155, 159, 163, 158, 152, 161, 172, 160, 157, 158, 161, 148, 161, 161, 151, 155, 178, 155, 170, 166, 169, 163, 157, 168, 161, 158, 161, 186, 156, 169, 168, 162, 161, 151, 160, 156, 156, 151, 155, 165, 155, 157, 157, 176, 158, 173, 159, 161, 157, 158, 157, 152, 160, 157, 164, 163, 158, 171, 158, 156, 152, 160, 167, 166, 154, 159, 159, 162, 159, 164, 156, 156, 150, 155, 159, 161, 164, 160, 158, 159, 174, 173, 147, 164, 164, 167, 158, 159, 158, 162, 168, 159, 162, 157, 164, 156, 172, 169, 167, 168, 167, 160, 163, 165, 166, 165, 161, 155, 151, 160, 164, 167, 164, 158, 164, 155, 154, 168, 165, 163, 151, 160, 163, 153, 145, 155, 158, 169, 154, 164, 153, 161, 163, 157, 150, 166, 158, 158, 150, 158, 150, 157, 162, 167, 163, 155, 166, 159, 159, 154, 169, 154, 160, 164, 159, 158, 152, 160, 146, 157, 157, 162, 159, 163, 154, 146, 160, 163, 162, 157, 157, 167, 161, 154, 177, 162, 153, 155, 163, 159, 164, 161, 158, 152, 157, 158, 155, 160, 166, 162, 157, 163, 158, 149, 157, 169, 151, 158, 169, 149, 158, 164, 157, 161, 161, 160, 158, 162, 153, 163, 159, 160, 172, 161, 160, 162, 164, 155, 172, 164, 158, 168, 156, 164, 156, 161, 157, 159, 169, 155, 156, 154, 159, 160, 154, 178, 151, 152, 160, 159, 166, 165, 159, 162, 156, 160, 156, 164, 171, 163, 159, 150, 151, 162, 156, 156, 166, 160, 162, 159, 163, 155, 161, 168, 161, 149, 151, 162, 160, 158, 153, 157, 164, 166, 156, 166, 156, 167, 155, 167, 166, 165, 159, 167, 155, 161, 155, 162, 158, 159, 158, 160, 164, 168, 144, 158, 166, 165, 161, 155, 158, 158, 158, 153, 155, 154, 153, 159, 160, 158, 159, 140, 173, 171, 178, 172, 154, 159, 157, 156, 157, 171, 156, 167, 163, 164, 158, 162, 159, 157, 149, 158, 161, 161, 160, 162, 168, 161, 157, 168, 145, 162, 158, 162, 165, 163, 155, 164, 162, 156, 163, 162, 155, 165, 155, 156, 161, 160, 170, 159, 165, 160, 172, 158, 157, 158, 157, 151, 158, 156, 161, 169, 162, 156, 164, 158, 162, 155, 153, 154, 162, 156, 156, 165, 162, 163, 163, 167, 155, 163, 159, 157, 164, 161, 168, 174, 152, 163, 149, 169, 170, 157, 163, 165, 182, 155, 158, 163, 157, 156, 167, 165, 158, 167, 156, 161, 156, 160, 154, 157, 159, 143, 161, 172, 158, 163, 147, 167, 167, 165, 145, 172, 153, 152, 164, 150, 158, 161, 156, 157, 169, 156, 172, 153, 160, 160, 166, 165, 160, 161, 162, 158, 166, 160, 166, 146, 155, 168, 160, 152, 153, 154, 156, 156, 157, 158, 154, 153, 157, 166, 167, 157, 155, 159, 162, 160, 157, 160, 158, 163, 155, 165, 169, 165, 160, 155, 154, 161, 157, 159, 162, 158, 166, 157, 160, 167, 159, 157, 166, 155, 157, 150, 165, 158, 163, 163, 156, 167, 159, 159, 156, 148, 156, 156, 149, 167, 153, 161, 171, 157, 159, 161, 157, 163, 164, 153, 155, 159, 166, 156, 160, 161, 146, 157, 168, 170, 157, 163, 155, 161, 157, 163, 169, 153, 163, 153, 167, 155, 158, 165, 158, 154, 152, 166, 155, 158, 150, 161, 160, 156, 159, 162, 165, 169, 159, 162, 170, 167, 164, 157, 162, 155, 164, 161, 152, 157, 160, 166, 169, 156, 168, 170, 155, 148, 159, 156, 159, 159, 163, 163, 166, 163, 158, 167, 163, 159, 156, 175, 163, 163, 160, 167, 163, 161, 154, 161, 155, 160, 160, 152, 169, 150, 159, 157, 158, 159, 163, 164, 156, 153, 155, 160, 164, 158, 175, 167, 158, 154, 159, 160, 155, 149, 152, 157, 168, 162, 161, 156, 155, 158, 151, 167, 161, 162, 162, 163, 153, 170, 160, 156, 162, 165, 159, 153, 163, 165, 167, 157, 163, 157, 156, 159, 165, 150, 172, 164, 155, 158, 161, 160, 163, 161, 151, 155, 161, 161, 163, 162, 165, 159, 161, 156, 157, 161, 159, 160, 159, 160, 161, 154, 163, 166, 163, 157, 159, 165, 165, 157, 164, 160, 160, 157, 161, 161, 162, 159, 162, 164, 156, 160, 162, 165, 160, 159, 172, 158, 162, 161, 156, 158, 162, 157, 161, 161, 161, 159, 160, 160, 155, 163, 162, 160, 157, 165, 161, 164, 157, 161, 159, 161, 166, 157, 163, 160, 158, 156, 162, 161, 157, 161, 163, 162, 164, 159, 160, 166, 157, 159, 162, 158, 156, 160, 161, 158, 155, 160, 161, 152, 158, 160, 157, 160, 169, 161, 161, 161, 163, 163, 158, 159, 168, 162, 162, 163, 160, 165, 164, 152, 157, 156, 158, 162, 161, 161, 162, 162, 162, 164, 165, 154, 159, 155, 157, 155, 159, 160, 159, 159, 163, 159, 157, 165, 159, 161, 171, 161, 160, 158, 157, 160, 156, 160, 160, 156, 159, 164, 162, 163, 161, 163, 157, 158, 161, 165, 162, 161, 165, 160, 163, 160, 155, 164, 160, 163, 163, 157, 156, 164, 158, 156, 160, 158, 162, 157, 164, 162, 156, 158, 161, 161, 160, 160, 164, 160, 160, 160, 159, 161, 160, 157, 160, 159, 166, 153, 159, 158, 163, 161, 164, 168, 165, 162, 162, 163, 165, 157, 158, 157, 157, 155, 159, 159, 164, 157, 157, 157, 157, 162, 156, 160, 158, 161, 163, 160, 163, 161, 162, 160, 164, 161, 162, 155, 160, 157, 164, 161, 164, 163, 153, 158, 154, 163, 159, 164, 160, 164, 154, 158, 167, 154, 156, 161, 159, 160, 157, 158, 160, 158, 166, 157, 159, 166, 156, 160, 163, 160, 159, 163, 159, 163, 166, 156, 162, 156, 157, 161, 166, 158, 159, 161, 160, 160, 164, 155, 166, 161, 162, 161, 162, 163, 161, 161, 161, 164, 158, 164, 165, 162, 160, 163, 162, 155, 162, 159, 159, 160, 164, 160, 159, 158, 157, 154, 159, 163, 159, 157, 164, 157, 164, 157, 159, 164, 161, 164, 162, 165, 170, 161, 157, 163, 161, 160, 158, 163, 164, 163, 157, 163, 158, 155, 165, 160, 158, 157, 160, 163, 166, 157, 158, 161, 161, 160, 162, 162, 156, 154, 164, 164, 158, 155, 158, 159, 160, 157, 159, 165, 158, 162, 161, 158, 163, 162, 159, 158, 161, 163, 158, 157, 158, 162, 157, 159, 156, 160, 165, 163, 167, 164, 155, 161, 158, 164, 163, 163, 163, 162, 162, 160, 164, 160, 164, 153, 159, 162, 160, 162, 161, 164, 156, 161, 160, 162, 169, 164, 165, 164, 158, 160, 163, 163, 160, 162, 162, 157, 163, 160, 161, 164, 151, 159, 157, 158, 157, 158, 159, 159, 163, 151, 162, 160, 160, 161, 166, 164, 161, 156, 157, 160, 164, 162, 159, 162, 158, 163, 158, 164, 159, 158, 161, 159, 163, 162, 160, 149, 162, 160, 154, 165, 163, 160, 160, 163, 162, 160, 156, 159, 159, 160, 159, 162, 162, 162, 162, 157, 161, 156, 162, 169, 157, 161, 161, 160, 161, 159, 173, 165, 155, 160, 165, 160, 160, 160, 169, 153, 149, 157, 158, 161, 154, 163, 159, 159, 155, 175, 162, 158, 156, 162, 164, 155, 148, 153, 148, 163, 166, 156, 154, 153, 167, 170, 162, 156, 170, 168, 165, 159, 162, 161, 159, 164, 163, 145, 169, 165, 162, 155, 157, 146, 159, 156, 168, 177, 156, 178, 162, 153, 161, 161, 181, 170, 187, 170, 156, 158, 157, 149, 156, 156, 140, 163, 148, 154, 165, 152, 154, 158, 163, 167, 156, 156, 164, 156, 163, 163, 157, 158, 163, 167, 150, 154, 166, 160, 163, 166, 167, 162, 148, 175, 163, 173, 159, 161, 174, 163, 152, 161, 157, 159, 168, 156, 164, 158, 146, 160, 163, 162, 150, 145, 151, 167, 154, 155, 165, 154, 159, 159, 158, 162, 161, 165, 156, 156, 157, 151, 161, 153, 158, 166, 156, 162, 153, 170, 151, 151, 156, 161, 145, 167, 159, 163, 166, 163, 172, 159, 164, 158, 155, 158, 161, 153, 156, 160, 173, 165, 159, 156, 167, 162, 164, 171, 161, 159, 183, 165, 153, 159, 161, 164, 164, 157, 164, 166, 157, 157, 160, 163, 154, 150, 160, 162, 156, 162, 156, 162, 157, 153, 162, 161, 159, 160, 159, 162, 154, 158, 180, 155, 158, 167, 160, 158, 176, 154, 147, 158, 168, 161, 154, 154, 165, 157, 160, 181, 159, 166, 155, 170, 162, 156, 158, 168, 166, 147, 153, 155, 171, 153, 163, 149, 151, 157, 165, 172, 156, 164, 159, 180, 151, 162, 166, 177, 159, 157, 162, 158, 165, 156, 164, 163, 170, 157, 154, 164, 167, 165, 159, 167, 164, 160, 168, 162, 167, 163, 166, 151, 165, 159, 160, 150, 164, 143, 157, 189, 155, 161, 161, 168, 161, 153, 163, 161, 166, 157, 160, 146, 166, 168, 162, 161, 164, 149, 150, 152, 161, 159, 169, 160, 160, 165, 156, 152, 156, 164, 168, 166, 160, 163, 159, 166, 154, 161, 163, 166, 145, 177, 153, 160, 168, 159, 171, 172, 162, 148, 153, 159, 171, 163, 157, 161, 153, 161, 153, 153, 155, 153, 157, 157, 150, 173, 184, 158, 157, 158, 151, 158, 147, 174, 162, 158, 157, 159, 160, 153, 159, 163, 161, 150, 160, 172, 159, 155, 161, 146, 162, 167, 156, 153, 156, 144, 159, 158, 156, 159, 162, 152, 153, 165, 165, 166, 160, 149, 170, 160, 170, 161, 169, 156, 152, 168, 150, 149, 158, 162, 158, 158, 154, 167, 156, 162, 156, 155, 159, 159, 165, 161, 159, 170, 150, 166, 155, 158, 161, 153, 163, 165, 155, 159, 160, 161, 161, 158, 148, 168, 157, 150, 160, 156, 163, 160, 155, 156, 182, 161, 155, 156, 158, 161, 152, 149, 159, 163, 161, 155, 164, 160, 159, 149, 153, 171, 170, 179, 163, 162, 147, 161, 144, 149, 161, 152, 159, 157, 154, 156, 158, 156, 161, 169, 160, 152, 155, 162, 158, 161, 159, 161, 169, 164, 155, 152, 159, 161, 167, 145, 158, 156, 164, 161, 162, 161, 157, 142, 156, 151, 162, 153, 160, 157, 170, 164, 164, 155, 160, 158, 157, 155, 159, 160, 154, 175, 155, 164, 155, 160, 146, 165, 152, 152, 168, 157, 160, 164, 152, 166, 158, 159, 166, 154, 160, 158, 164, 161, 156, 152, 175, 164, 157, 161, 159, 171, 154, 174, 152, 154, 167, 175, 152, 160, 149, 154, 155, 163, 156, 162, 162, 159, 157, 166, 153, 166, 154, 163, 158, 161, 158, 157, 163, 171, 147, 161, 166, 153, 159, 163, 152, 154, 166, 156, 192, 158, 169, 177, 154, 156, 160, 156, 156, 152, 168, 163, 158, 150, 161, 150, 163, 165, 159, 155, 151, 158, 151, 171, 162, 162, 153, 155, 157, 147, 165, 157, 158, 165, 167, 170, 138, 156, 169, 163, 160, 162, 163, 159, 162, 153, 158, 156, 153, 153, 164, 156, 154, 167, 157, 171, 154, 150, 160, 164, 159, 164, 149, 165, 160, 149, 159, 153, 156, 171, 162, 162, 150, 145, 166, 162, 151, 158, 169, 153, 162, 154, 161, 152, 157, 153, 155, 160, 147, 152, 164, 157, 156, 157, 159, 158, 158, 153, 149, 156, 152, 158, 160, 156, 161, 157, 159, 168, 184, 154, 154, 180, 139, 171, 170, 150, 168, 167, 166, 159, 163, 157, 160, 151, 153, 169, 194, 150, 160, 150, 167, 169, 155, 169, 149, 149, 159, 157, 166, 169, 151, 155, 152, 160, 150, 164, 162, 149, 156, 157, 159, 154, 164, 154, 159, 165, 168, 155, 172, 166, 160, 153, 164, 163, 157, 153, 160, 152, 167, 164, 158, 154, 173, 168, 166, 153, 157, 160, 155, 161, 162, 161, 157, 159, 158, 155, 159, 153, 160, 161, 156, 167, 155, 157, 151, 160, 160, 163, 154, 156, 158, 164, 155, 163, 160, 145, 172, 178, 177, 160, 151, 166, 154, 166, 153, 161, 147, 154, 162, 150, 151, 161, 164, 167, 172, 157, 153, 164, 158, 160, 152, 153, 158, 161, 158, 151, 166, 155, 174, 167, 167, 159, 153, 159, 156, 159, 174, 159, 161, 147, 156, 158, 160, 163, 165, 159, 149, 163, 154, 155, 157, 165, 163, 165, 159, 156, 163, 154, 161, 156, 158, 155, 160, 160, 160, 158, 157, 156, 159, 155, 173, 157, 156, 167, 155, 162, 161, 154, 165, 148, 156, 177, 159, 149, 189, 169, 158, 169, 170, 159, 164, 152, 167, 155, 155, 170, 163, 160, 147, 163, 165, 159, 160, 163, 165, 156, 155, 175, 144, 149, 149, 164, 147, 162, 152, 153, 157, 150, 168, 154, 157, 150, 157, 166, 160, 158, 154, 171, 158, 161, 159, 157, 163, 167, 164, 155, 165, 157, 152, 170, 148, 140, 148, 157, 161, 158, 154, 160, 154, 156, 159, 156, 172, 165, 162, 159, 150, 172, 150, 160, 162, 158, 156, 152, 169, 155, 157, 161, 161, 158, 150, 156, 160, 155, 164, 158, 167, 164, 155, 156, 150, 150, 159, 149, 160, 165, 163, 161, 151, 151, 152, 168, 156, 159, 164, 174, 135, 169, 170, 151, 160, 162, 168, 156, 176, 157, 146, 157, 153, 158, 165, 168, 164, 154, 173, 159, 151, 168, 161, 164, 158, 161, 161, 158, 160, 162, 151, 159, 158, 157, 155, 151, 161, 160, 161, 152, 154, 168, 170, 158, 158, 161, 177, 159, 157, 163, 166, 160, 161, 160, 168, 158, 162, 159, 160, 160, 161, 155, 155, 169, 160, 164, 154, 159, 158, 164, 151, 159, 154, 157, 165, 153, 162, 152, 164, 165, 162, 155, 158, 157, 148, 168, 173, 158, 163, 161, 162, 159, 163, 160, 160, 164, 156, 161, 175, 166, 159, 162, 155, 155, 166, 158, 163, 160, 156, 160, 160, 159, 154, 155, 158, 160, 155, 155, 159, 152, 158, 158, 156, 156, 158, 157, 149, 157, 154, 162, 162, 160, 162, 163, 158, 158, 164, 155, 155, 159, 164, 157, 161, 149, 154, 164, 168, 156, 160, 158, 164, 163, 154, 156, 156, 155, 162, 157, 154, 184, 163, 160, 155, 167, 156, 159, 158, 166, 159, 159, 154, 159, 157, 154, 163, 159, 158, 156, 151, 161, 156, 155, 151, 168, 160, 160, 167, 176, 167, 161, 162, 158, 158, 159, 157, 162, 163, 157, 163, 165, 152, 163, 162, 162, 161, 156, 147, 157, 155, 158, 162, 158, 151, 154, 165, 160, 169, 164, 153, 163, 163, 157, 164, 134, 155, 161, 165, 155, 158, 159, 153, 153, 161, 165, 155, 162, 160, 159, 149, 156, 140, 160, 163, 163, 154, 162, 166, 162, 156, 154, 163, 165, 157, 152, 159, 166, 157, 150, 162, 164, 164, 161, 158, 164, 156, 162, 161, 162, 156, 165, 165, 157, 162, 159, 161, 163, 168, 156, 154, 161, 151, 153, 158, 159, 157, 161, 159, 162, 161, 157, 159, 158, 161, 157, 157, 157, 157, 155, 159, 185, 159, 150, 167, 158, 158, 160, 161, 166, 166, 160, 159, 162, 163, 160, 157, 158, 167, 160, 163, 151, 156, 162, 162, 158, 158, 160, 164, 151, 153, 160, 168, 152, 159, 156, 160, 164, 159, 161, 150, 158, 160, 158, 159, 159, 159, 160, 170, 156, 159, 151, 157, 160, 161, 162, 167, 160, 154, 156, 163, 157, 159, 156, 155, 157, 161, 148, 168, 163, 154, 157, 160, 162, 162, 160, 159, 163, 161, 159, 155, 160, 157, 164, 154, 156, 154, 157, 154, 153, 165, 159, 163, 149, 164, 151, 154, 167, 158, 161, 157, 159, 161, 148, 161, 162, 164, 156, 149, 156, 167, 158, 162, 167, 158, 158, 152, 161, 156, 184, 164, 157, 170, 146, 159, 160, 156, 178, 157, 152, 147, 153, 159, 159, 145, 162, 162, 155, 165, 167, 159, 161, 163, 163, 173, 163, 160, 150, 159, 167, 166, 154, 162, 159, 151, 167, 162, 164, 157, 166, 155, 160, 161, 164, 151, 154, 169, 159, 150, 154, 157, 155, 155, 166, 153, 166, 152, 166, 159, 160, 156, 158, 148, 148, 160, 157, 154, 150, 159, 157, 157, 163, 156, 156, 156, 159, 163, 154, 164, 156, 157, 158, 168, 158, 162, 159, 160, 163, 161, 161, 153, 164, 159, 169, 167, 155, 154, 160, 161, 158, 157, 160, 156, 160, 144, 163, 155, 162, 156, 166, 166, 156, 160, 155, 166, 161, 167, 155, 155, 159, 156, 160, 159, 154, 151, 158, 159, 158, 164, 157, 157, 162, 162, 156, 143, 158, 162, 158, 159, 162, 171, 162, 157, 156, 150, 156, 164, 161, 159, 158, 156, 159, 163, 155, 162, 159, 161, 160, 160, 159, 167, 159, 160, 167, 151, 163, 154, 153, 161, 160, 161, 157, 156, 162, 152, 156, 157, 158, 158, 163, 162, 164, 162, 163, 161, 162, 162, 169, 156, 165, 157, 162, 166, 158, 160, 160, 159, 158, 156, 157, 161, 182, 161, 154, 166, 156, 159, 157, 158, 153, 158, 157, 163, 155, 162, 153, 161, 158, 155, 159, 155, 156, 155, 162, 160, 162, 163, 160, 164, 154, 159, 157, 158, 177, 161, 194, 163, 159, 161, 159, 154, 123, 163, 156, 160, 163, 160, 165, 159, 156, 157, 166, 160, 157, 171, 158, 164, 158, 172, 159, 166, 159, 157, 160, 170, 156, 159, 160, 162, 163, 165, 157, 161, 169, 161, 159, 159, 159, 162, 158, 161, 160, 159, 160, 154, 155, 164, 161, 157, 155, 168, 171, 156, 157, 163, 155, 160, 159, 159, 169, 160, 157, 158, 166, 153, 164, 166, 155, 161, 161, 159, 162, 163, 164, 158, 160, 162, 169, 152, 162, 158, 160, 156, 153, 158, 156, 167, 159, 160, 160, 161, 162, 153, 158, 161, 162, 162, 157, 157, 159, 155, 161, 162, 159, 159, 161, 158, 166, 164, 160, 157, 155, 169, 161, 156, 162, 155, 154, 160, 166, 156, 161, 160, 158, 153, 155, 160, 166, 157, 162, 160, 162, 158, 158, 153, 162, 160, 155, 158, 166, 162, 158, 156, 163, 156, 163, 164, 158, 156, 162, 179, 162, 158, 160, 167, 161, 159, 160, 166, 162, 147, 165, 163, 159, 158, 163, 154, 157, 159, 162, 163, 164, 159, 157, 161, 161, 156, 164, 157, 157, 162, 160, 163, 160, 162, 151, 167, 164, 161, 163, 153, 158, 158, 160, 156, 162, 157, 159, 163, 157, 162, 162, 153, 161, 161, 161, 165, 162, 155, 166, 162, 159, 161, 160, 165, 159, 163, 157, 160, 165, 161, 163, 161, 163, 158, 162, 159, 157, 163, 159, 161, 160, 161, 162, 161, 158, 158, 166, 163, 159, 159, 154, 160, 165, 158, 154, 171, 161, 162, 161, 163, 161, 158, 155, 159, 153, 156, 166, 153, 162, 170, 154, 156, 161, 154, 165, 167, 159, 161, 158, 142, 158, 159, 157, 151, 157, 158, 163, 160, 157, 162, 166, 152, 170, 163, 152, 164, 156, 157, 159, 157, 157, 164, 163, 158, 166, 167, 161, 160, 164, 163, 157, 161, 154, 169, 157, 161, 160, 157, 164, 155, 158, 162, 173, 161, 164, 170, 163, 160, 163, 158, 163, 164, 159, 158, 160, 169, 170, 157, 156, 158, 162, 160, 159, 189, 159, 161, 155, 158, 164, 165, 166, 158, 161, 159, 157, 161, 159, 160, 169, 160, 161, 159, 158, 156, 167, 155, 157, 151, 165, 157, 166, 166, 157, 157, 158, 158, 159, 169, 153, 156, 156, 160, 163, 154, 163, 161, 156, 166, 162, 167, 153, 160, 162, 163, 157, 154, 158, 163, 164, 161, 163, 154, 148, 156, 161, 162, 166, 167, 160, 164, 170, 158, 159, 162, 158, 190, 204, 160, 172, 161, 162, 165, 156, 160, 159, 157, 163, 154, 159, 160, 163, 149, 155, 155, 156, 155, 158, 156, 163, 159, 155, 177, 160, 149, 171, 151, 162, 156, 162, 152, 158, 166, 149, 159, 160, 159, 159, 162, 164, 158, 174, 162, 163, 156, 160, 157, 164, 164, 158, 165, 166, 166, 170, 152, 159, 157, 162, 159, 163, 166, 152, 165, 155, 155, 159, 158, 164, 160, 155, 154, 165, 160, 150, 169, 179, 150, 163, 160, 159, 166, 158, 174, 156, 154, 157, 167, 159, 166, 159, 157, 159, 162, 158, 148, 158, 162, 158, 165, 160, 154, 162, 189, 163, 159, 159, 151, 162, 163, 156, 166, 166, 157, 161, 155, 153, 171, 166, 162, 150, 162, 156, 163, 156, 158, 162, 156, 164, 150, 157, 158, 158, 165, 159, 164, 173, 166, 160, 168, 165, 162, 166, 164, 148, 159, 160, 160, 163, 167, 157, 172, 158, 169, 154, 157, 164, 154, 162, 179, 156, 166, 161, 153, 157, 161, 161, 163, 165, 166, 154, 159, 157, 156, 157, 156, 155, 152, 159, 157, 156, 146, 168, 167, 162, 162, 164, 164, 157, 153, 134, 171, 155, 156, 164, 165, 158, 162, 153, 155, 166, 162, 156, 158, 165, 157, 157, 155, 160, 160, 155, 157, 158, 154, 161, 161, 161, 162, 163, 164, 153, 158, 164, 155, 155, 148, 149, 161, 157, 155, 158, 156, 169, 165, 158, 155, 157, 157, 155, 162, 162, 153, 157, 158, 164, 163, 160, 165, 178, 160, 165, 156, 157, 160, 170, 154, 172, 159, 180, 161, 167, 146, 160, 158, 157, 155, 156, 160, 153, 164, 160, 173, 160, 162, 161, 166, 158, 149, 163, 166, 158, 171, 160, 164, 156, 150, 157, 177, 155, 162, 157, 157, 154, 160, 156, 155, 172, 159, 163, 157, 159, 172, 166, 158, 155, 163, 169, 158, 170, 165, 158, 162, 158, 144, 156, 157, 155, 160, 154, 170, 165, 161, 164, 169, 166, 157, 158, 158, 160, 157, 154, 158, 156, 163, 160, 156, 159, 153, 156, 159, 171, 161, 152, 158, 168, 160, 147, 164, 172, 170, 159, 160, 160, 171, 153, 154, 160, 156, 154, 160, 163, 173, 164, 153, 154, 156, 166, 160, 163, 160, 164, 158, 161, 135, 165, 156, 164, 172, 156, 169, 162, 142, 155, 162, 184, 160, 168, 153, 158, 170, 157, 182, 163, 160, 162, 160, 159, 155, 171, 172, 163, 158, 167, 154, 164, 158, 172, 159, 163, 163, 159, 157, 154, 155, 157, 158, 159, 160, 181, 150, 157, 162, 151, 155, 147, 155, 164, 162, 154, 153, 158, 156, 155, 164, 164, 164, 165, 155, 157, 160, 160, 155, 152, 158, 161, 161, 166, 154, 160, 162, 150, 155, 162, 170, 157, 166, 155, 158, 165, 171, 151, 161, 157, 155, 153, 161, 155, 168, 161, 152, 156, 157, 160, 161, 158, 159, 157, 161, 151, 161, 154, 148, 164, 164, 163, 174, 156, 148, 160, 152, 154, 173, 151, 154, 163, 158, 144, 165, 169, 160, 156, 152, 155, 172, 160, 157, 163, 148, 166, 159, 154, 153, 164, 160, 160, 166, 155, 167, 152, 158, 161, 154, 159, 157, 161, 168, 158, 162, 163, 159, 181, 157, 153, 162, 160, 162, 161, 168, 172, 161, 160, 152, 155, 163, 170, 160, 154, 152, 159, 152, 167, 153, 167, 164, 160, 162, 162, 167, 165, 166, 163, 162, 159, 159, 162, 158, 185, 160, 157, 154, 160, 154, 157, 158, 156, 162, 153, 164, 155, 160, 172, 176, 161, 163, 153, 162, 155, 158, 152, 160, 157, 164, 166, 159, 178, 168, 159, 165, 161, 162, 159, 150, 157, 161, 152, 160, 157, 155, 163, 162, 162, 169, 155, 159, 156, 167, 163, 157, 163, 155, 167, 156, 163, 154, 160, 165, 166, 153, 154, 147, 171, 160, 161, 158, 163, 155, 163, 157, 158, 162, 165, 162, 159, 159, 157, 161, 161, 162, 160, 159, 159, 167, 151, 162, 159, 164, 144, 154, 153, 163, 166, 159, 157, 164, 169, 160, 153, 161, 166, 162, 160, 162, 157, 160, 159, 165, 156, 158, 160, 164, 161, 158, 160, 154, 162, 160, 160, 161, 159, 157, 158, 165, 168, 153, 161, 169, 158, 158, 155, 158, 151, 167, 168, 157, 158, 166, 159, 171, 174, 166, 162, 159, 150, 161, 160, 162, 159, 162, 152, 154, 159, 166, 150, 156, 152, 152, 158, 156, 163, 164, 157, 163, 160, 159, 146, 158, 145, 159, 165, 158, 158, 154, 160, 162, 161, 156, 158, 158, 157, 184, 156, 173, 168, 158, 165, 162, 158, 155, 159, 162, 151, 161, 157, 164, 169, 155, 155, 161, 165, 163, 160, 163, 163, 151, 160, 158, 173, 155, 165, 158, 148, 162, 157, 159, 158, 156, 158, 156, 156, 161, 159, 150, 161, 173, 158, 152, 157, 157, 161, 161, 164, 153, 161, 159, 164, 158, 160, 155, 153, 154, 164, 156, 158, 157, 182, 176, 173, 155, 159, 163, 153, 161, 157, 164, 162, 153, 157, 156, 167, 168, 158, 160, 163, 160, 165, 161, 159, 167, 160, 162, 165, 160, 162, 154, 169, 161, 144, 159, 163, 159, 155, 155, 159, 154, 157, 157, 147, 161, 158, 157, 164, 173, 157, 162, 156, 161, 156, 161, 160, 161, 162, 164, 162, 157, 156, 165, 153, 161, 157, 153, 172, 161, 162, 159, 166, 160, 162, 159, 170, 157, 160, 180, 162, 158, 161, 156, 163, 157, 168, 163, 152, 158, 156, 152, 164, 163, 157, 163, 164, 165, 158, 177, 182, 161, 163, 155, 156, 168, 152, 142, 155, 160, 162, 159, 160, 163, 158, 160, 158, 154, 166, 158, 163, 159, 157, 170, 159, 163, 162, 162, 151, 147, 176, 158, 156, 163, 164, 160, 163, 162, 161, 167, 161, 159, 161, 160, 149, 163, 154, 160, 166, 160, 158, 154, 149, 167, 165, 164, 164, 151, 162, 155, 156, 165, 160, 168, 156, 168, 158, 165, 171, 162, 167, 156, 169, 163, 159, 160, 159, 153, 159, 164, 157, 161, 161, 165, 170, 153, 161, 169, 158, 160, 162, 158, 167, 162, 162, 163, 162, 165, 170, 165, 159, 164, 151, 152, 169, 159, 154, 149, 160, 161, 159, 157, 172, 165, 163, 152, 161, 165, 158, 167, 160, 152, 172, 153, 160, 154, 157, 156, 164, 165, 168, 154, 162, 160, 166, 171, 157, 156, 164, 154, 152, 158, 162, 159, 161, 158, 164, 154, 168, 164, 159, 170, 171, 163, 161, 151, 159, 152, 158, 162, 155, 150, 170, 153, 162, 153, 166, 156, 158, 155, 166, 161, 161, 159, 165, 159, 152, 164, 160, 157, 163, 160, 157, 162, 154, 158, 163, 152, 162, 154, 166, 158, 161, 159, 161, 165, 162, 157, 164, 152, 163, 159, 167, 158, 169, 162, 149, 165, 163, 162, 151, 163, 151, 159, 158, 161, 164, 159, 154, 153, 161, 154, 153, 159, 157, 161, 163, 155, 156, 160, 160, 171, 164, 159, 157, 158, 160, 161, 157, 156, 157, 149, 159, 167, 160, 164, 162, 156, 152, 155, 167, 154, 167, 159, 161, 165, 172, 162, 162, 161, 163, 158, 157, 161, 163, 159, 157, 165, 158, 162, 154, 156, 163, 151, 163, 167, 158, 160, 156, 156, 159, 157, 167, 155, 166, 149, 161, 165, 162, 160, 166, 169, 160, 149, 158, 159, 152, 156, 157, 158, 147, 157, 161, 152, 148, 158, 166, 157, 157, 172, 156, 152, 158, 154, 163, 159, 166, 159, 164, 149, 160, 160, 160, 159, 162, 162, 182, 166, 157, 167, 160, 163, 158, 164, 149, 165, 172, 158, 166, 158, 162, 172, 156, 153, 152, 159, 151, 155, 161, 161, 169, 158, 168, 153, 162, 155, 159, 160, 158, 174, 158, 168, 148, 160, 162, 152, 159, 150, 163, 153, 156, 160, 156, 165, 153, 168, 165, 164, 153, 151, 156, 153, 163, 155, 161, 152, 167, 161, 162, 157, 162, 158, 169, 152, 160, 162, 162, 167, 158, 146, 160, 160, 159, 165, 159, 164, 157, 160, 156, 155, 165, 158, 164, 166, 150, 163, 162, 163, 163, 165, 159, 161, 169, 165, 162, 162, 156, 158, 157, 173, 163, 162, 151, 152, 166, 160, 164, 162, 157, 162, 160, 157, 168, 152, 155, 158, 157, 155, 160, 167, 160, 158, 151, 152, 160, 166, 154, 158, 163, 161, 161, 146, 162, 158, 158, 153, 155, 164, 159, 155, 154, 160, 154, 164, 164, 162, 163, 155, 156, 158, 156, 158, 160, 167, 166, 170, 171, 157, 162, 162, 144, 169, 165, 169, 167, 155, 160, 159, 156, 158, 160, 153, 156, 160, 169, 158, 150, 157, 165, 161, 158, 159, 158, 160, 150, 149, 162, 163, 157, 164, 157, 159, 157, 163, 150, 151, 162, 164, 156, 150, 167, 159, 158, 156, 151, 162, 162, 154, 161, 163, 162, 167, 166, 161, 159, 159, 160, 167, 156, 162, 168, 164, 164, 159, 170, 164, 165, 159, 154, 160, 158, 161, 159, 165, 159, 159, 152, 162, 164, 160, 161, 165, 155, 158, 160, 157, 166, 165, 158, 158, 151, 156, 159, 159, 162, 157, 170, 151, 160, 167, 159, 162, 155, 156, 161, 162, 166, 165, 155, 167, 159, 163, 160, 160, 153, 162, 148, 160, 167, 161, 159, 164, 163, 156, 164, 160, 162, 166, 163, 166, 157, 160, 161, 162, 160, 172, 159, 164, 160, 161, 160, 162, 162, 164, 157, 161, 163, 156, 163, 162, 163, 159, 154, 163, 156, 164, 157, 169, 164, 154, 159, 155, 154, 160, 159, 156, 162, 158, 159, 163, 171, 161, 164, 155, 157, 163, 169, 157, 154, 157, 162, 148, 158, 149, 165, 150, 153, 164, 159, 157, 160, 145, 158, 172, 157, 155, 157, 159, 160, 157, 152, 166, 162, 160, 168, 163, 158, 159, 155, 165, 158, 178, 161, 164, 163, 160, 152, 160, 164, 171, 162, 150, 152, 157, 159, 163, 162, 169, 159, 159, 164, 159, 164, 159, 159, 162, 158, 162, 156, 159, 162, 159, 160, 164, 156, 161, 159, 162, 159, 155, 164, 159, 156, 151, 165, 162, 153, 157, 158, 161, 151, 161, 165, 160, 154, 161, 165, 156, 158, 138, 155, 164, 168, 162, 168, 156, 162, 162, 165, 159, 167, 155, 162, 164, 164, 158, 157, 159, 159, 155, 157, 152, 161, 157, 157, 160, 160, 153, 160, 153, 150, 157, 152, 161, 160, 154, 156, 156, 165, 156, 153, 153, 154, 159, 159, 159, 157, 160, 154, 160, 160, 163, 164, 166, 168, 160, 172, 152, 154, 162, 155, 161, 156, 173, 159, 161, 157, 165, 159, 154, 159, 158, 152, 161, 156, 165, 159, 153, 173, 160, 157, 163, 156, 155, 155, 152, 165, 152, 171, 161, 163, 160, 157, 181, 156, 170, 157, 160, 159, 166, 159, 157, 154, 160, 169, 153, 163, 155, 160, 158, 157, 157, 158, 157, 154, 159, 168, 160, 160, 165, 160, 166, 158, 157, 161, 154, 163, 167, 159, 163, 157, 164, 160, 162, 145, 157, 162, 165, 150, 160, 157, 158, 158, 166, 172, 150, 162, 162, 157, 161, 154, 155, 153, 159, 154, 158, 158, 155, 157, 156, 144, 166, 158, 161, 162, 159, 157, 161, 165, 161, 158, 156, 161, 160, 164, 160, 156, 160, 161, 158, 159, 161, 155, 170, 163, 159, 160, 160, 163, 156, 162, 159, 157, 160, 154, 157, 171, 156, 162, 146, 153, 167, 160, 167, 157, 179, 161, 154, 161, 161, 157, 162, 156, 164, 160, 159, 159, 159, 150, 155, 158, 154, 158, 160, 151, 162, 157, 158, 160, 158, 176, 157, 165, 162, 159, 161, 158, 155, 155, 164, 159, 157, 151, 164, 175, 160, 162, 158, 155, 159, 157, 157, 157, 154, 156, 157, 155, 172, 152, 150, 158, 163, 148, 166, 165, 160, 158, 144, 163, 154, 169, 164, 160, 160, 155, 156, 161, 159, 157, 162, 159, 160, 161, 162, 157, 152, 156, 156, 165, 158, 161, 164, 161, 161, 158, 157, 167, 159, 155, 154, 162, 158, 175, 164, 156, 160, 156, 154, 158, 163, 163, 158, 155, 167, 159, 153, 167, 154, 156, 156, 158, 164, 151, 157, 164, 158, 156, 162, 152, 160, 163, 140, 155, 166, 161, 158, 158, 149, 155, 150, 158, 156, 163, 164, 163, 160, 156, 159, 158, 159, 165, 167, 160, 159, 153, 159, 160, 157, 154, 164, 158, 159, 154, 157, 156, 170, 155, 164, 162, 159, 161, 157, 165, 160, 161, 159, 164, 161, 151, 160, 159, 162, 169, 158, 153, 160, 168, 156, 161, 162, 156, 158, 161, 155, 160, 174, 156, 162, 164, 158, 162, 156, 159, 161, 167, 162, 160, 161, 160, 163, 156, 155, 164, 161, 158, 161, 166, 166, 160, 159, 148, 163, 162, 153, 149, 162, 156, 159, 154, 156, 161, 161, 157, 161, 159, 160, 164, 165, 161, 165, 161, 161, 143, 167, 159, 163, 161, 158, 160, 155, 160, 169, 158, 159, 159, 162, 164, 161, 158, 161, 158, 169, 157, 160, 158, 161, 157, 164, 158, 162, 169, 159, 162, 164, 158, 162, 159, 174, 162, 161, 160, 164, 157, 165, 162, 158, 162, 157, 164, 160, 156, 160, 163, 160, 155, 164, 161, 162, 161, 162, 164, 160, 167, 160, 160, 160, 181, 161, 177, 161, 161, 164, 162, 156, 161, 158, 159, 158, 162, 157, 157, 161, 161, 156, 163, 166, 159, 162, 158, 157, 164, 159, 160, 162, 158, 160, 154, 161, 156, 164, 167, 159, 161, 162, 159, 156, 163, 158, 154, 162, 164, 160, 160, 161, 159, 164, 162, 162, 158, 154, 164, 159, 163, 164, 163, 163, 160, 154, 161, 156, 165, 161, 157, 159, 153, 186, 161, 161, 159, 158, 156, 149, 160, 157, 161, 162, 152, 165, 159, 157, 166, 163, 158, 158, 156, 162, 160, 143, 160, 160, 166, 169, 162, 163, 158, 159, 180, 160, 159, 159, 156, 159, 155, 160, 158, 157, 166, 171, 158, 162, 163, 160, 158, 168, 161, 162, 174, 158, 156, 164, 164, 156, 164, 163, 162, 160, 159, 165, 157, 158, 164, 164, 165, 164, 157, 161, 168, 159, 165, 159, 159, 161, 158, 165, 161, 157, 154, 159, 160, 161, 159, 159, 162, 163, 163, 163, 146, 166, 157, 154, 161, 157, 161, 159, 158, 159, 157, 162, 159, 156, 156, 161, 160, 159, 161, 159, 163, 156, 154, 155, 159, 162, 158, 163, 158, 158, 156, 167, 163, 162, 161, 161, 174, 157, 156, 166, 159, 165, 161, 158, 166, 158, 160, 155, 156, 155, 154, 175, 166, 160, 162, 160, 155, 162, 160, 165, 143, 166, 157, 158, 163, 168, 154, 163, 162, 160, 165, 159, 158, 160, 151, 163, 160, 160, 163, 153, 164, 156, 161, 159, 159, 163, 160, 159, 153, 162, 156, 158, 160, 152, 161, 159, 163, 160, 161, 162, 157, 159, 158, 160, 154, 149, 157, 159, 159, 160, 164, 157, 161, 159, 157, 158, 166, 158, 159, 158, 164, 158, 157, 163, 161, 159, 167, 158, 161, 151, 158, 157, 148, 163, 157, 157, 156, 155, 161, 155, 160, 162, 162, 160, 164, 159, 164, 158, 161, 170, 159, 159, 156, 159, 160, 161, 163, 156, 160, 160, 160, 137, 159, 160, 166, 162, 160, 163, 158, 159, 162, 165, 158, 164, 165, 164, 162, 157, 161, 162, 155, 160, 159, 159, 159, 158, 169, 162, 168, 163, 164, 163, 164, 161, 160, 158, 162, 164, 170, 157, 162, 161, 163, 159, 152, 165, 162, 163, 160, 154, 147, 159, 153, 155, 145, 157, 163, 161, 160, 160, 157, 160, 164, 155, 158, 155, 156, 162, 165, 169, 155, 152, 160, 153, 160, 171, 150, 156, 151, 150, 159, 155, 166, 153, 159, 142, 161, 157, 168, 168, 164, 156, 158, 146, 158, 167, 163, 154, 174, 161, 167, 162, 156, 149, 173, 172, 156, 160, 158, 162, 158, 160, 159, 160, 152, 157, 158, 157, 162, 164, 164, 157, 159, 164, 162, 154, 160, 155, 161, 167, 151, 162, 169, 163, 161, 152, 159, 163, 165, 165, 161, 161, 157, 161, 152, 158, 166, 153, 163, 157, 156, 156, 162, 163, 156, 153, 157, 161, 177, 171, 154, 152, 164, 155, 170, 155, 153, 164, 160, 158, 164, 167, 158, 160, 149, 158, 155, 159, 154, 152, 154, 156, 164, 172, 163, 153, 157, 159, 158, 147, 164, 156, 160, 163, 158, 165, 145, 155, 161, 156, 161, 151, 167, 162, 157, 153, 153, 162, 152, 161, 164, 155, 161, 157, 152, 158, 163, 185, 159, 155, 163, 165, 161, 159, 186, 152, 158, 163, 156, 174, 156, 154, 163, 158, 161, 161, 160, 151, 157, 172, 161, 151, 153, 148, 157, 168, 160, 170, 159, 154, 166, 164, 162, 158, 163, 160, 157, 157, 156, 156, 148, 160, 158, 156, 149, 161, 165, 155, 159, 153, 162, 168, 153, 154, 165, 152, 158, 162, 157, 152, 153, 165, 158, 158, 168, 160, 156, 153, 160, 168, 164, 161, 152, 152, 163, 157, 157, 166, 158, 162, 151, 156, 156, 159, 155, 161, 160, 160, 159, 166, 153, 154, 161, 158, 147, 165, 170, 159, 150, 163, 167, 153, 156, 167, 153, 161, 151, 163, 152, 161, 163, 161, 159, 163, 157, 165, 156, 161, 172, 165, 160, 164, 159, 167, 165, 163, 162, 160, 163, 162, 159, 147, 166, 158, 154, 158, 138, 152, 154, 159, 157, 155, 178, 153, 159, 169, 169, 153, 162, 153, 155, 158, 158, 162, 163, 152, 162, 161, 153, 162, 161, 165, 159, 157, 156, 154, 154, 161, 156, 160, 164, 159, 159, 153, 159, 157, 159, 160, 171, 155, 156, 161, 161, 157, 149, 146, 163, 178, 159, 152, 163, 160, 160, 152, 161, 154, 154, 156, 161, 158, 155, 160, 159, 160, 157, 162, 152, 166, 157, 154, 170, 156, 165, 150, 164, 164, 163, 155, 161, 158, 152, 153, 161, 166, 156, 154, 155, 166, 166, 160, 156, 161, 168, 156, 168, 158, 170, 152, 165, 169, 157, 156, 167, 156, 160, 154, 165, 163, 169, 163, 159, 165, 156, 159, 172, 155, 154, 159, 157, 162, 172, 153, 153, 157, 158, 165, 159, 154, 154, 162, 168, 166, 172, 163, 160, 161, 167, 154, 165, 160, 163, 165, 154, 171, 163, 169, 161, 164, 151, 161, 159, 157, 148, 158, 153, 150, 155, 166, 157, 154, 158, 155, 152, 166, 161, 159, 163, 161, 157, 161, 154, 159, 168, 163, 166, 153, 157, 153, 156, 165, 154, 167, 159, 149, 169, 158, 156, 153, 155, 162, 156, 153, 156, 158, 159, 160, 162, 162, 151, 166, 167, 156, 159, 159, 166, 165, 158, 158, 164, 160, 168, 159, 161, 158, 151, 167, 150, 167, 155, 169, 154, 164, 158, 157, 145, 166, 157, 164, 166, 159, 155, 158, 152, 160, 157, 159, 164, 157, 163, 162, 161, 163, 154, 163, 159, 153, 159, 166, 153, 148, 153, 159, 156, 163, 148, 160, 170, 163, 160, 165, 156, 176, 148, 152, 159, 154, 159, 155, 176, 164, 157, 159, 163, 148, 153, 159, 164, 160, 157, 152, 176, 153, 157, 156, 161, 156, 155, 162, 162, 165, 152, 156, 155, 162, 163, 155, 163, 159, 156, 150, 148, 158, 166, 158, 162, 145, 154, 163, 160, 166, 157, 154, 156, 163, 157, 161, 153, 157, 156, 159, 150, 163, 160, 172, 150, 165, 160, 159, 165, 166, 165, 164, 158, 176, 157, 156, 164, 161, 162, 161, 169, 161, 161, 157, 160, 153, 176, 155, 156, 177, 159, 153, 156, 153, 163, 168, 160, 165, 162, 155, 163, 162, 155, 173, 157, 153, 166, 154, 164, 160, 159, 164, 163, 163, 162, 162, 163, 173, 155, 161, 147, 161, 162, 161, 171, 160, 157, 157, 160, 157, 162, 161, 163, 160, 158, 163, 161, 163, 164, 168, 160, 153, 157, 159, 160, 155, 168, 163, 150, 164, 161, 165, 156, 171, 157, 156, 156, 159, 166, 163, 165, 172, 157, 170, 153, 151, 152, 169, 158, 162, 155, 162, 159, 162, 163, 151, 171, 141, 159, 160, 163, 161, 164, 156, 148, 157, 161, 162, 151, 154, 154, 162, 164, 167, 163, 162, 156, 160, 152, 158, 164, 166, 148, 156, 160, 165, 160, 149, 161, 163, 165, 160, 159, 160, 160, 156, 163, 156, 161, 159, 155, 150, 164, 156, 148, 158, 152, 160, 156, 163, 160, 172, 160, 159, 155, 156, 170, 161, 160, 156, 160, 158, 157, 161, 176, 155, 164, 166, 163, 164, 162, 164, 166, 169, 159, 151, 154, 162, 155, 158, 159, 165, 158, 165, 156, 170, 156, 160, 155, 158, 158, 158, 150, 169, 178, 160, 161, 156, 158, 156, 159, 171, 158, 159, 161, 155, 168, 156, 156, 150, 156, 155, 160, 149, 153, 187, 154, 165, 161, 161, 154, 160, 158, 164, 155, 155, 164, 164, 158, 149, 129, 163, 160, 159, 147, 156, 157, 158, 156, 160, 167, 157, 154, 156, 155, 161, 162, 162, 163, 163, 165, 162, 167, 145, 158, 156, 169, 147, 157, 168, 169, 149, 157, 153, 165, 165, 164, 148, 164, 157, 160, 161, 163, 165, 163, 160, 151, 154, 164, 161, 158, 157, 156, 160, 160, 163, 161, 167, 168, 156, 158, 162, 154, 144, 153, 162, 159, 161, 155, 161, 158, 163, 165, 163, 164, 171, 167, 168, 153, 159, 158, 161, 145, 167, 162, 158, 157, 149, 154, 163, 161, 158, 164, 165, 158, 154, 160, 159, 163, 159, 171, 163, 155, 161, 156, 159, 161, 153, 149, 167, 162, 154, 158, 161, 159, 159, 159, 160, 142, 154, 158, 159, 152, 152, 159, 154, 165, 158, 160, 167, 152, 159, 176, 159, 158, 164, 154, 159, 165, 167, 155, 158, 158, 170, 158, 159, 163, 144, 154, 164, 147, 154, 157, 162, 155, 170, 155, 164, 154, 150, 152, 161, 167, 176, 161, 153, 162, 152, 154, 143, 163, 161, 164, 159, 140, 157, 158, 161, 142, 162, 148, 151, 157, 160, 161, 155, 160, 165, 151, 164, 161, 154, 159, 165, 158, 163, 164, 149, 163, 159, 161, 165, 163, 151, 161, 149, 151, 159, 165, 168, 155, 153, 159, 151, 152, 152, 153, 160, 162, 160, 158, 159, 171, 154, 163, 153, 156, 153, 162, 160, 156, 150, 155, 159, 159, 155, 156, 159, 149, 159, 156, 172, 164, 152, 150, 155, 155, 164, 148, 169, 156, 168, 155, 160, 161, 156, 156, 164, 158, 161, 153, 158, 163, 161, 172, 165, 158, 165, 161, 157, 166, 156, 162, 162, 161, 157, 155, 162, 161, 153, 164, 164, 140, 161, 157, 153, 158, 157, 161, 163, 156, 153, 158, 159, 155, 149, 157, 151, 156, 163, 150, 165, 160, 155, 163, 174, 159, 171, 161, 164, 155, 163, 157, 158, 157, 155, 155, 146, 153, 144, 170, 165, 163, 155, 163, 155, 157, 151, 147, 152, 172, 156, 154, 155, 157, 163, 156, 162, 153, 159, 164, 155, 165, 184, 157, 159, 157, 161, 170, 171, 163, 156, 154, 164, 167, 160, 151, 164, 156, 161, 164, 152, 153, 165, 164, 147, 171, 154, 153, 153, 156, 151, 159, 164, 165, 158, 161, 154, 153, 164, 167, 162, 157, 173, 164, 165, 156, 150, 149, 156, 141, 162, 160, 163, 160, 164, 159, 163, 163, 167, 149, 158, 143, 197, 155, 160, 156, 159, 160, 158, 154, 165, 163, 162, 157, 148, 163, 161, 162, 152, 166, 164, 166, 162, 157, 168, 157, 159, 155, 160, 159, 158, 156, 160, 160, 154, 167, 155, 163, 159, 165, 161, 154, 174, 163, 153, 158, 171, 156, 155, 162, 152, 158, 162, 165, 164, 162, 152, 166, 167, 155, 164, 157, 158, 158, 156, 153, 174, 157, 153, 159, 162, 161, 167, 160, 157, 157, 167, 157, 158, 163, 160, 162, 155, 158, 155, 157, 154, 165, 144, 166, 159, 156, 163, 160, 165, 156, 159, 159, 157, 174, 169, 154, 153, 162, 170, 169, 159, 160, 152, 162, 158, 168, 161, 153, 151, 149, 161, 156, 163, 163, 159, 158, 160, 166, 164, 171, 153, 164, 161, 156, 170, 160, 166, 152, 159, 166, 162, 161, 153, 156, 148, 159, 156, 161, 155, 163, 165, 155, 157, 167, 171, 162, 152, 155, 162, 159, 163, 169, 165, 168, 169, 157, 155, 161, 169, 179, 162, 165, 158, 165, 152, 159, 162, 163, 148, 157, 157, 160, 182, 160, 157, 160, 165, 160, 158, 158, 160, 155, 153, 146, 156, 153, 161, 160, 146, 163, 159, 152, 153, 152, 175, 154, 164, 157, 152, 163, 152, 160, 156, 161, 172, 156, 167, 161, 158, 158, 157, 166, 161, 160, 161, 159, 159, 170, 171, 152, 174, 156, 156, 162, 157, 159, 160, 179, 158, 163, 160, 161, 164, 160, 158, 158, 162, 161, 169, 146, 162, 152, 164, 168, 153, 154, 158, 159, 163, 162, 161, 162, 159, 158, 158, 168, 156, 159, 159, 158, 163, 156, 160, 161, 159, 169, 159, 163, 160, 162, 164, 161, 162, 166, 161, 160, 164, 156, 162, 160, 164, 157, 161, 160, 164, 162, 159, 163, 161, 159, 152, 156, 161, 161, 161, 161, 166, 163, 161, 155, 159, 158, 155, 153, 159, 156, 156, 166, 163, 156, 158, 161, 159, 157, 164, 156, 159, 159, 159, 157, 159, 159, 161, 161, 160, 151, 165, 159, 159, 157, 160, 162, 154, 154, 161, 163, 160, 159, 160, 159, 163, 158, 159, 161, 165, 164, 158, 158, 167, 164, 155, 157, 160, 162, 165, 163, 136, 163, 158, 158, 162, 158, 163, 164, 160, 160, 165, 161, 157, 164, 163, 164, 160, 166, 159, 157, 166, 162, 164, 159, 159, 165, 158, 161, 158, 162, 167, 160, 150, 161, 161, 157, 156, 158, 162, 162, 158, 151, 159, 158, 158, 156, 157, 160, 160, 155, 159, 155, 156, 159, 162, 164, 159, 164, 161, 159, 178, 164, 163, 156, 157, 156, 160, 165, 162, 156, 158, 160, 164, 164, 160, 169, 159, 159, 167, 163, 160, 159, 159, 160, 161, 159, 162, 158, 152, 163, 164, 158, 158, 162, 165, 159, 158, 161, 166, 163, 161, 161, 160, 155, 158, 161, 161, 159, 161, 164, 162, 161, 158, 164, 162, 162, 167, 159, 165, 162, 161, 157, 160, 159, 164, 159, 158, 160, 158, 158, 155, 161, 165, 163, 159, 158, 164, 162, 158, 161, 163, 163, 166, 162, 160, 157, 162, 148, 157, 159, 163, 156, 161, 159, 159, 157, 164, 170, 163, 162, 167, 161, 158, 165, 156, 167, 164, 157, 163, 163, 159, 159, 163, 156, 161, 163, 167, 162, 157, 158, 157, 170, 155, 162, 154, 160, 164, 156, 150, 161, 172, 163, 163, 160, 150, 159, 158, 162, 162, 162, 159, 157, 162, 160, 161, 157, 159, 158, 159, 163, 149, 160, 161, 160, 161, 164, 159, 164, 152, 160, 154, 163, 161, 159, 161, 161, 157, 159, 153, 161, 167, 158, 159, 155, 161, 159, 162, 163, 161, 157, 159, 159, 161, 159, 159, 159, 159, 159, 162, 159, 163, 158, 154, 166, 150, 159, 161, 155, 156, 164, 160, 162, 161, 155, 164, 157, 151, 161, 159, 161, 168, 158, 157, 162, 157, 158, 159, 164, 158, 164, 161, 162, 161, 161, 152, 160, 161, 167, 162, 155, 161, 154, 160, 163, 158, 161, 158, 161, 160, 157, 160, 158, 156, 156, 160, 158, 160, 160, 164, 154, 164, 161, 161, 160, 159, 160, 158, 185, 157, 149, 161, 157, 158, 158, 163, 162, 160, 157, 162, 159, 167, 164, 159, 157, 160, 158, 161, 162, 160, 160, 156, 157, 170, 160, 161, 167, 158, 164, 162, 158, 157, 158, 162, 163, 158, 166, 162, 155, 157, 161, 160, 155, 161, 163, 160, 162, 160, 158, 160, 158, 155, 164, 165, 160, 160, 160, 160, 160, 159, 160, 159, 160, 157, 160, 160, 159, 169, 156, 167, 161, 162, 159, 160, 160, 166, 159, 165, 157, 163, 157, 164, 162, 158, 162, 155, 156, 159, 154, 160, 168, 157, 153, 158, 159, 155, 157, 168, 155, 169, 162, 156, 151, 158, 158, 168, 154, 174, 160, 153, 159, 162, 160, 160, 172, 165, 157, 165, 157, 161, 162, 163, 153, 169, 157, 158, 159, 160, 158, 163, 161, 154, 157, 164, 168, 156, 154, 163, 157, 158, 171, 153, 154, 157, 159, 160, 158, 173, 162, 154, 152, 163, 161, 164, 157, 165, 172, 154, 159, 167, 156, 159, 161, 165, 164, 168, 161, 151, 156, 169, 154, 152, 163, 160, 161, 164, 161, 158, 156, 160, 156, 172, 160, 159, 154, 158, 159, 170, 166, 156, 155, 184, 167, 139, 135, 162, 151, 155, 149, 162, 160, 152, 148, 166, 161, 157, 160, 156, 169, 153, 155, 162, 157, 157, 146, 157, 162, 160, 164, 160, 158, 167, 154, 151, 161, 168, 167, 155, 158, 155, 156, 156, 161, 154, 158, 158, 159, 162, 163, 149, 160, 165, 149, 153, 157, 166, 155, 160, 148, 158, 157, 158, 155, 173, 169, 161, 160, 156, 168, 157, 158, 156, 153, 154, 144, 164, 158, 161, 165, 155, 168, 170, 163, 165, 168, 150, 151, 160, 152, 157, 162, 156, 163, 159, 152, 153, 156, 173, 154, 158, 168, 163, 164, 177, 161, 165, 161, 158, 160, 163, 160, 164, 171, 155, 161, 156, 154, 162, 157, 168, 153, 167, 151, 165, 156, 162, 153, 161, 168, 164, 162, 169, 165, 155, 168, 162, 159, 165, 154, 156, 162, 159, 156, 155, 165, 173, 163, 160, 163, 159, 164, 162, 154, 157, 154, 163, 172, 157, 155, 161, 156, 161, 147, 149, 169, 161, 156, 156, 162, 150, 153, 151, 173, 175, 162, 159, 163, 154, 159, 158, 158, 165, 172, 154, 158, 152, 161, 156, 154, 155, 160, 157, 152, 155, 164, 157, 158, 152, 160, 158, 158, 164, 172, 153, 160, 160, 162, 162, 154, 158, 166, 162, 163, 150, 154, 162, 156, 160, 182, 159, 166, 160, 161, 163, 159, 163, 157, 157, 156, 160, 169, 166, 149, 164, 156, 154, 167, 166, 149, 155, 160, 148, 162, 164, 163, 157, 158, 162, 166, 161, 156, 170, 156, 152, 157, 151, 154, 151, 155, 151, 156, 152, 167, 159, 167, 155, 156, 156, 152, 157, 163, 173, 162, 162, 153, 159, 169, 167, 159, 167, 157, 143, 159, 157, 154, 162, 151, 166, 164, 157, 169, 155, 159, 160, 160, 173, 152, 162, 155, 160, 159, 157, 161, 155, 162, 164, 157, 164, 157, 165, 163, 150, 149, 165, 167, 158, 164, 156, 157, 153, 167, 152, 164, 163, 147, 169, 157, 157, 164, 159, 155, 152, 154, 154, 154, 160, 172, 155, 175, 158, 155, 157, 155, 158, 164, 161, 157, 158, 159, 154, 157, 167, 160, 164, 167, 148, 160, 160, 167, 152, 160, 153, 150, 166, 165, 154, 168, 151, 158, 162, 157, 157, 170, 169, 156, 166, 162, 163, 159, 167, 163, 155, 155, 156, 158, 158, 155, 161, 152, 164, 161, 169, 159, 161, 160, 167, 162, 156, 153, 154, 171, 170, 155, 161, 161, 157, 167, 165, 153, 172, 157, 168, 155, 155, 161, 157, 167, 156, 157, 160, 159, 152, 158, 155, 173, 170, 155, 166, 158, 164, 166, 160, 155, 169, 151, 155, 161, 156, 159, 153, 154, 153, 157, 159, 161, 149, 161, 146, 156, 168, 162, 168, 159, 152, 150, 156, 161, 164, 162, 160, 158, 158, 170, 163, 157, 157, 162, 164, 158, 159, 155, 149, 159, 151, 163, 162, 155, 154, 159, 152, 152, 169, 168, 160, 162, 166, 153, 160, 168, 163, 154, 165, 166, 154, 159, 163, 182, 145, 151, 155, 160, 163, 156, 146, 153, 154, 148, 151, 158, 160, 154, 154, 152, 156, 155, 166, 157, 163, 164, 160, 146, 150, 162, 160, 163, 166, 156, 160, 169, 153, 153, 167, 140, 163, 158, 162, 158, 153, 156, 169, 160, 161, 152, 159, 159, 144, 157, 152, 169, 165, 160, 155, 158, 157, 162, 159, 155, 153, 158, 149, 157, 158, 180, 167, 151, 171, 150, 162, 162, 150, 153, 160, 164, 148, 158, 152, 157, 153, 161, 153, 155, 154, 155, 166, 151, 153, 154, 157, 159, 161, 152, 156, 169, 173, 162, 144, 161, 153, 158, 153, 172, 151, 164, 160, 153, 153, 162, 162, 160, 158, 160, 152, 154, 167, 163, 188, 163, 163, 162, 157, 160, 160, 155, 164, 162, 157, 180, 166, 158, 162, 166, 164, 153, 156, 163, 168, 158, 159, 151, 163, 170, 161, 171, 168, 149, 155, 162, 167, 166, 159, 157, 159, 163, 162, 154, 152, 153, 163, 164, 157, 160, 155, 142, 165, 156, 158, 170, 162, 170, 162, 158, 162, 162, 165, 161, 166, 143, 146, 152, 167, 163, 161, 156, 172, 162, 142, 159, 163, 155, 159, 157, 164, 155, 156, 164, 154, 156, 150, 154, 157, 156, 157, 159, 170, 166, 152, 157, 160, 162, 162, 157, 155, 160, 156, 156, 156, 157, 156, 164, 169, 155, 159, 167, 141, 158, 151, 164, 160, 156, 154, 158, 153, 156, 173, 159, 160, 160, 160, 156, 165, 161, 166, 167, 164, 159, 159, 153, 158, 153, 154, 153, 164, 155, 148, 152, 152, 162, 159, 163, 157, 157, 159, 160, 170, 157, 151, 160, 153, 157, 159, 159, 152, 161, 152, 158, 156, 151, 156, 147, 151, 157, 147, 163, 167, 163, 160, 161, 166, 163, 170, 162, 166, 165, 166, 152, 151, 158, 164, 163, 163, 162, 150, 153, 148, 160, 169, 175, 157, 169, 167, 162, 164, 162, 158, 164, 153, 178, 147, 153, 155, 160, 158, 171, 166, 162, 157, 159, 167, 166, 162, 151, 161, 166, 159, 170, 153, 161, 159, 148, 151, 158, 153, 158, 149, 150, 159, 159, 153, 161, 154, 170, 156, 161, 164, 169, 152, 148, 161, 167, 157, 165, 157, 147, 168, 154, 161, 159, 154, 161, 160, 160, 156, 157, 155, 158, 160, 168, 153, 159, 152, 161, 142, 163, 159, 155, 163, 159, 154, 146, 168, 165, 161, 153, 160, 165, 163, 158, 162, 160, 154, 155, 155, 155, 160, 174, 150, 148, 166, 160, 151, 152, 178, 171, 150, 158, 156, 160, 161, 170, 162, 158, 162, 153, 166, 155, 154, 171, 167, 177, 165, 163, 149, 165, 159, 154, 164, 167, 158, 156, 169, 164, 159, 166, 165, 163, 166, 163, 159, 148, 165, 159, 160, 166, 166, 154, 152, 158, 162, 166, 173, 156, 158, 169, 151, 157, 147, 149, 157, 161, 160, 154, 157, 167, 162, 149, 162, 160, 155, 158, 163, 164, 159, 164, 153, 174, 152, 168, 164, 161, 156, 158, 163, 163, 166, 151, 167, 166, 178, 160, 169, 176, 155, 161, 166, 157, 160, 160, 165, 163, 154, 155, 156, 155, 158, 158, 153, 162, 156, 160, 145, 157, 176, 159, 157, 163, 164, 160, 157, 149, 159, 171, 150, 158, 156, 162, 159, 158, 151, 159, 162, 163, 154, 157, 154, 153, 174, 159, 152, 164, 159, 161, 158, 157, 152, 154, 163, 161, 167, 157, 161, 164, 160, 168, 168, 159, 156, 160, 159, 158, 164, 162, 160, 158, 162, 153, 169, 173, 167, 149, 159, 163, 159, 161, 164, 173, 154, 152, 165, 157, 158, 152, 156, 152, 155, 157, 167, 165, 160, 157, 172, 160, 162, 158, 161, 151, 164, 163, 152, 153, 159, 152, 158, 159, 156, 159, 169, 154, 160, 152, 151, 145, 167, 158, 152, 149, 157, 161, 152, 162, 167, 162, 154, 165, 169, 164, 152, 163, 161, 156, 162, 169, 159, 163, 156, 165, 156, 166, 160, 157, 158, 154, 161, 163, 161, 157, 158, 153, 157, 157, 172, 151, 158, 159, 162, 161, 155, 157, 150, 159, 160, 155, 155, 156, 156, 156, 159, 156, 166, 155, 164, 170, 157, 156, 155, 166, 153, 148, 159, 168, 164, 160, 155, 176, 165, 158, 154, 159, 161, 147, 162, 153, 152, 161, 160, 157, 155, 163, 167, 154, 160, 164, 161, 161, 160, 150, 160, 151, 172, 163, 169, 171, 169, 153, 164, 169, 171, 157, 159, 156, 158, 158, 169, 148, 176, 166, 177, 157, 158, 165, 173, 162, 156, 159, 143, 152, 167, 157, 163, 167, 163, 160, 160, 169, 158, 166, 163, 165, 165, 158, 162, 157, 166, 163, 160, 159, 162, 168, 152, 162, 160, 153, 156, 161, 159, 158, 163, 155, 173, 157, 156, 161, 159, 165, 161, 168, 159, 164, 165, 135, 155, 157, 153, 165, 163, 148, 160, 154, 154, 162, 169, 162, 151, 154, 161, 153, 162, 165, 157, 159, 148, 165, 166, 155, 153, 154, 147, 159, 163, 158, 167, 166, 173, 155, 167, 160, 162, 148, 158, 169, 159, 163, 157, 162, 161, 158, 152, 164, 157, 158, 153, 159, 150, 154, 153, 158, 158, 149, 158, 152, 168, 159, 152, 156, 162, 157, 145, 155, 170, 160, 156, 154, 150, 159, 160, 154, 148, 158, 152, 158, 154, 158, 165, 154, 164, 158, 153, 160, 166, 158, 162, 155, 166, 162, 155, 156, 164, 161, 157, 175, 164, 156, 166, 153, 157, 161, 169, 162, 161, 158, 152, 151, 159, 156, 158, 158, 164, 157, 165, 157, 163, 158, 145, 159, 162, 156, 167, 147, 161, 160, 163, 157, 168, 151, 160, 166, 171, 164, 158, 160, 163, 160, 162, 164, 159, 155, 158, 158, 165, 162, 160, 164, 152, 160, 154, 162, 164, 159, 149, 152, 164, 170, 165, 157, 163, 157, 161, 171, 174, 154, 158, 173, 153, 152, 157, 153, 165, 160, 159, 159, 165, 166, 140, 150, 156, 158, 153, 178, 165, 162, 153, 159, 174, 168, 161, 159, 185, 166, 153, 157, 167, 165, 166, 157, 157, 159, 157, 146, 162, 159, 153, 156, 151, 175, 156, 151, 160, 154, 158, 173, 163, 162, 181, 149, 155, 162, 165, 166, 145, 147, 162, 169, 148, 167, 154, 160, 162, 158, 161, 172, 167, 157, 171, 156, 157, 165, 155, 172, 169, 157, 157, 154, 163, 146, 160, 159, 156, 158, 162, 158, 158, 157, 161, 158, 162, 149, 153, 151, 150, 157, 150, 163, 164, 172, 156, 164, 165, 158, 167, 161, 152, 165, 169, 161, 151, 147, 161, 159, 165, 157, 149, 171, 165, 159, 165, 156, 162, 151, 161, 149, 161, 153, 164, 160, 161, 159, 162, 174, 163, 150, 161, 161, 160, 164, 159, 159, 158, 179, 149, 159, 160, 161, 173, 166, 157, 159, 150, 158, 150, 172, 154, 156, 154, 167, 178, 136, 161, 158, 156, 156, 159, 161, 157, 157, 161, 158, 158, 165, 162, 158, 156, 174, 155, 159, 152, 171, 161, 159, 178, 159, 156, 165, 157, 157, 162, 177, 155, 159, 150, 153, 158, 160, 157, 154, 162, 159, 157, 166, 160, 157, 155, 155, 172, 154, 167, 149, 156, 163, 170, 170, 157, 169, 165, 152, 152, 156, 161, 155, 163, 155, 152, 159, 162, 173, 151, 159, 159, 158, 134, 156, 157, 160, 160, 153, 144, 165, 160, 151, 164, 158, 186, 170, 162, 168, 166, 168, 151, 159, 175, 162, 162, 157, 146, 155, 159, 147, 159, 158, 158, 157, 163, 156, 153, 174, 181, 153, 161, 148, 159, 162, 141, 156, 153, 161, 156, 182, 152, 155, 182, 180, 166, 151, 167, 164, 156, 161, 152, 158, 159, 156, 159, 163, 160, 154, 158, 157, 155, 164, 163, 149, 138, 152, 155, 162, 164, 161, 162, 159, 168, 164, 157, 161, 153, 153, 162, 164, 159, 165, 161, 158, 159, 166, 152, 155, 160, 144, 144, 158, 148, 153, 165, 161, 153, 157, 164, 166, 168, 174, 159, 158, 167, 162, 162, 163, 151, 160, 160, 167, 162, 170, 176, 159, 163, 161, 154, 164, 189, 164, 161, 161, 174, 166, 158, 159, 164, 147, 160, 163, 163, 158, 154, 158, 182, 153, 156, 161, 168, 154, 160, 152, 174, 162, 158, 160, 168, 162, 159, 157, 152, 160, 159, 178, 162, 160, 157, 153, 152, 149, 152, 145, 153, 143, 160, 168, 162, 167, 162, 161, 160, 159, 161, 166, 162, 149, 160, 150, 165, 156, 162, 168, 152, 164, 155, 155, 153, 153, 153, 157, 148, 160, 161, 168, 160, 163, 154, 164, 164, 165, 177, 152, 158, 172, 155, 171, 154, 157, 158, 151, 168, 157, 156, 156, 162, 165, 149, 157, 160, 174, 159, 164, 156, 171, 160, 158, 158, 175, 165, 156, 153, 158, 151, 152, 159, 174, 185, 153, 164, 156, 163, 163, 154, 151, 159, 165, 160, 161, 158, 152, 153, 162, 165, 153, 151, 160, 163, 158, 159, 163, 155, 161, 166, 165, 163, 163, 144, 156, 154, 150, 160, 156, 156, 156, 159, 160, 159, 149, 161, 157, 159, 158, 161, 160, 156, 156, 163, 159, 153, 154, 157, 169, 159, 183, 160, 159, 160, 174, 174, 157, 164, 162, 161, 158, 160, 153, 163, 155, 154, 158, 160, 152, 155, 159, 163, 174, 163, 161, 163, 158, 165, 159, 150, 156, 151, 159, 168, 155, 165, 159, 164, 154, 156, 159, 159, 159, 158, 160, 156, 161, 166, 162, 151, 155, 159, 162, 155, 163, 162, 155, 154, 163, 163, 158, 157, 163, 154, 160, 157, 176, 154, 160, 158, 160, 164, 165, 165, 157, 153, 164, 161, 154, 158, 151, 161, 161, 158, 156, 160, 141, 159, 148, 160, 162, 150, 158, 161, 164, 159, 162, 165, 152, 157, 154, 159, 156, 162, 154, 160, 164, 161, 158, 165, 160, 165, 159, 154, 162, 159, 156, 175, 159, 164, 157, 160, 167, 159, 157, 157, 171, 157, 158, 158, 159, 151, 155, 166, 155, 161, 159, 158, 159, 159, 166, 162, 163, 156, 166, 165, 158, 173, 148, 160, 170, 161, 161, 156, 169, 159, 165, 158, 163, 162, 159, 154, 160, 159, 160, 167, 161, 162, 157, 163, 153, 160, 163, 161, 155, 160, 156, 181, 158, 167, 162, 161, 164, 156, 162, 156, 136, 159, 163, 157, 162, 166, 154, 157, 159, 160, 161, 160, 159, 158, 158, 157, 160, 160, 157, 149, 174, 159, 161, 158, 162, 162, 158, 161, 158, 156, 159, 152, 159, 162, 156, 162, 161, 166, 166, 155, 154, 155, 164, 162, 162, 155, 157, 165, 158, 160, 162, 156, 166, 170, 160, 164, 168, 159, 160, 159, 151, 170, 158, 161, 163, 160, 157, 154, 158, 165, 161, 154, 163, 163, 163, 157, 162, 157, 158, 187, 161, 162, 170, 153, 154, 158, 161, 153, 161, 163, 163, 164, 160, 156, 158, 157, 143, 156, 160, 162, 171, 157, 152, 159, 164, 163, 164, 155, 164, 163, 163, 154, 159, 171, 157, 157, 160, 164, 156, 162, 159, 167, 168, 158, 159, 157, 144, 152, 164, 162, 168, 164, 158, 155, 159, 163, 153, 159, 160, 161, 165, 155, 158, 161, 158, 156, 162, 157, 162, 163, 157, 156, 158, 158, 165, 159, 161, 159, 156, 157, 162, 174, 155, 157, 162, 153, 160, 166, 163, 161, 157, 162, 170, 154, 152, 164, 161, 160, 158, 159, 161, 165, 161, 161, 158, 161, 161, 162, 159, 170, 153, 161, 145, 164, 159, 158, 160, 162, 166, 153, 160, 169, 162, 162, 165, 160, 155, 165, 171, 155, 161, 158, 153, 153, 163, 162, 159, 158, 162, 163, 159, 172, 158, 155, 162, 162, 161, 163, 151, 155, 165, 164, 164, 163, 166, 161, 156, 168, 154, 161, 155, 157, 161, 150, 174, 159, 158, 154, 152, 161, 163, 161, 153, 157, 158, 156, 159, 162, 162, 154, 163, 164, 157, 162, 170, 146, 159, 153, 161, 153, 194, 160, 167, 160, 158, 166, 158, 160, 161, 158, 156, 161, 159, 162, 154, 164, 159, 163, 162, 152, 160, 159, 145, 156, 158, 161, 155, 156, 153, 152, 159, 159, 162, 156, 168, 161, 159, 153, 159, 154, 158, 162, 157, 164, 158, 156, 156, 148, 160, 163, 159, 159, 160, 155, 163, 167, 156, 155, 156, 161, 160, 152, 160, 153, 155, 164, 168, 160, 153, 157, 157, 162, 160, 150, 158, 156, 158, 159, 152, 158, 156, 162, 159, 145, 158, 158, 161, 170, 147, 159, 155, 151, 159, 161, 156, 159, 161, 159, 154, 151, 148, 162, 154, 148, 161, 158, 165, 158, 156, 161, 155, 156, 159, 160, 162, 161, 158, 155, 160, 151, 160, 172, 162, 158, 154, 164, 154, 160, 159, 163, 155, 157, 164, 160, 166, 153, 154, 155, 161, 158, 157, 154, 159, 165, 159, 160, 148, 160, 161, 162, 149, 158, 168, 163, 171, 164, 162, 157, 168, 161, 164, 164, 154, 161, 155, 157, 156, 165, 164, 166, 161, 158, 169, 152, 154, 157, 156, 155, 162, 162, 156, 157, 158, 165, 168, 157, 163, 156, 147, 158, 167, 161, 158, 156, 150, 164, 154, 166, 160, 164, 163, 167, 164, 165, 170, 163, 152, 165, 162, 163, 151, 155, 156, 165, 150, 165, 167, 159, 161, 159, 159, 156, 159, 155, 162, 151, 164, 159, 159, 164, 156, 155, 160, 162, 173, 152, 169, 159, 163, 155, 162, 160, 157, 155, 160, 155, 155, 163, 157, 156, 151, 158, 162, 146, 156, 157, 170, 156, 158, 163, 160, 158, 160, 165, 162, 158, 166, 154, 165, 162, 161, 159, 160, 163, 151, 163, 159, 155, 153, 149, 157, 157, 156, 161, 154, 166, 162, 169, 161, 156, 160, 164, 153, 161, 167, 157, 165, 160, 154, 161, 165, 155, 175, 162, 161, 154, 153, 157, 163, 168, 159, 155, 157, 164, 156, 162, 166, 161, 158, 160, 155, 157, 159, 150, 157, 152, 160, 165, 154, 167, 153, 169, 152, 158, 158, 153, 157, 160, 155, 178, 169, 155, 154, 152, 159, 159, 158, 148, 162, 155, 163, 147, 155, 171, 166, 160, 167, 159, 157, 161, 163, 158, 152, 153, 158, 156, 150, 173, 161, 154, 155, 159, 141, 168, 155, 157, 160, 155, 160, 161, 159, 164, 163, 158, 155, 158, 164, 163, 151, 162, 145, 159, 153, 165, 161, 159, 160, 157, 160, 153, 157, 158, 157, 160, 158, 170, 170, 161, 158, 164, 156, 156, 162, 169, 154, 145, 158, 159, 160, 157, 162, 165, 153, 158, 160, 152, 162, 159, 159, 162, 163, 154, 162, 158, 166, 165, 164, 157, 157, 162, 164, 157, 157, 159, 153, 161, 162, 158, 169, 165, 152, 164, 162, 155, 154, 144, 154, 161, 159, 157, 159, 161, 161, 158, 161, 152, 148, 164, 150, 158, 152, 159, 159, 152, 150, 160, 147, 161, 160, 147, 154, 159, 160, 160, 160, 155, 154, 146, 164, 152, 159, 163, 160, 157, 168, 160, 158, 172, 154, 165, 156, 160, 160, 156, 156, 152, 164, 169, 158, 169, 155, 155, 154, 164, 148, 153, 173, 160, 155, 156, 159, 159, 157, 169, 148, 159, 150, 159, 162, 163, 157, 156, 174, 157, 161, 164, 153, 162, 155, 157, 159, 160, 155, 166, 153, 163, 162, 164, 156, 151, 166, 159, 154, 143, 163, 157, 159, 169, 155, 153, 156, 168, 168, 162, 165, 153, 169, 164, 160, 155, 152, 159, 163, 154, 156, 166, 156, 159, 161, 162, 160, 159, 157, 167, 161, 158, 155, 159, 153, 162, 159, 153, 151, 162, 162, 159, 155, 154, 165, 162, 167, 163, 164, 167, 161, 158, 158, 160, 154, 155, 162, 159, 163, 159, 158, 152, 157, 164, 157, 163, 150, 170, 155, 145, 155, 161, 156, 160, 154, 147, 153, 162, 168, 162, 158, 161, 153, 160, 166, 153, 161, 168, 147, 161, 160, 155, 164, 159, 150, 147, 158, 156, 147, 158, 153, 163, 164, 162, 167, 154, 154, 149, 158, 158, 154, 160, 158, 145, 152, 161, 156, 165, 168, 159, 162, 158, 165, 149, 157, 159, 158, 158, 159, 163, 157, 162, 159, 179, 162, 153, 149, 162, 152, 153, 145, 178, 168, 157, 148, 169, 163, 159, 157, 158, 156, 173, 162, 147, 156, 160, 160, 156, 146, 144, 140, 164, 153, 163, 165, 150, 153, 163, 155, 162, 157, 158, 156, 153, 159, 155, 162, 160, 158, 160, 155, 153, 151, 159, 157, 158, 158, 167, 159, 158, 159, 164, 158, 160, 150, 161, 157, 159, 147, 162, 151, 158, 165, 160, 158, 174, 156, 166, 156, 159, 160, 171, 150, 145, 167, 155, 151, 164, 165, 163, 154, 158, 161, 153, 165, 160, 158, 154, 152, 153, 145, 160, 164, 164, 160, 160, 159, 155, 148, 175, 160, 161, 161, 155, 160, 163, 157, 167, 165, 161, 156, 165, 161, 146, 156, 162, 155, 157, 160, 152, 159, 161, 170, 173, 160, 162, 170, 151, 162, 150, 161, 163, 156, 163, 159, 150, 165, 154, 164, 157, 155, 163, 155, 171, 153, 158, 154, 163, 151, 139, 160, 166, 162, 167, 164, 163, 164, 161, 156, 168, 170, 154, 159, 159, 155, 146, 157, 163, 168, 158, 161, 163, 158, 156, 169, 161, 161, 166, 165, 154, 153, 153, 169, 151, 185, 157, 165, 153, 162, 158, 160, 166, 157, 173, 167, 160, 156, 163, 164, 155, 166, 159, 155, 154, 158, 160, 169, 158, 164, 158, 160, 150, 151, 154, 156, 155, 152, 149, 161, 157, 162, 153, 156, 168, 167, 162, 153, 154, 153, 162, 157, 155, 158, 142, 151, 154, 159, 167, 162, 154, 158, 163, 166, 154, 168, 176, 159, 159, 151, 164, 152, 165, 163, 161, 165, 156, 158, 163, 162, 158, 155, 153, 156, 164, 163, 179, 158, 172, 153, 160, 147, 152, 147, 172, 159, 170, 161, 153, 156, 163, 158, 156, 149, 158, 155, 162, 157, 160, 160, 158, 161, 158, 163, 170, 158, 158, 159, 164, 147, 164, 154, 159, 157, 152, 155, 173, 164, 181, 165, 157, 155, 148, 156, 163, 153, 146, 154, 150, 153, 171, 160, 145, 157, 158, 162, 157, 155, 159, 153, 153, 161, 151, 163, 161, 162, 159, 152, 167, 156, 156, 154, 153, 151, 171, 156, 159, 152, 158, 157, 157, 157, 175, 156, 163, 137, 169, 162, 163, 154, 145, 163, 155, 173, 162, 159, 154, 157, 162, 154, 157, 154, 151, 155, 165, 148, 156, 164, 161, 158, 152, 158, 154, 165, 153, 160, 157, 166, 170, 161, 158, 156, 177, 163, 162, 158, 164, 154, 152, 157, 155, 160, 155, 153, 158, 142, 160, 163, 164, 163, 156, 154, 160, 166, 161, 173, 177, 177, 156, 153, 158, 156, 152, 150, 157, 159, 153, 156, 164, 158, 164, 157, 164, 161, 152, 156, 166, 163, 156, 158, 161, 163, 149, 162, 153, 157, 162, 159, 162, 168, 171, 163, 157, 168, 151, 169, 175, 162, 145, 164, 156, 158, 158, 162, 151, 159, 164, 157, 179, 153, 168, 155, 156, 162, 161, 154, 160, 163, 163, 162, 153, 159, 168, 160, 153, 162, 167, 155, 170, 163, 165, 160, 160, 156, 155, 157, 158, 156, 147, 162, 160, 165, 153, 160, 161, 156, 159, 151, 166, 155, 155, 164, 159, 150, 153, 163, 161, 155, 171, 150, 159, 156, 159, 152, 166, 166, 160, 161, 153, 162, 155, 152, 155, 153, 160, 161, 164, 161, 160, 161, 152, 152, 153, 155, 157, 150, 165, 160, 153, 151, 164, 154, 154, 162, 184, 162, 152, 157, 157, 158, 163, 150, 161, 171, 157, 160, 171, 154, 168, 168, 161, 171, 161, 148, 160, 162, 159, 158, 143, 155, 173, 163, 159, 159, 157, 159, 154, 166, 162, 157, 158, 162, 159, 169, 159, 168, 174, 158, 156, 152, 162, 181, 164, 162, 162, 180, 161, 150, 144, 158, 158, 152, 163, 158, 155, 152, 148, 165, 160, 148, 165, 156, 160, 157, 166, 159, 156, 159, 145, 160, 158, 159, 161, 146, 163, 151, 156, 170, 158, 155, 158, 161, 144, 158, 151, 156, 167, 154, 160, 159, 177, 160, 153, 153, 155, 164, 159, 156, 157, 160, 183, 156, 166, 172, 147, 151, 161, 162, 150, 159, 163, 159, 155, 147, 189, 156, 158, 157, 157, 160, 168, 167, 156, 161, 149, 158, 160, 156, 164, 153, 154, 161, 169, 158, 180, 157, 155, 158, 160, 165, 157, 152, 164, 158, 158, 155, 153, 158, 160, 157, 159, 163, 151, 162, 159, 159, 157, 154, 167, 170, 157, 159, 160, 162, 160, 149, 149, 155, 151, 157, 166, 157, 159, 163, 164, 154, 163, 165, 146, 160, 148, 152, 159, 155, 157, 165, 166, 175, 159, 157, 163, 161, 161, 166, 169, 140, 160, 173, 153, 155, 157, 162, 154, 152, 159, 158, 157, 169, 154, 151, 153, 161, 160, 172, 149, 153, 165, 164, 147, 163, 161, 163, 162, 162, 165, 149, 150, 148, 159, 161, 150, 155, 159, 157, 148, 158, 167, 156, 160, 160, 155, 159, 170, 153, 153, 165, 164, 164, 146, 157, 160, 168, 151, 160, 165, 158, 162, 154, 157, 164, 162, 158, 157, 170, 160, 160, 160, 157, 155, 162, 162, 150, 166, 150, 152, 160, 153, 159, 158, 160, 161, 161, 160, 161, 153, 170, 175, 162, 161, 164, 161, 158, 155, 154, 167, 165, 153, 156, 161, 158, 161, 163, 153, 156, 158, 157, 161, 169, 167, 159, 156, 157, 158, 161, 157, 155, 160, 151, 159, 170, 163, 170, 178, 160, 152, 162, 168, 150, 156, 154, 150, 163, 145, 168, 153, 157, 158, 160, 154, 159, 156, 156, 167, 160, 162, 154, 162, 153, 158, 162, 160, 158, 164, 161, 162, 166, 148, 155, 161, 152, 166, 158, 154, 157, 154, 155, 161, 139, 154, 158, 163, 169, 156, 157, 168, 158, 160, 168, 167, 172, 164, 159, 150, 155, 161, 160, 163, 151, 159, 156, 178, 163, 168, 153, 161, 167, 161, 156, 165, 154, 147, 160, 165, 163, 163, 155, 158, 171, 155, 159, 163, 160, 158, 162, 159, 168, 171, 152, 161, 161, 164, 158, 157, 149, 160, 157, 158, 159, 171, 156, 155, 158, 164, 159, 154, 149, 162, 156, 153, 153, 171, 160, 165, 158, 165, 157, 158, 160, 155, 163, 163, 148, 158, 157, 153, 155, 159, 159, 162, 164, 161, 163, 165, 167, 165, 166, 162, 161, 156, 169, 151, 160, 142, 149, 155, 155, 163, 168, 166, 159, 154, 146, 147, 146, 161, 158, 155, 160, 156, 171, 160, 163, 169, 158, 156, 151, 162, 160, 160, 156, 159, 158, 159, 151, 155, 160, 156, 158, 157, 159, 164, 164, 152, 154, 167, 165, 158, 155, 156, 155, 161, 166, 159, 154, 159, 162, 154, 163, 164, 166, 165, 160, 182, 154, 164, 158, 159, 144, 157, 157, 150, 159, 158, 160, 155, 156, 150, 159, 150, 143, 162, 163, 162, 150, 153, 157, 149, 155, 159, 164, 168, 160, 159, 162, 152, 157, 155, 165, 157, 164, 151, 157, 146, 162, 157, 154, 170, 162, 161, 161, 154, 163, 163, 155, 161, 161, 151, 165, 159, 174, 153, 154, 155, 157, 173, 158, 153, 161, 159, 158, 152, 157, 161, 158, 157, 155, 157, 158, 159, 165, 158, 152, 164, 156, 167, 161, 154, 170, 166, 159, 155, 161, 160, 164, 159, 152, 156, 162, 147, 144, 163, 160, 150, 169, 154, 163, 158, 162, 166, 157, 164, 157, 155, 164, 160, 156, 155, 166, 160, 162, 167, 152, 165, 169, 153, 162, 164, 158, 172, 158, 160, 162, 161, 169, 162, 161, 163, 158, 158, 151, 152, 165, 149, 161, 160, 158, 155, 158, 162, 164, 161, 164, 158, 166, 164, 158, 165, 156, 159, 153, 161, 171, 153, 160, 175, 165, 157, 162, 164, 158, 173, 157, 151, 166, 160, 171, 163, 164, 157, 155, 158, 165, 157, 158, 156, 159, 157, 161, 162, 157, 162, 151, 165, 159, 154, 178, 153, 161, 155, 164, 149, 158, 155, 157, 161, 157, 161, 162, 158, 157, 159, 157, 159, 155, 152, 169, 160, 154, 153, 161, 159, 154, 152, 161, 161, 158, 158, 166, 157, 163, 161, 156, 154, 154, 157, 166, 146, 162, 153, 162, 155, 167, 154, 163, 147, 152, 164, 153, 169, 171, 152, 172, 173, 161, 164, 161, 167, 165, 172, 162, 156, 160, 158, 165, 155, 161, 158, 165, 164, 160, 157, 158, 163, 160, 163, 159, 166, 157, 154, 155, 157, 156, 157, 164, 164, 160, 158, 161, 158, 159, 161, 171, 156, 156, 153, 159, 165, 163, 163, 158, 159, 163, 158, 153, 160, 150, 159, 167, 160, 158, 166, 154, 164, 151, 160, 160, 162, 153, 159, 165, 157, 166, 159, 163, 161, 157, 156, 161, 164, 159, 160, 157, 157, 159, 161, 165, 165, 161, 151, 158, 161, 167, 161, 160, 164, 163, 161, 163, 163, 159, 165, 168, 162, 164, 158, 162, 163, 157, 164, 167, 160, 159, 161, 163, 157, 162, 162, 163, 159, 156, 162, 162, 157, 148, 157, 157, 159, 166, 156, 162, 159, 159, 160, 159, 156, 157, 156, 157, 156, 168, 162, 153, 163, 165, 166, 164, 158, 160, 157, 166, 156, 162, 168, 161, 167, 152, 161, 157, 159, 167, 164, 161, 160, 164, 164, 161, 162, 161, 161, 162, 156, 152, 168, 163, 157, 166, 158, 159, 159, 157, 154, 157, 161, 156, 163, 163, 161, 165, 157, 173, 166, 159, 159, 155, 159, 163, 167, 162, 164, 160, 158, 151, 158, 158, 161, 160, 165, 153, 159, 158, 156, 157, 160, 154, 162, 157, 163, 160, 156, 160, 169, 158, 157, 165, 159, 159, 161, 164, 158, 157, 163, 152, 164, 162, 159, 158, 159, 163, 157, 164, 164, 164, 162, 156, 160, 159, 158, 162, 159, 168, 160, 154, 166, 163, 158, 161, 168, 154, 154, 156, 163, 158, 161, 160, 167, 161, 156, 159, 160, 159, 159, 159, 159, 153, 155, 162, 164, 163, 160, 173, 160, 158, 155, 159, 159, 154, 156, 155, 164, 161, 161, 163, 163, 156, 159, 160, 160, 163, 154, 159, 158, 160, 163, 158, 152, 156, 160, 150, 160, 163, 160, 164, 161, 162, 160, 164, 159, 155, 171, 158, 161, 164, 164, 161, 160, 159, 162, 154, 164, 159, 156, 162, 160, 160, 154, 163, 163, 160, 165, 162, 159, 161, 160, 160, 156, 160, 166, 155, 158, 161, 157, 164, 166, 164, 157, 161, 160, 163, 164, 159, 159, 163, 164, 154, 160, 156, 166, 159, 158, 152, 162, 161, 161, 161, 156, 160, 157, 150, 166, 166, 159, 160, 162, 165, 159, 161, 163, 164, 159, 160, 165, 170, 163, 161, 157, 154, 154, 156, 162, 157, 166, 164, 163, 170, 163, 162, 160, 156, 164, 158, 167, 151, 161, 156, 160, 159, 162, 159, 158, 162, 161, 158, 156, 161, 154, 158, 155, 161, 159, 159, 159, 162, 167, 157, 156, 161, 159, 161, 157, 160, 168, 159, 153, 159, 160, 153, 161, 170, 152, 165, 162, 148, 159, 167, 161, 169, 158, 159, 159, 162, 161, 154, 162, 158, 170, 160, 163, 158, 157, 165, 165, 161, 168, 165, 159, 162, 161, 157, 160, 157, 153, 162, 160, 159, 163, 162, 156, 164, 158, 158, 162, 162, 156, 160, 162, 163, 159, 166, 159, 157, 156, 164, 165, 156, 158, 160, 161, 149, 158, 156, 166, 159, 162, 152, 164, 159, 172, 156, 161, 161, 159, 156, 159, 154, 163, 165, 155, 165, 162, 159, 166, 163, 153, 157, 163, 163, 164, 158, 155, 167, 158, 168, 156, 156, 171, 162, 158, 160, 148, 156, 164, 170, 166, 161, 164, 164, 161, 167, 167, 155, 173, 159, 156, 159, 156, 156, 158, 160, 170, 156, 159, 167, 161, 165, 157, 161, 161, 157, 166, 169, 148, 164, 177, 155, 155, 167, 158, 162, 160, 159, 157, 157, 170, 139, 161, 162, 162, 158, 164, 164, 162, 160, 160, 164, 159, 153, 163, 157, 159, 156, 150, 159, 155, 159, 155, 155, 167, 165, 157, 152, 154, 161, 157, 167, 174, 155, 162, 165, 159, 158, 163, 157, 160, 155, 153, 155, 166, 159, 166, 154, 158, 163, 158, 159, 166, 160, 160, 191, 156, 158, 163, 155, 151, 167, 160, 160, 168, 168, 159, 151, 156, 157, 162, 161, 170, 155, 155, 159, 160, 163, 133, 164, 165, 164, 158, 164, 159, 158, 154, 155, 156, 165, 161, 152, 161, 161, 135, 166, 165, 157, 164, 158, 164, 163, 159, 159, 159, 160, 160, 170, 154, 158, 159, 159, 150, 166, 164, 133, 166, 161, 159, 157, 158, 162, 160, 165, 166, 162, 163, 160, 161, 162, 150, 161, 166, 163, 156, 150, 159, 176, 152, 169, 161, 160, 160, 169, 158, 157, 158, 162, 163, 162, 157, 152, 155, 164, 167, 158, 172, 161, 158, 157, 161, 165, 154, 158, 169, 156, 153, 166, 158, 157, 171, 161, 166, 160, 163, 158, 157, 166, 167, 157, 155, 150, 165, 162, 165, 159, 162, 173, 170, 161, 145, 163, 164, 164, 157, 160, 164, 163, 176, 176, 153, 156, 154, 160, 163, 157, 158, 162, 164, 157, 166, 160, 163, 166, 156, 162, 161, 156, 163, 176, 161, 160, 160, 157, 159, 157, 156, 159, 160, 161, 153, 168, 162, 140, 164, 162, 159, 151, 161, 159, 164, 159, 165, 151, 157, 160, 162, 162, 158, 176, 158, 165, 161, 160, 163, 168, 159, 155, 156, 166, 166, 156, 161, 153, 163, 155, 156, 155, 162, 163, 164, 161, 160, 158, 158, 157, 160, 168, 156, 159, 163, 158, 162, 162, 166, 159, 158, 160, 160, 159, 158, 169, 160, 159, 165, 156, 153, 151, 155, 157, 160, 156, 157, 161, 156, 162, 160, 157, 163, 161, 164, 165, 172, 157, 158, 161, 159, 169, 162, 169, 160, 155, 157, 158, 165, 146, 159, 161, 165, 158, 163, 160, 159, 171, 158, 158, 154, 172, 159, 159, 155, 158, 158, 164, 163, 159, 163, 157, 163, 151, 152, 157, 162, 174, 159, 161, 163, 160, 159, 165, 159, 161, 161, 170, 167, 156, 155, 163, 161, 161, 157, 155, 168, 164, 182, 152, 158, 146, 165, 158, 161, 131, 163, 176, 160, 150, 160, 160, 161, 165, 158, 159, 154, 159, 164, 156, 163, 157, 158, 165, 161, 162, 154, 164, 159, 157, 163, 162, 157, 159, 151, 159, 161, 167, 158, 156, 165, 166, 154, 154, 158, 163, 161, 160, 142, 159, 161, 159, 163, 163, 163, 160, 166, 178, 161, 162, 160, 167, 162, 153, 164, 157, 158, 158, 164, 166, 162, 155, 156, 160, 166, 162, 165, 157, 163, 164, 163, 153, 163, 161, 153, 158, 161, 169, 160, 156, 157, 159, 161, 164, 161, 151, 161, 163, 157, 152, 160, 162, 161, 151, 150, 164, 158, 162, 159, 156, 163, 161, 159, 153, 160, 163, 155, 158, 166, 161, 176, 160, 160, 165, 161, 169, 178, 164, 175, 172, 165, 162, 159, 157, 163, 159, 159, 137, 156, 168, 158, 166, 158, 164, 159, 158, 165, 139, 163, 160, 166, 157, 163, 153, 159, 152, 161, 161, 163, 165, 163, 148, 158, 168, 165, 157, 165, 162, 158, 160, 155, 166, 167, 158, 155, 162, 157, 160, 156, 156, 163, 140, 164, 157, 155, 156, 156, 178, 161, 159, 158, 170, 170, 159, 157, 154, 159, 142, 166, 168, 159, 152, 157, 156, 156, 162, 164, 158, 165, 164, 167, 160, 158, 166, 149, 165, 163, 159, 159, 153, 161, 159, 167, 154, 164, 160, 160, 151, 170, 157, 148, 161, 160, 163, 163, 168, 162, 162, 160, 170, 159, 155, 155, 161, 157, 162, 168, 156, 158, 162, 154, 165, 162, 159, 158, 164, 162, 157, 162, 156, 150, 166, 168, 167, 162, 158, 158, 157, 164, 158, 166, 160, 160, 156, 159, 153, 162, 160, 159, 156, 157, 158, 161, 164, 163, 153, 166, 159, 160, 162, 166, 154, 160, 165, 156, 171, 152, 160, 155, 160, 166, 162, 158, 156, 157, 144, 163, 161, 158, 161, 161, 164, 160, 160, 155, 164, 169, 158, 156, 163, 157, 160, 164, 158, 165, 164, 183, 158, 171, 157, 172, 160, 154, 161, 165, 161, 164, 164, 159, 164, 173, 160, 163, 163, 158, 158, 169, 158, 162, 162, 160, 158, 162, 160, 165, 167, 177, 165, 162, 155, 163, 164, 159, 165, 168, 157, 133, 167, 154, 161, 158, 165, 151, 162, 164, 153, 161, 157, 162, 162, 168, 159, 166, 159, 159, 143, 156, 149, 197, 152, 155, 161, 160, 159, 161, 155, 167, 160, 167, 162, 164, 166, 160, 167, 165, 152, 157, 161, 151, 163, 162, 156, 158, 165, 164, 159, 162, 156, 165, 159, 164, 161, 163, 159, 161, 162, 161, 164, 157, 157, 159, 162, 163, 166, 164, 158, 159, 165, 156, 161, 163, 159, 160, 160, 153, 161, 160, 162, 168, 161, 149, 170, 157, 164, 162, 166, 163, 162, 157, 158, 165, 158, 137, 159, 170, 151, 152, 166, 151, 138, 157, 153, 159, 157, 163, 160, 162, 160, 162, 164, 161, 160, 172, 158, 166, 167, 167, 160, 158, 166, 192, 161, 159, 160, 150, 152, 171, 152, 162, 163, 159, 159, 166, 156, 159, 162, 153, 165, 161, 160, 165, 160, 153, 156, 169, 161, 165, 163, 159, 157, 178, 160, 160, 161, 162, 164, 154, 163, 161, 155, 161, 164, 164, 158, 159, 155, 153, 164, 164, 162, 153, 164, 161, 158, 158, 157, 172, 162, 162, 165, 162, 160, 168, 164, 147, 144, 161, 158, 161, 160, 143, 166, 164, 166, 165, 162, 169, 152, 159, 154, 155, 155, 157, 158, 161, 153, 157, 159, 167, 188, 160, 145, 160, 160, 164, 154, 155, 165, 149, 158, 150, 154, 158, 157, 158, 159, 156, 155, 163, 156, 167, 167, 161, 160, 170, 160, 164, 168, 158, 169, 160, 153, 161, 162, 168, 160, 159, 165, 158, 171, 161, 159, 157, 158, 162, 166, 157, 151, 172, 157, 159, 156, 162, 158, 158, 162, 164, 161, 159, 170, 168, 162, 156, 165, 162, 162, 168, 163, 159, 163, 154, 163, 165, 161, 160, 166, 169, 159, 160, 160, 159, 162, 164, 161, 154, 157, 161, 161, 160, 169, 163, 163, 161, 164, 169, 160, 159, 153, 158, 155, 154, 167, 157, 155, 156, 161, 158, 149, 165, 158, 162, 163, 163, 166, 160, 159, 164, 162, 158, 162, 156, 153, 170, 162, 154, 156, 156, 166, 159, 161, 165, 167, 158, 162, 165, 152, 152, 161, 159, 173, 163, 158, 160, 164, 164, 161, 164, 171, 164, 165, 158, 155, 159, 157, 152, 162, 160, 175, 155, 175, 162, 168, 160, 168, 163, 172, 161, 155, 153, 161, 156, 165, 158, 158, 163, 150, 154, 157, 158, 155, 164, 155, 160, 151, 151, 162, 156, 154, 153, 161, 161, 158, 165, 152, 163, 156, 167, 159, 161, 159, 160, 160, 161, 157, 156, 166, 157, 155, 169, 169, 155, 145, 159, 152, 166, 164, 162, 163, 155, 161, 164, 155, 158, 165, 155, 154, 167, 160, 156, 155, 160, 161, 163, 165, 158, 158, 169, 156, 159, 159, 169, 165, 167, 159, 152, 162, 155, 164, 163, 151, 154, 149, 160, 158, 163, 160, 162, 152, 149, 164, 172, 161, 162, 162, 168, 158, 160, 156, 163, 161, 164, 174, 159, 171, 156, 156, 178, 164, 148, 156, 156, 160, 157, 164, 162, 157, 160, 162, 164, 164, 165, 166, 160, 162, 170, 155, 161, 156, 167, 170, 161, 159, 158, 166, 158, 160, 164, 163, 156, 162, 162, 166, 149, 158, 153, 153, 162, 164, 164, 160, 164, 154, 162, 159, 166, 156, 174, 158, 153, 151, 162, 157, 166, 148, 156, 169, 158, 160, 167, 160, 154, 171, 161, 161, 162, 160, 159, 157, 173, 157, 159, 155, 164, 152, 166, 166, 163, 169, 162, 158, 157, 151, 164, 162, 167, 156, 157, 150, 164, 153, 159, 162, 164, 157, 160, 158, 155, 154, 158, 145, 157, 163, 163, 163, 156, 157, 155, 165, 162, 154, 162, 155, 160, 151, 156, 159, 155, 159, 153, 166, 155, 164, 171, 160, 159, 159, 163, 165, 162, 163, 167, 167, 158, 159, 161, 159, 157, 160, 153, 163, 157, 163, 155, 164, 155, 156, 158, 150, 165, 160, 159, 151, 167, 162, 163, 168, 162, 167, 157, 157, 157, 153, 150, 158, 148, 168, 167, 159, 159, 160, 170, 160, 160, 156, 161, 164, 159, 152, 163, 152, 165, 164, 150, 158, 159, 155, 162, 159, 161, 163, 161, 158, 162, 155, 165, 155, 161, 158, 164, 148, 165, 172, 160, 159, 164, 155, 158, 154, 171, 160, 154, 156, 170, 156, 172, 159, 164, 163, 156, 164, 159, 149, 156, 169, 163, 164, 165, 160, 158, 157, 152, 159, 152, 154, 166, 167, 149, 154, 160, 166, 167, 159, 163, 167, 154, 153, 154, 162, 161, 168, 167, 166, 175, 159, 159, 156, 152, 144, 163, 164, 152, 158, 158, 175, 166, 172, 168, 156, 165, 164, 160, 162, 151, 155, 152, 157, 159, 162, 158, 162, 183, 158, 155, 153, 159, 160, 163, 154, 156, 166, 161, 154, 154, 160, 178, 159, 148, 166, 163, 155, 160, 159, 156, 172, 153, 162, 145, 161, 154, 152, 158, 155, 158, 147, 160, 164, 162, 153, 147, 165, 147, 162, 158, 145, 147, 160, 164, 166, 162, 156, 171, 156, 151, 166, 154, 166, 164, 165, 163, 172, 163, 152, 157, 162, 162, 163, 160, 156, 136, 157, 157, 155, 160, 152, 150, 171, 175, 158, 160, 158, 155, 165, 151, 146, 167, 161, 168, 162, 154, 152, 158, 142, 161, 166, 162, 160, 157, 164, 148, 163, 155, 162, 172, 159, 149, 156, 156, 162, 168, 152, 164, 161, 154, 164, 166, 165, 167, 154, 154, 169, 155, 148, 158, 162, 166, 165, 154, 153, 197, 159, 167, 161, 163, 159, 155, 156, 163, 150, 151, 167, 159, 163, 157, 164, 162, 165, 154, 153, 155, 151, 151, 163, 174, 159, 154, 163, 148, 159, 167, 157, 165, 145, 164, 169, 162, 150, 171, 151, 149, 165, 161, 166, 157, 157, 152, 163, 154, 163, 155, 170, 151, 163, 160, 152, 160, 152, 160, 143, 153, 167, 163, 166, 164, 153, 149, 154, 157, 153, 162, 161, 159, 173, 156, 155, 165, 146, 165, 148, 153, 158, 151, 149, 167, 166, 169, 162, 159, 151, 162, 159, 151, 166, 158, 161, 160, 155, 161, 164, 168, 151, 164, 162, 158, 154, 150, 135, 164, 160, 156, 158, 157, 163, 160, 161, 162, 159, 153, 145, 160, 170, 149, 156, 159, 179, 160, 159, 157, 171, 165, 165, 181, 164, 159, 167, 151, 166, 156, 156, 161, 162, 145, 158, 151, 162, 148, 161, 158, 163, 163, 153, 151, 159, 161, 163, 171, 152, 154, 161, 163, 153, 161, 156, 153, 163, 170, 154, 158, 163, 150, 137, 156, 164, 155, 162, 167, 161, 159, 149, 173, 160, 156, 174, 156, 159, 161, 162, 163, 146, 159, 156, 146, 148, 163, 154, 152, 154, 156, 136, 168, 154, 156, 161, 163, 158, 157, 159, 164, 161, 157, 161, 160, 161, 163, 159, 159, 146, 155, 157, 163, 163, 161, 161, 154, 159, 154, 153, 148, 154, 154, 171, 146, 165, 149, 164, 158, 153, 165, 154, 162, 148, 141, 168, 151, 174, 159, 168, 160, 157, 158, 152, 156, 157, 167, 150, 162, 160, 157, 148, 164, 156, 159, 145, 155, 155, 156, 161, 174, 162, 152, 157, 161, 162, 158, 150, 156, 147, 171, 159, 167, 155, 158, 152, 159, 173, 164, 166, 153, 152, 162, 154, 147, 154, 160, 155, 152, 155, 159, 164, 160, 152, 154, 144, 163, 152, 138, 150, 149, 162, 159, 153, 161, 154, 173, 157, 161, 160, 169, 152, 158, 152, 159, 163, 160, 164, 160, 153, 170, 158, 164, 161, 158, 152, 177, 156, 152, 159, 149, 157, 152, 162, 169, 158, 161, 155, 157, 156, 162, 157, 148, 152, 155, 180, 156, 154, 159, 160, 164, 150, 162, 153, 162, 168, 156, 162, 155, 161, 158, 154, 165, 159, 163, 163, 155, 161, 153, 155, 157, 158, 185, 144, 151, 157, 152, 164, 167, 163, 157, 156, 165, 162, 160, 165, 160, 159, 161, 153, 159, 159, 156, 157, 161, 156, 161, 154, 157, 162, 160, 157, 154, 162, 169, 162, 158, 173, 163, 160, 154, 151, 159, 155, 154, 150, 165, 159, 169, 168, 161, 178, 160, 162, 155, 167, 156, 158, 161, 161, 153, 161, 158, 168, 158, 164, 166, 164, 155, 140, 162, 158, 150, 152, 159, 150, 163, 154, 163, 158, 154, 155, 161, 168, 155, 163, 160, 170, 155, 159, 167, 148, 155, 163, 161, 159, 159, 158, 162, 156, 161, 167, 161, 165, 143, 159, 165, 162, 155, 161, 172, 165, 156, 155, 154, 160, 159, 165, 162, 161, 145, 155, 161, 164, 159, 166, 159, 151, 170, 155, 163, 167, 155, 153, 161, 156, 160, 146, 162, 162, 165, 158, 164, 163, 153, 165, 155, 165, 158, 162, 177, 157, 154, 161, 163, 160, 142, 155, 166, 155, 167, 157, 172, 161, 169, 170, 152, 148, 151, 161, 167, 160, 160, 151, 158, 164, 161, 172, 159, 162, 166, 165, 167, 159, 161, 157, 156, 157, 161, 158, 163, 156, 169, 161, 158, 158, 164, 157, 161, 167, 157, 152, 170, 155, 181, 165, 162, 163, 168, 173, 157, 154, 160, 169, 162, 168, 159, 159, 165, 161, 162, 154, 159, 159, 176, 162, 156, 152, 153, 170, 168, 167, 163, 149, 156, 164, 162, 157, 157, 159, 137, 159, 156, 156, 161, 160, 171, 165, 167, 154, 161, 171, 149, 161, 160, 158, 140, 162, 160, 159, 157, 157, 153, 160, 160, 160, 155, 164, 153, 159, 159, 165, 163, 158, 170, 157, 152, 173, 157, 159, 152, 157, 159, 164, 165, 154, 164, 161, 167, 150, 153, 167, 165, 167, 161, 153, 147, 161, 165, 162, 157, 159, 164, 159, 158, 159, 161, 164, 178, 164, 166, 157, 163, 160, 159, 156, 151, 171, 164, 162, 160, 150, 171, 160, 159, 146, 162, 153, 157, 161, 158, 150, 169, 159, 165, 157, 158, 154, 156, 154, 157, 155, 168, 164, 160, 155, 146, 153, 160, 149, 164, 163, 147, 162, 164, 162, 156, 151, 157, 149, 158, 149, 158, 159, 166, 155, 162, 166, 156, 166, 155, 163, 160, 149, 168, 157, 153, 161, 153, 165, 165, 163, 163, 163, 163, 148, 149, 187, 171, 158, 154, 156, 166, 166, 157, 160, 171, 164, 162, 157, 171, 150, 162, 147, 154, 158, 161, 157, 147, 176, 157, 161, 161, 165, 158, 156, 143, 149, 157, 172, 157, 161, 163, 163, 162, 162, 160, 162, 155, 161, 164, 151, 161, 165, 162, 149, 150, 162, 146, 156, 169, 154, 165, 169, 156, 167, 149, 164, 164, 159, 149, 159, 166, 153, 169, 158, 153, 160, 179, 167, 161, 154, 157, 158, 157, 154, 152, 166, 161, 155, 161, 150, 156, 164, 155, 160, 155, 159, 164, 157, 164, 163, 152, 159, 154, 163, 163, 153, 169, 152, 163, 154, 175, 157, 159, 160, 163, 149, 165, 165, 154, 155, 153, 155, 167, 144, 161, 163, 162, 163, 158, 159, 155, 160, 156, 168, 153, 170, 155, 158, 152, 157, 165, 162, 156, 159, 160, 166, 173, 161, 161, 156, 165, 160, 164, 160, 160, 155, 156, 157, 157, 155, 160, 152, 156, 158, 161, 168, 155, 156, 157, 169, 169, 159, 161, 165, 153, 163, 162, 164, 164, 163, 160, 147, 167, 160, 157, 159, 150, 149, 152, 151, 150, 156, 160, 167, 157, 161, 154, 165, 153, 157, 160, 158, 157, 168, 169, 161, 160, 151, 160, 156, 159, 157, 168, 157, 153, 167, 155, 165, 155, 170, 161, 155, 152, 159, 160, 160, 161, 156, 169, 161, 158, 154, 156, 166, 163, 163, 148, 146, 157, 162, 157, 161, 155, 163, 154, 164, 170, 153, 177, 147, 160, 147, 157, 159, 161, 173, 165, 159, 163, 158, 157, 164, 160, 160, 156, 167, 165, 156, 161, 159, 156, 159, 161, 169, 158, 153, 160, 163, 146, 161, 164, 165, 155, 163, 152, 164, 166, 162, 161, 158, 160, 159, 164, 159, 163, 155, 154, 161, 164, 174, 161, 161, 158, 160, 159, 149, 166, 157, 169, 159, 163, 158, 160, 160, 160, 155, 160, 157, 163, 161, 160, 165, 159, 166, 163, 162, 161, 156, 157, 168, 160, 164, 154, 155, 155, 157, 161, 156, 160, 153, 168, 158, 160, 155, 155, 164, 168, 156, 150, 159, 161, 159, 156, 154, 158, 162, 162, 161, 167, 158, 165, 153, 151, 162, 148, 165, 164, 168, 159, 169, 161, 145, 152, 169, 163, 156, 165, 152, 177, 158, 162, 148, 161, 158, 170, 161, 155, 151, 157, 160, 157, 160, 153, 157, 163, 157, 151, 161, 165, 165, 161, 162, 155, 165, 153, 155, 164, 151, 168, 158, 162, 161, 159, 156, 155, 162, 151, 158, 164, 156, 162, 160, 156, 162, 152, 165, 155, 156, 158, 158, 161, 158, 155, 145, 158, 156, 153, 151, 151, 164, 158, 162, 156, 154, 160, 163, 163, 159, 170, 153, 157, 152, 167, 165, 165, 171, 157, 164, 163, 148, 164, 157, 160, 161, 154, 160, 159, 166, 147, 157, 154, 164, 162, 162, 162, 152, 153, 173, 157, 172, 171, 156, 155, 154, 153, 165, 157, 154, 155, 164, 153, 159, 159, 155, 174, 154, 163, 159, 152, 173, 158, 155, 163, 172, 162, 152, 158, 165, 171, 160, 170, 154, 160, 166, 156, 158, 157, 157, 155, 170, 158, 153, 150, 156, 156, 152, 162, 158, 168, 156, 160, 156, 169, 160, 168, 166, 165, 160, 151, 153, 157, 155, 162, 162, 158, 158, 162, 163, 167, 160, 163, 165, 157, 159, 158, 159, 157, 168, 165, 152, 161, 153, 157, 158, 151, 160, 152, 162, 164, 158, 157, 157, 163, 161, 165, 156, 158, 155, 163, 160, 173, 160, 144, 150, 151, 161, 154, 155, 161, 150, 169, 155, 157, 157, 156, 164, 151, 162, 162, 150, 162, 155, 159, 161, 167, 160, 159, 148, 157, 157, 168, 163, 160, 163, 166, 159, 153, 165, 163, 157, 157, 144, 164, 153, 163, 162, 158, 169, 156, 161, 158, 152, 161, 158, 166, 156, 157, 161, 162, 177, 153, 161, 153, 159, 150, 158, 153, 166, 156, 161, 167, 163, 160, 158, 155, 158, 164, 170, 162, 159, 168, 156, 164, 161, 159, 156, 164, 162, 160, 158, 161, 160, 163, 156, 167, 155, 161, 160, 159, 158, 168, 149, 163, 165, 153, 153, 167, 159, 155, 159, 164, 163, 166, 157, 171, 160, 157, 159, 164, 157, 156, 156, 162, 151, 153, 156, 167, 162, 156, 152, 152, 157, 166, 153, 159, 156, 157, 160, 162, 156, 166, 159, 157, 156, 152, 151, 177, 150, 159, 162, 160, 161, 176, 147, 162, 162, 162, 164, 158, 149, 161, 161, 166, 159, 162, 162, 163, 157, 159, 161, 161, 165, 157, 162, 156, 158, 159, 164, 170, 163, 159, 162, 152, 155, 158, 160, 159, 153, 175, 159, 169, 160, 159, 154, 159, 161, 162, 173, 153, 166, 157, 165, 155, 154, 168, 160, 166, 153, 166, 156, 156, 161, 159, 164, 152, 158, 154, 161, 156, 172, 162, 159, 152, 166, 168, 159, 174, 164, 148, 158, 159, 160, 168, 158, 161, 161, 155, 160, 151, 158, 157, 161, 158, 157, 150, 159, 160, 159, 163, 159, 162, 158, 156, 158, 165, 164, 164, 166, 153, 171, 164, 176, 159, 156, 163, 164, 158, 161, 158, 164, 155, 152, 162, 163, 160, 162, 153, 158, 164, 153, 165, 159, 160, 164, 158, 160, 162, 157, 163, 153, 167, 154, 168, 161, 155, 162, 155, 154, 157, 151, 159, 162, 163, 164, 159, 156, 157, 157, 165, 167, 165, 166, 159, 153, 166, 162, 162, 160, 162, 158, 161, 160, 160, 154, 152, 165, 159, 157, 162, 150, 153, 166, 160, 154, 162, 164, 164, 154, 155, 154, 152, 160, 162, 161, 168, 168, 159, 162, 162, 160, 145, 159, 153, 155, 151, 153, 161, 160, 160, 162, 154, 166, 164, 161, 172, 159, 152, 156, 164, 161, 162, 164, 163, 153, 159, 164, 156, 157, 159, 154, 162, 168, 157, 154, 170, 165, 157, 156, 154, 166, 161, 158, 156, 156, 158, 161, 157, 155, 163, 155, 163, 162, 159, 164, 164, 156, 158, 164, 166, 154, 162, 153, 157, 159, 158, 166, 153, 164, 156, 158, 162, 157, 171, 166, 155, 162, 160, 161, 163, 166, 160, 154, 163, 159, 156, 160, 157, 161, 154, 168, 161, 172, 166, 162, 161, 159, 161, 155, 165, 162, 158, 154, 163, 163, 161, 151, 155, 156, 164, 162, 165, 158, 162, 159, 159, 161, 156, 157, 155, 160, 158, 159, 162, 160, 160, 161, 162, 154, 160, 154, 165, 162, 155, 158, 159, 160, 167, 177, 153, 159, 159, 162, 162, 161, 157, 150, 160, 163, 168, 167, 156, 159, 158, 155, 168, 157, 168, 159, 151, 160, 157, 156, 162, 159, 154, 162, 154, 160, 158, 158, 157, 159, 172, 166, 169, 156, 169, 161, 163, 152, 151, 158, 163, 159, 160, 163, 166, 167, 153, 166, 155, 156, 156, 149, 156, 156, 164, 160, 154, 152, 166, 163, 164, 153, 157, 161, 171, 160, 160, 159, 161, 165, 165, 164, 157, 164, 161, 161, 158, 161, 161, 156, 149, 145, 159, 164, 160, 160, 162, 163, 158, 155, 157, 166, 164, 161, 158, 148, 153, 169, 160, 163, 159, 155, 156, 164, 155, 160, 177, 164, 164, 156, 159, 167, 172, 162, 156, 160, 169, 159, 161, 154, 162, 162, 151, 165, 156, 155, 149, 155, 157, 160, 155, 157, 155, 154, 155, 169, 156, 162, 159, 154, 157, 170, 158, 155, 151, 155, 152, 157, 159, 163, 166, 158, 156, 158, 155, 162, 170, 174, 155, 151, 160, 160, 155, 165, 160, 163, 157, 157, 156, 161, 163, 159, 163, 159, 150, 154, 164, 162, 160, 153, 161, 173, 161, 164, 157, 161, 156, 165, 160, 158, 161, 161, 157, 158, 150, 160, 152, 159, 161, 159, 174, 152, 159, 166, 159, 159, 155, 159, 155, 170, 158, 155, 154, 162, 162, 166, 157, 155, 153, 155, 158, 161, 158, 152, 153, 160, 161, 166, 149, 158, 162, 163, 159, 165, 162, 165, 168, 160, 152, 167, 161, 158, 155, 148, 164, 160, 161, 147, 163, 155, 163, 153, 164, 160, 162, 159, 154, 160, 156, 158, 155, 161, 169, 156, 168, 157, 154, 156, 166, 145, 158, 157, 164, 161, 151, 177, 157, 160, 156, 144, 159, 162, 153, 165, 153, 156, 161, 176, 175, 151, 160, 164, 158, 149, 175, 161, 164, 156, 170, 170, 164, 156, 167, 159, 162, 167, 153, 162, 159, 156, 162, 148, 154, 155, 163, 149, 159, 157, 150, 164, 163, 159, 159, 154, 154, 152, 159, 165, 161, 170, 157, 165, 154, 157, 152, 157, 158, 161, 163, 158, 154, 158, 169, 158, 162, 165, 158, 156, 156, 155, 162, 156, 165, 155, 160, 161, 164, 157, 156, 160, 157, 157, 169, 159, 158, 157, 154, 163, 157, 159, 151, 154, 151, 161, 161, 173, 163, 161, 171, 160, 162, 164, 166, 154, 153, 151, 165, 166, 161, 158, 156, 164, 147, 157, 157, 177, 159, 154, 164, 161, 158, 160, 157, 168, 157, 157, 165, 160, 153, 164, 156, 161, 164, 157, 153, 157, 170, 156, 166, 164, 164, 161, 160, 169, 159, 164, 164, 155, 162, 157, 151, 157, 161, 185, 159, 155, 162, 163, 153, 167, 156, 155, 159, 164, 152, 160, 162, 156, 161, 165, 160, 167, 160, 160, 162, 159, 161, 166, 148, 153, 159, 160, 162, 156, 156, 162, 165, 156, 163, 158, 159, 153, 158, 159, 156, 159, 179, 152, 152, 158, 167, 162, 156, 173, 154, 171, 155, 163, 157, 163, 161, 155, 175, 152, 162, 161, 155, 155, 158, 160, 156, 152, 160, 159, 160, 155, 170, 154, 152, 155, 153, 162, 156, 165, 165, 156, 156, 167, 170, 153, 165, 162, 160, 143, 164, 151, 167, 159, 154, 152, 168, 172, 160, 154, 154, 161, 153, 153, 168, 166, 162, 159, 165, 165, 155, 152, 165, 162, 163, 169, 158, 157, 158, 151, 159, 161, 156, 154, 149, 167, 161, 160, 158, 155, 155, 161, 159, 157, 157, 163, 171, 158, 160, 167, 168, 152, 155, 164, 168, 160, 163, 160, 160, 164, 161, 160, 161, 162, 159, 160, 165, 159, 150, 166, 151, 163, 158, 162, 168, 172, 157, 165, 155, 164, 165, 164, 162, 156, 167, 164, 158, 157, 150, 164, 160, 153, 163, 165, 168, 157, 156, 163, 155, 164, 170, 162, 159, 155, 163, 166, 162, 161, 157, 161, 164, 163, 162, 161, 157, 150, 157, 160, 167, 161, 157, 168, 154, 160, 155, 160, 168, 149, 152, 160, 154, 160, 152, 156, 163, 169, 155, 155, 161, 170, 159, 161, 156, 143, 154, 173, 164, 163, 157, 155, 159, 157, 158, 162, 163, 151, 163, 164, 156, 166, 153, 164, 153, 167, 164, 163, 154, 161, 156, 159, 147, 165, 157, 160, 158, 160, 159, 168, 164, 152, 150, 162, 155, 160, 155, 149, 160, 182, 156, 160, 159, 156, 151, 155, 161, 161, 161, 160, 165, 154, 160, 160, 153, 161, 158, 148, 159, 158, 155, 152, 158, 166, 159, 160, 166, 164, 155, 155, 162, 163, 165, 160, 160, 154, 151, 158, 159, 163, 162, 159, 164, 153, 153, 157, 163, 153, 159, 154, 151, 158, 180, 162, 157, 160, 157, 160, 158, 159, 158, 168, 156, 156, 160, 166, 154, 154, 163, 157, 155, 160, 167, 158, 159, 167, 160, 150, 161, 151, 154, 157, 166, 162, 154, 166, 161, 157, 156, 150, 163, 161, 148, 164, 170, 162, 157, 162, 154, 166, 154, 159, 159, 170, 164, 159, 161, 161, 154, 159, 162, 169, 151, 164, 155, 163, 163, 157, 162, 165, 164, 159, 162, 164, 161, 158, 163, 164, 170, 160, 153, 159, 160, 160, 161, 159, 159, 166, 165, 162, 158, 156, 156, 164, 160, 158, 157, 153, 156, 162, 153, 160, 159, 158, 157, 161, 161, 165, 168, 163, 163, 156, 165, 161, 163, 156, 167, 157, 153, 161, 151, 163, 155, 155, 175, 160, 158, 174, 162, 155, 159, 158, 157, 165, 160, 160, 155, 159, 162, 154, 157, 162, 151, 162, 160, 155, 151, 156, 163, 160, 156, 163, 166, 153, 148, 155, 156, 157, 161, 155, 142, 167, 164, 159, 156, 165, 159, 162, 162, 174, 152, 162, 165, 159, 156, 171, 167, 163, 168, 169, 157, 156, 156, 169, 148, 159, 161, 160, 150, 163, 168, 158, 161, 161, 152, 160, 157, 160, 159, 161, 157, 165, 160, 158, 168, 163, 157, 165, 163, 160, 158, 158, 167, 159, 164, 164, 158, 150, 156, 154, 160, 156, 159, 167, 155, 160, 153, 155, 161, 155, 158, 162, 161, 160, 166, 161, 160, 157, 161, 162, 157, 161, 160, 160, 158, 159, 167, 161, 164, 161, 165, 153, 161, 160, 155, 164, 160, 156, 158, 162, 159, 159, 158, 155, 166, 155, 154, 165, 161, 160, 164, 161, 159, 152, 152, 155, 157, 163, 153, 147, 156, 155, 159, 170, 164, 155, 154, 165, 161, 158, 161, 157, 164, 161, 160, 163, 171, 163, 151, 168, 155, 158, 163, 160, 157, 160, 164, 157, 159, 157, 159, 153, 155, 163, 159, 170, 154, 160, 173, 155, 160, 155, 162, 157, 153, 163, 158, 146, 160, 169, 158, 167, 148, 153, 160, 161, 149, 152, 163, 156, 160, 155, 167, 159, 163, 158, 160, 162, 153, 158, 163, 163, 154, 169, 158, 161, 162, 165, 174, 162, 159, 168, 165, 164, 163, 163, 154, 155, 151, 152, 148, 163, 158, 169, 156, 156, 159, 156, 157, 157, 159, 158, 151, 151, 173, 157, 167, 153, 166, 157, 158, 160, 166, 159, 157, 162, 153, 159, 163, 156, 154, 149, 153, 172, 155, 141, 158, 171, 161, 154, 157, 160, 161, 156, 158, 162, 160, 159, 155, 162, 165, 166, 161, 158, 172, 164, 155, 156, 158, 156, 158, 161, 160, 163, 164, 156, 167, 146, 162, 153, 155, 144, 163, 157, 158, 161, 153, 159, 156, 164, 160, 160, 158, 167, 152, 161, 157, 168, 169, 165, 157, 157, 156, 168, 162, 165, 161, 167, 157, 157, 159, 167, 157, 165, 177, 162, 154, 171, 150, 156, 144, 157, 160, 150, 157, 161, 156, 162, 159, 169, 160, 152, 155, 160, 158, 152, 155, 163, 167, 150, 158, 159, 159, 163, 160, 158, 158, 162, 170, 169, 178, 159, 154, 157, 162, 156, 163, 167, 161, 158, 151, 163, 165, 159, 160, 159, 158, 147, 161, 158, 162, 162, 163, 165, 155, 157, 162, 157, 164, 161, 162, 166, 154, 160, 168, 159, 158, 163, 160, 153, 156, 155, 161, 162, 166, 174, 155, 175, 149, 162, 164, 170, 155, 159, 159, 159, 168, 155, 162, 161, 159, 163, 154, 159, 158, 162, 163, 160, 161, 159, 161, 159, 158, 156, 160, 161, 157, 155, 159, 162, 160, 165, 155, 158, 162, 164, 166, 164, 159, 167, 156, 163, 165, 157, 160, 156, 163, 165, 166, 157, 162, 162, 153, 165, 160, 158, 164, 159, 151, 158, 174, 161, 156, 157, 161, 157, 164, 163, 153, 151, 153, 208, 159, 157, 161, 159, 165, 151, 157, 155, 153, 160, 158, 150, 161, 154, 158, 159, 159, 156, 158, 158, 161, 160, 169, 154, 156, 154, 159, 163, 161, 160, 160, 157, 165, 164, 160, 159, 163, 158, 156, 155, 158, 170, 151, 162, 155, 137, 165, 158, 162, 153, 164, 164, 158, 158, 158, 157, 164, 164, 161, 161, 162, 163, 158, 148, 159, 164, 156, 163, 151, 151, 163, 167, 152, 161, 163, 162, 150, 156, 153, 172, 164, 161, 162, 156, 156, 160, 160, 165, 152, 155, 154, 158, 161, 160, 162, 152, 159, 161, 170, 159, 157, 159, 154, 150, 161, 175, 156, 159, 164, 170, 160, 160, 168, 164, 157, 167, 166, 166, 160, 161, 167, 167, 153, 151, 159, 160, 164, 159, 179, 159, 164, 155, 155, 158, 162, 158, 164, 157, 158, 158, 162, 158, 160, 152, 162, 150, 164, 171, 160, 155, 159, 155, 152, 159, 163, 166, 166, 163, 153, 153, 146, 161, 155, 163, 163, 165, 163, 172, 161, 158, 166, 155, 167, 157, 155, 153, 163, 153, 162, 143, 168, 157, 159, 162, 150, 167, 175, 161, 161, 160, 159, 159, 160, 165, 164, 158, 154, 162, 157, 160, 160, 158, 162, 162, 161, 161, 166, 164, 161, 157, 161, 158, 157, 165, 161, 160, 161, 162, 160, 160, 157, 159, 156, 163, 161, 161, 161, 159, 163, 169, 158, 158, 157, 160, 158, 148, 157, 158, 162, 156, 163, 161, 156, 157, 158, 159, 156, 161, 156, 160, 161, 158, 162, 167, 162, 163, 161, 159, 162, 167, 159, 157, 158, 158, 161, 148, 161, 170, 165, 158, 161, 161, 154, 158, 159, 165, 159, 159, 156, 160, 161, 159, 163, 163, 159, 162, 163, 157, 157, 164, 160, 159, 165, 145, 158, 166, 162, 154, 162, 162, 156, 155, 157, 161, 161, 157, 159, 158, 158, 165, 156, 164, 161, 156, 145, 164, 159, 158, 156, 159, 162, 158, 156, 156, 151, 167, 158, 162, 156, 163, 162, 153, 158, 169, 160, 160, 161, 181, 157, 162, 157, 163, 156, 163, 158, 166, 159, 165, 159, 160, 163, 158, 161, 162, 161, 156, 159, 159, 163, 164, 156, 167, 152, 158, 156, 163, 149, 157, 163, 157, 161, 154, 158, 161, 182, 157, 160, 163, 168, 160, 166, 163, 162, 161, 167, 151, 157, 160, 156, 157, 161, 157, 159, 156, 170, 162, 158, 164, 159, 166, 162, 150, 160, 163, 168, 168, 159, 163, 165, 164, 160, 159, 166, 159, 163, 164, 159, 164, 157, 158, 164, 167, 161, 161, 155, 160, 161, 161, 156, 136, 154, 162, 160, 161, 156, 162, 160, 159, 158, 167, 158, 162, 157, 165, 164, 164, 160, 166, 158, 164, 166, 197, 160, 166, 159, 160, 162, 159, 166, 163, 167, 162, 163, 159, 158, 158, 158, 160, 160, 159, 153, 159, 159, 159, 160, 157, 171, 160, 159, 160, 160, 160, 160, 158, 158, 161, 159, 158, 159, 155, 158, 156, 163, 161, 159, 159, 161, 163, 158, 158, 155, 152, 151, 161, 163, 157, 162, 158, 161, 159, 160, 159, 160, 160, 156, 159, 158, 163, 159, 162, 162, 160, 161, 159, 161, 159, 157, 161, 160, 157, 163, 162, 159, 161, 157, 161, 163, 162, 156, 160, 162, 156, 160, 162, 162, 158, 157, 160, 160, 159, 162, 161, 157, 163, 160, 157, 159, 158, 160, 159, 166, 157, 165, 160, 126, 156, 157, 160, 162, 148, 160, 159, 157, 160, 158, 160, 157, 163, 162, 158, 160, 157, 161, 161, 159, 160, 157, 162, 161, 162, 157, 160, 163, 157, 162, 162, 157, 160, 161, 160, 158, 159, 160, 157, 160, 132, 156, 163, 160, 157, 154, 152, 162, 158, 172, 167, 156, 161, 162, 158, 156, 157, 157, 165, 164, 156, 161, 155, 160, 164, 164, 161, 161, 160, 156, 158, 161, 161, 159, 163, 157, 156, 161, 156, 159, 157, 162, 160, 158, 171, 161, 160, 161, 163, 148, 161, 159, 158, 152, 154, 156, 163, 159, 163, 163, 154, 156, 161, 165, 154, 161, 157, 157, 162, 164, 159, 157, 163, 150, 165, 130, 164, 157, 166, 159, 159, 165, 160, 167, 160, 149, 161, 163, 150, 159, 165, 164, 162, 164, 155, 160, 165, 154, 157, 162, 161, 157, 161, 157, 163, 166, 166, 162, 152, 170, 158, 159, 150, 158, 164, 169, 151, 164, 153, 151, 158, 166, 158, 163, 160, 162, 160, 160, 161, 160, 162, 160, 159, 161, 156, 160, 157, 156, 154, 160, 149, 163, 158, 161, 169, 157, 167, 162, 148, 162, 155, 160, 145, 152, 156, 159, 162, 161, 162, 158, 155, 154, 163, 158, 161, 155, 157, 155, 161, 160, 161, 159, 157, 163, 165, 166, 157, 182, 166, 155, 160, 159, 159, 159, 158, 157, 158, 154, 157, 154, 177, 160, 150, 158, 159, 155, 158, 160, 167, 159, 161, 159, 157, 160, 158, 175, 159, 160, 162, 150, 139, 167, 155, 155, 154, 160, 161, 160, 159, 160, 161, 160, 159, 164, 153, 160, 155, 162, 172, 158, 164, 166, 159, 148, 134, 159, 167, 157, 157, 160, 156, 166, 180, 164, 160, 147, 161, 160, 159, 162, 160, 161, 161, 164, 163, 132, 149, 156, 159, 159, 157, 187, 148, 158, 156, 160, 158, 158, 163, 166, 158, 161, 162, 160, 163, 159, 163, 161, 163, 164, 162, 167, 148, 160, 159, 159, 169, 159, 172, 160, 163, 159, 153, 160, 161, 161, 164, 163, 149, 161, 162, 161, 161, 154, 155, 170, 160, 160, 163, 184, 163, 159, 163, 162, 160, 162, 162, 148, 158, 161, 154, 165, 162, 166, 160, 168, 162, 162, 157, 146, 161, 160, 160, 156, 164, 160, 162, 160, 165, 156, 165, 164, 162, 162, 158, 150, 164, 162, 171, 161, 164, 157, 162, 135, 147, 163, 157, 158, 161, 159, 159, 157, 162, 155, 153, 163, 185, 159, 161, 149, 165, 160, 156, 168, 161, 156, 161, 158, 137, 161, 156, 172, 164, 160, 163, 164, 157, 156, 160, 158, 163, 159, 159, 158, 164, 161, 161, 159, 162, 164, 163, 153, 166, 169, 152, 160, 158, 161, 160, 157, 158, 164, 162, 148, 156, 157, 148, 157, 174, 158, 157, 171, 176, 169, 165, 138, 160, 151, 160, 158, 168, 164, 167, 157, 160, 159, 162, 159, 157, 160, 167, 170, 160, 161, 162, 156, 149, 132, 164, 163, 162, 153, 159, 160, 180, 147, 165, 161, 159, 151, 157, 160, 161, 159, 153, 161, 160, 158, 159, 167, 163, 164, 157, 162, 159, 184, 161, 159, 161, 161, 159, 160, 160, 164, 157, 164, 156, 157, 161, 156, 164, 147, 159, 169, 163, 159, 160, 154, 159, 154, 159, 157, 154, 160, 159, 170, 157, 158, 165, 162, 163, 161, 157, 158, 164, 163, 164, 160, 158, 159, 151, 162, 158, 160, 157, 156, 174, 157, 135, 163, 168, 155, 166, 155, 167, 158, 160, 161, 162, 151, 162, 162, 159, 159, 158, 156, 164, 158, 163, 151, 157, 161, 160, 166, 159, 154, 158, 163, 134, 159, 160, 159, 157, 157, 153, 164, 160, 162, 142, 167, 159, 138, 158, 168, 159, 160, 154, 158, 158, 154, 157, 164, 156, 165, 161, 166, 164, 161, 161, 161, 157, 161, 165, 161, 158, 157, 160, 165, 164, 166, 165, 162, 158, 160, 157, 160, 160, 161, 159, 159, 159, 159, 161, 164, 156, 160, 157, 154, 161, 164, 156, 163, 161, 159, 163, 167, 169, 155, 156, 155, 167, 162, 163, 156, 155, 157, 161, 161, 161, 157, 157, 163, 160, 161, 169, 158, 161, 164, 158, 163, 162, 157, 156, 165, 160, 151, 154, 169, 162, 162, 168, 160, 160, 155, 160, 165, 162, 164, 161, 159, 156, 156, 161, 159, 165, 158, 162, 161, 164, 160, 157, 162, 169, 163, 164, 160, 158, 157, 162, 162, 162, 164, 160, 165, 161, 159, 164, 164, 166, 160, 161, 168, 151, 165, 158, 161, 156, 161, 163, 146, 159, 161, 164, 159, 163, 157, 160, 159, 159, 162, 159, 159, 177, 157, 157, 158, 167, 157, 160, 158, 163, 160, 160, 162, 159, 155, 164, 163, 163, 160, 175, 159, 165, 163, 161, 159, 166, 165, 157, 159, 160, 161, 156, 152, 158, 162, 164, 167, 159, 159, 161, 160, 154, 162, 167, 162, 159, 167, 158, 158, 161, 161, 160, 153, 160, 161, 160, 158, 156, 161, 161, 156, 156, 163, 161, 161, 158, 158, 166, 159, 164, 164, 159, 159, 161, 159, 160, 161, 159, 161, 157, 157, 166, 161, 155, 162, 158, 160, 153, 155, 169, 161, 161, 158, 172, 149, 157, 169, 158, 163, 159, 166, 163, 161, 155, 167, 162, 157, 161, 162, 159, 161, 170, 159, 160, 155, 161, 165, 158, 154, 154, 156, 165, 159, 160, 155, 157, 158, 160, 157, 154, 157, 160, 163, 163, 165, 170, 170, 161, 158, 151, 158, 159, 158, 154, 153, 168, 158, 157, 158, 159, 164, 162, 159, 164, 161, 160, 163, 158, 157, 158, 162, 158, 154, 159, 158, 155, 163, 163, 158, 166, 157, 159, 169, 160, 157, 157, 159, 161, 162, 162, 160, 160, 162, 157, 154, 160, 154, 162, 159, 165, 160, 158, 156, 160, 160, 161, 160, 161, 159, 156, 154, 160, 161, 165, 159, 159, 159, 166, 158, 148, 160, 158, 158, 167, 162, 177, 169, 161, 158, 161, 160, 151, 151, 153, 166, 163, 151, 160, 158, 162, 159, 159, 157, 161, 157, 163, 157, 157, 170, 159, 152, 159, 163, 161, 156, 160, 162, 156, 155, 160, 160, 165, 158, 160, 159, 169, 164, 162, 164, 157, 163, 150, 160, 158, 157, 160, 152, 152, 159, 156, 163, 163, 158, 164, 160, 154, 162, 161, 162, 159, 158, 164, 159, 158, 159, 162, 165, 164, 164, 147, 157, 163, 159, 168, 159, 156, 164, 166, 160, 159, 155, 168, 164, 160, 162, 160, 159, 157, 159, 157, 160, 155, 158, 160, 158, 155, 157, 166, 156, 151, 157, 160, 156, 163, 160, 164, 159, 162, 157, 167, 162, 159, 163, 160, 154, 163, 162, 162, 155, 165, 168, 160, 164, 150, 163, 162, 159, 159, 160, 158, 167, 158, 158, 160, 163, 162, 160, 161, 158, 172, 163, 161, 183, 160, 162, 162, 161, 160, 159, 159, 168, 158, 162, 158, 164, 161, 163, 161, 163, 156, 164, 164, 160, 153, 160, 159, 163, 159, 158, 161, 146, 159, 161, 161, 155, 168, 155, 152, 155, 163, 163, 155, 155, 165, 160, 154, 161, 147, 158, 165, 167, 157, 155, 147, 162, 162, 162, 160, 156, 162, 159, 172, 163, 157, 157, 152, 151, 166, 158, 159, 161, 162, 157, 163, 166, 156, 154, 167, 154, 162, 157, 159, 157, 176, 161, 155, 154, 144, 176, 168, 164, 166, 157, 161, 153, 155, 159, 150, 164, 162, 161, 156, 164, 161, 167, 156, 148, 155, 164, 156, 165, 161, 167, 153, 159, 160, 151, 166, 153, 155, 165, 162, 149, 162, 155, 161, 153, 159, 162, 153, 161, 157, 148, 169, 158, 142, 164, 166, 152, 154, 150, 162, 164, 161, 156, 163, 154, 153, 183, 166, 159, 158, 151, 156, 161, 157, 164, 159, 164, 159, 164, 166, 159, 159, 166, 161, 153, 147, 158, 170, 161, 160, 157, 167, 154, 163, 157, 162, 165, 160, 157, 160, 163, 153, 161, 160, 160, 160, 132, 162, 155, 158, 163, 151, 158, 159, 158, 153, 152, 158, 158, 160, 159, 152, 149, 158, 159, 158, 161, 164, 154, 162, 153, 148, 163, 162, 163, 156, 159, 163, 157, 152, 161, 158, 165, 166, 155, 163, 152, 163, 159, 143, 154, 163, 156, 158, 166, 160, 157, 154, 158, 160, 162, 161, 167, 167, 161, 167, 145, 162, 163, 164, 158, 156, 166, 156, 171, 154, 155, 152, 158, 141, 160, 165, 163, 160, 156, 165, 175, 159, 155, 163, 155, 156, 154, 160, 158, 157, 166, 169, 168, 152, 163, 160, 159, 155, 161, 172, 148, 158, 156, 153, 159, 152, 169, 159, 154, 163, 160, 160, 161, 160, 156, 158, 160, 155, 165, 161, 164, 165, 158, 156, 155, 158, 160, 158, 159, 158, 164, 160, 168, 159, 158, 173, 151, 162, 159, 157, 156, 149, 156, 149, 160, 161, 165, 160, 159, 156, 148, 158, 163, 165, 158, 165, 170, 161, 162, 161, 158, 152, 163, 169, 165, 162, 186, 160, 163, 168, 165, 162, 157, 156, 159, 153, 159, 153, 158, 164, 158, 160, 174, 163, 163, 156, 155, 161, 161, 157, 162, 170, 160, 156, 155, 159, 153, 161, 153, 158, 162, 150, 157, 159, 160, 161, 155, 157, 161, 158, 163, 167, 171, 170, 155, 151, 178, 163, 154, 167, 162, 158, 159, 168, 161, 164, 160, 163, 158, 158, 164, 155, 162, 158, 160, 166, 157, 172, 152, 160, 157, 161, 156, 160, 159, 165, 163, 159, 154, 162, 169, 158, 155, 150, 148, 165, 157, 163, 157, 158, 162, 163, 152, 161, 158, 165, 164, 165, 163, 161, 163, 163, 160, 160, 152, 159, 163, 161, 169, 163, 161, 171, 152, 157, 166, 162, 150, 177, 151, 156, 155, 162, 161, 153, 149, 164, 158, 143, 164, 161, 161, 164, 164, 159, 168, 154, 151, 150, 154, 157, 158, 162, 161, 163, 158, 160, 156, 162, 152, 155, 158, 162, 155, 149, 163, 163, 161, 162, 161, 159, 161, 160, 158, 155, 148, 167, 158, 165, 143, 167, 151, 152, 161, 158, 168, 153, 154, 194, 171, 165, 159, 160, 155, 189, 162, 162, 158, 157, 165, 163, 159, 154, 162, 162, 134, 160, 160, 163, 160, 162, 160, 163, 163, 154, 162, 161, 159, 156, 166, 159, 161, 162, 154, 159, 161, 158, 157, 152, 163, 152, 154, 161, 163, 139, 166, 132, 160, 157, 160, 153, 157, 159, 162, 159, 160, 165, 160, 161, 160, 160, 138, 158, 158, 162, 159, 161, 163, 164, 152, 161, 149, 159, 158, 161, 159, 160, 158, 163, 147, 165, 161, 163, 160, 158, 155, 155, 162, 151, 158, 161, 157, 151, 158, 157, 156, 169, 159, 162, 164, 166, 163, 147, 156, 158, 155, 161, 165, 159, 161, 164, 159, 157, 155, 167, 154, 164, 162, 158, 168, 161, 162, 159, 169, 160, 160, 163, 152, 162, 160, 141, 123, 159, 165, 157, 152, 166, 157, 158, 157, 160, 157, 167, 158, 159, 155, 160, 157, 150, 162, 160, 154, 161, 164, 161, 170, 155, 159, 157, 164, 155, 154, 158, 161, 163, 163, 160, 165, 162, 155, 168, 173, 160, 154, 170, 167, 159, 159, 162, 160, 170, 168, 162, 167, 161, 151, 160, 163, 151, 158, 159, 158, 159, 160, 166, 156, 158, 164, 161, 155, 156, 156, 157, 160, 170, 159, 158, 163, 161, 159, 159, 163, 160, 171, 167, 158, 168, 160, 161, 163, 160, 161, 165, 165, 159, 160, 157, 150, 160, 152, 158, 156, 152, 166, 162, 161, 152, 157, 162, 159, 167, 163, 161, 156, 160, 161, 167, 152, 173, 160, 164, 179, 160, 155, 157, 163, 161, 168, 157, 163, 153, 144, 141, 158, 158, 161, 154, 162, 163, 144, 158, 151, 155, 159, 159, 154, 167, 162, 161, 156, 161, 169, 159, 156, 155, 158, 156, 159, 164, 155, 155, 165, 159, 168, 163, 150, 149, 162, 161, 141, 165, 163, 159, 160, 169, 160, 155, 160, 158, 160, 158, 160, 159, 155, 162, 157, 161, 157, 154, 163, 156, 165, 161, 161, 160, 165, 154, 163, 164, 154, 167, 165, 150, 159, 164, 160, 158, 164, 162, 171, 160, 158, 133, 155, 161, 158, 164, 164, 154, 146, 159, 180, 165, 157, 152, 160, 169, 153, 156, 166, 165, 161, 150, 154, 165, 149, 162, 158, 164, 157, 153, 157, 160, 150, 163, 166, 160, 131, 164, 163, 154, 159, 161, 165, 162, 162, 156, 159, 157, 160, 162, 159, 141, 148, 160, 162, 157, 157, 160, 157, 154, 156, 153, 156, 166, 161, 168, 160, 164, 173, 164, 155, 162, 163, 171, 159, 165, 152, 166, 160, 141, 158, 159, 156, 157, 148, 166, 160, 164, 167, 162, 163, 158, 169, 160, 165, 159, 158, 152, 158, 161, 155, 160, 159, 159, 165, 159, 156, 169, 158, 158, 157, 162, 153, 156, 169, 142, 174, 166, 158, 153, 152, 159, 163, 161, 159, 160, 175, 155, 158, 141, 164, 162, 150, 158, 150, 151, 141, 167, 167, 152, 159, 159, 161, 154, 165, 162, 161, 157, 149, 147, 162, 163, 162, 156, 153, 165, 166, 163, 161, 157, 155, 165, 158, 160, 163, 161, 161, 165, 156, 160, 160, 166, 169, 164, 160, 159, 159, 162, 166, 157, 151, 156, 157, 160, 165, 158, 166, 158, 152, 162, 158, 154, 157, 162, 162, 156, 154, 164, 154, 163, 153, 154, 153, 157, 150, 157, 166, 154, 159, 160, 159, 157, 161, 162, 166, 164, 159, 161, 156, 140, 168, 157, 158, 158, 157, 152, 160, 155, 166, 156, 150, 167, 163, 161, 162, 163, 168, 159, 164, 152, 160, 155, 163, 155, 170, 161, 165, 166, 160, 160, 149, 166, 162, 157, 156, 157, 161, 151, 157, 162, 156, 147, 159, 154, 158, 158, 160, 166, 173, 158, 160, 151, 159, 162, 157, 155, 156, 149, 162, 156, 161, 163, 152, 163, 156, 163, 159, 162, 168, 152, 167, 160, 157, 173, 163, 161, 145, 154, 154, 159, 169, 163, 162, 161, 166, 159, 155, 164, 169, 152, 154, 165, 156, 165, 151, 157, 157, 154, 153, 164, 154, 149, 155, 163, 156, 162, 160, 156, 154, 163, 160, 162, 156, 155, 162, 160, 163, 152, 153, 177, 160, 152, 164, 164, 160, 158, 159, 152, 160, 164, 162, 149, 156, 163, 162, 157, 151, 156, 157, 156, 159, 162, 162, 160, 152, 165, 178, 165, 170, 160, 170, 157, 162, 164, 169, 157, 155, 160, 161, 163, 167, 163, 158, 146, 159, 154, 156, 165, 167, 162, 143, 159, 159, 165, 159, 161, 158, 158, 154, 158, 157, 164, 164, 153, 155, 156, 163, 153, 157, 155, 157, 162, 161, 164, 157, 155, 165, 154, 162, 158, 160, 163, 156, 160, 166, 163, 167, 158, 158, 150, 168, 150, 159, 163, 161, 168, 156, 159, 164, 155, 164, 156, 160, 159, 152, 167, 166, 168, 160, 153, 187, 165, 170, 156, 155, 163, 143, 148, 165, 162, 157, 164, 161, 165, 160, 152, 165, 159, 160, 151, 157, 160, 152, 157, 162, 163, 155, 161, 166, 157, 165, 160, 149, 157, 155, 184, 157, 155, 164, 157, 163, 156, 157, 156, 159, 164, 160, 163, 156, 151, 159, 154, 166, 154, 159, 164, 159, 157, 158, 158, 153, 161, 159, 158, 163, 153, 161, 158, 166, 158, 156, 164, 160, 158, 161, 168, 160, 166, 165, 156, 158, 161, 158, 168, 158, 161, 154, 150, 160, 150, 154, 176, 161, 163, 165, 159, 160, 159, 168, 165, 167, 157, 164, 158, 173, 150, 147, 155, 184, 158, 157, 164, 173, 167, 154, 169, 161, 159, 161, 162, 158, 150, 162, 164, 159, 162, 156, 161, 154, 169, 157, 166, 156, 156, 163, 158, 159, 162, 163, 151, 162, 160, 147, 158, 164, 153, 159, 163, 155, 161, 143, 158, 158, 168, 163, 161, 160, 160, 154, 159, 160, 160, 164, 158, 163, 159, 154, 158, 167, 160, 154, 161, 153, 174, 151, 162, 167, 162, 161, 153, 186, 150, 161, 158, 161, 172, 155, 151, 159, 153, 164, 163, 149, 164, 161, 149, 162, 153, 163, 157, 170, 158, 161, 154, 164, 158, 169, 161, 162, 162, 161, 156, 161, 168, 158, 156, 165, 159, 165, 157, 160, 162, 144, 162, 169, 163, 162, 174, 155, 154, 161, 158, 167, 163, 161, 167, 156, 158, 154, 161, 160, 156, 162, 164, 159, 153, 165, 170, 168, 153, 158, 163, 158, 154, 150, 166, 183, 155, 158, 161, 164, 157, 156, 165, 160, 154, 165, 158, 161, 150, 159, 153, 160, 152, 151, 164, 155, 164, 162, 162, 154, 164, 161, 162, 157, 157, 162, 170, 157, 155, 151, 172, 156, 163, 160, 168, 162, 164, 156, 167, 160, 154, 148, 155, 158, 149, 153, 155, 166, 160, 165, 163, 153, 158, 153, 155, 156, 161, 159, 149, 154, 150, 182, 161, 161, 154, 148, 158, 163, 158, 163, 144, 154, 159, 152, 159, 164, 147, 155, 158, 148, 154, 159, 144, 157, 167, 158, 155, 167, 165, 166, 163, 164, 160, 154, 163, 164, 154, 163, 160, 160, 164, 165, 150, 163, 151, 156, 166, 163, 158, 171, 158, 156, 149, 167, 166, 162, 150, 158, 149, 161, 160, 153, 164, 153, 156, 153, 150, 151, 157, 164, 164, 149, 158, 156, 166, 164, 170, 158, 156, 159, 172, 158, 165, 158, 160, 158, 150, 154, 167, 153, 169, 173, 152, 155, 168, 152, 168, 146, 157, 156, 159, 166, 162, 163, 159, 156, 169, 159, 152, 156, 161, 160, 148, 159, 167, 166, 157, 157, 153, 161, 162, 167, 165, 158, 159, 164, 160, 147, 156, 154, 156, 153, 163, 152, 167, 166, 156, 165, 158, 165, 150, 159, 153, 156, 156, 172, 162, 159, 160, 159, 155, 162, 154, 157, 161, 167, 168, 157, 173, 151, 162, 161, 167, 152, 161, 152, 156, 149, 154, 157, 163, 157, 157, 169, 152, 156, 162, 160, 163, 163, 160, 157, 159, 167, 156, 157, 157, 161, 161, 159, 151, 159, 161, 167, 164, 168, 163, 168, 163, 160, 160, 157, 173, 158, 156, 163, 147, 163, 158, 159, 163, 163, 163, 164, 165, 153, 164, 162, 155, 161, 157, 165, 168, 154, 149, 161, 163, 151, 158, 162, 156, 169, 154, 165, 163, 152, 155, 176, 162, 158, 157, 148, 163, 160, 163, 162, 149, 151, 159, 160, 146, 170, 158, 171, 147, 160, 164, 160, 159, 160, 149, 170, 171, 155, 156, 156, 160, 159, 163, 158, 159, 166, 164, 166, 153, 161, 156, 153, 154, 167, 154, 156, 165, 163, 158, 160, 153, 163, 152, 160, 178, 154, 156, 150, 135, 162, 159, 152, 152, 167, 166, 165, 163, 166, 165, 163, 162, 161, 160, 158, 165, 162, 144, 163, 158, 154, 164, 148, 159, 159, 161, 154, 153, 163, 161, 154, 160, 178, 166, 158, 163, 171, 162, 156, 162, 161, 159, 140, 159, 161, 165, 158, 159, 154, 163, 157, 160, 166, 155, 156, 160, 161, 155, 155, 157, 151, 173, 149, 171, 154, 159, 154, 164, 151, 175, 173, 169, 164, 164, 155, 152, 160, 146, 155, 171, 150, 156, 180, 163, 160, 154, 154, 148, 158, 165, 165, 163, 162, 157, 158, 161, 155, 155, 161, 146, 160, 180, 156, 158, 166, 154, 145, 153, 162, 163, 166, 166, 146, 165, 159, 169, 160, 166, 169, 174, 154, 179, 162, 159, 166, 152, 172, 155, 162, 160, 163, 152, 159, 155, 169, 165, 157, 163, 148, 166, 181, 153, 157, 160, 158, 162, 167, 158, 157, 158, 160, 159, 162, 162, 146, 159, 156, 161, 152, 164, 165, 165, 161, 157, 163, 163, 154, 167, 161, 156, 160, 162, 157, 160, 157, 161, 147, 155, 153, 160, 162, 157, 152, 167, 159, 159, 155, 160, 157, 161, 162, 159, 159, 162, 161, 157, 165, 164, 159, 158, 158, 161, 163, 159, 157, 163, 146, 155, 163, 159, 158, 161, 158, 157, 165, 161, 159, 152, 163, 157, 157, 173, 153, 163, 162, 160, 155, 158, 159, 158, 161, 164, 162, 152, 158, 163, 158, 154, 154, 154, 159, 162, 160, 153, 163, 157, 167, 154, 159, 154, 151, 164, 164, 154, 156, 153, 160, 160, 162, 161, 161, 160, 157, 165, 169, 162, 158, 153, 155, 155, 159, 163, 168, 159, 164, 163, 163, 166, 163, 151, 164, 164, 161, 157, 156, 149, 158, 162, 159, 160, 162, 157, 156, 160, 163, 148, 172, 158, 161, 163, 158, 152, 157, 162, 159, 156, 162, 164, 160, 164, 160, 161, 158, 163, 158, 147, 163, 159, 163, 163, 165, 158, 162, 160, 148, 156, 159, 163, 161, 157, 157, 164, 159, 159, 160, 164, 154, 140, 162, 158, 164, 162, 160, 162, 165, 159, 167, 159, 159, 157, 156, 153, 168, 159, 171, 167, 156, 147, 157, 169, 167, 159, 164, 169, 160, 153, 163, 158, 143, 161, 159, 158, 156, 159, 160, 160, 159, 161, 160, 162, 157, 154, 164, 159, 163, 156, 159, 165, 167, 158, 164, 164, 164, 151, 160, 159, 164, 165, 161, 155, 156, 162, 159, 157, 155, 159, 158, 159, 158, 157, 160, 164, 157, 159, 153, 140, 168, 158, 159, 162, 155, 162, 165, 161, 171, 161, 158, 160, 160, 163, 159, 159, 158, 156, 158, 157, 161, 163, 161, 163, 156, 159, 158, 172, 160, 159, 156, 153, 158, 157, 159, 168, 155, 162, 164, 162, 162, 166, 171, 156, 160, 161, 163, 164, 163, 156, 164, 156, 159, 160, 160, 160, 157, 172, 170, 197, 170, 158, 162, 165, 161, 160, 163, 170, 153, 157, 160, 158, 154, 163, 159, 154, 163, 162, 158, 153, 160, 159, 149, 164, 166, 159, 160, 158, 157, 166, 159, 155, 162, 160, 153, 156, 151, 153, 162, 163, 166, 154, 155, 150, 161, 161, 162, 159, 179, 154, 155, 186, 173, 152, 159, 159, 164, 164, 153, 165, 150, 168, 161, 160, 160, 156, 162, 157, 161, 160, 156, 164, 165, 159, 153, 153, 163, 155, 159, 161, 169, 161, 164, 159, 158, 158, 156, 162, 159, 157, 164, 159, 162, 158, 160, 153, 150, 159, 158, 162, 160, 158, 166, 160, 157, 171, 156, 167, 154, 164, 162, 156, 159, 163, 161, 162, 158, 163, 174, 152, 158, 163, 156, 158, 150, 155, 158, 162, 161, 155, 159, 155, 163, 169, 162, 155, 158, 164, 156, 161, 167, 157, 166, 158, 161, 154, 171, 154, 157, 165, 151, 164, 165, 154, 156, 155, 152, 165, 166, 155, 163, 160, 167, 158, 168, 161, 158, 149, 172, 160, 161, 155, 164, 155, 161, 162, 157, 161, 158, 166, 162, 159, 159, 167, 142, 158, 159, 166, 161, 157, 171, 151, 166, 163, 157, 159, 155, 157, 161, 156, 157, 158, 156, 157, 161, 160, 159, 159, 155, 161, 163, 161, 169, 160, 162, 157, 161, 157, 153, 151, 164, 159, 153, 155, 151, 168, 160, 165, 153, 160, 160, 158, 162, 153, 161, 158, 156, 164, 157, 161, 165, 155, 164, 152, 166, 158, 164, 161, 162, 153, 157, 155, 160, 164, 156, 150, 165, 162, 160, 139, 165, 156, 169, 163, 164, 159, 165, 159, 156, 163, 162, 160, 156, 160, 145, 162, 160, 167, 158, 163, 158, 157, 171, 163, 158, 167, 153, 170, 156, 160, 164, 167, 153, 159, 160, 159, 160, 157, 150, 161, 165, 170, 159, 162, 163, 159, 165, 162, 165, 161, 165, 152, 160, 155, 166, 154, 160, 156, 164, 156, 151, 172, 159, 153, 151, 158, 166, 162, 159, 157, 155, 177, 194, 153, 169, 159, 158, 164, 164, 165, 159, 150, 173, 157, 159, 158, 165, 160, 160, 163, 162, 169, 162, 155, 154, 163, 163, 164, 152, 170, 148, 167, 165, 160, 174, 164, 164, 159, 158, 161, 152, 161, 156, 168, 156, 148, 155, 158, 160, 157, 159, 159, 160, 156, 176, 159, 158, 156, 158, 148, 162, 163, 158, 154, 166, 154, 162, 163, 159, 153, 166, 159, 162, 153, 159, 164, 161, 161, 163, 151, 162, 156, 157, 156, 159, 167, 158, 153, 159, 152, 161, 158, 164, 159, 168, 165, 158, 158, 160, 152, 152, 161, 156, 175, 158, 154, 152, 157, 158, 159, 149, 165, 163, 154, 157, 165, 155, 162, 162, 163, 173, 164, 151, 157, 157, 159, 159, 162, 155, 162, 162, 166, 167, 154, 157, 159, 157, 158, 161, 165, 156, 164, 165, 163, 161, 163, 159, 160, 159, 166, 153, 159, 150, 161, 157, 169, 157, 152, 163, 156, 161, 160, 161, 163, 156, 160, 162, 161, 154, 162, 154, 157, 161, 161, 163, 155, 160, 168, 158, 156, 155, 156, 155, 153, 165, 155, 154, 173, 159, 160, 166, 155, 161, 158, 160, 160, 155, 148, 157, 162, 157, 173, 161, 157, 167, 155, 156, 156, 160, 154, 158, 156, 158, 161, 160, 164, 164, 160, 155, 156, 157, 155, 149, 158, 154, 163, 160, 160, 157, 153, 174, 160, 161, 166, 170, 159, 159, 167, 159, 176, 153, 161, 158, 160, 157, 166, 165, 159, 163, 164, 159, 156, 164, 167, 166, 161, 172, 167, 160, 159, 148, 158, 164, 165, 154, 159, 169, 156, 163, 176, 160, 155, 155, 160, 158, 162, 159, 161, 157, 156, 153, 159, 161, 159, 158, 155, 162, 163, 157, 154, 163, 156, 170, 158, 160, 164, 157, 168, 159, 143, 165, 166, 162, 155, 155, 159, 162, 155, 155, 163, 159, 158, 157, 154, 148, 159, 156, 162, 163, 152, 153, 158, 178, 157, 153, 143, 157, 163, 157, 152, 160, 158, 158, 160, 164, 158, 161, 154, 151, 159, 159, 162, 169, 156, 166, 161, 162, 162, 160, 170, 153, 160, 157, 164, 150, 145, 157, 154, 159, 166, 166, 157, 154, 158, 165, 163, 159, 156, 165, 163, 180, 157, 163, 150, 165, 157, 149, 157, 160, 156, 156, 163, 167, 158, 160, 159, 167, 156, 144, 157, 158, 166, 165, 150, 160, 163, 156, 156, 162, 153, 163, 163, 155, 157, 166, 163, 162, 169, 158, 152, 154, 165, 169, 174, 158, 163, 151, 164, 159, 157, 159, 160, 154, 159, 157, 160, 151, 165, 173, 164, 158, 158, 161, 152, 158, 170, 154, 160, 162, 159, 153, 156, 152, 165, 156, 157, 167, 160, 154, 162, 160, 162, 156, 157, 173, 152, 162, 157, 159, 162, 165, 154, 158, 161, 154, 165, 159, 165, 158, 161, 161, 164, 162, 156, 167, 171, 164, 146, 152, 152, 157, 165, 165, 154, 158, 156, 165, 147, 159, 161, 149, 156, 156, 143, 160, 160, 156, 155, 151, 141, 163, 137, 159, 155, 150, 160, 158, 154, 163, 159, 165, 167, 155, 168, 156, 169, 171, 169, 167, 160, 144, 155, 162, 167, 157, 160, 163, 164, 160, 170, 151, 160, 151, 166, 159, 154, 166, 152, 159, 164, 160, 163, 158, 153, 164, 149, 159, 163, 153, 164, 153, 165, 159, 160, 157, 156, 161, 157, 165, 158, 176, 183, 153, 166, 165, 162, 165, 164, 157, 157, 165, 157, 173, 166, 159, 153, 152, 159, 165, 158, 159, 164, 167, 165, 161, 158, 162, 153, 159, 162, 163, 160, 161, 171, 146, 162, 150, 165, 161, 145, 150, 155, 153, 154, 155, 155, 173, 169, 162, 165, 150, 156, 157, 162, 166, 167, 151, 167, 151, 155, 165, 155, 167, 160, 161, 161, 161, 165, 158, 165, 163, 161, 166, 166, 155, 152, 154, 152, 157, 148, 156, 161, 165, 150, 158, 168, 153, 158, 162, 174, 159, 147, 158, 156, 165, 153, 165, 157, 159, 161, 153, 162, 156, 164, 156, 159, 157, 156, 155, 164, 155, 154, 158, 158, 163, 160, 148, 159, 155, 151, 153, 157, 157, 152, 157, 160, 177, 162, 161, 154, 155, 158, 157, 159, 160, 143, 156, 168, 157, 170, 160, 187, 153, 160, 148, 155, 161, 177, 162, 157, 151, 152, 166, 159, 151, 155, 160, 162, 165, 174, 152, 152, 152, 161, 161, 163, 158, 154, 153, 133, 167, 162, 160, 161, 175, 160, 162, 159, 155, 156, 167, 160, 158, 153, 156, 168, 161, 151, 161, 150, 166, 164, 160, 175, 152, 158, 164, 155, 157, 161, 162, 182, 176, 169, 163, 162, 155, 167, 159, 162, 154, 152, 140, 153, 156, 161, 156, 163, 158, 154, 164, 158, 163, 162, 159, 158, 160, 171, 158, 164, 157, 162, 149, 171, 164, 155, 158, 164, 147, 165, 162, 157, 158, 157, 149, 169, 155, 160, 144, 161, 162, 157, 154, 154, 158, 158, 151, 148, 163, 155, 165, 170, 168, 153, 151, 163, 153, 162, 152, 155, 161, 173, 152, 152, 163, 157, 169, 153, 154, 160, 154, 166, 148, 163, 165, 170, 150, 154, 159, 160, 158, 167, 162, 156, 167, 159, 162, 151, 163, 156, 159, 162, 162, 166, 165, 166, 158, 160, 153, 183, 169, 155, 169, 159, 158, 154, 164, 160, 163, 162, 158, 166, 144, 155, 162, 166, 159, 154, 157, 162, 155, 159, 163, 139, 170, 161, 150, 150, 156, 158, 158, 160, 159, 159, 176, 161, 163, 162, 161, 159, 161, 155, 152, 166, 165, 158, 177, 167, 155, 160, 159, 160, 159, 170, 157, 162, 162, 159, 159, 150, 144, 154, 153, 152, 159, 156, 155, 168, 162, 158, 171, 165, 147, 164, 159, 164, 158, 154, 165, 166, 163, 149, 158, 158, 164, 157, 155, 160, 156, 162, 155, 156, 153, 163, 152, 148, 151, 161, 150, 164, 159, 156, 164, 162, 162, 162, 152, 159, 162, 167, 160, 164, 157, 159, 160, 161, 171, 157, 148, 155, 162, 170, 153, 148, 156, 163, 169, 165, 161, 170, 153, 161, 163, 157, 153, 160, 159, 152, 156, 159, 159, 162, 161, 161, 169, 169, 159, 156, 147, 163, 150, 164, 162, 154, 176, 159, 170, 165, 153, 154, 150, 158, 164, 161, 150, 165, 167, 156, 174, 153, 154, 170, 152, 163, 145, 162, 158, 152, 163, 166, 166, 161, 174, 169, 168, 147, 152, 162, 160, 155, 153, 155, 154, 152, 155, 159, 155, 165, 159, 147, 162, 164, 157, 147, 160, 159, 155, 159, 157, 166, 170, 169, 160, 158, 151, 163, 152, 168, 160, 165, 156, 152, 154, 157, 156, 165, 157, 152, 163, 183, 147, 169, 157, 161, 165, 149, 149, 160, 157, 149, 163, 172, 155, 162, 163, 156, 161, 158, 156, 162, 156, 159, 167, 168, 173, 168, 157, 161, 155, 159, 165, 150, 164, 163, 157, 160, 163, 170, 148, 147, 164, 158, 158, 161, 156, 151, 154, 155, 157, 171, 161, 165, 172, 164, 169, 161, 162, 150, 152, 168, 161, 165, 160, 170, 163, 170, 165, 156, 167, 172, 160, 166, 157, 169, 163, 156, 155, 163, 149, 167, 175, 171, 156, 158, 174, 163, 157, 159, 148, 158, 154, 161, 161, 156, 143, 155, 164, 159, 158, 157, 160, 165, 166, 159, 150, 160, 163, 169, 163, 159, 157, 154, 148, 146, 156, 161, 153, 164, 156, 146, 162, 158, 161, 159, 181, 154, 160, 161, 156, 168, 170, 169, 161, 157, 159, 156, 158, 178, 151, 156, 154, 165, 166, 159, 152, 151, 166, 150, 155, 157, 171, 156, 175, 166, 159, 150, 148, 167, 163, 162, 154, 159, 157, 152, 153, 164, 155, 167, 148, 162, 168, 155, 152, 160, 159, 150, 164, 163, 163, 160, 156, 163, 156, 159, 157, 163, 163, 160, 160, 159, 165, 157, 160, 170, 164, 151, 145, 159, 156, 151, 154, 152, 161, 154, 152, 145, 158, 169, 165, 159, 161, 164, 154, 158, 159, 157, 152, 156, 163, 164, 160, 160, 164, 163, 178, 157, 168, 155, 162, 166, 155, 157, 167, 152, 157, 155, 158, 157, 160, 157, 157, 162, 165, 165, 161, 159, 159, 156, 155, 158, 158, 167, 162, 158, 156, 159, 173, 153, 167, 154, 148, 151, 153, 152, 166, 157, 164, 147, 165, 164, 152, 151, 165, 168, 163, 152, 161, 167, 158, 169, 161, 169, 180, 147, 158, 154, 157, 157, 158, 158, 160, 163, 156, 158, 157, 167, 164, 156, 162, 163, 159, 159, 158, 175, 163, 164, 165, 148, 153, 161, 155, 159, 162, 154, 155, 161, 155, 156, 159, 164, 163, 159, 161, 165, 158, 156, 177, 161, 146, 157, 157, 159, 164, 174, 161, 160, 166, 168, 161, 162, 156, 170, 164, 162, 156, 159, 159, 163, 159, 159, 164, 157, 166, 154, 167, 159, 164, 158, 156, 149, 169, 156, 161, 162, 163, 155, 156, 163, 163, 158, 168, 156, 165, 157, 156, 156, 163, 155, 153, 152, 157, 168, 161, 158, 179, 159, 157, 172, 164, 154, 158, 160, 159, 161, 162, 157, 157, 160, 160, 159, 158, 157, 156, 159, 161, 164, 154, 162, 165, 162, 158, 150, 150, 159, 160, 150, 159, 157, 159, 156, 161, 163, 166, 156, 162, 159, 155, 163, 147, 164, 159, 179, 151, 159, 162, 160, 164, 163, 163, 161, 164, 159, 156, 154, 164, 163, 162, 164, 161, 161, 159, 163, 166, 166, 156, 158, 171, 158, 164, 176, 158, 157, 160, 165, 159, 155, 158, 166, 156, 167, 162, 164, 154, 159, 162, 161, 163, 164, 161, 157, 159, 163, 161, 159, 169, 149, 153, 166, 163, 157, 162, 165, 149, 162, 167, 160, 163, 154, 173, 160, 154, 156, 164, 159, 153, 161, 161, 166, 157, 151, 164, 152, 158, 146, 163, 158, 179, 162, 157, 159, 163, 163, 159, 159, 159, 158, 154, 152, 151, 160, 155, 163, 155, 156, 156, 155, 154, 171, 158, 164, 162, 159, 161, 165, 161, 155, 152, 160, 166, 157, 163, 158, 161, 161, 156, 159, 160, 160, 158, 160, 167, 162, 165, 163, 159, 168, 161, 162, 158, 157, 162, 160, 157, 159, 165, 172, 158, 168, 158, 156, 161, 153, 158, 144, 176, 164, 150, 158, 156, 155, 153, 155, 162, 160, 149, 162, 161, 158, 159, 161, 157, 159, 169, 161, 163, 162, 158, 154, 156, 164, 165, 163, 159, 152, 156, 164, 155, 159, 160, 154, 146, 158, 155, 159, 156, 149, 159, 159, 161, 157, 153, 160, 163, 160, 147, 163, 158, 160, 155, 162, 156, 161, 169, 160, 160, 159, 162, 160, 155, 144, 157, 161, 156, 170, 159, 156, 157, 156, 161, 156, 157, 156, 156, 162, 168, 163, 153, 160, 158, 167, 163, 157, 169, 150, 161, 166, 156, 158, 167, 163, 150, 159, 155, 159, 168, 159, 169, 158, 163, 158, 160, 158, 162, 155, 153, 162, 152, 164, 160, 161, 157, 157, 156, 154, 165, 164, 166, 160, 154, 164, 147, 164, 172, 151, 161, 160, 160, 166, 165, 161, 161, 158, 162, 162, 169, 162, 161, 165, 169, 159, 164, 175, 150, 161, 167, 159, 151, 156, 159, 165, 155, 163, 161, 158, 179, 162, 162, 156, 160, 164, 155, 158, 157, 163, 158, 165, 162, 167, 159, 156, 158, 154, 168, 164, 158, 160, 157, 185, 154, 162, 153, 162, 155, 160, 160, 157, 163, 158, 156, 152, 161, 153, 159, 162, 170, 159, 160, 158, 143, 163, 162, 158, 160, 157, 156, 164, 166, 159, 159, 160, 149, 162, 156, 157, 151, 165, 167, 167, 164, 157, 158, 160, 154, 146, 162, 156, 150, 161, 166, 153, 177, 161, 167, 154, 150, 151, 162, 160, 164, 155, 149, 165, 171, 158, 167, 158, 166, 165, 159, 163, 170, 160, 169, 158, 158, 159, 155, 160, 165, 155, 157, 165, 166, 166, 171, 167, 159, 157, 148, 163, 163, 160, 165, 156, 164, 161, 193, 152, 151, 156, 148, 163, 159, 162, 174, 161, 158, 165, 153, 150, 155, 158, 156, 154, 158, 152, 165, 157, 143, 166, 159, 148, 155, 149, 163, 169, 161, 160, 159, 155, 154, 158, 151, 153, 167, 166, 157, 158, 158, 157, 160, 152, 160, 158, 155, 152, 171, 154, 161, 151, 160, 159, 153, 151, 163, 162, 154, 153, 155, 158, 153, 159, 155, 167, 157, 169, 152, 157, 150, 152, 166, 154, 164, 161, 152, 160, 161, 141, 156, 153, 158, 161, 165, 168, 164, 165, 153, 158, 169, 153, 149, 155, 161, 166, 161, 151, 164, 168, 144, 151, 169, 172, 155, 162, 167, 171, 151, 176, 170, 158, 160, 154, 153, 164, 159, 159, 158, 157, 160, 168, 173, 162, 154, 158, 157, 164, 158, 174, 160, 162, 166, 163, 156, 154, 157, 159, 156, 173, 159, 152, 163, 168, 158, 158, 158, 150, 158, 158, 146, 159, 159, 175, 158, 153, 171, 157, 153, 165, 158, 161, 156, 158, 156, 172, 150, 164, 171, 168, 160, 155, 160, 154, 168, 164, 152, 155, 153, 159, 160, 160, 165, 157, 156, 167, 162, 158, 172, 168, 158, 157, 164, 163, 166, 169, 160, 161, 166, 152, 152, 155, 150, 156, 164, 158, 159, 162, 159, 161, 168, 161, 158, 161, 148, 160, 163, 158, 166, 170, 151, 169, 154, 162, 166, 153, 166, 165, 150, 169, 159, 154, 162, 153, 155, 160, 157, 165, 155, 155, 162, 163, 162, 162, 157, 160, 159, 161, 151, 162, 156, 155, 170, 166, 158, 158, 166, 154, 151, 154, 154, 159, 153, 158, 148, 171, 166, 160, 162, 182, 149, 161, 163, 162, 160, 172, 161, 164, 157, 160, 163, 162, 163, 158, 152, 155, 168, 166, 149, 149, 155, 156, 159, 174, 156, 173, 156, 149, 161, 154, 157, 162, 171, 150, 151, 161, 169, 160, 163, 162, 168, 161, 161, 168, 153, 162, 160, 157, 166, 155, 167, 166, 154, 151, 159, 155, 160, 160, 163, 166, 167, 162, 158, 165, 154, 160, 159, 158, 169, 161, 159, 161, 154, 171, 163, 153, 165, 164, 159, 161, 156, 169, 165, 165, 155, 165, 146, 165, 162, 160, 162, 150, 156, 158, 163, 160, 165, 165, 168, 156, 156, 157, 148, 165, 156, 168, 173, 165, 158, 160, 156, 147, 143, 160, 146, 153, 166, 170, 158, 156, 168, 156, 154, 160, 161, 144, 162, 158, 156, 161, 162, 161, 157, 152, 160, 162, 161, 164, 145, 158, 167, 150, 149, 167, 153, 161, 162, 170, 164, 166, 168, 163, 167, 154, 171, 158, 140, 157, 171, 155, 164, 160, 162, 159, 160, 166, 150, 159, 163, 160, 160, 164, 168, 158, 156, 162, 158, 161, 162, 162, 164, 162, 159, 163, 164, 168, 157, 159, 160, 159, 167, 155, 162, 157, 164, 165, 160, 165, 146, 162, 161, 160, 164, 156, 162, 160, 158, 159, 161, 165, 158, 159, 161, 152, 156, 168, 158, 157, 170, 164, 170, 164, 163, 163, 162, 161, 150, 158, 159, 158, 161, 160, 157, 157, 159, 155, 165, 160, 157, 159, 158, 160, 157, 158, 161, 168, 167, 160, 158, 170, 150, 158, 168, 160, 158, 158, 162, 157, 159, 166, 163, 154, 159, 162, 148, 151, 163, 159, 160, 160, 157, 160, 147, 159, 159, 160, 161, 158, 162, 159, 161, 163, 162, 163, 160, 165, 159, 163, 165, 167, 161, 159, 162, 162, 162, 161, 162, 157, 164, 164, 162, 167, 159, 163, 159, 169, 159, 164, 153, 150, 159, 158, 166, 153, 168, 158, 158, 167, 159, 172, 166, 158, 158, 161, 161, 157, 159, 158, 156, 162, 150, 158, 157, 160, 158, 164, 155, 156, 157, 167, 158, 157, 161, 162, 162, 170, 158, 153, 158, 156, 161, 159, 160, 163, 157, 171, 160, 157, 159, 160, 162, 156, 157, 155, 169, 158, 155, 163, 161, 157, 153, 149, 157, 153, 161, 157, 156, 153, 141, 164, 165, 163, 160, 162, 166, 161, 160, 162, 162, 156, 156, 160, 157, 162, 160, 153, 156, 160, 165, 165, 168, 163, 155, 166, 151, 162, 164, 160, 157, 162, 157, 168, 159, 158, 159, 156, 161, 164, 163, 166, 147, 162, 158, 164, 163, 161, 168, 163, 154, 158, 162, 159, 159, 163, 156, 158, 159, 162, 159, 161, 158, 170, 162, 165, 165, 159, 152, 162, 159, 167, 167, 164, 161, 159, 161, 167, 164, 161, 155, 161, 158, 155, 162, 159, 160, 162, 165, 159, 161, 165, 164, 158, 166, 159, 163, 153, 160, 165, 160, 157, 157, 164, 159, 158, 158, 159, 165, 162, 157, 158, 154, 156, 155, 156, 161, 157, 159, 157, 160, 156, 160, 165, 161, 158, 161, 157, 167, 160, 168, 161, 162, 159, 159, 169, 159, 158, 161, 154, 162, 160, 151, 157, 161, 160, 160, 157, 158, 163, 156, 175, 153, 162, 164, 162, 165, 161, 159, 157, 157, 152, 156, 162, 161, 155, 161, 157, 159, 160, 157, 169, 166, 151, 162, 158, 161, 164, 161, 156, 160, 164, 161, 163, 156, 160, 160, 166, 157, 160, 160, 157, 160, 162, 158, 139, 155, 158, 158, 156, 160, 166, 159, 162, 158, 160, 162, 163, 159, 159, 158, 164, 160, 155, 161, 159, 162, 162, 152, 159, 165, 158, 173, 169, 165, 157, 161, 160, 152, 155, 161, 161, 163, 160, 162, 166, 158, 156, 158, 154, 155, 163, 158, 157, 158, 163, 162, 159, 157, 147, 161, 166, 173, 163, 154, 151, 158, 163, 158, 155, 158, 161, 162, 163, 161, 152, 161, 161, 167, 161, 161, 157, 159, 159, 158, 166, 155, 168, 157, 157, 161, 160, 157, 161, 160, 160, 162, 160, 156, 161, 157, 165, 160, 165, 159, 155, 160, 157, 164, 163, 147, 169, 158, 155, 148, 144, 154, 156, 160, 158, 156, 158, 158, 159, 159, 153, 175, 160, 171, 175, 167, 170, 169, 154, 157, 159, 169, 162, 151, 157, 163, 160, 154, 156, 151, 154, 167, 171, 159, 155, 162, 167, 157, 163, 156, 157, 150, 159, 158, 164, 160, 165, 150, 153, 157, 168, 163, 153, 159, 160, 159, 151, 166, 157, 156, 165, 149, 165, 164, 159, 158, 160, 167, 168, 171, 168, 156, 153, 169, 166, 155, 162, 156, 160, 163, 156, 154, 163, 159, 155, 157, 164, 156, 152, 157, 155, 163, 159, 154, 161, 159, 149, 164, 157, 162, 153, 158, 173, 155, 161, 172, 162, 161, 160, 162, 158, 162, 162, 158, 165, 169, 159, 148, 162, 166, 159, 169, 155, 167, 171, 160, 155, 159, 167, 163, 162, 162, 160, 153, 160, 158, 160, 169, 156, 162, 152, 152, 158, 153, 161, 160, 154, 157, 162, 162, 161, 159, 155, 167, 154, 163, 158, 162, 157, 157, 157, 163, 164, 160, 155, 158, 170, 166, 177, 160, 153, 158, 165, 158, 159, 161, 152, 154, 159, 161, 158, 157, 157, 157, 161, 156, 159, 153, 163, 162, 161, 168, 156, 165, 164, 164, 151, 166, 156, 157, 158, 158, 162, 154, 161, 164, 168, 166, 163, 163, 166, 154, 166, 151, 154, 165, 164, 166, 150, 167, 159, 160, 143, 157, 155, 164, 159, 155, 165, 153, 154, 161, 153, 152, 178, 154, 158, 158, 165, 162, 158, 164, 156, 151, 159, 161, 164, 163, 156, 153, 151, 153, 153, 161, 159, 162, 156, 155, 160, 154, 154, 156, 163, 172, 166, 158, 169, 158, 155, 160, 157, 163, 151, 165, 167, 160, 165, 159, 159, 162, 160, 160, 158, 157, 162, 158, 161, 153, 166, 163, 155, 151, 159, 153, 157, 157, 157, 157, 161, 161, 161, 167, 162, 169, 161, 163, 152, 157, 151, 161, 158, 157, 155, 157, 158, 164, 154, 157, 169, 158, 164, 158, 157, 160, 155, 162, 163, 155, 150, 162, 161, 151, 163, 162, 156, 152, 162, 152, 157, 157, 162, 162, 154, 158, 162, 150, 167, 168, 157, 156, 158, 158, 159, 168, 154, 163, 166, 155, 163, 156, 160, 162, 165, 158, 152, 164, 158, 165, 154, 161, 159, 161, 156, 163, 162, 161, 161, 162, 155, 165, 160, 159, 153, 152, 161, 154, 151, 155, 154, 161, 164, 151, 158, 155, 157, 179, 157, 152, 154, 157, 165, 156, 163, 163, 162, 161, 165, 159, 166, 163, 160, 161, 164, 160, 167, 158, 158, 164, 166, 164, 166, 159, 166, 159, 155, 155, 159, 160, 167, 151, 159, 163, 161, 156, 163, 156, 162, 155, 162, 160, 161, 162, 157, 161, 167, 158, 155, 166, 152, 161, 160, 158, 157, 160, 159, 155, 156, 166, 162, 159, 165, 147, 154, 161, 162, 155, 160, 155, 154, 161, 163, 161, 165, 163, 165, 160, 163, 161, 153, 154, 166, 153, 164, 149, 155, 162, 160, 159, 170, 161, 157, 162, 157, 162, 154, 162, 164, 155, 175, 147, 168, 159, 158, 154, 170, 161, 148, 155, 157, 164, 154, 155, 164, 159, 164, 160, 161, 164, 157, 162, 167, 157, 157, 162, 163, 160, 153, 161, 162, 158, 165, 162, 159, 161, 160, 161, 161, 158, 158, 157, 164, 160, 152, 163, 155, 152, 152, 159, 159, 162, 168, 164, 157, 149, 160, 177, 161, 164, 164, 150, 154, 149, 163, 164, 160, 157, 159, 159, 151, 160, 166, 161, 161, 165, 156, 162, 157, 155, 161, 161, 162, 160, 159, 158, 168, 163, 160, 150, 167, 160, 159, 161, 153, 160, 165, 158, 172, 162, 165, 146, 150, 161, 160, 162, 159, 151, 160, 154, 164, 166, 159, 160, 162, 159, 160, 166, 156, 161, 162, 160, 156, 155, 158, 160, 159, 158, 159, 151, 151, 159, 159, 155, 147, 165, 163, 163, 164, 159, 167, 154, 159, 163, 159, 157, 167, 161, 157, 158, 158, 167, 160, 157, 158, 155, 162, 164, 162, 154, 161, 158, 158, 157, 168, 155, 162, 164, 157, 159, 164, 153, 165, 165, 160, 163, 169, 158, 159, 158, 160, 154, 161, 154, 157, 162, 164, 159, 155, 159, 169, 162, 162, 162, 157, 158, 156, 158, 160, 159, 158, 158, 161, 154, 162, 158, 152, 164, 162, 157, 162, 159, 157, 158, 150, 164, 163, 158, 162, 170, 159, 165, 157, 158, 164, 161, 160, 155, 163, 164, 157, 168, 165, 157, 160, 155, 161, 157, 160, 161, 162, 154, 153, 156, 165, 158, 158, 158, 163, 160, 162, 163, 159, 166, 159, 157, 149, 156, 163, 156, 160, 150, 149, 159, 159, 158, 153, 165, 161, 153, 163, 160, 156, 157, 156, 161, 160, 164, 159, 159, 164, 160, 162, 160, 157, 164, 162, 157, 158, 159, 164, 158, 159, 178, 162, 154, 158, 157, 165, 155, 157, 161, 159, 155, 160, 165, 152, 163, 158, 160, 164, 166, 158, 157, 162, 153, 158, 160, 158, 154, 161, 167, 157, 168, 154, 160, 163, 155, 162, 154, 166, 161, 160, 160, 158, 166, 161, 164, 165, 161, 159, 165, 158, 156, 162, 167, 160, 161, 161, 169, 158, 156, 161, 163, 159, 163, 153, 155, 158, 156, 164, 153, 162, 162, 157, 163, 160, 162, 167, 159, 156, 158, 160, 160, 157, 156, 159, 159, 157, 161, 162, 158, 157, 155, 158, 163, 166, 162, 162, 162, 154, 163, 148, 157, 154, 160, 160, 157, 163, 158, 176, 160, 161, 162, 157, 154, 160, 164, 156, 167, 163, 156, 163, 166, 158, 162, 153, 156, 163, 159, 163, 162, 155, 164, 154, 149, 165, 166, 162, 162, 161, 159, 156, 159, 157, 154, 163, 158, 154, 154, 161, 161, 159, 167, 158, 163, 158, 159, 156, 161, 162, 154, 167, 154, 160, 161, 154, 161, 151, 161, 164, 158, 160, 155, 163, 163, 162, 161, 159, 158, 159, 164, 159, 158, 161, 165, 160, 155, 162, 163, 157, 165, 158, 155, 166, 160, 159, 169, 158, 162, 158, 160, 158, 154, 159, 157, 155, 156, 160, 164, 164, 159, 156, 149, 151, 157, 157, 160, 157, 156, 161, 164, 153, 161, 164, 154, 155, 161, 156, 154, 157, 159, 160, 164, 164, 168, 152, 161, 160, 165, 165, 174, 164, 153, 154, 167, 159, 160, 157, 156, 155, 176, 161, 154, 154, 163, 158, 162, 163, 156, 154, 170, 167, 157, 159, 159, 156, 158, 161, 160, 150, 168, 160, 154, 160, 152, 176, 161, 159, 161, 162, 163, 156, 161, 160, 158, 153, 167, 161, 168, 157, 162, 161, 165, 163, 159, 154, 163, 168, 161, 161, 158, 161, 154, 163, 165, 165, 155, 151, 155, 165, 160, 183, 170, 161, 156, 175, 162, 158, 153, 160, 160, 158, 167, 164, 164, 167, 147, 156, 164, 156, 152, 162, 173, 161, 167, 157, 157, 160, 166, 150, 161, 158, 161, 146, 160, 154, 153, 170, 157, 165, 164, 164, 163, 157, 157, 162, 154, 156, 159, 161, 148, 161, 161, 161, 159, 162, 164, 163, 160, 159, 176, 156, 160, 158, 166, 160, 172, 148, 160, 168, 164, 161, 169, 167, 161, 160, 155, 147, 137, 157, 166, 158, 154, 163, 161, 153, 159, 153, 165, 162, 159, 161, 158, 159, 165, 168, 155, 157, 160, 163, 171, 164, 163, 170, 158, 153, 170, 162, 156, 155, 160, 152, 155, 143, 161, 161, 165, 158, 166, 155, 161, 160, 153, 165, 152, 159, 162, 165, 159, 159, 156, 160, 171, 153, 161, 153, 164, 164, 164, 159, 166, 162, 156, 165, 151, 163, 176, 160, 165, 161, 168, 171, 164, 166, 161, 168, 165, 153, 161, 167, 155, 159, 159, 165, 161, 166, 158, 162, 159, 153, 162, 152, 160, 165, 160, 151, 161, 160, 156, 164, 161, 157, 159, 161, 162, 151, 165, 145, 168, 168, 159, 165, 160, 158, 156, 164, 158, 171, 166, 155, 173, 156, 165, 167, 158, 161, 164, 155, 158, 164, 160, 162, 167, 166, 165, 161, 167, 159, 154, 164, 159, 167, 158, 161, 163, 165, 158, 162, 157, 162, 162, 159, 167, 166, 160, 171, 155, 165, 164, 173, 162, 158, 159, 163, 162, 161, 157, 162, 153, 163, 167, 163, 164, 163, 157, 157, 162, 161, 157, 160, 158, 160, 151, 161, 172, 164, 162, 160, 156, 163, 164, 161, 158, 157, 160, 158, 159, 159, 169, 144, 158, 154, 156, 160, 170, 168, 156, 159, 165, 165, 159, 158, 162, 159, 171, 165, 162, 148, 164, 154, 169, 151, 159, 156, 155, 157, 154, 167, 162, 160, 164, 162, 167, 158, 160, 143, 169, 162, 158, 159, 161, 166, 167, 159, 165, 155, 167, 154, 167, 156, 164, 156, 171, 164, 156, 162, 170, 156, 156, 154, 150, 159, 161, 157, 168, 155, 156, 172, 152, 154, 167, 160, 156, 163, 167, 162, 156, 161, 159, 162, 167, 159, 168, 158, 168, 156, 162, 161, 155, 155, 148, 161, 162, 157, 160, 174, 161, 161, 157, 161, 168, 159, 171, 155, 174, 143, 163, 160, 160, 159, 173, 162, 151, 161, 160, 157, 151, 157, 159, 156, 165, 167, 164, 159, 150, 177, 158, 169, 167, 158, 162, 161, 158, 156, 154, 163, 161, 157, 158, 164, 163, 161, 157, 156, 162, 149, 168, 156, 161, 156, 165, 161, 156, 160, 166, 160, 160, 162, 159, 163, 159, 160, 162, 161, 159, 152, 159, 161, 160, 162, 159, 157, 156, 164, 162, 159, 167, 160, 165, 164, 161, 161, 158, 162, 154, 165, 156, 180, 158, 158, 163, 166, 160, 159, 158, 158, 155, 166, 162, 159, 149, 164, 160, 161, 179, 173, 159, 158, 153, 159, 160, 158, 160, 158, 157, 156, 161, 162, 160, 165, 156, 163, 161, 161, 163, 154, 159, 163, 158, 157, 159, 159, 158, 164, 153, 163, 159, 166, 157, 156, 159, 152, 167, 164, 159, 178, 162, 162, 160, 160, 163, 160, 163, 157, 159, 157, 160, 164, 158, 155, 164, 165, 160, 160, 156, 159, 164, 158, 159, 157, 166, 162, 161, 182, 161, 160, 155, 164, 165, 161, 161, 160, 157, 161, 167, 165, 161, 160, 161, 162, 158, 175, 153, 152, 167, 161, 162, 158, 165, 161, 164, 157, 161, 162, 159, 159, 160, 166, 161, 162, 164, 163, 160, 159, 161, 158, 159, 156, 163, 162, 156, 161, 160, 161, 162, 163, 163, 157, 164, 156, 162, 160, 158, 158, 158, 158, 163, 158, 154, 160, 159, 162, 157, 158, 159, 164, 153, 161, 160, 165, 160, 155, 159, 159, 161, 157, 161, 162, 160, 158, 161, 162, 169, 162, 163, 155, 159, 162, 163, 159, 161, 162, 156, 155, 165, 159, 165, 158, 157, 153, 157, 159, 165, 156, 164, 157, 158, 152, 155, 161, 162, 157, 157, 157, 150, 157, 160, 159, 160, 162, 157, 163, 158, 165, 171, 180, 155, 158, 158, 161, 161, 164, 178, 163, 162, 159, 162, 166, 159, 161, 155, 160, 159, 158, 161, 161, 159, 160, 162, 158, 162, 162, 161, 159, 161, 159, 165, 161, 165, 161, 161, 158, 163, 160, 162, 160, 157, 163, 161, 156, 160, 160, 159, 163, 157, 161, 162, 166, 162, 156, 162, 163, 161, 160, 162, 160, 158, 164, 162, 162, 156, 167, 170, 163, 158, 160, 158, 164, 157, 161, 161, 159, 155, 160, 157, 172, 162, 158, 163, 161, 164, 159, 159, 164, 156, 162, 162, 163, 160, 161, 160, 163, 160, 156, 156, 156, 161, 165, 159, 154, 155, 157, 163, 161, 156, 159, 157, 158, 158, 161, 162, 157, 160, 154, 161, 163, 160, 170, 165, 165, 158, 156, 156, 160, 158, 179, 160, 160, 163, 155, 156, 154, 161, 150, 163, 163, 160, 162, 160, 160, 156, 163, 155, 157, 157, 156, 161, 163, 160, 156, 158, 153, 163, 158, 155, 161, 160, 162, 159, 161, 161, 156, 166, 160, 160, 161, 157, 162, 159, 159, 161, 160, 165, 160, 162, 160, 152, 164, 156, 162, 166, 154, 166, 149, 161, 158, 157, 161, 159, 182, 155, 164, 160, 163, 161, 161, 161, 170, 159, 161, 161, 159, 163, 178, 157, 163, 159, 154, 157, 161, 179, 160, 161, 170, 178, 153, 163, 160, 161, 163, 163, 155, 160, 152, 158, 156, 162, 158, 163, 161, 157, 160, 159, 162, 158, 164, 160, 164, 159, 162, 160, 162, 158, 161, 166, 159, 162, 157, 156, 161, 160, 161, 158, 158, 159, 159, 157, 154, 152, 162, 162, 158, 157, 161, 158, 155, 164, 163, 174, 161, 162, 156, 160, 156, 158, 163, 154, 160, 163, 156, 156, 158, 160, 170, 157, 164, 157, 167, 159, 164, 169, 157, 158, 158, 153, 159, 156, 160, 159, 159, 158, 160, 157, 155, 160, 164, 158, 163, 159, 161, 164, 157, 155, 158, 162, 167, 143, 156, 159, 161, 171, 159, 156, 158, 155, 162, 162, 152, 162, 154, 160, 161, 157, 165, 164, 156, 156, 160, 154, 157, 158, 167, 159, 159, 166, 158, 156, 158, 158, 153, 155, 167, 168, 160, 157, 163, 159, 162, 171, 158, 166, 163, 156, 158, 151, 161, 160, 156, 158, 159, 153, 157, 162, 156, 154, 154, 172, 155, 156, 156, 155, 155, 155, 156, 157, 157, 160, 164, 156, 158, 157, 152, 165, 150, 156, 160, 158, 164, 164, 159, 154, 160, 158, 156, 166, 160, 158, 156, 164, 166, 165, 160, 161, 163, 159, 157, 172, 160, 162, 159, 162, 160, 160, 163, 158, 159, 153, 161, 161, 155, 161, 167, 157, 166, 157, 159, 157, 163, 155, 159, 156, 164, 148, 162, 156, 167, 158, 157, 152, 160, 155, 160, 162, 154, 162, 159, 159, 162, 165, 173, 156, 175, 157, 154, 169, 156, 163, 161, 158, 159, 161, 162, 164, 155, 156, 155, 160, 162, 154, 166, 161, 159, 160, 157, 165, 155, 163, 140, 156, 159, 165, 169, 156, 146, 152, 160, 163, 158, 158, 156, 158, 162, 147, 169, 158, 161, 160, 159, 166, 161, 152, 166, 157, 155, 158, 159, 156, 158, 156, 156, 169, 154, 162, 157, 161, 155, 161, 158, 155, 159, 163, 171, 164, 164, 160, 154, 158, 156, 154, 158, 166, 158, 161, 158, 159, 156, 164, 157, 151, 159, 159, 164, 154, 155, 162, 157, 159, 160, 164, 154, 162, 167, 155, 163, 161, 155, 158, 163, 157, 152, 160, 167, 167, 159, 162, 151, 165, 158, 160, 151, 159, 150, 162, 161, 163, 160, 157, 160, 161, 157, 163, 160, 160, 162, 159, 159, 153, 158, 152, 152, 157, 160, 168, 159, 165, 169, 159, 156, 160, 162, 162, 162, 160, 159, 163, 159, 157, 165, 159, 160, 160, 157, 166, 156, 153, 151, 154, 150, 166, 161, 159, 170, 154, 156, 160, 159, 160, 159, 158, 164, 166, 163, 155, 160, 153, 160, 160, 164, 159, 159, 162, 163, 156, 156, 151, 157, 151, 162, 162, 159, 161, 164, 157, 165, 162, 171, 157, 163, 160, 151, 156, 162, 160, 158, 165, 157, 161, 167, 160, 164, 153, 166, 155, 156, 159, 161, 150, 152, 157, 165, 157, 153, 158, 159, 160, 154, 153, 156, 159, 156, 155, 154, 161, 166, 163, 159, 159, 168, 159, 157, 162, 154, 162, 167, 157, 159, 160, 157, 161, 163, 160, 155, 161, 152, 162, 168, 154, 162, 161, 166, 160, 161, 164, 158, 159, 150, 152, 158, 155, 160, 151, 166, 148, 168, 157, 163, 155, 160, 157, 159, 162, 157, 162, 161, 155, 154, 168, 159, 160, 165, 151, 158, 158, 158, 162, 153, 159, 163, 163, 151, 159, 166, 162, 163, 158, 163, 157, 162, 159, 161, 163, 159, 157, 160, 154, 160, 157, 157, 162, 161, 161, 161, 161, 158, 166, 163, 161, 166, 164, 167, 169, 161, 168, 159, 166, 157, 155, 157, 161, 173, 160, 178, 155, 158, 167, 166, 167, 166, 159, 165, 168, 161, 160, 165, 159, 156, 156, 163, 165, 166, 158, 160, 162, 159, 161, 157, 164, 156, 154, 157, 153, 157, 173, 160, 163, 163, 165, 161, 166, 160, 161, 161, 151, 160, 155, 159, 163, 166, 166, 160, 162, 162, 165, 159, 158, 163, 151, 157, 159, 160, 164, 176, 163, 159, 166, 157, 155, 155, 158, 161, 160, 161, 163, 162, 162, 164, 164, 160, 163, 161, 162, 154, 167, 160, 162, 163, 162, 165, 163, 165, 159, 164, 157, 160, 159, 162, 164, 162, 158, 157, 164, 165, 164, 160, 158, 167, 164, 165, 160, 162, 160, 154, 155, 166, 154, 159, 160, 160, 163, 162, 160, 179, 157, 163, 166, 155, 164, 161, 170, 157, 161, 162, 159, 161, 161, 161, 164, 161, 160, 162, 164, 166, 163, 162, 178, 162, 156, 166, 164, 158, 156, 165, 164, 160, 162, 156, 162, 162, 165, 161, 163, 158, 161, 159, 170, 154, 162, 157, 165, 165, 165, 165, 163, 158, 155, 147, 162, 155, 157, 153, 160, 155, 162, 163, 157, 163, 165, 160, 156, 154, 162, 160, 157, 162, 154, 159, 160, 163, 160, 161, 160, 160, 159, 161, 168, 156, 155, 159, 168, 158, 161, 165, 154, 161, 164, 162, 159, 159, 155, 159, 160, 157, 150, 157, 164, 165, 156, 156, 157, 158, 158, 160, 155, 164, 160, 163, 161, 168, 168, 159, 162, 162, 160, 162, 152, 167, 158, 163, 163, 162, 162, 161, 168, 158, 162, 156, 157, 157, 167, 163, 160, 163, 156, 159, 162, 163, 165, 166, 166, 164, 164, 157, 160, 159, 158, 164, 162, 160, 159, 160, 163, 165, 156, 162, 156, 157, 161, 165, 160, 163, 161, 165, 158, 161, 161, 165, 162, 162, 162, 160, 156, 161, 161, 162, 155, 166, 152, 160, 160, 160, 160, 162, 159, 156, 153, 160, 167, 166, 163, 162, 148, 158, 158, 165, 157, 161, 164, 162, 160, 162, 163, 164, 159, 151, 158, 155, 162, 164, 154, 157, 158, 158, 156, 158, 160, 162, 157, 169, 160, 161, 157, 167, 157, 171, 163, 166, 160, 159, 159, 162, 153, 163, 162, 160, 166, 164, 164, 159, 163, 155, 156, 156, 156, 162, 166, 165, 161, 156, 159, 165, 158, 157, 169, 159, 158, 166, 161, 159, 163, 158, 158, 153, 160, 159, 158, 155, 167, 164, 163, 162, 156, 156, 160, 162, 166, 160, 160, 157, 161, 161, 158, 164, 161, 164, 151, 151, 156, 160, 165, 162, 163, 165, 160, 159, 159, 157, 157, 154, 153, 158, 160, 161, 158, 163, 163, 160, 158, 158, 152, 158, 163, 155, 160, 164, 151, 161, 156, 160, 157, 156, 161, 167, 154, 162, 161, 163, 158, 158, 154, 162, 156, 165, 170, 160, 159, 161, 159, 159, 168, 167, 157, 160, 167, 156, 163, 158, 175, 166, 162, 159, 157, 155, 157, 163, 200, 160, 156, 158, 162, 151, 160, 162, 156, 158, 166, 155, 157, 165, 163, 160, 162, 153, 165, 161, 158, 161, 160, 157, 172, 159, 156, 160, 159, 169, 160, 154, 165, 164, 159, 159, 161, 161, 171, 160, 168, 158, 154, 157, 160, 160, 159, 160, 155, 159, 166, 150, 169, 159, 163, 162, 159, 161, 162, 164, 167, 161, 163, 160, 169, 165, 156, 167, 158, 167, 159, 160, 157, 161, 158, 164, 168, 160, 156, 163, 151, 170, 153, 158, 157, 159, 155, 159, 157, 160, 167, 157, 160, 166, 160, 169, 156, 144, 163, 161, 154, 157, 159, 159, 159, 158, 156, 164, 160, 158, 168, 163, 156, 151, 169, 153, 155, 168, 155, 155, 156, 164, 165, 160, 164, 151, 158, 154, 162, 155, 163, 165, 166, 157, 158, 164, 168, 156, 157, 157, 159, 176, 153, 153, 161, 162, 162, 161, 160, 162, 157, 159, 158, 158, 161, 161, 161, 162, 155, 169, 158, 159, 160, 161, 165, 155, 161, 160, 164, 160, 168, 163, 160, 160, 164, 160, 159, 161, 156, 165, 161, 154, 172, 154, 169, 155, 164, 159, 162, 164, 159, 162, 154, 158, 157, 159, 162, 167, 159, 163, 161, 167, 164, 167, 156, 163, 163, 161, 159, 176, 166, 160, 164, 160, 152, 159, 163, 164, 158, 161, 159, 161, 155, 158, 156, 163, 165, 157, 154, 165, 166, 151, 156, 159, 146, 160, 162, 160, 161, 172, 152, 160, 167, 159, 153, 176, 163, 160, 158, 156, 155, 158, 161, 153, 175, 157, 168, 161, 166, 158, 159, 153, 175, 159, 156, 150, 154, 159, 165, 162, 154, 154, 160, 161, 157, 166, 149, 159, 167, 161, 159, 155, 165, 160, 168, 162, 159, 156, 157, 173, 161, 164, 165, 160, 161, 160, 161, 168, 164, 156, 164, 160, 156, 162, 165, 160, 157, 162, 160, 164, 149, 156, 160, 164, 158, 160, 154, 160, 157, 149, 159, 175, 152, 155, 163, 160, 157, 162, 165, 160, 158, 171, 162, 159, 156, 159, 153, 159, 159, 158, 161, 142, 156, 165, 162, 154, 146, 159, 160, 162, 162, 168, 160, 155, 167, 152, 158, 160, 170, 166, 153, 158, 156, 158, 161, 147, 160, 163, 162, 155, 162, 155, 153, 155, 159, 162, 153, 156, 166, 160, 151, 149, 161, 154, 163, 165, 158, 161, 165, 163, 165, 163, 159, 163, 162, 160, 149, 145, 160, 159, 164, 157, 158, 164, 169, 156, 167, 156, 155, 164, 160, 157, 157, 161, 146, 159, 165, 162, 159, 158, 155, 158, 152, 161, 159, 163, 163, 164, 162, 162, 157, 160, 152, 154, 136, 165, 159, 157, 154, 164, 171, 160, 160, 157, 162, 165, 162, 159, 166, 168, 161, 163, 159, 161, 157, 159, 154, 151, 146, 159, 159, 159, 156, 155, 163, 160, 161, 160, 154, 160, 158, 155, 159, 162, 157, 159, 160, 162, 159, 168, 151, 137, 164, 159, 165, 155, 158, 160, 168, 173, 154, 156, 164, 161, 159, 159, 168, 157, 166, 153, 156, 162, 157, 153, 162, 161, 158, 157, 158, 173, 160, 173, 158, 165, 158, 154, 160, 164, 160, 171, 160, 158, 162, 163, 165, 167, 157, 149, 163, 156, 157, 152, 162, 159, 154, 159, 154, 149, 157, 158, 157, 163, 161, 160, 168, 175, 159, 162, 155, 156, 170, 165, 165, 156, 155, 165, 150, 160, 159, 157, 158, 154, 161, 154, 158, 160, 164, 166, 172, 157, 157, 158, 158, 164, 156, 177, 177, 158, 158, 163, 160, 160, 159, 160, 157, 156, 167, 156, 161, 148, 159, 149, 152, 164, 163, 166, 155, 163, 164, 158, 159, 158, 171, 158, 166, 158, 160, 162, 158, 158, 161, 162, 164, 166, 172, 160, 160, 152, 162, 161, 161, 155, 152, 165, 158, 157, 162, 159, 141, 155, 164, 161, 161, 155, 157, 144, 164, 163, 159, 156, 157, 165, 159, 160, 134, 154, 156, 155, 161, 161, 146, 165, 160, 160, 167, 156, 154, 152, 156, 170, 169, 163, 164, 159, 158, 159, 154, 161, 158, 165, 154, 166, 152, 164, 159, 157, 158, 159, 158, 154, 160, 167, 159, 160, 154, 158, 158, 162, 167, 161, 149, 163, 159, 166, 154, 161, 157, 160, 147, 158, 163, 150, 156, 166, 161, 156, 165, 165, 161, 174, 171, 161, 162, 156, 149, 160, 166, 156, 152, 164, 158, 159, 149, 166, 161, 162, 154, 159, 163, 159, 149, 164, 151, 166, 159, 159, 169, 164, 163, 149, 161, 161, 157, 156, 158, 164, 164, 157, 155, 154, 154, 157, 156, 150, 159, 160, 150, 163, 153, 156, 157, 164, 153, 163, 157, 157, 163, 160, 157, 158, 158, 159, 165, 159, 168, 160, 167, 169, 163, 153, 173, 165, 160, 149, 164, 161, 150, 152, 154, 166, 156, 165, 162, 158, 162, 160, 165, 164, 164, 164, 168, 167, 160, 164, 156, 151, 154, 162, 159, 164, 166, 163, 160, 160, 165, 163, 149, 159, 156, 159, 155, 165, 159, 154, 160, 174, 154, 170, 162, 149, 155, 163, 162, 156, 165, 157, 149, 156, 157, 161, 151, 164, 159, 168, 166, 144, 158, 158, 165, 159, 167, 152, 144, 157, 161, 165, 154, 152, 151, 163, 152, 160, 166, 157, 166, 164, 150, 156, 158, 160, 160, 156, 160, 166, 156, 161, 156, 169, 165, 162, 166, 164, 160, 160, 152, 166, 161, 160, 163, 166, 165, 159, 154, 160, 168, 158, 155, 160, 155, 158, 163, 154, 155, 139, 162, 164, 162, 168, 158, 159, 156, 165, 164, 163, 163, 161, 165, 165, 167, 157, 163, 154, 156, 159, 159, 165, 156, 157, 150, 154, 169, 158, 164, 158, 152, 160, 159, 154, 153, 163, 162, 160, 164, 159, 163, 162, 156, 187, 157, 159, 166, 155, 171, 163, 163, 164, 160, 148, 165, 164, 157, 167, 156, 168, 157, 150, 157, 158, 160, 164, 152, 166, 163, 165, 167, 164, 153, 160, 163, 161, 154, 157, 155, 157, 166, 161, 164, 162, 162, 161, 156, 159, 158, 150, 159, 156, 159, 145, 160, 171, 156, 157, 153, 149, 152, 156, 156, 160, 148, 159, 155, 160, 165, 159, 158, 156, 166, 158, 156, 169, 165, 154, 160, 157, 177, 149, 165, 157, 171, 177, 159, 161, 174, 165, 160, 161, 157, 164, 158, 162, 163, 159, 165, 160, 172, 156, 148, 163, 152, 164, 159, 161, 147, 174, 159, 154, 162, 159, 160, 161, 163, 160, 160, 162, 159, 167, 159, 163, 162, 162, 158, 159, 159, 156, 167, 161, 158, 161, 166, 156, 161, 166, 155, 156, 167, 164, 161, 159, 163, 158, 164, 147, 161, 169, 162, 165, 156, 158, 162, 158, 161, 160, 155, 155, 150, 161, 157, 163, 162, 163, 163, 142, 163, 156, 156, 157, 161, 160, 156, 166, 160, 159, 161, 157, 152, 159, 164, 161, 160, 161, 152, 156, 159, 160, 153, 158, 163, 191, 165, 163, 158, 165, 159, 158, 164, 164, 161, 162, 171, 157, 160, 165, 158, 158, 154, 165, 156, 165, 167, 161, 146, 163, 159, 161, 163, 148, 162, 161, 157, 157, 164, 161, 160, 163, 164, 156, 157, 158, 162, 162, 161, 154, 164, 164, 156, 153, 159, 158, 177, 158, 162, 164, 162, 160, 162, 157, 152, 158, 165, 166, 156, 148, 182, 164, 157, 155, 160, 158, 163, 159, 163, 161, 156, 159, 160, 161, 165, 156, 160, 160, 161, 158, 160, 161, 163, 157, 156, 166, 157, 160, 167, 166, 159, 168, 159, 150, 161, 156, 157, 171, 165, 158, 156, 163, 166, 157, 155, 161, 158, 161, 157, 159, 164, 163, 164, 156, 149, 174, 158, 154, 161, 158, 164, 157, 157, 157, 149, 163, 158, 163, 159, 159, 163, 161, 159, 161, 166, 154, 149, 152, 160, 162, 161, 159, 164, 148, 170, 158, 161, 160, 160, 157, 159, 165, 163, 153, 159, 162, 158, 160, 157, 164, 149, 156, 161, 148, 178, 161, 163, 163, 162, 156, 162, 158, 161, 159, 162, 163, 161, 162, 160, 169, 156, 160, 169, 163, 158, 165, 160, 154, 152, 168, 157, 157, 151, 159, 162, 162, 156, 160, 163, 159, 162, 157, 162, 163, 151, 159, 163, 154, 157, 155, 161, 156, 157, 159, 162, 160, 158, 164, 159, 157, 160, 160, 156, 149, 150, 166, 168, 153, 193, 163, 161, 159, 166, 160, 156, 167, 163, 159, 160, 158, 161, 152, 153, 152, 161, 170, 155, 153, 162, 160, 157, 162, 157, 154, 153, 165, 158, 153, 159, 154, 164, 157, 157, 166, 159, 157, 160, 157, 156, 158, 165, 159, 157, 162, 158, 163, 162, 159, 167, 155, 159, 155, 161, 158, 163, 155, 159, 161, 165, 159, 165, 169, 159, 160, 154, 152, 158, 156, 156, 162, 166, 160, 157, 158, 159, 161, 160, 159, 161, 155, 167, 156, 157, 156, 166, 159, 154, 159, 159, 160, 156, 157, 162, 160, 165, 160, 167, 156, 165, 153, 164, 155, 163, 160, 156, 162, 164, 156, 165, 157, 172, 164, 162, 158, 157, 154, 166, 167, 161, 163, 147, 165, 155, 164, 159, 159, 153, 156, 155, 160, 158, 165, 161, 145, 166, 158, 158, 157, 164, 157, 165, 163, 161, 157, 168, 165, 164, 168, 161, 164, 162, 161, 162, 160, 159, 160, 157, 162, 163, 159, 164, 160, 161, 160, 155, 164, 159, 157, 159, 160, 162, 160, 164, 154, 157, 162, 159, 159, 157, 162, 164, 159, 160, 160, 154, 160, 158, 164, 157, 163, 161, 159, 164, 161, 161, 157, 164, 159, 158, 159, 160, 160, 156, 158, 158, 162, 163, 159, 161, 160, 158, 160, 162, 162, 159, 163, 157, 160, 160, 161, 158, 161, 161, 160, 160, 154, 158, 161, 160, 155, 164, 161, 156, 153, 164, 154, 160, 160, 159, 159, 158, 158, 160, 160, 158, 159, 165, 159, 162, 161, 162, 158, 161, 160, 163, 157, 172, 162, 162, 158, 158, 159, 161, 159, 157, 160, 162, 157, 159, 163, 160, 161, 162, 161, 160, 158, 159, 168, 160, 158, 161, 163, 163, 162, 161, 161, 152, 162, 160, 151, 161, 157, 159, 160, 162, 161, 160, 161, 162, 161, 163, 159, 160, 162, 157, 159, 159, 162, 159, 160, 162, 160, 161, 162, 166, 158, 159, 160, 161, 163, 162, 156, 161, 165, 162, 162, 163, 159, 159, 163, 158, 160, 164, 155, 160, 158, 159, 162, 158, 153, 157, 151, 166, 151, 159, 163, 161, 161, 162, 162, 158, 162, 162, 159, 157, 160, 159, 162, 161, 163, 161, 161, 162, 161, 155, 159, 160, 161, 161, 161, 160, 162, 161, 157, 162, 161, 157, 161, 161, 159, 159, 158, 161, 160, 156, 160, 162, 157, 163, 157, 160, 160, 160, 158, 160, 163, 163, 157, 158, 161, 162, 158, 160, 162, 163, 161, 160, 162, 161, 161, 166, 159, 157, 162, 157, 159, 161, 167, 158, 163, 160, 160, 163, 159, 163, 162, 163, 157, 160, 166, 162, 161, 164, 162, 161, 164, 156, 159, 165, 155, 162, 163, 162, 165, 166, 162, 157, 160, 161, 161, 156, 161, 160, 161, 161, 157, 159, 160, 160, 159, 164, 158, 161, 161, 161, 156, 159, 161, 159, 163, 161, 155, 163, 159, 160, 160, 156, 163, 161, 160, 164, 161, 160, 161, 159, 160, 157, 161, 162, 161, 162, 160, 162, 159, 158, 160, 159, 158, 159, 157, 158, 156, 160, 159, 161, 159, 157, 161, 162, 163, 152, 157, 165, 165, 163, 156, 161, 159, 160, 166, 159, 161, 159, 161, 162, 157, 163, 163, 161, 160, 161, 159, 161, 159, 168, 162, 158, 160, 158, 163, 161, 165, 157, 159, 162, 155, 161, 159, 159, 158, 161, 155, 158, 158, 159, 160, 159, 156, 159, 163, 161, 158, 158, 160, 161, 163, 157, 162, 158, 160, 156, 162, 160, 157, 157, 160, 158, 159, 161, 159, 163, 158, 159, 160, 163, 164, 158, 160, 163, 157, 160, 157, 158, 163, 158, 162, 163, 156, 162, 162, 159, 159, 159, 162, 161, 162, 161, 158, 164, 159, 154, 156, 158, 162, 161, 159, 159, 157, 159, 161, 160, 162, 161, 161, 160, 158, 156, 160, 157, 161, 158, 160, 155, 157, 159, 160, 163, 162, 158, 159, 158, 160, 163, 160, 157, 164, 162, 166, 160, 163, 156, 155, 163, 159, 160, 161, 155, 161, 161, 161, 156, 158, 162, 159, 158, 161, 156, 166, 155, 154, 162, 163, 159, 199, 161, 158, 162, 160, 160, 154, 161, 156, 163, 154, 166, 160, 162, 144, 149, 161, 161, 136, 163, 159, 161, 152, 157, 159, 159, 158, 158, 157, 162, 159, 157, 174, 164, 162, 159, 148, 154, 160, 143, 159, 158, 158, 163, 157, 155, 159, 150, 158, 163, 162, 156, 155, 161, 162, 160, 158, 164, 161, 165, 159, 162, 165, 165, 163, 158, 156, 161, 161, 163, 156, 161, 158, 155, 160, 148, 165, 160, 162, 165, 169, 163, 164, 162, 152, 158, 161, 160, 163, 160, 159, 161, 162, 156, 164, 160, 158, 170, 165, 159, 157, 160, 163, 167, 157, 165, 167, 163, 145, 157, 160, 152, 164, 164, 165, 159, 162, 165, 153, 156, 148, 166, 163, 162, 154, 154, 183, 161, 160, 165, 168, 167, 163, 164, 161, 156, 169, 159, 162, 160, 179, 151, 156, 159, 161, 160, 155, 166, 160, 156, 153, 158, 165, 157, 163, 157, 163, 162, 158, 162, 157, 171, 158, 159, 159, 162, 150, 166, 144, 157, 162, 165, 159, 163, 156, 165, 166, 160, 164, 158, 162, 161, 159, 159, 160, 161, 154, 153, 155, 164, 161, 158, 155, 151, 160, 162, 159, 162, 159, 163, 159, 161, 160, 159, 160, 158, 163, 164, 159, 163, 155, 164, 159, 156, 165, 159, 151, 161, 159, 162, 157, 158, 163, 157, 158, 164, 160, 162, 160, 164, 159, 155, 172, 167, 158, 158, 159, 164, 156, 167, 151, 161, 157, 156, 170, 161, 159, 160, 164, 163, 159, 162, 161, 162, 162, 157, 161, 159, 160, 171, 157, 167, 159, 158, 159, 166, 159, 154, 163, 156, 155, 158, 161, 162, 167, 154, 169, 150, 164, 161, 153, 159, 160, 159, 160, 160, 162, 159, 160, 161, 164, 170, 161, 156, 162, 162, 155, 158, 167, 158, 160, 160, 157, 159, 165, 161, 165, 159, 160, 159, 163, 163, 165, 161, 165, 160, 162, 154, 158, 164, 157, 150, 162, 168, 161, 159, 165, 162, 165, 159, 161, 160, 160, 157, 157, 155, 172, 159, 162, 154, 166, 160, 166, 157, 160, 161, 159, 162, 159, 162, 149, 164, 158, 163, 158, 156, 156, 166, 160, 160, 159, 160, 160, 163, 165, 165, 166, 159, 163, 157, 146, 162, 148, 157, 163, 159, 164, 159, 160, 160, 157, 151, 158, 154, 158, 166, 162, 165, 158, 160, 164, 164, 165, 163, 167, 160, 161, 166, 154, 158, 156, 157, 155, 162, 163, 156, 161, 169, 159, 156, 157, 160, 161, 161, 162, 160, 161, 154, 156, 161, 163, 133, 162, 153, 162, 157, 163, 144, 165, 163, 160, 158, 160, 166, 165, 160, 165, 168, 159, 163, 158, 162, 163, 159, 164, 154, 162, 157, 164, 161, 157, 166, 162, 180, 161, 144, 159, 158, 161, 161, 162, 158, 161, 159, 160, 160, 160, 153, 156, 163, 162, 161, 159, 162, 162, 148, 156, 159, 155, 160, 165, 160, 153, 159, 162, 165, 161, 167, 159, 160, 164, 164, 160, 161, 179, 164, 163, 164, 159, 161, 157, 154, 160, 157, 158, 159, 165, 161, 166, 167, 153, 162, 161, 158, 164, 164, 165, 161, 157, 157, 161, 150, 155, 160, 153, 157, 164, 162, 155, 159, 167, 157, 158, 158, 154, 160, 156, 162, 155, 153, 154, 164, 162, 156, 161, 167, 162, 152, 163, 159, 180, 156, 158, 159, 163, 177, 161, 164, 162, 159, 161, 160, 162, 161, 162, 160, 136, 168, 161, 164, 158, 158, 157, 166, 160, 157, 142, 159, 159, 162, 162, 167, 156, 160, 160, 164, 155, 168, 156, 164, 148, 158, 166, 134, 163, 158, 154, 158, 161, 151, 161, 154, 158, 157, 168, 161, 161, 169, 162, 165, 152, 158, 162, 159, 174, 160, 169, 168, 159, 159, 168, 156, 159, 157, 163, 160, 154, 158, 160, 151, 156, 163, 162, 163, 161, 161, 162, 162, 161, 171, 158, 158, 157, 159, 166, 157, 157, 160, 160, 162, 159, 168, 169, 162, 160, 145, 153, 162, 160, 145, 163, 158, 160, 161, 161, 159, 162, 161, 156, 161, 164, 156, 160, 159, 163, 157, 160, 159, 159, 152, 160, 159, 162, 160, 162, 158, 159, 160, 160, 143, 156, 159, 163, 163, 165, 157, 160, 159, 164, 154, 161, 158, 158, 158, 162, 159, 160, 158, 155, 169, 157, 164, 164, 162, 159, 156, 145, 161, 156, 153, 161, 156, 162, 156, 160, 164, 159, 163, 165, 161, 159, 154, 155, 158, 153, 157, 158, 162, 159, 157, 163, 158, 162, 161, 139, 158, 159, 158, 153, 156, 163, 166, 156, 161, 156, 165, 157, 160, 167, 164, 167, 161, 162, 163, 159, 157, 149, 159, 163, 164, 165, 171, 169, 158, 158, 178, 160, 152, 162, 160, 156, 162, 160, 154, 162, 166, 164, 159, 162, 158, 164, 183, 155, 168, 158, 157, 156, 161, 166, 157, 168, 165, 158, 160, 152, 157, 159, 157, 159, 158, 164, 159, 160, 159, 136, 163, 157, 173, 164, 156, 159, 158, 157, 159, 159, 166, 157, 161, 168, 166, 159, 158, 163, 157, 155, 156, 160, 156, 161, 162, 160, 162, 164, 168, 162, 155, 160, 159, 162, 160, 165, 161, 159, 159, 158, 161, 165, 160, 153, 170, 173, 163, 156, 156, 159, 162, 161, 161, 162, 160, 160, 171, 161, 165, 164, 159, 159, 163, 161, 148, 154, 158, 165, 156, 158, 167, 157, 167, 162, 160, 163, 140, 165, 159, 154, 162, 164, 164, 141, 156, 162, 163, 168, 157, 159, 161, 161, 154, 158, 155, 166, 167, 160, 162, 159, 156, 155, 152, 157, 185, 141, 161, 160, 179, 164, 168, 157, 153, 169, 175, 162, 157, 158, 163, 159, 160, 164, 167, 157, 158, 155, 177, 157, 164, 146, 161, 165, 163, 158, 159, 160, 165, 166, 160, 155, 161, 161, 161, 163, 159, 157, 164, 158, 160, 156, 153, 160, 159, 154, 162, 157, 162, 158, 157, 156, 154, 159, 161, 162, 167, 157, 155, 168, 156, 166, 159, 163, 158, 161, 151, 161, 157, 156, 163, 162, 150, 162, 156, 159, 153, 154, 167, 166, 160, 153, 160, 159, 161, 164, 168, 148, 160, 162, 157, 159, 154, 156, 161, 156, 159, 161, 160, 161, 161, 154, 166, 166, 160, 151, 161, 167, 164, 162, 153, 159, 158, 171, 151, 151, 166, 151, 164, 152, 169, 164, 148, 166, 164, 164, 144, 151, 154, 166, 160, 148, 164, 163, 156, 158, 157, 157, 152, 159, 169, 159, 162, 157, 162, 168, 158, 159, 163, 161, 172, 151, 169, 156, 158, 162, 158, 161, 158, 159, 163, 165, 162, 158, 156, 165, 167, 162, 168, 164, 155, 169, 166, 152, 155, 160, 159, 152, 162, 157, 156, 164, 152, 152, 155, 165, 162, 156, 156, 152, 152, 156, 159, 155, 162, 170, 154, 159, 161, 165, 158, 156, 155, 160, 167, 161, 159, 162, 159, 157, 167, 154, 163, 159, 155, 158, 159, 162, 158, 153, 153, 160, 159, 161, 163, 161, 159, 160, 162, 167, 162, 167, 158, 162, 159, 160, 161, 156, 166, 159, 167, 166, 154, 160, 166, 154, 154, 161, 165, 157, 167, 158, 162, 152, 153, 161, 156, 158, 166, 167, 164, 157, 172, 160, 160, 160, 158, 166, 154, 151, 156, 176, 167, 162, 159, 157, 157, 158, 160, 161, 154, 155, 152, 162, 159, 171, 158, 158, 159, 166, 155, 161, 163, 166, 161, 156, 171, 159, 152, 162, 170, 164, 165, 157, 158, 164, 161, 166, 155, 161, 158, 158, 159, 157, 170, 148, 165, 159, 164, 159, 159, 175, 160, 165, 171, 161, 154, 160, 161, 164, 163, 171, 153, 165, 161, 156, 156, 158, 159, 161, 156, 164, 168, 155, 160, 157, 162, 155, 159, 162, 154, 165, 151, 168, 159, 158, 160, 162, 159, 161, 163, 152, 158, 158, 155, 158, 166, 163, 160, 162, 157, 164, 151, 153, 162, 169, 163, 158, 157, 160, 159, 159, 160, 155, 164, 149, 159, 156, 154, 159, 156, 163, 157, 159, 164, 162, 157, 164, 166, 166, 167, 154, 153, 161, 167, 161, 164, 162, 157, 159, 165, 160, 155, 162, 168, 162, 160, 161, 160, 166, 159, 163, 164, 161, 164, 163, 155, 165, 152, 159, 155, 150, 145, 165, 160, 155, 155, 155, 156, 162, 165, 160, 165, 155, 163, 155, 163, 150, 161, 154, 174, 164, 157, 166, 164, 163, 160, 153, 158, 166, 159, 155, 163, 152, 162, 162, 159, 169, 162, 159, 160, 158, 155, 159, 165, 149, 162, 163, 152, 148, 165, 169, 159, 166, 152, 156, 154, 165, 150, 157, 161, 164, 161, 159, 168, 156, 166, 166, 159, 154, 158, 165, 157, 157, 168, 164, 155, 170, 161, 159, 161, 171, 160, 159, 157, 163, 159, 153, 158, 157, 158, 160, 156, 151, 162, 153, 159, 168, 154, 159, 156, 152, 171, 164, 154, 164, 156, 166, 159, 159, 157, 160, 156, 153, 167, 150, 158, 163, 161, 165, 156, 159, 166, 169, 151, 165, 167, 163, 163, 165, 153, 175, 148, 156, 162, 159, 164, 164, 156, 165, 163, 155, 161, 163, 162, 177, 151, 155, 150, 156, 156, 159, 159, 163, 162, 157, 156, 160, 170, 171, 158, 165, 157, 160, 153, 162, 156, 160, 164, 159, 163, 165, 158, 169, 161, 160, 161, 159, 165, 168, 165, 156, 163, 169, 159, 168, 159, 165, 162, 166, 153, 157, 165, 166, 157, 153, 146, 158, 157, 164, 157, 168, 154, 157, 170, 157, 162, 166, 148, 157, 166, 155, 165, 158, 162, 146, 158, 154, 178, 157, 166, 165, 158, 161, 161, 152, 163, 155, 150, 166, 166, 155, 161, 169, 160, 157, 161, 159, 162, 160, 161, 165, 167, 163, 168, 160, 161, 155, 161, 154, 160, 162, 171, 158, 160, 168, 158, 164, 163, 171, 166, 170, 158, 157, 154, 163, 163, 177, 161, 151, 145, 155, 152, 157, 159, 168, 159, 152, 162, 160, 163, 168, 157, 161, 152, 159, 168, 156, 157, 159, 155, 166, 163, 156, 160, 151, 158, 160, 153, 151, 161, 156, 166, 169, 165, 158, 160, 155, 167, 159, 158, 164, 158, 157, 163, 158, 159, 159, 176, 162, 169, 157, 164, 164, 159, 162, 160, 169, 164, 156, 161, 160, 157, 165, 163, 169, 157, 149, 162, 150, 157, 163, 161, 160, 160, 161, 180, 160, 161, 156, 157, 166, 157, 162, 158, 157, 152, 156, 156, 151, 174, 176, 165, 167, 152, 157, 155, 162, 162, 161, 160, 148, 151, 150, 156, 165, 160, 161, 164, 153, 164, 155, 154, 159, 158, 156, 176, 164, 150, 164, 157, 176, 162, 158, 171, 162, 154, 184, 163, 158, 169, 165, 157, 156, 155, 167, 158, 159, 158, 163, 165, 168, 175, 153, 157, 155, 158, 164, 158, 161, 157, 160, 163, 158, 160, 152, 154, 152, 151, 157, 165, 163, 158, 158, 164, 161, 163, 160, 170, 155, 159, 156, 163, 163, 160, 156, 163, 152, 150, 160, 168, 158, 156, 155, 172, 159, 168, 163, 158, 164, 160, 157, 161, 157, 152, 168, 161, 164, 157, 158, 154, 179, 163, 157, 162, 160, 153, 163, 154, 156, 158, 168, 158, 155, 163, 158, 151, 150, 154, 176, 156, 158, 166, 157, 161, 158, 159, 158, 164, 169, 152, 161, 173, 160, 160, 160, 158, 167, 156, 161, 158, 159, 159, 163, 168, 158, 158, 160, 162, 156, 161, 173, 160, 158, 158, 153, 164, 167, 154, 163, 165, 165, 163, 161, 159, 157, 156, 164, 161, 159, 158, 154, 164, 155, 154, 162, 157, 176, 164, 157, 152, 155, 168, 161, 168, 153, 165, 152, 154, 162, 174, 188, 162, 165, 175, 155, 153, 159, 156, 149, 160, 176, 162, 156, 164, 163, 160, 151, 154, 159, 179, 160, 158, 159, 164, 155, 155, 161, 156, 160, 157, 151, 160, 153, 163, 169, 146, 161, 166, 159, 158, 161, 153, 158, 162, 155, 160, 158, 155, 155, 171, 150, 176, 163, 161, 158, 157, 161, 168, 156, 156, 173, 159, 164, 164, 165, 164, 164, 155, 168, 154, 164, 161, 157, 157, 160, 163, 155, 159, 161, 161, 169, 176, 164, 156, 157, 152, 158, 170, 165, 159, 149, 162, 166, 159, 163, 158, 164, 155, 156, 169, 160, 178, 156, 152, 160, 164, 161, 162, 160, 168, 158, 158, 163, 167, 162, 160, 158, 165, 158, 164, 160, 164, 156, 159, 158, 161, 166, 160, 159, 155, 156, 162, 153, 164, 164, 157, 160, 152, 156, 175, 156, 159, 159, 156, 160, 156, 167, 163, 156, 158, 153, 165, 163, 157, 155, 157, 162, 178, 172, 163, 156, 165, 154, 164, 158, 150, 158, 163, 150, 160, 165, 168, 163, 154, 161, 160, 166, 167, 158, 161, 158, 165, 172, 161, 163, 157, 162, 154, 161, 162, 162, 153, 164, 161, 177, 160, 157, 149, 167, 163, 160, 161, 159, 155, 163, 157, 161, 166, 166, 165, 168, 163, 163, 149, 154, 163, 170, 155, 160, 159, 154, 155, 154, 164, 154, 165, 167, 154, 166, 163, 162, 163, 163, 166, 166, 164, 161, 163, 154, 161, 161, 160, 158, 156, 158, 153, 158, 153, 164, 154, 152, 160, 153, 170, 159, 160, 154, 159, 164, 148, 159, 171, 150, 158, 161, 152, 153, 158, 154, 155, 169, 159, 161, 156, 160, 155, 159, 159, 155, 161, 161, 159, 163, 159, 169, 156, 155, 148, 158, 154, 161, 165, 160, 170, 160, 161, 160, 160, 157, 163, 155, 161, 163, 155, 169, 159, 168, 159, 156, 155, 162, 161, 159, 165, 155, 157, 164, 165, 158, 160, 160, 156, 154, 157, 158, 158, 160, 173, 157, 166, 158, 159, 155, 171, 163, 164, 157, 157, 156, 158, 160, 168, 157, 161, 157, 157, 155, 160, 161, 153, 153, 158, 153, 159, 175, 158, 158, 179, 157, 161, 169, 152, 158, 161, 157, 153, 161, 160, 159, 158, 159, 165, 158, 165, 160, 157, 163, 160, 154, 169, 161, 159, 156, 162, 157, 154, 161, 149, 154, 177, 159, 156, 154, 162, 150, 165, 160, 158, 158, 159, 159, 163, 155, 157, 154, 163, 164, 154, 155, 168, 154, 154, 151, 161, 159, 164, 154, 162, 154, 158, 157, 151, 167, 162, 166, 158, 170, 158, 156, 165, 164, 162, 153, 161, 155, 154, 159, 154, 159, 153, 164, 152, 151, 162, 156, 152, 155, 160, 160, 162, 150, 162, 158, 166, 162, 162, 164, 163, 157, 154, 165, 155, 159, 161, 160, 151, 169, 165, 164, 158, 159, 155, 167, 175, 164, 170, 154, 157, 159, 158, 161, 154, 162, 167, 155, 162, 170, 169, 160, 163, 160, 162, 183, 157, 157, 166, 164, 159, 157, 164, 155, 164, 159, 154, 154, 156, 161, 156, 155, 163, 162, 171, 163, 162, 155, 158, 162, 165, 157, 168, 157, 159, 156, 158, 167, 164, 173, 161, 158, 156, 162, 161, 170, 162, 155, 161, 154, 159, 159, 165, 165, 164, 164, 156, 157, 160, 147, 156, 164, 157, 156, 156, 160, 168, 169, 161, 160, 156, 153, 157, 170, 170, 153, 158, 161, 155, 162, 159, 160, 161, 159, 164, 157, 170, 154, 152, 161, 158, 156, 162, 157, 162, 162, 169, 158, 167, 156, 158, 162, 157, 154, 162, 155, 162, 164, 160, 162, 159, 151, 158, 163, 155, 163, 163, 156, 147, 156, 150, 177, 163, 157, 154, 156, 151, 152, 154, 157, 162, 163, 155, 159, 172, 170, 156, 163, 158, 154, 153, 163, 157, 166, 164, 164, 164, 161, 162, 167, 160, 158, 161, 162, 149, 157, 160, 152, 159, 165, 156, 158, 169, 154, 152, 161, 172, 157, 154, 158, 156, 172, 165, 160, 156, 160, 160, 157, 157, 158, 166, 154, 169, 166, 157, 161, 155, 161, 169, 158, 171, 163, 151, 158, 178, 150, 157, 159, 154, 161, 158, 164, 163, 152, 155, 155, 159, 153, 165, 152, 160, 159, 174, 157, 166, 156, 163, 166, 167, 170, 139, 152, 157, 155, 167, 149, 165, 161, 164, 162, 159, 148, 160, 149, 158, 167, 150, 159, 155, 160, 162, 166, 158, 162, 157, 154, 159, 161, 164, 166, 163, 163, 148, 154, 156, 162, 152, 167, 150, 159, 156, 165, 166, 161, 162, 156, 159, 158, 159, 149, 160, 164, 162, 153, 159, 177, 165, 164, 154, 161, 160, 164, 159, 157, 159, 156, 158, 158, 160, 164, 153, 156, 172, 156, 158, 161, 166, 158, 158, 162, 156, 188, 153, 153, 152, 160, 164, 155, 161, 163, 156, 155, 177, 164, 156, 156, 158, 165, 148, 169, 158, 165, 159, 166, 158, 166, 157, 167, 166, 157, 159, 159, 157, 155, 150, 155, 157, 155, 158, 163, 166, 160, 157, 161, 156, 163, 160, 167, 155, 151, 159, 168, 161, 157, 163, 161, 160, 157, 162, 162, 165, 177, 171, 165, 155, 160, 156, 160, 152, 155, 158, 160, 155, 160, 157, 163, 164, 162, 157, 153, 152, 173, 156, 160, 160, 159, 156, 163, 157, 151, 159, 158, 159, 165, 155, 180, 174, 155, 159, 159, 161, 161, 155, 160, 161, 152, 156, 151, 158, 157, 165, 163, 170, 163, 160, 157, 163, 153, 152, 158, 169, 157, 164, 152, 165, 159, 166, 163, 154, 156, 156, 166, 160, 157, 165, 158, 166, 151, 160, 161, 148, 154, 169, 157, 167, 158, 163, 155, 164, 152, 160, 171, 146, 161, 153, 161, 161, 160, 154, 169, 167, 162, 164, 167, 170, 167, 156, 166, 167, 162, 154, 163, 168, 157, 181, 169, 159, 161, 149, 156, 159, 161, 155, 157, 157, 161, 151, 167, 158, 149, 155, 164, 158, 156, 183, 145, 165, 159, 154, 158, 155, 157, 155, 173, 164, 143, 155, 157, 153, 165, 169, 157, 177, 161, 163, 150, 160, 161, 159, 153, 153, 156, 159, 153, 157, 157, 168, 163, 154, 157, 161, 158, 164, 160, 158, 165, 163, 163, 160, 155, 167, 158, 149, 165, 155, 162, 167, 147, 151, 160, 166, 158, 160, 159, 149, 157, 160, 173, 170, 160, 186, 150, 142, 159, 162, 164, 164, 158, 161, 173, 159, 155, 155, 164, 158, 165, 156, 152, 161, 155, 163, 152, 159, 163, 160, 157, 161, 158, 153, 148, 148, 155, 156, 151, 168, 161, 148, 162, 148, 156, 161, 171, 156, 152, 167, 164, 153, 160, 164, 162, 159, 161, 165, 161, 162, 158, 160, 165, 155, 156, 157, 160, 157, 158, 163, 160, 155, 170, 154, 163, 152, 159, 163, 163, 154, 158, 151, 153, 149, 147, 158, 162, 153, 151, 158, 170, 163, 162, 161, 156, 153, 153, 162, 156, 154, 159, 161, 155, 156, 162, 150, 162, 163, 168, 159, 159, 169, 166, 157, 156, 164, 164, 166, 165, 156, 163, 162, 156, 153, 160, 157, 152, 158, 153, 161, 162, 158, 165, 150, 158, 154, 162, 158, 159, 167, 157, 165, 163, 160, 157, 160, 157, 167, 155, 154, 157, 167, 166, 165, 167, 157, 165, 155, 159, 154, 157, 158, 164, 166, 161, 157, 154, 156, 157, 158, 158, 153, 156, 163, 164, 157, 156, 167, 164, 162, 160, 156, 155, 156, 161, 159, 170, 157, 158, 153, 175, 156, 158, 161, 160, 164, 158, 160, 156, 164, 166, 160, 158, 158, 159, 162, 160, 170, 155, 158, 154, 167, 164, 181, 166, 165, 160, 178, 156, 160, 158, 160, 151, 164, 157, 158, 172, 153, 163, 160, 164, 158, 147, 159, 162, 153, 169, 161, 158, 160, 155, 169, 158, 162, 151, 171, 173, 158, 151, 163, 159, 164, 165, 152, 163, 167, 162, 151, 157, 159, 160, 158, 160, 156, 164, 149, 162, 162, 150, 167, 155, 157, 158, 156, 160, 145, 149, 155, 162, 152, 165, 160, 152, 154, 163, 163, 162, 157, 158, 155, 160, 157, 164, 165, 155, 157, 162, 151, 166, 161, 171, 163, 165, 159, 159, 154, 167, 157, 165, 146, 163, 165, 159, 165, 156, 155, 156, 151, 159, 159, 163, 158, 166, 159, 152, 161, 156, 160, 154, 154, 169, 159, 153, 165, 162, 160, 161, 154, 159, 160, 154, 148, 160, 159, 169, 165, 155, 156, 160, 156, 159, 148, 156, 158, 164, 157, 162, 162, 155, 157, 154, 155, 162, 153, 161, 155, 160, 169, 179, 165, 164, 167, 160, 161, 167, 160, 158, 160, 167, 164, 158, 158, 151, 160, 158, 163, 153, 174, 163, 162, 195, 158, 183, 179, 161, 157, 160, 157, 164, 162, 157, 165, 161, 164, 156, 165, 165, 169, 154, 162, 167, 169, 156, 156, 163, 144, 158, 164, 163, 156, 162, 158, 164, 170, 167, 165, 157, 172, 153, 164, 150, 154, 160, 157, 156, 164, 170, 144, 160, 155, 159, 166, 162, 162, 165, 161, 159, 169, 162, 154, 162, 158, 162, 159, 163, 160, 148, 162, 146, 161, 162, 165, 166, 160, 168, 159, 173, 160, 162, 158, 157, 153, 158, 157, 158, 165, 162, 159, 161, 162, 166, 168, 161, 166, 156, 161, 152, 151, 160, 155, 164, 168, 167, 159, 165, 154, 194, 155, 159, 162, 156, 164, 159, 171, 160, 156, 157, 168, 165, 171, 152, 155, 162, 160, 161, 154, 168, 152, 155, 160, 167, 156, 158, 160, 164, 159, 159, 162, 164, 166, 165, 153, 152, 154, 160, 161, 159, 163, 146, 160, 180, 158, 163, 158, 157, 151, 161, 154, 147, 155, 155, 155, 165, 159, 160, 166, 154, 163, 152, 162, 165, 199, 157, 160, 161, 165, 157, 149, 159, 158, 156, 161, 164, 165, 157, 164, 158, 166, 161, 163, 159, 164, 158, 157, 157, 163, 161, 157, 170, 156, 157, 159, 164, 154, 163, 158, 170, 164, 163, 156, 154, 161, 166, 172, 154, 154, 157, 153, 160, 164, 154, 158, 155, 162, 164, 155, 158, 156, 160, 149, 159, 162, 159, 159, 158, 158, 158, 176, 158, 159, 163, 170, 161, 158, 159, 178, 160, 161, 166, 159, 156, 155, 154, 161, 158, 149, 159, 166, 158, 157, 164, 170, 162, 159, 149, 148, 162, 146, 158, 158, 146, 151, 161, 155, 164, 162, 169, 168, 156, 157, 162, 164, 167, 148, 155, 160, 152, 163, 157, 166, 154, 160, 151, 158, 165, 163, 153, 163, 154, 166, 152, 164, 159, 156, 150, 157, 156, 152, 159, 150, 164, 156, 161, 157, 155, 158, 160, 159, 157, 162, 158, 149, 165, 161, 159, 156, 160, 167, 159, 162, 164, 149, 152, 159, 150, 152, 154, 152, 153, 154, 156, 163, 166, 162, 153, 163, 155, 160, 155, 159, 152, 149, 152, 150, 181, 166, 166, 156, 170, 157, 157, 161, 162, 164, 159, 151, 150, 155, 162, 154, 165, 158, 158, 149, 153, 158, 156, 167, 163, 157, 157, 164, 151, 176, 164, 163, 158, 161, 161, 155, 166, 168, 160, 164, 170, 152, 171, 161, 171, 157, 163, 145, 161, 161, 150, 152, 157, 161, 163, 155, 162, 146, 163, 158, 157, 161, 157, 162, 165, 165, 158, 175, 165, 155, 165, 164, 154, 162, 162, 162, 171, 155, 155, 171, 159, 158, 164, 156, 152, 152, 158, 163, 160, 156, 149, 168, 152, 169, 161, 159, 156, 147, 155, 159, 157, 164, 168, 155, 170, 168, 168, 162, 165, 158, 160, 163, 159, 162, 149, 155, 152, 159, 156, 160, 158, 165, 164, 155, 164, 166, 149, 163, 155, 150, 159, 156, 165, 158, 166, 154, 158, 156, 159, 167, 143, 163, 157, 157, 156, 161, 164, 168, 161, 151, 150, 157, 152, 158, 156, 160, 151, 168, 164, 158, 160, 161, 158, 154, 162, 152, 152, 168, 156, 157, 156, 160, 161, 162, 157, 154, 151, 154, 150, 160, 157, 159, 159, 157, 164, 156, 155, 167, 162, 172, 164, 162, 154, 157, 159, 166, 164, 157, 153, 167, 164, 158, 164, 176, 160, 165, 151, 165, 163, 164, 163, 168, 170, 158, 151, 155, 158, 158, 148, 166, 162, 158, 165, 158, 163, 161, 160, 159, 152, 155, 170, 157, 158, 169, 167, 161, 156, 158, 158, 157, 149, 155, 145, 168, 161, 169, 156, 145, 180, 175, 178, 153, 154, 153, 158, 163, 156, 164, 165, 172, 178, 167, 153, 156, 163, 171, 147, 155, 151, 156, 159, 157, 162, 148, 161, 160, 157, 157, 158, 153, 164, 167, 156, 147, 161, 162, 151, 159, 161, 159, 163, 172, 156, 155, 171, 154, 176, 156, 165, 159, 152, 165, 151, 160, 158, 157, 158, 159, 161, 160, 157, 153, 160, 153, 164, 147, 159, 160, 157, 161, 158, 165, 153, 160, 175, 169, 169, 157, 156, 155, 167, 153, 164, 164, 161, 159, 168, 159, 148, 157, 151, 164, 158, 172, 153, 156, 158, 153, 162, 156, 160, 169, 161, 151, 145, 167, 162, 149, 156, 152, 169, 163, 156, 150, 160, 146, 160, 159, 144, 162, 156, 163, 161, 166, 155, 155, 160, 139, 164, 164, 160, 170, 150, 159, 163, 156, 159, 161, 163, 160, 147, 165, 168, 156, 151, 153, 154, 161, 162, 166, 170, 161, 154, 164, 154, 151, 157, 153, 159, 146, 150, 158, 155, 161, 159, 165, 161, 160, 166, 161, 162, 149, 157, 159, 163, 162, 157, 158, 153, 153, 168, 158, 166, 151, 160, 159, 167, 152, 166, 168, 155, 157, 163, 165, 165, 158, 169, 158, 156, 165, 155, 154, 158, 152, 158, 148, 166, 163, 145, 152, 152, 169, 164, 152, 160, 166, 155, 151, 155, 149, 153, 157, 155, 155, 157, 158, 160, 157, 159, 157, 139, 158, 161, 160, 166, 163, 158, 145, 178, 163, 155, 159, 158, 164, 160, 162, 165, 159, 163, 167, 161, 154, 155, 150, 161, 159, 159, 153, 153, 161, 161, 160, 158, 171, 155, 150, 152, 160, 145, 168, 161, 167, 151, 168, 157, 155, 167, 155, 159, 155, 153, 160, 165, 179, 158, 157, 168, 164, 154, 171, 161, 158, 153, 166, 151, 163, 161, 171, 167, 158, 149, 158, 160, 157, 160, 151, 154, 159, 151, 175, 157, 153, 167, 158, 153, 167, 166, 163, 169, 159, 176, 149, 153, 159, 146, 163, 162, 155, 154, 166, 154, 154, 162, 161, 151, 155, 159, 166, 163, 136, 164, 169, 161, 160, 161, 157, 147, 162, 149, 161, 157, 155, 156, 166, 159, 164, 163, 150, 166, 156, 156, 156, 157, 149, 154, 161, 171, 160, 170, 162, 153, 157, 153, 165, 168, 162, 147, 152, 161, 162, 173, 163, 164, 166, 152, 157, 167, 162, 164, 167, 159, 162, 159, 160, 168, 158, 153, 165, 151, 159, 166, 163, 159, 159, 156, 172, 161, 156, 148, 153, 156, 156, 163, 163, 172, 152, 162, 163, 161, 162, 166, 165, 143, 157, 157, 159, 164, 163, 171, 162, 181, 156, 155, 167, 157, 151, 151, 154, 169, 142, 144, 167, 169, 164, 167, 161, 160, 156, 153, 155, 157, 159, 168, 146, 158, 155, 158, 147, 149, 159, 151, 160, 156, 159, 165, 153, 160, 158, 155, 156, 165, 153, 158, 153, 161, 155, 155, 156, 155, 155, 173, 165, 166, 170, 162, 158, 161, 157, 166, 162, 172, 165, 158, 159, 172, 160, 169, 146, 168, 154, 155, 157, 150, 161, 162, 166, 161, 168, 175, 144, 161, 161, 158, 154, 160, 152, 163, 151, 162, 156, 163, 158, 162, 163, 158, 153, 165, 147, 161, 155, 156, 152, 160, 148, 157, 157, 159, 169, 154, 154, 156, 156, 179, 154, 153, 164, 160, 161, 161, 162, 171, 155, 176, 149, 159, 169, 152, 166, 157, 164, 175, 149, 154, 158, 152, 170, 157, 149, 151, 166, 160, 155, 154, 158, 151, 159, 166, 150, 158, 176, 163, 155, 152, 162, 159, 167, 153, 165, 156, 147, 156, 163, 174, 167, 159, 156, 154, 154, 165, 157, 153, 162, 153, 169, 161, 155, 172, 157, 143, 146, 156, 155, 156, 158, 157, 163, 181, 154, 157, 164, 158, 175, 145, 155, 162, 142, 163, 147, 154, 161, 164, 161, 154, 177, 161, 155, 157, 153, 156, 159, 165, 148, 157, 171, 160, 155, 160, 152, 154, 153, 156, 161, 160, 159, 161, 165, 157, 162, 153, 159, 137, 169, 163, 148, 166, 168, 164, 156, 163, 158, 154, 165, 163, 156, 156, 165, 159, 155, 173, 170, 159, 158, 156, 154, 158, 166, 158, 147, 163, 167, 162, 161, 163, 164, 161, 157, 153, 157, 159, 163, 170, 136, 161, 157, 172, 162, 162, 160, 154, 165, 162, 158, 154, 160, 154, 165, 161, 164, 167, 165, 171, 162, 156, 162, 157, 157, 165, 157, 153, 154, 165, 160, 154, 159, 173, 150, 159, 156, 158, 169, 156, 163, 159, 152, 160, 153, 162, 164, 159, 164, 162, 158, 163, 153, 190, 161, 158, 160, 157, 162, 153, 159, 153, 160, 160, 152, 172, 156, 160, 169, 159, 167, 157, 164, 165, 148, 154, 160, 163, 163, 159, 162, 165, 160, 155, 153, 162, 159, 159, 181, 162, 167, 143, 161, 159, 158, 155, 153, 161, 164, 160, 163, 151, 128, 165, 178, 154, 158, 164, 155, 167, 149, 172, 156, 153, 157, 167, 165, 152, 161, 158, 162, 159, 158, 166, 163, 162, 159, 158, 168, 158, 170, 161, 155, 160, 150, 163, 156, 150, 153, 165, 161, 160, 159, 167, 158, 166, 152, 157, 166, 151, 164, 156, 160, 165, 155, 162, 162, 164, 160, 168, 160, 164, 158, 158, 160, 162, 156, 163, 155, 164, 151, 154, 160, 168, 159, 165, 160, 167, 163, 172, 156, 163, 159, 155, 159, 170, 166, 163, 138, 166, 155, 153, 166, 161, 156, 159, 159, 159, 161, 160, 154, 167, 149, 153, 156, 156, 162, 161, 158, 149, 151, 154, 155, 158, 166, 156, 161, 167, 157, 162, 148, 154, 164, 161, 173, 157, 157, 157, 161, 160, 153, 159, 165, 163, 159, 158, 162, 163, 158, 160, 156, 157, 165, 155, 157, 162, 150, 165, 162, 156, 157, 157, 156, 156, 158, 158, 163, 153, 161, 159, 168, 162, 158, 165, 161, 153, 159, 156, 156, 156, 160, 157, 163, 164, 150, 153, 167, 155, 156, 163, 173, 162, 159, 155, 163, 153, 166, 146, 164, 161, 157, 163, 152, 157, 158, 165, 160, 164, 158, 160, 155, 150, 163, 161, 151, 161, 164, 159, 156, 168, 158, 160, 158, 163, 163, 152, 166, 162, 160, 166, 158, 163, 148, 162, 176, 164, 168, 162, 162, 158, 160, 164, 150, 164, 166, 156, 159, 158, 158, 164, 160, 161, 166, 158, 162, 160, 159, 162, 160, 152, 159, 164, 161, 170, 153, 160, 164, 159, 159, 161, 154, 162, 162, 154, 157, 161, 162, 163, 157, 159, 160, 151, 152, 161, 159, 153, 155, 163, 161, 163, 154, 159, 155, 159, 158, 170, 160, 183, 162, 165, 162, 164, 158, 150, 155, 164, 155, 158, 156, 164, 159, 159, 159, 156, 155, 161, 169, 172, 160, 156, 158, 159, 165, 159, 156, 162, 164, 156, 148, 176, 159, 166, 156, 157, 154, 150, 156, 153, 147, 164, 156, 155, 156, 162, 193, 155, 161, 159, 159, 162, 166, 165, 165, 154, 155, 164, 163, 155, 167, 160, 156, 157, 163, 141, 163, 170, 156, 154, 161, 160, 159, 157, 157, 160, 157, 162, 168, 165, 170, 162, 158, 160, 158, 157, 169, 159, 168, 160, 157, 161, 158, 158, 163, 159, 160, 163, 160, 161, 157, 156, 161, 157, 163, 159, 165, 160, 159, 160, 164, 165, 162, 160, 155, 165, 163, 161, 159, 133, 161, 161, 165, 164, 176, 157, 153, 148, 160, 161, 161, 166, 160, 165, 165, 157, 164, 173, 159, 155, 154, 156, 162, 165, 161, 155, 156, 156, 164, 158, 157, 163, 158, 163, 157, 155, 155, 153, 168, 157, 163, 162, 140, 154, 163, 169, 156, 156, 160, 155, 171, 164, 160, 159, 151, 152, 161, 154, 164, 167, 157, 154, 162, 206, 160, 156, 154, 162, 159, 160, 159, 161, 158, 164, 158, 164, 159, 164, 145, 162, 160, 160, 167, 160, 141, 164, 158, 159, 161, 159, 152, 155, 157, 161, 160, 155, 161, 161, 164, 160, 158, 177, 154, 161, 157, 153, 160, 158, 149, 153, 165, 159, 159, 156, 163, 162, 159, 142, 159, 163, 161, 158, 162, 167, 163, 163, 144, 156, 163, 167, 142, 158, 156, 159, 161, 157, 156, 162, 165, 159, 161, 164, 160, 164, 160, 162, 159, 162, 159, 156, 157, 162, 158, 160, 160, 159, 161, 160, 168, 162, 165, 165, 165, 167, 160, 144, 161, 161, 126, 162, 158, 166, 158, 162, 158, 164, 151, 158, 165, 161, 161, 162, 159, 154, 159, 160, 160, 161, 154, 164, 165, 156, 156, 145, 176, 157, 157, 159, 149, 154, 156, 156, 157, 152, 165, 159, 156, 163, 161, 169, 154, 159, 156, 158, 153, 165, 157, 166, 157, 161, 162, 165, 168, 159, 170, 163, 160, 165, 163, 161, 158, 154, 161, 165, 164, 156, 165, 158, 157, 161, 165, 159, 158, 161, 163, 159, 153, 156, 163, 164, 156, 163, 160, 163, 160, 157, 160, 163, 162, 163, 154, 163, 159, 152, 160, 152, 159, 166, 160, 158, 160, 164, 156, 165, 158, 157, 156, 163, 160, 155, 158, 163, 157, 157, 159, 157, 162, 163, 162, 155, 162, 163, 160, 156, 159, 152, 161, 162, 160, 155, 159, 158, 162, 160, 155, 163, 160, 165, 160, 155, 160, 159, 155, 162, 164, 167, 162, 153, 159, 160, 161, 158, 160, 167, 158, 164, 157, 161, 136, 165, 160, 160, 162, 152, 161, 158, 161, 159, 161, 163, 151, 157, 165, 152, 151, 161, 165, 162, 160, 170, 162, 168, 158, 160, 164, 161, 154, 157, 161, 165, 158, 159, 157, 156, 161, 153, 153, 153, 163, 157, 161, 165, 204, 162, 152, 147, 160, 161, 180, 149, 164, 160, 157, 160, 157, 157, 164, 162, 166, 163, 163, 165, 159, 162, 157, 160, 158, 161, 157, 160, 161, 166, 161, 163, 166, 157, 157, 155, 158, 158, 168, 159, 159, 165, 158, 155, 159, 162, 172, 164, 158, 162, 153, 162, 159, 158, 160, 158, 158, 159, 161, 162, 165, 162, 159, 162, 155, 156, 157, 162, 157, 162, 157, 160, 162, 156, 158, 164, 166, 163, 155, 161, 165, 159, 158, 162, 161, 161, 161, 159, 165, 156, 165, 151, 160, 159, 161, 156, 143, 144, 155, 160, 166, 166, 156, 166, 164, 172, 160, 156, 155, 163, 159, 165, 162, 162, 156, 158, 163, 149, 159, 156, 165, 162, 169, 157, 143, 156, 163, 156, 167, 154, 148, 166, 159, 152, 161, 167, 165, 162, 174, 161, 152, 166, 158, 165, 160, 148, 172, 157, 153, 153, 164, 170, 164, 157, 151, 164, 164, 154, 159, 150, 154, 145, 154, 165, 167, 169, 162, 159, 158, 172, 151, 166, 165, 158, 154, 155, 155, 180, 156, 164, 145, 151, 159, 156, 150, 171, 161, 163, 154, 147, 154, 153, 152, 159, 169, 157, 160, 162, 152, 159, 166, 162, 153, 154, 151, 159, 160, 165, 170, 147, 162, 163, 157, 159, 153, 156, 162, 166, 156, 155, 160, 162, 146, 163, 160, 159, 162, 158, 150, 161, 160, 150, 159, 141, 159, 164, 157, 164, 157, 156, 164, 154, 156, 151, 153, 163, 170, 168, 164, 154, 154, 159, 167, 173, 162, 168, 167, 159, 166, 163, 148, 156, 158, 151, 169, 156, 158, 164, 161, 171, 153, 156, 156, 157, 150, 155, 160, 158, 158, 167, 157, 164, 169, 146, 162, 160, 160, 175, 167, 158, 167, 163, 159, 155, 176, 160, 155, 162, 153, 158, 157, 161, 166, 159, 162, 163, 163, 158, 161, 163, 169, 156, 157, 162, 163, 163, 152, 157, 170, 163, 152, 163, 155, 161, 163, 158, 150, 161, 169, 159, 165, 150, 160, 164, 157, 157, 171, 161, 170, 158, 148, 165, 171, 165, 165, 159, 156, 154, 151, 154, 159, 157, 156, 154, 156, 159, 164, 175, 160, 165, 164, 150, 167, 154, 152, 171, 162, 152, 156, 160, 151, 161, 159, 158, 157, 150, 156, 155, 152, 162, 156, 154, 149, 157, 152, 154, 186, 159, 145, 161, 157, 154, 157, 155, 151, 152, 149, 152, 154, 172, 158, 157, 151, 164, 165, 175, 164, 153, 177, 161, 152, 162, 159, 160, 158, 167, 158, 146, 164, 158, 162, 163, 151, 153, 170, 167, 159, 153, 173, 162, 163, 164, 154, 174, 154, 171, 161, 157, 154, 157, 154, 154, 154, 161, 160, 157, 158, 159, 153, 162, 140, 150, 152, 161, 163, 160, 153, 151, 159, 152, 171, 156, 155, 164, 160, 169, 156, 169, 157, 154, 171, 144, 166, 165, 149, 160, 164, 157, 147, 165, 172, 151, 158, 166, 154, 152, 158, 159, 155, 155, 152, 153, 154, 159, 163, 155, 158, 151, 151, 166, 156, 161, 163, 157, 161, 156, 181, 163, 160, 157, 160, 156, 162, 178, 163, 153, 159, 149, 155, 170, 166, 160, 156, 146, 149, 151, 161, 146, 165, 164, 154, 172, 173, 162, 161, 152, 154, 160, 177, 159, 171, 150, 155, 159, 171, 153, 152, 158, 165, 161, 160, 157, 158, 158, 158, 160, 149, 163, 159, 155, 150, 158, 166, 156, 161, 155, 157, 148, 167, 164, 160, 158, 163, 155, 153, 155, 155, 162, 157, 154, 162, 139, 165, 161, 176, 153, 157, 162, 160, 164, 175, 151, 169, 160, 159, 156, 168, 171, 164, 162, 160, 154, 164, 157, 151, 153, 166, 168, 162, 164, 166, 160, 150, 159, 160, 158, 167, 163, 169, 172, 147, 163, 172, 160, 157, 147, 157, 159, 161, 146, 158, 156, 158, 153, 163, 159, 143, 167, 162, 158, 158, 154, 147, 164, 156, 152, 157, 158, 166, 163, 160, 166, 159, 164, 161, 157, 168, 158, 183, 162, 161, 153, 164, 156, 159, 171, 152, 161, 157, 155, 161, 161, 158, 163, 164, 151, 158, 163, 156, 164, 159, 162, 155, 164, 156, 165, 153, 157, 160, 160, 155, 165, 165, 161, 164, 151, 163, 163, 154, 152, 160, 151, 162, 159, 158, 156, 167, 165, 184, 172, 158, 153, 163, 156, 155, 153, 159, 157, 152, 160, 175, 166, 163, 162, 157, 154, 167, 161, 162, 164, 160, 159, 158, 162, 159, 160, 157, 168, 155, 163, 151, 158, 161, 158, 165, 156, 161, 162, 161, 156, 162, 158, 171, 166, 150, 161, 162, 156, 174, 152, 170, 154, 168, 155, 160, 158, 151, 149, 160, 158, 156, 164, 154, 157, 162, 148, 167, 168, 164, 162, 157, 153, 160, 171, 156, 151, 145, 166, 152, 156, 173, 153, 168, 162, 168, 147, 160, 158, 159, 153, 158, 142, 160, 165, 158, 155, 163, 160, 151, 172, 160, 156, 153, 153, 164, 154, 158, 157, 153, 154, 166, 182, 162, 153, 174, 162, 164, 153, 158, 152, 156, 158, 167, 160, 160, 152, 158, 155, 157, 157, 167, 158, 157, 153, 153, 161, 164, 159, 152, 177, 162, 156, 162, 164, 166, 158, 158, 156, 161, 164, 163, 163, 151, 159, 156, 152, 152, 150, 162, 179, 149, 157, 161, 166, 160, 154, 156, 162, 159, 172, 157, 162, 156, 160, 149, 159, 162, 152, 153, 175, 156, 159, 158, 157, 163, 157, 152, 161, 150, 162, 168, 150, 158, 155, 167, 150, 157, 161, 156, 161, 152, 155, 156, 156, 158, 158, 168, 155, 149, 153, 165, 160, 155, 162, 159, 159, 152, 163, 163, 153, 167, 154, 150, 161, 155, 154, 156, 171, 149, 155, 158, 158, 160, 156, 159, 158, 159, 151, 158, 159, 157, 151, 167, 159, 152, 165, 158, 154, 158, 155, 156, 166, 154, 158, 157, 163, 161, 155, 158, 157, 162, 155, 162, 157, 185, 155, 159, 150, 155, 164, 162, 166, 155, 164, 161, 161, 159, 149, 157, 159, 151, 152, 156, 153, 152, 165, 162, 154, 151, 167, 162, 155, 151, 161, 161, 155, 161, 161, 159, 165, 168, 164, 168, 164, 158, 158, 160, 162, 165, 160, 159, 155, 162, 157, 164, 159, 157, 164, 153, 170, 163, 154, 156, 163, 166, 149, 151, 155, 160, 147, 161, 157, 158, 171, 183, 163, 160, 161, 163, 161, 145, 157, 157, 168, 162, 149, 149, 162, 156, 151, 148, 159, 156, 154, 163, 149, 161, 160, 165, 158, 162, 160, 165, 152, 161, 164, 159, 159, 151, 163, 161, 150, 150, 151, 158, 163, 147, 159, 156, 149, 152, 163, 153, 163, 152, 170, 158, 160, 162, 168, 160, 163, 160, 171, 165, 154, 162, 155, 161, 153, 167, 167, 166, 154, 154, 154, 166, 150, 157, 151, 157, 165, 158, 156, 158, 164, 157, 159, 163, 159, 154, 157, 170, 168, 157, 149, 168, 171, 160, 174, 163, 166, 162, 156, 153, 170, 159, 160, 166, 150, 165, 159, 168, 155, 164, 165, 160, 152, 170, 165, 165, 158, 157, 155, 162, 168, 160, 161, 158, 168, 150, 159, 156, 153, 156, 164, 155, 154, 160, 152, 164, 162, 162, 164, 154, 162, 162, 164, 171, 160, 154, 157, 169, 156, 161, 153, 155, 163, 159, 159, 153, 161, 158, 165, 167, 166, 158, 163, 162, 163, 155, 169, 159, 173, 154, 157, 155, 157, 160, 159, 163, 162, 159, 167, 164, 165, 154, 165, 164, 159, 163, 155, 163, 155, 155, 159, 155, 162, 159, 163, 157, 169, 162, 166, 158, 168, 167, 169, 158, 164, 170, 160, 159, 172, 154, 147, 159, 157, 154, 156, 167, 173, 167, 155, 156, 159, 177, 156, 152, 156, 161, 160, 159, 155, 162, 151, 165, 160, 164, 159, 154, 162, 158, 166, 163, 161, 162, 179, 149, 178, 161, 162, 164, 165, 163, 171, 160, 154, 168, 163, 147, 151, 158, 154, 159, 149, 161, 162, 143, 156, 157, 157, 165, 153, 157, 154, 151, 162, 171, 166, 151, 157, 161, 161, 159, 165, 148, 166, 146, 165, 159, 163, 153, 167, 154, 163, 158, 165, 165, 158, 161, 155, 155, 160, 167, 159, 156, 156, 151, 162, 150, 146, 157, 164, 161, 154, 162, 167, 164, 163, 149, 167, 162, 160, 162, 159, 164, 155, 161, 156, 169, 161, 158, 157, 156, 177, 162, 166, 156, 160, 144, 157, 162, 157, 165, 165, 166, 172, 156, 159, 165, 153, 152, 138, 168, 163, 157, 162, 154, 169, 166, 168, 156, 165, 152, 154, 150, 156, 166, 156, 165, 155, 175, 162, 154, 151, 171, 154, 162, 158, 166, 158, 147, 163, 153, 160, 161, 158, 156, 159, 155, 162, 155, 151, 176, 157, 152, 157, 159, 158, 156, 160, 161, 153, 161, 166, 162, 155, 157, 162, 159, 160, 146, 160, 162, 160, 168, 157, 159, 167, 163, 160, 162, 159, 157, 161, 163, 157, 163, 165, 170, 167, 163, 158, 176, 142, 155, 160, 171, 154, 156, 171, 155, 164, 168, 158, 168, 171, 166, 150, 161, 175, 161, 169, 161, 158, 160, 162, 156, 162, 162, 169, 155, 157, 157, 170, 151, 162, 153, 161, 160, 164, 156, 158, 175, 168, 156, 162, 163, 159, 156, 159, 161, 171, 156, 158, 159, 164, 166, 159, 163, 157, 150, 162, 166, 159, 157, 157, 164, 153, 159, 164, 165, 158, 154, 161, 162, 159, 162, 158, 165, 158, 165, 167, 158, 162, 160, 167, 161, 155, 172, 156, 165, 169, 159, 165, 164, 154, 157, 167, 157, 165, 160, 158, 157, 154, 163, 156, 152, 159, 161, 153, 160, 160, 152, 158, 169, 165, 159, 155, 162, 160, 163, 166, 174, 167, 158, 167, 169, 152, 158, 152, 159, 149, 175, 164, 160, 162, 156, 159, 161, 161, 139, 146, 167, 163, 149, 163, 161, 153, 165, 158, 156, 160, 157, 162, 151, 152, 153, 168, 154, 159, 162, 164, 162, 166, 152, 166, 170, 151, 153, 153, 160, 157, 163, 155, 166, 166, 158, 164, 154, 159, 154, 161, 156, 153, 161, 172, 156, 155, 165, 162, 156, 160, 163, 165, 155, 166, 163, 162, 158, 155, 152, 162, 160, 167, 165, 167, 157, 161, 159, 165, 166, 160, 156, 160, 153, 157, 154, 170, 160, 164, 156, 164, 158, 152, 149, 160, 162, 169, 163, 162, 156, 165, 157, 166, 159, 154, 161, 159, 172, 162, 152, 155, 163, 154, 156, 161, 158, 153, 160, 152, 164, 155, 161, 154, 163, 153, 160, 154, 166, 166, 161, 160, 162, 169, 158, 152, 165, 156, 153, 151, 156, 159, 181, 159, 151, 151, 161, 172, 164, 158, 163, 163, 162, 164, 164, 154, 159, 156, 165, 162, 162, 151, 161, 162, 162, 157, 171, 157, 162, 154, 163, 166, 159, 157, 163, 165, 158, 160, 164, 148, 157, 175, 155, 165, 169, 165, 160, 154, 161, 164, 162, 166, 164, 145, 170, 158, 151, 163, 157, 157, 161, 154, 159, 166, 157, 156, 149, 157, 151, 162, 173, 156, 165, 163, 165, 160, 162, 163, 160, 158, 156, 156, 160, 162, 158, 157, 156, 149, 159, 168, 154, 157, 159, 159, 160, 162, 173, 159, 157, 165, 175, 169, 158, 161, 153, 151, 168, 162, 172, 160, 164, 164, 169, 169, 158, 158, 159, 155, 161, 162, 163, 163, 159, 160, 158, 152, 162, 157, 155, 148, 152, 164, 156, 169, 164, 153, 166, 162, 158, 165, 163, 156, 157, 158, 163, 164, 159, 157, 170, 161, 148, 163, 158, 160, 159, 162, 158, 177, 155, 162, 155, 160, 156, 156, 159, 149, 151, 148, 153, 156, 159, 162, 156, 160, 160, 155, 150, 158, 167, 158, 159, 155, 163, 158, 164, 150, 161, 162, 158, 161, 169, 159, 158, 156, 159, 161, 161, 163, 166, 162, 164, 156, 155, 169, 160, 155, 160, 156, 166, 149, 154, 154, 178, 161, 156, 161, 154, 161, 167, 165, 166, 159, 164, 160, 153, 152, 160, 157, 158, 154, 154, 150, 164, 160, 169, 149, 162, 156, 159, 155, 160, 150, 149, 168, 162, 159, 165, 157, 164, 162, 156, 157, 153, 158, 160, 152, 153, 158, 162, 156, 162, 168, 154, 158, 160, 167, 161, 175, 163, 153, 162, 157, 165, 153, 161, 162, 158, 161, 148, 165, 158, 168, 162, 152, 154, 154, 162, 164, 168, 173, 169, 161, 161, 164, 159, 159, 158, 154, 153, 157, 163, 166, 158, 160, 159, 161, 159, 155, 178, 160, 155, 158, 152, 159, 156, 153, 147, 166, 163, 161, 157, 161, 155, 162, 155, 168, 160, 159, 162, 156, 158, 151, 177, 158, 166, 157, 152, 161, 160, 166, 150, 154, 162, 155, 164, 160, 160, 156, 166, 155, 155, 161, 162, 168, 154, 153, 164, 172, 158, 153, 164, 162, 162, 153, 160, 153, 156, 163, 155, 158, 150, 170, 159, 171, 160, 162, 164, 161, 158, 163, 153, 147, 159, 150, 162, 166, 159, 158, 167, 149, 163, 164, 160, 153, 152, 159, 157, 153, 161, 156, 160, 154, 163, 162, 162, 163, 158, 165, 160, 154, 164, 163, 157, 161, 174, 159, 159, 155, 157, 164, 162, 160, 159, 156, 162, 163, 155, 165, 164, 159, 158, 160, 156, 172, 158, 159, 160, 155, 162, 161, 161, 154, 162, 158, 158, 154, 159, 162, 162, 161, 135, 157, 150, 157, 165, 162, 159, 161, 164, 162, 162, 159, 160, 151, 157, 161, 160, 152, 160, 162, 161, 169, 159, 161, 159, 175, 159, 163, 167, 161, 161, 157, 156, 162, 152, 173, 161, 161, 170, 161, 164, 165, 155, 159, 169, 159, 156, 158, 160, 157, 157, 162, 154, 142, 155, 163, 166, 152, 159, 155, 159, 152, 156, 158, 162, 153, 156, 160, 160, 166, 154, 158, 159, 156, 158, 161, 161, 161, 160, 160, 149, 161, 143, 156, 158, 162, 161, 159, 171, 160, 169, 149, 161, 164, 158, 160, 159, 169, 159, 159, 175, 150, 160, 165, 186, 164, 161, 166, 165, 158, 159, 166, 164, 150, 160, 163, 162, 156, 157, 165, 159, 154, 160, 161, 157, 168, 167, 156, 162, 161, 159, 158, 154, 161, 165, 160, 159, 161, 155, 159, 164, 168, 163, 157, 156, 165, 153, 147, 156, 158, 161, 158, 155, 155, 158, 163, 155, 156, 161, 156, 158, 167, 160, 158, 153, 166, 160, 160, 160, 156, 160, 162, 152, 156, 157, 166, 161, 165, 157, 167, 159, 164, 157, 152, 157, 165, 159, 164, 174, 158, 163, 156, 163, 159, 156, 156, 160, 166, 161, 159, 144, 158, 162, 166, 159, 164, 163, 160, 169, 141, 168, 184, 160, 164, 168, 161, 162, 161, 161, 161, 143, 167, 163, 163, 169, 165, 157, 159, 161, 165, 163, 159, 165, 162, 164, 164, 159, 162, 154, 161, 183, 158, 160, 165, 156, 156, 166, 161, 163, 155, 165, 166, 160, 157, 159, 163, 159, 161, 157, 168, 158, 160, 164, 166, 163, 155, 163, 161, 155, 162, 157, 163, 159, 158, 158, 161, 159, 163, 158, 158, 166, 167, 161, 162, 161, 163, 157, 154, 157, 157, 161, 162, 161, 162, 156, 162, 157, 168, 159, 160, 154, 157, 159, 162, 166, 150, 154, 156, 164, 164, 155, 168, 162, 167, 156, 152, 157, 163, 156, 168, 167, 160, 159, 164, 161, 150, 160, 160, 158, 150, 162, 161, 162, 156, 153, 161, 161, 157, 163, 154, 154, 163, 158, 176, 165, 169, 156, 149, 163, 161, 160, 160, 162, 160, 166, 160, 153, 162, 163, 158, 158, 155, 162, 146, 153, 162, 162, 165, 158, 157, 161, 179, 158, 150, 165, 155, 162, 156, 157, 162, 160, 160, 153, 161, 161, 162, 156, 184, 156, 162, 159, 156, 156, 151, 161, 159, 158, 154, 157, 162, 167, 155, 160, 165, 165, 161, 159, 162, 155, 155, 156, 158, 156, 167, 164, 163, 154, 156, 165, 167, 165, 154, 153, 159, 164, 161, 164, 160, 162, 176, 162, 159, 158, 158, 169, 165, 161, 161, 150, 160, 161, 159, 156, 163, 162, 158, 159, 158, 166, 157, 161, 159, 159, 151, 156, 156, 163, 156, 170, 156, 163, 166, 182, 159, 165, 158, 158, 158, 159, 158, 151, 160, 159, 153, 160, 156, 159, 169, 156, 167, 157, 156, 161, 182, 168, 164, 166, 158, 164, 173, 164, 158, 165, 166, 156, 157, 164, 162, 156, 155, 160, 159, 159, 159, 155, 166, 159, 159, 156, 156, 155, 160, 167, 159, 159, 154, 162, 157, 161, 165, 163, 158, 162, 158, 164, 161, 154, 160, 159, 160, 161, 157, 165, 158, 163, 147, 157, 161, 158, 156, 156, 160, 159, 164, 160, 160, 161, 162, 151, 163, 160, 156, 157, 163, 154, 177, 160, 158, 159, 165, 178, 162, 169, 151, 160, 157, 153, 160, 157, 163, 158, 162, 159, 160, 161, 155, 159, 160, 171, 169, 160, 152, 160, 163, 159, 157, 162, 157, 156, 160, 163, 171, 162, 176, 161, 157, 160, 162, 158, 159, 158, 165, 155, 163, 159, 164, 162, 179, 157, 159, 164, 164, 160, 163, 162, 162, 160, 166, 159, 156, 153, 160, 149, 158, 165, 164, 158, 157, 160, 153, 158, 165, 154, 162, 159, 154, 158, 163, 163, 152, 154, 165, 163, 160, 157, 156, 162, 170, 160, 159, 156, 167, 153, 162, 156, 160, 166, 164, 159, 160, 153, 153, 156, 175, 169, 157, 157, 157, 156, 162, 159, 154, 155, 162, 155, 161, 160, 155, 160, 162, 156, 162, 156, 155, 158, 176, 161, 149, 164, 173, 168, 160, 141, 166, 159, 158, 160, 156, 153, 173, 156, 163, 164, 162, 154, 156, 155, 155, 162, 158, 154, 159, 156, 139, 156, 165, 160, 156, 154, 156, 159, 159, 154, 159, 156, 162, 163, 159, 158, 163, 169, 161, 163, 159, 159, 162, 175, 158, 158, 161, 159, 163, 165, 161, 162, 158, 164, 162, 160, 166, 165, 154, 161, 159, 163, 161, 159, 163, 156, 135, 140, 152, 154, 160, 156, 153, 157, 156, 161, 160, 168, 161, 155, 162, 164, 162, 154, 157, 157, 162, 153, 154, 165, 152, 183, 165, 161, 154, 156, 165, 165, 161, 170, 161, 158, 161, 140, 165, 163, 154, 161, 170, 167, 162, 173, 144, 154, 160, 170, 154, 151, 163, 153, 159, 160, 159, 156, 160, 162, 159, 162, 153, 166, 161, 161, 169, 153, 161, 154, 167, 163, 161, 164, 160, 164, 164, 159, 161, 161, 162, 160, 160, 161, 155, 153, 157, 162, 164, 163, 164, 167, 161, 161, 161, 161, 163, 154, 157, 154, 165, 153, 150, 160, 164, 155, 158, 163, 154, 163, 162, 147, 157, 150, 166, 165, 159, 160, 162, 156, 156, 157, 155, 155, 159, 158, 159, 159, 163, 165, 155, 155, 168, 161, 167, 159, 156, 159, 155, 161, 158, 151, 155, 157, 159, 158, 159, 158, 158, 157, 160, 161, 156, 158, 151, 163, 159, 160, 160, 159, 155, 160, 162, 163, 159, 160, 162, 161, 155, 158, 164, 157, 155, 162, 171, 162, 158, 159, 159, 161, 160, 158, 162, 160, 156, 159, 160, 159, 182, 163, 155, 161, 158, 159, 162, 163, 163, 147, 159, 154, 161, 160, 163, 160, 153, 160, 162, 161, 159, 176, 164, 157, 155, 166, 157, 155, 159, 158, 156, 157, 163, 157, 147, 156, 163, 154, 153, 163, 157, 157, 164, 158, 160, 160, 160, 162, 170, 164, 159, 167, 151, 161, 160, 167, 154, 161, 158, 160, 153, 165, 166, 163, 158, 151, 161, 163, 164, 158, 163, 157, 162, 162, 139, 161, 160, 158, 159, 160, 167, 160, 153, 167, 155, 164, 150, 149, 157, 157, 161, 165, 154, 158, 162, 159, 171, 163, 162, 162, 158, 155, 160, 160, 156, 160, 160, 160, 168, 156, 166, 166, 164, 162, 158, 162, 161, 154, 148, 159, 170, 162, 165, 156, 159, 161, 158, 167, 153, 158, 159, 165, 159, 166, 157, 158, 163, 163, 161, 166, 190, 157, 162, 167, 157, 160, 157, 159, 165, 162, 162, 165, 156, 152, 160, 159, 184, 157, 174, 165, 163, 153, 170, 159, 174, 164, 165, 158, 163, 156, 165, 165, 158, 162, 160, 163, 167, 157, 150, 159, 166, 165, 172, 161, 163, 148, 156, 163, 159, 161, 164, 160, 154, 158, 158, 158, 167, 143, 162, 161, 153, 159, 163, 157, 167, 165, 166, 165, 145, 156, 161, 159, 157, 153, 159, 159, 160, 155, 181, 157, 160, 155, 161, 161, 155, 152, 156, 157, 160, 160, 163, 159, 161, 159, 162, 158, 158, 148, 157, 157, 160, 162, 158, 161, 157, 162, 168, 159, 150, 157, 146, 158, 165, 163, 162, 161, 159, 162, 153, 164, 161, 164, 164, 152, 166, 161, 161, 157, 155, 165, 161, 161, 159, 164, 162, 166, 161, 157, 153, 167, 155, 153, 157, 147, 170, 164, 164, 160, 161, 160, 158, 156, 154, 163, 159, 165, 162, 160, 162, 159, 160, 162, 161, 157, 166, 162, 163, 156, 157, 156, 156, 161, 171, 158, 163, 155, 155, 159, 159, 163, 163, 162, 158, 154, 159, 160, 158, 157, 171, 161, 157, 154, 157, 164, 158, 158, 168, 159, 161, 160, 156, 165, 158, 157, 154, 142, 162, 154, 169, 165, 157, 161, 159, 174, 156, 158, 153, 170, 158, 162, 173, 136, 157, 155, 160, 162, 168, 156, 161, 172, 159, 142, 168, 177, 157, 158, 152, 156, 163, 162, 167, 164, 154, 163, 163, 164, 153, 166, 159, 162, 181, 154, 167, 158, 168, 165, 160, 153, 154, 162, 162, 155, 162, 161, 159, 157, 157, 149, 156, 153, 153, 158, 166, 157, 164, 157, 158, 155, 156, 170, 162, 155, 164, 166, 171, 146, 159, 155, 155, 160, 156, 156, 166, 152, 162, 172, 167, 153, 161, 159, 153, 169, 163, 164, 157, 164, 159, 169, 157, 164, 169, 165, 156, 161, 160, 158, 160, 155, 173, 156, 161, 159, 153, 157, 157, 166, 164, 156, 165, 157, 152, 161, 167, 163, 159, 161, 157, 164, 160, 165, 157, 154, 160, 161, 163, 162, 153, 152, 173, 159, 156, 152, 155, 152, 148, 161, 161, 165, 163, 157, 161, 160, 169, 160, 167, 157, 158, 158, 159, 161, 158, 152, 153, 173, 153, 166, 160, 153, 161, 167, 155, 165, 173, 151, 169, 161, 167, 163, 160, 162, 160, 159, 163, 170, 162, 163, 160, 161, 159, 168, 161, 160, 160, 158, 162, 156, 156, 163, 161, 164, 161, 149, 162, 162, 155, 160, 140, 170, 159, 163, 169, 157, 158, 172, 162, 173, 165, 160, 162, 154, 150, 163, 161, 158, 159, 155, 157, 155, 165, 160, 158, 158, 175, 159, 162, 160, 137, 166, 167, 161, 165, 158, 162, 157, 158, 160, 160, 161, 162, 149, 162, 161, 162, 167, 156, 153, 153, 171, 151, 159, 157, 156, 138, 156, 157, 159, 159, 145, 165, 157, 155, 164, 153, 161, 164, 157, 159, 162, 156, 159, 152, 147, 145, 153, 154, 160, 171, 170, 168, 152, 166, 160, 161, 139, 158, 155, 160, 162, 163, 160, 164, 160, 170, 151, 158, 168, 143, 163, 153, 156, 166, 161, 155, 162, 152, 165, 161, 162, 140, 161, 154, 162, 157, 158, 157, 168, 161, 162, 161, 163, 153, 167, 154, 152, 158, 160, 164, 163, 145, 161, 158, 162, 166, 163, 161, 157, 160, 173, 159, 161, 164, 162, 163, 170, 160, 166, 157, 160, 159, 155, 161, 163, 139, 158, 167, 158, 158, 162, 165, 162, 162, 156, 148, 160, 152, 165, 161, 156, 151, 159, 154, 163, 164, 162, 160, 160, 157, 164, 171, 168, 154, 161, 158, 161, 145, 151, 159, 157, 154, 165, 165, 156, 154, 161, 160, 158, 158, 163, 154, 165, 142, 158, 171, 156, 158, 157, 156, 146, 168, 153, 161, 176, 157, 160, 162, 159, 185, 162, 157, 164, 160, 164, 160, 161, 165, 156, 160, 153, 158, 164, 143, 158, 163, 159, 158, 174, 155, 160, 169, 157, 162, 164, 159, 165, 162, 162, 162, 157, 151, 156, 162, 160, 163, 162, 167, 155, 153, 160, 161, 163, 158, 157, 158, 168, 158, 159, 140, 158, 169, 159, 160, 155, 160, 159, 165, 160, 150, 154, 159, 154, 156, 155, 165, 195, 148, 164, 164, 154, 156, 159, 159, 160, 163, 165, 157, 159, 167, 156, 163, 157, 155, 164, 161, 156, 138, 166, 173, 175, 162, 162, 161, 162, 150, 168, 160, 158, 156, 160, 170, 159, 160, 158, 151, 156, 155, 154, 159, 161, 157, 150, 154, 159, 159, 162, 165, 167, 141, 163, 163, 160, 157, 159, 153, 175, 166, 158, 152, 161, 156, 156, 156, 157, 168, 160, 162, 165, 155, 154, 156, 162, 158, 158, 164, 161, 164, 166, 161, 156, 162, 160, 164, 161, 162, 159, 170, 155, 161, 160, 158, 170, 151, 150, 161, 158, 156, 157, 163, 149, 158, 165, 157, 160, 162, 164, 158, 157, 163, 162, 159, 158, 160, 154, 155, 159, 158, 161, 157, 168, 148, 157, 149, 167, 162, 170, 160, 159, 160, 160, 167, 164, 165, 172, 159, 158, 142, 168, 160, 161, 161, 159, 163, 144, 159, 160, 149, 161, 163, 172, 166, 150, 173, 155, 171, 161, 160, 162, 153, 159, 168, 162, 164, 162, 157, 134, 159, 155, 162, 164, 154, 150, 163, 154, 161, 159, 180, 164, 170, 162, 157, 158, 162, 167, 155, 157, 149, 157, 160, 160, 154, 159, 155, 168, 163, 160, 159, 151, 171, 177, 160, 170, 155, 157, 167, 167, 168, 164, 159, 147, 156, 156, 155, 161, 149, 165, 159, 141, 160, 161, 161, 171, 154, 160, 162, 167, 159, 170, 162, 162, 162, 162, 160, 168, 155, 158, 150, 156, 164, 154, 149, 154, 160, 157, 169, 169, 161, 159, 152, 161, 157, 172, 159, 148, 163, 159, 152, 159, 155, 157, 155, 156, 177, 159, 155, 168, 156, 165, 151, 162, 155, 157, 144, 156, 172, 160, 159, 166, 151, 159, 164, 156, 173, 154, 158, 163, 158, 144, 159, 160, 157, 165, 164, 167, 163, 158, 158, 150, 156, 155, 170, 159, 163, 152, 154, 160, 163, 168, 166, 160, 167, 172, 165, 166, 154, 160, 154, 155, 158, 157, 161, 156, 151, 161, 159, 158, 146, 171, 170, 156, 155, 157, 160, 164, 153, 165, 159, 146, 144, 165, 159, 161, 171, 156, 158, 178, 147, 147, 161, 165, 157, 163, 159, 159, 149, 151, 159, 164, 149, 158, 166, 152, 157, 159, 155, 162, 159, 159, 165, 158, 160, 150, 170, 150, 155, 173, 156, 161, 166, 154, 158, 164, 167, 153, 159, 163, 169, 160, 153, 168, 135, 160, 150, 170, 161, 163, 157, 177, 136, 162, 162, 154, 161, 159, 160, 167, 153, 170, 159, 158, 168, 155, 153, 155, 161, 167, 161, 162, 165, 164, 156, 160, 167, 159, 160, 158, 159, 149, 165, 155, 156, 164, 168, 160, 153, 163, 155, 164, 165, 153, 172, 161, 161, 156, 162, 162, 154, 158, 167, 167, 158, 155, 181, 156, 163, 176, 165, 156, 158, 166, 156, 164, 161, 158, 159, 161, 148, 143, 166, 178, 154, 165, 151, 152, 162, 153, 169, 153, 163, 157, 158, 181, 163, 169, 161, 170, 157, 169, 157, 159, 169, 141, 165, 165, 154, 152, 159, 171, 181, 164, 163, 158, 179, 156, 161, 150, 163, 158, 153, 161, 162, 177, 159, 181, 172, 169, 170, 158, 160, 162, 157, 151, 170, 165, 159, 161, 158, 162, 163, 171, 161, 161, 161, 164, 184, 148, 161, 168, 148, 152, 158, 149, 159, 164, 157, 160, 157, 168, 157, 153, 157, 163, 160, 157, 156, 156, 157, 162, 165, 171, 160, 153, 144, 158, 162, 153, 153, 168, 161, 157, 165, 159, 155, 147, 152, 176, 157, 159, 158, 177, 159, 156, 156, 189, 147, 146, 170, 172, 155, 162, 159, 154, 152, 156, 161, 152, 155, 156, 169, 155, 148, 168, 165, 164, 155, 166, 178, 155, 157, 143, 152, 157, 163, 149, 152, 160, 149, 166, 160, 151, 162, 165, 169, 158, 153, 156, 168, 157, 159, 150, 157, 154, 165, 162, 169, 164, 163, 161, 154, 168, 156, 160, 146, 158, 159, 166, 150, 164, 177, 163, 172, 158, 168, 165, 155, 164, 162, 160, 167, 148, 145, 165, 169, 162, 167, 164, 163, 161, 166, 164, 155, 148, 158, 160, 174, 168, 159, 152, 156, 151, 167, 167, 157, 143, 148, 163, 160, 159, 150, 154, 170, 155, 161, 183, 147, 160, 155, 172, 156, 154, 160, 173, 157, 153, 161, 154, 167, 164, 169, 170, 161, 170, 157, 159, 167, 166, 161, 165, 161, 159, 153, 165, 154, 154, 173, 170, 167, 160, 155, 165, 167, 160, 165, 165, 149, 170, 161, 159, 167, 159, 158, 155, 164, 161, 161, 163, 157, 163, 160, 156, 157, 159, 154, 158, 162, 159, 152, 156, 171, 164, 159, 155, 146, 162, 161, 162, 157, 158, 151, 167, 158, 158, 160, 160, 157, 159, 158, 162, 162, 158, 156, 149, 154, 160, 155, 167, 161, 167, 172, 164, 160, 161, 154, 158, 154, 158, 163, 154, 162, 157, 161, 160, 157, 160, 157, 161, 156, 156, 163, 164, 161, 158, 155, 154, 158, 161, 149, 162, 158, 156, 162, 160, 159, 162, 161, 161, 154, 169, 168, 157, 166, 167, 178, 156, 159, 156, 157, 161, 159, 167, 158, 164, 165, 163, 176, 165, 166, 158, 164, 159, 159, 157, 156, 154, 156, 167, 164, 161, 161, 154, 160, 159, 158, 152, 157, 166, 163, 157, 151, 159, 154, 160, 160, 149, 162, 152, 166, 158, 162, 146, 159, 158, 161, 160, 159, 149, 159, 151, 157, 156, 148, 153, 156, 162, 162, 158, 157, 159, 165, 160, 159, 154, 159, 156, 160, 161, 163, 155, 161, 161, 157, 180, 162, 156, 154, 149, 152, 155, 154, 150, 173, 148, 156, 152, 158, 160, 160, 157, 157, 165, 155, 164, 161, 148, 155, 160, 156, 158, 166, 154, 160, 151, 182, 168, 163, 146, 153, 157, 169, 156, 157, 163, 144, 158, 158, 166, 157, 164, 156, 163, 153, 167, 161, 148, 161, 157, 164, 163, 164, 166, 156, 156, 157, 155, 165, 160, 159, 159, 166, 154, 160, 166, 154, 163, 152, 158, 158, 166, 160, 168, 156, 162, 158, 158, 155, 164, 156, 154, 160, 148, 154, 158, 161, 165, 159, 163, 155, 157, 161, 160, 156, 154, 183, 159, 156, 175, 161, 160, 166, 156, 164, 167, 158, 157, 162, 165, 160, 158, 161, 148, 158, 158, 149, 151, 159, 158, 152, 167, 154, 157, 159, 157, 166, 174, 155, 164, 160, 164, 158, 149, 169, 157, 156, 163, 153, 156, 164, 163, 166, 159, 160, 170, 152, 156, 158, 166, 155, 165, 165, 159, 155, 156, 165, 160, 164, 151, 171, 151, 157, 164, 151, 155, 169, 161, 163, 160, 160, 154, 158, 157, 158, 161, 166, 153, 157, 156, 159, 157, 157, 159, 163, 159, 161, 162, 158, 158, 159, 159, 159, 157, 159, 155, 158, 161, 161, 140, 164, 167, 159, 162, 155, 158, 160, 163, 163, 147, 157, 158, 160, 166, 164, 158, 159, 156, 157, 158, 157, 177, 153, 164, 169, 181, 154, 163, 151, 155, 163, 157, 152, 154, 182, 160, 155, 152, 161, 158, 161, 163, 162, 155, 155, 161, 158, 155, 154, 159, 161, 156, 161, 148, 160, 165, 158, 164, 166, 155, 160, 160, 156, 151, 162, 160, 160, 159, 164, 159, 158, 161, 154, 166, 159, 156, 160, 169, 162, 154, 151, 158, 165, 160, 146, 154, 162, 158, 151, 158, 159, 163, 170, 154, 169, 153, 171, 162, 163, 161, 154, 162, 161, 152, 158, 150, 153, 153, 152, 161, 158, 157, 166, 147, 157, 165, 166, 154, 155, 160, 163, 161, 167, 161, 160, 164, 161, 163, 159, 158, 161, 157, 162, 159, 160, 153, 162, 157, 160, 158, 154, 148, 156, 167, 161, 170, 159, 168, 164, 167, 143, 159, 161, 156, 158, 163, 170, 160, 159, 160, 166, 167, 161, 156, 162, 158, 160, 159, 163, 160, 164, 150, 162, 153, 163, 163, 157, 158, 166, 162, 147, 164, 169, 158, 159, 160, 155, 153, 152, 161, 163, 152, 164, 158, 170, 155, 167, 158, 160, 156, 159, 153, 152, 165, 158, 163, 159, 164, 156, 157, 162, 157, 154, 162, 165, 163, 160, 164, 167, 158, 164, 179, 162, 157, 159, 164, 159, 157, 162, 165, 156, 150, 158, 160, 163, 167, 163, 163, 155, 159, 161, 154, 166, 161, 160, 151, 157, 157, 165, 160, 159, 154, 165, 162, 163, 156, 158, 158, 164, 164, 164, 159, 163, 165, 164, 158, 156, 161, 161, 160, 157, 157, 161, 163, 158, 162, 162, 163, 159, 158, 157, 159, 168, 158, 159, 160, 153, 163, 160, 156, 160, 158, 159, 157, 158, 159, 159, 161, 165, 163, 159, 153, 159, 158, 181, 167, 157, 158, 159, 160, 161, 157, 155, 161, 151, 159, 159, 162, 164, 160, 163, 151, 159, 160, 161, 159, 167, 167, 157, 164, 160, 147, 161, 164, 163, 155, 157, 156, 157, 162, 163, 157, 155, 163, 156, 152, 157, 153, 162, 159, 159, 155, 162, 162, 170, 156, 165, 162, 158, 161, 159, 163, 160, 156, 160, 157, 161, 160, 156, 155, 154, 168, 157, 160, 164, 157, 153, 160, 156, 161, 157, 157, 159, 145, 163, 159, 175, 161, 158, 163, 161, 159, 158, 151, 160, 161, 156, 158, 163, 165, 158, 162, 166, 161, 159, 166, 165, 157, 162, 161, 153, 151, 151, 162, 155, 161, 159, 161, 153, 165, 158, 159, 158, 154, 160, 161, 161, 165, 159, 155, 163, 154, 161, 153, 156, 158, 162, 162, 156, 161, 165, 154, 156, 152, 166, 164, 161, 158, 162, 163, 157, 164, 178, 150, 158, 159, 160, 157, 161, 163, 161, 154, 173, 161, 161, 161, 162, 152, 168, 151, 161, 163, 158, 161, 165, 161, 166, 160, 161, 164, 162, 154, 154, 159, 159, 155, 162, 150, 158, 158, 159, 158, 163, 152, 155, 162, 158, 168, 160, 163, 153, 163, 170, 165, 164, 162, 168, 165, 170, 157, 158, 164, 166, 161, 160, 151, 162, 165, 150, 154, 162, 165, 160, 161, 165, 154, 160, 159, 150, 158, 157, 167, 159, 157, 154, 163, 158, 156, 163, 165, 160, 157, 165, 161, 162, 161, 159, 163, 156, 166, 153, 170, 159, 169, 162, 161, 159, 161, 157, 160, 157, 160, 159, 166, 159, 154, 160, 166, 161, 162, 165, 160, 158, 162, 158, 161, 164, 157, 152, 156, 167, 153, 162, 160, 165, 157, 168, 161, 167, 163, 164, 167, 156, 162, 160, 155, 158, 159, 166, 157, 157, 157, 151, 163, 161, 160, 167, 158, 167, 161, 168, 164, 157, 162, 161, 164, 160, 161, 165, 157, 153, 165, 162, 157, 160, 163, 157, 158, 158, 158, 159, 160, 157, 157, 162, 158, 164, 161, 162, 157, 164, 160, 163, 156, 161, 166, 163, 166, 155, 166, 157, 159, 161, 161, 163, 156, 155, 160, 158, 165, 156, 160, 167, 159, 159, 158, 161, 161, 160, 161, 163, 160, 154, 159, 155, 152, 159, 155, 161, 154, 161, 157, 162, 158, 159, 156, 159, 161, 165, 160, 161, 142, 162, 163, 162, 159, 159, 162, 161, 161, 162, 154, 152, 161, 161, 159, 152, 160, 159, 167, 159, 158, 159, 158, 158, 159, 154, 157, 156, 159, 163, 147, 162, 157, 159, 161, 165, 156, 160, 161, 155, 166, 163, 162, 154, 157, 158, 161, 162, 157, 160, 168, 162, 153, 158, 158, 158, 163, 160, 159, 155, 160, 156, 161, 162, 166, 158, 156, 160, 158, 160, 159, 155, 162, 161, 155, 161, 156, 155, 167, 162, 152, 150, 168, 159, 153, 159, 161, 158, 167, 164, 163, 160, 160, 159, 157, 156, 161, 154, 161, 149, 159, 161, 156, 163, 159, 160, 163, 160, 158, 172, 160, 161, 157, 160, 170, 160, 160, 161, 162, 160, 167, 157, 165, 163, 161, 159, 159, 160, 158, 161, 159, 156, 155, 159, 156, 161, 163, 156, 156, 160, 160, 162, 158, 158, 161, 162, 157, 159, 157, 160, 156, 163, 168, 157, 158, 159, 156, 166, 159, 163, 163, 158, 161, 163, 164, 159, 157, 154, 161, 159, 164, 161, 160, 157, 163, 160, 158, 162, 159, 156, 160, 171, 161, 161, 153, 156, 159, 157, 160, 163, 157, 162, 160, 156, 165, 164, 162, 157, 162, 158, 159, 166, 155, 160, 164, 162, 160, 160, 160, 160, 154, 159, 162, 165, 161, 158, 158, 160, 160, 157, 159, 158, 162, 161, 162, 163, 164, 158, 159, 148, 160, 157, 162, 162, 164, 161, 170, 163, 167, 164, 155, 162, 164, 159, 164, 158, 162, 158, 160, 162, 157, 163, 162, 160, 146, 158, 161, 167, 166, 163, 161, 162, 165, 160, 161, 158, 161, 152, 159, 167, 157, 163, 163, 163, 151, 159, 162, 154, 164, 165, 160, 161, 165, 161, 159, 160, 159, 157, 154, 160, 162, 158, 164, 159, 157, 161, 158, 165, 160, 164, 169, 158, 164, 159, 159, 162, 161, 163, 157, 158, 164, 158, 157, 155, 161, 162, 162, 153, 161, 164, 163, 160, 160, 162, 162, 159, 156, 160, 165, 159, 158, 160, 160, 158, 165, 159, 159, 166, 164, 158, 152, 159, 154, 154, 157, 161, 161, 159, 157, 161, 161, 154, 160, 159, 159, 159, 161, 161, 169, 161, 161, 161, 161, 156, 159, 166, 157, 161, 165, 158, 161, 162, 157, 160, 162, 159, 162, 155, 171, 157, 159, 155, 160, 168, 158, 156, 155, 157, 162, 157, 153, 167, 162, 161, 161, 160, 161, 157, 159, 162, 162, 164, 159, 158, 159, 163, 164, 157, 156, 158, 154, 162, 157, 165, 161, 162, 159, 152, 158, 152, 162, 163, 161, 158, 162, 155, 165, 161, 158, 159, 160, 156, 160, 161, 161, 162, 156, 159, 162, 157, 158, 161, 164, 154, 167, 160, 158, 164, 156, 164, 163, 156, 162, 171, 164, 165, 160, 162, 159, 159, 158, 156, 162, 163, 154, 172, 149, 159, 164, 158, 162, 159, 165, 164, 155, 165, 162, 166, 157, 169, 164, 155, 163, 160, 157, 161, 146, 154, 154, 161, 163, 163, 154, 159, 163, 153, 151, 159, 159, 167, 158, 162, 158, 159, 165, 163, 163, 159, 168, 155, 163, 150, 164, 160, 158, 159, 163, 164, 163, 155, 164, 155, 162, 164, 163, 166, 159, 157, 167, 158, 155, 159, 158, 162, 162, 168, 159, 161, 168, 151, 154, 159, 167, 162, 159, 159, 152, 165, 161, 164, 164, 158, 151, 160, 160, 163, 164, 165, 160, 158, 168, 168, 170, 152, 161, 159, 160, 162, 159, 155, 163, 158, 161, 160, 163, 160, 171, 163, 161, 158, 157, 162, 161, 152, 153, 159, 175, 154, 163, 157, 161, 162, 168, 156, 162, 164, 160, 159, 163, 163, 165, 158, 163, 161, 155, 154, 157, 162, 167, 159, 148, 160, 163, 165, 159, 157, 159, 166, 165, 155, 161, 161, 163, 170, 164, 168, 146, 160, 167, 164, 153, 154, 162, 152, 157, 163, 162, 167, 168, 158, 158, 155, 156, 165, 161, 164, 163, 159, 154, 160, 153, 152, 151, 157, 157, 161, 161, 160, 157, 159, 161, 164, 161, 160, 162, 155, 160, 163, 158, 155, 163, 160, 163, 161, 162, 162, 162, 149, 162, 155, 157, 168, 157, 160, 163, 158, 161, 155, 161, 161, 160, 161, 165, 155, 158, 162, 163, 160, 165, 157, 159, 164, 159, 165, 158, 164, 157, 157, 166, 162, 163, 158, 158, 157, 159, 165, 166, 149, 156, 160, 159, 155, 155, 166, 162, 158, 152, 152, 175, 164, 167, 166, 158, 156, 161, 161, 165, 157, 160, 159, 157, 165, 170, 160, 160, 156, 151, 164, 156, 164, 167, 164, 154, 161, 156, 162, 158, 158, 165, 157, 157, 155, 147, 166, 158, 174, 165, 161, 158, 159, 163, 158, 160, 155, 162, 163, 154, 155, 154, 165, 156, 166, 164, 161, 159, 156, 158, 158, 162, 159, 162, 158, 162, 162, 157, 159, 162, 156, 166, 157, 163, 163, 159, 159, 161, 153, 162, 165, 167, 160, 155, 153, 160, 164, 158, 160, 164, 163, 159, 165, 162, 164, 156, 159, 164, 155, 162, 156, 159, 155, 160, 161, 168, 164, 162, 157, 155, 157, 152, 161, 153, 155, 161, 163, 170, 165, 168, 161, 170, 159, 156, 164, 156, 157, 166, 152, 155, 162, 158, 158, 163, 160, 160, 160, 146, 164, 166, 163, 153, 162, 159, 156, 153, 156, 169, 173, 161, 146, 157, 161, 166, 162, 163, 169, 162, 162, 167, 160, 159, 174, 159, 159, 160, 156, 159, 173, 176, 166, 153, 160, 157, 160, 159, 158, 156, 155, 162, 158, 158, 160, 165, 153, 169, 165, 158, 166, 164, 157, 155, 158, 162, 168, 160, 161, 165, 159, 160, 163, 159, 162, 153, 163, 167, 158, 158, 166, 163, 169, 161, 157, 158, 161, 158, 160, 157, 160, 154, 155, 160, 164, 155, 158, 165, 157, 172, 161, 160, 161, 167, 168, 149, 150, 146, 148, 172, 162, 172, 155, 153, 156, 175, 168, 155, 158, 155, 158, 163, 165, 157, 164, 161, 150, 157, 151, 160, 158, 168, 158, 145, 167, 161, 162, 164, 160, 155, 167, 160, 151, 151, 159, 158, 170, 165, 158, 168, 164, 177, 161, 163, 156, 158, 161, 161, 152, 165, 153, 150, 151, 147, 151, 167, 157, 160, 158, 157, 165, 160, 161, 164, 163, 165, 152, 151, 173, 159, 154, 167, 163, 160, 156, 155, 159, 163, 157, 163, 155, 149, 159, 161, 155, 163, 159, 159, 160, 155, 155, 155, 159, 154, 165, 164, 151, 160, 165, 167, 165, 151, 158, 161, 154, 155, 165, 160, 163, 164, 166, 168, 164, 160, 162, 154, 163, 157, 165, 145, 161, 165, 162, 156, 156, 167, 173, 158, 167, 159, 164, 164, 160, 157, 156, 151, 162, 168, 160, 163, 161, 164, 174, 144, 161, 151, 161, 163, 158, 156, 163, 152, 155, 160, 148, 163, 157, 162, 161, 167, 165, 162, 157, 150, 163, 160, 158, 152, 160, 157, 166, 167, 146, 159, 162, 165, 155, 162, 158, 153, 164, 160, 170, 167, 151, 168, 171, 162, 163, 163, 162, 155, 163, 155, 161, 150, 157, 164, 161, 161, 160, 161, 157, 160, 155, 161, 152, 162, 166, 152, 180, 166, 157, 166, 164, 159, 159, 164, 154, 163, 162, 156, 164, 160, 160, 164, 166, 156, 166, 157, 152, 149, 154, 160, 151, 151, 157, 161, 171, 159, 166, 160, 161, 153, 145, 165, 174, 165, 167, 164, 160, 156, 160, 154, 156, 164, 154, 163, 164, 152, 164, 162, 151, 166, 165, 162, 159, 160, 159, 147, 160, 161, 155, 164, 153, 169, 161, 156, 159, 158, 156, 154, 160, 166, 161, 175, 149, 150, 159, 159, 177, 163, 161, 160, 158, 164, 157, 163, 160, 161, 155, 169, 164, 157, 158, 155, 163, 169, 158, 161, 164, 163, 159, 157, 158, 155, 161, 149, 158, 159, 151, 160, 161, 156, 166, 157, 165, 166, 164, 157, 164, 154, 179, 156, 160, 161, 161, 157, 161, 166, 158, 159, 158, 162, 161, 142, 161, 152, 163, 167, 164, 159, 169, 156, 162, 161, 158, 151, 159, 152, 162, 156, 152, 164, 164, 161, 133, 152, 161, 157, 151, 167, 160, 155, 179, 156, 156, 156, 160, 165, 167, 167, 153, 167, 149, 160, 154, 158, 163, 169, 161, 161, 166, 162, 164, 164, 157, 152, 128, 159, 160, 163, 162, 159, 160, 164, 161, 162, 158, 166, 153, 162, 153, 166, 167, 161, 163, 161, 151, 159, 162, 156, 169, 164, 162, 159, 163, 168, 156, 155, 163, 155, 168, 155, 164, 141, 155, 161, 164, 162, 161, 162, 159, 160, 163, 158, 162, 165, 153, 157, 171, 155, 159, 165, 155, 167, 159, 149, 164, 157, 161, 155, 165, 157, 156, 163, 158, 168, 156, 153, 153, 164, 158, 158, 160, 159, 153, 155, 158, 149, 159, 162, 147, 163, 158, 153, 154, 157, 158, 154, 155, 161, 164, 162, 160, 160, 163, 167, 161, 163, 154, 161, 160, 160, 167, 164, 167, 162, 152, 160, 163, 163, 155, 154, 159, 163, 159, 151, 165, 164, 161, 158, 156, 167, 153, 166, 162, 158, 154, 157, 154, 156, 159, 154, 162, 160, 155, 164, 155, 162, 154, 167, 166, 164, 149, 155, 157, 161, 157, 156, 152, 158, 161, 157, 160, 150, 169, 162, 164, 164, 164, 160, 152, 164, 160, 165, 157, 162, 159, 159, 163, 158, 161, 156, 162, 159, 152, 160, 161, 150, 152, 164, 148, 164, 161, 160, 153, 166, 156, 165, 161, 126, 157, 164, 159, 164, 163, 164, 168, 161, 162, 165, 166, 156, 157, 168, 166, 166, 166, 162, 164, 157, 188, 156, 157, 167, 163, 162, 164, 158, 164, 163, 154, 168, 167, 156, 163, 156, 172, 164, 160, 169, 158, 156, 162, 149, 155, 169, 160, 160, 157, 158, 158, 165, 152, 163, 153, 142, 157, 160, 171, 171, 165, 150, 163, 169, 167, 157, 172, 160, 161, 162, 155, 161, 169, 158, 153, 159, 164, 163, 159, 161, 156, 152, 162, 167, 160, 162, 163, 166, 160, 160, 163, 159, 162, 155, 165, 148, 162, 159, 161, 164, 161, 154, 164, 154, 166, 143, 163, 153, 156, 162, 158, 166, 161, 164, 152, 168, 165, 161, 163, 159, 153, 163, 144, 159, 170, 139, 159, 162, 165, 161, 155, 159, 161, 157, 164, 159, 156, 146, 160, 163, 164, 168, 159, 156, 158, 158, 162, 157, 155, 180, 148, 155, 154, 162, 161, 169, 166, 165, 161, 169, 152, 152, 160, 159, 162, 157, 163, 159, 162, 170, 159, 165, 164, 160, 151, 162, 168, 163, 153, 167, 155, 156, 168, 167, 151, 156, 159, 164, 157, 160, 149, 162, 160, 164, 166, 161, 151, 191, 157, 158, 156, 157, 161, 156, 167, 157, 154, 165, 166, 159, 161, 156, 163, 165, 160, 153, 158, 163, 159, 154, 161, 153, 161, 150, 160, 161, 157, 159, 169, 162, 160, 153, 160, 156, 168, 170, 156, 156, 160, 157, 159, 162, 161, 160, 161, 162, 163, 157, 158, 167, 159, 160, 158, 153, 156, 154, 158, 153, 168, 156, 158, 159, 159, 157, 148, 155, 173, 170, 157, 159, 153, 167, 168, 162, 163, 160, 167, 157, 158, 157, 162, 152, 165, 154, 163, 152, 161, 155, 156, 155, 157, 165, 155, 177, 156, 150, 157, 155, 160, 167, 171, 158, 156, 163, 159, 158, 160, 154, 150, 157, 165, 165, 156, 158, 162, 154, 164, 164, 159, 159, 164, 161, 155, 163, 155, 159, 162, 165, 168, 178, 157, 147, 157, 152, 160, 169, 165, 157, 157, 162, 158, 168, 154, 158, 162, 161, 160, 157, 181, 155, 161, 162, 158, 168, 151, 161, 160, 158, 161, 157, 158, 168, 162, 151, 163, 164, 161, 156, 152, 162, 161, 155, 160, 157, 159, 162, 166, 162, 165, 151, 154, 156, 154, 161, 161, 162, 163, 168, 163, 157, 176, 158, 153, 155, 158, 162, 159, 160, 159, 163, 154, 177, 160, 150, 158, 158, 158, 160, 158, 163, 154, 167, 160, 155, 158, 169, 164, 161, 157, 153, 161, 153, 164, 161, 156, 152, 151, 161, 170, 165, 150, 158, 161, 165, 154, 149, 159, 156, 148, 156, 160, 158, 170, 158, 159, 159, 156, 159, 161, 169, 175, 159, 161, 165, 153, 163, 152, 160, 166, 151, 159, 151, 160, 156, 162, 151, 159, 158, 164, 162, 159, 156, 167, 153, 166, 158, 160, 160, 159, 161, 169, 159, 166, 156, 154, 162, 158, 166, 154, 159, 159, 161, 157, 163, 160, 177, 165, 153, 166, 166, 167, 158, 163, 163, 165, 160, 158, 164, 151, 149, 157, 157, 161, 157, 163, 156, 166, 170, 156, 163, 173, 166, 153, 168, 164, 154, 155, 155, 163, 166, 149, 157, 153, 161, 153, 157, 161, 160, 159, 165, 157, 161, 165, 162, 159, 160, 149, 160, 162, 151, 153, 163, 164, 164, 157, 184, 164, 158, 163, 155, 162, 160, 162, 155, 150, 160, 152, 175, 158, 164, 160, 165, 150, 160, 160, 164, 165, 157, 157, 158, 152, 158, 161, 165, 165, 150, 159, 158, 159, 166, 160, 159, 153, 160, 168, 161, 161, 163, 160, 156, 164, 148, 166, 158, 173, 155, 160, 158, 176, 160, 157, 141, 169, 157, 154, 157, 156, 156, 159, 155, 168, 162, 167, 164, 172, 154, 158, 152, 156, 148, 156, 161, 160, 166, 152, 165, 159, 167, 167, 176, 159, 161, 161, 175, 154, 161, 158, 153, 165, 159, 165, 157, 152, 163, 167, 151, 151, 159, 161, 165, 155, 166, 159, 166, 152, 164, 158, 159, 162, 156, 160, 165, 161, 160, 162, 156, 160, 158, 156, 156, 170, 160, 160, 164, 157, 148, 164, 159, 151, 166, 158, 161, 167, 160, 150, 158, 154, 158, 165, 157, 164, 157, 158, 162, 175, 168, 149, 162, 160, 160, 163, 146, 165, 166, 156, 173, 157, 152, 159, 175, 158, 161, 156, 166, 163, 174, 160, 159, 162, 163, 157, 157, 151, 161, 172, 155, 164, 169, 152, 159, 164, 156, 159, 168, 155, 169, 159, 158, 163, 162, 153, 153, 162, 159, 164, 163, 165, 156, 157, 161, 153, 165, 159, 157, 160, 162, 163, 164, 176, 160, 162, 160, 156, 173, 152, 159, 161, 159, 164, 162, 165, 163, 158, 156, 155, 156, 152, 159, 166, 161, 156, 172, 157, 160, 165, 173, 167, 158, 163, 167, 160, 174, 157, 152, 155, 169, 158, 160, 150, 162, 171, 159, 167, 172, 155, 168, 170, 163, 161, 156, 153, 165, 154, 154, 162, 161, 167, 175, 154, 156, 159, 162, 156, 165, 160, 161, 160, 158, 158, 159, 153, 156, 163, 173, 164, 163, 159, 163, 153, 152, 159, 153, 154, 158, 156, 159, 153, 160, 163, 148, 176, 156, 168, 166, 160, 150, 166, 163, 161, 162, 155, 163, 152, 150, 160, 161, 161, 146, 160, 156, 161, 146, 166, 160, 158, 166, 160, 165, 161, 154, 151, 177, 166, 163, 163, 154, 154, 170, 155, 163, 167, 160, 160, 157, 154, 159, 165, 165, 154, 164, 168, 156, 156, 154, 158, 168, 166, 152, 155, 155, 155, 155, 161, 163, 160, 169, 166, 161, 154, 153, 155, 157, 159, 162, 152, 159, 162, 159, 141, 160, 155, 176, 166, 161, 154, 162, 165, 156, 163, 170, 155, 152, 159, 158, 158, 163, 157, 158, 157, 160, 156, 161, 171, 155, 156, 155, 159, 149, 152, 169, 161, 154, 162, 161, 154, 149, 152, 151, 157, 176, 167, 155, 165, 152, 177, 164, 162, 151, 153, 155, 161, 158, 164, 157, 158, 166, 149, 163, 160, 165, 160, 148, 156, 161, 155, 160, 157, 155, 153, 170, 159, 148, 154, 156, 156, 163, 166, 151, 172, 158, 156, 146, 157, 156, 155, 153, 166, 149, 155, 160, 157, 156, 158, 161, 164, 153, 165, 166, 160, 165, 163, 159, 159, 158, 165, 162, 160, 164, 156, 158, 160, 159, 159, 164, 150, 155, 161, 162, 161, 160, 150, 154, 160, 160, 156, 158, 156, 163, 155, 152, 167, 155, 162, 158, 158, 154, 158, 170, 154, 169, 156, 162, 165, 158, 161, 160, 150, 164, 160, 165, 148, 155, 150, 156, 162, 149, 162, 166, 166, 154, 158, 160, 154, 163, 170, 176, 161, 147, 157, 162, 172, 144, 155, 166, 153, 153, 164, 155, 160, 161, 161, 158, 158, 160, 165, 164, 163, 154, 157, 161, 152, 160, 164, 155, 162, 158, 160, 167, 154, 153, 161, 156, 159, 151, 157, 158, 160, 159, 165, 160, 155, 166, 153, 160, 154, 163, 150, 159, 155, 165, 162, 145, 162, 159, 166, 156, 158, 161, 157, 159, 175, 163, 153, 157, 161, 160, 152, 160, 155, 168, 164, 156, 155, 166, 160, 160, 146, 165, 167, 159, 147, 169, 164, 155, 166, 160, 165, 156, 160, 161, 158, 160, 143, 154, 159, 163, 163, 154, 154, 162, 160, 160, 162, 155, 163, 156, 163, 151, 167, 163, 173, 155, 152, 160, 156, 168, 158, 157, 161, 145, 172, 162, 163, 158, 156, 160, 155, 161, 150, 159, 166, 161, 165, 160, 151, 159, 169, 168, 156, 157, 157, 151, 162, 165, 161, 165, 164, 159, 137, 159, 152, 165, 156, 154, 158, 166, 160, 157, 163, 166, 159, 160, 159, 155, 154, 150, 144, 150, 160, 148, 163, 163, 156, 160, 159, 155, 165, 166, 155, 158, 151, 164, 159, 158, 165, 151, 160, 148, 156, 153, 159, 146, 152, 163, 155, 166, 163, 164, 169, 162, 157, 160, 161, 156, 157, 162, 158, 162, 167, 164, 138, 166, 163, 165, 158, 163, 158, 167, 161, 159, 168, 156, 164, 153, 159, 168, 157, 155, 152, 151, 165, 156, 162, 160, 149, 158, 159, 163, 163, 164, 156, 151, 155, 155, 165, 159, 156, 163, 159, 159, 166, 155, 156, 158, 160, 149, 156, 158, 154, 160, 168, 163, 169, 172, 165, 155, 158, 169, 147, 173, 148, 158, 158, 132, 159, 166, 168, 161, 154, 157, 167, 166, 157, 159, 156, 156, 162, 158, 171, 161, 160, 162, 156, 155, 175, 154, 169, 162, 158, 157, 151, 158, 154, 161, 170, 159, 150, 158, 170, 157, 155, 172, 156, 151, 152, 165, 157, 161, 154, 162, 158, 165, 156, 153, 160, 153, 154, 165, 165, 147, 155, 155, 157, 163, 162, 154, 162, 156, 155, 159, 171, 156, 151, 160, 162, 167, 166, 163, 176, 170, 161, 167, 158, 164, 155, 162, 156, 163, 153, 160, 176, 165, 155, 154, 163, 184, 157, 153, 166, 163, 158, 167, 160, 164, 157, 155, 172, 158, 157, 163, 160, 163, 153, 152, 167, 166, 168, 159, 157, 167, 161, 160, 155, 166, 168, 160, 159, 155, 156, 155, 171, 155, 148, 162, 153, 162, 169, 157, 158, 159, 162, 157, 163, 161, 161, 160, 155, 158, 150, 151, 154, 157, 157, 167, 163, 162, 161, 167, 154, 162, 159, 145, 156, 149, 160, 165, 161, 162, 159, 158, 164, 154, 157, 170, 156, 158, 163, 162, 154, 173, 163, 158, 159, 160, 155, 153, 162, 157, 158, 152, 154, 157, 172, 160, 160, 163, 160, 154, 150, 150, 162, 169, 157, 165, 166, 161, 156, 156, 161, 162, 164, 162, 161, 171, 158, 158, 164, 169, 154, 160, 165, 163, 154, 155, 170, 156, 169, 171, 157, 161, 172, 153, 160, 162, 165, 157, 153, 152, 160, 155, 157, 156, 164, 165, 167, 162, 139, 166, 170, 158, 158, 159, 152, 168, 157, 141, 159, 159, 153, 156, 166, 173, 157, 147, 158, 162, 172, 167, 157, 166, 170, 168, 164, 159, 165, 163, 157, 162, 154, 162, 159, 159, 154, 161, 169, 163, 167, 160, 158, 158, 154, 162, 162, 159, 158, 154, 160, 163, 159, 158, 161, 160, 173, 160, 155, 158, 153, 149, 159, 153, 164, 161, 168, 150, 159, 153, 168, 148, 150, 168, 161, 158, 149, 153, 156, 169, 165, 154, 152, 174, 154, 163, 156, 160, 162, 164, 162, 159, 164, 172, 167, 169, 162, 160, 166, 157, 165, 167, 157, 170, 155, 161, 164, 171, 166, 147, 161, 164, 161, 161, 154, 155, 156, 160, 159, 155, 157, 156, 158, 155, 156, 158, 159, 152, 164, 161, 154, 163, 168, 164, 165, 157, 160, 160, 160, 164, 163, 164, 171, 169, 160, 161, 159, 168, 167, 156, 166, 159, 155, 162, 156, 153, 162, 160, 157, 168, 168, 152, 155, 163, 165, 161, 171, 158, 155, 165, 157, 157, 166, 151, 165, 163, 156, 153, 163, 158, 154, 164, 147, 152, 176, 157, 157, 158, 152, 165, 161, 157, 158, 162, 161, 164, 165, 159, 160, 151, 159, 153, 163, 151, 158, 161, 158, 160, 150, 159, 159, 155, 152, 162, 162, 165, 159, 154, 161, 159, 162, 161, 153, 156, 166, 168, 164, 158, 154, 171, 159, 160, 169, 168, 154, 154, 158, 156, 162, 153, 154, 162, 161, 164, 159, 158, 160, 163, 152, 153, 156, 165, 161, 158, 160, 167, 154, 170, 162, 158, 152, 153, 159, 154, 150, 153, 158, 164, 154, 149, 156, 157, 156, 155, 160, 162, 166, 162, 165, 163, 162, 156, 163, 155, 162, 161, 175, 154, 160, 153, 173, 162, 157, 166, 160, 157, 161, 174, 157, 149, 159, 156, 161, 152, 162, 158, 161, 169, 168, 155, 161, 155, 162, 165, 157, 166, 164, 163, 168, 167, 158, 160, 155, 166, 162, 163, 152, 159, 162, 160, 175, 161, 161, 163, 166, 162, 155, 160, 161, 154, 166, 140, 154, 151, 171, 150, 150, 157, 168, 157, 152, 156, 160, 160, 169, 167, 155, 160, 162, 163, 160, 165, 164, 160, 146, 160, 157, 156, 168, 157, 161, 155, 160, 158, 163, 162, 145, 151, 154, 144, 156, 165, 155, 157, 154, 164, 162, 149, 160, 173, 158, 158, 160, 163, 154, 162, 163, 168, 160, 165, 161, 153, 157, 156, 159, 161, 159, 162, 157, 165, 162, 159, 157, 163, 156, 175, 161, 159, 160, 163, 160, 163, 162, 155, 162, 153, 165, 165, 151, 157, 158, 153, 158, 152, 168, 162, 157, 160, 165, 162, 158, 160, 158, 157, 161, 160, 156, 158, 149, 162, 167, 161, 160, 157, 163, 161, 156, 163, 159, 159, 167, 164, 156, 164, 145, 163, 177, 157, 158, 147, 163, 162, 169, 160, 157, 151, 160, 167, 158, 159, 154, 162, 154, 158, 154, 161, 158, 161, 162, 156, 170, 164, 161, 166, 161, 158, 163, 163, 151, 162, 158, 163, 163, 162, 160, 162, 164, 164, 149, 164, 166, 158, 162, 157, 155, 160, 153, 160, 166, 157, 156, 160, 156, 160, 171, 159, 160, 154, 158, 157, 160, 168, 160, 160, 151, 158, 164, 159, 162, 151, 166, 160, 161, 161, 158, 162, 159, 156, 160, 174, 165, 156, 155, 161, 156, 159, 164, 153, 166, 159, 157, 149, 155, 156, 154, 166, 161, 160, 156, 158, 154, 160, 154, 153, 156, 164, 162, 160, 143, 151, 167, 162, 162, 159, 168, 158, 162, 154, 159, 169, 171, 164, 159, 161, 165, 167, 153, 166, 158, 163, 162, 156, 159, 161, 154, 159, 157, 160, 166, 162, 173, 166, 179, 154, 162, 161, 163, 163, 155, 158, 154, 157, 164, 159, 158, 161, 153, 161, 158, 161, 176, 164, 154, 143, 151, 160, 151, 151, 156, 158, 159, 162, 172, 161, 158, 162, 163, 157, 163, 160, 161, 159, 157, 163, 160, 159, 164, 155, 173, 157, 172, 169, 164, 157, 157, 164, 174, 172, 159, 157, 160, 156, 165, 157, 163, 153, 170, 156, 150, 160, 171, 161, 166, 164, 159, 156, 163, 165, 168, 161, 156, 163, 154, 159, 158, 159, 169, 161, 165, 162, 161, 157, 158, 159, 155, 158, 158, 170, 159, 163, 152, 152, 159, 161, 159, 159, 161, 160, 173, 158, 160, 166, 164, 158, 160, 157, 166, 161, 156, 168, 160, 159, 155, 164, 161, 167, 161, 164, 167, 156, 159, 164, 162, 154, 157, 159, 156, 151, 164, 162, 153, 163, 161, 162, 156, 153, 157, 167, 164, 164, 171, 173, 146, 158, 155, 167, 157, 149, 172, 161, 164, 159, 157, 162, 158, 157, 162, 163, 171, 155, 160, 162, 158, 157, 162, 160, 157, 167, 164, 163, 163, 150, 156, 158, 156, 149, 160, 157, 151, 157, 159, 161, 153, 173, 173, 161, 159, 166, 160, 157, 162, 155, 164, 151, 156, 163, 156, 165, 146, 161, 159, 155, 152, 162, 161, 159, 156, 158, 159, 159, 164, 164, 167, 164, 162, 151, 162, 159, 160, 153, 145, 158, 161, 158, 163, 165, 154, 164, 157, 163, 161, 168, 152, 158, 164, 162, 162, 163, 159, 161, 154, 163, 156, 159, 157, 163, 159, 164, 159, 166, 154, 161, 140, 163, 159, 163, 158, 158, 165, 160, 166, 153, 156, 162, 163, 163, 156, 160, 160, 166, 160, 163, 164, 162, 160, 163, 162, 165, 163, 172, 160, 167, 157, 156, 150, 151, 159, 165, 165, 161, 154, 161, 161, 161, 160, 163, 160, 165, 153, 158, 165, 158, 166, 152, 157, 166, 157, 158, 163, 155, 161, 164, 155, 162, 152, 165, 162, 157, 157, 159, 159, 154, 163, 162, 167, 159, 162, 167, 160, 160, 161, 162, 164, 162, 157, 164, 162, 160, 160, 159, 167, 161, 160, 168, 165, 164, 155, 163, 167, 161, 160, 164, 168, 160, 155, 169, 160, 156, 161, 160, 164, 167, 166, 164, 165, 158, 164, 164, 157, 148, 164, 158, 160, 151, 155, 157, 163, 162, 158, 160, 152, 160, 158, 156, 163, 156, 166, 151, 163, 163, 160, 168, 166, 148, 164, 155, 160, 157, 150, 156, 165, 165, 156, 156, 149, 161, 156, 157, 160, 159, 161, 148, 157, 164, 163, 165, 160, 168, 155, 161, 154, 159, 166, 155, 171, 156, 155, 159, 166, 157, 164, 159, 171, 160, 163, 170, 166, 163, 165, 155, 157, 173, 159, 166, 163, 161, 162, 162, 165, 165, 167, 157, 159, 164, 165, 159, 156, 162, 171, 165, 162, 157, 166, 156, 156, 158, 156, 155, 161, 170, 166, 153, 169, 161, 162, 164, 156, 163, 161, 157, 160, 162, 169, 158, 162, 153, 164, 160, 164, 165, 163, 152, 162, 166, 164, 159, 155, 165, 160, 170, 154, 162, 160, 156, 161, 176, 158, 164, 159, 162, 166, 166, 166, 154, 162, 165, 153, 163, 164, 150, 163, 166, 161, 161, 163, 163, 155, 159, 154, 156, 159, 162, 161, 154, 163, 150, 170, 157, 165, 161, 162, 162, 167, 169, 169, 157, 158, 156, 161, 165, 158, 169, 168, 164, 163, 158, 162, 156, 164, 151, 174, 154, 163, 162, 166, 153, 150, 159, 156, 152, 162, 161, 159, 164, 164, 166, 158, 160, 161, 156, 154, 162, 164, 165, 160, 158, 154, 160, 158, 157, 154, 161, 159, 154, 155, 169, 153, 162, 169, 162, 161, 171, 160, 165, 155, 153, 168, 164, 153, 156, 155, 167, 160, 168, 160, 164, 168, 163, 160, 163, 164, 171, 154, 162, 168, 164, 163, 157, 157, 158, 165, 163, 157, 166, 169, 159, 161, 164, 159, 153, 155, 161, 159, 159, 167, 165, 153, 161, 170, 162, 166, 159, 153, 167, 160, 157, 164, 159, 159, 167, 166, 162, 173, 163, 160, 162, 164, 168, 159, 151, 165, 165, 170, 158, 162, 174, 165, 159, 161, 155, 159, 165, 166, 162, 156, 164, 163, 161, 153, 155, 161, 170, 156, 164, 159, 155, 155, 153, 156, 164, 152, 160, 151, 162, 160, 158, 152, 151, 165, 158, 159, 159, 168, 173, 166, 155, 164, 159, 153, 155, 169, 163, 158, 157, 160, 166, 158, 168, 158, 155, 165, 163, 165, 166, 165, 163, 161, 162, 158, 158, 162, 159, 157, 159, 167, 156, 161, 162, 161, 166, 162, 160, 155, 161, 164, 159, 158, 158, 166, 157, 164, 154, 157, 156, 163, 161, 163, 161, 157, 159, 160, 159, 149, 163, 163, 161, 163, 158, 158, 157, 160, 161, 163, 164, 155, 146, 157, 160, 166, 162, 164, 158, 164, 164, 157, 155, 160, 159, 162, 161, 161, 160, 161, 158, 157, 154, 160, 159, 158, 159, 173, 143, 159, 160, 158, 152, 158, 146, 157, 156, 158, 157, 160, 163, 159, 160, 158, 160, 159, 167, 161, 161, 151, 165, 157, 154, 158, 152, 157, 160, 163, 159, 160, 155, 163, 153, 159, 160, 161, 156, 159, 161, 164, 156, 154, 159, 160, 158, 159, 160, 159, 161, 157, 160, 158, 161, 162, 160, 151, 159, 158, 159, 159, 169, 176, 162, 149, 163, 162, 156, 161, 157, 156, 161, 157, 151, 157, 158, 160, 161, 156, 163, 162, 157, 161, 171, 161, 162, 159, 160, 156, 161, 159, 163, 163, 161, 160, 157, 159, 162, 159, 161, 165, 159, 160, 159, 159, 159, 164, 162, 165, 160, 158, 161, 160, 155, 165, 161, 159, 155, 161, 161, 158, 160, 156, 160, 163, 158, 171, 161, 162, 158, 157, 147, 162, 160, 160, 158, 159, 157, 160, 161, 162, 165, 162, 159, 161, 158, 161, 157, 160, 162, 163, 163, 164, 162, 160, 160, 166, 163, 158, 164, 157, 159, 155, 162, 158, 161, 156, 162, 161, 160, 163, 161, 154, 159, 162, 160, 160, 157, 160, 157, 160, 167, 174, 162, 165, 161, 155, 165, 163, 161, 158, 156, 162, 159, 141, 161, 160, 163, 160, 157, 156, 161, 151, 166, 158, 159, 165, 160, 164, 147, 161, 158, 168, 157, 163, 157, 158, 160, 162, 164, 156, 164, 167, 160, 158, 160, 159, 161, 161, 159, 154, 158, 162, 161, 161, 160, 162, 160, 160, 161, 158, 162, 156, 160, 158, 159, 166, 158, 159, 162, 161, 159, 161, 160, 161, 159, 159, 163, 156, 158, 155, 162, 160, 161, 162, 162, 159, 158, 157, 153, 157, 170, 156, 154, 164, 179, 160, 161, 157, 162, 163, 159, 148, 185, 162, 157, 158, 162, 163, 153, 159, 161, 166, 159, 159, 163, 160, 156, 157, 159, 163, 164, 165, 143, 158, 161, 162, 164, 161, 159, 163, 158, 148, 161, 162, 156, 157, 160, 162, 156, 159, 159, 159, 162, 155, 157, 169, 155, 164, 162, 158, 156, 162, 159, 164, 163, 159, 158, 161, 163, 159, 161, 162, 160, 163, 160, 162, 158, 161, 161, 162, 161, 162, 155, 155, 162, 174, 162, 160, 164, 160, 158, 160, 161, 163, 163, 160, 161, 162, 159, 162, 149, 160, 164, 159, 161, 162, 160, 160, 160, 166, 159, 163, 165, 157, 157, 161, 163, 168, 158, 161, 160, 165, 163, 161, 162, 165, 161, 161, 175, 161, 161, 162, 163, 160, 160, 162, 164, 163, 163, 160, 159, 156, 158, 159, 158, 158, 160, 159, 156, 158, 163, 155, 160, 160, 162, 155, 153, 158, 159, 159, 176, 155, 160, 153, 158, 163, 169, 156, 160, 170, 156, 159, 161, 163, 160, 159, 158, 152, 163, 155, 162, 168, 154, 164, 156, 164, 166, 164, 153, 156, 152, 167, 155, 172, 150, 159, 172, 167, 155, 159, 159, 149, 161, 164, 168, 155, 167, 150, 157, 152, 156, 162, 163, 160, 155, 160, 157, 158, 153, 159, 168, 154, 160, 152, 161, 148, 160, 160, 160, 165, 164, 168, 160, 149, 154, 149, 160, 156, 151, 165, 155, 158, 151, 158, 153, 163, 160, 167, 161, 157, 165, 154, 162, 165, 158, 152, 168, 154, 163, 161, 161, 163, 162, 160, 161, 165, 147, 169, 150, 165, 160, 161, 169, 154, 151, 159, 165, 163, 160, 145, 158, 162, 164, 151, 155, 160, 159, 156, 160, 163, 164, 152, 164, 166, 153, 163, 154, 163, 162, 154, 153, 166, 156, 165, 161, 160, 153, 166, 153, 154, 176, 154, 164, 167, 158, 170, 165, 153, 159, 159, 156, 165, 168, 155, 161, 156, 161, 155, 164, 157, 159, 157, 157, 166, 169, 156, 165, 160, 158, 167, 161, 154, 153, 163, 160, 158, 161, 165, 147, 151, 162, 164, 157, 158, 157, 169, 161, 167, 158, 162, 159, 154, 161, 164, 165, 164, 138, 162, 160, 151, 166, 157, 159, 159, 158, 157, 160, 160, 165, 163, 156, 157, 154, 166, 161, 156, 168, 161, 158, 160, 162, 163, 162, 162, 152, 161, 159, 160, 157, 164, 155, 152, 156, 155, 160, 163, 156, 166, 138, 149, 156, 159, 168, 170, 166, 160, 148, 152, 155, 159, 165, 165, 154, 169, 160, 156, 162, 158, 171, 157, 157, 153, 155, 161, 150, 165, 167, 159, 154, 164, 156, 162, 158, 172, 145, 153, 164, 162, 165, 157, 163, 168, 160, 153, 149, 158, 152, 173, 159, 160, 166, 155, 155, 155, 161, 160, 168, 154, 159, 154, 150, 158, 152, 161, 141, 158, 162, 159, 161, 163, 157, 159, 175, 162, 171, 159, 147, 157, 150, 158, 161, 154, 161, 163, 156, 152, 143, 158, 165, 165, 159, 167, 161, 156, 160, 161, 154, 163, 156, 155, 165, 171, 156, 169, 152, 166, 157, 163, 164, 154, 155, 155, 155, 160, 158, 154, 174, 154, 154, 166, 161, 156, 152, 159, 171, 157, 156, 163, 157, 162, 160, 156, 161, 160, 162, 160, 154, 157, 158, 159, 169, 152, 158, 160, 165, 160, 144, 162, 157, 155, 148, 159, 159, 158, 150, 155, 164, 156, 145, 160, 159, 163, 160, 162, 158, 166, 151, 155, 156, 165, 166, 160, 155, 166, 159, 156, 159, 160, 163, 155, 166, 163, 155, 145, 162, 159, 156, 163, 159, 158, 152, 158, 158, 154, 165, 157, 168, 164, 158, 163, 157, 157, 160, 158, 160, 158, 159, 160, 166, 160, 169, 170, 157, 158, 167, 160, 158, 163, 162, 151, 161, 160, 157, 159, 166, 159, 165, 165, 164, 155, 164, 156, 161, 157, 160, 158, 161, 163, 161, 153, 163, 156, 170, 159, 159, 161, 157, 157, 165, 149, 163, 160, 176, 162, 161, 161, 158, 156, 159, 154, 151, 154, 160, 161, 154, 159, 161, 156, 159, 166, 162, 166, 160, 159, 157, 160, 154, 157, 149, 162, 155, 157, 167, 150, 157, 165, 157, 164, 155, 156, 167, 155, 159, 159, 163, 161, 155, 159, 169, 158, 157, 170, 159, 162, 159, 165, 159, 160, 166, 156, 163, 160, 161, 160, 161, 161, 162, 163, 165, 156, 157, 167, 160, 162, 153, 161, 156, 160, 167, 164, 153, 164, 157, 161, 159, 164, 153, 156, 160, 159, 161, 156, 163, 156, 155, 166, 158, 159, 157, 157, 154, 162, 164, 164, 155, 159, 163, 160, 160, 164, 162, 166, 161, 158, 164, 165, 155, 161, 158, 160, 166, 152, 157, 153, 154, 164, 159, 158, 161, 163, 162, 157, 161, 158, 156, 156, 154, 157, 163, 166, 160, 160, 157, 164, 158, 161, 158, 158, 160, 159, 162, 161, 165, 160, 162, 156, 154, 152, 155, 151, 158, 160, 164, 163, 156, 159, 163, 158, 161, 161, 164, 155, 161, 161, 158, 157, 167, 162, 171, 159, 160, 156, 159, 158, 161, 147, 159, 169, 161, 150, 159, 165, 154, 158, 165, 159, 164, 161, 157, 166, 162, 154, 162, 161, 162, 168, 158, 158, 159, 159, 158, 160, 159, 161, 161, 160, 157, 155, 161, 160, 164, 163, 162, 155, 154, 158, 161, 157, 166, 156, 155, 165, 163, 158, 159, 156, 155, 156, 158, 154, 160, 163, 164, 158, 161, 161, 156, 161, 164, 162, 157, 159, 160, 161, 157, 161, 162, 160, 165, 159, 160, 166, 156, 152, 157, 161, 161, 167, 158, 160, 152, 157, 158, 165, 164, 153, 159, 155, 162, 157, 158, 157, 166, 151, 158, 159, 152, 160, 163, 164, 158, 161, 157, 163, 157, 161, 157, 160, 157, 162, 162, 159, 160, 158, 160, 162, 159, 160, 156, 164, 163, 157, 163, 157, 159, 156, 157, 162, 155, 154, 160, 161, 163, 163, 155, 162, 163, 161, 157, 157, 167, 160, 164, 165, 160, 163, 152, 159, 159, 157, 158, 167, 157, 159, 159, 157, 160, 161, 167, 159, 164, 153, 166, 166, 161, 154, 162, 158, 157, 162, 158, 163, 160, 149, 164, 159, 159, 163, 162, 170, 167, 157, 162, 168, 152, 159, 158, 156, 160, 159, 161, 158, 156, 155, 164, 164, 159, 161, 158, 166, 149, 156, 161, 155, 163, 161, 160, 157, 161, 161, 165, 158, 152, 158, 160, 168, 161, 162, 158, 161, 161, 165, 162, 160, 158, 168, 157, 158, 158, 158, 161, 167, 163, 164, 163, 161, 160, 160, 162, 164, 172, 159, 167, 160, 159, 160, 161, 166, 160, 159, 153, 160, 161, 165, 161, 161, 160, 157, 159, 157, 166, 159, 158, 161, 162, 163, 154, 160, 159, 158, 167, 160, 162, 162, 166, 158, 160, 166, 157, 154, 156, 166, 170, 160, 161, 164, 155, 165, 157, 156, 155, 154, 160, 160, 159, 157, 165, 156, 158, 161, 164, 158, 156, 160, 156, 168, 159, 153, 162, 155, 158, 161, 161, 155, 151, 160, 157, 162, 157, 163, 159, 157, 157, 162, 167, 161, 156, 159, 160, 165, 155, 165, 164, 161, 162, 156, 158, 158, 156, 171, 161, 165, 156, 172, 152, 154, 163, 163, 160, 162, 150, 156, 160, 161, 159, 160, 159, 150, 153, 160, 157, 164, 159, 162, 158, 157, 160, 172, 163, 159, 162, 157, 159, 160, 151, 163, 159, 154, 164, 165, 161, 153, 158, 160, 157, 156, 161, 159, 158, 153, 162, 160, 157, 150, 160, 160, 157, 160, 163, 151, 168, 167, 153, 163, 164, 158, 154, 164, 163, 155, 154, 164, 157, 163, 165, 157, 158, 160, 163, 156, 162, 167, 166, 160, 158, 160, 158, 159, 160, 146, 166, 155, 158, 161, 158, 156, 156, 159, 162, 169, 151, 157, 159, 166, 164, 160, 152, 172, 162, 159, 159, 163, 164, 159, 159, 157, 157, 167, 169, 181, 170, 157, 160, 159, 160, 168, 165, 167, 173, 164, 158, 161, 170, 155, 145, 161, 160, 162, 158, 162, 158, 150, 153, 157, 153, 163, 156, 162, 157, 158, 155, 169, 167, 158, 160, 153, 157, 151, 153, 153, 159, 162, 159, 156, 162, 165, 153, 165, 163, 169, 146, 145, 159, 162, 152, 161, 169, 160, 170, 167, 144, 152, 161, 157, 160, 169, 166, 171, 170, 152, 159, 171, 153, 171, 148, 159, 164, 162, 161, 163, 161, 163, 167, 168, 167, 158, 161, 159, 159, 155, 161, 160, 168, 157, 153, 158, 157, 157, 158, 148, 165, 153, 167, 162, 158, 159, 161, 158, 157, 151, 157, 161, 166, 166, 161, 167, 162, 152, 155, 162, 165, 158, 161, 164, 165, 159, 165, 162, 162, 154, 152, 162, 152, 154, 162, 166, 155, 164, 158, 158, 172, 160, 160, 158, 159, 149, 160, 167, 163, 158, 162, 167, 159, 160, 161, 166, 148, 158, 152, 156, 156, 160, 154, 171, 160, 171, 154, 160, 162, 155, 156, 170, 151, 158, 159, 152, 155, 161, 163, 153, 156, 165, 156, 161, 149, 159, 155, 157, 157, 166, 159, 158, 154, 162, 159, 161, 161, 159, 158, 164, 158, 160, 164, 162, 159, 155, 164, 162, 163, 158, 163, 147, 169, 160, 148, 165, 155, 153, 152, 159, 165, 159, 161, 158, 157, 168, 160, 157, 158, 163, 161, 167, 162, 164, 167, 162, 166, 159, 166, 158, 163, 153, 154, 172, 157, 166, 154, 151, 159, 151, 161, 169, 163, 159, 163, 158, 155, 154, 162, 165, 160, 148, 162, 151, 151, 153, 162, 160, 150, 172, 160, 168, 152, 166, 162, 166, 151, 167, 156, 166, 161, 159, 154, 161, 159, 163, 163, 154, 165, 160, 158, 165, 159, 165, 165, 157, 163, 176, 154, 159, 169, 146, 161, 157, 160, 166, 162, 162, 168, 163, 167, 165, 164, 154, 156, 158, 154, 158, 151, 169, 159, 154, 157, 159, 162, 157, 162, 159, 162, 156, 165, 162, 161, 161, 165, 159, 149, 181, 160, 158, 161, 171, 163, 158, 156, 167, 155, 160, 151, 160, 158, 166, 166, 161, 156, 160, 155, 168, 160, 154, 162, 159, 152, 165, 150, 162, 158, 162, 164, 163, 155, 173, 151, 159, 158, 165, 161, 173, 154, 160, 170, 157, 161, 162, 171, 159, 160, 165, 153, 153, 160, 159, 163, 164, 155, 167, 159, 152, 159, 164, 168, 175, 167, 157, 153, 152, 168, 160, 149, 163, 165, 155, 164, 162, 161, 160, 160, 161, 161, 162, 166, 171, 166, 157, 157, 152, 164, 153, 155, 168, 165, 162, 161, 163, 151, 142, 148, 157, 155, 158, 156, 163, 162, 158, 157, 150, 157, 159, 170, 161, 160, 152, 163, 158, 150, 165, 168, 163, 152, 159, 159, 159, 164, 156, 159, 163, 155, 168, 162, 155, 162, 162, 159, 162, 155, 152, 163, 155, 154, 158, 162, 159, 170, 173, 167, 154, 146, 152, 164, 175, 154, 156, 159, 146, 162, 143, 159, 151, 161, 144, 164, 160, 160, 160, 166, 158, 163, 155, 160, 160, 161, 153, 150, 153, 153, 171, 154, 162, 160, 156, 156, 160, 169, 151, 165, 150, 156, 150, 163, 158, 160, 155, 152, 167, 158, 153, 151, 157, 155, 167, 167, 160, 163, 159, 158, 158, 158, 166, 155, 150, 157, 153, 157, 160, 157, 158, 160, 165, 146, 161, 170, 153, 157, 163, 160, 162, 149, 165, 157, 160, 166, 152, 161, 165, 154, 164, 171, 158, 151, 150, 159, 148, 158, 168, 161, 163, 148, 160, 163, 164, 166, 165, 153, 169, 166, 163, 161, 164, 153, 162, 157, 160, 156, 159, 168, 161, 160, 151, 162, 162, 152, 147, 163, 151, 162, 158, 162, 159, 152, 162, 158, 165, 157, 162, 162, 159, 157, 159, 157, 148, 164, 159, 159, 167, 177, 158, 160, 168, 152, 167, 159, 174, 161, 159, 150, 133, 160, 162, 157, 159, 166, 162, 170, 155, 151, 159, 155, 148, 157, 160, 159, 158, 169, 175, 159, 161, 160, 157, 163, 171, 161, 154, 164, 155, 169, 161, 160, 161, 161, 157, 153, 152, 156, 160, 159, 162, 162, 136, 165, 158, 160, 159, 146, 168, 162, 163, 155, 157, 153, 160, 154, 159, 175, 166, 163, 162, 171, 163, 158, 157, 159, 172, 157, 154, 167, 162, 160, 158, 149, 166, 156, 160, 156, 155, 156, 157, 162, 164, 166, 162, 156, 161, 156, 166, 154, 155, 164, 170, 145, 155, 158, 166, 163, 163, 161, 157, 162, 170, 164, 161, 157, 163, 161, 163, 159, 162, 170, 155, 162, 158, 169, 170, 173, 171, 157, 158, 162, 161, 154, 157, 167, 167, 162, 157, 172, 160, 164, 155, 164, 157, 160, 163, 164, 150, 162, 162, 149, 152, 152, 162, 160, 158, 168, 154, 148, 169, 165, 160, 158, 171, 160, 155, 163, 165, 162, 168, 161, 161, 164, 169, 157, 156, 152, 166, 158, 158, 156, 166, 154, 149, 150, 164, 157, 157, 165, 160, 153, 156, 158, 147, 165, 158, 157, 157, 153, 162, 154, 157, 161, 158, 171, 144, 164, 171, 162, 163, 164, 161, 159, 164, 162, 161, 157, 158, 157, 169, 159, 160, 156, 157, 155, 161, 149, 164, 159, 152, 159, 154, 155, 150, 166, 159, 149, 163, 163, 158, 166, 156, 153, 159, 156, 162, 159, 159, 168, 158, 162, 148, 162, 156, 158, 158, 148, 161, 165, 150, 156, 171, 165, 160, 164, 162, 160, 161, 160, 160, 159, 163, 152, 160, 154, 161, 160, 160, 167, 163, 165, 155, 157, 155, 155, 157, 159, 160, 156, 161, 159, 150, 161, 184, 160, 161, 158, 164, 167, 163, 161, 159, 159, 161, 164, 165, 158, 156, 161, 170, 157, 165, 172, 158, 156, 162, 160, 162, 163, 159, 151, 156, 163, 155, 159, 166, 148, 161, 154, 159, 163, 158, 160, 163, 161, 159, 153, 159, 159, 176, 161, 160, 158, 157, 182, 151, 160, 157, 163, 156, 163, 159, 150, 160, 162, 156, 158, 174, 166, 157, 172, 159, 151, 167, 164, 160, 160, 180, 159, 164, 168, 167, 163, 154, 154, 165, 158, 158, 156, 157, 164, 157, 158, 159, 159, 160, 161, 155, 159, 160, 157, 156, 157, 164, 156, 162, 173, 162, 159, 159, 160, 162, 148, 162, 157, 161, 166, 164, 161, 153, 156, 158, 161, 158, 154, 164, 162, 160, 170, 163, 160, 150, 168, 159, 158, 156, 159, 152, 168, 152, 166, 159, 159, 168, 163, 160, 161, 157, 160, 166, 159, 166, 158, 161, 162, 160, 156, 163, 158, 165, 162, 160, 161, 160, 158, 155, 159, 159, 159, 163, 157, 185, 151, 154, 157, 163, 162, 157, 156, 157, 154, 160, 167, 157, 156, 159, 159, 158, 155, 157, 159, 163, 164, 166, 161, 160, 153, 148, 156, 162, 160, 159, 140, 161, 160, 161, 162, 161, 160, 161, 162, 160, 161, 165, 161, 158, 158, 163, 155, 171, 161, 156, 172, 162, 180, 157, 162, 159, 162, 165, 156, 168, 165, 161, 160, 161, 160, 155, 153, 155, 169, 158, 162, 162, 170, 161, 154, 163, 164, 172, 155, 161, 164, 162, 166, 163, 158, 160, 146, 162, 161, 159, 164, 158, 162, 163, 159, 161, 159, 162, 154, 158, 168, 161, 158, 158, 163, 156, 160, 153, 162, 157, 161, 161, 163, 161, 160, 158, 163, 159, 160, 172, 161, 161, 163, 158, 151, 157, 152, 162, 158, 162, 159, 158, 174, 161, 161, 167, 156, 148, 157, 164, 154, 158, 162, 163, 158, 156, 162, 164, 157, 162, 170, 159, 163, 157, 159, 157, 160, 145, 159, 163, 169, 171, 159, 161, 155, 161, 162, 160, 162, 159, 156, 163, 163, 162, 168, 176, 145, 162, 148, 161, 161, 169, 148, 160, 157, 160, 158, 160, 158, 154, 167, 161, 155, 160, 158, 164, 167, 163, 168, 157, 155, 164, 153, 165, 156, 163, 164, 162, 155, 161, 155, 156, 196, 172, 160, 165, 171, 161, 157, 167, 150, 165, 168, 162, 162, 150, 162, 163, 157, 158, 161, 163, 161, 167, 160, 160, 162, 165, 156, 165, 162, 153, 163, 165, 167, 158, 163, 161, 163, 158, 167, 156, 162, 147, 160, 162, 151, 165, 157, 157, 167, 156, 148, 164, 160, 170, 155, 160, 160, 156, 153, 155, 148, 160, 156, 159, 161, 160, 160, 157, 160, 153, 161, 167, 154, 162, 158, 160, 167, 154, 158, 160, 157, 165, 152, 161, 157, 160, 159, 167, 158, 160, 158, 155, 162, 165, 166, 158, 158, 158, 156, 159, 157, 162, 160, 161, 160, 159, 156, 150, 161, 158, 159, 164, 158, 160, 151, 160, 163, 157, 148, 158, 155, 156, 165, 164, 155, 156, 164, 160, 164, 155, 163, 154, 154, 163, 171, 161, 171, 154, 157, 168, 154, 159, 166, 161, 157, 157, 166, 166, 158, 162, 163, 163, 159, 153, 159, 172, 158, 154, 155, 167, 157, 165, 154, 156, 164, 152, 152, 158, 160, 159, 170, 150, 170, 166, 157, 162, 155, 160, 164, 155, 156, 159, 155, 158, 153, 160, 161, 162, 159, 166, 158, 155, 157, 160, 163, 155, 165, 166, 157, 151, 157, 167, 167, 164, 163, 160, 156, 157, 157, 164, 164, 158, 160, 160, 154, 164, 161, 154, 167, 159, 153, 161, 157, 158, 164, 151, 165, 160, 159, 163, 166, 161, 152, 163, 162, 161, 160, 156, 159, 154, 151, 157, 155, 171, 168, 156, 145, 155, 160, 157, 168, 152, 161, 167, 159, 162, 173, 159, 167, 161, 160, 150, 150, 158, 157, 161, 168, 159, 162, 162, 163, 159, 152, 168, 156, 158, 154, 165, 152, 158, 158, 160, 153, 166, 157, 157, 152, 172, 146, 159, 168, 161, 160, 166, 159, 163, 158, 157, 149, 161, 160, 160, 158, 147, 165, 159, 151, 160, 157, 162, 165, 156, 159, 157, 162, 168, 174, 162, 156, 164, 152, 153, 160, 167, 168, 157, 164, 148, 162, 158, 163, 157, 154, 158, 158, 150, 158, 166, 161, 162, 154, 150, 165, 165, 164, 163, 156, 157, 159, 150, 151, 163, 156, 164, 158, 155, 153, 156, 156, 155, 162, 160, 165, 157, 161, 163, 157, 166, 150, 154, 154, 160, 159, 159, 163, 160, 164, 149, 161, 161, 158, 147, 157, 157, 155, 161, 164, 159, 156, 156, 161, 156, 159, 158, 143, 165, 154, 158, 156, 161, 163, 154, 152, 158, 156, 153, 160, 159, 152, 163, 169, 164, 157, 161, 160, 159, 160, 166, 162, 160, 153, 160, 153, 158, 158, 162, 157, 158, 154, 158, 153, 164, 164, 153, 163, 158, 153, 157, 150, 160, 167, 156, 171, 178, 170, 152, 157, 169, 154, 165, 163, 155, 160, 146, 153, 164, 160, 155, 163, 167, 158, 162, 154, 165, 163, 155, 167, 161, 155, 156, 156, 162, 155, 162, 167, 159, 156, 158, 166, 158, 162, 161, 156, 160, 162, 158, 153, 170, 152, 164, 155, 148, 161, 161, 153, 158, 165, 162, 152, 154, 165, 158, 150, 165, 163, 154, 160, 160, 164, 161, 153, 170, 163, 163, 148, 157, 158, 165, 159, 160, 161, 166, 167, 159, 158, 154, 152, 153, 149, 152, 160, 157, 155, 153, 157, 158, 155, 158, 159, 160, 158, 158, 153, 151, 154, 145, 157, 159, 161, 163, 156, 160, 157, 159, 161, 153, 161, 161, 163, 161, 165, 166, 158, 163, 161, 156, 156, 157, 163, 151, 161, 159, 170, 152, 157, 158, 158, 169, 160, 160, 156, 154, 160, 159, 158, 158, 154, 151, 167, 166, 168, 154, 148, 155, 163, 161, 158, 155, 157, 158, 169, 157, 178, 158, 169, 160, 155, 163, 168, 167, 160, 149, 158, 159, 163, 164, 155, 162, 162, 158, 172, 157, 162, 166, 170, 159, 157, 166, 171, 162, 162, 152, 160, 166, 162, 161, 162, 160, 153, 168, 164, 155, 153, 158, 152, 147, 151, 160, 165, 158, 152, 155, 159, 155, 157, 159, 151, 155, 155, 162, 165, 162, 161, 164, 165, 159, 168, 160, 160, 162, 158, 171, 156, 161, 162, 158, 159, 156, 165, 154, 161, 163, 170, 166, 166, 162, 150, 158, 161, 172, 161, 149, 164, 168, 154, 152, 157, 169, 162, 154, 160, 147, 156, 164, 160, 166, 160, 157, 163, 161, 158, 161, 152, 164, 160, 152, 161, 163, 153, 161, 153, 151, 159, 168, 166, 158, 162, 158, 154, 158, 158, 159, 159, 165, 172, 164, 167, 156, 150, 159, 160, 161, 156, 156, 157, 164, 170, 159, 160, 168, 167, 161, 163, 163, 161, 159, 166, 157, 169, 155, 154, 162, 161, 160, 155, 170, 166, 173, 167, 148, 151, 157, 165, 160, 166, 156, 159, 164, 143, 165, 158, 162, 160, 148, 169, 161, 165, 155, 162, 159, 161, 159, 164, 160, 160, 155, 153, 163, 154, 152, 157, 158, 157, 165, 155, 156, 158, 154, 162, 160, 159, 157, 163, 156, 162, 154, 167, 165, 157, 161, 141, 150, 164, 153, 179, 158, 160, 170, 159, 158, 157, 162, 157, 158, 160, 160, 164, 165, 151, 152, 165, 163, 160, 154, 159, 156, 155, 169, 167, 169, 164, 164, 152, 155, 164, 151, 159, 159, 162, 166, 153, 158, 174, 156, 165, 163, 164, 159, 158, 164, 161, 156, 164, 171, 166, 155, 160, 160, 153, 156, 166, 160, 162, 157, 155, 162, 167, 159, 163, 158, 148, 161, 169, 160, 158, 152, 156, 159, 168, 150, 160, 156, 166, 160, 162, 158, 172, 154, 155, 158, 153, 171, 155, 151, 167, 156, 168, 154, 174, 155, 159, 159, 162, 161, 156, 161, 155, 153, 161, 150, 169, 162, 155, 162, 159, 165, 155, 156, 155, 162, 160, 160, 158, 158, 154, 154, 159, 164, 151, 162, 156, 154, 158, 159, 156, 152, 146, 158, 157, 158, 166, 162, 158, 153, 159, 165, 161, 166, 157, 162, 156, 156, 159, 161, 193, 159, 159, 162, 150, 163, 164, 160, 154, 156, 157, 155, 176, 146, 160, 150, 157, 156, 163, 166, 162, 165, 162, 157, 183, 157, 155, 160, 168, 155, 154, 153, 162, 155, 156, 170, 152, 152, 150, 169, 168, 159, 158, 163, 156, 163, 151, 171, 164, 149, 160, 163, 156, 163, 163, 156, 154, 162, 157, 151, 162, 164, 159, 162, 173, 161, 159, 160, 166, 167, 155, 168, 153, 160, 158, 168, 157, 168, 159, 153, 163, 153, 155, 161, 164, 161, 151, 174, 171, 150, 156, 167, 162, 153, 159, 149, 153, 161, 162, 159, 160, 156, 173, 161, 165, 162, 162, 157, 162, 148, 155, 171, 137, 154, 167, 157, 165, 152, 157, 158, 161, 162, 162, 158, 153, 169, 160, 154, 162, 150, 156, 157, 159, 165, 162, 157, 160, 156, 178, 162, 150, 156, 173, 153, 159, 160, 152, 158, 158, 163, 166, 157, 152, 172, 165, 163, 155, 154, 171, 154, 154, 161, 163, 163, 156, 157, 165, 156, 167, 157, 169, 152, 165, 155, 156, 169, 164, 161, 159, 165, 161, 162, 156, 164, 168, 158, 159, 162, 161, 157, 166, 156, 155, 157, 158, 146, 158, 164, 157, 163, 157, 159, 158, 158, 150, 146, 158, 160, 149, 163, 155, 156, 157, 159, 152, 158, 157, 157, 159, 155, 161, 164, 158, 160, 167, 151, 154, 168, 138, 155, 160, 164, 167, 159, 157, 166, 165, 153, 170, 167, 159, 165, 166, 160, 153, 159, 156, 161, 157, 162, 158, 161, 152, 163, 162, 159, 159, 161, 163, 157, 155, 163, 158, 155, 163, 158, 163, 157, 169, 161, 155, 162, 153, 157, 157, 152, 161, 163, 158, 157, 154, 160, 161, 171, 157, 160, 157, 170, 162, 161, 154, 162, 162, 155, 160, 159, 163, 174, 162, 159, 162, 153, 164, 162, 166, 163, 162, 166, 163, 156, 159, 159, 149, 164, 153, 156, 161, 153, 159, 159, 153, 150, 161, 162, 154, 160, 146, 169, 162, 154, 164, 164, 153, 164, 163, 159, 157, 149, 159, 152, 161, 147, 156, 158, 159, 161, 158, 158, 167, 165, 162, 145, 155, 159, 157, 166, 167, 160, 165, 156, 170, 161, 162, 161, 157, 161, 151, 158, 164, 171, 159, 168, 162, 155, 163, 157, 151, 163, 168, 153, 152, 149, 164, 163, 154, 166, 159, 157, 161, 160, 161, 164, 164, 155, 159, 162, 156, 153, 153, 160, 156, 163, 160, 152, 154, 156, 156, 158, 167, 170, 159, 155, 164, 166, 156, 159, 164, 166, 164, 161, 165, 165, 153, 154, 169, 158, 164, 165, 156, 153, 164, 158, 157, 159, 175, 162, 157, 166, 159, 165, 158, 159, 169, 157, 165, 155, 154, 157, 150, 162, 149, 179, 164, 160, 159, 166, 157, 156, 153, 151, 149, 163, 156, 158, 155, 155, 160, 155, 162, 164, 159, 155, 162, 159, 171, 155, 157, 160, 161, 161, 159, 154, 159, 159, 157, 157, 154, 156, 161, 156, 149, 176, 163, 146, 165, 154, 155, 150, 172, 164, 157, 163, 169, 155, 157, 160, 160, 156, 158, 163, 150, 155, 168, 153, 164, 154, 159, 158, 155, 175, 154, 166, 173, 158, 153, 162, 164, 167, 157, 160, 162, 150, 150, 159, 162, 159, 162, 159, 155, 156, 161, 160, 154, 159, 160, 157, 162, 158, 159, 158, 165, 181, 173, 155, 151, 162, 156, 154, 152, 155, 157, 156, 156, 155, 162, 179, 160, 154, 161, 150, 160, 160, 170, 164, 155, 156, 163, 154, 157, 150, 160, 157, 160, 180, 165, 158, 154, 160, 160, 153, 156, 151, 151, 161, 174, 161, 158, 160, 166, 149, 163, 170, 162, 167, 162, 160, 160, 162, 157, 160, 166, 171, 156, 161, 161, 156, 160, 166, 153, 156, 153, 158, 156, 155, 142, 156, 163, 157, 155, 156, 163, 162, 161, 156, 158, 155, 156, 157, 157, 151, 165, 159, 182, 163, 156, 156, 159, 165, 164, 157, 164, 155, 156, 158, 163, 160, 163, 154, 159, 153, 161, 156, 156, 150, 146, 167, 158, 157, 151, 156, 169, 157, 162, 160, 169, 165, 169, 147, 157, 153, 152, 158, 157, 161, 166, 152, 159, 159, 161, 154, 158, 159, 161, 157, 156, 158, 161, 167, 169, 162, 155, 152, 160, 157, 159, 155, 159, 153, 162, 158, 155, 163, 165, 163, 156, 165, 163, 162, 165, 171, 160, 163, 150, 177, 156, 155, 158, 161, 155, 164, 160, 167, 157, 162, 165, 158, 165, 161, 168, 163, 154, 170, 164, 154, 160, 163, 155, 163, 156, 162, 165, 161, 175, 159, 159, 164, 164, 163, 162, 158, 178, 157, 155, 151, 159, 157, 160, 160, 166, 180, 162, 159, 164, 161, 166, 160, 159, 158, 162, 154, 153, 158, 177, 159, 160, 160, 159, 165, 164, 163, 160, 165, 152, 150, 155, 166, 159, 148, 163, 150, 160, 165, 155, 166, 157, 154, 168, 147, 157, 159, 158, 160, 172, 160, 156, 167, 158, 166, 160, 161, 157, 167, 164, 164, 164, 153, 157, 159, 153, 162, 163, 159, 166, 170, 162, 162, 157, 159, 163, 152, 161, 172, 163, 155, 158, 154, 161, 158, 156, 170, 159, 168, 166, 165, 161, 157, 158, 160, 154, 147, 161, 160, 161, 156, 161, 165, 171, 175, 169, 170, 159, 157, 165, 161, 153, 164, 158, 160, 156, 158, 173, 158, 156, 157, 159, 165, 160, 159, 153, 167, 161, 154, 168, 155, 158, 150, 169, 163, 174, 163, 157, 163, 154, 164, 157, 157, 156, 160, 156, 149, 148, 162, 162, 166, 166, 163, 163, 153, 160, 171, 171, 161, 161, 158, 163, 158, 157, 166, 168, 160, 153, 168, 157, 160, 155, 155, 163, 156, 160, 157, 155, 163, 154, 155, 162, 145, 154, 161, 162, 163, 157, 162, 158, 163, 157, 163, 155, 163, 160, 161, 156, 151, 157, 164, 154, 174, 171, 165, 159, 167, 160, 156, 154, 159, 164, 161, 161, 158, 158, 157, 156, 159, 154, 157, 164, 156, 160, 153, 157, 151, 160, 155, 164, 165, 161, 157, 155, 159, 166, 155, 160, 154, 161, 166, 155, 150, 155, 151, 168, 164, 156, 151, 153, 161, 159, 164, 153, 157, 156, 158, 162, 156, 160, 156, 160, 177, 157, 160, 159, 169, 160, 157, 154, 157, 158, 141, 164, 159, 158, 164, 162, 152, 157, 161, 160, 159, 169, 155, 155, 156, 158, 158, 151, 156, 158, 155, 159, 165, 157, 154, 158, 162, 151, 156, 163, 158, 158, 172, 180, 161, 171, 157, 160, 164, 159, 161, 166, 164, 157, 164, 162, 160, 162, 161, 162, 159, 154, 167, 161, 153, 168, 158, 157, 156, 166, 163, 148, 172, 159, 163, 155, 158, 163, 162, 156, 161, 164, 154, 160, 165, 156, 169, 156, 157, 153, 152, 159, 161, 168, 150, 155, 156, 153, 153, 157, 161, 186, 161, 164, 159, 170, 161, 165, 161, 159, 159, 157, 160, 162, 157, 160, 160, 166, 155, 159, 162, 158, 160, 157, 168, 161, 165, 156, 156, 158, 160, 162, 167, 161, 162, 166, 162, 146, 151, 161, 152, 166, 158, 158, 175, 151, 162, 156, 158, 157, 176, 156, 158, 180, 167, 162, 155, 158, 162, 154, 166, 152, 161, 157, 158, 180, 154, 163, 156, 154, 162, 161, 154, 163, 159, 167, 160, 156, 155, 163, 172, 161, 164, 159, 154, 149, 164, 167, 145, 168, 165, 166, 163, 160, 162, 158, 157, 153, 158, 157, 154, 156, 155, 162, 164, 159, 161, 167, 166, 164, 163, 161, 155, 167, 160, 169, 150, 156, 158, 165, 162, 158, 158, 166, 155, 160, 159, 163, 163, 166, 168, 170, 146, 163, 171, 160, 165, 173, 158, 153, 165, 153, 162, 173, 168, 153, 159, 160, 156, 156, 156, 143, 158, 156, 158, 168, 163, 158, 170, 166, 150, 159, 165, 159, 166, 161, 163, 163, 157, 165, 162, 159, 157, 168, 155, 154, 151, 167, 161, 175, 155, 155, 159, 152, 158, 162, 161, 167, 162, 172, 156, 157, 163, 159, 161, 157, 161, 159, 154, 163, 163, 152, 148, 159, 161, 173, 155, 174, 159, 165, 166, 157, 159, 159, 158, 156, 169, 167, 160, 164, 157, 159, 166, 158, 162, 157, 161, 156, 163, 149, 159, 173, 159, 152, 153, 150, 153, 158, 157, 153, 166, 162, 162, 160, 155, 154, 168, 155, 162, 165, 170, 168, 150, 165, 150, 148, 160, 172, 166, 159, 160, 158, 163, 159, 164, 160, 179, 163, 162, 154, 161, 162, 166, 164, 165, 159, 153, 153, 162, 148, 157, 162, 158, 163, 161, 158, 162, 165, 168, 159, 162, 151, 162, 152, 196, 168, 158, 163, 160, 150, 165, 170, 160, 163, 166, 166, 163, 153, 174, 162, 159, 161, 162, 159, 156, 167, 158, 160, 150, 148, 154, 159, 155, 158, 160, 151, 157, 164, 163, 156, 150, 162, 161, 158, 160, 156, 160, 142, 170, 162, 156, 137, 164, 154, 165, 162, 169, 160, 160, 153, 166, 154, 162, 161, 157, 158, 151, 164, 158, 160, 156, 166, 154, 172, 159, 161, 156, 160, 149, 166, 157, 160, 161, 146, 161, 161, 159, 161, 167, 159, 159, 160, 151, 157, 155, 164, 163, 159, 162, 160, 156, 161, 155, 154, 160, 168, 170, 155, 159, 160, 159, 158, 160, 161, 160, 160, 155, 148, 159, 146, 164, 144, 167, 162, 164, 162, 162, 161, 155, 160, 164, 166, 165, 152, 152, 155, 178, 149, 165, 196, 165, 155, 159, 160, 182, 176, 159, 150, 166, 167, 156, 158, 162, 157, 163, 151, 171, 152, 158, 154, 162, 163, 151, 159, 160, 165, 163, 167, 167, 159, 161, 164, 148, 155, 164, 157, 164, 152, 163, 163, 172, 158, 150, 159, 154, 170, 162, 156, 158, 136, 159, 158, 157, 148, 166, 151, 155, 159, 166, 157, 160, 140, 169, 162, 160, 165, 161, 162, 168, 173, 156, 156, 164, 167, 164, 162, 159, 160, 166, 167, 166, 175, 152, 163, 146, 149, 160, 162, 163, 166, 156, 159, 156, 157, 154, 159, 159, 177, 165, 157, 156, 160, 167, 161, 148, 153, 163, 159, 155, 163, 159, 159, 158, 167, 158, 167, 148, 157, 152, 158, 159, 165, 159, 172, 161, 156, 157, 162, 156, 163, 163, 164, 158, 171, 157, 164, 169, 167, 153, 165, 156, 153, 162, 168, 166, 158, 162, 161, 154, 154, 162, 170, 160, 159, 168, 155, 156, 158, 158, 163, 158, 151, 155, 168, 157, 169, 148, 170, 157, 149, 135, 157, 166, 152, 161, 155, 158, 167, 161, 185, 155, 160, 159, 164, 157, 164, 176, 166, 169, 160, 166, 156, 170, 160, 166, 166, 149, 164, 156, 164, 153, 170, 156, 169, 163, 152, 155, 170, 162, 167, 150, 160, 157, 156, 164, 150, 162, 163, 159, 160, 180, 168, 161, 165, 152, 161, 156, 151, 155, 162, 153, 155, 156, 156, 160, 161, 160, 165, 164, 163, 157, 160, 157, 162, 155, 157, 160, 164, 160, 161, 152, 163, 139, 167, 157, 168, 151, 151, 162, 161, 162, 160, 163, 158, 157, 163, 154, 158, 164, 167, 155, 158, 167, 148, 165, 155, 170, 159, 158, 152, 158, 173, 160, 177, 164, 152, 161, 157, 158, 157, 164, 158, 153, 159, 165, 157, 159, 156, 152, 157, 153, 161, 158, 156, 160, 161, 168, 158, 166, 162, 162, 155, 163, 165, 158, 160, 173, 166, 172, 172, 157, 160, 153, 163, 166, 168, 159, 158, 162, 153, 163, 166, 155, 158, 152, 155, 157, 156, 166, 166, 167, 155, 154, 169, 159, 158, 161, 171, 162, 161, 153, 158, 151, 169, 162, 157, 165, 156, 150, 154, 155, 155, 177, 165, 170, 169, 158, 161, 168, 157, 162, 152, 161, 174, 174, 165, 163, 162, 160, 163, 149, 168, 159, 156, 159, 173, 157, 165, 153, 157, 156, 150, 156, 157, 159, 156, 168, 161, 149, 144, 154, 168, 159, 167, 155, 158, 162, 164, 153, 156, 153, 149, 155, 154, 162, 149, 154, 172, 162, 158, 155, 159, 163, 167, 166, 145, 163, 172, 154, 151, 156, 158, 170, 159, 160, 157, 149, 156, 157, 154, 154, 160, 166, 158, 156, 155, 156, 168, 179, 162, 163, 163, 158, 153, 161, 166, 155, 170, 155, 162, 161, 153, 155, 171, 159, 155, 155, 151, 160, 153, 157, 164, 151, 167, 161, 155, 162, 163, 173, 161, 153, 154, 158, 167, 164, 156, 158, 164, 170, 155, 154, 155, 148, 176, 169, 164, 158, 150, 152, 152, 163, 156, 169, 165, 169, 179, 149, 161, 161, 159, 165, 159, 160, 156, 145, 157, 161, 161, 147, 170, 166, 160, 154, 159, 156, 164, 158, 162, 153, 157, 156, 156, 159, 152, 154, 170, 150, 157, 162, 175, 159, 170, 148, 160, 166, 155, 153, 158, 162, 167, 155, 160, 163, 168, 162, 151, 153, 157, 163, 161, 166, 159, 150, 156, 162, 161, 158, 160, 157, 149, 160, 165, 163, 157, 165, 169, 149, 155, 142, 150, 164, 163, 148, 165, 170, 171, 152, 159, 157, 164, 152, 151, 159, 161, 161, 179, 166, 156, 162, 148, 153, 164, 140, 156, 166, 159, 160, 156, 164, 148, 162, 162, 156, 160, 157, 162, 159, 160, 153, 146, 161, 161, 151, 155, 154, 155, 170, 157, 164, 150, 154, 166, 157, 173, 158, 171, 168, 152, 160, 163, 168, 160, 149, 153, 159, 150, 155, 163, 156, 164, 158, 169, 166, 156, 167, 159, 156, 161, 158, 159, 149, 163, 156, 153, 157, 155, 164, 152, 156, 163, 158, 156, 159, 158, 159, 128, 151, 163, 163, 165, 150, 165, 168, 162, 118, 164, 160, 162, 154, 160, 162, 162, 169, 163, 158, 160, 157, 158, 164, 162, 203, 160, 157, 167, 167, 159, 161, 151, 160, 158, 159, 158, 154, 164, 157, 159, 163, 157, 155, 157, 155, 161, 178, 165, 160, 168, 162, 161, 162, 166, 152, 155, 161, 162, 159, 165, 160, 160, 166, 168, 159, 162, 153, 163, 164, 157, 175, 145, 161, 156, 147, 158, 160, 157, 161, 158, 161, 154, 162, 159, 166, 159, 155, 160, 152, 162, 153, 156, 163, 158, 162, 163, 157, 161, 160, 159, 158, 160, 149, 158, 147, 165, 159, 164, 161, 164, 111, 158, 116, 171, 155, 151, 165, 161, 156, 164, 159, 162, 166, 167, 157, 162, 164, 164, 162, 153, 157, 159, 159, 162, 163, 161, 157, 169, 159, 155, 158, 157, 161, 160, 166, 163, 166, 156, 158, 153, 164, 159, 165, 158, 156, 158, 161, 154, 145, 158, 162, 156, 156, 151, 157, 156, 166, 160, 161, 156, 159, 162, 158, 164, 162, 158, 158, 157, 175, 143, 158, 160, 155, 161, 162, 175, 158, 159, 162, 160, 165, 157, 162, 159, 158, 161, 152, 160, 161, 156, 153, 193, 159, 159, 158, 138, 158, 158, 160, 160, 125, 165, 159, 159, 167, 158, 162, 159, 160, 164, 159, 137, 166, 162, 174, 168, 162, 161, 158, 164, 155, 161, 166, 156, 163, 162, 163, 159, 153, 161, 159, 160, 160, 156, 156, 155, 157, 161, 155, 161, 148, 160, 162, 159, 162, 154, 159, 132, 156, 162, 190, 161, 152, 158, 154, 166, 158, 157, 162, 160, 186, 163, 160, 160, 156, 149, 158, 151, 158, 165, 162, 155, 159, 157, 161, 157, 163, 160, 160, 168, 160, 162, 161, 160, 154, 150, 161, 164, 168, 159, 161, 151, 162, 164, 159, 157, 125, 161, 176, 155, 164, 158, 145, 158, 166, 157, 155, 161, 151, 164, 165, 136, 156, 155, 161, 159, 160, 161, 162, 157, 201, 163, 156, 153, 153, 161, 160, 154, 158, 157, 153, 161, 165, 155, 157, 166, 159, 152, 160, 167, 159, 165, 157, 156, 161, 157, 160, 157, 156, 161, 153, 157, 159, 158, 164, 164, 163, 149, 151, 166, 155, 159, 163, 164, 170, 177, 164, 161, 168, 161, 158, 158, 160, 156, 147, 163, 160, 162, 165, 162, 162, 162, 163, 162, 156, 164, 160, 161, 160, 166, 155, 162, 171, 157, 175, 166, 153, 164, 162, 163, 161, 158, 157, 163, 158, 165, 166, 163, 160, 159, 162, 159, 158, 162, 168, 158, 156, 163, 159, 160, 161, 194, 160, 151, 144, 165, 153, 159, 154, 161, 158, 163, 166, 161, 146, 157, 159, 159, 161, 147, 166, 162, 157, 156, 162, 158, 164, 163, 144, 161, 160, 155, 160, 164, 164, 160, 165, 156, 157, 159, 164, 163, 156, 165, 164, 147, 162, 161, 164, 159, 206, 151, 158, 158, 163, 156, 150, 150, 155, 159, 159, 165, 158, 159, 160, 163, 156, 165, 158, 162, 158, 160, 162, 161, 161, 153, 162, 155, 152, 153, 158, 162, 157, 162, 164, 164, 161, 163, 161, 161, 163, 167, 151, 157, 157, 158, 161, 159, 161, 149, 158, 163, 159, 161, 162, 153, 161, 158, 160, 164, 158, 157, 157, 164, 161, 156, 166, 164, 162, 157, 153, 159, 161, 160, 171, 155, 163, 156, 156, 162, 160, 165, 165, 155, 169, 160, 161, 162, 154, 162, 150, 158, 159, 150, 160, 166, 167, 148, 160, 157, 156, 165, 158, 163, 154, 162, 158, 167, 146, 157, 155, 153, 164, 154, 158, 163, 166, 162, 161, 160, 155, 163, 167, 167, 161, 166, 175, 155, 157, 156, 169, 157, 160, 161, 155, 156, 164, 158, 160, 167, 174, 157, 159, 156, 162, 156, 154, 161, 155, 154, 159, 159, 160, 159, 167, 161, 159, 179, 168, 167, 159, 164, 151, 156, 157, 156, 152, 156, 159, 167, 159, 160, 166, 157, 160, 172, 159, 161, 159, 159, 153, 165, 157, 153, 166, 162, 160, 177, 155, 161, 165, 158, 163, 154, 153, 161, 162, 156, 149, 165, 158, 161, 155, 161, 161, 163, 162, 174, 159, 158, 153, 162, 159, 161, 158, 160, 152, 156, 161, 164, 165, 162, 157, 159, 158, 158, 157, 157, 152, 163, 160, 161, 160, 162, 160, 160, 156, 157, 160, 174, 158, 157, 160, 166, 155, 160, 153, 154, 158, 165, 158, 161, 163, 165, 160, 161, 158, 164, 153, 162, 157, 155, 158, 160, 156, 164, 164, 162, 154, 161, 164, 170, 158, 163, 164, 152, 161, 154, 158, 153, 156, 167, 153, 153, 148, 163, 162, 166, 157, 157, 167, 169, 160, 146, 158, 154, 154, 160, 162, 159, 155, 175, 169, 164, 167, 164, 155, 167, 155, 153, 158, 159, 165, 151, 167, 155, 158, 149, 156, 155, 159, 156, 157, 155, 161, 151, 159, 157, 159, 162, 157, 152, 156, 164, 152, 152, 168, 161, 155, 161, 155, 158, 167, 162, 164, 159, 163, 159, 160, 157, 156, 161, 165, 160, 162, 163, 152, 154, 175, 145, 159, 176, 157, 160, 158, 159, 156, 158, 160, 159, 153, 165, 161, 151, 150, 154, 165, 162, 158, 151, 158, 163, 159, 162, 156, 143, 156, 168, 169, 162, 156, 166, 162, 165, 166, 159, 155, 157, 164, 163, 150, 160, 162, 156, 158, 161, 165, 157, 163, 167, 159, 156, 156, 158, 156, 146, 159, 163, 152, 153, 172, 163, 162, 158, 156, 167, 164, 168, 155, 163, 153, 165, 161, 154, 163, 161, 160, 157, 163, 165, 158, 156, 173, 164, 166, 163, 154, 165, 159, 168, 162, 159, 168, 159, 159, 165, 146, 157, 158, 159, 152, 158, 168, 158, 154, 161, 155, 159, 150, 156, 158, 164, 156, 162, 156, 158, 158, 160, 154, 158, 161, 163, 160, 165, 163, 160, 159, 154, 157, 160, 156, 164, 154, 160, 154, 167, 166, 157, 150, 166, 164, 150, 158, 155, 170, 169, 158, 161, 157, 161, 162, 159, 155, 155, 159, 162, 154, 158, 162, 169, 158, 166, 160, 166, 160, 156, 160, 155, 160, 158, 163, 155, 164, 165, 161, 158, 157, 157, 159, 158, 156, 156, 156, 155, 160, 161, 161, 151, 164, 152, 167, 164, 159, 170, 161, 163, 159, 160, 161, 164, 159, 149, 158, 161, 165, 158, 152, 155, 160, 164, 156, 163, 161, 157, 160, 162, 157, 162, 157, 163, 158, 158, 159, 165, 154, 154, 163, 157, 167, 153, 159, 160, 169, 154, 157, 161, 152, 167, 154, 157, 160, 165, 162, 162, 160, 157, 157, 162, 160, 157, 157, 156, 161, 162, 158, 160, 161, 159, 158, 170, 173, 164, 156, 152, 167, 160, 155, 161, 160, 160, 163, 160, 157, 161, 156, 158, 158, 161, 164, 159, 156, 156, 150, 160, 159, 180, 161, 163, 160, 151, 162, 160, 158, 166, 160, 159, 158, 158, 152, 160, 154, 158, 158, 155, 162, 161, 158, 149, 144, 186, 156, 162, 164, 160, 156, 161, 159, 167, 157, 179, 158, 162, 168, 162, 154, 158, 154, 158, 157, 154, 160, 175, 158, 163, 151, 155, 158, 155, 157, 142, 157, 148, 162, 162, 159, 163, 159, 154, 156, 162, 156, 155, 155, 158, 170, 160, 159, 160, 158, 155, 164, 169, 164, 163, 153, 161, 152, 163, 157, 158, 162, 162, 164, 158, 165, 166, 160, 156, 161, 162, 161, 148, 166, 158, 162, 154, 157, 160, 158, 157, 157, 160, 154, 164, 165, 163, 158, 160, 161, 164, 158, 172, 156, 159, 162, 158, 160, 154, 158, 160, 152, 161, 160, 161, 162, 156, 160, 164, 157, 156, 152, 159, 166, 158, 155, 154, 165, 163, 157, 162, 161, 160, 158, 155, 160, 155, 158, 162, 154, 159, 158, 158, 158, 166, 161, 153, 160, 161, 165, 161, 164, 157, 158, 160, 161, 159, 157, 161, 161, 150, 158, 160, 162, 161, 163, 159, 157, 157, 165, 155, 156, 160, 167, 162, 159, 164, 158, 165, 162, 160, 161, 163, 161, 161, 163, 156, 160, 167, 164, 159, 161, 161, 158, 158, 162, 157, 163, 161, 152, 162, 155, 161, 162, 158, 164, 157, 161, 159, 154, 156, 173, 162, 162, 170, 163, 163, 165, 162, 163, 157, 158, 158, 164, 157, 159, 171, 157, 161, 159, 160, 166, 162, 166, 166, 160, 163, 161, 157, 164, 154, 162, 144, 156, 159, 155, 156, 151, 158, 157, 160, 155, 161, 158, 171, 163, 162, 160, 161, 153, 163, 152, 164, 161, 165, 172, 162, 163, 164, 162, 162, 154, 161, 161, 165, 163, 158, 169, 156, 155, 162, 160, 163, 161, 164, 157, 156, 159, 162, 159, 161, 168, 165, 157, 161, 159, 153, 159, 155, 158, 155, 162, 148, 157, 159, 157, 159, 165, 156, 160, 156, 167, 168, 160, 158, 159, 163, 161, 163, 161, 158, 161, 157, 156, 163, 159, 163, 157, 159, 154, 154, 160, 164, 158, 166, 156, 156, 163, 154, 162, 156, 158, 161, 162, 158, 155, 158, 161, 159, 154, 153, 156, 162, 161, 162, 161, 161, 158, 166, 160, 164, 160, 162, 160, 161, 165, 164, 159, 159, 162, 153, 168, 159, 168, 147, 173, 148, 165, 160, 161, 175, 172, 161, 156, 160, 162, 152, 161, 163, 155, 164, 161, 160, 157, 165, 185, 154, 165, 169, 166, 150, 164, 164, 156, 163, 162, 163, 157, 162, 159, 155, 161, 166, 165, 160, 154, 164, 160, 172, 167, 162, 163, 149, 163, 158, 163, 165, 162, 151, 156, 152, 165, 160, 158, 164, 156, 163, 155, 163, 152, 162, 170, 153, 160, 163, 168, 181, 142, 165, 155, 167, 166, 162, 153, 160, 160, 165, 161, 153, 184, 155, 146, 164, 158, 146, 156, 162, 160, 158, 183, 164, 156, 165, 160, 164, 152, 161, 175, 163, 162, 171, 163, 160, 161, 158, 160, 162, 162, 158, 151, 145, 160, 146, 157, 158, 155, 157, 155, 185, 159, 154, 164, 170, 162, 139, 159, 160, 161, 156, 157, 160, 163, 157, 145, 159, 157, 151, 161, 162, 157, 158, 162, 176, 154, 165, 160, 154, 160, 167, 156, 159, 154, 162, 158, 162, 166, 161, 160, 160, 169, 152, 167, 157, 155, 168, 162, 164, 156, 167, 155, 163, 164, 164, 163, 167, 145, 154, 150, 163, 145, 162, 159, 147, 200, 164, 164, 156, 168, 159, 160, 160, 158, 158, 159, 158, 158, 162, 166, 161, 160, 161, 157, 157, 155, 158, 174, 155, 162, 152, 134, 149, 165, 164, 158, 123, 172, 156, 159, 161, 159, 153, 154, 159, 155, 144, 162, 161, 157, 161, 166, 162, 160, 168, 163, 178, 161, 168, 159, 157, 168, 164, 162, 153, 152, 158, 169, 156, 157, 153, 157, 153, 152, 163, 158, 154, 165, 169, 156, 154, 170, 157, 172, 160, 154, 165, 161, 168, 162, 162, 153, 152, 164, 147, 158, 161, 159, 157, 157, 155, 160, 153, 164, 161, 152, 163, 155, 155, 162, 161, 160, 161, 160, 162, 163, 163, 158, 162, 174, 161, 165, 155, 154, 156, 151, 162, 165, 159, 160, 149, 162, 157, 157, 159, 162, 160, 155, 159, 159, 169, 159, 162, 138, 154, 158, 163, 157, 163, 152, 164, 161, 162, 156, 155, 163, 168, 169, 159, 158, 156, 156, 164, 179, 156, 158, 163, 145, 166, 159, 169, 163, 157, 161, 163, 158, 159, 163, 159, 162, 169, 165, 148, 146, 164, 157, 158, 197, 150, 161, 162, 156, 168, 169, 152, 152, 176, 155, 162, 159, 145, 166, 159, 166, 168, 158, 155, 172, 164, 165, 156, 158, 161, 163, 157, 172, 176, 157, 185, 192, 158, 152, 174, 168, 166, 169, 148, 160, 145, 150, 157, 159, 174, 165, 158, 153, 159, 160, 146, 159, 157, 160, 144, 162, 159, 160, 152, 158, 160, 163, 156, 147, 163, 166, 158, 155, 169, 154, 157, 157, 157, 163, 156, 153, 160, 152, 159, 158, 129, 183, 163, 158, 157, 159, 160, 164, 156, 152, 161, 168, 154, 160, 158, 157, 175, 150, 163, 166, 166, 198, 174, 166, 152, 161, 166, 157, 155, 159, 161, 157, 155, 166, 160, 142, 156, 162, 159, 166, 159, 152, 160, 174, 165, 156, 156, 168, 147, 150, 162, 157, 162, 161, 158, 160, 153, 165, 160, 165, 155, 157, 157, 159, 157, 159, 158, 169, 160, 156, 158, 154, 160, 166, 161, 159, 170, 159, 153, 150, 169, 168, 152, 147, 162, 164, 150, 165, 170, 161, 160, 157, 162, 158, 149, 153, 158, 164, 157, 160, 156, 159, 160, 167, 167, 152, 162, 158, 158, 157, 166, 159, 154, 157, 163, 162, 140, 153, 158, 159, 173, 152, 164, 151, 153, 161, 174, 161, 164, 170, 159, 151, 155, 159, 154, 151, 166, 152, 151, 165, 157, 163, 173, 160, 163, 165, 160, 168, 161, 156, 162, 149, 161, 160, 152, 155, 164, 153, 171, 163, 169, 157, 158, 162, 151, 159, 163, 172, 159, 155, 164, 161, 155, 159, 164, 161, 154, 165, 157, 154, 164, 156, 156, 167, 160, 155, 162, 165, 150, 160, 153, 157, 159, 154, 155, 156, 165, 159, 158, 155, 161, 156, 163, 162, 161, 155, 164, 165, 158, 165, 166, 162, 159, 176, 164, 162, 160, 160, 162, 149, 157, 161, 168, 155, 160, 155, 163, 160, 159, 158, 159, 151, 160, 162, 167, 156, 157, 164, 159, 153, 155, 162, 159, 151, 149, 163, 164, 162, 157, 166, 159, 158, 167, 147, 170, 160, 149, 155, 155, 162, 155, 152, 163, 158, 175, 168, 156, 153, 165, 157, 162, 154, 149, 155, 161, 163, 167, 159, 155, 163, 153, 158, 164, 162, 153, 158, 156, 159, 167, 175, 160, 153, 157, 152, 161, 157, 156, 162, 169, 159, 164, 166, 165, 169, 153, 156, 160, 154, 152, 160, 165, 160, 175, 149, 168, 156, 161, 156, 168, 169, 159, 162, 157, 160, 168, 162, 167, 154, 162, 155, 151, 163, 158, 166, 170, 157, 156, 154, 154, 147, 163, 147, 153, 159, 153, 166, 158, 157, 158, 155, 166, 159, 165, 157, 158, 163, 161, 160, 153, 167, 152, 157, 155, 157, 147, 155, 156, 148, 166, 158, 164, 162, 171, 154, 163, 155, 159, 155, 158, 169, 157, 155, 162, 168, 161, 165, 167, 153, 171, 160, 163, 162, 164, 164, 157, 160, 156, 170, 160, 160, 159, 166, 154, 155, 159, 156, 151, 159, 153, 168, 165, 161, 144, 155, 168, 166, 157, 156, 161, 141, 167, 172, 153, 162, 168, 160, 156, 150, 161, 156, 160, 160, 159, 162, 154, 162, 161, 173, 160, 165, 152, 155, 169, 156, 151, 155, 150, 166, 161, 162, 156, 166, 162, 155, 163, 157, 167, 157, 148, 168, 157, 156, 158, 162, 155, 160, 159, 165, 153, 161, 163, 161, 157, 157, 164, 164, 159, 165, 162, 155, 162, 165, 153, 150, 152, 159, 162, 163, 160, 160, 162, 153, 156, 164, 154, 156, 153, 165, 157, 156, 155, 158, 162, 160, 165, 167, 164, 159, 158, 162, 179, 165, 159, 157, 162, 156, 154, 169, 166, 159, 163, 180, 154, 159, 151, 169, 157, 156, 160, 157, 160, 160, 148, 157, 153, 157, 156, 172, 164, 160, 159, 155, 144, 154, 157, 158, 158, 160, 161, 160, 181, 189, 155, 160, 167, 162, 162, 156, 156, 166, 150, 157, 166, 163, 150, 160, 154, 168, 158, 157, 163, 162, 160, 164, 158, 164, 160, 159, 165, 154, 157, 159, 162, 154, 162, 158, 153, 159, 166, 161, 163, 161, 157, 160, 154, 160, 166, 158, 174, 157, 159, 163, 156, 160, 152, 167, 161, 165, 161, 157, 165, 157, 157, 162, 161, 159, 162, 172, 162, 151, 162, 161, 157, 157, 162, 161, 159, 161, 158, 158, 164, 166, 163, 145, 160, 158, 168, 163, 158, 160, 160, 166, 164, 157, 151, 159, 159, 166, 137, 163, 162, 165, 163, 156, 160, 158, 160, 156, 163, 158, 158, 155, 151, 157, 152, 170, 165, 162, 161, 156, 156, 155, 161, 161, 167, 159, 161, 164, 157, 161, 159, 153, 161, 155, 153, 161, 172, 163, 163, 161, 161, 154, 160, 159, 161, 153, 161, 159, 158, 158, 166, 159, 164, 161, 155, 163, 160, 157, 154, 165, 155, 166, 165, 156, 164, 165, 156, 163, 161, 154, 160, 158, 161, 157, 155, 162, 157, 162, 160, 163, 162, 156, 160, 161, 162, 169, 162, 163, 158, 156, 163, 161, 160, 162, 160, 159, 156, 166, 161, 163, 160, 159, 162, 169, 159, 170, 150, 175, 163, 161, 161, 161, 154, 155, 164, 157, 165, 159, 161, 160, 161, 157, 166, 161, 165, 161, 161, 166, 159, 158, 159, 157, 158, 164, 161, 158, 160, 158, 159, 167, 154, 160, 157, 170, 159, 160, 156, 161, 167, 162, 165, 158, 158, 166, 162, 170, 160, 160, 164, 159, 150, 162, 161, 162, 158, 161, 160, 161, 164, 155, 163, 164, 155, 158, 160, 152, 156, 156, 160, 163, 156, 153, 163, 164, 162, 161, 163, 161, 164, 153, 152, 158, 165, 157, 158, 161, 158, 155, 157, 160, 167, 160, 158, 155, 157, 154, 153, 164, 163, 155, 161, 161, 155, 152, 166, 164, 156, 157, 157, 166, 167, 161, 162, 160, 146, 161, 158, 159, 166, 160, 156, 162, 165, 163, 151, 161, 159, 155, 158, 159, 163, 164, 162, 160, 151, 162, 164, 160, 162, 158, 162, 168, 156, 156, 162, 159, 169, 161, 160, 163, 162, 153, 158, 164, 161, 160, 158, 166, 148, 162, 165, 168, 160, 156, 169, 161, 135, 158, 169, 160, 156, 161, 158, 163, 172, 161, 154, 160, 166, 166, 159, 148, 157, 161, 164, 153, 153, 157, 157, 162, 157, 160, 161, 162, 159, 161, 163, 168, 159, 166, 154, 161, 176, 157, 160, 169, 159, 163, 151, 160, 162, 163, 166, 173, 160, 167, 163, 155, 164, 159, 163, 164, 157, 156, 161, 159, 159, 157, 158, 159, 162, 159, 161, 159, 153, 160, 159, 162, 167, 161, 158, 147, 160, 154, 163, 161, 165, 146, 157, 159, 150, 164, 158, 158, 162, 155, 160, 160, 158, 160, 155, 158, 161, 162, 155, 171, 163, 163, 155, 167, 158, 161, 162, 155, 162, 159, 163, 163, 156, 164, 157, 160, 165, 157, 155, 154, 159, 157, 159, 157, 157, 160, 157, 166, 163, 159, 159, 163, 156, 159, 167, 160, 159, 158, 162, 163, 159, 162, 160, 159, 167, 162, 159, 162, 165, 172, 159, 157, 154, 170, 162, 155, 153, 154, 167, 162, 159, 156, 158, 159, 161, 166, 160, 158, 157, 158, 155, 151, 158, 157, 167, 163, 158, 173, 154, 163, 157, 172, 151, 160, 166, 163, 153, 154, 164, 157, 157, 156, 162, 172, 122, 164, 160, 160, 160, 162, 176, 166, 152, 157, 159, 164, 170, 150, 152, 163, 155, 142, 164, 176, 166, 157, 162, 158, 159, 156, 161, 159, 156, 160, 151, 160, 166, 154, 162, 156, 145, 149, 164, 154, 168, 161, 160, 159, 155, 162, 138, 165, 156, 163, 154, 152, 161, 164, 160, 160, 158, 169, 166, 151, 159, 161, 158, 163, 161, 171, 166, 165, 155, 161, 157, 165, 162, 166, 158, 158, 162, 167, 165, 158, 175, 162, 177, 160, 162, 167, 161, 161, 167, 166, 162, 156, 158, 160, 160, 161, 170, 158, 159, 159, 160, 159, 157, 153, 161, 156, 156, 157, 164, 166, 160, 161, 155, 161, 158, 148, 158, 154, 162, 155, 157, 179, 164, 159, 163, 160, 162, 154, 160, 172, 167, 154, 158, 162, 157, 149, 169, 159, 171, 170, 164, 156, 162, 150, 161, 164, 164, 161, 162, 165, 159, 171, 162, 157, 164, 154, 166, 160, 161, 164, 161, 157, 159, 169, 158, 164, 164, 171, 165, 164, 158, 161, 166, 158, 161, 151, 162, 152, 157, 165, 160, 162, 167, 162, 162, 167, 144, 160, 159, 158, 158, 153, 163, 162, 161, 157, 151, 165, 162, 161, 158, 160, 150, 159, 158, 163, 164, 173, 156, 157, 183, 166, 164, 157, 157, 163, 165, 160, 159, 161, 159, 149, 160, 155, 149, 160, 161, 142, 161, 173, 162, 152, 162, 150, 157, 194, 169, 153, 159, 152, 165, 155, 163, 155, 167, 165, 158, 161, 157, 160, 162, 160, 158, 158, 155, 152, 162, 165, 157, 163, 162, 156, 167, 161, 160, 164, 165, 155, 167, 161, 150, 168, 162, 163, 152, 168, 160, 173, 151, 159, 160, 161, 156, 151, 156, 162, 163, 170, 164, 162, 157, 158, 173, 161, 153, 158, 161, 160, 159, 159, 168, 138, 162, 159, 162, 158, 156, 155, 154, 159, 155, 157, 160, 160, 170, 156, 160, 162, 160, 169, 157, 157, 159, 159, 159, 158, 161, 157, 160, 161, 164, 156, 160, 161, 159, 154, 163, 165, 158, 152, 164, 154, 148, 157, 154, 159, 189, 156, 148, 151, 156, 165, 157, 168, 154, 165, 168, 160, 167, 159, 169, 164, 158, 163, 157, 159, 157, 157, 160, 162, 153, 161, 153, 161, 152, 170, 165, 154, 160, 159, 172, 168, 164, 166, 158, 165, 157, 160, 164, 165, 151, 169, 153, 153, 168, 166, 153, 166, 158, 167, 152, 159, 156, 167, 161, 158, 157, 169, 144, 164, 158, 155, 158, 160, 159, 164, 151, 155, 171, 169, 197, 161, 164, 160, 155, 157, 168, 152, 158, 159, 162, 164, 164, 162, 157, 155, 169, 164, 165, 163, 166, 166, 161, 162, 166, 163, 158, 176, 154, 152, 160, 161, 161, 164, 165, 167, 151, 157, 158, 165, 161, 157, 162, 162, 157, 157, 153, 158, 158, 158, 165, 151, 158, 157, 164, 162, 163, 157, 161, 166, 175, 161, 167, 155, 165, 151, 163, 155, 159, 141, 172, 168, 163, 168, 152, 157, 166, 152, 158, 151, 152, 157, 160, 160, 168, 161, 156, 157, 156, 156, 156, 162, 149, 152, 152, 158, 160, 165, 148, 154, 170, 166, 168, 158, 156, 160, 161, 162, 153, 161, 155, 154, 158, 154, 158, 158, 152, 161, 147, 156, 153, 160, 148, 158, 155, 154, 154, 152, 152, 165, 153, 157, 165, 155, 140, 157, 161, 157, 158, 161, 157, 155, 160, 158, 153, 165, 152, 149, 161, 161, 152, 157, 152, 158, 165, 159, 157, 154, 164, 161, 155, 160, 167, 158, 141, 157, 172, 155, 160, 157, 154, 160, 157, 158, 154, 157, 157, 168, 155, 163, 159, 166, 162, 141, 162, 165, 158, 160, 150, 156, 161, 165, 154, 168, 164, 163, 149, 176, 162, 159, 159, 164, 168, 157, 153, 163, 160, 169, 158, 162, 162, 152, 167, 158, 153, 155, 157, 155, 159, 162, 156, 148, 155, 143, 152, 146, 156, 155, 161, 160, 161, 163, 157, 165, 149, 156, 157, 149, 150, 164, 163, 152, 164, 152, 157, 162, 159, 153, 159, 163, 161, 169, 154, 143, 163, 153, 155, 154, 168, 150, 148, 163, 159, 154, 168, 147, 164, 155, 163, 157, 163, 154, 151, 157, 160, 165, 160, 156, 154, 164, 169, 160, 156, 164, 161, 158, 160, 153, 160, 172, 156, 164, 164, 168, 157, 168, 169, 167, 157, 155, 149, 152, 158, 164, 162, 169, 151, 157, 167, 157, 160, 166, 155, 161, 156, 162, 168, 157, 170, 159, 163, 158, 152, 163, 165, 153, 148, 169, 156, 155, 158, 155, 173, 167, 152, 162, 158, 152, 160, 162, 149, 162, 158, 165, 158, 159, 168, 162, 154, 158, 156, 155, 160, 155, 155, 164, 153, 159, 155, 171, 163, 161, 166, 162, 158, 161, 161, 162, 160, 151, 156, 151, 154, 174, 160, 152, 169, 155, 169, 169, 167, 149, 164, 171, 156, 162, 167, 171, 163, 156, 152, 158, 159, 158, 149, 161, 170, 155, 154, 164, 174, 160, 157, 163, 161, 156, 164, 165, 169, 160, 161, 150, 165, 157, 155, 169, 161, 149, 159, 145, 162, 159, 163, 156, 162, 162, 159, 164, 165, 156, 152, 164, 163, 161, 151, 172, 164, 160, 149, 149, 155, 163, 149, 153, 147, 161, 149, 157, 151, 162, 157, 149, 157, 166, 161, 165, 166, 165, 156, 156, 160, 154, 155, 156, 157, 160, 158, 157, 158, 155, 165, 165, 161, 165, 162, 161, 161, 161, 166, 157, 156, 161, 165, 163, 169, 156, 147, 179, 157, 173, 153, 156, 153, 157, 169, 153, 156, 149, 158, 154, 153, 153, 171, 152, 157, 151, 159, 153, 160, 158, 163, 155, 164, 147, 149, 156, 144, 166, 154, 155, 157, 157, 151, 140, 154, 153, 149, 160, 163, 170, 149, 159, 155, 155, 150, 162, 157, 151, 155, 161, 158, 175, 158, 163, 163, 153, 165, 167, 159, 157, 158, 154, 164, 147, 154, 156, 156, 160, 143, 147, 168, 162, 161, 161, 161, 158, 160, 162, 163, 163, 159, 159, 161, 163, 175, 159, 161, 160, 158, 159, 156, 165, 157, 158, 165, 161, 158, 160, 160, 163, 159, 157, 162, 160, 163, 158, 170, 164, 160, 161, 155, 163, 157, 157, 160, 158, 159, 160, 159, 162, 159, 160, 157, 161, 166, 158, 164, 162, 158, 160, 162, 162, 157, 160, 159, 162, 163, 158, 162, 159, 162, 161, 158, 161, 157, 151, 162, 160, 160, 159, 160, 160, 159, 156, 164, 160, 163, 161, 162, 159, 163, 161, 162, 160, 160, 165, 164, 161, 155, 159, 161, 158, 162, 159, 162, 157, 166, 160, 158, 165, 158, 164, 161, 162, 155, 165, 158, 157, 161, 159, 161, 160, 160, 157, 162, 160, 160, 158, 154, 160, 162, 159, 161, 160, 156, 159, 156, 160, 170, 156, 160, 162, 158, 159, 160, 164, 162, 154, 155, 161, 159, 160, 163, 156, 160, 160, 164, 153, 160, 164, 159, 159, 156, 157, 156, 160, 160, 159, 156, 163, 160, 160, 160, 160, 166, 164, 160, 159, 155, 163, 157, 160, 161, 166, 163, 160, 162, 159, 160, 163, 161, 159, 160, 163, 158, 158, 158, 150, 161, 159, 160, 162, 160, 162, 162, 162, 157, 159, 163, 157, 157, 159, 161, 157, 156, 158, 158, 163, 162, 159, 161, 162, 155, 167, 163, 166, 158, 160, 154, 161, 160, 155, 160, 151, 159, 158, 161, 160, 161, 155, 159, 162, 160, 157, 157, 162, 154, 157, 170, 164, 161, 162, 160, 163, 159, 160, 165, 163, 162, 157, 162, 160, 162, 164, 155, 163, 161, 150, 159, 158, 162, 165, 161, 162, 170, 162, 162, 156, 158, 157, 161, 162, 159, 163, 163, 160, 165, 155, 162, 160, 154, 160, 160, 163, 159, 159, 158, 160, 161, 156, 160, 161, 159, 156, 158, 160, 162, 158, 162, 158, 157, 159, 160, 161, 156, 161, 164, 165, 161, 162, 157, 157, 159, 161, 156, 159, 162, 159, 160, 163, 160, 160, 160, 157, 161, 166, 154, 161, 162, 159, 158, 167, 161, 160, 157, 157, 160, 159, 161, 162, 157, 155, 160, 162, 158, 149, 158, 157, 156, 151, 152, 161, 164, 159, 159, 160, 163, 160, 161, 162, 157, 162, 158, 165, 162, 164, 158, 157, 155, 155, 155, 158, 158, 162, 167, 153, 159, 167, 161, 163, 158, 161, 160, 162, 163, 161, 159, 163, 159, 158, 160, 163, 161, 158, 162, 163, 161, 165, 157, 159, 162, 164, 160, 160, 162, 159, 165, 160, 159, 161, 152, 157, 158, 157, 155, 160, 162, 161, 155, 160, 162, 160, 159, 158, 158, 160, 158, 163, 163, 162, 161, 157, 160, 159, 162, 161, 161, 159, 159, 162, 160, 154, 157, 160, 160, 161, 159, 160, 160, 159, 162, 160, 158, 161, 162, 159, 159, 161, 152, 160, 159, 161, 156, 157, 161, 164, 158, 157, 159, 155, 161, 161, 152, 159, 157, 158, 159, 160, 157, 159, 164, 162, 159, 158, 155, 150, 158, 160, 157, 161, 156, 159, 158, 166, 157, 163, 159, 164, 165, 159, 159, 160, 160, 160, 156, 160, 157, 156, 157, 161, 154, 155, 165, 161, 161, 161, 159, 163, 161, 160, 154, 160, 161, 158, 158, 162, 159, 166, 158, 162, 156, 166, 153, 163, 159, 163, 160, 163, 165, 166, 162, 161, 158, 164, 167, 159, 162, 163, 160, 162, 155, 164, 161, 166, 160, 164, 156, 164, 158, 162, 163, 157, 162, 154, 163, 164, 156, 159, 155, 156, 160, 159, 159, 158, 155, 165, 163, 161, 159, 157, 159, 156, 164, 160, 158, 148, 163, 169, 161, 163, 160, 163, 161, 159, 158, 166, 170, 156, 165, 156, 166, 163, 158, 154, 159, 167, 158, 162, 164, 163, 162, 155, 164, 162, 153, 158, 164, 151, 161, 155, 162, 158, 158, 158, 165, 166, 166, 158, 162, 164, 166, 160, 160, 160, 165, 161, 166, 157, 158, 160, 155, 165, 154, 169, 161, 165, 165, 155, 154, 163, 160, 163, 155, 163, 161, 167, 158, 152, 159, 166, 161, 160, 164, 157, 152, 166, 164, 162, 165, 153, 159, 155, 160, 163, 162, 154, 156, 157, 154, 157, 155, 161, 158, 157, 160, 163, 158, 161, 158, 157, 159, 173, 164, 158, 158, 166, 159, 157, 161, 161, 156, 158, 158, 164, 159, 159, 158, 161, 160, 167, 163, 162, 157, 161, 159, 162, 159, 162, 156, 159, 159, 153, 160, 157, 160, 155, 159, 163, 156, 161, 162, 162, 160, 162, 162, 162, 161, 160, 166, 158, 150, 159, 157, 159, 158, 158, 158, 161, 158, 155, 164, 162, 167, 159, 157, 155, 159, 158, 160, 154, 161, 161, 160, 164, 161, 157, 151, 163, 163, 161, 161, 154, 164, 160, 157, 166, 152, 160, 151, 160, 162, 162, 159, 154, 162, 159, 155, 160, 162, 159, 164, 164, 154, 161, 160, 167, 158, 168, 160, 159, 160, 156, 161, 163, 162, 153, 163, 159, 157, 160, 158, 157, 155, 155, 163, 161, 164, 161, 162, 161, 159, 161, 159, 159, 160, 161, 159, 156, 161, 162, 161, 156, 160, 161, 163, 167, 159, 157, 165, 163, 158, 162, 158, 153, 156, 159, 156, 166, 162, 157, 163, 161, 164, 165, 164, 163, 156, 166, 157, 154, 164, 155, 165, 168, 166, 159, 156, 157, 158, 160, 155, 160, 159, 164, 170, 161, 167, 157, 164, 165, 161, 159, 157, 157, 161, 159, 167, 165, 158, 166, 155, 163, 159, 162, 162, 165, 161, 161, 159, 164, 161, 155, 157, 162, 157, 159, 158, 163, 157, 157, 160, 155, 161, 154, 162, 162, 163, 163, 165, 164, 162, 156, 166, 162, 162, 160, 156, 162, 154, 166, 158, 159, 160, 162, 158, 168, 160, 168, 158, 161, 163, 158, 161, 162, 158, 150, 162, 163, 155, 160, 162, 154, 162, 162, 166, 159, 156, 159, 160, 153, 165, 160, 159, 166, 153, 158, 156, 155, 158, 158, 155, 158, 168, 162, 159, 157, 163, 162, 156, 154, 161, 155, 162, 155, 160, 165, 159, 161, 164, 160, 156, 160, 154, 160, 161, 158, 163, 163, 161, 159, 159, 155, 163, 162, 163, 156, 169, 162, 160, 161, 165, 156, 160, 164, 154, 153, 159, 163, 160, 159, 165, 168, 167, 161, 161, 159, 161, 163, 170, 163, 157, 159, 150, 154, 159, 164, 157, 167, 160, 159, 165, 155, 161, 155, 155, 158, 159, 161, 162, 161, 161, 157, 162, 165, 165, 164, 160, 160, 166, 160, 162, 163, 155, 159, 157, 160, 157, 163, 160, 158, 156, 159, 162, 155, 159, 160, 160, 161, 157, 159, 168, 157, 161, 163, 163, 154, 167, 152, 167, 158, 160, 160, 156, 165, 157, 160, 155, 165, 160, 156, 164, 161, 161, 159, 161, 159, 156, 158, 170, 160, 158, 164, 157, 160, 164, 164, 169, 156, 165, 159, 189, 148, 166, 155, 156, 162, 163, 157, 161, 153, 158, 162, 161, 161, 159, 166, 161, 155, 158, 159, 163, 146, 161, 158, 160, 160, 162, 164, 162, 159, 160, 157, 156, 154, 163, 155, 160, 158, 157, 161, 163, 156, 158, 158, 156, 158, 162, 155, 162, 151, 154, 165, 158, 160, 154, 168, 158, 160, 159, 167, 154, 166, 162, 159, 163, 156, 156, 164, 151, 160, 155, 160, 167, 159, 158, 163, 160, 165, 156, 157, 157, 162, 160, 165, 165, 164, 152, 162, 163, 161, 158, 163, 156, 158, 155, 158, 160, 159, 164, 158, 156, 159, 161, 155, 159, 163, 158, 167, 162, 158, 162, 164, 164, 156, 155, 160, 158, 162, 162, 155, 155, 157, 155, 157, 165, 160, 155, 152, 161, 159, 152, 161, 157, 157, 158, 161, 155, 159, 162, 155, 160, 161, 164, 159, 159, 160, 162, 161, 160, 159, 155, 153, 161, 163, 155, 157, 158, 169, 166, 154, 154, 152, 160, 165, 161, 167, 165, 158, 151, 165, 164, 160, 158, 165, 155, 160, 165, 161, 168, 162, 168, 170, 163, 159, 163, 162, 156, 159, 153, 160, 167, 159, 159, 158, 162, 170, 160, 163, 162, 165, 159, 157, 162, 158, 159, 165, 157, 156, 163, 161, 161, 160, 161, 164, 156, 156, 162, 159, 157, 164, 157, 166, 156, 163, 162, 161, 157, 160, 158, 165, 162, 157, 161, 166, 164, 158, 161, 158, 160, 162, 161, 161, 155, 166, 161, 159, 157, 165, 161, 158, 161, 167, 145, 154, 169, 161, 162, 153, 155, 157, 158, 161, 160, 158, 165, 159, 164, 151, 155, 156, 152, 160, 153, 162, 171, 158, 162, 161, 153, 155, 158, 161, 145, 151, 161, 161, 159, 160, 158, 158, 156, 158, 163, 164, 160, 162, 161, 161, 159, 154, 165, 161, 161, 154, 155, 160, 156, 159, 165, 158, 159, 156, 156, 162, 151, 156, 159, 139, 156, 177, 155, 154, 159, 164, 160, 160, 160, 155, 159, 164, 162, 164, 156, 162, 151, 163, 151, 156, 159, 158, 161, 160, 161, 159, 158, 155, 159, 160, 163, 158, 159, 157, 164, 163, 160, 155, 157, 162, 159, 159, 157, 157, 155, 162, 158, 158, 162, 164, 159, 155, 159, 161, 167, 160, 156, 161, 153, 160, 150, 163, 156, 160, 163, 155, 154, 151, 161, 161, 158, 144, 170, 150, 165, 160, 166, 162, 163, 168, 162, 157, 161, 163, 156, 155, 157, 153, 164, 158, 149, 162, 158, 154, 150, 145, 160, 171, 162, 167, 159, 154, 145, 155, 163, 160, 160, 155, 173, 160, 160, 164, 160, 163, 160, 172, 156, 155, 165, 159, 164, 157, 162, 165, 153, 159, 154, 159, 159, 161, 166, 163, 173, 169, 163, 158, 167, 165, 161, 165, 159, 159, 162, 162, 159, 157, 156, 158, 157, 155, 166, 166, 159, 154, 158, 156, 162, 163, 154, 157, 162, 162, 167, 157, 155, 164, 157, 159, 162, 162, 163, 164, 159, 164, 160, 166, 163, 150, 161, 157, 156, 150, 155, 161, 154, 157, 153, 160, 154, 165, 162, 151, 157, 162, 164, 154, 171, 169, 157, 157, 168, 162, 159, 156, 157, 167, 163, 161, 163, 165, 162, 167, 147, 157, 153, 165, 161, 159, 153, 159, 159, 154, 162, 155, 158, 169, 156, 159, 166, 158, 159, 165, 156, 150, 157, 160, 160, 156, 158, 157, 154, 165, 165, 153, 158, 159, 158, 153, 162, 161, 162, 161, 162, 158, 167, 156, 164, 160, 163, 161, 158, 158, 154, 162, 159, 154, 159, 168, 155, 161, 152, 160, 161, 175, 158, 165, 161, 163, 156, 156, 168, 163, 154, 161, 168, 164, 169, 156, 156, 165, 163, 153, 167, 168, 159, 161, 157, 158, 156, 164, 153, 155, 165, 154, 160, 156, 153, 160, 166, 154, 172, 158, 167, 157, 158, 152, 164, 162, 155, 160, 164, 153, 160, 160, 161, 160, 165, 173, 157, 158, 162, 154, 167, 153, 157, 161, 169, 154, 156, 159, 159, 154, 164, 161, 156, 158, 159, 160, 160, 161, 154, 160, 158, 165, 163, 163, 158, 163, 156, 153, 156, 166, 163, 174, 159, 175, 162, 148, 158, 158, 158, 167, 163, 156, 162, 159, 163, 161, 156, 157, 158, 161, 158, 155, 158, 162, 152, 154, 160, 159, 158, 154, 159, 169, 157, 154, 153, 159, 167, 162, 153, 156, 159, 160, 159, 165, 167, 159, 150, 165, 170, 162, 174, 165, 160, 152, 158, 152, 162, 163, 163, 162, 165, 158, 152, 160, 161, 158, 160, 157, 157, 155, 156, 161, 157, 156, 149, 161, 159, 157, 163, 164, 162, 159, 158, 156, 150, 171, 160, 158, 165, 157, 154, 169, 164, 163, 161, 161, 157, 159, 166, 160, 159, 161, 146, 164, 158, 174, 157, 157, 162, 151, 155, 156, 162, 160, 157, 151, 159, 160, 162, 152, 150, 158, 159, 158, 162, 159, 160, 166, 155, 163, 161, 159, 159, 160, 157, 158, 173, 170, 158, 155, 164, 162, 169, 168, 168, 163, 163, 178, 161, 169, 159, 156, 165, 163, 156, 157, 163, 159, 160, 163, 170, 163, 161, 162, 160, 164, 154, 164, 160, 158, 152, 158, 163, 160, 172, 150, 161, 163, 163, 153, 162, 154, 168, 154, 153, 161, 165, 156, 156, 147, 155, 162, 160, 161, 167, 166, 159, 154, 159, 163, 156, 163, 161, 164, 161, 156, 159, 156, 155, 154, 155, 159, 147, 162, 162, 161, 160, 169, 155, 165, 164, 158, 156, 151, 166, 163, 160, 164, 160, 163, 161, 156, 158, 162, 144, 155, 154, 166, 159, 154, 153, 165, 157, 155, 152, 169, 159, 151, 158, 166, 161, 154, 158, 162, 157, 160, 152, 164, 169, 162, 160, 161, 153, 166, 167, 161, 157, 159, 163, 180, 157, 161, 161, 164, 160, 156, 159, 167, 152, 163, 153, 145, 160, 161, 157, 152, 162, 157, 154, 168, 152, 149, 161, 154, 165, 153, 155, 166, 152, 168, 157, 157, 160, 158, 166, 158, 154, 152, 163, 155, 158, 172, 161, 160, 158, 168, 152, 157, 158, 157, 162, 158, 174, 172, 164, 161, 164, 163, 166, 157, 168, 160, 154, 163, 158, 172, 168, 155, 159, 161, 156, 159, 152, 167, 169, 161, 161, 164, 154, 166, 159, 160, 166, 168, 163, 167, 165, 158, 156, 156, 174, 170, 168, 155, 161, 162, 158, 157, 162, 154, 156, 162, 161, 163, 168, 162, 164, 159, 167, 165, 159, 159, 154, 163, 159, 166, 165, 150, 167, 167, 165, 162, 168, 161, 157, 169, 162, 161, 161, 156, 155, 154, 162, 168, 162, 158, 160, 160, 175, 153, 163, 159, 155, 162, 162, 160, 158, 166, 161, 164, 153, 153, 160, 160, 160, 151, 169, 162, 158, 154, 162, 160, 171, 157, 163, 169, 160, 152, 164, 159, 166, 158, 157, 158, 150, 154, 160, 168, 153, 162, 156, 156, 157, 159, 174, 161, 159, 164, 153, 155, 164, 158, 176, 162, 157, 164, 165, 164, 162, 161, 170, 154, 160, 155, 175, 157, 155, 165, 165, 164, 160, 161, 158, 156, 163, 163, 155, 164, 161, 163, 157, 157, 155, 166, 159, 165, 155, 155, 167, 172, 159, 159, 167, 165, 164, 156, 155, 160, 159, 159, 161, 192, 163, 152, 139, 154, 154, 147, 157, 168, 151, 162, 157, 169, 164, 156, 164, 165, 167, 165, 154, 154, 158, 155, 170, 162, 157, 154, 162, 157, 160, 155, 159, 167, 189, 157, 157, 149, 152, 155, 153, 160, 161, 164, 153, 158, 156, 157, 161, 157, 162, 157, 161, 157, 157, 158, 162, 158, 165, 176, 159, 166, 165, 163, 155, 164, 170, 159, 160, 161, 168, 162, 152, 159, 154, 147, 168, 153, 160, 158, 165, 170, 158, 158, 156, 157, 174, 169, 159, 160, 174, 164, 183, 162, 157, 161, 164, 167, 163, 169, 165, 157, 165, 157, 165, 168, 164, 158, 166, 160, 162, 160, 157, 154, 165, 160, 170, 154, 159, 163, 162, 172, 171, 157, 146, 158, 166, 155, 170, 165, 156, 157, 153, 158, 165, 163, 158, 173, 165, 159, 160, 163, 160, 162, 152, 162, 156, 163, 152, 149, 155, 145, 164, 171, 167, 150, 160, 160, 161, 169, 154, 167, 152, 167, 156, 171, 161, 153, 160, 166, 154, 160, 148, 162, 164, 158, 165, 157, 170, 168, 163, 164, 155, 176, 150, 162, 169, 156, 161, 162, 157, 159, 165, 168, 157, 158, 160, 159, 158, 160, 168, 155, 153, 155, 162, 161, 169, 149, 160, 162, 158, 152, 148, 161, 161, 164, 163, 154, 168, 153, 164, 157, 163, 162, 166, 156, 162, 166, 152, 155, 159, 154, 157, 158, 170, 169, 154, 160, 152, 162, 148, 166, 152, 159, 156, 145, 162, 166, 158, 158, 162, 162, 157, 157, 166, 160, 154, 161, 159, 153, 157, 172, 156, 154, 158, 159, 164, 163, 158, 154, 160, 162, 165, 158, 160, 157, 158, 154, 158, 156, 162, 163, 156, 158, 159, 157, 162, 168, 154, 157, 175, 179, 168, 159, 162, 157, 162, 156, 161, 164, 155, 164, 162, 162, 161, 160, 159, 158, 159, 165, 153, 160, 161, 157, 158, 155, 158, 164, 170, 158, 165, 155, 160, 155, 166, 162, 156, 163, 161, 153, 159, 141, 164, 166, 158, 156, 158, 163, 160, 153, 154, 171, 163, 158, 165, 156, 169, 154, 160, 158, 157, 159, 161, 159, 160, 150, 164, 156, 156, 179, 161, 163, 163, 158, 162, 162, 159, 160, 160, 159, 162, 156, 158, 157, 161, 161, 158, 136, 170, 164, 152, 156, 153, 160, 157, 158, 164, 158, 155, 160, 163, 156, 156, 160, 167, 162, 158, 154, 164, 162, 150, 158, 165, 160, 159, 161, 155, 164, 162, 159, 164, 168, 153, 150, 159, 158, 162, 166, 160, 178, 156, 155, 160, 161, 161, 161, 166, 159, 161, 166, 154, 158, 161, 157, 157, 142, 148, 166, 163, 159, 162, 156, 165, 154, 165, 160, 167, 164, 156, 155, 159, 160, 169, 164, 158, 161, 154, 159, 161, 158, 156, 153, 149, 162, 161, 168, 156, 165, 160, 162, 159, 155, 161, 154, 161, 166, 155, 158, 157, 157, 160, 162, 153, 157, 160, 161, 156, 157, 167, 162, 157, 165, 162, 163, 170, 162, 161, 158, 163, 156, 160, 152, 157, 158, 163, 163, 157, 164, 153, 160, 158, 158, 158, 158, 160, 158, 161, 159, 170, 159, 155, 161, 157, 159, 160, 165, 164, 169, 154, 156, 159, 159, 161, 166, 158, 159, 157, 157, 156, 157, 161, 154, 169, 164, 165, 155, 164, 163, 169, 154, 160, 156, 168, 160, 159, 162, 165, 157, 159, 160, 161, 154, 160, 163, 161, 157, 164, 156, 156, 164, 156, 151, 153, 157, 160, 166, 155, 156, 156, 164, 163, 158, 157, 164, 157, 165, 158, 159, 150, 158, 154, 161, 157, 163, 153, 156, 161, 161, 158, 162, 159, 166, 158, 157, 152, 158, 160, 157, 153, 160, 162, 166, 165, 155, 163, 162, 156, 156, 165, 162, 163, 166, 171, 183, 155, 157, 158, 165, 155, 153, 167, 156, 159, 167, 155, 158, 159, 160, 149, 162, 162, 159, 166, 159, 166, 160, 153, 166, 160, 156, 155, 154, 159, 161, 150, 161, 159, 165, 152, 162, 158, 159, 158, 156, 161, 159, 163, 159, 173, 157, 148, 160, 155, 162, 161, 162, 167, 166, 186, 162, 160, 162, 160, 163, 161, 147, 158, 158, 169, 159, 157, 155, 161, 157, 161, 166, 169, 157, 162, 150, 165, 155, 158, 162, 164, 161, 169, 159, 159, 158, 161, 157, 159, 165, 158, 164, 166, 160, 155, 149, 157, 158, 160, 163, 160, 156, 163, 162, 172, 174, 154, 156, 154, 161, 157, 159, 162, 154, 166, 155, 153, 157, 156, 156, 157, 164, 162, 163, 163, 160, 146, 163, 154, 160, 165, 161, 157, 157, 157, 147, 158, 156, 158, 162, 154, 159, 176, 155, 163, 156, 146, 155, 161, 154, 153, 152, 158, 163, 155, 152, 162, 160, 165, 145, 158, 163, 162, 155, 165, 151, 159, 158, 161, 161, 161, 145, 151, 151, 161, 163, 159, 161, 162, 166, 159, 163, 165, 160, 164, 149, 161, 150, 154, 163, 158, 168, 161, 157, 158, 159, 152, 149, 161, 165, 164, 167, 161, 163, 152, 154, 163, 158, 151, 159, 161, 158, 161, 144, 162, 169, 149, 154, 159, 156, 158, 153, 157, 159, 161, 153, 144, 159, 161, 165, 156, 160, 159, 155, 157, 161, 163, 153, 159, 152, 156, 159, 160, 151, 163, 167, 158, 166, 157, 167, 160, 146, 163, 162, 166, 160, 166, 161, 153, 159, 155, 158, 164, 172, 164, 164, 153, 163, 161, 156, 155, 157, 163, 165, 164, 166, 156, 159, 153, 150, 158, 156, 168, 163, 160, 156, 158, 160, 149, 170, 155, 151, 173, 161, 171, 158, 168, 160, 153, 157, 155, 160, 149, 159, 158, 156, 159, 161, 148, 162, 166, 167, 158, 153, 159, 162, 155, 154, 158, 159, 134, 150, 162, 157, 163, 159, 154, 144, 170, 169, 155, 159, 160, 159, 164, 165, 169, 160, 147, 159, 162, 164, 156, 158, 165, 166, 163, 161, 156, 154, 164, 164, 167, 174, 161, 154, 168, 151, 154, 155, 167, 164, 156, 146, 168, 158, 157, 161, 153, 157, 163, 156, 167, 160, 171, 160, 160, 162, 159, 163, 165, 161, 154, 163, 157, 160, 162, 158, 166, 157, 154, 155, 156, 160, 162, 152, 161, 172, 167, 152, 161, 157, 159, 159, 167, 151, 159, 153, 155, 158, 185, 161, 160, 158, 162, 152, 163, 151, 160, 157, 153, 160, 159, 160, 168, 161, 160, 158, 154, 158, 161, 159, 155, 159, 151, 158, 168, 155, 173, 158, 162, 158, 171, 161, 168, 162, 162, 166, 157, 160, 158, 162, 162, 162, 151, 148, 154, 166, 162, 172, 162, 162, 158, 151, 170, 160, 163, 156, 148, 160, 159, 160, 162, 153, 156, 160, 158, 153, 160, 151, 162, 161, 171, 160, 149, 151, 155, 153, 139, 156, 162, 161, 156, 166, 158, 156, 158, 157, 160, 165, 163, 153, 155, 157, 157, 165, 166, 174, 155, 159, 171, 158, 144, 180, 152, 157, 162, 174, 158, 154, 155, 158, 159, 159, 172, 160, 158, 154, 149, 162, 165, 156, 160, 153, 157, 174, 152, 158, 158, 161, 154, 155, 158, 158, 160, 158, 160, 161, 153, 163, 161, 161, 162, 155, 163, 161, 154, 165, 162, 168, 157, 167, 164, 161, 160, 153, 161, 156, 155, 160, 139, 153, 152, 166, 163, 150, 166, 162, 165, 174, 157, 172, 158, 157, 159, 161, 166, 166, 161, 159, 156, 166, 160, 164, 163, 160, 161, 157, 173, 155, 160, 152, 158, 150, 150, 163, 163, 156, 152, 162, 151, 160, 155, 158, 165, 154, 164, 163, 146, 160, 162, 155, 160, 155, 166, 158, 172, 163, 166, 155, 166, 158, 160, 164, 170, 164, 158, 155, 164, 162, 156, 155, 166, 167, 151, 160, 162, 162, 163, 166, 160, 157, 155, 158, 167, 160, 174, 161, 145, 169, 166, 167, 160, 167, 164, 161, 159, 159, 158, 160, 157, 161, 152, 152, 166, 160, 167, 156, 155, 157, 163, 149, 161, 160, 156, 156, 165, 161, 155, 160, 165, 161, 155, 169, 155, 159, 157, 156, 155, 151, 154, 161, 155, 168, 155, 170, 162, 169, 156, 160, 152, 154, 155, 158, 149, 146, 158, 155, 157, 162, 160, 150, 176, 147, 168, 160, 161, 158, 163, 156, 165, 155, 165, 154, 149, 162, 150, 159, 161, 161, 155, 163, 156, 162, 169, 160, 166, 156, 161, 166, 173, 165, 159, 158, 165, 169, 153, 163, 161, 164, 153, 158, 160, 157, 155, 162, 166, 148, 168, 161, 159, 155, 166, 160, 164, 160, 151, 163, 160, 165, 164, 162, 157, 157, 163, 157, 167, 151, 155, 155, 165, 158, 159, 156, 162, 163, 150, 165, 168, 159, 153, 163, 160, 155, 155, 153, 159, 166, 161, 146, 151, 164, 155, 154, 158, 158, 160, 147, 166, 174, 161, 151, 152, 175, 161, 146, 150, 163, 149, 152, 164, 163, 164, 159, 178, 160, 153, 164, 168, 149, 156, 162, 151, 152, 163, 155, 145, 158, 172, 171, 150, 168, 165, 159, 161, 157, 161, 161, 164, 163, 171, 165, 165, 166, 159, 165, 156, 148, 153, 159, 162, 165, 157, 161, 169, 148, 157, 168, 159, 158, 155, 161, 160, 164, 157, 156, 151, 156, 173, 160, 164, 160, 156, 152, 167, 161, 167, 167, 154, 152, 166, 156, 167, 159, 154, 164, 171, 158, 157, 154, 168, 159, 161, 158, 163, 162, 170, 151, 158, 169, 150, 153, 158, 164, 158, 165, 165, 150, 167, 167, 155, 161, 160, 157, 177, 152, 163, 168, 157, 171, 154, 154, 162, 176, 162, 154, 157, 153, 154, 155, 168, 163, 160, 163, 163, 159, 176, 165, 162, 153, 157, 167, 156, 160, 169, 159, 163, 163, 157, 151, 158, 158, 160, 156, 163, 165, 162, 159, 164, 156, 159, 175, 155, 162, 156, 160, 158, 164, 157, 153, 155, 161, 160, 156, 157, 151, 158, 163, 164, 154, 162, 164, 171, 163, 154, 148, 156, 159, 155, 158, 152, 162, 152, 154, 166, 154, 162, 163, 157, 156, 170, 155, 155, 160, 163, 159, 153, 166, 178, 166, 167, 163, 155, 146, 151, 157, 164, 160, 163, 177, 160, 156, 160, 163, 157, 155, 160, 155, 164, 159, 161, 149, 158, 170, 152, 158, 161, 150, 157, 157, 152, 160, 163, 144, 158, 172, 157, 164, 157, 150, 161, 155, 162, 157, 159, 162, 157, 154, 165, 157, 167, 151, 151, 159, 155, 166, 154, 152, 171, 164, 165, 152, 159, 154, 167, 173, 161, 158, 160, 161, 162, 152, 157, 152, 166, 167, 159, 177, 157, 156, 157, 160, 153, 152, 164, 161, 154, 160, 159, 150, 158, 164, 158, 143, 156, 159, 160, 151, 160, 156, 155, 166, 153, 153, 179, 162, 172, 161, 170, 161, 158, 161, 162, 166, 168, 157, 165, 164, 160, 152, 153, 154, 159, 152, 159, 169, 164, 170, 157, 167, 162, 163, 160, 157, 158, 150, 163, 160, 159, 150, 157, 157, 157, 160, 156, 157, 159, 152, 165, 154, 172, 166, 167, 157, 164, 163, 164, 157, 174, 158, 159, 160, 153, 161, 154, 159, 174, 159, 161, 158, 171, 157, 158, 164, 159, 161, 165, 163, 163, 162, 156, 171, 166, 159, 162, 151, 155, 172, 163, 171, 154, 154, 163, 171, 159, 153, 163, 158, 150, 161, 159, 162, 170, 157, 161, 158, 156, 164, 174, 153, 166, 157, 163, 158, 154, 158, 165, 156, 167, 164, 157, 165, 158, 168, 165, 167, 168, 159, 151, 156, 162, 157, 169, 163, 157, 164, 167, 165, 161, 158, 164, 159, 160, 168, 161, 165, 154, 159, 160, 158, 157, 165, 174, 151, 157, 159, 160, 164, 165, 164, 160, 151, 161, 165, 165, 159, 160, 171, 164, 153, 153, 167, 157, 159, 158, 156, 158, 160, 157, 159, 155, 170, 154, 164, 161, 163, 149, 147, 162, 165, 172, 156, 162, 166, 163, 159, 154, 158, 169, 159, 151, 151, 157, 164, 152, 164, 163, 167, 165, 157, 158, 159, 153, 156, 163, 156, 153, 161, 167, 162, 166, 160, 155, 148, 160, 152, 165, 157, 166, 156, 165, 156, 158, 157, 156, 160, 163, 161, 154, 156, 157, 157, 162, 162, 154, 168, 157, 163, 155, 159, 164, 156, 173, 160, 165, 153, 158, 156, 158, 157, 157, 161, 160, 158, 163, 162, 159, 171, 156, 160, 149, 157, 167, 159, 158, 167, 147, 158, 166, 164, 162, 161, 160, 161, 157, 151, 148, 160, 159, 161, 161, 155, 154, 166, 174, 158, 155, 167, 155, 159, 156, 153, 183, 158, 160, 160, 156, 165, 154, 159, 157, 160, 168, 161, 166, 161, 161, 167, 155, 154, 163, 164, 163, 167, 156, 168, 169, 155, 174, 163, 156, 166, 156, 151, 156, 167, 147, 157, 153, 163, 155, 161, 159, 161, 172, 160, 154, 152, 160, 163, 163, 156, 167, 166, 153, 160, 146, 162, 155, 164, 156, 159, 164, 163, 158, 171, 157, 155, 149, 156, 159, 161, 159, 155, 162, 159, 161, 157, 160, 163, 155, 163, 164, 156, 160, 151, 166, 164, 170, 175, 157, 171, 155, 160, 155, 162, 152, 148, 166, 153, 157, 154, 151, 162, 153, 173, 157, 154, 177, 160, 178, 167, 150, 167, 158, 166, 156, 156, 152, 156, 155, 150, 162, 161, 148, 169, 159, 155, 165, 157, 154, 160, 171, 154, 165, 170, 148, 166, 156, 161, 151, 164, 148, 160, 156, 144, 165, 154, 156, 157, 159, 164, 156, 176, 158, 152, 163, 157, 162, 163, 158, 155, 162, 171, 161, 157, 159, 161, 170, 157, 160, 164, 159, 156, 161, 153, 162, 157, 167, 155, 152, 160, 164, 162, 164, 156, 149, 153, 167, 159, 158, 158, 156, 162, 164, 155, 172, 162, 158, 161, 160, 163, 158, 155, 152, 148, 167, 158, 165, 157, 164, 161, 175, 153, 158, 157, 157, 170, 156, 167, 159, 160, 158, 159, 159, 153, 158, 164, 162, 163, 160, 161, 158, 158, 158, 163, 165, 153, 159, 153, 159, 162, 164, 154, 167, 163, 160, 163, 149, 163, 166, 165, 143, 162, 162, 165, 156, 160, 155, 158, 165, 158, 158, 163, 165, 155, 165, 164, 161, 153, 173, 166, 165, 161, 160, 159, 166, 162, 161, 149, 167, 164, 157, 161, 161, 164, 160, 156, 154, 155, 149, 162, 155, 168, 165, 158, 157, 161, 148, 152, 165, 162, 162, 150, 165, 155, 151, 167, 160, 172, 162, 159, 168, 164, 156, 158, 162, 146, 152, 158, 157, 165, 157, 172, 162, 163, 162, 156, 176, 162, 157, 158, 165, 155, 162, 157, 160, 159, 157, 157, 162, 157, 154, 179, 165, 157, 163, 163, 157, 162, 164, 160, 164, 157, 155, 170, 161, 165, 155, 158, 152, 159, 160, 156, 158, 153, 162, 152, 162, 159, 159, 153, 164, 158, 161, 161, 158, 154, 163, 162, 164, 158, 152, 159, 165, 163, 154, 150, 152, 146, 148, 162, 156, 174, 156, 158, 171, 183, 156, 167, 166, 158, 168, 160, 154, 157, 157, 171, 171, 150, 152, 163, 161, 162, 155, 166, 156, 167, 163, 155, 149, 158, 162, 163, 162, 157, 165, 159, 159, 160, 165, 151, 159, 146, 161, 162, 151, 158, 166, 163, 161, 147, 164, 161, 159, 154, 163, 164, 157, 166, 153, 178, 159, 168, 164, 152, 161, 160, 159, 168, 158, 163, 166, 150, 153, 170, 164, 166, 172, 156, 163, 158, 166, 157, 157, 162, 163, 153, 158, 154, 161, 147, 165, 170, 165, 160, 154, 177, 154, 163, 174, 143, 157, 151, 161, 157, 157, 164, 162, 159, 171, 170, 173, 164, 164, 158, 163, 162, 159, 163, 161, 157, 162, 161, 159, 153, 162, 161, 155, 176, 167, 152, 166, 163, 160, 161, 156, 154, 159, 163, 153, 163, 153, 159, 157, 160, 153, 151, 154, 168, 159, 157, 156, 175, 152, 157, 159, 153, 161, 161, 162, 171, 164, 153, 161, 158, 163, 162, 162, 157, 153, 153, 170, 163, 161, 168, 166, 165, 169, 155, 166, 174, 160, 144, 158, 161, 161, 166, 155, 153, 166, 160, 157, 165, 160, 157, 152, 165, 153, 160, 154, 161, 187, 162, 171, 166, 150, 156, 159, 158, 153, 160, 165, 172, 154, 161, 156, 166, 164, 153, 170, 160, 153, 167, 162, 160, 156, 148, 161, 160, 165, 151, 146, 164, 160, 181, 159, 164, 157, 168, 166, 164, 164, 161, 162, 159, 163, 165, 160, 160, 161, 162, 152, 162, 151, 164, 158, 165, 160, 156, 159, 152, 161, 161, 158, 162, 156, 156, 161, 157, 162, 168, 160, 160, 166, 169, 160, 166, 169, 174, 153, 145, 164, 162, 149, 174, 170, 148, 160, 161, 159, 158, 163, 165, 169, 152, 151, 168, 166, 166, 158, 165, 150, 164, 160, 163, 153, 161, 158, 157, 164, 158, 156, 154, 160, 156, 163, 158, 157, 162, 153, 163, 161, 161, 159, 160, 155, 170, 154, 159, 158, 158, 151, 160, 166, 158, 165, 160, 155, 156, 161, 151, 166, 165, 145, 162, 151, 162, 163, 161, 160, 177, 157, 164, 170, 170, 151, 169, 164, 158, 164, 158, 164, 161, 158, 154, 156, 164, 158, 166, 161, 160, 161, 153, 163, 157, 149, 150, 163, 158, 155, 168, 160, 156, 158, 170, 165, 149, 161, 160, 164, 162, 163, 160, 159, 157, 158, 151, 163, 153, 155, 167, 157, 164, 160, 164, 165, 152, 149, 174, 165, 163, 155, 166, 157, 161, 158, 165, 159, 159, 166, 171, 156, 163, 159, 164, 152, 165, 166, 157, 156, 157, 159, 160, 157, 159, 163, 161, 148, 158, 157, 165, 169, 160, 146, 158, 164, 158, 162, 160, 166, 166, 145, 156, 157, 162, 164, 157, 156, 169, 151, 162, 158, 159, 162, 159, 160, 164, 159, 164, 159, 158, 162, 161, 137, 161, 162, 161, 164, 156, 153, 159, 155, 154, 164, 158, 174, 157, 158, 170, 161, 155, 162, 162, 160, 158, 139, 160, 158, 155, 160, 161, 173, 163, 157, 170, 157, 166, 157, 157, 161, 161, 158, 152, 163, 160, 163, 159, 162, 162, 161, 159, 167, 161, 170, 157, 158, 154, 162, 164, 156, 163, 157, 163, 163, 159, 158, 156, 155, 156, 157, 165, 162, 150, 163, 167, 157, 164, 163, 162, 157, 163, 171, 164, 164, 159, 152, 159, 161, 161, 158, 156, 163, 161, 158, 153, 162, 153, 146, 160, 158, 160, 149, 159, 157, 161, 158, 166, 156, 154, 158, 158, 156, 154, 160, 165, 162, 164, 154, 159, 155, 154, 152, 150, 156, 162, 155, 163, 157, 158, 159, 172, 156, 161, 166, 159, 154, 157, 157, 164, 161, 162, 160, 163, 160, 164, 165, 148, 165, 156, 155, 163, 161, 161, 157, 154, 160, 163, 161, 145, 157, 158, 160, 160, 163, 152, 161, 174, 159, 158, 164, 165, 159, 155, 161, 153, 164, 158, 170, 168, 158, 162, 161, 161, 162, 156, 159, 155, 165, 164, 168, 157, 161, 168, 167, 166, 167, 158, 171, 151, 152, 160, 158, 159, 165, 158, 163, 159, 153, 156, 149, 168, 154, 171, 162, 151, 156, 163, 155, 156, 153, 154, 155, 154, 162, 156, 163, 163, 154, 158, 155, 159, 162, 165, 174, 159, 150, 161, 159, 165, 154, 168, 160, 167, 156, 162, 156, 150, 168, 156, 158, 161, 164, 162, 165, 158, 162, 163, 169, 170, 159, 165, 164, 163, 162, 158, 159, 159, 165, 160, 159, 160, 162, 164, 162, 169, 161, 157, 173, 155, 178, 155, 168, 161, 150, 161, 163, 157, 164, 161, 179, 161, 151, 156, 157, 161, 165, 161, 159, 153, 154, 161, 155, 168, 160, 159, 167, 155, 159, 162, 153, 162, 153, 157, 153, 162, 158, 165, 153, 153, 152, 159, 163, 157, 164, 164, 168, 158, 152, 159, 171, 163, 157, 162, 157, 151, 163, 156, 168, 160, 156, 164, 154, 158, 169, 160, 161, 168, 158, 161, 150, 159, 157, 168, 165, 160, 163, 158, 162, 158, 154, 156, 159, 154, 151, 159, 158, 165, 159, 158, 166, 153, 164, 169, 160, 171, 158, 155, 161, 151, 158, 163, 168, 164, 159, 156, 151, 153, 163, 164, 155, 154, 169, 158, 165, 160, 160, 153, 175, 156, 157, 162, 157, 161, 158, 161, 157, 160, 162, 159, 167, 159, 167, 166, 161, 159, 164, 166, 154, 161, 163, 162, 162, 160, 156, 158, 160, 153, 155, 159, 158, 157, 160, 157, 163, 159, 160, 154, 159, 159, 162, 165, 172, 152, 156, 161, 158, 155, 154, 159, 170, 175, 156, 160, 162, 157, 152, 162, 159, 168, 161, 159, 164, 165, 158, 155, 164, 163, 167, 164, 156, 161, 160, 152, 151, 172, 157, 156, 161, 162, 163, 158, 155, 151, 158, 157, 164, 158, 160, 160, 159, 161, 168, 168, 179, 157, 160, 156, 152, 157, 152, 163, 153, 166, 159, 157, 159, 158, 162, 159, 152, 157, 161, 168, 156, 153, 158, 161, 151, 156, 166, 159, 154, 162, 159, 154, 160, 164, 149, 161, 160, 167, 153, 153, 158, 153, 162, 154, 156, 150, 157, 155, 158, 158, 158, 170, 164, 161, 163, 163, 160, 161, 166, 157, 157, 156, 156, 162, 156, 157, 157, 157, 166, 151, 159, 161, 157, 160, 163, 162, 160, 156, 159, 166, 166, 161, 160, 148, 160, 161, 157, 165, 168, 172, 160, 158, 160, 158, 161, 157, 154, 159, 160, 159, 153, 159, 159, 157, 154, 160, 156, 166, 154, 167, 162, 153, 159, 157, 157, 165, 160, 160, 155, 155, 166, 156, 160, 164, 162, 171, 148, 157, 155, 163, 158, 146, 155, 164, 159, 161, 165, 164, 155, 166, 152, 153, 168, 162, 159, 167, 158, 166, 163, 154, 154, 158, 156, 154, 153, 162, 163, 158, 157, 162, 170, 161, 160, 160, 159, 156, 156, 157, 166, 160, 155, 159, 169, 155, 154, 156, 155, 157, 160, 163, 171, 155, 157, 148, 168, 157, 155, 163, 157, 154, 166, 159, 151, 162, 158, 170, 158, 165, 162, 168, 166, 152, 164, 160, 159, 154, 156, 160, 152, 157, 155, 155, 158, 162, 170, 157, 161, 168, 162, 159, 159, 161, 159, 162, 161, 157, 167, 159, 160, 161, 158, 167, 159, 163, 158, 155, 164, 157, 157, 163, 159, 156, 163, 159, 167, 161, 165, 157, 161, 163, 158, 156, 160, 154, 161, 171, 154, 161, 160, 164, 161, 154, 155, 161, 156, 171, 161, 154, 162, 160, 163, 169, 155, 155, 158, 160, 152, 162, 160, 163, 164, 160, 169, 162, 159, 158, 162, 159, 159, 159, 160, 160, 164, 164, 156, 151, 159, 168, 158, 161, 160, 165, 146, 155, 161, 157, 156, 153, 169, 153, 175, 157, 156, 163, 159, 165, 155, 171, 163, 159, 160, 157, 164, 164, 156, 154, 157, 158, 159, 157, 163, 168, 158, 155, 164, 166, 144, 164, 171, 171, 156, 164, 162, 167, 165, 154, 173, 159, 157, 155, 157, 171, 163, 169, 151, 159, 150, 161, 160, 165, 167, 164, 163, 164, 158, 169, 165, 167, 151, 146, 155, 160, 158, 161, 156, 164, 160, 164, 168, 158, 166, 164, 158, 167, 160, 163, 161, 162, 171, 164, 171, 165, 159, 161, 174, 157, 156, 162, 164, 169, 158, 165, 153, 146, 175, 168, 161, 162, 159, 170, 146, 160, 160, 160, 152, 166, 168, 158, 165, 138, 139, 163, 160, 166, 158, 146, 142, 154, 158, 163, 153, 166, 169, 160, 170, 165, 159, 156, 152, 162, 161, 160, 157, 161, 159, 161, 160, 146, 169, 160, 164, 155, 149, 147, 156, 162, 162, 156, 149, 155, 154, 171, 158, 161, 168, 158, 158, 162, 158, 153, 156, 157, 153, 165, 155, 149, 159, 159, 166, 166, 150, 162, 174, 158, 161, 173, 159, 141, 165, 159, 156, 167, 163, 150, 161, 164, 172, 165, 158, 180, 166, 167, 161, 172, 150, 172, 167, 153, 165, 159, 161, 161, 164, 158, 151, 164, 168, 165, 160, 158, 167, 148, 169, 161, 160, 163, 156, 147, 164, 158, 165, 171, 160, 156, 158, 160, 140, 157, 162, 142, 159, 168, 159, 133, 162, 160, 164, 159, 158, 150, 163, 160, 153, 158, 147, 173, 164, 158, 160, 153, 157, 173, 175, 154, 153, 148, 181, 160, 162, 174, 154, 162, 169, 157, 159, 178, 168, 151, 169, 160, 147, 173, 151, 165, 158, 165, 154, 157, 166, 158, 181, 158, 170, 162, 156, 161, 173, 147, 138, 159, 140, 145, 170, 155, 153, 163, 159, 171, 174, 163, 133, 164, 159, 147, 160, 148, 146, 156, 146, 167, 160, 161, 174, 167, 165, 153, 153, 157, 170, 168, 164, 150, 164, 149, 159, 158, 173, 156, 158, 155, 143, 154, 158, 158, 153, 166, 170, 176, 158, 162, 181, 161, 168, 159, 171, 172, 162, 162, 158, 157, 165, 157, 163, 142, 170, 162, 161, 161, 151, 159, 172, 159, 151, 167, 158, 158, 163, 173, 171, 166, 163, 159, 160, 154, 156, 169, 159, 178, 166, 171, 166, 150, 159, 159, 157, 147, 148, 161, 147, 155, 163, 163, 157, 156, 164, 168, 162, 159, 150, 151, 156, 158, 156, 162, 161, 155, 173, 153, 163, 147, 156, 150, 157, 152, 147, 166, 156, 158, 159, 158, 162, 152, 162, 175, 156, 127, 167, 166, 163, 157, 162, 162, 154, 164, 163, 150, 169, 160, 166, 167, 159, 164, 173, 151, 169, 153, 161, 159, 164, 159, 159, 152, 160, 158, 161, 163, 155, 174, 156, 159, 165, 154, 166, 175, 151, 165, 149, 150, 161, 160, 161, 149, 151, 182, 161, 152, 156, 163, 159, 172, 178, 149, 164, 164, 159, 163, 174, 162, 159, 158, 168, 168, 163, 165, 154, 151, 162, 168, 164, 151, 167, 164, 169, 162, 160, 175, 189, 155, 182, 170, 153, 154, 160, 160, 151, 162, 151, 162, 156, 159, 151, 134, 164, 155, 171, 166, 162, 156, 159, 188, 161, 154, 157, 155, 158, 145, 159, 156, 149, 164, 165, 161, 160, 168, 155, 158, 164, 158, 188, 147, 173, 161, 160, 167, 167, 180, 157, 153, 169, 151, 159, 153, 167, 156, 153, 164, 160, 178, 150, 164, 157, 164, 160, 156, 153, 168, 168, 162, 118, 164, 159, 153, 174, 153, 168, 141, 174, 170, 170, 156, 149, 159, 167, 164, 153, 155, 179, 157, 143, 155, 163, 160, 143, 167, 159, 167, 150, 159, 152, 159, 154, 156, 169, 160, 162, 158, 162, 159, 153, 164, 159, 160, 165, 158, 156, 149, 157, 157, 159, 156, 162, 164, 165, 151, 161, 170, 163, 149, 157, 156, 154, 163, 154, 175, 149, 169, 167, 165, 152, 163, 146, 168, 159, 158, 166, 162, 158, 164, 161, 158, 154, 153, 152, 154, 149, 159, 161, 158, 163, 160, 154, 165, 166, 165, 158, 148, 163, 164, 155, 167, 163, 173, 151, 157, 161, 161, 160, 169, 161, 160, 162, 154, 152, 155, 167, 170, 157, 153, 160, 171, 162, 157, 171, 157, 157, 160, 155, 150, 147, 165, 163, 165, 159, 164, 166, 168, 156, 157, 151, 166, 167, 159, 166, 159, 157, 158, 157, 159, 158, 162, 151, 160, 159, 160, 161, 155, 162, 156, 163, 162, 171, 147, 156, 157, 158, 151, 158, 154, 154, 170, 159, 160, 160, 166, 155, 163, 158, 155, 157, 157, 156, 158, 154, 170, 162, 152, 166, 169, 161, 163, 161, 169, 160, 164, 161, 153, 164, 151, 158, 147, 167, 147, 160, 163, 160, 163, 163, 162, 161, 175, 163, 157, 171, 166, 156, 158, 157, 156, 153, 156, 160, 153, 152, 165, 157, 155, 165, 160, 162, 161, 150, 149, 166, 169, 159, 164, 159, 160, 159, 155, 158, 159, 161, 154, 159, 158, 164, 159, 165, 161, 162, 162, 149, 163, 173, 158, 158, 161, 156, 164, 157, 153, 169, 149, 165, 161, 163, 154, 157, 159, 155, 161, 156, 159, 150, 147, 150, 158, 159, 163, 163, 163, 160, 159, 149, 159, 168, 159, 167, 163, 160, 155, 161, 166, 157, 155, 169, 157, 179, 150, 165, 159, 168, 160, 159, 159, 155, 163, 157, 155, 166, 152, 160, 165, 160, 156, 163, 164, 157, 164, 153, 159, 155, 163, 161, 145, 164, 155, 154, 168, 151, 165, 164, 163, 156, 160, 169, 154, 156, 162, 170, 167, 162, 163, 152, 157, 162, 166, 149, 155, 169, 159, 154, 150, 158, 156, 161, 158, 166, 161, 161, 167, 157, 157, 172, 146, 153, 163, 157, 163, 149, 155, 162, 157, 163, 166, 154, 164, 154, 161, 157, 157, 163, 153, 161, 167, 159, 164, 161, 163, 159, 152, 161, 158, 153, 156, 169, 156, 153, 158, 170, 154, 164, 157, 169, 148, 161, 163, 151, 158, 164, 162, 158, 160, 164, 154, 158, 162, 160, 166, 154, 155, 162, 171, 147, 162, 149, 148, 167, 161, 155, 159, 162, 151, 165, 168, 144, 159, 151, 164, 164, 162, 177, 156, 160, 164, 160, 161, 154, 160, 157, 158, 161, 156, 164, 164, 156, 161, 156, 155, 160, 164, 156, 163, 165, 160, 158, 161, 152, 160, 156, 155, 156, 164, 160, 155, 152, 165, 158, 149, 161, 159, 155, 165, 168, 160, 166, 166, 155, 164, 151, 158, 156, 160, 180, 162, 175, 161, 162, 156, 162, 167, 161, 168, 167, 164, 161, 165, 167, 153, 156, 171, 164, 163, 159, 172, 156, 164, 170, 154, 171, 155, 164, 161, 167, 165, 158, 157, 172, 160, 155, 161, 153, 164, 162, 160, 156, 156, 153, 167, 152, 162, 161, 164, 148, 160, 149, 162, 147, 161, 156, 154, 163, 155, 167, 161, 174, 161, 176, 166, 163, 146, 162, 156, 176, 163, 151, 160, 159, 158, 159, 164, 162, 165, 171, 162, 164, 159, 164, 175, 168, 160, 159, 166, 147, 161, 157, 161, 166, 166, 152, 160, 151, 161, 158, 171, 157, 151, 139, 164, 152, 158, 165, 154, 157, 162, 154, 154, 166, 161, 159, 157, 160, 151, 158, 159, 163, 159, 163, 159, 156, 158, 160, 148, 166, 149, 153, 160, 165, 153, 174, 166, 157, 158, 165, 160, 162, 156, 153, 155, 165, 157, 155, 174, 147, 156, 155, 160, 161, 158, 160, 163, 159, 153, 168, 158, 159, 144, 160, 156, 157, 144, 161, 158, 145, 160, 163, 160, 166, 156, 165, 165, 159, 160, 157, 152, 158, 155, 167, 166, 154, 151, 167, 157, 151, 164, 151, 157, 167, 151, 158, 159, 158, 162, 150, 149, 152, 148, 160, 161, 168, 164, 159, 167, 168, 148, 174, 156, 162, 169, 161, 169, 160, 158, 168, 158, 163, 164, 166, 174, 160, 161, 162, 167, 146, 161, 165, 164, 170, 163, 154, 165, 158, 155, 154, 169, 166, 165, 160, 157, 152, 161, 168, 159, 156, 165, 150, 166, 155, 156, 160, 168, 168, 153, 149, 160, 154, 160, 156, 152, 168, 161, 166, 160, 153, 160, 164, 157, 164, 158, 159, 154, 156, 162, 160, 146, 155, 169, 133, 162, 156, 154, 164, 154, 156, 164, 164, 151, 173, 154, 162, 165, 163, 153, 164, 153, 162, 164, 163, 169, 177, 163, 173, 163, 163, 169, 149, 144, 169, 149, 159, 155, 162, 164, 155, 171, 158, 155, 167, 168, 182, 159, 160, 164, 162, 160, 170, 161, 158, 169, 156, 162, 147, 154, 152, 163, 159, 162, 157, 154, 161, 163, 164, 163, 155, 171, 176, 165, 165, 148, 150, 159, 159, 157, 156, 172, 162, 162, 155, 159, 163, 159, 160, 158, 182, 153, 150, 162, 165, 160, 150, 167, 151, 163, 153, 158, 160, 170, 160, 153, 155, 158, 157, 155, 163, 172, 164, 165, 165, 161, 167, 154, 156, 161, 166, 164, 158, 150, 150, 156, 161, 163, 165, 156, 162, 143, 157, 166, 154, 154, 154, 166, 161, 159, 164, 160, 155, 159, 169, 168, 159, 159, 164, 147, 159, 157, 163, 162, 149, 165, 163, 164, 160, 155, 149, 149, 156, 164, 162, 144, 158, 163, 162, 175, 153, 153, 164, 162, 168, 155, 152, 161, 160, 157, 157, 161, 164, 164, 172, 165, 147, 158, 161, 170, 153, 161, 151, 170, 161, 173, 154, 153, 152, 160, 162, 158, 165, 164, 164, 155, 167, 158, 144, 160, 155, 161, 157, 159, 155, 161, 154, 169, 149, 153, 161, 160, 157, 158, 151, 150, 155, 152, 155, 165, 167, 161, 154, 160, 154, 160, 159, 147, 173, 165, 153, 162, 163, 159, 147, 170, 151, 157, 164, 162, 157, 163, 169, 164, 166, 170, 158, 176, 161, 170, 154, 161, 151, 160, 162, 152, 150, 159, 161, 164, 158, 141, 165, 154, 168, 155, 161, 158, 164, 171, 162, 165, 164, 168, 154, 163, 166, 163, 166, 152, 148, 174, 165, 157, 164, 168, 163, 164, 161, 159, 160, 157, 154, 153, 156, 160, 160, 154, 154, 163, 157, 165, 167, 164, 161, 170, 156, 166, 162, 158, 156, 161, 173, 157, 158, 163, 162, 151, 160, 157, 161, 164, 164, 154, 164, 158, 164, 163, 164, 157, 170, 167, 162, 172, 158, 158, 155, 160, 164, 152, 165, 159, 162, 155, 164, 163, 164, 159, 152, 154, 157, 160, 161, 159, 159, 156, 163, 162, 161, 162, 157, 150, 158, 159, 162, 164, 165, 161, 162, 161, 158, 156, 174, 154, 161, 165, 155, 160, 158, 173, 157, 158, 155, 159, 156, 167, 159, 164, 171, 155, 158, 158, 157, 161, 152, 159, 163, 154, 163, 159, 167, 163, 161, 163, 171, 158, 161, 159, 163, 162, 159, 166, 159, 157, 160, 160, 160, 156, 156, 166, 166, 168, 150, 170, 157, 160, 164, 157, 159, 165, 159, 164, 158, 154, 153, 162, 157, 163, 159, 158, 158, 161, 163, 161, 165, 161, 161, 154, 160, 168, 162, 159, 160, 170, 162, 152, 154, 163, 157, 174, 157, 168, 160, 157, 152, 155, 155, 160, 163, 162, 170, 173, 162, 167, 160, 154, 150, 168, 155, 166, 161, 156, 153, 158, 155, 147, 159, 158, 176, 167, 155, 164, 169, 160, 166, 156, 158, 154, 154, 163, 156, 159, 167, 161, 160, 156, 170, 159, 157, 155, 173, 156, 156, 165, 154, 174, 159, 162, 166, 165, 161, 159, 164, 161, 155, 166, 159, 166, 162, 162, 165, 157, 156, 153, 170, 165, 160, 151, 160, 159, 159, 155, 161, 156, 150, 168, 155, 158, 156, 160, 157, 161, 156, 151, 164, 162, 162, 163, 159, 163, 160, 159, 157, 156, 163, 167, 154, 168, 162, 151, 145, 155, 161, 164, 158, 158, 157, 158, 157, 153, 163, 154, 159, 172, 160, 155, 159, 161, 161, 156, 157, 156, 160, 165, 162, 155, 158, 163, 167, 172, 166, 163, 165, 154, 148, 157, 163, 162, 157, 158, 161, 161, 164, 157, 152, 172, 165, 162, 158, 159, 165, 159, 160, 159, 160, 159, 157, 169, 155, 167, 163, 157, 167, 160, 166, 165, 164, 163, 147, 162, 162, 158, 166, 158, 157, 163, 161, 155, 163, 159, 164, 158, 159, 150, 162, 161, 165, 160, 162, 160, 165, 155, 150, 161, 160, 160, 160, 165, 159, 160, 161, 171, 153, 174, 155, 158, 164, 153, 156, 161, 161, 158, 157, 165, 163, 158, 155, 162, 162, 163, 150, 161, 158, 156, 163, 164, 161, 160, 162, 157, 158, 155, 157, 161, 153, 161, 163, 162, 161, 157, 162, 157, 158, 158, 157, 161, 162, 164, 165, 159, 162, 159, 159, 159, 165, 156, 159, 161, 155, 160, 159, 163, 160, 162, 158, 163, 161, 162, 167, 161, 185, 160, 157, 161, 155, 161, 159, 159, 167, 159, 168, 165, 161, 157, 162, 157, 162, 159, 160, 162, 153, 158, 156, 170, 158, 158, 167, 156, 157, 153, 160, 160, 165, 168, 156, 166, 143, 154, 169, 162, 159, 153, 164, 159, 160, 163, 158, 153, 165, 170, 156, 161, 160, 161, 157, 156, 157, 161, 154, 153, 161, 168, 154, 167, 154, 155, 163, 158, 164, 156, 159, 162, 163, 159, 145, 159, 159, 155, 158, 171, 164, 165, 164, 155, 163, 164, 163, 163, 163, 156, 169, 149, 155, 152, 144, 156, 155, 162, 162, 160, 154, 159, 156, 159, 165, 161, 167, 153, 160, 156, 148, 178, 159, 169, 162, 161, 156, 156, 160, 160, 157, 160, 160, 160, 171, 169, 167, 158, 156, 168, 159, 156, 152, 165, 161, 152, 158, 158, 160, 162, 153, 154, 155, 171, 160, 177, 154, 158, 158, 159, 165, 155, 155, 161, 163, 165, 167, 158, 157, 155, 163, 160, 154, 149, 160, 153, 162, 150, 155, 160, 164, 150, 157, 156, 159, 152, 162, 160, 155, 163, 155, 163, 155, 155, 172, 163, 167, 151, 168, 168, 147, 158, 161, 161, 163, 161, 161, 156, 169, 162, 162, 158, 167, 157, 166, 174, 158, 157, 159, 158, 167, 159, 160, 166, 162, 149, 157, 156, 157, 156, 166, 162, 153, 158, 178, 173, 161, 162, 165, 167, 157, 155, 155, 160, 164, 157, 162, 153, 163, 162, 160, 151, 153, 161, 158, 153, 154, 149, 157, 149, 163, 156, 144, 160, 162, 167, 158, 160, 163, 158, 149, 153, 153, 159, 155, 155, 157, 167, 152, 164, 157, 159, 156, 153, 164, 173, 180, 158, 162, 154, 153, 153, 164, 160, 150, 160, 163, 156, 155, 156, 162, 157, 161, 153, 158, 155, 152, 166, 166, 155, 158, 153, 151, 157, 166, 154, 160, 157, 158, 153, 163, 157, 160, 159, 156, 157, 160, 157, 159, 151, 167, 158, 150, 158, 172, 158, 154, 161, 157, 157, 153, 155, 167, 163, 154, 168, 159, 165, 153, 171, 150, 154, 156, 150, 165, 159, 171, 164, 149, 162, 165, 156, 164, 162, 160, 153, 166, 163, 151, 160, 165, 155, 177, 161, 154, 154, 148, 151, 155, 162, 157, 160, 149, 154, 161, 155, 155, 159, 159, 150, 153, 156, 159, 154, 157, 163, 159, 158, 162, 155, 162, 173, 154, 156, 164, 148, 158, 161, 166, 151, 164, 157, 162, 171, 164, 157, 158, 174, 166, 163, 159, 159, 158, 167, 164, 158, 163, 150, 156, 150, 172, 167, 160, 169, 168, 159, 160, 156, 160, 158, 150, 161, 157, 150, 159, 167, 153, 168, 155, 176, 163, 168, 163, 158, 142, 158, 151, 154, 155, 155, 170, 161, 165, 161, 156, 158, 161, 156, 163, 163, 168, 158, 158, 148, 153, 168, 157, 157, 154, 154, 164, 158, 157, 163, 150, 162, 173, 163, 155, 154, 163, 163, 161, 160, 175, 155, 160, 161, 166, 156, 177, 169, 167, 160, 152, 155, 161, 163, 158, 161, 165, 161, 156, 159, 150, 164, 157, 166, 157, 156, 164, 153, 160, 152, 147, 158, 155, 158, 169, 155, 154, 157, 161, 151, 158, 163, 166, 161, 161, 159, 161, 167, 160, 157, 163, 157, 161, 156, 168, 162, 171, 154, 167, 159, 156, 169, 155, 169, 156, 152, 160, 160, 156, 155, 168, 150, 160, 156, 151, 156, 159, 160, 144, 162, 159, 154, 175, 162, 154, 163, 161, 155, 160, 159, 162, 154, 159, 159, 181, 171, 154, 169, 160, 156, 155, 153, 158, 177, 159, 168, 155, 156, 158, 150, 157, 157, 158, 159, 161, 155, 166, 162, 162, 166, 159, 163, 167, 162, 155, 172, 157, 164, 155, 160, 154, 161, 159, 166, 158, 157, 169, 156, 158, 160, 156, 162, 156, 161, 158, 164, 163, 161, 153, 155, 153, 159, 161, 160, 162, 181, 161, 163, 155, 156, 161, 157, 167, 158, 166, 157, 168, 162, 164, 158, 157, 165, 166, 161, 161, 180, 154, 153, 157, 155, 148, 162, 158, 160, 159, 159, 156, 157, 158, 164, 172, 159, 162, 160, 164, 152, 158, 161, 167, 163, 159, 161, 151, 160, 156, 154, 165, 160, 166, 157, 164, 170, 160, 162, 151, 161, 160, 160, 160, 162, 166, 158, 156, 164, 152, 160, 156, 152, 160, 164, 149, 160, 157, 161, 162, 160, 160, 158, 163, 160, 160, 161, 161, 159, 166, 155, 154, 165, 161, 162, 150, 158, 167, 159, 157, 149, 157, 161, 157, 167, 150, 156, 162, 166, 158, 160, 158, 158, 161, 164, 155, 164, 157, 147, 155, 158, 163, 165, 166, 153, 157, 157, 155, 159, 164, 162, 161, 156, 179, 161, 158, 159, 160, 158, 152, 159, 165, 154, 156, 157, 163, 163, 162, 160, 159, 165, 159, 156, 158, 170, 166, 162, 136, 168, 154, 154, 163, 161, 163, 159, 161, 161, 159, 155, 155, 158, 159, 163, 160, 165, 158, 156, 157, 145, 164, 160, 157, 157, 146, 160, 159, 152, 161, 164, 155, 153, 164, 158, 162, 154, 158, 164, 159, 156, 163, 171, 159, 166, 166, 154, 159, 157, 160, 151, 158, 158, 167, 159, 157, 170, 167, 166, 158, 164, 155, 162, 159, 161, 160, 172, 143, 154, 177, 155, 155, 163, 154, 155, 154, 157, 153, 160, 151, 152, 158, 164, 154, 166, 164, 162, 160, 163, 153, 161, 157, 163, 156, 155, 159, 168, 166, 164, 161, 156, 163, 153, 154, 158, 172, 157, 166, 167, 157, 157, 158, 150, 157, 156, 153, 165, 176, 164, 158, 159, 161, 158, 162, 162, 159, 158, 169, 165, 165, 166, 162, 158, 162, 159, 153, 161, 152, 165, 162, 162, 167, 162, 166, 155, 154, 151, 157, 160, 153, 156, 159, 164, 159, 160, 158, 157, 156, 160, 156, 152, 161, 164, 158, 160, 156, 160, 159, 151, 161, 146, 156, 167, 157, 158, 160, 161, 167, 158, 159, 168, 163, 162, 158, 161, 164, 166, 159, 159, 163, 164, 158, 167, 164, 156, 146, 148, 154, 169, 164, 170, 162, 159, 162, 150, 164, 159, 159, 161, 158, 155, 158, 160, 161, 153, 164, 155, 165, 160, 156, 155, 160, 159, 162, 160, 161, 157, 155, 157, 158, 169, 165, 162, 157, 158, 155, 167, 152, 159, 155, 159, 162, 162, 158, 156, 161, 160, 160, 156, 162, 146, 163, 147, 159, 157, 160, 154, 164, 165, 162, 164, 163, 161, 166, 169, 158, 160, 160, 160, 155, 160, 167, 166, 156, 154, 173, 159, 159, 165, 158, 158, 161, 161, 153, 166, 157, 157, 160, 167, 160, 156, 165, 154, 157, 162, 160, 160, 154, 146, 169, 168, 159, 145, 158, 160, 171, 159, 153, 165, 159, 163, 165, 162, 158, 158, 161, 152, 161, 166, 159, 157, 161, 156, 158, 162, 161, 164, 159, 173, 166, 164, 162, 172, 161, 161, 155, 161, 152, 156, 154, 157, 157, 167, 156, 157, 165, 164, 152, 163, 149, 157, 164, 164, 155, 149, 163, 161, 153, 157, 148, 165, 159, 156, 156, 151, 149, 158, 162, 155, 159, 159, 162, 153, 153, 164, 164, 158, 154, 176, 153, 162, 157, 161, 164, 159, 157, 165, 163, 157, 157, 161, 162, 161, 157, 155, 164, 156, 165, 149, 164, 156, 156, 167, 162, 164, 163, 158, 167, 164, 163, 172, 157, 149, 158, 161, 158, 159, 155, 163, 153, 143, 156, 156, 193, 158, 156, 159, 153, 161, 160, 165, 156, 157, 158, 161, 164, 160, 149, 156, 156, 158, 164, 156, 153, 160, 159, 156, 156, 150, 158, 160, 151, 170, 159, 165, 160, 165, 165, 151, 160, 167, 163, 154, 160, 158, 159, 166, 163, 161, 155, 159, 157, 138, 166, 153, 163, 162, 157, 155, 156, 167, 157, 149, 155, 164, 162, 150, 158, 160, 152, 159, 159, 163, 157, 158, 159, 159, 160, 160, 162, 157, 158, 164, 161, 152, 156, 162, 157, 151, 162, 168, 158, 164, 151, 156, 156, 164, 156, 162, 157, 158, 162, 155, 155, 156, 166, 149, 154, 152, 146, 156, 157, 164, 155, 158, 161, 159, 172, 149, 162, 162, 161, 159, 167, 159, 160, 155, 157, 159, 161, 153, 155, 160, 163, 159, 150, 160, 154, 168, 168, 154, 164, 169, 157, 161, 155, 162, 157, 177, 155, 150, 157, 155, 160, 170, 159, 162, 156, 151, 159, 159, 168, 159, 159, 165, 169, 155, 163, 161, 158, 157, 153, 166, 162, 163, 158, 158, 165, 165, 158, 150, 159, 163, 154, 163, 159, 148, 164, 132, 149, 156, 162, 162, 160, 151, 174, 170, 159, 159, 160, 159, 161, 153, 156, 159, 162, 157, 157, 155, 141, 165, 150, 155, 152, 158, 160, 157, 163, 159, 165, 149, 154, 162, 160, 167, 176, 161, 157, 142, 157, 161, 153, 161, 159, 165, 160, 156, 155, 157, 158, 165, 161, 162, 165, 156, 163, 151, 153, 155, 165, 152, 157, 156, 159, 161, 148, 166, 155, 168, 153, 165, 169, 169, 166, 163, 159, 150, 160, 154, 150, 156, 135, 153, 164, 160, 160, 158, 157, 156, 163, 156, 161, 160, 154, 158, 171, 153, 155, 164, 154, 158, 155, 179, 177, 166, 171, 159, 157, 158, 167, 160, 161, 155, 161, 156, 170, 139, 172, 156, 158, 164, 167, 157, 154, 160, 166, 168, 160, 157, 159, 162, 160, 159, 162, 161, 158, 168, 163, 149, 161, 164, 151, 148, 168, 157, 146, 156, 161, 154, 160, 161, 152, 158, 160, 166, 160, 172, 155, 162, 160, 159, 155, 161, 170, 158, 157, 158, 150, 165, 160, 152, 157, 168, 169, 157, 167, 157, 158, 163, 168, 161, 161, 163, 160, 173, 153, 154, 162, 172, 156, 156, 155, 159, 163, 169, 163, 159, 155, 153, 138, 161, 162, 168, 157, 165, 160, 157, 166, 157, 154, 147, 153, 154, 167, 157, 174, 169, 162, 156, 153, 158, 168, 168, 164, 150, 155, 157, 164, 158, 156, 158, 167, 163, 170, 163, 175, 165, 151, 152, 149, 159, 163, 165, 151, 161, 157, 163, 157, 160, 156, 156, 149, 149, 159, 167, 154, 156, 167, 162, 159, 169, 145, 146, 158, 168, 164, 190, 152, 171, 160, 147, 160, 157, 172, 149, 157, 160, 169, 160, 160, 167, 158, 160, 158, 155, 194, 148, 156, 156, 164, 169, 157, 169, 166, 162, 161, 163, 162, 145, 166, 158, 153, 152, 159, 151, 164, 155, 152, 166, 163, 153, 157, 158, 156, 161, 154, 154, 165, 153, 159, 153, 156, 162, 165, 168, 163, 164, 150, 164, 167, 159, 156, 165, 162, 154, 158, 158, 167, 150, 155, 164, 160, 159, 164, 168, 167, 155, 156, 158, 157, 159, 155, 170, 161, 162, 162, 156, 164, 158, 160, 175, 151, 165, 139, 159, 166, 162, 159, 178, 155, 177, 159, 165, 160, 157, 158, 141, 166, 144, 155, 159, 161, 153, 167, 156, 164, 162, 180, 155, 163, 160, 160, 151, 156, 162, 154, 157, 164, 162, 169, 157, 135, 163, 160, 155, 157, 157, 147, 163, 153, 160, 154, 160, 160, 154, 160, 157, 158, 156, 162, 153, 163, 160, 152, 158, 156, 171, 167, 168, 155, 164, 163, 180, 152, 156, 159, 150, 148, 164, 163, 155, 166, 150, 151, 152, 164, 153, 154, 161, 168, 157, 166, 160, 154, 164, 149, 161, 153, 162, 161, 157, 155, 156, 158, 168, 156, 170, 155, 150, 162, 157, 167, 158, 160, 159, 172, 159, 162, 155, 169, 157, 164, 153, 158, 157, 163, 158, 158, 162, 150, 170, 163, 163, 157, 161, 157, 158, 155, 151, 160, 160, 160, 161, 153, 162, 157, 167, 157, 157, 173, 161, 167, 155, 167, 172, 166, 158, 158, 157, 164, 168, 161, 153, 162, 151, 163, 160, 153, 160, 156, 156, 160, 164, 151, 168, 165, 158, 147, 156, 166, 153, 163, 155, 159, 157, 164, 159, 160, 163, 152, 162, 170, 156, 169, 175, 150, 155, 167, 154, 145, 145, 157, 174, 170, 167, 156, 173, 153, 165, 158, 166, 152, 151, 165, 162, 169, 175, 150, 167, 176, 173, 153, 165, 157, 159, 156, 163, 147, 163, 159, 150, 166, 168, 151, 151, 165, 162, 164, 157, 154, 159, 159, 140, 172, 167, 161, 166, 157, 158, 173, 165, 161, 152, 161, 156, 162, 155, 168, 161, 163, 174, 158, 152, 163, 151, 161, 162, 161, 163, 164, 164, 159, 161, 172, 164, 169, 162, 161, 155, 168, 153, 156, 173, 160, 162, 150, 141, 148, 159, 151, 154, 163, 156, 157, 149, 152, 160, 154, 152, 160, 166, 160, 154, 172, 160, 159, 155, 155, 162, 165, 145, 144, 161, 147, 163, 153, 155, 170, 163, 159, 165, 171, 164, 159, 155, 155, 152, 143, 163, 176, 160, 146, 150, 150, 169, 157, 169, 159, 151, 160, 160, 162, 164, 163, 160, 163, 150, 155, 165, 163, 156, 169, 163, 156, 153, 141, 156, 160, 169, 172, 160, 161, 144, 171, 160, 170, 167, 163, 158, 159, 153, 156, 157, 156, 170, 163, 166, 164, 161, 155, 156, 158, 175, 167, 162, 166, 181, 168, 160, 154, 161, 164, 164, 161, 148, 154, 148, 169, 160, 170, 156, 160, 160, 152, 155, 152, 155, 155, 162, 166, 162, 150, 157, 158, 153, 159, 179, 165, 155, 165, 165, 158, 163, 160, 161, 145, 165, 155, 166, 160, 155, 154, 163, 154, 160, 162, 165, 165, 165, 157, 168, 155, 157, 158, 155, 167, 155, 164, 161, 162, 160, 157, 165, 120, 149, 154, 165, 156, 168, 159, 171, 161, 176, 165, 153, 160, 148, 151, 155, 161, 158, 157, 174, 160, 171, 155, 163, 160, 157, 146, 157, 147, 163, 169, 145, 176, 165, 169, 168, 166, 161, 160, 150, 169, 170, 167, 158, 161, 155, 167, 159, 119, 160, 159, 171, 166, 168, 151, 162, 159, 156, 162, 162, 164, 177, 167, 170, 159, 169, 153, 119, 163, 159, 164, 155, 157, 165, 154, 164, 156, 157, 165, 164, 159, 159, 155, 159, 173, 153, 158, 163, 154, 171, 160, 153, 173, 157, 144, 150, 167, 162, 160, 153, 173, 159, 150, 155, 154, 152, 169, 167, 158, 160, 151, 163, 160, 169, 141, 155, 176, 157, 154, 154, 160, 163, 157, 151, 167, 163, 157, 158, 159, 151, 162, 155, 161, 155, 158, 156, 169, 163, 149, 171, 163, 159, 147, 155, 152, 151, 155, 164, 166, 166, 168, 152, 161, 163, 169, 167, 166, 169, 156, 163, 177, 161, 164, 170, 160, 163, 148, 167, 164, 147, 152, 158, 170, 147, 166, 158, 157, 166, 154, 151, 160, 148, 164, 163, 127, 171, 154, 171, 159, 164, 153, 155, 176, 165, 157, 160, 162, 154, 187, 160, 151, 170, 161, 165, 166, 159, 160, 153, 162, 169, 164, 159, 168, 160, 152, 174, 157, 169, 167, 159, 150, 158, 157, 152, 153, 171, 157, 162, 167, 163, 156, 160, 190, 156, 164, 160, 149, 165, 141, 178, 159, 160, 153, 163, 157, 155, 158, 159, 148, 151, 156, 171, 149, 168, 164, 173, 167, 152, 161, 161, 177, 161, 164, 152, 171, 163, 154, 164, 159, 171, 158, 152, 155, 155, 176, 163, 146, 166, 169, 168, 160, 157, 154, 156, 151, 172, 173, 150, 159, 151, 159, 156, 154, 153, 173, 162, 161, 159, 159, 170, 164, 159, 153, 161, 165, 162, 166, 152, 152, 151, 163, 144, 161, 152, 164, 172, 161, 165, 161, 163, 160, 169, 145, 159, 143, 163, 163, 150, 164, 166, 164, 146, 169, 155, 163, 171, 148, 156, 158, 153, 149, 161, 160, 145, 153, 169, 161, 169, 157, 161, 158, 160, 166, 159, 160, 157, 135, 162, 164, 161, 152, 166, 150, 166, 154, 153, 162, 163, 151, 155, 153, 160, 162, 165, 171, 160, 167, 155, 160, 162, 153, 152, 157, 160, 147, 152, 169, 158, 171, 173, 158, 159, 154, 161, 156, 155, 162, 159, 166, 166, 159, 155, 150, 162, 181, 163, 163, 166, 160, 164, 166, 159, 158, 158, 153, 162, 161, 168, 167, 161, 154, 156, 166, 159, 166, 161, 150, 163, 165, 158, 158, 156, 163, 156, 163, 157, 159, 158, 169, 158, 159, 160, 156, 157, 154, 159, 147, 161, 159, 156, 156, 156, 162, 160, 163, 154, 164, 157, 158, 160, 165, 164, 159, 159, 158, 162, 162, 161, 161, 169, 156, 161, 159, 160, 165, 157, 164, 150, 167, 158, 156, 159, 157, 151, 164, 163, 159, 159, 135, 155, 155, 159, 154, 172, 157, 163, 160, 146, 162, 161, 166, 149, 159, 162, 142, 140, 164, 155, 165, 164, 158, 156, 162, 148, 156, 155, 147, 154, 182, 157, 158, 157, 152, 156, 163, 157, 154, 158, 169, 160, 161, 162, 160, 158, 164, 155, 151, 157, 163, 159, 159, 167, 159, 159, 165, 146, 161, 163, 163, 160, 162, 152, 158, 163, 159, 171, 170, 161, 161, 152, 155, 162, 158, 154, 153, 159, 149, 157, 145, 154, 158, 154, 158, 164, 141, 153, 156, 165, 155, 167, 168, 165, 162, 162, 165, 156, 166, 164, 168, 139, 155, 160, 161, 159, 162, 161, 163, 155, 164, 156, 151, 155, 162, 161, 168, 160, 161, 172, 151, 151, 152, 170, 164, 166, 161, 155, 156, 157, 166, 155, 152, 171, 159, 161, 168, 161, 163, 167, 149, 156, 162, 152, 153, 152, 160, 159, 158, 158, 157, 157, 162, 158, 157, 159, 157, 159, 154, 162, 158, 170, 157, 162, 161, 157, 173, 160, 166, 148, 162, 152, 172, 159, 171, 162, 158, 166, 150, 156, 155, 155, 152, 156, 155, 159, 163, 160, 158, 163, 157, 149, 161, 157, 164, 159, 164, 163, 151, 159, 158, 161, 166, 157, 164, 159, 167, 155, 160, 164, 153, 158, 157, 151, 149, 156, 152, 148, 168, 155, 157, 154, 162, 160, 161, 159, 165, 156, 167, 163, 159, 156, 158, 153, 162, 168, 170, 160, 156, 158, 157, 156, 159, 158, 150, 161, 164, 162, 170, 156, 160, 160, 172, 162, 161, 160, 165, 152, 159, 158, 163, 152, 154, 162, 157, 156, 156, 159, 159, 154, 163, 164, 162, 160, 164, 148, 165, 166, 146, 156, 160, 152, 155, 158, 170, 157, 166, 152, 163, 161, 159, 154, 161, 163, 167, 158, 159, 163, 159, 161, 168, 166, 156, 164, 169, 168, 158, 155, 161, 178, 151, 153, 156, 168, 160, 157, 153, 165, 164, 164, 169, 157, 160, 157, 158, 156, 158, 160, 155, 149, 163, 160, 161, 163, 159, 162, 154, 160, 156, 166, 156, 154, 166, 154, 146, 156, 154, 163, 159, 162, 179, 158, 163, 155, 158, 153, 157, 152, 166, 161, 162, 163, 170, 164, 151, 171, 155, 159, 163, 159, 156, 172, 156, 160, 149, 162, 169, 162, 157, 170, 162, 153, 168, 154, 158, 165, 156, 158, 158, 157, 158, 159, 154, 155, 162, 160, 162, 154, 165, 163, 167, 162, 163, 166, 167, 159, 152, 158, 161, 180, 157, 140, 160, 162, 154, 161, 161, 160, 159, 156, 157, 139, 151, 161, 162, 165, 158, 157, 156, 167, 161, 150, 162, 161, 161, 163, 161, 161, 158, 164, 156, 157, 161, 155, 159, 161, 159, 162, 161, 161, 164, 161, 160, 160, 154, 165, 164, 162, 154, 181, 162, 155, 155, 166, 165, 159, 161, 157, 162, 161, 168, 152, 160, 163, 163, 152, 159, 156, 157, 162, 161, 165, 160, 161, 159, 160, 159, 166, 161, 156, 162, 160, 166, 158, 142, 162, 156, 155, 161, 156, 162, 164, 166, 162, 169, 163, 159, 154, 153, 156, 156, 157, 158, 159, 168, 159, 155, 155, 155, 159, 166, 166, 160, 162, 165, 163, 161, 157, 162, 159, 160, 160, 161, 157, 159, 161, 157, 164, 144, 165, 164, 157, 162, 169, 162, 161, 158, 158, 162, 164, 158, 159, 171, 167, 157, 165, 164, 155, 156, 165, 157, 153, 150, 160, 160, 163, 164, 172, 162, 163, 163, 157, 162, 167, 162, 159, 154, 170, 161, 162, 159, 165, 162, 157, 165, 161, 164, 155, 161, 160, 143, 159, 158, 163, 131, 161, 165, 160, 160, 161, 155, 159, 156, 158, 153, 162, 157, 165, 163, 156, 161, 160, 170, 159, 162, 166, 158, 161, 161, 160, 164, 161, 168, 164, 164, 162, 165, 158, 158, 165, 158, 159, 168, 158, 168, 164, 158, 167, 160, 165, 161, 162, 160, 161, 178, 158, 163, 164, 162, 163, 161, 163, 164, 155, 159, 157, 159, 158, 161, 158, 156, 154, 162, 161, 156, 173, 161, 148, 169, 156, 160, 165, 159, 161, 165, 159, 165, 160, 158, 162, 161, 162, 154, 161, 160, 162, 162, 161, 159, 162, 156, 155, 161, 161, 158, 158, 165, 166, 156, 162, 156, 161, 159, 161, 143, 165, 161, 156, 160, 164, 161, 157, 150, 162, 158, 160, 159, 157, 157, 154, 158, 162, 157, 163, 156, 167, 163, 161, 162, 167, 164, 160, 160, 155, 151, 160, 156, 158, 155, 158, 157, 154, 163, 160, 159, 162, 162, 164, 162, 166, 155, 162, 162, 161, 158, 159, 167, 157, 165, 148, 159, 162, 160, 160, 156, 160, 158, 166, 159, 172, 159, 162, 170, 160, 159, 164, 160, 151, 159, 159, 163, 161, 163, 160, 156, 162, 155, 165, 169, 159, 161, 163, 148, 178, 155, 159, 160, 170, 164, 162, 160, 166, 154, 167, 165, 162, 159, 160, 167, 168, 156, 177, 159, 164, 169, 174, 153, 157, 157, 164, 161, 156, 161, 162, 161, 158, 157, 155, 154, 151, 157, 158, 160, 165, 160, 160, 167, 161, 156, 154, 159, 165, 166, 156, 157, 161, 164, 162, 151, 162, 159, 157, 162, 161, 157, 158, 164, 159, 160, 160, 160, 164, 160, 158, 158, 172, 187, 158, 162, 160, 158, 169, 164, 161, 160, 141, 164, 162, 168, 156, 159, 156, 155, 153, 161, 157, 157, 156, 156, 162, 162, 161, 160, 163, 157, 165, 163, 156, 159, 156, 161, 160, 160, 158, 166, 157, 158, 156, 159, 163, 163, 151, 158, 156, 159, 154, 156, 166, 167, 159, 164, 159, 137, 157, 160, 166, 153, 159, 154, 162, 161, 159, 156, 159, 160, 156, 156, 163, 162, 164, 159, 164, 160, 161, 161, 163, 156, 159, 158, 157, 155, 161, 158, 159, 156, 158, 161, 161, 154, 161, 160, 161, 158, 161, 157, 161, 151, 156, 162, 158, 159, 158, 156, 160, 155, 164, 159, 162, 155, 161, 164, 160, 163, 160, 160, 161, 160, 157, 161, 161, 160, 158, 153, 162, 162, 160, 162, 162, 169, 160, 161, 160, 157, 158, 154, 159, 163, 162, 160, 157, 158, 162, 161, 160, 164, 162, 157, 158, 162, 159, 166, 158, 163, 162, 165, 161, 158, 156, 163, 162, 159, 161, 165, 171, 158, 168, 163, 154, 160, 159, 163, 159, 159, 160, 159, 160, 161, 161, 159, 156, 161, 158, 163, 164, 162, 159, 161, 161, 167, 159, 160, 162, 161, 160, 162, 167, 161, 161, 160, 159, 162, 162, 157, 159, 162, 159, 154, 161, 159, 162, 159, 153, 149, 159, 162, 163, 161, 160, 157, 162, 160, 161, 165, 162, 156, 161, 158, 162, 160, 156, 161, 163, 161, 159, 159, 163, 157, 161, 161, 161, 160, 159, 159, 162, 162, 158, 154, 162, 163, 159, 164, 158, 157, 162, 160, 160, 160, 162, 161, 164, 161, 161, 164, 162, 163, 163, 161, 154, 158, 160, 162, 162, 156, 149, 160, 167, 165, 166, 156, 158, 163, 160, 160, 161, 159, 159, 165, 158, 161, 157, 158, 164, 162, 162, 159, 155, 161, 158, 163, 160, 154, 163, 161, 166, 170, 162, 159, 162, 162, 155, 160, 159, 159, 156, 159, 153, 160, 162, 162, 164, 161, 163, 161, 162, 159, 165, 157, 159, 160, 161, 163, 157, 153, 162, 159, 158, 160, 155, 159, 162, 156, 160, 157, 157, 159, 161, 155, 160, 157, 159, 155, 162, 162, 162, 161, 159, 154, 160, 160, 154, 164, 161, 163, 161, 158, 160, 162, 158, 159, 159, 158, 160, 153, 156, 162, 159, 163, 161, 160, 158, 163, 158, 161, 164, 160, 158, 161, 159, 160, 160, 160, 156, 167, 161, 158, 160, 162, 161, 163, 161, 162, 159, 162, 158, 159, 161, 160, 157, 162, 163, 160, 167, 159, 160, 154, 159, 158, 162, 160, 160, 160, 161, 160, 160, 160, 161, 159, 159, 154, 167, 161, 163, 158, 162, 157, 162, 161, 159, 160, 165, 159, 164, 160, 164, 160, 161, 162, 160, 159, 162, 160, 159, 163, 161, 163, 152, 157, 165, 158, 159, 159, 165, 158, 165, 166, 161, 164, 160, 162, 160, 160, 161, 153, 162, 159, 161, 161, 163, 154, 156, 160, 162, 162, 159, 155, 164, 162, 163, 159, 161, 161, 156, 159, 159, 157, 158, 162, 163, 156, 161, 156, 162, 160, 162, 164, 158, 159, 165, 164, 160, 158, 159, 160, 160, 157, 159, 159, 161, 161, 165, 161, 157, 161, 160, 153, 162, 159, 159, 162, 163, 157, 155, 160, 158, 161, 151, 160, 161, 162, 154, 164, 162, 157, 162, 156, 162, 162, 158, 161, 157, 150, 160, 161, 164, 158, 161, 159, 162, 161, 166, 160, 158, 163, 164, 162, 166, 154, 162, 156, 160, 164, 178, 156, 168, 157, 156, 162, 158, 159, 164, 158, 155, 159, 175, 163, 165, 164, 162, 162, 149, 166, 148, 160, 164, 155, 165, 161, 156, 166, 169, 154, 156, 154, 160, 156, 165, 163, 155, 163, 169, 165, 163, 155, 164, 152, 156, 152, 159, 160, 161, 161, 159, 157, 162, 159, 163, 154, 161, 154, 157, 159, 170, 164, 152, 158, 160, 151, 174, 153, 179, 160, 160, 163, 158, 156, 156, 165, 161, 164, 165, 165, 156, 160, 160, 156, 157, 155, 159, 153, 157, 158, 162, 163, 162, 155, 156, 163, 157, 158, 150, 161, 160, 157, 156, 170, 159, 158, 165, 154, 155, 166, 161, 159, 160, 165, 155, 153, 161, 153, 165, 160, 157, 154, 154, 157, 167, 163, 171, 157, 161, 160, 158, 163, 158, 150, 157, 159, 159, 169, 159, 158, 164, 171, 159, 156, 160, 149, 163, 166, 159, 151, 163, 141, 159, 170, 158, 167, 168, 156, 160, 169, 160, 164, 165, 156, 162, 160, 163, 160, 161, 156, 166, 155, 162, 154, 153, 164, 164, 158, 158, 155, 165, 163, 151, 167, 155, 154, 170, 168, 166, 157, 161, 149, 157, 165, 155, 169, 154, 158, 168, 156, 154, 178, 158, 166, 150, 159, 156, 156, 169, 152, 159, 163, 152, 156, 168, 158, 162, 156, 161, 160, 155, 158, 166, 151, 154, 167, 154, 164, 156, 163, 166, 151, 152, 165, 153, 162, 161, 159, 156, 176, 157, 162, 154, 176, 159, 166, 164, 156, 159, 163, 161, 159, 160, 165, 154, 158, 162, 162, 156, 154, 163, 158, 160, 160, 163, 160, 164, 165, 164, 174, 159, 155, 164, 166, 163, 160, 162, 168, 156, 165, 162, 161, 163, 164, 162, 157, 153, 158, 152, 160, 147, 167, 169, 162, 168, 168, 157, 157, 163, 161, 164, 154, 158, 159, 158, 160, 169, 162, 168, 168, 151, 160, 165, 163, 169, 165, 169, 159, 161, 157, 157, 157, 159, 168, 166, 165, 159, 158, 164, 154, 160, 155, 163, 160, 162, 159, 160, 155, 160, 173, 158, 164, 157, 156, 160, 158, 147, 161, 149, 156, 147, 157, 158, 151, 160, 155, 161, 154, 153, 158, 158, 159, 160, 159, 163, 161, 172, 162, 166, 151, 162, 170, 165, 156, 154, 171, 162, 159, 153, 154, 164, 151, 157, 173, 159, 167, 161, 150, 160, 163, 154, 171, 154, 161, 158, 167, 155, 155, 158, 158, 172, 157, 152, 163, 162, 158, 161, 160, 167, 161, 162, 154, 152, 159, 164, 163, 156, 169, 167, 158, 145, 149, 163, 153, 156, 156, 171, 164, 166, 160, 158, 164, 158, 161, 152, 155, 159, 168, 159, 157, 154, 159, 155, 163, 159, 160, 157, 160, 159, 162, 151, 167, 157, 162, 160, 155, 161, 161, 161, 155, 153, 155, 160, 156, 166, 158, 168, 149, 155, 163, 152, 154, 155, 166, 166, 163, 158, 146, 161, 154, 161, 163, 156, 160, 163, 157, 167, 161, 169, 151, 152, 151, 161, 162, 160, 157, 160, 155, 162, 144, 157, 150, 163, 159, 151, 158, 159, 161, 159, 157, 163, 152, 164, 156, 160, 158, 166, 155, 159, 164, 162, 160, 161, 158, 158, 158, 159, 165, 144, 159, 161, 150, 174, 155, 159, 160, 159, 166, 160, 159, 163, 159, 162, 163, 162, 159, 156, 168, 164, 163, 159, 154, 161, 160, 163, 160, 158, 159, 160, 160, 156, 158, 164, 166, 163, 163, 162, 156, 162, 163, 160, 156, 159, 159, 158, 162, 162, 165, 160, 159, 160, 164, 160, 155, 161, 157, 160, 158, 159, 162, 168, 160, 157, 162, 165, 157, 158, 164, 160, 159, 158, 166, 164, 158, 162, 157, 162, 158, 156, 156, 176, 160, 162, 165, 160, 159, 161, 161, 159, 161, 156, 158, 163, 164, 160, 153, 161, 163, 161, 158, 157, 155, 159, 159, 158, 167, 147, 159, 157, 158, 156, 165, 160, 156, 168, 162, 161, 156, 158, 161, 166, 160, 160, 149, 157, 158, 159, 166, 159, 170, 166, 161, 159, 160, 155, 166, 158, 160, 161, 159, 166, 159, 160, 164, 160, 168, 162, 159, 160, 169, 160, 162, 168, 160, 164, 162, 158, 159, 161, 160, 155, 159, 155, 156, 165, 158, 159, 163, 157, 158, 167, 145, 161, 164, 166, 160, 166, 157, 161, 155, 161, 158, 161, 157, 162, 159, 160, 159, 162, 161, 163, 163, 163, 160, 161, 163, 151, 163, 160, 163, 157, 159, 156, 162, 160, 161, 155, 154, 157, 164, 156, 162, 161, 154, 160, 159, 163, 162, 161, 160, 162, 159, 157, 163, 159, 161, 161, 166, 159, 163, 158, 158, 160, 163, 160, 164, 157, 161, 157, 164, 159, 160, 161, 158, 160, 158, 158, 170, 161, 158, 162, 160, 164, 165, 161, 160, 159, 162, 156, 159, 157, 156, 158, 158, 165, 163, 163, 155, 162, 163, 162, 149, 156, 159, 160, 160, 158, 161, 156, 163, 162, 160, 161, 158, 166, 158, 159, 161, 160, 156, 161, 160, 160, 161, 164, 166, 160, 161, 163, 165, 160, 155, 163, 166, 157, 163, 156, 161, 155, 162, 161, 158, 157, 162, 160, 171, 164, 159, 165, 161, 162, 156, 162, 158, 160, 161, 161, 158, 166, 156, 161, 161, 159, 167, 169, 165, 163, 153, 158, 147, 162, 162, 156, 158, 160, 161, 157, 160, 160, 165, 157, 161, 158, 161, 164, 163, 160, 164, 162, 165, 162, 162, 162, 157, 177, 165, 160, 156, 162, 159, 164, 160, 160, 156, 163, 159, 157, 161, 160, 152, 163, 163, 159, 162, 157, 163, 159, 164, 160, 164, 158, 160, 159, 160, 164, 161, 165, 160, 163, 161, 163, 156, 165, 161, 159, 157, 157, 160, 162, 161, 165, 153, 157, 161, 159, 159, 163, 159, 160, 161, 163, 164, 166, 158, 162, 159, 162, 165, 159, 158, 159, 164, 158, 155, 160, 160, 161, 157, 158, 158, 160, 162, 160, 155, 160, 160, 164, 161, 161, 161, 160, 164, 160, 159, 157, 163, 160, 160, 156, 156, 162, 161, 162, 166, 164, 155, 158, 165, 157, 156, 160, 154, 162, 155, 155, 158, 161, 159, 162, 169, 158, 157, 166, 162, 158, 159, 157, 156, 155, 157, 164, 156, 171, 162, 163, 157, 157, 159, 154, 162, 159, 162, 166, 158, 160, 164, 158, 149, 164, 160, 152, 158, 144, 165, 158, 157, 145, 155, 165, 164, 157, 161, 170, 164, 158, 162, 162, 154, 158, 164, 169, 156, 156, 157, 158, 157, 159, 157, 145, 164, 160, 154, 163, 169, 162, 161, 167, 161, 156, 165, 173, 159, 160, 160, 157, 159, 162, 158, 159, 167, 158, 155, 162, 164, 159, 162, 160, 162, 164, 173, 155, 156, 157, 165, 160, 158, 165, 162, 167, 162, 161, 152, 160, 163, 160, 155, 163, 159, 160, 158, 165, 159, 156, 155, 155, 155, 163, 160, 160, 164, 163, 157, 160, 160, 157, 157, 156, 160, 151, 156, 156, 170, 162, 166, 152, 162, 162, 159, 158, 162, 157, 160, 160, 162, 151, 162, 146, 160, 160, 162, 158, 162, 163, 164, 155, 164, 159, 160, 164, 165, 149, 156, 162, 164, 159, 159, 163, 155, 159, 162, 159, 162, 153, 159, 155, 152, 156, 169, 163, 163, 163, 163, 163, 161, 166, 156, 162, 157, 162, 154, 155, 158, 148, 158, 161, 161, 156, 155, 165, 163, 167, 161, 161, 151, 160, 154, 159, 160, 155, 164, 163, 161, 162, 171, 160, 175, 157, 166, 161, 165, 159, 155, 163, 162, 157, 160, 165, 160, 158, 161, 159, 162, 160, 156, 167, 158, 160, 159, 152, 159, 157, 157, 149, 161, 165, 175, 153, 171, 160, 160, 158, 155, 150, 157, 161, 160, 153, 157, 154, 157, 157, 158, 157, 169, 158, 159, 169, 162, 164, 158, 155, 169, 161, 159, 166, 159, 159, 159, 157, 160, 153, 159, 162, 166, 159, 162, 157, 160, 164, 155, 159, 162, 151, 160, 160, 162, 169, 163, 163, 173, 164, 158, 152, 165, 153, 160, 161, 157, 164, 162, 160, 154, 192, 185, 158, 157, 163, 160, 163, 152, 160, 158, 155, 169, 155, 157, 158, 162, 166, 159, 159, 157, 160, 152, 160, 163, 163, 179, 157, 161, 165, 157, 155, 160, 162, 165, 159, 163, 165, 167, 167, 154, 155, 162, 150, 166, 165, 151, 167, 155, 164, 156, 158, 163, 176, 162, 161, 159, 162, 158, 158, 161, 161, 161, 155, 153, 160, 164, 168, 160, 159, 156, 145, 161, 162, 157, 163, 163, 156, 158, 162, 162, 155, 156, 162, 162, 157, 147, 163, 156, 156, 161, 158, 159, 155, 160, 160, 159, 160, 154, 161, 156, 163, 154, 180, 160, 164, 171, 161, 163, 157, 158, 156, 177, 155, 153, 166, 162, 161, 160, 158, 160, 162, 156, 159, 160, 161, 155, 161, 161, 162, 157, 167, 161, 161, 165, 164, 165, 155, 161, 160, 159, 157, 157, 157, 158, 158, 153, 164, 160, 159, 167, 157, 156, 152, 165, 151, 158, 159, 154, 158, 158, 161, 171, 156, 157, 157, 159, 157, 160, 159, 157, 162, 157, 165, 154, 170, 160, 158, 163, 159, 161, 161, 158, 159, 156, 160, 155, 157, 157, 149, 159, 151, 157, 165, 160, 162, 162, 159, 146, 151, 156, 165, 162, 157, 161, 169, 165, 167, 164, 159, 159, 164, 153, 159, 157, 165, 155, 165, 168, 159, 160, 158, 147, 159, 163, 160, 151, 155, 161, 163, 159, 152, 161, 155, 164, 154, 160, 158, 159, 159, 163, 159, 162, 160, 162, 160, 159, 163, 153, 156, 155, 164, 186, 158, 157, 160, 163, 157, 158, 164, 162, 146, 159, 157, 161, 157, 158, 158, 158, 164, 160, 150, 165, 161, 163, 153, 158, 153, 160, 150, 158, 163, 157, 154, 166, 155, 168, 151, 156, 158, 164, 156, 159, 152, 156, 163, 157, 154, 156, 150, 157, 152, 150, 157, 179, 156, 160, 155, 164, 159, 160, 159, 163, 167, 157, 168, 161, 164, 162, 153, 164, 161, 155, 159, 154, 145, 151, 161, 177, 166, 165, 161, 157, 165, 153, 157, 160, 157, 161, 164, 169, 161, 159, 166, 165, 158, 179, 158, 158, 157, 163, 155, 156, 155, 151, 160, 163, 154, 153, 161, 162, 160, 164, 152, 156, 168, 163, 178, 177, 155, 153, 153, 163, 154, 162, 154, 164, 145, 154, 169, 164, 160, 159, 160, 154, 179, 152, 145, 163, 158, 163, 151, 152, 169, 161, 161, 157, 166, 154, 166, 147, 150, 160, 164, 162, 159, 152, 164, 166, 155, 156, 152, 158, 162, 159, 172, 162, 161, 159, 153, 169, 162, 164, 156, 160, 167, 167, 160, 160, 156, 172, 154, 161, 154, 156, 160, 161, 157, 162, 156, 164, 162, 169, 161, 160, 157, 164, 173, 152, 161, 160, 164, 155, 157, 165, 167, 166, 169, 155, 164, 153, 162, 166, 157, 162, 162, 165, 157, 162, 157, 154, 167, 155, 163, 168, 150, 152, 146, 156, 164, 173, 156, 178, 165, 174, 160, 159, 167, 170, 162, 149, 159, 157, 162, 155, 154, 173, 159, 149, 167, 154, 156, 161, 165, 159, 162, 162, 168, 159, 154, 156, 165, 153, 160, 158, 165, 161, 166, 160, 169, 158, 162, 160, 163, 167, 152, 161, 158, 178, 155, 162, 161, 161, 152, 160, 170, 170, 160, 155, 155, 163, 160, 162, 155, 159, 149, 160, 161, 160, 160, 155, 167, 155, 160, 158, 152, 163, 159, 166, 167, 161, 162, 162, 165, 158, 155, 168, 156, 159, 158, 149, 174, 169, 161, 161, 156, 163, 159, 156, 154, 162, 166, 164, 158, 158, 157, 158, 166, 158, 156, 172, 159, 159, 166, 164, 168, 162, 158, 154, 162, 167, 154, 143, 158, 161, 157, 162, 159, 160, 149, 163, 151, 161, 148, 166, 164, 161, 164, 159, 160, 154, 160, 163, 160, 157, 158, 155, 157, 152, 164, 177, 156, 164, 163, 155, 156, 154, 157, 162, 158, 167, 152, 160, 158, 147, 151, 164, 162, 161, 156, 154, 156, 159, 161, 160, 156, 155, 163, 169, 157, 156, 156, 155, 167, 161, 155, 160, 162, 154, 151, 151, 162, 169, 158, 162, 154, 153, 157, 160, 153, 156, 161, 165, 156, 164, 158, 160, 157, 164, 158, 158, 160, 154, 166, 155, 157, 154, 160, 159, 161, 158, 155, 155, 154, 153, 167, 170, 157, 159, 164, 153, 162, 157, 162, 172, 146, 160, 158, 154, 168, 160, 155, 163, 161, 161, 163, 177, 159, 158, 154, 167, 151, 147, 160, 154, 161, 154, 165, 178, 160, 162, 160, 148, 146, 170, 165, 159, 159, 148, 158, 159, 154, 158, 165, 157, 152, 151, 163, 161, 152, 173, 167, 166, 160, 165, 159, 153, 163, 165, 159, 162, 169, 152, 175, 156, 161, 166, 169, 166, 160, 159, 160, 161, 161, 162, 155, 147, 152, 157, 166, 154, 157, 155, 167, 152, 163, 150, 152, 157, 161, 158, 154, 162, 153, 169, 165, 158, 169, 159, 161, 158, 168, 150, 150, 173, 162, 167, 159, 145, 154, 158, 157, 158, 165, 157, 154, 156, 150, 160, 157, 160, 153, 159, 152, 158, 147, 160, 160, 163, 170, 159, 161, 172, 169, 156, 156, 158, 155, 157, 166, 157, 150, 161, 169, 157, 161, 163, 156, 167, 154, 144, 160, 181, 165, 156, 158, 162, 159, 169, 155, 158, 157, 161, 158, 174, 156, 163, 160, 154, 146, 165, 155, 159, 154, 156, 157, 166, 167, 161, 157, 153, 156, 161, 163, 159, 162, 155, 164, 158, 159, 150, 163, 170, 164, 161, 166, 157, 160, 168, 163, 167, 161, 162, 157, 162, 159, 158, 163, 159, 158, 150, 161, 169, 143, 157, 160, 152, 156, 165, 163, 180, 163, 151, 154, 154, 161, 162, 153, 160, 158, 158, 166, 163, 162, 157, 156, 169, 160, 152, 159, 161, 155, 148, 160, 164, 165, 156, 157, 167, 159, 160, 160, 156, 166, 157, 156, 166, 162, 162, 151, 153, 159, 157, 155, 165, 163, 159, 172, 162, 152, 165, 163, 164, 155, 165, 159, 161, 157, 162, 153, 158, 151, 156, 155, 161, 161, 162, 161, 163, 155, 145, 158, 156, 158, 161, 159, 161, 164, 163, 160, 165, 160, 159, 164, 153, 158, 164, 154, 156, 153, 143, 160, 164, 162, 158, 151, 159, 154, 155, 163, 161, 154, 156, 165, 156, 163, 157, 165, 152, 160, 162, 154, 168, 158, 164, 162, 156, 158, 148, 158, 157, 165, 168, 156, 166, 165, 165, 154, 158, 149, 145, 158, 161, 159, 154, 155, 171, 166, 165, 157, 162, 170, 159, 154, 155, 163, 153, 162, 169, 162, 159, 170, 170, 150, 155, 154, 161, 165, 161, 155, 152, 156, 159, 155, 154, 162, 158, 168, 151, 153, 160, 154, 151, 156, 172, 162, 163, 164, 150, 160, 162, 151, 159, 157, 162, 162, 152, 152, 157, 159, 155, 168, 159, 159, 163, 169, 167, 159, 163, 156, 157, 166, 153, 157, 161, 159, 158, 165, 160, 161, 159, 155, 154, 159, 163, 157, 167, 181, 153, 165, 161, 157, 159, 154, 161, 163, 157, 160, 157, 161, 156, 178, 160, 166, 160, 172, 166, 154, 168, 166, 164, 161, 153, 159, 163, 155, 164, 166, 160, 172, 160, 159, 167, 163, 162, 152, 155, 154, 158, 154, 155, 162, 154, 158, 155, 149, 163, 159, 160, 158, 160, 161, 157, 152, 170, 164, 157, 171, 162, 155, 160, 152, 156, 152, 167, 159, 164, 161, 151, 168, 158, 148, 168, 165, 147, 161, 154, 166, 159, 155, 159, 169, 160, 161, 171, 152, 163, 165, 160, 163, 176, 156, 157, 159, 152, 153, 162, 168, 152, 172, 166, 162, 166, 165, 161, 157, 153, 165, 159, 156, 155, 164, 154, 161, 156, 174, 169, 160, 169, 159, 165, 168, 156, 155, 154, 159, 155, 149, 165, 153, 150, 166, 159, 156, 157, 165, 165, 160, 155, 162, 162, 160, 158, 157, 184, 157, 162, 162, 160, 158, 151, 157, 158, 154, 152, 165, 147, 170, 159, 152, 151, 156, 165, 169, 155, 158, 157, 153, 152, 163, 160, 162, 157, 156, 146, 156, 159, 152, 162, 163, 160, 166, 149, 158, 157, 161, 155, 158, 159, 160, 160, 155, 155, 155, 164, 160, 158, 163, 147, 157, 161, 158, 154, 143, 147, 161, 164, 171, 157, 161, 165, 155, 156, 152, 166, 157, 161, 162, 152, 170, 158, 169, 163, 153, 166, 159, 150, 161, 151, 163, 162, 154, 153, 143, 167, 165, 151, 161, 160, 160, 160, 159, 155, 157, 163, 161, 164, 160, 156, 163, 161, 150, 160, 161, 160, 158, 161, 159, 172, 151, 157, 155, 157, 157, 158, 164, 162, 165, 164, 164, 158, 159, 153, 160, 159, 173, 157, 159, 157, 159, 158, 174, 157, 163, 157, 171, 164, 149, 154, 163, 156, 161, 166, 162, 163, 150, 151, 147, 160, 156, 171, 162, 151, 157, 157, 157, 161, 166, 156, 162, 149, 160, 164, 160, 164, 151, 161, 161, 162, 167, 168, 168, 158, 159, 154, 161, 162, 157, 151, 161, 165, 174, 152, 161, 156, 162, 163, 157, 158, 160, 166, 149, 154, 163, 156, 164, 159, 157, 165, 162, 160, 160, 160, 171, 163, 152, 153, 165, 159, 158, 168, 156, 155, 159, 176, 148, 153, 157, 153, 156, 161, 166, 154, 158, 163, 161, 157, 160, 160, 154, 160, 162, 161, 163, 154, 157, 155, 163, 153, 160, 175, 155, 149, 168, 151, 156, 155, 159, 161, 168, 152, 167, 160, 154, 146, 159, 156, 159, 141, 147, 160, 156, 172, 165, 161, 152, 139, 160, 163, 156, 155, 160, 160, 158, 147, 167, 156, 153, 161, 151, 156, 160, 177, 158, 171, 165, 179, 145, 157, 160, 157, 168, 165, 159, 157, 161, 166, 161, 159, 161, 164, 156, 164, 159, 155, 149, 170, 156, 165, 163, 162, 166, 158, 159, 156, 158, 160, 169, 160, 157, 160, 159, 162, 164, 157, 158, 157, 154, 170, 156, 169, 158, 149, 160, 159, 164, 157, 158, 164, 151, 155, 164, 158, 161, 156, 153, 162, 150, 170, 160, 140, 158, 156, 168, 153, 166, 162, 155, 163, 154, 147, 158, 170, 153, 163, 166, 162, 162, 163, 153, 160, 154, 160, 161, 157, 156, 168, 150, 154, 155, 168, 163, 161, 159, 157, 157, 152, 162, 162, 157, 142, 151, 158, 166, 152, 157, 168, 162, 165, 157, 150, 156, 163, 150, 162, 155, 154, 158, 150, 147, 155, 176, 160, 153, 168, 155, 161, 166, 158, 161, 151, 160, 156, 167, 158, 160, 163, 157, 156, 158, 157, 163, 164, 166, 163, 151, 159, 157, 159, 160, 153, 143, 166, 160, 170, 158, 154, 158, 156, 159, 157, 165, 159, 160, 161, 156, 156, 161, 153, 159, 161, 163, 162, 160, 165, 159, 160, 157, 158, 161, 161, 154, 152, 159, 151, 168, 159, 156, 166, 156, 158, 161, 165, 162, 156, 160, 161, 151, 165, 155, 161, 156, 157, 160, 162, 160, 158, 158, 164, 159, 163, 160, 161, 157, 159, 157, 163, 161, 158, 161, 158, 160, 163, 156, 167, 159, 153, 160, 165, 166, 155, 150, 159, 162, 167, 162, 167, 162, 159, 163, 160, 155, 150, 153, 157, 156, 160, 158, 158, 160, 159, 157, 163, 157, 155, 154, 156, 162, 159, 159, 162, 157, 164, 159, 171, 161, 159, 164, 157, 164, 162, 164, 159, 159, 163, 161, 155, 162, 162, 165, 160, 151, 159, 161, 155, 158, 162, 163, 162, 173, 163, 162, 161, 162, 158, 163, 163, 153, 155, 154, 159, 156, 162, 165, 163, 166, 156, 160, 164, 159, 156, 155, 159, 152, 167, 160, 166, 159, 159, 161, 168, 168, 160, 156, 135, 155, 169, 156, 150, 160, 164, 169, 158, 160, 163, 157, 157, 160, 157, 174, 166, 161, 167, 161, 157, 167, 159, 153, 156, 162, 158, 155, 163, 157, 160, 159, 156, 151, 157, 172, 163, 159, 161, 158, 170, 156, 153, 154, 163, 160, 160, 167, 158, 159, 157, 156, 157, 167, 156, 160, 162, 159, 156, 155, 160, 155, 161, 154, 159, 164, 158, 173, 163, 158, 153, 158, 161, 155, 156, 154, 171, 164, 163, 156, 155, 159, 172, 154, 157, 161, 167, 161, 158, 157, 161, 158, 161, 160, 153, 154, 155, 154, 160, 162, 160, 168, 166, 155, 158, 159, 167, 144, 152, 167, 162, 153, 167, 158, 163, 160, 165, 158, 159, 165, 159, 151, 152, 153, 160, 156, 167, 165, 160, 164, 158, 159, 162, 166, 160, 163, 158, 168, 156, 156, 154, 161, 161, 167, 171, 160, 165, 157, 160, 162, 165, 165, 161, 163, 164, 162, 163, 165, 154, 165, 155, 167, 163, 160, 151, 159, 165, 159, 156, 158, 157, 159, 157, 167, 156, 156, 158, 155, 158, 154, 159, 162, 158, 159, 165, 163, 163, 159, 170, 165, 162, 155, 158, 159, 165, 154, 149, 167, 158, 160, 162, 158, 164, 160, 162, 160, 157, 157, 158, 159, 153, 150, 161, 164, 162, 158, 167, 162, 154, 159, 161, 163, 155, 157, 165, 164, 159, 157, 155, 148, 153, 161, 157, 161, 160, 165, 160, 159, 165, 157, 155, 160, 161, 159, 164, 166, 155, 157, 166, 160, 164, 160, 161, 160, 161, 165, 162, 159, 158, 155, 159, 159, 157, 159, 162, 167, 158, 152, 166, 156, 159, 150, 160, 158, 157, 158, 163, 157, 158, 160, 162, 160, 162, 162, 156, 162, 161, 156, 161, 157, 169, 168, 155, 159, 162, 160, 156, 166, 161, 159, 161, 156, 157, 162, 158, 161, 163, 154, 162, 162, 159, 160, 153, 163, 157, 156, 166, 160, 160, 162, 160, 150, 157, 162, 157, 160, 163, 158, 163, 159, 160, 155, 164, 163, 158, 161, 169, 161, 162, 162, 154, 154, 161, 161, 164, 156, 163, 156, 162, 155, 165, 154, 165, 165, 158, 161, 167, 162, 156, 146, 151, 159, 166, 159, 158, 167, 171, 153, 161, 159, 164, 165, 157, 160, 160, 162, 154, 156, 168, 156, 166, 159, 152, 151, 155, 161, 155, 166, 156, 166, 156, 161, 165, 154, 158, 158, 157, 160, 156, 151, 160, 159, 160, 155, 158, 157, 157, 158, 157, 162, 157, 155, 163, 160, 163, 160, 169, 166, 162, 170, 166, 156, 159, 158, 160, 154, 165, 162, 160, 178, 156, 155, 156, 172, 158, 164, 158, 158, 157, 164, 156, 161, 157, 156, 155, 156, 159, 158, 152, 161, 162, 165, 158, 183, 157, 145, 155, 153, 163, 161, 162, 146, 165, 157, 161, 161, 161, 154, 162, 156, 160, 165, 159, 164, 175, 159, 159, 160, 153, 155, 154, 157, 159, 150, 164, 157, 163, 159, 159, 154, 158, 162, 163, 159, 159, 162, 156, 165, 157, 165, 147, 150, 175, 163, 158, 160, 160, 165, 162, 160, 154, 165, 157, 158, 155, 163, 156, 163, 159, 159, 160, 155, 158, 164, 152, 159, 157, 153, 160, 162, 159, 153, 160, 155, 166, 166, 164, 158, 152, 160, 156, 162, 158, 161, 161, 146, 164, 160, 164, 156, 163, 160, 159, 163, 160, 167, 162, 158, 162, 170, 159, 155, 156, 173, 156, 148, 157, 162, 171, 162, 156, 156, 157, 161, 159, 160, 158, 167, 159, 171, 164, 162, 159, 151, 151, 168, 157, 160, 144, 157, 155, 158, 155, 162, 149, 155, 157, 160, 162, 175, 152, 165, 159, 172, 162, 158, 160, 156, 160, 163, 160, 154, 166, 165, 157, 160, 166, 168, 165, 164, 152, 155, 169, 152, 156, 160, 158, 160, 159, 167, 159, 156, 161, 161, 160, 152, 161, 158, 157, 162, 164, 162, 153, 154, 151, 146, 159, 156, 166, 151, 166, 154, 164, 167, 153, 164, 157, 157, 164, 155, 161, 159, 150, 158, 162, 160, 159, 157, 156, 159, 172, 162, 177, 150, 154, 153, 151, 157, 156, 155, 166, 158, 158, 163, 158, 160, 163, 157, 154, 166, 155, 164, 164, 160, 152, 153, 166, 162, 155, 158, 160, 160, 152, 161, 165, 155, 151, 159, 159, 163, 158, 157, 159, 162, 158, 166, 159, 163, 157, 167, 163, 168, 149, 158, 159, 157, 171, 159, 158, 162, 171, 155, 155, 162, 165, 162, 160, 155, 163, 174, 161, 155, 159, 159, 154, 163, 150, 162, 162, 168, 164, 162, 157, 168, 165, 158, 154, 157, 166, 162, 159, 160, 167, 185, 165, 169, 160, 150, 165, 166, 166, 153, 157, 163, 163, 159, 159, 163, 158, 157, 170, 162, 154, 159, 158, 158, 161, 165, 163, 155, 162, 157, 154, 164, 177, 162, 164, 155, 160, 163, 166, 161, 166, 155, 155, 162, 164, 154, 160, 183, 158, 156, 154, 163, 163, 162, 164, 162, 147, 157, 162, 162, 155, 152, 160, 166, 160, 168, 162, 164, 144, 159, 157, 154, 165, 158, 164, 162, 162, 163, 150, 162, 163, 161, 170, 164, 160, 164, 159, 159, 162, 161, 159, 148, 158, 166, 157, 159, 158, 161, 160, 151, 159, 156, 171, 154, 155, 158, 163, 154, 164, 166, 170, 164, 167, 166, 163, 171, 161, 165, 161, 167, 150, 155, 173, 171, 156, 159, 154, 149, 150, 162, 164, 160, 156, 156, 158, 160, 165, 158, 164, 153, 160, 152, 163, 162, 158, 163, 163, 155, 158, 164, 157, 153, 161, 163, 164, 169, 161, 159, 158, 164, 164, 159, 153, 154, 169, 165, 167, 156, 162, 162, 160, 163, 170, 160, 156, 159, 159, 147, 148, 156, 160, 154, 159, 169, 153, 161, 169, 158, 162, 156, 149, 161, 166, 150, 155, 159, 169, 144, 160, 158, 154, 161, 150, 155, 164, 166, 160, 157, 168, 156, 153, 156, 166, 154, 164, 155, 168, 166, 159, 160, 162, 161, 155, 179, 157, 148, 156, 158, 164, 156, 164, 160, 160, 155, 160, 164, 160, 160, 159, 149, 155, 157, 164, 153, 169, 163, 158, 169, 152, 165, 163, 161, 162, 156, 157, 148, 162, 163, 165, 152, 157, 165, 151, 155, 168, 165, 165, 147, 164, 161, 166, 159, 153, 165, 168, 158, 155, 168, 159, 147, 150, 167, 167, 168, 157, 145, 162, 171, 176, 159, 162, 170, 153, 155, 162, 167, 164, 169, 161, 166, 152, 169, 163, 158, 161, 157, 158, 160, 166, 164, 162, 166, 155, 160, 158, 159, 166, 162, 167, 162, 154, 155, 159, 161, 161, 153, 157, 157, 156, 162, 155, 155, 154, 161, 158, 156, 153, 155, 162, 154, 158, 162, 152, 151, 163, 161, 158, 164, 154, 167, 162, 158, 160, 154, 162, 165, 155, 170, 156, 166, 166, 160, 167, 159, 166, 153, 162, 153, 165, 156, 164, 161, 164, 164, 162, 162, 153, 162, 158, 158, 158, 164, 164, 178, 164, 162, 152, 164, 167, 157, 155, 149, 151, 162, 166, 156, 155, 162, 156, 161, 162, 161, 155, 156, 162, 163, 153, 162, 161, 163, 158, 169, 155, 158, 164, 153, 160, 168, 158, 164, 156, 164, 157, 155, 160, 162, 158, 157, 160, 162, 156, 158, 142, 152, 156, 159, 160, 158, 158, 154, 166, 147, 160, 158, 161, 169, 162, 161, 155, 159, 156, 167, 159, 153, 159, 155, 170, 163, 164, 158, 164, 159, 162, 155, 159, 154, 146, 154, 163, 168, 173, 165, 151, 168, 149, 153, 158, 156, 157, 158, 158, 146, 155, 159, 157, 150, 161, 167, 163, 157, 161, 154, 165, 162, 154, 157, 166, 170, 177, 154, 165, 156, 160, 170, 159, 164, 158, 165, 156, 158, 163, 161, 168, 163, 156, 159, 161, 161, 161, 152, 155, 162, 166, 156, 165, 156, 157, 156, 157, 156, 166, 168, 155, 169, 159, 160, 159, 157, 169, 175, 151, 158, 157, 162, 153, 166, 151, 168, 162, 160, 153, 154, 164, 165, 158, 161, 160, 156, 155, 161, 160, 160, 159, 152, 155, 147, 155, 160, 145, 166, 158, 162, 158, 160, 155, 156, 181, 159, 160, 158, 154, 156, 159, 157, 157, 151, 170, 156, 165, 164, 163, 154, 154, 165, 159, 163, 156, 162, 167, 157, 160, 160, 162, 161, 160, 154, 156, 157, 151, 173, 161, 163, 158, 169, 159, 162, 158, 163, 157, 167, 147, 149, 158, 158, 172, 180, 158, 161, 162, 160, 162, 156, 176, 155, 168, 157, 156, 154, 163, 150, 166, 162, 159, 158, 156, 166, 156, 163, 159, 155, 156, 154, 163, 157, 168, 161, 156, 157, 168, 162, 145, 148, 151, 151, 161, 162, 144, 161, 143, 144, 156, 165, 143, 160, 161, 158, 157, 154, 167, 165, 156, 162, 156, 151, 154, 153, 154, 155, 153, 162, 164, 163, 161, 158, 185, 159, 161, 167, 160, 165, 154, 156, 151, 144, 159, 161, 163, 160, 160, 156, 155, 151, 156, 160, 155, 169, 163, 159, 163, 160, 156, 152, 160, 164, 166, 162, 171, 148, 150, 149, 161, 165, 165, 169, 172, 164, 165, 162, 165, 162, 155, 151, 155, 163, 163, 162, 159, 163, 156, 166, 170, 159, 168, 165, 159, 160, 145, 156, 152, 157, 155, 161, 151, 166, 162, 156, 153, 159, 167, 165, 155, 159, 161, 156, 163, 159, 166, 160, 165, 159, 148, 165, 154, 156, 155, 172, 159, 175, 160, 160, 154, 166, 161, 146, 155, 171, 163, 149, 167, 154, 163, 156, 161, 158, 154, 160, 156, 161, 159, 164, 152, 162, 154, 152, 153, 155, 162, 148, 169, 180, 177, 160, 154, 158, 164, 163, 155, 157, 158, 152, 161, 163, 147, 160, 156, 147, 147, 166, 153, 164, 147, 162, 161, 160, 157, 156, 161, 158, 157, 173, 157, 154, 154, 130, 162, 160, 159, 172, 158, 149, 159, 157, 161, 165, 160, 163, 145, 157, 161, 150, 156, 146, 150, 156, 151, 157, 162, 158, 169, 162, 161, 159, 162, 163, 159, 145, 150, 167, 160, 156, 172, 158, 152, 153, 168, 161, 155, 166, 156, 155, 176, 160, 170, 150, 161, 169, 158, 171, 155, 162, 158, 163, 155, 152, 149, 161, 161, 155, 159, 159, 159, 152, 177, 159, 159, 164, 144, 163, 154, 167, 157, 144, 174, 156, 155, 154, 165, 159, 162, 149, 156, 154, 170, 164, 162, 159, 169, 161, 154, 156, 166, 151, 167, 164, 163, 157, 151, 153, 173, 159, 161, 157, 167, 153, 152, 166, 161, 157, 169, 158, 165, 163, 148, 155, 162, 161, 158, 169, 165, 164, 157, 154, 155, 152, 152, 158, 158, 154, 162, 150, 155, 156, 164, 159, 157, 161, 157, 158, 158, 157, 152, 162, 148, 165, 163, 162, 164, 169, 156, 163, 159, 150, 170, 156, 159, 155, 166, 163, 152, 160, 166, 152, 162, 158, 164, 156, 159, 165, 160, 155, 166, 157, 164, 158, 147, 163, 165, 151, 152, 174, 153, 165, 150, 164, 157, 158, 164, 146, 145, 168, 166, 159, 158, 165, 156, 170, 161, 160, 165, 160, 155, 157, 173, 157, 157, 158, 157, 168, 157, 163, 151, 158, 154, 157, 159, 184, 162, 149, 169, 155, 155, 156, 165, 174, 153, 179, 155, 170, 160, 160, 152, 166, 150, 157, 155, 173, 156, 156, 159, 165, 160, 150, 163, 155, 158, 145, 159, 180, 157, 154, 148, 168, 162, 132, 172, 161, 155, 155, 187, 153, 160, 159, 160, 159, 162, 153, 159, 160, 156, 165, 161, 167, 158, 161, 156, 158, 159, 158, 161, 153, 154, 155, 159, 168, 168, 160, 154, 158, 165, 158, 161, 146, 175, 156, 166, 160, 154, 163, 154, 162, 158, 159, 162, 173, 151, 161, 168, 168, 165, 162, 158, 155, 159, 161, 162, 165, 156, 164, 158, 161, 157, 154, 161, 162, 167, 158, 165, 162, 161, 153, 164, 158, 163, 161, 161, 154, 166, 157, 163, 157, 151, 163, 156, 162, 163, 163, 156, 170, 163, 158, 161, 157, 162, 163, 166, 154, 164, 163, 162, 162, 153, 167, 156, 167, 164, 161, 159, 160, 164, 157, 163, 157, 156, 165, 161, 162, 162, 161, 160, 158, 157, 158, 161, 161, 161, 156, 158, 160, 159, 167, 162, 158, 162, 164, 159, 156, 164, 161, 153, 156, 166, 161, 163, 163, 161, 152, 157, 158, 164, 155, 165, 154, 161, 165, 164, 156, 164, 159, 159, 151, 155, 163, 157, 156, 164, 154, 159, 158, 159, 156, 157, 155, 157, 163, 152, 160, 161, 159, 157, 168, 165, 159, 161, 149, 158, 159, 160, 156, 165, 160, 160, 163, 150, 163, 162, 157, 160, 152, 159, 159, 161, 154, 160, 159, 159, 162, 157, 175, 161, 161, 163, 163, 168, 165, 172, 159, 164, 161, 155, 156, 162, 172, 156, 163, 162, 169, 158, 159, 167, 163, 156, 153, 160, 155, 158, 160, 159, 158, 163, 166, 166, 160, 152, 167, 160, 165, 161, 159, 165, 162, 155, 154, 161, 156, 172, 158, 157, 163, 161, 162, 158, 157, 163, 163, 156, 157, 159, 164, 158, 166, 166, 162, 163, 161, 157, 162, 169, 158, 157, 160, 156, 162, 166, 167, 167, 159, 158, 156, 160, 164, 162, 162, 155, 163, 163, 155, 168, 162, 157, 157, 156, 160, 161, 157, 156, 161, 159, 158, 159, 159, 165, 165, 160, 158, 157, 164, 156, 162, 158, 160, 167, 159, 152, 161, 161, 161, 155, 165, 159, 159, 161, 157, 160, 163, 163, 161, 166, 159, 157, 159, 157, 161, 165, 156, 152, 152, 159, 167, 163, 166, 159, 154, 155, 155, 163, 162, 157, 163, 158, 149, 164, 163, 163, 161, 158, 155, 165, 160, 161, 161, 160, 158, 155, 167, 169, 156, 163, 155, 166, 171, 164, 156, 161, 161, 160, 164, 153, 163, 159, 178, 161, 156, 168, 157, 161, 160, 164, 162, 170, 157, 159, 158, 172, 161, 163, 157, 162, 156, 160, 158, 157, 166, 161, 160, 158, 156, 162, 162, 157, 161, 171, 160, 158, 155, 155, 159, 160, 161, 156, 160, 156, 162, 157, 156, 157, 162, 158, 159, 164, 159, 161, 162, 157, 159, 168, 160, 153, 159, 165, 157, 158, 158, 163, 169, 161, 160, 162, 157, 163, 160, 163, 155, 163, 161, 160, 169, 155, 158, 163, 162, 173, 166, 167, 159, 161, 164, 159, 159, 164, 156, 168, 167, 157, 164, 156, 158, 162, 161, 156, 160, 146, 162, 159, 163, 160, 167, 161, 159, 164, 158, 169, 162, 161, 160, 160, 159, 165, 158, 146, 158, 163, 161, 166, 156, 160, 160, 159, 166, 161, 157, 160, 159, 161, 157, 156, 157, 161, 161, 161, 163, 161, 162, 163, 171, 162, 162, 156, 159, 160, 163, 158, 163, 156, 160, 156, 156, 159, 159, 158, 163, 170, 158, 154, 160, 159, 160, 157, 157, 165, 159, 165, 161, 159, 163, 160, 158, 162, 164, 158, 156, 160, 158, 156, 160, 155, 163, 164, 166, 168, 155, 161, 157, 162, 156, 158, 158, 162, 157, 166, 159, 163, 162, 157, 159, 160, 164, 160, 162, 159, 176, 160, 162, 154, 157, 158, 163, 159, 166, 159, 162, 157, 165, 160, 158, 157, 164, 156, 159, 163, 158, 160, 163, 160, 158, 158, 156, 160, 161, 155, 162, 163, 154, 161, 157, 161, 163, 162, 158, 157, 158, 162, 161, 157, 159, 160, 159, 164, 162, 158, 159, 153, 167, 160, 160, 164, 161, 157, 166, 161, 161, 155, 157, 154, 160, 161, 159, 163, 161, 158, 158, 160, 167, 163, 160, 162, 156, 160, 157, 156, 160, 158, 163, 157, 159, 152, 163, 154, 164, 156, 158, 159, 161, 159, 162, 164, 159, 167, 162, 158, 160, 164, 163, 157, 162, 160, 160, 164, 154, 159, 165, 161, 151, 160, 158, 158, 154, 162, 167, 153, 155, 151, 157, 155, 161, 161, 159, 158, 162, 158, 157, 159, 163, 163, 160, 164, 161, 160, 158, 163, 159, 163, 159, 158, 156, 159, 160, 159, 159, 158, 167, 160, 158, 161, 159, 163, 159, 156, 160, 157, 160, 158, 162, 159, 157, 157, 165, 158, 162, 167, 156, 152, 161, 165, 162, 157, 155, 160, 164, 159, 157, 155, 161, 168, 155, 154, 158, 163, 157, 161, 158, 158, 159, 153, 162, 161, 156, 150, 163, 155, 165, 163, 159, 159, 158, 158, 163, 161, 160, 164, 157, 158, 161, 165, 155, 160, 162, 156, 163, 160, 159, 156, 157, 156, 160, 166, 163, 164, 159, 157, 160, 164, 162, 163, 164, 167, 160, 159, 159, 162, 155, 162, 160, 163, 160, 158, 164, 162, 160, 166, 161, 165, 157, 161, 161, 151, 152, 152, 157, 155, 159, 164, 159, 157, 159, 158, 161, 161, 159, 165, 163, 171, 160, 165, 160, 161, 165, 154, 163, 157, 159, 163, 156, 163, 163, 161, 167, 162, 156, 163, 161, 164, 158, 154, 157, 159, 164, 163, 163, 156, 160, 162, 157, 164, 163, 164, 161, 152, 161, 158, 160, 161, 156, 161, 164, 161, 158, 158, 156, 156, 160, 160, 160, 163, 160, 157, 164, 157, 162, 163, 163, 161, 159, 160, 154, 168, 157, 167, 158, 165, 163, 164, 162, 155, 165, 166, 159, 160, 160, 161, 161, 159, 167, 156, 165, 163, 163, 166, 156, 157, 157, 157, 163, 161, 170, 154, 165, 157, 155, 167, 158, 166, 160, 165, 160, 159, 154, 160, 158, 155, 157, 160, 157, 162, 151, 158, 169, 155, 161, 165, 165, 158, 169, 160, 156, 160, 164, 164, 155, 165, 158, 165, 156, 152, 161, 157, 161, 158, 164, 157, 162, 160, 162, 158, 160, 162, 159, 163, 157, 163, 159, 157, 162, 159, 161, 155, 160, 143, 170, 159, 152, 161, 154, 161, 156, 151, 162, 152, 157, 167, 177, 155, 171, 148, 155, 166, 152, 161, 159, 165, 162, 160, 164, 159, 153, 169, 158, 162, 160, 156, 154, 163, 162, 156, 155, 157, 159, 174, 160, 161, 165, 154, 159, 155, 161, 162, 163, 151, 160, 159, 152, 168, 159, 158, 161, 146, 150, 155, 155, 159, 153, 157, 166, 158, 170, 162, 159, 164, 153, 152, 155, 157, 158, 157, 153, 156, 162, 154, 155, 169, 162, 159, 163, 164, 162, 164, 155, 162, 147, 158, 155, 154, 162, 153, 160, 158, 160, 159, 149, 163, 155, 158, 165, 161, 155, 165, 168, 159, 156, 152, 156, 164, 160, 166, 156, 156, 167, 147, 152, 172, 164, 167, 156, 154, 176, 164, 164, 166, 154, 159, 175, 166, 160, 172, 161, 162, 162, 157, 156, 158, 162, 150, 154, 146, 160, 164, 156, 164, 160, 163, 166, 159, 158, 160, 165, 163, 158, 166, 161, 161, 164, 153, 164, 162, 145, 157, 156, 151, 164, 152, 160, 157, 159, 158, 168, 165, 159, 151, 169, 153, 157, 166, 161, 159, 156, 163, 166, 167, 154, 165, 163, 155, 153, 167, 161, 149, 161, 159, 159, 164, 156, 173, 156, 172, 158, 160, 162, 157, 156, 153, 154, 158, 149, 167, 158, 166, 153, 167, 162, 156, 154, 154, 166, 152, 152, 156, 157, 165, 153, 157, 155, 170, 155, 160, 162, 159, 161, 164, 158, 161, 152, 149, 161, 170, 162, 160, 158, 169, 155, 161, 166, 159, 162, 157, 151, 171, 160, 164, 168, 157, 164, 154, 161, 169, 159, 162, 161, 165, 166, 151, 149, 159, 155, 164, 162, 170, 149, 152, 162, 162, 167, 150, 148, 157, 155, 164, 160, 164, 166, 156, 169, 159, 173, 162, 163, 166, 156, 162, 159, 163, 164, 157, 156, 155, 166, 160, 162, 159, 153, 162, 166, 159, 149, 168, 162, 153, 164, 166, 161, 163, 156, 153, 160, 157, 156, 159, 159, 156, 159, 162, 168, 167, 153, 157, 163, 160, 157, 171, 151, 162, 158, 155, 151, 154, 154, 154, 164, 169, 159, 161, 155, 163, 163, 145, 164, 170, 162, 164, 161, 161, 146, 160, 167, 158, 165, 159, 161, 165, 153, 167, 150, 144, 154, 151, 159, 162, 157, 160, 164, 166, 152, 163, 171, 161, 152, 152, 175, 157, 155, 158, 159, 147, 165, 153, 153, 163, 159, 158, 157, 155, 155, 160, 160, 154, 169, 162, 160, 159, 168, 150, 160, 152, 160, 154, 156, 154, 160, 163, 156, 159, 153, 150, 157, 156, 156, 171, 158, 159, 165, 166, 162, 160, 153, 166, 166, 154, 185, 154, 166, 160, 155, 168, 154, 165, 155, 162, 169, 159, 148, 180, 152, 159, 152, 157, 159, 166, 158, 157, 152, 161, 157, 156, 163, 160, 158, 162, 159, 158, 167, 158, 150, 172, 165, 157, 160, 159, 166, 158, 153, 150, 157, 160, 162, 162, 160, 150, 169, 149, 155, 165, 162, 162, 152, 162, 153, 151, 160, 167, 160, 175, 155, 171, 159, 159, 152, 147, 157, 157, 151, 162, 158, 157, 156, 160, 159, 162, 159, 167, 168, 161, 151, 161, 151, 161, 172, 157, 161, 172, 165, 161, 166, 168, 156, 151, 170, 157, 147, 174, 162, 157, 152, 157, 163, 166, 161, 146, 153, 160, 173, 157, 192, 162, 162, 169, 158, 151, 169, 153, 168, 185, 163, 163, 165, 161, 157, 159, 166, 146, 148, 161, 169, 151, 163, 170, 161, 161, 159, 171, 155, 163, 148, 181, 157, 161, 154, 164, 146, 159, 161, 166, 160, 157, 165, 170, 161, 166, 160, 145, 163, 163, 148, 149, 153, 163, 158, 158, 147, 164, 165, 161, 148, 172, 171, 165, 165, 163, 166, 155, 155, 163, 149, 162, 161, 155, 156, 178, 149, 160, 154, 156, 161, 163, 158, 152, 164, 160, 167, 153, 163, 170, 148, 163, 162, 154, 163, 160, 161, 169, 166, 171, 171, 151, 166, 149, 156, 157, 149, 169, 169, 159, 169, 165, 154, 156, 170, 157, 161, 171, 158, 158, 154, 160, 159, 162, 164, 156, 171, 155, 163, 153, 159, 163, 154, 156, 160, 161, 168, 159, 164, 166, 160, 167, 164, 156, 169, 158, 141, 160, 153, 155, 154, 158, 147, 156, 153, 157, 153, 169, 157, 158, 170, 158, 178, 155, 169, 167, 161, 164, 190, 171, 165, 175, 154, 167, 150, 155, 151, 165, 142, 171, 164, 153, 158, 163, 160, 151, 152, 157, 141, 172, 149, 170, 167, 162, 166, 178, 152, 171, 157, 164, 157, 161, 155, 165, 158, 164, 166, 160, 153, 170, 154, 152, 158, 150, 160, 156, 167, 161, 167, 156, 160, 149, 160, 150, 164, 164, 166, 173, 161, 159, 152, 174, 159, 180, 167, 156, 179, 153, 144, 168, 155, 168, 159, 153, 166, 156, 161, 158, 166, 154, 159, 156, 145, 157, 164, 164, 159, 151, 157, 161, 149, 154, 172, 143, 154, 157, 156, 165, 161, 163, 155, 175, 176, 155, 163, 155, 166, 161, 168, 165, 161, 172, 162, 163, 158, 160, 156, 155, 157, 152, 169, 157, 166, 157, 169, 157, 159, 163, 166, 161, 153, 166, 171, 156, 152, 153, 158, 160, 164, 165, 164, 159, 146, 162, 170, 163, 150, 156, 157, 160, 164, 146, 175, 163, 154, 157, 157, 155, 153, 158, 159, 164, 161, 161, 167, 162, 175, 156, 156, 166, 158, 157, 163, 146, 160, 166, 142, 162, 160, 150, 160, 151, 162, 175, 163, 162, 154, 150, 155, 156, 166, 164, 159, 159, 170, 175, 156, 157, 151, 156, 154, 156, 163, 167, 162, 161, 160, 160, 163, 169, 163, 145, 154, 172, 179, 161, 165, 154, 152, 157, 160, 148, 165, 159, 152, 150, 164, 131, 163, 170, 150, 152, 154, 161, 169, 156, 158, 148, 172, 159, 151, 167, 149, 165, 151, 146, 157, 153, 160, 168, 169, 163, 159, 155, 155, 165, 159, 169, 151, 162, 164, 161, 169, 154, 159, 157, 168, 151, 154, 167, 167, 148, 167, 151, 161, 158, 159, 145, 165, 157, 175, 161, 149, 158, 159, 159, 143, 164, 156, 158, 159, 157, 152, 156, 167, 158, 158, 161, 166, 148, 146, 151, 182, 153, 165, 166, 159, 159, 153, 155, 149, 154, 162, 152, 144, 155, 178, 155, 148, 153, 146, 150, 167, 180, 165, 168, 161, 159, 157, 162, 164, 171, 159, 166, 169, 166, 173, 152, 147, 173, 160, 176, 153, 155, 140, 151, 151, 141, 167, 155, 150, 145, 166, 153, 166, 157, 157, 171, 164, 150, 173, 165, 167, 134, 159, 156, 165, 155, 147, 170, 163, 172, 153, 141, 161, 150, 161, 158, 160, 147, 167, 163, 160, 154, 150, 179, 170, 152, 149, 164, 148, 159, 159, 166, 157, 156, 161, 165, 157, 157, 164, 152, 147, 160, 162, 169, 164, 151, 144, 169, 166, 172, 163, 157, 169, 167, 155, 159, 162, 164, 173, 151, 155, 181, 165, 148, 163, 165, 172, 170, 156, 162, 156, 160, 163, 158, 161, 168, 176, 155, 153, 163, 164, 156, 146, 152, 150, 155, 159, 150, 157, 161, 155, 170, 166, 147, 167, 167, 162, 168, 187, 162, 159, 171, 168, 146, 157, 167, 153, 149, 149, 161, 145, 147, 149, 152, 161, 157, 167, 165, 165, 162, 157, 176, 165, 165, 156, 149, 151, 172, 151, 154, 163, 160, 172, 152, 167, 158, 165, 154, 150, 154, 153, 162, 153, 161, 160, 159, 147, 156, 164, 150, 168, 154, 143, 157, 150, 155, 165, 159, 155, 153, 164, 159, 160, 155, 164, 149, 144, 155, 154, 154, 157, 152, 155, 154, 142, 175, 154, 156, 163, 163, 163, 167, 154, 156, 156, 155, 149, 177, 159, 160, 167, 165, 170, 158, 150, 175, 140, 151, 157, 162, 161, 146, 158, 153, 164, 167, 155, 155, 161, 165, 145, 163, 147, 168, 127, 159, 166, 142, 168, 163, 155, 153, 158, 175, 162, 156, 147, 155, 154, 168, 162, 156, 179, 163, 166, 169, 148, 172, 146, 166, 171, 164, 153, 148, 170, 161, 163, 165, 145, 159, 157, 177, 145, 173, 158, 158, 172, 176, 137, 133, 142, 159, 150, 160, 175, 162, 146, 154, 152, 153, 165, 171, 162, 168, 159, 155, 152, 160, 188, 160, 146, 174, 157, 152, 150, 148, 151, 161, 163, 158, 149, 166, 147, 157, 157, 149, 166, 148, 145, 157, 156, 170, 139, 164, 153, 155, 180, 154, 166, 154, 148, 156, 149, 162, 142, 158, 169, 144, 163, 172, 163, 151, 139, 176, 172, 149, 156, 162, 154, 149, 152, 157, 154, 166, 175, 148, 150, 145, 149, 162, 162, 155, 146, 170, 161, 164, 167, 139, 150, 161, 164, 156, 163, 169, 154, 153, 155, 157, 150, 161, 149, 133, 162, 179, 158, 158, 166, 154, 156, 149, 152, 191, 161, 162, 150, 163, 160, 166, 159, 159, 169, 163, 169, 153, 158, 154, 153, 162, 147, 171, 148, 150, 177, 155, 163, 146, 182, 181, 165, 154, 170, 173, 167, 156, 161, 169, 167, 156, 157, 153, 155, 166, 150, 162, 203, 152, 199, 161, 157, 141, 160, 153, 156, 160, 156, 171, 161, 145, 190, 158, 147, 156, 150, 167, 151, 157, 146, 172, 170, 163, 172, 168, 170, 147, 162, 167, 158, 153, 167, 146, 167, 161, 163, 161, 161, 161, 156, 161, 158, 157, 159, 159, 162, 158, 162, 163, 166, 161, 159, 163, 149, 159, 162, 161, 158, 159, 169, 165, 163, 158, 156, 159, 159, 158, 160, 157, 159, 159, 157, 164, 166, 159, 162, 163, 155, 163, 159, 157, 158, 158, 164, 162, 157, 156, 160, 163, 160, 161, 156, 165, 158, 165, 161, 164, 167, 156, 161, 161, 159, 161, 162, 164, 156, 159, 161, 155, 157, 162, 155, 160, 160, 156, 160, 159, 160, 162, 164, 163, 160, 156, 161, 162, 156, 162, 157, 167, 160, 159, 162, 161, 159, 167, 155, 160, 156, 158, 161, 154, 152, 161, 164, 164, 156, 160, 160, 164, 161, 165, 160, 160, 163, 156, 160, 158, 159, 158, 159, 162, 161, 156, 161, 157, 161, 158, 156, 162, 156, 161, 160, 159, 155, 158, 159, 159, 160, 155, 161, 175, 163, 159, 160, 155, 164, 156, 159, 159, 165, 158, 159, 161, 163, 158, 165, 162, 163, 158, 159, 163, 161, 157, 167, 157, 153, 160, 159, 161, 161, 159, 150, 159, 161, 159, 160, 155, 159, 160, 162, 160, 157, 171, 165, 162, 161, 156, 161, 156, 157, 162, 160, 162, 161, 170, 167, 162, 156, 161, 165, 155, 161, 164, 160, 161, 170, 158, 161, 162, 158, 159, 160, 155, 158, 162, 160, 159, 159, 157, 157, 160, 157, 161, 159, 158, 158, 158, 159, 156, 163, 163, 159, 161, 157, 165, 160, 161, 159, 161, 164, 161, 161, 156, 157, 164, 162, 152, 158, 164, 159, 160, 159, 159, 162, 160, 158, 158, 157, 159, 160, 163, 162, 156, 162, 168, 161, 161, 158, 158, 162, 155, 159, 158, 161, 160, 157, 163, 157, 161, 161, 160, 152, 160, 164, 154, 159, 160, 159, 157, 156, 159, 157, 159, 162, 159, 165, 157, 163, 162, 169, 157, 157, 161, 159, 161, 158, 154, 159, 161, 159, 159, 163, 156, 154, 161, 163, 162, 160, 166, 155, 163, 159, 161, 161, 160, 163, 162, 160, 160, 158, 150, 164, 159, 157, 160, 167, 175, 158, 160, 157, 163, 169, 163, 162, 159, 157, 160, 160, 153, 154, 160, 161, 161, 158, 157, 161, 162, 162, 156, 159, 162, 169, 158, 155, 161, 155, 155, 161, 162, 159, 159, 160, 159, 162, 159, 162, 160, 159, 161, 160, 164, 156, 165, 157, 157, 161, 161, 169, 158, 166, 159, 158, 157, 154, 158, 177, 164, 165, 156, 161, 161, 159, 158, 162, 162, 159, 152, 159, 164, 164, 164, 162, 156, 161, 161, 154, 158, 158, 161, 160, 160, 164, 156, 161, 163, 159, 162, 162, 162, 159, 159, 150, 156, 159, 155, 161, 159, 158, 160, 166, 164, 158, 158, 163, 160, 159, 160, 153, 162, 160, 156, 157, 162, 159, 159, 166, 156, 160, 161, 161, 160, 166, 157, 157, 160, 162, 162, 161, 155, 168, 161, 161, 161, 157, 162, 164, 163, 162, 163, 165, 161, 158, 159, 164, 157, 164, 160, 164, 163, 170, 164, 163, 156, 167, 161, 156, 160, 159, 156, 159, 155, 160, 165, 162, 159, 158, 162, 162, 160, 154, 151, 157, 164, 166, 160, 163, 163, 157, 158, 156, 164, 166, 158, 155, 164, 164, 153, 156, 156, 153, 156, 165, 159, 152, 159, 167, 165, 160, 169, 159, 165, 160, 164, 153, 159, 166, 161, 164, 155, 156, 159, 161, 164, 164, 153, 156, 153, 167, 160, 161, 158, 160, 149, 151, 165, 160, 157, 165, 163, 155, 158, 157, 153, 154, 164, 160, 152, 155, 166, 159, 169, 160, 149, 163, 158, 152, 169, 161, 156, 165, 158, 164, 162, 158, 159, 156, 157, 156, 170, 157, 154, 174, 162, 150, 166, 169, 155, 158, 155, 163, 161, 159, 177, 161, 154, 162, 149, 155, 161, 159, 160, 175, 163, 155, 157, 160, 146, 156, 163, 158, 160, 154, 155, 164, 159, 156, 159, 154, 160, 151, 158, 151, 159, 157, 151, 160, 166, 170, 167, 158, 156, 160, 156, 161, 162, 165, 175, 160, 158, 169, 164, 162, 161, 156, 146, 163, 154, 156, 170, 159, 167, 155, 165, 159, 151, 191, 150, 156, 163, 160, 160, 161, 164, 153, 157, 157, 157, 161, 164, 165, 155, 166, 157, 154, 159, 161, 144, 167, 158, 144, 159, 167, 158, 156, 165, 158, 165, 155, 163, 159, 160, 159, 166, 157, 158, 156, 161, 169, 163, 162, 159, 166, 164, 160, 158, 158, 159, 161, 154, 159, 157, 161, 160, 155, 162, 168, 162, 153, 163, 166, 164, 160, 162, 156, 170, 153, 162, 154, 161, 157, 157, 172, 157, 156, 149, 153, 157, 161, 158, 158, 169, 164, 153, 162, 151, 162, 160, 131, 158, 169, 150, 152, 166, 151, 165, 162, 156, 167, 160, 157, 163, 164, 154, 160, 162, 155, 167, 157, 155, 146, 161, 133, 147, 159, 165, 154, 157, 158, 159, 166, 174, 155, 161, 160, 155, 160, 143, 164, 160, 160, 164, 158, 158, 153, 156, 160, 163, 158, 160, 156, 157, 162, 168, 170, 167, 159, 160, 160, 162, 162, 151, 160, 164, 162, 157, 153, 186, 153, 157, 158, 163, 164, 157, 152, 154, 162, 170, 159, 155, 159, 159, 162, 160, 165, 158, 155, 159, 175, 165, 159, 154, 160, 156, 158, 156, 154, 153, 156, 164, 164, 152, 165, 165, 160, 163, 158, 158, 163, 158, 158, 167, 155, 159, 157, 158, 154, 187, 160, 159, 170, 171, 159, 166, 165, 158, 137, 154, 164, 163, 147, 159, 160, 175, 159, 164, 157, 160, 152, 141, 166, 157, 161, 159, 163, 152, 158, 158, 161, 161, 171, 161, 161, 162, 162, 169, 158, 156, 148, 160, 166, 163, 157, 162, 162, 160, 158, 156, 175, 166, 144, 154, 160, 158, 159, 167, 157, 157, 152, 160, 153, 153, 157, 160, 157, 159, 162, 168, 147, 157, 166, 126, 159, 157, 151, 161, 165, 156, 160, 156, 158, 160, 153, 163, 158, 163, 152, 166, 157, 159, 161, 156, 161, 163, 157, 166, 163, 164, 162, 157, 160, 160, 164, 163, 166, 158, 164, 174, 160, 157, 160, 161, 160, 158, 156, 171, 165, 158, 163, 159, 162, 161, 166, 160, 154, 156, 157, 160, 161, 158, 160, 161, 160, 152, 162, 156, 161, 163, 153, 165, 161, 161, 150, 158, 160, 159, 147, 162, 157, 153, 161, 161, 159, 159, 163, 166, 156, 159, 148, 156, 161, 176, 153, 175, 157, 156, 156, 159, 159, 156, 167, 164, 156, 152, 160, 159, 162, 159, 159, 155, 166, 156, 153, 162, 159, 164, 164, 165, 158, 167, 169, 164, 156, 154, 166, 161, 158, 159, 161, 162, 163, 162, 163, 160, 162, 156, 157, 162, 174, 155, 161, 161, 162, 156, 161, 158, 157, 154, 162, 159, 156, 172, 160, 164, 158, 160, 164, 165, 177, 164, 153, 160, 160, 157, 143, 167, 159, 164, 145, 160, 166, 157, 157, 151, 161, 160, 165, 162, 161, 157, 160, 165, 161, 162, 155, 163, 164, 161, 160, 151, 158, 157, 165, 157, 163, 170, 152, 159, 166, 160, 158, 159, 161, 157, 155, 157, 157, 172, 163, 153, 154, 162, 171, 158, 171, 156, 160, 152, 152, 162, 162, 161, 156, 161, 158, 164, 159, 156, 160, 159, 158, 159, 164, 155, 163, 162, 158, 156, 162, 157, 159, 147, 164, 165, 162, 162, 173, 162, 131, 122, 160, 164, 170, 158, 157, 158, 155, 160, 166, 158, 161, 158, 163, 164, 157, 165, 161, 163, 159, 157, 168, 163, 160, 160, 159, 158, 157, 163, 162, 157, 159, 161, 160, 160, 158, 164, 156, 157, 157, 157, 166, 158, 161, 155, 159, 155, 163, 164, 164, 158, 161, 166, 159, 155, 155, 166, 160, 158, 155, 164, 175, 160, 158, 162, 162, 157, 152, 158, 156, 159, 161, 154, 151, 160, 172, 152, 152, 158, 161, 161, 165, 168, 167, 163, 153, 162, 158, 159, 163, 154, 159, 166, 162, 165, 155, 161, 163, 156, 157, 147, 160, 152, 157, 163, 159, 159, 160, 164, 165, 161, 154, 161, 164, 165, 154, 160, 165, 153, 161, 162, 156, 169, 161, 161, 159, 165, 160, 158, 161, 162, 161, 165, 163, 156, 160, 161, 158, 158, 164, 159, 157, 158, 152, 168, 161, 161, 155, 161, 158, 155, 162, 160, 167, 165, 162, 160, 158, 156, 157, 158, 155, 166, 149, 167, 161, 151, 154, 139, 160, 161, 162, 157, 165, 158, 160, 163, 153, 159, 159, 154, 168, 155, 163, 165, 153, 165, 165, 164, 160, 170, 159, 165, 192, 168, 163, 166, 157, 161, 162, 166, 166, 159, 167, 159, 164, 160, 159, 158, 156, 170, 158, 163, 161, 160, 167, 162, 157, 158, 159, 162, 164, 165, 155, 159, 160, 160, 162, 165, 160, 160, 167, 159, 152, 157, 158, 160, 157, 163, 163, 159, 158, 159, 159, 160, 159, 159, 162, 147, 166, 155, 156, 156, 165, 160, 159, 166, 157, 156, 153, 155, 160, 166, 165, 154, 157, 157, 163, 163, 161, 166, 160, 159, 163, 155, 157, 167, 170, 146, 160, 155, 157, 157, 159, 158, 155, 157, 164, 159, 155, 153, 163, 152, 159, 161, 161, 165, 161, 156, 160, 161, 163, 163, 151, 170, 159, 162, 158, 155, 160, 144, 159, 152, 161, 162, 156, 161, 161, 157, 156, 157, 158, 163, 163, 160, 156, 168, 159, 155, 156, 160, 162, 161, 163, 166, 158, 163, 161, 161, 158, 162, 162, 165, 162, 159, 159, 163, 160, 165, 159, 160, 163, 162, 165, 169, 155, 168, 155, 161, 160, 171, 161, 164, 161, 162, 160, 164, 163, 164, 169, 166, 161, 160, 172, 170, 157, 156, 163, 153, 160, 162, 166, 163, 156, 162, 135, 164, 159, 165, 154, 159, 164, 161, 159, 162, 159, 158, 162, 164, 151, 165, 153, 157, 158, 157, 166, 159, 168, 164, 155, 149, 160, 146, 154, 157, 166, 157, 159, 149, 160, 143, 166, 159, 167, 162, 158, 154, 176, 162, 148, 157, 158, 157, 151, 157, 151, 174, 155, 160, 163, 159, 158, 153, 154, 156, 137, 160, 156, 172, 169, 160, 162, 152, 160, 154, 156, 162, 165, 157, 158, 154, 158, 151, 157, 159, 155, 163, 159, 158, 163, 153, 141, 160, 163, 161, 158, 164, 158, 154, 152, 164, 157, 161, 158, 162, 168, 166, 163, 155, 162, 156, 159, 162, 163, 155, 145, 153, 161, 152, 153, 159, 159, 160, 157, 163, 161, 167, 160, 135, 152, 159, 176, 168, 154, 162, 159, 164, 157, 162, 156, 162, 156, 163, 153, 162, 163, 156, 156, 160, 163, 159, 160, 165, 170, 161, 160, 159, 160, 157, 164, 155, 158, 165, 160, 166, 159, 152, 160, 169, 157, 147, 162, 162, 159, 168, 165, 164, 160, 160, 159, 151, 158, 158, 169, 160, 158, 162, 161, 148, 154, 160, 161, 162, 177, 166, 163, 155, 150, 164, 158, 160, 158, 159, 162, 169, 134, 153, 161, 161, 159, 164, 159, 159, 156, 161, 161, 159, 157, 156, 154, 166, 161, 161, 147, 171, 164, 159, 161, 157, 151, 144, 162, 155, 167, 153, 158, 158, 157, 161, 141, 158, 159, 158, 163, 153, 159, 159, 163, 163, 162, 152, 161, 161, 143, 153, 156, 165, 155, 158, 161, 153, 157, 160, 161, 168, 159, 161, 161, 157, 161, 157, 159, 162, 171, 157, 152, 161, 162, 161, 156, 155, 163, 154, 160, 163, 163, 155, 161, 155, 156, 155, 162, 162, 160, 161, 157, 162, 148, 162, 166, 163, 162, 155, 154, 163, 163, 155, 163, 160, 167, 162, 160, 174, 164, 151, 169, 160, 155, 172, 165, 159, 161, 156, 171, 155, 153, 165, 168, 167, 163, 142, 158, 156, 164, 162, 162, 156, 136, 155, 144, 158, 163, 160, 160, 151, 165, 161, 166, 161, 163, 159, 164, 161, 155, 157, 164, 160, 186, 188, 156, 160, 157, 151, 161, 163, 164, 164, 162, 149, 150, 158, 153, 157, 162, 162, 156, 162, 156, 164, 162, 164, 145, 160, 157, 156, 166, 164, 157, 168, 159, 162, 170, 164, 163, 161, 154, 157, 160, 155, 165, 163, 162, 160, 180, 152, 155, 155, 160, 167, 162, 164, 158, 158, 163, 159, 166, 165, 167, 160, 153, 155, 154, 165, 150, 157, 164, 158, 164, 170, 160, 153, 161, 164, 164, 160, 157, 169, 158, 158, 151, 169, 162, 153, 145, 154, 162, 160, 162, 163, 159, 167, 157, 160, 155, 154, 160, 165, 164, 152, 164, 154, 156, 167, 157, 165, 155, 187, 166, 163, 158, 167, 164, 168, 160, 161, 156, 162, 162, 163, 160, 165, 171, 160, 168, 158, 162, 147, 161, 161, 175, 155, 163, 141, 154, 157, 163, 155, 161, 166, 161, 146, 159, 161, 160, 155, 160, 159, 165, 152, 168, 161, 160, 164, 156, 159, 159, 163, 162, 157, 165, 164, 158, 159, 161, 171, 162, 164, 151, 157, 168, 151, 156, 162, 162, 153, 144, 160, 159, 161, 167, 150, 166, 165, 162, 162, 165, 158, 161, 163, 161, 164, 160, 153, 158, 156, 160, 160, 161, 164, 158, 163, 169, 157, 148, 150, 164, 146, 153, 158, 158, 161, 165, 166, 159, 163, 171, 171, 174, 157, 177, 151, 153, 154, 159, 167, 158, 156, 162, 141, 164, 157, 164, 155, 161, 164, 161, 153, 173, 158, 149, 161, 159, 154, 148, 160, 176, 157, 176, 172, 154, 153, 162, 163, 165, 166, 155, 158, 159, 173, 156, 161, 168, 159, 162, 160, 155, 156, 158, 157, 163, 156, 163, 160, 164, 162, 157, 152, 163, 158, 154, 158, 158, 161, 147, 154, 168, 156, 156, 152, 146, 165, 159, 163, 163, 157, 156, 158, 162, 140, 158, 154, 159, 162, 165, 158, 163, 165, 171, 163, 159, 157, 167, 161, 155, 166, 168, 167, 153, 161, 160, 155, 168, 160, 162, 157, 151, 161, 163, 164, 166, 164, 160, 159, 162, 157, 166, 171, 162, 165, 167, 161, 171, 173, 160, 160, 170, 159, 162, 177, 160, 163, 170, 163, 157, 164, 161, 164, 149, 162, 145, 146, 164, 175, 165, 158, 168, 175, 159, 166, 163, 152, 165, 153, 160, 156, 162, 166, 163, 169, 154, 163, 161, 144, 168, 166, 156, 155, 153, 160, 157, 158, 145, 168, 164, 160, 139, 152, 166, 160, 159, 161, 168, 163, 159, 155, 163, 164, 162, 152, 172, 166, 159, 164, 159, 160, 167, 154, 161, 163, 160, 161, 160, 161, 160, 165, 159, 161, 156, 158, 158, 162, 159, 159, 145, 160, 156, 161, 163, 158, 156, 157, 163, 155, 147, 157, 162, 155, 149, 158, 162, 157, 135, 150, 161, 167, 153, 167, 155, 163, 156, 164, 162, 157, 158, 158, 163, 169, 164, 160, 166, 160, 167, 161, 163, 154, 162, 171, 145, 168, 164, 160, 156, 161, 160, 166, 169, 164, 159, 166, 159, 171, 152, 158, 161, 163, 157, 159, 167, 166, 165, 151, 167, 150, 159, 161, 159, 159, 167, 166, 156, 165, 167, 156, 165, 159, 161, 163, 158, 155, 173, 152, 154, 162, 158, 154, 165, 173, 166, 161, 174, 158, 156, 159, 161, 153, 155, 157, 164, 151, 152, 135, 154, 149, 166, 160, 165, 172, 163, 160, 158, 166, 160, 172, 157, 164, 163, 161, 165, 163, 148, 155, 162, 160, 164, 157, 157, 155, 158, 154, 162, 170, 153, 164, 166, 154, 168, 155, 156, 162, 157, 161, 161, 155, 168, 161, 165, 173, 152, 157, 169, 162, 160, 153, 155, 165, 172, 145, 158, 164, 154, 159, 164, 151, 159, 167, 167, 160, 156, 156, 159, 158, 158, 162, 158, 157, 159, 148, 163, 158, 161, 157, 155, 159, 154, 161, 153, 156, 169, 160, 156, 160, 156, 157, 160, 157, 153, 160, 157, 164, 160, 161, 170, 159, 158, 158, 156, 158, 154, 169, 152, 157, 155, 158, 153, 149, 163, 158, 155, 160, 167, 163, 158, 150, 169, 156, 157, 161, 152, 158, 158, 164, 158, 162, 161, 173, 164, 158, 157, 153, 158, 155, 156, 158, 163, 165, 167, 154, 157, 155, 158, 169, 164, 173, 157, 163, 154, 158, 158, 155, 157, 164, 157, 159, 150, 158, 160, 164, 157, 159, 171, 164, 156, 164, 161, 161, 166, 164, 159, 164, 157, 145, 154, 156, 156, 160, 157, 157, 165, 164, 168, 160, 156, 160, 156, 161, 171, 161, 151, 162, 160, 160, 162, 164, 164, 155, 155, 156, 158, 164, 160, 144, 166, 160, 162, 154, 155, 158, 170, 162, 168, 165, 162, 154, 160, 159, 171, 159, 167, 159, 160, 156, 158, 153, 162, 159, 158, 159, 155, 158, 158, 166, 156, 157, 151, 157, 162, 154, 159, 163, 157, 157, 159, 158, 163, 155, 165, 149, 160, 159, 156, 155, 161, 154, 163, 151, 160, 176, 166, 172, 154, 162, 148, 156, 156, 153, 163, 157, 164, 156, 155, 169, 159, 163, 155, 156, 158, 156, 154, 154, 165, 161, 154, 158, 148, 158, 161, 160, 157, 178, 156, 158, 161, 157, 158, 160, 157, 160, 163, 166, 153, 152, 161, 163, 154, 157, 165, 162, 152, 162, 166, 167, 166, 161, 155, 162, 155, 155, 160, 162, 156, 168, 166, 156, 162, 162, 157, 166, 153, 156, 168, 161, 153, 167, 157, 166, 153, 157, 166, 153, 156, 161, 158, 158, 150, 163, 166, 158, 173, 154, 159, 155, 155, 156, 168, 158, 163, 163, 164, 158, 162, 158, 161, 154, 159, 159, 160, 159, 166, 157, 151, 154, 158, 167, 153, 166, 159, 157, 161, 157, 159, 158, 166, 153, 157, 155, 155, 168, 157, 168, 160, 163, 159, 163, 163, 157, 166, 157, 161, 160, 161, 159, 162, 157, 166, 154, 167, 160, 162, 167, 160, 160, 163, 159, 159, 157, 167, 156, 162, 159, 162, 161, 158, 161, 167, 156, 161, 160, 153, 157, 154, 151, 161, 155, 160, 152, 159, 161, 151, 160, 170, 158, 165, 159, 153, 165, 163, 164, 160, 157, 156, 161, 158, 150, 156, 158, 162, 157, 164, 172, 168, 173, 163, 159, 158, 158, 167, 154, 172, 154, 168, 162, 163, 160, 157, 156, 158, 156, 159, 161, 159, 161, 161, 160, 156, 171, 170, 157, 162, 161, 154, 162, 160, 169, 167, 161, 164, 155, 160, 158, 156, 160, 164, 163, 168, 147, 161, 157, 152, 163, 151, 158, 166, 159, 165, 164, 153, 176, 162, 157, 157, 171, 157, 161, 158, 165, 165, 154, 154, 160, 149, 154, 166, 166, 158, 162, 159, 158, 164, 151, 168, 155, 159, 156, 159, 153, 157, 158, 161, 155, 160, 158, 155, 157, 160, 159, 166, 168, 163, 167, 169, 150, 163, 165, 160, 161, 164, 155, 154, 170, 160, 168, 146, 157, 150, 153, 159, 160, 150, 157, 164, 163, 165, 157, 164, 160, 171, 160, 161, 155, 169, 168, 158, 163, 163, 155, 160, 161, 151, 160, 167, 155, 156, 159, 160, 173, 164, 162, 160, 161, 158, 172, 156, 166, 163, 164, 161, 157, 155, 160, 169, 161, 158, 154, 154, 178, 154, 160, 186, 163, 158, 169, 157, 155, 162, 155, 160, 156, 154, 158, 161, 160, 166, 159, 156, 164, 161, 164, 165, 168, 161, 163, 161, 151, 164, 155, 159, 165, 160, 153, 162, 162, 175, 149, 156, 171, 156, 156, 162, 165, 170, 165, 152, 159, 162, 156, 156, 160, 161, 146, 164, 164, 162, 153, 144, 162, 163, 163, 161, 151, 162, 155, 164, 158, 155, 158, 163, 161, 161, 168, 156, 163, 160, 158, 158, 162, 153, 168, 155, 155, 160, 167, 156, 170, 167, 158, 166, 158, 153, 151, 162, 158, 163, 165, 161, 163, 155, 159, 164, 164, 164, 161, 149, 157, 150, 147, 165, 169, 167, 162, 159, 168, 163, 158, 161, 162, 169, 149, 160, 157, 163, 156, 158, 157, 166, 161, 159, 159, 154, 156, 172, 153, 160, 158, 168, 155, 159, 158, 163, 156, 153, 159, 162, 161, 143, 157, 169, 166, 146, 162, 158, 156, 157, 161, 167, 158, 165, 171, 160, 154, 161, 155, 174, 160, 164, 149, 169, 152, 160, 159, 155, 160, 164, 154, 165, 156, 157, 161, 158, 155, 159, 168, 159, 164, 156, 163, 165, 162, 156, 155, 155, 146, 152, 159, 173, 148, 156, 165, 157, 155, 156, 155, 158, 156, 165, 163, 160, 162, 148, 153, 166, 158, 168, 162, 161, 164, 148, 161, 165, 164, 157, 161, 157, 164, 156, 158, 159, 153, 157, 164, 157, 155, 164, 160, 160, 155, 164, 161, 160, 160, 163, 165, 159, 167, 159, 157, 151, 159, 158, 156, 144, 151, 157, 158, 159, 166, 159, 155, 159, 144, 158, 160, 165, 159, 160, 160, 154, 163, 158, 162, 151, 158, 159, 153, 158, 167, 163, 167, 162, 159, 164, 163, 178, 161, 170, 147, 161, 163, 156, 161, 150, 163, 157, 157, 161, 152, 153, 161, 156, 160, 157, 156, 166, 160, 151, 155, 156, 168, 163, 164, 163, 159, 160, 164, 162, 158, 157, 156, 160, 159, 157, 151, 162, 154, 155, 155, 159, 159, 163, 180, 162, 157, 160, 171, 159, 163, 167, 167, 162, 161, 161, 151, 181, 165, 166, 157, 166, 163, 163, 158, 133, 173, 160, 163, 162, 161, 156, 161, 157, 152, 154, 157, 160, 166, 162, 159, 159, 156, 155, 159, 152, 173, 153, 166, 165, 160, 161, 169, 162, 163, 169, 172, 169, 152, 153, 158, 167, 158, 159, 151, 164, 157, 172, 155, 161, 161, 171, 173, 167, 153, 160, 126, 159, 159, 152, 165, 152, 163, 164, 157, 153, 158, 157, 162, 156, 159, 148, 169, 154, 150, 157, 171, 161, 148, 161, 159, 154, 170, 162, 165, 160, 164, 156, 159, 156, 157, 141, 150, 164, 158, 166, 154, 137, 158, 160, 156, 163, 153, 153, 159, 161, 163, 159, 158, 150, 164, 167, 171, 161, 167, 156, 159, 164, 158, 165, 158, 160, 158, 156, 158, 152, 158, 153, 162, 160, 159, 154, 162, 160, 161, 160, 157, 162, 166, 164, 167, 167, 150, 162, 157, 157, 158, 153, 156, 163, 167, 160, 173, 131, 157, 161, 162, 162, 155, 163, 161, 166, 160, 162, 162, 166, 169, 161, 158, 153, 159, 155, 162, 160, 161, 160, 160, 155, 165, 164, 154, 160, 159, 143, 162, 156, 157, 155, 164, 160, 161, 161, 169, 170, 161, 158, 179, 158, 156, 157, 160, 156, 159, 152, 138, 159, 157, 162, 159, 159, 159, 169, 166, 164, 153, 158, 162, 162, 171, 151, 162, 162, 161, 164, 163, 156, 161, 147, 154, 147, 161, 159, 181, 162, 161, 162, 154, 159, 155, 156, 162, 157, 167, 167, 158, 162, 158, 160, 164, 161, 160, 159, 153, 163, 163, 142, 156, 164, 184, 160, 169, 163, 172, 154, 158, 158, 158, 148, 158, 161, 164, 163, 153, 157, 158, 160, 157, 157, 162, 150, 167, 161, 156, 163, 170, 153, 153, 159, 167, 159, 155, 166, 196, 150, 159, 165, 171, 161, 167, 156, 154, 160, 169, 165, 161, 158, 163, 157, 166, 161, 165, 158, 153, 156, 157, 155, 163, 147, 167, 194, 156, 169, 150, 157, 161, 160, 159, 169, 160, 158, 159, 157, 161, 155, 172, 162, 158, 166, 161, 165, 162, 162, 172, 158, 160, 157, 156, 207, 172, 162, 153, 162, 173, 159, 158, 162, 156, 147, 162, 160, 168, 151, 169, 159, 161, 159, 162, 157, 166, 150, 161, 156, 162, 164, 161, 155, 161, 166, 148, 160, 153, 162, 164, 164, 160, 163, 155, 161, 172, 156, 159, 156, 165, 162, 131, 160, 161, 155, 168, 165, 150, 162, 160, 153, 157, 164, 159, 167, 156, 161, 159, 153, 161, 159, 155, 165, 160, 158, 160, 164, 159, 159, 163, 159, 161, 154, 161, 161, 162, 162, 169, 160, 162, 160, 163, 160, 161, 169, 167, 161, 155, 164, 159, 162, 161, 158, 165, 161, 156, 169, 159, 164, 160, 158, 165, 160, 158, 164, 157, 162, 159, 159, 157, 161, 154, 164, 163, 164, 158, 159, 160, 161, 160, 163, 162, 159, 164, 163, 155, 155, 161, 158, 193, 163, 154, 162, 157, 187, 160, 164, 160, 171, 151, 157, 156, 160, 165, 184, 164, 162, 154, 170, 166, 152, 162, 147, 158, 160, 155, 163, 158, 163, 162, 161, 161, 157, 161, 155, 163, 164, 165, 171, 164, 166, 154, 169, 147, 159, 162, 170, 163, 162, 138, 159, 156, 157, 149, 161, 172, 162, 157, 158, 155, 157, 169, 172, 155, 168, 165, 167, 158, 158, 159, 157, 163, 155, 161, 159, 163, 169, 161, 167, 153, 162, 161, 157, 157, 154, 149, 161, 167, 154, 161, 162, 165, 159, 166, 160, 165, 162, 156, 155, 157, 156, 157, 167, 159, 168, 161, 158, 152, 160, 160, 154, 161, 158, 156, 164, 141, 157, 154, 162, 158, 161, 157, 161, 157, 158, 144, 155, 157, 158, 164, 166, 166, 164, 159, 166, 163, 156, 160, 160, 163, 162, 163, 158, 165, 158, 153, 156, 161, 160, 163, 156, 153, 157, 154, 152, 166, 162, 163, 157, 159, 159, 165, 162, 156, 165, 158, 163, 161, 158, 163, 159, 157, 162, 163, 166, 159, 156, 162, 159, 163, 154, 158, 154, 154, 140, 153, 166, 156, 163, 159, 158, 161, 171, 162, 157, 162, 156, 163, 160, 158, 163, 159, 163, 152, 156, 153, 161, 156, 158, 161, 151, 148, 156, 153, 166, 140, 158, 152, 155, 165, 163, 156, 160, 165, 161, 166, 155, 154, 152, 158, 147, 158, 166, 157, 158, 160, 157, 151, 159, 160, 161, 156, 158, 159, 158, 143, 162, 154, 161, 152, 176, 159, 168, 168, 162, 165, 154, 160, 163, 160, 159, 164, 160, 163, 185, 158, 148, 157, 158, 150, 165, 162, 157, 163, 180, 156, 154, 156, 161, 173, 161, 155, 159, 157, 153, 171, 168, 163, 161, 159, 160, 166, 160, 157, 158, 156, 153, 159, 162, 166, 154, 147, 160, 155, 152, 165, 154, 163, 157, 161, 160, 160, 167, 157, 157, 161, 167, 159, 165, 162, 156, 160, 152, 159, 160, 159, 162, 162, 151, 163, 157, 161, 160, 161, 160, 157, 159, 160, 161, 162, 159, 159, 147, 162, 156, 143, 162, 161, 157, 147, 158, 165, 164, 161, 162, 162, 156, 160, 150, 157, 154, 158, 162, 158, 166, 160, 168, 163, 160, 157, 155, 155, 156, 162, 173, 160, 163, 167, 160, 157, 160, 160, 156, 158, 158, 167, 161, 160, 155, 155, 164, 161, 163, 162, 170, 164, 161, 159, 162, 173, 166, 162, 152, 161, 162, 151, 154, 156, 158, 160, 153, 152, 158, 155, 171, 157, 154, 160, 130, 158, 161, 144, 157, 161, 156, 167, 163, 167, 155, 162, 170, 167, 159, 161, 149, 154, 160, 169, 163, 161, 167, 174, 160, 162, 162, 165, 161, 160, 163, 158, 161, 166, 158, 150, 160, 166, 162, 161, 152, 156, 161, 167, 150, 165, 173, 192, 164, 162, 167, 163, 162, 173, 165, 159, 162, 155, 154, 157, 158, 157, 161, 164, 154, 155, 160, 159, 161, 189, 161, 155, 155, 157, 159, 152, 140, 169, 165, 150, 158, 159, 158, 172, 155, 159, 165, 163, 157, 162, 158, 162, 163, 164, 154, 158, 156, 136, 161, 160, 164, 162, 165, 162, 170, 164, 155, 164, 164, 155, 158, 156, 166, 152, 166, 162, 162, 158, 162, 151, 167, 156, 155, 156, 167, 163, 166, 155, 157, 153, 161, 162, 162, 157, 157, 167, 162, 159, 160, 166, 162, 156, 158, 169, 157, 165, 161, 173, 146, 156, 160, 177, 171, 161, 167, 153, 159, 163, 169, 163, 152, 164, 154, 159, 146, 165, 161, 157, 162, 165, 154, 174, 154, 169, 169, 163, 155, 144, 163, 145, 165, 157, 166, 157, 161, 152, 161, 158, 161, 158, 171, 162, 157, 162, 159, 164, 157, 164, 155, 162, 158, 157, 171, 161, 162, 153, 154, 163, 158, 160, 158, 164, 156, 156, 177, 164, 160, 159, 164, 161, 162, 175, 157, 158, 157, 164, 155, 177, 160, 155, 160, 159, 153, 165, 164, 164, 168, 162, 159, 160, 164, 186, 157, 164, 165, 162, 159, 163, 160, 159, 158, 156, 160, 162, 156, 163, 156, 154, 156, 164, 162, 165, 163, 155, 154, 159, 154, 153, 165, 160, 159, 161, 168, 154, 158, 159, 163, 162, 161, 157, 157, 154, 159, 163, 157, 159, 157, 165, 162, 157, 162, 156, 155, 180, 158, 168, 156, 160, 156, 157, 173, 160, 168, 162, 158, 157, 164, 165, 153, 159, 157, 156, 156, 162, 150, 164, 169, 158, 164, 157, 162, 167, 154, 167, 160, 155, 165, 163, 162, 160, 161, 156, 155, 161, 174, 159, 171, 154, 142, 155, 157, 158, 156, 164, 154, 159, 158, 161, 156, 163, 159, 165, 167, 161, 165, 162, 169, 161, 168, 151, 158, 160, 160, 161, 160, 144, 154, 161, 159, 160, 158, 166, 169, 158, 161, 158, 164, 150, 166, 163, 162, 157, 179, 168, 160, 162, 164, 153, 161, 162, 161, 169, 159, 168, 161, 159, 159, 160, 154, 159, 160, 153, 171, 154, 159, 154, 164, 162, 161, 161, 160, 171, 163, 154, 159, 167, 162, 161, 146, 150, 156, 155, 159, 171, 177, 165, 156, 160, 155, 159, 163, 157, 163, 157, 159, 171, 169, 162, 168, 155, 154, 155, 160, 161, 168, 163, 169, 163, 162, 162, 160, 159, 165, 158, 161, 172, 161, 160, 157, 159, 159, 163, 157, 157, 161, 162, 155, 151, 163, 159, 160, 158, 158, 161, 158, 141, 164, 161, 164, 160, 160, 158, 163, 153, 167, 161, 178, 157, 160, 155, 159, 157, 155, 165, 162, 159, 169, 162, 162, 166, 156, 163, 168, 155, 162, 160, 155, 167, 161, 167, 159, 161, 161, 154, 165, 162, 163, 160, 160, 157, 165, 170, 161, 157, 163, 173, 160, 156, 161, 160, 156, 156, 161, 155, 160, 159, 168, 166, 159, 165, 156, 160, 154, 152, 162, 159, 162, 163, 163, 164, 160, 159, 160, 156, 161, 161, 160, 160, 162, 161, 157, 157, 162, 154, 159, 156, 159, 155, 163, 165, 155, 161, 167, 154, 161, 168, 159, 159, 156, 159, 161, 153, 156, 157, 157, 175, 161, 161, 163, 155, 159, 160, 160, 159, 164, 162, 162, 162, 160, 171, 165, 152, 156, 163, 162, 166, 152, 170, 159, 155, 156, 169, 164, 153, 146, 161, 162, 156, 159, 157, 159, 159, 170, 151, 151, 157, 165, 166, 161, 166, 164, 164, 157, 164, 165, 161, 160, 173, 153, 156, 166, 165, 154, 163, 158, 155, 160, 164, 158, 163, 163, 159, 160, 151, 147, 168, 161, 155, 157, 163, 163, 156, 161, 156, 159, 156, 160, 157, 148, 164, 158, 158, 159, 171, 160, 159, 158, 159, 176, 160, 159, 156, 163, 158, 159, 155, 166, 150, 157, 158, 150, 160, 159, 169, 164, 162, 157, 172, 160, 150, 152, 154, 159, 149, 165, 155, 149, 155, 159, 152, 162, 156, 159, 172, 159, 161, 160, 156, 165, 169, 164, 150, 141, 168, 154, 162, 160, 162, 163, 156, 158, 150, 161, 164, 159, 164, 150, 156, 161, 158, 158, 162, 163, 159, 164, 160, 160, 168, 165, 161, 163, 163, 155, 161, 152, 162, 159, 158, 155, 167, 159, 154, 163, 160, 165, 162, 157, 162, 159, 155, 161, 162, 164, 164, 159, 161, 154, 159, 153, 157, 164, 153, 163, 155, 160, 166, 164, 154, 158, 166, 159, 163, 159, 161, 159, 164, 163, 161, 159, 162, 159, 161, 162, 157, 158, 156, 162, 159, 157, 158, 161, 161, 153, 159, 160, 163, 161, 165, 156, 158, 161, 159, 159, 156, 164, 170, 158, 160, 163, 156, 163, 159, 156, 161, 157, 158, 161, 161, 166, 164, 162, 159, 162, 161, 157, 157, 161, 159, 163, 161, 168, 157, 159, 154, 161, 158, 158, 165, 171, 156, 159, 160, 164, 155, 157, 163, 161, 160, 154, 156, 158, 166, 156, 158, 154, 167, 163, 164, 162, 152, 165, 159, 158, 161, 157, 158, 153, 165, 156, 155, 161, 164, 164, 158, 154, 159, 162, 158, 162, 162, 165, 161, 168, 157, 159, 158, 164, 158, 159, 162, 159, 160, 163, 165, 162, 157, 159, 164, 157, 160, 158, 155, 159, 162, 162, 161, 159, 167, 162, 163, 153, 165, 158, 163, 164, 161, 158, 159, 157, 161, 164, 161, 157, 160, 164, 156, 161, 157, 152, 158, 159, 158, 165, 159, 158, 152, 157, 160, 165, 163, 154, 167, 158, 159, 155, 157, 160, 151, 167, 160, 161, 155, 164, 162, 160, 154, 160, 163, 162, 162, 159, 161, 161, 161, 159, 156, 164, 167, 157, 165, 162, 161, 159, 165, 160, 162, 154, 161, 159, 155, 163, 159, 163, 163, 162, 158, 162, 156, 164, 153, 164, 161, 160, 160, 155, 157, 167, 163, 159, 161, 162, 161, 156, 160, 162, 159, 158, 155, 161, 159, 154, 158, 160, 149, 164, 164, 167, 147, 162, 170, 155, 165, 161, 162, 163, 163, 162, 157, 160, 153, 160, 158, 161, 160, 162, 159, 162, 164, 161, 159, 161, 162, 161, 155, 157, 162, 160, 161, 156, 160, 156, 153, 162, 161, 160, 162, 162, 158, 158, 159, 154, 158, 158, 158, 168, 156, 162, 161, 165, 163, 164, 156, 155, 161, 153, 157, 154, 157, 158, 169, 163, 158, 158, 162, 164, 157, 159, 160, 163, 171, 158, 159, 155, 165, 159, 163, 157, 160, 163, 162, 165, 154, 163, 162, 153, 166, 165, 161, 154, 152, 157, 154, 160, 155, 152, 163, 157, 163, 155, 165, 162, 152, 160, 154, 162, 157, 162, 158, 159, 159, 158, 160, 161, 161, 165, 160, 165, 161, 161, 158, 163, 159, 161, 158, 156, 160, 163, 161, 155, 155, 160, 164, 156, 164, 155, 167, 160, 156, 160, 153, 161, 163, 159, 167, 166, 163, 158, 160, 160, 158, 158, 162, 153, 155, 166, 156, 158, 159, 160, 157, 164, 159, 156, 163, 156, 165, 161, 160, 154, 166, 155, 163, 156, 161, 157, 159, 159, 156, 159, 153, 159, 164, 162, 157, 160, 161, 158, 165, 157, 162, 160, 165, 164, 157, 160, 163, 149, 161, 156, 165, 160, 159, 159, 159, 159, 158, 157, 164, 169, 167, 161, 156, 153, 152, 160, 153, 155, 160, 153, 158, 154, 154, 150, 156, 151, 155, 155, 157, 164, 155, 160, 170, 157, 164, 163, 157, 156, 165, 156, 168, 158, 165, 163, 166, 158, 152, 154, 165, 159, 150, 164, 164, 169, 160, 161, 154, 170, 160, 158, 150, 151, 152, 153, 168, 160, 154, 165, 170, 163, 156, 161, 152, 153, 165, 154, 146, 159, 157, 151, 161, 163, 153, 165, 163, 148, 172, 161, 166, 164, 172, 160, 161, 154, 183, 157, 163, 163, 177, 154, 156, 159, 155, 164, 168, 147, 158, 148, 153, 158, 165, 160, 152, 154, 157, 167, 162, 155, 157, 158, 154, 158, 154, 168, 161, 168, 165, 165, 167, 158, 164, 172, 155, 163, 166, 169, 167, 157, 155, 161, 159, 157, 158, 154, 167, 158, 161, 164, 163, 166, 154, 163, 166, 157, 158, 160, 157, 145, 156, 163, 163, 158, 163, 156, 169, 156, 158, 150, 152, 159, 154, 156, 159, 162, 157, 163, 171, 155, 157, 163, 153, 160, 156, 158, 158, 171, 152, 167, 162, 158, 157, 156, 171, 150, 159, 153, 177, 159, 156, 157, 159, 153, 148, 153, 162, 158, 169, 160, 156, 173, 158, 163, 171, 155, 155, 142, 152, 172, 152, 175, 160, 162, 160, 172, 163, 165, 172, 163, 165, 156, 154, 159, 163, 149, 167, 160, 159, 151, 160, 156, 144, 158, 168, 157, 166, 160, 158, 159, 158, 171, 176, 173, 151, 162, 159, 150, 157, 148, 162, 155, 165, 153, 163, 158, 157, 154, 146, 157, 158, 163, 165, 158, 163, 166, 160, 171, 158, 158, 160, 158, 157, 162, 163, 159, 141, 164, 163, 157, 157, 161, 152, 148, 152, 160, 160, 158, 152, 160, 159, 158, 172, 157, 157, 155, 154, 155, 157, 137, 164, 162, 163, 157, 162, 165, 160, 160, 151, 132, 155, 161, 155, 160, 166, 152, 161, 161, 175, 174, 156, 163, 163, 156, 169, 172, 149, 155, 169, 154, 160, 163, 155, 155, 152, 154, 157, 170, 151, 155, 163, 164, 163, 157, 157, 159, 160, 172, 150, 158, 148, 166, 153, 154, 159, 157, 154, 166, 165, 152, 163, 149, 161, 151, 167, 158, 159, 154, 155, 162, 161, 145, 167, 172, 170, 167, 157, 164, 151, 150, 166, 162, 153, 157, 161, 168, 162, 154, 167, 156, 157, 163, 166, 153, 164, 159, 151, 160, 137, 157, 161, 168, 162, 158, 153, 161, 164, 151, 162, 148, 170, 169, 160, 154, 160, 151, 161, 165, 152, 160, 156, 160, 147, 175, 172, 153, 159, 161, 169, 152, 169, 167, 166, 158, 159, 167, 158, 164, 152, 166, 165, 159, 164, 158, 146, 169, 156, 146, 154, 172, 159, 153, 162, 151, 168, 157, 160, 161, 161, 161, 156, 157, 153, 167, 153, 177, 158, 158, 151, 166, 159, 174, 158, 154, 157, 152, 152, 159, 153, 167, 158, 163, 167, 170, 156, 153, 158, 167, 164, 156, 150, 157, 156, 159, 155, 173, 153, 161, 162, 161, 143, 144, 160, 162, 159, 164, 145, 161, 169, 163, 163, 162, 160, 153, 165, 173, 145, 166, 164, 157, 155, 160, 158, 160, 158, 155, 159, 165, 154, 150, 165, 160, 160, 158, 161, 165, 157, 140, 163, 153, 159, 164, 161, 163, 157, 161, 155, 159, 168, 158, 161, 155, 155, 155, 156, 157, 171, 156, 155, 159, 156, 159, 162, 153, 160, 156, 151, 163, 160, 154, 155, 164, 155, 160, 163, 149, 156, 162, 158, 155, 151, 167, 159, 157, 159, 158, 159, 159, 155, 162, 163, 166, 160, 160, 159, 160, 157, 155, 162, 160, 160, 156, 158, 167, 169, 161, 155, 162, 155, 157, 158, 161, 160, 154, 155, 160, 158, 159, 171, 160, 152, 184, 162, 157, 162, 165, 158, 157, 160, 159, 159, 158, 161, 160, 152, 164, 159, 158, 151, 157, 160, 159, 158, 158, 163, 159, 154, 166, 159, 159, 157, 156, 159, 158, 160, 164, 155, 159, 172, 151, 157, 160, 172, 155, 155, 157, 160, 162, 157, 164, 161, 161, 157, 163, 158, 158, 160, 155, 165, 160, 155, 157, 158, 156, 159, 166, 162, 164, 150, 163, 150, 161, 157, 167, 158, 158, 158, 166, 164, 159, 155, 151, 157, 156, 164, 151, 158, 161, 157, 157, 162, 149, 165, 161, 160, 150, 163, 154, 173, 162, 158, 167, 159, 156, 162, 158, 168, 158, 169, 163, 158, 163, 159, 159, 160, 157, 169, 160, 157, 154, 160, 161, 162, 160, 157, 152, 158, 144, 163, 165, 179, 161, 155, 156, 157, 158, 158, 162, 156, 161, 165, 164, 155, 165, 159, 150, 162, 166, 181, 161, 163, 157, 163, 164, 163, 156, 159, 158, 165, 153, 159, 162, 164, 172, 162, 162, 164, 158, 168, 155, 167, 159, 160, 160, 147, 161, 152, 153, 155, 157, 167, 159, 161, 162, 167, 164, 157, 157, 163, 150, 157, 166, 161, 160, 159, 156, 157, 143, 165, 159, 156, 155, 159, 157, 164, 155, 158, 160, 169, 155, 156, 164, 158, 160, 159, 156, 154, 159, 155, 162, 172, 153, 168, 159, 151, 159, 156, 158, 160, 152, 152, 163, 158, 158, 167, 169, 174, 158, 159, 155, 159, 168, 157, 161, 148, 167, 144, 175, 166, 159, 158, 167, 158, 161, 159, 157, 158, 151, 155, 159, 162, 157, 165, 159, 157, 155, 160, 155, 166, 154, 160, 156, 157, 155, 164, 160, 157, 158, 157, 165, 155, 158, 153, 161, 165, 158, 160, 162, 162, 157, 161, 152, 161, 153, 151, 157, 158, 161, 158, 177, 162, 162, 154, 156, 157, 161, 158, 155, 170, 156, 142, 162, 158, 165, 164, 156, 158, 156, 157, 156, 163, 157, 172, 158, 161, 170, 160, 173, 158, 162, 166, 162, 159, 158, 166, 152, 161, 161, 157, 162, 162, 161, 157, 171, 159, 145, 152, 157, 160, 155, 165, 158, 164, 162, 151, 151, 164, 161, 149, 157, 164, 157, 166, 160, 164, 157, 157, 161, 154, 152, 165, 167, 161, 156, 168, 156, 167, 159, 163, 159, 156, 154, 164, 156, 152, 162, 161, 154, 158, 166, 159, 155, 163, 161, 149, 151, 151, 167, 161, 160, 154, 175, 147, 157, 155, 155, 159, 162, 157, 158, 162, 160, 162, 159, 165, 157, 161, 162, 166, 158, 157, 161, 156, 156, 158, 162, 153, 167, 161, 162, 161, 156, 157, 160, 168, 156, 147, 158, 178, 163, 165, 157, 162, 163, 160, 159, 157, 142, 166, 156, 158, 161, 156, 158, 162, 150, 163, 158, 161, 164, 158, 157, 161, 178, 160, 159, 163, 160, 156, 158, 160, 163, 165, 162, 160, 163, 157, 160, 162, 155, 136, 160, 166, 161, 161, 154, 159, 164, 163, 158, 159, 165, 160, 164, 157, 155, 164, 165, 164, 159, 164, 158, 163, 161, 159, 156, 161, 162, 160, 158, 157, 155, 160, 163, 162, 152, 164, 158, 149, 155, 157, 159, 158, 155, 168, 160, 157, 160, 165, 153, 164, 163, 166, 160, 155, 166, 156, 162, 161, 159, 162, 158, 157, 158, 156, 163, 163, 167, 157, 149, 157, 178, 168, 157, 160, 160, 146, 164, 153, 162, 160, 174, 164, 161, 168, 164, 156, 155, 158, 158, 162, 158, 157, 165, 160, 166, 159, 167, 160, 152, 159, 160, 158, 165, 158, 162, 163, 156, 159, 163, 154, 156, 161, 157, 160, 163, 161, 160, 160, 162, 157, 153, 154, 158, 159, 160, 162, 160, 166, 168, 163, 166, 156, 160, 161, 167, 153, 163, 157, 160, 155, 153, 160, 162, 183, 162, 161, 158, 159, 159, 158, 159, 152, 162, 158, 162, 161, 147, 159, 164, 192, 161, 161, 157, 190, 161, 161, 157, 156, 151, 158, 158, 161, 161, 158, 169, 160, 161, 160, 163, 162, 174, 161, 158, 163, 157, 156, 161, 159, 160, 162, 166, 166, 155, 161, 161, 154, 163, 154, 157, 157, 156, 164, 157, 157, 165, 160, 159, 162, 155, 161, 155, 164, 165, 163, 164, 137, 160, 165, 144, 159, 162, 156, 161, 158, 159, 158, 160, 160, 154, 161, 158, 161, 155, 158, 160, 163, 159, 157, 156, 169, 158, 159, 159, 158, 154, 159, 167, 179, 164, 160, 164, 159, 160, 155, 161, 161, 161, 161, 166, 169, 159, 160, 155, 152, 173, 163, 161, 159, 162, 158, 158, 155, 156, 158, 156, 161, 158, 166, 154, 171, 166, 154, 152, 167, 164, 162, 158, 164, 149, 155, 157, 160, 154, 157, 154, 158, 158, 162, 159, 161, 161, 161, 157, 157, 164, 163, 160, 156, 159, 152, 160, 155, 154, 167, 160, 161, 161, 162, 166, 160, 158, 157, 150, 159, 164, 158, 150, 157, 158, 160, 157, 159, 157, 146, 160, 167, 158, 156, 167, 164, 162, 154, 164, 168, 165, 156, 160, 158, 158, 159, 158, 157, 162, 173, 156, 160, 159, 176, 164, 160, 191, 158, 136, 160, 157, 164, 159, 156, 159, 153, 152, 157, 161, 171, 163, 154, 154, 156, 158, 159, 161, 163, 160, 152, 166, 160, 160, 161, 160, 160, 159, 160, 175, 158, 160, 158, 160, 159, 155, 159, 165, 163, 161, 162, 160, 152, 160, 159, 161, 162, 164, 149, 162, 161, 165, 158, 163, 158, 152, 159, 166, 157, 160, 160, 163, 155, 159, 164, 163, 157, 159, 160, 161, 157, 168, 164, 163, 157, 170, 157, 156, 162, 160, 157, 155, 164, 162, 154, 157, 166, 159, 158, 157, 190, 159, 158, 163, 164, 164, 154, 160, 159, 159, 161, 160, 162, 162, 159, 156, 160, 157, 157, 164, 152, 157, 170, 157, 161, 155, 151, 155, 153, 160, 158, 151, 159, 164, 148, 164, 154, 160, 163, 157, 164, 163, 158, 161, 161, 159, 162, 157, 158, 160, 164, 161, 156, 161, 168, 161, 163, 161, 169, 151, 162, 154, 158, 159, 161, 155, 166, 161, 161, 154, 160, 158, 162, 157, 153, 147, 165, 163, 162, 153, 155, 171, 155, 155, 143, 155, 153, 158, 161, 167, 161, 159, 168, 156, 158, 157, 165, 139, 163, 166, 150, 158, 156, 159, 164, 161, 155, 157, 160, 156, 159, 165, 157, 160, 157, 168, 159, 160, 168, 158, 153, 161, 151, 159, 181, 160, 164, 160, 157, 158, 156, 154, 158, 154, 158, 157, 162, 164, 158, 158, 165, 136, 161, 152, 170, 163, 160, 158, 165, 153, 158, 151, 162, 160, 156, 174, 160, 156, 158, 157, 154, 161, 155, 154, 165, 165, 162, 160, 159, 161, 153, 162, 168, 161, 162, 161, 160, 159, 170, 157, 169, 160, 154, 151, 153, 152, 160, 161, 156, 161, 163, 168, 181, 163, 173, 163, 156, 154, 164, 167, 165, 163, 163, 157, 153, 155, 157, 163, 158, 161, 168, 157, 159, 157, 144, 159, 159, 162, 160, 158, 160, 157, 162, 155, 160, 158, 159, 159, 154, 162, 166, 155, 160, 159, 178, 158, 159, 160, 162, 165, 154, 159, 158, 164, 160, 162, 162, 162, 162, 166, 155, 157, 160, 146, 167, 159, 163, 163, 160, 163, 165, 171, 162, 158, 161, 165, 156, 160, 150, 161, 165, 160, 164, 159, 161, 164, 154, 160, 157, 153, 156, 162, 156, 158, 164, 154, 157, 161, 157, 153, 156, 165, 162, 156, 156, 165, 156, 155, 158, 163, 165, 162, 153, 164, 162, 156, 151, 161, 160, 163, 158, 159, 160, 157, 158, 155, 161, 161, 158, 159, 164, 155, 150, 157, 162, 162, 156, 158, 169, 163, 155, 153, 156, 158, 156, 160, 160, 157, 162, 162, 156, 152, 157, 156, 157, 141, 151, 155, 160, 166, 157, 164, 156, 161, 163, 165, 157, 168, 157, 165, 177, 153, 148, 166, 157, 166, 156, 164, 155, 165, 150, 159, 149, 158, 170, 154, 165, 159, 166, 173, 158, 160, 160, 161, 159, 159, 161, 155, 163, 161, 160, 157, 161, 172, 160, 158, 169, 173, 157, 160, 158, 158, 166, 160, 144, 158, 161, 168, 152, 160, 150, 154, 156, 167, 155, 158, 167, 163, 157, 159, 159, 164, 159, 158, 160, 159, 159, 171, 156, 161, 163, 165, 154, 159, 157, 161, 164, 160, 160, 157, 167, 163, 160, 152, 160, 159, 171, 160, 163, 164, 161, 163, 155, 162, 143, 165, 153, 154, 164, 157, 154, 160, 162, 162, 159, 155, 162, 162, 152, 158, 151, 155, 153, 162, 155, 163, 158, 164, 149, 161, 158, 162, 157, 159, 161, 159, 164, 158, 159, 174, 159, 158, 158, 174, 155, 165, 163, 159, 160, 160, 168, 154, 158, 155, 161, 164, 154, 161, 156, 134, 148, 162, 174, 154, 166, 160, 155, 158, 162, 157, 160, 156, 165, 166, 160, 156, 161, 147, 165, 153, 159, 133, 168, 160, 168, 161, 175, 154, 157, 162, 154, 156, 161, 162, 151, 155, 156, 158, 148, 157, 167, 161, 157, 159, 159, 165, 167, 153, 167, 164, 150, 159, 155, 151, 164, 166, 187, 156, 168, 161, 160, 160, 156, 161, 160, 159, 161, 161, 160, 163, 154, 158, 156, 154, 161, 149, 154, 156, 164, 157, 155, 160, 156, 158, 147, 160, 164, 152, 153, 166, 155, 163, 157, 159, 159, 158, 154, 162, 160, 154, 160, 162, 159, 163, 148, 161, 165, 165, 163, 160, 155, 155, 163, 159, 166, 161, 159, 157, 155, 153, 156, 166, 158, 156, 160, 153, 155, 161, 158, 167, 164, 165, 153, 162, 158, 152, 154, 161, 169, 153, 158, 158, 161, 160, 157, 155, 152, 161, 156, 158, 158, 162, 156, 156, 164, 156, 151, 158, 159, 163, 166, 168, 150, 161, 159, 162, 164, 177, 162, 161, 153, 164, 165, 157, 157, 155, 161, 162, 164, 151, 163, 159, 157, 163, 149, 159, 163, 156, 158, 153, 158, 153, 157, 151, 155, 161, 151, 156, 175, 172, 155, 164, 163, 159, 156, 162, 164, 165, 161, 157, 159, 155, 156, 162, 165, 174, 151, 166, 161, 170, 154, 162, 164, 158, 159, 158, 166, 157, 152, 166, 157, 169, 171, 165, 157, 158, 153, 160, 144, 170, 168, 171, 157, 155, 158, 159, 190, 158, 151, 169, 158, 157, 156, 155, 155, 166, 162, 157, 167, 165, 153, 160, 169, 153, 167, 159, 162, 169, 168, 182, 149, 154, 167, 154, 159, 162, 163, 160, 157, 158, 165, 160, 157, 156, 162, 166, 172, 157, 163, 161, 161, 157, 160, 163, 163, 165, 156, 159, 153, 166, 162, 157, 164, 158, 157, 161, 153, 154, 160, 164, 162, 169, 156, 173, 161, 159, 156, 156, 160, 168, 164, 161, 162, 161, 160, 168, 147, 159, 158, 159, 158, 168, 159, 167, 160, 162, 152, 153, 157, 163, 157, 156, 164, 157, 165, 163, 152, 152, 159, 165, 159, 159, 164, 158, 143, 162, 164, 162, 165, 169, 158, 153, 150, 147, 163, 155, 157, 157, 163, 159, 171, 159, 168, 163, 162, 158, 166, 162, 152, 155, 157, 160, 164, 156, 169, 157, 154, 161, 167, 164, 157, 158, 155, 167, 153, 161, 166, 154, 158, 161, 162, 162, 158, 161, 158, 159, 156, 158, 158, 152, 158, 160, 169, 154, 166, 164, 165, 155, 158, 159, 158, 164, 158, 161, 170, 157, 165, 167, 160, 152, 169, 159, 161, 147, 152, 163, 159, 154, 172, 162, 157, 158, 158, 160, 169, 163, 153, 155, 157, 163, 155, 160, 158, 171, 173, 165, 158, 145, 153, 162, 161, 153, 154, 159, 159, 167, 154, 169, 165, 158, 151, 159, 150, 160, 159, 142, 162, 166, 158, 159, 161, 155, 160, 144, 157, 154, 164, 163, 157, 172, 159, 158, 155, 158, 152, 156, 159, 161, 171, 165, 157, 155, 153, 154, 159, 158, 159, 163, 158, 160, 151, 164, 171, 170, 168, 156, 163, 160, 162, 162, 159, 152, 168, 160, 157, 161, 153, 152, 160, 164, 165, 159, 159, 167, 161, 153, 157, 150, 159, 161, 159, 157, 162, 159, 162, 163, 153, 149, 154, 157, 158, 171, 159, 165, 165, 144, 155, 161, 165, 170, 159, 162, 157, 152, 165, 158, 156, 156, 151, 161, 158, 155, 149, 164, 153, 161, 156, 149, 157, 158, 156, 153, 155, 160, 153, 155, 160, 146, 158, 159, 159, 160, 164, 158, 160, 164, 161, 156, 154, 170, 158, 158, 166, 164, 164, 160, 159, 160, 164, 159, 165, 158, 162, 149, 160, 157, 158, 161, 161, 161, 166, 156, 162, 152, 162, 157, 155, 160, 161, 157, 170, 160, 159, 145, 156, 150, 157, 158, 161, 167, 154, 149, 159, 165, 163, 161, 156, 157, 156, 159, 164, 166, 176, 172, 167, 164, 163, 161, 164, 161, 164, 153, 156, 164, 169, 156, 162, 161, 167, 171, 153, 164, 181, 157, 157, 155, 156, 173, 166, 161, 158, 160, 151, 158, 157, 162, 154, 152, 164, 156, 157, 161, 163, 161, 158, 150, 169, 159, 164, 163, 158, 161, 163, 161, 172, 161, 156, 161, 164, 155, 162, 157, 156, 159, 161, 166, 168, 160, 150, 160, 155, 160, 160, 165, 151, 169, 158, 165, 162, 157, 163, 157, 154, 169, 173, 170, 164, 160, 154, 159, 162, 156, 159, 156, 156, 166, 153, 160, 162, 162, 161, 158, 159, 159, 161, 156, 157, 159, 162, 166, 150, 146, 167, 161, 162, 158, 161, 150, 158, 163, 151, 161, 159, 171, 162, 164, 157, 161, 162, 160, 163, 170, 153, 160, 158, 157, 163, 157, 163, 162, 163, 151, 149, 155, 162, 163, 159, 164, 161, 155, 161, 151, 164, 158, 158, 156, 157, 160, 155, 157, 160, 164, 156, 156, 163, 168, 166, 158, 158, 159, 160, 158, 160, 156, 152, 149, 154, 163, 176, 161, 157, 151, 166, 159, 144, 160, 158, 162, 161, 160, 152, 155, 164, 145, 156, 156, 160, 160, 167, 158, 156, 163, 159, 168, 151, 159, 152, 150, 158, 155, 156, 164, 156, 158, 161, 153, 167, 159, 155, 160, 160, 142, 160, 163, 158, 157, 164, 154, 164, 154, 157, 161, 160, 161, 158, 161, 161, 161, 163, 147, 163, 162, 168, 157, 158, 157, 153, 159, 153, 152, 162, 160, 156, 166, 167, 161, 159, 167, 164, 161, 167, 156, 164, 153, 149, 159, 157, 160, 161, 156, 164, 163, 156, 157, 149, 160, 162, 155, 158, 160, 153, 159, 164, 166, 159, 152, 162, 159, 161, 157, 167, 164, 162, 156, 161, 165, 166, 156, 158, 148, 163, 161, 156, 160, 158, 157, 154, 163, 167, 163, 157, 158, 160, 156, 153, 151, 164, 158, 157, 160, 158, 154, 160, 155, 163, 150, 162, 159, 145, 155, 157, 158, 152, 159, 153, 161, 161, 161, 163, 157, 161, 156, 159, 164, 151, 157, 164, 158, 157, 152, 167, 154, 159, 162, 154, 155, 168, 158, 161, 156, 156, 161, 160, 163, 160, 160, 154, 155, 155, 161, 163, 158, 162, 153, 157, 158, 161, 149, 159, 158, 161, 162, 159, 165, 156, 174, 159, 156, 164, 161, 162, 161, 149, 178, 162, 165, 161, 157, 165, 159, 160, 175, 159, 158, 154, 155, 162, 155, 164, 162, 161, 158, 162, 167, 161, 149, 168, 159, 165, 159, 159, 156, 155, 153, 161, 161, 147, 156, 159, 163, 163, 162, 156, 151, 158, 155, 166, 147, 159, 166, 162, 159, 160, 161, 160, 156, 160, 166, 156, 160, 156, 154, 165, 168, 160, 164, 162, 167, 164, 162, 157, 159, 154, 162, 153, 161, 175, 159, 156, 160, 155, 155, 169, 166, 155, 160, 165, 175, 160, 151, 169, 171, 161, 157, 161, 166, 161, 159, 161, 153, 160, 151, 156, 152, 167, 157, 157, 158, 169, 157, 159, 157, 163, 167, 162, 149, 160, 161, 159, 157, 172, 153, 165, 164, 164, 154, 161, 159, 160, 161, 154, 166, 163, 157, 157, 147, 157, 159, 154, 157, 160, 155, 158, 162, 159, 155, 167, 163, 163, 163, 158, 159, 162, 158, 154, 162, 166, 170, 155, 153, 159, 162, 162, 159, 158, 157, 149, 160, 156, 162, 169, 154, 148, 163, 170, 159, 156, 161, 156, 159, 162, 164, 154, 169, 169, 163, 151, 164, 154, 155, 167, 163, 160, 155, 165, 164, 171, 152, 160, 150, 158, 161, 154, 156, 152, 154, 162, 160, 153, 152, 165, 154, 161, 171, 162, 156, 160, 162, 159, 154, 159, 160, 169, 162, 163, 161, 162, 156, 156, 168, 167, 164, 157, 172, 161, 156, 152, 150, 162, 160, 156, 159, 162, 163, 160, 171, 155, 156, 161, 154, 158, 164, 155, 158, 152, 156, 160, 166, 165, 153, 160, 173, 151, 176, 145, 164, 163, 161, 167, 160, 161, 156, 155, 154, 156, 166, 155, 173, 164, 157, 160, 159, 152, 154, 158, 154, 163, 157, 157, 158, 168, 154, 158, 155, 153, 157, 154, 161, 156, 163, 160, 158, 162, 160, 162, 165, 154, 160, 161, 163, 163, 155, 162, 167, 162, 161, 161, 164, 158, 160, 161, 160, 161, 162, 153, 158, 166, 159, 159, 164, 166, 164, 149, 167, 159, 159, 165, 156, 160, 176, 157, 150, 153, 161, 168, 161, 166, 150, 166, 166, 158, 168, 159, 165, 159, 154, 153, 160, 161, 161, 163, 151, 169, 167, 157, 162, 162, 158, 168, 152, 158, 160, 168, 158, 148, 158, 162, 163, 177, 167, 158, 166, 162, 160, 155, 158, 162, 161, 155, 157, 155, 162, 154, 159, 163, 162, 167, 156, 159, 173, 163, 158, 149, 152, 155, 157, 157, 157, 165, 165, 160, 156, 149, 160, 166, 155, 142, 170, 153, 161, 161, 159, 165, 159, 154, 149, 162, 175, 162, 159, 152, 163, 157, 167, 157, 160, 153, 156, 166, 164, 161, 154, 155, 160, 178, 169, 159, 157, 157, 158, 164, 156, 164, 160, 153, 157, 149, 159, 162, 153, 156, 151, 171, 160, 158, 165, 161, 162, 158, 163, 160, 163, 151, 155, 163, 163, 169, 159, 165, 157, 161, 169, 163, 159, 154, 165, 164, 153, 158, 151, 169, 155, 164, 157, 163, 151, 158, 163, 141, 156, 157, 162, 155, 171, 149, 159, 167, 158, 166, 158, 158, 167, 163, 159, 159, 160, 155, 159, 159, 153, 156, 154, 154, 159, 167, 161, 157, 169, 163, 154, 160, 167, 169, 156, 156, 149, 158, 168, 148, 152, 159, 153, 157, 150, 153, 160, 157, 159, 169, 162, 165, 162, 157, 159, 161, 158, 154, 150, 164, 155, 148, 160, 157, 149, 154, 159, 159, 169, 161, 161, 157, 159, 163, 151, 176, 157, 160, 158, 166, 162, 156, 156, 168, 166, 149, 154, 157, 157, 165, 159, 166, 143, 157, 167, 156, 159, 161, 168, 161, 164, 160, 157, 161, 158, 158, 162, 154, 160, 152, 166, 166, 162, 200, 164, 163, 161, 156, 160, 157, 158, 166, 154, 154, 154, 158, 158, 163, 159, 153, 159, 162, 139, 157, 165, 165, 168, 158, 152, 170, 163, 145, 151, 182, 164, 159, 157, 163, 154, 153, 154, 155, 159, 158, 162, 158, 166, 161, 164, 152, 169, 157, 162, 155, 155, 163, 156, 161, 156, 150, 164, 160, 159, 166, 156, 162, 162, 161, 153, 151, 160, 162, 158, 158, 149, 161, 174, 158, 156, 153, 163, 162, 160, 168, 158, 155, 159, 159, 161, 164, 150, 161, 165, 153, 162, 157, 160, 145, 165, 160, 156, 161, 151, 158, 155, 160, 167, 162, 159, 164, 167, 161, 169, 164, 170, 156, 159, 154, 152, 160, 162, 163, 162, 171, 161, 157, 160, 158, 159, 152, 156, 159, 166, 160, 162, 162, 153, 162, 162, 158, 174, 160, 160, 160, 162, 153, 151, 172, 158, 169, 174, 171, 159, 157, 164, 163, 161, 164, 162, 166, 160, 167, 157, 160, 157, 159, 157, 158, 163, 177, 170, 158, 167, 171, 163, 157, 160, 158, 157, 167, 156, 158, 158, 159, 156, 163, 163, 158, 164, 157, 167, 157, 160, 157, 155, 156, 165, 157, 167, 156, 159, 152, 156, 152, 161, 156, 157, 161, 158, 157, 162, 159, 159, 160, 165, 159, 148, 156, 160, 160, 161, 169, 162, 161, 160, 168, 154, 160, 161, 159, 161, 163, 160, 162, 165, 160, 159, 160, 151, 157, 164, 162, 160, 165, 158, 158, 161, 155, 153, 154, 152, 158, 159, 161, 165, 160, 161, 161, 154, 181, 156, 154, 163, 157, 152, 155, 156, 159, 158, 159, 166, 162, 158, 155, 165, 158, 156, 165, 161, 163, 154, 164, 166, 155, 156, 159, 163, 151, 157, 151, 154, 156, 160, 159, 161, 158, 154, 170, 159, 163, 152, 162, 157, 155, 172, 158, 161, 157, 159, 155, 162, 159, 155, 153, 154, 171, 143, 160, 160, 162, 151, 162, 160, 149, 160, 163, 165, 161, 161, 161, 162, 162, 155, 159, 156, 165, 159, 160, 153, 156, 162, 157, 165, 164, 167, 162, 158, 164, 159, 170, 165, 162, 161, 165, 158, 155, 165, 167, 155, 157, 154, 166, 151, 160, 159, 163, 167, 157, 159, 147, 162, 165, 177, 162, 157, 170, 161, 154, 156, 159, 157, 158, 175, 169, 158, 162, 159, 165, 158, 160, 163, 161, 156, 158, 158, 166, 154, 160, 158, 154, 173, 156, 166, 156, 158, 164, 157, 161, 164, 165, 154, 156, 135, 159, 159, 169, 176, 168, 155, 158, 149, 156, 157, 163, 161, 156, 172, 163, 151, 153, 168, 149, 166, 148, 141, 162, 155, 176, 162, 136, 160, 160, 152, 162, 155, 172, 167, 163, 152, 150, 162, 163, 170, 159, 168, 156, 166, 153, 155, 162, 156, 158, 160, 167, 164, 140, 159, 149, 156, 153, 159, 166, 150, 148, 156, 154, 160, 160, 159, 159, 155, 155, 158, 148, 154, 158, 170, 159, 155, 162, 164, 148, 158, 158, 160, 151, 156, 153, 166, 163, 157, 172, 158, 158, 156, 149, 183, 163, 150, 146, 149, 154, 160, 161, 159, 161, 158, 169, 162, 164, 157, 156, 158, 162, 138, 160, 160, 168, 166, 161, 170, 157, 162, 154, 156, 156, 158, 158, 144, 163, 155, 162, 156, 171, 162, 158, 166, 165, 162, 176, 167, 155, 171, 162, 158, 172, 156, 158, 151, 170, 171, 164, 148, 166, 160, 158, 164, 159, 166, 150, 168, 156, 158, 154, 166, 154, 159, 156, 157, 157, 156, 158, 177, 152, 161, 162, 161, 161, 160, 149, 158, 166, 152, 162, 158, 165, 157, 159, 161, 162, 158, 165, 158, 155, 157, 162, 157, 162, 159, 155, 150, 156, 167, 160, 146, 159, 157, 158, 156, 152, 158, 171, 164, 158, 151, 160, 157, 160, 154, 161, 165, 155, 172, 154, 164, 161, 161, 149, 155, 163, 174, 179, 161, 160, 152, 175, 166, 164, 163, 155, 152, 157, 166, 166, 163, 168, 156, 161, 162, 160, 161, 158, 160, 162, 156, 166, 165, 163, 173, 156, 160, 157, 160, 159, 148, 165, 160, 157, 156, 156, 156, 157, 171, 168, 159, 171, 152, 158, 159, 172, 153, 157, 158, 150, 177, 156, 161, 155, 176, 165, 154, 154, 177, 165, 168, 153, 160, 161, 169, 159, 174, 158, 157, 161, 162, 171, 169, 157, 154, 159, 153, 157, 165, 164, 163, 167, 163, 154, 162, 161, 158, 158, 169, 160, 171, 180, 163, 163, 151, 154, 155, 158, 160, 159, 166, 166, 159, 157, 160, 156, 155, 156, 156, 166, 163, 158, 163, 153, 151, 158, 161, 171, 161, 159, 164, 161, 165, 170, 167, 157, 176, 155, 154, 160, 162, 162, 153, 170, 160, 168, 156, 169, 162, 154, 152, 155, 161, 152, 158, 165, 158, 127, 174, 160, 164, 153, 159, 161, 162, 163, 155, 158, 159, 162, 155, 155, 160, 163, 163, 162, 159, 166, 158, 156, 163, 156, 162, 162, 152, 204, 158, 165, 160, 169, 157, 173, 156, 161, 174, 166, 155, 163, 148, 166, 153, 157, 160, 155, 165, 166, 169, 160, 159, 164, 160, 156, 189, 152, 161, 162, 158, 145, 147, 158, 159, 160, 162, 165, 170, 159, 149, 162, 165, 168, 155, 167, 165, 164, 163, 151, 163, 153, 166, 159, 166, 164, 155, 157, 150, 158, 144, 161, 162, 159, 170, 153, 145, 162, 152, 156, 158, 156, 147, 157, 156, 161, 156, 183, 155, 162, 153, 156, 185, 159, 149, 157, 165, 158, 166, 145, 168, 155, 160, 167, 156, 175, 158, 165, 158, 169, 160, 161, 167, 168, 161, 161, 151, 159, 164, 151, 146, 155, 158, 175, 169, 148, 169, 159, 154, 164, 160, 168, 159, 159, 149, 152, 162, 153, 167, 157, 160, 154, 192, 155, 160, 161, 155, 160, 164, 153, 158, 153, 169, 157, 147, 159, 160, 164, 159, 147, 149, 159, 151, 146, 157, 183, 154, 172, 159, 153, 173, 182, 160, 165, 150, 157, 163, 163, 152, 154, 162, 166, 153, 158, 165, 157, 151, 158, 148, 160, 161, 151, 159, 168, 156, 163, 180, 163, 152, 165, 156, 161, 160, 166, 162, 173, 169, 162, 162, 159, 160, 155, 155, 168, 156, 162, 167, 166, 167, 164, 165, 166, 160, 164, 146, 154, 165, 164, 162, 156, 156, 164, 163, 164, 158, 160, 157, 166, 159, 154, 155, 156, 163, 159, 164, 163, 153, 162, 168, 169, 144, 174, 152, 159, 162, 165, 166, 162, 162, 158, 158, 161, 178, 153, 151, 162, 156, 153, 157, 163, 165, 146, 175, 154, 159, 167, 163, 161, 151, 185, 159, 163, 168, 149, 160, 154, 158, 152, 154, 171, 151, 153, 148, 167, 164, 156, 168, 167, 167, 152, 155, 155, 153, 160, 161, 154, 158, 161, 164, 165, 160, 166, 159, 158, 156, 159, 145, 152, 153, 167, 159, 155, 167, 158, 153, 162, 170, 155, 159, 170, 157, 170, 160, 164, 155, 153, 166, 148, 156, 162, 158, 159, 159, 158, 151, 158, 159, 165, 159, 153, 158, 163, 160, 155, 168, 154, 159, 159, 148, 163, 171, 165, 154, 159, 154, 157, 152, 165, 161, 154, 152, 155, 162, 158, 163, 157, 158, 159, 164, 155, 155, 164, 151, 154, 152, 152, 161, 156, 166, 154, 157, 161, 155, 153, 140, 158, 157, 163, 162, 154, 176, 158, 152, 163, 160, 166, 157, 168, 191, 155, 167, 163, 164, 168, 160, 147, 162, 169, 160, 163, 160, 155, 162, 158, 160, 159, 158, 163, 157, 162, 155, 162, 160, 136, 153, 138, 167, 151, 155, 162, 160, 158, 162, 150, 159, 165, 158, 160, 162, 155, 155, 157, 159, 171, 151, 155, 168, 164, 172, 157, 159, 165, 158, 159, 144, 152, 157, 162, 168, 153, 167, 146, 169, 150, 162, 163, 168, 151, 160, 147, 163, 158, 158, 153, 159, 158, 155, 163, 152, 151, 168, 158, 174, 160, 157, 153, 160, 167, 171, 168, 163, 156, 162, 157, 156, 159, 155, 175, 160, 168, 173, 169, 157, 150, 157, 163, 150, 153, 152, 159, 157, 156, 161, 167, 157, 158, 162, 159, 159, 158, 160, 150, 160, 168, 160, 166, 156, 166, 161, 157, 159, 164, 156, 159, 158, 156, 158, 154, 153, 152, 164, 150, 156, 161, 157, 168, 167, 160, 162, 155, 166, 143, 160, 160, 169, 163, 153, 159, 167, 168, 159, 183, 153, 152, 152, 155, 149, 173, 161, 156, 168, 150, 165, 158, 157, 149, 160, 158, 146, 149, 157, 156, 151, 155, 161, 157, 158, 156, 159, 164, 153, 155, 163, 161, 161, 159, 162, 160, 158, 155, 163, 158, 163, 160, 163, 161, 160, 159, 161, 158, 162, 160, 159, 162, 162, 159, 162, 160, 159, 160, 159, 161, 161, 161, 163, 161, 160, 163, 157, 159, 162, 157, 158, 163, 164, 161, 157, 159, 160, 159, 167, 158, 161, 162, 164, 162, 160, 162, 159, 164, 155, 160, 161, 160, 157, 158, 159, 161, 138, 165, 160, 162, 160, 161, 163, 161, 162, 160, 161, 159, 155, 158, 158, 159, 159, 162, 159, 159, 164, 161, 160, 159, 163, 163, 160, 163, 162, 159, 161, 157, 159, 152, 159, 162, 161, 157, 162, 163, 164, 160, 161, 159, 160, 158, 159, 162, 160, 167, 161, 159, 160, 162, 160, 162, 155, 160, 154, 159, 161, 167, 166, 160, 160, 157, 158, 177, 162, 161, 161, 161, 157, 159, 162, 161, 160, 161, 165, 160, 166, 162, 159, 161, 153, 158, 161, 164, 167, 161, 161, 164, 156, 157, 156, 158, 160, 157, 162, 163, 156, 162, 157, 159, 158, 160, 159, 161, 160, 164, 159, 157, 160, 158, 160, 162, 160, 156, 159, 161, 159, 167, 157, 160, 163, 162, 160, 156, 160, 160, 159, 161, 158, 159, 159, 160, 163, 162, 160, 156, 161, 155, 159, 159, 159, 161, 158, 160, 168, 158, 160, 163, 163, 162, 162, 159, 158, 162, 160, 154, 162, 164, 161, 169, 160, 159, 161, 161, 163, 161, 160, 165, 157, 163, 160, 162, 168, 149, 162, 158, 163, 160, 161, 160, 161, 163, 156, 164, 164, 162, 160, 164, 160, 161, 162, 159, 153, 161, 156, 158, 155, 154, 159, 157, 160, 159, 162, 152, 163, 159, 160, 160, 162, 160, 158, 159, 159, 160, 160, 158, 164, 161, 160, 154, 161, 163, 160, 164, 159, 159, 162, 160, 161, 162, 160, 160, 164, 161, 163, 160, 159, 161, 160, 160, 164, 161, 157, 164, 160, 163, 156, 158, 162, 161, 162, 162, 159, 160, 159, 160, 159, 160, 161, 164, 161, 162, 161, 162, 157, 155, 159, 161, 160, 159, 160, 160, 158, 160, 159, 162, 158, 160, 157, 159, 158, 160, 161, 159, 162, 160, 161, 156, 162, 160, 160, 162, 159, 163, 157, 158, 157, 158, 157, 160, 163, 159, 157, 156, 161, 158, 162, 172, 160, 162, 160, 160, 165, 162, 157, 160, 160, 153, 159, 163, 161, 162, 166, 159, 161, 156, 153, 159, 155, 158, 157, 163, 160, 162, 157, 159, 163, 160, 160, 160, 164, 161, 158, 159, 158, 158, 166, 165, 180, 160, 159, 161, 158, 163, 161, 161, 160, 151, 165, 161, 162, 162, 161, 159, 162, 165, 161, 163, 159, 165, 157, 161, 157, 159, 161, 165, 160, 163, 158, 161, 160, 164, 159, 162, 163, 157, 161, 161, 162, 161, 160, 160, 161, 160, 161, 157, 158, 162, 160, 161, 162, 163, 159, 160, 160, 157, 158, 161, 159, 160, 160, 161, 177, 162, 161, 159, 161, 159, 161, 163, 161, 157, 159, 157, 159, 159, 162, 159, 160, 159, 161, 160, 155, 160, 160, 160, 158, 159, 160, 160, 160, 157, 156, 163, 162, 157, 155, 163, 165, 157, 156, 156, 155, 162, 159, 157, 161, 156, 160, 159, 165, 165, 155, 160, 158, 165, 157, 162, 163, 163, 161, 159, 153, 162, 161, 159, 163, 159, 165, 156, 163, 159, 156, 157, 170, 167, 152, 158, 162, 163, 152, 156, 162, 163, 161, 149, 157, 156, 147, 160, 159, 161, 161, 158, 158, 168, 163, 163, 156, 156, 157, 158, 164, 162, 168, 156, 172, 157, 155, 159, 164, 161, 162, 164, 159, 162, 162, 160, 153, 160, 164, 166, 155, 181, 162, 159, 157, 154, 163, 164, 164, 161, 161, 165, 160, 157, 159, 155, 163, 159, 176, 157, 160, 162, 147, 148, 150, 156, 165, 158, 162, 158, 161, 159, 160, 157, 151, 163, 159, 183, 157, 160, 155, 164, 157, 157, 161, 161, 155, 159, 150, 162, 160, 163, 163, 167, 161, 153, 167, 151, 161, 159, 154, 160, 161, 158, 154, 169, 160, 175, 167, 158, 158, 154, 151, 161, 163, 155, 189, 164, 162, 160, 158, 158, 166, 157, 157, 153, 160, 168, 158, 147, 165, 157, 162, 154, 160, 165, 165, 166, 159, 156, 162, 174, 161, 161, 159, 153, 156, 160, 160, 158, 154, 157, 161, 168, 160, 156, 154, 156, 153, 160, 155, 159, 160, 162, 175, 164, 157, 164, 164, 155, 166, 162, 159, 160, 154, 151, 164, 165, 156, 175, 160, 164, 169, 163, 159, 163, 161, 163, 159, 157, 162, 183, 171, 165, 154, 167, 159, 177, 162, 159, 160, 160, 153, 154, 166, 158, 159, 155, 157, 160, 156, 162, 166, 167, 155, 162, 155, 161, 161, 160, 163, 168, 161, 153, 164, 156, 161, 164, 166, 156, 161, 158, 166, 155, 155, 156, 163, 157, 164, 151, 155, 168, 156, 175, 163, 158, 174, 168, 153, 168, 164, 163, 166, 162, 160, 159, 158, 157, 157, 170, 164, 159, 168, 161, 159, 157, 156, 161, 160, 161, 159, 150, 162, 150, 164, 161, 164, 163, 161, 167, 159, 158, 166, 161, 162, 155, 161, 157, 164, 154, 160, 158, 166, 164, 162, 155, 155, 159, 154, 162, 161, 163, 161, 161, 157, 167, 163, 161, 159, 156, 161, 160, 161, 165, 160, 157, 169, 160, 163, 161, 160, 162, 152, 162, 155, 163, 154, 162, 159, 156, 153, 163, 168, 154, 159, 167, 162, 153, 151, 160, 161, 166, 154, 156, 163, 156, 160, 162, 162, 155, 154, 153, 161, 160, 162, 158, 153, 161, 159, 157, 161, 159, 156, 152, 154, 158, 173, 154, 167, 153, 150, 157, 164, 166, 155, 156, 154, 148, 161, 156, 168, 157, 157, 154, 159, 155, 167, 157, 160, 158, 168, 153, 162, 167, 163, 160, 160, 169, 153, 162, 154, 162, 156, 164, 160, 155, 167, 161, 158, 164, 162, 157, 158, 157, 160, 157, 158, 160, 169, 151, 160, 163, 146, 157, 159, 159, 160, 164, 155, 164, 162, 167, 151, 155, 162, 160, 160, 161, 158, 158, 155, 164, 160, 152, 152, 163, 158, 159, 158, 157, 162, 157, 159, 165, 157, 156, 153, 162, 164, 163, 159, 163, 168, 158, 158, 145, 161, 156, 159, 156, 161, 160, 162, 160, 161, 150, 164, 160, 153, 153, 164, 164, 158, 156, 156, 160, 166, 147, 159, 153, 158, 155, 158, 164, 158, 153, 165, 155, 160, 160, 150, 159, 153, 157, 156, 154, 158, 158, 162, 166, 161, 161, 159, 157, 155, 158, 151, 158, 155, 166, 150, 163, 164, 162, 157, 169, 164, 160, 162, 156, 161, 156, 159, 201, 156, 156, 162, 169, 157, 159, 164, 161, 160, 157, 160, 159, 161, 156, 163, 155, 165, 158, 159, 159, 156, 159, 164, 158, 161, 157, 159, 153, 152, 176, 153, 149, 158, 160, 156, 172, 165, 162, 152, 156, 161, 158, 162, 158, 158, 159, 159, 152, 160, 154, 152, 166, 163, 159, 153, 165, 161, 155, 170, 152, 163, 155, 153, 155, 162, 167, 157, 159, 162, 162, 155, 156, 164, 163, 158, 158, 165, 152, 160, 168, 157, 154, 164, 174, 161, 160, 161, 156, 153, 156, 160, 151, 179, 156, 164, 166, 166, 157, 181, 157, 152, 156, 169, 159, 155, 157, 162, 162, 148, 165, 154, 155, 158, 147, 161, 155, 157, 156, 161, 163, 165, 165, 160, 157, 157, 160, 165, 167, 166, 162, 165, 149, 161, 176, 158, 165, 160, 152, 153, 160, 165, 161, 161, 155, 155, 158, 157, 159, 153, 165, 164, 153, 157, 159, 155, 168, 155, 155, 156, 156, 154, 160, 161, 159, 163, 153, 157, 156, 158, 160, 160, 160, 155, 164, 157, 168, 162, 158, 163, 149, 140, 165, 154, 161, 164, 158, 162, 161, 159, 158, 156, 160, 165, 157, 166, 163, 163, 161, 156, 165, 161, 158, 156, 156, 160, 161, 151, 156, 153, 162, 159, 160, 147, 159, 160, 147, 164, 159, 148, 167, 174, 160, 162, 154, 161, 151, 157, 163, 176, 159, 169, 158, 157, 163, 160, 151, 156, 160, 159, 163, 163, 152, 161, 163, 159, 159, 170, 160, 161, 162, 154, 168, 156, 167, 153, 156, 158, 160, 159, 160, 164, 152, 159, 164, 160, 157, 168, 152, 159, 160, 166, 166, 161, 165, 163, 167, 163, 150, 159, 165, 163, 158, 162, 154, 151, 168, 165, 163, 159, 159, 169, 153, 160, 161, 149, 157, 148, 158, 158, 163, 158, 155, 153, 165, 162, 169, 157, 165, 163, 165, 160, 162, 159, 161, 166, 157, 158, 163, 153, 164, 162, 167, 174, 158, 168, 165, 170, 161, 160, 161, 163, 173, 163, 144, 165, 156, 158, 161, 165, 160, 158, 154, 172, 157, 164, 164, 153, 159, 152, 158, 165, 159, 156, 167, 158, 157, 168, 156, 153, 162, 160, 153, 154, 158, 154, 164, 161, 163, 158, 149, 161, 154, 156, 147, 159, 152, 171, 165, 167, 159, 165, 159, 150, 167, 156, 155, 160, 163, 154, 153, 158, 155, 160, 158, 156, 162, 175, 167, 155, 156, 153, 162, 166, 172, 153, 164, 162, 168, 159, 167, 161, 160, 154, 158, 159, 160, 165, 160, 165, 153, 163, 164, 162, 165, 159, 160, 165, 157, 149, 164, 162, 156, 158, 165, 156, 160, 155, 155, 162, 164, 156, 155, 153, 153, 160, 163, 161, 156, 160, 161, 154, 162, 159, 165, 165, 162, 164, 148, 166, 158, 161, 165, 153, 156, 160, 153, 157, 166, 163, 159, 159, 157, 157, 159, 160, 156, 154, 164, 170, 155, 159, 170, 157, 158, 159, 165, 160, 161, 160, 157, 159, 159, 161, 156, 158, 158, 161, 158, 155, 163, 153, 161, 164, 162, 160, 156, 162, 150, 155, 160, 160, 157, 170, 166, 156, 158, 161, 152, 161, 160, 164, 159, 160, 175, 165, 156, 158, 164, 162, 168, 160, 163, 161, 163, 160, 155, 155, 161, 157, 157, 156, 149, 161, 167, 169, 166, 167, 161, 163, 157, 154, 162, 161, 156, 157, 158, 162, 152, 158, 156, 168, 167, 162, 166, 158, 156, 156, 165, 152, 154, 153, 155, 158, 155, 153, 152, 157, 161, 169, 166, 159, 159, 156, 161, 164, 159, 164, 153, 159, 164, 158, 157, 151, 161, 156, 159, 165, 158, 163, 163, 157, 158, 157, 166, 162, 151, 162, 162, 164, 177, 158, 162, 157, 160, 156, 161, 154, 155, 154, 161, 163, 164, 160, 156, 156, 182, 158, 159, 175, 162, 161, 174, 157, 160, 155, 160, 161, 162, 146, 167, 160, 154, 160, 164, 158, 162, 162, 162, 158, 153, 153, 156, 152, 159, 161, 164, 162, 158, 164, 162, 158, 157, 157, 190, 160, 156, 158, 166, 169, 159, 165, 155, 166, 166, 153, 156, 157, 159, 166, 154, 161, 158, 163, 168, 155, 173, 156, 151, 167, 161, 155, 155, 151, 166, 160, 160, 164, 162, 156, 166, 164, 160, 155, 165, 155, 163, 146, 150, 166, 161, 155, 159, 172, 160, 154, 151, 159, 154, 160, 155, 164, 165, 161, 160, 162, 159, 158, 164, 162, 161, 166, 162, 162, 163, 163, 161, 156, 164, 168, 163, 157, 160, 145, 165, 162, 170, 159, 164, 158, 163, 157, 161, 161, 160, 158, 164, 158, 158, 165, 164, 159, 164, 165, 159, 158, 149, 160, 167, 165, 167, 155, 157, 162, 156, 163, 162, 156, 161, 151, 154, 158, 167, 153, 160, 159, 153, 160, 162, 156, 162, 159, 150, 154, 155, 151, 160, 156, 165, 162, 154, 159, 171, 158, 162, 157, 159, 159, 160, 164, 154, 161, 168, 160, 164, 158, 170, 160, 163, 157, 165, 160, 160, 155, 156, 150, 162, 151, 160, 155, 159, 160, 159, 163, 166, 155, 153, 163, 160, 157, 165, 162, 160, 165, 158, 151, 166, 157, 161, 161, 164, 159, 155, 160, 155, 156, 156, 161, 162, 158, 157, 151, 157, 162, 167, 166, 160, 147, 162, 164, 156, 159, 154, 157, 156, 174, 163, 177, 161, 160, 154, 160, 150, 160, 158, 161, 159, 156, 181, 166, 166, 161, 155, 164, 164, 158, 159, 159, 168, 156, 157, 157, 151, 159, 157, 164, 162, 157, 163, 157, 160, 158, 163, 157, 159, 159, 159, 161, 174, 148, 166, 162, 158, 157, 152, 164, 167, 160, 161, 160, 162, 158, 162, 157, 166, 165, 161, 152, 158, 160, 155, 160, 155, 162, 157, 158, 162, 159, 160, 153, 157, 158, 162, 152, 157, 159, 176, 159, 156, 164, 157, 158, 158, 154, 160, 168, 163, 151, 153, 154, 162, 168, 160, 149, 167, 160, 163, 166, 156, 160, 176, 161, 152, 166, 161, 154, 163, 172, 162, 155, 160, 151, 160, 159, 160, 158, 160, 155, 162, 161, 165, 157, 165, 152, 159, 162, 161, 155, 160, 156, 161, 159, 154, 160, 152, 150, 160, 165, 164, 156, 173, 166, 160, 164, 152, 158, 162, 161, 159, 153, 160, 164, 162, 165, 154, 157, 155, 159, 158, 157, 160, 159, 154, 157, 165, 156, 153, 161, 157, 147, 168, 156, 155, 163, 150, 159, 170, 156, 160, 152, 159, 160, 158, 162, 165, 161, 161, 158, 159, 152, 156, 161, 171, 165, 153, 160, 164, 160, 162, 156, 160, 162, 158, 158, 159, 162, 161, 146, 168, 157, 160, 156, 155, 155, 159, 152, 168, 158, 153, 153, 147, 165, 161, 163, 156, 167, 157, 162, 160, 165, 167, 167, 163, 155, 158, 159, 155, 158, 162, 160, 162, 159, 157, 150, 168, 160, 157, 162, 165, 144, 159, 162, 156, 150, 160, 164, 160, 146, 154, 159, 164, 159, 160, 162, 161, 163, 159, 167, 159, 162, 160, 157, 154, 162, 162, 156, 169, 148, 159, 158, 157, 156, 157, 165, 153, 162, 162, 161, 158, 162, 163, 158, 155, 159, 163, 158, 158, 158, 158, 174, 160, 157, 161, 164, 151, 160, 155, 163, 162, 161, 163, 159, 159, 153, 155, 157, 165, 164, 156, 167, 162, 149, 156, 159, 152, 162, 159, 146, 163, 160, 167, 159, 169, 156, 161, 164, 161, 163, 154, 168, 161, 159, 159, 160, 172, 163, 163, 164, 164, 156, 170, 160, 156, 163, 159, 164, 169, 163, 158, 158, 161, 162, 161, 163, 159, 145, 156, 163, 162, 158, 165, 160, 159, 177, 152, 162, 159, 162, 161, 157, 157, 166, 156, 162, 166, 162, 162, 163, 156, 157, 158, 162, 148, 160, 157, 158, 160, 161, 162, 161, 154, 158, 161, 169, 159, 157, 159, 159, 159, 150, 159, 167, 148, 157, 159, 162, 159, 161, 168, 147, 166, 157, 179, 159, 158, 157, 155, 162, 162, 160, 158, 161, 160, 167, 164, 150, 177, 151, 155, 166, 169, 162, 156, 153, 162, 161, 162, 154, 157, 166, 157, 158, 161, 164, 171, 163, 156, 149, 161, 158, 163, 163, 154, 146, 170, 162, 157, 153, 158, 162, 160, 161, 158, 162, 160, 151, 153, 153, 163, 156, 160, 159, 157, 156, 146, 168, 153, 155, 156, 165, 161, 162, 162, 155, 154, 155, 160, 159, 165, 154, 161, 157, 180, 158, 164, 159, 155, 163, 160, 154, 158, 161, 159, 160, 157, 153, 163, 157, 169, 158, 154, 158, 162, 157, 159, 156, 166, 158, 170, 156, 157, 159, 165, 160, 184, 161, 160, 159, 161, 159, 159, 160, 158, 157, 165, 156, 157, 136, 162, 160, 139, 157, 163, 159, 160, 159, 157, 155, 157, 155, 164, 156, 163, 162, 158, 153, 160, 162, 165, 160, 149, 153, 161, 158, 160, 162, 161, 156, 167, 160, 159, 161, 160, 161, 156, 162, 149, 170, 156, 164, 163, 154, 155, 153, 157, 158, 163, 154, 174, 157, 167, 170, 158, 166, 159, 155, 155, 159, 166, 162, 159, 158, 169, 165, 163, 158, 157, 161, 159, 171, 155, 166, 153, 161, 158, 162, 163, 159, 175, 151, 157, 160, 155, 167, 160, 162, 155, 162, 168, 151, 165, 156, 158, 150, 160, 158, 162, 159, 149, 155, 160, 160, 159, 161, 159, 157, 164, 152, 160, 157, 144, 162, 164, 155, 155, 162, 167, 161, 162, 158, 165, 166, 162, 156, 153, 158, 162, 161, 169, 163, 161, 157, 159, 156, 156, 161, 157, 151, 160, 156, 165, 160, 160, 152, 164, 157, 156, 162, 161, 171, 168, 160, 163, 159, 157, 161, 161, 160, 155, 149, 157, 160, 158, 158, 159, 164, 166, 160, 161, 165, 158, 161, 161, 159, 157, 160, 151, 155, 150, 161, 157, 161, 168, 161, 155, 161, 150, 161, 163, 159, 154, 163, 151, 158, 162, 167, 164, 167, 162, 163, 166, 159, 161, 160, 158, 163, 162, 152, 152, 167, 166, 158, 164, 153, 159, 163, 163, 165, 159, 162, 160, 155, 165, 158, 177, 156, 155, 160, 162, 160, 165, 161, 159, 156, 151, 165, 162, 160, 171, 162, 162, 157, 158, 162, 159, 165, 161, 158, 154, 159, 152, 162, 162, 165, 153, 163, 163, 159, 168, 161, 162, 151, 153, 149, 158, 160, 152, 153, 159, 158, 156, 152, 165, 154, 160, 155, 163, 154, 163, 162, 167, 163, 155, 155, 165, 161, 160, 158, 158, 154, 159, 158, 163, 156, 162, 158, 153, 162, 154, 165, 172, 164, 155, 157, 162, 159, 168, 154, 158, 157, 161, 147, 156, 160, 159, 159, 153, 157, 153, 156, 162, 152, 153, 143, 161, 159, 164, 169, 155, 164, 156, 154, 165, 152, 163, 151, 162, 153, 152, 161, 160, 177, 156, 163, 158, 158, 160, 159, 165, 147, 156, 157, 157, 163, 161, 158, 160, 165, 169, 158, 161, 158, 169, 160, 166, 159, 157, 164, 166, 162, 151, 154, 150, 165, 159, 157, 160, 159, 177, 165, 162, 158, 156, 153, 173, 163, 158, 156, 162, 158, 152, 160, 155, 166, 160, 159, 158, 160, 163, 154, 156, 156, 160, 179, 153, 156, 167, 152, 164, 154, 166, 158, 161, 163, 151, 160, 164, 161, 148, 158, 159, 163, 156, 158, 154, 156, 165, 158, 159, 168, 160, 158, 139, 148, 152, 163, 151, 178, 158, 150, 156, 164, 158, 167, 155, 158, 156, 156, 158, 160, 159, 157, 170, 161, 157, 150, 152, 161, 154, 152, 157, 152, 156, 160, 161, 158, 147, 163, 160, 160, 161, 158, 163, 147, 160, 161, 154, 159, 158, 157, 154, 160, 164, 153, 159, 170, 164, 157, 161, 159, 155, 174, 161, 163, 164, 159, 154, 173, 152, 160, 156, 169, 155, 168, 153, 165, 155, 160, 152, 145, 158, 197, 159, 162, 162, 158, 146, 162, 149, 158, 156, 151, 164, 160, 162, 158, 153, 160, 156, 161, 173, 153, 165, 157, 159, 171, 164, 153, 156, 164, 156, 170, 161, 155, 162, 160, 159, 157, 156, 158, 161, 160, 159, 173, 160, 165, 160, 163, 160, 163, 157, 162, 159, 162, 161, 156, 158, 163, 159, 158, 157, 161, 159, 164, 164, 157, 160, 153, 177, 160, 160, 161, 161, 159, 156, 157, 161, 159, 162, 163, 160, 183, 158, 158, 158, 162, 161, 157, 160, 159, 156, 163, 157, 183, 160, 162, 157, 158, 158, 161, 168, 163, 162, 157, 163, 171, 161, 158, 160, 164, 158, 156, 166, 156, 158, 158, 161, 160, 158, 160, 160, 163, 155, 145, 160, 167, 168, 162, 160, 161, 157, 163, 159, 163, 160, 160, 165, 162, 160, 157, 160, 159, 158, 163, 156, 159, 166, 161, 160, 157, 157, 154, 162, 162, 161, 160, 160, 159, 157, 158, 164, 156, 159, 159, 156, 164, 166, 160, 160, 159, 158, 157, 159, 160, 158, 160, 159, 162, 165, 156, 159, 161, 162, 162, 163, 164, 160, 161, 159, 161, 160, 162, 165, 162, 164, 173, 161, 160, 163, 169, 161, 163, 154, 157, 162, 158, 159, 163, 159, 161, 152, 160, 173, 161, 162, 162, 176, 164, 154, 167, 156, 159, 161, 161, 158, 162, 160, 166, 161, 162, 161, 164, 162, 157, 161, 156, 156, 159, 159, 162, 157, 157, 159, 183, 167, 158, 160, 156, 163, 157, 163, 159, 157, 162, 159, 159, 162, 165, 162, 158, 151, 164, 160, 159, 166, 159, 181, 168, 158, 155, 164, 160, 157, 163, 152, 171, 160, 158, 157, 159, 163, 161, 161, 162, 156, 162, 157, 161, 160, 161, 168, 160, 160, 161, 157, 160, 157, 164, 185, 161, 160, 160, 157, 160, 161, 166, 158, 184, 154, 162, 162, 162, 159, 164, 158, 159, 157, 157, 158, 165, 165, 162, 159, 159, 161, 162, 163, 160, 163, 160, 157, 157, 160, 161, 162, 159, 161, 162, 159, 158, 157, 162, 162, 162, 159, 166, 162, 160, 165, 161, 166, 156, 165, 161, 159, 153, 162, 156, 159, 161, 161, 163, 160, 185, 161, 159, 153, 156, 161, 164, 167, 161, 163, 157, 164, 159, 163, 164, 158, 161, 163, 161, 159, 158, 160, 160, 163, 161, 159, 160, 163, 156, 161, 162, 161, 163, 161, 161, 160, 150, 162, 152, 156, 169, 161, 157, 162, 159, 158, 164, 165, 164, 159, 156, 155, 160, 161, 161, 159, 159, 163, 155, 166, 159, 158, 162, 161, 164, 163, 159, 165, 157, 157, 158, 157, 162, 163, 157, 163, 160, 162, 165, 161, 159, 163, 160, 157, 159, 163, 162, 164, 152, 159, 156, 165, 160, 183, 162, 159, 164, 155, 157, 162, 160, 163, 157, 161, 162, 165, 159, 159, 160, 160, 155, 162, 161, 160, 163, 170, 163, 160, 160, 160, 162, 159, 161, 164, 155, 185, 157, 163, 155, 162, 156, 151, 157, 159, 169, 159, 159, 163, 159, 161, 162, 163, 155, 150, 162, 154, 160, 159, 159, 158, 159, 160, 156, 165, 180, 169, 158, 160, 160, 157, 157, 163, 161, 152, 158, 157, 160, 161, 164, 161, 165, 156, 162, 160, 161, 158, 160, 155, 165, 162, 160, 169, 159, 159, 157, 159, 163, 167, 162, 160, 160, 153, 163, 156, 163, 167, 159, 160, 163, 184, 161, 168, 152, 174, 157, 158, 161, 166, 162, 166, 159, 161, 155, 158, 160, 157, 153, 160, 159, 175, 162, 168, 168, 163, 154, 151, 161, 155, 150, 158, 161, 154, 163, 162, 156, 162, 162, 161, 150, 154, 156, 151, 161, 160, 163, 165, 160, 156, 155, 149, 165, 157, 164, 158, 153, 151, 158, 163, 165, 156, 165, 166, 159, 161, 154, 163, 156, 157, 164, 165, 158, 161, 185, 161, 156, 161, 162, 163, 165, 156, 153, 162, 154, 173, 166, 161, 163, 160, 157, 151, 160, 159, 155, 155, 162, 165, 176, 162, 158, 155, 168, 155, 159, 168, 166, 159, 159, 151, 157, 167, 162, 156, 170, 159, 161, 167, 160, 151, 156, 157, 166, 145, 160, 169, 170, 165, 152, 160, 154, 167, 165, 162, 158, 163, 162, 167, 154, 156, 153, 162, 180, 156, 158, 156, 154, 159, 156, 167, 159, 164, 152, 155, 159, 161, 154, 168, 160, 155, 166, 172, 162, 163, 158, 159, 164, 158, 157, 156, 159, 177, 160, 155, 164, 162, 156, 159, 153, 159, 163, 159, 161, 163, 170, 165, 144, 151, 161, 165, 161, 162, 160, 157, 165, 152, 166, 154, 168, 160, 162, 155, 161, 156, 166, 162, 157, 156, 154, 164, 172, 159, 171, 156, 161, 162, 153, 158, 160, 156, 151, 161, 160, 153, 154, 156, 164, 157, 158, 158, 163, 160, 162, 159, 156, 144, 157, 160, 161, 154, 153, 165, 164, 164, 159, 156, 161, 165, 165, 164, 153, 154, 155, 167, 161, 156, 159, 167, 168, 163, 155, 158, 153, 169, 162, 157, 161, 166, 158, 170, 160, 161, 160, 156, 165, 154, 159, 162, 155, 158, 169, 154, 153, 153, 156, 162, 157, 154, 156, 157, 164, 156, 156, 158, 158, 155, 163, 151, 159, 156, 162, 158, 158, 163, 165, 165, 159, 155, 161, 158, 166, 160, 167, 158, 159, 162, 157, 177, 164, 160, 158, 160, 162, 157, 153, 156, 160, 155, 157, 157, 161, 154, 161, 158, 167, 160, 153, 155, 157, 157, 157, 152, 159, 164, 154, 155, 168, 162, 156, 163, 165, 155, 161, 159, 167, 155, 148, 170, 166, 154, 184, 147, 167, 157, 162, 163, 152, 162, 163, 150, 163, 154, 178, 161, 157, 173, 172, 157, 157, 158, 159, 156, 164, 168, 173, 162, 160, 162, 166, 161, 164, 159, 163, 157, 160, 160, 155, 168, 153, 157, 167, 168, 153, 150, 153, 169, 168, 161, 158, 164, 169, 160, 155, 152, 158, 157, 153, 153, 165, 160, 154, 159, 157, 166, 166, 159, 159, 162, 164, 168, 158, 159, 163, 161, 158, 156, 162, 159, 163, 158, 163, 159, 161, 160, 162, 159, 157, 158, 162, 159, 150, 154, 156, 161, 155, 165, 156, 162, 155, 156, 158, 156, 154, 146, 153, 153, 164, 161, 158, 156, 172, 157, 155, 167, 159, 157, 160, 170, 171, 161, 167, 159, 150, 157, 166, 167, 161, 150, 149, 161, 168, 166, 161, 159, 161, 162, 170, 164, 155, 161, 156, 159, 156, 154, 158, 159, 155, 157, 149, 167, 158, 162, 160, 154, 145, 164, 155, 175, 155, 153, 161, 168, 157, 160, 160, 164, 157, 159, 158, 150, 158, 153, 163, 166, 157, 144, 168, 140, 163, 163, 155, 155, 175, 163, 157, 168, 154, 162, 155, 161, 158, 189, 153, 160, 165, 164, 164, 165, 160, 158, 152, 158, 167, 161, 155, 178, 165, 156, 156, 156, 152, 154, 190, 153, 166, 163, 159, 187, 154, 153, 167, 159, 155, 159, 157, 161, 159, 158, 167, 157, 165, 168, 152, 173, 164, 155, 161, 156, 169, 162, 162, 163, 170, 155, 155, 160, 165, 159, 168, 160, 149, 160, 158, 150, 158, 160, 156, 162, 165, 162, 158, 162, 161, 151, 154, 160, 190, 160, 157, 157, 158, 166, 165, 160, 159, 164, 154, 153, 164, 160, 165, 166, 163, 158, 160, 157, 164, 170, 158, 168, 161, 154, 164, 155, 144, 174, 164, 165, 154, 158, 160, 164, 165, 170, 161, 159, 161, 158, 165, 166, 163, 160, 185, 157, 159, 169, 163, 186, 162, 158, 159, 157, 156, 166, 166, 155, 155, 157, 173, 156, 125, 143, 158, 161, 163, 159, 142, 156, 151, 154, 155, 154, 156, 162, 159, 163, 166, 161, 155, 168, 176, 159, 149, 153, 160, 159, 167, 162, 156, 159, 157, 157, 156, 153, 150, 149, 161, 163, 158, 159, 168, 158, 165, 169, 157, 160, 163, 169, 159, 156, 164, 157, 156, 167, 155, 156, 153, 151, 159, 158, 153, 157, 163, 164, 161, 169, 151, 163, 164, 162, 166, 158, 163, 167, 173, 161, 171, 142, 173, 157, 160, 164, 162, 165, 156, 155, 161, 167, 161, 157, 159, 161, 161, 155, 162, 163, 161, 161, 160, 162, 163, 148, 163, 164, 166, 158, 167, 166, 161, 165, 159, 164, 160, 155, 163, 156, 163, 159, 157, 163, 165, 158, 157, 179, 151, 167, 153, 164, 158, 159, 158, 162, 159, 157, 156, 162, 160, 161, 160, 170, 153, 160, 171, 162, 177, 148, 158, 165, 151, 157, 161, 160, 161, 158, 166, 159, 159, 162, 162, 165, 157, 162, 163, 161, 140, 167, 158, 172, 149, 183, 165, 161, 154, 157, 159, 155, 164, 159, 159, 150, 164, 147, 162, 155, 147, 176, 167, 160, 166, 157, 163, 161, 159, 182, 167, 168, 168, 159, 149, 156, 165, 159, 157, 161, 165, 166, 157, 157, 172, 163, 158, 163, 165, 162, 167, 159, 158, 158, 162, 150, 154, 160, 163, 147, 164, 162, 155, 158, 165, 158, 161, 161, 171, 162, 157, 161, 160, 160, 155, 161, 161, 157, 164, 161, 163, 156, 162, 164, 156, 153, 162, 172, 149, 168, 160, 160, 165, 165, 156, 159, 173, 169, 172, 159, 161, 157, 160, 166, 154, 142, 157, 162, 160, 159, 157, 153, 169, 155, 157, 174, 151, 155, 160, 163, 158, 149, 162, 156, 172, 156, 156, 154, 157, 154, 163, 158, 155, 162, 157, 156, 164, 158, 165, 158, 156, 165, 160, 168, 164, 153, 153, 159, 158, 149, 161, 154, 166, 158, 165, 188, 159, 161, 159, 163, 162, 162, 151, 168, 158, 156, 159, 154, 161, 166, 157, 168, 153, 159, 165, 161, 159, 156, 157, 159, 154, 163, 165, 156, 170, 168, 159, 161, 164, 161, 161, 156, 159, 158, 164, 158, 160, 161, 149, 165, 176, 150, 168, 154, 161, 163, 163, 162, 161, 162, 174, 152, 156, 158, 167, 166, 161, 166, 162, 153, 155, 172, 163, 157, 159, 166, 160, 158, 156, 151, 161, 159, 164, 160, 161, 162, 158, 153, 162, 160, 164, 156, 161, 156, 156, 158, 163, 166, 154, 158, 169, 154, 162, 167, 162, 168, 163, 177, 168, 159, 164, 162, 157, 165, 163, 162, 155, 173, 164, 153, 159, 158, 156, 160, 165, 157, 160, 160, 156, 163, 158, 162, 158, 154, 159, 162, 160, 153, 162, 163, 156, 165, 162, 152, 158, 162, 165, 156, 166, 165, 154, 161, 168, 158, 168, 151, 158, 153, 162, 158, 153, 161, 160, 160, 159, 172, 178, 161, 161, 164, 164, 152, 154, 167, 152, 165, 159, 157, 165, 160, 168, 161, 158, 172, 160, 154, 159, 150, 162, 167, 156, 159, 152, 155, 159, 165, 163, 165, 163, 173, 160, 169, 160, 159, 164, 168, 156, 152, 143, 156, 164, 167, 159, 162, 143, 161, 163, 150, 164, 149, 150, 170, 159, 148, 157, 149, 157, 164, 168, 158, 171, 162, 164, 163, 160, 161, 161, 156, 157, 162, 157, 159, 159, 158, 168, 149, 164, 162, 162, 165, 158, 158, 165, 160, 137, 155, 163, 154, 157, 159, 165, 152, 160, 161, 161, 154, 163, 155, 163, 164, 160, 169, 154, 163, 154, 151, 157, 157, 164, 168, 160, 166, 162, 166, 155, 160, 154, 163, 164, 156, 151, 163, 157, 165, 167, 154, 135, 149, 156, 154, 156, 148, 155, 155, 153, 149, 154, 153, 158, 164, 154, 165, 163, 163, 166, 162, 168, 166, 155, 165, 162, 167, 176, 154, 165, 165, 161, 156, 166, 158, 160, 161, 166, 164, 175, 165, 160, 160, 164, 162, 156, 158, 164, 156, 156, 162, 167, 162, 157, 160, 160, 165, 147, 162, 156, 161, 166, 165, 161, 160, 154, 168, 157, 166, 167, 147, 149, 162, 158, 162, 159, 161, 151, 155, 156, 156, 154, 163, 161, 152, 162, 157, 163, 156, 163, 154, 156, 159, 156, 170, 168, 163, 166, 163, 159, 166, 162, 154, 161, 175, 166, 156, 154, 160, 159, 161, 162, 163, 150, 161, 161, 162, 164, 164, 147, 160, 159, 155, 159, 160, 157, 159, 163, 167, 161, 152, 155, 171, 166, 166, 154, 155, 162, 164, 169, 157, 153, 160, 156, 154, 155, 155, 152, 151, 160, 152, 169, 161, 172, 145, 161, 154, 160, 155, 153, 156, 159, 162, 159, 183, 167, 163, 164, 162, 159, 167, 160, 163, 142, 153, 156, 157, 147, 161, 151, 147, 170, 152, 158, 163, 169, 162, 155, 157, 166, 162, 157, 168, 162, 153, 151, 162, 155, 163, 157, 167, 164, 145, 155, 155, 163, 151, 153, 164, 162, 167, 142, 168, 161, 149, 162, 157, 160, 160, 167, 138, 156, 155, 156, 159, 157, 159, 161, 152, 161, 159, 163, 157, 157, 160, 169, 156, 157, 162, 161, 160, 159, 161, 157, 163, 173, 156, 151, 164, 142, 169, 160, 163, 160, 150, 159, 161, 162, 161, 160, 161, 162, 160, 155, 157, 158, 164, 161, 162, 161, 158, 144, 162, 160, 162, 175, 153, 165, 158, 150, 162, 162, 166, 157, 157, 161, 159, 157, 158, 158, 159, 160, 158, 160, 162, 162, 164, 154, 159, 159, 161, 162, 160, 160, 160, 160, 173, 162, 164, 161, 155, 159, 163, 160, 154, 165, 158, 157, 160, 156, 160, 177, 160, 164, 159, 158, 153, 159, 159, 156, 159, 162, 158, 159, 159, 162, 151, 159, 162, 161, 157, 152, 166, 159, 153, 166, 162, 157, 158, 162, 167, 159, 158, 160, 157, 152, 159, 171, 159, 166, 160, 165, 158, 160, 168, 172, 160, 164, 158, 160, 154, 158, 154, 160, 162, 162, 153, 155, 160, 158, 159, 159, 161, 165, 156, 159, 150, 158, 161, 161, 159, 161, 162, 163, 159, 157, 156, 164, 159, 154, 164, 166, 154, 152, 154, 158, 159, 166, 160, 158, 160, 167, 160, 158, 161, 162, 159, 160, 162, 172, 159, 160, 161, 161, 160, 157, 157, 155, 141, 165, 161, 162, 160, 163, 164, 159, 157, 159, 158, 158, 157, 158, 164, 160, 155, 161, 159, 162, 158, 171, 161, 146, 162, 162, 161, 159, 169, 159, 170, 166, 155, 158, 160, 162, 162, 159, 158, 164, 155, 152, 164, 162, 160, 163, 164, 150, 165, 163, 165, 170, 163, 165, 160, 162, 153, 160, 161, 159, 161, 159, 159, 164, 159, 157, 158, 160, 153, 156, 158, 162, 154, 159, 160, 163, 163, 160, 161, 161, 161, 160, 161, 161, 147, 160, 164, 170, 165, 162, 163, 163, 161, 162, 160, 165, 159, 167, 168, 162, 158, 157, 159, 157, 148, 166, 162, 163, 163, 161, 159, 162, 159, 160, 155, 157, 157, 161, 155, 157, 155, 167, 160, 161, 162, 180, 159, 140, 148, 157, 162, 163, 158, 165, 153, 158, 159, 162, 158, 156, 159, 159, 163, 170, 155, 160, 160, 155, 150, 156, 161, 162, 156, 163, 159, 162, 166, 152, 158, 165, 160, 159, 159, 162, 153, 160, 155, 169, 155, 159, 161, 160, 159, 154, 160, 160, 162, 161, 161, 154, 159, 162, 161, 162, 159, 152, 156, 159, 159, 156, 160, 161, 162, 159, 158, 163, 159, 156, 160, 159, 158, 174, 156, 162, 160, 156, 158, 159, 161, 166, 160, 160, 161, 161, 161, 158, 160, 163, 162, 160, 162, 159, 162, 158, 157, 162, 159, 158, 151, 171, 158, 162, 156, 163, 157, 163, 159, 159, 161, 158, 159, 160, 158, 161, 163, 165, 162, 158, 163, 161, 162, 162, 154, 159, 155, 173, 159, 164, 155, 162, 169, 161, 160, 153, 158, 158, 163, 160, 159, 163, 162, 164, 162, 162, 164, 155, 159, 162, 161, 161, 158, 155, 162, 166, 158, 155, 163, 161, 159, 155, 161, 162, 160, 160, 158, 152, 161, 158, 159, 164, 160, 164, 149, 161, 158, 156, 166, 152, 164, 162, 163, 158, 158, 166, 158, 166, 160, 154, 162, 157, 156, 165, 163, 160, 160, 157, 164, 163, 166, 157, 164, 164, 155, 161, 159, 162, 161, 166, 163, 155, 158, 161, 162, 161, 163, 149, 154, 159, 170, 160, 154, 159, 159, 155, 160, 163, 169, 167, 164, 160, 161, 164, 159, 161, 162, 176, 163, 160, 160, 156, 162, 161, 154, 163, 157, 153, 164, 164, 161, 158, 164, 155, 164, 165, 160, 159, 158, 161, 159, 160, 155, 168, 162, 162, 164, 159, 155, 168, 163, 163, 156, 160, 159, 154, 153, 158, 162, 159, 162, 158, 162, 162, 159, 161, 154, 158, 159, 159, 154, 156, 158, 164, 159, 166, 163, 161, 159, 165, 158, 157, 153, 156, 158, 161, 157, 156, 162, 160, 156, 165, 153, 160, 162, 159, 167, 163, 170, 152, 157, 158, 159, 160, 158, 169, 161, 161, 163, 158, 165, 166, 158, 154, 171, 151, 155, 160, 161, 160, 163, 163, 161, 161, 161, 159, 163, 160, 159, 165, 164, 158, 159, 155, 154, 163, 153, 159, 164, 160, 164, 160, 160, 161, 157, 157, 157, 162, 159, 163, 161, 161, 159, 159, 157, 161, 161, 154, 163, 162, 163, 156, 160, 168, 157, 157, 155, 163, 164, 158, 157, 152, 162, 159, 156, 153, 161, 157, 162, 155, 162, 160, 165, 158, 160, 156, 157, 161, 161, 157, 153, 159, 160, 154, 159, 164, 158, 156, 158, 152, 163, 160, 162, 156, 155, 158, 166, 161, 158, 159, 168, 164, 160, 164, 155, 158, 159, 160, 165, 166, 162, 162, 172, 163, 159, 155, 159, 160, 159, 159, 162, 179, 160, 162, 152, 156, 164, 159, 155, 157, 167, 159, 158, 162, 165, 161, 161, 163, 161, 170, 161, 161, 166, 157, 147, 162, 162, 161, 166, 162, 157, 162, 164, 164, 164, 155, 156, 160, 162, 157, 159, 160, 161, 160, 169, 164, 168, 160, 156, 160, 167, 161, 163, 156, 166, 160, 160, 144, 154, 161, 165, 158, 157, 158, 158, 164, 158, 156, 158, 164, 164, 159, 164, 163, 164, 169, 164, 166, 159, 158, 157, 160, 161, 154, 157, 170, 157, 164, 158, 163, 167, 159, 160, 157, 157, 164, 157, 154, 161, 159, 165, 157, 168, 162, 161, 159, 153, 165, 157, 158, 173, 163, 161, 160, 164, 156, 161, 167, 162, 155, 166, 160, 158, 156, 158, 160, 160, 155, 158, 166, 158, 156, 160, 161, 164, 157, 157, 157, 158, 155, 162, 156, 160, 161, 155, 158, 163, 158, 158, 159, 156, 163, 160, 149, 164, 179, 160, 157, 162, 160, 158, 162, 158, 157, 152, 162, 156, 158, 153, 159, 158, 161, 157, 161, 162, 161, 159, 168, 153, 158, 160, 159, 159, 156, 158, 157, 162, 154, 159, 165, 154, 159, 156, 162, 161, 162, 166, 159, 164, 164, 155, 159, 163, 159, 167, 158, 161, 157, 161, 162, 161, 161, 166, 163, 161, 161, 158, 159, 168, 159, 150, 161, 160, 157, 162, 162, 163, 155, 157, 157, 161, 159, 162, 157, 160, 164, 164, 166, 160, 155, 159, 155, 162, 153, 159, 155, 167, 156, 152, 160, 156, 163, 168, 161, 158, 164, 163, 154, 156, 158, 166, 162, 150, 158, 161, 166, 147, 157, 169, 153, 168, 156, 154, 160, 158, 168, 165, 152, 155, 156, 156, 167, 166, 160, 160, 160, 161, 155, 157, 135, 161, 155, 153, 161, 151, 159, 161, 154, 158, 160, 138, 158, 145, 166, 160, 159, 167, 154, 159, 161, 157, 159, 145, 157, 165, 152, 148, 151, 156, 146, 154, 156, 160, 163, 161, 168, 147, 158, 165, 154, 159, 160, 152, 162, 157, 169, 162, 168, 160, 154, 157, 165, 160, 163, 171, 167, 166, 147, 163, 158, 151, 161, 161, 158, 159, 161, 160, 163, 160, 172, 173, 161, 165, 162, 159, 145, 155, 157, 150, 160, 165, 159, 159, 194, 160, 148, 158, 169, 160, 160, 162, 158, 156, 156, 154, 161, 146, 156, 164, 166, 162, 163, 157, 160, 172, 158, 153, 161, 158, 154, 160, 159, 157, 154, 160, 158, 163, 153, 169, 157, 153, 161, 150, 161, 169, 160, 161, 154, 158, 174, 163, 152, 164, 160, 156, 171, 161, 156, 157, 156, 157, 164, 155, 161, 161, 148, 165, 156, 162, 159, 154, 155, 158, 154, 157, 156, 167, 154, 163, 166, 171, 161, 174, 162, 152, 158, 162, 152, 159, 160, 158, 156, 154, 169, 153, 169, 167, 173, 156, 166, 162, 158, 164, 162, 150, 165, 181, 162, 156, 158, 158, 152, 159, 157, 161, 163, 155, 155, 153, 166, 160, 157, 172, 153, 180, 159, 164, 154, 164, 157, 167, 161, 162, 147, 163, 143, 162, 163, 175, 164, 161, 162, 164, 162, 145, 146, 161, 160, 159, 158, 164, 155, 157, 177, 150, 157, 156, 155, 155, 158, 160, 165, 155, 158, 153, 159, 155, 160, 173, 167, 167, 155, 155, 144, 161, 157, 167, 158, 150, 165, 168, 172, 157, 163, 159, 161, 167, 165, 157, 165, 153, 160, 169, 153, 151, 159, 150, 152, 159, 163, 168, 157, 154, 152, 182, 152, 157, 162, 163, 153, 161, 160, 154, 167, 158, 165, 154, 160, 156, 158, 144, 165, 153, 156, 170, 156, 166, 167, 163, 160, 164, 171, 160, 153, 152, 161, 152, 159, 154, 157, 159, 166, 154, 159, 166, 156, 164, 167, 153, 168, 160, 159, 165, 159, 141, 163, 162, 161, 163, 161, 162, 152, 154, 174, 170, 161, 165, 155, 158, 157, 147, 160, 155, 162, 157, 162, 151, 164, 152, 158, 160, 164, 167, 162, 168, 151, 158, 164, 160, 159, 166, 158, 167, 154, 155, 171, 147, 164, 160, 156, 166, 163, 153, 158, 145, 153, 156, 146, 154, 156, 153, 165, 167, 160, 162, 152, 169, 162, 173, 143, 167, 154, 153, 164, 159, 166, 161, 158, 174, 162, 175, 180, 155, 157, 156, 164, 158, 179, 165, 164, 157, 152, 166, 153, 162, 153, 158, 177, 161, 157, 164, 163, 162, 158, 161, 168, 158, 149, 164, 161, 166, 159, 145, 158, 153, 162, 158, 159, 158, 164, 151, 169, 175, 154, 160, 174, 155, 159, 153, 156, 158, 159, 163, 164, 162, 161, 164, 161, 166, 155, 162, 167, 159, 156, 152, 160, 174, 164, 158, 149, 154, 161, 156, 166, 162, 162, 160, 161, 171, 168, 162, 161, 155, 160, 153, 169, 161, 163, 162, 156, 160, 162, 156, 159, 167, 163, 157, 153, 146, 160, 157, 155, 155, 159, 170, 161, 158, 165, 158, 160, 158, 157, 168, 171, 178, 158, 172, 159, 148, 157, 162, 162, 165, 154, 161, 160, 161, 153, 166, 156, 169, 164, 163, 153, 152, 160, 154, 155, 156, 158, 157, 156, 161, 147, 172, 166, 158, 157, 163, 163, 180, 154, 160, 165, 155, 160, 155, 159, 154, 157, 161, 163, 160, 157, 163, 158, 158, 165, 160, 163, 159, 149, 158, 165, 164, 158, 160, 155, 160, 156, 158, 156, 160, 153, 154, 161, 158, 166, 156, 155, 157, 161, 160, 163, 149, 158, 164, 158, 152, 159, 156, 154, 175, 155, 163, 163, 159, 166, 162, 166, 165, 160, 159, 149, 165, 151, 163, 159, 171, 152, 158, 160, 161, 164, 157, 160, 170, 165, 160, 161, 164, 154, 159, 155, 160, 169, 158, 147, 159, 160, 158, 150, 164, 160, 160, 156, 155, 172, 165, 164, 161, 166, 158, 163, 157, 158, 159, 165, 152, 162, 159, 167, 159, 156, 166, 156, 166, 162, 160, 167, 154, 159, 155, 163, 152, 172, 160, 161, 155, 161, 159, 160, 162, 158, 164, 156, 157, 165, 157, 166, 159, 148, 158, 159, 156, 168, 154, 165, 165, 170, 140, 155, 163, 155, 167, 164, 157, 158, 163, 152, 158, 151, 167, 163, 151, 162, 158, 158, 160, 159, 144, 152, 160, 161, 163, 157, 157, 169, 157, 147, 158, 155, 167, 151, 159, 166, 155, 154, 170, 157, 166, 166, 163, 167, 165, 157, 147, 149, 170, 155, 157, 159, 161, 156, 161, 158, 162, 164, 155, 156, 148, 159, 160, 158, 157, 160, 165, 157, 164, 165, 160, 161, 158, 154, 166, 154, 159, 170, 157, 153, 152, 161, 162, 157, 153, 162, 157, 163, 153, 155, 158, 169, 164, 159, 160, 163, 163, 167, 153, 160, 163, 151, 160, 164, 154, 163, 153, 163, 152, 165, 165, 151, 167, 150, 161, 168, 161, 155, 168, 147, 163, 148, 154, 163, 157, 165, 168, 159, 161, 151, 162, 152, 168, 165, 160, 162, 153, 160, 159, 149, 151, 165, 159, 152, 166, 163, 163, 165, 159, 168, 156, 161, 154, 158, 162, 164, 149, 161, 165, 156, 168, 157, 169, 164, 159, 160, 153, 159, 163, 165, 160, 155, 163, 160, 164, 158, 155, 154, 147, 152, 165, 159, 159, 171, 150, 157, 166, 159, 160, 162, 165, 157, 160, 154, 161, 155, 166, 155, 156, 169, 155, 155, 156, 155, 149, 158, 157, 153, 159, 167, 164, 167, 167, 166, 159, 162, 170, 159, 164, 153, 161, 154, 157, 161, 153, 161, 164, 165, 150, 170, 162, 158, 160, 158, 159, 149, 160, 155, 160, 156, 176, 158, 160, 153, 162, 154, 159, 169, 154, 162, 156, 156, 156, 140, 165, 156, 158, 159, 157, 168, 163, 162, 160, 159, 160, 170, 153, 157, 164, 156, 156, 157, 157, 160, 162, 156, 165, 160, 165, 174, 158, 156, 163, 154, 160, 157, 160, 155, 158, 170, 165, 163, 157, 160, 165, 161, 158, 163, 153, 145, 158, 170, 170, 154, 156, 169, 163, 157, 162, 161, 155, 167, 153, 150, 166, 159, 156, 156, 148, 167, 165, 159, 162, 156, 165, 159, 176, 154, 165, 158, 163, 158, 161, 157, 170, 164, 156, 162, 171, 163, 167, 163, 166, 156, 148, 162, 164, 162, 162, 157, 161, 174, 135, 179, 154, 163, 159, 156, 163, 160, 163, 166, 162, 164, 160, 170, 155, 159, 168, 170, 161, 154, 155, 156, 169, 161, 160, 164, 160, 171, 163, 155, 159, 157, 149, 154, 160, 155, 165, 154, 160, 157, 149, 158, 163, 163, 157, 157, 157, 169, 159, 155, 166, 161, 160, 160, 157, 173, 157, 173, 152, 158, 158, 158, 165, 154, 157, 157, 156, 167, 161, 158, 158, 152, 164, 166, 154, 158, 154, 152, 153, 162, 163, 154, 152, 158, 172, 160, 171, 161, 161, 160, 164, 159, 158, 164, 155, 159, 160, 153, 156, 164, 157, 158, 162, 170, 165, 157, 166, 169, 161, 161, 166, 156, 162, 156, 164, 163, 157, 162, 160, 165, 150, 161, 159, 161, 172, 160, 153, 162, 167, 161, 155, 165, 159, 159, 160, 167, 156, 158, 157, 162, 156, 159, 162, 152, 159, 165, 154, 158, 164, 163, 164, 166, 157, 157, 162, 164, 163, 164, 164, 171, 152, 164, 157, 157, 151, 157, 167, 157, 169, 155, 163, 163, 156, 158, 153, 167, 164, 159, 168, 156, 156, 161, 158, 162, 156, 151, 151, 162, 160, 158, 166, 152, 165, 157, 157, 169, 144, 166, 171, 155, 161, 161, 156, 158, 158, 158, 158, 159, 151, 164, 158, 159, 164, 154, 161, 168, 165, 161, 163, 171, 162, 162, 150, 147, 160, 163, 160, 163, 149, 164, 158, 158, 171, 157, 159, 157, 163, 170, 161, 158, 162, 156, 159, 157, 168, 165, 157, 161, 164, 162, 157, 166, 159, 162, 166, 163, 166, 160, 158, 160, 166, 163, 162, 166, 158, 163, 168, 162, 163, 165, 163, 164, 157, 159, 162, 156, 160, 167, 164, 167, 154, 163, 163, 161, 159, 167, 165, 166, 161, 162, 167, 161, 161, 156, 159, 151, 164, 155, 164, 158, 161, 161, 156, 169, 156, 152, 177, 158, 173, 156, 156, 168, 182, 155, 160, 161, 161, 160, 152, 165, 156, 162, 161, 163, 158, 164, 163, 158, 162, 162, 161, 163, 163, 160, 162, 160, 155, 154, 156, 164, 166, 167, 156, 152, 157, 157, 158, 158, 156, 156, 164, 167, 158, 160, 164, 160, 157, 157, 162, 141, 163, 161, 161, 156, 165, 152, 162, 164, 151, 155, 161, 170, 159, 158, 162, 151, 158, 158, 149, 164, 142, 166, 159, 161, 152, 162, 156, 160, 158, 155, 165, 159, 166, 154, 174, 160, 168, 154, 157, 162, 155, 166, 161, 159, 165, 166, 161, 147, 161, 156, 155, 169, 158, 158, 164, 159, 160, 156, 162, 170, 158, 154, 163, 163, 159, 144, 160, 156, 162, 163, 154, 159, 160, 158, 160, 160, 161, 159, 151, 154, 154, 160, 159, 166, 156, 166, 157, 156, 158, 151, 163, 180, 158, 160, 155, 162, 165, 153, 163, 165, 154, 160, 164, 161, 163, 162, 160, 164, 163, 156, 166, 158, 155, 165, 158, 159, 161, 164, 161, 159, 162, 164, 167, 161, 166, 158, 157, 159, 157, 169, 159, 161, 162, 163, 155, 160, 158, 159, 151, 161, 168, 159, 162, 151, 159, 157, 163, 148, 144, 158, 158, 162, 167, 158, 159, 156, 152, 155, 160, 152, 156, 154, 140, 168, 167, 171, 162, 168, 170, 157, 160, 158, 167, 157, 151, 160, 150, 163, 170, 159, 163, 167, 157, 156, 157, 162, 150, 155, 157, 169, 151, 157, 165, 161, 159, 160, 164, 150, 159, 144, 157, 162, 149, 155, 156, 160, 155, 152, 156, 159, 168, 155, 163, 163, 151, 168, 164, 158, 159, 152, 159, 159, 158, 159, 161, 153, 161, 165, 175, 158, 157, 163, 166, 162, 169, 165, 163, 163, 162, 157, 161, 154, 158, 151, 157, 170, 157, 156, 160, 167, 165, 156, 168, 161, 161, 158, 157, 161, 168, 157, 158, 155, 158, 158, 156, 160, 163, 160, 162, 154, 167, 164, 155, 154, 162, 152, 162, 164, 170, 160, 156, 159, 141, 158, 161, 162, 154, 152, 160, 164, 163, 159, 160, 185, 158, 165, 157, 148, 146, 161, 157, 154, 157, 160, 156, 161, 156, 159, 156, 156, 157, 167, 180, 155, 158, 169, 161, 170, 165, 169, 162, 137, 162, 165, 150, 156, 158, 151, 161, 168, 150, 163, 160, 173, 158, 161, 159, 158, 155, 168, 153, 155, 157, 165, 163, 155, 161, 157, 162, 161, 162, 158, 159, 160, 169, 158, 163, 153, 167, 179, 157, 161, 155, 152, 157, 158, 154, 141, 145, 159, 175, 154, 160, 159, 178, 146, 162, 156, 169, 157, 159, 149, 159, 157, 157, 165, 159, 172, 160, 153, 156, 168, 152, 161, 148, 152, 158, 151, 161, 160, 154, 164, 157, 158, 158, 157, 168, 158, 154, 151, 158, 167, 166, 156, 164, 148, 160, 162, 176, 155, 163, 164, 160, 156, 166, 169, 152, 153, 159, 164, 150, 167, 167, 166, 156, 157, 166, 160, 158, 166, 165, 155, 161, 165, 154, 162, 160, 160, 161, 171, 160, 169, 155, 161, 159, 160, 168, 159, 147, 158, 162, 154, 158, 159, 149, 160, 155, 159, 161, 158, 159, 167, 143, 161, 157, 150, 156, 164, 150, 152, 159, 163, 157, 159, 159, 156, 161, 157, 159, 164, 162, 162, 165, 156, 154, 153, 149, 156, 165, 158, 151, 160, 164, 166, 165, 158, 160, 165, 154, 155, 160, 160, 158, 148, 159, 156, 174, 163, 150, 169, 170, 161, 156, 153, 162, 156, 158, 165, 147, 160, 160, 175, 160, 157, 163, 150, 162, 159, 159, 154, 150, 164, 154, 155, 173, 156, 159, 168, 160, 155, 159, 151, 149, 151, 153, 180, 155, 159, 155, 157, 162, 163, 169, 146, 155, 148, 152, 156, 163, 163, 157, 147, 164, 161, 158, 162, 155, 161, 165, 155, 160, 161, 162, 159, 159, 159, 156, 156, 163, 176, 148, 167, 161, 165, 161, 155, 161, 168, 153, 159, 159, 164, 162, 163, 151, 158, 161, 163, 161, 161, 162, 151, 163, 156, 159, 157, 164, 170, 154, 160, 162, 157, 162, 161, 164, 154, 168, 164, 156, 166, 156, 165, 162, 157, 160, 162, 159, 158, 172, 160, 163, 160, 157, 156, 157, 162, 156, 161, 164, 157, 164, 161, 152, 162, 157, 148, 162, 162, 156, 157, 157, 158, 161, 161, 155, 164, 149, 157, 158, 158, 157, 154, 161, 157, 134, 166, 154, 166, 166, 164, 169, 163, 151, 156, 158, 158, 160, 158, 155, 157, 157, 160, 156, 159, 162, 160, 145, 157, 165, 160, 160, 157, 156, 161, 162, 159, 163, 159, 157, 157, 160, 153, 159, 148, 169, 163, 165, 161, 146, 166, 150, 165, 154, 154, 155, 155, 153, 167, 153, 166, 150, 164, 162, 158, 165, 160, 158, 154, 159, 160, 159, 156, 160, 165, 163, 162, 159, 156, 161, 164, 167, 160, 155, 159, 160, 156, 156, 161, 156, 159, 155, 161, 163, 164, 157, 149, 164, 158, 165, 162, 158, 163, 160, 157, 161, 167, 156, 163, 160, 157, 159, 147, 165, 148, 162, 156, 163, 148, 161, 164, 156, 165, 156, 157, 156, 155, 162, 157, 160, 155, 167, 167, 161, 169, 164, 158, 159, 166, 156, 154, 159, 159, 162, 162, 157, 154, 166, 162, 165, 168, 163, 162, 150, 174, 163, 163, 155, 155, 163, 153, 157, 160, 160, 159, 158, 162, 151, 161, 169, 162, 162, 160, 159, 155, 167, 155, 161, 153, 155, 161, 158, 155, 159, 162, 161, 158, 166, 158, 160, 185, 163, 169, 162, 169, 155, 166, 158, 156, 153, 158, 155, 161, 159, 162, 165, 166, 166, 161, 164, 150, 165, 160, 167, 161, 163, 155, 159, 157, 156, 163, 160, 161, 156, 160, 158, 163, 164, 160, 159, 154, 156, 166, 157, 165, 159, 160, 164, 163, 165, 140, 152, 159, 163, 158, 162, 167, 153, 160, 162, 158, 158, 157, 158, 161, 166, 173, 162, 162, 160, 155, 156, 168, 159, 157, 157, 166, 152, 160, 159, 151, 169, 161, 160, 161, 158, 161, 164, 157, 157, 168, 161, 156, 158, 163, 160, 159, 154, 162, 162, 159, 175, 153, 160, 161, 161, 162, 160, 158, 162, 148, 165, 157, 164, 161, 164, 159, 154, 157, 156, 160, 164, 157, 160, 173, 155, 166, 158, 154, 163, 159, 157, 158, 155, 163, 166, 158, 161, 160, 163, 164, 161, 162, 165, 161, 152, 165, 153, 160, 162, 160, 149, 154, 164, 157, 155, 157, 154, 170, 159, 168, 162, 160, 164, 156, 164, 150, 158, 160, 162, 160, 159, 156, 161, 164, 157, 155, 159, 156, 157, 158, 159, 157, 166, 159, 150, 163, 158, 155, 158, 157, 161, 169, 161, 167, 163, 160, 152, 160, 161, 162, 158, 159, 156, 170, 153, 151, 159, 172, 156, 160, 159, 148, 163, 159, 162, 154, 161, 157, 164, 157, 156, 164, 161, 163, 165, 164, 159, 157, 154, 158, 165, 160, 156, 156, 157, 157, 157, 170, 152, 154, 155, 164, 163, 159, 161, 162, 159, 161, 150, 164, 155, 165, 167, 153, 157, 160, 150, 168, 150, 155, 168, 167, 157, 161, 159, 157, 151, 158, 153, 160, 158, 147, 157, 159, 155, 155, 167, 158, 162, 168, 162, 159, 162, 160, 159, 165, 156, 152, 154, 155, 156, 155, 163, 159, 171, 162, 158, 154, 168, 162, 155, 154, 162, 161, 162, 157, 158, 158, 155, 153, 163, 160, 150, 161, 153, 155, 153, 161, 162, 153, 161, 157, 160, 156, 152, 163, 158, 160, 158, 165, 167, 160, 165, 160, 161, 155, 157, 162, 162, 157, 153, 151, 155, 153, 157, 158, 161, 155, 157, 149, 164, 169, 160, 161, 163, 159, 151, 150, 161, 162, 153, 168, 152, 164, 160, 155, 159, 160, 158, 153, 156, 153, 158, 162, 153, 163, 154, 156, 160, 163, 156, 158, 155, 171, 161, 173, 156, 154, 161, 156, 165, 152, 160, 166, 164, 158, 154, 165, 165, 164, 162, 157, 162, 157, 170, 156, 163, 164, 159, 155, 163, 167, 173, 160, 154, 169, 152, 164, 161, 172, 160, 163, 158, 157, 161, 158, 164, 160, 155, 167, 161, 153, 168, 163, 158, 163, 167, 162, 171, 155, 157, 160, 162, 153, 163, 159, 163, 158, 162, 156, 162, 162, 159, 160, 156, 156, 164, 164, 167, 156, 164, 150, 170, 155, 154, 171, 157, 162, 154, 160, 162, 151, 160, 161, 161, 166, 168, 164, 155, 163, 160, 163, 154, 154, 160, 161, 152, 158, 155, 156, 155, 152, 163, 159, 155, 164, 154, 163, 157, 161, 158, 159, 153, 157, 165, 165, 160, 172, 160, 158, 155, 159, 165, 155, 160, 158, 156, 166, 161, 156, 159, 160, 163, 163, 162, 166, 160, 161, 156, 157, 156, 163, 156, 154, 161, 170, 160, 165, 158, 166, 158, 166, 169, 163, 153, 157, 154, 153, 157, 161, 163, 154, 163, 159, 155, 157, 163, 164, 154, 152, 147, 160, 163, 157, 153, 161, 161, 164, 164, 160, 163, 153, 155, 153, 160, 158, 163, 154, 157, 162, 155, 160, 161, 164, 152, 163, 158, 174, 169, 162, 158, 155, 154, 166, 154, 166, 158, 158, 167, 148, 166, 158, 166, 153, 161, 168, 153, 159, 159, 165, 159, 156, 160, 159, 159, 155, 164, 160, 157, 155, 156, 155, 151, 171, 155, 160, 149, 160, 160, 153, 155, 158, 162, 152, 156, 163, 150, 166, 159, 164, 165, 157, 163, 152, 145, 161, 160, 163, 165, 159, 149, 155, 167, 172, 152, 158, 155, 161, 160, 159, 160, 151, 163, 161, 157, 162, 156, 151, 155, 169, 158, 161, 157, 159, 162, 155, 165, 165, 159, 152, 148, 160, 158, 150, 151, 158, 168, 157, 159, 154, 161, 154, 155, 164, 163, 153, 161, 149, 158, 155, 159, 163, 157, 157, 165, 166, 171, 154, 159, 158, 161, 163, 169, 156, 153, 161, 164, 160, 166, 159, 140, 147, 153, 156, 156, 157, 158, 168, 174, 149, 161, 162, 161, 160, 156, 158, 160, 158, 154, 155, 161, 158, 159, 160, 156, 160, 159, 161, 156, 155, 160, 161, 156, 157, 152, 158, 158, 160, 157, 161, 156, 160, 157, 175, 159, 158, 155, 162, 159, 160, 156, 154, 148, 155, 160, 156, 161, 167, 155, 157, 166, 129, 153, 159, 153, 155, 166, 167, 158, 145, 160, 158, 156, 175, 171, 150, 156, 170, 155, 151, 161, 156, 153, 161, 157, 160, 156, 154, 159, 159, 162, 160, 169, 146, 161, 154, 155, 159, 168, 151, 158, 165, 160, 163, 162, 160, 161, 168, 157, 160, 166, 156, 165, 156, 162, 158, 159, 161, 161, 162, 160, 149, 159, 154, 148, 163, 152, 156, 158, 162, 171, 157, 156, 156, 164, 154, 162, 156, 169, 146, 157, 164, 156, 150, 162, 170, 161, 161, 162, 164, 159, 154, 152, 158, 163, 170, 158, 159, 162, 159, 157, 151, 163, 150, 162, 163, 174, 151, 147, 159, 160, 162, 156, 163, 150, 153, 158, 167, 161, 162, 163, 155, 168, 172, 157, 155, 163, 160, 166, 164, 143, 165, 152, 152, 156, 155, 164, 169, 157, 161, 160, 152, 166, 152, 156, 157, 156, 156, 156, 163, 159, 157, 160, 167, 172, 159, 172, 166, 152, 164, 156, 163, 164, 173, 159, 159, 131, 155, 162, 165, 154, 163, 152, 159, 181, 154, 147, 159, 196, 159, 160, 160, 148, 157, 167, 157, 156, 161, 162, 152, 151, 161, 159, 152, 175, 162, 154, 156, 159, 162, 153, 162, 159, 139, 158, 162, 159, 150, 168, 158, 155, 165, 160, 157, 152, 161, 170, 180, 156, 161, 158, 166, 156, 163, 162, 160, 157, 158, 159, 157, 154, 161, 162, 154, 154, 157, 160, 154, 160, 168, 156, 160, 159, 153, 164, 169, 167, 155, 159, 158, 124, 153, 164, 166, 162, 153, 167, 162, 164, 153, 162, 159, 160, 163, 154, 159, 144, 153, 162, 159, 145, 163, 149, 163, 153, 168, 168, 149, 160, 161, 163, 162, 169, 159, 156, 155, 155, 153, 157, 155, 149, 159, 149, 154, 166, 160, 155, 161, 160, 164, 156, 160, 156, 158, 159, 164, 146, 162, 167, 152, 164, 159, 153, 163, 156, 177, 168, 157, 155, 155, 158, 164, 155, 160, 157, 158, 161, 159, 152, 153, 163, 157, 156, 173, 163, 160, 163, 155, 158, 156, 166, 164, 159, 160, 156, 157, 160, 159, 154, 155, 159, 157, 158, 163, 150, 161, 160, 159, 162, 162, 166, 161, 156, 154, 163, 157, 170, 165, 154, 157, 163, 147, 155, 165, 157, 172, 158, 156, 155, 163, 158, 160, 160, 156, 162, 157, 167, 165, 155, 165, 154, 168, 186, 151, 166, 189, 159, 148, 157, 149, 162, 151, 149, 160, 156, 165, 166, 157, 160, 166, 156, 175, 169, 163, 168, 152, 161, 154, 153, 161, 156, 160, 161, 161, 147, 160, 173, 161, 159, 162, 160, 161, 160, 148, 157, 161, 162, 155, 157, 153, 170, 148, 158, 157, 163, 162, 159, 163, 164, 173, 163, 159, 151, 154, 152, 158, 158, 159, 152, 160, 167, 166, 154, 160, 164, 159, 160, 176, 143, 157, 163, 161, 151, 162, 151, 165, 163, 164, 172, 161, 166, 164, 166, 158, 157, 158, 163, 160, 164, 154, 160, 162, 158, 170, 156, 160, 163, 150, 167, 156, 161, 159, 155, 166, 161, 165, 178, 167, 164, 158, 157, 156, 144, 154, 157, 155, 172, 148, 155, 164, 167, 158, 158, 168, 163, 160, 159, 162, 156, 152, 160, 161, 161, 160, 165, 153, 157, 161, 158, 151, 157, 159, 160, 156, 160, 153, 149, 138, 155, 167, 156, 159, 160, 156, 161, 153, 153, 164, 160, 169, 166, 161, 159, 160, 164, 159, 162, 155, 174, 165, 164, 160, 165, 161, 162, 153, 161, 147, 148, 159, 160, 152, 175, 156, 145, 164, 165, 156, 163, 160, 162, 159, 158, 161, 167, 163, 163, 167, 171, 153, 152, 177, 158, 153, 164, 157, 154, 156, 161, 152, 162, 166, 170, 161, 155, 164, 162, 154, 172, 159, 162, 149, 161, 161, 161, 164, 152, 168, 159, 153, 156, 156, 158, 154, 159, 159, 161, 155, 158, 153, 152, 163, 163, 165, 156, 157, 160, 155, 158, 161, 162, 161, 163, 161, 157, 164, 157, 158, 155, 152, 167, 170, 166, 168, 162, 156, 176, 164, 151, 158, 165, 158, 168, 152, 157, 167, 167, 164, 163, 171, 151, 158, 151, 155, 158, 153, 163, 161, 163, 161, 157, 147, 172, 155, 153, 157, 157, 156, 153, 158, 154, 164, 159, 168, 157, 168, 160, 161, 171, 154, 160, 164, 152, 162, 163, 156, 158, 157, 153, 161, 162, 156, 170, 153, 161, 162, 166, 157, 156, 168, 154, 156, 164, 159, 160, 153, 159, 159, 167, 159, 161, 156, 148, 163, 154, 164, 177, 156, 161, 151, 160, 165, 165, 152, 152, 165, 160, 162, 157, 157, 151, 159, 146, 159, 160, 154, 185, 163, 147, 161, 153, 155, 153, 159, 164, 162, 155, 153, 159, 158, 159, 158, 162, 157, 168, 160, 148, 160, 158, 160, 156, 162, 160, 158, 156, 160, 157, 161, 141, 163, 157, 162, 166, 160, 163, 165, 168, 152, 166, 157, 153, 154, 158, 145, 162, 161, 156, 156, 155, 165, 166, 157, 165, 169, 164, 155, 158, 160, 144, 158, 159, 163, 156, 158, 171, 165, 159, 152, 154, 161, 159, 165, 161, 153, 174, 152, 170, 165, 166, 154, 157, 150, 155, 159, 157, 161, 148, 160, 154, 151, 162, 172, 160, 148, 157, 159, 157, 164, 159, 155, 155, 157, 176, 161, 149, 159, 158, 162, 167, 166, 151, 164, 151, 149, 161, 163, 152, 158, 160, 164, 167, 158, 159, 161, 162, 167, 161, 150, 153, 159, 154, 147, 158, 168, 165, 156, 163, 166, 161, 146, 160, 169, 157, 159, 152, 162, 156, 151, 152, 163, 167, 156, 150, 169, 153, 153, 158, 166, 154, 161, 167, 156, 165, 168, 163, 157, 157, 158, 157, 158, 165, 153, 155, 147, 172, 163, 158, 161, 159, 151, 155, 160, 173, 152, 155, 159, 162, 162, 151, 156, 165, 155, 160, 152, 161, 167, 167, 152, 155, 158, 158, 180, 160, 164, 164, 156, 167, 160, 152, 161, 170, 155, 172, 162, 160, 155, 158, 161, 150, 162, 167, 155, 150, 151, 163, 167, 170, 155, 152, 155, 168, 165, 159, 161, 163, 160, 156, 167, 158, 152, 136, 159, 159, 148, 159, 156, 166, 147, 151, 159, 169, 161, 145, 166, 156, 163, 157, 156, 161, 135, 161, 161, 157, 150, 160, 154, 158, 156, 147, 155, 161, 165, 162, 157, 163, 158, 157, 166, 161, 164, 156, 167, 163, 170, 161, 151, 169, 158, 166, 138, 167, 156, 158, 158, 151, 159, 161, 157, 158, 150, 136, 157, 159, 160, 166, 168, 157, 170, 157, 161, 164, 156, 152, 162, 162, 153, 166, 159, 153, 164, 161, 162, 158, 153, 160, 162, 158, 159, 159, 156, 167, 163, 155, 156, 165, 152, 169, 158, 164, 157, 167, 165, 158, 166, 157, 159, 165, 174, 147, 161, 157, 157, 155, 158, 151, 161, 163, 163, 162, 170, 168, 156, 160, 159, 158, 163, 161, 169, 163, 170, 165, 167, 159, 176, 158, 158, 164, 163, 165, 167, 152, 165, 160, 163, 160, 162, 160, 152, 160, 147, 163, 170, 162, 165, 145, 157, 157, 162, 165, 172, 156, 168, 152, 163, 148, 152, 157, 165, 154, 145, 151, 162, 160, 158, 160, 158, 157, 158, 160, 158, 165, 165, 185, 159, 160, 168, 167, 150, 161, 166, 152, 165, 163, 156, 162, 165, 164, 164, 159, 163, 161, 162, 159, 164, 174, 155, 159, 161, 161, 165, 163, 160, 158, 161, 168, 167, 160, 160, 155, 154, 159, 160, 168, 163, 155, 157, 157, 163, 169, 164, 160, 161, 169, 154, 162, 169, 147, 162, 151, 165, 171, 165, 158, 183, 170, 165, 173, 157, 166, 147, 145, 171, 141, 154, 161, 153, 151, 156, 166, 155, 167, 170, 157, 159, 166, 167, 168, 168, 153, 156, 155, 161, 168, 149, 168, 162, 155, 152, 157, 166, 158, 151, 146, 163, 152, 172, 173, 145, 153, 164, 169, 155, 152, 157, 161, 157, 167, 158, 163, 157, 158, 159, 166, 161, 157, 161, 160, 156, 172, 145, 164, 172, 161, 157, 164, 168, 156, 163, 166, 168, 159, 154, 158, 157, 168, 165, 158, 161, 163, 164, 172, 157, 157, 152, 160, 166, 158, 161, 137, 157, 153, 158, 165, 155, 167, 154, 156, 158, 160, 152, 152, 168, 160, 164, 155, 156, 146, 163, 172, 159, 160, 164, 166, 163, 155, 161, 169, 165, 154, 150, 151, 150, 152, 162, 157, 165, 158, 155, 164, 162, 165, 165, 156, 154, 145, 159, 164, 145, 162, 162, 146, 151, 160, 164, 154, 155, 158, 162, 151, 160, 149, 159, 156, 138, 167, 152, 168, 161, 160, 164, 163, 167, 155, 169, 158, 155, 173, 161, 165, 160, 161, 163, 165, 162, 163, 162, 160, 168, 154, 156, 159, 166, 164, 163, 139, 165, 172, 165, 163, 157, 158, 163, 161, 159, 167, 157, 160, 150, 156, 157, 162, 159, 152, 163, 158, 165, 163, 159, 163, 150, 162, 161, 160, 161, 164, 164, 158, 159, 155, 152, 161, 167, 165, 149, 164, 169, 169, 157, 163, 159, 159, 161, 161, 170, 162, 156, 146, 162, 156, 159, 157, 165, 159, 151, 175, 150, 166, 160, 159, 157, 155, 159, 168, 158, 163, 161, 166, 153, 159, 161, 155, 166, 165, 149, 166, 160, 161, 156, 157, 157, 151, 161, 161, 153, 156, 149, 163, 156, 153, 154, 155, 164, 173, 168, 160, 155, 166, 159, 157, 156, 157, 166, 155, 161, 157, 159, 154, 162, 161, 152, 152, 153, 154, 162, 164, 149, 162, 162, 160, 156, 157, 158, 152, 152, 157, 152, 154, 163, 164, 152, 156, 166, 157, 155, 160, 167, 154, 171, 158, 160, 154, 158, 161, 151, 163, 157, 154, 167, 153, 167, 152, 163, 158, 159, 155, 164, 156, 144, 158, 155, 159, 167, 158, 154, 156, 157, 158, 156, 153, 153, 157, 165, 171, 158, 159, 155, 148, 158, 160, 161, 156, 159, 153, 153, 157, 158, 157, 159, 169, 171, 160, 161, 155, 162, 151, 154, 158, 164, 159, 166, 157, 158, 151, 146, 173, 151, 162, 165, 154, 160, 162, 158, 161, 164, 170, 158, 156, 165, 158, 154, 154, 157, 159, 167, 156, 157, 156, 158, 161, 160, 156, 169, 162, 167, 152, 156, 158, 160, 157, 165, 155, 173, 157, 159, 176, 158, 167, 162, 153, 161, 163, 156, 153, 158, 159, 161, 163, 157, 160, 153, 159, 156, 171, 161, 161, 174, 165, 155, 162, 175, 160, 173, 162, 163, 167, 154, 164, 158, 162, 166, 165, 165, 157, 159, 158, 154, 146, 176, 161, 163, 170, 158, 147, 164, 158, 155, 156, 154, 161, 168, 159, 176, 163, 152, 175, 158, 160, 162, 161, 156, 164, 152, 161, 166, 169, 148, 160, 166, 149, 151, 155, 165, 164, 168, 156, 159, 157, 145, 167, 155, 158, 158, 160, 167, 163, 171, 155, 154, 170, 158, 157, 179, 168, 162, 158, 157, 165, 150, 150, 163, 156, 166, 162, 150, 159, 162, 163, 156, 155, 158, 163, 160, 166, 157, 155, 165, 157, 156, 157, 160, 176, 157, 161, 154, 163, 154, 159, 163, 159, 163, 159, 164, 166, 162, 159, 156, 157, 166, 159, 162, 152, 159, 160, 164, 161, 157, 162, 169, 158, 164, 156, 161, 149, 160, 160, 173, 157, 164, 152, 165, 163, 162, 155, 162, 153, 159, 160, 163, 165, 154, 169, 181, 168, 154, 166, 163, 172, 160, 152, 155, 155, 152, 170, 175, 150, 156, 153, 168, 164, 162, 162, 164, 157, 174, 160, 155, 165, 168, 160, 164, 161, 161, 162, 166, 159, 169, 153, 161, 162, 169, 160, 161, 155, 162, 175, 164, 151, 149, 166, 158, 178, 171, 155, 154, 155, 154, 166, 166, 155, 160, 164, 163, 158, 154, 152, 163, 174, 166, 160, 176, 152, 157, 160, 161, 160, 162, 161, 162, 165, 164, 158, 167, 153, 148, 155, 161, 165, 161, 157, 153, 160, 168, 167, 161, 163, 153, 155, 156, 159, 155, 154, 164, 163, 165, 153, 159, 166, 146, 153, 156, 156, 163, 151, 160, 166, 161, 152, 160, 168, 156, 156, 160, 158, 149, 164, 166, 163, 162, 164, 153, 166, 152, 150, 159, 166, 168, 166, 156, 151, 160, 153, 162, 163, 159, 163, 164, 164, 161, 161, 156, 159, 166, 173, 158, 161, 168, 161, 160, 161, 161, 158, 163, 167, 163, 153, 155, 160, 162, 165, 161, 158, 159, 162, 161, 161, 160, 159, 154, 160, 167, 159, 164, 161, 162, 159, 160, 160, 158, 160, 159, 162, 160, 159, 158, 161, 150, 157, 165, 159, 153, 149, 162, 165, 161, 160, 157, 160, 163, 163, 157, 155, 157, 161, 165, 159, 158, 162, 158, 161, 164, 154, 159, 160, 158, 169, 152, 168, 162, 160, 159, 159, 160, 158, 162, 164, 163, 160, 169, 160, 158, 160, 159, 158, 161, 169, 162, 162, 160, 164, 162, 161, 158, 167, 159, 163, 158, 159, 148, 162, 161, 155, 156, 160, 160, 161, 158, 159, 159, 161, 157, 160, 159, 159, 156, 159, 175, 162, 161, 160, 159, 149, 146, 159, 165, 163, 159, 164, 163, 160, 173, 157, 162, 149, 164, 159, 159, 163, 161, 161, 162, 163, 160, 150, 167, 161, 163, 161, 160, 174, 160, 158, 158, 164, 158, 161, 160, 161, 158, 155, 160, 159, 162, 161, 160, 163, 161, 156, 161, 157, 171, 159, 161, 159, 155, 158, 166, 162, 158, 159, 159, 161, 164, 164, 167, 161, 154, 163, 157, 161, 158, 160, 160, 163, 159, 165, 157, 177, 161, 160, 161, 160, 159, 162, 157, 163, 161, 159, 155, 161, 158, 154, 157, 157, 161, 162, 162, 151, 165, 160, 159, 163, 170, 162, 162, 161, 161, 162, 157, 163, 163, 160, 160, 153, 159, 159, 159, 162, 163, 159, 159, 155, 149, 160, 158, 164, 160, 157, 163, 162, 160, 166, 162, 162, 169, 159, 160, 163, 156, 163, 161, 162, 167, 167, 158, 159, 159, 159, 158, 172, 154, 160, 159, 157, 157, 162, 163, 162, 160, 157, 160, 164, 159, 159, 162, 160, 155, 155, 162, 153, 174, 155, 162, 162, 159, 158, 158, 162, 161, 165, 158, 155, 162, 163, 147, 160, 171, 160, 159, 162, 165, 158, 158, 153, 159, 165, 162, 159, 171, 164, 157, 162, 157, 159, 162, 158, 161, 161, 165, 168, 158, 160, 160, 157, 156, 138, 160, 159, 160, 161, 159, 161, 170, 143, 158, 163, 158, 154, 165, 165, 157, 157, 157, 165, 163, 160, 165, 159, 170, 158, 162, 161, 164, 170, 162, 163, 161, 158, 161, 157, 161, 159, 173, 155, 162, 165, 162, 163, 162, 167, 157, 160, 158, 158, 160, 155, 159, 153, 159, 161, 155, 160, 162, 165, 154, 158, 152, 161, 166, 160, 161, 162, 158, 160, 160, 165, 160, 162, 162, 161, 161, 161, 160, 159, 165, 161, 155, 164, 155, 160, 162, 162, 162, 166, 158, 157, 160, 157, 162, 161, 159, 154, 162, 159, 156, 159, 162, 163, 163, 160, 164, 161, 161, 162, 162, 155, 143, 162, 165, 160, 157, 159, 162, 161, 159, 160, 149, 157, 157, 155, 161, 159, 166, 156, 161, 162, 156, 161, 160, 155, 154, 160, 158, 159, 160, 163, 165, 164, 163, 158, 165, 162, 160, 163, 160, 159, 165, 170, 158, 158, 160, 156, 150, 155, 154, 165, 161, 171, 157, 164, 169, 156, 155, 172, 160, 153, 166, 162, 154, 156, 154, 157, 165, 168, 164, 169, 167, 174, 155, 161, 167, 158, 166, 160, 152, 159, 151, 161, 162, 163, 164, 154, 155, 151, 168, 160, 185, 162, 156, 165, 157, 145, 163, 154, 159, 166, 162, 159, 163, 153, 159, 163, 159, 167, 149, 179, 165, 148, 151, 168, 166, 174, 163, 158, 158, 160, 150, 172, 160, 160, 150, 162, 144, 155, 156, 160, 159, 157, 162, 169, 163, 154, 161, 147, 158, 159, 144, 154, 155, 157, 165, 158, 165, 152, 163, 155, 146, 163, 153, 159, 168, 160, 162, 158, 157, 169, 165, 162, 155, 161, 165, 159, 158, 171, 155, 158, 158, 163, 156, 157, 159, 164, 160, 148, 167, 172, 169, 158, 154, 153, 153, 159, 163, 154, 155, 161, 164, 160, 159, 161, 151, 164, 164, 169, 157, 146, 160, 165, 155, 161, 158, 155, 160, 162, 159, 163, 161, 157, 157, 163, 161, 153, 149, 145, 167, 162, 161, 168, 157, 158, 159, 169, 158, 161, 166, 160, 156, 165, 165, 158, 178, 156, 142, 157, 155, 153, 164, 158, 165, 154, 152, 153, 153, 169, 159, 157, 148, 152, 159, 161, 162, 165, 161, 158, 183, 152, 173, 174, 159, 162, 155, 165, 157, 171, 145, 175, 165, 148, 145, 158, 165, 144, 148, 157, 167, 168, 160, 151, 159, 161, 162, 172, 155, 154, 159, 161, 160, 171, 161, 160, 156, 160, 155, 153, 155, 161, 159, 156, 150, 156, 158, 157, 167, 166, 165, 155, 148, 148, 154, 151, 162, 158, 168, 178, 166, 159, 158, 169, 162, 179, 161, 158, 178, 148, 165, 169, 155, 172, 162, 150, 160, 157, 166, 156, 157, 154, 155, 168, 149, 164, 167, 157, 162, 157, 161, 170, 150, 161, 167, 149, 162, 156, 159, 157, 166, 161, 157, 169, 169, 155, 164, 178, 164, 159, 167, 163, 171, 166, 162, 163, 162, 163, 155, 152, 167, 160, 172, 164, 171, 160, 165, 158, 169, 158, 162, 158, 169, 164, 168, 169, 166, 153, 162, 160, 161, 154, 148, 164, 152, 154, 164, 163, 156, 162, 162, 160, 165, 163, 164, 159, 155, 181, 162, 148, 157, 162, 157, 161, 163, 170, 173, 159, 169, 156, 159, 161, 152, 163, 170, 151, 155, 166, 161, 153, 152, 153, 159, 149, 161, 180, 158, 165, 160, 148, 157, 164, 151, 148, 162, 157, 162, 173, 158, 161, 161, 164, 148, 152, 158, 159, 156, 162, 165, 159, 155, 161, 165, 155, 148, 171, 169, 172, 164, 163, 153, 173, 157, 146, 163, 166, 151, 155, 174, 137, 163, 172, 153, 148, 154, 158, 157, 162, 157, 159, 174, 155, 148, 159, 152, 160, 155, 143, 154, 150, 159, 168, 164, 156, 160, 155, 173, 158, 160, 166, 160, 162, 164, 154, 160, 161, 161, 159, 164, 149, 152, 161, 172, 151, 152, 158, 170, 163, 155, 148, 165, 160, 158, 154, 154, 159, 155, 165, 162, 154, 181, 158, 160, 164, 166, 161, 161, 153, 159, 178, 159, 148, 163, 165, 162, 162, 157, 161, 158, 155, 158, 154, 158, 156, 163, 152, 165, 158, 167, 156, 163, 155, 154, 160, 157, 163, 159, 162, 157, 159, 159, 167, 158, 162, 160, 158, 155, 157, 169, 158, 159, 148, 160, 166, 171, 161, 163, 154, 162, 164, 151, 157, 155, 155, 159, 154, 158, 157, 159, 161, 157, 156, 159, 158, 159, 165, 159, 164, 161, 161, 159, 159, 162, 157, 164, 161, 165, 158, 162, 155, 147, 161, 169, 161, 163, 161, 162, 156, 161, 158, 173, 159, 146, 201, 157, 162, 162, 160, 160, 154, 163, 153, 160, 158, 164, 164, 157, 158, 150, 161, 163, 161, 162, 156, 152, 157, 157, 164, 162, 158, 165, 157, 164, 161, 146, 158, 148, 162, 157, 137, 160, 159, 162, 157, 162, 155, 162, 164, 159, 146, 149, 160, 160, 167, 160, 153, 155, 156, 158, 163, 162, 158, 186, 162, 156, 167, 164, 157, 157, 156, 158, 166, 161, 160, 157, 167, 150, 170, 167, 164, 154, 159, 162, 162, 161, 154, 165, 159, 160, 157, 158, 146, 154, 161, 164, 152, 159, 156, 162, 161, 163, 160, 164, 158, 153, 167, 163, 160, 155, 172, 147, 166, 161, 157, 161, 161, 161, 152, 159, 169, 164, 157, 157, 156, 161, 156, 162, 165, 163, 166, 155, 159, 167, 162, 165, 152, 160, 157, 157, 166, 156, 163, 161, 163, 156, 161, 164, 161, 157, 165, 162, 159, 162, 161, 138, 167, 158, 168, 162, 153, 162, 155, 159, 158, 176, 161, 165, 156, 162, 155, 160, 162, 160, 156, 163, 163, 192, 160, 173, 161, 164, 161, 154, 163, 159, 177, 174, 164, 169, 162, 161, 163, 157, 156, 160, 166, 154, 165, 163, 160, 149, 154, 158, 155, 160, 160, 153, 162, 164, 166, 151, 163, 162, 164, 154, 166, 163, 164, 164, 161, 156, 157, 159, 158, 163, 159, 157, 181, 157, 162, 162, 162, 161, 161, 161, 162, 161, 163, 168, 158, 164, 150, 162, 159, 162, 165, 168, 165, 162, 159, 159, 155, 150, 142, 157, 158, 161, 162, 160, 161, 156, 159, 159, 160, 161, 157, 156, 164, 164, 163, 160, 159, 155, 160, 155, 158, 162, 161, 160, 160, 166, 164, 162, 159, 161, 157, 164, 171, 162, 147, 157, 166, 152, 157, 150, 146, 158, 156, 162, 157, 159, 155, 158, 163, 152, 162, 163, 162, 171, 154, 154, 159, 153, 158, 165, 159, 158, 160, 167, 159, 159, 161, 166, 158, 160, 159, 153, 166, 157, 164, 164, 157, 156, 144, 163, 166, 155, 166, 157, 167, 164, 160, 157, 155, 161, 158, 162, 161, 155, 160, 162, 158, 153, 161, 166, 161, 164, 162, 160, 158, 156, 159, 158, 157, 165, 167, 160, 167, 164, 162, 157, 166, 157, 158, 184, 156, 163, 156, 164, 157, 155, 158, 158, 145, 158, 173, 157, 166, 161, 166, 157, 152, 161, 163, 154, 157, 150, 172, 162, 166, 160, 161, 159, 148, 160, 182, 155, 158, 165, 164, 157, 162, 163, 152, 151, 155, 164, 163, 169, 163, 160, 156, 161, 165, 159, 154, 164, 164, 159, 170, 162, 163, 158, 163, 152, 154, 162, 165, 157, 161, 169, 159, 156, 165, 170, 159, 159, 157, 154, 165, 168, 155, 167, 160, 159, 155, 128, 158, 153, 161, 162, 161, 155, 160, 167, 162, 167, 160, 159, 156, 159, 165, 164, 153, 157, 148, 157, 165, 156, 161, 156, 163, 162, 160, 154, 165, 154, 159, 163, 164, 156, 157, 163, 156, 164, 164, 162, 166, 168, 166, 161, 147, 163, 164, 166, 153, 156, 165, 161, 162, 169, 161, 154, 160, 142, 158, 158, 156, 164, 151, 170, 154, 169, 154, 160, 160, 161, 160, 155, 165, 156, 153, 164, 163, 161, 160, 166, 171, 164, 163, 164, 160, 149, 153, 158, 160, 155, 156, 161, 160, 160, 163, 164, 156, 170, 159, 163, 157, 169, 167, 121, 164, 158, 164, 158, 164, 162, 164, 163, 150, 159, 153, 162, 154, 155, 163, 159, 157, 165, 166, 167, 159, 168, 167, 166, 155, 161, 162, 168, 165, 158, 151, 162, 162, 160, 162, 157, 152, 165, 157, 161, 160, 167, 159, 159, 157, 157, 164, 154, 166, 167, 153, 160, 162, 154, 159, 161, 157, 164, 158, 162, 158, 161, 161, 162, 158, 156, 161, 162, 157, 159, 161, 151, 163, 171, 160, 162, 162, 162, 148, 161, 164, 159, 153, 159, 168, 162, 159, 161, 163, 160, 165, 160, 164, 165, 161, 162, 166, 167, 161, 166, 159, 162, 179, 165, 161, 154, 160, 153, 154, 163, 160, 152, 124, 131, 155, 165, 159, 160, 164, 166, 135, 158, 163, 160, 156, 157, 155, 158, 149, 157, 153, 163, 162, 160, 157, 164, 165, 154, 156, 165, 156, 159, 164, 160, 159, 155, 154, 153, 161, 156, 157, 158, 162, 153, 161, 164, 159, 157, 160, 164, 156, 160, 161, 158, 171, 164, 164, 164, 160, 155, 162, 162, 160, 155, 160, 155, 157, 163, 162, 157, 156, 160, 162, 167, 169, 160, 155, 150, 163, 153, 166, 167, 161, 143, 154, 163, 161, 158, 158, 169, 155, 159, 166, 159, 160, 166, 162, 168, 167, 150, 155, 159, 170, 162, 154, 166, 160, 163, 161, 164, 159, 165, 162, 159, 157, 161, 157, 168, 160, 161, 165, 156, 163, 159, 156, 160, 163, 164, 162, 168, 157, 163, 160, 150, 154, 169, 158, 163, 158, 158, 157, 156, 165, 168, 156, 158, 156, 163, 162, 161, 172, 159, 163, 161, 161, 159, 140, 159, 150, 166, 161, 158, 162, 170, 160, 160, 157, 162, 161, 160, 157, 167, 155, 161, 162, 161, 170, 160, 159, 156, 148, 158, 153, 152, 200, 160, 152, 151, 165, 161, 166, 154, 162, 158, 157, 158, 167, 143, 168, 152, 160, 161, 160, 162, 159, 158, 163, 158, 161, 160, 161, 142, 163, 164, 164, 162, 152, 161, 147, 168, 159, 156, 153, 165, 158, 165, 173, 154, 158, 159, 157, 156, 162, 164, 166, 168, 157, 159, 153, 178, 161, 165, 157, 163, 158, 156, 164, 166, 163, 165, 157, 160, 156, 150, 161, 168, 165, 136, 164, 160, 164, 160, 171, 150, 155, 162, 167, 160, 159, 157, 159, 163, 161, 156, 161, 160, 161, 162, 159, 159, 165, 155, 161, 167, 158, 160, 165, 158, 167, 162, 145, 164, 164, 159, 159, 165, 148, 159, 154, 158, 165, 165, 158, 169, 158, 159, 164, 165, 151, 161, 161, 163, 161, 155, 163, 157, 163, 157, 162, 164, 161, 162, 152, 158, 163, 163, 159, 162, 166, 158, 163, 160, 157, 175, 161, 158, 169, 162, 159, 162, 156, 169, 160, 160, 158, 161, 176, 155, 158, 163, 157, 161, 153, 156, 148, 162, 164, 160, 153, 165, 156, 164, 162, 156, 160, 155, 168, 164, 171, 158, 164, 159, 163, 163, 161, 158, 152, 159, 157, 161, 163, 171, 159, 154, 164, 165, 167, 164, 163, 159, 164, 167, 160, 152, 155, 157, 159, 163, 158, 155, 158, 159, 159, 155, 163, 163, 162, 161, 158, 163, 158, 163, 162, 164, 158, 164, 161, 161, 153, 165, 163, 161, 164, 165, 161, 154, 147, 153, 155, 166, 160, 166, 170, 164, 157, 164, 161, 157, 156, 160, 160, 158, 163, 162, 162, 154, 158, 174, 157, 157, 159, 161, 159, 166, 154, 158, 168, 161, 161, 160, 160, 160, 161, 160, 155, 170, 152, 163, 174, 160, 158, 163, 160, 168, 161, 164, 164, 157, 166, 162, 152, 165, 164, 157, 161, 158, 158, 158, 159, 166, 161, 159, 159, 160, 161, 160, 155, 161, 162, 161, 159, 156, 159, 160, 164, 168, 157, 157, 159, 159, 162, 159, 167, 160, 157, 159, 156, 159, 158, 164, 160, 168, 157, 162, 159, 159, 158, 157, 164, 160, 161, 167, 160, 159, 162, 163, 163, 158, 162, 160, 158, 154, 159, 160, 159, 161, 158, 161, 162, 150, 155, 158, 163, 161, 163, 167, 163, 160, 160, 160, 157, 158, 165, 159, 158, 170, 159, 159, 158, 175, 166, 152, 157, 149, 166, 164, 159, 158, 160, 158, 158, 158, 154, 160, 157, 158, 158, 159, 168, 163, 161, 159, 160, 156, 160, 155, 167, 158, 168, 160, 159, 167, 162, 161, 163, 153, 154, 166, 156, 159, 162, 161, 162, 166, 159, 158, 160, 159, 166, 163, 151, 164, 159, 159, 159, 159, 158, 161, 155, 163, 159, 159, 155, 166, 150, 157, 160, 160, 164, 162, 168, 159, 159, 156, 162, 163, 165, 160, 160, 163, 159, 164, 155, 161, 158, 150, 165, 160, 171, 159, 162, 158, 162, 152, 163, 162, 161, 161, 155, 163, 164, 154, 152, 157, 161, 159, 166, 156, 156, 157, 157, 164, 157, 161, 161, 159, 160, 160, 165, 159, 161, 158, 162, 151, 157, 162, 156, 159, 159, 164, 158, 152, 160, 157, 166, 161, 160, 156, 149, 155, 151, 158, 157, 158, 163, 155, 154, 160, 165, 156, 158, 160, 159, 154, 161, 164, 162, 155, 158, 148, 160, 171, 162, 159, 157, 158, 164, 156, 163, 164, 160, 158, 166, 164, 155, 168, 161, 159, 160, 162, 157, 161, 157, 168, 157, 164, 164, 156, 163, 160, 163, 160, 155, 158, 158, 159, 163, 158, 160, 163, 165, 161, 166, 163, 164, 167, 176, 162, 157, 164, 162, 151, 150, 160, 158, 158, 152, 162, 160, 152, 164, 159, 162, 140, 169, 179, 168, 152, 152, 167, 168, 157, 158, 176, 165, 159, 151, 153, 152, 165, 175, 149, 155, 152, 165, 159, 167, 168, 161, 164, 155, 161, 152, 162, 162, 165, 141, 161, 175, 162, 160, 157, 157, 160, 154, 161, 153, 158, 163, 163, 154, 158, 152, 155, 147, 162, 158, 157, 161, 158, 159, 168, 163, 154, 167, 165, 158, 156, 176, 171, 162, 156, 163, 157, 164, 163, 152, 165, 158, 157, 156, 157, 151, 147, 154, 163, 158, 166, 156, 157, 169, 171, 148, 160, 162, 163, 158, 165, 171, 162, 165, 161, 158, 163, 170, 147, 167, 159, 164, 152, 154, 161, 152, 158, 155, 162, 156, 167, 159, 161, 160, 157, 149, 160, 165, 156, 166, 162, 157, 156, 160, 161, 156, 159, 152, 151, 150, 152, 160, 151, 159, 154, 164, 154, 156, 161, 172, 157, 170, 151, 162, 168, 160, 158, 153, 158, 164, 161, 155, 150, 156, 153, 157, 151, 165, 166, 167, 163, 151, 171, 161, 159, 168, 159, 153, 159, 163, 164, 164, 163, 160, 161, 160, 162, 170, 162, 165, 161, 161, 154, 172, 163, 168, 161, 161, 177, 164, 160, 172, 162, 159, 165, 163, 157, 156, 155, 165, 157, 158, 157, 165, 168, 160, 152, 153, 151, 162, 176, 162, 166, 160, 147, 150, 172, 162, 162, 161, 150, 164, 160, 159, 151, 154, 161, 169, 165, 153, 158, 168, 159, 160, 165, 159, 153, 154, 150, 165, 155, 155, 167, 153, 163, 175, 167, 160, 157, 155, 161, 164, 154, 158, 158, 164, 170, 150, 153, 161, 164, 156, 161, 162, 165, 162, 160, 152, 154, 158, 156, 157, 158, 159, 155, 165, 168, 159, 165, 158, 168, 157, 165, 155, 167, 157, 159, 159, 147, 161, 161, 157, 157, 163, 158, 162, 151, 177, 158, 160, 147, 165, 163, 166, 164, 158, 155, 166, 167, 164, 152, 157, 161, 166, 163, 154, 156, 165, 163, 157, 155, 160, 149, 156, 158, 153, 163, 149, 155, 147, 151, 160, 163, 151, 161, 164, 168, 163, 157, 164, 158, 157, 158, 153, 161, 158, 155, 151, 155, 165, 157, 169, 160, 155, 157, 161, 150, 162, 166, 155, 157, 158, 159, 149, 161, 153, 163, 155, 156, 153, 150, 157, 159, 152, 160, 159, 163, 154, 158, 158, 152, 159, 169, 166, 179, 176, 163, 165, 171, 163, 165, 160, 152, 159, 155, 160, 160, 165, 156, 162, 172, 160, 155, 161, 167, 168, 157, 162, 154, 159, 153, 150, 159, 167, 170, 157, 157, 161, 165, 155, 167, 158, 167, 165, 164, 162, 160, 165, 162, 151, 155, 157, 156, 155, 158, 160, 155, 157, 170, 162, 165, 159, 159, 166, 139, 167, 148, 167, 160, 154, 159, 160, 166, 165, 157, 160, 164, 160, 157, 159, 158, 162, 161, 154, 149, 167, 165, 161, 155, 161, 160, 161, 161, 160, 157, 159, 155, 157, 151, 166, 184, 158, 158, 163, 153, 153, 156, 169, 159, 146, 171, 158, 160, 170, 157, 159, 157, 159, 164, 159, 154, 163, 161, 164, 154, 173, 159, 152, 160, 175, 158, 175, 152, 163, 162, 176, 153, 160, 180, 154, 162, 166, 156, 157, 154, 153, 166, 169, 149, 175, 159, 148, 168, 152, 170, 158, 155, 168, 164, 161, 163, 159, 166, 168, 163, 159, 155, 173, 157, 162, 161, 162, 144, 160, 159, 159, 158, 165, 167, 168, 172, 159, 155, 162, 150, 157, 161, 163, 159, 167, 151, 165, 165, 159, 165, 152, 139, 167, 175, 160, 161, 156, 156, 150, 160, 149, 162, 164, 145, 144, 157, 155, 155, 158, 151, 167, 158, 157, 147, 157, 161, 155, 140, 158, 170, 162, 155, 163, 155, 160, 164, 154, 158, 143, 145, 160, 153, 153, 169, 167, 175, 172, 167, 159, 157, 157, 159, 156, 161, 200, 159, 157, 163, 168, 158, 160, 157, 155, 162, 160, 158, 164, 161, 159, 159, 158, 143, 164, 157, 164, 159, 159, 159, 161, 164, 159, 133, 165, 159, 154, 164, 155, 163, 157, 165, 162, 162, 162, 163, 172, 166, 156, 163, 153, 158, 155, 166, 152, 165, 154, 137, 170, 152, 170, 161, 160, 163, 157, 153, 156, 144, 163, 156, 157, 162, 156, 162, 163, 162, 169, 156, 157, 169, 165, 159, 166, 161, 158, 155, 161, 150, 158, 163, 175, 160, 162, 171, 166, 154, 154, 166, 159, 156, 159, 168, 159, 159, 150, 147, 167, 162, 162, 155, 150, 156, 168, 162, 155, 167, 163, 155, 161, 157, 160, 159, 158, 155, 173, 169, 162, 144, 157, 152, 159, 163, 145, 149, 154, 163, 168, 164, 166, 163, 163, 161, 164, 174, 178, 168, 158, 166, 161, 164, 159, 165, 160, 156, 167, 165, 148, 155, 157, 155, 159, 158, 162, 152, 161, 161, 162, 162, 167, 157, 160, 161, 154, 162, 156, 158, 155, 167, 161, 172, 153, 159, 163, 168, 158, 168, 172, 158, 142, 166, 148, 161, 157, 155, 166, 158, 168, 157, 162, 160, 153, 166, 160, 164, 137, 158, 159, 163, 161, 155, 167, 165, 164, 160, 159, 161, 158, 154, 164, 161, 157, 162, 166, 155, 160, 169, 158, 151, 157, 161, 153, 164, 164, 159, 160, 169, 157, 157, 150, 164, 164, 180, 168, 146, 153, 160, 155, 158, 157, 160, 162, 161, 148, 163, 170, 165, 161, 177, 154, 149, 157, 162, 160, 144, 169, 161, 165, 149, 157, 153, 164, 157, 164, 163, 158, 168, 164, 161, 170, 161, 164, 162, 153, 155, 176, 161, 153, 159, 159, 175, 165, 170, 148, 163, 167, 166, 155, 155, 160, 159, 161, 162, 163, 152, 166, 151, 160, 161, 151, 172, 159, 143, 159, 164, 160, 155, 154, 159, 163, 161, 159, 152, 163, 157, 161, 156, 156, 160, 164, 151, 163, 155, 152, 160, 157, 168, 153, 167, 154, 153, 162, 162, 166, 158, 169, 165, 154, 165, 161, 156, 159, 167, 140, 159, 156, 158, 162, 159, 161, 154, 148, 167, 162, 146, 167, 151, 157, 155, 170, 168, 162, 155, 159, 162, 154, 158, 167, 170, 170, 159, 163, 164, 165, 163, 171, 163, 158, 159, 160, 162, 171, 165, 146, 174, 152, 162, 164, 168, 156, 160, 132, 158, 162, 160, 160, 162, 158, 156, 163, 166, 158, 163, 159, 158, 164, 162, 160, 159, 154, 161, 158, 162, 161, 164, 165, 155, 159, 162, 165, 139, 159, 165, 164, 152, 157, 164, 153, 165, 164, 159, 157, 163, 153, 154, 159, 148, 164, 169, 160, 158, 156, 163, 161, 160, 161, 156, 157, 160, 159, 151, 162, 163, 159, 157, 159, 165, 160, 155, 157, 162, 165, 104, 162, 163, 171, 155, 142, 160, 155, 162, 162, 157, 154, 164, 161, 164, 165, 150, 152, 154, 159, 161, 152, 183, 158, 160, 162, 147, 167, 133, 159, 165, 162, 161, 155, 152, 156, 153, 151, 165, 157, 154, 163, 159, 155, 158, 167, 157, 161, 160, 155, 157, 160, 150, 158, 144, 153, 155, 162, 166, 159, 142, 162, 162, 166, 160, 157, 153, 161, 165, 158, 157, 163, 159, 161, 153, 158, 158, 161, 144, 161, 170, 159, 154, 163, 165, 153, 173, 156, 152, 158, 157, 155, 161, 164, 148, 153, 166, 162, 155, 163, 158, 167, 154, 160, 157, 158, 161, 157, 157, 156, 164, 159, 145, 151, 157, 157, 149, 162, 156, 163, 164, 164, 158, 158, 204, 159, 159, 165, 154, 156, 164, 155, 168, 163, 164, 158, 173, 158, 167, 152, 171, 159, 162, 165, 161, 160, 157, 161, 163, 150, 164, 157, 145, 158, 164, 150, 158, 158, 150, 159, 140, 150, 152, 162, 162, 160, 154, 159, 163, 157, 159, 157, 168, 161, 176, 161, 162, 155, 157, 154, 163, 150, 155, 160, 163, 161, 154, 162, 159, 160, 160, 143, 184, 159, 160, 155, 160, 157, 161, 165, 149, 163, 162, 155, 165, 162, 166, 170, 161, 156, 151, 161, 155, 162, 155, 164, 163, 161, 161, 157, 162, 162, 154, 159, 163, 168, 165, 150, 160, 162, 150, 160, 156, 155, 160, 160, 154, 161, 156, 154, 169, 153, 154, 157, 161, 154, 156, 155, 160, 159, 157, 156, 163, 151, 169, 160, 150, 162, 156, 156, 159, 158, 162, 157, 164, 168, 161, 157, 160, 159, 162, 162, 158, 155, 157, 160, 155, 154, 158, 159, 159, 175, 161, 159, 159, 165, 160, 143, 154, 160, 236, 160, 181, 165, 155, 155, 156, 158, 168, 152, 158, 164, 169, 164, 157, 155, 162, 151, 159, 157, 154, 162, 154, 156, 152, 162, 154, 163, 153, 160, 161, 160, 161, 148, 161, 161, 153, 160, 165, 162, 152, 167, 161, 159, 155, 167, 173, 222, 163, 159, 151, 155, 159, 164, 157, 161, 159, 138, 161, 170, 160, 162, 159, 159, 165, 161, 163, 158, 149, 165, 156, 157, 155, 159, 163, 159, 157, 159, 159, 153, 152, 154, 168, 155, 161, 142, 167, 161, 147, 162, 157, 154, 157, 155, 160, 159, 160, 158, 162, 160, 158, 159, 157, 159, 158, 156, 160, 156, 165, 158, 154, 157, 152, 168, 156, 157, 163, 160, 157, 156, 164, 156, 160, 161, 155, 157, 164, 161, 157, 164, 163, 158, 159, 150, 160, 162, 157, 152, 164, 160, 161, 161, 156, 162, 161, 143, 164, 159, 159, 148, 167, 159, 161, 165, 156, 152, 157, 164, 161, 159, 163, 163, 164, 162, 162, 146, 154, 155, 152, 163, 159, 163, 162, 171, 158, 159, 160, 152, 160, 165, 158, 161, 163, 157, 150, 162, 165, 176, 160, 162, 162, 162, 159, 163, 155, 160, 159, 160, 162, 164, 160, 165, 162, 163, 161, 156, 166, 158, 162, 164, 168, 164, 158, 163, 172, 155, 164, 159, 161, 156, 164, 163, 156, 164, 164, 164, 170, 158, 168, 167, 157, 156, 160, 164, 156, 157, 158, 173, 168, 158, 158, 154, 164, 165, 156, 155, 163, 162, 160, 164, 158, 163, 169, 156, 178, 169, 164, 160, 178, 154, 158, 167, 155, 153, 160, 161, 162, 171, 160, 161, 159, 165, 161, 164, 164, 158, 166, 159, 155, 159, 165, 159, 158, 166, 155, 154, 170, 166, 164, 156, 166, 154, 154, 166, 167, 168, 162, 146, 163, 162, 166, 170, 161, 162, 170, 151, 159, 165, 164, 171, 162, 154, 173, 165, 156, 141, 165, 155, 158, 165, 169, 159, 143, 156, 154, 159, 163, 161, 165, 166, 156, 160, 172, 160, 164, 155, 158, 153, 160, 172, 162, 161, 159, 160, 159, 160, 167, 163, 159, 165, 169, 154, 158, 158, 166, 157, 164, 155, 164, 167, 143, 170, 158, 165, 154, 163, 157, 160, 160, 163, 169, 159, 162, 166, 163, 163, 157, 165, 168, 162, 162, 164, 159, 162, 175, 163, 166, 173, 153, 163, 160, 153, 161, 151, 155, 154, 152, 164, 188, 134, 155, 156, 164, 162, 161, 166, 154, 150, 164, 166, 156, 157, 155, 161, 167, 157, 165, 163, 160, 170, 155, 163, 168, 148, 167, 156, 163, 166, 161, 155, 159, 170, 165, 156, 148, 158, 157, 166, 164, 155, 167, 164, 160, 162, 158, 170, 155, 165, 157, 164, 165, 164, 157, 162, 159, 159, 162, 153, 171, 160, 156, 158, 166, 163, 157, 154, 165, 154, 166, 160, 154, 159, 159, 158, 163, 162, 160, 158, 157, 165, 163, 158, 149, 163, 163, 165, 159, 163, 153, 174, 167, 166, 163, 150, 162, 160, 155, 160, 156, 159, 169, 167, 159, 161, 156, 147, 154, 176, 163, 166, 165, 154, 159, 164, 158, 183, 160, 166, 163, 163, 166, 148, 166, 166, 180, 162, 154, 152, 155, 162, 158, 155, 159, 158, 154, 161, 167, 159, 150, 159, 151, 159, 153, 156, 164, 159, 152, 163, 156, 163, 166, 165, 156, 155, 150, 159, 156, 157, 159, 156, 161, 160, 159, 163, 161, 154, 170, 154, 162, 165, 160, 154, 164, 160, 154, 164, 162, 162, 162, 142, 157, 160, 156, 166, 167, 162, 160, 158, 163, 163, 157, 149, 155, 160, 156, 158, 160, 162, 158, 168, 156, 167, 156, 174, 157, 157, 153, 151, 162, 159, 162, 155, 163, 162, 161, 144, 153, 164, 160, 150, 154, 162, 170, 162, 164, 157, 154, 168, 154, 168, 165, 165, 154, 151, 155, 156, 163, 161, 177, 166, 161, 163, 169, 154, 163, 158, 166, 155, 155, 162, 154, 163, 161, 157, 162, 156, 167, 152, 164, 162, 162, 169, 162, 163, 165, 159, 149, 155, 162, 160, 174, 158, 151, 159, 149, 155, 166, 157, 157, 158, 159, 161, 163, 163, 157, 168, 166, 158, 157, 162, 153, 159, 153, 166, 159, 160, 157, 157, 155, 160, 165, 158, 157, 158, 158, 155, 165, 168, 182, 157, 158, 158, 180, 166, 158, 163, 152, 158, 164, 153, 164, 153, 156, 157, 167, 161, 158, 165, 162, 163, 151, 158, 155, 163, 166, 159, 152, 163, 156, 160, 159, 155, 161, 156, 164, 160, 155, 159, 162, 163, 162, 157, 161, 160, 149, 168, 165, 159, 156, 150, 165, 166, 161, 163, 153, 165, 158, 153, 168, 157, 165, 164, 163, 163, 162, 156, 160, 161, 157, 156, 168, 160, 170, 165, 160, 157, 159, 164, 164, 155, 153, 158, 161, 158, 159, 161, 151, 158, 149, 171, 161, 156, 170, 155, 149, 155, 149, 165, 165, 160, 160, 156, 158, 149, 158, 159, 152, 155, 161, 159, 163, 159, 158, 162, 170, 153, 164, 159, 160, 160, 168, 164, 158, 176, 156, 166, 161, 154, 161, 163, 152, 160, 155, 162, 165, 157, 157, 168, 162, 168, 156, 168, 163, 156, 154, 158, 159, 170, 163, 158, 166, 154, 159, 162, 174, 166, 160, 157, 164, 160, 161, 166, 169, 164, 160, 156, 165, 163, 157, 155, 156, 165, 159, 158, 162, 167, 165, 158, 159, 160, 162, 165, 165, 151, 168, 159, 161, 156, 162, 159, 158, 163, 169, 159, 160, 162, 169, 165, 161, 159, 161, 161, 164, 155, 167, 159, 155, 161, 160, 161, 163, 162, 162, 155, 164, 155, 155, 164, 158, 158, 159, 158, 150, 166, 160, 160, 150, 155, 166, 164, 162, 154, 160, 157, 161, 160, 154, 156, 168, 151, 157, 155, 156, 167, 151, 150, 175, 154, 157, 157, 152, 166, 166, 160, 165, 177, 159, 168, 167, 157, 170, 162, 158, 155, 159, 168, 167, 160, 155, 158, 161, 166, 166, 163, 167, 164, 162, 152, 154, 161, 161, 158, 158, 162, 156, 150, 158, 164, 159, 164, 151, 157, 156, 162, 159, 163, 155, 159, 164, 165, 156, 160, 151, 158, 164, 151, 163, 163, 162, 161, 156, 159, 162, 147, 168, 165, 157, 163, 164, 166, 156, 153, 165, 148, 158, 173, 157, 152, 151, 154, 162, 161, 153, 166, 156, 162, 159, 158, 163, 159, 164, 156, 156, 160, 161, 151, 158, 168, 163, 167, 157, 146, 161, 155, 161, 153, 154, 157, 155, 165, 175, 160, 160, 156, 161, 161, 158, 164, 156, 162, 161, 162, 155, 173, 152, 157, 156, 157, 164, 164, 159, 155, 157, 162, 164, 161, 166, 156, 166, 153, 162, 157, 159, 171, 155, 160, 162, 158, 159, 164, 157, 165, 156, 161, 162, 161, 150, 152, 162, 157, 153, 160, 160, 171, 150, 164, 159, 153, 159, 156, 156, 157, 157, 168, 161, 166, 160, 165, 160, 159, 177, 162, 160, 159, 162, 157, 156, 160, 163, 162, 156, 164, 165, 157, 161, 157, 160, 159, 152, 159, 171, 154, 159, 162, 151, 146, 157, 158, 163, 166, 170, 163, 159, 145, 167, 162, 161, 170, 143, 167, 161, 158, 157, 158, 157, 159, 167, 174, 158, 136, 157, 156, 161, 159, 169, 158, 154, 163, 164, 167, 156, 161, 149, 156, 165, 163, 155, 158, 161, 157, 156, 159, 160, 166, 156, 157, 155, 164, 163, 159, 160, 152, 162, 156, 165, 158, 161, 166, 155, 154, 163, 161, 167, 164, 162, 157, 157, 155, 155, 160, 149, 168, 150, 160, 159, 161, 156, 155, 153, 157, 162, 162, 155, 160, 169, 164, 155, 161, 160, 172, 158, 174, 158, 165, 157, 158, 166, 163, 164, 154, 157, 168, 156, 158, 162, 155, 161, 161, 165, 152, 168, 148, 179, 164, 145, 160, 160, 161, 161, 159, 165, 150, 165, 166, 150, 167, 156, 161, 155, 161, 163, 159, 157, 146, 159, 157, 156, 157, 156, 160, 167, 162, 160, 161, 160, 169, 162, 159, 153, 163, 166, 162, 158, 162, 166, 153, 150, 162, 163, 151, 151, 161, 162, 153, 162, 158, 168, 168, 142, 158, 154, 155, 159, 161, 160, 163, 150, 172, 148, 149, 155, 159, 170, 166, 150, 152, 147, 161, 158, 163, 158, 159, 159, 160, 155, 152, 158, 154, 153, 165, 162, 168, 164, 159, 162, 162, 171, 165, 153, 172, 162, 161, 161, 157, 151, 154, 164, 157, 153, 165, 151, 168, 157, 150, 157, 158, 159, 155, 158, 161, 160, 166, 155, 164, 160, 163, 157, 155, 155, 152, 162, 154, 156, 158, 156, 165, 155, 150, 160, 167, 147, 165, 175, 142, 156, 148, 165, 165, 164, 151, 165, 166, 155, 160, 158, 156, 167, 160, 159, 166, 152, 152, 158, 158, 157, 168, 164, 168, 165, 160, 156, 161, 163, 155, 164, 155, 162, 161, 152, 156, 155, 155, 157, 162, 156, 154, 156, 159, 161, 162, 160, 153, 149, 157, 158, 161, 164, 156, 161, 145, 155, 159, 162, 161, 156, 158, 156, 155, 166, 162, 156, 152, 155, 161, 162, 163, 165, 163, 162, 156, 162, 165, 147, 165, 163, 158, 156, 155, 154, 165, 158, 152, 166, 165, 163, 150, 161, 163, 160, 164, 165, 158, 164, 165, 167, 151, 163, 153, 159, 163, 155, 162, 154, 156, 162, 154, 159, 164, 161, 170, 137, 157, 167, 157, 157, 162, 150, 163, 164, 161, 161, 164, 155, 159, 157, 157, 153, 164, 159, 163, 153, 161, 170, 163, 161, 158, 155, 165, 160, 156, 156, 152, 156, 158, 165, 157, 160, 165, 155, 152, 163, 145, 163, 160, 151, 157, 156, 164, 156, 156, 164, 160, 171, 163, 161, 155, 167, 162, 155, 161, 159, 152, 155, 158, 157, 159, 154, 159, 158, 167, 162, 155, 153, 168, 168, 161, 168, 152, 164, 158, 170, 161, 156, 168, 165, 153, 167, 145, 166, 155, 158, 156, 162, 170, 165, 160, 159, 152, 166, 146, 151, 171, 157, 160, 159, 152, 154, 162, 157, 159, 160, 163, 170, 157, 158, 160, 161, 169, 156, 159, 161, 161, 165, 152, 157, 162, 151, 159, 159, 160, 170, 159, 161, 158, 155, 167, 156, 156, 167, 149, 162, 159, 154, 158, 154, 159, 161, 170, 163, 161, 153, 168, 161, 166, 157, 150, 150, 150, 161, 163, 157, 160, 166, 167, 163, 157, 147, 158, 157, 155, 162, 154, 170, 159, 163, 159, 157, 154, 160, 162, 166, 160, 164, 156, 166, 160, 169, 155, 157, 159, 158, 168, 167, 160, 156, 154, 169, 157, 162, 154, 158, 160, 158, 163, 154, 156, 153, 160, 161, 163, 164, 149, 159, 160, 160, 164, 158, 158, 155, 166, 150, 166, 170, 157, 155, 163, 155, 160, 161, 159, 165, 157, 170, 162, 152, 169, 154, 166, 172, 166, 159, 167, 158, 160, 159, 152, 161, 158, 167, 158, 162, 164, 161, 158, 153, 161, 159, 162, 156, 159, 163, 165, 159, 156, 160, 158, 162, 166, 155, 162, 164, 167, 169, 154, 159, 163, 167, 159, 158, 148, 159, 168, 155, 159, 159, 153, 157, 155, 150, 173, 151, 155, 159, 166, 157, 162, 162, 167, 155, 153, 158, 146, 167, 162, 155, 156, 166, 156, 155, 151, 164, 155, 142, 169, 163, 159, 161, 160, 159, 156, 177, 158, 157, 158, 159, 149, 158, 153, 158, 155, 148, 170, 167, 160, 156, 162, 165, 161, 162, 156, 159, 175, 168, 148, 167, 161, 164, 160, 164, 170, 153, 147, 161, 164, 150, 157, 158, 163, 166, 152, 161, 164, 148, 160, 159, 152, 164, 163, 160, 157, 161, 165, 158, 162, 166, 158, 158, 159, 158, 157, 161, 156, 160, 160, 159, 151, 156, 157, 160, 160, 161, 165, 158, 162, 156, 163, 155, 153, 157, 161, 160, 154, 154, 153, 165, 158, 162, 155, 161, 174, 157, 160, 164, 172, 159, 159, 152, 160, 151, 170, 153, 163, 155, 164, 159, 166, 167, 161, 161, 163, 152, 172, 167, 156, 157, 163, 178, 166, 160, 160, 165, 156, 162, 160, 160, 162, 158, 162, 165, 172, 151, 166, 163, 157, 166, 160, 157, 164, 160, 164, 155, 167, 161, 163, 164, 168, 161, 162, 154, 162, 158, 157, 161, 158, 159, 151, 166, 162, 159, 154, 161, 156, 157, 151, 162, 160, 160, 157, 151, 149, 160, 159, 154, 157, 175, 159, 157, 173, 172, 152, 159, 158, 167, 169, 156, 164, 166, 160, 158, 154, 164, 159, 164, 156, 157, 170, 153, 149, 166, 160, 165, 150, 163, 154, 166, 168, 166, 165, 163, 154, 173, 160, 161, 154, 162, 162, 160, 156, 158, 152, 157, 158, 159, 160, 152, 166, 161, 166, 153, 165, 168, 158, 161, 158, 161, 159, 155, 163, 160, 161, 160, 155, 155, 160, 164, 159, 158, 156, 165, 154, 152, 158, 164, 146, 157, 160, 153, 159, 156, 163, 161, 170, 154, 177, 155, 159, 160, 160, 172, 160, 154, 155, 147, 160, 163, 156, 162, 159, 159, 160, 154, 167, 157, 157, 170, 158, 157, 171, 158, 157, 159, 155, 167, 160, 158, 160, 162, 162, 158, 165, 156, 161, 161, 158, 160, 162, 162, 177, 162, 158, 161, 167, 163, 155, 163, 161, 157, 156, 157, 170, 158, 160, 155, 159, 153, 164, 159, 155, 163, 164, 164, 163, 159, 157, 153, 162, 157, 161, 162, 158, 160, 157, 160, 163, 160, 158, 160, 162, 167, 161, 161, 165, 159, 161, 161, 162, 154, 160, 159, 160, 157, 164, 161, 166, 169, 164, 157, 157, 150, 158, 161, 157, 159, 166, 159, 155, 133, 159, 160, 159, 163, 161, 155, 165, 160, 160, 160, 164, 157, 156, 154, 160, 159, 163, 158, 153, 159, 160, 158, 167, 159, 160, 156, 158, 159, 161, 155, 166, 156, 150, 157, 151, 158, 162, 162, 164, 158, 153, 157, 167, 163, 159, 163, 162, 161, 161, 155, 161, 160, 161, 161, 157, 170, 160, 158, 161, 157, 158, 159, 159, 157, 163, 162, 159, 154, 157, 160, 158, 160, 158, 162, 162, 159, 162, 158, 165, 158, 160, 160, 159, 160, 162, 160, 159, 168, 156, 161, 162, 158, 157, 177, 162, 157, 165, 158, 155, 161, 158, 152, 164, 156, 157, 155, 153, 160, 160, 164, 161, 164, 159, 158, 160, 162, 156, 155, 124, 156, 158, 163, 107, 157, 159, 157, 162, 173, 161, 155, 155, 163, 169, 159, 157, 156, 156, 162, 162, 162, 164, 156, 161, 165, 162, 157, 158, 162, 164, 157, 159, 163, 164, 163, 165, 159, 162, 169, 163, 162, 149, 158, 170, 158, 161, 163, 164, 160, 160, 155, 158, 152, 196, 157, 160, 162, 153, 156, 159, 159, 165, 159, 155, 164, 166, 155, 169, 160, 164, 157, 160, 163, 161, 154, 160, 155, 156, 161, 157, 154, 159, 167, 157, 155, 154, 155, 160, 161, 166, 160, 158, 158, 162, 172, 169, 161, 160, 160, 163, 157, 161, 164, 161, 160, 164, 167, 152, 159, 157, 159, 159, 166, 150, 159, 161, 168, 165, 156, 157, 160, 165, 154, 169, 164, 159, 162, 161, 164, 156, 161, 156, 162, 164, 156, 154, 162, 162, 158, 166, 164, 161, 159, 153, 162, 157, 162, 162, 161, 161, 165, 157, 160, 160, 162, 158, 169, 161, 162, 161, 158, 162, 163, 162, 164, 163, 159, 158, 154, 159, 159, 155, 164, 163, 161, 158, 162, 162, 157, 157, 161, 159, 158, 158, 157, 157, 157, 163, 158, 160, 157, 156, 156, 162, 159, 164, 156, 162, 163, 163, 157, 152, 156, 158, 155, 158, 169, 160, 162, 163, 158, 158, 158, 155, 162, 167, 163, 148, 159, 159, 163, 160, 160, 160, 160, 156, 162, 159, 162, 164, 160, 168, 163, 157, 158, 159, 152, 163, 158, 165, 160, 164, 166, 144, 164, 198, 156, 161, 158, 162, 164, 168, 159, 159, 159, 150, 160, 167, 161, 158, 162, 166, 162, 164, 163, 151, 158, 160, 160, 163, 158, 159, 158, 157, 154, 177, 156, 163, 159, 156, 156, 164, 161, 165, 160, 164, 165, 150, 162, 155, 161, 162, 162, 158, 163, 158, 161, 156, 162, 163, 161, 163, 160, 164, 159, 153, 159, 157, 158, 157, 158, 162, 161, 150, 160, 160, 161, 170, 158, 155, 161, 170, 158, 160, 158, 162, 158, 159, 158, 158, 161, 162, 162, 163, 155, 160, 165, 163, 159, 163, 156, 156, 159, 160, 158, 160, 166, 158, 163, 164, 161, 156, 162, 158, 164, 154, 160, 162, 158, 157, 163, 160, 159, 157, 144, 161, 157, 156, 124, 157, 160, 158, 155, 162, 166, 158, 151, 161, 161, 156, 156, 176, 155, 162, 155, 134, 157, 161, 156, 163, 161, 164, 154, 161, 155, 163, 159, 166, 162, 157, 157, 156, 158, 166, 160, 155, 158, 163, 158, 160, 163, 157, 157, 161, 158, 164, 160, 157, 157, 161, 159, 164, 188, 166, 163, 157, 128, 157, 162, 153, 157, 166, 162, 153, 161, 156, 158, 159, 164, 162, 157, 166, 150, 164, 162, 163, 160, 159, 152, 167, 164, 155, 153, 168, 124, 158, 157, 162, 163, 157, 165, 165, 165, 161, 162, 154, 164, 156, 163, 160, 161, 163, 135, 158, 161, 159, 158, 162, 162, 154, 154, 161, 157, 157, 162, 161, 165, 158, 161, 165, 162, 156, 162, 156, 163, 168, 164, 155, 164, 162, 159, 164, 158, 163, 165, 162, 162, 161, 157, 169, 163, 161, 165, 157, 161, 155, 153, 160, 161, 161, 157, 156, 166, 164, 153, 159, 155, 161, 148, 165, 159, 158, 166, 163, 153, 156, 161, 165, 166, 162, 158, 163, 152, 158, 160, 157, 164, 158, 153, 158, 160, 166, 164, 159, 166, 161, 160, 157, 162, 161, 156, 161, 168, 155, 163, 152, 160, 163, 160, 161, 159, 158, 156, 169, 158, 171, 162, 159, 162, 160, 168, 165, 157, 164, 156, 131, 130, 164, 158, 162, 161, 163, 158, 120, 156, 159, 163, 159, 161, 155, 160, 159, 160, 159, 162, 165, 149, 160, 162, 162, 161, 162, 156, 160, 161, 158, 158, 157, 152, 161, 157, 161, 162, 160, 158, 157, 165, 155, 158, 165, 157, 158, 167, 162, 159, 160, 163, 158, 162, 159, 158, 163, 155, 158, 151, 165, 158, 167, 156, 160, 164, 159, 164, 155, 161, 153, 163, 158, 163, 158, 162, 159, 157, 163, 157, 163, 155, 157, 163, 154, 161, 159, 160, 160, 166, 167, 160, 159, 159, 161, 161, 159, 152, 162, 154, 161, 171, 166, 159, 167, 157, 165, 173, 158, 158, 164, 160, 162, 158, 155, 153, 155, 162, 161, 155, 160, 163, 161, 157, 158, 153, 160, 164, 160, 160, 160, 119, 163, 155, 152, 163, 158, 157, 164, 156, 162, 153, 162, 164, 158, 163, 163, 163, 151, 165, 166, 156, 162, 160, 157, 160, 163, 165, 156, 154, 167, 162, 157, 154, 158, 159, 160, 162, 163, 157, 157, 158, 161, 163, 166, 162, 157, 163, 161, 163, 152, 156, 159, 160, 164, 159, 162, 166, 160, 162, 166, 158, 166, 160, 158, 122, 159, 167, 164, 158, 157, 167, 155, 157, 158, 164, 151, 167, 162, 138, 162, 158, 162, 166, 161, 157, 122, 156, 159, 150, 156, 158, 161, 157, 160, 159, 160, 161, 158, 158, 157, 158, 157, 158, 154, 155, 161, 166, 159, 158, 164, 155, 159, 161, 164, 162, 159, 161, 152, 159, 150, 158, 163, 158, 164, 156, 161, 157, 157, 165, 154, 166, 164, 158, 160, 158, 158, 166, 155, 156, 168, 153, 166, 152, 154, 166, 166, 167, 157, 163, 145, 156, 164, 162, 159, 152, 157, 161, 158, 160, 154, 157, 157, 149, 165, 159, 161, 158, 151, 161, 156, 159, 167, 153, 166, 145, 161, 156, 151, 158, 162, 158, 156, 159, 157, 162, 162, 156, 162, 166, 163, 156, 169, 158, 165, 158, 160, 159, 153, 159, 157, 162, 160, 153, 164, 171, 153, 158, 153, 152, 160, 174, 161, 164, 157, 152, 164, 153, 156, 152, 155, 158, 162, 159, 170, 159, 154, 172, 160, 157, 151, 153, 163, 159, 158, 163, 160, 163, 162, 152, 166, 183, 155, 155, 162, 154, 159, 163, 165, 165, 160, 157, 160, 169, 151, 155, 154, 158, 161, 162, 159, 158, 156, 163, 155, 156, 168, 169, 144, 162, 145, 161, 160, 159, 157, 158, 170, 157, 155, 167, 151, 161, 162, 159, 151, 163, 162, 172, 164, 163, 158, 161, 157, 163, 164, 162, 158, 172, 171, 160, 168, 156, 164, 158, 156, 152, 153, 151, 156, 154, 156, 157, 153, 161, 158, 169, 148, 155, 166, 163, 155, 162, 156, 170, 163, 161, 156, 160, 166, 159, 163, 147, 165, 149, 167, 166, 165, 160, 165, 164, 164, 153, 167, 156, 155, 158, 158, 159, 165, 168, 163, 160, 162, 159, 162, 153, 163, 144, 162, 167, 171, 150, 158, 171, 164, 170, 169, 154, 164, 161, 155, 165, 158, 157, 155, 163, 158, 157, 167, 160, 155, 171, 157, 159, 161, 153, 167, 164, 162, 157, 156, 171, 167, 156, 155, 158, 173, 155, 162, 161, 160, 150, 149, 159, 171, 156, 157, 160, 146, 161, 156, 157, 155, 154, 159, 156, 166, 161, 157, 158, 161, 151, 164, 158, 173, 157, 162, 158, 151, 152, 161, 159, 157, 156, 157, 155, 157, 161, 159, 160, 157, 158, 140, 154, 166, 157, 157, 151, 166, 153, 154, 162, 155, 155, 163, 165, 161, 155, 158, 153, 162, 157, 164, 155, 161, 171, 171, 165, 154, 159, 161, 165, 156, 163, 158, 170, 157, 160, 162, 164, 159, 160, 159, 159, 161, 160, 156, 162, 163, 150, 163, 177, 149, 157, 160, 160, 160, 176, 163, 157, 165, 162, 163, 161, 164, 152, 150, 172, 175, 153, 161, 155, 164, 158, 153, 163, 160, 155, 164, 160, 149, 145, 169, 161, 165, 146, 163, 172, 158, 159, 161, 164, 157, 162, 156, 166, 166, 164, 156, 162, 157, 156, 156, 152, 158, 155, 152, 151, 148, 160, 164, 163, 171, 145, 163, 161, 175, 160, 160, 154, 164, 154, 165, 161, 162, 167, 160, 165, 163, 162, 157, 161, 154, 168, 152, 149, 161, 162, 157, 167, 166, 157, 160, 147, 163, 151, 161, 159, 158, 163, 161, 157, 172, 160, 158, 160, 165, 162, 163, 157, 170, 155, 149, 162, 154, 161, 155, 155, 151, 161, 164, 157, 169, 162, 157, 168, 155, 163, 160, 167, 160, 158, 147, 164, 158, 159, 167, 163, 162, 162, 163, 154, 155, 158, 163, 155, 154, 158, 159, 154, 164, 161, 157, 155, 156, 161, 166, 168, 157, 156, 167, 160, 151, 155, 154, 157, 160, 160, 157, 157, 164, 160, 158, 153, 165, 155, 154, 163, 159, 162, 147, 161, 156, 160, 149, 155, 166, 168, 159, 158, 148, 166, 155, 166, 158, 162, 157, 160, 166, 157, 159, 158, 155, 160, 156, 159, 161, 163, 161, 159, 156, 158, 156, 154, 161, 164, 165, 151, 164, 151, 162, 164, 159, 156, 160, 156, 168, 154, 168, 162, 153, 160, 161, 158, 164, 161, 162, 154, 155, 159, 158, 157, 166, 162, 161, 164, 151, 161, 160, 164, 161, 158, 164, 155, 152, 161, 166, 157, 161, 163, 153, 159, 163, 157, 166, 161, 159, 161, 160, 158, 168, 157, 162, 157, 159, 158, 155, 152, 165, 157, 152, 159, 172, 156, 159, 163, 156, 164, 163, 155, 164, 159, 165, 156, 163, 164, 146, 159, 153, 152, 157, 152, 161, 155, 156, 149, 159, 154, 144, 142, 175, 158, 161, 164, 149, 166, 157, 163, 164, 155, 144, 161, 158, 161, 156, 166, 162, 160, 151, 151, 162, 157, 167, 153, 159, 159, 162, 162, 160, 157, 162, 159, 160, 159, 162, 159, 163, 161, 158, 160, 162, 160, 159, 166, 159, 161, 164, 156, 162, 166, 154, 157, 167, 162, 161, 155, 160, 161, 159, 163, 154, 163, 154, 165, 153, 159, 163, 162, 158, 157, 160, 156, 158, 163, 162, 158, 154, 189, 155, 155, 158, 156, 151, 161, 153, 162, 175, 163, 157, 163, 163, 153, 164, 161, 161, 162, 161, 164, 158, 155, 161, 160, 163, 157, 157, 157, 151, 156, 159, 171, 159, 154, 161, 159, 158, 150, 166, 157, 162, 161, 155, 162, 170, 161, 157, 162, 161, 161, 160, 164, 161, 160, 156, 147, 153, 163, 156, 161, 171, 168, 161, 171, 159, 154, 159, 167, 160, 173, 170, 153, 157, 173, 156, 157, 158, 163, 157, 155, 159, 157, 174, 168, 163, 166, 161, 159, 167, 160, 169, 159, 159, 164, 156, 156, 158, 162, 162, 157, 162, 158, 156, 159, 150, 160, 159, 188, 164, 163, 167, 155, 156, 158, 158, 169, 166, 158, 155, 157, 163, 166, 158, 158, 165, 162, 150, 161, 162, 160, 153, 147, 162, 165, 149, 166, 159, 157, 165, 156, 169, 164, 176, 155, 169, 159, 147, 157, 161, 157, 168, 173, 161, 164, 148, 156, 159, 166, 163, 144, 162, 170, 155, 151, 157, 165, 157, 160, 155, 163, 158, 164, 163, 157, 157, 158, 158, 152, 162, 155, 157, 162, 158, 172, 163, 159, 164, 160, 163, 167, 165, 138, 158, 157, 150, 155, 157, 160, 155, 159, 160, 162, 158, 151, 171, 162, 154, 153, 154, 159, 161, 158, 165, 170, 177, 158, 164, 152, 162, 162, 160, 164, 168, 160, 154, 164, 163, 161, 155, 160, 159, 155, 162, 159, 165, 161, 161, 160, 171, 149, 161, 159, 157, 162, 162, 164, 168, 164, 159, 163, 158, 156, 160, 160, 136, 160, 161, 163, 160, 165, 165, 160, 160, 159, 160, 160, 163, 160, 166, 151, 161, 160, 157, 144, 156, 155, 164, 158, 160, 158, 159, 167, 160, 157, 157, 161, 158, 164, 167, 158, 164, 158, 162, 157, 157, 160, 168, 157, 161, 161, 162, 160, 160, 162, 162, 160, 158, 162, 160, 158, 161, 159, 162, 158, 157, 163, 158, 159, 163, 164, 163, 164, 160, 162, 160, 158, 161, 160, 161, 160, 164, 161, 161, 158, 151, 156, 157, 159, 162, 162, 162, 157, 160, 162, 156, 160, 163, 159, 160, 159, 155, 156, 165, 161, 156, 164, 161, 163, 164, 155, 156, 160, 164, 160, 159, 160, 162, 159, 161, 159, 165, 160, 158, 160, 160, 162, 162, 156, 163, 160, 160, 166, 158, 160, 161, 158, 161, 161, 158, 160, 155, 158, 163, 160, 162, 159, 162, 155, 162, 160, 162, 161, 163, 166, 159, 166, 168, 161, 158, 165, 159, 164, 160, 160, 153, 160, 155, 158, 159, 160, 158, 159, 154, 167, 161, 157, 160, 162, 166, 161, 159, 162, 161, 167, 168, 162, 157, 157, 162, 158, 157, 161, 167, 158, 158, 159, 159, 159, 155, 162, 163, 163, 158, 164, 158, 161, 161, 156, 160, 160, 162, 160, 166, 161, 163, 159, 158, 154, 156, 168, 164, 159, 158, 162, 159, 165, 160, 160, 163, 157, 167, 162, 158, 157, 162, 162, 164, 162, 159, 158, 157, 158, 163, 157, 160, 164, 163, 149, 159, 157, 161, 155, 159, 156, 158, 163, 165, 161, 158, 161, 160, 154, 160, 163, 159, 157, 160, 159, 162, 156, 154, 160, 160, 156, 157, 158, 152, 163, 163, 160, 159, 160, 159, 162, 153, 164, 158, 165, 162, 160, 158, 160, 165, 164, 157, 163, 170, 161, 161, 158, 159, 161, 165, 160, 162, 158, 156, 163, 158, 163, 158, 162, 164, 159, 158, 161, 160, 161, 160, 157, 161, 155, 162, 160, 157, 157, 162, 157, 161, 160, 162, 161, 158, 162, 161, 161, 157, 159, 160, 159, 157, 161, 161, 157, 163, 155, 160, 164, 158, 155, 159, 164, 158, 162, 159, 160, 162, 159, 159, 159, 157, 163, 158, 158, 162, 160, 163, 165, 164, 162, 159, 159, 154, 159, 156, 161, 159, 162, 155, 157, 158, 157, 156, 163, 162, 163, 164, 170, 165, 156, 162, 160, 163, 162, 159, 165, 160, 159, 161, 157, 161, 155, 158, 162, 151, 165, 159, 158, 160, 159, 156, 160, 154, 165, 161, 156, 154, 155, 159, 158, 154, 157, 159, 159, 159, 159, 158, 152, 157, 160, 157, 156, 160, 160, 155, 157, 162, 162, 164, 158, 159, 157, 162, 160, 160, 162, 162, 159, 161, 160, 157, 162, 165, 158, 164, 155, 161, 156, 162, 153, 162, 162, 164, 160, 159, 159, 156, 158, 165, 158, 165, 159, 156, 155, 161, 159, 157, 161, 158, 161, 161, 161, 159, 161, 164, 160, 162, 158, 161, 159, 162, 159, 160, 159, 160, 157, 161, 162, 155, 161, 161, 161, 160, 158, 163, 156, 158, 161, 160, 163, 164, 159, 165, 162, 157, 166, 161, 159, 162, 164, 161, 162, 163, 157, 162, 156, 160, 158, 161, 158, 158, 158, 162, 157, 161, 164, 159, 151, 161, 159, 160, 160, 164, 160, 153, 166, 164, 166, 166, 166, 158, 164, 151, 159, 169, 151, 167, 156, 154, 165, 153, 166, 157, 149, 159, 155, 163, 154, 157, 164, 166, 156, 167, 158, 159, 153, 165, 168, 149, 161, 160, 159, 159, 144, 155, 161, 158, 161, 154, 160, 159, 150, 152, 156, 154, 164, 150, 164, 165, 155, 154, 162, 151, 166, 157, 164, 163, 155, 162, 166, 162, 155, 159, 141, 157, 159, 157, 155, 153, 161, 169, 161, 160, 158, 177, 156, 159, 164, 158, 160, 158, 157, 154, 159, 187, 156, 156, 159, 149, 156, 152, 155, 155, 160, 159, 155, 160, 154, 158, 156, 156, 163, 159, 158, 156, 161, 162, 160, 159, 161, 152, 160, 152, 152, 164, 159, 156, 165, 162, 158, 159, 162, 164, 151, 159, 156, 173, 153, 156, 149, 160, 156, 166, 169, 162, 170, 159, 160, 148, 158, 169, 156, 155, 157, 165, 171, 154, 151, 169, 167, 155, 167, 157, 161, 156, 164, 161, 154, 161, 161, 160, 165, 153, 153, 159, 168, 164, 157, 153, 160, 157, 158, 160, 156, 153, 153, 162, 159, 159, 161, 156, 151, 149, 161, 164, 156, 157, 150, 160, 141, 165, 169, 160, 151, 163, 153, 160, 165, 166, 159, 157, 154, 157, 166, 150, 162, 160, 161, 162, 162, 157, 163, 144, 166, 150, 153, 165, 160, 146, 170, 165, 165, 169, 159, 163, 150, 165, 160, 162, 156, 161, 157, 168, 156, 149, 159, 155, 166, 176, 168, 153, 164, 157, 178, 153, 155, 156, 161, 155, 164, 162, 161, 152, 166, 151, 163, 162, 136, 146, 151, 164, 163, 159, 175, 158, 174, 137, 154, 156, 152, 160, 149, 152, 154, 158, 162, 153, 151, 167, 160, 159, 166, 151, 163, 154, 162, 162, 161, 160, 153, 164, 160, 159, 158, 158, 164, 151, 158, 154, 161, 145, 155, 155, 166, 162, 154, 149, 164, 158, 167, 165, 162, 168, 164, 156, 157, 155, 165, 166, 154, 158, 154, 168, 153, 159, 162, 157, 164, 167, 155, 160, 158, 164, 168, 157, 150, 156, 164, 159, 164, 163, 148, 158, 161, 156, 151, 155, 157, 154, 141, 178, 157, 166, 159, 153, 158, 158, 152, 156, 161, 178, 159, 158, 153, 167, 154, 167, 160, 155, 169, 152, 160, 164, 154, 170, 154, 153, 161, 165, 154, 167, 162, 153, 156, 155, 153, 153, 153, 174, 158, 150, 160, 161, 165, 159, 162, 157, 165, 149, 158, 152, 172, 160, 165, 159, 158, 163, 155, 145, 157, 155, 147, 159, 154, 148, 165, 156, 153, 156, 168, 150, 162, 155, 167, 154, 165, 161, 154, 157, 156, 166, 166, 163, 154, 168, 160, 158, 159, 153, 163, 169, 155, 165, 146, 159, 156, 158, 155, 150, 161, 171, 160, 160, 153, 155, 160, 159, 161, 148, 157, 159, 153, 169, 155, 160, 167, 156, 156, 162, 160, 151, 165, 171, 148, 152, 157, 160, 156, 161, 157, 157, 164, 171, 156, 173, 163, 162, 151, 165, 163, 159, 155, 159, 164, 161, 163, 154, 172, 161, 167, 159, 160, 164, 152, 168, 156, 156, 163, 164, 153, 164, 150, 149, 170, 156, 150, 161, 152, 158, 159, 156, 166, 171, 164, 162, 170, 176, 161, 163, 151, 157, 159, 160, 164, 156, 168, 164, 166, 165, 166, 153, 151, 154, 174, 155, 177, 162, 158, 157, 158, 147, 160, 153, 168, 165, 168, 159, 158, 153, 156, 153, 172, 162, 160, 162, 171, 157, 151, 163, 151, 167, 167, 153, 161, 159, 158, 167, 161, 159, 158, 164, 143, 151, 159, 158, 152, 151, 154, 159, 163, 168, 161, 159, 156, 154, 158, 150, 163, 156, 156, 156, 154, 149, 160, 154, 157, 153, 158, 162, 164, 167, 160, 158, 152, 166, 167, 162, 171, 160, 159, 167, 168, 163, 154, 163, 152, 159, 163, 159, 166, 164, 164, 154, 164, 171, 170, 150, 157, 164, 158, 154, 178, 162, 154, 160, 163, 166, 163, 154, 150, 166, 160, 163, 157, 155, 162, 166, 164, 164, 159, 159, 152, 169, 167, 164, 148, 157, 149, 158, 165, 152, 156, 153, 153, 159, 160, 164, 145, 158, 161, 158, 163, 161, 168, 166, 159, 170, 171, 157, 161, 160, 154, 172, 160, 157, 162, 156, 155, 161, 162, 155, 171, 158, 159, 161, 154, 155, 173, 161, 153, 151, 155, 157, 178, 168, 160, 166, 164, 166, 157, 150, 155, 165, 147, 168, 154, 149, 151, 154, 159, 147, 152, 157, 156, 161, 160, 160, 153, 160, 166, 171, 163, 150, 150, 150, 166, 167, 148, 162, 154, 172, 153, 170, 160, 160, 148, 152, 155, 155, 158, 169, 170, 158, 159, 173, 163, 152, 162, 151, 162, 160, 163, 165, 164, 157, 156, 171, 168, 172, 163, 159, 189, 155, 159, 163, 161, 155, 151, 168, 159, 153, 159, 155, 151, 164, 153, 148, 168, 163, 160, 166, 157, 162, 158, 159, 159, 155, 164, 150, 163, 153, 161, 152, 160, 163, 156, 173, 165, 158, 165, 171, 160, 162, 169, 168, 150, 159, 160, 162, 158, 162, 150, 153, 161, 156, 170, 156, 159, 166, 161, 165, 168, 158, 160, 151, 160, 161, 161, 160, 158, 154, 157, 160, 166, 156, 164, 160, 150, 157, 157, 159, 158, 161, 154, 151, 155, 160, 156, 157, 153, 170, 158, 158, 160, 157, 167, 159, 156, 154, 164, 162, 169, 158, 163, 162, 156, 165, 157, 164, 160, 155, 154, 151, 157, 153, 159, 154, 154, 177, 157, 167, 154, 153, 158, 157, 160, 156, 154, 158, 163, 172, 162, 166, 170, 159, 154, 165, 157, 171, 167, 163, 166, 165, 163, 165, 162, 153, 146, 173, 166, 151, 164, 161, 160, 156, 157, 169, 162, 165, 149, 156, 163, 148, 170, 158, 153, 146, 170, 166, 151, 160, 160, 158, 159, 163, 143, 142, 162, 159, 147, 151, 161, 160, 161, 156, 162, 157, 164, 166, 150, 165, 158, 157, 156, 155, 161, 154, 161, 165, 167, 153, 154, 155, 160, 151, 171, 162, 149, 148, 162, 169, 156, 162, 147, 151, 172, 153, 152, 157, 147, 166, 158, 156, 162, 155, 146, 155, 161, 152, 159, 151, 162, 164, 162, 151, 160, 165, 161, 160, 164, 167, 162, 165, 167, 159, 164, 161, 159, 157, 156, 158, 160, 158, 155, 154, 168, 156, 159, 160, 161, 160, 154, 157, 160, 162, 159, 176, 161, 162, 161, 166, 161, 163, 159, 162, 161, 160, 162, 160, 167, 162, 161, 164, 155, 159, 155, 169, 163, 164, 161, 166, 162, 161, 163, 160, 156, 159, 168, 156, 165, 161, 161, 157, 161, 159, 168, 154, 165, 166, 162, 158, 158, 158, 166, 161, 153, 155, 156, 163, 166, 165, 159, 162, 161, 169, 155, 166, 161, 159, 157, 158, 162, 161, 154, 167, 160, 156, 163, 161, 158, 163, 159, 157, 158, 161, 159, 161, 163, 157, 158, 155, 154, 155, 160, 163, 159, 161, 160, 164, 161, 165, 163, 163, 161, 162, 159, 160, 156, 164, 162, 157, 161, 163, 160, 155, 158, 162, 161, 161, 156, 161, 163, 161, 161, 159, 169, 164, 158, 166, 162, 161, 161, 166, 167, 158, 159, 159, 163, 159, 157, 158, 157, 164, 160, 160, 157, 156, 161, 169, 160, 157, 159, 157, 160, 157, 157, 163, 164, 159, 149, 161, 160, 162, 162, 160, 161, 165, 159, 167, 166, 162, 160, 161, 160, 165, 167, 164, 160, 161, 157, 166, 162, 160, 159, 161, 164, 161, 163, 164, 154, 161, 166, 156, 161, 161, 167, 153, 166, 163, 161, 158, 161, 164, 163, 165, 160, 167, 160, 156, 157, 164, 162, 163, 164, 161, 162, 164, 154, 158, 161, 164, 157, 164, 154, 162, 157, 157, 163, 161, 160, 159, 164, 163, 158, 159, 158, 161, 158, 161, 164, 160, 157, 160, 160, 168, 168, 164, 156, 156, 157, 159, 155, 158, 164, 162, 159, 165, 162, 168, 162, 165, 156, 152, 160, 157, 159, 163, 156, 164, 157, 162, 157, 160, 164, 155, 164, 154, 164, 154, 158, 161, 162, 162, 161, 162, 163, 157, 161, 158, 159, 163, 148, 157, 154, 160, 157, 164, 161, 169, 157, 162, 165, 158, 160, 159, 161, 164, 159, 156, 161, 147, 157, 159, 164, 164, 158, 164, 163, 161, 161, 161, 160, 159, 159, 164, 162, 162, 159, 163, 159, 157, 163, 161, 162, 165, 162, 160, 165, 164, 159, 160, 163, 160, 162, 158, 163, 164, 159, 162, 159, 161, 162, 166, 159, 162, 161, 164, 155, 159, 157, 154, 156, 160, 165, 158, 158, 160, 160, 166, 165, 167, 149, 157, 157, 164, 156, 156, 165, 158, 159, 161, 161, 164, 164, 160, 161, 156, 158, 163, 158, 161, 158, 166, 157, 163, 163, 156, 158, 163, 159, 158, 157, 161, 167, 165, 157, 160, 163, 159, 157, 158, 167, 168, 159, 161, 159, 160, 167, 87, 157, 165, 159, 156, 160, 162, 162, 162, 159, 160, 162, 160, 163, 157, 161, 165, 155, 163, 161, 158, 155, 167, 158, 162, 157, 158, 160, 162, 166, 160, 163, 156, 159, 162, 156, 158, 161, 156, 153, 158, 161, 163, 157, 160, 159, 164, 150, 164, 160, 158, 157, 161, 156, 170, 158, 159, 161, 160, 161, 156, 162, 164, 160, 169, 162, 163, 158, 162, 166, 153, 166, 156, 158, 165, 159, 156, 162, 163, 166, 162, 162, 155, 160, 150, 165, 162, 165, 154, 160, 158, 159, 157, 172, 161, 157, 170, 163, 160, 170, 154, 156, 160, 154, 167, 155, 159, 167, 161, 160, 156, 171, 161, 165, 158, 162, 164, 158, 171, 153, 158, 150, 156, 156, 168, 153, 154, 155, 161, 154, 158, 155, 171, 160, 153, 159, 154, 154, 151, 167, 156, 176, 162, 155, 159, 155, 160, 161, 162, 155, 152, 159, 165, 158, 159, 169, 158, 173, 161, 160, 162, 163, 162, 162, 164, 167, 174, 166, 154, 162, 164, 162, 159, 157, 169, 159, 159, 160, 163, 162, 158, 159, 163, 161, 156, 160, 160, 159, 154, 172, 160, 163, 166, 166, 170, 164, 164, 157, 161, 151, 160, 171, 163, 157, 149, 159, 157, 162, 158, 161, 162, 151, 168, 163, 163, 162, 150, 160, 167, 157, 165, 158, 148, 171, 158, 167, 158, 164, 151, 150, 159, 165, 158, 163, 157, 160, 168, 165, 163, 160, 165, 159, 159, 161, 159, 154, 160, 166, 166, 150, 163, 171, 160, 150, 172, 157, 161, 159, 161, 156, 172, 160, 161, 164, 155, 161, 161, 163, 157, 169, 159, 166, 171, 163, 158, 160, 160, 159, 158, 154, 157, 160, 170, 162, 154, 161, 163, 166, 161, 157, 157, 167, 173, 172, 157, 165, 171, 163, 158, 155, 149, 161, 156, 154, 154, 161, 158, 156, 165, 169, 162, 157, 160, 161, 165, 163, 159, 162, 162, 159, 162, 159, 159, 165, 162, 159, 159, 159, 163, 161, 168, 163, 153, 155, 151, 166, 155, 160, 161, 159, 162, 157, 163, 159, 163, 158, 163, 154, 160, 162, 163, 160, 157, 154, 163, 158, 161, 160, 155, 169, 155, 152, 161, 155, 167, 163, 155, 151, 163, 171, 166, 163, 150, 168, 167, 158, 159, 164, 165, 163, 158, 157, 156, 172, 158, 164, 162, 158, 163, 157, 164, 161, 164, 162, 172, 156, 159, 161, 162, 156, 159, 164, 159, 166, 161, 159, 157, 158, 154, 160, 153, 168, 148, 154, 169, 160, 160, 154, 163, 156, 148, 153, 167, 160, 162, 161, 170, 170, 156, 155, 158, 161, 171, 149, 160, 173, 158, 168, 151, 159, 164, 172, 162, 154, 163, 160, 156, 160, 160, 159, 164, 160, 155, 155, 173, 157, 173, 172, 158, 158, 161, 172, 163, 170, 155, 157, 162, 153, 163, 157, 155, 159, 153, 158, 171, 138, 166, 168, 164, 161, 167, 163, 167, 150, 165, 166, 158, 155, 170, 174, 159, 157, 160, 155, 164, 161, 157, 159, 160, 163, 153, 152, 167, 167, 155, 172, 161, 163, 162, 162, 159, 161, 161, 156, 164, 152, 152, 161, 165, 156, 158, 174, 168, 166, 161, 156, 167, 156, 151, 158, 159, 150, 152, 155, 157, 156, 160, 164, 157, 166, 176, 155, 149, 159, 160, 157, 172, 153, 164, 162, 155, 159, 159, 156, 157, 166, 161, 159, 168, 152, 158, 160, 166, 161, 159, 159, 152, 159, 164, 159, 144, 160, 162, 156, 167, 157, 161, 158, 160, 160, 160, 157, 147, 161, 163, 157, 158, 162, 159, 167, 158, 158, 167, 156, 166, 149, 156, 160, 169, 151, 153, 168, 160, 171, 156, 164, 160, 162, 161, 165, 157, 159, 157, 169, 169, 162, 149, 159, 154, 161, 157, 160, 162, 167, 153, 157, 145, 161, 157, 160, 164, 153, 156, 177, 173, 160, 157, 160, 159, 159, 160, 168, 159, 158, 159, 150, 157, 165, 158, 151, 157, 149, 161, 158, 164, 157, 160, 164, 163, 161, 159, 153, 155, 148, 159, 158, 163, 144, 161, 159, 153, 161, 157, 160, 161, 149, 165, 168, 163, 162, 155, 166, 158, 164, 162, 162, 153, 159, 154, 157, 159, 152, 153, 160, 153, 157, 167, 157, 161, 160, 166, 157, 156, 148, 171, 158, 162, 161, 162, 160, 155, 163, 166, 163, 159, 166, 160, 158, 152, 160, 152, 162, 158, 159, 156, 167, 163, 157, 169, 158, 144, 166, 163, 161, 165, 158, 155, 161, 156, 156, 162, 160, 164, 164, 158, 158, 159, 154, 157, 160, 159, 161, 163, 156, 162, 156, 160, 157, 154, 147, 161, 171, 161, 161, 156, 172, 149, 158, 164, 162, 165, 167, 164, 163, 165, 161, 158, 160, 164, 159, 162, 159, 156, 159, 151, 166, 153, 152, 166, 159, 165, 163, 158, 151, 167, 163, 158, 147, 161, 164, 156, 161, 156, 150, 168, 160, 157, 156, 164, 164, 163, 159, 157, 160, 160, 167, 153, 161, 155, 156, 155, 164, 164, 160, 165, 154, 156, 161, 155, 160, 168, 159, 166, 161, 165, 152, 149, 162, 164, 166, 149, 161, 157, 150, 166, 161, 155, 152, 158, 153, 161, 163, 161, 162, 164, 168, 164, 165, 160, 158, 153, 162, 157, 160, 160, 161, 168, 160, 150, 163, 163, 158, 147, 157, 159, 171, 158, 159, 158, 151, 153, 155, 166, 162, 153, 161, 157, 166, 157, 163, 158, 154, 154, 154, 167, 166, 169, 153, 152, 151, 162, 163, 163, 160, 159, 156, 158, 160, 160, 153, 155, 154, 159, 164, 154, 160, 165, 152, 163, 150, 160, 168, 154, 152, 167, 154, 158, 157, 161, 160, 158, 169, 155, 161, 159, 158, 166, 156, 154, 159, 160, 161, 160, 152, 166, 168, 161, 160, 159, 159, 159, 156, 167, 160, 169, 168, 165, 163, 165, 164, 155, 164, 164, 158, 151, 154, 160, 153, 155, 154, 155, 162, 159, 154, 157, 155, 169, 161, 148, 162, 148, 172, 159, 160, 163, 166, 169, 169, 162, 164, 167, 163, 158, 154, 152, 159, 152, 156, 174, 157, 157, 162, 160, 150, 157, 160, 161, 153, 168, 155, 154, 158, 161, 158, 158, 154, 164, 159, 161, 161, 158, 158, 168, 167, 158, 164, 165, 155, 162, 163, 155, 170, 156, 156, 156, 156, 171, 159, 147, 164, 152, 170, 171, 161, 156, 160, 164, 154, 167, 159, 149, 154, 160, 167, 155, 158, 164, 163, 162, 152, 160, 157, 161, 156, 164, 170, 160, 167, 165, 156, 157, 154, 161, 160, 157, 160, 159, 156, 158, 149, 169, 161, 157, 151, 154, 156, 170, 165, 161, 154, 159, 154, 157, 158, 173, 158, 165, 163, 163, 156, 153, 153, 164, 158, 158, 166, 162, 156, 156, 158, 155, 164, 152, 160, 161, 152, 159, 165, 166, 164, 162, 158, 165, 151, 166, 155, 171, 159, 154, 145, 154, 158, 173, 155, 165, 146, 158, 158, 169, 163, 167, 152, 155, 154, 154, 163, 165, 159, 159, 164, 158, 164, 164, 165, 164, 156, 160, 166, 160, 159, 161, 163, 160, 166, 153, 164, 161, 151, 156, 165, 157, 160, 160, 162, 150, 147, 164, 160, 152, 152, 164, 156, 159, 159, 157, 159, 167, 173, 161, 156, 164, 161, 160, 162, 163, 162, 155, 169, 165, 155, 165, 160, 158, 159, 156, 158, 163, 159, 165, 148, 160, 161, 165, 162, 164, 151, 152, 158, 164, 153, 158, 156, 153, 160, 159, 162, 159, 157, 141, 152, 163, 151, 151, 163, 164, 163, 169, 151, 157, 161, 161, 166, 155, 163, 156, 159, 157, 137, 148, 163, 149, 161, 162, 155, 155, 163, 156, 156, 161, 158, 158, 169, 166, 161, 167, 154, 154, 159, 163, 158, 149, 155, 158, 165, 166, 163, 156, 165, 159, 152, 155, 171, 158, 169, 173, 158, 155, 159, 161, 155, 154, 164, 163, 168, 162, 164, 164, 170, 183, 157, 145, 157, 160, 150, 154, 161, 165, 162, 155, 162, 162, 145, 157, 163, 155, 157, 156, 158, 162, 158, 167, 173, 163, 169, 161, 186, 168, 167, 158, 161, 159, 160, 159, 154, 151, 160, 156, 164, 160, 156, 162, 153, 161, 151, 174, 162, 158, 154, 161, 167, 155, 152, 157, 157, 156, 164, 161, 160, 160, 153, 181, 159, 157, 166, 174, 162, 154, 154, 161, 156, 165, 155, 155, 162, 155, 154, 161, 154, 161, 154, 161, 160, 154, 161, 155, 156, 162, 167, 161, 156, 161, 161, 153, 160, 161, 149, 166, 163, 159, 157, 155, 157, 153, 152, 151, 166, 161, 161, 157, 164, 153, 162, 158, 156, 160, 160, 160, 154, 168, 163, 157, 156, 160, 150, 162, 156, 163, 165, 162, 158, 156, 155, 157, 156, 163, 161, 154, 156, 166, 155, 158, 162, 165, 164, 163, 158, 160, 175, 161, 143, 169, 165, 158, 163, 162, 154, 160, 159, 159, 161, 158, 154, 162, 152, 166, 158, 163, 162, 166, 158, 146, 159, 160, 159, 157, 159, 159, 156, 157, 154, 154, 152, 166, 156, 162, 161, 158, 161, 152, 162, 170, 152, 160, 165, 163, 159, 161, 166, 151, 159, 163, 161, 163, 165, 160, 152, 161, 157, 159, 171, 151, 156, 161, 163, 164, 153, 161, 167, 156, 157, 169, 152, 161, 154, 160, 160, 159, 163, 159, 163, 161, 160, 161, 149, 155, 163, 155, 158, 170, 166, 158, 163, 152, 154, 155, 164, 159, 167, 156, 155, 156, 156, 167, 159, 164, 156, 159, 154, 155, 156, 158, 148, 153, 164, 162, 154, 168, 162, 172, 160, 162, 156, 157, 158, 158, 156, 160, 167, 154, 157, 156, 151, 161, 156, 157, 153, 160, 172, 157, 164, 156, 150, 161, 157, 146, 160, 166, 161, 163, 150, 160, 161, 153, 161, 162, 156, 162, 158, 158, 157, 153, 154, 156, 160, 169, 153, 162, 161, 153, 155, 154, 161, 163, 160, 159, 164, 167, 163, 160, 155, 158, 162, 160, 152, 156, 160, 159, 158, 167, 161, 162, 161, 166, 155, 158, 157, 161, 154, 164, 160, 161, 161, 160, 159, 155, 159, 155, 163, 159, 159, 161, 157, 163, 155, 160, 161, 168, 158, 162, 160, 181, 160, 158, 160, 158, 163, 159, 154, 157, 159, 159, 158, 161, 158, 152, 165, 158, 157, 156, 167, 158, 165, 153, 154, 156, 155, 161, 161, 168, 161, 157, 160, 156, 160, 160, 163, 160, 162, 155, 156, 159, 158, 162, 155, 165, 158, 160, 159, 157, 152, 158, 160, 155, 161, 157, 163, 164, 166, 159, 160, 160, 171, 164, 158, 158, 157, 153, 158, 161, 160, 152, 158, 141, 156, 162, 156, 162, 158, 161, 158, 163, 168, 163, 161, 165, 154, 160, 161, 160, 162, 163, 169, 151, 155, 158, 154, 159, 159, 165, 158, 156, 162, 160, 166, 160, 159, 156, 157, 157, 159, 163, 157, 157, 164, 156, 155, 164, 159, 161, 160, 157, 163, 161, 159, 160, 147, 148, 163, 166, 161, 159, 162, 160, 169, 159, 160, 162, 157, 162, 161, 157, 159, 149, 153, 162, 164, 161, 155, 164, 156, 156, 167, 159, 163, 158, 157, 161, 166, 157, 156, 155, 159, 156, 160, 159, 161, 156, 159, 166, 159, 154, 158, 158, 154, 162, 157, 160, 161, 163, 154, 153, 155, 155, 162, 160, 157, 156, 163, 159, 158, 160, 160, 155, 159, 163, 154, 161, 162, 158, 163, 160, 185, 155, 159, 163, 156, 162, 154, 160, 158, 151, 167, 158, 162, 163, 159, 160, 161, 168, 158, 166, 154, 159, 164, 160, 156, 155, 160, 154, 155, 161, 156, 165, 164, 156, 156, 159, 166, 158, 163, 154, 155, 161, 157, 155, 154, 162, 157, 167, 157, 152, 160, 159, 164, 161, 156, 162, 159, 159, 159, 160, 163, 159, 160, 153, 159, 159, 154, 163, 190, 161, 157, 165, 154, 162, 162, 152, 159, 157, 170, 157, 157, 162, 165, 158, 158, 160, 158, 158, 154, 166, 157, 161, 163, 179, 160, 153, 159, 160, 160, 158, 162, 161, 159, 151, 160, 154, 155, 139, 158, 181, 153, 159, 156, 160, 158, 159, 152, 186, 169, 156, 178, 174, 150, 158, 157, 162, 169, 158, 155, 156, 158, 160, 158, 151, 162, 164, 160, 159, 162, 155, 160, 159, 159, 161, 150, 157, 155, 162, 152, 171, 154, 163, 162, 157, 159, 155, 155, 162, 159, 160, 142, 155, 158, 158, 163, 161, 158, 159, 159, 160, 167, 157, 162, 161, 160, 157, 162, 160, 159, 157, 162, 167, 164, 154, 152, 150, 149, 161, 155, 165, 161, 161, 155, 155, 153, 159, 162, 156, 156, 159, 153, 160, 157, 152, 164, 154, 159, 158, 161, 162, 160, 156, 168, 158, 161, 154, 166, 161, 160, 160, 163, 157, 158, 154, 158, 159, 158, 162, 149, 162, 163, 164, 161, 152, 158, 154, 157, 155, 161, 156, 165, 155, 160, 161, 161, 166, 158, 158, 159, 161, 154, 160, 165, 160, 160, 161, 170, 155, 170, 157, 155, 167, 168, 159, 156, 162, 158, 154, 164, 162, 157, 158, 156, 161, 170, 164, 160, 160, 202, 165, 170, 160, 161, 151, 164, 162, 156, 158, 158, 155, 154, 160, 159, 161, 162, 179, 178, 163, 167, 163, 157, 157, 157, 175, 156, 162, 150, 158, 159, 157, 168, 162, 159, 154, 155, 159, 157, 158, 159, 155, 155, 160, 162, 164, 161, 156, 162, 161, 157, 157, 158, 166, 155, 145, 157, 157, 169, 163, 156, 160, 160, 153, 159, 155, 164, 156, 167, 161, 158, 163, 165, 162, 164, 164, 161, 165, 164, 150, 162, 156, 159, 160, 157, 169, 160, 164, 159, 163, 157, 165, 160, 161, 161, 167, 165, 171, 163, 159, 154, 161, 160, 161, 163, 159, 156, 181, 162, 154, 161, 157, 159, 153, 150, 166, 160, 151, 167, 166, 157, 163, 161, 162, 163, 168, 165, 164, 159, 163, 159, 162, 163, 160, 157, 161, 164, 162, 157, 160, 154, 155, 162, 163, 167, 157, 165, 164, 157, 163, 160, 151, 165, 157, 166, 161, 165, 155, 160, 165, 161, 158, 158, 168, 161, 162, 152, 164, 159, 157, 152, 167, 158, 162, 159, 163, 158, 166, 161, 173, 164, 158, 156, 163, 156, 159, 156, 155, 163, 158, 167, 161, 176, 161, 154, 167, 158, 156, 158, 158, 164, 155, 157, 163, 158, 161, 164, 159, 159, 163, 163, 159, 167, 159, 162, 162, 160, 171, 170, 166, 155, 166, 157, 158, 156, 149, 166, 161, 164, 160, 160, 163, 156, 156, 161, 161, 159, 162, 160, 160, 163, 162, 155, 159, 154, 156, 156, 165, 162, 159, 155, 165, 162, 157, 164, 163, 159, 160, 155, 159, 164, 162, 158, 156, 157, 163, 155, 157, 159, 162, 159, 163, 160, 162, 164, 157, 161, 161, 159, 164, 158, 158, 155, 158, 160, 157, 162, 158, 160, 164, 163, 160, 163, 165, 157, 153, 156, 165, 147, 161, 159, 161, 160, 156, 163, 164, 156, 160, 161, 164, 157, 161, 162, 166, 162, 160, 160, 155, 159, 159, 166, 165, 162, 160, 161, 158, 164, 167, 159, 163, 155, 163, 166, 167, 161, 159, 168, 150, 155, 161, 162, 164, 162, 160, 162, 159, 165, 158, 158, 166, 171, 166, 153, 160, 163, 162, 143, 167, 156, 156, 160, 163, 158, 156, 159, 156, 158, 161, 163, 162, 161, 142, 165, 162, 160, 162, 162, 158, 166, 159, 148, 149, 161, 161, 163, 157, 162, 163, 166, 164, 156, 155, 163, 157, 161, 162, 165, 160, 158, 175, 157, 154, 161, 163, 163, 165, 144, 159, 161, 157, 158, 163, 176, 154, 159, 159, 155, 164, 162, 160, 161, 167, 152, 165, 155, 158, 168, 163, 152, 160, 164, 151, 154, 170, 156, 160, 168, 153, 154, 159, 156, 160, 169, 158, 161, 164, 161, 162, 157, 167, 160, 154, 161, 159, 176, 162, 154, 156, 164, 159, 156, 154, 157, 168, 161, 164, 150, 163, 155, 167, 161, 159, 117, 169, 158, 167, 155, 158, 167, 162, 163, 161, 164, 162, 157, 158, 159, 165, 164, 160, 161, 167, 162, 160, 170, 164, 166, 157, 158, 160, 151, 157, 151, 153, 156, 158, 174, 167, 160, 160, 156, 159, 163, 157, 159, 151, 157, 170, 170, 170, 150, 164, 154, 161, 157, 163, 166, 157, 161, 163, 151, 145, 161, 161, 165, 158, 160, 165, 165, 164, 165, 157, 155, 168, 157, 160, 165, 157, 159, 168, 158, 166, 159, 149, 159, 163, 164, 164, 159, 157, 160, 162, 162, 163, 158, 149, 156, 159, 159, 172, 160, 157, 161, 166, 161, 161, 163, 162, 154, 156, 160, 164, 162, 160, 163, 158, 158, 166, 160, 157, 159, 161, 160, 158, 158, 162, 157, 141, 165, 163, 165, 160, 166, 161, 162, 169, 163, 159, 147, 156, 157, 160, 156, 159, 164, 162, 159, 155, 161, 159, 159, 159, 165, 161, 160, 165, 158, 162, 160, 153, 161, 159, 158, 157, 155, 159, 161, 161, 163, 155, 170, 158, 163, 157, 169, 162, 159, 167, 163, 174, 158, 160, 182, 154, 157, 158, 160, 157, 159, 159, 162, 159, 169, 152, 151, 155, 163, 161, 169, 160, 159, 162, 160, 160, 165, 163, 163, 158, 161, 156, 171, 164, 169, 160, 156, 156, 154, 156, 164, 167, 155, 154, 157, 167, 158, 155, 169, 159, 162, 163, 160, 158, 156, 162, 166, 163, 163, 162, 169, 154, 163, 161, 158, 161, 157, 155, 166, 151, 168, 161, 167, 157, 161, 155, 169, 167, 158, 161, 167, 162, 162, 160, 156, 162, 167, 162, 165, 158, 160, 165, 161, 164, 165, 164, 156, 165, 161, 163, 160, 164, 160, 157, 160, 163, 160, 159, 156, 158, 158, 157, 159, 170, 163, 168, 165, 155, 164, 170, 157, 159, 167, 167, 163, 157, 162, 155, 161, 151, 160, 159, 164, 159, 160, 159, 158, 172, 162, 164, 160, 168, 165, 152, 159, 154, 153, 162, 162, 150, 158, 153, 158, 156, 164, 157, 164, 152, 160, 160, 164, 162, 155, 157, 155, 170, 157, 164, 158, 155, 160, 157, 162, 148, 161, 166, 163, 161, 161, 167, 169, 160, 156, 159, 154, 160, 163, 170, 166, 163, 162, 159, 161, 161, 162, 155, 162, 161, 169, 157, 167, 160, 157, 162, 155, 169, 163, 161, 161, 162, 158, 173, 165, 162, 156, 159, 163, 158, 166, 165, 165, 154, 167, 164, 161, 165, 163, 154, 158, 158, 162, 162, 173, 162, 162, 164, 164, 167, 162, 153, 161, 157, 160, 160, 160, 162, 158, 153, 160, 157, 155, 161, 163, 158, 172, 160, 164, 157, 156, 158, 161, 159, 161, 163, 155, 168, 169, 158, 166, 161, 165, 166, 165, 155, 172, 172, 162, 154, 168, 163, 166, 161, 157, 153, 177, 164, 158, 162, 164, 166, 164, 164, 158, 163, 158, 162, 157, 163, 158, 157, 157, 166, 160, 153, 160, 159, 159, 158, 154, 168, 162, 167, 162, 170, 158, 164, 163, 166, 164, 158, 164, 160, 171, 166, 161, 161, 155, 161, 167, 167, 163, 144, 162, 164, 162, 161, 161, 166, 163, 155, 151, 147, 158, 170, 156, 156, 162, 165, 157, 166, 163, 162, 158, 162, 155, 162, 163, 166, 163, 159, 160, 162, 158, 164, 156, 158, 165, 162, 159, 163, 156, 157, 160, 160, 154, 165, 168, 159, 159, 160, 154, 160, 159, 162, 163, 158, 158, 159, 157, 162, 160, 163, 162, 168, 162, 159, 170, 169, 160, 163, 163, 162, 157, 160, 159, 161, 157, 153, 160, 159, 157, 162, 168, 155, 156, 160, 159, 158, 160, 157, 163, 161, 160, 160, 154, 153, 165, 166, 164, 166, 155, 157, 160, 158, 160, 162, 165, 158, 160, 160, 151, 166, 165, 159, 158, 153, 161, 164, 157, 159, 163, 162, 159, 162, 163, 158, 168, 166, 165, 158, 154, 163, 166, 155, 164, 167, 163, 155, 164, 159, 159, 164, 161, 158, 156, 160, 155, 158, 161, 168, 163, 168, 157, 154, 159, 160, 167, 159, 156, 161, 161, 157, 157, 157, 169, 168, 160, 159, 161, 159, 163, 170, 163, 157, 158, 166, 160, 162, 164, 160, 161, 165, 158, 165, 160, 167, 157, 152, 163, 164, 160, 161, 157, 159, 166, 156, 166, 167, 161, 157, 154, 160, 160, 159, 153, 157, 159, 155, 168, 163, 167, 157, 158, 155, 165, 152, 166, 159, 168, 157, 162, 163, 162, 156, 164, 163, 160, 159, 158, 159, 159, 162, 161, 169, 159, 164, 159, 165, 153, 164, 155, 156, 164, 162, 162, 157, 163, 164, 161, 161, 153, 161, 165, 161, 156, 155, 157, 161, 160, 162, 155, 168, 160, 166, 168, 162, 158, 161, 163, 162, 163, 166, 162, 168, 163, 161, 165, 159, 162, 157, 162, 163, 165, 169, 169, 161, 164, 158, 156, 160, 157, 162, 151, 162, 161, 159, 164, 164, 160, 163, 155, 159, 164, 161, 161, 159, 164, 163, 163, 161, 157, 166, 157, 162, 161, 159, 161, 160, 156, 161, 163, 157, 164, 168, 161, 161, 160, 163, 153, 160, 160, 159, 158, 161, 160, 153, 162, 153, 160, 160, 163, 154, 160, 165, 167, 159, 158, 173, 156, 155, 160, 160, 158, 163, 161, 164, 160, 158, 166, 161, 161, 160, 157, 156, 161, 159, 159, 163, 164, 159, 165, 160, 165, 162, 159, 164, 157, 157, 159, 165, 160, 163, 166, 156, 163, 166, 160, 159, 162, 171, 161, 160, 164, 159, 165, 163, 160, 154, 159, 167, 164, 154, 154, 153, 158, 158, 166, 156, 160, 166, 162, 155, 159, 163, 160, 165, 155, 159, 165, 159, 159, 160, 157, 166, 160, 159, 163, 147, 154, 160, 172, 160, 162, 163, 164, 163, 161, 160, 165, 159, 161, 163, 154, 160, 158, 149, 162, 161, 165, 157, 165, 160, 159, 165, 163, 160, 163, 167, 163, 158, 163, 161, 167, 158, 162, 166, 159, 166, 160, 159, 164, 163, 162, 163, 164, 160, 160, 151, 161, 165, 161, 159, 156, 154, 159, 161, 157, 161, 151, 160, 160, 164, 160, 158, 166, 159, 159, 156, 161, 163, 148, 160, 153, 153, 160, 158, 160, 158, 166, 171, 162, 159, 157, 160, 160, 158, 155, 165, 161, 165, 163, 161, 163, 159, 162, 161, 156, 158, 165, 154, 163, 152, 166, 161, 164, 164, 157, 154, 166, 165, 149, 160, 160, 160, 155, 153, 165, 157, 160, 163, 160, 155, 161, 158, 155, 162, 158, 159, 161, 158, 171, 167, 156, 152, 169, 157, 159, 164, 159, 170, 159, 164, 159, 157, 158, 158, 150, 160, 165, 161, 159, 159, 168, 139, 145, 170, 144, 169, 145, 151, 162, 169, 160, 169, 157, 155, 169, 161, 162, 162, 156, 149, 163, 172, 160, 162, 159, 171, 164, 161, 164, 160, 156, 164, 161, 165, 157, 161, 150, 158, 148, 160, 163, 152, 158, 157, 156, 168, 157, 163, 156, 160, 161, 173, 163, 161, 158, 156, 162, 167, 168, 162, 195, 154, 155, 160, 170, 161, 160, 162, 159, 162, 159, 160, 163, 149, 159, 156, 171, 157, 173, 164, 170, 158, 160, 153, 165, 157, 163, 159, 168, 153, 158, 151, 158, 158, 163, 153, 156, 160, 155, 160, 158, 158, 166, 151, 158, 150, 156, 159, 160, 163, 161, 158, 165, 158, 173, 162, 163, 141, 161, 163, 151, 161, 154, 162, 154, 162, 167, 163, 154, 161, 156, 162, 154, 161, 164, 161, 159, 162, 167, 162, 164, 163, 154, 163, 156, 162, 162, 164, 162, 160, 158, 161, 165, 164, 173, 154, 155, 161, 157, 149, 162, 161, 157, 160, 158, 156, 160, 160, 145, 156, 154, 155, 164, 163, 168, 164, 153, 164, 152, 157, 165, 160, 168, 155, 161, 159, 168, 159, 148, 160, 159, 159, 158, 173, 172, 162, 156, 158, 156, 159, 160, 163, 155, 149, 160, 160, 156, 159, 155, 158, 154, 160, 163, 160, 156, 174, 157, 162, 156, 160, 160, 156, 163, 166, 155, 153, 163, 166, 159, 155, 157, 163, 160, 166, 164, 157, 164, 153, 153, 158, 158, 158, 161, 154, 162, 162, 157, 159, 171, 150, 159, 152, 160, 160, 167, 158, 170, 168, 159, 159, 159, 176, 164, 154, 158, 177, 179, 162, 160, 164, 162, 163, 162, 160, 165, 168, 160, 174, 161, 162, 169, 149, 164, 159, 161, 159, 169, 158, 164, 153, 159, 150, 166, 165, 164, 157, 153, 155, 153, 158, 152, 157, 157, 164, 158, 159, 155, 156, 160, 152, 166, 155, 164, 145, 167, 168, 154, 157, 158, 160, 157, 161, 160, 168, 166, 158, 157, 158, 161, 157, 162, 163, 159, 153, 160, 154, 161, 159, 162, 157, 157, 166, 157, 155, 159, 153, 165, 172, 158, 153, 154, 164, 152, 156, 152, 158, 181, 154, 161, 160, 158, 155, 163, 156, 165, 159, 163, 159, 154, 153, 162, 165, 162, 159, 154, 156, 156, 157, 158, 157, 159, 157, 168, 152, 161, 156, 152, 147, 161, 160, 162, 160, 163, 163, 162, 161, 151, 180, 156, 164, 149, 158, 157, 157, 160, 163, 156, 162, 167, 163, 166, 155, 167, 156, 157, 161, 177, 162, 161, 164, 162, 166, 167, 160, 157, 157, 163, 153, 157, 153, 167, 158, 165, 157, 166, 157, 162, 158, 161, 165, 159, 159, 165, 163, 158, 166, 162, 156, 163, 167, 165, 162, 157, 168, 163, 164, 155, 155, 165, 162, 170, 160, 165, 161, 161, 167, 164, 159, 157, 153, 160, 156, 162, 153, 164, 162, 153, 160, 162, 159, 163, 157, 167, 161, 153, 158, 168, 161, 160, 159, 166, 150, 158, 153, 167, 160, 163, 158, 154, 158, 159, 160, 153, 151, 153, 164, 159, 152, 150, 174, 162, 151, 151, 162, 157, 154, 156, 168, 157, 170, 156, 159, 163, 164, 153, 159, 157, 157, 153, 157, 157, 155, 161, 157, 163, 159, 157, 151, 157, 159, 164, 158, 153, 168, 151, 161, 155, 166, 155, 160, 155, 161, 162, 161, 162, 159, 158, 167, 157, 157, 154, 166, 164, 159, 154, 149, 173, 158, 159, 159, 160, 160, 154, 160, 160, 168, 158, 165, 158, 161, 158, 150, 158, 142, 150, 155, 152, 178, 152, 162, 159, 168, 161, 162, 157, 158, 160, 168, 157, 151, 160, 161, 155, 155, 157, 163, 158, 160, 159, 157, 147, 179, 161, 169, 167, 168, 158, 160, 152, 154, 162, 170, 157, 162, 170, 147, 151, 160, 149, 155, 167, 157, 162, 169, 152, 157, 159, 163, 168, 155, 156, 157, 159, 168, 163, 160, 160, 162, 160, 155, 164, 157, 155, 154, 163, 162, 168, 168, 162, 154, 159, 138, 152, 157, 156, 163, 157, 157, 153, 163, 161, 161, 152, 160, 159, 152, 169, 164, 159, 158, 157, 160, 175, 148, 156, 156, 152, 157, 156, 156, 163, 163, 159, 159, 155, 157, 164, 159, 160, 158, 155, 161, 163, 194, 161, 157, 158, 169, 154, 143, 165, 156, 144, 161, 148, 160, 163, 155, 158, 169, 154, 156, 153, 151, 159, 167, 165, 162, 164, 160, 151, 164, 157, 163, 150, 151, 159, 159, 157, 164, 160, 170, 155, 168, 153, 163, 165, 166, 164, 148, 163, 165, 156, 163, 146, 164, 164, 161, 163, 161, 159, 163, 165, 164, 165, 158, 161, 158, 159, 157, 155, 168, 161, 159, 164, 165, 164, 149, 158, 150, 158, 165, 159, 155, 170, 157, 158, 153, 163, 172, 160, 161, 159, 161, 163, 157, 150, 159, 153, 161, 154, 158, 157, 160, 160, 156, 163, 159, 166, 159, 155, 161, 163, 154, 168, 162, 166, 163, 161, 159, 170, 154, 160, 156, 159, 159, 155, 174, 154, 168, 157, 146, 158, 156, 168, 145, 161, 161, 156, 162, 160, 160, 179, 147, 152, 153, 158, 169, 157, 154, 157, 157, 152, 154, 163, 159, 162, 160, 159, 167, 162, 159, 159, 170, 157, 151, 170, 160, 154, 161, 167, 165, 163, 166, 174, 164, 159, 154, 155, 158, 156, 164, 157, 156, 164, 162, 154, 157, 162, 164, 166, 166, 163, 157, 161, 162, 156, 148, 168, 155, 162, 156, 158, 157, 160, 156, 151, 164, 160, 165, 157, 170, 179, 167, 158, 157, 154, 162, 177, 161, 161, 152, 149, 162, 160, 154, 166, 159, 158, 156, 159, 162, 158, 159, 168, 162, 160, 158, 149, 154, 156, 155, 168, 177, 158, 155, 160, 145, 169, 155, 144, 163, 154, 156, 159, 160, 157, 172, 167, 155, 159, 159, 152, 163, 156, 158, 168, 154, 160, 163, 155, 160, 156, 158, 153, 166, 159, 161, 161, 163, 160, 160, 174, 164, 157, 162, 170, 159, 163, 168, 157, 164, 163, 143, 161, 166, 158, 157, 170, 152, 159, 157, 160, 157, 159, 161, 156, 158, 159, 161, 166, 164, 165, 160, 155, 156, 167, 159, 159, 161, 162, 161, 157, 166, 167, 163, 161, 161, 159, 163, 152, 165, 157, 156, 159, 156, 192, 166, 159, 159, 162, 161, 166, 158, 159, 150, 167, 162, 150, 172, 156, 169, 154, 165, 164, 161, 161, 156, 164, 156, 161, 162, 160, 159, 161, 162, 163, 159, 155, 149, 156, 163, 159, 152, 166, 158, 163, 158, 154, 156, 162, 160, 162, 155, 161, 158, 162, 159, 154, 160, 166, 154, 162, 153, 162, 162, 156, 161, 162, 162, 164, 165, 170, 163, 156, 165, 165, 160, 157, 162, 158, 163, 160, 165, 161, 160, 160, 165, 162, 175, 164, 160, 154, 160, 162, 164, 171, 156, 149, 160, 157, 161, 161, 169, 158, 154, 155, 170, 163, 159, 150, 163, 172, 164, 155, 155, 166, 165, 165, 158, 169, 159, 163, 161, 160, 161, 160, 163, 157, 145, 160, 157, 155, 166, 155, 165, 158, 158, 167, 159, 156, 162, 160, 164, 160, 160, 165, 163, 159, 158, 160, 166, 166, 160, 161, 163, 161, 159, 169, 158, 162, 168, 165, 164, 152, 164, 164, 154, 160, 158, 159, 165, 157, 166, 161, 167, 166, 161, 158, 162, 156, 161, 154, 155, 167, 164, 162, 157, 166, 161, 159, 156, 157, 160, 162, 159, 165, 170, 158, 163, 163, 170, 152, 162, 163, 164, 158, 156, 165, 159, 167, 161, 159, 166, 161, 158, 155, 153, 160, 156, 164, 158, 150, 164, 143, 161, 158, 157, 158, 155, 159, 160, 167, 158, 169, 167, 159, 161, 150, 162, 157, 164, 168, 154, 159, 157, 166, 157, 161, 160, 160, 159, 161, 164, 163, 158, 158, 161, 160, 167, 156, 168, 156, 156, 162, 163, 159, 165, 158, 160, 162, 155, 154, 167, 161, 161, 164, 162, 156, 160, 164, 159, 170, 159, 156, 162, 162, 158, 158, 159, 153, 154, 163, 151, 165, 168, 156, 160, 154, 162, 162, 161, 161, 162, 159, 155, 166, 169, 162, 159, 161, 161, 163, 161, 165, 159, 159, 158, 163, 162, 159, 160, 162, 159, 167, 159, 162, 159, 153, 164, 156, 159, 159, 160, 155, 161, 159, 163, 166, 158, 160, 161, 153, 161, 163, 156, 160, 166, 162, 159, 162, 160, 158, 152, 159, 157, 161, 162, 155, 158, 157, 160, 167, 153, 167, 163, 160, 159, 160, 152, 167, 159, 160, 161, 163, 160, 156, 161, 160, 156, 165, 162, 159, 159, 157, 159, 162, 160, 155, 163, 160, 162, 160, 161, 164, 167, 168, 161, 155, 162, 165, 149, 160, 162, 173, 161, 162, 160, 161, 160, 155, 159, 159, 169, 154, 164, 165, 154, 159, 154, 164, 163, 162, 167, 156, 157, 162, 160, 160, 163, 155, 166, 162, 163, 154, 156, 156, 164, 159, 158, 161, 157, 158, 166, 159, 159, 163, 158, 158, 159, 160, 144, 160, 160, 153, 147, 157, 155, 159, 161, 165, 162, 154, 138, 153, 160, 162, 159, 162, 155, 159, 168, 159, 150, 163, 160, 160, 159, 168, 157, 168, 155, 160, 164, 158, 157, 155, 150, 153, 160, 158, 168, 155, 154, 157, 163, 157, 163, 161, 158, 156, 155, 164, 146, 157, 169, 157, 157, 161, 162, 156, 169, 164, 167, 158, 160, 162, 162, 151, 161, 154, 161, 162, 157, 156, 159, 164, 162, 155, 157, 157, 168, 150, 165, 168, 156, 150, 168, 158, 156, 159, 156, 156, 181, 161, 148, 164, 157, 153, 166, 165, 161, 162, 152, 163, 164, 146, 165, 157, 160, 181, 165, 160, 165, 168, 162, 159, 166, 158, 158, 163, 166, 158, 155, 153, 162, 162, 169, 155, 157, 159, 165, 160, 161, 160, 171, 163, 157, 166, 164, 159, 161, 156, 161, 152, 158, 155, 159, 153, 154, 170, 157, 159, 166, 152, 164, 174, 170, 169, 160, 165, 158, 155, 163, 164, 169, 162, 159, 161, 163, 160, 161, 155, 150, 169, 159, 154, 144, 160, 160, 149, 174, 160, 155, 159, 157, 159, 163, 151, 155, 167, 164, 151, 161, 164, 158, 162, 156, 153, 153, 157, 167, 158, 156, 159, 157, 156, 158, 161, 156, 156, 161, 157, 160, 157, 158, 160, 163, 164, 161, 157, 159, 135, 160, 145, 166, 155, 173, 166, 161, 163, 158, 170, 163, 162, 163, 156, 165, 165, 157, 157, 169, 149, 157, 153, 162, 166, 168, 160, 164, 155, 161, 149, 158, 162, 163, 151, 157, 156, 159, 162, 164, 159, 165, 157, 158, 168, 154, 162, 158, 161, 165, 161, 150, 159, 151, 161, 162, 163, 157, 162, 165, 159, 154, 165, 161, 155, 160, 158, 174, 153, 158, 151, 168, 162, 166, 164, 155, 167, 158, 161, 162, 161, 164, 161, 152, 157, 163, 155, 162, 159, 156, 156, 163, 149, 157, 162, 165, 164, 164, 160, 153, 158, 160, 158, 164, 158, 157, 164, 157, 155, 159, 170, 161, 148, 175, 153, 159, 160, 163, 152, 165, 155, 163, 157, 166, 155, 160, 166, 164, 158, 159, 157, 158, 166, 158, 154, 167, 184, 167, 159, 165, 160, 167, 165, 154, 154, 164, 161, 165, 165, 155, 148, 163, 162, 158, 155, 154, 178, 163, 165, 157, 160, 160, 167, 173, 155, 160, 154, 156, 160, 161, 168, 154, 164, 156, 162, 163, 166, 156, 154, 161, 158, 160, 159, 160, 165, 161, 166, 160, 169, 164, 153, 155, 157, 157, 157, 152, 154, 168, 171, 166, 162, 156, 168, 157, 164, 171, 163, 161, 158, 158, 157, 169, 164, 157, 164, 154, 158, 148, 156, 159, 158, 164, 153, 160, 156, 167, 154, 160, 170, 162, 157, 160, 165, 165, 162, 162, 152, 149, 170, 160, 170, 156, 164, 160, 156, 167, 163, 161, 156, 166, 160, 164, 160, 158, 162, 157, 160, 164, 161, 173, 161, 149, 162, 154, 162, 171, 167, 152, 160, 168, 159, 160, 179, 169, 158, 160, 163, 165, 159, 163, 157, 169, 160, 157, 148, 160, 153, 158, 161, 158, 159, 157, 168, 160, 161, 161, 161, 158, 155, 155, 159, 162, 161, 158, 144, 161, 154, 166, 158, 156, 165, 158, 154, 160, 163, 167, 161, 147, 153, 151, 173, 161, 162, 169, 157, 149, 154, 154, 155, 152, 159, 146, 157, 153, 163, 155, 158, 164, 164, 155, 159, 166, 165, 163, 149, 157, 165, 161, 155, 162, 158, 165, 165, 159, 160, 163, 164, 167, 157, 163, 160, 161, 168, 155, 158, 161, 162, 165, 155, 154, 154, 156, 164, 148, 168, 166, 157, 163, 158, 158, 159, 158, 172, 163, 165, 163, 152, 156, 159, 160, 160, 157, 161, 170, 163, 155, 160, 163, 159, 170, 166, 158, 160, 160, 163, 157, 154, 161, 161, 157, 161, 189, 164, 163, 152, 155, 157, 159, 170, 154, 151, 153, 155, 154, 162, 167, 159, 164, 155, 157, 155, 157, 148, 153, 165, 153, 160, 165, 153, 161, 163, 159, 170, 164, 157, 162, 162, 156, 153, 160, 161, 154, 161, 171, 154, 156, 159, 161, 161, 175, 160, 162, 168, 163, 159, 161, 162, 159, 166, 163, 163, 146, 158, 166, 163, 156, 154, 167, 188, 162, 171, 169, 170, 164, 160, 161, 156, 161, 152, 156, 157, 162, 160, 160, 168, 164, 161, 162, 154, 147, 165, 164, 161, 151, 164, 161, 161, 161, 153, 157, 157, 161, 160, 155, 155, 156, 169, 166, 162, 161, 156, 155, 162, 160, 166, 164, 154, 158, 162, 158, 157, 164, 159, 164, 157, 142, 149, 162, 158, 159, 162, 157, 167, 160, 162, 147, 163, 160, 167, 163, 160, 164, 167, 166, 164, 160, 152, 161, 172, 152, 161, 159, 164, 166, 148, 162, 160, 159, 155, 162, 166, 153, 161, 164, 153, 156, 150, 163, 157, 166, 153, 144, 158, 154, 155, 165, 153, 168, 159, 165, 156, 164, 160, 160, 165, 175, 162, 160, 156, 149, 158, 160, 155, 164, 169, 157, 157, 161, 156, 143, 157, 158, 160, 161, 148, 167, 165, 154, 158, 157, 161, 153, 162, 152, 161, 152, 155, 163, 146, 165, 157, 175, 159, 163, 160, 157, 148, 162, 153, 160, 166, 155, 165, 158, 158, 166, 157, 152, 163, 170, 154, 151, 156, 182, 156, 153, 167, 157, 159, 163, 174, 160, 155, 164, 161, 163, 148, 157, 160, 156, 159, 153, 164, 164, 159, 161, 159, 164, 151, 158, 158, 161, 163, 167, 155, 162, 158, 166, 156, 162, 157, 162, 154, 167, 166, 164, 163, 163, 184, 167, 164, 158, 149, 164, 165, 156, 166, 150, 164, 155, 158, 162, 156, 158, 157, 153, 167, 159, 162, 157, 169, 161, 159, 153, 157, 159, 144, 159, 157, 153, 170, 162, 136, 162, 166, 153, 165, 165, 155, 167, 151, 154, 154, 149, 174, 169, 153, 166, 166, 156, 170, 149, 164, 165, 161, 156, 158, 164, 148, 161, 158, 168, 159, 158, 158, 160, 161, 166, 162, 157, 161, 158, 155, 154, 160, 159, 164, 160, 155, 162, 160, 154, 157, 159, 162, 161, 158, 163, 159, 161, 151, 156, 166, 160, 160, 163, 161, 163, 158, 164, 150, 155, 155, 154, 167, 165, 155, 147, 160, 171, 162, 150, 154, 155, 161, 171, 155, 160, 160, 171, 162, 161, 158, 165, 155, 160, 159, 157, 162, 158, 158, 166, 161, 158, 159, 164, 160, 150, 186, 153, 161, 156, 155, 166, 157, 160, 162, 159, 156, 152, 160, 160, 156, 161, 159, 162, 165, 155, 167, 161, 160, 160, 165, 164, 159, 160, 164, 155, 161, 160, 161, 159, 165, 162, 156, 158, 159, 158, 162, 164, 174, 156, 161, 162, 149, 163, 160, 163, 154, 158, 154, 155, 163, 160, 158, 167, 162, 156, 167, 168, 161, 159, 158, 158, 155, 149, 163, 160, 157, 162, 155, 166, 143, 157, 153, 164, 158, 159, 158, 160, 165, 159, 160, 164, 159, 162, 160, 161, 180, 158, 152, 156, 155, 149, 158, 161, 163, 153, 162, 147, 178, 161, 160, 159, 163, 161, 165, 156, 153, 157, 159, 152, 157, 165, 166, 164, 162, 152, 167, 161, 157, 167, 163, 166, 160, 167, 167, 165, 162, 159, 164, 162, 161, 157, 160, 152, 159, 162, 162, 159, 157, 160, 155, 160, 165, 149, 158, 154, 158, 157, 164, 159, 154, 161, 155, 162, 162, 159, 161, 162, 159, 153, 159, 159, 159, 161, 153, 172, 161, 145, 163, 161, 162, 160, 157, 161, 163, 158, 154, 165, 164, 166, 157, 161, 158, 154, 156, 157, 163, 164, 160, 164, 162, 162, 155, 160, 159, 160, 161, 166, 162, 159, 163, 160, 160, 157, 155, 160, 160, 165, 158, 159, 159, 162, 163, 162, 162, 157, 155, 158, 156, 158, 161, 162, 163, 169, 164, 159, 161, 147, 153, 161, 165, 164, 160, 157, 151, 150, 163, 159, 163, 158, 159, 155, 158, 162, 165, 158, 157, 163, 159, 160, 163, 164, 159, 154, 160, 156, 159, 160, 153, 149, 156, 159, 156, 155, 160, 159, 158, 157, 165, 159, 158, 159, 165, 164, 158, 152, 156, 159, 163, 158, 159, 153, 159, 159, 155, 160, 170, 160, 160, 158, 155, 161, 161, 163, 163, 160, 160, 161, 157, 159, 157, 157, 155, 162, 168, 158, 156, 159, 156, 160, 159, 161, 165, 159, 155, 162, 158, 147, 158, 154, 162, 160, 154, 167, 154, 159, 157, 154, 162, 154, 161, 152, 157, 153, 157, 158, 161, 157, 156, 159, 161, 162, 163, 163, 156, 170, 172, 158, 153, 161, 164, 161, 160, 159, 156, 166, 169, 157, 152, 157, 157, 165, 159, 161, 157, 159, 168, 164, 165, 157, 153, 162, 160, 155, 166, 151, 162, 153, 157, 161, 152, 155, 154, 156, 152, 156, 160, 159, 162, 159, 157, 155, 159, 160, 161, 161, 160, 157, 162, 159, 166, 156, 163, 166, 161, 162, 159, 161, 156, 158, 161, 160, 156, 157, 162, 159, 159, 160, 161, 159, 157, 161, 163, 156, 159, 161, 163, 156, 157, 154, 163, 161, 157, 151, 160, 154, 163, 155, 168, 156, 162, 155, 160, 154, 154, 163, 159, 155, 156, 156, 163, 159, 157, 160, 146, 167, 153, 158, 159, 155, 159, 158, 165, 149, 164, 155, 167, 158, 162, 161, 162, 165, 160, 159, 161, 159, 172, 167, 153, 157, 164, 161, 160, 158, 149, 151, 157, 156, 159, 158, 163, 161, 162, 162, 162, 164, 158, 161, 161, 163, 166, 158, 156, 166, 156, 165, 160, 157, 157, 160, 160, 162, 153, 158, 168, 166, 160, 161, 157, 157, 150, 159, 160, 167, 160, 145, 162, 152, 165, 159, 162, 158, 166, 163, 160, 160, 146, 159, 145, 160, 163, 161, 156, 165, 165, 162, 163, 159, 163, 164, 154, 160, 156, 161, 160, 162, 164, 170, 166, 165, 167, 149, 158, 161, 150, 163, 141, 169, 158, 158, 161, 160, 164, 160, 167, 164, 159, 159, 158, 164, 165, 148, 163, 162, 159, 158, 159, 160, 162, 160, 156, 162, 159, 158, 158, 145, 157, 157, 157, 154, 155, 163, 159, 166, 161, 157, 160, 154, 156, 165, 159, 156, 158, 173, 160, 157, 151, 155, 168, 162, 158, 158, 159, 167, 165, 164, 154, 155, 158, 176, 154, 158, 159, 156, 157, 158, 162, 173, 167, 162, 164, 158, 152, 165, 160, 166, 161, 136, 157, 163, 169, 168, 154, 164, 162, 164, 154, 156, 159, 166, 155, 162, 154, 166, 155, 162, 162, 159, 166, 160, 160, 155, 157, 160, 148, 159, 165, 153, 168, 164, 156, 158, 162, 158, 163, 161, 163, 162, 157, 151, 161, 166, 166, 155, 161, 157, 166, 164, 159, 159, 156, 154, 161, 153, 162, 155, 160, 160, 153, 165, 157, 164, 164, 159, 163, 164, 166, 160, 159, 156, 152, 165, 157, 153, 160, 140, 167, 155, 161, 166, 161, 162, 159, 171, 153, 172, 156, 158, 161, 152, 160, 158, 180, 148, 160, 166, 165, 161, 167, 156, 155, 157, 164, 165, 166, 153, 162, 164, 159, 158, 169, 161, 161, 156, 158, 174, 162, 158, 150, 151, 156, 156, 156, 160, 163, 156, 162, 155, 153, 152, 156, 161, 155, 160, 146, 154, 155, 165, 157, 168, 160, 165, 163, 173, 156, 172, 155, 168, 138, 158, 151, 157, 162, 161, 173, 161, 155, 167, 160, 162, 159, 163, 153, 170, 165, 154, 158, 161, 160, 159, 156, 155, 162, 158, 163, 159, 162, 159, 164, 169, 159, 162, 159, 164, 163, 157, 163, 166, 146, 155, 154, 165, 164, 165, 160, 159, 157, 152, 157, 160, 165, 163, 162, 159, 157, 157, 163, 157, 164, 163, 158, 155, 157, 162, 172, 142, 161, 159, 147, 165, 160, 162, 157, 155, 155, 163, 158, 161, 162, 168, 154, 159, 154, 161, 152, 152, 160, 154, 160, 164, 163, 145, 157, 172, 164, 166, 188, 159, 154, 155, 152, 155, 163, 160, 168, 160, 157, 162, 158, 158, 155, 168, 171, 155, 153, 159, 159, 159, 153, 157, 156, 161, 157, 155, 160, 152, 159, 162, 166, 163, 160, 161, 164, 153, 163, 151, 160, 160, 166, 167, 168, 157, 159, 159, 158, 160, 168, 154, 158, 157, 158, 170, 160, 157, 170, 161, 164, 156, 163, 180, 164, 165, 162, 157, 169, 164, 168, 151, 158, 162, 155, 154, 159, 155, 149, 160, 156, 163, 159, 151, 160, 164, 159, 149, 158, 161, 166, 159, 160, 167, 167, 145, 159, 159, 153, 155, 164, 166, 160, 158, 162, 154, 163, 158, 159, 161, 160, 163, 161, 160, 162, 159, 160, 161, 159, 158, 162, 156, 159, 163, 159, 158, 163, 159, 157, 161, 168, 162, 160, 161, 156, 157, 161, 160, 160, 164, 160, 157, 165, 159, 163, 163, 160, 157, 157, 157, 159, 157, 157, 160, 148, 164, 157, 157, 159, 159, 164, 160, 157, 157, 161, 162, 154, 160, 167, 161, 155, 162, 167, 163, 160, 157, 159, 161, 161, 152, 155, 158, 161, 158, 161, 158, 163, 157, 161, 161, 164, 165, 159, 162, 160, 159, 158, 157, 158, 158, 169, 158, 162, 159, 155, 161, 163, 160, 161, 159, 164, 157, 158, 161, 157, 151, 159, 161, 156, 160, 159, 163, 161, 162, 161, 157, 160, 156, 160, 156, 164, 152, 163, 161, 160, 161, 159, 168, 171, 162, 167, 164, 168, 169, 157, 159, 160, 160, 161, 161, 160, 159, 162, 163, 154, 161, 164, 160, 164, 158, 162, 158, 162, 157, 157, 162, 162, 163, 163, 163, 157, 150, 161, 164, 157, 150, 161, 165, 159, 160, 160, 157, 165, 161, 158, 161, 156, 163, 161, 163, 162, 155, 157, 143, 156, 169, 158, 161, 163, 161, 162, 162, 158, 164, 156, 153, 158, 162, 157, 162, 165, 167, 157, 164, 160, 155, 158, 156, 163, 166, 155, 162, 160, 165, 156, 159, 161, 162, 158, 163, 147, 153, 158, 165, 165, 157, 167, 163, 158, 160, 163, 156, 160, 163, 159, 161, 163, 160, 157, 160, 160, 160, 171, 159, 161, 157, 162, 165, 160, 168, 161, 173, 157, 158, 158, 159, 159, 158, 161, 159, 161, 161, 160, 155, 163, 161, 158, 164, 167, 156, 158, 161, 165, 165, 165, 159, 162, 163, 164, 160, 155, 159, 161, 162, 158, 160, 160, 162, 164, 164, 155, 160, 159, 167, 162, 158, 162, 163, 161, 162, 161, 167, 158, 162, 161, 158, 161, 163, 161, 161, 162, 161, 166, 156, 164, 160, 160, 162, 158, 160, 161, 160, 161, 160, 156, 162, 159, 159, 156, 163, 164, 159, 159, 161, 162, 162, 155, 154, 162, 161, 160, 160, 159, 158, 160, 160, 159, 157, 159, 157, 153, 156, 161, 164, 159, 150, 158, 170, 162, 159, 152, 166, 153, 157, 165, 166, 158, 155, 160, 160, 167, 160, 161, 158, 153, 161, 156, 160, 153, 162, 159, 162, 160, 164, 165, 159, 159, 157, 159, 165, 164, 153, 159, 160, 161, 162, 156, 159, 152, 167, 161, 157, 163, 157, 162, 168, 166, 165, 158, 155, 165, 156, 162, 161, 161, 163, 158, 160, 161, 160, 158, 160, 165, 160, 158, 159, 159, 160, 160, 163, 158, 160, 158, 158, 160, 162, 158, 164, 159, 160, 163, 156, 162, 158, 163, 152, 161, 155, 156, 162, 154, 159, 159, 164, 161, 163, 159, 157, 159, 162, 158, 159, 160, 162, 158, 157, 159, 157, 160, 159, 162, 186, 153, 159, 159, 160, 160, 161, 164, 161, 152, 157, 162, 159, 162, 160, 159, 163, 165, 161, 164, 160, 161, 161, 161, 157, 158, 160, 157, 156, 166, 174, 159, 163, 154, 167, 158, 160, 157, 168, 163, 157, 157, 158, 159, 165, 155, 164, 154, 154, 161, 164, 160, 163, 161, 163, 164, 162, 161, 163, 157, 162, 158, 158, 161, 160, 147, 161, 163, 161, 162, 147, 162, 161, 144, 164, 163, 161, 156, 154, 152, 160, 160, 158, 163, 158, 162, 156, 160, 159, 158, 161, 161, 163, 161, 157, 159, 151, 164, 158, 157, 163, 157, 177, 165, 152, 163, 160, 161, 159, 157, 162, 162, 163, 160, 169, 173, 162, 150, 163, 156, 159, 158, 160, 161, 157, 161, 162, 159, 161, 160, 151, 163, 165, 160, 158, 158, 173, 163, 161, 158, 162, 158, 157, 160, 160, 160, 160, 162, 159, 148, 156, 164, 154, 172, 164, 159, 160, 160, 165, 161, 161, 166, 158, 159, 162, 163, 158, 164, 159, 164, 155, 156, 163, 158, 164, 159, 159, 163, 157, 156, 166, 158, 157, 162, 158, 160, 169, 162, 161, 158, 161, 158, 161, 162, 160, 161, 159, 163, 161, 158, 158, 163, 162, 164, 167, 161, 160, 162, 158, 163, 160, 162, 158, 163, 162, 164, 159, 155, 158, 161, 163, 163, 158, 153, 160, 164, 160, 154, 160, 158, 169, 159, 164, 160, 171, 157, 163, 163, 154, 160, 157, 160, 159, 157, 161, 160, 167, 160, 162, 161, 164, 162, 158, 162, 145, 159, 161, 162, 162, 161, 164, 161, 158, 147, 163, 158, 166, 156, 162, 155, 163, 160, 157, 162, 160, 160, 159, 157, 147, 142, 161, 162, 160, 160, 158, 163, 163, 157, 159, 160, 158, 177, 158, 157, 154, 154, 155, 153, 164, 156, 160, 159, 163, 151, 160, 167, 168, 159, 159, 157, 160, 163, 158, 162, 162, 150, 167, 159, 157, 166, 161, 162, 156, 155, 163, 156, 150, 164, 165, 164, 159, 159, 161, 161, 166, 157, 157, 160, 156, 154, 163, 154, 154, 169, 157, 156, 158, 176, 165, 157, 149, 159, 156, 159, 160, 175, 161, 162, 160, 162, 161, 157, 159, 161, 155, 166, 154, 160, 160, 159, 159, 156, 158, 162, 158, 162, 160, 169, 163, 164, 139, 162, 164, 157, 158, 163, 157, 164, 162, 152, 159, 155, 160, 167, 161, 172, 160, 164, 159, 165, 163, 158, 159, 159, 160, 164, 157, 156, 159, 170, 164, 157, 166, 160, 157, 160, 158, 161, 164, 157, 166, 160, 156, 170, 161, 161, 161, 160, 157, 148, 156, 163, 154, 158, 158, 162, 158, 160, 163, 158, 161, 163, 159, 159, 155, 159, 157, 164, 155, 160, 152, 174, 162, 157, 161, 162, 158, 166, 159, 157, 162, 158, 161, 158, 156, 160, 159, 161, 154, 159, 160, 160, 162, 159, 161, 157, 159, 169, 156, 160, 153, 158, 167, 150, 160, 160, 159, 150, 158, 158, 160, 160, 159, 148, 165, 159, 163, 162, 160, 161, 161, 157, 156, 156, 168, 162, 157, 157, 155, 157, 164, 161, 159, 162, 164, 160, 160, 156, 162, 156, 164, 157, 163, 165, 165, 155, 160, 161, 168, 140, 162, 159, 157, 160, 170, 169, 165, 149, 159, 155, 160, 163, 156, 162, 156, 164, 155, 157, 156, 157, 160, 170, 154, 159, 166, 165, 152, 161, 160, 145, 163, 159, 168, 155, 160, 162, 162, 154, 162, 154, 165, 159, 162, 156, 159, 167, 156, 161, 172, 170, 145, 158, 168, 174, 163, 161, 157, 161, 170, 162, 158, 150, 157, 156, 162, 154, 161, 162, 162, 158, 169, 162, 161, 158, 159, 164, 165, 163, 164, 159, 155, 164, 164, 163, 169, 169, 162, 162, 160, 160, 160, 149, 150, 165, 158, 158, 159, 156, 158, 156, 167, 152, 156, 169, 157, 164, 162, 161, 162, 160, 160, 159, 148, 161, 163, 157, 159, 163, 162, 148, 166, 165, 168, 155, 161, 159, 159, 166, 158, 157, 139, 161, 154, 169, 159, 163, 160, 163, 159, 160, 158, 165, 169, 159, 153, 158, 145, 155, 157, 163, 153, 160, 173, 160, 162, 161, 166, 155, 157, 160, 158, 159, 158, 174, 160, 167, 160, 165, 152, 158, 166, 150, 151, 163, 155, 164, 158, 152, 160, 155, 157, 158, 163, 156, 158, 154, 158, 166, 164, 166, 157, 157, 154, 165, 158, 157, 160, 161, 164, 158, 162, 156, 158, 163, 156, 172, 158, 175, 158, 169, 153, 163, 175, 158, 157, 154, 164, 164, 163, 157, 173, 158, 158, 153, 162, 162, 156, 160, 170, 162, 161, 165, 166, 158, 159, 158, 152, 161, 163, 167, 156, 158, 164, 161, 164, 150, 162, 161, 156, 158, 147, 159, 166, 160, 167, 159, 156, 155, 155, 159, 160, 166, 157, 168, 160, 153, 166, 160, 154, 156, 154, 163, 158, 163, 164, 155, 159, 156, 160, 153, 155, 153, 162, 164, 160, 158, 163, 149, 150, 163, 161, 167, 159, 161, 156, 149, 162, 154, 145, 160, 165, 156, 155, 157, 152, 160, 162, 145, 162, 159, 163, 164, 163, 170, 158, 163, 167, 155, 153, 162, 153, 164, 154, 154, 161, 159, 161, 164, 158, 164, 167, 158, 155, 160, 165, 153, 153, 152, 161, 160, 161, 163, 158, 158, 160, 160, 165, 150, 159, 160, 163, 158, 151, 152, 158, 160, 156, 166, 162, 158, 158, 169, 163, 162, 154, 159, 154, 158, 151, 159, 158, 161, 163, 155, 155, 165, 164, 166, 158, 152, 162, 152, 161, 153, 157, 155, 162, 168, 156, 162, 174, 160, 172, 162, 157, 168, 160, 162, 163, 160, 160, 154, 167, 159, 152, 163, 159, 162, 148, 162, 159, 154, 161, 165, 156, 163, 161, 154, 157, 164, 166, 163, 157, 160, 160, 159, 156, 162, 151, 160, 164, 153, 163, 160, 158, 164, 153, 155, 156, 164, 160, 160, 156, 163, 163, 152, 159, 164, 156, 172, 148, 160, 159, 166, 161, 164, 152, 155, 160, 150, 161, 159, 159, 162, 182, 144, 143, 152, 161, 157, 161, 161, 156, 162, 169, 154, 160, 154, 167, 158, 161, 159, 166, 161, 155, 162, 158, 160, 153, 163, 157, 160, 164, 167, 164, 156, 162, 166, 162, 129, 170, 166, 170, 156, 153, 158, 158, 158, 166, 158, 146, 161, 161, 164, 161, 157, 163, 149, 156, 155, 163, 166, 160, 159, 158, 153, 170, 163, 160, 168, 150, 159, 162, 160, 160, 157, 151, 151, 159, 159, 166, 161, 157, 156, 151, 164, 159, 165, 163, 153, 163, 157, 168, 166, 165, 161, 162, 166, 164, 158, 156, 158, 165, 158, 159, 176, 153, 159, 162, 152, 154, 159, 156, 154, 162, 164, 160, 158, 163, 163, 158, 174, 160, 155, 158, 160, 164, 149, 158, 160, 149, 158, 168, 155, 166, 155, 158, 158, 157, 165, 165, 155, 162, 153, 156, 161, 158, 167, 160, 161, 152, 159, 153, 160, 157, 168, 163, 159, 163, 159, 159, 158, 161, 165, 151, 164, 159, 156, 157, 161, 156, 154, 165, 161, 166, 155, 151, 158, 154, 158, 161, 163, 162, 158, 165, 159, 166, 161, 156, 161, 172, 155, 156, 160, 151, 159, 156, 152, 163, 160, 160, 167, 169, 158, 158, 175, 165, 151, 169, 157, 160, 165, 158, 158, 166, 165, 164, 156, 164, 159, 166, 158, 155, 163, 158, 146, 167, 153, 155, 162, 162, 167, 159, 152, 160, 169, 162, 155, 164, 164, 152, 161, 160, 169, 160, 159, 164, 160, 164, 162, 165, 153, 163, 162, 163, 163, 159, 160, 168, 165, 157, 170, 168, 155, 165, 159, 152, 162, 158, 166, 157, 158, 158, 156, 161, 159, 157, 166, 162, 159, 151, 161, 162, 155, 158, 155, 158, 155, 157, 153, 157, 166, 159, 162, 156, 161, 164, 159, 156, 164, 157, 156, 158, 162, 161, 158, 179, 158, 161, 160, 163, 152, 160, 156, 169, 157, 155, 162, 157, 157, 160, 159, 166, 147, 155, 159, 156, 159, 164, 165, 156, 167, 158, 163, 163, 171, 158, 159, 153, 154, 161, 165, 162, 159, 157, 166, 174, 163, 158, 158, 161, 157, 158, 156, 152, 166, 156, 172, 151, 159, 166, 167, 169, 154, 160, 156, 152, 165, 156, 164, 155, 158, 160, 163, 173, 160, 172, 158, 162, 158, 157, 163, 156, 158, 167, 151, 157, 159, 155, 162, 158, 165, 158, 156, 153, 159, 161, 168, 166, 158, 162, 169, 160, 161, 164, 167, 160, 161, 155, 170, 164, 161, 163, 161, 159, 160, 163, 163, 159, 168, 159, 158, 155, 159, 163, 161, 163, 159, 153, 163, 158, 167, 168, 156, 164, 158, 166, 153, 149, 165, 160, 164, 163, 163, 152, 159, 158, 166, 145, 152, 151, 168, 163, 155, 169, 164, 159, 159, 164, 158, 167, 168, 167, 154, 158, 162, 156, 162, 162, 157, 156, 157, 160, 171, 168, 161, 154, 156, 159, 154, 157, 168, 162, 162, 158, 161, 167, 163, 158, 160, 163, 161, 153, 161, 157, 160, 157, 156, 153, 155, 166, 162, 156, 159, 166, 158, 165, 159, 157, 158, 156, 157, 160, 160, 157, 156, 163, 154, 158, 167, 161, 158, 162, 162, 152, 168, 166, 161, 166, 161, 158, 154, 169, 161, 157, 156, 155, 159, 170, 159, 162, 167, 163, 158, 163, 162, 158, 160, 160, 159, 168, 157, 146, 164, 157, 164, 158, 159, 160, 168, 167, 150, 153, 161, 166, 162, 160, 160, 154, 154, 152, 158, 150, 158, 150, 164, 160, 160, 145, 158, 156, 161, 167, 166, 156, 161, 161, 161, 162, 157, 156, 161, 159, 162, 162, 159, 165, 168, 163, 157, 156, 164, 166, 162, 160, 150, 158, 146, 158, 169, 165, 162, 150, 169, 160, 161, 158, 159, 135, 164, 150, 147, 160, 161, 159, 161, 159, 163, 163, 164, 174, 151, 157, 156, 161, 159, 166, 162, 157, 171, 155, 165, 159, 153, 166, 159, 161, 154, 161, 161, 163, 157, 160, 154, 162, 161, 173, 168, 169, 165, 165, 162, 158, 159, 150, 156, 158, 177, 159, 157, 171, 152, 157, 177, 161, 161, 162, 146, 152, 160, 161, 162, 157, 158, 157, 160, 163, 159, 150, 151, 146, 164, 167, 161, 162, 156, 163, 161, 161, 157, 158, 156, 146, 152, 153, 166, 159, 162, 164, 165, 152, 172, 162, 157, 160, 156, 161, 163, 169, 162, 159, 158, 181, 153, 161, 154, 162, 155, 161, 154, 159, 169, 161, 156, 159, 156, 160, 165, 155, 166, 160, 159, 162, 161, 152, 160, 158, 158, 172, 164, 162, 163, 201, 157, 164, 163, 160, 163, 160, 159, 169, 164, 151, 166, 155, 156, 167, 161, 156, 160, 161, 159, 156, 158, 164, 162, 156, 164, 157, 182, 155, 159, 159, 168, 163, 152, 159, 139, 154, 163, 153, 159, 163, 166, 166, 157, 166, 163, 161, 159, 163, 154, 157, 153, 169, 159, 169, 161, 157, 159, 166, 157, 181, 159, 165, 163, 155, 157, 156, 158, 148, 162, 163, 172, 160, 157, 162, 157, 158, 163, 159, 161, 157, 154, 164, 158, 150, 160, 147, 171, 159, 163, 159, 154, 156, 157, 160, 159, 156, 161, 148, 161, 166, 168, 145, 159, 161, 155, 171, 162, 159, 162, 157, 159, 158, 160, 157, 172, 156, 163, 156, 162, 161, 163, 166, 161, 153, 163, 159, 169, 149, 169, 159, 158, 157, 163, 159, 161, 153, 165, 158, 170, 153, 160, 154, 161, 160, 158, 154, 146, 164, 169, 159, 155, 160, 166, 151, 155, 163, 162, 162, 161, 161, 158, 151, 163, 160, 164, 159, 148, 160, 170, 162, 151, 162, 161, 164, 155, 161, 160, 158, 160, 157, 150, 162, 163, 172, 151, 157, 158, 149, 158, 161, 163, 161, 158, 162, 150, 162, 154, 156, 160, 163, 158, 165, 162, 160, 155, 162, 165, 165, 170, 157, 166, 164, 152, 167, 156, 164, 159, 164, 158, 155, 161, 159, 165, 152, 154, 152, 161, 151, 165, 162, 155, 169, 153, 146, 154, 149, 172, 158, 154, 143, 159, 162, 156, 157, 162, 162, 167, 152, 160, 160, 162, 165, 161, 155, 158, 163, 161, 162, 156, 167, 153, 156, 154, 160, 161, 150, 156, 162, 156, 163, 164, 150, 176, 162, 150, 158, 161, 166, 157, 150, 158, 147, 165, 165, 151, 154, 158, 167, 163, 164, 163, 171, 158, 165, 175, 162, 155, 167, 162, 165, 162, 160, 158, 166, 157, 162, 163, 154, 167, 161, 152, 160, 160, 164, 160, 152, 164, 158, 156, 160, 159, 158, 161, 163, 163, 162, 160, 153, 169, 155, 156, 161, 157, 165, 165, 158, 160, 158, 168, 149, 161, 151, 156, 157, 159, 170, 154, 152, 143, 163, 163, 157, 166, 156, 162, 163, 150, 150, 153, 163, 158, 167, 166, 155, 161, 163, 160, 160, 161, 163, 145, 163, 157, 171, 148, 156, 148, 160, 160, 161, 160, 162, 156, 151, 163, 162, 168, 153, 154, 163, 160, 160, 158, 154, 160, 151, 150, 166, 154, 159, 156, 158, 160, 162, 155, 160, 161, 170, 161, 158, 157, 159, 159, 163, 165, 155, 160, 158, 159, 165, 152, 167, 154, 157, 153, 149, 157, 157, 157, 162, 160, 159, 158, 151, 161, 160, 164, 164, 159, 163, 157, 159, 158, 156, 167, 161, 169, 155, 162, 159, 161, 161, 153, 155, 159, 155, 166, 160, 156, 152, 168, 159, 160, 156, 161, 163, 157, 165, 162, 161, 160, 155, 157, 164, 156, 171, 150, 156, 155, 156, 156, 159, 162, 165, 159, 150, 164, 159, 162, 160, 159, 164, 159, 167, 156, 159, 157, 156, 156, 160, 161, 162, 158, 158, 158, 162, 159, 164, 160, 181, 167, 154, 153, 163, 155, 167, 149, 159, 170, 158, 156, 162, 160, 162, 160, 165, 159, 153, 156, 154, 160, 159, 169, 152, 159, 163, 158, 155, 161, 176, 160, 157, 160, 158, 156, 157, 158, 166, 165, 154, 152, 162, 157, 160, 156, 161, 158, 160, 158, 166, 155, 155, 158, 160, 152, 159, 159, 159, 135, 179, 154, 159, 165, 161, 160, 156, 165, 155, 177, 159, 163, 165, 156, 177, 154, 155, 158, 158, 156, 159, 167, 155, 162, 161, 162, 160, 161, 157, 155, 149, 162, 162, 161, 157, 159, 160, 163, 164, 162, 158, 162, 163, 159, 159, 150, 155, 171, 153, 159, 159, 166, 158, 155, 156, 171, 174, 157, 152, 158, 151, 165, 165, 171, 165, 154, 166, 165, 165, 155, 154, 161, 163, 165, 160, 156, 153, 161, 151, 161, 154, 157, 159, 165, 162, 158, 158, 167, 158, 164, 164, 164, 167, 160, 164, 163, 161, 162, 157, 164, 165, 166, 150, 154, 160, 153, 152, 168, 154, 160, 152, 165, 174, 167, 156, 154, 165, 163, 158, 160, 158, 164, 165, 161, 158, 170, 160, 157, 162, 153, 165, 161, 160, 161, 159, 155, 157, 151, 159, 163, 155, 159, 156, 158, 157, 153, 154, 158, 156, 162, 159, 162, 160, 158, 154, 159, 160, 158, 152, 160, 166, 155, 166, 162, 162, 162, 162, 171, 159, 155, 161, 159, 163, 159, 161, 155, 156, 162, 163, 158, 171, 158, 156, 160, 177, 155, 155, 164, 155, 157, 163, 162, 158, 161, 158, 165, 155, 162, 157, 161, 166, 167, 156, 166, 157, 161, 159, 172, 166, 162, 160, 157, 161, 162, 164, 158, 154, 163, 157, 147, 155, 151, 160, 155, 161, 160, 167, 158, 161, 152, 153, 155, 171, 152, 155, 159, 160, 158, 152, 156, 163, 177, 162, 147, 158, 160, 156, 158, 159, 165, 165, 154, 155, 162, 156, 157, 162, 160, 163, 166, 165, 163, 157, 162, 162, 159, 158, 156, 157, 159, 155, 152, 166, 163, 166, 158, 155, 170, 156, 154, 161, 159, 166, 159, 167, 160, 157, 160, 157, 154, 153, 151, 160, 160, 155, 172, 164, 157, 162, 164, 163, 153, 162, 162, 160, 163, 160, 155, 155, 153, 141, 156, 153, 161, 163, 162, 162, 171, 157, 161, 166, 157, 158, 162, 167, 164, 146, 177, 149, 166, 160, 158, 159, 160, 151, 161, 167, 162, 166, 160, 159, 161, 174, 150, 162, 160, 153, 164, 154, 158, 158, 159, 155, 159, 155, 162, 156, 166, 159, 159, 164, 173, 159, 157, 156, 164, 170, 160, 167, 167, 154, 166, 166, 156, 158, 159, 166, 155, 157, 147, 165, 160, 156, 153, 166, 160, 163, 158, 159, 158, 154, 160, 160, 157, 154, 158, 152, 160, 159, 144, 152, 161, 169, 155, 160, 156, 161, 167, 159, 157, 156, 167, 149, 164, 160, 158, 158, 169, 159, 160, 166, 168, 165, 157, 164, 164, 161, 163, 176, 167, 164, 155, 156, 157, 155, 162, 164, 158, 158, 157, 176, 158, 160, 156, 156, 159, 159, 163, 160, 157, 155, 159, 159, 160, 158, 164, 167, 161, 160, 162, 158, 149, 160, 157, 161, 151, 154, 157, 157, 160, 161, 165, 160, 156, 167, 153, 155, 146, 165, 154, 153, 160, 157, 163, 158, 168, 160, 157, 157, 152, 161, 182, 160, 156, 164, 159, 158, 157, 159, 155, 180, 165, 162, 156, 158, 162, 167, 161, 154, 149, 157, 162, 154, 159, 166, 171, 157, 158, 158, 163, 166, 156, 161, 164, 160, 166, 164, 152, 154, 161, 163, 159, 164, 157, 166, 160, 154, 152, 162, 161, 158, 164, 153, 160, 152, 156, 154, 171, 165, 163, 151, 166, 163, 161, 169, 156, 153, 156, 165, 153, 165, 163, 161, 155, 159, 164, 162, 148, 170, 161, 157, 154, 159, 155, 162, 160, 160, 156, 164, 152, 156, 153, 160, 166, 154, 163, 155, 157, 155, 156, 163, 155, 160, 165, 169, 165, 152, 150, 158, 163, 157, 158, 157, 158, 171, 149, 156, 156, 160, 154, 170, 154, 150, 162, 174, 159, 160, 154, 155, 165, 162, 157, 164, 157, 163, 157, 155, 160, 157, 164, 151, 170, 173, 154, 156, 163, 164, 158, 156, 165, 159, 165, 156, 160, 158, 154, 159, 165, 161, 160, 162, 159, 160, 162, 163, 142, 168, 159, 165, 163, 163, 156, 157, 153, 158, 163, 162, 156, 163, 167, 163, 168, 156, 171, 156, 161, 164, 156, 157, 147, 155, 158, 159, 159, 154, 162, 158, 156, 158, 159, 158, 165, 152, 151, 155, 153, 157, 164, 163, 154, 157, 157, 157, 159, 158, 153, 168, 159, 163, 158, 155, 163, 155, 159, 159, 159, 159, 158, 159, 168, 145, 160, 164, 160, 166, 162, 162, 161, 163, 169, 154, 154, 166, 159, 164, 154, 163, 157, 157, 155, 156, 161, 155, 164, 162, 157, 161, 170, 155, 155, 172, 177, 149, 155, 163, 163, 150, 158, 160, 161, 157, 162, 157, 155, 163, 151, 151, 163, 153, 162, 160, 138, 147, 164, 157, 163, 155, 159, 153, 150, 160, 158, 151, 153, 151, 160, 165, 164, 173, 163, 153, 153, 161, 154, 169, 165, 157, 162, 161, 176, 147, 166, 152, 155, 170, 164, 169, 157, 154, 162, 160, 162, 162, 160, 166, 158, 157, 161, 157, 159, 153, 163, 167, 158, 156, 157, 157, 161, 156, 161, 167, 160, 160, 162, 152, 152, 156, 160, 153, 158, 155, 167, 153, 154, 162, 159, 158, 156, 160, 150, 163, 152, 171, 160, 162, 158, 169, 156, 154, 161, 162, 161, 180, 156, 164, 167, 166, 164, 160, 156, 158, 152, 152, 157, 154, 150, 164, 161, 159, 161, 153, 161, 142, 155, 161, 157, 152, 161, 154, 159, 160, 158, 164, 161, 159, 163, 168, 161, 146, 152, 167, 162, 162, 161, 155, 165, 157, 160, 150, 165, 160, 155, 160, 167, 161, 154, 161, 165, 163, 155, 167, 154, 159, 165, 150, 154, 148, 158, 163, 161, 163, 154, 162, 164, 160, 162, 164, 161, 169, 158, 168, 154, 164, 166, 162, 158, 158, 159, 163, 169, 149, 158, 158, 160, 163, 165, 162, 162, 160, 156, 151, 163, 165, 150, 160, 177, 159, 149, 169, 159, 167, 148, 160, 156, 157, 160, 164, 156, 160, 163, 160, 157, 163, 169, 153, 154, 164, 177, 155, 163, 173, 160, 164, 153, 164, 161, 161, 154, 163, 152, 157, 165, 171, 156, 161, 166, 161, 154, 156, 159, 168, 153, 160, 160, 146, 155, 165, 160, 165, 154, 161, 159, 161, 151, 171, 155, 160, 169, 159, 152, 176, 159, 160, 159, 166, 155, 150, 163, 147, 181, 156, 157, 162, 156, 161, 159, 155, 158, 163, 158, 157, 152, 161, 163, 157, 160, 163, 159, 154, 153, 162, 159, 155, 167, 162, 159, 157, 157, 158, 162, 148, 158, 159, 154, 164, 158, 160, 158, 158, 158, 153, 162, 159, 161, 152, 161, 153, 158, 175, 158, 161, 158, 165, 162, 163, 160, 162, 157, 163, 153, 167, 161, 162, 159, 158, 153, 149, 179, 162, 153, 156, 163, 163, 158, 163, 155, 151, 166, 169, 161, 152, 159, 157, 165, 158, 164, 147, 156, 160, 155, 151, 156, 164, 157, 155, 166, 164, 166, 167, 155, 173, 162, 162, 162, 157, 151, 153, 162, 147, 162, 158, 158, 160, 154, 169, 139, 153, 155, 165, 154, 159, 157, 159, 154, 162, 160, 155, 153, 164, 152, 159, 160, 147, 149, 159, 166, 145, 170, 155, 157, 162, 167, 165, 163, 150, 164, 160, 154, 157, 161, 157, 158, 140, 157, 163, 159, 167, 158, 157, 156, 162, 159, 164, 159, 164, 161, 153, 157, 151, 152, 165, 178, 158, 156, 149, 162, 149, 168, 148, 166, 166, 167, 158, 156, 163, 157, 161, 175, 154, 167, 155, 168, 167, 158, 158, 161, 158, 157, 161, 154, 148, 163, 161, 159, 155, 158, 160, 158, 161, 160, 159, 174, 162, 168, 164, 170, 172, 157, 165, 156, 166, 162, 156, 154, 151, 156, 159, 155, 155, 159, 159, 158, 161, 162, 160, 161, 153, 153, 160, 159, 155, 158, 163, 154, 136, 168, 164, 161, 163, 159, 150, 155, 170, 161, 158, 166, 156, 162, 169, 160, 162, 154, 161, 165, 155, 160, 160, 160, 157, 161, 163, 158, 155, 164, 158, 161, 172, 160, 163, 176, 160, 162, 160, 159, 159, 159, 161, 162, 168, 155, 165, 166, 158, 158, 159, 158, 167, 160, 174, 148, 162, 157, 162, 153, 165, 160, 160, 163, 153, 160, 164, 166, 156, 161, 156, 173, 160, 155, 163, 160, 163, 164, 161, 154, 167, 162, 169, 158, 156, 165, 168, 155, 162, 159, 157, 159, 170, 159, 165, 159, 166, 165, 163, 174, 162, 173, 163, 156, 161, 161, 159, 160, 159, 157, 169, 156, 161, 156, 160, 162, 160, 162, 163, 158, 162, 166, 161, 161, 164, 160, 156, 160, 158, 166, 165, 166, 161, 161, 161, 163, 162, 155, 151, 158, 159, 163, 165, 159, 159, 161, 165, 158, 157, 161, 164, 169, 162, 163, 161, 151, 162, 159, 156, 156, 159, 169, 158, 158, 156, 167, 159, 165, 164, 164, 159, 162, 160, 160, 155, 160, 164, 156, 156, 154, 171, 169, 170, 160, 162, 157, 157, 163, 159, 162, 163, 159, 157, 165, 160, 151, 151, 158, 160, 158, 151, 159, 156, 166, 157, 163, 165, 163, 158, 162, 157, 164, 164, 164, 156, 163, 161, 163, 160, 162, 160, 159, 160, 167, 165, 155, 162, 146, 166, 157, 159, 168, 161, 159, 167, 172, 166, 158, 162, 164, 162, 159, 160, 165, 169, 159, 163, 165, 160, 155, 156, 157, 159, 159, 160, 167, 167, 163, 164, 152, 155, 160, 162, 161, 157, 162, 161, 169, 161, 156, 159, 154, 166, 161, 159, 165, 165, 162, 158, 160, 153, 164, 153, 165, 161, 164, 167, 160, 169, 155, 149, 163, 160, 164, 157, 156, 170, 154, 166, 156, 156, 162, 161, 154, 156, 162, 165, 162, 161, 162, 164, 169, 162, 162, 165, 162, 163, 159, 165, 169, 161, 159, 158, 164, 165, 161, 162, 164, 146, 161, 159, 160, 158, 155, 167, 161, 163, 155, 159, 165, 160, 165, 165, 161, 161, 155, 163, 161, 171, 164, 162, 146, 161, 163, 155, 153, 164, 158, 160, 162, 166, 163, 159, 167, 163, 165, 163, 156, 157, 165, 160, 157, 159, 144, 157, 159, 168, 162, 165, 161, 166, 159, 162, 161, 165, 157, 163, 161, 161, 158, 157, 161, 155, 163, 159, 163, 168, 161, 153, 161, 165, 158, 163, 171, 171, 164, 170, 161, 160, 161, 156, 155, 165, 161, 161, 159, 163, 158, 157, 164, 169, 162, 164, 160, 154, 166, 156, 157, 159, 158, 169, 164, 171, 156, 161, 168, 160, 162, 164, 162, 167, 158, 160, 161, 160, 161, 151, 159, 166, 162, 158, 154, 160, 163, 161, 165, 165, 162, 156, 159, 165, 167, 154, 161, 149, 168, 162, 155, 163, 162, 161, 158, 162, 164, 158, 160, 168, 161, 161, 165, 158, 157, 155, 162, 162, 162, 157, 175, 161, 162, 174, 162, 156, 159, 152, 157, 167, 171, 160, 154, 160, 161, 165, 163, 158, 172, 165, 160, 161, 169, 174, 165, 162, 155, 157, 166, 158, 163, 157, 160, 166, 160, 161, 165, 151, 162, 164, 161, 157, 160, 166, 157, 159, 154, 159, 162, 157, 157, 156, 163, 158, 153, 160, 161, 160, 158, 161, 162, 158, 158, 162, 160, 176, 160, 161, 162, 151, 159, 165, 163, 166, 166, 162, 161, 166, 158, 161, 159, 157, 159, 164, 160, 154, 163, 158, 160, 162, 163, 165, 157, 163, 163, 165, 161, 162, 161, 153, 161, 156, 160, 158, 172, 161, 154, 159, 154, 164, 151, 161, 166, 161, 152, 158, 156, 161, 166, 165, 165, 156, 157, 157, 162, 167, 155, 161, 161, 157, 160, 160, 164, 164, 161, 148, 156, 176, 156, 163, 158, 152, 170, 162, 156, 162, 174, 164, 160, 163, 159, 161, 158, 164, 148, 162, 165, 152, 164, 148, 156, 163, 155, 160, 162, 160, 162, 154, 157, 161, 160, 158, 165, 159, 163, 161, 155, 161, 163, 160, 163, 168, 159, 159, 158, 158, 156, 161, 162, 162, 162, 160, 157, 156, 163, 157, 149, 168, 160, 161, 162, 166, 162, 164, 162, 160, 158, 159, 159, 147, 161, 161, 149, 164, 164, 167, 161, 162, 157, 160, 157, 164, 154, 154, 152, 161, 159, 158, 163, 158, 161, 157, 159, 160, 158, 157, 158, 174, 154, 150, 161, 162, 163, 156, 152, 164, 157, 163, 160, 159, 161, 160, 162, 157, 157, 151, 159, 161, 160, 166, 165, 158, 160, 164, 163, 158, 158, 165, 158, 166, 155, 157, 162, 158, 158, 160, 162, 160, 148, 161, 160, 161, 160, 158, 150, 158, 159, 163, 163, 158, 159, 159, 158, 162, 155, 159, 164, 157, 151, 162, 162, 159, 163, 156, 156, 159, 161, 155, 160, 156, 161, 161, 158, 161, 157, 157, 157, 160, 160, 161, 164, 154, 164, 170, 163, 156, 162, 152, 152, 160, 166, 163, 162, 156, 165, 154, 162, 158, 160, 158, 159, 152, 159, 160, 163, 160, 159, 164, 170, 162, 164, 160, 159, 158, 164, 153, 161, 159, 159, 160, 160, 167, 161, 159, 161, 151, 163, 162, 163, 157, 155, 155, 163, 165, 156, 161, 158, 160, 159, 164, 167, 161, 162, 161, 163, 156, 163, 161, 158, 163, 167, 175, 164, 153, 165, 163, 161, 164, 158, 163, 161, 158, 161, 156, 159, 151, 160, 155, 158, 162, 158, 157, 161, 161, 157, 167, 158, 159, 163, 170, 163, 163, 156, 155, 157, 169, 169, 163, 167, 163, 162, 161, 164, 162, 162, 159, 155, 158, 160, 158, 162, 157, 160, 163, 158, 165, 166, 160, 162, 162, 161, 158, 156, 158, 164, 154, 168, 159, 160, 160, 164, 157, 164, 159, 164, 162, 156, 159, 164, 160, 158, 156, 154, 160, 154, 153, 157, 162, 158, 163, 166, 156, 174, 157, 162, 156, 158, 158, 165, 162, 158, 158, 159, 156, 166, 161, 160, 160, 159, 153, 160, 158, 164, 157, 159, 162, 160, 171, 164, 153, 163, 157, 159, 166, 157, 169, 157, 162, 165, 169, 166, 164, 159, 158, 159, 165, 159, 161, 158, 162, 157, 158, 164, 159, 167, 158, 163, 161, 147, 156, 159, 165, 165, 161, 157, 171, 154, 163, 154, 154, 158, 171, 151, 166, 158, 158, 153, 169, 173, 163, 154, 155, 153, 159, 160, 148, 151, 154, 158, 156, 156, 167, 164, 161, 154, 161, 164, 151, 152, 154, 153, 158, 163, 157, 151, 152, 162, 169, 155, 152, 164, 159, 165, 164, 168, 166, 158, 158, 158, 161, 162, 157, 153, 162, 159, 161, 164, 166, 170, 162, 156, 156, 153, 157, 155, 158, 153, 155, 164, 167, 159, 161, 155, 150, 170, 160, 157, 161, 156, 161, 159, 163, 160, 158, 163, 162, 164, 164, 158, 162, 155, 153, 159, 166, 166, 164, 162, 152, 149, 177, 159, 159, 160, 152, 173, 151, 157, 167, 154, 159, 165, 167, 157, 165, 158, 154, 143, 160, 159, 169, 158, 171, 163, 157, 168, 162, 162, 155, 159, 160, 162, 155, 158, 160, 160, 159, 159, 167, 155, 154, 158, 161, 165, 184, 159, 157, 149, 160, 153, 162, 156, 167, 154, 155, 161, 163, 168, 177, 160, 183, 160, 161, 158, 155, 160, 160, 172, 161, 163, 166, 157, 180, 153, 162, 149, 155, 167, 158, 160, 167, 158, 155, 162, 154, 150, 137, 147, 153, 157, 162, 158, 166, 150, 160, 159, 154, 157, 162, 164, 155, 153, 168, 181, 153, 166, 161, 154, 167, 157, 161, 169, 164, 158, 156, 161, 161, 159, 163, 160, 159, 155, 151, 159, 165, 162, 161, 157, 158, 153, 161, 152, 162, 162, 152, 157, 152, 155, 159, 159, 171, 154, 167, 163, 165, 163, 164, 148, 146, 161, 157, 159, 163, 160, 168, 162, 159, 161, 163, 166, 169, 156, 166, 180, 156, 158, 157, 159, 151, 149, 165, 161, 158, 158, 158, 164, 158, 153, 164, 158, 159, 143, 156, 155, 164, 162, 148, 160, 148, 156, 176, 159, 159, 173, 161, 157, 163, 159, 156, 152, 148, 160, 166, 157, 151, 162, 161, 167, 171, 150, 163, 162, 166, 163, 164, 157, 153, 159, 168, 167, 165, 162, 164, 168, 170, 167, 158, 160, 153, 155, 175, 165, 162, 160, 150, 144, 157, 170, 160, 163, 158, 165, 161, 152, 158, 156, 157, 162, 147, 145, 154, 156, 161, 159, 155, 160, 152, 166, 145, 157, 157, 151, 159, 158, 155, 158, 156, 150, 157, 160, 158, 180, 169, 164, 162, 163, 148, 160, 147, 193, 152, 167, 156, 164, 157, 157, 163, 157, 150, 177, 164, 157, 158, 163, 162, 149, 171, 157, 160, 158, 157, 160, 159, 148, 157, 168, 160, 161, 154, 155, 154, 164, 160, 160, 164, 159, 149, 166, 148, 150, 170, 164, 159, 161, 170, 161, 160, 161, 164, 155, 154, 159, 158, 156, 162, 160, 147, 141, 161, 156, 165, 161, 174, 158, 166, 170, 153, 162, 161, 161, 156, 158, 163, 163, 156, 158, 158, 169, 157, 164, 165, 157, 162, 162, 182, 149, 158, 154, 158, 157, 155, 157, 160, 159, 155, 168, 154, 155, 161, 158, 158, 162, 159, 169, 153, 161, 154, 158, 163, 147, 175, 165, 170, 161, 156, 159, 162, 159, 166, 164, 167, 156, 157, 163, 163, 162, 157, 157, 156, 166, 156, 158, 163, 160, 153, 160, 159, 153, 171, 163, 154, 151, 148, 161, 164, 165, 160, 162, 163, 158, 159, 161, 155, 160, 159, 159, 164, 163, 157, 172, 162, 163, 150, 153, 159, 164, 162, 158, 151, 162, 160, 164, 147, 160, 163, 173, 163, 165, 157, 165, 159, 161, 148, 156, 160, 163, 166, 155, 163, 154, 167, 155, 162, 154, 163, 159, 156, 166, 163, 160, 162, 164, 161, 163, 152, 153, 161, 164, 158, 160, 158, 162, 156, 142, 161, 153, 167, 175, 156, 162, 161, 163, 169, 160, 152, 159, 163, 159, 164, 166, 156, 157, 157, 153, 160, 160, 157, 162, 155, 154, 159, 147, 162, 159, 158, 163, 158, 161, 161, 156, 153, 159, 158, 155, 159, 151, 160, 161, 158, 160, 160, 159, 162, 152, 156, 169, 149, 164, 169, 161, 161, 162, 158, 161, 169, 156, 154, 179, 161, 160, 166, 155, 146, 160, 164, 159, 166, 154, 159, 159, 154, 163, 152, 163, 162, 168, 159, 154, 169, 157, 161, 164, 157, 163, 166, 155, 162, 163, 168, 159, 161, 157, 164, 155, 156, 158, 152, 158, 168, 161, 161, 161, 166, 155, 153, 166, 158, 159, 162, 168, 159, 168, 152, 157, 159, 160, 163, 154, 157, 159, 163, 163, 163, 159, 160, 162, 161, 167, 155, 158, 168, 159, 161, 160, 162, 164, 164, 160, 163, 172, 156, 171, 160, 159, 150, 162, 161, 164, 165, 153, 155, 164, 159, 153, 161, 162, 161, 166, 163, 160, 152, 154, 163, 152, 172, 164, 152, 161, 164, 162, 162, 158, 155, 160, 158, 152, 159, 158, 160, 159, 155, 160, 167, 161, 169, 157, 167, 163, 155, 155, 171, 155, 170, 152, 167, 160, 168, 166, 151, 153, 155, 165, 156, 162, 157, 162, 152, 165, 158, 164, 159, 155, 165, 157, 163, 162, 158, 154, 153, 158, 163, 161, 167, 173, 160, 163, 159, 158, 161, 160, 160, 157, 161, 165, 158, 164, 163, 165, 158, 162, 148, 160, 160, 161, 157, 163, 160, 163, 162, 157, 157, 163, 154, 155, 169, 164, 159, 162, 166, 161, 153, 158, 159, 151, 160, 160, 157, 165, 156, 155, 161, 158, 156, 168, 163, 157, 163, 157, 165, 153, 159, 160, 169, 160, 158, 160, 156, 174, 158, 152, 145, 153, 163, 162, 167, 147, 159, 158, 161, 156, 161, 161, 154, 148, 159, 163, 163, 148, 163, 154, 164, 157, 164, 168, 166, 160, 164, 160, 159, 155, 167, 161, 148, 157, 167, 159, 162, 164, 152, 157, 148, 161, 164, 159, 174, 160, 157, 155, 159, 162, 154, 166, 162, 158, 160, 156, 162, 138, 162, 163, 163, 161, 156, 157, 164, 155, 158, 164, 163, 163, 154, 151, 161, 162, 158, 160, 156, 167, 166, 162, 164, 160, 172, 155, 164, 159, 165, 163, 156, 162, 153, 158, 162, 150, 160, 156, 166, 164, 158, 157, 152, 168, 160, 165, 170, 159, 153, 160, 150, 167, 170, 152, 164, 163, 158, 154, 160, 154, 157, 158, 155, 160, 165, 152, 161, 158, 154, 164, 167, 156, 155, 157, 157, 162, 155, 155, 159, 157, 172, 161, 155, 140, 160, 153, 163, 160, 156, 163, 164, 160, 160, 163, 171, 165, 159, 170, 169, 155, 156, 161, 140, 162, 150, 160, 165, 164, 156, 156, 154, 159, 149, 178, 165, 147, 158, 162, 151, 160, 159, 167, 172, 177, 159, 162, 161, 146, 156, 159, 155, 148, 158, 157, 148, 157, 173, 166, 165, 148, 166, 162, 163, 165, 161, 158, 162, 157, 180, 154, 144, 153, 162, 163, 177, 165, 166, 168, 164, 153, 146, 153, 163, 142, 146, 153, 143, 156, 158, 144, 154, 168, 157, 153, 162, 159, 158, 156, 180, 163, 149, 153, 175, 160, 164, 169, 163, 164, 160, 154, 154, 155, 158, 163, 168, 168, 167, 162, 156, 166, 158, 157, 163, 163, 159, 170, 159, 158, 159, 166, 165, 159, 158, 162, 160, 175, 153, 154, 142, 155, 162, 160, 161, 153, 154, 154, 156, 161, 159, 156, 161, 157, 162, 145, 168, 162, 162, 164, 160, 157, 148, 163, 150, 193, 125, 155, 148, 152, 149, 154, 150, 158, 158, 164, 158, 139, 156, 177, 162, 149, 166, 155, 160, 141, 161, 160, 156, 163, 151, 150, 167, 156, 163, 150, 162, 173, 157, 148, 155, 164, 161, 190, 162, 168, 171, 166, 158, 155, 163, 151, 162, 148, 164, 168, 164, 146, 165, 159, 156, 164, 148, 160, 157, 150, 165, 153, 166, 176, 168, 151, 155, 162, 159, 156, 164, 141, 161, 147, 163, 164, 158, 160, 158, 151, 146, 157, 160, 162, 161, 159, 183, 167, 169, 163, 156, 152, 158, 155, 157, 178, 182, 150, 169, 168, 174, 154, 174, 149, 158, 181, 148, 155, 165, 159, 163, 157, 156, 160, 152, 163, 172, 161, 154, 154, 164, 155, 162, 162, 153, 158, 156, 155, 162, 158, 164, 168, 144, 160, 148, 154, 158, 171, 153, 156, 182, 180, 160, 155, 171, 159, 150, 170, 155, 165, 178, 158, 170, 137, 165, 152, 159, 166, 163, 163, 172, 164, 159, 160, 162, 153, 161, 167, 153, 163, 165, 155, 161, 166, 145, 154, 160, 160, 160, 167, 154, 153, 168, 158, 162, 158, 162, 161, 173, 160, 159, 179, 156, 173, 161, 165, 154, 158, 163, 163, 154, 150, 149, 162, 154, 165, 178, 162, 157, 167, 170, 166, 152, 158, 150, 153, 156, 146, 154, 161, 142, 169, 167, 162, 165, 164, 150, 172, 161, 168, 159, 153, 165, 158, 180, 161, 157, 164, 158, 158, 154, 161, 153, 162, 159, 175, 144, 150, 164, 171, 175, 166, 166, 179, 161, 157, 158, 163, 159, 178, 143, 162, 167, 154, 164, 175, 145, 174, 160, 155, 153, 151, 157, 159, 157, 162, 163, 172, 145, 154, 190, 158, 158, 147, 162, 165, 144, 160, 160, 163, 161, 158, 155, 163, 160, 158, 166, 144, 157, 173, 155, 164, 175, 160, 162, 161, 159, 155, 172, 170, 150, 151, 150, 163, 157, 152, 163, 160, 163, 160, 166, 157, 151, 150, 176, 156, 164, 160, 147, 162, 170, 153, 157, 164, 147, 163, 169, 157, 159, 157, 162, 162, 162, 158, 164, 154, 161, 152, 159, 164, 160, 159, 160, 159, 162, 159, 155, 162, 162, 155, 162, 155, 170, 164, 155, 159, 151, 157, 154, 163, 156, 160, 150, 151, 154, 160, 155, 159, 158, 158, 166, 152, 164, 161, 159, 149, 160, 162, 166, 166, 156, 160, 164, 158, 156, 159, 175, 158, 155, 158, 159, 165, 159, 165, 156, 155, 161, 173, 159, 156, 165, 172, 166, 159, 154, 166, 154, 161, 155, 165, 148, 159, 155, 155, 144, 162, 165, 165, 162, 162, 161, 149, 163, 178, 157, 164, 155, 162, 146, 161, 165, 164, 150, 165, 155, 164, 164, 164, 160, 158, 158, 163, 173, 163, 162, 137, 154, 162, 162, 155, 151, 171, 172, 154, 158, 157, 165, 148, 158, 166, 150, 163, 156, 153, 163, 163, 158, 162, 161, 158, 162, 158, 159, 164, 155, 169, 166, 158, 165, 162, 163, 154, 167, 160, 160, 159, 156, 157, 163, 160, 164, 158, 163, 157, 165, 157, 151, 160, 177, 150, 160, 155, 155, 156, 155, 164, 155, 160, 156, 160, 157, 153, 165, 163, 165, 147, 170, 192, 158, 165, 154, 177, 166, 163, 170, 160, 161, 158, 162, 162, 168, 164, 155, 159, 161, 161, 163, 156, 157, 153, 162, 159, 152, 170, 152, 160, 161, 158, 159, 154, 165, 157, 149, 158, 157, 165, 166, 155, 155, 154, 148, 154, 159, 160, 160, 161, 150, 158, 158, 158, 163, 165, 164, 162, 156, 155, 164, 158, 162, 168, 157, 159, 155, 172, 151, 159, 165, 153, 158, 160, 168, 161, 158, 164, 164, 165, 161, 163, 146, 156, 156, 176, 162, 151, 147, 152, 159, 157, 151, 157, 157, 166, 160, 154, 159, 152, 165, 165, 163, 166, 168, 171, 150, 155, 156, 165, 165, 162, 162, 164, 164, 162, 164, 160, 166, 164, 161, 163, 145, 157, 159, 162, 164, 163, 160, 162, 147, 159, 162, 160, 168, 155, 157, 141, 163, 153, 155, 157, 156, 168, 156, 162, 156, 159, 173, 164, 156, 165, 157, 168, 154, 154, 157, 163, 160, 147, 163, 156, 156, 163, 169, 153, 151, 164, 156, 160, 179, 159, 159, 155, 164, 157, 166, 165, 157, 154, 156, 152, 172, 175, 157, 161, 161, 152, 155, 151, 156, 160, 165, 162, 154, 164, 163, 156, 149, 157, 163, 154, 166, 156, 172, 163, 151, 164, 158, 168, 156, 156, 161, 154, 163, 156, 172, 157, 155, 168, 157, 171, 157, 156, 160, 160, 156, 159, 153, 168, 165, 155, 160, 159, 171, 159, 166, 156, 153, 158, 156, 157, 164, 156, 166, 155, 157, 163, 166, 158, 167, 157, 164, 170, 156, 149, 144, 169, 151, 166, 163, 152, 160, 154, 156, 159, 155, 162, 160, 161, 169, 173, 166, 160, 154, 166, 168, 153, 163, 151, 164, 155, 157, 160, 163, 148, 161, 152, 165, 162, 170, 155, 164, 153, 159, 159, 175, 154, 167, 164, 168, 165, 158, 160, 157, 159, 160, 162, 163, 152, 166, 160, 151, 158, 163, 161, 164, 162, 166, 153, 160, 157, 159, 165, 157, 160, 163, 159, 154, 158, 165, 157, 161, 157, 161, 164, 163, 161, 161, 158, 160, 161, 163, 158, 165, 152, 164, 156, 162, 163, 148, 158, 163, 157, 154, 161, 158, 161, 151, 156, 162, 161, 161, 166, 156, 161, 156, 162, 158, 162, 164, 168, 162, 163, 161, 158, 160, 159, 163, 161, 157, 160, 151, 160, 161, 153, 154, 157, 151, 159, 159, 162, 157, 165, 158, 164, 171, 159, 163, 156, 161, 165, 162, 158, 155, 159, 169, 162, 152, 159, 156, 161, 161, 163, 149, 157, 159, 158, 156, 162, 163, 172, 158, 166, 159, 159, 174, 160, 169, 159, 161, 160, 161, 159, 159, 161, 151, 159, 164, 164, 157, 176, 161, 166, 156, 172, 157, 150, 158, 164, 160, 156, 163, 159, 165, 163, 159, 169, 163, 155, 160, 161, 157, 158, 146, 157, 159, 158, 162, 166, 165, 159, 161, 162, 160, 167, 170, 153, 149, 159, 160, 160, 163, 165, 157, 153, 156, 161, 156, 160, 162, 160, 163, 162, 154, 161, 158, 163, 151, 164, 163, 163, 159, 162, 160, 156, 162, 176, 160, 155, 156, 158, 159, 156, 158, 159, 157, 152, 159, 156, 162, 159, 164, 160, 154, 162, 156, 155, 164, 161, 163, 157, 158, 162, 159, 165, 160, 156, 163, 158, 152, 157, 162, 159, 160, 156, 164, 162, 154, 160, 156, 166, 157, 155, 161, 157, 159, 163, 157, 150, 145, 159, 165, 167, 159, 164, 157, 162, 163, 153, 166, 157, 162, 161, 163, 163, 151, 157, 161, 165, 158, 165, 156, 160, 158, 154, 164, 161, 159, 164, 156, 163, 160, 166, 166, 165, 154, 159, 161, 157, 163, 161, 161, 163, 162, 165, 165, 161, 159, 163, 156, 160, 170, 163, 162, 173, 155, 161, 163, 158, 158, 157, 164, 156, 161, 161, 166, 162, 158, 164, 159, 155, 160, 159, 162, 163, 160, 160, 168, 165, 163, 159, 157, 162, 155, 157, 157, 168, 161, 165, 167, 162, 160, 156, 160, 163, 157, 160, 162, 160, 159, 162, 148, 166, 163, 163, 158, 160, 159, 164, 158, 163, 152, 165, 155, 158, 152, 161, 152, 163, 162, 157, 164, 156, 161, 157, 157, 160, 156, 153, 156, 171, 159, 171, 160, 154, 158, 164, 158, 152, 157, 159, 160, 161, 166, 162, 157, 162, 158, 161, 162, 162, 158, 162, 158, 160, 159, 160, 166, 153, 162, 165, 164, 157, 157, 162, 157, 168, 161, 159, 167, 160, 163, 159, 157, 159, 166, 163, 166, 165, 164, 166, 162, 163, 164, 157, 162, 159, 155, 160, 161, 168, 157, 151, 150, 171, 159, 146, 153, 176, 154, 154, 163, 162, 159, 162, 155, 164, 160, 158, 156, 154, 160, 155, 159, 161, 162, 156, 167, 158, 159, 159, 160, 157, 161, 161, 155, 156, 159, 157, 160, 169, 160, 158, 158, 163, 168, 163, 158, 169, 161, 161, 160, 167, 164, 163, 159, 160, 162, 154, 170, 152, 159, 161, 157, 161, 160, 160, 160, 156, 161, 156, 155, 151, 160, 159, 154, 152, 157, 161, 167, 160, 162, 161, 159, 155, 174, 167, 164, 163, 160, 149, 164, 158, 150, 161, 163, 157, 173, 171, 165, 163, 154, 148, 155, 154, 155, 156, 161, 155, 155, 157, 163, 160, 164, 152, 162, 159, 165, 169, 159, 159, 150, 157, 163, 169, 166, 149, 157, 160, 159, 167, 160, 169, 168, 160, 158, 157, 151, 154, 156, 155, 170, 159, 166, 159, 167, 151, 156, 152, 167, 159, 162, 159, 154, 161, 157, 150, 160, 165, 153, 163, 157, 166, 164, 170, 152, 156, 154, 162, 163, 165, 158, 146, 165, 152, 172, 160, 161, 166, 156, 163, 171, 157, 166, 158, 162, 160, 163, 175, 157, 161, 157, 168, 162, 166, 161, 150, 148, 153, 164, 156, 164, 162, 158, 158, 157, 164, 161, 166, 161, 161, 166, 161, 165, 155, 158, 161, 158, 162, 163, 160, 168, 160, 163, 162, 156, 165, 162, 153, 162, 165, 161, 160, 161, 160, 153, 168, 161, 152, 161, 163, 162, 160, 166, 171, 159, 163, 151, 169, 155, 167, 161, 166, 170, 157, 166, 158, 167, 178, 158, 165, 160, 169, 155, 162, 155, 165, 157, 160, 160, 157, 153, 154, 159, 165, 165, 159, 163, 158, 166, 168, 164, 163, 159, 156, 160, 166, 161, 170, 151, 159, 161, 150, 160, 164, 161, 166, 156, 158, 164, 160, 156, 158, 165, 157, 155, 167, 151, 161, 159, 163, 167, 163, 171, 164, 163, 164, 160, 160, 162, 159, 162, 162, 159, 169, 161, 161, 154, 153, 157, 171, 158, 160, 160, 163, 163, 166, 161, 163, 165, 164, 161, 163, 162, 172, 160, 162, 159, 170, 168, 156, 160, 162, 159, 163, 162, 150, 160, 167, 162, 165, 166, 149, 157, 159, 163, 164, 161, 160, 165, 161, 156, 156, 162, 163, 169, 171, 159, 168, 160, 168, 159, 160, 163, 164, 155, 162, 159, 162, 163, 159, 168, 161, 168, 156, 164, 167, 158, 163, 153, 166, 166, 161, 149, 153, 160, 159, 162, 167, 154, 164, 158, 158, 160, 168, 163, 158, 165, 154, 152, 160, 156, 158, 155, 162, 164, 154, 167, 164, 163, 161, 165, 161, 175, 165, 159, 155, 162, 161, 158, 171, 168, 156, 155, 164, 158, 166, 167, 162, 163, 154, 163, 171, 155, 154, 156, 157, 150, 166, 168, 161, 157, 156, 155, 162, 160, 158, 158, 157, 162, 149, 163, 158, 157, 159, 160, 168, 167, 162, 169, 160, 152, 153, 161, 160, 168, 156, 166, 160, 164, 161, 159, 160, 151, 164, 171, 162, 160, 165, 161, 161, 154, 163, 149, 161, 163, 158, 160, 157, 168, 165, 153, 162, 163, 172, 161, 163, 157, 164, 156, 167, 153, 168, 160, 162, 160, 161, 167, 160, 160, 163, 158, 161, 163, 161, 164, 160, 157, 166, 170, 160, 158, 165, 168, 163, 161, 161, 162, 160, 157, 158, 161, 157, 159, 152, 157, 171, 158, 160, 160, 167, 157, 149, 161, 150, 161, 167, 158, 154, 164, 165, 177, 160, 154, 161, 165, 163, 168, 163, 164, 165, 166, 163, 166, 159, 160, 146, 163, 156, 154, 159, 162, 160, 157, 156, 152, 162, 174, 159, 156, 165, 160, 155, 163, 158, 164, 153, 163, 160, 161, 161, 162, 160, 154, 163, 164, 162, 166, 161, 161, 160, 154, 158, 161, 166, 159, 157, 165, 161, 157, 159, 164, 158, 158, 145, 157, 159, 160, 159, 164, 160, 166, 156, 161, 160, 155, 155, 159, 158, 160, 162, 163, 157, 163, 158, 162, 157, 164, 161, 161, 157, 166, 171, 160, 161, 162, 157, 164, 162, 167, 156, 163, 153, 163, 159, 160, 170, 157, 155, 161, 160, 156, 161, 160, 158, 160, 159, 161, 162, 170, 160, 164, 164, 163, 161, 158, 165, 158, 157, 161, 157, 162, 161, 157, 179, 155, 162, 160, 169, 154, 158, 154, 162, 151, 158, 160, 159, 161, 160, 158, 162, 162, 165, 155, 155, 159, 160, 161, 162, 175, 163, 152, 157, 174, 158, 157, 160, 151, 162, 160, 159, 161, 162, 164, 157, 160, 158, 158, 162, 163, 160, 165, 160, 150, 160, 168, 163, 156, 164, 160, 163, 158, 163, 158, 164, 161, 155, 160, 169, 158, 159, 160, 165, 161, 163, 164, 164, 158, 164, 162, 162, 161, 166, 160, 159, 159, 158, 164, 165, 161, 158, 164, 160, 156, 151, 150, 162, 159, 162, 166, 162, 159, 156, 150, 159, 164, 162, 159, 160, 159, 170, 163, 167, 157, 153, 163, 167, 160, 161, 165, 157, 155, 157, 157, 161, 154, 157, 166, 155, 159, 146, 155, 162, 159, 157, 163, 161, 162, 155, 157, 159, 170, 160, 159, 164, 182, 162, 159, 160, 168, 149, 157, 161, 160, 165, 157, 162, 156, 164, 158, 166, 159, 167, 159, 162, 160, 164, 157, 160, 157, 158, 161, 155, 166, 162, 158, 153, 161, 160, 164, 160, 160, 161, 152, 150, 163, 161, 159, 157, 148, 159, 160, 166, 166, 164, 164, 162, 162, 158, 157, 160, 160, 162, 159, 160, 159, 161, 162, 160, 158, 170, 162, 155, 159, 166, 158, 161, 163, 160, 160, 163, 167, 157, 161, 163, 157, 164, 156, 156, 161, 163, 158, 161, 162, 158, 161, 160, 164, 163, 158, 158, 165, 156, 164, 158, 164, 155, 161, 158, 159, 162, 160, 152, 157, 160, 159, 163, 163, 159, 154, 162, 161, 162, 157, 158, 158, 158, 162, 157, 160, 157, 164, 161, 152, 163, 158, 166, 153, 158, 158, 157, 161, 160, 155, 161, 173, 159, 160, 160, 164, 161, 156, 163, 156, 164, 164, 156, 159, 154, 158, 155, 158, 161, 156, 162, 160, 159, 162, 175, 163, 160, 158, 157, 160, 159, 150, 166, 156, 157, 160, 152, 159, 163, 158, 162, 157, 154, 164, 160, 158, 159, 156, 162, 154, 160, 160, 163, 156, 164, 157, 162, 162, 158, 166, 159, 167, 158, 158, 164, 160, 157, 164, 158, 160, 161, 157, 161, 155, 159, 160, 155, 159, 157, 159, 159, 153, 157, 164, 158, 167, 166, 156, 158, 152, 160, 157, 155, 157, 159, 156, 157, 159, 161, 156, 162, 161, 159, 162, 165, 160, 165, 162, 154, 160, 155, 161, 161, 164, 163, 163, 162, 164, 162, 158, 162, 167, 155, 159, 158, 155, 149, 160, 170, 165, 161, 158, 164, 165, 157, 151, 156, 158, 158, 167, 148, 149, 160, 170, 160, 168, 163, 160, 161, 156, 167, 164, 157, 154, 159, 155, 166, 171, 161, 171, 175, 148, 159, 159, 157, 160, 175, 150, 148, 158, 166, 161, 159, 150, 167, 158, 156, 157, 179, 163, 160, 158, 160, 156, 160, 158, 160, 167, 162, 149, 157, 155, 158, 153, 160, 158, 160, 143, 157, 168, 152, 160, 154, 158, 156, 156, 151, 151, 162, 163, 165, 165, 154, 154, 162, 144, 155, 155, 158, 163, 158, 157, 169, 156, 156, 170, 157, 162, 163, 151, 154, 166, 152, 159, 155, 149, 150, 158, 156, 165, 163, 161, 155, 167, 161, 159, 152, 159, 155, 162, 151, 158, 167, 161, 165, 153, 157, 157, 168, 156, 161, 163, 161, 158, 155, 156, 161, 156, 159, 164, 158, 164, 162, 147, 166, 155, 161, 163, 174, 163, 143, 164, 172, 160, 155, 161, 169, 152, 161, 168, 156, 146, 159, 151, 159, 152, 152, 161, 159, 168, 180, 157, 154, 152, 152, 164, 156, 157, 149, 153, 155, 158, 158, 154, 164, 151, 153, 162, 159, 158, 158, 163, 165, 166, 155, 175, 164, 147, 155, 165, 160, 166, 165, 160, 156, 152, 164, 161, 172, 151, 159, 151, 154, 163, 155, 151, 156, 165, 161, 155, 151, 153, 148, 165, 159, 159, 166, 162, 170, 168, 161, 163, 160, 171, 156, 158, 154, 164, 161, 163, 154, 156, 159, 165, 151, 165, 159, 164, 160, 163, 155, 155, 145, 162, 162, 161, 155, 158, 165, 152, 167, 146, 165, 164, 150, 153, 159, 163, 166, 159, 164, 148, 158, 161, 164, 174, 157, 161, 159, 164, 158, 161, 161, 158, 173, 155, 150, 146, 143, 159, 155, 156, 161, 176, 156, 164, 154, 172, 153, 168, 170, 155, 159, 151, 155, 158, 156, 174, 157, 167, 152, 169, 157, 170, 158, 158, 153, 155, 158, 162, 157, 164, 160, 157, 156, 157, 152, 163, 163, 154, 161, 164, 160, 160, 161, 158, 151, 170, 153, 159, 152, 148, 151, 160, 144, 155, 166, 149, 154, 159, 166, 162, 156, 153, 161, 163, 157, 166, 162, 160, 174, 165, 153, 159, 159, 155, 161, 167, 163, 168, 153, 159, 160, 153, 163, 166, 161, 164, 164, 153, 162, 163, 172, 162, 147, 169, 160, 163, 155, 149, 152, 153, 159, 145, 160, 159, 162, 163, 158, 154, 155, 159, 152, 154, 162, 160, 166, 154, 144, 163, 175, 174, 162, 159, 158, 160, 178, 168, 151, 158, 169, 158, 161, 161, 155, 151, 164, 158, 164, 172, 163, 160, 149, 153, 161, 156, 155, 162, 166, 153, 164, 157, 167, 167, 164, 154, 161, 156, 149, 162, 156, 166, 153, 151, 167, 159, 162, 154, 158, 153, 149, 165, 161, 154, 155, 156, 155, 155, 165, 164, 159, 161, 161, 157, 172, 157, 156, 163, 155, 154, 163, 161, 162, 153, 153, 140, 154, 157, 161, 155, 168, 167, 156, 151, 159, 187, 163, 154, 156, 151, 164, 156, 159, 149, 151, 160, 164, 150, 172, 164, 154, 164, 162, 152, 163, 162, 156, 153, 158, 172, 145, 161, 159, 165, 157, 161, 161, 175, 156, 167, 165, 160, 166, 154, 153, 157, 156, 154, 163, 148, 175, 161, 167, 163, 157, 157, 151, 166, 156, 155, 156, 176, 160, 152, 167, 157, 164, 164, 154, 176, 161, 158, 165, 166, 165, 168, 153, 153, 157, 164, 153, 159, 163, 156, 160, 151, 162, 166, 158, 156, 159, 154, 160, 155, 158, 159, 158, 169, 157, 156, 157, 159, 150, 172, 154, 164, 162, 154, 164, 155, 156, 166, 163, 174, 164, 159, 152, 159, 166, 149, 164, 159, 170, 157, 160, 155, 161, 155, 161, 157, 167, 164, 156, 154, 150, 166, 169, 157, 154, 158, 161, 157, 157, 154, 159, 167, 154, 173, 169, 166, 159, 157, 161, 163, 165, 151, 157, 165, 152, 161, 150, 163, 164, 165, 157, 160, 163, 152, 162, 159, 166, 164, 161, 159, 157, 158, 161, 156, 161, 152, 167, 154, 155, 155, 158, 157, 161, 162, 163, 151, 150, 163, 155, 156, 152, 158, 161, 165, 164, 153, 161, 162, 177, 150, 155, 156, 166, 155, 157, 160, 156, 165, 144, 166, 162, 166, 154, 161, 160, 159, 174, 154, 162, 159, 157, 156, 162, 159, 160, 156, 161, 159, 161, 164, 157, 162, 160, 157, 156, 164, 155, 153, 165, 159, 158, 162, 155, 153, 171, 172, 164, 155, 154, 158, 160, 164, 158, 159, 152, 168, 163, 165, 152, 152, 161, 161, 162, 167, 169, 164, 160, 163, 163, 161, 156, 160, 161, 168, 154, 162, 161, 157, 159, 160, 156, 151, 156, 155, 161, 158, 156, 158, 159, 162, 154, 158, 163, 160, 142, 155, 156, 157, 158, 158, 158, 150, 159, 159, 167, 157, 167, 160, 177, 165, 155, 155, 152, 163, 167, 151, 157, 153, 154, 155, 169, 158, 166, 156, 152, 154, 163, 158, 159, 158, 157, 144, 161, 157, 163, 163, 148, 155, 164, 160, 158, 151, 147, 154, 175, 165, 157, 138, 158, 154, 152, 170, 160, 156, 167, 158, 163, 155, 164, 143, 144, 152, 155, 147, 165, 155, 163, 160, 160, 159, 160, 160, 167, 160, 162, 161, 158, 166, 161, 162, 168, 160, 151, 164, 154, 161, 159, 155, 157, 157, 158, 162, 160, 162, 168, 164, 163, 159, 154, 172, 157, 160, 162, 161, 157, 164, 153, 151, 164, 161, 158, 151, 160, 155, 154, 153, 150, 168, 153, 156, 157, 155, 160, 156, 161, 160, 164, 158, 163, 153, 160, 155, 159, 159, 158, 161, 163, 153, 167, 159, 162, 167, 163, 165, 166, 161, 169, 158, 156, 155, 161, 155, 161, 161, 156, 156, 155, 164, 171, 166, 170, 162, 151, 157, 158, 156, 159, 152, 153, 157, 158, 163, 155, 154, 160, 161, 154, 157, 154, 169, 152, 164, 160, 161, 170, 163, 156, 165, 158, 166, 158, 151, 154, 161, 162, 165, 155, 157, 153, 180, 150, 158, 155, 162, 155, 162, 175, 160, 159, 160, 162, 165, 156, 166, 154, 153, 149, 159, 156, 161, 156, 156, 158, 145, 168, 162, 158, 154, 159, 164, 168, 155, 162, 166, 162, 173, 149, 159, 159, 161, 162, 156, 162, 166, 161, 162, 155, 158, 156, 160, 159, 159, 160, 164, 163, 160, 161, 156, 164, 159, 160, 169, 156, 153, 159, 153, 156, 162, 152, 157, 164, 156, 163, 169, 143, 154, 158, 158, 159, 172, 159, 153, 168, 165, 156, 161, 160, 153, 160, 155, 159, 157, 110, 171, 159, 157, 158, 157, 149, 159, 146, 166, 161, 161, 155, 165, 157, 156, 154, 161, 162, 166, 160, 148, 156, 166, 165, 113, 167, 161, 156, 157, 161, 164, 163, 166, 155, 160, 172, 163, 163, 163, 164, 159, 150, 157, 158, 161, 148, 155, 159, 167, 156, 159, 161, 159, 168, 159, 161, 161, 158, 165, 162, 158, 164, 161, 167, 152, 156, 202, 158, 176, 165, 160, 157, 154, 162, 156, 159, 162, 168, 161, 156, 158, 161, 160, 168, 160, 160, 178, 161, 152, 158, 150, 159, 152, 150, 158, 155, 151, 157, 154, 145, 161, 160, 162, 161, 165, 166, 158, 169, 165, 159, 166, 167, 160, 156, 155, 163, 156, 154, 163, 162, 163, 157, 165, 160, 167, 166, 153, 157, 165, 159, 162, 153, 161, 151, 165, 162, 154, 160, 159, 160, 144, 156, 155, 158, 160, 147, 152, 157, 165, 166, 166, 154, 159, 160, 161, 157, 159, 160, 194, 163, 169, 158, 177, 164, 157, 158, 164, 158, 162, 160, 163, 159, 163, 159, 156, 143, 117, 162, 157, 172, 160, 163, 167, 155, 163, 149, 162, 161, 156, 152, 159, 163, 162, 162, 162, 150, 160, 157, 160, 156, 153, 165, 174, 156, 159, 155, 148, 170, 167, 162, 156, 156, 162, 161, 161, 165, 144, 159, 163, 169, 160, 163, 165, 160, 165, 156, 153, 155, 164, 155, 159, 161, 154, 163, 159, 173, 156, 158, 159, 159, 160, 159, 162, 157, 159, 163, 164, 167, 157, 169, 160, 157, 165, 152, 163, 164, 173, 155, 160, 160, 160, 159, 159, 166, 160, 160, 160, 162, 157, 158, 160, 167, 164, 154, 157, 165, 158, 167, 161, 160, 158, 159, 159, 162, 159, 160, 161, 163, 165, 147, 150, 157, 158, 164, 155, 162, 158, 164, 164, 160, 160, 153, 158, 158, 168, 172, 171, 160, 162, 162, 156, 163, 163, 157, 154, 170, 166, 155, 163, 157, 144, 160, 165, 158, 169, 187, 163, 156, 160, 144, 163, 159, 163, 156, 162, 161, 161, 158, 160, 157, 157, 160, 168, 165, 159, 170, 160, 157, 161, 164, 151, 99, 161, 161, 167, 155, 157, 154, 158, 159, 169, 175, 164, 158, 161, 162, 167, 162, 163, 149, 163, 165, 160, 172, 156, 153, 153, 160, 160, 150, 167, 165, 166, 161, 155, 164, 162, 170, 159, 161, 160, 159, 155, 156, 157, 155, 154, 162, 160, 158, 155, 160, 154, 155, 169, 161, 160, 159, 160, 152, 159, 156, 158, 166, 163, 186, 153, 163, 158, 156, 163, 158, 156, 157, 150, 156, 158, 154, 160, 158, 165, 160, 157, 159, 161, 150, 164, 160, 163, 170, 160, 151, 155, 159, 168, 160, 163, 159, 164, 161, 164, 168, 155, 155, 156, 161, 157, 163, 162, 148, 168, 177, 152, 161, 160, 165, 158, 164, 164, 157, 161, 169, 162, 162, 155, 160, 156, 156, 160, 159, 161, 167, 164, 154, 160, 157, 170, 160, 165, 143, 158, 158, 153, 165, 166, 156, 165, 153, 161, 159, 156, 162, 161, 161, 155, 158, 160, 153, 162, 174, 164, 164, 163, 162, 163, 159, 160, 166, 154, 165, 166, 163, 160, 161, 146, 159, 158, 158, 158, 159, 159, 161, 169, 160, 166, 156, 158, 160, 163, 159, 157, 161, 158, 164, 160, 163, 161, 163, 157, 157, 160, 165, 168, 153, 160, 164, 159, 158, 158, 159, 154, 159, 170, 151, 159, 146, 159, 167, 163, 158, 159, 157, 160, 163, 157, 159, 165, 152, 164, 166, 171, 151, 157, 167, 159, 157, 160, 158, 158, 175, 154, 155, 162, 160, 163, 158, 157, 147, 157, 165, 164, 166, 163, 180, 157, 162, 167, 162, 160, 164, 158, 154, 161, 156, 171, 153, 153, 154, 151, 159, 169, 158, 158, 158, 156, 158, 162, 162, 160, 176, 154, 164, 153, 164, 153, 164, 155, 167, 162, 157, 159, 161, 167, 150, 161, 154, 165, 158, 156, 163, 150, 145, 158, 167, 163, 164, 168, 169, 156, 162, 153, 158, 161, 157, 148, 157, 157, 159, 155, 152, 157, 156, 156, 163, 159, 163, 154, 153, 163, 154, 157, 158, 166, 160, 161, 170, 168, 160, 159, 160, 158, 158, 162, 162, 164, 155, 160, 158, 157, 158, 151, 164, 159, 158, 154, 157, 146, 160, 159, 146, 167, 164, 163, 156, 161, 161, 174, 158, 155, 154, 172, 160, 163, 165, 147, 158, 160, 137, 157, 164, 152, 160, 161, 136, 156, 157, 153, 167, 154, 154, 159, 166, 170, 169, 159, 157, 158, 163, 160, 182, 146, 175, 155, 171, 156, 164, 149, 160, 159, 149, 160, 148, 161, 165, 156, 158, 164, 163, 166, 159, 163, 183, 164, 154, 158, 159, 162, 160, 165, 160, 157, 156, 161, 154, 165, 169, 151, 159, 166, 168, 158, 157, 148, 156, 158, 156, 152, 163, 158, 157, 157, 163, 170, 156, 158, 165, 160, 154, 161, 157, 158, 150, 157, 150, 160, 166, 170, 161, 158, 161, 157, 165, 166, 160, 147, 158, 157, 165, 153, 165, 156, 162, 161, 154, 155, 158, 171, 158, 158, 172, 160, 155, 156, 153, 161, 155, 154, 160, 161, 158, 162, 173, 165, 161, 154, 157, 159, 154, 163, 157, 167, 154, 157, 160, 152, 156, 159, 160, 154, 154, 164, 167, 161, 153, 156, 150, 152, 159, 167, 156, 162, 160, 159, 159, 156, 158, 150, 161, 162, 162, 158, 160, 161, 149, 164, 162, 165, 159, 171, 161, 165, 158, 164, 160, 164, 161, 164, 164, 159, 159, 159, 163, 159, 166, 158, 159, 154, 162, 158, 162, 168, 162, 158, 165, 157, 162, 158, 155, 151, 161, 151, 158, 154, 161, 145, 153, 164, 154, 162, 151, 158, 169, 176, 169, 163, 162, 160, 167, 165, 164, 160, 157, 147, 162, 161, 163, 151, 158, 161, 168, 159, 160, 159, 153, 159, 157, 163, 159, 171, 159, 158, 157, 156, 159, 161, 161, 160, 147, 156, 162, 153, 161, 156, 155, 173, 157, 167, 156, 158, 161, 159, 169, 164, 158, 158, 148, 164, 159, 157, 159, 149, 163, 158, 169, 161, 162, 166, 162, 157, 157, 167, 161, 158, 157, 156, 156, 156, 159, 157, 153, 155, 162, 155, 160, 160, 162, 161, 159, 158, 156, 160, 163, 154, 153, 154, 161, 162, 160, 157, 164, 165, 156, 157, 161, 158, 158, 159, 164, 160, 158, 162, 156, 161, 165, 170, 155, 158, 157, 164, 157, 178, 155, 159, 159, 161, 161, 156, 158, 159, 162, 159, 156, 157, 170, 159, 156, 155, 158, 160, 157, 160, 160, 159, 158, 154, 162, 163, 164, 158, 156, 158, 144, 157, 165, 164, 163, 158, 166, 159, 159, 158, 158, 166, 165, 158, 161, 163, 161, 157, 159, 159, 156, 162, 167, 158, 161, 159, 156, 157, 162, 162, 158, 158, 160, 165, 156, 159, 172, 161, 162, 155, 165, 159, 163, 157, 163, 163, 160, 162, 162, 163, 153, 159, 159, 159, 155, 163, 161, 164, 149, 162, 159, 161, 158, 156, 163, 155, 162, 164, 175, 156, 149, 159, 158, 164, 156, 164, 160, 161, 157, 162, 160, 153, 160, 160, 159, 151, 161, 159, 157, 172, 159, 160, 165, 163, 160, 152, 163, 160, 157, 156, 158, 154, 163, 158, 163, 160, 154, 157, 162, 159, 152, 167, 163, 164, 157, 159, 162, 149, 162, 163, 172, 163, 154, 170, 162, 179, 147, 161, 165, 162, 162, 150, 167, 152, 158, 163, 154, 156, 154, 157, 159, 160, 155, 163, 168, 161, 154, 160, 159, 169, 155, 160, 163, 148, 164, 156, 179, 149, 160, 163, 165, 164, 156, 163, 162, 158, 173, 163, 163, 158, 149, 153, 159, 175, 159, 170, 163, 163, 159, 169, 160, 160, 158, 152, 160, 153, 162, 155, 154, 156, 166, 156, 155, 163, 148, 164, 154, 158, 152, 149, 156, 159, 159, 164, 171, 146, 158, 155, 166, 155, 159, 160, 154, 164, 161, 164, 157, 145, 159, 151, 158, 159, 162, 163, 161, 161, 162, 167, 156, 152, 150, 154, 168, 163, 157, 155, 148, 164, 155, 159, 154, 161, 172, 158, 157, 167, 165, 169, 155, 155, 155, 161, 159, 160, 158, 153, 159, 157, 160, 164, 155, 158, 165, 162, 157, 160, 157, 157, 159, 163, 169, 174, 161, 163, 155, 161, 164, 156, 163, 151, 157, 155, 160, 162, 162, 161, 160, 159, 161, 162, 164, 162, 157, 165, 165, 156, 154, 161, 160, 152, 172, 161, 162, 164, 156, 156, 163, 158, 160, 157, 158, 162, 160, 153, 156, 174, 158, 162, 153, 171, 163, 163, 162, 154, 159, 162, 154, 158, 157, 159, 154, 163, 156, 155, 156, 164, 152, 168, 168, 160, 156, 161, 162, 145, 158, 160, 161, 162, 163, 159, 149, 152, 166, 160, 160, 158, 166, 164, 167, 158, 164, 162, 161, 160, 163, 154, 159, 150, 166, 160, 158, 168, 165, 161, 162, 165, 165, 174, 157, 158, 168, 158, 163, 155, 159, 159, 159, 157, 150, 159, 165, 162, 154, 155, 152, 162, 161, 168, 161, 159, 162, 165, 164, 152, 159, 158, 175, 148, 160, 161, 167, 163, 159, 161, 157, 163, 159, 164, 165, 156, 152, 156, 158, 156, 163, 157, 160, 165, 152, 157, 181, 155, 160, 157, 164, 163, 152, 155, 156, 161, 164, 158, 163, 160, 158, 164, 157, 157, 155, 162, 156, 149, 162, 161, 148, 158, 162, 153, 169, 157, 164, 154, 155, 150, 158, 165, 157, 164, 163, 159, 163, 157, 152, 153, 147, 155, 152, 163, 189, 158, 156, 167, 166, 153, 160, 155, 158, 160, 161, 185, 158, 168, 163, 156, 143, 150, 158, 166, 152, 162, 153, 163, 159, 152, 158, 163, 157, 156, 157, 162, 156, 160, 148, 156, 162, 154, 155, 140, 162, 161, 141, 155, 166, 165, 158, 160, 149, 162, 155, 159, 166, 163, 162, 163, 167, 166, 153, 157, 158, 150, 142, 168, 157, 157, 157, 165, 159, 151, 158, 154, 162, 159, 151, 155, 155, 158, 159, 160, 162, 155, 156, 165, 159, 161, 153, 163, 150, 158, 163, 160, 159, 164, 159, 163, 159, 166, 153, 161, 145, 161, 165, 161, 153, 158, 156, 162, 158, 154, 157, 139, 167, 152, 159, 154, 170, 161, 162, 161, 154, 154, 160, 153, 151, 157, 151, 156, 159, 160, 150, 163, 157, 165, 150, 165, 157, 155, 162, 154, 156, 162, 167, 160, 160, 149, 159, 156, 159, 168, 156, 147, 165, 163, 150, 155, 162, 159, 159, 161, 166, 162, 172, 172, 161, 164, 159, 157, 158, 153, 161, 164, 156, 154, 155, 153, 156, 165, 157, 157, 177, 164, 162, 160, 154, 158, 156, 147, 156, 159, 152, 158, 146, 155, 161, 157, 162, 171, 163, 158, 162, 162, 167, 152, 157, 167, 165, 171, 157, 146, 157, 150, 158, 160, 160, 161, 156, 166, 157, 160, 161, 163, 156, 155, 160, 158, 156, 153, 156, 165, 173, 158, 152, 151, 157, 157, 172, 162, 154, 154, 158, 161, 162, 157, 148, 167, 153, 161, 158, 160, 167, 149, 161, 146, 168, 154, 152, 161, 161, 167, 158, 171, 155, 173, 159, 153, 160, 188, 161, 162, 162, 160, 158, 155, 160, 164, 139, 160, 154, 160, 166, 170, 159, 157, 164, 158, 169, 163, 163, 158, 162, 159, 156, 153, 162, 152, 161, 148, 161, 156, 160, 163, 166, 160, 158, 143, 157, 157, 161, 157, 160, 162, 169, 150, 158, 152, 167, 158, 157, 162, 153, 162, 155, 163, 161, 157, 150, 163, 169, 172, 163, 175, 157, 161, 156, 174, 166, 162, 154, 158, 168, 161, 155, 155, 170, 152, 159, 163, 151, 155, 159, 162, 166, 152, 152, 175, 167, 167, 153, 166, 166, 165, 167, 140, 171, 168, 151, 159, 165, 160, 150, 159, 161, 164, 163, 162, 160, 132, 154, 164, 160, 159, 161, 161, 155, 152, 170, 162, 143, 159, 154, 158, 155, 155, 162, 165, 154, 164, 178, 159, 155, 159, 169, 158, 168, 177, 160, 154, 163, 156, 156, 151, 157, 167, 161, 163, 161, 157, 152, 152, 159, 163, 149, 158, 154, 165, 160, 161, 162, 156, 161, 152, 160, 163, 168, 167, 159, 162, 158, 171, 168, 161, 170, 150, 159, 154, 160, 161, 158, 164, 161, 162, 165, 161, 168, 176, 161, 149, 160, 161, 164, 162, 159, 159, 165, 160, 157, 150, 148, 156, 157, 157, 156, 164, 159, 161, 166, 160, 157, 161, 152, 156, 169, 156, 155, 169, 165, 151, 163, 171, 166, 159, 165, 161, 166, 162, 165, 166, 181, 162, 167, 162, 157, 156, 165, 159, 156, 161, 163, 158, 162, 160, 168, 154, 164, 165, 158, 163, 164, 155, 165, 167, 160, 163, 161, 158, 154, 162, 161, 161, 158, 156, 153, 159, 157, 150, 161, 161, 160, 164, 172, 168, 155, 159, 160, 166, 165, 163, 163, 166, 162, 157, 159, 160, 161, 160, 161, 159, 154, 156, 156, 167, 160, 162, 163, 164, 161, 161, 160, 160, 169, 157, 159, 154, 143, 155, 156, 161, 162, 162, 162, 164, 162, 161, 164, 165, 159, 159, 161, 158, 156, 136, 158, 152, 160, 166, 161, 161, 154, 167, 158, 165, 163, 165, 159, 159, 164, 159, 163, 163, 150, 156, 161, 160, 157, 159, 159, 166, 135, 162, 161, 158, 169, 155, 156, 165, 164, 165, 158, 160, 154, 166, 160, 154, 160, 162, 152, 156, 162, 161, 148, 151, 162, 160, 158, 166, 163, 164, 155, 156, 155, 158, 155, 156, 163, 157, 157, 162, 162, 156, 160, 165, 164, 160, 161, 143, 167, 158, 168, 162, 163, 159, 169, 155, 155, 163, 165, 160, 159, 157, 155, 169, 142, 159, 165, 163, 160, 161, 152, 161, 175, 171, 169, 161, 167, 165, 161, 163, 158, 158, 155, 149, 152, 163, 161, 156, 167, 166, 153, 166, 157, 159, 162, 163, 158, 156, 162, 169, 159, 159, 155, 161, 164, 153, 163, 163, 168, 161, 167, 162, 155, 158, 163, 162, 167, 153, 157, 158, 136, 161, 152, 172, 162, 158, 162, 161, 157, 157, 159, 160, 173, 159, 155, 158, 162, 164, 166, 155, 161, 164, 158, 157, 160, 169, 161, 155, 153, 164, 159, 161, 164, 164, 160, 162, 162, 157, 161, 156, 170, 162, 155, 156, 162, 158, 156, 170, 158, 155, 162, 162, 166, 162, 158, 152, 169, 158, 158, 153, 153, 157, 160, 157, 162, 161, 161, 159, 163, 165, 164, 157, 163, 166, 164, 155, 159, 160, 163, 168, 156, 159, 161, 164, 157, 164, 169, 151, 155, 168, 163, 163, 164, 152, 153, 167, 159, 160, 158, 165, 166, 161, 163, 162, 161, 156, 159, 161, 154, 165, 164, 157, 166, 164, 166, 172, 154, 163, 163, 164, 156, 161, 165, 162, 163, 162, 159, 163, 158, 165, 168, 158, 163, 165, 145, 163, 161, 156, 162, 157, 160, 159, 158, 161, 155, 160, 166, 162, 156, 160, 166, 165, 162, 159, 162, 159, 158, 156, 157, 159, 166, 158, 160, 187, 159, 153, 162, 167, 160, 170, 160, 157, 157, 163, 162, 162, 158, 164, 158, 162, 160, 158, 157, 160, 156, 161, 161, 158, 154, 155, 163, 153, 161, 159, 160, 166, 160, 155, 166, 152, 170, 163, 155, 161, 153, 154, 157, 162, 165, 165, 151, 161, 153, 163, 159, 158, 157, 166, 159, 159, 194, 155, 159, 156, 158, 160, 165, 154, 162, 159, 158, 155, 160, 159, 168, 161, 164, 164, 168, 161, 159, 155, 152, 160, 164, 149, 159, 161, 159, 159, 165, 159, 164, 162, 156, 161, 162, 148, 151, 166, 161, 160, 154, 159, 154, 162, 165, 167, 162, 161, 160, 157, 160, 155, 160, 152, 156, 158, 159, 156, 161, 165, 159, 158, 159, 162, 158, 162, 159, 169, 161, 159, 161, 170, 155, 162, 160, 155, 158, 158, 160, 167, 166, 155, 161, 157, 152, 154, 154, 162, 159, 160, 153, 154, 160, 156, 161, 154, 158, 159, 168, 170, 163, 166, 159, 163, 159, 160, 161, 160, 155, 159, 158, 154, 158, 156, 154, 162, 169, 168, 159, 162, 159, 162, 162, 165, 161, 161, 157, 171, 158, 169, 157, 157, 158, 160, 158, 152, 158, 158, 157, 157, 167, 156, 158, 160, 151, 157, 162, 160, 159, 151, 157, 155, 165, 153, 162, 155, 163, 163, 159, 161, 159, 164, 157, 172, 168, 172, 158, 150, 158, 156, 154, 168, 165, 158, 161, 163, 158, 162, 152, 160, 152, 161, 154, 159, 159, 156, 158, 145, 161, 156, 158, 166, 157, 157, 162, 158, 164, 158, 162, 158, 155, 162, 162, 162, 155, 165, 163, 157, 154, 161, 166, 156, 157, 162, 155, 163, 144, 157, 166, 164, 165, 158, 157, 164, 157, 162, 155, 160, 160, 169, 157, 169, 155, 159, 159, 150, 158, 161, 153, 159, 160, 155, 165, 168, 158, 166, 161, 164, 154, 154, 148, 163, 152, 167, 161, 160, 166, 163, 164, 160, 164, 160, 155, 167, 159, 151, 165, 160, 153, 161, 158, 148, 166, 163, 162, 161, 154, 154, 160, 158, 163, 156, 159, 158, 157, 156, 149, 164, 169, 159, 162, 159, 150, 157, 162, 159, 153, 151, 163, 160, 157, 163, 159, 176, 157, 166, 171, 147, 161, 158, 161, 158, 158, 167, 156, 178, 166, 173, 161, 152, 157, 141, 162, 155, 160, 155, 159, 161, 162, 156, 170, 151, 150, 154, 169, 157, 160, 152, 165, 151, 158, 149, 161, 169, 159, 161, 159, 169, 166, 162, 164, 175, 165, 156, 154, 152, 162, 172, 150, 162, 158, 158, 155, 157, 158, 161, 151, 162, 157, 155, 157, 164, 158, 160, 158, 176, 159, 157, 151, 153, 160, 157, 158, 159, 159, 157, 172, 153, 169, 163, 155, 153, 160, 178, 155, 162, 157, 155, 163, 158, 150, 163, 158, 157, 152, 152, 163, 157, 164, 155, 161, 157, 151, 163, 157, 155, 156, 158, 153, 155, 168, 158, 156, 163, 165, 156, 164, 160, 158, 162, 165, 165, 171, 156, 163, 158, 156, 160, 147, 162, 151, 152, 157, 161, 164, 161, 159, 152, 171, 160, 160, 156, 171, 171, 164, 157, 157, 158, 162, 167, 162, 173, 168, 157, 155, 193, 156, 161, 158, 149, 160, 160, 156, 165, 160, 158, 160, 157, 161, 155, 174, 155, 149, 156, 154, 160, 167, 158, 164, 169, 157, 160, 159, 159, 171, 178, 153, 165, 161, 165, 157, 161, 169, 151, 161, 160, 155, 164, 156, 164, 166, 163, 159, 154, 162, 166, 151, 155, 156, 164, 173, 163, 162, 149, 159, 159, 156, 156, 164, 154, 158, 156, 187, 163, 163, 158, 161, 158, 157, 156, 156, 166, 162, 161, 152, 157, 160, 158, 157, 153, 162, 163, 160, 163, 163, 165, 156, 159, 161, 164, 158, 158, 160, 160, 171, 150, 153, 155, 163, 156, 166, 156, 154, 161, 162, 164, 158, 164, 162, 159, 161, 159, 163, 164, 171, 161, 155, 161, 159, 160, 162, 159, 161, 156, 162, 169, 160, 168, 156, 155, 165, 171, 159, 164, 159, 159, 161, 157, 157, 155, 158, 154, 160, 156, 163, 163, 161, 164, 158, 151, 162, 149, 147, 154, 159, 161, 161, 159, 166, 155, 164, 164, 168, 162, 147, 164, 170, 153, 156, 171, 156, 164, 161, 163, 157, 155, 156, 156, 160, 151, 168, 140, 161, 162, 174, 175, 153, 163, 164, 174, 156, 158, 159, 165, 167, 152, 157, 161, 162, 161, 161, 161, 155, 163, 161, 154, 154, 157, 155, 166, 162, 155, 170, 156, 157, 161, 163, 160, 162, 161, 152, 155, 158, 160, 159, 175, 164, 175, 158, 160, 161, 155, 161, 165, 164, 139, 155, 156, 155, 158, 153, 155, 166, 159, 144, 152, 162, 158, 157, 162, 161, 165, 157, 166, 157, 162, 157, 160, 157, 137, 158, 166, 155, 160, 156, 160, 155, 205, 166, 159, 163, 160, 160, 167, 164, 162, 177, 150, 164, 160, 159, 159, 161, 149, 160, 157, 158, 171, 160, 161, 157, 162, 156, 159, 175, 154, 169, 155, 160, 148, 161, 163, 167, 155, 155, 151, 160, 153, 160, 162, 160, 150, 152, 152, 156, 169, 163, 158, 160, 158, 162, 155, 152, 161, 173, 153, 157, 163, 157, 164, 161, 158, 130, 160, 156, 161, 154, 157, 154, 170, 159, 169, 159, 152, 155, 157, 164, 163, 162, 156, 178, 159, 169, 156, 158, 163, 158, 154, 163, 158, 153, 157, 165, 150, 161, 155, 160, 161, 152, 163, 152, 155, 165, 161, 162, 153, 154, 150, 160, 154, 153, 166, 157, 147, 155, 185, 156, 165, 165, 153, 158, 167, 170, 162, 160, 186, 157, 160, 165, 158, 158, 151, 162, 163, 158, 151, 173, 167, 158, 162, 170, 161, 152, 158, 163, 161, 158, 160, 159, 146, 164, 157, 159, 153, 162, 174, 164, 153, 182, 157, 166, 158, 159, 151, 156, 164, 155, 167, 157, 166, 157, 165, 162, 147, 154, 165, 160, 152, 159, 154, 165, 151, 162, 159, 152, 154, 160, 154, 150, 159, 156, 157, 153, 156, 157, 159, 168, 157, 161, 161, 155, 158, 162, 162, 162, 151, 161, 154, 153, 160, 163, 164, 161, 157, 161, 164, 165, 156, 165, 152, 159, 161, 157, 153, 156, 151, 157, 174, 160, 161, 164, 168, 164, 163, 160, 162, 158, 162, 166, 161, 156, 165, 156, 159, 159, 153, 156, 165, 155, 161, 154, 156, 159, 157, 166, 161, 169, 165, 159, 164, 157, 164, 154, 173, 162, 160, 162, 161, 162, 163, 162, 172, 164, 149, 161, 152, 159, 155, 151, 160, 161, 161, 155, 161, 160, 157, 159, 157, 154, 160, 166, 163, 162, 163, 159, 159, 156, 151, 157, 168, 164, 170, 157, 160, 162, 154, 147, 169, 164, 163, 155, 153, 158, 161, 165, 162, 157, 159, 151, 146, 157, 162, 154, 155, 159, 166, 166, 168, 161, 159, 158, 155, 162, 160, 158, 159, 156, 168, 162, 157, 155, 169, 156, 167, 155, 154, 154, 154, 165, 165, 156, 157, 166, 165, 152, 168, 156, 178, 163, 154, 163, 159, 163, 158, 166, 169, 156, 157, 158, 164, 168, 155, 159, 158, 169, 156, 166, 160, 152, 164, 170, 157, 159, 158, 151, 163, 158, 157, 159, 161, 166, 160, 155, 161, 164, 151, 152, 155, 160, 156, 171, 171, 160, 155, 170, 161, 159, 153, 170, 152, 165, 169, 155, 153, 163, 165, 161, 164, 168, 154, 164, 151, 156, 169, 166, 160, 157, 158, 178, 154, 155, 159, 144, 158, 156, 159, 169, 157, 156, 152, 166, 170, 167, 156, 157, 166, 158, 164, 159, 177, 159, 161, 157, 161, 156, 160, 158, 172, 166, 162, 165, 160, 157, 167, 161, 158, 147, 160, 165, 166, 163, 158, 157, 164, 158, 157, 162, 164, 165, 154, 166, 161, 164, 159, 167, 164, 155, 163, 156, 159, 162, 157, 157, 137, 169, 170, 169, 158, 160, 159, 145, 159, 169, 156, 159, 154, 161, 153, 162, 158, 155, 156, 161, 168, 153, 162, 169, 158, 160, 157, 164, 160, 159, 170, 161, 164, 173, 163, 161, 161, 159, 158, 151, 160, 166, 170, 145, 160, 159, 157, 163, 153, 162, 158, 159, 154, 158, 169, 166, 159, 150, 155, 159, 158, 167, 153, 156, 150, 160, 156, 165, 158, 152, 163, 159, 160, 155, 163, 148, 168, 169, 158, 163, 150, 164, 169, 151, 161, 165, 161, 165, 166, 159, 156, 158, 160, 165, 154, 159, 155, 153, 162, 160, 156, 154, 150, 163, 151, 160, 153, 157, 150, 153, 158, 149, 158, 161, 181, 161, 163, 166, 160, 161, 160, 155, 151, 168, 160, 150, 158, 149, 162, 148, 158, 157, 164, 160, 158, 156, 157, 165, 158, 157, 157, 176, 149, 153, 158, 150, 150, 165, 149, 147, 162, 159, 165, 164, 148, 165, 145, 157, 159, 161, 155, 169, 164, 164, 161, 166, 157, 162, 155, 177, 154, 160, 160, 162, 158, 163, 156, 153, 162, 159, 162, 159, 159, 163, 146, 152, 161, 155, 154, 171, 160, 154, 154, 150, 158, 160, 159, 150, 164, 154, 158, 158, 158, 156, 152, 147, 174, 158, 145, 161, 160, 157, 178, 160, 161, 159, 167, 166, 165, 162, 153, 158, 170, 160, 158, 163, 147, 177, 159, 161, 168, 158, 156, 152, 169, 156, 161, 158, 155, 159, 149, 156, 150, 151, 157, 169, 160, 167, 161, 160, 162, 156, 169, 150, 158, 163, 179, 159, 170, 148, 160, 161, 166, 157, 164, 155, 157, 158, 159, 160, 160, 155, 163, 166, 157, 163, 158, 170, 157, 156, 152, 161, 162, 154, 154, 163, 160, 165, 164, 157, 149, 164, 164, 155, 167, 163, 163, 173, 161, 165, 156, 160, 164, 158, 159, 164, 162, 161, 160, 152, 163, 160, 160, 157, 162, 155, 161, 158, 154, 144, 161, 163, 163, 163, 162, 160, 158, 158, 155, 166, 156, 161, 162, 158, 164, 161, 163, 158, 157, 167, 161, 160, 159, 160, 155, 162, 161, 162, 164, 157, 173, 164, 164, 161, 161, 163, 171, 161, 161, 161, 163, 158, 152, 169, 169, 159, 160, 159, 160, 155, 157, 166, 159, 160, 158, 161, 164, 158, 159, 157, 162, 163, 162, 162, 159, 159, 160, 163, 167, 169, 161, 162, 162, 158, 164, 158, 160, 161, 152, 161, 163, 163, 162, 164, 159, 162, 158, 159, 156, 159, 157, 159, 159, 164, 159, 161, 168, 155, 157, 158, 161, 162, 154, 159, 158, 164, 162, 162, 164, 159, 159, 157, 155, 161, 157, 160, 166, 162, 162, 160, 160, 156, 167, 163, 161, 167, 159, 159, 159, 156, 163, 160, 179, 153, 161, 162, 157, 154, 164, 153, 160, 161, 160, 165, 160, 161, 162, 155, 160, 156, 159, 157, 158, 163, 161, 156, 148, 157, 165, 162, 161, 159, 161, 164, 163, 166, 164, 153, 162, 159, 171, 159, 158, 168, 164, 167, 161, 164, 157, 156, 162, 163, 161, 156, 162, 162, 162, 163, 154, 158, 162, 158, 162, 158, 158, 159, 158, 158, 157, 168, 163, 159, 158, 164, 159, 153, 165, 170, 157, 159, 163, 159, 164, 164, 154, 161, 162, 155, 162, 176, 160, 156, 148, 158, 157, 152, 159, 164, 156, 164, 159, 159, 164, 158, 161, 165, 160, 158, 153, 162, 161, 158, 158, 160, 162, 161, 161, 158, 160, 162, 160, 161, 166, 160, 164, 157, 160, 152, 159, 158, 163, 155, 163, 155, 163, 159, 162, 156, 162, 159, 157, 157, 159, 162, 160, 164, 162, 163, 159, 165, 158, 162, 159, 161, 164, 158, 160, 161, 166, 159, 156, 163, 158, 159, 161, 157, 157, 165, 155, 158, 160, 155, 157, 160, 168, 162, 159, 161, 167, 163, 161, 160, 158, 160, 158, 162, 167, 166, 160, 152, 161, 156, 156, 166, 163, 163, 158, 160, 162, 160, 162, 159, 161, 159, 159, 164, 159, 167, 158, 167, 153, 158, 150, 159, 161, 160, 170, 154, 156, 161, 161, 162, 167, 153, 161, 158, 163, 159, 160, 162, 159, 161, 154, 157, 156, 159, 162, 158, 162, 160, 168, 161, 164, 159, 161, 167, 165, 166, 155, 161, 156, 165, 161, 166, 165, 155, 152, 162, 169, 152, 163, 162, 162, 158, 164, 161, 163, 165, 162, 169, 163, 181, 156, 160, 160, 159, 158, 159, 157, 158, 155, 167, 161, 163, 161, 154, 164, 163, 172, 155, 157, 163, 156, 154, 160, 160, 158, 161, 159, 159, 160, 159, 154, 160, 163, 158, 160, 164, 161, 156, 160, 163, 158, 155, 161, 161, 158, 156, 164, 163, 163, 157, 162, 159, 161, 166, 157, 160, 153, 163, 166, 164, 160, 173, 153, 164, 160, 153, 163, 159, 159, 154, 151, 159, 157, 151, 168, 151, 157, 167, 166, 161, 161, 165, 163, 155, 159, 170, 156, 149, 158, 162, 159, 159, 156, 169, 163, 158, 153, 160, 144, 174, 162, 152, 156, 162, 163, 143, 164, 164, 173, 159, 159, 162, 166, 163, 161, 156, 160, 155, 165, 158, 169, 166, 157, 176, 157, 170, 157, 161, 160, 153, 166, 152, 164, 160, 166, 173, 159, 152, 162, 149, 165, 155, 158, 159, 159, 164, 168, 168, 165, 168, 162, 157, 160, 159, 154, 161, 165, 166, 158, 163, 163, 159, 162, 145, 168, 152, 159, 139, 163, 165, 190, 158, 158, 156, 164, 159, 164, 161, 173, 154, 155, 158, 176, 168, 160, 172, 158, 167, 165, 158, 160, 165, 167, 163, 167, 154, 162, 158, 157, 160, 171, 168, 154, 162, 165, 161, 159, 160, 158, 155, 143, 144, 150, 167, 155, 160, 159, 165, 158, 159, 159, 160, 168, 166, 164, 150, 160, 161, 161, 166, 169, 166, 163, 155, 163, 163, 161, 153, 152, 164, 160, 165, 162, 160, 153, 165, 157, 154, 159, 155, 152, 155, 158, 146, 146, 150, 161, 164, 164, 160, 158, 159, 174, 162, 173, 159, 160, 167, 158, 159, 166, 151, 163, 158, 168, 135, 169, 158, 161, 149, 155, 158, 151, 153, 174, 167, 158, 161, 157, 153, 160, 155, 155, 155, 165, 157, 163, 159, 158, 152, 160, 160, 157, 149, 179, 156, 163, 158, 156, 157, 171, 160, 151, 159, 160, 150, 165, 157, 160, 168, 168, 151, 159, 180, 168, 160, 145, 170, 163, 163, 170, 161, 162, 164, 153, 153, 162, 156, 164, 162, 165, 156, 162, 146, 157, 160, 165, 158, 172, 158, 145, 166, 150, 168, 163, 163, 168, 158, 160, 158, 172, 163, 154, 155, 156, 155, 159, 162, 161, 167, 163, 169, 159, 163, 158, 158, 164, 157, 153, 157, 161, 154, 162, 162, 166, 159, 165, 158, 161, 174, 158, 145, 149, 166, 162, 163, 162, 152, 168, 160, 150, 149, 163, 160, 163, 158, 157, 163, 159, 164, 166, 185, 165, 157, 162, 156, 187, 159, 170, 157, 162, 152, 163, 162, 151, 153, 155, 161, 153, 163, 174, 157, 160, 160, 156, 173, 165, 163, 160, 162, 149, 173, 168, 153, 136, 161, 162, 156, 163, 145, 160, 160, 158, 152, 157, 153, 159, 155, 160, 157, 162, 158, 156, 167, 149, 159, 183, 175, 159, 163, 155, 158, 154, 156, 141, 172, 162, 155, 165, 177, 164, 152, 164, 162, 161, 160, 165, 161, 162, 167, 157, 155, 170, 163, 164, 168, 159, 173, 164, 158, 161, 161, 151, 172, 168, 160, 163, 149, 154, 156, 161, 164, 168, 158, 159, 155, 167, 159, 160, 150, 162, 160, 156, 169, 169, 157, 157, 161, 169, 154, 171, 152, 172, 159, 159, 168, 162, 162, 156, 160, 152, 157, 154, 162, 152, 162, 166, 159, 164, 159, 160, 144, 157, 157, 163, 158, 164, 153, 164, 158, 160, 160, 156, 159, 161, 162, 164, 163, 164, 153, 162, 162, 157, 160, 158, 164, 159, 164, 159, 167, 164, 161, 157, 155, 157, 155, 156, 159, 164, 161, 161, 161, 163, 157, 161, 158, 155, 163, 157, 161, 163, 161, 158, 168, 155, 159, 160, 158, 159, 154, 161, 159, 163, 157, 157, 160, 165, 159, 157, 162, 154, 165, 162, 170, 162, 163, 156, 158, 161, 157, 159, 156, 160, 160, 161, 159, 158, 162, 165, 156, 160, 166, 153, 161, 163, 153, 159, 164, 156, 166, 157, 163, 167, 163, 155, 161, 164, 161, 168, 159, 165, 159, 155, 153, 157, 157, 159, 160, 157, 160, 158, 156, 157, 169, 154, 161, 162, 161, 165, 159, 157, 162, 162, 157, 163, 162, 165, 164, 157, 152, 157, 169, 162, 159, 162, 159, 163, 161, 160, 160, 154, 158, 155, 161, 165, 165, 163, 162, 174, 164, 161, 157, 159, 152, 161, 165, 160, 159, 160, 164, 157, 168, 167, 160, 162, 163, 158, 161, 159, 165, 157, 155, 161, 155, 157, 161, 155, 158, 161, 155, 157, 156, 171, 160, 164, 164, 162, 160, 157, 173, 165, 151, 163, 163, 153, 161, 162, 160, 156, 158, 160, 166, 162, 167, 166, 155, 159, 163, 166, 162, 164, 161, 149, 159, 159, 157, 153, 162, 161, 158, 159, 160, 156, 164, 158, 163, 157, 157, 157, 151, 163, 161, 155, 157, 160, 164, 163, 165, 162, 157, 171, 160, 162, 168, 170, 164, 156, 164, 166, 152, 157, 162, 161, 167, 153, 156, 164, 155, 162, 155, 158, 162, 159, 164, 156, 165, 159, 155, 159, 167, 159, 165, 162, 163, 169, 159, 160, 161, 157, 154, 158, 173, 158, 159, 156, 158, 159, 161, 162, 167, 159, 161, 166, 154, 162, 157, 159, 160, 155, 162, 156, 161, 159, 165, 158, 160, 162, 163, 160, 151, 163, 154, 166, 155, 168, 158, 167, 167, 155, 159, 149, 159, 149, 153, 155, 158, 155, 156, 163, 159, 161, 159, 157, 151, 157, 157, 163, 151, 159, 156, 160, 160, 161, 156, 155, 154, 166, 157, 162, 158, 165, 162, 161, 162, 155, 157, 160, 160, 157, 163, 164, 163, 163, 161, 162, 159, 150, 156, 164, 168, 165, 164, 160, 164, 159, 154, 165, 156, 161, 163, 158, 158, 159, 158, 161, 159, 161, 156, 153, 157, 161, 163, 164, 160, 159, 163, 164, 155, 162, 166, 157, 161, 160, 164, 155, 162, 163, 161, 170, 157, 165, 158, 158, 163, 163, 159, 160, 163, 158, 165, 157, 158, 162, 160, 159, 161, 157, 159, 161, 163, 159, 163, 162, 161, 161, 161, 156, 159, 167, 159, 162, 172, 166, 166, 156, 159, 157, 157, 157, 164, 169, 160, 164, 163, 156, 159, 152, 150, 168, 158, 164, 156, 153, 159, 161, 155, 152, 161, 165, 163, 162, 157, 160, 165, 158, 153, 161, 153, 158, 163, 157, 158, 162, 162, 159, 158, 161, 157, 163, 160, 155, 156, 156, 165, 161, 162, 160, 155, 170, 164, 159, 161, 159, 162, 165, 164, 169, 161, 162, 167, 163, 166, 163, 162, 154, 160, 165, 161, 161, 161, 158, 172, 151, 159, 165, 163, 164, 158, 157, 157, 162, 151, 153, 160, 158, 156, 157, 159, 156, 158, 157, 152, 160, 165, 162, 161, 164, 154, 160, 164, 158, 165, 158, 158, 162, 162, 149, 163, 168, 153, 156, 165, 162, 166, 158, 164, 155, 154, 169, 166, 161, 163, 162, 158, 154, 163, 153, 160, 162, 157, 156, 161, 164, 163, 153, 158, 161, 157, 161, 162, 160, 173, 164, 164, 159, 163, 161, 155, 164, 160, 163, 154, 161, 165, 158, 171, 167, 155, 153, 161, 147, 153, 155, 159, 156, 158, 155, 167, 156, 153, 158, 155, 164, 161, 163, 167, 162, 150, 169, 150, 158, 161, 156, 157, 160, 154, 163, 155, 158, 160, 161, 165, 164, 142, 164, 158, 156, 158, 172, 153, 156, 162, 151, 159, 159, 145, 157, 165, 151, 151, 160, 151, 158, 163, 155, 153, 160, 161, 163, 165, 151, 161, 162, 162, 157, 163, 152, 165, 161, 153, 156, 154, 152, 153, 158, 165, 166, 161, 159, 158, 166, 165, 166, 161, 149, 165, 161, 158, 153, 153, 164, 143, 163, 160, 157, 146, 163, 163, 160, 170, 160, 160, 160, 167, 161, 166, 170, 164, 163, 155, 162, 159, 159, 160, 164, 159, 156, 167, 168, 152, 155, 164, 154, 167, 166, 160, 154, 170, 158, 159, 163, 155, 157, 158, 151, 151, 155, 160, 171, 149, 160, 164, 161, 166, 160, 161, 164, 161, 154, 163, 160, 151, 155, 162, 160, 157, 153, 156, 156, 158, 163, 160, 145, 155, 155, 161, 148, 152, 162, 157, 154, 158, 159, 162, 164, 161, 159, 161, 162, 149, 163, 160, 161, 157, 162, 168, 153, 157, 166, 156, 159, 159, 161, 156, 165, 166, 159, 165, 153, 160, 167, 154, 171, 148, 160, 156, 151, 161, 158, 165, 159, 166, 168, 170, 165, 155, 159, 159, 154, 148, 150, 148, 168, 154, 154, 154, 163, 154, 158, 161, 162, 166, 163, 159, 156, 154, 182, 163, 164, 154, 152, 165, 158, 168, 166, 164, 169, 160, 154, 168, 160, 150, 160, 159, 155, 161, 178, 157, 152, 163, 176, 158, 160, 159, 159, 154, 163, 152, 149, 170, 154, 160, 159, 156, 152, 155, 162, 161, 161, 164, 153, 155, 163, 151, 164, 175, 149, 155, 164, 153, 161, 161, 155, 161, 174, 154, 160, 164, 162, 160, 157, 169, 164, 152, 156, 164, 167, 156, 163, 161, 156, 161, 152, 167, 158, 163, 158, 171, 156, 159, 154, 155, 177, 160, 160, 168, 158, 165, 163, 162, 163, 155, 154, 159, 166, 156, 154, 156, 158, 164, 147, 163, 157, 162, 158, 153, 157, 158, 158, 162, 163, 148, 149, 161, 159, 162, 154, 162, 176, 162, 161, 153, 162, 149, 163, 144, 159, 157, 151, 149, 161, 164, 156, 158, 156, 152, 164, 162, 159, 167, 154, 158, 139, 163, 165, 169, 163, 159, 164, 158, 161, 159, 161, 161, 163, 158, 150, 162, 159, 161, 167, 157, 157, 155, 164, 156, 166, 160, 159, 162, 160, 161, 153, 155, 164, 159, 158, 161, 157, 154, 161, 160, 160, 154, 153, 164, 167, 157, 152, 159, 161, 161, 162, 145, 152, 161, 167, 152, 171, 163, 160, 159, 160, 161, 162, 166, 164, 173, 155, 156, 158, 160, 162, 161, 163, 156, 165, 163, 165, 164, 160, 160, 160, 164, 162, 155, 157, 158, 153, 166, 158, 162, 159, 143, 163, 160, 155, 157, 172, 161, 140, 159, 143, 153, 161, 161, 152, 153, 163, 159, 164, 156, 161, 162, 157, 161, 159, 152, 148, 167, 158, 163, 162, 161, 155, 157, 160, 164, 158, 156, 156, 161, 155, 160, 156, 163, 160, 153, 149, 152, 164, 155, 159, 151, 176, 150, 150, 157, 156, 170, 150, 160, 161, 163, 159, 164, 168, 163, 162, 202, 162, 156, 150, 167, 155, 161, 157, 159, 162, 167, 160, 160, 156, 158, 156, 164, 159, 149, 163, 155, 161, 159, 154, 158, 168, 163, 159, 160, 156, 161, 153, 166, 149, 163, 166, 161, 160, 162, 158, 158, 162, 167, 157, 165, 154, 161, 160, 161, 158, 166, 157, 150, 162, 166, 151, 163, 153, 172, 165, 164, 157, 171, 160, 161, 155, 166, 164, 156, 163, 160, 158, 158, 164, 161, 170, 164, 160, 162, 163, 167, 154, 168, 159, 165, 164, 155, 167, 160, 156, 162, 160, 152, 158, 161, 161, 163, 160, 158, 161, 154, 164, 158, 171, 152, 158, 150, 157, 147, 161, 161, 155, 157, 158, 165, 153, 159, 164, 161, 172, 156, 164, 158, 168, 165, 166, 158, 158, 153, 165, 162, 163, 156, 158, 168, 161, 169, 165, 147, 154, 160, 155, 155, 153, 165, 158, 158, 153, 160, 148, 161, 156, 161, 163, 157, 157, 163, 161, 156, 155, 151, 160, 154, 162, 151, 158, 165, 161, 163, 159, 166, 168, 161, 160, 146, 163, 159, 161, 161, 164, 159, 156, 160, 163, 150, 154, 159, 163, 159, 158, 154, 154, 148, 163, 160, 160, 160, 159, 156, 165, 159, 170, 163, 156, 161, 156, 176, 161, 151, 163, 159, 156, 149, 159, 172, 165, 163, 167, 160, 151, 151, 155, 156, 160, 160, 165, 183, 165, 160, 160, 150, 139, 146, 163, 164, 167, 166, 174, 165, 168, 158, 157, 159, 162, 156, 162, 160, 157, 166, 159, 159, 157, 158, 157, 178, 158, 157, 158, 159, 158, 152, 162, 160, 156, 153, 167, 161, 164, 153, 158, 158, 163, 166, 160, 153, 155, 161, 162, 153, 162, 160, 147, 164, 156, 163, 165, 157, 157, 146, 150, 155, 164, 152, 162, 163, 158, 169, 158, 159, 165, 163, 157, 159, 158, 160, 161, 156, 169, 161, 158, 164, 161, 152, 153, 152, 155, 161, 158, 159, 163, 153, 166, 157, 154, 162, 165, 148, 175, 162, 158, 174, 162, 158, 161, 157, 161, 147, 172, 162, 156, 157, 145, 144, 160, 166, 156, 158, 156, 166, 160, 164, 155, 152, 154, 162, 168, 159, 156, 156, 155, 160, 170, 161, 163, 165, 159, 163, 158, 159, 146, 157, 153, 181, 159, 163, 160, 163, 161, 159, 158, 146, 165, 161, 162, 159, 160, 165, 168, 156, 163, 163, 162, 159, 164, 158, 164, 161, 166, 165, 160, 160, 152, 165, 164, 153, 157, 164, 159, 153, 166, 161, 156, 157, 148, 154, 141, 162, 159, 157, 161, 157, 161, 159, 155, 154, 161, 155, 170, 164, 165, 161, 170, 152, 165, 157, 155, 151, 157, 156, 161, 159, 151, 159, 171, 165, 161, 161, 152, 163, 155, 156, 172, 158, 161, 157, 161, 161, 155, 160, 159, 157, 154, 161, 159, 159, 167, 157, 154, 161, 155, 169, 163, 156, 158, 158, 152, 157, 159, 154, 164, 158, 160, 162, 160, 167, 154, 159, 160, 151, 161, 156, 152, 160, 155, 159, 162, 165, 160, 162, 160, 161, 147, 169, 164, 167, 162, 166, 156, 162, 154, 161, 164, 164, 159, 149, 164, 162, 150, 158, 167, 162, 164, 154, 160, 164, 164, 161, 156, 159, 159, 157, 155, 154, 175, 168, 159, 154, 160, 159, 163, 157, 155, 157, 157, 164, 154, 156, 163, 166, 162, 164, 155, 167, 153, 154, 156, 163, 163, 169, 160, 157, 168, 159, 162, 151, 156, 165, 159, 155, 165, 155, 161, 159, 158, 158, 162, 164, 152, 162, 169, 156, 163, 159, 182, 160, 162, 163, 158, 159, 159, 159, 160, 171, 163, 155, 165, 153, 159, 159, 165, 161, 189, 157, 174, 159, 167, 158, 158, 162, 156, 164, 159, 160, 158, 147, 166, 155, 140, 164, 162, 156, 160, 159, 164, 158, 154, 161, 156, 152, 165, 156, 161, 156, 153, 169, 162, 151, 161, 159, 157, 154, 156, 162, 160, 156, 159, 154, 157, 171, 156, 161, 166, 148, 167, 158, 164, 159, 165, 167, 162, 159, 157, 153, 162, 153, 167, 150, 167, 166, 158, 162, 156, 164, 159, 149, 160, 152, 158, 158, 158, 164, 154, 156, 163, 155, 158, 158, 156, 157, 148, 163, 156, 158, 155, 170, 152, 158, 159, 174, 160, 160, 155, 163, 159, 166, 153, 152, 158, 159, 166, 163, 148, 153, 152, 161, 163, 162, 165, 159, 165, 162, 157, 158, 163, 159, 158, 160, 163, 164, 162, 150, 156, 159, 163, 158, 158, 150, 157, 162, 171, 169, 171, 163, 162, 156, 160, 161, 160, 160, 155, 167, 160, 166, 162, 154, 163, 155, 164, 158, 162, 162, 159, 162, 160, 165, 166, 162, 163, 160, 148, 154, 161, 163, 160, 161, 146, 154, 156, 163, 168, 155, 163, 160, 164, 158, 160, 167, 161, 163, 150, 165, 162, 152, 153, 153, 154, 165, 158, 163, 156, 166, 156, 162, 157, 164, 159, 154, 163, 159, 151, 158, 155, 164, 167, 155, 168, 162, 158, 166, 169, 140, 161, 157, 159, 163, 163, 165, 159, 157, 161, 165, 166, 154, 160, 156, 161, 169, 154, 157, 168, 151, 168, 162, 150, 152, 161, 162, 152, 158, 163, 167, 158, 157, 158, 155, 168, 158, 162, 156, 159, 158, 157, 161, 156, 162, 152, 157, 156, 167, 156, 157, 173, 163, 166, 166, 169, 156, 164, 163, 161, 160, 159, 157, 156, 158, 150, 148, 159, 158, 162, 163, 162, 158, 164, 157, 163, 164, 152, 166, 157, 162, 165, 170, 166, 163, 158, 159, 157, 157, 157, 158, 156, 157, 168, 161, 165, 155, 161, 158, 159, 158, 163, 167, 165, 157, 162, 163, 165, 156, 167, 162, 165, 164, 158, 167, 160, 160, 158, 153, 150, 160, 169, 151, 161, 162, 162, 160, 159, 156, 160, 162, 160, 162, 153, 162, 149, 159, 154, 160, 163, 167, 147, 158, 167, 158, 161, 156, 163, 160, 150, 161, 152, 152, 161, 161, 163, 163, 153, 159, 154, 160, 158, 152, 170, 157, 163, 151, 159, 159, 161, 161, 155, 158, 155, 161, 159, 155, 154, 159, 157, 157, 163, 158, 160, 164, 158, 160, 158, 160, 159, 162, 167, 152, 159, 185, 162, 158, 163, 164, 165, 164, 165, 151, 165, 163, 158, 161, 156, 164, 160, 158, 159, 157, 162, 157, 173, 153, 160, 159, 160, 164, 162, 156, 160, 153, 171, 165, 166, 155, 160, 155, 164, 156, 162, 157, 157, 163, 158, 157, 160, 165, 157, 158, 152, 154, 160, 163, 154, 162, 159, 157, 164, 173, 153, 158, 163, 160, 156, 160, 161, 162, 158, 158, 157, 151, 160, 160, 160, 159, 157, 162, 156, 160, 163, 168, 161, 153, 169, 161, 156, 165, 161, 163, 157, 160, 164, 159, 165, 163, 159, 158, 157, 165, 145, 156, 164, 161, 153, 156, 165, 172, 149, 161, 160, 156, 160, 149, 161, 158, 163, 169, 168, 160, 158, 157, 158, 154, 157, 158, 156, 166, 162, 150, 157, 168, 156, 155, 159, 160, 159, 159, 159, 153, 159, 160, 157, 163, 159, 160, 158, 159, 166, 164, 157, 157, 158, 161, 164, 158, 158, 163, 166, 158, 164, 162, 151, 155, 171, 162, 161, 160, 156, 159, 161, 165, 161, 160, 160, 157, 160, 166, 158, 158, 164, 159, 159, 159, 159, 159, 159, 163, 161, 165, 155, 161, 158, 159, 155, 157, 157, 164, 150, 163, 158, 160, 156, 156, 166, 160, 155, 154, 160, 157, 150, 160, 162, 160, 161, 162, 156, 169, 167, 165, 153, 155, 165, 154, 157, 159, 157, 162, 160, 170, 160, 160, 162, 165, 158, 158, 162, 159, 177, 171, 152, 157, 153, 164, 154, 158, 159, 161, 161, 162, 158, 158, 165, 153, 154, 158, 154, 159, 162, 161, 156, 164, 161, 152, 157, 161, 151, 153, 152, 147, 151, 166, 160, 155, 174, 157, 159, 158, 165, 156, 154, 156, 162, 157, 153, 159, 154, 166, 157, 160, 162, 151, 160, 148, 150, 161, 156, 162, 163, 156, 159, 164, 160, 160, 162, 156, 154, 161, 161, 155, 167, 152, 174, 160, 159, 153, 164, 158, 168, 159, 159, 152, 162, 165, 159, 158, 157, 157, 153, 160, 157, 158, 156, 166, 157, 170, 153, 165, 160, 160, 156, 156, 169, 157, 155, 165, 162, 163, 170, 156, 154, 156, 162, 160, 155, 157, 157, 176, 154, 159, 156, 166, 159, 168, 157, 158, 147, 166, 152, 157, 157, 161, 169, 161, 159, 159, 171, 173, 161, 151, 160, 163, 162, 157, 155, 156, 162, 162, 157, 158, 170, 153, 166, 165, 159, 160, 162, 158, 157, 156, 166, 158, 160, 159, 162, 158, 162, 166, 171, 155, 157, 164, 159, 158, 151, 157, 156, 164, 161, 162, 151, 160, 160, 157, 153, 161, 155, 157, 164, 166, 163, 162, 162, 163, 165, 154, 160, 153, 163, 162, 165, 157, 169, 160, 169, 160, 165, 163, 159, 166, 167, 150, 168, 161, 163, 159, 169, 159, 158, 159, 160, 163, 156, 159, 158, 161, 160, 164, 159, 154, 161, 169, 167, 154, 152, 168, 161, 154, 153, 158, 158, 161, 162, 156, 160, 154, 151, 152, 159, 169, 158, 161, 153, 171, 163, 163, 161, 160, 154, 158, 159, 151, 168, 157, 165, 166, 159, 159, 163, 157, 155, 154, 150, 156, 159, 160, 157, 167, 163, 165, 159, 167, 155, 158, 163, 155, 154, 156, 155, 168, 151, 163, 154, 157, 158, 176, 162, 163, 156, 160, 158, 158, 158, 161, 169, 151, 165, 162, 158, 160, 158, 161, 163, 161, 160, 159, 173, 154, 159, 159, 149, 157, 156, 161, 160, 162, 162, 159, 165, 163, 161, 156, 156, 164, 159, 159, 162, 155, 163, 160, 165, 162, 160, 161, 160, 159, 160, 166, 151, 161, 178, 167, 158, 161, 167, 157, 158, 154, 161, 163, 157, 160, 158, 163, 164, 164, 165, 162, 159, 161, 164, 167, 159, 156, 150, 162, 155, 167, 162, 167, 165, 161, 161, 157, 153, 153, 154, 167, 160, 164, 156, 162, 159, 159, 162, 156, 157, 157, 157, 158, 157, 154, 157, 154, 164, 160, 161, 160, 172, 160, 165, 166, 160, 152, 160, 151, 158, 169, 158, 164, 165, 158, 173, 157, 165, 159, 158, 165, 158, 160, 158, 157, 157, 159, 169, 153, 162, 163, 157, 160, 158, 156, 164, 151, 155, 158, 161, 164, 160, 159, 160, 157, 163, 162, 158, 158, 159, 162, 160, 164, 159, 165, 156, 158, 160, 160, 155, 156, 157, 165, 164, 161, 161, 160, 156, 162, 162, 164, 160, 164, 162, 159, 152, 157, 157, 158, 164, 159, 159, 161, 157, 164, 153, 159, 164, 154, 166, 167, 165, 151, 155, 152, 160, 158, 159, 162, 159, 164, 162, 165, 160, 161, 161, 159, 163, 161, 151, 163, 159, 159, 157, 157, 164, 168, 170, 168, 165, 159, 159, 158, 157, 160, 165, 168, 161, 158, 167, 157, 160, 166, 156, 154, 176, 163, 161, 160, 157, 164, 160, 160, 161, 166, 169, 157, 157, 162, 161, 160, 164, 165, 163, 152, 159, 158, 154, 166, 158, 162, 157, 156, 164, 154, 161, 147, 154, 162, 156, 164, 158, 157, 157, 151, 162, 164, 156, 161, 158, 160, 166, 159, 157, 158, 161, 166, 157, 156, 158, 160, 160, 159, 165, 160, 166, 169, 155, 157, 168, 170, 163, 157, 164, 162, 160, 163, 154, 162, 160, 161, 159, 167, 157, 158, 167, 161, 167, 163, 161, 158, 155, 154, 157, 166, 157, 153, 163, 165, 151, 158, 172, 153, 170, 160, 168, 154, 158, 163, 166, 160, 155, 167, 164, 161, 162, 152, 156, 157, 173, 161, 162, 159, 162, 170, 154, 162, 159, 162, 155, 154, 156, 150, 162, 160, 165, 159, 162, 165, 158, 159, 164, 158, 154, 156, 163, 160, 155, 165, 156, 162, 164, 159, 165, 159, 159, 164, 162, 160, 165, 158, 159, 159, 163, 166, 163, 159, 161, 155, 163, 162, 157, 153, 158, 160, 157, 163, 165, 166, 159, 161, 158, 159, 160, 155, 161, 162, 162, 158, 160, 154, 161, 157, 160, 163, 161, 161, 156, 163, 158, 160, 162, 160, 160, 159, 158, 159, 159, 160, 162, 161, 158, 158, 159, 158, 158, 161, 158, 162, 164, 151, 159, 165, 163, 158, 162, 158, 158, 154, 159, 155, 160, 165, 162, 161, 156, 156, 161, 157, 170, 154, 162, 163, 163, 158, 164, 162, 170, 147, 163, 157, 159, 161, 160, 157, 163, 157, 160, 162, 160, 153, 161, 157, 156, 166, 165, 161, 157, 167, 150, 157, 158, 162, 155, 160, 156, 161, 156, 157, 159, 161, 156, 163, 161, 162, 155, 164, 162, 164, 162, 161, 155, 161, 156, 162, 157, 169, 173, 164, 163, 159, 159, 162, 158, 162, 162, 165, 150, 160, 157, 158, 155, 160, 159, 163, 158, 159, 161, 156, 158, 162, 165, 163, 163, 157, 161, 159, 153, 158, 167, 159, 159, 158, 165, 160, 159, 159, 158, 161, 154, 167, 162, 155, 156, 160, 162, 157, 137, 161, 159, 156, 163, 156, 160, 159, 163, 160, 160, 163, 163, 159, 157, 159, 159, 156, 169, 161, 162, 156, 162, 159, 160, 163, 157, 156, 164, 161, 160, 159, 160, 160, 157, 160, 157, 159, 163, 160, 158, 162, 161, 163, 161, 164, 157, 154, 162, 159, 158, 159, 163, 161, 161, 156, 159, 153, 157, 152, 160, 171, 153, 164, 156, 165, 156, 157, 154, 165, 161, 158, 162, 161, 154, 161, 163, 159, 162, 156, 170, 165, 158, 161, 158, 161, 169, 159, 159, 153, 157, 157, 160, 151, 172, 164, 159, 158, 162, 160, 162, 159, 162, 160, 165, 163, 160, 161, 161, 158, 164, 163, 159, 155, 163, 159, 158, 159, 153, 157, 163, 165, 162, 162, 159, 158, 157, 156, 156, 158, 160, 164, 159, 160, 157, 159, 154, 163, 160, 160, 163, 162, 160, 165, 161, 155, 159, 164, 164, 160, 163, 156, 168, 163, 157, 162, 161, 154, 153, 161, 155, 162, 162, 164, 159, 153, 165, 161, 159, 164, 163, 155, 158, 160, 164, 161, 164, 160, 154, 158, 162, 162, 154, 158, 162, 155, 160, 175, 157, 165, 153, 156, 159, 167, 159, 158, 160, 165, 160, 159, 159, 155, 161, 152, 152, 159, 162, 163, 157, 155, 165, 152, 158, 157, 165, 161, 152, 159, 162, 164, 155, 155, 163, 165, 157, 161, 167, 163, 159, 156, 160, 156, 161, 158, 158, 160, 160, 161, 157, 157, 149, 158, 172, 162, 160, 155, 165, 163, 162, 160, 158, 166, 162, 157, 156, 160, 164, 158, 165, 161, 158, 158, 162, 158, 170, 159, 159, 166, 165, 165, 153, 163, 162, 160, 159, 162, 154, 160, 160, 158, 159, 164, 160, 159, 158, 165, 157, 160, 152, 161, 160, 155, 164, 158, 165, 159, 158, 165, 158, 161, 159, 158, 164, 156, 162, 164, 161, 163, 159, 159, 160, 155, 162, 168, 158, 159, 158, 171, 159, 155, 157, 162, 157, 157, 159, 163, 166, 152, 167, 155, 159, 161, 161, 162, 162, 166, 156, 165, 159, 156, 154, 164, 155, 158, 160, 167, 162, 163, 155, 162, 154, 159, 161, 144, 157, 161, 157, 151, 162, 154, 160, 166, 165, 162, 167, 157, 157, 156, 161, 160, 157, 164, 162, 161, 164, 159, 147, 158, 164, 159, 157, 165, 160, 156, 161, 161, 155, 158, 155, 157, 158, 158, 157, 157, 155, 163, 158, 162, 162, 158, 156, 164, 145, 157, 157, 167, 158, 164, 167, 152, 155, 162, 162, 159, 166, 162, 155, 158, 160, 164, 168, 159, 157, 170, 151, 166, 161, 161, 155, 164, 156, 162, 161, 161, 162, 157, 173, 153, 161, 160, 159, 158, 160, 160, 162, 162, 157, 161, 160, 161, 158, 156, 191, 158, 160, 161, 163, 163, 160, 161, 163, 160, 164, 162, 157, 160, 162, 166, 158, 153, 156, 161, 160, 160, 161, 161, 162, 160, 161, 164, 160, 157, 160, 165, 162, 174, 157, 155, 160, 161, 162, 159, 156, 158, 158, 155, 167, 158, 155, 158, 158, 156, 167, 158, 158, 161, 157, 154, 163, 160, 154, 157, 160, 162, 153, 160, 164, 178, 157, 159, 159, 162, 171, 159, 165, 156, 173, 152, 156, 158, 155, 149, 162, 164, 159, 156, 156, 162, 165, 160, 158, 161, 167, 158, 165, 163, 154, 162, 150, 159, 156, 161, 167, 162, 161, 157, 165, 159, 162, 160, 160, 154, 162, 159, 163, 159, 163, 154, 168, 159, 162, 159, 167, 161, 161, 164, 166, 158, 153, 162, 160, 160, 165, 157, 150, 175, 154, 163, 168, 154, 162, 165, 160, 168, 165, 160, 154, 155, 162, 161, 165, 160, 159, 169, 164, 158, 160, 155, 159, 160, 167, 158, 157, 167, 165, 159, 158, 156, 158, 154, 165, 155, 159, 162, 161, 158, 160, 157, 157, 163, 164, 159, 155, 156, 156, 151, 156, 171, 162, 165, 159, 162, 159, 163, 172, 160, 164, 161, 160, 163, 162, 162, 157, 170, 164, 156, 161, 156, 170, 160, 160, 156, 164, 163, 162, 160, 157, 155, 163, 158, 158, 156, 155, 161, 167, 163, 160, 161, 152, 164, 162, 158, 163, 159, 165, 160, 162, 160, 158, 164, 161, 161, 153, 157, 153, 170, 153, 160, 151, 160, 154, 159, 167, 167, 163, 164, 161, 158, 163, 159, 139, 173, 159, 162, 166, 160, 159, 159, 159, 155, 158, 161, 162, 163, 160, 167, 161, 154, 160, 156, 164, 166, 154, 166, 170, 159, 155, 164, 169, 165, 161, 153, 169, 155, 169, 171, 153, 164, 163, 165, 163, 157, 155, 156, 160, 137, 156, 164, 158, 158, 161, 157, 160, 161, 158, 175, 161, 160, 164, 161, 158, 165, 155, 161, 161, 158, 169, 159, 159, 160, 153, 161, 164, 169, 156, 158, 159, 163, 154, 163, 156, 152, 161, 155, 160, 159, 163, 161, 159, 155, 161, 156, 162, 155, 159, 171, 155, 169, 162, 160, 160, 165, 160, 163, 158, 164, 163, 163, 159, 161, 157, 159, 158, 161, 158, 160, 165, 161, 161, 163, 158, 155, 159, 164, 161, 163, 159, 155, 153, 159, 161, 161, 164, 163, 159, 159, 164, 158, 159, 161, 159, 162, 155, 160, 161, 161, 154, 162, 168, 156, 157, 160, 158, 161, 155, 160, 167, 167, 161, 160, 161, 164, 156, 159, 159, 163, 158, 159, 159, 155, 160, 160, 156, 152, 158, 158, 159, 160, 159, 159, 161, 162, 155, 172, 160, 159, 160, 164, 160, 159, 159, 153, 158, 160, 162, 161, 159, 158, 157, 161, 164, 160, 161, 156, 155, 159, 160, 158, 166, 163, 159, 162, 160, 160, 154, 154, 165, 162, 162, 160, 162, 151, 168, 154, 165, 162, 162, 160, 159, 158, 160, 157, 159, 167, 154, 160, 159, 157, 159, 163, 155, 161, 159, 162, 152, 161, 163, 161, 163, 163, 160, 159, 158, 164, 161, 165, 159, 160, 160, 160, 160, 156, 159, 163, 175, 163, 163, 160, 159, 161, 158, 165, 160, 162, 158, 164, 161, 160, 163, 159, 161, 161, 156, 157, 156, 160, 160, 159, 158, 161, 158, 160, 163, 164, 156, 160, 158, 161, 160, 161, 161, 157, 161, 164, 155, 162, 159, 160, 157, 159, 161, 157, 159, 160, 157, 162, 169, 161, 158, 155, 161, 154, 158, 160, 161, 159, 168, 159, 161, 159, 153, 154, 163, 159, 160, 157, 163, 163, 158, 160, 162, 163, 158, 161, 160, 163, 159, 167, 159, 163, 154, 158, 161, 158, 160, 157, 158, 160, 160, 162, 157, 166, 162, 158, 161, 159, 162, 159, 158, 161, 155, 161, 163, 156, 158, 161, 162, 158, 156, 162, 161, 160, 151, 157, 160, 162, 161, 161, 161, 158, 160, 154, 161, 160, 172, 158, 161, 155, 166, 161, 163, 156, 166, 158, 158, 156, 156, 164, 159, 160, 159, 158, 156, 161, 156, 158, 160, 159, 162, 157, 160, 154, 167, 155, 164, 158, 160, 162, 159, 160, 159, 160, 163, 162, 164, 160, 160, 159, 160, 160, 158, 163, 162, 164, 157, 165, 160, 159, 160, 150, 166, 156, 157, 159, 159, 162, 159, 159, 157, 161, 160, 158, 161, 163, 161, 160, 159, 161, 168, 160, 159, 156, 161, 161, 157, 160, 161, 162, 158, 159, 157, 160, 155, 159, 158, 158, 156, 161, 151, 160, 159, 159, 146, 163, 158, 162, 161, 159, 158, 160, 154, 155, 158, 158, 160, 163, 162, 161, 156, 152, 158, 161, 159, 162, 161, 163, 158, 160, 164, 163, 158, 161, 161, 161, 168, 159, 165, 163, 162, 160, 159, 149, 163, 156, 161, 160, 163, 158, 158, 160, 161, 161, 159, 160, 161, 156, 160, 156, 163, 165, 158, 158, 160, 159, 161, 159, 163, 160, 160, 159, 159, 162, 157, 161, 162, 161, 154, 160, 156, 161, 161, 169, 160, 164, 161, 160, 161, 159, 157, 157, 156, 160, 159, 163, 161, 159, 162, 161, 160, 162, 156, 162, 162, 161, 160, 162, 170, 161, 156, 162, 157, 155, 169, 158, 167, 159, 160, 160, 155, 164, 160, 163, 161, 158, 164, 152, 162, 164, 160, 163, 160, 157, 156, 159, 156, 163, 165, 156, 158, 157, 170, 167, 154, 154, 158, 159, 161, 159, 154, 162, 158, 150, 160, 158, 168, 165, 154, 154, 163, 155, 162, 144, 161, 152, 157, 166, 155, 160, 159, 162, 163, 157, 155, 165, 166, 156, 165, 156, 156, 157, 149, 174, 152, 170, 164, 167, 155, 159, 156, 147, 158, 158, 157, 156, 156, 162, 163, 161, 153, 158, 165, 164, 165, 153, 174, 153, 166, 160, 158, 160, 158, 164, 164, 161, 151, 157, 167, 165, 165, 168, 156, 146, 158, 154, 158, 155, 157, 176, 157, 168, 168, 163, 178, 161, 166, 149, 158, 159, 177, 155, 157, 158, 161, 159, 165, 156, 158, 161, 154, 158, 148, 160, 157, 154, 155, 167, 155, 156, 164, 172, 158, 161, 161, 169, 165, 156, 161, 153, 156, 157, 150, 163, 160, 164, 148, 156, 153, 164, 146, 153, 145, 157, 176, 170, 148, 161, 156, 160, 156, 153, 142, 164, 157, 162, 168, 166, 165, 162, 152, 163, 166, 162, 156, 164, 152, 165, 152, 154, 163, 162, 161, 161, 166, 166, 160, 154, 150, 163, 156, 152, 158, 169, 167, 158, 158, 165, 157, 166, 153, 161, 162, 159, 158, 155, 156, 167, 153, 163, 168, 153, 155, 159, 162, 158, 162, 158, 152, 153, 159, 151, 164, 159, 156, 155, 151, 165, 156, 160, 163, 155, 154, 152, 164, 164, 155, 153, 168, 156, 153, 160, 163, 148, 160, 156, 161, 158, 161, 160, 166, 165, 157, 149, 150, 156, 154, 161, 163, 164, 149, 163, 152, 157, 155, 168, 163, 172, 151, 158, 154, 172, 165, 160, 160, 155, 165, 160, 168, 157, 158, 150, 157, 160, 178, 170, 163, 168, 161, 167, 167, 152, 164, 162, 156, 155, 157, 158, 154, 162, 161, 157, 157, 172, 167, 166, 162, 157, 157, 162, 161, 158, 154, 154, 160, 159, 162, 166, 155, 164, 156, 169, 165, 157, 161, 149, 164, 164, 178, 158, 159, 156, 153, 172, 165, 161, 154, 157, 157, 155, 159, 155, 153, 163, 162, 164, 156, 162, 156, 160, 160, 168, 167, 151, 159, 162, 156, 161, 175, 150, 153, 148, 157, 162, 153, 163, 158, 167, 153, 163, 158, 170, 155, 160, 159, 156, 155, 162, 153, 159, 160, 151, 169, 150, 152, 162, 169, 161, 160, 165, 162, 166, 156, 165, 153, 161, 153, 154, 155, 155, 167, 152, 159, 161, 160, 158, 157, 160, 151, 161, 159, 158, 165, 161, 184, 159, 149, 152, 166, 160, 161, 164, 157, 159, 166, 158, 151, 164, 166, 159, 152, 155, 164, 165, 165, 173, 167, 168, 160, 154, 164, 162, 157, 157, 150, 154, 150, 153, 161, 154, 163, 153, 151, 154, 161, 149, 166, 162, 166, 161, 156, 154, 167, 159, 153, 153, 159, 152, 153, 156, 167, 160, 172, 160, 155, 160, 164, 163, 163, 165, 160, 161, 163, 155, 158, 157, 154, 157, 161, 160, 168, 166, 151, 161, 167, 157, 160, 164, 157, 155, 155, 154, 156, 158, 156, 166, 164, 157, 162, 160, 159, 153, 154, 157, 154, 155, 166, 164, 173, 157, 149, 159, 152, 159, 174, 157, 158, 163, 155, 163, 166, 169, 150, 169, 164, 159, 154, 151, 143, 161, 164, 155, 169, 155, 167, 155, 162, 170, 158, 164, 141, 145, 166, 174, 149, 162, 150, 150, 162, 160, 170, 152, 165, 158, 166, 158, 162, 160, 170, 172, 150, 171, 162, 166, 157, 159, 172, 164, 162, 160, 168, 161, 157, 160, 172, 167, 152, 159, 172, 152, 161, 163, 153, 154, 151, 164, 158, 165, 143, 159, 163, 188, 158, 172, 156, 159, 153, 161, 155, 154, 161, 164, 164, 154, 161, 155, 163, 160, 162, 173, 169, 168, 161, 151, 147, 152, 159, 155, 159, 164, 143, 155, 159, 164, 172, 164, 170, 160, 168, 170, 153, 165, 163, 147, 162, 153, 160, 152, 158, 165, 159, 158, 148, 165, 160, 179, 159, 172, 152, 164, 164, 161, 157, 164, 165, 159, 161, 156, 159, 160, 159, 166, 160, 161, 165, 168, 166, 169, 141, 159, 152, 157, 156, 166, 170, 159, 156, 156, 174, 158, 167, 161, 176, 163, 163, 156, 152, 165, 175, 153, 154, 162, 163, 168, 155, 160, 154, 150, 158, 157, 151, 151, 157, 149, 162, 153, 158, 163, 157, 156, 145, 154, 156, 156, 157, 155, 168, 156, 154, 159, 165, 157, 161, 151, 164, 163, 165, 160, 145, 164, 162, 167, 165, 158, 166, 167, 172, 153, 167, 156, 167, 162, 161, 170, 152, 157, 153, 161, 158, 157, 158, 164, 159, 169, 161, 157, 167, 157, 164, 167, 158, 161, 172, 150, 158, 151, 156, 153, 155, 173, 168, 165, 157, 160, 166, 161, 159, 156, 165, 160, 168, 162, 152, 156, 147, 165, 160, 170, 168, 164, 161, 160, 168, 172, 149, 176, 145, 154, 148, 165, 159, 162, 156, 164, 168, 160, 163, 152, 167, 165, 159, 162, 160, 168, 166, 164, 161, 159, 158, 152, 158, 181, 163, 151, 163, 158, 168, 155, 162, 165, 184, 162, 155, 160, 173, 157, 167, 155, 165, 161, 167, 169, 158, 158, 164, 161, 149, 163, 158, 155, 155, 150, 162, 169, 166, 152, 170, 161, 155, 169, 153, 166, 160, 150, 150, 168, 149, 166, 163, 148, 164, 158, 164, 157, 164, 163, 152, 165, 166, 165, 149, 159, 157, 167, 166, 159, 151, 159, 167, 151, 158, 170, 151, 171, 159, 164, 155, 158, 160, 152, 158, 160, 160, 147, 145, 148, 158, 166, 166, 157, 161, 169, 159, 157, 155, 156, 169, 156, 167, 170, 159, 160, 180, 163, 161, 156, 162, 187, 162, 148, 162, 155, 156, 160, 163, 163, 157, 169, 162, 169, 152, 174, 171, 162, 161, 157, 167, 147, 163, 167, 166, 157, 161, 159, 161, 147, 158, 147, 169, 164, 169, 164, 154, 166, 165, 158, 159, 164, 162, 166, 162, 156, 165, 161, 157, 168, 150, 168, 160, 156, 160, 160, 153, 149, 153, 159, 151, 169, 158, 167, 164, 158, 160, 161, 174, 158, 152, 161, 158, 168, 156, 149, 159, 167, 164, 162, 173, 164, 155, 155, 158, 166, 168, 162, 153, 170, 155, 166, 160, 160, 162, 147, 160, 163, 163, 162, 164, 161, 151, 158, 143, 172, 162, 161, 159, 163, 155, 160, 161, 158, 163, 165, 173, 166, 157, 157, 169, 158, 168, 160, 167, 155, 161, 153, 157, 154, 168, 157, 166, 157, 168, 156, 158, 153, 168, 132, 153, 165, 165, 165, 161, 154, 161, 159, 156, 167, 146, 162, 153, 156, 164, 154, 161, 168, 158, 155, 163, 152, 155, 163, 171, 164, 157, 156, 155, 154, 156, 168, 158, 153, 157, 160, 154, 151, 165, 157, 160, 255, 165, 163, 166, 162, 157, 156, 157, 166, 166, 163, 170, 165, 158, 163, 167, 151, 150, 159, 157, 159, 157, 168, 152, 160, 160, 153, 163, 161, 165, 159, 157, 153, 156, 148, 160, 163, 169, 166, 158, 160, 165, 150, 162, 154, 164, 136, 166, 160, 146, 162, 151, 163, 159, 152, 148, 162, 155, 160, 163, 195, 154, 158, 163, 158, 160, 156, 156, 157, 162, 158, 161, 165, 165, 153, 156, 141, 159, 153, 162, 163, 149, 154, 164, 159, 157, 168, 154, 178, 157, 161, 162, 158, 160, 154, 149, 164, 166, 160, 164, 155, 159, 155, 159, 159, 160, 154, 158, 152, 151, 153, 163, 163, 163, 163, 158, 160, 161, 158, 155, 154, 166, 162, 158, 145, 160, 161, 155, 156, 156, 162, 131, 161, 159, 164, 161, 170, 160, 160, 163, 155, 156, 161, 166, 159, 151, 154, 169, 168, 159, 165, 160, 175, 156, 145, 154, 166, 157, 158, 163, 156, 169, 153, 164, 159, 156, 154, 159, 169, 162, 161, 162, 161, 162, 173, 169, 163, 158, 156, 164, 164, 155, 155, 166, 164, 167, 155, 161, 157, 163, 155, 147, 130, 153, 162, 157, 154, 166, 167, 162, 155, 161, 159, 158, 168, 163, 153, 170, 154, 154, 159, 164, 154, 158, 161, 161, 163, 154, 158, 155, 162, 164, 153, 159, 159, 169, 165, 153, 159, 162, 157, 159, 145, 154, 158, 169, 161, 156, 163, 154, 163, 153, 162, 157, 160, 153, 161, 154, 158, 160, 164, 155, 159, 156, 170, 157, 158, 159, 158, 163, 167, 162, 160, 160, 167, 155, 164, 152, 165, 156, 158, 158, 158, 159, 164, 154, 165, 160, 158, 156, 156, 166, 164, 161, 165, 170, 156, 150, 160, 159, 95, 158, 145, 146, 160, 155, 152, 161, 163, 149, 159, 161, 164, 158, 155, 164, 164, 144, 164, 152, 155, 157, 161, 162, 153, 158, 158, 167, 158, 161, 165, 160, 161, 145, 158, 163, 155, 165, 162, 160, 162, 183, 163, 158, 157, 160, 164, 136, 160, 152, 165, 161, 155, 162, 159, 163, 164, 172, 164, 163, 164, 157, 159, 162, 148, 161, 167, 156, 155, 159, 163, 156, 156, 156, 156, 166, 163, 168, 155, 164, 154, 158, 172, 152, 161, 179, 161, 163, 148, 162, 151, 151, 153, 162, 171, 160, 168, 154, 162, 161, 160, 161, 158, 157, 158, 157, 160, 154, 146, 161, 152, 149, 159, 168, 164, 156, 165, 155, 152, 161, 167, 161, 160, 160, 167, 156, 167, 160, 162, 158, 150, 158, 165, 172, 157, 163, 157, 155, 157, 158, 161, 172, 163, 149, 157, 146, 156, 153, 155, 160, 159, 158, 155, 161, 168, 162, 159, 160, 149, 165, 166, 156, 154, 149, 153, 168, 165, 159, 159, 160, 161, 156, 163, 164, 163, 155, 163, 161, 155, 162, 169, 156, 166, 150, 154, 175, 154, 156, 155, 157, 164, 158, 158, 165, 174, 160, 156, 161, 160, 163, 157, 160, 158, 162, 160, 163, 153, 165, 164, 158, 156, 160, 165, 154, 163, 162, 164, 169, 172, 165, 154, 157, 151, 161, 169, 165, 152, 156, 156, 156, 158, 141, 165, 163, 164, 168, 159, 157, 165, 164, 156, 155, 171, 160, 163, 172, 163, 156, 158, 159, 150, 158, 158, 152, 168, 155, 158, 148, 159, 159, 166, 162, 154, 160, 161, 153, 163, 170, 161, 163, 162, 149, 155, 162, 155, 150, 154, 168, 164, 151, 164, 160, 157, 162, 173, 153, 152, 173, 161, 158, 153, 162, 155, 157, 149, 166, 154, 160, 160, 161, 163, 163, 158, 167, 156, 153, 162, 160, 164, 163, 161, 163, 160, 150, 158, 167, 162, 155, 164, 166, 159, 156, 159, 157, 160, 155, 165, 162, 148, 159, 166, 168, 159, 163, 159, 154, 159, 163, 167, 162, 159, 168, 162, 157, 160, 162, 156, 159, 156, 161, 152, 159, 151, 156, 162, 164, 156, 157, 166, 153, 151, 161, 155, 156, 162, 162, 162, 163, 146, 160, 169, 164, 162, 151, 154, 161, 154, 160, 163, 162, 160, 161, 154, 156, 153, 161, 165, 158, 166, 157, 150, 160, 163, 151, 158, 161, 160, 149, 164, 163, 156, 169, 154, 153, 156, 166, 157, 166, 163, 160, 146, 165, 160, 156, 166, 164, 167, 153, 166, 158, 149, 158, 154, 161, 165, 162, 155, 165, 153, 167, 160, 155, 165, 159, 160, 157, 163, 155, 165, 161, 155, 158, 163, 168, 152, 151, 165, 158, 162, 153, 159, 163, 160, 154, 163, 169, 157, 158, 159, 154, 161, 162, 160, 164, 170, 159, 162, 159, 158, 155, 160, 161, 159, 167, 157, 156, 153, 156, 164, 161, 167, 161, 156, 166, 160, 158, 161, 168, 161, 170, 172, 160, 155, 161, 158, 158, 163, 165, 155, 163, 160, 155, 158, 160, 158, 162, 154, 161, 170, 168, 167, 160, 158, 155, 158, 167, 171, 158, 173, 156, 159, 158, 163, 149, 170, 162, 162, 154, 164, 157, 167, 161, 167, 162, 155, 158, 165, 161, 166, 161, 157, 155, 161, 156, 156, 151, 162, 174, 174, 161, 155, 162, 156, 155, 185, 165, 154, 160, 164, 150, 167, 162, 156, 160, 160, 163, 150, 163, 156, 165, 159, 159, 155, 158, 166, 156, 149, 159, 163, 157, 164, 155, 162, 157, 158, 159, 151, 162, 173, 160, 156, 151, 151, 159, 163, 156, 159, 153, 153, 162, 154, 156, 163, 164, 160, 158, 161, 167, 159, 164, 164, 168, 160, 161, 152, 153, 160, 156, 160, 159, 157, 160, 156, 154, 156, 151, 166, 161, 159, 164, 150, 158, 158, 157, 159, 167, 161, 157, 153, 154, 153, 160, 153, 152, 164, 162, 156, 157, 164, 158, 162, 159, 160, 160, 168, 157, 158, 164, 152, 166, 151, 166, 140, 165, 169, 150, 161, 168, 166, 169, 155, 158, 162, 158, 156, 164, 149, 170, 153, 167, 155, 167, 153, 164, 163, 161, 154, 156, 160, 160, 151, 153, 162, 161, 168, 154, 173, 155, 138, 154, 161, 163, 162, 145, 163, 157, 167, 158, 158, 161, 163, 156, 153, 159, 159, 160, 154, 154, 162, 164, 183, 160, 160, 161, 155, 158, 165, 163, 155, 160, 159, 167, 156, 159, 162, 159, 156, 159, 160, 160, 157, 161, 166, 163, 141, 160, 161, 149, 162, 152, 160, 158, 155, 157, 163, 148, 162, 168, 159, 158, 153, 175, 172, 152, 154, 169, 157, 157, 159, 154, 155, 159, 155, 153, 150, 163, 158, 155, 170, 158, 165, 162, 159, 181, 157, 163, 157, 157, 169, 155, 156, 158, 157, 166, 159, 154, 166, 168, 160, 161, 169, 154, 149, 152, 160, 163, 139, 156, 157, 160, 163, 158, 148, 149, 156, 158, 159, 161, 162, 160, 156, 161, 153, 165, 161, 154, 164, 163, 153, 163, 173, 168, 148, 158, 163, 156, 162, 170, 162, 157, 159, 160, 151, 161, 145, 156, 156, 167, 173, 159, 159, 162, 146, 162, 159, 184, 174, 156, 167, 170, 168, 161, 164, 156, 152, 178, 156, 157, 171, 166, 150, 165, 160, 162, 168, 142, 159, 158, 163, 154, 163, 152, 157, 152, 150, 165, 156, 153, 157, 145, 161, 158, 165, 175, 163, 166, 161, 162, 154, 159, 161, 174, 158, 150, 150, 158, 155, 172, 156, 142, 161, 156, 160, 152, 159, 163, 160, 159, 154, 152, 160, 152, 160, 152, 146, 164, 164, 161, 149, 162, 158, 158, 155, 155, 163, 164, 144, 150, 159, 155, 159, 171, 162, 157, 154, 166, 167, 164, 157, 173, 149, 156, 154, 145, 162, 153, 160, 160, 158, 158, 159, 146, 161, 165, 157, 159, 150, 162, 148, 162, 154, 170, 176, 162, 151, 158, 162, 159, 154, 159, 151, 165, 154, 164, 161, 167, 158, 158, 156, 169, 164, 155, 164, 157, 148, 172, 149, 176, 167, 165, 153, 155, 163, 163, 170, 149, 154, 161, 159, 150, 153, 146, 162, 160, 154, 162, 155, 161, 160, 172, 161, 156, 161, 155, 165, 141, 164, 155, 162, 154, 155, 166, 145, 158, 155, 160, 158, 152, 161, 156, 166, 147, 161, 154, 163, 164, 165, 178, 176, 156, 161, 161, 172, 156, 166, 165, 155, 146, 165, 157, 158, 158, 161, 160, 154, 157, 152, 160, 159, 157, 158, 153, 163, 156, 166, 145, 176, 159, 146, 145, 172, 161, 163, 159, 166, 156, 161, 156, 160, 161, 156, 165, 177, 167, 153, 168, 168, 152, 152, 159, 156, 174, 159, 164, 159, 148, 168, 167, 152, 163, 154, 157, 160, 162, 149, 159, 161, 144, 159, 164, 161, 181, 153, 162, 154, 159, 159, 161, 164, 163, 155, 158, 169, 153, 154, 154, 159, 160, 167, 163, 154, 176, 142, 164, 162, 162, 164, 161, 150, 132, 156, 154, 161, 159, 169, 155, 147, 162, 157, 168, 155, 163, 165, 157, 161, 159, 156, 174, 161, 162, 160, 151, 153, 152, 157, 151, 146, 164, 164, 156, 146, 161, 158, 177, 160, 147, 159, 157, 161, 157, 159, 159, 164, 160, 158, 161, 154, 159, 160, 161, 154, 160, 163, 153, 155, 167, 176, 160, 159, 158, 182, 160, 160, 167, 165, 154, 154, 159, 158, 152, 163, 162, 164, 166, 156, 163, 165, 167, 162, 164, 162, 158, 173, 162, 158, 156, 163, 175, 155, 157, 161, 164, 162, 160, 166, 155, 170, 160, 153, 153, 163, 160, 162, 161, 159, 161, 166, 154, 156, 168, 160, 159, 161, 156, 165, 157, 161, 150, 158, 163, 160, 162, 140, 161, 163, 167, 151, 156, 155, 163, 156, 164, 156, 162, 153, 161, 168, 158, 160, 158, 150, 160, 160, 159, 160, 176, 148, 158, 138, 154, 163, 166, 158, 174, 154, 158, 155, 163, 160, 164, 152, 163, 173, 161, 156, 157, 157, 160, 164, 161, 161, 157, 161, 173, 161, 153, 164, 158, 167, 150, 160, 165, 152, 160, 163, 165, 159, 160, 161, 166, 162, 158, 169, 167, 160, 164, 161, 158, 151, 155, 152, 159, 151, 160, 160, 154, 165, 163, 167, 167, 153, 158, 154, 163, 160, 153, 166, 168, 161, 165, 168, 168, 159, 159, 158, 164, 165, 160, 167, 162, 163, 156, 150, 158, 152, 163, 154, 171, 162, 169, 159, 149, 153, 159, 161, 157, 148, 164, 158, 160, 155, 155, 151, 160, 164, 161, 163, 154, 159, 161, 157, 159, 158, 164, 158, 171, 154, 164, 160, 156, 157, 161, 160, 166, 162, 167, 153, 157, 160, 164, 159, 161, 159, 155, 160, 161, 155, 153, 161, 163, 164, 160, 163, 159, 162, 163, 178, 164, 155, 166, 163, 163, 166, 158, 156, 153, 179, 164, 162, 164, 159, 150, 159, 156, 156, 160, 155, 165, 159, 168, 163, 160, 160, 167, 163, 154, 161, 162, 155, 162, 201, 162, 160, 159, 167, 161, 149, 154, 163, 160, 159, 165, 148, 170, 164, 159, 160, 161, 148, 161, 161, 155, 159, 162, 160, 166, 158, 144, 167, 164, 153, 158, 158, 156, 154, 161, 190, 159, 154, 157, 156, 163, 160, 157, 160, 157, 148, 157, 158, 161, 161, 164, 157, 157, 166, 169, 161, 169, 160, 156, 164, 152, 159, 157, 148, 160, 151, 159, 162, 156, 152, 155, 159, 152, 158, 158, 156, 155, 162, 156, 171, 189, 160, 165, 158, 161, 164, 162, 154, 159, 157, 161, 165, 166, 160, 155, 153, 161, 162, 157, 166, 160, 164, 157, 160, 156, 161, 160, 167, 156, 166, 162, 158, 162, 165, 159, 160, 165, 155, 158, 159, 161, 160, 163, 151, 155, 157, 154, 156, 160, 155, 157, 158, 158, 173, 161, 161, 179, 160, 159, 139, 162, 153, 160, 161, 162, 156, 159, 160, 158, 157, 166, 156, 158, 162, 160, 168, 162, 163, 160, 166, 156, 160, 159, 146, 159, 165, 157, 173, 164, 164, 158, 156, 153, 147, 162, 162, 162, 159, 162, 158, 157, 154, 158, 157, 158, 183, 164, 158, 153, 159, 159, 163, 156, 158, 160, 167, 156, 161, 161, 160, 158, 152, 161, 158, 156, 158, 156, 167, 160, 156, 152, 149, 160, 160, 151, 157, 162, 146, 168, 155, 162, 162, 147, 165, 153, 154, 158, 161, 163, 162, 177, 160, 165, 159, 155, 164, 158, 160, 154, 165, 164, 157, 154, 153, 161, 158, 161, 159, 162, 151, 164, 155, 161, 168, 155, 160, 166, 158, 158, 158, 169, 152, 153, 163, 155, 156, 156, 168, 157, 158, 158, 160, 156, 160, 169, 159, 164, 156, 159, 154, 159, 154, 164, 154, 161, 159, 163, 162, 164, 159, 151, 164, 169, 160, 165, 156, 154, 158, 163, 159, 160, 157, 168, 157, 156, 158, 160, 159, 163, 159, 151, 163, 154, 164, 151, 162, 163, 161, 159, 151, 165, 159, 150, 155, 168, 167, 154, 165, 156, 158, 155, 159, 159, 159, 155, 159, 150, 151, 148, 153, 159, 162, 166, 160, 160, 166, 158, 153, 161, 176, 161, 161, 157, 159, 158, 161, 154, 154, 159, 155, 156, 157, 156, 154, 156, 155, 163, 153, 164, 169, 159, 156, 156, 165, 162, 162, 155, 161, 162, 150, 148, 153, 168, 154, 164, 167, 156, 167, 162, 157, 156, 168, 162, 162, 170, 159, 157, 150, 155, 151, 168, 154, 157, 161, 153, 157, 162, 158, 155, 157, 147, 159, 162, 155, 165, 155, 160, 159, 167, 164, 156, 160, 163, 155, 155, 163, 158, 156, 170, 161, 166, 163, 164, 161, 150, 161, 153, 153, 162, 162, 154, 166, 160, 147, 157, 159, 153, 155, 156, 157, 165, 154, 156, 161, 164, 157, 161, 164, 164, 155, 155, 167, 159, 159, 160, 134, 163, 168, 155, 162, 157, 158, 160, 156, 161, 155, 164, 158, 168, 177, 153, 162, 157, 157, 150, 157, 163, 161, 150, 166, 166, 163, 155, 161, 158, 157, 154, 161, 154, 160, 164, 161, 166, 157, 166, 161, 155, 160, 170, 163, 163, 152, 164, 158, 157, 157, 154, 155, 157, 163, 158, 156, 162, 162, 163, 164, 155, 161, 153, 155, 157, 165, 156, 160, 154, 162, 155, 153, 174, 166, 157, 158, 162, 158, 154, 168, 163, 168, 154, 154, 159, 170, 155, 158, 168, 163, 163, 159, 164, 158, 158, 164, 158, 155, 160, 162, 156, 156, 156, 160, 154, 156, 170, 165, 151, 162, 158, 157, 164, 169, 153, 158, 160, 152, 165, 149, 151, 161, 160, 159, 160, 164, 156, 159, 163, 159, 158, 171, 162, 160, 155, 158, 152, 163, 176, 156, 160, 160, 160, 165, 149, 159, 155, 150, 156, 168, 167, 151, 158, 163, 159, 163, 169, 154, 157, 162, 173, 144, 155, 154, 160, 151, 158, 161, 153, 158, 148, 155, 166, 164, 159, 160, 162, 180, 159, 150, 165, 159, 157, 161, 156, 155, 157, 155, 166, 163, 159, 163, 155, 156, 160, 161, 158, 156, 156, 156, 153, 159, 159, 156, 157, 163, 157, 163, 163, 166, 154, 155, 160, 163, 161, 160, 164, 173, 151, 152, 166, 156, 164, 156, 162, 155, 160, 158, 164, 162, 156, 159, 165, 149, 167, 154, 154, 161, 164, 157, 163, 157, 158, 163, 152, 157, 155, 158, 161, 150, 150, 172, 164, 166, 165, 160, 149, 168, 158, 163, 153, 163, 161, 164, 158, 165, 163, 159, 171, 160, 161, 159, 162, 162, 158, 159, 154, 163, 154, 157, 162, 160, 160, 164, 164, 151, 160, 163, 165, 163, 161, 157, 154, 162, 162, 163, 152, 160, 164, 156, 150, 157, 157, 157, 151, 158, 168, 155, 164, 159, 154, 159, 166, 155, 160, 161, 170, 157, 164, 158, 165, 158, 159, 162, 156, 161, 157, 159, 156, 164, 166, 158, 159, 159, 152, 158, 166, 158, 155, 162, 165, 165, 160, 160, 164, 160, 167, 161, 163, 168, 171, 163, 158, 154, 158, 177, 159, 160, 161, 156, 165, 170, 163, 152, 153, 163, 158, 168, 152, 165, 167, 154, 161, 149, 157, 168, 163, 161, 162, 156, 159, 161, 162, 155, 168, 154, 159, 161, 156, 162, 160, 160, 156, 159, 160, 164, 169, 157, 157, 160, 162, 161, 162, 153, 154, 156, 169, 159, 158, 156, 165, 158, 158, 165, 160, 152, 159, 166, 160, 165, 167, 157, 163, 155, 159, 146, 163, 158, 164, 164, 157, 155, 164, 160, 157, 151, 160, 158, 161, 156, 156, 160, 151, 167, 163, 158, 152, 160, 171, 162, 160, 164, 166, 152, 164, 160, 178, 158, 160, 158, 162, 156, 157, 161, 164, 165, 164, 155, 168, 158, 166, 157, 160, 151, 169, 168, 160, 159, 165, 163, 159, 162, 159, 157, 158, 165, 163, 155, 159, 163, 160, 160, 169, 154, 164, 159, 162, 157, 158, 169, 155, 162, 166, 161, 164, 164, 155, 162, 151, 159, 161, 170, 168, 161, 165, 164, 157, 160, 165, 154, 160, 161, 160, 156, 150, 158, 160, 166, 163, 161, 158, 159, 160, 155, 161, 167, 159, 157, 158, 160, 158, 159, 159, 157, 160, 159, 160, 156, 160, 159, 170, 166, 169, 157, 168, 153, 164, 161, 162, 163, 161, 167, 158, 162, 169, 161, 166, 155, 172, 168, 157, 155, 163, 159, 172, 163, 156, 162, 157, 162, 161, 154, 157, 157, 164, 162, 166, 155, 156, 165, 171, 161, 159, 153, 169, 159, 160, 166, 166, 151, 164, 155, 158, 160, 161, 158, 155, 153, 164, 163, 167, 164, 162, 162, 168, 163, 157, 174, 163, 163, 163, 161, 163, 165, 149, 155, 148, 153, 159, 164, 153, 158, 158, 159, 159, 161, 158, 151, 151, 158, 166, 160, 161, 160, 162, 164, 155, 162, 150, 157, 166, 163, 154, 160, 162, 153, 156, 162, 165, 152, 161, 163, 158, 161, 155, 166, 153, 160, 161, 161, 159, 149, 148, 154, 152, 149, 150, 162, 170, 156, 163, 168, 163, 163, 157, 163, 151, 167, 157, 162, 174, 165, 158, 157, 152, 153, 156, 169, 161, 157, 161, 162, 165, 157, 166, 157, 161, 157, 160, 154, 163, 167, 159, 161, 163, 165, 156, 157, 155, 161, 166, 159, 146, 158, 162, 153, 157, 164, 156, 148, 164, 158, 155, 156, 153, 157, 164, 160, 162, 161, 165, 170, 160, 163, 155, 147, 160, 161, 153, 170, 159, 163, 152, 151, 156, 165, 168, 150, 161, 150, 164, 159, 160, 157, 174, 172, 159, 165, 157, 168, 162, 170, 163, 151, 162, 165, 167, 157, 162, 157, 156, 159, 161, 156, 160, 176, 164, 164, 167, 157, 152, 158, 153, 160, 156, 170, 172, 173, 154, 164, 156, 155, 150, 166, 148, 152, 154, 160, 162, 160, 161, 153, 158, 160, 164, 152, 163, 164, 176, 157, 164, 174, 164, 161, 155, 160, 162, 160, 167, 165, 165, 152, 167, 161, 157, 157, 158, 150, 153, 150, 166, 162, 154, 154, 162, 159, 161, 153, 149, 157, 163, 162, 164, 157, 153, 156, 173, 158, 165, 160, 162, 160, 173, 149, 152, 156, 164, 169, 158, 159, 155, 160, 155, 161, 157, 160, 164, 164, 160, 166, 153, 156, 158, 159, 147, 153, 171, 155, 168, 162, 147, 147, 162, 159, 161, 159, 168, 163, 166, 161, 163, 164, 161, 164, 167, 155, 157, 163, 165, 161, 158, 164, 158, 155, 160, 155, 144, 153, 167, 165, 154, 156, 160, 165, 167, 148, 161, 156, 160, 156, 163, 174, 169, 152, 166, 165, 160, 157, 159, 163, 154, 154, 158, 159, 161, 159, 153, 158, 157, 179, 165, 160, 154, 168, 151, 165, 169, 161, 164, 161, 168, 158, 159, 163, 164, 155, 160, 158, 156, 163, 161, 159, 158, 158, 159, 158, 167, 158, 160, 167, 160, 158, 166, 160, 156, 150, 158, 154, 157, 154, 170, 154, 162, 170, 165, 157, 170, 159, 154, 160, 154, 157, 159, 160, 150, 180, 158, 158, 165, 154, 157, 157, 154, 159, 162, 159, 159, 159, 162, 162, 159, 164, 160, 148, 154, 149, 167, 157, 154, 153, 160, 161, 161, 159, 153, 161, 154, 150, 162, 146, 159, 153, 166, 152, 155, 154, 162, 165, 151, 167, 161, 155, 150, 159, 164, 158, 162, 158, 169, 163, 155, 157, 155, 154, 166, 151, 161, 157, 166, 147, 160, 159, 167, 169, 163, 153, 161, 156, 165, 155, 162, 156, 152, 163, 163, 151, 152, 161, 165, 161, 158, 153, 157, 167, 160, 159, 159, 168, 165, 152, 161, 150, 156, 162, 162, 171, 165, 156, 156, 170, 167, 146, 150, 156, 150, 158, 163, 163, 159, 163, 175, 156, 162, 170, 160, 159, 155, 159, 158, 160, 157, 153, 163, 140, 152, 154, 153, 153, 151, 162, 161, 162, 151, 155, 158, 160, 170, 161, 165, 164, 157, 165, 171, 167, 153, 157, 161, 156, 146, 156, 167, 156, 161, 161, 161, 158, 164, 160, 162, 156, 154, 159, 158, 157, 150, 150, 152, 169, 155, 158, 151, 162, 149, 165, 154, 162, 165, 164, 155, 151, 152, 153, 160, 169, 151, 169, 160, 163, 163, 157, 155, 158, 153, 154, 160, 157, 155, 157, 160, 156, 157, 154, 161, 152, 160, 154, 159, 166, 155, 172, 165, 157, 167, 155, 151, 153, 161, 160, 148, 159, 151, 172, 162, 159, 142, 152, 154, 174, 156, 169, 160, 152, 166, 161, 161, 167, 163, 157, 163, 151, 145, 167, 159, 158, 154, 165, 156, 158, 164, 163, 160, 162, 161, 161, 170, 159, 165, 158, 155, 162, 191, 159, 168, 156, 153, 162, 161, 159, 157, 160, 158, 156, 155, 163, 160, 158, 157, 163, 161, 162, 158, 164, 154, 161, 152, 165, 157, 160, 168, 154, 157, 161, 155, 160, 164, 162, 161, 159, 154, 164, 157, 164, 152, 157, 160, 162, 156, 157, 160, 161, 159, 164, 158, 161, 165, 159, 158, 165, 154, 168, 160, 174, 160, 157, 153, 168, 160, 154, 157, 151, 160, 156, 158, 156, 163, 158, 164, 163, 161, 155, 153, 158, 158, 160, 172, 157, 162, 160, 159, 158, 151, 165, 156, 169, 160, 167, 161, 154, 163, 159, 164, 159, 156, 165, 160, 161, 157, 154, 163, 162, 170, 164, 158, 172, 155, 157, 158, 164, 158, 156, 160, 161, 162, 155, 158, 152, 165, 161, 157, 163, 157, 168, 153, 146, 168, 165, 145, 158, 161, 161, 168, 136, 170, 171, 159, 162, 169, 155, 156, 156, 164, 170, 156, 166, 162, 160, 158, 157, 159, 153, 154, 156, 157, 164, 163, 150, 155, 169, 164, 169, 167, 151, 159, 165, 153, 163, 157, 154, 174, 168, 156, 161, 155, 166, 161, 155, 159, 162, 161, 159, 165, 165, 150, 154, 172, 167, 159, 150, 160, 155, 151, 162, 154, 164, 164, 157, 155, 155, 165, 157, 151, 155, 159, 151, 163, 156, 161, 158, 162, 162, 163, 154, 159, 164, 150, 162, 155, 162, 166, 162, 161, 156, 160, 161, 153, 162, 157, 156, 161, 156, 150, 156, 162, 164, 159, 163, 156, 166, 158, 154, 169, 154, 162, 164, 144, 147, 150, 160, 159, 164, 160, 163, 153, 168, 160, 159, 162, 157, 152, 165, 159, 160, 157, 159, 162, 161, 155, 165, 158, 159, 159, 157, 173, 154, 171, 153, 151, 161, 158, 153, 157, 164, 169, 167, 158, 163, 170, 162, 154, 162, 163, 155, 168, 158, 154, 156, 151, 157, 156, 159, 159, 165, 158, 160, 165, 160, 167, 155, 169, 166, 154, 159, 153, 165, 156, 158, 157, 156, 167, 161, 148, 155, 154, 162, 161, 168, 165, 162, 160, 160, 159, 160, 156, 161, 167, 158, 164, 166, 163, 165, 167, 164, 156, 160, 165, 172, 161, 160, 172, 163, 157, 153, 175, 165, 162, 159, 165, 163, 162, 160, 162, 155, 158, 158, 161, 155, 157, 159, 151, 160, 164, 165, 156, 165, 164, 158, 162, 162, 167, 160, 166, 159, 164, 154, 157, 165, 173, 160, 162, 161, 161, 157, 156, 150, 162, 160, 164, 186, 165, 158, 170, 165, 166, 154, 166, 160, 164, 162, 163, 159, 163, 159, 160, 170, 166, 151, 158, 159, 158, 159, 161, 160, 165, 162, 155, 159, 159, 165, 164, 170, 153, 165, 161, 153, 157, 161, 157, 164, 161, 159, 162, 158, 159, 160, 154, 159, 164, 156, 153, 158, 156, 157, 148, 162, 157, 150, 162, 163, 154, 155, 148, 160, 158, 154, 158, 161, 155, 163, 152, 157, 153, 145, 160, 166, 163, 162, 157, 162, 157, 163, 143, 157, 159, 155, 161, 161, 153, 165, 163, 156, 156, 169, 151, 156, 163, 161, 158, 160, 160, 165, 158, 144, 161, 153, 160, 155, 162, 162, 160, 154, 150, 165, 165, 165, 159, 159, 159, 159, 167, 163, 157, 161, 165, 153, 151, 151, 157, 156, 163, 159, 169, 170, 159, 157, 159, 153, 156, 159, 153, 160, 173, 165, 158, 159, 156, 158, 157, 160, 149, 161, 155, 156, 167, 159, 160, 163, 153, 160, 160, 162, 160, 155, 167, 159, 155, 148, 161, 164, 156, 158, 163, 160, 160, 162, 162, 152, 160, 161, 156, 161, 159, 154, 156, 159, 165, 163, 152, 151, 158, 161, 153, 167, 157, 165, 165, 159, 167, 158, 154, 152, 162, 153, 165, 155, 157, 164, 159, 157, 156, 156, 166, 153, 164, 160, 159, 160, 158, 163, 165, 158, 160, 162, 159, 161, 154, 164, 155, 158, 155, 167, 168, 164, 157, 157, 158, 157, 155, 152, 153, 157, 156, 156, 165, 163, 160, 160, 157, 167, 167, 156, 166, 156, 159, 165, 162, 160, 163, 171, 164, 158, 150, 156, 151, 158, 163, 150, 163, 147, 157, 160, 165, 163, 150, 157, 166, 162, 165, 169, 157, 161, 163, 166, 160, 151, 166, 157, 164, 158, 160, 152, 163, 170, 160, 162, 160, 161, 169, 166, 162, 159, 162, 158, 164, 159, 160, 162, 152, 157, 161, 158, 160, 163, 160, 173, 160, 156, 165, 157, 162, 160, 160, 161, 174, 162, 160, 164, 157, 165, 173, 157, 162, 157, 162, 155, 154, 171, 154, 164, 158, 164, 178, 159, 155, 166, 158, 155, 159, 166, 167, 161, 163, 160, 164, 162, 152, 144, 163, 156, 159, 158, 168, 161, 158, 160, 162, 163, 155, 162, 162, 167, 154, 165, 162, 157, 159, 165, 154, 162, 160, 161, 160, 157, 165, 155, 154, 163, 155, 162, 158, 156, 161, 160, 152, 168, 154, 155, 156, 162, 160, 164, 167, 154, 160, 159, 158, 155, 162, 164, 158, 156, 157, 162, 160, 156, 156, 163, 170, 156, 162, 152, 158, 165, 164, 163, 157, 164, 167, 162, 165, 160, 160, 143, 156, 163, 147, 161, 162, 159, 159, 152, 156, 161, 161, 160, 156, 163, 153, 160, 155, 156, 157, 149, 156, 159, 161, 167, 154, 157, 156, 149, 162, 160, 163, 162, 149, 156, 156, 162, 158, 162, 160, 162, 164, 152, 154, 161, 156, 144, 157, 163, 164, 163, 153, 161, 159, 157, 156, 163, 157, 161, 156, 166, 172, 169, 169, 172, 165, 155, 163, 164, 162, 156, 155, 162, 157, 160, 168, 156, 164, 159, 158, 156, 152, 157, 163, 156, 156, 167, 152, 167, 159, 161, 151, 158, 157, 159, 151, 161, 156, 158, 152, 158, 160, 160, 159, 171, 160, 164, 155, 163, 156, 159, 165, 154, 164, 156, 162, 170, 160, 160, 148, 157, 158, 145, 162, 150, 160, 154, 155, 159, 148, 168, 156, 161, 171, 152, 158, 148, 166, 154, 163, 160, 157, 159, 147, 159, 158, 165, 160, 159, 156, 166, 157, 155, 162, 165, 156, 145, 160, 156, 170, 167, 157, 155, 152, 158, 160, 157, 149, 161, 156, 154, 164, 165, 151, 158, 157, 170, 155, 166, 157, 158, 165, 158, 158, 149, 166, 158, 161, 166, 161, 158, 161, 160, 165, 164, 160, 156, 168, 152, 145, 172, 157, 158, 162, 157, 159, 164, 156, 152, 163, 157, 159, 158, 159, 163, 163, 155, 159, 160, 164, 165, 163, 155, 161, 158, 164, 166, 161, 157, 161, 162, 156, 162, 153, 159, 162, 158, 158, 157, 163, 157, 167, 169, 153, 157, 159, 168, 163, 157, 156, 160, 164, 160, 149, 163, 160, 158, 163, 160, 163, 159, 163, 156, 158, 162, 158, 160, 152, 155, 158, 158, 158, 158, 159, 163, 158, 157, 157, 161, 166, 157, 161, 162, 162, 160, 165, 161, 165, 158, 155, 154, 163, 161, 162, 160, 162, 158, 161, 160, 155, 167, 158, 160, 163, 148, 160, 159, 163, 160, 163, 166, 161, 158, 148, 163, 151, 157, 164, 155, 161, 160, 157, 156, 161, 156, 161, 156, 161, 163, 163, 156, 151, 158, 162, 156, 159, 159, 157, 158, 163, 161, 161, 162, 161, 164, 166, 162, 163, 164, 159, 165, 157, 156, 165, 167, 163, 151, 160, 158, 160, 158, 164, 170, 165, 158, 161, 156, 162, 158, 159, 160, 158, 159, 164, 161, 164, 163, 163, 161, 156, 158, 165, 163, 157, 160, 154, 155, 166, 163, 156, 161, 160, 159, 159, 166, 161, 160, 169, 163, 161, 164, 150, 158, 164, 157, 158, 154, 162, 157, 165, 163, 156, 159, 159, 157, 143, 162, 161, 157, 157, 160, 162, 163, 162, 152, 154, 164, 155, 158, 158, 172, 167, 162, 161, 161, 162, 161, 159, 156, 161, 159, 160, 182, 163, 155, 155, 158, 159, 159, 160, 165, 157, 160, 162, 165, 165, 163, 153, 165, 160, 155, 147, 152, 160, 153, 162, 154, 164, 159, 156, 156, 157, 169, 153, 166, 169, 159, 155, 159, 144, 160, 159, 161, 158, 164, 162, 160, 161, 159, 163, 158, 162, 155, 160, 157, 165, 157, 162, 149, 157, 166, 156, 162, 161, 162, 160, 161, 160, 153, 160, 164, 170, 162, 158, 159, 160, 145, 152, 163, 164, 154, 148, 165, 160, 155, 156, 163, 164, 159, 158, 155, 159, 159, 171, 155, 157, 157, 155, 162, 169, 166, 154, 153, 163, 164, 159, 155, 161, 158, 163, 158, 156, 162, 158, 155, 156, 159, 165, 158, 159, 162, 155, 165, 157, 161, 153, 166, 164, 158, 171, 164, 155, 157, 150, 154, 163, 161, 160, 167, 164, 164, 166, 160, 153, 163, 153, 160, 160, 159, 163, 159, 162, 159, 162, 162, 163, 161, 163, 157, 156, 164, 153, 154, 158, 154, 156, 165, 160, 156, 156, 159, 169, 135, 163, 162, 152, 160, 166, 150, 168, 159, 162, 160, 154, 171, 159, 159, 169, 157, 160, 155, 159, 158, 157, 162, 161, 159, 163, 155, 158, 164, 169, 153, 155, 160, 162, 159, 162, 163, 163, 161, 153, 159, 155, 158, 158, 160, 158, 161, 163, 167, 160, 166, 157, 157, 160, 156, 152, 161, 165, 159, 158, 162, 160, 163, 165, 159, 160, 160, 152, 165, 157, 160, 153, 167, 153, 162, 165, 164, 159, 161, 153, 151, 158, 155, 167, 169, 155, 162, 166, 161, 165, 159, 148, 172, 170, 159, 158, 162, 161, 157, 150, 154, 163, 149, 162, 161, 157, 164, 157, 157, 159, 159, 149, 166, 154, 154, 151, 167, 155, 162, 149, 160, 169, 182, 165, 159, 158, 159, 148, 149, 150, 154, 153, 176, 161, 155, 151, 160, 162, 159, 146, 149, 158, 156, 160, 160, 172, 145, 191, 153, 153, 165, 178, 160, 147, 156, 158, 166, 167, 158, 159, 151, 164, 166, 158, 165, 147, 150, 166, 160, 162, 173, 157, 154, 174, 175, 164, 156, 155, 157, 171, 169, 181, 155, 160, 176, 183, 174, 155, 153, 160, 164, 158, 151, 160, 153, 156, 161, 158, 161, 153, 153, 166, 169, 159, 172, 158, 164, 168, 164, 145, 157, 165, 163, 161, 154, 156, 163, 161, 157, 149, 153, 162, 147, 166, 159, 156, 145, 161, 155, 174, 154, 176, 150, 159, 157, 162, 150, 153, 158, 166, 155, 151, 175, 155, 157, 162, 152, 155, 166, 160, 156, 157, 166, 152, 158, 171, 156, 162, 155, 187, 160, 165, 153, 154, 152, 155, 164, 164, 152, 167, 159, 140, 148, 155, 159, 154, 154, 157, 168, 163, 161, 183, 158, 167, 164, 140, 154, 158, 162, 177, 156, 146, 161, 158, 154, 159, 152, 147, 151, 164, 172, 158, 172, 154, 158, 148, 185, 156, 160, 164, 148, 162, 160, 158, 152, 150, 167, 164, 159, 167, 149, 168, 163, 161, 158, 154, 163, 151, 164, 160, 149, 154, 159, 157, 163, 170, 153, 154, 155, 160, 168, 154, 152, 166, 146, 171, 142, 150, 167, 150, 160, 149, 155, 163, 181, 157, 160, 153, 158, 150, 168, 157, 170, 165, 154, 167, 166, 162, 157, 159, 149, 158, 160, 152, 145, 149, 156, 157, 150, 163, 170, 163, 154, 159, 166, 165, 158, 171, 164, 155, 155, 161, 179, 156, 142, 154, 160, 159, 151, 170, 156, 151, 167, 155, 165, 153, 160, 166, 158, 172, 148, 163, 156, 152, 163, 162, 156, 146, 149, 141, 158, 169, 158, 152, 156, 176, 158, 162, 155, 159, 158, 147, 163, 165, 153, 154, 150, 144, 155, 157, 165, 157, 165, 153, 152, 163, 155, 165, 165, 154, 164, 168, 166, 167, 158, 152, 163, 158, 152, 158, 153, 159, 162, 159, 163, 169, 159, 164, 157, 155, 169, 154, 163, 152, 165, 170, 157, 174, 159, 163, 160, 155, 163, 162, 160, 159, 153, 165, 170, 158, 153, 164, 155, 148, 153, 173, 156, 163, 149, 157, 145, 137, 152, 142, 151, 155, 160, 162, 170, 157, 174, 150, 158, 166, 166, 170, 162, 157, 156, 155, 153, 157, 157, 163, 158, 164, 156, 158, 160, 152, 159, 143, 161, 178, 152, 162, 136, 169, 164, 155, 163, 166, 165, 158, 165, 163, 178, 161, 158, 165, 162, 165, 162, 150, 143, 166, 161, 172, 164, 158, 174, 148, 155, 164, 160, 162, 165, 166, 148, 152, 172, 158, 156, 170, 152, 152, 159, 161, 164, 125, 164, 157, 165, 159, 159, 155, 154, 158, 156, 162, 158, 161, 163, 153, 165, 159, 164, 161, 158, 158, 164, 159, 164, 156, 158, 158, 174, 168, 152, 170, 158, 155, 161, 162, 161, 158, 158, 167, 163, 160, 186, 164, 158, 158, 157, 155, 163, 160, 160, 156, 158, 155, 152, 160, 156, 160, 158, 161, 161, 154, 154, 161, 153, 164, 157, 161, 156, 162, 164, 163, 158, 158, 161, 156, 153, 155, 158, 158, 168, 164, 159, 166, 158, 168, 159, 166, 160, 157, 150, 158, 160, 154, 159, 156, 160, 159, 155, 155, 164, 159, 158, 158, 157, 168, 158, 150, 154, 159, 159, 160, 159, 155, 157, 150, 158, 159, 163, 163, 179, 153, 157, 152, 178, 159, 150, 162, 160, 162, 162, 160, 160, 156, 163, 162, 169, 159, 165, 163, 159, 160, 157, 155, 155, 159, 169, 163, 158, 147, 164, 152, 159, 160, 157, 172, 161, 157, 156, 166, 154, 151, 164, 159, 158, 155, 160, 161, 163, 170, 164, 160, 160, 158, 163, 154, 157, 158, 156, 156, 159, 160, 154, 161, 156, 161, 167, 162, 156, 153, 155, 161, 156, 160, 160, 157, 143, 166, 177, 152, 162, 158, 161, 161, 159, 163, 157, 150, 164, 158, 157, 160, 164, 155, 165, 155, 158, 162, 158, 156, 166, 156, 154, 165, 152, 159, 155, 171, 161, 159, 157, 159, 161, 157, 167, 153, 158, 155, 154, 158, 160, 163, 165, 160, 166, 152, 156, 155, 154, 168, 160, 156, 167, 164, 165, 158, 165, 158, 162, 164, 159, 161, 162, 145, 166, 162, 162, 156, 161, 159, 165, 161, 162, 165, 159, 156, 157, 160, 162, 160, 159, 161, 171, 160, 151, 163, 163, 162, 162, 156, 159, 175, 159, 162, 161, 156, 165, 163, 167, 156, 162, 167, 161, 155, 162, 162, 160, 156, 152, 153, 162, 147, 162, 171, 162, 156, 162, 168, 169, 164, 156, 161, 161, 158, 159, 150, 174, 155, 164, 160, 155, 160, 174, 159, 159, 166, 159, 145, 160, 161, 160, 148, 162, 162, 159, 160, 169, 158, 162, 161, 168, 156, 155, 164, 163, 156, 152, 166, 162, 163, 160, 160, 162, 158, 165, 158, 162, 157, 151, 162, 171, 152, 161, 152, 168, 160, 162, 157, 156, 164, 152, 160, 159, 165, 162, 157, 159, 162, 156, 161, 161, 164, 161, 160, 163, 157, 164, 172, 154, 157, 162, 160, 156, 153, 158, 157, 158, 160, 165, 157, 155, 156, 155, 161, 161, 162, 171, 158, 161, 162, 164, 163, 160, 161, 157, 161, 160, 163, 158, 161, 156, 161, 162, 159, 151, 163, 148, 159, 152, 156, 156, 161, 165, 155, 159, 154, 166, 157, 162, 155, 163, 159, 178, 158, 162, 162, 152, 168, 155, 164, 157, 154, 159, 159, 163, 156, 162, 155, 157, 163, 153, 155, 156, 161, 152, 168, 163, 159, 178, 161, 157, 170, 154, 157, 164, 159, 166, 163, 159, 162, 167, 161, 156, 157, 161, 163, 157, 163, 160, 164, 155, 158, 154, 152, 158, 156, 158, 157, 157, 150, 165, 163, 157, 152, 159, 167, 161, 162, 157, 152, 162, 159, 162, 162, 162, 158, 157, 165, 161, 163, 155, 160, 166, 159, 158, 159, 150, 153, 177, 149, 188, 155, 166, 162, 155, 168, 150, 162, 157, 158, 157, 160, 162, 161, 153, 165, 160, 155, 159, 156, 161, 157, 156, 158, 163, 160, 160, 162, 160, 166, 172, 158, 161, 159, 148, 168, 160, 159, 153, 156, 156, 166, 161, 168, 151, 159, 166, 173, 157, 160, 163, 155, 153, 158, 157, 158, 161, 157, 163, 166, 159, 158, 151, 160, 160, 159, 154, 162, 160, 160, 162, 157, 170, 157, 154, 158, 161, 155, 165, 154, 152, 158, 162, 150, 156, 163, 160, 155, 154, 160, 162, 157, 168, 162, 158, 153, 155, 175, 154, 154, 160, 160, 151, 159, 164, 163, 158, 168, 166, 159, 157, 164, 157, 160, 169, 161, 148, 158, 174, 164, 165, 165, 161, 152, 155, 163, 160, 170, 160, 147, 167, 164, 162, 160, 161, 164, 162, 153, 159, 163, 165, 160, 161, 152, 161, 169, 174, 162, 160, 159, 158, 165, 161, 157, 158, 161, 171, 165, 165, 164, 165, 151, 154, 162, 158, 162, 161, 160, 146, 159, 159, 162, 160, 158, 166, 160, 157, 164, 166, 164, 161, 158, 161, 160, 162, 155, 159, 157, 152, 156, 159, 170, 157, 160, 158, 158, 154, 161, 158, 159, 161, 160, 164, 158, 156, 160, 160, 174, 158, 155, 167, 169, 162, 160, 162, 159, 152, 160, 158, 156, 157, 161, 173, 159, 162, 153, 161, 158, 151, 157, 163, 159, 160, 158, 157, 156, 162, 159, 169, 161, 167, 160, 161, 161, 153, 164, 168, 172, 156, 162, 161, 165, 160, 161, 166, 157, 156, 156, 160, 161, 165, 160, 156, 161, 160, 163, 157, 151, 163, 156, 159, 169, 160, 158, 152, 160, 149, 193, 158, 156, 166, 162, 161, 153, 153, 157, 164, 153, 157, 164, 159, 161, 162, 156, 153, 173, 160, 158, 164, 161, 162, 181, 160, 158, 166, 165, 155, 151, 160, 166, 154, 159, 157, 147, 164, 151, 159, 157, 161, 160, 156, 164, 162, 158, 171, 155, 168, 167, 152, 148, 157, 161, 153, 161, 155, 161, 151, 161, 155, 166, 154, 153, 159, 156, 164, 157, 147, 158, 160, 155, 156, 167, 162, 153, 156, 160, 158, 150, 159, 162, 157, 161, 153, 154, 158, 157, 169, 159, 168, 162, 150, 165, 159, 163, 167, 163, 160, 164, 158, 158, 164, 147, 168, 154, 163, 156, 157, 173, 157, 160, 144, 158, 159, 159, 159, 160, 158, 163, 156, 160, 162, 160, 160, 158, 147, 160, 159, 158, 165, 159, 157, 160, 162, 159, 162, 165, 156, 167, 175, 165, 158, 171, 157, 164, 163, 158, 163, 162, 153, 161, 167, 168, 162, 149, 158, 160, 160, 159, 156, 162, 167, 158, 155, 158, 158, 156, 160, 158, 167, 160, 159, 162, 164, 154, 158, 160, 159, 165, 161, 156, 159, 152, 161, 162, 149, 165, 158, 165, 161, 157, 159, 159, 159, 143, 162, 154, 164, 158, 159, 162, 156, 156, 160, 162, 158, 165, 154, 163, 165, 163, 156, 160, 162, 153, 156, 167, 158, 169, 155, 157, 162, 151, 161, 161, 165, 155, 164, 160, 155, 162, 156, 161, 159, 164, 166, 155, 162, 156, 155, 165, 156, 156, 173, 156, 175, 153, 161, 160, 159, 163, 148, 163, 163, 166, 160, 150, 164, 161, 165, 157, 163, 159, 162, 160, 160, 161, 158, 169, 162, 165, 158, 156, 159, 169, 171, 166, 154, 159, 159, 153, 173, 166, 153, 160, 157, 157, 158, 162, 151, 163, 155, 156, 150, 156, 155, 146, 155, 155, 156, 160, 157, 174, 154, 157, 162, 160, 158, 160, 160, 165, 157, 158, 151, 163, 154, 165, 150, 166, 148, 159, 162, 154, 158, 159, 161, 155, 158, 155, 156, 158, 157, 151, 147, 162, 165, 153, 160, 153, 156, 159, 160, 163, 159, 156, 156, 145, 180, 163, 159, 159, 158, 170, 164, 157, 164, 159, 156, 156, 162, 163, 171, 157, 146, 173, 167, 163, 162, 163, 168, 155, 158, 168, 160, 160, 155, 167, 169, 160, 165, 152, 162, 151, 161, 162, 152, 155, 162, 165, 164, 153, 162, 171, 155, 157, 155, 153, 168, 163, 161, 153, 156, 163, 163, 158, 152, 157, 150, 150, 168, 163, 162, 158, 162, 180, 162, 149, 161, 170, 156, 157, 160, 159, 159, 159, 183, 155, 156, 165, 161, 157, 158, 153, 148, 160, 159, 171, 155, 156, 169, 155, 166, 166, 161, 160, 176, 160, 163, 162, 163, 159, 164, 159, 159, 163, 166, 161, 171, 159, 163, 149, 159, 160, 162, 175, 157, 156, 157, 160, 159, 159, 162, 168, 156, 161, 147, 142, 150, 175, 162, 166, 156, 154, 171, 146, 152, 158, 154, 160, 156, 160, 162, 160, 158, 151, 162, 159, 151, 160, 159, 148, 158, 160, 159, 161, 158, 160, 159, 160, 155, 161, 170, 154, 166, 161, 157, 155, 153, 160, 154, 165, 165, 163, 158, 155, 158, 152, 153, 158, 164, 153, 157, 164, 159, 154, 158, 162, 154, 167, 160, 167, 161, 169, 149, 149, 167, 154, 163, 155, 158, 164, 165, 174, 157, 162, 156, 159, 159, 159, 157, 159, 164, 167, 155, 165, 140, 176, 164, 175, 166, 151, 149, 156, 166, 152, 164, 161, 155, 152, 159, 164, 162, 163, 159, 180, 165, 158, 160, 168, 160, 170, 166, 168, 151, 149, 160, 157, 143, 160, 155, 161, 160, 162, 164, 159, 155, 164, 171, 162, 163, 166, 164, 164, 161, 165, 160, 146, 160, 150, 164, 156, 160, 145, 154, 161, 157, 155, 154, 158, 157, 158, 170, 154, 156, 152, 154, 159, 158, 148, 162, 157, 167, 161, 154, 162, 166, 157, 158, 156, 171, 155, 154, 157, 156, 151, 159, 146, 155, 161, 176, 160, 152, 167, 150, 157, 160, 153, 162, 155, 163, 160, 162, 162, 151, 160, 168, 159, 156, 150, 153, 155, 159, 160, 160, 148, 157, 162, 146, 159, 160, 163, 164, 153, 159, 157, 156, 156, 159, 142, 159, 161, 166, 150, 187, 157, 156, 157, 163, 157, 159, 163, 160, 151, 154, 160, 153, 159, 157, 158, 169, 163, 162, 165, 159, 154, 166, 154, 159, 158, 162, 158, 162, 149, 159, 161, 168, 153, 154, 157, 163, 158, 164, 166, 166, 168, 150, 187, 167, 156, 160, 163, 160, 159, 158, 160, 177, 149, 171, 157, 150, 175, 159, 166, 165, 162, 171, 147, 146, 156, 153, 162, 158, 164, 157, 159, 154, 155, 154, 161, 153, 153, 165, 159, 163, 163, 156, 164, 159, 162, 157, 164, 155, 151, 159, 166, 163, 157, 145, 161, 157, 171, 152, 146, 159, 147, 167, 160, 160, 167, 168, 154, 154, 159, 163, 171, 167, 151, 158, 157, 153, 160, 154, 159, 155, 148, 151, 170, 162, 174, 162, 156, 153, 175, 155, 163, 168, 166, 160, 168, 163, 158, 142, 162, 173, 146, 161, 157, 171, 150, 161, 161, 160, 163, 154, 154, 162, 167, 161, 152, 164, 169, 157, 162, 153, 176, 154, 159, 165, 148, 156, 159, 158, 154, 185, 164, 172, 165, 162, 162, 172, 169, 164, 157, 159, 160, 154, 161, 163, 150, 162, 141, 145, 160, 159, 162, 165, 166, 161, 162, 165, 160, 161, 155, 154, 171, 153, 147, 170, 153, 161, 145, 149, 156, 165, 161, 162, 163, 159, 160, 164, 154, 167, 167, 156, 162, 162, 164, 165, 156, 152, 158, 164, 160, 159, 166, 155, 162, 160, 163, 155, 161, 158, 160, 159, 144, 150, 158, 163, 163, 155, 159, 159, 167, 163, 157, 156, 197, 155, 161, 164, 154, 152, 155, 156, 165, 155, 164, 164, 154, 157, 155, 157, 162, 162, 157, 168, 166, 160, 163, 158, 153, 164, 152, 160, 160, 163, 156, 159, 165, 163, 167, 155, 160, 160, 167, 159, 165, 163, 154, 163, 172, 150, 166, 163, 158, 160, 156, 180, 129, 158, 167, 158, 171, 160, 159, 167, 165, 151, 168, 158, 160, 158, 151, 173, 152, 160, 166, 163, 159, 153, 162, 166, 165, 158, 170, 160, 160, 167, 160, 161, 160, 157, 162, 154, 155, 166, 158, 152, 160, 163, 155, 160, 176, 163, 163, 157, 163, 154, 166, 158, 159, 160, 171, 160, 162, 158, 162, 146, 148, 168, 161, 167, 175, 183, 159, 159, 159, 148, 145, 165, 162, 154, 147, 159, 155, 169, 160, 161, 166, 154, 160, 165, 148, 150, 151, 152, 151, 160, 164, 162, 152, 160, 163, 154, 155, 155, 162, 164, 173, 163, 158, 158, 165, 158, 163, 150, 161, 165, 172, 160, 156, 169, 164, 158, 154, 159, 149, 163, 163, 160, 159, 162, 166, 158, 151, 159, 158, 155, 159, 162, 156, 156, 152, 159, 160, 160, 159, 161, 159, 158, 170, 158, 156, 197, 162, 129, 155, 137, 158, 153, 161, 152, 156, 162, 159, 159, 160, 160, 147, 158, 151, 162, 157, 151, 163, 153, 146, 153, 144, 161, 165, 157, 150, 162, 158, 170, 158, 151, 157, 158, 159, 152, 152, 161, 147, 151, 164, 162, 150, 169, 151, 167, 169, 161, 158, 164, 153, 166, 163, 161, 165, 153, 150, 151, 160, 154, 160, 161, 152, 156, 153, 160, 177, 160, 168, 161, 151, 162, 160, 153, 162, 154, 154, 144, 157, 154, 149, 168, 149, 161, 164, 168, 163, 149, 154, 154, 157, 157, 168, 169, 145, 158, 167, 167, 157, 165, 174, 157, 145, 163, 169, 163, 153, 154, 153, 152, 156, 155, 159, 162, 152, 174, 160, 154, 148, 167, 175, 146, 157, 168, 156, 156, 156, 170, 163, 158, 163, 154, 154, 164, 160, 162, 152, 141, 148, 154, 147, 155, 166, 165, 160, 151, 166, 171, 159, 155, 157, 154, 164, 165, 167, 160, 162, 151, 186, 163, 169, 157, 174, 161, 173, 164, 166, 154, 160, 147, 152, 148, 140, 151, 157, 179, 165, 165, 156, 147, 163, 159, 159, 153, 166, 162, 164, 157, 156, 157, 161, 166, 166, 169, 156, 172, 162, 171, 152, 157, 159, 173, 171, 153, 161, 151, 155, 149, 160, 150, 158, 166, 159, 158, 158, 160, 176, 166, 157, 166, 164, 164, 150, 163, 153, 154, 157, 153, 157, 161, 165, 168, 157, 158, 156, 169, 164, 163, 159, 152, 150, 161, 166, 153, 166, 159, 156, 162, 158, 172, 152, 164, 155, 146, 159, 160, 157, 155, 157, 166, 163, 136, 157, 161, 158, 146, 171, 157, 151, 153, 154, 170, 155, 158, 160, 172, 155, 167, 164, 140, 174, 156, 163, 160, 163, 174, 156, 184, 165, 161, 157, 157, 164, 166, 167, 148, 163, 152, 168, 168, 155, 145, 164, 166, 162, 164, 166, 171, 153, 158, 168, 162, 161, 164, 157, 155, 152, 163, 166, 161, 160, 152, 153, 154, 163, 151, 155, 170, 150, 156, 161, 155, 153, 164, 169, 157, 152, 167, 152, 158, 156, 159, 176, 154, 157, 161, 173, 166, 165, 163, 160, 153, 152, 152, 167, 162, 163, 153, 168, 156, 154, 162, 164, 159, 173, 162, 164, 159, 160, 152, 174, 144, 155, 163, 162, 168, 155, 154, 161, 154, 170, 171, 150, 157, 150, 156, 159, 168, 155, 149, 173, 154, 169, 161, 165, 168, 154, 162, 159, 172, 173, 172, 154, 163, 161, 155, 157, 166, 161, 163, 188, 166, 154, 161, 158, 167, 155, 150, 166, 161, 173, 167, 169, 178, 145, 149, 162, 167, 163, 164, 157, 151, 167, 161, 164, 149, 155, 160, 169, 158, 153, 158, 150, 155, 146, 163, 157, 165, 160, 155, 158, 146, 158, 155, 160, 162, 166, 169, 159, 157, 158, 156, 153, 166, 161, 152, 157, 161, 152, 160, 147, 159, 163, 165, 162, 172, 169, 171, 156, 159, 121, 154, 163, 157, 166, 166, 153, 155, 156, 171, 158, 157, 155, 150, 161, 163, 139, 151, 166, 155, 169, 158, 152, 157, 159, 149, 154, 157, 172, 156, 145, 157, 161, 156, 166, 164, 140, 163, 157, 169, 150, 162, 152, 155, 170, 159, 167, 172, 149, 148, 170, 156, 152, 155, 150, 167, 156, 163, 160, 159, 155, 157, 160, 170, 159, 158, 168, 162, 164, 171, 160, 159, 159, 175, 164, 167, 164, 168, 151, 168, 158, 172, 148, 151, 169, 156, 160, 161, 164, 149, 160, 155, 160, 148, 164, 162, 156, 160, 160, 157, 166, 171, 151, 164, 162, 155, 170, 164, 162, 162, 154, 161, 163, 160, 156, 157, 159, 158, 159, 152, 166, 161, 158, 151, 167, 160, 164, 151, 166, 162, 151, 165, 157, 162, 162, 161, 157, 161, 158, 175, 150, 169, 153, 156, 156, 160, 159, 160, 163, 152, 158, 162, 131, 155, 149, 159, 168, 162, 164, 166, 168, 151, 163, 160, 169, 155, 164, 164, 164, 154, 156, 169, 153, 152, 169, 159, 156, 156, 152, 162, 160, 168, 146, 163, 165, 158, 163, 161, 148, 152, 163, 161, 161, 166, 149, 163, 156, 164, 147, 161, 165, 154, 149, 159, 154, 160, 154, 156, 163, 165, 165, 157, 154, 159, 159, 158, 162, 162, 169, 162, 170, 159, 159, 167, 156, 172, 177, 176, 163, 163, 153, 163, 171, 159, 164, 162, 159, 164, 153, 158, 164, 161, 156, 164, 156, 168, 158, 159, 177, 166, 156, 159, 158, 154, 158, 152, 163, 159, 160, 158, 162, 161, 151, 161, 171, 159, 161, 160, 163, 156, 165, 154, 160, 164, 153, 159, 166, 156, 161, 157, 160, 159, 180, 167, 149, 159, 157, 156, 165, 162, 163, 156, 163, 158, 155, 151, 156, 164, 158, 159, 155, 161, 168, 166, 157, 164, 162, 161, 158, 161, 161, 165, 153, 166, 168, 155, 157, 162, 159, 176, 168, 159, 144, 153, 165, 159, 162, 157, 165, 145, 166, 156, 155, 152, 169, 157, 159, 150, 150, 160, 161, 162, 165, 155, 155, 157, 170, 160, 155, 159, 157, 161, 157, 153, 162, 164, 161, 154, 165, 163, 161, 157, 159, 163, 158, 154, 169, 168, 160, 164, 163, 163, 168, 161, 162, 160, 165, 165, 153, 153, 158, 166, 158, 158, 159, 166, 166, 191, 156, 152, 155, 157, 162, 153, 157, 159, 164, 171, 152, 163, 152, 153, 156, 167, 157, 158, 164, 167, 170, 160, 158, 159, 149, 171, 160, 156, 160, 160, 151, 161, 157, 156, 161, 154, 156, 154, 177, 161, 158, 157, 156, 168, 165, 166, 163, 152, 164, 161, 156, 166, 163, 166, 160, 162, 171, 166, 159, 154, 155, 148, 161, 168, 159, 151, 165, 154, 159, 164, 161, 162, 160, 166, 158, 152, 158, 152, 165, 158, 166, 159, 162, 161, 163, 158, 161, 152, 167, 158, 159, 158, 159, 159, 163, 160, 167, 163, 163, 162, 166, 163, 159, 159, 159, 161, 163, 157, 154, 148, 163, 162, 155, 156, 163, 156, 158, 162, 161, 165, 160, 162, 150, 159, 171, 163, 158, 159, 158, 168, 156, 162, 161, 156, 165, 167, 169, 163, 158, 165, 148, 166, 165, 161, 167, 160, 160, 173, 166, 158, 163, 163, 164, 158, 166, 165, 157, 164, 152, 159, 146, 169, 167, 154, 160, 170, 160, 152, 159, 157, 160, 165, 151, 157, 156, 155, 158, 144, 158, 157, 155, 160, 159, 162, 168, 166, 167, 165, 160, 161, 164, 143, 158, 165, 159, 153, 159, 168, 159, 162, 170, 157, 157, 162, 154, 166, 152, 158, 154, 151, 161, 162, 156, 165, 163, 164, 156, 152, 164, 165, 162, 163, 165, 162, 165, 162, 165, 161, 159, 166, 167, 159, 163, 154, 145, 165, 151, 159, 157, 153, 151, 162, 153, 153, 159, 158, 171, 163, 168, 157, 162, 156, 167, 160, 158, 157, 158, 158, 161, 150, 162, 162, 161, 149, 164, 160, 175, 161, 151, 159, 153, 160, 166, 158, 156, 151, 161, 160, 164, 158, 168, 157, 161, 162, 159, 163, 160, 161, 157, 165, 163, 162, 164, 160, 151, 159, 168, 159, 162, 152, 156, 161, 168, 169, 165, 170, 158, 153, 166, 158, 162, 165, 153, 160, 160, 154, 164, 157, 160, 169, 158, 157, 166, 153, 153, 161, 154, 162, 162, 154, 154, 160, 161, 157, 156, 158, 161, 167, 155, 157, 159, 171, 160, 149, 163, 161, 160, 164, 158, 165, 166, 164, 151, 159, 161, 151, 159, 162, 155, 158, 154, 155, 165, 161, 148, 159, 163, 165, 152, 162, 161, 163, 165, 164, 157, 162, 163, 172, 163, 152, 161, 160, 150, 158, 160, 151, 165, 164, 174, 152, 165, 165, 157, 160, 159, 156, 155, 168, 164, 161, 159, 146, 168, 162, 160, 161, 166, 166, 158, 157, 162, 162, 158, 168, 156, 167, 166, 160, 165, 160, 160, 156, 163, 167, 168, 162, 169, 156, 167, 147, 166, 154, 161, 158, 162, 154, 161, 163, 159, 157, 168, 160, 157, 153, 162, 153, 161, 160, 162, 150, 159, 159, 167, 163, 167, 150, 163, 163, 157, 154, 176, 160, 158, 166, 159, 158, 171, 149, 162, 161, 156, 163, 162, 164, 152, 156, 154, 165, 157, 161, 154, 176, 158, 162, 154, 162, 157, 160, 163, 173, 156, 155, 164, 159, 167, 161, 156, 178, 161, 149, 169, 138, 148, 163, 159, 162, 161, 161, 153, 153, 159, 158, 162, 166, 147, 159, 154, 160, 164, 155, 161, 159, 157, 161, 162, 168, 154, 163, 146, 155, 163, 143, 162, 162, 160, 184, 156, 158, 161, 161, 166, 163, 165, 162, 158, 163, 160, 158, 183, 165, 166, 156, 157, 157, 163, 167, 154, 161, 151, 160, 166, 160, 164, 165, 159, 166, 156, 156, 156, 166, 159, 156, 160, 172, 166, 162, 152, 158, 157, 159, 163, 153, 164, 157, 164, 162, 163, 156, 159, 149, 168, 158, 142, 163, 165, 159, 169, 161, 154, 164, 162, 162, 157, 163, 156, 170, 171, 152, 151, 152, 157, 160, 157, 154, 160, 155, 150, 149, 165, 170, 170, 169, 162, 161, 159, 169, 159, 162, 154, 166, 165, 166, 163, 168, 166, 172, 157, 159, 162, 172, 158, 170, 161, 159, 155, 165, 165, 162, 162, 160, 163, 152, 162, 160, 152, 164, 163, 157, 155, 154, 150, 162, 163, 166, 157, 156, 150, 157, 162, 162, 164, 161, 160, 152, 161, 156, 157, 162, 160, 156, 175, 166, 165, 166, 159, 170, 157, 164, 160, 157, 169, 167, 148, 162, 155, 174, 158, 167, 157, 159, 149, 159, 143, 161, 157, 155, 161, 154, 165, 161, 164, 148, 164, 154, 154, 153, 156, 156, 162, 154, 157, 164, 158, 167, 165, 160, 159, 148, 168, 160, 173, 163, 158, 151, 152, 167, 148, 161, 164, 169, 156, 148, 161, 164, 161, 160, 160, 158, 159, 156, 157, 161, 161, 154, 165, 152, 162, 164, 159, 159, 155, 160, 158, 155, 168, 165, 163, 160, 161, 160, 156, 161, 155, 152, 157, 161, 158, 147, 167, 158, 164, 157, 162, 155, 156, 157, 160, 158, 152, 162, 164, 163, 165, 168, 165, 161, 154, 168, 169, 159, 161, 162, 153, 164, 162, 157, 160, 158, 157, 182, 162, 158, 161, 163, 155, 162, 155, 161, 155, 163, 165, 165, 163, 157, 158, 162, 161, 161, 164, 160, 165, 166, 149, 165, 161, 163, 162, 159, 161, 162, 163, 156, 163, 154, 161, 163, 159, 155, 158, 159, 164, 170, 171, 160, 160, 162, 164, 163, 157, 158, 164, 163, 158, 131, 161, 158, 156, 162, 163, 168, 164, 161, 164, 156, 166, 158, 154, 160, 158, 161, 158, 168, 160, 155, 163, 158, 173, 162, 162, 162, 164, 162, 158, 158, 163, 176, 160, 161, 160, 155, 160, 161, 158, 159, 156, 164, 160, 163, 158, 160, 161, 154, 160, 162, 159, 154, 164, 165, 161, 163, 166, 155, 160, 196, 163, 157, 165, 161, 162, 160, 160, 158, 155, 159, 157, 161, 157, 157, 168, 162, 156, 165, 168, 154, 159, 160, 166, 154, 164, 162, 155, 161, 160, 157, 165, 155, 155, 160, 156, 158, 157, 158, 164, 155, 157, 159, 165, 156, 157, 160, 167, 167, 166, 158, 160, 153, 158, 164, 150, 155, 161, 162, 162, 163, 162, 162, 145, 157, 156, 165, 158, 161, 160, 165, 157, 140, 158, 158, 156, 154, 159, 161, 160, 153, 162, 158, 157, 157, 157, 151, 160, 166, 157, 162, 162, 163, 167, 160, 156, 154, 161, 154, 142, 167, 156, 164, 168, 139, 161, 161, 157, 159, 156, 160, 163, 166, 159, 160, 156, 161, 160, 178, 159, 162, 159, 162, 153, 164, 163, 160, 160, 175, 158, 160, 163, 156, 157, 139, 157, 170, 159, 164, 166, 163, 158, 160, 158, 158, 161, 162, 166, 149, 153, 156, 163, 160, 158, 161, 163, 163, 164, 158, 162, 160, 160, 157, 158, 161, 157, 162, 159, 156, 159, 161, 164, 155, 161, 163, 155, 160, 156, 158, 156, 165, 167, 165, 159, 160, 166, 163, 156, 162, 162, 160, 158, 167, 158, 159, 163, 159, 161, 156, 155, 164, 166, 151, 157, 157, 160, 157, 164, 166, 160, 160, 183, 155, 157, 155, 152, 157, 166, 170, 163, 159, 163, 159, 159, 162, 159, 162, 160, 158, 161, 163, 155, 163, 156, 164, 162, 160, 157, 172, 158, 162, 160, 162, 162, 161, 160, 156, 160, 159, 148, 163, 157, 162, 163, 165, 158, 160, 166, 157, 141, 153, 159, 157, 156, 162, 159, 187, 160, 151, 166, 162, 155, 161, 165, 158, 156, 159, 162, 160, 163, 164, 162, 159, 165, 163, 156, 161, 172, 163, 162, 160, 162, 161, 159, 161, 166, 159, 161, 155, 163, 155, 160, 162, 166, 154, 158, 159, 157, 156, 163, 159, 156, 161, 166, 160, 158, 163, 159, 157, 160, 160, 167, 159, 158, 168, 165, 162, 166, 153, 164, 161, 160, 163, 157, 161, 158, 162, 156, 167, 158, 169, 162, 158, 169, 182, 160, 153, 156, 165, 160, 154, 156, 168, 166, 159, 157, 162, 161, 164, 166, 164, 159, 145, 157, 161, 155, 157, 160, 165, 159, 160, 156, 157, 164, 159, 161, 163, 159, 158, 157, 160, 156, 155, 152, 164, 173, 159, 161, 170, 162, 162, 139, 158, 167, 145, 160, 156, 161, 161, 164, 161, 163, 162, 151, 163, 163, 160, 159, 162, 160, 156, 175, 164, 164, 164, 164, 165, 161, 159, 169, 161, 159, 159, 163, 164, 165, 167, 162, 162, 156, 161, 162, 163, 155, 156, 156, 156, 159, 158, 160, 159, 162, 168, 158, 157, 164, 157, 164, 159, 157, 156, 159, 162, 150, 160, 157, 164, 156, 160, 169, 164, 161, 157, 164, 149, 162, 157, 163, 158, 161, 170, 162, 159, 158, 156, 160, 160, 160, 164, 162, 161, 158, 159, 161, 160, 144, 166, 155, 163, 164, 158, 157, 174, 160, 160, 159, 160, 155, 168, 162, 160, 158, 157, 164, 157, 164, 161, 158, 165, 160, 148, 165, 161, 160, 159, 153, 159, 157, 151, 162, 155, 162, 162, 159, 162, 157, 167, 159, 145, 159, 154, 153, 161, 167, 164, 157, 164, 156, 165, 162, 160, 162, 163, 165, 169, 163, 162, 161, 163, 161, 164, 161, 156, 160, 158, 170, 163, 158, 157, 165, 164, 171, 156, 163, 160, 163, 161, 161, 166, 159, 165, 155, 157, 158, 158, 159, 163, 159, 165, 159, 157, 168, 160, 164, 159, 159, 155, 159, 168, 162, 161, 159, 157, 161, 167, 165, 162, 163, 160, 160, 162, 159, 161, 162, 160, 161, 162, 160, 160, 157, 162, 166, 150, 161, 162, 159, 161, 156, 168, 159, 161, 156, 164, 162, 169, 158, 159, 160, 160, 156, 167, 162, 163, 156, 157, 157, 165, 166, 160, 158, 164, 159, 159, 161, 155, 166, 165, 162, 157, 163, 157, 155, 157, 161, 169, 181, 158, 165, 158, 161, 155, 164, 157, 163, 163, 154, 165, 160, 159, 165, 158, 162, 163, 165, 158, 161, 158, 163, 167, 159, 158, 159, 159, 156, 159, 156, 163, 151, 157, 164, 163, 162, 161, 165, 165, 159, 159, 161, 162, 152, 163, 161, 156, 160, 160, 156, 163, 164, 161, 159, 159, 158, 164, 163, 159, 170, 162, 155, 161, 158, 166, 161, 154, 164, 149, 147, 158, 155, 165, 159, 158, 176, 166, 165, 163, 163, 157, 168, 164, 165, 161, 161, 158, 164, 160, 155, 168, 158, 160, 156, 160, 160, 165, 161, 160, 162, 164, 163, 155, 157, 155, 166, 152, 158, 164, 149, 162, 152, 162, 158, 159, 155, 167, 156, 161, 156, 165, 161, 159, 164, 161, 163, 157, 158, 168, 162, 159, 163, 160, 157, 163, 162, 163, 163, 161, 170, 161, 187, 155, 164, 151, 161, 156, 160, 164, 163, 160, 158, 162, 156, 158, 163, 150, 161, 157, 163, 164, 156, 164, 167, 160, 167, 171, 163, 161, 162, 159, 164, 161, 162, 162, 160, 150, 156, 156, 161, 157, 164, 169, 165, 166, 169, 158, 141, 167, 157, 157, 160, 161, 158, 159, 163, 163, 156, 155, 159, 162, 162, 157, 158, 158, 155, 158, 157, 162, 158, 161, 160, 158, 157, 161, 161, 156, 162, 156, 161, 163, 163, 159, 154, 161, 164, 148, 160, 164, 160, 156, 162, 163, 158, 162, 159, 156, 162, 162, 162, 160, 160, 163, 161, 162, 163, 161, 162, 161, 164, 164, 157, 157, 156, 155, 158, 158, 159, 160, 163, 160, 160, 164, 159, 158, 157, 165, 161, 156, 161, 163, 164, 159, 160, 160, 160, 161, 161, 165, 157, 160, 165, 157, 155, 164, 157, 164, 154, 163, 157, 161, 161, 160, 164, 160, 165, 161, 161, 159, 159, 160, 160, 154, 161, 165, 159, 162, 161, 162, 160, 160, 161, 164, 159, 162, 161, 159, 154, 164, 158, 159, 162, 161, 158, 161, 157, 162, 162, 154, 159, 161, 159, 161, 158, 160, 161, 161, 159, 158, 158, 164, 161, 163, 158, 161, 159, 159, 165, 164, 158, 159, 161, 161, 158, 157, 164, 163, 159, 163, 155, 160, 159, 162, 164, 159, 160, 160, 157, 162, 159, 160, 159, 160, 159, 160, 162, 158, 161, 161, 164, 159, 166, 156, 162, 163, 160, 164, 158, 166, 161, 162, 160, 159, 159, 160, 156, 156, 163, 157, 163, 161, 160, 160, 160, 160, 160, 157, 162, 165, 159, 158, 160, 156, 157, 163, 157, 163, 158, 162, 156, 159, 163, 157, 158, 160, 161, 162, 160, 158, 158, 164, 157, 157, 159, 158, 163, 167, 169, 164, 160, 158, 161, 169, 158, 162, 165, 164, 162, 161, 161, 160, 159, 159, 160, 160, 161, 159, 159, 159, 160, 161, 159, 162, 162, 159, 159, 158, 159, 162, 163, 162, 163, 161, 159, 163, 160, 161, 163, 160, 159, 162, 162, 158, 163, 159, 160, 160, 157, 158, 158, 159, 162, 153, 156, 162, 161, 158, 157, 165, 163, 159, 159, 158, 162, 163, 163, 164, 159, 160, 161, 162, 158, 161, 159, 161, 161, 158, 160, 160, 160, 162, 160, 165, 160, 159, 160, 161, 162, 157, 161, 157, 159, 163, 162, 156, 160, 157, 160, 160, 159, 159, 159, 159, 162, 164, 161, 160, 167, 152, 155, 161, 157, 162, 163, 160, 159, 159, 162, 158, 158, 161, 158, 161, 157, 160, 166, 159, 159, 164, 159, 161, 162, 158, 171, 155, 159, 160, 166, 164, 160, 163, 158, 164, 161, 159, 164, 159, 159, 160, 153, 159, 158, 161, 160, 161, 164, 156, 161, 161, 157, 164, 164, 160, 157, 163, 157, 162, 164, 159, 161, 156, 157, 161, 161, 159, 162, 160, 161, 162, 161, 160, 162, 162, 159, 162, 159, 161, 161, 161, 163, 161, 161, 157, 160, 160, 160, 153, 156, 162, 158, 159, 162, 162, 162, 159, 159, 160, 162, 160, 160, 158, 163, 163, 161, 160, 157, 161, 157, 160, 165, 160, 163, 161, 155, 158, 163, 162, 163, 162, 160, 160, 162, 160, 164, 162, 158, 164, 161, 158, 164, 163, 162, 161, 153, 162, 155, 157, 157, 159, 164, 158, 159, 159, 161, 161, 162, 164, 160, 161, 161, 164, 160, 162, 164, 159, 163, 165, 158, 169, 156, 162, 151, 154, 156, 154, 162, 158, 167, 151, 163, 156, 155, 160, 158, 153, 146, 158, 155, 151, 156, 173, 160, 167, 170, 158, 164, 157, 165, 152, 164, 161, 161, 148, 152, 155, 167, 165, 163, 156, 157, 163, 159, 157, 152, 163, 168, 151, 162, 159, 167, 155, 153, 162, 153, 151, 171, 163, 157, 163, 151, 166, 157, 165, 156, 155, 145, 160, 160, 153, 154, 165, 183, 157, 159, 159, 153, 152, 157, 151, 160, 162, 164, 163, 158, 174, 177, 164, 174, 158, 159, 172, 156, 156, 159, 169, 162, 156, 167, 160, 155, 161, 172, 165, 148, 157, 152, 152, 162, 151, 147, 165, 164, 156, 150, 160, 153, 164, 153, 158, 163, 161, 156, 157, 156, 168, 162, 160, 164, 162, 159, 164, 152, 157, 154, 156, 161, 157, 159, 158, 168, 161, 158, 161, 162, 153, 159, 159, 167, 154, 168, 167, 156, 160, 162, 171, 167, 153, 158, 166, 160, 155, 154, 155, 174, 158, 177, 152, 169, 164, 152, 161, 160, 167, 156, 160, 163, 160, 156, 146, 165, 167, 158, 163, 159, 157, 155, 165, 165, 150, 162, 155, 146, 162, 165, 155, 160, 150, 162, 165, 170, 156, 157, 151, 152, 154, 159, 163, 150, 152, 166, 152, 160, 173, 155, 169, 163, 167, 161, 157, 163, 148, 167, 161, 155, 168, 164, 159, 149, 161, 157, 156, 168, 165, 179, 157, 152, 175, 159, 152, 157, 150, 159, 162, 169, 151, 156, 155, 171, 165, 163, 155, 149, 143, 153, 161, 156, 160, 171, 165, 168, 161, 158, 165, 161, 159, 164, 167, 158, 156, 154, 149, 163, 149, 148, 168, 147, 163, 155, 163, 154, 159, 170, 157, 162, 163, 156, 162, 157, 166, 143, 161, 158, 160, 159, 167, 165, 147, 158, 160, 160, 167, 164, 153, 156, 158, 158, 163, 166, 151, 144, 165, 156, 157, 159, 148, 150, 161, 155, 164, 163, 161, 158, 155, 165, 156, 150, 161, 161, 155, 167, 154, 161, 167, 150, 151, 158, 157, 152, 158, 179, 161, 159, 161, 154, 159, 164, 170, 160, 151, 161, 164, 161, 164, 151, 152, 158, 148, 162, 159, 151, 162, 163, 159, 165, 155, 160, 153, 159, 149, 156, 156, 152, 162, 162, 160, 165, 163, 168, 160, 161, 176, 171, 165, 170, 163, 164, 152, 147, 153, 148, 155, 157, 155, 151, 162, 164, 156, 159, 156, 153, 152, 170, 156, 160, 162, 126, 160, 153, 164, 159, 155, 152, 157, 157, 159, 149, 162, 160, 160, 153, 165, 158, 157, 158, 155, 172, 163, 156, 168, 173, 152, 189, 169, 156, 150, 165, 159, 148, 153, 159, 154, 158, 160, 164, 157, 146, 151, 165, 166, 159, 163, 161, 161, 155, 165, 165, 155, 155, 155, 152, 155, 153, 168, 161, 141, 162, 161, 160, 159, 167, 148, 163, 163, 159, 152, 161, 160, 185, 150, 157, 162, 172, 150, 160, 144, 164, 174, 166, 174, 162, 154, 155, 156, 161, 157, 159, 168, 160, 158, 162, 160, 152, 149, 150, 162, 155, 158, 159, 162, 150, 165, 156, 161, 156, 167, 171, 170, 156, 164, 156, 166, 158, 161, 154, 160, 162, 162, 155, 164, 155, 164, 158, 158, 158, 167, 160, 167, 160, 161, 157, 171, 156, 160, 159, 162, 157, 167, 163, 163, 157, 161, 160, 160, 166, 159, 166, 161, 163, 162, 161, 164, 157, 162, 164, 156, 161, 154, 166, 162, 161, 164, 157, 157, 156, 157, 162, 159, 165, 157, 153, 164, 163, 161, 161, 163, 158, 171, 158, 158, 148, 163, 160, 157, 162, 164, 172, 158, 165, 163, 159, 160, 162, 164, 157, 162, 164, 155, 162, 158, 161, 167, 163, 151, 167, 159, 156, 157, 163, 165, 162, 157, 163, 165, 160, 161, 163, 162, 161, 161, 164, 157, 151, 156, 160, 163, 161, 165, 157, 158, 155, 163, 168, 162, 157, 163, 154, 165, 169, 152, 162, 159, 163, 162, 157, 157, 163, 161, 163, 147, 158, 160, 151, 165, 164, 163, 160, 161, 166, 155, 158, 162, 161, 161, 159, 162, 161, 162, 163, 153, 163, 167, 153, 168, 163, 161, 153, 163, 161, 161, 155, 160, 161, 163, 170, 157, 158, 156, 160, 160, 157, 159, 152, 163, 161, 159, 164, 160, 161, 164, 172, 163, 141, 162, 167, 154, 159, 159, 170, 161, 164, 159, 153, 161, 155, 171, 155, 162, 157, 161, 159, 165, 151, 162, 169, 150, 155, 153, 161, 162, 159, 161, 165, 158, 157, 163, 153, 163, 160, 159, 162, 160, 161, 151, 161, 162, 156, 158, 154, 163, 166, 159, 164, 158, 159, 160, 163, 163, 152, 156, 162, 162, 162, 153, 158, 170, 147, 158, 159, 161, 159, 170, 156, 157, 163, 160, 160, 161, 160, 157, 160, 161, 163, 158, 152, 162, 159, 161, 149, 159, 165, 159, 162, 157, 159, 158, 163, 155, 164, 167, 161, 161, 167, 157, 162, 161, 160, 161, 168, 162, 157, 161, 157, 157, 159, 155, 161, 165, 161, 162, 163, 160, 164, 166, 159, 155, 157, 155, 159, 159, 159, 155, 163, 161, 156, 156, 158, 166, 170, 159, 169, 163, 159, 162, 156, 160, 162, 158, 166, 178, 164, 155, 161, 157, 165, 160, 160, 157, 165, 166, 163, 160, 164, 158, 157, 163, 160, 162, 155, 151, 166, 162, 159, 163, 163, 162, 165, 165, 166, 162, 159, 161, 163, 163, 162, 159, 170, 167, 165, 163, 151, 169, 169, 159, 157, 163, 155, 160, 163, 160, 160, 156, 163, 162, 154, 161, 161, 169, 166, 154, 172, 160, 149, 166, 158, 166, 161, 159, 168, 157, 154, 163, 156, 161, 156, 162, 153, 161, 156, 163, 167, 159, 161, 163, 162, 173, 161, 157, 159, 165, 157, 162, 160, 161, 161, 157, 167, 164, 161, 158, 158, 163, 165, 155, 163, 160, 167, 153, 158, 160, 160, 163, 161, 158, 161, 148, 167, 161, 157, 162, 160, 156, 161, 158, 159, 164, 151, 160, 162, 164, 158, 162, 162, 160, 157, 164, 156, 158, 153, 166, 156, 158, 161, 157, 158, 165, 159, 158, 159, 161, 161, 166, 159, 159, 164, 161, 168, 161, 160, 157, 157, 158, 158, 175, 161, 154, 165, 159, 159, 152, 163, 165, 164, 160, 158, 165, 160, 163, 161, 165, 157, 161, 167, 158, 158, 165, 164, 158, 172, 160, 158, 163, 163, 167, 154, 166, 151, 156, 159, 163, 162, 121, 163, 165, 160, 162, 160, 156, 157, 156, 164, 159, 157, 130, 158, 156, 157, 159, 158, 156, 166, 160, 170, 149, 158, 153, 159, 150, 159, 158, 169, 164, 158, 163, 154, 160, 156, 158, 159, 154, 161, 164, 172, 185, 162, 149, 165, 163, 165, 157, 166, 154, 154, 161, 163, 158, 147, 159, 158, 165, 162, 162, 162, 161, 162, 160, 160, 155, 160, 162, 163, 162, 159, 159, 163, 156, 156, 168, 163, 167, 177, 158, 165, 155, 162, 152, 153, 162, 159, 156, 161, 153, 159, 163, 155, 160, 163, 161, 153, 158, 156, 163, 158, 152, 159, 161, 166, 168, 156, 160, 158, 157, 165, 160, 160, 149, 157, 157, 163, 160, 159, 164, 159, 169, 164, 159, 160, 160, 160, 159, 165, 156, 152, 158, 159, 155, 126, 159, 157, 151, 162, 163, 151, 159, 161, 162, 158, 158, 155, 166, 160, 154, 159, 168, 167, 158, 171, 155, 157, 156, 161, 164, 157, 158, 163, 162, 161, 154, 172, 161, 160, 172, 160, 154, 167, 162, 157, 161, 163, 161, 159, 160, 156, 163, 160, 165, 197, 163, 161, 161, 169, 162, 156, 162, 164, 162, 167, 160, 165, 155, 159, 160, 163, 162, 167, 159, 165, 162, 161, 158, 161, 161, 156, 166, 162, 160, 156, 164, 120, 159, 155, 163, 156, 161, 159, 167, 164, 149, 160, 160, 161, 156, 161, 156, 165, 155, 161, 163, 158, 156, 161, 161, 156, 157, 161, 160, 157, 160, 162, 158, 171, 152, 168, 164, 175, 157, 162, 161, 159, 162, 160, 165, 162, 168, 160, 156, 162, 160, 158, 165, 159, 149, 158, 157, 159, 156, 157, 163, 145, 151, 167, 160, 159, 176, 164, 156, 173, 162, 151, 162, 167, 159, 158, 162, 163, 157, 161, 164, 166, 158, 155, 155, 160, 166, 154, 162, 157, 157, 159, 159, 159, 156, 158, 162, 165, 160, 156, 160, 159, 161, 162, 165, 161, 154, 162, 156, 157, 164, 158, 156, 155, 161, 170, 159, 161, 156, 153, 164, 159, 160, 162, 166, 160, 167, 155, 160, 155, 157, 149, 158, 156, 162, 156, 161, 158, 160, 167, 153, 156, 161, 156, 161, 162, 165, 157, 163, 155, 163, 162, 153, 150, 155, 158, 166, 163, 162, 127, 158, 167, 163, 166, 145, 164, 155, 169, 162, 158, 160, 158, 158, 160, 164, 161, 157, 169, 164, 162, 160, 161, 159, 155, 157, 157, 166, 163, 153, 162, 160, 137, 163, 162, 155, 155, 164, 162, 162, 166, 173, 158, 164, 157, 160, 161, 152, 153, 161, 162, 156, 158, 168, 163, 163, 159, 153, 161, 161, 158, 166, 165, 166, 160, 158, 162, 168, 154, 159, 156, 158, 162, 161, 163, 161, 157, 157, 151, 167, 162, 160, 165, 159, 164, 165, 164, 162, 151, 161, 157, 163, 164, 162, 156, 162, 159, 150, 165, 161, 151, 159, 162, 163, 157, 156, 155, 160, 156, 157, 166, 159, 151, 159, 159, 164, 162, 155, 162, 160, 157, 159, 161, 157, 159, 160, 165, 169, 154, 168, 164, 158, 166, 159, 166, 160, 165, 155, 161, 157, 156, 166, 156, 163, 158, 160, 149, 164, 162, 163, 162, 165, 161, 161, 164, 161, 166, 163, 161, 150, 167, 161, 155, 155, 153, 161, 161, 161, 164, 161, 160, 161, 159, 171, 157, 156, 166, 169, 158, 171, 163, 161, 160, 156, 155, 160, 163, 161, 156, 161, 165, 155, 165, 162, 159, 158, 166, 158, 157, 163, 168, 151, 161, 154, 163, 166, 168, 168, 161, 157, 159, 162, 157, 159, 165, 159, 155, 154, 164, 155, 160, 161, 170, 166, 163, 164, 168, 162, 166, 162, 156, 159, 164, 161, 164, 158, 166, 151, 159, 139, 154, 157, 162, 176, 161, 159, 159, 150, 151, 163, 174, 163, 153, 154, 155, 160, 152, 153, 161, 158, 159, 162, 165, 162, 157, 151, 160, 176, 154, 157, 158, 165, 156, 156, 167, 157, 162, 162, 168, 164, 140, 156, 162, 156, 152, 160, 159, 162, 170, 160, 165, 153, 155, 166, 162, 149, 161, 160, 146, 161, 163, 159, 154, 158, 161, 176, 151, 158, 156, 166, 166, 172, 160, 157, 151, 158, 156, 161, 150, 158, 158, 166, 161, 172, 159, 159, 164, 171, 161, 159, 164, 165, 166, 154, 153, 147, 158, 158, 158, 154, 161, 160, 161, 154, 155, 156, 152, 157, 158, 163, 161, 165, 165, 161, 159, 152, 155, 179, 153, 164, 169, 160, 162, 155, 164, 159, 165, 160, 155, 161, 164, 156, 164, 157, 162, 171, 159, 155, 152, 167, 158, 161, 161, 159, 158, 153, 172, 161, 166, 169, 159, 168, 162, 159, 158, 164, 158, 159, 157, 157, 155, 151, 159, 157, 157, 163, 157, 159, 172, 158, 158, 160, 156, 156, 156, 156, 160, 154, 160, 165, 157, 154, 160, 158, 159, 160, 162, 158, 160, 163, 152, 165, 163, 154, 157, 161, 166, 161, 158, 155, 158, 159, 160, 161, 165, 160, 165, 156, 161, 163, 156, 164, 163, 161, 163, 172, 162, 164, 167, 157, 158, 168, 162, 155, 167, 161, 159, 164, 156, 159, 149, 158, 161, 156, 161, 153, 171, 162, 157, 159, 156, 163, 164, 155, 153, 154, 154, 169, 155, 162, 158, 155, 165, 155, 159, 167, 161, 162, 157, 160, 164, 158, 163, 162, 161, 160, 161, 157, 159, 159, 158, 155, 162, 157, 167, 150, 169, 174, 158, 155, 156, 171, 163, 161, 156, 162, 161, 157, 156, 163, 158, 155, 158, 158, 160, 160, 163, 160, 161, 153, 157, 158, 154, 167, 163, 159, 162, 169, 153, 157, 158, 158, 162, 157, 157, 149, 152, 158, 160, 165, 157, 155, 157, 160, 157, 158, 169, 156, 165, 163, 165, 157, 159, 162, 165, 155, 149, 169, 160, 165, 158, 165, 155, 150, 162, 162, 174, 171, 157, 156, 166, 161, 162, 163, 166, 147, 153, 163, 160, 165, 160, 161, 161, 160, 156, 148, 160, 166, 152, 160, 150, 158, 159, 158, 159, 174, 148, 164, 154, 156, 161, 168, 151, 167, 164, 155, 154, 159, 164, 159, 156, 175, 162, 159, 167, 158, 154, 148, 157, 163, 160, 165, 156, 165, 157, 177, 162, 177, 159, 161, 169, 156, 154, 161, 159, 163, 182, 151, 160, 156, 165, 167, 152, 154, 167, 150, 151, 157, 141, 155, 171, 169, 166, 159, 145, 160, 163, 159, 167, 154, 159, 164, 167, 163, 157, 157, 173, 158, 166, 154, 163, 160, 155, 159, 153, 150, 169, 143, 161, 159, 136, 163, 158, 153, 162, 157, 169, 149, 160, 156, 161, 160, 164, 162, 147, 158, 164, 159, 163, 163, 162, 165, 171, 157, 150, 163, 155, 167, 158, 164, 163, 162, 162, 170, 176, 155, 159, 148, 163, 164, 165, 152, 159, 160, 172, 165, 171, 162, 158, 156, 155, 149, 147, 163, 162, 167, 160, 153, 161, 149, 164, 160, 157, 165, 159, 166, 165, 155, 171, 170, 163, 163, 178, 159, 153, 164, 160, 164, 139, 152, 159, 156, 160, 170, 164, 156, 154, 169, 166, 151, 171, 171, 161, 146, 162, 159, 152, 146, 160, 157, 159, 163, 157, 153, 158, 157, 166, 149, 165, 159, 166, 160, 155, 164, 159, 189, 172, 166, 166, 152, 154, 154, 156, 158, 157, 141, 174, 163, 154, 165, 163, 176, 155, 158, 167, 161, 160, 157, 176, 153, 166, 160, 177, 167, 165, 150, 162, 162, 159, 152, 177, 167, 157, 168, 148, 157, 159, 162, 156, 164, 163, 158, 144, 166, 166, 159, 161, 154, 158, 155, 152, 153, 169, 154, 175, 168, 159, 164, 163, 162, 171, 160, 162, 177, 162, 160, 171, 163, 168, 152, 150, 159, 167, 154, 163, 155, 162, 158, 162, 140, 166, 163, 168, 155, 165, 159, 162, 160, 164, 173, 142, 151, 163, 156, 162, 175, 159, 155, 179, 172, 163, 160, 150, 161, 162, 162, 161, 165, 167, 173, 161, 163, 156, 158, 157, 151, 159, 173, 176, 165, 160, 158, 156, 165, 164, 155, 167, 164, 161, 172, 171, 162, 148, 159, 160, 156, 166, 156, 163, 148, 160, 166, 162, 160, 163, 158, 165, 159, 157, 161, 154, 163, 166, 163, 155, 156, 154, 158, 166, 153, 160, 169, 157, 167, 167, 147, 161, 158, 159, 163, 162, 157, 162, 147, 160, 162, 152, 162, 152, 161, 177, 160, 175, 159, 150, 163, 159, 163, 149, 160, 161, 167, 167, 156, 161, 158, 160, 162, 161, 161, 164, 157, 167, 163, 160, 164, 167, 161, 177, 156, 150, 169, 161, 155, 161, 165, 162, 164, 153, 156, 159, 160, 152, 168, 135, 169, 159, 154, 160, 148, 166, 151, 169, 157, 165, 166, 163, 145, 183, 159, 162, 151, 152, 156, 156, 166, 159, 158, 157, 165, 159, 160, 157, 162, 165, 156, 157, 172, 146, 160, 165, 154, 157, 168, 147, 157, 156, 167, 140, 155, 146, 165, 159, 162, 144, 164, 163, 166, 161, 154, 160, 144, 161, 161, 159, 157, 159, 159, 166, 149, 157, 163, 164, 160, 164, 169, 164, 162, 166, 167, 154, 160, 164, 154, 161, 154, 153, 158, 162, 161, 167, 159, 166, 160, 168, 155, 155, 153, 157, 158, 154, 159, 164, 147, 161, 159, 160, 159, 153, 159, 161, 156, 159, 162, 160, 158, 155, 159, 153, 158, 163, 159, 161, 162, 164, 152, 157, 161, 158, 165, 180, 159, 162, 167, 162, 158, 160, 161, 152, 155, 159, 158, 156, 165, 168, 160, 159, 161, 165, 153, 162, 167, 167, 162, 156, 149, 156, 163, 164, 170, 158, 154, 160, 161, 159, 159, 159, 159, 169, 161, 154, 162, 162, 157, 160, 154, 158, 160, 164, 158, 159, 158, 162, 169, 169, 167, 159, 159, 152, 167, 167, 160, 163, 161, 154, 152, 158, 159, 157, 158, 160, 155, 154, 150, 168, 169, 161, 164, 156, 161, 158, 158, 160, 156, 155, 155, 149, 155, 160, 161, 160, 151, 156, 160, 162, 161, 158, 158, 158, 158, 162, 158, 154, 150, 159, 161, 162, 157, 159, 160, 154, 167, 160, 154, 154, 157, 158, 171, 159, 156, 147, 166, 162, 166, 162, 161, 161, 154, 155, 155, 154, 154, 156, 156, 169, 149, 152, 163, 154, 165, 153, 166, 158, 157, 154, 157, 159, 154, 161, 160, 160, 161, 164, 158, 163, 166, 151, 155, 162, 166, 174, 161, 154, 154, 160, 152, 163, 162, 159, 157, 155, 152, 159, 160, 152, 158, 158, 162, 166, 161, 162, 161, 161, 166, 159, 157, 164, 158, 154, 160, 160, 161, 160, 171, 156, 160, 161, 166, 162, 166, 160, 163, 155, 158, 160, 163, 155, 166, 167, 157, 154, 156, 156, 151, 173, 152, 156, 156, 171, 154, 159, 166, 165, 155, 160, 158, 168, 161, 164, 159, 176, 155, 162, 152, 156, 164, 155, 159, 159, 163, 163, 162, 157, 161, 160, 171, 154, 161, 155, 152, 162, 149, 157, 165, 157, 160, 164, 163, 159, 157, 164, 164, 157, 156, 159, 156, 164, 171, 165, 158, 169, 161, 157, 162, 163, 160, 160, 159, 158, 152, 159, 156, 154, 159, 156, 170, 163, 159, 163, 156, 151, 159, 160, 162, 151, 160, 162, 155, 161, 160, 153, 154, 156, 154, 150, 161, 156, 157, 159, 153, 153, 152, 152, 165, 157, 149, 156, 157, 165, 160, 167, 156, 151, 162, 170, 171, 161, 161, 154, 160, 154, 158, 151, 152, 163, 154, 154, 157, 167, 154, 158, 157, 159, 156, 159, 147, 153, 152, 158, 165, 160, 159, 151, 163, 151, 156, 172, 164, 162, 159, 152, 155, 169, 153, 167, 163, 161, 149, 165, 163, 154, 155, 153, 153, 157, 179, 160, 166, 159, 161, 152, 158, 160, 160, 155, 166, 164, 171, 154, 156, 152, 155, 165, 166, 154, 158, 161, 159, 159, 155, 159, 156, 168, 157, 156, 168, 170, 160, 156, 157, 155, 157, 156, 162, 162, 175, 154, 157, 149, 158, 161, 165, 157, 158, 152, 157, 158, 165, 159, 155, 153, 155, 150, 155, 162, 168, 159, 170, 154, 156, 158, 155, 160, 165, 140, 150, 154, 160, 163, 153, 154, 159, 153, 161, 177, 163, 158, 157, 166, 168, 160, 161, 162, 175, 177, 172, 152, 158, 159, 159, 153, 158, 165, 167, 158, 161, 154, 162, 165, 157, 151, 163, 160, 155, 161, 162, 155, 169, 168, 157, 165, 158, 161, 154, 152, 155, 164, 160, 164, 171, 156, 159, 157, 143, 171, 164, 160, 154, 166, 160, 161, 153, 163, 168, 155, 170, 160, 156, 159, 167, 152, 169, 151, 150, 164, 140, 163, 157, 158, 158, 170, 158, 149, 148, 161, 162, 155, 154, 159, 159, 156, 165, 168, 161, 165, 171, 157, 168, 159, 161, 159, 162, 154, 149, 149, 161, 155, 172, 166, 157, 170, 153, 167, 171, 161, 154, 161, 156, 163, 156, 152, 161, 164, 170, 160, 159, 153, 159, 163, 168, 159, 155, 170, 160, 168, 151, 164, 155, 157, 156, 162, 159, 167, 166, 155, 157, 162, 162, 155, 159, 161, 168, 151, 152, 159, 159, 179, 157, 153, 167, 166, 152, 165, 158, 171, 160, 158, 155, 161, 165, 165, 159, 158, 163, 163, 151, 165, 168, 155, 154, 151, 158, 173, 151, 149, 167, 165, 172, 166, 175, 167, 155, 159, 169, 154, 162, 155, 164, 170, 167, 176, 171, 174, 160, 148, 164, 144, 159, 164, 162, 166, 158, 159, 166, 158, 168, 165, 156, 165, 163, 169, 165, 150, 160, 157, 155, 161, 165, 166, 153, 160, 155, 163, 159, 167, 159, 143, 177, 149, 152, 161, 163, 157, 158, 161, 162, 169, 160, 161, 165, 167, 151, 159, 153, 165, 162, 160, 148, 170, 163, 163, 157, 159, 166, 164, 161, 168, 169, 163, 159, 174, 160, 158, 159, 160, 151, 161, 156, 169, 175, 152, 160, 162, 149, 154, 158, 166, 164, 148, 154, 159, 168, 160, 169, 151, 166, 158, 173, 143, 161, 161, 170, 155, 158, 171, 164, 153, 166, 156, 170, 158, 155, 159, 159, 173, 156, 161, 163, 157, 162, 169, 154, 153, 157, 169, 164, 151, 159, 164, 159, 160, 160, 166, 160, 161, 150, 160, 166, 161, 157, 166, 156, 163, 173, 157, 164, 155, 163, 156, 158, 152, 153, 162, 165, 170, 166, 163, 154, 168, 167, 160, 156, 157, 164, 162, 159, 155, 163, 156, 166, 166, 160, 160, 158, 156, 149, 161, 165, 153, 162, 165, 159, 156, 153, 156, 161, 154, 145, 155, 155, 160, 156, 170, 156, 149, 154, 165, 158, 150, 171, 167, 166, 173, 161, 165, 158, 164, 169, 165, 165, 171, 157, 156, 165, 169, 172, 157, 162, 164, 151, 163, 156, 157, 158, 163, 163, 163, 160, 154, 160, 158, 171, 175, 161, 158, 167, 165, 158, 157, 159, 164, 162, 155, 161, 159, 158, 156, 169, 158, 166, 159, 165, 162, 156, 156, 155, 158, 161, 154, 156, 156, 159, 152, 157, 155, 153, 157, 162, 163, 171, 165, 162, 162, 158, 162, 156, 161, 152, 157, 160, 159, 156, 154, 162, 160, 170, 159, 157, 172, 161, 154, 157, 163, 154, 162, 155, 163, 158, 159, 168, 156, 160, 154, 148, 161, 152, 173, 163, 150, 154, 160, 166, 176, 162, 164, 171, 177, 161, 160, 157, 160, 159, 152, 155, 151, 159, 159, 161, 166, 152, 158, 155, 167, 168, 156, 151, 161, 160, 173, 163, 162, 160, 161, 162, 160, 163, 161, 160, 162, 160, 156, 169, 166, 159, 162, 159, 160, 156, 161, 162, 158, 157, 164, 150, 158, 154, 160, 157, 163, 154, 156, 154, 155, 166, 161, 161, 156, 153, 151, 156, 163, 155, 152, 159, 165, 157, 161, 175, 153, 162, 155, 151, 160, 167, 157, 152, 155, 156, 160, 168, 164, 153, 157, 157, 156, 162, 155, 163, 152, 159, 153, 158, 170, 157, 152, 153, 154, 161, 157, 162, 151, 159, 162, 169, 164, 158, 154, 159, 168, 157, 162, 162, 155, 159, 163, 163, 165, 166, 164, 157, 158, 165, 157, 154, 164, 155, 158, 159, 158, 155, 153, 158, 159, 166, 154, 159, 158, 162, 154, 157, 159, 165, 156, 159, 162, 158, 155, 157, 154, 157, 160, 171, 162, 154, 149, 162, 159, 165, 149, 160, 157, 160, 159, 154, 163, 160, 169, 170, 164, 157, 157, 163, 156, 155, 149, 158, 144, 149, 158, 158, 161, 162, 157, 159, 156, 163, 160, 163, 164, 156, 160, 161, 160, 161, 161, 158, 159, 165, 178, 161, 155, 164, 160, 171, 164, 155, 159, 170, 164, 162, 153, 161, 156, 153, 157, 156, 160, 156, 166, 161, 168, 159, 162, 163, 158, 158, 164, 159, 163, 161, 155, 159, 152, 160, 162, 155, 160, 157, 155, 162, 157, 162, 157, 155, 159, 153, 152, 160, 149, 168, 156, 157, 159, 161, 158, 159, 163, 159, 159, 162, 157, 156, 158, 160, 163, 170, 162, 165, 161, 167, 153, 156, 162, 158, 158, 168, 159, 155, 157, 158, 160, 157, 163, 155, 163, 161, 157, 165, 159, 162, 198, 163, 159, 162, 157, 158, 163, 161, 162, 164, 163, 163, 163, 151, 158, 156, 160, 156, 157, 162, 158, 157, 160, 155, 162, 157, 169, 160, 164, 161, 157, 160, 159, 168, 169, 167, 164, 160, 166, 159, 169, 161, 163, 162, 166, 168, 166, 164, 153, 164, 160, 160, 164, 163, 156, 160, 159, 159, 149, 173, 158, 158, 158, 162, 163, 160, 165, 161, 160, 162, 164, 164, 156, 156, 160, 157, 160, 166, 154, 147, 160, 154, 173, 157, 156, 159, 163, 157, 160, 147, 148, 155, 158, 152, 158, 160, 163, 163, 168, 156, 158, 159, 167, 153, 169, 159, 158, 162, 159, 156, 151, 164, 159, 166, 154, 161, 165, 157, 158, 159, 155, 159, 164, 160, 159, 160, 165, 152, 170, 152, 153, 151, 153, 172, 159, 154, 158, 150, 167, 157, 159, 162, 161, 166, 149, 158, 162, 155, 162, 164, 152, 168, 154, 160, 159, 157, 154, 157, 162, 154, 158, 166, 144, 161, 155, 153, 156, 161, 161, 157, 156, 173, 158, 161, 158, 161, 158, 157, 157, 171, 153, 157, 156, 156, 159, 156, 159, 159, 165, 159, 159, 158, 157, 156, 158, 157, 154, 162, 158, 163, 163, 154, 150, 164, 164, 161, 160, 148, 158, 157, 169, 161, 162, 157, 154, 154, 157, 157, 158, 152, 159, 162, 169, 160, 157, 149, 161, 162, 155, 160, 161, 158, 160, 161, 160, 160, 160, 166, 161, 166, 161, 166, 158, 157, 162, 153, 159, 161, 163, 163, 162, 157, 164, 161, 163, 159, 153, 155, 160, 155, 161, 177, 163, 160, 164, 161, 159, 154, 157, 163, 159, 162, 158, 167, 154, 157, 160, 156, 161, 163, 160, 163, 158, 159, 160, 153, 161, 155, 163, 163, 157, 154, 160, 153, 177, 160, 163, 160, 162, 166, 158, 160, 159, 154, 149, 166, 156, 159, 160, 159, 161, 159, 162, 161, 159, 158, 160, 161, 156, 165, 156, 166, 161, 155, 163, 157, 160, 165, 157, 157, 163, 160, 151, 161, 157, 160, 159, 161, 158, 155, 162, 158, 157, 171, 157, 152, 162, 159, 159, 162, 155, 155, 159, 162, 162, 161, 159, 160, 159, 159, 167, 160, 161, 176, 158, 153, 152, 164, 154, 159, 154, 160, 160, 164, 167, 145, 160, 155, 171, 156, 156, 159, 161, 160, 165, 162, 150, 160, 162, 162, 158, 165, 151, 150, 160, 163, 162, 161, 158, 166, 155, 156, 161, 168, 166, 160, 163, 163, 161, 162, 158, 164, 155, 165, 152, 151, 153, 157, 157, 159, 156, 166, 170, 159, 170, 161, 160, 159, 168, 160, 155, 157, 157, 166, 163, 160, 153, 159, 155, 155, 167, 155, 158, 160, 157, 156, 152, 159, 163, 169, 163, 159, 159, 161, 154, 153, 162, 157, 145, 159, 160, 162, 160, 166, 155, 159, 161, 157, 162, 158, 160, 160, 160, 160, 159, 170, 153, 163, 161, 162, 158, 161, 158, 156, 156, 165, 159, 163, 163, 163, 157, 160, 157, 154, 164, 156, 166, 164, 162, 164, 161, 163, 157, 166, 156, 160, 163, 166, 158, 168, 187, 159, 162, 176, 161, 165, 151, 162, 161, 160, 160, 161, 162, 164, 161, 152, 162, 156, 154, 165, 164, 166, 151, 161, 163, 156, 162, 154, 160, 161, 159, 167, 154, 162, 162, 157, 159, 161, 154, 156, 161, 161, 161, 165, 151, 159, 165, 156, 157, 157, 161, 164, 165, 163, 160, 155, 150, 161, 155, 165, 160, 158, 160, 158, 149, 161, 149, 164, 166, 162, 158, 162, 165, 177, 159, 158, 152, 167, 159, 158, 161, 163, 155, 154, 153, 160, 153, 160, 157, 158, 162, 161, 156, 159, 154, 156, 164, 161, 161, 166, 156, 159, 161, 163, 160, 161, 159, 152, 160, 161, 158, 158, 156, 157, 158, 161, 159, 158, 167, 158, 158, 154, 156, 166, 153, 162, 157, 167, 164, 167, 166, 156, 154, 160, 162, 165, 158, 165, 162, 157, 165, 157, 150, 155, 162, 142, 157, 188, 164, 154, 160, 163, 166, 164, 158, 163, 158, 157, 157, 159, 151, 154, 159, 154, 161, 158, 159, 160, 161, 160, 167, 162, 166, 162, 159, 160, 163, 153, 159, 155, 160, 159, 156, 167, 161, 167, 160, 167, 167, 160, 153, 166, 157, 157, 160, 161, 156, 154, 161, 162, 159, 153, 162, 163, 163, 157, 160, 161, 156, 159, 158, 160, 153, 164, 158, 155, 160, 160, 160, 157, 162, 161, 157, 165, 163, 151, 156, 159, 160, 164, 157, 149, 167, 157, 153, 145, 162, 161, 165, 161, 157, 165, 160, 158, 164, 165, 162, 164, 162, 160, 160, 156, 155, 164, 161, 156, 162, 162, 153, 158, 153, 158, 147, 149, 159, 154, 149, 166, 174, 164, 153, 153, 158, 160, 176, 171, 160, 165, 161, 159, 162, 164, 165, 159, 156, 153, 160, 148, 152, 177, 163, 165, 160, 160, 164, 167, 163, 154, 157, 158, 158, 160, 152, 157, 173, 147, 157, 156, 152, 159, 192, 165, 160, 156, 159, 165, 151, 146, 161, 148, 169, 161, 148, 183, 151, 161, 161, 158, 157, 159, 162, 161, 163, 162, 162, 160, 160, 159, 162, 162, 159, 154, 165, 162, 170, 158, 155, 158, 164, 158, 157, 157, 161, 154, 169, 157, 161, 162, 161, 166, 161, 167, 161, 161, 155, 164, 164, 162, 154, 153, 155, 159, 159, 163, 163, 162, 164, 154, 162, 156, 161, 161, 163, 147, 162, 154, 166, 163, 161, 169, 159, 164, 161, 162, 158, 157, 164, 149, 162, 165, 164, 156, 166, 150, 164, 164, 163, 148, 157, 182, 161, 171, 157, 150, 160, 156, 157, 152, 153, 159, 158, 155, 170, 156, 151, 145, 169, 145, 147, 163, 159, 164, 169, 160, 161, 168, 157, 163, 159, 160, 165, 153, 165, 160, 163, 151, 164, 158, 163, 160, 162, 159, 155, 155, 168, 152, 169, 163, 155, 157, 167, 159, 166, 156, 158, 159, 171, 156, 158, 169, 161, 158, 160, 157, 169, 170, 159, 162, 146, 157, 166, 161, 169, 156, 161, 161, 148, 157, 156, 159, 157, 155, 160, 154, 167, 169, 158, 156, 163, 156, 166, 172, 155, 157, 160, 167, 154, 155, 149, 165, 160, 155, 155, 158, 161, 157, 163, 179, 160, 153, 159, 157, 151, 153, 158, 161, 166, 164, 156, 155, 154, 158, 160, 166, 158, 155, 161, 171, 168, 162, 165, 161, 176, 165, 160, 169, 170, 160, 156, 151, 161, 160, 161, 157, 166, 163, 165, 181, 153, 160, 164, 163, 155, 149, 159, 159, 151, 153, 162, 153, 155, 162, 164, 159, 159, 154, 164, 171, 160, 157, 157, 157, 164, 160, 157, 157, 155, 158, 159, 154, 162, 154, 167, 166, 158, 164, 162, 154, 158, 151, 159, 162, 160, 155, 147, 167, 159, 163, 166, 162, 169, 160, 158, 153, 160, 160, 148, 162, 145, 159, 156, 169, 156, 162, 159, 151, 153, 158, 144, 165, 157, 163, 156, 155, 160, 157, 155, 179, 150, 167, 159, 163, 156, 153, 151, 152, 157, 157, 168, 158, 162, 166, 162, 158, 160, 154, 168, 169, 160, 155, 160, 162, 161, 164, 169, 155, 157, 160, 163, 165, 163, 157, 163, 163, 150, 164, 155, 159, 151, 150, 165, 163, 157, 166, 150, 162, 159, 162, 157, 168, 163, 156, 158, 150, 159, 152, 165, 171, 162, 158, 164, 163, 163, 155, 150, 152, 159, 160, 161, 160, 163, 155, 159, 156, 160, 158, 160, 156, 159, 160, 155, 166, 159, 161, 166, 170, 158, 163, 168, 159, 162, 161, 162, 164, 160, 154, 155, 153, 157, 163, 162, 158, 162, 161, 150, 153, 160, 160, 163, 159, 159, 160, 165, 158, 164, 159, 170, 162, 160, 157, 165, 165, 159, 160, 153, 161, 163, 157, 165, 164, 153, 164, 165, 160, 160, 156, 153, 164, 164, 165, 170, 152, 150, 158, 162, 171, 167, 166, 157, 158, 162, 154, 164, 156, 161, 158, 165, 162, 161, 160, 163, 158, 160, 157, 153, 154, 160, 154, 164, 165, 164, 163, 156, 162, 156, 157, 156, 161, 154, 166, 168, 165, 158, 159, 159, 160, 153, 167, 160, 155, 164, 158, 165, 165, 155, 163, 165, 161, 161, 154, 165, 158, 173, 160, 167, 162, 169, 159, 154, 160, 166, 162, 164, 159, 168, 165, 162, 165, 157, 157, 169, 159, 152, 163, 163, 167, 158, 166, 155, 165, 164, 157, 161, 163, 168, 164, 158, 156, 159, 156, 157, 155, 159, 163, 170, 160, 165, 155, 162, 164, 161, 159, 161, 159, 160, 165, 163, 147, 153, 162, 150, 158, 153, 160, 161, 153, 167, 156, 158, 154, 175, 163, 156, 161, 156, 157, 153, 160, 158, 151, 162, 170, 160, 155, 160, 171, 161, 152, 159, 167, 161, 152, 154, 162, 153, 154, 149, 166, 160, 150, 167, 165, 162, 154, 168, 162, 154, 160, 162, 162, 167, 166, 155, 159, 165, 160, 163, 162, 168, 158, 153, 154, 161, 150, 160, 157, 153, 164, 154, 167, 168, 158, 159, 161, 160, 153, 152, 157, 170, 164, 160, 166, 149, 153, 169, 156, 163, 166, 161, 162, 158, 152, 169, 159, 162, 167, 154, 165, 149, 159, 165, 157, 157, 167, 162, 162, 159, 151, 161, 174, 154, 173, 160, 163, 163, 160, 158, 163, 162, 158, 154, 161, 164, 149, 161, 169, 154, 160, 156, 156, 154, 161, 149, 161, 158, 158, 165, 159, 164, 155, 161, 159, 167, 160, 149, 154, 144, 152, 154, 161, 163, 168, 162, 159, 171, 160, 152, 153, 162, 156, 157, 159, 158, 159, 172, 147, 160, 166, 154, 160, 155, 163, 153, 156, 162, 160, 164, 155, 169, 166, 158, 164, 158, 161, 162, 154, 165, 165, 153, 163, 158, 159, 156, 154, 161, 155, 161, 161, 167, 160, 163, 150, 168, 144, 157, 166, 162, 162, 162, 165, 160, 159, 171, 158, 156, 151, 155, 166, 152, 164, 162, 161, 167, 163, 157, 154, 159, 161, 157, 159, 147, 158, 155, 154, 157, 162, 165, 152, 156, 163, 159, 165, 151, 155, 162, 168, 165, 160, 162, 161, 158, 162, 166, 158, 159, 164, 159, 165, 156, 151, 162, 162, 169, 161, 155, 154, 158, 161, 154, 159, 159, 163, 161, 153, 160, 158, 156, 165, 163, 150, 159, 168, 156, 158, 159, 160, 160, 161, 153, 163, 157, 160, 158, 154, 155, 162, 164, 166, 161, 153, 164, 156, 167, 157, 164, 166, 150, 157, 158, 162, 166, 158, 166, 160, 162, 157, 166, 147, 157, 157, 154, 159, 163, 155, 163, 163, 160, 175, 156, 158, 152, 159, 154, 156, 160, 150, 155, 158, 163, 160, 157, 165, 164, 159, 181, 160, 158, 162, 153, 159, 160, 158, 159, 159, 160, 161, 158, 163, 162, 156, 158, 161, 161, 152, 158, 159, 155, 156, 153, 166, 162, 161, 164, 166, 155, 165, 151, 161, 180, 152, 163, 155, 167, 157, 162, 162, 165, 170, 167, 161, 163, 153, 165, 159, 163, 155, 159, 160, 159, 160, 153, 166, 161, 126, 154, 158, 161, 156, 160, 163, 164, 155, 162, 159, 158, 162, 160, 159, 159, 157, 158, 158, 160, 162, 160, 135, 155, 160, 162, 157, 150, 162, 156, 152, 160, 162, 157, 158, 168, 160, 157, 158, 165, 160, 164, 159, 160, 164, 160, 155, 165, 161, 157, 158, 159, 157, 154, 164, 165, 158, 156, 161, 159, 161, 160, 159, 155, 159, 155, 157, 155, 163, 161, 160, 162, 163, 158, 156, 165, 164, 159, 160, 162, 168, 159, 158, 160, 163, 153, 190, 162, 200, 160, 160, 161, 164, 158, 165, 160, 164, 163, 163, 164, 158, 158, 153, 159, 162, 162, 158, 158, 160, 160, 165, 165, 158, 157, 158, 160, 158, 160, 160, 162, 160, 158, 158, 155, 163, 159, 164, 159, 170, 162, 154, 159, 151, 159, 142, 158, 160, 158, 156, 149, 163, 160, 163, 157, 164, 157, 163, 160, 156, 152, 154, 160, 157, 159, 151, 191, 159, 156, 152, 159, 162, 146, 158, 162, 163, 156, 160, 158, 165, 160, 156, 159, 168, 158, 159, 161, 160, 128, 166, 151, 164, 174, 159, 154, 161, 158, 187, 157, 162, 162, 161, 164, 164, 162, 160, 162, 157, 184, 162, 161, 150, 166, 161, 165, 159, 157, 157, 160, 157, 161, 163, 151, 162, 156, 156, 160, 158, 158, 158, 156, 163, 155, 156, 160, 159, 158, 174, 161, 159, 161, 154, 160, 152, 169, 162, 163, 120, 163, 153, 163, 156, 161, 165, 162, 163, 159, 142, 164, 154, 154, 158, 144, 157, 162, 156, 167, 161, 157, 159, 155, 161, 158, 162, 159, 155, 166, 159, 159, 165, 159, 159, 155, 163, 157, 155, 158, 155, 163, 159, 164, 160, 158, 200, 161, 170, 160, 166, 153, 163, 161, 163, 159, 166, 159, 153, 157, 158, 181, 157, 158, 158, 165, 159, 159, 161, 160, 121, 166, 156, 163, 157, 156, 153, 166, 157, 163, 168, 168, 162, 152, 154, 166, 159, 158, 160, 160, 158, 149, 163, 162, 165, 159, 163, 158, 159, 161, 162, 157, 156, 154, 163, 162, 165, 152, 152, 159, 156, 160, 154, 159, 159, 136, 160, 164, 150, 158, 161, 150, 160, 155, 146, 163, 164, 165, 161, 157, 165, 157, 160, 166, 154, 160, 159, 164, 155, 151, 158, 156, 150, 160, 137, 160, 153, 155, 154, 158, 160, 165, 160, 164, 160, 164, 152, 160, 158, 168, 159, 155, 158, 158, 158, 164, 161, 156, 151, 158, 162, 130, 157, 163, 171, 155, 165, 159, 153, 166, 159, 161, 165, 158, 176, 160, 158, 152, 157, 158, 162, 161, 162, 158, 149, 160, 160, 159, 166, 159, 159, 155, 161, 160, 164, 161, 161, 160, 167, 162, 154, 163, 159, 161, 157, 168, 163, 162, 159, 161, 135, 155, 150, 161, 158, 166, 161, 145, 160, 163, 160, 159, 159, 153, 170, 159, 153, 159, 172, 161, 155, 158, 166, 160, 166, 164, 169, 161, 157, 157, 170, 157, 162, 161, 158, 164, 153, 158, 158, 166, 160, 159, 155, 159, 162, 155, 157, 153, 156, 161, 165, 170, 153, 144, 163, 151, 149, 163, 165, 176, 163, 166, 158, 166, 158, 158, 162, 158, 155, 169, 167, 150, 157, 162, 164, 146, 155, 163, 165, 156, 161, 157, 153, 146, 163, 156, 161, 159, 158, 159, 159, 160, 160, 159, 154, 160, 155, 150, 169, 157, 183, 165, 168, 155, 153, 153, 154, 154, 153, 154, 157, 162, 165, 160, 155, 166, 161, 157, 164, 138, 164, 174, 176, 159, 167, 165, 156, 159, 154, 165, 159, 163, 147, 155, 158, 161, 165, 162, 162, 157, 158, 140, 171, 152, 165, 151, 157, 163, 156, 160, 155, 154, 160, 149, 161, 163, 161, 160, 158, 160, 163, 155, 149, 162, 158, 162, 165, 158, 156, 156, 161, 163, 157, 166, 155, 157, 163, 155, 153, 162, 158, 162, 160, 158, 165, 161, 157, 167, 155, 161, 154, 159, 163, 168, 163, 163, 164, 162, 159, 159, 160, 154, 163, 168, 149, 150, 152, 169, 163, 160, 146, 158, 159, 145, 160, 160, 163, 146, 160, 163, 162, 165, 160, 167, 156, 162, 151, 158, 178, 158, 154, 160, 149, 154, 159, 160, 162, 176, 147, 162, 163, 153, 181, 161, 162, 163, 166, 155, 162, 160, 152, 166, 165, 157, 164, 161, 153, 163, 162, 173, 166, 160, 163, 159, 167, 157, 164, 152, 153, 155, 158, 155, 159, 160, 157, 163, 166, 162, 163, 167, 158, 160, 169, 163, 162, 162, 154, 161, 166, 171, 155, 160, 152, 157, 156, 155, 161, 163, 165, 164, 163, 163, 155, 154, 158, 164, 160, 166, 159, 168, 167, 160, 164, 159, 159, 165, 151, 159, 157, 167, 158, 163, 158, 154, 173, 154, 157, 159, 164, 148, 154, 159, 169, 161, 170, 153, 154, 158, 162, 155, 160, 164, 161, 164, 165, 154, 158, 164, 180, 165, 154, 161, 167, 154, 161, 161, 153, 159, 157, 152, 160, 161, 145, 163, 159, 178, 153, 155, 158, 173, 159, 164, 179, 163, 161, 162, 160, 158, 166, 156, 165, 156, 168, 166, 158, 162, 156, 160, 168, 159, 154, 158, 164, 159, 158, 158, 161, 166, 162, 153, 161, 162, 162, 160, 160, 146, 148, 145, 156, 160, 166, 161, 155, 154, 170, 156, 158, 164, 169, 159, 157, 163, 167, 168, 160, 160, 158, 159, 168, 164, 155, 155, 159, 180, 147, 160, 149, 169, 168, 167, 155, 152, 172, 159, 159, 168, 153, 169, 156, 162, 152, 166, 156, 161, 149, 157, 157, 165, 158, 154, 148, 162, 159, 151, 156, 152, 178, 163, 177, 163, 161, 159, 146, 165, 162, 158, 166, 162, 162, 155, 156, 160, 161, 155, 158, 162, 153, 152, 154, 164, 158, 165, 161, 157, 150, 161, 155, 160, 166, 158, 173, 158, 152, 159, 157, 163, 165, 178, 160, 161, 167, 162, 147, 155, 155, 155, 164, 158, 164, 158, 164, 157, 159, 157, 165, 163, 146, 158, 159, 165, 165, 162, 166, 156, 159, 162, 169, 159, 168, 163, 174, 165, 151, 161, 150, 156, 162, 162, 160, 150, 164, 154, 167, 162, 169, 157, 168, 168, 161, 159, 152, 148, 159, 156, 158, 159, 159, 155, 155, 155, 156, 146, 161, 153, 152, 161, 161, 156, 157, 167, 163, 157, 153, 155, 162, 162, 158, 172, 158, 155, 165, 147, 155, 165, 157, 162, 158, 160, 155, 193, 159, 159, 159, 157, 159, 157, 157, 154, 159, 160, 161, 155, 158, 156, 163, 158, 159, 164, 160, 166, 165, 156, 160, 156, 163, 170, 161, 159, 164, 156, 154, 163, 155, 159, 155, 158, 151, 156, 159, 163, 163, 163, 160, 156, 168, 166, 152, 161, 157, 156, 154, 159, 159, 157, 152, 158, 157, 159, 159, 163, 152, 155, 163, 157, 150, 160, 155, 158, 160, 162, 163, 154, 163, 164, 166, 158, 165, 158, 163, 156, 161, 165, 156, 152, 164, 158, 165, 151, 159, 162, 161, 161, 159, 161, 162, 155, 159, 156, 165, 164, 164, 161, 147, 183, 157, 165, 157, 156, 163, 160, 155, 158, 159, 159, 157, 172, 155, 170, 161, 160, 158, 163, 161, 151, 175, 162, 164, 159, 156, 172, 155, 155, 162, 160, 155, 157, 160, 155, 147, 154, 158, 149, 157, 160, 153, 156, 159, 163, 155, 159, 153, 169, 159, 150, 158, 168, 164, 161, 152, 161, 161, 159, 161, 164, 157, 165, 155, 156, 161, 156, 154, 153, 160, 167, 160, 158, 153, 151, 163, 169, 160, 160, 160, 157, 168, 158, 158, 162, 163, 173, 166, 159, 161, 160, 164, 158, 159, 153, 148, 160, 165, 164, 154, 158, 156, 162, 164, 162, 147, 160, 166, 155, 156, 159, 158, 154, 162, 162, 165, 151, 167, 160, 157, 155, 160, 162, 177, 161, 161, 160, 164, 160, 165, 163, 168, 166, 147, 162, 165, 162, 159, 163, 156, 161, 161, 157, 177, 159, 160, 162, 156, 162, 159, 161, 159, 163, 151, 162, 157, 154, 167, 153, 155, 167, 162, 160, 163, 161, 152, 168, 159, 157, 163, 157, 166, 154, 162, 163, 158, 161, 155, 172, 162, 150, 162, 161, 153, 161, 156, 156, 159, 162, 166, 158, 162, 150, 161, 162, 159, 162, 160, 158, 163, 152, 159, 152, 158, 146, 154, 168, 166, 153, 159, 160, 162, 157, 160, 160, 164, 161, 163, 164, 164, 159, 163, 166, 168, 167, 156, 159, 155, 164, 167, 160, 157, 159, 155, 159, 155, 161, 169, 164, 152, 157, 155, 160, 157, 157, 155, 161, 151, 168, 181, 152, 156, 154, 162, 158, 156, 155, 155, 164, 154, 152, 164, 155, 153, 164, 155, 163, 161, 150, 165, 155, 163, 159, 164, 156, 149, 172, 161, 160, 156, 157, 161, 159, 164, 151, 160, 167, 174, 154, 157, 158, 158, 159, 164, 162, 155, 156, 168, 163, 167, 162, 155, 157, 161, 162, 160, 159, 153, 162, 158, 160, 168, 156, 159, 164, 160, 160, 160, 161, 158, 168, 160, 158, 169, 162, 160, 159, 157, 157, 150, 155, 150, 162, 157, 157, 164, 148, 158, 163, 163, 161, 164, 156, 148, 161, 158, 163, 162, 158, 169, 155, 164, 162, 156, 160, 161, 153, 162, 169, 162, 166, 159, 154, 165, 154, 164, 148, 148, 155, 160, 167, 151, 157, 165, 159, 157, 157, 160, 158, 167, 152, 157, 157, 158, 159, 163, 167, 157, 158, 164, 157, 161, 153, 159, 158, 159, 161, 161, 159, 160, 155, 157, 158, 165, 167, 165, 162, 157, 157, 162, 165, 165, 155, 155, 187, 154, 156, 163, 156, 159, 164, 158, 151, 156, 156, 163, 160, 155, 159, 155, 166, 173, 162, 152, 167, 175, 165, 163, 159, 161, 166, 166, 156, 167, 161, 147, 149, 146, 164, 157, 153, 157, 158, 159, 164, 160, 169, 160, 162, 158, 155, 160, 161, 156, 159, 159, 158, 150, 159, 156, 164, 160, 165, 177, 160, 159, 166, 156, 156, 159, 163, 165, 164, 153, 160, 160, 162, 149, 156, 131, 159, 167, 159, 154, 152, 161, 156, 155, 178, 160, 166, 165, 222, 170, 160, 159, 166, 165, 154, 160, 166, 157, 157, 156, 162, 157, 159, 165, 156, 159, 159, 161, 158, 165, 159, 160, 165, 157, 156, 170, 161, 160, 157, 163, 157, 169, 163, 164, 158, 168, 146, 154, 160, 153, 158, 156, 151, 159, 160, 153, 156, 160, 122, 159, 161, 165, 158, 157, 162, 160, 173, 157, 163, 161, 162, 144, 154, 159, 162, 163, 158, 158, 162, 163, 161, 160, 170, 160, 157, 151, 160, 160, 161, 158, 156, 160, 160, 172, 162, 160, 157, 168, 168, 142, 168, 160, 158, 165, 162, 162, 167, 174, 152, 158, 160, 159, 164, 159, 150, 169, 162, 152, 160, 167, 150, 155, 162, 152, 159, 166, 154, 159, 159, 162, 166, 159, 155, 167, 157, 159, 151, 160, 155, 161, 167, 157, 159, 176, 169, 160, 162, 157, 155, 153, 163, 157, 159, 162, 163, 140, 153, 155, 155, 166, 158, 158, 160, 156, 156, 160, 149, 156, 159, 159, 158, 161, 157, 169, 164, 160, 165, 157, 165, 157, 160, 163, 156, 151, 158, 172, 163, 161, 160, 158, 162, 159, 160, 150, 155, 162, 159, 175, 163, 157, 170, 169, 165, 162, 163, 163, 160, 159, 146, 162, 156, 143, 156, 164, 159, 168, 154, 159, 154, 157, 151, 169, 168, 167, 159, 161, 157, 160, 164, 159, 159, 164, 159, 156, 156, 158, 160, 161, 167, 159, 163, 153, 166, 160, 149, 158, 168, 178, 170, 163, 129, 163, 160, 164, 167, 157, 158, 160, 161, 162, 148, 162, 156, 163, 169, 156, 162, 161, 155, 161, 151, 166, 164, 165, 161, 157, 169, 160, 162, 159, 156, 151, 151, 166, 158, 162, 160, 158, 160, 152, 155, 175, 154, 160, 158, 166, 160, 160, 156, 155, 159, 148, 166, 170, 163, 165, 154, 154, 159, 157, 163, 161, 167, 155, 158, 154, 153, 158, 154, 155, 150, 160, 170, 158, 158, 169, 157, 160, 162, 163, 155, 157, 154, 157, 160, 166, 161, 158, 162, 155, 159, 155, 156, 157, 154, 158, 161, 158, 159, 158, 160, 159, 160, 158, 161, 153, 165, 159, 165, 164, 160, 154, 164, 158, 162, 159, 153, 161, 176, 161, 158, 166, 156, 157, 153, 149, 158, 156, 158, 175, 159, 157, 159, 160, 161, 158, 165, 174, 160, 163, 163, 159, 157, 157, 158, 149, 157, 156, 164, 156, 157, 161, 156, 161, 165, 160, 161, 156, 161, 160, 164, 167, 197, 159, 169, 161, 161, 168, 162, 154, 162, 157, 169, 159, 162, 157, 162, 159, 158, 158, 154, 162, 162, 158, 157, 158, 159, 157, 163, 165, 157, 152, 162, 161, 170, 162, 153, 162, 162, 166, 161, 157, 155, 160, 162, 156, 159, 160, 159, 161, 160, 165, 153, 151, 158, 157, 155, 158, 172, 162, 159, 167, 157, 161, 164, 153, 167, 161, 161, 158, 156, 161, 156, 145, 150, 163, 161, 162, 161, 161, 160, 165, 161, 142, 161, 160, 160, 159, 160, 166, 164, 155, 164, 153, 156, 165, 163, 156, 157, 164, 154, 166, 161, 159, 157, 157, 159, 159, 158, 160, 157, 155, 167, 160, 160, 157, 166, 156, 163, 152, 154, 156, 158, 155, 157, 159, 157, 161, 162, 160, 164, 159, 152, 157, 167, 155, 171, 159, 159, 174, 159, 157, 160, 165, 166, 159, 151, 153, 160, 160, 162, 156, 161, 161, 166, 159, 158, 155, 161, 157, 154, 156, 148, 159, 160, 157, 139, 157, 161, 161, 153, 163, 158, 157, 161, 160, 161, 155, 165, 159, 160, 164, 155, 157, 159, 166, 167, 163, 160, 160, 157, 165, 160, 166, 164, 165, 157, 170, 163, 168, 160, 155, 156, 160, 159, 155, 155, 161, 162, 160, 160, 161, 158, 162, 160, 160, 156, 148, 170, 159, 156, 174, 159, 161, 158, 153, 160, 156, 168, 160, 158, 171, 162, 162, 163, 164, 159, 159, 158, 158, 158, 157, 163, 156, 160, 157, 158, 160, 163, 156, 145, 157, 159, 157, 165, 160, 161, 159, 156, 159, 158, 151, 150, 163, 160, 164, 159, 148, 158, 169, 162, 158, 163, 164, 160, 168, 157, 172, 162, 165, 160, 161, 151, 154, 156, 156, 157, 160, 174, 162, 167, 174, 160, 161, 146, 152, 160, 165, 157, 166, 157, 157, 155, 159, 159, 158, 160, 166, 157, 156, 166, 162, 154, 159, 155, 154, 161, 161, 148, 163, 156, 158, 163, 160, 160, 157, 163, 163, 164, 152, 157, 160, 156, 163, 159, 159, 165, 159, 160, 151, 161, 157, 158, 160, 156, 160, 162, 158, 162, 160, 162, 158, 164, 157, 157, 161, 162, 159, 159, 164, 156, 160, 158, 141, 163, 176, 158, 152, 162, 161, 158, 158, 157, 157, 157, 164, 148, 160, 153, 159, 164, 163, 160, 163, 158, 164, 159, 163, 159, 166, 166, 160, 150, 157, 158, 150, 156, 171, 162, 161, 164, 159, 174, 165, 158, 163, 157, 166, 159, 164, 166, 164, 158, 157, 159, 154, 160, 158, 160, 171, 160, 180, 161, 162, 161, 167, 161, 161, 153, 154, 154, 155, 149, 155, 158, 160, 159, 164, 156, 162, 158, 155, 169, 162, 164, 155, 155, 161, 158, 158, 150, 161, 161, 162, 158, 163, 163, 165, 158, 158, 149, 165, 157, 158, 157, 161, 167, 156, 158, 160, 161, 164, 157, 156, 159, 155, 159, 159, 167, 155, 160, 163, 166, 165, 161, 160, 155, 158, 161, 162, 167, 122, 154, 153, 160, 165, 156, 163, 156, 170, 154, 163, 165, 164, 157, 162, 168, 158, 159, 172, 161, 164, 154, 162, 168, 156, 161, 145, 160, 160, 158, 145, 163, 162, 161, 148, 157, 159, 160, 156, 159, 158, 161, 173, 122, 160, 162, 161, 161, 158, 162, 160, 156, 162, 160, 167, 158, 164, 163, 158, 164, 164, 165, 162, 163, 216, 153, 143, 157, 162, 152, 161, 162, 159, 156, 162, 153, 169, 149, 157, 143, 162, 162, 162, 154, 161, 140, 158, 154, 165, 161, 161, 161, 163, 153, 162, 163, 155, 158, 156, 159, 163, 169, 177, 154, 159, 166, 155, 155, 158, 157, 158, 163, 160, 157, 160, 163, 152, 162, 128, 156, 155, 161, 152, 162, 155, 168, 171, 155, 162, 164, 164, 171, 159, 163, 157, 157, 158, 158, 162, 178, 157, 161, 170, 174, 155, 154, 165, 158, 160, 156, 153, 158, 161, 156, 158, 160, 159, 162, 159, 168, 163, 163, 160, 162, 163, 164, 148, 168, 168, 124, 165, 166, 162, 162, 168, 157, 155, 159, 160, 164, 164, 156, 157, 166, 163, 158, 161, 165, 152, 158, 162, 162, 162, 151, 157, 157, 166, 161, 155, 163, 154, 161, 156, 161, 160, 166, 159, 159, 164, 161, 165, 163, 159, 153, 154, 156, 182, 162, 166, 153, 166, 173, 152, 161, 163, 164, 165, 150, 159, 164, 157, 163, 163, 161, 151, 157, 160, 166, 162, 162, 155, 165, 165, 152, 164, 156, 159, 160, 151, 161, 159, 158, 159, 155, 163, 161, 157, 165, 156, 164, 161, 161, 164, 157, 154, 153, 165, 156, 154, 156, 170, 161, 163, 165, 163, 165, 163, 163, 167, 162, 158, 160, 157, 161, 163, 165, 156, 159, 160, 156, 164, 157, 154, 161, 159, 157, 160, 167, 157, 162, 165, 162, 163, 162, 164, 163, 165, 151, 164, 153, 162, 156, 163, 154, 160, 162, 159, 161, 159, 156, 159, 164, 160, 159, 159, 158, 160, 157, 161, 153, 161, 161, 183, 167, 159, 158, 164, 164, 164, 156, 160, 156, 158, 168, 170, 152, 157, 155, 166, 161, 154, 165, 139, 166, 162, 160, 158, 160, 161, 156, 163, 151, 160, 162, 163, 161, 161, 163, 156, 165, 141, 156, 164, 205, 158, 152, 159, 162, 165, 169, 168, 163, 162, 161, 162, 168, 163, 160, 168, 172, 158, 162, 165, 164, 157, 156, 160, 160, 160, 166, 159, 158, 166, 160, 166, 157, 159, 162, 158, 155, 160, 165, 154, 157, 173, 153, 161, 155, 166, 160, 157, 164, 164, 166, 155, 161, 161, 164, 158, 162, 161, 157, 164, 154, 157, 164, 156, 162, 155, 157, 159, 159, 158, 163, 158, 192, 157, 158, 158, 160, 157, 164, 164, 161, 157, 160, 163, 159, 161, 164, 168, 160, 167, 164, 157, 163, 157, 162, 159, 164, 162, 159, 159, 154, 158, 157, 156, 173, 158, 160, 166, 146, 167, 159, 158, 158, 161, 163, 160, 153, 159, 158, 158, 163, 165, 158, 158, 141, 162, 149, 154, 161, 161, 165, 161, 152, 165, 158, 162, 160, 156, 160, 161, 159, 161, 160, 163, 161, 164, 155, 161, 155, 161, 164, 155, 159, 152, 169, 160, 178, 157, 156, 160, 156, 164, 164, 166, 157, 169, 158, 157, 156, 167, 162, 165, 162, 175, 163, 162, 164, 152, 158, 155, 157, 164, 153, 155, 145, 163, 156, 165, 162, 160, 157, 153, 162, 154, 158, 167, 165, 166, 159, 163, 157, 161, 163, 158, 167, 163, 158, 166, 164, 162, 159, 161, 160, 162, 157, 160, 163, 146, 165, 156, 154, 159, 154, 164, 155, 160, 153, 161, 166, 150, 163, 165, 160, 165, 149, 154, 153, 166, 155, 161, 160, 160, 156, 166, 164, 149, 163, 153, 161, 160, 165, 152, 159, 155, 163, 162, 155, 157, 158, 165, 165, 157, 162, 157, 152, 156, 162, 158, 160, 159, 157, 166, 161, 161, 145, 158, 162, 161, 156, 161, 159, 166, 180, 164, 157, 160, 161, 160, 161, 167, 162, 160, 165, 156, 163, 161, 168, 160, 141, 156, 163, 159, 159, 161, 163, 158, 160, 154, 159, 172, 160, 163, 159, 169, 156, 157, 159, 161, 157, 171, 162, 162, 168, 163, 162, 152, 166, 163, 164, 165, 155, 160, 163, 157, 166, 158, 160, 169, 146, 159, 160, 159, 162, 154, 156, 155, 160, 160, 164, 153, 157, 155, 162, 156, 164, 168, 162, 160, 163, 158, 160, 163, 159, 163, 156, 148, 166, 160, 161, 165, 164, 158, 152, 159, 163, 160, 158, 165, 162, 165, 160, 163, 155, 162, 161, 160, 163, 160, 161, 154, 166, 161, 159, 170, 159, 166, 155, 159, 161, 157, 160, 165, 159, 160, 161, 162, 157, 159, 160, 159, 163, 161, 156, 162, 166, 160, 157, 162, 163, 160, 158, 162, 157, 157, 162, 177, 158, 166, 159, 154, 158, 159, 155, 166, 155, 167, 158, 153, 160, 163, 163, 162, 167, 158, 158, 165, 158, 159, 150, 162, 152, 166, 166, 155, 167, 155, 158, 154, 160, 165, 159, 155, 169, 141, 149, 150, 173, 154, 166, 155, 163, 161, 157, 160, 140, 152, 154, 161, 166, 154, 166, 162, 163, 174, 154, 158, 151, 163, 164, 162, 159, 159, 153, 155, 161, 161, 156, 152, 161, 162, 163, 157, 162, 157, 156, 163, 149, 160, 159, 163, 155, 156, 162, 160, 163, 159, 159, 161, 162, 162, 164, 154, 160, 159, 160, 163, 159, 159, 159, 164, 156, 165, 149, 169, 156, 161, 157, 153, 152, 154, 158, 150, 159, 165, 165, 158, 160, 160, 164, 153, 164, 153, 166, 158, 160, 155, 161, 161, 169, 158, 152, 160, 168, 164, 154, 157, 182, 163, 164, 163, 160, 159, 165, 161, 171, 161, 156, 163, 161, 156, 153, 161, 166, 160, 158, 138, 163, 168, 167, 160, 161, 163, 151, 160, 163, 155, 162, 159, 159, 156, 157, 166, 156, 154, 159, 160, 164, 168, 161, 153, 160, 153, 167, 161, 157, 157, 170, 160, 157, 164, 158, 168, 164, 164, 165, 157, 160, 162, 164, 172, 163, 160, 166, 160, 148, 163, 158, 163, 160, 173, 150, 155, 150, 160, 150, 171, 165, 145, 153, 158, 154, 159, 168, 165, 159, 161, 165, 158, 155, 153, 150, 155, 156, 158, 159, 169, 154, 162, 162, 164, 162, 159, 161, 155, 159, 149, 176, 152, 165, 158, 165, 149, 155, 156, 154, 158, 160, 158, 165, 166, 159, 158, 150, 162, 158, 149, 157, 156, 152, 159, 158, 159, 161, 163, 161, 158, 165, 159, 165, 159, 169, 163, 149, 158, 173, 162, 159, 162, 158, 160, 159, 161, 160, 160, 155, 155, 157, 164, 151, 153, 164, 164, 152, 153, 161, 161, 165, 159, 148, 166, 157, 160, 153, 155, 159, 161, 157, 167, 157, 156, 151, 158, 157, 159, 163, 157, 158, 162, 163, 162, 161, 152, 157, 150, 157, 154, 160, 156, 160, 161, 162, 159, 150, 158, 150, 161, 153, 162, 149, 157, 154, 161, 156, 158, 159, 168, 158, 154, 152, 178, 157, 149, 162, 160, 159, 156, 163, 157, 156, 160, 158, 156, 167, 162, 156, 159, 164, 159, 159, 155, 162, 167, 153, 158, 160, 160, 169, 158, 170, 152, 158, 150, 165, 153, 164, 160, 161, 150, 159, 163, 159, 159, 144, 158, 156, 161, 165, 151, 157, 159, 157, 154, 159, 154, 163, 159, 164, 154, 167, 162, 166, 163, 166, 158, 159, 157, 158, 152, 158, 170, 156, 163, 167, 156, 148, 160, 152, 156, 149, 161, 162, 165, 176, 152, 166, 153, 159, 164, 173, 174, 158, 147, 155, 157, 160, 162, 161, 160, 160, 168, 157, 160, 160, 159, 166, 157, 165, 137, 160, 161, 160, 162, 148, 158, 158, 157, 155, 167, 157, 160, 154, 153, 155, 158, 161, 167, 170, 164, 156, 158, 155, 152, 155, 171, 163, 160, 167, 162, 168, 150, 154, 156, 164, 164, 159, 157, 165, 167, 159, 158, 159, 163, 157, 156, 161, 163, 173, 161, 160, 162, 154, 152, 161, 156, 169, 173, 162, 155, 161, 160, 150, 151, 160, 155, 155, 161, 158, 166, 160, 159, 176, 151, 156, 163, 168, 159, 163, 155, 158, 165, 167, 158, 176, 163, 164, 155, 158, 166, 153, 154, 165, 155, 160, 162, 152, 174, 160, 161, 154, 149, 146, 156, 160, 159, 162, 163, 150, 157, 156, 153, 163, 161, 164, 165, 162, 153, 156, 155, 164, 157, 156, 166, 159, 148, 158, 159, 153, 153, 159, 160, 156, 163, 164, 158, 160, 160, 145, 164, 158, 155, 156, 168, 152, 173, 152, 150, 153, 156, 161, 159, 154, 159, 156, 168, 147, 157, 174, 152, 171, 148, 160, 157, 156, 162, 158, 162, 155, 166, 161, 157, 148, 161, 161, 156, 153, 164, 151, 162, 158, 150, 166, 161, 160, 151, 162, 165, 154, 153, 160, 157, 158, 155, 144, 147, 155, 158, 163, 158, 162, 155, 166, 149, 166, 173, 168, 167, 161, 165, 169, 163, 154, 159, 165, 157, 158, 168, 168, 158, 160, 158, 159, 153, 157, 159, 154, 161, 152, 156, 162, 167, 156, 174, 162, 158, 151, 160, 162, 157, 160, 155, 163, 155, 151, 163, 161, 154, 162, 155, 163, 156, 160, 160, 165, 157, 163, 161, 160, 160, 166, 165, 158, 159, 160, 162, 166, 165, 173, 160, 159, 158, 163, 165, 159, 166, 147, 161, 154, 168, 166, 167, 158, 164, 161, 161, 154, 158, 156, 159, 158, 158, 159, 165, 173, 157, 165, 157, 162, 157, 158, 165, 174, 161, 158, 156, 162, 157, 158, 165, 158, 160, 163, 155, 157, 166, 161, 168, 165, 163, 155, 154, 161, 160, 167, 158, 157, 167, 152, 161, 164, 166, 166, 143, 166, 163, 174, 173, 164, 154, 158, 159, 160, 155, 164, 163, 162, 165, 163, 145, 160, 157, 152, 160, 161, 157, 154, 155, 154, 168, 165, 156, 160, 169, 148, 155, 155, 157, 166, 156, 156, 157, 168, 158, 169, 157, 160, 164, 164, 167, 165, 155, 163, 159, 166, 169, 160, 156, 162, 165, 157, 163, 158, 179, 159, 170, 162, 152, 156, 166, 161, 164, 169, 165, 161, 163, 153, 157, 166, 162, 156, 170, 157, 160, 162, 160, 157, 160, 166, 156, 163, 152, 163, 170, 159, 162, 155, 163, 164, 154, 157, 160, 165, 157, 157, 168, 149, 159, 153, 156, 152, 170, 158, 161, 158, 159, 165, 144, 164, 161, 171, 156, 165, 154, 165, 162, 157, 152, 158, 160, 158, 143, 173, 156, 160, 162, 163, 154, 159, 165, 164, 174, 158, 164, 166, 160, 167, 156, 166, 162, 153, 164, 170, 159, 165, 152, 163, 171, 154, 153, 161, 159, 164, 166, 163, 162, 167, 147, 165, 159, 161, 163, 158, 161, 161, 155, 168, 157, 169, 173, 160, 161, 165, 164, 159, 159, 160, 163, 167, 159, 169, 154, 163, 168, 157, 162, 158, 159, 170, 164, 159, 156, 163, 163, 146, 165, 156, 160, 161, 149, 149, 156, 161, 164, 155, 168, 165, 144, 171, 160, 151, 163, 156, 157, 165, 165, 159, 156, 159, 151, 159, 163, 161, 161, 154, 147, 157, 158, 163, 165, 164, 172, 158, 163, 159, 171, 152, 156, 162, 162, 161, 166, 162, 167, 155, 153, 165, 165, 161, 172, 156, 153, 157, 156, 165, 162, 164, 169, 160, 156, 163, 169, 164, 161, 165, 166, 161, 155, 165, 162, 165, 153, 161, 164, 153, 157, 163, 161, 162, 164, 163, 167, 162, 162, 165, 157, 169, 164, 164, 172, 166, 155, 161, 165, 155, 159, 164, 154, 164, 168, 162, 165, 150, 161, 160, 159, 166, 165, 157, 157, 160, 156, 164, 161, 168, 150, 175, 158, 150, 158, 166, 161, 163, 155, 155, 159, 162, 162, 161, 165, 160, 155, 168, 165, 163, 158, 155, 169, 157, 158, 152, 151, 167, 157, 161, 144, 159, 161, 166, 153, 160, 167, 154, 159, 153, 159, 157, 161, 163, 162, 165, 164, 175, 164, 157, 163, 160, 153, 153, 153, 165, 163, 160, 157, 155, 143, 151, 149, 159, 154, 155, 172, 164, 158, 160, 164, 154, 156, 165, 168, 157, 151, 153, 158, 164, 162, 160, 162, 160, 158, 159, 166, 161, 152, 161, 160, 162, 158, 160, 151, 160, 158, 163, 165, 160, 143, 165, 158, 161, 160, 163, 158, 156, 156, 159, 156, 159, 163, 166, 157, 162, 163, 159, 163, 161, 156, 156, 157, 160, 159, 161, 165, 166, 158, 158, 162, 160, 161, 166, 160, 155, 154, 163, 161, 160, 164, 162, 166, 160, 167, 174, 154, 158, 160, 158, 157, 163, 158, 162, 157, 165, 163, 156, 160, 161, 157, 157, 159, 153, 164, 161, 155, 164, 162, 159, 158, 157, 159, 156, 157, 165, 158, 160, 159, 166, 162, 166, 161, 156, 155, 152, 164, 157, 157, 165, 162, 157, 163, 158, 166, 154, 153, 169, 159, 160, 165, 162, 159, 158, 164, 160, 160, 156, 158, 159, 160, 157, 158, 159, 161, 157, 159, 155, 153, 160, 156, 161, 165, 161, 157, 160, 163, 158, 157, 160, 159, 156, 157, 154, 155, 157, 158, 158, 159, 164, 164, 164, 168, 154, 164, 161, 159, 153, 156, 152, 157, 162, 160, 163, 157, 167, 159, 160, 151, 152, 154, 160, 163, 156, 163, 166, 160, 160, 167, 158, 155, 160, 160, 163, 165, 154, 160, 159, 163, 155, 156, 163, 164, 158, 157, 159, 161, 164, 160, 160, 161, 157, 162, 163, 157, 162, 159, 156, 160, 159, 158, 160, 159, 158, 167, 160, 160, 159, 160, 156, 162, 158, 166, 163, 159, 158, 159, 160, 161, 157, 169, 155, 162, 162, 160, 156, 161, 161, 157, 161, 163, 157, 161, 156, 161, 157, 161, 163, 161, 156, 162, 160, 162, 157, 162, 162, 154, 160, 156, 161, 160, 161, 158, 164, 156, 162, 158, 166, 161, 158, 169, 158, 157, 166, 164, 158, 157, 162, 153, 154, 160, 157, 160, 164, 162, 165, 158, 162, 158, 160, 160, 152, 161, 163, 162, 161, 163, 159, 160, 161, 159, 159, 154, 160, 163, 159, 157, 162, 166, 172, 159, 165, 156, 161, 159, 158, 160, 159, 159, 160, 158, 152, 172, 158, 160, 164, 165, 163, 163, 166, 155, 152, 166, 165, 154, 161, 161, 162, 156, 159, 162, 161, 158, 164, 161, 157, 155, 159, 150, 162, 166, 153, 164, 160, 153, 164, 161, 163, 160, 154, 162, 157, 161, 172, 162, 165, 160, 162, 154, 159, 157, 160, 158, 152, 157, 156, 157, 167, 163, 159, 158, 162, 160, 160, 158, 164, 164, 159, 160, 159, 167, 162, 160, 158, 162, 173, 165, 156, 154, 155, 166, 160, 159, 156, 158, 158, 162, 156, 157, 162, 159, 161, 163, 159, 169, 162, 156, 162, 170, 158, 157, 161, 162, 158, 153, 159, 158, 156, 161, 153, 161, 167, 161, 163, 161, 161, 155, 165, 153, 158, 159, 151, 158, 157, 161, 160, 157, 155, 163, 158, 168, 162, 159, 164, 160, 153, 158, 160, 164, 161, 163, 158, 161, 160, 159, 157, 155, 154, 159, 151, 158, 160, 167, 168, 169, 158, 160, 162, 160, 164, 164, 164, 157, 159, 159, 148, 163, 157, 157, 165, 156, 158, 156, 164, 158, 162, 161, 154, 162, 160, 164, 160, 156, 161, 160, 161, 163, 155, 161, 168, 156, 159, 144, 155, 174, 153, 143, 157, 159, 162, 148, 152, 164, 157, 169, 158, 160, 157, 170, 155, 159, 161, 164, 152, 158, 162, 167, 165, 157, 158, 156, 158, 152, 159, 158, 140, 167, 165, 157, 160, 152, 147, 158, 152, 153, 150, 152, 163, 163, 155, 154, 160, 162, 157, 155, 173, 162, 156, 165, 163, 155, 166, 150, 158, 153, 160, 161, 162, 151, 160, 165, 153, 160, 167, 159, 157, 167, 161, 163, 170, 162, 160, 156, 163, 152, 159, 164, 158, 167, 162, 174, 165, 163, 159, 165, 159, 162, 160, 162, 161, 154, 157, 163, 166, 159, 166, 163, 167, 155, 153, 154, 163, 155, 155, 162, 154, 163, 159, 160, 159, 149, 160, 181, 153, 158, 168, 161, 159, 161, 166, 166, 153, 154, 147, 161, 172, 173, 163, 154, 160, 163, 166, 157, 162, 164, 155, 167, 153, 154, 165, 163, 157, 157, 159, 167, 162, 159, 169, 150, 155, 155, 156, 156, 152, 124, 163, 161, 157, 162, 157, 154, 162, 158, 155, 164, 159, 167, 161, 163, 162, 158, 169, 160, 157, 151, 168, 154, 160, 153, 161, 153, 163, 169, 161, 164, 156, 162, 164, 159, 157, 158, 157, 164, 159, 156, 174, 162, 155, 153, 163, 160, 154, 149, 157, 157, 157, 163, 155, 163, 179, 152, 155, 179, 161, 163, 163, 152, 168, 165, 164, 151, 154, 162, 163, 154, 161, 171, 159, 153, 156, 181, 154, 157, 171, 161, 166, 156, 158, 168, 161, 159, 169, 159, 152, 165, 166, 165, 162, 155, 162, 167, 158, 160, 154, 158, 153, 161, 153, 163, 159, 170, 157, 163, 151, 153, 166, 156, 159, 156, 160, 153, 153, 155, 158, 158, 162, 155, 175, 160, 148, 163, 155, 154, 156, 157, 160, 155, 171, 153, 160, 153, 153, 154, 172, 163, 156, 148, 160, 161, 157, 164, 154, 161, 160, 160, 155, 148, 155, 170, 167, 158, 159, 158, 175, 156, 162, 166, 159, 155, 164, 153, 148, 168, 154, 154, 146, 162, 163, 165, 164, 160, 160, 156, 167, 153, 163, 158, 162, 162, 155, 160, 155, 160, 160, 158, 155, 158, 166, 167, 158, 170, 167, 160, 155, 161, 159, 154, 167, 148, 162, 157, 158, 163, 167, 153, 156, 151, 159, 163, 158, 155, 158, 154, 163, 158, 160, 159, 168, 164, 155, 174, 164, 166, 179, 158, 156, 162, 158, 151, 163, 164, 155, 166, 168, 166, 161, 168, 157, 163, 155, 156, 159, 161, 163, 162, 160, 173, 157, 151, 151, 164, 157, 156, 144, 174, 156, 159, 155, 161, 161, 153, 167, 168, 160, 153, 162, 155, 162, 156, 164, 172, 164, 153, 156, 171, 163, 159, 160, 169, 162, 153, 152, 158, 153, 163, 155, 162, 155, 155, 155, 154, 160, 156, 157, 154, 161, 156, 159, 165, 152, 152, 161, 147, 160, 160, 149, 158, 158, 155, 165, 154, 160, 161, 161, 157, 158, 186, 163, 165, 156, 179, 149, 158, 152, 160, 151, 157, 161, 158, 161, 167, 162, 161, 163, 161, 161, 162, 154, 158, 158, 160, 159, 158, 157, 165, 158, 156, 157, 156, 156, 157, 161, 153, 169, 166, 155, 160, 154, 149, 161, 159, 154, 157, 160, 164, 159, 155, 161, 162, 159, 169, 154, 158, 161, 161, 160, 162, 158, 164, 158, 161, 154, 160, 157, 160, 164, 163, 153, 157, 161, 153, 161, 162, 165, 162, 167, 162, 159, 159, 166, 162, 160, 162, 158, 161, 153, 159, 163, 163, 156, 157, 158, 155, 155, 157, 159, 163, 166, 159, 157, 161, 162, 157, 165, 157, 162, 157, 159, 170, 164, 161, 160, 159, 159, 157, 170, 160, 171, 161, 159, 159, 165, 162, 152, 164, 160, 160, 161, 154, 156, 164, 163, 157, 159, 152, 158, 160, 160, 164, 161, 157, 166, 161, 156, 161, 154, 156, 159, 160, 160, 163, 147, 161, 163, 158, 164, 162, 160, 157, 163, 158, 159, 157, 161, 159, 162, 156, 155, 167, 160, 163, 170, 162, 166, 162, 160, 164, 155, 150, 162, 160, 159, 171, 158, 159, 162, 162, 159, 172, 150, 159, 158, 156, 157, 167, 161, 161, 157, 156, 147, 164, 163, 172, 160, 159, 160, 166, 161, 162, 160, 156, 150, 162, 161, 159, 166, 155, 160, 160, 161, 165, 162, 162, 163, 159, 161, 157, 161, 165, 158, 159, 161, 163, 160, 154, 160, 164, 158, 158, 160, 165, 155, 154, 156, 163, 160, 165, 159, 163, 161, 163, 163, 161, 159, 161, 163, 163, 161, 157, 161, 156, 153, 157, 157, 157, 157, 163, 153, 159, 162, 177, 163, 161, 163, 153, 156, 166, 162, 161, 157, 159, 156, 163, 160, 162, 162, 159, 159, 161, 158, 161, 158, 168, 162, 188, 161, 159, 158, 156, 152, 159, 161, 156, 163, 164, 159, 162, 160, 161, 158, 163, 157, 162, 162, 159, 153, 165, 165, 163, 165, 160, 157, 166, 158, 160, 160, 158, 160, 158, 162, 157, 171, 165, 156, 159, 155, 159, 158, 160, 162, 157, 157, 161, 158, 163, 161, 160, 165, 163, 157, 159, 158, 159, 155, 164, 160, 161, 159, 156, 163, 157, 165, 158, 174, 168, 156, 162, 150, 163, 159, 153, 167, 157, 158, 158, 164, 158, 160, 156, 156, 159, 164, 163, 160, 165, 165, 161, 162, 162, 167, 158, 158, 165, 156, 157, 159, 159, 166, 168, 159, 161, 153, 160, 160, 157, 159, 163, 154, 159, 162, 156, 169, 157, 158, 164, 161, 165, 159, 163, 160, 159, 160, 163, 158, 158, 165, 157, 158, 160, 161, 162, 158, 156, 152, 158, 158, 158, 154, 159, 162, 151, 160, 160, 165, 162, 160, 158, 160, 159, 153, 159, 159, 159, 149, 162, 159, 163, 161, 162, 162, 157, 161, 160, 173, 157, 160, 159, 159, 159, 162, 158, 159, 162, 160, 161, 159, 162, 166, 161, 159, 157, 157, 164, 157, 157, 160, 162, 162, 161, 156, 163, 162, 159, 162, 155, 157, 155, 162, 157, 158, 164, 161, 158, 169, 158, 166, 161, 159, 162, 153, 161, 165, 159, 165, 160, 158, 160, 154, 159, 159, 157, 159, 162, 159, 159, 159, 162, 162, 155, 148, 172, 158, 148, 160, 158, 158, 164, 155, 161, 169, 151, 162, 158, 164, 164, 164, 165, 161, 151, 162, 155, 158, 150, 161, 163, 159, 160, 160, 152, 161, 170, 161, 169, 166, 156, 162, 162, 159, 165, 152, 148, 160, 156, 160, 164, 162, 165, 136, 158, 160, 146, 161, 156, 146, 156, 166, 165, 166, 157, 161, 159, 159, 155, 164, 156, 158, 163, 162, 162, 161, 166, 166, 153, 160, 156, 176, 154, 162, 158, 151, 157, 164, 156, 155, 159, 158, 161, 155, 155, 160, 165, 154, 147, 159, 160, 166, 155, 160, 164, 148, 161, 166, 156, 161, 166, 163, 178, 158, 146, 154, 167, 159, 162, 159, 163, 167, 167, 157, 164, 152, 166, 161, 165, 160, 155, 158, 151, 157, 158, 169, 162, 165, 162, 161, 160, 156, 156, 152, 160, 161, 157, 155, 155, 164, 155, 167, 165, 155, 163, 157, 168, 157, 157, 164, 169, 164, 158, 164, 159, 152, 163, 149, 170, 141, 156, 158, 154, 158, 170, 162, 161, 156, 167, 162, 154, 161, 164, 158, 153, 161, 159, 159, 150, 158, 165, 161, 159, 155, 163, 158, 156, 158, 168, 161, 157, 165, 163, 155, 169, 153, 180, 163, 162, 166, 157, 163, 160, 160, 158, 162, 144, 165, 156, 156, 145, 155, 162, 159, 162, 164, 167, 166, 167, 154, 155, 164, 156, 176, 170, 165, 159, 165, 157, 164, 148, 182, 166, 159, 168, 150, 154, 160, 157, 161, 170, 162, 157, 152, 165, 154, 161, 165, 157, 159, 159, 158, 158, 169, 159, 172, 167, 167, 160, 157, 160, 164, 164, 152, 174, 169, 159, 157, 163, 161, 157, 149, 169, 159, 158, 162, 169, 166, 159, 165, 146, 166, 160, 164, 160, 158, 163, 157, 156, 149, 167, 151, 151, 165, 156, 164, 170, 157, 164, 173, 163, 166, 163, 177, 163, 164, 165, 165, 169, 165, 169, 159, 162, 161, 160, 161, 158, 165, 170, 173, 161, 168, 164, 161, 159, 154, 156, 171, 162, 156, 163, 158, 161, 144, 164, 150, 161, 161, 155, 163, 151, 163, 162, 161, 163, 155, 161, 164, 164, 156, 165, 153, 174, 171, 169, 153, 158, 147, 156, 161, 158, 163, 167, 158, 172, 165, 154, 164, 162, 162, 163, 164, 161, 157, 167, 158, 162, 156, 163, 153, 168, 172, 167, 160, 158, 148, 162, 162, 167, 155, 162, 155, 166, 168, 160, 160, 166, 158, 164, 165, 164, 166, 157, 165, 164, 157, 167, 161, 162, 168, 166, 142, 170, 168, 151, 165, 162, 169, 162, 158, 161, 164, 156, 159, 174, 141, 163, 162, 154, 159, 154, 162, 165, 164, 153, 162, 163, 162, 146, 180, 159, 161, 150, 152, 154, 153, 169, 161, 162, 165, 161, 154, 166, 160, 165, 157, 156, 164, 171, 159, 161, 164, 158, 158, 168, 157, 161, 156, 166, 147, 156, 155, 167, 159, 159, 149, 162, 159, 163, 162, 160, 164, 148, 161, 165, 161, 171, 161, 162, 164, 162, 164, 157, 157, 160, 171, 167, 167, 161, 157, 159, 167, 158, 160, 161, 165, 158, 163, 159, 162, 161, 157, 161, 160, 157, 163, 161, 161, 159, 160, 157, 162, 159, 155, 164, 151, 158, 160, 156, 163, 164, 164, 162, 153, 159, 159, 148, 160, 169, 162, 170, 161, 163, 163, 161, 167, 158, 163, 156, 164, 162, 161, 152, 166, 162, 159, 158, 162, 161, 163, 157, 160, 162, 160, 161, 163, 162, 166, 163, 157, 169, 161, 162, 162, 158, 156, 164, 162, 161, 159, 164, 168, 153, 161, 159, 161, 164, 162, 163, 154, 162, 162, 165, 161, 153, 158, 156, 160, 160, 154, 162, 161, 161, 163, 163, 154, 161, 161, 160, 155, 161, 161, 155, 163, 161, 161, 160, 165, 158, 157, 161, 163, 164, 152, 164, 156, 159, 160, 159, 160, 160, 158, 160, 153, 162, 152, 156, 164, 148, 161, 152, 161, 163, 165, 166, 159, 159, 160, 159, 153, 158, 161, 158, 162, 162, 157, 159, 158, 155, 160, 162, 165, 160, 158, 161, 158, 162, 158, 160, 164, 155, 161, 155, 160, 162, 160, 158, 163, 161, 162, 160, 159, 162, 160, 158, 163, 167, 160, 155, 163, 165, 158, 160, 160, 160, 156, 160, 160, 158, 162, 160, 159, 159, 159, 162, 163, 160, 160, 154, 162, 162, 163, 159, 154, 162, 159, 160, 157, 160, 159, 156, 162, 167, 158, 158, 156, 164, 158, 156, 155, 167, 160, 161, 153, 160, 160, 161, 162, 158, 156, 163, 163, 158, 157, 164, 155, 160, 159, 159, 163, 163, 161, 157, 160, 164, 163, 161, 159, 165, 164, 154, 156, 158, 160, 158, 164, 153, 161, 163, 159, 166, 157, 157, 165, 165, 162, 164, 165, 161, 163, 157, 158, 162, 166, 164, 150, 157, 164, 145, 159, 161, 163, 159, 164, 156, 162, 162, 161, 158, 162, 154, 163, 163, 161, 161, 163, 166, 161, 166, 158, 160, 160, 168, 160, 160, 165, 158, 153, 160, 155, 161, 158, 161, 165, 161, 161, 167, 163, 155, 156, 151, 156, 166, 157, 149, 157, 159, 161, 164, 163, 157, 158, 164, 161, 163, 157, 160, 160, 160, 157, 152, 164, 164, 160, 159, 163, 166, 164, 148, 167, 157, 158, 162, 161, 166, 159, 154, 162, 161, 164, 167, 162, 164, 163, 161, 158, 163, 159, 161, 159, 162, 165, 160, 161, 160, 167, 164, 162, 162, 164, 154, 162, 159, 158, 162, 149, 164, 160, 159, 162, 162, 161, 160, 161, 157, 164, 159, 160, 159, 163, 154, 158, 157, 166, 158, 163, 160, 163, 166, 159, 161, 164, 159, 168, 162, 161, 160, 162, 158, 162, 149, 164, 151, 158, 156, 163, 159, 165, 157, 165, 163, 162, 158, 163, 160, 163, 163, 161, 160, 164, 158, 159, 159, 156, 162, 155, 157, 155, 160, 161, 162, 159, 156, 164, 158, 163, 159, 155, 165, 156, 163, 165, 158, 153, 156, 165, 161, 164, 164, 157, 158, 162, 161, 157, 157, 169, 165, 169, 153, 157, 165, 160, 160, 161, 161, 156, 164, 162, 160, 162, 164, 157, 159, 162, 152, 160, 161, 162, 149, 155, 160, 164, 155, 156, 163, 155, 165, 158, 155, 155, 158, 158, 166, 158, 159, 161, 162, 154, 172, 157, 159, 171, 162, 159, 161, 151, 167, 159, 158, 161, 167, 161, 157, 167, 163, 166, 172, 156, 164, 160, 159, 175, 165, 154, 162, 160, 154, 160, 156, 154, 159, 165, 162, 156, 152, 159, 155, 165, 156, 156, 157, 166, 169, 163, 160, 153, 163, 156, 159, 164, 159, 150, 154, 163, 167, 164, 162, 165, 163, 164, 155, 164, 152, 170, 161, 153, 161, 163, 160, 158, 163, 159, 160, 147, 164, 157, 161, 163, 161, 165, 157, 161, 150, 190, 151, 154, 138, 158, 159, 158, 155, 162, 161, 150, 158, 169, 157, 159, 160, 160, 162, 160, 160, 167, 161, 155, 171, 152, 152, 165, 161, 157, 161, 167, 158, 169, 160, 187, 152, 164, 156, 158, 165, 169, 161, 158, 153, 151, 159, 140, 161, 163, 164, 158, 175, 157, 160, 161, 162, 166, 162, 155, 159, 159, 158, 153, 159, 162, 162, 164, 156, 155, 161, 158, 155, 164, 154, 162, 161, 161, 172, 176, 151, 154, 161, 147, 164, 159, 165, 159, 144, 168, 146, 154, 156, 161, 159, 161, 145, 164, 168, 150, 164, 164, 163, 151, 159, 163, 145, 151, 146, 157, 151, 167, 158, 166, 158, 160, 153, 161, 162, 158, 161, 167, 152, 166, 161, 155, 159, 153, 164, 166, 162, 164, 158, 170, 161, 149, 165, 155, 154, 157, 160, 162, 157, 158, 156, 163, 162, 164, 158, 149, 176, 158, 159, 149, 160, 158, 152, 170, 150, 156, 159, 160, 140, 161, 188, 140, 150, 165, 155, 159, 162, 163, 177, 161, 161, 159, 149, 159, 168, 165, 163, 167, 162, 162, 152, 160, 158, 150, 159, 161, 157, 165, 157, 136, 159, 158, 158, 161, 156, 159, 166, 157, 166, 154, 160, 155, 157, 155, 163, 167, 157, 173, 159, 160, 158, 158, 158, 164, 162, 159, 172, 152, 160, 168, 154, 163, 156, 168, 156, 159, 164, 160, 161, 148, 157, 160, 160, 164, 158, 160, 156, 158, 160, 160, 157, 163, 160, 162, 156, 160, 159, 184, 155, 159, 165, 157, 145, 155, 158, 163, 157, 164, 173, 159, 155, 168, 155, 159, 159, 166, 172, 160, 162, 171, 147, 159, 163, 157, 167, 178, 165, 179, 142, 159, 164, 166, 156, 155, 169, 165, 158, 160, 150, 167, 167, 151, 161, 164, 149, 164, 159, 160, 155, 160, 167, 169, 163, 157, 164, 158, 162, 157, 159, 155, 154, 167, 158, 164, 163, 153, 165, 160, 161, 159, 156, 161, 158, 148, 160, 157, 167, 152, 157, 160, 164, 155, 158, 155, 167, 160, 184, 161, 160, 149, 161, 166, 155, 160, 153, 163, 165, 170, 163, 155, 166, 170, 159, 169, 157, 154, 161, 153, 163, 168, 163, 163, 164, 160, 149, 163, 162, 157, 167, 156, 156, 168, 160, 157, 158, 168, 168, 150, 153, 156, 166, 159, 155, 158, 157, 157, 167, 164, 155, 168, 151, 157, 159, 150, 162, 156, 147, 149, 156, 152, 156, 159, 164, 166, 157, 163, 162, 157, 151, 159, 154, 164, 146, 158, 159, 177, 155, 160, 150, 165, 160, 160, 159, 158, 156, 157, 156, 157, 160, 162, 162, 157, 162, 162, 163, 163, 167, 173, 155, 151, 167, 152, 147, 159, 161, 152, 154, 157, 168, 144, 179, 162, 158, 161, 149, 171, 166, 165, 155, 152, 161, 157, 125, 161, 154, 158, 161, 160, 167, 165, 156, 162, 162, 165, 173, 155, 167, 156, 161, 162, 148, 157, 153, 162, 153, 157, 158, 166, 163, 156, 163, 167, 160, 155, 142, 147, 157, 158, 151, 159, 158, 162, 156, 162, 158, 161, 158, 153, 175, 164, 163, 178, 163, 167, 152, 161, 154, 157, 143, 172, 164, 165, 164, 162, 157, 156, 162, 159, 159, 162, 163, 152, 162, 172, 158, 148, 160, 155, 158, 162, 161, 153, 170, 146, 160, 162, 160, 177, 167, 151, 154, 154, 150, 156, 155, 168, 162, 156, 158, 148, 171, 168, 164, 194, 143, 163, 148, 163, 161, 161, 160, 154, 177, 166, 165, 161, 156, 158, 166, 147, 158, 162, 163, 166, 163, 133, 161, 168, 152, 168, 168, 152, 154, 158, 160, 158, 144, 157, 163, 171, 168, 159, 166, 156, 159, 158, 156, 152, 169, 161, 158, 159, 176, 168, 154, 155, 166, 160, 170, 168, 154, 159, 166, 169, 157, 170, 176, 159, 157, 161, 159, 158, 158, 165, 163, 168, 167, 169, 165, 160, 169, 161, 163, 161, 174, 155, 151, 158, 149, 174, 165, 162, 164, 169, 158, 165, 167, 160, 172, 193, 162, 169, 154, 162, 159, 160, 158, 157, 157, 157, 161, 164, 159, 153, 163, 165, 143, 167, 161, 165, 156, 161, 149, 169, 165, 155, 151, 172, 158, 158, 164, 159, 164, 157, 157, 157, 160, 151, 155, 190, 148, 160, 159, 153, 165, 162, 150, 168, 161, 155, 162, 157, 154, 153, 157, 159, 167, 169, 157, 160, 175, 161, 154, 163, 151, 155, 158, 158, 169, 155, 154, 165, 161, 160, 155, 161, 164, 154, 162, 164, 159, 148, 162, 155, 163, 166, 151, 160, 161, 154, 156, 163, 160, 160, 169, 160, 160, 163, 163, 159, 160, 162, 167, 170, 159, 157, 160, 159, 161, 163, 148, 162, 156, 165, 163, 162, 155, 173, 155, 147, 177, 157, 162, 154, 144, 158, 159, 155, 147, 156, 157, 167, 163, 158, 154, 159, 165, 168, 158, 161, 151, 159, 156, 161, 159, 164, 155, 157, 157, 161, 154, 159, 156, 161, 161, 156, 156, 172, 147, 160, 158, 151, 161, 165, 143, 182, 162, 171, 174, 162, 145, 167, 168, 162, 152, 164, 169, 148, 155, 174, 160, 159, 170, 168, 158, 171, 159, 157, 161, 154, 154, 162, 154, 155, 156, 164, 167, 163, 163, 157, 174, 158, 157, 159, 163, 167, 154, 153, 165, 162, 159, 162, 162, 151, 163, 165, 163, 156, 154, 164, 158, 162, 160, 164, 164, 158, 136, 163, 153, 151, 159, 154, 158, 162, 155, 158, 154, 158, 163, 158, 149, 169, 172, 160, 165, 161, 162, 170, 161, 158, 159, 165, 157, 183, 156, 166, 159, 149, 160, 160, 156, 153, 159, 152, 162, 160, 161, 167, 164, 160, 160, 153, 170, 157, 158, 175, 164, 158, 164, 161, 157, 153, 153, 167, 164, 156, 162, 167, 151, 167, 158, 164, 155, 153, 153, 169, 137, 165, 162, 160, 156, 160, 157, 160, 168, 168, 153, 159, 153, 154, 159, 168, 164, 165, 159, 162, 154, 159, 159, 160, 167, 161, 158, 157, 154, 157, 153, 161, 151, 151, 159, 163, 153, 166, 167, 161, 164, 152, 158, 160, 158, 158, 155, 154, 165, 160, 159, 174, 161, 165, 168, 164, 170, 165, 151, 167, 166, 172, 156, 148, 159, 162, 157, 162, 169, 151, 158, 159, 165, 155, 157, 159, 168, 163, 156, 164, 159, 158, 154, 163, 173, 165, 154, 161, 170, 148, 156, 158, 160, 158, 158, 161, 158, 160, 158, 161, 152, 148, 139, 159, 164, 159, 154, 163, 158, 157, 159, 169, 162, 159, 152, 163, 167, 163, 163, 158, 155, 159, 162, 166, 159, 172, 156, 151, 158, 160, 158, 159, 159, 162, 155, 171, 159, 154, 162, 148, 162, 158, 171, 160, 155, 164, 169, 173, 157, 160, 156, 161, 161, 169, 150, 163, 161, 155, 164, 163, 159, 168, 163, 162, 156, 153, 154, 166, 161, 161, 157, 152, 146, 156, 160, 161, 160, 166, 155, 172, 161, 157, 167, 155, 165, 170, 157, 160, 168, 164, 151, 151, 156, 167, 159, 159, 155, 170, 155, 161, 159, 157, 143, 162, 158, 159, 167, 161, 160, 158, 164, 156, 161, 153, 165, 163, 161, 161, 170, 156, 158, 161, 170, 154, 157, 158, 163, 157, 169, 160, 163, 159, 154, 151, 158, 155, 161, 157, 161, 155, 155, 163, 170, 158, 162, 160, 166, 156, 151, 141, 157, 149, 137, 153, 161, 159, 165, 166, 159, 164, 166, 162, 147, 150, 169, 159, 162, 168, 163, 168, 163, 161, 160, 157, 160, 154, 161, 164, 162, 159, 158, 181, 159, 165, 161, 164, 159, 145, 156, 163, 169, 162, 150, 159, 159, 156, 167, 157, 152, 167, 154, 161, 170, 158, 157, 156, 160, 155, 164, 171, 160, 154, 158, 167, 161, 153, 168, 160, 164, 169, 167, 152, 144, 155, 162, 159, 165, 160, 149, 163, 160, 169, 157, 162, 161, 154, 159, 149, 162, 161, 164, 159, 160, 148, 162, 157, 159, 165, 160, 158, 163, 164, 166, 159, 158, 162, 156, 150, 151, 164, 159, 163, 164, 164, 155, 159, 166, 150, 148, 155, 151, 172, 160, 157, 159, 158, 151, 159, 160, 157, 158, 160, 160, 163, 156, 162, 166, 158, 153, 165, 163, 168, 159, 163, 170, 163, 136, 154, 151, 156, 159, 163, 164, 176, 146, 158, 160, 172, 162, 146, 162, 165, 161, 157, 167, 157, 169, 151, 161, 159, 156, 162, 155, 147, 168, 166, 163, 164, 159, 167, 159, 152, 157, 167, 164, 162, 160, 165, 156, 155, 153, 163, 168, 163, 160, 160, 156, 171, 165, 158, 157, 168, 155, 170, 161, 166, 158, 153, 160, 165, 159, 159, 159, 153, 158, 156, 158, 160, 148, 165, 165, 158, 154, 159, 163, 153, 158, 157, 158, 161, 164, 157, 155, 155, 151, 163, 165, 158, 166, 158, 157, 160, 159, 156, 155, 161, 156, 161, 161, 161, 160, 157, 159, 162, 155, 161, 165, 164, 160, 153, 171, 159, 159, 164, 155, 158, 161, 168, 174, 161, 161, 162, 163, 157, 156, 160, 161, 160, 158, 149, 164, 164, 161, 158, 150, 163, 155, 168, 151, 162, 160, 160, 154, 160, 161, 173, 166, 158, 166, 159, 162, 160, 157, 155, 162, 155, 156, 153, 163, 160, 139, 165, 153, 161, 160, 159, 159, 163, 162, 168, 156, 157, 155, 179, 159, 168, 162, 157, 154, 161, 158, 165, 165, 157, 154, 158, 152, 154, 153, 169, 165, 154, 156, 158, 167, 163, 158, 157, 160, 151, 154, 155, 161, 153, 159, 157, 166, 164, 159, 159, 157, 163, 152, 158, 155, 162, 162, 160, 155, 160, 159, 147, 160, 158, 159, 160, 161, 162, 162, 159, 157, 164, 156, 149, 157, 153, 165, 176, 163, 157, 166, 165, 170, 156, 162, 159, 160, 139, 172, 151, 166, 162, 163, 175, 154, 166, 160, 164, 153, 159, 165, 159, 159, 154, 154, 167, 159, 165, 160, 166, 158, 156, 170, 151, 163, 166, 172, 160, 153, 161, 167, 166, 158, 159, 158, 158, 167, 162, 161, 161, 155, 167, 166, 159, 165, 154, 159, 160, 157, 162, 163, 158, 157, 167, 164, 161, 165, 158, 164, 159, 163, 153, 164, 158, 163, 163, 160, 158, 164, 168, 161, 166, 155, 161, 155, 154, 155, 160, 159, 159, 152, 165, 165, 158, 155, 171, 161, 166, 158, 163, 156, 164, 152, 159, 171, 164, 154, 154, 164, 166, 157, 165, 152, 176, 163, 164, 159, 164, 160, 165, 151, 158, 154, 175, 156, 174, 161, 163, 168, 163, 160, 173, 154, 156, 172, 162, 163, 159, 155, 152, 163, 165, 157, 154, 163, 153, 154, 165, 155, 166, 161, 146, 167, 160, 162, 154, 163, 152, 160, 165, 177, 156, 169, 156, 165, 162, 156, 158, 156, 150, 152, 152, 161, 157, 160, 184, 164, 160, 160, 159, 159, 162, 170, 156, 158, 166, 160, 161, 154, 156, 165, 159, 170, 157, 153, 154, 146, 154, 170, 161, 163, 161, 156, 155, 156, 173, 156, 161, 157, 167, 159, 157, 162, 155, 163, 158, 156, 145, 163, 167, 163, 168, 157, 161, 160, 166, 162, 166, 159, 158, 148, 161, 154, 157, 161, 160, 158, 162, 166, 156, 159, 160, 161, 160, 153, 169, 151, 165, 159, 155, 159, 166, 154, 173, 168, 159, 160, 149, 168, 142, 160, 163, 163, 162, 154, 163, 161, 155, 160, 158, 157, 159, 159, 161, 142, 147, 162, 154, 157, 168, 164, 153, 153, 162, 160, 175, 160, 165, 154, 159, 163, 165, 159, 157, 164, 152, 158, 158, 161, 159, 152, 164, 156, 157, 159, 165, 156, 156, 158, 153, 160, 164, 156, 163, 161, 155, 158, 148, 168, 160, 164, 165, 168, 137, 156, 159, 157, 155, 158, 168, 160, 162, 155, 154, 153, 158, 158, 150, 159, 163, 157, 160, 157, 156, 160, 167, 156, 161, 157, 159, 153, 163, 160, 147, 157, 157, 159, 152, 161, 144, 155, 158, 154, 159, 165, 148, 157, 165, 159, 158, 160, 159, 155, 167, 166, 157, 163, 159, 161, 158, 158, 158, 165, 148, 164, 168, 159, 165, 157, 157, 161, 161, 157, 169, 159, 155, 161, 161, 169, 149, 163, 153, 155, 161, 160, 162, 175, 165, 162, 157, 160, 157, 157, 166, 153, 162, 162, 157, 166, 176, 172, 161, 161, 163, 161, 165, 159, 159, 155, 165, 161, 160, 153, 157, 157, 154, 158, 157, 160, 151, 161, 158, 163, 154, 153, 159, 163, 159, 174, 156, 171, 158, 168, 160, 155, 158, 166, 162, 162, 158, 160, 166, 156, 159, 157, 164, 159, 174, 166, 157, 152, 165, 165, 186, 150, 154, 154, 162, 159, 158, 157, 162, 161, 152, 156, 155, 159, 164, 161, 157, 167, 156, 174, 160, 160, 166, 155, 166, 160, 171, 173, 161, 159, 169, 155, 167, 173, 154, 161, 158, 166, 164, 160, 163, 161, 168, 163, 159, 172, 155, 161, 165, 167, 168, 158, 162, 160, 164, 160, 152, 150, 183, 157, 159, 174, 154, 156, 171, 155, 161, 162, 158, 163, 157, 156, 169, 160, 157, 155, 155, 159, 157, 159, 165, 164, 156, 167, 153, 159, 159, 165, 159, 164, 151, 152, 162, 161, 150, 157, 163, 152, 155, 166, 163, 156, 159, 161, 159, 157, 168, 162, 169, 163, 155, 164, 164, 161, 163, 171, 163, 159, 166, 157, 164, 165, 163, 160, 164, 162, 155, 164, 151, 163, 167, 166, 163, 167, 164, 163, 154, 157, 159, 163, 141, 165, 165, 163, 167, 164, 160, 150, 153, 158, 160, 156, 156, 168, 151, 156, 164, 157, 156, 161, 162, 153, 149, 161, 160, 159, 170, 155, 159, 163, 159, 160, 160, 156, 159, 164, 161, 160, 172, 167, 170, 154, 155, 166, 159, 161, 171, 156, 159, 155, 158, 162, 169, 160, 158, 156, 164, 155, 165, 163, 158, 166, 174, 160, 165, 152, 161, 161, 156, 160, 149, 152, 167, 170, 152, 162, 161, 170, 160, 157, 155, 159, 165, 157, 156, 157, 160, 170, 165, 169, 153, 162, 150, 157, 162, 157, 168, 162, 158, 155, 155, 162, 159, 158, 160, 145, 154, 158, 158, 166, 172, 160, 156, 166, 159, 163, 170, 163, 155, 168, 165, 151, 153, 159, 163, 166, 150, 166, 158, 151, 165, 172, 169, 155, 154, 162, 163, 157, 159, 157, 158, 174, 164, 158, 159, 160, 157, 157, 156, 171, 169, 158, 163, 155, 162, 151, 170, 166, 161, 151, 149, 156, 162, 160, 151, 169, 154, 160, 154, 176, 153, 160, 162, 154, 153, 160, 164, 159, 171, 162, 158, 160, 160, 155, 166, 164, 161, 169, 163, 158, 167, 163, 162, 164, 157, 152, 156, 158, 162, 162, 164, 157, 167, 169, 166, 163, 157, 158, 166, 159, 158, 154, 154, 159, 164, 152, 161, 161, 159, 156, 158, 159, 157, 165, 169, 164, 160, 156, 162, 163, 161, 155, 159, 158, 155, 149, 155, 157, 154, 164, 153, 151, 164, 152, 159, 157, 153, 161, 159, 158, 163, 157, 161, 164, 162, 160, 161, 150, 150, 159, 162, 158, 168, 167, 148, 158, 159, 158, 164, 164, 164, 161, 163, 165, 156, 153, 159, 162, 154, 160, 159, 160, 155, 162, 149, 163, 157, 169, 159, 168, 159, 160, 151, 154, 155, 156, 167, 160, 164, 161, 162, 160, 158, 153, 160, 158, 162, 160, 162, 144, 159, 159, 163, 163, 162, 168, 164, 165, 160, 148, 157, 164, 165, 153, 163, 165, 157, 160, 159, 159, 155, 160, 161, 165, 158, 161, 158, 159, 166, 153, 160, 165, 158, 160, 156, 162, 158, 152, 162, 162, 190, 181, 157, 155, 160, 162, 164, 163, 160, 160, 166, 161, 157, 161, 160, 163, 164, 168, 155, 144, 160, 160, 157, 163, 163, 159, 159, 154, 161, 163, 173, 156, 155, 163, 158, 160, 150, 158, 158, 154, 163, 157, 154, 162, 162, 150, 158, 169, 158, 160, 126, 159, 153, 161, 154, 158, 157, 151, 160, 163, 147, 152, 162, 167, 161, 174, 162, 161, 159, 158, 158, 157, 163, 152, 162, 161, 150, 167, 165, 154, 165, 162, 165, 164, 156, 161, 164, 157, 167, 156, 160, 170, 162, 155, 156, 172, 160, 158, 159, 158, 166, 155, 156, 157, 163, 165, 161, 170, 167, 155, 164, 163, 157, 163, 163, 156, 149, 158, 166, 157, 157, 164, 157, 154, 160, 162, 159, 157, 168, 158, 163, 159, 159, 158, 154, 161, 152, 167, 164, 158, 158, 162, 156, 162, 162, 156, 160, 154, 156, 164, 153, 155, 158, 157, 164, 159, 154, 158, 160, 145, 162, 168, 156, 166, 165, 159, 168, 160, 170, 163, 157, 160, 161, 166, 155, 162, 159, 158, 162, 156, 157, 154, 158, 146, 158, 160, 156, 163, 154, 161, 163, 154, 161, 157, 170, 159, 160, 167, 165, 162, 160, 167, 155, 151, 162, 162, 162, 152, 157, 167, 158, 159, 159, 158, 156, 155, 155, 163, 161, 158, 165, 156, 157, 158, 156, 159, 159, 164, 161, 162, 159, 157, 158, 159, 154, 149, 155, 159, 156, 158, 163, 158, 159, 164, 160, 153, 158, 157, 162, 153, 159, 151, 158, 171, 174, 159, 160, 151, 160, 157, 159, 166, 163, 170, 154, 163, 164, 153, 160, 170, 167, 160, 172, 159, 168, 159, 160, 166, 163, 157, 163, 159, 156, 160, 154, 154, 161, 164, 164, 158, 164, 149, 157, 156, 160, 167, 163, 163, 157, 163, 164, 166, 155, 161, 163, 170, 161, 160, 155, 157, 152, 183, 172, 162, 161, 159, 164, 153, 158, 164, 153, 151, 154, 163, 165, 162, 158, 163, 161, 160, 163, 167, 157, 154, 159, 138, 162, 163, 159, 162, 162, 161, 138, 165, 159, 170, 163, 162, 163, 162, 164, 158, 161, 159, 153, 158, 160, 165, 158, 158, 162, 162, 169, 165, 157, 158, 158, 155, 161, 154, 169, 163, 161, 165, 156, 167, 168, 161, 154, 163, 158, 157, 171, 154, 163, 160, 153, 164, 158, 152, 163, 157, 162, 158, 156, 159, 153, 143, 150, 163, 154, 155, 159, 166, 172, 159, 164, 153, 156, 161, 164, 159, 153, 162, 158, 162, 164, 155, 155, 171, 164, 159, 163, 164, 158, 155, 151, 154, 168, 166, 169, 166, 168, 157, 164, 163, 179, 161, 164, 163, 160, 175, 159, 159, 158, 177, 164, 159, 164, 165, 162, 159, 152, 161, 156, 157, 162, 154, 149, 163, 165, 152, 160, 162, 175, 160, 168, 160, 163, 156, 158, 152, 161, 165, 164, 155, 155, 160, 156, 161, 160, 157, 157, 146, 147, 161, 156, 162, 147, 164, 152, 158, 151, 151, 160, 158, 159, 158, 159, 158, 166, 172, 157, 166, 161, 164, 153, 163, 175, 152, 158, 156, 159, 159, 161, 162, 168, 160, 158, 162, 166, 162, 161, 154, 157, 159, 171, 162, 160, 157, 159, 159, 158, 163, 165, 167, 171, 165, 160, 163, 154, 164, 164, 158, 161, 159, 158, 186, 158, 173, 154, 160, 162, 157, 162, 162, 160, 155, 150, 163, 167, 156, 155, 162, 161, 158, 169, 157, 153, 164, 156, 161, 157, 159, 160, 153, 159, 165, 171, 163, 163, 158, 162, 154, 166, 156, 161, 156, 165, 160, 161, 164, 154, 160, 165, 172, 164, 158, 160, 166, 160, 164, 162, 162, 161, 157, 164, 164, 161, 159, 162, 158, 153, 161, 159, 152, 182, 168, 148, 156, 158, 165, 144, 162, 161, 155, 158, 166, 159, 160, 159, 154, 157, 159, 168, 157, 163, 157, 144, 160, 151, 164, 174, 167, 159, 159, 148, 184, 152, 160, 166, 168, 158, 156, 160, 156, 161, 160, 165, 157, 158, 143, 162, 161, 154, 152, 161, 162, 160, 163, 160, 163, 155, 159, 167, 156, 156, 161, 161, 160, 162, 159, 168, 161, 166, 158, 155, 163, 158, 162, 162, 147, 165, 160, 176, 165, 163, 147, 153, 156, 158, 157, 159, 162, 164, 156, 164, 150, 157, 156, 168, 163, 161, 160, 161, 156, 164, 162, 159, 158, 161, 156, 166, 156, 163, 158, 162, 158, 152, 166, 164, 160, 161, 161, 156, 151, 162, 175, 163, 161, 162, 160, 157, 181, 163, 167, 152, 154, 163, 163, 158, 155, 160, 159, 163, 163, 171, 163, 176, 158, 163, 163, 165, 159, 165, 160, 161, 149, 154, 159, 158, 162, 164, 155, 177, 164, 155, 163, 157, 156, 154, 156, 158, 163, 155, 159, 169, 165, 150, 160, 160, 161, 164, 163, 157, 162, 163, 166, 167, 169, 162, 166, 158, 164, 153, 153, 159, 155, 154, 157, 140, 159, 138, 163, 168, 152, 160, 160, 155, 150, 161, 157, 161, 161, 164, 162, 159, 156, 155, 161, 158, 163, 162, 166, 159, 156, 154, 150, 163, 153, 167, 157, 166, 152, 157, 162, 163, 159, 168, 162, 159, 160, 159, 153, 159, 155, 161, 156, 156, 161, 165, 146, 159, 163, 155, 161, 157, 162, 154, 157, 146, 186, 156, 174, 157, 158, 166, 157, 157, 161, 164, 159, 165, 161, 157, 161, 155, 161, 158, 161, 157, 152, 147, 159, 158, 165, 164, 159, 154, 146, 162, 166, 167, 171, 156, 175, 165, 162, 161, 157, 157, 151, 166, 159, 151, 160, 168, 152, 161, 163, 159, 158, 158, 151, 163, 155, 157, 162, 164, 162, 161, 159, 155, 157, 162, 158, 158, 158, 162, 160, 160, 163, 161, 160, 162, 155, 162, 160, 160, 156, 157, 161, 172, 163, 163, 164, 156, 161, 171, 155, 152, 166, 162, 161, 163, 160, 152, 162, 157, 163, 160, 162, 146, 158, 160, 158, 160, 158, 159, 164, 160, 157, 159, 149, 171, 167, 163, 155, 158, 161, 158, 159, 161, 159, 160, 163, 167, 145, 163, 166, 164, 139, 159, 159, 158, 160, 163, 167, 155, 159, 161, 158, 171, 158, 159, 162, 168, 156, 161, 157, 161, 159, 152, 160, 144, 149, 162, 169, 160, 162, 164, 163, 159, 160, 163, 162, 162, 158, 160, 158, 160, 158, 153, 157, 167, 162, 176, 165, 158, 160, 165, 160, 158, 160, 166, 156, 163, 166, 159, 157, 161, 159, 150, 158, 161, 152, 165, 161, 161, 166, 157, 152, 166, 166, 193, 156, 174, 165, 162, 171, 164, 161, 158, 158, 172, 159, 161, 159, 165, 166, 162, 170, 161, 160, 154, 159, 157, 164, 162, 162, 153, 163, 165, 161, 160, 161, 162, 160, 157, 162, 161, 163, 156, 163, 158, 158, 155, 161, 160, 168, 161, 162, 157, 161, 154, 152, 161, 154, 158, 157, 155, 157, 164, 162, 161, 161, 153, 163, 163, 159, 161, 160, 158, 156, 156, 160, 162, 160, 156, 169, 160, 161, 166, 161, 160, 162, 163, 165, 161, 158, 156, 162, 162, 156, 156, 164, 180, 165, 162, 158, 157, 149, 150, 157, 160, 158, 158, 159, 160, 158, 167, 170, 162, 175, 162, 165, 182, 160, 167, 163, 161, 157, 167, 161, 159, 155, 160, 165, 157, 161, 157, 165, 157, 159, 170, 147, 158, 163, 154, 162, 167, 158, 170, 156, 166, 172, 160, 158, 164, 164, 160, 165, 158, 159, 160, 152, 160, 161, 157, 168, 157, 153, 159, 165, 167, 165, 157, 153, 160, 161, 156, 162, 162, 161, 156, 158, 164, 159, 166, 162, 160, 161, 160, 156, 158, 157, 159, 163, 160, 159, 161, 163, 159, 161, 160, 154, 160, 160, 159, 162, 160, 160, 157, 156, 164, 155, 172, 167, 156, 163, 163, 155, 164, 163, 159, 158, 164, 165, 157, 160, 149, 156, 158, 161, 150, 158, 160, 160, 165, 161, 158, 159, 169, 158, 164, 164, 156, 156, 149, 159, 160, 162, 158, 163, 164, 154, 158, 165, 161, 151, 163, 163, 161, 158, 159, 155, 159, 165, 168, 164, 161, 158, 158, 155, 162, 157, 159, 158, 157, 160, 162, 160, 155, 167, 158, 161, 157, 160, 160, 159, 156, 158, 163, 158, 152, 157, 151, 163, 157, 158, 161, 161, 157, 159, 162, 160, 147, 161, 159, 165, 161, 153, 163, 163, 157, 156, 158, 158, 156, 157, 157, 151, 151, 161, 156, 159, 161, 160, 158, 158, 160, 161, 158, 165, 165, 157, 160, 164, 163, 162, 156, 167, 163, 160, 158, 161, 158, 159, 159, 159, 163, 161, 150, 157, 162, 158, 161, 157, 162, 157, 156, 146, 152, 160, 158, 154, 155, 148, 165, 161, 164, 171, 166, 156, 149, 163, 161, 160, 153, 155, 157, 164, 155, 153, 163, 152, 156, 159, 159, 149, 158, 157, 153, 152, 162, 153, 158, 160, 164, 162, 169, 171, 161, 159, 164, 149, 161, 152, 162, 159, 168, 159, 168, 158, 157, 156, 164, 141, 163, 162, 154, 173, 163, 163, 159, 153, 157, 158, 161, 174, 152, 154, 163, 156, 158, 157, 163, 165, 157, 163, 150, 157, 152, 154, 164, 159, 152, 158, 157, 160, 163, 158, 160, 161, 163, 165, 161, 153, 162, 159, 160, 167, 155, 160, 159, 158, 165, 167, 164, 160, 160, 156, 161, 163, 153, 165, 162, 163, 165, 161, 159, 161, 162, 157, 157, 160, 161, 160, 160, 156, 157, 154, 153, 161, 156, 160, 159, 158, 161, 161, 158, 162, 164, 155, 160, 177, 159, 161, 154, 159, 151, 161, 168, 148, 163, 166, 150, 154, 156, 150, 160, 166, 158, 168, 162, 165, 157, 166, 156, 161, 166, 152, 171, 155, 157, 155, 162, 162, 165, 164, 151, 151, 157, 156, 152, 156, 159, 165, 161, 158, 163, 147, 160, 164, 158, 158, 160, 162, 162, 166, 160, 163, 161, 159, 152, 164, 158, 169, 156, 166, 156, 165, 159, 174, 162, 173, 162, 156, 155, 155, 164, 164, 159, 154, 167, 161, 164, 165, 154, 159, 159, 160, 156, 161, 159, 164, 162, 148, 163, 158, 161, 155, 163, 160, 170, 159, 159, 166, 163, 158, 152, 159, 159, 163, 153, 157, 154, 162, 163, 166, 165, 160, 183, 163, 158, 167, 158, 167, 155, 159, 149, 168, 161, 159, 163, 159, 156, 177, 158, 162, 157, 162, 173, 148, 157, 156, 164, 161, 153, 161, 156, 148, 156, 160, 165, 153, 158, 159, 151, 154, 158, 160, 159, 152, 157, 164, 164, 155, 168, 154, 158, 160, 168, 153, 157, 155, 167, 163, 154, 159, 160, 161, 161, 163, 165, 162, 162, 159, 160, 160, 159, 158, 156, 155, 164, 159, 157, 160, 169, 171, 153, 155, 157, 159, 162, 158, 158, 165, 164, 165, 164, 159, 157, 155, 159, 167, 143, 155, 157, 153, 160, 153, 157, 159, 168, 164, 161, 161, 159, 163, 154, 154, 149, 156, 159, 149, 165, 175, 156, 159, 155, 155, 168, 161, 158, 156, 161, 154, 161, 167, 160, 159, 150, 153, 156, 151, 164, 164, 166, 154, 157, 164, 168, 162, 163, 156, 157, 163, 155, 158, 156, 161, 151, 165, 163, 168, 167, 153, 158, 178, 161, 162, 178, 161, 160, 160, 157, 167, 162, 159, 162, 155, 163, 155, 158, 162, 154, 153, 155, 163, 153, 168, 164, 164, 156, 173, 157, 156, 154, 166, 158, 156, 152, 148, 160, 161, 157, 159, 152, 163, 157, 158, 159, 150, 167, 164, 158, 157, 153, 165, 162, 161, 151, 158, 159, 157, 158, 161, 162, 160, 157, 160, 161, 161, 163, 157, 165, 164, 172, 158, 163, 154, 161, 161, 153, 155, 152, 173, 159, 166, 168, 162, 163, 166, 161, 158, 162, 156, 153, 160, 162, 159, 168, 168, 160, 158, 155, 163, 161, 157, 160, 150, 157, 168, 154, 162, 165, 168, 165, 163, 159, 160, 159, 170, 157, 153, 159, 168, 154, 166, 156, 163, 155, 158, 163, 159, 164, 156, 158, 166, 160, 155, 167, 160, 155, 156, 164, 154, 149, 157, 152, 160, 161, 165, 162, 169, 163, 161, 154, 165, 164, 155, 144, 164, 164, 161, 153, 162, 164, 156, 151, 169, 150, 163, 163, 161, 164, 156, 161, 161, 154, 168, 166, 156, 163, 161, 162, 157, 157, 156, 158, 158, 163, 158, 147, 157, 157, 160, 146, 150, 166, 163, 159, 155, 159, 157, 163, 161, 162, 162, 154, 162, 160, 165, 163, 163, 158, 159, 171, 160, 153, 161, 157, 168, 161, 160, 163, 161, 157, 161, 163, 121, 164, 163, 165, 160, 157, 156, 159, 159, 155, 158, 161, 163, 158, 151, 157, 164, 155, 192, 173, 166, 152, 161, 195, 157, 160, 151, 147, 152, 156, 156, 157, 172, 154, 154, 162, 158, 163, 154, 186, 167, 164, 168, 160, 151, 161, 165, 162, 157, 165, 159, 162, 162, 149, 162, 158, 170, 155, 161, 163, 181, 153, 149, 159, 168, 158, 160, 149, 154, 159, 160, 168, 165, 160, 157, 162, 146, 157, 163, 158, 166, 153, 158, 172, 157, 163, 164, 158, 151, 168, 156, 159, 171, 158, 153, 158, 162, 158, 156, 167, 165, 147, 165, 148, 158, 160, 166, 163, 170, 168, 164, 161, 162, 161, 181, 172, 172, 146, 152, 161, 155, 165, 164, 147, 168, 160, 142, 162, 155, 159, 159, 154, 156, 165, 158, 152, 152, 164, 151, 160, 165, 159, 155, 158, 162, 170, 160, 162, 155, 153, 159, 162, 162, 158, 159, 158, 161, 167, 165, 145, 161, 164, 163, 159, 145, 163, 157, 163, 172, 166, 166, 153, 160, 157, 167, 175, 161, 163, 186, 168, 160, 156, 159, 165, 163, 156, 165, 164, 162, 165, 158, 160, 166, 161, 141, 164, 163, 162, 162, 146, 155, 167, 156, 156, 157, 148, 157, 160, 149, 159, 166, 157, 154, 153, 162, 160, 165, 156, 161, 163, 158, 156, 151, 161, 161, 161, 165, 160, 163, 157, 157, 169, 167, 156, 164, 161, 163, 160, 160, 151, 161, 162, 162, 159, 163, 155, 165, 160, 165, 162, 158, 156, 161, 159, 163, 157, 163, 154, 163, 165, 162, 165, 159, 159, 155, 158, 158, 165, 158, 163, 149, 162, 158, 169, 164, 158, 170, 159, 155, 154, 162, 157, 160, 163, 163, 175, 155, 163, 168, 158, 158, 158, 155, 159, 168, 152, 158, 163, 166, 164, 146, 159, 158, 168, 162, 166, 156, 164, 166, 165, 162, 152, 159, 148, 155, 162, 165, 157, 172, 127, 169, 172, 168, 165, 161, 162, 199, 154, 149, 164, 159, 151, 162, 156, 156, 172, 155, 158, 156, 162, 158, 162, 160, 163, 163, 167, 167, 173, 154, 161, 152, 160, 159, 160, 164, 176, 162, 164, 164, 162, 161, 155, 158, 167, 169, 153, 155, 164, 160, 163, 159, 165, 150, 150, 157, 155, 156, 163, 169, 160, 160, 157, 167, 157, 153, 160, 171, 159, 157, 158, 156, 161, 164, 158, 157, 160, 168, 148, 155, 161, 159, 164, 163, 162, 158, 159, 155, 191, 150, 173, 158, 155, 158, 160, 153, 152, 159, 166, 156, 163, 166, 166, 160, 158, 149, 163, 159, 160, 168, 155, 166, 172, 167, 158, 160, 156, 164, 160, 162, 157, 156, 158, 162, 155, 161, 157, 165, 164, 160, 152, 159, 160, 159, 158, 154, 158, 162, 163, 159, 158, 159, 159, 156, 166, 163, 164, 177, 156, 167, 160, 163, 160, 173, 151, 170, 160, 148, 161, 164, 154, 165, 155, 159, 161, 166, 162, 156, 167, 168, 159, 156, 150, 157, 152, 162, 156, 158, 166, 161, 159, 169, 165, 164, 168, 151, 162, 154, 160, 161, 162, 160, 159, 161, 157, 158, 164, 155, 157, 157, 156, 163, 152, 159, 157, 163, 152, 156, 170, 161, 178, 159, 157, 153, 158, 158, 158, 167, 157, 163, 159, 159, 162, 163, 163, 164, 158, 156, 158, 161, 152, 163, 161, 158, 156, 170, 159, 156, 161, 159, 157, 158, 167, 156, 159, 158, 158, 160, 149, 162, 162, 160, 157, 156, 156, 168, 159, 157, 157, 150, 165, 162, 150, 168, 156, 150, 160, 156, 173, 160, 165, 157, 170, 147, 159, 164, 151, 155, 164, 157, 148, 160, 166, 161, 155, 159, 160, 160, 163, 168, 163, 154, 165, 167, 154, 161, 159, 163, 163, 153, 162, 151, 157, 157, 161, 163, 157, 162, 170, 153, 161, 163, 156, 156, 155, 159, 165, 154, 154, 158, 163, 160, 159, 165, 159, 155, 156, 157, 151, 163, 154, 160, 159, 154, 158, 164, 160, 160, 160, 157, 170, 165, 154, 165, 150, 152, 170, 161, 161, 150, 170, 155, 160, 157, 155, 157, 159, 157, 155, 158, 163, 163, 159, 155, 159, 165, 165, 156, 162, 160, 164, 162, 164, 159, 168, 156, 162, 158, 156, 153, 156, 165, 163, 162, 165, 167, 156, 162, 166, 156, 156, 162, 157, 164, 163, 152, 161, 163, 157, 159, 156, 164, 165, 156, 168, 158, 160, 165, 160, 161, 155, 157, 156, 156, 161, 168, 157, 164, 155, 166, 155, 157, 158, 166, 167, 161, 156, 159, 170, 157, 158, 158, 157, 154, 151, 161, 161, 164, 164, 154, 158, 160, 161, 167, 162, 161, 164, 160, 161, 142, 160, 159, 165, 155, 154, 162, 163, 153, 152, 164, 156, 167, 152, 159, 163, 156, 170, 154, 155, 179, 164, 155, 164, 153, 162, 155, 175, 172, 164, 158, 159, 170, 153, 161, 150, 157, 153, 164, 156, 155, 148, 154, 152, 157, 158, 168, 152, 161, 161, 157, 160, 175, 163, 162, 161, 161, 160, 164, 162, 162, 161, 161, 160, 150, 162, 143, 159, 160, 158, 157, 158, 161, 157, 151, 167, 153, 165, 159, 159, 164, 160, 154, 162, 160, 170, 158, 158, 165, 161, 168, 166, 161, 154, 157, 162, 160, 153, 154, 155, 159, 168, 159, 162, 164, 159, 157, 152, 154, 154, 159, 154, 144, 157, 162, 157, 161, 152, 162, 162, 143, 174, 159, 168, 157, 152, 160, 154, 161, 151, 163, 158, 145, 156, 164, 162, 161, 160, 168, 158, 162, 163, 164, 160, 162, 165, 175, 157, 158, 159, 153, 170, 162, 162, 162, 160, 157, 151, 163, 161, 166, 151, 159, 160, 160, 164, 160, 160, 158, 164, 161, 165, 160, 157, 168, 161, 160, 152, 156, 164, 149, 160, 164, 167, 151, 161, 166, 166, 154, 157, 159, 169, 167, 156, 161, 160, 156, 158, 163, 158, 158, 162, 172, 156, 160, 165, 163, 163, 167, 155, 151, 157, 160, 162, 157, 160, 162, 167, 158, 158, 157, 155, 156, 164, 158, 152, 163, 154, 159, 155, 164, 161, 158, 155, 168, 170, 162, 156, 162, 154, 172, 162, 164, 155, 156, 154, 159, 172, 163, 161, 162, 154, 151, 156, 151, 162, 155, 164, 155, 149, 155, 159, 160, 166, 168, 154, 152, 167, 164, 159, 161, 161, 164, 164, 163, 160, 161, 153, 163, 156, 169, 159, 170, 163, 159, 160, 160, 151, 161, 165, 159, 165, 167, 159, 162, 157, 165, 161, 173, 172, 168, 165, 163, 154, 164, 164, 153, 143, 161, 155, 161, 152, 163, 161, 161, 156, 161, 164, 162, 153, 172, 159, 162, 148, 162, 156, 163, 158, 161, 155, 159, 162, 160, 166, 159, 164, 155, 160, 164, 159, 161, 162, 158, 155, 170, 162, 154, 158, 157, 157, 163, 155, 162, 159, 163, 164, 164, 165, 163, 151, 167, 157, 160, 160, 157, 161, 167, 167, 152, 163, 160, 156, 160, 159, 159, 167, 167, 157, 157, 154, 157, 156, 157, 151, 173, 166, 159, 165, 160, 169, 174, 171, 159, 163, 161, 163, 159, 163, 158, 165, 164, 156, 159, 156, 162, 165, 160, 166, 170, 157, 157, 153, 150, 149, 158, 162, 156, 159, 155, 156, 157, 145, 163, 159, 158, 161, 158, 161, 161, 156, 164, 159, 158, 173, 160, 159, 161, 166, 152, 159, 162, 168, 162, 164, 166, 158, 173, 164, 167, 164, 166, 162, 155, 152, 158, 156, 154, 171, 154, 159, 161, 163, 153, 165, 169, 157, 163, 158, 155, 166, 156, 151, 165, 158, 170, 160, 164, 156, 159, 155, 155, 161, 156, 158, 160, 163, 156, 157, 160, 159, 160, 171, 151, 159, 156, 152, 163, 166, 165, 152, 150, 160, 158, 161, 172, 161, 165, 166, 159, 159, 149, 153, 171, 155, 158, 156, 161, 155, 159, 170, 161, 161, 158, 168, 168, 162, 168, 163, 165, 156, 156, 169, 155, 159, 157, 160, 158, 158, 165, 165, 155, 157, 164, 162, 161, 149, 157, 156, 155, 157, 162, 156, 161, 159, 162, 150, 162, 160, 160, 153, 156, 166, 156, 152, 161, 163, 159, 160, 166, 159, 162, 169, 157, 158, 154, 161, 162, 161, 168, 163, 162, 166, 158, 161, 162, 170, 160, 163, 156, 163, 166, 161, 164, 167, 163, 152, 162, 164, 163, 156, 156, 159, 160, 161, 159, 157, 145, 163, 154, 169, 158, 160, 162, 155, 156, 151, 158, 158, 162, 165, 154, 171, 154, 158, 154, 156, 158, 151, 166, 162, 159, 169, 161, 164, 156, 154, 158, 173, 162, 166, 170, 166, 159, 156, 158, 164, 161, 162, 163, 159, 161, 158, 158, 155, 158, 160, 159, 166, 163, 160, 161, 165, 160, 162, 163, 163, 166, 149, 157, 154, 164, 163, 162, 158, 160, 158, 164, 162, 158, 157, 150, 164, 161, 157, 160, 160, 157, 162, 161, 158, 159, 156, 157, 155, 157, 155, 162, 157, 161, 157, 153, 167, 174, 161, 160, 165, 163, 156, 163, 156, 159, 159, 166, 150, 162, 155, 157, 157, 158, 159, 153, 157, 149, 158, 167, 170, 165, 166, 166, 155, 152, 165, 157, 168, 163, 157, 161, 158, 155, 166, 161, 160, 162, 159, 154, 157, 157, 165, 153, 162, 159, 154, 156, 157, 167, 147, 157, 160, 167, 162, 170, 167, 154, 156, 161, 151, 161, 161, 166, 164, 160, 158, 155, 171, 156, 159, 158, 165, 157, 157, 156, 163, 154, 154, 156, 162, 157, 164, 162, 171, 159, 157, 158, 159, 161, 151, 155, 163, 157, 171, 155, 164, 159, 161, 155, 171, 161, 154, 148, 164, 168, 162, 154, 163, 161, 157, 154, 159, 155, 163, 157, 159, 165, 167, 151, 159, 156, 151, 168, 157, 168, 164, 156, 157, 158, 156, 168, 164, 158, 168, 160, 151, 157, 172, 158, 158, 159, 162, 161, 174, 153, 151, 164, 159, 168, 160, 166, 162, 155, 159, 161, 172, 160, 155, 167, 167, 159, 158, 163, 159, 155, 157, 158, 165, 156, 165, 153, 159, 156, 163, 159, 157, 152, 161, 157, 167, 185, 163, 154, 155, 154, 162, 159, 164, 160, 160, 166, 166, 155, 163, 169, 155, 167, 165, 159, 158, 157, 160, 147, 162, 165, 174, 161, 171, 167, 167, 163, 161, 162, 158, 156, 151, 168, 166, 154, 151, 158, 150, 176, 156, 157, 156, 171, 158, 162, 166, 152, 167, 172, 153, 165, 160, 152, 158, 145, 166, 165, 158, 158, 159, 157, 163, 155, 157, 162, 168, 159, 158, 152, 148, 160, 153, 159, 167, 156, 161, 161, 163, 161, 161, 159, 156, 155, 167, 157, 159, 152, 169, 155, 163, 154, 156, 165, 165, 164, 155, 161, 162, 163, 164, 157, 159, 161, 161, 153, 165, 159, 162, 153, 165, 163, 168, 160, 150, 158, 166, 162, 162, 160, 171, 170, 168, 161, 160, 164, 158, 147, 169, 165, 157, 161, 166, 153, 166, 164, 163, 160, 160, 160, 166, 157, 146, 157, 168, 154, 148, 157, 160, 145, 164, 164, 158, 164, 160, 157, 154, 164, 157, 151, 156, 162, 175, 159, 162, 159, 162, 157, 151, 163, 157, 160, 157, 157, 155, 163, 160, 161, 158, 161, 161, 161, 159, 162, 160, 172, 155, 154, 157, 155, 169, 169, 161, 161, 159, 167, 165, 155, 165, 155, 152, 165, 168, 156, 159, 163, 156, 158, 162, 153, 172, 160, 152, 152, 157, 156, 161, 161, 161, 161, 163, 157, 164, 162, 158, 171, 164, 165, 158, 161, 158, 158, 158, 162, 162, 161, 159, 161, 162, 165, 158, 148, 162, 164, 160, 179, 156, 158, 159, 153, 142, 158, 154, 161, 156, 162, 159, 153, 179, 171, 155, 159, 161, 160, 157, 161, 162, 152, 159, 155, 171, 160, 150, 158, 161, 159, 180, 159, 162, 159, 161, 162, 162, 153, 162, 152, 162, 160, 182, 166, 159, 171, 159, 163, 155, 160, 158, 176, 172, 161, 149, 157, 169, 168, 161, 172, 149, 161, 158, 159, 159, 159, 164, 170, 163, 160, 154, 156, 156, 169, 163, 159, 179, 155, 156, 156, 157, 167, 161, 151, 164, 155, 152, 152, 163, 160, 161, 161, 162, 159, 155, 158, 157, 165, 158, 163, 168, 158, 161, 171, 160, 159, 159, 164, 154, 159, 162, 162, 166, 161, 164, 157, 162, 161, 160, 162, 159, 160, 155, 168, 155, 156, 162, 157, 152, 156, 168, 148, 167, 156, 157, 160, 156, 159, 168, 156, 168, 156, 168, 160, 157, 169, 166, 155, 159, 159, 162, 156, 156, 166, 162, 162, 159, 160, 159, 169, 160, 170, 159, 144, 155, 161, 156, 150, 165, 159, 162, 161, 145, 159, 156, 168, 167, 164, 159, 157, 153, 162, 163, 163, 159, 161, 169, 167, 157, 156, 156, 165, 162, 163, 156, 158, 158, 152, 154, 150, 159, 163, 159, 156, 162, 157, 156, 160, 152, 155, 167, 155, 162, 161, 159, 167, 154, 163, 160, 160, 164, 156, 161, 161, 152, 152, 158, 158, 142, 165, 154, 160, 158, 161, 157, 159, 164, 164, 169, 159, 158, 157, 146, 156, 158, 156, 152, 164, 153, 169, 153, 160, 161, 174, 156, 159, 154, 172, 168, 159, 144, 166, 158, 159, 160, 156, 158, 157, 158, 148, 154, 161, 158, 155, 163, 171, 164, 153, 163, 162, 157, 147, 153, 158, 153, 161, 151, 156, 151, 160, 160, 161, 147, 161, 161, 159, 163, 157, 164, 161, 159, 158, 166, 166, 163, 157, 156, 160, 154, 154, 157, 154, 157, 147, 155, 160, 161, 169, 172, 168, 159, 151, 154, 155, 156, 158, 159, 162, 140, 152, 160, 154, 161, 159, 163, 170, 157, 162, 176, 151, 159, 165, 163, 158, 152, 159, 161, 164, 157, 153, 159, 156, 164, 164, 153, 150, 160, 156, 157, 151, 162, 156, 163, 159, 159, 158, 166, 166, 156, 168, 157, 156, 148, 135, 157, 156, 181, 159, 168, 151, 156, 161, 164, 157, 161, 159, 164, 164, 164, 165, 159, 157, 167, 150, 157, 161, 159, 156, 156, 155, 156, 170, 155, 157, 164, 162, 161, 160, 164, 173, 162, 163, 157, 165, 156, 141, 161, 160, 161, 156, 157, 150, 159, 160, 152, 164, 161, 157, 160, 149, 162, 151, 150, 164, 173, 148, 162, 161, 164, 152, 156, 160, 157, 166, 164, 163, 157, 160, 160, 169, 157, 159, 163, 166, 159, 161, 158, 154, 160, 159, 157, 160, 162, 164, 166, 153, 160, 156, 158, 166, 160, 166, 151, 164, 162, 154, 163, 163, 161, 153, 163, 158, 156, 162, 152, 148, 163, 161, 148, 162, 153, 168, 172, 157, 160, 150, 161, 167, 156, 161, 148, 163, 165, 153, 159, 157, 163, 158, 160, 158, 158, 154, 157, 168, 156, 171, 156, 151, 160, 163, 164, 160, 167, 156, 161, 162, 161, 140, 157, 162, 158, 133, 159, 158, 155, 156, 151, 160, 162, 160, 162, 156, 160, 157, 170, 156, 149, 156, 157, 153, 162, 161, 163, 148, 159, 160, 151, 157, 155, 159, 161, 162, 158, 164, 162, 157, 163, 164, 160, 160, 158, 159, 164, 158, 164, 155, 158, 163, 166, 157, 156, 155, 154, 158, 159, 155, 160, 163, 163, 161, 164, 162, 160, 162, 160, 156, 161, 163, 160, 162, 157, 161, 160, 157, 185, 157, 165, 160, 162, 161, 154, 159, 157, 161, 155, 160, 163, 149, 163, 154, 157, 170, 150, 157, 159, 151, 150, 156, 163, 157, 165, 160, 166, 159, 156, 160, 174, 165, 164, 164, 159, 160, 156, 160, 159, 167, 162, 162, 161, 160, 167, 157, 161, 153, 162, 155, 156, 153, 158, 161, 160, 159, 154, 161, 157, 159, 165, 157, 148, 163, 162, 161, 166, 159, 164, 157, 149, 158, 155, 158, 161, 160, 158, 167, 156, 160, 157, 155, 161, 163, 161, 156, 158, 154, 157, 156, 162, 159, 161, 169, 164, 159, 166, 158, 157, 165, 167, 157, 158, 160, 159, 160, 154, 162, 159, 163, 170, 160, 157, 163, 161, 156, 180, 168, 162, 159, 163, 162, 160, 143, 146, 154, 158, 160, 160, 167, 154, 152, 158, 162, 155, 157, 158, 168, 160, 159, 151, 156, 161, 163, 159, 158, 152, 162, 169, 167, 159, 158, 157, 158, 156, 158, 154, 149, 166, 164, 168, 161, 160, 161, 159, 161, 161, 159, 159, 160, 159, 156, 160, 162, 164, 162, 164, 156, 161, 157, 158, 162, 159, 159, 163, 175, 154, 163, 156, 161, 157, 161, 156, 157, 164, 158, 155, 157, 160, 169, 162, 179, 167, 159, 158, 151, 167, 176, 167, 159, 161, 158, 160, 160, 153, 158, 163, 160, 164, 154, 159, 156, 160, 162, 159, 167, 160, 157, 167, 163, 162, 154, 157, 162, 162, 175, 163, 159, 166, 163, 158, 160, 160, 156, 160, 156, 174, 164, 164, 158, 162, 159, 162, 159, 165, 162, 157, 161, 158, 159, 164, 160, 159, 161, 155, 149, 161, 152, 154, 158, 159, 157, 159, 164, 159, 165, 158, 160, 161, 153, 167, 154, 162, 165, 162, 159, 162, 151, 161, 164, 178, 153, 165, 159, 152, 156, 161, 161, 152, 162, 163, 162, 158, 164, 176, 157, 169, 155, 173, 162, 155, 168, 155, 157, 159, 156, 161, 169, 162, 150, 158, 144, 157, 162, 156, 162, 153, 151, 160, 151, 153, 167, 162, 162, 165, 156, 162, 156, 165, 145, 156, 162, 159, 164, 161, 156, 157, 160, 166, 156, 163, 156, 162, 160, 162, 154, 161, 159, 167, 158, 158, 150, 162, 163, 159, 162, 159, 160, 158, 159, 161, 159, 168, 162, 167, 156, 160, 157, 154, 162, 158, 153, 162, 191, 156, 156, 156, 166, 166, 165, 164, 160, 154, 160, 159, 154, 161, 165, 157, 161, 154, 163, 173, 158, 156, 154, 156, 159, 153, 162, 152, 160, 152, 162, 150, 165, 158, 157, 162, 161, 155, 158, 158, 157, 172, 164, 152, 157, 160, 161, 167, 160, 151, 156, 159, 157, 154, 158, 150, 174, 161, 165, 159, 158, 170, 161, 146, 165, 162, 156, 150, 164, 149, 159, 161, 164, 152, 159, 175, 163, 162, 159, 158, 158, 161, 157, 158, 165, 161, 165, 160, 152, 164, 163, 160, 156, 157, 162, 172, 177, 147, 157, 153, 156, 166, 162, 158, 155, 160, 157, 156, 166, 159, 157, 161, 159, 156, 154, 171, 154, 157, 162, 160, 161, 158, 156, 165, 163, 168, 159, 160, 158, 163, 166, 163, 158, 176, 153, 156, 160, 162, 160, 155, 170, 161, 162, 159, 167, 166, 153, 161, 164, 151, 164, 160, 160, 162, 160, 153, 162, 158, 163, 162, 157, 165, 155, 160, 159, 162, 161, 157, 170, 159, 158, 161, 156, 158, 160, 157, 159, 166, 157, 163, 161, 163, 160, 158, 159, 162, 168, 160, 159, 156, 160, 158, 169, 156, 158, 157, 161, 165, 162, 160, 175, 160, 157, 164, 156, 158, 166, 158, 150, 161, 159, 154, 161, 163, 174, 166, 175, 170, 162, 165, 154, 157, 158, 158, 161, 147, 159, 147, 158, 157, 152, 168, 165, 162, 161, 164, 159, 163, 162, 162, 164, 165, 160, 158, 162, 160, 158, 160, 161, 159, 156, 158, 152, 157, 165, 162, 166, 154, 160, 155, 175, 162, 157, 160, 157, 157, 162, 157, 158, 160, 166, 177, 162, 158, 162, 160, 161, 150, 151, 156, 161, 159, 155, 161, 163, 168, 162, 160, 165, 163, 152, 164, 154, 154, 156, 162, 160, 154, 166, 155, 163, 160, 164, 159, 163, 157, 162, 167, 157, 161, 162, 160, 158, 161, 133, 161, 165, 162, 156, 158, 161, 168, 159, 159, 159, 153, 169, 161, 171, 146, 168, 156, 161, 160, 162, 161, 148, 150, 162, 166, 157, 165, 158, 165, 161, 162, 158, 160, 167, 165, 161, 157, 159, 162, 156, 161, 161, 163, 161, 161, 161, 159, 167, 160, 173, 162, 159, 165, 159, 159, 160, 165, 160, 157, 159, 155, 164, 159, 165, 160, 158, 163, 154, 159, 157, 158, 160, 155, 166, 159, 160, 165, 158, 156, 163, 158, 158, 158, 153, 160, 164, 163, 155, 160, 164, 174, 166, 163, 168, 163, 170, 161, 156, 157, 160, 159, 164, 159, 161, 154, 164, 146, 156, 166, 165, 159, 169, 161, 160, 159, 159, 162, 160, 165, 165, 154, 153, 152, 165, 164, 165, 156, 161, 159, 163, 151, 166, 161, 162, 171, 164, 164, 164, 166, 159, 160, 171, 158, 163, 152, 163, 174, 158, 159, 181, 161, 165, 155, 168, 158, 161, 157, 157, 159, 155, 163, 155, 149, 155, 161, 156, 161, 157, 161, 160, 153, 159, 161, 155, 156, 171, 164, 159, 161, 154, 163, 164, 159, 171, 162, 157, 165, 152, 164, 162, 158, 158, 157, 165, 169, 163, 162, 167, 162, 165, 163, 156, 159, 163, 158, 156, 157, 164, 170, 149, 163, 153, 163, 156, 163, 156, 161, 158, 152, 161, 161, 154, 164, 154, 165, 152, 164, 158, 165, 159, 145, 163, 166, 158, 162, 161, 156, 156, 155, 158, 155, 155, 154, 162, 164, 165, 165, 155, 168, 154, 152, 157, 161, 158, 157, 153, 159, 152, 154, 156, 157, 174, 176, 160, 158, 160, 158, 155, 158, 159, 171, 161, 173, 142, 165, 164, 156, 162, 160, 153, 160, 158, 159, 157, 160, 168, 164, 166, 166, 167, 158, 154, 166, 157, 159, 162, 152, 160, 158, 158, 164, 161, 157, 155, 169, 159, 155, 175, 151, 150, 165, 168, 163, 164, 158, 164, 163, 167, 173, 164, 160, 154, 154, 162, 161, 157, 160, 160, 147, 166, 160, 153, 157, 157, 167, 159, 158, 160, 164, 160, 162, 166, 163, 164, 153, 166, 160, 163, 150, 158, 161, 149, 155, 160, 157, 161, 155, 150, 159, 159, 163, 167, 156, 164, 165, 168, 177, 165, 158, 164, 156, 163, 157, 161, 162, 164, 157, 148, 163, 170, 156, 159, 167, 155, 156, 165, 159, 154, 153, 162, 163, 164, 165, 158, 157, 152, 157, 155, 150, 162, 158, 164, 152, 168, 161, 166, 163, 162, 165, 165, 157, 150, 155, 154, 164, 159, 157, 168, 159, 152, 154, 167, 152, 153, 152, 166, 167, 171, 159, 153, 159, 162, 148, 153, 161, 151, 163, 157, 166, 154, 157, 169, 152, 158, 163, 164, 159, 159, 154, 162, 169, 164, 158, 168, 148, 160, 159, 156, 165, 160, 152, 169, 176, 168, 152, 166, 158, 152, 158, 157, 155, 161, 147, 154, 151, 145, 162, 152, 155, 149, 163, 160, 159, 156, 163, 155, 168, 153, 163, 169, 165, 156, 161, 153, 165, 162, 151, 162, 161, 157, 156, 155, 162, 157, 148, 146, 160, 163, 162, 157, 164, 170, 158, 160, 152, 161, 160, 170, 153, 165, 153, 165, 166, 157, 150, 145, 156, 155, 162, 160, 166, 159, 161, 165, 153, 159, 159, 160, 149, 160, 153, 163, 172, 168, 150, 157, 158, 165, 159, 156, 162, 159, 162, 157, 150, 162, 157, 165, 167, 154, 160, 156, 162, 183, 155, 159, 151, 158, 153, 161, 161, 162, 165, 158, 163, 154, 162, 168, 154, 161, 153, 164, 161, 160, 173, 163, 172, 157, 155, 149, 159, 155, 172, 163, 156, 159, 150, 169, 158, 157, 157, 162, 157, 154, 169, 163, 152, 177, 166, 164, 152, 157, 155, 153, 151, 152, 163, 160, 173, 163, 163, 146, 150, 163, 156, 163, 163, 175, 158, 149, 173, 159, 158, 159, 156, 158, 152, 169, 162, 150, 152, 163, 158, 155, 161, 166, 152, 160, 156, 162, 154, 152, 159, 163, 154, 151, 171, 159, 153, 165, 160, 175, 165, 166, 158, 169, 157, 144, 170, 160, 167, 154, 147, 168, 162, 162, 162, 159, 156, 165, 162, 163, 156, 158, 164, 161, 162, 158, 154, 158, 156, 160, 147, 164, 153, 162, 157, 163, 157, 165, 153, 160, 163, 152, 152, 161, 167, 157, 154, 151, 166, 162, 158, 155, 162, 152, 156, 156, 164, 165, 162, 157, 156, 146, 154, 162, 152, 148, 165, 150, 143, 167, 159, 159, 159, 154, 150, 157, 158, 161, 161, 157, 151, 151, 151, 161, 163, 158, 145, 157, 161, 165, 161, 154, 153, 163, 142, 146, 164, 158, 154, 157, 159, 160, 155, 161, 158, 151, 159, 161, 154, 164, 156, 169, 161, 158, 150, 156, 149, 169, 159, 166, 158, 160, 175, 162, 163, 168, 156, 155, 163, 156, 159, 164, 167, 160, 157, 168, 157, 144, 166, 154, 154, 163, 162, 162, 163, 175, 150, 159, 156, 154, 151, 165, 157, 155, 160, 158, 153, 143, 157, 156, 152, 164, 155, 164, 153, 163, 160, 166, 155, 164, 156, 162, 168, 167, 161, 169, 166, 148, 163, 165, 158, 157, 158, 154, 159, 154, 156, 143, 157, 162, 156, 145, 165, 159, 169, 156, 159, 152, 155, 158, 148, 151, 168, 154, 157, 158, 161, 159, 160, 163, 159, 148, 167, 158, 169, 144, 167, 164, 160, 161, 160, 166, 207, 154, 163, 158, 163, 164, 164, 162, 174, 151, 163, 157, 156, 154, 159, 166, 158, 155, 154, 157, 156, 161, 158, 164, 144, 163, 158, 162, 157, 159, 165, 165, 165, 156, 159, 162, 160, 165, 159, 161, 154, 153, 151, 161, 158, 158, 157, 160, 152, 153, 167, 166, 163, 155, 162, 160, 163, 161, 156, 170, 156, 166, 160, 157, 154, 160, 159, 153, 153, 157, 157, 157, 166, 164, 171, 162, 168, 149, 167, 159, 159, 162, 159, 153, 152, 145, 159, 162, 165, 161, 158, 159, 168, 161, 165, 151, 157, 154, 158, 158, 164, 153, 163, 169, 153, 153, 165, 152, 155, 145, 166, 148, 157, 157, 146, 165, 153, 161, 162, 154, 162, 162, 166, 161, 159, 156, 165, 161, 157, 149, 161, 163, 155, 158, 171, 170, 150, 161, 159, 165, 167, 164, 148, 152, 157, 166, 169, 159, 152, 170, 156, 166, 159, 148, 158, 164, 154, 152, 161, 166, 155, 161, 157, 163, 160, 164, 155, 158, 142, 161, 163, 158, 156, 151, 161, 162, 164, 159, 162, 156, 145, 164, 156, 154, 159, 150, 164, 160, 155, 142, 161, 165, 168, 155, 163, 154, 160, 163, 158, 164, 160, 169, 152, 164, 158, 165, 167, 157, 159, 168, 162, 156, 160, 160, 156, 159, 167, 156, 155, 155, 157, 148, 166, 159, 161, 151, 163, 157, 164, 155, 162, 165, 161, 160, 161, 156, 165, 157, 165, 160, 162, 183, 167, 163, 149, 139, 173, 162, 166, 153, 158, 156, 156, 164, 165, 165, 155, 158, 153, 157, 153, 161, 159, 150, 144, 171, 154, 165, 158, 170, 150, 158, 170, 156, 157, 156, 158, 156, 156, 180, 160, 159, 161, 165, 166, 161, 160, 159, 162, 160, 157, 159, 166, 166, 158, 162, 161, 165, 163, 164, 158, 162, 159, 164, 162, 133, 152, 154, 150, 157, 157, 157, 164, 158, 158, 163, 166, 160, 149, 161, 166, 158, 158, 167, 159, 157, 156, 175, 153, 147, 163, 163, 161, 165, 163, 166, 161, 149, 164, 158, 158, 155, 160, 153, 150, 158, 165, 168, 157, 172, 151, 166, 155, 151, 138, 158, 146, 152, 167, 163, 162, 157, 170, 163, 160, 145, 163, 150, 164, 162, 158, 153, 157, 152, 154, 160, 159, 159, 152, 159, 156, 146, 161, 162, 170, 160, 160, 163, 167, 169, 155, 160, 156, 155, 150, 166, 155, 160, 157, 159, 153, 163, 156, 174, 156, 179, 155, 153, 157, 160, 159, 164, 163, 165, 159, 160, 164, 162, 155, 158, 165, 159, 161, 160, 159, 165, 159, 150, 163, 161, 149, 163, 167, 163, 162, 153, 162, 154, 158, 156, 156, 153, 162, 140, 159, 161, 162, 161, 164, 165, 161, 158, 162, 157, 154, 155, 156, 163, 160, 165, 156, 157, 156, 165, 165, 163, 164, 173, 160, 160, 161, 166, 156, 158, 160, 157, 159, 158, 167, 166, 159, 158, 161, 161, 160, 164, 163, 164, 163, 161, 160, 148, 158, 155, 153, 161, 156, 159, 161, 162, 165, 153, 162, 156, 166, 162, 161, 154, 163, 163, 157, 158, 160, 157, 152, 165, 164, 162, 160, 160, 165, 165, 165, 163, 165, 158, 155, 158, 160, 160, 158, 162, 160, 162, 162, 158, 157, 166, 161, 159, 164, 161, 161, 169, 158, 165, 152, 155, 163, 163, 165, 162, 161, 159, 156, 161, 165, 170, 158, 158, 162, 158, 156, 165, 156, 155, 164, 163, 163, 159, 160, 158, 164, 165, 147, 161, 162, 153, 161, 159, 147, 169, 163, 148, 157, 157, 156, 168, 156, 163, 165, 163, 165, 165, 160, 155, 133, 154, 155, 176, 160, 164, 164, 158, 164, 143, 161, 156, 164, 160, 162, 165, 156, 160, 160, 165, 155, 163, 156, 158, 156, 160, 162, 161, 157, 163, 150, 163, 160, 161, 161, 159, 168, 160, 160, 158, 161, 156, 161, 160, 160, 159, 159, 151, 156, 158, 170, 168, 149, 164, 161, 159, 149, 161, 161, 157, 161, 171, 163, 162, 152, 161, 155, 161, 156, 163, 156, 164, 162, 168, 157, 161, 158, 157, 166, 156, 159, 164, 158, 153, 163, 155, 159, 165, 157, 163, 154, 166, 152, 156, 157, 161, 166, 168, 163, 156, 182, 164, 171, 160, 161, 163, 162, 173, 164, 166, 160, 163, 153, 161, 157, 164, 160, 147, 158, 155, 164, 154, 161, 164, 173, 161, 169, 160, 156, 166, 161, 163, 162, 165, 161, 158, 163, 160, 167, 161, 157, 159, 164, 162, 164, 158, 162, 184, 157, 160, 156, 159, 157, 157, 166, 157, 163, 174, 159, 162, 168, 160, 162, 161, 162, 159, 162, 168, 155, 167, 161, 158, 150, 158, 159, 163, 160, 159, 159, 154, 163, 151, 164, 163, 163, 158, 165, 156, 157, 156, 164, 158, 153, 161, 149, 164, 159, 168, 158, 162, 161, 157, 160, 158, 157, 156, 159, 169, 155, 160, 159, 162, 158, 149, 158, 159, 159, 159, 158, 161, 154, 160, 142, 164, 165, 161, 160, 161, 154, 161, 164, 156, 161, 165, 156, 159, 159, 154, 159, 154, 154, 158, 158, 164, 160, 156, 141, 161, 163, 167, 166, 156, 162, 161, 153, 162, 162, 157, 154, 155, 158, 156, 167, 186, 163, 156, 149, 157, 162, 157, 148, 157, 162, 149, 156, 169, 160, 160, 155, 159, 156, 166, 153, 117, 165, 158, 165, 163, 161, 164, 159, 162, 160, 156, 163, 158, 162, 157, 154, 159, 157, 159, 160, 157, 159, 165, 162, 160, 160, 163, 200, 162, 162, 159, 159, 159, 155, 149, 161, 162, 154, 163, 159, 161, 162, 165, 172, 158, 168, 158, 166, 160, 151, 157, 166, 166, 164, 162, 169, 164, 157, 160, 163, 152, 160, 150, 160, 155, 154, 154, 172, 168, 161, 159, 151, 158, 149, 167, 159, 160, 154, 164, 145, 156, 165, 155, 162, 166, 160, 156, 165, 149, 158, 163, 171, 158, 157, 164, 156, 157, 154, 165, 154, 166, 153, 164, 150, 163, 150, 146, 155, 153, 167, 152, 159, 161, 158, 162, 158, 155, 165, 160, 159, 142, 161, 153, 155, 151, 158, 162, 154, 159, 150, 155, 158, 160, 157, 155, 166, 157, 160, 164, 164, 148, 156, 172, 169, 166, 155, 153, 155, 162, 157, 154, 162, 166, 155, 153, 172, 159, 156, 160, 159, 158, 157, 159, 162, 156, 160, 157, 159, 160, 163, 158, 166, 158, 158, 158, 149, 153, 161, 158, 164, 161, 159, 159, 159, 164, 156, 157, 165, 161, 155, 153, 159, 154, 160, 157, 153, 148, 163, 157, 167, 161, 159, 165, 158, 177, 160, 149, 154, 155, 149, 165, 160, 156, 158, 165, 144, 149, 152, 165, 151, 153, 153, 169, 156, 152, 161, 157, 152, 167, 163, 162, 157, 155, 154, 166, 162, 156, 180, 166, 172, 165, 161, 158, 163, 162, 173, 154, 167, 155, 164, 156, 173, 151, 167, 167, 162, 151, 158, 154, 155, 153, 154, 158, 158, 152, 160, 156, 155, 169, 163, 160, 158, 151, 150, 167, 163, 151, 163, 158, 160, 162, 157, 164, 160, 167, 164, 156, 148, 168, 155, 154, 161, 159, 159, 164, 151, 155, 160, 160, 162, 160, 176, 163, 151, 153, 165, 167, 178, 154, 155, 173, 154, 156, 160, 157, 164, 157, 148, 152, 157, 161, 157, 157, 161, 155, 158, 151, 160, 164, 160, 155, 160, 162, 161, 158, 155, 159, 154, 155, 158, 158, 161, 168, 151, 154, 168, 177, 154, 154, 160, 151, 162, 154, 159, 175, 162, 159, 163, 158, 173, 158, 159, 156, 159, 156, 163, 170, 158, 165, 165, 165, 163, 154, 154, 170, 150, 171, 158, 166, 145, 166, 155, 159, 157, 162, 157, 165, 157, 159, 156, 153, 167, 157, 152, 168, 160, 153, 164, 154, 158, 159, 152, 156, 164, 163, 160, 167, 158, 161, 154, 163, 173, 155, 158, 160, 163, 155, 160, 164, 162, 151, 149, 162, 157, 171, 157, 160, 167, 160, 161, 153, 154, 156, 163, 159, 158, 165, 152, 162, 169, 158, 155, 155, 158, 159, 155, 160, 156, 156, 152, 155, 160, 172, 162, 173, 148, 153, 161, 169, 157, 163, 158, 155, 151, 157, 165, 157, 158, 156, 163, 162, 161, 174, 156, 163, 159, 152, 157, 161, 159, 164, 165, 162, 157, 158, 170, 157, 157, 155, 157, 158, 150, 157, 161, 149, 151, 169, 157, 163, 155, 172, 154, 151, 159, 163, 158, 164, 167, 147, 158, 168, 158, 154, 156, 156, 150, 162, 153, 160, 148, 157, 150, 155, 143, 166, 159, 153, 163, 155, 163, 165, 155, 162, 155, 165, 153, 161, 167, 169, 175, 161, 165, 162, 175, 158, 161, 161, 155, 161, 159, 152, 149, 160, 160, 156, 177, 158, 161, 155, 157, 151, 160, 151, 157, 157, 159, 156, 161, 163, 165, 156, 157, 160, 158, 145, 159, 159, 161, 159, 155, 164, 155, 148, 151, 157, 168, 157, 164, 162, 172, 156, 162, 156, 166, 154, 158, 161, 154, 158, 158, 157, 165, 165, 173, 164, 164, 164, 168, 155, 166, 156, 168, 156, 166, 162, 182, 168, 160, 164, 155, 168, 163, 163, 155, 161, 145, 162, 167, 147, 161, 154, 162, 161, 149, 160, 163, 159, 153, 160, 163, 156, 151, 155, 157, 168, 156, 158, 164, 155, 177, 158, 163, 162, 160, 153, 155, 157, 157, 166, 159, 151, 157, 156, 165, 160, 154, 148, 168, 154, 152, 173, 158, 160, 160, 166, 154, 161, 161, 155, 134, 161, 163, 150, 154, 155, 162, 157, 152, 161, 163, 157, 164, 153, 158, 167, 161, 168, 152, 160, 170, 159, 163, 170, 162, 151, 161, 156, 171, 158, 164, 157, 163, 160, 158, 160, 169, 176, 158, 159, 155, 172, 149, 157, 160, 165, 158, 162, 160, 173, 152, 163, 164, 146, 154, 162, 180, 167, 155, 166, 164, 159, 161, 156, 167, 160, 168, 161, 155, 163, 171, 169, 153, 158, 165, 159, 162, 168, 159, 155, 159, 153, 153, 161, 157, 159, 157, 157, 159, 156, 156, 167, 163, 164, 156, 166, 154, 169, 163, 177, 162, 167, 169, 156, 150, 162, 168, 154, 157, 163, 150, 151, 153, 160, 158, 157, 153, 171, 164, 160, 157, 166, 157, 159, 161, 166, 158, 161, 162, 153, 151, 153, 162, 162, 166, 163, 165, 172, 161, 165, 165, 157, 155, 159, 164, 155, 150, 156, 155, 171, 147, 156, 148, 161, 153, 154, 144, 157, 163, 159, 148, 153, 164, 161, 164, 150, 156, 152, 158, 153, 149, 161, 154, 170, 150, 155, 160, 155, 166, 154, 163, 154, 166, 161, 164, 156, 164, 167, 158, 159, 159, 155, 167, 157, 160, 163, 168, 159, 162, 162, 155, 159, 155, 159, 166, 156, 167, 157, 153, 163, 163, 163, 162, 161, 164, 162, 154, 160, 160, 159, 175, 155, 153, 169, 147, 152, 169, 159, 157, 157, 162, 152, 162, 161, 163, 160, 155, 153, 142, 148, 166, 158, 158, 162, 159, 155, 156, 154, 183, 161, 166, 157, 145, 155, 161, 174, 155, 152, 154, 158, 157, 162, 162, 154, 153, 163, 166, 161, 164, 181, 156, 170, 151, 173, 158, 160, 156, 155, 160, 155, 162, 158, 168, 153, 163, 149, 166, 163, 163, 166, 156, 152, 161, 155, 156, 155, 153, 159, 158, 152, 159, 159, 161, 166, 157, 158, 168, 164, 166, 159, 166, 157, 148, 161, 163, 163, 162, 159, 157, 150, 159, 160, 166, 148, 160, 152, 160, 156, 159, 152, 159, 153, 156, 152, 150, 158, 154, 172, 167, 170, 162, 160, 162, 165, 164, 158, 161, 153, 162, 161, 162, 160, 167, 158, 152, 160, 170, 167, 156, 154, 160, 167, 161, 159, 157, 153, 152, 162, 157, 159, 163, 155, 154, 158, 159, 154, 156, 157, 166, 152, 166, 153, 159, 160, 164, 154, 162, 157, 163, 163, 163, 164, 170, 165, 159, 172, 162, 158, 164, 152, 169, 157, 155, 160, 156, 163, 162, 156, 163, 166, 147, 163, 150, 154, 168, 157, 162, 154, 179, 167, 156, 156, 158, 155, 159, 157, 156, 157, 159, 158, 153, 153, 159, 159, 163, 160, 167, 160, 167, 168, 159, 157, 152, 157, 157, 161, 161, 160, 163, 165, 158, 164, 162, 164, 157, 161, 160, 165, 155, 155, 162, 156, 160, 157, 157, 156, 163, 162, 165, 162, 158, 165, 160, 153, 151, 158, 163, 152, 164, 159, 165, 172, 171, 160, 161, 159, 154, 160, 161, 161, 159, 157, 161, 160, 162, 164, 166, 160, 160, 160, 162, 159, 156, 158, 157, 155, 151, 164, 164, 163, 156, 157, 143, 157, 147, 154, 157, 153, 165, 152, 163, 164, 165, 154, 157, 161, 168, 165, 159, 170, 153, 160, 158, 162, 164, 164, 174, 152, 160, 154, 147, 155, 156, 163, 159, 163, 150, 159, 166, 161, 165, 156, 161, 164, 168, 152, 160, 161, 158, 147, 156, 161, 153, 161, 162, 156, 168, 165, 175, 159, 146, 157, 165, 162, 160, 150, 159, 161, 159, 168, 170, 156, 152, 162, 158, 166, 160, 159, 159, 156, 156, 163, 165, 161, 163, 162, 162, 158, 163, 150, 154, 153, 156, 158, 154, 157, 161, 174, 158, 163, 171, 159, 162, 162, 157, 153, 159, 163, 157, 161, 159, 161, 159, 154, 166, 156, 162, 159, 167, 159, 156, 162, 158, 159, 167, 159, 157, 164, 164, 154, 158, 152, 157, 180, 158, 168, 163, 152, 166, 156, 155, 161, 169, 163, 163, 163, 152, 157, 150, 159, 160, 156, 155, 160, 158, 166, 164, 157, 183, 151, 162, 160, 147, 158, 163, 164, 150, 158, 162, 153, 170, 153, 155, 153, 156, 152, 160, 155, 160, 158, 164, 155, 162, 154, 161, 158, 156, 156, 161, 164, 157, 162, 168, 156, 165, 158, 154, 154, 160, 158, 151, 157, 162, 152, 157, 164, 163, 152, 161, 156, 152, 154, 159, 156, 161, 155, 167, 167, 156, 161, 153, 162, 161, 164, 154, 161, 158, 156, 157, 170, 155, 155, 158, 164, 158, 156, 152, 157, 160, 156, 171, 166, 160, 156, 162, 158, 169, 160, 153, 163, 162, 155, 158, 156, 150, 151, 163, 153, 162, 150, 161, 151, 154, 163, 165, 167, 170, 156, 169, 166, 157, 165, 155, 162, 161, 162, 159, 162, 163, 155, 168, 151, 159, 161, 163, 162, 163, 156, 159, 159, 165, 160, 160, 166, 161, 157, 161, 155, 151, 159, 162, 156, 156, 160, 158, 159, 161, 158, 165, 157, 167, 156, 157, 165, 163, 166, 150, 161, 164, 149, 154, 158, 150, 165, 152, 155, 163, 165, 157, 159, 157, 158, 162, 157, 160, 152, 150, 164, 149, 163, 166, 160, 161, 162, 163, 152, 169, 161, 161, 162, 157, 155, 154, 146, 165, 168, 166, 166, 163, 162, 169, 164, 153, 164, 158, 158, 153, 167, 165, 156, 163, 158, 166, 159, 156, 158, 156, 147, 154, 177, 163, 154, 166, 159, 166, 166, 155, 155, 155, 165, 167, 160, 160, 159, 159, 158, 159, 161, 151, 145, 161, 162, 160, 161, 157, 160, 160, 160, 165, 159, 162, 169, 161, 161, 156, 159, 157, 156, 158, 165, 159, 156, 168, 157, 157, 165, 162, 160, 165, 159, 157, 164, 159, 158, 151, 168, 158, 155, 147, 158, 160, 159, 160, 165, 160, 160, 160, 155, 160, 152, 163, 155, 159, 161, 159, 157, 160, 155, 159, 162, 153, 156, 156, 164, 153, 158, 153, 162, 164, 166, 159, 168, 164, 164, 169, 158, 164, 164, 156, 156, 151, 167, 167, 157, 158, 161, 159, 161, 165, 161, 159, 166, 158, 157, 163, 158, 154, 163, 166, 155, 162, 159, 162, 160, 159, 158, 156, 158, 185, 165, 160, 158, 162, 148, 158, 166, 155, 160, 149, 156, 154, 160, 162, 159, 172, 159, 165, 156, 160, 161, 161, 159, 165, 160, 159, 165, 167, 159, 151, 158, 152, 160, 159, 159, 159, 158, 165, 166, 158, 159, 163, 153, 162, 159, 163, 163, 159, 162, 163, 162, 168, 158, 159, 158, 157, 151, 161, 166, 158, 162, 152, 162, 165, 159, 164, 160, 163, 160, 160, 159, 161, 170, 161, 144, 160, 170, 158, 153, 169, 149, 161, 157, 161, 166, 160, 159, 156, 161, 154, 162, 154, 156, 154, 165, 158, 159, 163, 161, 165, 160, 149, 168, 151, 154, 157, 159, 158, 165, 157, 152, 152, 152, 167, 167, 161, 158, 161, 157, 168, 164, 148, 159, 162, 165, 158, 152, 162, 156, 160, 155, 171, 164, 159, 163, 159, 160, 161, 156, 163, 165, 154, 163, 156, 156, 155, 157, 151, 154, 154, 159, 163, 158, 158, 160, 160, 157, 156, 163, 157, 157, 170, 168, 155, 160, 160, 167, 163, 156, 164, 161, 164, 165, 169, 153, 159, 166, 172, 170, 164, 158, 165, 157, 165, 158, 164, 157, 149, 158, 161, 155, 161, 148, 156, 161, 165, 166, 165, 155, 159, 148, 165, 157, 160, 161, 159, 162, 169, 159, 160, 158, 156, 157, 163, 162, 154, 161, 151, 157, 153, 164, 173, 160, 158, 163, 156, 160, 160, 166, 158, 166, 162, 153, 159, 168, 160, 157, 173, 157, 159, 145, 165, 160, 159, 167, 165, 160, 162, 166, 161, 166, 156, 167, 160, 155, 159, 162, 160, 165, 159, 160, 158, 163, 158, 158, 160, 161, 154, 155, 160, 156, 157, 166, 172, 166, 156, 163, 159, 159, 160, 159, 164, 153, 162, 163, 156, 167, 160, 154, 163, 162, 159, 155, 152, 169, 152, 157, 158, 161, 158, 163, 148, 155, 160, 152, 166, 160, 164, 152, 163, 158, 164, 160, 162, 172, 158, 162, 162, 147, 175, 160, 165, 160, 158, 154, 159, 162, 165, 164, 158, 163, 160, 158, 157, 153, 177, 154, 157, 161, 157, 160, 166, 167, 152, 154, 156, 156, 153, 158, 159, 158, 160, 157, 164, 152, 173, 158, 161, 160, 163, 160, 164, 164, 157, 167, 164, 159, 155, 152, 159, 155, 148, 160, 149, 162, 170, 153, 165, 159, 156, 170, 165, 162, 164, 161, 158, 173, 169, 165, 160, 163, 156, 162, 161, 164, 167, 158, 166, 164, 150, 162, 161, 161, 156, 164, 163, 157, 156, 157, 163, 161, 161, 153, 165, 164, 147, 163, 162, 159, 166, 160, 173, 154, 156, 152, 131, 160, 153, 160, 175, 161, 161, 158, 164, 163, 183, 160, 155, 168, 166, 155, 159, 157, 150, 153, 147, 154, 160, 159, 162, 170, 158, 154, 160, 155, 154, 162, 162, 155, 155, 154, 150, 162, 159, 161, 164, 160, 162, 159, 155, 151, 144, 154, 155, 162, 169, 194, 173, 158, 145, 160, 155, 159, 154, 161, 158, 153, 164, 163, 164, 160, 166, 137, 151, 157, 157, 152, 165, 158, 154, 174, 158, 158, 161, 158, 165, 150, 158, 153, 163, 150, 156, 170, 158, 159, 174, 154, 165, 163, 158, 160, 146, 160, 159, 159, 160, 153, 157, 156, 162, 158, 165, 163, 165, 157, 165, 149, 159, 151, 167, 157, 166, 156, 163, 179, 163, 158, 167, 139, 157, 156, 160, 159, 159, 155, 153, 152, 171, 157, 174, 170, 156, 168, 157, 162, 161, 163, 152, 159, 157, 156, 160, 153, 170, 161, 163, 160, 168, 172, 151, 148, 156, 153, 153, 158, 161, 158, 162, 158, 163, 163, 158, 158, 158, 161, 164, 151, 156, 151, 159, 146, 165, 169, 160, 166, 157, 162, 173, 160, 153, 155, 160, 161, 157, 156, 153, 153, 155, 170, 145, 150, 169, 156, 160, 158, 150, 173, 160, 155, 165, 153, 157, 171, 156, 165, 151, 155, 155, 152, 170, 164, 158, 163, 152, 153, 153, 157, 160, 159, 161, 163, 149, 155, 150, 155, 168, 151, 155, 153, 153, 156, 156, 155, 157, 151, 160, 162, 162, 159, 157, 155, 155, 160, 173, 161, 151, 146, 164, 159, 167, 150, 154, 154, 157, 159, 156, 159, 150, 160, 163, 164, 174, 164, 159, 159, 172, 160, 164, 148, 153, 167, 167, 167, 155, 152, 171, 161, 162, 177, 162, 162, 162, 162, 162, 158, 160, 165, 149, 156, 164, 158, 161, 167, 155, 159, 163, 163, 152, 157, 165, 156, 156, 170, 159, 152, 165, 162, 160, 172, 157, 153, 152, 167, 158, 156, 157, 156, 160, 151, 155, 151, 160, 163, 160, 157, 159, 144, 158, 154, 152, 156, 144, 162, 163, 158, 157, 160, 156, 157, 153, 158, 164, 157, 178, 162, 149, 158, 159, 159, 160, 156, 161, 167, 157, 155, 164, 156, 156, 177, 160, 162, 159, 149, 156, 163, 150, 155, 162, 163, 174, 141, 164, 155, 160, 160, 150, 167, 151, 171, 158, 162, 167, 154, 158, 158, 155, 157, 159, 168, 166, 162, 175, 161, 158, 158, 161, 159, 161, 154, 157, 156, 167, 146, 159, 153, 159, 153, 161, 160, 168, 161, 170, 151, 162, 168, 169, 154, 163, 168, 148, 155, 161, 163, 159, 158, 163, 159, 161, 157, 162, 148, 150, 168, 154, 151, 149, 162, 171, 158, 155, 156, 143, 153, 159, 155, 167, 156, 167, 159, 163, 158, 164, 157, 163, 152, 151, 164, 163, 160, 161, 169, 162, 157, 157, 170, 148, 160, 155, 156, 150, 170, 164, 164, 157, 154, 160, 139, 153, 162, 159, 159, 155, 166, 150, 158, 165, 154, 164, 157, 159, 159, 156, 163, 156, 155, 165, 157, 159, 162, 151, 175, 159, 158, 145, 159, 161, 161, 157, 164, 162, 163, 159, 157, 162, 157, 158, 161, 148, 160, 157, 160, 161, 159, 157, 155, 161, 162, 166, 164, 163, 163, 160, 161, 159, 163, 162, 166, 159, 141, 160, 155, 160, 158, 165, 160, 161, 179, 161, 162, 155, 161, 151, 156, 156, 161, 169, 160, 160, 160, 161, 153, 152, 157, 161, 159, 161, 163, 164, 156, 161, 178, 157, 156, 165, 152, 161, 156, 148, 157, 159, 164, 160, 166, 159, 160, 161, 155, 164, 162, 157, 153, 162, 158, 160, 160, 163, 159, 159, 157, 161, 162, 157, 169, 163, 158, 170, 157, 162, 153, 160, 149, 156, 160, 158, 160, 162, 167, 162, 156, 117, 165, 160, 160, 163, 157, 158, 153, 160, 149, 153, 162, 161, 155, 161, 164, 158, 159, 159, 170, 158, 163, 161, 155, 160, 160, 162, 163, 160, 160, 159, 157, 161, 168, 161, 164, 157, 155, 163, 159, 155, 170, 165, 155, 153, 160, 154, 155, 161, 158, 192, 166, 163, 162, 159, 163, 159, 162, 162, 157, 164, 158, 159, 155, 157, 163, 155, 160, 160, 153, 158, 158, 160, 156, 166, 162, 157, 143, 161, 160, 163, 161, 159, 169, 160, 161, 139, 156, 157, 163, 160, 155, 143, 159, 161, 161, 157, 161, 164, 162, 158, 150, 164, 161, 157, 161, 155, 159, 172, 162, 161, 160, 151, 154, 167, 163, 163, 164, 166, 158, 155, 158, 173, 161, 156, 157, 166, 159, 158, 155, 158, 164, 163, 163, 164, 159, 150, 155, 165, 158, 160, 151, 158, 164, 159, 160, 160, 164, 164, 160, 155, 166, 156, 155, 164, 161, 162, 165, 162, 167, 166, 153, 156, 165, 158, 157, 156, 158, 153, 161, 156, 161, 161, 158, 162, 156, 161, 159, 158, 155, 157, 158, 159, 162, 164, 139, 156, 161, 155, 167, 168, 164, 163, 166, 160, 151, 165, 157, 160, 158, 160, 165, 159, 163, 164, 158, 159, 156, 154, 158, 160, 160, 158, 157, 161, 159, 160, 159, 159, 165, 158, 160, 161, 168, 156, 161, 156, 166, 154, 158, 158, 154, 157, 162, 161, 161, 155, 158, 153, 162, 166, 157, 159, 156, 157, 171, 165, 160, 159, 159, 157, 162, 145, 159, 160, 158, 162, 163, 158, 155, 156, 160, 163, 161, 169, 154, 161, 160, 162, 153, 167, 161, 158, 159, 161, 164, 159, 165, 164, 163, 159, 162, 158, 155, 159, 156, 158, 166, 162, 164, 160, 150, 147, 164, 161, 165, 161, 158, 160, 160, 160, 155, 152, 156, 165, 164, 158, 150, 162, 160, 162, 166, 161, 159, 160, 160, 159, 154, 170, 158, 168, 161, 160, 154, 159, 164, 157, 163, 161, 159, 162, 151, 164, 163, 161, 155, 155, 152, 166, 171, 167, 163, 164, 161, 160, 152, 152, 161, 147, 159, 161, 181, 165, 166, 157, 161, 160, 165, 158, 164, 166, 159, 151, 154, 149, 155, 162, 154, 162, 164, 162, 161, 168, 163, 162, 158, 158, 160, 166, 148, 164, 156, 167, 160, 161, 155, 163, 176, 163, 160, 158, 161, 156, 140, 154, 161, 178, 165, 155, 169, 156, 154, 153, 164, 155, 171, 157, 161, 156, 166, 161, 162, 153, 154, 161, 155, 156, 158, 160, 174, 161, 154, 153, 162, 158, 157, 164, 163, 144, 166, 166, 166, 151, 160, 164, 159, 149, 160, 158, 158, 162, 161, 163, 161, 153, 159, 155, 167, 156, 165, 163, 157, 162, 157, 154, 165, 155, 163, 157, 159, 162, 165, 185, 157, 159, 155, 152, 165, 152, 163, 155, 150, 167, 159, 159, 170, 164, 157, 167, 153, 158, 154, 154, 153, 169, 166, 149, 159, 152, 154, 163, 161, 156, 168, 156, 175, 159, 172, 168, 159, 170, 159, 159, 166, 156, 165, 158, 158, 154, 166, 166, 164, 201, 163, 159, 165, 164, 156, 162, 158, 149, 163, 146, 154, 154, 157, 160, 153, 164, 165, 168, 162, 165, 157, 155, 154, 167, 144, 157, 152, 152, 154, 173, 159, 164, 169, 163, 170, 157, 153, 149, 154, 160, 165, 150, 147, 160, 160, 162, 161, 157, 161, 169, 166, 148, 164, 152, 164, 161, 155, 168, 162, 154, 161, 157, 148, 163, 157, 155, 154, 156, 148, 154, 153, 168, 159, 160, 167, 170, 159, 167, 155, 159, 159, 159, 170, 155, 151, 152, 168, 165, 160, 159, 164, 146, 161, 154, 162, 162, 165, 161, 162, 157, 164, 163, 165, 158, 157, 151, 160, 164, 164, 158, 166, 153, 157, 167, 163, 162, 159, 159, 174, 156, 161, 167, 155, 157, 162, 161, 159, 164, 163, 158, 157, 158, 155, 156, 161, 163, 155, 161, 168, 148, 156, 157, 154, 183, 154, 158, 154, 160, 155, 158, 160, 157, 159, 151, 168, 163, 156, 172, 159, 160, 149, 162, 166, 160, 160, 159, 163, 171, 151, 172, 157, 163, 155, 156, 161, 155, 160, 161, 149, 164, 160, 158, 156, 164, 150, 142, 154, 151, 158, 163, 161, 162, 154, 174, 157, 157, 163, 153, 156, 153, 144, 154, 161, 167, 165, 162, 167, 155, 155, 161, 158, 159, 155, 157, 159, 157, 157, 172, 172, 151, 158, 152, 171, 166, 172, 149, 163, 157, 163, 157, 156, 157, 149, 157, 158, 155, 164, 165, 152, 160, 158, 162, 155, 168, 153, 152, 157, 152, 160, 156, 159, 158, 158, 149, 164, 166, 161, 163, 163, 163, 164, 156, 159, 161, 154, 164, 157, 153, 163, 171, 163, 162, 158, 157, 164, 156, 160, 155, 163, 156, 165, 156, 163, 160, 160, 162, 161, 159, 167, 169, 162, 161, 161, 156, 166, 159, 158, 154, 159, 155, 158, 162, 158, 165, 162, 150, 142, 159, 155, 164, 159, 165, 158, 153, 162, 145, 162, 163, 162, 168, 161, 150, 151, 154, 154, 171, 156, 157, 159, 164, 154, 157, 156, 157, 155, 159, 164, 163, 168, 153, 159, 158, 150, 155, 168, 149, 156, 151, 156, 156, 150, 163, 157, 164, 161, 157, 164, 162, 159, 154, 153, 161, 166, 161, 163, 157, 175, 158, 149, 166, 160, 160, 157, 159, 158, 166, 148, 159, 147, 163, 153, 156, 150, 159, 139, 154, 161, 166, 139, 157, 163, 148, 161, 159, 157, 160, 168, 161, 158, 155, 160, 176, 159, 156, 162, 129, 148, 161, 157, 160, 168, 161, 165, 160, 151, 154, 164, 163, 161, 155, 166, 160, 161, 158, 158, 154, 157, 160, 160, 170, 165, 156, 155, 166, 161, 161, 166, 156, 159, 164, 161, 171, 171, 166, 164, 158, 140, 157, 155, 155, 160, 155, 158, 160, 158, 160, 162, 154, 163, 160, 167, 169, 157, 159, 162, 159, 154, 154, 163, 163, 162, 158, 141, 163, 137, 143, 155, 168, 155, 155, 166, 154, 162, 163, 166, 170, 159, 161, 164, 160, 155, 161, 155, 158, 164, 151, 157, 165, 154, 164, 163, 185, 159, 147, 162, 160, 163, 166, 163, 161, 164, 156, 169, 158, 164, 163, 164, 149, 167, 162, 158, 162, 161, 160, 154, 172, 161, 151, 155, 158, 167, 158, 164, 159, 165, 165, 154, 153, 164, 158, 149, 163, 160, 156, 158, 155, 151, 158, 156, 159, 149, 170, 163, 160, 154, 160, 161, 163, 160, 158, 157, 165, 164, 162, 166, 161, 164, 158, 164, 154, 163, 163, 168, 164, 160, 167, 159, 160, 153, 161, 172, 160, 166, 158, 168, 159, 151, 166, 164, 158, 158, 156, 156, 160, 166, 170, 158, 153, 156, 163, 151, 170, 166, 160, 152, 141, 139, 164, 169, 159, 171, 164, 168, 129, 158, 172, 165, 159, 162, 153, 160, 160, 164, 155, 164, 163, 159, 158, 154, 160, 160, 155, 158, 150, 150, 161, 167, 178, 158, 162, 160, 158, 167, 149, 157, 157, 156, 158, 167, 157, 158, 163, 157, 167, 159, 161, 168, 159, 163, 156, 154, 157, 155, 174, 159, 156, 160, 168, 154, 166, 158, 167, 158, 144, 163, 153, 153, 153, 151, 162, 162, 162, 163, 159, 151, 165, 135, 152, 155, 152, 164, 152, 159, 177, 166, 165, 164, 156, 157, 160, 162, 152, 152, 151, 160, 155, 161, 155, 158, 159, 159, 161, 167, 163, 160, 166, 151, 173, 154, 153, 165, 141, 166, 164, 163, 167, 153, 166, 155, 162, 154, 158, 151, 166, 159, 161, 134, 160, 160, 154, 158, 155, 164, 162, 160, 152, 154, 160, 159, 150, 166, 164, 161, 174, 165, 158, 160, 172, 164, 159, 165, 151, 165, 165, 157, 159, 160, 163, 146, 151, 160, 159, 161, 159, 155, 163, 157, 157, 158, 159, 158, 150, 156, 156, 166, 163, 171, 172, 154, 166, 152, 166, 164, 161, 155, 160, 163, 158, 166, 170, 142, 163, 172, 159, 138, 161, 156, 163, 152, 156, 167, 155, 158, 158, 137, 166, 165, 154, 154, 164, 152, 128, 161, 166, 146, 156, 164, 156, 159, 158, 161, 155, 156, 154, 157, 162, 160, 150, 153, 163, 156, 162, 169, 163, 161, 150, 155, 158, 167, 160, 155, 172, 150, 153, 153, 164, 147, 164, 161, 157, 160, 165, 164, 163, 162, 157, 162, 162, 161, 153, 156, 156, 161, 152, 152, 165, 160, 162, 155, 161, 153, 167, 164, 164, 156, 165, 174, 158, 163, 163, 126, 161, 159, 150, 161, 150, 157, 160, 169, 153, 164, 158, 156, 153, 154, 143, 147, 158, 153, 147, 170, 158, 154, 161, 158, 166, 164, 163, 154, 172, 160, 157, 159, 162, 159, 166, 156, 157, 162, 167, 160, 164, 150, 155, 161, 158, 150, 165, 149, 147, 148, 159, 162, 154, 161, 180, 161, 151, 152, 150, 155, 157, 150, 168, 163, 154, 158, 162, 161, 160, 156, 162, 161, 162, 156, 160, 153, 159, 154, 151, 160, 149, 155, 152, 166, 153, 171, 158, 144, 161, 164, 161, 157, 161, 163, 159, 156, 150, 163, 147, 150, 160, 174, 168, 178, 171, 147, 158, 154, 168, 165, 164, 154, 147, 163, 161, 168, 164, 161, 162, 158, 163, 169, 159, 161, 158, 151, 161, 160, 157, 148, 172, 167, 164, 163, 162, 157, 159, 145, 165, 168, 149, 159, 165, 153, 164, 166, 165, 153, 160, 165, 166, 164, 159, 155, 159, 156, 155, 151, 174, 166, 155, 152, 160, 163, 165, 157, 154, 167, 166, 155, 148, 158, 158, 161, 159, 136, 157, 152, 157, 156, 174, 159, 175, 154, 159, 151, 162, 160, 159, 152, 163, 167, 156, 148, 165, 171, 157, 150, 160, 152, 152, 164, 165, 160, 157, 168, 161, 163, 149, 156, 170, 148, 154, 157, 168, 163, 158, 155, 150, 161, 157, 150, 160, 158, 164, 162, 162, 162, 153, 166, 155, 158, 167, 164, 165, 161, 159, 153, 163, 170, 158, 153, 162, 170, 157, 151, 163, 159, 163, 159, 156, 153, 155, 162, 166, 160, 153, 165, 161, 159, 153, 160, 163, 139, 157, 165, 158, 150, 167, 144, 166, 146, 143, 162, 163, 171, 157, 154, 166, 160, 154, 150, 155, 164, 161, 171, 145, 172, 157, 161, 178, 150, 156, 168, 168, 163, 154, 155, 156, 155, 150, 159, 160, 156, 164, 162, 147, 160, 161, 167, 168, 162, 152, 169, 159, 153, 160, 159, 160, 165, 151, 152, 161, 156, 163, 153, 154, 156, 150, 158, 149, 159, 154, 155, 169, 158, 167, 153, 153, 172, 172, 166, 154, 151, 161, 161, 163, 164, 152, 164, 163, 155, 150, 153, 157, 171, 164, 160, 160, 160, 147, 153, 163, 166, 168, 156, 155, 157, 156, 161, 158, 167, 158, 158, 149, 162, 163, 162, 174, 157, 160, 157, 159, 167, 158, 176, 161, 160, 155, 154, 156, 167, 151, 155, 157, 162, 156, 162, 163, 158, 160, 147, 162, 155, 160, 160, 164, 167, 158, 155, 154, 154, 152, 134, 159, 163, 159, 162, 172, 159, 158, 156, 156, 155, 153, 160, 170, 154, 151, 156, 159, 172, 156, 157, 155, 171, 155, 168, 157, 159, 156, 151, 162, 153, 161, 163, 160, 159, 154, 163, 162, 164, 161, 160, 161, 169, 154, 156, 163, 161, 151, 157, 162, 166, 160, 153, 158, 145, 163, 161, 163, 158, 168, 154, 165, 167, 158, 163, 160, 152, 155, 159, 153, 164, 161, 157, 174, 166, 150, 158, 168, 160, 162, 164, 168, 159, 171, 161, 158, 157, 155, 169, 160, 158, 164, 160, 158, 161, 159, 167, 162, 160, 159, 160, 161, 161, 155, 160, 162, 156, 165, 155, 160, 160, 166, 163, 165, 159, 164, 163, 164, 163, 165, 161, 162, 161, 162, 158, 165, 162, 164, 161, 179, 159, 158, 166, 156, 156, 158, 163, 163, 154, 168, 147, 161, 164, 160, 166, 161, 162, 160, 162, 158, 155, 158, 162, 161, 156, 160, 163, 155, 155, 158, 158, 161, 166, 165, 161, 165, 163, 169, 160, 159, 163, 155, 159, 160, 163, 152, 163, 163, 162, 156, 156, 170, 154, 156, 161, 155, 161, 157, 147, 157, 167, 169, 163, 156, 149, 163, 155, 160, 159, 165, 153, 164, 161, 167, 165, 161, 159, 163, 161, 160, 161, 168, 157, 154, 163, 161, 155, 141, 160, 157, 169, 160, 165, 155, 156, 161, 147, 155, 156, 160, 160, 173, 153, 151, 159, 155, 157, 160, 159, 161, 157, 149, 164, 158, 160, 158, 167, 154, 164, 163, 150, 161, 164, 163, 155, 159, 163, 154, 155, 159, 161, 158, 159, 154, 161, 154, 161, 163, 161, 151, 156, 161, 164, 165, 156, 156, 173, 155, 162, 160, 159, 155, 155, 163, 161, 164, 165, 162, 152, 164, 161, 162, 164, 160, 167, 160, 161, 156, 164, 155, 161, 158, 162, 164, 156, 161, 158, 157, 147, 159, 156, 161, 162, 158, 151, 159, 163, 156, 168, 169, 153, 156, 157, 161, 166, 163, 159, 158, 165, 167, 160, 162, 152, 156, 163, 158, 163, 150, 167, 156, 146, 161, 164, 160, 159, 165, 151, 161, 160, 176, 158, 165, 159, 146, 165, 157, 159, 159, 149, 170, 160, 164, 158, 159, 153, 144, 155, 162, 165, 150, 163, 168, 159, 163, 166, 158, 163, 160, 156, 158, 159, 162, 170, 162, 165, 163, 165, 163, 144, 158, 158, 186, 161, 156, 163, 165, 155, 165, 159, 169, 162, 161, 147, 158, 159, 164, 162, 160, 161, 162, 160, 162, 163, 165, 158, 161, 161, 157, 162, 161, 157, 162, 162, 154, 159, 157, 157, 158, 161, 157, 165, 163, 168, 166, 163, 168, 157, 157, 161, 162, 157, 156, 162, 160, 163, 164, 161, 159, 162, 159, 161, 159, 161, 170, 157, 160, 160, 159, 164, 157, 159, 154, 162, 165, 163, 144, 159, 167, 148, 154, 160, 160, 149, 161, 155, 167, 170, 169, 158, 165, 160, 160, 163, 163, 164, 159, 164, 163, 158, 161, 153, 156, 171, 184, 165, 157, 164, 152, 152, 160, 146, 164, 172, 154, 155, 158, 162, 155, 161, 162, 157, 169, 159, 163, 156, 161, 143, 168, 161, 158, 158, 160, 165, 154, 161, 164, 162, 160, 159, 162, 165, 161, 172, 160, 161, 159, 156, 161, 164, 158, 161, 161, 157, 155, 164, 158, 158, 156, 154, 159, 154, 158, 164, 160, 159, 160, 163, 158, 153, 157, 160, 161, 162, 142, 161, 158, 161, 159, 164, 168, 153, 162, 167, 165, 160, 160, 164, 157, 150, 157, 163, 162, 176, 160, 165, 161, 163, 159, 154, 160, 167, 158, 156, 160, 162, 159, 162, 165, 164, 161, 157, 162, 154, 153, 162, 167, 154, 165, 166, 154, 169, 169, 171, 144, 166, 164, 161, 161, 161, 155, 159, 167, 163, 154, 166, 149, 157, 164, 164, 164, 169, 158, 161, 159, 147, 153, 162, 160, 162, 185, 158, 159, 156, 154, 164, 163, 164, 159, 158, 161, 158, 161, 163, 160, 156, 154, 167, 158, 152, 154, 154, 161, 164, 154, 154, 176, 160, 155, 166, 169, 160, 156, 161, 157, 158, 160, 157, 156, 157, 157, 159, 162, 165, 158, 159, 159, 162, 156, 163, 160, 155, 158, 157, 169, 163, 162, 161, 152, 152, 154, 160, 160, 157, 158, 152, 156, 158, 163, 157, 155, 160, 156, 160, 155, 145, 163, 157, 165, 157, 166, 162, 160, 151, 161, 158, 154, 159, 158, 157, 162, 161, 169, 167, 161, 160, 152, 160, 177, 156, 159, 181, 161, 164, 158, 163, 164, 147, 157, 149, 161, 161, 164, 161, 161, 163, 154, 162, 154, 177, 159, 153, 155, 160, 160, 155, 161, 161, 158, 136, 160, 174, 171, 171, 145, 159, 167, 159, 152, 158, 154, 169, 160, 164, 159, 152, 156, 153, 156, 156, 159, 154, 169, 157, 168, 159, 162, 166, 157, 160, 157, 155, 161, 155, 160, 157, 154, 169, 156, 152, 167, 150, 158, 160, 162, 160, 162, 155, 160, 161, 160, 158, 153, 161, 168, 158, 157, 158, 164, 155, 170, 155, 157, 155, 157, 161, 165, 160, 156, 159, 168, 165, 156, 156, 157, 159, 159, 158, 160, 160, 159, 153, 155, 151, 158, 159, 162, 148, 160, 167, 167, 159, 152, 162, 163, 169, 154, 158, 166, 156, 157, 160, 161, 153, 167, 142, 158, 155, 168, 158, 157, 159, 160, 156, 153, 160, 162, 152, 163, 155, 168, 162, 154, 175, 160, 160, 148, 163, 166, 165, 160, 160, 168, 157, 165, 158, 166, 158, 158, 160, 163, 159, 160, 151, 162, 170, 159, 155, 159, 158, 158, 157, 164, 155, 161, 158, 157, 168, 150, 155, 159, 162, 151, 159, 158, 151, 152, 160, 158, 170, 168, 155, 165, 152, 149, 163, 163, 152, 153, 154, 156, 159, 166, 158, 160, 158, 156, 155, 160, 165, 167, 160, 161, 160, 168, 159, 158, 156, 171, 158, 177, 159, 158, 167, 177, 162, 165, 157, 155, 155, 162, 164, 159, 154, 161, 158, 168, 161, 160, 161, 157, 156, 163, 152, 156, 164, 167, 166, 161, 164, 161, 157, 161, 161, 165, 160, 166, 156, 162, 160, 160, 151, 150, 159, 154, 162, 157, 155, 160, 151, 159, 164, 160, 154, 163, 152, 156, 166, 163, 159, 162, 163, 161, 163, 168, 157, 156, 166, 156, 164, 162, 158, 168, 163, 172, 160, 152, 164, 159, 158, 166, 160, 157, 165, 156, 173, 155, 154, 156, 159, 161, 145, 158, 154, 162, 164, 158, 168, 151, 161, 164, 160, 152, 165, 157, 158, 164, 158, 165, 155, 159, 160, 158, 155, 164, 152, 161, 156, 158, 170, 144, 165, 152, 163, 155, 165, 160, 160, 190, 161, 164, 164, 157, 158, 162, 158, 161, 153, 159, 161, 164, 155, 159, 153, 168, 158, 160, 164, 161, 154, 149, 156, 167, 166, 171, 157, 161, 165, 164, 163, 157, 160, 160, 161, 166, 165, 165, 153, 161, 162, 164, 162, 176, 172, 154, 161, 163, 158, 155, 159, 156, 158, 165, 160, 132, 159, 161, 158, 161, 164, 164, 157, 159, 161, 159, 157, 158, 166, 161, 170, 167, 162, 156, 151, 156, 138, 156, 155, 157, 174, 164, 155, 161, 160, 164, 166, 157, 170, 166, 156, 160, 150, 165, 154, 160, 156, 157, 159, 157, 160, 168, 159, 161, 159, 153, 160, 161, 154, 163, 155, 166, 159, 166, 162, 155, 162, 163, 158, 160, 155, 156, 162, 167, 162, 159, 168, 171, 165, 195, 158, 158, 159, 160, 156, 171, 153, 167, 153, 159, 161, 167, 163, 161, 165, 162, 153, 159, 152, 156, 163, 166, 174, 162, 159, 162, 171, 169, 160, 179, 165, 162, 167, 155, 152, 165, 170, 159, 156, 161, 156, 164, 164, 154, 160, 150, 172, 158, 157, 153, 163, 161, 162, 165, 162, 165, 153, 168, 162, 145, 162, 164, 159, 165, 162, 164, 168, 151, 161, 155, 160, 159, 156, 164, 158, 157, 156, 159, 164, 156, 159, 165, 166, 154, 151, 166, 151, 162, 155, 157, 148, 157, 168, 150, 162, 149, 148, 159, 153, 159, 165, 159, 167, 166, 146, 167, 162, 165, 166, 152, 158, 160, 161, 154, 158, 154, 158, 160, 157, 167, 162, 163, 153, 158, 160, 162, 161, 151, 154, 155, 159, 160, 160, 162, 159, 167, 181, 160, 168, 160, 159, 160, 154, 166, 163, 160, 159, 167, 156, 159, 160, 157, 162, 162, 161, 159, 160, 165, 166, 159, 160, 158, 162, 164, 161, 174, 160, 160, 161, 165, 148, 153, 161, 155, 158, 160, 156, 166, 158, 162, 155, 163, 168, 162, 159, 156, 153, 159, 148, 162, 160, 161, 156, 160, 160, 163, 162, 157, 162, 160, 153, 169, 156, 161, 166, 170, 150, 167, 165, 164, 166, 157, 152, 156, 162, 159, 166, 157, 157, 159, 169, 160, 159, 166, 163, 164, 156, 161, 160, 154, 162, 147, 167, 161, 161, 159, 168, 163, 164, 162, 167, 156, 161, 153, 175, 154, 152, 154, 162, 149, 160, 159, 158, 163, 166, 172, 161, 157, 164, 151, 156, 155, 161, 166, 170, 157, 157, 161, 150, 161, 164, 164, 151, 160, 167, 161, 158, 155, 162, 159, 154, 149, 155, 160, 165, 160, 157, 156, 154, 153, 151, 164, 161, 159, 149, 156, 161, 171, 159, 160, 162, 160, 159, 159, 164, 162, 152, 158, 159, 149, 159, 165, 153, 161, 162, 160, 146, 155, 157, 176, 155, 165, 156, 163, 157, 167, 156, 161, 153, 155, 163, 154, 159, 160, 159, 158, 160, 158, 156, 153, 152, 154, 156, 151, 163, 174, 169, 165, 161, 152, 164, 162, 158, 165, 152, 152, 157, 165, 154, 153, 159, 152, 158, 171, 165, 151, 157, 164, 160, 167, 161, 156, 162, 155, 164, 159, 165, 156, 203, 156, 144, 161, 166, 162, 154, 153, 165, 159, 160, 157, 160, 160, 156, 163, 172, 162, 156, 172, 167, 185, 189, 164, 155, 154, 159, 164, 158, 166, 150, 166, 173, 164, 155, 175, 155, 153, 163, 159, 158, 160, 159, 152, 162, 157, 165, 156, 161, 160, 153, 159, 157, 161, 165, 173, 165, 153, 168, 158, 154, 161, 154, 150, 161, 160, 160, 148, 162, 148, 160, 153, 158, 162, 154, 162, 153, 162, 161, 169, 160, 166, 159, 148, 162, 159, 164, 157, 160, 158, 158, 164, 160, 165, 159, 152, 161, 158, 154, 161, 157, 160, 156, 157, 150, 157, 156, 174, 161, 162, 162, 158, 158, 160, 158, 156, 156, 159, 168, 166, 153, 156, 156, 159, 156, 145, 145, 159, 157, 156, 158, 160, 161, 162, 158, 153, 167, 161, 150, 160, 164, 154, 155, 157, 161, 162, 161, 160, 159, 159, 165, 151, 159, 151, 162, 163, 154, 159, 154, 152, 161, 157, 160, 162, 167, 161, 160, 153, 156, 159, 166, 158, 155, 174, 165, 165, 162, 153, 168, 153, 154, 154, 167, 155, 161, 153, 159, 162, 166, 157, 149, 166, 180, 158, 162, 152, 164, 159, 167, 160, 160, 157, 156, 162, 145, 168, 158, 163, 172, 172, 161, 154, 155, 158, 152, 158, 159, 158, 165, 159, 159, 156, 158, 161, 155, 150, 156, 165, 159, 159, 154, 162, 161, 161, 155, 152, 149, 155, 165, 176, 164, 157, 170, 156, 159, 157, 171, 163, 162, 153, 158, 159, 161, 162, 169, 172, 157, 165, 161, 159, 157, 163, 155, 165, 160, 158, 163, 152, 155, 155, 161, 165, 160, 160, 159, 168, 152, 163, 159, 158, 159, 164, 166, 173, 154, 160, 156, 158, 169, 162, 152, 160, 157, 162, 155, 155, 156, 162, 152, 157, 150, 156, 160, 157, 160, 157, 151, 165, 156, 152, 161, 160, 156, 154, 158, 161, 157, 160, 156, 163, 170, 158, 156, 149, 154, 159, 177, 158, 160, 158, 161, 156, 151, 156, 162, 159, 154, 160, 156, 163, 160, 162, 157, 153, 162, 159, 161, 162, 162, 160, 158, 162, 163, 163, 159, 161, 164, 152, 151, 155, 155, 151, 166, 168, 155, 159, 158, 158, 158, 157, 170, 159, 166, 161, 156, 158, 155, 160, 171, 162, 162, 160, 156, 158, 155, 163, 162, 158, 161, 155, 162, 153, 163, 160, 158, 159, 155, 152, 161, 158, 157, 159, 154, 164, 155, 158, 155, 157, 163, 171, 160, 151, 163, 167, 156, 162, 159, 156, 156, 154, 154, 156, 154, 172, 159, 160, 163, 159, 158, 153, 162, 168, 159, 157, 157, 154, 152, 151, 159, 160, 159, 155, 161, 161, 147, 154, 161, 160, 163, 162, 160, 161, 151, 158, 164, 163, 162, 154, 155, 173, 158, 163, 154, 154, 157, 163, 160, 155, 165, 155, 161, 164, 167, 162, 154, 156, 156, 155, 166, 164, 172, 161, 158, 158, 160, 162, 160, 157, 159, 153, 160, 151, 165, 159, 180, 152, 158, 159, 161, 164, 156, 162, 157, 154, 154, 151, 148, 152, 157, 161, 162, 163, 163, 152, 154, 176, 154, 162, 163, 161, 159, 162, 156, 166, 163, 169, 158, 164, 160, 159, 158, 162, 154, 160, 162, 162, 161, 161, 161, 160, 161, 160, 159, 162, 159, 160, 160, 162, 156, 161, 161, 163, 161, 168, 162, 159, 156, 158, 153, 162, 162, 162, 164, 162, 161, 152, 164, 162, 159, 160, 156, 148, 161, 160, 158, 160, 159, 155, 162, 161, 165, 158, 160, 164, 159, 160, 161, 161, 159, 156, 162, 161, 164, 160, 161, 160, 158, 159, 165, 161, 154, 157, 160, 162, 157, 162, 167, 160, 161, 160, 162, 163, 156, 162, 159, 153, 157, 153, 160, 157, 162, 163, 159, 158, 157, 159, 159, 160, 168, 164, 159, 163, 166, 154, 159, 156, 160, 164, 159, 162, 161, 159, 158, 160, 159, 168, 165, 160, 159, 162, 163, 156, 159, 171, 156, 161, 161, 159, 158, 164, 160, 158, 158, 158, 159, 157, 161, 164, 159, 159, 157, 163, 165, 164, 158, 174, 161, 162, 163, 159, 161, 161, 152, 170, 160, 160, 157, 161, 156, 157, 163, 159, 165, 160, 159, 154, 159, 165, 162, 165, 158, 161, 158, 161, 161, 175, 163, 158, 159, 165, 160, 160, 160, 163, 156, 157, 163, 159, 161, 159, 160, 163, 158, 156, 162, 171, 160, 162, 161, 161, 158, 155, 167, 163, 161, 156, 161, 161, 159, 161, 158, 161, 158, 159, 160, 157, 161, 161, 159, 158, 152, 160, 160, 159, 161, 162, 155, 157, 162, 163, 161, 159, 160, 160, 157, 177, 160, 164, 160, 162, 149, 156, 162, 153, 157, 159, 158, 158, 163, 163, 167, 162, 170, 162, 165, 162, 163, 159, 158, 165, 160, 167, 162, 160, 159, 160, 162, 154, 162, 158, 159, 157, 159, 155, 157, 160, 160, 156, 157, 165, 157, 163, 161, 160, 166, 156, 165, 164, 155, 160, 160, 160, 162, 156, 161, 160, 157, 158, 161, 156, 160, 159, 160, 161, 162, 159, 160, 159, 156, 162, 160, 158, 159, 161, 162, 158, 160, 159, 158, 162, 168, 158, 160, 163, 161, 162, 159, 160, 166, 155, 161, 155, 163, 162, 160, 159, 164, 163, 158, 157, 160, 162, 158, 164, 156, 164, 166, 158, 158, 159, 157, 159, 162, 159, 162, 160, 164, 166, 162, 159, 156, 164, 159, 154, 158, 161, 161, 162, 162, 161, 157, 167, 158, 159, 169, 154, 159, 159, 160, 158, 158, 161, 161, 164, 159, 159, 156, 160, 163, 163, 163, 159, 157, 161, 157, 152, 161, 159, 162, 158, 161, 157, 159, 157, 162, 156, 157, 162, 158, 157, 163, 154, 158, 163, 155, 152, 160, 159, 160, 159, 161, 164, 161, 159, 157, 157, 159, 158, 150, 156, 159, 161, 159, 162, 160, 148, 160, 162, 159, 161, 155, 154, 160, 158, 160, 157, 161, 160, 161, 160, 158, 165, 161, 164, 159, 154, 155, 159, 159, 163, 153, 160, 163, 160, 157, 162, 161, 158, 157, 161, 167, 158, 157, 158, 159, 159, 159, 158, 158, 159, 158, 143, 154, 161, 156, 159, 159, 156, 161, 154, 162, 163, 161, 160, 159, 162, 160, 162, 160, 161, 161, 157, 155, 168, 161, 155, 159, 161, 163, 160, 163, 148, 158, 159, 150, 165, 154, 157, 164, 160, 150, 166, 164, 160, 147, 163, 167, 165, 163, 163, 158, 158, 159, 157, 157, 163, 158, 166, 156, 157, 160, 152, 163, 169, 154, 155, 167, 160, 161, 153, 158, 155, 160, 160, 157, 155, 160, 151, 154, 156, 150, 160, 163, 157, 154, 160, 156, 172, 156, 155, 151, 164, 153, 171, 158, 164, 157, 169, 155, 163, 164, 161, 158, 168, 163, 170, 160, 164, 163, 164, 159, 164, 153, 155, 157, 152, 166, 166, 153, 165, 157, 155, 158, 165, 164, 161, 156, 152, 156, 163, 161, 186, 157, 164, 159, 154, 160, 161, 155, 173, 157, 164, 168, 153, 167, 160, 155, 163, 154, 156, 161, 159, 164, 162, 153, 159, 157, 155, 161, 157, 153, 160, 163, 158, 160, 174, 158, 152, 161, 154, 159, 143, 154, 162, 162, 161, 167, 154, 166, 155, 165, 158, 157, 162, 165, 155, 160, 148, 156, 160, 161, 163, 161, 158, 158, 163, 150, 161, 154, 160, 154, 160, 165, 157, 151, 156, 153, 155, 147, 169, 155, 162, 157, 160, 159, 161, 155, 162, 163, 164, 165, 158, 152, 166, 151, 150, 156, 160, 148, 148, 169, 149, 162, 157, 165, 146, 157, 158, 159, 165, 156, 160, 161, 165, 151, 159, 165, 160, 154, 159, 149, 155, 163, 165, 163, 173, 164, 166, 159, 160, 166, 162, 156, 164, 151, 167, 153, 160, 154, 155, 156, 146, 157, 156, 154, 165, 155, 153, 165, 177, 144, 156, 156, 161, 159, 156, 154, 158, 162, 168, 165, 157, 155, 159, 157, 166, 164, 155, 153, 156, 164, 158, 158, 153, 154, 161, 162, 162, 158, 153, 153, 153, 155, 159, 155, 154, 160, 158, 166, 159, 163, 160, 161, 160, 165, 152, 164, 175, 149, 169, 161, 157, 150, 167, 159, 154, 160, 171, 155, 170, 161, 169, 162, 164, 163, 164, 160, 158, 152, 159, 160, 182, 161, 165, 161, 155, 160, 171, 154, 165, 155, 151, 163, 159, 161, 153, 159, 151, 157, 138, 162, 161, 168, 151, 153, 156, 166, 157, 160, 160, 158, 165, 168, 152, 162, 162, 150, 174, 164, 152, 154, 155, 156, 154, 159, 164, 177, 155, 161, 161, 160, 167, 159, 169, 162, 154, 161, 158, 159, 159, 159, 160, 155, 147, 162, 168, 160, 158, 170, 156, 156, 157, 159, 161, 162, 167, 165, 163, 151, 158, 150, 157, 150, 144, 162, 155, 161, 162, 160, 156, 153, 164, 156, 163, 160, 158, 157, 165, 154, 162, 165, 162, 150, 155, 151, 169, 162, 169, 161, 153, 162, 158, 164, 163, 159, 166, 165, 161, 153, 163, 161, 158, 159, 160, 160, 157, 158, 152, 154, 159, 160, 158, 160, 154, 170, 155, 164, 159, 152, 166, 161, 160, 171, 161, 147, 162, 168, 135, 160, 162, 156, 163, 169, 152, 151, 153, 161, 158, 154, 154, 162, 156, 152, 164, 159, 162, 150, 156, 176, 157, 170, 150, 165, 157, 163, 168, 162, 164, 164, 162, 157, 155, 155, 160, 165, 158, 161, 163, 167, 163, 157, 161, 165, 163, 165, 162, 151, 158, 158, 161, 168, 152, 156, 161, 157, 163, 153, 170, 158, 160, 164, 153, 153, 161, 154, 161, 157, 160, 160, 170, 154, 160, 166, 150, 165, 160, 159, 150, 149, 165, 161, 149, 177, 171, 163, 161, 160, 160, 165, 156, 155, 157, 159, 153, 168, 153, 169, 165, 157, 168, 153, 155, 164, 161, 165, 155, 160, 158, 160, 173, 163, 154, 162, 179, 162, 159, 164, 168, 162, 162, 164, 162, 159, 152, 158, 161, 157, 148, 163, 159, 153, 161, 158, 165, 155, 160, 167, 153, 162, 163, 157, 163, 160, 158, 162, 164, 170, 159, 162, 182, 162, 157, 157, 159, 158, 156, 155, 161, 165, 163, 163, 157, 161, 158, 154, 163, 152, 165, 164, 156, 166, 172, 153, 158, 153, 152, 157, 166, 158, 162, 155, 151, 159, 159, 161, 159, 160, 160, 161, 167, 159, 158, 160, 159, 155, 162, 157, 153, 160, 161, 164, 163, 162, 155, 150, 161, 167, 161, 170, 161, 156, 160, 165, 150, 163, 160, 160, 163, 155, 160, 162, 161, 161, 168, 167, 159, 158, 159, 165, 165, 166, 156, 161, 170, 149, 166, 154, 155, 159, 159, 160, 153, 165, 162, 163, 157, 161, 160, 164, 163, 165, 164, 157, 153, 157, 157, 160, 161, 151, 155, 158, 165, 156, 153, 160, 186, 157, 158, 162, 164, 160, 156, 148, 156, 156, 159, 162, 152, 156, 162, 151, 157, 159, 162, 163, 154, 174, 164, 164, 161, 160, 161, 169, 159, 152, 148, 169, 178, 160, 164, 162, 163, 157, 156, 162, 163, 157, 162, 158, 158, 155, 159, 156, 152, 162, 160, 163, 163, 165, 156, 162, 156, 165, 159, 151, 153, 162, 157, 169, 162, 162, 160, 164, 167, 160, 162, 155, 159, 162, 153, 160, 165, 155, 162, 148, 159, 155, 159, 160, 157, 164, 160, 152, 154, 153, 160, 165, 158, 159, 156, 164, 158, 149, 165, 164, 168, 160, 152, 158, 171, 156, 161, 156, 171, 157, 163, 161, 155, 163, 158, 149, 161, 162, 161, 163, 160, 156, 156, 163, 157, 161, 165, 166, 157, 157, 164, 160, 152, 157, 158, 163, 156, 154, 163, 161, 155, 155, 161, 162, 158, 161, 155, 164, 159, 169, 156, 158, 159, 161, 160, 143, 157, 160, 159, 160, 157, 160, 163, 160, 156, 165, 162, 161, 158, 168, 167, 179, 173, 160, 163, 167, 162, 162, 160, 157, 157, 160, 165, 162, 161, 161, 156, 157, 159, 157, 171, 156, 161, 164, 158, 157, 162, 167, 157, 156, 162, 156, 170, 152, 159, 159, 160, 167, 167, 158, 166, 165, 162, 156, 156, 154, 158, 157, 158, 148, 153, 167, 160, 156, 153, 175, 158, 164, 163, 155, 148, 149, 159, 154, 162, 150, 148, 157, 162, 160, 156, 162, 157, 168, 163, 160, 168, 162, 154, 161, 155, 156, 153, 150, 162, 159, 161, 163, 156, 161, 159, 161, 163, 156, 159, 155, 159, 168, 162, 163, 163, 167, 167, 159, 158, 159, 149, 158, 160, 156, 163, 155, 165, 165, 135, 156, 167, 160, 164, 175, 162, 155, 160, 164, 163, 158, 159, 166, 151, 157, 164, 159, 150, 171, 163, 155, 162, 153, 160, 156, 162, 165, 157, 158, 161, 161, 163, 159, 153, 153, 159, 152, 159, 165, 159, 161, 164, 163, 146, 153, 165, 164, 160, 166, 164, 159, 141, 155, 159, 155, 155, 157, 156, 156, 157, 165, 160, 158, 160, 159, 158, 162, 161, 159, 159, 161, 166, 158, 170, 145, 158, 161, 157, 157, 155, 163, 162, 160, 162, 174, 158, 172, 165, 161, 165, 159, 154, 169, 156, 162, 151, 164, 161, 163, 159, 159, 149, 157, 158, 162, 161, 164, 164, 155, 162, 159, 171, 145, 164, 165, 161, 156, 160, 153, 160, 161, 159, 167, 155, 156, 158, 162, 158, 163, 161, 185, 161, 163, 152, 161, 168, 156, 159, 156, 158, 153, 159, 162, 164, 163, 151, 164, 160, 158, 157, 151, 153, 164, 150, 161, 154, 156, 161, 158, 165, 154, 156, 161, 159, 164, 159, 156, 164, 159, 160, 157, 154, 145, 154, 158, 156, 159, 156, 155, 154, 160, 151, 161, 164, 152, 161, 154, 160, 152, 160, 162, 163, 161, 160, 162, 152, 165, 158, 162, 163, 158, 161, 162, 154, 158, 162, 165, 160, 155, 156, 160, 163, 156, 165, 166, 161, 166, 166, 155, 154, 172, 156, 164, 162, 165, 160, 162, 159, 161, 157, 152, 162, 165, 170, 163, 157, 173, 155, 157, 162, 167, 161, 144, 188, 174, 159, 162, 158, 163, 160, 158, 153, 159, 163, 161, 158, 172, 156, 156, 159, 163, 160, 165, 162, 160, 152, 160, 159, 164, 153, 158, 163, 153, 161, 158, 157, 170, 160, 152, 156, 167, 161, 155, 155, 167, 161, 158, 160, 166, 166, 159, 162, 159, 164, 159, 150, 159, 155, 161, 156, 153, 163, 166, 157, 158, 160, 178, 160, 156, 160, 157, 154, 161, 160, 158, 152, 157, 163, 163, 162, 161, 161, 158, 161, 168, 160, 156, 153, 164, 154, 157, 161, 160, 165, 159, 157, 161, 159, 171, 158, 158, 158, 163, 157, 168, 158, 162, 159, 160, 161, 165, 165, 163, 160, 160, 165, 156, 159, 160, 163, 163, 166, 162, 161, 168, 158, 156, 160, 160, 161, 162, 159, 165, 162, 157, 165, 147, 156, 157, 163, 162, 161, 165, 146, 161, 165, 161, 161, 161, 154, 159, 155, 163, 156, 162, 163, 159, 183, 144, 152, 160, 151, 153, 165, 148, 164, 168, 156, 160, 166, 152, 152, 166, 160, 164, 157, 159, 164, 165, 165, 161, 166, 161, 162, 167, 134, 159, 173, 158, 158, 161, 150, 166, 161, 162, 167, 162, 161, 162, 165, 161, 157, 159, 163, 157, 160, 166, 161, 158, 158, 156, 161, 153, 158, 156, 155, 157, 206, 163, 158, 163, 163, 158, 160, 159, 158, 157, 160, 163, 164, 161, 158, 163, 164, 162, 159, 158, 159, 155, 172, 153, 160, 171, 164, 158, 160, 160, 160, 163, 162, 165, 154, 152, 157, 165, 157, 158, 155, 177, 162, 154, 157, 163, 152, 163, 163, 160, 169, 157, 158, 156, 152, 162, 157, 161, 147, 145, 149, 157, 157, 155, 156, 151, 153, 160, 170, 176, 154, 172, 163, 164, 163, 151, 167, 168, 167, 164, 160, 178, 164, 159, 159, 159, 160, 162, 159, 159, 159, 158, 171, 162, 149, 152, 158, 162, 160, 150, 152, 168, 159, 150, 160, 164, 150, 151, 173, 160, 162, 153, 162, 160, 157, 166, 158, 162, 161, 152, 157, 160, 151, 159, 148, 170, 160, 159, 160, 160, 161, 157, 163, 160, 152, 149, 161, 158, 154, 165, 159, 155, 151, 161, 158, 164, 154, 171, 160, 162, 154, 156, 145, 158, 161, 162, 157, 156, 160, 160, 149, 162, 168, 162, 163, 199, 149, 167, 164, 174, 161, 164, 155, 161, 159, 159, 159, 155, 152, 164, 160, 171, 168, 169, 155, 161, 153, 160, 159, 159, 165, 165, 156, 158, 156, 164, 150, 159, 161, 162, 168, 167, 155, 162, 157, 153, 165, 157, 156, 150, 151, 165, 159, 154, 161, 163, 141, 163, 153, 165, 167, 156, 152, 156, 162, 162, 160, 159, 160, 161, 163, 165, 160, 161, 155, 153, 159, 153, 159, 163, 159, 151, 165, 174, 160, 164, 157, 149, 159, 157, 163, 151, 144, 156, 151, 167, 164, 153, 158, 160, 158, 161, 159, 159, 147, 154, 165, 160, 171, 156, 158, 152, 160, 149, 161, 153, 157, 156, 164, 158, 155, 165, 156, 157, 166, 166, 158, 154, 152, 156, 154, 159, 162, 154, 153, 163, 160, 152, 160, 163, 166, 161, 160, 156, 157, 161, 165, 156, 147, 167, 165, 164, 168, 160, 158, 163, 151, 164, 157, 166, 160, 161, 161, 157, 158, 161, 149, 163, 152, 146, 160, 160, 162, 155, 158, 164, 161, 164, 166, 168, 153, 165, 161, 156, 155, 156, 157, 159, 163, 167, 159, 159, 168, 156, 160, 154, 152, 154, 162, 156, 147, 158, 164, 160, 159, 155, 167, 162, 157, 159, 155, 191, 154, 145, 163, 168, 157, 161, 155, 170, 161, 163, 157, 159, 163, 166, 144, 158, 165, 153, 168, 166, 157, 159, 152, 168, 151, 145, 157, 168, 167, 157, 171, 164, 152, 154, 162, 167, 166, 155, 158, 160, 163, 155, 154, 158, 157, 153, 152, 170, 161, 165, 159, 154, 167, 156, 155, 161, 162, 169, 148, 159, 159, 157, 162, 162, 157, 164, 158, 156, 156, 163, 150, 154, 161, 165, 155, 159, 162, 159, 156, 164, 154, 156, 158, 166, 170, 164, 158, 153, 169, 174, 143, 159, 158, 158, 163, 156, 163, 155, 156, 158, 161, 159, 156, 155, 168, 155, 153, 163, 167, 155, 156, 161, 162, 152, 168, 158, 155, 164, 165, 166, 170, 164, 173, 159, 156, 162, 161, 154, 165, 165, 170, 162, 155, 159, 163, 159, 160, 165, 160, 154, 149, 183, 162, 165, 151, 166, 163, 149, 161, 173, 161, 174, 165, 153, 165, 153, 158, 165, 165, 155, 156, 155, 164, 165, 162, 158, 166, 163, 159, 150, 162, 163, 164, 157, 165, 156, 165, 156, 163, 154, 159, 171, 142, 158, 160, 165, 161, 152, 156, 167, 157, 146, 160, 150, 161, 166, 159, 160, 152, 158, 170, 164, 162, 162, 153, 158, 163, 150, 151, 152, 156, 151, 160, 159, 152, 158, 158, 153, 155, 153, 161, 167, 153, 160, 155, 166, 153, 168, 168, 152, 159, 163, 147, 167, 151, 164, 152, 162, 161, 156, 153, 168, 152, 149, 158, 161, 160, 161, 164, 165, 157, 164, 169, 160, 163, 157, 155, 165, 152, 166, 165, 155, 149, 162, 164, 157, 161, 157, 153, 165, 152, 152, 154, 151, 152, 152, 157, 163, 148, 159, 159, 168, 154, 148, 157, 152, 157, 151, 157, 164, 154, 159, 159, 159, 158, 158, 166, 162, 151, 155, 158, 157, 157, 155, 157, 158, 153, 157, 153, 163, 155, 154, 162, 155, 165, 163, 163, 157, 154, 157, 157, 165, 156, 162, 161, 160, 162, 153, 159, 163, 158, 151, 160, 155, 162, 166, 146, 164, 150, 165, 157, 161, 162, 156, 160, 159, 163, 167, 151, 161, 161, 146, 168, 157, 158, 160, 154, 164, 150, 156, 161, 160, 157, 153, 158, 165, 162, 160, 166, 158, 165, 169, 160, 150, 149, 158, 162, 158, 158, 167, 165, 154, 162, 165, 164, 164, 165, 165, 155, 166, 158, 165, 156, 154, 165, 151, 158, 162, 154, 151, 161, 154, 171, 160, 157, 157, 164, 157, 159, 156, 150, 154, 158, 157, 156, 166, 155, 159, 156, 150, 159, 167, 159, 162, 150, 157, 167, 178, 160, 152, 146, 160, 160, 156, 172, 163, 160, 156, 153, 155, 155, 158, 179, 156, 156, 158, 160, 167, 156, 154, 168, 162, 157, 165, 149, 163, 161, 155, 158, 156, 154, 154, 159, 155, 168, 157, 164, 180, 156, 161, 156, 157, 178, 158, 160, 169, 164, 153, 168, 169, 165, 160, 160, 190, 156, 158, 163, 160, 153, 157, 156, 162, 157, 152, 156, 157, 165, 173, 166, 172, 166, 161, 160, 170, 154, 157, 151, 159, 156, 158, 159, 164, 152, 164, 165, 158, 162, 168, 158, 155, 154, 152, 142, 160, 158, 148, 162, 170, 161, 153, 158, 166, 159, 161, 161, 165, 171, 158, 158, 157, 169, 159, 155, 161, 160, 155, 151, 153, 157, 163, 157, 160, 158, 158, 155, 172, 158, 163, 153, 164, 159, 156, 167, 162, 158, 152, 161, 160, 170, 160, 159, 157, 159, 159, 152, 160, 168, 157, 157, 163, 163, 158, 179, 151, 155, 159, 154, 159, 153, 159, 171, 156, 162, 166, 155, 160, 165, 156, 159, 165, 162, 158, 158, 165, 159, 164, 156, 162, 171, 158, 157, 170, 146, 172, 153, 156, 156, 169, 162, 166, 161, 155, 163, 164, 161, 154, 153, 155, 155, 153, 156, 158, 165, 160, 159, 155, 162, 160, 163, 156, 168, 152, 152, 153, 162, 155, 157, 161, 155, 162, 159, 160, 163, 153, 160, 155, 162, 161, 156, 154, 168, 152, 152, 163, 159, 154, 158, 151, 165, 174, 162, 164, 151, 162, 162, 166, 157, 164, 161, 157, 151, 165, 161, 161, 163, 156, 152, 147, 156, 157, 161, 164, 155, 162, 156, 159, 170, 167, 155, 153, 171, 155, 163, 152, 158, 159, 147, 146, 167, 159, 161, 165, 159, 154, 152, 151, 156, 163, 173, 151, 162, 161, 160, 152, 156, 161, 158, 162, 154, 154, 160, 153, 169, 158, 158, 161, 140, 157, 157, 156, 162, 165, 153, 167, 151, 156, 158, 158, 159, 159, 157, 162, 159, 162, 155, 159, 155, 167, 164, 164, 151, 172, 158, 171, 163, 155, 160, 152, 164, 156, 155, 158, 157, 158, 158, 139, 158, 166, 161, 172, 163, 159, 157, 162, 166, 162, 155, 162, 161, 164, 161, 159, 164, 163, 168, 170, 163, 159, 158, 163, 169, 165, 163, 154, 161, 160, 144, 153, 159, 160, 163, 148, 162, 150, 162, 156, 161, 157, 161, 159, 163, 159, 157, 169, 156, 161, 157, 161, 161, 163, 155, 162, 159, 162, 166, 158, 158, 158, 146, 154, 155, 156, 163, 163, 161, 154, 159, 153, 158, 160, 159, 165, 166, 159, 172, 143, 156, 164, 172, 153, 165, 162, 161, 165, 162, 155, 164, 161, 161, 156, 168, 154, 157, 163, 168, 170, 151, 161, 159, 164, 170, 162, 155, 159, 169, 149, 153, 167, 171, 158, 161, 163, 152, 155, 163, 156, 162, 151, 160, 155, 158, 158, 161, 162, 162, 166, 163, 168, 150, 155, 154, 172, 158, 157, 168, 166, 160, 163, 164, 164, 171, 152, 161, 150, 154, 159, 173, 161, 165, 158, 153, 163, 161, 164, 163, 158, 160, 154, 161, 154, 166, 157, 154, 154, 153, 160, 152, 159, 177, 154, 154, 160, 158, 153, 158, 157, 163, 151, 162, 163, 163, 154, 178, 156, 164, 182, 157, 156, 167, 159, 154, 159, 158, 156, 153, 159, 158, 154, 161, 162, 163, 164, 159, 167, 161, 163, 162, 152, 152, 170, 148, 159, 162, 150, 136, 163, 165, 165, 159, 163, 155, 165, 163, 159, 158, 160, 159, 151, 160, 160, 151, 165, 158, 172, 153, 165, 146, 168, 162, 157, 161, 167, 165, 157, 168, 154, 159, 144, 156, 161, 155, 159, 158, 160, 164, 155, 163, 157, 157, 156, 162, 163, 157, 164, 159, 153, 160, 154, 169, 164, 160, 161, 162, 160, 165, 147, 159, 168, 161, 164, 161, 157, 165, 158, 154, 158, 159, 151, 163, 155, 161, 159, 152, 159, 172, 168, 166, 156, 146, 173, 166, 162, 156, 151, 163, 166, 156, 163, 142, 161, 180, 169, 162, 146, 163, 162, 161, 179, 163, 164, 160, 170, 167, 155, 174, 166, 156, 160, 163, 161, 152, 168, 163, 152, 167, 159, 160, 154, 140, 154, 156, 157, 158, 168, 161, 160, 165, 153, 167, 152, 168, 166, 156, 159, 153, 161, 169, 167, 154, 166, 161, 164, 165, 152, 162, 159, 167, 156, 175, 155, 152, 158, 167, 158, 156, 169, 162, 155, 152, 161, 159, 159, 153, 149, 161, 159, 161, 155, 163, 159, 153, 167, 163, 167, 160, 165, 149, 161, 160, 151, 175, 159, 165, 164, 161, 159, 162, 159, 169, 159, 151, 160, 157, 166, 166, 170, 160, 158, 168, 155, 161, 155, 175, 168, 150, 156, 163, 162, 158, 162, 163, 161, 153, 160, 162, 163, 163, 152, 163, 159, 160, 165, 161, 159, 160, 159, 161, 165, 160, 156, 160, 160, 158, 158, 158, 164, 163, 161, 159, 159, 162, 158, 160, 165, 164, 160, 166, 157, 161, 155, 165, 160, 162, 162, 158, 164, 162, 156, 163, 161, 160, 127, 158, 164, 160, 167, 155, 158, 158, 161, 162, 158, 160, 163, 159, 158, 157, 155, 164, 158, 162, 163, 158, 164, 162, 164, 160, 159, 161, 161, 159, 161, 163, 159, 159, 158, 159, 161, 158, 158, 162, 159, 161, 161, 196, 159, 162, 158, 160, 159, 154, 162, 181, 163, 161, 160, 159, 156, 155, 159, 159, 156, 161, 162, 158, 122, 159, 159, 163, 160, 166, 162, 160, 163, 163, 165, 156, 158, 161, 159, 160, 159, 161, 163, 164, 161, 187, 158, 159, 159, 162, 156, 156, 160, 162, 159, 160, 158, 160, 157, 157, 162, 163, 164, 159, 163, 154, 163, 164, 163, 157, 155, 157, 162, 160, 159, 163, 159, 162, 187, 162, 160, 162, 162, 162, 158, 163, 164, 160, 160, 159, 157, 157, 157, 157, 160, 165, 162, 163, 160, 161, 163, 156, 156, 160, 162, 160, 160, 158, 164, 164, 156, 162, 164, 160, 163, 160, 159, 164, 159, 158, 159, 158, 164, 166, 161, 165, 162, 159, 159, 209, 156, 164, 159, 158, 168, 163, 160, 157, 157, 162, 163, 161, 163, 159, 161, 162, 161, 156, 159, 161, 160, 160, 158, 160, 151, 158, 157, 159, 159, 160, 163, 158, 161, 163, 159, 155, 163, 163, 161, 161, 161, 159, 159, 159, 159, 159, 161, 162, 155, 159, 156, 159, 165, 159, 157, 160, 159, 163, 159, 158, 161, 162, 165, 161, 156, 163, 157, 162, 159, 163, 157, 163, 159, 158, 159, 154, 156, 159, 159, 156, 158, 164, 160, 159, 165, 160, 160, 161, 160, 161, 159, 163, 160, 160, 156, 154, 155, 152, 162, 161, 157, 159, 161, 161, 162, 161, 158, 160, 157, 161, 158, 158, 162, 158, 164, 159, 159, 156, 161, 160, 157, 161, 161, 158, 161, 158, 159, 159, 158, 160, 160, 155, 162, 162, 157, 162, 161, 160, 163, 161, 159, 162, 160, 159, 166, 158, 161, 160, 158, 162, 160, 168, 160, 159, 164, 159, 159, 156, 156, 156, 158, 162, 160, 161, 157, 157, 158, 157, 160, 166, 157, 154, 160, 160, 171, 159, 158, 159, 150, 159, 158, 161, 154, 159, 158, 162, 160, 161, 159, 165, 160, 162, 161, 157, 161, 154, 157, 166, 160, 155, 169, 163, 155, 135, 168, 163, 159, 164, 161, 161, 158, 161, 156, 162, 157, 158, 163, 160, 162, 161, 160, 159, 162, 160, 160, 162, 166, 161, 158, 163, 159, 157, 155, 164, 160, 159, 161, 158, 158, 164, 159, 165, 159, 163, 160, 157, 160, 161, 161, 155, 161, 160, 165, 156, 160, 161, 161, 158, 161, 156, 159, 163, 159, 155, 152, 160, 159, 160, 160, 158, 159, 156, 160, 161, 161, 156, 159, 161, 166, 160, 158, 159, 158, 165, 166, 158, 159, 159, 153, 160, 161, 162, 159, 162, 159, 164, 159, 160, 160, 161, 167, 164, 152, 153, 162, 166, 159, 166, 169, 154, 161, 159, 162, 158, 162, 156, 164, 156, 157, 164, 164, 159, 155, 155, 157, 162, 160, 167, 162, 159, 159, 159, 157, 162, 155, 162, 154, 159, 150, 158, 163, 175, 166, 156, 154, 159, 176, 169, 162, 153, 159, 157, 159, 161, 168, 158, 154, 158, 166, 159, 161, 164, 174, 165, 158, 156, 163, 149, 164, 166, 156, 156, 156, 170, 152, 162, 163, 158, 159, 166, 172, 147, 160, 165, 156, 161, 157, 157, 155, 158, 154, 160, 158, 165, 154, 160, 162, 160, 158, 157, 162, 157, 158, 154, 158, 163, 163, 163, 164, 149, 157, 153, 157, 158, 158, 156, 161, 163, 163, 156, 158, 162, 156, 161, 156, 163, 150, 156, 159, 164, 156, 156, 159, 159, 163, 158, 160, 153, 157, 157, 159, 158, 160, 159, 170, 163, 162, 167, 159, 161, 159, 167, 163, 156, 152, 155, 164, 157, 158, 158, 156, 165, 161, 157, 164, 160, 162, 172, 196, 165, 165, 157, 159, 157, 150, 149, 161, 152, 162, 163, 160, 165, 152, 165, 161, 160, 160, 156, 165, 159, 181, 159, 156, 155, 161, 154, 163, 156, 156, 164, 162, 158, 162, 161, 158, 174, 154, 155, 165, 161, 164, 161, 172, 175, 158, 160, 152, 156, 166, 157, 165, 157, 164, 168, 161, 159, 160, 168, 163, 156, 161, 161, 159, 157, 160, 158, 154, 157, 161, 161, 162, 164, 161, 156, 153, 161, 165, 156, 164, 157, 166, 159, 151, 161, 165, 158, 163, 155, 162, 158, 161, 154, 165, 168, 169, 152, 157, 156, 160, 153, 159, 161, 150, 159, 162, 154, 160, 163, 155, 160, 158, 155, 161, 161, 159, 160, 161, 159, 156, 164, 157, 184, 162, 158, 157, 153, 157, 157, 165, 161, 161, 158, 155, 160, 161, 153, 161, 149, 152, 159, 165, 155, 155, 162, 167, 160, 162, 158, 167, 159, 165, 160, 161, 162, 157, 162, 164, 166, 158, 156, 159, 157, 161, 155, 162, 156, 153, 164, 179, 164, 163, 160, 163, 159, 160, 157, 163, 168, 156, 165, 158, 160, 164, 157, 163, 167, 161, 155, 158, 161, 156, 152, 157, 168, 159, 163, 152, 154, 164, 167, 158, 163, 174, 162, 156, 163, 158, 158, 159, 159, 162, 164, 165, 159, 158, 154, 155, 157, 167, 162, 159, 155, 161, 160, 162, 176, 163, 158, 166, 161, 153, 160, 159, 164, 160, 159, 166, 163, 155, 163, 168, 166, 168, 158, 158, 163, 170, 163, 158, 164, 163, 164, 159, 155, 162, 154, 157, 160, 160, 163, 157, 162, 161, 155, 162, 163, 167, 160, 153, 160, 163, 159, 164, 161, 157, 156, 161, 160, 157, 159, 160, 152, 157, 156, 171, 160, 170, 145, 159, 166, 160, 156, 159, 156, 165, 152, 169, 160, 163, 164, 162, 158, 157, 164, 159, 165, 160, 159, 161, 165, 152, 158, 159, 162, 157, 155, 162, 165, 155, 162, 152, 146, 167, 156, 160, 163, 168, 159, 160, 161, 161, 176, 158, 158, 156, 167, 165, 162, 153, 159, 152, 157, 168, 158, 157, 157, 158, 165, 166, 159, 156, 158, 159, 165, 156, 155, 155, 159, 149, 155, 151, 164, 161, 157, 154, 157, 164, 159, 167, 166, 152, 155, 157, 170, 164, 159, 154, 167, 158, 171, 158, 154, 160, 158, 161, 160, 158, 157, 166, 168, 149, 157, 161, 160, 162, 157, 157, 166, 151, 160, 157, 160, 155, 159, 158, 150, 162, 162, 158, 141, 154, 162, 164, 159, 153, 177, 163, 166, 158, 156, 161, 165, 158, 159, 155, 148, 158, 160, 159, 155, 155, 154, 155, 153, 159, 152, 166, 159, 159, 155, 151, 142, 163, 155, 158, 159, 155, 160, 164, 158, 160, 150, 168, 158, 157, 163, 165, 158, 165, 154, 160, 161, 153, 158, 156, 159, 160, 162, 162, 156, 159, 184, 159, 167, 163, 159, 165, 154, 148, 154, 153, 153, 157, 153, 166, 165, 161, 157, 156, 166, 160, 159, 163, 156, 154, 159, 157, 159, 173, 172, 163, 148, 153, 160, 158, 162, 156, 158, 156, 165, 159, 166, 162, 158, 153, 158, 175, 159, 161, 163, 164, 165, 160, 166, 155, 160, 158, 140, 154, 154, 167, 161, 168, 157, 162, 141, 158, 166, 157, 146, 156, 181, 158, 170, 167, 150, 159, 157, 158, 154, 162, 161, 159, 158, 165, 163, 155, 151, 158, 165, 154, 158, 158, 152, 156, 166, 159, 160, 161, 163, 167, 160, 156, 159, 164, 159, 157, 152, 161, 164, 151, 166, 156, 158, 161, 159, 165, 169, 167, 161, 157, 152, 162, 165, 157, 150, 155, 160, 160, 164, 165, 167, 159, 166, 147, 164, 154, 153, 156, 160, 158, 165, 162, 164, 159, 160, 150, 163, 153, 155, 162, 166, 152, 159, 155, 165, 168, 158, 180, 164, 165, 164, 152, 165, 156, 155, 158, 155, 164, 144, 161, 158, 166, 174, 164, 161, 167, 150, 156, 166, 153, 164, 165, 160, 159, 159, 160, 162, 163, 160, 166, 166, 167, 155, 177, 160, 154, 160, 161, 154, 158, 155, 158, 155, 160, 156, 156, 150, 163, 156, 162, 158, 158, 170, 173, 155, 162, 154, 156, 162, 151, 169, 150, 158, 169, 170, 165, 156, 163, 153, 151, 156, 161, 153, 159, 163, 153, 158, 160, 158, 170, 154, 157, 160, 159, 159, 167, 161, 156, 163, 165, 156, 172, 158, 156, 151, 158, 153, 168, 150, 162, 157, 163, 155, 160, 156, 166, 162, 153, 161, 164, 153, 171, 157, 156, 158, 158, 160, 160, 157, 156, 159, 178, 166, 154, 158, 163, 162, 163, 151, 165, 163, 155, 160, 163, 160, 158, 159, 160, 160, 160, 155, 168, 159, 161, 173, 158, 159, 164, 170, 162, 154, 160, 169, 153, 162, 160, 151, 154, 148, 160, 158, 153, 165, 159, 161, 163, 158, 171, 163, 164, 163, 166, 169, 158, 153, 162, 158, 169, 155, 163, 160, 166, 152, 160, 161, 169, 155, 167, 153, 151, 163, 159, 146, 168, 156, 165, 151, 161, 158, 155, 164, 157, 183, 156, 153, 157, 155, 155, 156, 161, 157, 158, 171, 158, 160, 162, 167, 160, 163, 153, 159, 166, 153, 165, 152, 154, 163, 153, 150, 150, 157, 170, 169, 162, 146, 150, 163, 157, 162, 167, 164, 160, 159, 161, 157, 159, 153, 151, 164, 168, 159, 164, 171, 165, 163, 159, 160, 159, 165, 148, 161, 157, 155, 164, 159, 160, 163, 161, 165, 161, 153, 160, 157, 159, 152, 157, 153, 158, 150, 157, 152, 165, 155, 161, 153, 164, 162, 160, 152, 162, 155, 160, 166, 152, 169, 152, 162, 154, 158, 165, 159, 162, 167, 148, 158, 168, 166, 161, 152, 161, 155, 156, 159, 159, 162, 161, 159, 165, 160, 164, 157, 161, 163, 177, 162, 160, 161, 154, 156, 159, 165, 161, 164, 164, 165, 165, 160, 152, 154, 170, 171, 170, 159, 154, 158, 159, 159, 156, 150, 153, 162, 159, 153, 160, 150, 165, 164, 160, 164, 162, 166, 168, 159, 157, 155, 158, 169, 163, 157, 169, 171, 178, 167, 170, 159, 159, 157, 154, 159, 161, 159, 156, 156, 163, 161, 154, 159, 154, 155, 173, 155, 159, 155, 155, 155, 150, 164, 163, 154, 163, 155, 153, 161, 155, 162, 162, 162, 155, 152, 160, 152, 162, 162, 171, 147, 147, 155, 151, 158, 154, 170, 156, 150, 170, 174, 158, 155, 157, 157, 168, 156, 159, 153, 165, 166, 158, 163, 158, 164, 159, 154, 152, 153, 157, 159, 162, 158, 168, 157, 148, 172, 147, 157, 161, 159, 161, 158, 154, 152, 159, 162, 157, 143, 164, 158, 170, 167, 163, 154, 155, 169, 159, 160, 163, 164, 173, 158, 159, 169, 157, 156, 156, 162, 161, 149, 157, 175, 166, 165, 161, 165, 169, 162, 152, 161, 167, 155, 156, 167, 157, 155, 163, 158, 161, 156, 165, 156, 154, 166, 155, 162, 158, 151, 159, 166, 153, 161, 154, 163, 148, 157, 162, 148, 160, 149, 163, 164, 151, 163, 163, 174, 155, 157, 154, 165, 159, 160, 162, 149, 160, 158, 165, 158, 167, 164, 150, 150, 161, 165, 150, 167, 152, 153, 157, 157, 151, 158, 155, 157, 167, 170, 169, 161, 160, 156, 153, 167, 157, 153, 155, 157, 154, 160, 158, 171, 162, 166, 156, 160, 157, 156, 154, 152, 159, 161, 158, 151, 163, 169, 167, 156, 162, 166, 154, 158, 173, 169, 166, 161, 159, 167, 159, 155, 148, 166, 148, 165, 164, 155, 169, 158, 164, 166, 154, 158, 163, 163, 165, 162, 162, 161, 161, 155, 152, 168, 156, 155, 162, 152, 165, 159, 158, 162, 154, 166, 167, 157, 160, 161, 172, 160, 153, 164, 157, 159, 153, 156, 162, 167, 152, 149, 158, 165, 156, 158, 162, 151, 156, 168, 163, 169, 165, 155, 157, 175, 160, 163, 154, 154, 142, 168, 159, 159, 156, 149, 166, 158, 167, 157, 160, 166, 159, 171, 162, 156, 165, 171, 161, 146, 150, 167, 162, 139, 165, 156, 162, 160, 165, 157, 164, 158, 161, 162, 159, 156, 161, 152, 163, 164, 162, 163, 168, 161, 159, 171, 166, 158, 164, 164, 156, 155, 158, 158, 161, 168, 157, 166, 162, 155, 160, 158, 163, 158, 160, 166, 161, 155, 161, 163, 149, 161, 160, 154, 163, 158, 159, 158, 159, 161, 161, 162, 164, 160, 161, 164, 158, 161, 162, 159, 160, 162, 160, 169, 159, 166, 153, 163, 159, 162, 160, 165, 150, 160, 162, 165, 159, 160, 159, 164, 158, 153, 158, 150, 158, 158, 160, 160, 161, 160, 162, 151, 155, 165, 154, 181, 162, 163, 158, 161, 155, 154, 157, 164, 151, 167, 155, 157, 150, 157, 149, 164, 151, 158, 158, 159, 166, 160, 168, 160, 159, 157, 160, 162, 162, 160, 162, 153, 159, 162, 157, 161, 160, 161, 158, 157, 173, 159, 173, 160, 162, 163, 151, 156, 145, 164, 160, 158, 158, 162, 166, 157, 166, 163, 158, 161, 155, 170, 160, 157, 165, 156, 158, 159, 159, 158, 163, 148, 156, 162, 157, 156, 156, 163, 165, 164, 163, 160, 162, 152, 161, 160, 158, 157, 171, 149, 159, 163, 156, 160, 162, 162, 168, 155, 169, 168, 165, 160, 149, 155, 162, 163, 154, 162, 168, 161, 158, 160, 160, 156, 164, 157, 161, 169, 162, 159, 163, 161, 166, 157, 171, 161, 160, 164, 161, 169, 159, 161, 157, 157, 166, 154, 164, 163, 163, 159, 156, 168, 159, 162, 158, 160, 173, 167, 161, 163, 164, 159, 155, 164, 165, 160, 163, 156, 162, 156, 159, 174, 163, 155, 155, 154, 155, 156, 165, 160, 163, 143, 157, 160, 164, 155, 161, 165, 157, 153, 164, 156, 169, 159, 162, 162, 169, 153, 161, 156, 164, 160, 171, 157, 156, 159, 160, 163, 161, 161, 152, 176, 159, 167, 161, 159, 159, 155, 171, 163, 162, 156, 157, 161, 159, 160, 159, 169, 158, 158, 166, 164, 161, 160, 159, 168, 167, 162, 155, 156, 165, 164, 161, 150, 159, 161, 179, 154, 167, 163, 162, 158, 159, 165, 158, 158, 150, 165, 158, 170, 158, 161, 162, 164, 159, 158, 159, 157, 160, 157, 160, 159, 161, 159, 159, 162, 155, 162, 150, 160, 159, 163, 160, 162, 164, 159, 153, 165, 159, 168, 161, 160, 156, 153, 167, 159, 160, 160, 155, 155, 173, 165, 154, 167, 158, 157, 157, 162, 158, 159, 155, 159, 152, 164, 157, 167, 153, 161, 171, 156, 158, 163, 156, 161, 156, 164, 153, 157, 145, 155, 147, 157, 154, 153, 163, 163, 153, 155, 160, 159, 160, 163, 164, 159, 164, 159, 159, 162, 151, 164, 164, 159, 160, 159, 164, 158, 159, 162, 159, 155, 161, 164, 156, 163, 150, 159, 161, 162, 158, 164, 156, 162, 159, 162, 155, 157, 160, 156, 163, 160, 159, 163, 159, 159, 157, 157, 162, 162, 159, 163, 161, 175, 163, 164, 167, 162, 155, 160, 155, 158, 158, 162, 165, 155, 163, 160, 166, 155, 162, 157, 166, 161, 162, 153, 156, 146, 157, 157, 162, 156, 156, 163, 152, 159, 162, 172, 158, 157, 160, 161, 167, 162, 157, 156, 153, 174, 155, 164, 154, 160, 164, 161, 165, 163, 156, 168, 155, 156, 161, 164, 167, 162, 154, 154, 157, 165, 167, 159, 158, 163, 151, 175, 166, 163, 168, 164, 163, 161, 158, 165, 150, 162, 159, 149, 151, 156, 152, 155, 161, 162, 162, 165, 154, 160, 153, 164, 150, 179, 159, 157, 160, 169, 153, 155, 165, 152, 156, 167, 163, 157, 158, 159, 154, 160, 164, 169, 163, 158, 143, 155, 169, 151, 165, 161, 159, 158, 159, 158, 161, 167, 156, 159, 160, 162, 153, 158, 155, 171, 159, 157, 169, 172, 160, 148, 151, 143, 157, 159, 172, 156, 163, 163, 168, 161, 157, 153, 168, 162, 171, 149, 148, 155, 160, 162, 156, 153, 161, 161, 147, 163, 160, 158, 155, 170, 161, 160, 155, 160, 159, 169, 158, 155, 160, 159, 159, 163, 165, 163, 169, 159, 161, 153, 165, 160, 153, 159, 168, 150, 155, 160, 154, 150, 160, 169, 164, 157, 156, 161, 166, 157, 168, 146, 162, 166, 163, 153, 163, 161, 166, 165, 169, 152, 154, 168, 150, 166, 156, 158, 165, 156, 162, 154, 164, 171, 162, 156, 152, 159, 155, 163, 144, 158, 160, 156, 162, 161, 170, 160, 148, 170, 159, 163, 160, 162, 166, 166, 160, 167, 159, 162, 160, 155, 152, 180, 163, 163, 149, 157, 157, 164, 164, 158, 166, 166, 161, 157, 154, 169, 159, 177, 158, 163, 165, 158, 159, 158, 163, 160, 161, 155, 159, 158, 162, 167, 157, 169, 162, 166, 163, 158, 159, 167, 158, 158, 172, 158, 157, 157, 161, 164, 159, 160, 158, 150, 156, 154, 169, 156, 154, 158, 159, 154, 170, 160, 162, 157, 164, 150, 166, 161, 165, 150, 166, 166, 151, 163, 160, 166, 158, 158, 160, 167, 159, 161, 159, 157, 156, 152, 154, 154, 156, 159, 158, 159, 152, 168, 163, 172, 165, 153, 140, 156, 163, 143, 155, 160, 157, 160, 154, 167, 165, 167, 160, 159, 165, 165, 149, 166, 158, 165, 163, 161, 161, 155, 159, 163, 162, 153, 156, 164, 162, 164, 158, 164, 159, 158, 165, 163, 151, 160, 163, 152, 156, 163, 157, 157, 152, 159, 150, 152, 118, 165, 159, 162, 148, 162, 159, 163, 163, 168, 147, 158, 162, 168, 168, 160, 155, 159, 162, 159, 151, 161, 151, 158, 153, 166, 165, 157, 170, 173, 172, 161, 160, 161, 173, 161, 165, 169, 156, 157, 153, 155, 152, 160, 145, 153, 169, 166, 159, 158, 152, 155, 160, 156, 153, 160, 161, 176, 158, 157, 162, 160, 162, 166, 157, 168, 182, 168, 157, 153, 153, 153, 165, 173, 155, 148, 158, 159, 173, 160, 158, 160, 160, 156, 158, 167, 162, 159, 169, 158, 161, 152, 162, 163, 157, 164, 157, 162, 163, 143, 161, 154, 152, 159, 148, 156, 172, 152, 151, 151, 156, 161, 157, 155, 154, 155, 139, 158, 153, 162, 156, 166, 162, 169, 161, 166, 152, 155, 151, 157, 164, 162, 151, 162, 158, 161, 217, 164, 169, 140, 154, 160, 160, 161, 160, 149, 166, 154, 152, 163, 159, 166, 157, 163, 157, 164, 156, 168, 152, 167, 169, 162, 151, 112, 153, 155, 161, 161, 155, 158, 161, 157, 159, 163, 164, 160, 160, 158, 163, 174, 156, 162, 151, 155, 160, 160, 161, 162, 157, 163, 155, 164, 170, 153, 157, 140, 159, 189, 148, 161, 161, 154, 154, 158, 160, 164, 158, 156, 155, 161, 154, 160, 157, 153, 161, 160, 162, 152, 161, 154, 165, 160, 151, 159, 156, 159, 142, 150, 160, 156, 165, 156, 162, 161, 156, 165, 156, 168, 157, 165, 156, 156, 157, 160, 145, 155, 164, 159, 157, 160, 158, 165, 163, 153, 154, 159, 157, 170, 162, 162, 155, 155, 161, 158, 166, 156, 150, 160, 162, 161, 160, 176, 167, 158, 159, 161, 162, 162, 162, 160, 155, 162, 162, 157, 150, 169, 158, 157, 160, 161, 163, 166, 160, 163, 161, 162, 153, 169, 155, 157, 177, 158, 158, 158, 161, 158, 161, 160, 161, 158, 181, 157, 160, 167, 161, 165, 163, 156, 164, 157, 157, 157, 159, 156, 166, 159, 151, 164, 164, 152, 157, 161, 162, 162, 158, 170, 161, 157, 158, 162, 159, 168, 160, 160, 167, 160, 158, 157, 170, 158, 160, 163, 159, 158, 157, 162, 150, 159, 161, 160, 167, 165, 156, 161, 164, 162, 167, 162, 159, 169, 170, 148, 150, 156, 159, 158, 156, 149, 160, 170, 160, 164, 162, 168, 160, 161, 161, 157, 161, 158, 163, 161, 165, 162, 153, 161, 159, 163, 158, 156, 162, 161, 168, 151, 166, 155, 165, 161, 151, 162, 161, 163, 160, 160, 155, 162, 162, 164, 159, 152, 161, 160, 168, 159, 165, 160, 157, 157, 151, 162, 154, 160, 164, 149, 158, 160, 161, 163, 158, 148, 168, 160, 157, 159, 161, 160, 162, 154, 161, 158, 160, 163, 157, 160, 163, 163, 159, 162, 146, 160, 168, 167, 152, 158, 155, 155, 158, 159, 157, 167, 158, 153, 159, 153, 161, 154, 157, 160, 152, 150, 165, 163, 161, 157, 162, 158, 159, 181, 157, 159, 152, 157, 166, 159, 159, 165, 158, 160, 150, 151, 160, 158, 159, 156, 191, 164, 163, 152, 168, 156, 151, 163, 159, 156, 160, 160, 161, 160, 158, 161, 165, 152, 160, 164, 158, 159, 156, 166, 144, 149, 168, 162, 158, 155, 139, 159, 160, 162, 157, 161, 154, 158, 160, 156, 171, 163, 162, 162, 160, 165, 164, 159, 154, 157, 158, 157, 153, 161, 163, 161, 163, 159, 161, 160, 158, 158, 159, 159, 160, 175, 160, 162, 168, 146, 165, 159, 148, 154, 163, 155, 153, 158, 161, 159, 160, 157, 159, 161, 161, 161, 160, 159, 160, 166, 159, 158, 155, 147, 157, 159, 164, 165, 165, 162, 164, 160, 164, 156, 162, 166, 157, 166, 163, 159, 164, 159, 150, 157, 156, 158, 155, 153, 161, 150, 161, 153, 161, 162, 161, 149, 157, 166, 156, 161, 159, 161, 153, 154, 154, 161, 168, 160, 152, 162, 157, 141, 158, 170, 156, 160, 162, 155, 156, 158, 160, 160, 160, 156, 166, 161, 169, 159, 160, 161, 162, 159, 159, 153, 159, 160, 159, 159, 156, 170, 160, 157, 160, 164, 135, 165, 174, 170, 150, 159, 152, 150, 162, 165, 157, 161, 168, 155, 149, 162, 159, 175, 168, 146, 153, 157, 143, 176, 164, 161, 155, 160, 159, 168, 160, 151, 161, 159, 161, 160, 159, 167, 157, 156, 169, 161, 163, 167, 158, 162, 154, 162, 158, 159, 161, 160, 159, 162, 161, 158, 172, 161, 161, 160, 154, 157, 161, 164, 159, 160, 169, 161, 162, 156, 161, 140, 159, 161, 153, 164, 161, 150, 152, 160, 161, 161, 157, 144, 160, 162, 156, 161, 157, 146, 161, 158, 161, 163, 165, 152, 159, 157, 146, 152, 155, 157, 159, 158, 156, 137, 163, 157, 155, 155, 162, 169, 158, 151, 165, 158, 160, 151, 159, 172, 161, 149, 152, 157, 159, 163, 164, 151, 166, 163, 163, 166, 158, 158, 147, 158, 157, 156, 156, 163, 163, 151, 161, 154, 146, 160, 159, 202, 158, 161, 166, 164, 163, 168, 168, 161, 161, 156, 164, 163, 159, 156, 164, 146, 157, 158, 158, 157, 159, 178, 159, 156, 171, 153, 158, 160, 163, 162, 154, 158, 170, 160, 160, 165, 163, 159, 159, 157, 170, 156, 172, 160, 163, 164, 152, 154, 126, 164, 159, 163, 148, 160, 163, 163, 178, 161, 152, 158, 157, 162, 152, 154, 159, 148, 161, 153, 160, 169, 162, 161, 160, 169, 154, 159, 167, 148, 158, 159, 159, 154, 159, 161, 160, 180, 170, 160, 155, 145, 168, 154, 162, 157, 178, 154, 163, 157, 160, 161, 161, 170, 168, 167, 163, 157, 158, 164, 155, 162, 160, 161, 156, 157, 154, 168, 162, 161, 163, 166, 175, 159, 159, 166, 163, 163, 160, 160, 153, 157, 158, 138, 157, 153, 160, 160, 143, 161, 174, 161, 166, 175, 162, 161, 144, 164, 162, 157, 152, 159, 170, 163, 155, 158, 158, 163, 157, 177, 164, 154, 179, 161, 163, 167, 162, 162, 155, 162, 158, 162, 165, 165, 156, 158, 165, 160, 146, 155, 171, 166, 162, 164, 147, 160, 149, 153, 157, 156, 162, 160, 151, 180, 162, 169, 157, 163, 160, 158, 158, 145, 161, 160, 169, 145, 156, 148, 148, 167, 157, 151, 160, 158, 158, 159, 150, 156, 154, 150, 161, 165, 155, 161, 158, 166, 149, 165, 160, 157, 157, 167, 163, 164, 156, 161, 162, 147, 166, 153, 155, 157, 163, 161, 162, 153, 154, 164, 161, 155, 149, 160, 160, 143, 163, 155, 160, 155, 165, 166, 165, 147, 164, 156, 156, 154, 156, 158, 154, 162, 153, 166, 164, 158, 156, 161, 156, 161, 163, 164, 161, 163, 165, 169, 157, 165, 170, 160, 163, 158, 145, 174, 153, 168, 169, 163, 154, 160, 164, 161, 159, 158, 160, 161, 118, 159, 162, 159, 161, 162, 164, 160, 156, 152, 164, 164, 154, 161, 162, 153, 145, 162, 167, 160, 158, 160, 161, 161, 164, 148, 148, 170, 153, 166, 156, 161, 159, 154, 163, 163, 157, 156, 152, 166, 166, 159, 161, 157, 160, 157, 164, 169, 161, 163, 168, 163, 154, 158, 144, 158, 162, 159, 160, 156, 161, 157, 162, 163, 163, 160, 153, 152, 158, 152, 159, 160, 162, 157, 161, 156, 162, 163, 151, 154, 166, 161, 152, 159, 161, 160, 163, 150, 155, 155, 158, 186, 155, 153, 149, 168, 162, 167, 161, 158, 162, 158, 180, 166, 161, 157, 152, 166, 158, 156, 154, 163, 162, 162, 161, 162, 168, 159, 151, 154, 163, 164, 153, 164, 154, 161, 157, 160, 161, 164, 157, 162, 161, 159, 166, 154, 160, 160, 158, 159, 162, 161, 165, 155, 164, 158, 155, 148, 166, 153, 154, 167, 163, 159, 165, 159, 158, 161, 161, 160, 160, 162, 163, 163, 159, 166, 164, 149, 164, 160, 164, 154, 155, 160, 160, 156, 162, 160, 159, 154, 159, 159, 156, 159, 154, 162, 154, 163, 160, 173, 153, 162, 154, 159, 176, 159, 162, 161, 144, 157, 160, 157, 161, 150, 168, 160, 143, 162, 162, 161, 162, 158, 158, 158, 160, 162, 148, 162, 164, 157, 164, 162, 155, 170, 163, 160, 178, 166, 163, 157, 159, 161, 163, 167, 156, 160, 166, 157, 166, 155, 162, 156, 159, 165, 170, 163, 163, 162, 163, 159, 160, 163, 156, 158, 161, 170, 147, 160, 164, 161, 164, 161, 162, 155, 159, 161, 164, 154, 159, 173, 165, 164, 159, 141, 159, 162, 169, 157, 164, 147, 153, 156, 158, 170, 164, 158, 161, 161, 157, 156, 163, 161, 160, 155, 152, 148, 163, 149, 170, 146, 159, 155, 161, 159, 162, 159, 158, 162, 160, 166, 159, 152, 160, 158, 163, 159, 170, 161, 156, 162, 158, 158, 165, 153, 159, 163, 161, 161, 171, 154, 167, 147, 165, 150, 157, 154, 152, 159, 153, 153, 160, 162, 157, 160, 159, 163, 158, 160, 163, 155, 156, 162, 161, 165, 179, 142, 163, 164, 162, 170, 157, 163, 162, 156, 160, 155, 170, 162, 162, 148, 163, 156, 155, 163, 157, 158, 167, 156, 157, 156, 158, 156, 151, 159, 159, 161, 162, 164, 161, 158, 160, 157, 159, 166, 162, 163, 156, 166, 154, 152, 142, 155, 178, 153, 163, 154, 159, 157, 154, 171, 158, 162, 165, 159, 160, 144, 160, 165, 165, 158, 156, 168, 155, 149, 174, 151, 159, 150, 153, 157, 157, 162, 163, 161, 148, 157, 156, 151, 160, 157, 160, 160, 152, 164, 162, 171, 155, 170, 158, 165, 154, 158, 159, 164, 160, 166, 155, 159, 150, 154, 160, 163, 162, 163, 155, 153, 154, 158, 164, 160, 156, 156, 151, 164, 157, 166, 160, 153, 147, 160, 161, 163, 164, 161, 159, 158, 154, 159, 162, 158, 155, 159, 141, 155, 157, 163, 149, 159, 163, 162, 172, 165, 160, 165, 163, 163, 158, 160, 159, 180, 160, 162, 156, 163, 162, 161, 161, 162, 165, 158, 158, 156, 155, 171, 163, 142, 161, 160, 147, 161, 158, 171, 158, 163, 152, 163, 152, 164, 166, 166, 158, 147, 153, 163, 153, 169, 157, 159, 163, 159, 162, 162, 164, 159, 159, 161, 158, 156, 155, 165, 160, 147, 159, 155, 158, 155, 150, 162, 161, 165, 161, 159, 155, 156, 149, 170, 152, 148, 163, 157, 156, 162, 158, 169, 167, 162, 150, 160, 168, 157, 163, 157, 156, 176, 163, 162, 162, 159, 163, 164, 159, 156, 150, 159, 166, 166, 166, 159, 161, 153, 163, 151, 159, 151, 164, 158, 161, 165, 170, 165, 165, 158, 159, 157, 171, 161, 158, 161, 164, 152, 168, 163, 158, 159, 160, 162, 155, 166, 164, 152, 160, 148, 159, 164, 157, 162, 167, 166, 150, 166, 158, 160, 162, 155, 168, 158, 157, 157, 153, 162, 175, 159, 160, 154, 157, 161, 167, 170, 155, 168, 155, 156, 167, 159, 161, 164, 156, 163, 153, 163, 159, 148, 150, 160, 154, 153, 149, 163, 158, 161, 168, 161, 162, 163, 162, 163, 170, 155, 167, 157, 160, 165, 175, 166, 160, 157, 166, 165, 159, 157, 168, 169, 164, 155, 157, 162, 162, 161, 167, 156, 168, 162, 153, 159, 164, 152, 163, 156, 171, 158, 172, 161, 163, 170, 159, 158, 168, 159, 158, 148, 173, 165, 162, 171, 171, 162, 169, 159, 153, 156, 170, 159, 157, 162, 159, 171, 166, 166, 163, 154, 162, 177, 171, 161, 158, 156, 162, 151, 168, 160, 162, 157, 150, 156, 148, 170, 169, 170, 166, 155, 162, 160, 165, 167, 167, 169, 156, 165, 164, 160, 163, 162, 143, 165, 146, 163, 158, 158, 161, 153, 157, 161, 159, 155, 159, 164, 160, 169, 144, 156, 163, 163, 166, 160, 172, 163, 169, 157, 157, 159, 154, 165, 164, 174, 164, 166, 161, 162, 160, 159, 165, 147, 155, 165, 164, 161, 160, 164, 170, 148, 153, 151, 166, 150, 149, 159, 163, 159, 162, 168, 169, 166, 157, 154, 154, 152, 163, 158, 162, 162, 162, 155, 157, 160, 163, 171, 165, 173, 162, 152, 165, 143, 158, 156, 143, 163, 167, 153, 158, 159, 157, 161, 159, 166, 160, 166, 155, 165, 163, 163, 159, 154, 166, 159, 157, 153, 162, 166, 166, 162, 161, 161, 159, 161, 162, 158, 160, 164, 168, 157, 144, 175, 162, 164, 168, 161, 168, 152, 162, 167, 157, 160, 154, 162, 169, 154, 153, 165, 158, 160, 159, 151, 163, 145, 162, 140, 161, 163, 171, 156, 161, 158, 162, 162, 168, 159, 157, 162, 168, 168, 161, 138, 162, 152, 161, 158, 164, 155, 159, 171, 166, 165, 162, 153, 155, 162, 159, 169, 161, 158, 164, 170, 166, 170, 156, 154, 156, 162, 157, 165, 163, 162, 179, 157, 163, 157, 157, 157, 162, 164, 171, 153, 160, 160, 167, 167, 146, 155, 157, 163, 153, 156, 159, 161, 172, 160, 157, 164, 161, 157, 159, 153, 159, 159, 167, 161, 158, 159, 170, 160, 165, 153, 163, 141, 163, 151, 157, 163, 164, 173, 150, 157, 152, 163, 157, 152, 163, 173, 148, 161, 160, 163, 157, 163, 164, 153, 155, 154, 166, 148, 160, 157, 160, 164, 161, 163, 162, 164, 172, 156, 154, 155, 160, 165, 162, 154, 162, 155, 163, 142, 157, 163, 156, 156, 160, 158, 154, 163, 167, 163, 156, 168, 171, 160, 165, 155, 164, 163, 160, 155, 162, 162, 155, 164, 158, 156, 161, 161, 157, 160, 163, 177, 162, 160, 159, 160, 156, 157, 161, 155, 160, 159, 160, 161, 161, 158, 160, 159, 159, 164, 159, 159, 159, 151, 161, 160, 158, 157, 160, 162, 157, 165, 160, 155, 162, 158, 165, 155, 159, 157, 165, 160, 154, 160, 159, 160, 161, 159, 159, 164, 158, 167, 156, 158, 160, 161, 161, 166, 164, 160, 148, 164, 161, 162, 158, 161, 158, 160, 159, 159, 162, 159, 160, 164, 156, 159, 162, 162, 160, 159, 158, 156, 158, 162, 161, 155, 158, 160, 159, 162, 160, 152, 155, 158, 155, 160, 153, 154, 152, 157, 165, 160, 155, 161, 163, 160, 161, 162, 158, 158, 152, 167, 162, 159, 163, 155, 166, 158, 166, 155, 159, 157, 155, 162, 158, 155, 159, 163, 158, 162, 157, 157, 161, 162, 156, 157, 160, 153, 163, 159, 162, 159, 164, 160, 157, 159, 159, 158, 157, 161, 162, 157, 164, 166, 157, 161, 160, 158, 159, 160, 161, 161, 160, 160, 160, 164, 155, 160, 156, 161, 158, 156, 154, 155, 160, 163, 166, 160, 161, 153, 154, 160, 158, 167, 161, 163, 154, 162, 158, 160, 161, 156, 160, 158, 157, 167, 162, 155, 158, 165, 160, 157, 159, 158, 161, 157, 152, 161, 160, 157, 162, 158, 157, 160, 162, 165, 156, 159, 160, 158, 162, 160, 159, 158, 156, 154, 160, 163, 153, 159, 161, 161, 159, 163, 159, 153, 156, 160, 161, 159, 161, 163, 159, 155, 157, 160, 166, 158, 162, 157, 158, 157, 154, 161, 150, 160, 154, 160, 158, 159, 157, 164, 161, 158, 165, 159, 162, 158, 157, 162, 161, 162, 159, 158, 162, 154, 160, 161, 156, 161, 157, 155, 161, 154, 160, 163, 159, 157, 160, 160, 167, 161, 156, 157, 163, 158, 161, 153, 156, 159, 156, 167, 149, 156, 157, 163, 163, 159, 158, 160, 157, 158, 161, 160, 159, 161, 161, 159, 159, 158, 158, 158, 155, 163, 157, 159, 163, 160, 162, 156, 156, 161, 163, 161, 161, 163, 160, 161, 156, 158, 160, 159, 158, 160, 155, 160, 159, 166, 160, 161, 166, 155, 160, 159, 156, 160, 161, 162, 158, 163, 161, 161, 171, 156, 160, 160, 160, 161, 158, 161, 160, 164, 160, 155, 155, 152, 158, 156, 155, 159, 155, 163, 161, 158, 159, 159, 163, 162, 159, 162, 160, 162, 161, 152, 169, 158, 155, 156, 158, 161, 156, 161, 161, 158, 158, 158, 159, 157, 161, 163, 160, 150, 165, 160, 152, 159, 161, 156, 161, 161, 158, 159, 152, 158, 164, 163, 162, 162, 152, 159, 160, 160, 162, 162, 163, 160, 160, 160, 165, 162, 160, 154, 156, 161, 164, 161, 161, 160, 156, 155, 157, 159, 161, 158, 160, 161, 162, 164, 155, 155, 161, 162, 161, 160, 163, 159, 157, 159, 163, 161, 159, 149, 159, 160, 159, 160, 158, 154, 161, 158, 158, 161, 151, 163, 162, 160, 164, 158, 159, 168, 164, 157, 162, 163, 162, 158, 154, 157, 161, 156, 160, 163, 163, 159, 160, 154, 159, 159, 160, 157, 159, 166, 157, 156, 153, 150, 161, 152, 161, 159, 159, 160, 164, 163, 163, 162, 172, 161, 162, 161, 161, 162, 162, 161, 153, 155, 159, 161, 162, 162, 160, 159, 165, 167, 163, 158, 159, 161, 160, 158, 160, 161, 160, 162, 161, 154, 165, 165, 162, 162, 155, 162, 161, 171, 162, 161, 162, 162, 154, 163, 156, 158, 164, 159, 155, 162, 161, 166, 161, 162, 164, 155, 156, 157, 158, 155, 159, 162, 164, 167, 161, 158, 161, 158, 165, 168, 163, 166, 172, 157, 159, 164, 158, 159, 160, 159, 162, 161, 164, 156, 159, 152, 162, 158, 159, 159, 153, 158, 159, 160, 164, 168, 165, 164, 157, 159, 157, 161, 160, 160, 161, 156, 164, 153, 154, 155, 161, 153, 154, 165, 161, 164, 165, 164, 158, 160, 162, 154, 160, 159, 161, 157, 159, 157, 162, 160, 162, 156, 155, 162, 156, 157, 159, 158, 165, 154, 163, 157, 162, 164, 158, 163, 165, 159, 167, 158, 167, 160, 158, 164, 144, 172, 152, 155, 160, 164, 157, 162, 163, 158, 161, 163, 157, 155, 165, 162, 160, 161, 161, 156, 161, 165, 161, 155, 154, 153, 159, 163, 159, 154, 158, 161, 159, 170, 161, 163, 165, 160, 160, 160, 164, 160, 160, 168, 156, 159, 169, 165, 161, 160, 152, 164, 159, 147, 168, 162, 160, 156, 160, 160, 159, 160, 162, 160, 166, 163, 159, 157, 160, 161, 159, 160, 163, 156, 163, 153, 162, 162, 159, 158, 160, 162, 160, 160, 160, 149, 162, 157, 163, 158, 161, 159, 159, 159, 164, 163, 165, 164, 162, 162, 158, 160, 160, 164, 161, 161, 157, 165, 158, 155, 160, 154, 159, 157, 161, 159, 157, 164, 158, 161, 162, 160, 158, 157, 159, 158, 161, 164, 158, 156, 164, 156, 160, 159, 160, 167, 162, 159, 165, 165, 161, 159, 154, 159, 153, 160, 162, 152, 163, 159, 158, 154, 155, 161, 158, 157, 156, 161, 164, 160, 161, 156, 155, 152, 161, 159, 161, 161, 158, 159, 160, 162, 164, 159, 161, 160, 161, 166, 155, 159, 163, 160, 161, 163, 148, 163, 160, 162, 158, 154, 165, 163, 157, 158, 156, 156, 164, 160, 163, 160, 162, 161, 157, 163, 158, 159, 155, 154, 157, 162, 163, 164, 153, 167, 155, 163, 158, 166, 155, 158, 160, 160, 150, 166, 162, 161, 156, 154, 158, 160, 157, 160, 158, 160, 166, 162, 160, 160, 157, 161, 166, 160, 160, 156, 157, 161, 152, 162, 161, 160, 153, 154, 163, 162, 163, 161, 165, 159, 159, 158, 157, 155, 159, 160, 162, 168, 162, 159, 162, 151, 158, 164, 156, 151, 158, 160, 160, 167, 157, 159, 157, 159, 156, 156, 163, 162, 160, 160, 160, 156, 157, 163, 156, 158, 161, 158, 156, 161, 157, 163, 159, 161, 157, 156, 157, 161, 169, 160, 159, 158, 159, 164, 161, 161, 153, 156, 162, 146, 163, 168, 160, 165, 161, 162, 159, 163, 159, 163, 156, 163, 163, 157, 151, 147, 160, 165, 160, 149, 151, 162, 162, 164, 155, 162, 163, 163, 150, 159, 152, 163, 155, 166, 163, 165, 162, 155, 161, 158, 147, 162, 159, 160, 170, 165, 163, 162, 152, 165, 163, 157, 155, 154, 169, 150, 164, 152, 165, 164, 159, 137, 165, 162, 165, 160, 156, 167, 155, 158, 155, 150, 165, 159, 162, 170, 158, 158, 164, 158, 159, 162, 155, 158, 166, 161, 158, 164, 147, 158, 164, 165, 151, 158, 155, 159, 153, 158, 155, 162, 156, 165, 146, 153, 160, 141, 157, 157, 162, 163, 162, 179, 163, 161, 164, 168, 152, 152, 160, 196, 161, 157, 150, 153, 165, 157, 168, 156, 162, 159, 162, 169, 170, 166, 161, 153, 163, 164, 159, 167, 161, 151, 153, 155, 165, 164, 160, 155, 152, 154, 169, 153, 152, 160, 168, 154, 156, 161, 158, 155, 149, 163, 163, 164, 160, 165, 156, 145, 153, 155, 166, 158, 166, 164, 159, 163, 158, 162, 161, 150, 154, 158, 159, 154, 157, 164, 160, 162, 161, 169, 167, 154, 155, 147, 157, 160, 157, 158, 170, 164, 161, 172, 149, 150, 159, 157, 162, 158, 158, 163, 164, 168, 155, 155, 165, 160, 159, 162, 156, 157, 158, 149, 156, 160, 170, 158, 179, 160, 157, 150, 155, 153, 166, 161, 159, 163, 151, 150, 151, 160, 160, 174, 160, 162, 161, 159, 152, 171, 156, 163, 162, 158, 161, 159, 156, 158, 165, 158, 162, 156, 160, 168, 161, 166, 160, 168, 161, 179, 161, 156, 152, 160, 153, 154, 154, 148, 164, 157, 154, 151, 165, 164, 163, 169, 154, 158, 156, 155, 160, 153, 149, 151, 166, 155, 170, 160, 158, 159, 162, 163, 157, 160, 168, 159, 162, 163, 161, 147, 155, 151, 160, 163, 155, 157, 166, 155, 166, 159, 153, 152, 166, 152, 168, 151, 168, 168, 158, 162, 159, 172, 159, 165, 156, 160, 160, 160, 158, 147, 157, 166, 179, 163, 158, 161, 166, 152, 160, 160, 152, 176, 160, 165, 163, 162, 159, 147, 156, 155, 161, 163, 158, 161, 164, 159, 151, 157, 167, 153, 158, 164, 165, 157, 178, 170, 164, 160, 153, 159, 156, 157, 160, 158, 164, 171, 157, 152, 153, 157, 174, 154, 158, 163, 162, 211, 162, 150, 169, 159, 160, 165, 165, 152, 153, 153, 152, 140, 149, 163, 152, 160, 153, 156, 164, 161, 162, 161, 160, 159, 152, 155, 155, 162, 158, 158, 158, 166, 167, 160, 161, 152, 169, 179, 162, 170, 163, 169, 149, 153, 164, 147, 148, 161, 167, 161, 163, 151, 157, 162, 159, 163, 154, 159, 165, 144, 156, 164, 163, 166, 166, 157, 163, 170, 159, 155, 158, 166, 153, 159, 163, 167, 152, 164, 166, 143, 175, 160, 148, 151, 150, 161, 152, 161, 170, 160, 156, 156, 167, 163, 162, 161, 159, 157, 171, 147, 169, 166, 161, 158, 157, 157, 162, 165, 158, 167, 163, 167, 157, 157, 172, 167, 151, 155, 152, 168, 152, 157, 154, 161, 160, 157, 164, 160, 149, 157, 160, 160, 157, 160, 161, 161, 160, 157, 158, 154, 151, 161, 159, 159, 159, 159, 157, 158, 160, 172, 166, 157, 154, 162, 159, 163, 164, 164, 163, 159, 161, 165, 153, 167, 164, 171, 158, 158, 162, 163, 155, 163, 160, 156, 158, 157, 158, 160, 166, 151, 165, 162, 161, 155, 153, 162, 157, 167, 158, 162, 158, 161, 158, 163, 157, 162, 163, 154, 163, 163, 153, 164, 161, 164, 159, 161, 161, 155, 165, 159, 162, 166, 163, 154, 152, 147, 159, 160, 162, 164, 165, 165, 161, 162, 160, 164, 161, 158, 162, 170, 163, 155, 162, 163, 156, 159, 159, 172, 167, 162, 163, 162, 153, 160, 166, 157, 157, 163, 158, 157, 162, 161, 159, 160, 160, 161, 160, 164, 162, 157, 162, 161, 161, 157, 162, 161, 158, 158, 163, 159, 160, 155, 158, 161, 162, 161, 162, 160, 165, 161, 156, 159, 157, 165, 160, 158, 151, 167, 162, 160, 154, 161, 163, 158, 174, 164, 159, 163, 161, 161, 162, 166, 152, 161, 160, 164, 166, 160, 163, 161, 161, 171, 160, 157, 155, 155, 165, 158, 165, 163, 168, 161, 161, 160, 163, 154, 160, 163, 163, 162, 168, 160, 164, 165, 161, 159, 151, 160, 160, 153, 164, 163, 162, 160, 165, 155, 161, 154, 157, 155, 162, 159, 165, 159, 162, 161, 163, 161, 166, 167, 155, 155, 162, 159, 160, 161, 160, 153, 163, 166, 157, 164, 165, 152, 164, 155, 158, 169, 157, 161, 160, 160, 160, 157, 161, 164, 162, 150, 167, 161, 156, 155, 162, 149, 167, 162, 164, 158, 176, 155, 164, 158, 160, 161, 154, 164, 156, 159, 157, 159, 153, 161, 164, 162, 162, 161, 163, 159, 162, 148, 162, 164, 155, 162, 162, 165, 154, 165, 161, 157, 153, 160, 158, 161, 167, 164, 160, 163, 159, 165, 161, 169, 157, 163, 159, 157, 157, 165, 150, 153, 161, 167, 158, 166, 161, 168, 164, 152, 159, 160, 162, 160, 161, 157, 164, 162, 166, 162, 157, 159, 159, 157, 152, 157, 155, 162, 166, 162, 164, 156, 158, 164, 159, 157, 158, 168, 163, 166, 158, 157, 155, 158, 155, 149, 161, 163, 158, 161, 164, 154, 163, 162, 158, 159, 163, 155, 153, 147, 165, 164, 161, 168, 161, 164, 165, 152, 164, 169, 172, 156, 160, 163, 161, 164, 168, 160, 165, 161, 166, 159, 160, 168, 161, 150, 159, 158, 159, 160, 160, 157, 163, 161, 160, 159, 167, 162, 160, 155, 162, 164, 154, 154, 159, 159, 150, 161, 173, 155, 154, 154, 157, 160, 165, 154, 153, 158, 152, 154, 160, 160, 162, 157, 155, 162, 166, 160, 164, 162, 162, 156, 158, 161, 164, 154, 161, 167, 160, 156, 166, 152, 163, 158, 154, 155, 161, 158, 157, 159, 160, 159, 152, 157, 157, 169, 163, 169, 159, 165, 163, 163, 160, 157, 157, 156, 160, 165, 162, 160, 163, 160, 156, 165, 158, 166, 154, 173, 159, 156, 159, 158, 164, 154, 159, 156, 159, 157, 160, 164, 157, 157, 158, 160, 158, 167, 151, 162, 157, 155, 162, 153, 162, 159, 160, 160, 167, 151, 162, 166, 158, 164, 144, 161, 166, 157, 177, 154, 148, 167, 158, 163, 158, 159, 159, 159, 163, 165, 149, 160, 161, 159, 162, 159, 160, 156, 157, 156, 148, 168, 163, 169, 151, 158, 166, 157, 145, 155, 161, 162, 151, 159, 158, 167, 157, 165, 165, 168, 165, 155, 157, 160, 164, 173, 159, 154, 158, 154, 157, 159, 159, 160, 154, 155, 164, 161, 160, 149, 162, 180, 163, 162, 161, 167, 160, 157, 141, 156, 152, 159, 164, 139, 150, 165, 161, 160, 163, 151, 160, 154, 148, 164, 164, 160, 158, 154, 157, 166, 162, 173, 163, 156, 160, 146, 163, 154, 156, 162, 161, 163, 168, 158, 157, 163, 162, 153, 166, 161, 157, 161, 168, 159, 154, 157, 159, 140, 157, 155, 162, 170, 165, 138, 160, 151, 160, 160, 165, 155, 161, 165, 162, 161, 162, 153, 164, 164, 163, 160, 166, 163, 157, 165, 160, 153, 159, 170, 166, 158, 156, 153, 162, 163, 167, 160, 172, 163, 155, 149, 166, 161, 146, 172, 154, 157, 159, 161, 160, 166, 156, 159, 164, 153, 163, 159, 161, 165, 160, 158, 143, 163, 156, 159, 159, 152, 156, 159, 160, 172, 161, 159, 151, 154, 164, 163, 161, 156, 153, 174, 154, 148, 159, 160, 179, 157, 161, 164, 158, 156, 158, 156, 152, 161, 160, 164, 160, 161, 152, 161, 161, 165, 164, 173, 165, 170, 161, 153, 159, 154, 165, 162, 149, 161, 165, 155, 163, 149, 164, 160, 170, 157, 157, 163, 163, 157, 156, 160, 165, 152, 167, 155, 155, 152, 159, 161, 153, 165, 169, 178, 164, 158, 153, 164, 166, 149, 159, 165, 162, 166, 168, 163, 159, 162, 159, 159, 158, 161, 158, 162, 163, 163, 153, 158, 159, 157, 156, 163, 154, 176, 158, 161, 156, 158, 156, 150, 164, 152, 154, 162, 154, 157, 139, 162, 173, 161, 168, 159, 166, 161, 163, 159, 163, 152, 155, 147, 162, 155, 166, 154, 158, 160, 166, 173, 173, 163, 162, 172, 164, 158, 165, 158, 160, 165, 163, 166, 158, 160, 161, 158, 157, 153, 164, 167, 170, 148, 154, 169, 178, 163, 163, 160, 154, 167, 158, 162, 161, 168, 163, 155, 154, 157, 160, 156, 162, 161, 182, 160, 158, 158, 162, 157, 160, 163, 164, 170, 165, 156, 160, 158, 156, 146, 163, 159, 160, 163, 159, 158, 149, 161, 168, 156, 158, 156, 162, 160, 157, 161, 160, 165, 162, 155, 157, 150, 163, 153, 161, 160, 155, 155, 160, 159, 155, 155, 170, 160, 162, 159, 163, 156, 157, 172, 156, 161, 157, 153, 186, 159, 160, 167, 166, 163, 166, 161, 155, 165, 153, 166, 166, 152, 161, 160, 160, 158, 164, 158, 153, 163, 160, 161, 152, 160, 164, 151, 164, 170, 159, 166, 165, 153, 156, 165, 158, 149, 156, 165, 163, 153, 161, 162, 157, 158, 157, 163, 147, 152, 160, 158, 156, 155, 159, 160, 156, 164, 160, 161, 159, 166, 155, 157, 167, 158, 161, 172, 158, 167, 157, 156, 157, 157, 154, 152, 166, 157, 153, 146, 161, 157, 153, 159, 155, 152, 160, 162, 157, 166, 166, 165, 170, 150, 156, 157, 157, 167, 158, 160, 153, 159, 162, 164, 162, 161, 153, 160, 155, 173, 154, 165, 169, 163, 158, 157, 160, 156, 151, 157, 160, 160, 165, 151, 151, 168, 153, 162, 161, 159, 158, 164, 158, 160, 155, 146, 161, 155, 167, 156, 146, 164, 163, 163, 161, 147, 161, 160, 160, 153, 157, 166, 166, 156, 159, 161, 156, 167, 160, 165, 155, 162, 162, 162, 165, 161, 163, 159, 159, 163, 153, 157, 158, 153, 164, 158, 162, 165, 152, 158, 148, 161, 154, 164, 155, 156, 155, 165, 159, 159, 150, 163, 157, 164, 162, 159, 168, 166, 159, 161, 159, 151, 154, 157, 157, 167, 152, 162, 160, 159, 158, 158, 160, 155, 167, 164, 165, 151, 159, 161, 172, 160, 160, 157, 157, 157, 156, 161, 156, 154, 163, 160, 158, 158, 150, 162, 167, 153, 171, 154, 163, 155, 159, 161, 151, 164, 158, 157, 163, 155, 155, 164, 163, 158, 166, 148, 160, 159, 165, 160, 164, 173, 156, 148, 163, 171, 168, 158, 161, 162, 151, 163, 160, 157, 160, 161, 169, 163, 163, 160, 167, 155, 151, 150, 161, 159, 159, 156, 167, 157, 156, 170, 159, 162, 158, 149, 162, 159, 155, 156, 155, 159, 162, 174, 157, 164, 166, 159, 167, 151, 179, 148, 164, 164, 168, 170, 166, 164, 153, 159, 155, 159, 162, 157, 154, 162, 160, 161, 154, 153, 162, 155, 162, 153, 158, 165, 159, 165, 163, 160, 163, 166, 168, 160, 155, 154, 162, 162, 158, 154, 176, 162, 156, 157, 161, 149, 157, 170, 172, 159, 164, 166, 166, 160, 156, 160, 158, 158, 169, 152, 163, 157, 160, 159, 157, 168, 166, 157, 158, 157, 160, 157, 165, 162, 154, 163, 154, 161, 154, 169, 160, 154, 162, 164, 157, 161, 155, 164, 159, 157, 155, 153, 161, 163, 157, 156, 159, 160, 173, 169, 154, 165, 171, 160, 156, 154, 158, 155, 163, 160, 172, 165, 166, 154, 158, 163, 148, 159, 162, 159, 172, 157, 155, 158, 151, 165, 160, 157, 162, 163, 159, 165, 158, 155, 159, 154, 156, 158, 162, 145, 163, 164, 165, 157, 158, 154, 149, 153, 159, 162, 154, 162, 167, 164, 168, 157, 165, 164, 160, 163, 155, 160, 166, 154, 152, 168, 162, 156, 164, 156, 162, 160, 161, 170, 156, 152, 159, 155, 156, 161, 163, 160, 161, 158, 159, 155, 158, 158, 163, 156, 159, 162, 155, 165, 155, 159, 156, 163, 158, 165, 164, 167, 158, 152, 155, 165, 171, 153, 155, 160, 157, 162, 165, 158, 165, 164, 163, 160, 160, 155, 155, 161, 171, 159, 159, 156, 159, 159, 158, 163, 157, 157, 163, 157, 159, 167, 156, 163, 156, 161, 164, 151, 162, 158, 154, 157, 163, 152, 163, 167, 172, 151, 152, 165, 155, 159, 162, 152, 154, 154, 157, 166, 156, 156, 155, 148, 163, 159, 160, 158, 155, 165, 185, 160, 157, 160, 163, 160, 156, 171, 168, 163, 171, 153, 162, 164, 151, 166, 162, 165, 163, 158, 165, 153, 162, 155, 157, 166, 159, 167, 165, 166, 162, 165, 155, 158, 164, 156, 153, 135, 145, 175, 158, 154, 157, 155, 156, 160, 155, 152, 156, 169, 154, 161, 161, 156, 162, 157, 163, 165, 148, 166, 153, 156, 162, 171, 157, 165, 165, 163, 157, 184, 159, 152, 158, 161, 158, 156, 150, 162, 156, 154, 165, 153, 151, 150, 159, 161, 166, 162, 179, 156, 158, 156, 156, 169, 152, 162, 159, 160, 161, 160, 163, 160, 162, 150, 157, 156, 155, 156, 163, 169, 163, 165, 153, 159, 164, 159, 164, 189, 164, 157, 153, 156, 158, 158, 172, 154, 157, 157, 159, 157, 153, 170, 154, 161, 155, 159, 155, 158, 160, 164, 161, 163, 164, 158, 161, 159, 170, 163, 156, 159, 169, 166, 155, 165, 149, 176, 159, 156, 155, 156, 160, 161, 151, 159, 157, 155, 153, 165, 167, 149, 159, 158, 162, 160, 167, 168, 159, 161, 164, 164, 157, 163, 166, 165, 163, 152, 162, 174, 161, 163, 161, 156, 150, 160, 159, 162, 163, 162, 159, 167, 175, 167, 161, 163, 165, 171, 169, 158, 163, 163, 154, 157, 153, 158, 149, 166, 162, 169, 170, 159, 151, 163, 156, 168, 158, 152, 155, 159, 156, 156, 161, 173, 157, 169, 155, 154, 165, 158, 162, 157, 165, 153, 153, 159, 162, 159, 169, 172, 159, 165, 151, 158, 168, 166, 157, 167, 159, 168, 159, 166, 161, 177, 156, 166, 181, 158, 165, 163, 156, 165, 167, 157, 164, 157, 153, 171, 168, 165, 154, 152, 163, 162, 167, 147, 162, 160, 163, 161, 158, 151, 166, 183, 160, 167, 154, 163, 168, 165, 163, 158, 157, 168, 166, 159, 153, 167, 150, 163, 151, 153, 157, 161, 160, 164, 158, 148, 163, 165, 162, 162, 170, 160, 170, 155, 161, 155, 160, 163, 161, 169, 159, 154, 162, 168, 160, 164, 159, 154, 158, 165, 158, 155, 160, 158, 166, 155, 150, 160, 161, 151, 170, 168, 166, 171, 152, 160, 171, 169, 144, 165, 154, 162, 150, 153, 160, 171, 163, 161, 157, 158, 163, 156, 150, 164, 156, 168, 160, 158, 160, 154, 161, 150, 169, 169, 151, 154, 164, 162, 153, 152, 161, 158, 151, 156, 159, 168, 157, 157, 155, 155, 170, 153, 166, 158, 154, 163, 157, 161, 153, 161, 156, 155, 154, 154, 167, 161, 150, 166, 176, 155, 156, 159, 157, 157, 157, 162, 157, 181, 158, 157, 155, 156, 154, 157, 168, 159, 172, 153, 154, 161, 163, 153, 157, 159, 160, 158, 172, 150, 154, 160, 160, 167, 158, 163, 164, 164, 156, 154, 164, 159, 158, 155, 164, 153, 154, 160, 152, 160, 162, 166, 160, 153, 164, 157, 165, 160, 160, 161, 166, 156, 159, 157, 159, 136, 159, 165, 159, 154, 157, 160, 161, 175, 167, 162, 175, 162, 164, 154, 161, 157, 152, 176, 157, 156, 156, 163, 155, 162, 157, 155, 157, 159, 152, 182, 156, 168, 154, 161, 157, 160, 159, 162, 158, 156, 158, 155, 157, 158, 159, 157, 161, 160, 162, 165, 156, 156, 162, 160, 159, 165, 164, 154, 155, 161, 161, 160, 162, 162, 167, 161, 158, 157, 161, 159, 150, 157, 161, 161, 157, 165, 159, 161, 162, 160, 159, 165, 159, 165, 163, 166, 171, 161, 165, 157, 157, 162, 161, 158, 170, 161, 149, 160, 158, 163, 180, 154, 160, 161, 166, 157, 155, 161, 155, 163, 159, 159, 157, 162, 156, 153, 160, 162, 160, 156, 159, 160, 161, 160, 155, 158, 160, 152, 160, 161, 156, 162, 155, 161, 162, 156, 170, 158, 157, 158, 160, 157, 160, 160, 158, 155, 159, 151, 160, 176, 163, 158, 158, 160, 161, 169, 157, 173, 157, 161, 159, 161, 167, 160, 160, 163, 154, 159, 164, 160, 158, 157, 161, 159, 152, 161, 152, 163, 161, 156, 160, 167, 157, 160, 158, 161, 168, 156, 166, 161, 151, 163, 166, 163, 161, 159, 162, 160, 161, 156, 158, 158, 162, 161, 159, 162, 155, 164, 162, 156, 160, 161, 160, 161, 158, 156, 161, 156, 159, 158, 156, 162, 155, 152, 154, 159, 163, 165, 162, 158, 159, 160, 163, 163, 155, 158, 160, 166, 161, 160, 156, 158, 162, 154, 163, 159, 157, 158, 157, 155, 163, 163, 157, 159, 150, 156, 164, 160, 166, 154, 160, 156, 161, 154, 158, 161, 157, 153, 156, 151, 160, 162, 155, 154, 146, 163, 158, 157, 153, 158, 153, 158, 159, 165, 157, 173, 172, 159, 169, 176, 162, 166, 164, 160, 159, 161, 165, 167, 167, 161, 163, 158, 160, 161, 155, 163, 161, 164, 162, 160, 164, 162, 160, 166, 161, 153, 165, 161, 159, 163, 165, 157, 163, 161, 165, 152, 161, 163, 158, 155, 156, 163, 163, 161, 164, 162, 158, 174, 162, 156, 158, 165, 162, 162, 163, 160, 160, 159, 168, 161, 158, 162, 159, 156, 163, 156, 159, 164, 161, 161, 165, 163, 163, 163, 161, 160, 160, 153, 158, 160, 163, 162, 165, 158, 163, 160, 167, 162, 155, 165, 155, 150, 161, 155, 161, 159, 160, 161, 160, 161, 156, 162, 165, 165, 159, 167, 146, 158, 159, 157, 162, 159, 160, 159, 160, 170, 159, 156, 155, 148, 159, 163, 161, 157, 147, 162, 166, 158, 170, 158, 166, 168, 172, 157, 164, 159, 161, 158, 156, 165, 162, 164, 161, 161, 161, 163, 157, 165, 153, 145, 163, 157, 155, 157, 157, 161, 160, 164, 159, 159, 163, 163, 163, 160, 163, 152, 162, 161, 160, 156, 160, 167, 155, 154, 157, 162, 161, 161, 159, 187, 159, 162, 161, 154, 162, 164, 160, 163, 158, 161, 158, 156, 162, 158, 148, 157, 161, 164, 162, 160, 157, 157, 161, 154, 164, 159, 161, 162, 158, 163, 162, 165, 162, 153, 161, 160, 162, 159, 153, 151, 167, 157, 163, 160, 159, 149, 153, 156, 161, 155, 158, 158, 162, 162, 167, 166, 160, 160, 192, 156, 145, 167, 166, 166, 166, 152, 152, 168, 162, 165, 162, 173, 161, 153, 165, 163, 165, 165, 150, 174, 160, 163, 156, 164, 158, 158, 152, 170, 155, 163, 160, 159, 163, 155, 162, 160, 162, 165, 174, 153, 166, 153, 155, 155, 158, 157, 159, 161, 151, 160, 160, 155, 161, 160, 161, 166, 171, 156, 158, 159, 158, 163, 167, 160, 166, 158, 155, 152, 150, 154, 160, 159, 157, 145, 167, 162, 153, 162, 154, 179, 154, 150, 165, 157, 156, 175, 160, 160, 155, 158, 153, 162, 155, 162, 161, 160, 159, 160, 167, 163, 153, 159, 151, 150, 154, 151, 164, 148, 157, 150, 163, 162, 166, 162, 156, 160, 156, 161, 164, 168, 162, 165, 163, 157, 161, 154, 150, 156, 157, 162, 160, 175, 159, 160, 158, 169, 158, 161, 160, 154, 160, 164, 156, 158, 159, 158, 155, 160, 156, 161, 158, 158, 162, 167, 158, 162, 163, 162, 166, 163, 161, 154, 170, 166, 151, 159, 159, 159, 138, 166, 165, 155, 168, 159, 158, 164, 156, 160, 149, 161, 160, 157, 153, 156, 163, 159, 153, 157, 163, 157, 166, 152, 157, 141, 157, 160, 165, 168, 165, 165, 165, 155, 166, 166, 157, 160, 164, 155, 161, 170, 161, 151, 161, 159, 159, 155, 158, 158, 162, 154, 158, 165, 162, 151, 156, 167, 148, 157, 155, 162, 156, 149, 155, 161, 156, 171, 154, 159, 158, 160, 170, 156, 158, 149, 153, 161, 157, 166, 166, 151, 164, 158, 155, 163, 167, 167, 148, 163, 154, 157, 162, 162, 162, 155, 156, 167, 154, 152, 154, 156, 158, 156, 155, 155, 161, 162, 161, 158, 152, 171, 174, 162, 157, 164, 157, 159, 160, 158, 162, 156, 170, 156, 159, 156, 155, 169, 160, 160, 159, 150, 159, 152, 155, 161, 160, 155, 151, 155, 151, 162, 162, 160, 162, 159, 154, 153, 156, 161, 149, 144, 158, 166, 162, 157, 161, 157, 167, 151, 151, 156, 159, 161, 162, 156, 160, 156, 160, 149, 163, 155, 157, 161, 166, 152, 163, 151, 158, 173, 159, 156, 161, 157, 158, 165, 168, 165, 159, 158, 158, 161, 152, 148, 159, 173, 156, 160, 150, 161, 173, 160, 163, 162, 162, 155, 165, 165, 166, 160, 158, 157, 158, 164, 164, 162, 164, 164, 158, 155, 148, 157, 154, 169, 157, 152, 160, 156, 161, 165, 153, 155, 151, 165, 149, 156, 162, 152, 172, 163, 154, 164, 162, 174, 168, 167, 165, 161, 162, 163, 161, 147, 166, 181, 159, 161, 153, 151, 169, 151, 157, 159, 150, 156, 161, 161, 158, 159, 157, 154, 158, 162, 162, 159, 152, 158, 153, 157, 156, 162, 163, 161, 153, 166, 166, 155, 161, 163, 158, 163, 153, 161, 159, 154, 161, 153, 155, 161, 170, 158, 156, 159, 170, 146, 167, 158, 164, 148, 163, 163, 155, 158, 151, 149, 151, 168, 161, 177, 157, 152, 158, 159, 155, 165, 170, 157, 157, 159, 166, 161, 166, 157, 159, 169, 154, 166, 172, 164, 169, 155, 162, 157, 166, 154, 155, 161, 156, 159, 159, 173, 161, 161, 181, 145, 164, 159, 167, 154, 164, 160, 162, 162, 150, 161, 160, 156, 151, 163, 161, 157, 162, 155, 160, 166, 163, 154, 170, 157, 154, 160, 159, 163, 157, 156, 161, 168, 159, 163, 159, 162, 157, 161, 156, 162, 159, 161, 161, 159, 162, 162, 158, 177, 158, 155, 160, 160, 157, 158, 166, 158, 163, 158, 156, 161, 169, 161, 161, 159, 158, 164, 163, 173, 163, 160, 160, 161, 161, 169, 163, 158, 167, 158, 162, 160, 166, 166, 156, 158, 159, 158, 163, 158, 166, 169, 157, 165, 159, 163, 162, 160, 164, 164, 158, 177, 161, 163, 162, 166, 159, 163, 154, 154, 167, 158, 162, 163, 162, 159, 160, 168, 164, 159, 147, 158, 167, 148, 162, 159, 155, 168, 159, 162, 159, 166, 164, 152, 158, 157, 160, 153, 156, 160, 161, 159, 155, 158, 158, 167, 150, 156, 162, 153, 157, 152, 165, 147, 161, 159, 155, 154, 152, 162, 155, 155, 166, 164, 161, 159, 156, 159, 157, 153, 159, 165, 158, 159, 166, 162, 162, 161, 153, 155, 160, 161, 162, 158, 165, 160, 157, 157, 159, 155, 161, 166, 154, 151, 158, 161, 152, 152, 159, 161, 162, 165, 158, 153, 160, 159, 158, 156, 168, 157, 151, 162, 159, 165, 160, 163, 157, 167, 157, 159, 155, 153, 162, 155, 157, 158, 160, 159, 148, 160, 160, 157, 158, 153, 151, 157, 153, 158, 158, 167, 163, 161, 162, 161, 165, 164, 158, 162, 156, 171, 155, 148, 169, 165, 161, 160, 161, 159, 162, 163, 151, 157, 166, 151, 162, 169, 161, 155, 155, 158, 169, 165, 164, 157, 162, 155, 161, 166, 170, 168, 156, 126, 158, 160, 158, 154, 163, 162, 159, 141, 155, 165, 153, 159, 153, 169, 160, 160, 159, 155, 173, 157, 164, 157, 151, 167, 162, 159, 154, 152, 160, 157, 163, 165, 162, 154, 166, 166, 159, 162, 159, 157, 161, 158, 158, 164, 159, 157, 160, 163, 159, 162, 157, 160, 152, 160, 171, 157, 161, 164, 156, 160, 159, 159, 161, 162, 157, 157, 162, 163, 155, 161, 166, 156, 164, 166, 158, 160, 157, 162, 162, 159, 156, 159, 158, 163, 163, 175, 155, 170, 157, 171, 158, 160, 160, 147, 156, 167, 166, 164, 164, 156, 156, 162, 160, 156, 160, 168, 156, 159, 159, 159, 167, 160, 152, 162, 179, 158, 162, 157, 155, 154, 160, 161, 161, 163, 162, 159, 155, 160, 162, 150, 166, 172, 164, 157, 160, 154, 168, 161, 155, 162, 156, 155, 160, 158, 164, 161, 156, 164, 160, 168, 165, 154, 164, 161, 159, 161, 155, 159, 158, 154, 160, 173, 159, 161, 157, 165, 164, 168, 166, 159, 169, 165, 160, 169, 167, 158, 154, 155, 158, 160, 159, 153, 162, 168, 154, 154, 163, 154, 161, 160, 160, 158, 162, 163, 164, 167, 146, 157, 157, 158, 160, 150, 156, 158, 159, 164, 161, 163, 168, 161, 175, 161, 154, 165, 162, 159, 168, 167, 162, 158, 161, 160, 166, 164, 157, 153, 162, 152, 166, 155, 166, 160, 160, 158, 162, 159, 159, 156, 155, 158, 163, 160, 150, 159, 166, 159, 165, 162, 161, 164, 157, 159, 156, 172, 160, 154, 175, 158, 156, 158, 160, 149, 168, 160, 162, 163, 163, 160, 156, 153, 153, 166, 159, 169, 161, 150, 168, 160, 161, 159, 164, 167, 170, 159, 159, 161, 163, 159, 155, 154, 162, 161, 167, 164, 173, 155, 162, 168, 162, 163, 162, 158, 158, 160, 170, 156, 159, 165, 160, 160, 164, 161, 158, 166, 168, 148, 157, 162, 159, 164, 165, 153, 156, 164, 158, 162, 157, 157, 157, 165, 155, 165, 154, 162, 162, 160, 152, 160, 158, 163, 158, 156, 156, 155, 156, 159, 154, 167, 165, 161, 165, 160, 158, 164, 158, 161, 161, 160, 163, 159, 164, 155, 161, 157, 151, 165, 156, 165, 159, 160, 162, 162, 175, 158, 152, 163, 164, 159, 162, 159, 164, 157, 163, 158, 163, 159, 155, 160, 149, 167, 154, 160, 162, 157, 155, 156, 159, 156, 155, 150, 167, 162, 160, 159, 167, 148, 168, 157, 166, 158, 155, 149, 155, 157, 156, 164, 156, 154, 157, 158, 162, 150, 151, 159, 160, 165, 152, 158, 154, 163, 166, 164, 150, 164, 156, 160, 163, 156, 160, 156, 162, 157, 165, 156, 160, 161, 167, 157, 158, 148, 165, 158, 153, 170, 162, 162, 156, 151, 162, 161, 172, 154, 161, 164, 167, 161, 155, 164, 163, 157, 156, 155, 176, 154, 158, 156, 159, 158, 165, 150, 152, 170, 164, 151, 160, 160, 162, 154, 159, 163, 157, 161, 160, 162, 155, 152, 156, 167, 165, 157, 156, 152, 158, 161, 150, 157, 160, 163, 163, 158, 157, 161, 161, 158, 159, 155, 162, 147, 157, 160, 150, 165, 158, 167, 164, 160, 157, 165, 158, 163, 160, 172, 162, 153, 156, 152, 158, 166, 162, 159, 158, 152, 154, 154, 162, 158, 165, 149, 157, 166, 156, 162, 168, 156, 155, 163, 163, 155, 159, 166, 164, 163, 164, 160, 157, 164, 155, 175, 158, 156, 146, 159, 157, 155, 165, 161, 160, 164, 158, 167, 158, 155, 173, 163, 158, 160, 159, 159, 152, 167, 168, 158, 162, 158, 158, 151, 157, 155, 158, 161, 151, 167, 158, 164, 156, 156, 154, 160, 170, 159, 162, 163, 170, 163, 163, 155, 158, 159, 155, 154, 161, 160, 167, 155, 161, 157, 165, 152, 159, 158, 153, 158, 161, 164, 171, 159, 157, 166, 161, 158, 167, 169, 155, 164, 160, 166, 157, 164, 154, 159, 152, 155, 155, 164, 167, 156, 163, 158, 157, 159, 158, 155, 162, 168, 160, 145, 168, 165, 165, 149, 152, 156, 161, 157, 158, 158, 162, 163, 155, 169, 162, 157, 150, 152, 162, 158, 156, 158, 165, 156, 156, 156, 162, 164, 171, 155, 153, 157, 164, 168, 161, 170, 155, 159, 163, 153, 161, 153, 155, 159, 162, 153, 158, 165, 154, 178, 166, 162, 158, 161, 162, 161, 150, 150, 154, 163, 156, 157, 161, 158, 154, 165, 163, 145, 153, 160, 161, 161, 164, 162, 157, 176, 155, 162, 161, 158, 160, 164, 160, 166, 159, 157, 156, 167, 159, 162, 155, 160, 162, 158, 153, 167, 163, 164, 157, 157, 163, 144, 158, 158, 162, 163, 174, 157, 159, 168, 162, 158, 158, 159, 161, 173, 157, 152, 152, 166, 160, 157, 162, 161, 157, 164, 162, 159, 156, 169, 158, 161, 162, 166, 153, 152, 158, 158, 161, 162, 160, 145, 152, 157, 163, 166, 164, 152, 163, 156, 161, 156, 159, 157, 161, 161, 159, 163, 163, 161, 161, 162, 158, 154, 156, 158, 167, 158, 155, 161, 145, 160, 151, 155, 163, 149, 154, 166, 155, 156, 160, 163, 154, 159, 165, 155, 155, 152, 162, 155, 161, 163, 164, 152, 158, 157, 159, 161, 159, 165, 158, 177, 162, 165, 151, 161, 162, 155, 165, 162, 159, 153, 162, 152, 149, 156, 163, 174, 163, 157, 162, 156, 161, 161, 156, 164, 159, 162, 156, 159, 163, 172, 156, 160, 156, 153, 156, 163, 155, 160, 147, 160, 160, 159, 159, 169, 160, 165, 158, 161, 165, 160, 160, 164, 162, 161, 161, 156, 170, 160, 163, 154, 160, 153, 156, 161, 172, 162, 163, 154, 161, 166, 160, 162, 155, 141, 152, 166, 157, 163, 163, 165, 159, 161, 156, 151, 166, 151, 158, 161, 155, 151, 159, 156, 158, 158, 157, 157, 167, 161, 154, 156, 178, 167, 166, 130, 169, 159, 167, 155, 157, 157, 158, 150, 160, 162, 161, 152, 159, 162, 156, 159, 152, 164, 163, 162, 147, 159, 165, 159, 160, 158, 158, 154, 154, 161, 155, 165, 164, 161, 155, 163, 155, 158, 158, 160, 161, 160, 159, 153, 154, 158, 158, 161, 152, 160, 163, 163, 164, 166, 158, 156, 158, 162, 160, 157, 159, 155, 171, 159, 156, 166, 165, 146, 156, 187, 148, 160, 170, 158, 166, 158, 154, 150, 161, 153, 154, 162, 158, 150, 159, 162, 155, 162, 162, 165, 160, 155, 154, 163, 148, 166, 158, 164, 158, 164, 159, 155, 150, 159, 163, 166, 158, 158, 163, 155, 160, 157, 160, 164, 154, 161, 155, 162, 156, 157, 163, 167, 160, 161, 153, 157, 153, 157, 170, 165, 162, 160, 157, 150, 157, 160, 165, 159, 158, 158, 151, 155, 166, 155, 155, 165, 157, 158, 162, 165, 154, 163, 163, 160, 168, 156, 163, 159, 156, 162, 155, 160, 161, 155, 160, 164, 151, 155, 152, 156, 160, 155, 158, 164, 160, 158, 161, 161, 154, 142, 162, 160, 162, 163, 164, 159, 154, 161, 160, 167, 165, 165, 154, 160, 161, 153, 153, 162, 160, 161, 157, 158, 153, 161, 157, 158, 163, 160, 161, 158, 162, 154, 154, 157, 148, 157, 161, 154, 158, 161, 153, 157, 161, 158, 157, 163, 159, 155, 158, 162, 164, 158, 159, 155, 149, 159, 159, 154, 161, 153, 159, 163, 159, 165, 158, 159, 160, 159, 166, 150, 139, 158, 150, 158, 159, 154, 161, 157, 154, 162, 161, 158, 165, 180, 173, 156, 164, 170, 162, 158, 151, 167, 166, 156, 157, 157, 155, 159, 165, 157, 160, 164, 161, 165, 162, 154, 159, 154, 158, 156, 157, 162, 156, 157, 162, 154, 161, 159, 158, 164, 154, 156, 159, 158, 161, 157, 160, 164, 164, 167, 163, 150, 166, 153, 155, 158, 163, 158, 167, 151, 156, 159, 158, 157, 159, 157, 158, 159, 151, 159, 170, 162, 174, 159, 160, 160, 160, 160, 157, 157, 158, 159, 166, 158, 157, 157, 160, 160, 166, 159, 156, 171, 159, 162, 166, 159, 159, 171, 162, 162, 158, 158, 170, 160, 155, 151, 157, 161, 159, 163, 159, 159, 161, 161, 165, 162, 162, 159, 161, 172, 166, 165, 162, 164, 158, 162, 159, 157, 154, 163, 158, 159, 158, 156, 159, 158, 157, 157, 156, 167, 150, 154, 161, 157, 160, 161, 163, 155, 161, 159, 169, 158, 156, 176, 165, 156, 151, 159, 160, 151, 167, 160, 157, 165, 166, 160, 167, 152, 164, 166, 163, 164, 157, 153, 157, 165, 153, 152, 161, 159, 163, 171, 161, 167, 158, 157, 165, 157, 163, 155, 159, 157, 169, 160, 156, 161, 164, 156, 146, 174, 155, 156, 162, 162, 169, 159, 167, 164, 158, 147, 158, 154, 160, 165, 163, 161, 163, 156, 161, 164, 162, 163, 157, 172, 159, 162, 156, 151, 156, 157, 155, 154, 159, 154, 158, 162, 161, 166, 158, 161, 159, 154, 158, 161, 160, 153, 160, 163, 157, 163, 171, 152, 157, 162, 151, 160, 166, 156, 162, 165, 162, 158, 157, 169, 166, 160, 156, 162, 160, 160, 162, 154, 154, 151, 160, 156, 163, 158, 152, 165, 162, 155, 170, 162, 153, 155, 153, 163, 168, 148, 159, 155, 164, 160, 159, 161, 153, 187, 167, 160, 161, 158, 157, 164, 164, 161, 161, 158, 165, 159, 170, 164, 154, 159, 163, 159, 154, 159, 165, 158, 158, 160, 154, 166, 161, 163, 161, 164, 156, 172, 161, 163, 161, 148, 157, 156, 164, 159, 155, 159, 155, 151, 157, 176, 168, 162, 163, 156, 158, 159, 160, 155, 159, 159, 166, 160, 165, 158, 154, 163, 163, 160, 166, 166, 160, 158, 160, 158, 155, 162, 161, 164, 165, 151, 152, 154, 156, 161, 157, 158, 159, 155, 176, 159, 160, 161, 160, 162, 160, 166, 157, 156, 157, 168, 160, 150, 162, 158, 159, 164, 159, 161, 171, 155, 163, 172, 159, 161, 152, 156, 167, 164, 155, 157, 157, 154, 157, 151, 157, 151, 158, 160, 156, 158, 166, 156, 152, 156, 154, 161, 152, 157, 171, 156, 160, 155, 155, 168, 168, 155, 156, 156, 164, 149, 163, 155, 160, 155, 157, 160, 159, 162, 157, 155, 162, 165, 159, 154, 148, 152, 162, 168, 160, 160, 161, 164, 160, 158, 157, 161, 159, 154, 155, 158, 165, 160, 165, 159, 162, 153, 158, 160, 155, 160, 161, 159, 169, 163, 158, 163, 163, 158, 164, 159, 157, 156, 157, 151, 169, 164, 158, 157, 159, 157, 161, 155, 164, 147, 155, 155, 156, 156, 160, 172, 158, 162, 157, 157, 159, 150, 160, 162, 160, 152, 159, 155, 165, 158, 167, 163, 163, 160, 154, 160, 160, 161, 163, 164, 153, 167, 162, 158, 158, 158, 157, 165, 160, 172, 154, 160, 157, 163, 164, 159, 160, 157, 150, 162, 162, 154, 161, 159, 161, 172, 167, 159, 157, 162, 162, 152, 160, 164, 163, 162, 158, 169, 165, 166, 155, 158, 158, 161, 168, 160, 161, 155, 165, 163, 159, 165, 159, 156, 158, 161, 154, 162, 158, 164, 167, 162, 167, 168, 158, 161, 146, 171, 152, 161, 155, 163, 168, 161, 155, 159, 156, 151, 165, 161, 170, 160, 160, 158, 163, 161, 165, 158, 154, 154, 152, 158, 158, 157, 166, 151, 167, 161, 172, 166, 159, 162, 158, 160, 154, 160, 159, 164, 158, 157, 156, 160, 155, 159, 162, 157, 156, 159, 167, 154, 164, 167, 162, 154, 162, 160, 157, 158, 156, 160, 152, 159, 156, 158, 161, 166, 163, 158, 162, 164, 163, 155, 154, 160, 159, 147, 157, 156, 158, 161, 160, 159, 153, 160, 162, 157, 168, 172, 166, 155, 156, 157, 164, 162, 163, 157, 155, 165, 158, 162, 156, 157, 159, 162, 153, 166, 158, 161, 159, 159, 162, 160, 154, 162, 165, 169, 163, 166, 157, 154, 161, 162, 157, 155, 164, 162, 157, 157, 160, 166, 162, 168, 157, 159, 155, 162, 163, 155, 166, 164, 155, 156, 157, 167, 159, 162, 156, 161, 157, 157, 165, 163, 166, 161, 161, 162, 158, 160, 163, 152, 159, 164, 154, 153, 163, 159, 160, 153, 161, 165, 156, 157, 155, 153, 168, 165, 155, 156, 162, 158, 158, 160, 161, 162, 153, 153, 137, 158, 163, 159, 155, 155, 161, 164, 164, 159, 152, 162, 157, 157, 157, 163, 156, 155, 156, 158, 156, 163, 160, 164, 156, 162, 161, 170, 162, 158, 158, 159, 153, 163, 153, 156, 156, 159, 169, 166, 158, 170, 162, 161, 158, 168, 162, 158, 158, 159, 157, 152, 158, 158, 155, 157, 165, 166, 158, 156, 160, 156, 162, 160, 160, 163, 162, 161, 164, 158, 164, 166, 158, 160, 166, 153, 158, 153, 160, 167, 152, 164, 162, 157, 162, 169, 158, 161, 161, 157, 160, 167, 161, 161, 152, 169, 159, 162, 165, 159, 158, 163, 162, 155, 157, 154, 160, 159, 159, 158, 150, 167, 167, 160, 163, 163, 160, 160, 163, 163, 162, 160, 163, 163, 165, 155, 160, 161, 156, 163, 156, 166, 151, 163, 163, 162, 157, 162, 166, 162, 156, 156, 160, 163, 157, 160, 162, 164, 162, 157, 159, 167, 170, 172, 158, 158, 158, 158, 160, 169, 152, 156, 161, 163, 166, 158, 164, 161, 161, 161, 161, 156, 163, 169, 160, 156, 157, 157, 159, 161, 159, 151, 166, 160, 160, 161, 172, 158, 164, 166, 152, 163, 160, 157, 160, 160, 155, 160, 172, 163, 155, 157, 158, 151, 162, 157, 162, 150, 166, 157, 162, 160, 160, 163, 151, 167, 159, 160, 164, 163, 158, 154, 158, 172, 165, 164, 169, 152, 164, 167, 156, 159, 167, 159, 162, 163, 158, 158, 163, 150, 161, 160, 165, 163, 170, 157, 158, 158, 159, 159, 163, 162, 161, 157, 160, 161, 156, 161, 160, 159, 165, 163, 157, 155, 160, 161, 155, 162, 160, 159, 164, 160, 164, 159, 164, 150, 161, 154, 154, 158, 162, 165, 162, 152, 163, 156, 160, 165, 158, 164, 158, 157, 159, 160, 157, 157, 159, 158, 159, 158, 160, 164, 160, 159, 161, 166, 156, 157, 161, 160, 160, 161, 160, 161, 163, 165, 163, 159, 157, 155, 158, 162, 156, 159, 158, 160, 158, 158, 159, 156, 160, 159, 156, 157, 163, 162, 159, 159, 161, 161, 158, 159, 159, 161, 164, 155, 160, 161, 162, 159, 158, 155, 159, 156, 155, 155, 160, 160, 157, 156, 160, 160, 165, 160, 163, 157, 158, 165, 159, 161, 152, 160, 165, 159, 160, 156, 162, 160, 159, 160, 161, 157, 162, 156, 161, 157, 163, 161, 158, 160, 160, 160, 160, 161, 157, 155, 160, 158, 160, 165, 173, 161, 162, 167, 161, 160, 162, 159, 154, 157, 161, 158, 161, 163, 164, 160, 159, 157, 163, 161, 160, 159, 157, 160, 167, 153, 159, 159, 152, 155, 163, 164, 167, 153, 159, 159, 160, 158, 159, 151, 162, 161, 164, 161, 162, 162, 160, 158, 161, 165, 158, 166, 160, 160, 158, 159, 160, 168, 161, 160, 161, 160, 161, 156, 159, 160, 159, 158, 161, 161, 159, 157, 160, 160, 169, 163, 160, 158, 157, 157, 165, 155, 166, 156, 155, 158, 162, 160, 156, 165, 162, 159, 162, 157, 159, 161, 160, 161, 158, 164, 152, 160, 162, 158, 159, 161, 162, 164, 157, 161, 162, 157, 159, 158, 154, 161, 156, 163, 163, 166, 158, 158, 161, 161, 157, 161, 160, 160, 157, 161, 159, 164, 160, 161, 159, 160, 160, 160, 158, 158, 158, 163, 163, 162, 159, 158, 159, 158, 161, 165, 160, 159, 163, 154, 162, 159, 161, 152, 162, 159, 161, 161, 160, 162, 159, 157, 158, 158, 164, 159, 154, 157, 162, 160, 159, 158, 159, 156, 156, 160, 160, 159, 157, 162, 159, 159, 158, 164, 161, 159, 153, 162, 156, 162, 155, 159, 157, 161, 160, 160, 159, 158, 161, 165, 166, 158, 163, 164, 162, 163, 161, 160, 164, 162, 160, 159, 157, 161, 155, 158, 157, 156, 157, 158, 159, 160, 159, 159, 162, 156, 159, 165, 162, 159, 159, 161, 160, 163, 159, 160, 159, 155, 172, 160, 163, 160, 168, 158, 163, 163, 157, 163, 163, 154, 166, 158, 160, 161, 164, 156, 159, 159, 159, 166, 163, 161, 159, 160, 162, 161, 157, 153, 159, 157, 158, 160, 165, 160, 153, 160, 160, 164, 159, 159, 156, 160, 161, 158, 155, 160, 159, 158, 160, 160, 164, 159, 160, 152, 163, 159, 158, 159, 154, 163, 163, 155, 158, 161, 160, 168, 158, 159, 155, 160, 158, 161, 152, 160, 160, 154, 162, 160, 156, 162, 160, 158, 157, 153, 160, 159, 161, 158, 157, 161, 160, 158, 154, 162, 158, 157, 160, 157, 161, 160, 163, 165, 160, 161, 159, 163, 160, 157, 161, 161, 158, 160, 157, 158, 161, 159, 160, 167, 155, 160, 155, 164, 158, 168, 158, 167, 151, 167, 158, 182, 165, 163, 163, 154, 162, 163, 157, 162, 158, 158, 161, 154, 164, 159, 161, 160, 156, 157, 163, 159, 159, 164, 165, 157, 158, 153, 164, 150, 158, 153, 162, 161, 156, 150, 161, 164, 163, 162, 155, 164, 155, 153, 151, 159, 154, 163, 163, 162, 158, 165, 152, 151, 165, 162, 161, 165, 157, 157, 164, 163, 158, 154, 160, 158, 151, 159, 169, 161, 160, 160, 157, 153, 157, 159, 148, 156, 157, 157, 158, 157, 162, 156, 155, 169, 158, 162, 161, 159, 150, 160, 163, 159, 155, 163, 158, 166, 166, 159, 156, 165, 161, 159, 159, 163, 158, 162, 162, 156, 163, 166, 161, 159, 153, 156, 155, 157, 159, 155, 159, 159, 163, 160, 160, 182, 166, 159, 158, 161, 158, 163, 157, 157, 161, 157, 163, 174, 159, 160, 161, 157, 149, 159, 165, 156, 159, 168, 162, 159, 162, 166, 157, 162, 162, 163, 153, 161, 158, 161, 155, 152, 158, 157, 159, 152, 163, 156, 159, 158, 156, 159, 163, 157, 162, 161, 155, 169, 153, 170, 159, 162, 162, 160, 159, 163, 169, 161, 166, 158, 162, 157, 165, 147, 162, 136, 165, 160, 160, 158, 159, 164, 165, 157, 151, 162, 157, 157, 162, 164, 172, 160, 155, 164, 156, 147, 157, 156, 160, 159, 161, 157, 160, 163, 166, 163, 153, 157, 158, 152, 163, 160, 161, 160, 150, 168, 155, 162, 162, 156, 151, 160, 165, 161, 158, 165, 151, 162, 164, 160, 164, 168, 167, 163, 171, 173, 159, 167, 157, 155, 163, 164, 142, 163, 160, 160, 157, 162, 163, 150, 159, 162, 159, 165, 160, 158, 161, 159, 157, 169, 164, 161, 152, 153, 160, 162, 150, 162, 159, 160, 158, 159, 167, 161, 156, 158, 161, 153, 161, 165, 157, 173, 157, 159, 161, 159, 160, 161, 162, 160, 168, 164, 162, 156, 156, 164, 158, 161, 161, 159, 157, 159, 176, 159, 159, 158, 167, 159, 160, 157, 160, 170, 164, 162, 158, 157, 157, 166, 164, 159, 168, 157, 160, 160, 152, 161, 164, 155, 158, 155, 162, 158, 165, 160, 156, 157, 160, 162, 159, 168, 160, 156, 144, 160, 166, 157, 145, 165, 158, 161, 160, 152, 165, 161, 171, 152, 149, 161, 157, 158, 161, 167, 160, 152, 162, 161, 156, 160, 167, 164, 161, 160, 160, 156, 151, 166, 154, 148, 146, 157, 160, 159, 156, 162, 160, 155, 160, 161, 158, 162, 172, 156, 153, 161, 162, 164, 163, 163, 162, 152, 161, 163, 159, 159, 157, 161, 161, 159, 164, 154, 160, 163, 160, 153, 161, 158, 154, 161, 151, 160, 164, 164, 159, 156, 177, 160, 155, 161, 147, 157, 166, 165, 160, 160, 162, 159, 155, 149, 155, 161, 161, 160, 160, 158, 163, 162, 167, 157, 158, 157, 164, 156, 158, 159, 153, 163, 158, 155, 158, 162, 167, 152, 138, 165, 152, 160, 157, 158, 163, 159, 162, 163, 158, 162, 159, 159, 157, 162, 154, 164, 160, 159, 161, 154, 154, 154, 161, 160, 163, 163, 157, 148, 163, 164, 164, 162, 168, 159, 152, 160, 172, 153, 166, 163, 160, 168, 159, 165, 155, 144, 161, 160, 160, 164, 156, 161, 160, 159, 168, 161, 157, 158, 166, 157, 159, 161, 151, 159, 161, 158, 158, 168, 165, 158, 163, 156, 158, 157, 156, 163, 162, 167, 160, 161, 159, 161, 160, 158, 161, 157, 162, 162, 164, 160, 165, 163, 163, 164, 160, 160, 161, 154, 160, 162, 159, 157, 163, 161, 159, 159, 158, 159, 158, 162, 162, 163, 146, 157, 164, 162, 158, 165, 158, 140, 163, 159, 157, 159, 163, 162, 161, 149, 156, 161, 157, 160, 175, 162, 157, 153, 168, 161, 156, 160, 159, 159, 160, 157, 163, 158, 160, 158, 167, 160, 176, 157, 162, 158, 161, 165, 164, 166, 151, 161, 162, 162, 165, 163, 158, 156, 161, 161, 162, 163, 164, 159, 156, 160, 156, 158, 158, 163, 167, 162, 160, 156, 160, 151, 154, 158, 160, 158, 158, 159, 162, 164, 161, 160, 157, 159, 161, 163, 163, 164, 161, 156, 173, 160, 157, 164, 159, 158, 151, 155, 160, 156, 155, 160, 156, 161, 162, 162, 155, 153, 169, 163, 159, 162, 159, 162, 164, 170, 160, 160, 163, 164, 158, 161, 156, 171, 160, 154, 159, 160, 161, 158, 164, 165, 156, 162, 161, 170, 162, 161, 159, 151, 164, 160, 159, 164, 164, 159, 159, 155, 161, 164, 159, 162, 170, 160, 163, 169, 150, 163, 159, 164, 158, 158, 163, 150, 166, 155, 159, 164, 158, 159, 165, 158, 158, 154, 156, 158, 159, 160, 163, 158, 162, 155, 158, 153, 155, 157, 160, 160, 169, 162, 159, 166, 158, 160, 150, 159, 160, 157, 161, 159, 162, 162, 159, 162, 156, 156, 159, 162, 164, 162, 161, 149, 152, 161, 160, 161, 160, 164, 159, 159, 160, 160, 157, 158, 152, 159, 160, 160, 150, 163, 159, 157, 165, 160, 157, 157, 164, 160, 163, 159, 155, 148, 161, 173, 160, 164, 157, 159, 164, 162, 169, 150, 168, 158, 157, 152, 149, 168, 167, 162, 165, 160, 159, 163, 152, 155, 158, 153, 159, 164, 163, 147, 161, 162, 171, 158, 161, 159, 160, 164, 145, 159, 161, 162, 160, 148, 161, 158, 155, 160, 160, 161, 158, 160, 146, 161, 157, 157, 156, 164, 162, 159, 162, 162, 161, 159, 166, 156, 159, 151, 163, 163, 160, 160, 158, 171, 162, 160, 162, 163, 164, 162, 159, 159, 157, 156, 159, 161, 158, 159, 163, 157, 159, 156, 162, 160, 170, 161, 146, 153, 158, 156, 168, 161, 161, 157, 167, 158, 162, 156, 163, 162, 152, 147, 157, 161, 157, 160, 156, 153, 159, 157, 154, 160, 158, 165, 159, 161, 150, 161, 162, 158, 156, 161, 159, 164, 158, 161, 174, 154, 161, 202, 157, 164, 158, 165, 159, 159, 168, 163, 156, 158, 162, 158, 158, 162, 157, 161, 161, 163, 163, 161, 154, 166, 164, 165, 160, 162, 159, 133, 158, 161, 161, 159, 159, 156, 155, 145, 162, 158, 157, 149, 155, 158, 154, 153, 159, 160, 158, 168, 163, 161, 161, 166, 157, 161, 168, 167, 163, 168, 161, 162, 161, 160, 159, 154, 168, 156, 163, 156, 162, 142, 161, 152, 161, 159, 156, 164, 170, 165, 171, 164, 155, 168, 154, 157, 161, 161, 164, 158, 156, 161, 157, 154, 159, 159, 167, 157, 156, 152, 154, 163, 163, 165, 161, 165, 165, 161, 165, 162, 172, 157, 154, 165, 163, 157, 162, 162, 159, 167, 159, 157, 156, 160, 163, 163, 160, 160, 157, 159, 159, 151, 153, 151, 152, 172, 165, 157, 160, 162, 162, 154, 164, 162, 158, 165, 155, 165, 166, 164, 145, 154, 160, 159, 158, 159, 155, 158, 161, 172, 175, 162, 167, 158, 159, 151, 157, 163, 154, 160, 159, 165, 157, 153, 165, 168, 163, 158, 159, 154, 164, 161, 157, 168, 154, 150, 161, 149, 159, 156, 162, 155, 157, 165, 159, 158, 154, 159, 156, 155, 163, 162, 162, 160, 157, 167, 159, 159, 161, 177, 160, 159, 155, 155, 163, 157, 161, 161, 155, 161, 157, 156, 159, 167, 161, 167, 164, 167, 159, 170, 155, 161, 163, 162, 155, 161, 164, 162, 154, 167, 162, 160, 163, 168, 157, 156, 163, 160, 163, 153, 159, 167, 160, 160, 156, 175, 154, 158, 160, 170, 154, 151, 157, 168, 159, 161, 166, 160, 156, 162, 158, 165, 165, 156, 160, 161, 161, 161, 158, 158, 151, 154, 171, 161, 167, 162, 157, 159, 158, 162, 162, 156, 163, 165, 161, 162, 160, 161, 158, 163, 159, 167, 158, 150, 156, 162, 154, 158, 164, 165, 161, 161, 157, 155, 167, 153, 159, 159, 168, 156, 150, 159, 157, 161, 161, 154, 161, 153, 155, 157, 159, 162, 160, 156, 161, 161, 159, 161, 156, 158, 159, 156, 155, 151, 162, 156, 161, 150, 156, 171, 164, 149, 143, 166, 164, 157, 164, 161, 162, 166, 155, 159, 162, 166, 158, 159, 165, 159, 167, 161, 157, 163, 161, 164, 156, 161, 162, 161, 161, 161, 164, 159, 152, 162, 155, 158, 154, 159, 160, 154, 164, 165, 158, 160, 148, 164, 163, 168, 162, 160, 157, 161, 151, 163, 156, 151, 160, 155, 155, 162, 165, 159, 158, 154, 165, 157, 163, 165, 148, 159, 151, 150, 164, 155, 156, 163, 154, 156, 164, 152, 158, 161, 162, 168, 150, 159, 165, 147, 162, 159, 157, 158, 169, 156, 161, 159, 157, 159, 154, 156, 161, 156, 155, 159, 159, 159, 158, 159, 155, 170, 156, 166, 160, 162, 160, 158, 158, 163, 165, 161, 161, 159, 166, 166, 163, 154, 169, 173, 150, 150, 157, 163, 152, 164, 168, 161, 159, 162, 157, 155, 161, 159, 160, 161, 163, 160, 160, 161, 157, 158, 168, 158, 162, 160, 160, 161, 158, 152, 171, 153, 158, 157, 167, 166, 153, 156, 152, 159, 158, 151, 163, 158, 166, 159, 160, 156, 163, 158, 164, 159, 148, 154, 154, 173, 170, 164, 162, 164, 167, 160, 161, 170, 163, 160, 151, 164, 161, 161, 156, 156, 159, 145, 160, 162, 161, 154, 151, 156, 164, 159, 158, 155, 155, 163, 161, 153, 160, 162, 161, 154, 163, 159, 163, 161, 160, 152, 166, 148, 158, 161, 150, 164, 150, 154, 161, 155, 156, 156, 164, 160, 162, 167, 157, 158, 155, 162, 162, 160, 168, 163, 163, 153, 167, 154, 154, 165, 179, 159, 163, 156, 163, 161, 156, 159, 169, 152, 162, 160, 154, 164, 161, 164, 154, 153, 166, 167, 162, 165, 163, 160, 158, 158, 162, 155, 154, 171, 157, 159, 159, 161, 158, 161, 165, 170, 163, 161, 142, 167, 159, 157, 167, 144, 157, 155, 156, 165, 160, 155, 156, 166, 158, 156, 163, 164, 155, 163, 161, 143, 159, 153, 167, 153, 160, 157, 156, 151, 171, 155, 166, 152, 166, 162, 150, 156, 156, 156, 157, 153, 153, 163, 155, 168, 159, 151, 152, 158, 175, 155, 164, 163, 174, 161, 157, 169, 162, 167, 157, 170, 157, 155, 163, 165, 162, 161, 159, 150, 162, 166, 153, 162, 158, 160, 162, 156, 167, 157, 158, 154, 156, 155, 158, 150, 158, 154, 174, 160, 157, 151, 166, 160, 170, 157, 162, 155, 163, 158, 165, 164, 154, 174, 172, 165, 170, 162, 158, 162, 153, 143, 153, 153, 159, 158, 160, 171, 159, 155, 157, 155, 160, 161, 153, 160, 169, 157, 159, 168, 154, 160, 165, 163, 160, 162, 169, 155, 161, 150, 161, 159, 150, 160, 156, 158, 158, 163, 157, 164, 172, 155, 154, 155, 152, 164, 164, 163, 155, 160, 166, 160, 163, 162, 157, 161, 160, 161, 159, 161, 159, 155, 161, 164, 155, 153, 168, 152, 169, 160, 156, 173, 157, 159, 162, 161, 155, 157, 165, 160, 152, 162, 161, 166, 167, 159, 155, 161, 152, 165, 161, 162, 155, 161, 166, 157, 168, 156, 158, 159, 157, 155, 159, 156, 156, 161, 157, 161, 159, 163, 161, 165, 154, 163, 152, 156, 156, 147, 161, 164, 163, 158, 144, 161, 160, 161, 154, 160, 153, 162, 155, 155, 160, 155, 161, 166, 156, 151, 163, 164, 169, 154, 159, 149, 164, 159, 164, 151, 150, 155, 158, 162, 160, 153, 154, 145, 171, 152, 158, 159, 159, 163, 148, 168, 155, 156, 150, 161, 169, 158, 161, 161, 162, 156, 163, 160, 152, 158, 165, 169, 157, 165, 161, 161, 158, 166, 168, 158, 158, 163, 167, 152, 161, 159, 173, 166, 169, 144, 159, 161, 165, 155, 157, 148, 153, 145, 155, 151, 158, 169, 156, 162, 162, 160, 160, 156, 158, 153, 153, 155, 161, 167, 150, 164, 165, 153, 167, 160, 162, 161, 153, 161, 154, 157, 157, 160, 147, 152, 166, 149, 158, 128, 168, 165, 166, 158, 160, 161, 156, 160, 160, 159, 157, 170, 161, 163, 151, 166, 154, 161, 160, 158, 165, 155, 169, 156, 158, 167, 161, 168, 150, 164, 156, 168, 157, 155, 185, 152, 166, 164, 157, 152, 164, 153, 163, 163, 164, 156, 164, 161, 153, 158, 164, 169, 171, 152, 151, 140, 156, 160, 154, 159, 162, 167, 158, 162, 158, 159, 161, 159, 161, 154, 153, 171, 152, 151, 156, 167, 156, 166, 160, 161, 151, 162, 165, 152, 156, 159, 163, 158, 164, 162, 168, 164, 155, 153, 157, 155, 163, 149, 149, 154, 162, 159, 166, 154, 180, 159, 162, 159, 165, 159, 159, 156, 158, 171, 157, 164, 162, 155, 162, 156, 158, 157, 159, 161, 160, 158, 160, 156, 163, 156, 159, 163, 154, 156, 172, 166, 167, 155, 156, 162, 164, 164, 171, 158, 159, 158, 163, 158, 150, 162, 159, 163, 157, 159, 164, 149, 158, 158, 167, 165, 160, 159, 174, 156, 160, 149, 159, 168, 168, 165, 164, 165, 150, 161, 159, 153, 157, 150, 160, 162, 163, 160, 159, 162, 155, 162, 162, 156, 167, 159, 160, 160, 162, 164, 156, 162, 164, 147, 160, 165, 157, 163, 156, 165, 163, 166, 166, 154, 158, 160, 160, 189, 162, 162, 157, 164, 162, 161, 165, 161, 160, 154, 157, 157, 164, 164, 157, 161, 159, 157, 158, 158, 161, 160, 161, 153, 160, 159, 158, 184, 160, 160, 152, 156, 165, 155, 162, 165, 166, 159, 155, 156, 139, 145, 161, 164, 163, 167, 156, 162, 158, 154, 161, 163, 156, 161, 157, 161, 161, 166, 168, 161, 162, 154, 157, 158, 160, 156, 166, 160, 161, 156, 159, 162, 159, 155, 156, 159, 156, 156, 150, 164, 164, 162, 158, 164, 159, 159, 161, 155, 160, 158, 157, 158, 159, 158, 157, 161, 152, 165, 158, 165, 156, 160, 160, 166, 156, 157, 167, 163, 159, 160, 162, 165, 155, 169, 165, 158, 174, 147, 174, 164, 165, 157, 157, 163, 153, 167, 168, 163, 158, 158, 160, 153, 164, 162, 155, 158, 158, 162, 162, 160, 162, 168, 157, 164, 161, 167, 159, 165, 163, 155, 158, 163, 159, 160, 169, 154, 160, 159, 159, 165, 170, 164, 161, 167, 154, 170, 160, 158, 162, 154, 151, 164, 153, 169, 163, 155, 164, 159, 162, 162, 160, 165, 166, 164, 158, 160, 162, 163, 159, 151, 162, 152, 158, 162, 164, 157, 164, 160, 155, 163, 151, 163, 162, 159, 153, 162, 160, 154, 155, 171, 157, 159, 165, 159, 160, 163, 154, 157, 151, 157, 160, 162, 159, 143, 150, 169, 173, 167, 162, 160, 158, 161, 163, 167, 190, 161, 158, 158, 155, 161, 156, 158, 151, 159, 161, 159, 161, 164, 162, 161, 160, 163, 155, 163, 165, 153, 155, 161, 157, 154, 153, 155, 159, 162, 155, 160, 157, 166, 157, 158, 156, 162, 157, 158, 160, 161, 162, 158, 157, 163, 164, 157, 156, 158, 158, 160, 160, 161, 162, 162, 153, 157, 159, 159, 161, 164, 164, 165, 155, 159, 158, 163, 159, 157, 157, 161, 157, 162, 156, 155, 157, 157, 164, 159, 160, 162, 159, 161, 156, 154, 162, 162, 154, 160, 156, 154, 162, 158, 161, 156, 166, 162, 159, 153, 165, 159, 156, 157, 165, 152, 159, 153, 164, 160, 142, 165, 158, 158, 159, 160, 164, 155, 162, 162, 157, 156, 163, 167, 164, 165, 161, 159, 162, 156, 156, 153, 162, 168, 158, 148, 160, 175, 158, 161, 161, 165, 163, 159, 152, 171, 160, 160, 165, 157, 160, 162, 165, 158, 155, 153, 166, 161, 163, 154, 159, 151, 154, 145, 163, 159, 165, 165, 160, 150, 150, 152, 154, 157, 163, 171, 163, 157, 155, 153, 155, 165, 160, 159, 153, 164, 160, 163, 165, 163, 159, 163, 159, 159, 161, 164, 163, 155, 149, 159, 158, 162, 158, 156, 158, 156, 169, 158, 158, 154, 168, 169, 153, 160, 160, 158, 153, 161, 160, 159, 167, 155, 162, 159, 170, 152, 161, 163, 159, 166, 165, 157, 156, 163, 143, 162, 156, 149, 148, 159, 156, 148, 143, 162, 163, 159, 165, 156, 162, 159, 152, 159, 154, 156, 168, 167, 162, 157, 163, 157, 158, 160, 167, 149, 160, 160, 161, 167, 164, 164, 159, 160, 151, 158, 164, 155, 150, 164, 155, 168, 151, 163, 145, 182, 160, 163, 160, 162, 161, 166, 155, 156, 163, 164, 162, 165, 176, 155, 158, 157, 159, 152, 155, 154, 167, 190, 162, 156, 145, 163, 157, 154, 154, 151, 155, 164, 168, 166, 157, 146, 152, 167, 164, 154, 158, 155, 142, 159, 151, 174, 164, 156, 158, 173, 159, 158, 157, 154, 153, 165, 148, 150, 160, 162, 166, 166, 150, 158, 157, 157, 158, 170, 144, 162, 174, 169, 157, 167, 165, 159, 182, 165, 168, 165, 158, 159, 163, 161, 163, 157, 154, 164, 162, 168, 152, 150, 157, 160, 161, 158, 167, 164, 164, 161, 155, 161, 169, 164, 162, 152, 154, 156, 153, 157, 131, 156, 151, 166, 159, 162, 168, 153, 162, 156, 159, 171, 152, 153, 152, 157, 163, 158, 157, 150, 159, 170, 165, 165, 160, 149, 155, 161, 159, 155, 156, 157, 160, 173, 160, 157, 156, 162, 155, 161, 166, 165, 155, 150, 163, 156, 163, 171, 145, 160, 155, 159, 165, 158, 160, 154, 159, 160, 157, 165, 151, 158, 159, 167, 161, 158, 157, 171, 155, 161, 154, 164, 156, 159, 161, 163, 155, 160, 164, 158, 162, 157, 157, 161, 156, 161, 166, 155, 146, 171, 169, 159, 151, 174, 164, 165, 157, 162, 161, 157, 158, 162, 155, 152, 162, 163, 157, 178, 158, 156, 171, 155, 153, 162, 159, 154, 162, 151, 172, 173, 168, 145, 148, 162, 160, 157, 159, 161, 155, 162, 159, 166, 167, 165, 168, 173, 157, 170, 160, 165, 174, 150, 168, 151, 159, 155, 159, 165, 167, 156, 159, 160, 158, 160, 152, 159, 176, 156, 159, 163, 146, 154, 163, 169, 155, 153, 158, 150, 163, 161, 164, 162, 155, 159, 168, 156, 157, 156, 169, 153, 162, 149, 157, 163, 143, 157, 157, 169, 160, 162, 164, 157, 161, 161, 169, 159, 166, 155, 158, 161, 159, 166, 156, 139, 156, 162, 155, 160, 157, 149, 163, 167, 154, 158, 164, 158, 165, 155, 159, 161, 160, 170, 156, 159, 162, 165, 161, 157, 146, 159, 153, 162, 167, 155, 155, 161, 171, 153, 159, 164, 142, 170, 170, 157, 162, 155, 159, 158, 160, 159, 157, 169, 160, 164, 162, 160, 155, 162, 158, 183, 158, 162, 159, 167, 159, 162, 159, 158, 158, 159, 161, 162, 160, 159, 163, 161, 160, 158, 160, 159, 160, 158, 160, 160, 158, 157, 158, 162, 157, 157, 160, 160, 156, 160, 162, 159, 161, 158, 161, 159, 159, 160, 160, 160, 158, 161, 159, 153, 161, 155, 160, 164, 161, 161, 158, 161, 155, 159, 161, 160, 159, 164, 157, 159, 163, 160, 163, 158, 165, 160, 158, 160, 159, 157, 162, 157, 158, 162, 160, 157, 158, 160, 164, 155, 159, 158, 159, 159, 160, 159, 161, 161, 164, 158, 166, 159, 151, 160, 164, 160, 159, 161, 160, 161, 162, 160, 162, 161, 152, 165, 157, 162, 165, 166, 157, 161, 162, 153, 159, 153, 160, 158, 157, 160, 162, 161, 159, 161, 160, 163, 171, 159, 158, 160, 159, 159, 159, 159, 159, 160, 165, 158, 152, 160, 162, 159, 158, 160, 162, 162, 159, 165, 159, 161, 159, 155, 162, 159, 159, 156, 162, 160, 159, 162, 154, 161, 159, 164, 159, 162, 160, 157, 161, 161, 159, 158, 156, 157, 161, 164, 159, 164, 161, 167, 161, 163, 158, 158, 161, 160, 162, 158, 164, 165, 161, 158, 158, 159, 156, 156, 161, 161, 164, 157, 159, 160, 162, 160, 171, 158, 163, 157, 159, 157, 164, 160, 160, 160, 161, 160, 160, 160, 162, 158, 157, 162, 158, 156, 163, 159, 159, 160, 160, 149, 166, 160, 160, 160, 164, 163, 158, 162, 160, 160, 166, 162, 159, 160, 160, 162, 159, 159, 154, 157, 164, 164, 160, 164, 160, 165, 163, 159, 161, 159, 158, 161, 157, 161, 158, 155, 160, 159, 164, 158, 162, 156, 161, 160, 160, 165, 159, 164, 158, 159, 161, 160, 159, 160, 160, 159, 160, 160, 159, 159, 161, 159, 157, 162, 160, 167, 154, 158, 158, 163, 161, 160, 159, 159, 161, 154, 161, 162, 157, 160, 160, 160, 162, 158, 158, 162, 167, 157, 159, 159, 158, 158, 159, 157, 155, 160, 163, 159, 159, 159, 157, 163, 154, 158, 161, 162, 159, 160, 158, 160, 152, 155, 160, 159, 160, 158, 166, 160, 161, 162, 157, 157, 160, 163, 160, 158, 158, 153, 161, 162, 149, 161, 160, 158, 160, 164, 160, 154, 161, 158, 161, 161, 158, 158, 155, 160, 160, 159, 158, 158, 158, 160, 158, 162, 162, 159, 161, 157, 164, 159, 158, 163, 150, 163, 161, 159, 161, 161, 156, 158, 164, 161, 158, 157, 158, 158, 159, 159, 154, 157, 160, 155, 161, 159, 160, 163, 158, 157, 159, 160, 161, 159, 157, 166, 157, 156, 159, 160, 162, 156, 162, 161, 162, 160, 159, 159, 157, 158, 158, 160, 161, 162, 158, 157, 158, 161, 160, 159, 158, 155, 161, 159, 158, 150, 161, 163, 158, 155, 161, 158, 158, 154, 157, 159, 155, 158, 155, 160, 159, 160, 161, 160, 160, 162, 159, 160, 148, 161, 163, 159, 160, 160, 163, 158, 167, 157, 161, 161, 163, 161, 159, 156, 160, 161, 151, 166, 153, 153, 158, 157, 159, 166, 150, 162, 169, 157, 152, 168, 162, 160, 157, 160, 163, 160, 166, 158, 158, 151, 158, 162, 155, 156, 153, 161, 164, 159, 151, 159, 157, 162, 154, 169, 159, 157, 159, 159, 152, 151, 151, 164, 159, 159, 163, 152, 157, 159, 170, 161, 160, 156, 156, 177, 155, 162, 186, 166, 163, 165, 158, 156, 163, 158, 158, 161, 156, 153, 168, 156, 161, 160, 161, 161, 162, 155, 152, 151, 156, 169, 157, 154, 165, 156, 163, 161, 150, 159, 155, 162, 146, 146, 165, 161, 166, 154, 157, 151, 169, 166, 161, 164, 164, 161, 154, 160, 164, 153, 160, 157, 153, 158, 154, 153, 158, 157, 152, 168, 163, 157, 152, 163, 155, 160, 162, 156, 159, 161, 162, 167, 163, 160, 154, 163, 160, 151, 162, 164, 167, 160, 150, 168, 168, 166, 161, 162, 167, 169, 160, 165, 157, 165, 155, 165, 157, 157, 166, 161, 167, 158, 156, 167, 157, 153, 158, 176, 163, 161, 159, 166, 157, 157, 164, 155, 161, 162, 156, 155, 157, 156, 163, 161, 156, 161, 163, 157, 160, 161, 165, 159, 159, 156, 169, 161, 152, 159, 161, 162, 150, 155, 159, 170, 157, 163, 161, 158, 149, 164, 160, 154, 152, 157, 166, 164, 167, 165, 158, 160, 160, 160, 164, 158, 158, 151, 165, 156, 163, 158, 158, 162, 157, 161, 163, 158, 161, 162, 157, 152, 154, 159, 159, 156, 155, 165, 157, 149, 148, 156, 167, 154, 160, 158, 165, 154, 156, 168, 164, 145, 165, 163, 157, 161, 162, 160, 155, 164, 166, 161, 161, 157, 154, 158, 162, 158, 160, 162, 165, 162, 157, 166, 166, 165, 163, 154, 157, 157, 151, 154, 159, 155, 154, 162, 161, 153, 169, 169, 156, 161, 166, 164, 149, 171, 160, 167, 161, 159, 150, 166, 154, 153, 162, 164, 156, 150, 160, 160, 165, 148, 152, 154, 141, 162, 158, 157, 161, 167, 158, 156, 156, 153, 154, 151, 158, 161, 166, 162, 166, 156, 159, 161, 155, 163, 164, 164, 156, 162, 163, 159, 158, 161, 159, 162, 163, 160, 159, 158, 161, 166, 165, 167, 158, 161, 155, 153, 157, 163, 166, 161, 154, 157, 157, 164, 161, 159, 170, 163, 154, 160, 160, 163, 157, 161, 162, 164, 160, 150, 165, 158, 166, 133, 159, 166, 156, 156, 167, 159, 159, 157, 163, 167, 159, 161, 163, 154, 165, 161, 164, 161, 153, 160, 155, 166, 163, 158, 156, 150, 156, 158, 155, 164, 158, 158, 150, 157, 167, 156, 156, 142, 160, 161, 154, 158, 169, 152, 163, 167, 162, 162, 168, 167, 156, 173, 160, 162, 174, 161, 154, 158, 164, 153, 175, 153, 170, 173, 161, 172, 165, 154, 161, 151, 157, 154, 157, 157, 156, 158, 165, 156, 145, 160, 158, 164, 153, 162, 147, 157, 154, 154, 152, 163, 157, 165, 161, 164, 154, 156, 152, 164, 158, 157, 165, 158, 154, 155, 159, 158, 165, 162, 161, 160, 167, 158, 163, 146, 153, 159, 153, 156, 160, 171, 162, 162, 152, 173, 154, 157, 163, 161, 160, 164, 166, 175, 150, 158, 162, 154, 156, 161, 166, 152, 159, 159, 161, 160, 155, 151, 154, 158, 163, 167, 157, 159, 156, 165, 158, 153, 154, 174, 161, 156, 163, 161, 155, 163, 161, 173, 160, 152, 160, 161, 160, 152, 161, 157, 156, 161, 159, 160, 164, 164, 157, 152, 151, 164, 163, 164, 167, 157, 158, 154, 154, 157, 160, 162, 164, 155, 158, 150, 167, 160, 158, 155, 160, 159, 161, 165, 168, 158, 159, 161, 155, 159, 156, 156, 160, 150, 154, 153, 165, 166, 156, 162, 157, 165, 165, 165, 168, 159, 165, 154, 177, 173, 155, 157, 161, 165, 162, 164, 165, 158, 156, 165, 152, 156, 159, 173, 169, 163, 161, 148, 158, 140, 161, 173, 157, 163, 168, 151, 154, 164, 163, 161, 154, 170, 164, 161, 163, 152, 161, 160, 162, 161, 179, 161, 159, 171, 161, 160, 163, 161, 166, 155, 155, 161, 150, 163, 164, 163, 154, 160, 159, 155, 157, 161, 159, 161, 157, 166, 166, 162, 163, 157, 163, 152, 160, 150, 157, 160, 153, 154, 154, 161, 165, 155, 170, 162, 159, 162, 164, 164, 159, 159, 160, 155, 157, 161, 157, 159, 151, 166, 164, 164, 170, 159, 153, 141, 158, 161, 158, 161, 167, 160, 156, 159, 161, 164, 157, 162, 153, 160, 175, 157, 163, 161, 162, 159, 161, 158, 158, 158, 173, 165, 159, 159, 162, 159, 159, 159, 158, 163, 156, 149, 162, 160, 152, 160, 164, 160, 161, 161, 150, 151, 142, 159, 149, 158, 159, 156, 158, 161, 149, 165, 153, 164, 161, 172, 154, 156, 154, 153, 161, 164, 163, 150, 162, 159, 158, 161, 153, 157, 161, 163, 158, 160, 161, 155, 166, 171, 162, 162, 170, 155, 161, 159, 163, 158, 163, 161, 162, 158, 152, 164, 153, 151, 160, 161, 166, 159, 167, 155, 168, 146, 163, 168, 164, 157, 160, 162, 158, 159, 157, 157, 171, 156, 155, 164, 162, 161, 170, 160, 156, 153, 169, 154, 160, 157, 157, 159, 156, 159, 156, 157, 164, 160, 162, 163, 151, 163, 161, 156, 154, 161, 154, 157, 157, 157, 162, 162, 155, 176, 159, 157, 156, 146, 158, 192, 151, 156, 161, 157, 160, 156, 153, 163, 176, 155, 160, 152, 161, 165, 157, 163, 161, 159, 157, 163, 158, 158, 151, 174, 148, 166, 159, 160, 165, 171, 164, 160, 143, 163, 156, 154, 167, 159, 163, 155, 180, 159, 158, 171, 155, 159, 153, 167, 163, 160, 157, 160, 159, 157, 156, 156, 153, 155, 158, 163, 155, 160, 161, 154, 150, 162, 164, 165, 159, 131, 160, 153, 152, 166, 158, 160, 169, 160, 150, 153, 163, 172, 160, 163, 154, 153, 158, 164, 160, 178, 151, 157, 155, 153, 155, 152, 161, 162, 168, 161, 154, 161, 155, 157, 144, 156, 162, 158, 154, 155, 156, 156, 163, 156, 160, 170, 143, 167, 168, 158, 154, 161, 160, 170, 155, 158, 159, 163, 144, 154, 161, 155, 156, 166, 158, 160, 156, 168, 169, 152, 158, 161, 156, 167, 161, 155, 164, 168, 154, 161, 154, 155, 146, 164, 165, 157, 183, 136, 148, 171, 157, 171, 161, 168, 160, 161, 162, 168, 166, 165, 160, 157, 167, 165, 159, 160, 155, 156, 158, 159, 170, 159, 163, 156, 156, 158, 164, 162, 166, 158, 154, 158, 169, 156, 156, 159, 155, 157, 161, 159, 157, 165, 167, 155, 158, 157, 140, 163, 161, 161, 157, 157, 162, 161, 161, 157, 160, 179, 163, 161, 158, 155, 158, 158, 162, 158, 158, 147, 152, 166, 170, 159, 160, 159, 159, 161, 159, 143, 164, 164, 162, 146, 162, 158, 162, 161, 158, 159, 158, 169, 166, 160, 158, 170, 150, 179, 149, 154, 167, 165, 158, 157, 155, 159, 166, 160, 158, 165, 155, 166, 158, 162, 153, 165, 172, 160, 170, 154, 161, 160, 160, 159, 165, 153, 166, 162, 162, 164, 168, 166, 163, 162, 156, 169, 157, 157, 158, 162, 160, 158, 159, 149, 153, 167, 153, 157, 162, 158, 160, 160, 160, 153, 155, 163, 154, 163, 165, 157, 160, 163, 168, 159, 154, 159, 157, 162, 137, 159, 159, 161, 159, 161, 153, 161, 164, 151, 163, 161, 166, 159, 158, 164, 171, 162, 160, 161, 162, 154, 159, 159, 157, 160, 162, 167, 161, 163, 158, 155, 154, 162, 164, 164, 153, 161, 161, 162, 164, 157, 162, 155, 162, 165, 157, 158, 166, 158, 159, 160, 156, 169, 155, 167, 159, 159, 158, 166, 157, 158, 149, 158, 157, 161, 158, 170, 167, 160, 166, 160, 158, 164, 149, 161, 151, 164, 156, 162, 160, 161, 161, 149, 159, 161, 163, 159, 157, 161, 156, 158, 155, 160, 162, 172, 162, 161, 174, 148, 153, 158, 156, 159, 161, 168, 155, 152, 161, 147, 165, 163, 158, 160, 163, 155, 153, 188, 159, 163, 159, 165, 154, 156, 164, 157, 156, 158, 160, 160, 158, 157, 174, 161, 159, 159, 157, 178, 151, 156, 162, 174, 160, 157, 158, 161, 173, 163, 157, 153, 162, 160, 153, 159, 171, 156, 160, 164, 165, 152, 169, 158, 151, 154, 156, 152, 162, 153, 172, 181, 162, 151, 163, 164, 162, 166, 161, 154, 148, 166, 164, 152, 160, 180, 172, 162, 164, 161, 156, 157, 159, 162, 159, 164, 155, 154, 154, 160, 158, 164, 160, 153, 152, 171, 160, 140, 161, 162, 158, 163, 168, 154, 163, 168, 156, 150, 154, 163, 159, 161, 162, 154, 146, 160, 163, 161, 159, 161, 158, 161, 160, 157, 160, 152, 155, 157, 148, 163, 160, 162, 160, 159, 174, 159, 165, 156, 165, 163, 163, 159, 186, 161, 155, 167, 160, 161, 162, 162, 162, 156, 162, 165, 152, 147, 158, 159, 157, 164, 158, 161, 160, 160, 156, 159, 159, 156, 170, 159, 158, 162, 158, 162, 169, 165, 157, 132, 161, 166, 166, 161, 159, 159, 163, 158, 162, 166, 154, 152, 154, 161, 160, 153, 161, 162, 161, 157, 165, 154, 154, 148, 155, 159, 160, 143, 162, 160, 162, 159, 157, 172, 162, 158, 156, 149, 165, 159, 159, 159, 157, 165, 159, 146, 156, 166, 157, 165, 164, 155, 164, 154, 162, 160, 162, 156, 158, 160, 160, 183, 157, 167, 168, 155, 162, 155, 154, 159, 166, 158, 198, 164, 164, 158, 156, 161, 163, 159, 162, 158, 160, 160, 161, 157, 158, 160, 123, 159, 153, 160, 158, 153, 154, 163, 155, 157, 163, 159, 163, 158, 163, 160, 165, 172, 158, 170, 158, 161, 155, 161, 160, 161, 150, 150, 159, 160, 164, 160, 155, 165, 154, 163, 161, 163, 165, 163, 159, 169, 163, 167, 150, 159, 158, 183, 160, 159, 173, 157, 159, 165, 153, 156, 150, 155, 159, 159, 159, 155, 150, 163, 161, 147, 162, 155, 158, 156, 162, 164, 164, 159, 160, 157, 153, 160, 162, 159, 164, 170, 157, 165, 159, 162, 206, 172, 160, 155, 163, 156, 161, 153, 157, 164, 163, 160, 152, 157, 159, 162, 158, 152, 164, 164, 153, 167, 157, 154, 164, 158, 164, 164, 163, 157, 157, 146, 165, 155, 164, 160, 148, 162, 162, 154, 156, 170, 167, 157, 154, 162, 156, 161, 148, 156, 158, 159, 150, 155, 163, 155, 156, 156, 156, 156, 160, 158, 162, 158, 167, 156, 158, 162, 158, 171, 162, 165, 167, 163, 161, 140, 155, 163, 162, 156, 157, 153, 163, 161, 154, 165, 165, 153, 170, 160, 154, 126, 163, 163, 158, 149, 159, 157, 162, 160, 175, 154, 157, 155, 155, 158, 158, 157, 167, 158, 160, 173, 169, 154, 156, 168, 158, 162, 163, 159, 178, 161, 153, 161, 164, 154, 167, 156, 163, 163, 154, 161, 147, 158, 162, 155, 159, 158, 151, 157, 165, 153, 161, 160, 160, 155, 160, 191, 161, 153, 147, 159, 152, 159, 159, 164, 152, 161, 160, 156, 160, 150, 155, 158, 160, 156, 162, 156, 167, 159, 155, 166, 163, 154, 163, 160, 164, 152, 163, 142, 157, 156, 158, 164, 165, 152, 157, 153, 163, 154, 160, 159, 155, 161, 163, 156, 171, 147, 163, 164, 158, 154, 163, 160, 158, 153, 171, 147, 149, 159, 157, 162, 160, 168, 159, 162, 153, 166, 155, 161, 144, 167, 152, 161, 159, 165, 157, 157, 167, 155, 171, 165, 161, 157, 153, 162, 159, 162, 162, 154, 151, 157, 159, 159, 154, 167, 153, 159, 151, 163, 164, 168, 157, 170, 163, 159, 165, 150, 154, 163, 159, 156, 155, 173, 167, 147, 161, 161, 148, 158, 154, 152, 162, 158, 153, 163, 163, 162, 161, 160, 153, 164, 151, 158, 154, 165, 151, 155, 161, 142, 160, 152, 137, 157, 169, 158, 155, 164, 155, 160, 155, 163, 155, 155, 164, 158, 164, 161, 164, 178, 160, 155, 161, 175, 164, 155, 161, 163, 159, 168, 153, 144, 162, 161, 160, 166, 156, 158, 157, 157, 159, 168, 162, 161, 186, 165, 163, 162, 160, 161, 164, 161, 165, 154, 154, 166, 157, 159, 166, 159, 169, 162, 160, 166, 160, 163, 161, 161, 161, 152, 155, 149, 154, 163, 155, 161, 161, 153, 155, 156, 132, 167, 155, 160, 149, 155, 158, 166, 155, 159, 150, 155, 153, 151, 160, 166, 159, 156, 153, 161, 159, 157, 174, 162, 165, 150, 147, 160, 158, 169, 168, 156, 161, 157, 157, 158, 153, 151, 155, 156, 167, 164, 156, 161, 159, 149, 165, 156, 157, 162, 174, 161, 162, 154, 165, 161, 135, 152, 158, 177, 166, 189, 163, 150, 156, 172, 146, 160, 155, 147, 166, 157, 162, 163, 163, 153, 163, 160, 173, 149, 162, 161, 157, 158, 157, 155, 153, 161, 144, 161, 162, 158, 157, 159, 161, 157, 159, 164, 162, 158, 167, 154, 159, 151, 164, 155, 155, 154, 164, 162, 156, 163, 156, 153, 155, 157, 161, 158, 143, 161, 160, 155, 144, 153, 163, 162, 155, 160, 160, 159, 150, 152, 160, 154, 161, 155, 159, 162, 161, 162, 163, 158, 188, 157, 163, 153, 160, 153, 160, 167, 166, 157, 164, 149, 165, 160, 156, 161, 157, 165, 163, 167, 162, 169, 161, 163, 165, 153, 158, 154, 170, 152, 142, 186, 157, 153, 158, 161, 155, 162, 160, 164, 156, 159, 162, 161, 171, 153, 161, 165, 153, 156, 167, 154, 152, 156, 171, 155, 164, 163, 169, 150, 158, 161, 150, 150, 172, 159, 159, 166, 155, 157, 155, 159, 158, 162, 163, 152, 153, 163, 163, 166, 163, 165, 156, 158, 158, 155, 163, 169, 148, 161, 157, 133, 163, 161, 171, 171, 151, 152, 167, 155, 160, 161, 156, 157, 173, 156, 162, 163, 164, 162, 160, 161, 157, 154, 155, 158, 162, 165, 168, 159, 168, 166, 162, 159, 156, 166, 163, 157, 160, 160, 158, 162, 149, 167, 156, 154, 154, 154, 158, 154, 168, 153, 159, 166, 162, 152, 148, 155, 160, 163, 155, 153, 154, 155, 172, 159, 169, 163, 161, 153, 155, 161, 163, 159, 156, 137, 167, 157, 165, 155, 163, 162, 158, 162, 162, 157, 156, 148, 170, 145, 158, 154, 160, 157, 158, 158, 168, 155, 138, 150, 160, 165, 161, 162, 164, 158, 169, 154, 155, 154, 165, 155, 145, 166, 163, 161, 160, 167, 167, 164, 156, 159, 166, 157, 164, 165, 158, 161, 167, 164, 150, 154, 147, 149, 161, 162, 167, 160, 160, 158, 163, 164, 154, 155, 159, 161, 158, 162, 166, 160, 156, 158, 154, 163, 161, 161, 161, 163, 159, 158, 162, 173, 161, 164, 160, 153, 159, 155, 153, 159, 163, 159, 162, 147, 172, 148, 163, 161, 157, 159, 156, 164, 163, 142, 153, 156, 168, 157, 161, 165, 160, 166, 159, 156, 163, 167, 158, 168, 160, 150, 151, 159, 157, 162, 156, 154, 157, 160, 153, 152, 158, 154, 162, 164, 159, 160, 153, 158, 152, 162, 158, 157, 158, 148, 156, 178, 162, 166, 158, 155, 161, 152, 167, 150, 151, 165, 145, 152, 159, 156, 160, 161, 163, 163, 180, 165, 153, 170, 146, 158, 167, 164, 159, 154, 162, 160, 153, 155, 153, 162, 162, 155, 161, 157, 156, 157, 156, 140, 145, 164, 156, 167, 163, 153, 164, 161, 156, 161, 158, 156, 149, 162, 161, 161, 166, 157, 164, 153, 180, 162, 154, 162, 159, 155, 160, 156, 164, 160, 154, 162, 162, 157, 157, 157, 156, 161, 161, 166, 163, 158, 163, 165, 161, 168, 164, 158, 161, 156, 161, 161, 160, 158, 162, 161, 167, 156, 154, 162, 162, 159, 159, 164, 159, 160, 155, 163, 162, 160, 158, 164, 161, 160, 157, 164, 162, 161, 162, 165, 159, 161, 153, 157, 162, 160, 160, 162, 164, 163, 160, 163, 166, 164, 155, 160, 159, 163, 161, 162, 160, 161, 160, 153, 162, 162, 159, 161, 164, 159, 161, 160, 155, 161, 160, 163, 156, 160, 160, 159, 164, 158, 163, 159, 156, 161, 157, 162, 167, 170, 162, 161, 158, 158, 160, 161, 163, 187, 158, 160, 167, 164, 160, 159, 158, 161, 161, 160, 156, 162, 160, 156, 155, 158, 161, 165, 163, 158, 155, 164, 164, 163, 158, 161, 159, 154, 163, 162, 160, 162, 164, 163, 153, 164, 156, 157, 165, 164, 165, 157, 164, 163, 160, 163, 161, 160, 163, 166, 152, 161, 160, 156, 156, 164, 161, 162, 161, 159, 151, 154, 161, 159, 163, 161, 155, 159, 160, 160, 159, 150, 157, 142, 160, 159, 160, 159, 161, 166, 161, 160, 162, 164, 161, 159, 168, 164, 162, 164, 166, 161, 162, 164, 162, 161, 157, 161, 157, 159, 164, 159, 161, 163, 161, 161, 164, 162, 164, 164, 166, 160, 163, 162, 160, 158, 155, 164, 160, 164, 157, 162, 157, 166, 160, 162, 162, 159, 160, 156, 161, 155, 158, 160, 171, 163, 162, 168, 160, 161, 162, 159, 162, 162, 156, 164, 162, 156, 163, 161, 161, 159, 152, 159, 165, 159, 158, 159, 159, 166, 164, 158, 157, 157, 170, 160, 157, 167, 160, 167, 155, 157, 165, 171, 155, 157, 164, 163, 157, 157, 156, 157, 163, 163, 161, 167, 164, 162, 160, 164, 155, 161, 164, 161, 158, 157, 162, 143, 162, 154, 164, 162, 171, 161, 162, 156, 158, 161, 161, 160, 159, 165, 159, 158, 156, 160, 159, 157, 164, 162, 161, 161, 160, 159, 159, 162, 163, 160, 159, 161, 167, 160, 161, 163, 161, 156, 162, 162, 162, 160, 160, 162, 154, 159, 164, 163, 159, 158, 156, 162, 152, 160, 160, 158, 150, 162, 162, 162, 151, 160, 164, 160, 157, 154, 164, 162, 160, 164, 158, 161, 166, 161, 162, 159, 161, 159, 159, 159, 159, 164, 160, 156, 157, 160, 162, 163, 175, 158, 160, 167, 160, 158, 163, 164, 157, 160, 163, 159, 159, 164, 160, 157, 160, 162, 157, 163, 163, 159, 160, 155, 159, 161, 158, 160, 160, 153, 164, 158, 158, 169, 160, 162, 164, 163, 161, 165, 160, 151, 157, 158, 159, 160, 164, 159, 161, 161, 187, 158, 159, 161, 159, 161, 158, 160, 158, 159, 161, 159, 158, 158, 160, 160, 158, 163, 165, 163, 152, 156, 164, 163, 165, 157, 160, 158, 157, 158, 161, 155, 159, 164, 158, 157, 158, 159, 157, 163, 153, 161, 152, 159, 162, 163, 160, 193, 162, 163, 160, 164, 157, 169, 162, 159, 158, 170, 160, 162, 158, 153, 161, 161, 172, 162, 153, 168, 156, 163, 162, 161, 156, 158, 158, 158, 160, 158, 155, 155, 156, 164, 151, 154, 172, 158, 167, 167, 169, 163, 156, 181, 157, 151, 159, 164, 163, 157, 164, 172, 155, 157, 164, 154, 164, 162, 164, 145, 160, 164, 160, 156, 171, 152, 157, 154, 164, 157, 154, 165, 156, 154, 158, 170, 160, 158, 184, 160, 161, 156, 167, 156, 162, 165, 158, 158, 161, 156, 159, 145, 157, 152, 152, 162, 162, 168, 160, 164, 158, 151, 158, 163, 157, 162, 159, 154, 161, 159, 146, 156, 160, 164, 142, 153, 151, 153, 164, 159, 158, 157, 158, 167, 160, 160, 154, 152, 161, 160, 156, 171, 162, 146, 164, 161, 156, 176, 157, 166, 153, 156, 155, 155, 159, 157, 158, 159, 160, 160, 158, 164, 159, 168, 168, 159, 153, 159, 168, 182, 152, 173, 160, 162, 170, 160, 164, 155, 155, 169, 160, 155, 156, 162, 157, 163, 162, 149, 175, 175, 156, 163, 158, 158, 167, 160, 159, 153, 162, 164, 154, 174, 153, 157, 154, 154, 157, 158, 158, 164, 162, 160, 141, 157, 167, 149, 158, 160, 159, 143, 155, 168, 159, 155, 150, 159, 157, 154, 161, 155, 154, 168, 163, 166, 157, 159, 161, 159, 160, 158, 158, 158, 162, 164, 160, 160, 160, 159, 160, 164, 162, 161, 149, 151, 160, 172, 159, 159, 164, 153, 157, 163, 159, 157, 168, 156, 151, 159, 161, 159, 171, 173, 164, 159, 157, 176, 153, 147, 172, 164, 157, 156, 152, 148, 161, 165, 162, 162, 147, 154, 159, 154, 157, 160, 164, 151, 161, 155, 163, 157, 163, 156, 171, 157, 159, 159, 160, 160, 166, 160, 176, 165, 159, 167, 159, 165, 174, 164, 153, 166, 164, 164, 155, 158, 156, 161, 160, 162, 158, 160, 150, 158, 161, 162, 165, 158, 153, 150, 160, 162, 168, 157, 165, 167, 159, 160, 157, 155, 156, 157, 152, 155, 165, 168, 188, 154, 154, 161, 157, 159, 162, 171, 146, 157, 161, 160, 161, 159, 154, 167, 153, 158, 160, 150, 162, 166, 165, 160, 153, 155, 154, 154, 152, 172, 162, 173, 145, 166, 149, 144, 159, 160, 146, 162, 160, 154, 150, 166, 165, 152, 171, 149, 153, 156, 162, 158, 157, 163, 158, 163, 150, 155, 148, 165, 155, 168, 161, 162, 161, 156, 173, 143, 165, 163, 148, 160, 154, 158, 158, 170, 147, 158, 166, 163, 159, 153, 155, 154, 176, 168, 156, 157, 164, 154, 161, 161, 161, 155, 161, 150, 160, 165, 157, 169, 152, 158, 158, 164, 159, 157, 175, 146, 155, 161, 150, 164, 152, 146, 165, 155, 149, 160, 163, 160, 166, 157, 148, 160, 156, 166, 160, 166, 160, 165, 169, 156, 153, 157, 158, 153, 154, 160, 165, 152, 161, 164, 149, 156, 162, 170, 157, 149, 155, 149, 160, 167, 159, 143, 159, 169, 162, 162, 154, 162, 155, 163, 151, 164, 159, 159, 175, 159, 152, 155, 158, 152, 166, 168, 157, 156, 157, 159, 154, 154, 153, 171, 163, 159, 160, 152, 171, 161, 158, 161, 159, 161, 160, 157, 165, 164, 156, 170, 162, 166, 160, 164, 153, 157, 157, 164, 169, 159, 165, 167, 160, 163, 155, 160, 155, 162, 171, 169, 161, 158, 165, 160, 155, 152, 162, 158, 158, 151, 160, 158, 159, 166, 166, 161, 163, 159, 174, 159, 156, 161, 151, 158, 159, 145, 150, 158, 168, 161, 151, 158, 167, 157, 149, 150, 156, 177, 162, 163, 161, 157, 162, 157, 160, 161, 158, 154, 176, 159, 163, 151, 151, 161, 158, 152, 151, 159, 163, 152, 159, 157, 159, 162, 156, 165, 164, 159, 165, 172, 162, 156, 161, 153, 158, 167, 155, 161, 161, 152, 162, 158, 161, 163, 157, 149, 156, 157, 167, 159, 164, 161, 157, 162, 159, 157, 155, 164, 156, 160, 156, 170, 154, 168, 170, 171, 163, 154, 172, 161, 153, 165, 157, 159, 170, 151, 162, 164, 165, 160, 156, 153, 167, 154, 159, 159, 168, 143, 154, 159, 159, 157, 158, 150, 156, 165, 147, 148, 156, 163, 157, 160, 148, 150, 161, 152, 149, 162, 169, 158, 162, 155, 155, 170, 159, 155, 159, 157, 154, 162, 159, 158, 158, 162, 159, 163, 160, 153, 164, 165, 149, 157, 158, 161, 151, 160, 158, 167, 157, 161, 156, 173, 163, 154, 160, 166, 163, 156, 161, 173, 164, 160, 160, 160, 157, 169, 164, 154, 161, 164, 155, 161, 160, 165, 163, 156, 160, 165, 159, 150, 161, 163, 153, 173, 152, 165, 160, 156, 162, 163, 166, 177, 151, 164, 166, 160, 165, 170, 164, 164, 160, 156, 162, 158, 160, 153, 159, 152, 157, 156, 162, 163, 158, 160, 158, 167, 155, 155, 150, 168, 163, 153, 145, 162, 149, 158, 164, 160, 154, 154, 168, 155, 148, 155, 159, 160, 172, 164, 163, 158, 164, 155, 163, 160, 162, 158, 157, 146, 160, 165, 165, 160, 156, 160, 153, 154, 165, 160, 156, 171, 158, 156, 161, 159, 171, 155, 164, 152, 160, 172, 163, 161, 165, 159, 154, 160, 161, 159, 150, 160, 161, 147, 166, 146, 161, 171, 153, 165, 156, 163, 162, 158, 164, 162, 153, 170, 160, 163, 152, 162, 157, 157, 161, 163, 164, 156, 156, 162, 165, 162, 159, 157, 159, 155, 157, 147, 160, 151, 161, 157, 161, 159, 159, 153, 158, 158, 163, 152, 150, 163, 152, 149, 163, 162, 169, 167, 158, 150, 156, 157, 163, 161, 165, 169, 152, 164, 167, 159, 152, 170, 154, 158, 177, 164, 171, 156, 167, 148, 165, 161, 164, 162, 158, 163, 160, 152, 159, 157, 157, 158, 163, 156, 160, 160, 150, 174, 161, 160, 157, 145, 148, 171, 168, 162, 153, 169, 164, 162, 165, 164, 156, 162, 169, 145, 166, 155, 160, 158, 163, 173, 151, 164, 178, 161, 156, 160, 160, 167, 160, 156, 150, 164, 155, 171, 165, 161, 152, 162, 152, 161, 168, 170, 156, 162, 158, 156, 157, 167, 162, 159, 158, 179, 148, 155, 159, 152, 161, 161, 161, 152, 161, 164, 153, 159, 165, 167, 163, 160, 160, 168, 170, 147, 165, 156, 165, 154, 160, 159, 163, 157, 158, 154, 157, 169, 164, 156, 170, 162, 164, 158, 146, 150, 152, 166, 152, 163, 179, 157, 153, 158, 162, 158, 170, 159, 157, 164, 139, 160, 161, 165, 151, 160, 157, 163, 153, 155, 163, 158, 166, 158, 164, 157, 162, 166, 156, 152, 157, 151, 148, 178, 161, 162, 164, 163, 160, 163, 152, 161, 158, 176, 160, 164, 160, 160, 159, 147, 167, 163, 156, 153, 152, 162, 161, 162, 159, 161, 155, 150, 159, 159, 152, 153, 174, 143, 160, 151, 158, 164, 158, 162, 164, 165, 156, 163, 161, 149, 164, 165, 158, 164, 166, 161, 159, 161, 161, 158, 165, 160, 159, 153, 165, 157, 163, 171, 161, 160, 148, 155, 150, 160, 152, 171, 160, 156, 163, 164, 155, 165, 145, 163, 163, 168, 155, 155, 159, 170, 162, 157, 156, 167, 157, 167, 164, 160, 163, 172, 153, 155, 162, 153, 166, 167, 155, 161, 159, 162, 152, 168, 158, 165, 158, 172, 155, 161, 154, 161, 156, 168, 147, 160, 159, 159, 160, 162, 167, 169, 160, 167, 167, 154, 163, 156, 162, 160, 164, 157, 157, 157, 155, 158, 163, 159, 159, 156, 161, 157, 158, 154, 157, 179, 157, 159, 164, 153, 157, 165, 139, 154, 158, 138, 165, 151, 160, 162, 162, 157, 156, 163, 161, 163, 161, 171, 154, 162, 158, 161, 164, 164, 158, 159, 159, 159, 160, 163, 161, 171, 169, 165, 159, 158, 158, 152, 150, 161, 157, 167, 161, 147, 170, 156, 154, 160, 160, 157, 167, 162, 166, 156, 159, 163, 166, 152, 160, 155, 162, 155, 147, 157, 159, 160, 163, 158, 157, 169, 156, 157, 150, 162, 156, 153, 160, 162, 160, 173, 156, 163, 158, 158, 160, 162, 154, 163, 155, 159, 160, 164, 162, 159, 168, 164, 154, 149, 167, 156, 175, 162, 131, 153, 157, 158, 164, 168, 155, 167, 170, 160, 167, 155, 152, 161, 154, 157, 165, 160, 157, 153, 159, 153, 146, 158, 163, 152, 163, 169, 165, 159, 150, 175, 158, 152, 170, 156, 157, 165, 156, 160, 161, 154, 151, 156, 154, 160, 176, 159, 154, 160, 159, 159, 163, 153, 164, 159, 158, 152, 162, 158, 172, 155, 155, 162, 164, 155, 159, 158, 157, 157, 157, 164, 157, 160, 160, 160, 153, 162, 155, 159, 155, 149, 160, 160, 149, 155, 165, 161, 155, 166, 149, 159, 169, 161, 151, 174, 158, 159, 167, 154, 147, 161, 153, 153, 154, 161, 178, 159, 159, 154, 154, 156, 172, 166, 164, 176, 155, 162, 174, 166, 160, 161, 176, 162, 154, 143, 165, 164, 162, 167, 161, 154, 160, 159, 158, 163, 163, 159, 157, 157, 153, 165, 168, 155, 159, 160, 164, 163, 161, 159, 151, 157, 166, 157, 154, 163, 164, 169, 160, 154, 157, 159, 167, 164, 159, 163, 157, 137, 151, 158, 157, 157, 164, 158, 162, 160, 156, 161, 155, 159, 153, 154, 156, 160, 167, 155, 171, 166, 165, 167, 159, 158, 162, 160, 155, 140, 153, 162, 166, 157, 165, 157, 161, 163, 162, 166, 161, 164, 166, 162, 161, 162, 160, 161, 162, 147, 159, 155, 150, 159, 159, 164, 152, 155, 163, 159, 162, 151, 163, 165, 149, 162, 164, 164, 164, 134, 163, 147, 160, 163, 160, 156, 159, 161, 156, 160, 142, 156, 155, 165, 155, 157, 159, 177, 165, 163, 173, 159, 161, 165, 151, 164, 153, 156, 138, 160, 168, 162, 160, 154, 164, 156, 162, 149, 161, 161, 156, 155, 160, 151, 157, 153, 163, 165, 162, 162, 155, 160, 175, 156, 168, 156, 169, 159, 157, 166, 160, 170, 158, 158, 153, 158, 157, 157, 161, 158, 153, 157, 163, 164, 156, 156, 158, 171, 160, 160, 166, 164, 167, 161, 159, 160, 166, 152, 162, 165, 159, 157, 172, 158, 160, 160, 157, 156, 146, 166, 171, 167, 151, 166, 158, 159, 163, 163, 159, 156, 153, 172, 153, 159, 161, 157, 159, 159, 162, 161, 148, 158, 159, 157, 160, 157, 166, 158, 160, 158, 163, 161, 160, 142, 157, 173, 158, 162, 154, 163, 162, 157, 152, 154, 157, 156, 171, 159, 159, 158, 160, 140, 154, 169, 161, 159, 164, 167, 154, 156, 165, 161, 159, 149, 160, 165, 154, 154, 161, 159, 159, 158, 165, 154, 154, 165, 161, 156, 170, 164, 158, 161, 159, 162, 158, 160, 156, 157, 162, 161, 155, 158, 164, 172, 161, 160, 155, 158, 163, 158, 158, 163, 157, 162, 154, 161, 162, 159, 157, 153, 149, 155, 161, 164, 158, 170, 159, 164, 163, 157, 161, 167, 160, 159, 158, 160, 162, 157, 150, 160, 166, 181, 165, 162, 155, 160, 158, 150, 159, 164, 162, 157, 160, 162, 170, 162, 163, 162, 169, 151, 158, 161, 154, 160, 164, 161, 163, 162, 149, 169, 152, 164, 167, 166, 160, 160, 171, 162, 165, 163, 159, 162, 156, 159, 160, 167, 161, 166, 167, 157, 159, 161, 161, 159, 154, 159, 154, 163, 162, 167, 155, 157, 161, 160, 166, 167, 166, 157, 161, 161, 158, 162, 148, 161, 159, 171, 165, 160, 161, 159, 160, 160, 160, 160, 158, 154, 162, 163, 147, 158, 161, 156, 155, 176, 161, 160, 163, 163, 163, 157, 169, 164, 171, 171, 160, 146, 163, 146, 156, 154, 161, 172, 140, 152, 153, 163, 147, 160, 163, 163, 156, 157, 158, 176, 160, 158, 173, 159, 160, 152, 158, 162, 161, 179, 162, 160, 159, 163, 148, 159, 153, 153, 161, 164, 149, 159, 159, 153, 161, 156, 158, 161, 160, 166, 159, 155, 159, 156, 161, 156, 158, 163, 156, 157, 159, 158, 166, 156, 159, 162, 159, 159, 157, 159, 165, 153, 157, 159, 179, 159, 163, 165, 159, 167, 163, 160, 159, 152, 155, 146, 163, 158, 166, 161, 165, 164, 164, 165, 163, 155, 157, 156, 161, 180, 162, 161, 166, 152, 159, 180, 147, 160, 152, 157, 155, 163, 167, 169, 146, 156, 158, 153, 143, 161, 166, 166, 162, 159, 157, 167, 156, 158, 165, 156, 164, 159, 155, 157, 169, 154, 158, 165, 153, 162, 159, 163, 154, 167, 166, 160, 165, 163, 155, 159, 163, 161, 153, 162, 163, 160, 160, 159, 164, 152, 164, 162, 157, 163, 161, 161, 158, 159, 156, 156, 160, 161, 150, 156, 160, 165, 162, 158, 159, 151, 156, 161, 161, 154, 171, 165, 159, 159, 159, 160, 153, 162, 158, 156, 157, 160, 159, 177, 157, 162, 161, 161, 145, 154, 164, 158, 154, 157, 156, 155, 157, 163, 153, 154, 153, 164, 153, 156, 166, 155, 165, 154, 159, 148, 163, 160, 154, 159, 157, 175, 157, 162, 166, 157, 156, 163, 160, 151, 155, 156, 160, 164, 162, 163, 151, 155, 152, 158, 151, 153, 169, 149, 156, 150, 163, 171, 158, 156, 156, 155, 167, 162, 160, 154, 159, 158, 159, 157, 168, 155, 155, 161, 160, 160, 159, 159, 154, 164, 168, 170, 158, 174, 153, 167, 156, 157, 165, 161, 155, 161, 161, 155, 153, 162, 154, 153, 155, 153, 163, 157, 155, 171, 168, 155, 159, 168, 158, 167, 168, 162, 163, 191, 154, 158, 163, 164, 161, 167, 159, 158, 155, 152, 167, 155, 154, 163, 153, 161, 169, 165, 157, 158, 156, 162, 162, 157, 168, 165, 158, 159, 162, 151, 162, 156, 152, 167, 152, 153, 146, 157, 157, 164, 159, 165, 166, 158, 162, 160, 156, 160, 149, 159, 158, 158, 158, 173, 157, 165, 152, 160, 164, 170, 155, 157, 162, 164, 157, 155, 161, 155, 162, 159, 155, 158, 162, 162, 154, 154, 163, 158, 156, 154, 158, 166, 168, 159, 157, 138, 165, 170, 156, 164, 159, 162, 160, 165, 162, 154, 158, 153, 162, 156, 153, 150, 160, 169, 155, 157, 151, 158, 157, 159, 154, 162, 156, 155, 162, 152, 173, 155, 155, 167, 163, 160, 165, 164, 159, 160, 164, 150, 164, 160, 156, 158, 167, 159, 157, 149, 156, 165, 161, 159, 159, 158, 153, 156, 165, 167, 151, 161, 159, 164, 159, 158, 161, 159, 155, 161, 158, 157, 159, 161, 158, 157, 159, 157, 162, 161, 157, 157, 158, 162, 161, 156, 161, 161, 157, 157, 161, 156, 160, 164, 161, 157, 158, 171, 163, 161, 163, 156, 154, 158, 175, 158, 166, 162, 164, 159, 168, 161, 162, 146, 150, 160, 157, 156, 158, 159, 156, 175, 164, 165, 157, 156, 157, 164, 160, 159, 151, 157, 163, 172, 163, 163, 174, 154, 154, 158, 158, 161, 158, 156, 167, 164, 158, 160, 175, 151, 149, 160, 150, 153, 158, 160, 154, 165, 157, 159, 156, 161, 155, 155, 169, 164, 180, 157, 160, 153, 158, 157, 149, 182, 157, 152, 163, 167, 158, 151, 161, 163, 150, 154, 167, 157, 161, 160, 169, 162, 157, 165, 159, 167, 162, 158, 154, 158, 164, 146, 159, 150, 158, 154, 160, 157, 160, 167, 177, 155, 152, 162, 158, 178, 157, 158, 159, 155, 161, 143, 153, 161, 151, 157, 151, 160, 164, 161, 172, 164, 159, 161, 155, 156, 168, 162, 157, 152, 154, 175, 159, 156, 162, 166, 153, 169, 168, 161, 157, 164, 174, 157, 155, 161, 156, 160, 162, 167, 155, 164, 160, 166, 166, 163, 158, 169, 160, 153, 162, 170, 156, 162, 160, 149, 159, 161, 159, 165, 159, 156, 160, 166, 167, 160, 158, 173, 161, 161, 167, 163, 167, 180, 156, 150, 166, 162, 158, 153, 173, 165, 159, 167, 153, 164, 164, 167, 154, 162, 167, 157, 156, 170, 162, 160, 163, 156, 157, 156, 157, 163, 159, 159, 155, 155, 160, 161, 170, 145, 167, 147, 166, 165, 163, 167, 159, 159, 152, 159, 159, 160, 163, 171, 161, 151, 161, 165, 162, 162, 158, 156, 165, 153, 158, 168, 156, 163, 150, 168, 151, 166, 158, 148, 157, 160, 155, 167, 160, 158, 158, 161, 158, 159, 165, 165, 155, 155, 166, 152, 157, 143, 158, 163, 169, 156, 159, 155, 157, 164, 158, 168, 153, 157, 153, 165, 161, 147, 152, 168, 156, 156, 165, 162, 152, 160, 167, 157, 155, 156, 167, 157, 157, 154, 169, 138, 155, 164, 172, 162, 161, 160, 155, 157, 157, 158, 153, 162, 155, 159, 159, 171, 157, 150, 160, 162, 161, 162, 150, 159, 168, 165, 158, 167, 169, 157, 169, 149, 162, 158, 168, 155, 166, 160, 160, 160, 171, 158, 158, 154, 164, 158, 161, 151, 158, 159, 161, 164, 155, 149, 155, 156, 163, 160, 158, 158, 159, 167, 148, 165, 158, 160, 159, 161, 166, 152, 167, 160, 160, 155, 159, 164, 165, 143, 165, 160, 165, 161, 155, 159, 157, 182, 168, 157, 149, 164, 166, 160, 157, 159, 169, 168, 160, 164, 158, 167, 167, 145, 162, 153, 162, 161, 157, 155, 162, 152, 156, 164, 171, 155, 161, 159, 167, 145, 158, 155, 167, 160, 163, 160, 163, 161, 156, 164, 165, 159, 163, 153, 161, 161, 153, 169, 141, 156, 157, 166, 160, 166, 165, 158, 161, 161, 153, 181, 160, 163, 134, 158, 154, 161, 172, 163, 157, 163, 159, 156, 158, 154, 154, 164, 170, 155, 163, 160, 156, 158, 155, 161, 151, 172, 163, 159, 163, 161, 159, 157, 160, 169, 156, 162, 164, 157, 153, 159, 154, 156, 157, 159, 163, 157, 162, 167, 153, 165, 166, 161, 160, 162, 156, 157, 155, 156, 163, 161, 158, 163, 156, 166, 157, 191, 163, 164, 157, 159, 154, 152, 170, 160, 163, 156, 184, 157, 159, 163, 164, 159, 161, 167, 163, 158, 164, 162, 162, 158, 152, 169, 178, 163, 158, 156, 154, 164, 152, 167, 165, 159, 161, 155, 157, 159, 160, 151, 166, 159, 162, 159, 161, 156, 158, 160, 159, 157, 151, 156, 168, 164, 168, 166, 157, 165, 160, 150, 161, 156, 160, 162, 155, 162, 170, 162, 158, 163, 155, 164, 151, 161, 169, 166, 159, 166, 171, 159, 157, 158, 152, 157, 159, 163, 162, 161, 164, 161, 157, 156, 152, 159, 157, 147, 160, 164, 158, 163, 163, 158, 165, 161, 185, 165, 153, 163, 164, 155, 151, 166, 159, 157, 156, 155, 166, 158, 156, 149, 154, 156, 164, 161, 158, 158, 159, 163, 165, 163, 168, 156, 161, 160, 157, 161, 153, 151, 151, 168, 169, 150, 163, 171, 161, 164, 171, 159, 163, 165, 155, 154, 153, 162, 156, 157, 157, 159, 159, 150, 155, 150, 153, 156, 161, 171, 167, 162, 158, 160, 160, 161, 167, 156, 165, 152, 168, 160, 161, 153, 159, 170, 153, 163, 164, 150, 156, 171, 157, 166, 159, 159, 148, 158, 156, 159, 162, 155, 160, 157, 163, 155, 165, 158, 149, 152, 157, 157, 161, 155, 157, 152, 150, 157, 155, 163, 157, 154, 156, 161, 165, 162, 160, 183, 161, 155, 166, 153, 150, 161, 160, 154, 170, 161, 159, 157, 158, 159, 155, 164, 159, 150, 152, 156, 160, 155, 149, 157, 159, 152, 179, 158, 163, 155, 164, 153, 158, 150, 150, 157, 166, 166, 168, 142, 151, 158, 153, 172, 164, 152, 165, 152, 155, 169, 146, 150, 154, 166, 156, 159, 164, 166, 169, 162, 152, 147, 152, 158, 159, 155, 159, 160, 153, 155, 171, 164, 159, 154, 162, 160, 170, 163, 166, 145, 177, 150, 161, 153, 147, 154, 166, 170, 166, 157, 158, 164, 158, 168, 153, 160, 160, 170, 168, 162, 164, 159, 164, 168, 161, 164, 155, 160, 174, 173, 159, 153, 153, 157, 154, 160, 163, 169, 154, 162, 151, 163, 155, 164, 154, 165, 158, 164, 152, 154, 166, 157, 160, 153, 163, 159, 164, 166, 163, 164, 160, 157, 154, 169, 153, 164, 166, 164, 150, 157, 151, 159, 164, 159, 155, 154, 154, 161, 167, 155, 162, 163, 159, 168, 159, 156, 163, 165, 160, 166, 163, 161, 158, 163, 154, 156, 158, 158, 164, 169, 165, 148, 159, 162, 160, 155, 160, 148, 177, 159, 160, 158, 163, 154, 166, 157, 167, 155, 158, 162, 174, 148, 160, 160, 164, 159, 167, 168, 163, 164, 166, 162, 163, 162, 160, 156, 154, 165, 161, 156, 158, 162, 158, 147, 155, 161, 159, 155, 153, 155, 157, 159, 167, 163, 171, 176, 160, 150, 159, 153, 154, 163, 165, 165, 169, 166, 158, 163, 153, 164, 170, 157, 173, 166, 165, 157, 165, 160, 151, 154, 148, 157, 154, 163, 161, 165, 152, 168, 155, 165, 170, 157, 159, 163, 173, 150, 160, 159, 161, 162, 162, 149, 152, 149, 154, 161, 163, 161, 161, 154, 169, 154, 154, 163, 155, 155, 163, 165, 153, 159, 162, 158, 154, 151, 148, 156, 172, 155, 158, 156, 156, 163, 161, 166, 146, 159, 164, 169, 161, 153, 154, 165, 154, 156, 160, 158, 152, 151, 157, 150, 159, 157, 155, 161, 153, 155, 154, 147, 158, 162, 156, 166, 165, 159, 154, 149, 153, 168, 156, 156, 149, 161, 147, 153, 163, 169, 161, 173, 158, 160, 152, 154, 162, 161, 157, 173, 153, 161, 154, 162, 168, 156, 158, 169, 159, 160, 152, 175, 151, 149, 161, 161, 157, 164, 153, 150, 161, 156, 159, 157, 157, 166, 169, 167, 163, 170, 156, 172, 158, 154, 155, 162, 158, 156, 153, 161, 162, 159, 152, 175, 149, 167, 164, 160, 159, 173, 165, 150, 157, 168, 144, 155, 162, 161, 155, 158, 158, 167, 156, 158, 162, 162, 152, 166, 159, 163, 156, 160, 165, 160, 153, 149, 162, 146, 144, 168, 165, 147, 168, 159, 163, 163, 155, 163, 156, 157, 160, 158, 164, 155, 158, 163, 157, 148, 168, 160, 160, 159, 158, 158, 153, 161, 155, 161, 161, 152, 161, 157, 164, 148, 148, 156, 151, 162, 162, 157, 163, 159, 156, 158, 173, 154, 154, 165, 178, 150, 156, 160, 159, 153, 158, 156, 155, 154, 168, 147, 163, 159, 160, 158, 153, 168, 153, 154, 175, 157, 155, 163, 154, 159, 170, 158, 161, 160, 159, 160, 158, 168, 148, 155, 156, 155, 157, 161, 162, 155, 163, 160, 158, 174, 162, 155, 159, 172, 160, 151, 136, 165, 166, 162, 152, 153, 155, 155, 151, 162, 158, 162, 160, 157, 160, 146, 151, 210, 158, 154, 161, 149, 159, 166, 159, 160, 156, 148, 161, 150, 164, 157, 156, 160, 163, 154, 164, 158, 163, 151, 158, 157, 172, 154, 156, 153, 160, 158, 157, 167, 153, 159, 164, 150, 154, 155, 163, 161, 153, 153, 152, 149, 158, 158, 145, 157, 161, 182, 156, 162, 155, 162, 162, 161, 165, 154, 155, 164, 163, 157, 153, 163, 160, 166, 163, 154, 159, 160, 156, 154, 153, 157, 161, 156, 169, 165, 160, 160, 158, 169, 170, 150, 153, 142, 160, 154, 158, 162, 168, 154, 156, 164, 157, 162, 159, 161, 161, 151, 167, 166, 149, 154, 154, 153, 156, 165, 167, 158, 170, 153, 165, 166, 150, 161, 159, 168, 159, 159, 160, 153, 152, 154, 160, 152, 164, 153, 159, 149, 167, 152, 153, 159, 159, 155, 159, 158, 168, 163, 149, 158, 141, 165, 159, 161, 149, 149, 161, 161, 161, 155, 163, 166, 166, 150, 159, 167, 158, 159, 167, 164, 159, 154, 160, 157, 159, 159, 163, 163, 155, 159, 153, 157, 158, 159, 164, 169, 166, 155, 163, 159, 170, 158, 144, 152, 164, 173, 157, 152, 162, 160, 171, 162, 164, 157, 155, 166, 153, 166, 146, 164, 153, 159, 163, 155, 170, 162, 150, 162, 164, 153, 161, 169, 157, 162, 148, 168, 163, 152, 153, 172, 176, 173, 158, 164, 166, 167, 148, 152, 152, 140, 166, 158, 157, 159, 163, 151, 154, 156, 163, 154, 149, 152, 178, 158, 158, 165, 158, 160, 165, 160, 156, 152, 164, 158, 168, 153, 160, 170, 177, 171, 156, 163, 155, 160, 193, 154, 149, 150, 161, 150, 158, 158, 166, 155, 160, 159, 157, 160, 152, 158, 159, 154, 155, 164, 166, 158, 157, 160, 156, 150, 154, 163, 165, 163, 167, 162, 153, 155, 160, 161, 165, 164, 150, 165, 168, 159, 166, 161, 170, 162, 151, 168, 157, 160, 166, 164, 160, 158, 160, 164, 163, 167, 166, 152, 166, 153, 161, 158, 148, 159, 158, 157, 154, 158, 161, 166, 163, 155, 151, 160, 161, 170, 160, 170, 156, 146, 161, 157, 148, 164, 162, 166, 163, 160, 152, 161, 150, 158, 163, 164, 159, 155, 162, 150, 157, 162, 162, 169, 158, 156, 163, 160, 161, 157, 160, 169, 159, 166, 159, 153, 166, 164, 160, 158, 172, 154, 159, 157, 164, 159, 168, 158, 162, 156, 152, 179, 164, 169, 163, 149, 163, 163, 163, 167, 159, 160, 156, 154, 157, 162, 161, 155, 164, 159, 149, 159, 139, 163, 166, 160, 164, 149, 160, 158, 157, 153, 160, 161, 168, 159, 165, 170, 166, 171, 150, 161, 153, 162, 159, 163, 158, 153, 165, 162, 161, 159, 153, 164, 146, 154, 157, 163, 165, 148, 157, 160, 145, 165, 161, 165, 162, 165, 157, 156, 161, 153, 162, 166, 156, 164, 159, 158, 153, 159, 173, 155, 160, 162, 160, 171, 168, 166, 161, 158, 160, 158, 156, 158, 159, 154, 156, 165, 159, 150, 164, 159, 157, 164, 164, 151, 162, 149, 163, 158, 158, 154, 157, 161, 155, 159, 164, 171, 166, 162, 147, 163, 152, 160, 163, 162, 167, 171, 158, 157, 166, 155, 168, 155, 155, 160, 158, 159, 161, 166, 157, 163, 170, 154, 142, 148, 165, 159, 164, 154, 165, 168, 151, 160, 159, 159, 153, 169, 163, 158, 157, 163, 153, 162, 152, 156, 159, 163, 167, 159, 162, 160, 152, 160, 156, 156, 162, 154, 155, 163, 163, 158, 164, 149, 164, 154, 172, 161, 158, 164, 158, 151, 158, 148, 156, 157, 155, 152, 165, 156, 164, 152, 155, 154, 151, 172, 159, 170, 165, 161, 171, 160, 173, 153, 171, 160, 168, 157, 160, 155, 158, 157, 156, 160, 166, 153, 171, 160, 160, 162, 177, 170, 155, 157, 158, 164, 150, 158, 165, 167, 160, 159, 164, 160, 157, 159, 147, 163, 161, 171, 159, 169, 176, 171, 139, 152, 150, 168, 153, 157, 165, 155, 155, 164, 171, 157, 161, 175, 158, 166, 152, 154, 157, 170, 163, 162, 153, 167, 155, 149, 168, 166, 170, 161, 162, 163, 151, 162, 175, 159, 164, 166, 161, 168, 167, 156, 158, 163, 163, 157, 153, 156, 159, 155, 167, 159, 160, 142, 155, 153, 154, 165, 169, 157, 163, 158, 153, 161, 159, 158, 161, 158, 163, 150, 152, 160, 176, 155, 147, 148, 159, 160, 157, 168, 162, 159, 163, 161, 157, 170, 159, 160, 165, 163, 161, 164, 163, 145, 154, 159, 151, 156, 165, 151, 162, 156, 173, 161, 153, 150, 160, 155, 158, 161, 169, 168, 154, 159, 156, 159, 163, 162, 167, 155, 159, 165, 156, 152, 161, 156, 155, 160, 158, 168, 156, 148, 153, 160, 168, 165, 163, 164, 161, 155, 162, 150, 154, 160, 170, 155, 173, 151, 160, 158, 163, 144, 167, 149, 153, 155, 151, 162, 149, 171, 155, 166, 162, 165, 156, 164, 162, 155, 163, 152, 155, 157, 167, 160, 160, 162, 153, 164, 171, 158, 162, 159, 160, 170, 168, 156, 168, 161, 162, 147, 155, 148, 163, 149, 166, 166, 159, 152, 158, 156, 157, 165, 154, 159, 154, 164, 159, 177, 156, 164, 161, 171, 159, 164, 166, 160, 156, 177, 150, 169, 161, 158, 163, 166, 157, 158, 157, 156, 161, 166, 165, 159, 165, 151, 157, 155, 170, 160, 158, 164, 156, 157, 157, 161, 158, 162, 154, 172, 163, 159, 159, 163, 162, 147, 152, 155, 163, 162, 164, 155, 163, 158, 153, 160, 163, 158, 163, 157, 158, 161, 154, 167, 163, 154, 161, 156, 162, 166, 164, 167, 157, 171, 165, 159, 159, 158, 164, 152, 161, 160, 163, 171, 153, 153, 164, 152, 168, 152, 149, 151, 162, 163, 161, 166, 149, 165, 156, 162, 158, 156, 147, 153, 161, 162, 160, 158, 161, 162, 156, 161, 148, 160, 156, 167, 162, 164, 160, 154, 161, 163, 160, 161, 162, 165, 163, 158, 162, 156, 165, 170, 153, 159, 154, 154, 156, 162, 163, 152, 160, 161, 162, 161, 155, 148, 156, 164, 150, 158, 167, 158, 162, 159, 157, 153, 151, 162, 156, 165, 163, 162, 157, 161, 145, 171, 154, 158, 163, 167, 153, 158, 162, 166, 167, 167, 161, 161, 166, 167, 157, 165, 149, 152, 160, 159, 166, 170, 156, 162, 160, 164, 164, 154, 163, 158, 166, 159, 158, 160, 171, 167, 155, 157, 168, 157, 154, 161, 160, 167, 158, 170, 159, 151, 165, 173, 164, 156, 159, 154, 159, 161, 158, 159, 162, 159, 143, 159, 156, 157, 163, 162, 159, 168, 153, 157, 166, 176, 162, 163, 157, 171, 169, 154, 168, 165, 157, 159, 153, 154, 157, 160, 158, 162, 157, 170, 159, 160, 159, 160, 159, 164, 165, 160, 157, 159, 156, 161, 162, 157, 163, 156, 162, 174, 161, 154, 156, 156, 160, 168, 159, 162, 163, 163, 160, 159, 172, 153, 150, 162, 163, 151, 159, 173, 161, 151, 166, 162, 157, 159, 159, 150, 156, 154, 164, 166, 161, 166, 145, 154, 166, 157, 152, 152, 163, 163, 163, 164, 162, 162, 165, 158, 161, 156, 163, 162, 159, 154, 168, 158, 166, 161, 162, 168, 163, 156, 161, 165, 165, 155, 160, 162, 158, 162, 173, 156, 163, 162, 154, 166, 156, 153, 162, 163, 160, 155, 162, 157, 169, 158, 160, 163, 163, 159, 162, 152, 176, 154, 158, 155, 163, 163, 156, 173, 166, 155, 155, 165, 159, 155, 159, 158, 150, 160, 161, 167, 164, 160, 162, 166, 160, 158, 157, 156, 152, 163, 164, 158, 155, 161, 164, 152, 165, 151, 161, 150, 163, 156, 150, 155, 159, 162, 158, 162, 165, 161, 163, 168, 168, 167, 167, 155, 152, 159, 158, 160, 168, 167, 160, 161, 162, 161, 159, 153, 158, 163, 146, 162, 162, 168, 154, 155, 165, 155, 160, 164, 173, 153, 160, 159, 157, 152, 157, 157, 158, 168, 162, 156, 150, 159, 164, 165, 160, 162, 155, 161, 160, 166, 161, 155, 153, 158, 168, 156, 161, 157, 153, 163, 159, 150, 156, 166, 165, 153, 160, 170, 153, 168, 153, 164, 155, 166, 161, 148, 162, 160, 166, 155, 157, 151, 153, 159, 160, 162, 158, 161, 158, 155, 154, 164, 160, 164, 156, 155, 163, 170, 161, 160, 157, 160, 164, 166, 157, 145, 156, 169, 153, 155, 157, 160, 157, 170, 155, 156, 156, 177, 163, 157, 158, 153, 161, 161, 161, 162, 157, 168, 158, 160, 159, 156, 149, 173, 163, 159, 157, 152, 157, 145, 156, 160, 166, 153, 167, 151, 156, 153, 157, 160, 160, 165, 150, 154, 163, 153, 164, 161, 167, 173, 162, 160, 163, 157, 150, 160, 160, 157, 155, 168, 168, 161, 157, 160, 162, 167, 166, 158, 144, 155, 167, 158, 165, 150, 152, 160, 153, 153, 168, 159, 165, 162, 166, 161, 162, 146, 152, 157, 155, 155, 158, 165, 160, 155, 153, 167, 152, 161, 159, 156, 158, 161, 150, 156, 152, 162, 165, 168, 158, 154, 161, 162, 164, 166, 160, 157, 169, 168, 154, 165, 151, 155, 160, 155, 161, 154, 159, 146, 168, 165, 159, 149, 174, 165, 173, 169, 169, 155, 152, 159, 154, 157, 166, 143, 169, 161, 160, 154, 176, 154, 163, 154, 160, 163, 158, 164, 165, 159, 163, 170, 151, 165, 150, 156, 160, 156, 155, 163, 165, 165, 159, 186, 163, 157, 162, 155, 175, 170, 155, 163, 157, 163, 164, 162, 167, 155, 160, 161, 157, 163, 164, 161, 166, 165, 153, 159, 163, 158, 155, 169, 147, 159, 155, 167, 155, 169, 157, 161, 159, 168, 158, 152, 160, 168, 149, 162, 171, 157, 153, 155, 169, 171, 166, 162, 168, 169, 150, 167, 167, 159, 159, 172, 160, 158, 165, 153, 150, 161, 151, 159, 168, 142, 161, 157, 165, 167, 159, 162, 162, 165, 149, 162, 157, 154, 155, 158, 161, 161, 174, 157, 170, 164, 173, 163, 163, 157, 164, 159, 163, 156, 161, 162, 156, 160, 163, 153, 162, 169, 160, 163, 162, 162, 152, 155, 164, 158, 162, 157, 158, 176, 160, 167, 167, 156, 166, 156, 163, 160, 157, 170, 154, 161, 160, 166, 155, 160, 153, 164, 162, 162, 160, 157, 158, 158, 159, 159, 157, 162, 162, 163, 167, 154, 156, 156, 166, 161, 156, 159, 173, 161, 166, 167, 162, 163, 154, 162, 155, 162, 174, 164, 154, 169, 168, 157, 159, 171, 162, 163, 154, 157, 159, 152, 168, 165, 167, 161, 161, 164, 153, 156, 161, 162, 165, 160, 161, 164, 154, 146, 175, 176, 164, 146, 149, 166, 157, 155, 153, 154, 151, 161, 161, 140, 155, 163, 158, 154, 166, 155, 159, 152, 160, 161, 155, 153, 162, 163, 157, 165, 165, 168, 162, 161, 158, 166, 143, 162, 159, 157, 168, 163, 155, 165, 152, 160, 160, 167, 155, 166, 156, 148, 146, 168, 158, 168, 158, 165, 158, 159, 161, 162, 165, 156, 159, 147, 164, 162, 163, 158, 160, 149, 160, 149, 153, 155, 164, 155, 159, 158, 152, 166, 165, 166, 160, 160, 156, 175, 150, 158, 164, 155, 157, 172, 163, 148, 159, 156, 164, 155, 157, 168, 165, 158, 149, 158, 159, 147, 149, 164, 165, 157, 168, 159, 159, 152, 157, 161, 156, 139, 149, 159, 155, 161, 157, 155, 158, 164, 167, 148, 159, 165, 171, 158, 166, 152, 164, 164, 160, 160, 160, 159, 164, 165, 161, 161, 157, 160, 163, 158, 160, 164, 159, 166, 159, 161, 155, 159, 169, 153, 157, 157, 157, 162, 156, 155, 162, 155, 161, 163, 161, 161, 159, 161, 164, 163, 173, 156, 162, 160, 154, 162, 159, 161, 149, 160, 161, 166, 171, 158, 162, 162, 164, 166, 159, 164, 162, 167, 157, 163, 160, 156, 159, 161, 162, 155, 160, 156, 157, 158, 158, 159, 160, 159, 164, 159, 158, 158, 159, 160, 162, 168, 165, 162, 159, 157, 159, 157, 160, 160, 165, 159, 162, 157, 156, 164, 158, 164, 152, 160, 161, 139, 160, 162, 161, 166, 158, 161, 159, 149, 160, 161, 161, 165, 164, 161, 161, 153, 167, 155, 164, 157, 162, 161, 162, 160, 160, 157, 158, 158, 163, 163, 173, 159, 161, 164, 158, 166, 174, 162, 157, 158, 159, 160, 158, 157, 158, 164, 161, 170, 155, 161, 156, 160, 155, 165, 163, 165, 162, 170, 160, 161, 160, 163, 160, 162, 160, 164, 158, 160, 161, 162, 160, 157, 163, 160, 159, 161, 162, 159, 160, 158, 158, 161, 170, 159, 160, 160, 158, 161, 159, 162, 163, 161, 166, 162, 157, 165, 158, 164, 153, 155, 163, 162, 160, 157, 160, 159, 158, 167, 158, 161, 155, 169, 161, 161, 163, 168, 161, 161, 161, 163, 166, 162, 160, 157, 161, 163, 158, 173, 159, 162, 157, 153, 164, 160, 162, 157, 168, 156, 159, 158, 160, 155, 160, 159, 160, 166, 159, 174, 165, 154, 160, 158, 161, 161, 160, 150, 170, 163, 156, 157, 159, 160, 162, 162, 156, 161, 158, 159, 158, 159, 154, 163, 155, 160, 162, 162, 163, 164, 164, 159, 176, 157, 160, 168, 159, 162, 154, 159, 157, 160, 157, 159, 163, 159, 159, 160, 151, 163, 161, 160, 157, 156, 160, 151, 160, 159, 159, 165, 161, 159, 158, 159, 159, 160, 162, 159, 155, 155, 164, 158, 158, 160, 164, 161, 173, 159, 159, 153, 157, 162, 157, 160, 166, 151, 159, 170, 159, 162, 162, 160, 162, 159, 169, 162, 156, 156, 157, 155, 156, 172, 157, 155, 161, 159, 164, 156, 155, 161, 161, 161, 162, 163, 161, 153, 161, 158, 168, 161, 164, 160, 157, 163, 159, 163, 157, 162, 160, 155, 160, 160, 164, 163, 161, 160, 158, 163, 153, 158, 162, 162, 159, 158, 159, 159, 157, 156, 160, 161, 162, 156, 161, 152, 161, 161, 165, 159, 160, 165, 161, 161, 162, 158, 160, 161, 156, 162, 161, 159, 161, 160, 157, 160, 159, 155, 160, 157, 159, 164, 172, 157, 153, 157, 155, 157, 164, 161, 159, 160, 156, 158, 161, 158, 159, 157, 167, 153, 164, 160, 157, 159, 160, 163, 160, 161, 169, 163, 162, 154, 161, 157, 155, 156, 167, 158, 159, 159, 158, 158, 162, 161, 172, 162, 160, 188, 164, 159, 160, 157, 161, 158, 163, 163, 162, 161, 161, 160, 158, 158, 158, 162, 159, 161, 156, 160, 156, 155, 157, 163, 159, 156, 161, 146, 160, 160, 161, 160, 154, 163, 161, 164, 159, 167, 156, 158, 161, 162, 163, 147, 160, 158, 156, 152, 153, 155, 167, 168, 142, 159, 165, 161, 161, 163, 165, 139, 167, 170, 155, 164, 160, 153, 162, 158, 158, 166, 153, 162, 159, 163, 178, 158, 178, 159, 153, 164, 153, 165, 160, 162, 164, 179, 169, 165, 162, 161, 158, 164, 163, 164, 159, 161, 168, 166, 163, 162, 160, 154, 179, 163, 158, 151, 166, 171, 158, 166, 156, 147, 165, 152, 180, 163, 165, 161, 169, 155, 175, 153, 160, 159, 160, 154, 162, 160, 154, 154, 156, 153, 160, 158, 175, 153, 160, 161, 157, 151, 158, 156, 171, 159, 164, 161, 160, 158, 172, 147, 161, 162, 154, 170, 151, 166, 155, 151, 166, 158, 147, 162, 160, 164, 156, 167, 158, 162, 161, 160, 161, 157, 168, 156, 155, 160, 164, 164, 165, 163, 162, 153, 163, 172, 158, 154, 173, 151, 156, 156, 158, 165, 163, 156, 156, 154, 147, 157, 162, 161, 160, 154, 157, 168, 168, 153, 145, 171, 155, 158, 156, 162, 158, 152, 141, 162, 172, 158, 163, 164, 162, 158, 157, 164, 157, 154, 158, 161, 158, 148, 155, 171, 152, 160, 158, 145, 154, 171, 160, 165, 159, 150, 155, 164, 153, 161, 156, 164, 163, 167, 157, 165, 166, 151, 155, 161, 162, 158, 172, 165, 163, 155, 166, 159, 164, 166, 153, 155, 163, 166, 163, 153, 158, 160, 157, 162, 159, 158, 159, 159, 159, 149, 167, 151, 159, 170, 156, 152, 163, 171, 150, 153, 156, 162, 155, 156, 147, 159, 156, 149, 156, 162, 164, 159, 161, 157, 161, 149, 150, 167, 168, 158, 163, 152, 164, 161, 159, 158, 149, 173, 138, 162, 162, 160, 160, 154, 150, 162, 157, 166, 165, 160, 164, 158, 153, 163, 162, 158, 178, 170, 158, 153, 150, 170, 170, 161, 163, 159, 170, 169, 157, 170, 163, 157, 164, 154, 158, 177, 156, 162, 157, 159, 154, 163, 161, 163, 165, 167, 162, 169, 159, 166, 159, 159, 157, 163, 165, 161, 161, 153, 159, 159, 151, 154, 156, 163, 155, 168, 160, 151, 162, 161, 159, 148, 155, 164, 168, 162, 168, 167, 148, 164, 157, 158, 162, 157, 169, 153, 154, 176, 154, 160, 158, 155, 160, 166, 161, 163, 161, 169, 155, 160, 169, 158, 153, 160, 166, 166, 155, 163, 163, 163, 165, 162, 155, 176, 154, 168, 169, 162, 157, 166, 154, 158, 162, 161, 157, 156, 158, 166, 156, 162, 146, 153, 153, 169, 148, 156, 168, 166, 151, 162, 151, 160, 163, 160, 164, 159, 159, 157, 164, 163, 167, 163, 173, 164, 166, 164, 157, 167, 153, 158, 165, 155, 160, 155, 171, 154, 160, 166, 152, 161, 155, 150, 159, 167, 161, 159, 166, 154, 163, 167, 157, 166, 156, 147, 160, 161, 158, 163, 161, 163, 154, 158, 159, 167, 170, 164, 157, 164, 161, 162, 154, 163, 155, 159, 166, 152, 169, 160, 161, 164, 164, 158, 166, 153, 153, 160, 161, 157, 170, 149, 161, 173, 161, 158, 160, 156, 162, 157, 154, 163, 162, 159, 163, 162, 160, 162, 160, 160, 162, 156, 160, 158, 160, 161, 155, 158, 155, 151, 162, 161, 158, 164, 160, 164, 157, 160, 160, 160, 159, 157, 159, 157, 163, 161, 160, 160, 163, 160, 159, 162, 161, 154, 161, 164, 162, 163, 158, 155, 159, 161, 158, 160, 160, 159, 158, 161, 164, 160, 156, 163, 159, 158, 164, 159, 161, 159, 169, 159, 152, 160, 162, 159, 158, 162, 162, 159, 162, 174, 167, 164, 152, 160, 160, 163, 161, 167, 160, 164, 154, 165, 159, 157, 159, 158, 163, 155, 161, 165, 163, 162, 165, 159, 154, 155, 164, 156, 161, 162, 162, 162, 154, 159, 162, 156, 164, 167, 164, 159, 162, 159, 155, 158, 160, 161, 154, 159, 160, 160, 158, 162, 158, 163, 162, 158, 162, 161, 160, 162, 155, 158, 162, 160, 154, 163, 160, 160, 154, 163, 155, 156, 159, 163, 161, 157, 158, 160, 161, 167, 158, 162, 160, 164, 164, 166, 157, 162, 161, 157, 157, 158, 163, 162, 164, 161, 161, 162, 163, 157, 156, 171, 158, 157, 166, 164, 161, 163, 154, 163, 166, 158, 153, 161, 161, 161, 156, 161, 161, 159, 161, 164, 161, 163, 156, 156, 162, 162, 161, 162, 161, 163, 161, 160, 162, 156, 159, 162, 163, 172, 166, 157, 161, 158, 167, 163, 162, 163, 160, 161, 161, 163, 158, 161, 160, 160, 156, 159, 157, 161, 164, 168, 158, 160, 162, 162, 159, 160, 161, 161, 162, 159, 162, 161, 165, 163, 163, 160, 161, 163, 161, 162, 154, 154, 165, 163, 161, 162, 174, 165, 154, 159, 162, 159, 160, 159, 161, 159, 160, 163, 164, 159, 161, 163, 156, 162, 162, 153, 159, 159, 157, 172, 157, 155, 154, 164, 153, 162, 154, 156, 160, 167, 157, 165, 162, 158, 160, 158, 159, 155, 160, 157, 164, 159, 160, 162, 162, 158, 159, 156, 160, 160, 160, 156, 165, 158, 163, 162, 163, 162, 163, 165, 160, 160, 151, 161, 159, 163, 160, 164, 160, 163, 160, 160, 156, 161, 159, 160, 157, 164, 158, 157, 158, 161, 163, 151, 161, 171, 160, 164, 157, 161, 164, 161, 159, 156, 162, 166, 162, 164, 167, 161, 162, 160, 159, 165, 162, 165, 157, 159, 156, 154, 163, 159, 165, 159, 164, 161, 168, 162, 155, 164, 163, 160, 155, 162, 160, 158, 158, 161, 159, 162, 156, 165, 160, 162, 159, 160, 157, 161, 161, 156, 164, 162, 165, 159, 161, 160, 159, 161, 161, 160, 162, 159, 159, 164, 164, 159, 161, 158, 162, 157, 168, 160, 161, 162, 160, 155, 153, 156, 163, 159, 158, 163, 159, 167, 162, 162, 163, 161, 163, 160, 165, 167, 162, 154, 157, 155, 163, 158, 162, 159, 156, 159, 161, 160, 162, 168, 161, 155, 159, 157, 163, 167, 153, 157, 162, 161, 162, 157, 162, 161, 157, 160, 160, 164, 161, 154, 162, 157, 162, 160, 163, 161, 163, 156, 160, 158, 157, 160, 162, 165, 156, 158, 164, 163, 160, 154, 176, 155, 168, 159, 158, 149, 166, 151, 156, 145, 150, 154, 174, 149, 169, 174, 154, 150, 161, 158, 155, 163, 163, 160, 157, 159, 158, 160, 164, 160, 148, 165, 167, 172, 159, 165, 157, 158, 163, 174, 155, 150, 153, 160, 147, 154, 159, 163, 151, 169, 161, 156, 163, 149, 160, 169, 162, 161, 159, 152, 154, 157, 161, 157, 166, 159, 156, 148, 167, 174, 162, 171, 149, 159, 159, 153, 151, 155, 152, 166, 158, 151, 170, 153, 157, 156, 168, 159, 169, 162, 159, 157, 175, 167, 167, 169, 157, 153, 168, 159, 160, 163, 177, 161, 159, 153, 155, 158, 157, 168, 162, 162, 158, 158, 149, 169, 162, 155, 162, 158, 161, 150, 148, 155, 169, 159, 161, 162, 167, 160, 171, 154, 163, 153, 161, 160, 160, 179, 154, 155, 160, 162, 155, 156, 166, 156, 147, 166, 166, 165, 160, 154, 162, 162, 165, 177, 157, 162, 163, 163, 155, 166, 168, 159, 151, 148, 164, 158, 152, 161, 156, 157, 155, 171, 150, 160, 156, 164, 154, 157, 157, 156, 173, 160, 172, 162, 163, 170, 150, 156, 161, 165, 159, 158, 154, 158, 158, 171, 168, 167, 159, 162, 180, 157, 153, 158, 173, 175, 153, 161, 155, 155, 157, 166, 159, 158, 151, 158, 153, 153, 176, 157, 169, 166, 166, 157, 147, 159, 155, 165, 150, 168, 148, 154, 151, 160, 156, 148, 155, 163, 153, 193, 158, 155, 175, 162, 149, 158, 160, 161, 178, 168, 166, 164, 152, 167, 145, 160, 161, 157, 160, 174, 150, 155, 161, 173, 173, 152, 164, 166, 168, 154, 152, 160, 153, 171, 153, 153, 149, 150, 154, 157, 160, 161, 152, 158, 165, 156, 157, 162, 158, 151, 171, 152, 173, 158, 167, 164, 156, 152, 166, 154, 167, 178, 154, 157, 170, 152, 164, 163, 155, 162, 158, 154, 166, 145, 149, 148, 163, 162, 157, 157, 151, 158, 160, 154, 165, 164, 157, 162, 159, 155, 147, 144, 164, 163, 156, 161, 161, 157, 174, 156, 157, 161, 166, 165, 166, 170, 171, 164, 163, 161, 158, 157, 167, 155, 185, 152, 164, 165, 158, 159, 159, 151, 146, 158, 163, 161, 158, 163, 149, 169, 155, 159, 155, 158, 156, 163, 155, 158, 159, 154, 166, 145, 161, 159, 167, 145, 168, 173, 152, 160, 153, 175, 170, 158, 154, 160, 143, 157, 147, 152, 154, 158, 160, 153, 160, 137, 154, 164, 159, 159, 157, 137, 157, 154, 155, 147, 159, 165, 150, 167, 159, 152, 158, 177, 156, 161, 157, 163, 157, 158, 157, 172, 159, 155, 152, 162, 156, 176, 160, 160, 155, 163, 166, 166, 173, 169, 161, 164, 153, 162, 154, 146, 151, 163, 183, 147, 163, 172, 157, 165, 157, 160, 155, 158, 155, 163, 158, 161, 163, 166, 145, 176, 158, 163, 150, 157, 158, 166, 161, 172, 157, 157, 157, 188, 158, 151, 163, 161, 162, 161, 151, 159, 163, 161, 166, 162, 158, 158, 156, 157, 159, 157, 156, 163, 169, 161, 159, 155, 155, 152, 160, 155, 170, 158, 163, 158, 160, 153, 160, 152, 160, 152, 165, 167, 157, 179, 182, 162, 146, 156, 158, 177, 166, 172, 160, 162, 161, 161, 168, 164, 153, 159, 157, 164, 157, 155, 164, 154, 160, 157, 164, 148, 162, 141, 153, 156, 168, 153, 163, 150, 164, 125, 193, 160, 158, 163, 152, 166, 164, 161, 168, 142, 170, 157, 148, 154, 162, 159, 149, 156, 144, 156, 159, 155, 161, 168, 169, 140, 150, 148, 165, 145, 158, 150, 155, 157, 174, 146, 165, 152, 165, 165, 161, 163, 171, 152, 174, 162, 155, 160, 160, 151, 156, 170, 144, 167, 155, 162, 151, 165, 173, 150, 163, 158, 173, 143, 140, 160, 169, 153, 153, 160, 148, 161, 156, 157, 160, 160, 163, 155, 155, 162, 144, 163, 150, 154, 154, 166, 164, 158, 160, 167, 153, 159, 166, 147, 161, 162, 167, 149, 156, 156, 158, 168, 156, 158, 147, 163, 162, 154, 158, 147, 154, 160, 159, 166, 153, 170, 159, 173, 168, 154, 186, 152, 145, 162, 154, 153, 159, 159, 151, 156, 168, 158, 163, 170, 177, 164, 153, 191, 162, 167, 153, 154, 167, 154, 161, 162, 155, 160, 162, 173, 151, 164, 152, 153, 155, 163, 152, 150, 153, 141, 157, 168, 163, 149, 157, 166, 163, 178, 153, 168, 157, 160, 146, 157, 161, 151, 155, 160, 144, 150, 157, 174, 162, 149, 179, 163, 159, 161, 166, 168, 162, 169, 147, 148, 159, 168, 160, 159, 151, 155, 160, 163, 149, 157, 152, 164, 163, 153, 158, 153, 160, 149, 166, 149, 158, 151, 151, 167, 168, 162, 150, 160, 150, 167, 151, 182, 178, 156, 149, 157, 159, 159, 157, 162, 157, 154, 151, 152, 156, 164, 169, 161, 162, 164, 152, 159, 158, 153, 161, 169, 155, 159, 146, 152, 162, 154, 159, 157, 170, 165, 163, 165, 173, 167, 152, 146, 170, 159, 196, 157, 157, 158, 165, 160, 155, 161, 158, 170, 157, 157, 162, 161, 166, 150, 162, 160, 163, 162, 156, 165, 151, 155, 152, 158, 172, 152, 150, 181, 173, 143, 162, 165, 156, 179, 158, 157, 153, 151, 162, 152, 153, 156, 153, 166, 156, 174, 160, 154, 169, 154, 161, 154, 155, 165, 159, 158, 173, 148, 153, 143, 156, 162, 153, 155, 163, 164, 156, 170, 165, 155, 163, 149, 165, 173, 155, 164, 153, 153, 162, 157, 152, 154, 152, 149, 156, 186, 167, 163, 155, 157, 163, 154, 163, 161, 150, 162, 164, 157, 155, 161, 155, 150, 163, 166, 158, 153, 153, 157, 143, 167, 150, 144, 153, 156, 159, 173, 171, 162, 176, 152, 160, 166, 157, 167, 152, 155, 148, 168, 156, 156, 164, 166, 159, 155, 153, 153, 159, 153, 160, 170, 159, 138, 151, 160, 178, 160, 167, 157, 157, 162, 164, 160, 164, 167, 175, 154, 165, 159, 159, 158, 158, 149, 165, 149, 153, 163, 160, 147, 182, 149, 158, 159, 160, 160, 165, 164, 144, 153, 143, 164, 154, 176, 168, 159, 162, 164, 158, 187, 146, 153, 158, 169, 157, 156, 169, 157, 165, 152, 151, 149, 162, 156, 163, 158, 160, 162, 157, 162, 164, 152, 157, 161, 163, 175, 158, 159, 174, 173, 157, 157, 156, 157, 160, 158, 167, 140, 150, 164, 162, 161, 150, 149, 179, 160, 162, 166, 168, 160, 147, 153, 161, 177, 162, 177, 164, 172, 162, 163, 158, 160, 156, 161, 158, 154, 166, 173, 156, 161, 157, 163, 177, 175, 170, 157, 161, 157, 159, 160, 174, 149, 154, 151, 156, 151, 171, 162, 159, 177, 151, 163, 159, 166, 154, 152, 183, 154, 165, 152, 157, 153, 160, 167, 151, 162, 159, 171, 176, 165, 183, 168, 185, 158, 161, 162, 159, 161, 158, 160, 162, 151, 154, 160, 149, 156, 159, 151, 160, 154, 162, 165, 156, 163, 165, 163, 165, 168, 161, 148, 152, 158, 158, 160, 163, 156, 161, 153, 172, 169, 160, 168, 160, 166, 150, 146, 158, 151, 152, 160, 158, 152, 154, 153, 148, 163, 164, 178, 163, 160, 153, 157, 162, 158, 163, 158, 152, 162, 154, 175, 164, 142, 164, 156, 161, 156, 152, 158, 157, 168, 151, 154, 152, 158, 152, 165, 167, 163, 148, 145, 151, 168, 169, 152, 163, 165, 155, 167, 157, 167, 163, 167, 171, 162, 155, 167, 166, 158, 153, 164, 159, 160, 152, 153, 157, 159, 154, 172, 155, 158, 164, 159, 163, 160, 165, 168, 157, 154, 164, 153, 146, 161, 160, 157, 166, 157, 155, 158, 149, 169, 156, 165, 159, 154, 150, 164, 163, 155, 173, 157, 158, 157, 164, 166, 168, 162, 155, 156, 163, 147, 164, 160, 156, 161, 157, 156, 156, 163, 167, 154, 152, 163, 155, 161, 162, 161, 155, 151, 161, 152, 162, 153, 152, 162, 153, 154, 158, 173, 154, 166, 158, 164, 169, 161, 173, 152, 171, 169, 166, 154, 159, 171, 175, 166, 169, 173, 160, 152, 160, 156, 156, 170, 163, 151, 157, 159, 163, 180, 163, 160, 154, 160, 168, 151, 158, 155, 183, 159, 162, 156, 165, 161, 158, 164, 167, 155, 155, 158, 169, 145, 157, 165, 154, 160, 167, 162, 169, 162, 145, 146, 147, 186, 157, 157, 156, 154, 157, 163, 160, 157, 165, 156, 160, 165, 154, 148, 157, 161, 165, 166, 168, 152, 155, 158, 166, 176, 163, 140, 173, 169, 159, 160, 159, 148, 156, 164, 161, 158, 168, 158, 158, 157, 156, 153, 167, 158, 160, 155, 166, 181, 151, 166, 170, 170, 160, 143, 168, 150, 160, 158, 160, 157, 150, 155, 151, 157, 157, 160, 163, 157, 155, 158, 162, 153, 155, 149, 153, 171, 163, 172, 153, 146, 157, 150, 156, 163, 166, 154, 157, 179, 151, 164, 165, 165, 172, 167, 148, 154, 160, 160, 161, 140, 151, 162, 167, 155, 160, 162, 149, 150, 164, 141, 159, 160, 150, 155, 161, 169, 171, 155, 152, 169, 159, 151, 153, 155, 165, 155, 147, 165, 162, 169, 162, 143, 167, 169, 160, 161, 155, 169, 161, 152, 159, 158, 160, 158, 164, 151, 147, 172, 171, 168, 162, 165, 163, 162, 150, 155, 167, 160, 163, 157, 160, 170, 172, 157, 162, 156, 149, 163, 156, 167, 154, 163, 163, 161, 155, 153, 161, 169, 161, 157, 160, 167, 159, 164, 158, 161, 159, 160, 158, 158, 158, 158, 159, 159, 176, 155, 162, 171, 171, 159, 163, 155, 150, 182, 152, 153, 157, 161, 158, 156, 154, 159, 147, 160, 166, 153, 164, 172, 157, 161, 152, 153, 160, 149, 160, 160, 161, 156, 155, 167, 160, 156, 168, 155, 159, 169, 169, 157, 162, 155, 160, 156, 155, 165, 160, 161, 171, 152, 157, 164, 163, 151, 164, 158, 168, 159, 151, 156, 162, 155, 161, 173, 157, 155, 158, 160, 161, 157, 151, 160, 155, 165, 161, 159, 152, 154, 167, 164, 171, 156, 162, 162, 155, 157, 162, 161, 160, 162, 159, 156, 161, 156, 164, 157, 154, 156, 163, 165, 151, 156, 163, 166, 157, 164, 157, 164, 150, 158, 152, 159, 164, 162, 171, 160, 155, 172, 159, 152, 161, 164, 170, 156, 158, 155, 161, 144, 151, 160, 161, 162, 170, 161, 165, 166, 159, 158, 162, 155, 161, 163, 165, 152, 141, 158, 154, 157, 166, 159, 160, 153, 152, 152, 161, 164, 160, 152, 156, 156, 156, 159, 161, 158, 170, 155, 172, 156, 157, 155, 174, 157, 157, 157, 151, 157, 160, 159, 168, 159, 166, 155, 156, 157, 160, 162, 169, 157, 162, 155, 158, 162, 166, 163, 151, 154, 159, 158, 148, 169, 165, 163, 158, 163, 160, 154, 158, 159, 155, 160, 157, 160, 170, 168, 161, 159, 162, 152, 154, 169, 158, 155, 168, 163, 154, 155, 161, 171, 155, 163, 170, 169, 168, 159, 157, 169, 159, 161, 156, 160, 163, 163, 161, 170, 162, 156, 162, 160, 162, 163, 156, 149, 161, 169, 153, 157, 151, 153, 163, 162, 157, 168, 157, 158, 163, 165, 159, 168, 163, 158, 162, 157, 161, 162, 164, 165, 160, 153, 159, 162, 164, 156, 159, 167, 152, 153, 155, 156, 155, 154, 157, 165, 171, 163, 149, 157, 162, 158, 170, 163, 169, 164, 160, 156, 157, 163, 163, 161, 152, 167, 154, 178, 160, 164, 165, 167, 154, 154, 153, 155, 166, 156, 157, 155, 166, 166, 153, 164, 158, 164, 165, 159, 166, 155, 162, 162, 163, 163, 159, 150, 155, 159, 161, 155, 162, 162, 164, 163, 159, 179, 155, 155, 164, 158, 159, 157, 158, 159, 157, 158, 155, 168, 149, 159, 161, 166, 160, 152, 159, 154, 160, 155, 161, 164, 160, 161, 164, 154, 155, 156, 177, 158, 173, 165, 166, 163, 158, 144, 165, 166, 161, 154, 154, 151, 165, 162, 158, 155, 155, 155, 159, 159, 164, 161, 164, 156, 171, 157, 162, 159, 152, 159, 153, 155, 162, 161, 159, 166, 157, 157, 159, 158, 152, 171, 154, 164, 162, 155, 165, 158, 153, 159, 151, 167, 158, 163, 163, 147, 157, 156, 167, 159, 160, 156, 162, 151, 163, 161, 155, 161, 151, 155, 156, 157, 158, 161, 161, 151, 154, 154, 161, 170, 165, 180, 159, 158, 155, 160, 168, 164, 155, 162, 166, 150, 156, 158, 160, 157, 164, 164, 152, 161, 167, 168, 161, 157, 158, 163, 167, 165, 161, 151, 173, 165, 160, 149, 170, 159, 162, 159, 161, 161, 153, 152, 165, 160, 159, 158, 166, 165, 154, 166, 158, 156, 155, 158, 156, 169, 156, 166, 156, 163, 160, 161, 152, 161, 159, 163, 151, 163, 152, 155, 158, 159, 169, 162, 161, 153, 164, 159, 159, 154, 158, 169, 162, 157, 158, 164, 156, 159, 159, 164, 153, 165, 160, 156, 162, 155, 156, 160, 159, 161, 168, 164, 166, 162, 158, 157, 156, 161, 155, 158, 144, 155, 150, 156, 165, 160, 159, 164, 160, 156, 157, 165, 158, 153, 158, 164, 160, 159, 165, 156, 156, 164, 158, 159, 166, 152, 164, 160, 161, 160, 156, 162, 164, 160, 153, 160, 159, 163, 182, 160, 154, 154, 159, 156, 160, 161, 157, 142, 172, 176, 162, 155, 167, 159, 152, 156, 159, 159, 158, 155, 158, 158, 161, 155, 169, 159, 155, 161, 157, 154, 160, 161, 151, 153, 142, 175, 168, 160, 157, 156, 160, 152, 156, 173, 163, 164, 156, 162, 154, 163, 158, 165, 146, 150, 161, 157, 164, 169, 153, 154, 154, 165, 158, 158, 164, 160, 153, 165, 165, 157, 166, 169, 152, 156, 157, 156, 161, 161, 160, 175, 160, 162, 153, 160, 163, 149, 156, 157, 159, 153, 165, 162, 153, 162, 167, 168, 162, 156, 157, 157, 148, 161, 161, 160, 163, 158, 164, 148, 164, 158, 156, 160, 163, 164, 157, 146, 160, 159, 155, 155, 155, 162, 153, 158, 162, 170, 160, 167, 163, 166, 158, 154, 160, 157, 164, 152, 152, 154, 157, 163, 163, 163, 157, 174, 159, 159, 158, 158, 165, 156, 162, 160, 153, 166, 160, 163, 173, 163, 173, 158, 166, 156, 160, 160, 165, 155, 152, 161, 147, 170, 159, 160, 165, 151, 157, 158, 165, 155, 156, 165, 167, 158, 153, 152, 158, 162, 159, 162, 162, 168, 156, 158, 160, 156, 155, 161, 162, 163, 167, 164, 159, 155, 157, 163, 159, 152, 157, 169, 162, 155, 158, 166, 156, 157, 153, 158, 158, 165, 157, 161, 159, 163, 156, 160, 160, 164, 168, 148, 167, 163, 160, 158, 157, 156, 164, 167, 162, 154, 156, 174, 164, 147, 156, 152, 157, 160, 169, 149, 149, 157, 155, 160, 172, 159, 161, 156, 159, 159, 150, 166, 165, 162, 161, 150, 162, 168, 157, 164, 159, 161, 152, 165, 154, 148, 161, 161, 164, 170, 160, 160, 173, 162, 156, 154, 164, 157, 150, 160, 162, 159, 154, 156, 154, 157, 156, 163, 160, 157, 160, 164, 156, 162, 159, 161, 160, 153, 165, 173, 162, 156, 164, 162, 165, 154, 161, 159, 174, 155, 157, 161, 162, 147, 156, 161, 159, 160, 151, 166, 158, 169, 167, 155, 162, 157, 159, 167, 156, 150, 159, 156, 164, 158, 159, 159, 152, 164, 164, 158, 153, 159, 156, 157, 160, 164, 167, 163, 163, 153, 163, 156, 158, 162, 156, 173, 155, 161, 161, 161, 161, 158, 156, 157, 153, 157, 159, 166, 160, 157, 149, 163, 167, 159, 161, 156, 158, 161, 157, 160, 156, 158, 146, 160, 159, 157, 156, 175, 154, 162, 161, 161, 158, 158, 156, 161, 158, 155, 163, 159, 166, 164, 159, 159, 163, 164, 160, 152, 169, 157, 160, 169, 148, 155, 158, 152, 164, 163, 159, 153, 162, 156, 161, 159, 163, 163, 163, 181, 156, 162, 165, 170, 164, 148, 154, 162, 164, 165, 159, 154, 160, 154, 159, 169, 162, 171, 157, 166, 158, 163, 151, 159, 170, 155, 149, 158, 157, 157, 164, 164, 161, 168, 179, 162, 157, 162, 161, 158, 159, 157, 159, 158, 151, 169, 152, 151, 163, 170, 156, 154, 159, 160, 157, 157, 153, 170, 155, 148, 171, 166, 139, 161, 154, 158, 155, 162, 159, 161, 156, 165, 162, 160, 160, 145, 158, 164, 167, 157, 162, 162, 160, 158, 166, 160, 166, 162, 161, 167, 154, 155, 158, 154, 152, 163, 163, 164, 163, 164, 161, 158, 155, 165, 157, 164, 175, 155, 146, 161, 166, 166, 156, 160, 158, 153, 148, 156, 164, 151, 160, 156, 162, 162, 159, 159, 158, 151, 160, 171, 159, 183, 172, 154, 158, 163, 158, 160, 161, 155, 160, 159, 160, 154, 163, 162, 156, 157, 155, 155, 161, 161, 156, 158, 166, 162, 153, 158, 158, 155, 137, 144, 163, 183, 164, 159, 163, 157, 155, 168, 153, 152, 160, 157, 155, 149, 153, 159, 157, 167, 159, 172, 162, 161, 171, 162, 162, 159, 159, 167, 165, 151, 159, 161, 159, 172, 162, 159, 157, 160, 153, 151, 159, 165, 163, 161, 164, 173, 155, 164, 156, 163, 164, 156, 159, 165, 169, 155, 159, 159, 166, 166, 161, 164, 153, 158, 153, 158, 159, 164, 152, 162, 156, 142, 146, 163, 154, 156, 155, 161, 154, 147, 157, 155, 154, 155, 157, 152, 165, 162, 180, 156, 159, 159, 153, 148, 160, 158, 159, 163, 155, 158, 159, 160, 161, 156, 158, 163, 161, 149, 157, 154, 157, 153, 161, 151, 155, 157, 151, 156, 178, 164, 170, 149, 162, 158, 166, 151, 154, 161, 161, 160, 173, 150, 160, 160, 155, 163, 154, 164, 154, 158, 157, 162, 159, 154, 165, 156, 163, 165, 159, 163, 161, 157, 158, 163, 161, 164, 152, 162, 165, 159, 159, 164, 154, 159, 157, 152, 163, 161, 151, 155, 164, 169, 154, 155, 152, 163, 158, 161, 162, 147, 158, 138, 163, 160, 165, 164, 159, 161, 156, 159, 151, 168, 158, 162, 158, 152, 155, 156, 155, 163, 163, 163, 162, 157, 155, 167, 150, 159, 162, 160, 160, 156, 159, 164, 170, 157, 167, 169, 163, 156, 155, 168, 159, 159, 161, 148, 160, 159, 160, 159, 160, 164, 155, 167, 153, 164, 149, 158, 161, 150, 159, 188, 169, 160, 154, 148, 161, 161, 158, 164, 158, 152, 182, 169, 161, 154, 179, 154, 157, 162, 161, 156, 159, 155, 165, 172, 156, 158, 145, 174, 160, 153, 164, 143, 164, 158, 157, 156, 155, 157, 155, 159, 161, 161, 160, 160, 165, 160, 162, 160, 164, 163, 160, 164, 165, 160, 162, 144, 156, 160, 158, 155, 158, 154, 159, 157, 163, 162, 158, 162, 158, 157, 162, 157, 161, 157, 158, 164, 165, 162, 154, 160, 161, 161, 165, 160, 165, 161, 167, 161, 159, 162, 159, 162, 160, 160, 165, 157, 160, 158, 161, 157, 157, 161, 156, 164, 157, 157, 167, 158, 156, 166, 158, 156, 162, 160, 161, 157, 162, 153, 162, 162, 159, 164, 162, 163, 157, 159, 160, 162, 159, 157, 154, 164, 157, 160, 160, 164, 157, 160, 162, 162, 161, 162, 157, 166, 164, 162, 163, 159, 163, 161, 161, 159, 160, 160, 166, 160, 162, 161, 162, 159, 159, 163, 163, 159, 147, 161, 161, 157, 158, 159, 155, 158, 159, 156, 162, 163, 153, 165, 165, 158, 161, 161, 154, 157, 150, 158, 161, 166, 164, 156, 157, 160, 161, 166, 157, 161, 160, 158, 150, 157, 156, 162, 162, 165, 166, 161, 159, 160, 162, 163, 159, 160, 156, 160, 160, 152, 160, 159, 160, 164, 162, 157, 157, 158, 163, 157, 160, 164, 174, 156, 160, 158, 162, 162, 161, 162, 163, 160, 164, 162, 158, 163, 162, 163, 159, 162, 158, 162, 160, 164, 161, 166, 160, 159, 160, 163, 168, 161, 166, 162, 165, 163, 163, 160, 162, 164, 159, 161, 159, 164, 157, 160, 163, 163, 163, 161, 159, 162, 162, 160, 157, 161, 161, 161, 160, 161, 156, 161, 162, 163, 153, 161, 162, 159, 172, 163, 165, 159, 157, 161, 152, 162, 161, 157, 151, 166, 161, 164, 159, 160, 162, 159, 158, 154, 162, 155, 164, 165, 159, 160, 159, 159, 161, 160, 164, 161, 160, 164, 160, 162, 162, 157, 161, 162, 160, 160, 157, 156, 163, 162, 163, 155, 161, 162, 159, 159, 159, 161, 161, 155, 160, 150, 162, 159, 163, 157, 161, 158, 159, 165, 160, 161, 163, 154, 160, 160, 163, 152, 158, 164, 159, 163, 172, 163, 162, 162, 157, 158, 163, 160, 161, 163, 156, 158, 162, 163, 164, 156, 160, 163, 159, 160, 163, 156, 159, 162, 167, 167, 163, 162, 162, 160, 165, 161, 157, 163, 160, 164, 160, 161, 160, 156, 168, 160, 156, 163, 156, 162, 160, 159, 156, 157, 146, 159, 161, 165, 161, 163, 159, 166, 162, 158, 162, 151, 160, 161, 157, 156, 160, 162, 158, 158, 161, 166, 153, 157, 157, 164, 163, 155, 159, 157, 158, 163, 159, 164, 157, 160, 163, 161, 159, 154, 159, 158, 158, 162, 161, 164, 157, 163, 160, 166, 157, 161, 165, 161, 157, 163, 158, 152, 160, 157, 159, 162, 159, 159, 160, 158, 159, 159, 158, 158, 162, 163, 157, 159, 161, 167, 153, 163, 161, 164, 161, 161, 157, 158, 165, 155, 163, 164, 155, 158, 159, 171, 162, 165, 158, 165, 157, 164, 161, 161, 161, 162, 165, 160, 164, 161, 159, 165, 155, 161, 156, 157, 151, 159, 164, 161, 164, 165, 163, 163, 160, 166, 160, 164, 152, 156, 163, 165, 160, 164, 157, 155, 161, 161, 162, 164, 163, 159, 161, 163, 161, 160, 163, 157, 160, 154, 161, 162, 158, 159, 164, 156, 162, 158, 162, 165, 160, 159, 161, 165, 160, 156, 160, 168, 159, 163, 164, 156, 160, 164, 158, 162, 159, 159, 159, 152, 159, 163, 165, 156, 152, 161, 158, 162, 159, 159, 163, 162, 158, 159, 158, 159, 163, 159, 163, 159, 166, 161, 159, 156, 160, 161, 155, 160, 160, 159, 155, 162, 156, 159, 163, 160, 156, 171, 157, 163, 160, 169, 158, 161, 159, 157, 154, 158, 162, 162, 165, 155, 164, 158, 158, 161, 155, 161, 159, 160, 159, 159, 164, 162, 159, 159, 165, 159, 161, 158, 166, 158, 160, 159, 164, 156, 158, 160, 157, 158, 166, 160, 154, 163, 162, 158, 162, 159, 163, 166, 163, 159, 159, 161, 158, 163, 157, 154, 161, 162, 157, 161, 160, 165, 164, 159, 153, 160, 161, 159, 162, 159, 165, 158, 165, 164, 154, 160, 160, 160, 159, 158, 161, 161, 159, 157, 157, 159, 163, 159, 159, 158, 161, 158, 159, 161, 161, 165, 160, 160, 161, 155, 165, 168, 157, 159, 163, 156, 160, 154, 156, 161, 157, 161, 158, 158, 161, 161, 167, 159, 157, 159, 165, 163, 164, 159, 159, 162, 161, 158, 164, 156, 162, 163, 160, 160, 157, 160, 167, 155, 162, 164, 160, 160, 158, 159, 160, 162, 159, 162, 159, 156, 161, 158, 158, 163, 158, 167, 159, 160, 161, 163, 165, 157, 161, 165, 167, 157, 164, 163, 159, 158, 162, 157, 161, 157, 159, 158, 156, 159, 162, 167, 165, 160, 163, 157, 162, 164, 160, 157, 161, 157, 159, 161, 159, 164, 164, 164, 161, 160, 161, 162, 157, 160, 164, 162, 160, 163, 161, 163, 163, 157, 158, 162, 159, 158, 160, 160, 164, 161, 164, 168, 154, 160, 164, 162, 155, 160, 162, 159, 161, 161, 165, 159, 161, 157, 161, 158, 162, 161, 162, 159, 165, 163, 158, 157, 160, 156, 156, 159, 153, 161, 160, 156, 161, 168, 165, 160, 157, 157, 160, 158, 162, 160, 160, 158, 161, 161, 162, 166, 154, 161, 159, 161, 158, 159, 159, 160, 162, 157, 156, 162, 164, 164, 157, 161, 164, 164, 162, 160, 162, 163, 162, 158, 160, 158, 157, 154, 163, 161, 153, 164, 162, 162, 162, 157, 161, 156, 158, 162, 164, 166, 158, 162, 157, 155, 161, 165, 155, 165, 154, 159, 160, 157, 160, 159, 157, 157, 158, 157, 159, 161, 155, 159, 159, 159, 157, 165, 164, 158, 160, 165, 164, 160, 162, 159, 159, 162, 166, 159, 160, 149, 159, 162, 160, 166, 165, 163, 163, 161, 156, 162, 168, 160, 163, 163, 164, 161, 164, 158, 165, 161, 166, 161, 159, 160, 162, 163, 161, 161, 166, 166, 159, 164, 154, 157, 155, 155, 161, 167, 164, 161, 160, 158, 159, 162, 161, 162, 157, 160, 158, 157, 157, 161, 159, 158, 165, 161, 154, 161, 160, 163, 158, 165, 170, 164, 159, 161, 160, 165, 162, 158, 158, 155, 170, 160, 156, 157, 160, 172, 149, 163, 166, 153, 163, 155, 170, 161, 161, 162, 163, 162, 165, 163, 164, 166, 158, 153, 156, 154, 160, 154, 157, 163, 146, 163, 155, 160, 162, 157, 166, 154, 156, 165, 156, 167, 154, 168, 161, 160, 154, 157, 164, 168, 161, 159, 159, 154, 169, 163, 161, 162, 160, 155, 162, 163, 153, 161, 155, 162, 161, 151, 156, 164, 152, 157, 155, 152, 158, 150, 150, 159, 155, 158, 161, 158, 159, 152, 151, 155, 157, 162, 166, 171, 154, 163, 164, 156, 155, 162, 158, 157, 169, 150, 154, 147, 154, 161, 158, 166, 162, 172, 165, 163, 164, 154, 160, 162, 165, 166, 151, 144, 160, 156, 152, 162, 151, 156, 163, 158, 161, 164, 159, 169, 161, 162, 157, 161, 162, 147, 155, 168, 158, 150, 156, 158, 159, 171, 168, 156, 176, 160, 166, 159, 158, 168, 155, 165, 156, 162, 165, 158, 159, 154, 158, 165, 166, 167, 154, 149, 161, 155, 154, 153, 159, 160, 159, 150, 176, 167, 162, 158, 160, 160, 161, 147, 158, 153, 164, 151, 158, 157, 160, 160, 163, 159, 163, 148, 152, 167, 162, 162, 158, 151, 173, 163, 157, 154, 156, 163, 160, 162, 155, 163, 155, 156, 159, 159, 163, 161, 165, 158, 167, 147, 164, 164, 162, 153, 167, 155, 161, 156, 165, 168, 155, 160, 166, 159, 155, 158, 149, 155, 151, 157, 153, 164, 157, 157, 164, 146, 158, 166, 156, 159, 167, 158, 163, 162, 152, 159, 168, 156, 159, 156, 154, 150, 168, 155, 156, 152, 167, 157, 160, 165, 167, 171, 152, 156, 155, 155, 156, 158, 142, 162, 163, 162, 155, 164, 159, 151, 143, 154, 146, 164, 161, 169, 180, 152, 153, 157, 162, 163, 155, 157, 143, 160, 160, 174, 158, 167, 170, 161, 167, 162, 162, 156, 160, 157, 153, 172, 155, 152, 162, 169, 164, 164, 150, 158, 152, 162, 163, 161, 156, 160, 161, 159, 154, 170, 157, 155, 164, 166, 162, 158, 162, 158, 145, 163, 157, 158, 161, 169, 160, 160, 164, 166, 161, 160, 167, 169, 156, 163, 165, 159, 151, 156, 153, 158, 164, 161, 157, 151, 161, 159, 162, 170, 153, 166, 160, 155, 156, 168, 162, 158, 162, 165, 160, 159, 159, 157, 168, 162, 176, 156, 162, 160, 156, 157, 162, 165, 162, 158, 156, 165, 161, 163, 160, 157, 167, 153, 153, 161, 160, 155, 167, 164, 169, 154, 161, 154, 159, 167, 159, 165, 151, 161, 153, 153, 160, 158, 147, 157, 170, 161, 155, 153, 153, 155, 155, 160, 163, 159, 163, 179, 172, 155, 156, 153, 164, 153, 172, 160, 156, 155, 155, 162, 156, 153, 154, 172, 183, 160, 159, 160, 153, 153, 169, 149, 161, 156, 152, 165, 154, 167, 161, 165, 157, 166, 159, 159, 162, 157, 157, 152, 158, 161, 158, 152, 154, 171, 154, 157, 157, 165, 161, 170, 156, 159, 163, 163, 155, 140, 158, 152, 157, 163, 159, 160, 155, 152, 160, 165, 162, 158, 167, 159, 160, 153, 175, 165, 157, 154, 160, 164, 162, 157, 156, 149, 160, 149, 157, 160, 156, 158, 164, 161, 155, 150, 154, 164, 159, 167, 166, 170, 160, 155, 148, 157, 159, 160, 154, 146, 152, 155, 159, 154, 157, 159, 166, 172, 157, 164, 156, 163, 157, 161, 156, 159, 166, 148, 160, 157, 156, 158, 163, 150, 164, 168, 161, 168, 165, 156, 165, 155, 161, 164, 168, 162, 172, 151, 157, 163, 155, 159, 159, 157, 157, 158, 161, 163, 171, 160, 155, 163, 161, 153, 162, 157, 161, 168, 159, 156, 161, 153, 172, 162, 160, 162, 153, 159, 161, 165, 148, 158, 163, 161, 159, 155, 153, 153, 155, 153, 157, 160, 167, 165, 161, 158, 158, 153, 161, 159, 161, 168, 167, 153, 151, 162, 155, 160, 157, 162, 160, 157, 155, 160, 162, 168, 161, 149, 162, 163, 167, 158, 157, 159, 159, 159, 155, 175, 165, 156, 168, 175, 163, 156, 163, 158, 157, 157, 160, 159, 161, 161, 166, 161, 172, 157, 164, 161, 163, 159, 162, 156, 152, 165, 148, 153, 165, 152, 159, 158, 157, 161, 172, 155, 160, 154, 159, 153, 156, 159, 156, 163, 142, 146, 158, 163, 159, 170, 157, 152, 158, 172, 164, 148, 163, 160, 156, 156, 162, 154, 164, 160, 159, 160, 163, 158, 158, 156, 159, 161, 164, 163, 168, 159, 169, 159, 168, 167, 160, 163, 164, 157, 158, 166, 166, 171, 166, 163, 159, 157, 168, 154, 162, 162, 160, 164, 148, 160, 161, 158, 163, 169, 161, 165, 158, 164, 152, 169, 160, 165, 144, 146, 161, 163, 161, 178, 164, 158, 157, 167, 162, 163, 163, 164, 154, 164, 161, 163, 166, 153, 162, 156, 161, 162, 157, 143, 165, 165, 167, 155, 162, 161, 178, 158, 158, 161, 143, 164, 162, 151, 159, 157, 160, 143, 167, 156, 162, 157, 166, 152, 166, 159, 166, 162, 160, 161, 157, 160, 157, 169, 160, 157, 153, 169, 154, 160, 162, 161, 162, 161, 163, 160, 154, 166, 163, 163, 162, 150, 163, 158, 157, 169, 161, 165, 163, 155, 159, 163, 159, 164, 166, 155, 174, 152, 165, 165, 161, 161, 158, 159, 161, 155, 158, 155, 160, 160, 153, 172, 171, 172, 161, 163, 159, 161, 164, 163, 160, 158, 160, 161, 158, 164, 152, 158, 163, 166, 164, 148, 159, 154, 150, 156, 153, 153, 163, 169, 158, 158, 159, 163, 168, 166, 158, 162, 167, 165, 149, 157, 158, 153, 158, 163, 161, 156, 158, 156, 161, 152, 170, 160, 156, 167, 157, 151, 166, 161, 159, 162, 158, 157, 161, 157, 154, 162, 157, 154, 155, 157, 165, 157, 162, 174, 159, 167, 154, 161, 145, 157, 156, 167, 159, 158, 157, 162, 161, 157, 159, 161, 155, 163, 162, 168, 160, 176, 165, 163, 156, 168, 162, 166, 159, 158, 158, 153, 167, 164, 147, 153, 161, 164, 161, 172, 159, 154, 163, 153, 159, 152, 170, 166, 170, 170, 168, 160, 162, 158, 163, 162, 159, 159, 151, 161, 154, 158, 160, 155, 166, 166, 154, 160, 152, 160, 157, 160, 147, 161, 155, 154, 152, 156, 149, 162, 163, 161, 156, 160, 161, 153, 146, 162, 150, 160, 163, 160, 178, 155, 160, 161, 157, 170, 160, 157, 157, 169, 162, 164, 162, 173, 168, 165, 161, 161, 167, 157, 186, 146, 159, 159, 161, 162, 156, 161, 149, 159, 160, 158, 154, 157, 151, 153, 167, 177, 154, 160, 160, 151, 165, 157, 165, 158, 165, 164, 158, 164, 168, 163, 156, 163, 157, 162, 156, 156, 157, 159, 163, 150, 149, 156, 159, 162, 164, 157, 162, 148, 157, 161, 160, 159, 165, 158, 162, 155, 160, 155, 154, 158, 166, 158, 157, 0, 154, 162, 154, 156, 159, 158, 159, 150, 180, 148, 168, 158, 157, 147, 163, 153, 165, 176, 152, 157, 160, 147, 160, 166, 156, 158, 166, 155, 163, 154, 143, 150, 171, 162, 157, 163, 159, 159, 163, 158, 169, 157, 152, 171, 159, 152, 163, 158, 156, 162, 150, 153, 162, 158, 163, 164, 159, 157, 159, 162, 158, 153, 160, 169, 160, 163, 158, 156, 170, 157, 157, 155, 155, 154, 158, 157, 152, 151, 159, 157, 172, 160, 164, 162, 168, 158, 157, 160, 164, 165, 162, 163, 157, 166, 157, 161, 158, 157, 153, 161, 170, 158, 149, 156, 172, 145, 152, 159, 166, 163, 156, 161, 157, 186, 164, 156, 160, 160, 159, 162, 160, 163, 160, 161, 159, 158, 162, 160, 160, 157, 153, 158, 152, 165, 156, 177, 152, 164, 163, 150, 163, 164, 176, 162, 158, 161, 164, 162, 155, 152, 169, 160, 162, 157, 159, 163, 155, 159, 162, 159, 163, 171, 151, 155, 154, 161, 166, 154, 161, 162, 161, 169, 164, 161, 163, 155, 162, 149, 159, 161, 158, 156, 152, 163, 163, 157, 161, 158, 171, 163, 151, 158, 161, 152, 159, 157, 158, 155, 164, 152, 146, 148, 138, 158, 163, 154, 164, 163, 154, 157, 154, 161, 158, 158, 152, 147, 156, 151, 160, 172, 162, 156, 163, 157, 161, 157, 158, 168, 158, 161, 159, 163, 167, 158, 150, 164, 160, 169, 151, 158, 126, 159, 163, 148, 179, 161, 159, 157, 163, 152, 163, 154, 148, 155, 149, 160, 152, 162, 147, 166, 159, 161, 158, 166, 163, 159, 149, 158, 158, 163, 161, 154, 156, 158, 156, 152, 160, 156, 152, 153, 160, 167, 167, 156, 152, 153, 155, 159, 165, 162, 166, 163, 163, 166, 157, 172, 168, 163, 152, 165, 170, 161, 159, 159, 152, 158, 153, 166, 157, 144, 161, 168, 158, 156, 171, 167, 172, 156, 158, 148, 161, 156, 159, 161, 163, 149, 163, 164, 164, 160, 162, 164, 163, 170, 149, 151, 151, 160, 155, 158, 158, 160, 152, 158, 153, 159, 176, 169, 158, 147, 158, 158, 157, 160, 164, 156, 166, 150, 159, 163, 168, 143, 163, 160, 148, 166, 178, 148, 168, 163, 159, 152, 155, 161, 161, 155, 158, 166, 167, 161, 189, 161, 160, 154, 160, 162, 158, 160, 154, 163, 160, 152, 164, 176, 158, 159, 159, 151, 153, 151, 164, 157, 157, 164, 157, 143, 162, 163, 160, 157, 170, 171, 166, 161, 158, 170, 159, 165, 167, 156, 167, 159, 165, 161, 161, 157, 166, 155, 153, 161, 163, 163, 162, 157, 155, 159, 155, 162, 155, 172, 168, 158, 170, 164, 167, 171, 161, 161, 159, 159, 157, 155, 153, 174, 161, 155, 153, 160, 150, 155, 161, 153, 157, 160, 158, 166, 162, 155, 155, 160, 169, 165, 170, 165, 154, 162, 158, 157, 154, 155, 163, 159, 165, 158, 148, 159, 166, 154, 165, 163, 159, 157, 159, 159, 153, 142, 153, 162, 156, 154, 167, 160, 151, 160, 155, 158, 160, 161, 149, 161, 159, 150, 146, 169, 158, 163, 162, 155, 162, 156, 145, 161, 153, 156, 164, 164, 171, 156, 168, 158, 160, 154, 160, 153, 158, 156, 154, 161, 157, 157, 155, 163, 165, 166, 154, 163, 161, 147, 169, 154, 163, 166, 160, 172, 155, 168, 163, 155, 149, 157, 155, 154, 170, 156, 160, 161, 164, 148, 162, 160, 157, 157, 172, 162, 154, 157, 156, 162, 159, 165, 159, 162, 162, 159, 164, 162, 158, 162, 157, 158, 165, 159, 157, 159, 163, 156, 139, 164, 166, 162, 164, 161, 159, 161, 153, 177, 154, 157, 156, 160, 158, 156, 162, 156, 169, 163, 153, 160, 156, 167, 141, 163, 161, 160, 157, 171, 159, 158, 165, 158, 160, 158, 160, 152, 166, 164, 157, 154, 152, 157, 159, 164, 156, 163, 161, 162, 167, 162, 160, 158, 154, 161, 157, 150, 161, 162, 174, 164, 159, 158, 153, 159, 138, 164, 146, 157, 159, 162, 156, 164, 157, 156, 180, 162, 162, 163, 157, 162, 154, 167, 156, 164, 160, 160, 156, 154, 156, 163, 156, 165, 153, 153, 160, 140, 164, 157, 165, 165, 159, 159, 151, 157, 166, 155, 159, 159, 153, 159, 156, 158, 161, 158, 159, 166, 163, 166, 162, 156, 162, 158, 164, 157, 156, 157, 157, 158, 161, 161, 155, 159, 164, 160, 157, 155, 150, 159, 167, 159, 158, 159, 156, 165, 152, 158, 160, 162, 163, 153, 156, 162, 158, 162, 155, 154, 160, 161, 158, 159, 157, 158, 158, 155, 163, 154, 160, 162, 151, 151, 157, 160, 162, 175, 179, 147, 160, 166, 166, 163, 165, 158, 160, 156, 154, 161, 147, 167, 156, 157, 158, 164, 151, 159, 165, 162, 153, 155, 167, 167, 158, 155, 163, 165, 162, 158, 176, 161, 153, 177, 176, 155, 159, 170, 158, 159, 158, 164, 166, 166, 162, 154, 166, 165, 160, 159, 154, 164, 164, 153, 153, 162, 152, 158, 156, 156, 163, 163, 158, 142, 149, 169, 170, 159, 160, 159, 163, 171, 168, 157, 181, 167, 156, 169, 147, 156, 155, 159, 156, 150, 164, 158, 162, 160, 160, 159, 158, 155, 171, 162, 154, 149, 159, 159, 159, 167, 156, 162, 157, 165, 162, 164, 157, 159, 163, 163, 155, 158, 159, 165, 154, 168, 158, 158, 154, 159, 156, 164, 159, 156, 155, 172, 165, 154, 159, 167, 156, 164, 153, 161, 158, 160, 159, 158, 157, 165, 158, 153, 156, 151, 161, 160, 155, 163, 167, 158, 150, 164, 159, 155, 160, 158, 163, 162, 159, 151, 159, 163, 156, 160, 158, 162, 156, 161, 162, 155, 162, 157, 157, 159, 169, 160, 158, 166, 158, 160, 159, 156, 152, 163, 177, 161, 164, 157, 164, 160, 163, 162, 161, 160, 155, 163, 153, 162, 154, 167, 158, 162, 156, 161, 164, 164, 156, 163, 161, 154, 153, 156, 178, 157, 159, 157, 157, 159, 154, 156, 165, 160, 156, 154, 153, 164, 159, 158, 157, 159, 158, 158, 156, 151, 158, 158, 160, 161, 163, 162, 161, 156, 153, 162, 158, 156, 167, 159, 164, 161, 158, 159, 163, 159, 162, 160, 161, 162, 160, 152, 156, 158, 159, 164, 155, 156, 149, 157, 156, 152, 151, 155, 160, 162, 146, 157, 165, 157, 162, 144, 156, 153, 157, 153, 164, 156, 163, 162, 159, 175, 148, 158, 161, 171, 159, 164, 169, 160, 156, 169, 164, 156, 161, 167, 167, 162, 153, 162, 153, 154, 168, 170, 167, 147, 155, 165, 166, 147, 160, 156, 154, 161, 161, 162, 170, 151, 163, 148, 157, 159, 167, 168, 163, 168, 151, 159, 153, 181, 160, 142, 153, 168, 152, 153, 163, 150, 161, 161, 153, 160, 159, 155, 158, 161, 156, 161, 166, 161, 162, 155, 153, 161, 164, 161, 157, 152, 163, 163, 170, 162, 161, 162, 162, 159, 163, 160, 154, 154, 159, 154, 158, 160, 157, 162, 162, 162, 160, 157, 164, 157, 165, 161, 158, 163, 159, 162, 155, 166, 171, 164, 161, 166, 162, 159, 151, 151, 156, 151, 154, 161, 149, 158, 165, 165, 169, 158, 163, 155, 159, 165, 155, 156, 162, 165, 159, 158, 169, 157, 164, 167, 175, 163, 154, 166, 155, 160, 156, 156, 150, 164, 153, 153, 163, 168, 159, 150, 162, 155, 158, 162, 156, 165, 170, 160, 164, 165, 154, 165, 162, 151, 166, 157, 162, 154, 164, 162, 160, 161, 158, 164, 162, 163, 158, 159, 153, 165, 161, 150, 159, 146, 168, 158, 151, 168, 162, 159, 153, 162, 168, 161, 163, 163, 157, 148, 160, 156, 163, 158, 168, 150, 160, 156, 156, 162, 158, 159, 149, 163, 150, 160, 163, 161, 160, 163, 161, 163, 162, 165, 157, 176, 160, 161, 170, 160, 150, 163, 158, 168, 160, 159, 160, 153, 168, 158, 154, 153, 163, 165, 151, 161, 161, 151, 163, 146, 150, 164, 163, 166, 160, 151, 168, 150, 166, 166, 160, 164, 165, 159, 153, 156, 174, 158, 157, 160, 165, 155, 159, 165, 164, 159, 164, 162, 168, 153, 160, 156, 153, 162, 154, 163, 168, 155, 165, 169, 157, 167, 144, 166, 149, 157, 153, 170, 163, 165, 157, 159, 161, 152, 179, 163, 158, 161, 154, 161, 160, 153, 168, 139, 167, 162, 167, 167, 155, 151, 155, 167, 159, 158, 160, 153, 160, 161, 163, 154, 160, 164, 163, 155, 160, 159, 166, 168, 161, 176, 162, 161, 158, 182, 158, 158, 158, 153, 161, 162, 157, 157, 159, 168, 161, 165, 165, 161, 165, 157, 165, 163, 158, 162, 159, 158, 161, 151, 155, 157, 164, 161, 166, 162, 161, 161, 157, 162, 159, 167, 175, 162, 159, 156, 167, 161, 160, 151, 156, 153, 154, 171, 161, 158, 163, 163, 172, 158, 157, 152, 155, 154, 131, 164, 161, 161, 166, 174, 162, 163, 156, 161, 156, 163, 166, 167, 166, 173, 166, 155, 150, 156, 162, 157, 166, 162, 151, 161, 160, 164, 161, 154, 155, 161, 150, 161, 161, 156, 164, 164, 155, 161, 159, 158, 161, 127, 162, 164, 150, 163, 158, 170, 164, 155, 159, 158, 158, 162, 158, 166, 165, 159, 158, 156, 160, 160, 195, 154, 152, 161, 160, 162, 166, 157, 160, 166, 167, 164, 165, 163, 168, 164, 158, 161, 155, 150, 158, 151, 155, 162, 161, 178, 156, 158, 164, 158, 160, 159, 160, 156, 158, 161, 159, 157, 171, 154, 152, 168, 154, 153, 164, 160, 158, 155, 160, 159, 154, 155, 167, 162, 136, 158, 173, 159, 161, 163, 155, 161, 163, 163, 165, 161, 168, 159, 160, 156, 160, 157, 154, 166, 160, 174, 173, 164, 155, 158, 162, 160, 164, 164, 168, 150, 159, 163, 154, 156, 161, 151, 160, 167, 163, 149, 160, 159, 167, 162, 153, 172, 156, 160, 165, 130, 155, 158, 159, 170, 159, 167, 155, 163, 162, 166, 163, 159, 160, 164, 159, 161, 159, 163, 163, 156, 178, 161, 161, 159, 163, 164, 160, 158, 164, 156, 153, 157, 160, 165, 161, 160, 160, 153, 166, 158, 164, 159, 155, 167, 145, 166, 154, 155, 154, 147, 165, 168, 158, 154, 158, 165, 159, 162, 160, 166, 159, 165, 158, 159, 160, 167, 158, 164, 169, 156, 161, 165, 159, 156, 166, 164, 159, 168, 159, 165, 150, 154, 161, 158, 168, 156, 170, 157, 155, 160, 161, 165, 156, 159, 162, 154, 162, 143, 160, 149, 156, 164, 170, 161, 161, 150, 163, 159, 164, 159, 161, 159, 163, 157, 158, 160, 153, 163, 163, 161, 164, 159, 167, 155, 162, 162, 166, 158, 158, 164, 163, 152, 160, 159, 162, 158, 162, 166, 159, 156, 150, 154, 168, 159, 154, 156, 156, 165, 155, 158, 154, 163, 161, 160, 157, 153, 173, 158, 160, 170, 159, 167, 160, 157, 158, 179, 150, 173, 156, 150, 150, 164, 162, 157, 173, 157, 162, 162, 181, 161, 156, 159, 160, 168, 152, 166, 155, 157, 168, 171, 157, 166, 162, 166, 160, 153, 157, 143, 154, 143, 177, 166, 164, 197, 157, 154, 171, 159, 165, 165, 163, 163, 158, 161, 160, 151, 158, 168, 169, 160, 162, 150, 178, 160, 155, 165, 161, 159, 155, 174, 155, 158, 160, 152, 155, 164, 160, 165, 164, 167, 167, 156, 167, 160, 143, 156, 159, 160, 157, 181, 162, 155, 161, 163, 163, 156, 160, 163, 166, 163, 160, 160, 163, 153, 190, 148, 165, 164, 156, 157, 164, 162, 158, 156, 166, 144, 168, 157, 152, 155, 163, 160, 165, 162, 146, 153, 159, 159, 155, 164, 160, 156, 164, 163, 157, 158, 161, 158, 154, 166, 158, 162, 166, 166, 161, 160, 158, 159, 160, 158, 160, 157, 161, 159, 162, 158, 160, 161, 161, 157, 160, 160, 154, 165, 162, 164, 156, 156, 158, 160, 150, 164, 165, 157, 163, 165, 164, 158, 159, 163, 159, 160, 157, 159, 163, 159, 155, 156, 161, 157, 160, 160, 162, 158, 160, 161, 158, 161, 146, 164, 161, 164, 162, 155, 153, 171, 162, 156, 159, 155, 160, 158, 154, 155, 160, 165, 158, 159, 156, 156, 164, 156, 163, 160, 155, 159, 157, 156, 151, 159, 155, 157, 155, 162, 157, 156, 160, 162, 160, 171, 153, 160, 155, 155, 149, 156, 154, 157, 160, 170, 156, 160, 160, 159, 159, 160, 164, 161, 158, 156, 161, 177, 162, 157, 163, 153, 159, 161, 162, 162, 156, 157, 158, 157, 162, 162, 160, 163, 163, 158, 159, 160, 159, 160, 160, 157, 168, 166, 180, 148, 162, 157, 159, 166, 159, 157, 160, 167, 158, 172, 160, 158, 155, 155, 160, 162, 162, 163, 162, 162, 166, 168, 151, 164, 155, 166, 159, 156, 162, 156, 162, 159, 154, 171, 160, 166, 158, 159, 162, 162, 163, 164, 168, 155, 160, 161, 158, 157, 154, 159, 151, 169, 166, 164, 168, 161, 158, 163, 162, 166, 166, 162, 167, 157, 157, 160, 159, 166, 161, 159, 162, 166, 163, 158, 159, 157, 156, 159, 164, 161, 157, 164, 152, 157, 162, 155, 157, 164, 157, 166, 165, 144, 164, 155, 155, 162, 150, 153, 161, 162, 152, 155, 163, 159, 159, 158, 159, 163, 151, 153, 167, 155, 169, 157, 160, 164, 161, 158, 155, 164, 161, 157, 161, 156, 161, 162, 157, 162, 160, 160, 163, 165, 158, 161, 164, 164, 161, 162, 164, 165, 158, 159, 162, 164, 156, 161, 156, 160, 155, 163, 163, 162, 158, 163, 166, 153, 145, 163, 150, 165, 162, 164, 170, 164, 164, 155, 162, 169, 161, 151, 153, 154, 164, 160, 158, 157, 166, 158, 164, 164, 165, 162, 166, 162, 154, 162, 152, 170, 170, 163, 161, 157, 153, 159, 162, 163, 157, 155, 160, 154, 159, 150, 171, 157, 164, 164, 159, 166, 156, 162, 159, 155, 156, 159, 161, 162, 163, 157, 162, 160, 163, 165, 156, 156, 157, 153, 148, 152, 159, 160, 162, 151, 161, 146, 164, 164, 162, 162, 155, 170, 155, 163, 151, 159, 156, 161, 159, 163, 163, 162, 157, 166, 161, 159, 140, 155, 150, 164, 157, 152, 166, 170, 156, 160, 161, 160, 162, 160, 163, 156, 156, 159, 156, 164, 155, 152, 161, 159, 163, 157, 158, 153, 154, 160, 142, 164, 160, 162, 158, 161, 157, 156, 160, 159, 168, 162, 161, 162, 162, 162, 159, 170, 160, 162, 159, 157, 172, 149, 161, 159, 162, 166, 166, 158, 158, 157, 151, 160, 155, 157, 167, 161, 159, 158, 159, 162, 159, 164, 163, 157, 164, 164, 165, 155, 163, 164, 159, 157, 150, 166, 158, 161, 155, 164, 163, 167, 154, 151, 157, 158, 158, 160, 163, 161, 161, 157, 160, 173, 155, 155, 163, 160, 154, 164, 164, 159, 166, 157, 156, 168, 156, 164, 155, 160, 157, 164, 151, 163, 158, 165, 159, 162, 156, 154, 154, 158, 149, 157, 178, 152, 156, 157, 164, 171, 159, 162, 160, 152, 164, 166, 160, 157, 167, 159, 156, 158, 158, 168, 159, 158, 165, 165, 167, 152, 166, 151, 150, 159, 163, 158, 161, 162, 160, 150, 164, 171, 160, 158, 167, 160, 168, 160, 166, 155, 163, 161, 156, 163, 166, 162, 154, 160, 156, 162, 154, 160, 159, 159, 166, 153, 156, 167, 157, 159, 152, 157, 163, 159, 158, 162, 168, 157, 162, 161, 170, 160, 157, 162, 157, 164, 166, 154, 169, 159, 159, 157, 164, 157, 160, 156, 160, 168, 159, 161, 160, 150, 164, 159, 155, 160, 150, 163, 161, 158, 164, 158, 161, 165, 156, 170, 160, 151, 166, 154, 157, 163, 165, 170, 156, 158, 167, 157, 161, 161, 164, 165, 165, 154, 158, 159, 159, 167, 163, 166, 154, 161, 166, 149, 170, 161, 158, 159, 178, 167, 146, 165, 161, 158, 161, 167, 153, 160, 160, 161, 152, 164, 150, 160, 159, 161, 161, 168, 156, 158, 155, 164, 158, 166, 165, 168, 163, 157, 162, 156, 166, 154, 171, 180, 156, 156, 163, 166, 158, 150, 164, 156, 150, 160, 168, 157, 163, 159, 162, 157, 169, 157, 158, 164, 157, 168, 159, 156, 167, 168, 156, 173, 161, 161, 156, 160, 145, 160, 146, 164, 154, 161, 162, 161, 169, 165, 178, 161, 159, 141, 159, 158, 161, 158, 163, 145, 151, 158, 165, 154, 165, 159, 161, 157, 164, 156, 157, 160, 165, 168, 164, 165, 152, 154, 162, 163, 155, 163, 157, 163, 157, 157, 167, 170, 163, 153, 164, 166, 146, 165, 162, 162, 172, 159, 157, 153, 167, 160, 153, 162, 156, 162, 165, 164, 152, 164, 156, 162, 157, 157, 158, 163, 150, 162, 155, 164, 161, 160, 161, 162, 165, 163, 154, 160, 162, 162, 170, 157, 159, 161, 158, 169, 158, 166, 169, 160, 174, 155, 156, 148, 154, 171, 165, 159, 155, 172, 157, 163, 159, 160, 162, 160, 163, 163, 161, 154, 162, 174, 163, 158, 162, 167, 141, 161, 156, 152, 148, 161, 155, 164, 163, 160, 160, 165, 159, 164, 167, 163, 164, 166, 149, 168, 156, 157, 159, 161, 159, 164, 158, 160, 168, 161, 158, 157, 167, 163, 164, 170, 162, 162, 158, 158, 157, 160, 160, 162, 161, 158, 162, 161, 161, 157, 155, 158, 154, 167, 158, 154, 165, 157, 161, 163, 161, 170, 161, 152, 163, 155, 156, 162, 164, 157, 157, 164, 160, 161, 171, 155, 162, 162, 160, 161, 160, 159, 165, 160, 157, 161, 158, 155, 163, 160, 162, 173, 159, 155, 157, 154, 151, 160, 145, 163, 163, 157, 155, 164, 154, 153, 164, 160, 164, 163, 159, 144, 162, 154, 160, 157, 172, 154, 146, 156, 160, 164, 170, 162, 158, 171, 155, 165, 166, 144, 175, 156, 166, 161, 160, 151, 154, 166, 166, 165, 164, 164, 161, 152, 158, 158, 160, 150, 158, 148, 163, 165, 162, 158, 163, 160, 154, 162, 166, 157, 154, 156, 153, 158, 163, 165, 159, 161, 158, 162, 163, 158, 158, 159, 165, 156, 159, 143, 159, 162, 161, 152, 154, 167, 167, 162, 157, 161, 159, 163, 160, 163, 159, 154, 169, 157, 161, 170, 163, 161, 164, 157, 166, 163, 158, 153, 159, 167, 165, 159, 157, 163, 156, 152, 156, 161, 155, 156, 159, 156, 164, 161, 159, 159, 158, 166, 162, 160, 150, 161, 170, 157, 160, 163, 154, 159, 162, 160, 161, 168, 161, 157, 164, 156, 150, 157, 165, 167, 184, 163, 163, 169, 162, 166, 160, 161, 149, 156, 164, 161, 158, 157, 154, 157, 166, 157, 168, 177, 165, 163, 159, 158, 161, 167, 158, 153, 162, 164, 158, 141, 155, 162, 162, 159, 161, 156, 169, 162, 162, 159, 160, 154, 163, 160, 162, 153, 169, 158, 161, 168, 167, 160, 163, 160, 160, 165, 156, 179, 163, 161, 154, 161, 156, 165, 155, 153, 160, 161, 159, 166, 154, 165, 154, 159, 165, 169, 155, 152, 158, 166, 164, 155, 170, 167, 162, 155, 162, 159, 154, 155, 146, 157, 161, 155, 162, 166, 158, 156, 159, 171, 166, 161, 157, 159, 163, 165, 162, 159, 162, 162, 161, 161, 159, 158, 155, 155, 156, 158, 153, 153, 175, 164, 166, 153, 144, 167, 159, 161, 157, 157, 150, 163, 165, 163, 164, 156, 154, 155, 162, 168, 153, 165, 155, 159, 157, 151, 158, 148, 162, 162, 160, 162, 160, 161, 163, 156, 151, 165, 170, 158, 164, 169, 161, 170, 162, 161, 166, 161, 167, 159, 159, 161, 161, 161, 157, 161, 160, 150, 161, 162, 158, 154, 163, 156, 154, 152, 169, 167, 158, 165, 146, 149, 160, 164, 157, 165, 164, 160, 160, 152, 163, 159, 159, 160, 160, 164, 156, 150, 151, 159, 160, 158, 149, 158, 159, 159, 159, 164, 154, 163, 158, 162, 156, 157, 154, 168, 161, 174, 157, 151, 163, 159, 162, 153, 161, 151, 159, 160, 156, 156, 166, 163, 159, 161, 161, 162, 153, 162, 157, 154, 174, 164, 158, 167, 169, 156, 164, 160, 165, 161, 168, 161, 152, 168, 166, 170, 158, 180, 161, 169, 164, 158, 160, 161, 163, 178, 179, 153, 156, 145, 160, 152, 161, 160, 164, 154, 161, 154, 161, 160, 155, 165, 152, 166, 164, 158, 158, 162, 158, 162, 157, 170, 170, 167, 160, 155, 168, 157, 158, 161, 167, 160, 158, 159, 166, 149, 159, 163, 158, 157, 161, 163, 165, 160, 159, 160, 159, 157, 161, 163, 148, 159, 159, 171, 163, 163, 160, 158, 163, 167, 163, 163, 167, 157, 164, 164, 149, 156, 156, 173, 158, 147, 160, 166, 146, 155, 160, 163, 163, 153, 161, 170, 163, 152, 161, 165, 157, 160, 162, 156, 151, 163, 163, 165, 158, 157, 159, 153, 157, 149, 166, 159, 158, 160, 160, 156, 166, 161, 161, 155, 161, 157, 172, 161, 160, 164, 160, 157, 167, 162, 161, 158, 162, 159, 166, 164, 155, 161, 159, 156, 152, 160, 158, 168, 157, 156, 158, 154, 165, 159, 158, 153, 164, 157, 156, 157, 162, 159, 161, 156, 153, 161, 162, 156, 153, 161, 157, 158, 165, 158, 162, 156, 164, 158, 156, 160, 152, 162, 152, 162, 157, 156, 162, 162, 161, 160, 156, 149, 164, 165, 153, 159, 158, 161, 157, 166, 163, 161, 163, 159, 164, 159, 157, 160, 161, 160, 152, 164, 158, 154, 162, 161, 164, 160, 163, 157, 161, 163, 159, 155, 162, 161, 159, 154, 156, 152, 159, 164, 160, 159, 158, 155, 160, 160, 158, 157, 161, 166, 158, 160, 156, 163, 158, 162, 159, 159, 161, 160, 162, 160, 160, 160, 158, 158, 166, 157, 156, 159, 161, 173, 158, 173, 156, 159, 160, 157, 159, 159, 161, 155, 161, 167, 164, 160, 161, 155, 166, 156, 154, 157, 150, 164, 158, 156, 161, 159, 166, 156, 151, 162, 163, 162, 155, 166, 160, 160, 156, 157, 163, 163, 160, 162, 157, 160, 162, 156, 163, 147, 165, 157, 160, 157, 153, 152, 155, 156, 156, 155, 158, 157, 159, 152, 163, 161, 162, 159, 156, 158, 164, 157, 162, 162, 155, 162, 163, 158, 161, 163, 159, 163, 157, 162, 161, 162, 163, 162, 165, 155, 162, 160, 157, 159, 156, 158, 166, 161, 162, 160, 149, 164, 159, 158, 162, 156, 161, 157, 160, 164, 159, 163, 160, 161, 157, 155, 161, 159, 160, 158, 170, 164, 166, 157, 158, 159, 159, 163, 160, 160, 157, 160, 159, 158, 160, 165, 162, 156, 163, 162, 165, 165, 162, 158, 155, 164, 153, 164, 163, 164, 158, 156, 159, 162, 157, 154, 158, 151, 158, 159, 158, 156, 162, 162, 154, 161, 160, 158, 157, 164, 161, 156, 159, 164, 153, 153, 163, 162, 156, 160, 157, 161, 161, 158, 159, 160, 155, 159, 164, 155, 162, 159, 161, 157, 159, 163, 156, 162, 160, 167, 160, 159, 152, 161, 157, 161, 158, 160, 163, 168, 162, 161, 165, 154, 163, 156, 155, 154, 167, 165, 165, 166, 159, 159, 165, 165, 169, 158, 158, 157, 158, 163, 170, 161, 165, 150, 161, 164, 167, 161, 164, 164, 163, 158, 166, 153, 156, 164, 160, 158, 152, 165, 161, 159, 159, 157, 156, 161, 163, 164, 157, 159, 157, 159, 150, 165, 158, 159, 164, 162, 161, 164, 167, 163, 165, 160, 163, 163, 164, 160, 164, 160, 159, 160, 156, 162, 158, 160, 161, 152, 154, 164, 164, 161, 161, 154, 156, 162, 157, 165, 156, 172, 157, 163, 164, 163, 163, 154, 160, 160, 169, 157, 164, 158, 163, 163, 159, 158, 162, 156, 163, 160, 161, 163, 156, 166, 155, 151, 158, 157, 159, 157, 160, 163, 156, 160, 159, 162, 165, 157, 163, 158, 158, 160, 160, 156, 155, 158, 160, 162, 160, 161, 160, 169, 159, 161, 153, 161, 166, 158, 158, 162, 156, 157, 156, 147, 160, 161, 161, 158, 167, 166, 167, 162, 164, 159, 157, 159, 157, 161, 161, 157, 177, 157, 159, 159, 163, 162, 154, 158, 158, 156, 165, 159, 165, 161, 158, 153, 162, 165, 159, 158, 153, 155, 155, 164, 160, 162, 152, 158, 158, 157, 166, 163, 152, 144, 157, 152, 178, 160, 156, 165, 163, 160, 163, 159, 153, 156, 160, 161, 149, 158, 152, 166, 149, 164, 161, 160, 160, 157, 159, 157, 146, 156, 163, 153, 144, 158, 160, 163, 158, 160, 158, 162, 156, 158, 158, 163, 152, 179, 150, 157, 160, 153, 160, 158, 169, 161, 151, 157, 160, 153, 154, 156, 166, 162, 168, 168, 158, 158, 157, 165, 162, 166, 157, 155, 157, 160, 162, 157, 173, 166, 158, 158, 161, 157, 159, 170, 159, 149, 160, 165, 164, 163, 160, 163, 152, 154, 165, 165, 157, 158, 163, 159, 159, 160, 147, 159, 147, 157, 162, 162, 151, 169, 157, 162, 152, 155, 155, 157, 151, 158, 173, 149, 153, 152, 140, 157, 164, 171, 168, 155, 159, 169, 164, 163, 160, 161, 158, 154, 161, 168, 155, 160, 159, 162, 162, 167, 161, 161, 157, 159, 161, 155, 170, 155, 162, 153, 166, 163, 163, 166, 153, 152, 147, 162, 155, 162, 167, 153, 161, 170, 161, 156, 156, 155, 158, 163, 160, 160, 151, 162, 159, 163, 158, 166, 154, 160, 157, 166, 165, 161, 166, 171, 167, 163, 166, 161, 165, 161, 157, 147, 158, 160, 171, 166, 170, 152, 158, 155, 160, 161, 165, 160, 157, 157, 166, 162, 157, 161, 153, 153, 167, 148, 156, 161, 169, 160, 161, 150, 167, 160, 166, 155, 164, 158, 161, 156, 165, 163, 153, 174, 161, 145, 167, 158, 145, 155, 159, 153, 168, 159, 153, 160, 155, 151, 164, 166, 155, 155, 160, 160, 156, 154, 144, 158, 153, 159, 150, 144, 153, 162, 160, 153, 151, 167, 160, 157, 154, 166, 165, 173, 159, 160, 159, 159, 153, 147, 158, 152, 156, 166, 157, 158, 162, 167, 163, 152, 156, 173, 156, 151, 158, 161, 171, 157, 159, 160, 159, 158, 162, 160, 161, 158, 142, 160, 154, 167, 157, 184, 153, 165, 156, 161, 153, 158, 160, 162, 158, 153, 165, 162, 159, 166, 158, 151, 162, 151, 153, 153, 164, 192, 162, 156, 162, 148, 164, 162, 163, 161, 155, 166, 162, 157, 150, 150, 156, 167, 155, 163, 162, 161, 153, 166, 166, 162, 170, 161, 164, 166, 158, 152, 159, 157, 163, 168, 156, 168, 161, 165, 162, 154, 168, 161, 166, 153, 195, 159, 160, 162, 164, 162, 162, 164, 167, 163, 156, 163, 151, 157, 156, 163, 174, 155, 151, 158, 158, 158, 153, 152, 160, 155, 166, 156, 151, 155, 155, 162, 164, 160, 142, 172, 149, 148, 169, 155, 150, 171, 162, 166, 160, 156, 160, 163, 166, 154, 158, 164, 161, 154, 168, 159, 161, 157, 157, 158, 150, 156, 157, 166, 165, 169, 162, 155, 157, 172, 166, 176, 163, 157, 157, 157, 166, 167, 163, 162, 155, 166, 162, 166, 155, 149, 158, 163, 161, 148, 163, 158, 159, 158, 160, 157, 161, 164, 162, 156, 154, 156, 146, 149, 156, 167, 158, 155, 169, 157, 170, 158, 155, 158, 158, 162, 159, 161, 162, 162, 158, 162, 155, 169, 165, 160, 157, 164, 161, 161, 171, 152, 156, 163, 143, 162, 153, 156, 157, 156, 156, 160, 159, 164, 159, 162, 167, 171, 147, 164, 159, 158, 160, 158, 157, 167, 169, 173, 158, 152, 159, 155, 154, 162, 155, 159, 157, 167, 158, 161, 159, 169, 158, 164, 157, 156, 158, 155, 164, 166, 162, 162, 158, 159, 167, 153, 164, 161, 167, 156, 161, 170, 161, 162, 156, 157, 153, 158, 154, 159, 157, 158, 155, 153, 157, 162, 161, 159, 159, 156, 157, 158, 165, 157, 155, 157, 161, 159, 166, 170, 163, 163, 158, 161, 153, 166, 167, 161, 157, 156, 158, 160, 160, 158, 159, 162, 163, 161, 156, 170, 157, 162, 154, 162, 162, 162, 157, 163, 166, 161, 155, 161, 161, 162, 161, 155, 146, 169, 160, 165, 151, 155, 165, 159, 165, 163, 163, 168, 163, 171, 161, 159, 160, 161, 166, 160, 162, 150, 158, 160, 161, 159, 152, 158, 176, 155, 153, 156, 166, 152, 166, 168, 165, 155, 158, 151, 166, 152, 158, 164, 163, 159, 166, 162, 152, 164, 159, 166, 162, 154, 157, 161, 154, 157, 160, 161, 164, 162, 162, 164, 166, 157, 161, 154, 157, 168, 161, 154, 155, 166, 155, 159, 165, 163, 162, 163, 152, 154, 170, 158, 163, 157, 153, 162, 152, 162, 159, 160, 156, 163, 159, 148, 165, 159, 155, 158, 153, 153, 158, 159, 157, 156, 169, 161, 160, 151, 159, 159, 159, 174, 155, 166, 154, 159, 156, 164, 157, 163, 158, 162, 164, 152, 149, 162, 164, 151, 157, 163, 162, 148, 166, 159, 151, 162, 159, 173, 170, 149, 159, 153, 160, 159, 160, 160, 160, 154, 161, 161, 164, 156, 167, 162, 160, 153, 164, 161, 158, 155, 147, 163, 159, 160, 166, 163, 171, 160, 161, 164, 162, 157, 164, 158, 156, 163, 163, 155, 164, 163, 160, 158, 159, 160, 157, 168, 163, 153, 156, 160, 158, 161, 163, 158, 166, 155, 155, 165, 161, 158, 152, 157, 169, 162, 168, 163, 162, 162, 155, 153, 169, 162, 159, 163, 162, 157, 159, 156, 160, 160, 166, 159, 157, 162, 158, 160, 158, 159, 162, 168, 162, 157, 168, 160, 155, 157, 159, 157, 163, 153, 168, 155, 159, 164, 161, 155, 166, 155, 157, 160, 160, 151, 161, 164, 160, 161, 163, 155, 158, 159, 159, 149, 158, 171, 156, 149, 161, 160, 163, 154, 157, 155, 151, 162, 157, 163, 152, 151, 160, 154, 160, 161, 164, 156, 164, 160, 154, 154, 161, 162, 154, 157, 169, 156, 156, 159, 167, 154, 165, 164, 155, 162, 172, 163, 159, 151, 164, 156, 164, 149, 162, 155, 156, 159, 158, 164, 158, 151, 171, 163, 159, 166, 157, 165, 156, 159, 158, 165, 155, 154, 161, 149, 157, 164, 158, 156, 155, 164, 158, 154, 160, 164, 166, 189, 165, 155, 159, 157, 156, 151, 157, 158, 160, 166, 154, 165, 159, 162, 170, 152, 160, 163, 158, 154, 154, 164, 169, 161, 157, 155, 157, 164, 156, 161, 153, 166, 151, 167, 160, 161, 172, 161, 164, 159, 156, 154, 161, 152, 161, 158, 155, 163, 158, 167, 164, 161, 160, 159, 151, 151, 166, 153, 152, 150, 158, 155, 156, 164, 164, 158, 162, 163, 163, 170, 160, 160, 154, 164, 159, 158, 164, 153, 162, 165, 162, 163, 156, 154, 153, 161, 164, 152, 159, 157, 152, 160, 162, 153, 162, 151, 158, 158, 157, 155, 166, 154, 157, 153, 159, 161, 163, 166, 157, 152, 159, 155, 157, 158, 163, 156, 161, 157, 159, 160, 160, 156, 158, 171, 163, 163, 158, 163, 163, 157, 160, 167, 161, 165, 155, 159, 163, 166, 161, 165, 158, 162, 157, 159, 163, 160, 158, 155, 167, 162, 159, 165, 165, 166, 167, 165, 163, 163, 155, 161, 161, 164, 157, 165, 165, 154, 156, 166, 161, 158, 161, 160, 162, 161, 153, 164, 156, 156, 155, 158, 162, 156, 152, 163, 160, 159, 162, 177, 162, 165, 159, 160, 162, 151, 165, 158, 160, 155, 163, 150, 160, 159, 159, 163, 159, 155, 164, 165, 167, 156, 159, 160, 147, 156, 159, 156, 159, 157, 166, 155, 146, 162, 159, 168, 161, 160, 163, 155, 162, 166, 163, 163, 160, 168, 155, 165, 160, 151, 155, 161, 155, 156, 149, 154, 159, 152, 161, 159, 157, 160, 156, 163, 161, 159, 161, 162, 156, 162, 158, 146, 160, 165, 157, 160, 160, 160, 158, 154, 157, 166, 166, 156, 154, 161, 162, 149, 166, 167, 162, 158, 166, 163, 161, 156, 151, 163, 157, 159, 155, 152, 155, 162, 168, 154, 153, 154, 160, 157, 156, 163, 159, 160, 169, 153, 160, 152, 160, 158, 160, 158, 163, 155, 167, 163, 158, 159, 161, 157, 164, 155, 155, 154, 159, 151, 157, 164, 162, 161, 161, 168, 159, 169, 161, 154, 156, 159, 159, 161, 158, 155, 147, 175, 154, 167, 162, 162, 158, 149, 159, 152, 167, 158, 156, 160, 156, 179, 161, 165, 153, 161, 157, 160, 157, 157, 164, 155, 164, 161, 159, 161, 161, 154, 157, 163, 168, 158, 160, 159, 151, 159, 150, 154, 158, 150, 156, 159, 165, 154, 155, 163, 159, 161, 158, 149, 159, 161, 158, 164, 167, 156, 167, 161, 152, 161, 159, 154, 157, 157, 162, 160, 167, 160, 162, 159, 158, 158, 162, 158, 163, 162, 165, 159, 160, 158, 158, 161, 168, 153, 164, 172, 153, 154, 163, 159, 161, 159, 156, 163, 155, 166, 161, 159, 160, 150, 162, 164, 162, 164, 160, 160, 156, 159, 155, 153, 168, 166, 149, 159, 161, 159, 155, 164, 160, 157, 160, 153, 154, 151, 155, 154, 167, 157, 160, 157, 158, 169, 161, 164, 166, 158, 149, 158, 166, 159, 154, 154, 168, 164, 163, 161, 156, 155, 157, 162, 158, 154, 161, 164, 154, 160, 158, 155, 153, 180, 155, 158, 168, 159, 166, 157, 155, 162, 157, 157, 151, 166, 158, 175, 156, 157, 164, 164, 158, 158, 167, 149, 150, 158, 164, 153, 164, 161, 156, 160, 159, 161, 162, 147, 161, 157, 164, 158, 156, 158, 157, 161, 162, 158, 161, 164, 156, 158, 163, 161, 159, 166, 160, 156, 156, 158, 164, 159, 166, 156, 160, 157, 170, 161, 167, 160, 163, 166, 157, 163, 166, 159, 164, 166, 156, 163, 159, 161, 162, 156, 164, 166, 160, 161, 155, 153, 156, 159, 162, 157, 162, 161, 159, 159, 158, 163, 159, 158, 161, 162, 161, 159, 153, 167, 160, 162, 163, 157, 160, 160, 159, 159, 158, 161, 155, 161, 156, 153, 156, 160, 151, 164, 161, 164, 159, 162, 156, 164, 156, 167, 162, 154, 162, 166, 161, 162, 162, 160, 170, 164, 158, 155, 162, 160, 162, 156, 158, 162, 162, 160, 167, 153, 157, 157, 156, 160, 166, 160, 159, 158, 155, 168, 162, 163, 160, 163, 164, 150, 161, 152, 159, 160, 159, 163, 157, 157, 157, 159, 166, 163, 161, 158, 160, 161, 161, 164, 168, 161, 163, 165, 163, 164, 161, 158, 168, 154, 165, 160, 155, 160, 160, 159, 158, 160, 165, 160, 155, 164, 162, 158, 161, 159, 157, 159, 161, 161, 162, 157, 161, 158, 159, 162, 156, 159, 162, 160, 168, 159, 159, 157, 165, 155, 168, 171, 158, 161, 156, 162, 161, 159, 160, 158, 151, 166, 156, 159, 162, 161, 163, 161, 159, 162, 162, 162, 157, 169, 165, 166, 164, 163, 161, 163, 161, 160, 158, 159, 158, 170, 164, 159, 162, 152, 157, 165, 158, 160, 166, 161, 158, 159, 160, 161, 169, 159, 159, 161, 160, 159, 153, 162, 164, 162, 160, 166, 159, 158, 160, 159, 158, 165, 164, 165, 162, 166, 164, 166, 155, 158, 158, 160, 157, 163, 162, 160, 163, 161, 156, 161, 161, 160, 158, 161, 155, 162, 160, 157, 164, 157, 157, 158, 155, 163, 165, 162, 158, 161, 161, 163, 164, 156, 159, 160, 161, 158, 166, 157, 159, 160, 163, 167, 166, 164, 157, 166, 163, 162, 161, 161, 164, 154, 161, 164, 164, 165, 158, 160, 162, 162, 163, 152, 163, 163, 152, 163, 157, 161, 155, 162, 162, 163, 163, 161, 159, 169, 159, 151, 162, 162, 162, 154, 162, 158, 166, 160, 155, 160, 160, 162, 158, 161, 163, 164, 158, 163, 158, 157, 159, 161, 160, 159, 161, 157, 156, 153, 162, 161, 159, 165, 163, 165, 159, 153, 164, 163, 167, 157, 162, 160, 164, 165, 161, 162, 159, 164, 158, 157, 158, 159, 161, 163, 166, 160, 158, 159, 162, 163, 162, 168, 162, 154, 158, 169, 157, 157, 161, 156, 160, 155, 161, 165, 160, 157, 159, 154, 160, 161, 159, 154, 160, 161, 166, 164, 160, 163, 160, 173, 162, 163, 158, 159, 163, 161, 162, 161, 163, 157, 157, 157, 159, 158, 160, 159, 161, 161, 160, 160, 168, 160, 162, 170, 164, 158, 161, 161, 163, 155, 173, 155, 164, 161, 163, 156, 163, 161, 160, 159, 160, 161, 152, 167, 159, 158, 159, 160, 161, 165, 153, 150, 160, 157, 162, 164, 161, 164, 158, 155, 158, 147, 163, 150, 157, 152, 156, 158, 166, 154, 173, 166, 157, 135, 157, 156, 157, 152, 165, 167, 164, 159, 155, 161, 162, 150, 161, 181, 165, 169, 159, 151, 154, 156, 161, 166, 163, 157, 170, 157, 160, 168, 155, 155, 132, 156, 157, 155, 150, 147, 159, 153, 150, 160, 157, 152, 165, 155, 158, 164, 162, 156, 154, 160, 163, 155, 153, 168, 165, 166, 159, 164, 159, 162, 145, 146, 164, 161, 156, 161, 165, 157, 165, 155, 162, 155, 152, 168, 163, 160, 164, 152, 157, 145, 150, 157, 164, 156, 156, 179, 156, 157, 165, 151, 157, 153, 168, 156, 155, 158, 164, 167, 161, 156, 167, 166, 168, 172, 154, 166, 159, 162, 160, 152, 163, 155, 162, 158, 162, 156, 152, 164, 153, 158, 172, 153, 163, 162, 164, 154, 173, 161, 159, 160, 162, 148, 152, 151, 157, 158, 159, 159, 156, 163, 158, 164, 169, 171, 164, 163, 159, 149, 171, 160, 163, 160, 159, 160, 160, 171, 151, 156, 157, 162, 177, 163, 147, 158, 156, 158, 162, 161, 155, 166, 170, 153, 164, 160, 157, 164, 160, 157, 181, 161, 167, 164, 152, 170, 155, 178, 145, 168, 153, 155, 162, 162, 153, 167, 166, 156, 154, 161, 165, 170, 160, 162, 158, 154, 159, 160, 160, 149, 150, 163, 171, 163, 162, 161, 156, 144, 158, 187, 142, 166, 156, 156, 157, 154, 150, 161, 163, 158, 156, 162, 155, 164, 151, 169, 155, 168, 158, 149, 171, 153, 158, 173, 157, 163, 156, 154, 166, 159, 164, 172, 171, 153, 164, 164, 154, 151, 152, 159, 152, 162, 154, 169, 161, 153, 158, 164, 161, 167, 154, 161, 159, 169, 163, 156, 146, 171, 161, 156, 161, 159, 159, 160, 157, 152, 152, 164, 156, 167, 154, 156, 162, 162, 156, 148, 160, 168, 169, 160, 165, 162, 163, 160, 161, 158, 164, 160, 157, 152, 161, 160, 160, 151, 166, 162, 159, 164, 155, 162, 170, 159, 160, 160, 157, 149, 159, 156, 146, 156, 161, 166, 176, 157, 159, 161, 152, 163, 173, 168, 167, 159, 158, 165, 157, 166, 154, 162, 165, 142, 160, 156, 166, 160, 155, 158, 168, 166, 151, 159, 158, 168, 173, 162, 159, 168, 163, 147, 159, 163, 162, 160, 164, 159, 161, 156, 160, 154, 158, 159, 158, 161, 168, 157, 164, 156, 157, 164, 166, 162, 185, 160, 159, 162, 153, 156, 149, 168, 167, 158, 161, 163, 161, 167, 155, 156, 160, 157, 166, 167, 161, 164, 165, 169, 166, 169, 161, 158, 154, 162, 154, 155, 154, 156, 183, 154, 153, 153, 166, 160, 160, 159, 162, 161, 158, 169, 160, 163, 148, 165, 155, 166, 158, 156, 164, 160, 164, 161, 155, 162, 150, 167, 160, 156, 141, 162, 171, 151, 167, 161, 165, 151, 157, 156, 159, 166, 161, 168, 162, 162, 160, 153, 156, 161, 160, 157, 156, 161, 152, 163, 159, 168, 157, 152, 156, 152, 167, 163, 167, 161, 174, 164, 160, 156, 158, 173, 157, 165, 160, 158, 156, 162, 162, 169, 161, 158, 150, 155, 162, 160, 161, 153, 157, 159, 159, 156, 163, 160, 157, 160, 158, 154, 161, 158, 156, 158, 157, 160, 164, 161, 159, 157, 159, 167, 172, 162, 158, 160, 163, 158, 157, 164, 161, 156, 161, 159, 161, 162, 160, 157, 156, 157, 160, 156, 161, 159, 157, 167, 159, 155, 156, 161, 159, 160, 161, 163, 159, 158, 160, 159, 153, 163, 159, 157, 156, 160, 148, 156, 161, 160, 155, 160, 157, 161, 153, 160, 155, 159, 162, 163, 158, 159, 157, 159, 162, 158, 161, 158, 158, 161, 161, 161, 160, 157, 151, 159, 157, 168, 162, 163, 162, 160, 160, 159, 158, 159, 168, 160, 161, 156, 159, 153, 155, 165, 155, 159, 163, 156, 168, 160, 162, 161, 161, 152, 163, 159, 160, 160, 156, 160, 160, 167, 156, 160, 158, 156, 159, 158, 164, 165, 158, 164, 159, 141, 149, 162, 163, 164, 158, 163, 160, 156, 160, 175, 161, 157, 161, 158, 162, 157, 160, 159, 157, 158, 155, 163, 161, 165, 157, 158, 163, 161, 162, 157, 158, 156, 159, 156, 164, 168, 159, 161, 162, 166, 162, 152, 154, 161, 168, 163, 161, 162, 161, 147, 161, 160, 162, 160, 160, 158, 169, 160, 156, 155, 158, 155, 162, 162, 159, 162, 156, 159, 160, 166, 161, 159, 159, 159, 161, 156, 166, 161, 157, 157, 165, 156, 155, 156, 156, 157, 156, 162, 156, 160, 152, 173, 161, 159, 159, 156, 167, 166, 163, 159, 154, 161, 157, 162, 161, 164, 165, 154, 147, 160, 156, 166, 151, 158, 159, 165, 159, 161, 163, 155, 156, 162, 163, 157, 155, 158, 156, 160, 164, 161, 158, 160, 158, 163, 159, 166, 161, 161, 160, 154, 161, 156, 166, 151, 157, 160, 160, 163, 161, 162, 159, 158, 161, 156, 160, 159, 161, 157, 162, 165, 161, 160, 159, 158, 164, 164, 161, 166, 158, 162, 156, 165, 158, 157, 161, 159, 160, 166, 152, 163, 157, 156, 163, 158, 157, 164, 161, 162, 155, 162, 160, 156, 158, 158, 159, 159, 156, 160, 161, 158, 152, 160, 160, 159, 156, 163, 159, 160, 161, 160, 162, 160, 163, 159, 157, 159, 156, 160, 164, 168, 162, 159, 162, 160, 161, 161, 157, 160, 158, 156, 156, 177, 155, 160, 161, 162, 153, 160, 155, 161, 154, 161, 167, 162, 156, 155, 161, 160, 165, 159, 162, 162, 159, 163, 164, 160, 161, 157, 161, 158, 164, 157, 159, 158, 154, 156, 160, 157, 161, 154, 166, 166, 159, 155, 159, 159, 155, 157, 161, 161, 156, 157, 160, 163, 161, 155, 164, 162, 165, 157, 158, 154, 159, 162, 160, 161, 155, 163, 160, 161, 155, 157, 159, 164, 162, 155, 167, 162, 158, 161, 161, 154, 160, 151, 162, 165, 159, 158, 162, 159, 161, 158, 160, 163, 158, 162, 161, 157, 156, 155, 164, 165, 155, 153, 158, 162, 163, 170, 158, 159, 161, 157, 164, 158, 156, 160, 151, 171, 161, 153, 165, 165, 160, 158, 163, 159, 149, 164, 156, 155, 166, 155, 157, 159, 156, 163, 153, 152, 174, 167, 156, 159, 150, 146, 176, 163, 198, 140, 164, 159, 167, 154, 161, 166, 168, 161, 161, 169, 155, 153, 159, 160, 154, 156, 146, 158, 161, 162, 153, 160, 156, 161, 170, 154, 160, 169, 158, 162, 165, 172, 155, 162, 158, 158, 161, 165, 157, 160, 159, 166, 156, 162, 160, 158, 157, 176, 162, 164, 158, 155, 159, 156, 171, 161, 161, 160, 161, 174, 160, 157, 158, 150, 162, 166, 158, 156, 160, 161, 160, 154, 154, 159, 171, 154, 159, 167, 144, 163, 156, 181, 148, 162, 158, 153, 172, 161, 162, 166, 157, 159, 158, 166, 166, 161, 158, 158, 166, 162, 157, 162, 167, 159, 163, 164, 161, 136, 151, 159, 164, 162, 163, 159, 152, 164, 167, 160, 151, 170, 169, 158, 161, 115, 161, 160, 150, 155, 158, 153, 169, 159, 160, 164, 163, 161, 160, 158, 168, 173, 155, 168, 160, 163, 157, 142, 158, 156, 155, 157, 158, 161, 164, 161, 157, 156, 150, 162, 165, 164, 166, 154, 160, 156, 153, 162, 176, 154, 166, 159, 155, 153, 184, 152, 159, 167, 147, 154, 161, 140, 141, 168, 167, 163, 149, 161, 178, 160, 162, 168, 163, 163, 154, 147, 167, 158, 157, 159, 159, 157, 172, 146, 167, 156, 154, 162, 158, 164, 157, 145, 163, 157, 155, 169, 165, 160, 167, 157, 141, 159, 162, 157, 157, 162, 158, 160, 153, 166, 163, 156, 157, 164, 159, 164, 160, 167, 155, 152, 169, 161, 151, 157, 165, 160, 165, 167, 159, 164, 159, 159, 157, 164, 160, 160, 154, 183, 159, 168, 155, 160, 172, 161, 157, 163, 146, 138, 159, 163, 175, 164, 157, 155, 155, 158, 143, 162, 157, 164, 169, 158, 164, 152, 167, 156, 140, 144, 150, 168, 161, 158, 169, 160, 160, 167, 171, 154, 155, 157, 162, 163, 172, 154, 153, 162, 168, 157, 155, 166, 151, 162, 163, 163, 162, 160, 165, 141, 166, 150, 163, 156, 160, 160, 157, 181, 152, 156, 167, 170, 162, 159, 158, 140, 161, 159, 160, 154, 159, 164, 172, 165, 160, 162, 157, 157, 159, 155, 153, 161, 172, 163, 162, 163, 158, 160, 157, 166, 165, 164, 161, 171, 158, 153, 160, 155, 159, 159, 157, 160, 169, 166, 164, 162, 153, 159, 164, 145, 168, 159, 160, 151, 161, 158, 152, 177, 162, 160, 150, 150, 160, 153, 166, 156, 155, 158, 157, 159, 159, 164, 159, 162, 159, 161, 157, 162, 164, 156, 155, 157, 150, 164, 154, 156, 174, 145, 154, 155, 155, 165, 158, 161, 163, 166, 167, 165, 164, 156, 188, 165, 165, 160, 160, 159, 164, 160, 154, 160, 155, 162, 152, 150, 165, 171, 171, 170, 136, 156, 152, 160, 158, 155, 160, 170, 171, 165, 156, 144, 161, 163, 162, 158, 162, 167, 167, 159, 152, 166, 145, 158, 157, 159, 158, 158, 164, 154, 159, 163, 149, 169, 159, 157, 167, 153, 154, 138, 158, 157, 161, 159, 149, 157, 158, 168, 158, 156, 165, 161, 158, 158, 161, 153, 161, 159, 155, 162, 158, 156, 158, 160, 162, 161, 160, 161, 166, 160, 158, 169, 151, 174, 165, 163, 187, 157, 161, 159, 163, 163, 167, 159, 164, 160, 159, 157, 163, 148, 160, 160, 159, 160, 162, 158, 165, 161, 156, 163, 163, 159, 155, 162, 165, 157, 162, 160, 154, 153, 157, 155, 155, 150, 170, 147, 169, 160, 159, 163, 167, 173, 155, 167, 159, 156, 160, 164, 159, 161, 156, 159, 168, 160, 160, 134, 158, 164, 167, 163, 162, 161, 163, 166, 160, 161, 161, 160, 160, 161, 157, 160, 159, 169, 160, 154, 161, 153, 163, 163, 161, 154, 162, 161, 159, 156, 158, 164, 155, 174, 159, 160, 163, 158, 160, 157, 166, 160, 154, 159, 168, 161, 159, 158, 159, 156, 168, 159, 160, 156, 159, 160, 157, 170, 161, 166, 155, 161, 159, 151, 159, 161, 161, 155, 164, 154, 145, 159, 157, 161, 163, 162, 151, 156, 163, 163, 151, 158, 168, 158, 162, 155, 155, 158, 160, 158, 157, 158, 178, 167, 148, 162, 153, 170, 163, 161, 161, 163, 158, 163, 161, 162, 157, 155, 158, 163, 171, 143, 159, 166, 159, 163, 169, 161, 161, 155, 163, 162, 162, 154, 157, 162, 159, 156, 156, 161, 161, 163, 159, 162, 160, 162, 160, 171, 153, 162, 161, 162, 160, 165, 149, 163, 159, 167, 156, 160, 167, 156, 158, 159, 166, 159, 158, 159, 153, 164, 163, 157, 160, 169, 163, 160, 159, 162, 165, 163, 161, 165, 161, 162, 159, 153, 160, 153, 158, 158, 157, 165, 164, 158, 159, 158, 155, 158, 166, 151, 161, 159, 164, 162, 164, 165, 163, 160, 176, 163, 162, 163, 149, 171, 164, 162, 156, 176, 154, 157, 158, 160, 166, 153, 159, 160, 160, 154, 157, 161, 158, 168, 159, 162, 164, 158, 159, 163, 155, 156, 165, 138, 165, 163, 161, 166, 155, 161, 155, 153, 166, 161, 157, 158, 159, 162, 160, 160, 158, 160, 160, 160, 161, 163, 159, 165, 163, 157, 159, 167, 153, 159, 162, 155, 159, 160, 164, 164, 158, 157, 167, 157, 159, 161, 156, 160, 155, 161, 167, 162, 167, 152, 159, 161, 150, 156, 161, 164, 165, 163, 160, 156, 161, 158, 161, 158, 155, 159, 164, 163, 158, 154, 156, 153, 156, 160, 165, 160, 161, 162, 158, 149, 163, 169, 156, 168, 158, 163, 161, 158, 156, 162, 163, 158, 161, 169, 162, 166, 162, 162, 153, 166, 156, 166, 156, 159, 167, 155, 169, 161, 179, 159, 166, 164, 161, 161, 157, 159, 162, 166, 161, 166, 159, 157, 163, 157, 162, 159, 163, 169, 155, 155, 167, 163, 156, 162, 158, 163, 162, 168, 168, 156, 160, 157, 161, 158, 164, 156, 161, 155, 155, 163, 139, 158, 156, 159, 162, 160, 159, 145, 157, 162, 151, 157, 156, 159, 157, 160, 163, 151, 166, 163, 161, 161, 162, 159, 157, 159, 147, 175, 159, 164, 159, 159, 166, 161, 161, 167, 165, 158, 163, 158, 168, 167, 157, 157, 160, 172, 161, 156, 152, 153, 161, 156, 156, 155, 152, 161, 156, 162, 162, 157, 159, 165, 160, 165, 157, 156, 155, 161, 163, 152, 154, 171, 168, 157, 150, 163, 162, 163, 157, 171, 163, 158, 162, 163, 155, 155, 170, 144, 156, 158, 163, 160, 147, 160, 154, 155, 165, 164, 165, 156, 160, 168, 159, 163, 155, 150, 153, 166, 166, 159, 154, 152, 154, 165, 163, 156, 157, 155, 151, 166, 168, 156, 149, 161, 153, 156, 147, 161, 154, 160, 161, 167, 158, 165, 164, 162, 160, 174, 164, 160, 159, 160, 155, 149, 155, 146, 152, 150, 162, 167, 158, 156, 157, 162, 159, 160, 155, 155, 172, 162, 157, 152, 158, 143, 162, 160, 159, 157, 167, 158, 167, 164, 156, 160, 160, 169, 162, 165, 183, 154, 159, 163, 153, 168, 157, 149, 142, 153, 164, 165, 163, 166, 148, 169, 160, 151, 155, 168, 163, 165, 162, 152, 157, 152, 152, 162, 165, 154, 157, 164, 160, 161, 151, 155, 159, 160, 160, 181, 166, 152, 155, 164, 160, 162, 168, 180, 156, 157, 162, 157, 149, 162, 159, 164, 162, 163, 159, 162, 151, 154, 172, 151, 154, 160, 158, 151, 167, 155, 153, 160, 154, 154, 169, 157, 159, 155, 158, 165, 164, 162, 157, 157, 160, 148, 161, 158, 164, 144, 154, 156, 156, 158, 168, 161, 159, 162, 168, 154, 160, 161, 152, 167, 157, 158, 158, 157, 158, 187, 154, 166, 155, 157, 164, 158, 162, 154, 156, 166, 156, 159, 157, 151, 172, 153, 157, 158, 177, 157, 154, 156, 156, 155, 155, 156, 151, 154, 162, 173, 153, 166, 158, 151, 160, 155, 160, 153, 139, 161, 160, 169, 161, 172, 168, 163, 150, 155, 181, 162, 154, 152, 159, 161, 161, 160, 152, 155, 152, 158, 158, 152, 165, 161, 156, 169, 167, 155, 166, 164, 161, 159, 160, 166, 155, 154, 157, 160, 159, 150, 158, 163, 153, 161, 152, 151, 152, 155, 158, 155, 162, 164, 162, 158, 157, 158, 163, 159, 166, 166, 148, 162, 168, 162, 156, 160, 155, 160, 158, 159, 150, 186, 160, 163, 162, 152, 155, 156, 163, 156, 158, 172, 161, 156, 161, 154, 149, 144, 157, 154, 151, 148, 158, 150, 160, 164, 161, 151, 185, 158, 143, 155, 159, 161, 156, 153, 150, 157, 149, 162, 173, 162, 150, 167, 157, 161, 160, 151, 167, 164, 149, 152, 156, 163, 159, 148, 150, 158, 156, 156, 160, 158, 158, 154, 153, 152, 160, 158, 155, 164, 162, 158, 160, 162, 155, 154, 152, 153, 168, 156, 155, 163, 165, 164, 163, 153, 166, 156, 160, 153, 151, 161, 158, 157, 145, 163, 158, 151, 147, 158, 153, 159, 157, 159, 156, 161, 153, 165, 161, 167, 148, 159, 176, 159, 164, 156, 165, 165, 157, 152, 160, 163, 162, 161, 154, 148, 156, 166, 160, 161, 153, 153, 163, 166, 163, 164, 155, 172, 154, 161, 158, 164, 149, 154, 153, 162, 155, 151, 150, 165, 165, 164, 162, 153, 159, 162, 165, 175, 155, 156, 165, 156, 159, 154, 161, 160, 164, 160, 154, 155, 165, 152, 165, 161, 158, 163, 162, 164, 172, 163, 166, 152, 164, 160, 157, 163, 155, 165, 175, 153, 158, 156, 154, 158, 159, 160, 158, 170, 158, 160, 158, 155, 162, 160, 150, 152, 171, 155, 153, 158, 158, 166, 155, 175, 151, 167, 158, 165, 152, 162, 159, 192, 159, 149, 148, 167, 159, 171, 160, 165, 147, 153, 156, 157, 165, 158, 159, 152, 164, 155, 153, 158, 157, 159, 153, 162, 157, 153, 157, 155, 155, 165, 156, 165, 163, 158, 154, 166, 158, 153, 158, 162, 163, 154, 161, 156, 158, 161, 158, 163, 144, 158, 153, 175, 161, 158, 164, 169, 158, 153, 157, 163, 157, 156, 157, 158, 169, 163, 155, 158, 149, 160, 155, 165, 170, 160, 173, 158, 163, 165, 160, 166, 147, 161, 160, 162, 161, 161, 162, 161, 157, 155, 161, 154, 152, 155, 156, 158, 163, 158, 168, 153, 154, 158, 154, 171, 154, 162, 153, 155, 150, 158, 167, 165, 164, 154, 158, 158, 156, 156, 166, 168, 155, 156, 162, 161, 161, 152, 157, 160, 155, 164, 163, 164, 156, 159, 153, 162, 152, 162, 165, 157, 159, 168, 164, 143, 162, 169, 156, 152, 159, 164, 161, 150, 152, 166, 153, 158, 149, 164, 164, 163, 150, 159, 152, 156, 160, 163, 151, 177, 157, 160, 156, 146, 168, 156, 163, 168, 164, 163, 155, 159, 157, 156, 156, 152, 155, 157, 144, 155, 154, 152, 158, 161, 158, 161, 156, 172, 160, 160, 159, 166, 159, 160, 157, 170, 158, 162, 160, 159, 166, 169, 153, 155, 177, 158, 155, 166, 154, 158, 161, 164, 161, 163, 150, 162, 150, 159, 153, 158, 163, 161, 160, 155, 157, 161, 163, 156, 171, 153, 162, 160, 154, 156, 160, 154, 161, 159, 166, 154, 153, 150, 161, 167, 163, 170, 160, 164, 159, 161, 153, 148, 155, 159, 164, 160, 161, 161, 157, 159, 173, 156, 162, 153, 156, 160, 163, 153, 160, 165, 155, 153, 166, 159, 167, 151, 156, 149, 153, 154, 155, 158, 160, 165, 156, 164, 159, 176, 178, 155, 153, 183, 158, 152, 162, 167, 158, 160, 160, 167, 169, 158, 162, 158, 159, 161, 156, 162, 165, 160, 164, 163, 162, 159, 165, 167, 162, 151, 167, 158, 155, 158, 156, 160, 160, 169, 159, 156, 165, 151, 163, 160, 147, 160, 153, 155, 155, 152, 160, 161, 162, 166, 159, 164, 153, 160, 163, 158, 160, 156, 154, 166, 162, 174, 156, 171, 162, 156, 166, 177, 154, 159, 157, 155, 167, 163, 160, 155, 154, 156, 156, 158, 148, 170, 162, 166, 161, 159, 156, 168, 162, 151, 154, 158, 159, 148, 156, 149, 172, 158, 158, 159, 153, 162, 154, 154, 173, 156, 150, 169, 159, 151, 154, 159, 154, 165, 161, 151, 151, 163, 158, 169, 146, 144, 158, 154, 156, 159, 163, 161, 158, 162, 155, 166, 163, 150, 158, 158, 168, 171, 167, 157, 153, 162, 151, 152, 159, 157, 158, 166, 157, 156, 162, 161, 162, 162, 160, 158, 168, 162, 159, 168, 156, 161, 157, 159, 173, 160, 162, 164, 168, 162, 154, 169, 163, 164, 162, 156, 168, 163, 157, 156, 159, 159, 173, 161, 158, 159, 159, 164, 157, 159, 163, 156, 161, 161, 150, 152, 159, 160, 143, 162, 160, 158, 155, 165, 162, 167, 158, 159, 159, 161, 160, 162, 157, 159, 161, 161, 158, 157, 162, 159, 154, 161, 159, 163, 160, 152, 158, 165, 159, 160, 160, 158, 163, 158, 158, 163, 157, 158, 163, 161, 169, 159, 159, 157, 154, 167, 156, 161, 163, 153, 159, 154, 165, 165, 158, 167, 161, 160, 160, 160, 183, 160, 156, 165, 163, 156, 156, 156, 159, 157, 160, 160, 155, 161, 158, 158, 169, 157, 170, 162, 167, 158, 158, 149, 181, 165, 175, 155, 163, 156, 156, 172, 163, 155, 160, 153, 162, 165, 159, 159, 153, 157, 160, 157, 159, 159, 160, 157, 160, 161, 158, 160, 158, 157, 162, 162, 162, 163, 159, 163, 151, 160, 160, 161, 161, 159, 159, 162, 162, 158, 158, 161, 160, 159, 159, 157, 159, 157, 163, 159, 156, 166, 164, 157, 160, 161, 153, 153, 164, 157, 156, 160, 159, 174, 159, 152, 160, 161, 159, 148, 164, 161, 156, 159, 159, 156, 156, 162, 151, 160, 164, 158, 153, 159, 171, 145, 159, 147, 162, 166, 157, 158, 158, 160, 180, 167, 168, 163, 167, 158, 153, 160, 157, 159, 168, 163, 163, 159, 149, 161, 160, 167, 160, 149, 162, 160, 161, 160, 161, 147, 157, 156, 157, 165, 160, 163, 154, 164, 162, 163, 154, 158, 160, 160, 165, 153, 158, 161, 155, 158, 158, 165, 161, 162, 158, 162, 155, 162, 162, 161, 159, 157, 156, 158, 151, 149, 159, 156, 162, 158, 160, 163, 163, 161, 161, 163, 163, 165, 162, 159, 163, 157, 165, 159, 159, 158, 174, 164, 150, 159, 158, 159, 158, 155, 178, 160, 156, 163, 159, 159, 179, 149, 157, 161, 161, 164, 172, 158, 165, 154, 160, 167, 162, 165, 161, 168, 158, 158, 164, 163, 162, 157, 155, 162, 154, 157, 162, 165, 162, 163, 159, 163, 159, 159, 167, 161, 159, 160, 160, 159, 156, 161, 162, 162, 161, 158, 158, 156, 158, 154, 157, 158, 161, 162, 167, 165, 160, 169, 160, 158, 159, 157, 156, 156, 162, 157, 162, 160, 144, 147, 161, 163, 156, 156, 160, 154, 163, 157, 154, 160, 161, 162, 160, 158, 157, 158, 162, 162, 162, 159, 160, 160, 156, 151, 159, 152, 155, 159, 156, 155, 159, 149, 157, 159, 160, 165, 160, 150, 164, 157, 168, 159, 164, 157, 158, 161, 158, 165, 157, 165, 167, 154, 155, 160, 164, 145, 157, 160, 171, 160, 162, 161, 162, 164, 163, 162, 164, 162, 162, 159, 158, 159, 156, 160, 162, 159, 164, 159, 143, 164, 161, 159, 162, 155, 161, 162, 157, 161, 160, 159, 155, 162, 164, 167, 162, 160, 158, 159, 158, 167, 158, 165, 158, 158, 144, 161, 154, 157, 156, 155, 160, 152, 160, 163, 158, 163, 160, 161, 156, 155, 163, 167, 161, 165, 151, 163, 164, 160, 166, 161, 161, 166, 157, 160, 155, 153, 153, 166, 161, 156, 176, 158, 164, 162, 157, 159, 164, 155, 167, 159, 159, 161, 162, 166, 161, 159, 162, 165, 158, 169, 162, 156, 161, 161, 166, 157, 163, 159, 167, 159, 161, 160, 159, 170, 159, 159, 158, 166, 167, 166, 164, 157, 164, 157, 162, 161, 166, 162, 160, 159, 152, 158, 163, 164, 157, 161, 160, 159, 158, 158, 156, 159, 155, 159, 162, 163, 157, 159, 162, 159, 165, 164, 151, 159, 161, 164, 160, 156, 155, 162, 158, 162, 158, 163, 161, 158, 158, 158, 160, 157, 161, 161, 157, 167, 155, 162, 165, 158, 152, 161, 160, 149, 161, 169, 163, 158, 164, 157, 161, 149, 160, 157, 161, 153, 152, 150, 162, 160, 153, 171, 161, 160, 161, 156, 163, 169, 161, 165, 166, 169, 165, 153, 161, 154, 154, 163, 153, 156, 160, 161, 157, 159, 167, 159, 160, 162, 171, 160, 157, 164, 161, 156, 164, 160, 173, 158, 166, 156, 164, 152, 169, 159, 160, 157, 169, 154, 163, 170, 153, 146, 159, 169, 156, 166, 159, 157, 159, 159, 166, 154, 159, 149, 156, 159, 153, 148, 163, 164, 163, 158, 158, 162, 161, 158, 154, 166, 154, 153, 166, 165, 166, 161, 166, 158, 165, 154, 154, 160, 162, 160, 164, 151, 165, 155, 158, 155, 159, 146, 164, 155, 159, 167, 163, 158, 160, 163, 159, 159, 155, 158, 163, 173, 162, 163, 154, 157, 162, 143, 166, 159, 158, 161, 171, 156, 162, 164, 162, 163, 159, 155, 159, 162, 163, 161, 155, 157, 156, 149, 166, 161, 167, 157, 158, 160, 158, 167, 157, 158, 164, 171, 160, 162, 159, 161, 159, 156, 162, 159, 156, 153, 156, 165, 165, 160, 161, 170, 159, 158, 150, 161, 165, 151, 161, 159, 152, 164, 159, 159, 165, 165, 157, 160, 159, 167, 154, 173, 166, 156, 159, 151, 159, 156, 161, 154, 158, 155, 169, 156, 162, 152, 163, 154, 162, 148, 161, 154, 160, 160, 160, 156, 163, 156, 162, 162, 160, 150, 162, 157, 156, 165, 157, 158, 161, 164, 154, 160, 158, 151, 161, 173, 160, 160, 161, 162, 160, 161, 158, 150, 154, 158, 152, 160, 162, 164, 153, 159, 156, 151, 157, 166, 160, 153, 151, 164, 150, 166, 155, 168, 159, 155, 168, 159, 168, 164, 158, 155, 157, 160, 157, 162, 170, 159, 163, 159, 155, 158, 152, 162, 159, 159, 169, 159, 155, 168, 162, 160, 162, 154, 157, 159, 159, 166, 157, 159, 154, 162, 158, 159, 159, 162, 149, 164, 157, 165, 161, 164, 160, 154, 171, 166, 156, 158, 163, 162, 164, 159, 154, 149, 163, 171, 150, 166, 161, 148, 155, 165, 160, 154, 160, 154, 173, 159, 165, 160, 166, 162, 158, 157, 160, 161, 157, 156, 151, 176, 161, 161, 159, 190, 161, 162, 158, 151, 160, 157, 154, 168, 162, 157, 157, 155, 173, 163, 165, 157, 159, 162, 160, 162, 162, 156, 163, 166, 158, 165, 172, 158, 155, 162, 161, 161, 164, 163, 159, 168, 161, 156, 159, 156, 161, 154, 158, 168, 159, 150, 162, 157, 154, 152, 164, 164, 160, 158, 161, 159, 162, 158, 156, 161, 165, 164, 161, 159, 156, 156, 166, 162, 157, 159, 154, 160, 163, 163, 162, 158, 159, 168, 159, 159, 170, 160, 154, 167, 159, 151, 148, 162, 157, 154, 158, 160, 154, 164, 160, 160, 153, 168, 157, 154, 162, 166, 155, 161, 162, 159, 153, 155, 150, 158, 154, 159, 157, 154, 154, 157, 165, 164, 156, 151, 157, 160, 160, 162, 155, 165, 158, 161, 156, 164, 158, 151, 159, 164, 153, 158, 155, 160, 155, 158, 163, 164, 162, 158, 170, 166, 159, 160, 156, 168, 157, 160, 155, 159, 161, 163, 154, 151, 160, 154, 166, 155, 168, 160, 158, 159, 159, 159, 162, 160, 161, 161, 155, 165, 169, 162, 163, 152, 160, 157, 152, 162, 159, 158, 154, 152, 156, 159, 155, 159, 158, 152, 159, 153, 169, 155, 170, 162, 149, 164, 170, 152, 161, 160, 156, 159, 163, 162, 160, 160, 156, 167, 166, 165, 169, 157, 152, 161, 165, 167, 154, 162, 161, 159, 159, 161, 156, 159, 160, 155, 152, 162, 153, 157, 161, 159, 157, 155, 155, 158, 162, 160, 159, 161, 166, 161, 168, 158, 154, 162, 160, 166, 158, 161, 157, 157, 163, 156, 157, 162, 160, 171, 152, 153, 159, 160, 154, 156, 157, 162, 158, 156, 154, 158, 149, 168, 155, 162, 154, 161, 160, 181, 156, 161, 161, 156, 173, 160, 158, 161, 153, 157, 152, 170, 156, 157, 160, 160, 152, 158, 160, 164, 157, 158, 154, 153, 154, 160, 158, 160, 158, 158, 165, 161, 160, 159, 160, 160, 158, 151, 166, 159, 160, 163, 160, 166, 159, 164, 162, 154, 166, 156, 160, 154, 157, 158, 158, 159, 159, 159, 161, 157, 161, 170, 161, 170, 159, 155, 167, 164, 164, 156, 158, 172, 161, 169, 159, 151, 163, 161, 166, 169, 162, 159, 160, 152, 158, 156, 154, 164, 158, 159, 157, 161, 166, 162, 160, 167, 171, 153, 158, 163, 159, 162, 160, 160, 156, 164, 169, 163, 156, 154, 159, 170, 164, 157, 153, 159, 159, 155, 155, 154, 156, 156, 159, 156, 165, 165, 165, 159, 167, 160, 166, 159, 163, 160, 169, 167, 164, 166, 171, 155, 155, 162, 150, 158, 158, 171, 160, 157, 167, 163, 158, 153, 157, 163, 156, 162, 166, 163, 155, 159, 164, 169, 157, 161, 160, 153, 161, 154, 158, 166, 158, 160, 161, 159, 161, 163, 160, 162, 165, 157, 159, 162, 148, 162, 165, 153, 163, 163, 165, 165, 167, 152, 162, 158, 157, 164, 158, 164, 164, 149, 159, 154, 148, 170, 173, 150, 158, 157, 159, 168, 162, 160, 168, 153, 164, 160, 159, 168, 165, 155, 160, 162, 159, 168, 164, 157, 168, 154, 171, 176, 158, 161, 157, 158, 163, 151, 155, 167, 156, 153, 160, 156, 162, 164, 146, 157, 162, 167, 164, 171, 161, 163, 159, 159, 165, 163, 162, 154, 155, 165, 166, 161, 154, 161, 158, 161, 165, 155, 155, 162, 152, 164, 161, 167, 160, 164, 164, 163, 165, 162, 162, 164, 167, 162, 168, 160, 161, 161, 171, 162, 162, 165, 168, 159, 162, 166, 161, 156, 163, 159, 149, 167, 164, 163, 160, 157, 202, 154, 163, 162, 163, 163, 158, 151, 162, 164, 162, 159, 145, 158, 166, 163, 155, 167, 158, 167, 159, 159, 159, 165, 162, 178, 154, 159, 163, 158, 157, 165, 158, 159, 157, 162, 159, 152, 157, 162, 153, 158, 163, 162, 166, 162, 179, 155, 160, 151, 162, 164, 158, 163, 160, 170, 158, 163, 160, 158, 162, 168, 154, 162, 163, 149, 163, 101, 162, 151, 160, 150, 164, 162, 165, 159, 162, 162, 166, 158, 158, 159, 160, 157, 154, 155, 159, 166, 161, 157, 162, 171, 165, 161, 168, 157, 167, 160, 157, 154, 152, 162, 160, 164, 165, 164, 158, 153, 155, 166, 162, 155, 156, 169, 161, 155, 155, 163, 159, 150, 159, 168, 168, 158, 158, 165, 161, 170, 167, 159, 159, 153, 166, 161, 157, 160, 160, 160, 161, 164, 162, 167, 165, 161, 165, 160, 162, 171, 177, 164, 169, 124, 162, 157, 161, 160, 163, 169, 155, 142, 164, 159, 160, 157, 162, 163, 162, 158, 156, 160, 161, 170, 163, 156, 164, 157, 179, 198, 161, 164, 152, 163, 156, 154, 164, 159, 155, 162, 160, 160, 154, 161, 163, 160, 163, 158, 171, 160, 145, 164, 157, 165, 161, 148, 156, 159, 159, 170, 156, 156, 165, 156, 163, 162, 157, 161, 149, 171, 162, 167, 155, 165, 160, 147, 160, 162, 156, 159, 158, 159, 156, 154, 161, 159, 156, 160, 167, 159, 163, 168, 157, 160, 156, 165, 156, 160, 164, 162, 162, 158, 162, 167, 159, 155, 167, 157, 168, 144, 162, 168, 166, 162, 164, 162, 159, 161, 162, 157, 162, 164, 156, 161, 158, 162, 160, 165, 160, 164, 156, 162, 154, 159, 163, 159, 154, 160, 157, 156, 155, 159, 155, 161, 163, 155, 162, 162, 162, 160, 161, 161, 162, 163, 168, 164, 157, 161, 156, 163, 156, 164, 159, 168, 165, 156, 166, 162, 152, 159, 168, 162, 168, 163, 154, 157, 155, 154, 150, 167, 165, 170, 169, 165, 160, 166, 155, 156, 156, 156, 166, 159, 162, 167, 155, 155, 163, 161, 153, 158, 159, 160, 170, 161, 208, 155, 161, 174, 159, 163, 160, 156, 168, 156, 151, 164, 162, 162, 164, 169, 160, 155, 171, 162, 155, 159, 163, 158, 157, 163, 160, 160, 160, 170, 156, 156, 160, 156, 167, 166, 163, 162, 167, 163, 162, 158, 157, 165, 154, 161, 164, 163, 158, 174, 162, 160, 160, 167, 166, 155, 159, 162, 164, 161, 153, 160, 161, 156, 137, 162, 159, 156, 164, 167, 166, 160, 161, 166, 166, 161, 152, 170, 149, 160, 157, 157, 161, 153, 165, 155, 159, 162, 174, 159, 163, 159, 160, 164, 161, 157, 170, 158, 152, 160, 158, 163, 161, 157, 159, 156, 158, 146, 163, 166, 158, 150, 169, 166, 155, 159, 143, 177, 159, 152, 160, 161, 155, 144, 156, 164, 153, 157, 166, 157, 168, 159, 154, 162, 157, 175, 164, 162, 156, 154, 138, 162, 166, 157, 163, 165, 159, 163, 157, 166, 164, 155, 155, 164, 160, 166, 158, 156, 162, 156, 158, 155, 158, 166, 160, 151, 150, 155, 161, 162, 152, 165, 159, 166, 154, 167, 156, 167, 161, 163, 161, 161, 159, 160, 158, 161, 159, 158, 169, 150, 157, 154, 159, 160, 166, 170, 156, 163, 154, 168, 155, 165, 155, 158, 164, 164, 159, 161, 162, 163, 160, 167, 168, 157, 174, 130, 160, 156, 165, 166, 166, 156, 169, 155, 151, 157, 158, 158, 154, 131, 163, 166, 162, 161, 162, 163, 158, 143, 157, 160, 155, 159, 150, 160, 155, 163, 159, 154, 157, 166, 163, 158, 159, 170, 157, 151, 168, 158, 158, 175, 159, 171, 167, 162, 169, 158, 181, 157, 165, 157, 167, 160, 157, 165, 151, 149, 153, 166, 154, 150, 159, 157, 170, 162, 160, 161, 181, 159, 156, 161, 155, 165, 155, 161, 158, 164, 152, 158, 156, 168, 154, 164, 157, 164, 167, 163, 154, 168, 164, 161, 164, 158, 159, 159, 160, 161, 164, 156, 160, 157, 169, 155, 163, 169, 168, 161, 153, 169, 151, 163, 170, 159, 162, 155, 160, 154, 162, 162, 156, 151, 156, 152, 158, 157, 162, 159, 163, 159, 176, 154, 159, 161, 162, 155, 163, 160, 152, 146, 158, 163, 152, 158, 146, 158, 159, 155, 171, 156, 148, 162, 171, 162, 160, 174, 149, 151, 159, 155, 155, 154, 167, 170, 163, 160, 153, 164, 154, 170, 159, 159, 157, 165, 156, 163, 170, 155, 154, 152, 160, 156, 164, 161, 154, 137, 157, 159, 160, 165, 158, 158, 151, 156, 165, 173, 161, 152, 160, 171, 154, 160, 164, 172, 157, 162, 171, 160, 159, 159, 157, 167, 169, 163, 153, 157, 158, 159, 164, 165, 166, 160, 142, 162, 147, 154, 162, 172, 150, 173, 160, 160, 146, 160, 169, 151, 158, 161, 169, 155, 164, 156, 157, 160, 170, 156, 166, 161, 155, 161, 164, 173, 161, 158, 164, 168, 164, 165, 158, 155, 165, 154, 163, 153, 152, 156, 153, 161, 163, 153, 169, 159, 160, 164, 159, 159, 165, 160, 164, 161, 154, 162, 161, 156, 164, 157, 164, 169, 159, 161, 168, 159, 163, 158, 157, 160, 157, 152, 152, 158, 158, 172, 153, 162, 175, 163, 148, 158, 158, 155, 169, 160, 169, 167, 154, 166, 153, 159, 143, 166, 167, 148, 157, 154, 162, 166, 154, 155, 153, 157, 152, 152, 156, 160, 160, 155, 156, 165, 161, 153, 158, 160, 159, 160, 179, 158, 160, 155, 160, 157, 161, 164, 163, 170, 157, 166, 164, 150, 161, 162, 172, 151, 168, 165, 180, 159, 164, 154, 160, 156, 154, 166, 152, 154, 156, 163, 162, 163, 165, 169, 157, 164, 164, 164, 157, 161, 171, 145, 163, 164, 159, 158, 157, 157, 159, 154, 157, 161, 161, 162, 157, 151, 158, 164, 161, 155, 165, 167, 165, 161, 154, 154, 161, 162, 161, 159, 164, 164, 161, 165, 159, 169, 155, 166, 162, 152, 157, 160, 162, 158, 155, 163, 160, 160, 157, 166, 167, 164, 158, 157, 156, 158, 155, 158, 155, 156, 158, 162, 165, 165, 161, 166, 149, 156, 155, 158, 158, 161, 157, 155, 164, 161, 169, 162, 167, 160, 159, 166, 164, 163, 162, 159, 163, 155, 170, 163, 156, 163, 160, 158, 167, 166, 166, 163, 159, 158, 160, 167, 162, 159, 170, 162, 160, 161, 167, 159, 162, 167, 163, 161, 160, 163, 159, 165, 162, 166, 157, 161, 159, 167, 157, 161, 157, 154, 156, 163, 162, 162, 161, 164, 159, 165, 160, 164, 161, 166, 159, 160, 157, 159, 161, 166, 155, 162, 165, 160, 157, 163, 166, 156, 155, 156, 156, 158, 165, 164, 156, 157, 153, 162, 165, 159, 156, 158, 154, 165, 161, 158, 161, 161, 157, 164, 155, 155, 158, 157, 161, 156, 164, 159, 160, 156, 162, 156, 160, 149, 157, 160, 154, 158, 162, 163, 158, 164, 168, 159, 156, 161, 161, 157, 162, 165, 161, 160, 155, 156, 157, 155, 161, 161, 163, 163, 156, 159, 158, 158, 164, 161, 165, 163, 153, 161, 160, 164, 155, 165, 159, 153, 162, 158, 164, 163, 161, 157, 163, 160, 162, 164, 156, 156, 158, 163, 162, 158, 162, 162, 159, 161, 159, 161, 159, 155, 160, 163, 159, 160, 156, 157, 162, 160, 154, 161, 165, 166, 169, 162, 159, 155, 154, 159, 157, 162, 154, 154, 157, 160, 163, 156, 166, 155, 161, 157, 161, 153, 155, 155, 161, 171, 158, 158, 156, 160, 158, 161, 161, 155, 168, 168, 156, 160, 156, 157, 166, 162, 157, 161, 164, 163, 160, 153, 151, 156, 165, 166, 162, 167, 160, 158, 158, 165, 164, 165, 163, 159, 156, 160, 161, 168, 160, 160, 161, 155, 162, 159, 157, 160, 164, 159, 163, 164, 160, 160, 158, 160, 160, 161, 162, 158, 158, 155, 160, 163, 157, 159, 161, 170, 168, 169, 154, 159, 163, 164, 160, 164, 159, 160, 152, 163, 160, 164, 163, 160, 168, 162, 161, 160, 162, 166, 155, 167, 160, 160, 164, 165, 157, 164, 160, 154, 161, 164, 151, 165, 159, 160, 160, 155, 166, 169, 161, 158, 160, 157, 156, 156, 156, 163, 165, 167, 161, 163, 155, 163, 155, 162, 164, 172, 153, 163, 161, 160, 165, 150, 158, 162, 160, 168, 151, 161, 159, 162, 156, 163, 158, 163, 160, 157, 162, 168, 163, 159, 155, 154, 155, 170, 158, 162, 160, 160, 154, 160, 161, 162, 167, 164, 166, 160, 158, 162, 163, 157, 159, 158, 159, 157, 159, 165, 159, 152, 160, 163, 160, 162, 159, 161, 162, 157, 166, 165, 160, 162, 162, 169, 160, 158, 157, 170, 160, 165, 156, 160, 165, 163, 161, 158, 166, 163, 159, 168, 160, 159, 152, 164, 160, 159, 155, 153, 154, 161, 157, 162, 155, 157, 162, 156, 158, 160, 148, 151, 161, 148, 154, 156, 160, 153, 166, 167, 157, 162, 152, 163, 150, 163, 162, 167, 162, 157, 148, 162, 155, 152, 158, 154, 165, 158, 167, 163, 150, 157, 155, 165, 159, 168, 163, 159, 163, 162, 158, 163, 165, 163, 163, 161, 160, 160, 153, 169, 158, 166, 161, 159, 158, 150, 162, 146, 162, 150, 166, 156, 163, 169, 158, 161, 159, 153, 167, 166, 157, 169, 161, 158, 153, 161, 161, 160, 166, 165, 171, 151, 165, 161, 160, 154, 153, 158, 153, 157, 163, 156, 159, 161, 166, 161, 163, 159, 167, 156, 168, 164, 154, 158, 160, 158, 158, 167, 159, 164, 160, 156, 160, 162, 157, 157, 148, 154, 163, 159, 156, 156, 160, 163, 164, 167, 157, 159, 161, 162, 165, 155, 156, 162, 158, 159, 155, 157, 167, 165, 163, 163, 158, 153, 162, 161, 165, 157, 163, 160, 159, 163, 156, 152, 162, 160, 161, 154, 158, 157, 151, 158, 156, 165, 161, 156, 165, 154, 167, 157, 159, 159, 161, 157, 164, 154, 159, 172, 158, 152, 159, 161, 150, 152, 154, 161, 163, 157, 162, 157, 143, 151, 140, 166, 162, 153, 158, 162, 157, 151, 159, 176, 154, 160, 159, 164, 163, 150, 156, 157, 150, 159, 158, 163, 155, 164, 155, 154, 163, 160, 163, 152, 169, 165, 165, 153, 156, 168, 156, 156, 154, 163, 161, 162, 157, 161, 165, 155, 159, 154, 164, 161, 160, 158, 163, 156, 155, 173, 163, 166, 168, 162, 163, 164, 158, 165, 155, 156, 162, 164, 159, 154, 156, 162, 157, 164, 157, 160, 161, 170, 159, 158, 161, 156, 158, 172, 168, 158, 165, 168, 164, 155, 161, 159, 159, 163, 159, 157, 168, 148, 164, 161, 179, 163, 158, 163, 158, 164, 158, 154, 160, 156, 158, 171, 150, 156, 164, 178, 155, 156, 166, 154, 158, 163, 160, 157, 159, 161, 158, 169, 159, 164, 158, 166, 160, 157, 163, 158, 151, 161, 154, 154, 152, 159, 159, 153, 156, 160, 160, 158, 158, 164, 165, 164, 157, 152, 159, 165, 159, 162, 165, 157, 161, 158, 159, 155, 163, 155, 161, 154, 166, 158, 158, 157, 160, 153, 164, 173, 158, 159, 155, 160, 173, 164, 162, 162, 163, 174, 165, 157, 154, 170, 164, 161, 162, 159, 157, 159, 156, 171, 164, 155, 156, 163, 163, 165, 161, 160, 164, 161, 166, 156, 159, 169, 166, 158, 175, 153, 154, 167, 150, 162, 157, 170, 153, 157, 168, 161, 159, 166, 168, 161, 152, 153, 167, 160, 157, 166, 154, 159, 155, 162, 162, 168, 166, 167, 153, 163, 164, 158, 156, 165, 171, 158, 159, 158, 144, 158, 156, 160, 160, 159, 157, 149, 159, 161, 148, 158, 157, 167, 161, 159, 156, 178, 163, 147, 158, 155, 159, 150, 154, 160, 154, 158, 160, 165, 166, 145, 158, 164, 156, 151, 158, 164, 162, 161, 156, 161, 167, 158, 156, 164, 169, 158, 152, 172, 158, 153, 160, 160, 157, 158, 167, 159, 155, 159, 167, 173, 158, 156, 155, 152, 150, 162, 158, 168, 168, 156, 158, 166, 167, 156, 162, 160, 162, 154, 166, 159, 162, 163, 166, 162, 155, 163, 153, 159, 156, 157, 157, 161, 154, 163, 161, 169, 159, 162, 159, 155, 151, 170, 151, 156, 168, 162, 165, 158, 157, 160, 167, 163, 158, 155, 156, 152, 153, 159, 189, 159, 160, 159, 151, 151, 158, 162, 168, 158, 158, 155, 160, 162, 164, 161, 160, 155, 162, 166, 154, 148, 164, 160, 161, 158, 167, 154, 156, 162, 155, 154, 167, 162, 179, 155, 152, 166, 160, 156, 154, 158, 173, 160, 160, 156, 166, 157, 161, 158, 165, 166, 162, 164, 164, 172, 171, 145, 161, 163, 158, 151, 165, 156, 159, 164, 159, 166, 164, 151, 155, 164, 165, 170, 163, 161, 168, 166, 162, 126, 156, 158, 158, 167, 157, 163, 170, 154, 166, 158, 167, 153, 158, 161, 166, 164, 154, 161, 154, 162, 153, 152, 170, 161, 148, 165, 156, 154, 161, 163, 159, 145, 165, 168, 155, 162, 170, 159, 161, 149, 153, 159, 162, 157, 159, 163, 158, 160, 156, 159, 152, 164, 163, 154, 157, 148, 167, 162, 156, 158, 167, 162, 152, 160, 156, 161, 147, 156, 158, 151, 150, 150, 161, 157, 152, 161, 167, 158, 163, 168, 163, 159, 158, 161, 160, 158, 158, 145, 159, 151, 163, 161, 158, 153, 156, 156, 154, 153, 165, 156, 150, 157, 153, 153, 149, 154, 158, 167, 156, 169, 160, 163, 159, 151, 171, 162, 168, 166, 155, 157, 166, 158, 161, 157, 161, 160, 159, 156, 158, 172, 158, 160, 160, 159, 162, 162, 160, 163, 143, 159, 160, 162, 171, 163, 163, 167, 165, 155, 162, 152, 160, 167, 162, 152, 164, 160, 157, 154, 157, 156, 162, 162, 167, 151, 158, 174, 156, 154, 153, 156, 160, 157, 162, 145, 156, 158, 162, 170, 159, 162, 157, 146, 156, 159, 141, 162, 160, 157, 157, 159, 167, 153, 152, 163, 155, 147, 153, 162, 165, 160, 160, 162, 161, 161, 172, 154, 165, 156, 150, 160, 160, 157, 157, 154, 171, 164, 157, 152, 159, 155, 164, 156, 157, 154, 159, 155, 157, 154, 156, 167, 169, 165, 168, 153, 159, 163, 162, 160, 154, 158, 159, 161, 150, 156, 160, 156, 163, 158, 175, 147, 165, 171, 165, 157, 158, 170, 153, 163, 162, 165, 163, 160, 160, 183, 161, 154, 164, 159, 166, 164, 161, 157, 165, 170, 156, 159, 165, 159, 158, 156, 152, 158, 160, 167, 162, 163, 154, 151, 155, 156, 150, 119, 160, 163, 163, 147, 164, 162, 156, 173, 164, 155, 163, 171, 165, 160, 160, 161, 170, 158, 148, 161, 165, 152, 169, 164, 159, 168, 158, 168, 161, 159, 158, 152, 160, 168, 166, 159, 157, 159, 166, 160, 149, 161, 159, 164, 156, 158, 148, 166, 160, 152, 154, 176, 154, 155, 153, 156, 166, 178, 157, 165, 157, 165, 164, 159, 153, 160, 159, 146, 151, 165, 159, 160, 174, 162, 159, 150, 163, 160, 154, 157, 159, 161, 164, 166, 153, 155, 154, 156, 170, 159, 166, 144, 161, 158, 161, 168, 163, 160, 164, 159, 155, 159, 161, 161, 167, 160, 168, 162, 166, 142, 156, 158, 172, 165, 161, 155, 165, 160, 155, 162, 160, 161, 159, 165, 160, 154, 180, 161, 150, 174, 155, 164, 152, 159, 166, 160, 165, 176, 152, 148, 165, 160, 165, 158, 164, 158, 161, 166, 160, 161, 165, 160, 156, 170, 160, 158, 175, 183, 155, 161, 167, 170, 161, 161, 157, 153, 164, 156, 161, 162, 165, 163, 153, 152, 156, 133, 164, 153, 178, 160, 163, 157, 164, 159, 161, 159, 161, 158, 163, 162, 157, 163, 155, 160, 168, 169, 156, 160, 152, 154, 173, 153, 159, 159, 161, 160, 160, 166, 154, 161, 150, 156, 179, 161, 163, 160, 170, 166, 161, 155, 154, 171, 152, 164, 159, 153, 161, 150, 171, 155, 168, 141, 161, 153, 166, 161, 167, 164, 161, 159, 168, 172, 167, 161, 164, 155, 154, 163, 159, 152, 153, 159, 154, 151, 148, 161, 143, 163, 146, 161, 157, 156, 170, 159, 162, 162, 165, 162, 153, 172, 161, 171, 160, 160, 160, 169, 158, 162, 157, 162, 156, 162, 137, 135, 164, 163, 164, 158, 165, 156, 168, 171, 159, 160, 163, 156, 155, 155, 161, 172, 160, 148, 169, 158, 162, 160, 195, 150, 167, 161, 173, 172, 156, 150, 165, 153, 159, 173, 159, 170, 164, 159, 158, 160, 163, 168, 163, 155, 154, 168, 160, 151, 161, 163, 157, 166, 156, 167, 163, 157, 152, 164, 162, 159, 162, 143, 161, 161, 165, 171, 166, 153, 154, 166, 154, 159, 157, 154, 160, 160, 162, 156, 156, 162, 168, 164, 164, 147, 153, 160, 172, 169, 166, 159, 159, 164, 151, 167, 162, 156, 165, 162, 161, 154, 152, 154, 158, 161, 165, 158, 161, 168, 147, 167, 152, 154, 165, 152, 156, 159, 161, 157, 161, 155, 160, 160, 164, 157, 156, 162, 165, 153, 160, 158, 165, 156, 154, 153, 160, 166, 166, 154, 162, 164, 159, 150, 134, 163, 153, 157, 167, 151, 153, 150, 166, 164, 156, 158, 164, 166, 165, 153, 155, 159, 160, 162, 166, 155, 166, 156, 166, 158, 160, 159, 154, 153, 152, 159, 165, 162, 157, 175, 155, 164, 154, 163, 158, 159, 161, 167, 150, 154, 162, 164, 160, 156, 166, 148, 163, 163, 161, 160, 158, 148, 134, 153, 166, 157, 160, 163, 161, 148, 151, 160, 158, 159, 171, 161, 156, 156, 154, 168, 163, 168, 160, 161, 155, 152, 153, 173, 163, 169, 171, 162, 172, 160, 157, 150, 147, 161, 161, 156, 157, 159, 162, 160, 170, 163, 154, 160, 159, 166, 151, 161, 154, 162, 168, 162, 152, 164, 161, 162, 168, 147, 176, 153, 153, 163, 150, 163, 158, 160, 153, 161, 156, 155, 172, 165, 160, 156, 168, 163, 164, 171, 156, 144, 147, 151, 158, 157, 158, 161, 154, 161, 159, 162, 155, 156, 160, 157, 173, 156, 171, 160, 160, 156, 158, 156, 160, 149, 161, 159, 159, 167, 162, 150, 157, 157, 163, 162, 159, 146, 152, 154, 169, 148, 170, 161, 151, 169, 152, 161, 164, 164, 165, 157, 164, 159, 159, 159, 163, 162, 158, 171, 173, 167, 133, 153, 164, 147, 157, 165, 163, 180, 158, 164, 165, 190, 172, 173, 165, 173, 171, 159, 171, 151, 164, 151, 160, 157, 149, 147, 171, 156, 171, 154, 161, 157, 160, 156, 154, 157, 165, 162, 157, 167, 160, 159, 153, 164, 163, 158, 156, 167, 167, 159, 156, 163, 185, 149, 160, 163, 174, 157, 157, 153, 162, 161, 161, 160, 152, 161, 154, 154, 156, 160, 151, 164, 162, 138, 158, 158, 146, 158, 165, 160, 164, 169, 158, 164, 171, 164, 153, 169, 146, 157, 176, 161, 178, 164, 162, 166, 157, 170, 157, 149, 163, 171, 172, 147, 164, 166, 156, 161, 166, 170, 169, 178, 144, 165, 153, 142, 159, 164, 171, 156, 154, 158, 156, 166, 160, 148, 157, 173, 162, 171, 167, 169, 171, 157, 158, 168, 158, 151, 161, 153, 169, 161, 160, 151, 154, 164, 157, 171, 157, 162, 159, 157, 153, 159, 166, 165, 171, 158, 157, 164, 166, 159, 152, 157, 149, 167, 154, 151, 165, 164, 155, 168, 153, 176, 163, 148, 153, 157, 170, 158, 160, 161, 160, 171, 157, 169, 154, 166, 158, 160, 166, 160, 151, 163, 165, 155, 160, 165, 162, 157, 149, 153, 165, 169, 168, 144, 157, 164, 158, 163, 160, 166, 161, 159, 170, 169, 172, 163, 147, 163, 156, 153, 154, 174, 167, 166, 163, 156, 170, 160, 146, 161, 143, 147, 152, 159, 165, 160, 158, 156, 141, 152, 164, 158, 160, 161, 158, 178, 159, 155, 163, 160, 165, 158, 166, 160, 159, 144, 170, 163, 165, 165, 164, 158, 153, 157, 155, 159, 170, 156, 156, 168, 157, 156, 175, 183, 163, 161, 162, 168, 160, 160, 179, 164, 162, 161, 158, 152, 162, 161, 159, 137, 170, 142, 159, 170, 175, 167, 166, 166, 161, 161, 162, 157, 164, 143, 166, 157, 160, 154, 170, 160, 167, 164, 167, 152, 153, 158, 159, 160, 146, 139, 152, 160, 170, 161, 159, 156, 164, 138, 162, 158, 161, 157, 155, 171, 152, 159, 181, 174, 166, 160, 163, 155, 160, 156, 174, 161, 166, 154, 142, 157, 168, 157, 170, 161, 160, 152, 150, 156, 159, 160, 154, 164, 165, 168, 163, 152, 161, 159, 151, 162, 167, 146, 133, 160, 170, 138, 164, 161, 163, 172, 154, 166, 162, 162, 161, 162, 155, 159, 164, 174, 153, 165, 163, 144, 167, 155, 157, 161, 156, 159, 153, 165, 156, 162, 156, 146, 160, 153, 163, 163, 158, 153, 179, 163, 172, 158, 207, 158, 173, 153, 158, 153, 182, 158, 157, 156, 163, 161, 168, 172, 164, 161, 169, 171, 151, 157, 160, 171, 162, 176, 160, 166, 146, 155, 163, 168, 156, 151, 153, 164, 160, 164, 153, 159, 169, 164, 158, 154, 171, 164, 156, 173, 162, 160, 160, 164, 168, 156, 161, 169, 164, 162, 161, 162, 161, 161, 150, 165, 162, 150, 157, 161, 159, 156, 160, 156, 170, 143, 158, 159, 154, 155, 154, 162, 152, 157, 169, 153, 177, 160, 160, 155, 153, 155, 160, 166, 180, 163, 152, 169, 172, 163, 155, 160, 159, 158, 163, 155, 168, 173, 168, 174, 162, 155, 158, 161, 155, 163, 174, 162, 166, 159, 162, 168, 161, 143, 160, 165, 158, 158, 155, 165, 163, 183, 154, 167, 153, 158, 149, 177, 156, 162, 153, 149, 158, 158, 163, 164, 149, 153, 167, 157, 168, 166, 160, 159, 151, 151, 162, 163, 162, 155, 172, 158, 144, 168, 166, 169, 157, 165, 155, 164, 165, 161, 152, 151, 157, 156, 157, 161, 152, 166, 162, 157, 154, 158, 154, 157, 152, 171, 169, 157, 154, 157, 160, 151, 175, 155, 156, 161, 165, 155, 157, 154, 158, 168, 148, 168, 160, 158, 162, 155, 156, 168, 152, 157, 165, 159, 166, 172, 162, 163, 167, 163, 155, 164, 158, 160, 158, 165, 159, 167, 150, 156, 163, 166, 164, 149, 149, 152, 169, 170, 152, 163, 168, 166, 159, 164, 165, 166, 166, 157, 155, 157, 169, 165, 149, 154, 167, 157, 147, 158, 158, 154, 161, 164, 158, 161, 155, 154, 172, 161, 158, 175, 161, 149, 165, 169, 162, 157, 162, 154, 161, 157, 154, 170, 150, 162, 164, 156, 163, 161, 149, 161, 150, 157, 167, 162, 158, 161, 167, 151, 166, 157, 160, 175, 161, 156, 158, 161, 155, 157, 156, 166, 161, 152, 159, 156, 157, 165, 151, 160, 156, 150, 161, 162, 168, 162, 150, 155, 159, 154, 153, 157, 153, 161, 151, 154, 159, 159, 162, 156, 162, 154, 172, 163, 159, 164, 152, 166, 168, 168, 151, 150, 156, 150, 155, 152, 170, 159, 158, 162, 154, 165, 157, 154, 161, 162, 175, 169, 158, 151, 169, 162, 161, 150, 153, 154, 155, 163, 175, 151, 159, 162, 156, 167, 163, 160, 154, 175, 155, 157, 167, 152, 160, 158, 155, 150, 157, 170, 164, 164, 167, 165, 159, 180, 165, 159, 159, 166, 165, 147, 161, 160, 166, 153, 162, 155, 162, 172, 156, 146, 162, 160, 155, 158, 157, 160, 162, 153, 173, 154, 154, 164, 167, 158, 162, 177, 160, 160, 149, 166, 177, 153, 159, 156, 152, 163, 154, 159, 175, 157, 166, 153, 157, 160, 169, 165, 163, 154, 164, 161, 158, 177, 167, 155, 156, 168, 154, 159, 164, 163, 171, 158, 162, 163, 153, 155, 142, 152, 162, 164, 155, 164, 157, 163, 159, 158, 156, 162, 158, 159, 161, 165, 153, 151, 158, 163, 149, 160, 154, 160, 162, 166, 164, 154, 162, 155, 162, 158, 156, 171, 157, 158, 158, 164, 164, 166, 156, 154, 159, 160, 164, 147, 163, 160, 151, 152, 166, 163, 153, 153, 169, 163, 168, 171, 158, 165, 157, 160, 161, 167, 165, 160, 158, 163, 159, 156, 156, 154, 168, 157, 163, 169, 154, 150, 153, 152, 167, 163, 156, 160, 156, 150, 173, 168, 153, 154, 167, 157, 166, 148, 166, 158, 145, 149, 163, 150, 156, 155, 164, 160, 161, 155, 164, 153, 158, 154, 158, 160, 160, 161, 161, 162, 162, 166, 164, 165, 160, 162, 157, 163, 162, 158, 161, 164, 159, 158, 157, 157, 156, 159, 164, 154, 158, 156, 160, 161, 154, 169, 156, 158, 161, 162, 154, 155, 164, 155, 160, 158, 159, 155, 160, 160, 162, 160, 156, 162, 160, 159, 160, 163, 160, 157, 162, 160, 159, 154, 162, 167, 160, 160, 150, 162, 159, 157, 158, 157, 162, 159, 164, 159, 151, 162, 160, 157, 158, 159, 162, 160, 158, 156, 159, 158, 157, 157, 160, 158, 159, 158, 159, 167, 160, 176, 161, 162, 160, 160, 160, 166, 158, 162, 158, 166, 162, 164, 160, 160, 163, 162, 158, 157, 159, 165, 171, 161, 160, 158, 160, 158, 159, 165, 160, 143, 158, 168, 157, 160, 160, 158, 163, 161, 157, 162, 161, 160, 160, 156, 159, 159, 176, 165, 156, 165, 156, 158, 158, 160, 159, 162, 158, 161, 159, 152, 162, 161, 166, 161, 161, 157, 158, 160, 159, 157, 155, 154, 162, 159, 161, 159, 159, 160, 158, 162, 167, 157, 156, 155, 156, 171, 157, 162, 164, 153, 161, 160, 163, 161, 164, 160, 155, 160, 161, 165, 157, 151, 158, 162, 158, 163, 171, 155, 158, 165, 150, 158, 157, 161, 163, 164, 158, 164, 159, 160, 159, 165, 159, 159, 158, 160, 160, 161, 155, 165, 160, 163, 159, 157, 163, 161, 161, 161, 159, 164, 164, 164, 166, 158, 158, 161, 150, 161, 166, 162, 168, 158, 158, 160, 158, 159, 171, 154, 161, 161, 164, 151, 168, 155, 162, 159, 158, 158, 161, 163, 158, 155, 161, 162, 159, 163, 162, 159, 154, 157, 165, 158, 156, 151, 158, 159, 156, 157, 159, 159, 162, 157, 161, 167, 159, 162, 157, 156, 162, 161, 155, 155, 158, 164, 153, 161, 158, 162, 158, 164, 164, 166, 158, 161, 162, 159, 164, 165, 162, 156, 164, 164, 156, 166, 158, 161, 160, 160, 154, 154, 160, 162, 161, 158, 160, 160, 166, 161, 158, 156, 154, 157, 160, 158, 159, 163, 159, 161, 163, 157, 158, 151, 158, 140, 163, 157, 156, 163, 164, 158, 162, 163, 163, 159, 161, 153, 161, 159, 157, 150, 157, 156, 161, 166, 159, 163, 165, 158, 160, 157, 154, 172, 157, 162, 154, 158, 169, 157, 166, 160, 158, 158, 162, 154, 147, 158, 162, 162, 156, 162, 157, 160, 160, 167, 162, 154, 160, 157, 159, 150, 162, 159, 159, 161, 159, 156, 161, 160, 165, 152, 166, 158, 160, 161, 158, 154, 166, 160, 158, 155, 170, 160, 164, 158, 159, 162, 160, 156, 159, 165, 158, 164, 167, 157, 167, 161, 161, 161, 157, 157, 151, 164, 158, 156, 163, 166, 159, 158, 166, 156, 162, 158, 165, 162, 155, 150, 166, 156, 154, 166, 166, 164, 154, 159, 161, 161, 157, 162, 157, 162, 160, 159, 155, 161, 158, 162, 162, 162, 163, 158, 163, 158, 158, 159, 160, 172, 162, 153, 156, 163, 156, 164, 163, 156, 162, 165, 148, 155, 164, 155, 159, 154, 150, 158, 159, 157, 165, 164, 161, 159, 157, 159, 163, 158, 156, 165, 158, 161, 156, 159, 163, 159, 159, 163, 160, 157, 169, 161, 154, 161, 160, 152, 172, 156, 164, 147, 165, 162, 160, 157, 164, 158, 154, 148, 161, 162, 164, 162, 163, 177, 160, 155, 157, 163, 157, 162, 161, 161, 163, 159, 159, 160, 157, 161, 157, 160, 156, 155, 168, 154, 149, 156, 162, 159, 155, 158, 162, 161, 156, 157, 157, 157, 158, 164, 150, 163, 161, 150, 157, 159, 162, 159, 164, 166, 156, 157, 165, 161, 168, 158, 158, 170, 185, 167, 168, 152, 164, 161, 163, 158, 152, 154, 161, 156, 165, 160, 161, 164, 164, 161, 161, 155, 158, 152, 152, 158, 161, 173, 160, 162, 162, 162, 163, 145, 157, 163, 164, 161, 163, 156, 155, 154, 152, 150, 156, 159, 163, 159, 159, 156, 155, 149, 154, 160, 157, 157, 158, 159, 155, 166, 172, 166, 163, 165, 167, 162, 163, 161, 157, 151, 167, 159, 161, 149, 164, 157, 154, 155, 161, 157, 160, 157, 165, 166, 164, 163, 166, 149, 157, 150, 161, 158, 162, 153, 146, 160, 167, 162, 160, 159, 158, 151, 163, 145, 153, 159, 165, 158, 163, 163, 161, 162, 158, 163, 166, 164, 161, 165, 142, 159, 151, 162, 164, 163, 161, 157, 165, 161, 149, 168, 161, 168, 159, 159, 159, 159, 162, 145, 156, 158, 159, 164, 158, 171, 161, 161, 156, 159, 150, 165, 165, 153, 158, 156, 157, 162, 157, 159, 159, 160, 159, 158, 156, 163, 156, 159, 155, 161, 159, 165, 169, 160, 161, 157, 153, 150, 165, 159, 164, 167, 160, 166, 150, 171, 161, 155, 164, 164, 155, 159, 154, 155, 159, 161, 153, 161, 159, 165, 147, 152, 149, 152, 161, 157, 157, 155, 164, 162, 153, 162, 157, 156, 169, 160, 152, 164, 161, 157, 168, 167, 157, 157, 156, 157, 158, 156, 166, 163, 163, 164, 154, 165, 163, 161, 160, 160, 156, 154, 153, 164, 145, 155, 157, 159, 154, 158, 159, 163, 160, 156, 146, 168, 161, 157, 169, 159, 161, 161, 167, 156, 161, 159, 153, 162, 156, 163, 168, 159, 157, 173, 166, 150, 155, 162, 177, 163, 160, 164, 160, 158, 162, 156, 161, 151, 148, 154, 159, 158, 165, 165, 169, 161, 166, 159, 160, 153, 173, 165, 164, 163, 154, 166, 164, 164, 156, 172, 179, 157, 160, 160, 160, 157, 165, 166, 162, 164, 161, 165, 156, 153, 155, 153, 159, 161, 161, 159, 158, 161, 164, 161, 172, 167, 166, 162, 165, 161, 152, 160, 163, 158, 167, 160, 159, 169, 155, 158, 159, 161, 150, 164, 167, 166, 177, 166, 163, 154, 162, 159, 163, 158, 164, 160, 162, 159, 164, 161, 163, 153, 159, 152, 166, 157, 158, 157, 150, 160, 158, 157, 161, 158, 157, 157, 162, 170, 154, 152, 160, 167, 162, 160, 164, 157, 152, 159, 164, 159, 166, 161, 161, 161, 161, 160, 159, 160, 157, 162, 165, 157, 161, 169, 155, 156, 166, 163, 164, 158, 158, 158, 159, 150, 155, 156, 151, 168, 163, 162, 165, 159, 166, 160, 171, 162, 158, 166, 163, 160, 156, 162, 157, 172, 162, 170, 169, 154, 162, 160, 152, 167, 163, 156, 162, 168, 165, 162, 144, 162, 160, 159, 157, 158, 163, 164, 161, 162, 160, 162, 157, 147, 164, 158, 164, 159, 156, 167, 161, 166, 162, 165, 152, 143, 160, 168, 163, 164, 149, 157, 162, 162, 156, 156, 157, 161, 174, 155, 164, 164, 162, 171, 157, 158, 167, 160, 161, 157, 165, 165, 156, 159, 157, 162, 160, 148, 150, 167, 164, 181, 162, 153, 157, 178, 159, 159, 156, 162, 150, 166, 161, 154, 142, 163, 175, 161, 164, 155, 170, 157, 159, 158, 160, 166, 158, 157, 162, 168, 159, 154, 153, 166, 153, 161, 167, 187, 154, 161, 164, 155, 156, 156, 159, 152, 180, 167, 162, 164, 167, 156, 156, 170, 169, 161, 161, 161, 155, 164, 164, 152, 158, 156, 151, 153, 154, 165, 166, 159, 147, 158, 163, 154, 165, 158, 148, 158, 158, 152, 172, 161, 165, 160, 159, 166, 164, 156, 156, 156, 169, 162, 159, 168, 158, 165, 158, 155, 173, 145, 164, 146, 154, 155, 157, 159, 158, 156, 161, 170, 161, 154, 163, 157, 158, 161, 157, 149, 157, 161, 158, 159, 161, 163, 157, 168, 153, 156, 151, 182, 175, 157, 165, 159, 152, 162, 155, 158, 161, 158, 163, 159, 161, 160, 163, 157, 170, 160, 165, 159, 152, 157, 163, 161, 156, 155, 158, 156, 162, 163, 165, 146, 167, 161, 166, 161, 160, 156, 158, 162, 164, 151, 152, 168, 159, 164, 162, 157, 155, 159, 170, 139, 161, 160, 156, 162, 160, 162, 159, 155, 163, 163, 167, 155, 160, 155, 160, 159, 164, 160, 156, 153, 152, 158, 153, 161, 157, 155, 159, 160, 160, 168, 160, 158, 153, 155, 161, 159, 154, 148, 152, 163, 150, 159, 158, 176, 159, 162, 154, 159, 157, 163, 154, 157, 169, 163, 166, 164, 153, 158, 146, 154, 160, 154, 163, 167, 174, 157, 158, 154, 161, 145, 157, 163, 154, 159, 155, 156, 164, 164, 160, 168, 156, 157, 163, 162, 168, 155, 151, 158, 161, 156, 163, 160, 160, 159, 161, 148, 151, 163, 160, 168, 160, 159, 158, 156, 161, 164, 157, 160, 152, 170, 153, 164, 161, 164, 163, 163, 161, 157, 155, 163, 164, 160, 166, 161, 160, 160, 169, 166, 161, 155, 162, 158, 163, 163, 160, 161, 154, 175, 162, 158, 164, 167, 153, 158, 186, 156, 132, 161, 149, 159, 162, 154, 158, 151, 165, 157, 165, 165, 160, 157, 156, 159, 161, 158, 143, 156, 157, 158, 162, 149, 158, 162, 162, 157, 159, 156, 169, 165, 153, 160, 163, 162, 155, 155, 154, 153, 152, 163, 159, 155, 156, 155, 164, 169, 156, 156, 169, 156, 158, 161, 158, 160, 149, 156, 158, 162, 160, 162, 167, 168, 160, 163, 161, 168, 163, 159, 160, 152, 156, 157, 159, 159, 154, 148, 157, 165, 159, 158, 153, 164, 160, 154, 159, 160, 158, 151, 168, 163, 159, 162, 155, 159, 174, 156, 156, 162, 161, 159, 170, 118, 161, 159, 153, 163, 164, 164, 159, 154, 155, 154, 158, 157, 165, 163, 153, 160, 158, 155, 154, 160, 162, 162, 150, 158, 152, 157, 156, 160, 159, 157, 158, 154, 150, 155, 163, 154, 164, 153, 162, 154, 156, 155, 162, 159, 167, 150, 167, 172, 156, 167, 161, 154, 161, 159, 156, 177, 159, 155, 169, 159, 167, 161, 157, 160, 156, 160, 163, 155, 154, 158, 177, 158, 161, 155, 151, 160, 157, 163, 154, 160, 167, 155, 163, 158, 159, 145, 164, 161, 154, 152, 170, 161, 159, 155, 178, 161, 151, 166, 164, 158, 161, 161, 154, 156, 156, 162, 163, 153, 148, 165, 150, 157, 155, 154, 153, 159, 161, 172, 165, 156, 165, 157, 159, 172, 161, 179, 160, 146, 171, 163, 159, 162, 164, 159, 158, 161, 170, 143, 158, 162, 156, 175, 162, 148, 186, 155, 165, 177, 153, 163, 161, 159, 158, 159, 152, 152, 166, 163, 150, 176, 150, 158, 161, 164, 162, 167, 158, 157, 150, 157, 162, 160, 151, 155, 161, 158, 157, 173, 155, 161, 161, 159, 160, 162, 165, 155, 160, 164, 161, 154, 166, 161, 157, 160, 160, 157, 166, 154, 159, 160, 161, 162, 159, 162, 161, 157, 155, 167, 159, 140, 160, 161, 162, 163, 152, 166, 167, 159, 156, 164, 166, 177, 163, 151, 164, 162, 157, 163, 169, 149, 168, 159, 166, 156, 162, 157, 150, 155, 165, 151, 150, 163, 160, 166, 158, 153, 168, 156, 156, 163, 155, 152, 159, 156, 159, 155, 160, 164, 154, 159, 134, 184, 160, 165, 158, 163, 163, 163, 160, 158, 159, 164, 157, 160, 158, 169, 157, 157, 157, 170, 161, 155, 159, 164, 159, 160, 163, 163, 159, 158, 165, 163, 159, 159, 162, 162, 159, 160, 159, 158, 153, 162, 164, 156, 152, 164, 153, 157, 166, 162, 157, 158, 161, 166, 159, 159, 162, 161, 159, 158, 159, 159, 155, 152, 161, 154, 147, 167, 152, 150, 161, 160, 155, 174, 148, 159, 164, 156, 157, 147, 157, 156, 165, 157, 158, 158, 160, 161, 160, 163, 167, 165, 166, 160, 159, 167, 166, 158, 162, 160, 161, 172, 156, 162, 150, 154, 162, 159, 155, 168, 159, 158, 161, 161, 153, 166, 160, 147, 161, 154, 157, 161, 155, 163, 159, 162, 169, 160, 163, 157, 159, 160, 164, 163, 155, 165, 154, 158, 159, 172, 163, 154, 163, 161, 161, 155, 142, 163, 185, 154, 155, 156, 167, 157, 167, 158, 164, 166, 163, 162, 161, 162, 163, 161, 162, 158, 145, 167, 162, 167, 163, 149, 160, 156, 156, 158, 161, 158, 155, 162, 176, 159, 157, 163, 156, 169, 156, 159, 167, 154, 157, 169, 163, 169, 165, 158, 157, 160, 158, 164, 159, 160, 162, 160, 166, 160, 159, 163, 158, 163, 160, 159, 154, 164, 159, 158, 171, 167, 165, 171, 162, 163, 156, 158, 151, 162, 165, 156, 162, 164, 165, 159, 163, 160, 164, 154, 161, 158, 162, 175, 161, 162, 158, 163, 153, 162, 159, 158, 162, 163, 165, 161, 163, 160, 157, 163, 157, 160, 167, 163, 163, 173, 172, 157, 162, 155, 157, 162, 151, 157, 166, 159, 164, 157, 166, 162, 160, 157, 159, 172, 161, 153, 168, 168, 163, 159, 148, 157, 158, 154, 154, 155, 158, 161, 158, 159, 157, 164, 156, 151, 163, 160, 158, 155, 152, 158, 160, 159, 164, 168, 165, 162, 164, 162, 159, 156, 162, 161, 154, 159, 153, 166, 164, 167, 161, 163, 164, 159, 159, 157, 158, 147, 161, 159, 165, 164, 158, 162, 156, 156, 159, 164, 161, 160, 162, 164, 156, 164, 164, 159, 161, 156, 167, 159, 155, 161, 162, 158, 163, 159, 163, 155, 161, 168, 168, 159, 162, 164, 161, 159, 165, 161, 159, 162, 161, 165, 160, 168, 170, 164, 171, 162, 160, 159, 156, 161, 165, 155, 164, 158, 166, 160, 161, 156, 156, 166, 159, 158, 154, 154, 155, 156, 162, 155, 159, 159, 160, 157, 155, 166, 155, 152, 157, 162, 165, 153, 153, 157, 172, 161, 162, 163, 167, 163, 154, 162, 159, 164, 157, 163, 161, 150, 158, 157, 164, 161, 164, 159, 166, 155, 162, 165, 156, 163, 158, 158, 168, 164, 170, 157, 165, 161, 163, 165, 158, 159, 156, 161, 154, 159, 159, 162, 160, 151, 161, 155, 161, 160, 160, 158, 161, 157, 150, 159, 156, 161, 161, 160, 155, 162, 154, 164, 161, 165, 165, 161, 162, 161, 161, 159, 158, 159, 157, 159, 151, 156, 167, 159, 164, 168, 154, 158, 157, 161, 159, 159, 158, 162, 157, 162, 161, 170, 164, 156, 165, 157, 159, 158, 154, 153, 159, 149, 158, 161, 162, 160, 167, 163, 154, 160, 160, 162, 162, 162, 159, 159, 159, 157, 154, 159, 154, 163, 158, 159, 160, 158, 158, 157, 159, 154, 161, 160, 158, 160, 160, 154, 163, 157, 161, 158, 153, 160, 158, 160, 163, 161, 168, 163, 163, 162, 164, 159, 156, 161, 165, 156, 162, 166, 158, 157, 155, 158, 159, 158, 154, 157, 159, 169, 155, 160, 165, 158, 162, 156, 161, 168, 165, 164, 170, 158, 154, 157, 161, 159, 157, 160, 161, 160, 162, 149, 172, 162, 162, 167, 162, 156, 158, 165, 163, 160, 160, 172, 160, 157, 153, 157, 165, 155, 161, 162, 165, 159, 162, 165, 158, 157, 155, 161, 163, 157, 164, 163, 164, 162, 164, 159, 164, 165, 168, 163, 159, 159, 164, 160, 160, 163, 163, 161, 160, 159, 153, 163, 163, 157, 156, 166, 163, 155, 158, 164, 166, 158, 161, 155, 159, 157, 155, 169, 161, 155, 156, 158, 154, 160, 159, 173, 162, 159, 159, 163, 163, 161, 162, 158, 160, 155, 153, 159, 151, 157, 158, 159, 153, 164, 166, 162, 158, 150, 152, 160, 157, 162, 158, 169, 162, 158, 159, 165, 162, 165, 148, 162, 151, 166, 156, 156, 157, 165, 161, 149, 160, 162, 166, 167, 161, 163, 159, 157, 148, 163, 160, 152, 159, 158, 168, 153, 163, 159, 159, 168, 160, 157, 156, 150, 158, 160, 156, 158, 158, 161, 169, 154, 151, 161, 159, 169, 158, 174, 152, 154, 156, 167, 164, 155, 158, 158, 164, 168, 159, 165, 160, 159, 153, 162, 161, 161, 162, 167, 159, 161, 163, 163, 161, 164, 156, 159, 156, 165, 155, 161, 160, 154, 160, 161, 163, 164, 167, 160, 157, 160, 152, 164, 160, 150, 157, 159, 158, 166, 163, 160, 161, 164, 167, 162, 163, 165, 159, 179, 160, 163, 154, 163, 158, 156, 149, 166, 160, 155, 170, 155, 157, 160, 159, 155, 161, 159, 165, 169, 162, 154, 160, 167, 163, 152, 164, 165, 159, 148, 150, 159, 162, 155, 163, 160, 161, 171, 157, 163, 157, 156, 162, 160, 164, 163, 155, 162, 166, 149, 162, 161, 158, 152, 164, 167, 155, 150, 158, 159, 164, 152, 153, 158, 155, 160, 170, 162, 150, 160, 160, 149, 159, 172, 159, 158, 159, 158, 154, 160, 152, 160, 164, 164, 161, 164, 156, 168, 161, 153, 166, 160, 151, 170, 143, 153, 150, 162, 150, 166, 156, 169, 165, 166, 166, 163, 155, 156, 157, 153, 156, 158, 162, 151, 158, 152, 153, 167, 153, 156, 154, 165, 161, 162, 161, 161, 165, 160, 160, 165, 156, 161, 159, 175, 156, 162, 155, 162, 162, 159, 149, 164, 156, 157, 161, 165, 165, 164, 158, 159, 159, 157, 163, 161, 154, 156, 163, 162, 163, 160, 163, 165, 153, 156, 151, 163, 163, 159, 152, 157, 182, 160, 160, 156, 157, 154, 162, 152, 154, 167, 154, 154, 177, 156, 158, 161, 159, 157, 164, 157, 159, 152, 164, 161, 155, 161, 158, 151, 166, 158, 157, 148, 152, 157, 166, 176, 159, 161, 159, 155, 155, 153, 154, 160, 162, 169, 160, 161, 154, 169, 156, 165, 161, 164, 163, 163, 157, 157, 157, 167, 167, 159, 165, 156, 157, 154, 158, 161, 161, 165, 159, 163, 159, 157, 163, 157, 162, 160, 162, 161, 155, 161, 159, 154, 159, 160, 161, 153, 154, 159, 160, 157, 152, 175, 160, 161, 166, 166, 153, 164, 157, 165, 154, 165, 154, 158, 145, 161, 158, 155, 159, 164, 157, 158, 154, 165, 169, 164, 163, 165, 155, 178, 162, 152, 156, 163, 165, 160, 153, 157, 158, 162, 162, 146, 155, 161, 163, 160, 163, 171, 160, 168, 161, 161, 161, 162, 149, 156, 170, 166, 152, 160, 162, 160, 163, 159, 154, 161, 154, 170, 156, 160, 156, 157, 161, 159, 160, 159, 168, 156, 162, 160, 160, 151, 156, 161, 171, 157, 159, 151, 166, 180, 162, 170, 158, 164, 158, 157, 169, 162, 171, 156, 145, 162, 173, 162, 159, 149, 154, 164, 156, 159, 160, 154, 164, 158, 162, 161, 148, 166, 155, 169, 162, 165, 150, 157, 155, 172, 163, 173, 169, 151, 162, 149, 159, 149, 157, 152, 154, 167, 174, 164, 167, 162, 158, 157, 153, 150, 157, 166, 158, 161, 159, 162, 157, 171, 159, 165, 160, 156, 161, 161, 170, 158, 152, 161, 155, 166, 165, 154, 160, 156, 161, 161, 147, 151, 159, 157, 167, 164, 166, 159, 156, 162, 163, 168, 160, 161, 158, 160, 157, 159, 172, 163, 163, 160, 165, 150, 160, 160, 161, 137, 147, 169, 155, 155, 157, 158, 161, 157, 159, 162, 156, 159, 158, 145, 159, 153, 151, 164, 161, 161, 158, 157, 157, 163, 159, 165, 155, 154, 163, 161, 160, 160, 154, 151, 157, 160, 154, 157, 166, 155, 154, 158, 165, 160, 164, 159, 157, 157, 164, 160, 162, 158, 152, 157, 162, 163, 156, 161, 161, 153, 156, 156, 166, 158, 162, 155, 189, 167, 169, 165, 163, 164, 161, 167, 149, 165, 165, 156, 156, 155, 165, 162, 170, 157, 157, 158, 161, 159, 159, 159, 161, 156, 157, 158, 163, 162, 154, 151, 152, 158, 166, 163, 163, 163, 154, 165, 153, 158, 159, 164, 170, 158, 163, 160, 156, 139, 158, 177, 155, 152, 157, 155, 155, 152, 173, 163, 150, 165, 164, 159, 156, 157, 161, 162, 165, 157, 157, 161, 160, 167, 164, 161, 156, 158, 157, 151, 160, 165, 156, 164, 165, 157, 162, 174, 166, 163, 162, 162, 169, 159, 161, 159, 156, 156, 156, 164, 156, 165, 162, 162, 168, 160, 164, 167, 165, 165, 164, 156, 162, 159, 159, 155, 151, 165, 163, 162, 162, 157, 156, 154, 165, 163, 174, 163, 153, 167, 160, 151, 168, 161, 159, 148, 160, 158, 157, 167, 162, 166, 163, 163, 160, 158, 157, 149, 164, 154, 167, 161, 163, 160, 161, 163, 153, 160, 174, 157, 161, 159, 158, 167, 151, 152, 162, 156, 156, 167, 161, 169, 158, 157, 154, 159, 160, 160, 158, 153, 166, 160, 160, 160, 162, 161, 161, 176, 161, 158, 156, 160, 153, 156, 161, 152, 158, 158, 158, 166, 159, 165, 154, 160, 156, 159, 156, 156, 160, 154, 158, 157, 158, 162, 161, 155, 156, 161, 161, 158, 166, 157, 163, 156, 163, 164, 162, 161, 155, 162, 162, 159, 161, 158, 144, 162, 157, 157, 162, 161, 160, 162, 158, 158, 161, 169, 162, 159, 151, 160, 158, 162, 158, 153, 168, 160, 170, 162, 153, 159, 155, 156, 157, 158, 160, 165, 159, 161, 164, 163, 160, 163, 167, 152, 160, 158, 153, 156, 161, 158, 160, 168, 159, 165, 155, 158, 173, 163, 154, 167, 170, 166, 154, 154, 162, 151, 161, 163, 164, 160, 157, 156, 154, 160, 172, 159, 157, 158, 163, 155, 160, 162, 158, 159, 155, 164, 181, 157, 150, 152, 159, 155, 159, 168, 157, 158, 171, 161, 160, 156, 160, 158, 161, 160, 158, 157, 160, 159, 161, 153, 153, 155, 161, 159, 164, 160, 157, 156, 159, 153, 157, 161, 157, 162, 156, 161, 167, 157, 164, 162, 166, 165, 165, 155, 160, 156, 155, 159, 157, 163, 162, 167, 162, 163, 159, 162, 159, 150, 163, 160, 164, 156, 164, 167, 156, 158, 160, 160, 152, 152, 157, 158, 161, 161, 169, 163, 148, 154, 160, 162, 146, 163, 161, 157, 159, 153, 154, 163, 159, 169, 153, 156, 163, 160, 168, 161, 154, 171, 162, 161, 163, 165, 157, 159, 174, 161, 151, 161, 155, 161, 165, 175, 153, 164, 154, 160, 164, 162, 133, 166, 174, 159, 151, 160, 161, 157, 160, 152, 159, 158, 160, 163, 149, 161, 162, 127, 124, 152, 170, 156, 157, 161, 161, 163, 171, 170, 161, 167, 160, 158, 162, 155, 161, 166, 167, 152, 167, 164, 161, 155, 152, 167, 162, 155, 161, 163, 175, 168, 155, 153, 164, 161, 168, 161, 160, 162, 129, 155, 162, 157, 157, 156, 163, 160, 167, 159, 151, 155, 165, 158, 159, 159, 158, 151, 160, 154, 157, 162, 169, 168, 162, 162, 156, 162, 143, 143, 165, 169, 154, 156, 165, 160, 156, 164, 165, 150, 156, 158, 158, 156, 151, 157, 141, 162, 159, 163, 156, 162, 162, 158, 156, 149, 156, 159, 156, 155, 168, 158, 162, 157, 160, 160, 163, 158, 162, 151, 160, 169, 168, 155, 155, 165, 163, 159, 157, 162, 159, 148, 165, 148, 165, 164, 164, 159, 162, 155, 156, 160, 164, 159, 161, 158, 171, 160, 151, 160, 153, 159, 161, 157, 164, 162, 162, 157, 151, 155, 156, 155, 157, 155, 155, 163, 162, 163, 151, 155, 164, 154, 160, 158, 160, 158, 161, 168, 158, 165, 154, 166, 157, 167, 150, 161, 158, 163, 167, 169, 163, 156, 160, 169, 153, 161, 161, 165, 166, 138, 157, 161, 168, 159, 164, 168, 163, 154, 158, 141, 131, 154, 152, 165, 158, 165, 162, 130, 163, 159, 159, 162, 158, 164, 159, 162, 163, 159, 161, 172, 157, 156, 153, 157, 159, 163, 165, 162, 154, 158, 156, 169, 155, 165, 150, 162, 158, 154, 163, 158, 162, 157, 168, 159, 153, 152, 154, 164, 160, 162, 151, 169, 165, 160, 160, 160, 160, 159, 158, 164, 161, 164, 162, 155, 160, 154, 165, 163, 166, 171, 155, 155, 158, 158, 160, 146, 160, 147, 160, 162, 152, 152, 162, 161, 162, 157, 149, 159, 164, 141, 163, 151, 158, 160, 168, 172, 160, 165, 168, 162, 174, 155, 169, 146, 158, 161, 168, 161, 168, 160, 161, 153, 165, 143, 160, 167, 160, 165, 162, 160, 149, 167, 166, 161, 155, 169, 158, 156, 157, 161, 141, 143, 163, 160, 156, 161, 157, 158, 156, 156, 149, 160, 163, 157, 164, 159, 161, 200, 160, 162, 162, 163, 148, 167, 165, 158, 164, 158, 176, 163, 158, 170, 170, 154, 163, 160, 155, 156, 161, 165, 159, 162, 160, 159, 162, 162, 147, 159, 158, 155, 158, 164, 148, 163, 140, 155, 169, 159, 155, 157, 155, 160, 155, 169, 141, 167, 153, 166, 151, 151, 159, 162, 159, 154, 167, 159, 158, 160, 136, 166, 162, 161, 156, 155, 157, 133, 167, 159, 156, 156, 157, 155, 152, 161, 162, 164, 159, 167, 152, 161, 165, 163, 161, 156, 146, 158, 172, 160, 158, 162, 172, 152, 164, 164, 157, 163, 162, 156, 155, 158, 155, 160, 160, 162, 161, 162, 163, 168, 159, 156, 153, 162, 162, 164, 161, 161, 167, 157, 166, 156, 159, 164, 162, 164, 155, 165, 159, 151, 159, 154, 162, 156, 163, 156, 163, 156, 158, 161, 160, 165, 162, 155, 165, 156, 162, 147, 162, 163, 162, 157, 162, 151, 154, 168, 155, 158, 149, 159, 163, 157, 173, 160, 161, 163, 155, 145, 159, 145, 164, 155, 164, 166, 153, 162, 154, 156, 160, 162, 164, 159, 171, 160, 162, 162, 152, 160, 162, 159, 162, 156, 154, 155, 165, 161, 166, 165, 159, 168, 151, 160, 164, 162, 158, 169, 162, 151, 151, 162, 169, 164, 161, 160, 162, 162, 159, 162, 154, 138, 172, 165, 154, 171, 159, 156, 159, 165, 147, 150, 156, 161, 155, 161, 157, 158, 163, 163, 163, 163, 161, 172, 161, 157, 153, 156, 161, 155, 158, 158, 154, 164, 170, 158, 159, 160, 158, 156, 156, 160, 153, 159, 162, 165, 165, 160, 159, 159, 160, 158, 165, 173, 167, 160, 159, 160, 160, 161, 168, 176, 153, 158, 165, 164, 156, 161, 158, 161, 160, 161, 158, 171, 167, 174, 158, 172, 156, 145, 161, 154, 159, 149, 159, 155, 166, 167, 158, 158, 163, 161, 158, 153, 168, 165, 154, 158, 160, 161, 157, 165, 157, 164, 162, 161, 158, 160, 162, 166, 151, 159, 161, 153, 158, 163, 168, 152, 164, 165, 160, 163, 165, 155, 164, 159, 155, 160, 166, 164, 161, 163, 158, 151, 163, 157, 163, 146, 159, 159, 158, 160, 167, 163, 161, 164, 166, 162, 161, 137, 152, 163, 166, 161, 160, 161, 163, 171, 149, 165, 172, 154, 166, 157, 162, 172, 171, 163, 163, 165, 154, 160, 155, 169, 167, 163, 166, 161, 167, 169, 160, 146, 171, 155, 163, 155, 162, 153, 163, 164, 163, 167, 151, 158, 153, 160, 163, 155, 155, 153, 163, 159, 159, 160, 157, 159, 161, 151, 164, 153, 154, 148, 156, 165, 157, 154, 157, 159, 163, 158, 157, 167, 163, 159, 163, 163, 164, 162, 158, 160, 157, 153, 159, 162, 158, 167, 163, 158, 167, 160, 167, 164, 159, 157, 169, 158, 162, 158, 159, 163, 153, 152, 162, 172, 155, 148, 163, 159, 158, 161, 157, 165, 154, 157, 153, 146, 161, 162, 160, 173, 165, 163, 169, 160, 152, 150, 156, 160, 154, 156, 166, 163, 168, 172, 155, 163, 164, 153, 165, 156, 159, 160, 169, 157, 158, 165, 165, 163, 161, 159, 159, 162, 155, 161, 158, 158, 148, 167, 157, 160, 164, 162, 159, 149, 160, 161, 160, 160, 199, 149, 145, 167, 157, 161, 153, 164, 163, 164, 162, 157, 158, 159, 163, 153, 159, 155, 171, 155, 163, 159, 162, 161, 160, 166, 162, 161, 155, 163, 166, 163, 160, 155, 161, 157, 158, 165, 159, 162, 159, 167, 155, 168, 159, 164, 154, 165, 159, 161, 156, 156, 161, 160, 164, 161, 172, 163, 155, 165, 156, 159, 161, 154, 165, 158, 165, 156, 158, 159, 168, 165, 159, 163, 155, 153, 163, 170, 159, 167, 166, 164, 157, 161, 158, 159, 161, 157, 161, 165, 160, 152, 176, 160, 159, 157, 160, 159, 158, 165, 159, 150, 168, 147, 159, 160, 160, 151, 165, 160, 156, 163, 163, 152, 159, 163, 166, 159, 154, 160, 170, 161, 159, 162, 169, 154, 159, 157, 168, 163, 158, 162, 166, 156, 160, 154, 153, 156, 162, 162, 161, 164, 166, 171, 171, 154, 157, 157, 164, 152, 156, 166, 159, 171, 162, 152, 163, 155, 169, 164, 164, 168, 173, 166, 158, 163, 161, 158, 158, 157, 159, 157, 161, 161, 173, 159, 157, 161, 158, 155, 161, 165, 163, 154, 167, 156, 173, 160, 158, 158, 152, 166, 159, 153, 170, 161, 184, 167, 154, 153, 162, 154, 157, 158, 156, 163, 161, 163, 155, 156, 158, 159, 164, 156, 157, 163, 162, 160, 156, 157, 150, 160, 162, 160, 166, 163, 161, 160, 167, 154, 170, 162, 171, 151, 155, 156, 170, 158, 158, 157, 160, 163, 162, 159, 163, 153, 165, 159, 162, 163, 164, 165, 162, 156, 173, 148, 164, 156, 155, 161, 162, 157, 170, 156, 155, 160, 163, 162, 158, 157, 154, 158, 161, 156, 154, 149, 159, 158, 172, 171, 168, 163, 161, 159, 162, 156, 165, 155, 177, 165, 161, 164, 160, 154, 153, 136, 171, 160, 157, 162, 162, 154, 160, 170, 162, 158, 152, 166, 155, 163, 168, 164, 153, 164, 155, 160, 162, 160, 163, 158, 160, 172, 151, 159, 163, 168, 160, 151, 162, 159, 164, 163, 162, 167, 165, 148, 152, 159, 159, 157, 158, 168, 151, 160, 162, 163, 166, 156, 156, 159, 164, 158, 166, 156, 172, 156, 155, 154, 151, 153, 158, 158, 157, 162, 148, 163, 160, 158, 157, 153, 157, 159, 156, 166, 171, 162, 163, 161, 161, 161, 170, 154, 161, 161, 160, 155, 161, 159, 156, 165, 167, 157, 151, 164, 157, 161, 162, 157, 166, 161, 166, 167, 167, 164, 162, 163, 174, 162, 165, 168, 160, 158, 155, 159, 158, 166, 163, 160, 154, 163, 161, 160, 166, 165, 157, 163, 170, 161, 151, 164, 165, 161, 162, 160, 151, 162, 152, 158, 152, 165, 162, 167, 166, 160, 165, 159, 161, 154, 169, 155, 172, 166, 167, 163, 161, 158, 162, 160, 162, 151, 153, 157, 161, 155, 166, 153, 164, 158, 169, 166, 163, 157, 162, 172, 150, 162, 161, 172, 158, 159, 167, 162, 168, 162, 161, 160, 160, 162, 155, 153, 151, 156, 160, 162, 162, 158, 167, 169, 162, 163, 171, 166, 158, 163, 174, 154, 166, 160, 167, 163, 156, 158, 157, 153, 161, 169, 156, 157, 165, 162, 161, 158, 169, 163, 161, 161, 163, 161, 162, 162, 167, 155, 159, 159, 161, 149, 163, 177, 165, 158, 160, 161, 153, 157, 158, 163, 163, 169, 155, 151, 163, 163, 156, 159, 157, 163, 157, 160, 158, 155, 160, 161, 157, 160, 162, 175, 160, 148, 160, 154, 165, 158, 161, 162, 162, 162, 167, 168, 164, 160, 162, 164, 163, 162, 170, 157, 167, 151, 159, 153, 160, 176, 155, 161, 159, 154, 152, 167, 156, 161, 174, 150, 169, 165, 159, 160, 170, 157, 167, 164, 167, 158, 160, 159, 163, 162, 163, 162, 159, 153, 167, 158, 159, 158, 165, 168, 162, 174, 163, 161, 176, 158, 162, 163, 158, 170, 170, 144, 161, 169, 163, 155, 175, 160, 165, 157, 141, 161, 149, 173, 156, 159, 163, 157, 159, 168, 160, 165, 160, 154, 161, 169, 158, 163, 158, 166, 166, 159, 166, 158, 131, 156, 151, 149, 166, 171, 154, 162, 149, 164, 170, 160, 154, 156, 174, 187, 167, 151, 175, 149, 164, 162, 161, 159, 156, 158, 166, 150, 162, 148, 151, 171, 159, 163, 150, 158, 159, 160, 153, 164, 157, 155, 160, 162, 171, 152, 171, 163, 170, 165, 154, 157, 157, 163, 169, 166, 163, 165, 163, 151, 145, 157, 149, 164, 158, 160, 150, 155, 160, 167, 160, 159, 163, 162, 161, 166, 171, 165, 173, 164, 159, 149, 163, 163, 152, 159, 151, 158, 157, 159, 165, 162, 174, 148, 159, 156, 161, 168, 156, 162, 162, 157, 157, 162, 164, 163, 152, 167, 164, 152, 159, 168, 156, 161, 158, 172, 166, 161, 157, 161, 164, 169, 137, 158, 167, 152, 160, 147, 164, 156, 151, 179, 146, 157, 164, 163, 170, 152, 150, 147, 157, 159, 162, 157, 150, 164, 162, 165, 155, 151, 158, 156, 157, 164, 161, 167, 164, 164, 168, 162, 181, 155, 164, 159, 161, 161, 154, 169, 156, 162, 157, 168, 168, 159, 161, 163, 150, 172, 152, 164, 168, 167, 155, 162, 157, 146, 157, 165, 154, 168, 161, 178, 166, 147, 158, 153, 157, 160, 142, 154, 160, 147, 154, 157, 177, 164, 159, 155, 161, 162, 146, 152, 154, 160, 150, 163, 161, 176, 161, 170, 160, 173, 158, 156, 159, 158, 147, 158, 158, 153, 159, 172, 161, 164, 148, 160, 168, 162, 162, 159, 144, 147, 154, 161, 165, 160, 154, 152, 171, 168, 154, 159, 165, 154, 167, 171, 167, 154, 151, 162, 155, 180, 158, 153, 153, 177, 161, 151, 157, 160, 151, 160, 156, 162, 170, 168, 155, 163, 161, 148, 175, 162, 162, 162, 165, 155, 164, 150, 170, 159, 157, 150, 171, 185, 166, 157, 183, 158, 154, 164, 161, 153, 158, 159, 165, 165, 154, 172, 160, 161, 161, 158, 165, 146, 153, 171, 161, 167, 156, 155, 168, 156, 164, 163, 160, 160, 177, 168, 158, 152, 169, 152, 152, 159, 173, 164, 157, 171, 160, 151, 155, 161, 164, 156, 155, 164, 163, 171, 159, 162, 165, 153, 157, 157, 167, 162, 153, 151, 165, 155, 156, 160, 157, 149, 166, 174, 166, 159, 163, 166, 165, 163, 164, 153, 172, 153, 155, 152, 165, 160, 171, 161, 159, 148, 165, 168, 160, 139, 167, 177, 157, 167, 164, 158, 164, 153, 161, 157, 154, 160, 155, 160, 158, 149, 174, 158, 163, 159, 170, 166, 153, 142, 154, 154, 168, 158, 159, 143, 169, 154, 156, 161, 159, 165, 163, 166, 158, 147, 157, 158, 162, 162, 160, 161, 162, 160, 162, 162, 155, 151, 162, 163, 159, 156, 157, 158, 165, 157, 164, 158, 159, 160, 167, 163, 161, 165, 161, 161, 150, 159, 164, 162, 155, 158, 167, 152, 175, 151, 132, 198, 159, 173, 156, 154, 165, 153, 156, 168, 163, 159, 159, 160, 172, 164, 154, 172, 160, 159, 165, 156, 174, 159, 158, 157, 163, 156, 159, 161, 147, 160, 157, 168, 166, 168, 158, 158, 161, 159, 157, 157, 154, 168, 163, 160, 163, 171, 155, 160, 162, 162, 169, 156, 157, 158, 160, 159, 163, 159, 170, 153, 161, 157, 157, 160, 154, 160, 162, 159, 168, 159, 153, 162, 159, 173, 158, 164, 158, 176, 157, 159, 157, 151, 160, 161, 166, 155, 161, 163, 154, 160, 161, 161, 161, 159, 165, 172, 154, 161, 163, 159, 152, 155, 155, 159, 162, 155, 149, 164, 174, 166, 161, 158, 163, 158, 159, 161, 142, 136, 155, 160, 157, 173, 159, 161, 165, 146, 153, 167, 167, 164, 157, 163, 161, 174, 164, 156, 159, 164, 172, 154, 153, 163, 163, 168, 146, 160, 160, 159, 166, 163, 177, 158, 166, 160, 162, 162, 160, 156, 156, 155, 152, 156, 165, 162, 162, 155, 149, 161, 153, 161, 154, 165, 166, 156, 167, 161, 162, 152, 162, 159, 165, 159, 165, 158, 152, 164, 163, 155, 163, 156, 160, 160, 160, 163, 153, 160, 157, 159, 153, 164, 175, 158, 155, 158, 158, 153, 161, 154, 169, 160, 158, 155, 160, 148, 169, 161, 158, 161, 160, 149, 149, 157, 153, 152, 160, 154, 168, 163, 169, 158, 159, 148, 158, 168, 158, 160, 150, 158, 157, 162, 164, 166, 158, 164, 160, 155, 152, 152, 162, 159, 161, 164, 158, 160, 161, 152, 157, 155, 155, 158, 161, 184, 160, 158, 176, 153, 160, 160, 158, 169, 163, 164, 158, 164, 164, 129, 161, 162, 157, 158, 157, 156, 150, 155, 156, 169, 157, 157, 159, 159, 156, 160, 157, 148, 158, 164, 160, 168, 156, 160, 160, 158, 152, 152, 165, 151, 158, 166, 159, 155, 150, 159, 166, 178, 160, 166, 162, 163, 162, 157, 170, 164, 153, 159, 167, 155, 188, 160, 164, 156, 153, 146, 158, 167, 174, 165, 154, 155, 157, 162, 150, 167, 159, 152, 161, 160, 161, 154, 159, 156, 160, 157, 167, 153, 156, 158, 159, 172, 160, 151, 154, 154, 155, 161, 158, 160, 158, 166, 162, 158, 160, 161, 159, 158, 157, 154, 156, 156, 163, 166, 159, 156, 154, 158, 159, 156, 156, 161, 152, 162, 161, 162, 156, 158, 158, 162, 157, 159, 162, 162, 155, 159, 150, 153, 155, 161, 160, 163, 190, 154, 156, 157, 163, 154, 164, 160, 168, 158, 161, 166, 162, 152, 161, 170, 158, 159, 144, 163, 161, 145, 170, 159, 161, 162, 162, 153, 162, 167, 151, 155, 166, 156, 155, 158, 159, 156, 155, 161, 152, 154, 159, 153, 154, 157, 157, 158, 157, 159, 162, 156, 166, 161, 159, 163, 163, 166, 161, 162, 156, 166, 166, 155, 162, 146, 158, 173, 150, 165, 168, 150, 161, 153, 158, 158, 156, 154, 162, 154, 161, 160, 167, 153, 160, 164, 161, 162, 162, 162, 161, 160, 151, 164, 158, 161, 158, 159, 165, 165, 160, 158, 160, 161, 161, 151, 161, 160, 160, 157, 159, 158, 157, 161, 165, 155, 159, 155, 160, 161, 163, 161, 157, 159, 157, 162, 154, 155, 159, 152, 158, 160, 158, 160, 164, 151, 153, 159, 160, 162, 163, 165, 160, 159, 160, 161, 162, 156, 160, 155, 161, 158, 158, 157, 159, 155, 163, 152, 164, 164, 158, 161, 161, 157, 156, 167, 156, 156, 162, 158, 160, 165, 167, 159, 161, 155, 160, 164, 165, 158, 157, 163, 153, 159, 153, 157, 166, 162, 154, 162, 160, 164, 155, 158, 165, 167, 159, 157, 156, 162, 161, 157, 167, 160, 168, 161, 162, 158, 159, 156, 164, 162, 159, 161, 160, 158, 164, 165, 155, 163, 159, 162, 166, 158, 162, 150, 159, 155, 157, 154, 161, 163, 162, 158, 163, 157, 169, 162, 162, 158, 159, 161, 164, 159, 160, 160, 157, 163, 165, 158, 154, 157, 157, 165, 156, 156, 164, 162, 162, 159, 161, 159, 158, 163, 166, 156, 169, 162, 162, 164, 160, 161, 158, 160, 155, 153, 157, 157, 162, 157, 159, 166, 161, 163, 160, 153, 163, 156, 154, 158, 160, 168, 161, 158, 163, 161, 154, 160, 162, 162, 159, 160, 158, 163, 159, 168, 163, 158, 161, 161, 158, 163, 165, 161, 163, 160, 157, 161, 160, 160, 159, 158, 161, 159, 165, 162, 159, 158, 155, 161, 151, 163, 155, 160, 157, 159, 155, 161, 159, 162, 163, 165, 152, 161, 159, 165, 159, 149, 159, 164, 160, 158, 164, 160, 156, 158, 163, 162, 163, 160, 159, 160, 160, 162, 151, 159, 162, 165, 159, 165, 154, 167, 156, 152, 160, 157, 161, 161, 159, 160, 157, 157, 167, 154, 158, 157, 158, 153, 161, 159, 161, 167, 166, 159, 161, 160, 158, 160, 160, 173, 163, 163, 164, 162, 157, 162, 156, 166, 159, 159, 162, 158, 156, 157, 160, 164, 160, 163, 163, 164, 163, 151, 150, 157, 160, 163, 158, 152, 156, 159, 158, 158, 159, 163, 163, 162, 159, 160, 158, 159, 154, 159, 159, 157, 158, 163, 153, 160, 161, 151, 157, 168, 164, 160, 158, 160, 157, 165, 159, 161, 167, 156, 155, 167, 159, 156, 161, 160, 161, 166, 167, 161, 159, 155, 163, 161, 160, 161, 160, 162, 159, 154, 159, 155, 158, 162, 158, 162, 159, 162, 159, 156, 157, 166, 152, 156, 161, 157, 164, 160, 165, 157, 160, 157, 163, 165, 167, 161, 158, 168, 160, 164, 160, 162, 162, 157, 160, 164, 159, 160, 159, 152, 155, 161, 160, 161, 161, 161, 159, 161, 151, 161, 166, 161, 156, 161, 158, 169, 161, 159, 163, 164, 159, 157, 167, 161, 162, 164, 159, 160, 171, 163, 162, 162, 150, 162, 159, 156, 159, 158, 164, 157, 159, 161, 167, 163, 160, 155, 164, 161, 161, 157, 163, 165, 167, 159, 160, 162, 157, 160, 158, 162, 157, 160, 159, 158, 160, 154, 157, 162, 163, 156, 166, 156, 164, 159, 165, 160, 161, 155, 162, 160, 152, 156, 150, 164, 162, 164, 172, 162, 147, 164, 145, 171, 196, 107, 158, 156, 156, 161, 155, 165, 157, 159, 162, 155, 160, 159, 153, 161, 167, 162, 157, 158, 160, 163, 164, 163, 159, 156, 163, 159, 169, 156, 161, 165, 166, 159, 155, 159, 162, 156, 168, 159, 161, 162, 159, 156, 158, 157, 155, 152, 157, 164, 152, 159, 161, 158, 165, 160, 157, 172, 160, 156, 163, 165, 157, 161, 165, 163, 155, 159, 162, 153, 158, 160, 167, 160, 153, 164, 156, 146, 158, 164, 163, 152, 156, 169, 164, 161, 162, 151, 163, 168, 161, 166, 172, 160, 164, 152, 180, 159, 166, 164, 162, 168, 165, 157, 160, 160, 162, 157, 163, 163, 146, 154, 163, 162, 160, 163, 175, 158, 166, 169, 151, 151, 163, 156, 162, 153, 160, 172, 168, 155, 162, 159, 158, 161, 156, 152, 164, 156, 155, 163, 160, 168, 162, 169, 170, 153, 160, 155, 157, 165, 165, 165, 148, 162, 164, 159, 155, 160, 152, 159, 164, 166, 157, 162, 149, 167, 157, 156, 163, 159, 161, 159, 159, 161, 158, 172, 152, 165, 155, 163, 154, 160, 162, 155, 156, 168, 160, 162, 155, 156, 159, 165, 162, 165, 163, 157, 148, 163, 150, 150, 171, 161, 159, 161, 156, 160, 157, 162, 158, 155, 158, 147, 158, 158, 164, 165, 154, 164, 155, 158, 154, 169, 164, 156, 162, 156, 155, 152, 152, 163, 170, 161, 164, 154, 162, 141, 159, 162, 163, 160, 159, 160, 166, 162, 161, 154, 163, 160, 166, 154, 160, 159, 172, 159, 169, 164, 161, 171, 163, 160, 155, 157, 158, 188, 156, 155, 151, 168, 170, 167, 169, 160, 160, 155, 161, 162, 152, 195, 162, 154, 159, 158, 160, 166, 158, 152, 157, 158, 163, 161, 153, 159, 161, 160, 164, 155, 161, 158, 156, 151, 154, 154, 161, 160, 161, 155, 161, 151, 157, 170, 164, 156, 159, 165, 151, 157, 163, 157, 160, 162, 159, 163, 160, 157, 155, 165, 150, 172, 125, 159, 167, 154, 164, 157, 161, 159, 168, 165, 152, 162, 164, 142, 154, 164, 162, 157, 171, 153, 156, 158, 152, 160, 155, 160, 160, 159, 160, 155, 165, 155, 153, 161, 161, 165, 167, 159, 158, 147, 164, 156, 165, 157, 168, 176, 169, 159, 155, 157, 161, 164, 159, 150, 153, 153, 161, 159, 170, 153, 159, 157, 165, 162, 160, 160, 160, 160, 158, 157, 156, 156, 158, 158, 155, 159, 176, 162, 154, 158, 137, 162, 190, 163, 169, 164, 154, 160, 154, 162, 140, 166, 158, 136, 164, 153, 147, 161, 158, 161, 173, 155, 163, 195, 157, 162, 159, 158, 166, 161, 158, 159, 169, 153, 160, 162, 158, 167, 156, 155, 155, 158, 163, 153, 163, 168, 161, 158, 158, 163, 159, 162, 158, 163, 172, 162, 163, 162, 161, 164, 157, 161, 159, 158, 158, 161, 159, 158, 164, 170, 167, 159, 156, 171, 164, 163, 158, 160, 165, 153};
+ model->setOperandValue(op74, op74_init, sizeof(uint8_t) * 262144);
+ static int32_t op76_init[] = {-8479, -155, 11608, -2458, -2250, 3044, 3977, 4855, -3856, -5367, -1644, 7265, -1950, -3111, -4913, -1482, -1486, 978, 3582, 3887, -6453, -2470, 3345, -4158, 5835, 3560, 2549, -2600, -1940, 266, -567, 5359, -3347, 5558, 2029, 3921, 5215, 3025, -1615, 102, 3858, 6653, -2858, -1730, -1087, 5062, 1052, -299, 5044, -3934, 4063, 3088, -6040, 717, 5949, 6378, -1194, 5709, 75, -1205, -1460, -264, -5829, 3679, 6647, 2240, 5713, -1337, -2175, -2752, 8586, -1550, -4258, -3778, 3633, -1029, 556, -1214, -5447, -5487, 5284, 6770, 3308, 3096, -1575, -2747, 4871, 884, 5398, 4935, 231, -1612, -6543, 6353, 6411, -6364, -201, -2122, -2004, 3710, -2986, -2016, -2259, -933, 5367, -339, -886, 3327, 14295, 3076, 5733, 3889, 5147, -985, 10917, 5678, 4298, 1294, 3875, -1284, -2148, -1466, -3996, 2993, -2964, 3693, 5099, -406, 7315, 3654, 9654, -1077, 829, -3493, -5970, -605, 4949, 5971, 5707, -2364, 4284, -1188, 3850, 5937, 2720, 8587, 3980, 6813, 7638, 3935, 4789, -8064, -1579, 4672, -2225, 781, 6470, -3627, -543, 4431, 9024, 3807, -2522, 4096, 1102, -3183, 9254, 5615, 8757, 4787, -128, 5317, -1904, -2535, -302, -2241, 1622, 3869, -6468, 2016, -1618, -2332, -5187, -230, -3998, 6458, 3903, 4129, 5301, 12468, -782, 7409, -705, -3791, -1631, -2731, 4767, 6324, 6746, 4246, 4744, 7140, 1597, -1969, -6537, -1359, -504, 398, 3733, -2357, -516, 4124, 4745, -3489, 4154, 4780, 4588, -1697, 3876, 1908, 5912, -4167, 3829, -999, -80, -6562, 15736, 7352, -29, 9854, -677, -50, 15826, -1972, 2924, 4579, -10103, 4903, 3587, 5217, 3994, 4679, 4650, -1820, 432, -3026, 3362, -3376, 10626, -1476, -2404, 6563, 5721, -1936, 3509, 5221, 6899, 7501, 3928, -552, -7163, -7441, -2939, -945, 10156, -3352, 3804, 3431, 2851, 3604, -1825, -3603, 5615, 6795, -2058, 3289, 3420, 5861, 3270, 4028, 2549, -964, -2602, 1247, 5559, 5002, 3435, 543, -4442, 5583, 4872, 7151, 4377, 4410, -844, 5375, -957, 5890, -621, -313, 1289, 750, 945, 5084, -2914, 4641, -992, 3269, -2032, 132, 5724, 123, 4044, -1537, 4195, -1650, 3734, 9663, 5687, 8850, 1581, -1946, 5127, 3651, -4002, -497, -5026, 1466, -1153, -1183, 5432, -649, -8948, 4266, -1017, -1179, 4479, 45, 4066, -2254, 5609, 5726, 13045, 6018, 6281, 4681, -1547, 1169, -3227, -1542, 5964, 2669, 1208, 4710, -508, -3483, 2681, 4381, 2457, 3564, -778, -1460, 3689, 3281, 596, 4746, 1847, 9955, -1017, 6163, -1736, 3780, 2559, -234, 4047, -265, -920, 860, 3427, 4728, -1409, -950, -5040, -2623, -2261, 3159, 4478, -3951, 7484, -1248, 2436, -4901, -2672, 5248, 5730, 7760, 9232, 4805, 3348, -787, 8691, 6410, -1213, -2339, 1081, -3089, -761, -354, -1815, -775, -2310, -3415, 622, -665, -5640, -1858, -616, -1949, 5385, 3026, 8023, 4657, -1528, 4145, -890, -2765, 6168, 3809, -1156, -877, -995, -2336, 2590, -5893, -69, 6382, -3156, -19, 6887, 1783, 4670, -7374, -1851, -2257, 8090, -4856, 6253, -2493, -3278, -1536, 3759, -1758, -1354, 970, 3711, -2009, 6858, 5465, 8384, -6167, -8303, 3432, 2034, 132, -915, 10668, 9122, -2651, 3437, 3646, 3977, 3457, -1251, -272, 4728, -1021, -1037, -5393, -198, -4374, 3572, 2338, 3276, -6031, -5252, -1170, -1178, -2096, -1822, 1366, 5964, -2077, 7373, -4051, 5743, 7732, -5841, 2883, 7882, -155, -1130, 5697, 4918, 204, -1854, -4629, 4240, -905, 5480, -357, 10978, -2732};
+ model->setOperandValue(op76, op76_init, sizeof(int32_t) * 512);
+ static uint8_t op77_init[] = {140, 158, 104, 137, 131, 113, 139, 144, 128, 142, 134, 127, 133, 137, 155, 132, 128, 127, 119, 129, 138, 155, 124, 137, 117, 125, 128, 137, 145, 143, 146, 113, 129, 112, 126, 117, 129, 116, 127, 102, 118, 121, 133, 132, 91, 129, 128, 143, 132, 134, 122, 115, 136, 141, 140, 113, 135, 161, 110, 134, 135, 136, 113, 123, 154, 144, 139, 147, 183, 168, 127, 120, 147, 143, 120, 116, 132, 139, 131, 133, 117, 119, 123, 122, 142, 144, 119, 108, 123, 126, 129, 136, 143, 116, 119, 122, 140, 189, 136, 127, 138, 160, 132, 138, 138, 141, 118, 129, 130, 134, 126, 127, 127, 139, 135, 116, 108, 154, 125, 147, 120, 128, 134, 157, 139, 127, 121, 147, 137, 165, 133, 166, 185, 152, 157, 184, 115, 146, 108, 135, 131, 127, 141, 112, 140, 129, 112, 117, 132, 129, 106, 131, 133, 123, 129, 130, 124, 124, 128, 123, 136, 122, 142, 116, 133, 131, 131, 120, 135, 162, 114, 143, 134, 149, 152, 141, 125, 135, 134, 131, 147, 134, 169, 164, 149, 123, 121, 110, 121, 127, 130, 134, 137, 139, 136, 65, 133, 115, 133, 159, 123, 130, 152, 170, 154, 111, 139, 133, 116, 138, 164, 158, 127, 133, 134, 119, 148, 105, 129, 129, 125, 152, 130, 147, 131, 148, 122, 131, 135, 139, 155, 193, 127, 134, 121, 129, 150, 131, 157, 139, 101, 120, 133, 148, 119, 133, 131, 150, 133, 152, 139, 131, 117, 161, 118, 126, 129, 121, 125, 135, 140, 134, 138, 145, 135, 143, 136, 106, 127, 130, 135, 147, 133, 103, 133, 90, 116, 124, 124, 140, 130, 143, 133, 151, 129, 142, 119, 165, 127, 109, 112, 132, 124, 137, 108, 154, 176, 101, 134, 126, 181, 132, 145, 167, 154, 112, 136, 120, 134, 108, 123, 140, 127, 149, 127, 152, 132, 138, 132, 126, 161, 142, 145, 119, 142, 126, 140, 142, 93, 124, 158, 148, 152, 103, 148, 133, 125, 130, 129, 137, 120, 104, 125, 136, 130, 118, 182, 148, 170, 137, 120, 129, 156, 125, 149, 135, 180, 141, 130, 129, 134, 180, 144, 130, 150, 114, 90, 128, 134, 128, 133, 130, 111, 135, 109, 129, 119, 144, 115, 126, 139, 131, 140, 125, 151, 118, 115, 137, 129, 133, 183, 149, 136, 134, 107, 133, 136, 123, 117, 131, 133, 103, 127, 150, 171, 164, 133, 132, 137, 153, 147, 139, 130, 131, 157, 130, 137, 126, 131, 119, 132, 145, 145, 126, 132, 131, 118, 127, 97, 141, 136, 126, 129, 130, 143, 132, 136, 139, 134, 154, 122, 145, 112, 68, 114, 149, 117, 139, 136, 137, 127, 131, 137, 140, 124, 140, 121, 120, 131, 144, 149, 123, 128, 132, 130, 131, 125, 146, 127, 113, 129, 115, 139, 131, 152, 139, 120, 133, 160, 133, 94, 138, 130, 136, 138, 135, 155, 95, 124, 111, 119, 139, 117, 128, 126, 135, 140, 138, 129, 128, 134, 118, 114, 170, 136, 112, 120, 135, 123, 129, 124, 137, 148, 117, 102, 126, 122, 116, 151, 148, 146, 167, 161, 120, 142, 137, 179, 130, 129, 120, 113, 125, 153, 179, 142, 149, 109, 120, 121, 137, 162, 206, 161, 130, 124, 127, 115, 124, 112, 120, 125, 112, 106, 87, 131, 94, 143, 127, 114, 144, 139, 132, 126, 118, 130, 125, 150, 113, 148, 105, 118, 105, 156, 130, 203, 114, 128, 182, 125, 178, 140, 151, 132, 128, 141, 169, 124, 136, 136, 100, 140, 151, 117, 131, 123, 94, 115, 120, 131, 93, 138, 117, 117, 136, 148, 108, 139, 182, 148, 102, 137, 119, 137, 127, 155, 165, 133, 132, 129, 127, 107, 115, 129, 119, 140, 143, 102, 127, 117, 163, 118, 157, 131, 137, 158, 189, 144, 117, 120, 138, 136, 131, 136, 159, 155, 132, 142, 129, 125, 110, 120, 133, 148, 128, 150, 115, 137, 110, 131, 79, 119, 109, 113, 158, 119, 117, 111, 199, 120, 154, 147, 125, 134, 129, 123, 107, 130, 137, 123, 118, 110, 184, 81, 142, 126, 141, 164, 143, 122, 140, 163, 126, 139, 159, 164, 130, 146, 126, 120, 104, 122, 119, 121, 111, 169, 158, 140, 171, 108, 110, 141, 126, 100, 107, 154, 154, 130, 116, 137, 131, 114, 139, 145, 130, 128, 137, 129, 135, 160, 181, 121, 125, 140, 133, 92, 166, 132, 185, 106, 112, 104, 145, 154, 175, 97, 148, 121, 119, 118, 126, 128, 159, 121, 121, 134, 183, 112, 149, 113, 153, 101, 156, 156, 130, 103, 176, 120, 137, 128, 108, 129, 195, 185, 122, 141, 139, 108, 149, 157, 68, 133, 133, 137, 146, 135, 101, 175, 120, 117, 135, 121, 129, 134, 169, 125, 123, 135, 153, 119, 108, 162, 129, 107, 122, 122, 124, 107, 165, 130, 98, 142, 123, 167, 130, 174, 137, 133, 144, 150, 116, 149, 118, 115, 133, 114, 113, 117, 182, 127, 141, 142, 108, 104, 131, 140, 116, 126, 111, 127, 172, 186, 151, 116, 118, 144, 140, 134, 140, 125, 151, 147, 138, 111, 128, 133, 132, 138, 104, 164, 125, 213, 131, 103, 117, 144, 94, 149, 141, 123, 112, 151, 114, 133, 195, 127, 187, 146, 200, 118, 118, 127, 142, 121, 89, 114, 140, 123, 141, 162, 137, 108, 131, 126, 124, 141, 139, 204, 128, 124, 141, 122, 132, 128, 170, 138, 122, 136, 136, 131, 109, 117, 156, 129, 136, 124, 127, 169, 54, 120, 125, 142, 120, 134, 136, 125, 128, 137, 153, 140, 103, 154, 114, 146, 135, 201, 112, 138, 123, 128, 107, 122, 169, 169, 128, 125, 142, 184, 140, 133, 136, 141, 146, 122, 131, 143, 168, 101, 166, 117, 144, 140, 143, 118, 127, 147, 177, 108, 139, 124, 115, 101, 136, 138, 121, 110, 155, 125, 95, 97, 123, 125, 128, 113, 112, 127, 131, 128, 150, 108, 163, 195, 151, 88, 133, 135, 138, 168, 136, 147, 113, 89, 90, 121, 146, 109, 138, 135, 135, 149, 104, 110, 113, 137, 148, 123, 193, 114, 176, 115, 145, 128, 125, 89, 131, 145, 152, 106, 137, 129, 111, 143, 143, 148, 137, 133, 130, 130, 137, 146, 130, 127, 117, 115, 129, 131, 150, 123, 132, 118, 128, 128, 136, 158, 145, 146, 113, 128, 114, 126, 114, 129, 117, 144, 101, 117, 115, 134, 129, 141, 130, 129, 139, 153, 142, 123, 113, 150, 132, 139, 113, 132, 101, 138, 138, 130, 132, 126, 124, 123, 101, 126, 143, 129, 148, 130, 122, 147, 142, 121, 132, 118, 134, 129, 136, 117, 134, 125, 121, 122, 134, 120, 117, 145, 142, 175, 134, 133, 127, 126, 108, 136, 125, 136, 123, 108, 158, 177, 136, 123, 134, 141, 129, 125, 133, 128, 128, 139, 137, 133, 122, 108, 156, 124, 146, 126, 132, 141, 157, 139, 127, 119, 145, 138, 130, 135, 130, 121, 130, 154, 135, 116, 146, 102, 135, 131, 129, 148, 111, 131, 125, 154, 116, 133, 128, 106, 133, 132, 127, 131, 150, 125, 131, 146, 122, 136, 122, 142, 115, 132, 126, 132, 117, 135, 163, 117, 116, 134, 145, 150, 138, 135, 125, 132, 130, 144, 135, 161, 134, 123, 122, 119, 109, 121, 128, 128, 128, 160, 138, 135, 148, 134, 118, 133, 130, 121, 129, 150, 148, 154, 98, 141, 133, 114, 137, 137, 122, 126, 143, 134, 119, 150, 203, 129, 129, 143, 115, 130, 137, 158, 147, 131, 131, 133, 140, 121, 191, 132, 132, 119, 129, 155, 131, 123, 141, 117, 163, 119, 150, 132, 132, 133, 149, 123, 168, 133, 106, 115, 134, 117, 147, 129, 116, 124, 138, 137, 131, 134, 141, 136, 145, 136, 100, 128, 129, 135, 144, 101, 103, 143, 137, 117, 125, 127, 140, 130, 145, 130, 125, 131, 141, 123, 117, 137, 178, 113, 135, 126, 133, 115, 151, 90, 106, 134, 126, 127, 133, 155, 119, 132, 115, 131, 120, 134, 167, 124, 110, 128, 140, 127, 147, 129, 138, 129, 129, 165, 138, 124, 123, 154, 98, 138, 144, 170, 120, 124, 120, 145, 167, 150, 131, 126, 175, 129, 136, 120, 137, 128, 134, 130, 118, 171, 99, 163, 136, 117, 130, 165, 121, 134, 144, 123, 141, 132, 129, 134, 176, 128, 132, 131, 118, 152, 127, 138, 128, 135, 133, 111, 134, 120, 131, 157, 137, 118, 129, 137, 134, 139, 128, 149, 120, 115, 134, 131, 133, 89, 154, 135, 134, 146, 131, 138, 122, 120, 179, 134, 148, 141, 136, 136, 155, 132, 132, 132, 157, 142, 142, 130, 140, 142, 129, 137, 124, 135, 117, 130, 101, 149, 126, 132, 136, 120, 129, 129, 138, 140, 128, 129, 134, 146, 135, 132, 138, 131, 169, 123, 142, 140, 135, 114, 147, 120, 136, 134, 139, 138, 131, 137, 137, 126, 139, 124, 118, 128, 142, 154, 122, 127, 134, 98, 126, 131, 141, 128, 113, 131, 116, 139, 130, 127, 139, 115, 136, 156, 134, 170, 129, 130, 152, 139, 137, 115, 130, 126, 111, 121, 138, 110, 123, 152, 114, 134, 138, 131, 129, 133, 118, 116, 165, 133, 127, 119, 134, 124, 128, 126, 137, 146, 197, 114, 137, 156, 119, 146, 135, 149, 128, 155, 118, 144, 132, 175, 127, 133, 170, 109, 124, 116, 145, 114, 129, 122, 127, 127, 131, 123, 109, 139, 134, 138, 113, 131, 131, 128, 117, 125, 126, 108, 127, 133, 127, 164, 128, 114, 152, 118, 154, 117, 119, 144, 125, 154, 134, 144, 122, 110, 150, 147, 129, 201, 117, 157, 95, 174, 144, 158, 166, 136, 142, 146, 152, 126, 162, 107, 152, 139, 143, 139, 106, 126, 127, 182, 138, 119, 162, 113, 121, 128, 135, 142, 126, 113, 127, 138, 190, 133, 123, 116, 170, 117, 138, 174, 134, 71, 121, 85, 139, 118, 122, 107, 127, 121, 114, 121, 126, 124, 150, 146, 154, 132, 148, 136, 127, 121, 132, 150, 146, 136, 185, 136, 147, 152, 184, 130, 129, 100, 136, 127, 126, 144, 127, 146, 114, 100, 159, 156, 143, 108, 140, 126, 117, 150, 139, 121, 137, 131, 109, 136, 131, 113, 109, 133, 97, 128, 117, 141, 137, 117, 150, 148, 144, 130, 137, 123, 142, 146, 121, 135, 139, 156, 178, 141, 125, 115, 108, 134, 114, 141, 101, 118, 137, 150, 173, 124, 116, 146, 159, 126, 107, 141, 165, 128, 141, 153, 129, 108, 139, 185, 138, 126, 163, 123, 110, 137, 131, 121, 130, 109, 110, 124, 129, 129, 154, 122, 135, 126, 144, 172, 178, 109, 142, 120, 131, 171, 114, 151, 132, 119, 93, 161, 143, 141, 149, 121, 143, 113, 90, 142, 143, 127, 174, 120, 118, 130, 113, 125, 135, 130, 123, 139, 140, 120, 145, 137, 114, 130, 120, 134, 142, 137, 132, 178, 110, 110, 133, 122, 107, 127, 147, 127, 178, 112, 134, 114, 182, 166, 104, 126, 137, 122, 88, 126, 129, 171, 112, 122, 127, 140, 135, 121, 183, 185, 119, 150, 135, 135, 80, 117, 158, 127, 188, 120, 150, 117, 139, 142, 119, 158, 135, 156, 121, 122, 121, 148, 130, 170, 158, 168, 179, 179, 88, 142, 134, 118, 116, 123, 148, 121, 110, 125, 152, 147, 121, 160, 177, 166, 133, 135, 119, 122, 139, 144, 147, 156, 143, 123, 117, 133, 144, 189, 121, 169, 118, 94, 111, 131, 122, 131, 140, 119, 137, 117, 134, 109, 160, 112, 124, 122, 124, 132, 141, 115, 125, 121, 142, 113, 134, 124, 148, 132, 125, 95, 109, 135, 117, 116, 136, 130, 89, 116, 145, 155, 153, 135, 128, 138, 171, 142, 136, 131, 129, 138, 135, 135, 122, 154, 116, 127, 148, 130, 131, 132, 177, 124, 145, 181, 135, 166, 105, 122, 144, 129, 154, 132, 133, 140, 127, 124, 133, 139, 169, 120, 151, 133, 142, 135, 150, 127, 137, 136, 122, 113, 132, 108, 120, 118, 134, 130, 121, 142, 135, 115, 107, 109, 175, 125, 130, 120, 112, 132, 132, 172, 134, 117, 139, 162, 117, 167, 185, 123, 147, 127, 150, 97, 126, 117, 108, 120, 142, 114, 144, 117, 143, 151, 115, 140, 132, 141, 110, 115, 107, 133, 114, 119, 138, 122, 143, 116, 153, 212, 41, 102, 182, 155, 117, 86, 73, 168, 145, 188, 88, 185, 197, 188, 197, 159, 135, 104, 179, 200, 76, 194, 186, 104, 108, 202, 193, 145, 114, 199, 138, 202, 149, 180, 132, 99, 132, 156, 96, 110, 120, 192, 227, 168, 107, 221, 170, 103, 184, 119, 123, 148, 111, 33, 127, 195, 67, 98, 151, 206, 196, 170, 110, 91, 206, 139, 174, 159, 102, 69, 203, 177, 156, 134, 173, 198, 202, 200, 208, 84, 160, 121, 159, 162, 200, 117, 178, 106, 93, 124, 196, 176, 115, 131, 181, 187, 144, 193, 107, 205, 167, 141, 164, 124, 82, 140, 194, 87, 87, 116, 185, 135, 195, 35, 124, 120, 83, 119, 197, 203, 182, 194, 79, 186, 182, 128, 169, 129, 84, 82, 167, 143, 170, 189, 173, 131, 79, 122, 187, 174, 183, 122, 161, 148, 189, 135, 117, 60, 86, 130, 202, 116, 108, 142, 50, 115, 184, 193, 108, 68, 118, 158, 117, 121, 157, 59, 120, 77, 80, 141, 108, 176, 186, 178, 179, 121, 137, 171, 131, 156, 180, 60, 163, 176, 117, 119, 103, 127, 46, 167, 94, 174, 186, 158, 177, 206, 109, 109, 122, 146, 217, 171, 45, 149, 245, 177, 192, 114, 162, 152, 117, 110, 157, 107, 111, 95, 230, 204, 187, 100, 199, 113, 205, 128, 204, 12, 92, 202, 66, 190, 0, 44, 181, 123, 109, 162, 103, 118, 133, 124, 140, 135, 85, 146, 197, 114, 196, 97, 56, 198, 135, 129, 161, 123, 114, 99, 181, 110, 119, 134, 246, 205, 191, 46, 173, 146, 178, 187, 110, 190, 194, 129, 118, 255, 96, 123, 133, 115, 102, 196, 108, 200, 117, 151, 123, 121, 137, 190, 142, 147, 67, 113, 94, 103, 114, 119, 118, 195, 154, 122, 187, 124, 90, 141, 107, 195, 132, 193, 139, 122, 169, 102, 134, 120, 201, 118, 57, 144, 72, 174, 182, 115, 119, 158, 128, 119, 134, 163, 210, 101, 129, 138, 105, 204, 185, 113, 116, 144, 182, 110, 155, 13, 68, 72, 113, 204, 117, 205, 144, 87, 211, 118, 132, 196, 153, 110, 99, 185, 109, 186, 75, 105, 71, 136, 114, 135, 79, 193, 158, 188, 81, 114, 180, 128, 193, 191, 127, 114, 122, 147, 147, 204, 200, 138, 113, 128, 206, 95, 188, 76, 177, 193, 110, 137, 105, 79, 127, 112, 141, 61, 128, 149, 133, 142, 179, 163, 192, 125, 177, 166, 195, 137, 178, 175, 195, 178, 218, 62, 128, 97, 143, 115, 126, 197, 217, 97, 103, 178, 185, 198, 249, 195, 165, 131, 90, 211, 178, 51, 121, 113, 204, 190, 165, 106, 177, 117, 188, 192, 193, 119, 198, 183, 122, 112, 180, 93, 121, 77, 198, 134, 120, 96, 183, 190, 60, 115, 183, 186, 131, 108, 116, 164, 188, 97, 182, 235, 165, 77, 165, 61, 124, 201, 173, 157, 181, 196, 108, 202, 103, 102, 181, 108, 189, 101, 133, 181, 160, 76, 182, 183, 124, 117, 135, 196, 162, 110, 186, 138, 169, 89, 160, 153, 190, 110, 140, 158, 120, 147, 136, 141, 127, 160, 124, 142, 132, 173, 130, 132, 113, 103, 125, 155, 160, 114, 129, 121, 127, 126, 134, 156, 116, 144, 133, 137, 113, 130, 131, 127, 120, 175, 124, 109, 126, 140, 132, 123, 126, 119, 151, 161, 149, 119, 115, 159, 140, 152, 134, 145, 140, 125, 151, 149, 130, 196, 117, 111, 157, 93, 142, 132, 129, 135, 142, 145, 152, 124, 121, 191, 153, 145, 141, 139, 139, 124, 129, 122, 144, 120, 151, 151, 150, 176, 134, 148, 105, 131, 109, 136, 94, 134, 122, 116, 164, 174, 136, 103, 131, 195, 125, 84, 180, 117, 125, 149, 131, 118, 116, 121, 125, 127, 153, 145, 151, 135, 140, 138, 124, 122, 134, 149, 101, 136, 116, 115, 149, 153, 119, 130, 128, 96, 134, 129, 126, 127, 127, 91, 110, 163, 149, 159, 140, 112, 146, 127, 118, 151, 69, 123, 134, 140, 108, 134, 129, 110, 107, 130, 180, 127, 117, 137, 144, 123, 121, 144, 147, 131, 134, 171, 110, 145, 120, 135, 137, 145, 111, 151, 128, 115, 113, 134, 118, 141, 102, 181, 143, 144, 133, 123, 117, 145, 117, 128, 108, 146, 114, 127, 63, 155, 131, 110, 140, 108, 127, 128, 138, 123, 112, 136, 178, 120, 132, 171, 131, 124, 141, 139, 155, 125, 133, 125, 140, 111, 182, 102, 146, 120, 131, 162, 114, 123, 131, 129, 185, 107, 131, 132, 148, 121, 142, 100, 171, 137, 117, 120, 122, 121, 155, 130, 119, 125, 134, 129, 118, 146, 139, 121, 144, 134, 118, 132, 123, 135, 141, 117, 129, 177, 137, 115, 132, 125, 110, 128, 146, 129, 107, 138, 133, 116, 91, 115, 163, 126, 137, 124, 92, 133, 130, 96, 112, 124, 125, 115, 131, 139, 106, 128, 113, 108, 135, 138, 175, 116, 79, 129, 127, 121, 136, 117, 134, 118, 119, 161, 133, 116, 117, 172, 140, 150, 129, 79, 162, 107, 89, 131, 187, 142, 135, 121, 132, 123, 145, 117, 133, 124, 148, 140, 118, 167, 98, 160, 132, 141, 123, 128, 139, 124, 129, 119, 142, 126, 119, 136, 151, 124, 123, 123, 118, 167, 105, 134, 125, 132, 143, 116, 137, 135, 133, 172, 124, 112, 130, 117, 183, 135, 145, 125, 124, 123, 145, 116, 136, 124, 146, 138, 124, 152, 113, 141, 117, 120, 198, 129, 159, 173, 137, 110, 150, 130, 130, 132, 167, 138, 138, 133, 135, 141, 136, 136, 126, 155, 118, 129, 91, 131, 130, 132, 170, 123, 145, 108, 140, 153, 101, 125, 139, 129, 104, 129, 135, 137, 123, 125, 134, 130, 101, 119, 151, 132, 144, 139, 149, 137, 138, 137, 120, 117, 132, 120, 120, 118, 136, 174, 121, 143, 133, 173, 114, 106, 157, 130, 133, 120, 113, 135, 134, 111, 134, 131, 136, 153, 120, 121, 118, 124, 138, 122, 145, 129, 134, 138, 109, 126, 143, 119, 145, 164, 104, 150, 119, 138, 133, 141, 113, 115, 111, 132, 120, 118, 133, 118, 146, 106, 153, 146, 173, 103, 135, 134, 118, 128, 134, 151, 131, 132, 127, 127, 144, 152, 136, 144, 175, 113, 127, 115, 128, 122, 137, 118, 136, 130, 139, 130, 116, 124, 125, 130, 118, 136, 129, 129, 113, 171, 152, 122, 127, 146, 125, 142, 133, 131, 141, 133, 154, 124, 120, 143, 132, 143, 132, 139, 80, 201, 157, 134, 134, 134, 125, 147, 123, 133, 130, 142, 157, 138, 137, 140, 140, 116, 147, 129, 137, 136, 147, 142, 125, 124, 134, 85, 139, 120, 191, 123, 138, 132, 138, 132, 122, 100, 127, 131, 110, 138, 127, 125, 134, 130, 133, 145, 176, 105, 129, 134, 137, 118, 130, 110, 134, 141, 118, 117, 122, 127, 167, 134, 137, 143, 134, 140, 130, 118, 151, 124, 160, 133, 120, 132, 132, 156, 139, 107, 129, 118, 140, 125, 145, 127, 131, 144, 132, 129, 139, 134, 143, 112, 140, 162, 128, 145, 127, 125, 153, 133, 127, 134, 122, 157, 115, 157, 129, 134, 128, 138, 139, 154, 139, 141, 137, 138, 135, 122, 120, 135, 141, 149, 134, 149, 133, 129, 129, 122, 109, 118, 132, 137, 130, 130, 137, 136, 156, 126, 127, 119, 148, 120, 130, 135, 162, 151, 124, 130, 133, 117, 136, 165, 161, 131, 143, 130, 127, 133, 122, 126, 130, 127, 120, 157, 127, 134, 126, 130, 139, 131, 138, 112, 157, 128, 138, 123, 141, 136, 121, 149, 133, 113, 128, 141, 134, 211, 127, 130, 132, 112, 85, 138, 126, 129, 132, 119, 121, 130, 131, 128, 127, 147, 143, 128, 127, 144, 141, 113, 146, 127, 117, 134, 141, 127, 119, 141, 145, 112, 112, 124, 125, 127, 132, 131, 154, 102, 121, 113, 163, 150, 132, 114, 138, 131, 137, 149, 124, 132, 122, 131, 148, 136, 134, 130, 128, 158, 115, 138, 118, 133, 115, 127, 137, 136, 147, 127, 121, 122, 134, 145, 129, 123, 139, 145, 120, 153, 130, 146, 117, 161, 135, 146, 161, 183, 135, 132, 135, 122, 131, 105, 135, 118, 124, 128, 137, 141, 116, 174, 138, 141, 147, 154, 128, 129, 139, 118, 145, 140, 153, 132, 127, 134, 126, 137, 141, 144, 143, 114, 123, 133, 123, 134, 136, 116, 134, 108, 132, 137, 140, 124, 116, 148, 135, 134, 129, 147, 130, 120, 143, 124, 133, 97, 131, 135, 123, 126, 124, 134, 137, 120, 130, 132, 131, 134, 155, 138, 153, 142, 134, 147, 161, 139, 144, 146, 143, 138, 140, 133, 135, 129, 116, 125, 139, 125, 120, 131, 130, 124, 148, 187, 140, 131, 130, 132, 135, 119, 143, 131, 138, 134, 119, 124, 142, 138, 156, 129, 137, 131, 140, 138, 134, 147, 146, 134, 126, 125, 141, 135, 116, 138, 137, 129, 127, 148, 129, 124, 117, 119, 85, 128, 113, 128, 123, 137, 130, 150, 131, 124, 126, 136, 136, 163, 137, 129, 142, 148, 139, 111, 195, 127, 142, 124, 139, 130, 150, 126, 134, 136, 130, 140, 134, 135, 132, 122, 112, 131, 114, 130, 136, 122, 143, 111, 130, 146, 184, 106, 144, 132, 115, 100, 122, 136, 162, 151, 127, 127, 146, 169, 133, 175, 143, 108, 124, 128, 106, 85, 151, 120, 135, 123, 130, 132, 106, 114, 119, 135, 108, 151, 112, 144, 117, 198, 181, 114, 143, 133, 112, 107, 129, 116, 140, 140, 154, 119, 116, 128, 127, 134, 134, 140, 122, 154, 153, 137, 127, 187, 116, 137, 103, 127, 115, 118, 142, 126, 144, 131, 124, 126, 151, 96, 88, 141, 150, 166, 116, 122, 152, 178, 149, 123, 207, 129, 147, 117, 127, 129, 122, 137, 182, 126, 174, 132, 121, 146, 104, 116, 116, 133, 216, 132, 132, 118, 122, 112, 134, 131, 126, 129, 119, 115, 114, 126, 159, 143, 139, 149, 111, 140, 139, 118, 164, 88, 150, 141, 120, 120, 126, 123, 114, 125, 143, 128, 135, 108, 160, 98, 149, 136, 111, 131, 145, 153, 158, 110, 144, 214, 124, 176, 168, 120, 162, 134, 120, 142, 130, 175, 114, 135, 145, 125, 117, 152, 128, 176, 138, 128, 136, 95, 133, 120, 104, 157, 175, 137, 119, 117, 121, 139, 120, 117, 113, 124, 109, 158, 119, 113, 135, 154, 132, 120, 120, 105, 126, 125, 100, 114, 119, 153, 143, 134, 130, 113, 137, 104, 131, 128, 131, 128, 115, 114, 115, 125, 132, 141, 156, 182, 137, 136, 144, 120, 153, 136, 132, 118, 132, 122, 136, 123, 163, 124, 124, 129, 71, 123, 134, 124, 108, 131, 131, 119, 121, 126, 116, 130, 136, 125, 120, 119, 134, 136, 131, 120, 109, 143, 116, 122, 120, 116, 143, 92, 137, 119, 118, 135, 137, 133, 100, 191, 139, 116, 116, 122, 120, 121, 119, 129, 122, 126, 107, 111, 110, 127, 122, 155, 143, 127, 131, 178, 115, 127, 138, 121, 173, 130, 137, 125, 131, 165, 120, 132, 118, 135, 117, 123, 135, 132, 112, 118, 108, 113, 130, 130, 120, 132, 140, 137, 128, 170, 150, 183, 97, 108, 152, 140, 124, 160, 126, 128, 133, 122, 127, 109, 140, 119, 128, 126, 160, 132, 125, 142, 113, 112, 167, 176, 128, 131, 153, 133, 151, 133, 167, 125, 121, 131, 112, 128, 133, 128, 125, 118, 121, 140, 107, 145, 85, 116, 136, 119, 130, 128, 138, 115, 119, 190, 142, 133, 155, 131, 120, 111, 145, 128, 138, 126, 149, 135, 120, 141, 122, 145, 180, 121, 110, 133, 142, 123, 134, 107, 157, 158, 136, 171, 136, 151, 137, 150, 175, 133, 122, 124, 125, 171, 121, 117, 144, 137, 126, 133, 206, 121, 149, 127, 114, 131, 126, 128, 143, 87, 136, 118, 129, 139, 130, 121, 132, 133, 134, 104, 155, 145, 116, 143, 163, 158, 133, 129, 130, 105, 147, 115, 122, 132, 137, 155, 124, 154, 120, 147, 122, 103, 160, 122, 135, 114, 120, 141, 129, 152, 119, 118, 155, 109, 170, 137, 135, 110, 132, 142, 135, 137, 160, 197, 187, 123, 142, 134, 155, 133, 137, 141, 183, 147, 140, 140, 119, 111, 96, 135, 182, 126, 135, 117, 137, 127, 131, 147, 179, 106, 133, 137, 118, 129, 134, 130, 132, 133, 124, 128, 143, 147, 135, 144, 125, 117, 128, 146, 142, 123, 138, 117, 135, 129, 138, 144, 117, 123, 127, 131, 116, 135, 129, 130, 111, 71, 155, 121, 125, 142, 127, 136, 133, 130, 141, 148, 154, 124, 117, 145, 177, 141, 131, 139, 163, 124, 154, 129, 133, 148, 126, 136, 136, 131, 133, 126, 131, 140, 135, 140, 140, 117, 144, 131, 138, 134, 145, 139, 128, 125, 133, 158, 143, 124, 178, 140, 140, 128, 136, 147, 106, 131, 113, 127, 162, 135, 129, 141, 135, 130, 132, 121, 166, 140, 129, 128, 134, 119, 132, 140, 133, 142, 118, 115, 119, 124, 164, 135, 139, 143, 134, 141, 131, 116, 149, 121, 134, 133, 131, 134, 147, 155, 135, 112, 129, 118, 140, 127, 143, 119, 132, 123, 129, 132, 142, 135, 144, 112, 135, 161, 126, 142, 155, 126, 154, 122, 125, 134, 121, 152, 120, 155, 175, 131, 127, 142, 140, 151, 114, 140, 137, 140, 137, 167, 104, 135, 140, 149, 137, 138, 129, 146, 129, 124, 107, 119, 130, 138, 133, 132, 140, 136, 127, 128, 129, 120, 131, 117, 127, 133, 80, 154, 118, 130, 130, 113, 135, 143, 126, 128, 145, 131, 131, 132, 104, 128, 130, 142, 143, 156, 122, 157, 130, 126, 140, 135, 137, 135, 161, 134, 138, 124, 143, 142, 123, 126, 124, 130, 143, 112, 130, 94, 126, 129, 130, 129, 165, 136, 120, 132, 146, 118, 149, 130, 134, 127, 127, 149, 137, 126, 131, 142, 140, 117, 144, 128, 120, 131, 138, 111, 118, 127, 129, 115, 112, 124, 125, 128, 135, 130, 114, 126, 124, 116, 119, 116, 122, 117, 142, 130, 136, 144, 123, 131, 121, 129, 148, 132, 135, 134, 132, 148, 117, 129, 116, 136, 158, 128, 114, 137, 143, 126, 120, 119, 135, 85, 133, 124, 135, 122, 118, 133, 179, 147, 115, 125, 131, 134, 100, 135, 122, 130, 133, 122, 134, 105, 137, 115, 134, 136, 145, 141, 116, 162, 111, 138, 148, 155, 128, 130, 140, 131, 146, 129, 155, 133, 128, 133, 128, 126, 141, 137, 141, 136, 121, 136, 121, 138, 141, 116, 133, 118, 130, 103, 136, 124, 119, 147, 148, 135, 132, 146, 127, 118, 139, 127, 134, 177, 130, 135, 125, 135, 123, 136, 139, 120, 111, 134, 141, 150, 146, 138, 152, 137, 135, 144, 156, 134, 140, 145, 148, 153, 138, 131, 133, 128, 116, 125, 129, 127, 120, 131, 125, 123, 150, 128, 133, 132, 130, 131, 134, 122, 126, 129, 137, 134, 120, 124, 142, 130, 134, 126, 134, 129, 145, 140, 139, 149, 144, 132, 128, 123, 139, 131, 115, 136, 133, 179, 129, 148, 128, 165, 120, 119, 152, 130, 112, 130, 126, 137, 130, 131, 132, 125, 125, 135, 140, 63, 132, 129, 141, 147, 136, 130, 128, 155, 145, 126, 137, 129, 147, 159, 122, 133, 129, 140, 134, 142, 135, 123, 111, 132, 129, 129, 133, 123, 143, 115, 129};
+ model->setOperandValue(op77, op77_init, sizeof(uint8_t) * 4608);
+ static int32_t op79_init[] = {-15709, 4131, -4227, -5060, 2469, 12246, -19310, -8550, -9589, 12285, -7295, -15468, 11009, -7912, 5778, -20369, -3115, -18818, -3064, 2549, -12244, 28189, -771, 11366, 10671, 1860, 6985, -17783, -8928, -14702, -4247, -19396, -2501, 10280, 2728, -14644, 13925, 2380, -6508, -6569, 695, -12303, -362, -3622, -26612, 7296, -712, 3120, -573, 5385, 7673, -10656, 9944, 4715, -2813, 14568, -20969, 18686, -10451, -11382, -19825, -10149, -6873, 17940, -1107, 8045, -3687, 9594, -24737, 3873, 1520, -13797, -6282, -5740, 15157, 15136, 14698, -15312, -1085, -10619, 553, -4692, -8701, 17841, -17061, 3846, -19712, 251, -9151, 2983, -1555, 6642, -2927, -4289, 8981, -14765, 18048, -22482, -5925, 8598, 221, -13452, 8187, 14091, -14916, -12484, 12265, 1094, 11626, -14723, -14811, -3572, -5172, 5325, -25788, -7053, 8015, 5654, 4936, 11112, -1846, -17838, -2018, 6719, -9349, 2825, 7283, 14865, 6798, -5312, -601, -13297, 4397, -11312, 2146, 9295, -6071, 5773, -21407, -8507, -23790, 10532, 2137, -2871, 1030, -693, 23772, 18374, -17991, -3732, 3438, 2846, 11278, -3337, 8266, -11105, 7936, 11428, 6500, -6636, -22631, -5567, 5003, 15060, -8927, 18526, 8434, 3600, 12771, 5914, -29740, -4939, 8408, -13006, 8024, -10686, 3498, 4919, 14427, -2665, -10006, 25887, -31827, 28376, 5430, -293, 9483, 16461, -8344, 2527, 13569, -176, 16371, 8827, 16757, -8652, 15813, -12070, 2613, -1607, 5296, -32302, -7878, -12248, -15939, 17740, 12075, 15927, 14608, 2832, 12405, 14022, 5738, -4134, -22407, -13522, -2698, -10719, 11108, -5238, 14045, -3512, -20879, 10529, 8586, -7680, -6382, -9137, 9572, 1048, -3262, 10972, 2059, 19554, 12647, -28701, -17721, -19013, -1563, -5998, -1815, -10005, -14449, -16462, 30240, -3446, 15076, -1551, -2160, -11720, 13836, 12902, 16321, -11785, -9941, 126, -5831, -13604, -13463, -18182, 3920, -5227, -23801, -22028, 5987, -9911, 7162, 5850, -12745, 6060, 33703, 4533, 1699, -13885, -12335, -6369, 15926, -9638, 19855, -8524, -39, -9352, 1021, -6630, 3875, -6846, -134, -2620, 19, -14629, -1484, 9025, 12694, 16409, 8964, 9614, -32362, 3036, -9107, -13590, 20788, -6593, 16806, 2325, -5755, -31367, -5682, 1950, 9876, -4913, 2061, 14208, -1988, 11241, 9114, 14270, -4746, -3943, 2455, 4810, 3148, 5044, -1212, -1350, -14076, -15664, -4032, 1575, 1386, 16482, 6230, 14366, -29026, -4054, 4768, -788, -11222, 17241, -20631, 10649, -610, -5172, -5640, -13145, -7901, 1909, -5276, 17840, -14676, -3130, 8765, -7049, 2887, 4771, -5342, -8374, 4959, -1487, -2564, -13403, 10136, 13499, -7934, 6443, 2967, -8260, -7565, -18021, 5570, 8064, -10804, -3881, 18203, -7242, 1886, -12058, -4871, 895, 10453, 29461, 12491, -1507, 12237, 10251, 14659, 18957, -5478, -12698, -14890, -12834, 8764, 2284, 1618, 10989, -27920, -6622, -2389, -21486, 1788, -13233, -10561, -10419, -21887, 25949, -14537, 12799, -10535, -10532, 4729, 10402, 507, 2919, 12062, -5174, 2022, -9594, 20526, -6706, -18210, 3738, 3938, 2633, 13965, 300, -16966, -8638, 1281, 7235, -2840, 5671, 19536, 9603, -26095, 4173, 11441, -15425, -9934, -11685, 11459, 12218, -16117, -6083, 7361, 10819, 12725, -29310, -1634, 13373, -548, 14769, 1649, 38, 13320, -5953, -8049, 12228, 8733, 1225, 10642, 3554, 17369, -4237, 28871, -5764, 7381, 6123, -8698, -11423, -14187, 1342, -5802, -1008, 11484, 5197, -23915, -22464, 17764, 2070, 8901, 4514, -3589, -1151, 15309, -16064, -876, 3226, 1276, 9193, 927, 1615, -18942, -13356, 9804, 5069, -8493, -18616, -969, 6259, -17856, 27312, 2379, 14479, -8654, 12897, -3924, -8140, 254, 6570, -14154, 7708, -10344, 3417};
+ model->setOperandValue(op79, op79_init, sizeof(int32_t) * 512);
+ static uint8_t op80_init[] = {99, 128, 95, 117, 120, 113, 108, 111, 125, 93, 131, 109, 119, 107, 90, 120, 128, 123, 121, 130, 121, 105, 106, 117, 121, 107, 120, 106, 88, 117, 129, 99, 116, 131, 120, 107, 122, 91, 101, 119, 98, 92, 125, 123, 136, 113, 115, 105, 117, 84, 104, 112, 101, 116, 120, 130, 119, 123, 120, 107, 117, 114, 106, 111, 138, 113, 131, 122, 96, 122, 123, 128, 105, 120, 124, 115, 127, 96, 97, 109, 120, 118, 115, 121, 111, 135, 117, 108, 111, 114, 109, 111, 115, 113, 123, 112, 115, 106, 118, 110, 130, 117, 116, 107, 114, 118, 104, 123, 116, 114, 102, 100, 118, 112, 104, 109, 120, 109, 124, 108, 143, 125, 117, 135, 114, 108, 125, 104, 130, 132, 126, 128, 112, 112, 116, 124, 121, 128, 107, 114, 108, 105, 123, 123, 133, 126, 108, 124, 111, 117, 104, 104, 123, 108, 94, 110, 130, 112, 117, 111, 122, 99, 112, 107, 135, 116, 108, 115, 110, 121, 114, 110, 110, 103, 109, 121, 116, 131, 109, 112, 111, 99, 138, 97, 116, 120, 114, 115, 106, 107, 118, 118, 129, 130, 112, 151, 124, 101, 109, 105, 115, 88, 113, 110, 89, 129, 110, 115, 116, 106, 107, 130, 117, 104, 118, 116, 100, 131, 123, 125, 112, 105, 122, 126, 119, 97, 116, 110, 129, 117, 129, 118, 119, 119, 113, 118, 132, 111, 113, 102, 114, 128, 114, 124, 128, 105, 101, 116, 105, 116, 120, 115, 100, 108, 112, 115, 107, 128, 117, 126, 114, 124, 110, 101, 103, 122, 98, 123, 125, 127, 110, 113, 126, 100, 128, 136, 114, 133, 104, 124, 112, 119, 118, 113, 126, 119, 117, 114, 120, 113, 130, 119, 116, 116, 147, 135, 130, 89, 123, 108, 108, 108, 119, 102, 103, 106, 121, 108, 109, 110, 116, 139, 131, 127, 111, 109, 118, 110, 113, 107, 128, 115, 122, 110, 105, 137, 127, 128, 100, 124, 109, 112, 121, 121, 88, 122, 101, 99, 106, 103, 109, 123, 117, 111, 108, 114, 117, 101, 135, 117, 96, 118, 98, 114, 116, 108, 93, 105, 134, 106, 112, 98, 120, 107, 113, 119, 143, 118, 118, 120, 119, 93, 113, 129, 114, 124, 122, 116, 113, 123, 108, 118, 122, 119, 100, 114, 113, 126, 140, 102, 124, 101, 121, 117, 138, 119, 109, 122, 106, 120, 123, 129, 102, 104, 98, 125, 107, 108, 104, 117, 103, 115, 105, 112, 103, 109, 107, 125, 112, 116, 123, 133, 107, 114, 111, 116, 116, 107, 116, 113, 121, 128, 116, 122, 123, 119, 115, 108, 109, 148, 121, 115, 131, 125, 122, 114, 125, 106, 114, 115, 117, 128, 103, 90, 110, 113, 112, 122, 119, 130, 132, 96, 117, 114, 111, 118, 121, 103, 97, 108, 125, 120, 117, 109, 115, 121, 134, 108, 118, 113, 105, 115, 124, 106, 137, 122, 110, 131, 110, 118, 113, 113, 116, 110, 112, 119, 117, 121, 115, 116, 122, 97, 121, 116, 128, 114, 125, 121, 133, 126, 117, 125, 122, 133, 126, 117, 116, 114, 115, 126, 98, 106, 104, 133, 105, 105, 95, 110, 127, 107, 106, 120, 109, 121, 115, 106, 120, 103, 123, 118, 118, 126, 116, 123, 112, 126, 111, 133, 120, 112, 117, 108, 107, 124, 111, 116, 121, 96, 110, 102, 112, 135, 104, 97, 115, 118, 117, 113, 123, 110, 131, 104, 101, 94, 117, 125, 120, 122, 125, 127, 115, 124, 120, 113, 104, 117, 126, 113, 118, 122, 112, 139, 105, 117, 100, 118, 119, 126, 114, 123, 98, 120, 125, 130, 114, 125, 107, 119, 111, 101, 142, 123, 128, 108, 124, 134, 113, 123, 118, 112, 130, 112, 116, 117, 124, 124, 111, 128, 111, 111, 105, 121, 122, 120, 122, 115, 104, 113, 107, 112, 125, 115, 129, 139, 130, 113, 107, 118, 135, 113, 105, 99, 123, 119, 108, 112, 120, 113, 104, 131, 130, 114, 117, 110, 116, 99, 111, 120, 112, 129, 120, 109, 85, 142, 118, 113, 114, 123, 105, 108, 92, 115, 120, 114, 89, 108, 117, 126, 110, 111, 102, 111, 113, 123, 123, 122, 106, 105, 113, 95, 117, 133, 110, 119, 145, 105, 116, 130, 120, 111, 118, 110, 118, 114, 124, 109, 110, 123, 108, 96, 110, 101, 120, 115, 122, 117, 128, 128, 122, 134, 115, 124, 119, 108, 124, 116, 120, 117, 127, 110, 120, 122, 115, 114, 110, 101, 119, 118, 118, 108, 114, 112, 110, 120, 115, 115, 104, 108, 109, 137, 111, 97, 108, 124, 97, 110, 122, 106, 102, 116, 116, 109, 110, 109, 132, 114, 118, 122, 117, 121, 121, 122, 132, 121, 98, 121, 115, 108, 118, 115, 113, 121, 100, 119, 132, 111, 107, 111, 121, 118, 113, 111, 129, 113, 112, 117, 111, 119, 119, 123, 133, 129, 103, 115, 111, 117, 112, 129, 129, 129, 129, 123, 116, 116, 100, 108, 112, 108, 113, 119, 123, 123, 120, 117, 113, 108, 119, 118, 120, 116, 109, 114, 112, 109, 119, 108, 106, 116, 124, 106, 112, 116, 116, 128, 95, 137, 130, 122, 117, 125, 120, 117, 112, 119, 94, 131, 118, 112, 102, 114, 126, 103, 144, 114, 116, 115, 128, 120, 116, 125, 102, 115, 110, 113, 121, 111, 116, 111, 123, 115, 108, 122, 118, 121, 107, 101, 129, 114, 120, 130, 118, 117, 109, 137, 98, 113, 117, 116, 110, 117, 120, 122, 103, 121, 133, 123, 112, 102, 115, 126, 109, 118, 98, 98, 115, 118, 123, 123, 114, 114, 135, 126, 114, 124, 118, 105, 122, 124, 112, 119, 124, 120, 113, 130, 113, 123, 120, 110, 143, 121, 123, 109, 115, 115, 123, 113, 113, 99, 107, 95, 103, 125, 123, 127, 136, 120, 102, 116, 115, 124, 120, 113, 119, 97, 118, 118, 128, 104, 126, 119, 131, 110, 110, 103, 104, 99, 123, 110, 107, 114, 118, 104, 121, 126, 122, 117, 128, 115, 112, 122, 128, 119, 112, 108, 106, 90, 122, 125, 105, 114, 117, 99, 104, 118, 124, 121, 107, 109, 109, 122, 120, 116, 137, 111, 167, 114, 97, 110, 118, 112, 122, 127, 125, 117, 103, 124, 141, 120, 105, 113, 118, 129, 101, 110, 118, 118, 103, 108, 113, 106, 110, 118, 115, 103, 124, 106, 126, 114, 108, 109, 113, 139, 113, 120, 119, 124, 117, 128, 121, 112, 106, 133, 115, 100, 123, 116, 104, 114, 108, 105, 124, 118, 126, 124, 128, 113, 116, 113, 117, 116, 118, 108, 115, 126, 110, 99, 104, 103, 103, 116, 117, 118, 108, 119, 112, 117, 112, 113, 122, 109, 130, 114, 117, 111, 112, 103, 100, 123, 121, 120, 112, 114, 115, 112, 114, 113, 112, 113, 110, 116, 117, 109, 121, 113, 109, 117, 101, 125, 103, 116, 108, 127, 103, 114, 133, 120, 119, 117, 119, 111, 117, 121, 104, 114, 122, 130, 111, 124, 108, 110, 125, 104, 120, 125, 141, 112, 115, 113, 118, 127, 121, 122, 126, 110, 100, 119, 116, 118, 106, 121, 111, 126, 107, 118, 117, 124, 110, 106, 89, 126, 104, 118, 100, 117, 121, 129, 124, 118, 118, 118, 122, 103, 123, 127, 113, 113, 122, 116, 125, 113, 128, 98, 133, 110, 145, 123, 124, 123, 104, 116, 101, 109, 119, 98, 125, 111, 120, 120, 129, 113, 118, 135, 115, 134, 116, 118, 102, 110, 123, 115, 110, 120, 120, 140, 113, 117, 112, 112, 108, 141, 113, 118, 116, 99, 129, 121, 116, 122, 119, 105, 118, 123, 112, 120, 112, 127, 117, 133, 113, 126, 116, 92, 108, 118, 113, 118, 110, 123, 103, 116, 134, 111, 110, 119, 121, 124, 104, 133, 113, 128, 102, 101, 123, 127, 124, 109, 119, 101, 122, 119, 111, 115, 123, 104, 109, 116, 116, 113, 122, 112, 114, 122, 112, 122, 123, 119, 116, 122, 118, 111, 115, 124, 124, 119, 105, 125, 129, 114, 129, 114, 124, 122, 114, 108, 112, 121, 115, 114, 122, 108, 116, 117, 112, 129, 110, 125, 116, 112, 123, 116, 115, 102, 118, 136, 106, 127, 116, 112, 108, 122, 118, 109, 122, 118, 119, 123, 119, 140, 110, 124, 113, 110, 96, 115, 118, 111, 142, 123, 105, 119, 116, 114, 118, 93, 113, 114, 131, 130, 118, 120, 109, 111, 123, 129, 97, 111, 107, 106, 115, 131, 118, 118, 121, 121, 106, 121, 117, 115, 118, 105, 111, 91, 116, 128, 122, 120, 118, 124, 110, 128, 123, 109, 114, 115, 113, 116, 110, 106, 117, 103, 109, 118, 111, 112, 118, 108, 97, 111, 124, 100, 104, 103, 113, 117, 129, 96, 125, 105, 111, 107, 113, 134, 108, 129, 108, 115, 122, 125, 111, 119, 112, 119, 121, 105, 117, 125, 119, 111, 136, 128, 121, 137, 126, 103, 117, 112, 126, 137, 124, 108, 118, 113, 130, 114, 112, 126, 102, 128, 108, 111, 111, 85, 116, 110, 123, 120, 119, 117, 118, 114, 112, 94, 125, 119, 119, 124, 121, 120, 120, 123, 119, 116, 108, 114, 118, 109, 123, 116, 118, 111, 103, 112, 119, 112, 108, 124, 116, 108, 101, 119, 108, 117, 96, 133, 104, 112, 100, 127, 102, 119, 113, 128, 121, 124, 101, 106, 117, 121, 106, 133, 110, 123, 119, 131, 107, 124, 91, 103, 114, 120, 112, 130, 122, 118, 103, 117, 109, 120, 113, 121, 118, 117, 136, 122, 116, 129, 127, 123, 119, 112, 146, 106, 113, 120, 103, 118, 136, 113, 104, 102, 122, 125, 131, 146, 106, 108, 115, 112, 122, 101, 125, 106, 102, 120, 99, 112, 121, 117, 108, 115, 117, 142, 105, 112, 110, 111, 117, 112, 119, 107, 88, 121, 125, 109, 119, 115, 92, 121, 86, 87, 109, 102, 111, 98, 116, 123, 108, 113, 99, 120, 108, 117, 122, 116, 118, 105, 126, 120, 116, 114, 115, 132, 124, 112, 113, 113, 122, 111, 105, 110, 123, 109, 122, 124, 118, 122, 121, 123, 122, 120, 115, 117, 119, 122, 114, 112, 109, 117, 139, 125, 119, 115, 119, 95, 122, 111, 111, 112, 117, 115, 124, 117, 117, 117, 107, 115, 126, 119, 121, 108, 118, 115, 120, 111, 125, 103, 121, 101, 110, 107, 114, 112, 119, 120, 130, 109, 111, 114, 130, 119, 112, 122, 112, 116, 130, 116, 115, 116, 109, 114, 121, 135, 121, 115, 123, 111, 105, 105, 108, 113, 122, 107, 126, 119, 125, 122, 106, 109, 118, 130, 120, 102, 115, 121, 121, 106, 110, 71, 112, 117, 104, 118, 110, 112, 117, 126, 104, 122, 108, 111, 115, 107, 91, 113, 134, 108, 100, 139, 130, 132, 121, 118, 116, 117, 158, 105, 118, 110, 118, 105, 127, 114, 110, 124, 114, 99, 123, 100, 119, 112, 109, 124, 116, 113, 108, 118, 130, 110, 122, 125, 128, 118, 114, 116, 114, 106, 120, 116, 105, 125, 115, 114, 119, 113, 141, 84, 127, 111, 122, 115, 117, 139, 120, 110, 115, 119, 111, 111, 122, 119, 114, 112, 99, 126, 117, 118, 125, 116, 111, 139, 116, 113, 106, 111, 129, 107, 107, 124, 120, 117, 129, 103, 112, 111, 108, 124, 136, 127, 118, 94, 113, 115, 110, 101, 101, 124, 125, 127, 119, 118, 110, 124, 104, 116, 118, 111, 125, 97, 119, 98, 120, 125, 86, 111, 95, 122, 121, 96, 119, 116, 119, 105, 112, 119, 109, 121, 124, 103, 105, 115, 108, 122, 105, 107, 108, 110, 120, 104, 116, 105, 111, 107, 120, 114, 124, 115, 127, 125, 112, 118, 136, 123, 126, 126, 113, 113, 114, 145, 107, 117, 129, 110, 114, 120, 122, 108, 119, 124, 114, 72, 106, 112, 119, 115, 118, 121, 117, 94, 114, 115, 123, 101, 122, 109, 111, 123, 114, 112, 116, 133, 114, 108, 127, 122, 105, 114, 113, 95, 89, 134, 117, 121, 122, 99, 118, 108, 113, 123, 117, 95, 116, 120, 86, 118, 116, 98, 117, 115, 114, 117, 110, 119, 102, 103, 108, 124, 123, 98, 122, 117, 112, 104, 113, 119, 114, 110, 104, 104, 124, 107, 115, 124, 98, 137, 106, 112, 112, 120, 105, 121, 135, 130, 120, 113, 125, 116, 125, 116, 112, 124, 116, 119, 117, 114, 124, 96, 123, 117, 119, 118, 114, 114, 110, 119, 120, 113, 125, 110, 113, 121, 118, 123, 120, 120, 114, 111, 116, 111, 119, 124, 114, 114, 119, 121, 123, 119, 123, 116, 116, 112, 109, 104, 109, 107, 126, 123, 120, 113, 117, 119, 115, 115, 117, 125, 111, 115, 114, 106, 102, 125, 119, 121, 120, 109, 120, 116, 114, 120, 122, 114, 115, 115, 118, 114, 110, 119, 120, 117, 120, 118, 122, 114, 122, 115, 113, 117, 121, 123, 114, 122, 116, 114, 117, 108, 113, 120, 116, 119, 110, 121, 133, 133, 116, 103, 121, 117, 120, 120, 111, 118, 121, 114, 115, 111, 125, 115, 112, 113, 125, 117, 118, 116, 115, 127, 119, 113, 112, 109, 112, 118, 128, 115, 116, 114, 117, 115, 114, 123, 114, 117, 117, 127, 117, 117, 119, 118, 117, 124, 116, 115, 124, 125, 110, 117, 118, 115, 112, 116, 115, 115, 114, 110, 113, 116, 114, 118, 121, 112, 126, 113, 121, 131, 127, 114, 122, 113, 121, 123, 123, 117, 121, 130, 120, 116, 115, 119, 116, 132, 118, 113, 115, 121, 126, 115, 121, 118, 118, 116, 114, 114, 122, 112, 114, 114, 123, 111, 115, 119, 116, 111, 116, 115, 118, 119, 109, 122, 115, 122, 113, 117, 118, 130, 114, 116, 122, 121, 118, 119, 115, 118, 117, 121, 111, 112, 115, 117, 113, 126, 120, 120, 117, 110, 114, 109, 129, 115, 112, 117, 126, 120, 111, 108, 120, 98, 106, 116, 132, 113, 114, 117, 113, 121, 111, 114, 116, 109, 121, 100, 119, 118, 109, 114, 108, 121, 123, 109, 111, 113, 113, 115, 113, 114, 119, 120, 113, 110, 115, 113, 124, 120, 119, 118, 120, 110, 121, 120, 122, 112, 112, 125, 121, 117, 112, 114, 119, 112, 111, 119, 115, 121, 116, 117, 125, 114, 117, 116, 119, 128, 114, 119, 114, 115, 120, 111, 118, 112, 119, 109, 115, 112, 113, 112, 124, 118, 112, 110, 115, 119, 120, 123, 112, 116, 122, 114, 106, 117, 112, 115, 117, 121, 112, 113, 114, 115, 118, 119, 111, 123, 119, 120, 119, 122, 120, 121, 120, 114, 124, 113, 118, 108, 119, 118, 118, 110, 115, 116, 129, 122, 108, 110, 121, 117, 122, 116, 111, 114, 115, 102, 117, 112, 121, 108, 115, 125, 112, 103, 112, 114, 113, 107, 112, 108, 113, 119, 115, 114, 112, 115, 115, 122, 113, 117, 122, 114, 114, 111, 116, 116, 114, 113, 117, 116, 123, 109, 115, 112, 120, 122, 129, 115, 113, 112, 114, 109, 114, 117, 125, 124, 115, 123, 113, 138, 116, 124, 118, 115, 113, 118, 123, 122, 120, 117, 121, 113, 105, 117, 115, 116, 113, 111, 119, 122, 118, 119, 132, 111, 106, 111, 111, 114, 115, 127, 122, 116, 122, 119, 121, 114, 118, 120, 121, 126, 117, 123, 116, 120, 121, 115, 115, 112, 117, 123, 117, 109, 117, 117, 123, 121, 117, 112, 120, 113, 118, 112, 117, 117, 121, 109, 109, 119, 115, 116, 115, 101, 115, 123, 111, 125, 120, 112, 98, 115, 126, 133, 111, 120, 129, 135, 118, 124, 108, 136, 121, 114, 121, 120, 126, 118, 102, 121, 114, 121, 120, 120, 101, 119, 129, 108, 118, 112, 109, 111, 120, 123, 84, 125, 129, 113, 126, 114, 109, 120, 124, 113, 110, 119, 110, 109, 115, 127, 125, 122, 112, 120, 113, 116, 107, 116, 119, 126, 119, 109, 114, 112, 122, 109, 115, 103, 118, 117, 67, 114, 106, 129, 111, 110, 107, 132, 91, 119, 102, 120, 107, 112, 125, 95, 112, 121, 116, 119, 110, 100, 121, 104, 114, 116, 111, 117, 125, 93, 113, 120, 120, 105, 120, 121, 118, 111, 114, 115, 112, 115, 112, 127, 129, 123, 112, 112, 113, 109, 110, 111, 112, 111, 105, 121, 105, 114, 118, 124, 126, 116, 114, 117, 121, 117, 106, 131, 121, 114, 115, 107, 120, 103, 105, 101, 112, 122, 105, 120, 129, 111, 119, 118, 105, 115, 106, 106, 128, 124, 84, 113, 128, 112, 121, 119, 106, 107, 150, 112, 118, 110, 116, 106, 107, 111, 119, 112, 123, 114, 120, 118, 126, 123, 123, 127, 111, 110, 127, 133, 110, 102, 115, 101, 116, 116, 103, 108, 120, 116, 118, 120, 103, 114, 114, 119, 115, 124, 106, 109, 108, 113, 113, 119, 107, 127, 122, 123, 112, 113, 115, 111, 109, 116, 113, 129, 106, 115, 130, 110, 120, 122, 121, 100, 129, 128, 114, 125, 118, 115, 117, 118, 110, 107, 114, 104, 111, 131, 117, 118, 120, 112, 112, 116, 116, 112, 121, 116, 119, 115, 113, 112, 124, 113, 107, 111, 127, 113, 109, 115, 117, 101, 119, 117, 112, 123, 118, 130, 111, 123, 92, 123, 127, 124, 123, 120, 123, 127, 120, 114, 116, 99, 98, 116, 95, 114, 126, 134, 108, 119, 113, 115, 119, 128, 110, 121, 119, 114, 110, 126, 115, 116, 109, 104, 99, 113, 125, 113, 121, 113, 124, 123, 115, 94, 105, 115, 106, 116, 129, 121, 109, 129, 118, 119, 125, 127, 107, 119, 123, 120, 111, 118, 109, 133, 111, 107, 117, 127, 114, 116, 118, 154, 108, 125, 122, 115, 107, 117, 110, 115, 120, 111, 113, 116, 116, 127, 123, 109, 119, 106, 124, 118, 108, 93, 116, 142, 110, 122, 119, 120, 117, 126, 109, 126, 106, 116, 116, 108, 110, 106, 116, 127, 96, 104, 112, 107, 105, 116, 125, 120, 107, 118, 118, 116, 119, 115, 107, 111, 121, 107, 119, 125, 122, 107, 110, 116, 108, 123, 133, 131, 106, 118, 119, 122, 134, 127, 130, 122, 116, 111, 135, 128, 137, 102, 112, 96, 116, 126, 113, 116, 97, 120, 123, 103, 111, 102, 96, 122, 116, 113, 116, 108, 151, 129, 101, 111, 108, 122, 112, 100, 114, 124, 107, 129, 118, 113, 115, 119, 95, 128, 115, 120, 110, 112, 112, 137, 117, 119, 115, 103, 99, 117, 116, 112, 109, 105, 136, 115, 125, 113, 110, 136, 112, 112, 114, 120, 114, 114, 119, 129, 117, 121, 117, 110, 110, 113, 91, 111, 104, 114, 101, 117, 110, 107, 111, 111, 106, 111, 122, 137, 97, 104, 99, 118, 107, 110, 107, 123, 116, 104, 114, 102, 109, 111, 122, 112, 116, 109, 128, 104, 111, 115, 104, 121, 118, 130, 116, 117, 121, 116, 116, 114, 126, 112, 124, 114, 138, 111, 111, 110, 120, 108, 101, 113, 125, 105, 118, 108, 116, 113, 123, 112, 117, 110, 119, 111, 135, 115, 115, 114, 106, 104, 117, 116, 107, 123, 111, 103, 136, 109, 124, 117, 116, 110, 113, 114, 118, 109, 109, 101, 127, 137, 106, 105, 107, 91, 137, 135, 119, 117, 115, 118, 136, 99, 111, 128, 122, 110, 106, 128, 132, 100, 122, 121, 116, 96, 107, 105, 126, 96, 124, 108, 128, 116, 111, 112, 109, 119, 116, 110, 129, 126, 118, 134, 111, 122, 111, 121, 112, 116, 117, 128, 123, 112, 121, 103, 108, 121, 106, 115, 124, 122, 98, 124, 110, 84, 103, 129, 115, 114, 137, 112, 123, 123, 111, 117, 118, 115, 114, 126, 117, 109, 111, 112, 115, 103, 125, 107, 114, 123, 114, 132, 109, 93, 116, 120, 104, 118, 129, 128, 116, 127, 103, 122, 130, 105, 114, 126, 128, 137, 118, 124, 114, 111, 110, 112, 117, 117, 126, 123, 107, 124, 119, 120, 120, 119, 123, 113, 122, 117, 123, 110, 124, 117, 108, 113, 98, 112, 119, 108, 99, 129, 124, 105, 119, 116, 128, 121, 119, 122, 107, 114, 117, 116, 120, 119, 133, 137, 102, 106, 109, 111, 114, 112, 120, 120, 110, 118, 121, 121, 109, 115, 115, 134, 126, 99, 120, 113, 131, 123, 106, 123, 128, 118, 132, 113, 127, 123, 107, 118, 122, 121, 128, 108, 104, 125, 110, 122, 117, 118, 110, 102, 111, 104, 110, 94, 102, 104, 115, 113, 106, 110, 112, 110, 110, 128, 106, 124, 84, 111, 127, 119, 118, 119, 112, 106, 103, 106, 119, 112, 105, 124, 102, 110, 117, 106, 106, 128, 114, 114, 120, 109, 120, 106, 107, 129, 117, 115, 103, 113, 124, 114, 112, 121, 113, 114, 110, 112, 103, 121, 112, 116, 115, 121, 113, 111, 135, 126, 106, 115, 110, 116, 110, 105, 131, 92, 129, 105, 115, 112, 114, 119, 108, 116, 105, 116, 115, 117, 135, 114, 117, 113, 109, 137, 131, 113, 121, 109, 125, 118, 117, 154, 113, 119, 108, 115, 109, 128, 127, 109, 108, 121, 119, 133, 118, 99, 106, 107, 108, 111, 122, 115, 115, 100, 114, 108, 110, 95, 118, 124, 120, 117, 125, 105, 110, 119, 106, 109, 118, 110, 129, 98, 109, 151, 139, 94, 107, 112, 115, 112, 118, 133, 101, 121, 115, 114, 122, 106, 118, 92, 108, 115, 114, 100, 117, 102, 112, 111, 97, 106, 112, 112, 113, 128, 111, 102, 130, 115, 123, 124, 114, 123, 123, 123, 118, 119, 128, 113, 118, 111, 113, 111, 119, 122, 125, 111, 120, 112, 133, 125, 92, 108, 108, 107, 118, 118, 123, 120, 112, 111, 108, 120, 128, 108, 102, 131, 116, 142, 115, 100, 126, 120, 122, 123, 125, 99, 121, 109, 117, 113, 112, 113, 111, 120, 117, 124, 115, 97, 112, 113, 116, 107, 126, 115, 110, 114, 116, 113, 111, 130, 102, 109, 115, 121, 104, 125, 126, 122, 124, 127, 116, 105, 114, 115, 121, 104, 101, 119, 119, 118, 145, 119, 119, 118, 114, 115, 111, 122, 104, 130, 129, 112, 123, 117, 110, 110, 114, 95, 109, 117, 114, 114, 103, 122, 125, 129, 104, 125, 104, 128, 119, 106, 120, 126, 108, 118, 116, 121, 114, 103, 108, 110, 109, 127, 123, 115, 112, 126, 109, 122, 131, 97, 103, 100, 123, 106, 98, 116, 119, 126, 117, 99, 104, 120, 113, 97, 127, 107, 122, 117, 109, 117, 133, 125, 112, 121, 117, 124, 116, 107, 116, 120, 125, 112, 131, 118, 121, 111, 131, 107, 116, 131, 108, 119, 141, 125, 119, 124, 131, 139, 117, 122, 96, 99, 127, 107, 150, 136, 101, 115, 111, 129, 108, 103, 98, 126, 125, 116, 104, 115, 107, 97, 106, 105, 118, 108, 115, 129, 120, 106, 115, 119, 98, 121, 120, 117, 119, 103, 110, 115, 104, 121, 106, 116, 122, 116, 120, 112, 98, 116, 122, 109, 119, 119, 108, 121, 122, 111, 114, 125, 113, 103, 120, 124, 110, 114, 102, 107, 130, 115, 124, 116, 127, 151, 123, 112, 130, 100, 112, 118, 111, 126, 121, 134, 110, 113, 112, 121, 126, 107, 114, 115, 115, 114, 109, 114, 122, 123, 110, 109, 109, 119, 109, 114, 109, 117, 120, 105, 112, 109, 122, 116, 119, 129, 114, 125, 110, 108, 126, 95, 129, 127, 128, 123, 134, 109, 112, 128, 129, 111, 120, 109, 108, 115, 111, 121, 101, 119, 119, 119, 119, 112, 105, 116, 124, 103, 122, 131, 123, 109, 112, 119, 115, 105, 115, 119, 102, 109, 114, 114, 122, 98, 110, 114, 105, 110, 104, 123, 105, 117, 123, 123, 123, 122, 118, 106, 116, 112, 118, 116, 128, 116, 117, 111, 125, 111, 113, 107, 109, 103, 119, 114, 131, 107, 115, 119, 120, 114, 111, 108, 119, 115, 119, 114, 118, 94, 116, 104, 103, 105, 120, 95, 130, 114, 93, 113, 109, 96, 113, 102, 120, 114, 110, 104, 109, 123, 122, 107, 108, 128, 123, 110, 120, 111, 106, 125, 103, 111, 104, 123, 125, 131, 115, 111, 126, 115, 114, 118, 107, 118, 123, 122, 119, 106, 104, 102, 118, 124, 117, 120, 91, 123, 126, 126, 117, 106, 119, 128, 116, 114, 126, 118, 102, 108, 115, 115, 104, 115, 112, 104, 106, 112, 113, 119, 112, 111, 113, 120, 105, 127, 101, 99, 130, 113, 119, 107, 112, 113, 111, 120, 104, 106, 106, 102, 117, 122, 121, 127, 112, 111, 102, 130, 118, 106, 112, 106, 115, 96, 111, 107, 116, 104, 113, 123, 133, 112, 124, 101, 125, 112, 126, 105, 121, 123, 121, 123, 134, 113, 134, 120, 121, 125, 110, 123, 118, 114, 105, 116, 114, 115, 116, 133, 120, 142, 113, 122, 113, 114, 110, 119, 119, 106, 130, 109, 120, 100, 91, 120, 116, 127, 95, 119, 111, 113, 103, 118, 96, 116, 122, 115, 153, 130, 110, 143, 109, 138, 93, 96, 125, 115, 105, 116, 110, 105, 124, 112, 106, 137, 116, 118, 131, 114, 138, 121, 108, 115, 77, 104, 113, 128, 107, 106, 118, 123, 111, 107, 108, 122, 112, 113, 117, 129, 107, 100, 118, 127, 118, 101, 102, 112, 114, 122, 108, 111, 95, 102, 113, 120, 108, 127, 122, 131, 117, 120, 108, 115, 123, 115, 125, 147, 101, 107, 144, 131, 109, 115, 118, 125, 126, 119, 127, 125, 118, 108, 116, 115, 120, 105, 110, 105, 121, 137, 111, 115, 115, 124, 111, 110, 121, 121, 138, 115, 118, 103, 122, 134, 108, 103, 103, 118, 103, 105, 121, 118, 104, 117, 125, 120, 113, 105, 126, 125, 123, 115, 114, 110, 105, 125, 123, 118, 123, 127, 110, 119, 108, 103, 134, 111, 92, 111, 129, 121, 108, 106, 105, 119, 114, 111, 104, 127, 137, 135, 122, 119, 120, 107, 104, 116, 125, 123, 92, 98, 113, 112, 108, 129, 111, 136, 117, 112, 112, 124, 113, 105, 110, 124, 118, 116, 122, 113, 99, 122, 112, 101, 134, 118, 120, 133, 106, 101, 152, 138, 105, 116, 131, 120, 119, 104, 126, 110, 108, 112, 116, 110, 118, 129, 109, 108, 119, 114, 113, 153, 108, 119, 123, 111, 104, 155, 133, 110, 123, 106, 120, 94, 112, 130, 111, 114, 115, 107, 117, 108, 143, 120, 117, 103, 132, 119, 98, 134, 112, 133, 125, 130, 120, 118, 108, 129, 132, 118, 127, 116, 97, 111, 109, 113, 110, 112, 108, 133, 111, 126, 120, 115, 129, 99, 111, 110, 109, 107, 124, 117, 112, 119, 108, 106, 101, 126, 120, 112, 97, 117, 134, 126, 130, 106, 116, 108, 125, 103, 118, 90, 103, 112, 98, 118, 110, 119, 104, 119, 122, 154, 114, 114, 104, 122, 110, 115, 123, 120, 112, 125, 102, 112, 101, 112, 111, 112, 140, 110, 112, 113, 126, 121, 79, 112, 114, 122, 105, 118, 104, 110, 134, 119, 138, 147, 102, 117, 119, 111, 106, 121, 119, 111, 128, 123, 112, 111, 98, 134, 114, 121, 122, 115, 118, 123, 108, 149, 108, 108, 116, 112, 110, 124, 105, 127, 112, 131, 110, 141, 129, 119, 112, 100, 129, 118, 127, 109, 113, 115, 119, 118, 123, 119, 108, 138, 114, 126, 126, 112, 114, 95, 104, 113, 98, 124, 106, 106, 99, 123, 106, 104, 113, 120, 122, 121, 108, 125, 102, 125, 124, 139, 119, 117, 125, 102, 138, 117, 128, 135, 103, 128, 128, 111, 107, 134, 113, 104, 119, 107, 103, 102, 128, 120, 126, 123, 117, 108, 106, 98, 137, 113, 122, 102, 113, 111, 147, 93, 115, 123, 140, 110, 105, 91, 119, 121, 115, 133, 110, 113, 131, 107, 128, 120, 105, 153, 116, 111, 104, 108, 114, 111, 114, 117, 121, 141, 111, 127, 123, 114, 114, 126, 100, 114, 109, 113, 102, 115, 114, 100, 126, 116, 124, 123, 100, 102, 126, 95, 122, 121, 105, 112, 113, 113, 115, 124, 124, 109, 118, 116, 112, 112, 126, 120, 113, 117, 121, 111, 115, 111, 112, 118, 112, 115, 125, 115, 117, 124, 121, 114, 131, 124, 121, 108, 110, 117, 112, 110, 111, 120, 112, 125, 115, 107, 116, 119, 113, 114, 130, 114, 122, 113, 111, 121, 117, 109, 122, 116, 117, 116, 133, 124, 111, 120, 120, 100, 106, 121, 112, 122, 121, 123, 114, 112, 113, 119, 115, 117, 120, 116, 123, 115, 117, 127, 120, 118, 124, 107, 115, 116, 125, 125, 121, 112, 108, 123, 113, 128, 123, 125, 109, 123, 109, 116, 118, 121, 128, 117, 118, 120, 116, 101, 114, 112, 115, 118, 106, 119, 120, 124, 122, 115, 130, 120, 113, 106, 121, 114, 109, 120, 119, 119, 124, 110, 95, 117, 119, 120, 117, 131, 100, 115, 118, 116, 115, 122, 112, 128, 123, 124, 114, 116, 111, 118, 109, 119, 120, 114, 128, 109, 117, 123, 121, 111, 118, 131, 98, 116, 116, 113, 118, 126, 113, 105, 111, 122, 123, 116, 116, 104, 121, 111, 124, 119, 99, 126, 112, 116, 106, 103, 122, 101, 122, 120, 112, 101, 124, 102, 110, 116, 104, 120, 120, 114, 115, 131, 122, 114, 112, 118, 120, 120, 120, 113, 107, 119, 108, 113, 107, 105, 114, 116, 121, 111, 117, 119, 124, 120, 117, 106, 123, 125, 122, 105, 117, 116, 109, 120, 116, 105, 124, 121, 118, 107, 121, 115, 120, 122, 116, 108, 119, 114, 117, 121, 139, 115, 117, 110, 123, 137, 129, 109, 111, 119, 119, 121, 104, 127, 110, 105, 123, 121, 116, 113, 120, 113, 127, 127, 124, 112, 122, 108, 105, 115, 123, 115, 115, 124, 108, 106, 110, 108, 120, 120, 115, 110, 110, 124, 116, 113, 122, 116, 124, 125, 117, 107, 113, 114, 91, 120, 118, 115, 132, 111, 126, 103, 119, 119, 118, 115, 116, 117, 126, 121, 114, 108, 115, 112, 121, 117, 112, 120, 114, 115, 121, 111, 115, 120, 115, 122, 129, 113, 108, 106, 126, 116, 119, 122, 123, 113, 112, 120, 119, 111, 108, 115, 108, 120, 133, 120, 111, 118, 118, 115, 119, 124, 119, 103, 116, 123, 118, 134, 116, 110, 111, 113, 103, 108, 104, 125, 111, 111, 115, 85, 119, 112, 123, 109, 116, 123, 124, 122, 118, 121, 125, 102, 127, 112, 118, 110, 106, 125, 118, 110, 118, 112, 121, 115, 109, 111, 112, 110, 117, 110, 129, 117, 109, 115, 124, 123, 124, 122, 111, 113, 115, 107, 115, 118, 114, 124, 138, 123, 123, 120, 109, 107, 108, 117, 97, 123, 114, 116, 128, 129, 109, 109, 111, 110, 119, 128, 110, 112, 115, 125, 122, 116, 113, 112, 112, 124, 119, 116, 113, 111, 128, 115, 118, 194, 110, 105, 118, 109, 115, 110, 115, 105, 118, 126, 113, 114, 121, 108, 108, 117, 114, 125, 113, 107, 110, 109, 119, 116, 114, 123, 126, 116, 99, 115, 114, 130, 111, 117, 111, 113, 119, 118, 107, 115, 108, 112, 116, 93, 100, 130, 108, 116, 114, 109, 112, 105, 122, 103, 98, 118, 114, 122, 118, 117, 114, 111, 119, 113, 110, 114, 113, 109, 122, 122, 104, 129, 95, 102, 108, 126, 106, 92, 126, 100, 111, 129, 120, 150, 105, 112, 122, 110, 114, 113, 109, 117, 105, 116, 118, 117, 123, 103, 113, 107, 122, 122, 134, 116, 108, 108, 123, 132, 120, 99, 110, 112, 117, 108, 109, 105, 105, 123, 122, 119, 119, 124, 118, 122, 121, 105, 110, 112, 144, 113, 128, 109, 126, 122, 110, 111, 125, 126, 125, 111, 110, 106, 113, 102, 109, 106, 104, 119, 121, 123, 105, 109, 117, 123, 126, 116, 97, 122, 113, 124, 128, 113, 109, 107, 115, 106, 116, 108, 109, 115, 105, 120, 119, 120, 94, 108, 114, 116, 123, 119, 98, 111, 123, 116, 115, 133, 107, 127, 115, 122, 109, 120, 119, 118, 119, 121, 127, 127, 122, 106, 117, 120, 111, 109, 137, 119, 98, 121, 112, 112, 121, 119, 130, 127, 111, 109, 150, 106, 107, 112, 123, 118, 119, 114, 96, 97, 112, 118, 107, 113, 116, 115, 115, 115, 118, 121, 109, 112, 121, 133, 125, 110, 151, 127, 109, 111, 122, 118, 123, 108, 113, 119, 107, 128, 115, 123, 118, 113, 104, 109, 108, 117, 121, 118, 126, 114, 101, 95, 121, 113, 121, 108, 105, 125, 112, 118, 122, 123, 105, 114, 111, 102, 99, 115, 124, 134, 120, 118, 97, 132, 106, 115, 115, 134, 106, 102, 92, 118, 111, 112, 115, 101, 135, 123, 109, 138, 103, 119, 108, 133, 113, 112, 126, 126, 126, 127, 120, 99, 124, 113, 120, 111, 114, 94, 105, 124, 137, 111, 110, 123, 117, 115, 117, 109, 127, 115, 106, 94, 121, 106, 121, 115, 137, 117, 162, 103, 100, 111, 120, 121, 123, 118, 123, 121, 126, 120, 100, 107, 108, 118, 133, 123, 111, 129, 118, 104, 116, 126, 110, 107, 115, 111, 112, 123, 124, 108, 118, 118, 124, 104, 122, 109, 109, 131, 121, 123, 125, 96, 104, 118, 101, 119, 109, 133, 163, 82, 115, 121, 122, 109, 120, 121, 112, 130, 124, 108, 126, 108, 115, 123, 126, 124, 102, 118, 110, 113, 112, 115, 113, 96, 113, 112, 107, 110, 115, 106, 148, 128, 107, 103, 103, 111, 118, 111, 106, 119, 120, 122, 117, 113, 108, 115, 114, 119, 118, 115, 110, 83, 102, 111, 102, 119, 110, 110, 109, 122, 112, 112, 134, 102, 105, 106, 124, 121, 117, 122, 116, 109, 106, 122, 118, 112, 109, 133, 113, 115, 105, 120, 112, 116, 115, 100, 103, 116, 108, 123, 112, 93, 111, 118, 117, 119, 127, 122, 102, 116, 118, 119, 116, 114, 146, 129, 124, 141, 119, 141, 114, 127, 119, 116, 115, 115, 111, 123, 113, 125, 114, 114, 118, 110, 132, 106, 114, 112, 114, 108, 81, 114, 104, 125, 122, 98, 115, 122, 106, 117, 134, 120, 104, 123, 118, 114, 107, 109, 113, 96, 115, 124, 103, 116, 109, 108, 95, 113, 125, 135, 122, 122, 114, 116, 144, 119, 112, 116, 113, 127, 120, 135, 116, 113, 117, 114, 104, 99, 132, 106, 138, 112, 119, 113, 105, 120, 125, 102, 123, 136, 123, 127, 120, 113, 117, 113, 97, 122, 108, 111, 113, 121, 110, 118, 116, 108, 112, 99, 123, 112, 111, 117, 123, 136, 113, 111, 102, 100, 118, 104, 106, 111, 121, 128, 107, 117, 141, 126, 100, 112, 110, 109, 119, 113, 111, 105, 118, 117, 120, 125, 111, 130, 99, 122, 104, 107, 126, 118, 109, 100, 115, 115, 107, 123, 116, 117, 126, 111, 114, 112, 148, 113, 105, 128, 122, 127, 110, 120, 128, 104, 107, 113, 107, 122, 105, 126, 135, 130, 134, 106, 111, 125, 112, 118, 127, 116, 131, 124, 126, 104, 109, 125, 119, 111, 134, 102, 120, 127, 111, 119, 109, 121, 113, 100, 119, 104, 132, 119, 109, 101, 109, 107, 117, 109, 119, 109, 122, 113, 113, 116, 117, 129, 137, 114, 105, 109, 122, 130, 135, 118, 115, 100, 126, 109, 113, 123, 103, 130, 114, 129, 111, 142, 106, 105, 117, 103, 115, 108, 114, 115, 99, 105, 107, 113, 103, 104, 101, 119, 111, 95, 118, 123, 113, 125, 124, 117, 106, 117, 104, 117, 116, 116, 124, 112, 124, 109, 146, 126, 122, 118, 109, 116, 116, 130, 108, 120, 120, 102, 113, 128, 117, 116, 123, 108, 119, 124, 121, 133, 120, 118, 110, 113, 132, 119, 120, 123, 120, 109, 115, 122, 121, 130, 121, 123, 119, 114, 103, 121, 114, 112, 127, 109, 120, 124, 136, 112, 106, 115, 110, 110, 112, 114, 142, 115, 120, 117, 109, 117, 126, 95, 126, 108, 117, 124, 108, 117, 133, 119, 112, 119, 124, 106, 132, 115, 112, 115, 113, 108, 118, 116, 106, 125, 123, 120, 112, 112, 139, 116, 114, 131, 123, 109, 118, 117, 124, 105, 119, 110, 103, 103, 124, 112, 118, 93, 114, 96, 107, 121, 114, 111, 125, 121, 113, 109, 129, 119, 103, 138, 124, 120, 116, 104, 119, 114, 128, 120, 113, 120, 138, 109, 114, 99, 120, 124, 113, 124, 115, 112, 120, 117, 111, 136, 118, 111, 121, 123, 125, 105, 109, 105, 120, 104, 118, 122, 106, 114, 116, 119, 107, 100, 119, 109, 113, 113, 121, 113, 115, 115, 113, 116, 121, 120, 121, 110, 115, 124, 109, 116, 121, 116, 116, 111, 114, 111, 116, 116, 103, 107, 105, 111, 127, 110, 108, 112, 113, 104, 114, 119, 128, 117, 112, 103, 110, 112, 110, 145, 134, 106, 131, 104, 123, 125, 101, 109, 105, 106, 120, 124, 123, 117, 109, 113, 117, 127, 123, 116, 126, 117, 115, 101, 124, 112, 102, 117, 135, 120, 99, 131, 121, 116, 128, 105, 138, 112, 119, 87, 109, 118, 112, 111, 117, 124, 113, 104, 116, 122, 104, 113, 106, 97, 109, 108, 102, 109, 108, 94, 141, 111, 114, 112, 121, 107, 116, 130, 120, 113, 112, 104, 125, 133, 113, 116, 137, 117, 116, 136, 117, 110, 129, 128, 112, 103, 116, 116, 110, 122, 116, 122, 104, 124, 115, 119, 121, 111, 119, 106, 112, 126, 115, 124, 120, 104, 114, 112, 109, 121, 129, 116, 157, 118, 113, 117, 115, 111, 117, 120, 122, 114, 95, 105, 125, 110, 113, 116, 96, 114, 112, 109, 116, 108, 114, 112, 122, 109, 121, 118, 115, 84, 129, 121, 110, 117, 112, 126, 112, 117, 117, 117, 140, 125, 121, 117, 120, 115, 118, 121, 140, 111, 119, 115, 121, 112, 116, 112, 128, 113, 114, 117, 126, 110, 162, 121, 145, 128, 96, 112, 110, 126, 113, 116, 124, 116, 91, 119, 120, 116, 113, 114, 117, 124, 112, 116, 93, 117, 115, 125, 116, 122, 124, 124, 116, 111, 108, 122, 113, 114, 121, 117, 112, 137, 114, 105, 91, 106, 113, 128, 115, 118, 118, 116, 116, 115, 118, 116, 121, 119, 105, 124, 125, 117, 113, 115, 117, 114, 115, 119, 119, 111, 115, 108, 123, 114, 114, 122, 102, 111, 116, 120, 109, 111, 122, 110, 114, 117, 118, 121, 111, 111, 115, 112, 113, 108, 115, 125, 127, 118, 105, 118, 117, 117, 111, 105, 132, 117, 112, 92, 122, 112, 116, 109, 119, 113, 110, 97, 112, 120, 117, 110, 115, 111, 99, 105, 119, 116, 112, 112, 116, 131, 112, 116, 119, 135, 122, 116, 117, 116, 123, 119, 111, 116, 121, 117, 115, 114, 120, 120, 109, 109, 112, 114, 118, 108, 135, 119, 118, 112, 115, 115, 105, 122, 120, 130, 120, 105, 123, 124, 116, 118, 117, 109, 116, 119, 116, 116, 114, 117, 119, 110, 108, 121, 120, 119, 131, 128, 121, 123, 111, 122, 114, 120, 114, 115, 117, 126, 128, 115, 122, 115, 87, 108, 114, 117, 113, 116, 114, 104, 125, 117, 109, 117, 120, 120, 118, 111, 88, 114, 114, 114, 110, 113, 120, 117, 109, 102, 122, 112, 117, 121, 112, 118, 122, 118, 113, 116, 140, 119, 113, 109, 103, 116, 122, 118, 94, 114, 120, 112, 115, 145, 111, 116, 115, 120, 110, 113, 116, 111, 118, 122, 121, 109, 116, 114, 115, 114, 122, 116, 132, 107, 122, 113, 115, 113, 128, 117, 119, 115, 86, 114, 116, 112, 117, 118, 120, 115, 108, 122, 119, 117, 118, 107, 113, 102, 115, 119, 108, 106, 111, 124, 121, 116, 91, 111, 113, 117, 97, 116, 115, 113, 105, 126, 115, 112, 125, 105, 70, 112, 110, 113, 112, 111, 120, 114, 116, 102, 136, 128, 110, 117, 108, 113, 106, 113, 117, 120, 116, 114, 112, 125, 128, 123, 110, 114, 113, 99, 110, 121, 109, 122, 119, 102, 119, 120, 113, 85, 117, 112, 112, 117, 114, 118, 109, 109, 116, 120, 119, 112, 132, 122, 112, 106, 131, 115, 107, 119, 102, 123, 114, 110, 112, 108, 113, 115, 114, 107, 102, 115, 115, 108, 109, 117, 145, 121, 117, 92, 109, 116, 132, 117, 117, 113, 110, 122, 117, 116, 123, 120, 109, 121, 116, 114, 118, 111, 115, 111, 118, 110, 119, 117, 110, 126, 109, 123, 142, 108, 126, 118, 127, 119, 121, 116, 104, 119, 118, 117, 110, 121, 118, 118, 118, 127, 111, 116, 106, 100, 115, 123, 115, 130, 114, 113, 141, 136, 111, 117, 117, 106, 121, 117, 123, 100, 122, 113, 102, 137, 118, 124, 104, 110, 116, 126, 113, 101, 125, 114, 121, 167, 115, 118, 112, 106, 116, 137, 118, 118, 105, 124, 114, 121, 105, 116, 115, 115, 122, 122, 110, 109, 124, 107, 123, 116, 118, 118, 119, 118, 117, 114, 99, 122, 117, 130, 126, 113, 162, 128, 120, 111, 112, 138, 110, 125, 125, 117, 122, 118, 102, 115, 114, 134, 105, 106, 104, 115, 120, 114, 97, 117, 122, 99, 113, 102, 137, 107, 101, 122, 116, 128, 114, 126, 116, 126, 116, 115, 116, 107, 110, 117, 115, 112, 131, 114, 128, 106, 107, 122, 123, 86, 123, 116, 132, 109, 115, 105, 109, 96, 127, 118, 117, 127, 114, 123, 117, 108, 125, 124, 103, 135, 113, 124, 113, 126, 119, 120, 124, 126, 113, 121, 110, 104, 110, 111, 118, 95, 106, 120, 112, 104, 111, 125, 127, 114, 123, 109, 119, 113, 126, 126, 104, 102, 117, 101, 119, 130, 122, 127, 117, 105, 109, 101, 130, 132, 117, 111, 118, 124, 115, 107, 116, 107, 115, 137, 117, 110, 105, 105, 119, 117, 105, 120, 136, 118, 115, 125, 110, 103, 112, 121, 110, 115, 119, 122, 96, 118, 123, 117, 130, 125, 125, 119, 106, 120, 130, 105, 109, 144, 119, 142, 112, 128, 120, 111, 127, 117, 109, 111, 124, 122, 115, 120, 109, 110, 109, 110, 112, 117, 79, 114, 103, 120, 105, 123, 109, 108, 115, 112, 105, 107, 124, 122, 126, 116, 115, 129, 129, 117, 123, 125, 118, 117, 114, 114, 125, 138, 100, 112, 119, 112, 100, 112, 127, 115, 124, 103, 124, 115, 110, 116, 117, 123, 108, 115, 157, 120, 114, 116, 103, 124, 124, 128, 126, 104, 126, 118, 95, 105, 121, 117, 116, 105, 99, 115, 99, 114, 117, 96, 107, 113, 123, 110, 110, 125, 122, 103, 116, 117, 89, 115, 109, 99, 112, 109, 125, 115, 116, 126, 106, 122, 116, 120, 114, 112, 122, 115, 104, 109, 122, 119, 133, 114, 123, 112, 124, 120, 135, 124, 115, 120, 146, 112, 106, 122, 127, 107, 116, 98, 116, 106, 109, 128, 118, 113, 116, 134, 111, 110, 144, 93, 99, 117, 107, 114, 111, 120, 124, 117, 109, 138, 125, 117, 116, 122, 118, 116, 120, 163, 135, 116, 116, 124, 132, 122, 117, 110, 118, 103, 115, 112, 119, 105, 107, 113, 118, 97, 113, 121, 115, 113, 101, 99, 126, 116, 119, 118, 117, 128, 117, 135, 103, 124, 90, 112, 112, 115, 100, 124, 106, 113, 123, 110, 120, 103, 118, 117, 125, 105, 110, 109, 119, 117, 106, 130, 119, 127, 112, 117, 126, 124, 114, 99, 115, 113, 108, 113, 103, 112, 111, 111, 103, 137, 118, 125, 126, 119, 150, 116, 102, 119, 110, 110, 117, 103, 104, 122, 99, 121, 98, 115, 100, 127, 109, 123, 119, 125, 106, 123, 118, 111, 124, 113, 115, 107, 120, 112, 124, 111, 125, 108, 103, 119, 123, 111, 123, 110, 123, 120, 106, 102, 112, 125, 108, 113, 121, 100, 124, 131, 118, 99, 117, 111, 109, 112, 105, 114, 107, 127, 114, 122, 114, 111, 123, 124, 111, 126, 129, 112, 114, 112, 103, 111, 115, 119, 121, 113, 110, 68, 117, 126, 112, 107, 105, 112, 105, 115, 107, 107, 127, 111, 119, 122, 110, 105, 107, 120, 110, 106, 119, 113, 113, 109, 143, 109, 109, 117, 127, 117, 101, 128, 117, 102, 125, 118, 144, 110, 109, 118, 113, 114, 98, 122, 121, 117, 129, 110, 115, 121, 108, 110, 96, 115, 123, 114, 111, 129, 116, 113, 110, 110, 85, 111, 124, 109, 120, 111, 107, 114, 97, 115, 101, 111, 133, 121, 111, 125, 112, 114, 121, 113, 125, 123, 131, 122, 111, 133, 104, 118, 125, 102, 112, 111, 92, 113, 112, 125, 117, 111, 120, 112, 115, 122, 129, 114, 116, 128, 123, 107, 125, 125, 108, 134, 104, 104, 109, 119, 129, 111, 117, 125, 111, 114, 126, 105, 113, 115, 119, 104, 116, 120, 115, 150, 95, 112, 107, 114, 112, 125, 130, 78, 126, 101, 112, 123, 112, 120, 113, 124, 124, 110, 121, 114, 104, 128, 124, 123, 108, 116, 117, 129, 107, 120, 114, 108, 117, 127, 117, 119, 124, 110, 97, 124, 101, 115, 125, 121, 111, 96, 107, 122, 109, 101, 114, 105, 118, 128, 118, 113, 129, 100, 103, 112, 114, 104, 128, 103, 123, 108, 108, 109, 119, 113, 115, 93, 115, 123, 127, 112, 107, 119, 106, 106, 105, 115, 120, 112, 106, 88, 104, 118, 105, 107, 112, 111, 123, 100, 116, 106, 183, 120, 101, 117, 115, 116, 116, 121, 114, 131, 113, 107, 121, 110, 125, 131, 114, 103, 112, 104, 114, 122, 133, 118, 109, 113, 121, 117, 129, 116, 125, 115, 114, 132, 120, 111, 122, 98, 133, 111, 128, 64, 120, 117, 117, 108, 116, 141, 118, 119, 133, 120, 134, 115, 127, 103, 200, 112, 118, 123, 117, 140, 132, 108, 100, 119, 92, 117, 117, 129, 110, 128, 107, 117, 113, 115, 117, 127, 121, 110, 110, 135, 106, 114, 104, 117, 110, 107, 126, 118, 127, 105, 106, 119, 143, 107, 117, 113, 110, 137, 129, 121, 113, 158, 106, 116, 111, 119, 109, 126, 112, 105, 108, 127, 111, 114, 116, 111, 110, 116, 112, 103, 108, 122, 115, 116, 121, 114, 113, 119, 123, 109, 117, 121, 113, 117, 113, 116, 112, 84, 111, 109, 124, 113, 112, 107, 116, 107, 128, 115, 105, 110, 114, 110, 114, 115, 117, 107, 107, 120, 135, 106, 127, 105, 123, 130, 107, 111, 123, 114, 127, 120, 120, 116, 119, 103, 109, 96, 136, 113, 110, 105, 122, 126, 120, 120, 119, 127, 111, 103, 113, 110, 116, 115, 120, 124, 119, 118, 113, 114, 101, 112, 115, 98, 113, 116, 109, 110, 123, 127, 110, 113, 111, 110, 122, 118, 107, 117, 119, 113, 107, 110, 120, 106, 98, 107, 134, 120, 118, 103, 123, 119, 105, 120, 115, 125, 121, 118, 148, 137, 117, 119, 141, 129, 108, 130, 113, 128, 108, 116, 118, 108, 128, 112, 103, 130, 116, 120, 96, 143, 120, 110, 108, 120, 106, 124, 130, 106, 105, 115, 115, 118, 116, 120, 103, 138, 109, 111, 130, 106, 113, 104, 122, 115, 117, 99, 108, 108, 109, 124, 106, 116, 132, 122, 121, 120, 116, 126, 105, 97, 123, 98, 110, 137, 102, 127, 116, 112, 114, 116, 114, 108, 106, 107, 116, 123, 119, 112, 119, 108, 105, 115, 118, 131, 110, 110, 108, 116, 120, 121, 89, 120, 109, 111, 101, 108, 113, 110, 119, 113, 112, 118, 124, 111, 120, 109, 114, 114, 106, 114, 98, 134, 113, 121, 121, 118, 115, 130, 116, 125, 105, 105, 122, 125, 113, 114, 116, 109, 126, 99, 114, 138, 136, 107, 118, 104, 110, 108, 134, 122, 118, 116, 102, 112, 119, 114, 94, 105, 121, 111, 96, 124, 101, 110, 97, 116, 101, 122, 107, 117, 112, 120, 114, 110, 113, 112, 106, 113, 128, 120, 113, 122, 134, 149, 107, 120, 111, 105, 120, 108, 132, 111, 112, 109, 119, 108, 103, 108, 120, 127, 109, 109, 116, 103, 111, 111, 116, 111, 110, 124, 121, 135, 116, 120, 108, 120, 125, 124, 112, 110, 116, 116, 126, 123, 112, 108, 112, 107, 94, 122, 106, 120, 116, 114, 110, 111, 118, 109, 111, 123, 114, 129, 101, 121, 105, 105, 97, 122, 117, 123, 102, 114, 108, 115, 123, 114, 121, 119, 123, 122, 109, 129, 136, 109, 124, 116, 115, 121, 126, 113, 112, 113, 125, 118, 112, 98, 114, 130, 104, 112, 107, 112, 122, 154, 105, 109, 121, 104, 105, 129, 110, 115, 123, 113, 115, 113, 118, 111, 125, 126, 109, 89, 113, 112, 115, 114, 119, 116, 109, 121, 105, 108, 117, 123, 112, 110, 111, 112, 119, 120, 128, 124, 109, 110, 133, 121, 134, 103, 119, 111, 107, 115, 114, 115, 122, 110, 118, 110, 114, 97, 138, 120, 104, 111, 118, 119, 112, 140, 109, 107, 106, 120, 121, 118, 114, 143, 119, 109, 104, 116, 123, 104, 108, 114, 103, 122, 108, 102, 136, 100, 111, 132, 114, 106, 137, 105, 113, 86, 126, 119, 123, 112, 121, 118, 117, 112, 113, 110, 136, 122, 120, 133, 104, 120, 119, 114, 115, 131, 107, 135, 89, 104, 118, 115, 112, 121, 102, 125, 126, 105, 121, 95, 122, 125, 83, 112, 102, 124, 118, 113, 115, 131, 107, 106, 114, 113, 118, 124, 116, 120, 145, 128, 122, 114, 98, 109, 128, 101, 123, 122, 123, 126, 115, 116, 121, 113, 111, 107, 113, 127, 120, 117, 116, 127, 105, 117, 109, 120, 120, 115, 110, 118, 117, 123, 122, 119, 118, 114, 103, 120, 119, 113, 111, 110, 99, 130, 111, 100, 110, 142, 113, 124, 119, 96, 129, 116, 116, 116, 122, 118, 141, 115, 118, 111, 115, 113, 126, 125, 105, 112, 139, 123, 123, 122, 120, 103, 111, 122, 101, 118, 129, 114, 115, 103, 103, 122, 128, 108, 107, 109, 116, 108, 121, 112, 117, 123, 103, 124, 122, 125, 116, 122, 101, 112, 115, 99, 110, 106, 119, 90, 113, 114, 116, 121, 100, 111, 119, 118, 118, 132, 114, 105, 116, 112, 113, 114, 107, 119, 118, 118, 116, 114, 123, 109, 121, 117, 126, 137, 115, 107, 122, 115, 119, 115, 109, 116, 102, 104, 119, 108, 97, 132, 110, 133, 117, 114, 115, 110, 115, 111, 110, 112, 136, 113, 120, 117, 126, 113, 120, 109, 121, 118, 115, 126, 102, 136, 125, 113, 109, 115, 103, 123, 105, 110, 119, 107, 111, 105, 125, 129, 131, 119, 118, 124, 119, 114, 108, 119, 122, 129, 127, 124, 127, 142, 114, 120, 131, 111, 118, 99, 111, 119, 115, 117, 113, 125, 113, 114, 110, 114, 120, 121, 105, 120, 109, 118, 110, 109, 118, 119, 98, 108, 110, 103, 127, 105, 128, 118, 103, 106, 107, 132, 110, 111, 114, 113, 115, 120, 126, 122, 121, 115, 154, 134, 116, 109, 122, 109, 107, 107, 121, 103, 113, 126, 100, 137, 104, 105, 117, 108, 114, 106, 108, 137, 103, 126, 117, 120, 107, 130, 110, 117, 112, 135, 107, 107, 113, 117, 106, 131, 119, 164, 115, 119, 109, 129, 104, 127, 111, 88, 114, 115, 115, 112, 122, 113, 113, 126, 110, 114, 114, 113, 111, 109, 109, 124, 108, 127, 105, 110, 114, 138, 118, 112, 129, 113, 96, 110, 105, 106, 130, 104, 109, 123, 126, 121, 121, 126, 124, 119, 104, 118, 129, 111, 108, 108, 121, 110, 107, 134, 117, 121, 106, 125, 123, 101, 119, 124, 98, 122, 112, 143, 120, 103, 114, 125, 121, 120, 110, 139, 114, 109, 114, 113, 124, 114, 119, 118, 111, 128, 130, 119, 122, 115, 127, 111, 114, 114, 121, 110, 121, 114, 127, 117, 120, 115, 123, 116, 116, 115, 112, 124, 131, 121, 117, 120, 113, 130, 116, 104, 106, 118, 123, 141, 124, 115, 120, 109, 109, 117, 115, 119, 115, 104, 131, 134, 110, 101, 118, 119, 123, 120, 104, 97, 116, 110, 117, 113, 117, 110, 104, 112, 102, 120, 116, 113, 123, 113, 115, 113, 116, 130, 104, 112, 112, 105, 120, 109, 109, 113, 111, 121, 112, 120, 129, 108, 119, 117, 118, 96, 105, 109, 109, 132, 121, 97, 120, 113, 113, 114, 102, 123, 133, 132, 115, 103, 116, 65, 114, 114, 116, 110, 129, 120, 132, 109, 126, 109, 122, 121, 118, 116, 99, 119, 110, 118, 111, 116, 98, 116, 140, 118, 117, 117, 109, 126, 113, 113, 112, 119, 117, 118, 102, 101, 131, 109, 120, 118, 130, 116, 114, 111, 102, 121, 122, 113, 123, 108, 105, 96, 111, 111, 111, 104, 119, 114, 100, 114, 119, 116, 113, 116, 122, 117, 116, 117, 127, 116, 114, 116, 118, 122, 103, 121, 117, 113, 109, 119, 110, 117, 109, 123, 122, 114, 129, 113, 123, 124, 105, 120, 127, 122, 112, 142, 116, 112, 129, 122, 119, 126, 114, 113, 125, 105, 111, 98, 109, 131, 130, 105, 111, 123, 117, 94, 110, 119, 115, 111, 111, 108, 105, 107, 113, 104, 120, 108, 119, 126, 116, 119, 115, 109, 108, 123, 116, 126, 130, 99, 117, 108, 118, 126, 115, 115, 115, 112, 124, 120, 107, 118, 131, 122, 109, 118, 107, 113, 120, 116, 114, 107, 102, 124, 117, 124, 131, 119, 105, 125, 109, 101, 122, 126, 122, 131, 121, 135, 108, 113, 121, 115, 112, 123, 128, 123, 124, 132, 113, 102, 111, 137, 127, 124, 106, 128, 120, 122, 123, 94, 116, 119, 122, 111, 103, 110, 140, 112, 110, 121, 135, 126, 106, 120, 114, 100, 120, 112, 112, 129, 111, 122, 115, 124, 119, 109, 114, 121, 118, 116, 111, 114, 122, 119, 117, 122, 109, 128, 101, 109, 130, 135, 107, 124, 128, 124, 131, 107, 102, 129, 112, 113, 111, 113, 115, 113, 119, 116, 109, 111, 116, 100, 110, 120, 119, 114, 107, 112, 122, 107, 123, 128, 119, 123, 109, 114, 126, 117, 124, 127, 117, 125, 122, 113, 124, 117, 107, 112, 114, 117, 115, 115, 117, 114, 116, 102, 117, 104, 109, 121, 107, 114, 127, 119, 108, 121, 120, 115, 118, 115, 104, 108, 119, 113, 128, 126, 114, 113, 114, 105, 130, 125, 109, 137, 108, 125, 111, 110, 118, 111, 126, 112, 119, 129, 98, 114, 121, 116, 100, 108, 115, 123, 110, 121, 138, 116, 111, 118, 118, 110, 118, 149, 98, 112, 127, 122, 108, 115, 140, 121, 118, 120, 119, 106, 96, 114, 113, 101, 108, 122, 101, 127, 117, 111, 119, 115, 111, 113, 127, 109, 117, 92, 130, 122, 119, 114, 105, 108, 117, 115, 120, 113, 102, 119, 114, 111, 109, 118, 107, 126, 131, 116, 118, 123, 99, 116, 125, 99, 117, 104, 115, 112, 106, 121, 120, 126, 125, 108, 125, 108, 108, 122, 109, 107, 123, 113, 135, 113, 109, 118, 109, 128, 102, 120, 100, 123, 107, 105, 110, 126, 113, 104, 129, 119, 106, 127, 143, 103, 125, 126, 115, 110, 125, 105, 125, 123, 122, 94, 127, 92, 115, 117, 116, 132, 110, 122, 120, 125, 116, 125, 111, 104, 134, 107, 115, 121, 101, 102, 117, 116, 97, 115, 120, 117, 106, 118, 115, 131, 111, 114, 115, 121, 107, 121, 122, 131, 106, 116, 112, 109, 111, 118, 112, 120, 89, 102, 119, 113, 121, 125, 125, 121, 121, 106, 127, 130, 120, 111, 121, 117, 160, 116, 108, 116, 117, 118, 155, 110, 133, 112, 124, 117, 119, 121, 120, 122, 127, 111, 105, 147, 113, 119, 89, 113, 123, 126, 111, 118, 107, 134, 119, 122, 121, 105, 130, 109, 115, 141, 126, 95, 116, 108, 125, 102, 108, 118, 122, 116, 113, 112, 123, 109, 114, 110, 128, 127, 131, 109, 118, 117, 115, 113, 124, 124, 119, 121, 129, 108, 119, 122, 110, 99, 101, 121, 112, 105, 123, 125, 116, 114, 113, 117, 119, 129, 121, 117, 126, 112, 123, 125, 115, 126, 107, 120, 115, 124, 134, 120, 136, 100, 106, 106, 111, 107, 126, 131, 116, 114, 126, 125, 116, 128, 109, 124, 132, 124, 121, 115, 110, 108, 130, 113, 100, 117, 120, 108, 127, 108, 125, 103, 128, 123, 117, 129, 105, 116, 113, 111, 109, 117, 108, 154, 99, 116, 119, 112, 125, 134, 113, 114, 114, 129, 101, 117, 131, 110, 119, 113, 120, 123, 113, 113, 130, 109, 110, 112, 128, 119, 122, 121, 124, 112, 126, 109, 107, 127, 113, 106, 112, 119, 114, 116, 122, 111, 114, 117, 120, 120, 113, 129, 133, 129, 117, 117, 112, 118, 120, 113, 129, 106, 113, 112, 108, 117, 118, 119, 122, 117, 122, 97, 114, 122, 124, 117, 113, 122, 110, 101, 118, 110, 111, 117, 110, 117, 130, 110, 122, 128, 123, 115, 124, 133, 115, 114, 120, 111, 116, 112, 114, 119, 109, 118, 117, 120, 121, 120, 120, 107, 103, 109, 122, 114, 109, 126, 112, 125, 115, 121, 106, 108, 121, 110, 113, 128, 116, 120, 122, 85, 115, 114, 113, 97, 116, 110, 118, 105, 102, 123, 118, 118, 110, 122, 127, 106, 101, 113, 110, 114, 126, 127, 111, 118, 114, 115, 119, 130, 124, 111, 112, 115, 111, 113, 128, 120, 122, 124, 123, 105, 109, 105, 112, 123, 102, 121, 112, 104, 119, 118, 120, 128, 122, 126, 118, 126, 123, 114, 122, 110, 124, 108, 123, 120, 116, 119, 135, 112, 117, 107, 108, 113, 124, 114, 142, 113, 111, 121, 111, 119, 121, 127, 110, 106, 114, 117, 116, 117, 124, 116, 123, 125, 119, 113, 112, 102, 116, 115, 105, 111, 111, 116, 118, 120, 105, 122, 116, 115, 115, 115, 102, 111, 113, 111, 131, 110, 128, 116, 110, 117, 111, 111, 113, 110, 120, 123, 118, 112, 103, 113, 114, 101, 110, 108, 117, 123, 120, 117, 127, 116, 110, 134, 123, 106, 130, 108, 128, 105, 129, 124, 111, 94, 116, 130, 125, 108, 102, 125, 120, 119, 120, 113, 118, 103, 107, 114, 117, 124, 122, 116, 114, 103, 132, 117, 114, 113, 123, 116, 119, 119, 115, 107, 117, 119, 118, 104, 118, 98, 110, 114, 96, 130, 121, 110, 100, 100, 121, 110, 113, 144, 121, 121, 111, 122, 112, 124, 112, 125, 114, 117, 117, 117, 123, 111, 119, 123, 124, 111, 105, 111, 123, 112, 119, 101, 104, 113, 116, 108, 105, 131, 131, 117, 104, 116, 115, 117, 134, 124, 104, 114, 124, 106, 104, 108, 150, 119, 120, 108, 154, 107, 105, 123, 114, 126, 120, 116, 117, 111, 116, 125, 102, 115, 126, 111, 109, 123, 122, 115, 120, 113, 115, 119, 135, 101, 119, 116, 124, 106, 111, 106, 106, 128, 117, 127, 116, 112, 118, 126, 120, 108, 99, 122, 107, 110, 106, 106, 120, 105, 118, 119, 101, 119, 112, 126, 109, 98, 114, 108, 111, 102, 126, 131, 119, 115, 120, 121, 111, 123, 110, 109, 120, 118, 116, 125, 123, 106, 113, 117, 112, 120, 117, 119, 120, 115, 122, 115, 117, 117, 115, 124, 116, 117, 126, 113, 117, 109, 118, 118, 109, 114, 116, 117, 126, 122, 119, 116, 114, 115, 116, 115, 119, 119, 118, 111, 121, 117, 118, 125, 127, 112, 112, 110, 121, 111, 116, 119, 110, 131, 113, 115, 124, 127, 108, 112, 119, 116, 111, 119, 117, 115, 114, 111, 108, 145, 112, 121, 120, 110, 115, 133, 113, 118, 116, 117, 122, 113, 111, 117, 109, 115, 122, 113, 106, 118, 133, 113, 116, 115, 122, 112, 116, 108, 109, 118, 138, 113, 115, 115, 106, 116, 107, 123, 101, 126, 115, 116, 118, 108, 121, 159, 121, 111, 117, 111, 115, 122, 120, 114, 108, 114, 108, 117, 108, 117, 116, 125, 109, 113, 115, 123, 117, 114, 119, 125, 113, 120, 115, 114, 121, 119, 123, 106, 120, 117, 110, 112, 116, 115, 118, 105, 116, 116, 132, 113, 120, 118, 102, 119, 118, 103, 114, 116, 114, 116, 110, 112, 117, 120, 109, 119, 97, 109, 119, 116, 111, 117, 110, 122, 116, 116, 115, 114, 119, 116, 111, 121, 106, 116, 115, 116, 116, 111, 109, 98, 123, 121, 117, 106, 112, 116, 117, 122, 120, 112, 129, 106, 112, 118, 118, 118, 115, 117, 113, 117, 121, 119, 110, 115, 113, 120, 117, 114, 111, 115, 117, 114, 114, 115, 123, 109, 115, 118, 119, 114, 126, 112, 134, 110, 123, 118, 117, 118, 119, 125, 116, 124, 111, 117, 122, 129, 119, 118, 119, 118, 105, 106, 119, 113, 122, 115, 110, 126, 119, 107, 112, 110, 146, 117, 119, 128, 118, 118, 116, 116, 125, 113, 113, 119, 103, 116, 116, 111, 125, 130, 122, 118, 120, 118, 112, 112, 107, 114, 119, 120, 125, 120, 115, 109, 107, 112, 118, 117, 112, 141, 118, 101, 115, 112, 114, 121, 122, 118, 128, 113, 110, 112, 104, 121, 131, 122, 117, 119, 121, 116, 105, 91, 104, 118, 111, 119, 120, 130, 105, 116, 134, 138, 119, 115, 110, 115, 116, 135, 118, 111, 114, 119, 100, 109, 91, 98, 122, 117, 118, 116, 108, 115, 138, 114, 102, 117, 100, 115, 118, 114, 111, 116, 122, 114, 138, 114, 119, 114, 122, 115, 111, 102, 109, 114, 114, 113, 115, 115, 110, 113, 120, 117, 118, 118, 113, 119, 116, 119, 114, 120, 118, 130, 136, 116, 114, 112, 119, 117, 122, 117, 118, 121, 118, 92, 109, 117, 107, 114, 112, 114, 120, 118, 121, 122, 112, 115, 111, 116, 110, 109, 119, 114, 114, 111, 115, 111, 119, 118, 114, 113, 109, 113, 99, 98, 115, 114, 117, 120, 121, 115, 119, 123, 116, 112, 120, 114, 124, 127, 116, 120, 121, 122, 113, 113, 121, 122, 122, 111, 113, 120, 116, 118, 120, 116, 113, 113, 117, 115, 112, 125, 117, 125, 118, 126, 104, 121, 105, 106, 112, 120, 121, 118, 118, 115, 111, 139, 115, 117, 121, 111, 119, 111, 119, 112, 122, 105, 116, 119, 130, 115, 108, 111, 120, 112, 137, 122, 117, 96, 128, 109, 105, 119, 104, 113, 124, 118, 122, 118, 109, 109, 126, 128, 115, 111, 110, 101, 117, 102, 135, 148, 111, 120, 121, 118, 131, 126, 110, 120, 116, 124, 116, 110, 128, 123, 114, 121, 112, 121, 116, 148, 120, 118, 110, 136, 120, 116, 113, 113, 119, 115, 117, 112, 134, 102, 121, 113, 109, 108, 118, 142, 120, 117, 125, 105, 109, 125, 122, 111, 110, 106, 121, 100, 115, 120, 113, 119, 117, 107, 117, 105, 121, 125, 122, 127, 110, 106, 117, 122, 96, 97, 117, 121, 112, 124, 117, 121, 117, 110, 112, 117, 119, 122, 116, 139, 121, 119, 126, 119, 114, 124, 104, 129, 107, 112, 109, 107, 117, 113, 107, 124, 134, 114, 131, 104, 125, 110, 105, 118, 107, 115, 122, 132, 113, 111, 122, 110, 120, 112, 107, 115, 108, 109, 105, 140, 141, 97, 100, 116, 129, 117, 115, 116, 126, 131, 120, 120, 99, 114, 104, 113, 115, 114, 122, 106, 115, 129, 114, 106, 116, 112, 116, 118, 115, 105, 100, 122, 105, 109, 117, 109, 125, 121, 102, 109, 107, 122, 125, 115, 123, 118, 110, 125, 122, 114, 123, 115, 119, 124, 113, 113, 103, 105, 122, 105, 106, 121, 100, 94, 116, 116, 114, 115, 111, 108, 136, 114, 115, 110, 121, 113, 106, 122, 114, 129, 115, 95, 118, 110, 111, 123, 113, 108, 116, 118, 120, 124, 112, 113, 120, 120, 115, 119, 104, 129, 119, 104, 80, 102, 116, 128, 122, 118, 117, 121, 107, 116, 107, 122, 110, 128, 96, 123, 112, 108, 120, 115, 121, 112, 120, 124, 135, 103, 134, 109, 112, 122, 114, 112, 137, 113, 109, 116, 120, 120, 119, 126, 110, 116, 118, 129, 103, 107, 115, 108, 109, 115, 114, 107, 100, 116, 122, 112, 124, 118, 114, 111, 114, 113, 117, 105, 109, 114, 107, 112, 104, 115, 112, 115, 106, 116, 102, 112, 119, 122, 112, 110, 116, 99, 120, 115, 119, 114, 127, 121, 128, 117, 121, 115, 99, 100, 112, 126, 126, 108, 121, 121, 119, 110, 107, 114, 129, 121, 106, 106, 115, 118, 111, 124, 108, 114, 114, 111, 109, 128, 115, 125, 113, 108, 109, 116, 97, 114, 117, 124, 108, 100, 107, 125, 111, 115, 127, 123, 114, 131, 105, 123, 117, 100, 95, 118, 125, 107, 98, 120, 130, 113, 120, 105, 102, 124, 115, 116, 121, 113, 114, 111, 128, 118, 113, 133, 123, 128, 124, 114, 98, 113, 127, 112, 103, 114, 123, 119, 133, 117, 139, 110, 113, 119, 113, 125, 98, 124, 107, 110, 118, 110, 112, 151, 115, 118, 116, 113, 120, 109, 130, 117, 114, 102, 111, 115, 135, 111, 117, 125, 120, 129, 118, 117, 106, 121, 110, 113, 123, 118, 117, 126, 94, 104, 111, 122, 121, 109, 118, 120, 124, 128, 131, 122, 106, 116, 123, 110, 112, 112, 132, 114, 106, 116, 111, 126, 149, 111, 119, 115, 110, 108, 98, 116, 105, 105, 120, 117, 113, 109, 110, 115, 121, 114, 120, 117, 114, 122, 118, 106, 115, 112, 119, 109, 116, 111, 133, 114, 117, 113, 112, 127, 120, 109, 108, 113, 115, 95, 111, 113, 130, 83, 116, 114, 116, 111, 106, 104, 113, 108, 101, 140, 115, 124, 118, 119, 120, 127, 117, 116, 104, 103, 124, 117, 115, 103, 115, 120, 123, 114, 118, 117, 116, 118, 114, 118, 109, 108, 113, 124, 119, 115, 85, 103, 110, 116, 107, 122, 108, 99, 116, 113, 111, 103, 115, 102, 118, 115, 104, 112, 114, 131, 107, 115, 113, 119, 126, 120, 115, 114, 119, 104, 123, 114, 122, 125, 118, 110, 110, 113, 121, 115, 111, 122, 125, 117, 115, 127, 109, 113, 117, 113, 126, 97, 115, 120, 120, 110, 103, 114, 112, 113, 101, 123, 116, 116, 113, 116, 107, 114, 114, 117, 122, 110, 118, 116, 125, 114, 116, 115, 118, 115, 124, 116, 120, 120, 103, 114, 110, 110, 121, 114, 107, 120, 101, 121, 111, 115, 103, 127, 108, 121, 121, 118, 123, 115, 125, 105, 94, 111, 114, 114, 112, 117, 108, 120, 113, 112, 124, 116, 125, 111, 107, 122, 119, 109, 110, 124, 116, 104, 109, 112, 116, 115, 103, 110, 111, 121, 110, 112, 113, 109, 113, 107, 104, 119, 105, 116, 113, 113, 125, 115, 118, 120, 114, 106, 112, 107, 112, 118, 113, 112, 110, 109, 111, 129, 116, 116, 118, 116, 117, 125, 117, 117, 122, 128, 113, 117, 109, 114, 123, 105, 109, 108, 127, 117, 116, 105, 116, 116, 132, 107, 125, 125, 121, 121, 110, 112, 107, 103, 111, 112, 113, 121, 116, 101, 114, 120, 118, 114, 121, 119, 119, 122, 128, 124, 110, 117, 114, 105, 129, 110, 108, 109, 131, 115, 119, 111, 127, 109, 125, 122, 123, 116, 118, 111, 110, 131, 123, 116, 113, 120, 120, 115, 109, 107, 109, 114, 123, 104, 113, 110, 118, 113, 118, 120, 124, 140, 124, 123, 115, 111, 107, 115, 119, 119, 127, 112, 138, 122, 121, 104, 115, 117, 124, 104, 120, 100, 122, 101, 117, 120, 145, 96, 118, 118, 115, 101, 122, 110, 112, 116, 116, 111, 124, 114, 106, 118, 106, 127, 119, 102, 117, 128, 116, 115, 112, 111, 113, 113, 99, 119, 125, 108, 126, 119, 116, 119, 107, 108, 118, 112, 107, 126, 111, 120, 118, 116, 113, 114, 111, 120, 115, 108, 113, 132, 120, 128, 137, 120, 97, 117, 130, 115, 114, 118, 111, 124, 118, 110, 123, 113, 112, 137, 121, 118, 112, 123, 115, 109, 110, 111, 104, 113, 125, 110, 122, 109, 119, 125, 118, 111, 113, 124, 120, 106, 129, 123, 118, 117, 109, 123, 108, 122, 106, 122, 119, 109, 107, 121, 107, 123, 114, 103, 116, 119, 113, 120, 125, 109, 116, 84, 108, 115, 120, 105, 111, 111, 130, 103, 112, 116, 118, 109, 109, 113, 119, 121, 119, 112, 116, 108, 126, 110, 101, 117, 120, 105, 110, 123, 120, 114, 109, 110, 110, 112, 113, 117, 122, 119, 110, 110, 115, 105, 125, 124, 122, 114, 141, 118, 130, 116, 120, 111, 114, 122, 107, 111, 111, 117, 111, 119, 118, 131, 111, 119, 141, 108, 128, 115, 103, 105, 124, 107, 121, 102, 104, 115, 116, 104, 149, 112, 111, 112, 114, 118, 113, 114, 107, 113, 110, 116, 113, 121, 110, 105, 120, 120, 114, 120, 119, 118, 106, 107, 105, 111, 126, 113, 108, 111, 116, 125, 116, 108, 111, 121, 108, 130, 117, 109, 116, 111, 120, 133, 121, 122, 139, 113, 113, 133, 124, 112, 111, 119, 113, 140, 120, 110, 113, 103, 106, 106, 112, 113, 118, 110, 127, 106, 111, 125, 105, 120, 118, 117, 105, 115, 104, 116, 121, 102, 117, 115, 114, 116, 110, 104, 100, 115, 129, 104, 89, 130, 113, 120, 105, 120, 116, 103, 115, 127, 120, 133, 106, 107, 121, 132, 127, 130, 108, 123, 114, 101, 113, 115, 114, 120, 108, 113, 112, 135, 114, 120, 112, 130, 124, 107, 93, 107, 120, 118, 101, 115, 114, 109, 127, 119, 132, 109, 121, 112, 110, 114, 104, 103, 123, 110, 126, 111, 119, 125, 105, 115, 131, 111, 118, 126, 122, 108, 128, 110, 124, 111, 120, 119, 113, 125, 118, 122, 115, 114, 133, 105, 113, 121, 105, 121, 120, 121, 119, 104, 108, 118, 119, 129, 99, 107, 115, 118, 120, 114, 107, 117, 103, 113, 91, 119, 117, 114, 112, 110, 114, 101, 120, 124, 103, 132, 120, 111, 107, 111, 112, 129, 111, 117, 109, 108, 110, 130, 115, 133, 134, 103, 128, 108, 112, 136, 114, 111, 122, 92, 117, 104, 119, 111, 106, 108, 128, 115, 120, 100, 108, 122, 123, 121, 128, 109, 121, 115, 120, 115, 120, 102, 117, 112, 119, 113, 102, 138, 116, 121, 118, 118, 120, 120, 115, 114, 110, 126, 127, 125, 114, 117, 110, 124, 104, 117, 117, 124, 107, 116, 98, 115, 123, 119, 120, 106, 113, 114, 114, 112, 122, 110, 117, 115, 108, 106, 108, 121, 116, 117, 165, 117, 120, 117, 104, 104, 115, 138, 107, 110, 106, 111, 109, 108, 97, 117, 109, 99, 119, 113, 106, 127, 111, 118, 113, 111, 95, 125, 112, 115, 100, 123, 113, 91, 119, 114, 117, 111, 106, 112, 120, 111, 107, 103, 122, 121, 109, 113, 115, 114, 123, 106, 121, 108, 114, 119, 121, 111, 117, 116, 113, 109, 109, 131, 102, 124, 110, 101, 115, 117, 130, 89, 111, 116, 108, 116, 118, 111, 117, 110, 108, 113, 122, 118, 106, 113, 109, 119, 131, 110, 104, 130, 114, 130, 123, 122, 139, 127, 123, 110, 109, 116, 123, 114, 102, 115, 141, 114, 118, 107, 107, 111, 102, 124, 99, 101, 103, 110, 109, 109, 98, 109, 104, 118, 94, 115, 100, 112, 111, 130, 122, 134, 116, 114, 104, 112, 126, 109, 114, 112, 104, 104, 105, 103, 127, 127, 96, 103, 111, 112, 120, 117, 104, 120, 136, 114, 125, 120, 103, 103, 114, 126, 105, 102, 112, 114, 118, 110, 116, 113, 124, 117, 107, 120, 121, 114, 111, 113, 115, 118, 118, 137, 112, 111, 123, 118, 106, 114, 114, 104, 116, 115, 124, 122, 110, 110, 113, 112, 120, 114, 117, 103, 116, 125, 116, 114, 100, 111, 119, 112, 121, 107, 118, 119, 103, 118, 118, 120, 120, 83, 128, 106, 121, 120, 111, 106, 114, 121, 106, 114, 112, 118, 121, 120, 110, 130, 113, 124, 126, 115, 122, 115, 118, 120, 131, 124, 119, 115, 113, 120, 118, 112, 109, 116, 113, 116, 106, 118, 114, 120, 113, 113, 110, 129, 119, 137, 116, 116, 116, 114, 133, 122, 128, 127, 113, 115, 120, 130, 117, 123, 116, 119, 107, 110, 114, 118, 122, 104, 113, 112, 118, 120, 118, 124, 115, 114, 115, 119, 133, 122, 106, 115, 112, 109, 106, 121, 120, 110, 123, 111, 114, 118, 110, 107, 111, 124, 121, 114, 124, 114, 117, 109, 113, 123, 111, 124, 113, 105, 123, 120, 103, 116, 112, 113, 133, 114, 118, 113, 114, 114, 112, 111, 105, 118, 116, 111, 101, 115, 120, 110, 111, 110, 114, 117, 124, 107, 119, 116, 114, 114, 111, 114, 118, 128, 99, 115, 118, 112, 121, 116, 122, 108, 125, 113, 119, 115, 118, 114, 116, 117, 118, 102, 112, 108, 119, 114, 123, 115, 124, 117, 114, 111, 113, 120, 110, 116, 123, 104, 113, 117, 129, 125, 122, 111, 109, 111, 112, 131, 116, 112, 116, 113, 111, 115, 110, 124, 114, 115, 119, 113, 119, 115, 122, 114, 138, 118, 120, 116, 122, 115, 124, 108, 117, 117, 112, 118, 117, 122, 133, 108, 113, 117, 112, 113, 129, 121, 118, 121, 109, 115, 115, 122, 126, 116, 106, 120, 123, 111, 117, 105, 119, 118, 113, 121, 110, 109, 115, 105, 108, 120, 119, 109, 112, 115, 115, 109, 123, 118, 111, 125, 121, 122, 117, 121, 128, 117, 108, 116, 112, 124, 119, 113, 118, 111, 122, 120, 112, 119, 114, 119, 119, 121, 117, 117, 120, 117, 120, 118, 115, 116, 120, 122, 118, 114, 116, 121, 105, 116, 104, 114, 114, 116, 117, 125, 115, 121, 117, 119, 110, 119, 116, 112, 104, 116, 131, 118, 121, 108, 119, 127, 119, 110, 121, 111, 112, 114, 115, 97, 115, 88, 109, 119, 119, 112, 112, 128, 119, 109, 116, 116, 109, 128, 115, 115, 118, 112, 104, 116, 116, 122, 126, 120, 119, 114, 155, 109, 119, 108, 116, 117, 114, 129, 107, 114, 120, 128, 114, 117, 101, 125, 101, 121, 112, 119, 134, 112, 116, 114, 131, 114, 110, 109, 121, 127, 112, 114, 116, 123, 119, 120, 105, 111, 111, 118, 123, 111, 110, 120, 116, 115, 125, 114, 112, 113, 115, 121, 105, 106, 106, 116, 118, 118, 116, 112, 122, 98, 120, 117, 118, 103, 113, 113, 123, 117, 115, 103, 117, 104, 112, 106, 121, 108, 121, 120, 114, 131, 120, 105, 112, 108, 115, 123, 122, 114, 105, 119, 124, 121, 116, 115, 113, 122, 110, 100, 114, 114, 111, 112, 111, 112, 116, 135, 108, 119, 121, 116, 90, 130, 101, 105, 102, 114, 135, 100, 120, 126, 122, 103, 135, 106, 122, 111, 100, 101, 124, 113, 113, 106, 111, 137, 121, 116, 126, 120, 106, 102, 109, 121, 125, 125, 113, 129, 120, 147, 124, 113, 124, 109, 117, 114, 114, 137, 137, 106, 114, 123, 147, 109, 130, 99, 104, 94, 107, 126, 116, 115, 96, 119, 134, 133, 103, 120, 109, 97, 119, 103, 110, 117, 116, 120, 128, 110, 112, 111, 87, 121, 109, 123, 106, 123, 107, 122, 131, 113, 106, 107, 103, 111, 132, 127, 133, 99, 119, 105, 108, 111, 106, 119, 117, 98, 133, 116, 109, 116, 107, 116, 127, 120, 118, 117, 109, 120, 127, 107, 119, 130, 109, 102, 104, 103, 121, 118, 129, 106, 98, 110, 113, 136, 105, 122, 96, 125, 107, 115, 119, 114, 110, 126, 107, 126, 113, 113, 120, 112, 120, 122, 110, 101, 120, 102, 105, 109, 102, 106, 84, 118, 109, 123, 138, 127, 117, 103, 117, 116, 120, 98, 126, 114, 136, 109, 125, 100, 133, 121, 98, 123, 120, 118, 129, 128, 127, 104, 148, 93, 119, 117, 104, 139, 128, 108, 127, 118, 116, 110, 105, 109, 112, 116, 95, 117, 91, 119, 93, 126, 125, 122, 122, 134, 131, 124, 120, 132, 122, 117, 126, 111, 118, 107, 114, 123, 127, 105, 106, 100, 112, 105, 109, 115, 121, 115, 122, 114, 118, 119, 119, 122, 112, 131, 96, 113, 103, 129, 121, 99, 127, 122, 121, 115, 113, 109, 145, 126, 112, 106, 100, 115, 111, 113, 119, 99, 134, 108, 146, 126, 126, 128, 101, 128, 117, 99, 115, 127, 104, 95, 129, 122, 115, 123, 129, 117, 95, 98, 107, 129, 122, 117, 132, 113, 104, 106, 100, 121, 108, 116, 119, 90, 126, 109, 115, 130, 121, 135, 120, 134, 124, 137, 111, 130, 106, 94, 123, 105, 124, 117, 103, 123, 114, 131, 108, 132, 127, 97, 91, 116, 102, 129, 109, 133, 97, 111, 124, 105, 140, 106, 152, 115, 130, 123, 108, 119, 114, 125, 121, 119, 123, 123, 126, 122, 113, 114, 96, 115, 101, 110, 90, 113, 126, 105, 124, 124, 117, 116, 113, 105, 123, 119, 111, 111, 101, 101, 128, 109, 115, 115, 107, 108, 111, 121, 124, 103, 101, 114, 119, 111, 129, 112, 115, 132, 112, 118, 104, 116, 116, 99, 123, 119, 122, 128, 100, 121, 99, 104, 116, 120, 142, 78, 111, 109, 119, 109, 120, 118, 110, 126, 132, 133, 116, 101, 107, 104, 111, 110, 109, 120, 126, 112, 119, 126, 114, 116, 119, 121, 127, 116, 117, 119, 106, 141, 106, 96, 118, 135, 104, 139, 111, 104, 119, 109, 119, 101, 115, 119, 118, 125, 108, 124, 103, 104, 116, 103, 125, 108, 118, 140, 124, 113, 127, 109, 124, 107, 117, 125, 127, 118, 133, 92, 122, 100, 113, 118, 124, 113, 102, 107, 127, 122, 117, 136, 118, 121, 125, 118, 118, 104, 112, 117, 80, 121, 117, 143, 112, 97, 111, 133, 106, 126, 118, 122, 101, 116, 117, 121, 124, 112, 110, 112, 122, 128, 122, 120, 117, 118, 128, 115, 132, 110, 91, 112, 113, 128, 125, 114, 119, 123, 113, 119, 118, 112, 113, 123, 115, 106, 114, 104, 108, 107, 117, 120, 105, 120, 101, 117, 123, 97, 120, 113, 117, 120, 111, 139, 120, 114, 134, 136, 108, 117, 115, 132, 104, 106, 128, 112, 117, 119, 114, 100, 101, 108, 110, 114, 117, 112, 122, 122, 115, 130, 116, 98, 118, 121, 101, 125, 120, 130, 126, 122, 121, 112, 121, 146, 119, 120, 115, 120, 121, 127, 113, 99, 125, 121, 109, 106, 122, 115, 116, 99, 111, 115, 110, 125, 109, 122, 109, 131, 101, 101, 117, 122, 103, 125, 114, 111, 109, 113, 113, 102, 111, 115, 130, 112, 118, 122, 120, 116, 96, 110, 112, 136, 113, 128, 122, 100, 116, 129, 125, 113, 124, 132, 123, 153, 124, 117, 115, 115, 120, 119, 122, 115, 117, 82, 125, 113, 113, 111, 113, 120, 107, 128, 115, 127, 126, 109, 120, 122, 111, 115, 130, 118, 137, 114, 119, 114, 130, 135, 111, 105, 125, 110, 115, 117, 112, 113, 129, 114, 111, 107, 101, 116, 111, 121, 113, 119, 124, 120, 122, 113, 114, 101, 114, 120, 128, 111, 93, 129, 123, 120, 116, 115, 100, 115, 115, 125, 113, 123, 115, 120, 115, 113, 119, 121, 103, 114, 118, 115, 118, 108, 108, 111, 121, 118, 104, 107, 118, 107, 121, 125, 122, 124, 121, 126, 120, 118, 122, 109, 122, 133, 113, 107, 110, 110, 124, 115, 96, 118, 113, 119, 116, 101, 96, 99, 110, 117, 120, 109, 124, 132, 99, 114, 117, 114, 137, 127, 126, 125, 98, 111, 121, 103, 111, 114, 122, 93, 127, 113, 118, 111, 110, 114, 124, 131, 112, 106, 117, 106, 114, 124, 115, 124, 131, 114, 110, 123, 99, 135, 119, 130, 102, 105, 112, 113, 110, 119, 122, 114, 112, 122, 123, 107, 117, 117, 117, 116, 110, 117, 123, 124, 122, 124, 125, 119, 102, 119, 129, 95, 122, 121, 104, 130, 109, 119, 110, 121, 119, 120, 113, 109, 118, 105, 122, 118, 123, 116, 129, 109, 123, 126, 118, 105, 106, 97, 103, 113, 126, 134, 123, 118, 133, 107, 115, 110, 129, 115, 116, 121, 128, 114, 121, 109, 113, 109, 126, 136, 114, 106, 109, 120, 92, 115, 109, 117, 126, 121, 119, 122, 109, 113, 126, 114, 119, 126, 104, 122, 116, 124, 122, 115, 109, 107, 134, 117, 119, 127, 121, 116, 124, 108, 109, 128, 109, 126, 120, 118, 133, 121, 118, 96, 93, 121, 142, 109, 113, 125, 128, 129, 123, 124, 111, 105, 108, 103, 94, 116, 126, 128, 114, 118, 109, 124, 117, 131, 112, 115, 114, 117, 101, 117, 114, 97, 101, 117, 110, 117, 114, 100, 128, 115, 110, 118, 121, 109, 122, 107, 122, 139, 123, 117, 117, 122, 108, 112, 125, 115, 118, 120, 107, 115, 114, 105, 125, 114, 121, 113, 106, 123, 128, 118, 106, 109, 143, 117, 104, 103, 109, 120, 112, 106, 120, 107, 143, 119, 107, 101, 110, 115, 119, 112, 115, 121, 117, 121, 112, 104, 123, 119, 117, 122, 116, 125, 137, 117, 118, 121, 117, 113, 115, 120, 121, 128, 124, 115, 143, 114, 116, 108, 106, 114, 120, 115, 114, 117, 118, 116, 113, 131, 120, 112, 109, 128, 97, 114, 105, 112, 120, 121, 110, 121, 120, 118, 127, 101, 106, 113, 130, 125, 119, 108, 115, 108, 123, 102, 117, 118, 117, 109, 84, 113, 126, 104, 130, 116, 110, 117, 126, 113, 156, 128, 120, 117, 108, 110, 109, 128, 119, 114, 111, 101, 110, 113, 125, 122, 116, 117, 110, 116, 119, 112, 115, 110, 111, 111, 116, 119, 108, 106, 120, 108, 117, 110, 114, 114, 124, 99, 125, 99, 113, 116, 117, 113, 123, 121, 114, 117, 123, 134, 109, 107, 118, 122, 116, 115, 112, 125, 109, 112, 126, 126, 106, 103, 116, 113, 117, 112, 114, 123, 104, 115, 118, 116, 108, 100, 119, 121, 117, 120, 107, 116, 106, 98, 127, 123, 115, 119, 111, 126, 93, 120, 123, 118, 113, 122, 117, 111, 114, 109, 121, 97, 103, 111, 122, 116, 114, 124, 117, 124, 115, 116, 117, 111, 119, 117, 125, 123, 120, 97, 113, 108, 118, 96, 116, 121, 121, 90, 123, 118, 85, 114, 114, 123, 110, 115, 109, 118, 116, 107, 113, 114, 113, 115, 102, 106, 138, 118, 127, 105, 129, 112, 115, 111, 128, 106, 110, 124, 121, 111, 117, 118, 111, 125, 104, 114, 117, 111, 118, 114, 119, 118, 116, 121, 107, 131, 118, 115, 100, 107, 133, 119, 113, 119, 124, 112, 121, 117, 114, 116, 85, 111, 112, 119, 100, 129, 116, 115, 120, 124, 99, 114, 123, 113, 120, 101, 150, 119, 101, 124, 92, 110, 111, 120, 102, 112, 117, 131, 122, 116, 102, 113, 112, 123, 120, 117, 108, 116, 110, 105, 140, 117, 107, 122, 139, 108, 117, 131, 118, 115, 122, 120, 120, 120, 115, 117, 118, 131, 112, 112, 121, 124, 118, 101, 112, 124, 124, 116, 107, 117, 104, 83, 80, 121, 104, 110, 115, 108, 108, 104, 105, 109, 112, 121, 122, 116, 109, 123, 111, 119, 140, 103, 119, 118, 112, 114, 106, 139, 111, 124, 107, 115, 117, 107, 119, 114, 148, 109, 120, 111, 96, 125, 114, 105, 126, 102, 119, 118, 114, 112, 118, 107, 122, 116, 126, 120, 120, 117, 112, 119, 91, 111, 117, 116, 120, 130, 111, 131, 107, 113, 124, 109, 113, 118, 88, 114, 119, 126, 117, 123, 114, 111, 109, 125, 119, 125, 116, 123, 119, 113, 120, 117, 132, 122, 118, 108, 113, 104, 117, 120, 120, 109, 108, 120, 105, 94, 109, 109, 120, 118, 139, 124, 113, 99, 105, 124, 123, 119, 119, 107, 123, 118, 113, 113, 105, 124, 108, 115, 118, 137, 110, 112, 85, 115, 104, 109, 115, 110, 120, 117, 121, 72, 119, 122, 118, 108, 106, 101, 117, 131, 117, 98, 118, 121, 117, 124, 132, 125, 121, 105, 104, 123, 120, 111, 128, 116, 102, 95, 126, 112, 121, 111, 112, 118, 109, 157, 111, 130, 108, 124, 113, 120, 110, 116, 119, 115, 129, 113, 123, 123, 109, 113, 120, 107, 120, 97, 129, 118, 98, 106, 115, 115, 119, 111, 110, 115, 120, 110, 112, 115, 89, 115, 118, 118, 111, 102, 108, 134, 120, 113, 118, 110, 100, 127, 111, 119, 109, 129, 111, 112, 105, 108, 109, 98, 123, 127, 110, 122, 122, 100, 108, 115, 94, 118, 111, 101, 119, 116, 128, 114, 111, 134, 127, 93, 113, 90, 114, 114, 115, 109, 101, 122, 121, 96, 108, 104, 114, 118, 111, 120, 98, 109, 112, 96, 115, 122, 111, 113, 108, 104, 110, 112, 109, 117, 123, 121, 127, 112, 124, 119, 120, 111, 119, 80, 118, 119, 112, 118, 115, 114, 129, 122, 114, 115, 101, 130, 110, 103, 109, 104, 112, 123, 111, 120, 120, 111, 104, 110, 116, 111, 112, 112, 99, 93, 113, 119, 109, 107, 106, 108, 125, 111, 101, 111, 115, 108, 115, 119, 104, 107, 124, 132, 120, 113, 108, 101, 118, 108, 114, 115, 97, 124, 104, 98, 111, 105, 122, 151, 121, 124, 121, 104, 121, 118, 111, 114, 101, 107, 123, 107, 119, 118, 115, 116, 110, 133, 104, 126, 111, 91, 113, 109, 108, 128, 121, 132, 123, 113, 98, 133, 115, 110, 114, 114, 109, 102, 113, 117, 129, 129, 123, 116, 134, 105, 121, 108, 114, 110, 109, 111, 117, 84, 110, 108, 127, 134, 107, 117, 112, 116, 121, 114, 110, 111, 117, 118, 111, 130, 129, 116, 120, 122, 113, 119, 112, 120, 121, 120, 115, 98, 122, 112, 125, 122, 118, 103, 96, 120, 130, 117, 109, 118, 107, 115, 121, 130, 117, 114, 109, 121, 111, 108, 120, 118, 132, 108, 115, 144, 123, 106, 117, 122, 108, 135, 115, 120, 140, 117, 121, 111, 121, 113, 101, 102, 122, 98, 106, 102, 96, 111, 76, 111, 111, 122, 115, 116, 128, 107, 120, 143, 106, 131, 119, 115, 113, 119, 127, 114, 125, 126, 100, 132, 109, 123, 135, 112, 114, 114, 118, 122, 124, 121, 99, 112, 76, 114, 120, 111, 115, 116, 113, 112, 100, 112, 119, 121, 112, 122, 113, 127, 113, 119, 115, 114, 124, 115, 122, 130, 115, 104, 114, 112, 115, 124, 118, 124, 114, 139, 119, 102, 96, 101, 114, 107, 117, 108, 120, 119, 121, 99, 116, 127, 99, 127, 113, 113, 114, 113, 118, 122, 114, 106, 125, 96, 126, 114, 91, 131, 94, 113, 113, 103, 112, 126, 106, 129, 111, 108, 107, 120, 121, 119, 111, 106, 116, 130, 116, 121, 112, 122, 114, 118, 122, 118, 128, 123, 114, 111, 154, 104, 122, 118, 138, 99, 119, 106, 108, 120, 111, 127, 118, 103, 123, 120, 109, 114, 105, 120, 114, 118, 125, 132, 107, 122, 118, 121, 117, 106, 108, 107, 116, 114, 123, 156, 109, 113, 125, 118, 107, 116, 109, 100, 107, 108, 115, 126, 116, 120, 113, 115, 100, 119, 114, 105, 117, 116, 103, 122, 116, 128, 119, 105, 116, 131, 119, 138, 119, 114, 126, 102, 118, 120, 125, 108, 109, 146, 108, 115, 117, 110, 114, 107, 141, 109, 126, 120, 120, 120, 114, 111, 121, 119, 111, 110, 121, 76, 108, 94, 123, 118, 124, 108, 110, 121, 122, 117, 109, 113, 123, 111, 111, 124, 143, 111, 124, 119, 120, 125, 118, 115, 121, 115, 134, 98, 125, 115, 121, 109, 104, 114, 126, 116, 107, 118, 114, 112, 118, 129, 114, 123, 124, 110, 121, 118, 115, 130, 102, 115, 102, 121, 131, 129, 117, 121, 115, 107, 122, 104, 109, 117, 122, 105, 119, 112, 113, 105, 119, 116, 112, 121, 111, 118, 117, 115, 123, 111, 124, 115, 123, 118, 101, 101, 125, 126, 137, 115, 129, 120, 130, 96, 122, 110, 119, 110, 131, 119, 109, 109, 129, 140, 111, 117, 112, 108, 116, 109, 119, 116, 150, 104, 99, 130, 118, 101, 127, 117, 84, 105, 96, 120, 115, 104, 109, 122, 115, 134, 121, 114, 121, 118, 114, 123, 111, 111, 117, 115, 114, 93, 120, 132, 127, 114, 101, 108, 129, 114, 108, 112, 108, 110, 102, 137, 112, 114, 106, 120, 103, 119, 112, 149, 118, 119, 99, 119, 96, 110, 118, 111, 135, 124, 110, 112, 125, 117, 123, 98, 106, 112, 112, 104, 114, 112, 128, 101, 101, 115, 118, 113, 111, 106, 116, 116, 118, 104, 118, 93, 118, 122, 110, 120, 123, 113, 128, 117, 119, 122, 135, 118, 123, 133, 103, 118, 111, 116, 124, 128, 119, 118, 118, 125, 116, 107, 112, 112, 119, 129, 116, 95, 115, 116, 155, 119, 125, 115, 108, 120, 115, 116, 122, 134, 112, 86, 116, 107, 116, 116, 117, 105, 105, 114, 119, 115, 109, 115, 120, 132, 116, 115, 107, 118, 108, 120, 120, 129, 110, 113, 125, 131, 122, 115, 129, 122, 119, 115, 112, 121, 132, 120, 120, 120, 124, 119, 116, 115, 116, 147, 117, 114, 120, 130, 105, 116, 138, 119, 106, 109, 124, 112, 108, 112, 122, 124, 115, 109, 141, 117, 113, 121, 134, 124, 94, 108, 108, 113, 119, 109, 115, 123, 116, 122, 114, 129, 136, 125, 126, 98, 112, 117, 117, 102, 131, 109, 93, 101, 111, 87, 124, 119, 123, 90, 126, 120, 128, 131, 109, 94, 123, 112, 124, 120, 121, 99, 120, 119, 122, 121, 133, 116, 112, 96, 129, 117, 114, 124, 100, 119, 106, 102, 125, 116, 143, 112, 103, 107, 108, 107, 122, 110, 120, 120, 111, 115, 105, 124, 117, 121, 90, 135, 106, 125, 123, 142, 131, 116, 109, 108, 124, 112, 122, 112, 119, 118, 112, 131, 112, 114, 122, 132, 114, 110, 112, 139, 102, 98, 113, 105, 109, 108, 130, 106, 116, 111, 118, 114, 110, 92, 123, 143, 106, 128, 112, 108, 118, 102, 109, 111, 117, 108, 103, 119, 110, 101, 114, 99, 115, 117, 99, 105, 142, 115, 129, 125, 118, 111, 112, 128, 119, 103, 107, 117, 105, 124, 127, 113, 140, 133, 117, 116, 109, 130, 115, 118, 107, 120, 118, 114, 111, 118, 133, 116, 99, 116, 91, 102, 134, 114, 133, 127, 106, 116, 115, 119, 116, 106, 114, 119, 104, 62, 106, 124, 124, 115, 97, 112, 138, 112, 120, 119, 111, 116, 127, 108, 114, 106, 122, 126, 112, 132, 115, 102, 120, 116, 115, 108, 99, 128, 114, 119, 118, 102, 117, 123, 110, 112, 121, 102, 132, 121, 117, 114, 107, 112, 116, 146, 122, 106, 123, 125, 136, 130, 106, 123, 119, 126, 113, 127, 119, 114, 106, 108, 122, 113, 118, 115, 113, 106, 123, 109, 116, 107, 108, 108, 118, 115, 116, 112, 108, 116, 118, 114, 113, 106, 115, 114, 126, 111, 90, 131, 113, 117, 122, 120, 167, 116, 117, 109, 119, 121, 119, 109, 123, 121, 109, 120, 116, 113, 95, 114, 120, 123, 109, 119, 115, 128, 112, 111, 123, 111, 114, 124, 116, 113, 121, 122, 133, 118, 104, 127, 117, 127, 116, 129, 117, 101, 121, 108, 113, 117, 113, 109, 118, 116, 127, 118, 133, 111, 118, 113, 117, 109, 134, 109, 120, 128, 111, 134, 112, 113, 119, 116, 128, 105, 119, 125, 108, 108, 115, 115, 112, 124, 105, 122, 124, 126, 113, 116, 106, 134, 102, 123, 109, 116, 115, 109, 115, 105, 108, 116, 126, 125, 120, 118, 114, 127, 114, 104, 106, 125, 112, 147, 122, 120, 123, 118, 113, 115, 113, 121, 109, 132, 115, 112, 117, 114, 118, 127, 127, 111, 113, 114, 117, 124, 122, 120, 125, 155, 115, 131, 105, 116, 101, 118, 126, 121, 116, 116, 128, 100, 116, 130, 122, 118, 130, 90, 108, 112, 132, 129, 97, 115, 96, 121, 110, 142, 110, 100, 98, 124, 117, 103, 117, 116, 101, 121, 136, 120, 113, 111, 112, 151, 111, 111, 119, 122, 116, 124, 121, 96, 115, 124, 126, 113, 106, 115, 121, 97, 114, 108, 109, 110, 115, 119, 113, 112, 129, 112, 113, 122, 109, 122, 130, 133, 131, 125, 123, 143, 129, 86, 112, 123, 122, 118, 111, 121, 122, 124, 119, 116, 111, 127, 127, 114, 114, 128, 106, 117, 123, 118, 121, 118, 111, 91, 116, 101, 114, 123, 123, 97, 108, 114, 94, 127, 101, 119, 103, 126, 110, 123, 107, 122, 115, 110, 121, 95, 78, 114, 113, 112, 76, 117, 148, 118, 127, 113, 120, 112, 109, 95, 93, 122, 115, 115, 119, 106, 111, 125, 123, 122, 107, 112, 136, 116, 125, 114, 119, 130, 116, 118, 105, 121, 125, 131, 127, 112, 106, 118, 118, 112, 116, 121, 123, 104, 111, 114, 126, 117, 97, 124, 110, 112, 104, 111, 75, 106, 111, 106, 109, 121, 116, 122, 127, 129, 132, 105, 130, 110, 124, 121, 127, 123, 112, 111, 100, 117, 120, 119, 120, 102, 118, 110, 140, 114, 110, 108, 121, 117, 103, 118, 123, 104, 123, 121, 124, 115, 128, 97, 113, 138, 105, 125, 107, 120, 114, 107, 136, 116, 101, 120, 140, 127, 114, 101, 110, 114, 120, 121, 119, 125, 112, 113, 118, 109, 110, 110, 105, 110, 119, 113, 98, 112, 106, 125, 114, 119, 102, 98, 116, 109, 105, 120, 124, 111, 107, 106, 116, 130, 114, 115, 128, 114, 113, 116, 131, 112, 107, 106, 113, 136, 102, 109, 125, 116, 113, 117, 103, 120, 109, 126, 120, 126, 111, 109, 123, 112, 112, 116, 109, 128, 113, 139, 110, 123, 127, 118, 119, 119, 120, 98, 108, 100, 129, 136, 108, 116, 131, 112, 115, 107, 99, 110, 123, 128, 122, 126, 128, 115, 120, 133, 119, 104, 121, 116, 115, 102, 104, 109, 80, 113, 104, 122, 102, 104, 106, 111, 121, 104, 108, 108, 115, 123, 117, 117, 107, 118, 115, 121, 113, 125, 118, 116, 115, 109, 129, 118, 113, 109, 104, 124, 111, 91, 111, 103, 106, 116, 109, 121, 126, 113, 118, 128, 115, 105, 125, 115, 106, 122, 115, 109, 102, 106, 104, 116, 101, 106, 119, 114, 121, 124, 98, 97, 113, 120, 119, 111, 102, 118, 123, 107, 114, 119, 91, 111, 106, 107, 121, 118, 119, 123, 112, 115, 104, 105, 117, 114, 125, 124, 114, 113, 110, 100, 116, 105, 127, 116, 127, 132, 127, 99, 106, 117, 111, 113, 109, 116, 100, 100, 112, 104, 110, 116, 110, 151, 116, 118, 125, 103, 104, 113, 103, 113, 125, 119, 117, 124, 103, 124, 135, 107, 116, 114, 120, 101, 128, 118, 129, 126, 127, 107, 120, 114, 109, 113, 105, 116, 116, 133, 131, 103, 116, 125, 115, 103, 107, 110, 101, 115, 117, 124, 112, 103, 125, 118, 101, 121, 114, 116, 111, 112, 119, 131, 112, 122, 111, 130, 121, 106, 112, 128, 109, 113, 115, 107, 111, 114, 114, 114, 104, 112, 102, 117, 124, 93, 112, 119, 135, 116, 108, 100, 114, 103, 122, 115, 100, 117, 123, 99, 119, 107, 111, 114, 120, 120, 137, 104, 128, 121, 103, 106, 109, 115, 101, 105, 105, 119, 99, 120, 114, 111, 109, 114, 110, 103, 132, 109, 131, 124, 111, 130, 119, 91, 114, 127, 117, 119, 111, 122, 116, 122, 118, 100, 121, 119, 132, 121, 111, 114, 135, 117, 100, 114, 97, 108, 115, 128, 119, 116, 125, 114, 114, 112, 118, 109, 118, 118, 108, 125, 120, 126, 99, 117, 106, 110, 120, 130, 117, 119, 119, 113, 110, 115, 113, 123, 116, 149, 121, 99, 117, 110, 99, 123, 123, 121, 116, 121, 109, 122, 105, 121, 103, 123, 119, 116, 117, 117, 106, 137, 108, 124, 120, 131, 117, 118, 95, 106, 123, 114, 111, 94, 99, 110, 119, 118, 112, 119, 112, 112, 128, 110, 107, 116, 120, 118, 117, 125, 120, 111, 117, 112, 110, 115, 139, 114, 113, 125, 117, 117, 118, 109, 152, 109, 121, 98, 115, 114, 108, 108, 122, 113, 107, 109, 126, 105, 115, 108, 119, 97, 114, 112, 89, 102, 104, 106, 125, 123, 114, 113, 117, 110, 126, 117, 108, 125, 126, 120, 118, 110, 121, 106, 118, 104, 118, 119, 117, 119, 119, 112, 112, 126, 126, 128, 119, 112, 120, 123, 108, 145, 108, 104, 135, 116, 113, 120, 105, 116, 107, 105, 116, 101, 110, 114, 111, 90, 138, 113, 119, 128, 109, 127, 111, 139, 128, 129, 126, 139, 117, 118, 130, 112, 120, 123, 137, 102, 123, 105, 124, 123, 114, 107, 128, 111, 107, 99, 99, 124, 109, 106, 103, 134, 113, 120, 114, 112, 118, 121, 116, 110, 91, 112, 117, 121, 103, 118, 118, 113, 116, 73, 122, 105, 95, 117, 117, 109, 108, 126, 122, 136, 121, 112, 106, 118, 130, 120, 103, 119, 116, 119, 119, 124, 123, 129, 125, 116, 120, 112, 110, 116, 134, 123, 104, 143, 120, 127, 117, 112, 86, 114, 116, 106, 111, 123, 116, 126, 107, 111, 122, 121, 133, 108, 121, 112, 114, 109, 127, 121, 99, 93, 119, 97, 109, 123, 117, 119, 113, 116, 130, 130, 117, 104, 125, 98, 107, 119, 116, 103, 104, 109, 124, 132, 107, 125, 122, 119, 93, 127, 124, 105, 107, 119, 133, 113, 92, 121, 119, 124, 100, 114, 116, 110, 106, 104, 101, 116, 120, 114, 117, 105, 101, 126, 116, 120, 124, 108, 147, 129, 113, 114, 125, 118, 122, 125, 116, 112, 113, 112, 121, 96, 112, 118, 129, 121, 126, 115, 102, 102, 118, 120, 136, 121, 111, 122, 120, 118, 114, 132, 105, 130, 108, 109, 113, 116, 115, 128, 114, 138, 111, 114, 118, 116, 89, 116, 104, 127, 116, 103, 109, 119, 104, 128, 118, 111, 107, 116, 118, 156, 112, 140, 85, 120, 114, 107, 122, 123, 120, 132, 122, 133, 115, 111, 118, 110, 119, 113, 129, 114, 123, 113, 123, 103, 121, 116, 100, 107, 120, 118, 113, 121, 99, 114, 111, 107, 110, 119, 118, 105, 120, 111, 132, 130, 96, 111, 118, 119, 116, 103, 124, 122, 119, 120, 122, 100, 97, 120, 123, 115, 117, 116, 115, 98, 114, 129, 105, 118, 100, 128, 106, 128, 127, 120, 128, 115, 114, 109, 110, 110, 104, 114, 112, 133, 93, 108, 102, 150, 104, 109, 114, 109, 134, 127, 103, 114, 104, 108, 111, 114, 106, 129, 119, 106, 113, 117, 114, 119, 118, 104, 125, 87, 116, 118, 113, 108, 111, 107, 122, 119, 100, 109, 107, 110, 111, 108, 108, 110, 129, 117, 123, 95, 113, 118, 112, 121, 108, 117, 113, 114, 107, 115, 128, 111, 116, 125, 125, 102, 103, 112, 112, 114, 111, 100, 117, 115, 112, 103, 115, 131, 120, 148, 119, 104, 120, 120, 110, 108, 100, 102, 127, 124, 118, 107, 125, 133, 117, 126, 106, 103, 121, 82, 103, 116, 109, 118, 114, 109, 109, 108, 122, 111, 122, 111, 133, 94, 108, 113, 123, 127, 120, 121, 118, 97, 118, 105, 126, 116, 113, 94, 108, 136, 125, 98, 112, 104, 129, 128, 119, 117, 122, 109, 122, 110, 134, 114, 104, 110, 110, 122, 114, 107, 138, 111, 110, 125, 112, 132, 110, 106, 96, 109, 98, 114, 105, 118, 118, 112, 89, 100, 116, 126, 124, 114, 112, 103, 119, 117, 118, 121, 118, 110, 114, 110, 111, 109, 114, 103, 117, 117, 116, 130, 122, 114, 105, 118, 121, 122, 117, 117, 115, 120, 114, 109, 126, 113, 117, 117, 111, 118, 100, 123, 121, 111, 113, 110, 120, 115, 130, 115, 127, 117, 105, 123, 122, 122, 113, 113, 120, 122, 114, 103, 103, 116, 118, 119, 112, 106, 113, 105, 129, 118, 105, 109, 119, 113, 119, 113, 124, 105, 98, 121, 124, 114, 113, 115, 117, 117, 105, 114, 112, 114, 112, 106, 91, 116, 122, 110, 113, 107, 119, 98, 121, 123, 103, 114, 161, 115, 114, 105, 108, 119, 122, 124, 111, 109, 122, 107, 122, 118, 118, 108, 109, 115, 116, 121, 112, 120, 120, 115, 118, 110, 115, 117, 118, 170, 111, 122, 115, 102, 114, 126, 116, 117, 116, 108, 114, 113, 103, 122, 142, 117, 128, 121, 108, 113, 112, 119, 126, 124, 122, 123, 120, 117, 104, 115, 119, 113, 118, 120, 113, 107, 115, 109, 106, 116, 108, 108, 116, 119, 116, 108, 116, 120, 109, 115, 123, 87, 116, 117, 117, 122, 112, 110, 112, 114, 109, 116, 117, 123, 115, 119, 114, 115, 119, 125, 118, 106, 122, 115, 113, 118, 114, 112, 122, 121, 117, 115, 117, 112, 119, 120, 133, 116, 104, 106, 126, 118, 123, 109, 115, 114, 106, 111, 105, 119, 119, 124, 128, 112, 116, 122, 118, 118, 112, 122, 119, 126, 101, 112, 114, 109, 109, 113, 116, 123, 119, 113, 118, 107, 114, 116, 120, 106, 115, 118, 115, 115, 112, 115, 111, 112, 110, 118, 114, 117, 134, 110, 108, 120, 124, 106, 116, 115, 109, 126, 111, 112, 103, 105, 113, 87, 111, 136, 112, 104, 120, 115, 108, 119, 150, 104, 103, 112, 101, 117, 110, 128, 110, 116, 121, 109, 117, 133, 114, 98, 117, 154, 102, 123, 115, 122, 119, 110, 114, 117, 122, 121, 111, 97, 111, 132, 116, 115, 119, 124, 113, 87, 117, 118, 115, 105, 107, 106, 124, 115, 117, 127, 116, 122, 123, 100, 121, 115, 110, 108, 118, 124, 101, 103, 106, 117, 100, 113, 111, 121, 92, 108, 123, 115, 116, 116, 121, 116, 98, 119, 120, 114, 97, 120, 116, 113, 124, 116, 120, 122, 122, 120, 112, 109, 110, 117, 119, 124, 111, 119, 121, 110, 122, 115, 115, 115, 117, 119, 121, 139, 89, 120, 92, 119, 111, 115, 115, 120, 122, 116, 117, 111, 113, 112, 124, 105, 111, 112, 113, 98, 112, 120, 116, 115, 121, 124, 121, 124, 120, 108, 122, 137, 108, 95, 125, 112, 123, 115, 117, 118, 135, 125, 119, 112, 112, 113, 121, 122, 117, 108, 118, 119, 112, 117, 114, 116, 114, 110, 128, 109, 114, 112, 111, 116, 130, 124, 105, 116, 119, 122, 109, 119, 120, 113, 105, 124, 121, 112, 97, 118, 107, 106, 114, 116, 108, 130, 118, 121, 118, 125, 115, 117, 131, 109, 117, 114, 103, 116, 113, 117, 122, 110, 112, 118, 124, 117, 133, 126, 107, 120, 104, 96, 125, 114, 111, 106, 123, 123, 126, 119, 128, 119, 115, 122, 117, 115, 112, 111, 109, 100, 106, 145, 126, 118, 116, 115, 112, 104, 115, 121, 99, 122, 112, 116, 114, 132, 134, 112, 133, 112, 117, 129, 119, 102, 110, 114, 112, 128, 109, 123, 110, 106, 106, 115, 114, 110, 111, 111, 136, 146, 102, 109, 100, 111, 117, 111, 114, 110, 128, 113, 116, 112, 115, 133, 115, 113, 109, 132, 105, 107, 111, 126, 135, 120, 149, 102, 123, 123, 112, 112, 104, 103, 109, 121, 110, 106, 129, 101, 120, 102, 101, 120, 126, 108, 115, 126, 109, 107, 111, 121, 96, 110, 104, 128, 104, 113, 114, 121, 123, 100, 99, 112, 112, 102, 129, 112, 118, 108, 98, 124, 126, 106, 94, 130, 109, 116, 119, 112, 112, 115, 124, 127, 120, 115, 113, 114, 116, 128, 102, 119, 98, 116, 118, 117, 96, 116, 120, 121, 102, 121, 115, 117, 111, 115, 112, 111, 112, 108, 105, 127, 124, 122, 118, 103, 120, 106, 114, 103, 108, 113, 118, 108, 106, 120, 118, 104, 120, 120, 123, 120, 141, 119, 101, 122, 107, 95, 121, 122, 131, 100, 115, 122, 113, 116, 103, 111, 137, 117, 101, 112, 103, 129, 125, 126, 112, 114, 120, 105, 123, 115, 115, 105, 121, 128, 110, 108, 117, 110, 114, 107, 116, 119, 113, 108, 122, 127, 123, 100, 107, 104, 116, 128, 118, 113, 117, 110, 104, 110, 100, 132, 122, 111, 116, 121, 131, 123, 125, 119, 115, 115, 117, 111, 131, 129, 98, 112, 127, 111, 106, 115, 115, 112, 117, 125, 132, 119, 116, 108, 111, 110, 116, 120, 115, 110, 119, 113, 110, 120, 96, 113, 124, 101, 108, 107, 109, 106, 121, 134, 106, 124, 115, 107, 109, 114, 107, 101, 116, 112, 115, 124, 107, 110, 92, 115, 129, 119, 112, 127, 130, 119, 115, 111, 116, 103, 100, 114, 111, 122, 144, 111, 112, 123, 109, 110, 123, 115, 108, 118, 138, 107, 113, 111, 117, 127, 120, 121, 114, 121, 118, 95, 110, 124, 122, 120, 106, 101, 120, 104, 110, 116, 116, 138, 134, 96, 117, 110, 114, 107, 116, 115, 117, 99, 109, 117, 113, 104, 105, 108, 120, 124, 107, 121, 111, 120, 117, 103, 116, 115, 107, 116, 121, 104, 107, 103, 117, 128, 107, 109, 118, 130, 122, 109, 109, 111, 122, 103, 123, 109, 109, 88, 105, 108, 122, 115, 115, 129, 105, 125, 96, 101, 104, 105, 118, 114, 105, 115, 120, 118, 112, 131, 101, 111, 127, 121, 132, 112, 128, 119, 123, 116, 127, 100, 117, 99, 116, 110, 131, 126, 114, 123, 114, 112, 114, 122, 99, 112, 128, 121, 110, 120, 114, 119, 91, 110, 105, 120, 113, 107, 124, 123, 113, 117, 115, 121, 115, 104, 121, 105, 125, 92, 98, 123, 111, 121, 133, 114, 133, 114, 117, 114, 117, 106, 117, 105, 121, 115, 109, 118, 111, 143, 118, 103, 123, 126, 98, 110, 109, 119, 117, 118, 120, 111, 112, 104, 116, 124, 108, 110, 116, 108, 122, 114, 117, 114, 126, 108, 109, 114, 118, 112, 113, 118, 100, 114, 132, 110, 117, 112, 109, 114, 125, 133, 113, 114, 121, 122, 126, 126, 110, 124, 115, 107, 137, 117, 112, 108, 118, 118, 107, 111, 109, 111, 122, 118, 109, 115, 123, 129, 118, 116, 118, 110, 114, 122, 112, 112, 106, 123, 116, 98, 112, 116, 103, 123, 119, 118, 122, 108, 118, 97, 118, 116, 124, 121, 117, 130, 122, 113, 108, 118, 113, 119, 103, 112, 120, 116, 121, 123, 118, 120, 132, 128, 124, 113, 115, 104, 95, 127, 113, 120, 121, 116, 111, 112, 97, 103, 118, 107, 112, 109, 122, 120, 121, 123, 114, 121, 107, 124, 110, 115, 116, 111, 120, 116, 120, 114, 110, 109, 117, 96, 121, 117, 110, 104, 127, 94, 120, 120, 116, 131, 98, 113, 112, 117, 115, 131, 126, 118, 108, 118, 128, 118, 111, 103, 124, 111, 107, 117, 117, 119, 99, 112, 123, 112, 122, 114, 106, 109, 113, 117, 112, 105, 122, 118, 116, 120, 126, 117, 117, 118, 122, 122, 95, 104, 107, 114, 113, 107, 120, 116, 114, 111, 95, 113, 112, 118, 135, 117, 117, 139, 114, 113, 116, 123, 124, 118, 114, 114, 130, 116, 113, 114, 119, 123, 105, 127, 107, 114, 123, 122, 113, 118, 125, 114, 109, 122, 119, 121, 104, 117, 98, 111, 130, 122, 117, 117, 111, 103, 114, 118, 121, 111, 114, 118, 155, 115, 128, 117, 117, 142, 117, 122, 113, 122, 107, 115, 107, 118, 122, 118, 107, 109, 112, 108, 122, 116, 124, 124, 109, 143, 113, 132, 104, 119, 117, 111, 122, 133, 109, 123, 107, 140, 120, 118, 113, 120, 117, 120, 107, 111, 122, 124, 110, 115, 107, 142, 113, 119, 107, 117, 124, 109, 128, 116, 118, 107, 104, 112, 119, 116, 114, 107, 115, 100, 117, 110, 111, 120, 112, 111, 113, 111, 118, 111, 126, 137, 93, 113, 103, 116, 121, 117, 113, 116, 119, 126, 118, 108, 118, 122, 117, 104, 114, 141, 119, 125, 123, 123, 118, 117, 111, 110, 120, 112, 111, 115, 109, 106, 118, 123, 105, 117, 98, 96, 118, 112, 115, 122, 110, 112, 120, 125, 121, 108, 118, 110, 120, 125, 128, 120, 120, 97, 119, 112, 110, 120, 120, 117, 111, 117, 118, 108, 119, 100, 116, 111, 122, 85, 109, 116, 105, 111, 119, 115, 109, 106, 107, 137, 111, 118, 116, 119, 94, 115, 134, 109, 114, 111, 107, 117, 120, 121, 120, 111, 119, 114, 126, 108, 114, 120, 118, 126, 106, 127, 126, 118, 124, 102, 98, 115, 119, 116, 112, 114, 118, 106, 106, 116, 105, 146, 117, 117, 122, 109, 118, 103, 111, 115, 126, 110, 116, 106, 125, 114, 110, 113, 124, 124, 120, 109, 111, 115, 121, 110, 101, 111, 112, 117, 116, 120, 134, 107, 128, 124, 116, 112, 116, 129, 120, 124, 124, 123, 108, 122, 117, 132, 114, 123, 114, 116, 109, 134, 140, 129, 90, 111, 116, 112, 114, 116, 120, 107, 108, 102, 103, 126, 107, 120, 117, 125, 108, 110, 124, 103, 108, 89, 120, 120, 113, 111, 126, 130, 104, 104, 103, 130, 113, 129, 106, 119, 128, 107, 110, 137, 131, 126, 111, 111, 142, 109, 112, 122, 112, 109, 97, 108, 111, 110, 122, 121, 139, 115, 98, 95, 113, 115, 107, 119, 120, 100, 111, 106, 109, 111, 119, 114, 117, 112, 104, 112, 144, 106, 112, 139, 101, 117, 115, 126, 112, 118, 119, 118, 115, 118, 141, 109, 108, 129, 123, 131, 131, 123, 116, 115, 104, 117, 119, 100, 133, 112, 104, 117, 112, 107, 126, 119, 119, 120, 107, 116, 121, 116, 127, 111, 111, 104, 96, 113, 107, 121, 116, 123, 109, 127, 103, 128, 111, 108, 108, 111, 123, 108, 120, 108, 133, 120, 122, 143, 101, 121, 135, 103, 114, 109, 112, 117, 116, 123, 117, 104, 110, 113, 118, 113, 110, 112, 123, 100, 98, 115, 109, 113, 104, 140, 111, 124, 110, 101, 100, 114, 107, 103, 110, 108, 110, 112, 110, 114, 109, 95, 119, 113, 108, 105, 113, 119, 126, 103, 104, 102, 134, 121, 127, 105, 116, 111, 125, 119, 125, 124, 93, 119, 121, 122, 123, 104, 116, 110, 122, 112, 109, 113, 119, 105, 130, 120, 129, 123, 127, 109, 119, 125, 111, 104, 116, 106, 104, 103, 123, 126, 99, 116, 122, 128, 119, 109, 109, 131, 127, 114, 108, 107, 105, 125, 113, 121, 126, 115, 92, 113, 118, 125, 102, 104, 126, 122, 108, 116, 118, 110, 161, 132, 114, 106, 114, 118, 116, 115, 118, 112, 116, 120, 116, 123, 123, 108, 115, 137, 126, 115, 107, 120, 106, 119, 124, 119, 119, 116, 125, 115, 140, 108, 113, 101, 134, 117, 115, 105, 103, 119, 117, 107, 125, 118, 110, 126, 117, 127, 120, 111, 118, 99, 127, 114, 105, 118, 116, 109, 105, 134, 90, 112, 117, 108, 109, 112, 108, 112, 126, 113, 119, 101, 112, 115, 108, 123, 124, 116, 127, 127, 127, 101, 114, 114, 122, 117, 133, 111, 127, 111, 117, 111, 111, 110, 119, 107, 109, 102, 109, 117, 107, 107, 121, 113, 111, 107, 120, 115, 111, 115, 115, 117, 114, 98, 110, 123, 122, 104, 141, 118, 115, 108, 121, 117, 113, 116, 103, 117, 117, 135, 118, 78, 121, 111, 116, 103, 111, 109, 116, 101, 105, 112, 121, 101, 110, 113, 121, 109, 112, 120, 116, 103, 100, 109, 115, 119, 106, 106, 109, 110, 112, 151, 123, 133, 109, 124, 114, 128, 98, 120, 101, 123, 122, 109, 115, 107, 113, 118, 131, 128, 122, 96, 101, 111, 124, 125, 112, 96, 108, 128, 124, 135, 117, 120, 108, 124, 141, 115, 113, 103, 126, 121, 130, 124, 117, 110, 113, 124, 119, 110, 122, 115, 117, 109, 105, 120, 134, 117, 107, 117, 108, 125, 145, 93, 111, 104, 106, 118, 103, 122, 105, 118, 103, 106, 134, 129, 120, 106, 122, 132, 128, 95, 127, 122, 112, 113, 101, 128, 105, 99, 113, 136, 124, 115, 123, 125, 103, 103, 102, 128, 102, 110, 111, 111, 129, 108, 116, 111, 122, 124, 129, 120, 129, 119, 111, 103, 101, 114, 108, 116, 106, 118, 124, 110, 112, 128, 121, 110, 93, 116, 97, 118, 144, 117, 118, 103, 111, 105, 121, 110, 108, 109, 103, 131, 114, 112, 108, 140, 122, 119, 117, 108, 109, 110, 108, 109, 124, 109, 122, 113, 90, 121, 113, 110, 107, 118, 114, 118, 98, 129, 117, 104, 116, 106, 100, 111, 97, 124, 131, 123, 115, 113, 108, 104, 114, 127, 110, 125, 124, 88, 121, 109, 106, 112, 116, 118, 127, 127, 116, 127, 108, 116, 126, 116, 126, 120, 113, 106, 112, 99, 108, 116, 132, 113, 92, 123, 116, 116, 112, 106, 109, 127, 104, 107, 100, 129, 128, 101, 99, 123, 122, 120, 115, 95, 102, 107, 116, 112, 107, 107, 98, 122, 90, 110, 99, 144, 101, 117, 93, 129, 109, 111, 95, 114, 105, 110, 117, 112, 108, 112, 109, 107, 131, 121, 117, 121, 100, 103, 117, 122, 129, 126, 108, 100, 95, 103, 101, 139, 103, 116, 135, 113, 148, 130, 96, 114, 113, 139, 107, 115, 107, 116, 144, 93, 136, 100, 124, 120, 109, 132, 132, 119, 117, 122, 120, 119, 124, 120, 120, 125, 120, 111, 103, 113, 105, 91, 128, 120, 111, 94, 124, 126, 102, 117, 100, 121, 102, 113, 100, 124, 111, 94, 105, 110, 119, 114, 112, 120, 117, 109, 102, 115, 124, 92, 107, 124, 108, 121, 99, 112, 124, 106, 112, 112, 127, 135, 128, 109, 102, 101, 123, 113, 105, 107, 117, 131, 128, 130, 117, 128, 110, 87, 113, 115, 107, 122, 140, 124, 124, 115, 112, 125, 113, 96, 108, 106, 127, 124, 140, 117, 95, 109, 111, 118, 119, 121, 119, 107, 120, 94, 112, 105, 103, 126, 121, 109, 105, 112, 120, 96, 95, 106, 92, 131, 101, 119, 114, 127, 107, 116, 109, 132, 115, 98, 115, 115, 116, 124, 127, 96, 102, 132, 119, 108, 126, 120, 123, 120, 107, 110, 111, 116, 105, 118, 103, 102, 130, 107, 125, 118, 120, 124, 111, 124, 118, 126, 99, 96, 111, 96, 130, 112, 124, 111, 119, 117, 90, 124, 123, 113, 108, 132, 98, 99, 126, 128, 118, 108, 113, 127, 118, 110, 106, 113, 102, 117, 117, 119, 116, 117, 111, 109, 98, 97, 105, 99, 108, 99, 105, 129, 121, 132, 114, 129, 114, 147, 126, 120, 112, 126, 118, 118, 106, 117, 110, 121, 115, 99, 124, 127, 103, 119, 107, 128, 120, 112, 101, 106, 107, 111, 143, 118, 132, 119, 113, 102, 117, 100, 99, 119, 109, 117, 128, 99, 110, 109, 109, 117, 95, 105, 115, 107, 99, 125, 102, 111, 106, 110, 101, 110, 123, 110, 138, 115, 174, 114, 118, 117, 135, 119, 116, 111, 100, 117, 105, 119, 113, 113, 105, 137, 131, 112, 118, 104, 104, 93, 101, 103, 99, 112, 127, 105, 94, 106, 161, 106, 118, 109, 107, 101, 92, 109, 144, 116, 129, 115, 98, 116, 106, 123, 117, 123, 131, 117, 123, 114, 118, 96, 101, 111, 124, 108, 118, 118, 118, 107, 118, 106, 104, 116, 118, 96, 113, 119, 121, 99, 121, 118, 112, 98, 118, 107, 112, 108, 113, 106, 116, 111, 110, 101, 118, 112, 105, 107, 118, 119, 114, 114, 118, 116, 118, 109, 114, 99, 85, 115, 111, 113, 113, 103, 102, 102, 115, 101, 117, 119, 116, 126, 101, 115, 129, 110, 123, 120, 116, 130, 118, 123, 116, 111, 121, 110, 114, 118, 130, 108, 114, 113, 111, 124, 120, 106, 119, 122, 109, 124, 126, 118, 125, 114, 117, 122, 118, 109, 118, 113, 126, 113, 131, 105, 96, 114, 125, 103, 121, 129, 120, 123, 126, 102, 102, 154, 109, 124, 111, 123, 106, 117, 116, 105, 111, 123, 113, 116, 139, 122, 103, 120, 99, 128, 118, 116, 137, 129, 115, 127, 125, 119, 103, 112, 122, 97, 120, 120, 128, 130, 110, 137, 111, 106, 121, 99, 134, 115, 111, 112, 108, 114, 104, 116, 97, 102, 106, 110, 120, 128, 112, 108, 114, 98, 99, 116, 123, 103, 98, 129, 131, 102, 115, 124, 137, 116, 109, 118, 114, 119, 120, 112, 128, 119, 117, 109, 111, 110, 119, 110, 134, 109, 106, 133, 126, 114, 105, 114, 119, 99, 98, 126, 149, 101, 107, 138, 117, 114, 145, 121, 122, 128, 125, 122, 120, 111, 123, 125, 107, 116, 123, 108, 116, 106, 142, 139, 112, 113, 116, 110, 114, 141, 125, 114, 103, 116, 112, 109, 121, 113, 95, 99, 119, 109, 118, 135, 115, 124, 107, 109, 111, 123, 109, 130, 104, 123, 121, 112, 117, 116, 98, 106, 118, 120, 121, 115, 124, 102, 123, 126, 104, 119, 119, 129, 119, 114, 124, 107, 118, 117, 113, 117, 119, 123, 113, 124, 129, 119, 120, 116, 115, 118, 111, 110, 120, 107, 127, 132, 122, 131, 146, 122, 115, 117, 111, 112, 145, 108, 80, 102, 119, 113, 119, 109, 125, 118, 110, 125, 112, 107, 113, 112, 126, 112, 171, 123, 118, 119, 124, 107, 82, 107, 111, 125, 129, 119, 113, 120, 102, 114, 140, 114, 98, 117, 118, 125, 116, 116, 153, 124, 120, 108, 123, 124, 123, 131, 125, 118, 122, 112, 128, 110, 134, 100, 120, 114, 123, 127, 115, 118, 112, 128, 104, 117, 101, 104, 120, 95, 110, 105, 118, 102, 117, 112, 99, 114, 113, 101, 116, 127, 106, 103, 119, 115, 115, 118, 116, 116, 119, 135, 114, 123, 109, 123, 117, 113, 98, 118, 124, 112, 113, 106, 112, 101, 114, 110, 128, 111, 112, 105, 122, 125, 111, 104, 119, 135, 113, 120, 131, 110, 121, 115, 111, 123, 109, 108, 111, 122, 110, 125, 112, 108, 117, 128, 108, 113, 102, 117, 110, 104, 92, 130, 114, 126, 130, 119, 97, 116, 142, 129, 105, 120, 118, 102, 114, 114, 106, 107, 107, 124, 113, 114, 144, 150, 111, 114, 105, 126, 122, 113, 124, 88, 126, 92, 105, 98, 97, 128, 121, 121, 106, 129, 122, 107, 122, 110, 100, 95, 113, 109, 91, 98, 107, 101, 116, 114, 111, 107, 131, 118, 124, 109, 119, 140, 112, 133, 120, 134, 116, 101, 128, 94, 134, 106, 120, 120, 127, 113, 109, 136, 129, 119, 105, 110, 102, 117, 116, 100, 103, 132, 96, 103, 127, 125, 119, 124, 123, 102, 119, 127, 99, 104, 116, 101, 120, 105, 114, 136, 80, 145, 117, 114, 92, 113, 132, 124, 145, 121, 114, 95, 108, 113, 118, 123, 117, 102, 111, 133, 107, 102, 110, 107, 130, 98, 110, 146, 111, 101, 118, 98, 143, 105, 115, 112, 106, 110, 128, 122, 110, 109, 134, 120, 127, 101, 126, 106, 85, 113, 119, 117, 97, 108, 132, 113, 115, 118, 112, 108, 92, 108, 136, 119, 89, 114, 127, 126, 81, 97, 121, 123, 137, 118, 100, 109, 86, 116, 153, 120, 108, 127, 125, 135, 116, 125, 115, 96, 95, 112, 100, 111, 103, 115, 125, 119, 124, 114, 106, 107, 141, 93, 117, 112, 115, 100, 109, 111, 117, 118, 128, 131, 95, 117, 119, 110, 104, 112, 122, 136, 100, 97, 119, 127, 127, 96, 105, 145, 120, 131, 94, 113, 89, 119, 115, 117, 109, 126, 109, 105, 128, 125, 106, 108, 121, 133, 122, 120, 112, 121, 127, 105, 107, 105, 108, 106, 109, 102, 117, 140, 123, 124, 111, 115, 116, 105, 122, 111, 125, 133, 100, 99, 140, 126, 110, 138, 117, 107, 116, 108, 91, 125, 135, 117, 126, 120, 119, 116, 111, 132, 93, 106, 137, 96, 103, 141, 92, 113, 117, 129, 117, 117, 124, 125, 109, 101, 122, 102, 117, 117, 109, 106, 107, 115, 116, 106, 123, 119, 103, 118, 99, 108, 129, 129, 125, 109, 122, 110, 127, 101, 104, 119, 125, 114, 109, 127, 137, 139, 126, 126, 99, 101, 116, 114, 139, 114, 143, 99, 118, 95, 113, 140, 120, 151, 126, 115, 123, 111, 106, 111, 111, 107, 117, 110, 178, 127, 115, 114, 105, 161, 119, 106, 117, 121, 121, 123, 117, 130, 133, 72, 106, 97, 117, 125, 111, 110, 137, 139, 123, 118, 121, 96, 121, 99, 116, 117, 90, 139, 100, 91, 102, 127, 111, 116, 123, 132, 96, 138, 104, 103, 95, 107, 130, 117, 121, 104, 121, 93, 118, 123, 110, 115, 120, 123, 116, 104, 125, 105, 118, 106, 117, 115, 114, 119, 126, 137, 130, 119, 127, 122, 114, 109, 114, 118, 107, 121, 119, 102, 102, 134, 115, 106, 132, 110, 124, 122, 109, 121, 129, 117, 94, 128, 125, 114, 112, 92, 99, 117, 111, 115, 110, 121, 109, 110, 115, 124, 124, 148, 134, 103, 108, 110, 116, 88, 112, 134, 103, 91, 104, 108, 123, 131, 99, 95, 106, 127, 117, 122, 122, 106, 103, 110, 121, 97, 110, 111, 109, 120, 124, 110, 128, 134, 120, 136, 99, 101, 106, 106, 101, 104, 111, 132, 100, 149, 94, 125, 87, 123, 114, 100, 134, 103, 122, 117, 126, 114, 106, 120, 123, 111, 117, 112, 95, 114, 119, 114, 124, 116, 166, 138, 129, 95, 106, 129, 132, 123, 100, 105, 111, 110, 118, 144, 112, 128, 135, 143, 122, 98, 139, 110, 100, 125, 118, 114, 109, 115, 115, 102, 110, 124, 92, 124, 119, 114, 112, 139, 128, 121, 87, 114, 131, 113, 103, 123, 109, 114, 116, 119, 127, 77, 121, 123, 101, 118, 94, 133, 120, 126, 122, 106, 111, 92, 117, 108, 113, 115, 94, 126, 121, 110, 106, 103, 112, 135, 133, 123, 116, 99, 115, 111, 104, 113, 117, 109, 108, 119, 114, 93, 112, 127, 123, 106, 124, 124, 105, 143, 124, 116, 122, 109, 130, 107, 84, 121, 95, 116, 105, 132, 102, 105, 106, 115, 136, 131, 120, 133, 119, 118, 113, 108, 121, 111, 113, 118, 113, 120, 110, 136, 118, 85, 121, 123, 124, 129, 114, 106, 110, 127, 88, 106, 131, 114, 100, 120, 120, 133, 146, 122, 101, 118, 123, 95, 115, 125, 113, 124, 118, 123, 115, 103, 126, 131, 99, 105, 126, 119, 117, 145, 116, 145, 123, 116, 119, 121, 125, 140, 92, 98, 109, 101, 114, 117, 113, 110, 112, 136, 116, 113, 115, 124, 107, 105, 102, 107, 94, 118, 121, 88, 135, 116, 115, 114, 103, 118, 93, 121, 96, 136, 117, 110, 121, 116, 102, 115, 94, 130, 108, 126, 101, 144, 119, 126, 120, 118, 119, 115, 132, 111, 112, 124, 114, 113, 113, 105, 100, 114, 112, 99, 99, 111, 120, 130, 123, 116, 139, 108, 108, 103, 118, 126, 111, 121, 116, 106, 111, 107, 110, 103, 128, 136, 119, 100, 130, 107, 122, 101, 77, 101, 142, 96, 97, 117, 134, 102, 95, 113, 97, 104, 125, 80, 128, 111, 125, 133, 110, 111, 96, 109, 124, 129, 131, 112, 112, 128, 109, 104, 124, 118, 124, 119, 139, 116, 103, 117, 119, 128, 117, 107, 98, 95, 114, 128, 121, 112, 124, 117, 106, 117, 114, 113, 123, 109, 122, 132, 132, 105, 133, 126, 123, 134, 112, 110, 105, 117, 121, 125, 116, 120, 106, 112, 111, 130, 143, 119, 118, 107, 104, 129, 110, 103, 122, 122, 137, 122, 108, 120, 100, 131, 116, 116, 120, 131, 125, 150, 113, 123, 119, 151, 104, 117, 126, 142, 100, 115, 122, 114, 119, 113, 129, 128, 136, 136, 112, 109, 141, 115, 97, 131, 96, 122, 115, 103, 117, 125, 120, 120, 112, 120, 111, 109, 112, 111, 126, 120, 113, 99, 135, 112, 130, 118, 132, 114, 111, 112, 106, 114, 111, 104, 128, 144, 110, 102, 105, 111, 118, 105, 113, 124, 115, 120, 121, 107, 143, 142, 118, 118, 101, 119, 106, 102, 84, 114, 114, 121, 103, 98, 110, 133, 110, 120, 111, 107, 110, 111, 103, 129, 131, 124, 128, 138, 115, 105, 122, 111, 121, 140, 109, 109, 113, 121, 113, 116, 96, 118, 105, 120, 88, 112, 128, 110, 117, 136, 114, 110, 118, 119, 90, 132, 109, 129, 129, 108, 82, 109, 124, 123, 108, 120, 113, 113, 117, 94, 108, 95, 125, 101, 117, 120, 112, 107, 118, 124, 107, 113, 100, 139, 109, 116, 120, 119, 115, 117, 135, 124, 115, 111, 110, 110, 119, 119, 119, 136, 108, 104, 96, 120, 103, 103, 119, 110, 82, 110, 101, 119, 102, 124, 131, 108, 114, 111, 120, 110, 108, 123, 114, 125, 104, 124, 113, 123, 97, 114, 133, 105, 120, 116, 121, 109, 112, 108, 115, 109, 107, 118, 97, 107, 106, 113, 105, 116, 126, 113, 119, 117, 123, 111, 118, 102, 102, 108, 94, 115, 114, 95, 121, 124, 130, 106, 129, 102, 107, 108, 112, 127, 123, 139, 115, 101, 107, 122, 116, 107, 108, 108, 110, 114, 111, 108, 108, 107, 138, 103, 104, 104, 104, 132, 145, 136, 118, 113, 100, 114, 105, 112, 110, 116, 114, 106, 93, 112, 138, 110, 100, 125, 119, 133, 115, 137, 112, 112, 148, 106, 113, 132, 112, 117, 140, 103, 123, 122, 111, 118, 105, 107, 117, 116, 111, 110, 120, 100, 119, 119, 110, 107, 110, 114, 127, 116, 105, 138, 108, 122, 114, 127, 115, 133, 114, 113, 137, 123, 131, 115, 109, 123, 119, 99, 115, 96, 103, 116, 127, 116, 160, 105, 133, 101, 123, 92, 110, 101, 126, 95, 110, 107, 106, 122, 126, 116, 109, 125, 134, 112, 103, 108, 109, 133, 109, 102, 97, 119, 120, 130, 114, 134, 131, 113, 107, 121, 115, 120, 118, 116, 131, 92, 120, 132, 111, 109, 122, 108, 102, 120, 122, 140, 103, 103, 122, 97, 118, 119, 100, 120, 104, 113, 93, 116, 110, 132, 114, 124, 110, 111, 113, 104, 136, 116, 117, 129, 111, 123, 120, 105, 100, 118, 128, 91, 111, 108, 121, 112, 131, 122, 117, 111, 104, 104, 110, 144, 112, 121, 106, 118, 121, 113, 121, 121, 119, 110, 107, 125, 126, 125, 113, 97, 112, 95, 107, 125, 111, 109, 113, 128, 111, 106, 122, 108, 107, 133, 104, 140, 106, 111, 97, 112, 121, 99, 127, 108, 119, 115, 104, 126, 124, 115, 117, 118, 110, 116, 105, 112, 127, 123, 132, 91, 115, 139, 120, 99, 114, 112, 109, 104, 113, 124, 136, 116, 114, 104, 98, 118, 107, 132, 123, 112, 118, 110, 127, 113, 97, 114, 129, 125, 112, 113, 130, 111, 120, 109, 124, 135, 110, 114, 118, 106, 122, 122, 115, 106, 108, 124, 114, 117, 114, 109, 108, 109, 107, 103, 100, 125, 90, 108, 118, 107, 115, 112, 108, 130, 120, 120, 139, 117, 120, 116, 96, 118, 128, 97, 128, 107, 110, 124, 99, 101, 129, 96, 119, 103, 115, 105, 109, 115, 121, 103, 136, 108, 103, 118, 107, 104, 106, 112, 99, 105, 127, 105, 105, 124, 118, 108, 95, 111, 124, 105, 119, 117, 130, 108, 114, 118, 146, 135, 111, 107, 128, 133, 105, 108, 91, 95, 120, 110, 115, 105, 107, 105, 119, 111, 131, 109, 122, 119, 115, 109, 97, 120, 120, 116, 105, 116, 115, 127, 124, 117, 114, 124, 131, 121, 138, 119, 141, 123, 138, 120, 118, 104, 111, 112, 106, 117, 122, 120, 108, 119, 119, 111, 124, 100, 118, 114, 105, 105, 112, 116, 121, 140, 117, 122, 123, 119, 118, 113, 126, 115, 112, 110, 115, 104, 119, 128, 103, 102, 123, 111, 110, 113, 119, 140, 111, 113, 115, 111, 118, 135, 109, 120, 117, 131, 112, 115, 116, 127, 113, 133, 122, 91, 114, 133, 129, 97, 124, 120, 101, 118, 109, 126, 131, 111, 119, 135, 113, 127, 105, 116, 115, 115, 112, 102, 114, 103, 110, 124, 112, 108, 112, 109, 118, 120, 122, 121, 125, 89, 118, 114, 121, 116, 121, 103, 131, 109, 120, 130, 112, 110, 112, 108, 111, 117, 107, 103, 116, 119, 103, 123, 111, 122, 112, 117, 112, 104, 112, 125, 107, 110, 111, 114, 114, 111, 116, 120, 122, 111, 127, 114, 104, 123, 127, 135, 118, 128, 121, 104, 124, 105, 114, 129, 126, 101, 124, 126, 132, 108, 61, 103, 130, 124, 118, 119, 110, 114, 125, 109, 123, 112, 111, 121, 118, 124, 114, 114, 114, 109, 130, 131, 116, 128, 118, 119, 115, 123, 124, 120, 127, 116, 116, 119, 106, 108, 115, 118, 113, 118, 125, 132, 124, 103, 117, 107, 119, 118, 101, 110, 112, 111, 120, 120, 110, 100, 110, 111, 110, 131, 119, 112, 117, 113, 111, 90, 116, 105, 125, 124, 116, 124, 128, 130, 133, 130, 109, 130, 121, 116, 120, 120, 117, 117, 111, 105, 114, 106, 116, 100, 117, 116, 119, 115, 114, 109, 103, 127, 111, 115, 93, 119, 119, 96, 106, 92, 105, 126, 119, 120, 129, 109, 117, 114, 129, 116, 104, 102, 86, 121, 88, 108, 120, 110, 120, 127, 121, 119, 117, 115, 108, 133, 105, 123, 116, 121, 107, 116, 130, 110, 113, 94, 111, 112, 124, 106, 117, 117, 122, 110, 115, 115, 115, 108, 92, 130, 112, 122, 107, 107, 111, 108, 112, 104, 117, 113, 134, 119, 112, 104, 121, 116, 118, 120, 111, 112, 114, 122, 119, 107, 108, 123, 124, 126, 122, 109, 120, 115, 104, 118, 118, 127, 105, 117, 131, 121, 121, 106, 114, 121, 114, 123, 110, 116, 121, 118, 118, 118, 114, 123, 110, 119, 116, 131, 118, 166, 119, 108, 124, 112, 120, 118, 115, 101, 117, 125, 113, 119, 104, 121, 121, 106, 121, 103, 112, 107, 130, 126, 102, 112, 79, 112, 117, 120, 129, 111, 109, 132, 117, 123, 129, 123, 114, 104, 118, 96, 121, 115, 131, 91, 105, 114, 129, 105, 109, 115, 123, 127, 119, 109, 99, 110, 138, 120, 119, 106, 109, 100, 134, 120, 125, 113, 120, 116, 93, 94, 106, 133, 148, 119, 112, 124, 132, 120, 121, 120, 123, 106, 122, 101, 118, 125, 116, 135, 120, 116, 127, 86, 112, 115, 124, 128, 109, 102, 111, 149, 137, 122, 112, 123, 110, 118, 129, 110, 132, 130, 122, 118, 122, 104, 114, 129, 110, 135, 113, 125, 119, 120, 119, 124, 116, 119, 127, 115, 119, 118, 119, 105, 128, 108, 108, 112, 123, 101, 114, 118, 111, 111, 135, 90, 123, 101, 125, 108, 112, 119, 138, 95, 138, 125, 108, 124, 110, 116, 121, 118, 117, 111, 125, 120, 116, 108, 120, 127, 115, 103, 102, 105, 120, 104, 107, 111, 97, 126, 124, 113, 114, 94, 110, 124, 117, 124, 114, 114, 110, 126, 115, 93, 113, 110, 109, 106, 100, 116, 111, 107, 116, 119, 122, 121, 116, 105, 111, 116, 116, 125, 91, 108, 117, 111, 108, 115, 110, 118, 113, 137, 111, 108, 116, 96, 114, 119, 107, 124, 118, 102, 120, 130, 113, 112, 122, 113, 108, 107, 119, 105, 111, 103, 119, 112, 101, 111, 122, 116, 121, 111, 106, 124, 112, 110, 117, 131, 121, 115, 108, 94, 106, 128, 131, 119, 126, 116, 114, 124, 114, 117, 112, 108, 117, 123, 98, 138, 127, 117, 126, 126, 107, 118, 106, 146, 123, 108, 126, 125, 117, 115, 100, 111, 129, 119, 120, 105, 97, 116, 135, 116, 91, 110, 120, 117, 107, 116, 103, 112, 140, 113, 122, 110, 98, 126, 106, 118, 142, 104, 113, 128, 123, 130, 113, 110, 117, 100, 131, 99, 108, 117, 122, 112, 123, 116, 128, 136, 126, 118, 112, 112, 114, 122, 120, 109, 108, 97, 112, 110, 125, 111, 118, 124, 142, 126, 112, 113, 120, 112, 124, 123, 111, 122, 128, 114, 118, 96, 123, 125, 112, 111, 98, 106, 119, 121, 109, 122, 124, 105, 115, 104, 131, 111, 121, 108, 115, 112, 104, 128, 114, 113, 115, 115, 108, 128, 115, 125, 104, 111, 108, 114, 108, 105, 105, 119, 120, 123, 107, 112, 114, 119, 117, 116, 126, 116, 104, 111, 116, 123, 118, 110, 127, 115, 119, 100, 117, 102, 111, 121, 101, 107, 104, 102, 113, 139, 115, 123, 101, 107, 109, 119, 116, 132, 123, 113, 122, 104, 131, 112, 108, 126, 121, 125, 127, 96, 118, 111, 119, 108, 119, 123, 118, 112, 93, 108, 106, 99, 107, 109, 89, 128, 113, 114, 120, 133, 103, 100, 114, 121, 130, 104, 111, 116, 115, 108, 111, 106, 118, 121, 127, 111, 108, 130, 123, 131, 116, 122, 120, 119, 98, 116, 117, 110, 117, 106, 104, 113, 103, 112, 112, 110, 118, 135, 104, 113, 119, 107, 123, 117, 112, 119, 118, 121, 113, 114, 120, 126, 114, 118, 102, 113, 126, 130, 91, 143, 114, 118, 123, 133, 135, 123, 110, 100, 126, 119, 111, 118, 117, 96, 113, 108, 104, 103, 109, 117, 111, 121, 127, 125, 129, 118, 128, 126, 108, 112, 125, 109, 109, 127, 123, 106, 114, 110, 126, 117, 120, 115, 115, 118, 115, 111, 128, 110, 117, 121, 101, 102, 106, 110, 143, 123, 115, 106, 109, 110, 108, 106, 90, 109, 140, 123, 119, 111, 104, 105, 123, 115, 124, 120, 111, 112, 118, 121, 142, 100, 107, 104, 116, 101, 105, 110, 106, 130, 112, 114, 117, 128, 104, 115, 122, 107, 114, 111, 113, 115, 101, 138, 117, 122, 108, 108, 108, 130, 122, 111, 132, 114, 129, 130, 122, 111, 126, 122, 122, 108, 99, 139, 111, 115, 135, 128, 122, 117, 104, 118, 125, 127, 117, 118, 121, 117, 119, 99, 116, 120, 122, 97, 118, 111, 104, 118, 116, 126, 111, 119, 129, 106, 125, 116, 120, 122, 110, 100, 123, 113, 108, 122, 106, 124, 108, 117, 113, 103, 117, 122, 147, 126, 117, 130, 114, 119, 130, 100, 118, 117, 123, 105, 118, 124, 111, 121, 102, 121, 105, 124, 124, 117, 109, 78, 122, 127, 121, 130, 130, 94, 122, 119, 114, 115, 125, 94, 119, 120, 121, 120, 103, 123, 119, 112, 118, 125, 106, 115, 115, 116, 123, 123, 122, 124, 108, 97, 108, 104, 112, 115, 120, 95, 123, 111, 117, 120, 120, 134, 126, 115, 99, 124, 113, 126, 118, 115, 110, 119, 108, 109, 121, 119, 109, 124, 123, 109, 129, 109, 112, 133, 117, 118, 111, 114, 101, 115, 120, 127, 113, 103, 111, 110, 121, 123, 96, 111, 112, 105, 118, 119, 91, 117, 106, 118, 118, 108, 110, 108, 107, 125, 116, 114, 126, 120, 132, 103, 120, 109, 117, 110, 97, 125, 119, 101, 112, 116, 112, 114, 111, 113, 126, 118, 118, 124, 108, 119, 113, 126, 123, 118, 103, 124, 118, 117, 102, 127, 118, 111, 108, 116, 117, 102, 128, 104, 125, 124, 121, 122, 124, 125, 108, 111, 112, 112, 113, 131, 123, 105, 121, 129, 122, 116, 112, 122, 123, 125, 114, 126, 115, 128, 105, 115, 118, 127, 126, 129, 125, 119, 122, 111, 119, 119, 99, 105, 113, 114, 123, 117, 109, 108, 111, 126, 117, 100, 108, 119, 121, 105, 133, 126, 80, 112, 108, 134, 140, 103, 110, 124, 117, 104, 128, 123, 117, 121, 122, 106, 116, 126, 121, 114, 120, 109, 127, 122, 118, 108, 114, 115, 112, 118, 109, 110, 124, 112, 119, 112, 114, 113, 127, 124, 118, 108, 109, 125, 104, 120, 115, 116, 102, 126, 121, 107, 126, 116, 100, 103, 127, 110, 118, 115, 124, 110, 124, 124, 108, 124, 117, 123, 110, 124, 121, 119, 114, 107, 123, 133, 114, 116, 111, 114, 112, 119, 113, 136, 107, 112, 125, 110, 113, 124, 118, 123, 133, 125, 112, 124, 118, 129, 125, 125, 114, 112, 115, 112, 120, 115, 109, 103, 121, 117, 135, 114, 116, 105, 126, 119, 110, 121, 123, 131, 119, 120, 108, 115, 121, 123, 104, 122, 116, 126, 114, 116, 110, 119, 108, 130, 116, 117, 111, 111, 133, 117, 107, 104, 96, 106, 118, 108, 120, 120, 103, 128, 102, 119, 104, 130, 123, 117, 127, 111, 111, 114, 118, 106, 118, 124, 116, 120, 125, 95, 108, 114, 97, 115, 113, 118, 124, 116, 96, 112, 117, 108, 109, 108, 118, 113, 113, 116, 107, 101, 100, 109, 113, 126, 115, 113, 137, 104, 114, 117, 132, 87, 122, 106, 112, 119, 110, 115, 124, 121, 122, 132, 114, 126, 112, 139, 117, 122, 126, 109, 128, 118, 103, 155, 111, 120, 113, 128, 118, 118, 116, 108, 104, 110, 127, 129, 123, 122, 119, 127, 105, 119, 116, 122, 106, 108, 124, 118, 108, 109, 116, 113, 121, 108, 122, 130, 106, 117, 121, 114, 113, 110, 131, 112, 113, 127, 116, 113, 119, 129, 119, 103, 129, 111, 115, 124, 113, 114, 115, 106, 123, 119, 108, 107, 106, 123, 98, 121, 116, 127, 107, 116, 125, 103, 108, 122, 128, 117, 117, 120, 115, 138, 81, 108, 115, 110, 118, 123, 115, 103, 108, 139, 132, 117, 116, 123, 102, 124, 103, 110, 101, 127, 115, 107, 113, 125, 114, 105, 109, 103, 112, 140, 117, 119, 117, 110, 110, 115, 114, 122, 153, 124, 109, 113, 122, 116, 107, 113, 115, 108, 99, 122, 110, 133, 111, 105, 125, 101, 110, 107, 120, 117, 123, 118, 135, 119, 115, 91, 116, 109, 122, 133, 126, 135, 105, 120, 115, 114, 115, 140, 109, 139, 99, 111, 134, 104, 109, 113, 104, 116, 123, 122, 127, 105, 97, 113, 132, 114, 121, 112, 127, 107, 128, 113, 107, 103, 119, 110, 108, 125, 106, 114, 124, 116, 122, 103, 111, 129, 130, 115, 108, 130, 125, 110, 119, 108, 138, 111, 95, 119, 115, 130, 143, 113, 130, 124, 103, 112, 116, 105, 106, 127, 143, 127, 114, 115, 115, 115, 120, 103, 119, 98, 112, 103, 124, 111, 132, 113, 102, 115, 117, 116, 115, 127, 118, 110, 90, 118, 117, 115, 124, 127, 104, 120, 102, 133, 101, 142, 98, 117, 111, 115, 103, 111, 112, 104, 117, 128, 117, 100, 122, 115, 123, 123, 115, 109, 122, 108, 124, 113, 104, 119, 104, 112, 105, 129, 131, 124, 104, 109, 109, 112, 121, 123, 113, 109, 130, 125, 134, 129, 107, 117, 110, 124, 108, 116, 123, 118, 128, 103, 118, 126, 127, 102, 131, 121, 118, 114, 113, 112, 116, 120, 117, 109, 126, 108, 107, 110, 117, 100, 120, 125, 126, 119, 110, 112, 129, 112, 109, 119, 112, 116, 118, 110, 101, 114, 110, 116, 109, 120, 157, 120, 123, 120, 114, 117, 118, 117, 117, 134, 111, 106, 118, 124, 125, 114, 119, 112, 100, 118, 102, 118, 108, 116, 120, 116, 115, 112, 118, 137, 106, 121, 123, 124, 116, 120, 117, 112, 117, 108, 111, 127, 95, 117, 112, 130, 108, 111, 118, 105, 129, 111, 115, 115, 130, 121, 115, 117, 116, 107, 126, 115, 114, 114, 112, 115, 108, 110, 111, 112, 103, 113, 106, 124, 116, 111, 124, 119, 120, 125, 100, 136, 123, 117, 102, 115, 105, 128, 113, 115, 116, 119, 114, 120, 136, 119, 120, 109, 135, 100, 109, 134, 116, 109, 114, 127, 102, 99, 95, 111, 109, 117, 108, 110, 116, 106, 113, 119, 109, 112, 105, 114, 102, 112, 110, 116, 117, 114, 116, 121, 137, 101, 130, 108, 110, 124, 103, 113, 124, 105, 127, 98, 113, 118, 115, 111, 112, 104, 121, 97, 119, 102, 88, 120, 109, 111, 118, 108, 120, 114, 124, 136, 120, 99, 127, 125, 113, 107, 112, 117, 117, 133, 134, 102, 117, 114, 121, 145, 111, 127, 114, 90, 103, 112, 108, 103, 118, 117, 104, 111, 105, 119, 111, 123, 115, 112, 121, 124, 110, 123, 117, 107, 101, 119, 112, 133, 117, 119, 115, 133, 129, 118, 120, 133, 105, 110, 121, 111, 118, 134, 113, 115, 121, 123, 113, 106, 117, 113, 95, 105, 109, 126, 108, 126, 113, 115, 114, 113, 112, 119, 126, 114, 117, 108, 138, 106, 115, 112, 126, 141, 120, 112, 124, 108, 107, 112, 122, 110, 126, 113, 109, 107, 130, 123, 110, 115, 115, 119, 115, 120, 110, 105, 106, 114, 120, 120, 118, 111, 124, 111, 106, 119, 123, 113, 110, 103, 113, 123, 97, 109, 117, 128, 121, 113, 109, 118, 116, 116, 120, 113, 114, 118, 111, 113, 120, 101, 122, 102, 103, 122, 108, 100, 112, 106, 122, 108, 112, 136, 124, 115, 117, 104, 116, 118, 135, 119, 117, 115, 110, 118, 112, 106, 133, 115, 126, 107, 94, 111, 122, 103, 100, 106, 108, 114, 127, 116, 120, 113, 116, 119, 112, 124, 122, 131, 110, 119, 114, 113, 106, 99, 115, 107, 117, 129, 111, 125, 115, 121, 130, 121, 128, 105, 117, 114, 119, 131, 103, 123, 111, 116, 121, 120, 107, 110, 112, 114, 121, 115, 106, 121, 107, 105, 123, 118, 124, 122, 108, 124, 118, 117, 113, 120, 121, 121, 110, 113, 123, 108, 109, 106, 118, 125, 118, 111, 98, 103, 127, 114, 121, 101, 129, 120, 107, 106, 111, 113, 117, 130, 113, 126, 114, 115, 115, 115, 119, 121, 118, 122, 122, 128, 122, 108, 111, 125, 111, 119, 131, 117, 126, 123, 123, 133, 117, 113, 126, 116, 107, 113, 128, 141, 109, 129, 123, 114, 114, 115, 111, 115, 122, 107, 118, 110, 111, 117, 117, 124, 114, 113, 116, 119, 111, 100, 131, 116, 109, 91, 110, 118, 111, 112, 122, 115, 101, 119, 119, 133, 114, 123, 111, 99, 113, 120, 129, 115, 136, 111, 115, 108, 116, 110, 125, 107, 115, 118, 110, 128, 122, 110, 108, 111, 122, 114, 120, 125, 112, 123, 115, 107, 113, 122, 122, 104, 97, 106, 110, 113, 123, 107, 111, 107, 111, 123, 107, 112, 125, 119, 122, 136, 121, 114, 116, 119, 107, 138, 115, 130, 117, 116, 124, 107, 119, 110, 118, 117, 119, 130, 115, 99, 115, 109, 120, 115, 121, 105, 130, 112, 116, 112, 99, 109, 120, 108, 114, 115, 125, 122, 119, 120, 111, 121, 119, 114, 104, 122, 110, 117, 123, 121, 109, 120, 109, 118, 106, 116, 117, 112, 113, 109, 116, 121, 97, 111, 119, 104, 118, 115, 128, 109, 114, 116, 110, 117, 118, 107, 128, 113, 120, 111, 125, 115, 97, 113, 110, 112, 117, 101, 107, 111, 134, 118, 114, 130, 111, 123, 127, 123, 119, 118, 127, 114, 109, 115, 114, 120, 117, 115, 109, 120, 113, 112, 125, 105, 104, 136, 131, 111, 113, 105, 115, 104, 112, 108, 121, 116, 119, 125, 115, 100, 105, 107, 115, 107, 104, 121, 120, 113, 128, 103, 101, 123, 132, 116, 104, 121, 116, 112, 126, 117, 116, 92, 114, 116, 107, 96, 109, 96, 101, 107, 117, 131, 133, 113, 113, 103, 127, 118, 107, 110, 119, 109, 110, 121, 99, 113, 122, 93, 122, 115, 109, 111, 89, 101, 120, 125, 107, 122, 135, 117, 110, 115, 126, 123, 111, 109, 109, 113, 122, 109, 101, 119, 106, 113, 122, 123, 103, 117, 114, 108, 119, 107, 102, 108, 119, 117, 88, 120, 110, 107, 124, 130, 113, 121, 114, 131, 106, 119, 124, 117, 102, 123, 104, 116, 113, 126, 113, 107, 120, 97, 122, 120, 109, 101, 113, 119, 131, 168, 125, 113, 123, 131, 114, 111, 108, 107, 86, 117, 117, 111, 112, 108, 112, 114, 107, 114, 115, 116, 134, 128, 118, 101, 122, 103, 107, 107, 111, 110, 117, 105, 102, 124, 133, 116, 128, 120, 124, 122, 112, 125, 113, 124, 107, 132, 106, 133, 97, 115, 125, 111, 115, 126, 98, 115, 92, 115, 125, 97, 118, 127, 126, 121, 98, 117, 109, 111, 118, 113, 104, 124, 103, 131, 114, 117, 116, 119, 116, 107, 106, 91, 115, 126, 120, 118, 105, 108, 106, 109, 118, 123, 103, 121, 121, 105, 134, 103, 148, 129, 120, 114, 101, 117, 130, 110, 112, 109, 116, 114, 142, 110, 128, 118, 110, 110, 104, 111, 119, 148, 105, 126, 105, 111, 119, 150, 127, 117, 121, 132, 97, 123, 107, 124, 109, 109, 106, 104, 107, 116, 128, 116, 120, 105, 119, 117, 104, 108, 105, 112, 117, 129, 114, 119, 123, 126, 112, 113, 120, 111, 100, 133, 110, 114, 109, 109, 107, 111, 112, 116, 106, 134, 119, 115, 139, 125, 120, 115, 125, 93, 108, 111, 122, 102, 115, 117, 123, 117, 106, 112, 116, 129, 111, 110, 114, 124, 99, 116, 117, 118, 108, 120, 92, 108, 121, 114, 111, 115, 115, 110, 114, 136, 121, 115, 111, 107, 109, 112, 112, 102, 118, 144, 109, 113, 101, 108, 143, 115, 111, 107, 120, 121, 104, 107, 108, 120, 121, 118, 117, 113, 114, 111, 95, 109, 117, 106, 97, 110, 119, 117, 113, 112, 114, 121, 114, 105, 103, 122, 125, 111, 106, 119, 109, 127, 115, 109, 119, 118, 112, 99, 119, 117, 112, 120, 93, 117, 116, 134, 106, 119, 125, 104, 118, 123, 105, 151, 109, 120, 109, 119, 116, 94, 110, 110, 122, 125, 116, 122, 113, 114, 125, 117, 106, 123, 120, 97, 116, 116, 121, 112, 118, 125, 117, 117, 111, 115, 111, 111, 116, 90, 116, 96, 108, 101, 120, 103, 118, 120, 112, 109, 114, 114, 113, 121, 105, 111, 119, 106, 109, 106, 106, 119, 123, 115, 104, 99, 96, 116, 135, 110, 115, 113, 118, 115, 145, 111, 129, 114, 113, 116, 118, 104, 105, 115, 119, 143, 115, 131, 121, 112, 123, 124, 103, 126, 118, 111, 111, 105, 104, 106, 116, 104, 104, 126, 118, 118, 101, 111, 120, 119, 106, 113, 110, 127, 123, 111, 99, 107, 124, 102, 117, 127, 122, 108, 135, 103, 118, 121, 116, 122, 105, 116, 125, 110, 116, 103, 122, 133, 105, 122, 132, 107, 117, 110, 121, 128, 122, 111, 105, 129, 109, 109, 123, 109, 114, 130, 109, 110, 115, 108, 133, 111, 110, 118, 106, 116, 113, 112, 105, 123, 124, 99, 142, 128, 111, 130, 80, 127, 113, 118, 111, 134, 122, 110, 110, 115, 111, 108, 115, 102, 107, 104, 120, 105, 118, 103, 129, 110, 115, 119, 105, 103, 118, 106, 98, 117, 90, 122, 111, 99, 117, 125, 119, 114, 105, 118, 113, 111, 100, 109, 109, 113, 124, 108, 130, 111, 111, 125, 119, 111, 126, 121, 109, 116, 115, 125, 102, 113, 125, 114, 115, 112, 121, 112, 118, 128, 108, 106, 106, 96, 112, 102, 112, 109, 123, 113, 111, 113, 121, 110, 125, 128, 104, 118, 106, 107, 124, 128, 115, 117, 120, 109, 116, 116, 115, 114, 124, 116, 118, 112, 111, 123, 113, 102, 105, 98, 118, 115, 116, 101, 124, 109, 117, 134, 116, 98, 115, 96, 106, 124, 150, 132, 115, 118, 110, 121, 130, 112, 113, 115, 120, 86, 127, 138, 130, 119, 113, 129, 107, 114, 106, 126, 137, 123, 102, 118, 116, 141, 141, 112, 127, 128, 117, 132, 117, 124, 114, 123, 119, 118, 127, 107, 112, 118, 102, 121, 114, 111, 129, 102, 124, 112, 132, 120, 124, 123, 125, 111, 116, 97, 117, 86, 120, 107, 112, 125, 110, 125, 95, 127, 120, 121, 101, 96, 98, 107, 115, 109, 131, 121, 123, 112, 108, 118, 112, 128, 105, 120, 119, 118, 134, 116, 113, 107, 120, 110, 121, 114, 116, 112, 115, 115, 132, 121, 124, 93, 112, 97, 118, 112, 107, 98, 120, 118, 123, 113, 118, 110, 119, 118, 117, 123, 121, 119, 119, 109, 126, 122, 124, 111, 117, 111, 117, 117, 110, 116, 126, 122, 118, 118, 94, 123, 114, 125, 117, 97, 121, 108, 107, 121, 110, 111, 112, 116, 106, 113, 117, 128, 122, 104, 120, 120, 117, 117, 113, 125, 103, 124, 123, 108, 107, 106, 118, 106, 118, 110, 106, 108, 120, 108, 107, 111, 115, 113, 120, 112, 105, 108, 103, 139, 109, 109, 112, 109, 121, 109, 120, 105, 121, 108, 113, 118, 126, 112, 104, 106, 129, 107, 120, 111, 104, 111, 125, 136, 130, 125, 109, 112, 111, 127, 104, 121, 108, 115, 133, 128, 117, 113, 129, 123, 120, 99, 124, 123, 115, 107, 102, 120, 107, 108, 114, 123, 109, 108, 143, 130, 112, 111, 114, 115, 117, 109, 104, 100, 118, 114, 119, 101, 109, 103, 119, 114, 104, 110, 137, 127, 106, 88, 119, 106, 115, 117, 140, 107, 123, 115, 123, 115, 98, 113, 133, 125, 102, 124, 120, 123, 121, 119, 118, 122, 123, 118, 126, 97, 118, 115, 122, 115, 119, 92, 126, 114, 109, 136, 105, 116, 112, 101, 119, 115, 104, 121, 111, 115, 126, 119, 102, 111, 117, 121, 133, 123, 122, 127, 131, 100, 106, 123, 116, 117, 101, 117, 132, 105, 124, 126, 111, 94, 113, 117, 125, 113, 123, 123, 117, 97, 108, 118, 118, 124, 132, 119, 121, 99, 103, 109, 108, 123, 111, 125, 131, 100, 108, 118, 136, 120, 112, 125, 115, 102, 103, 114, 115, 126, 118, 107, 113, 113, 104, 107, 107, 120, 111, 135, 114, 127, 113, 108, 129, 113, 118, 109, 125, 125, 115, 116, 114, 110, 137, 106, 120, 127, 115, 123, 124, 115, 113, 116, 123, 132, 112, 125, 126, 120, 111, 121, 122, 107, 122, 123, 113, 125, 113, 125, 116, 117, 109, 98, 107, 121, 118, 106, 123, 111, 110, 122, 131, 120, 125, 118, 120, 121, 116, 106, 124, 103, 109, 112, 119, 85, 112, 104, 114, 120, 109, 111, 114, 120, 110, 117, 119, 108, 113, 112, 127, 124, 121, 114, 139, 112, 117, 111, 118, 119, 110, 122, 108, 102, 106, 125, 116, 124, 106, 116, 114, 112, 124, 97, 120, 107, 134, 123, 126, 111, 98, 110, 123, 122, 113, 108, 117, 115, 115, 122, 119, 112, 133, 108, 106, 143, 111, 117, 108, 111, 114, 105, 109, 115, 114, 138, 119, 125, 111, 107, 109, 110, 106, 110, 114, 127, 112, 113, 102, 122, 123, 109, 113, 118, 119, 119, 124, 111, 130, 125, 124, 124, 100, 94, 111, 110, 113, 115, 116, 117, 128, 128, 131, 109, 122, 110, 115, 129, 117, 119, 103, 117, 114, 103, 119, 97, 103, 106, 126, 122, 121, 111, 110, 115, 118, 107, 125, 116, 109, 122, 106, 125, 122, 111, 122, 127, 116, 124, 116, 117, 78, 125, 108, 104, 117, 111, 109, 111, 115, 117, 113, 116, 103, 114, 104, 110, 121, 115, 122, 124, 108, 120, 97, 131, 89, 121, 127, 121, 119, 109, 118, 116, 115, 110, 128, 126, 119, 110, 116, 117, 118, 106, 118, 116, 114, 119, 102, 111, 116, 115, 118, 121, 124, 117, 128, 113, 102, 109, 119, 107, 123, 90, 109, 120, 122, 138, 123, 109, 117, 120, 127, 119, 115, 116, 113, 110, 113, 115, 111, 111, 116, 118, 125, 118, 110, 115, 108, 126, 134, 116, 112, 128, 134, 118, 125, 127, 115, 116, 120, 112, 108, 109, 123, 114, 113, 107, 129, 108, 111, 108, 117, 126, 122, 117, 112, 113, 106, 124, 112, 112, 119, 120, 134, 103, 115, 113, 119, 112, 118, 123, 112, 115, 113, 137, 124, 109, 120, 93, 117, 113, 110, 118, 114, 113, 109, 118, 111, 114, 119, 114, 102, 110, 115, 117, 121, 107, 120, 117, 122, 115, 134, 115, 128, 115, 144, 123, 135, 117, 113, 118, 114, 109, 120, 107, 112, 110, 86, 112, 121, 118, 106, 108, 120, 119, 115, 122, 115, 121, 105, 123, 113, 108, 123, 122, 107, 140, 127, 119, 120, 110, 111, 126, 118, 128, 111, 127, 115, 117, 114, 119, 121, 119, 141, 123, 100, 106, 113, 114, 111, 139, 123, 109, 114, 119, 117, 106, 113, 124, 122, 101, 114, 123, 125, 118, 117, 138, 119, 140, 109, 118, 120, 115, 88, 108, 121, 122, 127, 110, 120, 116, 107, 136, 131, 121, 117, 121, 124, 108, 113, 124, 115, 124, 103, 101, 118, 113, 126, 117, 121, 110, 118, 127, 112, 121, 117, 116, 117, 114, 111, 107, 110, 126, 93, 128, 117, 118, 130, 136, 109, 126, 106, 113, 99, 111, 113, 112, 125, 113, 101, 139, 110, 114, 124, 114, 115, 119, 143, 129, 107, 122, 131, 130, 103, 114, 120, 113, 106, 125, 136, 113, 109, 111, 111, 111, 113, 122, 130, 109, 117, 125, 120, 113, 129, 116, 122, 112, 124, 111, 113, 130, 118, 124, 105, 113, 119, 102, 116, 125, 114, 115, 114, 104, 116, 113, 119, 113, 117, 102, 109, 108, 116, 99, 110, 119, 117, 120, 113, 98, 118, 114, 123, 124, 120, 105, 114, 112, 112, 129, 123, 122, 109, 106, 128, 121, 101, 119, 116, 126, 119, 123, 109, 110, 109, 120, 127, 111, 107, 104, 115, 94, 113, 119, 112, 116, 117, 105, 126, 117, 106, 129, 127, 106, 109, 113, 120, 110, 114, 124, 118, 109, 122, 125, 128, 100, 116, 135, 119, 118, 114, 115, 114, 119, 116, 117, 132, 111, 123, 101, 111, 110, 123, 110, 101, 120, 115, 123, 100, 101, 121, 118, 104, 113, 107, 116, 125, 127, 106, 114, 122, 126, 146, 119, 129, 123, 105, 110, 117, 100, 106, 113, 115, 117, 140, 115, 130, 89, 117, 114, 126, 118, 111, 123, 108, 116, 120, 89, 119, 126, 141, 120, 101, 127, 123, 120, 125, 110, 116, 124, 119, 119, 110, 107, 128, 134, 117, 128, 130, 126, 122, 115, 114, 109, 115, 119, 151, 115, 118, 124, 105, 125, 95, 95, 120, 127, 113, 117, 108, 110, 113, 114, 127, 116, 114, 113, 119, 100, 102, 120, 134, 104, 119, 111, 115, 122, 109, 117, 114, 83, 92, 119, 106, 114, 114, 135, 114, 124, 111, 117, 129, 128, 123, 99, 99, 120, 113, 118, 119, 112, 116, 115, 108, 110, 120, 133, 114, 109, 122, 129, 109, 100, 113, 121, 114, 115, 120, 112, 113, 119, 103, 126, 119, 116, 122, 117, 103, 126, 112, 109, 117, 117, 122, 113, 123, 114, 118, 97, 112, 134, 128, 120, 117, 116, 127, 110, 111, 105, 114, 132, 116, 111, 106, 128, 104, 115, 100, 112, 119, 127, 113, 110, 116, 100, 107, 119, 111, 134, 120, 111, 111, 126, 112, 123, 121, 112, 122, 111, 116, 110, 123, 94, 112, 119, 115, 119, 118, 110, 110, 125, 115, 122, 118, 107, 117, 110, 121, 134, 123, 96, 107, 113, 108, 106, 115, 111, 114, 115, 114, 118, 129, 120, 136, 102, 98, 118, 120, 121, 107, 116, 116, 115, 108, 120, 148, 105, 119, 103, 122, 132, 122, 111, 113, 104, 117, 116, 118, 119, 121, 126, 112, 95, 126, 112, 112, 101, 107, 118, 100, 120, 112, 117, 118, 114, 119, 134, 110, 117, 122, 109, 116, 122, 113, 119, 128, 118, 123, 116, 126, 105, 82, 107, 121, 112, 118, 125, 111, 111, 121, 126, 121, 114, 109, 109, 107, 108, 134, 115, 121, 113, 98, 117, 124, 108, 110, 127, 124, 148, 134, 139, 120, 130, 104, 110, 109, 113, 119, 109, 132, 114, 128, 114, 118, 105, 133, 119, 129, 96, 112, 108, 122, 108, 117, 126, 116, 111, 110, 109, 108, 113, 118, 126, 129, 114, 115, 111, 122, 126, 105, 102, 109, 115, 106, 116, 123, 118, 119, 110, 110, 112, 119, 115, 113, 110, 115, 114, 111, 124, 109, 120, 115, 115, 125, 111, 115, 120, 106, 116, 122, 118, 122, 117, 120, 118, 112, 33, 113, 116, 122, 122, 115, 115, 111, 133, 109, 119, 131, 119, 107, 101, 115, 119, 99, 102, 116, 111, 124, 99, 114, 102, 92, 127, 95, 107, 123, 114, 119, 108, 119, 116, 122, 118, 130, 127, 116, 106, 110, 103, 122, 111, 121, 108, 122, 102, 116, 115, 114, 117, 116, 124, 110, 70, 115, 108, 117, 96, 120, 93, 118, 116, 120, 124, 114, 109, 131, 118, 115, 112, 116, 114, 115, 113, 108, 120, 118, 106, 118, 113, 90, 116, 125, 115, 113, 111, 105, 113, 109, 116, 116, 112, 105, 123, 101, 125, 114, 109, 129, 135, 128, 104, 121, 110, 115, 105, 91, 115, 87, 115, 116, 122, 105, 123, 134, 117, 111, 107, 109, 112, 125, 119, 127, 128, 122, 134, 115, 116, 112, 108, 115, 108, 111, 120, 115, 126, 118, 114, 117, 127, 107, 113, 112, 102, 110, 116, 135, 109, 114, 113, 100, 113, 83, 119, 115, 117, 117, 106, 125, 111, 119, 123, 111, 113, 114, 123, 100, 106, 121, 102, 110, 105, 122, 123, 112, 105, 113, 106, 131, 126, 117, 105, 108, 124, 112, 118, 108, 120, 106, 127, 114, 110, 113, 120, 120, 126, 122, 101, 122, 110, 114, 120, 117, 118, 115, 109, 131, 121, 118, 114, 107, 119, 118, 126, 124, 116, 107, 119, 104, 120, 115, 113, 104, 108, 113, 119, 125, 123, 105, 111, 106, 120, 106, 118, 114, 122, 111, 119, 116, 123, 100, 113, 117, 110, 120, 112, 107, 97, 118, 110, 119, 108, 119, 112, 96, 126, 117, 119, 123, 137, 109, 121, 130, 120, 107, 107, 113, 112, 115, 109, 118, 112, 110, 108, 120, 113, 158, 109, 117, 124, 98, 119, 111, 111, 117, 118, 120, 111, 114, 106, 121, 114, 100, 119, 116, 114, 73, 117, 133, 114, 117, 111, 115, 112, 115, 113, 104, 127, 111, 108, 106, 117, 116, 115, 101, 120, 109, 90, 116, 118, 103, 111, 113, 115, 87, 105, 136, 101, 116, 113, 120, 128, 126, 118, 110, 209, 104, 138, 93, 108, 110, 112, 113, 108, 112, 120, 110, 109, 118, 117, 103, 116, 124, 116, 118, 114, 116, 133, 111, 112, 110, 120, 120, 141, 179, 153, 115, 119, 116, 117, 108, 116, 108, 116, 111, 132, 117, 111, 93, 113, 122, 121, 131, 112, 112, 117, 114, 126, 114, 112, 114, 117, 120, 117, 123, 109, 118, 126, 117, 122, 111, 112, 105, 109, 132, 120, 106, 110, 137, 107, 119, 117, 123, 115, 119, 112, 114, 123, 111, 117, 126, 114, 108, 120, 118, 99, 117, 112, 120, 110, 120, 105, 123, 106, 112, 113, 116, 102, 109, 122, 114, 116, 110, 113, 111, 104, 108, 93, 120, 113, 109, 124, 118, 104, 106, 114, 116, 115, 116, 119, 130, 118, 117, 133, 148, 122, 129, 119, 127, 115, 134, 117, 112, 108, 132, 130, 125, 114, 110, 114, 110, 177, 113, 103, 90, 121, 117, 113, 108, 128, 112, 118, 132, 115, 122, 115, 104, 97, 103, 122, 127, 111, 107, 109, 97, 121, 134, 118, 127, 116, 113, 110, 113, 116, 123, 123, 109, 135, 111, 123, 120, 113, 114, 100, 120, 103, 92, 138, 117, 121, 116, 110, 119, 119, 122, 122, 109, 131, 79, 114, 105, 120, 112, 112, 119, 104, 103, 117, 122, 107, 121, 122, 102, 109, 111, 172, 119, 139, 121, 123, 120, 120, 99, 112, 126, 121, 146, 109, 123, 119, 102, 120, 102, 107, 125, 98, 89, 108, 134, 132, 122, 122, 98, 122, 129, 125, 104, 119, 120, 120, 119, 111, 120, 126, 127, 112, 96, 108, 118, 116, 117, 115, 105, 107, 109, 108, 116, 119, 126, 121, 117, 114, 122, 104, 109, 98, 106, 118, 108, 119, 98, 120, 112, 119, 112, 100, 128, 116, 134, 102, 106, 140, 101, 114, 107, 130, 119, 106, 124, 105, 74, 113, 117, 104, 113, 122, 122, 75, 111, 122, 97, 130, 140, 106, 99, 115, 111, 113, 97, 106, 131, 117, 119, 128, 101, 114, 113, 98, 117, 98, 102, 110, 112, 109, 120, 116, 132, 119, 126, 109, 116, 141, 107, 106, 116, 116, 142, 116, 114, 102, 112, 131, 132, 115, 119, 126, 113, 113, 104, 117, 105, 121, 94, 120, 109, 114, 114, 112, 119, 111, 126, 161, 121, 115, 106, 124, 117, 115, 118, 122, 104, 110, 103, 131, 108, 133, 108, 126, 120, 118, 101, 112, 112, 115, 103, 112, 130, 123, 107, 104, 101, 98, 114, 97, 125, 105, 110, 111, 102, 113, 104, 114, 103, 136, 121, 114, 111, 109, 107, 111, 102, 107, 110, 112, 114, 105, 100, 126, 106, 129, 119, 115, 106, 117, 108, 130, 118, 119, 110, 115, 111, 113, 115, 117, 111, 145, 112, 146, 121, 105, 123, 103, 102, 104, 126, 118, 109, 128, 103, 138, 107, 127, 142, 117, 133, 117, 121, 89, 130, 111, 101, 110, 124, 131, 113, 119, 106, 115, 129, 120, 118, 102, 109, 108, 118, 112, 120, 117, 138, 106, 116, 147, 122, 111, 122, 117, 117, 105, 120, 99, 116, 115, 119, 112, 118, 122, 108, 116, 146, 123, 116, 116, 115, 130, 104, 130, 140, 128, 123, 115, 114, 106, 106, 114, 122, 111, 121, 127, 106, 103, 107, 99, 107, 113, 117, 118, 111, 110, 128, 121, 124, 107, 114, 123, 116, 135, 129, 116, 122, 131, 107, 161, 131, 124, 107, 112, 111, 89, 110, 108, 113, 126, 116, 111, 112, 111, 111, 117, 106, 130, 104, 97, 115, 111, 116, 147, 116, 133, 111, 128, 119, 110, 106, 120, 120, 110, 127, 105, 115, 111, 115, 107, 110, 113, 98, 149, 120, 118, 117, 125, 112, 110, 109, 136, 116, 90, 107, 109, 113, 115, 117, 119, 112, 118, 120, 114, 110, 120, 109, 102, 112, 117, 116, 114, 118, 110, 108, 116, 115, 112, 114, 116, 117, 124, 109, 114, 111, 123, 110, 114, 115, 106, 119, 122, 119, 123, 118, 115, 107, 119, 117, 125, 118, 105, 119, 121, 114, 110, 105, 110, 110, 122, 123, 115, 119, 124, 114, 109, 124, 121, 120, 117, 119, 103, 109, 106, 115, 109, 123, 120, 119, 111, 122, 115, 109, 102, 120, 123, 129, 116, 120, 105, 115, 113, 125, 120, 108, 115, 118, 123, 117, 118, 115, 110, 119, 109, 116, 118, 116, 111, 114, 108, 111, 120, 125, 116, 121, 115, 128, 118, 114, 115, 123, 112, 117, 117, 115, 111, 113, 107, 123, 122, 109, 125, 118, 118, 105, 120, 117, 117, 107, 120, 117, 116, 114, 126, 115, 121, 114, 122, 116, 122, 109, 110, 112, 118, 121, 109, 112, 114, 121, 115, 118, 120, 113, 114, 111, 108, 118, 114, 110, 112, 113, 128, 115, 105, 118, 119, 122, 112, 114, 119, 116, 123, 107, 117, 118, 106, 110, 119, 121, 109, 116, 121, 114, 122, 105, 114, 118, 110, 115, 122, 121, 120, 117, 112, 109, 111, 122, 119, 111, 116, 115, 109, 112, 108, 110, 117, 115, 115, 117, 125, 101, 118, 124, 116, 110, 113, 119, 117, 95, 111, 122, 117, 115, 105, 110, 107, 120, 110, 120, 118, 114, 107, 120, 112, 122, 120, 117, 117, 126, 113, 112, 116, 123, 114, 121, 106, 126, 120, 108, 106, 124, 127, 118, 118, 111, 124, 115, 121, 112, 110, 114, 255, 124, 122, 112, 124, 120, 123, 132, 116, 117, 135, 113, 117, 115, 114, 110, 116, 118, 106, 124, 117, 108, 114, 133, 114, 117, 115, 124, 94, 109, 127, 119, 116, 116, 117, 119, 114, 112, 125, 118, 120, 113, 109, 120, 123, 120, 120, 120, 116, 114, 122, 124, 114, 120, 112, 111, 125, 116, 116, 121, 95, 129, 115, 121, 112, 104, 116, 114, 121, 117, 111, 130, 114, 122, 119, 114, 108, 104, 118, 109, 113, 113, 121, 112, 116, 106, 122, 117, 106, 110, 117, 104, 103, 103, 115, 128, 105, 123, 119, 109, 117, 120, 117, 119, 109, 114, 120, 121, 121, 117, 115, 112, 121, 114, 119, 116, 125, 116, 109, 123, 113, 118, 118, 112, 117, 124, 118, 109, 112, 110, 112, 116, 117, 118, 118, 109, 107, 108, 106, 119, 120, 108, 118, 113, 125, 128, 121, 119, 110, 115, 117, 109, 118, 110, 108, 117, 118, 108, 110, 125, 106, 120, 135, 112, 125, 117, 113, 108, 116, 116, 111, 117, 121, 110, 116, 115, 111, 107, 118, 120, 117, 111, 115, 115, 121, 112, 106, 112, 109, 110, 105, 125, 116, 101, 120, 113, 108, 116, 109, 107, 112, 108, 117, 113, 120, 112, 119, 111, 118, 122, 115, 117, 118, 121, 121, 121, 117, 115, 113, 121, 115, 115, 115, 112, 106, 129, 114, 117, 116, 122, 120, 119, 121, 124, 111, 116, 116, 121, 129, 117, 117, 110, 112, 124, 124, 119, 112, 125, 121, 111, 123, 114, 119, 116, 111, 102, 125, 118, 111, 121, 108, 119, 125, 120, 115, 111, 108, 115, 112, 109, 122, 135, 128, 120, 118, 123, 108, 121, 121, 116, 124, 129, 108, 113, 111, 110, 111, 103, 114, 122, 133, 126, 122, 120, 113, 109, 109, 117, 107, 108, 107, 129, 114, 124, 116, 117, 131, 108, 110, 117, 119, 124, 121, 117, 116, 83, 117, 122, 103, 117, 113, 119, 116, 115, 109, 118, 114, 109, 111, 112, 97, 115, 111, 111, 123, 122, 121, 109, 120, 118, 113, 136, 111, 110, 132, 125, 121, 108, 113, 114, 118, 119, 123, 119, 120, 117, 101, 115, 125, 127, 112, 121, 122, 119, 110, 127, 120, 123, 116, 108, 122, 117, 111, 111, 106, 105, 113, 117, 114, 120, 109, 117, 120, 117, 103, 129, 116, 108, 122, 117, 119, 119, 126, 108, 123, 126, 91, 115, 103, 119, 116, 120, 119, 125, 107, 116, 125, 113, 120, 111, 123, 124, 110, 117, 101, 119, 106, 117, 113, 108, 120, 121, 116, 123, 119, 107, 113, 116, 114, 123, 122, 116, 113, 108, 114, 110, 116, 122, 119, 110, 114, 111, 117, 115, 118, 110, 121, 130, 116, 118, 114, 110, 117, 120, 99, 124, 121, 118, 114, 136, 113, 112, 113, 124, 112, 125, 113, 112, 117, 113, 115, 122, 113, 118, 121, 112, 116, 110, 125, 106, 109, 116, 124, 112, 114, 114, 119, 109, 124, 108, 109, 108, 114, 113, 117, 119, 115, 110, 117, 127, 115, 125, 113, 116, 120, 117, 121, 130, 120, 118, 102, 118, 113, 105, 118, 122, 110, 115, 117, 115, 116, 111, 116, 103, 111, 120, 112, 85, 118, 113, 102, 104, 116, 112, 113, 117, 127, 109, 128, 122, 121, 115, 120, 129, 120, 115, 122, 122, 106, 120, 117, 117, 113, 118, 116, 105, 119, 115, 118, 113, 117, 110, 115, 114, 123, 115, 124, 114, 103, 121, 115, 126, 117, 116, 119, 128, 120, 118, 110, 121, 129, 116, 119, 117, 111, 115, 120, 130, 126, 103, 114, 131, 119, 118, 112, 109, 113, 107, 116, 122, 122, 114, 114, 117, 124, 99, 119, 108, 114, 115, 119, 116, 116, 112, 101, 112, 119, 120, 104, 107, 107, 112, 117, 110, 109, 118, 112, 114, 118, 112, 125, 117, 124, 129, 118, 114, 115, 117, 111, 112, 123, 129, 109, 110, 115, 121, 117, 119, 119, 118, 112, 137, 123, 119, 118, 110, 118, 110, 108, 124, 117, 109, 102, 133, 118, 123, 117, 119, 121, 147, 119, 98, 117, 114, 108, 115, 119, 119, 123, 111, 108, 123, 124, 142, 115, 137, 112, 115, 119, 110, 105, 119, 117, 95, 124, 118, 121, 119, 132, 114, 119, 124, 111, 119, 87, 118, 118, 129, 107, 116, 124, 123, 118, 110, 104, 127, 116, 121, 94, 121, 128, 113, 106, 122, 127, 115, 120, 101, 119, 116, 118, 121, 114, 118, 112, 129, 109, 107, 126, 119, 119, 122, 107, 112, 121, 116, 127, 118, 115, 109, 111, 113, 108, 114, 114, 117, 113, 142, 122, 125, 113, 113, 111, 113, 139, 127, 116, 115, 134, 123, 115, 111, 98, 115, 116, 119, 129, 120, 114, 112, 106, 127, 124, 115, 112, 123, 108, 126, 92, 111, 122, 118, 83, 98, 111, 98, 114, 121, 114, 110, 132, 117, 119, 116, 112, 110, 130, 124, 112, 111, 111, 126, 113, 118, 112, 126, 113, 119, 136, 120, 111, 112, 117, 118, 122, 107, 113, 112, 123, 111, 130, 127, 121, 112, 120, 125, 125, 133, 101, 130, 131, 111, 107, 133, 114, 106, 115, 114, 87, 106, 121, 112, 118, 121, 124, 113, 119, 122, 118, 115, 116, 122, 126, 119, 118, 121, 120, 102, 97, 116, 119, 101, 109, 122, 106, 126, 121, 118, 119, 115, 124, 125, 114, 126, 125, 122, 113, 97, 109, 114, 113, 108, 116, 103, 105, 118, 122, 146, 113, 115, 127, 113, 132, 117, 128, 122, 120, 107, 99, 120, 115, 105, 125, 119, 122, 116, 118, 114, 115, 121, 115, 128, 120, 119, 105, 113, 105, 116, 113, 129, 113, 103, 101, 107, 102, 112, 126, 136, 112, 120, 117, 125, 126, 125, 100, 147, 118, 125, 124, 118, 116, 116, 107, 111, 121, 134, 118, 119, 101, 123, 87, 135, 132, 113, 122, 106, 109, 117, 110, 124, 110, 116, 126, 106, 125, 125, 131, 121, 115, 110, 111, 110, 118, 119, 99, 120, 107, 130, 115, 113, 124, 114, 118, 118, 110, 105, 118, 113, 122, 137, 112, 113, 113, 128, 104, 117, 95, 111, 121, 124, 113, 131, 116, 129, 105, 105, 114, 110, 123, 121, 120, 114, 102, 104, 118, 116, 107, 125, 96, 116, 129, 112, 117, 110, 106, 105, 95, 121, 89, 107, 117, 118, 125, 109, 117, 122, 119, 112, 105, 102, 118, 130, 106, 113, 108, 125, 117, 123, 108, 138, 117, 111, 114, 123, 120, 104, 116, 110, 115, 112, 125, 128, 120, 103, 118, 109, 107, 111, 120, 110, 132, 115, 109, 127, 123, 109, 116, 102, 116, 133, 126, 121, 109, 113, 111, 103, 110, 113, 117, 106, 123, 120, 101, 108, 124, 112, 112, 108, 112, 108, 119, 116, 112, 121, 114, 115, 118, 123, 103, 113, 119, 112, 122, 122, 106, 121, 137, 120, 100, 114, 116, 111, 113, 122, 111, 102, 122, 104, 112, 114, 121, 127, 99, 104, 107, 126, 120, 114, 106, 103, 114, 119, 113, 131, 129, 120, 112, 108, 115, 116, 108, 121, 127, 109, 95, 99, 103, 125, 117, 103, 113, 113, 112, 110, 106, 116, 111, 108, 110, 125, 101, 110, 126, 112, 115, 117, 103, 139, 122, 111, 128, 112, 114, 131, 128, 120, 113, 111, 124, 111, 125, 110, 107, 122, 113, 135, 147, 129, 122, 104, 102, 113, 106, 113, 121, 111, 98, 130, 99, 116, 130, 120, 127, 123, 96, 114, 125, 106, 113, 147, 111, 113, 119, 126, 117, 123, 111, 105, 115, 119, 106, 125, 113, 118, 113, 108, 118, 110, 121, 115, 128, 109, 113, 115, 126, 119, 118, 110, 122, 122, 119, 141, 117, 108, 132, 95, 124, 105, 130, 111, 111, 117, 114, 129, 120, 120, 113, 110, 117, 121, 123, 133, 109, 108, 118, 115, 115, 121, 124, 124, 114, 119, 107, 113, 112, 120, 108, 115, 128, 111, 108, 119, 116, 120, 127, 114, 116, 116, 120, 109, 114, 112, 112, 116, 114, 94, 105, 119, 126, 124, 111, 115, 111, 119, 101, 109, 116, 121, 114, 118, 102, 103, 110, 117, 115, 124, 103, 115, 121, 108, 119, 122, 113, 106, 123, 117, 126, 122, 109, 123, 117, 115, 120, 117, 115, 113, 124, 114, 127, 117, 134, 117, 114, 111, 116, 126, 113, 126, 110, 119, 117, 112, 115, 109, 117, 114, 108, 129, 110, 123, 117, 113, 116, 119, 118, 115, 112, 110, 121, 133, 110, 120, 117, 115, 114, 110, 108, 110, 122, 118, 135, 125, 120, 108, 109, 116, 128, 118, 126, 117, 105, 115, 110, 118, 121, 120, 113, 113, 107, 120, 115, 131, 121, 110, 120, 125, 125, 112, 115, 123, 121, 114, 115, 122, 111, 115, 116, 130, 123, 111, 113, 118, 108, 116, 108, 120, 115, 120, 111, 124, 123, 122, 119, 111, 127, 119, 124, 111, 108, 109, 98, 133, 106, 121, 128, 96, 121, 106, 109, 110, 126, 116, 123, 113, 115, 119, 114, 115, 107, 106, 117, 102, 124, 110, 114, 117, 121, 119, 115, 108, 121, 102, 125, 121, 114, 117, 127, 119, 130, 114, 116, 117, 135, 124, 114, 119, 119, 119, 108, 109, 112, 119, 108, 106, 112, 105, 126, 118, 119, 127, 120, 112, 119, 111, 115, 123, 112, 126, 119, 118, 115, 112, 112, 98, 100, 111, 116, 123, 111, 114, 119, 110, 121, 126, 107, 118, 119, 113, 111, 94, 115, 114, 110, 111, 119, 123, 116, 121, 111, 116, 114, 111, 105, 110, 113, 112, 116, 105, 130, 102, 128, 116, 109, 121, 117, 127, 116, 117, 113, 129, 109, 121, 116, 109, 108, 110, 97, 113, 126, 115, 122, 114, 107, 114, 118, 96, 116, 120, 113, 121, 110, 118, 111, 121, 120, 106, 123, 120, 121, 120, 113, 106, 118, 127, 120, 110, 116, 116, 117, 117, 102, 111, 118, 106, 104, 113, 111, 108, 110, 132, 123, 119, 121, 107, 107, 111, 113, 96, 118, 117, 104, 122, 117, 115, 118, 115, 115, 126, 123, 112, 110, 124, 124, 118, 122, 120, 119, 117, 106, 118, 123, 117, 122, 116, 122, 129, 98, 118, 117, 107, 115, 117, 118, 117, 119, 110, 128, 121, 119, 120, 110, 117, 115, 120, 115, 110, 117, 124, 118, 126, 128, 116, 106, 106, 104, 123, 107, 109, 126, 105, 118, 121, 102, 108, 102, 114, 110, 121, 115, 120, 129, 116, 109, 121, 102, 108, 114, 116, 121, 111, 125, 129, 120, 106, 118, 105, 120, 109, 125, 112, 123, 118, 115, 114, 106, 120, 115, 129, 114, 124, 110, 120, 113, 107, 124, 121, 127, 116, 106, 122, 114, 99, 123, 118, 97, 120, 120, 116, 111, 115, 126, 114, 117, 115, 113, 119, 127, 109, 120, 129, 121, 120, 114, 123, 116, 111, 120, 115, 107, 112, 122, 115, 114, 124, 114, 137, 120, 96, 117, 106, 120, 103, 125, 107, 134, 123, 121, 101, 106, 119, 110, 114, 104, 138, 116, 119, 124, 114, 116, 113, 106, 109, 118, 121, 116, 123, 125, 132, 115, 123, 116, 124, 114, 114, 106, 109, 125, 115, 120, 124, 105, 108, 115, 122, 125, 123, 116, 126, 110, 108, 116, 120, 114, 111, 113, 117, 107, 110, 114, 118, 120, 117, 119, 113, 117, 112, 118, 103, 112, 131, 121, 115, 109, 120, 138, 124, 109, 119, 121, 111, 117, 113, 118, 119, 98, 117, 116, 114, 101, 122, 114, 115, 114, 102, 110, 105, 113, 118, 117, 112, 112, 127, 117, 130, 114, 119, 129, 123, 107, 120, 112, 113, 98, 106, 94, 117, 128, 109, 113, 126, 111, 111, 122, 104, 119, 111, 106, 119, 100, 112, 118, 118, 119, 130, 127, 113, 101, 121, 104, 128, 108, 118, 121, 116, 128, 118, 114, 111, 119, 107, 116, 117, 123, 113, 126, 107, 110, 106, 116, 102, 108, 117, 114, 109, 132, 116, 111, 104, 109, 120, 84, 111, 123, 117, 101, 102, 121, 119, 116, 120, 109, 95, 115, 117, 118, 114, 106, 113, 124, 104, 123, 129, 101, 106, 112, 117, 120, 100, 125, 123, 116, 109, 127, 110, 116, 119, 116, 114, 116, 123, 116, 120, 116, 117, 112, 115, 122, 125, 114, 117, 139, 132, 112, 117, 118, 123, 105, 127, 115, 116, 115, 108, 144, 129, 106, 125, 108, 114, 106, 105, 104, 114, 124, 121, 115, 116, 114, 118, 99, 117, 128, 125, 115, 104, 118, 120, 122, 116, 100, 114, 109, 109, 116, 117, 122, 108, 120, 113, 125, 120, 97, 115, 113, 121, 113, 131, 125, 118, 127, 111, 146, 125, 128, 126, 109, 123, 111, 117, 116, 127, 118, 115, 121, 115, 127, 108, 119, 141, 114, 114, 107, 109, 137, 120, 104, 122, 124, 121, 134, 133, 104, 110, 102, 107, 121, 112, 106, 122, 120, 109, 113, 121, 120, 118, 105, 107, 121, 101, 125, 121, 116, 119, 111, 110, 125, 124, 119, 121, 120, 118, 108, 111, 126, 110, 119, 106, 108, 121, 116, 118, 127, 122, 107, 111, 120, 116, 119, 120, 121, 113, 111, 129, 121, 120, 112, 118, 129, 121, 119, 123, 117, 123, 117, 114, 114, 106, 119, 117, 124, 106, 99, 108, 110, 117, 111, 104, 128, 108, 118, 118, 118, 113, 95, 105, 125, 105, 118, 124, 121, 132, 117, 122, 112, 112, 112, 99, 125, 123, 97, 114, 118, 131, 106, 113, 115, 119, 116, 110, 123, 107, 112, 112, 122, 107, 91, 127, 122, 103, 106, 121, 110, 123, 119, 115, 117, 117, 120, 125, 110, 125, 108, 112, 117, 109, 134, 118, 116, 111, 123, 105, 117, 111, 119, 126, 120, 101, 112, 117, 122, 122, 116, 110, 112, 132, 124, 114, 118, 118, 123, 119, 120, 98, 119, 123, 114, 135, 114, 123, 111, 155, 119, 125, 129, 115, 107, 123, 110, 108, 131, 110, 120, 114, 130, 119, 117, 119, 120, 113, 113, 119, 173, 121, 96, 116, 115, 111, 108, 106, 108, 115, 108, 134, 127, 120, 116, 117, 134, 112, 124, 108, 122, 114, 116, 115, 120, 117, 112, 121, 133, 119, 114, 120, 129, 120, 116, 117, 121, 123, 119, 110, 101, 124, 112, 117, 118, 117, 124, 125, 103, 110, 97, 115, 126, 89, 117, 121, 119, 120, 122, 121, 129, 113, 108, 116, 126, 121, 120, 110, 117, 106, 116, 132, 112, 122, 119, 109, 105, 127, 123, 122, 114, 112, 111, 115, 116, 119, 106, 120, 121, 116, 114, 113, 112, 126, 104, 123, 135, 112, 102, 115, 121, 118, 115, 117, 109, 133, 113, 114, 107, 109, 118, 108, 108, 128, 111, 118, 129, 126, 121, 120, 118, 122, 120, 131, 114, 119, 117, 123, 117, 117, 109, 116, 123, 111, 113, 126, 123, 117, 117, 131, 112, 119, 119, 115, 114, 114, 110, 117, 105, 113, 108, 115, 107, 124, 111, 132, 118, 119, 112, 114, 114, 108, 99, 116, 119, 106, 124, 114, 120, 107, 122, 109, 109, 103, 105, 120, 111, 114, 126, 129, 115, 119, 129, 116, 127, 121, 115, 128, 110, 126, 116, 117, 125, 94, 123, 114, 119, 109, 119, 116, 118, 105, 106, 107, 116, 110, 115, 123, 114, 114, 105, 110, 113, 116, 117, 119, 120, 122, 122, 116, 118, 125, 121, 116, 113, 108, 122, 101, 117, 109, 118, 116, 117, 118, 116, 119, 120, 106, 118, 117, 120, 123, 124, 130, 108, 105, 115, 117, 111, 115, 113, 121, 118, 117, 117, 133, 117, 128, 110, 125, 119, 122, 91, 112, 108, 120, 112, 109, 111, 119, 109, 122, 107, 107, 111, 112, 122, 120, 111, 108, 118, 111, 108, 115, 111, 127, 124, 106, 112, 117, 119, 120, 126, 129, 112, 118, 105, 117, 122, 111, 109, 121, 115, 110, 120, 102, 100, 116, 110, 112, 119, 124, 122, 109, 110, 124, 111, 108, 106, 121, 107, 122, 114, 116, 109, 109, 115, 114, 108, 129, 124, 124, 115, 114, 122, 122, 98, 133, 111, 125, 117, 116, 124, 117, 122, 115, 118, 119, 121, 128, 119, 118, 114, 113, 111, 116, 106, 117, 116, 115, 123, 106, 118, 126, 119, 111, 114, 114, 116, 122, 122, 120, 126, 114, 128, 106, 124, 108, 115, 113, 115, 114, 107, 113, 114, 110, 116, 115, 122, 117, 123, 129, 104, 111, 110, 118, 118, 123, 112, 112, 125, 112, 112, 122, 111, 119, 115, 129, 125, 115, 117, 120, 126, 122, 108, 121, 123, 131, 106, 113, 124, 120, 129, 125, 126, 119, 127, 117, 108, 115, 114, 110, 117, 107, 116, 117, 138, 118, 113, 121, 115, 116, 122, 110, 135, 111, 114, 111, 106, 111, 126, 120, 112, 117, 110, 115, 102, 119, 114, 137, 116, 111, 125, 128, 117, 114, 117, 109, 124, 115, 121, 121, 111, 105, 117, 115, 118, 116, 116, 118, 115, 113, 123, 117, 113, 116, 129, 110, 119, 122, 116, 106, 114, 123, 109, 106, 119, 121, 118, 116, 112, 116, 121, 136, 99, 116, 117, 124, 101, 109, 116, 98, 116, 119, 117, 129, 113, 110, 116, 120, 111, 120, 110, 115, 100, 107, 113, 108, 107, 109, 112, 115, 122, 110, 118, 117, 125, 120, 116, 108, 106, 120, 125, 110, 109, 119, 107, 120, 123, 110, 111, 124, 112, 117, 114, 108, 120, 115, 113, 127, 130, 115, 124, 121, 105, 108, 125, 117, 111, 116, 121, 117, 117, 116, 124, 113, 119, 123, 123, 125, 120, 123, 125, 121, 108, 104, 112, 125, 113, 112, 119, 123, 121, 105, 113, 119, 118, 124, 119, 118, 106, 110, 124, 122, 120, 119, 109, 111, 116, 116, 114, 112, 118, 123, 121, 129, 114, 132, 119, 119, 122, 116, 118, 128, 116, 118, 121, 117, 104, 125, 114, 122, 110, 117, 122, 122, 109, 121, 113, 110, 120, 116, 111, 126, 111, 111, 119, 117, 116, 108, 111, 118, 148, 116, 118, 116, 111, 115, 119, 108, 122, 123, 124, 123, 117, 129, 112, 116, 121, 118, 129, 115, 120, 145, 110, 120, 119, 112, 107, 110, 122, 112, 122, 120, 116, 110, 117, 114, 136, 117, 110, 118, 109, 112, 123, 122, 123, 122, 132, 117, 136, 123, 119, 117, 108, 115, 110, 125, 117, 106, 121, 122, 126, 108, 119, 116, 119, 118, 121, 115, 118, 118, 109, 118, 115, 125, 117, 119, 112, 115, 121, 114, 112, 112, 105, 114, 114, 112, 106, 113, 113, 114, 111, 131, 129, 114, 113, 118, 135, 126, 105, 108, 126, 121, 119, 102, 104, 119, 132, 124, 116, 114, 119, 104, 122, 121, 117, 111, 121, 112, 115, 126, 113, 127, 125, 117, 119, 117, 111, 120, 98, 114, 112, 113, 112, 107, 122, 121, 102, 103, 113, 122, 129, 125, 124, 129, 106, 118, 116, 120, 108, 125, 108, 116, 115, 123, 111, 127, 112, 112, 125, 130, 120, 115, 119, 115, 123, 118, 111, 118, 111, 137, 105, 113, 115, 120, 122, 117, 122, 120, 115, 121, 116, 117, 127, 128, 112, 117, 113, 113, 137, 122, 126, 121, 122, 109, 109, 114, 115, 123, 110, 100, 120, 116, 134, 114, 120, 126, 120, 115, 107, 108, 115, 119, 116, 113, 113, 112, 119, 142, 120, 117, 121, 131, 116, 124, 123, 112, 119, 118, 123, 118, 127, 115, 117, 108, 119, 136, 123, 107, 119, 112, 120, 115, 123, 126, 119, 113, 123, 110, 115, 116, 125, 124, 124, 116, 113, 113, 115, 116, 120, 109, 109, 111, 117, 123, 113, 121, 111, 115, 121, 122, 116, 110, 123, 104, 119, 114, 113, 116, 103, 128, 130, 114, 112, 121, 125, 113, 123, 106, 122, 123, 123, 122, 115, 129, 130, 117, 109, 117, 101, 108, 111, 112, 110, 108, 106, 123, 114, 114, 117, 114, 110, 116, 115, 115, 119, 119, 117, 123, 129, 108, 111, 129, 121, 105, 107, 117, 116, 117, 103, 128, 122, 112, 117, 119, 120, 118, 121, 112, 124, 109, 125, 124, 123, 115, 117, 115, 112, 107, 113, 121, 135, 126, 115, 123, 107, 121, 106, 112, 117, 122, 121, 110, 111, 138, 114, 106, 122, 124, 123, 118, 119, 125, 119, 115, 129, 110, 102, 114, 114, 96, 122, 99, 113, 95, 129, 107, 115, 113, 107, 125, 129, 108, 110, 126, 118, 118, 110, 121, 112, 115, 122, 117, 124, 101, 91, 120, 119, 119, 127, 116, 116, 109, 119, 112, 128, 119, 117, 114, 112, 108, 116, 121, 105, 116, 120, 126, 125, 109, 119, 109, 117, 127, 111, 122, 113, 117, 105, 125, 120, 111, 107, 113, 113, 126, 113, 123, 118, 117, 129, 118, 107, 106, 111, 111, 120, 109, 125, 123, 119, 114, 115, 118, 116, 126, 119, 106, 117, 103, 101, 117, 137, 105, 104, 112, 119, 111, 114, 119, 117, 140, 116, 115, 112, 114, 113, 116, 109, 108, 125, 108, 114, 115, 98, 120, 129, 124, 163, 106, 107, 120, 120, 123, 118, 121, 116, 117, 118, 114, 117, 106, 118, 113, 105, 122, 119, 112, 120, 108, 123, 102, 104, 185, 117, 122, 110, 117, 108, 127, 112, 118, 122, 114, 117, 112, 117, 115, 107, 109, 101, 114, 116, 119, 114, 117, 102, 125, 121, 114, 118, 114, 123, 109, 108, 113, 114, 125, 115, 125, 117, 100, 122, 104, 119, 116, 112, 105, 128, 119, 115, 123, 119, 124, 108, 101, 120, 115, 114, 116, 104, 111, 112, 87, 121, 128, 122, 109, 121, 126, 89, 119, 119, 118, 120, 106, 126, 102, 102, 125, 118, 116, 108, 110, 119, 107, 131, 138, 116, 113, 116, 116, 100, 138, 120, 122, 109, 104, 117, 114, 117, 126, 136, 113, 111, 120, 107, 120, 110, 119, 124, 132, 110, 110, 99, 113, 161, 119, 115, 129, 109, 118, 123, 121, 113, 126, 123, 133, 112, 129, 125, 115, 120, 115, 117, 108, 98, 127, 120, 119, 145, 120, 113, 118, 120, 121, 134, 117, 128, 136, 109, 110, 118, 116, 122, 111, 119, 112, 116, 117, 111, 116, 115, 112, 127, 113, 102, 116, 120, 115, 104, 120, 109, 116, 129, 119, 117, 115, 119, 116, 110, 115, 108, 125, 127, 128, 113, 121, 108, 123, 111, 113, 124, 109, 118, 111, 121, 113, 118, 105, 122, 122, 124, 113, 118, 103, 107, 117, 120, 117, 108, 108, 115, 123, 107, 123, 116, 116, 108, 122, 126, 114, 110, 114, 118, 101, 108, 102, 133, 122, 123, 100, 114, 140, 120, 110, 112, 115, 107, 103, 115, 115, 115, 127, 111, 117, 112, 117, 131, 119, 107, 117, 127, 118, 103, 111, 116, 118, 94, 113, 111, 101, 118, 112, 116, 117, 122, 101, 115, 103, 108, 106, 114, 108, 107, 129, 121, 116, 108, 109, 120, 121, 124, 116, 112, 111, 115, 117, 128, 110, 124, 126, 103, 118, 100, 117, 114, 110, 87, 122, 100, 113, 114, 139, 109, 117, 118, 114, 120, 111, 124, 123, 117, 135, 117, 111, 122, 115, 115, 122, 107, 114, 125, 117, 112, 121, 122, 121, 123, 104, 120, 107, 118, 114, 102, 105, 125, 112, 112, 120, 111, 123, 118, 137, 106, 121, 123, 120, 116, 113, 117, 128, 116, 112, 141, 103, 116, 127, 118, 112, 118, 109, 132, 125, 123, 129, 111, 109, 136, 120, 116, 113, 123, 130, 114, 111, 105, 122, 125, 123, 129, 130, 104, 101, 131, 128, 119, 118, 115, 112, 125, 117, 111, 108, 112, 103, 124, 110, 105, 107, 132, 124, 112, 127, 118, 119, 121, 121, 115, 111, 105, 120, 119, 120, 113, 113, 129, 111, 133, 112, 110, 106, 122, 110, 123, 111, 115, 126, 114, 118, 124, 102, 118, 114, 118, 113, 134, 116, 122, 123, 128, 111, 103, 117, 109, 124, 122, 115, 120, 113, 126, 113, 118, 131, 131, 118, 132, 117, 113, 120, 112, 105, 116, 112, 130, 112, 110, 115, 114, 120, 105, 104, 95, 113, 111, 108, 120, 120, 118, 127, 125, 115, 110, 117, 117, 117, 116, 121, 106, 115, 119, 120, 112, 112, 122, 108, 105, 128, 119, 129, 116, 112, 117, 110, 121, 126, 120, 111, 112, 114, 102, 117, 132, 113, 134, 119, 131, 108, 110, 115, 114, 123, 114, 104, 126, 108, 109, 98, 109, 118, 124, 116, 115, 137, 125, 117, 135, 120, 137, 116, 118, 117, 115, 120, 110, 114, 122, 101, 115, 101, 106, 123, 114, 121, 112, 127, 117, 112, 108, 129, 118, 124, 117, 109, 112, 100, 120, 112, 121, 116, 124, 119, 112, 124, 114, 106, 122, 111, 111, 107, 116, 116, 113, 114, 132, 134, 125, 116, 117, 109, 109, 103, 132, 112, 133, 112, 116, 111, 135, 124, 106, 113, 108, 123, 116, 119, 120, 120, 116, 110, 127, 126, 117, 114, 115, 106, 126, 114, 103, 126, 127, 98, 118, 122, 108, 119, 107, 119, 123, 112, 119, 120, 109, 102, 108, 120, 109, 127, 122, 115, 123, 111, 100, 123, 110, 122, 108, 111, 108, 126, 119, 123, 115, 120, 129, 105, 130, 107, 118, 130, 114, 106, 125, 118, 102, 116, 98, 105, 106, 105, 118, 106, 116, 114, 115, 121, 109, 106, 116, 112, 115, 104, 112, 114, 105, 126, 123, 127, 106, 113, 111, 107, 112, 113, 107, 109, 138, 110, 110, 102, 115, 142, 113, 101, 112, 110, 112, 113, 124, 107, 130, 124, 123, 124, 118, 105, 117, 134, 104, 126, 101, 120, 127, 100, 111, 108, 107, 133, 106, 112, 112, 123, 106, 119, 104, 114, 114, 105, 112, 103, 106, 115, 114, 117, 111, 122, 109, 117, 122, 110, 117, 113, 125, 122, 107, 123, 131, 110, 109, 129, 104, 126, 107, 125, 114, 112, 126, 109, 122, 115, 118, 107, 111, 113, 123, 108, 113, 115, 114, 124, 116, 117, 112, 106, 107, 113, 133, 120, 109, 125, 117, 122, 127, 112, 121, 111, 129, 117, 106, 111, 136, 116, 111, 99, 113, 122, 123, 110, 113, 123, 113, 117, 111, 114, 124, 123, 120, 119, 112, 117, 117, 121, 135, 111, 113, 108, 114, 129, 133, 135, 126, 120, 118, 125, 104, 124, 110, 135, 103, 112, 107, 119, 112, 108, 116, 113, 99, 108, 98, 103, 123, 108, 112, 147, 105, 114, 107, 126, 127, 112, 111, 120, 117, 112, 111, 113, 124, 126, 131, 118, 112, 121, 106, 116, 128, 118, 110, 116, 126, 113, 106, 109, 113, 111, 109, 116, 124, 121, 109, 111, 118, 117, 117, 115, 122, 126, 129, 117, 119, 117, 126, 112, 114, 126, 111, 111, 113, 100, 104, 120, 115, 111, 117, 108, 123, 120, 121, 110, 122, 116, 114, 113, 112, 114, 117, 110, 109, 122, 108, 104, 112, 111, 118, 106, 121, 127, 117, 105, 115, 111, 127, 118, 120, 114, 123, 116, 119, 117, 110, 117, 117, 124, 107, 121, 108, 101, 119, 113, 124, 106, 122, 113, 113, 104, 125, 112, 115, 114, 123, 115, 115, 113, 125, 120, 109, 112, 124, 119, 110, 111, 121, 112, 112, 112, 111, 115, 105, 109, 112, 113, 110, 111, 117, 115, 117, 111, 117, 118, 112, 126, 121, 113, 115, 116, 114, 131, 107, 113, 116, 115, 116, 107, 119, 122, 116, 120, 117, 120, 106, 118, 112, 112, 118, 130, 112, 107, 117, 115, 120, 114, 114, 113, 119, 113, 115, 109, 113, 108, 118, 123, 114, 114, 112, 116, 117, 107, 122, 110, 118, 94, 127, 111, 119, 109, 118, 117, 108, 109, 108, 114, 98, 116, 116, 110, 118, 114, 109, 113, 107, 113, 113, 108, 112, 119, 119, 115, 111, 101, 120, 130, 121, 111, 110, 119, 110, 133, 120, 110, 109, 121, 106, 111, 116, 113, 111, 118, 112, 130, 119, 118, 106, 115, 114, 130, 129, 121, 111, 115, 119, 107, 113, 116, 115, 124, 110, 113, 120, 119, 107, 119, 115, 122, 119, 112, 115, 111, 119, 112, 114, 119, 115, 125, 125, 125, 121, 116, 115, 117, 102, 112, 119, 116, 124, 117, 110, 116, 120, 109, 120, 101, 123, 114, 112, 125, 123, 116, 117, 123, 118, 107, 117, 128, 117, 113, 112, 127, 121, 116, 121, 109, 116, 116, 110, 123, 116, 112, 108, 117, 128, 111, 120, 109, 106, 114, 122, 117, 120, 120, 121, 113, 109, 126, 113, 100, 115, 113, 102, 103, 114, 123, 117, 106, 121, 120, 125, 112, 111, 106, 115, 121, 116, 114, 112, 115, 117, 127, 114, 110, 117, 106, 109, 112, 121, 114, 115, 136, 115, 123, 110, 114, 118, 114, 113, 124, 131, 121, 118, 122, 121, 107, 121, 116, 128, 122, 120, 113, 130, 111, 115, 119, 137, 109, 115, 120, 100, 113, 114, 114, 118, 113, 122, 117, 120, 123, 117, 112, 107, 108, 115, 116, 121, 112, 113, 141, 114, 126, 115, 126, 116, 111, 122, 110, 116, 122, 112, 125, 115, 120, 130, 116, 117, 118, 110, 107, 117, 123, 124, 116, 127, 114, 114, 120, 120, 119, 122, 133, 125, 118, 105, 118, 114, 110, 121, 119, 111, 125, 111, 118, 119, 108, 122, 114, 115, 116, 113, 117, 108, 114, 121, 101, 107, 118, 110, 104, 114, 114, 129, 107, 120, 113, 116, 114, 111, 123, 127, 115, 115, 108, 116, 130, 119, 109, 112, 108, 139, 110, 122, 141, 119, 105, 117, 116, 122, 110, 117, 113, 112, 123, 110, 116, 120, 109, 112, 113, 107, 113, 103, 113, 116, 127, 106, 116, 116, 106, 121, 113, 121, 116, 111, 119, 112, 120, 119, 114, 117, 120, 102, 98, 115, 103, 112, 128, 103, 109, 122, 126, 102, 122, 106, 127, 119, 105, 108, 117, 102, 126, 106, 135, 105, 117, 129, 119, 110, 103, 112, 103, 130, 126, 110, 96, 119, 104, 130, 129, 111, 104, 117, 123, 114, 129, 104, 119, 117, 113, 107, 116, 116, 114, 103, 103, 120, 128, 121, 111, 106, 133, 121, 109, 115, 103, 108, 105, 120, 121, 110, 127, 132, 121, 106, 121, 107, 114, 124, 119, 119, 121, 124, 113, 119, 148, 122, 103, 110, 111, 149, 98, 133, 112, 109, 141, 126, 126, 131, 118, 119, 126, 103, 125, 108, 128, 93, 102, 117, 128, 117, 131, 126, 108, 113, 118, 120, 109, 132, 134, 101, 90, 132, 115, 118, 113, 104, 101, 112, 121, 99, 103, 96, 106, 102, 101, 120, 110, 105, 115, 118, 125, 107, 116, 133, 109, 116, 96, 116, 117, 106, 134, 114, 133, 109, 125, 104, 122, 105, 110, 114, 124, 108, 114, 123, 127, 112, 96, 124, 120, 113, 125, 116, 107, 96, 107, 115, 117, 97, 124, 109, 118, 119, 131, 116, 133, 102, 127, 124, 109, 116, 101, 112, 98, 102, 125, 128, 134, 117, 109, 124, 116, 90, 122, 121, 123, 117, 120, 104, 121, 121, 107, 123, 117, 108, 93, 121, 116, 115, 119, 114, 128, 120, 113, 105, 145, 122, 113, 123, 131, 115, 105, 121, 132, 119, 99, 132, 133, 121, 104, 114, 125, 105, 113, 118, 98, 105, 103, 95, 103, 118, 124, 110, 114, 107, 129, 116, 123, 111, 122, 102, 116, 125, 109, 125, 110, 104, 114, 119, 104, 96, 121, 126, 122, 117, 105, 134, 113, 91, 116, 110, 100, 109, 119, 120, 112, 111, 112, 111, 113, 122, 96, 121, 114, 130, 116, 136, 131, 142, 121, 101, 112, 116, 129, 113, 123, 126, 137, 114, 119, 120, 124, 127, 121, 133, 115, 123, 129, 132, 130, 104, 112, 103, 121, 121, 111, 122, 113, 118, 131, 113, 115, 117, 116, 114, 103, 113, 126, 109, 114, 118, 122, 114, 126, 125, 109, 112, 118, 110, 116, 88, 110, 118, 119, 119, 117, 127, 108, 104, 125, 111, 116, 103, 109, 99, 109, 117, 96, 114, 115, 102, 122, 136, 122, 121, 120, 116, 110, 92, 118, 110, 105, 132, 101, 109, 118, 133, 125, 100, 116, 113, 127, 128, 109, 144, 124, 101, 133, 104, 111, 127, 115, 105, 124, 126, 108, 122, 106, 138, 119, 127, 116, 106, 125, 110, 110, 118, 121, 107, 128, 108, 124, 96, 119, 125, 99, 102, 122, 118, 126, 130, 129, 132, 131, 121, 105, 108, 125, 127, 110, 112, 120, 121, 123, 119, 133, 121, 108, 131, 118, 115, 123, 123, 116, 131, 128, 138, 116, 95, 113, 126, 130, 113, 119, 103, 99, 98, 131, 123, 135, 114, 103, 124, 121, 125, 117, 123, 126, 132, 118, 123, 112, 129, 124, 122, 107, 121, 130, 108, 109, 98, 114, 101, 106, 107, 102, 142, 112, 111, 131, 104, 111, 111, 113, 107, 127, 116, 132, 106, 112, 102, 99, 122, 116, 110, 112, 122, 108, 112, 134, 134, 112, 93, 122, 123, 133, 123, 117, 110, 118, 82, 108, 108, 116, 122, 115, 152, 117, 117, 103, 118, 112, 108, 133, 105, 125, 115, 119, 126, 125, 120, 124, 110, 117, 116, 127, 93, 103, 109, 120, 102, 127, 119, 118, 109, 123, 116, 106, 116, 119, 114, 146, 118, 122, 111, 120, 126, 103, 104, 118, 120, 110, 107, 114, 124, 97, 122, 129, 119, 128, 102, 115, 117, 116, 107, 131, 127, 124, 109, 130, 119, 113, 126, 130, 123, 113, 119, 116, 112, 145, 129, 119, 127, 110, 128, 126, 113, 118, 123, 111, 117, 132, 116, 119, 137, 105, 124, 112, 108, 107, 109, 103, 121, 124, 123, 115, 126, 114, 129, 129, 119, 107, 110, 125, 119, 137, 122, 119, 108, 106, 119, 113, 115, 112, 118, 115, 126, 116, 118, 131, 143, 112, 147, 111, 104, 127, 129, 115, 126, 120, 112, 112, 119, 124, 129, 116, 108, 103, 107, 117, 121, 130, 113, 146, 124, 128, 130, 116, 111, 142, 111, 103, 127, 125, 118, 122, 131, 109, 113, 110, 131, 112, 123, 109, 120, 104, 125, 110, 134, 125, 109, 116, 126, 111, 115, 132, 105, 117, 140, 125, 129, 110, 123, 119, 122, 84, 113, 125, 118, 115, 90, 100, 126, 100, 122, 117, 107, 127, 112, 117, 107, 130, 119, 127, 109, 76, 104, 112, 106, 114, 126, 116, 118, 113, 112, 114, 121, 94, 110, 122, 123, 143, 106, 108, 112, 117, 116, 89, 117, 108, 123, 125, 126, 118, 116, 125, 115, 117, 119, 120, 123, 120, 173, 110, 109, 115, 113, 132, 116, 112, 103, 108, 114, 119, 114, 109, 113, 106, 115, 118, 118, 103, 111, 88, 100, 116, 118, 121, 108, 113, 132, 115, 106, 119, 114, 109, 130, 109, 111, 111, 114, 111, 119, 109, 125, 141, 114, 110, 119, 123, 109, 117, 109, 118, 130, 124, 111, 111, 111, 122, 134, 120, 112, 105, 117, 108, 134, 116, 117, 114, 98, 117, 107, 137, 121, 138, 112, 120, 116, 106, 103, 118, 109, 104, 116, 109, 107, 116, 117, 123, 122, 119, 121, 120, 114, 114, 112, 125, 114, 132, 110, 110, 98, 115, 110, 106, 114, 126, 117, 104, 111, 121, 116, 174, 116, 122, 116, 103, 106, 100, 133, 125, 115, 120, 110, 118, 118, 114, 104, 127, 120, 117, 110, 122, 126, 105, 120, 120, 100, 114, 113, 139, 102, 131, 117, 131, 124, 95, 113, 117, 104, 111, 124, 136, 115, 126, 99, 108, 123, 121, 123, 111, 116, 130, 130, 110, 126, 144, 116, 104, 112, 107, 128, 113, 116, 106, 126, 112, 110, 119, 104, 118, 99, 95, 114, 134, 132, 130, 110, 129, 141, 107, 111, 106, 116, 114, 145, 108, 121, 124, 110, 101, 107, 107, 117, 107, 123, 106, 105, 124, 124, 109, 108, 99, 136, 117, 120, 115, 121, 113, 106, 102, 107, 99, 135, 122, 116, 128, 115, 124, 104, 120, 119, 116, 114, 101, 116, 108, 93, 114, 113, 95, 121, 116, 115, 109, 120, 116, 112, 102, 111, 112, 116, 108, 131, 116, 120, 117, 106, 108, 114, 119, 112, 111, 114, 103, 117, 117, 113, 114, 122, 132, 103, 105, 119, 109, 110, 118, 115, 120, 113, 109, 109, 132, 110, 116, 131, 109, 114, 120, 115, 113, 113, 125, 125, 103, 126, 143, 111, 116, 119, 118, 116, 125, 116, 119, 112, 100, 114, 107, 111, 121, 110, 135, 107, 119, 114, 129, 106, 107, 112, 109, 107, 119, 116, 121, 108, 115, 115, 115, 102, 92, 114, 117, 123, 119, 117, 118, 123, 113, 110, 126, 116, 103, 104, 110, 131, 126, 129, 108, 100, 131, 116, 120, 115, 112, 116, 120, 110, 125, 106, 118, 123, 112, 106, 103, 103, 129, 116, 110, 104, 115, 121, 124, 111, 113, 112, 113, 115, 112, 128, 122, 118, 126, 117, 106, 115, 127, 108, 108, 116, 96, 118, 126, 126, 108, 112, 86, 124, 107, 105, 107, 109, 100, 108, 107, 130, 114, 109, 127, 110, 120, 114, 104, 106, 92, 123, 126, 105, 114, 116, 119, 123, 131, 92, 110, 114, 109, 126, 121, 121, 127, 121, 109, 115, 105, 122, 128, 103, 110, 105, 109, 120, 119, 146, 121, 117, 123, 108, 112, 116, 122, 123, 118, 104, 113, 116, 137, 120, 121, 105, 125, 110, 132, 111, 113, 105, 115, 124, 114, 119, 136, 130, 109, 126, 136, 94, 136, 130, 107, 110, 101, 122, 97, 130, 96, 110, 117, 107, 129, 117, 121, 106, 109, 113, 105, 122, 125, 122, 127, 113, 107, 120, 124, 143, 110, 117, 118, 114, 116, 122, 103, 128, 121, 125, 106, 105, 120, 112, 118, 116, 120, 119, 118, 106, 116, 118, 120, 118, 118, 113, 101, 115, 121, 105, 137, 120, 105, 108, 96, 124, 101, 113, 119, 109, 111, 120, 129, 117, 117, 120, 118, 96, 114, 106, 109, 114, 126, 114, 110, 140, 114, 107, 119, 139, 119, 107, 131, 107, 130, 112, 109, 112, 106, 102, 110, 121, 114, 100, 115, 109, 111, 112, 106, 122, 101, 126, 115, 117, 120, 100, 117, 124, 114, 133, 117, 113, 103, 116, 114, 118, 104, 107, 126, 113, 119, 115, 99, 106, 95, 130, 118, 123, 113, 121, 121, 115, 120, 105, 111, 113, 113, 135, 116, 110, 119, 103, 122, 115, 125, 117, 117, 118, 116, 107, 111, 128, 116, 112, 103, 111, 115, 120, 124, 129, 118, 107, 127, 112, 113, 115, 123, 126, 105, 103, 119, 113, 123, 112, 114, 124, 84, 129, 125, 115, 106, 116, 111, 117, 114, 111, 102, 114, 117, 159, 106, 116, 100, 122, 113, 131, 124, 114, 107, 122, 110, 104, 123, 121, 100, 112, 122, 125, 120, 119, 112, 117, 108, 124, 112, 108, 120, 120, 111, 114, 103, 111, 107, 113, 132, 109, 124, 113, 126, 105, 116, 115, 140, 120, 104, 113, 110, 119, 115, 119, 97, 126, 95, 106, 108, 106, 118, 102, 124, 123, 120, 115, 106, 121, 116, 114, 109, 115, 111, 112, 117, 119, 114, 121, 125, 123, 121, 103, 123, 102, 119, 104, 121, 118, 111, 133, 115, 108, 126, 119, 114, 124, 122, 123, 128, 119, 123, 115, 114, 112, 126, 122, 121, 119, 109, 109, 107, 100, 129, 114, 120, 107, 115, 120, 107, 134, 117, 115, 119, 106, 127, 121, 114, 112, 124, 118, 111, 117, 122, 120, 133, 106, 132, 118, 128, 113, 125, 118, 119, 116, 118, 118, 131, 109, 108, 123, 117, 119, 116, 122, 105, 113, 124, 128, 133, 113, 124, 121, 124, 98, 104, 119, 115, 114, 120, 125, 104, 122, 112, 107, 115, 113, 113, 111, 116, 122, 113, 116, 124, 126, 124, 120, 119, 116, 110, 117, 111, 132, 135, 125, 114, 123, 118, 118, 122, 124, 111, 117, 113, 114, 122, 120, 122, 135, 126, 112, 137, 116, 117, 111, 105, 120, 124, 122, 127, 123, 111, 119, 125, 118, 111, 113, 116, 108, 117, 109, 129, 120, 114, 119, 126, 122, 117, 127, 115, 117, 130, 111, 126, 116, 113, 125, 103, 103, 122, 118, 100, 117, 107, 124, 105, 115, 111, 122, 123, 137, 118, 109, 128, 123, 144, 114, 124, 119, 122, 97, 128, 120, 116, 125, 114, 115, 121, 131, 116, 127, 114, 123, 110, 111, 102, 115, 114, 108, 117, 116, 121, 114, 139, 138, 123, 125, 103, 117, 128, 133, 125, 121, 111, 122, 116, 115, 111, 115, 121, 111, 115, 106, 126, 114, 116, 120, 123, 111, 128, 124, 125, 114, 119, 117, 112, 115, 119, 111, 113, 123, 110, 126, 115, 106, 101, 113, 126, 118, 115, 105, 119, 115, 121, 120, 130, 111, 116, 121, 108, 117, 119, 133, 123, 105, 119, 120, 116, 131, 123, 113, 107, 119, 121, 116, 104, 130, 103, 126, 120, 119, 128, 111, 124, 106, 108, 112, 111, 118, 120, 121, 107, 110, 120, 126, 106, 124, 88, 104, 128, 107, 102, 122, 120, 107, 115, 118, 127, 118, 137, 113, 114, 118, 116, 111, 106, 123, 101, 125, 130, 116, 126, 131, 115, 130, 112, 112, 116, 112, 108, 118, 126, 116, 124, 128, 134, 121, 133, 126, 112, 114, 104, 111, 123, 135, 117, 111, 121, 111, 116, 133, 122, 103, 117, 113, 110, 124, 118, 109, 114, 116, 117, 118, 115, 122, 116, 111, 126, 110, 122, 117, 126, 118, 127, 101, 119, 110, 118, 109, 123, 120, 135, 107, 124, 120, 111, 123, 113, 134, 132, 116, 101, 125, 124, 120, 120, 119, 117, 129, 121, 127, 138, 115, 122, 119, 119, 114, 118, 114, 116, 116, 126, 105, 109, 137, 136, 126, 119, 120, 126, 111, 122, 116, 110, 126, 122, 123, 108, 108, 108, 114, 116, 113, 123, 106, 122, 117, 122, 120, 111, 103, 133, 116, 122, 128, 109, 110, 123, 120, 121, 122, 111, 107, 114, 126, 124, 118, 111, 112, 114, 127, 137, 127, 112, 99, 127, 120, 120, 116, 116, 114, 116, 120, 117, 117, 114, 115, 113, 118, 119, 100, 120, 115, 113, 126, 116, 120, 127, 120, 124, 113, 124, 116, 126, 123, 120, 118, 121, 117, 110, 120, 130, 109, 112, 99, 116, 124, 112, 109, 98, 106, 112, 118, 106, 110, 89, 106, 121, 114, 121, 125, 101, 126, 118, 148, 97, 118, 106, 120, 135, 105, 118, 117, 105, 120, 110, 132, 112, 123, 121, 121, 130, 103, 131, 106, 125, 112, 106, 123, 135, 105, 103, 115, 117, 112, 126, 110, 120, 119, 120, 97, 128, 122, 100, 119, 90, 101, 118, 115, 112, 111, 120, 113, 134, 117, 110, 93, 108, 104, 108, 108, 113, 118, 91, 147, 119, 122, 113, 111, 107, 118, 100, 110, 128, 119, 116, 110, 76, 118, 116, 110, 125, 121, 142, 108, 116, 110, 107, 96, 143, 116, 107, 99, 112, 121, 114, 95, 108, 111, 90, 116, 126, 110, 110, 130, 109, 94, 98, 115, 120, 98, 114, 111, 113, 110, 110, 111, 125, 134, 115, 104, 108, 98, 134, 115, 114, 112, 112, 107, 125, 115, 109, 124, 115, 102, 139, 126, 104, 129, 141, 121, 121, 152, 121, 113, 118, 109, 129, 112, 106, 116, 109, 92, 132, 112, 115, 113, 131, 128, 120, 101, 138, 113, 143, 97, 109, 118, 107, 105, 120, 95, 105, 123, 107, 126, 101, 111, 114, 103, 130, 121, 110, 95, 126, 122, 126, 109, 120, 93, 116, 139, 103, 127, 112, 107, 118, 116, 109, 91, 130, 109, 122, 122, 102, 148, 125, 124, 117, 85, 119, 117, 103, 107, 117, 116, 112, 129, 115, 123, 125, 109, 114, 119, 126, 115, 112, 98, 121, 104, 110, 121, 107, 109, 109, 116, 103, 97, 114, 139, 100, 107, 105, 127, 119, 122, 111, 110, 111, 100, 126, 113, 108, 113, 118, 114, 105, 114, 116, 115, 118, 111, 127, 96, 113, 108, 116, 108, 123, 105, 112, 127, 113, 109, 106, 121, 93, 105, 117, 116, 122, 93, 94, 112, 116, 100, 124, 131, 116, 126, 129, 125, 114, 109, 122, 121, 103, 120, 110, 128, 123, 126, 104, 127, 119, 125, 124, 109, 95, 116, 108, 110, 99, 97, 97, 130, 123, 120, 122, 130, 124, 92, 107, 112, 123, 90, 126, 109, 127, 120, 115, 102, 123, 111, 127, 153, 131, 122, 123, 121, 101, 116, 110, 83, 104, 125, 119, 112, 112, 144, 108, 120, 110, 122, 96, 111, 107, 114, 106, 119, 122, 109, 108, 113, 118, 120, 120, 127, 114, 108, 112, 110, 119, 106, 119, 103, 125, 121, 128, 108, 104, 104, 92, 120, 123, 112, 117, 160, 111, 125, 112, 122, 103, 103, 125, 122, 101, 110, 118, 109, 122, 114, 103, 119, 110, 118, 92, 111, 129, 124, 117, 112, 119, 108, 102, 114, 109, 125, 116, 122, 107, 122, 97, 115, 120, 114, 111, 105, 111, 117, 129, 106, 110, 107, 112, 106, 117, 115, 122, 114, 103, 113, 98, 111, 104, 123, 101, 111, 107, 100, 113, 119, 161, 121, 122, 102, 113, 122, 122, 110, 101, 105, 99, 118, 115, 98, 106, 118, 109, 127, 122, 107, 110, 117, 106, 148, 124, 117, 120, 101, 124, 112, 157, 109, 109, 112, 120, 109, 107, 121, 108, 116, 111, 112, 102, 105, 117, 114, 126, 106, 99, 120, 124, 120, 118, 129, 113, 115, 122, 106, 109, 90, 119, 108, 114, 122, 116, 109, 115, 124, 100, 112, 122, 123, 108, 107, 123, 113, 104, 111, 122, 114, 106, 109, 122, 124, 116, 123, 109, 110, 113, 116, 116, 126, 108, 112, 122, 126, 118, 124, 114, 118, 139, 80, 121, 116, 100, 111, 108, 103, 119, 102, 103, 123, 112, 116, 112, 110, 116, 124, 113, 118, 123, 116, 95, 120, 111, 117, 109, 119, 109, 132, 120, 104, 113, 124, 128, 110, 118, 118, 89, 120, 118, 108, 99, 107, 110, 106, 112, 118, 116, 108, 114, 114, 138, 120, 155, 121, 118, 116, 118, 121, 132, 106, 122, 144, 122, 107, 110, 126, 111, 101, 111, 98, 113, 119, 114, 115, 119, 132, 118, 112, 123, 103, 109, 124, 102, 127, 110, 111, 120, 111, 84, 132, 123, 114, 118, 123, 106, 110, 137, 119, 111, 111, 124, 120, 114, 106, 128, 102, 109, 106, 112, 121, 121, 114, 119, 120, 117, 102, 117, 105, 117, 105, 103, 114, 117, 112, 109, 122, 104, 124, 105, 121, 107, 114, 113, 116, 111, 111, 118, 110, 104, 112, 111, 126, 128, 105, 112, 113, 122, 130, 120, 95, 109, 108, 107, 116, 122, 122, 119, 80, 125, 117, 110, 109, 111, 107, 120, 117, 104, 103, 110, 114, 104, 107, 125, 116, 122, 116, 124, 109, 135, 98, 121, 111, 114, 119, 131, 121, 121, 111, 102, 97, 105, 116, 121, 108, 111, 116, 114, 88, 112, 103, 104, 112, 119, 132, 116, 123, 113, 105, 119, 113, 118, 120, 128, 128, 104, 119, 115, 114, 167, 107, 110, 100, 134, 119, 120, 118, 112, 122, 118, 124, 130, 116, 115, 123, 106, 113, 109, 110, 121, 114, 114, 108, 97, 113, 110, 100, 103, 119, 113, 116, 122, 109, 113, 121, 113, 85, 115, 99, 103, 132, 110, 110, 142, 116, 99, 124, 119, 127, 118, 114, 114, 106, 104, 125, 109, 121, 113, 153, 110, 113, 114, 126, 112, 117, 115, 111, 120, 130, 118, 111, 118, 121, 117, 98, 119, 126, 127, 121, 115, 115, 116, 108, 132, 112, 115, 116, 116, 111, 110, 117, 97, 107, 104, 119, 111, 109, 120, 122, 117, 112, 113, 102, 96, 109, 116, 111, 96, 103, 112, 118, 106, 109, 119, 117, 115, 111, 119, 128, 123, 108, 155, 103, 108, 116, 120, 116, 115, 115, 83, 115, 130, 113, 117, 121, 120, 109, 114, 118, 122, 117, 113, 112, 113, 127, 114, 105, 116, 74, 116, 131, 114, 110, 122, 127, 117, 114, 114, 117, 119, 124, 112, 107, 114, 116, 122, 119, 123, 115, 122, 105, 114, 117, 119, 132, 122, 118, 121, 126, 128, 102, 122, 123, 116, 120, 126, 111, 104, 111, 118, 123, 104, 116, 126, 104, 120, 136, 110, 121, 109, 123, 107, 126, 122, 112, 115, 116, 115, 106, 129, 123, 105, 112, 115, 114, 127, 102, 116, 114, 119, 118, 113, 134, 110, 110, 118, 112, 114, 119, 121, 109, 113, 110, 116, 109, 126, 117, 106, 113, 121, 141, 122, 108, 101, 114, 110, 116, 131, 114, 118, 109, 117, 89, 109, 111, 111, 115, 115, 108, 126, 98, 124, 117, 121, 121, 119, 116, 113, 112, 120, 116, 118, 122, 111, 137, 114, 127, 119, 128, 103, 103, 107, 109, 122, 113, 125, 133, 116, 118, 110, 109, 109, 100, 118, 120, 102, 119, 113, 109, 122, 124, 112, 112, 130, 120, 122, 127, 96, 106, 126, 119, 112, 114, 129, 89, 117, 109, 102, 119, 122, 111, 108, 133, 109, 142, 112, 121, 112, 122, 122, 110, 110, 109, 120, 118, 116, 117, 120, 125, 114, 138, 99, 124, 121, 142, 113, 120, 99, 117, 118, 107, 114, 110, 114, 117, 124, 125, 122, 140, 113, 143, 109, 140, 106, 110, 137, 110, 121, 123, 113, 110, 135, 110, 125, 116, 123, 122, 98, 100, 113, 120, 112, 123, 109, 119, 110, 135, 99, 128, 101, 96, 112, 128, 116, 124, 124, 118, 129, 120, 112, 116, 93, 105, 142, 106, 121, 111, 105, 111, 119, 119, 120, 119, 113, 119, 115, 117, 111, 120, 117, 98, 138, 112, 133, 123, 125, 126, 107, 122, 118, 121, 112, 104, 109, 127, 113, 103, 131, 126, 100, 121, 127, 116, 136, 124, 95, 117, 113, 113, 125, 120, 136, 113, 121, 120, 120, 113, 125, 104, 110, 110, 125, 139, 107, 120, 125, 121, 109, 125, 121, 142, 82, 114, 117, 124, 121, 98, 98, 107, 113, 116, 119, 117, 113, 117, 129, 107, 114, 112, 120, 116, 118, 119, 115, 117, 117, 130, 130, 128, 121, 115, 115, 97, 126, 104, 97, 121, 125, 117, 117, 101, 116, 98, 119, 125, 108, 128, 113, 108, 123, 109, 112, 109, 118, 117, 114, 117, 120, 109, 117, 107, 118, 116, 124, 112, 123, 104, 117, 120, 120, 103, 107, 118, 110, 124, 114, 90, 105, 120, 112, 112, 122, 111, 125, 113, 117, 117, 122, 116, 133, 126, 117, 126, 104, 139, 108, 133, 108, 115, 124, 116, 136, 124, 97, 113, 114, 116, 112, 125, 104, 120, 120, 114, 110, 135, 106, 113, 115, 115, 120, 122, 86, 112, 129, 130, 106, 126, 122, 125, 118, 110, 130, 119, 123, 120, 116, 127, 110, 111, 98, 117, 118, 108, 116, 116, 123, 117, 111, 126, 115, 113, 115, 116, 115, 124, 115, 139, 129, 108, 124, 99, 107, 118, 118, 125, 126, 128, 112, 117, 125, 131, 120, 102, 113, 134, 123, 111, 93, 99, 115, 112, 103, 93, 108, 141, 121, 116, 101, 101, 117, 118, 115, 104, 113, 125, 117, 109, 101, 105, 122, 120, 132, 109, 116, 117, 113, 116, 115, 124, 115, 129, 125, 128, 124, 103, 107, 113, 113, 113, 125, 117, 105, 126, 112, 118, 111, 129, 98, 113, 134, 97, 116, 119, 110, 136, 106, 115, 109, 113, 119, 132, 115, 117, 116, 121, 125, 91, 117, 117, 117, 111, 122, 116, 163, 113, 107, 122, 104, 131, 109, 110, 131, 120, 108, 127, 105, 116, 105, 115, 114, 122, 108, 111, 103, 114, 134, 146, 111, 123, 128, 126, 119, 109, 120, 120, 108, 127, 116, 114, 109, 123, 116, 105, 111, 117, 135, 110, 119, 110, 115, 115, 108, 112, 119, 119, 116, 119, 120, 120, 111, 114, 106, 109, 106, 115, 118, 123, 128, 120, 118, 110, 111, 119, 113, 116, 107, 111, 114, 108, 115, 100, 124, 126, 113, 115, 114, 114, 107, 112, 109, 125, 120, 109, 118, 127, 114, 118, 108, 117, 131, 120, 114, 107, 126, 116, 113, 119, 111, 122, 113, 131, 120, 120, 116, 99, 115, 115, 114, 123, 124, 114, 90, 131, 111, 112, 119, 123, 109, 107, 117, 113, 114, 106, 126, 103, 132, 111, 119, 116, 127, 115, 114, 113, 130, 112, 110, 108, 111, 111, 102, 121, 122, 117, 129, 111, 114, 120, 116, 121, 123, 118, 113, 111, 96, 107, 117, 113, 107, 124, 117, 115, 122, 110, 142, 114, 108, 123, 133, 97, 124, 124, 133, 119, 120, 109, 110, 116, 114, 131, 130, 117, 113, 107, 130, 118, 114, 114, 127, 114, 126, 120, 116, 123, 111, 114, 109, 131, 109, 121, 119, 107, 111, 113, 103, 117, 108, 119, 110, 114, 107, 109, 112, 120, 112, 110, 114, 107, 122, 117, 113, 113, 116, 116, 111, 120, 114, 110, 116, 120, 125, 125, 125, 114, 119, 112, 113, 113, 112, 112, 107, 119, 118, 119, 105, 106, 119, 113, 120, 124, 116, 121, 111, 111, 109, 100, 104, 118, 111, 116, 117, 126, 114, 110, 106, 102, 109, 113, 117, 119, 117, 115, 106, 107, 127, 112, 114, 120, 109, 113, 112, 113, 110, 119, 118, 118, 126, 114, 121, 117, 112, 119, 110, 118, 124, 117, 111, 124, 136, 124, 120, 122, 113, 119, 114, 110, 120, 109, 118, 115, 121, 131, 104, 118, 104, 115, 104, 110, 113, 121, 115, 114, 120, 118, 116, 127, 126, 128, 123, 118, 114, 112, 111, 113, 118, 107, 107, 116, 121, 116, 122, 117, 128, 124, 120, 121, 130, 113, 124, 112, 114, 116, 113, 120, 109, 129, 112, 123, 107, 115, 123, 113, 113, 111, 117, 121, 119, 120, 109, 116, 111, 123, 118, 102, 114, 101, 125, 116, 112, 117, 118, 113, 107, 109, 114, 124, 111, 112, 117, 115, 110, 124, 116, 123, 124, 108, 117, 111, 109, 122, 120, 117, 113, 106, 108, 118, 108, 119, 115, 107, 108, 118, 114, 110, 109, 113, 103, 106, 118, 120, 119, 112, 117, 98, 105, 117, 110, 104, 123, 120, 106, 110, 122, 116, 131, 120, 114, 118, 112, 113, 125, 116, 114, 110, 112, 116, 111, 121, 125, 105, 114, 108, 124, 115, 112, 119, 125, 118, 110, 114, 114, 126, 110, 111, 122, 113, 114, 116, 133, 118, 131, 122, 112, 125, 111, 100, 133, 129, 118, 117, 128, 121, 108, 121, 130, 110, 119, 120, 112, 107, 117, 118, 107, 130, 114, 120, 120, 124, 115, 125, 111, 117, 114, 109, 122, 115, 118, 115, 120, 107, 131, 104, 124, 107, 107, 121, 113, 115, 109, 117, 116, 115, 121, 115, 117, 125, 117, 118, 111, 108, 125, 115, 116, 108, 100, 123, 108, 119, 135, 110, 132, 119, 135, 103, 124, 120, 120, 116, 116, 120, 124, 108, 103, 115, 121, 125, 108, 108, 120, 112, 126, 110, 116, 118, 109, 118, 113, 121, 113, 108, 99, 93, 120, 115, 102, 123, 113, 116, 129, 114, 106, 117, 107, 104, 129, 110, 100, 116, 103, 120, 121, 114, 111, 135, 123, 119, 107, 114, 125, 124, 94, 120, 103, 113, 114, 123, 110, 111, 126, 106, 105, 133, 128, 110, 112, 125, 121, 125, 114, 117, 120, 115, 123, 105, 115, 117, 113, 113, 109, 115, 125, 106, 123, 116, 121, 132, 121, 107, 130, 111, 113, 120, 124, 114, 103, 114, 110, 104, 103, 103, 120, 108, 138, 115, 112, 109, 118, 129, 134, 120, 113, 110, 124, 117, 115, 151, 124, 130, 116, 156, 127, 113, 126, 123, 114, 110, 122, 106, 116, 111, 109, 120, 117, 120, 94, 97, 114, 127, 114, 111, 120, 120, 114, 109, 117, 131, 123, 116, 105, 121, 110, 109, 118, 112, 129, 128, 110, 113, 125, 123, 108, 125, 110, 109, 113, 104, 134, 118, 109, 116, 117, 111, 119, 115, 141, 108, 130, 127, 112, 121, 129, 115, 125, 113, 109, 118, 127, 105, 99, 107, 127, 117, 106, 117, 107, 113, 116, 122, 125, 119, 112, 121, 121, 119, 123, 105, 123, 116, 117, 112, 114, 121, 112, 104, 130, 107, 110, 110, 120, 119, 123, 108, 116, 134, 126, 138, 128, 127, 124, 118, 105, 107, 126, 122, 113, 121, 107, 117, 120, 104, 114, 122, 114, 117, 119, 118, 129, 112, 105, 118, 113, 111, 127, 123, 121, 117, 110, 111, 103, 109, 114, 121, 99, 124, 119, 114, 116, 121, 129, 114, 114, 107, 108, 121, 122, 105, 118, 114, 142, 118, 116, 96, 112, 120, 96, 116, 112, 106, 104, 119, 126, 107, 117, 118, 111, 111, 119, 128, 121, 116, 117, 125, 128, 109, 117, 105, 112, 104, 112, 117, 130, 116, 117, 113, 91, 110, 104, 99, 127, 115, 111, 134, 123, 111, 108, 120, 109, 118, 120, 110, 115, 119, 115, 116, 114, 108, 100, 110, 125, 126, 118, 111, 125, 126, 118, 122, 114, 111, 107, 122, 117, 124, 119, 120, 118, 91, 108, 117, 126, 117, 120, 106, 122, 125, 131, 121, 111, 112, 117, 109, 110, 121, 118, 121, 106, 96, 110, 114, 127, 117, 109, 124, 111, 127, 122, 123, 111, 107, 113, 117, 120, 112, 106, 114, 109, 108, 97, 106, 109, 105, 119, 115, 121, 105, 120, 123, 109, 100, 121, 122, 108, 133, 130, 132, 118, 120, 113, 123, 126, 103, 124, 121, 129, 99, 121, 118, 124, 104, 119, 108, 111, 122, 102, 108, 122, 110, 104, 132, 94, 121, 108, 121, 108, 114, 117, 117, 107, 117, 120, 102, 116, 108, 111, 120, 110, 104, 118, 119, 122, 116, 106, 120, 117, 96, 101, 127, 119, 111, 120, 116, 124, 115, 110, 126, 106, 141, 122, 108, 111, 114, 105, 118, 117, 123, 119, 103, 123, 121, 120, 130, 124, 104, 126, 109, 102, 136, 126, 136, 113, 112, 120, 126, 121, 119, 117, 129, 101, 124, 123, 122, 113, 96, 110, 113, 125, 104, 112, 122, 106, 100, 120, 120, 134, 114, 113, 110, 104, 115, 120, 122, 103, 125, 106, 108, 117, 120, 115, 127, 97, 114, 120, 130, 123, 108, 126, 112, 128, 109, 131, 117, 101, 120, 126, 120, 124, 113, 111, 94, 116, 94, 119, 123, 120, 112, 123, 116, 119, 129, 107, 113, 102, 122, 117, 112, 115, 124, 121, 115, 101, 113, 115, 124, 113, 108, 101, 126, 117, 86, 117, 121, 109, 117, 111, 114, 117, 98, 125, 132, 124, 113, 110, 120, 104, 124, 117, 130, 110, 108, 119, 124, 116, 120, 122, 117, 132, 113, 114, 116, 121, 128, 116, 112, 123, 119, 118, 113, 124, 112, 112, 116, 113, 122, 150, 114, 130, 98, 125, 117, 111, 121, 131, 108, 121, 112, 112, 104, 116, 90, 103, 119, 110, 118, 103, 111, 109, 96, 102, 107, 114, 108, 115, 114, 115, 108, 106, 99, 129, 101, 126, 110, 113, 110, 115, 117, 113, 104, 120, 122, 114, 105, 116, 125, 122, 126, 111, 115, 116, 105, 120, 122, 139, 126, 133, 118, 132, 113, 110, 151, 125, 111, 112, 117, 125, 138, 127, 116, 123, 115, 113, 126, 132, 121, 102, 114, 129, 162, 128, 122, 119, 114, 121, 115, 111, 117, 115, 103, 112, 115, 114, 116, 113, 113, 118, 116, 111, 116, 121, 127, 128, 108, 114, 120, 116, 97, 115, 118, 113, 112, 114, 114, 112, 112, 120, 107, 109, 117, 115, 109, 115, 110, 125, 137, 121, 114, 121, 118, 126, 94, 105, 118, 130, 116, 127, 109, 103, 103, 111, 104, 101, 111, 105, 129, 127, 124, 116, 120, 116, 113, 116, 130, 122, 109, 111, 115, 135, 119, 118, 95, 129, 118, 116, 132, 119, 120, 123, 118, 99, 117, 140, 127, 111, 107, 94, 129, 123, 105, 119, 118, 110, 113, 123, 122, 144, 113, 120, 106, 134, 116, 120, 107, 113, 123, 121, 117, 124, 103, 129, 118, 98, 119, 92, 129, 119, 122, 110, 115, 128, 121, 111, 115, 111, 128, 107, 122, 110, 119, 110, 124, 117, 110, 124, 121, 115, 121, 127, 109, 118, 123, 114, 104, 121, 108, 116, 116, 126, 122, 124, 116, 99, 114, 127, 109, 132, 144, 104, 105, 116, 108, 123, 102, 116, 112, 125, 113, 122, 108, 110, 115, 117, 137, 119, 122, 119, 125, 121, 115, 108, 106, 140, 118, 109, 117, 123, 106, 130, 125, 121, 110, 113, 117, 100, 113, 106, 118, 106, 118, 105, 113, 125, 115, 127, 121, 110, 125, 133, 126, 129, 126, 105, 118, 124, 115, 122, 126, 102, 117, 123, 115, 124, 118, 108, 124, 117, 129, 98, 105, 117, 120, 100, 118, 115, 110, 109, 109, 103, 131, 125, 117, 127, 96, 134, 123, 124, 122, 118, 122, 120, 115, 119, 113, 120, 122, 118, 114, 102, 122, 100, 133, 116, 121, 122, 126, 105, 113, 101, 110, 119, 122, 115, 115, 119, 117, 125, 107, 118, 112, 112, 113, 109, 112, 117, 130, 110, 122, 123, 96, 116, 110, 124, 111, 109, 105, 113, 108, 103, 114, 125, 103, 117, 108, 112, 98, 117, 108, 140, 119, 128, 115, 114, 123, 121, 119, 117, 123, 117, 114, 110, 100, 104, 131, 123, 126, 122, 109, 118, 127, 105, 114, 116, 116, 112, 122, 118, 123, 111, 119, 121, 125, 106, 113, 99, 120, 107, 113, 105, 121, 119, 121, 110, 113, 122, 115, 108, 111, 123, 125, 121, 105, 127, 125, 118, 115, 111, 119, 106, 114, 109, 107, 118, 126, 126, 100, 107, 126, 98, 116, 111, 113, 121, 108, 117, 112, 116, 118, 117, 105, 118, 134, 116, 121, 111, 104, 119, 119, 126, 122, 109, 120, 118, 114, 112, 114, 127, 123, 112, 108, 127, 117, 124, 109, 121, 121, 109, 123, 116, 123, 114, 127, 119, 113, 116, 108, 110, 100, 109, 123, 113, 112, 116, 126, 124, 123, 102, 112, 122, 123, 112, 115, 124, 129, 124, 118, 110, 117, 110, 128, 134, 122, 132, 107, 112, 106, 123, 101, 113, 121, 104, 117, 120, 104, 116, 122, 115, 115, 113, 117, 107, 99, 118, 96, 111, 127, 113, 109, 106, 120, 130, 121, 114, 125, 110, 118, 111, 105, 102, 110, 121, 144, 117, 109, 114, 121, 115, 113, 119, 117, 131, 106, 114, 117, 123, 117, 115, 124, 114, 130, 124, 108, 125, 124, 107, 119, 121, 121, 123, 106, 117, 114, 122, 131, 102, 119, 113, 111, 117, 108, 140, 110, 121, 127, 121, 113, 110, 117, 119, 121, 109, 106, 120, 111, 115, 106, 108, 101, 131, 117, 95, 110, 107, 121, 108, 122, 120, 109, 116, 102, 117, 107, 152, 117, 125, 114, 110, 113, 108, 119, 112, 129, 122, 110, 121, 104, 111, 111, 120, 118, 108, 108, 109, 135, 101, 135, 119, 133, 124, 108, 129, 117, 120, 126, 119, 115, 106, 114, 121, 120, 118, 115, 113, 135, 113, 121, 117, 118, 131, 106, 112, 100, 89, 110, 108, 120, 108, 109, 107, 120, 124, 132, 116, 114, 105, 125, 111, 116, 111, 123, 125, 113, 107, 161, 123, 120, 107, 121, 118, 115, 113, 118, 125, 115, 106, 107, 114, 134, 116, 122, 107, 121, 105, 114, 114, 113, 117, 116, 119, 119, 123, 121, 103, 116, 106, 120, 116, 116, 125, 100, 112, 113, 114, 121, 123, 125, 127, 99, 111, 130, 126, 117, 123, 109, 119, 115, 126, 112, 111, 120, 118, 106, 108, 119, 112, 112, 109, 93, 129, 121, 110, 118, 136, 119, 116, 118, 114, 116, 125, 119, 114, 109, 112, 115, 110, 95, 106, 109, 115, 131, 101, 103, 119, 129, 114, 115, 112, 121, 109, 95, 114, 127, 109, 114, 107, 103, 119, 135, 101, 116, 113, 119, 109, 121, 111, 118, 118, 113, 123, 101, 111, 126, 114, 114, 114, 112, 119, 95, 114, 119, 118, 113, 109, 113, 115, 107, 123, 104, 117, 118, 126, 110, 121, 120, 110, 115, 106, 118, 119, 111, 87, 119, 112, 131, 104, 125, 128, 125, 121, 129, 107, 138, 117, 111, 128, 120, 123, 122, 109, 116, 108, 109, 114, 120, 124, 117, 113, 108, 108, 113, 121, 136, 125, 118, 124, 116, 118, 128, 108, 117, 123, 123, 116, 110, 138, 122, 120, 117, 120, 116, 114, 120, 102, 115, 115, 115, 122, 125, 125, 120, 125, 130, 108, 109, 114, 111, 109, 119, 112, 120, 117, 110, 115, 114, 115, 119, 104, 117, 115, 118, 117, 132, 116, 121, 121, 113, 116, 122, 120, 110, 124, 118, 106, 117, 105, 120, 124, 121, 107, 122, 114, 127, 125, 113, 129, 117, 117, 109, 114, 149, 114, 115, 121, 119, 134, 117, 116, 111, 104, 127, 103, 117, 108, 113, 121, 122, 114, 114, 115, 109, 119, 122, 117, 134, 111, 134, 110, 123, 116, 115, 111, 112, 116, 119, 113, 109, 117, 106, 115, 118, 117, 131, 117, 110, 120, 125, 106, 121, 114, 123, 122, 99, 122, 118, 116, 113, 124, 113, 129, 114, 117, 107, 113, 112, 123, 122, 117, 114, 118, 123, 114, 131, 103, 103, 129, 115, 108, 119, 99, 119, 118, 115, 118, 108, 129, 110, 136, 121, 115, 117, 129, 111, 114, 122, 116, 108, 102, 125, 116, 126, 123, 113, 108, 118, 99, 115, 101, 108, 106, 116, 109, 116, 131, 115, 114, 127, 116, 109, 125, 122, 115, 114, 109, 119, 104, 102, 122, 122, 99, 121, 119, 114, 125, 109, 118, 105, 113, 107, 108, 115, 101, 120, 122, 135, 106, 107, 117, 128, 108, 125, 119, 99, 113, 103, 110, 123, 110, 114, 119, 116, 105, 119, 117, 114, 110, 116, 116, 113, 117, 115, 118, 114, 118, 130, 126, 123, 118, 112, 112, 120, 128, 126, 111, 115, 104, 114, 118, 115, 123, 114, 119, 98, 120, 122, 134, 126, 120, 130, 128, 120, 99, 116, 111, 112, 105, 117, 107, 107, 106, 117, 115, 103, 132, 98, 118, 108, 116, 125, 115, 113, 110, 122, 114, 112, 119, 120, 115, 120, 110, 136, 119, 134, 111, 129, 105, 104, 106, 104, 118, 127, 119, 108, 108, 126, 108, 126, 116, 119, 123, 118, 118, 114, 126, 105, 111, 124, 106, 121, 116, 108, 117, 117, 112, 114, 119, 112, 113, 115, 100, 132, 115, 128, 113, 118, 111, 115, 118, 123, 109, 126, 121, 106, 110, 124, 127, 98, 116, 117, 94, 114, 122, 124, 110, 123, 115, 124, 123, 116, 141, 127, 116, 120, 112, 107, 117, 109, 126, 105, 112, 107, 117, 118, 121, 117, 107, 109, 120, 114, 107, 104, 116, 113, 127, 120, 125, 137, 132, 104, 117, 126, 115, 105, 120, 98, 128, 113, 113, 105, 118, 98, 121, 124, 115, 129, 120, 110, 118, 120, 110, 118, 112, 107, 109, 121, 114, 113, 120, 107, 116, 112, 107, 118, 111, 117, 109, 116, 107, 103, 118, 118, 121, 104, 107, 106, 114, 105, 105, 109, 99, 111, 123, 124, 119, 111, 121, 118, 130, 108, 114, 110, 127, 118, 111, 132, 108, 117, 118, 117, 115, 106, 106, 115, 113, 125, 118, 116, 113, 117, 118, 133, 129, 118, 109, 112, 113, 115, 114, 114, 113, 112, 125, 122, 119, 116, 98, 103, 100, 95, 112, 109, 120, 114, 115, 126, 107, 109, 106, 113, 114, 98, 97, 97, 112, 117, 111, 127, 112, 118, 107, 123, 114, 128, 125, 125, 109, 105, 126, 144, 119, 111, 98, 117, 114, 113, 121, 104, 124, 111, 109, 107, 121, 120, 117, 113, 132, 133, 118, 109, 126, 115, 114, 110, 119, 112, 115, 112, 126, 113, 123, 112, 113, 114, 97, 127, 119, 112, 131, 114, 110, 108, 111, 122, 129, 100, 108, 122, 108, 109, 107, 102, 127, 118, 97, 106, 114, 116, 133, 93, 124, 103, 96, 101, 113, 105, 94, 130, 100, 108, 128, 122, 143, 110, 133, 111, 115, 112, 109, 109, 121, 106, 118, 111, 103, 134, 92, 108, 120, 98, 98, 113, 108, 117, 118, 119, 120, 113, 128, 119, 121, 99, 119, 119, 101, 123, 112, 116, 101, 106, 125, 129, 109, 121, 119, 122, 124, 117, 117, 114, 98, 107, 102, 122, 110, 118, 123, 105, 112, 111, 114, 128, 92, 131, 113, 106, 107, 107, 120, 114, 115, 117, 104, 132, 111, 122, 122, 115, 132, 110, 96, 129, 123, 105, 115, 125, 121, 112, 135, 117, 102, 116, 107, 117, 124, 105, 114, 106, 108, 95, 113, 110, 113, 100, 112, 115, 125, 117, 116, 110, 117, 118, 113, 105, 121, 114, 108, 107, 120, 105, 145, 117, 119, 119, 103, 116, 121, 97, 103, 111, 144, 114, 110, 123, 125, 124, 115, 114, 123, 111, 130, 123, 100, 134, 115, 111, 132, 107, 94, 108, 113, 109, 115, 125, 122, 105, 107, 106, 112, 124, 116, 141, 106, 110, 119, 123, 127, 97, 116, 113, 119, 115, 117, 109, 118, 116, 110, 114, 104, 117, 119, 115, 99, 109, 106, 147, 125, 131, 98, 116, 126, 122, 114, 98, 115, 123, 114, 117, 104, 112, 126, 113, 122, 130, 111, 122, 120, 126, 116, 134, 124, 132, 108, 121, 116, 121, 133, 105, 107, 122, 104, 120, 112, 127, 92, 122, 109, 118, 115, 104, 111, 126, 110, 96, 119, 116, 152, 105, 106, 129, 117, 115, 120, 105, 113, 125, 102, 117, 117, 136, 119, 119, 132, 118, 104, 115, 123, 121, 111, 165, 119, 114, 103, 113, 116, 129, 130, 117, 115, 131, 112, 113, 117, 112, 106, 89, 123, 114, 131, 105, 122, 94, 127, 116, 105, 116, 132, 129, 130, 105, 124, 124, 128, 93, 117, 104, 121, 126, 104, 132, 99, 112, 117, 104, 104, 107, 113, 104, 112, 120, 118, 125, 111, 123, 106, 101, 111, 110, 130, 125, 121, 95, 114, 112, 130, 121, 121, 116, 95, 92, 101, 126, 95, 117, 119, 123, 127, 125, 122, 112, 110, 122, 119, 118, 98, 115, 134, 110, 102, 111, 114, 109, 110, 121, 108, 107, 108, 127, 109, 117, 119, 118, 110, 113, 130, 118, 118, 146, 120, 127, 125, 118, 109, 118, 128, 121, 115, 100, 125, 106, 120, 105, 102, 117, 110, 107, 107, 119, 129, 123, 115, 117, 99, 118, 129, 115, 117, 107, 113, 114, 119, 116, 120, 120, 114, 115, 109, 125, 123, 125, 127, 115, 129, 117, 112, 119, 115, 115, 122, 104, 121, 115, 108, 115, 111, 106, 94, 111, 111, 109, 117, 113, 117, 118, 118, 118, 131, 112, 114, 117, 117, 122, 127, 124, 122, 100, 116, 112, 118, 121, 126, 128, 117, 116, 115, 115, 127, 113, 116, 110, 115, 120, 112, 112, 120, 120, 115, 123, 122, 123, 125, 108, 114, 117, 117, 122, 125, 124, 121, 119, 121, 117, 114, 118, 114, 122, 116, 120, 113, 117, 115, 110, 126, 113, 115, 114, 114, 121, 120, 110, 116, 107, 119, 116, 121, 117, 121, 116, 114, 117, 122, 113, 111, 134, 115, 117, 116, 120, 106, 116, 107, 116, 120, 117, 121, 113, 120, 117, 112, 114, 128, 123, 118, 121, 118, 114, 119, 121, 113, 103, 123, 117, 109, 107, 118, 115, 117, 112, 131, 112, 111, 110, 114, 105, 118, 121, 122, 125, 117, 112, 70, 99, 113, 116, 114, 118, 106, 104, 115, 120, 118, 120, 127, 120, 109, 117, 121, 122, 121, 106, 116, 103, 116, 122, 126, 111, 118, 115, 115, 111, 116, 96, 126, 114, 108, 109, 98, 120, 103, 117, 118, 125, 117, 112, 115, 112, 116, 87, 118, 119, 116, 118, 126, 116, 109, 109, 115, 112, 123, 125, 121, 118, 118, 101, 112, 116, 123, 122, 113, 111, 108, 117, 115, 118, 117, 121, 122, 121, 120, 115, 116, 123, 116, 112, 119, 112, 129, 123, 123, 116, 123, 117, 114, 121, 117, 115, 120, 117, 125, 115, 114, 113, 122, 116, 115, 114, 116, 112, 107, 115, 110, 114, 119, 120, 128, 122, 96, 117, 113, 103, 101, 120, 118, 109, 116, 122, 114, 119, 113, 123, 114, 115, 99, 110, 124, 117, 118, 115, 135, 111, 116, 107, 117, 121, 118, 114, 120, 118, 119, 116, 116, 124, 120, 108, 121, 112, 122, 120, 111, 117, 129, 130, 117, 108, 114, 116, 116, 124, 119, 125, 110, 112, 120, 121, 125, 115, 116, 117, 114, 121, 121, 117, 113, 116, 113, 114, 118, 119, 118, 116, 115, 118, 118, 112, 115, 126, 114, 116, 115, 122, 115, 111, 119, 119, 120, 101, 119, 109, 93, 116, 112, 114, 122, 115, 122, 113, 110, 114, 110, 117, 122, 121, 123, 114, 126, 114, 121, 111, 138, 124, 116, 113, 112, 115, 115, 128, 104, 119, 121, 115, 114, 116, 115, 113, 110, 115, 115, 128, 116, 116, 117, 116, 120, 118, 120, 99, 106, 121, 114, 117, 122, 108, 113, 113, 120, 113, 113, 122, 117, 121, 116, 113, 121, 108, 119, 115, 128, 121, 120, 124, 120, 133, 107, 118, 116, 115, 124, 115, 118, 112, 116, 112, 120, 116, 119, 121, 108, 115, 109, 117, 123, 103, 110, 113, 116, 110, 113, 113, 108, 107, 111, 114, 114, 103, 117, 128, 103, 114, 122, 113, 117, 122, 114, 116, 111, 119, 110, 119, 115, 114, 114, 115, 117, 119, 117, 123, 112, 114, 141, 132, 122, 111, 119, 122, 117, 114, 113, 123, 108, 117, 116, 117, 120, 117, 140, 127, 121, 105, 102, 115, 115, 116, 116, 127, 84, 133, 110, 116, 124, 105, 113, 101, 109, 119, 119, 117, 108, 125, 124, 99, 126, 111, 117, 131, 104, 133, 107, 118, 124, 111, 112, 121, 108, 91, 108, 112, 107, 112, 122, 107, 115, 127, 108, 112, 112, 117, 113, 115, 111, 119, 118, 105, 107, 122, 109, 118, 102, 119, 115, 104, 109, 112, 122, 132, 127, 105, 116, 117, 106, 141, 105, 102, 109, 122, 119, 107, 122, 120, 126, 114, 112, 98, 96, 115, 112, 114, 109, 119, 100, 129, 121, 115, 114, 104, 113, 109, 134, 136, 122, 93, 111, 106, 111, 104, 117, 90, 91, 114, 105, 108, 115, 120, 113, 104, 96, 119, 126, 107, 118, 99, 108, 123, 123, 122, 110, 118, 124, 121, 128, 109, 112, 113, 115, 132, 105, 105, 113, 109, 129, 111, 100, 117, 113, 116, 132, 127, 87, 114, 115, 106, 113, 128, 116, 120, 121, 128, 133, 114, 107, 105, 142, 89, 120, 122, 122, 118, 93, 112, 109, 124, 113, 114, 118, 123, 120, 108, 114, 129, 133, 120, 117, 111, 120, 127, 125, 109, 90, 107, 114, 106, 136, 107, 94, 124, 109, 112, 113, 107, 114, 148, 106, 132, 112, 114, 110, 113, 111, 123, 109, 121, 129, 122, 122, 113, 108, 116, 130, 110, 119, 126, 127, 110, 120, 115, 114, 95, 115, 114, 113, 123, 109, 117, 117, 114, 134, 103, 114, 117, 119, 118, 105, 108, 108, 110, 105, 123, 125, 114, 122, 124, 110, 108, 105, 120, 108, 116, 122, 93, 96, 119, 124, 111, 107, 119, 134, 121, 133, 133, 92, 87, 111, 116, 126, 127, 128, 126, 107, 125, 126, 116, 114, 117, 117, 121, 97, 117, 122, 117, 108, 112, 122, 131, 124, 118, 113, 111, 111, 111, 112, 123, 95, 124, 106, 102, 100, 106, 124, 135, 130, 119, 117, 113, 107, 123, 111, 109, 114, 111, 120, 126, 129, 125, 111, 122, 128, 117, 122, 115, 129, 123, 107, 124, 118, 108, 96, 128, 142, 123, 116, 130, 138, 106, 118, 112, 118, 111, 107, 133, 115, 125, 104, 92, 101, 113, 114, 103, 131, 107, 133, 107, 121, 120, 117, 117, 122, 124, 119, 121, 117, 126, 123, 140, 106, 127, 112, 109, 106, 112, 117, 134, 122, 130, 125, 117, 113, 106, 101, 110, 106, 96, 118, 120, 125, 111, 106, 116, 119, 137, 107, 109, 111, 124, 107, 127, 120, 122, 116, 103, 122, 124, 119, 107, 108, 100, 119, 111, 106, 115, 133, 116, 113, 98, 117, 109, 105, 122, 119, 133, 115, 113, 119, 123, 122, 104, 107, 105, 109, 108, 122, 113, 120, 116, 111, 117, 138, 128, 100, 114, 121, 106, 119, 108, 118, 113, 89, 132, 118, 113, 114, 104, 121, 127, 115, 114, 122, 133, 116, 115, 116, 120, 109, 100, 117, 105, 119, 115, 137, 107, 125, 116, 104, 122, 107, 115, 117, 110, 112, 127, 125, 129, 95, 140, 111, 95, 125, 124, 114, 114, 101, 113, 117, 104, 101, 104, 125, 111, 126, 106, 117, 110, 121, 103, 120, 110, 117, 116, 102, 115, 95, 100, 126, 113, 110, 109, 115, 109, 118, 109, 115, 103, 125, 113, 109, 117, 117, 110, 108, 109, 119, 119, 119, 104, 103, 114, 126, 111, 125, 119, 114, 131, 120, 114, 119, 111, 108, 130, 109, 111, 93, 121, 108, 106, 115, 126, 123, 138, 115, 111, 126, 119, 104, 136, 116, 118, 129, 101, 111, 118, 109, 110, 109, 111, 112, 119, 120, 115, 123, 109, 101, 115, 113, 107, 115, 126, 124, 113, 108, 114, 120, 110, 118, 101, 141, 106, 118, 128, 117, 113, 119, 126, 115, 126, 112, 110, 104, 150, 117, 135, 110, 117, 118, 105, 125, 100, 108, 110, 113, 119, 126, 121, 124, 119, 130, 112, 110, 113, 118, 114, 125, 112, 123, 99, 109, 137, 132, 125, 98, 137, 124, 138, 108, 121, 101, 137, 110, 127, 104, 126, 110, 118, 137, 122, 111, 139, 134, 96, 117, 117, 109, 124, 103, 133, 88, 102, 105, 106, 120, 122, 111, 110, 118, 127, 108, 132, 131, 107, 108, 111, 115, 125, 99, 133, 133, 130, 109, 95, 111, 117, 123, 105, 136, 100, 132, 118, 109, 132, 125, 104, 116, 115, 119, 125, 122, 119, 118, 111, 119, 113, 118, 113, 110, 116, 103, 113, 116, 110, 120, 117, 112, 108, 120, 108, 117, 133, 118, 105, 115, 120, 91, 111, 121, 108, 110, 120, 136, 123, 115, 113, 118, 107, 131, 100, 118, 103, 106, 125, 118, 109, 101, 118, 134, 130, 103, 113, 122, 110, 107, 115, 101, 110, 120, 122, 105, 125, 116, 118, 116, 134, 126, 120, 115, 121, 135, 119, 129, 114, 117, 119, 123, 102, 98, 125, 114, 115, 120, 108, 93, 140, 102, 109, 112, 125, 111, 100, 115, 126, 121, 120, 111, 112, 103, 111, 109, 116, 132, 116, 128, 116, 123, 115, 104, 110, 108, 110, 113, 117, 121, 110, 116, 120, 118, 113, 110, 107, 110, 120, 102, 123, 125, 106, 110, 111, 112, 102, 112, 125, 101, 116, 112, 120, 109, 111, 99, 118, 122, 113, 118, 113, 116, 115, 121, 105, 113, 110, 148, 100, 106, 110, 117, 103, 113, 99, 122, 121, 119, 119, 115, 109, 116, 133, 123, 114, 111, 122, 113, 124, 148, 95, 131, 118, 116, 99, 117, 113, 121, 117, 107, 124, 111, 110, 114, 133, 119, 99, 96, 119, 116, 124, 114, 109, 107, 115, 112, 134, 118, 137, 120, 114, 117, 109, 101, 109, 115, 112, 115, 116, 97, 115, 117, 107, 103, 122, 107, 97, 104, 124, 154, 125, 115, 122, 146, 116, 105, 120, 102, 103, 115, 113, 117, 108, 110, 118, 117, 107, 128, 113, 128, 118, 115, 105, 116, 91, 126, 110, 100, 92, 117, 134, 104, 121, 106, 105, 111, 111, 123, 123, 114, 102, 117, 105, 108, 112, 117, 111, 104, 129, 120, 105, 115, 129, 112, 126, 103, 106, 124, 110, 114, 116, 107, 109, 126, 116, 119, 112, 128, 103, 117, 119, 120, 116, 107, 118, 127, 102, 138, 112, 115, 122, 126, 122, 128, 112, 116, 114, 128, 118, 100, 110, 93, 139, 124, 111, 107, 114, 121, 102, 110, 101, 99, 87, 116, 132, 106, 157, 125, 116, 120, 113, 110, 144, 105, 103, 78, 121, 120, 106, 109, 127, 128, 135, 97, 108, 102, 106, 114, 112, 115, 120, 130, 111, 134, 118, 117, 116, 117, 106, 120, 107, 97, 116, 112, 120, 125, 121, 114, 110, 138, 128, 123, 108, 126, 117, 111, 119, 117, 110, 146, 103, 116, 110, 128, 118, 135, 122, 109, 114, 115, 128, 117, 111, 120, 127, 103, 117, 112, 127, 106, 98, 112, 126, 118, 123, 125, 106, 117, 113, 101, 111, 123, 120, 128, 111, 110, 121, 109, 126, 110, 107, 120, 113, 136, 124, 129, 104, 104, 109, 113, 110, 121, 126, 117, 122, 121, 109, 139, 137, 108, 112, 119, 87, 105, 111, 123, 123, 131, 115, 125, 127, 107, 97, 103, 100, 133, 128, 106, 93, 117, 112, 123, 109, 117, 119, 125, 114, 120, 104, 99, 109, 131, 104, 100, 123, 105, 111, 133, 103, 121, 89, 120, 111, 128, 116, 115, 104, 118, 110, 144, 117, 115, 117, 127, 125, 88, 124, 114, 123, 125, 127, 103, 100, 110, 106, 101, 105, 110, 124, 117, 126, 109, 106, 114, 112, 110, 131, 151, 114, 110, 110, 109, 104, 117, 132, 114, 121, 110, 78, 118, 119, 119, 115, 118, 114, 115, 118, 107, 118, 123, 108, 133, 113, 121, 112, 110, 106, 113, 109, 110, 112, 143, 125, 133, 116, 119, 122, 133, 123, 108, 129, 118, 117, 110, 123, 101, 115, 126, 125, 114, 124, 132, 120, 117, 117, 123, 99, 118, 120, 123, 123, 124, 112, 123, 113, 124, 129, 121, 116, 116, 105, 107, 108, 92, 122, 115, 128, 112, 120, 119, 110, 120, 109, 115, 111, 117, 108, 111, 119, 111, 115, 125, 116, 110, 124, 110, 136, 113, 115, 122, 152, 119, 112, 114, 107, 119, 99, 121, 102, 107, 114, 143, 109, 128, 151, 124, 117, 107, 130, 129, 113, 118, 135, 130, 122, 125, 127, 128, 126, 117, 125, 117, 130, 107, 117, 109, 121, 116, 108, 107, 105, 120, 114, 134, 137, 134, 120, 99, 126, 130, 121, 110, 137, 117, 138, 111, 119, 120, 128, 105, 123, 122, 109, 117, 103, 105, 115, 131, 86, 111, 113, 137, 82, 117, 102, 121, 130, 119, 118, 125, 129, 126, 112, 120, 96, 125, 109, 111, 105, 123, 112, 99, 122, 112, 133, 110, 124, 93, 127, 130, 119, 115, 127, 127, 128, 118, 103, 124, 112, 127, 112, 106, 107, 113, 109, 117, 134, 109, 129, 101, 125, 110, 119, 118, 131, 122, 140, 125, 131, 126, 114, 108, 117, 117, 109, 115, 107, 102, 137, 142, 127, 106, 117, 116, 122, 106, 121, 99, 113, 105, 112, 123, 103, 122, 99, 120, 88, 120, 120, 113, 117, 115, 111, 115, 129, 112, 93, 118, 115, 122, 109, 116, 96, 122, 124, 127, 127, 103, 123, 111, 110, 122, 101, 107, 123, 105, 128, 117, 100, 111, 126, 119, 117, 137, 110, 131, 93, 122, 127, 118, 123, 110, 92, 108, 139, 91, 116, 118, 114, 117, 104, 118, 110, 118, 119, 121, 80, 107, 116, 127, 109, 117, 126, 112, 101, 122, 122, 110, 123, 117, 117, 134, 134, 104, 101, 113, 116, 127, 110, 114, 130, 112, 116, 115, 126, 134, 114, 95, 115, 110, 121, 92, 150, 104, 106, 119, 121, 120, 103, 116, 120, 128, 134, 92, 115, 117, 125, 110, 118, 103, 109, 109, 115, 105, 116, 107, 124, 125, 124, 104, 120, 121, 120, 114, 115, 108, 122, 109, 110, 104, 114, 123, 112, 124, 114, 110, 114, 123, 110, 120, 130, 137, 139, 122, 93, 125, 118, 130, 113, 124, 114, 120, 104, 102, 112, 111, 126, 120, 110, 116, 112, 92, 119, 112, 128, 111, 124, 103, 102, 116, 103, 111, 125, 113, 108, 123, 123, 104, 115, 125, 121, 113, 118, 125, 102, 102, 108, 102, 121, 128, 114, 96, 115, 119, 115, 112, 111, 90, 109, 93, 125, 120, 118, 119, 127, 103, 113, 117, 131, 92, 107, 141, 121, 115, 133, 125, 117, 141, 90, 127, 100, 128, 118, 125, 118, 119, 117, 120, 124, 107, 111, 114, 134, 128, 108, 109, 117, 126, 114, 112, 127, 111, 103, 130, 119, 127, 123, 124, 116, 112, 152, 121, 110, 112, 126, 118, 102, 137, 100, 124, 108, 116, 108, 110, 93, 134, 123, 125, 101, 112, 127, 103, 121, 107, 122, 121, 126, 105, 109, 115, 102, 117, 123, 109, 114, 103, 116, 125, 103, 102, 111, 119, 120, 122, 118, 105, 122, 117, 123, 100, 115, 109, 105, 104, 98, 111, 114, 105, 101, 126, 134, 114, 110, 132, 108, 127, 118, 107, 122, 120, 123, 129, 154, 114, 97, 103, 129, 109, 104, 110, 103, 114, 119, 113, 109, 125, 110, 105, 119, 112, 113, 100, 106, 101, 121, 92, 116, 126, 146, 127, 116, 115, 111, 112, 126, 116, 121, 131, 113, 113, 101, 109, 112, 100, 107, 109, 103, 125, 112, 125, 105, 119, 114, 117, 127, 142, 126, 117, 112, 131, 121, 118, 106, 121, 108, 125, 124, 120, 125, 123, 133, 103, 119, 116, 122, 123, 110, 108, 147, 122, 119, 102, 95, 115, 133, 140, 103, 118, 113, 116, 110, 123, 114, 87, 116, 119, 103, 133, 113, 111, 120, 108, 123, 127, 118, 116, 126, 106, 119, 121, 115, 113, 112, 105, 121, 121, 121, 126, 116, 121, 116, 104, 128, 122, 124, 104, 119, 139, 142, 125, 119, 132, 114, 112, 113, 129, 112, 108, 115, 114, 112, 108, 111, 117, 121, 120, 120, 92, 143, 91, 117, 125, 111, 122, 113, 128, 102, 101, 113, 111, 125, 115, 119, 115, 115, 109, 117, 123, 129, 138, 112, 92, 126, 120, 106, 117, 93, 118, 125, 109, 121, 83, 104, 106, 111, 118, 93, 109, 111, 115, 121, 120, 123, 143, 104, 118, 121, 126, 109, 112, 123, 112, 134, 127, 103, 111, 113, 88, 127, 137, 133, 131, 106, 101, 113, 131, 123, 109, 102, 136, 127, 111, 119, 119, 121, 112, 115, 105, 113, 110, 131, 119, 106, 106, 113, 115, 120, 130, 140, 114, 118, 112, 116, 112, 108, 126, 112, 115, 131, 136, 99, 117, 118, 111, 116, 115, 117, 126, 114, 116, 113, 108, 116, 108, 124, 108, 112, 125, 98, 131, 123, 119, 133, 124, 107, 114, 113, 125, 112, 113, 115, 113, 125, 110, 141, 112, 106, 113, 112, 116, 109, 115, 114, 106, 116, 126, 111, 130, 107, 115, 118, 121, 117, 130, 122, 112, 123, 109, 121, 100, 113, 112, 112, 120, 140, 126, 117, 117, 115, 113, 117, 113, 125, 115, 119, 113, 119, 117, 116, 114, 111, 105, 118, 125, 116, 119, 113, 111, 121, 121, 110, 110, 111, 127, 123, 123, 105, 110, 122, 117, 116, 122, 109, 110, 111, 121, 114, 106, 113, 109, 109, 114, 97, 110, 106, 124, 125, 108, 114, 120, 116, 135, 116, 112, 142, 105, 112, 116, 118, 112, 113, 110, 119, 120, 89, 120, 124, 117, 116, 134, 105, 123, 120, 119, 125, 118, 101, 106, 85, 122, 115, 96, 117, 98, 124, 111, 123, 117, 99, 121, 105, 112, 110, 107, 97, 113, 111, 113, 114, 119, 131, 106, 113, 120, 110, 131, 122, 126, 127, 99, 110, 102, 111, 109, 115, 124, 115, 103, 108, 124, 112, 98, 107, 114, 113, 113, 105, 127, 114, 114, 106, 124, 93, 111, 116, 113, 96, 108, 115, 102, 112, 122, 116, 112, 104, 107, 111, 108, 118, 117, 131, 120, 128, 119, 118, 119, 116, 121, 116, 136, 122, 113, 124, 104, 117, 140, 121, 123, 128, 117, 129, 99, 101, 109, 117, 115, 109, 112, 112, 114, 118, 103, 95, 134, 103, 128, 115, 113, 118, 116, 99, 108, 105, 130, 108, 110, 107, 113, 111, 113, 114, 128, 139, 119, 124, 108, 107, 125, 126, 106, 110, 114, 119, 117, 122, 103, 125, 113, 134, 143, 107, 128, 98, 120, 100, 123, 118, 132, 113, 124, 112, 116, 127, 118, 119, 115, 111, 112, 102, 107, 124, 116, 110, 112, 122, 112, 121, 129, 116, 108, 113, 99, 117, 101, 107, 123, 122, 110, 110, 117, 112, 107, 113, 119, 115, 118, 120, 112, 116, 116, 110, 124, 132, 114, 117, 112, 112, 113, 116, 112, 120, 100, 104, 135, 107, 106, 123, 119, 118, 122, 109, 118, 115, 113, 104, 91, 113, 123, 117, 126, 113, 120, 115, 106, 120, 124, 125, 110, 132, 122, 100, 111, 114, 112, 121, 115, 112, 116, 118, 106, 107, 120, 124, 138, 128, 128, 118, 100, 122, 116, 106, 117, 104, 126, 116, 131, 111, 114, 110, 142, 106, 96, 111, 125, 133, 113, 124, 113, 102, 113, 123, 122, 117, 114, 111, 101, 117, 111, 107, 112, 121, 104, 93, 120, 112, 128, 107, 115, 106, 122, 107, 130, 132, 113, 107, 109, 148, 99, 123, 121, 128, 114, 126, 109, 110, 101, 112, 113, 113, 123, 118, 124, 105, 116, 116, 104, 108, 105, 117, 117, 106, 110, 127, 123, 120, 123, 97, 115, 109, 111, 140, 109, 119, 115, 119, 127, 121, 108, 126, 126, 120, 116, 116, 127, 99, 126, 119, 100, 80, 122, 119, 115, 112, 118, 110, 110, 120, 116, 119, 118, 118, 129, 107, 129, 185, 119, 116, 103, 111, 123, 112, 143, 122, 110, 104, 107, 120, 120, 108, 115, 117, 125, 108, 110, 117, 113, 111, 112, 120, 106, 111, 119, 114, 115, 135, 122, 123, 95, 115, 105, 129, 137, 106, 96, 121, 113, 125, 120, 111, 110, 115, 123, 115, 125, 106, 129, 108, 106, 117, 104, 115, 120, 108, 113, 121, 123, 117, 94, 129, 118, 110, 114, 117, 111, 117, 126, 118, 113, 114, 96, 120, 119, 112, 125, 130, 103, 124, 132, 123, 133, 109, 112, 142, 113, 105, 106, 100, 128, 115, 119, 116, 105, 127, 125, 106, 115, 96, 113, 119, 110, 128, 124, 133, 102, 111, 124, 123, 108, 111, 122, 118, 29, 131, 121, 110, 122, 115, 116, 115, 114, 109, 116, 107, 107, 117, 120, 114, 124, 100, 122, 106, 126, 113, 120, 100, 105, 118, 121, 116, 108, 131, 122, 133, 118, 92, 120, 120, 99, 123, 128, 112, 108, 108, 103, 111, 139, 119, 99, 122, 118, 112, 128, 118, 134, 122, 105, 131, 121, 103, 112, 121, 153, 115, 115, 120, 114, 102, 122, 106, 127, 105, 112, 106, 128, 116, 118, 111, 111, 121, 116, 113, 114, 123, 115, 104, 102, 114, 123, 113, 125, 135, 101, 124, 108, 110, 132, 122, 120, 102, 123, 107, 103, 111, 82, 104, 122, 113, 132, 115, 132, 112, 110, 115, 111, 81, 108, 116, 128, 122, 112, 121, 127, 126, 107, 140, 111, 117, 119, 110, 119, 100, 110, 137, 116, 108, 109, 110, 112, 73, 104, 110, 120, 122, 104, 100, 135, 116, 98, 124, 102, 104, 115, 108, 136, 113, 104, 114, 109, 120, 119, 138, 111, 120, 125, 123, 127, 104, 126, 120, 99, 115, 119, 95, 109, 124, 108, 112, 110, 113, 116, 113, 115, 116, 106, 110, 127, 134, 110, 121, 120, 109, 98, 118, 120, 112, 110, 111, 111, 127, 117, 105, 122, 117, 132, 127, 107, 146, 113, 135, 102, 115, 109, 108, 118, 124, 105, 117, 123, 113, 127, 112, 124, 118, 116, 132, 144, 115, 118, 118, 124, 119, 104, 115, 124, 119, 106, 122, 117, 127, 116, 108, 127, 118, 111, 134, 117, 113, 122, 105, 111, 101, 113, 124, 125, 119, 124, 129, 125, 120, 127, 110, 108, 124, 116, 93, 125, 114, 121, 114, 119, 97, 113, 117, 123, 119, 127, 104, 110, 124, 122, 132, 117, 114, 142, 124, 115, 114, 137, 116, 110, 126, 127, 122, 111, 125, 118, 103, 102, 114, 111, 117, 90, 122, 112, 118, 119, 105, 103, 93, 117, 122, 100, 137, 103, 101, 110, 119, 102, 98, 142, 110, 127, 115, 114, 122, 121, 116, 117, 117, 116, 116, 116, 138, 107, 122, 120, 112, 122, 118, 88, 111, 100, 113, 100, 119, 114, 116, 107, 116, 106, 122, 119, 90, 131, 118, 101, 113, 117, 121, 120, 114, 109, 120, 104, 125, 111, 105, 119, 107, 89, 116, 110, 93, 131, 116, 111, 114, 124, 109, 129, 119, 102, 114, 115, 116, 141, 115, 101, 113, 108, 102, 141, 107, 123, 135, 119, 117, 109, 117, 140, 118, 107, 81, 123, 124, 101, 119, 115, 107, 117, 94, 127, 117, 108, 131, 116, 137, 117, 120, 125, 121, 103, 122, 97, 105, 108, 119, 128, 132, 111, 100, 118, 110, 133, 122, 98, 112, 78, 120, 127, 110, 120, 118, 116, 114, 129, 115, 135, 92, 124, 117, 112, 113, 127, 122, 122, 118, 117, 113, 118, 124, 122, 111, 119, 112, 122, 120, 120, 129, 118, 122, 113, 125, 116, 89, 125, 113, 136, 99, 117, 128, 120, 125, 128, 110, 121, 100, 116, 120, 109, 108, 129, 103, 122, 100, 124, 117, 117, 112, 112, 115, 102, 120, 121, 117, 109, 98, 105, 120, 97, 126, 126, 107, 123, 117, 129, 112, 121, 110, 118, 120, 116, 104, 120, 121, 119, 101, 122, 146, 122, 108, 102, 120, 119, 112, 92, 121, 125, 127, 108, 120, 93, 134, 124, 116, 135, 107, 133, 102, 119, 116, 109, 146, 133, 113, 119, 116, 120, 105, 112, 126, 124, 121, 133, 114, 116, 108, 122, 114, 125, 107, 119, 107, 110, 117, 126, 138, 111, 120, 126, 109, 117, 92, 109, 124, 113, 124, 105, 98, 119, 110, 118, 117, 114, 105, 108, 120, 112, 107, 110, 111, 96, 116, 120, 131, 105, 126, 132, 106, 115, 111, 116, 131, 107, 113, 113, 115, 142, 125, 129, 109, 145, 119, 131, 119, 119, 119, 144, 96, 119, 118, 111, 149, 93, 121, 98, 130, 101, 112, 126, 111, 118, 114, 123, 128, 126, 120, 170, 114, 135, 112, 121, 110, 101, 111, 104, 101, 123, 129, 116, 126, 113, 124, 114, 117, 124, 129, 124, 108, 118, 103, 110, 118, 104, 104, 112, 127, 124, 115, 115, 119, 144, 123, 112, 112, 118, 132, 116, 130, 119, 129, 108, 113, 105, 102, 110, 129, 119, 121, 104, 113, 115, 126, 106, 106, 116, 120, 131, 113, 135, 126, 116, 107, 145, 106, 111, 115, 120, 119, 108, 95, 120, 106, 107, 122, 134, 107, 107, 117, 108, 113, 125, 93, 117, 136, 94, 100, 111, 135, 108, 117, 106, 140, 111, 111, 109, 110, 116, 123, 130, 115, 113, 111, 119, 98, 131, 129, 115, 123, 119, 116, 115, 118, 120, 96, 103, 117, 107, 117, 132, 101, 109, 120, 135, 123, 117, 123, 132, 118, 129, 115, 129, 115, 123, 120, 139, 98, 99, 113, 109, 120, 102, 120, 113, 111, 112, 112, 113, 122, 134, 119, 113, 117, 107, 110, 112, 120, 130, 130, 119, 100, 107, 145, 116, 111, 103, 113, 131, 110, 122, 116, 110, 102, 113, 147, 120, 115, 109, 145, 126, 99, 115, 102, 115, 105, 120, 96, 126, 106, 111, 97, 113, 133, 111, 103, 118, 112, 105, 117, 123, 124, 126, 118, 109, 106, 125, 98, 122, 104, 127, 103, 122, 119, 115, 115, 107, 129, 137, 111, 109, 106, 99, 115, 141, 110, 121, 115, 117, 121, 103, 100, 104, 114, 113, 124, 114, 105, 107, 97, 103, 124, 108, 119, 134, 119, 113, 114, 130, 121, 107, 105, 107, 121, 114, 104, 133, 118, 136, 115, 117, 115, 117, 113, 142, 122, 128, 117, 110, 103, 140, 117, 120, 125, 104, 109, 121, 107, 112, 116, 116, 116, 114, 120, 108, 115, 139, 112, 110, 124, 107, 139, 99, 106, 101, 107, 107, 111, 121, 108, 97, 112, 136, 114, 102, 109, 105, 110, 131, 98, 104, 117, 112, 112, 104, 123, 121, 106, 105, 98, 110, 119, 113, 123, 120, 112, 103, 98, 134, 97, 112, 138, 110, 114, 116, 93, 122, 106, 121, 129, 130, 118, 115, 138, 111, 125, 120, 108, 101, 105, 130, 111, 99, 102, 109, 122, 105, 139, 124, 112, 105, 119, 99, 119, 134, 113, 110, 123, 124, 124, 125, 112, 100, 113, 121, 116, 124, 125, 117, 108, 115, 101, 111, 108, 111, 116, 98, 92, 104, 110, 100, 97, 124, 122, 121, 118, 109, 119, 100, 100, 108, 116, 110, 116, 116, 114, 117, 129, 109, 122, 92, 96, 103, 105, 104, 92, 107, 140, 118, 103, 117, 125, 104, 118, 95, 114, 121, 140, 115, 116, 120, 129, 131, 100, 102, 116, 116, 121, 132, 116, 111, 105, 118, 122, 113, 101, 107, 116, 105, 110, 119, 107, 124, 124, 122, 103, 120, 112, 113, 128, 125, 105, 122, 112, 115, 113, 121, 113, 102, 131, 116, 125, 109, 113, 115, 106, 104, 107, 112, 97, 124, 116, 119, 115, 80, 109, 108, 102, 109, 127, 113, 133, 114, 116, 128, 139, 106, 124, 100, 115, 114, 143, 113, 115, 112, 111, 137, 107, 119, 114, 129, 105, 115, 114, 113, 103, 123, 117, 106, 123, 105, 120, 99, 134, 107, 115, 108, 125, 147, 101, 120, 116, 109, 115, 125, 117, 126, 121, 120, 109, 114, 105, 111, 122, 116, 122, 147, 140, 108, 122, 96, 104, 110, 115, 121, 119, 105, 111, 96, 104, 107, 131, 121, 116, 102, 117, 113, 108, 109, 125, 112, 125, 133, 116, 112, 123, 121, 96, 115, 120, 109, 120, 132, 103, 108, 120, 121, 138, 110, 113, 104, 92, 120, 113, 94, 106, 101, 101, 109, 137, 113, 133, 132, 119, 116, 94, 121, 118, 114, 113, 123, 93, 87, 126, 97, 114, 118, 124, 109, 129, 118, 122, 109, 120, 110, 118, 126, 103, 140, 100, 100, 115, 113, 122, 129, 104, 121, 106, 122, 113, 109, 117, 111, 115, 117, 102, 106, 130, 117, 118, 103, 103, 105, 128, 114, 104, 80, 112, 116, 118, 105, 119, 101, 129, 95, 131, 128, 116, 124, 108, 104, 107, 109, 99, 117, 129, 116, 104, 116, 118, 119, 111, 118, 132, 121, 118, 119, 123, 121, 113, 114, 80, 116, 115, 119, 109, 124, 109, 136, 129, 96, 132, 118, 115, 121, 134, 111, 126, 116, 140, 110, 109, 118, 114, 111, 129, 103, 119, 109, 109, 120, 108, 128, 117, 109, 111, 102, 117, 109, 114, 118, 110, 139, 119, 111, 107, 121, 97, 134, 110, 118, 109, 107, 119, 115, 107, 116, 104, 127, 116, 101, 120, 134, 120, 127, 125, 105, 113, 115, 105, 114, 109, 133, 105, 143, 109, 127, 133, 121, 114, 123, 133, 115, 124, 119, 121, 126, 123, 119, 118, 101, 147, 110, 109, 123, 103, 128, 115, 107, 109, 114, 121, 109, 104, 117, 112, 123, 126, 118, 109, 118, 102, 114, 112, 124, 122, 113, 118, 111, 110, 131, 111, 129, 121, 121, 119, 112, 114, 120, 105, 116, 114, 116, 132, 119, 101, 102, 130, 84, 115, 110, 120, 119, 113, 101, 94, 107, 108, 120, 118, 107, 110, 107, 107, 119, 120, 119, 126, 117, 114, 108, 118, 111, 117, 120, 120, 121, 118, 122, 116, 112, 116, 118, 110, 114, 122, 104, 113, 124, 111, 147, 120, 113, 112, 124, 117, 126, 116, 125, 108, 123, 124, 106, 119, 133, 127, 113, 96, 123, 104, 103, 124, 118, 127, 112, 119, 106, 126, 114, 112, 98, 117, 131, 112, 118, 114, 112, 118, 104, 115, 126, 131, 108, 109, 114, 117, 106, 119, 105, 114, 112, 128, 108, 110, 121, 126, 99, 130, 115, 104, 124, 112, 104, 117, 114, 125, 111, 116, 119, 115, 119, 127, 106, 131, 101, 105, 121, 110, 121, 123, 116, 95, 103, 109, 113, 115, 119, 115, 142, 105, 117, 116, 112, 110, 105, 118, 115, 139, 115, 128, 116, 115, 112, 107, 101, 114, 120, 111, 119, 122, 129, 144, 108, 127, 120, 112, 123, 108, 106, 100, 114, 108, 113, 132, 122, 126, 102, 103, 118, 129, 130, 126, 128, 112, 102, 103, 113, 108, 117, 121, 79, 126, 115, 117, 106, 122, 131, 118, 115, 124, 103, 104, 116, 104, 120, 129, 131, 112, 125, 114, 128, 124, 102, 104, 117, 96, 136, 136, 123, 107, 125, 99, 118, 119, 111, 137, 110, 107, 121, 133, 123, 115, 112, 127, 117, 107, 111, 118, 128, 130, 119, 114, 117, 108, 115, 114, 108, 119, 121, 121, 103, 113, 116, 110, 112, 127, 102, 120, 136, 119, 114, 114, 119, 124, 127, 85, 113, 126, 106, 113, 115, 109, 126, 112, 112, 90, 113, 117, 110, 104, 114, 132, 123, 125, 111, 110, 120, 110, 113, 104, 122, 122, 119, 108, 112, 117, 113, 121, 117, 108, 107, 114, 123, 110, 104, 112, 118, 120, 111, 102, 125, 104, 116, 108, 116, 109, 121, 110, 119, 97, 125, 118, 104, 105, 113, 124, 127, 129, 122, 123, 112, 175, 112, 101, 118, 117, 99, 115, 107, 139, 127, 123, 133, 118, 104, 110, 116, 111, 129, 119, 110, 117, 102, 114, 122, 104, 133, 109, 107, 112, 127, 132, 99, 116, 104, 117, 115, 107, 130, 97, 116, 117, 105, 116, 128, 124, 127, 118, 117, 100, 109, 122, 117, 123, 130, 125, 105, 113, 112, 111, 137, 120, 120, 93, 110, 109, 113, 91, 109, 105, 104, 112, 101, 130, 118, 115, 101, 107, 118, 121, 127, 120, 104, 98, 107, 108, 120, 116, 115, 115, 124, 129, 114, 100, 124, 158, 121, 121, 120, 111, 137, 102, 113, 116, 109, 120, 114, 123, 122, 111, 114, 120, 128, 118, 134, 123, 144, 112, 108, 114, 123, 113, 119, 119, 116, 117, 116, 112, 127, 122, 111, 131, 129, 119, 119, 124, 133, 124, 115, 129, 105, 130, 121, 119, 131, 118, 110, 122, 120, 103, 125, 118, 119, 115, 92, 124, 118, 106, 110, 104, 108, 129, 111, 101, 107, 115, 121, 120, 105, 113, 112, 118, 121, 113, 120, 107, 102, 101, 106, 109, 126, 106, 134, 121, 130, 122, 134, 117, 127, 113, 117, 119, 108, 114, 102, 104, 87, 139, 121, 120, 111, 117, 108, 129, 123, 105, 120, 132, 111, 120, 114, 115, 122, 119, 116, 112, 115, 112, 125, 122, 116, 132, 118, 110, 117, 102, 99, 105, 114, 127, 109, 123, 117, 104, 115, 119, 119, 113, 100, 103, 106, 121, 104, 104, 124, 116, 112, 130, 107, 101, 117, 122, 123, 105, 115, 127, 127, 103, 115, 131, 110, 121, 99, 107, 123, 120, 116, 75, 118, 113, 134, 105, 108, 114, 122, 122, 126, 112, 128, 126, 124, 122, 98, 130, 120, 120, 122, 113, 126, 121, 186, 111, 127, 114, 105, 118, 123, 107, 108, 115, 100, 117, 127, 108, 115, 133, 114, 124, 111, 113, 96, 135, 114, 114, 118, 119, 116, 102, 112, 114, 117, 106, 118, 128, 112, 122, 125, 120, 106, 110, 117, 122, 108, 90, 122, 105, 117, 106, 117, 118, 117, 126, 132, 121, 117, 117, 111, 127, 122, 119, 122, 109, 96, 120, 112, 123, 113, 117, 114, 117, 109, 106, 108, 121, 114, 115, 126, 105, 121, 109, 125, 122, 117, 125, 126, 111, 120, 109, 127, 116, 119, 120, 113, 67, 108, 113, 130, 107, 114, 110, 121, 118, 112, 106, 120, 107, 101, 117, 118, 103, 116, 110, 123, 118, 125, 119, 118, 125, 125, 121, 120, 118, 133, 112, 127, 124, 118, 117, 116, 118, 129, 122, 123, 120, 120, 112, 112, 125, 121, 112, 116, 134, 117, 108, 112, 123, 112, 122, 121, 100, 116, 109, 115, 106, 117, 120, 120, 114, 111, 121, 128, 122, 110, 112, 137, 103, 126, 106, 103, 115, 115, 112, 107, 120, 114, 119, 121, 111, 113, 112, 120, 121, 108, 130, 111, 123, 110, 115, 115, 118, 122, 120, 108, 130, 115, 111, 114, 110, 110, 103, 115, 108, 120, 116, 115, 120, 115, 117, 115, 109, 118, 116, 112, 108, 116, 133, 122, 115, 129, 121, 114, 122, 109, 100, 112, 104, 105, 106, 123, 111, 103, 124, 131, 129, 118, 116, 137, 113, 122, 119, 114, 109, 111, 114, 112, 128, 114, 145, 117, 117, 129, 133, 109, 117, 101, 90, 106, 118, 110, 117, 103, 107, 118, 116, 115, 101, 117, 110, 115, 109, 127, 113, 95, 114, 110, 122, 104, 107, 115, 120, 122, 121, 136, 119, 115, 112, 103, 97, 110, 113, 111, 117, 121, 122, 116, 116, 112, 123, 112, 107, 124, 122, 102, 116, 114, 95, 100, 120, 121, 116, 120, 105, 116, 110, 135, 116, 113, 115, 111, 117, 114, 105, 117, 136, 119, 123, 118, 96, 121, 119, 130, 106, 125, 135, 111, 112, 121, 131, 122, 112, 116, 103, 118, 119, 114, 103, 115, 109, 123, 116, 128, 119, 104, 95, 113, 119, 120, 120, 112, 121, 102, 86, 110, 114, 106, 123, 112, 122, 114, 121, 115, 102, 115, 107, 107, 112, 118, 108, 114, 108, 131, 122, 112, 111, 123, 110, 115, 121, 105, 118, 118, 127, 102, 121, 117, 116, 91, 121, 112, 105, 124, 119, 112, 108, 138, 108, 105, 126, 119, 144, 117, 98, 123, 102, 110, 124, 117, 109, 113, 123, 112, 115, 116, 116, 123, 118, 117, 104, 120, 119, 114, 137, 110, 120, 121, 124, 116, 118, 124, 116, 117, 116, 117, 134, 107, 111, 130, 120, 111, 116, 113, 99, 123, 115, 118, 125, 121, 122, 118, 116, 111, 110, 110, 120, 115, 118, 117, 114, 122, 132, 117, 137, 123, 113, 117, 111, 110, 122, 112, 109, 144, 123, 110, 103, 107, 116, 134, 131, 109, 109, 114, 125, 151, 115, 145, 129, 117, 119, 122, 105, 108, 115, 105, 123, 117, 116, 122, 127, 115, 116, 108, 126, 130, 115, 117, 121, 120, 112, 116, 111, 120, 113, 143, 95, 116, 105, 104, 103, 119, 119, 108, 123, 108, 133, 109, 106, 123, 120, 128, 114, 135, 123, 114, 121, 127, 120, 117, 113, 125, 112, 109, 117, 115, 114, 117, 99, 126, 116, 123, 121, 115, 138, 111, 129, 107, 120, 120, 121, 124, 124, 119, 123, 118, 126, 113, 116, 109, 118, 118, 117, 112, 112, 110, 105, 111, 120, 130, 121, 123, 159, 123, 114, 113, 120, 92, 111, 107, 116, 110, 106, 119, 111, 116, 121, 118, 122, 106, 94, 112, 109, 119, 110, 117, 112, 108, 119, 130, 123, 113, 106, 111, 110, 109, 126, 108, 111, 111, 123, 137, 100, 125, 114, 125, 129, 125, 110, 114, 114, 117, 108, 103, 121, 107, 145, 127, 138, 115, 120, 120, 86, 116, 108, 120, 136, 106, 119, 114, 112, 118, 101, 119, 116, 114, 116, 119, 117, 112, 112, 115, 116, 119, 102, 111, 112, 137, 108, 118, 102, 118, 130, 106, 131, 118, 115, 130, 112, 119, 117, 108, 130, 120, 115, 113, 116, 122, 114, 109, 94, 105, 109, 119, 112, 123, 104, 112, 123, 112, 125, 120, 113, 122, 119, 111, 109, 132, 118, 128, 106, 104, 132, 123, 120, 133, 106, 129, 119, 123, 117, 106, 112, 124, 100, 115, 126, 116, 110, 108, 131, 126, 113, 110, 128, 106, 118, 97, 119, 136, 119, 120, 135, 115, 131, 114, 109, 105, 107, 125, 120, 114, 122, 105, 115, 127, 111, 133, 123, 118, 110, 106, 114, 114, 121, 125, 109, 130, 130, 92, 119, 133, 101, 105, 108, 127, 127, 107, 112, 103, 114, 112, 109, 103, 125, 115, 105, 108, 115, 122, 114, 121, 116, 124, 115, 116, 110, 128, 118, 109, 116, 111, 106, 114, 117, 116, 111, 113, 113, 117, 105, 104, 105, 118, 122, 117, 110, 110, 96, 111, 110, 120, 111, 170, 114, 107, 120, 120, 122, 121, 121, 112, 115, 113, 112, 124, 119, 109, 118, 108, 115, 115, 114, 121, 112, 109, 118, 117, 119, 116, 110, 121, 124, 121, 118, 122, 124, 110, 118, 137, 108, 115, 111, 123, 120, 107, 115, 107, 127, 120, 113, 121, 102, 114, 117, 111, 118, 128, 124, 117, 124, 126, 120, 119, 119, 115, 118, 117, 108, 114, 113, 119, 112, 132, 116, 110, 121, 121, 123, 114, 90, 110, 116, 124, 121, 125, 106, 127, 113, 115, 118, 112, 118, 116, 119, 108, 114, 118, 114, 129, 113, 124, 116, 108, 120, 169, 130, 120, 121, 111, 116, 115, 120, 116, 119, 113, 119, 99, 114, 133, 128, 118, 115, 103, 106, 117, 104, 112, 117, 107, 118, 115, 122, 106, 118, 122, 112, 113, 121, 111, 126, 118, 117, 105, 123, 120, 97, 112, 124, 118, 112, 114, 113, 120, 114, 116, 120, 118, 112, 118, 120, 129, 114, 117, 117, 123, 112, 120, 124, 115, 114, 117, 124, 121, 113, 117, 121, 110, 116, 120, 110, 111, 119, 119, 122, 114, 123, 119, 123, 121, 113, 114, 113, 119, 112, 118, 118, 122, 112, 114, 119, 114, 118, 117, 106, 114, 106, 118, 110, 120, 142, 113, 119, 122, 117, 129, 111, 123, 111, 118, 121, 108, 123, 115, 115, 113, 118, 122, 118, 126, 116, 115, 121, 114, 121, 126, 123, 114, 120, 112, 113, 112, 128, 121, 112, 116, 113, 116, 120, 104, 111, 115, 116, 106, 123, 121, 114, 115, 122, 113, 116, 120, 116, 124, 130, 119, 125, 108, 124, 112, 122, 121, 134, 119, 110, 120, 121, 107, 121, 121, 120, 117, 118, 102, 113, 118, 140, 117, 102, 116, 121, 113, 129, 114, 109, 108, 109, 122, 122, 121, 111, 110, 116, 113, 122, 116, 114, 119, 103, 115, 113, 119, 116, 113, 121, 106, 126, 106, 115, 115, 99, 119, 107, 124, 102, 111, 125, 114, 119, 127, 117, 123, 118, 108, 108, 124, 111, 115, 118, 115, 114, 116, 119, 115, 108, 111, 113, 117, 111, 126, 126, 112, 112, 115, 114, 114, 112, 118, 125, 114, 126, 112, 123, 116, 112, 122, 116, 123, 117, 120, 114, 115, 115, 137, 112, 107, 109, 110, 122, 115, 112, 121, 117, 114, 117, 122, 121, 122, 111, 111, 117, 109, 127, 116, 117, 110, 116, 115, 118, 116, 123, 119, 119, 117, 125, 84, 110, 119, 114, 117, 120, 117, 120, 116, 89, 93, 101, 114, 114, 122, 109, 119, 117, 120, 123, 118, 118, 118, 110, 120, 123, 110, 129, 113, 110, 121, 114, 121, 121, 116, 113, 116, 115, 126, 122, 118, 117, 108, 113, 114, 122, 116, 117, 125, 121, 120, 121, 114, 114, 117, 113, 123, 112, 111, 111, 121, 122, 119, 112, 116, 106, 112, 112, 124, 115, 121, 116, 122, 119, 117, 111, 118, 125, 118, 112, 118, 117, 119, 116, 111, 112, 114, 117, 120, 122, 123, 119, 106, 118, 114, 108, 122, 116, 125, 120, 113, 125, 116, 116, 119, 116, 116, 115, 119, 117, 112, 123, 122, 117, 111, 116, 124, 117, 109, 107, 126, 113, 102, 121, 105, 112, 130, 117, 110, 94, 108, 103, 117, 112, 100, 116, 126, 112, 112, 97, 110, 128, 117, 113, 106, 114, 158, 114, 113, 125, 118, 118, 118, 117, 110, 134, 97, 116, 141, 101, 116, 115, 121, 102, 120, 121, 117, 114, 109, 119, 112, 108, 122, 112, 109, 119, 104, 92, 112, 111, 132, 133, 112, 120, 120, 123, 107, 107, 121, 99, 132, 115, 128, 121, 116, 107, 121, 105, 110, 119, 107, 127, 89, 119, 115, 109, 106, 116, 126, 104, 120, 120, 145, 110, 110, 112, 123, 113, 112, 133, 103, 99, 115, 120, 115, 119, 113, 137, 122, 104, 98, 116, 115, 118, 96, 120, 119, 113, 118, 113, 106, 118, 122, 119, 123, 111, 119, 105, 125, 104, 114, 114, 126, 113, 113, 136, 114, 121, 111, 127, 108, 114, 131, 118, 117, 132, 117, 108, 135, 109, 101, 121, 121, 109, 120, 109, 114, 119, 121, 106, 111, 121, 109, 125, 107, 116, 112, 106, 125, 119, 121, 131, 103, 109, 119, 117, 125, 106, 119, 114, 110, 110, 123, 125, 96, 140, 104, 120, 116, 102, 95, 118, 123, 112, 126, 123, 129, 124, 116, 118, 114, 100, 123, 117, 107, 111, 118, 129, 119, 118, 118, 104, 111, 111, 127, 114, 119, 118, 123, 106, 141, 104, 104, 99, 109, 130, 125, 122, 105, 116, 114, 106, 114, 103, 108, 121, 102, 117, 142, 117, 112, 106, 114, 111, 120, 101, 118, 98, 118, 127, 122, 129, 109, 119, 108, 126, 118, 120, 115, 113, 103, 116, 114, 111, 97, 115, 116, 135, 110, 109, 123, 121, 125, 114, 134, 99, 133, 115, 122, 112, 113, 107, 117, 121, 128, 118, 104, 116, 113, 113, 113, 124, 123, 113, 118, 121, 111, 91, 113, 103, 119, 102, 115, 108, 116, 114, 108, 114, 128, 112, 117, 106, 117, 105, 110, 113, 95, 109, 114, 125, 130, 114, 109, 120, 118, 115, 93, 111, 119, 114, 129, 106, 117, 114, 128, 118, 92, 120, 114, 118, 113, 111, 115, 118, 125, 104, 113, 113, 120, 99, 133, 116, 112, 141, 117, 113, 119, 127, 113, 99, 104, 107, 111, 113, 106, 119, 106, 115, 124, 138, 118, 109, 124, 107, 110, 122, 121, 133, 94, 105, 126, 129, 116, 122, 116, 121, 118, 104, 113, 108, 131, 112, 124, 111, 118, 118, 126, 102, 114, 118, 122, 108, 146, 112, 108, 118, 116, 114, 121, 127, 93, 116, 128, 115, 112, 113, 117, 106, 117, 111, 108, 149, 106, 108, 126, 128, 105, 112, 124, 111, 124, 114, 113, 124, 107, 116, 113, 115, 105, 119, 115, 113, 127, 111, 103, 126, 116, 113, 113, 105, 112, 117, 146, 112, 108, 126, 109, 107, 131, 110, 120, 119, 102, 140, 104, 90, 112, 130, 126, 131, 117, 104, 125, 105, 118, 107, 95, 147, 117, 103, 117, 117, 122, 117, 101, 110, 106, 126, 110, 110, 120, 126, 111, 125, 134, 110, 102, 104, 124, 118, 106, 115, 117, 108, 131, 108, 125, 107, 136, 118, 114, 103, 124, 125, 109, 113, 109, 126, 118, 127, 115, 117, 108, 142, 121, 112, 94, 136, 128, 115, 112, 110, 109, 101, 120, 116, 103, 128, 108, 133, 111, 108, 110, 106, 126, 120, 130, 105, 106, 116, 124, 125, 120, 108, 116, 122, 108, 123, 119, 107, 110, 120, 107, 123, 105, 111, 116, 109, 117, 115, 119, 121, 116, 122, 126, 129, 111, 113, 128, 124, 118, 118, 115, 123, 107, 119, 110, 101, 116, 120, 106, 117, 121, 118, 106, 112, 115, 128, 126, 128, 124, 112, 127, 141, 112, 136, 118, 105, 117, 114, 132, 107, 124, 114, 110, 122, 109, 109, 118, 103, 133, 119, 120, 151, 131, 103, 113, 115, 118, 112, 123, 108, 115, 120, 122, 121, 117, 120, 116, 113, 117, 117, 137, 106, 117, 111, 113, 101, 119, 119, 117, 127, 105, 139, 122, 115, 108, 113, 115, 109, 124, 121, 98, 118, 123, 115, 115, 118, 120, 109, 115, 110, 104, 116, 121, 125, 107, 112, 107, 118, 128, 105, 107, 117, 108, 115, 122, 107, 116, 97, 128, 115, 126, 108, 118, 114, 106, 110, 115, 114, 94, 117, 115, 118, 115, 117, 109, 120, 86, 118, 127, 120, 114, 114, 123, 117, 120, 94, 117, 127, 120, 120, 114, 113, 112, 106, 120, 122, 109, 129, 110, 106, 112, 118, 100, 119, 116, 107, 106, 117, 136, 112, 98, 121, 109, 115, 106, 115, 110, 114, 100, 99, 125, 112, 118, 108, 111, 117, 133, 103, 111, 113, 122, 110, 119, 109, 113, 111, 127, 102, 116, 143, 96, 110, 101, 113, 94, 121, 110, 99, 120, 119, 112, 119, 120, 112, 125, 121, 117, 116, 120, 114, 107, 120, 122, 127, 120, 108, 111, 128, 113, 117, 136, 99, 112, 113, 95, 114, 121, 103, 97, 124, 125, 123, 115, 113, 107, 121, 142, 104, 126, 108, 129, 118, 112, 119, 125, 122, 111, 115, 112, 107, 115, 117, 106, 118, 121, 123, 125, 132, 116, 112, 114, 110, 116, 128, 120, 108, 96, 106, 111, 122, 118, 113, 117, 127, 121, 108, 109, 104, 108, 113, 108, 126, 120, 110, 123, 117, 113, 117, 113, 115, 116, 114, 106, 118, 102, 110, 106, 127, 100, 130, 124, 121, 109, 132, 123, 110, 114, 100, 117, 107, 106, 108, 116, 125, 128, 124, 122, 100, 115, 115, 119, 124, 132, 119, 107, 108, 116, 110, 108, 112, 131, 101, 113, 115, 116, 107, 128, 136, 117, 114, 112, 116, 105, 108, 112, 125, 121, 122, 117, 130, 124, 123, 117, 123, 119, 106, 110, 128, 108, 122, 115, 142, 127, 115, 113, 114, 113, 120, 121, 114, 126, 127, 119, 114, 120, 110, 118, 121, 111, 115, 119, 113, 118, 123, 139, 127, 110, 103, 111, 122, 127, 117, 110, 119, 111, 118, 116, 115, 102, 108, 108, 120, 106, 108, 114, 124, 110, 126, 115, 119, 112, 110, 109, 125, 124, 118, 124, 129, 122, 99, 118, 112, 117, 102, 112, 126, 113, 113, 118, 107, 107, 140, 111, 133, 119, 117, 142, 108, 107, 106, 115, 117, 111, 108, 120, 129, 117, 116, 110, 108, 106, 115, 121, 110, 126, 122, 108, 112, 122, 117, 108, 117, 118, 119, 118, 115, 111, 116, 106, 102, 121, 113, 128, 108, 119, 123, 112, 133, 93, 115, 113, 119, 114, 125, 110, 114, 113, 123, 112, 130, 137, 112, 119, 79, 111, 130, 126, 103, 113, 115, 120, 112, 119, 122, 125, 130, 117, 113, 103, 100, 113, 116, 115, 111, 118, 114, 122, 110, 117, 101, 114, 119, 114, 111, 109, 115, 106, 114, 117, 106, 90, 108, 106, 99, 113, 102, 122, 108, 117, 122, 101, 126, 108, 111, 123, 126, 98, 110, 114, 118, 109, 125, 100, 107, 119, 125, 106, 117, 109, 100, 115, 120, 117, 102, 102, 124, 123, 109, 122, 89, 118, 98, 100, 137, 113, 117, 130, 118, 120, 112, 113, 122, 109, 123, 112, 108, 113, 116, 122, 113, 118, 111, 115, 120, 113, 113, 118, 112, 111, 122, 122, 127, 121, 113, 113, 109, 108, 102, 119, 113, 115, 142, 116, 112, 111, 114, 125, 128, 118, 115, 108, 119, 115, 123, 128, 116, 126, 114, 115, 115, 119, 115, 116, 109, 120, 105, 106, 113, 125, 126, 119, 129, 119, 126, 117, 111, 124, 115, 118, 114, 138, 113, 125, 135, 107, 119, 123, 104, 117, 113, 115, 119, 117, 121, 100, 137, 109, 117, 112, 124, 107, 121, 118, 118, 116, 112, 90, 121, 126, 119, 122, 119, 124, 119, 106, 124, 127, 113, 123, 107, 122, 86, 113, 100, 121, 123, 118, 123, 118, 132, 118, 117, 122, 108, 118, 105, 119, 121, 128, 119, 123, 109, 135, 106, 108, 121, 117, 126, 119, 103, 116, 107, 115, 108, 116, 115, 113, 126, 100, 100, 113, 118, 121, 121, 109, 118, 125, 119, 110, 114, 121, 107, 112, 128, 140, 123, 117, 124, 111, 123, 120, 115, 116, 128, 117, 130, 119, 116, 117, 115, 111, 116, 118, 131, 106, 96, 128, 116, 99, 121, 107, 106, 79, 102, 116, 116, 118, 109, 129, 122, 121, 143, 123, 107, 110, 125, 121, 125, 120, 127, 118, 119, 88, 118, 96, 140, 125, 109, 105, 113, 119, 115, 115, 120, 113, 120, 99, 106, 121, 128, 114, 112, 108, 114, 101, 115, 118, 119, 105, 119, 120, 113, 119, 117, 108, 104, 113, 117, 119, 116, 103, 124, 120, 108, 123, 115, 119, 114, 115, 137, 122, 120, 115, 100, 126, 112, 113, 111, 113, 110, 113, 130, 110, 109, 121, 112, 111, 125, 127, 121, 107, 105, 101, 116, 116, 115, 110, 119, 112, 119, 124, 109, 110, 108, 119, 102, 108, 122, 110, 120, 118, 116, 100, 104, 114, 126, 124, 118, 117, 112, 108, 111, 102, 107, 126, 113, 122, 114, 120, 102, 149, 121, 110, 112, 133, 112, 122, 120, 113, 127, 122, 121, 120, 120, 122, 110, 115, 115, 122, 114, 120, 135, 122, 94, 120, 110, 126, 119, 124, 103, 101, 117, 111, 116, 141, 135, 120, 107, 108, 119, 99, 119, 108, 124, 123, 126, 125, 130, 107, 118, 114, 118, 133, 113, 111, 120, 123, 123, 130, 117, 117, 117, 128, 115, 117, 116, 114, 117, 121, 119, 118, 119, 116, 121, 117, 106, 117, 113, 111, 116, 103, 105, 116, 124, 103, 118, 113, 115, 121, 114, 119, 128, 117, 118, 118, 114, 122, 111, 129, 104, 109, 124, 126, 122, 111, 119, 111, 126, 116, 112, 115, 130, 122, 111, 103, 123, 125, 105, 121, 128, 122, 108, 117, 112, 114, 121, 117, 112, 124, 118, 110, 115, 117, 112, 103, 119, 120, 112, 118, 117, 116, 117, 117, 115, 110, 108, 108, 119, 120, 112, 108, 130, 114, 123, 119, 99, 138, 117, 112, 114, 122, 115, 114, 117, 108, 137, 104, 112, 114, 110, 119, 113, 105, 113, 115, 125, 114, 112, 119, 126, 114, 120, 112, 124, 116, 116, 109, 125, 120, 124, 122, 98, 122, 103, 118, 101, 110, 121, 122, 111, 121, 118, 121, 112, 119, 102, 107, 117, 115, 111, 117, 123, 102, 116, 120, 114, 116, 116, 110, 111, 121, 114, 121, 126, 114, 106, 113, 128, 115, 124, 108, 115, 123, 105, 124, 123, 120, 113, 127, 116, 112, 110, 126, 144, 124, 112, 115, 113, 128, 116, 104, 130, 126, 121, 125, 123, 117, 120, 108, 87, 122, 130, 111, 102, 115, 116, 118, 133, 115, 120, 118, 123, 122, 118, 114, 117, 129, 122, 119, 116, 115, 113, 119, 120, 123, 121, 117, 111, 115, 123, 104, 122, 126, 125, 108, 121, 126, 123, 122, 105, 115, 125, 123, 121, 104, 114, 115, 105, 118, 128, 97, 121, 112, 119, 127, 112, 110, 112, 116, 113, 110, 132, 120, 103, 113, 111, 117, 122, 116, 101, 114, 122, 119, 104, 106, 111, 124, 101, 112, 126, 115, 112, 128, 107, 107, 123, 114, 112, 118, 113, 112, 109, 115, 120, 105, 116, 111, 114, 119, 123, 115, 124, 117, 114, 109, 116, 116, 119, 122, 120, 102, 118, 114, 119, 110, 116, 105, 124, 111, 116, 118, 112, 107, 132, 118, 113, 119, 121, 114, 114, 120, 124, 117, 115, 121, 109, 115, 102, 118, 113, 111, 112, 114, 127, 115, 109, 122, 115, 111, 113, 118, 125, 113, 114, 117, 110, 115, 119, 114, 112, 101, 124, 110, 108, 113, 113, 121, 120, 119, 115, 116, 137, 121, 118, 109, 112, 112, 118, 116, 106, 127, 135, 115, 118, 116, 113, 116, 90, 114, 145, 119, 123, 129, 117, 127, 118, 101, 113, 110, 120, 113, 109, 114, 106, 113, 117, 127, 99, 112, 115, 113, 113, 129, 115, 114, 101, 116, 119, 128, 133, 122, 125, 123, 119, 121, 106, 118, 113, 104, 124, 108, 115, 123, 122, 118, 115, 115, 110, 112, 123, 124, 116, 113, 112, 110, 119, 112, 122, 104, 130, 122, 105, 122, 121, 120, 97, 117, 115, 116, 118, 115, 116, 105, 127, 109, 115, 118, 107, 121, 105, 130, 105, 110, 121, 128, 129, 119, 128, 120, 115, 111, 108, 116, 116, 128, 122, 109, 122, 110, 104, 111, 120, 117, 111, 119, 114, 127, 114, 114, 110, 112, 109, 122, 127, 109, 110, 126, 110, 117, 117, 123, 112, 120, 125, 116, 112, 114, 112, 125, 105, 106, 130, 122, 101, 109, 118, 104, 116, 124, 118, 111, 124, 104, 106, 105, 107, 115, 131, 118, 111, 119, 109, 110, 116, 123, 115, 125, 105, 104, 115, 127, 112, 135, 115, 103, 121, 116, 99, 136, 117, 117, 102, 105, 119, 103, 119, 125, 107, 120, 106, 109, 127, 104, 103, 112, 102, 120, 121, 120, 120, 112, 120, 119, 111, 130, 117, 121, 101, 92, 112, 123, 102, 132, 126, 107, 115, 107, 113, 144, 110, 112, 113, 114, 103, 111, 115, 115, 119, 135, 118, 119, 106, 109, 111, 109, 112, 112, 129, 111, 118, 110, 128, 130, 105, 115, 113, 119, 118, 109, 130, 131, 119, 103, 113, 118, 110, 99, 106, 129, 112, 108, 115, 110, 108, 117, 130, 111, 119, 112, 128, 104, 121, 111, 109, 125, 135, 115, 103, 114, 111, 115, 108, 125, 119, 115, 88, 107, 116, 130, 120, 114, 100, 122, 112, 103, 134, 118, 111, 104, 106, 106, 119, 110, 121, 133, 100, 116, 107, 119, 115, 101, 125, 110, 127, 115, 118, 92, 116, 103, 107, 126, 119, 116, 152, 123, 132, 141, 128, 151, 110, 122, 101, 117, 115, 112, 102, 108, 122, 120, 109, 126, 94, 117, 108, 135, 123, 130, 115, 120, 142, 118, 113, 108, 126, 107, 146, 118, 108, 109, 109, 112, 123, 105, 123, 134, 123, 111, 104, 119, 107, 135, 106, 109, 94, 127, 116, 121, 144, 109, 126, 106, 112, 109, 128, 115, 107, 116, 116, 120, 104, 87, 120, 124, 118, 101, 107, 110, 144, 123, 132, 101, 116, 125, 113, 117, 130, 116, 120, 112, 116, 107, 142, 124, 96, 110, 116, 115, 122, 121, 110, 133, 141, 123, 103, 125, 114, 107, 106, 118, 111, 108, 118, 113, 114, 127, 106, 130, 117, 109, 148, 110, 116, 124, 120, 113, 103, 121, 99, 125, 128, 111, 114, 115, 108, 95, 116, 157, 129, 117, 109, 118, 132, 96, 111, 120, 112, 112, 97, 111, 124, 117, 97, 126, 131, 125, 112, 120, 119, 134, 112, 143, 115, 108, 117, 100, 126, 132, 115, 108, 107, 97, 108, 121, 117, 102, 117, 125, 118, 122, 120, 103, 117, 126, 106, 95, 131, 110, 134, 114, 129, 120, 104, 124, 109, 132, 102, 107, 121, 112, 128, 107, 118, 130, 110, 109, 109, 101, 122, 114, 123, 116, 112, 105, 120, 125, 129, 104, 115, 106, 116, 114, 119, 105, 114, 117, 111, 122, 131, 121, 123, 112, 100, 98, 113, 130, 133, 116, 116, 120, 109, 100, 107, 109, 111, 125, 113, 102, 97, 120, 118, 122, 115, 125, 124, 117, 109, 122, 125, 122, 106, 116, 123, 119, 98, 125, 97, 122, 122, 99, 146, 100, 99, 117, 121, 129, 115, 126, 115, 129, 122, 107, 103, 110, 107, 97, 120, 120, 111, 108, 128, 103, 99, 101, 112, 113, 120, 126, 129, 117, 111, 119, 99, 110, 113, 95, 95, 121, 105, 111, 103, 131, 107, 119, 108, 138, 122, 112, 126, 111, 113, 117, 102, 95, 116, 117, 113, 100, 121, 114, 102, 113, 109, 115, 118, 134, 108, 110, 116, 117, 119, 122, 117, 112, 118, 114, 118, 130, 116, 114, 104, 123, 103, 120, 132, 114, 104, 115, 104, 109, 125, 111, 127, 124, 96, 105, 112, 130, 110, 113, 110, 115, 136, 113, 119, 117, 116, 108, 107, 117, 104, 119, 115, 116, 106, 117, 127, 108, 120, 125, 116, 117, 118, 114, 109, 90, 105, 129, 100, 115, 110, 116, 108, 122, 115, 118, 121, 109, 115, 120, 109, 119, 124, 107, 112, 114, 124, 110, 108, 116, 122, 102, 118, 124, 115, 108, 113, 123, 118, 110, 113, 112, 121, 123, 113, 109, 131, 115, 126, 108, 101, 132, 117, 116, 118, 113, 119, 109, 114, 122, 116, 114, 115, 112, 106, 110, 116, 121, 118, 118, 131, 110, 112, 109, 121, 109, 119, 121, 100, 117, 107, 117, 114, 124, 115, 110, 126, 99, 107, 121, 123, 105, 122, 116, 109, 122, 116, 108, 132, 114, 113, 118, 123, 123, 124, 126, 118, 101, 108, 113, 116, 115, 125, 122, 127, 126, 124, 118, 131, 113, 111, 115, 119, 113, 119, 119, 115, 118, 131, 122, 110, 118, 117, 128, 117, 126, 115, 105, 113, 141, 115, 114, 105, 132, 111, 109, 107, 109, 114, 113, 125, 112, 111, 122, 114, 114, 114, 115, 107, 108, 107, 114, 117, 121, 118, 115, 128, 114, 112, 102, 113, 118, 122, 103, 126, 120, 115, 111, 119, 126, 118, 123, 113, 109, 116, 123, 105, 114, 124, 113, 125, 116, 118, 131, 120, 122, 118, 120, 118, 120, 114, 122, 122, 132, 113, 107, 115, 122, 108, 144, 126, 115, 126, 117, 113, 116, 111, 117, 129, 123, 109, 120, 115, 124, 105, 118, 114, 116, 108, 112, 110, 114, 119, 128, 117, 109, 116, 97, 116, 122, 114, 140, 119, 121, 126, 131, 129, 125, 117, 111, 125, 119, 114, 110, 118, 112, 123, 117, 118, 106, 120, 115, 124, 115, 109, 112, 118, 117, 128, 109, 117, 115, 104, 167, 122, 112, 121, 127, 120, 104, 108, 112, 111, 116, 105, 117, 106, 114, 111, 108, 118, 123, 115, 113, 118, 118, 133, 121, 118, 127, 109, 121, 144, 115, 119, 119, 114, 111, 124, 124, 105, 114, 106, 110, 106, 114, 126, 115, 115, 120, 110, 116, 112, 114, 121, 128, 120, 101, 126, 118, 113, 108, 117, 140, 95, 116, 119, 116, 123, 114, 114, 112, 118, 122, 129, 112, 111, 112, 116, 111, 116, 117, 112, 113, 112, 116, 103, 101, 111, 118, 120, 115, 118, 111, 121, 119, 122, 102, 104, 117, 113, 120, 103, 99, 113, 101, 100, 138, 125, 110, 108, 120, 103, 119, 116, 115, 109, 105, 137, 112, 101, 113, 108, 118, 121, 111, 111, 110, 113, 88, 105, 112, 112, 127, 109, 112, 114, 118, 127, 145, 109, 115, 133, 109, 113, 108, 116, 105, 110, 111, 127, 118, 110, 121, 107, 114, 128, 118, 109, 122, 103, 126, 127, 114, 118, 139, 118, 123, 119, 114, 117, 120, 121, 118, 112, 131, 118, 144, 103, 133, 121, 108, 118, 107, 115, 126, 121, 114, 109, 108, 124, 131, 122, 124, 126, 125, 114, 106, 101, 135, 105, 104, 123, 110, 109, 95, 102, 115, 132, 117, 115, 124, 115, 125, 120, 124, 106, 118, 119, 124, 121, 108, 112, 112, 119, 120, 108, 109, 121, 109, 110, 105, 127, 111, 109, 113, 121, 109, 123, 102, 105, 116, 123, 120, 123, 125, 126, 92, 102, 120, 121, 113, 117, 109, 130, 126, 119, 105, 111, 119, 123, 105, 128, 117, 113, 123, 115, 114, 126, 109, 108, 122, 112, 117, 122, 111, 109, 112, 118, 122, 131, 104, 92, 95, 119, 102, 119, 111, 105, 118, 116, 101, 128, 116, 124, 106, 120, 104, 118, 109, 112, 115, 121, 108, 116, 124, 129, 133, 119, 111, 109, 110, 96, 127, 125, 120, 121, 116, 125, 106, 112, 111, 128, 114, 115, 118, 114, 116, 130, 96, 120, 120, 116, 106, 128, 118, 106, 107, 141, 120, 124, 114, 116, 106, 125, 135, 126, 110, 121, 105, 102, 122, 125, 140, 108, 110, 106, 122, 111, 132, 107, 114, 120, 104, 113, 110, 109, 124, 107, 110, 111, 110, 115, 114, 113, 127, 106, 116, 127, 111, 103, 110, 123, 105, 143, 109, 114, 114, 102, 106, 105, 107, 117, 118, 115, 109, 122, 112, 118, 115, 103, 101, 143, 118, 118, 123, 122, 113, 123, 120, 138, 107, 124, 125, 111, 112, 116, 102, 112, 120, 114, 120, 117, 126, 116, 108, 127, 97, 109, 114, 118, 127, 115, 115, 111, 117, 123, 132, 132, 111, 120, 103, 110, 121, 123, 127, 115, 109, 149, 128, 125, 121, 116, 115, 121, 108, 123, 108, 122, 129, 117, 97, 132, 142, 122, 132, 119, 104, 114, 126, 110, 112, 108, 114, 130, 131, 110, 112, 115, 123, 113, 113, 107, 113, 123, 115, 107, 109, 116, 117, 110, 119, 124, 119, 128, 117, 121, 116, 114, 112, 110, 122, 108, 99, 113, 112, 106, 125, 113, 108, 122, 120, 113, 114, 123, 112, 98, 115, 119, 128, 110, 119, 104, 118, 110, 107, 105, 104, 110, 116, 139, 141, 108, 117, 108, 97, 119, 104, 114, 122, 88, 109, 119, 130, 121, 111, 118, 129, 112, 106, 123, 123, 114, 114, 118, 113, 112, 116, 105, 107, 109, 126, 128, 112, 116, 110, 129, 127, 120, 113, 111, 94, 115, 104, 131, 102, 109, 114, 108, 123, 121, 110, 111, 111, 110, 124, 135, 107, 116, 114, 107, 117, 107, 96, 110, 122, 137, 109, 122, 104, 137, 113, 112, 124, 116, 111, 120, 118, 119, 112, 121, 109, 112, 114, 119, 109, 116, 108, 118, 115, 114, 102, 137, 110, 106, 115, 120, 106, 116, 124, 122, 115, 114, 108, 113, 110, 125, 109, 128, 107, 109, 105, 127, 113, 120, 127, 104, 114, 102, 105, 128, 134, 105, 123, 102, 112, 115, 117, 110, 108, 132, 115, 125, 105, 102, 110, 101, 110, 125, 116, 121, 114, 106, 124, 113, 124, 96, 116, 94, 121, 126, 110, 111, 103, 129, 112, 111, 121, 126, 106, 96, 113, 99, 107, 120, 114, 127, 111, 142, 122, 139, 117, 114, 148, 127, 117, 106, 96, 113, 107, 112, 109, 120, 123, 135, 122, 120, 118, 105, 127, 119, 97, 116, 130, 98, 115, 114, 122, 115, 105, 103, 116, 119, 113, 110, 124, 116, 117, 106, 121, 116, 106, 122, 115, 107, 114, 122, 110, 134, 118, 120, 105, 118, 117, 117, 93, 120, 124, 109, 98, 115, 125, 108, 110, 114, 132, 103, 103, 129, 120, 119, 124, 102, 121, 103, 117, 114, 106, 97, 108, 114, 121, 100, 114, 116, 125, 137, 104, 105, 113, 115, 108, 116, 109, 112, 119, 112, 104, 101, 111, 99, 124, 124, 112, 112, 112, 106, 111, 104, 131, 123, 118, 120, 124, 111, 117, 119, 127, 135, 114, 96, 127, 115, 107, 117, 110, 130, 103, 112, 122, 111, 108, 112, 110, 118, 118, 123, 112, 107, 119, 128, 128, 102, 112, 109, 116, 140, 117, 119, 108, 110, 103, 110, 110, 121, 113, 118, 112, 107, 112, 112, 110, 119, 119, 116, 109, 122, 108, 108, 115, 108, 122, 103, 115, 112, 111, 125, 141, 126, 106, 113, 111, 142, 118, 118, 107, 105, 114, 114, 110, 125, 109, 101, 113, 119, 106, 107, 86, 114, 124, 137, 130, 107, 101, 125, 124, 151, 125, 105, 113, 117, 107, 99, 115, 117, 122, 108, 115, 121, 118, 123, 110, 114, 116, 114, 109, 110, 129, 126, 109, 119, 117, 132, 116, 98, 102, 114, 126, 117, 120, 127, 122, 115, 95, 101, 124, 112, 111, 121, 106, 113, 117, 113, 99, 112, 114, 114, 113, 116, 113, 124, 108, 119, 115, 120, 119, 103, 120, 106, 102, 129, 128, 122, 121, 109, 110, 127, 143, 116, 118, 127, 112, 105, 105, 123, 113, 107, 114, 126, 101, 118, 108, 132, 112, 124, 113, 122, 119, 128, 117, 127, 116, 109, 122, 113, 115, 132, 111, 117, 117, 134, 102, 116, 77, 120, 99, 103, 116, 122, 110, 114, 119, 123, 125, 144, 139, 110, 106, 143, 136, 108, 119, 111, 101, 119, 117, 98, 114, 117, 118, 112, 106, 104, 107, 125, 103, 107, 144, 103, 125, 104, 113, 107, 117, 110, 109, 112, 107, 123, 115, 121, 113, 127, 102, 111, 134, 110, 126, 103, 131, 113, 114, 113, 115, 107, 121, 119, 120, 101, 115, 111, 109, 123, 130, 125, 112, 111, 95, 122, 108, 130, 120, 109, 118, 117, 115, 118, 108, 121, 101, 115, 124, 116, 113, 125, 117, 124, 114, 107, 131, 118, 101, 109, 109, 101, 107, 119, 106, 111, 97, 126, 117, 107, 121, 112, 115, 112, 118, 113, 120, 115, 130, 120, 108, 102, 112, 105, 102, 112, 126, 118, 78, 111, 133, 110, 142, 108, 116, 109, 131, 118, 114, 125, 110, 102, 118, 121, 116, 110, 106, 118, 114, 115, 115, 113, 122, 110, 114, 130, 117, 108, 110, 109, 96, 110, 109, 130, 118, 116, 117, 95, 109, 138, 108, 100, 119, 113, 104, 112, 123, 115, 108, 107, 94, 118, 118, 118, 117, 114, 111, 121, 110, 117, 121, 104, 95, 123, 121, 120, 110, 110, 113, 113, 106, 103, 102, 106, 116, 112, 112, 109, 107, 125, 128, 127, 98, 125, 113, 131, 113, 105, 113, 106, 120, 120, 113, 123, 112, 113, 137, 116, 116, 97, 107, 108, 111, 124, 112, 137, 101, 110, 127, 118, 93, 106, 146, 121, 125, 117, 117, 122, 117, 116, 108, 135, 108, 111, 127, 112, 116, 113, 114, 130, 111, 116, 100, 119, 117, 109, 112, 125, 109, 116, 117, 113, 99, 107, 111, 118, 99, 120, 111, 111, 119, 106, 124, 121, 120, 111, 115, 109, 101, 112, 110, 108, 109, 119, 123, 104, 99, 114, 117, 113, 114, 127, 119, 116, 110, 113, 111, 103, 129, 110, 110, 112, 117, 105, 111, 121, 104, 110, 121, 110, 123, 103, 109, 113, 111, 113, 117, 124, 116, 112, 116, 87, 119, 123, 108, 116, 124, 122, 108, 118, 119, 116, 114, 108, 109, 112, 106, 102, 105, 120, 106, 110, 103, 109, 130, 130, 105, 110, 98, 118, 135, 116, 117, 120, 106, 83, 104, 111, 104, 115, 111, 129, 116, 118, 138, 117, 122, 115, 106, 113, 111, 126, 110, 113, 113, 121, 121, 105, 119, 106, 114, 129, 109, 112, 145, 122, 114, 124, 120, 145, 120, 108, 112, 128, 120, 115, 120, 114, 109, 114, 113, 106, 106, 121, 122, 116, 118, 121, 116, 127, 114, 117, 121, 122, 118, 106, 96, 115, 107, 108, 112, 119, 111, 113, 128, 111, 128, 101, 110, 125, 121, 128, 123, 113, 102, 116, 114, 111, 106, 122, 117, 118, 113, 127, 113, 117, 118, 128, 109, 117, 122, 112, 107, 114, 121, 110, 133, 115, 111, 114, 121, 111, 115, 121, 117, 130, 129, 110, 107, 119, 117, 117, 98, 116, 116, 109, 121, 119, 110, 110, 77, 119, 106, 120, 96, 109, 114, 117, 108, 96, 116, 116, 112, 108, 115, 124, 128, 104, 107, 121, 115, 122, 118, 121, 107, 114, 112, 108, 115, 102, 119, 121, 108, 112, 111, 112, 119, 121, 120, 115, 114, 116, 121, 101, 116, 108, 108, 115, 111, 104, 112, 106, 128, 112, 128, 117, 115, 124, 115, 115, 113, 130, 98, 117, 111, 123, 113, 113, 124, 113, 118, 125, 93, 99, 120, 84, 105, 134, 113, 124, 124, 121, 121, 109, 118, 110, 116, 123, 96, 121, 105, 116, 114, 105, 112, 101, 126, 128, 99, 111, 115, 117, 123, 113, 107, 136, 105, 118, 113, 123, 111, 116, 119, 132, 124, 122, 117, 127, 118, 114, 112, 116, 120, 122, 111, 126, 110, 105, 112, 121, 116, 106, 116, 116, 116, 102, 120, 105, 116, 120, 111, 129, 98, 116, 112, 128, 125, 118, 121, 111, 124, 119, 120, 112, 121, 114, 118, 111, 130, 186, 129, 104, 113, 100, 119, 109, 128, 108, 111, 107, 107, 127, 132, 112, 115, 126, 114, 118, 129, 113, 110, 116, 116, 108, 119, 116, 93, 125, 110, 99, 108, 108, 122, 101, 100, 117, 103, 112, 132, 110, 107, 110, 127, 127, 110, 109, 103, 123, 103, 111, 117, 122, 108, 121, 123, 136, 131, 123, 114, 107, 115, 105, 124, 132, 115, 114, 116, 108, 120, 124, 110, 112, 112, 127, 107, 120, 115, 125, 126, 109, 117, 115, 121, 120, 125, 116, 109, 117, 103, 112, 114, 121, 107, 127, 122, 112, 127, 109, 112, 105, 113, 121, 114, 115, 126, 121, 118, 126, 103, 112, 110, 120, 129, 115, 117, 112, 127, 138, 99, 110, 126, 125, 118, 118, 119, 101, 126, 127, 131, 106, 117, 126, 122, 107, 114, 118, 125, 115, 115, 103, 119, 113, 119, 94, 118, 124, 96, 92, 132, 129, 124, 122, 111, 129, 123, 115, 115, 107, 116, 120, 120, 118, 116, 120, 110, 121, 126, 114, 115, 128, 91, 103, 117, 137, 126, 136, 128, 108, 109, 135, 115, 121, 120, 144, 112, 134, 127, 135, 108, 146, 130, 110, 119, 123, 114, 120, 116, 120, 119, 103, 135, 108, 124, 110, 103, 122, 110, 110, 107, 119, 118, 124, 129, 112, 121, 119, 125, 114, 119, 113, 115, 144, 116, 117, 127, 118, 115, 115, 114, 115, 112, 131, 102, 124, 146, 122, 125, 123, 116, 107, 135, 113, 128, 118, 123, 116, 108, 123, 94, 113, 115, 118, 118, 120, 112, 108, 112, 115, 124, 132, 111, 130, 110, 110, 150, 118, 118, 116, 114, 113, 129, 119, 123, 122, 110, 115, 119, 125, 114, 116, 108, 109, 118, 131, 120, 111, 118, 110, 109, 114, 124, 113, 122, 118, 76, 122, 124, 124, 127, 120, 119, 118, 126, 117, 113, 121, 120, 117, 126, 119, 120, 99, 114, 107, 126, 118, 112, 111, 110, 99, 119, 121, 120, 119, 106, 135, 115, 121, 114, 135, 126, 92, 126, 106, 126, 117, 108, 122, 120, 124, 112, 105, 113, 115, 124, 100, 123, 112, 99, 118, 109, 114, 118, 117, 103, 109, 113, 120, 120, 112, 119, 106, 125, 117, 122, 122, 118, 109, 111, 100, 129, 111, 125, 106, 119, 112, 133, 109, 146, 128, 117, 111, 116, 116, 113, 132, 110, 114, 113, 122, 118, 109, 117, 98, 119, 97, 135, 119, 121, 122, 136, 120, 120, 120, 120, 126, 111, 92, 130, 105, 110, 118, 115, 132, 124, 121, 126, 116, 117, 114, 127, 112, 90, 117, 108, 106, 126, 129, 110, 130, 99, 108, 111, 109, 117, 113, 120, 111, 116, 125, 119, 107, 116, 122, 101, 113, 110, 113, 109, 121, 105, 124, 129, 127, 119, 126, 110, 100, 115, 110, 122, 102, 116, 130, 102, 118, 112, 90, 104, 124, 101, 96, 112, 118, 112, 130, 119, 122, 107, 106, 119, 104, 115, 102, 111, 122, 108, 117, 143, 112, 126, 113, 122, 119, 122, 124, 111, 121, 117, 96, 128, 118, 119, 112, 143, 128, 107, 103, 111, 113, 118, 127, 107, 131, 119, 110, 112, 116, 107, 109, 107, 114, 118, 122, 120, 106, 136, 118, 134, 119, 98, 91, 114, 97, 114, 124, 115, 115, 114, 140, 118, 116, 106, 100, 119, 80, 109, 109, 110, 106, 119, 111, 124, 118, 120, 106, 136, 116, 112, 122, 118, 114, 114, 103, 115, 128, 125, 130, 88, 109, 136, 125, 115, 119, 108, 117, 108, 106, 109, 119, 110, 128, 105, 108, 123, 106, 114, 125, 119, 116, 113, 88, 129, 116, 101, 118, 116, 91, 113, 124, 125, 99, 121, 113, 108, 115, 121, 129, 122, 126, 101, 107, 119, 122, 121, 121, 126, 120, 124, 122, 110, 115, 124, 112, 134, 110, 121, 115, 112, 133, 123, 107, 103, 105, 118, 127, 113, 118, 120, 127, 113, 124, 115, 121, 107, 123, 93, 122, 112, 110, 113, 103, 124, 122, 119, 121, 128, 108, 118, 127, 122, 115, 106, 112, 115, 114, 122, 125, 116, 111, 111, 111, 122, 104, 119, 98, 120, 123, 122, 118, 121, 119, 107, 116, 113, 115, 109, 118, 118, 119, 116, 135, 101, 113, 111, 97, 134, 106, 112, 101, 114, 109, 120, 112, 127, 92, 111, 106, 104, 127, 99, 113, 181, 123, 104, 117, 126, 101, 107, 118, 120, 108, 109, 115, 104, 108, 127, 108, 101, 120, 126, 103, 121, 133, 124, 140, 123, 125, 106, 113, 118, 120, 94, 122, 102, 133, 120, 115, 121, 110, 117, 96, 108, 126, 111, 117, 120, 121, 139, 123, 127, 104, 104, 120, 139, 123, 119, 134, 128, 142, 119, 116, 141, 110, 124, 105, 103, 110, 111, 140, 107, 121, 114, 131, 119, 132, 110, 110, 123, 123, 110, 119, 117, 128, 126, 117, 117, 108, 126, 126, 110, 107, 93, 109, 110, 110, 119, 134, 124, 121, 133, 114, 101, 113, 123, 116, 126, 110, 131, 134, 117, 110, 99, 118, 129, 101, 128, 118, 104, 115, 100, 112, 116, 149, 110, 119, 124, 124, 118, 113, 121, 120, 110, 118, 136, 116, 106, 117, 100, 165, 123, 121, 104, 130, 115, 126, 123, 121, 129, 119, 102, 108, 136, 113, 109, 116, 142, 97, 116, 116, 122, 94, 106, 109, 102, 110, 115, 116, 128, 138, 136, 102, 112, 115, 117, 104, 126, 119, 131, 119, 105, 128, 147, 126, 119, 110, 105, 129, 117, 112, 112, 127, 116, 130, 111, 111, 104, 99, 182, 126, 106, 115, 108, 112, 118, 119, 109, 126, 124, 120, 113, 109, 111, 123, 122, 118, 129, 140, 110, 111, 110, 137, 114, 105, 117, 123, 119, 119, 122, 126, 125, 132, 120, 113, 115, 118, 122, 119, 115, 119, 103, 120, 117, 116, 121, 116, 103, 116, 116, 89, 110, 118, 107, 84, 108, 119, 139, 147, 124, 76, 117, 106, 105, 116, 115, 110, 119, 117, 101, 132, 114, 114, 114, 107, 104, 128, 126, 125, 119, 101, 111, 100, 113, 105, 107, 95, 127, 111, 127, 100, 143, 95, 113, 118, 103, 131, 110, 114, 108, 107, 128, 112, 117, 117, 134, 120, 120, 117, 120, 126, 92, 148, 118, 116, 128, 124, 110, 120, 122, 123, 107, 95, 126, 120, 112, 129, 107, 132, 104, 118, 115, 138, 126, 115, 119, 126, 118, 128, 127, 110, 112, 115, 111, 117, 114, 133, 105, 111, 109, 114, 113, 128, 126, 91, 109, 105, 125, 115, 108, 109, 131, 110, 110, 111, 119, 110, 99, 104, 125, 110, 110, 113, 119, 121, 124, 121, 107, 137, 116, 105, 107, 104, 120, 100, 112, 118, 110, 123, 114, 109, 110, 125, 119, 120, 111, 99, 111, 108, 121, 119, 112, 114, 115, 103, 122, 120, 110, 106, 108, 114, 115, 98, 118, 120, 118, 112, 103, 118, 126, 125, 108, 113, 136, 115, 112, 115, 147, 107, 111, 110, 109, 112, 109, 121, 112, 113, 126, 131, 116, 117, 120, 109, 112, 102, 107, 102, 132, 108, 104, 111, 118, 120, 115, 109, 102, 100, 124, 107, 98, 118, 109, 121, 124, 111, 121, 118, 100, 108, 122, 128, 122, 116, 105, 113, 120, 139, 122, 106, 126, 105, 117, 122, 113, 114, 126, 116, 128, 114, 118, 118, 127, 114, 116, 119, 115, 110, 113, 113, 108, 138, 113, 137, 103, 124, 121, 115, 109, 118, 117, 112, 127, 108, 117, 123, 110, 119, 139, 113, 126, 106, 112, 109, 113, 115, 98, 119, 104, 111, 131, 116, 127, 120, 111, 113, 107, 106, 117, 120, 107, 110, 121, 102, 114, 101, 127, 115, 123, 121, 113, 133, 105, 106, 132, 110, 110, 126, 110, 100, 116, 116, 129, 144, 126, 120, 109, 114, 110, 113, 124, 107, 117, 107, 132, 112, 103, 112, 121, 121, 114, 114, 108, 109, 114, 104, 142, 117, 109, 116, 121, 100, 114, 124, 118, 106, 117, 114, 114, 104, 121, 115, 115, 114, 106, 115, 103, 114, 118, 120, 112, 112, 115, 111, 116, 123, 119, 108, 111, 116, 101, 109, 113, 114, 111, 127, 124, 103, 109, 122, 121, 107, 126, 112, 113, 130, 101, 117, 115, 126, 112, 108, 115, 111, 119, 115, 109, 100, 131, 105, 109, 110, 115, 117, 115, 120, 116, 133, 105, 122, 102, 102, 122, 114, 109, 123, 138, 120, 109, 110, 104, 123, 108, 123, 130, 111, 125, 107, 129, 114, 110, 119, 124, 118, 124, 123, 118, 118, 108, 115, 125, 109, 106, 112, 120, 116, 118, 115, 107, 123, 119, 116, 126, 123, 106, 106, 102, 99, 116, 106, 104, 113, 111, 112, 110, 108, 132, 123, 104, 116, 115, 113, 111, 106, 114, 111, 110, 106, 114, 115, 113, 141, 104, 121, 111, 116, 108, 108, 110, 112, 117, 125, 122, 113, 118, 109, 125, 102, 115, 114, 117, 108, 122, 94, 97, 126, 112, 119, 127, 133, 128, 110, 114, 106, 117, 120, 116, 110, 111, 116, 107, 116, 119, 153, 116, 127, 117, 104, 106, 124, 112, 118, 108, 124, 110, 117, 113, 114, 113, 109, 98, 107, 107, 113, 114, 114, 120, 111, 116, 107, 126, 121, 109, 129, 132, 127, 113, 117, 106, 117, 111, 126, 122, 109, 118, 109, 126, 119, 118, 107, 131, 129, 108, 119, 112, 107, 118, 117, 103, 116, 122, 117, 110, 102, 122, 105, 104, 117, 110, 116, 107, 111, 119, 124, 120, 108, 112, 123, 116, 107, 110, 124, 111, 109, 116, 125, 97, 120, 111, 116, 122, 110, 103, 115, 120, 107, 111, 105, 109, 121, 83, 113, 109, 124, 118, 122, 118, 121, 109, 83, 108, 114, 115, 111, 114, 112, 112, 110, 116, 108, 103, 113, 128, 108, 120, 124, 149, 120, 117, 147, 102, 121, 122, 119, 126, 118, 136, 109, 97, 109, 118, 126, 90, 110, 123, 105, 139, 131, 114, 113, 134, 122, 114, 106, 114, 119, 137, 114, 119, 113, 129, 98, 122, 101, 113, 118, 110, 109, 120, 100, 120, 120, 99, 97, 90, 122, 131, 111, 137, 90, 115, 120, 114, 111, 107, 101, 104, 126, 110, 126, 112, 102, 115, 108, 109, 116, 116, 108, 116, 111, 121, 110, 124, 109, 105, 109, 129, 122, 110, 127, 136, 93, 123, 127, 130, 122, 124, 110, 133, 99, 108, 105, 147, 113, 99, 107, 82, 155, 122, 103, 109, 120, 108, 117, 119, 114, 114, 116, 123, 91, 99, 110, 121, 119, 117, 135, 114, 119, 100, 137, 135, 114, 113, 108, 88, 112, 118, 154, 106, 108, 115, 115, 109, 124, 110, 113, 112, 108, 102, 135, 126, 111, 122, 121, 111, 93, 123, 116, 106, 111, 80, 109, 106, 118, 113, 111, 103, 127, 126, 102, 121, 126, 113, 124, 112, 109, 125, 133, 108, 111, 123, 123, 101, 107, 117, 113, 120, 125, 113, 100, 111, 113, 117, 115, 126, 114, 122, 112, 126, 101, 119, 115, 118, 113, 123, 117, 118, 99, 113, 126, 109, 114, 108, 82, 115, 103, 122, 106, 114, 118, 122, 114, 122, 116, 113, 124, 97, 115, 114, 103, 114, 113, 128, 109, 74, 120, 114, 111, 106, 131, 117, 109, 108, 127, 123, 115, 129, 119, 113, 110, 121, 96, 117, 130, 128, 109, 109, 130, 87, 92, 146, 106, 90, 105, 126, 117, 125, 117, 108, 109, 148, 123, 122, 125, 114, 115, 121, 99, 121, 130, 123, 121, 112, 113, 112, 114, 115, 91, 108, 113, 109, 120, 126, 121, 117, 116, 117, 104, 128, 125, 109, 98, 115, 128, 109, 117, 116, 123, 105, 100, 122, 115, 108, 112, 107, 102, 124, 110, 112, 110, 104, 110, 124, 143, 111, 111, 106, 117, 100, 103, 95, 113, 122, 109, 106, 117, 113, 114, 124, 133, 96, 102, 107, 95, 109, 97, 116, 105, 113, 117, 127, 102, 128, 110, 125, 78, 117, 123, 119, 120, 121, 111, 99, 95, 129, 114, 120, 91, 102, 116, 110, 118, 104, 123, 131, 107, 107, 110, 120, 112, 140, 117, 122, 124, 115, 115, 109, 136, 122, 114, 107, 128, 106, 121, 127, 113, 111, 112, 119, 107, 116, 126, 126, 131, 106, 123, 126, 101, 116, 113, 110, 112, 106, 105, 123, 120, 103, 143, 118, 100, 130, 120, 110, 118, 104, 107, 104, 108, 99, 106, 121, 111, 115, 134, 111, 102, 104, 129, 129, 106, 102, 129, 113, 109, 116, 94, 130, 112, 113, 119, 99, 115, 107, 107, 122, 120, 109, 105, 128, 102, 113, 108, 116, 119, 112, 114, 119, 122, 109, 108, 110, 124, 123, 120, 108, 125, 107, 119, 100, 113, 120, 124, 94, 118, 118, 116, 110, 93, 135, 104, 130, 108, 115, 91, 100, 118, 108, 110, 129, 121, 111, 120, 115, 103, 116, 122, 107, 143, 106, 147, 104, 128, 106, 107, 161, 125, 116, 96, 104, 113, 100, 122, 110, 115, 118, 135, 104, 126, 116, 107, 116, 137, 88, 131, 111, 101, 121, 117, 103, 110, 113, 112, 110, 117, 102, 108, 111, 121, 108, 107, 135, 119, 108, 120, 117, 112, 122, 114, 86, 101, 93, 122, 120, 118, 109, 105, 109, 113, 112, 115, 126, 118, 116, 114, 105, 126, 117, 98, 118, 128, 111, 122, 134, 107, 129, 108, 131, 118, 128, 113, 109, 115, 134, 99, 108, 113, 101, 100, 104, 104, 109, 121, 114, 106, 115, 115, 112, 116, 101, 115, 122, 103, 135, 131, 90, 122, 115, 121, 116, 130, 135, 127, 129, 104, 131, 106, 121, 143, 119, 123, 116, 124, 112, 111, 108, 123, 114, 119, 100, 122, 102, 104, 110, 95, 104, 106, 114, 121, 123, 119, 106, 114, 119, 104, 114, 107, 114, 141, 111, 113, 116, 98, 120, 104, 105, 109, 106, 126, 119, 101, 109, 111, 126, 119, 137, 124, 122, 106, 108, 100, 113, 127, 117, 106, 107, 125, 111, 126, 112, 137, 111, 101, 125, 134, 115, 112, 99, 130, 97, 106, 104, 116, 112, 121, 118, 116, 116, 103, 106, 125, 111, 133, 111, 109, 115, 115, 106, 128, 106, 107, 117, 121, 113, 111, 108, 99, 111, 128, 100, 112, 118, 105, 104, 117, 119, 111, 114, 119, 124, 115, 124, 113, 109, 137, 110, 145, 100, 117, 117, 128, 110, 132, 103, 130, 107, 111, 119, 106, 102, 126, 98, 109, 125, 123, 112, 105, 110, 101, 122, 139, 107, 115, 126, 116, 119, 111, 128, 112, 105, 108, 102, 120, 132, 112, 134, 107, 102, 130, 114, 120, 124, 124, 104, 127, 135, 108, 117, 116, 105, 116, 111, 109, 114, 129, 123, 119, 114, 130, 129, 109, 129, 111, 104, 107, 113, 116, 106, 127, 85, 110, 102, 129, 96, 114, 97, 121, 92, 109, 119, 123, 97, 120, 115, 133, 118, 126, 111, 116, 115, 113, 143, 116, 140, 129, 92, 127, 107, 102, 96, 110, 133, 110, 101, 123, 104, 131, 132, 123, 114, 99, 119, 111, 110, 116, 111, 117, 103, 120, 116, 117, 104, 126, 102, 131, 109, 115, 136, 116, 118, 100, 113, 122, 128, 114, 108, 109, 134, 123, 115, 118, 108, 149, 118, 105, 126, 114, 111, 86, 106, 94, 118, 119, 120, 116, 103, 115, 116, 113, 103, 115, 119, 110, 140, 126, 88, 120, 115, 132, 123, 110, 106, 113, 122, 119, 122, 105, 108, 105, 133, 107, 121, 133, 104, 124, 127, 131, 126, 115, 120, 113, 114, 127, 133, 124, 106, 108, 104, 100, 106, 101, 124, 98, 88, 104, 123, 104, 122, 107, 120, 104, 111, 106, 105, 116, 116, 103, 113, 121, 111, 109, 109, 118, 112, 121, 127, 116, 110, 114, 128, 119, 138, 95, 118, 112, 112, 107, 132, 138, 117, 117, 88, 116, 126, 134, 106, 117, 114, 114, 115, 99, 121, 115, 101, 122, 116, 108, 116, 109, 118, 113, 104, 123, 109, 108, 116, 114, 120, 107, 107, 102, 118, 105, 119, 120, 114, 109, 102, 143, 106, 117, 114, 91, 109, 121, 135, 116, 99, 109, 106, 128, 121, 124, 112, 100, 123, 111, 106, 150, 115, 110, 97, 128, 114, 115, 123, 102, 108, 126, 110, 114, 109, 108, 112, 129, 117, 116, 113, 151, 108, 122, 129, 123, 114, 107, 107, 113, 129, 105, 111, 109, 121, 133, 119, 127, 112, 104, 111, 142, 105, 110, 105, 113, 109, 105, 124, 106, 122, 107, 125, 107, 139, 109, 110, 108, 120, 104, 117, 146, 108, 107, 121, 120, 131, 114, 116, 121, 115, 120, 119, 114, 122, 130, 116, 106, 127, 104, 99, 147, 141, 108, 111, 117, 110, 104, 90, 118, 127, 127, 109, 107, 125, 117, 116, 108, 108, 122, 108, 101, 127, 135, 116, 114, 112, 105, 103, 111, 100, 128, 115, 116, 117, 120, 128, 139, 118, 117, 123, 116, 123, 109, 107, 115, 98, 111, 113, 119, 124, 122, 99, 101, 117, 110, 110, 132, 124, 115, 106, 115, 114, 122, 116, 118, 125, 131, 121, 115, 135, 112, 98, 111, 88, 90, 120, 105, 104, 146, 97, 111, 119, 119, 112, 111, 121, 108, 98, 109, 125, 119, 122, 119, 103, 121, 123, 111, 102, 107, 125, 127, 109, 130, 136, 118, 93, 101, 117, 122, 129, 115, 115, 111, 121, 122, 122, 128, 113, 119, 113, 101, 125, 120, 124, 126, 118, 106, 126, 127, 118, 103, 120, 119, 122, 116, 123, 101, 110, 121, 100, 127, 100, 115, 110, 112, 121, 119, 129, 121, 119, 101, 121, 104, 125, 116, 113, 117, 105, 103, 118, 108, 116, 112, 123, 128, 110, 118, 110, 131, 120, 117, 117, 107, 111, 98, 126, 132, 109, 120, 119, 108, 117, 103, 125, 116, 116, 114, 130, 114, 106, 122, 134, 108, 133, 109, 106, 124, 126, 142, 118, 110, 110, 111, 97, 97, 123, 117, 114, 107, 113, 115, 131, 113, 118, 103, 111, 115, 111, 124, 111, 116, 103, 111, 115, 107, 117, 118, 101, 111, 111, 119, 126, 110, 122, 120, 123, 123, 115, 105, 112, 130, 116, 136, 107, 132, 125, 109, 106, 124, 114, 101, 113, 130, 112, 113, 113, 120, 106, 133, 129, 124, 113, 128, 125, 102, 128, 118, 116, 107, 93, 98, 122, 113, 127, 125, 107, 100, 139, 112, 121, 112, 104, 105, 137, 137, 121, 120, 111, 119, 112, 113, 129, 133, 112, 107, 113, 121, 117, 123, 124, 132, 122, 117, 116, 109, 115, 128, 128, 126, 115, 109, 104, 114, 105, 102, 103, 105, 130, 115, 125, 123, 109, 115, 124, 125, 121, 121, 129, 101, 132, 119, 135, 110, 107, 119, 102, 114, 116, 121, 112, 111, 118, 126, 124, 106, 111, 126, 134, 92, 124, 96, 106, 121, 121, 109, 110, 107, 107, 140, 114, 127, 117, 116, 120, 113, 119, 114, 113, 122, 114, 106, 113, 100, 121, 135, 116, 130, 128, 120, 114, 121, 109, 113, 109, 122, 105, 113, 104, 121, 110, 97, 109, 117, 109, 118, 102, 119, 108, 116, 108, 121, 111, 109, 112, 118, 116, 121, 110, 111, 118, 118, 123, 126, 116, 119, 121, 118, 95, 110, 101, 119, 109, 124, 124, 116, 120, 117, 84, 120, 122, 117, 133, 117, 119, 111, 112, 118, 115, 117, 116, 123, 123, 90, 113, 117, 115, 119, 167, 122, 113, 110, 111, 120, 132, 112, 114, 111, 120, 108, 124, 107, 120, 119, 114, 133, 109, 128, 112, 113, 127, 113, 111, 114, 121, 111, 118, 111, 135, 114, 119, 114, 125, 136, 137, 105, 127, 77, 105, 108, 100, 113, 110, 119, 91, 107, 117, 104, 103, 102, 121, 112, 138, 130, 117, 117, 119, 114, 117, 125, 116, 114, 118, 110, 109, 108, 128, 107, 113, 93, 125, 117, 107, 115, 109, 150, 110, 109, 117, 115, 120, 113, 119, 108, 107, 113, 118, 85, 126, 113, 102, 107, 110, 123, 110, 101, 117, 97, 112, 103, 109, 114, 113, 119, 107, 106, 117, 117, 118, 112, 115, 119, 114, 112, 124, 112, 92, 133, 113, 123, 110, 98, 117, 104, 105, 117, 107, 112, 106, 113, 113, 117, 120, 116, 121, 125, 134, 117, 120, 93, 121, 123, 122, 108, 102, 119, 117, 112, 117, 110, 109, 126, 109, 115, 108, 111, 104, 94, 113, 109, 124, 150, 108, 122, 120, 120, 113, 120, 127, 109, 163, 123, 118, 112, 117, 102, 101, 120, 159, 100, 102, 97, 114, 102, 112, 115, 107, 114, 102, 112, 116, 119, 122, 101, 112, 114, 124, 120, 109, 109, 107, 80, 118, 113, 111, 104, 107, 105, 105, 113, 125, 111, 125, 116, 126, 132, 114, 121, 120, 101, 112, 108, 115, 127, 120, 120, 109, 114, 130, 100, 127, 119, 113, 101, 103, 108, 117, 122, 119, 113, 111, 119, 107, 104, 119, 115, 115, 117, 117, 120, 123, 85, 110, 103, 101, 121, 115, 126, 65, 121, 95, 106, 114, 120, 106, 114, 96, 117, 93, 109, 125, 113, 97, 113, 116, 118, 119, 127, 107, 120, 129, 139, 110, 106, 118, 113, 113, 105, 98, 108, 122, 105, 130, 102, 118, 106, 89, 118, 111, 114, 119, 129, 146, 107, 138, 126, 126, 107, 119, 116, 107, 118, 109, 119, 94, 111, 93, 124, 117, 110, 108, 94, 115, 120, 105, 110, 110, 108, 116, 116, 124, 118, 121, 107, 124, 123, 115, 124, 116, 105, 124, 136, 130, 105, 86, 101, 120, 111, 115, 114, 106, 110, 121, 101, 110, 115, 123, 129, 100, 105, 123, 101, 116, 133, 118, 113, 105, 121, 101, 120, 111, 127, 116, 77, 114, 124, 122, 112, 114, 114, 119, 119, 98, 113, 121, 118, 125, 107, 126, 111, 107, 111, 123, 120, 107, 110, 135, 121, 106, 110, 131, 118, 123, 115, 125, 116, 116, 89, 124, 120, 116, 102, 114, 122, 98, 120, 127, 108, 111, 107, 120, 137, 120, 138, 90, 115, 126, 143, 109, 107, 118, 112, 117, 113, 105, 120, 112, 99, 116, 115, 127, 98, 109, 126, 109, 97, 107, 114, 124, 117, 128, 102, 112, 121, 112, 130, 126, 123, 105, 110, 138, 111, 103, 98, 122, 121, 106, 116, 111, 114, 121, 115, 130, 134, 127, 120, 123, 116, 106, 115, 132, 117, 110, 121, 120, 110, 123, 120, 107, 111, 136, 126, 139, 105, 115, 123, 117, 112, 102, 117, 119, 111, 112, 113, 114, 130, 110, 122, 108, 122, 108, 119, 122, 118, 114, 123, 112, 103, 121, 113, 121, 104, 104, 127, 117, 128, 113, 125, 129, 115, 113, 110, 120, 119, 107, 115, 130, 122, 109, 120, 123, 121, 117, 111, 109, 121, 112, 118, 104, 123, 109, 123, 127, 129, 125, 123, 118, 111, 118, 133, 92, 120, 103, 112, 114, 110, 112, 114, 106, 114, 122, 119, 98, 126, 110, 133, 109, 108, 103, 104, 118, 111, 114, 105, 117, 133, 122, 118, 112, 115, 121, 135, 125, 112, 113, 127, 123, 126, 115, 115, 122, 117, 126, 129, 106, 136, 138, 112, 130, 106, 131, 125, 111, 113, 143, 111, 121, 114, 117, 96, 112, 110, 118, 100, 145, 144, 124, 148, 112, 125, 136, 106, 112, 124, 116, 113, 146, 104, 123, 136, 106, 120, 127, 114, 110, 113, 126, 123, 119, 117, 108, 122, 104, 112, 128, 108, 99, 104, 131, 123, 123, 119, 114, 125, 109, 112, 114, 125, 104, 103, 106, 120, 103, 116, 111, 109, 125, 124, 120, 107, 114, 107, 115, 109, 110, 154, 116, 121, 131, 116, 111, 131, 118, 120, 115, 120, 124, 111, 114, 113, 106, 118, 104, 116, 114, 109, 111, 116, 104, 128, 129, 110, 108, 115, 107, 117, 121, 114, 107, 110, 125, 137, 121, 133, 116, 114, 122, 119, 121, 125, 130, 132, 111, 112, 98, 114, 112, 112, 129, 111, 130, 121, 105, 117, 105, 118, 132, 118, 128, 112, 113, 99, 109, 120, 121, 112, 115, 115, 129, 118, 100, 113, 113, 114, 138, 131, 113, 127, 104, 115, 125, 118, 120, 116, 109, 112, 110, 115, 113, 110, 124, 128, 115, 108, 107, 116, 124, 116, 114, 120, 132, 121, 115, 125, 128, 131, 104, 123, 102, 134, 125, 114, 98, 111, 99, 116, 131, 122, 115, 120, 126, 130, 109, 137, 104, 92, 120, 126, 122, 119, 103, 110, 140, 95, 121, 116, 117, 114, 123, 108, 125, 129, 115, 112, 138, 118, 113, 121, 117, 145, 119, 113, 113, 129, 121, 139, 115, 126, 126, 113, 123, 115, 116, 113, 125, 122, 124, 138, 101, 121, 107, 115, 132, 128, 135, 109, 111, 119, 106, 114, 132, 115, 107, 134, 109, 111, 127, 125, 107, 106, 122, 116, 113, 104, 130, 129, 123, 104, 137, 112, 136, 119, 124, 110, 115, 128, 118, 121, 132, 124, 103, 118, 114, 116, 97, 125, 118, 119, 121, 112, 114, 98, 101, 110, 125, 119, 132, 123, 106, 122, 93, 127, 135, 131, 113, 128, 111, 122, 115, 96, 105, 107, 108, 120, 106, 107, 104, 121, 127, 114, 119, 119, 120, 118, 113, 147, 126, 126, 133, 127, 125, 124, 121, 125, 114, 111, 121, 114, 119, 115, 119, 125, 112, 126, 121, 108, 117, 121, 104, 110, 109, 132, 114, 108, 113, 117, 140, 115, 103, 109, 111, 125, 111, 119, 114, 121, 112, 128, 130, 134, 129, 109, 106, 111, 137, 111, 131, 108, 118, 111, 113, 115, 107, 128, 115, 110, 114, 113, 129, 124, 104, 131, 117, 116, 101, 105, 119, 118, 124, 100, 126, 111, 117, 127, 134, 106, 112, 122, 102, 119, 105, 106, 115, 118, 113, 109, 110, 116, 107, 118, 126, 113, 112, 120, 112, 116, 119, 122, 119, 113, 99, 113, 111, 105, 120, 106, 124, 117, 113, 122, 115, 117, 107, 114, 126, 113, 112, 106, 108, 116, 120, 123, 111, 119, 101, 97, 112, 96, 124, 112, 117, 114, 119, 111, 125, 123, 110, 117, 117, 122, 121, 126, 111, 119, 112, 119, 116, 105, 109, 123, 123, 119, 119, 112, 111, 134, 130, 134, 126, 127, 122, 122, 112, 114, 116, 108, 111, 114, 107, 112, 111, 120, 130, 115, 129, 119, 110, 122, 111, 127, 124, 110, 106, 122, 114, 108, 132, 111, 114, 116, 109, 118, 111, 99, 118, 118, 131, 114, 109, 105, 114, 119, 120, 103, 105, 108, 121, 117, 106, 118, 118, 120, 119, 108, 105, 108, 113, 112, 118, 121, 128, 159, 107, 119, 125, 117, 108, 123, 106, 113, 117, 119, 110, 106, 112, 115, 123, 110, 101, 119, 115, 121, 121, 138, 112, 121, 112, 98, 125, 121, 114, 122, 119, 124, 114, 108, 109, 116, 112, 112, 103, 119, 115, 116, 125, 111, 116, 117, 113, 111, 97, 119, 133, 122, 116, 115, 106, 117, 135, 110, 120, 124, 112, 105, 110, 110, 111, 118, 106, 120, 124, 119, 106, 126, 116, 113, 126, 114, 120, 123, 110, 112, 111, 116, 114, 148, 127, 112, 133, 126, 124, 123, 124, 126, 108, 123, 119, 121, 104, 131, 116, 114, 131, 108, 116, 119, 118, 102, 118, 111, 129, 91, 120, 116, 120, 110, 111, 121, 102, 126, 121, 117, 110, 122, 127, 111, 123, 116, 102, 112, 121, 107, 114, 110, 119, 110, 115, 123, 110, 120, 114, 114, 106, 121, 117, 120, 110, 123, 130, 105, 116, 114, 114, 124, 108, 115, 107, 104, 113, 121, 121, 121, 143, 117, 99, 115, 126, 114, 116, 109, 111, 118, 110, 99, 130, 119, 112, 115, 110, 118, 129, 113, 134, 101, 115, 113, 109, 115, 117, 136, 113, 113, 113, 114, 117, 120, 106, 111, 112, 121, 116, 108, 121, 125, 114, 103, 120, 119, 142, 111, 140, 121, 131, 115, 111, 122, 126, 110, 107, 123, 109, 114, 123, 147, 116, 112, 96, 113, 115, 111, 108, 101, 137, 121, 118, 118, 118, 115, 125, 109, 120, 105, 129, 130, 100, 122, 124, 108, 123, 117, 119, 126, 113, 122, 117, 122, 111, 114, 122, 113, 122, 112, 138, 119, 114, 114, 127, 113, 116, 125, 123, 105, 110, 118, 112, 131, 124, 149, 125, 121, 113, 122, 123, 118, 119, 111, 109, 104, 114, 114, 123, 128, 130, 109, 122, 122, 109, 119, 119, 123, 118, 111, 125, 102, 104, 103, 120, 116, 115, 114, 120, 111, 108, 115, 114, 112, 121, 124, 122, 113, 115, 116, 118, 114, 125, 119, 109, 123, 113, 111, 113, 116, 111, 123, 129, 112, 115, 116, 118, 112, 115, 113, 120, 123, 107, 113, 121, 115, 120, 123, 118, 123, 118, 119, 111, 122, 113, 115, 120, 114, 115, 115, 112, 110, 124, 115, 114, 118, 123, 116, 102, 118, 95, 114, 124, 111, 116, 113, 119, 110, 111, 114, 123, 112, 118, 117, 123, 136, 118, 122, 118, 118, 112, 113, 121, 114, 129, 112, 125, 124, 131, 116, 116, 114, 112, 119, 110, 128, 119, 119, 80, 117, 110, 114, 117, 109, 121, 115, 144, 116, 116, 141, 118, 122, 103, 121, 112, 119, 109, 107, 117, 115, 111, 118, 103, 113, 113, 113, 122, 116, 111, 117, 120, 121, 107, 116, 120, 119, 118, 119, 111, 127, 135, 105, 112, 121, 123, 116, 116, 122, 117, 110, 122, 115, 116, 116, 121, 119, 115, 111, 113, 109, 118, 120, 115, 111, 115, 104, 122, 118, 117, 121, 103, 118, 117, 120, 107, 108, 111, 106, 113, 119, 112, 118, 125, 113, 115, 120, 122, 115, 119, 115, 115, 121, 115, 108, 122, 122, 115, 116, 115, 109, 115, 114, 112, 109, 113, 86, 112, 116, 120, 112, 118, 117, 116, 111, 109, 125, 118, 119, 138, 114, 109, 117, 118, 108, 122, 116, 119, 118, 121, 116, 113, 119, 92, 111, 117, 117, 111, 116, 116, 115, 119, 114, 98, 116, 114, 111, 114, 106, 114, 119, 120, 135, 123, 112, 114, 113, 117, 120, 112, 111, 117, 132, 126, 122, 122, 121, 103, 117, 120, 141, 118, 112, 117, 115, 120, 110, 116, 105, 101, 113, 121, 123, 108, 111, 127, 112, 119, 122, 110, 125, 120, 121, 123, 111, 109, 113, 115, 112, 110, 120, 121, 118, 117, 141, 121, 105, 120, 109, 119, 111, 115, 111, 114, 114, 111, 119, 103, 117, 122, 122, 109, 117, 113, 114, 114, 113, 119, 119, 112, 116, 116, 103, 116, 112, 110, 179, 112, 108, 110, 116, 111, 108, 112, 120, 126, 114, 111, 111, 122, 111, 112, 115, 116, 108, 113, 112, 121, 113, 115, 112, 129, 118, 120, 116, 112, 119, 117, 110, 129, 108, 112, 98, 112, 119, 119, 115, 111, 118, 114, 114, 120, 114, 114, 111, 109, 124, 119, 123, 117, 114, 119, 111, 111, 118, 117, 108, 129, 84, 101, 106, 109, 116, 126, 116, 122, 119, 118, 108, 117, 117, 107, 117, 105, 117, 124, 131, 107, 110, 111, 114, 118, 110, 115, 125, 114, 115, 108, 102, 108, 115, 117, 117, 115, 117, 119, 109, 108, 118, 114, 113, 104, 119, 117, 108, 118, 118, 115, 105, 121, 119, 118, 117, 122, 107, 121, 113, 112, 111, 118, 112, 129, 122, 123, 119, 112, 117, 111, 115, 114, 112, 114, 115, 123, 121, 115, 112, 117, 112, 113, 112, 122, 116, 117, 113, 121, 115, 109, 123, 98, 127, 120, 115, 119, 119, 115, 115, 113, 115, 121, 115, 126, 119, 115, 111, 124, 114, 117, 101, 131, 110, 112, 117, 114, 126, 115, 110, 119, 99, 110, 90, 124, 122, 110, 122, 111, 111, 127, 120, 118, 104, 125, 119, 122, 96, 109, 120, 111, 111, 110, 133, 115, 126, 121, 119, 113, 113, 132, 113, 118, 115, 113, 120, 116, 119, 119, 134, 117, 122, 129, 130, 116, 118, 99, 123, 107, 122, 100, 116, 113, 120, 118, 115, 119, 117, 118, 114, 120, 112, 126, 109, 124, 128, 115, 125, 115, 104, 117, 133, 118, 125, 115, 117, 121, 113, 113, 115, 115, 120, 121, 117, 108, 106, 115, 115, 109, 121, 116, 120, 113, 115, 104, 108, 124, 120, 115, 113, 100, 103, 123, 116, 104, 114, 124, 110, 122, 109, 110, 129, 107, 113, 118, 113, 133, 117, 133, 116, 116, 117, 112, 111, 111, 119, 115, 126, 115, 113, 122, 125, 120, 116, 123, 115, 125, 116, 108, 124, 108, 107, 100, 109, 112, 119, 124, 113, 122, 115, 108, 116, 111, 122, 143, 116, 109, 124, 121, 125, 117, 95, 113, 107, 129, 125, 108, 139, 114, 109, 130, 123, 118, 113, 115, 116, 111, 112, 131, 116, 119, 115, 122, 107, 111, 115, 116, 115, 110, 106, 119, 117, 107, 125, 112, 107, 112, 112, 114, 121, 117, 110, 94, 106, 111, 105, 107, 122, 117, 121, 115, 120, 123, 111, 105, 117, 114, 122, 118, 116, 121, 100, 114, 114, 111, 101, 123, 116, 117, 115, 119, 120, 127, 124, 118, 123, 117, 127, 122, 123, 108, 116, 130, 109, 125, 132, 112, 121, 126, 118, 102, 102, 120, 114, 111, 109, 97, 128, 113, 109, 106, 110, 103, 104, 126, 119, 106, 170, 116, 110, 119, 131, 114, 99, 136, 108, 122, 112, 120, 116, 103, 106, 129, 113, 129, 115, 117, 120, 111, 96, 114, 123, 112, 124, 113, 123, 118, 119, 111, 120, 133, 126, 110, 128, 120, 105, 126, 104, 111, 130, 130, 112, 135, 112, 116, 131, 117, 117, 118, 123, 111, 116, 107, 119, 108, 116, 116, 101, 100, 112, 130, 115, 112, 108, 112, 125, 110, 125, 121, 125, 108, 112, 116, 107, 116, 121, 117, 121, 113, 118, 105, 123, 114, 105, 120, 120, 126, 112, 131, 126, 112, 115, 116, 127, 122, 114, 124, 114, 123, 126, 115, 117, 102, 116, 110, 122, 120, 115, 111, 118, 114, 113, 122, 111, 118, 119, 117, 124, 127, 117, 110, 112, 116, 113, 118, 118, 121, 126, 116, 115, 120, 107, 111, 126, 108, 117, 118, 110, 103, 110, 108, 115, 125, 109, 121, 115, 107, 97, 125, 105, 109, 119, 115, 125, 103, 116, 108, 102, 121, 124, 116, 114, 119, 111, 113, 123, 125, 108, 116, 125, 103, 117, 124, 112, 119, 114, 125, 130, 104, 124, 112, 126, 120, 121, 122, 115, 132, 114, 117, 105, 120, 116, 117, 111, 121, 109, 119, 113, 113, 120, 117, 123, 125, 111, 108, 105, 116, 127, 115, 117, 107, 119, 122, 121, 113, 116, 117, 109, 111, 119, 118, 124, 109, 107, 109, 109, 117, 116, 117, 131, 118, 129, 103, 122, 122, 132, 119, 117, 112, 114, 110, 94, 113, 108, 122, 109, 111, 118, 119, 99, 112, 129, 116, 117, 137, 116, 104, 94, 117, 93, 112, 135, 121, 120, 131, 115, 106, 110, 111, 126, 118, 140, 117, 116, 103, 123, 121, 130, 117, 118, 110, 121, 134, 102, 127, 117, 116, 106, 108, 111, 112, 105, 126, 119, 104, 105, 113, 115, 105, 118, 106, 96, 104, 115, 124, 104, 109, 109, 113, 91, 112, 111, 132, 116, 130, 107, 112, 120, 94, 120, 106, 113, 110, 119, 103, 108, 113, 130, 120, 113, 118, 130, 114, 120, 115, 127, 130, 113, 128, 119, 116, 116, 115, 115, 123, 104, 112, 116, 120, 105, 97, 120, 104, 103, 109, 94, 114, 114, 106, 107, 98, 133, 122, 109, 116, 110, 107, 127, 144, 106, 90, 110, 117, 117, 136, 103, 112, 108, 119, 110, 117, 122, 98, 113, 97, 127, 112, 112, 113, 112, 139, 132, 90, 128, 117, 114, 111, 101, 106, 137, 111, 120, 142, 104, 127, 122, 108, 130, 119, 120, 108, 99, 115, 115, 123, 106, 118, 140, 110, 103, 114, 114, 112, 113, 100, 121, 113, 123, 136, 124, 105, 102, 105, 114, 111, 129, 120, 115, 109, 123, 112, 107, 118, 113, 124, 128, 122, 128, 122, 118, 121, 115, 127, 107, 124, 122, 122, 103, 119, 114, 131, 108, 107, 117, 117, 114, 120, 111, 99, 102, 106, 135, 114, 126, 113, 121, 118, 126, 119, 128, 100, 119, 134, 124, 106, 119, 124, 117, 137, 109, 99, 110, 117, 105, 146, 102, 118, 116, 127, 107, 110, 137, 115, 119, 114, 108, 124, 101, 99, 129, 116, 131, 102, 112, 113, 130, 112, 118, 114, 116, 121, 112, 129, 114, 94, 107, 97, 106, 122, 114, 119, 103, 121, 118, 121, 127, 119, 121, 113, 111, 122, 124, 123, 118, 125, 93, 128, 105, 117, 116, 128, 104, 116, 105, 107, 117, 126, 95, 103, 118, 123, 116, 96, 125, 104, 115, 93, 110, 106, 118, 131, 126, 127, 106, 110, 112, 117, 100, 111, 124, 126, 114, 114, 135, 106, 106, 128, 110, 117, 99, 128, 115, 119, 126, 112, 146, 105, 131, 120, 112, 109, 123, 96, 91, 113, 92, 121, 127, 111, 113, 107, 119, 114, 114, 108, 117, 111, 110, 125, 125, 125, 112, 106, 139, 117, 122, 116, 111, 105, 117, 108, 133, 125, 120, 116, 109, 107, 120, 120, 111, 117, 125, 111, 116, 113, 109, 114, 102, 113, 136, 125, 125, 92, 116, 107, 102, 124, 118, 127, 113, 116, 111, 120, 117, 132, 101, 118, 94, 112, 137, 122, 101, 122, 120, 117, 104, 110, 108, 100, 103, 107, 114, 116, 116, 142, 103, 89, 115, 99, 124, 100, 127, 107, 104, 103, 110, 117, 105, 113, 150, 108, 106, 123, 103, 113, 116, 124, 109, 130, 127, 130, 100, 113, 116, 108, 114, 108, 111, 129, 103, 97, 108, 113, 113, 111, 114, 122, 123, 103, 101, 116, 122, 123, 128, 113, 103, 133, 117, 128, 118, 116, 99, 106, 115, 113, 118, 125, 117, 118, 126, 126, 114, 135, 133, 110, 111, 128, 122, 126, 106, 107, 120, 121, 113, 98, 93, 108, 108, 108, 122, 105, 104, 115, 108, 121, 109, 119, 119, 118, 114, 116, 113, 111, 105, 118, 122, 115, 120, 121, 121, 119, 118, 108, 104, 115, 120, 112, 115, 107, 115, 117, 98, 125, 135, 120, 125, 117, 106, 122, 136, 107, 121, 117, 123, 111, 103, 129, 110, 112, 114, 115, 128, 128, 106, 117, 122, 118, 113, 112, 116, 117, 132, 123, 116, 118, 128, 123, 115, 109, 116, 120, 98, 114, 117, 121, 129, 118, 105, 124, 131, 126, 113, 116, 124, 124, 136, 116, 108, 117, 110, 119, 123, 124, 95, 101, 121, 129, 118, 131, 121, 123, 122, 114, 105, 115, 123, 121, 132, 138, 124, 116, 116, 110, 118, 111, 139, 115, 120, 112, 127, 109, 107, 126, 121, 132, 117, 119, 121, 116, 116, 114, 136, 128, 116, 120, 123, 114, 122, 118, 121, 118, 114, 113, 115, 108, 117, 125, 127, 104, 110, 109, 114, 141, 114, 123, 121, 122, 114, 134, 116, 126, 137, 98, 118, 112, 115, 119, 131, 117, 118, 111, 119, 118, 121, 126, 125, 120, 101, 118, 106, 111, 112, 132, 131, 116, 117, 119, 120, 106, 108, 113, 119, 117, 121, 114, 102, 114, 125, 120, 123, 114, 135, 119, 119, 118, 123, 133, 106, 120, 121, 119, 111, 116, 127, 119, 131, 124, 104, 119, 124, 113, 104, 119, 109, 113, 113, 121, 108, 119, 120, 123, 115, 128, 102, 107, 125, 127, 110, 123, 114, 108, 113, 112, 115, 112, 122, 116, 127, 133, 117, 117, 112, 115, 130, 120, 111, 116, 114, 115, 112, 126, 133, 109, 127, 122, 118, 112, 123, 105, 117, 110, 111, 114, 106, 114, 122, 106, 114, 119, 114, 126, 116, 125, 113, 120, 114, 121, 116, 120, 120, 110, 110, 113, 120, 132, 133, 115, 109, 123, 117, 136, 108, 112, 106, 105, 105, 105, 108, 123, 122, 134, 118, 120, 114, 115, 112, 116, 130, 137, 108, 120, 113, 121, 118, 119, 119, 124, 120, 116, 122, 123, 115, 124, 119, 105, 108, 110, 108, 112, 119, 111, 131, 118, 131, 113, 119, 123, 111, 121, 117, 117, 118, 122, 112, 118, 113, 132, 121, 128, 120, 111, 110, 116, 116, 113, 113, 115, 117, 116, 116, 102, 119, 129, 110, 114, 117, 122, 119, 117, 109, 123, 116, 110, 113, 132, 125, 120, 118, 128, 107, 129, 117, 116, 117, 118, 109, 104, 121, 117, 133, 125, 112, 123, 104, 113, 114, 115, 120, 123, 120, 116, 126, 117, 118, 122, 129, 127, 113, 113, 103, 114, 114, 120, 129, 120, 116, 103, 112, 125, 142, 118, 118, 110, 115, 103, 112, 115, 126, 116, 116, 130, 117, 125, 118, 121, 114, 118, 124, 119, 121, 114, 114, 116, 128, 99, 113, 120, 135, 117, 106, 108, 123, 122, 101, 117, 130, 122, 130, 117, 114, 129, 132, 114, 117, 131, 119, 111, 131, 120, 111, 107, 130, 120, 123, 110, 125, 118, 124, 115, 124, 128, 104, 93, 112, 109, 114, 107, 111, 118, 117, 106, 129, 93, 110, 119, 116, 128, 125, 127, 117, 110, 112, 139, 91, 111, 126, 116, 112, 101, 125, 119, 124, 107, 116, 124, 131, 128, 105, 117, 111, 103, 122, 117, 113, 121, 105, 127, 126, 120, 110, 107, 103, 127, 107, 132, 113, 112, 98, 105, 117, 110, 117, 134, 132, 110, 117, 115, 108, 113, 101, 105, 111, 114, 113, 99, 117, 98, 135, 112, 120, 117, 128, 107, 117, 115, 120, 103, 108, 110, 125, 121, 112, 109, 112, 111, 114, 131, 109, 108, 129, 101, 128, 114, 113, 106, 107, 134, 131, 138, 115, 130, 122, 112, 106, 120, 111, 147, 96, 122, 110, 96, 101, 108, 104, 108, 122, 130, 111, 119, 122, 116, 113, 112, 132, 102, 107, 128, 125, 120, 125, 106, 126, 109, 112, 127, 122, 115, 116, 124, 129, 109, 113, 114, 103, 102, 125, 135, 121, 150, 118, 95, 109, 102, 108, 100, 104, 121, 110, 113, 117, 114, 109, 126, 128, 118, 126, 106, 101, 116, 107, 108, 112, 114, 115, 113, 112, 118, 115, 112, 101, 114, 123, 110, 106, 136, 109, 112, 108, 119, 107, 110, 144, 104, 130, 110, 101, 96, 118, 117, 108, 120, 119, 87, 121, 96, 117, 99, 106, 124, 109, 106, 115, 112, 121, 128, 138, 106, 109, 125, 115, 117, 120, 109, 110, 121, 106, 107, 107, 143, 106, 134, 111, 104, 124, 104, 108, 104, 110, 115, 99, 114, 126, 129, 107, 110, 121, 113, 112, 123, 114, 120, 116, 119, 112, 130, 126, 121, 121, 113, 99, 126, 119, 124, 120, 124, 114, 113, 129, 125, 127, 118, 122, 124, 116, 126, 109, 141, 118, 115, 124, 111, 94, 117, 106, 124, 117, 108, 118, 114, 99, 141, 110, 123, 116, 109, 124, 116, 119, 101, 122, 110, 109, 115, 98, 131, 111, 112, 104, 125, 112, 144, 117, 101, 142, 119, 115, 128, 118, 113, 101, 114, 99, 114, 101, 138, 109, 114, 119, 105, 117, 119, 120, 117, 107, 120, 113, 109, 116, 101, 93, 100, 102, 106, 116, 154, 120, 115, 110, 114, 121, 113, 110, 115, 126, 104, 115, 127, 121, 114, 122, 117, 116, 108, 111, 116, 116, 113, 129, 110, 117, 120, 115, 114, 102, 141, 112, 108, 106, 110, 122, 112, 125, 104, 120, 111, 106, 122, 122, 125, 130, 104, 125, 109, 109, 121, 119, 111, 124, 112, 103, 119, 129, 114, 109, 126, 113, 114, 123, 133, 120, 117, 105, 105, 110, 105, 132, 97, 125, 123, 129, 127, 119, 109, 112, 111, 117, 118, 108, 124, 127, 121, 112, 121, 103, 107, 114, 112, 104, 113, 107, 114, 126, 128, 113, 112, 109, 107, 112, 123, 100, 110, 113, 114, 117, 117, 114, 119, 107, 117, 122, 103, 118, 124, 116, 107, 110, 117, 132, 116, 114, 133, 111, 118, 114, 136, 112, 115, 103, 112, 109, 123, 119, 115, 127, 106, 122, 108, 143, 115, 104, 119, 128, 98, 117, 122, 124, 113, 115, 114, 111, 112, 104, 133, 104, 109, 137, 107, 117, 115, 114, 129, 108, 101, 131, 117, 120, 104, 119, 109, 113, 104, 95, 111, 118, 111, 110, 106, 103, 125, 132, 128, 123, 101, 113, 92, 119, 111, 115, 125, 102, 125, 127, 116, 110, 130, 102, 117, 107, 130, 97, 123, 114, 125, 128, 107, 113, 109, 110, 111, 125, 97, 119, 115, 116, 117, 107, 107, 118, 128, 120, 115, 111, 118, 108, 122, 118, 113, 99, 104, 119, 118, 125, 115, 120, 123, 121, 109, 120, 108, 126, 111, 115, 110, 114, 130, 104, 108, 121, 115, 119, 108, 108, 122, 124, 114, 106, 111, 109, 103, 114, 114, 118, 112, 129, 111, 112, 136, 123, 143, 115, 121, 110, 114, 114, 125, 104, 113, 117, 127, 134, 113, 134, 111, 109, 127, 107, 121, 126, 128, 115, 106, 131, 116, 126, 111, 121, 100, 121, 106, 122, 109, 100, 132, 110, 133, 124, 105, 113, 122, 132, 101, 112, 120, 119, 117, 103, 114, 105, 114, 103, 106, 113, 113, 114, 112, 111, 121, 131, 133, 125, 124, 104, 103, 120, 126, 125, 108, 120, 120, 120, 132, 124, 122, 115, 114, 119, 129, 106, 139, 111, 110, 114, 123, 118, 107, 129, 116, 105, 117, 113, 118, 114, 121, 105, 107, 118, 133, 121, 123, 104, 136, 134, 125, 119, 109, 112, 101, 127, 139, 112, 118, 117, 122, 116, 137, 104, 109, 132, 120, 120, 115, 117, 113, 125, 119, 118, 99, 121, 107, 121, 124, 112, 114, 119, 131, 106, 133, 118, 120, 98, 109, 114, 117, 116, 113, 109, 121, 115, 124, 101, 111, 123, 132, 122, 111, 84, 112, 112, 128, 108, 119, 109, 122, 121, 106, 125, 103, 114, 135, 107, 118, 95, 128, 136, 94, 115, 127, 111, 128, 137, 104, 109, 114, 95, 119, 124, 121, 122, 111, 105, 101, 127, 115, 113, 112, 128, 123, 114, 91, 114, 112, 121, 111, 125, 111, 124, 122, 112, 98, 117, 118, 110, 139, 102, 112, 83, 107, 106, 127, 125, 124, 111, 134, 117, 102, 102, 122, 106, 119, 96, 105, 136, 112, 108, 112, 111, 84, 105, 119, 123, 117, 102, 115, 122, 109, 108, 109, 125, 103, 114, 103, 114, 121, 119, 149, 119, 118, 106, 115, 118, 110, 126, 106, 103, 100, 97, 115, 120, 139, 119, 94, 113, 116, 113, 131, 106, 115, 107, 106, 120, 115, 121, 113, 115, 114, 117, 115, 123, 106, 118, 104, 110, 106, 118, 132, 125, 96, 101, 132, 115, 129, 113, 112, 124, 123, 107, 114, 120, 120, 145, 128, 114, 119, 113, 121, 122, 113, 105, 110, 137, 109, 108, 134, 116, 110, 121, 103, 122, 109, 118, 98, 119, 117, 112, 118, 97, 117, 122, 108, 121, 109, 121, 110, 123, 108, 112, 126, 111, 120, 124, 116, 135, 119, 105, 124, 92, 97, 108, 108, 128, 126, 116, 135, 121, 117, 126, 114, 114, 123, 125, 124, 121, 115, 109, 108, 131, 98, 119, 119, 113, 105, 107, 113, 102, 123, 118, 127, 106, 111, 102, 105, 115, 130, 108, 117, 112, 126, 113, 113, 120, 108, 117, 105, 117, 115, 112, 112, 125, 112, 114, 125, 120, 107, 116, 117, 115, 127, 113, 105, 122, 118, 117, 111, 122, 115, 112, 113, 106, 133, 116, 116, 117, 119, 114, 110, 126, 124, 120, 116, 105, 113, 110, 100, 109, 125, 115, 119, 115, 112, 122, 115, 116, 121, 118, 118, 117, 132, 121, 109, 96, 120, 110, 108, 123, 134, 124, 108, 108, 112, 116, 113, 121, 123, 108, 106, 119, 122, 130, 135, 132, 115, 117, 108, 114, 127, 118, 119, 124, 123, 110, 117, 116, 108, 118, 110, 111, 98, 105, 124, 118, 125, 117, 117, 120, 115, 109, 121, 114, 109, 120, 124, 115, 105, 124, 118, 115, 124, 110, 115, 110, 126, 118, 109, 115, 123, 102, 114, 109, 120, 114, 112, 118, 114, 120, 123, 113, 130, 109, 111, 119, 120, 108, 116, 112, 115, 112, 112, 115, 122, 119, 114, 124, 119, 124, 132, 114, 121, 121, 120, 122, 129, 117, 107, 110, 124, 115, 122, 121, 117, 123, 116, 120, 123, 130, 126, 114, 120, 110, 122, 117, 118, 117, 106, 120, 123, 109, 129, 117, 106, 118, 119, 105, 123, 113, 110, 116, 111, 114, 114, 110, 135, 39, 123, 126, 118, 120, 117, 119, 121, 115, 109, 121, 115, 116, 109, 115, 123, 117, 116, 114, 111, 114, 110, 129, 111, 112, 95, 115, 125, 109, 115, 117, 101, 122, 131, 116, 108, 118, 115, 115, 116, 110, 124, 109, 114, 119, 111, 121, 120, 116, 122, 130, 121, 117, 112, 115, 111, 126, 115, 129, 118, 116, 130, 123, 129, 103, 110, 109, 102, 112, 118, 114, 124, 121, 128, 114, 122, 129, 103, 125, 118, 117, 119, 113, 112, 126, 120, 107, 113, 113, 118, 122, 122, 128, 118, 115, 119, 109, 116, 98, 111, 108, 112, 121, 122, 106, 106, 109, 126, 111, 125, 114, 114, 105, 110, 115, 121, 122, 117, 112, 101, 110, 133, 111, 120, 114, 114, 111, 116, 110, 108, 88, 120, 113, 117, 121, 118, 118, 122, 120, 115, 117, 117, 105, 113, 109, 116, 128, 126, 111, 117, 114, 132, 115, 96, 110, 85, 130, 118, 121, 121, 113, 114, 124, 111, 116, 117, 135, 114, 114, 116, 127, 126, 125, 119, 117, 129, 121, 124, 118, 119, 114, 114, 114, 118, 123, 114, 125, 105, 130, 110, 122, 125, 153, 106, 118, 116, 117, 123, 116, 111, 109, 123, 111, 115, 119, 120, 119, 113, 118, 118, 116, 124, 105, 117, 116, 120, 116, 118, 112, 117, 119, 115, 115, 111, 125, 120, 119, 121, 110, 117, 118, 114, 112, 129, 109, 105, 111, 119, 115, 113, 116, 126, 112, 107, 124, 127, 115, 114, 122, 105, 117, 122, 120, 125, 115, 114, 119, 123, 130, 112, 111, 114, 119, 137, 118, 110, 119, 114, 116, 118, 112, 126, 115, 125, 119, 116, 122, 116, 118, 119, 119, 114, 118, 124, 131, 105, 114, 129, 119, 130, 108, 116, 127, 112, 127, 110, 116, 130, 127, 109, 110, 107, 133, 91, 112, 122, 109, 110, 110, 123, 108, 125, 113, 118, 129, 111, 113, 105, 123, 120, 114, 121, 120, 116, 106, 131, 127, 107, 128, 121, 112, 124, 93, 119, 130, 118, 115, 103, 126, 118, 128, 116, 118, 128, 111, 117, 112, 125, 118, 111, 126, 98, 117, 118, 110, 110, 111, 116, 119, 119, 138, 115, 110, 123, 117, 105, 122, 103, 116, 114, 110, 108, 110, 117, 121, 108, 114, 116, 108, 114, 111, 113, 108, 127, 124, 125, 124, 120, 123, 113, 109, 117, 104, 97, 117, 119, 111, 126, 118, 113, 113, 115, 118, 107, 129, 116, 123, 124, 119, 105, 116, 111, 116, 110, 109, 109, 124, 119, 115, 96, 100, 118, 113, 110, 123, 121, 114, 129, 119, 108, 120, 107, 110, 111, 130, 131, 116, 124, 122, 106, 114, 108, 118, 116, 108, 115, 115, 127, 119, 105, 114, 119, 124, 124, 132, 129, 113, 124, 112, 110, 126, 116, 129, 116, 111, 110, 123, 123, 109, 112, 110, 120, 113, 125, 117, 107, 111, 127, 119, 112, 130, 108, 106, 120, 106, 131, 124, 114, 119, 116, 125, 123, 107, 103, 114, 97, 123, 116, 116, 123, 113, 92, 127, 121, 123, 129, 119, 109, 118, 111, 122, 122, 112, 121, 120, 109, 116, 109, 113, 120, 115, 118, 121, 123, 117, 119, 118, 113, 123, 114, 106, 123, 118, 95, 111, 116, 122, 133, 107, 108, 113, 122, 126, 102, 111, 111, 123, 112, 114, 103, 123, 117, 122, 144, 120, 117, 108, 105, 132, 118, 113, 121, 115, 113, 126, 126, 120, 107, 115, 119, 118, 106, 110, 108, 115, 126, 124, 126, 117, 114, 119, 116, 105, 116, 118, 118, 116, 117, 122, 123, 121, 120, 111, 118, 125, 124, 130, 124, 121, 111, 117, 128, 121, 117, 120, 117, 122, 106, 104, 132, 132, 120, 113, 118, 109, 120, 122, 119, 110, 118, 127, 116, 110, 110, 120, 128, 125, 100, 138, 125, 108, 115, 132, 135, 115, 113, 122, 135, 112, 133, 128, 119, 120, 122, 115, 101, 139, 119, 117, 124, 128, 128, 116, 108, 125, 115, 129, 115, 131, 102, 113, 110, 108, 126, 114, 117, 130, 117, 100, 122, 108, 116, 110, 113, 114, 118, 116, 125, 118, 115, 106, 102, 108, 125, 116, 110, 123, 119, 115, 112, 105, 112, 119, 126, 111, 114, 127, 116, 127, 114, 115, 115, 106, 113, 118, 121, 121, 121, 109, 111, 115, 111, 124, 102, 113, 120, 122, 122, 120, 121, 114, 119, 101, 137, 107, 113, 114, 108, 129, 105, 122, 113, 106, 111, 128, 121, 121, 116, 110, 121, 118, 118, 115, 106, 122, 106, 118, 107, 127, 107, 107, 122, 117, 114, 114, 126, 108, 128, 132, 109, 123, 129, 111, 120, 107, 113, 124, 101, 113, 112, 117, 112, 115, 126, 107, 119, 120, 114, 95, 104, 109, 122, 112, 111, 121, 146, 116, 114, 121, 116, 123, 121, 108, 117, 111, 119, 116, 135, 125, 115, 120, 107, 131, 126, 108, 109, 104, 113, 109, 112, 120, 114, 119, 151, 114, 98, 120, 129, 139, 119, 107, 106, 130, 110, 131, 116, 110, 152, 120, 119, 120, 128, 118, 110, 110, 114, 109, 108, 146, 128, 118, 128, 108, 112, 113, 125, 108, 120, 128, 123, 77, 108, 113, 97, 127, 122, 119, 126, 117, 119, 115, 119, 99, 119, 121, 105, 120, 116, 127, 143, 102, 111, 124, 147, 132, 132, 114, 122, 120, 130, 119, 107, 132, 111, 112, 103, 114, 127, 122, 118, 109, 118, 106, 125, 115, 116, 106, 114, 115, 113, 116, 113, 119, 134, 111, 112, 126, 106, 106, 110, 110, 125, 124, 121, 130, 122, 115, 105, 123, 113, 112, 127, 124, 122, 110, 120, 116, 115, 111, 110, 123, 162, 124, 133, 104, 118, 133, 118, 128, 116, 127, 109, 115, 112, 110, 132, 120, 142, 115, 133, 131, 137, 113, 112, 111, 118, 108, 121, 116, 113, 129, 113, 119, 137, 99, 113, 108, 128, 114, 111, 118, 155, 113, 111, 124, 122, 113, 129, 126, 123, 115, 121, 122, 121, 139, 117, 126, 111, 140, 94, 117, 127, 98, 101, 124, 122, 121, 107, 128, 113, 148, 97, 117, 100, 110, 123, 130, 84, 120, 116, 134, 129, 129, 111, 126, 134, 119, 132, 117, 126, 109, 125, 129, 127, 110, 114, 118, 107, 124, 131, 105, 110, 117, 119, 105, 120, 119, 118, 118, 126, 127, 131, 123, 115, 127, 111, 96, 71, 111, 123, 116, 113, 110, 124, 132, 126, 110, 131, 123, 104, 126, 114, 123, 114, 111, 114, 130, 114, 116, 108, 112, 116, 111, 116, 129, 112, 103, 124, 124, 106, 111, 114, 118, 111, 131, 121, 139, 116, 109, 128, 105, 104, 126, 123, 126, 111, 107, 134, 115, 118, 128, 112, 124, 118, 115, 97, 117, 127, 119, 128, 124, 117, 137, 109, 103, 123, 110, 113, 129, 120, 106, 125, 113, 123, 109, 129, 125, 128, 119, 116, 112, 115, 123, 134, 124, 115, 110, 120, 125, 121, 111, 121, 144, 122, 116, 123, 111, 124, 119, 90, 132, 102, 119, 111, 118, 112, 127, 114, 106, 113, 101, 115, 115, 104, 116, 123, 115, 148, 139, 126, 132, 156, 125, 125, 116, 122, 112, 119, 109, 116, 131, 107, 121, 115, 119, 129, 117, 111, 111, 109, 115, 102, 123, 133, 115, 140, 155, 119, 126, 110, 122, 109, 122, 121, 96, 105, 128, 126, 112, 120, 120, 124, 118, 118, 108, 121, 114, 128, 119, 108, 102, 104, 115, 98, 118, 124, 110, 122, 117, 143, 109, 127, 121, 109, 120, 107, 124, 118, 116, 147, 120, 113, 100, 116, 116, 118, 124, 120, 110, 136, 120, 111, 111, 124, 116, 130, 116, 110, 99, 122, 94, 119, 112, 112, 127, 130, 114, 110, 127, 122, 110, 126, 113, 124, 106, 115, 123, 106, 136, 120, 111, 110, 119, 113, 124, 113, 114, 117, 139, 117, 131, 108, 133, 103, 112, 109, 123, 115, 114, 127, 118, 108, 111, 110, 117, 130, 129, 119, 108, 140, 116, 103, 100, 166, 109, 107, 125, 118, 130, 125, 114, 116, 116, 107, 136, 124, 112, 134, 120, 112, 117, 80, 130, 104, 98, 92, 105, 149, 125, 104, 107, 124, 112, 131, 113, 104, 126, 119, 131, 131, 120, 124, 112, 106, 125, 110, 124, 139, 120, 125, 112, 122, 116, 120, 109, 112, 110, 119, 106, 109, 104, 116, 122, 120, 116, 138, 99, 117, 111, 121, 104, 118, 110, 117, 118, 121, 115, 118, 119, 91, 125, 95, 109, 121, 123, 106, 135, 108, 102, 126, 118, 113, 121, 116, 112, 122, 120, 118, 110, 120, 117, 125, 117, 111, 108, 107, 108, 122, 130, 117, 123, 113, 109, 118, 105, 113, 127, 102, 101, 111, 125, 120, 103, 131, 115, 112, 105, 129, 74, 140, 119, 108, 136, 97, 102, 112, 141, 112, 109, 116, 110, 115, 112, 118, 128, 122, 113, 112, 100, 114, 124, 133, 106, 117, 110, 113, 117, 117, 132, 121, 127, 121, 109, 112, 118, 114, 119, 126, 133, 112, 119, 111, 116, 126, 109, 136, 112, 108, 148, 114, 113, 137, 97, 99, 102, 119, 107, 126, 133, 105, 133, 104, 118, 104, 110, 137, 140, 111, 102, 96, 111, 97, 117, 130, 110, 108, 75, 119, 131, 97, 117, 118, 118, 125, 128, 103, 137, 120, 124, 112, 113, 155, 171, 116, 113, 116, 125, 129, 134, 125, 122, 106, 124, 114, 115, 114, 115, 128, 118, 107, 139, 123, 125, 108, 127, 133, 120, 119, 95, 124, 116, 122, 124, 121, 104, 116, 117, 109, 124, 119, 109, 109, 119, 121, 124, 107, 114, 113, 104, 101, 120, 91, 118, 147, 136, 106, 129, 118, 132, 135, 125, 113, 122, 133, 130, 132, 131, 114, 118, 109, 109, 119, 120, 121, 104, 90, 129, 118, 120, 121, 128, 108, 122, 108, 109, 107, 146, 115, 119, 113, 118, 111, 106, 123, 130, 115, 113, 121, 115, 105, 130, 111, 113, 118, 112, 121, 119, 117, 120, 106, 117, 106, 120, 135, 119, 116, 119, 125, 120, 101, 113, 123, 111, 113, 105, 125, 109, 127, 108, 110, 111, 107, 124, 123, 118, 115, 118, 100, 122, 117, 107, 121, 122, 124, 135, 110, 110, 114, 111, 118, 121, 118, 111, 111, 118, 114, 133, 123, 133, 105, 108, 121, 102, 146, 118, 108, 107, 123, 95, 111, 108, 124, 117, 121, 103, 102, 117, 121, 104, 107, 116, 114, 106, 120, 98, 122, 125, 113, 125, 121, 129, 111, 96, 116, 108, 116, 119, 96, 105, 113, 112, 115, 112, 116, 125, 123, 117, 115, 114, 144, 119, 101, 108, 106, 128, 118, 109, 112, 126, 129, 117, 106, 98, 113, 125, 105, 110, 99, 143, 116, 126, 128, 105, 125, 98, 114, 111, 112, 103, 116, 115, 125, 97, 109, 113, 112, 118, 112, 124, 122, 109, 139, 109, 91, 107, 121, 112, 118, 122, 123, 94, 115, 117, 127, 113, 137, 120, 120, 98, 122, 121, 111, 99, 99, 109, 118, 108, 128, 146, 119, 106, 115, 115, 104, 125, 121, 117, 116, 110, 121, 113, 108, 123, 130, 108, 127, 122, 108, 126, 115, 118, 118, 90, 130, 89, 116, 107, 114, 113, 113, 113, 110, 118, 105, 118, 124, 101, 102, 106, 119, 130, 127, 126, 126, 114, 122, 123, 114, 109, 114, 119, 109, 101, 113, 108, 111, 125, 115, 129, 129, 111, 118, 122, 105, 117, 117, 105, 129, 112, 126, 143, 116, 120, 92, 116, 117, 117, 133, 127, 115, 129, 117, 120, 114, 113, 111, 109, 109, 123, 106, 124, 101, 118, 110, 127, 112, 118, 109, 112, 116, 118, 121, 129, 117, 112, 135, 121, 113, 122, 118, 118, 115, 121, 113, 110, 108, 104, 130, 116, 132, 126, 113, 114, 118, 109, 110, 102, 115, 108, 117, 115, 108, 99, 123, 123, 123, 120, 113, 132, 124, 124, 121, 107, 125, 110, 99, 129, 116, 113, 106, 120, 118, 121, 113, 125, 124, 104, 125, 112, 129, 120, 115, 118, 108, 105, 111, 106, 132, 124, 115, 106, 121, 114, 110, 125, 106, 101, 115, 110, 114, 132, 115, 112, 130, 118, 115, 128, 107, 106, 127, 124, 110, 113, 105, 120, 101, 113, 117, 114, 121, 128, 114, 113, 112, 111, 120, 126, 101, 130, 111, 122, 119, 96, 120, 141, 110, 106, 123, 121, 118, 122, 108, 114, 117, 144, 108, 114, 114, 148, 140, 116, 123, 122, 110, 106, 116, 119, 117, 110, 116, 120, 105, 121, 109, 112, 106, 131, 107, 119, 106, 111, 115, 112, 125, 118, 117, 102, 117, 110, 133, 117, 125, 115, 114, 128, 126, 119, 113, 116, 112, 120, 124, 112, 115, 117, 121, 112, 114, 117, 123, 108, 99, 114, 115, 111, 120, 109, 92, 135, 113, 102, 111, 114, 119, 124, 130, 118, 113, 107, 116, 117, 120, 110, 111, 114, 123, 107, 96, 122, 109, 113, 122, 116, 113, 121, 112, 111, 121, 115, 115, 122, 112, 112, 118, 118, 112, 110, 120, 119, 103, 117, 102, 106, 113, 120, 110, 112, 109, 111, 140, 118, 98, 102, 123, 113, 130, 126, 111, 126, 117, 107, 106, 108, 107, 105, 111, 125, 113, 119, 116, 109, 125, 129, 112, 104, 111, 130, 116, 122, 119, 120, 110, 109, 118, 107, 119, 121, 101, 109, 118, 121, 113, 100, 118, 115, 117, 120, 111, 102, 114, 126, 104, 129, 104, 119, 109, 113, 117, 114, 131, 104, 119, 100, 115, 107, 113, 138, 124, 112, 124, 136, 103, 114, 104, 103, 116, 116, 114, 111, 98, 120, 116, 118, 95, 121, 131, 113, 116, 120, 117, 116, 119, 114, 124, 115, 130, 114, 105, 115, 117, 126, 103, 119, 107, 122, 127, 126, 127, 119, 121, 113, 127, 116, 107, 96, 110, 119, 130, 113, 113, 128, 108, 117, 109, 119, 98, 123, 116, 120, 116, 121, 97, 108, 106, 125, 126, 111, 112, 102, 131, 111, 116, 137, 135, 111, 95, 109, 112, 110, 99, 120, 108, 119, 112, 115, 95, 121, 131, 126, 115, 108, 104, 125, 111, 120, 105, 118, 109, 114, 107, 104, 115, 129, 117, 113, 112, 111, 107, 116, 112, 126, 107, 108, 126, 137, 126, 122, 105, 113, 134, 114, 110, 114, 120, 106, 110, 110, 122, 114, 115, 117, 117, 119, 117, 117, 128, 119, 117, 121, 121, 126, 118, 116, 117, 116, 113, 120, 113, 124, 120, 124, 116, 119, 117, 108, 112, 110, 117, 116, 116, 109, 117, 112, 131, 120, 114, 112, 115, 116, 117, 113, 111, 109, 116, 124, 112, 117, 114, 114, 128, 110, 117, 117, 122, 117, 113, 120, 116, 117, 116, 103, 122, 107, 129, 112, 120, 123, 113, 114, 136, 116, 109, 133, 116, 119, 116, 108, 119, 115, 119, 111, 119, 128, 120, 107, 121, 109, 114, 127, 112, 142, 129, 115, 114, 119, 125, 120, 115, 128, 119, 119, 118, 115, 122, 116, 112, 141, 110, 121, 107, 99, 112, 119, 108, 113, 106, 114, 116, 126, 116, 112, 118, 113, 114, 134, 124, 122, 106, 112, 112, 120, 116, 120, 109, 110, 116, 119, 116, 115, 121, 109, 119, 114, 115, 121, 112, 117, 115, 116, 112, 114, 116, 113, 126, 116, 122, 105, 117, 112, 115, 117, 110, 115, 115, 123, 123, 122, 123, 116, 120, 116, 114, 112, 127, 116, 114, 115, 114, 111, 119, 119, 116, 119, 114, 114, 111, 116, 112, 110, 122, 108, 115, 121, 119, 117, 114, 125, 114, 120, 120, 106, 111, 122, 118, 111, 122, 104, 126, 104, 116, 122, 110, 122, 124, 106, 118, 116, 119, 114, 128, 122, 114, 124, 121, 123, 119, 109, 122, 103, 116, 115, 115, 127, 119, 118, 115, 113, 115, 120, 114, 120, 116, 127, 117, 117, 114, 106, 129, 117, 118, 118, 115, 110, 118, 113, 122, 113, 115, 109, 116, 118, 110, 116, 121, 116, 117, 111, 116, 112, 118, 110, 118, 112, 109, 111, 118, 117, 104, 122, 114, 130, 94, 107, 117, 122, 108, 114, 119, 114, 116, 100, 121, 103, 122, 119, 112, 117, 113, 119, 118, 112, 114, 116, 108, 119, 115, 109, 120, 113, 113, 113, 117, 118, 116, 104, 109, 119, 107, 124, 108, 100, 114, 120, 108, 108, 119, 114, 113, 121, 112, 116, 110, 124, 128, 120, 108, 116, 115, 112, 118, 112, 115, 109, 114, 120, 122, 121, 123, 113, 113, 108, 119, 117, 114, 120, 114, 111, 118, 119, 134, 112, 115, 113, 109, 116, 117, 107, 111, 116, 113, 104, 118, 133, 114, 103, 115, 118, 116, 129, 121, 103, 112, 118, 119, 119, 117, 125, 105, 131, 119, 113, 135, 126, 115, 115, 125, 112, 117, 110, 109, 119, 126, 122, 116, 115, 114, 113, 104, 105, 108, 119, 116, 117, 122, 119, 113, 112, 117, 118, 102, 116, 113, 102, 130, 124, 110, 117, 114, 122, 105, 119, 109, 101, 117, 110, 115, 115, 142, 115, 122, 125, 115, 118, 111, 116, 114, 117, 107, 122, 123, 119, 108, 115, 108, 112, 100, 119, 111, 114, 111, 116, 125, 108, 116, 103, 116, 118, 129, 119, 124, 119, 119, 117, 131, 118, 112, 125, 111, 106, 113, 104, 126, 126, 114, 118, 118, 113, 113, 115, 108, 131, 111, 117, 119, 126, 116, 114, 120, 123, 107, 116, 120, 108, 119, 118, 115, 115, 121, 112, 115, 115, 114, 120, 131, 118, 110, 115, 116, 116, 118, 117, 120, 104, 120, 120, 107, 116, 107, 113, 109, 128, 98, 110, 121, 104, 110, 115, 115, 118, 135, 124, 118, 111, 103, 115, 114, 122, 116, 103, 107, 113, 100, 142, 118, 117, 112, 111, 111, 109, 127, 113, 111, 117, 135, 120, 110, 116, 117, 109, 117, 111, 116, 121, 100, 127, 104, 114, 129, 106, 135, 129, 121, 114, 101, 113, 121, 115, 116, 116, 117, 115, 108, 111, 116, 105, 122, 123, 124, 122, 127, 125, 114, 115, 118, 132, 135, 99, 113, 114, 116, 103, 109, 120, 116, 118, 126, 120, 125, 117, 118, 117, 106, 122, 134, 114, 119, 117, 121, 118, 114, 116, 117, 110, 124, 124, 111, 121, 121, 117, 118, 112, 114, 121, 126, 114, 121, 114, 115, 113, 119, 107, 125, 117, 107, 116, 125, 117, 106, 120, 115, 109, 121, 104, 115, 124, 108, 103, 110, 116, 103, 111, 117, 108, 117, 114, 119, 111, 120, 113, 116, 126, 116, 123, 128, 110, 113, 116, 116, 131, 112, 112, 112, 123, 113, 115, 116, 111, 113, 131, 123, 116, 112, 123, 108, 134, 114, 109, 124, 122, 124, 134, 123, 116, 121, 98, 117, 101, 113, 116, 105, 112, 102, 128, 106, 112, 113, 118, 104, 112, 118, 124, 100, 118, 122, 112, 161, 121, 117, 122, 120, 129, 117, 112, 103, 110, 106, 117, 121, 118, 112, 118, 112, 107, 113, 108, 117, 116, 108, 113, 122, 109, 119, 79, 98, 99, 114, 126, 119, 112, 114, 114, 114, 113, 118, 108, 102, 106, 121, 117, 111, 107, 114, 106, 67, 135, 121, 131, 111, 126, 111, 118, 127, 111, 114, 114, 120, 122, 122, 125, 118, 113, 128, 112, 117, 116, 112, 128, 114, 120, 116, 115, 99, 111, 118, 121, 100, 111, 117, 113, 119, 83, 111, 128, 111, 116, 107, 110, 125, 115, 141, 119, 113, 115, 108, 110, 122, 128, 125, 116, 116, 131, 93, 113, 114, 95, 114, 123, 111, 98, 118, 120, 109, 119, 117, 122, 121, 123, 107, 106, 119, 121, 115, 122, 120, 117, 121, 100, 113, 114, 105, 112, 103, 109, 118, 110, 101, 116, 120, 117, 115, 116, 107, 113, 120, 120, 110, 119, 113, 113, 123, 109, 125, 131, 116, 116, 130, 112, 110, 130, 120, 100, 112, 108, 113, 122, 110, 114, 116, 108, 114, 138, 117, 103, 109, 96, 101, 117, 113, 115, 126, 116, 122, 123, 110, 117, 115, 122, 116, 132, 121, 111, 112, 150, 126, 111, 107, 116, 115, 113, 122, 124, 113, 113, 101, 111, 120, 107, 122, 127, 113, 81, 115, 115, 124, 123, 118, 110, 130, 121, 123, 123, 110, 123, 122, 112, 116, 118, 106, 113, 111, 116, 136, 121, 114, 120, 116, 112, 112, 111, 129, 126, 107, 108, 127, 123, 133, 119, 118, 108, 108, 113, 98, 126, 116, 124, 112, 118, 134, 120, 123, 121, 104, 117, 114, 116, 70, 135, 112, 125, 118, 121, 113, 111, 106, 106, 119, 123, 113, 109, 121, 116, 100, 117, 112, 107, 114, 117, 105, 115, 114, 115, 119, 114, 98, 116, 123, 111, 110, 119, 106, 119, 108, 112, 132, 107, 109, 110, 109, 115, 111, 117, 103, 115, 114, 128, 119, 127, 121, 116, 128, 95, 146, 114, 111, 119, 116, 112, 104, 124, 94, 120, 122, 105, 114, 112, 113, 103, 121, 116, 120, 119, 91, 103, 109, 114, 114, 115, 105, 127, 142, 105, 105, 110, 127, 109, 100, 121, 114, 116, 127, 120, 134, 113, 123, 124, 126, 118, 85, 105, 123, 127, 113, 136, 108, 121, 114, 118, 106, 148, 113, 143, 109, 109, 124, 105, 117, 115, 114, 123, 108, 121, 114, 89, 115, 94, 129, 106, 109, 97, 115, 102, 118, 107, 114, 122, 107, 100, 112, 110, 113, 119, 121, 133, 122, 128, 138, 116, 117, 112, 105, 110, 114, 117, 123, 114, 127, 117, 102, 116, 121, 121, 126, 108, 90, 108, 113, 119, 115, 142, 108, 111, 117, 116, 135, 106, 106, 119, 106, 118, 110, 115, 120, 109, 119, 117, 108, 113, 122, 106, 151, 80, 117, 113, 122, 97, 105, 110, 111, 127, 104, 105, 118, 108, 103, 105, 118, 115, 110, 88, 112, 114, 114, 122, 125, 100, 106, 132, 108, 116, 117, 110, 108, 114, 105, 111, 114, 106, 123, 108, 121, 110, 112, 109, 109, 132, 122, 108, 107, 125, 118, 118, 107, 117, 113, 119, 112, 113, 124, 114, 107, 119, 93, 99, 136, 109, 125, 117, 127, 130, 114, 112, 122, 98, 119, 110, 121, 115, 110, 120, 122, 131, 119, 110, 119, 85, 129, 108, 110, 119, 107, 117, 112, 104, 121, 110, 126, 125, 121, 93, 104, 127, 111, 110, 121, 122, 114, 112, 116, 111, 112, 111, 104, 107, 116, 110, 116, 96, 97, 108, 114, 116, 113, 113, 115, 114, 126, 110, 103, 107, 100, 114, 123, 99, 121, 145, 113, 122, 112, 125, 129, 107, 114, 118, 110, 96, 96, 108, 110, 135, 122, 126, 168, 112, 108, 104, 119, 105, 111, 118, 100, 94, 119, 123, 112, 104, 112, 105, 116, 116, 110, 128, 112, 106, 123, 116, 111, 108, 111, 77, 105, 120, 105, 116, 120, 125, 101, 113, 106, 117, 76, 116, 96, 115, 110, 126, 120, 108, 118, 125, 130, 117, 114, 124, 118, 127, 109, 109, 122, 116, 120, 120, 106, 112, 119, 112, 102, 117, 100, 116, 134, 109, 112, 112, 122, 101, 101, 95, 106, 97, 125, 118, 126, 109, 116, 111, 119, 143, 103, 111, 111, 124, 98, 109, 128, 114, 111, 118, 127, 106, 106, 113, 115, 114, 115, 124, 119, 123, 121, 108, 111, 113, 113, 116, 110, 123, 134, 102, 117, 104, 124, 111, 113, 112, 114, 106, 115, 122, 92, 110, 109, 116, 111, 92, 121, 109, 126, 103, 121, 116, 112, 99, 114, 121, 115, 105, 107, 108, 134, 118, 112, 111, 108, 129, 119, 126, 115, 104, 106, 113, 97, 112, 111, 105, 110, 124, 121, 115, 156, 100, 111, 126, 108, 116, 113, 102, 114, 132, 113, 99, 105, 113, 123, 119, 114, 117, 104, 113, 116, 107, 128, 112, 120, 109, 124, 129, 99, 105, 129, 126, 107, 123, 112, 113, 89, 120, 121, 118, 120, 119, 109, 107, 107, 106, 123, 118, 106, 126, 126, 112, 129, 121, 118, 121, 111, 121, 123, 118, 119, 123, 123, 133, 108, 95, 110, 121, 114, 104, 111, 121, 101, 142, 103, 112, 116, 131, 105, 113, 114, 130, 103, 112, 121, 118, 110, 124, 126, 102, 121, 115, 124, 117, 112, 109, 122, 94, 111, 112, 109, 112, 107, 111, 111, 114, 124, 98, 115, 152, 123, 111, 115, 108, 99, 116, 108, 102, 122, 120, 107, 125, 103, 117, 123, 112, 110, 128, 105, 139, 116, 122, 118, 112, 107, 118, 108, 128, 122, 120, 115, 123, 102, 125, 126, 113, 130, 120, 110, 120, 116, 119, 128, 113, 125, 113, 120, 125, 106, 105, 111, 110, 106, 123, 105, 116, 125, 116, 103, 123, 124, 120, 114, 117, 116, 112, 115, 120, 127, 106, 120, 112, 101, 121, 100, 123, 125, 133, 119, 140, 109, 119, 127, 121, 118, 115, 122, 116, 106, 113, 113, 110, 124, 95, 112, 122, 130, 114, 109, 124, 117, 124, 113, 110, 100, 119, 119, 121, 113, 134, 118, 112, 111, 112, 118, 121, 114, 122, 111, 115, 114, 114, 99, 106, 124, 114, 115, 128, 101, 128, 120, 142, 115, 109, 106, 118, 112, 124, 119, 106, 121, 121, 105, 117, 118, 116, 116, 119, 107, 116, 119, 121, 120, 118, 129, 124, 121, 119, 108, 117, 115, 115, 131, 115, 105, 119, 131, 104, 103, 114, 112, 108, 114, 135, 115, 106, 115, 109, 110, 107, 113, 110, 112, 114, 115, 111, 128, 107, 102, 126, 156, 122, 128, 133, 111, 114, 121, 107, 132, 115, 122, 121, 122, 122, 123, 111, 109, 118, 116, 113, 93, 117, 123, 105, 120, 113, 111, 118, 117, 112, 121, 114, 112, 118, 117, 123, 123, 133, 113, 117, 116, 106, 120, 119, 118, 112, 119, 116, 118, 113, 124, 118, 120, 116, 109, 115, 113, 117, 119, 112, 90, 103, 130, 118, 124, 115, 124, 118, 111, 111, 113, 112, 115, 112, 120, 106, 121, 91, 94, 119, 112, 105, 109, 115, 116, 138, 132, 126, 113, 115, 117, 127, 118, 153, 120, 120, 109, 122, 128, 114, 104, 110, 112, 101, 117, 123, 98, 107, 113, 119, 92, 109, 116, 116, 123, 123, 111, 114, 77, 120, 121, 106, 128, 125, 106, 116, 118, 121, 120, 98, 117, 112, 111, 117, 132, 122, 134, 121, 128, 110, 108, 118, 90, 112, 113, 115, 118, 131, 102, 106, 106, 109, 115, 118, 129, 96, 96, 116, 120, 120, 121, 120, 119, 126, 115, 120, 103, 108, 122, 114, 115, 124, 122, 119, 112, 112, 119, 101, 124, 107, 111, 112, 117, 135, 122, 110, 121, 122, 116, 112, 110, 102, 105, 122, 114, 113, 107, 122, 114, 115, 107, 115, 125, 117, 119, 121, 115, 127, 119, 111, 114, 117, 114, 111, 101, 116, 111, 113, 125, 121, 118, 118, 117, 110, 128, 107, 118, 114, 116, 116, 126, 111, 124, 115, 123, 119, 127, 117, 125, 121, 109, 124, 110, 129, 115, 116, 123, 119, 112, 120, 132, 111, 104, 122, 111, 111, 129, 117, 126, 109, 105, 114, 118, 104, 113, 116, 131, 116, 130, 112, 107, 111, 114, 107, 124, 116, 118, 106, 117, 125, 117, 105, 149, 120, 119, 122, 123, 123, 121, 116, 128, 115, 118, 117, 144, 109, 136, 124, 127, 135, 121, 119, 113, 119, 107, 124, 129, 113, 106, 120, 129, 104, 107, 117, 129, 111, 116, 112, 128, 127, 122, 109, 110, 112, 109, 88, 118, 119, 117, 109, 104, 101, 127, 113, 122, 120, 138, 120, 73, 111, 106, 106, 129, 115, 120, 141, 105, 110, 117, 102, 112, 115, 119, 115, 107, 117, 132, 128, 116, 114, 114, 127, 117, 115, 129, 120, 112, 104, 102, 120, 114, 118, 115, 120, 104, 103, 100, 109, 121, 113, 123, 115, 110, 102, 116, 119, 113, 105, 114, 107, 119, 127, 115, 116, 111, 117, 119, 106, 123, 120, 104, 131, 110, 102, 123, 110, 120, 118, 123, 115, 112, 110, 117, 117, 124, 126, 111, 102, 117, 108, 101, 115, 125, 109, 135, 117, 117, 113, 109, 133, 114, 124, 113, 123, 117, 113, 112, 121, 125, 119, 135, 132, 119, 107, 116, 114, 120, 113, 117, 122, 128, 118, 105, 107, 115, 133, 110, 112, 104, 127, 117, 123, 96, 103, 110, 110, 122, 110, 123, 99, 132, 125, 132, 115, 117, 112, 111, 115, 111, 121, 116, 141, 126, 131, 118, 123, 118, 103, 110, 120, 121, 81, 115, 121, 113, 99, 113, 115, 114, 120, 118, 111, 100, 114, 119, 120, 120, 116, 124, 112, 123, 115, 110, 126, 124, 116, 119, 139, 119, 115, 122, 130, 102, 97, 116, 128, 123, 116, 114, 122, 122, 111, 118, 126, 117, 113, 109, 113, 110, 151, 113, 122, 114, 126, 132, 114, 106, 128, 120, 123, 110, 113, 122, 132, 113, 122, 120, 119, 120, 116, 131, 132, 126, 117, 114, 116, 126, 123, 103, 110, 137, 120, 119, 110, 117, 118, 109, 138, 120, 114, 105, 121, 128, 110, 124, 140, 112, 113, 119, 115, 116, 107, 134, 117, 139, 108, 134, 112, 116, 114, 106, 119, 119, 112, 118, 110, 118, 124, 112, 121, 110, 138, 116, 114, 106, 112, 115, 112, 108, 117, 114, 116, 111, 121, 126, 120, 125, 113, 122, 131, 112, 108, 127, 128, 128, 112, 111, 112, 114, 116, 116, 112, 117, 118, 108, 124, 117, 112, 110, 105, 100, 106, 111, 128, 119, 118, 119, 120, 125, 114, 115, 119, 120, 110, 118, 127, 125, 117, 116, 106, 125, 125, 119, 116, 116, 108, 124, 105, 120, 120, 116, 106, 116, 117, 121, 121, 111, 121, 119, 100, 127, 119, 113, 108, 126, 112, 108, 118, 120, 122, 109, 110, 123, 112, 129, 110, 122, 112, 106, 130, 125, 125, 118, 102, 105, 117, 115, 128, 117, 114, 124, 122, 114, 113, 132, 109, 114, 103, 105, 130, 114, 108, 99, 110, 114, 91, 128, 116, 112, 132, 125, 119, 114, 115, 125, 112, 129, 103, 107, 128, 124, 131, 103, 115, 123, 128, 128, 105, 115, 119, 105, 111, 117, 121, 116, 116, 122, 118, 117, 125, 130, 113, 115, 105, 128, 127, 118, 123, 103, 118, 115, 116, 119, 102, 115, 101, 119, 108, 93, 110, 109, 106, 106, 106, 116, 117, 143, 113, 107, 110, 110, 120, 108, 105, 118, 122, 118, 120, 116, 117, 129, 114, 106, 139, 115, 114, 114, 126, 119, 111, 130, 111, 102, 115, 117, 122, 112, 92, 104, 119, 106, 118, 124, 129, 107, 117, 105, 125, 106, 121, 113, 120, 117, 133, 127, 113, 102, 126, 117, 113, 109, 119, 108, 116, 120, 139, 132, 108, 111, 116, 131, 123, 112, 109, 125, 117, 99, 119, 124, 110, 129, 111, 115, 123, 118, 127, 113, 126, 126, 104, 125, 107, 110, 137, 119, 112, 120, 116, 109, 121, 128, 122, 122, 124, 118, 118, 110, 106, 116, 124, 121, 114, 128, 116, 125, 122, 112, 123, 118, 126, 108, 110, 121, 108, 115, 117, 119, 112, 113, 113, 101, 109, 116, 126, 120, 117, 125, 125, 133, 95, 118, 110, 147, 119, 124, 123, 115, 109, 85, 114, 133, 123, 114, 108, 125, 111, 108, 119, 108, 101, 113, 102, 111, 117, 110, 117, 112, 112, 115, 117, 112, 140, 122, 107, 100, 120, 108, 123, 125, 108, 126, 95, 128, 115, 97, 107, 102, 116, 114, 110, 117, 124, 127, 109, 124, 127, 134, 118, 126, 118, 110, 108, 124, 117, 115, 117, 136, 115, 97, 119, 109, 107, 119, 101, 122, 109, 120, 106, 112, 108, 131, 104, 102, 109, 120, 120, 117, 105, 94, 114, 100, 126, 110, 109, 130, 114, 113, 112, 109, 109, 115, 127, 118, 154, 117, 106, 125, 104, 122, 112, 116, 109, 105, 108, 116, 116, 112, 123, 110, 115, 124, 104, 108, 111, 116, 113, 110, 110, 118, 95, 121, 112, 120, 116, 110, 116, 111, 110, 132, 120, 121, 132, 112, 103, 130, 116, 117, 120, 127, 118, 116, 114, 120, 119, 106, 113, 120, 130, 112, 118, 121, 126, 103, 111, 101, 126, 119, 114, 122, 104, 136, 119, 129, 107, 113, 116, 98, 104, 116, 129, 103, 133, 127, 100, 103, 133, 115, 113, 115, 117, 118, 127, 127, 113, 118, 128, 129, 110, 114, 130, 134, 105, 106, 108, 117, 115, 123, 113, 119, 118, 117, 122, 107, 118, 108, 102, 123, 112, 110, 125, 118, 115, 108, 107, 109, 130, 112, 117, 121, 97, 121, 111, 130, 123, 120, 121, 109, 124, 112, 123, 118, 117, 107, 104, 106, 118, 133, 109, 114, 119, 119, 118, 122, 115, 127, 108, 107, 112, 123, 122, 109, 125, 123, 130, 123, 130, 105, 149, 133, 128, 119, 106, 140, 102, 112, 120, 123, 105, 113, 111, 119, 101, 114, 114, 121, 146, 120, 107, 128, 118, 117, 108, 116, 123, 121, 113, 114, 115, 124, 110, 132, 121, 102, 104, 125, 101, 112, 110, 108, 129, 126, 113, 114, 129, 110, 122, 120, 130, 104, 122, 117, 102, 115, 123, 129, 106, 117, 136, 111, 108, 120, 121, 115, 104, 113, 115, 125, 111, 105, 117, 117, 126, 140, 127, 114, 111, 114, 114, 122, 120, 111, 116, 115, 102, 126, 146, 109, 111, 122, 111, 123, 106, 112, 105, 120, 98, 113, 104, 105, 129, 114, 119, 117, 99, 103, 119, 117, 124, 112, 102, 125, 105, 111, 149, 123, 106, 128, 113, 111, 111, 122, 126, 115, 115, 114, 111, 101, 118, 112, 113, 109, 129, 102, 114, 118, 113, 109, 103, 122, 105, 114, 130, 112, 106, 115, 100, 115, 120, 94, 111, 102, 113, 111, 111, 124, 124, 125, 98, 115, 117, 112, 118, 117, 131, 119, 114, 133, 125, 120, 105, 121, 107, 126, 98, 117, 115, 100, 115, 105, 129, 112, 107, 116, 105, 108, 101, 103, 122, 124, 125, 118, 118, 116, 115, 106, 103, 116, 125, 128, 102, 117, 111, 106, 119, 108, 105, 131, 128, 106, 110, 108, 120, 129, 113, 97, 105, 122, 117, 127, 128, 120, 115, 129, 100, 95, 116, 119, 139, 97, 112, 99, 123, 116, 104, 105, 121, 116, 115, 111, 118, 113, 130, 109, 130, 104, 101, 107, 123, 108, 114, 107, 106, 112, 118, 97, 135, 118, 109, 100, 106, 103, 119, 118, 117, 109, 117, 121, 125, 120, 117, 95, 113, 119, 120, 112, 113, 108, 118, 120, 158, 111, 128, 109, 126, 107, 106, 119, 121, 117, 131, 111, 125, 112, 120, 113, 117, 130, 99, 116, 107, 122, 115, 111, 109, 113, 111, 113, 130, 121, 116, 125, 123, 125, 99, 125, 123, 111, 110, 102, 126, 94, 110, 118, 116, 115, 120, 111, 130, 113, 114, 107, 124, 123, 110, 107, 110, 98, 126, 113, 106, 128, 118, 103, 118, 121, 116, 110, 131, 109, 132, 111, 111, 109, 132, 122, 115, 108, 115, 127, 113, 109, 103, 116, 122, 117, 111, 117, 119, 114, 127, 109, 110, 129, 124, 129, 102, 118, 117, 132, 129, 119, 102, 128, 109, 123, 102, 140, 117, 120, 105, 106, 119, 136, 123, 111, 112, 118, 111, 109, 124, 116, 116, 148, 105, 124, 113, 108, 100, 125, 136, 117, 125, 112, 126, 115, 115, 100, 112, 114, 112, 115, 119, 114, 90, 115, 123, 112, 112, 115, 132, 112, 120, 127, 125, 146, 120, 126, 111, 102, 120, 119, 126, 108, 114, 105, 105, 111, 115, 108, 124, 114, 123, 108, 127, 108, 117, 114, 125, 107, 112, 140, 111, 113, 107, 135, 117, 127, 115, 126, 100, 119, 116, 134, 122, 148, 112, 129, 114, 108, 130, 110, 116, 125, 117, 118, 118, 106, 109, 138, 98, 113, 110, 125, 124, 108, 125, 111, 115, 101, 117, 120, 104, 130, 117, 124, 120, 97, 134, 115, 113, 115, 110, 122, 113, 135, 114, 100, 105, 127, 114, 118, 108, 97, 124, 134, 124, 118, 114, 119, 121, 105, 125, 97, 112, 107, 117, 116, 129, 127, 99, 134, 116, 107, 123, 126, 113, 123, 113, 109, 114, 102, 129, 134, 135, 115, 117, 113, 126, 117, 116, 111, 112, 131, 105, 102, 114, 117, 119, 118, 125, 127, 113, 109, 117, 123, 117, 113, 126, 111, 119, 108, 107, 117, 116, 127, 111, 111, 113, 114, 116, 120, 110, 121, 121, 102, 117, 112, 135, 109, 124, 139, 117, 107, 119, 118, 118, 110, 110, 114, 100, 116, 115, 137, 125, 106, 113, 129, 118, 129, 112, 114, 126, 91, 121, 115, 111, 109, 103, 104, 128, 120, 109, 117, 114, 115, 122, 116, 105, 105, 111, 119, 119, 116, 120, 108, 111, 120, 113, 113, 116, 117, 132, 126, 114, 123, 127, 117, 106, 117, 110, 112, 117, 108, 114, 110, 122, 100, 107, 113, 115, 114, 108, 106, 147, 115, 120, 115, 108, 117, 135, 114, 119, 125, 120, 117, 121, 105, 115, 111, 94, 88, 98, 101, 116, 129, 122, 94, 126, 121, 113, 115, 112, 120, 108, 104, 108, 85, 114, 129, 133, 109, 121, 117, 118, 110, 121, 116, 121, 123, 101, 108, 122, 119, 127, 117, 109, 120, 136, 117, 112, 101, 113, 133, 107, 132, 122, 119, 125, 106, 111, 114, 115, 120, 124, 111, 107, 104, 112, 114, 113, 113, 113, 120, 113, 117, 116, 111, 124, 117, 114, 116, 107, 137, 98, 107, 115, 128, 118, 102, 117, 114, 115, 111, 112, 111, 104, 113, 113, 125, 103, 120, 119, 125, 114, 112, 99, 111, 119, 129, 119, 108, 112, 114, 96, 110, 121, 116, 108, 119, 116, 114, 129, 115, 102, 100, 130, 114, 120, 98, 115, 108, 128, 109, 101, 123, 112, 116, 123, 113, 115, 128, 121, 115, 112, 122, 109, 115, 109, 115, 148, 114, 107, 122, 134, 118, 122, 130, 113, 108, 116, 132, 120, 130, 115, 112, 123, 110, 90, 108, 119, 117, 123, 106, 110, 107, 108, 97, 115, 114, 116, 114, 118, 124, 116, 96, 106, 121, 109, 119, 118, 112, 119, 117, 97, 112, 118, 120, 112, 104, 116, 121, 114, 101, 107, 134, 112, 113, 109, 118, 126, 104, 115, 102, 125, 110, 116, 122, 113, 109, 119, 101, 109, 130, 107, 120, 112, 128, 122, 124, 100, 111, 138, 110, 112, 120, 115, 115, 102, 109, 112, 114, 103, 110, 121, 121, 121, 125, 124, 120, 129, 120, 115, 119, 123, 124, 125, 119, 109, 107, 98, 119, 119, 114, 105, 117, 123, 112, 112, 112, 107, 121, 128, 122, 115, 118, 130, 112, 112, 108, 118, 114, 129, 124, 117, 131, 116, 122, 124, 115, 109, 108, 116, 119, 139, 112, 101, 116, 131, 111, 121, 116, 116, 103, 111, 113, 122, 124, 109, 129, 131, 118, 113, 108, 95, 109, 112, 118, 115, 109, 118, 109, 116, 115, 125, 113, 106, 103, 107, 120, 108, 118, 128, 92, 111, 119, 105, 126, 135, 110, 118, 107, 115, 119, 127, 114, 98, 109, 120, 130, 108, 116, 121, 120, 107, 146, 116, 116, 106, 80, 115, 122, 129, 117, 109, 113, 113, 109, 109, 113, 115, 122, 117, 111, 118, 109, 112, 126, 116, 113, 123, 115, 126, 109, 119, 136, 100, 115, 124, 129, 119, 112, 110, 126, 106, 112, 111, 131, 113, 109, 127, 122, 104, 108, 121, 111, 115, 112, 113, 121, 106, 103, 120, 131, 156, 116, 118, 111, 116, 107, 107, 117, 116, 109, 119, 130, 109, 117, 118, 133, 118, 121, 126, 104, 121, 117, 124, 116, 115, 123, 113, 114, 106, 114, 126, 116, 120, 113, 124, 119, 134, 116, 115, 127, 129, 107, 113, 122, 110, 133, 114, 119, 129, 109, 110, 111, 120, 116, 124, 114, 122, 105, 136, 96, 110, 117, 124, 111, 126, 126, 108, 114, 119, 112, 123, 113, 107, 123, 94, 114, 116, 111, 105, 116, 119, 103, 118, 94, 112, 118, 116, 113, 118, 110, 119, 118, 112, 111, 122, 115, 128, 111, 132, 111, 110, 115, 117, 130, 108, 112, 113, 105, 109, 125, 112, 99, 101, 111, 127, 125, 113, 123, 115, 101, 113, 122, 108, 118, 123, 111, 111, 115, 127, 117, 114, 120, 126, 121, 120, 95, 140, 117, 120, 124, 111, 118, 116, 107, 143, 114, 127, 107, 125, 102, 119, 99, 108, 113, 127, 113, 116, 113, 121, 111, 99, 120, 112, 97, 117, 96, 107, 120, 106, 112, 139, 104, 108, 114, 124, 96, 128, 113, 109, 94, 119, 128, 116, 117, 117, 118, 118, 101, 123, 111, 109, 118, 148, 94, 121, 105, 126, 125, 120, 85, 112, 119, 118, 117, 112, 108, 121, 125, 114, 105, 106, 105, 117, 111, 115, 122, 115, 122, 102, 107, 112, 114, 124, 114, 116, 115, 115, 121, 122, 113, 119, 118, 112, 112, 120, 121, 120, 100, 118, 116, 119, 109, 118, 110, 125, 115, 115, 127, 103, 104, 126, 110, 118, 113, 115, 111, 135, 112, 128, 125, 113, 130, 113, 117, 107, 142, 105, 134, 127, 112, 114, 105, 123, 125, 116, 121, 118, 115, 117, 110, 139, 116, 113, 114, 118, 109, 117, 120, 109, 127, 110, 114, 114, 116, 115, 105, 111, 110, 119, 111, 113, 119, 115, 115, 115, 106, 103, 111, 129, 120, 117, 109, 117, 115, 127, 112, 109, 109, 110, 114, 96, 107, 107, 112, 117, 119, 119, 111, 116, 116, 142, 109, 127, 119, 101, 125, 123, 102, 124, 101, 120, 110, 113, 109, 107, 105, 119, 121, 120, 117, 123, 126, 108, 135, 119, 108, 111, 113, 118, 120, 106, 114, 112, 67, 103, 112, 112, 118, 122, 115, 112, 114, 120, 124, 114, 112, 128, 108, 121, 123, 100, 121, 118, 111, 111, 102, 121, 125, 107, 115, 125, 110, 124, 106, 124, 132, 115, 132, 116, 116, 118, 94, 140, 121, 126, 107, 122, 117, 115, 109, 117, 107, 118, 119, 111, 128, 113, 120, 105, 130, 124, 132, 121, 82, 120, 88, 119, 108, 113, 119, 112, 91, 107, 102, 122, 135, 100, 110, 120, 134, 117, 104, 114, 115, 114, 108, 102, 111, 128, 120, 137, 134, 119, 113, 92, 105, 133, 109, 129, 109, 120, 105, 121, 107, 110, 109, 121, 110, 117, 109, 104, 112, 112, 108, 117, 118, 111, 97, 117, 119, 118, 100, 128, 109, 119, 106, 119, 92, 118, 117, 114, 118, 121, 123, 107, 112, 97, 117, 109, 121, 110, 111, 126, 109, 121, 120, 111, 118, 115, 117, 123, 125, 111, 123, 118, 122, 114, 125, 124, 122, 107, 120, 110, 126, 112, 108, 108, 120, 118, 116, 123, 111, 111, 114, 125, 126, 121, 125, 108, 102, 114, 118, 113, 121, 114, 111, 120, 110, 122, 105, 106, 115, 110, 109, 115, 112, 115, 122, 104, 115, 115, 119, 117, 113, 111, 114, 105, 116, 113, 114, 112, 116, 119, 121, 117, 104, 112, 122, 121, 116, 123, 115, 113, 110, 120, 122, 109, 118, 113, 115, 123, 127, 120, 118, 107, 118, 111, 107, 124, 110, 112, 113, 107, 113, 111, 119, 114, 115, 118, 121, 105, 110, 110, 114, 108, 108, 125, 113, 105, 107, 105, 120, 112, 115, 118, 123, 109, 114, 123, 108, 116, 120, 121, 135, 108, 115, 117, 125, 117, 112, 119, 126, 128, 121, 116, 121, 114, 116, 116, 116, 117, 121, 111, 118, 124, 114, 123, 123, 111, 121, 126, 118, 115, 103, 124, 111, 103, 119, 107, 126, 121, 128, 120, 115, 128, 127, 116, 107, 115, 116, 114, 124, 107, 125, 123, 129, 122, 109, 121, 115, 117, 121, 119, 123, 117, 121, 117, 119, 123, 121, 119, 103, 117, 112, 110, 127, 106, 115, 109, 118, 117, 117, 130, 122, 116, 119, 116, 113, 117, 111, 110, 95, 122, 111, 103, 116, 103, 116, 114, 99, 119, 127, 115, 111, 125, 116, 123, 132, 118, 114, 113, 122, 122, 107, 109, 119, 123, 111, 118, 102, 115, 119, 118, 121, 112, 114, 117, 122, 120, 115, 123, 116, 112, 111, 97, 120, 120, 120, 117, 140, 100, 119, 111, 118, 149, 130, 124, 112, 119, 116, 121, 114, 119, 117, 118, 123, 109, 119, 115, 128, 118, 113, 115, 111, 109, 116, 105, 116, 121, 108, 116, 109, 128, 118, 116, 122, 114, 124, 119, 114, 116, 111, 122, 124, 118, 125, 119, 123, 118, 116, 124, 110, 111, 126, 119, 117, 117, 122, 107, 104, 110, 118, 114, 124, 107, 130, 117, 111, 120, 115, 120, 114, 116, 116, 113, 110, 132, 114, 113, 110, 114, 116, 105, 109, 112, 106, 117, 110, 110, 121, 118, 115, 118, 117, 98, 121, 124, 114, 105, 117, 119, 128, 116, 116, 102, 122, 117, 117, 113, 118, 109, 120, 111, 114, 115, 130, 126, 107, 115, 118, 126, 107, 117, 116, 125, 116, 116, 114, 120, 107, 93, 108, 114, 126, 117, 18, 114, 117, 113, 122, 116, 116, 113, 112, 111, 121, 127, 109, 110, 115, 107, 113, 117, 118, 104, 122, 119, 128, 120, 122, 113, 120, 117, 111, 112, 117, 127, 110, 116, 118, 102, 117, 118, 115, 124, 122, 118, 124, 120, 114, 130, 116, 111, 116, 112, 112, 122, 110, 117, 122, 114, 117, 110, 111, 112, 111, 123, 120, 128, 113, 117, 112, 116, 126, 117, 118, 121, 113, 115, 112, 114, 113, 114, 112, 119, 116, 118, 128, 109, 129, 111, 110, 117, 111, 114, 120, 120, 112, 116, 124, 120, 108, 115, 112, 110, 110, 113, 123, 120, 123, 115, 102, 130, 114, 122, 111, 115, 113, 114, 119, 118, 116, 116, 114, 110, 112, 120, 127, 114, 116, 117, 109, 116, 123, 113, 115, 112, 114, 113, 110, 124, 119, 116, 115, 113, 115, 116, 110, 119, 111, 125, 115, 119, 116, 119, 112, 118, 133, 111, 118, 123, 119, 118, 113, 110, 111, 112, 116, 116, 121, 120, 117, 119, 119, 113, 115, 114, 117, 115, 117, 109, 107, 119, 117, 114, 114, 118, 118, 112, 117, 118, 112, 119, 112, 121, 107, 119, 117, 115, 110, 144, 114, 117, 111, 118, 118, 112, 118, 123, 110, 118, 117, 116, 114, 117, 117, 117, 114, 117, 113, 111, 119, 126, 113, 121, 101, 119, 107, 108, 107, 115, 116, 117, 113, 143, 117, 116, 119, 116, 110, 112, 114, 116, 114, 121, 118, 114, 118, 113, 123, 115, 116, 108, 124, 113, 118, 117, 116, 114, 113, 114, 114, 108, 120, 124, 134, 122, 115, 110, 124, 119, 111, 117, 123, 120, 128, 123, 119, 117, 112, 122, 112, 113, 117, 111, 116, 114, 119, 118, 110, 117, 111, 115, 118, 117, 121, 116, 127, 118, 112, 112, 110, 118, 116, 111, 113, 118, 111, 118, 112, 119, 122, 119, 108, 119, 116, 113, 121, 120, 118, 119, 132, 114, 121, 114, 123, 114, 104, 106, 118, 112, 117, 117, 111, 116, 131, 128, 118, 115, 117, 120, 112, 124, 108, 122, 117, 110, 118, 111, 117, 118, 123, 119, 118, 119, 112, 113, 117, 114, 121, 112, 115, 115, 113, 83, 121, 120, 116, 116, 90, 118, 114, 118, 110, 115, 118, 124, 115, 109, 120, 120, 119, 111, 113, 114, 117, 118, 117, 114, 111, 119, 126, 117, 115, 110, 123, 117, 118, 114, 116, 117, 117, 115, 118, 110, 117, 118, 101, 124, 116, 113, 116, 115, 116, 123, 113, 112, 118, 117, 112, 116, 120, 113, 111, 118, 109, 105, 117, 112, 120, 117, 86, 117, 117, 115, 113, 112, 114, 111, 118, 116, 115, 116, 118, 118, 116, 118, 114, 114, 120, 115, 116, 111, 115, 120, 121, 113, 111, 117, 114, 112, 126, 122, 114, 114, 117, 104, 115, 94, 112, 115, 120, 115, 115, 112, 113, 106, 116, 112, 120, 116, 119, 114, 116, 115, 113, 112, 125, 112, 119, 115, 115, 119, 122, 114, 121, 114, 123, 111, 117, 121, 124, 126, 114, 118, 117, 114, 118, 118, 126, 115, 111, 116, 114, 110, 122, 98, 114, 114, 122, 129, 121, 117, 116, 121, 111, 114, 119, 112, 115, 117, 110, 118, 114, 120, 118, 121, 110, 114, 115, 113, 119, 117, 112, 113, 119, 120, 126, 116, 119, 117, 111, 113, 120, 114, 121, 118, 114, 118, 115, 114, 115, 119, 115, 120, 116, 113, 120, 117, 114, 122, 109, 111, 112, 112, 113, 117, 115, 116, 119, 120, 123, 115, 118, 112, 118, 117, 119, 120, 111, 119, 120, 118, 108, 120, 112, 117, 113, 113, 108, 111, 120, 118, 115, 111, 117, 122, 126, 117, 116, 114, 113, 117, 115, 116, 117, 117, 104, 111, 110, 115, 114, 116, 119, 105, 107, 114, 110, 134, 124, 119, 136, 133, 120, 128, 120, 113, 128, 122, 116, 130, 111, 104, 107, 107, 104, 120, 99, 104, 101, 109, 107, 123, 121, 118, 109, 117, 128, 112, 115, 111, 113, 117, 93, 110, 127, 129, 117, 98, 111, 124, 119, 110, 113, 121, 106, 116, 114, 113, 123, 114, 95, 140, 118, 112, 118, 124, 124, 123, 105, 116, 121, 112, 112, 111, 109, 121, 119, 109, 118, 122, 104, 117, 115, 107, 118, 121, 111, 114, 115, 125, 117, 115, 106, 116, 111, 115, 118, 124, 139, 127, 126, 108, 110, 96, 112, 115, 107, 114, 112, 116, 119, 111, 116, 108, 127, 111, 112, 126, 124, 122, 108, 109, 95, 131, 113, 114, 118, 109, 121, 110, 121, 117, 124, 106, 115, 120, 123, 108, 117, 118, 124, 123, 123, 116, 117, 132, 114, 119, 126, 105, 115, 88, 97, 104, 113, 122, 124, 125, 115, 104, 79, 117, 114, 125, 108, 122, 108, 109, 99, 110, 118, 110, 103, 109, 111, 114, 116, 106, 107, 104, 128, 119, 131, 111, 120, 119, 115, 112, 112, 113, 131, 116, 118, 115, 106, 125, 127, 97, 106, 115, 107, 115, 118, 112, 118, 131, 126, 106, 108, 110, 110, 118, 127, 130, 139, 113, 103, 119, 116, 100, 119, 114, 114, 104, 118, 112, 117, 103, 109, 115, 115, 112, 123, 117, 116, 129, 106, 110, 116, 110, 111, 109, 122, 128, 116, 124, 114, 104, 104, 110, 114, 111, 92, 109, 120, 120, 111, 123, 118, 112, 107, 125, 106, 124, 134, 116, 105, 109, 130, 109, 117, 116, 121, 117, 123, 108, 96, 107, 107, 108, 101, 116, 121, 117, 115, 116, 114, 105, 114, 119, 114, 122, 121, 117, 131, 122, 115, 111, 136, 121, 114, 126, 117, 112, 108, 111, 122, 118, 127, 104, 126, 106, 113, 116, 131, 132, 112, 118, 120, 112, 116, 122, 118, 104, 111, 121, 120, 100, 121, 114, 111, 107, 129, 113, 103, 111, 109, 113, 104, 114, 109, 116, 107, 125, 107, 104, 118, 115, 115, 105, 119, 116, 105, 118, 114, 114, 106, 115, 101, 130, 114, 114, 113, 148, 122, 108, 113, 117, 120, 121, 117, 109, 127, 133, 111, 125, 114, 112, 108, 118, 133, 112, 99, 115, 136, 120, 127, 108, 129, 126, 115, 122, 106, 107, 119, 129, 122, 115, 115, 116, 99, 116, 118, 117, 101, 122, 105, 131, 110, 113, 91, 115, 117, 122, 111, 107, 125, 109, 117, 114, 105, 114, 135, 107, 117, 103, 110, 119, 120, 108, 116, 110, 163, 125, 113, 110, 110, 105, 139, 118, 123, 132, 122, 125, 130, 114, 111, 118, 114, 96, 107, 126, 109, 114, 109, 108, 124, 113, 103, 119, 136, 119, 119, 122, 120, 103, 117, 109, 115, 101, 129, 109, 108, 96, 117, 120, 131, 113, 115, 112, 111, 111, 107, 106, 114, 117, 124, 110, 118, 118, 126, 121, 103, 106, 115, 125, 104, 109, 116, 134, 119, 108, 123, 115, 105, 112, 124, 141, 103, 120, 101, 113, 105, 104, 124, 120, 125, 120, 108, 103, 108, 116, 124, 112, 129, 106, 98, 99, 115, 119, 118, 113, 107, 107, 109, 109, 117, 121, 140, 132, 108, 112, 115, 113, 108, 117, 124, 115, 112, 116, 124, 116, 116, 113, 112, 111, 110, 113, 124, 121, 111, 121, 123, 123, 115, 123, 117, 100, 132, 107, 123, 119, 135, 103, 110, 117, 111, 112, 103, 127, 126, 121, 110, 89, 125, 120, 117, 113, 110, 112, 107, 106, 132, 114, 114, 129, 118, 120, 119, 114, 105, 114, 115, 121, 116, 123, 104, 110, 107, 104, 111, 117, 107, 118, 117, 130, 124, 107, 118, 108, 121, 122, 124, 123, 112, 98, 111, 116, 110, 121, 111, 116, 106, 111, 106, 117, 135, 117, 118, 114, 116, 109, 118, 114, 121, 130, 123, 124, 113, 140, 111, 112, 117, 126, 117, 112, 118, 125, 110, 123, 114, 117, 118, 117, 134, 132, 105, 119, 118, 119, 146, 112, 122, 120, 128, 114, 110, 121, 120, 116, 117, 124, 117, 107, 124, 114, 116, 102, 123, 115, 116, 130, 113, 106, 117, 117, 116, 120, 115, 116, 112, 113, 116, 118, 118, 128, 108, 110, 111, 112, 112, 112, 109, 126, 135, 120, 130, 122, 100, 115, 119, 126, 123, 111, 122, 118, 126, 115, 115, 116, 89, 104, 113, 109, 125, 114, 109, 117, 122, 115, 141, 131, 121, 116, 101, 123, 106, 112, 126, 119, 112, 109, 117, 124, 103, 114, 125, 115, 108, 122, 120, 111, 117, 119, 101, 115, 121, 119, 102, 92, 114, 119, 118, 116, 121, 117, 126, 104, 111, 121, 113, 116, 114, 127, 121, 111, 121, 111, 116, 109, 108, 118, 132, 117, 117, 120, 119, 114, 113, 126, 110, 106, 117, 123, 119, 115, 101, 122, 127, 116, 128, 110, 127, 114, 114, 117, 123, 121, 117, 109, 106, 118, 126, 121, 111, 120, 123, 120, 118, 90, 125, 113, 122, 132, 119, 114, 123, 121, 111, 123, 119, 102, 114, 119, 117, 112, 125, 104, 115, 112, 121, 137, 123, 122, 127, 123, 116, 127, 114, 110, 102, 124, 112, 129, 114, 109, 140, 109, 119, 120, 149, 108, 113, 114, 115, 101, 111, 111, 103, 113, 114, 118, 98, 112, 121, 105, 116, 106, 119, 127, 122, 125, 115, 110, 123, 159, 105, 124, 109, 105, 104, 124, 114, 112, 124, 112, 116, 125, 113, 122, 113, 123, 116, 122, 122, 119, 111, 109, 116, 103, 113, 123, 125, 90, 123, 114, 113, 124, 122, 116, 124, 115, 111, 114, 110, 118, 110, 110, 120, 121, 119, 103, 114, 120, 106, 117, 115, 121, 109, 117, 113, 119, 126, 103, 133, 110, 123, 126, 123, 117, 120, 120, 118, 129, 108, 118, 123, 117, 114, 110, 124, 135, 119, 111, 123, 102, 115, 113, 120, 116, 115, 112, 129, 115, 119, 104, 118, 121, 123, 108, 114, 116, 109, 111, 98, 119, 120, 108, 112, 117, 106, 107, 125, 116, 124, 120, 119, 110, 114, 114, 104, 111, 117, 125, 109, 108, 126, 108, 107, 148, 116, 115, 124, 109, 112, 114, 139, 90, 124, 130, 106, 114, 113, 138, 106, 116, 114, 115, 107, 121, 118, 120, 113, 126, 115, 105, 108, 109, 158, 115, 117, 111, 108, 115, 122, 141, 118, 120, 118, 69, 102, 117, 117, 107, 117, 118, 105, 119, 123, 122, 119, 119, 100, 114, 124, 113, 107, 114, 120, 130, 110, 116, 115, 115, 111, 117, 94, 113, 118, 121, 115, 122, 123, 109, 131, 111, 120, 127, 119, 115, 120, 117, 127, 111, 109, 121, 94, 127, 112, 102, 103, 121, 103, 119, 117, 130, 118, 126, 120, 122, 120, 115, 125, 120, 119, 127, 119, 116, 116, 113, 130, 123, 116, 114, 121, 119, 120, 125, 118, 107, 111, 123, 122, 108, 113, 124, 125, 128, 151, 134, 107, 117, 106, 101, 79, 113, 119, 124, 117, 121, 121, 119, 112, 111, 134, 119, 106, 101, 117, 106, 112, 119, 119, 108, 129, 121, 109, 109, 101, 118, 110, 138, 123, 107, 104, 121, 112, 117, 149, 120, 127, 121, 117, 123, 105, 95, 117, 102, 93, 118, 113, 117, 120, 117, 126, 117, 132, 115, 109, 117, 124, 122, 125, 129, 108, 118, 109, 101, 119, 126, 117, 126, 118, 116, 99, 128, 127, 109, 117, 117, 114, 106, 110, 109, 126, 129, 124, 125, 115, 128, 115, 119, 121, 104, 123, 104, 105, 129, 110, 120, 115, 118, 116, 109, 119, 115, 116, 121, 112, 117, 114, 149, 120, 109, 108, 129, 127, 117, 124, 117, 109, 125, 120, 107, 144, 108, 113, 126, 126, 137, 105, 113, 115, 111, 96, 129, 122, 111, 119, 119, 132, 125, 119, 116, 104, 123, 123, 120, 124, 117, 121, 121, 115, 109, 112, 86, 125, 108, 117, 106, 124, 127, 118, 122, 118, 128, 114, 122, 117, 129, 116, 111, 113, 107, 105, 116, 129, 115, 121, 127, 114, 163, 132, 111, 107, 129, 107, 113, 115, 115, 110, 106, 114, 113, 111, 114, 130, 104, 123, 127, 122, 117, 113, 112, 111, 112, 120, 103, 112, 127, 107, 116, 121, 113, 101, 118, 118, 128, 137, 93, 136, 125, 117, 102, 99, 112, 112, 109, 121, 123, 115, 152, 120, 119, 112, 109, 109, 104, 125, 129, 120, 130, 115, 92, 117, 121, 107, 108, 103, 111, 119, 105, 114, 116, 103, 122, 118, 115, 116, 114, 136, 116, 106, 137, 118, 122, 118, 107, 121, 115, 142, 130, 114, 118, 116, 111, 118, 116, 105, 121, 106, 106, 105, 113, 113, 128, 144, 119, 116, 112, 108, 127, 122, 115, 93, 119, 126, 134, 109, 116, 125, 118, 116, 106, 122, 122, 130, 122, 109, 110, 114, 122, 114, 118, 111, 118, 118, 112, 110, 115, 110, 107, 114, 142, 91, 126, 115, 122, 126, 111, 118, 121, 117, 102, 118, 115, 115, 106, 124, 118, 129, 119, 119, 109, 114, 118, 128, 104, 110, 109, 118, 118, 106, 122, 111, 113, 112, 117, 113, 112, 116, 124, 122, 113, 119, 122, 120, 118, 120, 118, 116, 128, 127, 105, 109, 124, 126, 118, 131, 115, 130, 113, 114, 111, 120, 110, 109, 124, 111, 108, 124, 119, 99, 114, 107, 113, 122, 108, 130, 172, 116, 113, 127, 110, 110, 105, 109, 120, 121, 104, 125, 106, 133, 117, 105, 111, 101, 119, 126, 110, 99, 113, 122, 114, 101, 118, 126, 122, 118, 107, 108, 104, 107, 100, 121, 125, 92, 121, 114, 127, 115, 98, 112, 112, 112, 123, 118, 119, 110, 120, 100, 123, 131, 123, 139, 121, 120, 129, 122, 102, 113, 107, 107, 108, 102, 109, 116, 124, 128, 92, 109, 124, 129, 111, 102, 108, 117, 109, 117, 108, 110, 119, 101, 109, 125, 103, 114, 118, 134, 112, 101, 123, 102, 119, 131, 120, 125, 119, 144, 127, 113, 108, 119, 141, 106, 123, 108, 88, 124, 112, 118, 128, 109, 113, 108, 111, 122, 119, 114, 117, 119, 110, 116, 130, 92, 111, 108, 114, 134, 138, 135, 125, 115, 125, 100, 116, 121, 110, 129, 131, 128, 113, 112, 117, 123, 114, 131, 125, 123, 102, 124, 112, 109, 117, 123, 119, 120, 96, 135, 118, 108, 105, 104, 112, 115, 81, 112, 95, 105, 113, 105, 107, 89, 107, 106, 119, 103, 113, 113, 108, 123, 112, 115, 124, 136, 125, 121, 127, 117, 114, 115, 111, 165, 107, 116, 121, 113, 118, 117, 152, 108, 117, 107, 111, 109, 109, 115, 113, 109, 120, 115, 115, 119, 125, 134, 119, 121, 110, 117, 102, 127, 117, 115, 111, 145, 119, 104, 102, 98, 111, 108, 110, 120, 101, 107, 109, 119, 110, 100, 98, 122, 122, 122, 133, 120, 99, 118, 130, 122, 118, 114, 113, 120, 123, 123, 112, 105, 117, 115, 118, 110, 116, 116, 112, 125, 123, 123, 104, 120, 137, 129, 99, 110, 115, 103, 113, 122, 128, 128, 124, 119, 120, 100, 118, 126, 126, 128, 113, 110, 95, 107, 121, 123, 121, 102, 110, 130, 107, 120, 119, 118, 115, 120, 111, 149, 117, 128, 108, 122, 113, 116, 118, 126, 104, 117, 116, 118, 129, 123, 108, 122, 130, 116, 114, 114, 130, 110, 122, 125, 114, 113, 112, 109, 106, 109, 136, 118, 102, 124, 120, 120, 92, 134, 122, 104, 121, 120, 107, 107, 114, 103, 126, 102, 135, 108, 119, 108, 115, 129, 119, 117, 128, 122, 116, 120, 108, 123, 123, 121, 109, 113, 124, 119, 123, 123, 95, 122, 113, 117, 121, 103, 116, 108, 102, 113, 104, 120, 122, 115, 110, 113, 111, 116, 118, 115, 119, 111, 124, 115, 98, 122, 120, 133, 123, 131, 106, 125, 118, 115, 106, 112, 107, 115, 129, 111, 111, 115, 119, 116, 112, 109, 112, 115, 113, 122, 107, 103, 103, 114, 110, 124, 117, 139, 98, 114, 118, 118, 104, 129, 123, 113, 128, 122, 117, 118, 119, 119, 126, 104, 121, 112, 95, 119, 105, 134, 116, 113, 119, 129, 117, 116, 112, 113, 123, 114, 111, 115, 136, 117, 137, 133, 116, 113, 113, 96, 118, 121, 108, 131, 106, 116, 76, 108, 122, 125, 113, 132, 96, 127, 115, 107, 117, 112, 133, 130, 106, 115, 92, 116, 120, 128, 112, 113, 127, 118, 112, 99, 119, 117, 111, 119, 116, 123, 111, 104, 113, 111, 116, 119, 115, 123, 115, 113, 117, 123, 115, 122, 110, 117, 125, 111, 118, 117, 119, 119, 117, 115, 108, 116, 117, 118, 121, 94, 109, 126, 114, 124, 111, 120, 112, 121, 148, 118, 124, 113, 115, 116, 106, 116, 119, 105, 121, 109, 105, 117, 111, 107, 121, 122, 120, 113, 112, 114, 109, 118, 117, 114, 110, 111, 116, 120, 107, 108, 119, 119, 112, 115, 115, 141, 109, 127, 124, 149, 97, 121, 118, 112, 115, 111, 119, 123, 115, 117, 121, 110, 115, 120, 113, 116, 113, 86, 115, 120, 112, 122, 112, 113, 120, 122, 116, 120, 117, 116, 113, 113, 121, 116, 112, 111, 113, 90, 102, 112, 101, 109, 111, 111, 109, 118, 117, 119, 126, 105, 125, 121, 122, 114, 117, 113, 113, 112, 116, 116, 119, 116, 110, 114, 114, 114, 116, 103, 117, 123, 110, 112, 111, 120, 117, 106, 107, 116, 111, 118, 116, 123, 112, 112, 111, 120, 120, 111, 110, 139, 127, 119, 112, 113, 115, 125, 116, 109, 102, 106, 101, 120, 116, 111, 120, 121, 123, 123, 117, 119, 116, 115, 118, 119, 120, 117, 131, 124, 98, 119, 115, 116, 118, 118, 123, 123, 110, 125, 118, 113, 113, 117, 113, 114, 120, 118, 126, 120, 118, 121, 117, 131, 114, 110, 111, 104, 119, 129, 115, 118, 112, 116, 115, 121, 100, 118, 150, 116, 115, 111, 112, 116, 120, 114, 114, 113, 113, 113, 121, 120, 114, 121, 119, 114, 117, 105, 122, 104, 122, 136, 126, 118, 120, 112, 108, 118, 109, 117, 112, 100, 111, 110, 96, 124, 142, 112, 119, 121, 111, 112, 119, 109, 109, 116, 116, 123, 113, 117, 108, 106, 118, 113, 117, 110, 127, 117, 117, 116, 91, 112, 107, 121, 115, 127, 122, 113, 119, 118, 113, 124, 127, 107, 112, 128, 120, 118, 128, 116, 132, 118, 115, 115, 108, 110, 115, 120, 84, 121, 111, 110, 120, 118, 101, 112, 116, 117, 116, 115, 114, 107, 95, 104, 115, 110, 119, 119, 111, 120, 108, 114, 108, 100, 110, 114, 113, 118, 123, 117, 115, 136, 115, 110, 121, 111, 115, 103, 130, 120, 118, 108, 111, 116, 110, 108, 128, 120, 116, 116, 122, 66, 118, 119, 119, 124, 118, 117, 140, 126, 123, 90, 121, 119, 122, 125, 118, 112, 113, 117, 123, 115, 115, 119, 116, 110, 116, 113, 144, 115, 121, 114, 112, 108, 117, 105, 115, 119, 117, 119, 115, 116, 118, 109, 112, 111, 110, 115, 125, 116, 108, 108, 113, 118, 115, 115, 115, 118, 115, 118, 107, 125, 121, 115, 120, 116, 115, 102, 114, 108, 117, 113, 126, 116, 111, 117, 125, 114, 115, 119, 118, 107, 114, 126, 114, 120, 119, 107, 107, 118, 126, 119, 114, 110, 110, 119, 110, 121, 112, 116, 116, 124, 85, 114, 100, 118, 111, 99, 111, 121, 123, 117, 97, 116, 104, 129, 111, 110, 117, 112, 96, 119, 125, 138, 111, 125, 119, 108, 116, 105, 128, 119, 108, 108, 114, 132, 100, 112, 115, 111, 110, 125, 109, 119, 105, 128, 111, 113, 107, 116, 113, 111, 118, 110, 117, 84, 124, 101, 109, 106, 131, 102, 114, 120, 114, 125, 105, 123, 113, 115, 107, 114, 101, 122, 118, 127, 114, 108, 108, 113, 114, 101, 110, 119, 114, 124, 132, 110, 121, 113, 115, 125, 117, 118, 108, 135, 99, 102, 106, 123, 106, 116, 155, 108, 121, 113, 119, 128, 109, 111, 109, 112, 98, 120, 119, 124, 106, 113, 111, 123, 127, 99, 117, 120, 106, 110, 110, 120, 125, 132, 111, 105, 110, 110, 115, 118, 132, 118, 119, 122, 129, 114, 127, 114, 118, 126, 101, 116, 117, 114, 151, 123, 136, 122, 112, 110, 112, 106, 109, 114, 113, 122, 112, 120, 123, 116, 123, 117, 115, 114, 125, 122, 129, 131, 109, 105, 113, 134, 109, 124, 105, 109, 105, 114, 113, 113, 123, 112, 105, 124, 105, 119, 120, 122, 112, 106, 128, 104, 108, 127, 120, 131, 96, 115, 105, 119, 114, 102, 127, 102, 128, 148, 119, 108, 136, 104, 110, 123, 118, 111, 100, 115, 118, 115, 119, 103, 118, 110, 98, 111, 117, 123, 103, 123, 113, 109, 111, 152, 118, 125, 111, 125, 122, 124, 113, 118, 119, 115, 121, 140, 115, 124, 108, 121, 108, 135, 111, 124, 125, 129, 127, 131, 126, 125, 131, 107, 119, 113, 113, 120, 119, 93, 130, 106, 115, 119, 116, 120, 94, 123, 116, 113, 110, 120, 113, 99, 119, 107, 120, 115, 119, 123, 87, 128, 106, 118, 119, 120, 103, 125, 111, 110, 101, 115, 125, 119, 118, 114, 124, 140, 98, 116, 123, 121, 117, 97, 104, 109, 103, 121, 114, 110, 123, 134, 109, 102, 104, 106, 110, 115, 104, 105, 116, 119, 119, 106, 109, 113, 117, 107, 111, 116, 110, 134, 106, 137, 108, 105, 100, 115, 107, 124, 124, 92, 116, 95, 122, 108, 103, 115, 123, 106, 113, 118, 112, 115, 107, 114, 113, 121, 122, 111, 121, 124, 124, 115, 121, 116, 121, 112, 114, 113, 123, 111, 134, 106, 119, 112, 126, 108, 115, 114, 115, 137, 114, 155, 119, 120, 121, 139, 108, 118, 111, 107, 109, 119, 113, 129, 121, 112, 95, 116, 127, 109, 121, 110, 127, 111, 117, 112, 108, 107, 124, 106, 109, 130, 111, 105, 137, 108, 106, 105, 100, 125, 100, 113, 123, 105, 133, 118, 106, 116, 121, 107, 122, 109, 147, 101, 116, 114, 104, 116, 111, 108, 117, 109, 111, 114, 104, 125, 102, 125, 101, 123, 112, 114, 117, 118, 107, 134, 114, 134, 113, 123, 111, 117, 119, 105, 109, 131, 106, 114, 114, 100, 108, 123, 120, 118, 115, 105, 111, 110, 117, 124, 110, 116, 98, 132, 102, 113, 103, 118, 113, 119, 120, 135, 97, 110, 119, 114, 113, 123, 110, 107, 116, 115, 126, 110, 105, 115, 130, 115, 113, 135, 115, 108, 116, 139, 116, 126, 88, 126, 108, 113, 118, 108, 114, 116, 122, 115, 118, 117, 125, 108, 115, 109, 106, 120, 101, 123, 105, 123, 121, 114, 108, 113, 117, 119, 112, 119, 131, 111, 112, 122, 113, 123, 114, 115, 92, 109, 111, 117, 121, 109, 120, 105, 116, 121, 119, 120, 106, 110, 110, 119, 118, 116, 116, 124, 109, 125, 122, 117, 114, 115, 113, 119, 107, 104, 112, 96, 104, 113, 113, 114, 126, 111, 154, 121, 111, 114, 115, 123, 121, 119, 117, 130, 115, 114, 115, 123, 110, 124, 117, 121, 128, 114, 105, 113, 119, 112, 117, 134, 108, 142, 108, 112, 114, 123, 119, 111, 116, 119, 113, 115, 110, 106, 121, 116, 118, 124, 125, 117, 111, 111, 112, 113, 103, 104, 116, 113, 110, 116, 130, 122, 104, 119, 157, 112, 113, 108, 110, 113, 107, 119, 114, 108, 119, 114, 122, 118, 116, 105, 113, 112, 113, 119, 107, 118, 116, 171, 115, 125, 111, 116, 111, 108, 127, 118, 132, 108, 122, 126, 127, 114, 117, 121, 116, 118, 117, 115, 118, 126, 107, 115, 115, 121, 116, 100, 120, 118, 116, 109, 113, 98, 119, 114, 130, 117, 110, 111, 127, 123, 109, 114, 122, 112, 117, 111, 113, 111, 115, 126, 131, 115, 109, 125, 112, 116, 94, 113, 117, 111, 124, 119, 115, 108, 113, 119, 122, 112, 123, 159, 116, 110, 120, 121, 113, 127, 112, 133, 111, 126, 131, 123, 113, 121, 111, 110, 118, 125, 97, 111, 138, 129, 124, 109, 110, 112, 121, 118, 116, 117, 100, 115, 124, 110, 122, 112, 119, 115, 118, 112, 118, 112, 132, 127, 119, 114, 123, 105, 126, 118, 116, 112, 117, 128, 113, 118, 115, 101, 124, 117, 115, 122, 112, 109, 114, 121, 122, 115, 122, 119, 116, 108, 109, 122, 117, 121, 118, 112, 121, 124, 125, 113, 120, 117, 116, 104, 119, 108, 114, 124, 111, 120, 109, 112, 120, 115, 114, 113, 112, 110, 123, 101, 123, 119, 115, 110, 120, 117, 107, 111, 134, 117, 116, 116, 115, 116, 111, 110, 109, 121, 126, 123, 110, 61, 91, 113, 108, 134, 118, 118, 120, 110, 105, 126, 114, 129, 121, 118, 118, 108, 119, 127, 129, 117, 118, 87, 115, 117, 108, 109, 107, 121, 108, 114, 117, 123, 113, 107, 117, 117, 113, 118, 119, 110, 120, 115, 106, 117, 103, 113, 110, 114, 130, 115, 105, 115, 117, 123, 116, 116, 105, 108, 89, 116, 124, 112, 115, 105, 108, 115, 121, 116, 110, 111, 108, 116, 120, 132, 111, 109, 126, 123, 101, 118, 112, 115, 117, 117, 123, 119, 117, 82, 87, 116, 120, 112, 118, 108, 112, 103, 116, 124, 116, 110, 111, 140, 126, 117, 121, 122, 118, 111, 113, 106, 119, 116, 113, 114, 121, 121, 108, 112, 104, 119, 122, 115, 106, 111, 108, 113, 140, 116, 122, 127, 114, 103, 121, 113, 105, 120, 119, 118, 116, 118, 118, 112, 116, 120, 115, 127, 110, 121, 118, 112, 112, 120, 109, 125, 130, 124, 117, 110, 114, 125, 119, 125, 114, 121, 121, 73, 117, 117, 119, 114, 128, 112, 117, 120, 98, 115, 118, 130, 119, 119, 112, 125, 117, 116, 121, 113, 110, 110, 123, 121, 116, 116, 112, 113, 122, 110, 120, 109, 116, 119, 119, 102, 116, 120, 121, 116, 114, 125, 117, 114, 95, 114, 124, 117, 92, 125, 121, 117, 116, 118, 116, 122, 116, 117, 120, 145, 119, 123, 115, 116, 115, 119, 103, 128, 119, 123, 121, 120, 115, 119, 118, 134, 115, 116, 115, 114, 113, 129, 111, 112, 130, 89, 112, 117, 121, 119, 111, 115, 123, 88, 115, 108, 118, 115, 116, 120, 116, 121, 116, 121, 124, 113, 102, 115, 126, 114, 126, 111, 110, 115, 118, 108, 112, 120, 117, 113, 118, 118, 116, 113, 137, 113, 126, 113, 122, 118, 115, 113, 112, 107, 123, 102, 120, 115, 118, 119, 119, 117, 111, 113, 116, 113, 98, 118, 117, 103, 114, 114, 117, 117, 119, 107, 126, 115, 115, 116, 113, 116, 110, 112, 114, 112, 113, 131, 118, 118, 122, 112, 109, 108, 127, 136, 113, 119, 114, 125, 115, 117, 111, 111, 114, 117, 115, 118, 113, 116, 112, 124, 118, 123, 114, 115, 128, 123, 119, 114, 119, 111, 117, 118, 140, 109, 104, 119, 109, 121, 112, 112, 119, 116, 115, 105, 115, 114, 119, 122, 112, 130, 123, 116, 116, 112, 116, 107, 111, 120, 122, 116, 133, 114, 116, 119, 118, 112, 112, 116, 118, 115, 118, 134, 112, 116, 116, 109, 118, 114, 120, 115, 121, 111, 113, 112, 123, 119, 132, 121, 123, 111, 116, 135, 111, 129, 120, 120, 115, 119, 115, 112, 120, 116, 122, 129, 120, 121, 110, 104, 108, 112, 114, 112, 120, 117, 112, 103, 120, 118, 120, 122, 121, 116, 103, 129, 113, 122, 119, 120, 120, 108, 116, 118, 107, 112, 121, 109, 115, 101, 115, 116, 113, 117, 113, 100, 137, 108, 107, 93, 113, 125, 114, 115, 141, 118, 114, 123, 108, 115, 117, 119, 119, 117, 119, 110, 120, 117, 104, 116, 114, 122, 117, 125, 116, 122, 118, 118, 118, 119, 112, 116, 117, 107, 119, 114, 120, 129, 124, 117, 108, 112, 123, 117, 113, 95, 118, 106, 109, 117, 113, 113, 111, 111, 113, 121, 114, 121, 118, 120, 112, 109, 114, 110, 116, 139, 111, 112, 123, 113, 96, 116, 91, 117, 125, 108, 109, 117, 116, 111, 123, 121, 111, 114, 121, 136, 116, 119, 118, 121, 115, 117, 108, 117, 114, 109, 117, 120, 119, 129, 112, 118, 115, 113, 79, 116, 124, 112, 113, 115, 108, 112, 115, 119, 105, 117, 113, 110, 117, 115, 112, 115, 113, 120, 118, 116, 110, 148, 107, 118, 115, 118, 115, 123, 115, 104, 109, 114, 106, 119, 118, 118, 117, 119, 116, 109, 112, 112, 111, 117, 105, 136, 109, 113, 101, 120, 124, 134, 105, 120, 120, 122, 116, 126, 116, 119, 102, 119, 110, 113, 113, 120, 123, 119, 118, 114, 115, 117, 121, 117, 122, 119, 118, 116, 101, 123, 117, 124, 132, 107, 115, 113, 115, 113, 121, 113, 108, 117, 139, 107, 121, 114, 125, 101, 111, 132, 120, 114, 119, 119, 113, 115, 111, 117, 114, 95, 129, 109, 121, 118, 111, 120, 122, 108, 119, 112, 106, 116, 110, 132, 115, 100, 106, 135, 104, 106, 112, 110, 105, 141, 109, 126, 108, 109, 115, 105, 126, 118, 113, 101, 118, 118, 111, 134, 103, 126, 121, 135, 116, 122, 127, 117, 119, 93, 109, 125, 112, 130, 113, 137, 111, 114, 108, 116, 115, 132, 120, 131, 124, 116, 110, 118, 117, 119, 102, 119, 107, 129, 107, 111, 126, 121, 114, 111, 124, 127, 113, 103, 110, 114, 128, 121, 110, 114, 118, 115, 111, 129, 105, 127, 118, 115, 114, 94, 119, 114, 117, 122, 121, 108, 119, 121, 112, 125, 113, 135, 144, 115, 114, 109, 129, 110, 113, 126, 110, 142, 101, 106, 117, 115, 113, 123, 125, 109, 118, 122, 113, 105, 121, 109, 108, 105, 109, 122, 114, 108, 118, 110, 113, 107, 112, 110, 107, 114, 110, 125, 106, 122, 115, 117, 106, 122, 122, 112, 109, 120, 117, 116, 122, 119, 115, 133, 110, 129, 127, 111, 113, 110, 119, 134, 116, 110, 102, 116, 116, 116, 128, 114, 122, 123, 129, 123, 114, 104, 121, 134, 121, 103, 120, 118, 97, 119, 114, 124, 125, 113, 119, 117, 108, 119, 102, 118, 106, 115, 120, 120, 124, 113, 124, 129, 125, 127, 113, 117, 115, 94, 123, 129, 119, 113, 117, 116, 111, 131, 122, 142, 110, 115, 113, 113, 116, 97, 130, 123, 121, 121, 133, 119, 104, 121, 115, 114, 114, 117, 139, 112, 109, 129, 119, 117, 114, 109, 123, 125, 96, 103, 117, 110, 125, 114, 126, 125, 137, 101, 108, 122, 111, 115, 116, 110, 102, 117, 109, 110, 110, 108, 131, 117, 128, 105, 120, 129, 116, 115, 114, 112, 117, 124, 118, 95, 103, 120, 113, 89, 107, 138, 108, 105, 119, 112, 129, 116, 117, 111, 120, 113, 123, 124, 120, 125, 119, 125, 114, 111, 120, 124, 122, 125, 122, 120, 111, 116, 117, 119, 119, 112, 133, 121, 124, 112, 124, 107, 138, 113, 109, 116, 113, 115, 116, 121, 111, 114, 123, 103, 105, 108, 113, 112, 112, 104, 108, 115, 129, 113, 112, 119, 126, 117, 116, 123, 116, 101, 125, 110, 96, 120, 104, 112, 98, 109, 113, 98, 98, 105, 120, 103, 115, 113, 122, 112, 117, 115, 126, 118, 120, 118, 123, 138, 111, 122, 117, 122, 100, 127, 106, 117, 113, 131, 129, 132, 130, 129, 129, 112, 107, 124, 116, 129, 104, 121, 105, 124, 126, 116, 126, 119, 127, 116, 119, 116, 109, 114, 102, 129, 104, 131, 141, 122, 123, 123, 111, 118, 120, 113, 129, 114, 135, 110, 108, 113, 124, 119, 102, 105, 107, 118, 119, 118, 125, 120, 118, 117, 104, 110, 101, 121, 105, 130, 114, 114, 113, 112, 122, 129, 114, 113, 112, 120, 117, 103, 112, 110, 133, 125, 118, 111, 116, 111, 115, 126, 113, 122, 115, 109, 106, 112, 110, 115, 120, 112, 122, 109, 95, 104, 115, 124, 113, 129, 107, 120, 112, 108, 114, 101, 112, 107, 119, 124, 109, 119, 111, 121, 111, 99, 103, 111, 109, 117, 106, 120, 114, 117, 123, 102, 111, 124, 122, 126, 90, 113, 119, 109, 111, 145, 117, 121, 123, 112, 115, 126, 105, 129, 117, 140, 110, 115, 112, 122, 115, 115, 100, 120, 121, 122, 103, 124, 106, 116, 112, 150, 106, 122, 108, 109, 121, 114, 115, 111, 101, 85, 106, 123, 101, 111, 110, 101, 109, 89, 111, 97, 113, 127, 115, 116, 110, 106, 123, 131, 111, 108, 119, 122, 119, 117, 109, 104, 109, 114, 118, 107, 113, 116, 115, 116, 104, 124, 135, 112, 104, 117, 142, 109, 121, 114, 119, 113, 109, 108, 128, 86, 108, 126, 106, 129, 113, 106, 109, 128, 112, 124, 117, 122, 111, 112, 113, 127, 113, 122, 113, 104, 125, 118, 116, 116, 105, 104, 114, 118, 110, 115, 122, 121, 125, 118, 114, 110, 109, 130, 159, 107, 108, 120, 116, 113, 126, 119, 122, 124, 119, 110, 137, 109, 117, 116, 92, 121, 114, 125, 99, 112, 123, 116, 118, 114, 113, 113, 138, 117, 122, 116, 119, 106, 104, 122, 111, 110, 105, 113, 121, 119, 107, 119, 120, 115, 105, 115, 136, 125, 117, 117, 121, 109, 112, 113, 131, 109, 126, 104, 122, 109, 116, 104, 112, 111, 105, 112, 117, 122, 126, 116, 112, 115, 118, 114, 109, 111, 113, 122, 112, 123, 123, 127, 114, 120, 127, 128, 109, 121, 113, 121, 89, 116, 116, 122, 116, 109, 108, 120, 111, 143, 116, 102, 99, 100, 120, 118, 116, 122, 121, 111, 98, 97, 130, 117, 138, 110, 123, 122, 91, 114, 109, 117, 111, 125, 144, 122, 142, 119, 119, 100, 135, 117, 119, 101, 116, 120, 109, 122, 119, 114, 151, 109, 114, 119, 116, 131, 100, 135, 141, 121, 115, 118, 125, 123, 101, 113, 119, 109, 126, 118, 119, 119, 97, 107, 112, 124, 115, 116, 118, 104, 92, 101, 120, 107, 110, 122, 119, 117, 119, 126, 112, 134, 111, 123, 118, 116, 116, 124, 114, 99, 121, 110, 126, 123, 113, 113, 114, 112, 112, 101, 103, 111, 110, 112, 125, 94, 118, 120, 122, 147, 112, 109, 117, 124, 83, 113, 109, 124, 103, 134, 103, 119, 111, 126, 93, 115, 112, 120, 106, 97, 121, 109, 115, 105, 118, 116, 90, 115, 128, 121, 107, 118, 122, 157, 131, 116, 118, 108, 101, 127, 142, 114, 116, 112, 123, 119, 111, 109, 106, 113, 107, 118, 120, 124, 113, 119, 112, 113, 101, 113, 107, 125, 120, 108, 111, 89, 117, 106, 129, 90, 114, 120, 111, 103, 117, 120, 111, 107, 115, 124, 112, 109, 105, 112, 113, 104, 119, 120, 122, 98, 116, 121, 99, 133, 110, 113, 123, 120, 121, 111, 98, 118, 118, 112, 122, 118, 118, 112, 125, 121, 108, 120, 113, 123, 119, 114, 118, 103, 112, 132, 115, 106, 117, 121, 119, 106, 128, 125, 107, 104, 115, 108, 115, 104, 122, 129, 118, 104, 102, 107, 116, 132, 118, 134, 97, 130, 137, 124, 108, 115, 103, 113, 115, 123, 118, 98, 118, 126, 105, 132, 115, 114, 116, 117, 132, 115, 107, 93, 115, 99, 123, 117, 127, 122, 114, 114, 101, 118, 137, 114, 104, 123, 134, 107, 123, 111, 110, 131, 116, 105, 111, 104, 120, 104, 111, 133, 106, 112, 121, 123, 128, 94, 123, 107, 111, 121, 119, 122, 113, 107, 118, 117, 139, 132, 114, 112, 121, 140, 125, 113, 146, 106, 121, 116, 128, 113, 127, 120, 128, 132, 105, 107, 108, 119, 124, 119, 121, 129, 109, 104, 142, 116, 127, 124, 119, 108, 116, 106, 107, 128, 127, 123, 118, 125, 119, 105, 115, 120, 116, 124, 128, 128, 131, 104, 109, 129, 131, 127, 118, 106, 129, 111, 117, 121, 117, 118, 127, 104, 111, 109, 117, 138, 115, 122, 142, 113, 125, 111, 112, 106, 121, 106, 124, 115, 122, 110, 125, 119, 127, 119, 119, 120, 129, 103, 125, 147, 113, 109, 114, 103, 132, 121, 113, 116, 113, 121, 111, 107, 124, 98, 105, 111, 119, 128, 110, 125, 111, 120, 124, 114, 99, 109, 108, 114, 107, 115, 115, 108, 113, 117, 125, 105, 133, 118, 111, 106, 103, 111, 117, 118, 111, 109, 111, 118, 101, 118, 118, 116, 116, 137, 102, 129, 114, 119, 103, 108, 109, 123, 125, 110, 127, 115, 123, 128, 119, 106, 101, 117, 126, 111, 93, 125, 128, 98, 124, 104, 114, 115, 119, 112, 102, 121, 111, 119, 108, 132, 112, 127, 129, 121, 109, 141, 115, 114, 106, 112, 107, 121, 117, 110, 118, 123, 116, 118, 95, 118, 95, 100, 118, 114, 107, 121, 109, 121, 116, 142, 105, 131, 112, 116, 129, 112, 116, 108, 112, 115, 91, 112, 102, 123, 119, 126, 135, 113, 117, 109, 111, 114, 115, 124, 107, 112, 116, 132, 122, 87, 99, 106, 120, 111, 120, 122, 130, 105, 115, 126, 113, 123, 130, 126, 112, 120, 127, 119, 121, 133, 110, 128, 114, 108, 104, 105, 106, 116, 119, 117, 123, 100, 112, 119, 105, 118, 120, 105, 110, 109, 120, 122, 106, 125, 91, 127, 118, 118, 129, 89, 127, 117, 114, 126, 129, 135, 124, 116, 116, 111, 111, 104, 113, 126, 105, 123, 105, 117, 114, 110, 132, 134, 128, 109, 124, 113, 118, 111, 111, 128, 110, 129, 130, 142, 120, 124, 123, 128, 102, 106, 112, 119, 100, 124, 109, 115, 121, 112, 117, 118, 117, 127, 110, 120, 129, 120, 106, 112, 108, 121, 112, 114, 111, 113, 116, 125, 122, 102, 131, 135, 111, 131, 113, 125, 103, 103, 112, 104, 108, 112, 123, 116, 117, 114, 121, 117, 111, 113, 128, 102, 135, 111, 114, 124, 118, 124, 102, 114, 131, 108, 128, 123, 137, 119, 129, 120, 117, 122, 110, 108, 118, 120, 93, 112, 131, 119, 140, 125, 111, 131, 133, 119, 123, 106, 116, 118, 103, 115, 111, 114, 110, 117, 111, 122, 102, 114, 107, 102, 110, 114, 86, 114, 120, 106, 105, 127, 123, 107, 115, 112, 115, 112, 117, 105, 120, 119, 110, 112, 125, 116, 106, 100, 104, 110, 105, 110, 120, 118, 109, 125, 112, 118, 106, 102, 125, 126, 111, 113, 123, 97, 87, 112, 119, 114, 118, 124, 122, 129, 96, 123, 109, 92, 137, 113, 127, 119, 102, 109, 132, 113, 130, 108, 107, 128, 109, 103, 110, 113, 105, 117, 137, 114, 109, 97, 103, 97, 97, 100, 91, 110, 125, 114, 109, 109, 107, 128, 105, 112, 124, 123, 102, 117, 120, 137, 109, 129, 110, 108, 120, 109, 120, 124, 112, 106, 122, 110, 127, 118, 118, 133, 110, 107, 124, 113, 120, 102, 113, 116, 157, 123, 104, 110, 107, 107, 128, 125, 115, 102, 141, 113, 106, 124, 117, 110, 113, 118, 116, 116, 105, 114, 105, 109, 115, 126, 106, 116, 120, 94, 126, 123, 125, 126, 108, 120, 117, 114, 113, 121, 114, 140, 122, 110, 95, 114, 105, 120, 89, 117, 121, 105, 97, 120, 113, 132, 115, 120, 124, 117, 129, 101, 110, 127, 123, 136, 114, 117, 104, 110, 125, 117, 109, 110, 111, 112, 139, 118, 119, 115, 109, 106, 101, 125, 118, 111, 97, 102, 129, 131, 132, 117, 127, 109, 118, 120, 118, 135, 110, 115, 123, 110, 110, 99, 118, 109, 128, 93, 110, 101, 117, 107, 113, 107, 94, 121, 134, 134, 122, 114, 119, 119, 108, 109, 116, 99, 114, 114, 121, 109, 108, 125, 114, 119, 113, 96, 118, 106, 111, 117, 122, 113, 107, 115, 120, 118, 110, 122, 119, 130, 107, 116, 125, 112, 133, 127, 109, 112, 107, 104, 106, 104, 105, 127, 106, 109, 108, 114, 117, 119, 115, 114, 118, 104, 110, 111, 141, 115, 120, 109, 118, 118, 115, 107, 115, 131, 121, 133, 110, 113, 108, 90, 107, 95, 111, 128, 110, 120, 117, 111, 108, 109, 138, 144, 105, 100, 130, 116, 132, 119, 100, 108, 99, 124, 118, 119, 126, 120, 103, 105, 98, 98, 116, 118, 128, 114, 117, 116, 111, 129, 108, 142, 111, 105, 132, 124, 125, 126, 109, 99, 110, 114, 115, 126, 117, 119, 87, 108, 104, 114, 113, 119, 114, 114, 116, 137, 112, 125, 118, 135, 115, 122, 110, 121, 94, 121, 133, 126, 89, 111, 117, 109, 119, 118, 115, 105, 117, 109, 119, 125, 120, 114, 118, 103, 117, 107, 103, 104, 123, 114, 140, 115, 133, 167, 116, 120, 109, 125, 140, 103, 115, 111, 119, 120, 110, 106, 110, 119, 126, 120, 118, 107, 116, 108, 112, 119, 114, 114, 102, 103, 116, 100, 117, 115, 131, 114, 113, 125, 116, 83, 105, 120, 112, 122, 120, 112, 111, 114, 114, 123, 105, 131, 115, 99, 109, 116, 113, 125, 93, 95, 109, 90, 119, 119, 125, 123, 118, 110, 115, 100, 99, 105, 136, 126, 122, 116, 130, 117, 90, 116, 97, 119, 105, 114, 110, 124, 116, 112, 107, 100, 124, 120, 113, 110, 123, 116, 109, 109, 127, 116, 112, 106, 122, 116, 116, 112, 111, 124, 106, 118, 134, 113, 110, 126, 111, 116, 115, 120, 122, 124, 116, 109, 127, 106, 119, 109, 118, 108, 128, 116, 115, 116, 126, 130, 115, 138, 104, 120, 114, 115, 109, 108, 116, 133, 126, 113, 114, 106, 117, 116, 134, 121, 121, 110, 119, 126, 123, 136, 118, 116, 132, 115, 118, 117, 122, 123, 120, 122, 124, 113, 104, 114, 121, 102, 115, 116, 120, 121, 103, 118, 111, 116, 111, 96, 111, 111, 119, 121, 110, 115, 120, 112, 120, 127, 142, 104, 111, 123, 124, 115, 118, 120, 117, 90, 123, 128, 106, 123, 116, 127, 125, 117, 136, 125, 127, 117, 113, 121, 124, 112, 116, 120, 120, 126, 124, 110, 112, 139, 112, 124, 85, 112, 122, 109, 122, 117, 115, 111, 112, 115, 110, 122, 112, 139, 123, 110, 116, 86, 130, 113, 111, 122, 113, 136, 122, 104, 109, 113, 127, 107, 103, 118, 109, 116, 118, 120, 111, 91, 120, 132, 108, 114, 117, 124, 125, 117, 119, 114, 118, 123, 122, 117, 120, 110, 116, 117, 122, 126, 124, 128, 117, 112, 119, 117, 120, 149, 98, 115, 122, 190, 119, 104, 109, 100, 119, 129, 105, 114, 115, 114, 107, 120, 101, 159, 127, 115, 134, 128, 106, 113, 106, 116, 130, 116, 110, 106, 120, 114, 120, 119, 111, 118, 130, 109, 122, 115, 113, 107, 112, 116, 118, 131, 98, 106, 120, 115, 104, 118, 104, 130, 115, 104, 114, 124, 134, 116, 104, 126, 114, 124, 124, 112, 128, 123, 110, 119, 124, 122, 111, 92, 116, 119, 121, 152, 117, 120, 119, 112, 139, 125, 138, 124, 112, 118, 110, 118, 119, 119, 107, 109, 117, 112, 121, 126, 126, 118, 114, 94, 118, 122, 117, 129, 111, 126, 143, 117, 109, 109, 105, 97, 131, 117, 111, 124, 118, 110, 115, 119, 120, 128, 121, 113, 120, 118, 125, 118, 99, 116, 107, 111, 116, 96, 116, 121, 124, 116, 121, 76, 123, 117, 121, 117, 112, 113, 140, 115, 165, 104, 118, 120, 126, 119, 118, 125, 106, 122, 100, 131, 118, 123, 117, 129, 106, 126, 117, 115, 117, 114, 124, 104, 109, 119, 119, 117, 116, 118, 114, 115, 111, 120, 116, 115, 114, 135, 109, 103, 112, 148, 117, 117, 120, 124, 110, 108, 180, 116, 115, 115, 103, 109, 117, 117, 117, 137, 113, 123, 117, 137, 104, 110, 118, 129, 111, 102, 124, 111, 115, 119, 107, 103, 106, 121, 108, 114, 121, 120, 123, 128, 107, 112, 121, 112, 138, 123, 119, 105, 89, 109, 108, 121, 124, 126, 120, 108, 114, 119, 102, 126, 106, 113, 112, 117, 118, 117, 124, 106, 112, 117, 114, 115, 93, 125, 116, 118, 125, 106, 126, 120, 124, 92, 114, 110, 115, 120, 116, 117, 117, 148, 111, 107, 123, 119, 114, 105, 125, 114, 121, 123, 118, 119, 127, 114, 111, 117, 125, 111, 127, 123, 114, 129, 108, 113, 131, 105, 118, 110, 122, 106, 119, 132, 118, 124, 117, 111, 111, 96, 112, 129, 113, 102, 118, 111, 103, 124, 113, 114, 107, 110, 115, 109, 110, 119, 124, 116, 118, 111, 108, 116, 115, 109, 129, 103, 104, 115, 118, 117, 115, 99, 124, 130, 111, 111, 127, 118, 117, 131, 107, 131, 147, 124, 127, 117, 106, 123, 129, 114, 108, 117, 119, 106, 123, 103, 136, 105, 117, 107, 108, 124, 125, 123, 120, 125, 107, 106, 115, 91, 125, 111, 118, 108, 112, 116, 116, 85, 115, 111, 105, 117, 110, 107, 117, 121, 119, 117, 110, 118, 113, 118, 125, 109, 115, 128, 106, 115, 105, 115, 120, 110, 101, 126, 108, 116, 109, 122, 112, 119, 118, 146, 116, 122, 111, 118, 113, 115, 110, 134, 110, 121, 123, 109, 106, 141, 114, 109, 102, 124, 110, 122, 116, 110, 115, 128, 120, 101, 115, 118, 125, 114, 125, 115, 109, 148, 115, 104, 121, 117, 115, 118, 108, 100, 130, 119, 124, 120, 130, 116, 121, 116, 101, 111, 104, 109, 128, 112, 130, 108, 114, 124, 112, 115, 108, 118, 119, 109, 115, 99, 101, 115, 116, 95, 128, 115, 120, 103, 108, 119, 116, 117, 110, 98, 116, 111, 123, 128, 113, 117, 114, 112, 117, 111, 111, 76, 125, 117, 127, 119, 122, 114, 122, 109, 112, 93, 119, 116, 144, 108, 119, 115, 112, 122, 113, 126, 120, 114, 131, 127, 127, 109, 123, 115, 117, 119, 107, 118, 118, 132, 129, 100, 117, 136, 117, 127, 116, 121, 108, 117, 118, 104, 120, 113, 121, 122, 125, 95, 117, 109, 129, 109, 121, 118, 134, 102, 119, 109, 126, 120, 120, 110, 130, 123, 117, 107, 114, 104, 114, 126, 124, 105, 141, 115, 103, 111, 129, 120, 149, 119, 100, 124, 114, 113, 123, 114, 95, 110, 122, 107, 120, 134, 110, 118, 104, 119, 117, 117, 108, 144, 115, 131, 120, 114, 108, 109, 130, 123, 113, 127, 134, 146, 119, 108, 119, 112, 119, 117, 131, 109, 125, 115, 132, 117, 122, 113, 113, 117, 100, 109, 108, 109, 122, 122, 137, 125, 116, 110, 109, 115, 103, 113, 116, 113, 106, 115, 109, 112, 115, 110, 109, 112, 132, 156, 118, 115, 116, 129, 108, 115, 130, 114, 107, 107, 123, 124, 115, 107, 112, 120, 118, 121, 115, 113, 105, 107, 104, 115, 124, 130, 115, 106, 119, 112, 108, 123, 119, 113, 110, 119, 121, 121, 117, 118, 106, 127, 94, 118, 112, 123, 80, 124, 120, 107, 122, 115, 122, 130, 97, 127, 116, 116, 123, 117, 127, 100, 99, 104, 111, 102, 117, 114, 123, 110, 114, 104, 110, 102, 120, 119, 106, 114, 127, 113, 118, 122, 103, 126, 114, 102, 132, 111, 118, 116, 106, 121, 107, 99, 104, 114, 112, 118, 108, 103, 122, 116, 115, 128, 99, 131, 112, 120, 105, 103, 112, 112, 119, 122, 120, 118, 128, 108, 125, 120, 121, 102, 138, 108, 115, 127, 107, 107, 114, 115, 134, 119, 112, 114, 117, 110, 117, 114, 110, 124, 113, 121, 119, 116, 112, 111, 115, 118, 110, 120, 116, 117, 112, 119, 111, 107, 117, 118, 114, 100, 114, 116, 119, 114, 114, 116, 121, 118, 102, 116, 112, 123, 116, 114, 119, 105, 115, 121, 115, 122, 111, 111, 117, 145, 117, 117, 111, 116, 123, 106, 112, 117, 112, 113, 120, 132, 123, 117, 115, 102, 142, 115, 121, 116, 120, 115, 108, 136, 120, 119, 119, 112, 127, 116, 119, 110, 114, 118, 115, 107, 108, 123, 118, 106, 107, 122, 111, 110, 113, 119, 115, 125, 117, 132, 116, 133, 120, 119, 119, 121, 111, 121, 118, 123, 116, 111, 134, 118, 114, 118, 119, 115, 121, 112, 117, 114, 115, 115, 116, 118, 122, 115, 80, 111, 116, 116, 120, 113, 121, 118, 113, 117, 113, 118, 120, 121, 114, 110, 123, 118, 113, 115, 110, 117, 122, 111, 142, 114, 115, 122, 117, 114, 109, 116, 116, 102, 129, 110, 123, 116, 115, 121, 123, 115, 111, 119, 116, 135, 107, 113, 121, 118, 109, 116, 112, 110, 121, 106, 113, 117, 113, 108, 116, 152, 116, 112, 103, 121, 118, 116, 108, 118, 115, 114, 103, 117, 121, 114, 114, 112, 114, 120, 108, 113, 118, 118, 119, 126, 124, 120, 119, 133, 101, 116, 114, 112, 116, 117, 117, 116, 116, 115, 114, 119, 120, 117, 117, 107, 115, 119, 121, 122, 115, 122, 114, 117, 112, 111, 117, 133, 122, 115, 105, 122, 113, 109, 114, 116, 120, 114, 117, 114, 115, 116, 117, 115, 114, 114, 119, 116, 117, 114, 116, 127, 121, 118, 106, 117, 121, 115, 119, 113, 119, 112, 114, 130, 116, 115, 132, 114, 109, 121, 117, 123, 117, 115, 116, 124, 120, 118, 121, 116, 114, 116, 134, 125, 114, 116, 116, 119, 106, 121, 115, 114, 121, 115, 109, 118, 111, 120, 116, 123, 115, 115, 117, 107, 117, 113, 117, 118, 113, 115, 124, 104, 105, 113, 115, 111, 104, 114, 114, 97, 137, 112, 111, 110, 112, 112, 108, 114, 111, 116, 121, 110, 118, 106, 128, 122, 114, 117, 120, 115, 114, 96, 118, 107, 116, 115, 125, 114, 122, 113, 120, 120, 111, 124, 117, 122, 119, 121, 116, 117, 124, 122, 117, 117, 115, 114, 118, 110, 119, 116, 118, 114, 114, 123, 117, 119, 119, 112, 112, 117, 119, 114, 109, 140, 113, 114, 120, 114, 117, 114, 111, 114, 128, 118, 123, 122, 118, 109, 115, 120, 116, 110, 119, 120, 114, 119, 110, 102, 111, 110, 120, 120, 135, 114, 98, 112, 114, 112, 116, 115, 118, 113, 124, 112, 116, 120, 112, 113, 124, 116, 116, 115, 118, 117, 110, 106, 121, 113, 119, 126, 117, 117, 115, 130, 121, 114, 113, 116, 118, 120, 114, 116, 117, 85, 125, 116, 112, 105, 116, 110, 108, 119, 115, 117, 114, 102, 113, 114, 115, 121, 112, 116, 115, 112, 104, 115, 117, 114, 119, 117, 114, 120, 117, 116, 123, 120, 114, 115, 109, 114, 120, 118, 128, 91, 125, 121, 107, 113, 121, 99, 107, 108, 114, 116, 107, 87, 128, 122, 123, 108, 106, 136, 116, 129, 123, 112, 115, 123, 113, 99, 129, 133, 109, 115, 126, 120, 130, 122, 94, 115, 137, 136, 131, 126, 132, 149, 119, 107, 131, 124, 117, 120, 125, 111, 101, 134, 128, 114, 132, 111, 90, 118, 119, 117, 109, 129, 116, 114, 108, 113, 124, 101, 103, 102, 108, 107, 110, 137, 117, 115, 138, 135, 129, 124, 128, 112, 133, 84, 117, 118, 111, 96, 114, 121, 111, 110, 108, 124, 148, 108, 110, 122, 115, 127, 131, 105, 104, 118, 117, 118, 113, 120, 114, 105, 119, 120, 109, 116, 101, 103, 80, 126, 109, 124, 164, 104, 109, 99, 108, 112, 146, 117, 117, 110, 109, 106, 122, 134, 116, 104, 113, 111, 96, 115, 101, 106, 119, 122, 85, 102, 110, 77, 128, 120, 127, 104, 120, 125, 121, 108, 120, 125, 118, 105, 115, 119, 114, 126, 119, 123, 136, 122, 118, 121, 94, 119, 112, 136, 110, 100, 114, 98, 110, 130, 126, 99, 115, 109, 104, 121, 115, 97, 114, 120, 123, 107, 129, 122, 119, 103, 102, 114, 112, 103, 140, 94, 123, 113, 109, 108, 109, 88, 140, 112, 115, 119, 126, 113, 116, 135, 108, 128, 127, 102, 122, 124, 105, 120, 122, 109, 118, 114, 96, 110, 108, 121, 136, 117, 114, 115, 103, 109, 101, 100, 127, 117, 126, 115, 126, 119, 136, 110, 111, 109, 105, 110, 114, 123, 117, 117, 115, 122, 124, 123, 113, 114, 107, 137, 123, 114, 110, 119, 114, 121, 105, 127, 123, 106, 115, 116, 111, 118, 104, 118, 120, 108, 110, 109, 116, 120, 118, 120, 106, 123, 99, 147, 127, 114, 107, 114, 110, 141, 115, 114, 114, 96, 105, 100, 122, 112, 126, 115, 130, 122, 110, 117, 108, 113, 118, 121, 111, 99, 111, 121, 109, 92, 133, 119, 132, 125, 118, 130, 110, 99, 126, 110, 114, 104, 104, 131, 108, 120, 116, 107, 114, 117, 126, 120, 139, 119, 98, 112, 125, 128, 117, 113, 107, 115, 112, 106, 114, 117, 135, 151, 99, 113, 117, 146, 94, 118, 118, 116, 109, 117, 114, 107, 115, 115, 115, 132, 107, 125, 111, 105, 109, 123, 112, 127, 117, 108, 119, 127, 139, 115, 119, 120, 115, 111, 110, 106, 114, 115, 120, 93, 108, 103, 135, 108, 114, 122, 151, 107, 122, 106, 114, 113, 103, 107, 136, 102, 113, 111, 103, 128, 107, 117, 122, 111, 121, 115, 114, 106, 129, 125, 110, 118, 106, 119, 105, 116, 113, 116, 110, 100, 138, 125, 127, 124, 105, 120, 105, 115, 110, 126, 88, 95, 125, 118, 100, 115, 121, 107, 119, 119, 112, 120, 120, 122, 122, 123, 118, 109, 93, 122, 118, 116, 117, 121, 112, 108, 96, 131, 121, 112, 119, 116, 120, 132, 134, 104, 112, 116, 115, 97, 110, 136, 119, 113, 113, 136, 115, 112, 122, 129, 106, 114, 120, 121, 107, 117, 112, 118, 110, 107, 125, 125, 114, 115, 133, 121, 125, 119, 107, 103, 108, 120, 119, 124, 118, 133, 120, 123, 114, 114, 114, 118, 136, 113, 126, 115, 127, 113, 117, 131, 119, 104, 106, 114, 117, 121, 106, 125, 122, 109, 136, 110, 110, 116, 71, 126, 112, 113, 120, 112, 115, 119, 112, 145, 130, 108, 121, 122, 112, 126, 121, 98, 128, 131, 113, 115, 116, 109, 117, 131, 121, 111, 115, 97, 119, 106, 108, 127, 104, 111, 121, 113, 121, 121, 122, 129, 127, 122, 123, 110, 109, 121, 116, 108, 117, 116, 116, 117, 121, 120, 120, 113, 117, 121, 113, 120, 95, 105, 114, 125, 112, 112, 115, 120, 106, 111, 115, 123, 123, 119, 114, 120, 113, 101, 108, 127, 115, 102, 113, 127, 119, 116, 107, 113, 107, 117, 111, 96, 135, 105, 111, 126, 110, 114, 109, 116, 105, 113, 129, 112, 91, 122, 109, 113, 120, 132, 116, 118, 111, 90, 124, 113, 112, 127, 116, 114, 102, 91, 121, 121, 124, 104, 100, 121, 145, 120, 118, 105, 111, 93, 101, 117, 112, 117, 106, 114, 114, 118, 110, 113, 145, 117, 120, 120, 120, 118, 124, 130, 118, 116, 126, 97, 122, 113, 115, 130, 122, 115, 103, 128, 114, 93, 115, 105, 103, 121, 110, 126, 102, 125, 121, 112, 118, 112, 110, 107, 119, 111, 98, 110, 117, 105, 111, 77, 115, 113, 121, 110, 103, 120, 114, 115, 107, 116, 120, 105, 120, 119, 124, 118, 126, 118, 109, 122, 133, 102, 109, 108, 112, 127, 100, 127, 120, 132, 134, 121, 123, 111, 128, 113, 157, 113, 112, 126, 117, 110, 116, 123, 115, 150, 121, 119, 120, 119, 107, 116, 108, 108, 114, 139, 116, 114, 112, 116, 127, 105, 110, 93, 119, 119, 123, 116, 112, 117, 140, 108, 116, 120, 113, 117, 117, 106, 116, 97, 115, 111, 122, 115, 122, 113, 117, 124, 119, 108, 121, 125, 120, 113, 131, 122, 126, 111, 117, 112, 128, 122, 114, 113, 109, 124, 122, 118, 119, 115, 122, 111, 112, 116, 118, 120, 117, 112, 127, 125, 104, 108, 124, 107, 130, 112, 117, 119, 116, 121, 117, 116, 107, 127, 101, 114, 96, 118, 114, 109, 121, 106, 111, 110, 118, 123, 117, 136, 110, 118, 86, 101, 106, 121, 99, 117, 133, 121, 128, 110, 113, 98, 113, 120, 112, 102, 117, 126, 99, 118, 126, 112, 110, 106, 111, 127, 127, 91, 115, 95, 128, 113, 120, 111, 125, 121, 120, 109, 115, 116, 106, 123, 106, 112, 120, 125, 116, 127, 111, 120, 129, 134, 123, 90, 128, 102, 112, 113, 116, 122, 101, 138, 110, 107, 113, 109, 113, 111, 108, 112, 122, 117, 116, 106, 112, 108, 111, 120, 119, 113, 106, 118, 135, 125, 144, 128, 111, 113, 112, 121, 121, 123, 119, 116, 119, 119, 105, 111, 97, 109, 125, 121, 119, 116, 124, 120, 117, 121, 115, 119, 117, 108, 112, 145, 104, 107, 130, 107, 117, 102, 123, 123, 109, 133, 112, 118, 117, 112, 124, 124, 73, 110, 98, 133, 121, 110, 124, 121, 124, 105, 118, 110, 113, 124, 115, 131, 103, 107, 114, 122, 134, 120, 117, 142, 107, 109, 125, 100, 127, 111, 113, 117, 119, 106, 107, 114, 120, 118, 132, 113, 98, 106, 97, 123, 116, 108, 100, 122, 121, 124, 115, 117, 117, 108, 108, 123, 117, 109, 107, 115, 102, 123, 104, 133, 107, 102, 113, 106, 120, 121, 146, 131, 106, 106, 117, 100, 120, 129, 109, 129, 129, 120, 120, 129, 132, 124, 111, 113, 114, 109, 102, 113, 132, 135, 111, 121, 112, 122, 100, 105, 109, 139, 111, 106, 120, 110, 119, 131, 89, 117, 97, 114, 113, 127, 112, 122, 119, 120, 132, 104, 107, 108, 105, 120, 102, 100, 115, 101, 112, 114, 110, 129, 122, 109, 111, 108, 103, 116, 119, 117, 126, 124, 127, 116, 109, 118, 114, 97, 112, 118, 118, 124, 105, 106, 108, 110, 108, 119, 84, 117, 117, 100, 111, 102, 115, 119, 110, 122, 104, 99, 103, 111, 119, 121, 110, 108, 113, 129, 115, 111, 119, 103, 129, 124, 106, 133, 108, 103, 122, 111, 112, 105, 104, 120, 132, 108, 117, 112, 119, 101, 113, 121, 111, 131, 117, 131, 126, 111, 116, 116, 111, 120, 123, 118, 111, 109, 110, 129, 116, 116, 109, 113, 106, 117, 104, 114, 106, 124, 111, 105, 110, 116, 118, 115, 113, 118, 112, 108, 115, 128, 118, 117, 125, 106, 112, 114, 116, 127, 124, 105, 121, 125, 117, 117, 127, 101, 108, 124, 113, 121, 108, 130, 124, 116, 115, 118, 118, 119, 125, 120, 131, 126, 109, 112, 112, 106, 126, 167, 103, 121, 108, 118, 94, 83, 122, 113, 104, 113, 93, 108, 104, 114, 132, 114, 132, 122, 114, 110, 125, 141, 118, 105, 127, 108, 113, 121, 117, 113, 115, 118, 106, 103, 125, 106, 115, 109, 97, 113, 104, 119, 126, 114, 108, 95, 130, 116, 104, 115, 122, 108, 120, 113, 111, 108, 125, 126, 111, 120, 137, 119, 109, 99, 124, 114, 106, 118, 94, 122, 107, 109, 120, 107, 105, 105, 117, 113, 100, 139, 124, 115, 132, 121, 106, 115, 120, 126, 114, 102, 115, 118, 100, 118, 106, 129, 112, 100, 123, 105, 110, 117, 121, 126, 111, 113, 108, 123, 130, 124, 131, 126, 129, 114, 115, 138, 105, 109, 124, 117, 109, 119, 125, 109, 124, 143, 109, 112, 113, 103, 114, 105, 111, 110, 112, 127, 110, 120, 116, 121, 102, 105, 111, 125, 110, 95, 117, 114, 110, 110, 109, 119, 110, 114, 111, 117, 101, 138, 117, 121, 99, 111, 116, 106, 97, 106, 115, 108, 115, 130, 108, 112, 118, 106, 101, 106, 106, 118, 106, 111, 95, 109, 137, 110, 112, 115, 107, 128, 133, 116, 110, 119, 92, 127, 120, 124, 121, 128, 101, 112, 113, 117, 102, 114, 107, 116, 113, 115, 105, 104, 108, 124, 115, 115, 116, 112, 106, 112, 124, 120, 116, 120, 113, 124, 131, 108, 109, 109, 103, 123, 117, 115, 116, 115, 106, 119, 114, 120, 107, 120, 98, 109, 112, 110, 108, 113, 124, 122, 116, 114, 111, 99, 128, 108, 107, 118, 114, 126, 113, 110, 117, 122, 119, 113, 123, 116, 117, 108, 109, 108, 115, 112, 118, 123, 121, 112, 120, 126, 119, 116, 120, 108, 116, 122, 117, 109, 114, 117, 105, 113, 113, 108, 106, 114, 113, 108, 106, 111, 132, 110, 113, 111, 104, 123, 114, 113, 108, 113, 126, 105, 108, 113, 120, 114, 111, 108, 115, 114, 108, 114, 106, 119, 113, 114, 113, 114, 112, 120, 103, 115, 111, 116, 124, 114, 112, 117, 115, 107, 111, 112, 129, 112, 125, 113, 100, 103, 118, 116, 111, 118, 110, 109, 117, 106, 110, 110, 116, 115, 110, 118, 122, 122, 134, 112, 111, 115, 126, 118, 112, 113, 112, 124, 112, 114, 122, 106, 115, 115, 124, 105, 120, 119, 121, 113, 112, 117, 110, 115, 98, 108, 111, 123, 118, 120, 107, 125, 114, 118, 113, 125, 119, 114, 117, 115, 121, 119, 121, 117, 124, 114, 127, 112, 108, 119, 119, 119, 115, 115, 119, 113, 118, 138, 113, 132, 113, 111, 114, 128, 111, 115, 114, 118, 124, 124, 114, 119, 108, 112, 111, 113, 113, 115, 124, 121, 122, 106, 119, 115, 125, 122, 113, 122, 108, 117, 109, 118, 119, 113, 119, 114, 101, 137, 122, 117, 117, 115, 106, 117, 120, 115, 118, 116, 125, 105, 122, 111, 117, 114, 112, 113, 116, 119, 116, 114, 122, 120, 111, 110, 123, 117, 112, 116, 107, 117, 116, 120, 105, 116, 120, 114, 127, 119, 112, 107, 111, 120, 118, 115, 124, 114, 121, 109, 122, 110, 123, 110, 108, 122, 121, 98, 102, 112, 113, 104, 131, 113, 124, 111, 113, 108, 112, 122, 113, 113, 109, 123, 117, 123, 115, 105, 121, 113, 115, 118, 118, 116, 121, 116, 115, 113, 105, 115, 113, 113, 107, 123, 115, 116, 125, 121, 108, 110, 124, 122, 107, 122, 112, 106, 114, 114, 136, 122, 113, 119, 106, 118, 119, 108, 111, 118, 115, 116, 122, 117, 113, 115, 125, 112, 114, 108, 115, 111, 117, 112, 123, 119, 115, 113, 109, 118, 108, 115, 119, 121, 123, 119, 112, 135, 113, 119, 114, 117, 104, 117, 110, 114, 118, 117, 110, 115, 128, 111, 113, 110, 102, 109, 117, 110, 113, 117, 119, 112, 119, 121, 121, 110, 113, 114, 115, 109, 118, 119, 122, 126, 104, 117, 103, 111, 112, 129, 121, 130, 114, 114, 115, 117, 117, 110, 126, 117, 118, 113, 105, 121, 115, 113, 119, 114, 105, 117, 117, 112, 109, 113, 100, 122, 122, 106, 109, 113, 115, 114, 100, 124, 117, 130, 114, 109, 112, 117, 108, 113, 112, 113, 123, 120, 114, 118, 117, 119, 119, 104, 115, 117, 104, 121, 128, 108, 103, 136, 111, 103, 100, 114, 114, 117, 103, 114, 110, 109, 114, 116, 120, 114, 113, 120, 122, 117, 111, 120, 117, 114, 116, 117, 113, 110, 108, 125, 108, 119, 113, 113, 117, 126, 123, 138, 107, 113, 123, 129, 134, 116, 112, 111, 130, 124, 116, 117, 122, 116, 111, 97, 115, 96, 119, 113, 119, 98, 116, 107, 107, 117, 115, 116, 117, 126, 117, 117, 128, 109, 130, 95, 113, 120, 121, 122, 112, 113, 132, 125, 111, 148, 118, 122, 102, 19, 116, 122, 126, 119, 117, 116, 120, 108, 103, 111, 130, 117, 123, 115, 113, 116, 131, 114, 108, 116, 110, 132, 117, 118, 121, 104, 103, 106, 13, 115, 117, 107, 109, 111, 104, 119, 111, 123, 115, 115, 124, 126, 106, 114, 105, 116, 111, 97, 122, 111, 131, 119, 117, 127, 113, 116, 113, 112, 120, 107, 111, 119, 139, 102, 108, 103, 124, 118, 107, 121, 117, 107, 109, 124, 113, 129, 132, 84, 109, 113, 101, 118, 128, 119, 111, 106, 126, 122, 121, 125, 108, 81, 115, 118, 110, 120, 106, 108, 124, 118, 110, 114, 124, 118, 114, 113, 109, 115, 119, 110, 107, 103, 130, 125, 115, 110, 120, 110, 92, 105, 96, 123, 113, 124, 87, 111, 115, 125, 121, 119, 114, 116, 118, 113, 118, 127, 109, 116, 114, 115, 125, 109, 101, 130, 127, 123, 114, 113, 124, 121, 85, 124, 117, 115, 125, 103, 106, 126, 129, 106, 118, 120, 120, 117, 119, 120, 128, 111, 105, 111, 121, 130, 123, 113, 105, 112, 123, 121, 131, 123, 121, 104, 116, 113, 124, 112, 110, 97, 128, 106, 114, 110, 121, 121, 132, 111, 113, 113, 114, 111, 109, 123, 126, 114, 124, 112, 101, 111, 112, 109, 114, 125, 112, 116, 119, 108, 108, 119, 118, 133, 129, 138, 122, 111, 101, 101, 114, 124, 127, 118, 126, 125, 123, 114, 110, 102, 110, 118, 118, 124, 93, 112, 104, 117, 127, 113, 121, 127, 106, 98, 119, 110, 117, 120, 120, 116, 115, 119, 108, 125, 100, 118, 121, 116, 121, 93, 107, 127, 120, 126, 107, 117, 130, 123, 112, 117, 122, 107, 118, 132, 107, 128, 109, 102, 127, 119, 111, 225, 111, 110, 105, 124, 119, 123, 84, 120, 109, 123, 114, 123, 108, 124, 124, 101, 114, 120, 115, 127, 112, 123, 121, 143, 103, 98, 109, 116, 120, 120, 122, 120, 132, 114, 126, 103, 0, 125, 121, 102, 124, 105, 123, 113, 114, 107, 109, 125, 110, 112, 115, 104, 121, 112, 114, 99, 119, 117, 134, 113, 124, 101, 102, 121, 123, 115, 122, 132, 124, 102, 109, 113, 123, 123, 122, 105, 114, 124, 121, 113, 104, 120, 113, 100, 97, 113, 131, 111, 113, 108, 111, 114, 134, 126, 114, 114, 131, 111, 107, 117, 115, 116, 102, 119, 122, 118, 114, 119, 118, 86, 113, 119, 103, 113, 117, 111, 117, 118, 115, 134, 114, 116, 124, 132, 118, 121, 125, 130, 114, 122, 108, 107, 120, 125, 117, 119, 109, 111, 117, 109, 109, 117, 117, 119, 126, 120, 114, 122, 124, 124, 126, 110, 111, 108, 111, 112, 108, 120, 124, 105, 117, 126, 104, 113, 116, 116, 119, 114, 119, 122, 112, 111, 111, 130, 127, 117, 108, 109, 124, 117, 118, 120, 105, 118, 114, 103, 124, 113, 113, 138, 118, 100, 124, 116, 119, 114, 117, 134, 96, 121, 116, 119, 120, 120, 109, 132, 122, 109, 123, 111, 104, 120, 123, 113, 112, 124, 108, 108, 116, 121, 121, 122, 119, 104, 117, 113, 117, 117, 126, 115, 121, 117, 123, 109, 124, 111, 112, 116, 120, 120, 120, 101, 114, 123, 114, 128, 114, 119, 120, 113, 103, 127, 129, 114, 114, 111, 111, 113, 106, 125, 115, 117, 92, 119, 122, 108, 114, 100, 118, 122, 135, 123, 122, 121, 115, 113, 117, 114, 126, 120, 118, 114, 138, 120, 124, 126, 115, 109, 108, 106, 118, 113, 119, 111, 121, 144, 124, 121, 115, 128, 120, 151, 116, 124, 111, 129, 111, 121, 114, 129, 115, 115, 115, 121, 115, 109, 120, 125, 118, 121, 114, 114, 116, 116, 103, 116, 109, 115, 110, 115, 129, 135, 116, 130, 105, 108, 119, 117, 105, 123, 113, 109, 110, 121, 119, 115, 125, 112, 117, 125, 117, 116, 115, 120, 115, 115, 126, 113, 118, 103, 97, 103, 124, 113, 117, 109, 115, 111, 110, 116, 122, 118, 121, 114, 111, 117, 120, 111, 109, 105, 118, 112, 120, 120, 124, 121, 114, 112, 112, 112, 115, 109, 114, 121, 117, 120, 109, 116, 118, 127, 112, 108, 116, 111, 113, 109, 121, 118, 126, 119, 113, 124, 114, 112, 118, 112, 111, 127, 118, 121, 111, 117, 120, 117, 116, 125, 113, 115, 113, 117, 114, 118, 110, 111, 99, 128, 121, 120, 105, 119, 116, 100, 132, 122, 116, 119, 111, 114, 110, 119, 120, 119, 125, 110, 115, 118, 115, 124, 116, 103, 115, 121, 103, 121, 117, 128, 117, 111, 126, 119, 109, 116, 114, 101, 114, 117, 117, 125, 114, 114, 113, 112, 108, 102, 118, 102, 134, 121, 158, 124, 127, 112, 123, 119, 124, 118, 115, 109, 107, 122, 115, 121, 115, 118, 108, 116, 114, 112, 123, 115, 103, 115, 111, 120, 116, 105, 117, 126, 121, 116, 101, 119, 109, 114, 116, 114, 121, 117, 120, 109, 114, 114, 111, 120, 114, 109, 126, 122, 119, 117, 118, 111, 113, 126, 173, 117, 93, 112, 123, 110, 118, 114, 111, 114, 117, 112, 126, 111, 123, 123, 103, 112, 118, 164, 131, 118, 106, 108, 112, 117, 113, 139, 118, 114, 117, 119, 118, 109, 110, 118, 111, 119, 125, 125, 119, 114, 111, 113, 115, 133, 111, 121, 123, 106, 120, 110, 119, 110, 120, 115, 108, 125, 115, 110, 119, 127, 114, 111, 102, 103, 120, 117, 124, 114, 122, 112, 115, 112, 106, 131, 107, 101, 118, 126, 118, 126, 111, 117, 116, 109, 120, 118, 101, 114, 101, 118, 121, 114, 123, 113, 113, 119, 116, 105, 123, 112, 117, 121, 112, 120, 123, 119, 117, 132, 113, 118, 118, 122, 113, 121, 123, 117, 118, 108, 114, 116, 118, 112, 125, 115, 136, 118, 108, 111, 115, 137, 114, 111, 125, 116, 110, 117, 119, 118, 112, 115, 125, 110, 121, 116, 143, 118, 135, 117, 85, 126, 135, 108, 134, 107, 126, 133, 114, 113, 110, 107, 121, 128, 124, 95, 101, 100, 92, 132, 120, 109, 114, 120, 122, 105, 107, 106, 120, 122, 122, 115, 147, 124, 93, 111, 105, 114, 122, 144, 103, 114, 118, 119, 121, 123, 116, 129, 96, 144, 123, 110, 119, 113, 133, 107, 95, 106, 131, 119, 106, 132, 95, 113, 118, 135, 128, 131, 114, 113, 122, 96, 118, 111, 128, 120, 116, 104, 101, 116, 96, 123, 136, 107, 116, 109, 108, 107, 117, 116, 107, 102, 97, 118, 127, 123, 114, 121, 112, 112, 120, 109, 119, 129, 121, 99, 90, 90, 120, 124, 122, 114, 123, 140, 114, 104, 126, 111, 125, 116, 132, 114, 113, 103, 121, 128, 119, 125, 115, 133, 121, 106, 131, 99, 123, 100, 106, 119, 126, 119, 120, 103, 102, 113, 115, 120, 112, 93, 120, 111, 123, 108, 131, 120, 128, 114, 111, 100, 110, 127, 111, 114, 121, 114, 124, 106, 128, 119, 107, 90, 119, 135, 105, 116, 121, 120, 99, 125, 118, 114, 107, 118, 115, 109, 126, 114, 132, 110, 114, 115, 123, 124, 108, 113, 107, 125, 131, 125, 112, 125, 126, 121, 105, 105, 99, 116, 126, 127, 114, 123, 108, 118, 122, 111, 109, 115, 119, 115, 119, 124, 102, 116, 113, 120, 110, 118, 114, 114, 112, 104, 132, 124, 124, 119, 119, 114, 123, 116, 100, 107, 110, 125, 116, 131, 123, 128, 108, 127, 112, 111, 120, 122, 114, 106, 114, 107, 110, 103, 110, 124, 111, 106, 109, 114, 119, 117, 111, 108, 128, 124, 124, 113, 109, 113, 122, 129, 132, 112, 128, 130, 134, 104, 113, 133, 122, 110, 101, 108, 119, 113, 114, 106, 127, 107, 121, 124, 113, 133, 123, 107, 110, 89, 121, 112, 106, 124, 114, 116, 102, 117, 113, 117, 113, 118, 112, 110, 116, 98, 117, 100, 121, 110, 113, 109, 118, 135, 98, 109, 128, 116, 111, 119, 132, 134, 113, 121, 119, 120, 108, 117, 105, 116, 130, 102, 114, 110, 124, 102, 134, 99, 101, 125, 80, 106, 142, 119, 106, 116, 113, 98, 110, 117, 97, 128, 108, 112, 111, 130, 117, 111, 116, 115, 124, 90, 115, 114, 115, 118, 113, 108, 131, 121, 119, 125, 110, 112, 119, 122, 108, 126, 111, 108, 117, 109, 105, 118, 118, 115, 123, 110, 107, 118, 122, 109, 110, 116, 143, 105, 123, 122, 117, 145, 108, 103, 119, 121, 100, 115, 105, 107, 110, 96, 121, 106, 121, 105, 133, 113, 125, 97, 132, 101, 112, 111, 113, 113, 116, 123, 118, 114, 128, 110, 108, 117, 116, 121, 110, 99, 122, 111, 129, 106, 101, 120, 100, 106, 105, 122, 118, 86, 105, 125, 91, 106, 118, 98, 114, 109, 105, 126, 117, 118, 109, 126, 106, 112, 111, 118, 115, 121, 113, 113, 127, 122, 120, 140, 137, 144, 118, 106, 118, 106, 141, 128, 120, 114, 105, 100, 108, 124, 110, 102, 123, 123, 112, 154, 111, 117, 114, 94, 114, 124, 112, 113, 137, 125, 116, 115, 103, 122, 110, 109, 114, 127, 123, 124, 104, 110, 127, 114, 117, 105, 115, 119, 116, 121, 119, 141, 118, 115, 111, 107, 133, 118, 128, 109, 106, 122, 94, 109, 135, 107, 111, 125, 118, 126, 111, 108, 118, 120, 121, 112, 106, 114, 121, 118, 119, 134, 122, 144, 103, 132, 107, 122, 112, 114, 110, 106, 116, 123, 119, 121, 111, 122, 114, 117, 131, 126, 105, 116, 118, 119, 121, 110, 123, 118, 132, 122, 112, 121, 112, 109, 114, 144, 121, 108, 119, 109, 113, 102, 119, 129, 118, 124, 101, 114, 119, 123, 156, 114, 119, 133, 119, 108, 118, 124, 116, 124, 113, 108, 111, 109, 115, 117, 129, 105, 111, 121, 110, 116, 125, 107, 109, 119, 111, 115, 102, 122, 109, 112, 111, 114, 122, 132, 121, 113, 122, 114, 98, 124, 120, 108, 109, 124, 132, 116, 116, 118, 110, 119, 125, 119, 118, 123, 114, 113, 116, 109, 124, 112, 109, 121, 106, 112, 111, 94, 123, 120, 105, 117, 108, 119, 106, 104, 118, 111, 104, 114, 127, 124, 119, 115, 110, 125, 115, 113, 106, 128, 121, 114, 116, 113, 115, 124, 110, 119, 118, 121, 113, 144, 108, 121, 108, 116, 116, 104, 135, 123, 114, 121, 120, 114, 122, 114, 108, 111, 129, 135, 112, 119, 125, 107, 120, 110, 115, 148, 103, 125, 113, 113, 121, 115, 122, 122, 114, 118, 104, 114, 123, 109, 103, 97, 116, 109, 115, 114, 108, 104, 131, 96, 128, 99, 121, 112, 130, 126, 108, 120, 101, 108, 110, 106, 130, 121, 122, 119, 114, 120, 107, 106, 123, 101, 107, 119, 116, 135, 117, 121, 110, 110, 114, 127, 110, 119, 116, 108, 105, 174, 101, 123, 108, 111, 118, 120, 129, 119, 108, 121, 123, 119, 111, 131, 118, 109, 100, 114, 118, 105, 116, 115, 114, 130, 114, 127, 120, 145, 120, 69, 121, 114, 114, 111, 111, 116, 117, 116, 111, 128, 113, 112, 113, 118, 82, 123, 123, 119, 122, 126, 110, 91, 118, 125, 111, 121, 109, 110, 119, 111, 128, 125, 116, 129, 95, 126, 121, 105, 112, 118, 116, 113, 125, 118, 106, 107, 112, 109, 117, 109, 111, 124, 124, 127, 93, 126, 121, 112, 127, 121, 108, 112, 110, 120, 99, 116, 108, 118, 129, 116, 104, 119, 103, 116, 106, 114, 103, 110, 108, 108, 118, 100, 125, 100, 112, 112, 110, 123, 123, 117, 115, 113, 119, 116, 106, 121, 139, 123, 109, 129, 114, 121, 107, 123, 101, 100, 116, 109, 118, 88, 103, 116, 120, 137, 91, 107, 110, 129, 126, 129, 115, 118, 110, 131, 109, 125, 110, 117, 123, 119, 120, 116, 102, 110, 109, 111, 123, 117, 115, 110, 133, 116, 109, 101, 109, 118, 118, 103, 113, 116, 107, 127, 94, 126, 107, 122, 114, 126, 119, 109, 113, 100, 107, 151, 111, 125, 110, 128, 115, 121, 122, 123, 93, 122, 93, 104, 121, 110, 128, 113, 126, 118, 134, 99, 103, 133, 114, 106, 132, 118, 133, 102, 146, 116, 117, 102, 101, 115, 118, 125, 107, 121, 114, 114, 136, 123, 137, 132, 120, 124, 118, 122, 117, 100, 95, 120, 143, 125, 111, 138, 116, 143, 125, 110, 98, 110, 108, 103, 117, 132, 122, 111, 99, 120, 125, 116, 113, 125, 120, 107, 125, 104, 129, 102, 113, 97, 125, 120, 125, 127, 125, 140, 113, 111, 108, 121, 110, 121, 137, 98, 127, 127, 108, 128, 108, 121, 116, 110, 111, 121, 119, 113, 89, 102, 112, 120, 103, 91, 114, 103, 113, 114, 125, 131, 129, 112, 114, 86, 103, 128, 101, 110, 120, 101, 114, 130, 120, 96, 116, 119, 108, 127, 121, 85, 104, 114, 147, 149, 110, 112, 123, 107, 127, 126, 121, 129, 112, 109, 113, 110, 135, 112, 158, 113, 101, 107, 113, 109, 133, 116, 111, 118, 93, 103, 129, 113, 135, 101, 95, 118, 129, 125, 119, 92, 118, 129, 115, 110, 114, 122, 114, 117, 116, 96, 141, 122, 121, 134, 98, 105, 107, 112, 103, 126, 110, 101, 94, 145, 103, 111, 124, 104, 123, 107, 110, 108, 106, 112, 109, 101, 118, 126, 142, 110, 94, 115, 121, 123, 110, 124, 95, 116, 127, 144, 114, 120, 97, 131, 104, 106, 114, 129, 104, 149, 128, 129, 126, 92, 107, 122, 125, 98, 115, 102, 82, 100, 97, 106, 139, 137, 129, 112, 128, 103, 99, 105, 126, 98, 137, 112, 124, 141, 117, 127, 146, 113, 131, 103, 127, 112, 125, 110, 119, 119, 111, 111, 122, 126, 99, 114, 100, 123, 105, 129, 105, 103, 126, 115, 105, 112, 116, 122, 103, 99, 114, 119, 107, 133, 122, 110, 123, 134, 129, 115, 113, 104, 127, 112, 82, 120, 103, 118, 98, 110, 98, 112, 114, 83, 109, 109, 132, 117, 115, 86, 117, 148, 117, 111, 120, 122, 104, 107, 109, 96, 97, 105, 122, 111, 94, 111, 128, 118, 123, 99, 117, 103, 105, 107, 129, 120, 130, 108, 117, 129, 111, 95, 124, 95, 123, 105, 124, 112, 116, 126, 117, 113, 123, 110, 114, 108, 125, 98, 112, 107, 99, 125, 92, 117, 118, 110, 100, 137, 103, 118, 85, 119, 115, 116, 114, 117, 118, 118, 83, 127, 99, 108, 124, 126, 140, 148, 126, 110, 107, 130, 130, 108, 121, 128, 116, 120, 113, 113, 112, 106, 109, 116, 107, 134, 136, 116, 127, 116, 118, 116, 119, 100, 136, 118, 108, 117, 124, 112, 116, 114, 122, 109, 99, 121, 104, 130, 148, 119, 125, 116, 114, 107, 90, 105, 117, 133, 110, 139, 106, 126, 115, 136, 91, 127, 121, 110, 111, 114, 130, 124, 108, 115, 93, 114, 97, 104, 117, 119, 105, 110, 110, 111, 111, 117, 110, 118, 117, 106, 104, 118, 107, 121, 101, 109, 96, 160, 113, 100, 100, 120, 129, 132, 103, 121, 117, 125, 119, 121, 112, 107, 100, 119, 123, 120, 121, 138, 113, 109, 116, 145, 105, 125, 109, 112, 120, 116, 110, 94, 122, 118, 108, 131, 123, 119, 112, 106, 116, 120, 103, 130, 117, 123, 98, 113, 103, 110, 108, 116, 117, 110, 121, 116, 109, 110, 124, 119, 109, 110, 113, 81, 111, 112, 120, 115, 123, 119, 127, 126, 101, 116, 98, 112, 107, 119, 115, 107, 122, 118, 121, 125, 113, 106, 118, 117, 108, 97, 109, 118, 127, 116, 123, 121, 116, 118, 118, 118, 108, 125, 113, 128, 112, 138, 111, 124, 126, 111, 126, 110, 135, 110, 113, 109, 119, 110, 118, 105, 111, 98, 117, 115, 122, 121, 109, 122, 95, 126, 108, 114, 117, 123, 119, 106, 123, 130, 114, 118, 112, 97, 118, 117, 120, 109, 107, 111, 124, 114, 126, 118, 111, 108, 106, 123, 111, 111, 120, 117, 115, 118, 112, 115, 98, 118, 118, 119, 108, 104, 96, 128, 136, 115, 110, 105, 103, 121, 113, 119, 117, 124, 114, 123, 115, 108, 107, 127, 126, 110, 114, 114, 117, 113, 112, 114, 121, 115, 114, 125, 131, 108, 117, 107, 120, 120, 124, 96, 115, 123, 123, 131, 98, 139, 113, 117, 118, 110, 123, 117, 132, 121, 118, 115, 100, 109, 115, 127, 98, 126, 113, 117, 109, 99, 110, 125, 115, 108, 120, 125, 109, 110, 127, 107, 120, 91, 122, 121, 109, 109, 120, 131, 112, 122, 110, 109, 86, 134, 121, 117, 102, 115, 120, 114, 117, 107, 135, 116, 130, 124, 129, 114, 123, 103, 113, 111, 124, 115, 120, 120, 121, 113, 114, 107, 95, 88, 109, 110, 119, 115, 103, 107, 127, 114, 121, 127, 117, 109, 108, 119, 110, 126, 123, 120, 106, 124, 125, 121, 121, 117, 114, 123, 115, 129, 129, 116, 114, 134, 124, 109, 119, 144, 137, 113, 109, 107, 125, 126, 114, 110, 111, 127, 99, 109, 118, 116, 120, 107, 112, 130, 114, 100, 112, 119, 123, 129, 116, 119, 127, 118, 111, 126, 124, 133, 111, 109, 110, 116, 125, 110, 113, 103, 109, 109, 109, 114, 105, 109, 113, 112, 108, 111, 116, 104, 118, 109, 104, 106, 152, 122, 110, 114, 105, 113, 120, 121, 110, 120, 107, 112, 114, 109, 118, 120, 132, 98, 105, 106, 112, 117, 125, 116, 106, 129, 113, 130, 136, 121, 116, 106, 114, 110, 101, 116, 129, 120, 106, 116, 114, 132, 103, 109, 116, 111, 111, 131, 116, 120, 121, 103, 113, 110, 120, 110, 119, 113, 132, 121, 118, 116, 109, 112, 132, 108, 102, 95, 110, 153, 112, 112, 117, 119, 116, 106, 123, 118, 97, 110, 106, 114, 133, 117, 109, 119, 117, 123, 99, 131, 122, 126, 121, 116, 106, 122, 130, 117, 120, 112, 114, 114, 113, 112, 122, 127, 110, 110, 118, 114, 115, 111, 115, 119, 115, 116, 110, 107, 128, 112, 112, 126, 128, 109, 110, 121, 108, 109, 121, 109, 115, 103, 116, 127, 125, 113, 126, 102, 119, 122, 117, 114, 116, 112, 131, 112, 126, 118, 113, 125, 110, 107, 107, 131, 116, 119, 111, 116, 122, 122, 132, 108, 112, 123, 86, 119, 112, 118, 127, 117, 118, 125, 124, 116, 120, 117, 119, 119, 120, 112, 121, 102, 109, 127, 111, 115, 105, 126, 115, 122, 112, 115, 112, 117, 128, 113, 122, 118, 119, 114, 113, 116, 115, 120, 108, 121, 122, 123, 112, 131, 121, 114, 114, 122, 118, 102, 116, 104, 108, 116, 120, 123, 113, 118, 112, 119, 119, 119, 121, 116, 123, 98, 117, 123, 115, 114, 115, 119, 120, 111, 117, 116, 108, 114, 113, 119, 113, 122, 116, 103, 118, 119, 100, 111, 114, 111, 117, 118, 109, 115, 105, 120, 121, 119, 116, 120, 105, 116, 111, 113, 117, 120, 108, 111, 113, 118, 115, 95, 110, 109, 116, 106, 124, 120, 121, 114, 189, 121, 119, 113, 115, 119, 115, 115, 112, 122, 119, 127, 113, 113, 122, 155, 114, 113, 112, 118, 126, 119, 118, 118, 117, 113, 109, 118, 123, 118, 111, 138, 121, 119, 111, 110, 113, 120, 117, 110, 118, 102, 114, 104, 113, 118, 111, 113, 114, 120, 120, 113, 117, 116, 118, 127, 111, 132, 120, 117, 122, 109, 111, 114, 111, 108, 122, 114, 103, 110, 117, 114, 123, 115, 116, 100, 119, 117, 98, 116, 113, 117, 125, 121, 121, 114, 123, 93, 117, 121, 118, 120, 118, 116, 127, 112, 109, 118, 118, 115, 115, 95, 151, 112, 111, 117, 116, 109, 116, 110, 114, 112, 122, 118, 117, 122, 113, 112, 115, 119, 127, 123, 118, 112, 110, 97, 120, 116, 118, 99, 79, 131, 110, 116, 116, 119, 111, 115, 110, 117, 114, 112, 118, 106, 122, 121, 114, 108, 120, 131, 114, 119, 123, 109, 118, 112, 111, 130, 113, 116, 119, 115, 111, 110, 115, 113, 120, 127, 117, 119, 113, 119, 118, 114, 111, 116, 114, 117, 112, 114, 125, 110, 115, 122, 124, 111, 116, 118, 118, 110, 117, 111, 114, 114, 124, 116, 122, 81, 116, 118, 112, 118, 118, 122, 114, 121, 112, 126, 112, 116, 119, 116, 120, 118, 115, 121, 125, 128, 131, 117, 114, 111, 119, 122, 118, 124, 119, 106, 114, 119, 121, 116, 97, 123, 47, 114, 122, 108, 120, 120, 124, 125, 118, 111, 99, 108, 116, 123, 110, 113, 121, 112, 123, 120, 116, 115, 121, 115, 121, 111, 106, 118, 125, 119, 116, 111, 117, 117, 114, 113, 112, 146, 116, 120, 122, 120, 115, 120, 115, 115, 123, 99, 50, 122, 123, 123, 110, 117, 116, 115, 116, 119, 126, 126, 115, 117, 112, 115, 112, 117, 117, 119, 113, 117, 114, 120, 117, 117, 116, 124, 116, 121, 116, 120, 119, 114, 116, 113, 114, 120, 125, 110, 114, 111, 117, 120, 125, 120, 117, 115, 130, 117, 118, 111, 108, 129, 117, 126, 114, 123, 122, 112, 123, 107, 106, 114, 117, 163, 96, 116, 113, 114, 115, 115, 108, 115, 121, 106, 116, 115, 113, 123, 113, 120, 120, 79, 109, 126, 124, 121, 120, 113, 121, 119, 125, 116, 111, 121, 114, 122, 120, 123, 114, 120, 114, 113, 116, 143, 112, 102, 112, 112, 103, 122, 123, 114, 116, 117, 128, 108, 110, 115, 121, 110, 128, 116, 116, 114, 122, 109, 114, 106, 119, 110, 129, 112, 114, 106, 120, 121, 109, 111, 109, 116, 126, 102, 132, 127, 107, 113, 114, 113, 118, 118, 127, 132, 120, 108, 122, 128, 99, 99, 123, 112, 109, 120, 117, 114, 128, 107, 100, 105, 123, 115, 122, 125, 139, 117, 111, 116, 126, 115, 118, 123, 105, 121, 120, 100, 112, 112, 123, 110, 115, 107, 111, 133, 119, 123, 118, 119, 116, 155, 115, 108, 120, 114, 109, 111, 117, 115, 124, 130, 112, 107, 118, 116, 135, 115, 118, 100, 122, 117, 150, 103, 113, 107, 106, 109, 117, 120, 113, 122, 113, 113, 115, 124, 115, 106, 115, 131, 110, 106, 110, 112, 125, 119, 120, 118, 120, 125, 107, 111, 103, 114, 118, 115, 113, 115, 115, 107, 121, 122, 114, 113, 123, 114, 117, 125, 112, 110, 103, 85, 100, 117, 122, 111, 118, 114, 98, 106, 121, 106, 113, 125, 136, 111, 116, 103, 121, 121, 114, 107, 106, 123, 115, 113, 115, 111, 117, 112, 120, 117, 108, 110, 116, 116, 139, 123, 121, 113, 118, 128, 115, 116, 114, 115, 120, 112, 163, 110, 119, 116, 114, 115, 118, 109, 122, 118, 121, 123, 105, 147, 117, 115, 113, 115, 122, 115, 117, 127, 112, 117, 118, 111, 120, 94, 120, 117, 124, 142, 115, 101, 118, 110, 106, 110, 103, 121, 82, 112, 116, 110, 140, 116, 128, 114, 109, 118, 128, 107, 114, 112, 129, 126, 103, 108, 119, 113, 116, 64, 110, 118, 135, 116, 114, 120, 124, 108, 113, 106, 118, 131, 113, 119, 122, 126, 117, 101, 116, 112, 121, 117, 116, 124, 122, 108, 118, 124, 129, 118, 118, 112, 117, 124, 116, 122, 133, 122, 115, 114, 107, 116, 114, 107, 115, 118, 116, 109, 126, 101, 121, 111, 114, 96, 117, 116, 117, 111, 132, 110, 120, 120, 116, 110, 105, 128, 114, 111, 174, 115, 128, 115, 104, 114, 118, 109, 110, 116, 114, 96, 119, 104, 108, 122, 110, 115, 116, 116, 104, 132, 112, 94, 106, 101, 110, 118, 121, 113, 133, 118, 118, 108, 120, 118, 98, 114, 113, 122, 133, 111, 125, 110, 124, 116, 117, 113, 121, 124, 127, 122, 111, 82, 124, 121, 111, 119, 134, 113, 111, 120, 51, 107, 117, 109, 120, 111, 114, 118, 121, 114, 103, 118, 111, 124, 113, 119, 118, 105, 142, 104, 114, 122, 103, 108, 118, 116, 110, 106, 114, 119, 121, 123, 107, 110, 123, 117, 116, 111, 116, 102, 114, 125, 119, 117, 120, 116, 111, 117, 113, 117, 113, 128, 108, 109, 115, 116, 116, 110, 127, 122, 113, 113, 104, 115, 127, 111, 104, 117, 118, 110, 100, 130, 118, 117, 109, 110, 112, 98, 98, 115, 116, 111, 116, 104, 124, 115, 112, 120, 124, 111, 117, 63, 109, 112, 111, 108, 118, 117, 121, 122, 113, 116, 112, 109, 126, 115, 132, 104, 113, 114, 117, 123, 91, 123, 93, 94, 132, 97, 105, 110, 101, 125, 106, 116, 113, 115, 105, 114, 132, 135, 128, 115, 111, 124, 102, 99, 122, 118, 116, 122, 97, 128, 133, 122, 126, 115, 124, 118, 132, 101, 122, 118, 119, 116, 132, 113, 105, 115, 135, 121, 123, 123, 119, 124, 119, 124, 119, 107, 113, 113, 137, 109, 90, 119, 114, 107, 112, 113, 108, 134, 107, 113, 115, 106, 129, 112, 124, 134, 132, 125, 127, 123, 126, 123, 101, 117, 100, 105, 116, 107, 107, 126, 105, 117, 115, 114, 121, 116, 115, 125, 109, 120, 147, 122, 117, 118, 106, 108, 124, 100, 109, 116, 104, 138, 128, 113, 107, 115, 118, 89, 121, 109, 126, 106, 106, 124, 109, 123, 116, 133, 116, 117, 115, 109, 117, 102, 107, 126, 110, 128, 141, 116, 145, 124, 125, 114, 125, 95, 107, 119, 174, 100, 97, 112, 116, 121, 128, 119, 98, 121, 79, 106, 109, 121, 104, 120, 100, 102, 102, 132, 113, 99, 97, 141, 111, 106, 119, 111, 113, 121, 107, 128, 117, 100, 131, 115, 121, 121, 107, 129, 104, 111, 104, 112, 124, 128, 115, 105, 117, 134, 119, 126, 119, 128, 119, 107, 108, 128, 123, 123, 124, 125, 101, 114, 105, 115, 113, 103, 122, 115, 112, 113, 110, 107, 115, 112, 114, 109, 116, 120, 120, 122, 118, 132, 118, 123, 120, 118, 122, 113, 117, 126, 123, 126, 103, 110, 112, 127, 123, 121, 111, 124, 119, 104, 101, 107, 142, 134, 122, 115, 133, 115, 121, 113, 101, 120, 118, 117, 120, 106, 112, 114, 132, 140, 127, 100, 154, 99, 84, 119, 96, 115, 100, 122, 115, 103, 119, 127, 116, 81, 103, 130, 106, 115, 101, 130, 132, 120, 112, 110, 116, 121, 127, 122, 112, 118, 124, 104, 117, 108, 117, 96, 111, 129, 116, 124, 106, 113, 106, 102, 111, 100, 113, 120, 111, 108, 128, 117, 106, 108, 116, 100, 140, 108, 121, 127, 119, 108, 109, 125, 112, 139, 103, 129, 132, 119, 125, 124, 131, 120, 114, 106, 119, 118, 135, 116, 104, 132, 116, 115, 118, 128, 116, 137, 111, 128, 98, 108, 131, 117, 118, 114, 136, 116, 120, 118, 115, 122, 127, 116, 125, 121, 121, 128, 98, 116, 98, 102, 115, 139, 128, 135, 108, 121, 136, 121, 115, 110, 116, 106, 114, 118, 136, 103, 125, 117, 113, 128, 119, 110, 118, 149, 139, 108, 99, 131, 124, 115, 112, 120, 115, 130, 108, 106, 125, 115, 110, 116, 129, 125, 128, 124, 112, 121, 119, 103, 133, 121, 106, 117, 103, 118, 117, 109, 119, 111, 98, 106, 113, 103, 107, 102, 118, 129, 128, 123, 120, 122, 116, 102, 121, 115, 114, 119, 110, 127, 96, 123, 108, 101, 117, 119, 99, 112, 137, 107, 117, 111, 122, 119, 121, 97, 106, 98, 119, 109, 118, 112, 102, 107, 103, 106, 128, 124, 110, 116, 108, 134, 137, 103, 116, 117, 123, 101, 118, 128, 106, 108, 138, 122, 109, 130, 91, 117, 132, 106, 118, 93, 124, 129, 140, 112, 128, 116, 110, 117, 117, 131, 108, 115, 106, 116, 100, 128, 110, 100, 122, 120, 119, 112, 109, 110, 126, 109, 124, 107, 119, 137, 101, 110, 126, 117, 113, 109, 121, 114, 121, 107, 114, 125, 104, 114, 111, 108, 108, 115, 109, 141, 107, 120, 114, 123, 120, 122, 112, 109, 111, 102, 116, 120, 132, 129, 125, 102, 124, 129, 115, 120, 120, 128, 113, 128, 120, 119, 104, 114, 110, 134, 111, 100, 101, 120, 119, 102, 114, 118, 128, 106, 125, 128, 108, 123, 100, 107, 118, 128, 125, 135, 109, 109, 106, 124, 119, 116, 113, 130, 122, 111, 123, 119, 104, 119, 113, 123, 121, 122, 124, 116, 130, 128, 116, 117, 116, 118, 112, 131, 110, 129, 132, 93, 93, 119, 115, 98, 119, 125, 139, 117, 109, 113, 104, 126, 125, 125, 125, 92, 118, 111, 105, 119, 132, 115, 104, 91, 113, 121, 109, 116, 125, 119, 125, 96, 120, 112, 123, 97, 123, 115, 103, 114, 139, 105, 124, 122, 103, 118, 120, 100, 117, 121, 106, 104, 99, 124, 127, 105, 111, 107, 117, 115, 104, 124, 117, 121, 113, 128, 123, 122, 119, 116, 116, 114, 105, 130, 113, 107, 109, 130, 125, 109, 123, 114, 113, 100, 109, 116, 132, 128, 129, 113, 115, 122, 107, 124, 102, 112, 107, 115, 111, 126, 99, 111, 97, 116, 113, 109, 108, 114, 117, 93, 115, 119, 127, 104, 117, 109, 111, 125, 126, 115, 123, 101, 102, 114, 119, 102, 114, 110, 101, 103, 89, 126, 115, 110, 111, 117, 119, 111, 96, 104, 125, 120, 121, 103, 104, 117, 107, 117, 106, 118, 129, 120, 113, 106, 117, 116, 109, 132, 99, 122, 130, 103, 110, 126, 109, 118, 118, 129, 108, 107, 120, 111, 124, 119, 118, 112, 102, 130, 110, 122, 120, 144, 123, 114, 104, 128, 135, 116, 113, 124, 113, 107, 112, 128, 110, 111, 115, 118, 120, 86, 122, 113, 119, 113, 117, 116, 115, 115, 109, 124, 121, 120, 124, 118, 108, 111, 100, 114, 119, 150, 127, 115, 134, 107, 105, 112, 120, 117, 128, 98, 126, 122, 136, 123, 116, 93, 122, 117, 123, 114, 116, 98, 115, 100, 112, 133, 130, 110, 110, 119, 116, 119, 114, 119, 107, 112, 116, 108, 105, 127, 113, 131, 106, 107, 118, 118, 115, 112, 118, 104, 139, 103, 110, 94, 115, 114, 121, 119, 122, 115, 102, 145, 116, 114, 121, 121, 96, 118, 128, 111, 108, 103, 119, 117, 111, 127, 126, 124, 119, 115, 113, 117, 114, 120, 111, 118, 121, 113, 110, 125, 116, 114, 134, 123, 130, 121, 127, 108, 132, 142, 100, 130, 114, 114, 102, 115, 124, 134, 85, 122, 108, 114, 101, 115, 110, 115, 123, 113, 122, 105, 134, 117, 113, 114, 116, 120, 121, 117, 132, 111, 113, 117, 131, 116, 98, 106, 112, 110, 126, 111, 120, 109, 112, 112, 116, 121, 122, 105, 111, 114, 128, 111, 108, 104, 131, 132, 111, 114, 114, 115, 124, 124, 124, 117, 110, 116, 120, 108, 125, 108, 118, 113, 116, 101, 120, 121, 117, 121, 124, 110, 118, 82, 112, 124, 95, 122, 124, 114, 117, 109, 110, 116, 117, 116, 128, 119, 117, 113, 117, 112, 121, 127, 110, 114, 113, 109, 98, 116, 105, 103, 99, 110, 106, 121, 115, 114, 120, 114, 124, 137, 115, 108, 117, 109, 112, 121, 111, 129, 121, 112, 115, 119, 126, 107, 111, 126, 111, 121, 115, 129, 133, 113, 121, 101, 114, 118, 126, 114, 133, 117, 104, 119, 113, 115, 113, 120, 112, 138, 126, 101, 118, 138, 116, 126, 118, 118, 113, 111, 126, 119, 120, 107, 118, 115, 119, 103, 119, 122, 115, 115, 114, 111, 116, 116, 119, 122, 109, 126, 111, 120, 114, 126, 118, 111, 117, 113, 114, 112, 114, 100, 115, 118, 124, 121, 117, 124, 124, 117, 110, 110, 111, 118, 125, 117, 125, 117, 124, 125, 113, 114, 120, 117, 104, 123, 113, 119, 117, 120, 117, 111, 120, 124, 111, 106, 112, 120, 119, 115, 118, 130, 120, 112, 119, 116, 116, 109, 108, 118, 125, 115, 111, 121, 113, 124, 107, 114, 127, 112, 131, 125, 118, 116, 115, 115, 113, 119, 122, 118, 121, 110, 118, 114, 118, 109, 120, 115, 117, 156, 118, 115, 117, 110, 120, 114, 120, 118, 119, 116, 113, 98, 126, 109, 113, 119, 105, 126, 119, 125, 116, 112, 121, 111, 107, 119, 56, 122, 115, 124, 118, 113, 121, 122, 111, 123, 130, 114, 114, 120, 120, 107, 125, 117, 129, 117, 121, 140, 118, 129, 125, 123, 111, 110, 111, 116, 114, 115, 120, 102, 120, 118, 128, 117, 119, 118, 117, 117, 119, 113, 116, 120, 113, 116, 119, 114, 121, 114, 117, 108, 119, 116, 118, 112, 115, 115, 121, 119, 117, 126, 115, 121, 116, 111, 115, 126, 122, 105, 115, 108, 126, 122, 125, 113, 121, 123, 103, 116, 117, 110, 116, 114, 123, 119, 117, 98, 119, 123, 111, 111, 129, 124, 117, 114, 109, 116, 125, 118, 109, 116, 106, 124, 121, 116, 122, 113, 105, 121, 114, 111, 121, 98, 124, 116, 120, 116, 116, 117, 118, 119, 116, 111, 117, 114, 118, 112, 111, 123, 115, 113, 113, 126, 123, 117, 111, 132, 111, 112, 116, 124, 119, 121, 118, 118, 97, 112, 112, 119, 79, 118, 111, 106, 117, 128, 116, 114, 111, 119, 112, 114, 115, 120, 121, 105, 115, 129, 123, 123, 108, 112, 113, 121, 117, 110, 110, 122, 121, 117, 121, 106, 121, 121, 126, 109, 96, 115, 123, 114, 113, 120, 116, 108, 119, 116, 113, 107, 113, 120, 111, 119, 124, 119, 119, 109, 126, 121, 122, 129, 117, 118, 118, 124, 122, 120, 125, 122, 114, 125, 122, 118, 114, 114, 115, 120, 121, 125, 121, 123, 114, 108, 122, 115, 111, 119, 117, 118, 124, 127, 115, 64, 117, 107, 123, 117, 119, 118, 104, 121, 124, 118, 130, 115, 110, 129, 120, 114, 115, 120, 126, 123, 105, 114, 124, 119, 103, 115, 125, 102, 110, 106, 111, 110, 116, 122, 117, 122, 131, 115, 107, 127, 107, 110, 116, 125, 111, 127, 125, 103, 116, 118, 127, 134, 119, 110, 121, 121, 120, 106, 95, 104, 114, 107, 125, 134, 105, 118, 104, 117, 117, 112, 118, 120, 114, 113, 119, 113, 107, 117, 112, 105, 115, 118, 118, 119, 111, 108, 120, 130, 129, 108, 110, 118, 108, 112, 92, 115, 114, 123, 117, 120, 126, 113, 143, 114, 120, 109, 131, 116, 112, 113, 112, 116, 120, 111, 112, 117, 128, 105, 112, 116, 119, 116, 121, 118, 114, 120, 124, 109, 104, 115, 115, 119, 116, 114, 106, 114, 111, 109, 105, 114, 114, 105, 105, 115, 124, 124, 122, 117, 117, 120, 119, 117, 120, 122, 124, 114, 111, 118, 120, 115, 113, 110, 102, 110, 109, 96, 122, 111, 114, 117, 109, 111, 116, 110, 117, 100, 107, 130, 122, 111, 119, 122, 116, 139, 119, 100, 131, 118, 116, 103, 115, 111, 113, 114, 125, 104, 117, 110, 108, 105, 112, 114, 119, 117, 109, 111, 112, 109, 125, 114, 114, 122, 120, 86, 108, 109, 116, 106, 100, 114, 115, 107, 142, 111, 111, 97, 91, 106, 123, 118, 117, 108, 128, 125, 121, 120, 109, 116, 105, 114, 102, 112, 116, 114, 130, 135, 117, 109, 117, 105, 114, 118, 108, 128, 91, 112, 130, 108, 114, 122, 116, 114, 119, 117, 112, 119, 113, 114, 115, 125, 109, 116, 114, 120, 122, 110, 126, 116, 121, 121, 99, 119, 117, 125, 114, 110, 114, 109, 110, 118, 110, 118, 125, 121, 116, 110, 126, 103, 128, 112, 115, 119, 115, 117, 117, 110, 116, 109, 105, 125, 115, 116, 117, 109, 114, 108, 114, 122, 121, 110, 124, 127, 113, 124, 111, 117, 116, 114, 116, 104, 120, 113, 118, 109, 113, 118, 102, 117, 103, 114, 121, 127, 114, 121, 115, 113, 117, 115, 109, 114, 124, 106, 113, 103, 122, 118, 111, 112, 117, 116, 113, 117, 122, 105, 118, 112, 132, 119, 135, 106, 113, 101, 117, 111, 127, 123, 114, 114, 109, 119, 81, 112, 116, 119, 115, 122, 111, 110, 105, 117, 106, 122, 113, 109, 110, 114, 133, 123, 106, 111, 124, 123, 117, 118, 123, 99, 103, 112, 121, 118, 116, 128, 112, 131, 116, 117, 118, 119, 112, 110, 118, 129, 104, 106, 116, 114, 114, 102, 129, 121, 109, 116, 105, 110, 136, 130, 114, 116, 117, 103, 105, 97, 145, 114, 118, 115, 104, 124, 115, 116, 122, 125, 108, 106, 111, 123, 101, 118, 121, 118, 117, 114, 108, 112, 108, 132, 133, 112, 103, 105, 123, 107, 110, 127, 119, 105, 128, 109, 120, 122, 107, 112, 106, 109, 122, 105, 116, 112, 119, 116, 143, 122, 108, 124, 124, 108, 116, 117, 100, 126, 112, 108, 111, 110, 122, 108, 133, 125, 122, 114, 107, 119, 115, 118, 118, 117, 103, 114, 123, 119, 119, 105, 110, 136, 111, 113, 113, 121, 113, 115, 135, 104, 108, 100, 118, 107, 111, 134, 125, 121, 114, 121, 107, 104, 115, 127, 109, 117, 109, 111, 90, 123, 111, 108, 122, 111, 110, 99, 105, 119, 127, 119, 127, 108, 116, 92, 115, 104, 123, 116, 111, 137, 124, 161, 113, 130, 129, 113, 123, 119, 125, 122, 103, 106, 132, 120, 119, 117, 101, 125, 114, 111, 119, 112, 119, 115, 147, 97, 118, 111, 129, 101, 108, 112, 105, 141, 123, 110, 134, 124, 109, 112, 143, 110, 132, 112, 116, 111, 110, 123, 105, 119, 132, 123, 116, 119, 134, 112, 124, 141, 125, 90, 129, 107, 116, 119, 113, 106, 110, 106, 114, 116, 121, 112, 117, 117, 122, 97, 113, 115, 122, 124, 144, 120, 119, 119, 102, 126, 124, 109, 144, 128, 112, 109, 127, 104, 124, 102, 122, 114, 108, 119, 112, 131, 136, 110, 117, 110, 118, 110, 135, 114, 111, 120, 109, 121, 106, 117, 122, 120, 112, 111, 120, 137, 106, 112, 114, 114, 121, 112, 117, 109, 100, 97, 124, 117, 126, 119, 105, 115, 98, 119, 99, 129, 109, 125, 123, 124, 116, 98, 109, 145, 117, 115, 133, 118, 124, 138, 118, 115, 117, 106, 98, 114, 120, 99, 121, 116, 116, 100, 125, 123, 107, 117, 112, 111, 137, 124, 111, 113, 105, 112, 126, 113, 111, 101, 110, 126, 119, 117, 125, 124, 122, 120, 128, 108, 124, 113, 130, 120, 119, 113, 136, 110, 127, 112, 120, 112, 108, 113, 115, 105, 104, 114, 106, 113, 124, 112, 114, 109, 114, 118, 106, 111, 122, 101, 128, 120, 114, 119, 122, 126, 76, 112, 114, 115, 135, 109, 119, 114, 97, 115, 118, 106, 106, 99, 128, 106, 115, 131, 108, 105, 125, 123, 154, 123, 94, 114, 103, 120, 133, 105, 117, 96, 109, 116, 115, 112, 123, 116, 107, 108, 115, 112, 123, 131, 109, 117, 110, 127, 107, 116, 125, 103, 133, 107, 117, 101, 113, 118, 112, 131, 110, 106, 123, 110, 98, 105, 108, 111, 129, 118, 119, 108, 109, 110, 128, 129, 104, 118, 109, 110, 124, 120, 106, 120, 117, 119, 119, 115, 112, 119, 106, 110, 121, 130, 122, 120, 116, 98, 109, 105, 98, 118, 116, 124, 126, 117, 112, 116, 118, 116, 123, 122, 113, 114, 120, 126, 120, 113, 129, 110, 105, 113, 107, 127, 132, 123, 116, 116, 128, 104, 109, 105, 134, 118, 116, 98, 145, 122, 122, 118, 110, 122, 125, 115, 119, 119, 118, 112, 112, 131, 133, 113, 123, 111, 119, 109, 113, 115, 118, 119, 116, 100, 125, 116, 126, 114, 128, 121, 133, 124, 124, 109, 131, 92, 116, 113, 105, 118, 126, 121, 125, 119, 110, 112, 133, 111, 116, 122, 120, 101, 113, 115, 126, 138, 112, 104, 100, 117, 100, 111, 109, 118, 121, 113, 97, 119, 110, 124, 129, 116, 123, 125, 114, 109, 118, 107, 122, 121, 112, 109, 122, 120, 104, 106, 121, 122, 111, 87, 102, 114, 112, 115, 108, 124, 130, 103, 117, 118, 121, 113, 110, 121, 137, 115, 112, 118, 124, 126, 126, 113, 110, 116, 123, 127, 117, 114, 122, 115, 123, 110, 134, 132, 126, 118, 117, 120, 119, 112, 126, 131, 128, 128, 130, 101, 109, 120, 116, 121, 112, 118, 125, 108, 117, 110, 107, 119, 112, 121, 99, 97, 134, 119, 111, 124, 110, 107, 113, 111, 106, 107, 104, 143, 99, 123, 109, 126, 112, 117, 110, 106, 126, 126, 120, 121, 115, 116, 113, 120, 111, 130, 128, 112, 117, 114, 110, 126, 109, 123, 137, 112, 105, 109, 114, 120, 122, 125, 122, 134, 130, 113, 121, 113, 114, 121, 96, 106, 113, 107, 111, 121, 101, 116, 115, 142, 122, 107, 119, 120, 129, 109, 112, 107, 107, 119, 116, 126, 110, 102, 115, 112, 108, 115, 113, 114, 116, 99, 123, 104, 115, 122, 109, 119, 117, 113, 119, 118, 98, 104, 111, 124, 84, 109, 104, 118, 116, 118, 111, 111, 109, 110, 96, 117, 115, 116, 119, 139, 110, 108, 111, 99, 102, 122, 118, 118, 120, 113, 108, 118, 111, 133, 109, 108, 114, 125, 114, 117, 135, 120, 110, 119, 102, 117, 110, 125, 107, 120, 136, 117, 128, 114, 113, 116, 116, 122, 130, 116, 106, 135, 96, 114, 116, 111, 107, 130, 112, 134, 109, 117, 90, 131, 108, 129, 112, 128, 125, 121, 112, 115, 122, 107, 108, 113, 139, 125, 113, 117, 120, 114, 115, 126, 121, 115, 118, 124, 115, 123, 111, 115, 117, 119, 125, 111, 113, 112, 127, 130, 123, 130, 120, 111, 117, 110, 112, 115, 104, 112, 118, 110, 117, 116, 97, 129, 114, 137, 115, 100, 113, 119, 122, 140, 123, 89, 107, 119, 104, 108, 122, 106, 111, 104, 92, 108, 112, 117, 105, 116, 118, 116, 108, 119, 129, 121, 125, 105, 128, 110, 114, 134, 118, 100, 118, 118, 107, 114, 114, 120, 134, 109, 112, 110, 109, 130, 110, 108, 118, 122, 131, 119, 112, 124, 116, 124, 127, 114, 120, 109, 117, 121, 107, 126, 120, 143, 113, 101, 123, 102, 113, 112, 116, 117, 119, 109, 107, 122, 112, 108, 132, 125, 127, 125, 129, 124, 120, 110, 115, 119, 118, 101, 109, 121, 108, 118, 128, 113, 131, 110, 123, 127, 107, 113, 114, 118, 116, 114, 109, 112, 107, 127, 110, 120, 105, 134, 135, 115, 114, 110, 116, 131, 123, 119, 128, 115, 119, 120, 125, 133, 104, 112, 113, 112, 108, 114, 119, 117, 122, 118, 107, 119, 107, 102, 115, 109, 123, 135, 139, 106, 122, 115, 115, 119, 117, 142, 112, 114, 108, 126, 103, 142, 126, 112, 116, 122, 115, 109, 119, 122, 117, 127, 120, 113, 108, 111, 116, 113, 115, 116, 117, 111, 110, 126, 112, 124, 109, 117, 128, 112, 134, 112, 126, 127, 119, 118, 128, 114, 108, 123, 120, 127, 113, 110, 117, 121, 117, 117, 132, 120, 109, 101, 119, 127, 119, 128, 121, 122, 124, 124, 107, 127, 139, 121, 118, 124, 131, 115, 122, 99, 108, 120, 121, 130, 120, 110, 113, 94, 125, 122, 92, 122, 128, 132, 115, 113, 74, 118, 108, 87, 113, 108, 120, 104, 112, 105, 105, 116, 116, 113, 113, 103, 125, 129, 117, 105, 116, 122, 122, 103, 118, 123, 145, 111, 103, 116, 106, 117, 121, 125, 138, 139, 109, 122, 100, 147, 110, 117, 116, 110, 107, 89, 112, 123, 148, 97, 139, 103, 100, 113, 121, 113, 87, 112, 97, 134, 112, 109, 95, 101, 114, 111, 110, 124, 91, 112, 122, 115, 103, 108, 114, 116, 106, 95, 127, 120, 118, 129, 114, 112, 114, 105, 112, 97, 104, 117, 131, 117, 118, 135, 113, 107, 113, 113, 133, 131, 128, 124, 115, 121, 112, 119, 125, 122, 128, 108, 119, 107, 111, 103, 116, 124, 102, 125, 100, 97, 116, 109, 125, 98, 112, 120, 111, 127, 106, 138, 132, 120, 116, 124, 130, 130, 114, 122, 125, 119, 134, 112, 120, 117, 117, 78, 118, 114, 107, 116, 135, 112, 135, 99, 115, 91, 108, 80, 110, 103, 94, 114, 129, 128, 114, 120, 130, 108, 136, 126, 135, 110, 111, 127, 121, 136, 73, 116, 125, 128, 129, 113, 121, 131, 104, 118, 111, 106, 114, 107, 140, 118, 120, 120, 122, 101, 152, 124, 137, 122, 125, 109, 115, 125, 99, 120, 110, 122, 158, 118, 115, 140, 105, 118, 109, 122, 94, 107, 104, 122, 110, 108, 117, 125, 95, 120, 105, 117, 109, 100, 120, 121, 140, 111, 116, 131, 98, 128, 120, 107, 124, 121, 122, 85, 113, 114, 123, 123, 124, 112, 118, 93, 117, 107, 111, 120, 118, 103, 109, 112, 122, 116, 104, 123, 117, 115, 120, 149, 123, 106, 117, 125, 118, 118, 111, 132, 118, 99, 116, 123, 139, 124, 123, 110, 107, 115, 118, 107, 103, 115, 95, 96, 118, 127, 107, 128, 126, 105, 118, 117, 109, 115, 123, 107, 113, 96, 104, 126, 111, 108, 113, 115, 112, 124, 118, 136, 117, 116, 87, 127, 117, 105, 120, 117, 114, 136, 110, 107, 99, 112, 110, 130, 130, 125, 110, 103, 109, 136, 129, 125, 101, 116, 108, 112, 114, 102, 130, 122, 97, 111, 105, 120, 122, 102, 113, 109, 119, 140, 122, 96, 121, 115, 107, 116, 125, 124, 107, 134, 118, 123, 104, 98, 105, 122, 102, 116, 91, 118, 112, 118, 105, 113, 91, 113, 130, 117, 106, 101, 120, 113, 112, 105, 127, 127, 120, 128, 120, 143, 119, 143, 98, 119, 117, 117, 103, 77, 130, 122, 116, 112, 104, 109, 106, 128, 114, 112, 106, 107, 124, 108, 109, 140, 111, 106, 122, 98, 122, 104, 122, 108, 130, 114, 115, 116, 101, 115, 121, 120, 101, 126, 115, 115, 133, 102, 110, 104, 130, 125, 120, 101, 127, 108, 110, 105, 91, 98, 116, 112, 106, 106, 134, 115, 107, 115, 85, 133, 109, 116, 135, 119, 100, 125, 119, 116, 110, 121, 114, 120, 117, 100, 116, 121, 98, 115, 120, 95, 114, 109, 115, 116, 127, 100, 120, 97, 109, 98, 100, 113, 120, 115, 116, 104, 103, 124, 116, 113, 116, 144, 133, 118, 111, 111, 107, 111, 103, 130, 103, 111, 114, 125, 138, 124, 130, 130, 111, 111, 112, 112, 107, 111, 112, 127, 128, 106, 132, 126, 118, 128, 115, 127, 121, 120, 108, 122, 117, 117, 133, 138, 112, 112, 134, 132, 116, 117, 114, 114, 112, 116, 117, 115, 108, 113, 112, 101, 110, 113, 118, 131, 118, 137, 108, 86, 111, 96, 118, 100, 127, 120, 118, 113, 124, 107, 107, 106, 113, 126, 108, 121, 115, 116, 121, 111, 114, 132, 123, 108, 116, 128, 113, 111, 106, 121, 119, 126, 125, 137, 105, 125, 126, 113, 119, 106, 99, 117, 120, 115, 114, 109, 109, 129, 118, 118, 112, 103, 103, 95, 115, 93, 122, 129, 118, 110, 106, 113, 117, 120, 115, 133, 118, 116, 106, 131, 101, 109, 134, 116, 116, 121, 128, 140, 119, 121, 90, 115, 94, 115, 123, 138, 97, 127, 98, 119, 105, 114, 123, 104, 112, 115, 92, 129, 93, 126, 112, 134, 114, 138, 101, 116, 109, 101, 90, 107, 128, 125, 120, 113, 98, 103, 117, 126, 110, 119, 122, 105, 114, 120, 115, 136, 126, 96, 132, 105, 78, 111, 125, 111, 128, 108, 126, 113, 118, 113, 107, 108, 119, 121, 112, 123, 131, 109, 117, 120, 132, 123, 130, 117, 135, 95, 112, 117, 129, 133, 107, 107, 125, 113, 112, 116, 128, 114, 116, 114, 114, 118, 96, 113, 103, 113, 116, 129, 121, 105, 106, 101, 112, 102, 98, 110, 111, 119, 116, 117, 116, 109, 125, 142, 117, 126, 115, 109, 118, 134, 120, 123, 112, 116, 116, 129, 138, 114, 116, 104, 115, 116, 100, 107, 116, 110, 116, 122, 102, 122, 116, 118, 106, 126, 86, 110, 120, 130, 108, 127, 109, 112, 114, 108, 122, 136, 121, 121, 118, 110, 123, 109, 118, 108, 127, 110, 118, 103, 129, 119, 105, 101, 119, 110, 119, 112, 129, 118, 90, 126, 118, 114, 116, 123, 107, 118, 107, 112, 138, 116, 112, 107, 123, 132, 107, 127, 118, 114, 115, 120, 102, 111, 115, 130, 109, 98, 92, 116, 91, 105, 119, 111, 100, 113, 83, 117, 125, 94, 128, 96, 116, 99, 107, 116, 136, 130, 114, 129, 114, 109, 103, 118, 133, 121, 115, 124, 105, 120, 125, 118, 108, 107, 125, 98, 118, 135, 101, 104, 110, 123, 124, 119, 120, 108, 107, 100, 120, 123, 111, 118, 123, 111, 122, 106, 114, 117, 120, 123, 115, 114, 98, 109, 107, 118, 127, 105, 129, 125, 126, 142, 101, 107, 128, 108, 117, 120, 107, 128, 118, 117, 110, 120, 121, 101, 125, 112, 117, 124, 119, 127, 114, 105, 126, 122, 134, 115, 104, 112, 112, 121, 109, 115, 111, 121, 129, 121, 109, 110, 104, 117, 118, 121, 123, 120, 129, 122, 110, 108, 130, 107, 97, 125, 113, 126, 114, 120, 121, 112, 125, 119, 95, 109, 118, 117, 142, 116, 99, 111, 105, 110, 112, 119, 122, 118, 117, 116, 116, 112, 123, 127, 121, 122, 118, 114, 109, 119, 114, 116, 98, 106, 121, 107, 112, 110, 110, 95, 121, 112, 127, 122, 124, 100, 108, 104, 102, 129, 114, 118, 138, 120, 110, 105, 100, 107, 123, 106, 105, 108, 114, 109, 118, 103, 139, 127, 120, 114, 105, 109, 123, 113, 118, 132, 118, 125, 112, 123, 126, 121, 112, 116, 107, 109, 119, 117, 119, 105, 120, 119, 120, 109, 113, 116, 111, 111, 102, 135, 117, 111, 108, 133, 112, 118, 118, 120, 112, 117, 119, 128, 109, 115, 105, 119, 115, 124, 123, 116, 120, 107, 107, 127, 89, 118, 104, 110, 106, 106, 121, 119, 85, 115, 112, 120, 103, 118, 105, 115, 115, 108, 115, 101, 118, 142, 114, 116, 129, 118, 105, 112, 108, 118, 119, 121, 111, 118, 122, 115, 101, 132, 111, 121, 108, 134, 107, 113, 138, 109, 135, 107, 116, 125, 114, 109, 111, 124, 114, 98, 120, 121, 115, 123, 110, 115, 125, 119, 104, 128, 118, 105, 112, 118, 114, 119, 118, 102, 108, 111, 116, 116, 112, 119, 115, 115, 106, 129, 119, 114, 110, 117, 105, 112, 106, 118, 119, 108, 113, 108, 113, 122, 113, 111, 110, 116, 108, 120, 110, 103, 121, 122, 116, 104, 107, 112, 124, 125, 120, 108, 123, 109, 110, 105, 133, 119, 118, 117, 122, 107, 116, 105, 101, 115, 120, 109, 133, 114, 86, 115, 107, 112, 126, 118, 112, 112, 118, 122, 101, 116, 128, 110, 118, 126, 109, 111, 113, 122, 115, 143, 120, 105, 138, 102, 128, 119, 109, 115, 114, 105, 109, 113, 134, 128, 104, 113, 104, 122, 121, 115, 107, 116, 113, 108, 121, 129, 116, 128, 118, 106, 102, 124, 118, 101, 95, 128, 120, 115, 108, 109, 113, 111, 102, 132, 117, 118, 118, 128, 104, 113, 109, 107, 130, 146, 113, 127, 111, 99, 122, 114, 120, 123, 122, 99, 121, 119, 117, 117, 124, 109, 124, 113, 111, 112, 123, 110, 113, 124, 104, 123, 135, 115, 110, 123, 119, 117, 120, 119, 119, 138, 135, 116, 117, 99, 114, 108, 109, 107, 126, 112, 111, 114, 105, 105, 108, 114, 109, 119, 120, 127, 103, 117, 114, 115, 114, 102, 115, 113, 128, 113, 111, 113, 115, 107, 127, 107, 111, 98, 119, 117, 111, 123, 131, 115, 109, 118, 116, 132, 114, 116, 111, 110, 108, 104, 118, 113, 145, 117, 110, 122, 105, 109, 102, 121, 113, 119, 114, 106, 113, 124, 128, 118, 115, 114, 115, 124, 126, 132, 123, 109, 121, 125, 130, 106, 121, 107, 134, 90, 119, 83, 126, 97, 117, 110, 103, 113, 123, 121, 126, 118, 128, 106, 116, 121, 123, 112, 130, 124, 106, 113, 117, 118, 118, 112, 127, 132, 112, 115, 116, 102, 105, 109, 108, 141, 113, 96, 114, 116, 100, 122, 129, 107, 113, 113, 114, 113, 115, 109, 115, 118, 106, 109, 122, 114, 113, 114, 117, 112, 104, 129, 107, 104, 108, 112, 117, 127, 98, 114, 92, 102, 122, 123, 111, 114, 113, 111, 114, 114, 103, 123, 126, 111, 107, 126, 98, 118, 116, 113, 115, 117, 111, 118, 114, 106, 120, 106, 107, 116, 116, 107, 110, 119, 113, 125, 122, 122, 148, 107, 122, 126, 111, 112, 101, 114, 107, 125, 126, 127, 113, 124, 123, 110, 111, 107, 105, 120, 108, 120, 119, 130, 121, 111, 97, 101, 119, 120, 120, 110, 102, 121, 111, 122, 107, 152, 114, 101, 112, 116, 102, 115, 108, 125, 113, 113, 115, 95, 120, 140, 108, 107, 128, 120, 126, 121, 115, 121, 120, 117, 123, 120, 123, 116, 112, 116, 115, 116, 117, 121, 95, 106, 116, 100, 109, 113, 117, 113, 117, 126, 119, 125, 121, 105, 128, 112, 121, 123, 129, 119, 102, 104, 120, 107, 111, 120, 118, 92, 119, 122, 140, 128, 117, 107, 119, 113, 108, 114, 122, 123, 121, 125, 123, 137, 122, 91, 138, 119, 111, 118, 125, 131, 138, 126, 95, 136, 115, 122, 117, 124, 119, 111, 127, 85, 110, 118, 115, 116, 117, 113, 130, 111, 139, 167, 125, 120, 114, 115, 99, 122, 89, 118, 112, 123, 102, 109, 111, 112, 115, 99, 118, 121, 106, 119, 111, 106, 116, 118, 119, 127, 104, 113, 126, 129, 123, 110, 103, 110, 107, 99, 121, 116, 110, 115, 117, 133, 120, 84, 107, 110, 124, 121, 126, 117, 114, 127, 115, 182, 127, 107, 127, 121, 119, 126, 126, 123, 112, 116, 92, 120, 114, 132, 118, 126, 117, 107, 124, 115, 115, 101, 124, 103, 112, 116, 117, 99, 111, 99, 99, 117, 115, 122, 120, 125, 113, 94, 119, 115, 104, 104, 110, 114, 106, 118, 121, 114, 119, 117, 127, 116, 117, 109, 124, 110, 123, 123, 118, 116, 100, 121, 107, 126, 101, 114, 107, 128, 103, 114, 110, 122, 124, 116, 109, 121, 111, 120, 116, 120, 124, 141, 110, 115, 108, 111, 130, 104, 99, 115, 120, 134, 113, 126, 111, 115, 99, 117, 100, 110, 104, 124, 97, 113, 132, 106, 111, 113, 127, 126, 104, 125, 113, 115, 119, 112, 110, 115, 103, 111, 102, 108, 152, 117, 129, 106, 110, 119, 106, 156, 123, 121, 118, 111, 104, 106, 108, 115, 137, 116, 119, 102, 110, 105, 117, 105, 113, 107, 116, 117, 102, 119, 109, 112, 107, 112, 128, 110, 112, 136, 111, 104, 108, 113, 131, 113, 127, 128, 131, 111, 116, 119, 118, 116, 130, 125, 108, 104, 118, 116, 103, 125, 121, 104, 113, 124, 141, 121, 112, 87, 110, 108, 117, 114, 132, 115, 121, 97, 114, 113, 122, 106, 97, 124, 124, 118, 127, 104, 116, 113, 118, 120, 114, 128, 136, 117, 128, 98, 114, 114, 110, 116, 104, 98, 126, 106, 118, 113, 128, 127, 124, 116, 119, 119, 125, 102, 109, 112, 101, 104, 111, 140, 113, 104, 130, 115, 124, 126, 105, 115, 121, 125, 118, 117, 125, 116, 105, 108, 95, 123, 89, 116, 116, 126, 109, 121, 112, 129, 123, 126, 93, 100, 117, 114, 118, 114, 127, 102, 119, 94, 122, 128, 120, 114, 118, 117, 120, 119, 110, 109, 119, 116, 116, 110, 112, 124, 131, 111, 113, 110, 117, 118, 120, 124, 113, 124, 114, 112, 115, 106, 117, 118, 121, 118, 123, 117, 111, 137, 115, 125, 115, 120, 118, 111, 115, 115, 105, 115, 121, 111, 113, 113, 109, 122, 111, 118, 119, 114, 116, 115, 113, 116, 112, 116, 112, 117, 105, 116, 107, 117, 114, 114, 114, 128, 112, 124, 120, 119, 110, 110, 115, 121, 123, 116, 111, 115, 107, 125, 116, 111, 115, 112, 119, 111, 111, 126, 113, 113, 117, 108, 119, 117, 110, 115, 113, 116, 112, 119, 117, 122, 121, 112, 122, 106, 121, 114, 118, 118, 111, 116, 108, 117, 117, 118, 115, 114, 105, 111, 116, 118, 124, 110, 124, 115, 116, 118, 110, 119, 117, 114, 107, 121, 116, 110, 113, 124, 122, 110, 100, 113, 124, 115, 122, 115, 113, 107, 113, 112, 119, 115, 115, 109, 110, 123, 110, 124, 119, 108, 116, 112, 119, 117, 111, 113, 113, 121, 120, 114, 111, 111, 116, 115, 116, 112, 116, 110, 121, 117, 118, 112, 111, 120, 115, 112, 115, 114, 113, 113, 115, 116, 118, 114, 112, 115, 118, 115, 116, 117, 112, 128, 107, 117, 115, 112, 117, 113, 124, 117, 114, 114, 117, 108, 127, 113, 117, 114, 113, 119, 121, 116, 122, 115, 109, 112, 123, 114, 113, 116, 115, 112, 110, 116, 114, 111, 107, 112, 106, 116, 113, 119, 115, 121, 118, 116, 112, 115, 119, 113, 119, 115, 117, 123, 115, 118, 113, 110, 116, 121, 120, 119, 116, 103, 117, 117, 119, 117, 119, 106, 113, 115, 113, 116, 117, 104, 105, 125, 114, 118, 113, 113, 109, 123, 118, 112, 120, 126, 115, 116, 113, 118, 121, 118, 133, 112, 116, 122, 121, 112, 119, 107, 119, 121, 111, 116, 117, 125, 114, 111, 125, 116, 117, 120, 119, 116, 113, 118, 116, 117, 116, 111, 112, 117, 116, 114, 116, 114, 116, 105, 112, 115, 123, 118, 117, 118, 109, 117, 121, 117, 116, 120, 118, 117, 119, 119, 124, 117, 119, 108, 112, 117, 117, 119, 116, 115, 119, 108, 125, 117, 115, 116, 120, 116, 116, 123, 108, 118, 117, 115, 112, 112, 114, 106, 127, 119, 109, 118, 116, 116, 119, 117, 116, 111, 111, 110, 114, 115, 108, 119, 114, 123, 117, 113, 122, 121, 111, 120, 113, 116, 114, 111, 116, 113, 112, 111, 111, 121, 117, 114, 113, 117, 117, 128, 117, 119, 121, 117, 105, 117, 119, 112, 114, 126, 121, 113, 112, 113, 109, 126, 101, 116, 115, 108, 108, 115, 129, 119, 113, 108, 125, 116, 114, 118, 113, 125, 111, 114, 115, 115, 120, 106, 109, 119, 115, 118, 111, 115, 115, 122, 112, 113, 115, 111, 112, 108, 119, 111, 117, 112, 117, 113, 114, 112, 106, 114, 111, 108, 120, 111, 122, 119, 114, 128, 112, 116, 117, 116, 121, 115, 118, 114, 114, 113, 113, 118, 120, 118, 119, 120, 120, 125, 118, 115, 116, 120, 115, 111, 100, 123, 125, 116, 119, 124, 112, 116, 120, 118, 125, 122, 114, 116, 124, 124, 110, 114, 114, 108, 105, 122, 119, 115, 112, 117, 121, 123, 126, 114, 124, 126, 115, 127, 112, 127, 108, 120, 118, 118, 119, 119, 108, 121, 117, 108, 112, 118, 121, 113, 117, 121, 126, 113, 103, 120, 112, 116, 126, 118, 113, 119, 104, 105, 131, 119, 118, 122, 119, 116, 129, 126, 115, 114, 124, 124, 117, 119, 123, 117, 121, 115, 109, 119, 118, 126, 113, 110, 110, 125, 104, 119, 115, 106, 117, 118, 114, 114, 121, 125, 120, 124, 116, 113, 121, 117, 120, 109, 124, 121, 120, 119, 115, 123, 119, 115, 114, 118, 134, 110, 117, 116, 127, 126, 122, 111, 115, 125, 116, 106, 114, 127, 123, 120, 115, 94, 116, 97, 114, 122, 120, 110, 112, 125, 121, 110, 122, 111, 112, 115, 118, 119, 118, 106, 112, 109, 119, 116, 121, 111, 113, 113, 126, 133, 112, 117, 119, 113, 115, 105, 114, 119, 124, 113, 127, 112, 129, 118, 121, 114, 118, 127, 113, 122, 108, 128, 124, 117, 115, 114, 123, 120, 113, 124, 118, 116, 117, 117, 113, 113, 118, 128, 102, 126, 116, 105, 123, 133, 119, 113, 111, 116, 114, 113, 118, 105, 117, 107, 123, 110, 112, 114, 123, 123, 103, 121, 116, 124, 122, 114, 114, 113, 120, 129, 98, 115, 107, 110, 120, 115, 122, 125, 114, 123, 113, 122, 115, 118, 103, 117, 113, 113, 117, 122, 112, 119, 123, 111, 118, 118, 120, 130, 118, 113, 125, 121, 113, 111, 118, 126, 126, 110, 125, 118, 103, 119, 120, 118, 118, 108, 108, 121, 116, 114, 125, 116, 118, 105, 110, 103, 122, 121, 120, 115, 117, 115, 113, 112, 115, 121, 122, 120, 109, 120, 109, 115, 104, 114, 111, 118, 110, 124, 118, 119, 115, 117, 115, 123, 119, 119, 118, 111, 116, 116, 112, 124, 108, 116, 111, 109, 110, 110, 107, 127, 125, 120, 127, 103, 116, 122, 107, 121, 131, 116, 109, 124, 114, 116, 123, 106, 113, 137, 107, 114, 110, 122, 118, 118, 126, 114, 112, 121, 123, 116, 116, 110, 120, 123, 123, 117, 116, 124, 116, 120, 121, 119, 119, 114, 117, 117, 119, 123, 113, 117, 120, 112, 114, 108, 117, 105, 108, 117, 121, 129, 116, 113, 119, 124, 109, 119, 111, 118, 128, 126, 109, 120, 116, 123, 122, 122, 111, 119, 119, 119, 122, 115, 106, 122, 118, 115, 129, 119, 119, 119, 118, 98, 105, 122, 103, 109, 109, 117, 118, 107, 120, 121, 123, 123, 102, 120, 120, 118, 119, 120, 112, 121, 124, 113, 106, 113, 126, 115, 123, 122, 119, 114, 129, 116, 108, 110, 124, 110, 106, 122, 123, 116, 108, 113, 128, 116, 124, 124, 111, 110, 121, 120, 110, 107, 119, 108, 118, 115, 114, 117, 117, 122, 117, 119, 123, 120, 113, 111, 121, 105, 117, 114, 121, 113, 115, 119, 120, 120, 117, 126, 120, 112, 111, 110, 119, 116, 113, 116, 99, 115, 119, 126, 113, 106, 112, 112, 118, 88, 127, 119, 111, 112, 115, 111, 120, 113, 109, 104, 138, 115, 111, 122, 114, 110, 120, 90, 111, 109, 123, 118, 120, 122, 120, 124, 88, 90, 112, 115, 122, 118, 108, 129, 111, 95, 119, 111, 115, 104, 115, 116, 119, 125, 121, 112, 125, 153, 109, 111, 116, 112, 109, 136, 99, 113, 109, 116, 111, 112, 113, 101, 115, 118, 152, 106, 115, 133, 113, 127, 103, 124, 111, 142, 105, 117, 119, 128, 112, 134, 119, 128, 119, 145, 98, 119, 73, 122, 112, 91, 103, 118, 117, 112, 121, 104, 127, 126, 120, 115, 109, 98, 106, 116, 111, 115, 105, 133, 106, 117, 108, 100, 108, 117, 109, 108, 115, 119, 88, 119, 120, 109, 122, 117, 107, 105, 111, 118, 118, 116, 122, 126, 124, 123, 109, 120, 126, 121, 113, 83, 118, 106, 122, 116, 100, 117, 102, 123, 108, 122, 108, 115, 113, 107, 120, 122, 120, 113, 123, 121, 116, 114, 109, 120, 108, 94, 128, 114, 119, 114, 98, 105, 114, 134, 126, 103, 118, 113, 111, 107, 109, 128, 115, 111, 111, 111, 112, 112, 105, 126, 102, 120, 94, 104, 112, 123, 114, 105, 107, 106, 128, 114, 109, 117, 105, 118, 116, 111, 117, 126, 145, 119, 108, 99, 122, 115, 124, 108, 130, 123, 114, 103, 117, 118, 108, 112, 117, 156, 107, 89, 118, 117, 107, 105, 120, 107, 120, 123, 127, 114, 110, 123, 103, 121, 112, 122, 127, 120, 109, 118, 100, 125, 120, 108, 119, 124, 115, 108, 110, 134, 113, 129, 123, 125, 131, 110, 120, 119, 111, 123, 107, 111, 115, 132, 118, 113, 111, 132, 122, 110, 116, 119, 90, 101, 110, 117, 120, 120, 113, 94, 126, 105, 116, 113, 113, 107, 118, 114, 124, 119, 97, 122, 101, 107, 120, 124, 111, 104, 121, 117, 104, 122, 98, 98, 109, 128, 118, 68, 115, 126, 110, 100, 124, 125, 119, 100, 144, 128, 115, 109, 118, 107, 106, 110, 115, 111, 78, 116, 109, 115, 118, 114, 112, 115, 109, 137, 119, 116, 109, 122, 123, 150, 110, 129, 113, 125, 119, 97, 111, 105, 119, 120, 118, 88, 105, 111, 121, 112, 113, 105, 113, 113, 110, 119, 115, 118, 119, 99, 115, 118, 110, 116, 116, 117, 117, 123, 114, 109, 105, 116, 121, 118, 100, 103, 93, 111, 119, 122, 118, 112, 109, 118, 119, 110, 111, 110, 125, 93, 105, 128, 106, 110, 128, 114, 115, 109, 112, 121, 109, 115, 123, 115, 115, 126, 109, 115, 109, 114, 108, 110, 120, 112, 135, 118, 110, 119, 114, 114, 114, 101, 103, 116, 124, 90, 110, 135, 106, 106, 101, 126, 113, 121, 114, 111, 114, 106, 104, 114, 115, 120, 107, 114, 106, 99, 120, 112, 112, 102, 122, 109, 123, 119, 106, 110, 116, 155, 128, 111, 109, 114, 118, 123, 114, 98, 125, 110, 109, 112, 118, 118, 93, 114, 122, 114, 120, 110, 106, 114, 123, 127, 109, 96, 99, 133, 129, 126, 119, 121, 110, 111, 105, 107, 113, 122, 114, 108, 124, 119, 120, 116, 123, 112, 107, 130, 103, 117, 117, 125, 122, 107, 116, 118, 120, 112, 129, 122, 121, 125, 109, 101, 110, 118, 130, 116, 115, 124, 112, 118, 111, 118, 104, 120, 117, 104, 120, 111, 113, 120, 116, 127, 119, 109, 110, 104, 118, 112, 118, 107, 119, 124, 116, 119, 112, 117, 120, 134, 128, 116, 104, 131, 116, 121, 115, 125, 113, 106, 118, 124, 119, 115, 117, 100, 111, 134, 98, 119, 128, 117, 108, 113, 112, 132, 109, 98, 119, 119, 126, 103, 113, 111, 132, 110, 120, 97, 118, 110, 114, 113, 121, 122, 134, 117, 120, 106, 112, 112, 109, 126, 111, 128, 107, 120, 136, 120, 131, 126, 109, 115, 116, 126, 110, 114, 121, 109, 117, 126, 115, 113, 137, 125, 115, 103, 103, 115, 108, 130, 113, 112, 98, 103, 111, 118, 115, 117, 121, 104, 111, 117, 107, 110, 106, 120, 119, 118, 128, 117, 118, 101, 133, 107, 105, 102, 130, 126, 118, 119, 125, 129, 102, 124, 114, 120, 122, 110, 128, 98, 109, 105, 109, 100, 103, 121, 111, 119, 108, 108, 121, 129, 110, 112, 114, 110, 118, 120, 106, 111, 115, 100, 112, 117, 122, 111, 122, 111, 116, 112, 137, 121, 104, 115, 111, 128, 124, 114, 119, 117, 109, 100, 106, 123, 116, 106, 115, 130, 125, 98, 114, 122, 123, 116, 105, 112, 95, 118, 92, 118, 108, 118, 112, 111, 127, 120, 109, 126, 121, 122, 139, 105, 112, 102, 114, 104, 116, 119, 132, 117, 99, 108, 117, 117, 108, 118, 124, 120, 121, 121, 126, 119, 104, 104, 132, 122, 122, 118, 127, 111, 109, 107, 128, 120, 114, 103, 124, 130, 103, 121, 116, 98, 108, 121, 94, 112, 121, 113, 114, 113, 132, 125, 117, 117, 114, 107, 109, 125, 104, 115, 102, 120, 115, 100, 121, 107, 109, 82, 111, 120, 118, 106, 151, 126, 132, 110, 138, 114, 116, 121, 128, 116, 113, 131, 111, 105, 116, 122, 121, 122, 139, 112, 120, 130, 114, 115, 115, 107, 120, 98, 110, 121, 119, 117, 114, 117, 125, 126, 116, 87, 115, 119, 116, 112, 123, 113, 118, 108, 117, 129, 116, 116, 111, 108, 118, 114, 100, 110, 120, 120, 116, 122, 99, 115, 126, 119, 112, 106, 119, 120, 98, 111, 109, 117, 111, 99, 121, 116, 114, 113, 112, 114, 113, 126, 110, 124, 111, 117, 107, 118, 127, 123, 117, 129, 116, 122, 101, 111, 107, 116, 109, 112, 123, 112, 97, 118, 121, 117, 112, 115, 114, 113, 116, 134, 123, 113, 111, 106, 129, 101, 116, 119, 114, 120, 110, 174, 115, 115, 119, 120, 115, 119, 103, 104, 119, 108, 123, 120, 113, 100, 112, 118, 115, 104, 119, 119, 97, 124, 97, 108, 116, 132, 112, 117, 109, 128, 118, 118, 114, 99, 118, 112, 109, 111, 118, 129, 113, 110, 119, 122, 132, 113, 115, 115, 123, 98, 121, 118, 101, 103, 123, 117, 114, 111, 119, 124, 98, 123, 114, 116, 113, 105, 116, 101, 93, 121, 131, 106, 114, 112, 117, 118, 110, 118, 111, 100, 109, 116, 115, 116, 132, 117, 100, 125, 98, 95, 121, 104, 112, 124, 113, 111, 112, 116, 121, 106, 110, 108, 118, 128, 105, 120, 113, 107, 102, 129, 136, 116, 114, 121, 110, 119, 117, 116, 118, 100, 106, 123, 111, 116, 114, 106, 130, 110, 124, 113, 118, 115, 126, 114, 126, 128, 115, 105, 103, 101, 109, 120, 112, 115, 101, 103, 107, 108, 105, 126, 107, 125, 102, 109, 117, 121, 105, 103, 109, 114, 118, 113, 117, 142, 101, 109, 117, 113, 114, 119, 108, 107, 103, 115, 114, 114, 111, 120, 121, 119, 113, 118, 99, 124, 115, 117, 149, 132, 112, 118, 116, 113, 116, 119, 113, 105, 120, 113, 114, 108, 106, 110, 106, 112, 117, 106, 100, 120, 111, 112, 118, 113, 112, 115, 115, 97, 164, 118, 124, 110, 106, 102, 122, 118, 110, 108, 101, 115, 111, 112, 116, 108, 116, 126, 96, 106, 107, 108, 101, 118, 118, 115, 109, 116, 125, 105, 137, 112, 105, 126, 83, 115, 131, 125, 95, 122, 117, 114, 124, 104, 121, 104, 112, 116, 117, 120, 120, 110, 107, 106, 126, 123, 111, 111, 122, 115, 125, 114, 125, 116, 115, 127, 136, 113, 116, 117, 118, 109, 106, 117, 114, 107, 108, 101, 109, 105, 105, 121, 113, 112, 109, 110, 142, 122, 145, 111, 126, 134, 135, 106, 118, 113, 111, 112, 116, 118, 107, 115, 121, 113, 124, 131, 118, 115, 132, 114, 111, 107, 110, 123, 123, 121, 105, 124, 116, 131, 124, 114, 139, 110, 127, 128, 126, 116, 123, 117, 112, 119, 134, 119, 110, 100, 119, 108, 110, 114, 114, 118, 111, 114, 107, 122, 113, 118, 98, 111, 128, 118, 118, 89, 111, 119, 112, 112, 111, 114, 117, 123, 97, 107, 113, 116, 110, 148, 118, 117, 118, 114, 148, 119, 105, 118, 113, 115, 127, 105, 118, 112, 82, 127, 108, 121, 128, 109, 117, 110, 86, 74, 127, 115, 116, 116, 120, 110, 126, 125, 115, 132, 113, 123, 108, 110, 116, 119, 104, 111, 111, 102, 124, 105, 123, 116, 105, 115, 116, 109, 118, 118, 109, 123, 129, 116, 107, 115, 115, 132, 113, 115, 124, 113, 75, 116, 123, 134, 92, 118, 111, 114, 118, 113, 115, 122, 109, 121, 108, 110, 118, 122, 115, 105, 115, 117, 115, 105, 120, 123, 97, 124, 107, 130, 129, 104, 119, 115, 126, 105, 125, 108, 128, 119, 113, 108, 106, 115, 106, 112, 112, 112, 119, 113, 124, 110, 116, 108, 125, 120, 110, 123, 118, 123, 100, 66, 102, 114, 120, 79, 109, 122, 109, 116, 117, 110, 125, 113, 104, 112, 119, 118, 110, 108, 122, 100, 107, 124, 106, 104, 118, 100, 106, 120, 96, 110, 107, 129, 114, 104, 79, 106, 117, 122, 116, 112, 114, 115, 102, 111, 97, 119, 119, 114, 106, 117, 117, 101, 124, 135, 92, 118, 119, 114, 129, 118, 130, 116, 109, 124, 109, 114, 114, 127, 113, 112, 128, 104, 121, 115, 106, 115, 117, 120, 111, 116, 122, 119, 120, 119, 120, 109, 109, 113, 118, 117, 108, 117, 121, 116, 109, 121, 102, 117, 116, 128, 107, 104, 122, 108, 122, 104, 130, 106, 123, 114, 118, 113, 127, 120, 112, 116, 113, 116, 123, 119, 122, 121, 131, 122, 114, 115, 117, 118, 123, 106, 119, 121, 108, 115, 122, 115, 112, 106, 110, 136, 127, 115, 157, 113, 124, 117, 114, 97, 120, 111, 103, 109, 117, 112, 114, 110, 119, 114, 128, 117, 120, 118, 112, 121, 114, 116, 112, 106, 116, 113, 106, 109, 129, 114, 116, 114, 85, 118, 126, 116, 113, 132, 115, 117, 113, 114, 121, 118, 111, 120, 122, 132, 124, 119, 114, 118, 115, 110, 120, 115, 126, 127, 113, 107, 113, 117, 116, 142, 114, 107, 120, 104, 118, 117, 123, 103, 111, 131, 98, 105, 112, 122, 120, 110, 106, 116, 117, 118, 128, 121, 114, 119, 112, 128, 108, 118, 115, 113, 118, 112, 126, 112, 131, 111, 99, 127, 103, 123, 123, 107, 117, 112, 132, 113, 110, 119, 120, 112, 96, 121, 106, 125, 116, 151, 112, 110, 126, 123, 119, 120, 102, 110, 115, 126, 100, 118, 101, 74, 142, 112, 134, 108, 117, 112, 110, 127, 134, 118, 104, 120, 120, 108, 123, 111, 111, 119, 120, 112, 137, 125, 112, 116, 123, 122, 113, 111, 106, 118, 117, 119, 120, 113, 110, 118, 116, 126, 118, 132, 118, 111, 117, 121, 110, 119, 110, 122, 114, 100, 113, 105, 127, 123, 113, 124, 121, 126, 119, 115, 126, 114, 115, 113, 119, 121, 108, 108, 124, 114, 101, 110, 119, 108, 228, 119, 120, 118, 126, 105, 127, 108, 115, 126, 107, 119, 121, 118, 121, 116, 109, 117, 124, 116, 117, 108, 111, 118, 116, 121, 114, 115, 116, 123, 121, 104, 116, 114, 120, 122, 117, 127, 122, 110, 113, 127, 101, 122, 118, 129, 114, 111, 129, 109, 120, 114, 122, 118, 119, 113, 119, 113, 129, 117, 107, 111, 120, 104, 117, 119, 122, 117, 113, 120, 102, 114, 104, 121, 99, 115, 124, 117, 125, 112, 110, 122, 120, 112, 97, 107, 114, 115, 109, 110, 117, 124, 123, 114, 118, 142, 115, 113, 111, 127, 114, 121, 112, 119, 114, 127, 169, 118, 119, 120, 111, 115, 119, 113, 111, 122, 118, 125, 123, 110, 111, 111, 112, 122, 108, 114, 123, 108, 121, 117, 118, 120, 115, 117, 122, 115, 120, 137, 114, 129, 113, 118, 116, 115, 110, 110, 108, 108, 101, 123, 107, 127, 124, 110, 98, 121, 112, 124, 102, 96, 114, 107, 131, 116, 104, 111, 113, 108, 113, 116, 116, 118, 110, 116, 103, 109, 118, 130, 114, 119, 114, 113, 116, 114, 118, 118, 113, 121, 112, 223, 117, 109, 128, 115, 113, 115, 120, 116, 126, 114, 121, 107, 122, 116, 113, 120, 120, 117, 127, 118, 119, 100, 115, 111, 114, 109, 118, 126, 128, 110, 104, 118, 118, 116, 101, 108, 115, 114, 118, 116, 113, 133, 118, 120, 110, 127, 125, 113, 116, 101, 103, 112, 131, 120, 112, 117, 115, 100, 121, 91, 118, 130, 114, 120, 116, 107, 119, 127, 121, 120, 114, 115, 114, 114, 107, 115, 131, 123, 97, 126, 114, 117, 113, 120, 112, 126, 114, 113, 126, 160, 102, 126, 110, 113, 121, 126, 97, 151, 109, 114, 109, 109, 108, 111, 114, 121, 118, 109, 116, 116, 115, 168, 122, 108, 123, 111, 107, 121, 108, 114, 113, 127, 121, 85, 121, 121, 104, 104, 111, 118, 124, 111, 117, 120, 115, 119, 113, 119, 120, 126, 119, 117, 114, 109, 125, 120, 114, 120, 117, 118, 116, 121, 74, 99, 98, 112, 121, 109, 105, 111, 113, 110, 121, 118, 124, 104, 126, 120, 112, 103, 119, 113, 117, 109, 113, 121, 119, 114, 115, 118, 109, 123, 114, 109, 105, 120, 116, 122, 111, 118, 113, 110, 114, 108, 113, 112, 116, 120, 113, 109, 112, 115, 105, 114, 146, 120, 115, 116, 128, 121, 116, 123, 114, 152, 115, 112, 88, 123, 108, 127, 98, 125, 122, 113, 109, 113, 120, 108, 110, 103, 109, 109, 129, 118, 119, 120, 113, 113, 119, 110, 105, 112, 94, 133, 114, 107, 111, 122, 122, 117, 114, 123, 122, 104, 115, 117, 116, 129, 114, 109, 111, 115, 116, 118, 125, 129, 114, 109, 112, 107, 102, 116, 137, 121, 119, 118, 112, 108, 125, 118, 112, 111, 112, 118, 115, 109, 113, 127, 120, 113, 140, 120, 113, 102, 115, 143, 129, 110, 122, 116, 116, 121, 125, 114, 91, 119, 104, 117, 126, 101, 109, 115, 111, 110, 122, 116, 129, 104, 113, 115, 111, 123, 112, 110, 84, 119, 119, 117, 113, 109, 129, 114, 122, 115, 87, 108, 112, 111, 119, 107, 104, 121, 122, 120, 103, 103, 174, 114, 129, 95, 116, 119, 111, 115, 163, 109, 114, 105, 91, 104, 119, 113, 113, 107, 107, 120, 126, 111, 106, 116, 117, 112, 120, 127, 123, 124, 110, 112, 126, 126, 116, 120, 109, 131, 99, 115, 108, 104, 115, 114, 115, 111, 105, 115, 117, 113, 113, 120, 111, 119, 98, 112, 115, 114, 115, 98, 113, 119, 116, 125, 103, 96, 120, 119, 120, 109, 119, 119, 114, 125, 116, 118, 92, 131, 110, 120, 112, 114, 123, 129, 127, 112, 119, 104, 127, 101, 122, 118, 119, 111, 114, 116, 140, 110, 114, 125, 119, 113, 123, 125, 119, 121, 112, 116, 91, 112, 130, 111, 118, 107, 117, 118, 127, 96, 94, 111, 110, 124, 127, 118, 108, 121, 102, 114, 127, 113, 126, 121, 123, 106, 104, 114, 115, 117, 106, 107, 118, 106, 117, 117, 122, 122, 100, 111, 120, 106, 114, 111, 110, 124, 111, 121, 131, 113, 107, 129, 111, 115, 98, 107, 114, 111, 122, 120, 110, 109, 97, 108, 104, 116, 124, 110, 117, 118, 123, 111, 103, 120, 127, 115, 116, 124, 134, 103, 118, 125, 129, 113, 129, 125, 112, 104, 96, 121, 131, 91, 119, 115, 121, 114, 110, 111, 106, 106, 102, 108, 117, 111, 121, 95, 107, 124, 103, 112, 130, 101, 116, 120, 115, 115, 126, 108, 103, 122, 119, 114, 130, 126, 105, 116, 114, 110, 113, 120, 120, 112, 127, 117, 112, 124, 109, 107, 137, 112, 118, 124, 104, 124, 113, 111, 110, 107, 118, 107, 112, 96, 109, 125, 101, 123, 125, 114, 107, 116, 114, 123, 110, 113, 100, 132, 108, 114, 122, 117, 124, 105, 104, 113, 117, 107, 121, 105, 130, 110, 108, 118, 113, 124, 117, 115, 128, 107, 117, 130, 125, 105, 98, 87, 123, 126, 120, 122, 116, 115, 85, 110, 114, 112, 114, 105, 106, 129, 120, 103, 115, 115, 128, 104, 117, 107, 113, 122, 103, 119, 97, 109, 109, 115, 115, 117, 118, 115, 121, 143, 124, 115, 100, 128, 111, 106, 111, 114, 129, 86, 140, 130, 110, 115, 108, 109, 106, 130, 120, 111, 120, 87, 126, 99, 130, 115, 121, 119, 138, 129, 113, 121, 129, 113, 122, 124, 105, 111, 117, 93, 127, 123, 111, 122, 99, 86, 115, 123, 122, 134, 124, 113, 113, 109, 109, 94, 84, 122, 131, 108, 117, 112, 106, 110, 115, 113, 126, 113, 107, 112, 118, 108, 124, 131, 103, 115, 106, 120, 102, 126, 111, 120, 109, 119, 114, 125, 111, 118, 123, 112, 135, 112, 118, 108, 114, 135, 107, 103, 112, 117, 120, 102, 109, 132, 121, 107, 112, 71, 121, 114, 104, 142, 113, 122, 117, 116, 102, 131, 121, 122, 106, 114, 98, 116, 124, 121, 99, 113, 118, 129, 106, 112, 110, 116, 119, 120, 132, 114, 114, 122, 122, 131, 122, 118, 113, 105, 111, 109, 118, 125, 124, 115, 115, 131, 108, 117, 116, 97, 123, 108, 113, 100, 116, 118, 118, 111, 110, 113, 117, 102, 116, 116, 125, 132, 103, 128, 125, 111, 128, 120, 118, 105, 113, 127, 119, 134, 120, 112, 117, 123, 116, 97, 103, 116, 112, 105, 116, 118, 125, 118, 115, 121, 123, 116, 118, 115, 117, 86, 111, 111, 105, 114, 111, 119, 125, 117, 117, 147, 122, 102, 118, 112, 122, 120, 120, 125, 128, 100, 147, 122, 117, 95, 88, 105, 123, 111, 116, 87, 140, 113, 116, 122, 119, 115, 104, 108, 125, 109, 120, 112, 118, 122, 125, 125, 115, 120, 105, 113, 109, 115, 107, 115, 105, 114, 104, 98, 117, 127, 122, 133, 121, 108, 121, 118, 110, 116, 126, 128, 115, 122, 131, 127, 125, 116, 127, 107, 124, 106, 121, 107, 128, 111, 113, 110, 110, 110, 108, 111, 102, 114, 113, 119, 134, 122, 118, 127, 115, 84, 104, 107, 122, 105, 115, 131, 110, 117, 103, 124, 120, 112, 103, 123, 100, 121, 130, 136, 120, 107, 100, 105, 115, 119, 108, 109, 125, 123, 103, 125, 128, 125, 128, 122, 103, 109, 113, 101, 111, 109, 110, 95, 141, 111, 100, 110, 113, 112, 112, 105, 127, 126, 117, 124, 111, 114, 117, 113, 117, 107, 111, 115, 130, 113, 117, 111, 113, 108, 121, 109, 108, 109, 119, 111, 114, 128, 116, 121, 111, 123, 113, 118, 129, 114, 124, 111, 122, 115, 116, 130, 118, 114, 119, 106, 113, 125, 110, 103, 110, 124, 112, 114, 103, 115, 104, 119, 117, 111, 108, 113, 113, 118, 121, 130, 112, 108, 126, 107, 128, 120, 117, 120, 128, 128, 109, 110, 110, 111, 118, 106, 125, 112, 111, 111, 125, 117, 98, 116, 118, 100, 109, 117, 122, 112, 115, 121, 116, 122, 119, 112, 106, 122, 117, 108, 117, 130, 106, 106, 116, 115, 104, 122, 113, 115, 113, 121, 118, 122, 117, 120, 130, 106, 111, 98, 116, 122, 124, 125, 113, 111, 121, 100, 119, 116, 128, 124, 112, 121, 111, 126, 135, 122, 118, 115, 133, 118, 101, 120, 120, 130, 122, 121, 112, 112, 116, 131, 108, 109, 119, 114, 100, 94, 110, 117, 125, 114, 112, 115, 114, 110, 115, 104, 126, 142, 110, 112, 119, 116, 102, 115, 118, 106, 119, 118, 113, 117, 141, 112, 128, 122, 110, 113, 116, 107, 113, 127, 121, 116, 112, 103, 114, 136, 130, 113, 128, 105, 113, 115, 127, 120, 118, 116, 114, 114, 118, 119, 118, 116, 116, 122, 122, 118, 114, 116, 109, 132, 119, 116, 125, 113, 122, 106, 109, 120, 121, 118, 109, 108, 118, 105, 119, 124, 103, 114, 126, 107, 102, 115, 119, 108, 122, 118, 114, 121, 110, 112, 108, 120, 117, 111, 116, 123, 137, 115, 123, 115, 114, 105, 108, 123, 122, 106, 112, 120, 119, 111, 115, 116, 115, 118, 113, 126, 105, 123, 116, 125, 121, 120, 119, 121, 122, 106, 122, 114, 111, 119, 125, 109, 113, 120, 129, 114, 123, 122, 117, 120, 100, 113, 118, 112, 121, 106, 115, 121, 111, 93, 101, 118, 120, 118, 121, 119, 121, 115, 125, 118, 120, 113, 97, 103, 105, 116, 112, 113, 119, 102, 110, 135, 115, 102, 123, 118, 106, 120, 110, 118, 125, 127, 109, 131, 112, 106, 118, 119, 121, 119, 119, 101, 104, 122, 115, 118, 124, 116, 111, 121, 123, 107, 103, 122, 115, 126, 125, 104, 120, 113, 115, 110, 111, 115, 110, 118, 115, 105, 110, 110, 114, 132, 123, 128, 110, 120, 106, 115, 121, 123, 112, 117, 125, 121, 121, 125, 109, 114, 105, 123, 115, 110, 109, 125, 119, 113, 120, 107, 117, 125, 118, 111, 126, 124, 137, 105, 119, 112, 117, 116, 114, 112, 119, 125, 127, 116, 103, 123, 109, 115, 118, 133, 107, 106, 118, 119, 113, 116, 112, 111, 116, 126, 114, 114, 110, 113, 120, 107, 122, 122, 116, 106, 112, 118, 115, 119, 127, 113, 110, 128, 116, 114, 105, 120, 107, 135, 110, 110, 113, 116, 106, 121, 129, 126, 107, 103, 105, 111, 111, 131, 110, 129, 112, 114, 97, 104, 94, 109, 113, 120, 114, 114, 111, 113, 131, 119, 116, 109, 126, 102, 111, 108, 117, 114, 118, 118, 114, 122, 118, 119, 115, 121, 120, 104, 121, 124, 129, 108, 102, 117, 126, 115, 121, 122, 113, 122, 123, 119, 109, 110, 104, 120, 120, 122, 111, 133, 124, 106, 112, 124, 130, 112, 119, 121, 118, 112, 119, 117, 116, 116, 127, 114, 119, 113, 131, 123, 111, 118, 111, 124, 118, 104, 126, 117, 91, 128, 112, 113, 136, 104, 119, 107, 110, 113, 125, 120, 128, 105, 113, 105, 110, 123, 109, 116, 110, 109, 121, 114, 121, 124, 126, 110, 119, 112, 116, 124, 134, 109, 121, 105, 121, 115, 121, 109, 107, 114, 112, 110, 114, 119, 120, 118, 114, 112, 114, 115, 126, 117, 126, 113, 128, 128, 114, 112, 125, 114, 118, 118, 120, 112, 114, 125, 118, 119, 122, 119, 117, 108, 118, 124, 123, 109, 113, 110, 118, 117, 111, 107, 121, 102, 100, 119, 126, 107, 119, 115, 123, 102, 112, 124, 116, 106, 109, 106, 107, 122, 119, 126, 116, 104, 107, 129, 111, 126, 120, 109, 127, 132, 127, 116, 116, 118, 114, 120, 122, 110, 127, 113, 108, 110, 120, 115, 142, 116, 88, 105, 111, 100, 122, 135, 116, 124, 116, 115, 122, 119, 131, 122, 112, 127, 113, 126, 111, 118, 116, 112, 108, 116, 117, 119, 112, 117, 116, 115, 108, 113, 113, 112, 121, 114, 109, 108, 117, 120, 113, 124, 121, 111, 109, 116, 126, 115, 111, 121, 126, 107, 118, 103, 125, 118, 115, 99, 111, 102, 109, 105, 121, 115, 113, 117, 115, 115, 114, 114, 117, 123, 114, 121, 96, 127, 130, 123, 116, 109, 125, 111, 119, 127, 125, 119, 97, 103, 93, 118, 116, 115, 118, 114, 116, 113, 125, 110, 125, 122, 110, 124, 128, 109, 130, 106, 111, 114, 125, 121, 104, 104, 100, 100, 118, 119, 114, 117, 119, 120, 114, 127, 115, 118, 123, 108, 107, 119, 112, 121, 114, 121, 117, 128, 110, 108, 115, 119, 123, 119, 108, 105, 115, 112, 109, 119, 121, 124, 118, 103, 111, 108, 123, 120, 130, 115, 123, 125, 111, 112, 123, 117, 113, 104, 120, 128, 123, 120, 109, 120, 120, 110, 122, 111, 112, 117, 101, 109, 118, 123, 103, 115, 117, 121, 119, 104, 107, 118, 114, 118, 116, 118, 119, 120, 103, 121, 115, 118, 108, 110, 113, 115, 122, 112, 118, 116, 128, 123, 114, 102, 100, 115, 126, 115, 122, 120, 96, 124, 119, 117, 131, 117, 123, 109, 105, 106, 116, 102, 113, 115, 124, 108, 110, 123, 110, 128, 109, 112, 118, 114, 111, 113, 129, 128, 112, 113, 109, 110, 117, 130, 101, 111, 116, 104, 112, 115, 129, 123, 109, 125, 123, 103, 110, 118, 122, 122, 116, 101, 113, 119, 119, 111, 116, 107, 125, 128, 118, 137, 127, 133, 111, 119, 119, 113, 114, 110, 129, 112, 129, 117, 124, 122, 108, 108, 105, 114, 104, 121, 117, 119, 106, 108, 104, 125, 134, 117, 115, 120, 107, 117, 123, 119, 127, 116, 115, 99, 129, 119, 132, 116, 115, 115, 115, 112, 124, 114, 111, 120, 123, 114, 122, 122, 128, 112, 116, 125, 114, 117, 111, 124, 124, 120, 107, 111, 124, 120, 154, 107, 107, 122, 115, 118, 130, 115, 111, 118, 116, 115, 123, 114, 113, 108, 116, 108, 113, 116, 114, 92, 118, 113, 107, 124, 111, 150, 116, 115, 106, 122, 123, 115, 122, 124, 118, 123, 117, 113, 114, 118, 149, 111, 108, 113, 111, 110, 119, 119, 111, 118, 108, 116, 113, 116, 112, 110, 107, 109, 130, 112, 128, 120, 116, 108, 117, 104, 119, 114, 118, 123, 104, 116, 119, 106, 121, 103, 118, 113, 114, 121, 124, 111, 110, 126, 124, 109, 100, 116, 123, 112, 132, 109, 114, 122, 110, 112, 121, 134, 119, 105, 124, 114, 127, 104, 115, 124, 117, 129, 104, 105, 100, 121, 121, 135, 112, 121, 112, 125, 119, 115, 115, 115, 127, 110, 114, 114, 113, 107, 117, 130, 116, 119, 106, 105, 117, 117, 104, 114, 107, 131, 117, 124, 111, 111, 115, 123, 116, 116, 102, 110, 114, 108, 114, 120, 116, 115, 113, 118, 120, 117, 107, 125, 113, 125, 110, 126, 90, 112, 119, 99, 125, 105, 108, 116, 113, 126, 101, 121, 117, 125, 113, 117, 112, 121, 126, 119, 124, 127, 105, 109, 121, 104, 120, 125, 132, 122, 106, 110, 118, 118, 118, 134, 126, 118, 119, 101, 102, 122, 102, 109, 108, 115, 106, 118, 108, 109, 109, 118, 114, 121, 114, 109, 119, 113, 109, 124, 124, 122, 111, 112, 122, 109, 107, 120, 117, 116, 115, 111, 126, 117, 126, 113, 118, 111, 108, 124, 115, 102, 128, 118, 131, 113, 118, 113, 113, 123, 123, 114, 108, 110, 100, 123, 118, 119, 113, 121, 108, 101, 115, 116, 137, 119, 131, 124, 116, 117, 112, 116, 109, 117, 122, 105, 123, 112, 128, 113, 118, 102, 109, 116, 110, 99, 115, 108, 135, 109, 127, 113, 117, 105, 110, 109, 111, 123, 119, 111, 117, 107, 120, 120, 115, 121, 120, 106, 114, 126, 116, 110, 125, 119, 121, 123, 122, 125, 105, 127, 120, 108, 119, 125, 110, 117, 119, 104, 106, 118, 118, 108, 119, 109, 102, 130, 105, 89, 126, 114, 116, 111, 121, 107, 116, 107, 109, 114, 121, 115, 114, 126, 124, 121, 95, 106, 113, 111, 108, 121, 125, 111, 112, 120, 110, 121, 127, 124, 105, 117, 123, 104, 102, 117, 120, 118, 122, 118, 120, 117, 112, 129, 119, 117, 103, 120, 114, 119, 115, 108, 123, 117, 113, 114, 122, 114, 123, 146, 101, 119, 108, 112, 114, 118, 112, 117, 120, 107, 116, 116, 116, 109, 122, 128, 120, 118, 118, 117, 109, 100, 119, 114, 116, 116, 119, 129, 125, 115, 107, 111, 125, 107, 111, 121, 116, 109, 120, 112, 125, 111, 111, 108, 115, 101, 130, 116, 110, 119, 115, 148, 126, 115, 122, 117, 112, 108, 112, 108, 115, 107, 113, 112, 116, 120, 99, 110, 118, 122, 107, 118, 110, 125, 120, 116, 114, 111, 112, 116, 122, 124, 100, 108, 116, 128, 110, 102, 112, 114, 115, 109, 116, 110, 129, 112, 140, 108, 116, 119, 132, 114, 127, 110, 105, 112, 107, 107, 113, 106, 122, 108, 119, 118, 107, 102, 109, 110, 128, 119, 116, 114, 132, 120, 135, 107, 101, 123, 133, 120, 116, 125, 114, 121, 110, 119, 106, 132, 110, 112, 118, 115, 101, 117, 117, 118, 112, 120, 104, 109, 125, 115, 117, 130, 103, 107, 136, 115, 111, 124, 110, 118, 114, 108, 108, 120, 105, 120, 120, 109, 112, 103, 111, 117, 116, 114, 104, 128, 115, 134, 103, 118, 120, 124, 110, 111, 105, 119, 119, 113, 117, 126, 118, 123, 115, 110, 121, 121, 112, 106, 107, 127, 133, 118, 123, 109, 116, 105, 117, 116, 118, 116, 116, 118, 104, 109, 106, 115, 143, 117, 112, 119, 119, 123, 105, 114, 114, 115, 128, 101, 104, 124, 121, 107, 111, 120, 114, 110, 125, 110, 119, 132, 107, 110, 101, 98, 112, 126, 121, 109, 126, 117, 111, 113, 108, 114, 120, 125, 122, 104, 125, 113, 118, 115, 114, 126, 120, 110, 124, 129, 108, 114, 106, 130, 101, 113, 121, 97, 107, 115, 114, 111, 109, 103, 103, 121, 104, 130, 124, 111, 117, 111, 112, 121, 109, 116, 117, 126, 115, 123, 116, 108, 113, 106, 122, 105, 101, 111, 103, 124, 119, 96, 94, 110, 111, 115, 105, 122, 120, 120, 99, 107, 109, 101, 112, 145, 111, 120, 126, 113, 126, 97, 119, 122, 115, 135, 103, 114, 97, 111, 108, 127, 94, 119, 118, 117, 114, 117, 110, 138, 111, 115, 122, 116, 118, 116, 103, 112, 124, 130, 114, 126, 107, 112, 118, 114, 103, 122, 118, 129, 107, 125, 119, 121, 105, 102, 135, 124, 123, 121, 102, 102, 120, 96, 112, 110, 113, 103, 134, 119, 115, 130, 107, 109, 119, 120, 124, 118, 97, 100, 115, 118, 114, 124, 113, 115, 110, 106, 121, 121, 118, 101, 106, 118, 108, 102, 124, 104, 102, 108, 125, 121, 121, 125, 121, 98, 132, 113, 134, 112, 121, 120, 98, 120, 89, 98, 119, 105, 104, 110, 117, 102, 129, 132, 112, 104, 125, 129, 108, 123, 119, 106, 110, 108, 122, 112, 118, 100, 136, 106, 120, 108, 110, 104, 125, 109, 113, 122, 123, 101, 125, 121, 116, 101, 110, 116, 110, 117, 120, 123, 115, 147, 129, 115, 109, 115, 107, 122, 110, 117, 109, 128, 108, 116, 117, 114, 108, 122, 123, 106, 119, 113, 123, 119, 112, 113, 119, 105, 108, 130, 122, 122, 101, 125, 127, 127, 119, 114, 114, 111, 117, 113, 121, 116, 122, 119, 117, 114, 134, 121, 123, 122, 109, 115, 123, 117, 110, 119, 104, 111, 123, 115, 120, 105, 128, 99, 107, 103, 118, 117, 118, 102, 111, 117, 106, 114, 109, 114, 104, 124, 105, 110, 113, 113, 110, 111, 127, 117, 105, 115, 109, 116, 114, 125, 123, 114, 113, 115, 127, 113, 99, 117, 132, 105, 128, 123, 114, 116, 115, 106, 138, 119, 125, 115, 122, 116, 114, 109, 110, 117, 113, 111, 117, 111, 111, 97, 148, 124, 113, 105, 111, 119, 119, 115, 123, 123, 111, 116, 114, 124, 133, 116, 108, 108, 129, 134, 108, 106, 120, 100, 111, 109, 116, 110, 118, 113, 100, 124, 119, 104, 112, 111, 101, 118, 125, 99, 109, 118, 133, 121, 91, 116, 116, 118, 121, 111, 106, 113, 106, 106, 126, 115, 107, 124, 117, 117, 114, 110, 117, 126, 120, 112, 112, 118, 118, 117, 118, 115, 105, 127, 112, 126, 115, 122, 111, 127, 105, 116, 126, 110, 126, 117, 117, 118, 127, 130, 121, 105, 110, 112, 100, 106, 112, 110, 117, 114, 115, 117, 105, 124, 98, 120, 114, 110, 112, 122, 109, 126, 109, 120, 114, 113, 115, 119, 111, 124, 112, 122, 121, 113, 120, 110, 117, 128, 116, 127, 103, 114, 107, 109, 102, 118, 127, 109, 110, 115, 109, 111, 124, 108, 113, 125, 134, 101, 115, 112, 129, 123, 102, 146, 137, 115, 128, 118, 116, 118, 108, 124, 111, 116, 117, 108, 104, 105, 120, 116, 107, 119, 121, 128, 140, 125, 119, 120, 111, 130, 107, 115, 101, 122, 119, 115, 122, 112, 117, 117, 105, 111, 119, 115, 111, 109, 120, 123, 126, 118, 89, 111, 109, 109, 117, 123, 120, 128, 122, 130, 117, 114, 134, 128, 118, 115, 114, 112, 106, 123, 113, 117, 75, 124, 128, 123, 107, 126, 123, 118, 114, 123, 110, 110, 117, 108, 116, 105, 120, 93, 110, 118, 122, 112, 113, 119, 113, 117, 108, 141, 110, 123, 114, 111, 127, 109, 111, 106, 117, 120, 115, 125, 108, 175, 115, 119, 105, 131, 123, 129, 106, 96, 102, 108, 111, 113, 111, 121, 102, 112, 112, 115, 106, 112, 94, 123, 104, 131, 123, 111, 105, 112, 135, 113, 101, 117, 118, 111, 116, 112, 110, 114, 114, 102, 115, 121, 119, 122, 114, 121, 138, 119, 118, 119, 117, 119, 116, 115, 117, 120, 112, 125, 122, 113, 107, 114, 125, 115, 109, 114, 107, 128, 126, 110, 122, 108, 125, 126, 114, 127, 123, 119, 110, 103, 125, 102, 102, 118, 111, 119, 116, 128, 111, 125, 134, 114, 117, 120, 136, 120, 107, 106, 134, 115, 112, 129, 109, 107, 115, 118, 112, 92, 111, 109, 121, 104, 110, 117, 104, 124, 116, 97, 124, 119, 114, 92, 111, 121, 103, 121, 127, 115, 108, 118, 127, 116, 120, 101, 128, 117, 125, 117, 116, 102, 109, 122, 114, 118, 128, 97, 102, 95, 120, 108, 113, 127, 108, 121, 118, 108, 100, 118, 113, 110, 109, 113, 127, 121, 118, 94, 114, 138, 110, 124, 118, 117, 114, 117, 108, 110, 118, 123, 109, 118, 124, 135, 115, 99, 105, 122, 132, 91, 114, 111, 121, 113, 108, 118, 109, 111, 112, 128, 133, 111, 112, 108, 118, 122, 111, 119, 135, 111, 105, 115, 112, 96, 118, 114, 93, 118, 117, 122, 120, 112, 119, 115, 106, 122, 111, 120, 116, 92, 108, 110, 109, 132, 106, 123, 120, 122, 115, 113, 116, 122, 120, 120, 112, 116, 123, 114, 104, 124, 110, 124, 111, 117, 111, 114, 120, 119, 126, 106, 125, 113, 126, 108, 125, 110, 111, 118, 106, 110, 115, 114, 113, 114, 106, 109, 118, 120, 110, 120, 115, 120, 109, 118, 119, 120, 116, 126, 117, 125, 121, 118, 116, 116, 112, 114, 120, 119, 125, 119, 121, 114, 111, 124, 110, 111, 125, 114, 117, 123, 111, 120, 117, 107, 112, 108, 111, 110, 120, 130, 114, 120, 117, 118, 117, 114, 117, 116, 114, 114, 112, 118, 104, 125, 113, 123, 121, 122, 113, 112, 122, 108, 111, 119, 110, 112, 115, 116, 113, 113, 114, 117, 114, 113, 111, 108, 127, 113, 109, 116, 111, 111, 113, 120, 119, 122, 118, 123, 115, 112, 126, 116, 119, 121, 111, 115, 109, 113, 123, 115, 100, 113, 112, 123, 115, 122, 119, 110, 114, 122, 110, 124, 114, 111, 116, 114, 110, 119, 113, 112, 115, 116, 115, 125, 106, 117, 118, 113, 129, 115, 121, 113, 116, 126, 123, 122, 108, 106, 109, 119, 110, 113, 104, 113, 104, 121, 113, 122, 113, 120, 113, 118, 110, 104, 121, 112, 122, 113, 116, 130, 121, 97, 114, 115, 122, 118, 118, 114, 126, 112, 104, 108, 109, 117, 121, 117, 119, 109, 119, 120, 113, 116, 111, 118, 121, 120, 116, 113, 114, 115, 119, 115, 116, 111, 120, 119, 106, 117, 120, 112, 114, 121, 112, 115, 114, 113, 117, 118, 121, 117, 109, 119, 113, 118, 116, 126, 120, 119, 121, 111, 124, 101, 118, 112, 118, 111, 117, 114, 119, 116, 116, 101, 114, 116, 114, 117, 114, 117, 109, 114, 126, 113, 114, 124, 107, 116, 111, 115, 117, 116, 114, 111, 117, 114, 117, 116, 110, 115, 116, 115, 117, 112, 115, 111, 117, 118, 116, 111, 119, 106, 119, 134, 114, 118, 117, 117, 115, 120, 126, 114, 107, 107, 114, 111, 118, 116, 120, 111, 122, 117, 115, 121, 114, 113, 122, 127, 116, 103, 120, 115, 121, 120, 112, 118, 114, 114, 122, 119, 112, 112, 113, 122, 111, 109, 125, 115, 129, 117, 120, 109, 110, 113, 115, 109, 113, 113, 120, 117, 123, 116, 110, 117, 113, 111, 119, 114, 123, 120, 113, 117, 116, 113, 119, 117, 116, 110, 132, 112, 114, 118, 113, 117, 120, 118, 118, 122, 114, 116, 118, 106, 114, 110, 121, 113, 112, 117, 112, 120, 110, 105, 111, 114, 118, 119, 111, 119, 119, 115, 116, 117, 125, 119, 112, 115, 116, 121, 121, 105, 109, 117, 119, 122, 124, 110, 112, 116, 109, 109, 124, 110, 119, 108, 119, 109, 114, 118, 120, 118, 123, 119, 114, 115, 123, 111, 106, 117, 104, 117, 116, 110, 114, 118, 120, 126, 118, 113, 107, 121, 114, 107, 116, 114, 119, 106, 109, 117, 118, 117, 117, 118, 119, 128, 109, 115, 116, 112, 118, 112, 120, 117, 118, 111, 111, 113, 119, 110, 119, 118, 120, 109, 103, 107, 117, 121, 122, 111, 119, 121, 115, 119, 119, 112, 120, 113, 113, 112, 126, 113, 102, 104, 116, 119, 140, 117, 114, 107, 112, 119, 113, 115, 112, 108, 122, 119, 118, 114, 117, 113, 106, 111, 124, 123, 124, 122, 101, 110, 119, 115, 115, 109, 115, 130, 115, 121, 127, 78, 119, 113, 123, 98, 114, 167, 106, 133, 108, 119, 114, 123, 109, 120, 117, 109, 116, 117, 104, 114, 107, 104, 122, 111, 115, 118, 95, 113, 114, 107, 111, 121, 112, 113, 101, 99, 118, 125, 97, 107, 107, 113, 116, 113, 111, 140, 115, 103, 126, 113, 104, 114, 116, 115, 115, 119, 104, 118, 120, 104, 116, 111, 113, 122, 119, 106, 105, 119, 122, 137, 121, 120, 124, 109, 123, 120, 134, 101, 115, 113, 117, 109, 105, 106, 115, 118, 121, 111, 105, 103, 104, 105, 109, 120, 109, 126, 124, 110, 127, 126, 109, 112, 117, 125, 112, 119, 111, 113, 123, 114, 112, 105, 83, 114, 127, 112, 117, 105, 109, 122, 112, 114, 118, 121, 119, 116, 116, 108, 111, 122, 110, 115, 100, 106, 97, 115, 122, 112, 111, 110, 112, 116, 107, 117, 132, 113, 117, 120, 126, 108, 114, 101, 111, 119, 115, 137, 98, 112, 120, 122, 118, 133, 115, 127, 135, 118, 129, 111, 105, 127, 104, 120, 117, 114, 96, 125, 111, 103, 107, 119, 109, 144, 104, 114, 122, 116, 102, 118, 133, 110, 121, 129, 128, 129, 110, 109, 101, 104, 119, 113, 126, 100, 115, 109, 110, 112, 111, 114, 109, 118, 114, 131, 113, 115, 122, 118, 106, 121, 115, 115, 116, 111, 149, 119, 131, 116, 110, 88, 120, 97, 115, 108, 110, 119, 123, 104, 112, 107, 107, 111, 118, 112, 124, 118, 118, 114, 117, 108, 110, 118, 120, 123, 116, 97, 104, 105, 107, 126, 107, 108, 113, 116, 118, 121, 127, 129, 109, 130, 125, 96, 113, 107, 115, 103, 110, 111, 123, 113, 121, 116, 114, 117, 118, 120, 112, 96, 129, 100, 115, 134, 123, 119, 116, 114, 115, 132, 111, 112, 107, 112, 121, 113, 106, 103, 114, 125, 110, 105, 127, 115, 109, 105, 119, 101, 110, 111, 114, 105, 120, 98, 103, 111, 132, 121, 114, 108, 116, 118, 115, 110, 120, 109, 112, 108, 98, 110, 114, 123, 102, 98, 117, 106, 126, 113, 122, 121, 113, 126, 121, 129, 109, 113, 121, 116, 121, 131, 108, 118, 114, 111, 119, 117, 120, 118, 107, 132, 120, 117, 102, 116, 118, 126, 106, 128, 107, 89, 113, 109, 119, 127, 118, 122, 105, 111, 115, 113, 104, 112, 98, 128, 124, 135, 116, 111, 135, 111, 102, 127, 126, 133, 114, 114, 104, 121, 114, 107, 106, 123, 116, 110, 117, 98, 114, 127, 106, 123, 128, 114, 110, 116, 125, 126, 135, 115, 120, 120, 114, 111, 109, 113, 124, 127, 112, 120, 126, 103, 105, 129, 126, 129, 115, 124, 127, 106, 109, 98, 116, 125, 117, 126, 125, 124, 115, 113, 117, 126, 100, 120, 97, 99, 117, 108, 115, 102, 117, 119, 122, 119, 107, 132, 106, 133, 104, 118, 111, 120, 113, 124, 118, 101, 113, 120, 115, 117, 127, 119, 119, 122, 122, 111, 125, 111, 112, 118, 110, 122, 117, 135, 111, 115, 114, 112, 126, 115, 100, 103, 120, 124, 97, 120, 111, 103, 127, 103, 124, 117, 117, 122, 111, 115, 116, 117, 105, 119, 110, 110, 121, 120, 109, 117, 108, 156, 112, 116, 105, 126, 131, 114, 120, 113, 124, 118, 114, 103, 112, 111, 119, 116, 123, 122, 105, 118, 117, 113, 117, 123, 111, 120, 119, 119, 115, 115, 111, 112, 122, 114, 104, 136, 115, 108, 113, 116, 109, 112, 107, 117, 116, 124, 91, 114, 114, 111, 100, 116, 110, 105, 120, 94, 119, 105, 104, 112, 117, 107, 124, 120, 126, 111, 107, 115, 124, 114, 115, 118, 109, 120, 113, 113, 110, 111, 108, 121, 111, 120, 102, 110, 135, 114, 110, 124, 100, 109, 110, 116, 113, 117, 107, 131, 115, 119, 123, 99, 109, 124, 114, 118, 125, 112, 103, 119, 113, 117, 120, 111, 118, 109, 111, 115, 122, 141, 122, 101, 126, 102, 117, 102, 118, 113, 101, 124, 105, 120, 113, 119, 108, 111, 122, 112, 118, 128, 101, 126, 118, 118, 116, 104, 111, 111, 114, 111, 102, 116, 107, 104, 111, 105, 115, 107, 110, 115, 127, 122, 108, 114, 107, 114, 93, 102, 139, 115, 122, 112, 117, 115, 107, 106, 110, 117, 105, 119, 114, 116, 116, 119, 109, 109, 118, 108, 109, 118, 112, 120, 122, 117, 101, 87, 115, 140, 119, 114, 121, 116, 104, 104, 117, 109, 116, 116, 116, 113, 115, 119, 110, 106, 111, 124, 116, 111, 119, 111, 112, 95, 98, 102, 124, 118, 116, 108, 118, 106, 108, 123, 123, 109, 116, 108, 116, 114, 112, 125, 130, 114, 120, 107, 116, 118, 114, 126, 119, 116, 119, 110, 122, 102, 123, 112, 109, 120, 98, 123, 128, 114, 128, 117, 106, 111, 108, 119, 113, 107, 127, 119, 117, 108, 112, 117, 131, 112, 111, 106, 110, 122, 117, 110, 137, 116, 120, 112, 112, 106, 116, 123, 112, 123, 120, 116, 106, 122, 102, 119, 119, 105, 110, 123, 110, 119, 119, 111, 109, 130, 128, 112, 105, 121, 106, 118, 109, 109, 113, 107, 121, 125, 117, 119, 105, 117, 113, 120, 105, 120, 132, 119, 118, 119, 116, 121, 120, 126, 111, 114, 106, 107, 112, 118, 118, 116, 109, 112, 98, 123, 115, 122, 111, 120, 113, 122, 113, 115, 125, 113, 114, 134, 118, 121, 116, 125, 107, 138, 118, 126, 119, 116, 115, 116, 126, 113, 112, 114, 119, 116, 108, 117, 125, 109, 112, 113, 114, 104, 105, 132, 110, 120, 134, 114, 127, 108, 116, 111, 118, 95, 129, 110, 125, 100, 111, 115, 98, 113, 113, 117, 121, 110, 105, 112, 104, 121, 117, 115, 111, 118, 111, 109, 111, 120, 125, 108, 101, 111, 110, 120, 125, 121, 110, 111, 123, 113, 118, 123, 125, 126, 115, 113, 101, 116, 108, 118, 103, 115, 114, 120, 123, 108, 118, 115, 125, 116, 98, 116, 122, 113, 111, 122, 109, 111, 119, 114, 119, 107, 101, 125, 107, 121, 113, 98, 113, 106, 124, 105, 121, 127, 148, 128, 118, 116, 116, 105, 119, 106, 100, 106, 115, 112, 108, 123, 121, 127, 121, 115, 125, 95, 127, 121, 114, 120, 107, 103, 119, 148, 122, 114, 109, 114, 114, 132, 110, 112, 121, 108, 104, 117, 122, 114, 122, 113, 116, 144, 110, 120, 112, 119, 107, 119, 116, 130, 120, 127, 106, 110, 118, 113, 116, 98, 111, 109, 117, 124, 128, 110, 112, 115, 109, 126, 113, 102, 119, 124, 138, 113, 116, 111, 119, 131, 120, 121, 109, 117, 118, 121, 107, 131, 117, 90, 114, 113, 114, 108, 115, 119, 116, 112, 116, 113, 114, 123, 106, 123, 111, 135, 111, 121, 127, 111, 108, 114, 105, 122, 108, 114, 115, 118, 109, 114, 111, 113, 116, 125, 112, 109, 120, 108, 119, 117, 105, 96, 106, 119, 120, 116, 111, 135, 132, 103, 126, 104, 118, 129, 104, 122, 98, 118, 118, 144, 120, 122, 93, 107, 122, 112, 127, 115, 114, 106, 124, 117, 114, 111, 124, 119, 111, 131, 100, 114, 122, 117, 146, 110, 114, 117, 107, 111, 104, 115, 99, 110, 117, 131, 114, 125, 130, 125, 108, 116, 96, 125, 108, 114, 125, 112, 124, 119, 117, 126, 112, 101, 119, 133, 69, 117, 135, 102, 111, 116, 113, 103, 121, 101, 119, 118, 114, 107, 124, 116, 113, 115, 107, 128, 122, 114, 121, 121, 111, 116, 112, 107, 129, 107, 119, 110, 112, 111, 111, 104, 118, 91, 135, 104, 110, 119, 113, 109, 115, 120, 109, 109, 114, 118, 115, 115, 123, 118, 123, 97, 119, 114, 115, 106, 125, 111, 116, 116, 112, 106, 113, 117, 113, 107, 113, 124, 106, 107, 120, 109, 107, 111, 109, 105, 110, 112, 119, 109, 140, 119, 112, 117, 127, 120, 114, 123, 111, 125, 111, 102, 110, 110, 115, 122, 110, 113, 142, 119, 112, 116, 119, 100, 115, 131, 107, 123, 109, 128, 99, 128, 134, 119, 121, 120, 103, 117, 115, 119, 119, 130, 120, 136, 113, 120, 122, 106, 119, 110, 106, 108, 112, 127, 127, 124, 125, 113, 107, 100, 118, 126, 122, 111, 115, 150, 118, 116, 115, 106, 115, 109, 127, 119, 107, 140, 98, 112, 115, 111, 121, 128, 116, 127, 114, 115, 114, 132, 108, 120, 105, 115, 120, 109, 116, 123, 112, 130, 132, 108, 125, 111, 117, 113, 111, 121, 118, 123, 122, 127, 105, 111, 112, 110, 120, 83, 126, 106, 107, 118, 119, 120, 119, 109, 111, 113, 115, 106, 112, 122, 114, 124, 128, 104, 119, 147, 107, 97, 114, 126, 113, 112, 120, 113, 113, 120, 125, 104, 121, 111, 102, 128, 123, 116, 123, 124, 105, 134, 131, 117, 120, 123, 115, 115, 116, 83, 125, 110, 109, 106, 121, 106, 101, 121, 117, 107, 117, 120, 112, 130, 104, 110, 107, 121, 113, 120, 114, 119, 112, 125, 103, 111, 105, 125, 114, 113, 112, 105, 125, 108, 109, 129, 114, 118, 100, 128, 110, 118, 105, 106, 111, 131, 133, 111, 132, 108, 113, 123, 122, 120, 113, 110, 122, 120, 118, 120, 122, 117, 114, 111, 115, 114, 106, 128, 120, 99, 119, 114, 114, 115, 119, 116, 116, 113, 113, 102, 128, 117, 131, 117, 108, 112, 114, 113, 129, 116, 126, 114, 113, 118, 115, 116, 113, 115, 114, 127, 112, 118, 106, 115, 113, 119, 120, 110, 112, 125, 129, 111, 133, 108, 99, 121, 105, 117, 114, 131, 112, 108, 110, 147, 107, 110, 108, 112, 111, 118, 122, 101, 109, 137, 105, 117, 107, 119, 120, 108, 117, 109, 107, 125, 115, 116, 117, 113, 121, 111, 113, 116, 113, 118, 123, 119, 115, 125, 114, 120, 100, 99, 117, 115, 94, 115, 121, 119, 121, 113, 118, 122, 116, 129, 128, 104, 123, 121, 112, 112, 117, 111, 109, 113, 109, 123, 115, 107, 117, 120, 115, 126, 110, 104, 111, 114, 113, 120, 106, 113, 123, 108, 121, 108, 107, 110, 141, 110, 109, 115, 112, 115, 118, 116, 116, 112, 114, 124, 115, 113, 121, 134, 116, 121, 109, 127, 106, 117, 124, 119, 117, 123, 103, 99, 117, 117, 118, 108, 109, 111, 109, 126, 121, 114, 126, 108, 120, 114, 107, 121, 109, 114, 122, 116, 113, 113, 115, 123, 119, 122, 138, 119, 116, 116, 105, 119, 117, 110, 122, 112, 121, 129, 108, 112, 114, 114, 113, 104, 111, 116, 111, 102, 95, 119, 109, 119, 134, 118, 121, 112, 124, 116, 115, 121, 106, 115, 122, 115, 121, 111, 114, 95, 117, 110, 125, 106, 120, 121, 121, 119, 110, 120, 107, 121, 121, 112, 114, 119, 106, 126, 122, 115, 128, 110, 120, 115, 124, 120, 121, 123, 124, 109, 107, 119, 120, 114, 115, 123, 100, 122, 113, 124, 118, 115, 126, 121, 107, 139, 107, 120, 102, 135, 115, 118, 101, 118, 108, 108, 111, 105, 114, 90, 131, 111, 122, 113, 116, 119, 120, 111, 136, 114, 129, 121, 110, 112, 136, 125, 114, 122, 118, 103, 126, 128, 131, 145, 127, 123, 120, 113, 111, 128, 110, 92, 96, 106, 108, 123, 109, 107, 122, 118, 117, 95, 116, 119, 118, 114, 112, 127, 129, 113, 120, 120, 125, 119, 109, 130, 107, 110, 106, 116, 118, 123, 122, 117, 125, 115, 138, 115, 105, 103, 105, 102, 113, 109, 126, 114, 120, 122, 120, 113, 108, 130, 133, 118, 118, 130, 110, 103, 125, 119, 118, 121, 122, 122, 120, 108, 108, 112, 118, 119, 122, 105, 84, 112, 109, 116, 111, 108, 120, 134, 134, 116, 107, 118, 117, 115, 114, 116, 112, 118, 116, 113, 120, 93, 114, 120, 110, 126, 115, 122, 114, 127, 117, 121, 115, 120, 115, 114, 122, 112, 111, 122, 106, 129, 114, 109, 115, 109, 116, 129, 99, 114, 124, 114, 133, 120, 109, 118, 111, 125, 132, 122, 135, 111, 115, 125, 115, 117, 116, 107, 115, 106, 125, 125, 111, 124, 115, 109, 113, 125, 98, 120, 122, 104, 121, 130, 117, 114, 110, 108, 133, 106, 98, 110, 115, 119, 117, 103, 119, 109, 116, 113, 102, 110, 119, 119, 113, 120, 109, 119, 123, 123, 120, 103, 121, 108, 115, 107, 116, 122, 116, 120, 123, 121, 113, 113, 118, 115, 132, 111, 132, 103, 111, 104, 112, 128, 111, 117, 124, 118, 119, 109, 106, 114, 119, 120, 130, 101, 126, 108, 111, 114, 113, 104, 131, 127, 110, 128, 121, 108, 113, 121, 121, 103, 110, 107, 113, 112, 118, 119, 133, 98, 114, 112, 109, 134, 105, 130, 114, 117, 106, 105, 110, 120, 113, 118, 99, 110, 135, 103, 130, 110, 100, 89, 119, 101, 104, 105, 111, 112, 123, 138, 104, 108, 124, 107, 146, 134, 122, 129, 114, 115, 113, 117, 113, 120, 114, 111, 97, 116, 131, 109, 109, 115, 136, 139, 137, 117, 114, 121, 136, 123, 131, 97, 102, 118, 110, 117, 127, 113, 119, 113, 99, 100, 133, 114, 128, 101, 105, 101, 118, 126, 110, 119, 122, 111, 111, 95, 118, 96, 100, 112, 103, 118, 118, 107, 123, 124, 117, 121, 122, 105, 119, 108, 116, 122, 102, 97, 97, 135, 122, 110, 109, 126, 107, 110, 115, 112, 97, 89, 102, 111, 106, 115, 129, 112, 113, 122, 122, 110, 109, 123, 118, 118, 135, 108, 119, 105, 115, 129, 118, 107, 112, 126, 118, 117, 126, 106, 107, 125, 110, 128, 113, 107, 99, 115, 126, 99, 114, 128, 123, 111, 115, 112, 113, 108, 119, 105, 126, 141, 128, 127, 108, 113, 109, 123, 113, 115, 121, 114, 113, 123, 107, 107, 108, 127, 119, 106, 122, 115, 105, 111, 102, 118, 121, 113, 108, 110, 108, 121, 116, 111, 129, 102, 117, 107, 123, 106, 136, 114, 131, 108, 95, 116, 132, 109, 138, 101, 109, 124, 114, 115, 130, 120, 104, 123, 113, 120, 113, 96, 102, 116, 107, 121, 111, 116, 105, 114, 117, 106, 134, 120, 108, 111, 118, 124, 113, 108, 118, 101, 120, 124, 119, 116, 89, 115, 115, 114, 103, 119, 119, 113, 113, 108, 115, 104, 113, 103, 124, 106, 106, 117, 101, 115, 106, 117, 102, 113, 104, 110, 120, 109, 106, 122, 110, 131, 115, 108, 110, 129, 116, 99, 95, 125, 122, 118, 134, 109, 116, 114, 104, 108, 97, 112, 91, 115, 109, 113, 110, 128, 106, 120, 120, 120, 104, 106, 119, 120, 111, 99, 105, 120, 113, 124, 100, 109, 102, 124, 109, 125, 111, 120, 92, 126, 110, 127, 119, 118, 113, 101, 100, 122, 116, 96, 109, 106, 119, 111, 127, 101, 107, 106, 122, 122, 124, 104, 107, 112, 116, 117, 114, 136, 117, 110, 121, 116, 115, 120, 133, 112, 128, 106, 120, 112, 107, 128, 114, 104, 104, 124, 121, 117, 104, 104, 85, 120, 120, 101, 125, 110, 111, 109, 121, 126, 103, 114, 119, 107, 127, 101, 104, 96, 91, 100, 140, 102, 117, 118, 118, 112, 115, 123, 107, 125, 119, 120, 109, 119, 119, 115, 131, 119, 114, 108, 118, 112, 118, 108, 117, 101, 115, 112, 120, 116, 107, 121, 122, 121, 118, 127, 111, 115, 119, 119, 119, 114, 117, 121, 121, 127, 121, 116, 115, 123, 114, 116, 117, 120, 115, 127, 126, 112, 122, 125, 117, 106, 116, 116, 112, 125, 127, 115, 117, 103, 145, 118, 121, 117, 118, 104, 118, 120, 125, 119, 115, 118, 107, 106, 120, 104, 109, 115, 115, 120, 120, 108, 133, 121, 112, 122, 121, 117, 114, 117, 116, 99, 119, 115, 112, 112, 110, 141, 111, 118, 109, 128, 135, 112, 131, 122, 121, 136, 105, 126, 118, 135, 116, 100, 114, 103, 110, 115, 116, 91, 109, 116, 122, 115, 110, 117, 119, 114, 119, 117, 104, 121, 117, 123, 117, 110, 123, 117, 110, 102, 109, 128, 123, 127, 115, 119, 119, 116, 121, 116, 111, 122, 122, 100, 116, 116, 112, 119, 120, 122, 121, 120, 137, 117, 111, 154, 115, 108, 125, 117, 115, 109, 124, 125, 116, 110, 113, 113, 116, 117, 113, 110, 119, 114, 103, 121, 115, 118, 119, 122, 122, 137, 114, 118, 120, 114, 118, 114, 119, 123, 123, 124, 115, 118, 113, 119, 107, 109, 128, 118, 129, 106, 117, 127, 113, 120, 122, 126, 120, 119, 85, 121, 112, 116, 123, 114, 115, 116, 111, 113, 119, 102, 115, 104, 109, 118, 109, 136, 112, 111, 116, 113, 128, 110, 116, 114, 106, 126, 112, 129, 129, 133, 118, 120, 117, 119, 113, 115, 126, 113, 129, 116, 114, 116, 124, 128, 112, 114, 122, 119, 118, 127, 120, 112, 111, 120, 111, 127, 119, 104, 116, 120, 129, 120, 113, 116, 108, 121, 120, 125, 110, 91, 114, 118, 109, 101, 129, 124, 115, 122, 113, 113, 114, 123, 112, 117, 112, 134, 119, 119, 114, 106, 118, 114, 120, 116, 115, 112, 117, 116, 103, 114, 119, 118, 114, 147, 117, 114, 114, 117, 120, 123, 130, 116, 116, 133, 118, 108, 116, 133, 113, 115, 117, 117, 117, 125, 122, 108, 97, 125, 126, 117, 107, 115, 131, 122, 112, 113, 116, 110, 128, 89, 103, 126, 106, 114, 117, 115, 123, 122, 118, 110, 126, 111, 118, 120, 121, 116, 116, 112, 111, 144, 119, 113, 110, 117, 121, 126, 131, 118, 115, 126, 115, 116, 127, 116, 111, 117, 115, 121, 112, 88, 116, 111, 112, 115, 119, 122, 117, 131, 122, 107, 114, 118, 109, 119, 110, 118, 113, 119, 103, 115, 122, 115, 113, 113, 120, 122, 138, 120, 121, 116, 117, 122, 112, 104, 121, 109, 117, 119, 118, 121, 109, 124, 116, 117, 112, 116, 112, 90, 98, 110, 122, 117, 118, 120, 120, 121, 118, 116, 123, 116, 124, 123, 110, 123, 117, 107, 110, 117, 121, 119, 113, 118, 113, 117, 113, 114, 124, 115, 115, 118, 117, 115, 119, 121, 116, 125, 103, 121, 109, 121, 103, 112, 112, 114, 116, 113, 113, 115, 115, 126, 102, 118, 123, 114, 118, 123, 123, 113, 121, 124, 119, 116, 123, 109, 116, 124, 117, 103, 128, 141, 121, 107, 126, 88, 105, 113, 117, 161, 117, 138, 121, 115, 109, 122, 112, 113, 113, 101, 120, 102, 119, 118, 118, 134, 120, 126, 115, 99, 100, 99, 120, 119, 109, 123, 115, 110, 112, 118, 117, 134, 124, 117, 114, 106, 117, 111, 121, 115, 134, 101, 111, 124, 112, 105, 105, 116, 112, 123, 125, 98, 130, 105, 135, 110, 110, 118, 117, 119, 114, 118, 114, 118, 118, 118, 117, 122, 128, 114, 128, 122, 115, 106, 129, 123, 130, 104, 107, 112, 117, 119, 115, 116, 135, 113, 119, 119, 101, 110, 127, 117, 115, 121, 116, 104, 102, 152, 106, 118, 114, 118, 129, 111, 109, 123, 124, 99, 108, 132, 130, 127, 115, 126, 114, 117, 120, 117, 118, 122, 111, 113, 119, 120, 115, 123, 109, 119, 100, 108, 111, 104, 116, 119, 102, 122, 122, 101, 111, 117, 117, 134, 119, 103, 117, 119, 144, 111, 118, 102, 122, 120, 114, 123, 113, 119, 115, 109, 119, 111, 125, 119, 104, 114, 118, 111, 120, 111, 105, 132, 112, 115, 111, 116, 119, 103, 124, 114, 113, 106, 103, 115, 115, 106, 105, 116, 116, 127, 121, 104, 140, 107, 111, 115, 114, 108, 104, 121, 112, 113, 109, 116, 118, 117, 120, 117, 114, 123, 120, 115, 98, 112, 115, 113, 128, 121, 125, 107, 115, 116, 124, 131, 92, 124, 120, 117, 113, 114, 124, 107, 113, 114, 114, 110, 116, 114, 129, 110, 103, 113, 107, 115, 112, 111, 117, 123, 113, 115, 138, 115, 180, 117, 129, 93, 107, 113, 106, 109, 128, 115, 115, 124, 133, 119, 116, 121, 116, 109, 90, 105, 119, 119, 113, 112, 108, 125, 111, 96, 121, 113, 113, 124, 122, 118, 113, 106, 124, 126, 120, 112, 122, 117, 111, 114, 128, 105, 112, 120, 88, 122, 106, 125, 116, 121, 125, 125, 129, 118, 128, 103, 133, 120, 119, 115, 113, 113, 114, 111, 117, 110, 105, 121, 114, 115, 111, 132, 121, 129, 123, 100, 111, 124, 119, 129, 118, 114, 95, 132, 115, 127, 115, 109, 121, 113, 102, 120, 122, 118, 121, 108, 124, 123, 121, 117, 115, 98, 114, 116, 114, 126, 126, 112, 119, 110, 116, 120, 113, 118, 116, 104, 117, 122, 116, 127, 120, 118, 113, 117, 106, 127, 120, 110, 137, 114, 114, 104, 122, 119, 112, 126, 115, 108, 101, 121, 112, 124, 123, 111, 105, 112, 113, 107, 113, 128, 111, 119, 119, 115, 118, 115, 112, 125, 103, 108, 125, 109, 117, 118, 109, 115, 118, 96, 118, 109, 126, 102, 112, 123, 102, 110, 125, 109, 108, 110, 122, 129, 109, 128, 126, 116, 145, 140, 112, 113, 111, 116, 114, 116, 132, 118, 123, 110, 115, 129, 114, 128, 116, 139, 120, 114, 112, 124, 122, 119, 119, 114, 132, 130, 96, 119, 124, 100, 124, 127, 112, 104, 116, 123, 119, 115, 111, 103, 92, 107, 103, 121, 139, 120, 121, 104, 125, 122, 112, 105, 137, 123, 105, 110, 116, 113, 112, 122, 117, 112, 125, 115, 119, 113, 102, 114, 116, 121, 120, 117, 119, 118, 121, 121, 117, 113, 115, 118, 118, 116, 124, 116, 111, 108, 121, 113, 110, 114, 114, 120, 121, 108, 116, 118, 119, 116, 119, 111, 120, 123, 122, 111, 115, 123, 113, 116, 117, 122, 136, 116, 114, 115, 118, 110, 114, 118, 115, 114, 122, 120, 115, 116, 117, 109, 118, 110, 117, 110, 112, 107, 114, 117, 118, 112, 118, 112, 120, 117, 123, 110, 116, 117, 122, 115, 119, 116, 109, 116, 125, 120, 115, 116, 118, 109, 116, 111, 117, 114, 112, 115, 115, 115, 120, 112, 114, 117, 117, 117, 124, 119, 106, 115, 114, 112, 121, 120, 120, 108, 121, 116, 110, 115, 120, 123, 115, 120, 121, 118, 118, 114, 116, 115, 113, 116, 113, 113, 124, 115, 116, 118, 118, 112, 111, 115, 118, 118, 112, 122, 118, 119, 118, 117, 117, 122, 118, 122, 119, 107, 114, 111, 118, 114, 115, 115, 114, 130, 119, 120, 123, 107, 127, 118, 123, 118, 118, 110, 118, 113, 120, 117, 116, 111, 113, 119, 111, 117, 117, 110, 117, 118, 122, 104, 113, 115, 116, 113, 115, 115, 113, 120, 120, 116, 119, 118, 116, 117, 129, 117, 114, 119, 114, 119, 119, 119, 112, 113, 119, 115, 119, 119, 116, 110, 119, 123, 111, 114, 123, 109, 117, 113, 118, 121, 122, 112, 119, 113, 118, 115, 117, 114, 118, 117, 120, 126, 116, 118, 120, 121, 116, 121, 119, 116, 118, 121, 111, 124, 121, 113, 121, 119, 118, 117, 119, 116, 117, 112, 115, 116, 110, 114, 115, 112, 120, 109, 119, 122, 121, 105, 115, 122, 116, 116, 121, 115, 116, 112, 116, 120, 124, 118, 114, 117, 121, 123, 121, 117, 108, 116, 104, 118, 118, 116, 119, 115, 115, 113, 120, 115, 113, 118, 118, 116, 118, 117, 127, 114, 110, 114, 115, 117, 115, 114, 116, 112, 127, 116, 115, 113, 114, 121, 118, 115, 105, 114, 118, 114, 116, 118, 115, 117, 112, 121, 118, 117, 115, 119, 118, 112, 116, 117, 115, 121, 116, 114, 114, 118, 115, 111, 115, 116, 119, 116, 117, 116, 114, 117, 117, 112, 113, 118, 106, 116, 123, 111, 112, 111, 117, 112, 117, 111, 114, 124, 119, 117, 121, 120, 115, 120, 118, 113, 128, 117, 112, 107, 119, 114, 115, 108, 115, 114, 112, 114, 112, 109, 116, 113, 120, 115, 113, 118, 111, 111, 122, 116, 116, 111, 127, 132, 115, 116, 119, 121, 121, 124, 119, 110, 107, 119, 117, 120, 113, 119, 117, 112, 111, 113, 115, 113, 122, 119, 116, 110, 117, 115, 118, 124, 122, 112, 115, 108, 113, 124, 118, 114, 122, 115, 124, 120, 115, 113, 118, 114, 115, 116, 117, 115, 110, 116, 120, 110, 119, 120, 115, 112, 115, 116, 118, 113, 114, 127, 114, 116, 117, 113, 118, 109, 117, 99, 119, 116, 121, 121, 120, 114, 110, 131, 115, 119, 116, 108, 118, 117, 115, 114, 115, 106, 119, 115, 117, 107, 111, 134, 82, 117, 128, 114, 117, 118, 122, 113, 108, 112, 120, 118, 113, 114, 130, 124, 110, 108, 121, 115, 135, 106, 123, 145, 128, 111, 114, 121, 124, 113, 110, 107, 131, 107, 118, 103, 112, 117, 115, 119, 118, 122, 119, 119, 113, 97, 120, 112, 100, 132, 118, 114, 106, 109, 114, 117, 120, 114, 144, 110, 140, 124, 116, 114, 122, 115, 120, 143, 113, 117, 120, 127, 116, 120, 119, 114, 111, 120, 87, 140, 127, 104, 92, 105, 112, 106, 123, 120, 89, 112, 110, 119, 111, 108, 107, 121, 107, 117, 106, 114, 112, 109, 111, 125, 135, 119, 116, 119, 104, 115, 116, 117, 110, 117, 113, 102, 130, 113, 113, 113, 115, 118, 105, 116, 121, 117, 111, 57, 114, 115, 118, 111, 117, 109, 112, 124, 103, 137, 126, 130, 107, 118, 122, 114, 114, 119, 118, 122, 119, 111, 112, 113, 106, 109, 105, 119, 97, 98, 114, 114, 116, 111, 124, 135, 112, 121, 104, 114, 120, 110, 116, 111, 107, 112, 116, 106, 116, 124, 121, 128, 118, 115, 94, 105, 113, 111, 133, 127, 114, 122, 135, 128, 111, 119, 121, 112, 110, 107, 123, 112, 98, 123, 111, 129, 120, 108, 108, 125, 115, 121, 117, 112, 126, 115, 110, 119, 105, 125, 114, 117, 101, 112, 114, 88, 103, 111, 116, 115, 122, 108, 121, 112, 117, 115, 105, 117, 110, 112, 112, 117, 114, 123, 113, 124, 122, 108, 105, 110, 111, 118, 117, 114, 117, 119, 118, 115, 126, 129, 108, 136, 107, 118, 103, 121, 120, 122, 111, 106, 114, 115, 121, 126, 118, 101, 127, 95, 124, 91, 103, 131, 121, 118, 118, 103, 118, 122, 117, 109, 121, 113, 102, 111, 123, 111, 125, 93, 114, 116, 121, 121, 112, 122, 105, 113, 124, 117, 114, 130, 118, 116, 107, 120, 104, 118, 97, 116, 80, 113, 101, 115, 111, 121, 117, 122, 111, 118, 126, 115, 120, 130, 113, 111, 122, 121, 121, 116, 101, 115, 115, 123, 123, 126, 110, 108, 115, 125, 130, 117, 106, 118, 123, 121, 111, 120, 113, 108, 113, 122, 118, 105, 121, 127, 115, 115, 106, 106, 135, 123, 105, 109, 111, 111, 131, 124, 104, 111, 116, 124, 122, 103, 124, 102, 127, 125, 103, 122, 117, 116, 117, 96, 102, 112, 116, 154, 125, 143, 121, 147, 116, 123, 115, 119, 117, 107, 105, 114, 123, 108, 116, 123, 118, 114, 110, 92, 106, 123, 126, 109, 112, 121, 128, 87, 126, 146, 110, 113, 110, 108, 115, 102, 111, 131, 106, 113, 130, 115, 115, 104, 107, 118, 117, 114, 103, 114, 112, 166, 135, 129, 115, 117, 131, 120, 95, 116, 112, 119, 76, 124, 101, 110, 102, 106, 107, 125, 112, 115, 102, 110, 119, 123, 117, 126, 107, 103, 113, 111, 113, 115, 117, 113, 115, 123, 116, 121, 118, 112, 122, 134, 111, 104, 115, 114, 118, 105, 118, 116, 102, 123, 114, 116, 114, 129, 116, 105, 122, 118, 118, 119, 106, 123, 115, 127, 99, 110, 124, 111, 100, 105, 98, 111, 103, 131, 121, 102, 82, 122, 118, 117, 137, 108, 108, 124, 112, 122, 102, 136, 99, 121, 120, 109, 129, 92, 127, 121, 117, 115, 115, 114, 107, 118, 115, 100, 112, 113, 108, 104, 129, 100, 109, 116, 123, 120, 120, 118, 111, 99, 107, 113, 121, 113, 110, 125, 133, 104, 118, 112, 133, 109, 119, 116, 105, 115, 119, 137, 107, 112, 118, 116, 108, 90, 125, 106, 126, 112, 126, 131, 120, 113, 108, 128, 126, 115, 123, 122, 95, 124, 114, 129, 125, 111, 116, 107, 112, 124, 108, 127, 114, 154, 132, 110, 116, 119, 130, 116, 114, 109, 111, 74, 138, 105, 118, 108, 124, 99, 105, 134, 120, 126, 121, 118, 128, 122, 114, 128, 111, 111, 116, 129, 110, 112, 102, 116, 113, 109, 131, 119, 113, 137, 96, 134, 101, 111, 113, 107, 106, 107, 156, 120, 117, 102, 106, 117, 115, 97, 122, 139, 114, 127, 125, 103, 121, 106, 123, 104, 129, 112, 122, 123, 121, 124, 99, 95, 122, 111, 100, 134, 106, 123, 128, 118, 120, 131, 127, 117, 106, 122, 99, 117, 119, 113, 131, 118, 105, 116, 131, 121, 101, 130, 110, 119, 104, 122, 115, 133, 111, 120, 122, 121, 104, 124, 111, 122, 115, 123, 116, 120, 117, 114, 106, 110, 112, 132, 79, 119, 114, 108, 92, 110, 118, 122, 116, 105, 111, 112, 108, 109, 110, 116, 116, 110, 130, 128, 119, 103, 118, 116, 142, 118, 124, 112, 112, 114, 123, 136, 116, 121, 124, 118, 116, 107, 101, 120, 119, 113, 106, 126, 115, 128, 116, 91, 116, 118, 118, 128, 109, 110, 121, 110, 108, 116, 104, 101, 111, 110, 120, 121, 128, 111, 114, 118, 104, 113, 104, 114, 115, 125, 113, 126, 127, 104, 117, 113, 121, 114, 116, 108, 126, 117, 124, 121, 146, 118, 113, 121, 119, 108, 113, 106, 94, 108, 120, 121, 112, 115, 127, 119, 116, 102, 107, 116, 114, 88, 107, 149, 121, 106, 113, 109, 137, 113, 106, 130, 117, 132, 120, 121, 111, 131, 114, 103, 125, 123, 121, 116, 99, 113, 121, 111, 126, 123, 122, 125, 121, 131, 121, 106, 116, 130, 117, 122, 111, 106, 117, 117, 113, 122, 105, 118, 146, 124, 108, 119, 129, 117, 127, 99, 115, 124, 122, 109, 113, 108, 116, 130, 109, 130, 102, 115, 121, 111, 116, 107, 116, 128, 117, 111, 96, 137, 124, 135, 126, 108, 125, 120, 119, 110, 91, 128, 114, 135, 100, 102, 129, 110, 118, 105, 119, 115, 111, 114, 125, 118, 115, 122, 104, 118, 112, 141, 117, 113, 122, 116, 118, 116, 109, 125, 117, 97, 120, 122, 108, 118, 118, 122, 119, 108, 107, 148, 123, 121, 114, 118, 102, 120, 136, 103, 118, 104, 116, 110, 101, 100, 121, 120, 110, 115, 118, 128, 121, 115, 135, 116, 147, 111, 110, 117, 108, 121, 98, 121, 110, 132, 105, 110, 109, 123, 108, 114, 124, 136, 114, 113, 114, 119, 110, 124, 111, 111, 99, 120, 120, 116, 126, 111, 119, 127, 141, 110, 111, 100, 115, 115, 103, 120, 117, 114, 115, 129, 129, 111, 123, 114, 119, 123, 129, 108, 123, 110, 114, 124, 120, 116, 107, 122, 114, 114, 124, 111, 128, 119, 105, 118, 118, 120, 111, 122, 115, 98, 105, 121, 117, 111, 101, 112, 119, 117, 115, 114, 130, 113, 112, 117, 106, 101, 111, 129, 121, 112, 120, 109, 108, 111, 125, 99, 129, 119, 125, 122, 118, 110, 102, 114, 111, 105, 109, 116, 119, 121, 120, 125, 100, 127, 108, 112, 103, 110, 122, 114, 129, 109, 115, 121, 113, 114, 127, 106, 112, 105, 110, 100, 113, 108, 126, 120, 112, 105, 107, 106, 108, 125, 121, 131, 109, 120, 117, 115, 121, 114, 103, 110, 106, 115, 114, 121, 117, 109, 134, 113, 120, 128, 113, 103, 116, 109, 110, 111, 117, 108, 103, 114, 108, 118, 109, 118, 114, 110, 121, 120, 114, 134, 114, 107, 130, 116, 127, 121, 103, 122, 118, 121, 115, 109, 116, 114, 109, 128, 114, 112, 111, 118, 129, 113, 113, 106, 144, 115, 118, 119, 125, 125, 112, 110, 118, 109, 114, 118, 118, 105, 111, 110, 95, 110, 118, 121, 112, 109, 118, 112, 111, 110, 97, 117, 116, 108, 114, 112, 134, 107, 121, 115, 110, 119, 115, 118, 106, 113, 125, 114, 101, 120, 115, 115, 124, 121, 111, 113, 107, 128, 116, 106, 117, 111, 118, 112, 117, 120, 115, 109, 114, 116, 115, 117, 110, 130, 129, 102, 106, 109, 113, 128, 101, 104, 130, 113, 117, 124, 106, 115, 120, 101, 107, 90, 110, 145, 122, 125, 125, 102, 111, 119, 111, 124, 107, 105, 100, 121, 120, 115, 105, 139, 114, 125, 111, 120, 109, 117, 113, 125, 113, 120, 113, 115, 121, 104, 115, 134, 99, 113, 111, 122, 115, 117, 115, 120, 113, 124, 119, 122, 121, 106, 117, 117, 117, 118, 113, 119, 113, 115, 111, 126, 120, 125, 117, 118, 118, 134, 113, 114, 119, 115, 122, 111, 116, 113, 105, 112, 122, 114, 116, 102, 123, 115, 115, 117, 120, 124, 108, 118, 117, 110, 132, 128, 110, 103, 100, 126, 130, 113, 117, 108, 121, 116, 115, 118, 144, 112, 125, 120, 117, 121, 108, 117, 123, 107, 115, 122, 110, 79, 118, 113, 116, 90, 123, 116, 114, 119, 112, 119, 110, 115, 120, 114, 113, 116, 115, 109, 124, 111, 113, 124, 101, 127, 119, 122, 114, 130, 119, 110, 109, 110, 113, 103, 123, 110, 110, 123, 112, 133, 100, 123, 110, 120, 117, 118, 125, 115, 113, 122, 117, 128, 128, 104, 105, 100, 106, 120, 116, 109, 117, 113, 118, 121, 111, 136, 113, 110, 114, 119, 122, 131, 122, 116, 113, 106, 133, 123, 127, 109, 127, 117, 120, 115, 117, 92, 109, 113, 116, 118, 122, 113, 125, 126, 116, 94, 124, 116, 110, 111, 108, 110, 114, 129, 117, 123, 116, 105, 118, 124, 142, 120, 111, 107, 121, 115, 126, 127, 114, 112, 112, 118, 113, 133, 120, 104, 113, 131, 105, 116, 115, 114, 116, 117, 119, 108, 118, 115, 140, 110, 117, 109, 133, 121, 120, 116, 125, 98, 117, 129, 109, 117, 128, 106, 116, 117, 110, 102, 132, 117, 131, 106, 119, 116, 106, 139, 113, 108, 122, 107, 123, 118, 110, 118, 108, 121, 107, 105, 122, 100, 124, 96, 122, 135, 125, 116, 113, 115, 115, 121, 112, 114, 115, 107, 117, 105, 117, 116, 116, 108, 111, 120, 118, 101, 116, 118, 125, 136, 135, 109, 149, 122, 119, 127, 122, 120, 127, 123, 123, 132, 124, 113, 132, 129, 138, 113, 113, 117, 126, 103, 105, 126, 118, 113, 121, 105, 125, 114, 116, 123, 114, 118, 127, 132, 117, 110, 115, 111, 115, 124, 108, 119, 113, 128, 129, 116, 104, 109, 118, 126, 137, 123, 129, 113, 124, 116, 111, 115, 122, 103, 115, 107, 136, 108, 102, 110, 109, 122, 130, 110, 119, 116, 116, 100, 121, 116, 122, 117, 121, 110, 103, 114, 107, 113, 113, 124, 130, 117, 131, 133, 113, 128, 122, 118, 124, 111, 118, 121, 117, 122, 114, 116, 104, 127, 95, 114, 141, 125, 115, 119, 113, 111, 123, 109, 111, 121, 107, 134, 116, 126, 124, 105, 117, 94, 114, 115, 115, 124, 107, 120, 101, 111, 111, 123, 83, 116, 119, 136, 134, 116, 114, 117, 124, 124, 127, 110, 104, 93, 111, 109, 110, 129, 104, 143, 113, 115, 116, 108, 107, 120, 111, 123, 121, 112, 107, 119, 152, 110, 105, 109, 113, 118, 115, 109, 107, 126, 125, 108, 112, 118, 105, 133, 116, 129, 126, 113, 104, 112, 108, 118, 115, 105, 103, 109, 128, 113, 106, 110, 121, 114, 101, 125, 106, 87, 98, 111, 117, 120, 122, 118, 116, 120, 117, 131, 99, 105, 116, 108, 124, 119, 120, 112, 85, 113, 110, 125, 117, 111, 129, 121, 121, 120, 122, 115, 97, 97, 89, 113, 120, 112, 130, 133, 113, 114, 129, 99, 124, 109, 116, 103, 102, 117, 105, 117, 119, 103, 107, 114, 105, 112, 95, 120, 111, 98, 115, 116, 113, 104, 115, 114, 109, 107, 126, 129, 111, 96, 139, 114, 121, 109, 103, 114, 117, 121, 112, 110, 113, 109, 122, 125, 111, 109, 146, 116, 125, 119, 108, 119, 113, 109, 118, 126, 117, 105, 112, 133, 98, 109, 115, 124, 118, 112, 118, 116, 116, 115, 123, 97, 117, 112, 112, 101, 112, 125, 103, 129, 120, 111, 124, 124, 131, 104, 122, 109, 114, 100, 98, 128, 132, 117, 110, 117, 114, 123, 115, 119, 127, 118, 119, 117, 127, 110, 99, 102, 126, 115, 126, 98, 115, 120, 121, 133, 114, 121, 106, 109, 114, 117, 109, 117, 117, 108, 114, 122, 106, 113, 118, 122, 111, 120, 132, 130, 114, 116, 125, 104, 101, 117, 114, 119, 117, 122, 123, 119, 123, 118, 146, 134, 116, 102, 121, 127, 115, 91, 115, 99, 120, 123, 108, 117, 152, 118, 117, 120, 125, 118, 116, 144, 100, 114, 135, 128, 105, 125, 135, 113, 113, 107, 115, 116, 107, 104, 119, 118, 122, 124, 115, 111, 135, 103, 105, 107, 103, 135, 107, 108, 106, 121, 90, 129, 127, 95, 123, 117, 120, 126, 116, 121, 122, 135, 130, 124, 115, 120, 117, 115, 137, 107, 103, 116, 111, 109, 110, 133, 122, 113, 103, 137, 120, 109, 111, 112, 104, 96, 107, 127, 121, 108, 113, 107, 107, 104, 118, 131, 132, 129, 126, 110, 119, 117, 121, 108, 110, 124, 120, 111, 118, 115, 108, 109, 121, 121, 112, 112, 118, 108, 108, 120, 109, 106, 111, 131, 116, 122, 123, 115, 122, 111, 121, 119, 113, 113, 119, 94, 106, 111, 106, 116, 106, 123, 105, 102, 114, 109, 131, 125, 127, 129, 113, 107, 115, 115, 116, 113, 129, 124, 122, 128, 109, 111, 148, 116, 146, 118, 115, 126, 114, 109, 139, 112, 112, 124, 112, 123, 105, 118, 114, 124, 124, 106, 123, 103, 122, 108, 116, 127, 129, 116, 112, 112, 113, 134, 109, 120, 111, 118, 132, 90, 89, 113, 110, 104, 111, 120, 116, 113, 103, 152, 120, 117, 103, 114, 111, 123, 107, 112, 102, 137, 107, 121, 121, 113, 101, 112, 119, 109, 99, 119, 118, 110, 117, 106, 110, 129, 114, 117, 147, 115, 132, 114, 119, 108, 119, 118, 110, 113, 125, 107, 110, 113, 106, 123, 119, 118, 118, 108, 110, 106, 116, 104, 131, 121, 127, 107, 124, 115, 116, 100, 113, 108, 107, 86, 112, 114, 127, 117, 115, 123, 114, 118, 115, 112, 99, 110, 123, 109, 127, 113, 119, 108, 102, 120, 101, 130, 107, 119, 125, 107, 128, 113, 121, 117, 110, 112, 107, 115, 108, 122, 114, 116, 112, 120, 123, 117, 102, 97, 110, 114, 130, 106, 105, 109, 105, 131, 104, 110, 126, 110, 116, 105, 113, 106, 111, 93, 135, 111, 107, 110, 106, 112, 116, 110, 114, 115, 133, 116, 129, 97, 113, 103, 109, 128, 122, 114, 109, 111, 120, 115, 120, 115, 95, 116, 136, 119, 105, 116, 109, 112, 113, 114, 128, 120, 123, 114, 115, 122, 115, 115, 123, 113, 102, 110, 122, 113, 106, 120, 123, 110, 87, 119, 105, 126, 118, 116, 114, 120, 125, 108, 103, 109, 106, 109, 115, 109, 104, 109, 113, 120, 126, 109, 128, 112, 116, 120, 123, 114, 109, 126, 121, 112, 121, 107, 111, 104, 123, 119, 116, 106, 108, 122, 118, 110, 102, 117, 115, 111, 128, 110, 119, 126, 116, 104, 108, 107, 115, 112, 141, 118, 109, 119, 110, 104, 126, 112, 119, 97, 105, 119, 117, 103, 123, 120, 110, 111, 103, 109, 111, 107, 103, 122, 108, 101, 100, 108, 123, 117, 115, 104, 111, 110, 112, 108, 107, 101, 119, 109, 107, 100, 111, 122, 106, 116, 124, 112, 124, 134, 106, 105, 111, 128, 120, 122, 112, 111, 114, 116, 94, 117, 113, 101, 119, 119, 127, 103, 111, 109, 115, 112, 112, 114, 112, 117, 113, 99, 88, 114, 106, 116, 113, 109, 113, 114, 121, 117, 137, 121, 106, 121, 111, 128, 113, 101, 129, 116, 115, 115, 120, 125, 110, 116, 129, 109, 103, 119, 113, 115, 123, 106, 118, 120, 117, 111, 126, 119, 127, 124, 115, 124, 110, 134, 110, 118, 124, 105, 123, 112, 113, 121, 116, 93, 123, 115, 108, 137, 120, 125, 119, 110, 106, 124, 122, 118, 137, 122, 122, 106, 124, 122, 116, 135, 108, 111, 122, 126, 115, 120, 120, 120, 122, 123, 124, 113, 112, 124, 115, 97, 124, 114, 111, 112, 131, 108, 107, 116, 113, 114, 115, 127, 108, 105, 112, 124, 122, 118, 98, 111, 122, 117, 107, 116, 107, 115, 110, 108, 112, 119, 115, 79, 92, 115, 103, 123, 108, 120, 119, 110, 139, 126, 117, 125, 121, 115, 108, 131, 112, 134, 131, 99, 107, 111, 109, 99, 115, 116, 107, 108, 115, 105, 122, 107, 99, 122, 124, 110, 123, 129, 125, 107, 108, 106, 138, 116, 105, 119, 122, 94, 138, 109, 126, 105, 106, 117, 103, 105, 101, 121, 111, 99, 115, 87, 106, 132, 120, 120, 113, 103, 130, 102, 111, 118, 107, 123, 132, 120, 116, 130, 127, 105, 117, 122, 126, 110, 110, 112, 109, 132, 121, 125, 114, 99, 108, 106, 119, 114, 121, 111, 111, 121, 112, 125, 128, 111, 121, 117, 119, 110, 121, 117, 124, 121, 114, 116, 110, 108, 125, 113, 126, 109, 116, 108, 110, 120, 118, 109, 107, 92, 113, 98, 122, 114, 122, 109, 118, 100, 123, 120, 109, 122, 106, 123, 126, 105, 109, 119, 95, 112, 115, 105, 107, 125, 120, 108, 114, 109, 115, 117, 100, 115, 117, 126, 119, 107, 123, 108, 112, 119, 125, 123, 101, 125, 106, 112, 111, 113, 116, 114, 133, 129, 112, 129, 112, 102, 117, 109, 115, 128, 122, 105, 124, 106, 127, 112, 110, 126, 114, 121, 129, 104, 115, 124, 127, 124, 119, 103, 112, 120, 109, 127, 103, 111, 119, 113, 116, 117, 111, 103, 103, 122, 109, 119, 118, 121, 114, 121, 123, 110, 113, 123, 104, 123, 110, 133, 117, 103, 109, 115, 106, 105, 99, 102, 120, 117, 101, 108, 110, 114, 107, 116, 118, 97, 126, 143, 120, 111, 106, 115, 123, 126, 125, 127, 119, 115, 113, 119, 118, 122, 121, 128, 115, 119, 119, 118, 92, 120, 106, 103, 97, 132, 125, 112, 125, 113, 115, 108, 117, 131, 119, 110, 114, 91, 122, 125, 121, 111, 126, 122, 150, 90, 108, 122, 115, 119, 113, 100, 116, 125, 114, 115, 116, 97, 149, 100, 98, 102, 118, 122, 125, 114, 112, 106, 98, 105, 114, 126, 123, 123, 101, 129, 122, 109, 120, 118, 108, 110, 126, 110, 89, 124, 123, 109, 115, 107, 132, 119, 102, 117, 104, 131, 129, 105, 110, 125, 123, 108, 111, 109, 108, 108, 123, 111, 116, 118, 113, 119, 107, 115, 126, 118, 101, 107, 124, 116, 117, 113, 125, 111, 117, 113, 119, 106, 110, 121, 101, 112, 111, 122, 121, 123, 106, 107, 104, 111, 124, 115, 115, 121, 107, 131, 121, 129, 95, 120, 106, 104, 115, 113, 116, 118, 106, 118, 111, 118, 121, 128, 107, 125, 124, 136, 110, 117, 117, 115, 120, 118, 121, 117, 118, 88, 116, 110, 121, 111, 123, 110, 116, 117, 105, 105, 105, 110, 115, 119, 108, 106, 117, 131, 110, 123, 116, 117, 121, 102, 116, 104, 113, 126, 123, 109, 120, 104, 118, 104, 122, 114, 125, 125, 116, 117, 121, 117, 111, 115, 116, 117, 125, 113, 125, 108, 110, 109, 114, 108, 112, 100, 129, 105, 110, 121, 114, 107, 113, 117, 116, 114, 107, 110, 110, 116, 114, 113, 130, 107, 110, 110, 105, 103, 112, 112, 105, 116, 114, 98, 116, 111, 108, 140, 106, 106, 113, 120, 122, 114, 107, 112, 129, 122, 120, 129, 108, 125, 108, 113, 120, 118, 99, 112, 119, 109, 119, 115, 113, 106, 134, 111, 111, 108, 106, 112, 115, 113, 117, 128, 98, 121, 116, 120, 113, 110, 122, 114, 121, 125, 123, 117, 101, 104, 110, 122, 118, 97, 125, 108, 101, 130, 116, 126, 122, 112, 109, 130, 114, 148, 122, 116, 112, 104, 127, 119, 109, 119, 115, 113, 123, 116, 116, 113, 110, 112, 116, 112, 115, 115, 109, 126, 112, 113, 125, 129, 106, 119, 125, 116, 102, 106, 123, 125, 110, 115, 108, 103, 93, 137, 109, 113, 102, 116, 112, 144, 117, 106, 120, 130, 134, 113, 104, 126, 119, 102, 109, 99, 114, 139, 116, 112, 117, 105, 116, 104, 125, 100, 129, 107, 123, 128, 113, 125, 111, 112, 122, 114, 128, 115, 120, 118, 106, 129, 115, 114, 107, 111, 134, 109, 108, 118, 122, 128, 116, 113, 127, 106, 132, 122, 119, 109, 109, 120, 113, 120, 108, 105, 111, 120, 111, 116, 122, 118, 115, 119, 117, 95, 116, 114, 117, 115, 115, 114, 116, 119, 116, 116, 109, 116, 112, 113, 113, 120, 117, 103, 114, 107, 114, 120, 120, 118, 120, 99, 115, 102, 116, 123, 121, 116, 114, 114, 115, 118, 117, 121, 112, 126, 98, 110, 126, 102, 115, 111, 112, 110, 113, 125, 115, 117, 112, 119, 135, 118, 127, 108, 98, 142, 114, 114, 99, 122, 111, 118, 120, 123, 116, 120, 128, 112, 119, 106, 112, 108, 110, 106, 109, 133, 113, 116, 118, 129, 113, 117, 120, 130, 130, 118, 127, 124, 104, 110, 113, 118, 123, 108, 122, 111, 127, 112, 110, 107, 109, 103, 122, 98, 118, 98, 123, 124, 107, 114, 104, 114, 117, 128, 129, 119, 122, 117, 93, 113, 169, 117, 109, 105, 120, 120, 120, 121, 112, 119, 115, 116, 109, 102, 127, 114, 124, 114, 113, 135, 116, 105, 110, 163, 118, 104, 132, 108, 103, 105, 112, 121, 121, 111, 95, 91, 113, 104, 120, 111, 108, 112, 97, 123, 95, 117, 100, 115, 120, 122, 101, 126, 115, 105, 122, 107, 126, 119, 105, 118, 118, 109, 120, 107, 112, 109, 124, 108, 115, 105, 113, 138, 111, 120, 98, 124, 116, 134, 136, 110, 104, 103, 115, 113, 125, 122, 113, 107, 147, 115, 108, 119, 123, 122, 137, 103, 112, 134, 108, 91, 124, 113, 115, 108, 127, 117, 111, 110, 110, 114, 126, 109, 104, 115, 125, 104, 140, 111, 101, 113, 133, 108, 114, 111, 114, 111, 104, 114, 122, 128, 109, 111, 124, 112, 104, 115, 104, 112, 110, 122, 108, 98, 134, 119, 127, 116, 104, 119, 109, 117, 105, 123, 104, 134, 109, 111, 131, 115, 105, 105, 112, 119, 110, 117, 121, 128, 110, 122, 119, 106, 119, 124, 119, 113, 132, 125, 106, 106, 119, 129, 116, 113, 107, 117, 118, 105, 123, 115, 115, 124, 112, 113, 117, 124, 101, 115, 105, 120, 120, 108, 112, 127, 119, 107, 117, 104, 108, 108, 108, 123, 125, 133, 124, 111, 106, 127, 108, 128, 111, 113, 125, 94, 106, 114, 120, 109, 112, 122, 124, 117, 123, 114, 121, 129, 115, 116, 108, 113, 111, 112, 133, 115, 129, 127, 103, 109, 104, 117, 112, 121, 120, 113, 130, 124, 113, 125, 116, 119, 122, 111, 132, 114, 122, 129, 110, 149, 98, 99, 123, 96, 110, 140, 108, 119, 121, 113, 113, 121, 125, 135, 122, 115, 106, 110, 110, 109, 118, 123, 112, 110, 106, 111, 120, 111, 114, 119, 123, 108, 114, 114, 122, 126, 120, 120, 100, 111, 116, 111, 115, 103, 110, 135, 103, 111, 98, 118, 100, 117, 110, 119, 105, 115, 114, 123, 114, 115, 112, 138, 120, 123, 119, 125, 111, 147, 126, 115, 115, 124, 102, 97, 123, 133, 108, 107, 116, 123, 119, 125, 99, 107, 116, 105, 110, 114, 108, 115, 122, 107, 103, 113, 106, 118, 117, 118, 120, 128, 142, 136, 104, 118, 122, 119, 100, 114, 120, 107, 95, 110, 125, 95, 120, 109, 124, 127, 108, 101, 128, 116, 106, 121, 98, 109, 128, 108, 109, 121, 112, 124, 111, 101, 127, 117, 126, 99, 115, 121, 112, 105, 128, 110, 125, 101, 103, 114, 124, 129, 103, 95, 131, 132, 122, 121, 122, 116, 98, 118, 124, 95, 107, 110, 114, 108, 114, 92, 119, 111, 108, 96, 119, 122, 106, 105, 116, 123, 107, 120, 117, 127, 109, 119, 135, 105, 113, 111, 108, 121, 121, 113, 119, 113, 106, 111, 127, 119, 120, 101, 101, 127, 106, 118, 121, 119, 111, 107, 120, 111, 114, 113, 122, 126, 109, 123, 120, 128, 98, 112, 111, 107, 118, 117, 121, 106, 111, 114, 115, 113, 115, 134, 121, 103, 130, 122, 134, 115, 105, 111, 128, 108, 117, 108, 111, 107, 100, 114, 106, 118, 119, 118, 128, 121, 139, 92, 115, 110, 118, 108, 126, 113, 117, 113, 105, 114, 122, 113, 128, 121, 132, 102, 117, 102, 121, 117, 113, 120, 108, 114, 114, 120, 122, 110, 105, 116, 119, 129, 120, 119, 121, 95, 117, 116, 115, 110, 111, 109, 119, 98, 97, 120, 118, 116, 129, 112, 100, 97, 101, 116, 126, 125, 111, 105, 116, 122, 126, 119, 129, 112, 125, 104, 119, 99, 117, 122, 108, 103, 118, 104, 113, 127, 120, 109, 104, 113, 117, 96, 110, 101, 121, 98, 120, 104, 150, 100, 112, 94, 117, 107, 107, 111, 115, 123, 108, 106, 121, 105, 112, 122, 114, 133, 106, 107, 122, 94, 102, 120, 105, 126, 105, 122, 112, 122, 109, 105, 124, 108, 113, 117, 132, 110, 113, 116, 113, 125, 118, 109, 111, 99, 132, 106, 118, 119, 110, 112, 99, 111, 108, 92, 133, 117, 108, 111, 107, 106, 114, 115, 113, 107, 109, 113, 126, 116, 112, 104, 104, 110, 120, 117, 119, 104, 114, 115, 114, 107, 101, 130, 105, 122, 134, 114, 108, 127, 131, 119, 128, 125, 101, 92, 114, 121, 125, 120, 123, 114, 113, 102, 98, 118, 111, 123, 111, 121, 108, 123, 99, 97, 116, 106, 107, 119, 107, 97, 116, 121, 125, 123, 108, 112, 122, 118, 127, 113, 123, 119, 126, 109, 132, 116, 120, 116, 118, 114, 118, 118, 117, 105, 113, 115, 125, 105, 123, 103, 121, 110, 124, 94, 130, 116, 102, 117, 106, 107, 117, 122, 117, 114, 109, 104, 119, 103, 110, 111, 118, 105, 119, 110, 111, 115, 99, 130, 100, 111, 129, 107, 105, 140, 114, 126, 116, 122, 105, 110, 125, 134, 108, 114, 114, 122, 111, 129, 110, 108, 107, 119, 114, 119, 109, 114, 150, 120, 130, 107, 104, 112, 182, 120, 107, 116, 104, 114, 119, 107, 114, 122, 119, 118, 107, 110, 106, 127, 108, 112, 113, 131, 135, 127, 97, 99, 119, 113, 135, 115, 104, 130, 125, 103, 117, 114, 117, 123, 103, 100, 118, 110, 118, 113, 126, 112, 104, 104, 117, 127, 117, 119, 117, 120, 122, 123, 120, 114, 114, 99, 129, 123, 119, 115, 123, 113, 117, 115, 142, 129, 105, 108, 113, 127, 110, 112, 96, 94, 117, 117, 108, 125, 114, 103, 118, 115, 135, 117, 131, 118, 114, 122, 110, 122, 101, 109, 113, 117, 105, 107, 104, 107, 115, 127, 115, 131, 118, 121, 128, 122, 112, 110, 125, 113, 110, 122, 106, 127, 108, 109, 114, 106, 105, 137, 121, 113, 110, 126, 107, 120, 116, 116, 110, 115, 122, 106, 116, 117, 121, 116, 122, 101, 135, 122, 111, 104, 109, 116, 115, 116, 120, 112, 107, 120, 116, 102, 119, 103, 101, 106, 103, 112, 105, 112, 125, 117, 124, 122, 99, 117, 98, 115, 109, 117, 121, 112, 106, 121, 113, 140, 110, 113, 112, 132, 131, 99, 114, 106, 116, 115, 123, 102, 127, 107, 123, 116, 88, 121, 110, 117, 97, 115, 121, 124, 129, 112, 128, 104, 115, 107, 106, 113, 100, 109, 105, 121, 111, 128, 125, 132, 111, 115, 129, 110, 124, 135, 107, 121, 123, 123, 99, 134, 106, 127, 116, 126, 128, 124, 124, 119, 120, 119, 135, 119, 124, 117, 117, 119, 107, 100, 114, 114, 103, 115, 108, 96, 112, 95, 95, 103, 91, 112, 99, 120, 108, 116, 118, 107, 112, 109, 124, 115, 112, 116, 105, 125, 109, 110, 120, 96, 126, 121, 113, 103, 115, 131, 113, 112, 116, 95, 134, 93, 112, 82, 120, 119, 112, 112, 123, 117, 104, 94, 105, 107, 124, 97, 130, 109, 117, 109, 100, 99, 119, 108, 121, 118, 127, 127, 127, 121, 110, 106, 121, 120, 111, 104, 109, 112, 116, 108, 102, 123, 124, 110, 101, 121, 117, 133, 113, 102, 101, 124, 126, 119, 111, 96, 127, 132, 114, 115, 115, 122, 127, 122, 117, 112, 117, 122, 128, 112, 118, 108, 115, 111, 117, 116, 112, 109, 117, 101, 109, 116, 141, 115, 134, 115, 110, 124, 110, 130, 118, 119, 105, 108, 130, 122, 122, 124, 114, 115, 110, 105, 101, 118, 105, 118, 134, 131, 122, 101, 95, 131, 109, 112, 109, 116, 111, 112, 114, 111, 119, 124, 120, 124, 128, 117, 111, 122, 120, 116, 113, 118, 117, 108, 135, 116, 114, 105, 105, 126, 110, 114, 115, 107, 118, 107, 101, 100, 118, 116, 114, 113, 114, 121, 96, 113, 121, 121, 110, 117, 125, 124, 125, 121, 117, 92, 94, 122, 113, 112, 116, 109, 115, 123, 122, 132, 124, 99, 137, 120, 123, 107, 130, 110, 114, 129, 117, 107, 110, 102, 110, 112, 123, 143, 113, 119, 108, 115, 108, 110, 105, 107, 108, 100, 118, 115, 118, 103, 113, 120, 115, 101, 114, 127, 122, 116, 125, 104, 117, 139, 114, 112, 111, 115, 115, 116, 109, 112, 106, 107, 120, 126, 81, 125, 119, 119, 111, 108, 116, 127, 113, 115, 109, 106, 131, 113, 126, 120, 118, 120, 124, 123, 103, 109, 95, 115, 104, 124, 95, 114, 114, 123, 104, 138, 111, 130, 116, 124, 110, 126, 121, 104, 94, 120, 101, 119, 107, 111, 108, 108, 109, 116, 114, 122, 110, 123, 79, 116, 103, 111, 108, 102, 111, 112, 118, 121, 109, 108, 112, 115, 108, 131, 121, 106, 122, 109, 104, 106, 125, 128, 108, 109, 110, 108, 106, 113, 127, 113, 114, 119, 120, 110, 111, 105, 102, 135, 107, 117, 129, 116, 125, 116, 106, 127, 130, 105, 116, 117, 121, 106, 115, 121, 139, 110, 109, 108, 128, 117, 115, 111, 110, 108, 118, 134, 129, 120, 125, 110, 109, 116, 111, 110, 122, 110, 109, 118, 134, 101, 119, 113, 116, 118, 109, 116, 118, 114, 103, 131, 115, 107, 122, 108, 98, 116, 115, 112, 110, 106, 101, 110, 116, 116, 120, 102, 121, 110, 106, 102, 116, 114, 123, 115, 128, 109, 128, 116, 135, 102, 114, 110, 108, 112, 109, 115, 107, 123, 127, 111, 114, 126, 100, 122, 120, 105, 141, 104, 105, 111, 118, 110, 127, 113, 122, 117, 121, 124, 114, 117, 99, 104, 120, 117, 113, 104, 124, 121, 103, 102, 127, 100, 111, 105, 104, 134, 103, 110, 141, 123, 126, 118, 107, 156, 110, 109, 112, 108, 106, 125, 122, 108, 96, 101, 101, 101, 113, 134, 105, 115, 99, 105, 114, 119, 104, 104, 131, 117, 100, 116, 112, 107, 114, 118, 115, 107, 121, 112, 124, 113, 101, 114, 114, 106, 101, 130, 112, 121, 123, 111, 114, 131, 107, 114, 114, 115, 124, 119, 84, 124, 116, 96, 121, 122, 108, 115, 106, 111, 116, 105, 108, 114, 122, 107, 131, 124, 117, 109, 128, 116, 108, 118, 113, 131, 120, 112, 111, 121, 117, 113, 101, 122, 129, 108, 103, 116, 116, 120, 108, 116, 116, 109, 109, 118, 123, 112, 127, 144, 98, 107, 103, 109, 115, 111, 116, 116, 124, 117, 136, 136, 110, 99, 116, 116, 117, 104, 113, 118, 117, 120, 115, 116, 120, 115, 114, 124, 113, 122, 127, 111, 114, 112, 118, 107, 116, 99, 113, 118, 109, 124, 120, 124, 107, 118, 117, 115, 120, 113, 117, 128, 120, 115, 118, 124, 127, 119, 104, 111, 120, 110, 127, 107, 117, 134, 110, 122, 120, 110, 116, 124, 122, 105, 125, 125, 109, 121, 115, 117, 131, 115, 111, 110, 117, 120, 128, 130, 137, 95, 98, 111, 122, 101, 117, 119, 117, 118, 109, 109, 119, 130, 121, 115, 109, 108, 104, 115, 118, 113, 122, 132, 114, 101, 114, 109, 125, 155, 117, 129, 109, 107, 111, 121, 124, 111, 101, 124, 114, 115, 117, 116, 117, 109, 111, 118, 127, 111, 113, 115, 136, 105, 113, 119, 110, 124, 114, 116, 119, 125, 119, 114, 105, 91, 115, 121, 119, 121, 136, 106, 111, 128, 111, 118, 107, 120, 116, 108, 111, 119, 122, 114, 82, 93, 117, 125, 114, 117, 111, 134, 118, 123, 112, 115, 116, 113, 126, 115, 109, 115, 129, 115, 114, 110, 112, 123, 129, 113, 133, 113, 98, 100, 120, 132, 114, 109, 111, 124, 119, 109, 121, 107, 124, 122, 107, 115, 120, 124, 120, 96, 110, 113, 124, 121, 113, 123, 117, 112, 117, 115, 108, 107, 105, 115, 121, 121, 118, 123, 120, 119, 118, 120, 111, 115, 110, 108, 125, 108, 114, 126, 121, 123, 128, 120, 111, 110, 106, 124, 123, 111, 119, 117, 128, 114, 118, 128, 115, 121, 124, 121, 118, 115, 109, 119, 161, 117, 120, 121, 140, 117, 119, 124, 102, 108, 124, 115, 126, 112, 109, 110, 106, 123, 114, 117, 130, 118, 112, 122, 120, 110, 118, 116, 114, 129, 110, 123, 117, 117, 120, 117, 110, 111, 126, 116, 123, 124, 116, 132, 114, 121, 115, 173, 109, 118, 108, 113, 114, 124, 99, 110, 118, 132, 102, 122, 139, 112, 102, 122, 119, 118, 115, 119, 115, 117, 116, 108, 114, 121, 126, 131, 99, 117, 115, 92, 115, 124, 123, 132, 117, 128, 118, 110, 123, 113, 106, 122, 117, 120, 121, 101, 100, 106, 117, 115, 123, 113, 126, 106, 114, 121, 114, 118, 114, 117, 123, 132, 114, 111, 125, 112, 104, 120, 128, 115, 123, 121, 128, 108, 106, 117, 135, 104, 115, 127, 117, 91, 117, 107, 123, 92, 116, 125, 110, 111, 120, 107, 104, 112, 106, 121, 120, 119, 96, 134, 125, 120, 121, 112, 114, 100, 122, 125, 126, 117, 122, 164, 121, 112, 119, 113, 107, 92, 118, 110, 118, 117, 110, 122, 123, 96, 118, 114, 117, 115, 115, 106, 111, 104, 99, 112, 136, 144, 117, 129, 131, 115, 119, 128, 114, 112, 120, 111, 112, 115, 154, 112, 112, 126, 136, 115, 104, 115, 123, 102, 121, 111, 114, 121, 111, 116, 116, 112, 120, 122, 115, 121, 115, 107, 112, 122, 122, 123, 113, 119, 112, 118, 118, 123, 122, 124, 116, 113, 122, 119, 123, 122, 121, 121, 117, 121, 120, 111, 114, 108, 110, 110, 107, 117, 122, 109, 115, 128, 116, 121, 116, 115, 123, 116, 101, 118, 114, 120, 122, 118, 119, 121, 111, 108, 118, 116, 113, 117, 113, 117, 105, 97, 131, 111, 98, 111, 111, 115, 115, 120, 128, 113, 116, 114, 124, 104, 115, 104, 125, 110, 124, 115, 107, 119, 115, 94, 108, 111, 119, 121, 118, 110, 113, 118, 100, 110, 116, 106, 122, 103, 122, 124, 121, 116, 99, 114, 117, 114, 119, 132, 115, 115, 110, 123, 119, 99, 108, 108, 110, 94, 133, 114, 118, 119, 122, 115, 119, 119, 123, 119, 117, 118, 119, 118, 118, 118, 121, 120, 130, 110, 112, 111, 115, 121, 120, 125, 109, 116, 111, 118, 115, 114, 114, 106, 117, 132, 109, 118, 132, 116, 114, 108, 116, 124, 119, 105, 110, 124, 119, 113, 116, 121, 122, 110, 123, 113, 115, 113, 116, 118, 109, 105, 112, 111, 107, 123, 97, 124, 113, 112, 104, 115, 115, 113, 116, 128, 109, 117, 110, 125, 116, 109, 99, 120, 114, 122, 113, 112, 114, 112, 123, 115, 118, 118, 109, 116, 114, 112, 108, 109, 122, 110, 112, 121, 109, 117, 108, 100, 113, 119, 109, 132, 126, 112, 123, 112, 105, 118, 118, 124, 105, 127, 124, 113, 111, 113, 134, 123, 136, 121, 114, 113, 122, 112, 114, 116, 117, 108, 112, 125, 108, 115, 114, 115, 112, 115, 110, 119, 115, 119, 119, 117, 113, 113, 118, 120, 116, 124, 106, 118, 113, 112, 116, 114, 119, 110, 114, 115, 111, 108, 109, 117, 122, 115, 122, 110, 112, 123, 121, 116, 113, 117, 108, 111, 111, 110, 116, 123, 101, 100, 129, 100, 117, 121, 111, 111, 112, 122, 115, 121, 116, 121, 130, 111, 112, 117, 112, 116, 116, 102, 131, 122, 119, 122, 121, 122, 111, 106, 124, 125, 109, 111, 116, 106, 108, 120, 104, 119, 117, 130, 132, 122, 118, 123, 116, 120, 110, 121, 109, 109, 106, 113, 108, 107, 127, 122, 126, 109, 107, 115, 112, 116, 134, 104, 110, 95, 116, 114, 117, 129, 114, 115, 115, 111, 95, 110, 118, 114, 98, 106, 113, 121, 113, 109, 115, 114, 110, 119, 122, 114, 115, 114, 119, 125, 141, 115, 115, 119, 118, 111, 117, 110, 124, 112, 124, 103, 124, 108, 118, 111, 114, 110, 107, 129, 120, 121, 113, 117, 123, 109, 125, 117, 127, 129, 136, 104, 107, 116, 124, 117, 111, 112, 105, 109, 108, 97, 109, 118, 117, 114, 113, 113, 105, 114, 126, 117, 121, 114, 120, 115, 123, 112, 121, 109, 120, 119, 107, 113, 100, 103, 110, 100, 94, 112, 131, 126, 131, 125, 105, 119, 106, 109, 122, 117, 104, 113, 119, 128, 121, 113, 113, 126, 112, 134, 107, 122, 112, 106, 101, 105, 124, 116, 97, 110, 99, 126, 112, 116, 128, 102, 137, 125, 116, 122, 119, 111, 128, 127, 101, 100, 113, 110, 111, 144, 131, 130, 126, 109, 96, 115, 118, 103, 117, 129, 115, 110, 117, 119, 114, 129, 114, 119, 121, 117, 120, 113, 117, 112, 105, 118, 130, 98, 126, 109, 115, 83, 129, 118, 118, 99, 112, 120, 118, 122, 113, 129, 127, 108, 103, 121, 118, 115, 122, 133, 121, 116, 124, 103, 105, 129, 121, 116, 120, 120, 132, 110, 99, 111, 122, 111, 115, 114, 103, 120, 117, 126, 100, 98, 124, 127, 116, 110, 124, 107, 107, 140, 122, 106, 117, 108, 109, 118, 100, 127, 109, 129, 103, 106, 106, 105, 105, 107, 116, 121, 115, 115, 102, 114, 98, 108, 122, 111, 98, 116, 109, 95, 133, 102, 112, 129, 99, 107, 114, 121, 102, 122, 108, 116, 132, 110, 113, 114, 129, 122, 126, 101, 113, 119, 106, 108, 113, 117, 119, 140, 108, 137, 133, 113, 108, 93, 116, 111, 121, 101, 117, 119, 108, 109, 104, 122, 107, 105, 125, 117, 117, 133, 108, 125, 133, 127, 118, 124, 121, 120, 113, 116, 107, 111, 107, 116, 112, 109, 120, 120, 107, 131, 122, 96, 108, 122, 118, 96, 110, 117, 110, 117, 105, 124, 124, 127, 132, 133, 119, 110, 117, 126, 112, 104, 110, 108, 99, 114, 114, 129, 115, 138, 119, 107, 102, 110, 118, 100, 125, 129, 109, 99, 124, 115, 126, 126, 127, 107, 133, 115, 99, 102, 118, 123, 105, 120, 105, 117, 101, 108, 139, 116, 114, 101, 113, 122, 108, 119, 118, 103, 136, 116, 124, 132, 129, 115, 114, 116, 112, 119, 119, 107, 98, 109, 99, 113, 118, 118, 121, 98, 116, 87, 122, 115, 104, 119, 125, 113, 131, 119, 117, 116, 114, 123, 124, 116, 113, 112, 103, 116, 130, 112, 110, 111, 109, 121, 137, 119, 113, 107, 120, 112, 114, 105, 100, 117, 124, 111, 119, 110, 113, 116, 123, 119, 109, 104, 101, 120, 104, 113, 100, 108, 129, 124, 126, 103, 105, 109, 118, 109, 125, 118, 109, 126, 112, 114, 115, 108, 122, 116, 121, 95, 110, 99, 117, 130, 115, 124, 115, 103, 123, 103, 121, 106, 109, 99, 112, 126, 117, 107, 117, 103, 132, 106, 91, 96, 114, 117, 116, 106, 120, 144, 137, 97, 124, 124, 127, 125, 105, 137, 118, 121, 127, 101, 111, 141, 115, 111, 126, 126, 103, 102, 99, 115, 113, 104, 105, 123, 103, 108, 112, 108, 106, 123, 114, 118, 100, 107, 113, 99, 109, 98, 127, 122, 102, 115, 112, 135, 116, 127, 98, 123, 107, 107, 104, 116, 102, 114, 110, 106, 119, 124, 118, 115, 125, 111, 122, 147, 123, 113, 130, 115, 117, 113, 113, 116, 121, 91, 109, 107, 107, 151, 120, 113, 116, 133, 110, 118, 109, 116, 113, 118, 114, 110, 118, 114, 123, 109, 104, 108, 119, 112, 125, 106, 117, 113, 125, 114, 110, 117, 115, 113, 122, 113, 112, 119, 110, 110, 118, 106, 116, 113, 123, 114, 107, 111, 116, 113, 110, 121, 120, 113, 115, 127, 107, 116, 109, 108, 117, 117, 120, 109, 118, 116, 113, 120, 114, 121, 125, 118, 118, 120, 120, 119, 116, 117, 116, 127, 115, 117, 112, 113, 115, 111, 119, 121, 107, 117, 112, 115, 112, 115, 115, 108, 116, 116, 108, 110, 112, 118, 111, 119, 115, 105, 121, 111, 114, 118, 115, 119, 120, 124, 118, 113, 108, 121, 115, 111, 123, 125, 123, 112, 114, 115, 115, 114, 111, 117, 118, 125, 112, 118, 113, 111, 114, 112, 117, 115, 112, 112, 121, 118, 124, 110, 131, 113, 115, 116, 107, 114, 117, 113, 122, 122, 118, 123, 117, 115, 122, 122, 121, 109, 116, 111, 122, 118, 118, 106, 111, 113, 119, 111, 115, 114, 114, 141, 113, 114, 121, 116, 120, 110, 112, 116, 115, 112, 121, 115, 110, 116, 114, 113, 120, 111, 115, 115, 114, 102, 113, 109, 110, 116, 116, 108, 107, 117, 115, 122, 118, 111, 110, 117, 126, 112, 102, 111, 119, 119, 114, 109, 118, 107, 115, 117, 117, 110, 121, 116, 109, 113, 118, 112, 120, 117, 120, 115, 125, 115, 117, 117, 110, 112, 114, 115, 116, 115, 113, 120, 118, 122, 109, 113, 113, 114, 116, 120, 111, 119, 119, 107, 117, 115, 115, 114, 111, 118, 114, 122, 120, 115, 106, 111, 114, 116, 114, 116, 118, 117, 110, 113, 113, 123, 112, 112, 119, 117, 116, 134, 111, 112, 114, 117, 116, 121, 115, 114, 125, 118, 112, 115, 111, 116, 119, 116, 120, 115, 112, 112, 119, 113, 120, 115, 114, 109, 113, 115, 112, 114, 112, 113, 116, 114, 123, 123, 119, 115, 111, 116, 115, 120, 116, 117, 110, 127, 117, 112, 115, 112, 116, 121, 119, 112, 113, 121, 117, 115, 116, 119, 116, 117, 121, 122, 116, 114, 115, 128, 118, 117, 114, 118, 111, 116, 118, 114, 116, 146, 113, 110, 115, 122, 113, 119, 99, 120, 112, 112, 119, 116, 126, 118, 113, 117, 116, 114, 115, 119, 119, 110, 126, 108, 108, 108, 109, 119, 116, 110, 120, 119, 123, 114, 110, 117, 118, 118, 115, 112, 116, 113, 110, 115, 109, 112, 115, 109, 118, 117, 122, 116, 112, 113, 115, 116, 124, 119, 123, 115, 119, 105, 113, 107, 116, 111, 115, 124, 119, 117, 110, 127, 108, 120, 105, 119, 121, 115, 115, 112, 122, 113, 120, 116, 119, 113, 110, 121, 112, 118, 116, 119, 116, 117, 120, 116, 122, 110, 118, 118, 118, 122, 112, 114, 119, 120, 120, 121, 115, 118, 123, 112, 115, 120, 124, 117, 116, 109, 122, 112, 118, 121, 120, 120, 122, 113, 111, 114, 116, 119, 119, 117, 111, 112, 116, 112, 117, 113, 127, 118, 107, 108, 124, 115, 112, 117, 117, 109, 113, 119, 118, 116, 105, 111, 119, 123, 110, 109, 110, 111, 117, 118, 116, 113, 104, 117, 111, 105, 111, 113, 111, 107, 123, 119, 100, 134, 125, 115, 123, 115, 110, 113, 116, 115, 137, 111, 110, 135, 120, 130, 104, 114, 118, 101, 114, 103, 108, 119, 109, 111, 114, 104, 97, 109, 121, 108, 117, 134, 120, 107, 111, 126, 114, 117, 127, 111, 121, 118, 123, 97, 108, 122, 119, 115, 129, 112, 114, 115, 129, 123, 114, 118, 110, 117, 120, 120, 116, 115, 117, 106, 136, 119, 123, 111, 113, 112, 117, 122, 116, 107, 116, 113, 116, 110, 114, 121, 117, 124, 140, 115, 111, 122, 111, 124, 119, 118, 113, 116, 117, 112, 105, 114, 116, 118, 124, 122, 121, 121, 122, 120, 107, 130, 112, 113, 110, 120, 113, 114, 113, 122, 109, 123, 122, 108, 128, 114, 124, 106, 120, 127, 122, 121, 120, 111, 120, 128, 112, 110, 123, 104, 129, 123, 126, 118, 108, 127, 118, 120, 113, 123, 110, 110, 116, 105, 128, 115, 116, 114, 119, 118, 103, 114, 117, 133, 122, 118, 109, 116, 121, 107, 101, 117, 114, 102, 109, 119, 118, 116, 118, 116, 111, 112, 130, 117, 120, 119, 105, 121, 123, 111, 115, 115, 102, 115, 122, 116, 116, 110, 126, 129, 120, 121, 114, 119, 113, 100, 118, 105, 133, 116, 119, 115, 122, 115, 127, 123, 111, 119, 114, 116, 113, 104, 129, 108, 120, 113, 108, 103, 119, 121, 112, 115, 113, 116, 133, 124, 98, 115, 119, 125, 125, 119, 126, 114, 126, 117, 112, 127, 108, 130, 106, 118, 115, 113, 110, 122, 115, 111, 125, 114, 128, 104, 124, 118, 103, 120, 124, 134, 113, 111, 113, 112, 126, 113, 106, 118, 117, 124, 120, 119, 121, 120, 120, 116, 119, 110, 125, 112, 118, 123, 115, 111, 113, 112, 118, 107, 109, 111, 126, 126, 119, 124, 108, 110, 114, 118, 108, 106, 116, 107, 127, 112, 120, 113, 110, 118, 118, 106, 115, 112, 121, 135, 109, 108, 128, 119, 114, 127, 120, 112, 114, 109, 118, 118, 115, 123, 114, 120, 93, 130, 115, 112, 119, 106, 109, 128, 108, 103, 121, 115, 105, 111, 128, 107, 122, 119, 106, 112, 125, 112, 114, 118, 126, 117, 112, 122, 119, 115, 110, 129, 121, 107, 114, 128, 112, 109, 109, 119, 109, 120, 113, 114, 103, 120, 114, 103, 119, 114, 119, 113, 122, 125, 114, 107, 121, 130, 129, 121, 108, 125, 130, 110, 110, 121, 117, 106, 115, 106, 136, 136, 118, 119, 114, 112, 116, 120, 122, 117, 119, 113, 125, 117, 110, 120, 116, 126, 110, 126, 107, 114, 108, 129, 115, 113, 125, 120, 112, 115, 134, 123, 117, 109, 117, 122, 110, 107, 102, 131, 113, 101, 110, 131, 124, 107, 122, 110, 131, 116, 113, 114, 118, 112, 109, 116, 121, 111, 118, 124, 118, 118, 120, 126, 134, 120, 97, 118, 101, 128, 105, 120, 136, 109, 113, 103, 128, 116, 118, 124, 121, 131, 111, 122, 120, 130, 106, 108, 101, 120, 130, 121, 114, 104, 112, 114, 124, 115, 116, 122, 113, 114, 105, 117, 111, 100, 112, 111, 109, 135, 109, 114, 115, 94, 120, 115, 117, 108, 118, 123, 95, 120, 104, 121, 123, 111, 130, 130, 110, 118, 118, 124, 128, 111, 111, 116, 118, 126, 121, 111, 118, 104, 126, 128, 112, 113, 120, 108, 92, 115, 116, 113, 123, 120, 105, 111, 117, 110, 106, 126, 119, 131, 115, 118, 109, 143, 115, 115, 118, 124, 114, 110, 119, 112, 108, 118, 121, 117, 112, 129, 116, 119, 121, 114, 111, 117, 116, 131, 111, 113, 103, 115, 112, 116, 105, 117, 127, 134, 114, 118, 116, 110, 117, 128, 113, 119, 114, 124, 120, 136, 124, 118, 121, 117, 110, 106, 114, 103, 118, 124, 123, 107, 113, 123, 132, 110, 112, 122, 136, 119, 125, 113, 140, 117, 110, 124, 110, 117, 105, 116, 125, 120, 113, 120, 102, 113, 102, 108, 111, 120, 127, 121, 107, 123, 117, 97, 103, 134, 129, 106, 127, 116, 108, 113, 117, 119, 103, 118, 111, 123, 112, 113, 128, 121, 115, 119, 118, 111, 95, 121, 113, 116, 117, 96, 118, 94, 110, 118, 111, 113, 116, 124, 113, 120, 104, 120, 113, 122, 114, 136, 113, 118, 96, 107, 111, 141, 103, 102, 118, 139, 144, 110, 102, 133, 109, 121, 122, 112, 105, 107, 113, 117, 126, 118, 113, 125, 126, 120, 108, 110, 123, 115, 139, 107, 116, 124, 117, 116, 113, 107, 112, 118, 115, 111, 137, 117, 111, 111, 116, 104, 107, 112, 132, 116, 114, 87, 114, 124, 128, 114, 104, 123, 116, 113, 122, 110, 124, 146, 118, 113, 105, 120, 110, 124, 108, 108, 127, 113, 124, 123, 131, 115, 115, 119, 104, 124, 123, 117, 108, 113, 119, 109, 114, 114, 115, 132, 118, 133, 111, 100, 119, 113, 111, 123, 132, 119, 114, 109, 116, 108, 98, 111, 108, 109, 115, 110, 113, 117, 111, 108, 115, 110, 127, 92, 114, 119, 95, 116, 117, 104, 113, 138, 111, 110, 111, 98, 112, 117, 115, 116, 114, 112, 113, 122, 119, 136, 119, 126, 109, 107, 125, 105, 128, 107, 109, 101, 126, 112, 124, 119, 120, 109, 137, 119, 105, 120, 109, 132, 110, 126, 112, 111, 132, 116, 110, 115, 110, 117, 108, 105, 110, 119, 123, 113, 116, 96, 109, 92, 101, 123, 117, 113, 116, 116, 113, 116, 135, 120, 105, 128, 109, 124, 107, 152, 114, 121, 118, 115, 109, 109, 113, 124, 115, 134, 106, 119, 112, 116, 114, 137, 112, 117, 107, 113, 109, 119, 130, 111, 141, 111, 117, 116, 115, 109, 115, 102, 106, 108, 107, 131, 119, 123, 113, 105, 118, 125, 102, 110, 125, 121, 105, 113, 108, 116, 105, 102, 127, 121, 114, 122, 115, 104, 134, 153, 101, 115, 99, 112, 109, 115, 118, 113, 102, 123, 109, 106, 98, 97, 104, 124, 108, 119, 125, 144, 138, 117, 108, 130, 108, 120, 127, 113, 114, 120, 112, 113, 115, 108, 110, 94, 107, 103, 117, 110, 122, 101, 116, 99, 107, 119, 112, 119, 108, 107, 107, 138, 132, 113, 117, 118, 117, 159, 111, 111, 121, 113, 129, 116, 116, 128, 127, 116, 129, 120, 119, 121, 102, 126, 114, 93, 97, 118, 97, 118, 125, 100, 113, 108, 106, 108, 117, 116, 108, 102, 121, 101, 106, 110, 126, 112, 126, 127, 117, 110, 137, 125, 139, 110, 108, 107, 125, 110, 112, 83, 114, 109, 113, 102, 110, 112, 113, 116, 136, 118, 97, 105, 147, 106, 116, 104, 108, 114, 88, 120, 136, 112, 110, 127, 105, 117, 107, 121, 107, 112, 117, 114, 108, 125, 127, 108, 122, 133, 118, 115, 113, 115, 118, 115, 112, 102, 112, 101, 120, 113, 114, 125, 120, 126, 119, 124, 129, 107, 113, 121, 101, 109, 109, 130, 104, 114, 111, 111, 106, 100, 149, 111, 134, 85, 120, 113, 114, 110, 119, 115, 121, 114, 117, 109, 133, 118, 113, 116, 115, 100, 116, 134, 113, 102, 114, 109, 108, 96, 123, 118, 112, 105, 108, 103, 124, 116, 129, 108, 109, 107, 117, 112, 100, 129, 115, 110, 102, 122, 114, 123, 94, 119, 107, 113, 138, 110, 120, 130, 111, 83, 92, 125, 95, 112, 124, 107, 97, 118, 115, 118, 128, 80, 109, 127, 104, 115, 117, 111, 105, 109, 141, 118, 112, 107, 112, 111, 115, 101, 109, 115, 115, 105, 112, 114, 125, 116, 107, 127, 104, 119, 95, 134, 147, 109, 109, 112, 134, 135, 94, 104, 127, 124, 113, 116, 133, 123, 110, 100, 125, 136, 112, 115, 121, 108, 111, 108, 124, 116, 120, 117, 118, 117, 109, 120, 123, 107, 111, 110, 114, 130, 99, 118, 110, 107, 131, 128, 125, 122, 114, 117, 117, 109, 135, 118, 118, 109, 115, 111, 116, 110, 113, 119, 130, 105, 106, 115, 129, 102, 117, 122, 131, 130, 109, 114, 110, 131, 117, 129, 122, 111, 115, 93, 128, 107, 91, 91, 109, 82, 120, 108, 106, 132, 136, 116, 119, 123, 126, 120, 136, 136, 119, 117, 147, 135, 107, 128, 120, 117, 107, 111, 122, 138, 142, 117, 111, 117, 117, 104, 96, 85, 129, 132, 99, 129, 121, 116, 122, 120, 114, 109, 112, 121, 110, 124, 120, 112, 92, 114, 99, 123, 112, 132, 108, 94, 89, 105, 118, 114, 117, 117, 106, 117, 157, 121, 90, 112, 114, 127, 120, 114, 115, 109, 115, 131, 105, 133, 110, 101, 118, 107, 119, 133, 100, 126, 118, 116, 135, 124, 122, 122, 151, 118, 120, 127, 120, 128, 114, 108, 105, 138, 114, 111, 116, 115, 112, 108, 115, 108, 102, 121, 104, 133, 112, 114, 108, 106, 134, 115, 97, 113, 116, 113, 111, 111, 159, 82, 113, 118, 103, 137, 117, 128, 112, 124, 127, 110, 123, 108, 99, 104, 114, 106, 101, 113, 90, 104, 123, 133, 113, 104, 116, 121, 110, 111, 103, 117, 124, 111, 112, 115, 102, 122, 110, 131, 119, 112, 102, 111, 112, 116, 132, 128, 89, 117, 104, 119, 125, 115, 111, 118, 122, 121, 112, 121, 116, 116, 123, 123, 106, 115, 111, 104, 95, 110, 125, 113, 125, 111, 123, 137, 111, 120, 102, 112, 109, 112, 124, 115, 117, 112, 121, 113, 117, 115, 108, 117, 118, 108, 129, 108, 114, 115, 114, 110, 110, 112, 111, 102, 107, 110, 114, 119, 111, 123, 113, 116, 112, 116, 110, 110, 116, 117, 109, 134, 112, 126, 106, 101, 110, 105, 104, 126, 120, 114, 115, 130, 117, 125, 124, 123, 118, 124, 105, 123, 112, 124, 115, 115, 116, 113, 115, 117, 125, 122, 107, 107, 112, 124, 118, 124, 116, 106, 118, 123, 117, 116, 113, 104, 116, 123, 105, 115, 121, 115, 138, 104, 139, 131, 111, 111, 107, 118, 126, 119, 111, 120, 118, 114, 108, 119, 108, 112, 118, 126, 118, 113, 114, 121, 106, 116, 110, 107, 114, 133, 105, 129, 110, 111, 118, 112, 117, 114, 118, 110, 108, 126, 122, 127, 108, 124, 120, 114, 120, 125, 115, 122, 126, 119, 122, 123, 115, 113, 110, 110, 113, 114, 92, 115, 124, 118, 115, 117, 121, 114, 113, 121, 120, 111, 119, 106, 113, 121, 109, 119, 117, 108, 121, 114, 110, 114, 115, 121, 135, 122, 112, 119, 109, 124, 122, 119, 116, 109, 124, 113, 114, 120, 113, 112, 113, 121, 120, 111, 106, 126, 106, 129, 131, 115, 113, 110, 115, 121, 120, 114, 116, 121, 126, 110, 117, 117, 116, 111, 117, 110, 125, 113, 117, 108, 120, 121, 118, 120, 116, 112, 112, 116, 127, 125, 131, 106, 118, 118, 119, 122, 119, 102, 127, 108, 114, 121, 115, 112, 107, 118, 123, 117, 117, 129, 129, 118, 106, 120, 111, 103, 116, 111, 114, 112, 114, 125, 121, 117, 109, 120, 115, 115, 118, 108, 116, 116, 117, 108, 127, 132, 120, 122, 116, 112, 122, 122, 109, 115, 109, 123, 117, 120, 115, 106, 115, 121, 113, 106, 110, 121, 123, 121, 115, 114, 117, 122, 111, 122, 139, 92, 111, 134, 127, 111, 119, 114, 124, 117, 111, 127, 107, 113, 116, 132, 111, 115, 113, 126, 113, 105, 111, 128, 113, 114, 122, 126, 128, 116, 104, 116, 119, 109, 110, 126, 105, 115, 127, 107, 127, 112, 116, 113, 122, 113, 116, 117, 131, 123, 112, 116, 115, 131, 111, 119, 114, 114, 123, 114, 121, 119, 105, 117, 115, 121, 112, 117, 107, 117, 107, 121, 114, 121, 119, 110, 120, 123, 116, 120, 108, 125, 106, 124, 124, 97, 119, 121, 113, 108, 110, 118, 118, 119, 115, 123, 124, 118, 107, 112, 93, 117, 117, 121, 95, 118, 112, 119, 110, 116, 119, 99, 108, 122, 121, 121, 112, 116, 116, 116, 111, 107, 127, 123, 114, 122, 116, 142, 110, 112, 115, 111, 127, 111, 107, 126, 120, 116, 119, 112, 104, 127, 131, 112, 105, 105, 119, 124, 117, 116, 109, 126, 109, 118, 107, 119, 113, 122, 110, 121, 111, 126, 110, 98, 113, 152, 115, 111, 119, 128, 114, 113, 113, 121, 109, 110, 122, 114, 107, 113, 115, 105, 115, 107, 118, 110, 119, 119, 120, 108, 123, 112, 112, 109, 102, 114, 107, 130, 115, 111, 113, 105, 107, 117, 112, 103, 120, 118, 116, 114, 117, 112, 106, 120, 105, 119, 117, 117, 113, 119, 115, 122, 113, 110, 110, 120, 108, 108, 119, 110, 111, 107, 125, 117, 108, 109, 123, 117, 119, 109, 114, 123, 121, 111, 111, 117, 92, 113, 119, 120, 121, 120, 72, 119, 112, 125, 120, 112, 116, 119, 120, 108, 113, 126, 115, 131, 114, 123, 116, 105, 113, 103, 112, 117, 122, 117, 117, 94, 111, 110, 122, 123, 117, 124, 108, 96, 112, 121, 119, 98, 109, 115, 121, 108, 106, 125, 113, 118, 118, 116, 113, 120, 121, 113, 118, 113, 109, 112, 108, 91, 141, 121, 117, 117, 118, 114, 115, 110, 117, 115, 112, 113, 112, 114, 110, 114, 115, 106, 113, 124, 121, 120, 122, 121, 117, 81, 110, 131, 110, 102, 121, 117, 117, 121, 120, 112, 122, 122, 128, 116, 119, 113, 127, 135, 133, 129, 117, 117, 113, 121, 124, 118, 127, 108, 114, 117, 117, 117, 114, 104, 121, 119, 109, 114, 105, 117, 119, 122, 108, 121, 130, 109, 111, 116, 122, 111, 112, 81, 112, 115, 108, 121, 108, 113, 112, 108, 118, 99, 120, 115, 113, 79, 124, 117, 117, 112, 116, 113, 117, 118, 121, 125, 112, 105, 115, 114, 131, 119, 123, 129, 119, 92, 118, 119, 113, 102, 101, 115, 108, 121, 96, 110, 123, 118, 120, 119, 108, 108, 110, 115, 111, 108, 125, 110, 112, 111, 112, 109, 115, 96, 131, 133, 109, 111, 132, 121, 114, 121, 123, 108, 111, 113, 113, 114, 123, 100, 124, 117, 120, 119, 116, 124, 112, 116, 121, 122, 117, 128, 121, 116, 103, 108, 109, 100, 121, 115, 114, 118, 106, 111, 124, 121, 121, 116, 111, 124, 116, 117, 102, 113, 107, 113, 91, 119, 113, 109, 112, 114, 136, 133, 130, 116, 113, 123, 121, 108, 116, 131, 134, 115, 122, 108, 110, 111, 100, 115, 106, 122, 116, 117, 103, 130, 119, 101, 121, 113, 126, 112, 121, 86, 126, 88, 113, 131, 115, 109, 116, 119, 123, 127, 119, 74, 125, 110, 119, 117, 117, 101, 132, 114, 105, 110, 115, 119, 123, 111, 117, 97, 116, 123, 126, 115, 118, 114, 117, 119, 111, 117, 117, 95, 133, 109, 112, 116, 112, 108, 115, 122, 116, 108, 160, 124, 117, 115, 112, 120, 115, 118, 120, 121, 116, 116, 112, 109, 115, 114, 118, 116, 125, 113, 117, 111, 116, 110, 114, 123, 108, 112, 117, 139, 127, 117, 116, 124, 122, 118, 118, 109, 120, 106, 118, 120, 110, 122, 138, 117, 122, 94, 118, 126, 116, 107, 125, 116, 117, 119, 124, 112, 111, 117, 116, 110, 117, 116, 108, 105, 119, 122, 84, 114, 102, 110, 126, 154, 119, 115, 111, 113, 110, 115, 115, 127, 81, 116, 121, 121, 112, 115, 111, 117, 113, 112, 113, 115, 108, 127, 114, 111, 117, 116, 117, 112, 111, 123, 109, 121, 115, 117, 121, 122, 111, 117, 124, 109, 119, 126, 117, 117, 117, 113, 121, 127, 122, 117, 126, 107, 118, 113, 114, 122, 111, 119, 121, 116, 108, 108, 113, 114, 116, 122, 114, 117, 117, 115, 116, 114, 115, 114, 109, 116, 118, 121, 116, 120, 109, 101, 111, 115, 122, 112, 116, 125, 125, 123, 120, 118, 118, 107, 109, 114, 121, 120, 129, 117, 119, 112, 114, 130, 109, 102, 121, 117, 124, 113, 114, 116, 114, 120, 113, 119, 113, 116, 115, 121, 114, 121, 116, 111, 133, 114, 120, 113, 129, 113, 117, 115, 122, 125, 111, 123, 118, 110, 115, 111, 119, 117, 113, 118, 114, 118, 116, 110, 112, 112, 117, 109, 107, 118, 118, 112, 113, 117, 126, 119, 118, 115, 109, 115, 125, 117, 117, 120, 118, 117, 117, 120, 108, 118, 116, 104, 125, 111, 118, 118, 114, 119, 112, 112, 131, 115, 114, 121, 122, 119, 114, 112, 119, 116, 119, 113, 113, 125, 122, 112, 105, 121, 122, 118, 124, 105, 112, 109, 118, 119, 119, 117, 118, 117, 120, 123, 128, 112, 111, 116, 116, 111, 121, 116, 123, 104, 115, 108, 117, 118, 118, 118, 115, 115, 113, 110, 113, 113, 118, 120, 123, 127, 113, 120, 111, 115, 113, 118, 117, 119, 113, 120, 117, 117, 112, 113, 122, 111, 128, 106, 110, 123, 118, 119, 114, 119, 121, 112, 109, 114, 123, 122, 113, 122, 117, 114, 124, 115, 118, 114, 118, 121, 114, 109, 112, 120, 114, 117, 124, 113, 116, 121, 119, 116, 127, 115, 116, 120, 129, 122, 119, 111, 117, 112, 119, 113, 117, 115, 120, 119, 111, 114, 122, 111, 123, 118, 119, 104, 120, 115, 111, 115, 123, 112, 115, 115, 113, 125, 117, 114, 117, 117, 110, 120, 115, 116, 126, 110, 109, 130, 111, 115, 119, 110, 119, 108, 110, 115, 113, 118, 112, 116, 112, 113, 116, 112, 116, 115, 110, 116, 114, 112, 118, 116, 115, 115, 123, 128, 110, 115, 122, 115, 113, 113, 108, 121, 112, 115, 112, 114, 108, 121, 117, 121, 123, 110, 109, 118, 122, 117, 124, 111, 119, 115, 111, 119, 109, 106, 119, 120, 123, 111, 109, 117, 122, 119, 115, 119, 118, 122, 114, 126, 115, 113, 114, 114, 115, 113, 118, 121, 117, 113, 120, 114, 121, 118, 109, 110, 118, 114, 119, 121, 113, 115, 123, 120, 114, 117, 114, 112, 114, 116, 118, 113, 118, 122, 112, 118, 120, 116, 124, 107, 111, 108, 122, 106, 119, 122, 121, 123, 110, 131, 123, 117, 107, 116, 120, 111, 111, 119, 117, 116, 126, 116, 112, 120, 117, 112, 118, 120, 107, 122, 103, 112, 118, 113, 119, 115, 117, 114, 129, 123, 117, 113, 119, 117, 109, 117, 115, 111, 114, 116, 119, 119, 108, 113, 122, 114, 115, 114, 122, 109, 112, 116, 118, 118, 114, 112, 121, 113, 110, 125, 106, 117, 125, 114, 112, 117, 120, 119, 112, 113, 114, 119, 126, 124, 123, 108, 122, 117, 122, 111, 119, 112, 113, 95, 115, 112, 123, 112, 118, 123, 126, 104, 92, 107, 127, 127, 105, 121, 108, 119, 110, 114, 115, 134, 120, 120, 117, 128, 118, 121, 115, 120, 128, 75, 114, 117, 132, 123, 126, 83, 111, 120, 126, 122, 107, 119, 115, 104, 50, 116, 122, 117, 76, 130, 113, 121, 119, 105, 122, 122, 138, 132, 113, 119, 96, 118, 124, 112, 105, 115, 91, 148, 107, 123, 121, 109, 108, 114, 105, 149, 109, 111, 103, 111, 115, 169, 117, 119, 135, 75, 107, 111, 117, 115, 112, 118, 125, 114, 117, 117, 112, 116, 122, 111, 109, 121, 119, 148, 112, 105, 116, 115, 122, 121, 142, 114, 122, 121, 110, 122, 116, 118, 115, 119, 111, 119, 108, 76, 145, 121, 101, 110, 126, 122, 121, 123, 116, 117, 114, 108, 113, 107, 114, 115, 112, 125, 121, 117, 121, 103, 120, 113, 111, 128, 108, 118, 120, 120, 110, 122, 137, 118, 125, 113, 119, 114, 118, 96, 127, 104, 104, 158, 123, 117, 115, 114, 114, 116, 114, 102, 121, 122, 110, 117, 122, 112, 121, 97, 116, 113, 88, 123, 108, 118, 116, 126, 113, 123, 100, 112, 121, 110, 117, 116, 113, 121, 121, 119, 137, 130, 104, 108, 124, 124, 116, 102, 119, 115, 121, 92, 100, 115, 104, 126, 111, 131, 115, 102, 116, 125, 122, 80, 120, 102, 124, 114, 139, 93, 119, 123, 112, 128, 117, 96, 112, 116, 112, 127, 99, 116, 109, 120, 106, 117, 121, 115, 122, 106, 118, 115, 111, 112, 118, 113, 124, 113, 141, 121, 112, 132, 143, 122, 130, 109, 129, 122, 114, 119, 112, 167, 117, 123, 107, 109, 87, 122, 114, 120, 117, 106, 125, 88, 112, 111, 112, 138, 120, 105, 109, 130, 108, 111, 116, 121, 110, 114, 110, 111, 112, 112, 107, 109, 118, 84, 123, 113, 116, 118, 121, 92, 101, 123, 103, 89, 109, 116, 105, 91, 132, 112, 116, 114, 102, 115, 114, 121, 114, 113, 119, 116, 108, 123, 104, 112, 112, 104, 134, 105, 115, 98, 128, 149, 114, 118, 125, 119, 103, 92, 126, 115, 110, 120, 120, 106, 114, 118, 128, 118, 131, 75, 124, 103, 114, 125, 111, 110, 99, 118, 112, 123, 123, 116, 118, 119, 128, 62, 117, 121, 111, 123, 128, 100, 114, 109, 130, 111, 74, 92, 116, 57, 115, 124, 120, 112, 118, 126, 118, 106, 135, 148, 127, 122, 125, 118, 111, 126, 114, 112, 118, 115, 110, 123, 120, 113, 115, 112, 116, 114, 74, 108, 122, 114, 115, 116, 114, 115, 141, 135, 104, 114, 114, 118, 99, 122, 120, 116, 104, 99, 117, 132, 125, 135, 114, 130, 111, 140, 105, 118, 129, 107, 117, 107, 115, 113, 122, 124, 102, 120, 110, 106, 114, 123, 114, 114, 109, 130, 119, 122, 71, 122, 124, 143, 133, 109, 111, 114, 118, 110, 118, 114, 122, 109, 111, 125, 132, 124, 116, 104, 111, 118, 110, 123, 122, 118, 121, 113, 117, 108, 103, 115, 117, 104, 124, 121, 116, 124, 116, 117, 116, 109, 106, 113, 114, 136, 125, 113, 112, 97, 107, 124, 109, 121, 114, 124, 122, 101, 116, 119, 130, 113, 116, 126, 129, 123, 116, 116, 121, 121, 123, 112, 107, 144, 112, 122, 121, 121, 125, 116, 116, 129, 103, 114, 141, 114, 126, 123, 120, 121, 106, 116, 105, 122, 106, 102, 109, 100, 104, 117, 106, 115, 110, 119, 144, 86, 113, 111, 103, 143, 123, 108, 117, 100, 114, 114, 116, 134, 124, 100, 113, 122, 84, 96, 95, 123, 100, 113, 110, 104, 113, 139, 115, 96, 116, 133, 113, 107, 97, 118, 109, 140, 113, 117, 122, 116, 110, 118, 106, 109, 115, 110, 119, 114, 121, 123, 115, 109, 110, 120, 164, 130, 106, 119, 120, 111, 112, 103, 112, 119, 117, 111, 113, 113, 117, 140, 93, 117, 128, 107, 109, 118, 109, 123, 94, 119, 110, 110, 106, 117, 122, 114, 107, 123, 116, 116, 119, 108, 104, 125, 118, 122, 110, 115, 115, 82, 90, 107, 129, 110, 121, 122, 95, 111, 117, 113, 115, 121, 114, 113, 111, 76, 109, 108, 122, 109, 114, 110, 87, 124, 120, 116, 93, 109, 121, 104, 106, 115, 105, 103, 139, 114, 111, 120, 125, 116, 90, 125, 112, 128, 128, 110, 113, 125, 104, 116, 109, 108, 123, 120, 118, 113, 115, 116, 110, 133, 111, 116, 104, 92, 117, 97, 133, 102, 114, 110, 125, 121, 126, 117, 115, 118, 99, 113, 110, 118, 116, 112, 129, 115, 74, 120, 119, 115, 106, 115, 129, 102, 111, 119, 113, 130, 111, 130, 133, 105, 116, 115, 114, 119, 117, 116, 129, 102, 115, 117, 116, 132, 104, 126, 125, 111, 95, 122, 125, 114, 97, 111, 120, 87, 103, 112, 123, 124, 114, 116, 121, 109, 136, 116, 116, 111, 120, 109, 102, 125, 121, 97, 122, 117, 116, 129, 110, 109, 110, 114, 116, 90, 107, 122, 120, 109, 108, 117, 115, 113, 138, 107, 115, 129, 145, 109, 112, 117, 115, 108, 94, 104, 103, 122, 128, 128, 110, 109, 97, 78, 107, 113, 112, 126, 109, 121, 118, 130, 106, 142, 106, 114, 109, 112, 112, 114, 117, 101, 118, 130, 123, 109, 120, 119, 97, 112, 116, 110, 119, 121, 108, 125, 106, 132, 118, 112, 126, 123, 118, 119, 117, 123, 115, 116, 130, 108, 103, 110, 98, 109, 121, 114, 124, 102, 127, 118, 96, 102, 109, 119, 124, 106, 117, 104, 92, 111, 113, 116, 130, 118, 121, 113, 114, 114, 120, 111, 130, 120, 100, 112, 107, 119, 105, 105, 115, 115, 125, 121, 116, 109, 104, 120, 115, 106, 117, 127, 98, 109, 120, 95, 123, 101, 119, 114, 116, 125, 115, 101, 116, 108, 102, 120, 129, 115, 111, 123, 117, 103, 113, 111, 114, 111, 114, 106, 118, 119, 123, 111, 115, 111, 135, 115, 111, 104, 116, 126, 124, 102, 102, 108, 104, 121, 115, 112, 121, 111, 106, 115, 97, 112, 111, 125, 109, 121, 113, 134, 108, 123, 120, 108, 107, 110, 120, 118, 123, 136, 110, 120, 100, 101, 118, 126, 116, 106, 114, 105, 117, 124, 118, 192, 109, 125, 120, 116, 112, 111, 110, 112, 144, 124, 90, 116, 104, 111, 103, 101, 133, 117, 109, 113, 115, 114, 119, 129, 119, 116, 115, 115, 112, 130, 97, 125, 102, 113, 122, 114, 123, 110, 129, 121, 118, 114, 107, 113, 122, 121, 121, 114, 106, 121, 122, 108, 111, 105, 115, 106, 120, 117, 117, 108, 122, 113, 111, 110, 134, 115, 101, 123, 107, 115, 119, 122, 106, 122, 121, 115, 107, 126, 113, 123, 104, 124, 113, 103, 124, 121, 130, 121, 111, 110, 122, 98, 119, 113, 119, 119, 136, 127, 111, 106, 96, 138, 105, 107, 115, 105, 110, 113, 109, 114, 108, 115, 127, 122, 106, 91, 113, 101, 108, 126, 113, 115, 111, 102, 119, 115, 113, 117, 113, 113, 124, 130, 131, 114, 123, 114, 112, 109, 123, 106, 126, 122, 119, 115, 137, 97, 121, 112, 117, 117, 101, 116, 103, 110, 122, 127, 104, 109, 122, 122, 118, 113, 101, 168, 124, 109, 125, 109, 131, 106, 105, 118, 136, 114, 113, 106, 128, 119, 113, 122, 120, 122, 114, 125, 119, 123, 115, 113, 116, 120, 138, 115, 108, 119, 119, 122, 114, 124, 115, 118, 126, 120, 112, 113, 106, 112, 119, 99, 113, 118, 107, 111, 121, 119, 117, 115, 120, 119, 119, 104, 114, 120, 126, 111, 117, 113, 117, 114, 102, 111, 84, 114, 96, 114, 122, 38, 117, 128, 107, 123, 124, 112, 104, 108, 130, 114, 120, 100, 133, 123, 97, 111, 91, 103, 124, 138, 131, 108, 121, 123, 106, 126, 125, 109, 120, 131, 112, 98, 111, 100, 127, 116, 125, 126, 117, 133, 102, 135, 110, 108, 124, 122, 110, 130, 114, 108, 126, 128, 115, 115, 104, 109, 106, 111, 115, 115, 110, 86, 125, 110, 112, 121, 115, 120, 104, 121, 110, 128, 118, 104, 116, 113, 109, 126, 105, 132, 115, 132, 116, 119, 156, 82, 112, 113, 111, 100, 108, 131, 120, 118, 120, 117, 135, 131, 73, 123, 120, 117, 112, 123, 118, 108, 121, 121, 134, 116, 93, 118, 115, 114, 111, 120, 117, 114, 131, 92, 119, 128, 114, 114, 98, 120, 113, 116, 112, 123, 134, 129, 119, 128, 125, 105, 107, 102, 104, 118, 114, 118, 118, 116, 89, 105, 135, 114, 117, 117, 108, 104, 110, 108, 121, 121, 111, 116, 127, 106, 122, 120, 145, 112, 139, 102, 134, 106, 106, 127, 115, 117, 111, 133, 115, 116, 126, 118, 111, 111, 130, 118, 114, 132, 129, 130, 112, 113, 114, 127, 129, 112, 114, 121, 111, 114, 139, 111, 127, 123, 122, 108, 106, 111, 110, 104, 117, 132, 116, 117, 101, 114, 133, 116, 114, 105, 123, 109, 114, 108, 114, 134, 113, 109, 114, 119, 121, 115, 110, 110, 126, 115, 107, 104, 118, 118, 121, 105, 118, 106, 110, 122, 114, 128, 118, 96, 107, 100, 113, 102, 114, 120, 120, 114, 104, 118, 114, 124, 108, 124, 124, 116, 122, 129, 116, 122, 110, 111, 114, 116, 131, 116, 113, 123, 128, 117, 118, 115, 108, 116, 116, 117, 116, 108, 119, 122, 108, 113, 111, 112, 118, 109, 111, 114, 112, 117, 116, 124, 128, 119, 118, 117, 116, 113, 119, 125, 118, 119, 116, 110, 116, 112, 143, 118, 117, 111, 114, 128, 114, 121, 116, 109, 108, 107, 117, 116, 109, 112, 116, 113, 111, 118, 116, 127, 117, 112, 107, 117, 121, 115, 108, 117, 120, 115, 115, 114, 119, 116, 115, 122, 118, 114, 115, 120, 120, 117, 112, 114, 103, 118, 117, 120, 113, 107, 116, 114, 116, 122, 118, 115, 127, 104, 116, 114, 117, 124, 111, 123, 117, 113, 116, 122, 111, 117, 119, 129, 118, 112, 103, 117, 126, 118, 106, 117, 114, 107, 109, 122, 116, 115, 109, 119, 115, 123, 120, 111, 117, 117, 113, 123, 113, 119, 124, 116, 119, 114, 117, 121, 111, 112, 127, 115, 120, 126, 117, 117, 106, 117, 116, 113, 111, 112, 118, 115, 122, 123, 106, 122, 111, 117, 108, 113, 115, 112, 112, 103, 110, 108, 109, 109, 116, 115, 122, 119, 118, 122, 122, 109, 126, 111, 116, 119, 112, 119, 115, 116, 121, 122, 110, 98, 110, 120, 112, 115, 119, 124, 116, 119, 116, 117, 104, 106, 117, 121, 114, 111, 122, 118, 120, 111, 120, 122, 113, 108, 112, 115, 112, 112, 110, 117, 124, 124, 118, 114, 120, 120, 115, 131, 116, 122, 115, 120, 116, 121, 119, 122, 116, 118, 121, 107, 117, 99, 111, 116, 117, 111, 115, 112, 127, 116, 113, 130, 112, 125, 120, 117, 119, 116, 112, 117, 114, 111, 118, 104, 112, 112, 114, 115, 116, 111, 113, 120, 114, 119, 117, 119, 116, 110, 122, 112, 121, 117, 114, 104, 119, 122, 120, 123, 112, 113, 95, 114, 105, 117, 118, 119, 117, 108, 114, 118, 108, 114, 118, 116, 115, 112, 104, 120, 115, 121, 124, 114, 118, 126, 109, 124, 113, 113, 113, 111, 116, 115, 106, 124, 120, 125, 118, 111, 116, 124, 108, 112, 111, 119, 123, 118, 107, 111, 111, 110, 109, 109, 113, 110, 115, 119, 106, 106, 115, 108, 116, 119, 114, 115, 127, 114, 107, 116, 114, 117, 112, 115, 114, 116, 127, 120, 112, 122, 113, 122, 116, 118, 115, 122, 119, 117, 127, 116, 117, 120, 114, 120, 121, 121, 112, 121, 115, 106, 120, 128, 113, 115, 124, 117, 122, 111, 111, 115, 117, 115, 114, 126, 108, 120, 112, 117, 107, 121, 113, 114, 117, 116, 125, 123, 117, 119, 120, 117, 118, 123, 112, 112, 113, 106, 112, 117, 111, 117, 123, 113, 117, 120, 104, 123, 114, 113, 115, 114, 114, 121, 121, 109, 122, 111, 126, 115, 119, 120, 121, 117, 113, 114, 107, 114, 124, 112, 119, 113, 114, 118, 116, 116, 117, 110, 107, 113, 124, 116, 114, 124, 120, 111, 115, 112, 113, 122, 116, 111, 114, 121, 118, 112, 109, 114, 120, 112, 104, 118, 109, 117, 113, 108, 125, 112, 106, 105, 125, 114, 124, 123, 109, 114, 117, 120, 116, 112, 116, 110, 114, 107, 116, 109, 118, 123, 122, 110, 104, 130, 110, 115, 110, 114, 123, 111, 105, 121, 115, 110, 119, 116, 112, 115, 127, 120, 113, 120, 121, 115, 124, 117, 111, 113, 97, 121, 114, 99, 109, 117, 119, 111, 115, 116, 113, 148, 114, 116, 112, 118, 126, 117, 116, 99, 131, 126, 122, 124, 109, 116, 119, 126, 116, 115, 108, 114, 113, 117, 117, 118, 111, 126, 117, 105, 117, 117, 119, 115, 121, 117, 123, 116, 122, 121, 114, 107, 107, 113, 105, 93, 118, 122, 111, 130, 125, 118, 116, 115, 117, 123, 118, 122, 107, 123, 123, 110, 115, 116, 118, 112, 120, 120, 115, 111, 115, 117, 127, 124, 112, 115, 119, 113, 106, 113, 118, 120, 116, 114, 115, 110, 119, 122, 120, 116, 112, 110, 105, 131, 125, 136, 113, 116, 112, 101, 117, 121, 108, 120, 120, 117, 118, 107, 126, 120, 123, 104, 124, 117, 114, 110, 118, 117, 106, 114, 109, 124, 112, 121, 118, 106, 117, 122, 129, 122, 111, 113, 118, 121, 116, 113, 118, 113, 120, 117, 115, 123, 114, 114, 128, 106, 126, 114, 112, 108, 120, 120, 109, 110, 111, 122, 113, 116, 113, 121, 118, 118, 120, 128, 117, 118, 106, 123, 132, 112, 117, 122, 117, 118, 117, 116, 114, 111, 117, 118, 120, 107, 120, 112, 117, 116, 110, 107, 113, 121, 119, 127, 116, 119, 117, 113, 122, 126, 117, 117, 118, 116, 133, 119, 111, 118, 115, 119, 123, 117, 133, 116, 109, 105, 117, 122, 114, 115, 114, 121, 132, 106, 113, 98, 122, 121, 118, 105, 109, 117, 114, 113, 124, 123, 125, 99, 118, 113, 145, 115, 124, 122, 110, 122, 120, 123, 112, 118, 115, 124, 124, 107, 114, 106, 130, 100, 123, 110, 110, 114, 118, 111, 120, 116, 116, 108, 117, 127, 112, 109, 118, 121, 117, 117, 112, 120, 92, 119, 111, 117, 113, 120, 109, 121, 105, 118, 114, 114, 102, 119, 113, 115, 116, 116, 122, 119, 118, 111, 118, 112, 105, 131, 121, 107, 123, 117, 121, 120, 112, 116, 114, 113, 122, 129, 126, 125, 109, 103, 106, 99, 130, 119, 123, 117, 117, 116, 118, 114, 106, 113, 114, 125, 102, 113, 121, 111, 119, 109, 118, 109, 99, 110, 110, 116, 129, 118, 121, 123, 121, 118, 100, 110, 117, 113, 104, 119, 120, 114, 110, 125, 111, 129, 118, 119, 116, 122, 113, 134, 111, 110, 110, 113, 120, 122, 114, 104, 122, 118, 122, 115, 118, 107, 122, 113, 125, 113, 119, 125, 112, 112, 114, 119, 110, 113, 115, 121, 115, 118, 112, 107, 113, 115, 121, 114, 124, 114, 126, 124, 106, 119, 108, 118, 122, 107, 124, 124, 114, 118, 118, 117, 122, 111, 121, 120, 112, 118, 114, 127, 123, 108, 121, 104, 114, 128, 128, 108, 109, 126, 112, 118, 121, 109, 117, 81, 109, 98, 114, 110, 113, 114, 112, 101, 115, 114, 107, 120, 119, 106, 122, 112, 107, 117, 112, 97, 116, 117, 124, 120, 112, 126, 113, 111, 122, 103, 109, 123, 125, 118, 111, 129, 99, 113, 122, 117, 108, 109, 111, 114, 119, 113, 120, 124, 120, 115, 120, 140, 117, 120, 132, 103, 123, 107, 113, 128, 118, 109, 110, 102, 103, 97, 120, 123, 131, 117, 128, 114, 121, 112, 128, 112, 117, 112, 115, 129, 123, 111, 133, 121, 110, 112, 108, 101, 116, 104, 113, 112, 129, 109, 110, 114, 121, 119, 119, 110, 115, 138, 101, 115, 120, 114, 110, 97, 126, 109, 120, 126, 123, 111, 120, 118, 119, 106, 120, 107, 112, 95, 121, 125, 112, 120, 120, 127, 120, 110, 106, 103, 128, 115, 130, 126, 112, 110, 127, 110, 117, 117, 128, 106, 116, 117, 108, 109, 120, 127, 119, 128, 118, 131, 109, 109, 118, 119, 118, 128, 100, 115, 109, 89, 104, 115, 120, 119, 111, 129, 116, 116, 118, 130, 110, 121, 95, 114, 112, 123, 118, 127, 115, 111, 115, 110, 115, 115, 119, 114, 119, 121, 114, 124, 122, 126, 119, 115, 103, 107, 127, 113, 102, 96, 106, 108, 119, 119, 125, 103, 126, 122, 124, 118, 126, 116, 112, 114, 113, 132, 119, 119, 118, 182, 128, 118, 110, 109, 118, 121, 133, 107, 121, 108, 106, 124, 114, 119, 119, 114, 119, 112, 123, 112, 112, 137, 121, 115, 167, 106, 102, 105, 111, 118, 134, 115, 114, 108, 111, 122, 106, 113, 116, 112, 105, 126, 107, 107, 119, 106, 116, 112, 120, 126, 135, 112, 134, 123, 110, 119, 124, 113, 128, 120, 123, 113, 119, 135, 115, 103, 114, 106, 113, 110, 111, 144, 101, 124, 105, 101, 113, 119, 125, 94, 112, 116, 114, 107, 109, 116, 118, 115, 112, 125, 135, 114, 111, 101, 109, 113, 116, 111, 106, 113, 122, 115, 117, 114, 108, 116, 126, 127, 110, 116, 106, 119, 124, 134, 113, 108, 119, 122, 122, 111, 105, 111, 97, 124, 117, 120, 130, 172, 121, 118, 107, 91, 110, 117, 118, 116, 143, 110, 113, 132, 119, 127, 98, 117, 126, 108, 119, 108, 108, 101, 113, 117, 110, 118, 115, 117, 114, 109, 116, 112, 111, 116, 108, 124, 110, 134, 101, 118, 119, 97, 118, 121, 111, 116, 117, 125, 134, 118, 94, 128, 107, 117, 112, 104, 128, 106, 115, 117, 120, 112, 108, 121, 113, 117, 119, 113, 121, 115, 116, 120, 129, 115, 113, 109, 120, 120, 113, 122, 99, 122, 114, 111, 123, 112, 85, 119, 112, 108, 114, 114, 111, 120, 113, 128, 125, 110, 114, 117, 116, 109, 111, 124, 107, 102, 124, 110, 104, 126, 126, 112, 114, 109, 133, 126, 120, 124, 119, 121, 117, 116, 116, 108, 103, 128, 114, 119, 110, 117, 103, 111, 119, 117, 111, 118, 114, 111, 115, 117, 113, 81, 72, 112, 119, 118, 115, 107, 113, 116, 119, 115, 114, 116, 123, 104, 122, 118, 112, 127, 121, 109, 113, 124, 117, 119, 125, 116, 113, 127, 102, 123, 116, 101, 132, 111, 115, 118, 121, 118, 116, 120, 102, 120, 100, 127, 118, 115, 125, 109, 125, 117, 142, 107, 115, 113, 116, 112, 116, 122, 113, 124, 108, 112, 134, 129, 121, 119, 129, 135, 110, 110, 110, 110, 107, 124, 114, 121, 125, 92, 186, 90, 122, 115, 111, 106, 114, 100, 116, 116, 119, 104, 123, 129, 123, 100, 113, 116, 98, 118, 126, 125, 120, 105, 110, 117, 106, 105, 117, 114, 117, 115, 110, 121, 116, 109, 122, 124, 121, 116, 115, 115, 113, 119, 114, 113, 109, 113, 127, 115, 134, 112, 107, 115, 114, 121, 120, 105, 151, 123, 116, 114, 106, 119, 119, 117, 105, 132, 112, 109, 104, 115, 119, 124, 112, 98, 99, 125, 120, 118, 125, 142, 119, 118, 106, 104, 113, 119, 113, 130, 116, 97, 120, 124, 112, 128, 118, 112, 130, 132, 129, 120, 109, 115, 118, 86, 119, 109, 127, 119, 118, 102, 135, 120, 142, 125, 119, 111, 120, 107, 121, 124, 111, 115, 121, 109, 75, 113, 114, 127, 115, 99, 120, 92, 110, 120, 110, 100, 113, 120, 104, 120, 131, 117, 127, 118, 120, 115, 111, 126, 118, 124, 123, 96, 124, 109, 98, 115, 117, 119, 114, 114, 124, 120, 126, 98, 100, 111, 91, 109, 119, 117, 99, 128, 126, 114, 125, 117, 113, 124, 120, 109, 127, 107, 113, 109, 117, 109, 118, 118, 117, 118, 113, 108, 112, 137, 126, 101, 114, 126, 115, 108, 118, 121, 108, 113, 107, 99, 104, 110, 107, 105, 108, 118, 120, 111, 116, 113, 117, 137, 110, 127, 117, 120, 118, 99, 118, 115, 104, 120, 133, 111, 117, 109, 109, 122, 107, 115, 118, 118, 127, 108, 129, 113, 105, 99, 120, 106, 123, 127, 114, 104, 117, 117, 121, 122, 133, 116, 105, 107, 114, 118, 124, 109, 113, 109, 127, 118, 133, 111, 123, 112, 119, 122, 104, 116, 118, 114, 144, 119, 116, 137, 107, 149, 111, 103, 114, 133, 116, 125, 97, 126, 108, 117, 118, 117, 115, 107, 106, 120, 114, 118, 120, 108, 101, 116, 122, 118, 129, 109, 119, 103, 128, 118, 121, 119, 116, 104, 110, 130, 103, 107, 114, 114, 123, 111, 96, 133, 98, 121, 141, 120, 123, 117, 111, 105, 115, 103, 109, 118, 124, 116, 104, 114, 128, 131, 110, 120, 135, 125, 114, 122, 126, 113, 132, 112, 138, 139, 127, 119, 124, 110, 114, 166, 126, 127, 110, 106, 107, 132, 100, 109, 100, 106, 119, 93, 117, 80, 126, 118, 128, 116, 117, 113, 131, 113, 119, 124, 125, 108, 115, 108, 122, 117, 93, 106, 115, 126, 125, 110, 119, 127, 103, 102, 106, 132, 114, 119, 113, 105, 123, 112, 119, 116, 96, 138, 118, 100, 117, 116, 103, 113, 118, 108, 107, 116, 120, 108, 113, 121, 129, 101, 118, 114, 117, 102, 111, 122, 131, 113, 111, 99, 105, 125, 102, 100, 122, 118, 110, 106, 122, 109, 108, 127, 111, 104, 122, 112, 116, 114, 114, 119, 121, 116, 114, 124, 116, 111, 132, 113, 100, 111, 105, 108, 111, 112, 109, 144, 109, 112, 117, 110, 129, 111, 116, 106, 113, 110, 117, 121, 122, 139, 111, 113, 117, 112, 126, 107, 113, 115, 107, 112, 116, 119, 126, 117, 125, 120, 112, 114, 124, 118, 121, 113, 109, 118, 111, 129, 119, 114, 118, 137, 122, 110, 122, 114, 126, 110, 108, 109, 117, 115, 108, 115, 114, 106, 111, 117, 111, 121, 127, 123, 115, 106, 111, 124, 129, 120, 101, 111, 125, 113, 119, 115, 103, 101, 132, 99, 120, 114, 113, 116, 114, 128, 122, 101, 112, 121, 113, 125, 126, 141, 99, 104, 117, 120, 113, 111, 112, 110, 106, 113, 127, 123, 115, 110, 107, 117, 125, 122, 130, 123, 111, 117, 122, 124, 124, 109, 137, 114, 104, 117, 115, 121, 128, 123, 111, 116, 100, 95, 118, 117, 118, 116, 111, 110, 123, 113, 126, 140, 112, 121, 119, 118, 118, 112, 114, 120, 113, 113, 102, 119, 106, 123, 116, 116, 118, 111, 122, 109, 115, 119, 117, 125, 112, 122, 104, 105, 112, 119, 133, 123, 116, 116, 106, 121, 117, 112, 110, 128, 116, 110, 117, 118, 109, 131, 106, 120, 119, 111, 109, 123, 115, 135, 117, 113, 127, 113, 108, 116, 120, 127, 111, 121, 111, 121, 114, 109, 117, 118, 101, 111, 136, 119, 118, 117, 101, 106, 110, 110, 101, 119, 119, 100, 117, 114, 121, 123, 98, 118, 120, 125, 137, 114, 108, 120, 111, 113, 123, 141, 122, 126, 113, 122, 112, 105, 122, 120, 116, 123, 109, 127, 111, 108, 120, 121, 122, 113, 132, 117, 116, 123, 123, 107, 116, 113, 123, 114, 115, 123, 112, 118, 116, 111, 99, 119, 118, 113, 116, 116, 109, 108, 113, 102, 101, 111, 116, 115, 137, 102, 121, 128, 126, 114, 128, 114, 110, 124, 107, 97, 113, 123, 123, 120, 103, 150, 112, 124, 111, 126, 121, 122, 120, 114, 120, 116, 121, 113, 102, 104, 113, 113, 102, 124, 122, 105, 113, 128, 101, 102, 115, 129, 108, 135, 109, 111, 106, 104, 116, 123, 125, 112, 112, 118, 117, 118, 119, 130, 112, 112, 98, 124, 122, 118, 111, 110, 114, 114, 106, 120, 106, 113, 118, 121, 112, 118, 108, 112, 115, 122, 114, 117, 127, 118, 108, 115, 123, 116, 110, 111, 121, 118, 110, 117, 129, 113, 126, 111, 113, 106, 121, 120, 107, 130, 124, 117, 112, 131, 95, 123, 126, 105, 118, 113, 101, 110, 118, 108, 131, 115, 116, 108, 116, 110, 112, 126, 113, 110, 100, 117, 112, 118, 110, 120, 121, 117, 122, 102, 121, 114, 125, 121, 120, 115, 128, 109, 126, 118, 120, 127, 115, 133, 113, 112, 123, 123, 119, 119, 129, 115, 125, 120, 137, 124, 116, 115, 106, 115, 115, 118, 126, 119, 126, 123, 112, 126, 94, 106, 124, 118, 116, 109, 103, 127, 103, 120, 120, 118, 119, 126, 108, 117, 119, 121, 123, 121, 124, 128, 111, 118, 129, 112, 122, 109, 99, 131, 128, 118, 106, 136, 118, 116, 123, 115, 105, 115, 113, 105, 115, 120, 115, 123, 112, 98, 127, 93, 115, 107, 124, 122, 120, 115, 108, 124, 121, 126, 109, 126, 124, 122, 124, 111, 130, 122, 102, 112, 106, 119, 112, 114, 113, 125, 110, 125, 114, 117, 106, 123, 126, 118, 103, 118, 114, 108, 104, 116, 118, 105, 131, 118, 102, 115, 104, 126, 118, 114, 110, 115, 113, 114, 120, 116, 122, 123, 118, 119, 113, 125, 133, 109, 110, 100, 122, 122, 128, 121, 125, 115, 136, 109, 115, 112, 123, 125, 126, 116, 131, 112, 109, 117, 109, 108, 111, 98, 102, 115, 121, 102, 120, 113, 124, 142, 118, 116, 105, 127, 138, 139, 118, 124, 127, 108, 113, 114, 107, 103, 106, 120, 130, 98, 110, 133, 125, 118, 102, 119, 125, 102, 118, 104, 123, 129, 111, 108, 142, 117, 112, 112, 124, 122, 123, 155, 104, 113, 107, 132, 129, 121, 111, 124, 120, 131, 127, 118, 123, 132, 115, 113, 122, 136, 108, 113, 120, 112, 113, 113, 121, 122, 117, 116, 95, 125, 112, 108, 117, 110, 108, 119, 122, 114, 91, 108, 132, 118, 117, 112, 118, 119, 134, 107, 114, 99, 141, 114, 113, 103, 123, 120, 127, 98, 118, 112, 108, 114, 111, 116, 103, 113, 121, 127, 118, 115, 112, 105, 115, 117, 110, 125, 101, 114, 112, 119, 106, 122, 125, 102, 113, 117, 111, 116, 108, 123, 131, 120, 127, 107, 107, 124, 122, 112, 109, 102, 123, 125, 105, 116, 111, 121, 108, 140, 117, 135, 106, 120, 95, 122, 109, 113, 99, 121, 110, 113, 134, 107, 115, 108, 111, 118, 111, 114, 110, 120, 98, 110, 126, 108, 121, 114, 104, 130, 130, 127, 124, 125, 110, 128, 116, 115, 105, 112, 125, 125, 123, 111, 114, 117, 112, 109, 108, 125, 133, 113, 111, 112, 120, 91, 114, 112, 129, 127, 116, 122, 115, 112, 113, 104, 116, 123, 118, 111, 117, 115, 131, 121, 96, 107, 116, 123, 123, 98, 108, 141, 103, 110, 99, 114, 111, 115, 103, 115, 114, 104, 114, 106, 118, 109, 108, 118, 100, 117, 115, 107, 116, 97, 113, 120, 125, 127, 121, 116, 123, 96, 151, 119, 112, 113, 122, 123, 134, 113, 129, 119, 111, 123, 113, 124, 115, 122, 123, 117, 117, 117, 129, 124, 125, 113, 129, 129, 119, 104, 116, 134, 134, 132, 116, 119, 116, 127, 130, 110, 97, 112, 114, 138, 114, 124, 109, 129, 118, 130, 120, 111, 116, 116, 123, 114, 124, 128, 123, 131, 114, 110, 120, 105, 100, 114, 123, 111, 104, 104, 115, 111, 116, 90, 104, 99, 117, 113, 98, 96, 110, 129, 111, 105, 107, 122, 125, 115, 136, 123, 134, 95, 101, 118, 113, 121, 125, 125, 105, 110, 114, 106, 138, 123, 116, 122, 100, 119, 129, 124, 117, 104, 114, 100, 111, 124, 139, 116, 131, 109, 109, 129, 126, 110, 118, 99, 110, 125, 116, 127, 112, 111, 122, 130, 102, 109, 123, 129, 109, 115, 119, 119, 112, 114, 109, 127, 108, 115, 112, 117, 105, 130, 114, 110, 105, 129, 109, 121, 121, 110, 117, 117, 111, 96, 139, 108, 123, 124, 127, 118, 123, 121, 114, 116, 125, 111, 112, 106, 111, 116, 126, 120, 109, 106, 115, 119, 124, 116, 112, 123, 106, 115, 116, 138, 118, 116, 130, 124, 117, 107, 97, 124, 107, 121, 113, 124, 116, 118, 125, 96, 123, 110, 121, 113, 123, 115, 111, 109, 104, 98, 109, 111, 113, 116, 111, 116, 142, 107, 120, 112, 124, 113, 114, 121, 121, 114, 116, 107, 110, 108, 124, 108, 116, 116, 110, 113, 120, 109, 132, 114, 123, 125, 110, 113, 115, 113, 107, 96, 126, 114, 112, 123, 119, 121, 119, 110, 111, 114, 120, 116, 112, 125, 124, 106, 134, 99, 115, 112, 118, 129, 114, 112, 112, 115, 105, 119, 112, 108, 110, 118, 105, 115, 113, 115, 126, 121, 122, 111, 108, 109, 114, 114, 133, 110, 106, 109, 103, 123, 144, 111, 107, 113, 119, 123, 115, 137, 120, 109, 118, 102, 104, 112, 103, 117, 107, 106, 118, 119, 92, 106, 119, 119, 117, 114, 122, 119, 104, 116, 108, 119, 127, 108, 107, 118, 114, 112, 99, 116, 119, 121, 107, 111, 125, 115, 110, 113, 111, 99, 116, 114, 122, 104, 125, 117, 125, 116, 131, 119, 122, 113, 110, 108, 116, 99, 109, 114, 108, 114, 110, 95, 122, 119, 113, 114, 124, 118, 117, 126, 117, 123, 118, 115, 121, 113, 145, 108, 112, 119, 103, 111, 128, 117, 126, 111, 122, 123, 116, 108, 123, 119, 118, 112, 119, 116, 115, 120, 110, 120, 116, 164, 115, 119, 106, 113, 104, 121, 119, 126, 119, 131, 125, 123, 102, 102, 106, 113, 120, 118, 128, 118, 110, 116, 118, 116, 114, 123, 102, 119, 112, 111, 118, 125, 113, 99, 119, 98, 119, 124, 135, 121, 118, 98, 121, 123, 115, 109, 144, 124, 118, 119, 131, 110, 107, 116, 115, 120, 124, 107, 95, 117, 129, 120, 110, 122, 123, 122, 111, 118, 108, 96, 119, 112, 108, 115, 119, 120, 89, 123, 116, 108, 116, 120, 101, 115, 121, 109, 112, 115, 110, 99, 119, 117, 113, 126, 116, 122, 103, 113, 124, 118, 119, 120, 137, 112, 120, 117, 126, 106, 92, 107, 143, 112, 114, 118, 115, 108, 114, 113, 112, 114, 106, 121, 112, 108, 117, 113, 109, 110, 102, 118, 117, 115, 119, 120, 115, 121, 112, 110, 104, 129, 106, 113, 117, 117, 118, 116, 110, 110, 110, 113, 110, 128, 114, 116, 114, 123, 110, 120, 116, 112, 112, 113, 124, 108, 116, 109, 117, 136, 122, 117, 107, 125, 114, 112, 127, 106, 104, 119, 119, 126, 109, 112, 108, 115, 107, 115, 121, 126, 114, 103, 112, 119, 114, 114, 127, 112, 113, 121, 123, 119, 110, 112, 120, 124, 114, 121, 107, 116, 89, 125, 124, 128, 89, 125, 124, 105, 133, 122, 105, 121, 105, 114, 119, 99, 112, 109, 125, 115, 106, 116, 134, 115, 112, 115, 130, 106, 114, 102, 109, 108, 135, 107, 103, 110, 113, 117, 98, 112, 106, 100, 127, 108, 107, 113, 111, 120, 108, 110, 138, 120, 126, 113, 110, 100, 122, 112, 102, 115, 113, 112, 111, 115, 116, 123, 114, 127, 117, 120, 127, 110, 121, 121, 126, 115, 123, 97, 127, 127, 102, 112, 100, 104, 120, 121, 114, 127, 104, 118, 114, 120, 120, 120, 127, 121, 105, 124, 100, 119, 131, 112, 109, 114, 112, 106, 118, 105, 119, 112, 134, 101, 108, 112, 142, 116, 104, 114, 107, 113, 133, 112, 128, 116, 117, 117, 117, 107, 110, 101, 123, 127, 118, 123, 116, 112, 117, 97, 131, 121, 112, 116, 117, 114, 112, 118, 135, 113, 108, 110, 117, 126, 132, 95, 125, 113, 104, 128, 111, 111, 119, 111, 106, 127, 125, 114, 128, 116, 119, 110, 116, 117, 112, 109, 126, 108, 123, 113, 123, 130, 131, 117, 111, 103, 127, 122, 120, 114, 116, 111, 106, 113, 108, 107, 122, 125, 106, 118, 115, 104, 106, 114, 120, 114, 118, 116, 108, 113, 118, 117, 123, 114, 116, 116, 119, 125, 107, 106, 120, 115, 119, 115, 121, 112, 107, 109, 128, 129, 120, 121, 112, 128, 125, 106, 121, 110, 116, 112, 120, 114, 113, 110, 116, 116, 138, 117, 107, 112, 117, 109, 110, 117, 115, 114, 113, 115, 110, 116, 124, 119, 121, 117, 106, 121, 117, 120, 115, 121, 120, 112, 123, 110, 107, 109, 119, 109, 113, 103, 112, 112, 108, 117, 110, 120, 118, 122, 107, 112, 115, 104, 110, 115, 126, 116, 137, 118, 110, 106, 118, 132, 118, 113, 111, 117, 128, 104, 106, 119, 114, 112, 111, 114, 103, 107, 118, 103, 137, 114, 120, 128, 111, 103, 108, 121, 114, 106, 122, 112, 104, 116, 121, 104, 129, 103, 113, 112, 102, 107, 118, 110, 113, 120, 106, 129, 111, 132, 112, 110, 105, 122, 113, 109, 124, 131, 109, 113, 118, 136, 104, 117, 119, 115, 131, 107, 118, 114, 112, 128, 115, 105, 113, 124, 125, 120, 133, 126, 119, 115, 131, 106, 117, 117, 113, 125, 116, 108, 116, 124, 104, 118, 107, 113, 113, 124, 116, 110, 105, 112, 122, 124, 111, 129, 116, 122, 132, 110, 122, 123, 113, 121, 121, 110, 114, 112, 96, 114, 113, 104, 113, 114, 132, 109, 114, 120, 124, 123, 131, 100, 111, 114, 127, 140, 117, 104, 113, 126, 103, 107, 103, 126, 124, 107, 117, 104, 125, 112, 126, 96, 112, 96, 110, 114, 119, 130, 133, 128, 125, 121, 120, 105, 130, 113, 119, 123, 122, 119, 120, 114, 127, 127, 120, 120, 128, 115, 121, 120, 122, 107, 111, 99, 128, 118, 125, 120, 128, 107, 117, 107, 117, 120, 117, 124, 121, 101, 118, 110, 112, 104, 108, 116, 113, 115, 110, 123, 113, 129, 113, 142, 120, 110, 111, 108, 106, 106, 118, 119, 106, 111, 98, 125, 106, 107, 104, 117, 119, 156, 120, 133, 115, 97, 107, 124, 114, 101, 160, 109, 121, 126, 115, 110, 115, 113, 108, 120, 121, 107, 117, 127, 111, 116, 119, 108, 105, 111, 109, 120, 118, 115, 111, 118, 118, 122, 113, 121, 110, 116, 106, 102, 98, 117, 104, 100, 113, 109, 123, 125, 126, 114, 117, 115, 108, 112, 124, 105, 121, 122, 126, 126, 107, 116, 119, 101, 98, 121, 110, 111, 141, 127, 123, 122, 102, 116, 122, 113, 113, 130, 120, 109, 119, 116, 107, 126, 113, 120, 119, 99, 116, 115, 121, 120, 119, 106, 118, 125, 110, 110, 115, 115, 115, 113, 127, 125, 113, 115, 111, 105, 105, 116, 115, 109, 105, 115, 120, 124, 125, 112, 118, 118, 110, 117, 121, 124, 125, 119, 143, 114, 120, 112, 78, 100, 114, 119, 113, 111, 101, 120, 121, 115, 116, 119, 117, 104, 117, 113, 117, 118, 112, 110, 125, 105, 117, 108, 99, 117, 122, 117, 114, 107, 121, 109, 122, 106, 110, 119, 104, 99, 113, 105, 120, 121, 100, 108, 115, 122, 113, 94, 114, 113, 120, 137, 120, 114, 127, 139, 117, 117, 109, 135, 115, 109, 118, 123, 118, 112, 110, 119, 111, 130, 115, 112, 112, 107, 123, 115, 125, 116, 128, 119, 122, 170, 116, 114, 113, 92, 122, 119, 100, 118, 112, 111, 97, 139, 124, 120, 115, 113, 112, 141, 133, 106, 129, 116, 102, 122, 105, 144, 120, 106, 110, 120, 113, 129, 121, 129, 107, 111, 114, 115, 101, 99, 126, 103, 122, 127, 112, 109, 139, 102, 113, 104, 122, 105, 112, 111, 128, 119, 124, 101, 114, 118, 118, 118, 115, 117, 118, 119, 112, 112, 110, 113, 113, 118, 130, 120, 127, 123, 131, 136, 121, 119, 107, 118, 107, 105, 117, 129, 108, 128, 129, 111, 118, 113, 119, 124, 129, 118, 109, 105, 110, 116, 119, 117, 116, 106, 102, 130, 140, 109, 114, 124, 113, 113, 123, 111, 130, 137, 111, 83, 108, 113, 117, 109, 110, 103, 121, 120, 112, 109, 115, 127, 107, 114, 85, 119, 121, 112, 116, 114, 105, 73, 99, 118, 112, 116, 130, 108, 138, 123, 110, 128, 96, 121, 119, 121, 112, 113, 103, 129, 117, 119, 107, 110, 114, 126, 111, 113, 111, 122, 127, 120, 131, 113, 123, 123, 117, 127, 120, 112, 106, 108, 107, 109, 107, 123, 115, 114, 130, 103, 116, 125, 117, 106, 116, 114, 136, 107, 120, 100, 107, 115, 132, 127, 121, 118, 119, 113, 112, 123, 125, 113, 116, 111, 99, 125, 138, 111, 114, 132, 101, 125, 108, 113, 103, 94, 114, 114, 115, 109, 119, 120, 116, 116, 108, 124, 109, 120, 117, 137, 117, 114, 116, 105, 97, 97, 107, 115, 121, 108, 107, 102, 119, 116, 122, 123, 110, 107, 116, 121, 119, 117, 124, 111, 124, 107, 119, 115, 119, 119, 142, 99, 114, 104, 113, 117, 119, 121, 122, 125, 111, 105, 118, 137, 118, 116, 125, 136, 117, 108, 115, 130, 97, 118, 96, 126, 117, 109, 109, 110, 117, 109, 123, 120, 124, 116, 112, 127, 115, 120, 120, 116, 115, 107, 143, 106, 118, 131, 111, 114, 117, 119, 120, 118, 118, 121, 118, 117, 110, 107, 115, 117, 122, 118, 118, 95, 103, 100, 107, 116, 108, 95, 127, 119, 107, 119, 113, 123, 113, 112, 105, 122, 107, 114, 127, 98, 125, 117, 103, 116, 122, 127, 115, 107, 110, 121, 97, 109, 110, 113, 113, 118, 107, 117, 108, 116, 110, 114, 134, 117, 123, 113, 108, 117, 109, 117, 176, 116, 120, 111, 110, 123, 116, 103, 120, 123, 109, 101, 114, 106, 105, 110, 100, 116, 114, 112, 116, 118, 107, 113, 126, 125, 120, 120, 123, 128, 108, 119, 117, 122, 147, 109, 110, 124, 121, 89, 117, 113, 114, 112, 111, 118, 114, 126, 105, 106, 105, 128, 112, 103, 127, 125, 123, 119, 112, 124, 111, 111, 103, 108, 98, 102, 119, 113, 129, 127, 121, 127, 119, 119, 111, 100, 117, 121, 110, 116, 121, 120, 126, 109, 131, 113, 119, 117, 121, 96, 105, 122, 114, 116, 112, 115, 112, 117, 115, 113, 116, 113, 122, 113, 123, 119, 119, 103, 129, 120, 116, 119, 107, 112, 122, 120, 111, 115, 99, 110, 121, 91, 124, 105, 118, 124, 116, 107, 127, 112, 110, 120, 114, 116, 114, 154, 116, 120, 133, 107, 111, 116, 119, 108, 121, 123, 108, 114, 118, 109, 113, 112, 106, 109, 121, 109, 133, 116, 113, 149, 129, 116, 118, 114, 98, 110, 106, 120, 109, 97, 127, 119, 126, 122, 106, 119, 115, 103, 125, 109, 109, 114, 113, 109, 115, 115, 117, 123, 121, 111, 109, 118, 119, 128, 114, 111, 119, 107, 109, 121, 109, 126, 124, 105, 123, 111, 124, 114, 126, 106, 105, 108, 114, 124, 119, 102, 118, 109, 114, 118, 105, 115, 124, 119, 123, 126, 91, 125, 130, 106, 114, 102, 110, 129, 110, 97, 116, 114, 130, 110, 111, 107, 112, 123, 121, 126, 117, 128, 126, 125, 123, 114, 127, 133, 122, 116, 122, 117, 121, 127, 109, 110, 123, 110, 120, 111, 109, 122, 97, 114, 100, 121, 128, 104, 130, 123, 116, 127, 124, 106, 120, 113, 105, 122, 125, 109, 112, 107, 119, 118, 104, 141, 140, 113, 114, 111, 104, 114, 119, 122, 105, 112, 123, 135, 126, 125, 123, 104, 107, 86, 117, 118, 120, 117, 105, 123, 108, 123, 106, 99, 110, 102, 116, 139, 113, 113, 122, 118, 122, 110, 136, 115, 106, 127, 102, 124, 112, 123, 113, 119, 134, 121, 129, 106, 112, 121, 126, 95, 116, 136, 120, 113, 116, 123, 105, 110, 111, 102, 120, 120, 133, 115, 129, 121, 108, 123, 107, 106, 126, 105, 116, 116, 118, 118, 113, 115, 116, 101, 113, 122, 113, 92, 105, 102, 114, 125, 104, 113, 102, 115, 119, 106, 141, 113, 110, 116, 108, 113, 108, 121, 120, 126, 105, 114, 107, 120, 123, 102, 131, 115, 117, 120, 123, 120, 116, 124, 118, 111, 125, 129, 131, 114, 109, 115, 117, 116, 115, 98, 138, 115, 109, 107, 119, 122, 106, 104, 123, 126, 112, 117, 118, 122, 122, 118, 113, 103, 109, 123, 109, 112, 111, 116, 121, 113, 117, 123, 107, 118, 114, 117, 115, 121, 116, 119, 105, 105, 118, 128, 120, 117, 114, 112, 111, 116, 126, 133, 110, 127, 119, 121, 108, 108, 114, 109, 109, 117, 106, 131, 125, 107, 112, 128, 109, 109, 128, 114, 120, 103, 122, 97, 116, 130, 119, 125, 122, 121, 104, 122, 119, 106, 113, 124, 118, 112, 109, 118, 119, 108, 106, 111, 103, 107, 106, 110, 123, 119, 115, 106, 122, 124, 116, 115, 111, 120, 127, 118, 112, 119, 102, 115, 123, 111, 125, 110, 93, 114, 108, 111, 124, 117, 114, 126, 126, 119, 116, 112, 113, 115, 118, 117, 120, 132, 119, 116, 111, 113, 101, 111, 123, 106, 118, 105, 127, 119, 108, 105, 122, 129, 108, 124, 124, 96, 118, 121, 109, 115, 120, 107, 112, 105, 106, 113, 109, 126, 104, 107, 122, 120, 108, 110, 113, 110, 109, 113, 119, 117, 114, 116, 109, 124, 108, 127, 112, 122, 109, 110, 99, 140, 115, 109, 133, 112, 117, 112, 127, 119, 112, 113, 117, 107, 117, 116, 118, 113, 107, 112, 118, 119, 111, 113, 125, 124, 118, 114, 107, 118, 123, 104, 101, 112, 117, 121, 124, 126, 112, 115, 120, 118, 130, 113, 115, 115, 120, 109, 123, 122, 123, 107, 125, 113, 125, 112, 130, 119, 114, 120, 111, 109, 115, 108, 128, 110, 120, 115, 121, 121, 122, 118, 126, 118, 117, 123, 124, 119, 117, 116, 119, 108, 114, 120, 111, 127, 111, 103, 121, 113, 106, 117, 115, 110, 97, 126, 113, 111, 122, 100, 121, 119, 124, 101, 103, 118, 118, 126, 107, 111, 105, 121, 131, 106, 114, 112, 119, 118, 124, 104, 112, 115, 113, 116, 114, 116, 133, 113, 109, 107, 115, 109, 119, 117, 129, 108, 121, 112, 117, 115, 111, 113, 111, 109, 133, 113, 125, 106, 108, 111, 111, 113, 109, 125, 107, 109, 129, 99, 124, 120, 112, 104, 111, 125, 121, 119, 121, 106, 113, 112, 119, 114, 121, 118, 101, 114, 116, 132, 130, 110, 113, 119, 106, 109, 117, 120, 120, 119, 115, 118, 109, 118, 105, 115, 112, 119, 127, 106, 122, 120, 116, 116, 111, 127, 115, 117, 136, 130, 115, 115, 118, 121, 124, 120, 115, 102, 114, 119, 119, 112, 113, 104, 120, 113, 111, 106, 114, 102, 122, 109, 113, 115, 115, 119, 105, 120, 123, 119, 120, 105, 113, 118, 125, 113, 122, 112, 117, 128, 109, 102, 112, 120, 113, 104, 126, 104, 104, 138, 128, 107, 100, 118, 120, 116, 116, 118, 115, 112, 117, 121, 113, 122, 126, 117, 113, 118, 113, 117, 111, 123, 110, 132, 118, 129, 104, 109, 114, 101, 110, 122, 108, 112, 117, 121, 115, 118, 118, 115, 112, 112, 123, 103, 119, 124, 145, 104, 108, 110, 113, 111, 119, 117, 116, 112, 129, 107, 112, 105, 120, 119, 117, 118, 101, 101, 104, 106, 119, 111, 102, 103, 113, 107, 115, 117, 117, 104, 131, 120, 112, 114, 125, 110, 113, 84, 91, 106, 100, 106, 117, 109, 134, 124, 109, 113, 114, 126, 112, 88, 102, 125, 115, 110, 112, 121, 116, 115, 122, 97, 125, 111, 111, 107, 132, 98, 116, 109, 111, 108, 113, 175, 121, 130, 118, 107, 129, 116, 102, 121, 104, 125, 116, 120, 99, 113, 109, 116, 111, 128, 123, 107, 117, 124, 130, 110, 114, 134, 124, 118, 117, 108, 102, 123, 118, 110, 115, 122, 121, 123, 102, 112, 127, 107, 112, 99, 119, 114, 97, 108, 128, 122, 113, 106, 112, 121, 115, 99, 106, 116, 100, 126, 128, 111, 108, 120, 117, 114, 107, 121, 107, 109, 120, 107, 109, 113, 131, 121, 110, 101, 104, 121, 122, 122, 126, 112, 108, 116, 105, 99, 114, 129, 115, 117, 108, 120, 112, 101, 113, 126, 109, 113, 103, 117, 121, 137, 105, 135, 124, 117, 122, 112, 99, 118, 115, 123, 120, 117, 126, 113, 111, 129, 107, 106, 108, 128, 108, 123, 112, 96, 110, 110, 112, 111, 128, 114, 127, 107, 106, 123, 123, 121, 109, 110, 133, 114, 101, 103, 122, 123, 110, 125, 120, 116, 125, 103, 113, 97, 108, 127, 104, 107, 124, 116, 117, 109, 112, 141, 124, 103, 131, 122, 110, 117, 115, 122, 121, 119, 108, 111, 118, 119, 125, 116, 110, 114, 140, 110, 111, 139, 109, 115, 106, 114, 128, 131, 110, 127, 103, 115, 129, 98, 112, 100, 115, 122, 122, 122, 107, 109, 103, 118, 108, 132, 126, 117, 115, 113, 123, 101, 116, 111, 119, 116, 127, 109, 120, 116, 119, 120, 84, 117, 123, 126, 106, 115, 115, 117, 111, 114, 101, 109, 126, 111, 117, 110, 127, 110, 117, 120, 123, 101, 105, 118, 102, 134, 143, 118, 115, 111, 109, 120, 114, 113, 114, 112, 114, 118, 111, 125, 110, 106, 118, 122, 110, 114, 107, 129, 101, 112, 122, 106, 111, 111, 108, 102, 127, 111, 114, 124, 90, 128, 115, 106, 122, 127, 112, 110, 108, 107, 114, 121, 110, 117, 130, 125, 103, 111, 114, 106, 121, 121, 120, 129, 117, 106, 115, 119, 112, 99, 121, 102, 114, 97, 121, 122, 116, 117, 113, 119, 101, 107, 135, 126, 105, 104, 133, 109, 104, 107, 132, 101, 121, 111, 123, 96, 114, 140, 127, 122, 134, 108, 99, 120, 103, 123, 128, 113, 122, 111, 122, 103, 123, 111, 116, 133, 105, 117, 120, 118, 121, 112, 103, 124, 123, 135, 118, 110, 115, 119, 98, 101, 115, 115, 111, 113, 126, 120, 108, 112, 133, 127, 100, 121, 109, 113, 124, 119, 131, 105, 125, 114, 125, 119, 118, 110, 134, 108, 118, 95, 127, 109, 134, 118, 131, 125, 128, 131, 101, 122, 129, 122, 113, 107, 113, 109, 113, 109, 115, 109, 106, 125, 107, 113, 94, 117, 111, 129, 99, 108, 103, 114, 118, 125, 120, 110, 113, 120, 111, 128, 112, 113, 138, 122, 100, 115, 109, 129, 128, 126, 117, 106, 102, 120, 108, 104, 107, 118, 121, 119, 105, 117, 113, 103, 113, 111, 93, 121, 96, 102, 129, 113, 127, 115, 123, 138, 106, 115, 127, 125, 104, 118, 123, 89, 118, 104, 111, 134, 88, 105, 108, 107, 107, 113, 107, 113, 118, 111, 126, 110, 107, 115, 95, 104, 87, 120, 118, 111, 127, 117, 110, 129, 120, 118, 117, 106, 113, 108, 119, 113, 117, 113, 127, 111, 119, 117, 108, 141, 125, 121, 120, 112, 108, 107, 124, 125, 108, 115, 115, 110, 137, 106, 111, 120, 117, 97, 109, 112, 144, 114, 115, 145, 134, 127, 125, 120, 118, 111, 140, 125, 107, 114, 104, 107, 105, 140, 97, 127, 136, 110, 127, 126, 116, 114, 105, 112, 121, 111, 111, 99, 116, 116, 115, 114, 130, 113, 114, 106, 113, 115, 122, 91, 122, 103, 129, 114, 123, 117, 117, 113, 126, 111, 113, 112, 130, 123, 111, 87, 118, 88, 117, 116, 99, 117, 112, 107, 96, 117, 128, 110, 118, 119, 110, 110, 115, 123, 123, 120, 107, 136, 117, 105, 142, 117, 110, 93, 118, 140, 120, 118, 131, 131, 146, 120, 120, 102, 111, 96, 103, 140, 109, 117, 122, 112, 111, 102, 86, 119, 120, 120, 121, 117, 111, 106, 117, 128, 114, 132, 101, 116, 117, 116, 123, 100, 118, 133, 117, 104, 96, 110, 121, 120, 118, 104, 96, 120, 173, 114, 94, 111, 108, 113, 123, 115, 110, 111, 126, 103, 94, 105, 106, 121, 109, 92, 124, 112, 122, 120, 125, 116, 125, 103, 95, 117, 100, 119, 108, 118, 125, 141, 107, 130, 110, 92, 131, 114, 133, 97, 114, 120, 113, 117, 109, 99, 110, 106, 121, 121, 114, 103, 110, 113, 143, 107, 121, 107, 117, 113, 112, 114, 119, 112, 118, 113, 106, 101, 111, 116, 106, 127, 108, 122, 105, 111, 136, 107, 111, 110, 134, 107, 132, 118, 112, 120, 119, 115, 104, 107, 112, 132, 115, 114, 132, 127, 110, 119, 121, 105, 119, 119, 103, 116, 125, 114, 128, 118, 113, 121, 117, 111, 149, 114, 125, 113, 122, 110, 124, 119, 120, 126, 125, 115, 115, 136, 107, 125, 104, 105, 112, 105, 115, 105, 110, 99, 107, 110, 111, 121, 115, 125, 115, 113, 103, 134, 135, 124, 129, 120, 117, 127, 121, 83, 134, 116, 130, 110, 120, 108, 133, 116, 131, 122, 112, 131, 108, 114, 98, 121, 128, 114, 111, 130, 124, 120, 121, 135, 111, 105, 126, 112, 102, 107, 113, 122, 117, 98, 112, 100, 115, 88, 115, 91, 114, 115, 111, 109, 98, 106, 107, 112, 114, 107, 107, 102, 106, 113, 113, 119, 134, 107, 102, 110, 117, 120, 116, 111, 102, 103, 128, 107, 111, 104, 120, 109, 121, 117, 101, 105, 111, 115, 118, 114, 124, 132, 112, 130, 129, 103, 120, 118, 112, 127, 110, 144, 127, 121, 115, 114, 119, 122, 95, 121, 116, 115, 117, 118, 113, 125, 108, 122, 113, 110, 117, 112, 124, 118, 123, 126, 122, 117, 118, 115, 114, 115, 117, 107, 119, 95, 121, 123, 119, 117, 134, 114, 118, 132, 113, 113, 114, 116, 123, 115, 117, 118, 120, 113, 116, 116, 118, 121, 109, 131, 124, 100, 118, 106, 126, 117, 118, 107, 114, 123, 110, 114, 117, 121, 120, 113, 115, 115, 122, 121, 116, 116, 113, 111, 114, 125, 110, 134, 119, 117, 122, 120, 109, 120, 118, 114, 117, 107, 128, 113, 113, 116, 112, 113, 131, 142, 116, 113, 119, 123, 119, 116, 109, 108, 109, 113, 114, 121, 113, 108, 115, 126, 121, 124, 126, 106, 122, 118, 110, 109, 106, 118, 113, 114, 119, 110, 112, 114, 116, 119, 128, 123, 119, 109, 119, 123, 121, 124, 113, 116, 120, 117, 120, 120, 127, 119, 111, 117, 113, 121, 121, 108, 113, 110, 110, 111, 110, 136, 111, 123, 114, 109, 112, 120, 106, 125, 114, 120, 112, 128, 122, 121, 117, 110, 112, 122, 118, 105, 114, 119, 108, 108, 123, 112, 119, 108, 124, 111, 112, 121, 104, 109, 124, 128, 112, 109, 119, 109, 115, 112, 115, 126, 113, 119, 113, 116, 124, 111, 119, 109, 121, 117, 118, 117, 120, 118, 120, 111, 100, 117, 110, 119, 111, 111, 110, 109, 118, 121, 117, 136, 115, 110, 111, 122, 110, 114, 133, 114, 113, 127, 124, 120, 110, 124, 108, 118, 121, 122, 111, 123, 118, 112, 108, 119, 106, 120, 111, 109, 116, 109, 116, 100, 120, 106, 112, 120, 116, 116, 106, 120, 119, 118, 116, 117, 122, 120, 119, 109, 121, 109, 113, 106, 113, 121, 112, 112, 110, 114, 119, 114, 124, 121, 113, 113, 121, 122, 107, 114, 123, 108, 118, 113, 117, 121, 116, 114, 117, 112, 113, 103, 120, 106, 119, 116, 123, 117, 120, 119, 114, 118, 122, 117, 112, 115, 112, 112, 122, 115, 109, 112, 117, 114, 121, 109, 113, 118, 114, 107, 113, 122, 117, 110, 111, 113, 130, 128, 123, 95, 123, 121, 111, 117, 114, 112, 135, 112, 113, 110, 125, 112, 109, 120, 103, 103, 117, 131, 108, 114, 116, 110, 114, 113, 117, 115, 131, 118, 115, 127, 113, 112, 120, 117, 113, 119, 110, 110, 128, 124, 115, 104, 122, 118, 114, 108, 137, 114, 120, 119, 112, 121, 114, 111, 115, 113, 113, 112, 117, 116, 126, 106, 114, 113, 110, 122, 123, 110, 112, 123, 118, 111, 118, 120, 126, 118, 119, 122, 110, 116, 116, 137, 115, 115, 117, 103, 115, 121, 131, 129, 114, 122, 116, 131, 131, 108, 112, 122, 73, 117, 112, 119, 111, 117, 111, 107, 109, 113, 109, 116, 118, 111, 114, 112, 108, 108, 120, 111, 117, 113, 114, 119, 114, 109, 118, 113, 109, 117, 109, 112, 118, 98, 119, 114, 108, 111, 113, 105, 117, 117, 118, 107, 107, 116, 115, 121, 120, 114, 108, 133, 114, 121, 119, 111, 115, 118, 113, 122, 108, 115, 120, 111, 121, 133, 121, 107, 117, 112, 109, 120, 125, 124, 104, 111, 110, 116, 103, 121, 108, 128, 116, 108, 120, 115, 113, 116, 128, 126, 125, 111, 120, 109, 124, 110, 110, 104, 127, 117, 133, 126, 104, 112, 125, 106, 108, 117, 130, 130, 117, 109, 119, 109, 104, 110, 121, 113, 120, 110, 128, 112, 111, 113, 126, 113, 105, 121, 115, 111, 133, 113, 103, 102, 111, 114, 157, 114, 114, 101, 123, 116, 115, 122, 120, 97, 121, 86, 114, 99, 114, 117, 116, 119, 131, 122, 121, 123, 118, 128, 155, 111, 112, 124, 110, 112, 121, 110, 119, 102, 121, 108, 115, 123, 111, 125, 106, 115, 106, 94, 115, 117, 113, 115, 115, 114, 123, 118, 104, 116, 112, 109, 121, 117, 119, 106, 103, 112, 122, 127, 118, 105, 112, 123, 122, 117, 113, 116, 119, 113, 132, 116, 113, 125, 122, 118, 115, 111, 107, 114, 111, 119, 119, 125, 105, 116, 121, 123, 111, 113, 121, 123, 115, 124, 114, 114, 109, 114, 109, 126, 113, 133, 131, 109, 118, 108, 115, 115, 118, 120, 124, 137, 119, 112, 117, 117, 108, 95, 109, 126, 106, 114, 108, 112, 118, 124, 122, 123, 126, 113, 118, 115, 115, 99, 109, 120, 111, 107, 112, 118, 119, 127, 109, 107, 140, 117, 107, 111, 110, 126, 102, 115, 112, 104, 121, 134, 120, 111, 111, 125, 121, 110, 113, 117, 123, 118, 98, 121, 113, 111, 126, 114, 93, 132, 123, 115, 113, 125, 115, 130, 113, 124, 115, 117, 110, 105, 121, 122, 121, 124, 118, 107, 120, 120, 103, 123, 113, 113, 108, 116, 136, 113, 124, 112, 117, 120, 117, 121, 121, 119, 107, 127, 129, 122, 146, 102, 111, 114, 135, 119, 111, 126, 134, 121, 121, 103, 86, 119, 120, 93, 115, 123, 119, 111, 124, 105, 134, 124, 122, 122, 98, 138, 134, 105, 109, 108, 113, 117, 115, 114, 113, 108, 123, 108, 109, 112, 113, 117, 109, 124, 109, 141, 124, 130, 110, 127, 114, 123, 119, 122, 106, 147, 117, 118, 102, 92, 100, 123, 115, 124, 112, 118, 106, 110, 116, 113, 125, 126, 122, 122, 121, 114, 113, 119, 124, 100, 119, 116, 137, 119, 115, 114, 105, 121, 120, 122, 123, 100, 104, 116, 109, 114, 112, 119, 112, 128, 111, 132, 109, 118, 115, 115, 117, 114, 114, 115, 118, 125, 111, 116, 112, 119, 122, 120, 109, 118, 114, 109, 144, 114, 109, 103, 105, 121, 119, 108, 118, 118, 109, 133, 118, 124, 107, 114, 113, 110, 109, 128, 116, 123, 98, 118, 107, 116, 129, 110, 124, 112, 111, 114, 121, 118, 119, 115, 120, 105, 129, 107, 110, 114, 110, 108, 111, 103, 118, 123, 117, 110, 114, 118, 103, 107, 108, 115, 134, 113, 127, 116, 118, 119, 119, 107, 112, 126, 111, 129, 121, 121, 134, 123, 110, 121, 124, 113, 119, 100, 120, 117, 112, 133, 118, 114, 119, 124, 124, 111, 116, 124, 119, 117, 116, 114, 124, 121, 111, 128, 113, 112, 130, 126, 105, 103, 118, 88, 115, 101, 99, 111, 102, 154, 112, 103, 117, 108, 115, 109, 113, 113, 125, 105, 115, 115, 137, 101, 115, 117, 131, 110, 121, 114, 102, 117, 133, 118, 132, 115, 117, 109, 114, 107, 116, 118, 99, 121, 122, 132, 106, 119, 111, 111, 116, 111, 118, 118, 107, 130, 113, 117, 109, 107, 107, 122, 121, 102, 120, 109, 113, 108, 120, 133, 100, 107, 110, 109, 112, 119, 120, 116, 110, 132, 99, 109, 102, 109, 113, 116, 112, 118, 106, 115, 118, 118, 118, 112, 114, 128, 104, 110, 111, 117, 124, 127, 132, 116, 106, 118, 107, 119, 111, 110, 135, 109, 114, 116, 115, 113, 106, 122, 116, 136, 105, 112, 116, 96, 131, 115, 122, 109, 103, 113, 107, 118, 125, 108, 129, 135, 120, 115, 114, 113, 113, 114, 103, 129, 109, 113, 130, 116, 101, 115, 103, 120, 110, 120, 141, 129, 106, 124, 108, 113, 102, 109, 109, 103, 109, 132, 114, 129, 103, 104, 115, 119, 105, 100, 131, 104, 110, 106, 95, 124, 109, 124, 118, 110, 118, 115, 118, 115, 114, 107, 111, 110, 120, 114, 110, 109, 122, 112, 113, 120, 131, 117, 120, 134, 110, 120, 120, 105, 117, 124, 151, 116, 110, 119, 124, 112, 140, 123, 125, 123, 109, 116, 121, 120, 107, 112, 122, 110, 126, 117, 103, 114, 114, 114, 112, 124, 114, 119, 121, 109, 104, 109, 110, 85, 99, 106, 127, 122, 125, 119, 130, 115, 122, 113, 132, 106, 114, 114, 117, 113, 134, 101, 108, 98, 112, 92, 118, 119, 122, 109, 113, 96, 110, 130, 148, 121, 131, 117, 119, 112, 134, 115, 101, 128, 110, 119, 116, 106, 122, 142, 110, 110, 114, 126, 115, 120, 119, 108, 131, 114, 94, 104, 132, 108, 112, 119, 135, 108, 134, 116, 100, 104, 111, 110, 118, 121, 117, 125, 123, 120, 121, 123, 122, 122, 99, 102, 107, 107, 112, 104, 130, 118, 115, 107, 114, 110, 115, 103, 107, 119, 119, 105, 118, 110, 136, 120, 111, 119, 111, 115, 127, 103, 111, 105, 111, 110, 113, 110, 119, 104, 116, 118, 130, 135, 106, 110, 104, 128, 114, 79, 106, 121, 114, 111, 101, 113, 102, 120, 111, 121, 129, 135, 109, 116, 135, 105, 113, 132, 104, 118, 109, 118, 127, 114, 116, 132, 101, 115, 118, 124, 114, 116, 120, 120, 121, 122, 109, 130, 106, 111, 114, 112, 121, 128, 116, 109, 110, 137, 120, 114, 112, 113, 119, 121, 122, 106, 103, 118, 105, 127, 121, 102, 101, 112, 113, 125, 113, 114, 114, 115, 121, 141, 124, 110, 122, 113, 98, 104, 117, 146, 122, 125, 112, 124, 119, 122, 102, 110, 121, 117, 111, 125, 133, 127, 110, 113, 113, 114, 124, 97, 133, 131, 93, 114, 101, 107, 141, 109, 113, 122, 114, 110, 107, 109, 118, 120, 111, 139, 130, 111, 121, 129, 124, 116, 137, 113, 112, 114, 111, 110, 111, 95, 118, 109, 110, 123, 116, 122, 116, 114, 117, 119, 101, 100, 110, 120, 94, 105, 120, 132, 126, 116, 127, 131, 107, 114, 103, 120, 122, 117, 103, 125, 110, 122, 118, 114, 102, 125, 111, 120, 106, 108, 112, 124, 118, 117, 98, 119, 113, 134, 118, 102, 106, 119, 118, 115, 113, 124, 122, 113, 124, 123, 124, 109, 112, 113, 122, 144, 92, 121, 127, 93, 100, 112, 117, 113, 120, 108, 113, 117, 130, 135, 126, 116, 112, 123, 124, 117, 104, 124, 112, 79, 129, 126, 111, 102, 112, 109, 122, 115, 132, 98, 116, 119, 102, 122, 105, 120, 120, 100, 123, 114, 99, 107, 124, 112, 122, 107, 106, 119, 120, 116, 114, 118, 122, 119, 129, 112, 139, 111, 135, 130, 126, 118, 154, 125, 113, 116, 121, 123, 106, 120, 109, 115, 107, 129, 106, 124, 113, 129, 109, 115, 108, 120, 124, 125, 114, 124, 105, 122, 126, 130, 116, 113, 112, 120, 104, 117, 131, 111, 140, 108, 118, 131, 113, 113, 116, 113, 107, 124, 116, 101, 125, 111, 114, 116, 120, 99, 112, 97, 102, 98, 116, 107, 102, 109, 109, 112, 121, 129, 112, 105, 121, 116, 107, 111, 117, 105, 101, 118, 125, 112, 116, 111, 112, 114, 105, 123, 114, 105, 105, 99, 129, 121, 107, 126, 112, 106, 103, 113, 103, 123, 110, 120, 102, 108, 95, 113, 110, 130, 116, 105, 116, 123, 112, 130, 119, 115, 99, 123, 125, 114, 122, 116, 107, 115, 96, 122, 120, 110, 112, 123, 112, 107, 114, 111, 108, 127, 106, 111, 105, 114, 109, 137, 121, 112, 124, 143, 125, 104, 124, 127, 115, 117, 125, 134, 113, 114, 119, 95, 111, 116, 130, 111, 133, 119, 122, 118, 126, 130, 117, 120, 116, 105, 118, 119, 119, 119, 114, 101, 119, 117, 129, 140, 121, 109, 119, 114, 120, 102, 125, 122, 118, 124, 109, 116, 122, 130, 104, 121, 111, 110, 127, 110, 122, 121, 133, 111, 114, 123, 124, 114, 96, 121, 118, 127, 116, 122, 123, 116, 106, 119, 110, 118, 113, 114, 124, 103, 131, 120, 97, 114, 116, 132, 115, 105, 108, 108, 113, 117, 129, 117, 124, 116, 119, 122, 117, 118, 124, 100, 119, 123, 130, 109, 120, 114, 119, 110, 110, 139, 103, 111, 108, 135, 120, 117, 115, 110, 127, 118, 111, 110, 114, 136, 111, 120, 121, 126, 124, 109, 106, 112, 112, 111, 133, 109, 133, 119, 122, 125, 125, 113, 107, 111, 114, 126, 119, 112, 123, 121, 118, 125, 107, 123, 113, 106, 108, 109, 126, 117, 107, 127, 102, 127, 117, 122, 122, 112, 134, 114, 113, 117, 97, 122, 122, 111, 118, 96, 111, 108, 122, 118, 107, 109, 105, 114, 106, 112, 109, 110, 117, 115, 128, 112, 123, 118, 97, 119, 136, 122, 114, 109, 118, 124, 106, 119, 111, 119, 121, 103, 127, 93, 125, 117, 100, 115, 121, 110, 107, 110, 115, 109, 105, 140, 103, 117, 98, 125, 118, 119, 119, 125, 119, 122, 117, 114, 124, 126, 122, 100, 112, 141, 134, 99, 110, 113, 127, 112, 111, 116, 112, 119, 96, 117, 120, 107, 110, 113, 118, 113, 129, 146, 106, 103, 114, 122, 104, 116, 116, 112, 125, 106, 120, 113, 107, 131, 115, 119, 108, 130, 117, 106, 120, 114, 119, 139, 113, 124, 112, 103, 122, 118, 116, 116, 124, 115, 117, 121, 113, 108, 117, 111, 104, 102, 109, 108, 117, 116, 121, 131, 110, 109, 136, 111, 110, 101, 110, 103, 112, 121, 126, 127, 110, 114, 103, 111, 123, 108, 109, 124, 115, 124, 123, 98, 113, 122, 120, 122, 107, 112, 107, 112, 113, 116, 120, 107, 125, 109, 125, 116, 107, 120, 99, 100, 119, 129, 108, 110, 107, 120, 118, 115, 125, 109, 125, 110, 94, 114, 118, 122, 125, 104, 129, 112, 133, 137, 129, 111, 122, 109, 119, 111, 118, 108, 112, 115, 121, 138, 111, 121, 118, 117, 113, 119, 112, 111, 117, 121, 144, 121, 123, 118, 123, 111, 112, 115, 121, 124, 105, 116, 112, 113, 104, 125, 116, 124, 105, 103, 120, 107, 120, 108, 117, 125, 103, 127, 134, 122, 104, 113, 126, 100, 117, 103, 97, 126, 124, 140, 112, 101, 113, 108, 120, 141, 104, 117, 126, 99, 113, 126, 127, 120, 117, 118, 123, 128, 110, 124, 105, 126, 140, 115, 98, 112, 106, 118, 125, 123, 120, 122, 108, 110, 130, 117, 110, 124, 127, 122, 127, 112, 126, 115, 125, 109, 111, 108, 99, 130, 123, 114, 103, 121, 128, 120, 110, 98, 133, 130, 108, 110, 111, 112, 113, 127, 112, 114, 117, 95, 117, 113, 127, 135, 119, 109, 117, 110, 117, 122, 122, 117, 126, 106, 142, 118, 124, 111, 104, 120, 99, 114, 125, 114, 143, 101, 108, 112, 106, 116, 134, 114, 94, 117, 110, 112, 109, 103, 131, 118, 130, 114, 121, 119, 115, 122, 113, 118, 111, 124, 124, 131, 111, 109, 103, 117, 108, 120, 115, 112, 120, 106, 141, 109, 116, 140, 113, 113, 110, 128, 107, 119, 106, 111, 103, 107, 107, 119, 99, 107, 110, 101, 116, 133, 126, 112, 119, 106, 119, 128, 108, 115, 102, 124, 123, 113, 123, 109, 127, 116, 114, 118, 120, 116, 126, 113, 119, 113, 126, 103, 112, 106, 129, 99, 119, 120, 96, 122, 115, 130, 119, 105, 111, 128, 126, 126, 99, 95, 111, 105, 111, 120, 118, 130, 102, 114, 110, 107, 106, 111, 126, 120, 114, 116, 112, 107, 116, 113, 120, 108, 119, 120, 122, 116, 106, 112, 112, 114, 103, 122, 118, 134, 124, 143, 120, 110, 116, 129, 102, 109, 121, 118, 124, 112, 137, 120, 101, 102, 111, 119, 94, 116, 116, 119, 111, 107, 102, 118, 107, 112, 121, 97, 123, 109, 118, 114, 108, 119, 103, 107, 125, 114, 130, 103, 107, 122, 106, 124, 109, 106, 111, 118, 117, 128, 122, 105, 112, 116, 115, 121, 116, 109, 118, 123, 108, 108, 106, 118, 131, 117, 131, 108, 109, 112, 115, 105, 116, 113, 98, 112, 118, 107, 110, 133, 111, 117, 126, 124, 103, 113, 126, 121, 104, 125, 112, 110, 116, 111, 96, 124, 109, 118, 124, 113, 114, 122, 106, 111, 115, 116, 108, 114, 112, 108, 116, 121, 104, 90, 114, 112, 112, 126, 106, 130, 115, 90, 120, 123, 119, 117, 119, 111, 124, 96, 117, 125, 113, 118, 112, 117, 106, 147, 114, 122, 119, 115, 125, 114, 109, 117, 101, 123, 104, 120, 142, 102, 132, 113, 114, 109, 111, 121, 108, 109, 127, 91, 130, 115, 116, 114, 123, 117, 116, 110, 114, 119, 116, 124, 118, 122, 121, 113, 106, 113, 124, 118, 108, 99, 114, 139, 106, 115, 89, 119, 97, 123, 118, 94, 125, 117, 119, 115, 111, 103, 110, 116, 112, 110, 115, 113, 111, 104, 134, 119, 115, 128, 109, 114, 119, 101, 121, 113, 120, 126, 118, 115, 131, 124, 165, 132, 125, 116, 122, 107, 105, 108, 129, 107, 115, 114, 142, 105, 104, 105, 126, 108, 115, 106, 116, 108, 109, 127, 104, 107, 115, 103, 111, 110, 120, 108, 111, 120, 116, 113, 109, 103, 105, 114, 126, 112, 119, 133, 117, 120, 112, 119, 113, 122, 107, 126, 103, 101, 117, 116, 119, 107, 110, 136, 112, 89, 109, 92, 134, 125, 110, 111, 114, 126, 115, 119, 112, 120, 109, 115, 115, 114, 111, 113, 133, 112, 107, 117, 108, 110, 83, 121, 122, 137, 118, 128, 114, 124, 117, 123, 112, 102, 125, 132, 105, 101, 108, 114, 116, 126, 135, 121, 112, 113, 133, 137, 121, 130, 118, 120, 120, 111, 105, 123, 96, 123, 106, 121, 121, 108, 111, 114, 118, 124, 105, 119, 111, 105, 120, 112, 121, 129, 120, 115, 120, 115, 118, 112, 101, 104, 132, 120, 111, 111, 117, 111, 117, 99, 121, 113, 107, 138, 103, 120, 120, 126, 114, 114, 116, 114, 121, 107, 114, 102, 121, 107, 92, 114, 114, 111, 118, 104, 112, 119, 130, 114, 115, 123, 111, 120, 124, 105, 106, 130, 118, 115, 110, 105, 128, 130, 124, 123, 110, 116, 116, 116, 142, 113, 110, 106, 144, 118, 123, 131, 108, 120, 114, 117, 126, 120, 91, 109, 118, 109, 118, 125, 134, 124, 117, 110, 106, 116, 114, 113, 111, 110, 99, 111, 107, 139, 118, 114, 125, 98, 117, 115, 115, 91, 118, 111, 118, 116, 116, 112, 113, 116, 114, 116, 112, 113, 127, 115, 117, 127, 107, 114, 110, 121, 118, 107, 129, 114, 113, 112, 128, 95, 112, 151, 126, 118, 111, 126, 109, 113, 115, 122, 122, 109, 124, 123, 126, 120, 111, 110, 77, 119, 118, 120, 107, 128, 121, 110, 121, 103, 120, 117, 147, 112, 114, 124, 113, 116, 108, 121, 120, 143, 118, 116, 124, 117, 117, 115, 125, 114, 110, 119, 121, 110, 113, 102, 129, 107, 102, 121, 120, 107, 117, 112, 125, 104, 115, 109, 123, 118, 123, 105, 111, 121, 117, 112, 106, 115, 117, 100, 129, 110, 119, 133, 108, 120, 113, 131, 119, 107, 110, 137, 118, 113, 77, 114, 118, 121, 117, 133, 99, 110, 115, 109, 102, 122, 111, 133, 105, 108, 98, 117, 99, 107, 106, 117, 111, 105, 112, 122, 114, 114, 124, 104, 111, 120, 142, 105, 116, 129, 121, 113, 112, 124, 118, 112, 118, 104, 115, 118, 104, 126, 106, 134, 113, 96, 111, 109, 120, 112, 113, 109, 106, 118, 118, 121, 99, 122, 118, 113, 118, 114, 127, 120, 115, 109, 117, 117, 119, 118, 125, 126, 121, 103, 120, 110, 125, 117, 117, 113, 115, 103, 128, 115, 113, 106, 118, 122, 112, 108, 129, 120, 106, 121, 121, 111, 97, 113, 106, 112, 127, 119, 100, 112, 119, 111, 123, 122, 114, 127, 116, 125, 115, 114, 113, 107, 125, 117, 125, 108, 116, 106, 124, 126, 93, 127, 118, 136, 119, 130, 122, 119, 111, 122, 117, 119, 105, 112, 109, 115, 119, 98, 119, 118, 120, 111, 119, 118, 132, 125, 113, 110, 106, 110, 122, 128, 125, 113, 116, 115, 123, 131, 115, 108, 127, 119, 109, 110, 107, 114, 117, 110, 117, 122, 108, 115, 114, 115, 112, 122, 110, 104, 117, 114, 131, 115, 116, 120, 111, 115, 118, 112, 107, 119, 113, 121, 126, 117, 128, 116, 127, 106, 99, 118, 115, 108, 123, 95, 116, 113, 113, 120, 104, 130, 111, 134, 119, 119, 132, 111, 120, 118, 118, 112, 121, 111, 117, 109, 117, 107, 120, 110, 114, 119, 99, 121, 111, 126, 103, 131, 143, 114, 113, 113, 120, 114, 100, 111, 120, 112, 119, 112, 119, 115, 121, 112, 116, 118, 128, 100, 116, 128, 113, 117, 123, 104, 116, 127, 118, 137, 128, 106, 119, 112, 127, 118, 110, 102, 118, 138, 110, 112, 115, 119, 105, 121, 121, 107, 112, 132, 127, 126, 107, 120, 114, 107, 124, 117, 115, 111, 118, 124, 109, 107, 115, 117, 122, 120, 107, 106, 118, 125, 98, 125, 115, 120, 116, 110, 100, 102, 112, 109, 113, 113, 116, 105, 121, 114, 114, 128, 101, 114, 125, 115, 123, 118, 110, 119, 126, 107, 114, 121, 111, 116, 112, 104, 112, 117, 114, 114, 136, 117, 121, 124, 119, 114, 126, 105, 118, 105, 115, 101, 100, 114, 114, 111, 123, 115, 127, 125, 118, 117, 108, 108, 106, 117, 112, 123, 120, 111, 110, 105, 116, 119, 91, 115, 148, 114, 111, 123, 106, 109, 128, 123, 135, 111, 120, 114, 113, 122, 102, 115, 115, 93, 115, 113, 114, 123, 118, 119, 121, 105, 114, 118, 117, 118, 118, 108, 125, 115, 112, 121, 124, 112, 116, 116, 110, 105, 117, 121, 126, 110, 115, 103, 126, 114, 106, 123, 111, 110, 113, 122, 126, 131, 109, 105, 115, 114, 123, 109, 117, 113, 118, 112, 124, 118, 118, 110, 118, 120, 125, 128, 101, 113, 125, 123, 123, 109, 125, 138, 102, 120, 114, 119, 111, 113, 118, 122, 118, 95, 113, 118, 122, 105, 104, 110, 112, 127, 112, 111, 112, 119, 126, 117, 118, 129, 114, 117, 111, 116, 129, 113, 115, 126, 126, 121, 109, 120, 134, 116, 120, 123, 126, 108, 103, 127, 115, 108, 117, 112, 110, 120, 109, 122, 97, 111, 107, 104, 112, 113, 107, 114, 123, 105, 99, 112, 115, 115, 125, 114, 118, 120, 123, 108, 111, 116, 102, 120, 119, 139, 126, 121, 111, 117, 120, 133, 120, 107, 113, 121, 131, 113, 106, 119, 103, 128, 126, 118, 114, 130, 110, 115, 113, 115, 119, 113, 119, 118, 117, 104, 104, 114, 111, 139, 104, 180, 121, 121, 108, 116, 131, 112, 116, 107, 116, 118, 108, 114, 109, 114, 122, 118, 115, 109, 116, 115, 117, 109, 114, 111, 119, 107, 109, 129, 116, 118, 118, 117, 116, 113, 111, 99, 102, 107, 118, 111, 117, 121, 130, 110, 115, 100, 120, 120, 125, 107, 124, 118, 112, 117, 117, 127, 105, 111, 109, 103, 115, 108, 133, 107, 118, 123, 109, 103, 116, 130, 109, 92, 116, 117, 125, 109, 101, 119, 114, 118, 123, 113, 110, 119, 120, 127, 119, 107, 102, 109, 135, 105, 115, 111, 111, 114, 100, 117, 108, 123, 123, 105, 113, 123, 119, 121, 111, 105, 113, 140, 99, 108, 97, 113, 123, 114, 125, 109, 117, 113, 111, 118, 134, 121, 100, 107, 137, 111, 110, 111, 118, 124, 116, 117, 104, 122, 120, 103, 133, 112, 114, 105, 110, 111, 127, 121, 124, 117, 119, 110, 113, 93, 105, 121, 115, 115, 112, 117, 112, 139, 109, 119, 132, 110, 115, 112, 112, 108, 116, 126, 118, 103, 111, 116, 118, 118, 118, 113, 121, 110, 117, 110, 112, 122, 121, 114, 109, 107, 119, 118, 111, 111, 110, 121, 99, 117, 123, 104, 117, 108, 125, 115, 113, 115, 114, 90, 117, 113, 121, 121, 113, 116, 111, 111, 120, 117, 120, 145, 106, 115, 119, 112, 116, 121, 112, 106, 128, 125, 115, 109, 129, 109, 108, 108, 126, 111, 116, 115, 112, 118, 116, 103, 114, 116, 116, 115, 109, 114, 108, 110, 121, 138, 115, 131, 114, 112, 106, 128, 122, 110, 93, 104, 109, 105, 105, 113, 116, 113, 111, 109, 117, 117, 122, 115, 110, 116, 95, 111, 111, 163, 120, 132, 120, 112, 104, 113, 109, 113, 99, 131, 108, 110, 116, 113, 105, 108, 124, 105, 101, 112, 114, 104, 113, 109, 119, 136, 125, 109, 132, 127, 100, 117, 119, 113, 119, 103, 122, 117, 108, 100, 144, 114, 104, 107, 112, 130, 108, 115, 109, 113, 108, 117, 110, 121, 135, 104, 111, 100, 111, 124, 112, 124, 114, 117, 118, 111, 108, 129, 103, 124, 114, 109, 116, 109, 128, 110, 105, 114, 114, 112, 128, 112, 99, 96, 110, 117, 99, 94, 114, 130, 108, 111, 114, 112, 126, 95, 110, 120, 115, 113, 110, 110, 98, 114, 117, 124, 110, 118, 121, 121, 120, 130, 127, 110, 112, 115, 109, 116, 131, 114, 128, 115, 123, 111, 113, 135, 117, 103, 127, 122, 117, 113, 117, 117, 111, 114, 118, 105, 122, 92, 110, 106, 115, 114, 115, 116, 112, 118, 110, 136, 142, 105, 118, 94, 129, 100, 112, 115, 127, 111, 115, 121, 122, 100, 118, 116, 116, 108, 117, 117, 106, 130, 134, 117, 125, 111, 123, 117, 116, 107, 128, 124, 110, 119, 117, 135, 117, 119, 140, 108, 118, 111, 106, 112, 100, 112, 110, 118, 124, 103, 93, 129, 96, 103, 123, 118, 99, 120, 117, 102, 124, 120, 132, 125, 106, 109, 106, 114, 103, 103, 113, 121, 118, 117, 108, 122, 130, 115, 109, 123, 102, 119, 110, 119, 122, 125, 118, 111, 116, 115, 124, 124, 107, 114, 124, 122, 102, 116, 104, 126, 121, 112, 121, 119, 101, 112, 116, 113, 106, 116, 106, 110, 125, 110, 103, 111, 124, 115, 117, 130, 125, 116, 125, 110, 117, 127, 122, 125, 119, 134, 117, 119, 131, 124, 111, 115, 116, 124, 133, 127, 107, 119, 123, 102, 115, 115, 116, 119, 115, 114, 118, 116, 118, 113, 111, 132, 135, 113, 98, 116, 101, 112, 122, 116, 134, 110, 128, 120, 115, 113, 104, 113, 107, 129, 114, 108, 135, 120, 111, 109, 113, 126, 109, 114, 120, 115, 122, 120, 119, 107, 120, 118, 118, 118, 109, 115, 116, 119, 105, 120, 111, 117, 111, 118, 113, 117, 120, 104, 123, 115, 101, 124, 112, 128, 115, 115, 128, 111, 125, 119, 101, 113, 118, 107, 126, 117, 109, 121, 109, 123, 124, 109, 114, 108, 116, 117, 118, 111, 131, 106, 113, 113, 113, 108, 111, 110, 111, 120, 125, 119, 116, 106, 127, 121, 128, 122, 117, 107, 125, 121, 104, 118, 123, 119, 110, 111, 135, 114, 108, 116, 116, 106, 113, 112, 113, 120, 113, 126, 109, 128, 114, 117, 132, 113, 114, 114, 114, 107, 106, 130, 126, 116, 114, 113, 103, 107, 112, 128, 127, 117, 129, 110, 117, 116, 105, 119, 110, 113, 110, 120, 107, 115, 115, 119, 118, 118, 115, 114, 117, 116, 113, 116, 116, 118, 109, 112, 125, 127, 119, 113, 100, 121, 122, 124, 106, 101, 111, 115, 121, 108, 107, 118, 109, 111, 119, 131, 126, 103, 118, 111, 120, 116, 115, 119, 122, 116, 120, 118, 123, 114, 111, 109, 110, 110, 122, 124, 120, 110, 111, 116, 108, 132, 132, 127, 106, 118, 110, 112, 126, 126, 112, 115, 118, 109, 109, 127, 115, 105, 116, 109, 109, 124, 109, 108, 117, 117, 108, 120, 121, 121, 114, 126, 141, 123, 131, 118, 120, 111, 111, 108, 112, 104, 120, 121, 126, 100, 104, 113, 111, 118, 123, 121, 110, 121, 109, 115, 118, 105, 111, 111, 113, 119, 124, 122, 106, 106, 116, 126, 108, 124, 122, 108, 120, 120, 132, 126, 118, 116, 113, 121, 129, 124, 114, 126, 108, 123, 122, 110, 114, 128, 110, 115, 121, 120, 108, 106, 106, 100, 108, 109, 128, 131, 126, 98, 119, 114, 109, 122, 111, 114, 115, 103, 125, 112, 101, 112, 135, 117, 117, 120, 112, 107, 120, 112, 114, 123, 108, 120, 126, 118, 111, 113, 117, 95, 104, 123, 125, 125, 105, 124, 119, 126, 113, 118, 115, 119, 123, 106, 112, 123, 121, 109, 114, 106, 115, 120, 96, 97, 116, 114, 107, 92, 117, 111, 115, 114, 111, 115, 134, 108, 111, 111, 116, 127, 121, 142, 124, 123, 116, 109, 117, 112, 118, 108, 111, 116, 127, 111, 107, 120, 116, 128, 118, 116, 129, 128, 118, 116, 125, 119, 106, 112, 117, 113, 119, 112, 120, 134, 119, 107, 100, 129, 109, 119, 115, 105, 117, 88, 113, 118, 119, 104, 114, 113, 119, 106, 108, 117, 104, 119, 117, 139, 106, 105, 131, 103, 117, 119, 110, 110, 110, 111, 114, 115, 111, 119, 105, 122, 123, 114, 109, 120, 114, 110, 116, 108, 106, 100, 110, 119, 112, 114, 115, 120, 125, 116, 106, 115, 112, 107, 113, 108, 119, 115, 148, 101, 121, 109, 109, 125, 117, 116, 123, 115, 104, 106, 135, 126, 98, 120, 120, 104, 123, 120, 111, 98, 134, 101, 119, 115, 116, 152, 111, 105, 121, 122, 131, 112, 117, 109, 127, 105, 114, 128, 104, 114, 114, 117, 105, 104, 113, 127, 119, 117, 111, 106, 121, 102, 118, 112, 104, 117, 117, 115, 120, 118, 125, 117, 123, 109, 122, 122, 104, 112, 109, 114, 109, 129, 113, 120, 113, 115, 136, 121, 117, 125, 114, 115, 110, 119, 105, 135, 131, 115, 109, 110, 119, 99, 156, 118, 111, 115, 121, 130, 111, 127, 111, 108, 117, 120, 132, 114, 119, 110, 126, 108, 113, 96, 137, 110, 108, 123, 126, 108, 127, 112, 108, 111, 108, 125, 111, 105, 120, 113, 128, 110, 130, 121, 106, 111, 111, 107, 116, 110, 114, 97, 107, 106, 130, 94, 127, 107, 109, 112, 107, 129, 123, 109, 120, 106, 131, 132, 99, 112, 112, 122, 110, 119, 114, 117, 106, 127, 99, 131, 118, 108, 113, 119, 118, 114, 112, 122, 105, 109, 115, 117, 103, 119, 115, 107, 122, 120, 100, 123, 121, 121, 109, 114, 110, 111, 118, 128, 119, 107, 111, 114, 131, 109, 118, 118, 91, 122, 122, 103, 129, 112, 108, 134, 120, 117, 125, 110, 119, 130, 113, 124, 110, 122, 115, 123, 100, 110, 115, 99, 106, 118, 111, 104, 114, 121, 115, 122, 131, 124, 113, 106, 108, 110, 105, 109, 116, 118, 101, 112, 122, 122, 113, 116, 119, 138, 114, 109, 114, 103, 97, 120, 106, 125, 111, 120, 124, 119, 116, 98, 119, 104, 105, 111, 101, 106, 105, 107, 114, 101, 100, 116, 103, 126, 106, 124, 119, 124, 118, 103, 117, 122, 121, 114, 101, 118, 116, 110, 108, 115, 107, 116, 120, 108, 124, 122, 114, 126, 112, 119, 127, 96, 122, 123, 105, 122, 124, 116, 113, 119, 115, 123, 117, 132, 115, 111, 106, 116, 130, 112, 105, 109, 97, 111, 113, 109, 126, 117, 113, 103, 110, 114, 104, 112, 127, 96, 102, 132, 116, 115, 112, 132, 132, 113, 116, 110, 109, 120, 104, 157, 98, 118, 100, 111, 107, 116, 106, 110, 114, 129, 111, 119, 114, 116, 113, 128, 113, 94, 124, 111, 101, 110, 116, 112, 117, 100, 106, 89, 133, 110, 130, 108, 108, 108, 129, 117, 116, 109, 110, 106, 116, 109, 131, 134, 110, 102, 123, 120, 101, 104, 108, 121, 111, 112, 115, 124, 116, 113, 113, 129, 108, 124, 107, 106, 116, 113, 106, 110, 97, 107, 98, 114, 130, 116, 118, 93, 120, 103, 128, 122, 121, 111, 111, 105, 121, 120, 104, 122, 110, 144, 115, 104, 126, 110, 118, 132, 112, 117, 108, 117, 105, 100, 126, 111, 128, 102, 110, 105, 105, 129, 104, 123, 128, 100, 116, 108, 103, 131, 108, 107, 136, 112, 131, 111, 116, 113, 121, 104, 108, 110, 116, 112, 119, 110, 125, 112, 120, 121, 122, 108, 111, 114, 113, 118, 110, 128, 112, 120, 130, 117, 113, 118, 114, 113, 106, 108, 115, 129, 110, 103, 120, 125, 108, 99, 108, 109, 132, 115, 106, 126, 106, 105, 103, 112, 109, 119, 124, 131, 117, 112, 100, 114, 116, 116, 117, 100, 128, 90, 128, 105, 122, 127, 97, 92, 115, 97, 142, 114, 110, 113, 114, 125, 107, 111, 105, 109, 108, 104, 101, 98, 117, 118, 98, 124, 116, 123, 107, 103, 105, 100, 91, 123, 122, 120, 115, 96, 107, 117, 116, 118, 105, 104, 108, 105, 102, 109, 120, 121, 116, 117, 114, 119, 112, 113, 133, 133, 113, 107, 119, 108, 119, 110, 117, 105, 111, 100, 109, 138, 111, 115, 115, 111, 117, 127, 108, 111, 101, 124, 108, 115, 123, 106, 122, 112, 122, 105, 114, 119, 110, 102, 115, 119, 124, 111, 117, 103, 126, 105, 109, 106, 105, 103, 116, 116, 116, 112, 107, 109, 117, 117, 121, 126, 119, 92, 123, 125, 101, 124, 126, 121, 108, 118, 142, 120, 115, 118, 129, 112, 97, 113, 120, 111, 122, 117, 123, 111, 120, 130, 104, 131, 113, 126, 116, 123, 112, 116, 98, 114, 148, 125, 105, 115, 117, 136, 125, 114, 113, 96, 105, 124, 119, 117, 104, 101, 108, 112, 119, 135, 116, 98, 115, 118, 124, 128, 110, 114, 150, 117, 109, 104, 102, 114, 118, 107, 118, 126, 99, 136, 113, 106, 106, 104, 122, 136, 124, 113, 116, 107, 108, 122, 124, 121, 73, 114, 100, 104, 117, 109, 126, 116, 100, 122, 93, 105, 99, 121, 123, 109, 120, 101, 109, 120, 119, 112, 114, 113, 124, 109, 108, 104, 112, 129, 152, 119, 111, 123, 112, 113, 90, 116, 132, 113, 97, 113, 116, 106, 113, 110, 102, 127, 127, 119, 117, 103, 118, 125, 120, 113, 110, 109, 129, 107, 125, 107, 104, 117, 111, 128, 114, 122, 113, 128, 108, 131, 113, 113, 114, 122, 119, 114, 131, 103, 121, 127, 107, 112, 112, 110, 122, 108, 101, 118, 112, 123, 115, 138, 124, 111, 119, 112, 124, 129, 120, 107, 131, 117, 116, 111, 130, 116, 131, 130, 119, 127, 111, 111, 104, 128, 97, 97, 86, 130, 129, 108, 114, 108, 130, 117, 123, 100, 115, 104, 112, 126, 109, 111, 115, 88, 134, 111, 117, 120, 97, 109, 127, 130, 125, 132, 122, 117, 138, 112, 100, 110, 115, 130, 114, 122, 116, 113, 107, 115, 116, 112, 109, 115, 112, 122, 118, 117, 115, 118, 113, 111, 105, 121, 118, 115, 109, 116, 110, 114, 106, 112, 117, 114, 106, 117, 117, 117, 113, 118, 122, 114, 117, 116, 113, 120, 120, 120, 116, 118, 119, 118, 120, 109, 116, 116, 113, 113, 113, 116, 119, 112, 102, 125, 114, 118, 104, 110, 115, 115, 124, 122, 115, 122, 126, 131, 112, 117, 114, 114, 120, 128, 115, 120, 101, 119, 119, 114, 122, 116, 112, 116, 118, 103, 123, 114, 121, 118, 109, 114, 116, 118, 108, 93, 105, 116, 116, 117, 117, 107, 116, 103, 114, 129, 116, 111, 125, 107, 112, 111, 119, 103, 110, 123, 127, 113, 116, 117, 118, 107, 115, 118, 116, 116, 117, 110, 121, 119, 113, 110, 130, 125, 121, 126, 112, 117, 115, 122, 117, 118, 129, 115, 117, 99, 117, 124, 128, 111, 120, 116, 119, 118, 118, 116, 121, 114, 118, 111, 120, 114, 114, 118, 116, 117, 118, 113, 114, 113, 110, 110, 105, 115, 121, 117, 113, 132, 121, 116, 117, 111, 119, 114, 142, 114, 115, 117, 109, 114, 119, 118, 121, 91, 118, 113, 105, 116, 112, 107, 123, 119, 118, 124, 121, 111, 117, 116, 115, 113, 118, 102, 114, 120, 107, 114, 122, 114, 108, 109, 119, 105, 107, 119, 117, 105, 111, 115, 117, 115, 121, 110, 120, 114, 115, 116, 112, 112, 114, 108, 109, 125, 151, 128, 116, 117, 111, 117, 110, 114, 103, 117, 106, 124, 110, 125, 115, 119, 118, 119, 116, 112, 124, 122, 115, 121, 113, 117, 110, 112, 114, 111, 111, 124, 119, 122, 102, 120, 120, 118, 117, 118, 110, 114, 106, 118, 115, 111, 86, 109, 131, 116, 114, 118, 112, 122, 112, 127, 114, 116, 110, 112, 117, 115, 96, 108, 109, 116, 113, 115, 130, 111, 121, 117, 146, 117, 121, 114, 115, 119, 117, 116, 112, 116, 116, 121, 123, 122, 120, 120, 112, 117, 132, 114, 120, 119, 126, 119, 101, 116, 113, 110, 117, 114, 122, 114, 114, 110, 113, 118, 112, 112, 115, 117, 122, 130, 109, 112, 118, 115, 116, 119, 117, 84, 119, 100, 118, 117, 113, 112, 121, 125, 123, 118, 115, 100, 117, 110, 122, 118, 119, 117, 151, 114, 121, 114, 123, 111, 115, 122, 114, 113, 112, 113, 126, 138, 117, 114, 115, 114, 120, 111, 116, 87, 122, 110, 116, 117, 117, 118, 116, 116, 124, 115, 120, 114, 114, 115, 112, 117, 115, 111, 88, 113, 120, 113, 114, 119, 118, 118, 117, 116, 120, 113, 112, 112, 124, 114, 117, 115, 125, 120, 115, 123, 115, 117, 115, 123, 119, 118, 121, 113, 111, 112, 120, 119, 119, 117, 117, 121, 118, 118, 114, 115, 125, 104, 121, 113, 116, 113, 120, 116, 116, 117, 112, 120, 113, 118, 116, 116, 112, 110, 85, 119, 118, 111, 119, 117, 119, 119, 109, 116, 117, 122, 117, 125, 89, 113, 110, 117, 116, 117, 111, 115, 117, 114, 111, 119, 123, 120, 124, 113, 123, 117, 107, 122, 119, 113, 130, 115, 118, 113, 109, 103, 118, 107, 109, 114, 105, 114, 117, 115, 134, 110, 103, 122, 110, 108, 109, 130, 118, 123, 118, 133, 125, 108, 113, 120, 110, 107, 114, 113, 120, 118, 120, 104, 143, 107, 114, 119, 128, 118, 115, 94, 122, 117, 122, 128, 129, 121, 117, 111, 118, 136, 130, 110, 122, 121, 115, 127, 102, 117, 123, 132, 114, 120, 111, 117, 110, 111, 132, 111, 117, 118, 122, 119, 109, 116, 121, 127, 112, 115, 119, 118, 128, 113, 122, 103, 113, 112, 108, 112, 117, 115, 115, 114, 119, 102, 108, 108, 112, 121, 111, 121, 129, 118, 108, 110, 112, 122, 111, 117, 131, 115, 107, 116, 118, 129, 124, 112, 127, 120, 112, 114, 115, 129, 117, 122, 114, 114, 108, 121, 124, 119, 124, 122, 114, 121, 114, 104, 124, 100, 111, 120, 115, 111, 120, 118, 108, 111, 113, 114, 114, 109, 125, 121, 116, 112, 116, 110, 118, 110, 124, 114, 116, 106, 107, 119, 123, 107, 111, 116, 143, 119, 106, 121, 110, 111, 116, 117, 117, 128, 113, 119, 110, 114, 114, 123, 113, 122, 117, 129, 122, 137, 120, 111, 114, 110, 119, 115, 106, 116, 99, 113, 107, 104, 112, 119, 111, 120, 122, 119, 125, 108, 121, 123, 114, 116, 105, 129, 121, 106, 143, 108, 112, 118, 117, 113, 110, 122, 97, 122, 119, 116, 111, 107, 128, 100, 109, 107, 112, 115, 116, 110, 120, 126, 108, 111, 118, 114, 116, 110, 132, 113, 126, 112, 119, 117, 112, 124, 110, 117, 114, 107, 125, 112, 118, 111, 106, 122, 109, 109, 118, 116, 116, 108, 123, 123, 123, 119, 120, 105, 111, 120, 118, 133, 118, 109, 121, 107, 95, 121, 121, 112, 122, 109, 125, 114, 114, 120, 126, 109, 126, 126, 110, 103, 124, 115, 118, 130, 109, 143, 116, 108, 113, 115, 121, 111, 110, 110, 111, 116, 120, 118, 120, 102, 124, 118, 120, 113, 119, 125, 126, 119, 114, 114, 124, 106, 105, 116, 117, 114, 118, 105, 118, 130, 120, 106, 108, 114, 107, 102, 119, 115, 123, 106, 123, 100, 176, 110, 123, 119, 128, 107, 113, 114, 99, 115, 113, 110, 115, 131, 112, 122, 116, 127, 112, 115, 118, 113, 111, 114, 110, 117, 110, 121, 117, 126, 74, 108, 154, 121, 109, 118, 127, 128, 110, 118, 119, 122, 118, 113, 107, 120, 112, 110, 111, 115, 111, 105, 130, 114, 111, 107, 128, 113, 115, 105, 101, 112, 119, 128, 117, 117, 122, 124, 108, 105, 103, 113, 122, 121, 116, 115, 122, 111, 116, 116, 117, 119, 113, 116, 120, 120, 109, 115, 115, 115, 119, 108, 114, 117, 111, 105, 115, 108, 128, 122, 114, 127, 119, 115, 118, 118, 114, 113, 114, 103, 115, 130, 127, 120, 117, 116, 123, 125, 117, 104, 125, 113, 107, 121, 113, 115, 103, 128, 118, 111, 110, 122, 148, 118, 116, 113, 120, 115, 118, 120, 116, 112, 111, 132, 110, 118, 101, 108, 114, 106, 122, 113, 109, 106, 123, 111, 118, 122, 110, 110, 106, 106, 99, 129, 126, 113, 108, 112, 107, 126, 108, 118, 119, 139, 103, 120, 137, 105, 119, 129, 112, 96, 123, 123, 107, 119, 124, 118, 122, 116, 115, 112, 131, 108, 113, 104, 120, 123, 124, 111, 110, 113, 120, 103, 104, 111, 103, 116, 106, 116, 115, 107, 119, 111, 111, 119, 119, 123, 112, 115, 93, 99, 124, 111, 113, 113, 110, 120, 125, 116, 116, 123, 105, 100, 117, 131, 108, 121, 120, 110, 108, 118, 124, 130, 107, 116, 104, 125, 116, 116, 114, 115, 109, 123, 129, 118, 126, 116, 129, 122, 81, 126, 125, 119, 116, 128, 119, 118, 107, 102, 113, 119, 118, 107, 111, 121, 125, 125, 109, 114, 116, 117, 110, 122, 125, 109, 114, 99, 139, 125, 114, 109, 133, 108, 120, 122, 130, 112, 113, 103, 133, 118, 121, 122, 123, 123, 103, 113, 119, 132, 106, 110, 121, 106, 95, 139, 102, 103, 113, 137, 135, 114, 105, 111, 112, 114, 140, 113, 118, 108, 104, 113, 118, 108, 128, 121, 104, 118, 107, 116, 120, 111, 112, 115, 125, 141, 115, 128, 119, 97, 114, 116, 121, 140, 155, 109, 112, 116, 112, 112, 117, 125, 107, 116, 108, 100, 118, 108, 117, 120, 109, 106, 115, 118, 128, 110, 117, 112, 107, 116, 109, 109, 111, 110, 119, 107, 104, 109, 111, 131, 112, 106, 112, 128, 109, 116, 116, 114, 124, 112, 110, 87, 117, 134, 121, 131, 115, 123, 123, 99, 127, 129, 119, 116, 123, 122, 113, 120, 91, 114, 122, 119, 107, 112, 120, 107, 127, 120, 107, 124, 134, 117, 128, 117, 116, 110, 124, 118, 109, 95, 101, 100, 112, 119, 144, 112, 117, 107, 121, 116, 117, 113, 121, 118, 109, 113, 107, 124, 116, 126, 128, 101, 127, 119, 128, 122, 117, 111, 126, 115, 118, 114, 132, 105, 125, 117, 119, 128, 104, 97, 119, 114, 108, 130, 110, 114, 108, 120, 115, 105, 133, 115, 122, 120, 127, 132, 114, 125, 96, 121, 125, 122, 116, 112, 120, 105, 113, 104, 105, 108, 117, 127, 92, 128, 113, 126, 124, 105, 123, 128, 115, 108, 106, 117, 112, 115, 132, 95, 128, 109, 123, 134, 112, 122, 125, 114, 132, 112, 116, 109, 112, 118, 124, 107, 98, 110, 121, 118, 117, 115, 110, 127, 106, 116, 126, 129, 133, 115, 109, 124, 117, 107, 113, 129, 116, 115, 100, 116, 114, 95, 116, 104, 128, 120, 99, 117, 111, 145, 125, 124, 109, 118, 128, 135, 117, 113, 117, 112, 109, 116, 121, 123, 125, 116, 118, 112, 118, 103, 93, 103, 108, 131, 108, 106, 79, 127, 113, 104, 120, 99, 120, 111, 112, 117, 110, 104, 132, 135, 111, 111, 117, 101, 133, 120, 119, 112, 110, 119, 137, 131, 118, 108, 118, 117, 135, 107, 105, 121, 125, 105, 122, 113, 121, 107, 146, 103, 124, 108, 125, 119, 118, 125, 123, 116, 120, 121, 121, 107, 124, 123, 118, 112, 118, 112, 117, 113, 118, 103, 111, 104, 120, 104, 120, 115, 119, 111, 108, 107, 100, 109, 103, 136, 119, 107, 113, 130, 113, 112, 128, 113, 110, 109, 117, 104, 116, 119, 119, 108, 114, 127, 142, 122, 122, 111, 143, 122, 93, 117, 102, 110, 103, 103, 123, 129, 118, 114, 104, 121, 124, 121, 121, 111, 108, 121, 122, 102, 130, 131, 116, 113, 118, 109, 107, 129, 121, 102, 106, 104, 108, 130, 131, 125, 109, 113, 107, 111, 107, 117, 104, 124, 109, 121, 92, 126, 113, 113, 121, 118, 110, 112, 119, 131, 131, 145, 122, 106, 115, 117, 118, 100, 116, 115, 129, 108, 120, 124, 143, 134, 127, 109, 107, 98, 138, 110, 119, 107, 115, 107, 126, 116, 114, 131, 122, 126, 119, 100, 98, 95, 119, 119, 105, 117, 103, 103, 104, 124, 115, 104, 119, 103, 120, 121, 117, 125, 110, 112, 105, 110, 124, 105, 104, 117, 119, 113, 113, 111, 122, 131, 121, 101, 122, 121, 115, 120, 112, 109, 108, 107, 105, 112, 120, 116, 114, 98, 111, 100, 113, 116, 121, 95, 134, 110, 114, 122, 103, 128, 119, 124, 124, 102, 99, 119, 116, 125, 106, 122, 118, 109, 108, 116, 117, 110, 118, 122, 139, 125, 123, 133, 126, 124, 121, 139, 124, 107, 107, 115, 119, 107, 125, 126, 120, 107, 110, 118, 107, 134, 125, 109, 138, 108, 136, 108, 112, 108, 116, 122, 107, 128, 107, 109, 118, 120, 118, 111, 116, 109, 112, 98, 121, 123, 128, 117, 110, 122, 117, 111, 132, 96, 119, 129, 109, 123, 111, 120, 111, 111, 125, 122, 139, 129, 120, 121, 116, 119, 119, 111, 122, 114, 140, 125, 102, 118, 114, 116, 113, 119, 115, 106, 110, 117, 107, 117, 163, 106, 110, 125, 113, 127, 113, 112, 110, 144, 111, 117, 101, 111, 138, 121, 117, 116, 110, 116, 130, 111, 109, 118, 110, 116, 121, 115, 109, 118, 140, 114, 111, 113, 120, 121, 115, 104, 117, 113, 107, 124, 108, 110, 101, 107, 108, 109, 144, 99, 115, 109, 103, 114, 115, 114, 115, 120, 113, 127, 129, 120, 117, 105, 124, 126, 124, 104, 115, 114, 121, 104, 115, 113, 127, 99, 89, 103, 130, 118, 108, 119, 114, 120, 117, 124, 100, 133, 108, 114, 120, 103, 122, 114, 117, 108, 113, 116, 97, 105, 106, 116, 108, 110, 128, 109, 120, 107, 101, 106, 109, 104, 136, 115, 106, 96, 109, 116, 91, 104, 124, 120, 106, 118, 135, 119, 99, 115, 111, 111, 89, 114, 125, 128, 113, 115, 90, 101, 132, 119, 107, 130, 115, 125, 99, 138, 133, 117, 110, 124, 94, 127, 122, 108, 116, 111, 116, 119, 113, 116, 124, 113, 130, 124, 108, 104, 123, 117, 98, 117, 116, 114, 124, 107, 116, 112, 106, 99, 113, 119, 104, 111, 135, 100, 103, 111, 116, 121, 126, 114, 114, 120, 121, 123, 116, 117, 113, 114, 95, 133, 147, 129, 119, 112, 129, 132, 127, 119, 136, 123, 131, 93, 118, 101, 130, 112, 112, 107, 107, 110, 105, 120, 127, 154, 113, 117, 115, 126, 127, 116, 103, 107, 117, 120, 113, 116, 112, 90, 126, 125, 113, 112, 101, 112, 116, 115, 112, 99, 107, 106, 110, 112, 114, 111, 119, 130, 117, 108, 115, 99, 112, 124, 161, 129, 111, 104, 99, 95, 146, 109, 119, 120, 119, 114, 118, 125, 118, 120, 104, 121, 124, 104, 101, 113, 122, 119, 115, 119, 120, 117, 109, 120, 127, 104, 119, 124, 108, 120, 121, 103, 121, 114, 116, 105, 102, 113, 109, 111, 130, 115, 110, 116, 137, 106, 118, 113, 112, 115, 109, 113, 120, 110, 114, 124, 122, 116, 113, 110, 147, 117, 109, 103, 118, 117, 124, 121, 109, 140, 112, 114, 125, 119, 111, 102, 114, 91, 122, 120, 110, 121, 109, 130, 109, 119, 114, 132, 101, 119, 108, 138, 114, 102, 119, 130, 112, 104, 110, 117, 116, 129, 112, 145, 123, 115, 113, 128, 116, 111, 113, 102, 117, 113, 119, 106, 108, 92, 126, 117, 102, 135, 116, 119, 122, 100, 104, 121, 100, 123, 113, 97, 116, 125, 108, 135, 114, 128, 98, 95, 134, 113, 117, 123, 99, 125, 130, 101, 120, 120, 114, 137, 102, 118, 111, 123, 111, 119, 127, 105, 115, 122, 107, 98, 125, 119, 125, 118, 136, 113, 111, 119, 118, 124, 109, 110, 102, 122, 113, 122, 132, 114, 127, 125, 110, 131, 114, 122, 112, 119, 92, 109, 122, 139, 110, 128, 111, 121, 135, 114, 112, 115, 116, 102, 102, 116, 117, 94, 94, 110, 124, 110, 114, 115, 140, 102, 129, 129, 160, 121, 101, 112, 111, 106, 113, 145, 104, 123, 129, 135, 106, 99, 114, 108, 118, 126, 118, 129, 126, 117, 112, 126, 112, 126, 121, 163, 126, 106, 120, 129, 110, 124, 130, 102, 93, 125, 102, 120, 109, 98, 123, 120, 136, 110, 124, 152, 110, 119, 99, 101, 107, 121, 121, 124, 127, 122, 127, 111, 122, 101, 106, 125, 119, 118, 104, 114, 118, 112, 104, 112, 124, 120, 141, 111, 93, 125, 105, 105, 110, 125, 114, 106, 99, 109, 135, 105, 115, 113, 135, 106, 125, 127, 122, 123, 110, 114, 113, 111, 118, 95, 107, 136, 104, 122, 120, 101, 116, 116, 121, 128, 101, 104, 126, 109, 106, 111, 109, 115, 122, 114, 115, 125, 115, 108, 116, 97, 98, 107, 127, 114, 89, 114, 106, 116, 121, 112, 126, 125, 122, 122, 122, 114, 113, 116, 112, 119, 110, 108, 99, 123, 113, 122, 122, 115, 128, 96, 110, 119, 118, 111, 117, 127, 119, 126, 114, 107, 127, 104, 105, 120, 113, 93, 111, 115, 110, 135, 111, 128, 136, 113, 105, 119, 101, 134, 104, 111, 124, 116, 97, 126, 127, 127, 119, 117, 111, 130, 130, 125, 121, 114, 119, 109, 115, 114, 113, 125, 113, 113, 114, 114, 108, 115, 123, 119, 124, 120, 112, 120, 119, 129, 110, 124, 132, 107, 112, 103, 111, 127, 129, 113, 122, 120, 105, 110, 102, 105, 108, 105, 109, 123, 109, 104, 101, 126, 123, 103, 113, 114, 114, 132, 106, 106, 114, 107, 119, 121, 115, 125, 119, 123, 123, 130, 125, 109, 119, 112, 124, 106, 97, 127, 105, 118, 118, 112, 120, 117, 109, 109, 122, 114, 116, 113, 119, 105, 113, 103, 109, 134, 106, 115, 111, 121, 116, 124, 122, 108, 103, 124, 119, 121, 102, 119, 118, 129, 121, 101, 108, 96, 110, 112, 107, 118, 113, 113, 132, 107, 117, 116, 112, 109, 102, 112, 125, 116, 104, 113, 125, 111, 102, 115, 114, 123, 107, 139, 119, 118, 121, 122, 111, 114, 102, 105, 126, 108, 114, 116, 113, 111, 116, 107, 122, 137, 116, 133, 109, 116, 110, 113, 130, 115, 118, 113, 122, 142, 109, 117, 113, 107, 113, 117, 103, 111, 115, 118, 124, 121, 117, 107, 128, 120, 115, 112, 119, 111, 95, 122, 122, 118, 109, 116, 106, 107, 116, 81, 105, 105, 122, 114, 112, 111, 114, 113, 100, 104, 126, 107, 104, 108, 107, 112, 114, 106, 138, 120, 120, 137, 116, 100, 117, 101, 120, 122, 112, 125, 117, 113, 138, 112, 126, 150, 136, 122, 109, 116, 110, 121, 103, 133, 132, 114, 119, 98, 103, 121, 116, 116, 115, 127, 116, 107, 127, 115, 136, 109, 105, 96, 106, 115, 116, 109, 114, 119, 123, 119, 127, 117, 117, 109, 118, 114, 118, 107, 101, 122, 119, 128, 114, 110, 99, 118, 124, 116, 122, 123, 125, 107, 122, 102, 112, 112, 128, 102, 116, 104, 129, 124, 124, 121, 92, 113, 117, 114, 117, 101, 103, 117, 123, 110, 106, 104, 125, 108, 122, 127, 99, 125, 117, 120, 99, 105, 115, 112, 115, 125, 111, 117, 107, 105, 118, 120, 130, 103, 126, 113, 121, 122, 111, 116, 118, 107, 120, 117, 117, 118, 115, 120, 126, 106, 97, 121, 114, 128, 102, 99, 115, 113, 105, 112, 122, 120, 128, 118, 136, 117, 111, 123, 119, 110, 117, 121, 125, 127, 119, 113, 115, 129, 133, 128, 114, 102, 110, 107, 118, 119, 99, 94, 126, 115, 123, 98, 111, 113, 105, 112, 108, 111, 141, 120, 101, 112, 111, 131, 116, 102, 100, 119, 120, 109, 108, 112, 121, 109, 118, 95, 130, 113, 110, 117, 112, 110, 111, 112, 116, 125, 106, 111, 109, 125, 128, 91, 114, 108, 120, 106, 109, 123, 110, 127, 107, 113, 96, 112, 112, 108, 111, 128, 113, 108, 120, 112, 120, 117, 117, 127, 129, 111, 123, 108, 113, 105, 118, 108, 105, 128, 114, 127, 122, 108, 102, 126, 130, 135, 115, 104, 105, 116, 125, 112, 115, 108, 117, 135, 132, 100, 131, 111, 113, 107, 113, 123, 122, 116, 111, 119, 111, 109, 131, 110, 120, 127, 117, 107, 112, 107, 113, 113, 119, 115, 114, 113, 111, 106, 107, 116, 121, 137, 111, 102, 119, 124, 121, 108, 116, 112, 106, 101, 108, 111, 127, 117, 128, 93, 123, 106, 112, 119, 109, 96, 109, 106, 106, 131, 118, 116, 110, 105, 85, 130, 128, 114, 123, 123, 111, 110, 117, 105, 112, 104, 96, 113, 135, 129, 135, 122, 124, 121, 120, 125, 104, 115, 110, 151, 130, 124, 105, 109, 121, 110, 118, 107, 113, 138, 96, 121, 102, 103, 112, 117, 109, 155, 124, 111, 102, 124, 92, 116, 103, 114, 110, 124, 108, 125, 120, 127, 110, 124, 135, 103, 113, 126, 118, 150, 116, 104, 128, 129, 101, 114, 104, 124, 126, 140, 112, 134, 102, 139, 116, 114, 109, 132, 105, 129, 107, 134, 111, 134, 116, 112, 116, 118, 137, 119, 123, 118, 113, 159, 106, 98, 135, 103, 101, 112, 122, 114, 126, 133, 114, 126, 128, 114, 113, 120, 108, 120, 123, 141, 116, 107, 137, 112, 110, 107, 107, 109, 119, 120, 145, 119, 94, 119, 108, 106, 137, 105, 111, 123, 112, 113, 136, 100, 147, 115, 109, 139, 82, 122, 110, 121, 106, 109, 108, 108, 114, 141, 115, 105, 116, 120, 113, 126, 128, 102, 118, 108, 125, 129, 116, 104, 117, 102, 129, 120, 118, 107, 109, 120, 112, 149, 105, 121, 120, 110, 102, 107, 120, 109, 108, 145, 107, 114, 135, 124, 116, 110, 121, 112, 95, 106, 125, 98, 143, 116, 122, 114, 117, 116, 127, 105, 130, 115, 113, 122, 115, 117, 123, 107, 127, 112, 115, 113, 106, 128, 111, 114, 103, 100, 107, 114, 103, 121, 101, 102, 105, 110, 114, 108, 117, 135, 147, 116, 112, 99, 120, 115, 125, 112, 127, 90, 134, 124, 115, 109, 118, 110, 94, 113, 120, 130, 132, 99, 123, 118, 119, 132, 100, 129, 125, 123, 92, 110, 95, 104, 118, 110, 132, 128, 129, 124, 108, 109, 118, 117, 123, 111, 104, 122, 111, 127, 95, 109, 124, 134, 93, 115, 138, 115, 121, 102, 89, 108, 122, 95, 111, 104, 122, 115, 109, 80, 123, 113, 116, 119, 98, 115, 104, 130, 123, 119, 105, 111, 117, 130, 98, 125, 104, 118, 118, 124, 111, 130, 141, 132, 122, 119, 122, 113, 113, 106, 127, 119, 114, 108, 153, 109, 111, 103, 99, 114, 96, 137, 134, 105, 108, 142, 114, 122, 136, 128, 119, 132, 130, 145, 124, 123, 110, 90, 114, 114, 120, 111, 108, 119, 102, 107, 107, 130, 128, 105, 120, 107, 105, 111, 123, 103, 106, 104, 111, 127, 124, 127, 109, 103, 111, 102, 118, 110, 127, 108, 115, 124, 114, 109, 112, 111, 88, 108, 121, 107, 142, 105, 147, 118, 111, 139, 116, 118, 130, 89, 133, 110, 95, 122, 104, 119, 111, 114, 131, 108, 113, 104, 114, 105, 123, 115, 117, 119, 117, 127, 150, 106, 102, 121, 92, 108, 118, 121, 107, 120, 130, 112, 119, 118, 121, 129, 96, 130, 108, 114, 122, 118, 116, 110, 106, 112, 125, 109, 102, 115, 91, 97, 108, 124, 115, 123, 109, 122, 128, 125, 102, 129, 113, 125, 109, 119, 123, 107, 120, 120, 112, 135, 115, 108, 115, 103, 121, 116, 108, 109, 112, 119, 113, 117, 115, 115, 128, 121, 142, 105, 115, 141, 122, 117, 121, 120, 98, 118, 121, 114, 117, 121, 122, 129, 113, 126, 119, 120, 126, 108, 108, 112, 114, 104, 126, 112, 115, 151, 107, 116, 113, 116, 127, 122, 121, 114, 116, 105, 100, 109, 126, 109, 111, 107, 122, 114, 99, 119, 107, 129, 115, 123, 141, 122, 110, 111, 107, 102, 138, 116, 110, 102, 117, 103, 109, 125, 112, 116, 111, 129, 121, 119, 116, 132, 119, 108, 104, 118, 103, 116, 116, 112, 118, 99, 107, 114, 109, 95, 118, 129, 131, 128, 124, 106, 122, 106, 103, 115, 122, 108, 145, 114, 106, 114, 125, 125, 117, 108, 138, 104, 114, 130, 128, 111, 121, 119, 113, 124, 126, 110, 113, 112, 95, 96, 120, 116, 115, 132, 100, 114, 118, 124, 122, 121, 125, 129, 113, 134, 115, 121, 105, 111, 112, 126, 115, 111, 129, 129, 116, 115, 94, 119, 113, 127, 112, 102, 96, 130, 96, 123, 118, 128, 104, 112, 112, 118, 125, 119, 112, 103, 110, 116, 136, 107, 121, 102, 127, 127, 110, 125, 125, 107, 105, 109, 116, 117, 128, 113, 126, 106, 109, 116, 112, 96, 98, 120, 110, 119, 138, 120, 116, 155, 100, 115, 120, 109, 109, 115, 123, 126, 98, 108, 121, 122, 117, 132, 111, 111, 120, 114, 108, 136, 113, 115, 121, 121, 121, 114, 125, 124, 124, 108, 115, 114, 113, 127, 129, 115, 126, 124, 129, 126, 129, 111, 113, 129, 112, 126, 96, 121, 117, 126, 126, 124, 120, 107, 129, 104, 132, 104, 118, 120, 105, 111, 123, 97, 105, 114, 131, 98, 125, 113, 127, 108, 110, 110, 123, 108, 113, 108, 119, 114, 116, 129, 119, 123, 127, 112, 116, 121, 131, 122, 129, 101, 108, 110, 124, 114, 101, 110, 107, 112, 116, 147, 122, 103, 115, 121, 114, 122, 104, 118, 128, 114, 121, 127, 121, 117, 104, 114, 115, 110, 118, 156, 104, 137, 114, 93, 113, 115, 122, 122, 102, 119, 132, 116, 142, 101, 119, 121, 130, 116, 117, 117, 109, 119, 106, 111, 124, 113, 108, 97, 119, 125, 148, 115, 119, 129, 126, 116, 99, 84, 126, 120, 103, 105, 123, 121, 105, 116, 118, 127, 113, 124, 108, 111, 117, 116, 126, 132, 110, 120, 125, 113, 122, 98, 134, 125, 115, 103, 97, 129, 116, 120, 115, 121, 104, 127, 120, 116, 114, 131, 108, 141, 108, 112, 112, 105, 134, 125, 119, 135, 118, 112, 118, 127, 111, 124, 123, 126, 116, 118, 115, 107, 118, 120, 106, 115, 114, 119, 121, 113, 125, 106, 113, 118, 112, 121, 98, 112, 127, 115, 103, 110, 103, 117, 103, 115, 121, 114, 116, 118, 134, 120, 107, 121, 127, 121, 93, 122, 107, 119, 121, 111, 118, 106, 102, 122, 114, 111, 116, 116, 113, 128, 124, 116, 119, 107, 127, 109, 106, 116, 123, 117, 128, 93, 95, 115, 112, 108, 126, 126, 119, 107, 116, 127, 118, 118, 101, 124, 119, 116, 117, 127, 127, 104, 113, 117, 124, 104, 114, 109, 121, 118, 106, 115, 119, 117, 125, 108, 121, 120, 109, 106, 127, 126, 118, 123, 120, 104, 119, 115, 87, 107, 125, 114, 106, 116, 115, 122, 115, 127, 48, 107, 93, 131, 105, 122, 111, 108, 109, 123, 90, 128, 115, 142, 101, 120, 127, 126, 107, 132, 126, 106, 122, 116, 114, 114, 126, 126, 87, 108, 123, 107, 111, 114, 116, 106, 110, 123, 112, 135, 120, 121, 111, 127, 112, 120, 120, 122, 112, 96, 128, 121, 119, 105, 117, 122, 118, 118, 106, 123, 110, 124, 117, 126, 104, 120, 135, 119, 113, 118, 127, 114, 132, 116, 126, 115, 118, 122, 117, 114, 117, 121, 119, 98, 107, 115, 114, 109, 122, 116, 126, 105, 116, 115, 120, 119, 100, 120, 111, 119, 125, 113, 115, 114, 122, 99, 105, 99, 104, 102, 117, 127, 134, 130, 135, 124, 125, 119, 141, 118, 92, 109, 108, 94, 128, 110, 110, 106, 120, 114, 102, 117, 125, 96, 115, 115, 99, 128, 131, 135, 105, 110, 110, 102, 122, 111, 117, 127, 116, 116, 105, 116, 105, 115, 135, 122, 115, 191, 91, 116, 122, 117, 110, 131, 122, 138, 122, 127, 112, 171, 120, 119, 106, 97, 115, 121, 111, 125, 118, 124, 120, 112, 124, 103, 113, 98, 109, 127, 117, 119, 113, 117, 114, 103, 114, 116, 125, 129, 117, 118, 104, 111, 120, 136, 113, 107, 105, 125, 117, 110, 125, 123, 89, 123, 109, 105, 114, 139, 116, 120, 108, 106, 114, 123, 117, 101, 106, 116, 109, 118, 129, 110, 122, 114, 120, 100, 90, 119, 120, 101, 102, 131, 117, 126, 118, 101, 93, 105, 134, 131, 105, 123, 118, 125, 113, 106, 126, 113, 124, 122, 121, 108, 108, 124, 111, 100, 118, 123, 112, 110, 112, 107, 122, 113, 130, 111, 123, 115, 109, 153, 111, 109, 113, 115, 120, 105, 109, 114, 102, 113, 116, 115, 130, 107, 117, 120, 109, 109, 124, 118, 104, 104, 115, 111, 120, 107, 108, 117, 89, 109, 104, 113, 92, 124, 113, 117, 123, 119, 132, 120, 120, 126, 124, 128, 115, 124, 126, 119, 125, 128, 106, 111, 117, 113, 118, 124, 121, 119, 93, 117, 119, 110, 123, 110, 127, 122, 111, 126, 136, 119, 119, 115, 134, 113, 117, 95, 117, 121, 139, 122, 112, 122, 119, 111, 117, 123, 119, 104, 105, 118, 115, 104, 100, 119, 111, 140, 114, 172, 120, 144, 112, 45, 127, 119, 112, 111, 119, 113, 125, 142, 110, 125, 94, 112, 120, 105, 85, 116, 92, 120, 119, 120, 112, 91, 120, 110, 109, 98, 83, 137, 110, 117, 118, 100, 116, 100, 95, 126, 122, 119, 104, 98, 126, 118, 102, 119, 136, 111, 105, 109, 127, 118, 114, 116, 119, 114, 134, 111, 88, 122, 115, 125, 105, 121, 117, 106, 124, 128, 113, 136, 120, 94, 118, 112, 107, 117, 117, 107, 140, 116, 112, 114, 106, 125, 118, 108, 112, 113, 118, 105, 124, 135, 139, 111, 113, 96, 124, 128, 114, 124, 105, 167, 103, 119, 98, 112, 115, 118, 110, 103, 111, 110, 117, 100, 118, 131, 105, 104, 125, 97, 114, 108, 133, 90, 99, 125, 114, 127, 119, 125, 106, 111, 128, 136, 91, 91, 120, 118, 126, 107, 124, 114, 120, 133, 128, 112, 121, 126, 115, 118, 109, 93, 116, 98, 107, 110, 109, 129, 116, 118, 99, 125, 125, 111, 134, 126, 115, 114, 106, 109, 130, 133, 98, 125, 109, 139, 119, 112, 108, 111, 116, 112, 128, 118, 134, 114, 113, 135, 134, 121, 127, 125, 105, 106, 113, 122, 124, 99, 119, 106, 92, 101, 112, 118, 97, 117, 130, 104, 115, 125, 107, 123, 113, 113, 117, 110, 100, 106, 124, 108, 115, 105, 127, 121, 104, 114, 122, 120, 117, 98, 125, 124, 125, 90, 107, 112, 112, 107, 132, 123, 111, 122, 124, 131, 152, 110, 132, 120, 110, 114, 115, 119, 113, 98, 112, 133, 120, 130, 106, 109, 104, 110, 118, 109, 108, 87, 123, 125, 122, 93, 110, 138, 117, 104, 108, 119, 126, 106, 99, 123, 120, 108, 113, 107, 113, 98, 108, 95, 116, 119, 110, 128, 100, 115, 121, 117, 111, 154, 139, 107, 124, 150, 90, 130, 100, 138, 104, 112, 114, 114, 105, 116, 139, 118, 106, 115, 111, 116, 104, 120, 113, 108, 111, 123, 117, 100, 117, 109, 115, 119, 138, 124, 119, 106, 107, 106, 118, 108, 139, 118, 116, 120, 123, 110, 131, 106, 104, 108, 101, 118, 106, 121, 115, 105, 114, 112, 119, 94, 142, 129, 134, 112, 128, 103, 123, 106, 101, 119, 112, 123, 117, 125, 111, 139, 100, 135, 124, 108, 108, 134, 117, 142, 126, 120, 102, 130, 115, 113, 119, 110, 99, 115, 127, 119, 114, 113, 125, 119, 115, 110, 139, 119, 109, 113, 111, 114, 130, 116, 132, 137, 116, 107, 123, 101, 122, 115, 108, 107, 114, 106, 119, 111, 121, 109, 97, 109, 114, 101, 122, 115, 132, 122, 128, 104, 111, 114, 122, 127, 113, 111, 113, 107, 108, 116, 103, 132, 130, 119, 112, 109, 119, 117, 125, 125, 145, 106, 110, 118, 116, 104, 107, 110, 104, 120, 105, 101, 112, 112, 120, 116, 117, 112, 120, 114, 134, 110, 113, 130, 111, 114, 109, 96, 107, 110, 119, 111, 119, 95, 106, 122, 109, 122, 117, 121, 121, 112, 125, 98, 112, 125, 110, 99, 128, 113, 78, 117, 117, 109, 116, 115, 105, 106, 111, 111, 120, 101, 120, 112, 115, 108, 112, 109, 99, 104, 117, 112, 114, 119, 149, 124, 106, 104, 120, 116, 104, 119, 124, 110, 104, 104, 120, 115, 102, 110, 117, 118, 100, 145, 102, 99, 120, 103, 109, 127, 110, 106, 98, 108, 123, 114, 108, 110, 112, 127, 109, 121, 125, 114, 116, 125, 118, 112, 107, 103, 104, 114, 117, 115, 105, 120, 124, 113, 111, 139, 108, 97, 104, 110, 116, 141, 121, 111, 110, 109, 136, 136, 115, 101, 117, 112, 114, 104, 118, 117, 116, 108, 122, 120, 114, 103, 97, 139, 97, 116, 97, 108, 117, 114, 117, 104, 103, 149, 100, 117, 95, 142, 101, 127, 117, 106, 109, 108, 134, 114, 128, 139, 113, 118, 121, 123, 121, 104, 120, 106, 120, 106, 114, 108, 104, 129, 142, 124, 117, 124, 117, 123, 125, 105, 107, 111, 100, 123, 122, 118, 115, 122, 120, 116, 120, 120, 111, 104, 112, 108, 122, 115, 121, 90, 114, 117, 105, 116, 112, 108, 108, 106, 102, 124, 121, 115, 125, 115, 114, 104, 126, 111, 130, 112, 129, 112, 113, 98, 98, 100, 116, 119, 122, 107, 99, 112, 110, 117, 110, 115, 125, 101, 138, 114, 106, 124, 110, 181, 110, 98, 112, 99, 117, 114, 133, 127, 106, 84, 130, 130, 106, 120, 138, 107, 125, 115, 113, 114, 120, 110, 112, 107, 116, 133, 122, 101, 141, 134, 107, 120, 109, 110, 138, 118, 128, 123, 122, 106, 109, 132, 119, 126, 113, 96, 118, 120, 123, 106, 131, 108, 110, 114, 112, 103, 104, 126, 106, 111, 109, 113, 108, 156, 119, 114, 107, 110, 126, 90, 108, 121, 130, 103, 101, 148, 127, 103, 94, 113, 121, 119, 121, 109, 115, 99, 125, 135, 112, 116, 115, 95, 108, 117, 107, 112, 106, 107, 77, 108, 118, 120, 101, 116, 134, 128, 103, 121, 120, 114, 110, 117, 117, 128, 126, 111, 108, 129, 106, 114, 113, 110, 101, 111, 87, 134, 122, 121, 114, 118, 109, 130, 101, 88, 124, 92, 132, 119, 105, 125, 105, 111, 107, 125, 108, 104, 116, 118, 119, 111, 111, 124, 106, 94, 123, 116, 115, 106, 117, 97, 140, 126, 110, 106, 112, 119, 105, 118, 116, 111, 122, 115, 126, 122, 108, 110, 95, 110, 94, 117, 115, 116, 97, 144, 140, 118, 106, 67, 137, 128, 139, 112, 106, 116, 122, 126, 133, 114, 105, 120, 101, 117, 89, 107, 93, 125, 129, 119, 122, 112, 109, 127, 131, 119, 116, 139, 109, 107, 120, 116, 120, 118, 93, 105, 102, 103, 118, 109, 92, 135, 116, 125, 112, 94, 114, 122, 113, 119, 83, 108, 132, 115, 111, 135, 113, 103, 101, 123, 122, 131, 116, 114, 111, 95, 128, 116, 115, 79, 129, 112, 121, 115, 90, 131, 111, 127, 109, 108, 119, 120, 95, 120, 94, 99, 126, 122, 119, 129, 114, 118, 112, 106, 109, 120, 117, 109, 112, 113, 116, 106, 109, 109, 119, 85, 118, 115, 110, 108, 124, 103, 106, 103, 100, 106, 122, 185, 112, 136, 113, 122, 126, 109, 110, 117, 111, 110, 113, 118, 99, 112, 116, 119, 123, 94, 125, 115, 111, 89, 87, 114, 104, 118, 130, 111, 98, 116, 114, 99, 91, 123, 103, 108, 102, 126, 129, 112, 102, 128, 114, 95, 122, 107, 110, 139, 116, 110, 97, 139, 124, 129, 122, 97, 112, 111, 118, 117, 107, 115, 110, 105, 91, 99, 109, 112, 182, 121, 101, 112, 109, 111, 132, 125, 129, 130, 112, 104, 131, 143, 125, 105, 114, 127, 153, 102, 120, 126, 102, 109, 113, 117, 90, 117, 123, 97, 116, 104, 101, 117, 117, 106, 128, 122, 133, 108, 104, 113, 110, 105, 107, 125, 116, 107, 95, 114, 97, 115, 120, 109, 105, 138, 121, 122, 119, 121, 98, 123, 113, 129, 123, 113, 125, 111, 108, 115, 115, 109, 116, 116, 118, 110, 126, 115, 100, 120, 126, 116, 117, 118, 120, 100, 118, 126, 110, 106, 110, 107, 128, 121, 115, 121, 123, 116, 113, 128, 122, 129, 130, 103, 123, 110, 119, 132, 102, 101, 117, 110, 110, 108, 114, 112, 118, 121, 124, 115, 121, 109, 118, 110, 117, 89, 113, 137, 133, 116, 125, 113, 108, 117, 113, 117, 137, 118, 117, 109, 143, 120, 142, 115, 114, 101, 122, 126, 126, 117, 123, 125, 115, 113, 113, 116, 115, 107, 123, 116, 108, 108, 121, 130, 123, 127, 111, 129, 128, 115, 129, 114, 119, 119, 113, 114, 104, 133, 152, 119, 128, 119, 109, 129, 119, 106, 119, 113, 108, 109, 151, 113, 132, 110, 119, 94, 133, 105, 102, 110, 115, 153, 119, 115, 109, 116, 124, 110, 109, 159, 122, 124, 116, 121, 113, 114, 127, 101, 134, 127, 123, 115, 120, 134, 113, 110, 113, 116, 125, 109, 126, 131, 119, 129, 111, 122, 146, 122, 136, 118, 115, 117, 129, 108, 121, 110, 110, 125, 150, 96, 119, 117, 113, 111, 108, 115, 119, 114, 113, 115, 127, 123, 117, 85, 97, 112, 111, 107, 113, 120, 117, 119, 116, 112, 114, 127, 109, 119, 122, 110, 111, 116, 117, 101, 120, 111, 118, 118, 98, 118, 118, 121, 119, 116, 95, 108, 117, 116, 127, 115, 109, 111, 132, 121, 116, 109, 110, 130, 120, 129, 110, 150, 111, 112, 134, 121, 114, 118, 126, 103, 132, 105, 125, 122, 113, 119, 118, 118, 111, 105, 124, 111, 117, 104, 112, 121, 122, 123, 110, 111, 118, 134, 122, 135, 122, 119, 110, 115, 122, 125, 124, 118, 123, 118, 117, 128, 113, 113, 102, 134, 109, 122, 110, 107, 107, 113, 120, 111, 99, 114, 109, 111, 112, 120, 123, 109, 114, 120, 135, 113, 120, 112, 125, 113, 120, 120, 119, 119, 131, 111, 112, 122, 112, 121, 111, 110, 117, 118, 127, 112, 98, 124, 131, 120, 129, 117, 106, 108, 116, 123, 114, 100, 114, 116, 128, 121, 135, 111, 118, 121, 112, 114, 120, 109, 112, 122, 113, 127, 117, 108, 108, 105, 118, 119, 114, 104, 114, 121, 117, 118, 89, 112, 124, 115, 106, 122, 117, 123, 109, 121, 115, 111, 105, 101, 112, 115, 105, 122, 118, 108, 102, 156, 116, 131, 128, 145, 144, 78, 107, 111, 118, 119, 114, 126, 112, 98, 123, 123, 134, 115, 106, 135, 115, 128, 142, 116, 110, 111, 111, 124, 124, 112, 122, 117, 122, 110, 115, 106, 97, 110, 126, 107, 128, 116, 99, 113, 123, 126, 131, 118, 123, 114, 115, 114, 133, 112, 117, 122, 119, 109, 120, 111, 124, 114, 99, 102, 122, 109, 109, 102, 113, 112, 119, 111, 120, 116, 112, 113, 109, 103, 125, 115, 125, 127, 92, 112, 153, 115, 104, 104, 98, 112, 125, 112, 112, 110, 100, 116, 112, 118, 109, 114, 97, 112, 112, 123, 129, 106, 123, 117, 109, 122, 124, 114, 105, 109, 120, 121, 111, 121, 116, 99, 128, 103, 118, 111, 121, 132, 110, 98, 116, 118, 113, 133, 113, 126, 99, 132, 111, 108, 134, 118, 120, 119, 108, 118, 109, 109, 115, 109, 127, 107, 126, 99, 144, 122, 113, 118, 114, 122, 113, 126, 107, 131, 108, 119, 135, 122, 118, 115, 130, 124, 116, 112, 120, 112, 117, 161, 116, 121, 137, 104, 106, 104, 123, 106, 118, 124, 121, 123, 109, 121, 100, 113, 100, 130, 118, 145, 109, 119, 98, 106, 122, 122, 108, 121, 101, 108, 125, 111, 119, 114, 110, 126, 115, 114, 115, 116, 114, 109, 108, 116, 109, 119, 134, 106, 111, 114, 108, 104, 109, 126, 105, 130, 96, 116, 122, 113, 117, 110, 109, 97, 110, 120, 127, 120, 113, 150, 128, 107, 113, 122, 129, 120, 97, 120, 142, 108, 113, 103, 115, 93, 121, 111, 102, 113, 134, 111, 119, 130, 108, 112, 113, 114, 126, 119, 112, 125, 128, 112, 103, 131, 116, 122, 111, 117, 122, 118, 100, 134, 97, 117, 110, 109, 109, 120, 114, 107, 113, 122, 87, 126, 121, 101, 115, 112, 117, 118, 94, 123, 116, 111, 117, 114, 135, 115, 119, 112, 105, 112, 106, 121, 112, 115, 103, 117, 123, 115, 111, 119, 115, 135, 110, 113, 125, 151, 142, 108, 102, 134, 117, 137, 109, 134, 117, 121, 129, 140, 131, 116, 114, 130, 117, 107, 116, 134, 118, 100, 113, 93, 121, 115, 105, 90, 112, 122, 117, 92, 109, 115, 112, 99, 106, 112, 106, 111, 130, 112, 112, 126, 119, 107, 73, 117, 118, 119, 145, 120, 119, 120, 120, 121, 114, 110, 125, 120, 107, 106, 101, 124, 107, 116, 107, 138, 126, 118, 112, 103, 115, 111, 117, 114, 114, 110, 124, 111, 114, 128, 106, 112, 106, 117, 109, 130, 112, 120, 128, 111, 122, 128, 101, 109, 117, 107, 120, 108, 121, 110, 126, 111, 133, 122, 106, 112, 118, 114, 116, 117, 108, 111, 142, 112, 106, 117, 91, 119, 122, 112, 104, 109, 109, 117, 120, 119, 108, 114, 144, 113, 99, 117, 127, 113, 110, 109, 118, 122, 102, 135, 119, 139, 111, 109, 122, 123, 115, 108, 118, 138, 140, 117, 109, 105, 137, 111, 118, 116, 110, 120, 114, 118, 112, 115, 118, 126, 117, 128, 105, 109, 120, 119, 117, 115, 109, 111, 119, 108, 112, 108, 127, 144, 94, 98, 109, 115, 115, 121, 157, 94, 115, 121, 118, 122, 106, 106, 112, 110, 122, 126, 113, 115, 120, 108, 89, 111, 109, 118, 135, 132, 115, 128, 122, 105, 113, 92, 117, 129, 122, 113, 120, 125, 114, 115, 126, 112, 108, 112, 116, 116, 105, 113, 110, 81, 113, 127, 122, 110, 124, 119, 106, 119, 120, 115, 114, 134, 122, 96, 115, 136, 132, 118, 114, 117, 113, 107, 121, 121, 112, 117, 119, 123, 111, 106, 117, 111, 116, 109, 121, 110, 128, 125, 116, 112, 106, 113, 119, 108, 110, 113, 105, 109, 111, 117, 111, 119, 122, 115, 117, 134, 111, 121, 111, 109, 117, 117, 114, 116, 120, 105, 122, 121, 109, 114, 116, 104, 126, 110, 115, 126, 117, 117, 114, 111, 111, 123, 112, 108, 121, 117, 122, 98, 103, 115, 115, 125, 110, 115, 120, 124, 126, 109, 111, 107, 112, 119, 118, 120, 126, 107, 125, 120, 108, 117, 115, 113, 116, 109, 110, 120, 115, 123, 117, 117, 121, 106, 103, 111, 115, 122, 132, 117, 120, 121, 121, 113, 116, 112, 119, 117, 115, 122, 122, 125, 116, 134, 103, 107, 111, 117, 121, 110, 115, 116, 114, 124, 116, 112, 127, 113, 131, 113, 112, 112, 120, 117, 115, 116, 107, 122, 108, 107, 105, 112, 113, 121, 112, 118, 113, 112, 121, 126, 116, 115, 114, 119, 120, 113, 107, 121, 114, 129, 110, 122, 111, 124, 111, 118, 109, 110, 107, 120, 114, 105, 119, 110, 138, 111, 103, 105, 102, 113, 119, 112, 102, 103, 105, 111, 128, 101, 114, 129, 120, 117, 121, 103, 131, 131, 120, 121, 117, 124, 106, 117, 116, 122, 128, 117, 113, 107, 119, 119, 121, 133, 107, 124, 110, 121, 117, 112, 121, 111, 118, 101, 139, 137, 113, 117, 99, 117, 109, 126, 113, 113, 121, 111, 137, 113, 113, 121, 125, 113, 121, 109, 117, 124, 121, 119, 113, 123, 114, 121, 117, 119, 123, 113, 121, 114, 101, 106, 118, 114, 111, 110, 106, 104, 121, 116, 124, 118, 119, 108, 107, 115, 122, 132, 109, 126, 117, 118, 123, 116, 124, 111, 115, 114, 117, 128, 117, 116, 116, 106, 125, 130, 113, 111, 116, 118, 123, 115, 99, 141, 119, 125, 116, 108, 113, 120, 115, 111, 120, 127, 124, 110, 107, 115, 113, 115, 109, 108, 123, 123, 132, 110, 118, 112, 120, 110, 117, 118, 109, 107, 107, 120, 116, 110, 118, 123, 111, 122, 112, 115, 107, 118, 110, 118, 99, 115, 124, 130, 106, 122, 111, 100, 115, 119, 122, 119, 114, 110, 127, 112, 119, 106, 114, 113, 126, 114, 124, 111, 108, 128, 114, 108, 112, 109, 128, 118, 133, 120, 114, 121, 107, 116, 116, 121, 117, 122, 125, 122, 116, 113, 109, 110, 122, 117, 124, 111, 102, 118, 113, 106, 113, 111, 117, 110, 117, 115, 122, 112, 105, 117, 116, 105, 107, 98, 120, 120, 112, 117, 125, 121, 125, 116, 98, 119, 126, 122, 114, 113, 123, 128, 110, 112, 122, 110, 105, 117, 115, 117, 119, 105, 119, 116, 123, 121, 109, 115, 115, 122, 127, 121, 112, 126, 126, 115, 115, 115, 101, 116, 116, 121, 116, 110, 112, 118, 121, 122, 129, 118, 125, 108, 116, 108, 117, 107, 121, 106, 111, 121, 124, 102, 119, 109, 117, 118, 117, 120, 111, 118, 112, 116, 116, 114, 126, 129, 116, 113, 123, 124, 117, 128, 124, 125, 104, 118, 107, 132, 109, 100, 121, 122, 113, 101, 112, 113, 124, 125, 122, 120, 109, 118, 110, 112, 113, 119, 112, 107, 107, 112, 107, 107, 111, 123, 117, 117, 117, 110, 118, 107, 121, 102, 112, 111, 105, 110, 131, 109, 116, 116, 116, 112, 119, 105, 121, 112, 118, 126, 117, 108, 112, 118, 113, 108, 104, 120, 119, 121, 111, 115, 117, 112, 129, 105, 127, 119, 123, 120, 129, 114, 108, 110, 132, 115, 114, 108, 116, 113, 115, 117, 108, 118, 128, 116, 116, 112, 108, 115, 113, 133, 120, 112, 121, 112, 111, 122, 114, 106, 123, 116, 124, 123, 132, 123, 114, 134, 114, 106, 117, 125, 122, 121, 106, 119, 110, 117, 109, 119, 114, 115, 111, 124, 123, 116, 117, 109, 119, 121, 125, 114, 115, 112, 115, 117, 113, 111, 110, 123, 143, 107, 119, 119, 118, 114, 113, 119, 120, 104, 108, 131, 118, 101, 117, 104, 154, 116, 114, 118, 116, 102, 107, 126, 122, 112, 111, 103, 109, 123, 112, 107, 108, 115, 111, 111, 104, 111, 115, 110, 125, 122, 114, 110, 123, 121, 117, 120, 107, 116, 101, 134, 119, 110, 111, 117, 113, 117, 116, 112, 114, 116, 100, 117, 111, 121, 116, 116, 118, 118, 121, 123, 113, 122, 111, 109, 114, 110, 125, 114, 108, 133, 117, 103, 130, 119, 128, 108, 124, 108, 122, 125, 102, 112, 118, 117, 120, 115, 103, 99, 119, 130, 108, 114, 118, 123, 109, 131, 99, 109, 113, 113, 120, 120, 116, 118, 116, 132, 110, 108, 129, 95, 108, 118, 115, 108, 106, 125, 90, 114, 120, 123, 125, 113, 118, 115, 111, 117, 102, 110, 107, 123, 117, 113, 105, 116, 109, 116, 114, 124, 119, 124, 103, 113, 133, 110, 110, 119, 130, 111, 116, 115, 116, 113, 114, 118, 109, 125, 114, 116, 125, 103, 113, 114, 117, 125, 126, 123, 121, 119, 120, 115, 115, 115, 126, 131, 112, 117, 116, 115, 111, 121, 118, 100, 110, 115, 107, 107, 116, 108, 119, 114, 126, 118, 119, 111, 120, 124, 117, 122, 112, 120, 111, 117, 104, 117, 119, 109, 128, 112, 118, 121, 121, 128, 106, 119, 113, 106, 121, 113, 138, 112, 107, 110, 129, 116, 117, 118, 105, 112, 129, 114, 118, 149, 112, 111, 120, 124, 98, 115, 116, 114, 116, 116, 112, 114, 113, 122, 115, 121, 118, 105, 111, 116, 102, 119, 122, 106, 117, 103, 105, 121, 130, 109, 114, 114, 103, 115, 106, 118, 114, 117, 124, 108, 125, 114, 119, 111, 115, 110, 103, 110, 122, 112, 126, 121, 112, 116, 112, 114, 115, 121, 110, 111, 119, 125, 117, 117, 109, 118, 125, 110, 117, 107, 119, 114, 108, 122, 118, 123, 111, 114, 125, 112, 115, 119, 102, 133, 117, 117, 116, 120, 108, 108, 121, 112, 122, 100, 131, 116, 132, 117, 111, 139, 108, 110, 127, 106, 110, 120, 116, 121, 110, 122, 105, 115, 136, 132, 103, 119, 119, 115, 108, 109, 122, 113, 127, 120, 112, 112, 111, 128, 107, 108, 97, 119, 116, 120, 108, 123, 113, 98, 96, 117, 136, 117, 135, 110, 116, 99, 123, 114, 109, 125, 118, 115, 119, 100, 117, 109, 121, 110, 112, 153, 116, 132, 116, 116, 118, 126, 113, 119, 125, 125, 116, 129, 119, 130, 111, 112, 100, 106, 127, 109, 115, 117, 113, 98, 115, 122, 115, 139, 151, 108, 107, 116, 116, 114, 107, 116, 118, 131, 111, 99, 112, 117, 119, 116, 111, 114, 97, 138, 114, 111, 130, 127, 110, 116, 127, 111, 116, 113, 96, 116, 116, 118, 123, 119, 116, 101, 110, 128, 105, 115, 104, 113, 101, 106, 114, 122, 118, 121, 100, 119, 117, 107, 107, 107, 129, 114, 120, 118, 125, 122, 129, 104, 122, 112, 123, 112, 107, 123, 124, 122, 119, 96, 115, 122, 119, 118, 119, 115, 103, 119, 104, 110, 123, 107, 117, 125, 117, 103, 104, 124, 120, 103, 115, 128, 131, 112, 107, 132, 110, 112, 105, 108, 124, 124, 113, 137, 121, 119, 121, 121, 115, 123, 107, 114, 116, 119, 113, 105, 111, 131, 123, 125, 142, 120, 112, 111, 107, 111, 121, 129, 141, 103, 126, 127, 128, 121, 114, 124, 134, 110, 117, 110, 118, 110, 126, 98, 121, 119, 118, 119, 114, 88, 131, 132, 122, 111, 102, 125, 115, 100, 118, 116, 104, 114, 105, 115, 98, 109, 111, 121, 104, 111, 133, 120, 118, 117, 110, 114, 110, 111, 122, 122, 103, 118, 110, 112, 116, 128, 121, 111, 111, 110, 129, 126, 115, 126, 116, 110, 129, 126, 107, 109, 127, 120, 106, 122, 99, 117, 131, 112, 121, 120, 117, 117, 120, 111, 114, 84, 109, 122, 119, 111, 127, 111, 111, 118, 121, 129, 98, 108, 91, 127, 123, 130, 102, 131, 116, 108, 110, 110, 118, 108, 112, 117, 111, 115, 116, 122, 119, 107, 118, 114, 110, 127, 124, 123, 109, 124, 101, 128, 118, 106, 124, 120, 112, 122, 106, 125, 118, 106, 116, 112, 111, 112, 123, 126, 132, 121, 121, 122, 122, 122, 117, 108, 121, 116, 109, 110, 110, 115, 118, 119, 102, 121, 120, 129, 105, 116, 119, 112, 113, 101, 120, 119, 125, 112, 112, 109, 115, 116, 123, 114, 127, 114, 111, 131, 115, 120, 120, 124, 96, 113, 121, 115, 104, 102, 90, 118, 117, 125, 105, 121, 114, 124, 111, 113, 111, 121, 109, 117, 113, 112, 119, 105, 122, 113, 118, 117, 147, 136, 113, 100, 121, 106, 102, 115, 106, 123, 123, 130, 116, 140, 123, 124, 112, 131, 119, 95, 124, 99, 114, 118, 114, 118, 106, 100, 111, 106, 122, 127, 128, 113, 105, 107, 118, 110, 121, 112, 97, 124, 124, 97, 133, 114, 126, 130, 124, 109, 124, 121, 106, 134, 107, 120, 119, 116, 116, 89, 119, 102, 124, 109, 123, 112, 112, 118, 114, 118, 110, 105, 104, 112, 107, 128, 125, 115, 121, 121, 110, 121, 132, 129, 116, 109, 126, 106, 151, 125, 114, 119, 123, 118, 123, 129, 106, 114, 129, 111, 115, 119, 122, 116, 126, 132, 116, 116, 129, 117, 128, 111, 125, 113, 114, 104, 116, 106, 120, 110, 117, 114, 109, 122, 101, 114, 123, 112, 122, 117, 106, 115, 127, 133, 108, 93, 119, 117, 119, 106, 113, 116, 123, 105, 113, 117, 122, 115, 127, 113, 121, 112, 107, 104, 119, 99, 103, 130, 111, 115, 142, 130, 115, 102, 123, 116, 114, 116, 111, 115, 114, 96, 111, 101, 126, 129, 120, 111, 110, 115, 102, 107, 121, 117, 106, 108, 123, 98, 108, 113, 120, 124, 115, 102, 120, 110, 112, 130, 104, 114, 116, 119, 117, 124, 135, 116, 129, 109, 111, 119, 131, 109, 114, 112, 112, 127, 116, 111, 120, 124, 124, 128, 113, 109, 106, 108, 118, 118, 104, 124, 105, 95, 111, 110, 124, 126, 118, 105, 108, 127, 110, 109, 129, 110, 104, 118, 126, 127, 123, 129, 113, 96, 111, 116, 117, 97, 107, 120, 107, 113, 115, 128, 101, 108, 93, 98, 116, 131, 124, 113, 111, 98, 128, 122, 108, 104, 123, 112, 120, 101, 111, 116, 109, 131, 119, 120, 122, 115, 125, 135, 112, 128, 101, 107, 116, 109, 119, 113, 119, 118, 113, 122, 128, 109, 105, 119, 125, 102, 111, 102, 105, 112, 116, 104, 105, 110, 94, 112, 118, 113, 105, 109, 109, 112, 115, 114, 120, 105, 107, 106, 94, 132, 110, 119, 124, 109, 121, 131, 98, 109, 105, 127, 112, 123, 117, 116, 109, 127, 104, 108, 112, 114, 114, 126, 112, 123, 103, 116, 139, 105, 96, 106, 118, 133, 106, 122, 92, 110, 128, 99, 99, 100, 124, 116, 104, 115, 119, 94, 139, 105, 119, 115, 127, 104, 102, 115, 130, 113, 116, 112, 124, 116, 119, 122, 125, 114, 111, 114, 130, 98, 126, 126, 124, 105, 112, 138, 131, 103, 90, 105, 114, 127, 112, 112, 127, 114, 137, 110, 107, 125, 119, 122, 115, 111, 116, 145, 124, 131, 114, 124, 121, 110, 115, 100, 120, 112, 119, 114, 128, 108, 126, 119, 115, 120, 113, 122, 113, 118, 109, 114, 127, 117, 124, 102, 105, 112, 120, 108, 109, 122, 109, 111, 113, 118, 125, 105, 113, 112, 131, 108, 139, 122, 121, 101, 101, 121, 166, 126, 123, 123, 125, 134, 119, 134, 115, 118, 102, 106, 106, 132, 101, 112, 107, 85, 107, 119, 114, 119, 113, 111, 115, 104, 104, 118, 105, 114, 117, 126, 110, 119, 108, 101, 112, 114, 108, 110, 109, 126, 103, 145, 102, 119, 120, 106, 115, 112, 110, 131, 107, 107, 105, 119, 115, 124, 126, 122, 111, 103, 136, 103, 133, 113, 120, 125, 114, 107, 156, 116, 126, 114, 144, 116, 101, 105, 115, 107, 123, 124, 106, 135, 110, 105, 118, 108, 110, 108, 125, 135, 93, 120, 128, 121, 100, 120, 117, 106, 114, 128, 119, 117, 131, 109, 126, 119, 105, 122, 99, 133, 120, 113, 116, 114, 121, 124, 114, 106, 120, 99, 121, 109, 128, 116, 127, 118, 120, 110, 111, 127, 120, 96, 122, 122, 132, 104, 139, 136, 119, 112, 120, 115, 125, 118, 106, 104, 137, 144, 132, 122, 115, 107, 112, 98, 122, 117, 104, 126, 124, 116, 109, 119, 95, 116, 115, 106, 125, 120, 124, 115, 90, 127, 122, 117, 106, 115, 113, 112, 110, 124, 119, 106, 106, 105, 110, 99, 93, 113, 127, 117, 106, 130, 103, 111, 112, 114, 97, 107, 118, 118, 125, 109, 128, 116, 119, 128, 130, 145, 118, 129, 102, 123, 128, 117, 116, 92, 121, 108, 102, 111, 110, 92, 115, 116, 129, 123, 125, 116, 109, 114, 119, 113, 115, 115, 120, 118, 124, 117, 113, 116, 123, 114, 136, 120, 122, 125, 108, 114, 112, 123, 111, 116, 98, 134, 118, 110, 116, 135, 110, 102, 128, 112, 101, 128, 110, 87, 97, 126, 109, 115, 119, 120, 89, 109, 105, 107, 125, 135, 120, 116, 116, 117, 110, 111, 121, 103, 114, 102, 125, 108, 102, 117, 127, 101, 94, 114, 114, 136, 115, 120, 115, 124, 127, 121, 127, 107, 119, 140, 131, 96, 115, 99, 109, 113, 115, 115, 110, 116, 115, 116, 112, 117, 104, 108, 122, 129, 112, 100, 124, 131, 113, 123, 120, 124, 118, 113, 117, 82, 112, 114, 117, 134, 134, 114, 109, 95, 116, 128, 126, 130, 115, 101, 103, 108, 118, 114, 108, 111, 127, 117, 105, 133, 111, 119, 105, 101, 120, 128, 132, 100, 142, 110, 113, 118, 132, 114, 94, 102, 119, 113, 113, 117, 112, 109, 111, 141, 122, 107, 106, 110, 129, 139, 116, 122, 118, 91, 128, 119, 113, 121, 128, 120, 102, 111, 125, 118, 110, 129, 118, 94, 115, 109, 107, 102, 102, 123, 102, 103, 116, 119, 107, 113, 102, 128, 133, 113, 101, 110, 99, 110, 117, 110, 124, 113, 119, 114, 106, 104, 115, 111, 120, 117, 111, 108, 102, 115, 113, 118, 119, 136, 103, 118, 112, 125, 104, 102, 110, 114, 114, 114, 98, 127, 106, 118, 118, 112, 110, 115, 121, 101, 129, 104, 114, 123, 130, 115, 119, 117, 129, 133, 103, 108, 102, 99, 121, 98, 104, 100, 103, 92, 100, 116, 105, 104, 144, 116, 113, 103, 135, 100, 113, 107, 123, 130, 120, 129, 112, 119, 107, 112, 124, 101, 123, 121, 119, 143, 109, 119, 105, 127, 103, 108, 114, 123, 104, 118, 109, 91, 115, 114, 117, 104, 111, 104, 113, 112, 100, 124, 109, 117, 120, 134, 142, 114, 120, 105, 123, 121, 104, 112, 112, 122, 112, 135, 115, 131, 119, 112, 133, 124, 111, 123, 116, 129, 107, 118, 108, 117, 109, 102, 107, 116, 135, 116, 136, 129, 128, 114, 111, 103, 116, 123, 116, 113, 106, 106, 98, 101, 114, 112, 117, 118, 110, 106, 109, 117, 126, 107, 130, 134, 118, 113, 114, 125, 122, 114, 101, 115, 121, 112, 84, 123, 124, 103, 114, 101, 112, 124, 110, 109, 122, 113, 96, 112, 116, 110, 104, 107, 112, 115, 119, 116, 127, 112, 111, 104, 120, 133, 131, 106, 117, 122, 103, 120, 121, 100, 105, 116, 116, 114, 123, 110, 111, 115, 111, 128, 105, 105, 115, 122, 124, 123, 111, 109, 106, 115, 124, 117, 96, 112, 117, 122, 119, 105, 115, 117, 110, 116, 111, 123, 124, 125, 126, 100, 111, 114, 130, 115, 138, 114, 118, 118, 119, 119, 115, 114, 116, 123, 117, 115, 114, 111, 115, 115, 111, 109, 109, 112, 118, 110, 113, 112, 116, 106, 124, 118, 117, 107, 113, 107, 120, 117, 119, 122, 108, 122, 113, 120, 122, 111, 107, 112, 118, 108, 123, 112, 101, 114, 111, 111, 110, 120, 113, 121, 132, 112, 102, 107, 111, 111, 114, 118, 101, 119, 110, 117, 115, 123, 111, 96, 120, 117, 119, 116, 124, 108, 110, 108, 123, 106, 123, 121, 115, 121, 114, 132, 127, 135, 119, 124, 119, 118, 110, 126, 109, 121, 108, 112, 103, 112, 112, 110, 103, 115, 125, 116, 109, 117, 120, 121, 104, 119, 118, 111, 112, 109, 118, 126, 105, 125, 107, 94, 110, 114, 123, 112, 115, 114, 125, 111, 113, 116, 116, 123, 106, 114, 131, 116, 103, 119, 118, 126, 101, 114, 111, 109, 119, 100, 112, 125, 114, 116, 117, 106, 119, 103, 110, 106, 123, 119, 117, 116, 116, 118, 118, 113, 123, 114, 115, 122, 119, 116, 110, 132, 118, 110, 113, 120, 119, 124, 118, 110, 133, 111, 126, 111, 102, 117, 121, 114, 109, 116, 128, 118, 104, 110, 109, 116, 116, 105, 114, 117, 117, 120, 108, 110, 119, 106, 124, 135, 114, 123, 119, 111, 120, 115, 123, 101, 110, 115, 99, 113, 124, 133, 122, 105, 119, 105, 121, 114, 111, 119, 109, 109, 140, 111, 102, 101, 120, 119, 121, 114, 117, 120, 114, 117, 137, 107, 113, 104, 121, 113, 114, 118, 114, 125, 110, 111, 117, 126, 131, 106, 118, 105, 117, 126, 125, 103, 116, 119, 108, 121, 114, 118, 104, 113, 127, 119, 130, 118, 114, 110, 115, 113, 105, 105, 108, 115, 121, 119, 124, 110, 111, 126, 114, 123, 117, 116, 117, 114, 115, 105, 124, 118, 123, 119, 110, 121, 133, 123, 120, 110, 111, 99, 114, 115, 116, 105, 104, 125, 123, 113, 119, 122, 112, 116, 135, 124, 118, 112, 120, 113, 116, 115, 109, 108, 124, 100, 113, 110, 121, 112, 116, 126, 118, 117, 124, 117, 98, 116, 110, 123, 114, 114, 120, 117, 108, 114, 90, 111, 111, 113, 111, 114, 113, 112, 99, 110, 109, 134, 118, 115, 126, 121, 118, 121, 113, 111, 120, 109, 135, 123, 118, 106, 113, 110, 119, 113, 114, 119, 114, 133, 125, 108, 112, 123, 121, 120, 132, 109, 121, 134, 120, 117, 104, 120, 117, 113, 119, 126, 114, 120, 113, 120, 114, 108, 127, 116, 111, 108, 106, 112, 120, 118, 113, 108, 107, 105, 100, 111, 121, 114, 121, 116, 100, 146, 109, 120, 118, 105, 117, 101, 118, 104, 113, 109, 106, 114, 121, 120, 114, 112, 126, 120, 104, 114, 129, 106, 123, 125, 124, 118, 110, 116, 121, 105, 135, 122, 123, 105, 111, 125, 128, 113, 114, 116, 100, 116, 113, 126, 114, 121, 109, 97, 92, 126, 117, 121, 123, 110, 109, 127, 125, 119, 112, 133, 115, 115, 114, 112, 119, 101, 138, 130, 135, 95, 111, 124, 104, 121, 113, 120, 109, 113, 124, 100, 113, 113, 106, 117, 140, 124, 124, 134, 119, 119, 114, 109, 106, 95, 101, 113, 107, 118, 124, 121, 124, 119, 113, 115, 124, 120, 97, 116, 117, 116, 119, 123, 102, 118, 123, 127, 119, 115, 126, 126, 111, 114, 108, 117, 113, 105, 115, 119, 121, 106, 110, 118, 147, 116, 105, 122, 120, 108, 113, 111, 108, 112, 112, 119, 114, 119, 107, 118, 112, 124, 118, 115, 114, 113, 106, 107, 123, 126, 116, 113, 109, 114, 111, 128, 122, 120, 116, 108, 117, 124, 112, 122, 113, 111, 132, 127, 111, 111, 131, 107, 111, 120, 100, 98, 108, 122, 117, 98, 116, 108, 131, 123, 106, 118, 126, 119, 117, 129, 110, 109, 119, 102, 109, 124, 106, 112, 116, 112, 111, 105, 105, 115, 120, 119, 128, 127, 111, 107, 108, 112, 109, 105, 94, 120, 117, 116, 111, 107, 113, 107, 121, 115, 116, 111, 117, 118, 105, 114, 123, 113, 112, 114, 99, 108, 121, 108, 110, 133, 125, 111, 117, 129, 129, 123, 100, 115, 120, 114, 106, 124, 119, 124, 109, 111, 116, 119, 106, 121, 119, 119, 116, 121, 119, 116, 124, 125, 126, 119, 113, 97, 124, 105, 117, 128, 124, 122, 116, 135, 117, 110, 122, 109, 111, 111, 127, 128, 100, 111, 116, 117, 108, 109, 108, 87, 112, 117, 121, 124, 111, 107, 106, 113, 124, 147, 120, 109, 105, 124, 108, 118, 126, 111, 120, 109, 144, 116, 121, 106, 108, 114, 123, 120, 110, 109, 120, 110, 111, 119, 115, 109, 118, 116, 109, 119, 107, 107, 109, 107, 101, 115, 142, 122, 128, 108, 112, 125, 119, 113, 116, 115, 97, 109, 109, 111, 112, 118, 110, 116, 121, 110, 126, 126, 98, 121, 122, 126, 121, 130, 119, 128, 119, 120, 115, 125, 115, 118, 124, 120, 109, 116, 122, 126, 127, 116, 114, 119, 106, 105, 125, 117, 118, 113, 116, 111, 116, 119, 166, 114, 93, 109, 106, 133, 124, 115, 116, 115, 102, 115, 113, 118, 123, 135, 111, 116, 102, 192, 128, 125, 115, 120, 115, 115, 118, 122, 114, 105, 112, 114, 108, 119, 116, 113, 124, 96, 118, 121, 117, 106, 115, 146, 128, 107, 120, 114, 116, 124, 109, 132, 114, 95, 114, 118, 100, 120, 119, 89, 130, 113, 114, 100, 122, 92, 108, 111, 113, 112, 118, 119, 108, 110, 120, 105, 108, 107, 114, 106, 118, 111, 120, 125, 116, 103, 136, 112, 105, 117, 115, 116, 121, 126, 123, 129, 106, 102, 124, 114, 122, 121, 137, 157, 120, 106, 127, 117, 113, 103, 107, 102, 104, 118, 111, 103, 112, 120, 138, 118, 120, 122, 116, 112, 123, 103, 122, 121, 104, 110, 122, 114, 121, 119, 101, 131, 113, 122, 116, 81, 130, 185, 109, 120, 108, 111, 109, 116, 112, 97, 117, 116, 101, 96, 121, 121, 131, 100, 112, 109, 119, 108, 121, 117, 120, 110, 114, 130, 99, 110, 104, 116, 155, 125, 106, 90, 116, 102, 113, 115, 125, 135, 112, 113, 131, 109, 128, 118, 139, 130, 125, 116, 127, 110, 135, 101, 106, 131, 93, 128, 114, 91, 136, 116, 118, 115, 135, 113, 99, 130, 120, 123, 106, 192, 109, 101, 112, 132, 114, 111, 115, 119, 132, 110, 111, 98, 118, 110, 120, 122, 122, 114, 105, 107, 113, 121, 120, 127, 129, 115, 134, 115, 114, 120, 123, 113, 107, 115, 119, 103, 119, 109, 114, 127, 103, 120, 125, 133, 110, 95, 118, 103, 141, 110, 128, 131, 129, 123, 116, 114, 108, 118, 122, 150, 119, 131, 115, 131, 112, 116, 109, 130, 106, 114, 120, 100, 128, 107, 120, 95, 92, 115, 104, 102, 111, 119, 101, 118, 106, 128, 110, 129, 112, 162, 131, 110, 124, 123, 103, 97, 116, 121, 112, 106, 109, 103, 121, 129, 127, 129, 98, 128, 119, 106, 126, 119, 138, 97, 127, 105, 93, 101, 113, 107, 101, 124, 118, 125, 139, 105, 114, 122, 87, 98, 114, 118, 121, 104, 122, 121, 108, 114, 132, 115, 120, 111, 119, 124, 117, 121, 112, 133, 119, 101, 113, 123, 114, 107, 113, 120, 125, 122, 117, 96, 121, 118, 118, 112, 129, 120, 133, 123, 111, 130, 106, 143, 108, 103, 91, 130, 115, 106, 120, 150, 116, 146, 120, 121, 121, 113, 120, 135, 114, 97, 101, 88, 96, 123, 134, 135, 115, 132, 159, 100, 101, 110, 113, 130, 103, 113, 129, 117, 127, 115, 121, 137, 123, 118, 116, 119, 110, 103, 123, 122, 113, 125, 118, 118, 97, 99, 108, 125, 124, 132, 95, 116, 88, 138, 95, 118, 137, 117, 120, 129, 122, 121, 123, 89, 117, 101, 108, 113, 112, 133, 125, 95, 121, 109, 115, 108, 112, 142, 120, 133, 123, 107, 127, 63, 133, 105, 114, 114, 100, 115, 103, 116, 98, 120, 104, 111, 115, 106, 135, 111, 131, 121, 120, 114, 120, 117, 114, 114, 117, 132, 127, 106, 113, 98, 112, 95, 124, 100, 128, 110, 123, 123, 111, 108, 143, 113, 120, 125, 93, 137, 109, 103, 129, 115, 120, 130, 102, 111, 110, 118, 96, 118, 142, 103, 133, 120, 117, 117, 89, 126, 92, 155, 118, 107, 111, 135, 120, 115, 99, 118, 127, 104, 109, 108, 107, 122, 113, 115, 119, 133, 120, 121, 119, 109, 109, 110, 115, 114, 111, 107, 119, 120, 119, 118, 121, 116, 117, 101, 111, 97, 116, 115, 110, 129, 145, 124, 108, 137, 123, 108, 119, 116, 91, 106, 98, 133, 100, 135, 122, 118, 147, 108, 88, 124, 122, 105, 105, 143, 105, 138, 116, 122, 113, 120, 114, 101, 120, 118, 123, 97, 120, 114, 124, 126, 104, 104, 122, 134, 117, 95, 102, 102, 105, 107, 115, 124, 120, 111, 117, 121, 120, 121, 113, 117, 119, 111, 113, 118, 108, 113, 113, 96, 109, 115, 107, 108, 114, 134, 113, 118, 126, 111, 118, 115, 118, 121, 105, 114, 111, 110, 130, 114, 114, 116, 120, 112, 119, 115, 113, 109, 123, 116, 113, 133, 112, 106, 113, 118, 115, 119, 115, 128, 128, 112, 127, 118, 120, 106, 123, 116, 114, 114, 115, 126, 110, 118, 107, 117, 105, 108, 115, 117, 118, 115, 106, 120, 120, 120, 118, 130, 116, 123, 116, 131, 108, 108, 124, 106, 116, 108, 114, 103, 126, 111, 119, 121, 122, 129, 117, 116, 107, 125, 107, 112, 114, 115, 112, 119, 140, 116, 100, 105, 113, 122, 125, 117, 120, 124, 118, 111, 124, 119, 114, 111, 109, 116, 114, 112, 119, 124, 116, 115, 118, 119, 112, 129, 116, 118, 118, 122, 97, 116, 117, 119, 102, 99, 115, 110, 120, 110, 114, 115, 122, 125, 131, 114, 117, 111, 118, 121, 122, 101, 119, 118, 128, 125, 112, 115, 114, 127, 121, 106, 111, 112, 109, 132, 122, 120, 117, 108, 131, 104, 126, 119, 120, 128, 119, 118, 118, 119, 128, 112, 115, 108, 114, 115, 116, 105, 125, 116, 123, 118, 122, 134, 113, 108, 117, 113, 111, 123, 107, 130, 110, 100, 112, 120, 128, 114, 119, 117, 116, 111, 122, 126, 117, 104, 128, 106, 104, 115, 116, 111, 109, 121, 120, 129, 116, 117, 111, 106, 122, 119, 116, 101, 132, 125, 109, 120, 113, 107, 118, 102, 115, 119, 115, 120, 110, 121, 124, 111, 128, 120, 114, 115, 114, 114, 115, 130, 113, 108, 111, 117, 111, 120, 114, 119, 113, 110, 115, 122, 128, 113, 109, 119, 112, 114, 125, 125, 115, 111, 124, 115, 113, 106, 116, 122, 122, 116, 119, 121, 113, 130, 113, 109, 119, 108, 99, 111, 116, 124, 113, 112, 114, 120, 118, 113, 119, 118, 111, 114, 111, 117, 114, 121, 121, 109, 112, 103, 122, 115, 114, 114, 119, 129, 120, 117, 123, 119, 112, 121, 105, 98, 119, 121, 127, 122, 119, 117, 123, 120, 112, 107, 111, 116, 107, 115, 124, 120, 118, 116, 99, 128, 127, 114, 117, 124, 119, 111, 113, 110, 106, 120, 110, 108, 117, 118, 102, 107, 125, 118, 116, 122, 114, 113, 111, 114, 116, 121, 108, 116, 109, 129, 121, 110, 128, 129, 121, 117, 115, 115, 122, 127, 114, 105, 106, 113, 122, 119, 109, 113, 110, 112, 126, 122, 117, 124, 120, 126, 127, 112, 122, 119, 116, 118, 110, 133, 125, 121, 124, 120, 117, 110, 109, 107, 111, 115, 137, 116, 112, 116, 111, 112, 117, 107, 115, 128, 111, 113, 130, 124, 120, 117, 114, 113, 99, 113, 126, 101, 122, 114, 122, 123, 127, 107, 122, 121, 102, 127, 119, 110, 122, 113, 111, 118, 119, 129, 117, 113, 122, 123, 107, 124, 121, 114, 129, 117, 120, 111, 106, 124, 117, 104, 110, 117, 116, 122, 113, 116, 117, 110, 111, 116, 116, 104, 121, 132, 119, 117, 109, 118, 126, 117, 106, 122, 112, 122, 116, 110, 120, 118, 110, 130, 112, 130, 118, 117, 114, 125, 121, 106, 103, 106, 121, 128, 153, 104, 114, 108, 126, 106, 117, 103, 116, 113, 120, 105, 117, 124, 112, 109, 123, 123, 104, 108, 111, 113, 111, 114, 110, 112, 118, 120, 114, 113, 115, 124, 112, 114, 102, 126, 112, 107, 126, 121, 120, 118, 113, 118, 118, 108, 133, 103, 118, 117, 114, 115, 121, 120, 113, 118, 96, 113, 105, 130, 121, 104, 114, 116, 113, 112, 121, 113, 130, 113, 124, 111, 107, 121, 116, 114, 128, 116, 119, 119, 119, 121, 110, 111, 112, 122, 122, 114, 117, 126, 126, 124, 114, 118, 125, 107, 130, 119, 108, 116, 109, 115, 117, 116, 118, 114, 123, 105, 126, 118, 118, 116, 106, 114, 116, 118, 116, 115, 127, 114, 111, 114, 116, 118, 105, 106, 107, 112, 124, 96, 122, 113, 129, 111, 102, 129, 118, 108, 118, 153, 119, 115, 107, 117, 106, 106, 110, 114, 121, 126, 121, 115, 113, 125, 128, 117, 124, 120, 135, 119, 115, 119, 113, 111, 104, 112, 118, 116, 103, 123, 123, 113, 101, 108, 126, 117, 112, 114, 116, 102, 110, 123, 128, 103, 124, 110, 111, 128, 114, 112, 122, 116, 95, 104, 113, 127, 115, 110, 113, 90, 119, 127, 114, 118, 109, 112, 123, 120, 115, 102, 137, 120, 116, 120, 119, 111, 112, 110, 111, 121, 129, 121, 120, 110, 122, 122, 116, 115, 113, 119, 112, 121, 114, 118, 117, 124, 112, 121, 116, 113, 114, 120, 118, 114, 119, 129, 112, 115, 110, 116, 108, 113, 124, 125, 107, 109, 110, 120, 114, 112, 116, 109, 111, 123, 122, 118, 128, 119, 111, 116, 102, 113, 114, 103, 113, 127, 114, 125, 114, 114, 115, 111, 115, 117, 110, 112, 109, 113, 102, 122, 110, 115, 111, 104, 117, 120, 109, 111, 122, 114, 122, 132, 119, 115, 109, 113, 102, 119, 105, 119, 118, 115, 136, 114, 131, 112, 119, 108, 112, 127, 103, 118, 110, 125, 130, 117, 116, 115, 109, 134, 125, 116, 110, 122, 116, 121, 104, 115, 106, 117, 120, 118, 114, 117, 111, 122, 108, 105, 101, 116, 115, 111, 116, 104, 109, 127, 112, 110, 110, 124, 122, 125, 114, 101, 118, 124, 109, 122, 122, 119, 119, 133, 108, 120, 107, 118, 101, 110, 130, 106, 120, 114, 111, 108, 117, 108, 126, 120, 102, 123, 111, 120, 122, 101, 119, 120, 119, 120, 127, 103, 113, 108, 125, 117, 110, 99, 110, 102, 121, 136, 127, 127, 126, 109, 109, 120, 116, 129, 110, 105, 120, 110, 102, 98, 121, 118, 119, 116, 107, 118, 115, 123, 128, 126, 122, 106, 107, 103, 125, 108, 121, 112, 123, 102, 108, 117, 109, 100, 108, 115, 104, 101, 110, 110, 112, 95, 124, 105, 119, 123, 118, 112, 120, 116, 128, 112, 113, 113, 108, 111, 119, 121, 117, 110, 129, 116, 107, 113, 134, 116, 115, 119, 106, 117, 113, 123, 113, 111, 115, 117, 122, 125, 136, 128, 107, 121, 121, 111, 110, 109, 95, 121, 109, 111, 123, 108, 100, 116, 104, 110, 99, 119, 107, 132, 111, 103, 119, 108, 122, 113, 112, 115, 107, 138, 111, 115, 133, 116, 130, 120, 125, 122, 116, 107, 119, 131, 120, 102, 112, 106, 115, 116, 107, 115, 126, 105, 125, 117, 118, 113, 103, 119, 122, 94, 107, 121, 110, 134, 122, 118, 132, 139, 114, 128, 113, 109, 115, 107, 128, 100, 102, 110, 120, 121, 133, 117, 107, 128, 100, 106, 134, 131, 111, 116, 115, 127, 141, 110, 130, 110, 121, 128, 120, 125, 105, 125, 123, 139, 99, 125, 106, 116, 112, 95, 106, 116, 109, 133, 115, 116, 119, 115, 113, 130, 115, 104, 100, 106, 120, 101, 122, 127, 123, 110, 114, 143, 123, 105, 103, 108, 112, 91, 120, 110, 128, 120, 109, 117, 129, 113, 103, 115, 152, 112, 108, 127, 122, 115, 100, 131, 122, 111, 116, 108, 111, 117, 118, 108, 124, 114, 111, 106, 117, 121, 128, 104, 108, 113, 110, 95, 99, 114, 117, 117, 109, 106, 120, 116, 122, 135, 120, 111, 121, 114, 112, 122, 114, 115, 114, 112, 102, 116, 133, 125, 101, 119, 110, 111, 116, 112, 109, 108, 112, 110, 113, 103, 100, 113, 122, 118, 114, 119, 122, 101, 130, 112, 100, 115, 106, 107, 125, 111, 105, 119, 102, 124, 121, 118, 108, 114, 115, 127, 118, 109, 127, 120, 104, 108, 127, 112, 97, 112, 121, 108, 109, 111, 102, 130, 118, 107, 116, 103, 120, 112, 104, 110, 110, 120, 125, 128, 120, 99, 114, 105, 101, 106, 132, 123, 144, 123, 110, 131, 113, 114, 112, 111, 125, 139, 113, 130, 119, 118, 108, 117, 117, 105, 98, 118, 122, 121, 104, 106, 121, 108, 113, 129, 108, 114, 120, 124, 111, 115, 111, 118, 113, 120, 125, 114, 116, 112, 106, 126, 120, 124, 95, 120, 118, 119, 125, 123, 126, 108, 113, 101, 125, 114, 98, 123, 120, 109, 108, 106, 117, 128, 109, 137, 112, 106, 118, 114, 142, 119, 107, 108, 112, 113, 111, 100, 105, 104, 128, 129, 105, 106, 118, 113, 105, 133, 125, 113, 126, 125, 114, 116, 97, 117, 135, 107, 110, 101, 117, 107, 130, 108, 109, 108, 120, 114, 124, 129, 129, 128, 94, 119, 107, 124, 139, 116, 129, 109, 113, 109, 107, 127, 120, 98, 130, 98, 127, 119, 104, 115, 127, 127, 129, 111, 114, 125, 91, 105, 111, 111, 93, 94, 97, 132, 116, 108, 116, 129, 108, 110, 126, 119, 118, 103, 108, 111, 130, 143, 132, 121, 99, 138, 103, 135, 121, 107, 100, 114, 121, 117, 109, 107, 94, 110, 139, 128, 122, 109, 116, 113, 124, 123, 125, 121, 114, 107, 104, 117, 119, 104, 132, 119, 110, 121, 115, 108, 116, 111, 126, 117, 128, 122, 122, 99, 106, 114, 124, 113, 113, 99, 110, 127, 113, 118, 114, 113, 106, 108, 110, 128, 114, 109, 126, 111, 112, 115, 110, 115, 109, 118, 116, 113, 120, 145, 116, 110, 107, 100, 116, 110, 133, 114, 113, 120, 112, 118, 142, 129, 118, 124, 122, 122, 104, 118, 116, 120, 112, 104, 104, 114, 95, 113, 113, 121, 102, 104, 98, 103, 122, 112, 123, 107, 115, 109, 113, 110, 105, 131, 103, 129, 147, 116, 108, 111, 116, 116, 112, 131, 130, 108, 108, 120, 113, 110, 105, 122, 127, 124, 124, 112, 120, 122, 131, 101, 115, 112, 112, 115, 114, 107, 117, 104, 125, 122, 140, 123, 105, 114, 124, 113, 121, 114, 121, 127, 116, 105, 120, 114, 119, 117, 122, 124, 131, 114, 102, 105, 109, 118, 127, 115, 121, 115, 116, 116, 116, 118, 115, 99, 118, 120, 120, 126, 118, 114, 116, 113, 112, 110, 118, 134, 130, 133, 127, 113, 122, 94, 99, 110, 105, 106, 118, 120, 113, 118, 107, 122, 109, 106, 124, 109, 113, 127, 136, 121, 112, 123, 120, 102, 126, 109, 115, 110, 106, 108, 134, 124, 110, 100, 96, 112, 113, 115, 118, 122, 113, 106, 114, 116, 121, 133, 101, 117, 112, 117, 117, 109, 113, 130, 108, 111, 115, 121, 115, 115, 112, 119, 117, 125, 119, 110, 116, 117, 107, 86, 129, 117, 109, 121, 140, 99, 106, 111, 115, 117, 127, 118, 115, 108, 110, 110, 122, 112, 122, 115, 107, 119, 135, 113, 108, 126, 114, 117, 113, 117, 115, 120, 107, 109, 116, 124, 119, 117, 120, 113, 124, 127, 115, 123, 128, 134, 102, 115, 116, 103, 107, 118, 105, 107, 118, 130, 111, 114, 111, 130, 115, 132, 117, 110, 142, 124, 119, 105, 109, 114, 124, 110, 108, 115, 120, 129, 119, 134, 113, 113, 121, 116, 110, 99, 104, 116, 108, 130, 121, 119, 126, 99, 130, 113, 111, 116, 115, 110, 112, 120, 104, 137, 117, 121, 128, 123, 125, 112, 124, 114, 130, 122, 117, 120, 127, 116, 119, 114, 115, 109, 119, 119, 131, 123, 135, 115, 109, 109, 113, 104, 111, 111, 109, 111, 109, 107, 115, 112, 123, 120, 106, 121, 105, 109, 125, 115, 146, 125, 106, 116, 104, 104, 108, 126, 123, 134, 110, 124, 104, 119, 125, 121, 120, 109, 112, 127, 114, 123, 123, 106, 114, 125, 109, 100, 126, 107, 100, 125, 118, 106, 113, 117, 113, 115, 124, 117, 135, 112, 103, 118, 106, 113, 107, 110, 114, 111, 127, 118, 106, 108, 119, 113, 107, 119, 110, 114, 120, 118, 105, 116, 128, 116, 119, 111, 107, 114, 122, 115, 110, 114, 125, 117, 109, 131, 112, 104, 124, 122, 115, 117, 104, 103, 117, 114, 123, 134, 123, 110, 115, 114, 125, 125, 126, 112, 123, 126, 121, 110, 116, 106, 130, 120, 120, 116, 138, 108, 113, 113, 113, 126, 132, 103, 121, 110, 118, 112, 104, 101, 112, 93, 111, 122, 109, 114, 102, 109, 111, 118, 125, 138, 122, 107, 126, 106, 125, 121, 120, 116, 109, 114, 114, 108, 125, 112, 118, 106, 114, 107, 100, 106, 138, 99, 123, 117, 110, 108, 131, 120, 118, 117, 131, 111, 116, 117, 121, 109, 135, 115, 128, 123, 122, 126, 97, 108, 118, 88, 96, 105, 129, 110, 117, 125, 111, 122, 110, 115, 108, 124, 139, 108, 133, 121, 169, 115, 110, 117, 118, 114, 99, 112, 124, 109, 115, 118, 118, 110, 118, 97, 111, 112, 126, 99, 120, 123, 121, 125, 133, 112, 113, 124, 127, 109, 118, 117, 100, 117, 123, 117, 117, 116, 121, 109, 111, 114, 116, 130, 110, 124, 118, 110, 110, 115, 101, 115, 115, 133, 116, 118, 119, 119, 126, 116, 119, 114, 119, 114, 112, 114, 122, 108, 117, 101, 111, 103, 132, 111, 105, 115, 118, 118, 117, 116, 108, 107, 118, 110, 106, 117, 111, 123, 118, 118, 126, 103, 116, 105, 123, 109, 127, 109, 122, 125, 112, 123, 108, 105, 126, 119, 116, 115, 105, 112, 111, 115, 121, 121, 118, 117, 122, 115, 133, 121, 114, 118, 112, 124, 118, 123, 108, 111, 118, 126, 127, 118, 113, 121, 118, 110, 108, 122, 113, 134, 97, 134, 109, 112, 116, 112, 112, 107, 113, 114, 119, 114, 121, 110, 116, 105, 103, 105, 101, 117, 109, 117, 107, 112, 132, 125, 113, 124, 124, 114, 130, 125, 109, 109, 139, 109, 119, 107, 112, 123, 119, 120, 98, 114, 125, 107, 115, 123, 122, 117, 110, 140, 109, 117, 113, 126, 122, 118, 111, 126, 111, 114, 111, 107, 115, 107, 94, 118, 123, 117, 117, 121, 123, 118, 112, 118, 107, 123, 121, 94, 116, 106, 122, 122, 119, 113, 119, 130, 112, 102, 115, 124, 118, 126, 117, 117, 107, 110, 115, 124, 116, 104, 118, 104, 108, 118, 121, 120, 118, 120, 122, 112, 105, 159, 110, 110, 107, 116, 100, 105, 116, 111, 117, 114, 118, 125, 125, 111, 120, 115, 119, 93, 124, 128, 118, 117, 112, 114, 116, 125, 119, 116, 112, 113, 118, 109, 122, 100, 114, 115, 129, 122, 107, 114, 98, 116, 118, 121, 115, 123, 116, 111, 118, 127, 120, 114, 116, 109, 136, 114, 113, 118, 107, 117, 128, 144, 122, 105, 112, 118, 124, 112, 108, 112, 120, 109, 120, 118, 120, 117, 124, 132, 120, 108, 117, 122, 124, 117, 115, 127, 114, 116, 109, 120, 129, 112, 133, 122, 111, 117, 120, 137, 104, 133, 108, 115, 105, 118, 108, 115, 117, 117, 98, 115, 107, 165, 99, 128, 94, 122, 116, 98, 115, 122, 113, 109, 126, 118, 115, 112, 106, 121, 114, 110, 99, 98, 109, 122, 122, 91, 111, 115, 114, 129, 120, 114, 120, 136, 112, 115, 106, 116, 114, 106, 121, 104, 121, 110, 120, 118, 117, 109, 113, 111, 114, 116, 117, 120, 107, 115, 92, 115, 109, 117, 116, 97, 111, 119, 111, 117, 111, 104, 115, 112, 111, 115, 114, 106, 130, 115, 122, 112, 122, 131, 132, 107, 92, 121, 113, 137, 105, 123, 117, 121, 104, 88, 121, 119, 131, 118, 116, 121, 113, 124, 122, 116, 117, 121, 119, 124, 113, 123, 105, 125, 113, 131, 116, 100, 112, 117, 112, 126, 122, 124, 115, 108, 96, 122, 103, 84, 118, 135, 110, 143, 107, 158, 104, 130, 89, 121, 124, 114, 137, 112, 109, 110, 109, 109, 136, 105, 112, 123, 110, 103, 96, 122, 114, 115, 113, 107, 114, 130, 118, 105, 101, 123, 120, 118, 112, 146, 113, 120, 110, 124, 111, 100, 126, 114, 121, 108, 108, 112, 114, 121, 125, 123, 111, 115, 112, 115, 106, 127, 124, 113, 119, 110, 109, 112, 115, 111, 104, 138, 103, 86, 100, 113, 121, 125, 123, 105, 122, 126, 127, 120, 103, 117, 128, 94, 113, 116, 113, 117, 125, 106, 106, 118, 138, 109, 73, 109, 129, 112, 127, 114, 127, 120, 114, 99, 119, 99, 105, 124, 110, 112, 123, 97, 151, 120, 129, 98, 114, 132, 98, 116, 134, 126, 82, 107, 89, 123, 113, 105, 123, 103, 117, 115, 106, 108, 120, 135, 132, 130, 115, 113, 111, 101, 105, 114, 130, 113, 124, 117, 116, 117, 133, 113, 112, 94, 112, 103, 124, 121, 116, 93, 118, 109, 109, 126, 117, 106, 114, 128, 119, 111, 125, 112, 121, 121, 131, 140, 119, 127, 117, 104, 122, 119, 143, 83, 114, 114, 111, 113, 116, 127, 118, 119, 113, 109, 111, 114, 108, 100, 109, 109, 115, 114, 111, 113, 104, 114, 100, 107, 107, 91, 127, 114, 119, 123, 123, 102, 107, 115, 107, 129, 98, 115, 114, 110, 108, 130, 103, 89, 121, 122, 127, 120, 113, 103, 127, 117, 118, 115, 112, 102, 117, 115, 108, 115, 115, 111, 125, 119, 105, 106, 124, 106, 106, 121, 122, 106, 117, 114, 121, 116, 134, 125, 105, 121, 99, 142, 117, 120, 120, 111, 99, 124, 115, 104, 118, 119, 119, 122, 107, 119, 106, 117, 105, 115, 106, 141, 120, 118, 103, 112, 112, 118, 112, 124, 92, 104, 112, 99, 120, 125, 110, 116, 118, 111, 105, 109, 125, 113, 116, 113, 98, 110, 108, 120, 121, 101, 148, 135, 129, 106, 115, 122, 125, 108, 98, 51, 117, 103, 97, 110, 111, 115, 111, 137, 116, 104, 124, 117, 108, 127, 107, 110, 150, 116, 104, 120, 120, 109, 123, 124, 111, 129, 114, 109, 101, 115, 96, 106, 118, 118, 112, 95, 85, 107, 131, 129, 101, 103, 121, 117, 123, 135, 115, 116, 114, 108, 113, 114, 117, 133, 102, 113, 108, 115, 128, 122, 121, 112, 133, 107, 105, 105, 129, 122, 106, 92, 112, 111, 106, 116, 124, 110, 113, 106, 98, 92, 87, 100, 117, 87, 121, 117, 119, 117, 133, 120, 106, 114, 115, 124, 102, 118, 103, 124, 109, 119, 109, 107, 115, 110, 141, 110, 107, 133, 128, 124, 117, 126, 106, 109, 114, 102, 112, 115, 120, 109, 123, 109, 123, 114, 101, 106, 97, 121, 123, 116, 118, 119, 118, 126, 118, 120, 112, 112, 110, 110, 125, 131, 129, 104, 103, 112, 134, 134, 92, 137, 125, 104, 144, 119, 114, 121, 82, 142, 137, 108, 130, 115, 104, 126, 108, 120, 115, 135, 121, 110, 127, 112, 111, 137, 126, 110, 141, 100, 104, 124, 113, 103, 113, 125, 107, 176, 149, 102, 103, 103, 120, 122, 104, 106, 105, 122, 123, 105, 104, 113, 115, 113, 108, 120, 120, 111, 116, 104, 124, 98, 119, 119, 127, 139, 112, 124, 98, 122, 113, 122, 112, 124, 126, 115, 123, 118, 108, 111, 125, 109, 115, 119, 121, 134, 128, 113, 109, 106, 120, 111, 123, 118, 116, 110, 126, 134, 118, 114, 117, 111, 99, 110, 125, 131, 103, 115, 123, 101, 118, 122, 110, 128, 104, 115, 102, 121, 115, 130, 109, 115, 129, 126, 103, 107, 125, 115, 109, 111, 111, 130, 121, 124, 108, 112, 122, 87, 110, 133, 118, 130, 117, 128, 114, 116, 82, 114, 129, 106, 115, 121, 112, 131, 119, 125, 123, 133, 114, 117, 108, 123, 127, 132, 117, 107, 119, 107, 122, 107, 114, 95, 128, 102, 127, 111, 110, 120, 124, 130, 115, 119, 105, 88, 119, 116, 132, 109, 117, 132, 119, 114, 126, 119, 112, 109, 117, 121, 109, 98, 123, 104, 128, 124, 108, 115, 103, 141, 125, 109, 112, 109, 108, 169, 108, 123, 116, 120, 116, 108, 106, 113, 124, 110, 119, 122, 115, 87, 119, 135, 125, 118, 118, 120, 119, 112, 126, 119, 120, 113, 116, 114, 111, 117, 112, 122, 106, 102, 129, 118, 115, 109, 131, 115, 113, 121, 117, 104, 103, 105, 114, 113, 104, 122, 109, 122, 115, 122, 104, 102, 103, 128, 106, 132, 119, 117, 114, 132, 118, 137, 126, 128, 106, 114, 114, 125, 123, 123, 96, 111, 131, 104, 114, 109, 124, 115, 121, 93, 97, 112, 116, 119, 113, 132, 114, 119, 124, 112, 115, 119, 112, 123, 125, 121, 116, 117, 107, 114, 123, 118, 94, 132, 101, 104, 97, 120, 118, 127, 113, 115, 116, 112, 118, 121, 105, 114, 131, 106, 124, 121, 113, 100, 124, 115, 112, 111, 115, 120, 121, 108, 134, 113, 104, 121, 105, 100, 108, 121, 112, 120, 109, 112, 126, 127, 121, 122, 128, 100, 116, 109, 113, 111, 130, 138, 110, 119, 109, 117, 130, 115, 100, 126, 124, 118, 111, 130, 113, 107, 115, 111, 107, 123, 107, 124, 90, 113, 128, 115, 114, 121, 130, 123, 124, 105, 125, 118, 119, 125, 118, 123, 115, 119, 130, 107, 111, 119, 122, 109, 147, 100, 114, 121, 112, 114, 117, 107, 109, 118, 120, 121, 116, 121, 106, 120, 114, 114, 120, 137, 117, 122, 111, 111, 129, 158, 132, 112, 119, 126, 110, 119, 117, 117, 128, 126, 109, 114, 113, 110, 108, 119, 133, 104, 112, 104, 119, 112, 114, 98, 113, 119, 123, 119, 119, 106, 122, 115, 113, 118, 116, 112, 115, 118, 121, 124, 126, 122, 112, 106, 115, 112, 127, 103, 120, 107, 116, 111, 104, 123, 115, 111, 107, 128, 114, 111, 124, 109, 124, 100, 142, 131, 117, 110, 150, 116, 112, 111, 99, 116, 98, 108, 130, 116, 113, 119, 111, 98, 121, 111, 130, 102, 113, 115, 120, 118, 111, 114, 131, 120, 137, 115, 96, 113, 110, 118, 120, 127, 123, 127, 113, 103, 119, 101, 121, 129, 126, 114, 113, 107, 111, 108, 109, 107, 110, 134, 103, 115, 115, 114, 117, 124, 122, 112, 110, 123, 110, 125, 111, 128, 104, 150, 101, 117, 121, 112, 119, 110, 119, 123, 114, 123, 108, 122, 117, 111, 135, 107, 106, 116, 106, 109, 122, 111, 120, 112, 115, 124, 135, 111, 118, 104, 107, 109, 111, 118, 115, 122, 120, 130, 127, 120, 121, 128, 121, 117, 105, 109, 100, 112, 121, 127, 118, 101, 119, 123, 111, 127, 107, 126, 114, 119, 112, 117, 112, 153, 122, 137, 112, 110, 122, 115, 111, 116, 120, 106, 112, 118, 114, 124, 119, 109, 112, 101, 107, 115, 119, 115, 125, 111, 114, 136, 120, 112, 119, 98, 130, 123, 98, 118, 120, 120, 120, 120, 103, 134, 126, 116, 121, 115, 100, 129, 120, 107, 106, 110, 106, 121, 110, 106, 108, 110, 113, 115, 128, 117, 118, 125, 123, 110, 115, 115, 105, 97, 133, 112, 115, 115, 120, 110, 97, 122, 109, 106, 121, 119, 85, 116, 124, 125, 115, 110, 128, 115, 116, 125, 115, 113, 105, 113, 125, 111, 125, 121, 127, 111, 104, 111, 121, 120, 111, 116, 111, 120, 123, 120, 119, 123, 117, 113, 109, 118, 118, 120, 131, 107, 113, 106, 112, 120, 108, 122, 118, 120, 127, 130, 124, 128, 109, 136, 108, 114, 135, 134, 105, 122, 121, 122, 106, 112, 111, 106, 95, 106, 126, 122, 110, 109, 120, 114, 111, 112, 106, 116, 115, 126, 121, 114, 119, 134, 117, 109, 123, 118, 115, 102, 119, 117, 135, 130, 116, 113, 112, 110, 108, 115, 121, 93, 114, 114, 139, 127, 108, 120, 127, 120, 121, 111, 105, 119, 116, 126, 141, 113, 120, 109, 119, 112, 117, 118, 119, 126, 108, 113, 114, 115, 114, 109, 121, 110, 123, 119, 124, 109, 110, 111, 120, 111, 105, 115, 117, 104, 110, 133, 131, 101, 120, 120, 125, 108, 107, 122, 117, 129, 108, 110, 136, 109, 119, 117, 126, 113, 108, 112, 133, 121, 121, 109, 111, 128, 112, 117, 119, 108, 111, 131, 121, 129, 118, 109, 113, 110, 123, 111, 108, 116, 103, 130, 119, 97, 117, 121, 120, 119, 110, 115, 117, 100, 107, 115, 123, 118, 113, 118, 110, 113, 117, 95, 115, 121, 113, 115, 136, 126, 114, 121, 121, 106, 104, 116, 114, 123, 96, 116, 128, 117, 118, 125, 124, 112, 120, 136, 121, 122, 135, 114, 122, 107, 107, 124, 116, 94, 130, 123, 130, 115, 104, 120, 78, 112, 121, 120, 119, 117, 127, 117, 109, 110, 102, 105, 118, 120, 118, 120, 111, 109, 117, 115, 111, 109, 123, 97, 109, 123, 115, 116, 115, 153, 115, 121, 122, 128, 116, 120, 109, 119, 112, 112, 126, 121, 123, 111, 122, 124, 109, 119, 105, 100, 112, 114, 132, 159, 114, 125, 123, 122, 118, 140, 117, 109, 110, 112, 114, 120, 111, 118, 126, 123, 106, 123, 111, 119, 124, 126, 131, 125, 130, 132, 134, 117, 113, 119, 131, 117, 129, 127, 120, 114, 125, 128, 119, 131, 125, 122, 127, 113, 84, 89, 127, 100, 110, 126, 119, 131, 114, 118, 112, 119, 126, 97, 146, 128, 120, 106, 113, 106, 114, 137, 128, 127, 115, 110, 123, 132, 124, 113, 108, 101, 122, 125, 123, 112, 113, 115, 116, 117, 115, 103, 117, 116, 120, 120, 131, 107, 114, 98, 110, 121, 109, 122, 105, 125, 103, 123, 107, 117, 119, 106, 126, 107, 168, 114, 121, 121, 106, 117, 136, 123, 122, 110, 116, 114, 115, 116, 123, 119, 117, 112, 112, 117, 124, 120, 117, 110, 117, 118, 120, 121, 104, 115, 115, 106, 94, 104, 113, 116, 120, 116, 125, 101, 126, 120, 117, 118, 112, 143, 117, 111, 113, 126, 123, 127, 124, 106, 127, 105, 109, 108, 119, 109, 119, 106, 126, 128, 124, 110, 122, 120, 119, 116, 119, 113, 131, 113, 109, 119, 129, 116, 120, 122, 119, 126, 128, 107, 122, 110, 117, 123, 121, 114, 120, 112, 118, 111, 109, 122, 118, 125, 118, 114, 121, 116, 106, 114, 106, 123, 116, 107, 136, 105, 122, 91, 123, 99, 125, 105, 103, 122, 98, 100, 124, 115, 118, 108, 110, 112, 120, 107, 118, 113, 122, 124, 123, 128, 107, 115, 114, 113, 98, 113, 138, 123, 126, 109, 114, 122, 121, 109, 117, 109, 110, 124, 94, 112, 115, 117, 108, 117, 116, 109, 115, 120, 115, 124, 103, 115, 117, 107, 118, 122, 118, 122, 130, 124, 115, 109, 120, 124, 85, 125, 121, 118, 122, 118, 103, 136, 109, 117, 105, 113, 124, 122, 113, 129, 122, 122, 163, 117, 112, 115, 136, 116, 115, 112, 115, 132, 105, 110, 94, 129, 114, 106, 101, 104, 107, 117, 130, 97, 113, 118, 123, 118, 91, 113, 107, 122, 105, 102, 120, 104, 113, 119, 135, 121, 112, 110, 114, 127, 120, 115, 119, 131, 120, 105, 124, 112, 112, 119, 111, 117, 132, 104, 113, 108, 118, 116, 116, 121, 121, 111, 138, 98, 119, 111, 107, 122, 129, 104, 117, 110, 118, 113, 114, 113, 107, 113, 109, 112, 114, 120, 121, 116, 105, 120, 111, 105, 101, 113, 123, 116, 112, 119, 122, 110, 123, 109, 112, 123, 120, 115, 120, 121, 106, 106, 124, 122, 122, 104, 113, 121, 104, 109, 111, 131, 113, 122, 117, 122, 107, 128, 122, 107, 113, 113, 106, 108, 112, 120, 113, 112, 117, 112, 119, 134, 132, 119, 119, 113, 112, 116, 136, 121, 107, 109, 112, 129, 118, 125, 122, 112, 114, 117, 122, 115, 118, 116, 124, 112, 121, 127, 125, 138, 111, 121, 102, 136, 114, 115, 126, 113, 123, 125, 116, 122, 121, 120, 116, 117, 116, 106, 114, 116, 123, 114, 115, 118, 124, 119, 131, 123, 113, 115, 114, 108, 113, 114, 117, 135, 111, 128, 125, 113, 118, 109, 131, 112, 117, 108, 114, 129, 120, 121, 114, 117, 123, 125, 110, 116, 105, 101, 123, 117, 118, 108, 117, 116, 124, 114, 130, 109, 120, 114, 126, 104, 113, 117, 107, 109, 119, 127, 115, 116, 120, 126, 111, 117, 117, 117, 107, 118, 116, 111, 121, 117, 109, 112, 114, 119, 138, 121, 122, 127, 117, 116, 123, 104, 121, 109, 99, 122, 117, 123, 109, 118, 122, 115, 125, 109, 113, 117, 113, 117, 136, 104, 120, 113, 112, 128, 117, 107, 132, 114, 114, 116, 108, 111, 110, 125, 116, 110, 111, 113, 119, 124, 118, 121, 118, 110, 111, 117, 117, 107, 119, 118, 98, 108, 122, 113, 127, 121, 117, 108, 120, 111, 126, 123, 115, 130, 112, 113, 117, 112, 124, 120, 113, 112, 120, 111, 115, 106, 123, 119, 115, 123, 104, 120, 120, 126, 117, 123, 121, 106, 123, 112, 124, 135, 119, 111, 122, 117, 113, 119, 113, 114, 124, 115, 120, 117, 121, 102, 127, 121, 120, 130, 128, 114, 114, 115, 115, 115, 114, 111, 118, 111, 118, 119, 111, 111, 125, 99, 128, 152, 117, 125, 109, 122, 116, 107, 120, 114, 124, 101, 114, 118, 133, 110, 128, 117, 112, 121, 113, 115, 122, 114, 120, 123, 121, 120, 117, 123, 109, 116, 119, 124, 124, 108, 111, 103, 121, 119, 104, 107, 118, 112, 117, 118, 115, 114, 107, 117, 111, 121, 113, 113, 122, 119, 126, 125, 115, 109, 119, 132, 114, 106, 112, 123, 110, 109, 109, 124, 120, 119, 129, 113, 111, 109, 110, 111, 117, 118, 116, 111, 121, 122, 104, 124, 109, 117, 111, 112, 114, 114, 114, 116, 129, 113, 125, 90, 125, 118, 111, 117, 115, 97, 136, 123, 108, 120, 125, 116, 121, 115, 131, 114, 117, 119, 120, 111, 108, 127, 121, 106, 113, 108, 116, 112, 114, 126, 103, 115, 112, 129, 128, 119, 118, 104, 118, 117, 111, 101, 116, 113, 104, 114, 104, 109, 110, 117, 115, 110, 116, 113, 120, 114, 113, 112, 118, 115, 116, 115, 120, 114, 129, 123, 122, 114, 109, 112, 110, 117, 110, 122, 112, 116, 112, 104, 114, 109, 110, 121, 118, 122, 126, 115, 116, 125, 121, 117, 114, 103, 128, 122, 113, 112, 139, 103, 108, 123, 102, 109, 115, 119, 105, 118, 118, 119, 101, 114, 108, 125, 119, 120, 109, 115, 114, 119, 123, 118, 107, 114, 126, 114, 119, 124, 119, 106, 118, 119, 122, 121, 111, 110, 119, 114, 129, 111, 117, 114, 110, 110, 114, 112, 130, 124, 124, 109, 107, 113, 119, 111, 121, 117, 116, 113, 128, 113, 109, 130, 114, 116, 122, 118, 116, 120, 114, 111, 118, 111, 126, 115, 111, 106, 113, 123, 101, 117, 122, 117, 112, 111, 120, 94, 114, 117, 117, 117, 122, 115, 131, 112, 108, 118, 120, 113, 111, 118, 118, 116, 113, 124, 122, 113, 113, 127, 99, 125, 112, 113, 119, 121, 119, 118, 118, 120, 105, 113, 107, 117, 112, 114, 114, 125, 111, 124, 122, 109, 116, 120, 116, 108, 108, 105, 121, 113, 123, 118, 116, 113, 123, 120, 108, 119, 119, 118, 124, 121, 113, 123, 110, 113, 131, 118, 137, 116, 113, 109, 118, 101, 107, 114, 145, 121, 127, 99, 106, 115, 123, 123, 125, 106, 114, 112, 126, 100, 130, 113, 107, 106, 116, 104, 100, 111, 113, 115, 115, 122, 93, 118, 125, 122, 110, 110, 121, 122, 125, 122, 120, 105, 109, 129, 110, 123, 124, 120, 130, 122, 98, 115, 100, 103, 99, 114, 106, 110, 126, 128, 110, 89, 113, 125, 120, 111, 111, 120, 109, 115, 127, 116, 114, 123, 124, 123, 116, 118, 114, 125, 137, 108, 113, 120, 103, 120, 111, 125, 118, 116, 106, 114, 117, 125, 88, 108, 108, 104, 110, 108, 113, 103, 110, 114, 101, 127, 98, 113, 113, 127, 105, 129, 109, 124, 111, 111, 119, 111, 113, 112, 114, 114, 123, 120, 115, 117, 113, 106, 108, 124, 124, 109, 112, 118, 111, 139, 102, 110, 124, 116, 113, 111, 105, 117, 113, 99, 99, 108, 119, 109, 112, 122, 122, 107, 108, 125, 122, 102, 112, 102, 110, 116, 110, 121, 107, 95, 111, 109, 106, 114, 115, 104, 110, 119, 103, 116, 127, 103, 108, 130, 112, 111, 116, 99, 120, 121, 110, 130, 130, 117, 103, 121, 116, 117, 116, 121, 106, 120, 137, 117, 108, 115, 120, 109, 122, 125, 119, 129, 121, 113, 120, 117, 110, 131, 110, 116, 134, 113, 115, 116, 105, 121, 117, 117, 110, 122, 113, 130, 113, 103, 101, 134, 131, 105, 122, 124, 104, 121, 137, 115, 105, 114, 111, 109, 123, 126, 113, 134, 117, 107, 117, 100, 111, 114, 112, 129, 120, 105, 151, 123, 120, 110, 118, 110, 107, 111, 110, 113, 114, 99, 116, 106, 122, 117, 130, 138, 117, 142, 113, 105, 126, 104, 125, 120, 130, 138, 105, 115, 130, 125, 122, 114, 98, 111, 111, 110, 116, 122, 123, 95, 117, 117, 130, 112, 128, 115, 117, 107, 117, 104, 113, 134, 118, 128, 108, 114, 120, 121, 114, 94, 108, 113, 112, 121, 112, 108, 109, 124, 109, 115, 116, 122, 116, 114, 122, 87, 120, 120, 109, 127, 114, 105, 109, 124, 150, 105, 102, 122, 109, 115, 111, 119, 122, 116, 108, 118, 132, 108, 124, 125, 130, 137, 136, 130, 113, 97, 125, 121, 110, 116, 110, 118, 117, 117, 128, 101, 115, 114, 114, 112, 114, 87, 129, 105, 104, 111, 126, 124, 114, 117, 126, 106, 116, 110, 116, 112, 122, 112, 117, 112, 108, 115, 102, 100, 103, 119, 104, 114, 127, 131, 103, 118, 115, 111, 121, 136, 109, 98, 122, 114, 87, 116, 104, 107, 137, 105, 118, 140, 109, 105, 121, 131, 114, 118, 136, 122, 126, 107, 93, 96, 97, 106, 112, 117, 123, 112, 104, 112, 120, 106, 122, 108, 117, 112, 102, 121, 114, 119, 104, 115, 138, 116, 109, 125, 94, 115, 139, 129, 123, 133, 133, 125, 106, 113, 125, 120, 116, 111, 130, 121, 115, 115, 107, 108, 122, 113, 107, 130, 101, 110, 108, 110, 128, 118, 109, 107, 105, 122, 113, 110, 119, 138, 124, 127, 106, 100, 95, 87, 135, 131, 99, 130, 122, 125, 109, 130, 115, 120, 117, 103, 110, 122, 107, 101, 118, 104, 137, 136, 113, 113, 114, 120, 113, 102, 116, 104, 129, 119, 122, 122, 114, 128, 89, 135, 119, 105, 112, 120, 100, 106, 121, 115, 110, 102, 111, 107, 111, 107, 119, 115, 99, 113, 100, 120, 119, 118, 121, 110, 112, 122, 126, 114, 117, 120, 104, 110, 134, 105, 132, 111, 110, 108, 129, 100, 108, 129, 122, 116, 111, 143, 102, 121, 119, 105, 124, 114, 112, 106, 123, 122, 102, 121, 105, 116, 110, 130, 104, 132, 119, 121, 104, 121, 120, 108, 114, 116, 118, 121, 119, 113, 105, 105, 119, 113, 99, 103, 116, 123, 103, 126, 114, 118, 107, 103, 127, 114, 117, 102, 131, 133, 125, 130, 117, 108, 120, 104, 116, 117, 123, 120, 108, 124, 109, 109, 136, 91, 110, 137, 113, 109, 108, 119, 121, 117, 121, 112, 96, 118, 111, 99, 117, 108, 128, 117, 105, 123, 109, 103, 107, 113, 106, 112, 112, 118, 120, 108, 106, 105, 113, 122, 109, 99, 114, 128, 118, 109, 122, 119, 135, 103, 105, 101, 122, 132, 102, 109, 123, 120, 125, 104, 125, 119, 116, 112, 115, 103, 116, 120, 119, 109, 125, 113, 115, 104, 118, 104, 103, 109, 104, 123, 107, 114, 121, 109, 114, 118, 111, 106, 120, 113, 127, 121, 101, 109, 123, 137, 113, 111, 106, 133, 109, 109, 116, 106, 134, 112, 116, 104, 116, 112, 113, 126, 114, 110, 108, 121, 115, 133, 123, 98, 108, 146, 104, 107, 121, 120, 117, 118, 96, 113, 104, 105, 115, 101, 119, 115, 110, 112, 113, 118, 108, 116, 121, 102, 126, 120, 110, 111, 110, 83, 105, 115, 118, 121, 119, 111, 118, 116, 112, 103, 126, 131, 106, 115, 131, 116, 119, 126, 114, 114, 127, 123, 119, 122, 113, 138, 111, 115, 100, 106, 112, 126, 122, 140, 113, 115, 111, 106, 112, 122, 121, 110, 138, 157, 108, 115, 117, 118, 139, 112, 108, 117, 117, 132, 107, 116, 111, 112, 116, 119, 108, 127, 119, 124, 120, 117, 150, 114, 129, 118, 106, 119, 105, 118, 115, 115, 88, 113, 114, 109, 130, 112, 106, 121, 106, 111, 125, 124, 109, 114, 117, 104, 133, 127, 108, 111, 88, 103, 115, 107, 112, 115, 106, 107, 130, 113, 107, 104, 109, 107, 99, 124, 109, 124, 92, 100, 101, 128, 104, 99, 115, 112, 122, 102, 124, 116, 114, 107, 113, 109, 112, 122, 130, 124, 139, 126, 107, 119, 115, 123, 103, 131, 126, 110, 106, 116, 101, 112, 100, 107, 104, 118, 97, 106, 127, 111, 127, 109, 117, 99, 121, 129, 115, 101, 115, 110, 111, 85, 124, 114, 118, 112, 133, 115, 113, 111, 121, 106, 114, 112, 124, 108, 117, 115, 91, 101, 124, 113, 104, 108, 114, 134, 116, 116, 108, 114, 104, 115, 112, 118, 119, 120, 125, 113, 128, 120, 120, 108, 116, 111, 104, 115, 114, 120, 113, 101, 123, 117, 120, 130, 114, 124, 111, 123, 112, 129, 105, 109, 110, 130, 125, 104, 118, 135, 126, 120, 105, 112, 106, 113, 107, 107, 112, 107, 112, 116, 113, 110, 109, 129, 104, 117, 123, 110, 116, 112, 107, 120, 119, 125, 116, 123, 118, 119, 135, 116, 120, 116, 108, 119, 120, 106, 119, 122, 110, 113, 113, 116, 105, 108, 121, 102, 113, 124, 127, 114, 119, 114, 100, 113, 97, 111, 108, 126, 105, 96, 111, 117, 113, 115, 119, 120, 122, 115, 116, 122, 92, 120, 127, 114, 123, 103, 105, 112, 106, 98, 108, 117, 108, 118, 92, 105, 105, 114, 135, 108, 131, 136, 108, 114, 123, 92, 111, 118, 111, 120, 118, 110, 130, 116, 117, 117, 114, 107, 110, 102, 125, 119, 124, 124, 118, 104, 122, 117, 110, 129, 110, 116, 102, 112, 120, 115, 129, 115, 124, 125, 133, 104, 112, 127, 111, 113, 111, 120, 116, 110, 120, 130, 117, 129, 111, 114, 119, 111, 117, 111, 115, 119, 117, 138, 118, 108, 131, 109, 120, 108, 109, 114, 111, 114, 123, 131, 113, 113, 116, 127, 110, 112, 97, 118, 108, 104, 120, 105, 104, 100, 118, 103, 132, 104, 115, 115, 109, 100, 150, 110, 119, 109, 119, 124, 115, 94, 119, 110, 117, 127, 134, 110, 117, 113, 119, 117, 112, 119, 126, 114, 114, 111, 109, 115, 136, 105, 126, 108, 109, 117, 117, 128, 119, 113, 130, 117, 102, 126, 132, 109, 116, 119, 105, 118, 125, 133, 115, 113, 121, 121, 121, 111, 116, 112, 112, 106, 106, 103, 118, 125, 111, 117, 107, 118, 111, 123, 106, 119, 122, 121, 127, 111, 122, 106, 110, 112, 142, 128, 117, 111, 106, 127, 128, 72, 116, 126, 121, 119, 112, 115, 132, 113, 127, 114, 102, 110, 111, 103, 117, 117, 119, 108, 114, 124, 111, 108, 116, 107, 116, 122, 118, 127, 111, 117, 122, 112, 115, 106, 110, 120, 124, 116, 116, 115, 103, 117, 108, 122, 116, 114, 115, 126, 110, 118, 108, 120, 108, 119, 116, 121, 94, 120, 126, 121, 122, 110, 126, 108, 118, 115, 124, 105, 113, 109, 125, 111, 102, 124, 119, 93, 114, 113, 118, 136, 125, 120, 107, 117, 120, 118, 138, 109, 105, 111, 100, 112, 117, 100, 125, 120, 105, 115, 110, 120, 113, 109, 114, 112, 102, 117, 123, 117, 123, 118, 112, 116, 112, 124, 113, 108, 110, 116, 98, 117, 107, 132, 109, 123, 122, 134, 114, 108, 115, 115, 122, 116, 105, 113, 108, 122, 113, 114, 114, 127, 113, 116, 107, 155, 122, 92, 110, 137, 132, 106, 116, 100, 114, 129, 110, 108, 115, 109, 113, 112, 118, 116, 116, 106, 133, 111, 106, 127, 121, 105, 118, 124, 121, 113, 117, 107, 116, 93, 126, 117, 120, 105, 123, 115, 106, 124, 111, 110, 102, 100, 133, 113, 111, 121, 113, 119, 120, 123, 120, 131, 126, 113, 132, 123, 105, 90, 116, 110, 132, 106, 102, 119, 105, 124, 114, 111, 118, 96, 131, 102, 153, 108, 98, 100, 126, 131, 106, 101, 112, 133, 107, 121, 115, 111, 123, 127, 126, 117, 146, 98, 91, 129, 96, 118, 115, 139, 126, 116, 141, 134, 113, 113, 114, 121, 108, 114, 106, 131, 112, 68, 104, 117, 115, 114, 108, 100, 123, 113, 113, 114, 135, 118, 113, 120, 117, 103, 108, 129, 122, 106, 125, 101, 110, 127, 129, 121, 119, 111, 106, 139, 103, 111, 107, 97, 108, 121, 125, 122, 128, 106, 120, 136, 115, 128, 147, 130, 154, 120, 127, 101, 125, 117, 111, 106, 137, 121, 86, 114, 114, 122, 101, 119, 129, 110, 134, 108, 113, 120, 127, 118, 110, 129, 122, 116, 115, 141, 92, 103, 142, 127, 99, 119, 111, 113, 113, 125, 105, 141, 119, 166, 161, 129, 113, 112, 133, 100, 132, 109, 103, 103, 110, 124, 116, 92, 130, 110, 132, 116, 113, 130, 83, 119, 68, 97, 103, 122, 151, 115, 110, 115, 128, 135, 96, 124, 122, 113, 108, 114, 111, 116, 111, 95, 94, 101, 111, 114, 117, 99, 128, 124, 120, 152, 132, 107, 127, 115, 91, 117, 97, 138, 149, 157, 118, 106, 156, 127, 97, 113, 122, 122, 100, 130, 92, 145, 132, 108, 110, 120, 97, 141, 139, 121, 116, 102, 115, 121, 167, 123, 118, 114, 121, 120, 112, 101, 135, 119, 133, 121, 132, 147, 166, 117, 84, 124, 113, 104, 91, 122, 118, 106, 97, 120, 138, 123, 123, 124, 120, 103, 85, 113, 118, 109, 121, 120, 111, 128, 121, 108, 126, 104, 122, 122, 108, 148, 108, 122, 122, 81, 132, 112, 114, 116, 104, 87, 101, 105, 115, 108, 121, 117, 130, 116, 124, 110, 113, 108, 110, 85, 112, 111, 126, 114, 100, 108, 131, 123, 123, 136, 125, 99, 111, 114, 132, 120, 127, 111, 102, 136, 118, 112, 124, 77, 114, 109, 137, 122, 122, 120, 112, 118, 130, 112, 101, 119, 101, 129, 96, 97, 119, 109, 107, 129, 115, 119, 109, 119, 125, 129, 91, 114, 113, 116, 132, 131, 131, 121, 134, 130, 128, 116, 120, 117, 119, 116, 107, 137, 109, 118, 133, 119, 117, 120, 133, 117, 133, 122, 115, 119, 116, 97, 104, 108, 116, 105, 109, 134, 113, 107, 118, 120, 121, 120, 111, 136, 94, 99, 105, 122, 119, 105, 132, 103, 115, 118, 117, 119, 121, 117, 113, 100, 122, 142, 111, 115, 91, 109, 120, 113, 101, 115, 117, 103, 110, 120, 121, 119, 138, 127, 124, 128, 129, 141, 125, 114, 134, 120, 115, 177, 112, 156, 104, 110, 104, 97, 105, 119, 114, 93, 112, 116, 124, 123, 103, 95, 105, 105, 95, 132, 101, 109, 140, 109, 101, 129, 112, 111, 114, 101, 158, 129, 98, 123, 122, 168, 98, 90, 121, 120, 112, 113, 96, 99, 100, 93, 126, 117, 102, 106, 106, 104, 119, 110, 123, 120, 114, 115, 102, 133, 124, 108, 124, 121, 116, 136, 105, 100, 113, 120, 123, 100, 128, 111, 113, 110, 125, 123, 128, 106, 121, 127, 117, 112, 105, 112, 121, 100, 131, 107, 113, 115, 122, 112, 135, 123, 111, 134, 116, 122, 123, 118, 132, 120, 116, 120, 113, 107, 122, 98, 97, 112, 112, 120, 123, 130, 114, 118, 120, 132, 123, 113, 139, 113, 114, 115, 116, 124, 107, 104, 114, 110, 110, 110, 101, 118, 119, 121, 114, 128, 111, 123, 118, 99, 124, 123, 109, 122, 112, 108, 128, 123, 125, 126, 100, 134, 114, 116, 110, 122, 115, 118, 116, 100, 123, 117, 115, 112, 116, 117, 119, 117, 115, 123, 132, 129, 117, 116, 130, 128, 115, 124, 111, 131, 123, 112, 113, 125, 120, 121, 107, 122, 119, 122, 131, 120, 115, 118, 119, 128, 103, 109, 121, 110, 119, 97, 120, 118, 115, 133, 109, 131, 122, 116, 96, 128, 109, 121, 113, 118, 122, 113, 122, 102, 108, 117, 109, 105, 114, 124, 110, 118, 107, 129, 107, 132, 101, 124, 123, 122, 107, 98, 114, 103, 121, 116, 118, 118, 125, 115, 109, 108, 125, 120, 121, 97, 123, 114, 110, 114, 114, 102, 105, 118, 99, 126, 116, 109, 98, 130, 114, 115, 128, 105, 126, 106, 120, 103, 119, 145, 103, 104, 123, 117, 131, 108, 111, 107, 107, 117, 98, 116, 101, 116, 106, 111, 121, 107, 111, 113, 118, 115, 98, 115, 111, 103, 128, 111, 127, 106, 104, 114, 120, 104, 114, 108, 105, 119, 112, 104, 113, 124, 114, 111, 113, 110, 126, 113, 145, 112, 128, 123, 113, 121, 114, 115, 105, 123, 124, 124, 123, 111, 121, 112, 126, 111, 123, 122, 115, 143, 115, 88, 116, 123, 114, 105, 117, 117, 115, 118, 98, 122, 124, 98, 110, 107, 115, 122, 111, 104, 105, 109, 116, 131, 101, 115, 118, 108, 109, 119, 127, 114, 113, 113, 114, 104, 114, 117, 119, 121, 115, 123, 119, 117, 122, 87, 107, 104, 106, 122, 129, 111, 111, 103, 108, 115, 104, 114, 122, 117, 120, 116, 118, 95, 108, 109, 105, 108, 119, 112, 117, 119, 114, 109, 125, 116, 114, 132, 106, 126, 115, 107, 107, 124, 102, 130, 107, 107, 112, 116, 118, 99, 125, 117, 111, 123, 114, 112, 132, 110, 120, 112, 121, 110, 123, 109, 125, 112, 127, 109, 115, 114, 121, 116, 117, 120, 111, 114, 108, 123, 122, 121, 143, 123, 124, 115, 99, 117, 117, 104, 126, 107, 106, 100, 117, 113, 109, 124, 112, 118, 121, 128, 118, 120, 137, 110, 113, 106, 108, 127, 131, 126, 121, 120, 128, 123, 101, 114, 127, 120, 118, 109, 106, 137, 126, 107, 108, 116, 109, 111, 119, 111, 110, 115, 105, 111, 112, 109, 110, 101, 115, 115, 124, 114, 107, 125, 116, 127, 107, 105, 119, 126, 113, 112, 124, 98, 114, 105, 114, 111, 116, 114, 125, 112, 112, 114, 97, 105, 125, 101, 97, 122, 125, 114, 124, 107, 112, 138, 104, 123, 111, 101, 106, 117, 101, 125, 114, 108, 100, 131, 118, 140, 120, 129, 115, 131, 102, 120, 128, 125, 110, 118, 113, 111, 127, 112, 130, 111, 114, 112, 113, 117, 122, 124, 113, 123, 109, 114, 113, 107, 123, 106, 101, 115, 124, 118, 120, 121, 114, 116, 119, 110, 112, 127, 116, 119, 97, 114, 122, 116, 111, 118, 117, 118, 115, 102, 130, 114, 121, 108, 113, 117, 114, 109, 125, 118, 117, 99, 132, 109, 94, 111, 122, 118, 113, 125, 114, 113, 120, 118, 112, 99, 104, 111, 106, 117, 118, 115, 109, 117, 114, 117, 120, 115, 118, 109, 110, 120, 108, 117, 117, 119, 128, 107, 98, 117, 114, 121, 116, 112, 124, 119, 115, 111, 113, 125, 121, 111, 111, 107, 127, 104, 119, 119, 116, 116, 113, 112, 109, 115, 66, 121, 112, 106, 111, 115, 117, 128, 108, 120, 115, 116, 109, 118, 115, 115, 102, 88, 112, 112, 115, 126, 119, 120, 117, 122, 117, 113, 112, 118, 112, 117, 113, 117, 119, 121, 108, 120, 115, 114, 122, 118, 111, 112, 124, 113, 126, 116, 120, 130, 119, 107, 111, 114, 109, 126, 125, 122, 121, 123, 102, 113, 118, 116, 114, 104, 114, 116, 108, 115, 109, 126, 114, 119, 118, 116, 112, 131, 118, 118, 119, 115, 120, 120, 89, 115, 109, 114, 109, 120, 118, 116, 115, 119, 111, 116, 91, 115, 115, 116, 121, 103, 129, 113, 111, 132, 104, 116, 120, 123, 124, 104, 118, 114, 114, 113, 113, 110, 113, 117, 118, 114, 109, 120, 123, 107, 134, 123, 122, 100, 118, 113, 117, 120, 111, 124, 136, 116, 109, 129, 110, 120, 116, 108, 114, 119, 122, 115, 115, 115, 114, 106, 118, 112, 116, 112, 116, 121, 115, 106, 101, 115, 121, 107, 109, 120, 115, 116, 124, 80, 124, 110, 111, 94, 124, 121, 113, 120, 119, 111, 118, 108, 112, 111, 122, 131, 122, 116, 114, 107, 114, 115, 121, 123, 117, 111, 114, 112, 99, 115, 118, 113, 114, 102, 111, 120, 117, 122, 120, 117, 108, 121, 116, 123, 120, 122, 112, 121, 128, 111, 118, 114, 123, 116, 121, 126, 82, 120, 123, 119, 119, 122, 107, 121, 109, 117, 124, 118, 119, 102, 107, 108, 119, 107, 118, 115, 106, 99, 118, 139, 115, 118, 119, 118, 108, 110, 113, 112, 116, 116, 121, 117, 131, 119, 112, 117, 103, 117, 117, 126, 115, 122, 113, 116, 108, 112, 115, 118, 107, 92, 111, 130, 113, 110, 111, 112, 135, 122, 154, 99, 114, 111, 116, 120, 107, 115, 119, 114, 128, 120, 118, 109, 132, 112, 116, 118, 120, 116, 113, 114, 113, 119, 115, 112, 116, 119, 108, 112, 122, 114, 112, 116, 120, 115, 104, 111, 120, 110, 109, 115, 109, 109, 118, 121, 115, 107, 119, 116, 110, 117, 118, 115, 114, 111, 126, 123, 124, 121, 123, 117, 99, 113, 117, 119, 112, 121, 108, 117, 123, 92, 116, 112, 118, 120, 109, 114, 115, 117, 110, 121, 111, 114, 117, 118, 112, 116, 121, 116, 114, 118, 97, 114, 123, 118, 123, 109, 113, 115, 111, 118, 115, 114, 117, 124, 116, 109, 112, 112, 125, 128, 105, 114, 115, 121, 112, 117, 118, 122, 111, 109, 106, 124, 124, 113, 120, 124, 114, 121, 113, 111, 124, 117, 114, 109, 119, 117, 115, 123, 112, 120, 126, 119, 113, 109, 113, 117, 120, 134, 114, 110, 126, 109, 131, 115, 115, 113, 98, 117, 126, 116, 123, 111, 112, 107, 116, 119, 113, 109, 123, 124, 108, 107, 118, 118, 113, 118, 113, 122, 119, 123, 116, 119, 116, 115, 119, 111, 122, 111, 116, 110, 124, 112, 124, 127, 120, 115, 110, 117, 123, 112, 117, 120, 122, 99, 118, 120, 115, 115, 111, 117, 112, 127, 106, 122, 123, 113, 122, 115, 128, 117, 114, 116, 107, 109, 111, 103, 115, 127, 120, 105, 122, 117, 115, 119, 115, 121, 111, 110, 112, 112, 116, 109, 112, 122, 114, 129, 128, 117, 113, 110, 120, 119, 125, 124, 124, 118, 130, 116, 118, 102, 120, 133, 117, 123, 120, 116, 108, 116, 117, 114, 119, 119, 117, 97, 115, 118, 108, 119, 113, 120, 137, 114, 116, 117, 114, 128, 119, 141, 117, 125, 115, 113, 107, 128, 109, 108, 125, 115, 123, 116, 125, 134, 114, 112, 114, 107, 122, 112, 125, 117, 112, 104, 121, 115, 106, 118, 129, 112, 116, 115, 116, 120, 129, 114, 121, 117, 137, 109, 115, 114, 121, 111, 106, 105, 118, 112, 116, 120, 114, 121, 127, 128, 108, 117, 129, 119, 113, 113, 117, 121, 117, 115, 120, 118, 116, 114, 121, 110, 115, 123, 118, 105, 104, 117, 105, 124, 113, 114, 122, 115, 118, 124, 126, 113, 108, 123, 120, 125, 111, 116, 111, 113, 117, 127, 118, 128, 126, 108, 123, 129, 104, 123, 114, 122, 116, 119, 110, 94, 111, 123, 128, 116, 104, 121, 121, 120, 115, 112, 126, 119, 114, 122, 119, 121, 125, 118, 109, 119, 121, 129, 117, 120, 117, 126, 113, 113, 125, 122, 117, 109, 112, 122, 116, 114, 122, 111, 109, 114, 110, 116, 114, 118, 113, 121, 121, 128, 122, 119, 115, 120, 111, 115, 113, 118, 114, 123, 119, 132, 100, 103, 113, 117, 115, 118, 120, 109, 121, 116, 117, 117, 111, 116, 108, 119, 109, 121, 116, 113, 138, 119, 125, 123, 112, 116, 115, 126, 115, 109, 117, 110, 120, 116, 120, 117, 127, 113, 117, 124, 123, 125, 113, 116, 123, 118, 115, 118, 114, 121, 120, 113, 117, 119, 110, 114, 115, 122, 124, 127, 115, 123, 116, 121, 110, 114, 119, 118, 130, 122, 111, 119, 108, 121, 120, 112, 108, 117, 117, 116, 118, 117, 117, 110, 124, 117, 106, 103, 119, 122, 120, 113, 116, 126, 119, 108, 112, 107, 119, 119, 120, 120, 122, 113, 114, 118, 112, 109, 125, 115, 108, 110, 112, 122, 104, 117, 119, 119, 107, 128, 129, 108, 112, 110, 117, 111, 126, 117, 125, 118, 110, 113, 119, 108, 120, 113, 116, 115, 118, 124, 113, 121, 121, 117, 117, 127, 118, 118, 107, 117, 111, 122, 119, 112, 114, 108, 109, 115, 109, 108, 113, 117, 107, 118, 110, 119, 117, 125, 115, 120, 104, 115, 116, 124, 115, 130, 113, 108, 115, 124, 116, 101, 113, 105, 123, 104, 117, 110, 118, 99, 116, 120, 117, 118, 93, 112, 121, 112, 124, 113, 118, 123, 109, 117, 115, 115, 119, 131, 126, 119, 117, 107, 117, 118, 92, 116, 115, 115, 93, 88, 127, 116, 114, 112, 119, 108, 120, 128, 120, 112, 109, 118, 112, 119, 116, 118, 108, 113, 111, 120, 114, 113, 117, 115, 113, 99, 114, 116, 104, 121, 117, 92, 115, 119, 119, 95, 133, 111, 104, 110, 118, 107, 124, 122, 107, 118, 117, 106, 111, 126, 112, 102, 114, 121, 115, 116, 111, 112, 131, 118, 122, 112, 116, 111, 106, 120, 116, 108, 116, 119, 118, 120, 108, 132, 103, 112, 112, 104, 108, 112, 116, 112, 117, 119, 123, 97, 121, 111, 123, 113, 129, 121, 120, 111, 105, 111, 134, 106, 116, 103, 114, 121, 114, 114, 124, 125, 93, 107, 111, 124, 121, 108, 96, 119, 109, 117, 114, 176, 95, 117, 112, 114, 102, 105, 114, 112, 112, 119, 118, 113, 122, 128, 116, 116, 106, 118, 98, 123, 115, 114, 173, 115, 120, 119, 126, 128, 117, 114, 115, 106, 104, 121, 89, 121, 108, 120, 117, 123, 126, 112, 113, 106, 98, 121, 119, 132, 111, 117, 117, 117, 122, 115, 124, 115, 111, 117, 112, 142, 111, 96, 123, 120, 121, 114, 113, 139, 111, 111, 116, 115, 93, 120, 146, 116, 115, 114, 118, 115, 117, 118, 110, 113, 135, 107, 119, 119, 121, 111, 123, 114, 151, 105, 114, 120, 111, 118, 83, 119, 138, 124, 124, 118, 116, 110, 114, 113, 119, 114, 121, 117, 96, 113, 123, 119, 125, 115, 111, 121, 121, 113, 106, 114, 112, 109, 118, 145, 118, 115, 121, 103, 124, 118, 122, 118, 138, 113, 116, 116, 122, 142, 116, 127, 110, 104, 108, 117, 116, 107, 118, 104, 116, 108, 125, 126, 121, 110, 120, 110, 77, 109, 114, 117, 87, 119, 108, 114, 110, 112, 108, 110, 128, 120, 117, 114, 114, 118, 100, 131, 107, 112, 112, 116, 111, 99, 116, 116, 110, 80, 110, 121, 114, 122, 114, 117, 114, 141, 111, 113, 117, 107, 114, 105, 123, 114, 113, 105, 109, 111, 104, 126, 120, 122, 120, 113, 115, 103, 114, 114, 119, 110, 106, 114, 85, 113, 95, 140, 120, 114, 109, 125, 121, 116, 112, 123, 114, 119, 117, 110, 112, 117, 122, 109, 108, 115, 111, 110, 109, 124, 115, 101, 114, 114, 114, 116, 126, 113, 120, 117, 114, 110, 121, 116, 115, 116, 95, 113, 115, 124, 113, 110, 109, 119, 118, 116, 118, 131, 111, 115, 120, 122, 102, 108, 127, 125, 115, 122, 119, 123, 116, 116, 123, 124, 124, 125, 109, 133, 118, 112, 110, 113, 110, 111, 117, 119, 119, 114, 128, 96, 99, 115, 110, 122, 107, 122, 119, 140, 100, 113, 109, 122, 111, 106, 108, 126, 103, 113, 102, 121, 107, 110, 113, 124, 120, 108, 101, 119, 101, 113, 105, 110, 112, 118, 125, 110, 128, 122, 115, 110, 123, 122, 112, 131, 110, 111, 108, 107, 124, 133, 114, 92, 105, 118, 118, 136, 114, 129, 106, 142, 90, 119, 121, 120, 109, 115, 107, 134, 117, 121, 126, 108, 133, 116, 105, 113, 118, 106, 120, 119, 123, 118, 115, 115, 116, 113, 123, 125, 112, 122, 121, 124, 125, 106, 119, 156, 110, 122, 122, 119, 114, 121, 102, 112, 112, 128, 121, 106, 111, 115, 115, 119, 110, 118, 120, 128, 111, 119, 116, 107, 124, 129, 108, 116, 127, 122, 123, 106, 125, 117, 123, 122, 129, 113, 125, 113, 114, 107, 126, 99, 114, 108, 107, 124, 104, 129, 118, 117, 119, 108, 125, 115, 101, 112, 114, 140, 128, 120, 121, 120, 119, 118, 106, 110, 103, 102, 129, 109, 123, 128, 126, 110, 130, 102, 109, 114, 100, 113, 126, 130, 107, 119, 108, 122, 119, 102, 130, 122, 119, 118, 117, 110, 120, 89, 109, 127, 102, 113, 134, 108, 122, 118, 113, 102, 123, 101, 111, 127, 97, 113, 115, 123, 120, 104, 127, 122, 119, 128, 122, 125, 109, 147, 124, 113, 114, 109, 123, 109, 104, 121, 114, 114, 127, 108, 114, 104, 118, 128, 128, 115, 121, 108, 119, 108, 129, 123, 118, 108, 119, 115, 127, 119, 112, 111, 118, 116, 108, 107, 115, 121, 128, 122, 140, 113, 109, 115, 116, 123, 141, 123, 116, 122, 124, 109, 108, 115, 116, 126, 123, 125, 114, 116, 123, 118, 122, 124, 111, 120, 134, 127, 118, 114, 120, 121, 114, 123, 114, 117, 115, 121, 118, 125, 106, 124, 118, 124, 107, 119, 113, 118, 109, 116, 123, 114, 116, 127, 138, 126, 118, 108, 114, 126, 102, 118, 114, 119, 106, 122, 111, 122, 121, 116, 132, 110, 122, 105, 113, 119, 123, 147, 111, 124, 99, 111, 127, 127, 109, 110, 119, 117, 118, 120, 122, 113, 125, 116, 114, 120, 111, 113, 123, 123, 127, 125, 119, 107, 122, 106, 121, 114, 113, 138, 125, 120, 104, 121, 98, 102, 110, 125, 119, 108, 105, 126, 123, 123, 110, 113, 98, 115, 95, 130, 134, 129, 95, 119, 115, 123, 143, 118, 112, 120, 119, 112, 121, 117, 118, 121, 111, 116, 126, 118, 131, 113, 102, 122, 108, 114, 115, 114, 128, 95, 113, 121, 118, 116, 118, 121, 117, 125, 101, 111, 117, 117, 109, 113, 115, 118, 121, 109, 119, 117, 122, 117, 90, 101, 114, 119, 112, 120, 106, 95, 126, 115, 116, 110, 103, 122, 111, 102, 123, 112, 112, 129, 106, 129, 107, 123, 113, 122, 114, 126, 107, 99, 122, 109, 117, 118, 110, 118, 111, 112, 119, 108, 104, 131, 113, 114, 117, 129, 115, 122, 115, 110, 119, 121, 123, 121, 95, 117, 111, 116, 121, 102, 111, 110, 109, 125, 112, 125, 107, 107, 112, 117, 122, 116, 107, 114, 123, 112, 120, 122, 125, 104, 150, 122, 132, 118, 120, 109, 123, 150, 126, 127, 128, 121, 100, 117, 114, 101, 121, 130, 125, 120, 104, 135, 95, 126, 113, 115, 101, 108, 123, 111, 114, 113, 126, 110, 124, 120, 110, 134, 119, 135, 105, 119, 103, 115, 146, 126, 114, 111, 103, 97, 116, 101, 131, 118, 120, 121, 118, 98, 108, 128, 103, 111, 127, 134, 113, 111, 118, 115, 94, 118, 118, 115, 103, 134, 117, 104, 118, 114, 108, 125, 122, 96, 122, 110, 114, 109, 118, 118, 117, 105, 114, 120, 118, 107, 128, 113, 129, 105, 103, 110, 103, 122, 107, 104, 128, 138, 109, 105, 114, 119, 112, 105, 116, 121, 118, 84, 104, 105, 134, 125, 121, 103, 133, 132, 130, 119, 102, 99, 116, 116, 103, 125, 139, 116, 108, 105, 107, 112, 125, 110, 125, 130, 99, 120, 155, 106, 137, 102, 109, 120, 104, 113, 116, 121, 106, 119, 123, 100, 132, 98, 129, 89, 117, 130, 107, 123, 133, 134, 119, 125, 108, 120, 115, 108, 115, 108, 125, 88, 107, 117, 112, 126, 115, 108, 111, 117, 112, 130, 117, 99, 119, 121, 134, 118, 120, 104, 102, 126, 124, 120, 115, 127, 117, 129, 109, 144, 109, 99, 109, 131, 121, 119, 125, 113, 112, 123, 109, 138, 118, 115, 102, 116, 125, 107, 109, 117, 102, 112, 106, 115, 122, 126, 127, 101, 120, 148, 110, 118, 128, 118, 100, 110, 137, 134, 121, 115, 104, 122, 110, 134, 111, 111, 129, 113, 122, 134, 119, 110, 117, 134, 131, 142, 111, 122, 116, 118, 108, 110, 110, 119, 112, 108, 101, 118, 104, 112, 118, 104, 127, 119, 127, 120, 109, 117, 107, 111, 121, 114, 114, 108, 118, 112, 101, 138, 146, 122, 114, 131, 107, 111, 121, 108, 102, 116, 100, 110, 114, 118, 113, 101, 117, 95, 107, 114, 110, 107, 117, 118, 109, 107, 111, 103, 106, 109, 108, 113, 129, 118, 127, 128, 118, 116, 108, 121, 117, 115, 108, 125, 107, 113, 153, 116, 105, 101, 117, 122, 121, 137, 107, 127, 115, 101, 117, 122, 123, 118, 121, 116, 118, 120, 115, 114, 113, 103, 113, 133, 118, 110, 122, 119, 123, 118, 127, 110, 117, 103, 101, 106, 125, 112, 129, 114, 101, 105, 122, 115, 106, 105, 119, 137, 120, 120, 114, 126, 101, 108, 121, 124, 114, 123, 106, 122, 105, 104, 108, 112, 117, 122, 106, 116, 125, 124, 102, 116, 129, 137, 129, 123, 118, 125, 130, 113, 108, 121, 97, 109, 115, 108, 94, 98, 120, 117, 111, 124, 118, 124, 125, 131, 109, 108, 141, 120, 99, 105, 104, 122, 125, 126, 123, 112, 119, 115, 127, 127, 118, 118, 107, 120, 121, 92, 110, 99, 109, 115, 120, 108, 120, 111, 115, 118, 114, 99, 109, 119, 118, 125, 115, 107, 120, 120, 94, 115, 110, 112, 122, 104, 123, 101, 112, 122, 125, 115, 97, 114, 103, 101, 103, 128, 123, 121, 116, 108, 130, 112, 112, 129, 121, 104, 125, 114, 131, 102, 109, 120, 126, 113, 123, 114, 122, 103, 135, 117, 112, 130, 108, 115, 103, 117, 124, 117, 110, 120, 118, 115, 112, 118, 117, 120, 108, 133, 120, 119, 116, 131, 97, 120, 116, 110, 104, 118, 95, 130, 113, 120, 123, 126, 121, 127, 110, 100, 126, 121, 120, 121, 120, 125, 114, 134, 120, 121, 152, 116, 119, 122, 129, 127, 111, 119, 115, 112, 112, 123, 116, 115, 116, 103, 108, 120, 114, 120, 116, 123, 112, 123, 111, 134, 118, 125, 127, 116, 114, 122, 129, 110, 120, 99, 119, 115, 112, 117, 122, 120, 109, 112, 113, 116, 87, 119, 115, 121, 117, 137, 120, 115, 128, 118, 126, 122, 117, 116, 115, 123, 134, 105, 113, 118, 107, 113, 117, 121, 122, 118, 116, 124, 116, 103, 113, 121, 128, 124, 108, 105, 101, 123, 120, 108, 121, 115, 123, 106, 121, 121, 119, 121, 113, 113, 119, 110, 119, 125, 126, 122, 110, 117, 114, 113, 104, 123, 123, 109, 112, 111, 120, 112, 102, 120, 120, 119, 120, 123, 112, 111, 120, 114, 107, 116, 109, 118, 137, 128, 92, 114, 117, 95, 115, 121, 121, 115, 123, 113, 116, 111, 112, 122, 120, 123, 94, 121, 120, 114, 112, 119, 136, 116, 109, 119, 118, 114, 115, 114, 105, 112, 114, 122, 119, 105, 115, 117, 120, 149, 119, 107, 122, 117, 124, 126, 114, 120, 119, 121, 112, 112, 113, 114, 120, 117, 110, 118, 149, 124, 114, 122, 101, 129, 118, 122, 116, 120, 120, 112, 103, 113, 117, 120, 116, 124, 112, 109, 123, 106, 116, 157, 121, 126, 100, 120, 114, 121, 119, 113, 116, 116, 101, 115, 100, 126, 81, 119, 118, 107, 117, 111, 111, 115, 115, 101, 129, 124, 116, 113, 115, 115, 115, 128, 120, 117, 116, 115, 110, 119, 112, 110, 115, 131, 115, 114, 129, 116, 123, 118, 117, 115, 118, 120, 112, 129, 118, 108, 115, 119, 101, 123, 127, 117, 109, 107, 120, 114, 121, 121, 117, 122, 103, 116, 105, 116, 108, 117, 114, 113, 99, 122, 112, 119, 115, 121, 115, 136, 131, 127, 122, 124, 114, 108, 114, 122, 121, 122, 110, 114, 120, 119, 120, 117, 114, 111, 115, 113, 115, 118, 109, 114, 109, 117, 120, 121, 107, 111, 112, 119, 106, 107, 109, 101, 100, 126, 117, 83, 97, 122, 138, 124, 110, 117, 119, 115, 112, 119, 112, 121, 108, 107, 108, 121, 120, 123, 109, 116, 123, 117, 110, 117, 103, 107, 108, 116, 108, 121, 121, 114, 102, 128, 117, 110, 122, 112, 117, 122, 112, 113, 109, 114, 121, 128, 115, 102, 114, 115, 120, 125, 121, 114, 132, 130, 117, 117, 125, 115, 118, 111, 129, 115, 123, 126, 102, 116, 131, 104, 125, 115, 91, 111, 114, 124, 115, 119, 115, 104, 112, 129, 118, 127, 113, 134, 83, 119, 102, 101, 105, 127, 112, 117, 112, 114, 113, 114, 114, 131, 112, 112, 119, 121, 120, 127, 115, 114, 120, 119, 131, 115, 116, 96, 114, 117, 113, 107, 110, 114, 112, 109, 120, 127, 119, 121, 114, 110, 113, 106, 121, 116, 118, 93, 110, 100, 109, 106, 108, 120, 108, 100, 106, 115, 127, 114, 100, 106, 115, 125, 100, 120, 149, 118, 130, 105, 110, 121, 125, 111, 130, 115, 118, 135, 116, 117, 129, 117, 116, 106, 113, 94, 130, 111, 116, 120, 113, 126, 124, 105, 102, 109, 125, 102, 119, 101, 121, 112, 120, 111, 127, 117, 140, 104, 113, 103, 105, 109, 110, 136, 102, 136, 107, 119, 109, 108, 116, 113, 118, 117, 128, 123, 97, 111, 111, 124, 107, 105, 107, 123, 114, 124, 116, 112, 129, 114, 111, 136, 115, 117, 125, 101, 116, 116, 119, 130, 113, 122, 116, 125, 125, 114, 84, 121, 110, 116, 115, 109, 129, 111, 118, 128, 116, 129, 126, 113, 95, 102, 110, 117, 112, 133, 106, 117, 130, 117, 107, 117, 121, 120, 107, 93, 125, 125, 114, 109, 131, 121, 107, 120, 131, 106, 107, 111, 113, 124, 121, 104, 115, 127, 118, 105, 128, 121, 105, 103, 122, 119, 117, 88, 112, 93, 123, 116, 131, 115, 121, 133, 128, 107, 132, 113, 108, 104, 106, 114, 112, 101, 117, 110, 137, 110, 128, 127, 113, 104, 106, 111, 98, 124, 156, 138, 116, 108, 111, 104, 133, 116, 101, 123, 111, 120, 103, 110, 108, 110, 129, 96, 104, 102, 117, 108, 116, 110, 116, 130, 108, 125, 119, 115, 118, 126, 133, 119, 107, 103, 140, 121, 103, 100, 126, 120, 110, 116, 101, 122, 108, 122, 111, 122, 107, 114, 113, 113, 123, 119, 120, 129, 131, 111, 129, 120, 121, 122, 106, 125, 109, 126, 121, 115, 129, 105, 116, 121, 107, 115, 121, 118, 101, 100, 114, 113, 112, 111, 115, 120, 118, 115, 118, 126, 127, 132, 116, 111, 116, 107, 99, 107, 104, 102, 104, 109, 113, 120, 111, 121, 115, 103, 120, 118, 117, 98, 108, 115, 121, 117, 114, 122, 126, 116, 120, 118, 112, 113, 114, 110, 117, 99, 117, 110, 125, 114, 104, 118, 134, 113, 112, 123, 119, 113, 107, 116, 123, 123, 122, 118, 112, 135, 117, 106, 116, 111, 127, 105, 108, 128, 111, 114, 111, 119, 112, 109, 121, 121, 124, 109, 106, 142, 102, 111, 113, 128, 122, 114, 134, 114, 116, 129, 130, 95, 117, 122, 121, 120, 123, 116, 125, 108, 120, 111, 109, 120, 122, 113, 108, 109, 103, 114, 118, 120, 116, 106, 119, 125, 110, 104, 135, 116, 112, 120, 116, 116, 107, 99, 121, 102, 113, 116, 112, 108, 123, 119, 121, 111, 109, 118, 108, 127, 121, 116, 116, 112, 120, 100, 118, 111, 95, 111, 105, 120, 108, 115, 109, 130, 111, 120, 116, 118, 125, 97, 110, 116, 116, 115, 115, 120, 104, 114, 112, 119, 106, 109, 108, 124, 126, 122, 114, 119, 113, 119, 123, 102, 94, 112, 116, 114, 141, 106, 155, 115, 104, 120, 101, 96, 104, 111, 111, 117, 106, 116, 113, 104, 118, 112, 117, 134, 127, 106, 106, 106, 121, 126, 109, 132, 127, 120, 109, 135, 108, 126, 102, 111, 95, 123, 128, 104, 115, 146, 123, 113, 99, 129, 117, 94, 122, 101, 112, 101, 128, 105, 126, 104, 108, 117, 115, 121, 123, 134, 106, 108, 144, 126, 120, 106, 129, 114, 109, 129, 112, 110, 119, 102, 114, 110, 136, 113, 120, 120, 118, 103, 110, 108, 121, 96, 107, 115, 134, 117, 105, 134, 108, 100, 111, 107, 113, 126, 126, 107, 119, 100, 122, 110, 109, 102, 108, 105, 121, 114, 118, 116, 100, 123, 130, 113, 138, 119, 128, 115, 112, 112, 115, 108, 120, 120, 137, 129, 118, 124, 110, 129, 118, 103, 108, 101, 131, 121, 113, 112, 102, 118, 117, 105, 122, 98, 120, 95, 102, 109, 110, 114, 116, 121, 107, 127, 130, 117, 123, 117, 113, 119, 114, 132, 111, 134, 110, 115, 129, 115, 111, 111, 107, 119, 107, 104, 114, 111, 118, 119, 125, 98, 119, 105, 109, 98, 114, 107, 119, 112, 109, 120, 97, 128, 113, 97, 104, 131, 134, 110, 119, 126, 117, 110, 117, 100, 113, 111, 125, 125, 103, 106, 121, 123, 118, 130, 108, 115, 121, 117, 111, 116, 107, 96, 119, 99, 140, 106, 131, 125, 116, 107, 114, 104, 122, 125, 109, 102, 140, 106, 110, 108, 121, 115, 114, 119, 114, 113, 112, 117, 152, 123, 125, 110, 104, 115, 108, 117, 104, 118, 115, 108, 126, 166, 109, 99, 106, 120, 131, 114, 126, 103, 98, 104, 133, 125, 109, 111, 107, 114, 118, 121, 108, 116, 129, 105, 95, 105, 121, 116, 120, 121, 104, 133, 126, 131, 99, 116, 107, 103, 120, 91, 101, 116, 122, 116, 93, 113, 117, 108, 133, 106, 120, 125, 118, 123, 123, 122, 125, 122, 117, 105, 122, 137, 116, 131, 105, 120, 134, 103, 95, 121, 111, 99, 115, 106, 132, 116, 135, 140, 118, 128, 115, 113, 101, 118, 103, 112, 121, 123, 103, 106, 119, 109, 110, 123, 107, 110, 105, 118, 113, 106, 103, 108, 116, 125, 117, 110, 117, 116, 100, 102, 109, 108, 120, 95, 128, 114, 123, 110, 108, 101, 113, 114, 127, 99, 115, 107, 91, 96, 106, 127, 114, 122, 105, 127, 104, 116, 114, 123, 106, 110, 134, 105, 107, 119, 106, 115, 114, 133, 115, 114, 116, 102, 110, 117, 113, 103, 122, 112, 117, 123, 114, 122, 115, 117, 111, 130, 108, 114, 110, 107, 116, 106, 114, 111, 111, 104, 122, 108, 126, 106, 106, 127, 114, 108, 122, 108, 130, 128, 125, 127, 110, 110, 123, 142, 107, 122, 108, 114, 101, 100, 108, 111, 125, 120, 128, 114, 123, 133, 111, 115, 125, 104, 108, 132, 115, 125, 115, 122, 109, 116, 120, 95, 124, 120, 118, 105, 112, 111, 124, 113, 122, 128, 115, 102, 106, 104, 108, 124, 109, 103, 104, 109, 106, 115, 117, 109, 120, 119, 113, 112, 114, 99, 103, 109, 104, 125, 119, 103, 101, 94, 128, 118, 109, 124, 119, 118, 117, 109, 112, 93, 117, 89, 116, 119, 128, 128, 124, 97, 123, 132, 126, 126, 105, 119, 132, 113, 112, 109, 107, 108, 110, 114, 115, 105, 117, 114, 102, 115, 121, 112, 115, 102, 116, 119, 134, 115, 131, 112, 107, 122, 114, 108, 132, 130, 110, 114, 117, 119, 127, 111, 108, 117, 119, 125, 110, 120, 116, 118, 126, 114, 146, 105, 124, 120, 111, 111, 101, 116, 127, 125, 116, 126, 126, 121, 116, 116, 125, 113, 123, 104, 123, 107, 124, 123, 115, 99, 122, 109, 132, 118, 121, 115, 114, 121, 110, 126, 108, 111, 128, 102, 127, 116, 112, 106, 107, 105, 122, 118, 112, 117, 121, 111, 107, 120, 103, 108, 134, 101, 103, 126, 119, 105, 117, 120, 115, 115, 111, 127, 118, 112, 95, 124, 109, 127, 136, 119, 116, 115, 115, 107, 123, 112, 125, 113, 118, 119, 117, 127, 113, 118, 117, 126, 120, 122, 125, 124, 113, 100, 108, 112, 110, 113, 111, 98, 119, 120, 122, 127, 109, 111, 113, 104, 110, 108, 127, 111, 106, 113, 118, 113, 119, 113, 122, 106, 122, 112, 99, 109, 121, 125, 114, 109, 126, 118, 121, 112, 115, 106, 112, 122, 116, 121, 118, 124, 97, 124, 120, 102, 117, 116, 111, 114, 116, 113, 115, 124, 124, 121, 122, 93, 121, 112, 118, 106, 118, 121, 102, 111, 118, 123, 108, 106, 112, 114, 123, 114, 113, 115, 109, 107, 111, 122, 129, 123, 126, 134, 113, 118, 129, 126, 110, 108, 100, 109, 121, 113, 118, 115, 104, 111, 129, 121, 122, 116, 118, 124, 106, 107, 107, 106, 127, 106, 121, 118, 118, 119, 118, 121, 99, 128, 120, 111, 113, 106, 126, 105, 125, 119, 117, 101, 117, 104, 98, 106, 124, 117, 111, 116, 130, 122, 127, 118, 101, 116, 112, 107, 118, 116, 119, 132, 110, 121, 127, 116, 114, 117, 113, 117, 105, 127, 124, 114, 119, 111, 125, 106, 116, 110, 121, 103, 120, 117, 121, 124, 119, 107, 112, 121, 115, 123, 114, 122, 103, 112, 116, 118, 127, 124, 118, 110, 114, 115, 120, 122, 113, 125, 111, 119, 100, 110, 114, 119, 116, 113, 129, 117, 112, 91, 102, 124, 106, 128, 107, 116, 117, 120, 117, 112, 111, 121, 108, 122, 117, 103, 114, 121, 126, 103, 115, 122, 112, 111, 102, 124, 112, 114, 115, 114, 118, 108, 116, 104, 102, 124, 123, 120, 112, 112, 123, 119, 119, 115, 113, 104, 123, 113, 116, 102, 119, 122, 115, 110, 122, 103, 122, 127, 129, 128, 114, 122, 128, 117, 112, 112, 109, 133, 118, 116, 108, 110, 115, 111, 125, 101, 122, 111, 121, 129, 127, 117, 122, 116, 107, 119, 118, 108, 117, 109, 114, 100, 102, 116, 120, 120, 120, 135, 108, 115, 111, 117, 128, 112, 107, 121, 112, 120, 108, 114, 129, 124, 110, 123, 119, 107, 106, 121, 116, 111, 126, 112, 122, 110, 131, 119, 109, 115, 125, 127, 100, 119, 115, 129, 107, 117, 120, 125, 115, 124, 113, 109, 120, 121, 126, 106, 127, 118, 105, 114, 110, 103, 112, 110, 134, 116, 119, 144, 115, 146, 130, 99, 71, 108, 117, 115, 125, 130, 105, 104, 114, 91, 105, 113, 125, 107, 121, 110, 113, 128, 107, 120, 93, 109, 124, 114, 131, 136, 114, 116, 143, 112, 103, 124, 119, 121, 114, 119, 103, 126, 121, 117, 115, 118, 120, 117, 93, 80, 112, 118, 107, 123, 127, 85, 101, 117, 131, 108, 106, 99, 105, 119, 127, 112, 139, 105, 97, 122, 118, 112, 114, 132, 103, 116, 126, 100, 128, 123, 108, 122, 146, 125, 130, 121, 104, 116, 125, 118, 110, 97, 132, 124, 108, 99, 118, 116, 133, 106, 124, 111, 122, 111, 102, 112, 115, 116, 125, 120, 125, 119, 118, 119, 95, 105, 118, 97, 100, 119, 107, 105, 130, 121, 116, 120, 109, 112, 109, 109, 104, 113, 106, 118, 129, 136, 111, 103, 119, 116, 128, 120, 101, 123, 144, 124, 135, 118, 114, 94, 111, 137, 138, 98, 103, 139, 132, 112, 122, 113, 101, 112, 101, 92, 132, 117, 98, 117, 105, 94, 114, 117, 129, 88, 129, 104, 111, 113, 110, 138, 116, 124, 119, 106, 129, 97, 103, 135, 131, 125, 108, 104, 134, 96, 109, 110, 98, 113, 126, 116, 122, 112, 118, 143, 105, 128, 119, 90, 138, 105, 123, 114, 121, 120, 113, 112, 137, 115, 131, 119, 105, 103, 102, 120, 153, 102, 119, 119, 116, 121, 133, 132, 104, 111, 107, 100, 128, 116, 123, 129, 97, 119, 108, 109, 100, 132, 121, 95, 125, 112, 142, 113, 129, 90, 104, 140, 104, 125, 112, 113, 116, 88, 125, 107, 100, 94, 102, 111, 120, 113, 110, 129, 131, 109, 113, 111, 131, 141, 145, 123, 124, 112, 108, 123, 98, 114, 104, 99, 123, 103, 111, 111, 109, 126, 109, 128, 140, 120, 122, 107, 133, 132, 107, 108, 109, 123, 115, 111, 110, 115, 121, 124, 112, 115, 122, 105, 127, 123, 127, 131, 114, 110, 109, 95, 113, 109, 106, 117, 113, 113, 121, 137, 113, 104, 113, 89, 131, 145, 88, 125, 135, 122, 133, 102, 112, 103, 118, 158, 122, 112, 118, 111, 125, 112, 116, 136, 115, 128, 101, 106, 151, 109, 116, 117, 114, 122, 83, 129, 92, 96, 127, 143, 126, 104, 139, 114, 113, 124, 119, 118, 124, 103, 76, 120, 123, 108, 146, 115, 122, 118, 103, 125, 109, 128, 115, 115, 96, 133, 127, 115, 115, 125, 104, 120, 112, 113, 96, 96, 128, 140, 110, 113, 110, 125, 88, 100, 111, 104, 110, 151, 118, 116, 104, 120, 122, 136, 109, 122, 124, 118, 113, 123, 132, 113, 112, 120, 108, 108, 129, 96, 92, 113, 111, 126, 140, 120, 97, 134, 129, 125, 134, 135, 119, 117, 102, 125, 108, 121, 130, 138, 123, 132, 125, 126, 136, 100, 96, 101, 106, 124, 142, 107, 118, 113, 103, 119, 97, 104, 120, 103, 133, 113, 126, 96, 125, 114, 120, 122, 112, 146, 97, 114, 120, 128, 109, 101, 145, 114, 108, 104, 111, 128, 102, 115, 111, 114, 98, 125, 114, 110, 112, 112, 120, 115, 115, 116, 109, 125, 113, 113, 109, 116, 120, 111, 108, 118, 118, 118, 116, 116, 106, 119, 119, 116, 120, 108, 111, 112, 120, 101, 113, 114, 121, 118, 111, 113, 118, 125, 115, 111, 114, 120, 118, 120, 117, 113, 120, 117, 118, 115, 113, 119, 121, 113, 132, 117, 120, 118, 103, 126, 116, 117, 116, 116, 115, 115, 117, 116, 116, 111, 110, 121, 114, 124, 113, 122, 129, 115, 117, 112, 119, 116, 121, 116, 119, 115, 115, 111, 118, 119, 119, 132, 117, 111, 125, 140, 107, 120, 101, 115, 112, 127, 114, 123, 112, 122, 108, 127, 121, 107, 124, 115, 115, 123, 112, 125, 102, 120, 115, 118, 117, 107, 118, 119, 112, 119, 114, 115, 117, 118, 105, 114, 95, 99, 119, 128, 116, 112, 117, 118, 117, 118, 127, 116, 109, 126, 117, 122, 117, 123, 116, 112, 121, 117, 117, 122, 104, 105, 111, 127, 119, 115, 112, 113, 114, 118, 117, 113, 121, 118, 112, 113, 127, 114, 122, 117, 111, 98, 115, 119, 117, 117, 115, 118, 89, 112, 108, 117, 114, 113, 121, 115, 113, 139, 118, 115, 100, 116, 114, 115, 110, 118, 121, 127, 112, 111, 111, 112, 126, 111, 118, 133, 116, 116, 122, 112, 118, 117, 118, 113, 115, 122, 114, 124, 115, 133, 102, 117, 120, 113, 123, 112, 115, 114, 111, 121, 117, 132, 112, 117, 116, 108, 84, 112, 120, 114, 110, 117, 110, 116, 116, 115, 127, 118, 105, 123, 116, 117, 112, 120, 121, 116, 118, 111, 113, 114, 112, 116, 115, 109, 109, 117, 109, 112, 119, 120, 129, 113, 120, 114, 113, 115, 112, 116, 116, 107, 112, 117, 156, 119, 100, 114, 118, 114, 110, 123, 113, 109, 115, 118, 114, 105, 116, 117, 126, 126, 104, 115, 116, 120, 110, 114, 119, 117, 83, 111, 114, 113, 125, 108, 113, 118, 108, 118, 111, 108, 125, 119, 112, 108, 113, 107, 102, 112, 103, 123, 118, 113, 133, 118, 113, 120, 118, 114, 119, 115, 111, 116, 122, 116, 115, 114, 117, 109, 119, 109, 107, 112, 116, 119, 115, 118, 118, 157, 118, 122, 112, 111, 111, 111, 117, 113, 123, 121, 116, 130, 115, 110, 118, 118, 120, 114, 79, 113, 122, 118, 117, 113, 123, 118, 117, 119, 112, 116, 124, 93, 122, 114, 114, 109, 120, 118, 98, 153, 111, 119, 113, 117, 117, 114, 120, 115, 125, 117, 112, 115, 123, 119, 112, 119, 115, 121, 143, 122, 118, 114, 106, 118, 118, 105, 118, 117, 118, 114, 114, 113, 110, 116, 110, 122, 116, 117, 122, 116, 118, 114, 114, 123, 114, 117, 118, 111, 109, 112, 118, 114, 121, 106, 112, 121, 121, 113, 110, 116, 117, 124, 117, 114, 109, 124, 122, 123, 112, 120, 112, 114, 111, 116, 121, 115, 112, 109, 152, 118, 113, 111, 123, 106, 123, 122, 111, 109, 117, 112, 113, 118, 150, 110, 117, 107, 123, 118, 114, 113, 119, 117, 108, 122, 116, 114, 122, 115, 119, 106, 104, 112, 115, 114, 111, 117, 116, 110, 109, 114, 104, 117, 127, 112, 128, 110, 134, 121, 127, 105, 111, 117, 113, 110, 111, 116, 115, 109, 116, 113, 110, 117, 128, 121, 121, 123, 103, 130, 108, 102, 129, 110, 115, 126, 123, 118, 112, 117, 113, 108, 119, 118, 125, 121, 122, 101, 112, 104, 117, 116, 115, 115, 118, 112, 113, 107, 111, 118, 120, 126, 116, 112, 110, 117, 109, 106, 123, 111, 109, 115, 113, 117, 119, 118, 112, 115, 113, 129, 126, 105, 116, 113, 101, 132, 105, 118, 111, 111, 108, 122, 110, 113, 112, 120, 107, 111, 102, 112, 122, 112, 114, 125, 110, 114, 123, 118, 109, 109, 114, 121, 107, 117, 113, 123, 116, 124, 116, 118, 113, 112, 116, 123, 106, 116, 107, 117, 125, 115, 114, 120, 119, 129, 110, 110, 124, 107, 126, 119, 113, 120, 108, 112, 112, 105, 100, 117, 119, 107, 116, 113, 122, 113, 109, 108, 97, 110, 114, 113, 109, 120, 120, 112, 116, 111, 112, 111, 112, 116, 117, 119, 115, 136, 104, 108, 121, 109, 110, 110, 117, 117, 109, 128, 121, 126, 123, 107, 115, 121, 114, 124, 121, 113, 124, 111, 115, 117, 116, 107, 116, 109, 110, 118, 115, 118, 123, 110, 140, 106, 116, 122, 111, 118, 119, 122, 124, 121, 110, 118, 127, 109, 119, 116, 106, 121, 126, 128, 110, 112, 110, 106, 107, 125, 105, 112, 111, 123, 106, 108, 119, 117, 114, 112, 108, 115, 120, 123, 124, 120, 109, 116, 128, 121, 117, 112, 116, 109, 114, 113, 112, 114, 113, 112, 129, 109, 110, 111, 112, 116, 125, 116, 118, 121, 117, 105, 125, 116, 126, 101, 128, 122, 123, 116, 114, 106, 108, 114, 121, 114, 128, 110, 120, 124, 110, 108, 109, 121, 118, 121, 112, 121, 121, 123, 111, 113, 120, 115, 113, 123, 114, 114, 116, 110, 113, 109, 109, 114, 107, 126, 110, 109, 111, 129, 101, 118, 121, 115, 125, 128, 107, 108, 121, 115, 128, 108, 113, 117, 117, 142, 112, 116, 120, 113, 119, 125, 112, 89, 111, 114, 122, 114, 127, 129, 128, 95, 114, 121, 117, 115, 118, 106, 124, 115, 117, 115, 127, 101, 111, 124, 106, 108, 114, 107, 110, 128, 114, 114, 109, 120, 114, 129, 113, 113, 105, 116, 118, 113, 122, 112, 146, 110, 126, 124, 101, 123, 102, 106, 114, 116, 118, 116, 116, 116, 115, 120, 122, 114, 126, 122, 119, 118, 119, 121, 117, 114, 114, 124, 113, 116, 121, 114, 127, 108, 136, 111, 115, 110, 121, 118, 103, 113, 119, 110, 104, 120, 113, 110, 108, 110, 118, 120, 111, 119, 117, 115, 112, 93, 108, 114, 115, 126, 117, 109, 131, 121, 116, 116, 117, 119, 116, 117, 118, 114, 114, 124, 119, 119, 108, 112, 109, 116, 125, 116, 114, 100, 114, 123, 117, 112, 105, 119, 117, 115, 113, 122, 115, 112, 114, 123, 120, 112, 110, 110, 104, 113, 109, 121, 108, 124, 117, 108, 113, 125, 120, 117, 108, 114, 119, 119, 119, 116, 122, 116, 135, 125, 112, 101, 105, 114, 119, 116, 121, 115, 110, 122, 126, 115, 146, 115, 117, 114, 110, 122, 118, 123, 124, 112, 113, 115, 118, 118, 121, 117, 117, 113, 122, 121, 116, 114, 120, 115, 116, 115, 119, 114, 118, 108, 124, 114, 109, 111, 118, 133, 112, 107, 124, 123, 113, 115, 122, 115, 127, 122, 107, 115, 121, 114, 114, 116, 110, 113, 102, 99, 126, 120, 113, 112, 109, 114, 115, 116, 123, 114, 105, 126, 112, 122, 119, 109, 112, 136, 121, 111, 124, 114, 124, 115, 118, 108, 119, 123, 115, 116, 116, 115, 124, 96, 123, 118, 124, 116, 126, 122, 119, 120, 115, 113, 122, 122, 118, 123, 122, 120, 120, 114, 119, 123, 114, 118, 115, 124, 123, 118, 121, 121, 110, 112, 114, 117, 117, 106, 131, 114, 117, 112, 109, 112, 116, 120, 109, 123, 126, 111, 118, 118, 112, 115, 117, 119, 107, 133, 126, 114, 113, 121, 106, 113, 130, 116, 115, 127, 116, 112, 101, 123, 117, 114, 120, 106, 113, 116, 125, 105, 127, 120, 118, 112, 116, 121, 103, 117, 133, 111, 110, 110, 115, 125, 114, 119, 148, 110, 128, 122, 116, 115, 125, 113, 116, 117, 115, 115, 107, 108, 113, 134, 113, 118, 116, 115, 113, 116, 116, 113, 119, 123, 118, 84, 118, 122, 124, 114, 117, 111, 130, 103, 118, 115, 121, 118, 125, 121, 111, 99, 121, 121, 111, 114, 118, 80, 105, 106, 121, 112, 119, 104, 122, 134, 113, 119, 117, 114, 126, 111, 157, 119, 114, 112, 122, 117, 120, 115, 113, 121, 126, 110, 120, 110, 107, 118, 128, 111, 126, 112, 107, 107, 108, 114, 115, 118, 114, 104, 119, 115, 111, 112, 128, 117, 119, 124, 112, 124, 116, 121, 113, 113, 114, 121, 117, 109, 116, 116, 120, 113, 113, 112, 105, 117, 114, 109, 123, 108, 125, 120, 113, 118, 126, 119, 114, 107, 109, 118, 113, 118, 119, 108, 112, 110, 121, 110, 118, 119, 108, 122, 120, 116, 115, 119, 118, 112, 120, 114, 114, 120, 116, 121, 113, 118, 126, 117, 119, 131, 110, 114, 106, 115, 127, 117, 123, 121, 115, 112, 109, 121, 114, 138, 118, 115, 118, 127, 113, 97, 119, 112, 107, 102, 120, 113, 114, 114, 114, 122, 106, 116, 121, 113, 117, 115, 114, 108, 119, 113, 116, 126, 116, 115, 115, 113, 113, 116, 117, 127, 115, 114, 109, 111, 118, 97, 124, 112, 120, 123, 126, 136, 117, 120, 111, 110, 117, 130, 122, 124, 116, 115, 125, 117, 117, 117, 116, 121, 108, 131, 121, 113, 114, 127, 111, 126, 110, 109, 105, 110, 111, 123, 117, 97, 109, 119, 139, 124, 122, 111, 112, 122, 111, 125, 125, 111, 124, 124, 119, 119, 115, 105, 115, 117, 123, 123, 116, 108, 118, 123, 114, 111, 127, 107, 108, 118, 118, 135, 116, 113, 122, 109, 125, 117, 122, 121, 116, 120, 123, 111, 121, 112, 119, 124, 100, 116, 111, 141, 120, 101, 113, 115, 117, 119, 124, 114, 139, 97, 121, 126, 136, 111, 102, 111, 111, 113, 105, 130, 124, 141, 112, 107, 119, 108, 127, 104, 131, 105, 117, 121, 136, 113, 120, 117, 108, 127, 107, 123, 127, 113, 93, 121, 122, 137, 126, 114, 100, 112, 124, 126, 121, 115, 120, 110, 102, 108, 118, 110, 119, 96, 118, 117, 113, 114, 120, 113, 111, 116, 105, 121, 131, 106, 114, 119, 112, 115, 111, 110, 113, 110, 111, 117, 104, 122, 109, 132, 130, 131, 117, 112, 116, 110, 118, 115, 128, 95, 115, 109, 122, 116, 119, 127, 125, 106, 120, 123, 122, 119, 113, 129, 98, 121, 117, 116, 101, 111, 117, 131, 109, 112, 120, 117, 109, 108, 133, 115, 107, 124, 126, 115, 111, 105, 118, 112, 101, 113, 130, 118, 121, 97, 121, 126, 113, 108, 115, 114, 122, 100, 112, 132, 127, 130, 119, 120, 105, 106, 119, 116, 127, 116, 107, 111, 109, 117, 112, 123, 130, 125, 106, 120, 107, 114, 113, 113, 132, 118, 101, 133, 123, 99, 127, 120, 123, 117, 116, 119, 111, 134, 116, 107, 116, 109, 118, 114, 126, 114, 115, 106, 113, 128, 131, 126, 119, 123, 118, 135, 130, 120, 114, 106, 116, 111, 111, 119, 115, 128, 125, 122, 125, 126, 104, 115, 104, 133, 127, 114, 127, 112, 118, 103, 110, 114, 122, 110, 124, 118, 128, 124, 111, 123, 107, 123, 111, 125, 106, 97, 128, 116, 113, 123, 119, 104, 104, 116, 131, 116, 107, 92, 96, 108, 128, 151, 111, 109, 115, 122, 114, 111, 113, 104, 116, 115, 132, 110, 115, 131, 125, 110, 105, 106, 114, 112, 116, 135, 111, 135, 121, 113, 150, 120, 108, 131, 116, 107, 125, 119, 112, 110, 110, 113, 118, 121, 110, 106, 112, 117, 110, 109, 104, 118, 116, 108, 112, 108, 112, 109, 115, 104, 103, 117, 106, 115, 122, 118, 119, 127, 111, 96, 113, 137, 120, 106, 135, 109, 118, 111, 121, 114, 116, 104, 119, 128, 98, 102, 98, 89, 124, 122, 110, 115, 102, 123, 125, 107, 117, 116, 104, 121, 103, 122, 118, 112, 127, 104, 112, 120, 114, 113, 107, 126, 113, 122, 112, 115, 118, 122, 104, 116, 121, 118, 108, 130, 109, 106, 123, 119, 124, 110, 107, 120, 119, 115, 128, 117, 124, 100, 127, 119, 101, 110, 126, 109, 122, 121, 129, 119, 107, 103, 127, 137, 101, 118, 123, 129, 111, 111, 101, 135, 110, 116, 116, 101, 110, 112, 112, 120, 133, 93, 131, 123, 107, 118, 99, 112, 106, 140, 111, 123, 111, 121, 112, 123, 130, 117, 116, 108, 156, 125, 122, 133, 106, 114, 118, 126, 119, 98, 126, 103, 124, 123, 117, 136, 111, 107, 112, 111, 120, 116, 101, 110, 124, 120, 114, 112, 119, 106, 107, 124, 109, 111, 100, 112, 113, 119, 137, 109, 125, 126, 111, 116, 122, 125, 121, 114, 100, 119, 129, 138, 109, 107, 115, 130, 131, 119, 117, 102, 136, 118, 120, 114, 119, 129, 112, 97, 113, 113, 128, 131, 107, 109, 118, 108, 101, 123, 112, 118, 109, 113, 128, 112, 103, 116, 118, 115, 130, 114, 118, 109, 119, 115, 117, 119, 150, 106, 111, 112, 122, 118, 125, 109, 113, 118, 109, 118, 146, 165, 128, 125, 102, 124, 119, 117, 109, 115, 104, 131, 111, 102, 110, 117, 115, 115, 110, 116, 115, 122, 107, 113, 106, 108, 102, 111, 112, 113, 113, 123, 105, 119, 118, 115, 118, 115, 114, 120, 117, 105, 107, 100, 101, 132, 125, 121, 112, 116, 120, 124, 104, 107, 130, 112, 117, 118, 110, 109, 120, 102, 125, 118, 126, 134, 124, 121, 114, 100, 125, 106, 108, 112, 114, 118, 111, 123, 115, 109, 115, 118, 114, 113, 108, 114, 109, 107, 103, 119, 102, 112, 136, 114, 122, 113, 98, 113, 122, 105, 116, 121, 112, 108, 120, 110, 114, 122, 118, 117, 106, 116, 123, 118, 95, 126, 108, 117, 94, 126, 122, 118, 121, 104, 109, 105, 117, 113, 108, 128, 99, 108, 128, 123, 104, 103, 122, 151, 114, 110, 112, 119, 126, 114, 111, 114, 122, 106, 102, 123, 119, 126, 119, 113, 114, 109, 130, 98, 133, 128, 114, 106, 114, 123, 105, 106, 108, 119, 122, 94, 113, 111, 117, 126, 114, 118, 99, 118, 122, 111, 118, 118, 115, 122, 104, 107, 121, 109, 112, 104, 110, 98, 103, 117, 109, 115, 120, 127, 137, 98, 112, 117, 121, 117, 115, 113, 128, 112, 129, 129, 107, 105, 115, 116, 133, 117, 104, 124, 121, 115, 111, 116, 107, 114, 121, 112, 112, 120, 104, 124, 89, 115, 116, 116, 119, 98, 119, 116, 105, 111, 99, 127, 106, 117, 105, 107, 105, 102, 109, 109, 108, 118, 112, 119, 119, 105, 111, 116, 113, 112, 126, 114, 111, 117, 111, 116, 120, 117, 115, 127, 119, 101, 112, 128, 125, 102, 107, 122, 124, 104, 124, 119, 121, 106, 121, 97, 122, 110, 102, 102, 121, 118, 119, 119, 133, 109, 109, 115, 110, 116, 115, 115, 116, 129, 123, 113, 102, 109, 122, 107, 111, 119, 107, 109, 120, 116, 119, 118, 113, 104, 105, 112, 131, 113, 130, 105, 114, 122, 115, 118, 129, 116, 108, 113, 107, 139, 102, 110, 111, 134, 108, 130, 117, 120, 110, 121, 108, 115, 120, 120, 113, 124, 125, 130, 126, 110, 120, 129, 119, 100, 110, 121, 114, 116, 98, 111, 109, 112, 116, 117, 118, 96, 109, 117, 139, 123, 109, 114, 120, 112, 104, 117, 123, 120, 93, 112, 116, 105, 110, 111, 118, 127, 97, 117, 120, 97, 120, 132, 108, 110, 104, 119, 122, 110, 126, 115, 111, 95, 122, 114, 118, 108, 114, 111, 121, 114, 115, 116, 105, 126, 127, 120, 111, 114, 108, 110, 120, 121, 131, 130, 128, 118, 107, 119, 101, 128, 126, 108, 104, 118, 107, 121, 129, 116, 111, 120, 138, 110, 111, 114, 108, 105, 127, 111, 107, 109, 120, 128, 120, 130, 106, 114, 116, 115, 115, 106, 116, 114, 120, 127, 121, 118, 104, 115, 120, 125, 110, 118, 126, 110, 113, 119, 110, 110, 120, 137, 107, 108, 118, 98, 114, 119, 109, 102, 111, 122, 113, 130, 106, 109, 103, 125, 117, 110, 128, 115, 115, 105, 109, 116, 115, 111, 107, 133, 112, 120, 111, 119, 122, 120, 119, 125, 117, 111, 113, 116, 117, 116, 110, 126, 114, 107, 98, 110, 127, 105, 119, 121, 141, 106, 132, 130, 111, 127, 132, 115, 105, 104, 111, 110, 109, 121, 126, 104, 116, 125, 110, 123, 115, 119, 98, 113, 119, 120, 106, 99, 119, 125, 118, 139, 106, 113, 132, 116, 108, 132, 91, 111, 106, 118, 122, 117, 112, 125, 118, 117, 115, 115, 118, 125, 109, 116, 113, 114, 108, 122, 85, 115, 125, 118, 110, 107, 106, 118, 128, 113, 105, 110, 118, 115, 129, 126, 119, 99, 110, 115, 119, 113, 110, 111, 114, 111, 114, 121, 123, 117, 116, 126, 107, 110, 113, 130, 108, 125, 120, 117, 129, 103, 117, 117, 93, 112, 116, 111, 107, 115, 101, 108, 111, 118, 108, 117, 109, 139, 107, 124, 116, 97, 114, 117, 108, 113, 117, 113, 118, 133, 111, 117, 101, 114, 114, 111, 113, 113, 125, 121, 111, 118, 119, 101, 122, 124, 113, 113, 100, 124, 124, 118, 147, 122, 114, 120, 118, 105, 130, 115, 105, 124, 105, 146, 106, 119, 123, 117, 94, 107, 119, 169, 125, 115, 109, 105, 108, 123, 106, 125, 139, 123, 115, 113, 118, 110, 112, 114, 117, 133, 104, 116, 121, 115, 110, 111, 113, 118, 109, 137, 117, 115, 123, 99, 121, 114, 115, 115, 117, 115, 117, 102, 122, 117, 138, 122, 108, 108, 114, 115, 115, 110, 110, 112, 124, 118, 120, 125, 109, 111, 108, 122, 117, 132, 108, 126, 111, 125, 119, 114, 109, 109, 136, 129, 101, 116, 113, 126, 118, 125, 108, 124, 114, 133, 109, 122, 121, 94, 104, 153, 137, 128, 113, 114, 132, 127, 123, 113, 105, 117, 123, 123, 101, 118, 109, 123, 120, 114, 123, 111, 116, 100, 79, 112, 118, 124, 121, 112, 122, 139, 121, 143, 120, 110, 110, 115, 122, 103, 112, 113, 113, 137, 123, 134, 119, 113, 112, 117, 89, 115, 106, 123, 109, 107, 109, 110, 120, 122, 108, 118, 125, 137, 129, 123, 100, 102, 107, 117, 108, 117, 107, 123, 107, 114, 117, 112, 108, 111, 125, 112, 126, 105, 124, 102, 115, 122, 104, 117, 120, 128, 98, 110, 125, 108, 125, 121, 124, 120, 99, 124, 138, 116, 118, 116, 120, 115, 116, 119, 123, 115, 106, 96, 129, 120, 121, 122, 114, 120, 115, 105, 125, 108, 102, 85, 114, 126, 110, 98, 120, 118, 105, 126, 103, 114, 112, 116, 121, 116, 111, 121, 125, 139, 115, 121, 110, 110, 108, 105, 132, 117, 104, 124, 99, 109, 80, 129, 107, 117, 131, 119, 113, 123, 123, 115, 109, 119, 119, 120, 101, 116, 122, 113, 112, 125, 112, 105, 117, 109, 112, 91, 114, 87, 119, 119, 108, 118, 104, 105, 113, 124, 96, 114, 119, 98, 118, 119, 135, 111, 123, 148, 109, 117, 112, 117, 107, 126, 118, 104, 125, 136, 104, 122, 153, 120, 114, 132, 83, 125, 126, 82, 119, 123, 125, 116, 112, 109, 116, 126, 82, 114, 105, 105, 113, 123, 122, 100, 90, 106, 95, 109, 121, 113, 103, 109, 118, 109, 123, 114, 88, 125, 116, 98, 104, 119, 112, 128, 119, 112, 102, 120, 118, 112, 114, 97, 137, 120, 123, 126, 128, 122, 116, 108, 131, 110, 120, 118, 141, 130, 102, 129, 117, 89, 109, 115, 103, 119, 113, 105, 98, 106, 104, 92, 123, 117, 90, 129, 109, 113, 88, 125, 113, 97, 131, 116, 116, 101, 108, 118, 105, 134, 114, 112, 124, 107, 121, 146, 125, 104, 106, 129, 104, 121, 112, 106, 124, 113, 119, 130, 109, 104, 105, 134, 117, 90, 119, 120, 112, 111, 111, 123, 100, 105, 119, 131, 137, 120, 116, 117, 111, 120, 107, 110, 100, 105, 122, 106, 119, 105, 121, 108, 125, 150, 107, 110, 128, 103, 115, 115, 108, 117, 105, 134, 128, 113, 139, 116, 99, 109, 105, 113, 99, 122, 134, 91, 142, 118, 107, 121, 113, 103, 103, 108, 114, 113, 107, 109, 159, 117, 116, 122, 117, 114, 120, 104, 105, 112, 104, 114, 114, 120, 112, 103, 127, 109, 119, 114, 114, 104, 98, 128, 124, 122, 107, 116, 104, 115, 108, 114, 91, 122, 134, 105, 120, 106, 134, 122, 125, 123, 113, 104, 124, 114, 123, 109, 108, 85, 114, 114, 111, 114, 119, 107, 103, 116, 104, 113, 123, 108, 123, 120, 135, 114, 120, 114, 120, 116, 117, 96, 97, 136, 124, 119, 96, 161, 125, 122, 90, 124, 120, 114, 112, 118, 111, 97, 99, 120, 115, 109, 138, 119, 103, 129, 121, 121, 119, 115, 115, 125, 106, 98, 107, 118, 110, 110, 128, 117, 121, 108, 109, 119, 111, 132, 111, 108, 105, 115, 107, 115, 104, 117, 120, 128, 106, 114, 101, 108, 162, 163, 103, 104, 125, 93, 123, 116, 107, 125, 118, 121, 107, 122, 106, 129, 103, 119, 118, 102, 97, 106, 109, 119, 98, 120, 121, 117, 124, 116, 118, 114, 128, 110, 111, 125, 109, 123, 107, 108, 122, 131, 110, 111, 113, 122, 107, 127, 116, 118, 118, 98, 127, 110, 112, 122, 121, 101, 134, 115, 114, 111, 120, 118, 109, 116, 113, 112, 112, 116, 116, 108, 105, 114, 118, 114, 121, 119, 125, 121, 102, 110, 106, 124, 119, 110, 103, 118, 115, 126, 103, 107, 141, 108, 106, 115, 111, 121, 112, 119, 95, 119, 123, 115, 138, 98, 102, 99, 98, 123, 105, 110, 134, 105, 89, 124, 114, 150, 130, 105, 112, 106, 115, 111, 116, 128, 99, 110, 122, 125, 105, 106, 106, 135, 116, 123, 107, 120, 109, 103, 118, 122, 121, 110, 110, 115, 116, 144, 130, 113, 128, 110, 113, 110, 115, 117, 113, 122, 98, 114, 106, 137, 104, 120, 122, 110, 103, 127, 108, 136, 121, 110, 107, 114, 108, 131, 138, 130, 111, 124, 111, 119, 101, 108, 112, 114, 109, 121, 117, 120, 108, 118, 128, 123, 113, 112, 127, 125, 118, 130, 119, 116, 128, 118, 122, 120, 127, 117, 114, 103, 121, 128, 121, 125, 113, 124, 119, 99, 113, 114, 108, 122, 113, 106, 118, 129, 120, 104, 119, 110, 105, 126, 132, 144, 110, 127, 129, 121, 134, 124, 91, 102, 105, 102, 111, 118, 116, 121, 123, 117, 114, 116, 119, 112, 108, 115, 121, 133, 100, 123, 113, 129, 100, 121, 111, 99, 138, 133, 109, 124, 113, 99, 126, 121, 111, 110, 109, 133, 105, 104, 103, 106, 155, 114, 115, 111, 109, 110, 130, 113, 115, 124, 124, 123, 109, 111, 112, 114, 159, 102, 115, 106, 130, 114, 108, 104, 113, 126, 112, 110, 128, 125, 118, 123, 122, 111, 112, 128, 115, 119, 118, 120, 110, 129, 115, 98, 115, 121, 116, 111, 110, 122, 114, 133, 115, 121, 93, 135, 132, 115, 115, 93, 110, 99, 107, 114, 113, 110, 101, 113, 120, 108, 107, 114, 114, 105, 120, 103, 118, 107, 105, 92, 107, 145, 132, 126, 109, 114, 110, 117, 116, 127, 134, 116, 109, 109, 113, 110, 139, 113, 125, 113, 107, 113, 119, 110, 105, 113, 113, 114, 109, 122, 116, 134, 112, 110, 117, 122, 116, 122, 112, 144, 128, 128, 125, 122, 131, 125, 108, 121, 99, 115, 117, 113, 114, 113, 116, 107, 113, 111, 115, 120, 115, 119, 107, 124, 122, 127, 131, 123, 117, 117, 128, 126, 135, 111, 113, 137, 108, 129, 114, 118, 111, 109, 126, 117, 111, 102, 113, 118, 107, 116, 116, 109, 158, 114, 103, 103, 129, 115, 91, 106, 106, 100, 118, 127, 112, 120, 145, 118, 123, 118, 103, 101, 103, 128, 105, 116, 106, 109, 114, 118, 107, 117, 105, 113, 102, 118, 105, 123, 105, 118, 122, 118, 107, 123, 108, 113, 120, 119, 118, 113, 120, 139, 113, 124, 109, 121, 119, 115, 128, 115, 100, 103, 119, 107, 105, 143, 100, 124, 116, 112, 110, 126, 113, 110, 110, 129, 111, 110, 111, 98, 119, 109, 108, 115, 105, 123, 105, 127, 117, 112, 121, 126, 120, 122, 112, 102, 115, 110, 122, 108, 122, 129, 104, 120, 95, 126, 130, 88, 123, 107, 117, 112, 114, 119, 74, 88, 110, 127, 138, 109, 115, 106, 119, 124, 129, 98, 96, 128, 103, 125, 120, 78, 117, 124, 86, 103, 116, 124, 115, 117, 154, 103, 108, 121, 119, 122, 112, 131, 117, 110, 115, 114, 106, 114, 109, 114, 106, 116, 106, 124, 130, 113, 125, 121, 105, 102, 128, 120, 117, 133, 108, 110, 116, 112, 124, 124, 123, 105, 112, 104, 116, 119, 112, 115, 128, 123, 120, 108, 113, 117, 106, 123, 92, 101, 114, 123, 140, 137, 106, 113, 106, 112, 120, 117, 111, 124, 125, 107, 110, 105, 129, 122, 114, 78, 127, 126, 135, 114, 118, 110, 105, 115, 101, 107, 89, 107, 105, 111, 124, 112, 116, 119, 115, 112, 116, 120, 105, 127, 116, 113, 126, 110, 85, 113, 126, 110, 117, 124, 132, 109, 110, 114, 109, 104, 109, 114, 114, 116, 121, 125, 116, 122, 102, 108, 114, 98, 118, 114, 117, 110, 120, 123, 123, 114, 108, 111, 118, 101, 108, 116, 128, 114, 104, 112, 120, 110, 117, 112, 114, 120, 128, 119, 113, 102, 125, 122, 114, 106, 106, 118, 115, 127, 125, 113, 110, 117, 116, 116, 112, 131, 115, 107, 122, 97, 111, 126, 116, 115, 123, 91, 120, 107, 113, 118, 115, 118, 106, 112, 114, 115, 111, 109, 103, 113, 104, 115, 114, 114, 113, 118, 114, 126, 109, 111, 106, 112, 118, 116, 116, 116, 114, 117, 108, 118, 121, 115, 110, 118, 119, 122, 150, 131, 132, 117, 108, 109, 106, 108, 115, 98, 131, 109, 123, 131, 113, 112, 112, 113, 118, 107, 115, 114, 115, 110, 120, 114, 118, 115, 111, 100, 143, 125, 111, 106, 107, 115, 115, 113, 118, 104, 108, 125, 108, 110, 103, 113, 121, 138, 123, 113, 107, 114, 104, 111, 117, 113, 113, 114, 119, 106, 141, 114, 113, 117, 114, 120, 120, 112, 120, 118, 122, 119, 118, 111, 111, 111, 124, 121, 117, 114, 121, 107, 106, 108, 121, 122, 110, 107, 116, 105, 132, 117, 115, 115, 128, 110, 124, 119, 110, 116, 110, 109, 106, 114, 119, 105, 128, 110, 113, 107, 108, 126, 116, 113, 113, 116, 135, 111, 135, 115, 115, 129, 126, 120, 117, 109, 120, 112, 121, 119, 112, 109, 118, 106, 113, 118, 115, 119, 124, 117, 101, 115, 111, 116, 120, 114, 118, 127, 113, 131, 115, 119, 112, 105, 110, 128, 115, 115, 127, 107, 114, 118, 116, 116, 127, 106, 120, 113, 105, 106, 113, 112, 119, 122, 137, 113, 120, 115, 112, 118, 132, 118, 126, 102, 114, 121, 104, 114, 109, 119, 123, 107, 103, 115, 109, 118, 114, 162, 123, 113, 123, 106, 113, 127, 108, 125, 110, 123, 125, 117, 110, 118, 105, 127, 109, 105, 113, 102, 123, 103, 97, 115, 116, 116, 119, 104, 118, 102, 120, 131, 110, 127, 110, 120, 123, 106, 119, 113, 113, 110, 125, 118, 122, 121, 113, 109, 110, 108, 119, 121, 117, 114, 116, 119, 115, 103, 112, 117, 113, 127, 112, 109, 109, 112, 85, 113, 113, 116, 123, 120, 112, 109, 108, 113, 118, 115, 122, 121, 121, 106, 115, 113, 125, 124, 116, 112, 126, 124, 115, 117, 123, 122, 102, 137, 119, 109, 121, 119, 107, 125, 127, 110, 122, 112, 108, 114, 111, 113, 104, 117, 111, 108, 108, 125, 116, 114, 118, 114, 113, 111, 115, 132, 116, 123, 123, 83, 108, 113, 121, 91, 119, 115, 121, 125, 110, 110, 113, 111, 107, 114, 119, 115, 115, 108, 115, 114, 113, 124, 102, 110, 109, 109, 106, 113, 106, 123, 120, 121, 116, 122, 103, 108, 113, 113, 114, 115, 122, 113, 107, 116, 106, 116, 113, 113, 108, 110, 108, 106, 116, 122, 123, 114, 125, 125, 125, 124, 126, 124, 85, 106, 99, 124, 147, 121, 105, 105, 111, 105, 111, 102, 119, 126, 100, 130, 121, 116, 109, 101, 106, 125, 116, 111, 108, 122, 127, 125, 120, 111, 112, 131, 122, 122, 127, 118, 120, 104, 101, 106, 121, 119, 124, 121, 127, 111, 119, 125, 131, 117, 110, 102, 116, 115, 124, 112, 116, 120, 105, 121, 112, 111, 94, 105, 132, 122, 127, 99, 107, 120, 114, 120, 119, 123, 127, 121, 119, 118, 109, 126, 106, 120, 136, 107, 116, 102, 124, 88, 117, 118, 133, 119, 115, 135, 126, 123, 142, 116, 128, 93, 146, 121, 125, 119, 111, 124, 117, 110, 115, 87, 108, 102, 129, 138, 110, 121, 107, 133, 127, 126, 112, 120, 112, 119, 119, 110, 126, 127, 120, 110, 118, 118, 109, 109, 130, 121, 123, 132, 128, 114, 127, 129, 123, 97, 116, 93, 116, 107, 121, 126, 113, 119, 118, 120, 100, 100, 135, 112, 126, 104, 113, 132, 113, 125, 103, 117, 110, 108, 114, 120, 118, 131, 114, 124, 128, 110, 113, 126, 112, 122, 142, 109, 116, 112, 100, 116, 127, 122, 115, 118, 127, 106, 118, 101, 114, 104, 117, 113, 120, 115, 121, 98, 111, 90, 122, 126, 117, 104, 128, 102, 117, 119, 130, 110, 132, 118, 106, 117, 116, 112, 131, 128, 106, 134, 109, 117, 132, 119, 110, 108, 122, 110, 104, 108, 107, 128, 106, 124, 117, 87, 123, 120, 113, 111, 119, 134, 115, 95, 115, 112, 125, 116, 114, 106, 99, 99, 134, 106, 106, 108, 96, 113, 115, 118, 111, 125, 117, 138, 118, 110, 115, 74, 115, 124, 108, 122, 118, 104, 114, 122, 113, 129, 122, 134, 113, 118, 112, 110, 110, 114, 98, 98, 118, 124, 101, 110, 124, 110, 112, 114, 118, 111, 124, 103, 120, 112, 129, 126, 128, 121, 104, 124, 117, 126, 106, 128, 101, 126, 129, 114, 120, 110, 116, 112, 113, 127, 109, 122, 120, 115, 122, 128, 120, 122, 110, 111, 121, 128, 115, 118, 134, 118, 113, 106, 117, 128, 118, 124, 130, 115, 116, 107, 120, 112, 132, 119, 108, 139, 116, 127, 119, 120, 101, 117, 111, 111, 111, 110, 134, 109, 103, 102, 122, 113, 121, 99, 112, 106, 101, 114, 114, 130, 132, 115, 123, 112, 119, 121, 122, 123, 116, 116, 113, 115, 127, 115, 125, 117, 107, 122, 94, 111, 134, 107, 122, 131, 120, 110, 134, 114, 115, 114, 115, 117, 128, 110, 120, 109, 122, 114, 116, 118, 144, 112, 124, 114, 109, 85, 127, 95, 99, 106, 120, 103, 131, 120, 132, 125, 130, 114, 135, 114, 110, 109, 118, 132, 118, 117, 134, 123, 106, 110, 111, 112, 112, 98, 129, 100, 111, 88, 120, 123, 127, 112, 117, 103, 112, 134, 136, 110, 115, 112, 107, 104, 96, 117, 107, 110, 101, 93, 103, 131, 129, 116, 118, 114, 124, 102, 101, 108, 109, 108, 96, 104, 119, 125, 101, 95, 106, 116, 111, 108, 114, 109, 135, 111, 116, 107, 117, 105, 104, 116, 106, 116, 109, 128, 107, 124, 112, 101, 104, 131, 112, 124, 124, 121, 116, 106, 103, 115, 128, 125, 124, 106, 110, 114, 96, 121, 117, 117, 132, 122, 125, 107, 118, 112, 106, 125, 113, 138, 130, 120, 96, 97, 111, 114, 125, 120, 121, 119, 116, 113, 93, 107, 127, 117, 111, 117, 115, 120, 118, 109, 113, 102, 129, 109, 119, 110, 112, 117, 116, 99, 136, 93, 113, 113, 79, 110, 115, 112, 125, 116, 105, 107, 114, 118, 108, 114, 113, 110, 127, 107, 112, 115, 114, 106, 116, 109, 129, 121, 115, 123, 116, 113, 120, 127, 119, 119, 116, 120, 115, 129, 121, 118, 114, 123, 104, 112, 106, 131, 121, 141, 118, 119, 118, 103, 124, 143, 118, 119, 116, 83, 114, 121, 120, 117, 98, 104, 111, 109, 110, 115, 127, 119, 112, 123, 125, 111, 120, 117, 125, 113, 115, 113, 121, 106, 114, 131, 111, 136, 127, 112, 110, 119, 117, 121, 113, 119, 120, 114, 111, 115, 126, 123, 124, 114, 133, 123, 110, 122, 124, 118, 112, 117, 114, 106, 129, 125, 125, 119, 126, 105, 125, 109, 114, 113, 110, 112, 112, 124, 105, 102, 110, 98, 114, 128, 112, 114, 119, 110, 102, 116, 123, 107, 139, 128, 127, 110, 114, 124, 103, 110, 115, 106, 121, 109, 138, 112, 143, 114, 104, 113, 114, 115, 103, 112, 116, 110, 112, 113, 109, 119, 123, 106, 124, 104, 111, 113, 121, 131, 132, 128, 112, 96, 135, 113, 129, 107, 104, 100, 108, 118, 111, 118, 117, 124, 122, 110, 131, 116, 97, 97, 95, 103, 118, 115, 127, 111, 115, 124, 112, 115, 130, 112, 104, 106, 115, 116, 120, 103, 106, 114, 123, 115, 112, 110, 123, 117, 148, 113, 118, 115, 117, 112, 109, 103, 117, 122, 126, 122, 112, 121, 115, 116, 103, 108, 118, 123, 116, 121, 107, 125, 108, 128, 111, 111, 111, 127, 119, 129, 119, 115, 118, 118, 107, 113, 108, 127, 121, 126, 113, 109, 111, 116, 121, 113, 116, 117, 128, 118, 117, 132, 124, 113, 107, 114, 105, 125, 111, 114, 100, 123, 115, 108, 142, 112, 113, 107, 143, 121, 122, 106, 115, 110, 122, 117, 118, 127, 108, 112, 113, 116, 134, 141, 120, 117, 113, 93, 113, 106, 134, 117, 118, 116, 116, 108, 121, 109, 123, 114, 114, 114, 111, 132, 120, 108, 129, 89, 109, 122, 113, 125, 119, 115, 122, 124, 113, 120, 129, 121, 107, 109, 118, 116, 119, 120, 108, 117, 127, 129, 121, 91, 121, 120, 107, 116, 98, 118, 112, 115, 120, 90, 132, 110, 114, 111, 115, 111, 104, 116, 107, 123, 119, 123, 117, 124, 118, 120, 110, 114, 115, 115, 121, 114, 115, 114, 100, 119, 105, 110, 105, 120, 105, 120, 111, 132, 125, 121, 117, 115, 113, 117, 118, 116, 107, 117, 122, 112, 121, 131, 109, 117, 120, 115, 105, 155, 112, 117, 109, 124, 123, 113, 113, 117, 111, 112, 126, 112, 108, 115, 122, 113, 116, 111, 111, 121, 118, 102, 125, 117, 121, 97, 118, 110, 110, 116, 123, 119, 105, 116, 113, 112, 118, 110, 120, 112, 111, 112, 115, 121, 116, 109, 112, 119, 119, 122, 118, 121, 111, 125, 116, 117, 123, 114, 111, 118, 112, 108, 116, 114, 111, 115, 114, 111, 84, 111, 117, 109, 116, 115, 115, 116, 117, 116, 114, 108, 112, 118, 113, 118, 115, 111, 116, 117, 123, 91, 115, 111, 115, 119, 109, 121, 115, 115, 117, 108, 111, 121, 114, 110, 110, 103, 112, 117, 119, 112, 117, 113, 114, 115, 130, 117, 124, 114, 127, 117, 117, 105, 115, 109, 119, 117, 115, 114, 116, 113, 110, 107, 125, 122, 115, 120, 113, 119, 115, 117, 112, 112, 120, 116, 109, 121, 111, 116, 112, 117, 115, 114, 111, 124, 116, 121, 112, 119, 119, 118, 120, 114, 114, 114, 113, 120, 120, 111, 116, 124, 116, 122, 121, 92, 125, 107, 118, 110, 119, 117, 123, 111, 113, 117, 112, 114, 114, 126, 119, 118, 123, 114, 108, 117, 99, 119, 117, 117, 119, 115, 119, 108, 112, 112, 128, 117, 122, 107, 114, 111, 114, 121, 113, 120, 124, 124, 104, 116, 114, 113, 114, 107, 112, 122, 113, 111, 117, 111, 113, 113, 131, 117, 119, 115, 131, 116, 123, 112, 107, 114, 110, 111, 120, 113, 107, 110, 111, 121, 114, 115, 121, 118, 114, 111, 116, 115, 115, 109, 116, 116, 119, 121, 119, 115, 117, 104, 120, 115, 113, 120, 116, 117, 112, 116, 113, 111, 110, 116, 119, 113, 111, 111, 114, 117, 118, 108, 121, 125, 124, 100, 116, 117, 112, 113, 110, 116, 116, 113, 125, 107, 119, 122, 113, 121, 116, 121, 114, 113, 130, 118, 116, 121, 122, 114, 122, 115, 112, 113, 116, 96, 116, 117, 114, 125, 121, 116, 122, 120, 120, 116, 116, 119, 119, 113, 115, 112, 122, 122, 119, 117, 118, 120, 112, 119, 119, 125, 117, 122, 111, 115, 110, 122, 122, 117, 117, 126, 113, 117, 114, 117, 111, 117, 120, 115, 118, 116, 117, 106, 111, 116, 117, 118, 115, 117, 115, 118, 108, 107, 116, 115, 114, 119, 132, 113, 117, 107, 119, 112, 119, 119, 105, 115, 124, 121, 124, 114, 118, 117, 119, 110, 128, 123, 115, 97, 114, 83, 115, 84, 116, 119, 111, 117, 112, 119, 102, 111, 111, 124, 118, 115, 112, 117, 121, 132, 114, 128, 109, 127, 124, 119, 118, 194, 122, 108, 121, 116, 104, 115, 113, 116, 118, 119, 121, 123, 102, 96, 124, 127, 108, 119, 122, 116, 131, 106, 114, 112, 110, 113, 122, 121, 118, 124, 122, 120, 116, 122, 113, 116, 125, 111, 109, 115, 114, 106, 118, 113, 120, 112, 112, 128, 117, 112, 113, 129, 116, 110, 125, 108, 115, 110, 114, 109, 115, 119, 113, 123, 114, 110, 119, 116, 116, 112, 116, 110, 118, 128, 117, 116, 120, 116, 110, 104, 112, 130, 114, 116, 114, 119, 109, 119, 115, 106, 127, 123, 114, 120, 94, 113, 116, 115, 115, 108, 122, 109, 96, 122, 111, 115, 106, 106, 125, 112, 107, 98, 114, 107, 109, 120, 125, 110, 91, 109, 114, 111, 130, 92, 133, 122, 108, 117, 128, 113, 122, 107, 109, 108, 112, 118, 118, 133, 111, 119, 114, 116, 122, 133, 117, 121, 110, 115, 110, 115, 131, 107, 120, 112, 111, 109, 117, 112, 117, 98, 109, 121, 112, 114, 131, 118, 102, 129, 123, 121, 126, 128, 116, 123, 112, 105, 108, 116, 116, 108, 112, 115, 129, 104, 112, 122, 117, 115, 106, 113, 115, 111, 118, 111, 100, 112, 114, 117, 109, 114, 115, 128, 113, 121, 127, 118, 102, 114, 108, 125, 110, 118, 113, 107, 119, 115, 130, 127, 114, 131, 120, 123, 124, 125, 97, 142, 109, 114, 106, 107, 102, 114, 98, 111, 125, 116, 116, 105, 115, 115, 116, 123, 114, 116, 120, 124, 114, 105, 122, 111, 120, 117, 113, 122, 113, 122, 121, 113, 116, 107, 119, 108, 111, 116, 116, 146, 120, 115, 115, 118, 111, 116, 120, 122, 120, 125, 115, 122, 121, 104, 123, 107, 114, 117, 106, 126, 118, 126, 124, 101, 115, 106, 109, 107, 118, 113, 135, 110, 115, 120, 121, 110, 111, 112, 131, 141, 109, 118, 116, 121, 124, 113, 103, 119, 119, 112, 93, 128, 99, 127, 109, 124, 126, 110, 121, 112, 116, 113, 132, 115, 103, 117, 132, 124, 121, 104, 134, 114, 108, 112, 133, 132, 116, 120, 102, 107, 126, 117, 120, 119, 113, 106, 114, 125, 108, 115, 115, 106, 127, 114, 116, 112, 119, 112, 120, 130, 116, 118, 119, 114, 123, 120, 134, 119, 122, 108, 130, 124, 118, 117, 114, 116, 117, 111, 122, 114, 112, 110, 112, 111, 126, 115, 105, 108, 114, 113, 106, 121, 109, 108, 109, 128, 128, 126, 120, 116, 125, 108, 116, 119, 120, 116, 105, 134, 106, 131, 117, 105, 111, 98, 119, 104, 122, 115, 113, 111, 122, 122, 111, 100, 128, 122, 112, 107, 128, 117, 121, 117, 121, 119, 141, 116, 123, 116, 115, 102, 117, 99, 154, 122, 115, 126, 150, 119, 107, 118, 131, 108, 139, 110, 124, 118, 104, 120, 128, 108, 144, 112, 123, 126, 102, 126, 109, 96, 117, 123, 140, 122, 116, 112, 78, 118, 114, 100, 109, 111, 127, 110, 120, 122, 121, 121, 112, 107, 113, 121, 111, 121, 111, 112, 114, 123, 116, 123, 123, 107, 115, 98, 106, 111, 130, 104, 124, 106, 105, 114, 118, 117, 111, 104, 117, 110, 123, 122, 138, 103, 101, 118, 106, 105, 114, 110, 116, 120, 138, 115, 123, 106, 113, 119, 114, 121, 109, 123, 107, 110, 118, 110, 120, 103, 130, 113, 115, 109, 119, 114, 132, 94, 118, 111, 122, 117, 118, 116, 117, 127, 109, 107, 128, 112, 125, 104, 121, 121, 99, 110, 109, 122, 115, 117, 114, 105, 115, 122, 115, 97, 125, 126, 126, 117, 114, 117, 125, 117, 91, 117, 94, 112, 113, 102, 144, 112, 101, 131, 120, 132, 114, 132, 97, 132, 97, 107, 123, 126, 107, 129, 108, 111, 97, 109, 114, 126, 117, 122, 120, 124, 106, 122, 118, 107, 135, 121, 121, 102, 129, 73, 129, 105, 105, 96, 144, 130, 100, 118, 106, 118, 103, 98, 101, 140, 136, 120, 120, 117, 125, 105, 116, 116, 120, 127, 116, 102, 116, 115, 119, 121, 115, 109, 117, 112, 122, 109, 117, 115, 111, 105, 107, 140, 85, 115, 124, 121, 119, 122, 118, 115, 120, 115, 124, 104, 100, 118, 109, 101, 115, 114, 114, 125, 122, 114, 136, 128, 104, 114, 103, 109, 125, 127, 145, 96, 122, 99, 117, 115, 113, 119, 124, 116, 118, 105, 92, 99, 112, 105, 107, 110, 120, 111, 112, 116, 128, 108, 130, 129, 100, 124, 115, 131, 104, 100, 122, 113, 91, 113, 138, 116, 122, 111, 115, 106, 133, 125, 99, 141, 109, 109, 105, 109, 115, 106, 97, 116, 106, 108, 120, 114, 127, 112, 126, 118, 108, 111, 111, 102, 108, 120, 107, 102, 129, 123, 106, 120, 140, 133, 132, 105, 118, 127, 124, 112, 136, 125, 109, 123, 112, 103, 112, 134, 117, 105, 118, 116, 122, 102, 108, 109, 119, 113, 120, 124, 124, 116, 117, 112, 114, 117, 109, 130, 116, 109, 114, 120, 106, 132, 105, 125, 105, 100, 71, 114, 127, 115, 106, 113, 118, 116, 115, 101, 122, 121, 123, 125, 112, 103, 132, 118, 102, 107, 110, 123, 113, 125, 112, 106, 122, 118, 135, 84, 109, 128, 114, 116, 110, 109, 125, 107, 116, 126, 103, 111, 126, 115, 107, 123, 109, 95, 98, 110, 133, 120, 134, 119, 109, 125, 109, 108, 117, 107, 102, 128, 115, 126, 113, 115, 107, 118, 120, 115, 109, 130, 105, 121, 110, 140, 120, 96, 108, 112, 117, 124, 102, 132, 104, 105, 125, 114, 101, 114, 124, 93, 105, 118, 125, 143, 123, 119, 117, 109, 101, 114, 114, 119, 111, 113, 104, 156, 114, 131, 112, 111, 123, 121, 111, 116, 131, 113, 120, 118, 97, 120, 122, 114, 109, 108, 104, 102, 132, 119, 114, 129, 106, 103, 125, 119, 122, 116, 114, 136, 121, 120, 91, 112, 115, 132, 116, 114, 100, 114, 122, 110, 101, 128, 106, 122, 131, 125, 116, 125, 90, 115, 104, 124, 118, 114, 103, 121, 132, 125, 120, 110, 115, 115, 121, 119, 112, 107, 129, 112, 108, 115, 120, 114, 104, 113, 107, 102, 103, 101, 112, 135, 108, 129, 97, 123, 129, 119, 137, 99, 119, 111, 94, 123, 117, 124, 103, 97, 97, 122, 123, 119, 111, 106, 118, 123, 116, 108, 144, 105, 131, 114, 113, 121, 110, 105, 113, 118, 100, 109, 119, 119, 104, 127, 128, 100, 116, 125, 115, 103, 91, 103, 106, 115, 104, 112, 107, 119, 113, 145, 101, 104, 109, 118, 102, 119, 136, 110, 124, 98, 112, 105, 118, 112, 134, 107, 137, 125, 107, 114, 121, 100, 123, 109, 107, 110, 105, 112, 112, 124, 96, 116, 119, 118, 111, 118, 118, 118, 122, 117, 117, 120, 124, 124, 113, 120, 123, 117, 120, 115, 119, 118, 116, 121, 119, 122, 117, 112, 119, 123, 114, 119, 107, 111, 131, 116, 123, 116, 130, 122, 118, 113, 117, 119, 104, 117, 120, 124, 106, 110, 116, 118, 120, 103, 114, 113, 118, 117, 100, 113, 119, 111, 120, 112, 115, 124, 119, 121, 114, 128, 117, 108, 105, 110, 121, 100, 113, 118, 112, 119, 120, 119, 115, 119, 110, 123, 116, 115, 120, 136, 119, 112, 116, 122, 104, 115, 120, 120, 114, 113, 126, 111, 124, 120, 119, 111, 115, 107, 113, 116, 111, 128, 112, 111, 113, 113, 124, 116, 119, 122, 116, 117, 122, 115, 117, 116, 112, 118, 117, 111, 119, 107, 116, 112, 114, 120, 119, 118, 119, 115, 104, 123, 112, 123, 120, 110, 142, 115, 126, 118, 124, 115, 110, 119, 109, 117, 107, 109, 113, 112, 117, 120, 116, 112, 116, 111, 127, 122, 119, 112, 119, 121, 110, 116, 117, 122, 114, 123, 122, 106, 122, 110, 120, 121, 120, 122, 107, 120, 114, 116, 116, 112, 118, 115, 111, 117, 113, 120, 113, 115, 120, 117, 118, 132, 114, 116, 119, 113, 117, 114, 113, 111, 117, 113, 120, 113, 123, 118, 115, 105, 118, 118, 119, 120, 116, 123, 113, 120, 119, 116, 112, 115, 111, 112, 109, 128, 114, 109, 108, 111, 104, 117, 115, 122, 112, 120, 114, 112, 105, 128, 109, 115, 123, 116, 112, 111, 119, 125, 117, 110, 111, 114, 126, 120, 116, 131, 121, 118, 119, 112, 118, 126, 120, 114, 112, 124, 115, 122, 124, 109, 109, 118, 126, 116, 119, 124, 105, 119, 122, 121, 118, 125, 122, 116, 119, 118, 115, 122, 105, 116, 117, 116, 116, 113, 116, 112, 123, 116, 112, 121, 118, 110, 115, 118, 119, 117, 111, 123, 122, 122, 112, 114, 124, 124, 117, 115, 117, 113, 121, 116, 110, 118, 126, 117, 122, 113, 119, 113, 112, 123, 119, 114, 113, 117, 116, 113, 113, 118, 118, 118, 122, 116, 112, 126, 117, 109, 126, 118, 115, 116, 110, 119, 115, 108, 122, 114, 111, 112, 114, 116, 120, 125, 123, 117, 118, 112, 110, 120, 115, 109, 118, 115, 112, 108, 113, 107, 118, 115, 126, 112, 113, 116, 117, 115, 118, 107, 119, 111, 121, 114, 123, 117, 117, 128, 104, 110, 117, 116, 115, 116, 114, 122, 115, 114, 114, 96, 112, 120, 118, 113, 116, 108, 117, 118, 109, 120, 115, 123, 117, 125, 117, 116, 122, 120, 112, 110, 130, 112, 111, 120, 118, 116, 116, 107, 126, 121, 122, 115, 113, 111, 121, 126, 115, 120, 124, 120, 119, 108, 111, 126, 115, 108, 120, 118, 107, 114, 118, 116, 123, 122, 104, 121, 110, 107, 123, 119, 119, 117, 121, 121, 112, 109, 115, 117, 112, 114, 117, 117, 112, 115, 121, 118, 110, 121, 114, 120, 111, 118, 114, 120, 125, 119, 114, 119, 119, 116, 113, 113, 116, 109, 119, 114, 136, 121, 110, 116, 109, 111, 118, 117, 123, 110, 129, 124, 122, 117, 119, 111, 110, 113, 112, 122, 120, 105, 114, 113, 121, 114, 115, 114, 117, 113, 101, 116, 114, 117, 116, 118, 114, 113, 115, 112, 113, 116, 112, 113, 113, 110, 119, 108, 117, 118, 115, 111, 106, 111, 107, 116, 121, 122, 116, 123, 112, 120, 115, 115, 109, 116, 118, 120, 117, 113, 114, 119, 113, 112, 112, 120, 115, 110, 119, 117, 123, 116, 108, 117, 111, 118, 115, 117, 105, 119, 120, 115, 115, 114, 113, 115, 116, 115, 119, 126, 118, 122, 132, 107, 112, 119, 117, 119, 122, 118, 127, 115, 110, 114, 121, 119, 116, 118, 116, 118, 118, 116, 114, 116, 116, 116, 113, 120, 114, 115, 113, 110, 114, 104, 117, 113, 115, 117, 121, 113, 119, 112, 118, 113, 123, 112, 111, 115, 113, 112, 122, 119, 123, 117, 117, 112, 110, 116, 123, 107, 122, 112, 124, 128, 122, 114, 116, 113, 115, 121, 118, 117, 119, 117, 121, 120, 113, 121, 115, 118, 115, 110, 120, 105, 104, 110, 117, 123, 118, 116, 112, 117, 110, 118, 107, 117, 114, 121, 110, 108, 112, 119, 116, 113, 113, 118, 118, 112, 113, 113, 116, 121, 97, 119, 116, 99, 114, 112, 117, 119, 113, 110, 103, 122, 116, 117, 127, 113, 112, 102, 113, 111, 113, 111, 120, 121, 128, 115, 115, 119, 117, 118, 118, 114, 123, 117, 113, 119, 111, 114, 116, 115, 116, 103, 113, 116, 116, 116, 116, 129, 114, 126, 117, 113, 117, 124, 128, 120, 108, 120, 118, 112, 117, 119, 122, 116, 113, 116, 117, 122, 116, 110, 114, 112, 108, 93, 113, 120, 121, 115, 119, 117, 120, 109, 119, 109, 114, 114, 112, 117, 117, 124, 114, 114, 128, 117, 121, 118, 114, 121, 115, 114, 119, 113, 115, 102, 110, 107, 121, 114, 141, 115, 131, 116, 124, 118, 110, 118, 117, 118, 114, 115, 110, 111, 119, 116, 120, 114, 117, 121, 115, 113, 111, 115, 116, 120, 122, 126, 116, 121, 111, 119, 116, 116, 113, 120, 112, 112, 116, 112, 125, 121, 125, 109, 116, 120, 113, 118, 115, 113, 119, 108, 122, 112, 119, 114, 125, 116, 113, 110, 115, 120, 118, 118, 122, 116, 117, 116, 119, 118, 109, 122, 114, 117, 115, 117, 119, 114, 113, 128, 109, 112, 119, 106, 114, 111, 115, 115, 113, 128, 107, 117, 116, 110, 128, 120, 117, 115, 117, 119, 123, 106, 114, 121, 115, 114, 116, 119, 115, 121, 119, 118, 118, 117, 116, 109, 118, 116, 118, 122, 127, 110, 118, 106, 116, 120, 112, 111, 122, 122, 121, 123, 123, 124, 116, 122, 118, 117, 127, 116, 116, 112, 115, 119, 118, 114, 106, 119, 124, 115, 114, 129, 112, 114, 110, 137, 129, 118, 117, 113, 115, 118, 116, 112, 120, 112, 117, 123, 112, 110, 118, 116, 115, 113, 112, 119, 118, 113, 113, 112, 111, 129, 114, 110, 117, 124, 111, 128, 117, 114, 117, 116, 115, 109, 116, 122, 120, 119, 119, 142, 116, 102, 125, 104, 110, 112, 111, 125, 115, 116, 116, 114, 109, 122, 104, 118, 105, 126, 115, 110, 117, 102, 118, 108, 114, 107, 127, 117, 126, 117, 112, 146, 109, 124, 124, 121, 113, 107, 111, 115, 123, 111, 110, 111, 99, 96, 112, 113, 117, 123, 114, 113, 110, 120, 115, 119, 122, 131, 114, 111, 123, 124, 116, 118, 120, 134, 116, 131, 119, 113, 127, 123, 114, 110, 111, 133, 113, 124, 126, 130, 115, 117, 128, 115, 120, 115, 118, 111, 114, 125, 123, 120, 109, 126, 125, 110, 112, 113, 105, 117, 118, 107, 125, 118, 114, 109, 108, 121, 128, 114, 128, 125, 115, 126, 110, 99, 104, 124, 122, 118, 118, 119, 111, 108, 112, 115, 108, 117, 135, 116, 109, 100, 132, 98, 122, 111, 110, 115, 111, 113, 114, 114, 107, 129, 129, 108, 119, 122, 98, 114, 105, 109, 109, 88, 126, 120, 117, 108, 102, 127, 119, 128, 100, 117, 113, 111, 127, 108, 117, 117, 114, 119, 115, 115, 127, 110, 124, 116, 118, 110, 126, 111, 111, 119, 117, 88, 108, 107, 117, 127, 115, 112, 121, 121, 116, 116, 112, 112, 117, 109, 111, 112, 110, 117, 122, 113, 125, 120, 103, 124, 115, 117, 113, 145, 108, 117, 106, 127, 116, 115, 112, 126, 116, 128, 144, 116, 119, 122, 114, 125, 125, 149, 114, 109, 126, 113, 135, 123, 120, 109, 116, 106, 106, 103, 119, 114, 129, 112, 113, 121, 120, 113, 104, 121, 117, 115, 125, 125, 113, 119, 113, 121, 108, 93, 120, 126, 118, 120, 116, 118, 115, 113, 125, 126, 119, 122, 115, 125, 123, 118, 123, 115, 130, 120, 130, 127, 108, 120, 111, 115, 106, 101, 118, 110, 119, 108, 117, 111, 115, 122, 111, 127, 112, 134, 116, 106, 112, 116, 116, 122, 114, 105, 115, 124, 108, 119, 134, 117, 117, 106, 105, 113, 117, 119, 118, 120, 106, 116, 107, 122, 122, 121, 119, 110, 116, 121, 121, 103, 126, 117, 115, 121, 114, 119, 111, 123, 147, 119, 116, 97, 102, 114, 118, 91, 121, 126, 113, 120, 113, 107, 127, 121, 155, 122, 119, 97, 126, 122, 114, 109, 110, 116, 125, 106, 121, 110, 106, 110, 99, 113, 122, 116, 114, 132, 110, 125, 119, 114, 108, 123, 119, 117, 116, 114, 112, 124, 109, 107, 117, 108, 107, 122, 122, 118, 108, 111, 116, 110, 131, 109, 113, 123, 117, 102, 121, 137, 107, 100, 117, 123, 109, 109, 112, 103, 121, 114, 138, 111, 122, 107, 112, 121, 133, 118, 119, 112, 119, 108, 112, 109, 111, 113, 85, 117, 123, 111, 124, 106, 116, 110, 128, 121, 114, 117, 127, 113, 113, 114, 107, 105, 120, 129, 114, 111, 113, 121, 114, 121, 126, 113, 122, 112, 101, 113, 122, 112, 108, 115, 111, 120, 111, 111, 105, 97, 120, 111, 117, 125, 113, 128, 119, 112, 116, 110, 130, 98, 120, 119, 145, 135, 120, 119, 138, 110, 135, 126, 139, 120, 119, 136, 116, 110, 123, 124, 117, 122, 118, 115, 122, 110, 109, 107, 115, 111, 119, 119, 110, 121, 111, 118, 116, 115, 125, 129, 116, 111, 118, 104, 108, 123, 112, 105, 110, 113, 121, 120, 115, 120, 106, 116, 122, 117, 122, 121, 102, 110, 110, 114, 102, 106, 117, 108, 107, 129, 109, 120, 121, 114, 116, 112, 122, 121, 114, 130, 120, 107, 117, 107, 123, 120, 107, 132, 113, 117, 112, 117, 108, 115, 113, 91, 114, 124, 120, 123, 125, 101, 115, 119, 50, 114, 108, 114, 120, 121, 105, 109, 113, 119, 112, 111, 107, 123, 109, 109, 122, 118, 117, 114, 121, 112, 112, 117, 119, 119, 122, 120, 118, 110, 111, 114, 128, 115, 124, 114, 108, 111, 115, 125, 121, 113, 117, 110, 106, 123, 111, 123, 106, 130, 113, 110, 134, 112, 135, 122, 117, 120, 114, 113, 132, 118, 115, 115, 108, 63, 110, 118, 122, 122, 113, 118, 112, 119, 113, 134, 117, 136, 106, 117, 101, 113, 104, 114, 121, 112, 110, 111, 111, 117, 108, 119, 121, 121, 110, 132, 128, 122, 112, 119, 116, 121, 126, 112, 118, 137, 103, 119, 123, 109, 130, 109, 120, 115, 125, 115, 120, 75, 128, 117, 118, 78, 118, 110, 111, 133, 123, 111, 127, 115, 115, 119, 125, 126, 106, 104, 114, 113, 109, 114, 104, 116, 118, 119, 89, 112, 130, 109, 112, 120, 112, 130, 106, 110, 121, 119, 131, 110, 115, 93, 122, 113, 114, 136, 135, 120, 115, 126, 128, 128, 120, 137, 143, 132, 116, 113, 115, 113, 112, 105, 108, 117, 133, 117, 120, 118, 107, 125, 118, 116, 122, 104, 113, 117, 110, 133, 114, 112, 119, 117, 116, 132, 130, 122, 117, 116, 111, 119, 119, 118, 69, 119, 114, 121, 110, 106, 117, 127, 106, 115, 113, 124, 118, 126, 127, 111, 126, 110, 113, 120, 112, 144, 122, 122, 109, 110, 119, 119, 109, 118, 101, 106, 120, 103, 133, 113, 118, 131, 111, 109, 107, 132, 124, 101, 116, 132, 125, 116, 110, 135, 114, 118, 119, 119, 125, 113, 133, 110, 68, 118, 115, 118, 116, 105, 106, 126, 111, 117, 114, 125, 129, 96, 114, 124, 122, 109, 122, 125, 121, 126, 110, 122, 120, 125, 125, 120, 129, 120, 116, 118, 110, 99, 117, 118, 125, 108, 121, 115, 106, 130, 119, 112, 122, 116, 123, 96, 66, 103, 114, 103, 122, 115, 109, 125, 123, 104, 122, 114, 102, 106, 115, 117, 126, 102, 105, 113, 109, 120, 105, 119, 120, 114, 104, 107, 117, 121, 102, 105, 118, 84, 113, 116, 117, 129, 109, 103, 122, 113, 122, 115, 108, 119, 106, 111, 111, 112, 124, 116, 120, 99, 111, 123, 124, 120, 124, 115, 121, 113, 129, 113, 122, 163, 95, 112, 114, 122, 110, 108, 108, 128, 108, 120, 128, 122, 115, 121, 115, 115, 121, 64, 113, 132, 117, 123, 113, 116, 118, 109, 120, 116, 96, 120, 123, 108, 119, 118, 120, 115, 117, 119, 118, 112, 119, 143, 108, 116, 114, 125, 108, 112, 120, 97, 108, 125, 128, 105, 126, 98, 108, 134, 114, 114, 122, 110, 100, 116, 116, 112, 119, 110, 112, 118, 121, 108, 122, 115, 128, 108, 119, 114, 126, 105, 124, 103, 123, 121, 99, 141, 116, 118, 131, 107, 128, 113, 119, 110, 121, 120, 112, 113, 116, 128, 111, 111, 105, 110, 110, 114, 110, 120, 135, 112, 128, 101, 114, 114, 113, 118, 112, 129, 96, 134, 117, 97, 119, 113, 118, 105, 113, 109, 104, 111, 90, 105, 101, 115, 125, 130, 115, 103, 117, 117, 126, 113, 120, 129, 128, 117, 84, 114, 125, 123, 137, 125, 119, 142, 122, 143, 131, 115, 126, 102, 114, 109, 114, 101, 96, 103, 116, 121, 110, 117, 114, 116, 112, 120, 119, 128, 109, 110, 117, 114, 132, 112, 117, 108, 135, 114, 118, 115, 129, 110, 109, 117, 119, 125, 117, 100, 109, 128, 115, 164, 82, 117, 108, 121, 112, 111, 124, 105, 135, 126, 108, 105, 122, 129, 107, 117, 126, 118, 121, 109, 112, 115, 114, 119, 131, 141, 120, 104, 106, 113, 105, 108, 108, 96, 124, 103, 110, 119, 128, 102, 127, 113, 121, 110, 121, 124, 126, 121, 100, 120, 132, 115, 108, 97, 113, 120, 112, 118, 133, 96, 105, 117, 130, 103, 128, 128, 139, 115, 124, 112, 124, 108, 117, 112, 99, 112, 100, 107, 125, 116, 125, 115, 121, 126, 132, 120, 147, 110, 113, 133, 121, 128, 135, 122, 124, 110, 110, 131, 112, 130, 115, 106, 101, 99, 131, 120, 113, 108, 124, 126, 111, 111, 119, 126, 119, 116, 111, 130, 84, 141, 115, 115, 127, 108, 98, 120, 112, 114, 112, 112, 126, 139, 131, 133, 116, 109, 104, 124, 117, 111, 118, 120, 119, 104, 110, 108, 122, 110, 116, 106, 108, 117, 111, 97, 114, 112, 123, 119, 107, 114, 117, 132, 122, 122, 109, 117, 127, 106, 111, 124, 109, 125, 123, 121, 97, 127, 116, 129, 129, 124, 128, 116, 97, 95, 133, 127, 113, 110, 129, 121, 106, 103, 127, 126, 139, 114, 127, 128, 97, 128, 113, 113, 113, 124, 121, 125, 110, 128, 113, 122, 120, 105, 96, 122, 95, 117, 124, 121, 104, 114, 121, 111, 132, 106, 113, 118, 133, 113, 116, 113, 110, 134, 125, 115, 117, 118, 109, 79, 126, 147, 125, 120, 112, 116, 120, 119, 124, 128, 131, 129, 104, 110, 106, 113, 136, 98, 119, 130, 143, 110, 113, 134, 117, 156, 117, 117, 106, 111, 118, 114, 113, 106, 91, 123, 128, 113, 98, 93, 122, 138, 121, 119, 114, 132, 116, 121, 119, 98, 103, 118, 102, 116, 108, 114, 112, 100, 104, 120, 112, 133, 104, 124, 124, 113, 125, 111, 121, 106, 140, 114, 128, 116, 99, 109, 122, 122, 133, 109, 97, 121, 114, 90, 116, 119, 118, 109, 109, 109, 109, 112, 99, 143, 125, 129, 117, 115, 117, 117, 91, 137, 108, 101, 118, 108, 127, 130, 115, 110, 122, 146, 117, 117, 94, 114, 117, 115, 120, 101, 123, 119, 109, 118, 117, 113, 116, 105, 117, 117, 107, 119, 118, 119, 109, 106, 123, 111, 123, 128, 122, 114, 110, 117, 123, 106, 111, 117, 122, 110, 124, 112, 115, 115, 126, 115, 109, 112, 116, 99, 113, 115, 122, 117, 122, 111, 111, 124, 125, 115, 117, 122, 108, 117, 120, 126, 126, 120, 120, 115, 109, 145, 113, 118, 118, 102, 126, 113, 125, 129, 110, 115, 114, 92, 108, 116, 91, 116, 120, 120, 111, 116, 111, 117, 105, 110, 115, 128, 118, 124, 114, 120, 121, 103, 110, 135, 113, 114, 123, 113, 121, 120, 114, 112, 122, 118, 110, 113, 118, 116, 117, 121, 121, 108, 104, 119, 109, 128, 110, 114, 109, 134, 122, 119, 117, 117, 103, 114, 112, 114, 122, 115, 115, 114, 106, 113, 116, 118, 115, 123, 95, 130, 107, 114, 120, 121, 102, 117, 151, 108, 121, 134, 119, 119, 109, 115, 104, 107, 108, 121, 112, 120, 109, 124, 113, 114, 119, 119, 120, 115, 101, 117, 125, 118, 144, 115, 127, 117, 119, 109, 122, 116, 117, 94, 109, 122, 111, 118, 113, 120, 112, 122, 120, 114, 119, 110, 115, 121, 122, 116, 125, 123, 119, 116, 118, 114, 108, 113, 124, 129, 109, 129, 106, 119, 117, 134, 113, 115, 129, 117, 119, 89, 125, 116, 117, 118, 123, 111, 135, 106, 125, 104, 103, 105, 98, 122, 107, 89, 124, 107, 117, 111, 113, 121, 114, 125, 113, 117, 114, 116, 109, 127, 125, 117, 120, 110, 118, 107, 125, 126, 107, 89, 113, 123, 126, 124, 116, 110, 114, 119, 113, 119, 122, 117, 120, 122, 108, 114, 111, 110, 110, 120, 116, 121, 113, 121, 112, 115, 115, 88, 117, 121, 109, 111, 122, 111, 102, 114, 117, 88, 119, 111, 120, 125, 112, 127, 110, 112, 106, 125, 112, 126, 111, 99, 110, 116, 114, 107, 179, 106, 138, 118, 117, 124, 113, 124, 104, 112, 107, 156, 110, 112, 114, 107, 110, 121, 126, 110, 109, 118, 120, 113, 110, 112, 118, 130, 121, 147, 100, 117, 110, 97, 119, 119, 120, 119, 120, 108, 126, 116, 116, 125, 122, 95, 126, 124, 116, 84, 113, 108, 115, 117, 112, 124, 124, 110, 127, 128, 112, 120, 117, 112, 120, 109, 114, 121, 117, 112, 114, 114, 107, 114, 109, 112, 118, 111, 112, 115, 101, 111, 106, 108, 123, 111, 112, 113, 109, 107, 102, 122, 119, 105, 119, 115, 114, 113, 116, 124, 118, 116, 112, 122, 108, 107, 138, 122, 128, 109, 120, 107, 104, 125, 113, 120, 126, 116, 114, 117, 127, 119, 128, 129, 114, 121, 131, 124, 122, 111, 111, 120, 126, 111, 121, 128, 123, 111, 112, 118, 116, 133, 96, 102, 119, 121, 129, 125, 118, 121, 114, 121, 101, 101, 134, 124, 113, 102, 105, 116, 113, 118, 181, 107, 113, 117, 117, 113, 114, 125, 123, 116, 117, 107, 122, 96, 139, 112, 114, 121, 118, 120, 117, 115, 142, 133, 102, 122, 121, 114, 122, 112, 116, 113, 114, 116, 113, 116, 119, 112, 126, 114, 124, 115, 118, 112, 119, 111, 116, 113, 113, 111, 110, 103, 114, 118, 116, 121, 116, 115, 116, 118, 120, 117, 121, 119, 117, 116, 115, 125, 117, 116, 119, 112, 109, 115, 121, 120, 115, 113, 117, 116, 120, 118, 120, 114, 112, 117, 110, 116, 120, 112, 119, 110, 119, 116, 124, 127, 115, 120, 108, 116, 115, 118, 121, 119, 126, 115, 115, 112, 114, 121, 116, 114, 120, 109, 115, 113, 122, 115, 122, 112, 125, 104, 115, 109, 120, 117, 115, 117, 115, 120, 118, 123, 117, 118, 120, 114, 125, 114, 124, 113, 112, 116, 117, 113, 121, 119, 120, 115, 112, 112, 122, 113, 105, 116, 118, 112, 119, 113, 114, 112, 117, 123, 119, 119, 121, 115, 110, 111, 114, 111, 103, 117, 118, 125, 116, 121, 112, 119, 117, 106, 114, 121, 121, 115, 120, 108, 131, 114, 112, 118, 118, 116, 117, 108, 123, 117, 125, 118, 116, 114, 114, 116, 116, 120, 111, 108, 116, 117, 117, 118, 109, 123, 108, 113, 117, 111, 110, 119, 119, 110, 121, 118, 118, 114, 109, 109, 110, 112, 111, 113, 116, 115, 113, 116, 111, 116, 110, 115, 116, 120, 128, 120, 120, 112, 118, 110, 113, 113, 119, 112, 115, 113, 113, 125, 123, 117, 106, 121, 120, 119, 116, 113, 117, 111, 117, 113, 117, 117, 113, 121, 112, 113, 120, 119, 109, 122, 112, 108, 115, 122, 122, 121, 110, 123, 123, 113, 127, 120, 119, 102, 118, 119, 99, 120, 114, 123, 119, 111, 117, 103, 114, 118, 116, 118, 106, 105, 113, 115, 118, 108, 128, 117, 119, 116, 118, 125, 114, 114, 113, 116, 126, 113, 111, 117, 116, 113, 115, 112, 115, 113, 116, 117, 119, 121, 118, 100, 112, 114, 119, 120, 112, 120, 116, 117, 114, 118, 117, 118, 117, 117, 120, 120, 121, 119, 112, 106, 119, 116, 111, 119, 119, 110, 111, 117, 116, 116, 113, 119, 120, 121, 114, 120, 122, 118, 116, 114, 112, 112, 122, 116, 115, 109, 121, 115, 119, 123, 116, 116, 112, 113, 111, 123, 115, 108, 116, 115, 122, 114, 119, 115, 124, 116, 114, 107, 118, 113, 118, 120, 115, 117, 112, 112, 115, 117, 115, 118, 123, 115, 111, 121, 117, 113, 117, 109, 112, 105, 113, 118, 115, 116, 114, 113, 114, 105, 107, 110, 112, 120, 112, 112, 116, 112, 124, 118, 125, 113, 119, 117, 116, 113, 111, 128, 125, 120, 104, 116, 116, 108, 118, 111, 116, 119, 123, 111, 113, 99, 112, 113, 116, 112, 116, 107, 116, 119, 112, 118, 120, 117, 121, 115, 123, 118, 119, 116, 118, 117, 117, 116, 111, 122, 122, 120, 119, 112, 123, 115, 117, 104, 120, 109, 112, 113, 117, 115, 119, 119, 119, 122, 115, 117, 114, 116, 114, 114, 118, 119, 116, 115, 120, 113, 116, 116, 120, 118, 114, 120, 120, 122, 115, 120, 123, 119, 116, 113, 117, 111, 114, 126, 129, 118, 102, 22, 123, 113, 116, 115, 115, 113, 116, 115, 113, 118, 118, 117, 116, 116, 102, 111, 107, 116, 115, 99, 105, 109, 119, 108, 105, 122, 128, 127, 101, 110, 106, 116, 127, 102, 112, 110, 127, 115, 122, 103, 117, 117, 132, 117, 95, 138, 123, 105, 116, 119, 97, 118, 98, 100, 119, 124, 125, 117, 132, 106, 119, 117, 110, 127, 121, 138, 122, 119, 132, 117, 121, 102, 118, 113, 111, 90, 116, 103, 110, 110, 106, 103, 119, 113, 118, 128, 112, 101, 117, 118, 138, 120, 90, 120, 118, 108, 145, 116, 101, 175, 134, 106, 121, 121, 115, 145, 123, 80, 129, 122, 116, 122, 122, 110, 113, 136, 167, 110, 130, 125, 117, 143, 107, 121, 114, 113, 103, 108, 85, 124, 109, 102, 107, 71, 116, 113, 107, 112, 118, 147, 125, 184, 108, 117, 118, 117, 125, 116, 105, 118, 110, 128, 111, 102, 119, 125, 110, 113, 107, 120, 118, 121, 108, 137, 117, 115, 95, 120, 126, 116, 97, 115, 117, 118, 122, 120, 112, 120, 113, 126, 124, 110, 109, 117, 111, 131, 120, 105, 114, 119, 111, 115, 117, 120, 128, 99, 106, 123, 109, 112, 119, 89, 107, 125, 113, 113, 92, 108, 105, 129, 104, 122, 114, 111, 117, 126, 115, 104, 125, 120, 126, 105, 112, 128, 116, 116, 112, 127, 122, 111, 118, 60, 116, 140, 120, 106, 124, 89, 129, 100, 93, 115, 114, 105, 114, 124, 125, 104, 114, 117, 125, 133, 133, 117, 121, 110, 119, 125, 121, 105, 103, 114, 137, 138, 143, 111, 131, 115, 106, 109, 107, 106, 118, 117, 102, 113, 104, 131, 150, 115, 103, 110, 110, 106, 122, 122, 130, 122, 121, 100, 118, 111, 123, 114, 112, 103, 101, 114, 90, 91, 110, 116, 121, 127, 86, 114, 113, 117, 101, 120, 106, 116, 122, 99, 106, 115, 123, 125, 127, 89, 115, 114, 111, 105, 107, 109, 118, 117, 66, 98, 124, 130, 111, 122, 107, 106, 121, 127, 116, 103, 117, 126, 103, 109, 103, 106, 104, 114, 113, 117, 93, 119, 131, 102, 117, 114, 99, 110, 136, 96, 112, 104, 137, 120, 122, 110, 118, 119, 110, 120, 112, 114, 118, 111, 103, 133, 112, 118, 124, 145, 123, 122, 115, 124, 104, 107, 119, 112, 117, 133, 112, 117, 112, 110, 110, 115, 116, 106, 99, 104, 109, 116, 117, 106, 104, 102, 105, 120, 115, 93, 103, 110, 108, 111, 127, 133, 139, 130, 115, 114, 121, 120, 119, 120, 117, 131, 125, 123, 107, 123, 123, 112, 115, 97, 110, 107, 100, 103, 108, 123, 112, 127, 127, 122, 115, 114, 119, 98, 118, 113, 104, 99, 113, 110, 116, 102, 124, 118, 115, 109, 115, 116, 129, 111, 127, 110, 118, 110, 113, 124, 113, 118, 132, 109, 104, 119, 122, 120, 88, 101, 118, 106, 107, 121, 107, 108, 120, 125, 108, 91, 107, 119, 113, 121, 123, 105, 77, 118, 118, 101, 125, 134, 115, 130, 97, 113, 226, 106, 123, 118, 118, 108, 105, 110, 128, 136, 116, 111, 111, 109, 108, 109, 127, 117, 109, 122, 109, 107, 104, 98, 119, 111, 104, 101, 114, 109, 118, 136, 106, 103, 125, 102, 142, 100, 111, 100, 120, 111, 130, 125, 114, 113, 101, 122, 110, 125, 107, 118, 112, 108, 117, 110, 101, 127, 111, 118, 103, 119, 121, 118, 131, 114, 114, 98, 127, 105, 110, 137, 112, 97, 106, 113, 109, 122, 113, 121, 113, 120, 134, 88, 135, 109, 114, 120, 122, 100, 111, 116, 106, 92, 136, 114, 136, 113, 123, 116, 102, 106, 122, 106, 109, 132, 127, 124, 104, 116, 123, 120, 121, 116, 104, 102, 108, 102, 120, 110, 117, 107, 113, 114, 133, 101, 130, 132, 110, 117, 117, 134, 120, 111, 121, 113, 113, 125, 118, 105, 116, 118, 125, 112, 105, 128, 132, 95, 120, 96, 110, 116, 118, 105, 96, 112, 111, 113, 108, 97, 129, 127, 105, 119, 114, 116, 111, 99, 122, 97, 116, 136, 98, 112, 128, 105, 107, 122, 120, 111, 133, 126, 97, 122, 109, 140, 101, 117, 122, 118, 122, 120, 116, 109, 127, 110, 114, 116, 121, 138, 123, 114, 125, 123, 110, 123, 117, 116, 115, 100, 129, 124, 120, 115, 107, 111, 122, 96, 120, 109, 111, 128, 105, 125, 113, 120, 119, 106, 118, 115, 98, 115, 128, 102, 105, 106, 117, 115, 116, 111, 121, 111, 139, 113, 132, 111, 118, 122, 111, 102, 118, 113, 119, 114, 101, 115, 123, 121, 123, 104, 101, 114, 115, 142, 105, 121, 102, 121, 119, 114, 120, 126, 112, 122, 115, 126, 110, 95, 102, 120, 120, 123, 132, 126, 115, 106, 113, 115, 128, 105, 113, 137, 113, 87, 126, 122, 91, 117, 111, 127, 107, 121, 111, 120, 117, 116, 117, 125, 107, 123, 120, 112, 115, 124, 112, 114, 111, 119, 100, 103, 116, 128, 110, 116, 114, 117, 113, 112, 114, 94, 108, 91, 114, 121, 114, 127, 105, 109, 104, 117, 124, 110, 126, 109, 117, 102, 120, 118, 110, 129, 108, 123, 138, 112, 134, 100, 110, 119, 120, 100, 130, 125, 104, 117, 122, 117, 123, 118, 120, 108, 120, 112, 115, 108, 112, 109, 131, 117, 129, 102, 113, 102, 114, 112, 127, 116, 122, 96, 122, 124, 107, 113, 112, 102, 111, 115, 118, 89, 116, 115, 108, 132, 122, 99, 114, 111, 105, 109, 119, 98, 109, 107, 135, 114, 112, 98, 106, 116, 102, 83, 116, 100, 118, 131, 91, 131, 136, 106, 104, 114, 113, 129, 125, 114, 129, 102, 127, 127, 117, 110, 116, 116, 114, 111, 113, 128, 119, 107, 121, 112, 105, 112, 106, 103, 116, 117, 122, 125, 121, 126, 117, 124, 113, 126, 110, 116, 119, 106, 127, 103, 126, 124, 112, 96, 116, 132, 108, 102, 117, 122, 111, 106, 119, 122, 104, 111, 107, 107, 118, 107, 112, 117, 118, 129, 115, 113, 120, 101, 117, 106, 121, 108, 106, 103, 102, 94, 133, 112, 123, 108, 108, 99, 120, 116, 118, 116, 130, 171, 114, 123, 114, 92, 118, 122, 117, 122, 155, 124, 113, 136, 115, 129, 111, 114, 114, 126, 121, 116, 120, 108, 107, 112, 123, 116, 118, 120, 108, 115, 116, 117, 113, 115, 119, 106, 118, 110, 123, 112, 116, 109, 111, 112, 113, 111, 117, 119, 113, 129, 118, 125, 121, 111, 115, 123, 113, 114, 113, 117, 131, 111, 114, 118, 115, 110, 115, 112, 118, 110, 138, 122, 117, 117, 108, 102, 119, 116, 114, 112, 120, 121, 107, 114, 125, 125, 116, 119, 110, 113, 118, 120, 114, 108, 117, 110, 108, 118, 117, 117, 117, 112, 121, 124, 133, 122, 117, 107, 115, 112, 118, 124, 119, 106, 121, 128, 105, 121, 114, 124, 116, 111, 122, 127, 112, 111, 123, 124, 148, 125, 111, 116, 102, 120, 113, 119, 110, 107, 111, 119, 118, 109, 111, 126, 115, 118, 122, 107, 124, 117, 112, 120, 115, 162, 120, 112, 118, 115, 119, 115, 118, 119, 116, 130, 112, 109, 113, 128, 112, 117, 108, 114, 115, 121, 108, 112, 127, 112, 101, 91, 109, 114, 113, 122, 113, 112, 118, 120, 115, 127, 112, 110, 114, 123, 110, 121, 111, 121, 116, 116, 115, 135, 115, 120, 118, 111, 118, 103, 108, 118, 116, 114, 122, 186, 120, 110, 120, 113, 115, 125, 113, 119, 111, 123, 122, 122, 119, 114, 113, 112, 122, 139, 120, 121, 115, 118, 120, 110, 111, 140, 124, 123, 115, 125, 118, 128, 115, 140, 115, 116, 109, 126, 120, 111, 106, 116, 107, 117, 119, 120, 114, 118, 118, 83, 124, 118, 118, 124, 118, 127, 121, 119, 108, 118, 110, 115, 111, 122, 120, 122, 114, 120, 119, 110, 130, 108, 114, 101, 123, 116, 117, 122, 115, 111, 115, 117, 113, 106, 129, 107, 111, 127, 114, 104, 112, 121, 113, 119, 119, 103, 124, 117, 113, 120, 114, 108, 121, 116, 115, 115, 117, 112, 111, 110, 117, 113, 123, 108, 125, 156, 120, 66, 118, 111, 126, 114, 121, 115, 118, 115, 118, 111, 118, 108, 112, 113, 68, 106, 112, 160, 109, 112, 118, 79, 113, 110, 116, 109, 117, 114, 127, 116, 106, 120, 113, 151, 116, 120, 114, 116, 122, 132, 115, 122, 118, 110, 118, 109, 123, 110, 112, 103, 114, 110, 128, 106, 113, 114, 116, 114, 111, 111, 112, 109, 110, 115, 110, 117, 113, 114, 113, 119, 107, 117, 119, 120, 119, 115, 137, 125, 80, 102, 122, 112, 121, 114, 111, 126, 121, 122, 114, 114, 116, 121, 106, 117, 84, 125, 115, 123, 114, 122, 120, 116, 123, 117, 86, 81, 106, 123, 113, 100, 134, 115, 111, 116, 118, 123, 111, 124, 113, 122, 112, 132, 126, 114, 121, 114, 108, 116, 130, 112, 120, 118, 115, 109, 133, 125, 116, 116, 111, 112, 116, 107, 109, 117, 122, 110, 119, 116, 110, 120, 123, 102, 114, 114, 93, 110, 117, 114, 126, 116, 113, 108, 117, 131, 147, 112, 119, 124, 118, 112, 122, 108, 50, 121, 46, 126, 115, 100, 104, 111, 106, 122, 118, 119, 118, 109, 119, 112, 124, 104, 81, 128, 111, 127, 105, 107, 104, 109, 118, 114, 84, 122, 113, 133, 104, 133, 104, 122, 109, 130, 112, 120, 123, 103, 106, 127, 120, 107, 118, 121, 106, 105, 114, 114, 111, 137, 114, 118, 124, 118, 112, 111, 110, 115, 122, 99, 116, 97, 119, 119, 113, 118, 136, 118, 115, 120, 108, 103, 127, 125, 115, 107, 106, 114, 111, 118, 124, 118, 107, 111, 106, 119, 115, 104, 123, 127, 110, 113, 126, 115, 112, 109, 105, 144, 107, 112, 117, 118, 108, 115, 99, 105, 124, 123, 131, 118, 139, 122, 108, 136, 125, 118, 127, 105, 111, 115, 112, 107, 122, 117, 117, 121, 130, 107, 98, 116, 112, 126, 115, 133, 117, 106, 95, 127, 140, 105, 137, 113, 115, 124, 117, 120, 119, 121, 123, 127, 115, 110, 115, 114, 109, 123, 117, 116, 125, 89, 128, 130, 133, 119, 113, 108, 114, 104, 108, 124, 117, 125, 128, 101, 111, 119, 120, 117, 109, 120, 125, 109, 122, 118, 112, 114, 124, 110, 121, 117, 124, 108, 107, 127, 107, 105, 117, 123, 120, 113, 137, 125, 112, 111, 107, 103, 87, 130, 131, 109, 123, 113, 114, 150, 119, 103, 110, 110, 123, 106, 108, 117, 125, 119, 106, 120, 107, 113, 101, 114, 109, 123, 101, 144, 108, 121, 115, 114, 115, 123, 123, 112, 128, 124, 111, 130, 122, 113, 114, 121, 128, 125, 108, 93, 130, 109, 120, 112, 111, 131, 123, 101, 122, 135, 115, 109, 115, 132, 128, 107, 86, 119, 119, 139, 111, 106, 117, 122, 124, 98, 123, 134, 116, 125, 118, 122, 118, 105, 119, 117, 147, 96, 111, 106, 101, 119, 122, 119, 97, 113, 131, 117, 110, 126, 107, 118, 119, 108, 117, 147, 105, 139, 116, 122, 104, 110, 117, 119, 118, 116, 109, 138, 117, 115, 101, 116, 110, 103, 100, 133, 113, 126, 112, 112, 115, 130, 121, 109, 109, 120, 117, 131, 111, 114, 127, 133, 108, 114, 122, 117, 103, 129, 117, 109, 117, 119, 125, 123, 119, 134, 107, 120, 121, 115, 110, 109, 128, 98, 109, 124, 117, 118, 120, 127, 118, 115, 118, 104, 118, 112, 104, 112, 112, 110, 133, 132, 102, 131, 118, 115, 119, 133, 119, 114, 118, 111, 117, 125, 121, 113, 112, 114, 119, 130, 108, 111, 125, 117, 109, 96, 104, 109, 134, 127, 109, 97, 105, 118, 117, 125, 108, 103, 132, 112, 110, 108, 107, 102, 102, 102, 95, 132, 127, 110, 120, 116, 113, 88, 108, 115, 121, 117, 110, 133, 127, 118, 126, 125, 106, 116, 105, 125, 122, 106, 115, 125, 117, 101, 115, 118, 113, 126, 111, 104, 119, 105, 106, 115, 107, 142, 114, 106, 113, 111, 104, 119, 114, 119, 120, 112, 105, 127, 121, 119, 126, 108, 99, 112, 110, 127, 116, 123, 107, 119, 116, 114, 117, 108, 104, 111, 110, 121, 123, 113, 116, 109, 112, 106, 112, 139, 122, 110, 124, 133, 113, 116, 107, 121, 132, 120, 113, 111, 127, 119, 107, 112, 99, 109, 121, 120, 100, 116, 112, 116, 111, 116, 96, 129, 109, 116, 126, 145, 111, 118, 120, 131, 118, 113, 114, 118, 126, 118, 126, 112, 118, 125, 128, 115, 109, 115, 117, 134, 113, 113, 119, 140, 99, 101, 117, 119, 120, 133, 113, 118, 113, 127, 120, 113, 121, 111, 131, 129, 116, 108, 112, 86, 122, 115, 118, 125, 115, 113, 114, 122, 119, 117, 112, 121, 108, 134, 129, 113, 129, 123, 106, 109, 120, 119, 114, 119, 132, 118, 118, 114, 127, 121, 122, 117, 149, 124, 120, 120, 124, 123, 120, 128, 120, 126, 111, 123, 114, 114, 141, 109, 110, 129, 116, 136, 102, 108, 126, 123, 110, 114, 120, 98, 111, 126, 103, 119, 143, 114, 110, 109, 118, 117, 124, 115, 110, 118, 148, 110, 109, 111, 119, 104, 112, 117, 148, 118, 111, 99, 129, 121, 120, 115, 110, 109, 120, 104, 119, 123, 105, 139, 113, 119, 117, 112, 120, 112, 109, 110, 113, 130, 109, 120, 138, 109, 121, 108, 110, 112, 96, 111, 112, 114, 109, 115, 124, 114, 117, 117, 129, 116, 109, 114, 115, 121, 136, 105, 120, 120, 111, 118, 114, 144, 100, 108, 115, 107, 120, 95, 110, 112, 124, 102, 126, 143, 128, 125, 145, 126, 117, 121, 120, 107, 94, 115, 108, 101, 108, 125, 125, 115, 111, 118, 112, 125, 118, 122, 105, 111, 120, 124, 124, 88, 116, 125, 110, 119, 110, 122, 110, 95, 114, 127, 111, 120, 126, 108, 122, 101, 76, 98, 108, 132, 123, 98, 113, 123, 128, 122, 103, 114, 105, 119, 132, 105, 126, 115, 115, 116, 120, 91, 81, 129, 114, 122, 113, 122, 128, 109, 111, 128, 125, 116, 125, 111, 106, 118, 124, 133, 123, 127, 118, 126, 106, 102, 120, 120, 109, 122, 115, 125, 101, 116, 115, 115, 123, 110, 114, 126, 115, 109, 123, 121, 107, 102, 116, 113, 114, 112, 120, 119, 125, 114, 114, 110, 114, 108, 118, 120, 123, 102, 132, 121, 119, 116, 126, 122, 121, 121, 113, 118, 110, 129, 116, 114, 127, 115, 104, 110, 93, 115, 119, 116, 110, 122, 110, 106, 112, 109, 122, 110, 109, 105, 120, 115, 94, 118, 114, 113, 111, 118, 121, 126, 126, 118, 114, 120, 116, 127, 116, 120, 113, 110, 118, 108, 113, 117, 107, 112, 105, 114, 117, 113, 106, 119, 115, 107, 114, 107, 115, 115, 109, 109, 115, 122, 112, 118, 118, 126, 112, 169, 102, 116, 127, 126, 136, 107, 115, 106, 115, 121, 116, 128, 122, 117, 124, 128, 104, 111, 98, 105, 107, 108, 95, 108, 122, 123, 116, 115, 119, 93, 111, 115, 118, 121, 116, 95, 102, 149, 109, 121, 107, 105, 110, 115, 123, 114, 101, 114, 120, 152, 109, 124, 130, 115, 109, 123, 124, 110, 131, 132, 103, 122, 122, 119, 120, 127, 119, 127, 113, 110, 129, 121, 111, 116, 117, 121, 117, 109, 124, 118, 102, 121, 133, 110, 109, 121, 115, 128, 114, 96, 96, 114, 112, 109, 133, 112, 115, 108, 128, 96, 110, 120, 118, 108, 105, 117, 112, 115, 120, 122, 113, 124, 125, 108, 126, 123, 112, 109, 108, 105, 108, 121, 121, 132, 115, 113, 122, 111, 117, 103, 121, 136, 109, 111, 121, 121, 114, 121, 110, 128, 112, 107, 119, 118, 128, 135, 122, 111, 139, 116, 124, 122, 115, 121, 117, 110, 123, 122, 120, 121, 114, 106, 120, 140, 118, 112, 126, 103, 116, 118, 112, 106, 130, 104, 109, 114, 100, 115, 112, 124, 107, 116, 123, 114, 116, 148, 115, 112, 132, 123, 124, 124, 119, 123, 110, 105, 109, 109, 106, 116, 111, 114, 132, 122, 118, 121, 110, 124, 130, 115, 106, 113, 109, 107, 124, 121, 108, 111, 123, 118, 101, 106, 117, 111, 133, 119, 110, 110, 115, 100, 114, 127, 108, 106, 106, 114, 114, 116, 111, 109, 113, 121, 112, 117, 108, 106, 109, 120, 104, 102, 130, 116, 96, 103, 115, 119, 123, 118, 123, 108, 105, 129, 110, 112, 121, 107, 115, 118, 130, 113, 100, 115, 125, 108, 124, 112, 114, 120, 101, 119, 122, 124, 99, 106, 99, 116, 125, 105, 126, 110, 102, 119, 123, 106, 110, 107, 116, 119, 130, 101, 102, 113, 119, 134, 119, 114, 117, 120, 127, 118, 114, 119, 104, 110, 121, 134, 104, 123, 120, 96, 105, 111, 116, 114, 109, 115, 126, 108, 126, 119, 109, 109, 98, 106, 108, 118, 118, 116, 109, 113, 103, 113, 113, 113, 122, 119, 107, 107, 108, 128, 119, 162, 125, 118, 109, 110, 103, 124, 117, 121, 108, 118, 121, 139, 120, 109, 136, 104, 115, 113, 121, 106, 103, 134, 114, 102, 110, 116, 117, 105, 125, 105, 119, 115, 111, 118, 122, 107, 93, 121, 121, 110, 109, 117, 128, 117, 120, 92, 113, 115, 115, 122, 109, 113, 120, 124, 119, 93, 110, 116, 126, 96, 134, 108, 121, 96, 129, 120, 122, 114, 112, 111, 129, 115, 118, 119, 94, 137, 110, 111, 121, 118, 112, 104, 117, 96, 123, 112, 111, 100, 109, 106, 117, 112, 124, 133, 99, 112, 112, 115, 110, 119, 109, 98, 123, 111, 120, 113, 113, 116, 104, 122, 114, 114, 122, 113, 120, 117, 116, 113, 125, 121, 113, 120, 109, 107, 131, 113, 126, 118, 124, 105, 106, 114, 103, 109, 121, 113, 109, 117, 120, 117, 115, 113, 112, 115, 123, 126, 111, 116, 100, 131, 122, 118, 100, 124, 116, 129, 119, 125, 115, 118, 108, 122, 129, 115, 127, 107, 110, 113, 115, 112, 132, 105, 116, 95, 111, 114, 112, 115, 105, 133, 107, 114, 111, 117, 116, 118, 97, 150, 109, 104, 118, 132, 133, 123, 110, 101, 105, 102, 113, 120, 107, 116, 120, 110, 109, 109, 129, 107, 144, 123, 129, 109, 126, 128, 114, 127, 119, 109, 116, 119, 121, 118, 125, 114, 125, 122, 128, 107, 113, 116, 101, 112, 122, 117, 120, 111, 114, 108, 105, 124, 121, 118, 126, 133, 100, 128, 115, 94, 104, 108, 102, 117, 122, 112, 122, 112, 110, 115, 131, 108, 96, 109, 107, 111, 119, 96, 134, 122, 131, 127, 120, 116, 122, 117, 115, 56, 105, 116, 117, 108, 131, 105, 152, 110, 121, 88, 108, 117, 107, 130, 117, 114, 117, 124, 115, 117, 114, 121, 109, 131, 110, 140, 120, 122, 117, 119, 106, 95, 123, 125, 121, 113, 116, 109, 109, 111, 137, 121, 120, 143, 113, 115, 142, 120, 123, 111, 101, 122, 119, 104, 121, 122, 109, 108, 125, 108, 116, 114, 101, 126, 110, 96, 154, 121, 103, 120, 99, 117, 125, 95, 112, 123, 107, 120, 110, 110, 118, 98, 121, 115, 97, 118, 114, 129, 113, 108, 110, 104, 101, 121, 103, 113, 120, 107, 107, 121, 106, 117, 114, 107, 100, 105, 111, 129, 121, 113, 116, 102, 115, 102, 114, 119, 100, 116, 115, 121, 132, 128, 113, 128, 115, 118, 101, 113, 111, 117, 121, 135, 123, 101, 103, 100, 116, 112, 103, 121, 115, 119, 130, 123, 94, 106, 109, 99, 117, 85, 130, 114, 116, 118, 109, 111, 108, 118, 117, 97, 117, 116, 113, 125, 136, 121, 116, 109, 113, 107, 109, 114, 110, 107, 112, 110, 118, 118, 88, 105, 112, 122, 125, 117, 120, 100, 106, 106, 121, 109, 124, 92, 93, 101, 116, 110, 104, 118, 113, 126, 120, 118, 129, 128, 140, 128, 113, 106, 116, 107, 106, 125, 120, 118, 121, 122, 124, 102, 115, 118, 107, 126, 104, 123, 113, 116, 112, 107, 108, 94, 124, 122, 114, 111, 125, 116, 111, 122, 126, 117, 126, 104, 126, 118, 114, 129, 124, 117, 130, 116, 129, 105, 119, 128, 111, 112, 100, 99, 113, 118, 118, 106, 134, 117, 117, 116, 110, 130, 140, 96, 114, 96, 126, 102, 104, 114, 115, 108, 119, 126, 144, 122, 134, 110, 114, 109, 120, 125, 106, 144, 110, 113, 113, 118, 117, 105, 114, 104, 124, 117, 125, 115, 125, 113, 117, 117, 123, 123, 134, 117, 122, 112, 110, 132, 111, 116, 97, 122, 117, 114, 106, 111, 115, 112, 108, 113, 138, 114, 130, 128, 122, 113, 117, 126, 130, 99, 128, 117, 105, 97, 113, 126, 113, 110, 121, 107, 129, 123, 120, 124, 120, 120, 110, 126, 110, 128, 109, 114, 94, 130, 118, 122, 114, 102, 108, 107, 105, 115, 112, 119, 112, 117, 125, 103, 126, 126, 109, 121, 125, 126, 144, 90, 108, 139, 106, 104, 115, 110, 101, 120, 117, 100, 114, 128, 115, 110, 113, 113, 123, 114, 123, 120, 108, 107, 127, 110, 122, 123, 124, 95, 132, 123, 121, 122, 113, 113, 114, 118, 109, 111, 117, 107, 128, 106, 116, 98, 121, 96, 107, 111, 105, 103, 115, 107, 113, 111, 121, 112, 119, 134, 104, 101, 108, 117, 109, 124, 121, 115, 123, 115, 102, 107, 112, 107, 116, 117, 102, 110, 121, 117, 131, 124, 116, 116, 111, 117, 104, 133, 117, 106, 118, 134, 105, 118, 104, 119, 117, 113, 110, 120, 115, 121, 125, 113, 111, 118, 115, 114, 124, 122, 118, 116, 124, 114, 107, 118, 102, 119, 119, 106, 118, 122, 107, 113, 111, 117, 118, 112, 130, 110, 117, 98, 108, 121, 122, 113, 118, 116, 126, 119, 112, 105, 111, 118, 108, 112, 108, 117, 105, 121, 116, 124, 121, 128, 112, 109, 117, 117, 110, 118, 115, 114, 121, 108, 117, 117, 113, 109, 111, 110, 123, 119, 120, 106, 114, 106, 110, 123, 117, 123, 114, 121, 120, 117, 115, 110, 122, 109, 124, 125, 120, 117, 122, 112, 123, 100, 134, 103, 110, 107, 122, 114, 114, 106, 113, 100, 102, 109, 112, 100, 116, 114, 112, 118, 121, 115, 112, 119, 122, 124, 120, 106, 113, 110, 126, 115, 117, 105, 125, 116, 122, 115, 112, 111, 106, 118, 114, 117, 129, 117, 110, 120, 118, 103, 117, 109, 122, 124, 106, 100, 119, 116, 110, 110, 116, 115, 121, 110, 114, 116, 126, 123, 126, 120, 124, 111, 121, 107, 115, 113, 113, 125, 115, 108, 113, 111, 107, 123, 105, 109, 116, 106, 117, 106, 109, 109, 116, 111, 115, 107, 112, 122, 112, 124, 111, 118, 115, 127, 113, 111, 113, 118, 110, 115, 105, 114, 117, 118, 123, 121, 112, 115, 132, 130, 118, 125, 119, 103, 122, 116, 112, 116, 115, 113, 121, 132, 115, 121, 119, 124, 122, 119, 118, 111, 124, 117, 124, 124, 123, 121, 111, 105, 118, 107, 116, 118, 112, 112, 115, 121, 111, 121, 113, 116, 121, 119, 123, 117, 111, 113, 111, 120, 116, 111, 121, 128, 112, 117, 107, 122, 125, 120, 118, 111, 116, 116, 114, 114, 121, 113, 118, 113, 118, 119, 117, 118, 114, 118, 108, 122, 111, 114, 107, 119, 115, 118, 112, 114, 112, 95, 112, 112, 115, 108, 117, 121, 112, 110, 111, 109, 111, 120, 133, 113, 113, 113, 101, 112, 112, 102, 120, 117, 130, 116, 114, 104, 115, 126, 115, 116, 112, 118, 108, 122, 113, 111, 115, 119, 121, 121, 126, 112, 117, 130, 109, 133, 115, 128, 110, 109, 110, 115, 100, 103, 114, 115, 115, 136, 114, 117, 121, 127, 110, 123, 117, 116, 110, 115, 117, 122, 109, 123, 121, 116, 119, 105, 119, 109, 113, 128, 114, 120, 108, 115, 111, 120, 120, 107, 115, 118, 120, 127, 121, 123, 115, 116, 114, 100, 115, 113, 117, 122, 114, 117, 114, 105, 126, 116, 116, 106, 119, 112, 121, 90, 121, 122, 113, 122, 122, 113, 119, 116, 115, 113, 123, 115, 121, 110, 115, 103, 116, 108, 110, 125, 123, 109, 108, 113, 113, 122, 103, 111, 116, 118, 118, 114, 125, 118, 109, 105, 116, 116, 123, 107, 110, 122, 115, 114, 113, 108, 113, 119, 110, 116, 122, 112, 114, 109, 108, 126, 113, 117, 117, 116, 111, 114, 129, 133, 109, 118, 113, 118, 114, 116, 116, 118, 119, 109, 111, 117, 107, 111, 123, 111, 124, 101, 106, 126, 109, 121, 117, 111, 109, 116, 111, 124, 112, 109, 115, 99, 120, 127, 117, 102, 116, 109, 115, 125, 121, 110, 129, 113, 114, 114, 107, 102, 108, 116, 113, 111, 113, 122, 114, 118, 113, 116, 105, 113, 107, 119, 123, 120, 126, 118, 112, 108, 121, 119, 122, 123, 114, 116, 107, 115, 88, 106, 122, 131, 106, 110, 111, 114, 132, 111, 99, 117, 127, 95, 108, 107, 119, 109, 114, 126, 127, 110, 115, 128, 119, 113, 106, 119, 120, 132, 128, 111, 111, 117, 127, 107, 115, 117, 101, 114, 116, 108, 109, 103, 109, 130, 113, 111, 108, 110, 112, 129, 106, 129, 114, 100, 117, 115, 118, 112, 113, 109, 131, 115, 110, 116, 96, 113, 118, 116, 109, 113, 111, 94, 130, 125, 130, 114, 101, 112, 105, 103, 130, 119, 124, 110, 130, 110, 108, 130, 161, 110, 107, 104, 130, 113, 124, 123, 128, 116, 107, 141, 111, 112, 111, 103, 119, 114, 122, 106, 100, 116, 110, 123, 116, 122, 120, 111, 105, 96, 123, 125, 131, 102, 112, 87, 104, 118, 115, 119, 112, 123, 101, 129, 104, 111, 109, 109, 116, 101, 118, 116, 101, 115, 105, 129, 123, 108, 122, 137, 116, 133, 107, 110, 116, 104, 111, 111, 98, 118, 129, 123, 100, 106, 136, 109, 124, 130, 112, 115, 110, 93, 122, 118, 100, 110, 137, 105, 108, 107, 113, 182, 114, 93, 112, 124, 111, 114, 127, 122, 115, 116, 128, 107, 123, 131, 121, 112, 109, 128, 107, 130, 118, 117, 118, 98, 107, 120, 118, 117, 110, 115, 130, 119, 108, 113, 132, 100, 105, 124, 121, 113, 128, 110, 109, 116, 108, 112, 118, 111, 118, 104, 125, 98, 117, 120, 105, 118, 111, 119, 122, 105, 114, 114, 98, 85, 108, 119, 131, 114, 99, 105, 109, 109, 121, 109, 107, 108, 113, 118, 126, 106, 122, 114, 110, 90, 110, 135, 112, 107, 108, 126, 122, 117, 109, 118, 95, 112, 121, 117, 119, 119, 119, 114, 114, 104, 109, 115, 125, 135, 107, 119, 119, 117, 125, 119, 117, 119, 106, 117, 109, 109, 115, 122, 144, 119, 106, 111, 117, 120, 115, 138, 108, 126, 114, 108, 100, 104, 124, 113, 108, 117, 119, 97, 114, 113, 104, 111, 128, 94, 106, 119, 141, 129, 122, 117, 100, 104, 114, 106, 134, 108, 116, 123, 100, 121, 107, 116, 122, 105, 115, 99, 112, 112, 114, 117, 113, 104, 98, 106, 125, 119, 114, 111, 119, 104, 121, 123, 83, 102, 137, 103, 113, 137, 116, 103, 130, 122, 109, 116, 124, 126, 117, 95, 99, 111, 97, 117, 120, 128, 107, 133, 123, 116, 113, 119, 119, 119, 117, 135, 95, 109, 108, 86, 119, 124, 103, 123, 102, 102, 116, 112, 119, 111, 103, 110, 114, 122, 117, 118, 111, 148, 115, 110, 113, 126, 96, 116, 106, 125, 108, 128, 108, 105, 122, 112, 120, 123, 113, 113, 125, 109, 110, 121, 136, 109, 97, 127, 120, 117, 121, 124, 105, 115, 110, 117, 113, 116, 107, 123, 104, 112, 100, 136, 100, 102, 122, 124, 104, 101, 106, 135, 108, 114, 110, 121, 117, 102, 118, 124, 132, 121, 118, 114, 119, 120, 103, 123, 128, 114, 106, 150, 126, 120, 119, 122, 131, 127, 120, 122, 118, 129, 128, 106, 106, 107, 115, 108, 115, 116, 125, 107, 125, 107, 138, 123, 122, 120, 105, 114, 114, 113, 108, 116, 126, 117, 104, 100, 108, 102, 119, 120, 112, 111, 110, 103, 132, 119, 140, 94, 119, 121, 114, 108, 116, 118, 106, 120, 121, 111, 118, 98, 122, 121, 98, 108, 110, 118, 116, 112, 116, 85, 114, 96, 103, 126, 94, 115, 104, 113, 114, 125, 130, 111, 125, 114, 124, 111, 109, 108, 121, 114, 109, 103, 118, 121, 119, 132, 115, 131, 123, 101, 128, 119, 124, 129, 111, 117, 112, 122, 116, 115, 105, 126, 111, 113, 123, 121, 121, 106, 99, 121, 119, 103, 127, 105, 121, 133, 117, 96, 113, 129, 121, 121, 112, 109, 119, 124, 133, 122, 112, 109, 143, 126, 119, 110, 128, 136, 112, 114, 119, 124, 128, 113, 101, 96, 115, 121, 124, 109, 117, 92, 113, 125, 104, 121, 122, 109, 120, 115, 121, 125, 112, 98, 109, 115, 124, 106, 102, 118, 117, 118, 134, 117, 131, 95, 116, 134, 118, 109, 118, 124, 117, 123, 133, 98, 118, 117, 123, 126, 126, 119, 131, 109, 142, 119, 125, 108, 91, 116, 120, 114, 114, 117, 116, 110, 119, 123, 105, 113, 111, 90, 119, 113, 106, 121, 120, 118, 116, 107, 109, 113, 110, 95, 126, 102, 122, 122, 114, 133, 121, 141, 121, 99, 124, 115, 110, 115, 117, 115, 115, 113, 123, 103, 122, 133, 114, 114, 113, 107, 129, 120, 119, 125, 105, 120, 114, 132, 112, 106, 109, 119, 121, 111, 134, 116, 112, 111, 106, 117, 137, 114, 109, 114, 119, 114, 106, 119, 119, 113, 122, 126, 116, 124, 119, 111, 98, 111, 121, 112, 111, 130, 117, 119, 109, 112, 123, 105, 107, 96, 114, 105, 109, 113, 129, 111, 116, 126, 127, 116, 111, 117, 125, 113, 107, 117, 119, 118, 119, 121, 119, 100, 129, 107, 123, 101, 116, 121, 120, 124, 111, 126, 114, 147, 99, 128, 110, 120, 115, 120, 109, 116, 115, 112, 112, 93, 103, 105, 124, 130, 109, 123, 119, 88, 114, 119, 130, 139, 115, 123, 105, 115, 87, 121, 118, 113, 110, 124, 129, 114, 102, 106, 120, 117, 98, 114, 115, 120, 117, 113, 115, 120, 115, 141, 133, 90, 121, 113, 105, 107, 106, 107, 103, 118, 117, 103, 126, 118, 123, 124, 103, 109, 131, 109, 117, 106, 100, 120, 115, 109, 130, 111, 107, 116, 111, 115, 123, 116, 128, 122, 110, 124, 125, 107, 109, 104, 124, 106, 133, 120, 112, 93, 103, 98, 108, 103, 124, 108, 133, 106, 108, 114, 133, 102, 98, 119, 105, 137, 117, 130, 103, 121, 115, 113, 125, 114, 109, 103, 110, 114, 119, 116, 113, 89, 115, 145, 112, 106, 111, 116, 118, 115, 104, 128, 110, 110, 126, 108, 109, 123, 121, 116, 117, 116, 118, 122, 121, 120, 126, 114, 128, 115, 105, 114, 124, 119, 124, 118, 117, 119, 113, 118, 116, 107, 111, 117, 116, 118, 114, 111, 116, 115, 119, 113, 118, 115, 118, 114, 115, 111, 117, 115, 121, 118, 113, 112, 116, 111, 115, 115, 120, 118, 125, 115, 114, 114, 112, 117, 120, 124, 114, 114, 116, 116, 123, 119, 109, 127, 122, 120, 116, 109, 116, 113, 117, 107, 113, 121, 113, 112, 120, 116, 118, 115, 111, 115, 114, 120, 126, 119, 118, 119, 113, 104, 118, 119, 116, 115, 109, 117, 107, 115, 111, 116, 114, 119, 112, 110, 115, 115, 119, 118, 113, 112, 116, 119, 118, 117, 115, 118, 115, 118, 119, 118, 120, 109, 115, 116, 116, 116, 116, 105, 116, 107, 111, 119, 116, 117, 115, 116, 125, 111, 114, 117, 110, 111, 115, 114, 121, 111, 111, 116, 118, 123, 122, 117, 122, 117, 99, 114, 111, 119, 121, 109, 106, 117, 114, 115, 116, 119, 107, 117, 112, 118, 116, 120, 120, 119, 115, 112, 121, 119, 101, 126, 120, 108, 114, 117, 116, 118, 114, 109, 114, 110, 116, 111, 122, 109, 110, 117, 117, 110, 118, 124, 123, 112, 107, 117, 111, 113, 120, 123, 117, 122, 114, 116, 129, 123, 117, 122, 120, 113, 118, 121, 119, 112, 112, 112, 121, 118, 120, 118, 117, 115, 118, 116, 118, 114, 115, 116, 111, 115, 111, 126, 114, 121, 118, 112, 122, 114, 117, 111, 115, 114, 113, 114, 115, 115, 120, 111, 116, 117, 114, 114, 121, 114, 116, 115, 124, 122, 119, 116, 116, 112, 118, 110, 113, 111, 118, 114, 118, 118, 111, 111, 117, 120, 116, 121, 110, 111, 118, 115, 120, 118, 118, 123, 115, 119, 115, 113, 118, 112, 116, 118, 120, 120, 118, 107, 120, 122, 114, 117, 114, 117, 115, 110, 116, 114, 121, 118, 115, 117, 116, 109, 119, 111, 112, 112, 121, 118, 118, 120, 111, 120, 118, 112, 114, 116, 119, 118, 114, 112, 118, 119, 112, 117, 121, 120, 115, 123, 107, 112, 120, 122, 118, 114, 113, 109, 117, 116, 112, 118, 119, 119, 115, 117, 118, 112, 119, 117, 121, 120, 116, 110, 115, 121, 122, 109, 114, 119, 115, 118, 98, 116, 118, 117, 112, 119, 110, 116, 117, 115, 114, 115, 115, 116, 115, 108, 118, 116, 115, 118, 116, 111, 119, 116, 118, 117, 120, 121, 120, 121, 116, 124, 118, 107, 127, 129, 114, 116, 123, 115, 113, 112, 116, 115, 116, 121, 118, 106, 115, 126, 118, 120, 120, 118, 115, 121, 122, 115, 118, 112, 117, 114, 121, 121, 115, 120, 121, 110, 111, 122, 108, 117, 109, 115, 118, 118, 112, 114, 123, 115, 125, 119, 112, 118, 136, 113, 118, 107, 120, 120, 124, 115, 121, 120, 113, 117, 116, 118, 120, 115, 117, 113, 118, 113, 117, 115, 119, 119, 127, 115, 115, 122, 115, 114, 113, 115, 114, 112, 113, 121, 110, 117, 121, 113, 118, 119, 120, 110, 90, 114, 126, 119, 116, 112, 109, 103, 108, 130, 117, 132, 107, 108, 124, 121, 128, 114, 114, 83, 114, 122, 120, 115, 117, 121, 115, 80, 120, 122, 125, 115, 116, 116, 108, 110, 127, 95, 125, 112, 128, 112, 119, 127, 116, 122, 145, 124, 120, 136, 113, 98, 107, 114, 109, 113, 95, 129, 124, 120, 117, 112, 124, 118, 132, 120, 113, 117, 134, 116, 112, 123, 109, 121, 115, 90, 133, 119, 118, 114, 114, 120, 109, 137, 108, 107, 120, 113, 116, 109, 117, 129, 103, 111, 131, 128, 94, 116, 112, 114, 152, 106, 128, 139, 114, 100, 121, 146, 116, 118, 117, 119, 113, 112, 107, 117, 132, 108, 111, 126, 126, 118, 112, 125, 115, 114, 114, 113, 124, 113, 116, 120, 127, 124, 124, 120, 121, 115, 107, 118, 110, 114, 124, 117, 123, 113, 102, 114, 125, 117, 112, 121, 121, 115, 108, 113, 116, 104, 121, 109, 104, 120, 122, 110, 119, 109, 112, 114, 128, 143, 112, 131, 119, 119, 107, 133, 120, 112, 110, 107, 111, 138, 125, 102, 110, 123, 121, 104, 126, 111, 118, 89, 110, 115, 135, 124, 117, 117, 114, 116, 135, 118, 98, 110, 109, 109, 106, 115, 104, 110, 112, 124, 122, 120, 128, 109, 104, 117, 114, 115, 109, 130, 116, 98, 114, 110, 118, 124, 118, 125, 115, 112, 100, 109, 118, 73, 119, 125, 122, 113, 115, 102, 134, 96, 122, 108, 110, 132, 122, 120, 86, 125, 113, 119, 113, 108, 130, 101, 126, 116, 142, 125, 119, 113, 124, 120, 127, 111, 138, 114, 114, 110, 106, 123, 112, 123, 118, 115, 118, 115, 127, 116, 117, 122, 114, 116, 109, 109, 114, 135, 114, 115, 142, 114, 120, 99, 102, 115, 122, 115, 108, 113, 128, 110, 126, 115, 111, 116, 85, 113, 104, 118, 129, 116, 107, 130, 109, 115, 116, 117, 111, 124, 106, 121, 106, 110, 129, 100, 125, 102, 87, 132, 116, 101, 136, 118, 96, 126, 122, 89, 122, 116, 127, 112, 123, 111, 77, 107, 121, 120, 114, 120, 119, 120, 108, 114, 117, 111, 113, 112, 110, 135, 111, 93, 117, 118, 117, 128, 113, 114, 109, 119, 114, 105, 112, 100, 119, 119, 106, 108, 108, 112, 117, 129, 121, 127, 103, 125, 110, 132, 106, 116, 114, 155, 114, 118, 110, 122, 105, 111, 106, 106, 107, 124, 115, 111, 107, 117, 121, 122, 109, 126, 102, 118, 108, 126, 125, 109, 115, 123, 83, 123, 105, 115, 102, 113, 130, 132, 99, 116, 117, 126, 124, 109, 111, 111, 126, 117, 128, 103, 113, 112, 118, 126, 105, 109, 118, 121, 112, 118, 117, 103, 117, 116, 114, 118, 129, 111, 117, 104, 119, 130, 117, 97, 113, 123, 128, 113, 114, 113, 114, 116, 115, 128, 109, 130, 114, 114, 104, 94, 124, 119, 123, 123, 119, 126, 109, 113, 117, 119, 108, 117, 119, 115, 130, 107, 114, 110, 119, 122, 120, 131, 113, 108, 142, 111, 113, 121, 116, 114, 124, 118, 106, 95, 122, 118, 107, 124, 119, 111, 114, 120, 130, 122, 100, 100, 86, 94, 109, 109, 98, 126, 112, 114, 130, 119, 116, 119, 122, 105, 105, 154, 118, 110, 102, 127, 119, 129, 113, 108, 124, 115, 107, 123, 126, 122, 128, 127, 124, 105, 130, 117, 132, 113, 110, 123, 122, 94, 126, 115, 105, 86, 104, 100, 84, 106, 122, 117, 107, 115, 132, 106, 97, 113, 92, 75, 117, 116, 115, 108, 96, 107, 127, 99, 117, 112, 122, 110, 121, 127, 103, 121, 103, 110, 120, 100, 98, 101, 109, 140, 118, 134, 111, 113, 115, 120, 112, 117, 129, 126, 114, 91, 103, 115, 153, 103, 118, 116, 112, 130, 109, 127, 115, 110, 120, 132, 118, 132, 98, 103, 128, 142, 115, 116, 111, 100, 113, 142, 108, 107, 111, 105, 110, 111, 120, 117, 129, 120, 108, 124, 130, 99, 131, 107, 116, 109, 115, 131, 124, 106, 123, 94, 113, 114, 126, 118, 102, 114, 135, 96, 119, 107, 104, 111, 88, 114, 111, 113, 131, 112, 119, 121, 104, 119, 107, 111, 109, 116, 117, 130, 91, 122, 125, 119, 117, 100, 125, 108, 125, 102, 98, 119, 110, 90, 116, 119, 116, 106, 130, 106, 137, 110, 112, 111, 110, 135, 74, 109, 109, 124, 111, 100, 114, 125, 120, 128, 103, 110, 115, 120, 145, 103, 102, 109, 112, 61, 103, 111, 112, 112, 116, 125, 109, 117, 118, 116, 114, 143, 109, 111, 118, 107, 122, 126, 117, 101, 115, 113, 121, 115, 105, 112, 108, 108, 130, 110, 121, 119, 126, 125, 103, 105, 73, 104, 99, 123, 115, 103, 122, 119, 108, 156, 116, 119, 109, 114, 127, 111, 110, 122, 112, 125, 119, 110, 121, 130, 108, 118, 125, 127, 110, 112, 131, 109, 100, 115, 123, 102, 120, 120, 119, 92, 125, 119, 112, 106, 126, 119, 123, 116, 136, 118, 109, 122, 114, 125, 121, 109, 111, 116, 105, 125, 116, 99, 115, 119, 94, 111, 102, 109, 122, 125, 115, 117, 131, 108, 119, 120, 115, 114, 109, 116, 127, 117, 109, 108, 108, 113, 116, 108, 102, 76, 134, 106, 110, 112, 137, 118, 92, 136, 105, 98, 115, 120, 120, 123, 131, 109, 114, 103, 101, 121, 116, 94, 102, 106, 120, 129, 125, 123, 114, 120, 114, 144, 142, 116, 98, 109, 118, 111, 119, 102, 111, 107, 131, 119, 117, 111, 102, 121, 125, 126, 109, 105, 111, 119, 114, 148, 123, 102, 112, 103, 121, 102, 106, 117, 110, 107, 120, 115, 114, 121, 110, 111, 114, 118, 127, 148, 130, 115, 112, 87, 102, 106, 125, 126, 137, 119, 119, 107, 127, 111, 106, 123, 121, 105, 87, 104, 101, 124, 115, 108, 102, 103, 109, 111, 139, 137, 121, 108, 90, 128, 125, 118, 100, 101, 114, 119, 108, 127, 108, 121, 121, 122, 109, 126, 130, 107, 112, 127, 134, 126, 114, 123, 114, 122, 125, 115, 109, 107, 98, 124, 107, 115, 115, 121, 102, 133, 119, 117, 113, 91, 111, 100, 114, 119, 133, 120, 106, 105, 111, 112, 107, 108, 113, 104, 128, 117, 125, 126, 117, 115, 131, 100, 106, 129, 117, 89, 117, 117, 106, 107, 138, 103, 96, 121, 125, 105, 110, 110, 103, 114, 108, 107, 145, 117, 131, 117, 112, 109, 98, 116, 118, 128, 117, 107, 122, 100, 103, 109, 109, 120, 119, 111, 128, 121, 117, 117, 111, 124, 111, 102, 109, 113, 129, 111, 98, 101, 111, 114, 118, 123, 108, 126, 119, 133, 115, 114, 115, 118, 118, 114, 98, 123, 134, 126, 121, 115, 121, 110, 117, 125, 113, 133, 111, 106, 132, 124, 108, 121, 106, 114, 112, 116, 119, 109, 113, 117, 111, 111, 110, 118, 110, 125, 118, 121, 118, 118, 113, 123, 122, 118, 114, 115, 124, 122, 111, 117, 107, 121, 118, 113, 110, 131, 100, 110, 108, 104, 123, 123, 123, 119, 107, 125, 125, 124, 123, 129, 101, 115, 118, 126, 131, 120, 120, 130, 119, 99, 122, 105, 114, 100, 110, 123, 120, 109, 97, 115, 117, 113, 113, 131, 116, 114, 101, 119, 113, 108, 101, 107, 117, 129, 118, 113, 122, 135, 118, 123, 127, 120, 119, 122, 107, 116, 108, 130, 111, 124, 121, 118, 118, 117, 111, 122, 106, 117, 119, 114, 121, 105, 114, 105, 118, 110, 107, 112, 121, 114, 116, 116, 113, 120, 112, 118, 132, 131, 123, 128, 119, 107, 119, 114, 124, 122, 113, 125, 117, 110, 122, 125, 112, 117, 118, 101, 116, 126, 123, 125, 105, 121, 116, 89, 124, 104, 126, 121, 119, 114, 120, 120, 125, 117, 124, 120, 109, 111, 126, 118, 101, 112, 125, 105, 118, 120, 122, 121, 115, 121, 112, 123, 116, 98, 122, 120, 111, 104, 109, 116, 120, 111, 112, 124, 115, 105, 125, 140, 113, 116, 110, 101, 129, 118, 113, 137, 108, 123, 126, 115, 117, 111, 123, 119, 123, 112, 103, 107, 129, 116, 108, 117, 106, 122, 117, 101, 117, 116, 116, 111, 122, 128, 121, 117, 113, 104, 118, 130, 127, 119, 85, 107, 120, 130, 103, 115, 124, 138, 120, 124, 124, 123, 104, 130, 115, 119, 121, 116, 133, 112, 110, 124, 120, 113, 139, 111, 116, 117, 134, 124, 117, 130, 116, 105, 112, 112, 120, 115, 123, 135, 115, 102, 103, 125, 115, 116, 103, 106, 119, 121, 122, 107, 114, 109, 114, 114, 110, 123, 117, 115, 96, 101, 108, 112, 123, 113, 113, 117, 111, 113, 128, 126, 119, 127, 114, 98, 125, 113, 128, 109, 115, 123, 117, 118, 130, 113, 115, 111, 110, 98, 117, 106, 104, 99, 92, 118, 115, 120, 127, 110, 102, 124, 116, 121, 109, 106, 115, 118, 119, 125, 112, 109, 115, 118, 106, 118, 106, 120, 133, 115, 117, 130, 114, 121, 98, 120, 107, 129, 122, 109, 124, 118, 121, 132, 115, 113, 111, 119, 116, 92, 113, 129, 106, 106, 111, 115, 123, 106, 108, 111, 113, 125, 128, 117, 131, 117, 132, 117, 108, 109, 118, 111, 117, 89, 108, 98, 110, 110, 105, 133, 102, 105, 111, 99, 137, 113, 112, 102, 104, 117, 119, 108, 134, 120, 120, 116, 116, 110, 107, 107, 111, 123, 113, 106, 110, 107, 101, 125, 122, 120, 117, 113, 124, 133, 116, 110, 115, 103, 116, 108, 113, 130, 110, 106, 115, 117, 119, 109, 107, 119, 116, 110, 120, 122, 116, 111, 111, 115, 117, 109, 125, 111, 116, 115, 108, 113, 119, 117, 134, 127, 109, 124, 111, 129, 98, 127, 113, 103, 108, 120, 125, 108, 102, 119, 123, 104, 109, 123, 122, 117, 101, 122, 121, 115, 116, 118, 109, 120, 119, 112, 120, 117, 119, 115, 105, 119, 119, 121, 126, 101, 105, 105, 110, 110, 122, 99, 112, 114, 121, 123, 128, 114, 122, 130, 113, 123, 124, 106, 100, 116, 108, 117, 111, 113, 129, 113, 107, 110, 119, 106, 126, 122, 124, 101, 118, 126, 118, 119, 127, 107, 118, 117, 120, 111, 103, 112, 109, 129, 124, 112, 118, 124, 121, 108, 117, 116, 130, 136, 116, 111, 115, 117, 119, 120, 110, 120, 113, 98, 106, 126, 107, 115, 103, 102, 109, 124, 116, 117, 115, 96, 119, 111, 133, 124, 108, 115, 107, 122, 113, 125, 111, 118, 107, 120, 123, 101, 120, 117, 110, 131, 123, 105, 114, 125, 106, 129, 107, 111, 120, 114, 115, 112, 113, 123, 101, 121, 113, 108, 128, 110, 110, 122, 100, 100, 130, 107, 129, 111, 108, 108, 128, 116, 116, 116, 119, 115, 116, 125, 111, 102, 111, 116, 106, 117, 113, 115, 120, 116, 116, 121, 124, 103, 109, 109, 125, 118, 121, 116, 111, 111, 102, 109, 108, 112, 113, 123, 116, 128, 105, 123, 116, 105, 110, 111, 104, 109, 99, 136, 120, 115, 119, 113, 121, 112, 102, 115, 116, 118, 102, 104, 97, 112, 114, 107, 124, 112, 116, 127, 110, 103, 114, 118, 126, 131, 95, 105, 120, 123, 116, 107, 120, 113, 120, 133, 121, 108, 111, 107, 111, 120, 97, 119, 118, 116, 106, 110, 122, 113, 119, 106, 110, 117, 112, 114, 110, 115, 106, 118, 117, 111, 117, 117, 118, 123, 106, 112, 110, 116, 116, 108, 112, 113, 113, 110, 120, 113, 122, 109, 121, 110, 112, 116, 115, 105, 107, 116, 109, 111, 115, 108, 109, 117, 109, 115, 117, 118, 119, 112, 115, 110, 106, 126, 124, 126, 122, 109, 118, 118, 132, 113, 105, 114, 106, 106, 118, 123, 118, 116, 115, 117, 112, 118, 128, 121, 129, 113, 118, 108, 127, 121, 117, 111, 115, 122, 127, 110, 127, 116, 111, 109, 97, 107, 114, 113, 108, 90, 110, 115, 122, 112, 121, 111, 96, 117, 104, 122, 113, 120, 109, 121, 98, 118, 120, 105, 118, 107, 104, 114, 109, 108, 127, 118, 108, 105, 114, 104, 118, 97, 109, 123, 110, 117, 110, 108, 107, 114, 105, 124, 111, 112, 114, 128, 92, 111, 123, 118, 113, 109, 118, 118, 120, 111, 124, 107, 116, 115, 98, 110, 122, 122, 112, 124, 118, 118, 111, 110, 102, 116, 109, 99, 101, 113, 123, 119, 120, 113, 138, 115, 131, 107, 120, 118, 130, 102, 107, 123, 116, 113, 128, 110, 102, 120, 103, 132, 130, 96, 111, 113, 112, 110, 122, 124, 107, 112, 114, 126, 114, 122, 122, 122, 102, 113, 114, 117, 93, 118, 113, 115, 118, 124, 114, 115, 115, 121, 117, 130, 120, 117, 116, 114, 101, 106, 115, 122, 102, 114, 118, 117, 112, 120, 111, 124, 116, 101, 112, 124, 120, 129, 106, 117, 126, 115, 120, 118, 113, 127, 112, 117, 121, 114, 115, 117, 109, 118, 126, 115, 116, 112, 108, 126, 98, 113, 122, 119, 111, 113, 114, 121, 127, 121, 102, 115, 98, 105, 116, 114, 117, 115, 113, 125, 128, 109, 120, 118, 124, 131, 113, 124, 123, 109, 120, 116, 118, 116, 103, 124, 121, 104, 112, 122, 118, 115, 112, 105, 116, 109, 113, 125, 109, 111, 122, 113, 98, 109, 115, 123, 107, 112, 121, 134, 132, 121, 104, 106, 117, 108, 106, 117, 117, 111, 115, 114, 115, 96, 111, 115, 115, 114, 121, 98, 110, 138, 117, 126, 115, 113, 107, 105, 112, 127, 114, 115, 116, 115, 130, 82, 127, 127, 110, 122, 120, 114, 114, 115, 110, 113, 121, 119, 130, 121, 116, 117, 109, 99, 112, 107, 113, 134, 110, 109, 115, 104, 116, 121, 115, 113, 115, 110, 73, 119, 117, 104, 100, 111, 124, 114, 118, 125, 115, 113, 117, 108, 119, 117, 123, 102, 119, 117, 113, 112, 127, 124, 121, 110, 120, 91, 119, 101, 100, 118, 111, 134, 111, 124, 104, 103, 126, 117, 122, 122, 127, 113, 108, 124, 117, 115, 112, 103, 119, 142, 120, 126, 123, 126, 105, 114, 125, 112, 116, 121, 119, 106, 112, 108, 98, 121, 105, 109, 124, 121, 117, 112, 123, 105, 124, 129, 118, 123, 129, 118, 123, 110, 101, 127, 113, 118, 86, 120, 109, 125, 131, 122, 113, 116, 121, 134, 115, 114, 100, 113, 122, 109, 123, 137, 124, 120, 114, 114, 108, 116, 116, 111, 125, 119, 123, 116, 116, 104, 108, 121, 126, 113, 118, 111, 117, 123, 129, 113, 115, 120, 107, 105, 119, 113, 123, 114, 131, 122, 118, 107, 109, 110, 119, 117, 114, 118, 114, 118, 108, 103, 114, 123, 109, 116, 106, 121, 106, 100, 112, 120, 117, 114, 112, 116, 121, 119, 111, 112, 115, 122, 115, 113, 120, 115, 114, 113, 117, 118, 119, 113, 121, 113, 112, 120, 116, 96, 120, 124, 110, 137, 121, 109, 117, 105, 120, 121, 123, 120, 108, 117, 124, 108, 109, 129, 98, 126, 131, 120, 125, 128, 133, 115, 117, 120, 118, 113, 105, 108, 110, 108, 101, 114, 106, 113, 124, 113, 116, 101, 106, 109, 120, 120, 110, 112, 114, 123, 115, 143, 106, 115, 101, 129, 116, 115, 124, 122, 110, 113, 111, 111, 110, 131, 119, 111, 108, 132, 125, 114, 114, 108, 131, 125, 102, 115, 122, 125, 118, 98, 135, 127, 121, 116, 114, 121, 127, 122, 117, 118, 130, 110, 118, 112, 130, 112, 115, 104, 118, 126, 114, 113, 121, 114, 126, 92, 114, 120, 120, 117, 109, 108, 102, 123, 112, 122, 120, 112, 125, 170, 138, 119, 106, 115, 115, 110, 123, 118, 121, 98, 119, 124, 117, 131, 131, 121, 105, 120, 112, 100, 116, 113, 115, 89, 112, 113, 114, 110, 113, 117, 131, 120, 117, 110, 117, 102, 121, 101, 114, 123, 120, 117, 119, 124, 121, 113, 103, 107, 114, 124, 108, 116, 109, 113, 106, 115, 121, 123, 108, 131, 122, 122, 102, 118, 125, 90, 92, 113, 116, 115, 118, 119, 112, 125, 122, 119, 104, 102, 118, 112, 113, 117, 124, 112, 112, 116, 102, 101, 116, 118, 108, 115, 121, 120, 116, 112, 117, 122, 125, 92, 118, 127, 114, 115, 132, 114, 118, 126, 108, 118, 89, 115, 124, 102, 130, 121, 116, 112, 125, 112, 126, 117, 120, 118, 120, 121, 131, 115, 113, 113, 120, 114, 111, 132, 123, 124, 121, 106, 114, 119, 131, 117, 113, 107, 124, 122, 106, 118, 138, 117, 116, 118, 112, 117, 112, 132, 109, 117, 116, 113, 113, 129, 128, 127, 125, 123, 117, 115, 121, 154, 109, 125, 104, 124, 118, 110, 110, 113, 112, 122, 126, 113, 111, 110, 124, 123, 104, 119, 121, 112, 115, 140, 97, 115, 117, 105, 118, 118, 113, 125, 119, 109, 115, 122, 105, 120, 120, 118, 124, 110, 113, 113, 123, 122, 120, 122, 121, 114, 107, 79, 109, 102, 107, 107, 111, 113, 115, 120, 107, 100, 117, 113, 128, 112, 112, 138, 114, 112, 118, 120, 117, 124, 118, 135, 100, 121, 114, 126, 116, 115, 114, 101, 114, 116, 110, 103, 130, 114, 121, 114, 107, 121, 139, 118, 115, 98, 105, 114, 123, 115, 98, 125, 118, 114, 102, 119, 118, 101, 123, 99, 112, 110, 122, 124, 106, 123, 115, 112, 111, 113, 122, 122, 109, 123, 128, 111, 130, 107, 113, 137, 120, 110, 109, 123, 116, 108, 121, 123, 113, 118, 104, 123, 127, 110, 115, 122, 123, 133, 122, 118, 119, 98, 111, 107, 120, 103, 118, 109, 118, 102, 109, 90, 119, 131, 110, 115, 121, 129, 97, 121, 116, 113, 120, 134, 99, 117, 125, 121, 116, 132, 112, 116, 117, 115, 114, 120, 135, 131, 124, 122, 114, 111, 112, 113, 135, 126, 101, 118, 95, 119, 111, 120, 106, 107, 98, 115, 116, 118, 114, 118, 131, 114, 119, 117, 105, 101, 104, 114, 151, 115, 105, 131, 112, 95, 113, 123, 103, 115, 113, 111, 105, 129, 114, 104, 97, 122, 100, 116, 112, 119, 123, 127, 122, 107, 99, 106, 114, 116, 111, 113, 102, 112, 114, 115, 111, 111, 110, 102, 124, 107, 124, 102, 116, 109, 124, 115, 108, 132, 120, 120, 116, 110, 123, 124, 106, 107, 115, 120, 113, 118, 123, 122, 110, 124, 103, 105, 109, 108, 107, 123, 116, 130, 125, 111, 103, 104, 102, 120, 126, 128, 120, 116, 112, 97, 125, 126, 117, 111, 122, 123, 107, 129, 108, 120, 100, 114, 119, 118, 115, 117, 120, 121, 121, 112, 119, 124, 123, 123, 115, 117, 110, 113, 110, 116, 119, 116, 120, 118, 108, 112, 131, 133, 113, 117, 113, 112, 122, 115, 110, 122, 118, 122, 112, 122, 123, 109, 121, 116, 118, 114, 113, 114, 115, 110, 124, 119, 111, 114, 118, 115, 121, 117, 112, 120, 122, 112, 116, 127, 118, 118, 114, 125, 118, 114, 115, 111, 116, 114, 112, 116, 113, 120, 126, 117, 118, 111, 119, 120, 106, 119, 119, 115, 122, 125, 109, 114, 105, 113, 124, 104, 118, 117, 123, 145, 122, 119, 113, 113, 110, 118, 119, 116, 119, 102, 118, 112, 109, 119, 161, 104, 116, 129, 116, 129, 125, 122, 119, 133, 115, 125, 115, 125, 99, 115, 110, 117, 118, 119, 110, 106, 116, 117, 113, 125, 143, 116, 113, 121, 120, 124, 118, 124, 114, 113, 137, 113, 119, 123, 118, 115, 113, 117, 104, 115, 112, 123, 133, 119, 117, 114, 114, 111, 114, 114, 106, 118, 115, 108, 124, 116, 118, 113, 119, 108, 109, 105, 106, 122, 108, 110, 107, 114, 122, 110, 110, 119, 119, 120, 113, 105, 113, 111, 122, 116, 112, 112, 132, 117, 111, 106, 110, 110, 131, 126, 114, 112, 117, 110, 111, 122, 114, 110, 120, 122, 106, 104, 116, 116, 121, 114, 129, 115, 120, 108, 120, 109, 108, 121, 137, 88, 107, 108, 107, 109, 115, 109, 111, 122, 122, 115, 110, 108, 116, 117, 110, 117, 123, 107, 111, 118, 126, 96, 111, 110, 117, 120, 108, 119, 116, 105, 114, 124, 109, 124, 118, 114, 133, 106, 125, 117, 113, 116, 112, 127, 110, 146, 119, 114, 111, 111, 108, 112, 115, 113, 120, 129, 103, 111, 111, 129, 119, 113, 120, 114, 112, 106, 115, 113, 113, 112, 114, 123, 110, 113, 108, 127, 106, 112, 121, 117, 129, 123, 107, 123, 112, 112, 108, 119, 108, 118, 117, 115, 110, 119, 118, 114, 106, 122, 113, 118, 101, 102, 121, 134, 111, 118, 118, 117, 126, 111, 107, 116, 124, 118, 113, 117, 114, 103, 128, 116, 116, 107, 108, 114, 113, 105, 120, 114, 121, 118, 122, 125, 111, 116, 118, 124, 109, 112, 113, 124, 127, 118, 113, 118, 115, 127, 114, 94, 122, 108, 103, 117, 119, 115, 93, 114, 116, 111, 136, 116, 117, 116, 119, 115, 118, 113, 111, 109, 121, 103, 112, 118, 114, 109, 119, 111, 108, 96, 122, 106, 105, 112, 108, 121, 122, 109, 119, 112, 118, 112, 116, 120, 111, 110, 120, 117, 109, 133, 123, 115, 112, 144, 123, 112, 115, 118, 114, 109, 118, 117, 112, 109, 122, 116, 116, 113, 110, 115, 126, 105, 111, 115, 119, 115, 115, 125, 96, 103, 117, 109, 114, 123, 111, 115, 118, 137, 121, 119, 118, 108, 116, 116, 118, 114, 115, 109, 113, 102, 105, 117, 116, 119, 110, 113, 116, 116, 117, 114, 101, 120, 119, 111, 112, 124, 106, 113, 115, 113, 118, 118, 118, 115, 120, 120, 110, 107, 120, 107, 114, 124, 108, 113, 116, 109, 122, 115, 118, 118, 114, 113, 121, 122, 117, 106, 116, 119, 121, 127, 123, 110, 114, 117, 120, 119, 112, 115, 103, 116, 115, 105, 123, 113, 115, 122, 116, 86, 108, 138, 107, 121, 105, 110, 106, 125, 111, 111, 112, 107, 122, 114, 113, 118, 122, 111, 112, 131, 113, 112, 116, 117, 117, 123, 125, 111, 122, 106, 127, 112, 116, 115, 108, 124, 133, 117, 112, 119, 110, 122, 106, 113, 120, 107, 114, 130, 113, 103, 115, 120, 107, 116, 122, 95, 105, 105, 131, 112, 109, 102, 122, 120, 115, 124, 115, 119, 107, 109, 113, 111, 109, 121, 127, 112, 118, 114, 120, 122, 111, 108, 114, 103, 122, 112, 116, 119, 123, 103, 139, 125, 105, 102, 130, 122, 104, 102, 117, 123, 114, 112, 119, 128, 115, 108, 116, 111, 117, 108, 115, 119, 120, 103, 110, 126, 121, 106, 107, 116, 124, 115, 99, 104, 115, 117, 117, 109, 100, 112, 110, 108, 122, 119, 118, 100, 105, 112, 120, 132, 116, 125, 113, 108, 121, 126, 122, 115, 121, 110, 128, 111, 121, 103, 117, 102, 97, 118, 111, 119, 125, 114, 110, 124, 98, 138, 119, 113, 108, 124, 122, 112, 114, 115, 113, 108, 109, 121, 111, 115, 114, 127, 107, 136, 111, 124, 123, 113, 124, 100, 122, 108, 128, 123, 107, 100, 113, 127, 120, 116, 125, 116, 129, 123, 110, 114, 103, 124, 111, 106, 120, 123, 147, 116, 108, 113, 110, 108, 124, 111, 117, 118, 110, 121, 119, 112, 117, 107, 117, 110, 123, 104, 111, 134, 130, 123, 118, 122, 130, 118, 114, 108, 129, 118, 120, 121, 111, 109, 113, 118, 121, 104, 117, 117, 125, 118, 115, 116, 124, 122, 99, 110, 115, 122, 116, 103, 104, 116, 117, 107, 133, 119, 111, 119, 118, 109, 133, 101, 118, 72, 119, 110, 113, 126, 112, 112, 110, 109, 107, 100, 111, 132, 115, 110, 124, 126, 111, 122, 142, 97, 110, 113, 121, 120, 116, 111, 113, 117, 101, 110, 129, 112, 109, 123, 109, 120, 134, 122, 108, 110, 110, 100, 114, 120, 107, 112, 107, 100, 112, 116, 117, 119, 130, 127, 119, 118, 119, 109, 124, 126, 114, 88, 109, 114, 124, 104, 121, 118, 99, 120, 123, 112, 112, 115, 122, 104, 120, 109, 113, 125, 102, 116, 126, 120, 116, 105, 118, 115, 121, 108, 130, 120, 124, 102, 116, 123, 118, 115, 110, 110, 112, 112, 94, 113, 130, 115, 123, 110, 108, 102, 110, 127, 129, 125, 118, 119, 147, 114, 107, 113, 127, 125, 110, 118, 120, 115, 109, 112, 121, 129, 118, 119, 112, 121, 130, 128, 122, 123, 129, 108, 92, 146, 108, 127, 129, 103, 137, 106, 107, 102, 121, 118, 111, 130, 115, 120, 119, 117, 110, 99, 121, 114, 131, 120, 106, 109, 115, 114, 126, 104, 113, 113, 112, 117, 124, 103, 106, 119, 97, 115, 110, 111, 100, 122, 110, 106, 113, 127, 115, 120, 118, 137, 120, 110, 123, 113, 114, 109, 116, 117, 120, 123, 116, 105, 113, 119, 122, 108, 123, 121, 110, 114, 110, 123, 124, 112, 115, 121, 118, 119, 111, 114, 112, 112, 117, 111, 122, 120, 110, 106, 112, 100, 119, 119, 115, 111, 125, 113, 106, 115, 115, 126, 112, 112, 119, 129, 95, 116, 129, 108, 115, 130, 111, 114, 118, 100, 115, 114, 110, 115, 122, 124, 120, 118, 114, 112, 113, 125, 120, 116, 112, 113, 118, 115, 111, 128, 109, 126, 108, 117, 117, 115, 114, 95, 116, 120, 120, 117, 109, 115, 115, 118, 109, 114, 116, 119, 120, 120, 118, 115, 114, 112, 115, 121, 118, 118, 111, 108, 141, 121, 123, 110, 116, 123, 120, 122, 118, 119, 121, 123, 117, 108, 122, 122, 106, 116, 107, 127, 110, 115, 123, 112, 114, 122, 118, 117, 115, 119, 110, 118, 112, 116, 126, 121, 117, 107, 120, 102, 115, 118, 111, 114, 122, 112, 122, 111, 117, 175, 116, 121, 113, 117, 118, 116, 111, 116, 118, 117, 115, 123, 151, 121, 123, 105, 115, 112, 108, 115, 113, 119, 117, 113, 122, 114, 118, 121, 121, 117, 120, 116, 115, 114, 120, 104, 110, 128, 105, 123, 122, 112, 115, 122, 113, 110, 119, 114, 114, 110, 115, 122, 124, 118, 120, 111, 123, 115, 122, 171, 121, 114, 123, 114, 118, 121, 118, 111, 121, 111, 116, 114, 114, 118, 119, 108, 117, 116, 121, 106, 114, 117, 118, 118, 124, 115, 95, 116, 119, 119, 123, 114, 125, 116, 114, 108, 113, 120, 124, 118, 111, 116, 118, 119, 121, 114, 117, 93, 111, 113, 128, 122, 128, 112, 112, 114, 110, 116, 127, 121, 123, 116, 115, 131, 123, 111, 123, 118, 118, 109, 130, 117, 105, 112, 118, 125, 120, 117, 119, 125, 128, 114, 100, 119, 121, 118, 120, 117, 112, 104, 118, 109, 114, 85, 120, 117, 110, 110, 102, 105, 109, 106, 124, 110, 112, 119, 111, 114, 121, 114, 112, 115, 118, 94, 118, 105, 124, 116, 122, 117, 120, 111, 110, 117, 123, 121, 113, 113, 116, 105, 122, 115, 125, 118, 109, 110, 115, 125, 120, 109, 113, 116, 119, 114, 104, 116, 107, 115, 116, 109, 111, 112, 112, 100, 104, 117, 110, 118, 122, 112, 115, 132, 114, 111, 106, 120, 116, 114, 113, 109, 121, 116, 118, 114, 108, 112, 115, 107, 112, 118, 129, 125, 106, 112, 103, 112, 120, 126, 105, 122, 117, 117, 119, 117, 125, 121, 121, 113, 100, 113, 114, 113, 109, 122, 111, 117, 123, 109, 121, 121, 119, 116, 111, 116, 114, 114, 120, 112, 118, 111, 114, 121, 117, 115, 113, 123, 116, 119, 115, 123, 115, 115, 123, 112, 127, 143, 127, 124, 118, 103, 113, 104, 109, 114, 119, 119, 110, 120, 112, 112, 120, 122, 110, 112, 119, 111, 113, 119, 117, 120, 117, 122, 117, 118, 119, 120, 116, 114, 114, 82, 109, 114, 112, 113, 106, 109, 115, 113, 123, 113, 111, 118, 121, 128, 118, 104, 119, 116, 129, 106, 109, 120, 123, 123, 115, 106, 103, 110, 115, 107, 112, 112, 122, 113, 109, 113, 115, 122, 112, 119, 99, 121, 116, 114, 129, 119, 108, 99, 116, 124, 122, 114, 110, 116, 109, 113, 104, 103, 119, 128, 107, 127, 116, 121, 107, 124, 110, 111, 114, 117, 106, 101, 124, 113, 120, 118, 109, 109, 129, 117, 124, 110, 118, 112, 111, 118, 113, 106, 126, 126, 110, 125, 120, 120, 106, 107, 118, 126, 110, 116, 101, 112, 111, 120, 112, 121, 107, 121, 101, 114, 113, 124, 107, 118, 118, 125, 108, 114, 135, 119, 104, 123, 111, 114, 98, 122, 121, 108, 117, 121, 106, 117, 114, 119, 115, 118, 121, 108, 117, 118, 115, 110, 110, 117, 100, 126, 123, 123, 105, 109, 117, 125, 115, 105, 133, 122, 118, 116, 108, 115, 120, 108, 127, 112, 119, 126, 117, 123, 128, 119, 128, 108, 114, 110, 114, 144, 113, 128, 126, 123, 107, 116, 113, 131, 119, 122, 118, 115, 118, 115, 129, 124, 118, 116, 119, 116, 116, 120, 118, 111, 109, 106, 128, 97, 127, 114, 122, 117, 116, 107, 123, 115, 114, 129, 115, 123, 117, 117, 110, 128, 114, 115, 117, 123, 120, 115, 111, 121, 117, 126, 127, 108, 121, 118, 104, 121, 98, 124, 127, 111, 114, 114, 124, 116, 124, 131, 123, 113, 119, 120, 119, 118, 117, 121, 113, 114, 120, 114, 116, 118, 129, 127, 107, 89, 112, 113, 105, 107, 118, 120, 120, 113, 111, 121, 114, 130, 117, 102, 118, 123, 103, 112, 107, 116, 113, 113, 120, 114, 120, 118, 115, 121, 108, 120, 121, 119, 121, 110, 123, 117, 122, 113, 131, 113, 119, 123, 126, 106, 85, 109, 115, 117, 104, 118, 115, 120, 113, 118, 118, 117, 109, 114, 113, 124, 113, 105, 111, 118, 109, 120, 120, 104, 138, 119, 127, 118, 114, 128, 125, 115, 121, 114, 120, 119, 110, 110, 121, 114, 119, 116, 120, 114, 114, 103, 119, 117, 124, 111, 115, 108, 117, 117, 119, 116, 114, 116, 115, 121, 110, 120, 126, 150, 121, 118, 128, 124, 112, 130, 109, 110, 115, 111, 100, 112, 125, 102, 107, 124, 117, 123, 113, 116, 132, 109, 119, 123, 111, 115, 117, 125, 140, 112, 120, 112, 116, 115, 108, 118, 108, 107, 107, 119, 118, 119, 106, 120, 113, 124, 108, 109, 112, 121, 127, 112, 125, 110, 123, 131, 123, 118, 114, 113, 123, 126, 110, 120, 116, 121, 113, 118, 113, 115, 120, 127, 105, 112, 115, 121, 115, 119, 119, 107, 115, 108, 106, 116, 112, 118, 100, 122, 122, 119, 105, 119, 100, 123, 98, 118, 111, 106, 107, 108, 137, 115, 125, 132, 107, 111, 121, 129, 108, 111, 95, 123, 110, 112, 116, 114, 121, 108, 132, 120, 106, 119, 98, 115, 119, 108, 117, 111, 115, 118, 104, 122, 122, 107, 115, 120, 109, 116, 117, 114, 113, 122, 108, 80, 110, 134, 109, 118, 109, 108, 109, 123, 123, 116, 113, 112, 129, 118, 98, 93, 122, 114, 118, 128, 105, 111, 106, 131, 110, 137, 131, 124, 117, 108, 92, 119, 114, 122, 104, 131, 123, 108, 119, 122, 115, 127, 126, 110, 111, 116, 133, 116, 120, 124, 109, 86, 123, 113, 123, 121, 110, 91, 115, 101, 118, 130, 116, 104, 119, 120, 67, 124, 106, 117, 103, 158, 124, 111, 108, 121, 104, 121, 127, 129, 115, 100, 89, 126, 113, 118, 106, 109, 121, 142, 127, 107, 117, 109, 132, 115, 118, 136, 121, 107, 119, 98, 115, 169, 108, 107, 64, 72, 112, 126, 117, 108, 118, 118, 128, 124, 107, 120, 101, 105, 118, 112, 103, 96, 113, 140, 127, 120, 125, 109, 109, 120, 108, 116, 105, 117, 111, 109, 123, 130, 123, 122, 116, 113, 103, 96, 134, 115, 131, 115, 114, 116, 117, 135, 106, 130, 110, 97, 116, 112, 101, 111, 98, 99, 118, 120, 121, 109, 125, 117, 101, 132, 108, 124, 111, 110, 106, 100, 159, 123, 110, 119, 111, 105, 117, 105, 124, 110, 108, 124, 98, 113, 118, 120, 107, 108, 90, 101, 104, 111, 130, 111, 124, 110, 100, 93, 117, 113, 92, 117, 122, 122, 76, 123, 134, 121, 103, 108, 122, 112, 125, 101, 128, 129, 122, 107, 115, 109, 109, 103, 106, 122, 115, 124, 121, 120, 118, 90, 119, 119, 116, 116, 118, 131, 86, 111, 114, 119, 127, 100, 106, 84, 121, 119, 123, 117, 128, 141, 107, 120, 110, 107, 99, 144, 159, 120, 143, 107, 113, 121, 135, 120, 115, 118, 115, 142, 108, 100, 117, 102, 113, 109, 104, 122, 107, 125, 145, 120, 106, 121, 125, 122, 119, 119, 116, 124, 114, 122, 119, 115, 111, 101, 115, 128, 120, 117, 108, 106, 122, 123, 137, 118, 110, 152, 117, 121, 110, 107, 106, 131, 124, 119, 115, 115, 134, 116, 100, 115, 119, 121, 108, 84, 108, 113, 104, 117, 118, 102, 120, 133, 128, 123, 119, 132, 104, 104, 119, 134, 121, 121, 112, 104, 108, 97, 101, 113, 123, 117, 111, 120, 89, 139, 110, 119, 131, 115, 129, 114, 101, 172, 111, 123, 121, 109, 124, 102, 110, 121, 118, 94, 107, 115, 108, 96, 107, 114, 119, 133, 124, 114, 109, 117, 126, 101, 111, 116, 117, 125, 125, 107, 107, 111, 124, 96, 113, 118, 112, 130, 110, 114, 115, 114, 106, 121, 104, 127, 99, 82, 83, 112, 113, 120, 119, 107, 111, 120, 105, 125, 125, 117, 112, 109, 103, 125, 110, 128, 120, 95, 92, 124, 121, 121, 114, 111, 141, 103, 147, 117, 124, 113, 108, 115, 121, 102, 108, 128, 101, 119, 106, 121, 97, 120, 124, 112, 115, 108, 108, 126, 116, 73, 111, 118, 96, 79, 111, 110, 93, 103, 121, 103, 111, 128, 116, 112, 126, 119, 121, 103, 100, 136, 117, 118, 122, 101, 116, 132, 113, 110, 126, 110, 125, 119, 89, 111, 117, 122, 121, 105, 114, 115, 136, 109, 109, 110, 139, 132, 98, 97, 105, 117, 110, 124, 121, 116, 98, 108, 109, 127, 124, 107, 119, 120, 109, 121, 124, 110, 116, 117, 119, 108, 122, 120, 111, 116, 116, 120, 113, 123, 121, 112, 115, 118, 115, 117, 118, 119, 145, 115, 124, 117, 130, 117, 125, 116, 129, 116, 107, 116, 113, 121, 119, 115, 114, 118, 126, 119, 118, 120, 123, 120, 120, 122, 119, 115, 121, 115, 111, 121, 118, 118, 113, 126, 121, 126, 110, 115, 117, 113, 123, 121, 116, 119, 108, 113, 114, 118, 110, 114, 125, 119, 120, 113, 106, 116, 117, 114, 114, 118, 119, 122, 115, 118, 115, 116, 114, 122, 116, 125, 119, 107, 112, 115, 117, 114, 111, 120, 115, 125, 125, 128, 122, 123, 119, 112, 129, 118, 119, 111, 118, 116, 122, 117, 118, 125, 116, 111, 116, 110, 116, 125, 116, 113, 110, 111, 118, 119, 128, 112, 114, 117, 111, 120, 121, 115, 117, 115, 121, 111, 116, 111, 111, 111, 108, 117, 111, 117, 114, 115, 116, 120, 117, 117, 121, 118, 119, 133, 114, 121, 118, 115, 118, 117, 133, 113, 115, 111, 112, 119, 115, 120, 111, 123, 117, 112, 126, 112, 114, 111, 117, 111, 112, 114, 118, 125, 117, 111, 115, 111, 116, 111, 118, 112, 120, 111, 113, 118, 117, 117, 117, 111, 117, 133, 113, 120, 108, 118, 117, 109, 107, 106, 126, 122, 117, 122, 100, 110, 120, 119, 110, 119, 111, 111, 114, 116, 118, 112, 119, 118, 112, 123, 118, 111, 117, 119, 119, 117, 120, 121, 119, 126, 117, 112, 129, 118, 106, 118, 117, 117, 120, 109, 116, 144, 120, 119, 114, 120, 121, 123, 119, 119, 124, 124, 124, 117, 115, 123, 117, 121, 111, 106, 121, 118, 119, 118, 122, 109, 111, 117, 116, 107, 96, 114, 125, 112, 117, 108, 118, 111, 116, 119, 122, 118, 109, 113, 116, 122, 114, 107, 111, 111, 114, 128, 117, 122, 116, 116, 109, 116, 109, 121, 111, 123, 99, 114, 117, 115, 114, 121, 115, 115, 115, 120, 119, 126, 118, 121, 117, 126, 118, 117, 109, 118, 115, 116, 123, 118, 112, 135, 117, 118, 118, 123, 114, 112, 119, 120, 126, 118, 109, 121, 121, 115, 122, 119, 111, 119, 126, 117, 112, 117, 117, 119, 116, 121, 118, 120, 120, 124, 113, 110, 122, 126, 121, 123, 110, 120, 118, 117, 112, 114, 113, 117, 109, 123, 120, 121, 113, 113, 114, 119, 98, 123, 120, 119, 126, 122, 117, 124, 111, 114, 119, 112, 121, 115, 120, 108, 115, 112, 108, 116, 125, 106, 131, 114, 120, 116, 115, 111, 115, 111, 114, 113, 117, 120, 114, 113, 117, 118, 120, 110, 117, 122, 115, 115, 119, 124, 103, 108, 121, 115, 117, 112, 126, 114, 113, 123, 128, 118, 113, 110, 112, 122, 118, 120, 117, 117, 122, 120, 120, 120, 116, 117, 115, 125, 113, 118, 115, 118, 115, 113, 115, 116, 111, 110, 111, 109, 119, 117, 117, 116, 113, 118, 119, 121, 121, 126, 118, 119, 112, 121, 113, 106, 113, 111, 113, 116, 123, 119, 120, 120, 113, 106, 113, 132, 107, 110, 131, 115, 113, 101, 104, 107, 120, 107, 106, 121, 110, 112, 102, 114, 110, 117, 119, 121, 115, 112, 116, 112, 124, 94, 118, 124, 121, 122, 106, 115, 117, 123, 118, 110, 114, 111, 129, 121, 109, 113, 116, 113, 119, 115, 112, 110, 128, 120, 113, 121, 109, 142, 113, 110, 124, 123, 114, 120, 119, 119, 109, 138, 104, 101, 98, 115, 112, 116, 109, 132, 116, 123, 114, 112, 113, 116, 116, 121, 123, 132, 120, 113, 118, 116, 110, 121, 111, 102, 107, 119, 117, 121, 99, 119, 125, 136, 108, 115, 116, 116, 122, 137, 100, 118, 156, 99, 120, 118, 104, 120, 124, 140, 115, 134, 119, 118, 120, 114, 147, 124, 109, 118, 109, 117, 112, 98, 111, 107, 113, 120, 109, 123, 96, 118, 101, 111, 126, 122, 121, 125, 105, 111, 122, 134, 114, 105, 110, 107, 127, 110, 124, 120, 109, 116, 118, 124, 120, 122, 111, 146, 111, 109, 125, 98, 104, 111, 119, 110, 112, 148, 112, 118, 105, 118, 107, 107, 123, 136, 126, 109, 115, 110, 144, 115, 115, 118, 110, 108, 108, 108, 112, 138, 131, 115, 103, 119, 118, 90, 94, 125, 103, 113, 113, 110, 106, 113, 107, 122, 117, 121, 118, 106, 111, 116, 112, 127, 122, 118, 119, 108, 116, 115, 128, 116, 114, 103, 119, 117, 119, 112, 122, 107, 118, 128, 113, 114, 106, 121, 112, 117, 108, 115, 114, 120, 111, 122, 121, 113, 140, 69, 116, 121, 117, 99, 117, 113, 113, 117, 125, 114, 125, 109, 110, 124, 112, 123, 115, 116, 101, 120, 109, 131, 113, 99, 116, 113, 105, 122, 117, 105, 117, 119, 112, 140, 101, 112, 124, 117, 116, 106, 137, 108, 119, 115, 108, 123, 109, 107, 114, 121, 119, 117, 114, 115, 128, 101, 104, 110, 112, 114, 118, 114, 121, 115, 120, 118, 106, 125, 112, 119, 135, 123, 118, 117, 117, 129, 131, 91, 119, 126, 119, 115, 117, 112, 115, 128, 117, 113, 118, 104, 103, 111, 116, 116, 89, 104, 107, 114, 122, 121, 129, 99, 112, 113, 105, 118, 107, 119, 109, 135, 121, 114, 117, 115, 125, 114, 119, 120, 116, 118, 127, 120, 118, 105, 108, 121, 114, 117, 117, 101, 139, 116, 108, 120, 111, 115, 88, 116, 120, 116, 114, 117, 110, 132, 126, 113, 123, 119, 117, 112, 113, 122, 116, 122, 117, 134, 112, 105, 111, 124, 113, 141, 120, 113, 116, 124, 106, 119, 117, 109, 123, 121, 115, 120, 112, 124, 124, 110, 130, 107, 126, 114, 118, 116, 122, 108, 108, 119, 114, 112, 118, 113, 112, 121, 126, 123, 109, 108, 132, 135, 111, 126, 123, 102, 116, 105, 124, 114, 106, 112, 119, 110, 123, 118, 112, 115, 128, 117, 134, 121, 103, 125, 113, 117, 144, 120, 114, 122, 107, 117, 112, 121, 122, 117, 122, 123, 122, 94, 122, 117, 120, 132, 103, 116, 120, 110, 110, 115, 112, 114, 117, 117, 121, 113, 115, 119, 118, 106, 114, 107, 125, 96, 117, 113, 119, 115, 133, 117, 119, 115, 114, 117, 115, 119, 111, 131, 117, 110, 112, 131, 125, 99, 109, 108, 118, 116, 124, 120, 117, 128, 123, 128, 118, 112, 136, 113, 114, 111, 112, 112, 124, 121, 117, 117, 115, 117, 106, 116, 120, 107, 127, 119, 124, 121, 114, 123, 114, 123, 99, 121, 114, 112, 120, 106, 117, 112, 106, 103, 135, 111, 128, 107, 120, 109, 111, 113, 131, 139, 109, 132, 114, 118, 119, 105, 120, 108, 121, 112, 125, 119, 109, 116, 100, 130, 107, 105, 126, 114, 114, 114, 104, 112, 100, 109, 112, 114, 114, 115, 115, 114, 105, 101, 118, 116, 113, 112, 115, 121, 110, 123, 107, 101, 120, 116, 108, 100, 130, 113, 115, 110, 120, 127, 115, 107, 120, 124, 105, 117, 114, 113, 98, 118, 128, 114, 121, 107, 127, 108, 109, 110, 102, 139, 115, 128, 114, 120, 111, 116, 112, 113, 113, 120, 94, 130, 115, 113, 121, 119, 117, 122, 117, 114, 123, 97, 135, 118, 94, 97, 119, 109, 106, 126, 108, 115, 99, 102, 123, 117, 118, 131, 109, 116, 111, 107, 113, 109, 113, 126, 124, 112, 113, 118, 102, 114, 118, 125, 95, 110, 112, 98, 123, 158, 109, 127, 123, 117, 127, 111, 112, 119, 113, 120, 126, 109, 116, 118, 117, 113, 123, 106, 111, 108, 129, 113, 111, 113, 105, 136, 100, 117, 115, 129, 126, 102, 118, 125, 110, 116, 119, 118, 127, 116, 139, 120, 120, 126, 114, 106, 117, 125, 116, 106, 125, 120, 120, 123, 124, 146, 119, 125, 120, 118, 126, 107, 111, 119, 123, 109, 132, 115, 106, 120, 106, 119, 135, 121, 115, 111, 145, 101, 127, 128, 122, 118, 118, 120, 110, 104, 118, 129, 111, 98, 114, 120, 111, 116, 112, 105, 117, 116, 126, 105, 119, 107, 108, 124, 119, 111, 104, 127, 120, 131, 118, 128, 112, 108, 114, 129, 119, 119, 109, 119, 111, 118, 120, 117, 129, 113, 106, 130, 111, 115, 117, 122, 95, 106, 125, 141, 108, 110, 122, 95, 117, 117, 112, 116, 136, 125, 117, 111, 117, 117, 110, 146, 107, 113, 103, 107, 125, 108, 116, 101, 112, 111, 112, 112, 136, 113, 107, 114, 110, 119, 99, 118, 127, 119, 116, 118, 117, 119, 114, 116, 125, 107, 125, 107, 116, 99, 114, 121, 111, 117, 103, 119, 121, 110, 134, 109, 68, 118, 115, 100, 129, 111, 124, 113, 112, 111, 117, 118, 106, 112, 109, 108, 126, 126, 110, 133, 103, 114, 106, 113, 111, 116, 100, 91, 98, 108, 115, 138, 109, 113, 117, 115, 128, 111, 120, 115, 99, 105, 124, 135, 117, 110, 107, 120, 100, 104, 117, 118, 118, 97, 116, 113, 119, 117, 119, 125, 118, 130, 108, 121, 91, 109, 121, 125, 112, 121, 113, 146, 109, 124, 104, 108, 116, 110, 110, 119, 125, 122, 130, 134, 109, 120, 114, 111, 107, 111, 126, 118, 116, 116, 103, 121, 108, 118, 106, 104, 117, 112, 112, 106, 119, 108, 88, 108, 119, 119, 102, 115, 106, 108, 102, 113, 109, 111, 111, 110, 106, 116, 114, 121, 117, 107, 108, 122, 117, 97, 128, 127, 114, 107, 103, 118, 123, 117, 102, 125, 132, 116, 109, 112, 122, 112, 107, 113, 134, 110, 119, 118, 121, 110, 114, 130, 109, 119, 114, 115, 117, 107, 112, 94, 130, 111, 118, 112, 110, 120, 137, 106, 112, 95, 117, 106, 109, 111, 113, 111, 119, 118, 113, 132, 114, 84, 118, 109, 122, 111, 105, 111, 150, 113, 112, 128, 118, 107, 115, 119, 127, 113, 136, 115, 109, 128, 131, 112, 122, 129, 123, 121, 103, 113, 121, 119, 106, 116, 114, 108, 118, 127, 117, 127, 112, 103, 108, 119, 117, 114, 113, 118, 113, 113, 110, 108, 119, 114, 126, 118, 113, 149, 128, 117, 129, 77, 116, 125, 109, 116, 124, 120, 112, 124, 120, 109, 120, 133, 120, 103, 108, 108, 100, 120, 125, 104, 113, 114, 104, 108, 129, 114, 106, 109, 112, 116, 119, 116, 110, 113, 108, 112, 133, 121, 107, 131, 108, 120, 119, 109, 120, 103, 99, 114, 103, 115, 117, 114, 138, 123, 119, 115, 102, 129, 113, 121, 117, 124, 111, 131, 112, 118, 117, 128, 133, 111, 114, 111, 114, 124, 119, 102, 142, 126, 122, 112, 125, 128, 141, 120, 102, 114, 131, 102, 111, 104, 117, 103, 124, 116, 105, 119, 107, 124, 121, 122, 115, 114, 104, 134, 100, 111, 120, 118, 126, 118, 130, 118, 122, 115, 115, 118, 116, 121, 121, 121, 108, 113, 122, 96, 115, 115, 112, 123, 118, 119, 110, 110, 120, 118, 119, 127, 118, 121, 109, 107, 124, 123, 109, 118, 116, 117, 110, 95, 127, 138, 108, 110, 109, 110, 121, 116, 115, 128, 121, 114, 100, 115, 104, 111, 125, 125, 113, 125, 114, 125, 109, 129, 113, 120, 119, 113, 102, 117, 111, 115, 118, 100, 100, 104, 104, 119, 116, 119, 123, 118, 128, 105, 116, 116, 113, 111, 109, 117, 110, 125, 117, 115, 109, 113, 130, 101, 92, 139, 119, 119, 120, 110, 115, 103, 108, 104, 133, 118, 127, 104, 114, 110, 128, 122, 111, 111, 124, 116, 112, 116, 118, 117, 112, 119, 115, 97, 116, 115, 121, 124, 89, 125, 121, 115, 122, 122, 121, 123, 125, 115, 97, 116, 120, 123, 118, 97, 116, 109, 123, 114, 113, 119, 112, 111, 120, 108, 119, 127, 121, 92, 114, 113, 131, 112, 118, 116, 124, 116, 114, 105, 124, 125, 129, 113, 99, 116, 107, 113, 111, 117, 117, 114, 114, 110, 107, 115, 113, 122, 122, 126, 118, 107, 116, 106, 120, 127, 115, 97, 130, 122, 116, 95, 117, 102, 105, 100, 117, 128, 111, 128, 120, 112, 117, 114, 117, 114, 112, 104, 119, 107, 123, 115, 127, 109, 112, 119, 121, 112, 101, 120, 104, 110, 102, 122, 115, 113, 95, 123, 127, 122, 113, 110, 102, 118, 116, 118, 152, 118, 129, 121, 128, 120, 115, 115, 127, 112, 116, 51, 122, 115, 114, 140, 118, 119, 118, 103, 74, 119, 120, 112, 103, 117, 116, 119, 118, 120, 115, 107, 120, 125, 121, 130, 112, 115, 123, 119, 119, 112, 116, 112, 125, 118, 109, 113, 106, 108, 113, 117, 112, 106, 126, 121, 121, 122, 105, 119, 112, 125, 119, 109, 103, 122, 122, 118, 107, 120, 120, 113, 117, 115, 118, 108, 115, 109, 126, 113, 117, 110, 103, 105, 118, 122, 113, 137, 120, 121, 110, 120, 119, 121, 120, 114, 113, 119, 119, 116, 117, 126, 116, 118, 104, 115, 111, 116, 102, 98, 116, 115, 113, 115, 118, 111, 125, 117, 117, 120, 113, 112, 119, 116, 120, 117, 105, 110, 123, 115, 118, 110, 114, 104, 119, 103, 112, 114, 103, 111, 74, 118, 120, 112, 108, 105, 109, 110, 116, 117, 111, 119, 120, 110, 120, 105, 120, 113, 122, 125, 123, 129, 111, 121, 116, 130, 114, 109, 117, 112, 123, 109, 109, 112, 115, 102, 114, 125, 121, 115, 117, 112, 115, 115, 117, 114, 122, 116, 104, 126, 120, 146, 120, 105, 110, 118, 114, 123, 117, 96, 109, 125, 119, 104, 112, 114, 106, 111, 116, 120, 115, 117, 114, 116, 117, 110, 112, 109, 123, 121, 108, 117, 113, 113, 120, 44, 112, 111, 113, 111, 119, 120, 111, 105, 121, 102, 79, 123, 122, 119, 120, 120, 125, 89, 117, 111, 122, 118, 119, 114, 124, 112, 109, 113, 110, 111, 118, 115, 112, 103, 120, 115, 114, 114, 118, 113, 127, 122, 115, 113, 126, 112, 111, 129, 118, 143, 122, 123, 119, 116, 115, 127, 118, 121, 119, 119, 126, 112, 124, 114, 99, 120, 116, 107, 111, 113, 113, 123, 135, 124, 118, 109, 116, 117, 111, 116, 117, 119, 114, 112, 98, 115, 126, 108, 119, 116, 108, 114, 106, 129, 120, 107, 122, 118, 125, 121, 116, 112, 120, 116, 120, 109, 118, 110, 103, 104, 118, 120, 119, 114, 108, 60, 123, 136, 116, 111, 121, 118, 113, 108, 120, 124, 125, 125, 118, 113, 116, 107, 169, 117, 112, 125, 123, 124, 122, 154, 123, 114, 115, 107, 118, 126, 104, 122, 113, 116, 120, 77, 115, 123, 114, 122, 122, 110, 116, 120, 124, 123, 114, 113, 117, 115, 118, 109, 107, 94, 125, 119, 114, 118, 125, 111, 115, 117, 124, 117, 122, 126, 118, 126, 118, 120, 121, 125, 116, 120, 118, 112, 111, 120, 108, 129, 160, 109, 118, 106, 124, 119, 113, 110, 113, 113, 120, 116, 118, 128, 124, 124, 99, 111, 119, 121, 127, 115, 125, 116, 120, 114, 141, 153, 110, 111, 124, 111, 137, 114, 121, 112, 120, 115, 123, 113, 114, 114, 119, 117, 115, 107, 117, 107, 127, 128, 119, 134, 118, 121, 110, 109, 111, 112, 115, 111, 110, 118, 105, 113, 103, 116, 108, 120, 122, 106, 111, 94, 110, 122, 107, 112, 109, 106, 116, 116, 120, 114, 116, 128, 122, 108, 81, 127, 102, 107, 118, 114, 105, 111, 156, 131, 164, 120, 130, 106, 123, 114, 105, 130, 124, 107, 108, 99, 125, 96, 113, 132, 115, 112, 121, 119, 122, 128, 106, 116, 125, 127, 98, 109, 110, 122, 114, 115, 117, 114, 118, 125, 121, 124, 112, 119, 124, 93, 124, 118, 114, 114, 116, 136, 103, 118, 117, 121, 98, 116, 112, 105, 125, 118, 121, 115, 108, 115, 119, 110, 110, 119, 116, 106, 110, 116, 129, 125, 128, 134, 127, 114, 109, 123, 110, 115, 134, 111, 113, 121, 119, 114, 113, 107, 107, 109, 122, 118, 123, 114, 122, 120, 118, 116, 107, 135, 98, 116, 115, 113, 120, 124, 125, 121, 118, 117, 126, 113, 113, 116, 109, 114, 112, 110, 116, 113, 109, 123, 113, 116, 120, 105, 121, 137, 118, 113, 111, 109, 125, 103, 109, 111, 117, 127, 126, 108, 109, 124, 98, 106, 114, 119, 128, 108, 128, 102, 123, 125, 115, 110, 114, 131, 119, 115, 108, 95, 111, 113, 99, 112, 119, 120, 120, 131, 109, 102, 115, 138, 117, 105, 114, 116, 115, 126, 116, 119, 121, 117, 119, 117, 105, 101, 109, 118, 123, 116, 114, 120, 103, 125, 121, 111, 122, 131, 123, 120, 101, 114, 120, 134, 117, 106, 119, 113, 104, 119, 123, 123, 109, 124, 114, 130, 119, 103, 118, 100, 161, 118, 119, 123, 113, 118, 120, 106, 116, 131, 131, 117, 112, 104, 118, 128, 107, 101, 118, 111, 114, 108, 123, 123, 128, 123, 112, 122, 112, 118, 117, 118, 104, 112, 115, 110, 123, 147, 121, 122, 114, 127, 113, 108, 103, 119, 115, 117, 113, 100, 113, 135, 121, 112, 118, 122, 106, 126, 116, 118, 115, 106, 119, 112, 116, 120, 121, 124, 128, 129, 115, 112, 98, 123, 112, 108, 107, 121, 114, 132, 122, 116, 117, 108, 112, 121, 132, 137, 118, 112, 133, 113, 106, 106, 112, 110, 119, 127, 127, 127, 120, 130, 96, 115, 108, 117, 115, 115, 121, 107, 100, 110, 121, 123, 108, 117, 116, 109, 111, 113, 111, 117, 112, 108, 116, 121, 109, 116, 111, 122, 125, 119, 120, 112, 119, 103, 118, 119, 111, 109, 115, 115, 112, 124, 114, 117, 106, 113, 100, 110, 119, 112, 125, 119, 109, 112, 127, 122, 114, 117, 124, 105, 120, 120, 139, 126, 112, 104, 127, 117, 108, 113, 116, 102, 114, 117, 124, 114, 113, 118, 116, 115, 118, 104, 115, 117, 110, 119, 123, 111, 118, 103, 113, 115, 110, 110, 117, 127, 124, 125, 112, 105, 116, 117, 96, 121, 120, 123, 118, 117, 115, 138, 127, 107, 127, 120, 115, 106, 110, 104, 118, 119, 105, 113, 115, 110, 107, 113, 111, 122, 112, 118, 124, 109, 108, 101, 126, 125, 115, 118, 110, 117, 96, 120, 117, 117, 115, 114, 117, 114, 123, 111, 120, 111, 104, 112, 125, 107, 113, 115, 134, 117, 107, 134, 113, 124, 113, 115, 120, 121, 109, 110, 101, 119, 121, 113, 123, 106, 110, 102, 113, 113, 115, 111, 118, 111, 113, 124, 111, 116, 116, 130, 117, 110, 107, 113, 100, 109, 109, 127, 128, 118, 116, 112, 95, 115, 115, 117, 121, 117, 113, 108, 112, 114, 116, 114, 114, 120, 99, 124, 108, 108, 117, 136, 118, 122, 115, 126, 119, 122, 115, 116, 114, 121, 120, 116, 126, 119, 101, 110, 116, 107, 115, 110, 108, 117, 118, 120, 122, 110, 112, 114, 114, 116, 106, 117, 111, 127, 108, 125, 114, 120, 119, 102, 110, 118, 113, 114, 118, 116, 110, 112, 104, 116, 117, 113, 114, 116, 116, 118, 113, 120, 123, 116, 103, 114, 114, 110, 113, 108, 121, 124, 113, 117, 111, 116, 128, 116, 116, 115, 122, 114, 115, 112, 141, 120, 131, 118, 116, 109, 113, 118, 111, 122, 119, 117, 130, 117, 103, 120, 118, 120, 125, 122, 117, 116, 115, 120, 117, 119, 119, 112, 115, 115, 109, 117, 116, 116, 120, 119, 110, 115, 120, 112, 127, 118, 113, 115, 116, 113, 120, 106, 111, 123, 117, 117, 113, 119, 110, 94, 114, 99, 126, 118, 117, 118, 104, 113, 112, 115, 113, 119, 115, 123, 113, 117, 120, 118, 111, 116, 111, 122, 119, 106, 116, 118, 113, 115, 113, 119, 125, 107, 118, 120, 119, 115, 110, 114, 111, 115, 109, 116, 118, 114, 115, 105, 110, 105, 104, 112, 124, 116, 130, 108, 116, 119, 127, 116, 109, 122, 112, 114, 116, 120, 123, 111, 106, 112, 104, 118, 117, 116, 115, 116, 118, 116, 111, 119, 123, 110, 118, 115, 113, 102, 118, 113, 111, 111, 124, 120, 114, 114, 115, 120, 111, 110, 109, 105, 119, 111, 113, 103, 115, 122, 116, 113, 115, 120, 113, 114, 123, 123, 113, 134, 120, 105, 116, 118, 119, 105, 117, 114, 105, 107, 115, 118, 112, 122, 117, 118, 110, 109, 120, 122, 119, 111, 121, 116, 119, 116, 112, 121, 121, 110, 116, 112, 116, 118, 104, 118, 112, 115, 120, 124, 113, 123, 126, 119, 116, 124, 121, 118, 120, 115, 118, 110, 119, 118, 114, 109, 121, 116, 120, 113, 112, 119, 117, 115, 117, 108, 114, 114, 116, 114, 120, 116, 111, 108, 108, 114, 114, 107, 113, 124, 119, 116, 113, 114, 117, 113, 117, 115, 118, 108, 111, 112, 114, 110, 113, 119, 118, 110, 116, 115, 117, 123, 118, 118, 101, 114, 112, 113, 110, 115, 114, 120, 120, 118, 111, 121, 125, 110, 116, 107, 119, 117, 112, 108, 123, 113, 119, 116, 115, 122, 107, 118, 115, 109, 110, 110, 116, 124, 111, 122, 117, 120, 114, 117, 122, 105, 114, 109, 121, 114, 120, 120, 113, 124, 112, 110, 116, 96, 112, 118, 114, 109, 116, 115, 115, 113, 110, 108, 116, 115, 115, 120, 110, 117, 118, 115, 119, 123, 104, 114, 118, 122, 111, 109, 117, 109, 111, 108, 118, 108, 113, 109, 107, 113, 122, 114, 119, 119, 108, 113, 118, 116, 106, 119, 120, 122, 117, 115, 114, 109, 113, 122, 114, 114, 119, 118, 114, 116, 108, 105, 120, 107, 108, 115, 115, 116, 106, 118, 114, 107, 116, 106, 116, 120, 97, 122, 115, 118, 116, 118, 122, 113, 115, 125, 118, 121, 107, 113, 109, 106, 114, 117, 115, 117, 123, 119, 117, 112, 131, 117, 111, 114, 111, 118, 125, 115, 125, 126, 115, 112, 121, 116, 123, 115, 118, 109, 121, 120, 112, 113, 119, 116, 116, 113, 121, 129, 112, 116, 115, 114, 117, 107, 126, 107, 116, 119, 116, 116, 123, 122, 112, 99, 117, 122, 117, 120, 116, 116, 110, 122, 116, 115, 111, 119, 115, 115, 107, 114, 114, 115, 118, 115, 118, 119, 123, 109, 113, 130, 116, 106, 108, 113, 121, 115, 120, 118, 117, 112, 115, 118, 120, 126, 101, 124, 103, 120, 113, 107, 117, 116, 117, 116, 119, 114, 115, 113, 102, 119, 103, 128, 120, 104, 118, 118, 122, 115, 117, 120, 111, 114, 118, 138, 124, 114, 117, 118, 120, 111, 114, 113, 101, 122, 98, 116, 114, 117, 116, 120, 119, 114, 112, 106, 105, 118, 118, 107, 118, 124, 126, 115, 113, 113, 113, 111, 117, 126, 123, 110, 122, 112, 109, 115, 119, 112, 111, 113, 119, 113, 108, 110, 112, 118, 114, 116, 125, 112, 121, 124, 126, 125, 118, 114, 112, 129, 116, 115, 112, 117, 118, 114, 108, 111, 119, 109, 118, 116, 113, 107, 110, 111, 117, 128, 116, 116, 131, 114, 119, 111, 101, 123, 118, 116, 123, 116, 110, 114, 123, 119, 116, 117, 119, 119, 121, 118, 118, 113, 112, 119, 111, 122, 116, 113, 122, 119, 108, 119, 118, 121, 109, 112, 110, 120, 115, 123, 106, 112, 110, 122, 118, 109, 116, 117, 113, 122, 117, 122, 120, 113, 115, 97, 113, 131, 119, 117, 113, 115, 117, 105, 115, 114, 111, 115, 109, 117, 111, 116, 115, 113, 110, 118, 107, 114, 126, 118, 116, 122, 112, 123, 102, 113, 117, 116, 114, 108, 116, 113, 113, 116, 122, 124, 106, 124, 108, 117, 111, 116, 114, 132, 116, 115, 114, 114, 116, 120, 115, 120, 124, 113, 116, 124, 126, 112, 124, 111, 115, 127, 115, 125, 110, 115, 117, 117, 121, 124, 111, 111, 115, 112, 113, 119, 113, 110, 115, 104, 118, 111, 126, 113, 129, 113, 132, 112, 110, 112, 111, 113, 146, 122, 116, 111, 113, 131, 113, 111, 109, 116, 110, 116, 109, 110, 115, 122, 115, 107, 115, 115, 109, 130, 120, 104, 113, 106, 115, 117, 111, 121, 112, 122, 125, 120, 122, 105, 119, 122, 116, 110, 111, 128, 113, 123, 118, 117, 111, 111, 124, 111, 111, 113, 113, 121, 114, 110, 117, 103, 127, 112, 119, 121, 121, 133, 121, 120, 121, 119, 122, 123, 111, 107, 111, 121, 128, 125, 116, 123, 111, 113, 119, 116, 119, 110, 100, 122, 115, 117, 123, 117, 114, 116, 113, 126, 119, 111, 121, 115, 102, 125, 125, 121, 125, 112, 115, 109, 117, 112, 113, 117, 130, 116, 115, 110, 114, 122, 114, 105, 121, 116, 114, 120, 110, 106, 112, 118, 113, 118, 125, 130, 115, 114, 112, 116, 103, 108, 109, 114, 104, 124, 129, 119, 117, 137, 101, 110, 108, 135, 120, 113, 107, 120, 120, 111, 131, 118, 113, 115, 105, 116, 128, 116, 110, 102, 124, 109, 122, 122, 97, 118, 103, 107, 107, 128, 110, 110, 119, 133, 109, 122, 128, 124, 116, 110, 132, 122, 115, 109, 114, 119, 119, 115, 125, 116, 109, 123, 105, 113, 128, 108, 117, 123, 116, 141, 110, 119, 114, 125, 113, 125, 117, 118, 101, 121, 99, 119, 119, 127, 111, 122, 120, 118, 134, 124, 119, 123, 122, 115, 100, 118, 105, 124, 117, 112, 114, 105, 128, 111, 115, 126, 127, 86, 116, 109, 106, 108, 114, 111, 110, 103, 117, 102, 106, 128, 127, 117, 113, 132, 108, 107, 129, 117, 120, 106, 112, 123, 113, 109, 114, 125, 119, 116, 117, 109, 103, 102, 112, 106, 97, 105, 113, 119, 110, 129, 107, 114, 123, 111, 125, 120, 131, 109, 113, 120, 122, 105, 121, 105, 121, 122, 104, 124, 134, 118, 128, 96, 116, 120, 117, 123, 121, 123, 128, 112, 105, 111, 112, 124, 105, 120, 118, 109, 120, 110, 110, 123, 120, 103, 112, 111, 114, 121, 118, 116, 114, 93, 118, 123, 105, 111, 124, 130, 124, 119, 113, 104, 118, 100, 124, 121, 113, 117, 135, 124, 120, 137, 123, 113, 125, 118, 109, 118, 125, 119, 120, 119, 123, 123, 119, 130, 107, 120, 118, 119, 127, 124, 118, 116, 103, 124, 111, 128, 128, 110, 127, 107, 123, 100, 127, 113, 117, 124, 114, 122, 113, 120, 107, 119, 122, 116, 109, 105, 99, 116, 104, 106, 119, 144, 123, 121, 117, 122, 120, 113, 128, 135, 115, 115, 122, 108, 107, 126, 92, 122, 107, 111, 133, 122, 108, 135, 119, 123, 109, 122, 114, 94, 113, 121, 122, 121, 112, 117, 106, 146, 116, 121, 107, 111, 129, 124, 126, 133, 113, 116, 126, 102, 126, 119, 109, 115, 113, 113, 117, 118, 121, 115, 118, 124, 121, 115, 116, 108, 124, 84, 116, 116, 107, 111, 130, 118, 119, 104, 114, 117, 119, 121, 94, 108, 114, 111, 122, 93, 118, 107, 115, 111, 124, 108, 122, 125, 120, 109, 107, 122, 117, 110, 111, 136, 114, 113, 119, 111, 120, 119, 115, 112, 140, 124, 117, 126, 105, 132, 114, 107, 118, 114, 125, 127, 120, 121, 109, 125, 123, 121, 120, 123, 112, 123, 98, 120, 108, 108, 122, 113, 108, 103, 107, 110, 115, 97, 103, 105, 126, 118, 113, 129, 114, 112, 113, 122, 104, 117, 106, 119, 105, 117, 120, 107, 118, 115, 109, 114, 105, 107, 118, 115, 102, 108, 102, 111, 124, 109, 125, 103, 104, 119, 121, 108, 112, 112, 114, 108, 112, 119, 119, 128, 124, 119, 112, 114, 120, 112, 116, 117, 110, 112, 121, 105, 109, 108, 117, 114, 91, 108, 104, 122, 125, 107, 119, 113, 104, 109, 106, 119, 113, 114, 118, 116, 113, 118, 118, 125, 112, 115, 102, 119, 124, 141, 131, 113, 115, 111, 126, 120, 123, 121, 107, 108, 103, 119, 111, 138, 119, 107, 125, 121, 135, 118, 121, 121, 135, 125, 118, 109, 104, 109, 126, 111, 129, 97, 105, 113, 121, 105, 119, 115, 126, 120, 115, 108, 121, 114, 110, 98, 124, 121, 127, 88, 114, 125, 112, 114, 104, 115, 120, 128, 120, 66, 116, 117, 108, 202, 124, 110, 132, 125, 114, 116, 118, 122, 108, 125, 134, 121, 103, 116, 123, 106, 111, 111, 119, 107, 111, 131, 127, 120, 118, 101, 118, 108, 184, 115, 118, 112, 117, 108, 116, 105, 119, 114, 126, 114, 110, 124, 103, 107, 107, 115, 112, 107, 119, 116, 117, 126, 114, 115, 109, 113, 126, 115, 112, 103, 111, 115, 81, 113, 110, 115, 117, 136, 118, 114, 118, 96, 130, 124, 121, 120, 127, 152, 114, 112, 106, 107, 122, 133, 119, 116, 111, 114, 119, 118, 98, 106, 118, 114, 109, 128, 115, 118, 126, 112, 107, 121, 120, 130, 118, 117, 115, 124, 125, 115, 112, 113, 106, 102, 117, 117, 126, 110, 155, 103, 105, 118, 113, 112, 124, 113, 122, 122, 129, 125, 127, 124, 124, 120, 120, 123, 105, 113, 115, 114, 127, 108, 117, 120, 118, 124, 126, 111, 116, 123, 85, 134, 106, 117, 133, 110, 111, 106, 116, 115, 121, 116, 122, 115, 110, 118, 125, 118, 134, 116, 117, 96, 123, 126, 114, 130, 118, 122, 125, 113, 126, 121, 115, 127, 114, 130, 106, 111, 128, 100, 119, 107, 110, 118, 130, 112, 102, 117, 129, 112, 135, 120, 109, 117, 127, 124, 112, 123, 105, 117, 106, 126, 108, 111, 125, 109, 122, 114, 109, 134, 123, 132, 125, 109, 111, 119, 117, 122, 128, 120, 123, 122, 129, 101, 118, 117, 110, 120, 123, 119, 93, 118, 108, 106, 115, 112, 117, 113, 119, 110, 108, 113, 116, 125, 115, 116, 123, 115, 110, 127, 95, 122, 114, 115, 122, 112, 95, 111, 124, 117, 106, 108, 111, 121, 114, 105, 121, 122, 116, 135, 130, 123, 125, 110, 122, 114, 102, 59, 120, 116, 121, 107, 121, 107, 82, 122, 121, 126, 115, 112, 119, 126, 106, 117, 127, 111, 106, 109, 114, 126, 122, 123, 101, 98, 111, 106, 103, 121, 114, 122, 121, 107, 113, 119, 245, 122, 111, 111, 114, 113, 123, 109, 120, 116, 113, 123, 113, 116, 130, 101, 116, 109, 121, 96, 120, 127, 139, 130, 129, 108, 111, 100, 123, 107, 118, 131, 115, 114, 103, 119, 108, 126, 120, 109, 108, 135, 133, 106, 107, 118, 101, 117, 99, 119, 119, 118, 122, 118, 112, 115, 121, 124, 114, 111, 133, 123, 98, 117, 116, 115, 126, 121, 122, 118, 121, 116, 106, 131, 104, 121, 106, 118, 125, 114, 111, 112, 120, 118, 111, 115, 119, 118, 126, 122, 144, 108, 106, 116, 116, 108, 119, 129, 99, 121, 118, 110, 119, 108, 113, 117, 110, 129, 121, 119, 111, 127, 124, 126, 119, 128, 116, 124, 118, 115, 116, 117, 127, 114, 108, 116, 108, 91, 125, 132, 107, 103, 127, 129, 117, 108, 114, 121, 101, 111, 116, 105, 122, 116, 115, 117, 120, 112, 122, 110, 118, 117, 111, 101, 116, 110, 110, 122, 111, 115, 96, 127, 123, 111, 115, 123, 119, 134, 125, 114, 112, 114, 113, 122, 115, 125, 112, 97, 117, 118, 119, 115, 120, 103, 111, 107, 121, 123, 122, 115, 129, 118, 116, 117, 108, 104, 102, 131, 102, 112, 123, 114, 121, 120, 114, 141, 124, 114, 101, 117, 111, 122, 111, 112, 98, 109, 94, 157, 109, 121, 108, 113, 114, 120, 110, 121, 144, 111, 108, 109, 117, 108, 114, 120, 127, 112, 109, 117, 119, 110, 118, 117, 132, 108, 119, 130, 131, 124, 109, 120, 105, 124, 117, 105, 125, 115, 111, 104, 111, 128, 131, 123, 119, 117, 119, 48, 118, 118, 114, 110, 112, 119, 114, 126, 109, 116, 114, 120, 112, 119, 119, 115, 123, 109, 134, 117, 116, 112, 111, 113, 114, 133, 113, 115, 126, 106, 132, 121, 110, 120, 118, 108, 114, 108, 123, 113, 125, 124, 104, 104, 103, 109, 119, 112, 120, 123, 109, 122, 106, 120, 116, 117, 109, 119, 105, 110, 111, 118, 106, 107, 122, 123, 105, 107, 113, 116, 126, 119, 110, 121, 113, 108, 107, 135, 111, 119, 115, 113, 106, 101, 118, 115, 119, 118, 121, 112, 116, 115, 119, 111, 129, 114, 106, 115, 130, 118, 116, 117, 105, 133, 122, 108, 103, 114, 125, 116, 102, 116, 113, 115, 109, 108, 122, 110, 112, 121, 109, 127, 121, 104, 100, 132, 114, 110, 117, 122, 120, 114, 121, 122, 100, 116, 118, 116, 115, 115, 117, 111, 113, 127, 121, 115, 111, 121, 114, 126, 99, 110, 122, 123, 127, 108, 104, 112, 121, 113, 134, 130, 118, 119, 114, 116, 108, 122, 121, 119, 109, 127, 119, 113, 118, 119, 112, 120, 113, 135, 116, 129, 124, 110, 125, 119, 137, 124, 122, 116, 116, 96, 127, 113, 114, 113, 116, 111, 116, 120, 114, 114, 119, 109, 108, 115, 114, 122, 115, 124, 110, 114, 122, 114, 122, 128, 124, 122, 122, 119, 116, 99, 120, 117, 112, 119, 100, 118, 108, 124, 115, 111, 116, 122, 113, 122, 107, 104, 135, 116, 114, 126, 112, 123, 140, 115, 88, 118, 123, 118, 118, 119, 98, 115, 115, 114, 109, 122, 115, 113, 113, 112, 115, 115, 117, 136, 126, 131, 114, 97, 117, 118, 115, 108, 112, 129, 89, 122, 120, 110, 114, 122, 110, 115, 118, 133, 124, 116, 130, 114, 117, 114, 111, 112, 124, 134, 124, 122, 117, 107, 115, 131, 113, 118, 119, 99, 112, 98, 112, 106, 100, 116, 111, 111, 120, 120, 121, 91, 125, 130, 122, 115, 119, 115, 107, 115, 108, 109, 124, 123, 125, 110, 102, 126, 115, 112, 118, 105, 124, 116, 112, 138, 91, 117, 118, 128, 117, 109, 121, 127, 122, 109, 113, 114, 105, 111, 111, 126, 115, 111, 116, 113, 117, 127, 118, 123, 117, 108, 112, 116, 119, 120, 122, 133, 115, 105, 105, 109, 107, 121, 112, 108, 116, 114, 104, 119, 108, 111, 105, 98, 112, 127, 126, 115, 118, 109, 103, 121, 119, 104, 108, 108, 120, 114, 116, 122, 106, 135, 126, 116, 109, 107, 108, 118, 121, 114, 119, 115, 111, 110, 116, 122, 116, 120, 122, 117, 99, 114, 97, 115, 116, 106, 116, 113, 113, 115, 122, 106, 110, 121, 123, 113, 94, 103, 112, 125, 124, 115, 126, 119, 110, 113, 114, 115, 116, 118, 120, 116, 122, 108, 112, 110, 106, 107, 119, 108, 115, 123, 106, 111, 134, 117, 108, 112, 112, 110, 115, 114, 110, 148, 110, 117, 108, 115, 113, 111, 114, 108, 113, 119, 120, 112, 128, 114, 130, 119, 117, 111, 122, 115, 117, 113, 113, 108, 108, 105, 109, 112, 112, 110, 122, 117, 116, 120, 116, 107, 122, 118, 111, 108, 113, 118, 107, 113, 119, 123, 121, 117, 112, 124, 117, 121, 128, 119, 117, 116, 117, 102, 110, 126, 108, 105, 115, 112, 121, 116, 121, 113, 121, 123, 117, 121, 117, 109, 128, 122, 107, 117, 117, 112, 118, 135, 135, 116, 111, 98, 132, 117, 123, 106, 129, 106, 113, 119, 119, 127, 113, 109, 110, 112, 111, 115, 114, 116, 114, 115, 109, 108, 95, 115, 93, 117, 118, 113, 112, 112, 120, 110, 118, 117, 121, 113, 117, 125, 128, 121, 109, 110, 115, 130, 121, 120, 117, 115, 136, 126, 113, 121, 104, 113, 122, 111, 117, 105, 113, 115, 111, 119, 125, 112, 116, 110, 120, 118, 131, 111, 114, 117, 120, 121, 121, 113, 130, 106, 121, 111, 110, 114, 124, 118, 123, 117, 116, 108, 126, 126, 114, 104, 113, 129, 123, 87, 114, 126, 114, 111, 97, 119, 110, 112, 123, 121, 118, 114, 109, 107, 119, 111, 112, 116, 118, 118, 128, 112, 113, 110, 114, 123, 111, 118, 111, 129, 107, 131, 118, 110, 109, 108, 142, 113, 141, 114, 125, 114, 112, 113, 123, 119, 109, 118, 107, 121, 107, 111, 113, 120, 110, 115, 116, 101, 122, 116, 117, 113, 115, 122, 124, 119, 112, 118, 134, 116, 120, 118, 129, 126, 127, 117, 122, 115, 112, 148, 118, 125, 103, 117, 114, 112, 113, 95, 115, 125, 114, 114, 114, 117, 128, 121, 123, 118, 125, 109, 120, 114, 115, 111, 126, 124, 128, 117, 114, 120, 122, 128, 115, 119, 131, 121, 107, 111, 124, 110, 118, 113, 116, 112, 117, 112, 109, 109, 113, 114, 109, 120, 115, 112, 120, 105, 119, 126, 118, 125, 118, 112, 113, 111, 116, 108, 121, 125, 104, 113, 108, 132, 114, 114, 117, 103, 110, 112, 104, 119, 116, 115, 123, 124, 115, 117, 120, 119, 114, 128, 132, 122, 117, 99, 105, 115, 121, 120, 121, 115, 106, 118, 113, 122, 100, 111, 116, 121, 113, 124, 116, 113, 120, 119, 108, 120, 114, 108, 117, 111, 109, 124, 116, 114, 122, 113, 120, 108, 116, 125, 122, 109, 106, 117, 108, 109, 120, 105, 104, 110, 115, 126, 115, 126, 112, 114, 128, 117, 126, 121, 121, 108, 114, 123, 118, 130, 113, 128, 125, 109, 99, 117, 123, 126, 109, 112, 114, 122, 113, 107, 109, 119, 107, 124, 101, 124, 111, 114, 109, 123, 106, 114, 112, 112, 115, 113, 120, 106, 111, 108, 139, 118, 129, 108, 124, 127, 119, 112, 119, 114, 117, 122, 111, 100, 122, 127, 119, 119, 102, 112, 121, 121, 114, 118, 115, 119, 115, 112, 116, 104, 118, 123, 115, 116, 124, 117, 109, 105, 105, 116, 113, 122, 117, 121, 124, 110, 121, 107, 116, 114, 116, 120, 111, 108, 108, 116, 128, 109, 120, 111, 117, 116, 137, 143, 117, 118, 118, 111, 121, 116, 125, 110, 122, 115, 103, 106, 105, 117, 121, 121, 104, 116, 115, 115, 139, 118, 123, 109, 111, 115, 113, 111, 113, 104, 110, 112, 122, 122, 114, 120, 114, 113, 115, 107, 107, 113, 116, 120, 116, 111, 123, 103, 107, 117, 117, 126, 120, 116, 118, 113, 117, 122, 114, 106, 120, 116, 119, 114, 108, 118, 115, 126, 121, 117, 118, 116, 118, 107, 118, 110, 107, 116, 105, 123, 116, 129, 111, 116, 119, 117, 108, 130, 125, 117, 118, 108, 110, 116, 109, 130, 124, 99, 114, 123, 116, 105, 116, 118, 114, 115, 115, 110, 110, 120, 114, 126, 125, 127, 114, 118, 122, 120, 105, 114, 121, 107, 115, 109, 121, 107, 98, 108, 113, 95, 114, 117, 112, 133, 111, 117, 128, 125, 115, 122, 124, 123, 120, 115, 123, 102, 102, 116, 115, 111, 118, 108, 115, 113, 118, 106, 122, 128, 113, 127, 118, 112, 121, 122, 115, 112, 141, 115, 113, 120, 101, 111, 119, 116, 114, 109, 117, 124, 112, 113, 112, 120, 111, 109, 119, 118, 110, 114, 106, 122, 128, 161, 121, 130, 98, 107, 109, 121, 114, 113, 129, 116, 125, 127, 106, 103, 116, 113, 110, 122, 124, 118, 114, 120, 120, 114, 115, 117, 113, 114, 111, 132, 111, 125, 112, 111, 118, 113, 112, 121, 114, 126, 109, 105, 109, 125, 107, 115, 109, 117, 111, 117, 129, 112, 109, 119, 112, 120, 131, 110, 104, 114, 121, 120, 107, 117, 123, 120, 112, 127, 111, 130, 120, 110, 108, 124, 126, 122, 85, 111, 117, 133, 113, 124, 112, 116, 125, 112, 132, 117, 111, 109, 116, 117, 118, 121, 107, 109, 105, 116, 128, 119, 114, 123, 123, 118, 108, 116, 113, 121, 109, 105, 146, 118, 122, 123, 123, 116, 110, 106, 106, 117, 107, 125, 110, 121, 112, 110, 119, 125, 103, 118, 124, 120, 135, 109, 130, 117, 117, 118, 104, 124, 106, 116, 118, 114, 112, 118, 117, 125, 108, 111, 107, 121, 113, 109, 113, 120, 110, 118, 117, 104, 111, 107, 125, 105, 108, 118, 117, 128, 114, 120, 107, 122, 111, 120, 119, 110, 103, 118, 122, 125, 112, 107, 113, 124, 95, 102, 121, 122, 109, 114, 115, 112, 116, 115, 122, 109, 120, 123, 120, 107, 109, 111, 111, 116, 117, 106, 104, 110, 90, 125, 120, 126, 105, 125, 124, 116, 136, 107, 104, 112, 117, 70, 120, 112, 111, 136, 117, 113, 117, 109, 87, 122, 113, 113, 118, 121, 116, 113, 119, 104, 117, 105, 115, 136, 128, 125, 98, 111, 122, 116, 119, 122, 112, 125, 114, 115, 121, 112, 107, 117, 119, 129, 106, 124, 130, 120, 125, 104, 119, 110, 108, 121, 117, 118, 106, 117, 106, 127, 117, 106, 110, 116, 108, 107, 114, 106, 107, 125, 126, 117, 121, 111, 109, 125, 110, 136, 111, 127, 119, 122, 121, 107, 126, 124, 112, 121, 113, 115, 114, 96, 128, 121, 124, 114, 119, 121, 116, 112, 109, 112, 134, 124, 118, 116, 113, 112, 117, 127, 115, 128, 114, 115, 115, 116, 111, 108, 100, 120, 141, 114, 118, 118, 112, 114, 126, 111, 123, 106, 108, 106, 79, 116, 119, 118, 154, 85, 117, 107, 125, 114, 124, 111, 123, 108, 130, 114, 119, 104, 113, 125, 136, 116, 114, 115, 114, 119, 107, 122, 108, 109, 123, 120, 122, 109, 126, 120, 113, 107, 113, 105, 128, 114, 114, 117, 125, 118, 136, 115, 89, 117, 116, 149, 126, 112, 119, 116, 109, 127, 105, 108, 105, 105, 122, 121, 129, 126, 119, 123, 115, 119, 116, 118, 111, 111, 110, 122, 110, 107, 119, 109, 102, 116, 114, 105, 114, 62, 107, 125, 100, 114, 119, 111, 113, 124, 119, 125, 123, 104, 121, 119, 94, 113, 122, 90, 119, 106, 118, 118, 124, 112, 134, 137, 123, 109, 97, 107, 119, 113, 115, 92, 111, 105, 119, 121, 112, 103, 103, 117, 120, 118, 125, 118, 120, 120, 120, 118, 129, 114, 116, 118, 113, 123, 105, 114, 103, 120, 127, 119, 114, 112, 122, 120, 108, 110, 112, 113, 105, 108, 115, 115, 109, 121, 126, 122, 122, 122, 115, 106, 123, 118, 112, 103, 116, 127, 121, 106, 113, 117, 107, 114, 123, 115, 115, 119, 113, 110, 115, 112, 115, 124, 116, 98, 129, 122, 116, 112, 111, 117, 115, 110, 115, 88, 110, 111, 116, 104, 110, 114, 117, 122, 118, 117, 112, 114, 112, 116, 108, 110, 159, 118, 111, 117, 122, 118, 118, 167, 113, 112, 128, 124, 100, 121, 114, 112, 120, 120, 109, 92, 108, 132, 114, 118, 102, 96, 109, 111, 122, 131, 112, 127, 114, 114, 119, 111, 107, 105, 125, 113, 112, 122, 112, 124, 115, 125, 119, 127, 125, 119, 119, 122, 113, 115, 121, 101, 118, 104, 112, 113, 112, 115, 112, 102, 126, 123, 120, 92, 113, 122, 119, 102, 110, 112, 115, 116, 117, 128, 108, 112, 102, 118, 115, 106, 129, 112, 127, 111, 120, 108, 113, 142, 120, 110, 122, 146, 109, 122, 112, 122, 103, 119, 116, 119, 128, 107, 105, 126, 119, 113, 111, 99, 137, 121, 119, 127, 116, 116, 120, 114, 112, 117, 129, 123, 120, 105, 128, 127, 111, 113, 120, 121, 103, 119, 103, 101, 116, 129, 106, 117, 108, 124, 124, 116, 115, 124, 117, 138, 106, 115, 81, 112, 95, 115, 120, 112, 103, 132, 154, 122, 160, 118, 125, 116, 117, 105, 116, 114, 111, 95, 129, 124, 117, 128, 100, 124, 122, 115, 122, 116, 107, 101, 114, 112, 118, 113, 110, 118, 114, 114, 120, 114, 123, 115, 116, 110, 113, 125, 120, 107, 97, 112, 117, 110, 111, 98, 119, 118, 106, 115, 104, 116, 116, 117, 120, 112, 114, 112, 113, 113, 124, 119, 122, 133, 113, 119, 115, 108, 120, 102, 109, 120, 116, 117, 120, 110, 184, 121, 111, 118, 111, 133, 120, 117, 120, 108, 118, 126, 120, 125, 112, 119, 115, 141, 106, 109, 107, 124, 138, 113, 104, 143, 122, 112, 106, 127, 113, 125, 118, 129, 123, 113, 115, 102, 119, 127, 131, 112, 112, 113, 114, 113, 110, 124, 99, 111, 110, 108, 119, 114, 109, 111, 127, 110, 97, 113, 128, 121, 93, 118, 118, 111, 122, 126, 109, 116, 130, 113, 113, 110, 119, 114, 114, 109, 116, 115, 98, 111, 118, 161, 110, 112, 113, 115, 117, 120, 106, 113, 106, 118, 117, 102, 110, 99, 121, 110, 112, 114, 97, 125, 112, 121, 110, 115, 113, 130, 110, 88, 111, 105, 122, 104, 119, 79, 108, 114, 112, 105, 109, 122, 107, 125, 128, 122, 100, 114, 111, 100, 99, 114, 113, 102, 123, 109, 91, 113, 116, 112, 124, 107, 109, 116, 145, 112, 118, 101, 108, 110, 117, 101, 106, 154, 127, 116, 114, 110, 103, 90, 114, 119, 116, 143, 114, 123, 113, 132, 106, 127, 111, 132, 121, 124, 118, 116, 104, 110, 118, 123, 119, 120, 104, 111, 122, 114, 130, 111, 117, 111, 109, 109, 115, 110, 119, 112, 122, 121, 119, 117, 119, 113, 121, 120, 113, 123, 116, 105, 117, 114, 121, 119, 111, 123, 114, 120, 115, 112, 114, 129, 114, 113, 112, 113, 116, 115, 116, 112, 121, 117, 109, 105, 114, 117, 124, 114, 112, 106, 116, 119, 108, 126, 110, 117, 115, 118, 115, 120, 110, 111, 108, 111, 113, 110, 113, 130, 112, 104, 124, 124, 112, 114, 117, 116, 106, 107, 114, 109, 115, 123, 108, 116, 119, 110, 117, 119, 111, 99, 95, 111, 128, 121, 116, 111, 108, 130, 110, 115, 113, 108, 116, 124, 114, 104, 122, 119, 118, 155, 124, 89, 104, 115, 116, 114, 122, 111, 113, 113, 124, 109, 112, 116, 110, 116, 121, 104, 109, 110, 101, 122, 124, 112, 111, 115, 112, 121, 113, 96, 104, 111, 113, 122, 126, 120, 113, 109, 32, 129, 150, 100, 110, 105, 108, 127, 113, 110, 115, 115, 114, 118, 116, 115, 119, 114, 113, 109, 87, 119, 117, 107, 116, 116, 112, 120, 124, 81, 86, 115, 115, 116, 119, 112, 110, 117, 112, 106, 129, 121, 111, 134, 115, 121, 115, 94, 115, 112, 115, 106, 117, 114, 111, 120, 120, 115, 113, 116, 109, 113, 124, 113, 119, 108, 119, 129, 111, 132, 115, 112, 109, 102, 96, 105, 106, 122, 122, 107, 121, 118, 102, 109, 118, 119, 113, 106, 122, 121, 109, 107, 111, 114, 122, 121, 128, 116, 112, 112, 129, 117, 100, 105, 122, 128, 101, 110, 127, 110, 98, 110, 110, 115, 98, 104, 111, 130, 118, 107, 109, 122, 104, 115, 117, 112, 126, 126, 106, 112, 125, 123, 101, 110, 115, 104, 108, 123, 111, 135, 112, 109, 140, 114, 101, 123, 111, 127, 117, 112, 124, 114, 113, 124, 136, 109, 113, 124, 122, 106, 115, 126, 106, 121, 119, 115, 103, 110, 127, 127, 126, 99, 95, 133, 110, 117, 124, 129, 117, 117, 119, 99, 107, 135, 122, 112, 97, 136, 126, 110, 121, 115, 100, 115, 107, 114, 132, 120, 107, 102, 114, 108, 113, 136, 112, 112, 96, 106, 105, 120, 99, 104, 112, 126, 125, 108, 113, 122, 103, 107, 101, 99, 125, 124, 100, 135, 114, 121, 119, 125, 115, 119, 112, 114, 112, 114, 106, 105, 121, 110, 111, 106, 98, 119, 137, 134, 111, 128, 100, 114, 124, 113, 91, 109, 116, 113, 119, 100, 104, 131, 106, 112, 125, 125, 116, 130, 113, 135, 107, 108, 125, 99, 112, 109, 123, 104, 113, 107, 117, 120, 97, 112, 116, 107, 126, 118, 97, 111, 113, 105, 130, 115, 111, 129, 135, 135, 124, 105, 117, 139, 121, 125, 115, 112, 122, 110, 110, 123, 116, 106, 113, 120, 115, 121, 98, 100, 143, 151, 125, 119, 107, 120, 113, 128, 107, 135, 115, 113, 106, 137, 122, 140, 102, 111, 126, 125, 96, 118, 125, 134, 114, 117, 115, 121, 124, 108, 115, 112, 124, 118, 127, 122, 109, 118, 121, 120, 135, 109, 104, 111, 92, 97, 113, 113, 105, 112, 117, 118, 118, 120, 117, 118, 95, 115, 120, 123, 123, 118, 122, 124, 108, 121, 99, 117, 116, 119, 113, 105, 106, 100, 119, 131, 101, 99, 121, 118, 102, 103, 128, 126, 121, 104, 108, 114, 106, 116, 134, 101, 130, 110, 124, 110, 129, 115, 121, 119, 109, 101, 117, 98, 132, 117, 113, 117, 109, 103, 112, 114, 110, 124, 116, 117, 117, 124, 112, 101, 115, 110, 102, 133, 107, 148, 112, 130, 126, 107, 148, 122, 112, 121, 140, 116, 118, 92, 119, 107, 115, 128, 111, 113, 98, 126, 110, 118, 121, 144, 118, 124, 125, 105, 120, 121, 103, 110, 115, 128, 126, 112, 118, 122, 123, 120, 122, 115, 117, 103, 117, 145, 152, 130, 126, 128, 72, 114, 94, 120, 130, 127, 107, 112, 118, 121, 110, 120, 112, 110, 114, 126, 117, 119, 106, 121, 113, 137, 116, 112, 123, 128, 111, 116, 101, 106, 116, 115, 129, 122, 114, 139, 110, 115, 96, 142, 103, 101, 138, 110, 112, 107, 116, 119, 103, 123, 104, 117, 118, 119, 97, 111, 121, 110, 107, 115, 125, 129, 107, 105, 111, 118, 109, 119, 112, 94, 105, 147, 128, 132, 105, 118, 118, 127, 100, 110, 90, 120, 115, 118, 111, 106, 116, 128, 92, 128, 139, 110, 127, 108, 100, 116, 97, 128, 113, 124, 102, 117, 124, 105, 99, 124, 110, 118, 107, 118, 121, 118, 116, 115, 115, 116, 122, 125, 119, 103, 126, 122, 127, 104, 122, 115, 122, 122, 108, 123, 124, 110, 102, 143, 132, 98, 121, 118, 119, 104, 93, 118, 126, 117, 106, 109, 111, 129, 107, 113, 143, 110, 125, 106, 129, 96, 130, 118, 99, 120, 119, 123, 100, 135, 133, 117, 110, 117, 105, 114, 113, 116, 119, 116, 77, 113, 102, 114, 121, 114, 117, 103, 117, 121, 119, 123, 115, 91, 109, 128, 116, 120, 118, 128, 119, 126, 112, 109, 102, 105, 114, 120, 138, 120, 109, 134, 116, 114, 119, 173, 125, 106, 127, 120, 116, 120, 101, 110, 120, 105, 130, 89, 97, 154, 106, 107, 125, 105, 118, 128, 116, 106, 105, 99, 103, 112, 102, 137, 122, 117, 112, 101, 145, 107, 128, 128, 108, 117, 115, 117, 115, 167, 116, 106, 121, 119, 98, 120, 116, 118, 109, 97, 118, 128, 134, 134, 134, 114, 106, 127, 109, 107, 112, 120, 107, 108, 119, 117, 118, 108, 100, 133, 121, 101, 130, 118, 120, 108, 93, 127, 105, 124, 129, 133, 103, 106, 90, 124, 108, 130, 115, 109, 81, 123, 97, 113, 119, 116, 113, 126, 112, 108, 109, 127, 99, 122, 91, 135, 135, 124, 120, 141, 111, 118, 125, 94, 107, 115, 123, 109, 108, 107, 114, 118, 118, 117, 108, 123, 116, 121, 107, 117, 122, 107, 80, 131, 106, 111, 107, 121, 133, 87, 132, 130, 107, 107, 119, 128, 102, 125, 142, 126, 135, 114, 113, 118, 113, 114, 114, 117, 127, 77, 103, 144, 117, 127, 135, 114, 133, 104, 103, 121, 109, 113, 117, 102, 128, 110, 121, 127, 114, 117, 96, 113, 83, 99, 98, 116, 125, 110, 111, 118, 113, 129, 125, 120, 129, 115, 122, 121, 119, 119, 130, 99, 86, 129, 119, 106, 116, 90, 105, 121, 91, 112, 120, 114, 88, 120, 113, 110, 103, 100, 127, 115, 121, 104, 103, 117, 117, 104, 110, 105, 130, 114, 123, 113, 104, 110, 101, 113, 98, 120, 75, 133, 119, 132, 145, 116, 109, 124, 122, 114, 125, 116, 129, 107, 98, 117, 109, 114, 99, 78, 135, 112, 98, 106, 118, 108, 130, 130, 110, 121, 127, 111, 122, 114, 116, 119, 126, 110, 105, 101, 134, 123, 117, 116, 123, 121, 118, 122, 110, 129, 129, 124, 111, 106, 120, 111, 94, 104, 99, 107, 114, 134, 114, 118, 114, 113, 105, 126, 117, 99, 118, 147, 88, 93, 115, 94, 95, 135, 109, 88, 114, 109, 123, 125, 102, 101, 103, 120, 115, 116, 108, 115, 88, 112, 127, 102, 111, 109, 113, 122, 122, 104, 130, 123, 123, 115, 68, 121, 129, 105, 129, 126, 126, 99, 109, 108, 113, 125, 104, 113, 158, 115, 125, 110, 118, 108, 89, 113, 103, 96, 133, 101, 125, 105, 124, 107, 118, 114, 111, 102, 128, 124, 122, 105, 114, 122, 112, 97, 129, 130, 104, 128, 111, 107, 121, 121, 134, 110, 106, 127, 122, 101, 105, 122, 124, 126, 119, 117, 104, 107, 105, 123, 111, 112, 121, 109, 112, 114, 138, 111, 109, 103, 140, 113, 117, 117, 111, 115, 113, 123, 125, 115, 118, 109, 119, 121, 114, 96, 122, 112, 120, 119, 124, 98, 116, 123, 119, 122, 117, 107, 116, 116, 121, 114, 130, 104, 115, 122, 131, 112, 124, 100, 124, 117, 110, 120, 116, 109, 119, 114, 122, 111, 122, 112, 132, 120, 114, 116, 121, 127, 103, 113, 128, 121, 123, 105, 112, 109, 116, 125, 122, 114, 119, 115, 108, 120, 113, 116, 107, 117, 122, 110, 131, 116, 113, 120, 112, 115, 128, 120, 128, 115, 121, 111, 122, 119, 121, 125, 123, 119, 119, 109, 106, 111, 115, 110, 127, 117, 120, 120, 118, 119, 108, 115, 109, 119, 113, 125, 124, 122, 101, 117, 114, 123, 71, 115, 114, 116, 111, 118, 102, 114, 113, 118, 121, 121, 117, 109, 123, 92, 128, 126, 112, 111, 118, 117, 119, 120, 124, 127, 129, 108, 108, 133, 109, 107, 118, 129, 121, 113, 110, 115, 120, 110, 120, 126, 135, 112, 122, 119, 119, 110, 132, 123, 114, 122, 109, 118, 112, 120, 128, 113, 110, 116, 115, 113, 120, 98, 123, 117, 128, 105, 134, 125, 118, 102, 112, 115, 120, 116, 115, 115, 106, 125, 122, 116, 117, 109, 106, 118, 122, 116, 118, 110, 114, 119, 115, 124, 98, 115, 111, 120, 121, 121, 116, 125, 94, 110, 114, 123, 107, 107, 122, 115, 128, 117, 120, 108, 120, 118, 114, 111, 120, 111, 120, 125, 115, 114, 108, 134, 120, 120, 112, 107, 135, 95, 113, 107, 114, 154, 121, 119, 111, 121, 106, 119, 118, 127, 115, 111, 120, 116, 125, 126, 115, 111, 119, 119, 127, 110, 143, 94, 113, 117, 127, 130, 114, 113, 108, 123, 124, 115, 107, 120, 119, 114, 111, 119, 104, 119, 77, 107, 112, 116, 117, 112, 120, 116, 108, 120, 106, 115, 118, 116, 124, 111, 116, 117, 109, 114, 112, 148, 120, 117, 115, 116, 118, 112, 126, 112, 117, 120, 112, 117, 113, 113, 117, 117, 113, 109, 118, 114, 109, 112, 95, 118, 115, 114, 108, 108, 119, 119, 118, 132, 119, 120, 134, 115, 140, 121, 124, 113, 113, 118, 120, 109, 112, 126, 120, 116, 102, 113, 110, 117, 113, 117, 119, 119, 111, 110, 116, 117, 118, 122, 133, 121, 117, 121, 117, 131, 114, 118, 133, 124, 128, 104, 118, 119, 119, 122, 119, 115, 111, 129, 122, 101, 212, 120, 110, 118, 125, 120, 111, 119, 111, 126, 106, 117, 119, 130, 115, 126, 117, 124, 121, 119, 118, 111, 108, 121, 112, 114, 120, 110, 118, 114, 120, 116, 110, 115, 108, 123, 118, 117, 115, 117, 116, 112, 118, 108, 111, 108, 120, 124, 110, 125, 113, 109, 116, 118, 119, 116, 124, 109, 111, 120, 120, 124, 112, 117, 121, 96, 124, 114, 107, 121, 120, 113, 115, 109, 114, 105, 113, 109, 125, 116, 121, 109, 112, 108, 117, 110, 102, 118, 117, 124, 111, 111, 96, 126, 118, 119, 105, 113, 116, 123, 119, 110, 108, 118, 120, 112, 129, 123, 126, 120, 128, 117, 120, 121, 121, 119, 107, 117, 119, 133, 118, 115, 117, 119, 135, 97, 111, 133, 86, 117, 131, 126, 112, 104, 113, 118, 106, 113, 115, 91, 127, 122, 103, 123, 112, 123, 120, 120, 114, 120, 114, 144, 119, 122, 125, 119, 127, 117, 108, 122, 127, 116, 109, 125, 113, 107, 139, 112, 124, 121, 118, 121, 131, 118, 121, 126, 109, 92, 109, 131, 104, 113, 113, 118, 103, 102, 126, 113, 122, 110, 109, 106, 130, 124, 111, 111, 133, 110, 111, 125, 118, 127, 116, 122, 110, 123, 103, 120, 120, 111, 125, 105, 96, 135, 103, 112, 111, 115, 101, 120, 122, 107, 121, 106, 126, 124, 114, 116, 117, 99, 128, 120, 115, 109, 129, 125, 129, 120, 120, 125, 112, 113, 125, 113, 117, 120, 128, 114, 123, 99, 99, 105, 120, 111, 117, 116, 124, 118, 111, 102, 120, 108, 109, 112, 118, 125, 131, 101, 112, 118, 106, 142, 97, 113, 120, 131, 121, 104, 106, 104, 119, 113, 110, 102, 117, 109, 105, 117, 118, 118, 106, 113, 103, 120, 98, 108, 112, 128, 114, 111, 120, 128, 78, 115, 115, 113, 98, 112, 109, 123, 128, 109, 105, 96, 93, 122, 123, 106, 112, 105, 127, 144, 133, 116, 102, 125, 110, 126, 109, 99, 127, 107, 111, 116, 119, 106, 119, 125, 115, 123, 115, 118, 108, 107, 112, 114, 114, 117, 118, 116, 117, 115, 136, 113, 107, 126, 112, 122, 111, 130, 107, 118, 117, 115, 112, 100, 120, 134, 115, 122, 91, 128, 108, 97, 110, 119, 115, 119, 121, 113, 120, 116, 110, 116, 119, 113, 123, 123, 125, 105, 105, 137, 124, 100, 119, 124, 101, 115, 116, 114, 123, 114, 99, 111, 113, 119, 112, 102, 119, 116, 119, 117, 107, 126, 119, 114, 123, 84, 112, 95, 124, 113, 120, 115, 99, 120, 125, 106, 112, 115, 108, 124, 122, 115, 117, 111, 119, 116, 122, 118, 131, 122, 110, 126, 121, 116, 120, 110, 130, 132, 123, 107, 113, 124, 111, 111, 114, 128, 117, 117, 108, 111, 107, 120, 104, 111, 117, 120, 114, 128, 113, 115, 107, 101, 116, 102, 110, 126, 122, 107, 114, 110, 123, 110, 114, 119, 130, 111, 91, 124, 113, 118, 124, 125, 110, 114, 111, 105, 111, 112, 120, 126, 118, 126, 116, 120, 120, 117, 111, 100, 108, 110, 101, 130, 111, 111, 122, 114, 116, 121, 126, 103, 136, 131, 112, 107, 114, 128, 113, 100, 125, 135, 114, 132, 109, 133, 127, 100, 109, 124, 118, 114, 100, 112, 111, 136, 120, 104, 115, 121, 103, 124, 103, 112, 123, 105, 111, 120, 119, 119, 113, 101, 129, 95, 119, 123, 125, 125, 119, 129, 98, 135, 123, 134, 119, 105, 95, 125, 125, 116, 121, 117, 112, 122, 111, 110, 115, 111, 115, 134, 102, 120, 118, 129, 123, 117, 119, 111, 108, 118, 115, 106, 110, 127, 126, 111, 131, 105, 128, 116, 118, 120, 129, 106, 121, 129, 113, 101, 118, 107, 124, 122, 123, 113, 112, 123, 112, 117, 129, 136, 102, 108, 126, 112, 108, 109, 113, 117, 99, 110, 108, 121, 111, 108, 124, 120, 133, 110, 126, 118, 116, 103, 114, 89, 136, 107, 114, 113, 141, 110, 116, 124, 114, 117, 105, 113, 142, 157, 121, 110, 104, 111, 99, 124, 113, 115, 113, 112, 109, 105, 114, 121, 116, 117, 109, 107, 111, 116, 116, 106, 125, 127, 101, 125, 116, 124, 116, 144, 117, 104, 128, 110, 120, 104, 119, 111, 123, 113, 114, 101, 109, 120, 127, 123, 102, 107, 122, 122, 126, 90, 110, 124, 120, 110, 106, 116, 127, 109, 111, 112, 109, 126, 117, 124, 128, 120, 117, 111, 122, 112, 132, 111, 117, 121, 106, 112, 112, 114, 138, 104, 127, 125, 119, 123, 108, 121, 105, 118, 126, 121, 115, 116, 121, 113, 127, 124, 123, 112, 100, 122, 111, 120, 114, 124, 122, 105, 103, 113, 130, 104, 116, 117, 107, 106, 113, 116, 117, 148, 128, 132, 120, 126, 113, 117, 121, 101, 110, 103, 102, 127, 100, 126, 110, 136, 124, 122, 109, 125, 122, 125, 120, 111, 119, 103, 113, 130, 114, 119, 110, 114, 102, 113, 110, 103, 117, 109, 108, 119, 106, 118, 109, 127, 106, 110, 106, 121, 109, 117, 109, 115, 111, 97, 120, 116, 106, 113, 116, 127, 116, 115, 109, 103, 125, 125, 120, 119, 113, 122, 133, 124, 127, 118, 130, 115, 118, 111, 105, 124, 117, 113, 115, 139, 105, 105, 135, 96, 100, 127, 118, 124, 104, 116, 126, 119, 129, 126, 128, 119, 106, 122, 104, 122, 111, 113, 108, 103, 88, 121, 112, 119, 102, 88, 119, 117, 123, 109, 128, 125, 110, 117, 117, 120, 99, 110, 103, 119, 107, 116, 109, 110, 104, 129, 128, 115, 112, 113, 112, 125, 116, 124, 119, 110, 106, 117, 121, 118, 107, 125, 124, 124, 141, 122, 125, 130, 119, 100, 121, 108, 111, 117, 115, 119, 111, 121, 114, 114, 122, 120, 114, 120, 126, 116, 123, 107, 111, 113, 116, 118, 117, 120, 135, 108, 117, 103, 118, 121, 124, 125, 101, 120, 121, 120, 123, 116, 126, 107, 114, 116, 88, 97, 118, 116, 103, 129, 112, 116, 132, 113, 121, 119, 101, 122, 104, 114, 103, 122, 100, 113, 143, 116, 115, 106, 115, 116, 107, 117, 118, 131, 118, 113, 99, 121, 96, 122, 123, 96, 111, 105, 116, 125, 105, 104, 104, 99, 110, 119, 111, 105, 107, 104, 113, 113, 112, 117, 134, 116, 110, 112, 112, 115, 101, 96, 116, 110, 119, 117, 119, 110, 122, 117, 112, 115, 113, 115, 122, 109, 108, 117, 104, 107, 139, 99, 123, 109, 126, 101, 111, 118, 118, 129, 113, 119, 115, 117, 94, 128, 117, 119, 119, 116, 110, 116, 101, 99, 112, 120, 94, 110, 118, 113, 105, 123, 118, 112, 123, 125, 116, 106, 110, 122, 116, 110, 130, 123, 111, 118, 109, 122, 121, 100, 101, 135, 129, 130, 126, 95, 131, 119, 128, 110, 108, 124, 117, 124, 118, 114, 111, 95, 105, 110, 108, 105, 105, 118, 115, 108, 113, 118, 117, 139, 116, 116, 113, 122, 116, 114, 118, 139, 125, 128, 115, 125, 136, 113, 128, 114, 120, 113, 127, 122, 123, 113, 113, 94, 119, 123, 116, 115, 111, 118, 114, 125, 102, 119, 94, 129, 101, 133, 126, 109, 119, 125, 111, 118, 98, 119, 122, 118, 100, 108, 113, 115, 119, 125, 116, 135, 117, 116, 112, 116, 109, 117, 114, 118, 102, 124, 112, 120, 116, 132, 116, 108, 140, 140, 107, 116, 136, 115, 116, 124, 113, 94, 119, 100, 119, 127, 123, 112, 118, 118, 112, 125, 112, 108, 110, 117, 112, 135, 111, 116, 119, 112, 121, 109, 118, 122, 112, 109, 116, 124, 79, 87, 128, 130, 118, 107, 113, 117, 124, 117, 109, 105, 124, 107, 127, 119, 133, 110, 111, 114, 117, 119, 118, 119, 132, 116, 110, 130, 120, 119, 121, 117, 120, 114, 108, 119, 109, 114, 103, 125, 120, 112, 122, 134, 117, 112, 106, 119, 125, 121, 113, 112, 93, 127, 117, 108, 122, 111, 120, 126, 113, 154, 120, 106, 84, 127, 108, 114, 150, 126, 118, 117, 111, 125, 118, 107, 122, 112, 112, 124, 117, 104, 121, 117, 112, 124, 127, 128, 116, 131, 131, 122, 118, 106, 113, 115, 115, 105, 125, 115, 118, 107, 111, 110, 110, 128, 115, 124, 116, 143, 112, 106, 112, 116, 108, 114, 126, 130, 112, 111, 120, 120, 138, 120, 118, 112, 118, 121, 121, 115, 104, 121, 112, 115, 120, 121, 110, 121, 120, 117, 114, 108, 114, 135, 138, 112, 131, 127, 111, 114, 120, 116, 114, 125, 122, 113, 146, 92, 107, 118, 118, 120, 120, 119, 111, 124, 118, 108, 117, 124, 116, 122, 144, 110, 108, 108, 121, 109, 118, 116, 103, 117, 85, 113, 121, 116, 113, 105, 108, 109, 109, 119, 110, 112, 116, 117, 119, 108, 124, 123, 111, 127, 99, 107, 117, 115, 107, 107, 122, 119, 93, 122, 104, 114, 125, 116, 130, 111, 127, 117, 124, 100, 134, 107, 108, 112, 107, 121, 116, 109, 106, 139, 104, 123, 118, 93, 124, 109, 125, 104, 118, 122, 115, 138, 114, 142, 120, 118, 111, 111, 120, 110, 111, 112, 113, 111, 117, 107, 108, 105, 111, 108, 105, 104, 115, 113, 117, 114, 119, 118, 117, 117, 123, 102, 125, 122, 116, 127, 101, 119, 120, 121, 113, 114, 124, 115, 115, 126, 119, 112, 125, 107, 120, 121, 116, 115, 122, 111, 128, 105, 121, 114, 89, 111, 133, 120, 118, 115, 113, 120, 126, 111, 101, 123, 115, 116, 118, 121, 113, 108, 108, 120, 113, 110, 113, 140, 119, 111, 106, 112, 119, 98, 111, 117, 121, 110, 114, 119, 130, 112, 133, 110, 111, 137, 121, 116, 108, 117, 109, 129, 119, 120, 102, 127, 110, 114, 124, 121, 117, 114, 116, 126, 118, 111, 114, 120, 112, 117, 119, 124, 114, 108, 122, 115, 92, 121, 122, 128, 116, 108, 108, 111, 109, 127, 112, 117, 126, 125, 97, 114, 96, 105, 127, 125, 109, 112, 116, 112, 121, 118, 114, 106, 104, 116, 112, 109, 112, 95, 143, 118, 109, 101, 118, 129, 106, 130, 110, 124, 121, 134, 103, 112, 128, 129, 135, 128, 106, 118, 141, 113, 123, 103, 124, 98, 103, 106, 115, 114, 107, 125, 107, 132, 125, 106, 122, 103, 121, 128, 112, 105, 113, 155, 121, 100, 123, 112, 113, 128, 120, 113, 118, 140, 114, 124, 117, 126, 117, 116, 121, 110, 109, 121, 115, 104, 108, 122, 113, 115, 110, 114, 119, 125, 125, 103, 108, 110, 112, 115, 113, 97, 126, 97, 109, 117, 103, 113, 117, 115, 109, 103, 112, 104, 126, 119, 116, 103, 113, 141, 107, 114, 117, 121, 124, 118, 116, 125, 105, 112, 124, 119, 124, 126, 89, 115, 115, 124, 135, 124, 125, 122, 122, 119, 123, 116, 97, 113, 118, 109, 91, 123, 121, 142, 119, 116, 103, 136, 109, 125, 109, 105, 111, 106, 108, 76, 113, 124, 103, 110, 115, 118, 127, 103, 110, 117, 106, 113, 110, 131, 113, 114, 111, 122, 116, 123, 118, 114, 110, 115, 114, 117, 125, 121, 121, 124, 121, 106, 114, 113, 145, 119, 114, 116, 111, 120, 100, 110, 130, 103, 112, 145, 117, 108, 99, 118, 124, 111, 117, 111, 112, 114, 138, 109, 107, 116, 102, 115, 127, 108, 95, 115, 94, 108, 113, 121, 129, 121, 115, 143, 116, 107, 119, 99, 107, 108, 131, 131, 123, 91, 122, 110, 134, 114, 120, 116, 109, 119, 131, 102, 111, 108, 121, 105, 120, 110, 114, 111, 105, 122, 117, 104, 109, 102, 118, 104, 111, 117, 109, 117, 114, 98, 115, 120, 137, 111, 133, 130, 133, 117, 124, 109, 125, 106, 125, 139, 120, 122, 103, 124, 131, 126, 114, 151, 113, 106, 125, 97, 123, 96, 122, 111, 124, 115, 105, 116, 112, 126, 111, 121, 114, 113, 113, 117, 114, 109, 112, 102, 120, 111, 130, 110, 100, 109, 106, 113, 133, 111, 107, 125, 123, 123, 107, 124, 131, 102, 148, 125, 117, 118, 112, 115, 125, 122, 115, 111, 121, 104, 122, 116, 116, 126, 132, 116, 121, 112, 113, 116, 91, 110, 114, 136, 130, 118, 114, 111, 127, 111, 138, 95, 113, 105, 97, 125, 121, 130, 113, 113, 126, 105, 106, 104, 110, 129, 106, 116, 106, 114, 100, 108, 104, 110, 120, 124, 140, 125, 114, 118, 107, 123, 121, 120, 118, 126, 111, 108, 104, 136, 101, 106, 113, 117, 123, 109, 143, 113, 102, 117, 115, 125, 117, 112, 109, 114, 128, 115, 120, 114, 104, 140, 94, 106, 127, 129, 109, 100, 121, 131, 113, 102, 111, 137, 112, 114, 119, 107, 115, 115, 101, 127, 124, 120, 89, 112, 103, 142, 111, 113, 114, 128, 98, 110, 127, 106, 121, 92, 114, 110, 113, 120, 111, 120, 104, 125, 123, 114, 134, 117, 116, 106, 126, 126, 111, 109, 124, 104, 104, 105, 113, 121, 99, 118, 139, 108, 94, 109, 119, 106, 112, 110, 125, 134, 121, 122, 122, 134, 105, 101, 117, 113, 107, 115, 114, 111, 108, 112, 107, 102, 104, 121, 97, 120, 107, 116, 125, 129, 116, 102, 112, 130, 116, 134, 112, 114, 114, 122, 106, 92, 120, 119, 135, 128, 103, 104, 102, 91, 105, 112, 133, 108, 119, 129, 109, 110, 113, 109, 112, 101, 111, 120, 125, 119, 120, 114, 121, 123, 135, 136, 112, 120, 129, 123, 117, 101, 97, 112, 92, 118, 127, 112, 98, 121, 113, 117, 124, 120, 119, 103, 97, 122, 118, 131, 127, 104, 119, 117, 119, 110, 118, 110, 112, 127, 137, 120, 114, 108, 104, 105, 145, 109, 111, 131, 119, 131, 116, 116, 128, 131, 127, 134, 114, 131, 107, 127, 121, 89, 121, 122, 111, 101, 125, 98, 110, 108, 104, 108, 108, 109, 102, 116, 126, 118, 113, 117, 135, 103, 128, 117, 112, 110, 106, 108, 111, 130, 108, 131, 108, 113, 118, 129, 122, 105, 119, 110, 120, 121, 121, 112, 113, 117, 110, 114, 113, 115, 117, 112, 123, 126, 113, 131, 108, 125, 96, 119, 123, 115, 139, 118, 120, 101, 130, 126, 116, 97, 113, 105, 135, 114, 108, 116, 103, 113, 106, 108, 95, 127, 114, 130, 116, 108, 140, 125, 129, 120, 131, 108, 112, 109, 115, 118, 100, 121, 116, 113, 111, 122, 116, 108, 107, 108, 126, 114, 112, 104, 135, 118, 118, 108, 112, 114, 152, 86, 126, 98, 111, 134, 126, 116, 126, 101, 123, 127, 128, 111, 101, 118, 134, 98, 136, 98, 109, 108, 126, 109, 95, 124, 118, 112, 102, 125, 122, 120, 136, 108, 143, 133, 100, 105, 109, 120, 108, 111, 115, 123, 130, 99, 99, 113, 102, 108, 122, 114, 105, 119, 116, 120, 95, 116, 125, 108, 126, 110, 116, 125, 114, 126, 109, 113, 110, 129, 107, 131, 82, 99, 95, 129, 115, 123, 116, 117, 119, 116, 109, 105, 132, 113, 121, 106, 124, 100, 117, 117, 109, 122, 145, 114, 129, 123, 115, 122, 133, 103, 116, 116, 108, 100, 121, 102, 114, 136, 119, 120, 118, 114, 115, 114, 100, 119, 109, 106, 111, 120, 120, 123, 140, 122, 116, 120, 102, 119, 111, 121, 109, 126, 119, 108, 109, 131, 131, 99, 132, 121, 119, 113, 126, 122, 126, 110, 119, 118, 106, 116, 133, 94, 111, 107, 109, 116, 104, 123, 124, 134, 135, 132, 122, 117, 136, 107, 118, 119, 118, 120, 124, 133, 112, 110, 122, 118, 106, 157, 98, 102, 99, 109, 120, 109, 114, 92, 98, 108, 113, 117, 119, 92, 111, 123, 108, 129, 116, 108, 114, 106, 122, 100, 115, 141, 114, 88, 115, 108, 125, 107, 115, 138, 120, 109, 131, 102, 107, 115, 124, 117, 121, 105, 105, 97, 118, 130, 106, 107, 109, 114, 114, 113, 122, 124, 125, 113, 119, 116, 99, 111, 125, 92, 115, 85, 104, 134, 120, 114, 108, 122, 121, 106, 108, 112, 134, 124, 114, 118, 127, 100, 111, 122, 106, 104, 113, 112, 111, 108, 118, 98, 119, 104, 117, 109, 130, 134, 110, 132, 105, 119, 121, 112, 118, 117, 114, 118, 114, 106, 136, 121, 122, 127, 121, 108, 105, 104, 123, 115, 120, 105, 116, 127, 120, 108, 115, 121, 126, 110, 113, 107, 113, 107, 136, 116, 106, 120, 111, 117, 116, 118, 113, 112, 111, 123, 115, 109, 120, 116, 120, 120, 117, 110, 115, 115, 119, 127, 110, 112, 113, 122, 118, 113, 122, 121, 118, 112, 119, 113, 118, 115, 120, 117, 132, 125, 118, 119, 112, 116, 112, 117, 125, 128, 112, 122, 115, 113, 121, 112, 113, 108, 113, 122, 117, 120, 105, 117, 109, 118, 119, 100, 123, 117, 107, 123, 113, 114, 135, 115, 119, 116, 112, 118, 106, 130, 112, 117, 129, 117, 115, 122, 117, 113, 103, 110, 116, 117, 122, 117, 113, 128, 117, 134, 99, 118, 116, 112, 117, 126, 122, 115, 123, 112, 130, 102, 114, 112, 116, 114, 112, 121, 109, 119, 109, 106, 127, 117, 119, 104, 111, 124, 117, 115, 111, 116, 114, 121, 135, 110, 109, 106, 120, 130, 117, 105, 122, 112, 114, 114, 115, 112, 113, 111, 103, 121, 116, 115, 123, 124, 108, 110, 114, 112, 117, 114, 121, 121, 120, 108, 112, 116, 106, 113, 117, 105, 112, 115, 117, 114, 119, 108, 116, 114, 112, 109, 118, 121, 119, 117, 113, 108, 108, 111, 117, 137, 101, 104, 117, 121, 104, 114, 123, 121, 122, 125, 116, 119, 113, 126, 118, 116, 121, 119, 112, 122, 112, 120, 118, 107, 119, 109, 103, 116, 113, 114, 109, 115, 122, 127, 117, 119, 110, 121, 122, 120, 77, 121, 118, 120, 127, 119, 113, 112, 118, 119, 128, 110, 130, 128, 113, 117, 108, 117, 104, 115, 123, 110, 107, 119, 119, 131, 97, 110, 116, 118, 122, 114, 125, 119, 107, 122, 118, 117, 116, 124, 118, 112, 117, 123, 111, 127, 120, 119, 117, 120, 118, 123, 118, 119, 125, 108, 115, 124, 113, 112, 114, 114, 109, 113, 122, 117, 118, 123, 125, 114, 118, 120, 106, 120, 119, 101, 113, 116, 116, 103, 111, 125, 114, 124, 121, 125, 121, 119, 105, 110, 120, 122, 124, 98, 107, 122, 117, 126, 110, 120, 103, 134, 119, 121, 110, 120, 112, 107, 119, 105, 115, 124, 112, 115, 125, 117, 111, 116, 112, 118, 118, 116, 117, 104, 116, 105, 98, 116, 121, 116, 111, 117, 126, 116, 113, 108, 112, 111, 114, 116, 113, 121, 115, 116, 131, 117, 112, 115, 115, 119, 119, 118, 122, 112, 119, 110, 122, 117, 125, 125, 107, 120, 113, 115, 113, 121, 116, 116, 122, 116, 109, 117, 119, 114, 124, 110, 124, 115, 123, 102, 123, 113, 125, 106, 124, 123, 118, 122, 110, 132, 120, 117, 119, 115, 107, 115, 114, 113, 166, 104, 122, 114, 125, 111, 107, 109, 105, 125, 116, 122, 111, 107, 108, 114, 115, 125, 102, 109, 115, 125, 106, 118, 127, 116, 128, 117, 118, 117, 126, 112, 112, 119, 106, 115, 113, 116, 127, 119, 111, 114, 113, 118, 116, 114, 117, 119, 113, 112, 115, 121, 112, 117, 116, 116, 122, 117, 122, 106, 113, 115, 106, 120, 116, 117, 114, 113, 122, 119, 127, 114, 115, 115, 114, 115, 119, 121, 115, 115, 119, 118, 115, 127, 117, 114, 122, 109, 118, 118, 110, 112, 116, 115, 113, 119, 106, 121, 128, 115, 116, 117, 115, 117, 117, 109, 105, 117, 116, 119, 113, 112, 117, 111, 106, 114, 120, 93, 119, 117, 112, 115, 111, 113, 116, 115, 116, 119, 119, 118, 114, 114, 116, 115, 114, 116, 115, 115, 114, 116, 117, 113, 107, 122, 117, 115, 119, 116, 114, 111, 118, 94, 108, 116, 119, 121, 116, 112, 112, 116, 112, 122, 120, 115, 116, 133, 116, 117, 116, 118, 115, 117, 111, 117, 126, 114, 109, 112, 118, 118, 112, 117, 112, 119, 122, 118, 125, 115, 116, 113, 116, 109, 118, 116, 125, 125, 120, 113, 114, 117, 112, 113, 116, 114, 116, 116, 114, 113, 117, 122, 108, 117, 119, 111, 117, 117, 120, 112, 116, 115, 107, 119, 113, 121, 112, 115, 112, 114, 119, 116, 117, 117, 113, 113, 117, 119, 108, 121, 120, 116, 120, 118, 118, 95, 122, 113, 114, 99, 120, 111, 111, 119, 116, 116, 116, 114, 114, 113, 122, 113, 114, 120, 123, 110, 115, 114, 117, 119, 119, 118, 116, 113, 119, 116, 115, 117, 113, 110, 116, 116, 119, 116, 108, 115, 118, 110, 113, 114, 115, 113, 120, 113, 128, 121, 113, 117, 119, 111, 118, 118, 123, 117, 114, 122, 112, 120, 119, 118, 116, 111, 119, 119, 116, 120, 110, 104, 121, 123, 118, 114, 117, 131, 112, 117, 115, 127, 115, 117, 115, 110, 116, 112, 109, 112, 111, 117, 125, 113, 114, 121, 117, 112, 115, 114, 115, 120, 114, 113, 120, 105, 120, 119, 127, 118, 111, 119, 112, 118, 117, 117, 115, 118, 122, 114, 111, 115, 116, 111, 114, 116, 116, 120, 116, 109, 115, 115, 120, 115, 110, 125, 119, 122, 113, 109, 118, 118, 113, 111, 117, 116, 119, 114, 118, 116, 106, 119, 118, 113, 113, 120, 118, 113, 123, 108, 105, 120, 113, 114, 130, 118, 116, 118, 128, 119, 115, 119, 116, 116, 118, 116, 111, 120, 122, 114, 113, 116, 120, 126, 118, 113, 119, 105, 115, 109, 117, 110, 115, 120, 115, 116, 114, 108, 117, 112, 114, 115, 111, 118, 115, 117, 116, 109, 117, 115, 119, 122, 117, 112, 109, 108, 116, 106, 110, 116, 117, 121, 113, 109, 112, 115, 115, 118, 112, 112, 118, 114, 118, 115, 117, 125, 118, 125, 119, 120, 102, 109, 118, 112, 115, 122, 122, 113, 118, 119, 117, 110, 121, 110, 124, 113, 113, 118, 114, 120, 115, 115, 120, 113, 129, 117, 117, 118, 118, 111, 112, 117, 111, 121, 115, 114, 124, 115, 116, 117, 118, 120, 116, 115, 109, 114, 119, 115, 116, 112, 115, 114, 116, 112, 117, 123, 115, 111, 113, 121, 119, 111, 113, 105, 117, 121, 121, 121, 114, 123, 115, 125, 104, 112, 121, 123, 119, 118, 120, 118, 117, 122, 111, 108, 74, 112, 130, 97, 119, 117, 90, 114, 101, 119, 135, 100, 111, 121, 111, 108, 117, 124, 95, 107, 99, 116, 156, 119, 101, 103, 115, 113, 114, 121, 134, 114, 111, 124, 126, 111, 104, 122, 110, 120, 136, 106, 110, 132, 123, 118, 119, 121, 110, 115, 108, 111, 110, 118, 109, 122, 155, 127, 107, 123, 117, 121, 119, 121, 146, 121, 114, 104, 130, 116, 122, 111, 120, 114, 109, 131, 103, 128, 113, 113, 107, 124, 103, 122, 118, 122, 114, 120, 114, 131, 115, 107, 114, 107, 124, 115, 132, 111, 117, 120, 114, 123, 128, 114, 119, 124, 127, 123, 114, 118, 105, 122, 119, 117, 118, 118, 119, 114, 110, 105, 118, 109, 98, 120, 141, 118, 112, 137, 108, 118, 113, 119, 120, 109, 109, 120, 112, 116, 114, 110, 116, 127, 111, 116, 119, 118, 123, 110, 120, 98, 126, 128, 108, 103, 110, 111, 115, 100, 123, 117, 113, 127, 105, 117, 128, 114, 116, 116, 107, 120, 121, 112, 106, 122, 112, 106, 121, 111, 117, 137, 154, 110, 104, 119, 115, 112, 122, 120, 114, 110, 109, 114, 109, 113, 102, 119, 117, 126, 126, 116, 102, 114, 131, 124, 126, 121, 127, 120, 107, 118, 114, 156, 119, 121, 129, 116, 92, 106, 112, 122, 120, 109, 90, 121, 114, 105, 107, 108, 107, 118, 125, 123, 117, 102, 118, 137, 107, 122, 123, 85, 137, 115, 111, 111, 120, 106, 112, 114, 111, 106, 130, 109, 109, 130, 119, 114, 101, 119, 113, 110, 127, 116, 118, 122, 107, 120, 116, 108, 128, 109, 93, 105, 110, 99, 118, 117, 102, 109, 133, 127, 108, 115, 105, 117, 87, 137, 120, 110, 118, 118, 108, 118, 114, 122, 110, 103, 131, 108, 119, 138, 126, 127, 107, 121, 116, 103, 100, 107, 109, 116, 123, 114, 108, 116, 110, 112, 126, 109, 100, 106, 112, 114, 143, 123, 78, 106, 117, 106, 101, 105, 115, 119, 109, 117, 119, 114, 124, 117, 109, 107, 108, 116, 119, 117, 118, 115, 126, 125, 116, 118, 107, 133, 101, 125, 111, 108, 116, 111, 109, 111, 102, 117, 101, 108, 111, 96, 113, 118, 112, 129, 98, 103, 109, 117, 104, 100, 118, 123, 116, 117, 96, 115, 115, 121, 108, 114, 123, 106, 95, 111, 119, 115, 114, 112, 128, 108, 121, 114, 120, 111, 117, 115, 128, 111, 115, 119, 123, 105, 100, 113, 106, 134, 135, 101, 117, 111, 122, 125, 110, 119, 123, 124, 119, 103, 113, 117, 101, 113, 114, 124, 114, 103, 109, 116, 115, 124, 126, 105, 119, 110, 116, 99, 119, 100, 130, 110, 109, 119, 122, 112, 109, 113, 123, 125, 109, 146, 125, 107, 118, 100, 112, 122, 107, 104, 114, 117, 116, 116, 110, 114, 124, 120, 117, 114, 118, 138, 118, 114, 131, 128, 107, 120, 108, 114, 107, 131, 124, 124, 119, 116, 120, 96, 96, 128, 120, 131, 116, 123, 98, 111, 108, 114, 118, 116, 124, 124, 122, 124, 117, 114, 122, 109, 99, 120, 110, 113, 112, 113, 120, 142, 126, 113, 110, 112, 130, 123, 122, 118, 111, 108, 116, 115, 135, 113, 117, 108, 114, 123, 105, 124, 110, 125, 122, 106, 112, 120, 96, 122, 112, 101, 123, 108, 103, 110, 118, 116, 115, 128, 116, 108, 97, 121, 123, 119, 121, 148, 108, 122, 104, 120, 122, 121, 120, 123, 107, 99, 110, 131, 112, 115, 121, 116, 119, 119, 107, 115, 131, 116, 115, 124, 114, 129, 100, 132, 119, 103, 128, 122, 114, 123, 141, 110, 123, 120, 112, 116, 109, 113, 131, 121, 142, 107, 116, 107, 103, 104, 113, 125, 113, 115, 100, 118, 112, 112, 116, 134, 104, 116, 119, 118, 109, 114, 113, 108, 120, 112, 131, 130, 140, 123, 109, 116, 97, 117, 109, 126, 124, 118, 94, 131, 107, 117, 114, 119, 124, 123, 125, 120, 115, 113, 110, 121, 116, 119, 140, 117, 115, 120, 113, 108, 99, 115, 123, 114, 107, 110, 129, 122, 100, 121, 118, 106, 121, 128, 110, 108, 110, 111, 109, 107, 123, 127, 105, 128, 110, 103, 115, 116, 105, 105, 118, 130, 111, 112, 102, 109, 120, 106, 130, 115, 114, 110, 108, 115, 106, 120, 134, 122, 107, 121, 120, 109, 118, 109, 122, 110, 119, 112, 111, 112, 119, 144, 106, 108, 128, 139, 120, 128, 133, 125, 102, 116, 131, 112, 133, 132, 127, 123, 102, 121, 122, 123, 108, 127, 105, 115, 138, 106, 112, 113, 126, 103, 114, 117, 129, 109, 97, 116, 114, 118, 111, 123, 115, 115, 110, 117, 134, 124, 113, 121, 127, 125, 127, 121, 121, 108, 108, 122, 129, 125, 102, 121, 116, 131, 107, 123, 110, 102, 106, 130, 112, 111, 105, 116, 116, 120, 134, 120, 112, 117, 118, 104, 104, 115, 109, 133, 113, 115, 111, 121, 111, 107, 88, 169, 122, 123, 113, 106, 136, 107, 135, 98, 83, 116, 114, 113, 119, 116, 131, 127, 123, 114, 118, 118, 120, 100, 91, 125, 129, 131, 115, 127, 116, 90, 115, 120, 117, 104, 125, 115, 102, 112, 129, 119, 113, 132, 118, 139, 122, 107, 137, 129, 108, 108, 118, 129, 118, 102, 117, 117, 117, 106, 99, 115, 111, 128, 115, 118, 103, 115, 115, 119, 92, 119, 113, 102, 97, 117, 117, 125, 110, 116, 114, 121, 119, 101, 111, 119, 122, 116, 125, 116, 129, 116, 119, 119, 134, 123, 115, 102, 112, 132, 114, 116, 107, 116, 114, 115, 120, 118, 95, 115, 124, 124, 118, 110, 107, 127, 119, 127, 135, 114, 114, 108, 132, 112, 124, 126, 115, 114, 110, 85, 109, 119, 115, 125, 112, 120, 108, 118, 122, 104, 122, 122, 119, 123, 114, 117, 114, 107, 123, 108, 107, 117, 120, 100, 123, 112, 109, 117, 102, 123, 122, 120, 105, 127, 137, 123, 111, 108, 110, 119, 117, 106, 118, 124, 120, 114, 113, 116, 123, 98, 118, 130, 112, 114, 112, 116, 121, 118, 125, 117, 118, 120, 117, 109, 116, 103, 114, 112, 116, 117, 116, 103, 106, 112, 112, 118, 118, 114, 108, 123, 107, 109, 114, 111, 121, 105, 125, 118, 113, 110, 105, 113, 116, 120, 113, 122, 117, 119, 114, 113, 102, 119, 117, 116, 119, 108, 104, 121, 114, 113, 123, 115, 114, 108, 114, 118, 117, 106, 116, 112, 113, 118, 114, 110, 110, 119, 115, 115, 123, 118, 110, 116, 116, 112, 121, 111, 112, 114, 128, 113, 115, 121, 112, 118, 124, 127, 116, 112, 116, 118, 120, 116, 115, 115, 109, 120, 108, 116, 107, 115, 113, 109, 123, 121, 116, 112, 114, 118, 120, 120, 110, 112, 109, 115, 108, 122, 118, 112, 118, 105, 123, 113, 110, 113, 116, 122, 113, 120, 120, 116, 117, 115, 124, 116, 120, 115, 120, 103, 114, 117, 112, 115, 122, 99, 102, 118, 113, 105, 115, 118, 117, 104, 117, 112, 118, 121, 122, 101, 112, 118, 131, 125, 110, 119, 131, 116, 115, 112, 115, 116, 119, 120, 114, 111, 111, 120, 113, 115, 111, 110, 111, 113, 115, 112, 115, 120, 111, 115, 113, 125, 117, 115, 110, 113, 113, 111, 114, 120, 109, 117, 119, 115, 121, 115, 121, 111, 123, 118, 116, 120, 110, 117, 114, 126, 117, 107, 114, 120, 120, 117, 118, 113, 105, 111, 126, 120, 117, 110, 119, 116, 119, 114, 120, 115, 132, 119, 124, 118, 113, 110, 112, 120, 117, 123, 110, 116, 120, 118, 119, 121, 119, 121, 120, 131, 116, 114, 118, 110, 115, 114, 123, 111, 115, 124, 117, 115, 119, 111, 112, 117, 121, 114, 114, 119, 109, 114, 111, 116, 116, 111, 123, 117, 117, 115, 116, 109, 111, 111, 114, 114, 116, 121, 107, 99, 116, 118, 116, 121, 112, 117, 118, 116, 115, 105, 118, 118, 106, 115, 110, 121, 117, 108, 118, 117, 109, 112, 113, 116, 111, 115, 114, 108, 118, 114, 119, 113, 117, 116, 113, 118, 113, 117, 112, 119, 124, 124, 123, 116, 116, 110, 119, 119, 120, 118, 126, 112, 117, 120, 116, 108, 113, 104, 121, 116, 110, 114, 135, 120, 111, 113, 127, 103, 116, 117, 108, 111, 119, 114, 112, 124, 123, 106, 125, 114, 112, 115, 116, 118, 112, 118, 125, 119, 108, 115, 109, 114, 122, 114, 120, 113, 111, 119, 118, 113, 115, 120, 113, 111, 117, 119, 107, 115, 118, 112, 112, 113, 114, 120, 137, 123, 127, 109, 113, 107, 121, 118, 115, 114, 120, 124, 103, 107, 125, 115, 116, 118, 121, 117, 131, 105, 113, 113, 125, 113, 122, 122, 120, 115, 113, 111, 113, 122, 107, 117, 119, 121, 119, 110, 110, 114, 129, 118, 121, 113, 120, 130, 111, 109, 116, 114, 106, 101, 115, 111, 119, 120, 115, 119, 107, 125, 120, 119, 122, 120, 116, 117, 113, 109, 114, 110, 125, 118, 113, 111, 119, 122, 112, 118, 119, 114, 116, 121, 110, 117, 114, 113, 119, 115, 120, 107, 115, 111, 116, 109, 111, 121, 103, 119, 112, 107, 118, 124, 124, 115, 100, 121, 128, 115, 119, 120, 108, 105, 109, 107, 114, 120, 117, 124, 105, 133, 118, 110, 114, 115, 125, 123, 125, 101, 111, 110, 103, 122, 110, 111, 128, 114, 123, 111, 105, 113, 120, 134, 114, 119, 123, 110, 117, 112, 125, 105, 111, 116, 108, 139, 108, 113, 126, 115, 117, 116, 142, 102, 128, 127, 113, 113, 108, 115, 121, 126, 118, 119, 111, 113, 118, 120, 128, 121, 116, 122, 105, 121, 108, 115, 125, 122, 121, 113, 115, 105, 121, 120, 107, 110, 116, 109, 107, 113, 118, 117, 123, 114, 113, 124, 108, 119, 119, 122, 110, 102, 107, 116, 122, 109, 124, 117, 134, 118, 151, 119, 131, 98, 121, 116, 114, 112, 110, 110, 122, 112, 116, 118, 118, 138, 105, 112, 107, 115, 125, 115, 126, 122, 119, 119, 105, 112, 115, 120, 114, 120, 119, 114, 117, 112, 113, 113, 124, 100, 109, 110, 123, 146, 138, 126, 130, 116, 113, 113, 109, 105, 120, 116, 117, 130, 105, 118, 114, 123, 108, 113, 125, 120, 117, 112, 101, 115, 111, 113, 115, 105, 124, 113, 113, 119, 110, 123, 107, 104, 112, 125, 116, 116, 127, 120, 118, 133, 125, 101, 120, 116, 114, 115, 105, 121, 113, 117, 122, 109, 109, 115, 121, 125, 112, 114, 120, 110, 122, 114, 115, 117, 125, 119, 121, 118, 123, 118, 118, 118, 112, 123, 129, 119, 111, 116, 114, 105, 113, 109, 80, 110, 102, 115, 113, 81, 114, 123, 107, 126, 104, 112, 113, 113, 119, 101, 125, 112, 119, 116, 111, 111, 119, 111, 121, 112, 122, 139, 123, 117, 123, 120, 114, 110, 114, 131, 120, 107, 124, 127, 117, 118, 113, 119, 111, 117, 109, 116, 117, 99, 105, 124, 111, 112, 122, 122, 108, 118, 115, 124, 110, 118, 127, 120, 117, 115, 111, 68, 104, 104, 110, 121, 112, 114, 110, 120, 118, 118, 112, 110, 104, 101, 105, 123, 110, 107, 108, 109, 120, 121, 124, 114, 115, 124, 108, 103, 125, 128, 120, 117, 114, 127, 75, 121, 91, 129, 121, 124, 96, 115, 112, 114, 110, 118, 121, 107, 113, 114, 126, 126, 96, 113, 113, 111, 119, 120, 115, 125, 125, 117, 108, 110, 123, 122, 110, 126, 106, 105, 115, 117, 124, 124, 120, 121, 121, 130, 120, 108, 105, 116, 124, 104, 79, 114, 106, 116, 109, 111, 112, 118, 123, 113, 135, 107, 120, 108, 115, 104, 137, 101, 123, 117, 122, 112, 124, 122, 112, 113, 103, 115, 121, 133, 100, 99, 107, 109, 121, 115, 123, 134, 116, 122, 119, 103, 121, 118, 113, 134, 124, 113, 116, 113, 114, 107, 116, 115, 101, 120, 112, 108, 128, 122, 116, 112, 108, 118, 116, 148, 110, 125, 129, 99, 113, 116, 110, 112, 124, 123, 123, 124, 114, 109, 113, 109, 123, 114, 114, 121, 117, 111, 115, 111, 116, 130, 122, 104, 108, 120, 109, 144, 109, 97, 121, 120, 112, 119, 119, 121, 148, 98, 117, 119, 112, 107, 130, 115, 99, 103, 127, 127, 113, 116, 112, 120, 111, 109, 100, 125, 123, 131, 99, 125, 118, 122, 119, 98, 120, 117, 110, 124, 100, 120, 115, 115, 110, 119, 126, 121, 119, 119, 120, 114, 119, 141, 110, 114, 126, 105, 114, 110, 96, 115, 138, 131, 117, 113, 114, 116, 113, 125, 114, 121, 100, 102, 114, 117, 119, 114, 112, 117, 125, 120, 98, 111, 106, 98, 98, 117, 122, 105, 109, 115, 117, 110, 105, 118, 125, 102, 121, 109, 101, 129, 98, 118, 129, 112, 116, 112, 111, 114, 126, 111, 121, 104, 118, 117, 105, 115, 105, 118, 107, 121, 111, 114, 130, 107, 108, 109, 107, 118, 120, 102, 110, 115, 112, 110, 130, 108, 110, 98, 110, 111, 113, 125, 120, 111, 123, 106, 107, 109, 112, 100, 102, 118, 99, 113, 128, 105, 121, 105, 126, 122, 116, 117, 107, 109, 112, 114, 125, 103, 100, 139, 108, 116, 120, 114, 118, 140, 118, 109, 111, 110, 121, 123, 118, 114, 119, 102, 95, 111, 114, 117, 114, 128, 112, 122, 112, 127, 118, 112, 112, 114, 117, 128, 113, 125, 107, 111, 123, 106, 124, 114, 105, 116, 114, 106, 106, 112, 118, 108, 115, 120, 114, 122, 106, 118, 114, 117, 110, 98, 111, 110, 117, 120, 119, 132, 124, 107, 105, 112, 116, 113, 124, 118, 114, 115, 116, 117, 101, 117, 115, 115, 113, 99, 109, 106, 114, 103, 110, 108, 117, 116, 107, 110, 110, 117, 125, 123, 115, 108, 133, 124, 123, 121, 128, 117, 131, 109, 123, 123, 97, 119, 130, 116, 116, 111, 118, 121, 114, 111, 98, 112, 104, 102, 111, 125, 104, 127, 114, 115, 120, 134, 120, 130, 114, 122, 104, 119, 114, 131, 135, 96, 130, 133, 115, 102, 112, 122, 127, 118, 111, 105, 114, 124, 116, 120, 102, 119, 113, 114, 117, 100, 122, 106, 129, 113, 116, 122, 106, 111, 139, 110, 119, 95, 101, 119, 111, 114, 116, 110, 104, 108, 114, 103, 107, 108, 111, 123, 114, 124, 119, 112, 108, 114, 123, 117, 107, 115, 124, 127, 118, 110, 114, 108, 105, 119, 110, 131, 94, 113, 118, 109, 105, 109, 125, 118, 114, 104, 112, 125, 118, 105, 120, 119, 109, 127, 102, 126, 126, 113, 117, 118, 118, 112, 109, 112, 109, 122, 130, 102, 98, 106, 133, 110, 113, 128, 137, 114, 109, 137, 107, 114, 106, 105, 116, 108, 137, 124, 125, 109, 115, 120, 116, 127, 126, 107, 127, 110, 113, 118, 110, 137, 111, 127, 121, 123, 128, 125, 105, 105, 110, 127, 110, 128, 114, 110, 104, 115, 101, 113, 105, 107, 114, 120, 125, 112, 116, 113, 116, 144, 111, 107, 105, 115, 129, 114, 111, 114, 115, 122, 111, 120, 115, 103, 104, 133, 94, 123, 119, 127, 108, 121, 121, 109, 119, 115, 123, 110, 116, 137, 116, 120, 110, 107, 108, 121, 108, 120, 104, 117, 109, 121, 106, 124, 116, 103, 123, 121, 115, 119, 117, 130, 111, 115, 130, 114, 117, 122, 116, 122, 104, 128, 114, 130, 123, 120, 116, 115, 118, 115, 126, 128, 112, 113, 100, 110, 121, 120, 122, 112, 106, 113, 110, 115, 107, 118, 107, 118, 113, 110, 109, 116, 115, 117, 114, 118, 121, 122, 113, 118, 120, 110, 115, 126, 117, 124, 123, 118, 119, 97, 113, 127, 138, 122, 111, 113, 102, 126, 116, 113, 124, 124, 117, 116, 120, 120, 124, 108, 111, 113, 124, 106, 117, 116, 132, 118, 109, 111, 126, 110, 111, 124, 126, 117, 112, 116, 119, 121, 124, 115, 116, 121, 111, 121, 113, 117, 118, 124, 120, 133, 125, 115, 108, 122, 114, 118, 121, 119, 108, 117, 112, 111, 118, 119, 122, 122, 117, 127, 104, 115, 111, 116, 115, 112, 119, 120, 115, 118, 132, 113, 109, 122, 121, 114, 115, 114, 116, 122, 128, 125, 89, 122, 121, 114, 114, 117, 117, 117, 119, 117, 148, 111, 112, 117, 115, 113, 119, 110, 105, 118, 114, 112, 116, 117, 117, 114, 112, 115, 122, 115, 111, 124, 119, 119, 117, 114, 119, 127, 115, 119, 113, 117, 121, 117, 119, 125, 127, 114, 119, 126, 115, 125, 122, 121, 117, 119, 111, 116, 107, 119, 121, 119, 130, 122, 110, 122, 121, 112, 113, 118, 117, 116, 112, 115, 104, 113, 112, 121, 117, 121, 120, 119, 118, 121, 113, 117, 116, 113, 105, 125, 113, 107, 116, 113, 114, 111, 103, 123, 117, 117, 123, 111, 110, 102, 118, 128, 114, 117, 122, 118, 114, 121, 108, 112, 106, 111, 125, 111, 111, 115, 115, 118, 114, 117, 112, 107, 121, 123, 108, 114, 104, 118, 119, 119, 110, 115, 110, 114, 114, 127, 125, 119, 112, 118, 117, 116, 115, 122, 109, 117, 115, 114, 121, 114, 120, 117, 122, 117, 116, 109, 114, 120, 117, 113, 120, 125, 119, 121, 136, 122, 117, 115, 122, 114, 111, 128, 115, 119, 115, 111, 116, 111, 122, 114, 109, 124, 125, 112, 123, 118, 119, 123, 107, 112, 104, 113, 113, 111, 129, 122, 120, 118, 122, 113, 120, 120, 105, 121, 119, 121, 110, 117, 126, 112, 111, 112, 110, 120, 120, 115, 122, 127, 114, 116, 103, 110, 118, 112, 125, 119, 115, 98, 123, 117, 122, 87, 113, 121, 116, 111, 112, 119, 110, 113, 108, 112, 113, 110, 111, 102, 114, 110, 104, 114, 117, 118, 116, 119, 121, 131, 121, 88, 121, 119, 107, 119, 118, 116, 111, 118, 115, 108, 105, 127, 117, 123, 110, 117, 114, 108, 110, 121, 128, 115, 116, 119, 114, 109, 114, 117, 121, 117, 110, 103, 118, 113, 120, 115, 126, 106, 106, 119, 120, 110, 120, 117, 117, 117, 113, 110, 114, 119, 122, 116, 105, 115, 126, 116, 138, 127, 115, 127, 132, 117, 120, 120, 117, 138, 114, 116, 113, 103, 120, 107, 111, 117, 106, 119, 115, 117, 115, 122, 116, 118, 113, 108, 114, 120, 106, 107, 109, 110, 127, 118, 110, 126, 106, 127, 119, 134, 118, 140, 112, 107, 122, 109, 102, 118, 113, 107, 106, 115, 134, 121, 102, 106, 114, 123, 110, 110, 118, 120, 109, 124, 118, 112, 119, 116, 120, 106, 112, 114, 125, 122, 121, 110, 113, 126, 121, 117, 123, 108, 109, 113, 113, 117, 122, 115, 130, 106, 106, 113, 120, 113, 116, 103, 125, 124, 126, 117, 120, 118, 121, 114, 112, 119, 113, 103, 115, 117, 107, 119, 111, 109, 122, 109, 115, 125, 118, 106, 118, 115, 113, 110, 123, 106, 115, 121, 111, 77, 120, 113, 122, 107, 118, 84, 108, 116, 114, 111, 115, 119, 110, 130, 114, 117, 114, 122, 114, 112, 113, 123, 102, 137, 109, 119, 77, 114, 114, 109, 110, 103, 112, 114, 123, 109, 118, 123, 118, 119, 140, 120, 110, 108, 101, 109, 130, 107, 113, 110, 118, 122, 118, 133, 115, 107, 116, 119, 116, 104, 107, 109, 116, 120, 102, 122, 117, 113, 115, 115, 117, 125, 116, 114, 107, 100, 130, 124, 118, 124, 122, 119, 135, 108, 120, 110, 108, 126, 93, 110, 110, 119, 124, 115, 107, 112, 117, 119, 122, 113, 118, 111, 109, 121, 119, 109, 112, 121, 112, 132, 90, 118, 112, 107, 96, 120, 125, 122, 115, 109, 102, 131, 75, 114, 121, 112, 117, 115, 122, 123, 116, 128, 103, 129, 112, 100, 116, 113, 126, 114, 136, 127, 122, 116, 111, 111, 110, 126, 105, 117, 124, 106, 98, 102, 118, 123, 113, 113, 110, 112, 132, 124, 169, 98, 117, 110, 101, 113, 126, 118, 112, 119, 99, 112, 110, 111, 111, 119, 120, 110, 119, 123, 117, 152, 128, 129, 109, 109, 122, 109, 117, 116, 116, 110, 131, 104, 118, 112, 118, 96, 110, 107, 123, 115, 122, 118, 110, 119, 125, 117, 129, 109, 123, 109, 121, 112, 120, 109, 110, 121, 121, 110, 119, 108, 116, 106, 114, 104, 109, 105, 111, 106, 106, 123, 124, 109, 121, 106, 110, 103, 109, 133, 122, 116, 115, 120, 112, 107, 119, 120, 112, 119, 85, 120, 108, 114, 114, 119, 110, 117, 112, 115, 117, 105, 128, 112, 100, 101, 109, 108, 117, 121, 107, 111, 108, 159, 115, 105, 112, 117, 122, 108, 123, 113, 120, 124, 119, 119, 142, 110, 111, 115, 77, 115, 117, 115, 123, 118, 115, 115, 115, 122, 136, 122, 110, 121, 128, 121, 116, 110, 98, 113, 121, 132, 144, 114, 112, 109, 114, 113, 124, 115, 123, 105, 117, 109, 116, 111, 119, 111, 117, 111, 111, 117, 112, 113, 110, 120, 110, 106, 117, 104, 124, 120, 109, 123, 132, 108, 125, 118, 119, 107, 117, 111, 111, 121, 119, 111, 114, 121, 112, 117, 111, 122, 107, 113, 118, 127, 120, 112, 111, 106, 117, 112, 112, 112, 101, 108, 114, 120, 110, 128, 111, 107, 115, 128, 120, 120, 118, 109, 111, 133, 145, 123, 120, 110, 111, 118, 121, 105, 121, 111, 120, 113, 120, 140, 106, 111, 108, 118, 120, 109, 113, 122, 124, 119, 108, 115, 121, 108, 120, 113, 116, 100, 106, 118, 114, 122, 105, 114, 122, 106, 98, 111, 122, 109, 112, 115, 124, 118, 120, 114, 133, 101, 119, 137, 115, 126, 87, 103, 107, 107, 102, 122, 118, 117, 118, 108, 123, 112, 123, 105, 132, 106, 107, 120, 101, 119, 110, 110, 124, 118, 132, 107, 125, 106, 112, 118, 122, 116, 103, 118, 107, 110, 110, 110, 128, 118, 114, 116, 104, 113, 102, 114, 112, 124, 114, 112, 107, 130, 116, 109, 115, 118, 118, 115, 109, 103, 123, 112, 105, 119, 107, 112, 119, 116, 118, 115, 113, 105, 117, 114, 118, 124, 118, 108, 133, 111, 116, 117, 102, 118, 113, 117, 114, 116, 111, 101, 113, 113, 125, 112, 113, 131, 114, 128, 105, 105, 135, 120, 109, 137, 123, 110, 111, 115, 123, 116, 110, 116, 134, 124, 104, 134, 110, 87, 129, 111, 109, 115, 113, 131, 92, 114, 131, 114, 119, 115, 119, 124, 99, 114, 107, 118, 113, 103, 107, 106, 119, 103, 109, 109, 105, 101, 115, 122, 122, 112, 111, 123, 115, 111, 115, 103, 96, 116, 112, 111, 116, 120, 111, 119, 120, 106, 113, 113, 104, 115, 123, 136, 109, 122, 114, 111, 120, 110, 113, 112, 129, 110, 105, 116, 101, 110, 104, 123, 115, 118, 126, 117, 119, 105, 121, 118, 105, 109, 122, 120, 113, 105, 120, 121, 126, 107, 123, 113, 137, 118, 123, 121, 117, 119, 120, 111, 112, 117, 114, 111, 117, 113, 125, 117, 117, 119, 103, 112, 112, 95, 111, 124, 129, 125, 110, 117, 127, 112, 116, 110, 114, 133, 108, 105, 116, 109, 114, 119, 112, 120, 110, 126, 123, 120, 124, 110, 118, 120, 112, 104, 154, 109, 115, 109, 119, 131, 109, 108, 112, 108, 143, 104, 105, 116, 115, 106, 107, 107, 120, 109, 122, 109, 125, 122, 123, 115, 113, 115, 104, 110, 94, 127, 118, 122, 114, 109, 109, 114, 112, 116, 118, 101, 128, 116, 142, 110, 113, 115, 116, 111, 115, 118, 112, 119, 118, 112, 107, 114, 120, 123, 135, 108, 108, 107, 104, 158, 106, 108, 111, 110, 109, 104, 101, 102, 113, 113, 123, 125, 129, 113, 109, 114, 110, 113, 98, 120, 112, 114, 119, 124, 107, 105, 106, 119, 110, 107, 115, 126, 112, 149, 115, 124, 108, 125, 104, 130, 109, 105, 121, 122, 111, 122, 107, 119, 111, 113, 116, 106, 116, 108, 101, 122, 109, 145, 117, 112, 123, 106, 108, 110, 129, 106, 126, 94, 125, 129, 108, 89, 125, 109, 107, 114, 124, 108, 99, 125, 128, 112, 113, 110, 109, 118, 108, 95, 124, 116, 112, 107, 118, 114, 114, 109, 118, 116, 116, 112, 131, 108, 126, 121, 109, 118, 136, 117, 104, 114, 111, 107, 118, 113, 112, 128, 117, 95, 122, 114, 111, 114, 107, 112, 104, 110, 105, 117, 118, 115, 120, 129, 114, 118, 111, 114, 122, 132, 105, 111, 110, 117, 111, 104, 124, 132, 118, 98, 105, 117, 129, 111, 118, 111, 119, 114, 109, 128, 107, 130, 118, 124, 124, 120, 129, 130, 112, 122, 112, 113, 112, 110, 120, 111, 134, 115, 112, 114, 121, 121, 121, 124, 119, 119, 119, 120, 104, 123, 118, 104, 125, 105, 126, 123, 111, 117, 117, 121, 99, 112, 121, 103, 130, 112, 114, 108, 118, 116, 103, 111, 101, 116, 123, 104, 121, 117, 120, 116, 113, 105, 117, 121, 110, 116, 118, 124, 117, 108, 118, 115, 120, 108, 115, 118, 105, 115, 117, 113, 117, 115, 127, 115, 118, 115, 128, 107, 112, 115, 108, 118, 126, 113, 106, 109, 106, 107, 120, 112, 107, 116, 108, 125, 105, 119, 100, 116, 111, 121, 120, 113, 116, 123, 106, 113, 109, 132, 116, 110, 114, 126, 114, 132, 116, 135, 123, 118, 125, 125, 126, 111, 113, 112, 124, 122, 116, 117, 110, 112, 112, 125, 121, 114, 116, 122, 113, 116, 118, 124, 108, 113, 118, 128, 113, 106, 115, 115, 118, 112, 122, 128, 117, 115, 118, 117, 116, 121, 123, 122, 107, 116, 116, 122, 123, 110, 106, 115, 115, 118, 118, 122, 108, 117, 123, 119, 118, 111, 101, 114, 119, 105, 123, 120, 110, 126, 119, 111, 118, 113, 126, 108, 111, 114, 114, 125, 114, 122, 118, 123, 112, 124, 124, 125, 119, 123, 106, 114, 115, 119, 116, 118, 118, 117, 116, 119, 103, 119, 120, 128, 106, 126, 111, 128, 122, 112, 118, 120, 103, 126, 127, 115, 116, 112, 123, 111, 115, 131, 124, 102, 106, 111, 114, 118, 123, 131, 109, 107, 122, 118, 117, 119, 132, 114, 115, 114, 125, 115, 109, 109, 125, 113, 97, 114, 118, 117, 118, 123, 124, 115, 128, 120, 116, 117, 112, 114, 127, 126, 122, 119, 124, 120, 104, 124, 111, 124, 116, 118, 120, 116, 110, 112, 117, 119, 117, 119, 116, 117, 114, 122, 119, 114, 127, 124, 114, 123, 113, 113, 109, 112, 118, 110, 125, 132, 126, 129, 110, 119, 110, 112, 116, 124, 121, 121, 118, 108, 120, 133, 116, 96, 107, 113, 116, 113, 114, 123, 116, 117, 116, 104, 118, 124, 121, 110, 115, 125, 109, 127, 113, 121, 124, 89, 128, 113, 117, 121, 111, 112, 112, 124, 118, 118, 122, 124, 109, 133, 117, 119, 117, 127, 116, 120, 118, 121, 108, 110, 137, 117, 121, 125, 118, 123, 113, 114, 111, 114, 111, 120, 115, 113, 122, 123, 115, 116, 126, 117, 107, 111, 124, 116, 113, 120, 117, 115, 103, 123, 118, 105, 113, 115, 116, 121, 127, 109, 120, 113, 119, 123, 112, 119, 109, 114, 113, 114, 132, 108, 103, 116, 110, 107, 121, 113, 118, 111, 99, 118, 113, 115, 111, 118, 107, 108, 108, 116, 107, 118, 112, 109, 125, 113, 115, 114, 111, 115, 125, 127, 108, 108, 105, 112, 115, 118, 112, 120, 134, 119, 116, 116, 113, 116, 119, 112, 124, 112, 105, 124, 102, 105, 109, 128, 110, 111, 110, 112, 116, 121, 118, 116, 111, 107, 118, 117, 119, 138, 133, 107, 108, 113, 120, 102, 107, 116, 96, 126, 115, 114, 114, 114, 109, 99, 125, 129, 106, 121, 110, 102, 129, 146, 104, 126, 129, 118, 114, 127, 116, 107, 99, 116, 117, 105, 110, 104, 118, 114, 114, 125, 131, 118, 109, 129, 97, 115, 110, 119, 104, 121, 112, 115, 131, 122, 124, 118, 116, 111, 100, 133, 113, 114, 125, 116, 114, 122, 101, 114, 132, 116, 120, 109, 111, 112, 108, 130, 108, 94, 126, 119, 109, 113, 107, 127, 125, 117, 139, 104, 114, 126, 116, 110, 114, 109, 114, 122, 115, 110, 107, 111, 113, 100, 103, 131, 112, 112, 109, 114, 115, 110, 124, 110, 110, 122, 111, 127, 120, 113, 111, 103, 125, 117, 115, 110, 129, 115, 119, 108, 120, 113, 107, 110, 131, 117, 118, 114, 119, 120, 114, 111, 109, 118, 121, 118, 112, 108, 109, 98, 116, 113, 103, 112, 99, 124, 123, 109, 119, 112, 119, 119, 111, 112, 109, 115, 99, 122, 122, 132, 114, 108, 127, 141, 101, 108, 112, 118, 93, 117, 112, 90, 118, 121, 135, 107, 121, 111, 122, 128, 120, 98, 120, 121, 114, 125, 104, 112, 114, 103, 116, 129, 135, 121, 114, 116, 102, 116, 125, 118, 136, 123, 144, 135, 110, 110, 114, 107, 122, 115, 106, 113, 102, 123, 110, 112, 118, 119, 113, 111, 129, 118, 108, 102, 124, 131, 108, 121, 126, 130, 122, 110, 112, 135, 118, 119, 117, 123, 103, 113, 118, 127, 147, 121, 119, 115, 119, 108, 121, 95, 115, 119, 125, 110, 108, 110, 128, 117, 129, 116, 107, 104, 101, 123, 108, 110, 120, 97, 107, 121, 141, 116, 115, 117, 100, 122, 115, 116, 126, 114, 137, 120, 117, 111, 119, 126, 122, 114, 149, 114, 109, 113, 117, 103, 119, 119, 101, 92, 115, 106, 138, 113, 127, 106, 114, 110, 110, 117, 106, 99, 143, 119, 102, 115, 105, 97, 113, 113, 117, 99, 109, 113, 113, 130, 118, 119, 100, 116, 108, 101, 113, 120, 131, 105, 104, 102, 126, 100, 129, 124, 102, 118, 101, 117, 123, 121, 95, 115, 108, 104, 130, 109, 119, 133, 126, 132, 105, 116, 115, 103, 111, 126, 106, 124, 144, 113, 110, 122, 107, 110, 119, 109, 110, 125, 109, 122, 110, 101, 131, 127, 107, 121, 123, 127, 121, 102, 109, 95, 110, 124, 125, 127, 94, 114, 107, 104, 70, 117, 124, 121, 122, 112, 127, 114, 130, 115, 110, 125, 123, 116, 107, 127, 118, 123, 126, 99, 104, 116, 113, 110, 109, 121, 101, 125, 110, 109, 112, 130, 125, 108, 133, 108, 142, 116, 91, 108, 122, 119, 123, 99, 122, 120, 99, 125, 103, 103, 120, 100, 112, 119, 104, 101, 117, 101, 143, 120, 113, 90, 121, 101, 106, 105, 132, 101, 101, 98, 106, 121, 105, 110, 113, 123, 112, 113, 107, 117, 127, 142, 112, 111, 99, 95, 118, 122, 101, 90, 114, 105, 96, 131, 97, 115, 133, 127, 119, 117, 109, 115, 125, 121, 124, 101, 108, 117, 99, 109, 112, 125, 113, 110, 91, 105, 102, 122, 135, 89, 116, 110, 125, 122, 108, 108, 107, 111, 116, 130, 103, 109, 119, 124, 106, 125, 108, 129, 116, 122, 103, 131, 110, 119, 122, 113, 114, 107, 122, 116, 125, 114, 104, 108, 110, 138, 124, 121, 112, 117, 125, 112, 113, 130, 114, 115, 97, 125, 120, 111, 108, 117, 130, 118, 108, 107, 112, 121, 120, 104, 107, 121, 104, 110, 114, 120, 123, 127, 99, 118, 113, 101, 111, 115, 109, 110, 126, 108, 97, 117, 117, 101, 108, 103, 110, 106, 112, 124, 113, 108, 104, 142, 102, 118, 135, 122, 117, 112, 135, 135, 116, 118, 102, 126, 116, 96, 118, 121, 108, 106, 124, 104, 131, 123, 111, 119, 111, 127, 123, 120, 113, 106, 116, 116, 125, 119, 129, 117, 107, 100, 123, 138, 108, 119, 118, 95, 123, 113, 126, 146, 123, 116, 122, 116, 106, 118, 125, 121, 118, 96, 115, 94, 112, 129, 113, 106, 131, 115, 112, 106, 117, 167, 129, 125, 125, 121, 113, 115, 120, 123, 118, 104, 119, 140, 103, 113, 140, 98, 102, 114, 129, 125, 113, 91, 106, 109, 123, 103, 122, 111, 114, 106, 109, 110, 119, 101, 120, 91, 124, 120, 133, 120, 116, 120, 122, 119, 114, 101, 69, 116, 110, 110, 113, 134, 101, 113, 125, 119, 112, 114, 131, 119, 124, 114, 114, 117, 110, 117, 120, 123, 118, 113, 133, 123, 122, 115, 100, 106, 120, 97, 112, 126, 111, 112, 120, 115, 101, 111, 130, 126, 109, 94, 113, 118, 127, 109, 122, 112, 109, 106, 106, 124, 125, 113, 101, 113, 115, 110, 120, 111, 105, 119, 134, 111, 129, 115, 127, 113, 117, 109, 130, 103, 105, 112, 129, 119, 125, 116, 109, 111, 122, 120, 120, 118, 95, 104, 111, 124, 118, 116, 127, 93, 130, 110, 111, 121, 143, 119, 125, 132, 107, 118, 113, 97, 120, 126, 123, 120, 117, 119, 99, 132, 121, 87, 115, 119, 108, 129, 126, 136, 116, 112, 113, 116, 128, 105, 113, 126, 104, 116, 146, 127, 114, 127, 114, 107, 118, 116, 102, 115, 112, 112, 95, 120, 128, 117, 104, 115, 117, 123, 114, 107, 119, 111, 119, 103, 99, 124, 100, 110, 106, 128, 114, 126, 129, 103, 101, 122, 110, 114, 112, 116, 123, 132, 109, 105, 116, 126, 128, 117, 99, 140, 112, 115, 104, 115, 115, 114, 121, 110, 205, 106, 149, 123, 101, 99, 108, 106, 118, 130, 118, 114, 113, 103, 104, 130, 118, 111, 91, 108, 107, 114, 115, 102, 101, 95, 100, 114, 116, 100, 104, 138, 116, 126, 122, 112, 127, 120, 118, 124, 109, 115, 130, 129, 103, 122, 111, 144, 114, 111, 120, 128, 110, 123, 114, 115, 124, 104, 130, 133, 117, 114, 107, 98, 109, 127, 118, 128, 104, 114, 105, 103, 121, 119, 104, 109, 114, 133, 105, 110, 107, 117, 119, 107, 104, 122, 110, 120, 116, 108, 118, 125, 99, 125, 108, 119, 118, 111, 127, 113, 116, 106, 92, 121, 130, 147, 116, 106, 117, 104, 113, 114, 100, 114, 116, 115, 94, 120, 116, 117, 107, 142, 117, 109, 109, 135, 119, 117, 132, 105, 114, 115, 131, 125, 114, 140, 143, 119, 116, 118, 116, 106, 109, 106, 111, 132, 107, 127, 133, 117, 129, 113, 106, 114, 107, 120, 108, 120, 112, 113, 121, 123, 115, 132, 115, 106, 120, 119, 111, 103, 141, 111, 116, 123, 111, 120, 113, 108, 121, 118, 121, 116, 109, 120, 119, 112, 106, 107, 120, 110, 127, 108, 126, 116, 116, 117, 123, 113, 117, 123, 121, 107, 118, 108, 112, 113, 107, 115, 122, 112, 119, 109, 110, 109, 122, 117, 89, 112, 117, 124, 114, 117, 121, 124, 123, 109, 133, 99, 137, 107, 114, 107, 117, 112, 111, 122, 112, 129, 117, 118, 107, 124, 112, 111, 112, 119, 131, 116, 110, 108, 121, 123, 128, 104, 128, 126, 112, 118, 117, 116, 126, 120, 106, 119, 117, 109, 112, 117, 107, 82, 116, 110, 111, 115, 120, 139, 114, 105, 131, 122, 112, 100, 110, 122, 118, 124, 119, 117, 114, 115, 105, 106, 115, 116, 113, 115, 110, 120, 103, 111, 107, 108, 122, 121, 124, 116, 112, 117, 112, 112, 123, 115, 113, 108, 125, 112, 111, 120, 108, 116, 123, 120, 110, 116, 115, 112, 127, 127, 108, 114, 112, 109, 108, 108, 103, 121, 114, 127, 124, 120, 109, 108, 104, 115, 112, 113, 125, 116, 107, 117, 118, 115, 114, 105, 105, 107, 115, 105, 113, 114, 122, 118, 114, 117, 128, 132, 117, 112, 128, 119, 121, 120, 111, 115, 109, 119, 121, 111, 121, 95, 108, 111, 119, 127, 117, 122, 124, 127, 110, 121, 114, 121, 114, 119, 114, 115, 118, 107, 114, 124, 119, 125, 124, 112, 115, 111, 108, 107, 112, 124, 114, 117, 111, 111, 122, 120, 115, 108, 114, 104, 112, 117, 123, 110, 112, 113, 130, 123, 103, 105, 109, 127, 121, 114, 120, 110, 122, 109, 116, 121, 116, 107, 109, 109, 114, 121, 110, 119, 127, 126, 126, 133, 113, 119, 120, 111, 105, 110, 129, 131, 117, 119, 118, 121, 121, 108, 115, 125, 102, 125, 127, 136, 122, 121, 118, 110, 123, 104, 117, 119, 106, 116, 93, 120, 107, 120, 117, 114, 113, 129, 118, 109, 130, 120, 108, 122, 115, 121, 112, 115, 116, 143, 107, 118, 133, 113, 108, 114, 118, 120, 112, 109, 123, 116, 115, 117, 116, 114, 128, 107, 113, 116, 122, 110, 113, 107, 124, 114, 114, 101, 117, 120, 111, 101, 116, 119, 96, 118, 117, 115, 131, 99, 114, 117, 119, 111, 134, 105, 111, 124, 126, 114, 111, 126, 108, 118, 112, 101, 110, 113, 117, 97, 117, 111, 117, 109, 129, 121, 111, 104, 125, 119, 113, 118, 121, 123, 112, 126, 128, 118, 121, 112, 102, 102, 116, 128, 120, 120, 114, 130, 113, 104, 110, 123, 108, 106, 116, 116, 120, 133, 115, 113, 108, 128, 110, 103, 103, 116, 109, 116, 125, 124, 107, 109, 112, 118, 99, 109, 111, 122, 120, 129, 145, 111, 130, 101, 99, 101, 126, 106, 105, 124, 109, 115, 119, 106, 111, 137, 99, 108, 106, 111, 135, 118, 108, 106, 110, 132, 112, 108, 137, 112, 99, 114, 122, 145, 143, 133, 91, 111, 97, 114, 114, 117, 99, 99, 99, 116, 115, 115, 107, 120, 115, 113, 100, 120, 128, 127, 110, 100, 100, 112, 123, 106, 110, 122, 114, 107, 102, 104, 110, 120, 111, 112, 107, 116, 110, 94, 130, 119, 115, 120, 130, 109, 108, 125, 111, 102, 104, 103, 118, 99, 126, 113, 101, 118, 95, 120, 130, 123, 116, 107, 79, 113, 130, 117, 126, 121, 126, 110, 114, 109, 105, 105, 112, 109, 106, 103, 96, 95, 97, 108, 111, 128, 117, 114, 119, 107, 105, 130, 129, 99, 111, 94, 102, 113, 129, 129, 116, 108, 134, 117, 118, 112, 96, 109, 82, 119, 81, 109, 118, 100, 125, 126, 109, 108, 133, 105, 126, 116, 129, 119, 122, 104, 112, 111, 97, 120, 128, 148, 120, 114, 115, 109, 104, 118, 119, 125, 117, 106, 109, 99, 118, 103, 121, 99, 101, 95, 110, 117, 111, 114, 128, 114, 113, 112, 104, 119, 109, 118, 102, 87, 119, 103, 121, 106, 121, 111, 106, 110, 112, 113, 116, 103, 100, 106, 108, 113, 112, 112, 113, 128, 119, 108, 114, 134, 113, 112, 103, 99, 128, 104, 111, 113, 113, 114, 109, 111, 96, 112, 147, 111, 121, 114, 97, 119, 118, 104, 130, 112, 131, 119, 118, 130, 122, 110, 116, 119, 115, 113, 110, 129, 113, 112, 119, 109, 107, 131, 112, 103, 110, 112, 111, 115, 93, 129, 123, 110, 126, 123, 111, 121, 113, 116, 119, 112, 107, 123, 113, 118, 103, 124, 122, 102, 103, 112, 129, 125, 104, 125, 85, 123, 122, 111, 138, 98, 102, 103, 117, 114, 114, 119, 137, 130, 110, 115, 119, 114, 116, 113, 112, 127, 118, 115, 120, 96, 129, 102, 139, 129, 126, 124, 121, 104, 138, 108, 112, 133, 107, 118, 113, 110, 121, 125, 92, 119, 124, 109, 138, 119, 102, 117, 120, 114, 105, 113, 110, 113, 102, 111, 108, 115, 134, 120, 124, 116, 128, 129, 117, 115, 120, 115, 105, 118, 123, 101, 121, 107, 134, 108, 151, 109, 109, 106, 112, 111, 118, 143, 100, 116, 115, 117, 115, 99, 115, 114, 123, 119, 116, 106, 121, 110, 125, 113, 108, 111, 87, 129, 120, 112, 122, 99, 122, 134, 104, 117, 120, 109, 121, 121, 105, 132, 117, 120, 116, 113, 124, 119, 127, 108, 114, 111, 126, 117, 108, 133, 104, 121, 101, 112, 116, 112, 98, 102, 112, 146, 98, 120, 118, 121, 113, 94, 136, 130, 121, 106, 108, 123, 125, 109, 117, 103, 114, 145, 94, 115, 104, 108, 110, 139, 116, 118, 111, 120, 111, 116, 105, 107, 103, 95, 87, 114, 124, 123, 106, 104, 132, 125, 121, 109, 128, 112, 100, 119, 107, 112, 129, 115, 121, 106, 128, 114, 104, 120, 117, 92, 99, 107, 105, 116, 99, 124, 103, 118, 113, 118, 116, 118, 116, 115, 117, 111, 115, 112, 117, 119, 113, 113, 113, 124, 102, 119, 118, 127, 126, 120, 116, 117, 120, 122, 117, 129, 122, 121, 116, 117, 118, 115, 118, 119, 116, 100, 116, 113, 108, 111, 113, 101, 114, 117, 118, 118, 121, 114, 111, 121, 89, 122, 111, 115, 94, 125, 119, 115, 116, 119, 115, 116, 119, 127, 121, 124, 102, 113, 113, 121, 116, 116, 111, 130, 119, 113, 114, 118, 114, 118, 118, 141, 121, 113, 123, 106, 115, 147, 117, 124, 135, 87, 116, 121, 132, 118, 112, 125, 109, 107, 115, 106, 119, 119, 117, 117, 114, 118, 112, 136, 120, 120, 108, 117, 123, 119, 110, 116, 113, 112, 113, 108, 120, 111, 116, 116, 116, 110, 117, 102, 129, 114, 117, 121, 115, 112, 113, 117, 120, 114, 118, 113, 119, 112, 124, 114, 115, 115, 120, 113, 114, 108, 117, 117, 119, 122, 112, 111, 115, 116, 117, 116, 129, 113, 115, 111, 117, 112, 116, 122, 110, 119, 117, 129, 127, 120, 116, 116, 113, 113, 114, 129, 112, 119, 120, 116, 116, 120, 113, 123, 114, 120, 101, 118, 114, 118, 108, 114, 120, 111, 106, 113, 124, 119, 116, 118, 111, 107, 114, 115, 124, 120, 117, 126, 116, 120, 120, 117, 130, 116, 120, 107, 120, 115, 116, 117, 106, 138, 117, 121, 119, 112, 119, 103, 115, 114, 116, 118, 120, 113, 111, 105, 114, 118, 114, 107, 127, 114, 133, 112, 118, 113, 119, 116, 117, 115, 109, 118, 120, 122, 116, 120, 113, 121, 117, 119, 116, 112, 110, 112, 117, 119, 126, 116, 117, 114, 110, 115, 116, 117, 114, 132, 116, 116, 116, 99, 110, 117, 123, 110, 119, 119, 113, 110, 120, 120, 121, 121, 114, 115, 113, 125, 118, 109, 117, 112, 117, 118, 121, 115, 109, 116, 117, 118, 112, 94, 108, 110, 110, 116, 113, 111, 120, 114, 119, 106, 121, 117, 119, 121, 135, 122, 118, 120, 117, 117, 114, 111, 106, 119, 114, 117, 115, 114, 106, 119, 120, 120, 116, 122, 115, 114, 122, 112, 118, 117, 116, 116, 118, 104, 114, 128, 121, 124, 113, 118, 118, 118, 110, 110, 116, 114, 115, 108, 113, 113, 113, 113, 108, 119, 114, 114, 120, 118, 117, 113, 110, 99, 115, 111, 117, 125, 113, 115, 123, 118, 101, 117, 107, 122, 125, 98, 117, 120, 119, 122, 111, 112, 115, 120, 135, 132, 113, 115, 118, 109, 115, 119, 117, 112, 113, 115, 119, 115, 106, 126, 114, 122, 116, 123, 105, 118, 129, 121, 110, 114, 118, 122, 114, 117, 106, 123, 117, 119, 128, 117, 112, 115, 119, 117, 119, 115, 111, 141, 110, 115, 117, 114, 122, 112, 112, 116, 120, 121, 124, 119, 118, 118, 121, 115, 119, 106, 114, 121, 112, 115, 115, 131, 110, 121, 100, 112, 108, 134, 108, 114, 120, 117, 111, 119, 114, 107, 110, 118, 118, 115, 115, 120, 112, 117, 122, 120, 109, 116, 119, 112, 120, 120, 118, 110, 121, 118, 133, 113, 119, 94, 129, 118, 109, 95, 112, 130, 111, 111, 122, 106, 106, 115, 109, 119, 127, 114, 119, 118, 117, 114, 126, 110, 127, 126, 113, 105, 118, 125, 126, 127, 114, 123, 115, 111, 115, 121, 109, 113, 107, 115, 121, 113, 112, 115, 127, 129, 114, 131, 112, 123, 117, 110, 108, 115, 104, 115, 106, 114, 113, 107, 116, 107, 117, 129, 104, 118, 132, 123, 122, 115, 107, 116, 94, 130, 112, 127, 123, 129, 112, 103, 116, 117, 124, 111, 113, 105, 115, 108, 117, 106, 133, 120, 120, 132, 110, 97, 121, 134, 104, 116, 117, 119, 108, 126, 94, 112, 121, 135, 120, 129, 114, 107, 106, 123, 118, 115, 128, 105, 98, 123, 111, 102, 121, 122, 122, 113, 121, 121, 115, 116, 112, 116, 93, 109, 111, 111, 112, 128, 117, 130, 105, 123, 118, 116, 107, 133, 115, 122, 113, 98, 110, 126, 126, 63, 96, 100, 108, 117, 108, 113, 122, 109, 96, 114, 108, 115, 107, 115, 122, 127, 120, 122, 111, 106, 95, 113, 104, 117, 117, 115, 125, 113, 113, 102, 113, 114, 117, 119, 125, 102, 126, 107, 107, 116, 118, 105, 130, 102, 115, 118, 111, 126, 118, 116, 116, 132, 113, 113, 112, 110, 115, 130, 111, 127, 129, 119, 118, 120, 107, 116, 117, 113, 116, 107, 110, 115, 106, 121, 119, 114, 120, 117, 115, 120, 122, 107, 107, 122, 123, 126, 113, 109, 128, 108, 105, 115, 126, 122, 116, 107, 123, 116, 112, 114, 111, 113, 122, 118, 115, 127, 111, 124, 124, 119, 110, 112, 111, 123, 119, 105, 121, 120, 97, 127, 113, 111, 110, 104, 124, 103, 112, 116, 112, 110, 106, 109, 119, 131, 125, 117, 114, 170, 116, 124, 104, 119, 111, 113, 121, 108, 110, 112, 119, 123, 117, 141, 105, 119, 113, 115, 147, 118, 120, 128, 106, 121, 121, 119, 127, 123, 127, 143, 120, 131, 111, 113, 122, 113, 132, 113, 113, 130, 110, 117, 113, 102, 121, 100, 127, 121, 126, 110, 111, 109, 126, 106, 105, 132, 123, 110, 122, 102, 105, 122, 124, 123, 115, 131, 112, 133, 106, 108, 135, 112, 117, 106, 114, 110, 115, 120, 112, 112, 108, 117, 122, 109, 119, 110, 124, 125, 110, 113, 106, 108, 111, 116, 111, 115, 108, 131, 97, 101, 125, 92, 125, 104, 124, 102, 125, 128, 114, 113, 119, 108, 103, 142, 116, 121, 128, 104, 109, 105, 115, 117, 116, 108, 119, 109, 108, 114, 118, 115, 122, 110, 124, 109, 106, 118, 123, 141, 128, 138, 110, 122, 118, 115, 132, 112, 104, 113, 119, 121, 111, 126, 140, 122, 105, 105, 100, 110, 113, 115, 107, 116, 100, 102, 102, 114, 118, 123, 111, 119, 109, 136, 122, 115, 104, 123, 111, 117, 131, 112, 105, 121, 116, 137, 119, 120, 127, 135, 130, 106, 114, 112, 124, 119, 107, 119, 129, 128, 111, 112, 136, 122, 116, 118, 112, 120, 114, 106, 127, 128, 116, 129, 131, 123, 101, 120, 111, 115, 119, 115, 111, 113, 109, 113, 100, 120, 115, 95, 121, 111, 119, 116, 120, 121, 115, 118, 110, 116, 102, 115, 117, 113, 113, 118, 106, 116, 119, 116, 127, 115, 105, 108, 123, 119, 133, 126, 107, 116, 116, 131, 115, 117, 125, 123, 117, 117, 117, 107, 114, 109, 110, 119, 113, 146, 100, 138, 108, 120, 115, 118, 115, 113, 115, 131, 105, 108, 101, 118, 116, 117, 115, 125, 115, 117, 117, 110, 118, 105, 113, 121, 117, 115, 113, 119, 117, 113, 118, 118, 122, 108, 112, 117, 118, 108, 123, 117, 106, 116, 113, 113, 120, 119, 127, 110, 119, 114, 119, 113, 122, 115, 118, 117, 119, 111, 121, 103, 120, 114, 123, 123, 118, 117, 115, 116, 111, 116, 118, 115, 121, 95, 105, 116, 101, 113, 117, 129, 115, 113, 130, 112, 114, 113, 111, 125, 140, 121, 109, 107, 112, 115, 106, 112, 124, 111, 90, 120, 127, 107, 120, 132, 112, 106, 113, 121, 119, 110, 108, 119, 110, 119, 127, 124, 111, 118, 113, 123, 110, 115, 112, 118, 119, 121, 131, 120, 109, 112, 113, 120, 113, 119, 106, 120, 115, 112, 123, 119, 114, 108, 117, 113, 109, 116, 116, 112, 117, 108, 107, 99, 119, 120, 113, 107, 99, 109, 112, 120, 113, 125, 114, 120, 122, 110, 119, 116, 105, 107, 97, 121, 109, 121, 99, 112, 115, 115, 125, 119, 120, 124, 110, 114, 115, 120, 114, 124, 117, 108, 111, 129, 121, 104, 143, 123, 124, 110, 120, 117, 103, 99, 119, 112, 119, 115, 127, 119, 140, 113, 110, 124, 116, 120, 122, 117, 119, 103, 116, 116, 121, 123, 121, 126, 121, 116, 123, 101, 123, 116, 116, 120, 122, 118, 117, 101, 113, 115, 114, 113, 120, 117, 111, 115, 115, 120, 118, 85, 117, 109, 122, 128, 121, 115, 96, 109, 106, 112, 117, 120, 116, 114, 119, 115, 109, 99, 113, 113, 113, 111, 117, 123, 111, 118, 113, 116, 108, 120, 116, 119, 106, 117, 124, 117, 113, 121, 115, 117, 114, 117, 109, 120, 112, 112, 112, 117, 118, 129, 112, 116, 106, 116, 118, 123, 105, 112, 110, 119, 114, 107, 128, 107, 123, 119, 115, 126, 121, 112, 121, 120, 100, 119, 101, 144, 117, 111, 127, 118, 113, 114, 120, 120, 120, 113, 133, 116, 116, 113, 116, 125, 132, 119, 110, 117, 105, 122, 112, 125, 112, 142, 119, 109, 105, 112, 117, 123, 117, 116, 118, 121, 114, 118, 113, 134, 118, 113, 119, 116, 111, 123, 120, 123, 120, 118, 117, 115, 116, 110, 117, 118, 114, 118, 115, 114, 116, 122, 112, 115, 120, 124, 129, 113, 122, 120, 124, 129, 115, 104, 115, 114, 120, 109, 115, 112, 111, 112, 161, 96, 115, 103, 100, 113, 123, 118, 119, 120, 122, 114, 120, 126, 113, 124, 103, 112, 116, 119, 116, 119, 118, 116, 125, 116, 109, 117, 125, 128, 121, 117, 103, 120, 124, 119, 119, 119, 100, 126, 128, 106, 116, 107, 115, 117, 120, 129, 111, 108, 116, 111, 114, 119, 112, 133, 125, 103, 104, 117, 118, 113, 121, 110, 119, 119, 101, 115, 118, 125, 103, 112, 130, 122, 116, 113, 112, 121, 121, 118, 112, 112, 117, 117, 108, 115, 112, 114, 120, 125, 112, 116, 115, 120, 108, 112, 120, 123, 119, 111, 108, 118, 115, 116, 119, 116, 115, 120, 117, 120, 127, 112, 116, 111, 107, 107, 117, 121, 115, 112, 118, 118, 111, 108, 118, 119, 114, 116, 119, 110, 120, 119, 125, 119, 112, 116, 110, 114, 114, 128, 114, 105, 116, 114, 116, 114, 129, 120, 115, 105, 113, 126, 113, 120, 100, 119, 111, 122, 114, 112, 111, 115, 124, 131, 114, 114, 121, 119, 113, 120, 111, 117, 117, 116, 123, 128, 117, 108, 110, 120, 111, 121, 113, 108, 118, 120, 114, 115, 109, 114, 107, 116, 119, 118, 111, 110, 108, 99, 119, 117, 109, 107, 124, 130, 123, 117, 119, 116, 117, 128, 107, 129, 118, 126, 110, 107, 114, 115, 115, 116, 114, 115, 122, 115, 119, 116, 114, 112, 131, 119, 106, 120, 114, 103, 119, 125, 118, 109, 121, 113, 97, 115, 117, 119, 120, 105, 112, 120, 124, 112, 111, 116, 114, 114, 119, 115, 116, 123, 123, 123, 122, 116, 107, 129, 111, 128, 123, 116, 115, 115, 107, 113, 105, 120, 117, 122, 111, 119, 111, 119, 115, 120, 113, 114, 115, 115, 117, 116, 114, 116, 121, 114, 118, 113, 119, 118, 112, 114, 115, 116, 112, 118, 110, 117, 116, 108, 114, 124, 99, 117, 121, 111, 117, 113, 113, 115, 120, 131, 117, 119, 114, 107, 104, 105, 120, 119, 118, 121, 112, 118, 115, 107, 111, 119, 119, 121, 106, 120, 104, 118, 119, 116, 120, 111, 113, 112, 118, 109, 116, 126, 113, 142, 115, 120, 118, 110, 119, 118, 118, 108, 116, 120, 119, 118, 131, 116, 108, 108, 121, 107, 117, 119, 114, 128, 117, 117, 118, 111, 112, 122, 115, 113, 115, 115, 119, 109, 117, 129, 117, 114, 114, 107, 118, 120, 116, 116, 116, 106, 107, 116, 116, 110, 117, 114, 119, 122, 119, 107, 113, 111, 109, 114, 120, 105, 115, 112, 121, 116, 126, 115, 111, 119, 118, 117, 115, 117, 117, 126, 121, 110, 118, 122, 106, 123, 111, 110, 122, 119, 116, 117, 114, 115, 108, 122, 126, 121, 109, 118, 114, 115, 118, 117, 120, 107, 103, 118, 115, 116, 117, 113, 117, 122, 115, 120, 119, 116, 114, 113, 106, 120, 125, 131, 112, 113, 120, 107, 109, 115, 120, 115, 116, 128, 116, 115, 132, 115, 117, 111, 118, 112, 114, 131, 116, 113, 115, 124, 105, 117, 111, 107, 120, 111, 119, 112, 106, 112, 99, 126, 127, 114, 124, 145, 120, 120, 105, 111, 117, 119, 117, 129, 115, 117, 116, 111, 117, 111, 120, 129, 123, 110, 118, 121, 117, 114, 116, 118, 112, 118, 112, 109, 110, 116, 118, 111, 114, 115, 123, 121, 117, 115, 126, 120, 112, 121, 120, 122, 103, 110, 120, 117, 119, 104, 115, 115, 114, 116, 113, 118, 124, 116, 114, 116, 119, 123, 118, 119, 117, 132, 114, 108, 124, 117, 121, 131, 114, 118, 144, 116, 115, 114, 132, 117, 128, 118, 116, 119, 107, 109, 113, 112, 117, 111, 118, 109, 118, 119, 117, 116, 120, 110, 131, 116, 127, 117, 113, 122, 119, 108, 124, 113, 109, 138, 116, 116, 118, 111, 112, 125, 114, 105, 125, 120, 118, 116, 113, 110, 111, 119, 115, 117, 118, 113, 111, 103, 122, 111, 120, 112, 108, 112, 113, 110, 128, 114, 121, 112, 113, 125, 112, 148, 117, 121, 110, 118, 117, 112, 117, 126, 116, 119, 86, 121, 116, 120, 113, 122, 122, 109, 109, 115, 121, 118, 124, 107, 115, 122, 127, 116, 120, 116, 116, 116, 116, 120, 118, 116, 122, 109, 122, 103, 128, 93, 116, 112, 117, 130, 111, 117, 117, 118, 105, 120, 120, 107, 121, 122, 109, 112, 121, 100, 119, 115, 119, 111, 119, 106, 126, 119, 117, 98, 115, 103, 115, 116, 117, 117, 115, 111, 114, 126, 129, 115, 127, 129, 117, 112, 113, 124, 113, 112, 104, 116, 112, 116, 101, 117, 127, 110, 105, 130, 111, 120, 120, 122, 116, 98, 122, 115, 118, 115, 114, 125, 125, 114, 118, 112, 110, 122, 110, 87, 113, 114, 119, 116, 117, 120, 118, 121, 113, 122, 117, 127, 112, 105, 119, 100, 108, 93, 111, 110, 111, 125, 115, 126, 125, 118, 133, 123, 118, 118, 110, 124, 124, 126, 115, 110, 114, 108, 115, 116, 113, 122, 123, 116, 119, 122, 122, 176, 119, 115, 105, 122, 121, 123, 122, 112, 112, 111, 127, 114, 114, 116, 111, 102, 129, 120, 118, 117, 130, 119, 118, 112, 127, 115, 115, 104, 116, 113, 116, 118, 117, 117, 114, 110, 104, 119, 127, 122, 117, 115, 118, 127, 117, 127, 117, 121, 119, 116, 121, 107, 113, 114, 116, 113, 108, 109, 127, 123, 119, 107, 109, 119, 109, 116, 114, 120, 95, 118, 122, 107, 116, 112, 105, 113, 118, 116, 122, 97, 110, 123, 126, 103, 106, 116, 113, 108, 115, 127, 116, 123, 118, 117, 118, 122, 130, 121, 114, 125, 111, 124, 110, 109, 116, 118, 118, 112, 109, 106, 110, 116, 114, 109, 110, 114, 116, 114, 118, 112, 128, 127, 116, 102, 114, 123, 123, 121, 123, 127, 135, 123, 120, 115, 111, 121, 119, 121, 120, 97, 110, 119, 109, 115, 114, 101, 125, 122, 148, 117, 127, 114, 113, 118, 111, 125, 118, 114, 111, 112, 117, 127, 118, 117, 115, 120, 125, 117, 112, 123, 118, 106, 115, 119, 119, 107, 116, 117, 117, 124, 110, 125, 113, 118, 117, 113, 109, 105, 118, 113, 114, 109, 125, 130, 106, 118, 116, 117, 127, 118, 122, 119, 120, 117, 117, 108, 116, 118, 113, 112, 126, 106, 117, 120, 109, 116, 111, 118, 113, 126, 117, 129, 109, 118, 121, 122, 117, 121, 114, 122, 118, 112, 112, 119, 115, 117, 113, 124, 112, 106, 96, 117, 112, 112, 119, 104, 115, 98, 139, 119, 120, 115, 132, 121, 120, 105, 116, 114, 119, 100, 113, 109, 122, 114, 120, 126, 106, 128, 114, 106, 126, 124, 109, 113, 124, 119, 118, 125, 120, 123, 107, 106, 112, 97, 112, 117, 111, 119, 105, 102, 116, 128, 108, 111, 120, 114, 122, 113, 119, 125, 102, 133, 114, 115, 117, 104, 104, 146, 107, 96, 99, 118, 126, 111, 118, 102, 106, 122, 122, 113, 112, 119, 129, 117, 109, 124, 120, 125, 125, 94, 115, 123, 124, 124, 109, 116, 93, 120, 112, 106, 111, 131, 117, 120, 110, 123, 108, 111, 122, 122, 111, 106, 107, 132, 121, 111, 121, 124, 110, 112, 128, 105, 115, 123, 101, 117, 125, 99, 114, 116, 96, 87, 118, 117, 107, 111, 118, 118, 124, 119, 119, 127, 130, 120, 116, 116, 85, 120, 122, 107, 101, 106, 121, 124, 117, 110, 114, 100, 117, 120, 107, 132, 127, 117, 118, 122, 121, 117, 98, 114, 116, 102, 121, 104, 117, 120, 109, 130, 121, 125, 137, 98, 121, 99, 131, 108, 127, 118, 135, 104, 105, 96, 122, 115, 94, 115, 121, 126, 115, 116, 110, 95, 111, 115, 113, 106, 114, 115, 117, 130, 129, 119, 114, 125, 98, 128, 105, 124, 119, 106, 117, 113, 113, 99, 102, 110, 128, 113, 104, 124, 118, 130, 120, 111, 123, 121, 109, 128, 125, 119, 111, 127, 103, 119, 109, 141, 111, 135, 113, 111, 126, 180, 107, 119, 119, 112, 137, 118, 92, 110, 102, 101, 120, 108, 117, 120, 127, 114, 101, 112, 116, 127, 156, 140, 117, 119, 96, 119, 102, 117, 111, 118, 122, 130, 106, 119, 113, 116, 122, 102, 127, 116, 111, 98, 118, 103, 124, 121, 128, 113, 114, 120, 118, 128, 95, 119, 123, 138, 118, 112, 119, 126, 100, 118, 103, 103, 111, 99, 121, 98, 106, 108, 114, 141, 121, 90, 114, 128, 116, 125, 132, 114, 117, 118, 110, 126, 114, 107, 114, 123, 113, 123, 113, 113, 123, 106, 113, 107, 107, 126, 123, 141, 106, 95, 116, 122, 119, 113, 130, 111, 120, 115, 108, 112, 122, 112, 110, 116, 120, 107, 155, 109, 117, 107, 117, 107, 109, 118, 114, 123, 126, 131, 124, 103, 119, 123, 107, 113, 112, 122, 112, 111, 130, 127, 125, 122, 124, 131, 101, 110, 98, 109, 111, 126, 78, 112, 117, 110, 106, 126, 116, 95, 129, 114, 104, 115, 113, 113, 112, 136, 111, 97, 117, 107, 97, 109, 127, 131, 116, 112, 119, 116, 113, 121, 126, 124, 106, 109, 124, 118, 123, 113, 110, 115, 119, 105, 123, 113, 109, 122, 96, 118, 78, 119, 117, 103, 140, 110, 109, 109, 114, 120, 106, 126, 133, 116, 114, 118, 129, 124, 106, 118, 115, 107, 119, 100, 148, 109, 142, 120, 115, 114, 121, 97, 114, 124, 130, 125, 105, 102, 118, 119, 124, 124, 118, 103, 120, 120, 116, 120, 119, 108, 152, 112, 108, 112, 126, 103, 114, 126, 112, 119, 106, 122, 135, 95, 116, 109, 127, 129, 116, 107, 129, 115, 117, 118, 113, 91, 128, 119, 112, 120, 120, 124, 105, 123, 127, 129, 121, 123, 102, 112, 78, 116, 106, 101, 132, 119, 116, 111, 114, 140, 140, 103, 105, 120, 125, 117, 118, 112, 115, 122, 109, 117, 130, 124, 105, 125, 107, 130, 131, 118, 116, 120, 108, 108, 117, 111, 110, 114, 124, 112, 119, 121, 116, 125, 125, 113, 105, 111, 109, 129, 122, 110, 121, 115, 106, 128, 122, 126, 101, 109, 120, 114, 106, 113, 108, 104, 113, 119, 130, 122, 126, 120, 110, 129, 121, 115, 123, 126, 112, 103, 107, 124, 113, 100, 116, 117, 112, 125, 131, 110, 125, 107, 125, 115, 127, 123, 118, 79, 110, 108, 111, 107, 108, 114, 122, 101, 121, 120, 115, 98, 124, 151, 93, 108, 127, 124, 114, 118, 137, 119, 120, 105, 133, 104, 115, 108, 104, 119, 121, 121, 102, 159, 131, 94, 115, 123, 120, 114, 118, 127, 121, 121, 116, 122, 112, 100, 109, 96, 142, 127, 127, 119, 124, 134, 135, 113, 117, 150, 120, 128, 118, 107, 115, 128, 111, 103, 115, 132, 130, 132, 111, 113, 94, 127, 116, 106, 132, 131, 127, 127, 117, 114, 118, 112, 116, 101, 103, 121, 113, 118, 106, 156, 117, 102, 120, 130, 121, 120, 122, 114, 120, 121, 114, 115, 102, 111, 119, 116, 119, 129, 128, 100, 118, 105, 101, 118, 115, 117, 101, 116, 134, 103, 120, 115, 116, 107, 112, 126, 120, 120, 111, 97, 121, 118, 113, 116, 106, 102, 126, 132, 129, 122, 106, 136, 114, 116, 87, 103, 127, 120, 122, 130, 127, 152, 118, 119, 124, 125, 118, 118, 123, 109, 128, 110, 120, 106, 130, 115, 117, 111, 112, 132, 133, 126, 124, 125, 119, 121, 107, 102, 112, 131, 121, 110, 108, 87, 122, 118, 122, 114, 127, 118, 126, 122, 127, 101, 87, 118, 108, 114, 119, 100, 129, 110, 104, 141, 115, 99, 99, 106, 130, 104, 120, 112, 113, 127, 118, 113, 118, 118, 133, 102, 104, 114, 138, 114, 116, 129, 109, 120, 99, 113, 113, 104, 125, 119, 142, 133, 138, 109, 126, 117, 115, 116, 120, 108, 124, 147, 107, 116, 112, 106, 108, 109, 120, 106, 101, 106, 117, 120, 104, 125, 133, 109, 120, 116, 117, 114, 120, 127, 120, 129, 102, 108, 114, 118, 113, 103, 103, 122, 97, 100, 133, 111, 117, 119, 106, 120, 117, 113, 120, 120, 78, 108, 116, 128, 96, 125, 107, 108, 116, 119, 111, 131, 111, 124, 129, 129, 123, 125, 139, 132, 113, 113, 106, 136, 124, 116, 116, 116, 117, 130, 115, 111, 121, 119, 120, 130, 118, 103, 107, 126, 118, 118, 121, 116, 91, 111, 111, 126, 113, 111, 122, 115, 114, 121, 114, 109, 100, 123, 120, 112, 102, 123, 105, 128, 125, 137, 108, 128, 122, 115, 112, 119, 111, 117, 108, 114, 110, 104, 106, 110, 113, 112, 109, 91, 117, 118, 116, 141, 125, 108, 96, 137, 129, 113, 115, 107, 118, 109, 86, 118, 121, 108, 121, 117, 113, 90, 129, 120, 149, 113, 126, 120, 113, 104, 111, 102, 110, 125, 109, 111, 110, 118, 128, 107, 136, 116, 116, 109, 107, 114, 100, 112, 113, 113, 117, 131, 137, 117, 106, 97, 105, 114, 110, 109, 112, 104, 115, 121, 126, 107, 98, 121, 113, 108, 121, 104, 138, 111, 109, 140, 117, 113, 113, 100, 118, 111, 110, 104, 112, 116, 124, 113, 125, 113, 106, 116, 109, 110, 114, 121, 118, 105, 120, 131, 99, 109, 115, 122, 105, 110, 113, 111, 118, 121, 97, 117, 88, 117, 111, 100, 114, 116, 130, 111, 115, 110, 127, 107, 116, 100, 103, 103, 104, 113, 111, 116, 127, 133, 112, 134, 110, 101, 109, 113, 122, 126, 114, 107, 111, 105, 116, 111, 125, 100, 107, 114, 126, 116, 96, 111, 127, 124, 121, 108, 124, 105, 115, 114, 110, 111, 91, 119, 103, 105, 125, 104, 124, 114, 88, 103, 111, 108, 128, 117, 94, 113, 113, 97, 120, 123, 109, 129, 117, 113, 110, 104, 102, 111, 123, 106, 119, 100, 125, 109, 110, 113, 106, 93, 130, 110, 117, 114, 108, 121, 135, 104, 123, 106, 130, 113, 121, 97, 125, 106, 115, 142, 123, 120, 126, 118, 110, 128, 106, 111, 136, 102, 128, 99, 114, 125, 127, 124, 120, 131, 119, 109, 111, 118, 122, 121, 111, 111, 122, 103, 104, 138, 138, 100, 120, 116, 142, 116, 111, 103, 111, 130, 148, 122, 93, 134, 106, 105, 119, 108, 105, 95, 112, 99, 111, 114, 105, 126, 126, 117, 107, 112, 107, 140, 124, 111, 124, 128, 116, 126, 116, 115, 114, 116, 107, 130, 115, 125, 133, 116, 110, 123, 141, 111, 111, 105, 116, 113, 115, 106, 99, 123, 116, 130, 112, 112, 131, 106, 107, 128, 90, 107, 121, 115, 126, 106, 105, 109, 118, 110, 113, 115, 96, 126, 103, 100, 115, 134, 118, 126, 116, 113, 127, 126, 122, 123, 123, 89, 122, 101, 113, 108, 120, 140, 122, 122, 120, 114, 133, 109, 120, 101, 126, 129, 122, 125, 116, 123, 145, 105, 84, 120, 111, 123, 119, 106, 127, 123, 125, 101, 108, 115, 117, 98, 119, 117, 107, 113, 109, 104, 126, 134, 113, 115, 118, 115, 114, 124, 111, 123, 125, 98, 83, 132, 113, 118, 108, 115, 118, 120, 99, 107, 128, 125, 114, 101, 93, 131, 113, 114, 116, 102, 116, 122, 98, 103, 118, 128, 113, 119, 100, 127, 97, 136, 111, 103, 127, 130, 113, 107, 125, 116, 99, 110, 114, 97, 102, 104, 108, 110, 105, 110, 118, 125, 119, 92, 123, 118, 137, 109, 108, 117, 106, 119, 94, 127, 95, 131, 124, 139, 123, 106, 129, 118, 119, 108, 119, 112, 113, 106, 113, 135, 106, 129, 128, 103, 108, 113, 125, 101, 115, 111, 109, 130, 105, 137, 104, 113, 107, 129, 124, 109, 138, 116, 122, 117, 109, 125, 101, 94, 99, 120, 102, 125, 107, 122, 104, 128, 99, 112, 102, 120, 107, 120, 121, 118, 127, 108, 110, 122, 112, 97, 99, 121, 115, 119, 118, 123, 114, 127, 129, 134, 116, 110, 111, 110, 114, 124, 116, 127, 115, 120, 102, 108, 119, 111, 112, 115, 129, 140, 125, 126, 115, 115, 109, 114, 130, 109, 109, 114, 121, 95, 115, 119, 116, 115, 115, 111, 104, 136, 102, 115, 112, 128, 118, 127, 120, 130, 138, 124, 138, 122, 102, 121, 110, 105, 114, 115, 107, 111, 104, 111, 97, 111, 108, 110, 119, 114, 80, 133, 124, 111, 113, 105, 118, 133, 100, 131, 111, 124, 110, 122, 114, 128, 146, 110, 133, 104, 116, 117, 133, 138, 122, 113, 104, 103, 133, 122, 109, 128, 122, 100, 133, 118, 107, 133, 116, 96, 124, 109, 103, 118, 115, 116, 122, 127, 123, 125, 101, 108, 121, 104, 138, 112, 125, 121, 128, 121, 114, 112, 97, 136, 108, 110, 110, 103, 121, 117, 108, 133, 114, 105, 116, 139, 115, 112, 101, 110, 119, 117, 124, 124, 127, 114, 122, 121, 105, 105, 111, 111, 124, 118, 127, 121, 104, 114, 125, 110, 120, 114, 117, 134, 119, 118, 126, 108, 108, 119, 122, 104, 107, 114, 112, 119, 118, 120, 86, 105, 112, 120, 131, 107, 120, 117, 116, 107, 124, 106, 117, 123, 122, 117, 126, 86, 121, 137, 115, 111, 115, 118, 113, 119, 98, 112, 95, 108, 121, 110, 99, 112, 141, 104, 116, 135, 129, 130, 110, 114, 116, 115, 113, 116, 116, 107, 127, 121, 115, 112, 97, 126, 113, 130, 107, 117, 124, 114, 112, 94, 128, 109, 125, 98, 115, 120, 108, 108, 118, 100, 115, 114, 121, 110, 105, 117, 113, 121, 110, 127, 122, 117, 119, 123, 128, 111, 108, 109, 123, 124, 128, 97, 108, 107, 115, 105, 112, 115, 121, 104, 104, 120, 122, 112, 108, 101, 113, 116, 127, 113, 97, 115, 112, 121, 112, 123, 117, 113, 131, 112, 114, 107, 112, 110, 123, 127, 114, 112, 126, 121, 111, 112, 122, 94, 117, 128, 113, 125, 117, 112, 96, 125, 106, 103, 113, 105, 120, 116, 124, 159, 111, 103, 102, 99, 92, 117, 131, 136, 126, 94, 108, 97, 89, 117, 102, 117, 117, 135, 130, 129, 100, 127, 117, 112, 117, 125, 116, 129, 118, 111, 113, 113, 124, 109, 115, 132, 111, 109, 101, 116, 118, 131, 121, 125, 105, 106, 104, 109, 118, 121, 121, 121, 108, 122, 102, 108, 118, 128, 130, 102, 119, 116, 117, 135, 116, 125, 136, 133, 120, 107, 109, 108, 119, 120, 100, 117, 114, 103, 128, 115, 111, 107, 120, 116, 122, 106, 106, 126, 111, 124, 121, 114, 128, 101, 103, 112, 96, 126, 97, 110, 121, 116, 125, 128, 125, 107, 121, 108, 145, 113, 106, 115, 100, 105, 93, 120, 108, 110, 116, 113, 100, 134, 131, 119, 124, 127, 114, 123, 131, 128, 120, 120, 127, 116, 133, 121, 139, 120, 105, 108, 120, 114, 121, 119, 104, 110, 115, 118, 114, 116, 125, 108, 106, 110, 118, 103, 106, 97, 123, 127, 143, 106, 118, 117, 121, 117, 115, 114, 115, 112, 112, 106, 101, 122, 114, 121, 116, 129, 111, 109, 111, 115, 124, 117, 120, 118, 107, 137, 111, 108, 112, 123, 114, 113, 121, 123, 116, 101, 117, 119, 117, 112, 105, 109, 115, 144, 121, 126, 115, 128, 108, 113, 111, 104, 116, 118, 123, 119, 110, 109, 120, 118, 122, 107, 110, 109, 116, 121, 105, 105, 113, 130, 120, 106, 113, 110, 118, 130, 122, 120, 115, 119, 113, 127, 126, 124, 119, 118, 128, 117, 104, 114, 114, 102, 122, 103, 126, 117, 111, 121, 99, 126, 112, 123, 131, 118, 116, 119, 113, 122, 111, 117, 125, 119, 120, 122, 118, 119, 114, 117, 110, 114, 115, 108, 100, 110, 121, 133, 93, 106, 121, 120, 138, 111, 138, 123, 123, 124, 97, 110, 121, 106, 131, 113, 123, 110, 119, 116, 131, 87, 115, 104, 120, 95, 144, 117, 114, 107, 119, 119, 121, 133, 117, 98, 111, 107, 119, 105, 127, 121, 110, 115, 130, 133, 97, 126, 119, 111, 119, 110, 115, 91, 98, 111, 119, 104, 114, 110, 118, 98, 121, 131, 124, 123, 108, 114, 117, 109, 95, 115, 131, 108, 130, 110, 114, 119, 124, 104, 120, 107, 129, 117, 127, 122, 109, 106, 113, 111, 127, 110, 121, 115, 113, 107, 117, 111, 106, 113, 116, 139, 93, 108, 120, 131, 109, 119, 114, 117, 117, 139, 105, 110, 119, 126, 117, 122, 115, 119, 109, 127, 131, 115, 105, 113, 118, 102, 104, 115, 110, 112, 104, 132, 108, 124, 122, 129, 106, 116, 134, 119, 81, 135, 109, 124, 113, 118, 111, 109, 132, 101, 142, 110, 126, 136, 102, 122, 107, 113, 114, 137, 129, 105, 109, 125, 145, 102, 112, 123, 120, 113, 121, 117, 131, 122, 106, 104, 116, 122, 119, 125, 117, 113, 115, 109, 104, 99, 113, 124, 113, 103, 118, 116, 118, 115, 125, 84, 124, 106, 118, 116, 127, 108, 117, 106, 131, 114, 122, 115, 122, 119, 126, 117, 106, 110, 115, 94, 112, 123, 110, 107, 126, 119, 114, 130, 117, 126, 126, 116, 90, 109, 124, 117, 124, 115, 110, 113, 118, 117, 107, 116, 104, 126, 118, 112, 123, 127, 129, 118, 111, 91, 100, 117, 117, 99, 132, 116, 114, 117, 113, 98, 109, 112, 104, 121, 108, 114, 118, 115, 122, 118, 122, 113, 124, 126, 121, 108, 136, 101, 108, 120, 123, 114, 105, 106, 125, 108, 124, 118, 106, 109, 117, 114, 128, 114, 120, 121, 114, 111, 125, 112, 100, 113, 141, 119, 121, 126, 114, 135, 126, 105, 112, 109, 122, 119, 127, 102, 112, 110, 118, 103, 115, 120, 116, 112, 100, 111, 114, 109, 110, 130, 105, 109, 113, 125, 113, 114, 124, 109, 146, 100, 112, 125, 130, 120, 101, 114, 103, 125, 118, 122, 126, 121, 116, 122, 105, 137, 91, 110, 122, 114, 109, 125, 121, 110, 130, 114, 116, 118, 116, 105, 125, 134, 106, 120, 113, 112, 121, 107, 117, 123, 116, 118, 111, 117, 117, 111, 122, 118, 115, 111, 119, 115, 121, 106, 96, 116, 105, 115, 105, 99, 122, 93, 121, 124, 115, 122, 116, 122, 115, 116, 118, 117, 110, 113, 121, 117, 127, 138, 120, 114, 115, 115, 108, 105, 121, 125, 156, 109, 124, 119, 112, 96, 115, 129, 119, 120, 117, 119, 106, 98, 117, 105, 122, 117, 116, 107, 119, 115, 122, 91, 102, 111, 118, 110, 127, 111, 121, 97, 112, 116, 103, 104, 114, 77, 118, 128, 85, 125, 108, 117, 103, 122, 110, 129, 129, 115, 113, 116, 119, 110, 121, 121, 126, 116, 116, 110, 104, 115, 110, 107, 135, 122, 134, 118, 107, 125, 120, 118, 124, 116, 116, 129, 109, 108, 94, 123, 81, 104, 152, 111, 125, 113, 112, 131, 124, 118, 128, 117, 135, 99, 117, 117, 112, 112, 121, 110, 114, 114, 108, 119, 106, 128, 112, 106, 115, 119, 115, 133, 101, 117, 123, 119, 111, 121, 125, 108, 131, 111, 104, 84, 97, 113, 117, 116, 113, 114, 100, 105, 119, 118, 108, 123, 120, 109, 125, 132, 117, 115, 132, 119, 114, 126, 91, 115, 112, 103, 103, 120, 134, 113, 119, 111, 119, 103, 129, 122, 88, 115, 117, 119, 107, 118, 111, 122, 122, 119, 112, 105, 111, 121, 115, 125, 114, 120, 118, 117, 119, 120, 117, 130, 118, 113, 111, 109, 99, 135, 119, 99, 110, 115, 121, 127, 107, 125, 125, 131, 128, 115, 120, 114, 114, 118, 115, 108, 127, 113, 115, 113, 111, 114, 116, 122, 125, 112, 122, 122, 113, 139, 99, 110, 121, 120, 125, 128, 113, 122, 112, 78, 117, 117, 131, 103, 141, 129, 115, 111, 111, 121, 120, 118, 119, 111, 110, 92, 119, 122, 123, 100, 116, 108, 101, 118, 110, 120, 103, 116, 101, 110, 106, 113, 113, 127, 117, 109, 112, 111, 116, 116, 129, 125, 110, 126, 109, 116, 103, 132, 72, 125, 111, 122, 144, 117, 113, 98, 109, 120, 122, 121, 113, 117, 101, 121, 123, 116, 127, 136, 118, 142, 89, 90, 120, 121, 122, 119, 94, 125, 111, 110, 114, 116, 107, 105, 113, 115, 118, 126, 117, 159, 124, 108, 108, 119, 121, 116, 117, 122, 116, 109, 131, 117, 127, 111, 118, 146, 112, 114, 108, 127, 130, 117, 108, 113, 83, 115, 141, 134, 119, 136, 118, 120, 119, 125, 116, 122, 124, 112, 105, 97, 127, 116, 121, 111, 115, 121, 111, 131, 115, 112, 122, 116, 124, 112, 112, 113, 120, 110, 123, 117, 112, 117, 114, 120, 116, 110, 135, 74, 118, 115, 111, 128, 109, 117, 111, 122, 113, 110, 117, 122, 117, 88, 124, 129, 109, 95, 117, 117, 112, 105, 117, 109, 115, 115, 125, 121, 107, 122, 121, 130, 111, 121, 105, 118, 113, 100, 111, 122, 131, 114, 107, 101, 97, 106, 122, 114, 104, 125, 106, 109, 93, 105, 115, 123, 126, 109, 116, 115, 111, 112, 103, 125, 117, 127, 137, 114, 112, 111, 97, 115, 121, 116, 125, 123, 112, 125, 118, 123, 112, 121, 120, 130, 115, 119, 114, 113, 115, 94, 104, 118, 117, 111, 108, 101, 117, 110, 116, 118, 110, 113, 117, 119, 118, 104, 119, 89, 123, 113, 126, 110, 110, 116, 116, 115, 110, 120, 116, 121, 122, 117, 112, 120, 103, 122, 111, 120, 116, 116, 118, 108, 112, 106, 126, 97, 115, 105, 109, 115, 124, 119, 118, 127, 124, 111, 111, 126, 118, 117, 122, 112, 117, 122, 121, 120, 120, 115, 121, 106, 117, 123, 122, 106, 130, 107, 124, 115, 115, 120, 117, 107, 108, 109, 126, 122, 116, 118, 115, 110, 117, 120, 105, 106, 106, 110, 120, 118, 115, 114, 116, 115, 111, 121, 121, 117, 122, 117, 100, 121, 124, 125, 119, 120, 122, 114, 117, 128, 120, 116, 112, 113, 121, 104, 114, 119, 128, 121, 120, 124, 98, 122, 113, 123, 108, 115, 118, 109, 109, 122, 121, 114, 116, 122, 107, 113, 117, 125, 106, 115, 110, 112, 113, 107, 116, 113, 125, 118, 109, 120, 112, 131, 109, 119, 112, 128, 109, 119, 117, 124, 112, 111, 127, 110, 134, 118, 112, 118, 120, 123, 122, 138, 95, 125, 117, 117, 112, 112, 113, 112, 117, 118, 114, 118, 111, 119, 118, 113, 117, 116, 141, 110, 116, 118, 137, 117, 115, 115, 120, 116, 122, 117, 106, 116, 112, 133, 117, 121, 121, 118, 121, 112, 113, 114, 117, 118, 115, 123, 124, 121, 104, 115, 113, 112, 111, 106, 120, 98, 125, 120, 122, 121, 104, 115, 129, 116, 111, 118, 127, 121, 115, 114, 122, 108, 118, 123, 113, 113, 122, 111, 110, 109, 108, 124, 124, 118, 118, 126, 113, 122, 121, 109, 125, 113, 109, 120, 127, 114, 114, 89, 110, 125, 124, 119, 119, 110, 110, 115, 99, 114, 116, 120, 122, 114, 128, 126, 110, 112, 116, 118, 116, 119, 116, 118, 114, 119, 118, 125, 114, 91, 103, 126, 114, 105, 115, 113, 135, 114, 117, 108, 110, 116, 126, 106, 114, 125, 115, 124, 124, 117, 123, 130, 115, 124, 134, 109, 116, 113, 120, 112, 106, 121, 121, 113, 112, 123, 122, 111, 117, 115, 122, 118, 113, 127, 125, 118, 113, 113, 130, 111, 117, 111, 118, 132, 115, 113, 109, 119, 117, 115, 101, 114, 113, 119, 116, 120, 110, 115, 113, 121, 101, 118, 107, 119, 106, 111, 121, 121, 117, 121, 121, 112, 125, 112, 122, 112, 115, 106, 113, 118, 122, 117, 113, 110, 123, 119, 119, 122, 115, 122, 119, 113, 116, 116, 111, 111, 122, 116, 114, 120, 119, 114, 117, 111, 109, 118, 119, 119, 123, 103, 111, 110, 129, 123, 116, 112, 116, 123, 103, 121, 123, 120, 111, 113, 118, 115, 107, 101, 116, 117, 120, 117, 109, 127, 110, 104, 120, 121, 116, 98, 113, 125, 120, 113, 115, 122, 108, 106, 112, 116, 121, 123, 113, 108, 123, 116, 123, 111, 115, 121, 107, 118, 115, 114, 121, 126, 115, 120, 105, 99, 127, 122, 117, 131, 112, 122, 118, 108, 102, 118, 117, 127, 129, 118, 119, 116, 101, 106, 120, 115, 102, 120, 118, 115, 121, 116, 130, 99, 110, 117, 110, 127, 109, 116, 113, 128, 121, 117, 122, 114, 119, 123, 111, 113, 133, 132, 134, 113, 123, 105, 122, 126, 116, 119, 115, 108, 119, 119, 114, 111, 123, 128, 97, 126, 106, 113, 122, 110, 110, 119, 113, 120, 126, 108, 112, 118, 108, 128, 121, 115, 124, 121, 110, 132, 118, 121, 126, 122, 126, 124, 124, 129, 98, 123, 109, 105, 127, 104, 120, 112, 133, 135, 119, 111, 126, 111, 111, 108, 130, 119, 115, 110, 93, 117, 110, 117, 112, 124, 121, 126, 111, 122, 123, 119, 129, 117, 105, 127, 108, 115, 113, 92, 116, 125, 108, 121, 116, 114, 111, 114, 109, 99, 133, 110, 105, 128, 130, 129, 123, 112, 102, 118, 106, 121, 109, 114, 108, 129, 129, 119, 124, 117, 100, 125, 127, 112, 122, 138, 94, 127, 106, 123, 114, 122, 125, 125, 130, 118, 116, 106, 122, 106, 124, 123, 113, 120, 124, 124, 119, 119, 107, 122, 147, 117, 112, 103, 125, 95, 127, 121, 102, 107, 128, 110, 103, 121, 114, 125, 123, 136, 113, 113, 118, 107, 131, 133, 123, 107, 124, 117, 109, 114, 113, 108, 123, 115, 125, 113, 104, 107, 96, 117, 122, 124, 98, 107, 131, 116, 107, 121, 123, 125, 118, 119, 114, 112, 135, 144, 115, 119, 107, 99, 110, 112, 123, 124, 121, 87, 104, 117, 110, 123, 129, 101, 126, 119, 121, 100, 119, 136, 122, 117, 144, 122, 117, 121, 119, 110, 113, 103, 128, 113, 113, 111, 121, 115, 114, 116, 113, 115, 121, 113, 123, 129, 121, 124, 117, 117, 107, 115, 114, 121, 102, 130, 112, 117, 114, 111, 115, 129, 115, 95, 115, 124, 124, 129, 123, 106, 113, 126, 121, 123, 114, 126, 128, 116, 118, 120, 109, 122, 103, 127, 115, 123, 112, 113, 122, 130, 118, 121, 111, 114, 123, 112, 120, 96, 116, 112, 125, 117, 95, 122, 121, 111, 110, 119, 120, 123, 123, 109, 128, 106, 113, 108, 117, 121, 135, 123, 113, 131, 132, 125, 114, 113, 122, 115, 146, 111, 109, 118, 134, 118, 116, 122, 102, 112, 116, 119, 128, 118, 114, 112, 114, 124, 117, 128, 110, 118, 121, 112, 119, 116, 106, 123, 115, 120, 119, 128, 104, 111, 117, 129, 110, 122, 112, 116, 113, 116, 103, 114, 107, 116, 123, 109, 119, 124, 110, 116, 114, 118, 117, 114, 106, 108, 107, 114, 119, 122, 110, 149, 122, 120, 113, 112, 125, 106, 118, 120, 116, 127, 130, 121, 116, 105, 124, 131, 124, 106, 102, 132, 114, 120, 119, 104, 115, 123, 137, 124, 130, 106, 118, 126, 109, 112, 123, 122, 114, 123, 120, 119, 125, 119, 135, 121, 117, 105, 138, 126, 114, 104, 110, 117, 113, 114, 117, 122, 110, 121, 128, 132, 122, 112, 119, 121, 115, 127, 124, 115, 122, 115, 110, 109, 124, 118, 104, 93, 141, 115, 118, 128, 96, 114, 118, 115, 110, 116, 122, 105, 112, 118, 119, 108, 127, 120, 118, 123, 113, 119, 123, 115, 124, 111, 107, 118, 124, 107, 110, 130, 124, 119, 115, 107, 122, 120, 121, 115, 117, 116, 114, 116, 109, 88, 135, 122, 115, 116, 104, 122, 124, 121, 113, 120, 122, 127, 114, 108, 116, 114, 118, 111, 122, 115, 123, 112, 129, 121, 118, 114, 117, 120, 111, 113, 120, 119, 125, 114, 114, 109, 118, 111, 118, 122, 115, 114, 126, 119, 119, 123, 116, 131, 119, 123, 111, 121, 121, 117, 120, 112, 126, 116, 113, 116, 109, 114, 117, 114, 123, 117, 123, 145, 105, 122, 119, 109, 111, 128, 111, 118, 85, 116, 117, 120, 118, 115, 114, 112, 117, 129, 117, 108, 119, 123, 105, 78, 107, 114, 118, 102, 118, 107, 113, 116, 120, 108, 119, 123, 113, 119, 118, 93, 118, 112, 107, 130, 121, 117, 119, 120, 119, 121, 116, 120, 116, 119, 122, 116, 123, 114, 121, 117, 114, 117, 113, 112, 119, 115, 115, 118, 113, 123, 115, 105, 124, 109, 112, 115, 118, 113, 124, 110, 124, 124, 119, 119, 120, 122, 108, 114, 123, 118, 117, 117, 115, 111, 120, 95, 122, 126, 124, 115, 121, 120, 128, 120, 116, 118, 127, 109, 116, 135, 91, 122, 107, 108, 118, 122, 107, 101, 111, 122, 121, 112, 106, 118, 116, 117, 119, 112, 132, 114, 104, 122, 109, 133, 120, 117, 119, 118, 163, 114, 123, 122, 116, 118, 120, 113, 105, 107, 126, 122, 119, 103, 126, 108, 130, 121, 119, 124, 116, 126, 122, 131, 118, 128, 117, 113, 115, 115, 131, 100, 113, 118, 105, 132, 108, 107, 104, 113, 119, 121, 120, 123, 124, 114, 74, 110, 113, 116, 112, 123, 115, 117, 116, 125, 124, 112, 116, 114, 119, 121, 112, 119, 111, 113, 117, 162, 117, 117, 121, 114, 128, 115, 119, 109, 111, 118, 112, 118, 125, 119, 117, 109, 119, 119, 123, 115, 123, 109, 105, 116, 117, 119, 109, 126, 105, 109, 121, 121, 118, 112, 146, 118, 126, 119, 117, 123, 111, 125, 125, 116, 123, 113, 136, 114, 113, 103, 115, 113, 124, 105, 102, 112, 107, 112, 118, 124, 106, 124, 117, 112, 114, 121, 129, 123, 103, 126, 115, 121, 118, 102, 120, 125, 122, 109, 120, 110, 116, 117, 113, 110, 156, 118, 115, 116, 121, 109, 114, 119, 120, 109, 109, 113, 119, 114, 109, 114, 115, 108, 119, 103, 107, 114, 109, 126, 120, 113, 115, 123, 117, 123, 116, 110, 118, 113, 121, 117, 116, 117, 113, 117, 118, 113, 123, 113, 122, 120, 108, 113, 107, 123, 123, 109, 118, 122, 113, 116, 101, 115, 111, 104, 120, 118, 121, 113, 109, 94, 122, 122, 122, 116, 118, 109, 121, 112, 116, 122, 115, 129, 120, 122, 124, 115, 111, 64, 121, 123, 107, 123, 118, 126, 112, 111, 104, 110, 118, 110, 115, 119, 108, 104, 124, 118, 115, 131, 113, 111, 111, 129, 111, 120, 107, 109, 114, 117, 113, 116, 121, 116, 108, 111, 110, 112, 118, 114, 111, 116, 125, 124, 116, 109, 119, 120, 110, 119, 116, 120, 116, 130, 121, 113, 126, 112, 117, 118, 114, 119, 117, 131, 112, 117, 118, 116, 111, 144, 123, 115, 123, 124, 120, 107, 124, 112, 117, 118, 121, 116, 121, 114, 117, 120, 115, 113, 110, 118, 118, 113, 118, 109, 116, 120, 124, 120, 117, 121, 110, 105, 114, 120, 117, 116, 111, 115, 120, 115, 115, 120, 122, 105, 115, 118, 116, 106, 120, 115, 119, 121, 115, 108, 121, 110, 119, 114, 128, 110, 110, 116, 98, 114, 109, 121, 115, 90, 113, 121, 120, 120, 122, 111, 110, 114, 165, 124, 114, 114, 115, 118, 116, 112, 111, 117, 117, 119, 115, 120, 109, 157, 119, 126, 116, 117, 118, 120, 116, 111, 119, 117, 113, 109, 113, 121, 116, 146, 116, 116, 119, 109, 110, 125, 117, 110, 116, 131, 107, 121, 113, 115, 122, 118, 115, 115, 122, 116, 118, 125, 116, 121, 118, 121, 117, 118, 126, 116, 125, 106, 133, 119, 116, 111, 120, 117, 115, 117, 129, 115, 118, 120, 122, 113, 118, 121, 120, 110, 122, 117, 124, 117, 116, 162, 111, 120, 116, 122, 111, 127, 94, 121, 110, 114, 110, 116, 118, 150, 135, 123, 121, 112, 116, 117, 117, 118, 123, 116, 114, 114, 123, 119, 122, 117, 111, 115, 115, 113, 128, 114, 119, 120, 119, 118, 123, 126, 68, 118, 125, 120, 116, 126, 112, 131, 103, 108, 126, 118, 126, 111, 110, 113, 116, 116, 120, 128, 123, 121, 120, 101, 121, 113, 123, 137, 120, 125, 116, 139, 117, 118, 116, 113, 111, 123, 103, 110, 115, 114, 116, 117, 115, 115, 99, 114, 123, 117, 115, 113, 120, 122, 119, 102, 113, 115, 115, 117, 120, 122, 118, 113, 118, 119, 115, 69, 119, 120, 116, 110, 116, 119, 117, 119, 113, 120, 120, 115, 120, 111, 117, 122, 119, 114, 116, 118, 119, 127, 116, 113, 113, 115, 121, 95, 125, 116, 110, 117, 113, 114, 86, 115, 91, 111, 125, 112, 109, 123, 114, 119, 110, 119, 103, 117, 108, 119, 118, 117, 111, 117, 128, 120, 122, 105, 123, 119, 117, 112, 107, 116, 110, 116, 115, 116, 112, 120, 123, 118, 115, 117, 115, 105, 121, 136, 115, 115, 114, 114, 121, 126, 116, 127, 119, 113, 122, 112, 121, 115, 108, 121, 116, 106, 121, 122, 111, 107, 115, 120, 119, 118, 119, 111, 104, 118, 128, 110, 118, 127, 113, 113, 108, 136, 115, 124, 108, 118, 116, 109, 122, 109, 111, 129, 110, 117, 128, 115, 116, 123, 118, 121, 113, 111, 110, 117, 117, 112, 128, 109, 122, 122, 122, 113, 126, 115, 123, 130, 116, 122, 104, 113, 109, 114, 116, 124, 121, 124, 111, 125, 120, 116, 118, 111, 115, 102, 119, 107, 118, 120, 117, 117, 117, 127, 116, 117, 114, 116, 122, 115, 118, 118, 120, 122, 119, 113, 118, 110, 105, 122, 112, 114, 117, 118, 116, 107, 127, 109, 116, 108, 111, 120, 114, 120, 128, 116, 110, 136, 104, 126, 110, 118, 114, 124, 117, 109, 119, 122, 129, 118, 114, 128, 121, 118, 118, 112, 118, 115, 115, 118, 112, 86, 118, 108, 114, 120, 120, 117, 116, 121, 121, 114, 123, 115, 104, 101, 117, 124, 105, 112, 112, 118, 124, 132, 116, 117, 119, 121, 110, 119, 113, 115, 107, 147, 110, 113, 104, 134, 110, 105, 115, 113, 118, 108, 118, 131, 115, 124, 114, 113, 125, 135, 103, 121, 119, 121, 116, 113, 119, 87, 115, 122, 113, 107, 115, 110, 125, 111, 116, 88, 120, 116, 128, 119, 113, 122, 113, 114, 114, 113, 120, 119, 122, 116, 116, 103, 113, 123, 86, 88, 124, 125, 119, 110, 105, 107, 114, 112, 117, 95, 112, 117, 117, 108, 104, 114, 116, 107, 109, 122, 112, 118, 141, 118, 112, 105, 114, 109, 125, 110, 112, 127, 115, 119, 118, 113, 102, 107, 114, 119, 121, 120, 124, 139, 124, 123, 118, 112, 123, 105, 140, 123, 118, 114, 114, 117, 112, 117, 103, 152, 117, 113, 81, 113, 111, 113, 145, 116, 122, 118, 114, 103, 121, 103, 112, 113, 111, 101, 104, 115, 113, 115, 127, 119, 132, 126, 114, 112, 118, 111, 113, 104, 109, 118, 122, 111, 125, 111, 110, 112, 114, 113, 107, 112, 111, 130, 100, 118, 99, 137, 117, 117, 117, 114, 117, 136, 103, 116, 141, 115, 114, 114, 128, 116, 114, 111, 122, 111, 92, 117, 110, 122, 108, 115, 122, 113, 103, 116, 113, 103, 111, 128, 120, 107, 119, 115, 115, 118, 115, 114, 114, 125, 115, 114, 115, 97, 103, 122, 113, 107, 109, 120, 120, 131, 99, 111, 122, 134, 111, 126, 113, 118, 111, 126, 118, 119, 117, 115, 130, 109, 100, 113, 113, 118, 120, 139, 112, 125, 111, 108, 116, 117, 122, 116, 112, 121, 115, 109, 128, 114, 119, 120, 113, 113, 79, 110, 119, 126, 103, 110, 124, 119, 116, 112, 138, 119, 107, 117, 114, 110, 117, 111, 106, 138, 113, 116, 114, 119, 104, 132, 117, 95, 111, 83, 126, 117, 111, 114, 122, 113, 113, 106, 128, 121, 121, 111, 110, 121, 139, 121, 122, 116, 116, 114, 118, 120, 112, 98, 118, 117, 123, 84, 118, 110, 119, 123, 114, 122, 109, 120, 108, 110, 116, 114, 130, 117, 120, 113, 121, 120, 122, 120, 124, 120, 115, 119, 113, 110, 133, 108, 113, 115, 117, 113, 119, 109, 112, 106, 119, 115, 91, 118, 129, 119, 109, 119, 121, 111, 119, 110, 103, 113, 110, 115, 102, 118, 116, 119, 113, 117, 120, 111, 125, 135, 117, 108, 121, 109, 115, 121, 116, 121, 114, 113, 108, 114, 124, 115, 122, 125, 118, 117, 118, 115, 119, 117, 127, 119, 118, 120, 100, 120, 119, 115, 106, 109, 117, 106, 130, 117, 120, 143, 131, 108, 127, 111, 114, 111, 131, 103, 114, 119, 95, 107, 110, 125, 110, 113, 115, 110, 126, 96, 112, 122, 99, 120, 117, 122, 119, 109, 111, 123, 112, 126, 106, 124, 115, 124, 117, 109, 120, 115, 113, 120, 101, 131, 136, 113, 119, 109, 117, 108, 126, 113, 116, 120, 113, 118, 117, 121, 123, 116, 116, 117, 109, 113, 127, 116, 123, 113, 115, 127, 112, 114, 109, 95, 117, 112, 114, 124, 126, 95, 118, 122, 115, 116, 120, 122, 108, 113, 123, 112, 122, 118, 110, 117, 111, 108, 111, 126, 121, 106, 123, 115, 117, 110, 115, 115, 120, 110, 110, 111, 112, 122, 110, 119, 118, 128, 113, 116, 119, 116, 121, 116, 116, 109, 110, 120, 116, 133, 116, 119, 126, 123, 116, 104, 124, 125, 117, 123, 115, 114, 114, 107, 108, 112, 122, 116, 117, 114, 118, 113, 117, 115, 117, 119, 118, 124, 106, 116, 118, 107, 110, 126, 117, 122, 113, 116, 103, 128, 114, 121, 126, 108, 114, 115, 118, 120, 96, 111, 110, 106, 110, 112, 123, 88, 118, 111, 109, 115, 100, 117, 115, 105, 109, 116, 115, 117, 127, 136, 102, 117, 117, 127, 114, 118, 110, 118, 123, 122, 123, 119, 129, 132, 117, 119, 129, 121, 117, 117, 121, 111, 120, 124, 111, 106, 118, 111, 133, 118, 118, 109, 108, 141, 114, 108, 115, 116, 128, 119, 118, 105, 115, 113, 122, 122, 114, 104, 119, 115, 125, 119, 123, 106, 119, 116, 113, 117, 118, 113, 116, 121, 122, 117, 117, 125, 111, 114, 123, 122, 117, 116, 116, 100, 114, 134, 119, 103, 120, 108, 116, 117, 117, 122, 103, 109, 119, 115, 120, 113, 122, 126, 115, 113, 112, 105, 120, 117, 105, 122, 123, 122, 121, 114, 93, 116, 115, 120, 119, 133, 118, 105, 120, 111, 123, 122, 133, 118, 114, 120, 115, 116, 117, 120, 103, 113, 111, 116, 119, 130, 123, 120, 103, 123, 111, 111, 119, 118, 126, 117, 122, 116, 118, 117, 118, 124, 110, 124, 104, 112, 122, 127, 125, 124, 112, 127, 124, 129, 117, 125, 119, 109, 118, 111, 123, 109, 117, 124, 121, 113, 122, 122, 116, 115, 113, 125, 118, 120, 102, 132, 127, 109, 116, 117, 115, 118, 117, 103, 113, 115, 121, 112, 120, 117, 110, 116, 111, 126, 117, 118, 119, 105, 110, 126, 115, 119, 123, 118, 107, 112, 123, 106, 118, 113, 119, 112, 122, 119, 118, 130, 113, 114, 112, 111, 111, 109, 115, 113, 117, 110, 112, 110, 111, 117, 110, 101, 105, 117, 108, 127, 115, 102, 133, 122, 123, 119, 112, 118, 114, 115, 115, 128, 116, 121, 115, 130, 112, 102, 112, 129, 118, 122, 115, 119, 110, 119, 106, 127, 125, 116, 119, 126, 113, 107, 128, 123, 103, 118, 128, 129, 112, 121, 119, 115, 116, 103, 122, 123, 88, 124, 109, 117, 117, 120, 117, 114, 101, 125, 112, 108, 122, 116, 120, 108, 123, 120, 118, 121, 111, 115, 119, 118, 118, 115, 118, 118, 116, 111, 119, 111, 113, 105, 113, 110, 111, 110, 109, 125, 129, 119, 123, 129, 114, 128, 98, 115, 123, 107, 117, 123, 108, 118, 127, 120, 121, 110, 113, 108, 111, 92, 108, 118, 120, 127, 131, 117, 120, 117, 106, 110, 117, 122, 132, 107, 112, 123, 93, 118, 129, 121, 118, 113, 122, 122, 115, 111, 118, 121, 116, 100, 121, 123, 94, 114, 117, 109, 124, 119, 115, 115, 108, 121, 124, 111, 119, 107, 112, 120, 113, 115, 119, 126, 121, 125, 121, 104, 121, 121, 113, 107, 125, 104, 91, 156, 127, 115, 116, 107, 107, 117, 107, 111, 123, 112, 123, 120, 116, 116, 116, 118, 116, 112, 114, 118, 112, 115, 117, 127, 115, 115, 109, 118, 109, 115, 114, 129, 117, 130, 120, 102, 118, 113, 118, 116, 108, 118, 121, 118, 116, 122, 123, 80, 117, 108, 101, 116, 121, 102, 108, 112, 97, 141, 112, 117, 126, 103, 130, 112, 122, 115, 115, 109, 104, 115, 109, 129, 122, 145, 119, 117, 110, 101, 120, 110, 124, 109, 116, 131, 111, 131, 118, 118, 137, 115, 111, 107, 125, 119, 119, 112, 125, 97, 118, 126, 116, 128, 137, 108, 107, 120, 132, 122, 120, 118, 103, 121, 120, 126, 109, 105, 103, 126, 119, 110, 115, 125, 119, 114, 116, 134, 118, 113, 122, 131, 117, 110, 124, 110, 119, 118, 117, 118, 119, 104, 126, 105, 115, 108, 111, 116, 117, 112, 121, 114, 108, 121, 119, 103, 112, 118, 120, 123, 120, 111, 127, 112, 117, 117, 129, 114, 121, 88, 119, 122, 120, 110, 84, 113, 112, 104, 117, 120, 112, 114, 116, 130, 108, 129, 115, 114, 127, 109, 124, 116, 123, 125, 126, 100, 129, 100, 117, 119, 106, 127, 119, 116, 122, 102, 111, 116, 115, 112, 118, 111, 101, 106, 125, 111, 120, 110, 117, 112, 132, 125, 120, 114, 117, 110, 119, 111, 122, 124, 114, 113, 113, 131, 115, 118, 110, 120, 110, 114, 110, 85, 108, 116, 114, 115, 126, 122, 118, 111, 128, 110, 119, 110, 126, 127, 105, 122, 113, 112, 118, 118, 112, 119, 126, 103, 115, 115, 107, 119, 111, 106, 110, 110, 117, 106, 87, 112, 88, 113, 121, 122, 113, 121, 119, 119, 113, 126, 133, 105, 110, 121, 111, 120, 126, 113, 108, 113, 131, 109, 111, 123, 130, 115, 111, 115, 114, 118, 110, 114, 129, 122, 125, 113, 111, 141, 114, 127, 120, 98, 116, 113, 101, 107, 101, 129, 70, 113, 115, 110, 133, 123, 120, 112, 121, 122, 112, 123, 141, 109, 119, 131, 115, 111, 115, 142, 113, 115, 123, 132, 116, 107, 117, 114, 118, 119, 125, 115, 126, 114, 122, 118, 106, 112, 116, 100, 105, 154, 147, 144, 124, 115, 111, 120, 120, 114, 108, 123, 114, 118, 116, 109, 111, 114, 115, 113, 119, 112, 108, 106, 115, 147, 113, 118, 98, 105, 118, 109, 109, 118, 109, 109, 118, 109, 118, 118, 122, 111, 120, 120, 113, 102, 117, 124, 124, 113, 117, 120, 122, 118, 118, 123, 118, 135, 120, 109, 128, 114, 114, 111, 125, 106, 101, 104, 135, 115, 84, 107, 127, 103, 123, 99, 134, 131, 121, 105, 124, 114, 114, 120, 124, 104, 110, 107, 123, 105, 119, 126, 115, 128, 100, 102, 111, 113, 115, 143, 120, 109, 107, 99, 109, 119, 112, 115, 116, 116, 111, 123, 125, 117, 139, 127, 94, 115, 117, 116, 106, 137, 105, 109, 121, 115, 121, 125, 100, 106, 110, 122, 125, 114, 111, 125, 113, 89, 111, 127, 113, 109, 114, 100, 104, 109, 109, 126, 102, 94, 98, 115, 102, 97, 106, 120, 94, 117, 117, 107, 112, 107, 113, 147, 104, 118, 116, 112, 113, 121, 116, 131, 94, 92, 118, 116, 106, 117, 110, 122, 116, 122, 107, 128, 122, 109, 111, 119, 107, 123, 108, 115, 130, 108, 104, 98, 114, 116, 119, 119, 125, 100, 108, 111, 113, 131, 130, 103, 109, 120, 116, 110, 132, 109, 99, 118, 118, 102, 116, 100, 112, 95, 97, 119, 111, 107, 126, 104, 121, 108, 116, 87, 99, 90, 109, 110, 108, 96, 105, 111, 89, 110, 128, 97, 115, 124, 104, 107, 121, 106, 89, 134, 126, 133, 100, 136, 110, 112, 118, 84, 107, 106, 131, 113, 114, 106, 134, 129, 97, 127, 118, 110, 115, 135, 141, 108, 110, 128, 107, 121, 102, 124, 107, 127, 120, 120, 103, 127, 114, 111, 107, 123, 103, 110, 108, 114, 110, 112, 81, 107, 99, 125, 97, 111, 125, 124, 122, 117, 114, 117, 118, 104, 105, 118, 90, 125, 122, 122, 119, 140, 113, 112, 109, 90, 102, 115, 108, 117, 103, 125, 135, 118, 113, 118, 110, 100, 129, 108, 124, 120, 102, 121, 124, 105, 101, 149, 116, 129, 108, 111, 110, 115, 118, 107, 124, 117, 101, 118, 134, 103, 108, 118, 131, 123, 131, 112, 126, 115, 114, 106, 101, 119, 106, 118, 118, 140, 113, 106, 127, 112, 105, 145, 144, 121, 88, 111, 90, 116, 122, 110, 108, 134, 116, 110, 113, 102, 113, 121, 110, 118, 115, 112, 115, 114, 105, 114, 128, 112, 111, 103, 116, 123, 110, 109, 135, 118, 127, 120, 114, 116, 124, 109, 121, 116, 120, 113, 117, 112, 104, 119, 119, 103, 107, 115, 109, 107, 134, 95, 123, 120, 141, 117, 124, 122, 97, 138, 129, 99, 105, 117, 94, 120, 138, 126, 127, 117, 97, 92, 89, 119, 102, 103, 122, 114, 120, 108, 117, 116, 109, 123, 114, 121, 114, 116, 121, 101, 119, 118, 121, 107, 117, 125, 144, 126, 110, 121, 112, 106, 122, 100, 119, 107, 118, 114, 105, 113, 123, 91, 123, 104, 108, 99, 117, 105, 118, 102, 125, 123, 111, 115, 126, 99, 109, 120, 100, 111, 100, 111, 141, 125, 111, 120, 131, 118, 99, 121, 101, 105, 106, 119, 108, 125, 91, 124, 97, 138, 106, 128, 101, 124, 127, 128, 123, 103, 106, 108, 120, 122, 110, 120, 116, 104, 116, 111, 122, 118, 124, 121, 95, 111, 108, 78, 124, 108, 131, 111, 111, 112, 123, 110, 113, 102, 103, 127, 123, 125, 123, 92, 108, 100, 114, 95, 110, 109, 121, 99, 107, 123, 112, 107, 102, 121, 109, 108, 118, 109, 118, 105, 111, 108, 109, 129, 118, 108, 119, 108, 126, 129, 97, 124, 123, 116, 108, 120, 149, 86, 115, 133, 115, 128, 130, 115, 126, 105, 148, 115, 109, 107, 119, 100, 101, 113, 99, 126, 121, 114, 109, 110, 106, 116, 114, 122, 116, 114, 135, 122, 99, 124, 110, 130, 108, 105, 109, 111, 107, 109, 111, 113, 121, 119, 128, 111, 110, 118, 107, 124, 117, 107, 125, 121, 121, 152, 102, 112, 114, 112, 112, 108, 124, 111, 125, 134, 92, 102, 101, 117, 111, 115, 133, 93, 120, 117, 109, 108, 122, 100, 128, 108, 126, 103, 121, 134, 109, 106, 126, 104, 114, 108, 117, 107, 108, 101, 109, 116, 125, 113, 126, 123, 116, 71, 115, 109, 125, 120, 109, 121, 100, 98, 126, 95, 114, 93, 125, 99, 103, 110, 126, 117, 130, 92, 104, 80, 116, 115, 125, 117, 112, 121, 104, 115, 99, 136, 106, 131, 97, 88, 131, 102, 92, 101, 121, 112, 96, 112, 105, 140, 117, 134, 110, 102, 115, 117, 109, 116, 129, 103, 109, 150, 118, 122, 91, 109, 104, 123, 120, 139, 114, 112, 152, 114, 115, 115, 116, 118, 115, 106, 117, 115, 98, 107, 108, 100, 117, 111, 105, 125, 117, 129, 115, 99, 99, 129, 99, 106, 118, 108, 130, 108, 111, 109, 117, 104, 112, 110, 110, 120, 102, 102, 127, 117, 117, 125, 119, 96, 110, 143, 129, 124, 135, 104, 107, 114, 134, 109, 105, 129, 120, 114, 101, 157, 109, 112, 108, 129, 109, 125, 133, 112, 107, 121, 116, 109, 117, 107, 113, 108, 108, 109, 118, 120, 128, 106, 120, 107, 104, 115, 102, 118, 144, 108, 116, 106, 99, 109, 124, 125, 103, 108, 111, 94, 96, 109, 110, 122, 107, 105, 109, 102, 106, 116, 103, 99, 106, 101, 120, 107, 127, 105, 115, 102, 118, 118, 116, 103, 109, 133, 110, 118, 126, 138, 111, 114, 143, 113, 105, 139, 115, 109, 117, 135, 136, 110, 93, 102, 119, 112, 116, 115, 112, 119, 107, 104, 106, 112, 112, 122, 104, 94, 105, 112, 137, 120, 117, 118, 108, 127, 120, 89, 120, 109, 112, 105, 116, 105, 110, 130, 124, 136, 123, 112, 110, 109, 115, 106, 104, 132, 110, 113, 128, 106, 91, 107, 124, 105, 109, 120, 125, 117, 113, 89, 115, 129, 124, 118, 107, 117, 119, 132, 109, 111, 134, 121, 121, 117, 136, 111, 125, 117, 124, 113, 110, 93, 126, 119, 119, 121, 99, 98, 128, 114, 106, 138, 141, 101, 110, 117, 115, 127, 98, 127, 127, 125, 107, 110, 123, 128, 112, 110, 113, 117, 109, 108, 108, 121, 96, 107, 100, 114, 127, 118, 113, 112, 123, 106, 114, 128, 112, 112, 93, 125, 121, 94, 134, 105, 111, 118, 109, 148, 103, 119, 95, 129, 128, 95, 129, 117, 115, 106, 99, 147, 113, 108, 110, 114, 122, 131, 125, 102, 104, 133, 99, 124, 120, 116, 121, 111, 100, 121, 143, 134, 133, 111, 141, 118, 112, 116, 111, 117, 127, 102, 109, 126, 115, 91, 121, 111, 119, 119, 109, 87, 130, 119, 135, 117, 128, 132, 118, 113, 110, 117, 118, 129, 118, 113, 118, 118, 108, 116, 122, 131, 114, 104, 114, 111, 106, 120, 105, 121, 116, 127, 91, 103, 119, 116, 122, 130, 95, 123, 112, 117, 129, 127, 116, 134, 122, 106, 118, 125, 105, 116, 114, 115, 119, 120, 110, 117, 106, 113, 109, 122, 132, 122, 112, 118, 122, 119, 118, 107, 122, 124, 123, 125, 107, 130, 126, 115, 104, 107, 115, 117, 116, 114, 121, 134, 119, 121, 106, 113, 124, 121, 95, 117, 102, 125, 117, 118, 108, 122, 109, 118, 106, 111, 113, 119, 115, 110, 116, 111, 120, 122, 128, 119, 111, 119, 122, 136, 120, 119, 108, 125, 125, 124, 123, 113, 110, 133, 110, 110, 118, 110, 113, 126, 123, 129, 118, 120, 113, 114, 103, 121, 140, 108, 131, 121, 97, 118, 108, 108, 114, 107, 128, 109, 125, 123, 124, 134, 129, 121, 118, 108, 126, 110, 119, 109, 110, 100, 111, 132, 116, 122, 132, 105, 105, 117, 119, 142, 127, 126, 114, 104, 111, 113, 136, 119, 116, 112, 116, 114, 116, 116, 106, 120, 129, 126, 112, 114, 122, 112, 120, 119, 118, 129, 111, 119, 106, 115, 105, 104, 108, 109, 121, 118, 129, 111, 123, 116, 110, 113, 110, 109, 118, 88, 126, 137, 122, 123, 113, 111, 119, 112, 127, 107, 99, 121, 111, 119, 120, 115, 114, 102, 137, 122, 120, 111, 105, 126, 95, 111, 115, 115, 119, 109, 121, 111, 111, 122, 115, 104, 119, 100, 106, 119, 128, 96, 108, 118, 121, 116, 134, 117, 118, 110, 106, 118, 122, 123, 103, 106, 118, 124, 112, 116, 118, 117, 117, 109, 118, 116, 128, 121, 117, 114, 122, 116, 122, 124, 112, 126, 131, 119, 114, 112, 101, 119, 123, 117, 120, 107, 95, 98, 115, 126, 136, 105, 104, 117, 106, 125, 109, 111, 95, 116, 110, 103, 124, 95, 124, 124, 114, 104, 125, 124, 123, 115, 98, 113, 117, 100, 134, 100, 123, 118, 114, 117, 119, 120, 113, 136, 121, 126, 121, 114, 110, 126, 110, 101, 121, 138, 117, 122, 125, 115, 124, 117, 137, 111, 86, 107, 131, 128, 100, 118, 119, 121, 106, 113, 127, 115, 127, 109, 131, 120, 111, 100, 131, 121, 116, 121, 119, 119, 115, 104, 104, 110, 116, 120, 115, 110, 107, 121, 132, 111, 108, 114, 114, 115, 115, 98, 115, 109, 115, 105, 120, 117, 125, 133, 113, 112, 115, 114, 118, 112, 145, 111, 127, 110, 90, 131, 109, 106, 114, 106, 142, 107, 118, 130, 115, 127, 123, 138, 110, 119, 116, 108, 114, 131, 124, 122, 124, 102, 116, 120, 106, 128, 106, 122, 118, 123, 117, 110, 122, 120, 126, 115, 127, 111, 123, 112, 125, 121, 107, 105, 129, 121, 126, 123, 117, 121, 111, 116, 119, 95, 123, 112, 113, 113, 115, 119, 111, 116, 117, 129, 115, 118, 133, 111, 113, 120, 120, 122, 120, 116, 113, 119, 123, 122, 119, 113, 132, 121, 107, 117, 110, 114, 114, 119, 117, 99, 110, 133, 121, 120, 117, 105, 115, 114, 114, 111, 118, 117, 111, 119, 116, 113, 111, 126, 112, 107, 112, 121, 121, 113, 111, 103, 115, 120, 123, 117, 108, 118, 124, 119, 120, 104, 113, 110, 124, 115, 119, 109, 118, 124, 112, 118, 113, 121, 116, 117, 134, 120, 126, 113, 121, 120, 117, 112, 114, 117, 110, 109, 108, 112, 112, 117, 109, 117, 118, 112, 110, 126, 115, 108, 108, 122, 118, 114, 118, 112, 116, 117, 120, 107, 119, 107, 115, 115, 114, 119, 117, 118, 124, 116, 123, 116, 123, 108, 118, 114, 106, 116, 117, 114, 128, 119, 115, 114, 116, 112, 119, 115, 122, 118, 112, 125, 122, 112, 120, 119, 114, 105, 113, 118, 115, 114, 119, 116, 113, 118, 122, 113, 114, 116, 114, 110, 116, 122, 111, 114, 115, 104, 116, 116, 127, 116, 121, 112, 109, 123, 119, 116, 113, 113, 116, 124, 120, 121, 121, 109, 115, 117, 118, 114, 125, 118, 108, 120, 115, 110, 114, 112, 116, 111, 118, 114, 118, 114, 118, 117, 124, 127, 112, 121, 111, 117, 126, 113, 128, 123, 105, 109, 107, 115, 119, 127, 99, 117, 111, 119, 106, 115, 117, 120, 123, 112, 113, 116, 110, 110, 113, 115, 115, 120, 113, 120, 116, 120, 118, 116, 106, 108, 122, 123, 118, 119, 109, 109, 113, 117, 125, 110, 116, 96, 114, 119, 120, 139, 118, 113, 119, 111, 112, 108, 115, 124, 122, 111, 119, 122, 125, 110, 126, 113, 124, 112, 111, 111, 113, 116, 122, 118, 118, 112, 122, 124, 107, 118, 112, 108, 115, 117, 119, 113, 116, 124, 126, 113, 125, 113, 122, 122, 107, 113, 120, 112, 111, 116, 105, 118, 122, 116, 112, 116, 112, 112, 115, 127, 108, 114, 117, 121, 113, 117, 121, 124, 121, 121, 114, 116, 122, 123, 117, 121, 131, 118, 113, 100, 119, 117, 115, 110, 108, 117, 119, 119, 124, 120, 124, 118, 114, 128, 111, 125, 111, 112, 125, 118, 117, 114, 118, 118, 115, 113, 120, 112, 119, 124, 108, 115, 112, 112, 110, 126, 123, 126, 107, 111, 112, 118, 108, 114, 115, 109, 108, 120, 115, 113, 104, 111, 123, 119, 119, 113, 110, 119, 119, 119, 135, 112, 105, 99, 115, 116, 114, 118, 116, 113, 123, 118, 125, 125, 106, 114, 105, 122, 133, 109, 120, 118, 107, 127, 121, 110, 121, 112, 111, 118, 119, 110, 128, 120, 120, 115, 121, 106, 114, 103, 116, 126, 110, 94, 143, 112, 120, 111, 114, 125, 110, 121, 115, 125, 111, 119, 113, 115, 118, 119, 123, 127, 110, 116, 103, 109, 119, 116, 117, 118, 110, 117, 112, 119, 111, 113, 122, 112, 112, 120, 114, 107, 127, 111, 120, 101, 120, 113, 115, 126, 110, 117, 122, 125, 126, 116, 109, 138, 117, 107, 127, 109, 122, 110, 94, 119, 121, 133, 130, 118, 129, 116, 122, 119, 122, 105, 114, 111, 108, 123, 137, 127, 132, 139, 153, 111, 105, 110, 129, 102, 124, 112, 110, 97, 105, 113, 112, 96, 128, 116, 119, 112, 119, 105, 139, 117, 117, 128, 130, 112, 110, 126, 124, 121, 120, 123, 108, 114, 102, 128, 112, 121, 111, 121, 122, 106, 130, 119, 125, 105, 105, 97, 103, 122, 113, 99, 117, 121, 120, 125, 121, 117, 93, 113, 121, 111, 118, 119, 117, 126, 128, 115, 114, 108, 118, 109, 100, 111, 116, 100, 107, 120, 123, 123, 103, 119, 109, 88, 107, 124, 117, 105, 124, 112, 110, 96, 110, 106, 117, 116, 100, 114, 113, 117, 133, 106, 101, 120, 123, 107, 117, 118, 115, 111, 101, 117, 113, 119, 120, 126, 107, 121, 119, 131, 100, 107, 113, 127, 114, 133, 124, 99, 110, 122, 115, 90, 107, 103, 127, 107, 109, 103, 119, 136, 132, 120, 129, 118, 116, 119, 106, 126, 110, 118, 102, 109, 113, 105, 143, 122, 126, 117, 116, 104, 120, 123, 109, 122, 101, 115, 111, 127, 113, 105, 115, 128, 113, 123, 124, 123, 119, 117, 113, 112, 117, 117, 88, 112, 103, 108, 115, 100, 115, 117, 116, 127, 125, 119, 123, 114, 115, 118, 126, 114, 123, 119, 97, 113, 121, 109, 94, 121, 115, 107, 107, 111, 98, 131, 116, 120, 133, 100, 92, 85, 108, 126, 117, 108, 127, 120, 117, 102, 131, 96, 107, 120, 110, 102, 119, 115, 110, 88, 94, 117, 124, 125, 91, 107, 98, 111, 123, 135, 121, 116, 113, 91, 100, 131, 117, 101, 119, 124, 123, 120, 116, 117, 119, 130, 146, 114, 119, 120, 115, 117, 115, 122, 135, 112, 125, 109, 105, 112, 132, 92, 120, 116, 119, 111, 111, 127, 119, 99, 120, 117, 119, 120, 108, 118, 108, 121, 118, 107, 111, 118, 110, 118, 112, 117, 122, 107, 110, 110, 120, 133, 112, 103, 116, 106, 128, 125, 129, 124, 118, 104, 124, 117, 119, 117, 113, 123, 130, 92, 123, 127, 119, 117, 110, 126, 113, 126, 127, 109, 121, 123, 89, 102, 118, 128, 116, 101, 133, 130, 122, 123, 118, 129, 109, 116, 112, 110, 123, 100, 113, 121, 103, 111, 112, 111, 109, 159, 107, 110, 89, 120, 106, 124, 125, 116, 125, 110, 106, 107, 114, 112, 110, 114, 121, 102, 108, 104, 117, 106, 139, 109, 114, 107, 113, 106, 110, 130, 114, 115, 122, 131, 112, 118, 113, 112, 102, 109, 113, 118, 123, 107, 122, 111, 126, 104, 117, 115, 114, 124, 126, 118, 156, 142, 121, 102, 117, 128, 111, 93, 125, 113, 123, 97, 95, 109, 121, 134, 115, 112, 101, 125, 106, 127, 125, 128, 114, 118, 132, 117, 115, 122, 148, 125, 103, 119, 108, 97, 114, 114, 102, 119, 113, 119, 122, 124, 140, 104, 100, 110, 103, 119, 117, 106, 118, 82, 112, 111, 127, 113, 105, 107, 119, 128, 102, 118, 112, 117, 119, 107, 121, 126, 114, 109, 114, 116, 123, 125, 122, 128, 128, 114, 120, 117, 108, 121, 106, 118, 118, 120, 124, 112, 118, 117, 127, 115, 113, 114, 115, 100, 114, 117, 114, 104, 114, 119, 108, 121, 122, 116, 112, 120, 123, 102, 129, 115, 103, 132, 118, 114, 117, 121, 115, 116, 114, 119, 110, 117, 112, 117, 108, 115, 114, 122, 116, 118, 112, 119, 117, 107, 114, 113, 120, 115, 113, 121, 107, 123, 114, 114, 118, 117, 122, 119, 119, 112, 115, 112, 119, 118, 117, 112, 121, 112, 123, 107, 112, 117, 112, 117, 116, 112, 115, 115, 108, 109, 118, 115, 120, 111, 109, 112, 116, 117, 124, 117, 113, 108, 115, 123, 122, 122, 116, 114, 113, 115, 116, 115, 122, 115, 134, 107, 112, 118, 108, 116, 118, 111, 132, 114, 107, 116, 117, 117, 108, 115, 114, 111, 132, 121, 138, 114, 109, 113, 108, 126, 117, 109, 124, 109, 120, 118, 110, 112, 119, 125, 110, 112, 112, 108, 113, 124, 112, 110, 114, 113, 123, 119, 126, 116, 114, 115, 112, 118, 112, 111, 107, 124, 123, 118, 108, 116, 118, 101, 113, 125, 115, 110, 108, 116, 117, 112, 105, 119, 112, 108, 132, 111, 118, 112, 122, 117, 123, 113, 112, 131, 113, 118, 116, 110, 111, 122, 127, 106, 123, 110, 103, 109, 117, 112, 113, 122, 121, 127, 119, 125, 117, 115, 127, 114, 124, 124, 126, 121, 115, 122, 117, 110, 119, 121, 122, 120, 114, 107, 107, 113, 101, 112, 113, 120, 118, 103, 123, 118, 114, 123, 109, 119, 103, 116, 114, 115, 116, 125, 109, 116, 117, 124, 109, 119, 117, 120, 120, 124, 127, 122, 127, 114, 131, 124, 115, 124, 107, 112, 111, 101, 114, 115, 120, 108, 120, 109, 110, 118, 110, 115, 113, 118, 116, 132, 113, 109, 122, 122, 117, 120, 117, 107, 118, 116, 112, 113, 109, 118, 120, 120, 118, 110, 110, 121, 120, 124, 118, 126, 119, 111, 110, 115, 113, 109, 118, 114, 114, 112, 116, 124, 119, 121, 117, 120, 119, 124, 118, 124, 117, 122, 120, 116, 119, 115, 119, 116, 137, 114, 118, 119, 111, 125, 111, 116, 109, 123, 112, 115, 119, 121, 116, 116, 122, 101, 112, 108, 112, 118, 123, 106, 121, 118, 115, 120, 112, 119, 105, 121, 124, 119, 121, 127, 110, 110, 120, 115, 112, 112, 117, 116, 106, 118, 102, 119, 116, 108, 118, 120, 112, 107, 123, 127, 110, 116, 113, 121, 118, 109, 116, 114, 115, 102, 111, 108, 125, 125, 113, 104, 118, 117, 112, 119, 133, 118, 115, 119, 116, 114, 138, 104, 109, 122, 117, 121, 113, 98, 117, 122, 114, 103, 116, 120, 125, 109, 117, 118, 97, 125, 114, 114, 115, 118, 120, 117, 124, 119, 112, 121, 118, 124, 103, 110, 115, 103, 108, 111, 104, 118, 114, 121, 117, 121, 126, 117, 109, 119, 111, 109, 122, 106, 114, 115, 110, 118, 125, 124, 114, 113, 114, 116, 118, 113, 126, 109, 134, 120, 128, 115, 108, 90, 118, 115, 115, 116, 115, 111, 111, 122, 108, 110, 101, 117, 107, 114, 108, 122, 102, 106, 101, 132, 101, 115, 120, 121, 111, 118, 131, 119, 119, 108, 127, 109, 117, 110, 120, 130, 108, 124, 124, 131, 113, 114, 114, 141, 115, 116, 115, 117, 108, 125, 119, 112, 107, 117, 105, 114, 112, 98, 110, 104, 102, 114, 112, 119, 123, 113, 101, 101, 109, 118, 123, 97, 107, 116, 127, 119, 111, 115, 103, 119, 107, 107, 107, 119, 112, 120, 124, 111, 113, 111, 107, 121, 111, 109, 119, 115, 122, 113, 105, 113, 115, 106, 135, 118, 113, 112, 126, 116, 107, 115, 130, 100, 122, 107, 106, 106, 109, 136, 116, 110, 114, 138, 114, 130, 123, 112, 113, 106, 119, 115, 117, 103, 107, 120, 114, 121, 110, 101, 119, 116, 113, 98, 110, 125, 101, 160, 113, 107, 123, 110, 91, 113, 117, 105, 116, 129, 105, 115, 106, 103, 111, 104, 108, 109, 106, 100, 111, 106, 106, 115, 107, 113, 121, 115, 115, 112, 112, 126, 108, 113, 113, 121, 118, 109, 132, 124, 107, 108, 112, 107, 115, 120, 105, 110, 127, 123, 101, 115, 121, 104, 127, 121, 125, 105, 135, 123, 111, 111, 136, 87, 127, 121, 133, 128, 112, 106, 127, 122, 104, 118, 103, 125, 110, 125, 121, 117, 115, 122, 127, 110, 117, 126, 103, 109, 109, 118, 121, 104, 130, 127, 112, 111, 103, 105, 115, 114, 117, 107, 114, 117, 100, 110, 124, 116, 114, 142, 133, 103, 122, 137, 123, 120, 125, 115, 128, 121, 114, 113, 103, 119, 95, 114, 115, 104, 117, 103, 113, 115, 104, 115, 114, 116, 107, 133, 97, 109, 113, 105, 118, 112, 115, 115, 105, 115, 119, 110, 107, 109, 114, 113, 121, 113, 113, 108, 121, 112, 122, 114, 106, 104, 102, 130, 110, 141, 104, 112, 114, 113, 106, 101, 120, 129, 118, 102, 118, 118, 111, 101, 108, 135, 102, 168, 118, 124, 116, 129, 122, 127, 122, 114, 122, 117, 117, 111, 117, 94, 84, 116, 118, 102, 112, 107, 118, 113, 124, 110, 113, 114, 102, 118, 109, 109, 135, 106, 120, 112, 116, 113, 117, 120, 116, 98, 123, 111, 104, 105, 129, 107, 105, 114, 129, 116, 116, 112, 109, 120, 131, 126, 124, 96, 107, 129, 115, 108, 116, 108, 103, 110, 120, 114, 103, 104, 118, 113, 109, 128, 105, 110, 111, 104, 133, 113, 130, 115, 125, 107, 124, 120, 101, 110, 103, 109, 103, 129, 128, 108, 122, 118, 116, 109, 116, 112, 104, 103, 107, 119, 116, 119, 113, 111, 114, 105, 128, 108, 131, 110, 119, 117, 120, 117, 126, 110, 108, 111, 105, 137, 111, 113, 110, 106, 124, 113, 107, 106, 109, 108, 121, 114, 117, 104, 104, 113, 108, 121, 107, 130, 109, 98, 126, 130, 110, 101, 128, 108, 118, 101, 109, 125, 124, 100, 111, 110, 135, 108, 135, 111, 113, 109, 114, 118, 110, 105, 134, 109, 112, 101, 135, 117, 122, 138, 122, 113, 108, 126, 100, 107, 123, 123, 101, 134, 123, 115, 107, 114, 106, 107, 120, 115, 118, 98, 132, 110, 120, 131, 103, 115, 105, 128, 101, 123, 122, 117, 132, 96, 105, 113, 124, 109, 108, 119, 112, 126, 107, 115, 116, 148, 123, 113, 130, 127, 103, 141, 104, 97, 123, 118, 119, 95, 109, 117, 111, 101, 92, 128, 113, 114, 116, 119, 127, 147, 105, 99, 131, 136, 106, 116, 119, 103, 118, 96, 104, 124, 104, 108, 119, 107, 116, 118, 115, 105, 125, 112, 105, 119, 131, 115, 115, 120, 111, 119, 138, 124, 124, 121, 136, 114, 120, 118, 104, 109, 107, 114, 129, 129, 122, 128, 116, 113, 90, 109, 120, 121, 111, 133, 104, 121, 112, 104, 134, 128, 125, 115, 103, 145, 101, 117, 114, 114, 131, 136, 115, 104, 126, 121, 126, 135, 106, 109, 108, 116, 104, 103, 104, 102, 118, 115, 122, 134, 125, 119, 109, 136, 107, 125, 122, 127, 115, 127, 144, 102, 119, 95, 135, 109, 96, 111, 121, 112, 121, 125, 136, 126, 109, 102, 119, 112, 118, 111, 112, 116, 99, 100, 124, 124, 126, 123, 124, 117, 104, 96, 116, 103, 105, 102, 124, 119, 102, 117, 118, 118, 111, 113, 114, 111, 120, 118, 111, 114, 124, 111, 95, 112, 125, 122, 111, 132, 110, 111, 113, 109, 117, 130, 113, 105, 125, 134, 140, 111, 122, 133, 114, 111, 112, 111, 104, 122, 96, 109, 105, 133, 118, 114, 129, 111, 128, 109, 114, 146, 118, 112, 118, 130, 104, 112, 127, 108, 117, 118, 105, 114, 115, 124, 117, 111, 125, 125, 104, 115, 103, 126, 129, 113, 126, 126, 151, 118, 117, 116, 129, 113, 119, 123, 110, 123, 99, 112, 123, 113, 130, 151, 118, 109, 94, 116, 118, 114, 114, 106, 110, 115, 115, 122, 115, 104, 113, 137, 111, 119, 111, 142, 104, 159, 118, 110, 113, 108, 119, 106, 107, 97, 127, 119, 132, 120, 109, 112, 95, 119, 114, 116, 123, 116, 120, 106, 120, 95, 121, 103, 125, 115, 116, 109, 121, 111, 129, 127, 107, 87, 114, 107, 114, 114, 132, 123, 128, 115, 116, 110, 119, 127, 114, 131, 111, 98, 142, 137, 101, 120, 129, 101, 123, 109, 128, 120, 101, 108, 134, 110, 114, 108, 122, 110, 107, 116, 124, 119, 92, 102, 115, 124, 106, 117, 101, 112, 95, 125, 127, 111, 105, 121, 119, 116, 107, 119, 108, 108, 103, 120, 94, 126, 110, 138, 111, 113, 113, 127, 111, 121, 117, 116, 111, 126, 112, 119, 128, 127, 132, 125, 110, 109, 117, 133, 123, 95, 107, 117, 110, 95, 126, 110, 126, 130, 148, 110, 85, 97, 114, 103, 98, 118, 105, 127, 91, 109, 134, 107, 116, 129, 98, 116, 116, 113, 123, 107, 101, 104, 107, 125, 118, 101, 125, 102, 111, 105, 118, 119, 104, 109, 111, 103, 127, 126, 101, 106, 119, 125, 154, 120, 119, 128, 125, 124, 116, 122, 141, 95, 126, 125, 109, 119, 111, 112, 110, 117, 119, 101, 104, 110, 126, 123, 106, 104, 116, 113, 128, 114, 121, 104, 95, 129, 115, 98, 112, 127, 117, 95, 98, 116, 144, 120, 117, 118, 119, 115, 112, 90, 111, 124, 103, 119, 140, 142, 112, 111, 119, 111, 114, 107, 121, 131, 116, 113, 143, 111, 110, 132, 109, 114, 116, 124, 122, 130, 116, 129, 117, 91, 124, 124, 105, 109, 100, 117, 124, 96, 129, 104, 126, 123, 97, 118, 114, 147, 110, 122, 111, 85, 114, 109, 114, 107, 110, 88, 104, 119, 85, 116, 112, 98, 101, 131, 116, 117, 105, 118, 104, 101, 100, 119, 124, 134, 115, 109, 119, 120, 100, 110, 122, 114, 120, 117, 123, 117, 115, 118, 109, 130, 114, 116, 150, 127, 103, 124, 148, 115, 111, 110, 103, 115, 123, 107, 121, 105, 134, 131, 111, 126, 116, 118, 110, 116, 111, 98, 118, 124, 106, 115, 105, 123, 119, 105, 112, 112, 110, 115, 111, 117, 116, 116, 120, 114, 111, 111, 126, 135, 130, 111, 105, 124, 108, 127, 114, 119, 115, 110, 113, 119, 109, 115, 113, 88, 117, 103, 136, 114, 99, 125, 121, 131, 122, 121, 102, 106, 116, 108, 116, 111, 100, 117, 117, 109, 120, 121, 108, 105, 81, 113, 117, 116, 111, 108, 118, 122, 108, 125, 112, 110, 117, 143, 120, 130, 117, 117, 110, 121, 106, 117, 108, 109, 115, 106, 124, 99, 107, 101, 118, 112, 112, 117, 114, 117, 100, 121, 107, 120, 108, 107, 112, 97, 104, 133, 125, 113, 112, 121, 126, 98, 123, 116, 118, 135, 113, 139, 107, 113, 137, 106, 122, 127, 120, 109, 108, 145, 115, 112, 139, 101, 115, 127, 109, 111, 122, 98, 120, 117, 115, 120, 117, 84, 117, 106, 126, 107, 102, 115, 127, 111, 107, 116, 101, 109, 169, 105, 111, 116, 123, 126, 119, 113, 124, 126, 109, 118, 105, 113, 109, 99, 120, 135, 111, 117, 83, 114, 117, 112, 85, 121, 114, 107, 108, 118, 131, 131, 94, 106, 92, 121, 112, 110, 114, 120, 113, 124, 104, 117, 107, 121, 121, 124, 117, 101, 122, 124, 106, 131, 107, 118, 130, 122, 113, 120, 112, 106, 118, 114, 126, 131, 115, 104, 115, 123, 124, 103, 107, 103, 113, 125, 122, 106, 111, 107, 115, 159, 122, 109, 124, 129, 103, 109, 106, 109, 117, 110, 102, 121, 122, 144, 125, 104, 112, 105, 106, 100, 108, 112, 117, 123, 113, 113, 108, 119, 122, 114, 121, 121, 116, 139, 96, 129, 130, 122, 128, 103, 121, 115, 113, 116, 116, 109, 115, 119, 130, 105, 123, 126, 128, 113, 119, 116, 116, 114, 105, 116, 115, 118, 116, 108, 115, 108, 117, 112, 113, 99, 118, 118, 107, 118, 128, 125, 99, 123, 119, 111, 124, 133, 119, 107, 104, 96, 133, 125, 118, 90, 121, 120, 130, 113, 120, 118, 120, 110, 109, 133, 109, 113, 114, 111, 118, 109, 111, 128, 125, 115, 95, 117, 116, 115, 124, 111, 117, 113, 117, 126, 120, 120, 99, 121, 134, 107, 111, 113, 110, 110, 114, 117, 113, 114, 118, 125, 115, 112, 115, 123, 117, 131, 108, 139, 110, 107, 111, 115, 114, 115, 104, 117, 96, 113, 108, 126, 116, 110, 121, 127, 116, 111, 116, 121, 115, 106, 120, 107, 107, 121, 111, 140, 129, 132, 108, 117, 129, 128, 110, 107, 95, 112, 108, 105, 119, 112, 122, 126, 116, 104, 110, 124, 116, 107, 113, 112, 99, 109, 111, 125, 111, 127, 119, 113, 105, 108, 111, 114, 129, 116, 116, 118, 111, 145, 117, 129, 113, 122, 114, 104, 126, 119, 119, 127, 113, 115, 116, 116, 111, 126, 112, 112, 123, 109, 116, 104, 115, 116, 119, 114, 120, 123, 120, 118, 109, 110, 128, 108, 114, 112, 127, 111, 108, 117, 131, 122, 95, 125, 107, 108, 132, 118, 98, 111, 117, 119, 109, 103, 113, 117, 104, 119, 113, 117, 108, 114, 95, 97, 112, 111, 107, 112, 119, 128, 115, 105, 123, 112, 120, 105, 101, 108, 118, 118, 121, 108, 121, 104, 105, 119, 119, 111, 116, 117, 115, 113, 119, 106, 114, 115, 111, 117, 109, 131, 132, 115, 110, 110, 132, 121, 116, 109, 111, 117, 121, 113, 122, 113, 114, 141, 120, 117, 109, 127, 121, 105, 136, 123, 112, 122, 106, 116, 111, 124, 115, 120, 129, 113, 110, 115, 103, 112, 121, 121, 110, 112, 123, 116, 124, 104, 109, 123, 119, 117, 125, 116, 121, 108, 112, 142, 114, 110, 111, 123, 118, 109, 144, 117, 107, 116, 115, 129, 138, 133, 136, 93, 128, 107, 113, 105, 109, 117, 118, 110, 104, 103, 122, 146, 113, 118, 106, 120, 102, 102, 117, 115, 112, 133, 105, 136, 105, 123, 119, 115, 116, 127, 112, 126, 106, 121, 117, 111, 117, 120, 103, 112, 127, 137, 111, 105, 116, 125, 114, 111, 136, 125, 142, 119, 95, 110, 97, 110, 115, 116, 120, 125, 121, 110, 126, 117, 117, 111, 132, 126, 109, 125, 124, 116, 115, 115, 126, 131, 126, 117, 117, 111, 118, 120, 126, 113, 108, 106, 116, 124, 104, 128, 137, 101, 133, 117, 108, 118, 126, 118, 102, 107, 122, 119, 94, 121, 95, 128, 118, 108, 107, 112, 120, 101, 116, 109, 103, 120, 131, 125, 124, 96, 116, 116, 89, 106, 103, 113, 108, 127, 116, 112, 126, 101, 118, 119, 112, 102, 110, 139, 88, 118, 116, 115, 110, 120, 110, 115, 111, 125, 116, 112, 101, 110, 103, 124, 124, 102, 115, 125, 123, 118, 112, 112, 140, 101, 104, 121, 121, 115, 107, 120, 117, 155, 109, 107, 112, 115, 118, 96, 111, 107, 137, 128, 126, 130, 100, 96, 96, 103, 130, 126, 117, 116, 111, 105, 108, 109, 98, 93, 120, 119, 96, 105, 110, 99, 84, 120, 110, 113, 137, 104, 109, 109, 115, 117, 108, 119, 127, 117, 115, 117, 110, 147, 118, 132, 108, 119, 117, 104, 106, 92, 126, 133, 111, 104, 110, 125, 106, 123, 100, 150, 120, 135, 115, 98, 102, 113, 109, 117, 123, 114, 99, 106, 114, 110, 110, 119, 121, 93, 131, 109, 119, 124, 128, 114, 107, 116, 123, 122, 115, 129, 132, 119, 112, 117, 120, 131, 113, 105, 123, 117, 99, 105, 120, 95, 123, 121, 120, 116, 128, 135, 123, 105, 98, 116, 120, 120, 125, 115, 110, 108, 109, 118, 124, 132, 121, 112, 141, 109, 114, 113, 108, 130, 113, 99, 108, 111, 104, 120, 111, 109, 108, 141, 104, 122, 119, 115, 111, 108, 99, 133, 96, 110, 110, 116, 80, 123, 111, 123, 110, 120, 107, 119, 119, 120, 125, 126, 108, 125, 126, 125, 104, 123, 117, 100, 138, 125, 105, 106, 117, 114, 119, 124, 111, 102, 110, 109, 114, 101, 102, 133, 97, 129, 107, 135, 107, 121, 110, 106, 111, 111, 122, 126, 124, 99, 114, 120, 128, 106, 122, 116, 121, 110, 119, 127, 124, 117, 107, 124, 113, 96, 116, 127, 117, 128, 112, 124, 119, 115, 114, 118, 107, 123, 110, 110, 110, 117, 109, 113, 86, 108, 112, 120, 136, 129, 131, 114, 128, 111, 123, 119, 123, 122, 102, 108, 123, 113, 106, 122, 104, 109, 97, 127, 117, 122, 135, 129, 114, 108, 110, 122, 115, 98, 100, 133, 114, 100, 112, 115, 119, 125, 110, 115, 98, 112, 112, 132, 114, 97, 108, 108, 101, 106, 118, 110, 112, 113, 127, 106, 82, 121, 118, 115, 113, 119, 137, 113, 115, 121, 127, 122, 123, 113, 117, 106, 134, 120, 113, 141, 127, 108, 127, 112, 128, 118, 107, 111, 97, 90, 114, 113, 115, 115, 114, 117, 113, 114, 121, 121, 122, 105, 117, 111, 112, 136, 108, 101, 114, 127, 100, 128, 132, 121, 109, 118, 120, 115, 131, 114, 123, 110, 113, 124, 118, 105, 123, 117, 108, 121, 111, 122, 110, 128, 126, 129, 119, 111, 114, 124, 140, 123, 121, 119, 119, 107, 126, 128, 110, 113, 112, 111, 124, 112, 128, 113, 129, 104, 108, 114, 133, 111, 109, 126, 136, 118, 122, 114, 107, 112, 118, 104, 114, 106, 139, 119, 111, 122, 117, 134, 119, 121, 130, 129, 123, 139, 104, 114, 128, 116, 116, 113, 120, 106, 119, 124, 128, 101, 122, 128, 127, 105, 114, 108, 103, 114, 125, 133, 127, 126, 125, 116, 109, 120, 112, 121, 113, 107, 107, 120, 118, 118, 118, 103, 113, 125, 123, 125, 110, 119, 115, 109, 120, 127, 101, 122, 131, 118, 114, 105, 111, 117, 130, 109, 114, 119, 124, 103, 110, 117, 122, 92, 101, 114, 118, 128, 134, 127, 111, 117, 124, 117, 104, 99, 110, 150, 123, 120, 113, 134, 105, 118, 126, 109, 105, 110, 118, 123, 120, 114, 121, 119, 111, 103, 98, 102, 117, 117, 109, 113, 107, 119, 108, 116, 124, 107, 113, 126, 105, 109, 147, 114, 122, 115, 111, 108, 124, 93, 108, 113, 131, 114, 113, 118, 113, 115, 123, 125, 124, 109, 110, 117, 124, 96, 124, 124, 121, 123, 123, 124, 116, 115, 123, 131, 111, 136, 106, 106, 123, 118, 102, 117, 123, 118, 126, 139, 138, 108, 116, 106, 143, 113, 117, 116, 136, 120, 117, 110, 121, 110, 104, 115, 109, 120, 127, 99, 114, 137, 118, 111, 115, 110, 111, 113, 112, 132, 111, 120, 103, 115, 102, 104, 116, 108, 107, 124, 102, 104, 131, 116, 108, 125, 128, 115, 125, 131, 103, 104, 128, 108, 106, 119, 112, 123, 121, 104, 122, 108, 107, 105, 122, 121, 129, 118, 125, 108, 107, 123, 127, 121, 111, 128, 126, 106, 115, 113, 114, 110, 109, 109, 137, 117, 126, 120, 112, 105, 120, 118, 100, 102, 111, 114, 127, 109, 114, 113, 115, 113, 105, 113, 147, 116, 110, 113, 99, 121, 120, 143, 115, 113, 118, 122, 112, 118, 103, 104, 117, 131, 120, 116, 116, 117, 123, 119, 115, 133, 126, 123, 111, 111, 109, 126, 119, 110, 111, 112, 107, 114, 114, 109, 112, 122, 117, 124, 109, 114, 110, 109, 122, 103, 104, 110, 124, 128, 107, 115, 119, 106, 107, 139, 100, 106, 123, 135, 111, 108, 91, 107, 133, 121, 108, 139, 108, 104, 114, 123, 111, 105, 116, 128, 111, 112, 113, 116, 110, 99, 110, 100, 104, 119, 122, 113, 124, 115, 109, 113, 121, 107, 127, 121, 111, 114, 124, 105, 118, 127, 121, 127, 124, 109, 117, 119, 128, 110, 107, 108, 116, 130, 113, 114, 107, 119, 120, 107, 118, 104, 107, 116, 115, 121, 115, 99, 109, 107, 110, 108, 128, 121, 114, 116, 111, 128, 118, 109, 115, 124, 103, 113, 126, 114, 112, 106, 111, 119, 109, 132, 97, 124, 119, 117, 128, 118, 132, 99, 123, 120, 124, 121, 118, 111, 120, 111, 118, 113, 107, 116, 107, 120, 115, 98, 105, 119, 133, 98, 124, 133, 127, 110, 126, 111, 103, 113, 122, 105, 126, 117, 120, 120, 102, 125, 109, 116, 144, 110, 115, 108, 103, 116, 112, 119, 111, 116, 125, 98, 120, 124, 118, 125, 111, 112, 121, 109, 120, 122, 106, 112, 122, 113, 122, 107, 113, 117, 125, 117, 110, 117, 107, 116, 127, 113, 125, 117, 92, 109, 100, 117, 110, 112, 121, 121, 109, 108, 117, 110, 124, 96, 120, 105, 122, 115, 113, 110, 115, 122, 122, 112, 95, 103, 114, 127, 120, 114, 124, 124, 114, 127, 107, 127, 112, 117, 115, 115, 104, 113, 115, 122, 108, 125, 130, 111, 117, 100, 112, 114, 117, 108, 121, 120, 127, 110, 131, 112, 152, 102, 118, 99, 109, 105, 111, 131, 120, 129, 117, 117, 113, 95, 97, 118, 107, 112, 135, 115, 129, 136, 126, 115, 118, 119, 109, 131, 129, 105, 126, 122, 134, 124, 116, 107, 125, 115, 107, 101, 118, 121, 108, 112, 112, 108, 122, 118, 116, 101, 127, 108, 112, 112, 104, 120, 122, 119, 124, 118, 119, 117, 95, 119, 113, 125, 110, 106, 109, 121, 129, 106, 126, 96, 113, 115, 111, 128, 109, 122, 127, 122, 101, 116, 138, 104, 121, 129, 115, 106, 137, 115, 113, 116, 128, 116, 133, 107, 114, 109, 112, 122, 113, 119, 112, 120, 111, 111, 118, 110, 117, 111, 115, 114, 127, 126, 118, 114, 107, 114, 122, 115, 110, 114, 118, 118, 121, 107, 111, 121, 118, 116, 113, 126, 118, 107, 115, 110, 111, 117, 115, 115, 125, 122, 113, 123, 107, 112, 117, 128, 93, 119, 114, 114, 116, 132, 130, 118, 120, 133, 118, 127, 114, 116, 120, 125, 129, 114, 116, 118, 119, 101, 121, 115, 115, 112, 116, 122, 115, 114, 117, 130, 111, 120, 117, 121, 122, 115, 115, 115, 116, 127, 107, 111, 106, 113, 122, 106, 111, 116, 108, 129, 110, 133, 124, 106, 117, 114, 112, 136, 118, 117, 132, 117, 113, 118, 118, 113, 116, 110, 113, 114, 115, 123, 117, 117, 121, 115, 119, 138, 117, 115, 119, 119, 109, 121, 126, 116, 120, 116, 110, 113, 118, 113, 113, 119, 112, 123, 120, 118, 113, 113, 111, 118, 115, 113, 121, 118, 113, 116, 117, 100, 122, 115, 119, 113, 106, 110, 116, 108, 113, 116, 109, 113, 127, 119, 113, 126, 117, 120, 125, 112, 121, 120, 104, 122, 119, 119, 121, 111, 109, 122, 129, 116, 117, 121, 121, 113, 121, 114, 115, 106, 118, 109, 116, 112, 117, 106, 136, 116, 112, 120, 112, 112, 115, 116, 116, 115, 124, 118, 125, 142, 107, 113, 104, 115, 107, 116, 114, 116, 116, 120, 116, 123, 111, 126, 117, 107, 112, 114, 117, 113, 111, 116, 95, 112, 136, 113, 92, 120, 99, 114, 112, 109, 123, 121, 114, 109, 109, 101, 114, 120, 113, 118, 122, 116, 109, 120, 121, 128, 105, 119, 128, 112, 123, 120, 114, 120, 115, 119, 123, 141, 112, 114, 124, 120, 112, 117, 120, 121, 118, 114, 111, 109, 116, 119, 116, 109, 112, 121, 116, 117, 111, 109, 121, 112, 99, 114, 126, 115, 119, 120, 119, 101, 114, 105, 113, 114, 113, 117, 111, 113, 117, 111, 112, 114, 110, 112, 123, 93, 121, 125, 114, 115, 127, 123, 109, 108, 146, 110, 113, 110, 112, 119, 104, 120, 112, 117, 120, 121, 110, 119, 124, 103, 117, 114, 108, 116, 133, 119, 116, 117, 117, 138, 114, 111, 107, 115, 126, 116, 121, 109, 117, 115, 107, 124, 116, 123, 109, 112, 116, 113, 114, 119, 111, 113, 120, 110, 118, 118, 111, 140, 123, 114, 119, 116, 131, 122, 109, 103, 92, 125, 117, 116, 118, 118, 107, 114, 115, 117, 116, 108, 109, 112, 119, 111, 117, 121, 117, 114, 117, 118, 112, 117, 115, 128, 116, 120, 109, 116, 112, 114, 118, 122, 114, 118, 124, 113, 118, 115, 126, 110, 117, 113, 112, 113, 121, 117, 111, 110, 117, 115, 114, 104, 107, 121, 115, 128, 113, 112, 109, 111, 111, 114, 121, 120, 116, 117, 122, 115, 117, 116, 120, 121, 119, 119, 115, 116, 114, 114, 109, 115, 109, 120, 118, 114, 118, 121, 114, 119, 112, 102, 123, 123, 112, 117, 125, 118, 115, 118, 115, 122, 121, 120, 120, 116, 119, 122, 123, 117, 114, 114, 114, 113, 117, 108, 108, 115, 115, 110, 123, 115, 113, 101, 123, 114, 119, 119, 116, 114, 117, 119, 120, 122, 120, 115, 116, 122, 115, 127, 125, 113, 114, 110, 114, 122, 112, 112, 125, 119, 119, 121, 111, 119, 117, 118, 127, 113, 108, 119, 115, 113, 118, 132, 124, 112, 116, 114, 119, 120, 104, 112, 108, 116, 117, 126, 112, 117, 120, 125, 118, 115, 113, 109, 116, 116, 121, 109, 117, 122, 111, 119, 125, 112, 112, 127, 113, 125, 111, 117, 122, 113, 118, 117, 116, 110, 110, 114, 121, 115, 125, 111, 125, 117, 114, 111, 122, 118, 124, 111, 128, 118, 127, 105, 116, 123, 117, 117, 115, 118, 105, 105, 111, 118, 116, 104, 110, 114, 120, 99, 118, 113, 119, 117, 110, 113, 124, 117, 122, 112, 110, 117, 121, 111, 116, 114, 121, 133, 120, 108, 129, 116, 114, 109, 115, 119, 112, 115, 117, 112, 111, 126, 114, 110, 112, 120, 114, 125, 131, 118, 127, 120, 128, 124, 113, 113, 116, 113, 117, 106, 109, 117, 116, 113, 123, 115, 111, 122, 125, 120, 121, 118, 118, 111, 113, 110, 124, 113, 120, 114, 118, 111, 117, 119, 124, 124, 124, 119, 109, 115, 121, 141, 118, 99, 118, 123, 114, 111, 109, 108, 122, 120, 112, 113, 127, 127, 121, 114, 127, 114, 108, 118, 104, 111, 118, 117, 114, 115, 120, 111, 117, 112, 121, 116, 127, 107, 120, 114, 109, 142, 118, 106, 123, 119, 112, 104, 115, 108, 114, 109, 115, 114, 126, 120, 121, 105, 115, 114, 120, 115, 112, 114, 113, 117, 112, 126, 109, 119, 115, 121, 115, 141, 122, 112, 119, 116, 124, 114, 113, 121, 126, 115, 113, 115, 109, 115, 121, 102, 122, 117, 115, 116, 106, 121, 118, 123, 118, 117, 116, 115, 110, 100, 121, 114, 116, 112, 131, 116, 102, 107, 112, 114, 119, 117, 116, 118, 109, 113, 113, 115, 115, 110, 111, 118, 114, 113, 121, 113, 118, 117, 125, 116, 108, 134, 112, 118, 112, 114, 112, 108, 116, 120, 119, 115, 121, 119, 114, 112, 120, 113, 112, 116, 122, 120, 111, 115, 117, 122, 116, 105, 111, 113, 105, 113, 104, 119, 109, 110, 110, 118, 114, 123, 117, 125, 115, 115, 112, 102, 118, 116, 113, 128, 121, 115, 116, 132, 118, 114, 115, 119, 122, 119, 116, 117, 109, 117, 124, 115, 112, 120, 111, 118, 116, 121, 110, 112, 122, 124, 119, 117, 118, 116, 122, 107, 119, 129, 125, 118, 117, 110, 127, 104, 119, 115, 119, 118, 116, 95, 115, 106, 115, 111, 115, 122, 119, 118, 106, 125, 114, 122, 104, 104, 117, 123, 121, 115, 111, 121, 121, 114, 126, 121, 125, 116, 114, 112, 114, 112, 112, 111, 113, 106, 120, 115, 115, 126, 114, 120, 116, 117, 115, 119, 120, 118, 109, 114, 115, 120, 114, 120, 124, 118, 117, 124, 110, 115, 106, 112, 91, 113, 106, 114, 115, 127, 116, 118, 110, 116, 122, 121, 117, 130, 127, 111, 115, 107, 113, 117, 107, 113, 143, 112, 133, 136, 118, 109, 98, 141, 109, 109, 112, 110, 115, 103, 130, 102, 105, 127, 117, 120, 83, 115, 121, 136, 106, 110, 123, 98, 112, 111, 92, 109, 110, 112, 116, 120, 103, 128, 101, 105, 119, 129, 114, 113, 115, 123, 131, 116, 103, 117, 104, 109, 105, 111, 109, 109, 107, 117, 133, 112, 114, 116, 113, 86, 109, 130, 104, 113, 112, 131, 112, 116, 125, 106, 88, 111, 117, 132, 112, 119, 109, 105, 99, 130, 123, 117, 117, 117, 106, 127, 98, 120, 105, 110, 105, 118, 145, 121, 119, 97, 127, 122, 114, 117, 89, 111, 126, 124, 108, 114, 117, 108, 120, 123, 97, 116, 115, 102, 113, 161, 115, 111, 107, 104, 126, 128, 115, 126, 127, 119, 109, 124, 124, 87, 137, 86, 123, 134, 128, 123, 118, 117, 117, 119, 113, 97, 127, 127, 117, 123, 106, 112, 115, 89, 116, 136, 106, 113, 127, 100, 117, 84, 131, 119, 110, 113, 105, 117, 112, 134, 149, 115, 116, 97, 124, 106, 101, 116, 111, 134, 120, 103, 102, 96, 102, 131, 119, 121, 114, 95, 116, 143, 122, 98, 115, 107, 116, 129, 141, 112, 102, 108, 122, 111, 117, 127, 118, 109, 115, 130, 119, 119, 107, 96, 111, 128, 110, 118, 114, 128, 98, 121, 127, 177, 105, 136, 106, 124, 104, 116, 112, 125, 128, 118, 102, 113, 125, 109, 131, 130, 106, 125, 132, 123, 112, 128, 110, 136, 105, 115, 129, 119, 104, 105, 114, 118, 126, 115, 122, 123, 107, 127, 108, 121, 113, 111, 115, 109, 136, 117, 118, 121, 116, 109, 117, 123, 109, 111, 115, 113, 105, 112, 110, 94, 113, 107, 91, 110, 116, 107, 112, 118, 108, 100, 115, 121, 95, 114, 139, 94, 125, 104, 110, 108, 120, 118, 99, 106, 135, 120, 137, 109, 116, 113, 112, 121, 88, 93, 105, 102, 89, 88, 131, 112, 116, 123, 95, 108, 114, 98, 111, 119, 132, 104, 114, 129, 107, 117, 120, 96, 130, 118, 130, 132, 113, 120, 134, 125, 109, 109, 116, 120, 106, 121, 135, 106, 112, 128, 117, 120, 109, 99, 148, 125, 120, 122, 112, 115, 128, 111, 157, 115, 104, 109, 124, 113, 105, 108, 109, 107, 127, 129, 110, 118, 109, 122, 99, 108, 113, 107, 109, 117, 111, 141, 131, 118, 100, 120, 130, 123, 102, 102, 102, 123, 104, 149, 115, 111, 120, 108, 120, 99, 121, 117, 148, 106, 116, 124, 103, 108, 97, 105, 110, 126, 121, 75, 109, 113, 123, 125, 111, 112, 111, 113, 107, 109, 123, 98, 109, 107, 102, 118, 111, 117, 119, 119, 98, 114, 112, 107, 115, 120, 116, 110, 121, 120, 115, 136, 105, 113, 105, 122, 119, 129, 112, 105, 96, 120, 131, 113, 129, 102, 114, 105, 154, 72, 102, 108, 87, 92, 78, 114, 108, 102, 92, 122, 121, 102, 109, 115, 121, 119, 117, 104, 74, 125, 125, 120, 132, 108, 118, 112, 112, 136, 120, 109, 123, 110, 112, 129, 121, 114, 112, 120, 106, 109, 111, 104, 124, 127, 127, 102, 143, 118, 112, 125, 129, 112, 113, 124, 108, 122, 110, 118, 122, 130, 107, 102, 116, 122, 115, 114, 112, 108, 114, 101, 106, 125, 115, 128, 122, 114, 111, 101, 113, 102, 119, 110, 128, 112, 122, 113, 117, 112, 104, 122, 109, 118, 115, 133, 134, 119, 115, 104, 116, 114, 149, 95, 108, 121, 103, 122, 119, 139, 121, 110, 131, 127, 111, 103, 119, 116, 119, 113, 106, 126, 102, 117, 125, 102, 133, 118, 103, 119, 112, 113, 112, 100, 134, 105, 117, 120, 122, 121, 112, 128, 108, 107, 106, 111, 100, 124, 133, 106, 123, 110, 114, 114, 112, 117, 109, 126, 108, 131, 122, 101, 110, 112, 115, 116, 124, 106, 117, 121, 114, 124, 125, 119, 129, 122, 135, 112, 116, 125, 119, 106, 126, 104, 108, 112, 112, 119, 109, 108, 119, 109, 121, 100, 105, 109, 120, 111, 110, 105, 110, 99, 136, 123, 100, 108, 123, 110, 122, 139, 112, 129, 103, 118, 132, 115, 121, 116, 106, 108, 111, 114, 113, 102, 114, 118, 129, 107, 123, 123, 98, 106, 110, 90, 121, 107, 105, 113, 98, 106, 114, 114, 115, 135, 117, 122, 106, 119, 106, 111, 116, 117, 116, 99, 112, 124, 117, 102, 111, 105, 107, 116, 114, 118, 103, 100, 123, 122, 121, 114, 108, 119, 117, 114, 113, 133, 117, 116, 105, 113, 127, 120, 113, 111, 132, 125, 119, 123, 101, 124, 121, 103, 108, 102, 129, 110, 116, 119, 119, 105, 121, 116, 123, 129, 127, 120, 128, 113, 111, 124, 134, 118, 110, 131, 89, 110, 109, 118, 128, 116, 115, 116, 113, 117, 107, 116, 116, 113, 112, 104, 117, 99, 119, 119, 123, 96, 115, 112, 111, 126, 110, 107, 125, 116, 104, 130, 120, 117, 107, 124, 117, 132, 123, 113, 127, 132, 126, 109, 111, 110, 107, 105, 115, 99, 107, 122, 118, 123, 107, 107, 131, 117, 120, 113, 115, 113, 126, 90, 113, 120, 111, 121, 94, 103, 123, 126, 121, 115, 133, 116, 117, 103, 111, 103, 124, 120, 115, 102, 125, 105, 130, 129, 114, 111, 121, 115, 114, 129, 122, 134, 107, 116, 116, 105, 120, 123, 118, 89, 124, 100, 117, 117, 140, 115, 115, 104, 136, 112, 113, 109, 115, 139, 108, 121, 122, 116, 130, 128, 125, 128, 99, 113, 107, 106, 113, 107, 110, 130, 117, 102, 114, 93, 130, 122, 150, 106, 112, 116, 105, 129, 127, 111, 87, 129, 113, 102, 106, 121, 112, 113, 125, 119, 125, 112, 112, 131, 111, 97, 101, 126, 107, 122, 125, 121, 115, 91, 128, 123, 119, 112, 105, 107, 96, 115, 114, 117, 126, 105, 113, 127, 118, 110, 103, 125, 112, 137, 110, 99, 105, 117, 119, 134, 110, 105, 116, 118, 117, 104, 167, 119, 123, 139, 115, 127, 111, 114, 101, 101, 130, 110, 113, 112, 130, 120, 122, 123, 119, 126, 130, 130, 123, 125, 133, 119, 109, 99, 98, 115, 128, 112, 130, 115, 85, 102, 97, 116, 104, 120, 117, 136, 108, 112, 103, 111, 105, 116, 94, 117, 113, 120, 108, 137, 107, 126, 110, 97, 115, 114, 131, 117, 108, 119, 113, 133, 129, 117, 116, 119, 105, 123, 109, 100, 126, 123, 114, 101, 122, 109, 122, 116, 116, 116, 124, 125, 108, 118, 122, 118, 132, 113, 127, 108, 134, 128, 110, 98, 112, 120, 118, 114, 123, 121, 108, 126, 117, 114, 107, 94, 111, 117, 103, 115, 158, 114, 109, 106, 116, 112, 121, 105, 99, 108, 114, 114, 125, 118, 116, 122, 108, 99, 125, 105, 130, 110, 112, 111, 109, 115, 111, 115, 121, 113, 102, 112, 119, 124, 116, 133, 105, 117, 122, 117, 103, 109, 112, 116, 125, 125, 112, 118, 121, 128, 104, 114, 114, 124, 134, 110, 111, 117, 131, 104, 117, 116, 116, 107, 112, 125, 105, 108, 121, 108, 107, 113, 107, 119, 121, 99, 112, 120, 120, 107, 121, 121, 117, 109, 112, 113, 119, 112, 122, 133, 112, 118, 109, 116, 109, 101, 113, 114, 99, 114, 119, 109, 121, 130, 121, 115, 97, 102, 107, 116, 143, 116, 108, 116, 127, 103, 104, 110, 114, 112, 122, 126, 118, 123, 110, 104, 120, 105, 159, 109, 114, 120, 110, 114, 113, 147, 127, 109, 132, 113, 127, 118, 116, 129, 119, 117, 108, 111, 124, 113, 108, 114, 107, 111, 101, 131, 113, 115, 113, 116, 110, 106, 123, 104, 120, 157, 112, 133, 115, 121, 120, 112, 109, 121, 105, 109, 113, 102, 125, 119, 108, 107, 129, 112, 115, 122, 106, 133, 119, 104, 111, 128, 115, 115, 118, 129, 108, 107, 121, 120, 124, 123, 126, 117, 117, 119, 126, 123, 126, 117, 118, 119, 105, 123, 111, 104, 103, 113, 112, 118, 111, 117, 116, 117, 125, 107, 118, 115, 119, 106, 96, 110, 110, 130, 114, 125, 122, 112, 105, 109, 115, 126, 108, 113, 106, 112, 110, 116, 102, 115, 118, 104, 120, 105, 100, 115, 109, 124, 121, 107, 113, 119, 121, 109, 119, 120, 128, 109, 115, 107, 119, 111, 115, 120, 113, 113, 104, 119, 119, 120, 118, 104, 92, 123, 111, 110, 109, 114, 122, 116, 125, 105, 107, 119, 100, 114, 117, 127, 111, 114, 128, 112, 119, 117, 125, 123, 126, 115, 131, 129, 112, 112, 116, 117, 110, 125, 134, 111, 112, 118, 115, 131, 108, 122, 106, 110, 102, 121, 123, 120, 117, 122, 110, 103, 125, 114, 118, 119, 107, 133, 120, 126, 121, 109, 126, 115, 110, 108, 113, 142, 100, 104, 109, 118, 124, 130, 115, 129, 120, 116, 115, 120, 118, 128, 118, 121, 104, 125, 108, 123, 111, 102, 131, 118, 137, 107, 111, 91, 99, 99, 117, 99, 100, 113, 105, 118, 101, 114, 122, 119, 125, 142, 120, 116, 128, 111, 111, 104, 107, 119, 113, 124, 124, 120, 117, 119, 126, 104, 113, 110, 117, 100, 102, 113, 121, 123, 107, 117, 99, 112, 100, 114, 122, 120, 115, 111, 114, 117, 120, 141, 117, 115, 110, 112, 129, 114, 112, 121, 135, 123, 118, 98, 110, 113, 113, 114, 114, 116, 121, 119, 106, 112, 125, 114, 115, 111, 120, 116, 114, 131, 115, 115, 118, 118, 120, 129, 117, 121, 113, 118, 113, 126, 118, 117, 145, 114, 120, 114, 134, 112, 125, 122, 114, 115, 119, 118, 113, 118, 117, 97, 112, 123, 113, 123, 123, 114, 121, 105, 113, 119, 110, 119, 128, 116, 111, 99, 113, 115, 114, 122, 114, 94, 110, 133, 88, 146, 106, 115, 99, 115, 117, 116, 124, 146, 116, 115, 122, 110, 113, 118, 122, 121, 114, 99, 116, 117, 123, 123, 118, 116, 122, 114, 111, 117, 110, 114, 114, 117, 113, 112, 119, 113, 103, 112, 92, 117, 113, 119, 124, 112, 115, 110, 115, 121, 121, 129, 118, 110, 121, 121, 120, 112, 110, 112, 116, 115, 120, 116, 120, 123, 115, 117, 114, 115, 118, 114, 104, 121, 118, 113, 108, 119, 112, 122, 115, 114, 121, 108, 116, 119, 121, 109, 111, 119, 98, 85, 117, 115, 117, 126, 114, 122, 110, 124, 116, 113, 119, 120, 115, 110, 130, 121, 121, 117, 113, 117, 123, 125, 115, 112, 112, 127, 119, 119, 99, 113, 105, 111, 114, 118, 116, 116, 111, 114, 113, 122, 111, 118, 121, 124, 114, 109, 127, 125, 121, 116, 114, 130, 121, 107, 119, 123, 108, 122, 112, 116, 115, 114, 111, 115, 108, 112, 121, 133, 110, 119, 119, 118, 119, 107, 122, 113, 121, 113, 119, 111, 120, 118, 125, 114, 121, 120, 115, 104, 109, 125, 116, 114, 109, 115, 120, 111, 112, 118, 126, 107, 116, 117, 125, 133, 137, 116, 110, 114, 120, 125, 109, 125, 113, 116, 116, 106, 112, 113, 132, 101, 116, 121, 116, 117, 115, 115, 110, 119, 119, 117, 120, 111, 116, 128, 117, 121, 119, 114, 116, 140, 101, 114, 114, 134, 115, 108, 112, 122, 89, 123, 116, 128, 118, 113, 120, 123, 121, 122, 118, 116, 119, 119, 130, 120, 110, 116, 116, 119, 109, 104, 106, 118, 118, 118, 119, 115, 118, 128, 111, 108, 118, 101, 115, 113, 113, 117, 120, 112, 118, 140, 125, 125, 110, 115, 118, 118, 121, 113, 119, 116, 116, 111, 116, 120, 121, 134, 113, 114, 127, 100, 115, 115, 125, 118, 127, 121, 133, 112, 108, 118, 112, 115, 111, 112, 122, 120, 112, 116, 106, 105, 111, 115, 122, 110, 112, 116, 131, 122, 109, 118, 115, 121, 121, 103, 118, 120, 113, 114, 143, 117, 95, 114, 118, 117, 113, 122, 117, 124, 119, 114, 114, 116, 124, 119, 110, 122, 112, 122, 119, 120, 113, 86, 110, 112, 113, 118, 116, 121, 115, 125, 112, 120, 101, 116, 120, 117, 113, 119, 120, 114, 106, 113, 112, 119, 111, 95, 112, 116, 132, 117, 122, 98, 134, 119, 120, 112, 114, 126, 120, 124, 119, 122, 114, 119, 118, 120, 122, 115, 110, 122, 116, 119, 120, 111, 115, 127, 116, 126, 116, 105, 109, 117, 99, 114, 132, 114, 125, 112, 130, 110, 125, 103, 118, 117, 108, 124, 123, 99, 113, 127, 117, 107, 119, 119, 131, 114, 119, 108, 140, 111, 108, 110, 132, 123, 101, 117, 122, 84, 111, 115, 105, 113, 112, 109, 116, 109, 114, 117, 111, 118, 113, 116, 137, 118, 114, 124, 129, 102, 129, 120, 100, 127, 110, 128, 115, 118, 116, 107, 116, 100, 108, 91, 114, 116, 108, 106, 132, 120, 107, 119, 100, 118, 102, 98, 117, 110, 107, 118, 104, 122, 108, 119, 116, 121, 98, 110, 108, 116, 110, 120, 125, 126, 110, 111, 118, 93, 112, 121, 118, 114, 115, 118, 111, 115, 112, 118, 99, 130, 119, 114, 102, 107, 129, 138, 125, 115, 113, 117, 108, 104, 119, 116, 111, 116, 102, 112, 114, 120, 121, 96, 108, 114, 112, 116, 111, 116, 120, 122, 102, 137, 118, 122, 122, 128, 124, 118, 109, 112, 122, 115, 109, 110, 113, 113, 102, 114, 137, 131, 126, 115, 116, 102, 117, 109, 112, 116, 131, 111, 116, 114, 115, 116, 126, 98, 104, 134, 113, 107, 108, 108, 119, 113, 104, 119, 112, 112, 117, 109, 122, 142, 119, 108, 115, 114, 114, 118, 118, 120, 117, 108, 113, 119, 110, 121, 111, 118, 128, 122, 118, 109, 107, 108, 147, 100, 133, 109, 117, 116, 115, 114, 116, 117, 118, 109, 119, 115, 121, 137, 103, 138, 98, 117, 119, 110, 115, 122, 132, 106, 123, 158, 140, 94, 106, 110, 104, 114, 105, 119, 124, 92, 113, 109, 105, 134, 95, 103, 122, 114, 126, 122, 110, 122, 122, 104, 107, 109, 123, 121, 121, 106, 116, 120, 118, 112, 108, 104, 127, 124, 113, 109, 115, 116, 115, 119, 157, 138, 113, 106, 108, 125, 110, 106, 133, 103, 115, 103, 112, 133, 118, 113, 114, 134, 120, 121, 118, 114, 116, 116, 116, 103, 108, 117, 115, 119, 108, 130, 144, 108, 112, 103, 119, 110, 111, 109, 113, 113, 106, 116, 124, 128, 126, 115, 115, 123, 117, 118, 116, 130, 124, 144, 103, 112, 131, 124, 111, 122, 123, 117, 109, 117, 120, 121, 113, 117, 115, 113, 117, 108, 116, 127, 113, 109, 121, 119, 118, 95, 113, 124, 111, 119, 128, 118, 114, 117, 102, 126, 126, 121, 110, 112, 109, 119, 123, 126, 106, 110, 130, 110, 109, 120, 104, 115, 96, 113, 104, 131, 119, 110, 111, 115, 113, 122, 123, 105, 111, 113, 120, 123, 126, 120, 94, 124, 125, 114, 117, 116, 120, 109, 120, 120, 117, 142, 112, 125, 119, 124, 118, 123, 112, 118, 114, 149, 125, 136, 124, 109, 117, 111, 125, 110, 117, 102, 104, 123, 115, 117, 116, 106, 134, 128, 113, 114, 108, 130, 110, 111, 120, 132, 111, 120, 108, 116, 142, 106, 110, 89, 109, 118, 111, 118, 121, 107, 123, 121, 119, 117, 96, 98, 112, 124, 120, 117, 113, 117, 110, 114, 128, 126, 119, 122, 104, 106, 115, 113, 111, 125, 130, 127, 112, 116, 124, 124, 125, 108, 114, 128, 125, 110, 107, 117, 111, 115, 109, 109, 120, 134, 112, 111, 132, 113, 110, 99, 109, 122, 97, 111, 118, 108, 98, 112, 126, 100, 125, 106, 119, 110, 110, 112, 123, 99, 134, 132, 113, 120, 122, 112, 111, 112, 127, 127, 111, 108, 111, 113, 117, 125, 105, 121, 110, 105, 110, 118, 114, 120, 111, 113, 117, 106, 111, 116, 115, 109, 103, 120, 116, 127, 114, 111, 115, 114, 115, 108, 115, 114, 136, 122, 116, 114, 102, 123, 111, 111, 114, 114, 117, 105, 112, 116, 114, 119, 112, 104, 116, 110, 134, 111, 109, 121, 118, 114, 110, 107, 118, 123, 105, 114, 104, 101, 121, 112, 115, 117, 111, 117, 113, 110, 103, 138, 109, 106, 141, 124, 99, 107, 129, 129, 116, 119, 95, 108, 103, 110, 141, 120, 108, 115, 124, 127, 109, 109, 95, 110, 100, 109, 132, 110, 111, 112, 115, 116, 132, 111, 116, 116, 118, 116, 117, 121, 95, 109, 117, 114, 117, 113, 113, 115, 121, 98, 105, 115, 127, 126, 111, 112, 119, 109, 114, 142, 115, 106, 109, 135, 131, 115, 127, 134, 105, 123, 107, 115, 117, 113, 109, 100, 122, 114, 120, 117, 111, 113, 123, 127, 106, 121, 112, 113, 125, 114, 115, 122, 117, 101, 117, 115, 106, 107, 108, 106, 117, 120, 130, 97, 110, 103, 105, 101, 115, 127, 105, 102, 115, 132, 122, 107, 124, 117, 119, 110, 105, 117, 122, 95, 108, 122, 109, 118, 121, 134, 111, 122, 120, 115, 110, 110, 112, 102, 86, 97, 107, 114, 110, 120, 111, 115, 112, 111, 117, 118, 119, 134, 117, 125, 112, 118, 116, 123, 114, 118, 116, 135, 119, 118, 116, 124, 115, 125, 104, 143, 116, 108, 114, 127, 130, 113, 128, 151, 107, 121, 114, 105, 121, 114, 122, 117, 103, 121, 125, 124, 121, 124, 133, 113, 110, 111, 135, 115, 111, 108, 128, 104, 115, 115, 112, 104, 113, 130, 104, 104, 122, 111, 117, 113, 126, 112, 108, 121, 123, 114, 116, 121, 99, 97, 145, 118, 112, 96, 108, 102, 120, 105, 96, 117, 129, 122, 119, 111, 113, 109, 117, 110, 117, 114, 103, 101, 116, 117, 116, 111, 125, 134, 118, 108, 133, 150, 121, 103, 114, 117, 119, 112, 118, 125, 112, 130, 110, 107, 125, 116, 120, 114, 115, 102, 102, 107, 114, 130, 108, 101, 124, 112, 118, 124, 113, 104, 109, 111, 116, 117, 123, 118, 123, 125, 100, 129, 103, 125, 107, 108, 117, 116, 133, 111, 113, 127, 119, 122, 121, 110, 119, 122, 117, 111, 114, 119, 126, 113, 114, 114, 118, 126, 125, 118, 122, 117, 115, 110, 125, 116, 122, 117, 106, 98, 134, 119, 116, 111, 100, 131, 105, 110, 112, 117, 112, 114, 115, 102, 120, 118, 130, 102, 122, 114, 110, 95, 117, 115, 140, 129, 119, 129, 123, 119, 117, 113, 123, 110, 116, 113, 108, 110, 106, 119, 117, 118, 116, 109, 120, 114, 107, 99, 112, 102, 128, 120, 135, 115, 125, 131, 125, 121, 126, 111, 110, 106, 123, 109, 116, 123, 112, 112, 125, 113, 140, 132, 137, 103, 121, 134, 117, 124, 119, 123, 113, 106, 113, 115, 110, 125, 103, 117, 100, 113, 110, 111, 118, 116, 115, 119, 113, 118, 111, 124, 117, 111, 121, 130, 105, 117, 114, 123, 105, 94, 116, 115, 121, 128, 107, 122, 124, 131, 94, 126, 107, 117, 103, 126, 119, 110, 117, 108, 117, 109, 135, 117, 100, 125, 119, 120, 106, 115, 120, 110, 118, 114, 111, 114, 99, 114, 126, 124, 119, 119, 118, 126, 109, 125, 108, 115, 115, 100, 126, 120, 99, 114, 116, 122, 114, 119, 122, 104, 133, 140, 106, 107, 115, 102, 126, 109, 106, 109, 105, 131, 116, 114, 121, 118, 115, 94, 121, 112, 105, 123, 110, 108, 107, 113, 121, 123, 112, 106, 100, 115, 122, 115, 127, 98, 119, 107, 99, 127, 115, 110, 122, 110, 121, 124, 114, 110, 111, 131, 114, 80, 114, 117, 113, 104, 118, 114, 108, 109, 127, 116, 109, 114, 140, 110, 104, 89, 119, 115, 105, 123, 119, 117, 108, 118, 119, 140, 98, 122, 118, 125, 117, 110, 118, 111, 116, 130, 118, 121, 120, 131, 124, 107, 121, 120, 115, 129, 133, 147, 117, 132, 119, 105, 113, 102, 118, 115, 121, 115, 110, 112, 130, 153, 117, 120, 127, 104, 128, 124, 117, 114, 117, 135, 102, 127, 104, 117, 106, 116, 112, 107, 124, 113, 123, 121, 111, 135, 114, 109, 132, 106, 125, 119, 119, 108, 109, 123, 103, 94, 114, 104, 110, 117, 112, 119, 113, 108, 111, 128, 119, 125, 122, 113, 121, 111, 110, 109, 120, 116, 98, 141, 113, 110, 124, 99, 125, 115, 118, 101, 114, 105, 123, 90, 118, 117, 83, 119, 116, 111, 110, 108, 121, 111, 117, 104, 126, 114, 124, 117, 108, 113, 125, 108, 98, 121, 109, 124, 113, 128, 119, 116, 130, 115, 113, 119, 119, 109, 128, 135, 129, 116, 108, 114, 130, 125, 96, 118, 122, 129, 92, 108, 136, 113, 117, 135, 131, 113, 132, 115, 123, 103, 114, 116, 125, 113, 119, 115, 118, 113, 108, 118, 137, 114, 137, 116, 103, 110, 113, 112, 115, 109, 128, 100, 121, 110, 118, 133, 111, 111, 131, 114, 86, 104, 113, 118, 118, 100, 131, 125, 111, 115, 115, 124, 114, 121, 119, 130, 109, 119, 110, 104, 107, 105, 124, 110, 103, 113, 122, 120, 105, 115, 118, 117, 133, 119, 109, 128, 95, 138, 116, 126, 126, 118, 116, 119, 113, 114, 119, 124, 110, 129, 108, 109, 113, 106, 114, 117, 102, 109, 116, 107, 96, 117, 125, 112, 125, 106, 107, 110, 113, 111, 114, 108, 93, 134, 136, 133, 123, 119, 111, 114, 112, 119, 130, 122, 95, 129, 148, 106, 132, 117, 120, 112, 99, 96, 107, 139, 121, 128, 113, 129, 127, 100, 119, 122, 126, 98, 112, 107, 131, 114, 107, 105, 114, 111, 102, 122, 105, 132, 95, 136, 112, 118, 102, 116, 116, 110, 117, 110, 113, 114, 126, 86, 105, 141, 126, 92, 139, 126, 111, 119, 123, 120, 102, 124, 112, 111, 140, 125, 124, 115, 95, 120, 125, 130, 120, 118, 117, 138, 121, 112, 116, 130, 114, 120, 111, 131, 116, 119, 93, 115, 138, 139, 98, 122, 121, 126, 111, 119, 124, 116, 105, 117, 115, 114, 114, 117, 103, 120, 110, 112, 129, 120, 97, 139, 115, 112, 128, 128, 109, 84, 113, 99, 121, 111, 104, 107, 111, 116, 114, 108, 110, 121, 115, 155, 130, 123, 116, 121, 110, 103, 127, 112, 132, 115, 119, 114, 111, 119, 109, 98, 117, 116, 113, 108, 127, 116, 127, 120, 98, 116, 131, 102, 100, 119, 111, 124, 107, 136, 100, 127, 101, 139, 124, 123, 108, 115, 130, 97, 98, 114, 110, 117, 114, 114, 110, 115, 126, 116, 110, 137, 124, 132, 136, 127, 116, 93, 105, 111, 95, 89, 100, 132, 122, 132, 130, 117, 109, 119, 109, 118, 118, 127, 122, 114, 114, 124, 106, 122, 108, 130, 108, 101, 108, 134, 115, 115, 122, 116, 100, 121, 116, 112, 129, 127, 121, 132, 120, 118, 125, 116, 105, 129, 128, 101, 114, 116, 107, 118, 111, 115, 103, 113, 112, 120, 139, 101, 128, 123, 112, 109, 91, 109, 113, 114, 99, 123, 109, 118, 91, 118, 91, 101, 111, 118, 99, 115, 113, 116, 120, 127, 120, 119, 131, 109, 127, 111, 96, 115, 120, 140, 115, 122, 121, 100, 115, 115, 122, 107, 105, 110, 121, 118, 121, 112, 107, 125, 95, 129, 127, 129, 129, 134, 121, 121, 103, 115, 113, 125, 129, 116, 110, 140, 115, 116, 113, 110, 113, 115, 120, 110, 114, 137, 110, 123, 110, 112, 122, 108, 101, 105, 112, 114, 115, 111, 117, 118, 121, 112, 112, 115, 117, 126, 110, 94, 112, 120, 108, 110, 107, 117, 93, 117, 125, 125, 131, 116, 110, 126, 112, 110, 139, 122, 109, 108, 107, 120, 124, 124, 99, 124, 113, 124, 128, 100, 124, 133, 109, 123, 109, 110, 101, 121, 109, 111, 118, 93, 113, 118, 110, 89, 104, 123, 114, 122, 116, 125, 112, 108, 135, 113, 107, 98, 106, 107, 117, 116, 106, 111, 126, 95, 118, 125, 113, 107, 107, 111, 113, 121, 110, 134, 104, 106, 134, 116, 116, 117, 132, 107, 128, 112, 119, 117, 120, 122, 111, 110, 124, 111, 122, 124, 106, 115, 114, 111, 131, 114, 125, 116, 101, 128, 126, 109, 117, 108, 122, 123, 102, 118, 121, 121, 146, 118, 110, 110, 108, 93, 111, 113, 95, 98, 128, 126, 151, 107, 107, 106, 106, 124, 102, 123, 109, 103, 103, 105, 117, 104, 130, 108, 124, 100, 97, 105, 105, 106, 107, 119, 99, 129, 119, 136, 115, 117, 104, 109, 97, 102, 105, 121, 114, 117, 121, 110, 107, 103, 125, 124, 108, 107, 118, 132, 117, 108, 142, 115, 118, 124, 115, 111, 114, 116, 123, 109, 111, 116, 121, 122, 118, 122, 138, 135, 116, 128, 108, 116, 116, 112, 99, 114, 118, 113, 145, 110, 110, 126, 125, 105, 97, 109, 100, 127, 114, 123, 98, 101, 104, 108, 129, 110, 121, 124, 121, 131, 115, 102, 111, 99, 116, 90, 106, 105, 112, 105, 107, 129, 121, 102, 120, 117, 120, 128, 119, 99, 119, 102, 99, 120, 118, 136, 105, 87, 116, 121, 145, 105, 147, 105, 111, 129, 114, 95, 120, 121, 109, 90, 143, 130, 101, 103, 110, 119, 118, 98, 112, 114, 104, 118, 113, 103, 103, 128, 107, 106, 135, 114, 113, 110, 109, 121, 127, 123, 103, 137, 142, 96, 141, 119, 115, 110, 115, 114, 143, 109, 122, 94, 104, 123, 113, 132, 116, 142, 115, 124, 116, 104, 107, 112, 125, 127, 114, 96, 93, 126, 109, 102, 102, 106, 118, 110, 125, 131, 106, 119, 118, 115, 119, 114, 124, 123, 122, 111, 125, 117, 108, 116, 112, 127, 90, 98, 115, 105, 108, 135, 111, 118, 100, 114, 109, 114, 125, 125, 127, 129, 97, 103, 104, 106, 99, 113, 118, 110, 132, 105, 124, 105, 121, 114, 109, 110, 131, 94, 127, 117, 120, 104, 115, 107, 138, 119, 98, 136, 129, 113, 109, 114, 121, 109, 99, 128, 114, 114, 128, 95, 107, 125, 103, 111, 107, 124, 119, 123, 119, 117, 110, 132, 112, 118, 117, 116, 118, 127, 92, 118, 123, 118, 119, 111, 127, 112, 126, 119, 89, 114, 114, 119, 127, 118, 126, 112, 113, 129, 118, 111, 99, 123, 112, 124, 123, 105, 123, 137, 138, 117, 118, 116, 119, 130, 118, 140, 108, 111, 108, 113, 105, 110, 110, 124, 126, 120, 106, 110, 122, 108, 128, 116, 121, 102, 122, 122, 95, 95, 114, 110, 118, 113, 111, 118, 67, 117, 107, 118, 125, 93, 95, 127, 121, 130, 117, 124, 112, 116, 92, 119, 104, 123, 117, 120, 115, 104, 103, 114, 99, 117, 89, 107, 113, 118, 125, 125, 115, 129, 111, 113, 101, 118, 110, 110, 109, 114, 131, 127, 127, 124, 129, 108, 115, 104, 106, 128, 123, 105, 107, 133, 121, 105, 124, 110, 114, 136, 120, 126, 130, 120, 127, 111, 105, 104, 107, 124, 117, 100, 99, 122, 132, 111, 108, 105, 134, 119, 104, 121, 110, 105, 130, 113, 103, 126, 115, 104, 119, 116, 88, 115, 131, 116, 114, 102, 130, 110, 138, 123, 108, 139, 114, 117, 108, 113, 113, 127, 116, 115, 119, 121, 114, 120, 128, 123, 119, 104, 116, 106, 108, 128, 117, 137, 109, 121, 139, 108, 108, 134, 118, 111, 119, 106, 125, 108, 121, 105, 107, 127, 119, 128, 106, 119, 108, 133, 103, 108, 100, 111, 109, 142, 150, 123, 119, 105, 125, 120, 110, 103, 108, 133, 100, 113, 101, 121, 122, 118, 117, 114, 110, 139, 129, 110, 130, 106, 103, 149, 113, 103, 112, 107, 129, 101, 113, 146, 111, 118, 139, 108, 124, 114, 117, 120, 107, 111, 127, 100, 110, 101, 116, 122, 85, 112, 120, 132, 120, 91, 134, 114, 97, 119, 119, 117, 103, 114, 123, 116, 110, 106, 110, 114, 107, 113, 120, 119, 117, 125, 121, 111, 105, 123, 124, 114, 119, 89, 127, 112, 114, 106, 130, 121, 118, 113, 114, 114, 154, 122, 122, 125, 126, 120, 110, 131, 119, 105, 141, 114, 108, 115, 106, 127, 124, 122, 120, 120, 120, 124, 113, 109, 122, 124, 117, 121, 106, 115, 106, 100, 118, 116, 106, 119, 113, 110, 112, 105, 111, 115, 105, 111, 124, 121, 117, 120, 86, 120, 120, 118, 114, 120, 104, 131, 120, 122, 107, 113, 118, 115, 124, 124, 110, 128, 108, 97, 113, 112, 113, 109, 125, 118, 120, 106, 125, 139, 116, 143, 128, 112, 109, 130, 113, 118, 109, 132, 110, 111, 113, 113, 130, 120, 115, 112, 104, 103, 128, 113, 127, 124, 113, 97, 123, 78, 113, 100, 108, 137, 124, 111, 114, 118, 115, 120, 109, 116, 98, 128, 127, 121, 107, 107, 124, 105, 114, 118, 119, 104, 30, 109, 123, 136, 117, 112, 155, 104, 116, 109, 116, 111, 123, 116, 116, 117, 110, 125, 113, 138, 113, 101, 119, 106, 118, 122, 126, 95, 112, 110, 115, 110, 98, 130, 98, 129, 111, 107, 119, 96, 121, 106, 118, 115, 116, 126, 104, 124, 115, 121, 118, 123, 127, 103, 138, 159, 110, 120, 125, 119, 119, 123, 117, 116, 106, 127, 112, 113, 106, 104, 106, 111, 120, 135, 116, 107, 134, 122, 126, 119, 127, 104, 117, 106, 107, 110, 126, 124, 107, 117, 128, 100, 115, 126, 118, 113, 124, 115, 137, 99, 116, 117, 118, 118, 112, 122, 146, 113, 126, 131, 122, 117, 111, 145, 115, 110, 108, 112, 131, 111, 115, 114, 131, 108, 119, 115, 115, 98, 114, 119, 119, 106, 115, 112, 131, 118, 91, 122, 107, 128, 112, 135, 110, 109, 117, 118, 104, 114, 121, 144, 117, 113, 109, 130, 117, 108, 99, 109, 114, 114, 117, 123, 120, 111, 123, 111, 113, 109, 124, 118, 118, 107, 106, 117, 115, 108, 100, 108, 115, 119, 136, 105, 105, 109, 107, 111, 110, 121, 99, 103, 120, 123, 101, 120, 108, 106, 112, 108, 122, 92, 113, 127, 129, 125, 117, 116, 117, 112, 163, 116, 122, 115, 131, 120, 113, 121, 120, 138, 121, 106, 127, 108, 118, 117, 104, 220, 118, 117, 137, 105, 120, 108, 119, 116, 126, 103, 114, 103, 118, 120, 125, 110, 124, 115, 122, 91, 116, 90, 113, 113, 117, 211, 122, 111, 113, 112, 121, 120, 108, 116, 109, 111, 134, 128, 110, 115, 124, 112, 111, 115, 118, 105, 116, 107, 128, 113, 109, 128, 130, 133, 122, 123, 113, 155, 116, 120, 108, 108, 118, 124, 113, 115, 92, 127, 112, 120, 107, 110, 101, 114, 129, 104, 107, 112, 119, 138, 137, 115, 108, 102, 115, 121, 105, 118, 115, 114, 108, 128, 116, 114, 111, 142, 113, 108, 112, 110, 130, 112, 109, 107, 114, 99, 126, 108, 119, 119, 109, 118, 115, 117, 107, 122, 106, 103, 113, 142, 131, 131, 115, 116, 119, 124, 120, 118, 70, 107, 119, 120, 100, 115, 109, 122, 103, 118, 115, 120, 132, 112, 113, 93, 122, 110, 122, 115, 105, 118, 119, 108, 106, 114, 129, 114, 126, 114, 110, 115, 119, 123, 119, 119, 119, 121, 113, 128, 114, 115, 107, 115, 111, 76, 120, 118, 115, 125, 112, 114, 115, 120, 114, 118, 121, 122, 122, 111, 122, 111, 119, 120, 111, 114, 125, 133, 115, 118, 125, 121, 120, 111, 116, 118, 114, 134, 103, 154, 119, 118, 110, 112, 125, 116, 111, 113, 93, 114, 110, 119, 113, 115, 112, 123, 97, 120, 108, 112, 113, 121, 115, 115, 111, 113, 116, 118, 131, 120, 116, 126, 116, 131, 117, 104, 116, 121, 125, 114, 110, 123, 87, 135, 121, 113, 108, 86, 117, 116, 115, 125, 111, 121, 106, 122, 117, 114, 119, 114, 117, 115, 113, 122, 125, 105, 113, 118, 110, 122, 122, 122, 111, 120, 111, 120, 126, 117, 105, 113, 116, 121, 117, 101, 107, 102, 117, 121, 115, 98, 128, 108, 120, 115, 116, 124, 110, 114, 110, 124, 115, 114, 106, 116, 114, 125, 118, 109, 121, 115, 117, 107, 119, 116, 117, 117, 114, 114, 129, 107, 116, 111, 121, 113, 107, 119, 137, 114, 121, 57, 118, 108, 112, 112, 114, 109, 123, 109, 109, 122, 132, 115, 120, 82, 105, 115, 112, 109, 117, 116, 130, 119, 101, 120, 114, 115, 114, 114, 119, 119, 124, 114, 118, 125, 120, 116, 116, 101, 123, 124, 115, 110, 141, 105, 106, 107, 117, 116, 118, 106, 105, 123, 121, 111, 108, 132, 120, 115, 114, 112, 117, 108, 117, 93, 120, 109, 111, 96, 104, 104, 121, 117, 116, 86, 126, 115, 115, 113, 115, 122, 121, 114, 120, 120, 121, 130, 112, 117, 120, 122, 111, 118, 114, 108, 111, 116, 124, 134, 113, 116, 112, 116, 114, 121, 94, 122, 130, 120, 118, 135, 111, 118, 108, 125, 125, 119, 118, 110, 113, 114, 112, 119, 114, 118, 119, 122, 113, 115, 116, 114, 117, 108, 117, 105, 116, 120, 115, 140, 117, 102, 116, 117, 108, 110, 116, 120, 96, 125, 125, 113, 123, 121, 116, 118, 111, 115, 134, 111, 122, 110, 129, 115, 132, 115, 98, 115, 123, 119, 115, 121, 128, 124, 107, 107, 106, 116, 110, 117, 126, 125, 103, 113, 115, 126, 104, 118, 119, 73, 110, 115, 120, 124, 119, 117, 84, 111, 115, 122, 105, 132, 120, 120, 126, 116, 116, 114, 121, 106, 112, 123, 107, 98, 123, 146, 110, 115, 115, 115, 119, 122, 111, 114, 115, 111, 111, 101, 119, 105, 122, 116, 111, 111, 104, 121, 116, 133, 140, 133, 124, 110, 111, 125, 100, 112, 119, 106, 112, 114, 112, 113, 118, 116, 110, 120, 127, 119, 129, 119, 114, 137, 120, 112, 129, 114, 108, 108, 108, 122, 112, 109, 121, 118, 114, 122, 107, 110, 113, 96, 122, 123, 111, 123, 117, 108, 110, 118, 121, 125, 109, 115, 122, 133, 120, 109, 119, 113, 120, 115, 116, 122, 110, 106, 111, 112, 126, 114, 115, 123, 116, 112, 112, 122, 110, 137, 118, 110, 124, 124, 123, 100, 120, 119, 111, 95, 108, 118, 114, 106, 107, 113, 150, 128, 107, 114, 130, 117, 134, 120, 113, 123, 106, 110, 119, 108, 113, 120, 112, 112, 109, 103, 118, 108, 123, 119, 121, 104, 103, 119, 113, 119, 108, 147, 127, 115, 118, 118, 112, 115, 108, 115, 102, 116, 118, 108, 123, 111, 115, 116, 113, 107, 122, 111, 112, 129, 112, 116, 122, 121, 113, 107, 118, 110, 119, 136, 124, 124, 106, 115, 118, 110, 119, 111, 118, 125, 109, 111, 118, 122, 123, 107, 117, 118, 115, 114, 108, 118, 114, 117, 117, 104, 117, 101, 125, 122, 125, 113, 100, 114, 113, 110, 127, 129, 113, 101, 120, 96, 114, 112, 115, 118, 106, 115, 117, 106, 116, 123, 121, 115, 108, 135, 129, 111, 118, 116, 117, 114, 126, 124, 117, 117, 108, 116, 127, 108, 112, 116, 116, 113, 111, 115, 123, 127, 109, 92, 108, 121, 100, 118, 127, 121, 123, 118, 110, 120, 126, 118, 121, 138, 113, 114, 108, 120, 109, 116, 115, 112, 115, 110, 137, 122, 123, 106, 117, 131, 115, 111, 111, 127, 115, 119, 163, 115, 104, 119, 133, 121, 122, 123, 118, 116, 104, 124, 119, 77, 108, 108, 114, 114, 112, 124, 112, 136, 110, 129, 101, 113, 118, 123, 122, 117, 133, 111, 106, 111, 104, 114, 108, 109, 112, 108, 134, 111, 114, 120, 108, 123, 132, 125, 107, 115, 133, 110, 123, 110, 113, 120, 126, 117, 124, 121, 118, 149, 108, 133, 126, 117, 113, 132, 117, 112, 108, 115, 117, 130, 110, 115, 120, 104, 108, 112, 119, 120, 112, 104, 116, 101, 122, 107, 115, 95, 117, 111, 114, 114, 118, 122, 119, 111, 107, 123, 111, 116, 108, 114, 110, 114, 121, 117, 120, 110, 119, 109, 110, 109, 103, 110, 119, 112, 117, 115, 111, 104, 117, 115, 111, 116, 119, 116, 117, 114, 148, 107, 104, 118, 109, 117, 116, 113, 109, 112, 114, 79, 116, 126, 113, 108, 110, 119, 107, 121, 109, 133, 120, 117, 111, 114, 109, 116, 117, 115, 129, 120, 112, 114, 111, 122, 118, 116, 127, 101, 112, 120, 125, 119, 114, 110, 112, 120, 120, 118, 124, 112, 126, 112, 110, 122, 99, 125, 112, 122, 123, 110, 82, 110, 113, 117, 110, 159, 113, 122, 116, 113, 120, 120, 117, 106, 113, 125, 128, 122, 109, 121, 109, 115, 113, 111, 113, 121, 127, 104, 116, 111, 127, 112, 113, 122, 119, 123, 122, 112, 125, 125, 95, 106, 117, 118, 123, 119, 114, 109, 109, 110, 119, 134, 111, 119, 111, 120, 110, 109, 110, 115, 125, 123, 114, 118, 106, 119, 116, 115, 140, 110, 122, 115, 120, 117, 112, 98, 127, 113, 118, 122, 117, 129, 118, 119, 113, 118, 123, 118, 112, 127, 119, 151, 110, 115, 118, 114, 111, 113, 110, 124, 122, 121, 126, 124, 121, 114, 106, 142, 126, 103, 121, 108, 121, 118, 117, 112, 114, 110, 106, 127, 94, 117, 106, 117, 122, 116, 111, 121, 119, 109, 121, 119, 126, 109, 113, 120, 118, 122, 120, 125, 124, 114, 102, 118, 115, 108, 127, 110, 119, 110, 116, 122, 133, 109, 107, 117, 119, 117, 133, 110, 117, 112, 120, 123, 114, 94, 103, 112, 109, 119, 101, 113, 118, 112, 117, 109, 115, 119, 100, 109, 116, 132, 111, 99, 117, 119, 117, 114, 130, 109, 116, 119, 105, 106, 124, 116, 107, 106, 107, 118, 119, 104, 124, 146, 109, 123, 112, 119, 121, 128, 116, 104, 112, 113, 121, 100, 114, 123, 125, 125, 125, 92, 109, 120, 109, 110, 109, 98, 120, 115, 114, 113, 99, 119, 116, 112, 111, 123, 106, 121, 110, 106, 125, 108, 112, 103, 130, 116, 118, 113, 109, 115, 124, 96, 121, 125, 129, 111, 115, 137, 123, 104, 105, 128, 123, 117, 110, 121, 118, 113, 109, 121, 104, 119, 113, 119, 132, 121, 106, 113, 124, 115, 102, 107, 115, 111, 118, 104, 115, 99, 114, 111, 98, 119, 116, 111, 122, 110, 114, 122, 114, 115, 111, 106, 107, 111, 123, 125, 116, 125, 122, 114, 129, 106, 110, 113, 123, 121, 125, 142, 141, 121, 116, 119, 113, 124, 127, 129, 116, 118, 106, 113, 116, 118, 109, 121, 120, 115, 119, 103, 100, 136, 93, 128, 110, 113, 112, 104, 124, 113, 110, 127, 116, 119, 119, 113, 104, 112, 106, 110, 130, 115, 111, 117, 114, 120, 130, 118, 115, 108, 121, 116, 109, 127, 122, 123, 125, 105, 120, 114, 114, 89, 106, 104, 132, 141, 119, 120, 125, 108, 114, 119, 103, 94, 118, 114, 111, 120, 109, 108, 110, 114, 115, 122, 117, 117, 119, 109, 109, 123, 124, 111, 125, 119, 120, 122, 130, 113, 137, 107, 107, 109, 87, 112, 110, 130, 116, 129, 126, 114, 127, 113, 113, 125, 118, 103, 123, 108, 115, 102, 110, 105, 107, 111, 121, 115, 109, 112, 109, 130, 112, 125, 112, 117, 119, 121, 109, 118, 118, 123, 114, 116, 118, 121, 105, 109, 120, 113, 121, 125, 111, 116, 125, 118, 117, 96, 112, 122, 107, 112, 114, 117, 116, 119, 108, 113, 126, 123, 117, 106, 103, 108, 116, 105, 116, 115, 116, 114, 111, 120, 129, 121, 108, 79, 102, 107, 117, 123, 115, 115, 113, 134, 115, 99, 109, 120, 117, 111, 110, 113, 123, 110, 109, 120, 114, 116, 129, 108, 122, 121, 137, 114, 129, 115, 109, 120, 130, 110, 120, 117, 109, 108, 125, 110, 124, 123, 119, 126, 126, 118, 112, 112, 104, 104, 121, 111, 142, 119, 117, 108, 124, 115, 101, 123, 115, 117, 113, 133, 117, 109, 112, 116, 127, 124, 116, 125, 105, 118, 130, 102, 129, 106, 119, 120, 132, 125, 101, 114, 107, 107, 116, 122, 112, 110, 122, 102, 112, 112, 98, 116, 112, 108, 110, 103, 108, 105, 114, 115, 117, 112, 123, 128, 106, 117, 107, 121, 122, 116, 110, 104, 116, 99, 148, 110, 111, 112, 119, 111, 115, 117, 99, 116, 117, 114, 115, 114, 117, 130, 100, 115, 118, 134, 102, 127, 106, 118, 113, 111, 116, 104, 128, 113, 112, 116, 121, 120, 117, 119, 124, 92, 131, 118, 127, 125, 107, 106, 112, 127, 114, 117, 140, 116, 113, 121, 106, 118, 151, 109, 123, 110, 111, 117, 111, 126, 125, 117, 107, 102, 100, 104, 119, 118, 109, 119, 109, 91, 105, 106, 91, 104, 132, 126, 123, 106, 131, 93, 132, 110, 111, 114, 119, 87, 112, 119, 95, 129, 115, 123, 139, 104, 113, 105, 101, 115, 114, 109, 121, 102, 119, 120, 116, 123, 116, 113, 106, 127, 117, 110, 115, 104, 109, 116, 122, 124, 134, 99, 114, 118, 115, 117, 126, 118, 106, 95, 110, 108, 111, 123, 122, 103, 108, 98, 114, 116, 107, 117, 110, 107, 107, 99, 118, 112, 133, 109, 133, 125, 120, 115, 114, 92, 111, 116, 123, 112, 113, 114, 104, 131, 113, 112, 122, 118, 120, 107, 118, 92, 99, 116, 116, 114, 119, 107, 102, 115, 105, 114, 108, 127, 126, 133, 103, 104, 119, 104, 111, 117, 127, 119, 122, 121, 114, 107, 126, 98, 108, 100, 113, 112, 119, 120, 114, 110, 121, 111, 110, 125, 103, 109, 93, 110, 109, 126, 112, 115, 121, 138, 110, 117, 122, 119, 112, 113, 107, 106, 121, 118, 128, 114, 116, 108, 115, 92, 115, 101, 114, 121, 123, 118, 115, 120, 118, 114, 115, 116, 103, 105, 119, 119, 129, 123, 122, 119, 110, 106, 103, 117, 109, 112, 119, 116, 111, 126, 103, 121, 95, 119, 139, 123, 115, 127, 114, 122, 108, 117, 124, 119, 96, 113, 116, 133, 104, 128, 110, 122, 118, 135, 136, 124, 98, 116, 112, 146, 121, 121, 143, 104, 116, 111, 117, 102, 127, 107, 119, 108, 96, 117, 110, 111, 113, 122, 117, 104, 103, 126, 123, 107, 113, 108, 122, 94, 113, 130, 122, 105, 138, 116, 115, 120, 90, 103, 114, 112, 116, 117, 105, 111, 124, 114, 118, 112, 116, 119, 123, 106, 108, 99, 103, 109, 114, 109, 116, 116, 102, 130, 115, 123, 130, 114, 112, 121, 114, 116, 105, 125, 113, 105, 110, 127, 116, 121, 110, 114, 109, 109, 104, 126, 114, 119, 99, 132, 115, 112, 143, 112, 112, 107, 123, 116, 121, 102, 111, 110, 131, 105, 121, 103, 152, 125, 116, 103, 140, 102, 122, 115, 115, 118, 107, 109, 125, 118, 118, 125, 101, 118, 96, 108, 118, 107, 125, 108, 117, 119, 108, 114, 109, 109, 104, 115, 114, 125, 151, 117, 94, 108, 116, 121, 132, 119, 104, 112, 109, 128, 116, 117, 99, 114, 102, 120, 119, 120, 109, 107, 106, 115, 110, 116, 123, 121, 115, 127, 121, 122, 120, 114, 114, 116, 124, 110, 102, 132, 109, 119, 102, 118, 112, 132, 114, 107, 118, 124, 111, 126, 104, 112, 110, 123, 127, 110, 111, 124, 116, 111, 122, 104, 105, 123, 110, 125, 121, 122, 112, 139, 104, 112, 108, 109, 97, 115, 113, 125, 125, 104, 108, 108, 117, 122, 121, 121, 108, 117, 108, 96, 109, 117, 110, 105, 114, 123, 115, 128, 116, 124, 117, 116, 126, 116, 138, 106, 121, 121, 116, 112, 120, 118, 130, 112, 112, 119, 118, 115, 104, 91, 102, 115, 121, 117, 123, 116, 116, 121, 115, 114, 118, 109, 123, 102, 119, 120, 124, 127, 121, 114, 116, 94, 111, 115, 114, 116, 111, 121, 105, 107, 103, 112, 99, 132, 120, 112, 95, 131, 105, 121, 123, 111, 117, 109, 103, 113, 118, 107, 121, 108, 110, 127, 122, 120, 105, 122, 128, 112, 108, 115, 123, 125, 114, 120, 116, 139, 112, 130, 129, 117, 112, 127, 116, 116, 117, 104, 112, 115, 123, 113, 108, 92, 103, 107, 121, 111, 108, 104, 129, 116, 110, 117, 126, 111, 119, 113, 137, 109, 130, 110, 116, 113, 102, 119, 109, 116, 109, 120, 103, 123, 116, 102, 117, 121, 124, 108, 110, 122, 119, 140, 116, 121, 126, 103, 111, 103, 124, 100, 130, 112, 119, 121, 112, 132, 111, 119, 123, 107, 105, 110, 118, 107, 115, 111, 116, 125, 127, 108, 105, 115, 117, 131, 112, 120, 107, 112, 114, 123, 107, 118, 118, 117, 120, 115, 108, 111, 111, 105, 114, 115, 106, 120, 115, 115, 126, 117, 119, 104, 94, 135, 121, 112, 108, 111, 117, 126, 116, 119, 111, 113, 121, 111, 125, 131, 125, 116, 116, 119, 117, 110, 114, 121, 114, 108, 122, 107, 126, 110, 110, 104, 108, 131, 113, 117, 119, 115, 108, 117, 118, 114, 119, 110, 117, 113, 122, 128, 108, 111, 107, 112, 119, 132, 110, 101, 114, 122, 127, 106, 117, 116, 117, 118, 130, 121, 109, 126, 120, 116, 129, 123, 116, 112, 102, 117, 110, 121, 107, 111, 103, 114, 106, 121, 114, 116, 126, 110, 116, 112, 112, 122, 122, 118, 111, 120, 120, 123, 121, 120, 106, 109, 110, 112, 106, 118, 113, 115, 117, 129, 113, 118, 122, 117, 123, 107, 123, 118, 123, 112, 127, 130, 119, 122, 107, 120, 123, 121, 122, 114, 129, 130, 123, 111, 113, 109, 102, 126, 114, 122, 126, 125, 118, 114, 111, 124, 119, 123, 120, 111, 105, 114, 117, 103, 115, 103, 113, 113, 120, 119, 101, 116, 120, 114, 120, 115, 122, 112, 118, 134, 101, 122, 118, 87, 111, 115, 122, 117, 111, 122, 123, 118, 118, 124, 117, 115, 111, 119, 124, 123, 118, 110, 143, 136, 116, 117, 132, 119, 128, 124, 109, 116, 110, 130, 107, 136, 111, 117, 122, 107, 116, 126, 117, 115, 117, 117, 129, 125, 109, 110, 113, 116, 123, 122, 130, 117, 134, 112, 109, 119, 114, 111, 111, 115, 123, 116, 113, 117, 113, 122, 114, 114, 115, 107, 126, 122, 121, 121, 120, 117, 110, 110, 113, 117, 111, 124, 119, 99, 108, 114, 119, 109, 109, 110, 115, 109, 114, 128, 121, 110, 111, 136, 129, 116, 114, 116, 108, 152, 121, 88, 109, 119, 119, 109, 123, 114, 115, 146, 109, 108, 107, 127, 127, 126, 117, 143, 128, 110, 112, 118, 106, 110, 123, 115, 131, 104, 124, 118, 117, 129, 117, 122, 113, 119, 109, 117, 91, 101, 103, 103, 119, 118, 108, 120, 116, 109, 112, 119, 118, 119, 113, 112, 118, 113, 109, 109, 110, 117, 115, 137, 101, 113, 115, 116, 116, 112, 122, 111, 115, 123, 115, 127, 129, 125, 117, 107, 116, 124, 102, 124, 109, 118, 130, 119, 106, 109, 121, 123, 100, 122, 116, 104, 127, 117, 128, 123, 123, 113, 119, 110, 125, 113, 124, 113, 107, 103, 116, 125, 118, 115, 118, 116, 108, 113, 113, 133, 110, 118, 106, 105, 105, 106, 122, 109, 113, 111, 116, 129, 116, 131, 122, 136, 114, 109, 119, 112, 124, 118, 108, 125, 122, 107, 134, 120, 105, 119, 109, 114, 125, 111, 120, 132, 112, 121, 112, 101, 107, 115, 104, 114, 117, 122, 113, 115, 117, 110, 118, 117, 117, 116, 112, 116, 111, 118, 118, 100, 116, 97, 101, 111, 96, 109, 108, 116, 124, 134, 111, 105, 126, 124, 109, 110, 114, 109, 115, 120, 112, 120, 120, 111, 113, 105, 112, 100, 123, 123, 110, 116, 112, 110, 110, 122, 110, 127, 118, 112, 108, 123, 115, 119, 116, 124, 122, 116, 124, 117, 110, 106, 114, 117, 114, 133, 115, 111, 127, 111, 120, 103, 104, 130, 108, 103, 113, 128, 112, 111, 111, 123, 106, 120, 116, 114, 115, 115, 108, 102, 115, 114, 115, 123, 118, 128, 112, 108, 121, 128, 110, 127, 119, 104, 113, 107, 125, 97, 107, 94, 103, 110, 110, 107, 108, 113, 124, 102, 117, 131, 137, 110, 111, 116, 117, 116, 118, 107, 112, 114, 100, 120, 96, 115, 123, 122, 117, 101, 118, 105, 129, 101, 116, 113, 124, 127, 105, 116, 114, 125, 126, 108, 113, 118, 125, 135, 97, 111, 108, 125, 113, 117, 115, 110, 126, 120, 127, 122, 121, 107, 113, 121, 114, 119, 121, 112, 113, 128, 112, 119, 112, 124, 117, 125, 138, 104, 120, 106, 106, 115, 111, 111, 112, 116, 116, 121, 101, 108, 127, 114, 118, 120, 98, 110, 132, 120, 112, 117, 121, 107, 104, 115, 102, 114, 109, 109, 123, 126, 111, 111, 108, 102, 122, 117, 112, 117, 121, 109, 120, 123, 108, 115, 111, 119, 120, 125, 127, 114, 117, 117, 127, 118, 118, 113, 119, 121, 113, 95, 104, 113, 108, 109, 111, 110, 103, 134, 139, 97, 111, 123, 120, 109, 125, 120, 124, 121, 115, 131, 113, 119, 131, 104, 115, 119, 110, 114, 118, 111, 105, 129, 114, 114, 112, 127, 113, 101, 111, 128, 113, 104, 112, 101, 118, 119, 111, 112, 109, 118, 135, 123, 112, 124, 123, 129, 103, 113, 129, 135, 124, 110, 111, 119, 115, 111, 119, 114, 130, 110, 108, 112, 127, 133, 112, 116, 115, 116, 123, 116, 119, 97, 115, 118, 110, 115, 100, 107, 126, 108, 127, 124, 117, 95, 117, 102, 123, 107, 127, 113, 112, 119, 113, 118, 113, 101, 114, 110, 100, 116, 117, 109, 113, 132, 115, 122, 114, 124, 122, 100, 116, 117, 111, 80, 127, 132, 111, 109, 103, 106, 136, 108, 104, 121, 142, 123, 127, 104, 112, 114, 157, 102, 89, 142, 88, 118, 130, 115, 121, 112, 123, 111, 128, 111, 119, 120, 102, 112, 121, 95, 106, 116, 98, 104, 115, 108, 110, 113, 108, 102, 128, 108, 115, 122, 106, 137, 119, 108, 110, 95, 113, 129, 111, 103, 108, 123, 115, 115, 111, 111, 100, 95, 114, 95, 118, 111, 113, 133, 112, 126, 104, 112, 123, 100, 103, 122, 110, 105, 102, 121, 131, 130, 116, 124, 122, 116, 120, 108, 102, 105, 115, 89, 122, 105, 127, 100, 105, 123, 112, 117, 110, 121, 102, 110, 116, 107, 102, 96, 107, 117, 109, 120, 125, 115, 117, 126, 114, 124, 118, 118, 126, 123, 132, 106, 115, 117, 106, 125, 114, 107, 127, 104, 122, 116, 118, 120, 112, 102, 124, 118, 133, 112, 110, 104, 122, 121, 106, 98, 110, 116, 103, 109, 117, 109, 109, 117, 123, 116, 121, 108, 88, 122, 116, 109, 117, 111, 103, 116, 96, 109, 120, 112, 112, 120, 119, 113, 108, 127, 103, 127, 116, 116, 118, 113, 83, 112, 111, 115, 126, 107, 115, 119, 116, 118, 111, 112, 100, 80, 112, 124, 117, 111, 112, 119, 108, 138, 95, 135, 124, 109, 117, 113, 134, 102, 102, 101, 118, 110, 125, 118, 102, 132, 131, 111, 117, 123, 116, 122, 111, 110, 129, 114, 113, 105, 112, 99, 114, 116, 113, 126, 95, 111, 104, 105, 121, 166, 93, 113, 137, 108, 114, 146, 126, 121, 114, 106, 113, 109, 106, 118, 118, 113, 123, 118, 117, 114, 110, 92, 109, 110, 125, 123, 100, 116, 123, 133, 117, 115, 124, 114, 112, 127, 136, 115, 113, 114, 97, 122, 117, 128, 118, 102, 131, 111, 119, 123, 120, 108, 97, 86, 119, 113, 120, 121, 125, 107, 114, 124, 106, 112, 98, 130, 123, 123, 115, 116, 130, 121, 109, 125, 88, 111, 125, 121, 109, 87, 113, 114, 97, 104, 120, 112, 120, 110, 110, 113, 122, 121, 116, 110, 124, 118, 108, 111, 126, 107, 110, 105, 119, 116, 116, 114, 109, 126, 110, 108, 111, 97, 120, 122, 109, 118, 127, 119, 124, 124, 96, 129, 120, 111, 113, 123, 125, 108, 119, 108, 152, 117, 97, 118, 115, 84, 115, 106, 117, 125, 120, 119, 109, 113, 108, 121, 118, 117, 97, 104, 123, 128, 118, 113, 98, 127, 109, 119, 118, 115, 124, 125, 111, 121, 125, 125, 176, 108, 117, 116, 108, 116, 143, 114, 115, 110, 102, 129, 105, 130, 110, 126, 99, 114, 112, 143, 102, 122, 122, 106, 108, 103, 112, 134, 119, 120, 102, 121, 131, 114, 99, 104, 113, 109, 115, 113, 114, 105, 115, 114, 132, 115, 120, 116, 122, 110, 101, 126, 116, 105, 104, 124, 134, 94, 110, 119, 116, 103, 120, 141, 117, 119, 115, 111, 130, 105, 129, 106, 102, 117, 115, 125, 118, 112, 115, 119, 117, 109, 113, 120, 110, 113, 118, 125, 123, 111, 120, 119, 123, 114, 116, 122, 107, 108, 129, 110, 121, 122, 110, 123, 121, 129, 118, 122, 114, 125, 115, 115, 102, 118, 118, 114, 115, 122, 118, 113, 101, 115, 112, 122, 109, 112, 120, 126, 106, 113, 103, 123, 121, 110, 123, 106, 115, 116, 122, 106, 118, 104, 109, 121, 111, 113, 115, 108, 107, 112, 115, 123, 119, 119, 115, 119, 114, 116, 121, 124, 112, 118, 118, 132, 115, 160, 88, 102, 92, 132, 117, 118, 106, 108, 110, 114, 104, 107, 103, 115, 114, 118, 121, 110, 114, 117, 112, 91, 114, 114, 118, 110, 124, 123, 132, 139, 121, 112, 107, 117, 103, 111, 113, 118, 112, 119, 124, 115, 121, 109, 108, 108, 126, 115, 118, 121, 120, 110, 119, 112, 118, 106, 127, 126, 112, 114, 119, 128, 123, 116, 114, 105, 117, 126, 117, 103, 165, 116, 132, 122, 127, 123, 115, 113, 114, 111, 126, 115, 113, 119, 116, 117, 115, 118, 101, 110, 115, 109, 106, 89, 115, 117, 120, 112, 116, 115, 118, 111, 116, 119, 120, 109, 115, 119, 121, 125, 119, 110, 118, 95, 118, 109, 108, 115, 116, 117, 111, 115, 122, 109, 114, 122, 120, 112, 119, 119, 114, 120, 112, 119, 113, 115, 123, 104, 119, 115, 111, 116, 111, 113, 106, 114, 117, 125, 114, 120, 117, 109, 101, 119, 105, 159, 113, 110, 111, 135, 110, 118, 115, 106, 111, 122, 97, 112, 128, 125, 115, 111, 120, 109, 124, 98, 115, 122, 108, 113, 113, 115, 117, 124, 132, 115, 149, 135, 118, 117, 120, 120, 114, 112, 123, 117, 118, 127, 120, 124, 115, 106, 130, 119, 107, 108, 121, 119, 116, 113, 109, 104, 114, 114, 112, 106, 121, 103, 118, 116, 101, 103, 116, 115, 120, 117, 119, 114, 115, 115, 116, 98, 111, 132, 122, 121, 111, 120, 103, 112, 102, 147, 110, 118, 125, 115, 111, 114, 118, 119, 134, 123, 115, 120, 114, 112, 120, 114, 128, 111, 123, 110, 109, 117, 122, 119, 119, 119, 117, 117, 115, 116, 116, 115, 123, 131, 119, 110, 120, 114, 116, 110, 116, 111, 119, 115, 110, 121, 117, 111, 123, 119, 117, 121, 110, 109, 100, 119, 124, 118, 116, 122, 132, 113, 112, 112, 119, 117, 105, 110, 115, 129, 118, 119, 116, 118, 115, 125, 116, 108, 110, 127, 129, 117, 118, 138, 115, 119, 118, 114, 111, 110, 108, 114, 104, 119, 117, 113, 117, 116, 71, 108, 111, 126, 124, 121, 111, 114, 147, 113, 110, 117, 117, 102, 115, 124, 116, 115, 110, 114, 106, 115, 126, 83, 112, 99, 123, 107, 118, 107, 114, 118, 106, 123, 101, 118, 124, 114, 124, 116, 121, 119, 118, 117, 96, 111, 120, 114, 120, 117, 123, 101, 118, 119, 120, 121, 119, 116, 107, 111, 117, 117, 118, 116, 124, 128, 107, 125, 125, 115, 125, 114, 94, 115, 117, 111, 113, 112, 100, 120, 129, 117, 122, 126, 116, 119, 122, 113, 105, 125, 126, 124, 116, 105, 114, 114, 108, 113, 107, 114, 114, 115, 114, 120, 120, 113, 124, 127, 119, 117, 110, 115, 118, 121, 125, 117, 119, 110, 114, 120, 116, 119, 120, 117, 117, 118, 116, 116, 141, 125, 123, 106, 120, 111, 124, 111, 116, 111, 119, 127, 114, 105, 124, 115, 115, 121, 121, 133, 110, 121, 116, 115, 114, 110, 112, 116, 122, 109, 115, 130, 113, 114, 106, 115, 127, 123, 104, 111, 112, 118, 112, 117, 111, 114, 123, 113, 123, 123, 110, 123, 119, 132, 129, 120, 109, 115, 111, 117, 116, 115, 119, 135, 115, 119, 109, 111, 123, 113, 121, 121, 120, 113, 124, 120, 114, 102, 113, 125, 110, 122, 110, 116, 119, 118, 111, 112, 115, 127, 117, 110, 105, 116, 117, 117, 108, 111, 120, 122, 116, 117, 108, 122, 119, 116, 112, 123, 119, 124, 125, 109, 120, 133, 116, 101, 117, 108, 101, 127, 114, 99, 114, 129, 112, 110, 116, 106, 134, 120, 99, 111, 111, 120, 114, 116, 120, 117, 118, 105, 113, 110, 117, 119, 115, 118, 118, 112, 115, 120, 124, 114, 126, 112, 111, 117, 113, 128, 130, 122, 123, 109, 123, 129, 125, 112, 117, 117, 107, 119, 108, 114, 110, 108, 120, 109, 121, 116, 121, 123, 121, 110, 113, 117, 107, 111, 110, 115, 129, 125, 130, 119, 110, 110, 119, 113, 118, 122, 116, 115, 117, 114, 119, 119, 112, 114, 109, 118, 127, 114, 115, 127, 126, 111, 119, 120, 124, 110, 124, 116, 142, 112, 107, 132, 114, 121, 119, 130, 120, 119, 123, 112, 121, 113, 102, 102, 110, 112, 113, 109, 126, 132, 108, 107, 121, 114, 123, 120, 117, 108, 104, 117, 115, 124, 125, 117, 114, 107, 94, 113, 109, 128, 120, 113, 108, 107, 120, 122, 116, 124, 125, 119, 118, 110, 122, 116, 110, 115, 122, 114, 123, 122, 110, 112, 133, 111, 121, 118, 128, 139, 121, 110, 122, 113, 123, 113, 129, 110, 124, 114, 127, 111, 111, 116, 111, 124, 112, 118, 115, 117, 115, 109, 118, 117, 111, 115, 115, 121, 118, 116, 112, 125, 110, 118, 105, 121, 116, 110, 109, 116, 121, 106, 113, 118, 116, 118, 120, 119, 118, 113, 118, 118, 117, 118, 121, 98, 116, 115, 112, 114, 120, 115, 102, 107, 97, 125, 123, 117, 111, 117, 102, 120, 110, 110, 118, 114, 115, 116, 120, 108, 123, 125, 100, 113, 121, 120, 116, 121, 105, 112, 112, 112, 116, 112, 117, 113, 117, 121, 124, 116, 113, 115, 115, 114, 121, 109, 114, 113, 122, 117, 113, 128, 108, 112, 113, 130, 111, 124, 122, 118, 107, 110, 116, 127, 116, 110, 116, 115, 114, 113, 110, 120, 116, 107, 112, 112, 121, 114, 106, 113, 101, 111, 120, 119, 114, 122, 124, 112, 107, 99, 116, 117, 117, 109, 125, 120, 114, 118, 129, 110, 112, 118, 120, 119, 119, 112, 121, 111, 113, 117, 99, 130, 117, 105, 125, 113, 115, 112, 119, 121, 116, 127, 127, 107, 111, 118, 109, 115, 111, 121, 111, 118, 124, 119, 125, 124, 119, 120, 106, 103, 105, 120, 119, 115, 126, 123, 118, 107, 109, 122, 122, 121, 119, 115, 117, 113, 118, 117, 123, 113, 101, 118, 108, 125, 100, 116, 113, 120, 103, 104, 121, 120, 116, 107, 134, 114, 116, 122, 113, 117, 115, 120, 119, 111, 110, 131, 116, 115, 118, 120, 114, 118, 115, 111, 118, 113, 116, 124, 119, 123, 123, 119, 122, 122, 99, 115, 125, 114, 118, 115, 114, 114, 125, 115, 124, 121, 120, 117, 118, 119, 125, 117, 120, 123, 125, 115, 120, 115, 116, 114, 115, 115, 112, 125, 119, 108, 115, 101, 117, 121, 121, 116, 115, 119, 116, 117, 121, 129, 119, 125, 112, 114, 111, 130, 124, 113, 113, 120, 115, 121, 117, 117, 119, 112, 111, 116, 108, 111, 115, 113, 113, 110, 117, 116, 103, 111, 113, 109, 108, 114, 118, 112, 118, 115, 120, 126, 117, 114, 133, 119, 117, 134, 118, 121, 122, 119, 115, 122, 107, 118, 113, 115, 119, 127, 124, 121, 124, 130, 110, 128, 106, 103, 115, 113, 121, 114, 118, 113, 111, 105, 113, 113, 119, 112, 116, 116, 106, 118, 118, 115, 113, 113, 128, 109, 115, 108, 119, 119, 116, 114, 114, 119, 118, 122, 114, 117, 116, 121, 124, 113, 111, 119, 111, 109, 112, 120, 117, 119, 118, 132, 126, 116, 113, 109, 117, 119, 112, 108, 121, 133, 113, 117, 118, 116, 117, 106, 125, 129, 107, 113, 112, 114, 114, 133, 108, 116, 114, 120, 121, 112, 120, 120, 115, 77, 124, 114, 121, 113, 125, 110, 107, 122, 116, 107, 121, 111, 107, 115, 120, 113, 114, 108, 109, 115, 108, 113, 114, 124, 111, 114, 118, 113, 114, 121, 118, 115, 117, 118, 125, 107, 120, 108, 108, 110, 98, 115, 119, 122, 115, 114, 112, 120, 125, 119, 111, 122, 114, 115, 117, 125, 128, 115, 125, 117, 114, 108, 113, 115, 117, 117, 117, 118, 122, 120, 104, 117, 103, 108, 108, 116, 116, 105, 113, 127, 110, 118, 128, 109, 120, 116, 115, 124, 119, 112, 116, 120, 118, 112, 117, 128, 124, 118, 113, 117, 111, 127, 116, 114, 121, 113, 110, 105, 114, 109, 116, 98, 129, 118, 117, 108, 125, 121, 116, 130, 120, 113, 120, 122, 114, 112, 111, 124, 109, 124, 131, 123, 119, 115, 107, 101, 111, 121, 121, 118, 115, 119, 113, 117, 123, 114, 121, 105, 121, 118, 119, 104, 121, 113, 107, 104, 117, 120, 116, 120, 118, 119, 115, 115, 99, 120, 129, 127, 125, 115, 116, 115, 117, 108, 111, 123, 119, 112, 116, 119, 115, 114, 109, 112, 114, 112, 115, 107, 116, 103, 122, 114, 109, 117, 113, 108, 123, 122, 120, 118, 111, 130, 113, 110, 114, 129, 113, 116, 108, 109, 111, 114, 129, 119, 112, 129, 119, 101, 101, 118, 123, 117, 122, 112, 116, 119, 109, 102, 115, 120, 117, 115, 127, 108, 112, 111, 120, 124, 113, 120, 123, 109, 109, 125, 121, 115, 135, 128, 113, 120, 104, 117, 118, 117, 113, 112, 123, 117, 126, 108, 113, 119, 119, 115, 114, 121, 116, 113, 114, 121, 119, 116, 138, 113, 116, 112, 78, 113, 130, 113, 113, 123, 126, 114, 123, 111, 119, 109, 125, 120, 101, 113, 92, 117, 133, 118, 117, 113, 131, 119, 141, 120, 115, 106, 116, 113, 121, 125, 120, 119, 113, 127, 118, 114, 107, 116, 123, 114, 121, 126, 120, 114, 127, 113, 108, 104, 129, 117, 113, 141, 120, 127, 105, 119, 126, 104, 119, 116, 116, 111, 115, 128, 135, 122, 108, 118, 122, 116, 112, 112, 114, 118, 112, 118, 116, 132, 116, 110, 123, 116, 112, 118, 115, 121, 113, 104, 122, 112, 105, 100, 142, 113, 109, 124, 125, 111, 109, 115, 119, 123, 128, 128, 115, 124, 100, 107, 116, 128, 112, 113, 119, 114, 134, 125, 118, 106, 119, 92, 107, 122, 124, 135, 124, 108, 123, 111, 109, 115, 113, 121, 113, 89, 113, 110, 116, 117, 107, 123, 126, 110, 142, 108, 107, 116, 114, 107, 123, 106, 121, 112, 118, 127, 135, 111, 111, 104, 111, 115, 106, 122, 113, 112, 121, 115, 123, 109, 124, 121, 125, 117, 104, 90, 120, 115, 111, 101, 109, 110, 125, 113, 114, 120, 115, 117, 115, 113, 101, 117, 112, 113, 115, 111, 113, 111, 112, 115, 119, 114, 125, 113, 110, 107, 125, 117, 113, 128, 115, 106, 108, 109, 117, 112, 110, 109, 125, 140, 119, 119, 119, 122, 127, 110, 121, 101, 113, 120, 105, 119, 123, 131, 117, 114, 114, 132, 121, 114, 117, 129, 113, 113, 124, 134, 112, 123, 108, 121, 114, 116, 101, 105, 119, 112, 123, 120, 118, 110, 126, 113, 123, 124, 112, 127, 113, 116, 116, 111, 110, 105, 113, 118, 119, 114, 107, 112, 122, 114, 116, 109, 119, 112, 128, 122, 110, 110, 106, 118, 136, 119, 115, 127, 118, 115, 124, 114, 103, 105, 115, 116, 121, 114, 123, 111, 112, 99, 129, 112, 120, 114, 117, 118, 104, 134, 117, 106, 114, 129, 131, 122, 110, 107, 102, 112, 102, 111, 117, 119, 111, 118, 106, 112, 127, 123, 120, 111, 114, 117, 112, 100, 126, 114, 123, 108, 122, 117, 126, 128, 120, 119, 132, 125, 118, 123, 119, 125, 109, 106, 122, 104, 109, 111, 117, 118, 102, 106, 118, 116, 126, 109, 128, 130, 125, 124, 122, 116, 116, 98, 112, 127, 116, 120, 111, 96, 119, 154, 114, 119, 116, 106, 119, 100, 131, 105, 123, 112, 122, 138, 130, 124, 121, 109, 110, 111, 116, 116, 119, 117, 119, 119, 103, 112, 109, 109, 110, 121, 112, 120, 109, 114, 112, 104, 126, 137, 111, 110, 100, 111, 108, 110, 117, 117, 116, 114, 115, 129, 120, 130, 120, 118, 113, 115, 120, 116, 111, 112, 103, 118, 110, 113, 117, 134, 117, 119, 122, 96, 121, 116, 127, 110, 103, 115, 120, 126, 108, 109, 110, 114, 103, 105, 124, 109, 106, 118, 115, 116, 99, 116, 118, 115, 136, 116, 114, 133, 105, 112, 106, 118, 103, 118, 144, 129, 102, 111, 113, 127, 126, 132, 114, 128, 102, 115, 119, 110, 118, 117, 125, 102, 124, 120, 113, 126, 116, 107, 99, 141, 119, 115, 122, 131, 118, 106, 112, 109, 106, 94, 116, 107, 117, 119, 116, 122, 113, 109, 128, 116, 110, 109, 93, 127, 117, 127, 116, 118, 123, 123, 120, 115, 110, 114, 112, 131, 106, 115, 101, 112, 104, 120, 116, 117, 126, 102, 116, 109, 108, 115, 124, 108, 130, 116, 110, 125, 121, 108, 117, 122, 125, 113, 123, 106, 114, 115, 102, 110, 135, 110, 120, 106, 103, 99, 114, 136, 110, 120, 118, 107, 121, 130, 112, 105, 121, 115, 110, 111, 108, 118, 108, 120, 112, 102, 131, 118, 122, 141, 126, 135, 135, 110, 104, 96, 117, 107, 124, 114, 131, 98, 114, 125, 126, 119, 121, 125, 94, 105, 114, 118, 127, 129, 109, 127, 105, 111, 119, 103, 112, 112, 120, 115, 114, 119, 134, 109, 92, 113, 123, 102, 114, 112, 121, 126, 109, 112, 131, 112, 116, 113, 130, 111, 123, 107, 115, 126, 113, 123, 115, 117, 107, 108, 114, 128, 119, 123, 128, 114, 103, 103, 110, 118, 111, 107, 106, 122, 116, 114, 109, 119, 97, 111, 124, 108, 115, 123, 109, 116, 121, 111, 109, 112, 120, 113, 122, 121, 125, 119, 116, 111, 123, 123, 107, 122, 115, 110, 111, 119, 127, 119, 114, 112, 103, 116, 127, 117, 116, 97, 121, 112, 100, 113, 111, 127, 111, 114, 123, 107, 101, 101, 118, 116, 112, 126, 93, 117, 103, 118, 114, 118, 99, 101, 102, 109, 110, 111, 102, 132, 117, 113, 120, 119, 119, 117, 107, 110, 125, 123, 109, 113, 115, 116, 113, 98, 105, 127, 134, 124, 107, 140, 126, 109, 125, 114, 107, 100, 104, 113, 128, 117, 108, 109, 117, 116, 110, 127, 104, 120, 75, 118, 119, 109, 111, 134, 101, 143, 110, 110, 107, 107, 116, 111, 117, 112, 114, 118, 115, 101, 125, 81, 107, 111, 120, 113, 124, 110, 136, 122, 133, 116, 109, 130, 93, 121, 106, 121, 110, 107, 121, 127, 99, 81, 134, 116, 118, 104, 112, 132, 108, 108, 114, 113, 114, 121, 111, 100, 122, 110, 109, 127, 116, 115, 108, 104, 118, 135, 106, 115, 98, 118, 87, 110, 122, 115, 136, 106, 121, 108, 131, 117, 122, 134, 118, 143, 113, 112, 105, 126, 111, 112, 125, 129, 126, 110, 111, 148, 102, 94, 111, 114, 142, 117, 117, 113, 110, 132, 112, 122, 117, 115, 131, 103, 116, 126, 115, 128, 135, 89, 130, 110, 113, 113, 92, 124, 105, 108, 129, 138, 118, 120, 121, 101, 109, 98, 111, 108, 109, 126, 119, 108, 109, 96, 118, 112, 133, 115, 112, 117, 112, 119, 106, 117, 136, 107, 119, 82, 112, 109, 115, 121, 117, 111, 111, 106, 123, 121, 111, 126, 108, 128, 108, 105, 100, 121, 144, 112, 111, 111, 117, 121, 113, 127, 108, 102, 110, 116, 130, 106, 122, 122, 104, 117, 120, 118, 106, 104, 115, 128, 108, 114, 114, 119, 113, 120, 121, 98, 121, 121, 125, 116, 114, 124, 120, 130, 125, 114, 118, 108, 100, 145, 102, 102, 123, 87, 103, 112, 110, 126, 117, 125, 115, 117, 123, 144, 127, 127, 122, 126, 132, 112, 126, 123, 122, 117, 117, 103, 115, 123, 118, 106, 117, 117, 139, 99, 125, 117, 107, 110, 110, 121, 126, 116, 112, 114, 113, 127, 118, 102, 116, 126, 113, 118, 116, 118, 119, 111, 126, 114, 118, 114, 105, 124, 117, 120, 102, 123, 121, 106, 118, 112, 97, 129, 129, 121, 126, 125, 111, 124, 120, 99, 112, 145, 111, 110, 113, 126, 115, 121, 109, 108, 138, 102, 127, 115, 113, 127, 123, 122, 113, 101, 112, 109, 116, 102, 110, 111, 115, 97, 126, 120, 132, 125, 127, 103, 120, 114, 128, 104, 122, 122, 129, 106, 107, 98, 120, 112, 125, 110, 122, 117, 118, 102, 116, 108, 115, 121, 124, 97, 112, 117, 127, 122, 106, 112, 119, 109, 111, 109, 115, 119, 130, 114, 139, 114, 101, 119, 107, 112, 128, 96, 126, 114, 120, 100, 115, 113, 116, 115, 117, 119, 105, 119, 106, 115, 116, 110, 126, 97, 124, 106, 118, 112, 122, 108, 99, 122, 112, 120, 118, 117, 122, 118, 119, 137, 110, 124, 114, 123, 132, 115, 113, 106, 117, 120, 125, 110, 121, 121, 113, 108, 99, 123, 135, 114, 125, 118, 106, 115, 123, 123, 103, 101, 111, 116, 111, 131, 115, 109, 105, 122, 132, 118, 122, 122, 112, 132, 115, 133, 116, 110, 110, 128, 117, 134, 119, 121, 113, 124, 112, 105, 128, 109, 139, 104, 120, 114, 114, 109, 126, 120, 110, 116, 130, 123, 116, 112, 108, 118, 90, 113, 117, 127, 115, 121, 105, 115, 116, 132, 123, 115, 114, 132, 115, 123, 121, 111, 108, 128, 109, 119, 113, 104, 115, 119, 126, 105, 121, 121, 119, 114, 107, 124, 113, 108, 114, 111, 123, 120, 124, 110, 104, 109, 104, 126, 109, 128, 104, 120, 121, 141, 102, 106, 127, 121, 128, 118, 105, 108, 123, 105, 117, 112, 133, 118, 130, 109, 114, 119, 121, 132, 106, 121, 123, 106, 116, 115, 118, 69, 125, 109, 121, 141, 120, 114, 103, 125, 109, 100, 105, 110, 137, 112, 106, 122, 118, 104, 120, 116, 116, 105, 116, 111, 115, 125, 114, 119, 121, 103, 118, 113, 112, 105, 122, 119, 116, 108, 126, 101, 113, 124, 125, 104, 108, 121, 127, 121, 111, 128, 107, 93, 111, 99, 107, 134, 107, 116, 114, 119, 110, 124, 123, 125, 115, 98, 127, 120, 112, 128, 119, 106, 123, 129, 104, 121, 115, 116, 110, 108, 121, 103, 113, 121, 135, 110, 104, 121, 113, 114, 123, 113, 122, 115, 106, 115, 115, 120, 108, 122, 113, 129, 137, 126, 116, 119, 123, 101, 112, 116, 121, 111, 105, 115, 120, 112, 117, 119, 115, 138, 114, 108, 114, 128, 137, 121, 126, 138, 97, 109, 116, 124, 106, 111, 112, 117, 115, 113, 132, 108, 113, 111, 126, 124, 103, 124, 110, 113, 130, 105, 109, 98, 129, 113, 115, 110, 107, 127, 120, 105, 126, 116, 123, 125, 131, 168, 117, 112, 110, 111, 120, 124, 117, 110, 106, 106, 115, 121, 121, 111, 109, 115, 112, 118, 121, 118, 114, 120, 113, 130, 111, 116, 114, 132, 103, 114, 124, 111, 114, 108, 115, 119, 120, 113, 112, 104, 109, 151, 120, 113, 126, 116, 106, 109, 119, 107, 126, 109, 119, 114, 122, 113, 121, 115, 124, 121, 116, 120, 117, 113, 116, 114, 106, 109, 118, 117, 114, 120, 99, 119, 113, 131, 113, 116, 114, 119, 110, 105, 126, 115, 104, 121, 105, 124, 104, 113, 120, 112, 125, 113, 111, 109, 99, 117, 120, 111, 108, 127, 122, 117, 112, 111, 122, 108, 128, 105, 105, 119, 122, 112, 112, 115, 101, 113, 118, 135, 119, 128, 111, 118, 111, 118, 120, 121, 96, 107, 126, 118, 112, 123, 117, 133, 126, 115, 110, 120, 126, 115, 113, 111, 117, 112, 119, 117, 119, 121, 130, 113, 110, 122, 113, 119, 127, 118, 127, 111, 120, 106, 120, 125, 107, 112, 104, 113, 110, 108, 116, 132, 111, 112, 131, 114, 117, 111, 97, 119, 120, 108, 129, 118, 119, 129, 122, 112, 100, 101, 119, 125, 111, 121, 142, 126, 127, 154, 109, 119, 112, 122, 126, 116, 116, 111, 101, 119, 134, 113, 118, 120, 112, 113, 121, 124, 118, 130, 120, 122, 116, 110, 114, 122, 116, 107, 108, 107, 76, 108, 110, 117, 109, 116, 112, 107, 121, 111, 112, 120, 125, 111, 105, 119, 120, 104, 105, 117, 115, 114, 124, 123, 114, 122, 113, 115, 121, 124, 113, 111, 123, 124, 135, 124, 112, 113, 122, 123, 118, 111, 114, 120, 112, 131, 113, 115, 132, 110, 123, 123, 116, 134, 115, 104, 126, 112, 107, 123, 123, 115, 107, 117, 118, 116, 123, 125, 121, 115, 108, 119, 110, 97, 113, 98, 128, 103, 115, 104, 113, 119, 107, 118, 120, 112, 117, 126, 107, 112, 106, 116, 108, 109, 115, 122, 113, 122, 117, 108, 133, 118, 103, 114, 114, 108, 110, 110, 101, 118, 122, 121, 120, 104, 122, 115, 115, 113, 110, 111, 117, 112, 117, 125, 109, 105, 120, 116, 112, 108, 113, 95, 126, 118, 111, 122, 115, 111, 112, 118, 123, 114, 110, 112, 122, 113, 118, 103, 109, 110, 117, 117, 115, 120, 113, 120, 123, 119, 117, 118, 120, 111, 114, 108, 109, 111, 113, 127, 142, 129, 102, 122, 110, 109, 117, 110, 106, 113, 124, 101, 95, 119, 123, 124, 119, 105, 117, 103, 112, 123, 122, 120, 125, 122, 106, 116, 119, 118, 138, 122, 122, 128, 100, 111, 116, 121, 121, 116, 106, 111, 116, 108, 145, 104, 117, 115, 120, 121, 110, 115, 116, 117, 122, 105, 119, 116, 120, 118, 113, 109, 110, 107, 121, 110, 109, 110, 106, 113, 112, 110, 113, 105, 124, 102, 109, 110, 110, 111, 115, 134, 122, 118, 115, 123, 104, 119, 123, 123, 105, 122, 110, 114, 115, 124, 128, 114, 131, 115, 122, 115, 102, 128, 124, 109, 118, 121, 114, 103, 106, 108, 94, 123, 108, 126, 106, 125, 101, 126, 115, 103, 128, 116, 103, 110, 119, 125, 103, 129, 112, 118, 111, 119, 114, 119, 119, 112, 116, 112, 129, 110, 101, 120, 107, 109, 114, 114, 102, 126, 115, 122, 119, 136, 127, 106, 111, 115, 106, 132, 108, 115, 118, 118, 125, 126, 103, 120, 110, 116, 115, 105, 114, 120, 108, 115, 114, 118, 119, 112, 118, 108, 110, 119, 112, 128, 113, 100, 107, 115, 112, 127, 115, 110, 131, 107, 110, 115, 111, 109, 105, 112, 105, 105, 121, 112, 102, 140, 125, 107, 114, 114, 125, 127, 118, 99, 119, 99, 106, 113, 127, 118, 98, 115, 121, 114, 116, 107, 108, 105, 119, 127, 115, 115, 108, 111, 128, 107, 111, 117, 125, 130, 113, 113, 122, 117, 118, 125, 120, 109, 134, 103, 128, 103, 105, 101, 102, 106, 121, 122, 119, 99, 116, 116, 120, 133, 114, 120, 137, 112, 128, 120, 120, 107, 109, 115, 130, 111, 121, 121, 109, 111, 123, 106, 114, 123, 140, 128, 117, 102, 119, 108, 107, 117, 125, 129, 126, 118, 115, 117, 114, 108, 113, 112, 64, 121, 112, 116, 98, 120, 127, 116, 108, 116, 131, 112, 126, 128, 110, 108, 122, 116, 122, 122, 111, 104, 101, 117, 111, 123, 103, 106, 107, 114, 95, 130, 108, 123, 126, 124, 110, 114, 97, 115, 109, 121, 113, 116, 122, 127, 121, 108, 113, 118, 116, 107, 113, 111, 96, 111, 117, 109, 107, 129, 112, 120, 120, 113, 109, 113, 118, 109, 130, 121, 116, 114, 121, 109, 107, 128, 118, 108, 117, 101, 114, 97, 111, 117, 126, 117, 119, 119, 107, 120, 108, 132, 119, 120, 109, 113, 117, 101, 125, 110, 113, 127, 115, 104, 110, 112, 114, 112, 144, 118, 97, 120, 114, 110, 111, 120, 123, 110, 121, 116, 118, 116, 105, 132, 127, 123, 105, 144, 124, 118, 121, 102, 130, 105, 117, 103, 110, 119, 121, 111, 133, 97, 114, 123, 115, 135, 114, 125, 119, 102, 125, 119, 118, 115, 110, 116, 103, 123, 114, 119, 106, 116, 116, 99, 113, 115, 87, 119, 125, 122, 118, 111, 112, 120, 125, 110, 117, 108, 105, 110, 119, 121, 103, 130, 129, 124, 122, 108, 105, 104, 131, 119, 130, 111, 109, 115, 128, 114, 121, 110, 123, 115, 109, 115, 139, 114, 113, 108, 112, 118, 111, 119, 113, 100, 118, 95, 101, 108, 113, 113, 94, 115, 108, 110, 130, 101, 125, 105, 115, 127, 124, 123, 121, 124, 107, 129, 110, 119, 120, 108, 128, 133, 119, 122, 117, 127, 126, 117, 118, 109, 112, 114, 123, 117, 112, 144, 124, 117, 104, 119, 115, 121, 125, 108, 128, 122, 112, 105, 123, 121, 113, 118, 103, 114, 133, 117, 107, 105, 126, 110, 125, 116, 114, 121, 102, 126, 110, 115, 132, 110, 124, 126, 122, 103, 110, 133, 110, 118, 110, 123, 131, 113, 104, 121, 104, 118, 118, 116, 120, 114, 105, 126, 117, 89, 122, 119, 106, 114, 123, 112, 119, 106, 112, 112, 124, 119, 127, 138, 111, 115, 110, 111, 107, 116, 114, 104, 116, 125, 128, 127, 106, 108, 129, 117, 122, 115, 103, 101, 114, 125, 127, 105, 110, 111, 110, 118, 127, 122, 106, 121, 133, 120, 111, 116, 114, 118, 115, 109, 119, 115, 116, 110, 126, 117, 115, 114, 118, 122, 108, 104, 107, 114, 110, 120, 122, 121, 113, 112, 119, 124, 125, 126, 107, 113, 116, 107, 123, 126, 121, 114, 121, 111, 120, 110, 119, 114, 108, 115, 127, 138, 127, 118, 114, 114, 110, 126, 117, 107, 122, 110, 118, 117, 121, 126, 111, 104, 95, 115, 116, 109, 107, 110, 118, 124, 118, 125, 122, 108, 124, 101, 124, 122, 117, 116, 118, 115, 113, 111, 114, 108, 105, 109, 105, 114, 118, 126, 114, 114, 127, 109, 108, 121, 115, 102, 122, 117, 111, 108, 127, 122, 108, 117, 132, 124, 121, 103, 107, 99, 120, 119, 119, 129, 108, 112, 128, 108, 120, 106, 122, 106, 129, 125, 110, 121, 112, 135, 132, 121, 133, 117, 117, 121, 118, 116, 121, 110, 109, 115, 123, 114, 102, 120, 127, 110, 106, 108, 116, 116, 111, 114, 122, 118, 109, 121, 119, 118, 116, 95, 114, 113, 99, 121, 120, 117, 123, 111, 121, 122, 111, 120, 110, 105, 126, 114, 115, 118, 116, 112, 113, 119, 110, 114, 120, 120, 118, 113, 114, 118, 105, 133, 112, 105, 110, 109, 124, 114, 114, 115, 112, 118, 102, 121, 122, 111, 116, 119, 111, 113, 102, 114, 116, 109, 123, 106, 117, 104, 120, 125, 119, 105, 124, 125, 116, 122, 119, 115, 110, 120, 111, 97, 111, 112, 127, 106, 113, 118, 114, 110, 112, 115, 124, 113, 131, 124, 129, 136, 126, 129, 113, 136, 129, 139, 115, 114, 139, 103, 126, 98, 112, 116, 112, 113, 104, 109, 127, 121, 132, 109, 130, 132, 113, 122, 131, 109, 118, 119, 107, 113, 123, 114, 114, 117, 109, 122, 108, 123, 121, 126, 112, 106, 103, 118, 123, 117, 112, 129, 112, 112, 115, 119, 120, 101, 113, 108, 114, 120, 120, 104, 107, 115, 119, 108, 114, 117, 121, 103, 105, 106, 119, 108, 120, 126, 126, 101, 119, 122, 108, 106, 145, 123, 124, 133, 109, 129, 108, 111, 115, 126, 115, 121, 125, 113, 104, 116, 116, 116, 107, 112, 98, 98, 111, 116, 120, 116, 115, 113, 110, 106, 118, 115, 121, 124, 128, 114, 99, 133, 124, 141, 115, 122, 130, 130, 104, 112, 118, 111, 120, 114, 123, 114, 119, 125, 113, 120, 116, 114, 103, 110, 101, 114, 113, 128, 111, 128, 111, 118, 108, 125, 112, 118, 112, 133, 105, 117, 118, 115, 115, 123, 116, 107, 101, 109, 113, 111, 115, 126, 109, 117, 94, 121, 120, 120, 120, 110, 111, 119, 98, 116, 103, 99, 110, 123, 114, 132, 123, 108, 113, 117, 119, 114, 122, 124, 109, 116, 121, 116, 115, 97, 122, 101, 123, 116, 102, 111, 121, 131, 118, 122, 112, 126, 130, 128, 117, 122, 110, 120, 115, 110, 115, 133, 113, 121, 119, 116, 124, 122, 172, 122, 111, 119, 112, 110, 112, 119, 122, 96, 139, 114, 116, 103, 124, 122, 114, 117, 120, 115, 120, 101, 125, 113, 128, 108, 124, 109, 109, 113, 103, 118, 103, 110, 116, 128, 118, 100, 146, 118, 123, 118, 113, 126, 108, 109, 104, 114, 125, 113, 118, 115, 139, 117, 110, 107, 111, 145, 109, 113, 108, 112, 127, 123, 111, 106, 109, 122, 107, 124, 111, 123, 115, 110, 120, 129, 96, 122, 100, 123, 117, 115, 115, 116, 119, 117, 115, 130, 116, 109, 107, 118, 123, 104, 112, 120, 116, 126, 117, 92, 109, 108, 125, 110, 115, 132, 120, 98, 113, 127, 119, 135, 115, 113, 112, 109, 120, 129, 117, 112, 110, 118, 114, 106, 123, 125, 106, 121, 101, 107, 123, 112, 117, 110, 116, 126, 112, 120, 110, 108, 116, 105, 110, 108, 104, 118, 115, 102, 97, 105, 110, 107, 108, 105, 115, 124, 118, 117, 109, 109, 117, 118, 104, 115, 126, 120, 105, 111, 107, 118, 93, 106, 90, 108, 119, 117, 124, 120, 113, 121, 118, 124, 114, 120, 119, 110, 115, 116, 114, 104, 123, 111, 120, 108, 115, 120, 112, 116, 115, 123, 112, 112, 113, 118, 112, 124, 108, 112, 100, 113, 129, 112, 118, 118, 120, 120, 125, 111, 115, 116, 118, 101, 117, 125, 107, 116, 116, 107, 115, 125, 156, 114, 114, 124, 114, 124, 109, 106, 120, 119, 120, 107, 113, 113, 136, 113, 121, 102, 117, 100, 112, 105, 119, 134, 121, 133, 109, 122, 104, 108, 111, 120, 125, 115, 119, 128, 109, 117, 118, 114, 108, 107, 116, 111, 113, 126, 114, 118, 113, 109, 116, 125, 118, 134, 112, 113, 126, 116, 117, 123, 104, 110, 115, 129, 120, 119, 118, 116, 112, 117, 122, 128, 109, 112, 115, 123, 125, 126, 115, 101, 112, 111, 94, 121, 116, 115, 125, 127, 120, 122, 119, 139, 101, 119, 106, 103, 128, 124, 122, 113, 116, 104, 107, 126, 116, 115, 113, 106, 119, 136, 116, 112, 115, 117, 119, 110, 109, 111, 109, 120, 132, 124, 115, 110, 106, 118, 115, 116, 98, 112, 126, 117, 112, 138, 120, 110, 119, 111, 119, 108, 113, 88, 110, 112, 120, 134, 127, 100, 118, 115, 120, 119, 119, 118, 122, 129, 114, 108, 113, 117, 115, 103, 122, 110, 133, 111, 113, 111, 124, 116, 114, 107, 119, 119, 115, 125, 125, 111, 124, 98, 120, 120, 123, 102, 144, 118, 125, 117, 100, 118, 116, 95, 113, 117, 112, 119, 111, 121, 115, 129, 114, 108, 125, 114, 115, 127, 116, 112, 128, 118, 110, 128, 116, 121, 115, 111, 116, 126, 120, 115, 122, 109, 108, 109, 115, 121, 114, 117, 111, 101, 115, 121, 109, 119, 99, 105, 118, 114, 112, 115, 117, 120, 118, 111, 105, 117, 110, 115, 120, 116, 117, 125, 122, 124, 122, 119, 123, 116, 112, 118, 122, 116, 111, 114, 118, 111, 118, 120, 120, 111, 113, 114, 115, 115, 134, 112, 111, 109, 110, 121, 115, 121, 124, 118, 117, 116, 114, 124, 109, 127, 114, 113, 122, 115, 112, 115, 108, 116, 116, 118, 116, 121, 118, 116, 113, 118, 114, 118, 121, 116, 122, 104, 115, 111, 98, 105, 115, 115, 115, 115, 119, 114, 120, 124, 123, 104, 112, 125, 114, 110, 117, 118, 120, 117, 120, 109, 118, 116, 117, 119, 112, 114, 138, 121, 111, 114, 119, 119, 113, 122, 117, 116, 121, 121, 126, 114, 115, 113, 113, 115, 114, 124, 108, 115, 107, 114, 114, 143, 114, 112, 121, 116, 117, 119, 118, 107, 120, 120, 115, 133, 124, 114, 109, 117, 117, 117, 122, 113, 122, 116, 120, 119, 116, 108, 111, 113, 118, 103, 112, 121, 130, 116, 115, 113, 116, 108, 117, 119, 115, 115, 122, 117, 115, 126, 119, 118, 123, 120, 124, 100, 110, 120, 117, 112, 121, 121, 117, 96, 115, 113, 114, 122, 120, 109, 109, 123, 120, 111, 122, 120, 117, 114, 117, 111, 120, 118, 119, 109, 114, 108, 121, 126, 116, 126, 113, 111, 121, 126, 111, 115, 113, 122, 105, 119, 105, 124, 120, 116, 121, 109, 121, 118, 115, 131, 114, 113, 125, 119, 113, 122, 117, 115, 112, 112, 120, 113, 121, 107, 108, 111, 110, 126, 113, 114, 122, 108, 127, 115, 122, 119, 119, 121, 118, 115, 119, 130, 128, 117, 115, 124, 139, 116, 112, 117, 106, 119, 103, 117, 117, 112, 117, 121, 117, 120, 141, 134, 115, 112, 113, 123, 117, 112, 129, 118, 100, 118, 120, 115, 122, 122, 112, 113, 118, 122, 120, 131, 110, 119, 114, 122, 117, 118, 121, 111, 133, 126, 115, 100, 115, 112, 117, 117, 117, 117, 114, 115, 110, 118, 129, 117, 115, 120, 119, 110, 123, 136, 119, 117, 119, 113, 115, 122, 123, 112, 118, 113, 125, 123, 121, 116, 114, 123, 115, 109, 117, 116, 121, 122, 117, 111, 112, 130, 116, 119, 106, 120, 113, 111, 119, 108, 116, 117, 121, 115, 109, 114, 102, 115, 114, 103, 118, 118, 90, 109, 122, 110, 124, 118, 118, 116, 118, 116, 106, 115, 105, 119, 109, 123, 110, 126, 121, 128, 105, 121, 120, 112, 114, 121, 113, 118, 111, 116, 121, 115, 106, 119, 109, 115, 106, 118, 118, 109, 121, 122, 111, 121, 113, 113, 122, 115, 122, 116, 125, 115, 113, 121, 114, 116, 118, 121, 121, 106, 113, 118, 116, 119, 118, 125, 124, 121, 113, 119, 120, 114, 113, 111, 118, 117, 109, 114, 125, 118, 113, 117, 121, 121, 105, 125, 116, 116, 107, 124, 105, 120, 113, 121, 124, 113, 115, 113, 112, 122, 154, 111, 108, 119, 109, 114, 118, 110, 130, 119, 102, 109, 101, 98, 116, 116, 106, 117, 99, 104, 94, 104, 104, 111, 106, 112, 124, 124, 136, 108, 140, 104, 114, 115, 101, 113, 103, 108, 104, 117, 115, 123, 108, 99, 118, 129, 113, 125, 106, 131, 113, 98, 88, 127, 107, 117, 109, 122, 134, 112, 113, 125, 113, 111, 113, 105, 115, 109, 108, 111, 123, 130, 120, 115, 104, 110, 121, 118, 105, 123, 125, 121, 104, 108, 115, 105, 106, 117, 115, 107, 102, 121, 116, 99, 127, 132, 121, 116, 137, 118, 122, 117, 110, 108, 116, 128, 123, 96, 103, 102, 112, 113, 95, 126, 97, 113, 109, 114, 103, 103, 120, 115, 136, 113, 103, 99, 117, 93, 108, 113, 95, 118, 106, 108, 124, 105, 118, 108, 129, 127, 119, 108, 129, 107, 113, 124, 128, 122, 119, 111, 119, 107, 117, 119, 119, 107, 132, 119, 131, 101, 112, 116, 108, 133, 133, 112, 109, 113, 123, 113, 99, 130, 100, 118, 122, 96, 136, 126, 116, 81, 118, 113, 117, 119, 130, 115, 101, 108, 114, 105, 114, 112, 96, 136, 124, 113, 124, 103, 115, 115, 110, 120, 109, 109, 108, 113, 115, 130, 105, 107, 123, 105, 118, 111, 103, 98, 116, 117, 107, 108, 112, 105, 115, 98, 112, 106, 125, 105, 132, 107, 126, 116, 118, 111, 111, 98, 123, 104, 130, 102, 104, 129, 128, 117, 98, 122, 116, 104, 115, 118, 107, 109, 118, 122, 98, 123, 110, 117, 114, 108, 105, 104, 137, 117, 102, 102, 119, 134, 133, 102, 112, 114, 121, 108, 103, 115, 115, 101, 99, 113, 124, 127, 120, 116, 117, 107, 97, 120, 122, 123, 113, 128, 124, 138, 119, 119, 133, 115, 117, 109, 118, 133, 136, 114, 123, 118, 118, 111, 112, 118, 116, 121, 134, 113, 111, 112, 100, 127, 109, 118, 119, 127, 116, 104, 120, 131, 137, 131, 109, 119, 110, 111, 107, 112, 109, 108, 127, 122, 106, 113, 93, 107, 111, 117, 112, 111, 122, 111, 124, 133, 111, 111, 125, 127, 141, 114, 112, 117, 134, 124, 126, 112, 102, 115, 107, 113, 102, 111, 116, 107, 112, 122, 110, 110, 118, 109, 108, 130, 105, 119, 101, 109, 111, 103, 109, 113, 93, 130, 118, 123, 114, 120, 103, 105, 98, 89, 111, 126, 137, 106, 123, 106, 114, 107, 106, 126, 99, 119, 122, 104, 114, 128, 110, 122, 104, 99, 100, 107, 124, 99, 123, 137, 115, 111, 111, 106, 102, 109, 103, 124, 103, 112, 118, 140, 119, 107, 116, 119, 102, 123, 125, 98, 121, 128, 126, 115, 117, 113, 107, 102, 114, 113, 104, 127, 117, 122, 120, 125, 100, 85, 118, 116, 123, 107, 127, 109, 125, 126, 132, 101, 100, 120, 126, 133, 100, 130, 85, 114, 107, 102, 105, 105, 118, 122, 138, 118, 115, 121, 100, 111, 110, 103, 116, 120, 99, 115, 109, 118, 122, 116, 99, 102, 110, 126, 109, 118, 116, 103, 112, 105, 127, 110, 108, 118, 105, 119, 120, 117, 102, 131, 122, 109, 105, 138, 117, 116, 122, 116, 116, 110, 113, 119, 122, 113, 120, 124, 105, 118, 116, 106, 120, 109, 115, 125, 114, 103, 110, 115, 123, 122, 113, 133, 130, 114, 122, 111, 124, 116, 127, 139, 114, 118, 108, 111, 115, 100, 125, 115, 122, 125, 104, 113, 113, 123, 110, 117, 117, 109, 119, 116, 125, 119, 121, 113, 124, 120, 127, 106, 121, 109, 112, 118, 133, 121, 117, 104, 113, 111, 113, 122, 111, 124, 115, 121, 118, 120, 107, 122, 108, 122, 118, 110, 111, 124, 118, 134, 121, 109, 110, 124, 117, 120, 118, 119, 116, 121, 107, 114, 115, 128, 108, 117, 120, 113, 110, 131, 110, 104, 122, 118, 116, 111, 108, 117, 124, 115, 112, 118, 113, 112, 126, 111, 111, 119, 114, 113, 114, 109, 122, 117, 117, 117, 119, 112, 117, 126, 102, 106, 113, 106, 126, 116, 125, 129, 107, 124, 96, 119, 113, 118, 123, 115, 124, 121, 128, 121, 128, 119, 120, 116, 121, 109, 134, 126, 116, 108, 114, 116, 111, 115, 128, 118, 98, 105, 108, 114, 117, 110, 118, 113, 110, 101, 112, 108, 129, 113, 121, 99, 119, 113, 103, 106, 107, 112, 124, 127, 118, 119, 102, 117, 125, 107, 104, 117, 115, 107, 124, 110, 113, 102, 112, 113, 113, 109, 122, 116, 110, 113, 111, 116, 121, 111, 120, 109, 114, 130, 113, 119, 116, 126, 116, 114, 113, 120, 111, 111, 119, 128, 118, 124, 122, 126, 112, 116, 125, 125, 115, 109, 120, 113, 124, 110, 98, 111, 124, 115, 116, 128, 109, 119, 132, 111, 125, 114, 116, 96, 115, 110, 112, 122, 123, 120, 119, 104, 120, 108, 99, 109, 123, 124, 112, 120, 119, 130, 117, 118, 131, 108, 96, 113, 120, 112, 109, 125, 117, 94, 118, 111, 102, 124, 111, 111, 116, 126, 120, 109, 137, 122, 115, 119, 114, 121, 124, 116, 109, 116, 122, 111, 115, 123, 115, 118, 113, 113, 119, 120, 114, 110, 110, 108, 111, 123, 119, 117, 128, 114, 118, 112, 119, 114, 123, 111, 123, 108, 117, 153, 114, 106, 126, 124, 125, 110, 118, 107, 134, 122, 109, 112, 105, 120, 114, 128, 120, 107, 117, 119, 113, 120, 130, 112, 122, 116, 127, 114, 118, 99, 109, 99, 126, 131, 126, 108, 124, 115, 120, 110, 99, 123, 115, 127, 117, 111, 117, 122, 113, 125, 118, 134, 125, 115, 111, 116, 107, 110, 116, 125, 110, 117, 117, 124, 111, 120, 103, 101, 126, 116, 130, 116, 114, 123, 99, 128, 119, 111, 113, 120, 116, 110, 123, 110, 110, 115, 114, 114, 126, 113, 121, 135, 118, 120, 110, 109, 123, 121, 120, 126, 117, 117, 114, 116, 116, 116, 121, 118, 129, 124, 108, 128, 113, 123, 116, 115, 109, 116, 108, 105, 105, 115, 107, 107, 113, 116, 123, 124, 113, 109, 118, 110, 108, 105, 114, 116, 104, 123, 106, 111, 121, 126, 114, 125, 115, 105, 132, 125, 118, 112, 108, 115, 119, 129, 109, 104, 123, 107, 120, 122, 122, 129, 105, 126, 127, 120, 112, 105, 126, 105, 106, 105, 123, 98, 135, 127, 117, 116, 118, 110, 115, 135, 123, 116, 134, 103, 123, 118, 123, 118, 96, 101, 124, 118, 135, 118, 103, 113, 111, 112, 123, 114, 110, 117, 117, 100, 106, 105, 125, 122, 111, 109, 119, 107, 123, 102, 109, 106, 116, 122, 117, 110, 134, 112, 111, 117, 122, 116, 128, 124, 101, 132, 132, 119, 106, 116, 120, 114, 108, 112, 108, 113, 115, 110, 111, 123, 119, 121, 99, 116, 134, 122, 108, 109, 114, 106, 110, 110, 111, 116, 122, 117, 111, 107, 119, 127, 109, 110, 123, 123, 132, 115, 123, 109, 106, 118, 104, 104, 108, 133, 126, 128, 105, 121, 128, 128, 113, 129, 116, 106, 118, 123, 111, 124, 112, 122, 115, 120, 115, 110, 115, 133, 107, 112, 112, 113, 118, 113, 128, 111, 114, 122, 119, 122, 110, 118, 113, 117, 113, 126, 127, 122, 120, 111, 123, 118, 118, 114, 119, 103, 121, 115, 114, 102, 124, 117, 123, 124, 109, 109, 109, 125, 120, 108, 127, 121, 107, 122, 123, 105, 116, 121, 117, 96, 111, 127, 126, 113, 109, 124, 119, 104, 113, 98, 105, 108, 118, 117, 115, 111, 123, 123, 122, 96, 133, 107, 111, 118, 111, 107, 110, 121, 111, 107, 121, 118, 111, 117, 122, 115, 113, 110, 104, 108, 93, 111, 101, 129, 131, 108, 112, 112, 117, 122, 115, 103, 124, 121, 105, 126, 128, 111, 114, 129, 117, 112, 107, 114, 113, 127, 111, 126, 105, 103, 117, 123, 104, 111, 108, 113, 124, 119, 110, 109, 126, 113, 115, 101, 127, 105, 120, 130, 119, 121, 119, 110, 110, 124, 119, 115, 102, 122, 108, 113, 127, 116, 107, 112, 121, 114, 122, 122, 119, 127, 125, 106, 127, 112, 113, 127, 119, 116, 112, 116, 120, 112, 108, 117, 115, 119, 112, 114, 127, 133, 104, 122, 123, 117, 129, 106, 117, 101, 115, 104, 106, 114, 122, 112, 120, 106, 123, 110, 117, 154, 99, 118, 119, 119, 98, 109, 113, 103, 105, 112, 119, 110, 116, 112, 111, 120, 116, 101, 125, 119, 124, 128, 112, 118, 128, 116, 110, 116, 111, 121, 127, 119, 115, 105, 131, 120, 111, 112, 117, 118, 112, 91, 110, 112, 124, 113, 131, 119, 119, 110, 111, 119, 123, 108, 106, 110, 103, 115, 109, 125, 99, 126, 117, 116, 107, 117, 128, 107, 106, 114, 118, 95, 121, 135, 125, 123, 114, 125, 94, 113, 124, 126, 104, 116, 123, 114, 116, 100, 108, 150, 113, 108, 125, 91, 122, 109, 123, 117, 108, 108, 118, 131, 105, 111, 124, 127, 111, 113, 103, 116, 120, 120, 108, 115, 108, 98, 113, 105, 118, 112, 110, 126, 115, 126, 114, 108, 109, 109, 133, 112, 115, 103, 119, 123, 120, 112, 110, 95, 104, 112, 107, 122, 108, 122, 132, 112, 121, 112, 118, 119, 118, 120, 119, 138, 105, 119, 141, 120, 114, 122, 123, 103, 103, 115, 114, 106, 117, 119, 104, 137, 93, 109, 107, 110, 124, 112, 109, 110, 128, 118, 109, 101, 122, 119, 123, 118, 144, 108, 116, 144, 106, 121, 113, 116, 109, 126, 110, 124, 115, 125, 132, 121, 117, 127, 102, 113, 126, 108, 118, 110, 119, 110, 115, 126, 135, 113, 109, 110, 122, 125, 116, 127, 120, 104, 110, 117, 123, 116, 128, 157, 97, 117, 114, 120, 114, 116, 115, 116, 112, 109, 119, 117, 117, 118, 116, 113, 138, 128, 109, 126, 121, 113, 122, 116, 105, 112, 105, 124, 108, 110, 112, 119, 113, 113, 117, 112, 108, 114, 119, 125, 131, 122, 115, 115, 112, 110, 113, 107, 111, 124, 110, 101, 114, 109, 121, 122, 110, 122, 116, 121, 125, 113, 132, 137, 118, 121, 113, 104, 118, 112, 114, 115, 102, 108, 117, 102, 106, 110, 109, 117, 127, 107, 117, 107, 122, 129, 100, 120, 113, 105, 122, 102, 115, 116, 113, 112, 120, 108, 90, 127, 116, 119, 122, 99, 97, 123, 102, 110, 112, 116, 106, 110, 124, 111, 116, 112, 119, 127, 107, 117, 118, 111, 115, 104, 117, 117, 102, 104, 104, 113, 106, 100, 119, 132, 116, 120, 134, 101, 104, 130, 112, 118, 115, 119, 103, 132, 119, 117, 109, 91, 111, 115, 104, 128, 126, 114, 143, 136, 114, 136, 113, 114, 122, 116, 127, 133, 123, 122, 111, 113, 95, 121, 113, 110, 128, 118, 118, 115, 111, 106, 119, 114, 122, 124, 102, 117, 120, 95, 126, 129, 109, 98, 108, 126, 110, 117, 102, 116, 109, 97, 111, 120, 101, 105, 115, 106, 114, 117, 113, 118, 113, 113, 107, 128, 112, 103, 125, 117, 108, 112, 120, 115, 118, 115, 107, 113, 116, 106, 108, 112, 126, 112, 99, 116, 115, 138, 108, 111, 123, 121, 116, 112, 123, 123, 109, 126, 116, 111, 114, 109, 114, 115, 126, 135, 139, 116, 128, 108, 104, 118, 96, 114, 115, 112, 102, 115, 144, 104, 124, 117, 119, 125, 104, 111, 121, 108, 110, 125, 124, 120, 119, 123, 110, 108, 118, 111, 111, 138, 123, 127, 107, 111, 108, 134, 114, 119, 122, 98, 119, 112, 125, 97, 128, 113, 119, 103, 127, 106, 114, 128, 119, 109, 134, 111, 122, 101, 109, 115, 111, 109, 122, 123, 100, 113, 115, 113, 122, 116, 118, 107, 126, 118, 106, 132, 131, 119, 114, 108, 119, 116, 117, 117, 114, 111, 105, 112, 109, 121, 87, 111, 115, 117, 111, 119, 131, 119, 113, 105, 126, 122, 115, 125, 123, 110, 111, 120, 119, 105, 123, 104, 113, 118, 111, 128, 115, 111, 109, 121, 117, 112, 112, 106, 101, 120, 107, 108, 123, 131, 109, 133, 107, 117, 114, 116, 125, 126, 107, 120, 105, 115, 117, 112, 119, 116, 106, 108, 132, 108, 128, 118, 99, 123, 141, 109, 103, 122, 118, 109, 128, 104, 125, 97, 124, 118, 114, 118, 114, 122, 117, 111, 107, 114, 94, 124, 112, 92, 124, 103, 104, 125, 114, 136, 115, 113, 119, 121, 114, 123, 111, 107, 109, 106, 123, 118, 117, 103, 116, 102, 112, 103, 122, 106, 112, 109, 121, 124, 117, 109, 108, 125, 113, 121, 125, 116, 120, 117, 112, 91, 107, 107, 106, 114, 124, 117, 106, 116, 116, 128, 120, 126, 108, 126, 123, 101, 107, 118, 107, 128, 120, 115, 117, 119, 111, 124, 114, 115, 132, 86, 114, 108, 114, 115, 117, 119, 97, 155, 108, 104, 115, 128, 106, 116, 124, 109, 93, 120, 125, 108, 115, 122, 113, 118, 115, 86, 120, 116, 107, 132, 117, 117, 113, 96, 97, 126, 99, 130, 119, 106, 110, 119, 108, 117, 116, 134, 114, 119, 110, 103, 102, 111, 106, 95, 117, 119, 121, 118, 115, 111, 117, 111, 114, 116, 106, 115, 107, 110, 107, 108, 152, 115, 121, 117, 101, 115, 98, 103, 111, 111, 113, 127, 112, 126, 119, 110, 126, 110, 90, 135, 116, 103, 111, 114, 123, 113, 146, 113, 100, 101, 107, 124, 116, 103, 122, 116, 132, 117, 116, 129, 106, 113, 120, 119, 110, 131, 116, 164, 95, 108, 131, 114, 105, 115, 122, 96, 121, 102, 118, 107, 119, 120, 121, 104, 118, 123, 101, 124, 115, 122, 145, 113, 116, 126, 114, 106, 126, 116, 112, 118, 118, 106, 121, 117, 105, 113, 113, 104, 144, 119, 116, 112, 101, 111, 117, 97, 115, 119, 115, 119, 121, 95, 127, 120, 109, 112, 106, 110, 119, 108, 96, 134, 113, 137, 112, 150, 122, 108, 119, 128, 106, 118, 144, 114, 92, 117, 113, 114, 122, 117, 110, 116, 91, 126, 112, 108, 102, 100, 116, 122, 103, 127, 108, 112, 120, 134, 101, 118, 114, 113, 108, 118, 106, 111, 125, 107, 113, 113, 111, 115, 111, 126, 120, 111, 107, 95, 109, 107, 120, 123, 115, 110, 119, 122, 103, 109, 116, 116, 117, 129, 118, 120, 140, 114, 114, 113, 123, 119, 126, 144, 115, 104, 114, 121, 120, 118, 158, 98, 128, 133, 112, 118, 110, 136, 110, 118, 109, 114, 89, 106, 114, 123, 106, 117, 107, 128, 121, 115, 117, 101, 106, 132, 95, 122, 105, 102, 86, 126, 121, 110, 108, 112, 121, 120, 109, 93, 115, 112, 111, 112, 116, 97, 114, 109, 119, 116, 115, 138, 113, 106, 108, 113, 136, 114, 114, 99, 109, 115, 107, 114, 122, 135, 126, 121, 105, 110, 122, 122, 122, 125, 131, 119, 117, 98, 125, 110, 105, 124, 117, 117, 117, 108, 117, 119, 132, 133, 117, 126, 122, 107, 103, 124, 113, 113, 125, 109, 120, 104, 119, 117, 127, 108, 126, 123, 140, 112, 121, 126, 116, 111, 123, 119, 116, 135, 99, 115, 119, 120, 117, 122, 110, 112, 109, 119, 114, 114, 111, 72, 120, 120, 108, 99, 115, 125, 112, 109, 121, 119, 103, 120, 120, 108, 119, 125, 111, 118, 113, 124, 119, 120, 114, 116, 109, 129, 103, 92, 114, 111, 115, 105, 103, 124, 119, 123, 114, 134, 94, 115, 113, 121, 113, 117, 110, 109, 130, 109, 96, 108, 114, 122, 109, 114, 109, 112, 118, 125, 99, 116, 120, 123, 102, 109, 116, 111, 111, 107, 121, 108, 117, 113, 109, 109, 113, 91, 125, 125, 113, 148, 107, 114, 121, 114, 127, 117, 130, 110, 140, 134, 101, 121, 122, 115, 106, 112, 113, 118, 101, 121, 124, 122, 124, 99, 119, 110, 115, 112, 117, 125, 120, 119, 110, 117, 117, 112, 114, 104, 121, 126, 120, 116, 113, 114, 118, 134, 126, 120, 105, 123, 121, 115, 127, 124, 101, 94, 114, 105, 117, 124, 120, 115, 120, 114, 136, 122, 86, 119, 120, 118, 112, 130, 113, 118, 116, 119, 121, 121, 121, 119, 118, 121, 115, 114, 119, 104, 121, 125, 116, 104, 117, 122, 128, 132, 117, 118, 113, 116, 113, 119, 73, 121, 120, 124, 110, 106, 119, 115, 124, 107, 126, 113, 114, 128, 112, 75, 115, 124, 98, 111, 105, 120, 113, 111, 112, 120, 132, 122, 115, 111, 112, 110, 124, 116, 113, 111, 112, 120, 115, 127, 125, 111, 121, 116, 115, 118, 108, 108, 111, 110, 104, 114, 118, 116, 110, 124, 105, 120, 125, 113, 131, 115, 117, 160, 131, 105, 116, 113, 135, 110, 109, 125, 108, 124, 118, 94, 120, 126, 110, 119, 110, 94, 119, 111, 118, 111, 123, 102, 111, 119, 120, 125, 122, 131, 114, 114, 120, 108, 127, 111, 121, 109, 103, 120, 114, 117, 117, 117, 113, 108, 119, 110, 110, 111, 126, 119, 111, 108, 118, 113, 119, 131, 118, 118, 106, 105, 115, 120, 114, 118, 145, 124, 112, 107, 116, 41, 123, 114, 123, 109, 111, 109, 111, 113, 127, 114, 113, 125, 121, 119, 116, 121, 104, 130, 106, 114, 123, 90, 122, 115, 125, 116, 118, 101, 117, 119, 122, 113, 107, 111, 111, 116, 117, 120, 115, 107, 95, 114, 102, 118, 128, 108, 88, 116, 113, 108, 127, 110, 117, 106, 118, 122, 118, 120, 111, 114, 112, 142, 109, 119, 115, 112, 117, 120, 116, 119, 111, 126, 105, 116, 125, 125, 112, 127, 114, 112, 117, 125, 125, 113, 145, 100, 118, 122, 125, 120, 110, 113, 105, 104, 118, 115, 169, 112, 117, 121, 127, 119, 114, 120, 118, 128, 111, 120, 135, 115, 120, 105, 111, 105, 116, 118, 111, 120, 139, 119, 117, 117, 112, 123, 120, 125, 133, 95, 123, 119, 127, 119, 99, 107, 120, 101, 119, 119, 118, 123, 113, 120, 114, 115, 99, 120, 185, 131, 106, 128, 122, 118, 119, 108, 121, 115, 117, 131, 128, 110, 106, 119, 123, 113, 114, 104, 118, 123, 119, 108, 117, 124, 118, 117, 123, 124, 125, 111, 122, 115, 113, 119, 112, 116, 107, 129, 109, 95, 112, 119, 117, 108, 121, 117, 104, 115, 121, 106, 115, 128, 119, 122, 113, 128, 116, 114, 107, 125, 120, 116, 120, 93, 120, 116, 117, 108, 112, 112, 118, 108, 114, 103, 112, 122, 123, 126, 110, 122, 112, 120, 114, 122, 113, 119, 125, 116, 118, 109, 112, 101, 110, 121, 122, 102, 109, 111, 119, 107, 116, 124, 115, 105, 100, 113, 132, 107, 118, 120, 98, 116, 97, 108, 132, 112, 110, 117, 112, 98, 127, 125, 118, 111, 122, 129, 107, 117, 117, 110, 116, 118, 120, 116, 116, 133, 122, 128, 119, 120, 103, 124, 109, 86, 128, 120, 127, 124, 135, 130, 147, 126, 121, 109, 98, 106, 101, 118, 115, 128, 119, 118, 118, 117, 99, 118, 104, 102, 123, 113, 101, 102, 133, 110, 148, 115, 114, 88, 108, 122, 109, 103, 107, 118, 122, 117, 113, 116, 106, 103, 128, 108, 99, 118, 111, 113, 113, 111, 112, 108, 129, 102, 101, 114, 113, 101, 118, 99, 109, 115, 119, 117, 108, 112, 92, 112, 78, 115, 115, 104, 121, 101, 125, 111, 109, 111, 120, 112, 107, 126, 125, 118, 129, 114, 114, 115, 106, 112, 129, 121, 111, 115, 88, 115, 88, 108, 119, 114, 128, 113, 127, 106, 100, 116, 121, 134, 112, 106, 119, 107, 103, 116, 110, 130, 103, 116, 113, 103, 128, 101, 107, 100, 96, 105, 126, 110, 132, 108, 92, 126, 112, 100, 113, 108, 114, 114, 110, 121, 118, 116, 98, 122, 106, 121, 114, 110, 111, 100, 118, 125, 118, 111, 118, 114, 139, 118, 119, 102, 114, 105, 121, 108, 108, 96, 110, 120, 120, 124, 109, 101, 125, 117, 139, 126, 112, 113, 117, 121, 114, 98, 116, 114, 126, 122, 103, 120, 98, 126, 117, 116, 117, 115, 114, 109, 119, 102, 118, 110, 99, 107, 111, 113, 119, 125, 114, 115, 121, 104, 117, 125, 115, 106, 123, 117, 125, 100, 98, 140, 109, 116, 123, 104, 93, 108, 109, 106, 109, 120, 122, 130, 114, 108, 127, 107, 127, 128, 128, 121, 124, 114, 108, 115, 111, 120, 121, 135, 114, 130, 115, 131, 119, 123, 124, 113, 112, 109, 116, 112, 113, 115, 132, 101, 112, 117, 123, 98, 126, 121, 132, 135, 127, 117, 91, 119, 104, 126, 126, 106, 123, 118, 104, 124, 101, 109, 119, 125, 123, 115, 91, 108, 122, 128, 128, 112, 111, 100, 113, 123, 108, 113, 115, 126, 120, 101, 122, 122, 112, 114, 112, 124, 115, 121, 113, 95, 122, 116, 111, 120, 124, 115, 95, 133, 119, 106, 123, 133, 96, 116, 102, 114, 127, 142, 131, 104, 114, 108, 120, 116, 111, 128, 113, 102, 116, 119, 111, 118, 95, 117, 112, 112, 113, 127, 121, 125, 117, 116, 115, 115, 120, 118, 110, 107, 125, 108, 129, 137, 116, 120, 114, 126, 116, 112, 113, 126, 119, 125, 121, 98, 116, 124, 122, 128, 102, 119, 126, 83, 121, 110, 119, 90, 121, 119, 111, 119, 107, 117, 119, 109, 113, 131, 106, 121, 125, 110, 122, 120, 129, 107, 109, 111, 104, 121, 105, 135, 108, 106, 109, 125, 84, 121, 113, 118, 124, 104, 106, 134, 109, 130, 104, 123, 114, 106, 120, 111, 105, 138, 118, 112, 117, 114, 120, 132, 98, 128, 108, 123, 110, 121, 115, 112, 114, 90, 135, 108, 109, 124, 98, 116, 122, 132, 106, 114, 122, 110, 113, 110, 125, 105, 132, 108, 120, 116, 119, 113, 116, 116, 86, 98, 108, 127, 142, 120, 108, 115, 104, 116, 113, 120, 112, 119, 98, 113, 100, 113, 118, 134, 106, 109, 126, 115, 122, 117, 126, 118, 122, 111, 121, 139, 120, 113, 128, 104, 113, 120, 127, 117, 124, 116, 121, 110, 110, 107, 116, 122, 109, 124, 106, 107, 132, 114, 115, 118, 123, 114, 119, 108, 114, 123, 111, 97, 114, 119, 116, 114, 112, 111, 118, 117, 121, 121, 122, 107, 119, 115, 105, 117, 111, 114, 103, 105, 122, 104, 119, 111, 115, 110, 118, 127, 124, 102, 123, 128, 121, 113, 112, 125, 150, 119, 122, 110, 111, 117, 117, 107, 113, 119, 111, 111, 110, 119, 123, 110, 108, 116, 125, 125, 115, 118, 115, 105, 121, 111, 114, 124, 130, 110, 106, 118, 114, 114, 105, 119, 111, 112, 133, 107, 130, 116, 103, 119, 126, 121, 122, 103, 111, 126, 122, 125, 116, 106, 120, 98, 108, 111, 139, 110, 121, 128, 105, 101, 98, 117, 117, 119, 111, 106, 126, 113, 117, 116, 125, 115, 113, 117, 123, 112, 113, 123, 125, 111, 120, 113, 120, 111, 108, 113, 135, 104, 115, 108, 105, 114, 115, 119, 124, 106, 124, 114, 120, 86, 124, 115, 114, 112, 104, 103, 115, 113, 115, 114, 119, 122, 131, 111, 128, 112, 119, 122, 144, 113, 118, 110, 117, 119, 119, 115, 116, 125, 114, 118, 116, 104, 122, 114, 112, 119, 119, 108, 113, 115, 116, 132, 110, 120, 121, 127, 114, 116, 122, 95, 105, 110, 103, 107, 107, 107, 111, 116, 107, 115, 119, 119, 123, 131, 120, 122, 118, 113, 116, 118, 122, 115, 113, 116, 116, 139, 135, 112, 110, 116, 123, 117, 109, 98, 116, 113, 121, 116, 111, 111, 110, 123, 107, 118, 115, 118, 117, 107, 114, 124, 113, 125, 107, 128, 110, 121, 110, 111, 126, 107, 120, 112, 119, 115, 110, 114, 109, 114, 118, 124, 111, 113, 112, 120, 116, 127, 110, 131, 121, 119, 119, 121, 127, 115, 102, 108, 120, 98, 120, 111, 104, 116, 115, 109, 114, 108, 121, 120, 106, 116, 119, 123, 115, 117, 106, 116, 107, 116, 114, 115, 108, 115, 120, 116, 133, 118, 126, 125, 125, 124, 110, 110, 114, 120, 118, 111, 129, 120, 99, 125, 118, 112, 114, 115, 121, 126, 113, 110, 109, 111, 124, 123, 118, 109, 113, 123, 104, 117, 117, 123, 112, 112, 140, 125, 113, 114, 123, 115, 119, 100, 121, 124, 120, 121, 111, 116, 118, 117, 104, 124, 112, 126, 117, 91, 113, 119, 117, 114, 116, 113, 119, 116, 114, 107, 131, 114, 105, 115, 119, 116, 125, 107, 116, 112, 104, 111, 120, 106, 118, 123, 114, 120, 115, 93, 115, 97, 123, 110, 122, 106, 114, 103, 115, 117, 116, 115, 120, 124, 116, 117, 118, 111, 116, 123, 118, 120, 113, 114, 126, 118, 122, 125, 127, 123, 112, 107, 112, 96, 112, 121, 127, 114, 108, 123, 117, 106, 113, 114, 116, 117, 108, 123, 120, 119, 113, 119, 116, 105, 116, 126, 106, 112, 119, 116, 111, 106, 109, 114, 121, 112, 104, 115, 126, 123, 118, 113, 111, 109, 117, 116, 110, 121, 116, 112, 114, 113, 118, 113, 106, 110, 123, 117, 134, 113, 129, 121, 115, 113, 117, 117, 108, 121, 130, 110, 111, 120, 118, 123, 113, 118, 128, 122, 115, 106, 117, 113, 115, 112, 105, 106, 121, 116, 121, 119, 126, 117, 111, 104, 121, 120, 107, 115, 121, 113, 111, 117, 119, 111, 119, 116, 130, 126, 109, 116, 115, 116, 126, 113, 121, 114, 111, 119, 123, 118, 122, 106, 117, 110, 111, 110, 144, 122, 124, 114, 109, 121, 114, 112, 100, 124, 112, 128, 118, 116, 121, 120, 107, 124, 119, 110, 117, 121, 124, 117, 109, 117, 115, 117, 120, 114, 110, 117, 112, 118, 109, 130, 113, 118, 111, 118, 111, 116, 119, 120, 135, 120, 117, 131, 128, 106, 130, 118, 115, 122, 127, 126, 115, 111, 123, 118, 112, 123, 109, 119, 122, 121, 110, 103, 129, 116, 117, 122, 136, 128, 130, 122, 132, 136, 146, 116, 121, 113, 117, 110, 112, 108, 113, 118, 121, 117, 120, 115, 113, 108, 102, 116, 112, 125, 117, 117, 115, 122, 110, 113, 115, 117, 106, 118, 110, 105, 125, 121, 117, 116, 114, 110, 111, 118, 112, 124, 124, 115, 112, 120, 110, 118, 106, 120, 121, 125, 117, 123, 130, 119, 107, 117, 114, 114, 116, 113, 126, 112, 112, 105, 114, 91, 108, 117, 120, 112, 112, 115, 118, 119, 109, 120, 114, 99, 105, 124, 114, 121, 113, 123, 115, 111, 107, 111, 112, 125, 104, 114, 109, 117, 115, 111, 114, 120, 132, 126, 108, 112, 118, 114, 111, 123, 111, 119, 128, 114, 114, 112, 113, 115, 123, 119, 117, 111, 122, 124, 122, 120, 119, 119, 102, 113, 114, 121, 115, 118, 114, 114, 124, 120, 110, 116, 130, 112, 114, 126, 118, 106, 111, 115, 119, 123, 119, 116, 116, 112, 119, 130, 108, 112, 115, 124, 115, 115, 117, 115, 104, 123, 123, 112, 113, 127, 111, 114, 118, 110, 114, 128, 114, 114, 112, 127, 113, 123, 117, 117, 114, 120, 124, 114, 121, 107, 128, 125, 119, 104, 127, 116, 122, 114, 111, 131, 131, 121, 111, 112, 115, 118, 113, 117, 128, 116, 123, 104, 115, 116, 119, 115, 112, 107, 110, 115, 115, 114, 126, 119, 116, 125, 105, 124, 102, 118, 115, 106, 113, 107, 122, 120, 112, 125, 112, 111, 121, 115, 105, 117, 127, 119, 128, 105, 110, 124, 115, 112, 113, 118, 113, 115, 115, 122, 114, 124, 119, 116, 120, 124, 116, 116, 125, 120, 116, 127, 119, 122, 116, 122, 108, 112, 122, 114, 115, 114, 117, 127, 125, 122, 122, 119, 107, 115, 124, 121, 124, 114, 115, 107, 122, 112, 125, 116, 122, 104, 116, 115, 113, 109, 118, 114, 124, 110, 104, 92, 97, 132, 107, 126, 125, 118, 115, 117, 126, 116, 118, 115, 117, 113, 123, 110, 122, 111, 116, 109, 129, 114, 109, 122, 119, 110, 110, 111, 118, 110, 112, 115, 118, 114, 127, 119, 112, 118, 114, 111, 107, 107, 124, 114, 115, 114, 128, 111, 114, 117, 114, 125, 115, 107, 117, 104, 115, 119, 123, 111, 113, 110, 119, 111, 108, 119, 110, 115, 122, 125, 118, 112, 116, 113, 126, 112, 120, 117, 121, 114, 110, 113, 118, 110, 125, 115, 117, 118, 109, 118, 123, 110, 117, 110, 116, 104, 113, 123, 117, 114, 120, 113, 117, 110, 126, 110, 111, 121, 119, 115, 120, 125, 116, 120, 111, 113, 118, 118, 116, 122, 118, 124, 111, 114, 111, 112, 124, 127, 117, 108, 112, 115, 113, 118, 124, 119, 116, 117, 122, 111, 112, 117, 123, 107, 114, 111, 117, 97, 121, 121, 113, 114, 119, 122, 113, 116, 117, 113, 119, 114, 115, 116, 111, 110, 114, 117, 117, 110, 114, 118, 119, 110, 117, 118, 117, 117, 118, 108, 115, 116, 117, 119, 125, 116, 115, 107, 106, 109, 134, 114, 121, 120, 110, 114, 118, 122, 114, 114, 120, 114, 119, 116, 111, 125, 118, 113, 114, 106, 118, 116, 121, 112, 109, 115, 114, 121, 123, 120, 120, 107, 115, 108, 114, 108, 118, 116, 118, 109, 111, 116, 117, 112, 121, 120, 122, 105, 112, 115, 117, 118, 111, 122, 115, 109, 128, 106, 123, 118, 125, 116, 116, 110, 107, 117, 104, 110, 117, 114, 119, 114, 120, 105, 121, 120, 115, 116, 120, 119, 114, 116, 116, 111, 105, 122, 109, 119, 129, 118, 115, 115, 115, 119, 110, 117, 118, 119, 117, 115, 118, 111, 108, 103, 109, 110, 126, 115, 114, 113, 116, 112, 112, 118, 112, 124, 107, 127, 106, 119, 121, 117, 119, 119, 120, 125, 115, 120, 116, 114, 121, 118, 115, 118, 118, 102, 116, 116, 117, 120, 120, 128, 113, 116, 115, 118, 111, 113, 120, 112, 113, 118, 110, 117, 109, 110, 116, 118, 119, 123, 118, 114, 115, 118, 123, 117, 112, 122, 118, 121, 121, 122, 123, 113, 113, 112, 118, 113, 117, 113, 112, 116, 113, 121, 110, 122, 121, 111, 120, 118, 117, 122, 119, 125, 121, 124, 109, 116, 126, 117, 129, 116, 119, 118, 121, 118, 108, 115, 126, 122, 115, 108, 115, 120, 115, 115, 115, 113, 115, 110, 112, 117, 111, 107, 124, 108, 111, 113, 116, 108, 118, 111, 121, 112, 124, 110, 117, 116, 109, 111, 120, 121, 123, 118, 115, 114, 116, 120, 121, 124, 116, 121, 117, 108, 119, 118, 119, 118, 112, 118, 115, 117, 123, 128, 117, 113, 112, 115, 120, 118, 113, 112, 118, 105, 118, 110, 122, 101, 103, 107, 111, 111, 114, 119, 118, 119, 118, 123, 126, 113, 113, 125, 116, 121, 118, 111, 118, 112, 119, 116, 114, 107, 115, 116, 112, 114, 111, 117, 113, 112, 121, 117, 114, 113, 113, 111, 115, 111, 115, 114, 128, 115, 124, 110, 119, 122, 120, 124, 112, 114, 123, 117, 119, 118, 121, 111, 114, 103, 101, 114, 109, 114, 107, 119, 124, 112, 115, 99, 107, 117, 132, 97, 109, 122, 119, 112, 122, 106, 110, 130, 121, 102, 116, 111, 131, 104, 110, 118, 110, 110, 138, 118, 129, 116, 122, 117, 110, 118, 126, 123, 119, 112, 120, 112, 109, 122, 106, 128, 115, 114, 108, 128, 118, 103, 112, 114, 109, 96, 135, 134, 123, 119, 124, 128, 113, 113, 120, 125, 129, 135, 114, 111, 116, 115, 113, 133, 106, 115, 112, 106, 132, 115, 102, 110, 108, 102, 131, 109, 126, 122, 111, 109, 120, 107, 107, 132, 107, 122, 107, 110, 122, 118, 121, 116, 109, 125, 118, 130, 102, 121, 122, 139, 116, 98, 116, 114, 105, 104, 130, 129, 128, 100, 109, 117, 109, 112, 111, 113, 115, 113, 114, 114, 111, 122, 118, 120, 104, 118, 121, 110, 118, 118, 124, 124, 105, 124, 111, 118, 110, 107, 125, 109, 117, 109, 114, 102, 111, 117, 149, 113, 119, 107, 117, 105, 121, 116, 126, 122, 98, 129, 122, 114, 107, 112, 111, 121, 102, 105, 118, 132, 108, 118, 124, 126, 106, 98, 125, 124, 129, 109, 115, 100, 108, 100, 125, 100, 118, 123, 113, 123, 116, 118, 112, 115, 101, 113, 121, 108, 116, 106, 115, 123, 108, 109, 114, 109, 140, 110, 110, 111, 109, 119, 134, 117, 106, 143, 89, 109, 106, 116, 112, 118, 108, 104, 132, 117, 114, 118, 104, 124, 125, 113, 111, 109, 126, 122, 114, 120, 113, 125, 111, 117, 111, 123, 96, 116, 121, 120, 127, 121, 116, 112, 107, 112, 119, 105, 111, 124, 93, 120, 112, 133, 107, 107, 104, 127, 114, 134, 109, 125, 116, 115, 103, 128, 118, 104, 135, 135, 111, 112, 108, 112, 108, 107, 118, 128, 126, 121, 110, 118, 110, 108, 103, 109, 124, 114, 119, 120, 113, 111, 114, 118, 119, 134, 119, 120, 120, 114, 121, 119, 110, 107, 111, 139, 116, 112, 112, 108, 109, 117, 114, 115, 111, 116, 102, 118, 118, 110, 122, 121, 130, 127, 105, 111, 109, 131, 112, 113, 113, 112, 120, 104, 100, 113, 125, 124, 99, 141, 109, 117, 103, 106, 127, 116, 115, 114, 112, 109, 119, 120, 107, 109, 115, 109, 123, 130, 109, 130, 120, 109, 141, 131, 119, 104, 124, 106, 99, 114, 108, 114, 110, 120, 110, 121, 104, 130, 100, 125, 103, 119, 117, 108, 121, 104, 115, 108, 114, 107, 110, 109, 124, 111, 114, 113, 107, 123, 123, 96, 118, 131, 122, 141, 133, 116, 104, 117, 113, 96, 112, 158, 115, 118, 104, 113, 131, 96, 122, 104, 113, 106, 111, 117, 97, 126, 120, 96, 108, 113, 113, 132, 115, 92, 102, 119, 107, 111, 95, 111, 133, 130, 112, 118, 98, 105, 116, 113, 110, 112, 116, 113, 118, 102, 98, 130, 133, 120, 118, 109, 126, 98, 111, 119, 108, 137, 111, 122, 114, 106, 112, 122, 105, 120, 112, 112, 128, 88, 107, 119, 119, 115, 124, 101, 109, 105, 97, 108, 109, 115, 117, 112, 124, 108, 121, 125, 103, 115, 125, 135, 126, 102, 113, 114, 120, 125, 127, 112, 120, 116, 106, 118, 117, 117, 119, 117, 124, 103, 130, 104, 108, 116, 136, 115, 110, 115, 116, 109, 107, 120, 117, 106, 115, 116, 105, 131, 127, 105, 109, 120, 108, 116, 108, 119, 111, 122, 129, 110, 127, 119, 117, 117, 118, 128, 112, 128, 106, 124, 112, 124, 119, 126, 123, 108, 117, 119, 129, 129, 101, 112, 111, 134, 116, 125, 121, 119, 120, 114, 108, 133, 131, 107, 115, 121, 114, 125, 106, 121, 130, 108, 123, 122, 122, 119, 105, 118, 133, 112, 132, 117, 112, 112, 107, 117, 127, 102, 120, 125, 110, 127, 114, 132, 110, 113, 129, 120, 112, 137, 111, 101, 119, 115, 128, 106, 114, 114, 109, 105, 110, 117, 120, 106, 114, 128, 117, 122, 125, 118, 100, 111, 122, 120, 118, 109, 131, 129, 111, 118, 105, 111, 108, 133, 120, 107, 121, 121, 124, 134, 115, 130, 119, 119, 122, 121, 110, 119, 111, 116, 120, 115, 125, 101, 118, 120, 101, 134, 116, 116, 116, 119, 127, 130, 112, 124, 121, 110, 120, 101, 118, 110, 115, 118, 98, 121, 122, 111, 115, 108, 107, 109, 109, 133, 110, 112, 115, 119, 126, 120, 117, 109, 124, 123, 134, 111, 115, 104, 117, 120, 111, 116, 109, 112, 116, 100, 118, 118, 118, 115, 113, 119, 107, 123, 121, 116, 127, 117, 114, 106, 117, 118, 124, 106, 107, 126, 129, 124, 118, 131, 119, 122, 114, 129, 103, 121, 118, 111, 120, 119, 118, 138, 101, 127, 117, 130, 115, 126, 121, 124, 120, 113, 108, 119, 105, 109, 106, 122, 127, 104, 111, 121, 122, 126, 116, 121, 122, 130, 115, 120, 114, 107, 123, 114, 112, 120, 109, 117, 118, 96, 121, 111, 113, 122, 127, 124, 106, 114, 116, 107, 152, 108, 114, 121, 116, 120, 125, 112, 119, 114, 111, 124, 124, 131, 119, 119, 122, 120, 105, 120, 121, 115, 125, 128, 117, 106, 118, 109, 115, 112, 139, 116, 113, 118, 105, 125, 122, 111, 137, 124, 111, 125, 109, 123, 121, 125, 103, 140, 122, 133, 120, 111, 119, 119, 112, 111, 103, 123, 115, 127, 113, 117, 108, 112, 138, 118, 117, 112, 116, 116, 118, 107, 108, 101, 104, 126, 121, 107, 107, 121, 117, 115, 117, 119, 121, 110, 105, 108, 121, 115, 113, 109, 131, 108, 108, 108, 129, 118, 129, 119, 104, 91, 118, 123, 109, 98, 111, 129, 112, 130, 128, 107, 138, 112, 106, 106, 104, 113, 119, 127, 107, 127, 119, 129, 116, 114, 141, 105, 108, 119, 150, 121, 113, 123, 115, 118, 111, 100, 112, 100, 119, 111, 108, 125, 123, 112, 108, 109, 128, 107, 123, 112, 110, 119, 134, 111, 126, 125, 110, 113, 126, 127, 112, 132, 131, 118, 119, 127, 128, 129, 121, 119, 117, 123, 118, 116, 116, 119, 105, 115, 114, 123, 97, 119, 110, 102, 117, 121, 117, 112, 135, 123, 100, 131, 129, 124, 121, 121, 104, 116, 125, 106, 98, 111, 105, 126, 109, 109, 119, 107, 130, 106, 105, 110, 120, 110, 113, 119, 109, 110, 132, 120, 113, 118, 123, 119, 112, 122, 120, 119, 120, 120, 127, 115, 106, 124, 127, 123, 120, 119, 125, 113, 116, 120, 112, 113, 128, 122, 116, 113, 116, 118, 114, 115, 113, 149, 123, 115, 126, 106, 124, 115, 105, 112, 117, 107, 106, 132, 123, 117, 106, 115, 105, 119, 120, 129, 118, 114, 113, 120, 110, 111, 114, 114, 98, 108, 110, 115, 106, 121, 116, 121, 127, 98, 115, 116, 115, 115, 116, 111, 113, 120, 103, 95, 117, 134, 108, 106, 101, 99, 115, 117, 124, 96, 103, 104, 130, 118, 112, 120, 128, 118, 116, 120, 125, 136, 111, 106, 117, 110, 117, 126, 119, 100, 110, 120, 118, 113, 104, 114, 124, 112, 120, 122, 102, 105, 114, 129, 127, 110, 121, 134, 102, 113, 124, 123, 130, 124, 109, 101, 109, 116, 112, 138, 125, 124, 118, 129, 122, 108, 127, 118, 114, 108, 122, 99, 117, 127, 109, 116, 139, 109, 108, 114, 128, 115, 129, 110, 133, 99, 128, 122, 109, 119, 119, 109, 122, 109, 110, 109, 117, 130, 120, 112, 107, 111, 116, 120, 115, 104, 133, 103, 129, 123, 89, 123, 114, 105, 115, 106, 122, 108, 122, 118, 110, 121, 114, 99, 137, 113, 116, 110, 124, 114, 116, 107, 110, 112, 124, 112, 119, 109, 135, 112, 114, 116, 107, 124, 116, 125, 109, 93, 116, 118, 118, 108, 114, 120, 104, 109, 117, 116, 116, 119, 111, 94, 128, 115, 112, 111, 115, 116, 122, 107, 106, 105, 112, 115, 119, 113, 117, 115, 113, 115, 116, 122, 122, 119, 115, 122, 130, 116, 108, 135, 113, 114, 108, 106, 112, 115, 123, 111, 112, 110, 112, 119, 120, 111, 109, 116, 117, 121, 103, 121, 108, 116, 124, 114, 127, 122, 113, 121, 118, 112, 127, 112, 110, 105, 106, 102, 127, 103, 108, 120, 112, 117, 111, 127, 122, 122, 120, 114, 124, 130, 95, 116, 117, 107, 115, 114, 120, 111, 115, 107, 106, 102, 117, 115, 122, 119, 115, 127, 118, 129, 118, 121, 119, 124, 117, 113, 116, 117, 116, 123, 117, 108, 116, 124, 113, 120, 129, 113, 107, 113, 130, 112, 128, 119, 105, 123, 104, 108, 115, 106, 119, 123, 116, 108, 111, 110, 124, 110, 101, 114, 115, 146, 127, 136, 110, 112, 130, 106, 115, 112, 116, 129, 117, 126, 110, 108, 127, 123, 115, 123, 119, 115, 127, 88, 103, 117, 120, 108, 109, 115, 116, 120, 109, 106, 118, 110, 124, 120, 111, 126, 119, 106, 135, 116, 112, 129, 108, 107, 124, 132, 120, 107, 123, 109, 112, 119, 115, 120, 119, 146, 117, 104, 116, 101, 111, 114, 126, 113, 112, 112, 122, 123, 110, 113, 110, 102, 106, 118, 104, 115, 120, 114, 113, 114, 118, 120, 130, 108, 118, 127, 128, 125, 113, 119, 104, 125, 120, 119, 134, 117, 103, 107, 109, 115, 142, 93, 110, 98, 88, 131, 122, 92, 110, 129, 114, 122, 105, 103, 127, 146, 119, 101, 92, 176, 95, 140, 107, 114, 121, 149, 112, 103, 125, 112, 122, 122, 125, 128, 116, 136, 94, 146, 120, 105, 121, 107, 88, 127, 112, 130, 113, 110, 131, 101, 107, 104, 101, 134, 168, 109, 92, 84, 99, 113, 124, 115, 121, 130, 105, 125, 93, 95, 89, 119, 108, 105, 100, 98, 92, 165, 91, 89, 118, 136, 86, 116, 102, 117, 131, 116, 106, 111, 104, 97, 122, 101, 95, 125, 96, 124, 172, 106, 95, 129, 83, 81, 107, 115, 114, 139, 116, 90, 109, 113, 99, 98, 125, 99, 103, 122, 95, 97, 100, 120, 123, 117, 126, 106, 117, 116, 113, 126, 155, 124, 84, 83, 96, 106, 111, 111, 126, 102, 101, 94, 98, 110, 104, 113, 111, 95, 99, 93, 115, 86, 131, 123, 133, 110, 145, 112, 106, 131, 105, 104, 137, 69, 105, 126, 119, 147, 113, 113, 121, 124, 115, 98, 98, 108, 122, 147, 107, 110, 134, 94, 93, 127, 130, 132, 133, 107, 105, 125, 113, 90, 115, 134, 119, 108, 91, 120, 110, 109, 114, 106, 130, 81, 153, 93, 136, 119, 114, 104, 100, 100, 102, 115, 110, 98, 100, 113, 141, 115, 92, 103, 103, 88, 108, 97, 105, 126, 120, 117, 129, 132, 110, 96, 121, 109, 115, 84, 104, 95, 65, 119, 91, 131, 118, 117, 129, 91, 112, 116, 90, 119, 131, 111, 96, 101, 138, 111, 125, 113, 155, 111, 104, 108, 118, 120, 106, 114, 144, 103, 94, 110, 105, 97, 94, 134, 122, 112, 114, 103, 98, 123, 112, 99, 142, 113, 96, 106, 101, 88, 108, 128, 97, 109, 58, 182, 133, 142, 84, 123, 113, 152, 119, 98, 122, 71, 134, 100, 107, 104, 143, 147, 116, 109, 86, 99, 117, 122, 127, 153, 96, 116, 110, 124, 118, 98, 167, 98, 127, 104, 114, 163, 125, 110, 95, 105, 118, 105, 65, 112, 104, 136, 116, 129, 104, 117, 117, 120, 169, 108, 102, 106, 134, 90, 116, 101, 90, 113, 112, 101, 107, 129, 96, 121, 105, 116, 127, 85, 99, 101, 105, 120, 93, 112, 113, 124, 115, 118, 138, 106, 113, 101, 136, 116, 106, 93, 125, 124, 107, 140, 117, 107, 135, 120, 112, 92, 116, 132, 124, 108, 92, 100, 101, 123, 120, 85, 151, 107, 94, 108, 124, 106, 120, 111, 133, 105, 114, 108, 143, 96, 130, 138, 96, 126, 99, 107, 121, 115, 96, 79, 108, 105, 120, 98, 76, 113, 138, 99, 101, 106, 167, 89, 92, 85, 98, 139, 126, 122, 76, 111, 110, 124, 120, 98, 87, 101, 121, 143, 125, 102, 123, 102, 111, 149, 112, 136, 108, 121, 95, 119, 113, 124, 110, 142, 116, 95, 112, 115, 61, 117, 87, 146, 143, 109, 97, 124, 108, 115, 115, 102, 106, 119, 113, 121, 103, 167, 103, 101, 111, 103, 102, 101, 129, 119, 101, 135, 85, 116, 128, 115, 107, 149, 128, 134, 103, 113, 112, 114, 116, 120, 112, 112, 106, 115, 104, 110, 117, 122, 113, 126, 108, 94, 121, 110, 100, 122, 122, 105, 114, 133, 114, 117, 101, 132, 124, 115, 96, 120, 96, 114, 106, 112, 124, 115, 118, 108, 120, 110, 126, 121, 121, 113, 121, 98, 102, 118, 130, 164, 122, 89, 105, 110, 107, 126, 98, 97, 113, 120, 114, 116, 117, 106, 112, 102, 111, 136, 124, 121, 112, 108, 108, 110, 121, 109, 114, 123, 109, 106, 109, 117, 110, 104, 121, 122, 132, 113, 115, 119, 121, 123, 104, 122, 118, 106, 124, 116, 115, 125, 115, 101, 116, 105, 135, 136, 116, 111, 125, 105, 109, 115, 111, 98, 113, 106, 124, 104, 94, 126, 107, 124, 110, 129, 104, 121, 113, 122, 113, 132, 112, 113, 116, 109, 112, 101, 117, 92, 122, 130, 108, 103, 133, 124, 113, 134, 114, 117, 110, 115, 116, 107, 115, 117, 108, 123, 113, 118, 123, 121, 105, 150, 116, 105, 114, 109, 124, 119, 128, 120, 104, 107, 120, 102, 106, 111, 106, 103, 125, 111, 148, 98, 116, 116, 120, 110, 111, 108, 112, 117, 115, 118, 120, 121, 122, 124, 110, 129, 115, 118, 111, 117, 111, 141, 121, 117, 110, 117, 105, 130, 111, 128, 120, 110, 120, 111, 111, 111, 123, 117, 140, 126, 108, 113, 104, 113, 101, 113, 101, 123, 105, 98, 100, 98, 126, 130, 111, 96, 128, 98, 103, 110, 106, 108, 114, 112, 127, 118, 113, 121, 120, 128, 121, 120, 142, 117, 132, 109, 102, 122, 125, 114, 122, 118, 120, 131, 126, 121, 103, 104, 107, 150, 116, 116, 117, 137, 132, 124, 115, 122, 124, 124, 110, 107, 118, 118, 135, 111, 82, 111, 104, 117, 109, 134, 123, 112, 116, 114, 105, 118, 122, 126, 105, 111, 105, 103, 112, 126, 122, 131, 119, 129, 158, 121, 102, 114, 132, 118, 125, 104, 115, 113, 102, 100, 124, 114, 111, 119, 112, 116, 120, 116, 125, 94, 109, 124, 117, 132, 112, 138, 103, 108, 101, 107, 128, 106, 131, 120, 127, 113, 111, 119, 120, 108, 124, 120, 115, 104, 119, 106, 120, 100, 140, 100, 132, 116, 103, 115, 100, 106, 143, 104, 117, 108, 110, 113, 114, 122, 128, 118, 124, 121, 109, 137, 117, 116, 115, 109, 121, 117, 99, 123, 100, 108, 111, 107, 110, 126, 104, 131, 106, 119, 135, 116, 99, 117, 110, 118, 110, 118, 135, 104, 117, 95, 118, 113, 113, 101, 122, 98, 121, 135, 117, 117, 121, 103, 122, 110, 110, 105, 116, 107, 112, 118, 107, 114, 124, 111, 109, 118, 114, 136, 128, 121, 102, 115, 115, 94, 124, 112, 126, 106, 126, 117, 110, 117, 125, 117, 110, 119, 117, 127, 108, 137, 119, 124, 115, 118, 104, 118, 114, 138, 114, 101, 125, 109, 115, 133, 111, 99, 141, 98, 110, 125, 115, 111, 110, 119, 108, 102, 117, 101, 113, 93, 99, 104, 113, 122, 130, 124, 122, 127, 133, 130, 117, 114, 107, 107, 116, 118, 130, 101, 112, 156, 107, 100, 104, 119, 108, 99, 154, 100, 125, 118, 107, 104, 121, 126, 101, 122, 110, 128, 109, 117, 113, 113, 107, 99, 117, 113, 120, 112, 118, 124, 115, 115, 125, 119, 134, 116, 115, 123, 110, 126, 108, 113, 109, 90, 118, 134, 111, 105, 117, 99, 105, 125, 99, 110, 140, 134, 109, 126, 109, 122, 100, 118, 115, 110, 110, 120, 116, 114, 104, 124, 100, 130, 120, 136, 111, 96, 127, 108, 123, 127, 117, 116, 108, 100, 123, 97, 100, 112, 111, 118, 106, 108, 116, 119, 105, 118, 112, 133, 103, 118, 126, 104, 133, 102, 115, 93, 95, 106, 123, 110, 114, 101, 108, 111, 132, 110, 118, 124, 114, 119, 140, 119, 108, 107, 129, 105, 110, 120, 120, 123, 115, 110, 114, 129, 105, 114, 121, 115, 120, 134, 124, 110, 135, 128, 123, 116, 110, 105, 122, 113, 113, 118, 129, 126, 137, 108, 117, 109, 115, 127, 99, 116, 107, 126, 135, 122, 130, 113, 125, 117, 113, 115, 123, 116, 110, 111, 113, 108, 113, 104, 130, 112, 110, 123, 129, 124, 114, 137, 111, 132, 111, 127, 101, 136, 124, 123, 108, 111, 120, 113, 115, 121, 135, 119, 118, 106, 124, 116, 106, 115, 114, 120, 134, 106, 116, 105, 101, 113, 115, 119, 129, 115, 110, 136, 123, 109, 117, 125, 112, 111, 101, 76, 120, 130, 116, 118, 134, 114, 107, 93, 99, 96, 113, 121, 126, 100, 120, 120, 123, 129, 128, 111, 139, 103, 103, 122, 100, 112, 92, 117, 119, 117, 117, 121, 105, 116, 117, 127, 119, 136, 92, 129, 119, 121, 132, 110, 137, 115, 115, 120, 113, 121, 131, 97, 102, 93, 114, 107, 118, 125, 124, 110, 107, 109, 125, 131, 125, 104, 130, 139, 112, 104, 117, 111, 113, 126, 108, 127, 126, 126, 117, 108, 126, 111, 129, 115, 131, 100, 136, 118, 109, 106, 113, 115, 141, 128, 116, 104, 114, 116, 113, 113, 126, 125, 116, 113, 112, 110, 116, 121, 119, 112, 134, 119, 118, 113, 127, 120, 129, 95, 116, 126, 123, 105, 103, 112, 114, 132, 106, 115, 109, 109, 118, 101, 121, 125, 106, 116, 118, 132, 116, 118, 118, 107, 121, 107, 134, 111, 130, 107, 107, 124, 128, 119, 116, 102, 116, 116, 114, 115, 101, 126, 117, 111, 94, 118, 115, 120, 118, 120, 113, 116, 110, 133, 153, 117, 111, 129, 118, 112, 111, 110, 99, 107, 109, 109, 97, 119, 126, 123, 134, 120, 132, 116, 114, 143, 115, 108, 117, 128, 103, 119, 119, 124, 106, 119, 112, 110, 104, 128, 94, 117, 112, 127, 101, 106, 127, 118, 127, 113, 128, 112, 98, 126, 119, 102, 116, 119, 103, 109, 113, 103, 130, 130, 113, 124, 119, 111, 125, 119, 101, 144, 113, 114, 104, 135, 138, 120, 115, 119, 126, 134, 100, 104, 112, 98, 119, 115, 144, 111, 118, 103, 115, 113, 115, 118, 103, 98, 111, 111, 112, 126, 124, 119, 126, 96, 114, 96, 127, 106, 102, 112, 115, 119, 126, 121, 108, 123, 124, 97, 105, 140, 125, 106, 126, 96, 84, 118, 107, 115, 103, 128, 113, 93, 129, 136, 115, 121, 141, 128, 109, 132, 92, 101, 119, 96, 131, 119, 118, 152, 113, 106, 112, 107, 104, 111, 119, 117, 103, 117, 125, 104, 135, 135, 102, 119, 114, 109, 96, 139, 112, 119, 133, 89, 133, 117, 124, 89, 101, 120, 126, 109, 112, 115, 104, 114, 122, 120, 117, 133, 131, 113, 134, 98, 114, 110, 115, 110, 100, 112, 97, 120, 95, 129, 102, 108, 137, 122, 116, 122, 119, 117, 118, 117, 120, 109, 121, 132, 122, 119, 110, 117, 106, 122, 103, 117, 107, 102, 153, 125, 105, 126, 112, 129, 109, 113, 146, 143, 93, 120, 130, 133, 113, 101, 111, 125, 111, 115, 104, 134, 147, 118, 104, 128, 117, 87, 95, 137, 125, 111, 100, 121, 108, 113, 109, 113, 111, 93, 110, 132, 136, 121, 106, 116, 118, 129, 139, 125, 114, 101, 123, 97, 117, 109, 120, 109, 126, 157, 108, 107, 124, 103, 110, 105, 108, 115, 110, 115, 125, 106, 152, 111, 105, 112, 100, 120, 103, 118, 92, 87, 127, 118, 109, 103, 115, 103, 145, 108, 113, 116, 107, 109, 123, 118, 115, 105, 111, 109, 122, 125, 109, 119, 116, 100, 114, 126, 110, 128, 124, 114, 117, 138, 100, 135, 107, 113, 105, 115, 142, 99, 124, 121, 115, 110, 124, 114, 107, 94, 120, 107, 119, 120, 126, 122, 107, 117, 114, 119, 118, 109, 109, 98, 128, 110, 103, 121, 117, 115, 96, 120, 109, 112, 113, 109, 131, 134, 112, 121, 121, 130, 137, 105, 113, 144, 141, 128, 121, 118, 103, 148, 134, 130, 84, 122, 116, 96, 119, 128, 105, 105, 105, 124, 105, 110, 132, 128, 121, 123, 143, 120, 132, 119, 105, 95, 109, 99, 110, 130, 103, 86, 129, 119, 110, 96, 108, 113, 94, 119, 108, 120, 118, 113, 127, 107, 108, 105, 122, 114, 131, 117, 111, 109, 109, 137, 99, 117, 108, 111, 127, 118, 102, 79, 120, 99, 114, 119, 106, 132, 105, 114, 108, 163, 111, 110, 104, 114, 104, 109, 105, 108, 119, 110, 114, 118, 121, 118, 126, 123, 96, 131, 116, 114, 133, 121, 107, 97, 113, 114, 121, 154, 113, 103, 125, 113, 133, 119, 125, 90, 102, 117, 134, 117, 104, 101, 120, 123, 104, 123, 92, 98, 113, 123, 117, 108, 120, 125, 107, 121, 108, 107, 127, 119, 95, 148, 126, 121, 138, 115, 128, 121, 130, 121, 126, 115, 127, 118, 120, 104, 139, 126, 110, 120, 105, 128, 118, 122, 121, 117, 119, 90, 107, 104, 117, 104, 124, 133, 97, 111, 114, 107, 135, 110, 126, 119, 109, 112, 101, 112, 106, 114, 121, 128, 120, 114, 106, 102, 127, 122, 119, 110, 114, 137, 131, 109, 110, 115, 115, 128, 121, 91, 123, 119, 115, 109, 116, 105, 102, 125, 114, 113, 140, 123, 118, 128, 114, 114, 121, 113, 127, 117, 122, 108, 111, 134, 116, 119, 111, 126, 112, 130, 123, 116, 115, 130, 106, 104, 115, 108, 138, 116, 111, 133, 122, 130, 104, 97, 121, 118, 112, 105, 110, 124, 106, 119, 99, 106, 97, 117, 113, 124, 110, 93, 110, 119, 104, 120, 131, 130, 103, 100, 94, 131, 111, 95, 98, 119, 138, 111, 112, 103, 117, 118, 123, 115, 114, 103, 110, 114, 105, 98, 128, 120, 121, 105, 110, 104, 111, 110, 125, 126, 96, 118, 125, 129, 120, 115, 125, 121, 124, 104, 130, 124, 108, 121, 90, 119, 124, 109, 103, 113, 112, 129, 98, 118, 121, 118, 118, 107, 96, 121, 112, 106, 100, 107, 110, 112, 106, 111, 109, 116, 108, 128, 97, 103, 124, 111, 112, 126, 135, 117, 113, 113, 111, 129, 117, 121, 133, 109, 130, 122, 118, 120, 119, 125, 119, 108, 117, 93, 101, 113, 125, 111, 109, 112, 158, 126, 135, 111, 133, 136, 126, 98, 109, 123, 102, 111, 141, 111, 102, 112, 105, 115, 111, 123, 110, 114, 96, 117, 89, 99, 116, 120, 118, 100, 104, 124, 106, 102, 105, 127, 106, 102, 107, 113, 95, 118, 110, 118, 97, 107, 134, 105, 113, 119, 109, 113, 97, 109, 118, 122, 113, 113, 133, 101, 102, 122, 114, 120, 106, 108, 103, 120, 101, 112, 112, 107, 114, 99, 103, 88, 112, 121, 129, 118, 130, 118, 100, 118, 128, 116, 123, 115, 114, 95, 123, 111, 118, 122, 108, 113, 92, 130, 118, 116, 126, 112, 107, 135, 131, 136, 124, 99, 87, 117, 117, 94, 112, 120, 119, 133, 122, 101, 122, 115, 114, 121, 118, 130, 106, 136, 112, 104, 104, 125, 121, 111, 83, 122, 107, 117, 103, 78, 132, 126, 118, 96, 140, 110, 115, 110, 101, 109, 106, 115, 139, 101, 118, 105, 133, 83, 120, 111, 121, 126, 102, 119, 105, 146, 127, 114, 95, 112, 118, 113, 114, 127, 119, 124, 114, 106, 120, 116, 113, 130, 107, 166, 118, 111, 112, 103, 115, 121, 144, 122, 109, 111, 132, 107, 140, 125, 98, 116, 80, 112, 128, 117, 119, 121, 150, 114, 98, 127, 135, 102, 104, 115, 86, 105, 117, 110, 134, 111, 122, 115, 105, 107, 131, 110, 127, 108, 117, 125, 113, 137, 108, 108, 117, 123, 124, 109, 107, 92, 134, 118, 118, 112, 104, 113, 125, 115, 108, 107, 104, 121, 118, 96, 108, 97, 128, 112, 109, 100, 120, 109, 117, 110, 84, 118, 102, 116, 100, 121, 101, 103, 110, 108, 115, 108, 110, 121, 132, 120, 124, 120, 109, 121, 122, 104, 118, 111, 113, 115, 101, 113, 100, 112, 107, 117, 145, 126, 102, 83, 112, 135, 125, 113, 135, 106, 101, 118, 113, 102, 126, 99, 110, 134, 115, 114, 130, 113, 107, 123, 88, 132, 103, 107, 88, 109, 113, 102, 99, 143, 100, 127, 125, 99, 121, 123, 125, 111, 104, 121, 126, 106, 130, 110, 144, 121, 123, 122, 103, 102, 113, 120, 112, 124, 109, 117, 123, 100, 119, 115, 109, 111, 105, 113, 113, 119, 126, 122, 109, 126, 125, 106, 106, 112, 113, 119, 105, 115, 109, 107, 126, 115, 118, 109, 128, 109, 118, 117, 117, 118, 114, 122, 112, 113, 114, 109, 117, 116, 121, 115, 109, 113, 112, 128, 117, 125, 111, 124, 114, 117, 120, 108, 118, 125, 111, 117, 125, 110, 111, 110, 107, 118, 126, 114, 110, 114, 119, 116, 123, 115, 114, 114, 125, 110, 113, 125, 113, 122, 118, 113, 117, 108, 113, 119, 119, 111, 125, 114, 93, 122, 115, 118, 118, 104, 109, 116, 112, 122, 116, 113, 113, 123, 121, 116, 114, 111, 130, 120, 109, 114, 111, 119, 116, 117, 121, 114, 107, 113, 115, 119, 106, 121, 115, 121, 117, 124, 114, 117, 119, 115, 124, 114, 121, 123, 108, 105, 117, 119, 119, 112, 120, 124, 126, 106, 119, 121, 123, 105, 118, 119, 118, 123, 120, 113, 113, 114, 113, 126, 112, 115, 128, 108, 113, 104, 112, 122, 111, 124, 106, 117, 112, 121, 111, 121, 112, 110, 110, 110, 119, 123, 111, 115, 120, 108, 113, 122, 116, 109, 112, 120, 117, 126, 109, 114, 107, 112, 114, 117, 130, 121, 114, 116, 123, 120, 127, 109, 122, 114, 120, 103, 119, 112, 117, 114, 116, 113, 129, 113, 115, 125, 113, 116, 112, 107, 117, 120, 115, 115, 108, 111, 118, 107, 105, 117, 119, 120, 114, 114, 122, 111, 118, 118, 112, 117, 120, 128, 116, 110, 119, 117, 119, 105, 117, 106, 116, 106, 110, 114, 119, 108, 108, 114, 123, 110, 121, 121, 119, 114, 122, 116, 112, 126, 111, 111, 123, 119, 117, 147, 109, 111, 113, 117, 117, 110, 123, 112, 117, 111, 134, 121, 119, 113, 120, 117, 105, 116, 111, 118, 127, 117, 116, 112, 119, 109, 117, 127, 115, 116, 117, 132, 109, 107, 122, 109, 132, 115, 115, 114, 109, 120, 116, 111, 111, 126, 124, 114, 108, 124, 112, 113, 114, 116, 127, 119, 118, 115, 115, 119, 122, 120, 120, 97, 111, 113, 117, 122, 126, 123, 113, 115, 110, 111, 118, 115, 123, 121, 110, 122, 116, 115, 116, 120, 109, 118, 113, 112, 112, 108, 123, 110, 122, 115, 115, 116, 127, 117, 115, 105, 119, 109, 124, 121, 112, 119, 109, 119, 97, 116, 119, 127, 110, 112, 114, 113, 105, 111, 122, 134, 117, 108, 126, 114, 118, 110, 105, 113, 113, 119, 110, 125, 120, 115, 121, 121, 107, 128, 117, 118, 110, 120, 114, 112, 112, 101, 111, 119, 115, 119, 113, 116, 108, 106, 116, 117, 115, 113, 114, 120, 129, 119, 118, 120, 117, 116, 124, 107, 117, 105, 112, 97, 123, 110, 108, 112, 112, 112, 95, 113, 119, 115, 110, 116, 116, 119, 105, 110, 115, 113, 120, 126, 92, 119, 108, 118, 117, 113, 113, 113, 111, 122, 116, 118, 126, 112, 112, 115, 111, 118, 124, 123, 109, 114, 121, 113, 118, 112, 110, 124, 118, 111, 122, 106, 116, 113, 121, 116, 114, 113, 113, 116, 92, 97, 128, 106, 115, 129, 112, 92, 93, 119, 111, 138, 130, 113, 123, 95, 151, 116, 131, 106, 102, 131, 117, 105, 111, 122, 114, 95, 103, 113, 118, 123, 134, 114, 111, 132, 106, 139, 124, 112, 119, 123, 122, 137, 102, 116, 115, 102, 114, 113, 123, 112, 132, 123, 130, 114, 110, 88, 117, 111, 104, 123, 103, 114, 93, 76, 114, 123, 113, 117, 120, 110, 115, 100, 112, 104, 124, 110, 112, 122, 101, 117, 125, 76, 123, 121, 126, 133, 128, 78, 117, 120, 128, 165, 104, 120, 94, 115, 119, 102, 135, 101, 107, 105, 102, 116, 101, 102, 134, 103, 124, 101, 129, 113, 97, 121, 102, 122, 103, 125, 106, 110, 124, 104, 122, 120, 122, 114, 118, 110, 100, 124, 118, 109, 101, 121, 127, 123, 114, 128, 108, 115, 121, 130, 129, 105, 94, 120, 120, 106, 111, 124, 111, 118, 101, 116, 101, 116, 111, 116, 111, 101, 109, 102, 74, 121, 106, 110, 111, 117, 111, 117, 116, 107, 103, 108, 124, 115, 112, 106, 112, 129, 125, 105, 113, 105, 124, 113, 130, 97, 108, 113, 121, 111, 100, 127, 124, 124, 146, 120, 139, 120, 105, 109, 113, 108, 127, 113, 118, 102, 92, 117, 107, 115, 116, 111, 127, 121, 129, 115, 116, 119, 118, 108, 117, 117, 109, 113, 109, 118, 99, 113, 116, 121, 126, 136, 109, 137, 119, 93, 119, 147, 119, 119, 104, 121, 100, 111, 108, 134, 87, 124, 100, 107, 121, 121, 128, 113, 118, 125, 121, 122, 115, 102, 99, 101, 126, 111, 107, 115, 113, 106, 147, 110, 97, 114, 113, 115, 124, 117, 115, 124, 151, 138, 112, 113, 102, 118, 127, 127, 133, 117, 115, 111, 123, 128, 127, 118, 101, 104, 114, 121, 114, 102, 104, 131, 122, 116, 97, 112, 127, 118, 115, 108, 111, 111, 115, 145, 115, 110, 101, 126, 107, 107, 120, 123, 126, 112, 106, 99, 126, 84, 94, 133, 114, 113, 125, 104, 114, 118, 140, 109, 140, 126, 98, 114, 109, 133, 110, 116, 118, 138, 125, 131, 123, 62, 110, 130, 114, 110, 126, 126, 113, 99, 122, 92, 101, 125, 108, 103, 109, 109, 117, 101, 118, 111, 115, 114, 125, 93, 122, 108, 118, 127, 121, 113, 105, 124, 124, 140, 109, 127, 110, 117, 118, 109, 121, 126, 164, 121, 109, 104, 96, 153, 85, 120, 116, 107, 120, 107, 117, 126, 119, 110, 115, 116, 117, 129, 114, 125, 120, 134, 122, 97, 105, 125, 125, 90, 111, 106, 126, 109, 68, 116, 115, 117, 114, 118, 109, 107, 107, 98, 129, 119, 114, 118, 111, 112, 128, 116, 112, 114, 86, 116, 115, 122, 119, 125, 104, 105, 108, 123, 104, 139, 120, 111, 99, 128, 127, 115, 126, 118, 116, 147, 105, 131, 109, 106, 129, 106, 109, 124, 127, 106, 131, 114, 121, 118, 89, 118, 116, 119, 126, 110, 123, 111, 125, 111, 115, 106, 129, 115, 106, 103, 116, 121, 104, 122, 110, 109, 100, 97, 109, 120, 104, 121, 114, 109, 109, 116, 115, 123, 110, 119, 120, 119, 127, 112, 122, 121, 113, 117, 137, 110, 107, 120, 111, 134, 125, 120, 114, 112, 134, 113, 105, 104, 117, 131, 111, 117, 124, 129, 122, 121, 106, 101, 119, 123, 108, 112, 103, 123, 115, 110, 114, 129, 114, 109, 125, 121, 120, 110, 116, 116, 115, 114, 122, 116, 111, 109, 115, 130, 106, 122, 122, 120, 116, 106, 132, 110, 117, 119, 123, 114, 142, 113, 116, 113, 128, 120, 109, 122, 126, 128, 116, 116, 109, 112, 105, 114, 122, 111, 108, 107, 113, 107, 118, 102, 111, 115, 119, 129, 98, 112, 119, 110, 120, 119, 117, 118, 124, 131, 120, 110, 101, 128, 110, 141, 114, 99, 113, 113, 140, 123, 123, 106, 107, 127, 135, 108, 117, 116, 143, 136, 131, 117, 117, 95, 146, 118, 120, 104, 116, 113, 128, 117, 113, 112, 116, 108, 104, 112, 119, 99, 109, 108, 105, 111, 118, 123, 112, 145, 122, 94, 109, 135, 111, 117, 110, 122, 114, 111, 98, 124, 124, 118, 112, 108, 109, 129, 108, 123, 111, 130, 128, 124, 121, 120, 111, 122, 113, 124, 106, 111, 119, 102, 119, 137, 100, 114, 105, 110, 117, 121, 115, 113, 105, 120, 114, 133, 103, 118, 121, 134, 111, 99, 123, 122, 105, 101, 115, 126, 106, 97, 120, 117, 117, 109, 126, 118, 102, 110, 115, 121, 109, 115, 103, 115, 121, 125, 120, 124, 119, 107, 118, 116, 114, 114, 129, 116, 110, 114, 112, 114, 130, 118, 113, 132, 121, 124, 107, 122, 104, 120, 124, 134, 118, 112, 123, 120, 85, 134, 124, 116, 122, 119, 112, 118, 114, 108, 96, 131, 115, 126, 105, 105, 116, 116, 129, 108, 115, 99, 121, 113, 94, 114, 133, 120, 131, 118, 110, 125, 109, 96, 128, 130, 117, 111, 128, 112, 105, 124, 123, 111, 114, 109, 110, 108, 113, 125, 119, 104, 119, 121, 112, 144, 126, 101, 104, 122, 119, 114, 122, 119, 113, 123, 113, 122, 114, 102, 110, 118, 105, 109, 122, 110, 118, 129, 107, 102, 117, 123, 133, 121, 113, 120, 102, 105, 111, 113, 106, 89, 112, 115, 117, 110, 116, 121, 116, 119, 95, 117, 120, 120, 109, 127, 109, 126, 112, 119, 109, 122, 113, 127, 110, 117, 118, 120, 115, 112, 117, 128, 134, 128, 99, 119, 107, 112, 113, 113, 113, 102, 108, 120, 117, 101, 103, 103, 113, 107, 107, 133, 116, 129, 104, 95, 112, 114, 126, 125, 138, 116, 135, 106, 100, 111, 127, 111, 112, 107, 108, 116, 120, 104, 112, 121, 116, 123, 103, 115, 112, 109, 112, 93, 121, 111, 119, 99, 102, 111, 129, 121, 112, 119, 127, 128, 116, 131, 108, 150, 118, 123, 118, 113, 109, 131, 119, 113, 115, 115, 91, 119, 116, 119, 112, 141, 106, 127, 117, 111, 111, 119, 121, 108, 110, 120, 112, 113, 113, 116, 108, 133, 111, 121, 101, 105, 109, 122, 133, 110, 103, 126, 123, 112, 126, 107, 139, 116, 122, 117, 110, 109, 110, 113, 125, 109, 124, 115, 93, 118, 115, 116, 112, 119, 108, 114, 123, 106, 106, 112, 117, 123, 117, 127, 115, 109, 118, 117, 112, 115, 111, 121, 117, 114, 118, 113, 120, 112, 110, 117, 113, 119, 116, 112, 118, 117, 121, 111, 118, 120, 117, 117, 121, 110, 109, 96, 116, 124, 118, 115, 123, 119, 116, 97, 113, 114, 118, 115, 114, 109, 121, 115, 130, 124, 122, 112, 121, 115, 117, 126, 110, 112, 131, 110, 114, 113, 107, 116, 120, 137, 115, 148, 121, 116, 117, 113, 130, 116, 117, 114, 106, 110, 114, 113, 106, 114, 114, 111, 115, 116, 111, 120, 113, 119, 122, 124, 110, 107, 114, 113, 107, 119, 120, 119, 106, 118, 116, 109, 119, 116, 109, 111, 119, 116, 113, 116, 113, 123, 115, 109, 115, 110, 112, 116, 114, 113, 107, 120, 112, 117, 108, 113, 111, 107, 116, 115, 117, 115, 114, 123, 106, 121, 112, 116, 112, 109, 122, 106, 119, 117, 118, 127, 118, 111, 108, 128, 114, 107, 121, 106, 119, 115, 129, 115, 114, 108, 129, 125, 118, 126, 123, 118, 111, 122, 123, 127, 119, 116, 122, 109, 81, 115, 88, 114, 117, 113, 111, 133, 105, 103, 119, 115, 93, 120, 110, 103, 122, 118, 119, 119, 112, 120, 125, 116, 124, 111, 132, 114, 112, 119, 113, 111, 121, 118, 119, 114, 118, 120, 109, 105, 116, 111, 113, 128, 118, 121, 117, 117, 114, 113, 112, 116, 118, 114, 120, 126, 116, 108, 120, 119, 117, 111, 114, 115, 142, 114, 122, 123, 113, 102, 126, 110, 114, 104, 114, 103, 119, 117, 116, 110, 115, 117, 112, 113, 117, 126, 109, 109, 110, 119, 116, 122, 120, 123, 125, 121, 120, 123, 112, 116, 108, 116, 125, 125, 116, 113, 108, 109, 112, 105, 113, 123, 129, 120, 108, 114, 106, 119, 108, 120, 123, 110, 112, 115, 117, 121, 122, 113, 124, 117, 116, 119, 121, 118, 116, 120, 115, 117, 118, 121, 113, 115, 123, 109, 117, 123, 115, 115, 113, 119, 115, 115, 115, 129, 109, 111, 120, 117, 125, 114, 125, 100, 121, 123, 114, 116, 121, 118, 136, 117, 120, 129, 113, 125, 116, 138, 116, 117, 125, 115, 131, 114, 113, 112, 124, 121, 117, 119, 118, 109, 131, 108, 117, 104, 108, 117, 114, 115, 117, 120, 113, 121, 120, 115, 137, 114, 111, 112, 119, 106, 112, 127, 104, 120, 118, 119, 108, 121, 117, 111, 109, 112, 104, 118, 114, 119, 105, 111, 103, 104, 105, 134, 116, 122, 106, 112, 108, 120, 126, 114, 116, 111, 120, 109, 126, 119, 115, 110, 123, 114, 120, 119, 110, 121, 110, 119, 110, 110, 115, 128, 120, 100, 110, 129, 114, 115, 117, 121, 138, 125, 119, 121, 113, 120, 112, 129, 115, 122, 128, 122, 111, 107, 118, 115, 111, 107, 108, 118, 127, 131, 124, 143, 116, 105, 121, 127, 114, 114, 115, 115, 113, 132, 114, 112, 118, 109, 114, 114, 105, 120, 104, 114, 118, 113, 115, 116, 124, 107, 110, 122, 101, 122, 113, 115, 116, 109, 113, 108, 123, 117, 121, 128, 108, 115, 119, 115, 114, 113, 120, 138, 118, 110, 116, 112, 114, 111, 114, 115, 121, 117, 119, 110, 112, 116, 119, 113, 110, 114, 116, 116, 124, 115, 112, 118, 118, 118, 108, 113, 109, 110, 118, 116, 114, 118, 120, 109, 114, 112, 118, 118, 116, 113, 122, 112, 117, 117, 112, 117, 115, 113, 113, 118, 115, 121, 109, 118, 136, 108, 114, 117, 115, 107, 115, 119, 101, 119, 121, 113, 118, 112, 114, 115, 120, 116, 118, 117, 100, 115, 108, 110, 118, 112, 120, 113, 118, 117, 117, 117, 113, 123, 116, 117, 117, 118, 121, 119, 117, 114, 113, 122, 115, 118, 108, 117, 102, 110, 119, 112, 119, 120, 117, 119, 116, 119, 120, 120, 102, 115, 117, 117, 115, 120, 121, 117, 119, 113, 102, 123, 117, 116, 112, 105, 115, 120, 114, 119, 119, 113, 123, 115, 120, 119, 116, 121, 118, 119, 118, 115, 113, 113, 113, 116, 116, 115, 101, 113, 119, 115, 112, 109, 113, 114, 121, 121, 114, 113, 117, 113, 109, 116, 114, 104, 119, 122, 117, 115, 115, 124, 106, 129, 114, 110, 117, 109, 139, 117, 114, 111, 126, 113, 113, 122, 123, 115, 123, 115, 123, 116, 105, 108, 119, 120, 124, 121, 117, 113, 117, 123, 115, 117, 119, 111, 116, 111, 112, 130, 114, 112, 114, 112, 116, 107, 114, 110, 118, 119, 119, 110, 103, 126, 126, 112, 113, 121, 125, 104, 123, 114, 112, 113, 117, 111, 112, 104, 112, 115, 115, 125, 117, 120, 117, 107, 116, 110, 118, 111, 117, 110, 113, 115, 123, 116, 113, 142, 111, 116, 110, 118, 111, 120, 118, 120, 117, 116, 114, 117, 113, 119, 116, 118, 111, 125, 120, 117, 126, 120, 122, 115, 114, 119, 118, 117, 114, 115, 110, 117, 115, 119, 116, 115, 112, 113, 115, 115, 115, 112, 114, 107, 122, 119, 117, 119, 112, 115, 112, 119, 110, 119, 110, 119, 115, 115, 118, 125, 105, 104, 119, 119, 116, 123, 115, 114, 120, 126, 117, 117, 115, 118, 116, 115, 112, 113, 113, 111, 110, 110, 121, 123, 116, 116, 107, 116, 107, 116, 116, 118, 117, 123, 119, 117, 114, 130, 110, 112, 116, 97, 114, 113, 112, 119, 114, 115, 129, 107, 114, 109, 117, 114, 111, 114, 122, 132, 109, 116, 115, 115, 114, 116, 124, 112, 116, 106, 119, 121, 109, 127, 110, 108, 121, 110, 115, 118, 104, 132, 119, 128, 106, 122, 117, 112, 111, 118, 112, 127, 113, 122, 123, 112, 119, 120, 113, 118, 113, 115, 119, 113, 101, 110, 104, 121, 117, 115, 108, 110, 118, 122, 109, 106, 96, 118, 123, 111, 118, 115, 119, 115, 118, 138, 115, 119, 119, 114, 120, 117, 117, 115, 108, 111, 118, 111, 115, 116, 121, 99, 128, 117, 108, 121, 114, 127, 114, 113, 119, 121, 111, 108, 119, 114, 108, 127, 119, 119, 113, 122, 121, 114, 110, 122, 134, 122, 122, 103, 108, 120, 119, 110, 125, 107, 107, 118, 121, 124, 117, 103, 118, 124, 116, 111, 119, 108, 110, 108, 103, 118, 123, 113, 116, 124, 114, 128, 112, 115, 102, 102, 113, 112, 126, 116, 103, 121, 120, 131, 121, 117, 109, 114, 113, 113, 116, 119, 110, 118, 117, 115, 117, 119, 108, 130, 106, 125, 120, 125, 115, 110, 102, 131, 120, 112, 126, 110, 123, 111, 120, 109, 114, 119, 115, 123, 117, 120, 118, 119, 112, 120, 109, 127, 110, 115, 126, 111, 107, 112, 113, 116, 105, 119, 122, 112, 112, 120, 109, 122, 116, 105, 114, 108, 111, 118, 118, 112, 114, 103, 117, 122, 115, 121, 124, 128, 108, 117, 119, 128, 112, 118, 111, 108, 125, 109, 120, 123, 128, 107, 105, 118, 127, 104, 112, 108, 119, 123, 115, 106, 115, 118, 116, 129, 112, 109, 115, 113, 117, 114, 123, 110, 118, 105, 112, 116, 114, 109, 127, 107, 120, 113, 111, 117, 114, 118, 103, 116, 111, 116, 116, 117, 112, 122, 125, 107, 110, 106, 129, 118, 109, 118, 126, 128, 122, 115, 112, 115, 109, 112, 115, 121, 118, 108, 113, 112, 118, 106, 116, 125, 118, 121, 108, 122, 111, 119, 114, 131, 123, 112, 118, 111, 119, 119, 109, 104, 128, 115, 110, 111, 126, 116, 109, 118, 109, 123, 119, 120, 118, 118, 115, 125, 117, 119, 104, 133, 120, 117, 119, 123, 117, 127, 121, 118, 129, 124, 110, 114, 127, 113, 113, 117, 122, 95, 104, 116, 125, 123, 116, 115, 118, 112, 114, 106, 117, 121, 130, 136, 112, 127, 122, 113, 120, 112, 108, 118, 93, 115, 101, 113, 115, 119, 113, 94, 116, 116, 119, 109, 115, 120, 124, 107, 118, 117, 116, 120, 116, 95, 113, 126, 111, 113, 124, 119, 105, 108, 110, 114, 111, 120, 126, 119, 115, 116, 115, 111, 115, 120, 109, 110, 130, 113, 121, 118, 123, 122, 117, 113, 120, 134, 111, 117, 118, 120, 117, 115, 118, 110, 117, 125, 123, 112, 100, 121, 100, 116, 109, 118, 111, 111, 113, 117, 115, 114, 119, 102, 104, 110, 109, 119, 130, 115, 116, 119, 124, 110, 108, 121, 111, 117, 107, 118, 109, 102, 111, 120, 125, 111, 120, 120, 106, 89, 115, 114, 114, 102, 118, 113, 111, 121, 105, 106, 106, 113, 116, 104, 126, 115, 115, 115, 122, 107, 124, 107, 116, 103, 110, 110, 117, 113, 100, 119, 112, 101, 119, 104, 125, 106, 108, 113, 117, 119, 129, 124, 123, 118, 130, 124, 115, 109, 115, 123, 107, 115, 118, 111, 113, 109, 110, 117, 99, 110, 110, 128, 116, 123, 114, 99, 130, 103, 117, 110, 109, 135, 113, 113, 116, 106, 119, 126, 97, 117, 125, 107, 118, 105, 122, 138, 113, 116, 127, 113, 122, 103, 117, 113, 118, 109, 107, 113, 109, 115, 119, 131, 132, 126, 106, 116, 110, 102, 115, 126, 104, 112, 117, 119, 108, 111, 115, 99, 109, 115, 101, 107, 130, 111, 109, 110, 120, 110, 120, 104, 107, 117, 105, 113, 101, 107, 122, 115, 120, 117, 119, 91, 103, 125, 104, 106, 115, 142, 120, 156, 118, 116, 105, 104, 112, 107, 122, 115, 104, 120, 133, 100, 107, 113, 104, 96, 121, 118, 127, 122, 126, 121, 101, 109, 120, 114, 125, 110, 112, 111, 129, 106, 122, 112, 110, 120, 121, 115, 110, 114, 104, 115, 102, 128, 112, 98, 115, 107, 123, 108, 106, 122, 97, 110, 134, 113, 113, 108, 112, 109, 117, 122, 114, 115, 117, 107, 114, 107, 100, 112, 127, 114, 117, 113, 128, 106, 117, 109, 123, 132, 111, 110, 117, 117, 113, 118, 133, 130, 129, 126, 108, 119, 123, 112, 119, 126, 118, 111, 119, 106, 120, 118, 104, 114, 115, 112, 123, 120, 111, 127, 150, 118, 119, 130, 110, 121, 102, 112, 113, 114, 115, 114, 107, 102, 106, 151, 115, 118, 113, 117, 99, 110, 123, 123, 113, 112, 110, 104, 125, 133, 112, 118, 127, 116, 111, 117, 130, 112, 109, 116, 116, 125, 119, 120, 111, 115, 114, 113, 108, 126, 108, 128, 130, 111, 108, 114, 126, 147, 107, 104, 106, 112, 109, 107, 101, 122, 109, 112, 111, 125, 107, 98, 107, 132, 131, 113, 99, 116, 130, 114, 135, 116, 117, 121, 123, 116, 134, 111, 111, 130, 114, 118, 116, 114, 132, 126, 117, 116, 137, 104, 128, 123, 107, 113, 107, 122, 107, 129, 116, 128, 123, 117, 124, 110, 103, 115, 115, 109, 97, 119, 130, 113, 116, 99, 122, 109, 118, 112, 113, 106, 118, 107, 110, 119, 120, 120, 117, 119, 117, 116, 110, 115, 115, 106, 122, 130, 106, 120, 116, 125, 114, 115, 116, 134, 117, 120, 110, 111, 116, 124, 116, 113, 117, 120, 101, 118, 111, 116, 110, 113, 118, 123, 143, 119, 118, 123, 102, 130, 131, 122, 123, 126, 109, 107, 109, 116, 119, 105, 104, 115, 110, 117, 112, 113, 109, 112, 119, 124, 104, 121, 128, 117, 104, 110, 111, 111, 133, 119, 133, 106, 112, 127, 131, 130, 122, 120, 106, 106, 126, 117, 134, 113, 128, 131, 127, 124, 105, 115, 119, 112, 115, 116, 110, 103, 123, 130, 111, 118, 123, 105, 110, 110, 102, 130, 103, 119, 118, 115, 119, 123, 130, 128, 108, 104, 109, 105, 123, 116, 109, 120, 120, 100, 122, 117, 107, 117, 133, 122, 107, 116, 107, 125, 101, 115, 116, 113, 122, 108, 117, 118, 147, 110, 105, 108, 138, 133, 106, 121, 120, 112, 112, 111, 106, 123, 107, 112, 120, 117, 108, 121, 119, 104, 109, 121, 97, 112, 117, 110, 105, 113, 114, 123, 107, 111, 105, 107, 110, 113, 105, 117, 98, 138, 122, 136, 124, 113, 113, 116, 116, 142, 105, 104, 111, 120, 97, 115, 118, 126, 112, 116, 141, 108, 119, 110, 89, 106, 102, 122, 117, 109, 105, 106, 101, 120, 108, 121, 115, 111, 118, 112, 127, 132, 111, 118, 116, 116, 111, 108, 136, 99, 112, 112, 99, 118, 118, 108, 110, 116, 120, 144, 107, 109, 112, 123, 106, 105, 112, 106, 139, 122, 104, 116, 100, 111, 120, 102, 98, 117, 146, 124, 121, 118, 111, 118, 136, 107, 138, 122, 91, 108, 112, 109, 113, 136, 118, 115, 132, 103, 105, 118, 94, 100, 122, 97, 116, 130, 116, 109, 111, 122, 121, 99, 108, 114, 114, 114, 99, 124, 111, 118, 118, 107, 109, 100, 114, 109, 121, 110, 119, 107, 111, 108, 104, 109, 111, 110, 130, 92, 107, 115, 110, 148, 103, 122, 99, 111, 112, 106, 112, 123, 128, 118, 108, 105, 105, 122, 126, 116, 123, 106, 117, 126, 118, 115, 120, 89, 110, 104, 107, 100, 90, 112, 121, 117, 112, 125, 126, 110, 112, 100, 114, 101, 110, 129, 103, 114, 124, 119, 127, 119, 121, 122, 117, 110, 115, 119, 132, 110, 113, 95, 98, 112, 118, 112, 118, 100, 110, 118, 132, 94, 124, 120, 104, 110, 115, 104, 119, 91, 118, 126, 110, 86, 109, 125, 137, 113, 124, 102, 97, 104, 112, 113, 113, 134, 102, 118, 106, 120, 128, 104, 114, 128, 98, 117, 120, 110, 115, 110, 139, 107, 116, 109, 108, 108, 119, 111, 118, 114, 127, 124, 110, 117, 112, 114, 100, 115, 117, 117, 115, 115, 116, 111, 109, 109, 121, 115, 108, 104, 112, 98, 103, 119, 120, 102, 103, 88, 126, 113, 118, 117, 101, 113, 112, 115, 111, 119, 118, 118, 119, 119, 109, 118, 115, 109, 116, 121, 112, 124, 126, 109, 118, 132, 117, 117, 131, 111, 124, 106, 121, 134, 93, 125, 148, 115, 126, 136, 102, 120, 122, 126, 122, 100, 105, 105, 118, 114, 105, 133, 128, 125, 120, 115, 116, 109, 131, 115, 126, 115, 114, 122, 124, 111, 133, 117, 110, 105, 112, 122, 119, 124, 107, 114, 109, 126, 120, 118, 122, 110, 117, 113, 100, 101, 112, 124, 122, 116, 124, 125, 116, 104, 133, 121, 120, 109, 94, 111, 116, 120, 132, 106, 122, 114, 116, 113, 115, 110, 121, 138, 116, 96, 109, 101, 104, 109, 124, 112, 114, 120, 108, 121, 114, 123, 122, 102, 110, 125, 114, 116, 116, 110, 133, 105, 113, 105, 108, 97, 110, 109, 117, 115, 117, 104, 111, 120, 100, 118, 115, 122, 131, 102, 98, 100, 120, 114, 114, 118, 106, 104, 133, 113, 101, 111, 82, 115, 110, 102, 122, 109, 107, 132, 115, 108, 99, 104, 121, 125, 120, 124, 104, 100, 105, 121, 117, 100, 111, 113, 116, 123, 118, 121, 123, 124, 113, 111, 125, 113, 156, 111, 114, 106, 99, 110, 142, 112, 109, 104, 106, 125, 103, 117, 113, 119, 110, 104, 124, 130, 84, 105, 121, 106, 108, 115, 110, 120, 123, 121, 103, 130, 124, 117, 115, 122, 107, 116, 106, 134, 116, 121, 105, 112, 108, 106, 116, 113, 114, 104, 131, 135, 103, 114, 108, 112, 126, 100, 101, 104, 127, 103, 114, 130, 130, 116, 104, 119, 136, 114, 122, 124, 99, 106, 112, 131, 102, 115, 103, 124, 126, 111, 134, 116, 100, 117, 119, 114, 122, 131, 113, 121, 117, 107, 114, 114, 122, 119, 108, 126, 121, 122, 116, 115, 123, 114, 140, 113, 141, 118, 113, 115, 117, 115, 115, 119, 124, 113, 132, 106, 114, 124, 121, 115, 124, 120, 122, 122, 102, 102, 123, 116, 106, 118, 113, 108, 125, 114, 114, 106, 112, 122, 106, 113, 121, 122, 90, 122, 133, 114, 119, 115, 113, 118, 120, 115, 115, 109, 123, 123, 125, 115, 116, 108, 111, 120, 127, 117, 110, 111, 122, 123, 116, 113, 111, 120, 121, 113, 115, 122, 104, 119, 121, 122, 128, 127, 142, 112, 115, 106, 118, 117, 123, 116, 111, 110, 119, 116, 102, 125, 111, 120, 118, 113, 118, 101, 112, 113, 125, 125, 102, 108, 118, 117, 120, 123, 142, 117, 127, 107, 120, 106, 124, 114, 115, 111, 110, 112, 123, 124, 115, 117, 107, 124, 116, 115, 130, 120, 115, 106, 127, 109, 96, 114, 111, 116, 111, 118, 120, 105, 119, 119, 106, 127, 118, 113, 110, 113, 119, 109, 117, 146, 111, 110, 130, 111, 119, 107, 113, 128, 111, 100, 113, 138, 121, 115, 114, 121, 113, 123, 115, 117, 119, 119, 117, 117, 121, 110, 123, 106, 113, 118, 119, 113, 118, 95, 115, 121, 112, 121, 115, 111, 118, 125, 111, 127, 108, 111, 111, 111, 107, 117, 113, 123, 116, 126, 114, 112, 117, 104, 122, 125, 116, 107, 109, 106, 124, 124, 99, 114, 107, 113, 106, 83, 110, 106, 98, 103, 121, 124, 114, 111, 113, 114, 119, 120, 109, 117, 110, 108, 113, 123, 116, 126, 129, 123, 102, 119, 131, 116, 120, 110, 133, 95, 120, 129, 108, 118, 97, 119, 111, 123, 117, 115, 126, 118, 131, 106, 120, 116, 118, 117, 130, 111, 120, 116, 120, 115, 106, 120, 97, 123, 114, 117, 128, 96, 115, 111, 119, 112, 116, 102, 116, 116, 107, 110, 130, 119, 109, 111, 126, 113, 111, 116, 108, 124, 118, 117, 104, 110, 108, 124, 114, 135, 112, 124, 110, 120, 115, 121, 113, 107, 96, 117, 130, 113, 124, 120, 119, 113, 122, 125, 129, 114, 129, 108, 124, 118, 121, 119, 115, 118, 118, 120, 111, 107, 118, 123, 118, 96, 106, 123, 115, 115, 93, 120, 102, 103, 107, 109, 126, 101, 119, 106, 94, 105, 117, 125, 115, 105, 113, 125, 130, 129, 109, 111, 116, 112, 127, 122, 114, 109, 130, 108, 106, 92, 124, 111, 112, 108, 115, 126, 110, 113, 108, 116, 131, 100, 114, 114, 119, 112, 130, 109, 116, 116, 122, 103, 99, 150, 114, 119, 117, 123, 119, 125, 120, 112, 124, 125, 104, 113, 116, 114, 122, 110, 123, 118, 108, 121, 126, 118, 111, 116, 119, 118, 105, 115, 120, 113, 120, 128, 121, 125, 112, 121, 115, 104, 110, 103, 122, 107, 119, 126, 112, 108, 119, 118, 116, 114, 118, 120, 110, 112, 108, 115, 138, 117, 110, 101, 109, 107, 125, 104, 104, 107, 124, 119, 105, 106, 104, 120, 115, 126, 113, 110, 107, 106, 123, 112, 103, 106, 123, 109, 115, 116, 129, 115, 131, 123, 112, 114, 117, 125, 123, 120, 123, 109, 127, 121, 119, 114, 127, 122, 116, 119, 119, 126, 113, 115, 130, 119, 119, 117, 130, 106, 120, 109, 112, 107, 92, 101, 120, 115, 125, 120, 128, 114, 117, 112, 118, 112, 116, 119, 112, 112, 114, 109, 97, 115, 121, 114, 115, 108, 123, 119, 116, 124, 114, 115, 122, 119, 113, 113, 121, 134, 117, 110, 132, 122, 117, 130, 116, 112, 106, 119, 120, 120, 125, 112, 117, 123, 112, 119, 118, 117, 123, 124, 123, 131, 119, 110, 119, 111, 109, 119, 102, 120, 112, 111, 108, 112, 114, 117, 110, 111, 112, 118, 117, 110, 123, 110, 102, 119, 110, 123, 123, 116, 147, 113, 122, 101, 117, 105, 112, 113, 117, 109, 116, 128, 116, 118, 111, 132, 117, 110, 118, 134, 135, 113, 120, 123, 116, 98, 115, 127, 115, 124, 114, 120, 126, 111, 124, 120, 120, 104, 127, 109, 110, 135, 109, 120, 111, 111, 122, 101, 95, 108, 113, 126, 115, 121, 116, 117, 121, 119, 129, 121, 113, 115, 118, 105, 111, 109, 109, 125, 126, 117, 116, 120, 107, 108, 113, 122, 112, 119, 117, 116, 120, 114, 113, 118, 115, 115, 119, 126, 112, 115, 127, 122, 103, 119, 115, 115, 108, 123, 110, 118, 113, 128, 106, 109, 117, 108, 117, 113, 125, 126, 118, 108, 113, 112, 132, 127, 123, 115, 108, 110, 120, 110, 111, 112, 106, 122, 114, 120, 122, 119, 120, 119, 116, 111, 112, 113, 115, 111, 121, 114, 107, 110, 117, 116, 118, 118, 120, 115, 126, 121, 105, 109, 114, 115, 124, 120, 110, 109, 122, 125, 130, 116, 115, 124, 103, 114, 121, 124, 122, 126, 118, 116, 106, 114, 103, 117, 118, 118, 112, 111, 101, 122, 110, 116, 121, 120, 113, 116, 122, 107, 121, 114, 117, 134, 120, 122, 107, 111, 121, 129, 110, 111, 124, 120, 117, 112, 132, 118, 106, 100, 127, 134, 120, 113, 120, 127, 114, 126, 114, 107, 115, 110, 106, 119, 114, 127, 102, 120, 121, 105, 126, 115, 115, 122, 113, 125, 100, 122, 111, 122, 116, 121, 122, 117, 113, 117, 103, 114, 119, 120, 113, 119, 125, 113, 115, 119, 117, 103, 114, 114, 112, 123, 112, 120, 121, 113, 112, 130, 119, 117, 127, 123, 118, 103, 118, 125, 120, 111, 118, 116, 114, 117, 110, 115, 113, 111, 107, 110, 107, 115, 148, 120, 122, 111, 121, 129, 121, 102, 126, 126, 122, 123, 108, 122, 123, 109, 108, 117, 129, 115, 124, 115, 105, 144, 129, 113, 116, 116, 114, 123, 131, 109, 112, 119, 112, 116, 121, 124, 123, 113, 108, 116, 129, 114, 125, 110, 129, 124, 109, 119, 123, 122, 123, 116, 116, 118, 119, 119, 116, 108, 108, 128, 118, 117, 123, 123, 121, 114, 121, 114, 125, 111, 118, 102, 109, 135, 130, 112, 95, 121, 110, 116, 112, 122, 117, 113, 117, 114, 116, 103, 119, 118, 108, 120, 116, 124, 105, 101, 111, 127, 123, 123, 104, 91, 119, 123, 120, 128, 128, 129, 137, 108, 109, 129, 140, 118, 129, 105, 120, 129, 104, 113, 119, 119, 106, 121, 117, 106, 137, 124, 101, 110, 110, 114, 111, 109, 120, 115, 118, 127, 107, 94, 117, 111, 126, 119, 118, 116, 110, 118, 113, 121, 116, 117, 120, 122, 111, 134, 120, 114, 107, 121, 113, 104, 121, 115, 104, 114, 119, 112, 113, 120, 115, 130, 122, 110, 119, 117, 122, 111, 103, 104, 114, 115, 117, 111, 112, 115, 114, 103, 131, 124, 119, 118, 116, 103, 112, 120, 108, 110, 107, 125, 121, 114, 97, 102, 129, 122, 116, 118, 117, 118, 111, 124, 114, 133, 105, 125, 104, 110, 131, 112, 119, 119, 112, 116, 115, 127, 112, 112, 120, 109, 117, 109, 118, 125, 115, 118, 108, 120, 116, 111, 125, 124, 112, 132, 120, 102, 131, 122, 102, 126, 110, 107, 124, 106, 125, 124, 117, 122, 108, 114, 118, 116, 125, 123, 122, 54, 109, 124, 130, 122, 127, 112, 99, 119, 107, 111, 111, 121, 131, 114, 107, 120, 122, 112, 109, 107, 134, 113, 100, 108, 121, 112, 103, 114, 117, 128, 116, 115, 122, 115, 124, 123, 105, 108, 116, 106, 112, 114, 110, 126, 114, 102, 118, 125, 128, 120, 107, 117, 112, 127, 111, 108, 101, 117, 116, 111, 104, 104, 118, 110, 110, 112, 80, 99, 120, 130, 121, 217, 122, 107, 110, 108, 112, 104, 120, 112, 112, 118, 129, 121, 130, 123, 121, 113, 127, 116, 107, 122, 120, 105, 104, 109, 124, 115, 121, 114, 112, 118, 106, 129, 120, 110, 115, 117, 108, 122, 127, 120, 98, 105, 120, 118, 103, 117, 120, 129, 120, 110, 124, 117, 124, 142, 115, 125, 111, 121, 115, 123, 130, 92, 124, 109, 124, 113, 111, 112, 120, 116, 117, 132, 119, 101, 119, 111, 115, 88, 134, 114, 116, 119, 126, 122, 110, 107, 109, 105, 115, 114, 118, 112, 114, 121, 116, 119, 77, 123, 108, 118, 105, 116, 111, 113, 123, 124, 113, 111, 79, 116, 115, 122, 114, 102, 124, 108, 120, 120, 122, 118, 125, 124, 112, 132, 106, 124, 120, 101, 118, 117, 118, 122, 106, 112, 111, 114, 117, 117, 114, 111, 114, 119, 117, 121, 97, 124, 131, 84, 112, 111, 103, 126, 116, 104, 121, 106, 110, 126, 98, 130, 111, 115, 110, 109, 138, 116, 132, 115, 118, 115, 126, 124, 128, 119, 111, 116, 127, 116, 125, 117, 119, 118, 118, 132, 109, 117, 112, 118, 133, 124, 121, 115, 118, 111, 114, 118, 120, 117, 112, 124, 118, 118, 112, 120, 124, 117, 96, 125, 121, 116, 128, 112, 119, 112, 119, 121, 108, 107, 124, 117, 116, 113, 109, 136, 109, 108, 130, 126, 119, 107, 115, 109, 113, 113, 122, 120, 112, 103, 110, 114, 120, 110, 125, 115, 110, 124, 111, 123, 139, 118, 120, 106, 122, 101, 128, 113, 116, 106, 128, 111, 112, 106, 106, 106, 98, 106, 111, 112, 106, 105, 118, 112, 115, 118, 108, 111, 105, 113, 114, 106, 133, 105, 118, 120, 126, 125, 118, 125, 113, 133, 120, 102, 120, 109, 112, 117, 111, 120, 98, 125, 116, 135, 105, 117, 103, 119, 116, 123, 136, 112, 105, 124, 110, 108, 127, 112, 125, 119, 113, 114, 122, 115, 126, 106, 114, 100, 112, 113, 101, 117, 116, 111, 114, 107, 108, 133, 123, 118, 110, 123, 119, 101, 121, 107, 110, 126, 126, 117, 121, 112, 125, 118, 105, 115, 113, 119, 123, 121, 119, 115, 110, 114, 106, 122, 107, 138, 118, 109, 108, 128, 101, 108, 116, 138, 117, 117, 111, 114, 122, 131, 137, 105, 108, 107, 107, 121, 101, 129, 123, 123, 116, 103, 109, 112, 122, 112, 122, 118, 96, 133, 114, 100, 127, 129, 105, 96, 120, 137, 123, 113, 116, 121, 125, 107, 114, 104, 104, 110, 91, 112, 118, 102, 117, 115, 111, 119, 116, 119, 112, 106, 121, 110, 124, 120, 119, 114, 131, 97, 97, 133, 114, 93, 106, 106, 117, 113, 122, 117, 117, 105, 101, 111, 106, 109, 129, 112, 122, 126, 112, 103, 122, 123, 120, 110, 122, 131, 96, 105, 106, 104, 118, 118, 125, 107, 109, 131, 117, 114, 95, 109, 129, 106, 119, 116, 104, 101, 123, 113, 109, 122, 95, 124, 109, 107, 104, 100, 126, 118, 109, 112, 136, 119, 115, 121, 111, 111, 107, 123, 126, 115, 111, 121, 90, 111, 120, 111, 105, 126, 111, 109, 97, 125, 126, 110, 117, 129, 104, 104, 119, 102, 106, 126, 104, 116, 119, 105, 123, 96, 117, 114, 106, 127, 120, 136, 97, 105, 128, 118, 101, 123, 151, 131, 112, 124, 123, 109, 125, 93, 119, 122, 137, 111, 130, 119, 100, 120, 110, 125, 108, 120, 115, 113, 110, 117, 132, 108, 112, 101, 128, 120, 97, 122, 124, 118, 132, 108, 125, 131, 108, 96, 113, 120, 121, 114, 129, 110, 112, 117, 137, 112, 113, 105, 122, 122, 123, 114, 116, 114, 108, 109, 110, 115, 116, 126, 113, 116, 106, 144, 110, 99, 108, 110, 119, 112, 112, 107, 108, 104, 122, 111, 109, 115, 119, 105, 97, 126, 102, 111, 115, 112, 115, 107, 124, 99, 117, 111, 114, 118, 94, 114, 105, 121, 123, 113, 122, 103, 124, 128, 131, 112, 117, 114, 133, 113, 116, 103, 108, 116, 125, 130, 114, 120, 121, 135, 110, 114, 121, 104, 97, 118, 104, 124, 126, 108, 114, 114, 114, 123, 122, 117, 121, 106, 98, 113, 134, 112, 116, 112, 103, 112, 128, 128, 125, 107, 113, 116, 111, 116, 117, 114, 119, 119, 121, 111, 138, 119, 118, 106, 114, 114, 117, 102, 114, 119, 109, 120, 105, 115, 103, 114, 126, 127, 114, 115, 100, 104, 120, 114, 134, 110, 116, 116, 109, 101, 114, 127, 114, 125, 109, 128, 113, 104, 130, 111, 119, 120, 124, 111, 108, 125, 113, 114, 119, 121, 99, 120, 118, 85, 111, 114, 123, 121, 108, 116, 129, 114, 84, 118, 126, 117, 118, 112, 110, 103, 125, 114, 106, 126, 107, 121, 120, 121, 132, 110, 112, 112, 113, 116, 118, 121, 117, 110, 109, 105, 110, 116, 104, 132, 131, 105, 111, 108, 132, 109, 111, 124, 118, 135, 123, 132, 109, 114, 116, 122, 107, 121, 112, 122, 121, 131, 128, 108, 122, 113, 112, 121, 121, 124, 99, 124, 137, 106, 100, 128, 114, 123, 119, 104, 111, 127, 116, 116, 106, 127, 114, 109, 133, 125, 108, 106, 117, 115, 105, 142, 109, 123, 130, 108, 117, 124, 128, 113, 112, 101, 118, 112, 122, 111, 111, 121, 118, 114, 120, 105, 118, 112, 119, 121, 114, 112, 127, 117, 120, 117, 99, 115, 98, 102, 124, 112, 141, 107, 101, 117, 109, 113, 114, 122, 122, 129, 124, 114, 122, 110, 112, 132, 109, 115, 118, 115, 117, 183, 113, 112, 103, 134, 102, 122, 113, 120, 109, 115, 109, 104, 117, 111, 120, 109, 119, 115, 124, 100, 109, 127, 122, 116, 125, 129, 102, 112, 116, 114, 116, 119, 109, 106, 112, 113, 119, 122, 113, 120, 110, 121, 104, 113, 111, 118, 129, 92, 135, 114, 128, 118, 108, 118, 124, 115, 117, 124, 116, 70, 122, 117, 118, 126, 116, 125, 107, 125, 121, 138, 114, 117, 120, 112, 101, 115, 115, 98, 122, 109, 113, 116, 109, 117, 116, 117, 133, 103, 115, 95, 113, 104, 122, 103, 122, 119, 117, 112, 118, 113, 87, 122, 114, 132, 124, 118, 122, 108, 117, 127, 111, 119, 107, 115, 111, 114, 113, 115, 122, 119, 127, 117, 113, 116, 101, 119, 115, 120, 110, 109, 107, 125, 108, 121, 117, 113, 111, 120, 129, 99, 122, 108, 112, 114, 106, 117, 111, 112, 120, 111, 118, 123, 103, 112, 124, 105, 113, 124, 118, 116, 117, 112, 99, 117, 112, 105, 137, 107, 114, 106, 121, 108, 117, 130, 105, 84, 112, 101, 128, 109, 106, 121, 123, 105, 125, 116, 102, 120, 112, 109, 120, 115, 153, 119, 117, 182, 124, 123, 106, 155, 114, 110, 110, 107, 114, 119, 118, 124, 109, 122, 125, 82, 129, 137, 115, 109, 115, 100, 117, 107, 122, 125, 107, 99, 123, 105, 116, 108, 130, 115, 123, 125, 112, 117, 117, 123, 99, 119, 134, 119, 122, 125, 115, 128, 125, 115, 125, 121, 119, 107, 117, 114, 123, 100, 93, 107, 125, 135, 117, 98, 119, 127, 114, 112, 121, 126, 114, 121, 108, 111, 88, 101, 141, 118, 125, 112, 121, 124, 119, 119, 128, 112, 111, 160, 132, 109, 109, 116, 120, 112, 119, 115, 134, 135, 133, 123, 127, 129, 130, 146, 102, 139, 126, 119, 118, 114, 122, 106, 98, 116, 110, 117, 131, 105, 119, 113, 115, 134, 93, 107, 124, 110, 121, 110, 114, 109, 103, 98, 135, 110, 118, 123, 107, 128, 114, 121, 110, 96, 111, 108, 120, 107, 118, 108, 93, 125, 112, 99, 101, 106, 134, 120, 134, 128, 116, 121, 116, 114, 115, 113, 126, 112, 121, 120, 116, 122, 110, 101, 116, 108, 115, 123, 116, 118, 127, 113, 113, 115, 113, 121, 112, 118, 114, 114, 109, 120, 130, 110, 109, 117, 123, 108, 114, 111, 116, 110, 116, 113, 111, 116, 101, 118, 124, 118, 95, 112, 111, 113, 109, 130, 122, 110, 120, 122, 131, 125, 120, 114, 122, 116, 114, 117, 121, 118, 126, 124, 115, 112, 113, 115, 108, 109, 117, 119, 110, 121, 127, 110, 101, 108, 116, 103, 119, 114, 121, 110, 120, 118, 120, 105, 116, 114, 115, 116, 122, 114, 117, 105, 105, 117, 120, 120, 118, 119, 122, 118, 110, 124, 113, 116, 119, 100, 108, 111, 117, 122, 109, 118, 116, 123, 116, 120, 117, 104, 116, 117, 115, 103, 115, 123, 119, 113, 119, 117, 108, 112, 104, 127, 113, 109, 114, 118, 121, 121, 122, 108, 110, 107, 113, 119, 112, 114, 116, 125, 125, 107, 116, 125, 122, 118, 111, 112, 118, 112, 112, 100, 109, 105, 117, 118, 111, 118, 122, 99, 107, 124, 111, 117, 124, 121, 105, 115, 119, 114, 118, 113, 111, 125, 116, 117, 98, 118, 107, 117, 118, 107, 110, 111, 123, 115, 127, 118, 120, 117, 107, 110, 109, 120, 114, 101, 117, 114, 130, 112, 118, 115, 109, 117, 114, 121, 117, 113, 114, 109, 115, 111, 115, 114, 112, 119, 120, 112, 121, 111, 114, 122, 112, 113, 122, 115, 119, 115, 112, 120, 107, 131, 123, 110, 121, 135, 105, 116, 120, 118, 118, 119, 123, 121, 120, 110, 121, 114, 126, 132, 127, 114, 113, 112, 117, 118, 119, 116, 106, 113, 118, 98, 114, 115, 120, 122, 113, 119, 118, 126, 116, 122, 110, 112, 119, 112, 113, 115, 129, 112, 113, 113, 113, 114, 109, 116, 106, 113, 114, 113, 113, 112, 116, 120, 121, 109, 118, 125, 109, 111, 115, 122, 110, 115, 120, 118, 110, 116, 114, 116, 120, 113, 111, 118, 125, 125, 109, 108, 124, 118, 111, 114, 117, 112, 117, 115, 119, 119, 113, 119, 115, 114, 117, 115, 117, 120, 116, 123, 115, 109, 119, 111, 108, 110, 117, 119, 114, 123, 123, 121, 117, 129, 104, 116, 107, 106, 124, 115, 118, 116, 116, 105, 105, 117, 111, 107, 112, 124, 111, 111, 128, 122, 109, 115, 121, 121, 124, 121, 117, 120, 122, 116, 108, 119, 118, 129, 123, 114, 127, 116, 124, 118, 115, 117, 130, 97, 103, 123, 128, 132, 118, 120, 119, 128, 121, 117, 113, 112, 116, 126, 111, 112, 120, 119, 109, 106, 125, 108, 119, 114, 117, 111, 113, 118, 119, 119, 124, 108, 130, 126, 119, 128, 123, 107, 104, 119, 123, 114, 112, 119, 123, 108, 100, 113, 117, 104, 114, 117, 110, 116, 120, 118, 103, 116, 107, 117, 115, 108, 122, 123, 120, 122, 114, 118, 113, 117, 116, 114, 107, 116, 115, 125, 121, 113, 119, 106, 114, 107, 119, 117, 125, 117, 111, 128, 122, 108, 122, 107, 109, 117, 115, 116, 107, 113, 124, 128, 124, 113, 114, 105, 107, 129, 117, 114, 126, 125, 109, 114, 114, 116, 115, 113, 109, 112, 114, 112, 123, 131, 125, 134, 128, 97, 125, 118, 108, 107, 109, 103, 108, 119, 110, 112, 107, 118, 113, 122, 114, 119, 112, 108, 108, 100, 117, 121, 114, 111, 123, 127, 112, 123, 102, 131, 107, 122, 110, 116, 126, 118, 121, 120, 114, 131, 122, 118, 121, 118, 121, 119, 126, 110, 115, 122, 115, 118, 116, 120, 115, 114, 116, 114, 115, 118, 127, 131, 120, 120, 106, 111, 110, 120, 113, 107, 127, 124, 87, 120, 121, 117, 113, 114, 121, 110, 119, 124, 133, 114, 114, 120, 106, 112, 122, 114, 114, 127, 122, 124, 114, 109, 127, 125, 115, 121, 125, 113, 125, 119, 117, 118, 123, 121, 116, 103, 105, 121, 121, 113, 129, 100, 140, 117, 118, 130, 118, 118, 114, 113, 113, 119, 107, 119, 105, 124, 121, 116, 121, 113, 119, 119, 122, 134, 115, 116, 120, 129, 120, 121, 118, 114, 111, 110, 116, 120, 105, 119, 117, 108, 119, 105, 117, 117, 123, 110, 111, 117, 119, 112, 112, 136, 115, 125, 116, 118, 108, 112, 101, 106, 118, 136, 108, 120, 109, 120, 114, 118, 135, 129, 116, 119, 122, 132, 127, 118, 118, 117, 117, 120, 111, 129, 112, 116, 119, 123, 115, 121, 106, 114, 118, 126, 112, 110, 112, 131, 118, 119, 121, 107, 103, 103, 108, 124, 102, 117, 120, 117, 111, 122, 115, 110, 114, 112, 113, 118, 115, 102, 114, 110, 132, 124, 123, 118, 126, 110, 119, 121, 117, 115, 124, 122, 112, 113, 117, 120, 117, 111, 110, 116, 114, 116, 115, 120, 105, 117, 108, 117, 110, 105, 125, 121, 113, 127, 119, 120, 111, 98, 103, 107, 109, 121, 122, 122, 119, 117, 110, 116, 127, 111, 107, 116, 121, 120, 117, 115, 132, 119, 120, 106, 121, 124, 111, 109, 105, 125, 123, 114, 108, 121, 115, 115, 124, 117, 117, 120, 121, 111, 134, 114, 106, 121, 116, 108, 105, 116, 119, 109, 112, 117, 110, 117, 124, 122, 123, 119, 119, 119, 107, 117, 111, 115, 123, 112, 106, 106, 117, 108, 108, 122, 108, 114, 109, 123, 101, 125, 116, 130, 113, 114, 120, 115, 120, 121, 117, 119, 106, 124, 110, 111, 104, 111, 122, 127, 109, 124, 117, 120, 123, 132, 108, 120, 125, 91, 118, 122, 108, 128, 123, 122, 136, 123, 115, 115, 115, 133, 107, 120, 119, 113, 120, 111, 112, 116, 122, 104, 105, 111, 119, 124, 120, 116, 116, 112, 126, 110, 124, 123, 122, 109, 119, 118, 119, 112, 114, 116, 117, 116, 114, 115, 130, 115, 116, 125, 118, 115, 125, 114, 127, 117, 104, 116, 118, 108, 113, 114, 115, 110, 115, 116, 107, 111, 110, 120, 115, 111, 113, 118, 124, 127, 122, 99, 119, 110, 104, 116, 119, 113, 103, 112, 119, 124, 113, 131, 104, 117, 94, 128, 135, 115, 111, 120, 106, 124, 117, 117, 113, 103, 121, 129, 112, 132, 124, 116, 116, 118, 115, 114, 122, 127, 140, 115, 109, 110, 116, 106, 119, 127, 121, 115, 120, 118, 118, 112, 113, 112, 106, 110, 111, 113, 115, 119, 117, 116, 109, 102, 119, 123, 108, 115, 118, 96, 125, 117, 109, 123, 110, 120, 114, 118, 124, 121, 123, 121, 104, 114, 121, 117, 110, 116, 117, 112, 121, 119, 114, 128, 119, 121, 114, 106, 125, 119, 106, 113, 114, 122, 110, 126, 115, 120, 137, 119, 119, 105, 108, 109, 111, 104, 114, 110, 118, 120, 113, 125, 130, 116, 112, 102, 113, 130, 115, 100, 111, 113, 112, 110, 120, 128, 109, 116, 103, 118, 129, 116, 114, 117, 117, 115, 107, 109, 129, 120, 114, 120, 116, 114, 122, 117, 97, 93, 147, 124, 118, 110, 103, 124, 120, 109, 120, 126, 112, 110, 114, 120, 128, 111, 125, 112, 114, 98, 112, 119, 122, 116, 103, 104, 114, 132, 114, 130, 127, 111, 111, 107, 109, 117, 110, 115, 111, 130, 118, 109, 108, 117, 161, 123, 109, 119, 117, 117, 115, 108, 112, 125, 123, 119, 124, 118, 114, 109, 117, 115, 112, 112, 112, 120, 135, 115, 112, 119, 101, 109, 123, 126, 116, 110, 113, 112, 127, 114, 126, 121, 117, 114, 114, 130, 109, 119, 108, 96, 112, 109, 119, 118, 112, 118, 125, 125, 115, 113, 124, 112, 97, 95, 114, 116, 129, 126, 144, 132, 105, 97, 124, 129, 110, 112, 113, 124, 105, 130, 114, 119, 107, 118, 110, 120, 111, 118, 114, 126, 116, 115, 131, 107, 112, 101, 129, 118, 111, 119, 116, 117, 128, 110, 132, 121, 116, 118, 109, 115, 114, 137, 120, 112, 94, 108, 126, 106, 123, 121, 109, 113, 126, 141, 115, 112, 111, 124, 121, 114, 154, 143, 109, 123, 114, 122, 111, 117, 108, 113, 108, 118, 119, 109, 102, 88, 124, 136, 110, 125, 109, 115, 85, 132, 93, 108, 114, 123, 119, 116, 124, 116, 111, 101, 111, 118, 123, 106, 114, 128, 119, 113, 118, 118, 97, 118, 115, 115, 107, 94, 110, 122, 134, 117, 117, 100, 112, 119, 109, 104, 113, 109, 115, 109, 125, 124, 117, 140, 116, 124, 109, 89, 115, 108, 119, 122, 120, 125, 126, 118, 108, 104, 112, 111, 109, 117, 103, 112, 109, 117, 120, 108, 126, 115, 133, 112, 106, 127, 136, 110, 108, 91, 120, 117, 115, 118, 96, 124, 129, 108, 139, 120, 103, 113, 112, 108, 113, 109, 101, 116, 111, 112, 114, 108, 121, 144, 108, 110, 108, 117, 89, 129, 108, 117, 118, 123, 109, 124, 100, 114, 110, 108, 119, 120, 118, 127, 125, 108, 107, 119, 98, 122, 121, 136, 123, 113, 112, 115, 116, 121, 114, 101, 120, 110, 127, 110, 117, 113, 116, 124, 122, 130, 115, 116, 116, 119, 115, 102, 105, 108, 109, 119, 109, 113, 132, 115, 106, 120, 114, 129, 115, 118, 111, 116, 108, 124, 122, 134, 114, 112, 133, 114, 128, 121, 117, 117, 99, 119, 107, 124, 110, 110, 122, 124, 121, 112, 118, 118, 121, 105, 113, 112, 116, 123, 116, 115, 120, 119, 122, 123, 112, 113, 117, 103, 120, 111, 112, 113, 125, 122, 124, 117, 123, 120, 122, 119, 110, 116, 115, 103, 116, 118, 123, 120, 115, 109, 118, 113, 107, 109, 123, 101, 117, 123, 122, 112, 114, 108, 116, 119, 113, 108, 119, 119, 121, 120, 122, 111, 103, 108, 121, 118, 117, 115, 118, 113, 118, 116, 121, 105, 115, 117, 122, 114, 118, 120, 124, 110, 106, 124, 110, 112, 103, 106, 133, 110, 119, 126, 121, 116, 114, 104, 111, 118, 127, 127, 121, 132, 111, 108, 115, 103, 113, 120, 128, 120, 113, 115, 122, 123, 114, 122, 122, 120, 120, 110, 129, 125, 101, 111, 133, 126, 115, 114, 126, 110, 113, 123, 114, 113, 116, 117, 115, 108, 118, 113, 121, 107, 120, 131, 107, 116, 115, 98, 120, 124, 117, 117, 116, 114, 103, 112, 112, 122, 116, 119, 122, 119, 118, 108, 116, 112, 112, 105, 118, 119, 117, 122, 114, 114, 122, 112, 129, 115, 113, 107, 115, 117, 111, 113, 115, 107, 117, 112, 115, 118, 122, 113, 118, 112, 113, 116, 133, 123, 120, 128, 120, 117, 111, 126, 111, 115, 117, 121, 117, 118, 120, 116, 118, 111, 104, 110, 111, 97, 121, 121, 115, 117, 116, 116, 114, 128, 111, 118, 115, 98, 119, 121, 124, 132, 120, 122, 118, 105, 110, 125, 117, 119, 86, 123, 100, 112, 118, 111, 110, 118, 122, 124, 117, 117, 142, 112, 120, 120, 120, 119, 128, 114, 112, 126, 123, 124, 130, 115, 100, 123, 114, 112, 124, 118, 117, 109, 107, 122, 119, 115, 90, 97, 118, 117, 107, 115, 117, 119, 108, 107, 124, 116, 120, 118, 113, 117, 108, 106, 109, 115, 120, 120, 123, 120, 108, 109, 130, 118, 119, 118, 120, 121, 114, 111, 105, 114, 123, 89, 114, 122, 114, 122, 118, 119, 99, 128, 117, 104, 123, 106, 114, 113, 119, 110, 114, 110, 119, 111, 111, 115, 121, 125, 114, 116, 115, 111, 120, 104, 92, 136, 119, 116, 119, 115, 119, 100, 121, 108, 115, 103, 116, 109, 123, 117, 120, 128, 110, 102, 121, 112, 123, 114, 117, 108, 119, 115, 118, 119, 123, 117, 110, 118, 117, 110, 116, 114, 120, 130, 112, 117, 113, 111, 114, 121, 101, 120, 126, 126, 114, 112, 117, 130, 114, 114, 108, 104, 115, 118, 109, 121, 111, 111, 122, 123, 117, 127, 120, 116, 117, 118, 111, 125, 117, 119, 111, 108, 112, 117, 116, 115, 120, 109, 110, 113, 111, 112, 118, 109, 112, 118, 123, 121, 128, 117, 122, 109, 110, 119, 119, 124, 107, 119, 109, 105, 119, 113, 114, 116, 126, 127, 113, 113, 115, 110, 125, 119, 116, 119, 115, 112, 112, 120, 126, 116, 104, 114, 113, 107, 116, 123, 118, 115, 118, 121, 110, 121, 117, 122, 114, 122, 120, 109, 117, 118, 122, 125, 109, 115, 144, 115, 97, 117, 116, 116, 123, 106, 112, 116, 114, 114, 116, 104, 120, 105, 105, 113, 112, 121, 114, 106, 111, 118, 126, 117, 119, 116, 106, 120, 109, 115, 108, 114, 118, 115, 122, 114, 117, 113, 121, 126, 126, 114, 126, 109, 127, 119, 124, 119, 112, 109, 114, 114, 115, 104, 123, 114, 115, 95, 124, 110, 116, 113, 121, 114, 112, 118, 118, 106, 131, 138, 121, 120, 106, 121, 109, 114, 107, 112, 109, 126, 119, 110, 119, 110, 105, 121, 117, 115, 112, 113, 113, 113, 105, 93, 99, 124, 115, 112, 95, 121, 68, 127, 132, 105, 109, 107, 115, 98, 118, 130, 104, 113, 110, 123, 98, 119, 117, 130, 118, 121, 103, 113, 113, 109, 115, 122, 113, 109, 119, 116, 107, 111, 112, 117, 125, 112, 131, 116, 114, 121, 128, 116, 116, 126, 110, 123, 111, 107, 118, 129, 131, 127, 121, 109, 121, 110, 115, 115, 106, 118, 107, 105, 113, 117, 108, 120, 117, 109, 111, 119, 118, 111, 112, 111, 123, 110, 115, 108, 113, 122, 117, 118, 106, 113, 114, 112, 114, 114, 127, 120, 111, 113, 109, 117, 117, 108, 121, 100, 114, 113, 107, 114, 110, 112, 118, 118, 125, 113, 115, 114, 83, 109, 116, 122, 119, 125, 111, 116, 99, 117, 115, 113, 110, 118, 112, 104, 103, 117, 115, 110, 111, 118, 108, 108, 117, 126, 112, 117, 108, 112, 113, 100, 117, 120, 116, 127, 105, 102, 132, 122, 123, 113, 116, 110, 106, 121, 78, 118, 99, 122, 103, 116, 123, 116, 120, 118, 110, 123, 114, 119, 114, 113, 130, 111, 122, 109, 121, 135, 118, 121, 116, 114, 126, 115, 119, 124, 113, 115, 116, 134, 113, 116, 141, 112, 113, 127, 112, 122, 120, 118, 118, 120, 113, 121, 108, 121, 117, 116, 122, 113, 119, 103, 116, 119, 90, 123, 89, 108, 121, 103, 122, 126, 109, 122, 128, 112, 120, 127, 111, 104, 98, 114, 129, 120, 111, 134, 109, 115, 99, 119, 115, 115, 97, 128, 124, 105, 103, 109, 117, 108, 123, 117, 109, 118, 121, 116, 106, 107, 121, 103, 85, 100, 114, 113, 110, 111, 113, 127, 122, 134, 111, 113, 114, 116, 117, 117, 110, 123, 114, 112, 118, 108, 133, 118, 110, 108, 90, 121, 127, 112, 122, 114, 115, 119, 120, 122, 124, 122, 120, 157, 118, 113, 105, 122, 111, 119, 116, 104, 125, 109, 117, 119, 111, 124, 121, 117, 116, 111, 109, 112, 119, 118, 119, 114, 113, 119, 116, 111, 109, 108, 110, 114, 126, 130, 120, 118, 105, 117, 108, 122, 110, 115, 108, 105, 129, 117, 112, 115, 107, 115, 116, 125, 116, 117, 118, 119, 123, 115, 115, 113, 113, 114, 115, 118, 104, 103, 115, 120, 112, 108, 116, 119, 107, 106, 118, 112, 110, 118, 104, 125, 124, 127, 118, 120, 117, 134, 126, 117, 106, 113, 111, 120, 139, 126, 114, 111, 111, 123, 118, 110, 128, 120, 109, 117, 119, 100, 110, 119, 119, 119, 170, 120, 118, 119, 123, 119, 118, 125, 113, 122, 112, 118, 125, 119, 107, 119, 111, 112, 107, 111, 115, 116, 139, 109, 121, 122, 139, 101, 122, 119, 102, 125, 117, 143, 134, 120, 122, 111, 117, 142, 124, 107, 123, 121, 110, 116, 114, 110, 118, 127, 111, 118, 121, 121, 120, 112, 117, 112, 123, 124, 118, 117, 105, 112, 125, 109, 127, 128, 119, 112, 116, 105, 113, 121, 127, 124, 109, 126, 121, 117, 97, 115, 117, 121, 115, 105, 116, 130, 119, 115, 116, 114, 117, 112, 113, 113, 95, 113, 115, 110, 122, 119, 127, 97, 125, 114, 103, 122, 119, 121, 115, 115, 125, 107, 107, 102, 123, 122, 113, 126, 100, 120, 123, 112, 131, 86, 123, 97, 120, 103, 121, 134, 118, 110, 133, 116, 117, 115, 117, 116, 116, 109, 107, 108, 121, 109, 105, 118, 117, 125, 120, 99, 121, 112, 117, 132, 103, 118, 120, 114, 117, 95, 119, 110, 104, 92, 110, 123, 97, 112, 119, 110, 115, 99, 108, 132, 122, 112, 127, 108, 118, 115, 100, 117, 118, 113, 119, 115, 120, 115, 108, 118, 119, 102, 113, 120, 107, 113, 118, 121, 117, 98, 112, 116, 117, 128, 118, 120, 125, 114, 106, 103, 119, 124, 134, 123, 123, 109, 123, 103, 109, 89, 121, 123, 116, 105, 114, 117, 116, 123, 107, 115, 109, 116, 121, 118, 113, 109, 110, 107, 94, 114, 99, 121, 122, 116, 123, 119, 113, 128, 114, 122, 105, 117, 117, 113, 110, 110, 125, 120, 124, 106, 123, 106, 121, 111, 105, 119, 103, 119, 108, 111, 102, 109, 109, 120, 114, 96, 111, 122, 112, 113, 105, 111, 112, 114, 118, 100, 112, 117, 119, 118, 111, 122, 114, 109, 107, 112, 114, 117, 122, 126, 113, 116, 107, 126, 105, 113, 116, 102, 114, 117, 115, 124, 109, 123, 115, 127, 116, 108, 118, 126, 110, 131, 97, 115, 126, 116, 125, 122, 116, 122, 114, 120, 115, 117, 107, 115, 111, 120, 116, 118, 120, 121, 122, 127, 138, 121, 115, 123, 117, 128, 121, 121, 120, 115, 113, 111, 109, 126, 108, 100, 119, 119, 116, 99, 111, 95, 118, 115, 120, 121, 113, 129, 99, 128, 124, 123, 117, 125, 112, 111, 122, 109, 112, 120, 114, 127, 109, 93, 124, 118, 116, 120, 121, 119, 107, 113, 116, 131, 110, 119, 104, 122, 107, 123, 115, 124, 124, 112, 114, 121, 119, 110, 121, 112, 117, 128, 101, 117, 118, 104, 120, 112, 123, 138, 108, 129, 125, 111, 114, 116, 124, 129, 124, 107, 101, 98, 121, 92, 125, 115, 115, 112, 122, 96, 116, 122, 121, 109, 125, 112, 115, 107, 109, 113, 116, 116, 110, 133, 123, 103, 100, 126, 113, 101, 122, 121, 115, 127, 105, 104, 101, 100, 119, 143, 104, 94, 116, 123, 90, 111, 126, 114, 111, 110, 126, 116, 112, 103, 100, 102, 108, 118, 112, 118, 118, 118, 123, 113, 139, 121, 108, 100, 114, 95, 133, 114, 119, 110, 110, 128, 125, 127, 119, 106, 117, 127, 124, 114, 117, 118, 121, 116, 118, 119, 121, 121, 118, 115, 100, 110, 118, 122, 100, 121, 115, 114, 115, 114, 125, 130, 107, 119, 109, 123, 111, 116, 112, 134, 118, 110, 115, 121, 119, 113, 120, 130, 112, 124, 123, 109, 126, 117, 124, 118, 114, 120, 117, 108, 112, 116, 117, 131, 117, 103, 122, 116, 112, 119, 113, 104, 119, 111, 112, 116, 110, 128, 122, 115, 122, 121, 116, 104, 114, 116, 110, 111, 114, 108, 118, 111, 111, 135, 123, 116, 105, 127, 111, 113, 124, 120, 105, 109, 115, 118, 124, 116, 117, 115, 101, 122, 123, 119, 120, 122, 121, 110, 113, 129, 110, 110, 114, 115, 117, 112, 120, 107, 110, 103, 104, 96, 118, 120, 111, 108, 117, 110, 120, 123, 112, 119, 118, 107, 117, 116, 117, 119, 116, 108, 102, 124, 118, 107, 120, 120, 109, 116, 120, 105, 110, 121, 97, 123, 118, 119, 110, 115, 130, 114, 103, 131, 115, 122, 107, 129, 103, 116, 111, 118, 120, 128, 109, 101, 110, 116, 120, 109, 116, 112, 113, 115, 107, 121, 123, 108, 114, 117, 114, 110, 103, 108, 119, 97, 118, 120, 116, 114, 109, 117, 110, 109, 108, 119, 114, 134, 133, 117, 107, 111, 117, 110, 123, 106, 110, 117, 113, 107, 114, 123, 114, 121, 125, 114, 109, 114, 127, 115, 128, 111, 111, 117, 103, 117, 114, 113, 111, 115, 107, 111, 118, 112, 115, 114, 108, 114, 115, 115, 118, 106, 116, 114, 119, 109, 112, 124, 128, 119, 123, 117, 115, 118, 127, 113, 112, 122, 115, 107, 123, 109, 115, 116, 113, 127, 120, 116, 109, 110, 122, 105, 124, 113, 115, 112, 117, 114, 114, 112, 108, 112, 126, 99, 100, 132, 116, 114, 111, 108, 129, 112, 120, 108, 120, 121, 113, 124, 106, 101, 118, 112, 119, 107, 107, 122, 112, 118, 107, 119, 114, 123, 111, 111, 118, 116, 116, 106, 112, 131, 122, 119, 119, 121, 118, 113, 110, 123, 117, 123, 105, 121, 113, 132, 125, 126, 133, 123, 124, 122, 111, 121, 105, 106, 115, 115, 110, 120, 119, 120, 116, 108, 124, 126, 114, 114, 98, 120, 114, 130, 110, 106, 99, 106, 118, 118, 119, 112, 116, 117, 114, 108, 117, 120, 114, 118, 116, 122, 111, 115, 116, 115, 123, 114, 110, 111, 124, 116, 106, 121, 119, 132, 119, 109, 112, 113, 122, 124, 110, 118, 109, 116, 113, 123, 112, 135, 103, 117, 142, 124, 110, 108, 116, 101, 114, 105, 112, 117, 130, 129, 122, 120, 115, 120, 110, 130, 121, 139, 125, 113, 114, 116, 108, 111, 118, 116, 123, 115, 117, 121, 114, 109, 129, 112, 116, 132, 104, 121, 106, 118, 111, 122, 104, 114, 116, 120, 140, 113, 111, 122, 124, 103, 112, 112, 121, 114, 124, 105, 105, 110, 106, 115, 117, 124, 138, 108, 135, 118, 118, 126, 112, 120, 110, 121, 113, 117, 114, 119, 111, 118, 117, 107, 124, 111, 113, 105, 120, 116, 108, 122, 121, 117, 118, 122, 98, 135, 106, 113, 113, 115, 113, 119, 103, 111, 116, 108, 108, 124, 115, 141, 114, 107, 111, 122, 120, 118, 114, 103, 106, 140, 97, 126, 116, 112, 114, 101, 118, 123, 115, 118, 119, 115, 104, 125, 119, 105, 111, 114, 112, 102, 120, 114, 112, 115, 99, 104, 119, 126, 122, 116, 118, 111, 113, 103, 96, 122, 122, 118, 123, 121, 125, 100, 122, 119, 120, 113, 133, 123, 119, 115, 124, 114, 114, 125, 120, 119, 126, 116, 109, 119, 108, 115, 123, 114, 112, 124, 114, 110, 124, 114, 115, 111, 117, 121, 102, 108, 128, 115, 107, 115, 122, 118, 132, 123, 117, 110, 104, 98, 120, 118, 106, 119, 127, 118, 113, 120, 109, 115, 122, 113, 117, 121, 113, 127, 110, 109, 115, 117, 120, 121, 110, 125, 104, 116, 104, 112, 103, 107, 110, 108, 127, 128, 120, 121, 121, 112, 128, 125, 107, 112, 122, 117, 115, 105, 125, 113, 117, 107, 118, 111, 123, 96, 130, 127, 131, 128, 111, 103, 118, 118, 117, 117, 109, 134, 108, 125, 110, 120, 116, 106, 107, 123, 122, 124, 124, 111, 121, 118, 124, 113, 108, 108, 122, 111, 105, 117, 116, 109, 120, 120, 105, 106, 116, 108, 127, 108, 115, 106, 121, 120, 127, 120, 116, 110, 122, 113, 120, 112, 122, 117, 119, 111, 95, 119, 126, 129, 113, 117, 127, 114, 111, 102, 120, 113, 114, 118, 114, 126, 113, 113, 119, 121, 117, 113, 121, 114, 115, 112, 110, 113, 115, 102, 115, 115, 121, 103, 109, 104, 107, 117, 111, 118, 121, 116, 122, 115, 113, 102, 117, 109, 121, 120, 113, 96, 130, 132, 125, 115, 115, 110, 111, 118, 105, 125, 122, 109, 115, 104, 115, 115, 110, 113, 124, 111, 108, 104, 113, 120, 108, 115, 114, 106, 115, 115, 109, 108, 120, 113, 117, 121, 120, 115, 111, 121, 119, 114, 117, 118, 109, 117, 118, 122, 117, 108, 115, 114, 113, 121, 110, 107, 114, 112, 132, 111, 116, 109, 126, 126, 119, 118, 122, 113, 111, 113, 126, 109, 123, 115, 112, 109, 113, 119, 104, 125, 120, 120, 100, 116, 123, 122, 121, 107, 118, 105, 105, 112, 149, 114, 122, 125, 117, 115, 123, 111, 111, 117, 125, 106, 120, 113, 109, 102, 147, 116, 114, 113, 118, 123, 119, 103, 111, 108, 120, 121, 118, 125, 106, 112, 107, 111, 98, 104, 103, 97, 103, 125, 118, 111, 118, 111, 118, 119, 116, 96, 121, 119, 120, 101, 108, 124, 127, 125, 107, 123, 97, 112, 117, 115, 112, 122, 125, 103, 128, 111, 107, 117, 125, 117, 114, 126, 104, 123, 115, 120, 118, 105, 120, 116, 124, 122, 126, 114, 120, 115, 122, 116, 98, 127, 114, 129, 119, 123, 116, 109, 109, 103, 146, 108, 113, 128, 126, 117, 114, 121, 105, 137, 112, 101, 114, 126, 108, 118, 124, 95, 116, 110, 106, 120, 120, 127, 109, 104, 113, 100, 123, 126, 99, 117, 123, 122, 114, 124, 130, 115, 119, 120, 112, 122, 121, 115, 114, 114, 126, 120, 117, 127, 127, 121, 114, 120, 108, 108, 117, 119, 117, 109, 119, 112, 113, 112, 104, 126, 121, 112, 115, 117, 120, 118, 114, 119, 116, 118, 105, 114, 113, 105, 103, 117, 118, 116, 95, 116, 121, 121, 120, 115, 121, 114, 119, 116, 121, 125, 119, 118, 111, 126, 114, 126, 136, 116, 115, 116, 113, 115, 121, 115, 101, 121, 110, 110, 119, 116, 120, 118, 97, 120, 114, 118, 120, 119, 126, 117, 121, 114, 117, 124, 100, 116, 107, 113, 124, 107, 116, 120, 112, 108, 109, 114, 110, 121, 121, 118, 100, 122, 116, 126, 113, 114, 108, 127, 110, 116, 109, 117, 111, 121, 110, 122, 119, 124, 122, 110, 123, 112, 117, 116, 117, 123, 123, 110, 119, 105, 116, 110, 111, 119, 130, 115, 112, 121, 116, 115, 119, 118, 116, 117, 116, 116, 112, 104, 118, 119, 121, 112, 119, 96, 90, 118, 115, 125, 117, 110, 117, 110, 114, 119, 123, 116, 120, 109, 115, 111, 114, 109, 112, 106, 110, 108, 115, 118, 114, 119, 116, 121, 107, 116, 112, 116, 113, 111, 113, 114, 122, 112, 118, 121, 118, 107, 117, 110, 109, 117, 105, 121, 111, 118, 117, 114, 111, 127, 125, 117, 120, 113, 110, 112, 120, 112, 114, 121, 111, 113, 115, 114, 115, 112, 106, 114, 119, 124, 110, 116, 117, 108, 112, 116, 107, 121, 107, 115, 126, 121, 107, 117, 118, 109, 113, 119, 113, 119, 110, 114, 118, 117, 123, 117, 124, 118, 126, 126, 107, 115, 112, 122, 108, 110, 110, 115, 109, 115, 116, 96, 115, 113, 129, 116, 116, 129, 107, 114, 124, 115, 112, 111, 119, 127, 117, 122, 115, 117, 113, 115, 121, 124, 118, 116, 122, 114, 115, 108, 128, 121, 115, 105, 120, 136, 113, 120, 118, 125, 118, 112, 120, 110, 125, 111, 113, 118, 123, 109, 115, 109, 118, 121, 120, 114, 121, 111, 118, 121, 118, 112, 117, 109, 121, 116, 116, 107, 109, 111, 112, 116, 113, 116, 126, 119, 116, 116, 107, 110, 113, 113, 117, 101, 117, 134, 106, 117, 115, 118, 115, 121, 111, 114, 114, 104, 115, 111, 113, 111, 118, 117, 117, 118, 118, 117, 121, 120, 117, 109, 102, 108, 118, 121, 124, 116, 119, 119, 115, 116, 111, 110, 122, 115, 119, 118, 112, 117, 111, 112, 114, 107, 115, 118, 112, 118, 116, 109, 119, 118, 124, 120, 115, 112, 114, 124, 121, 112, 119, 106, 116, 133, 120, 118, 113, 113, 116, 123, 106, 123, 116, 109, 109, 112, 122, 122, 123, 114, 113, 112, 120, 117, 122, 118, 110, 122, 119, 116, 117, 112, 111, 108, 118, 125, 125, 115, 116, 107, 117, 119, 110, 108, 119, 114, 159, 125, 118, 116, 108, 111, 111, 113, 112, 116, 112, 122, 119, 129, 111, 118, 110, 114, 116, 114, 119, 121, 113, 116, 113, 117, 118, 121, 119, 116, 123, 119, 115, 108, 115, 125, 121, 117, 118, 113, 114, 135, 106, 119, 118, 126, 111, 123, 122, 120, 121, 109, 105, 102, 111, 122, 111, 136, 110, 101, 111, 110, 116, 103, 123, 121, 109, 118, 121, 114, 115, 142, 113, 122, 122, 108, 105, 116, 110, 123, 119, 104, 114, 109, 105, 123, 121, 111, 117, 127, 124, 119, 114, 111, 109, 110, 151, 120, 125, 114, 101, 128, 119, 124, 106, 124, 123, 116, 102, 94, 116, 117, 110, 115, 105, 111, 116, 120, 116, 95, 110, 117, 122, 114, 134, 122, 109, 129, 111, 117, 121, 108, 120, 149, 106, 108, 128, 153, 134, 119, 106, 110, 109, 115, 111, 120, 106, 128, 122, 125, 115, 150, 122, 111, 117, 112, 115, 114, 118, 118, 131, 114, 130, 111, 114, 105, 109, 117, 118, 113, 109, 117, 111, 125, 125, 107, 122, 115, 124, 112, 121, 119, 125, 118, 116, 106, 129, 106, 105, 110, 110, 118, 129, 139, 112, 108, 119, 123, 102, 110, 115, 111, 113, 120, 121, 107, 118, 113, 120, 119, 119, 122, 109, 107, 132, 121, 110, 109, 113, 64, 127, 117, 116, 125, 118, 103, 111, 112, 114, 120, 116, 125, 120, 123, 125, 117, 112, 122, 120, 123, 111, 113, 92, 126, 123, 129, 113, 134, 109, 120, 109, 116, 108, 112, 122, 123, 116, 123, 116, 111, 98, 118, 120, 131, 104, 118, 110, 117, 100, 118, 121, 119, 115, 117, 123, 116, 119, 113, 105, 120, 119, 111, 125, 115, 133, 112, 109, 104, 110, 118, 116, 117, 112, 113, 94, 122, 108, 118, 122, 114, 126, 110, 126, 108, 139, 105, 119, 124, 113, 123, 116, 98, 142, 127, 118, 101, 127, 106, 145, 113, 125, 126, 118, 123, 108, 117, 114, 118, 118, 127, 117, 105, 130, 122, 120, 118, 130, 119, 101, 98, 124, 129, 102, 112, 111, 112, 117, 100, 116, 119, 113, 112, 120, 114, 93, 113, 101, 105, 102, 113, 118, 89, 126, 137, 117, 108, 104, 137, 117, 115, 124, 119, 105, 108, 103, 118, 119, 122, 112, 108, 167, 122, 113, 114, 140, 118, 108, 106, 109, 110, 94, 111, 129, 119, 119, 122, 114, 105, 122, 102, 116, 109, 123, 110, 116, 118, 119, 105, 110, 132, 123, 120, 131, 113, 114, 117, 112, 106, 118, 118, 108, 112, 114, 100, 115, 112, 131, 116, 115, 112, 112, 128, 118, 122, 102, 111, 116, 118, 120, 123, 123, 114, 120, 113, 142, 156, 102, 83, 117, 110, 119, 131, 127, 114, 109, 103, 123, 117, 117, 112, 122, 103, 117, 104, 118, 106, 113, 124, 110, 119, 120, 116, 109, 104, 122, 121, 121, 114, 117, 117, 111, 117, 102, 117, 120, 117, 112, 103, 107, 122, 113, 113, 112, 113, 116, 120, 106, 129, 122, 114, 121, 121, 113, 127, 119, 120, 114, 106, 109, 121, 114, 116, 121, 132, 117, 121, 112, 96, 118, 120, 113, 125, 102, 108, 121, 117, 102, 122, 129, 125, 115, 126, 125, 117, 109, 130, 123, 84, 108, 114, 109, 128, 112, 93, 108, 123, 120, 117, 143, 124, 122, 120, 123, 112, 112, 110, 138, 120, 114, 90, 105, 104, 124, 120, 125, 122, 116, 106, 117, 103, 115, 115, 117, 101, 136, 101, 123, 124, 115, 111, 95, 99, 102, 109, 108, 114, 119, 99, 109, 108, 120, 136, 111, 124, 118, 100, 115, 115, 119, 113, 116, 121, 109, 115, 134, 115, 99, 115, 113, 114, 110, 119, 121, 116, 116, 130, 90, 110, 103, 126, 117, 125, 100, 114, 114, 108, 114, 140, 115, 111, 106, 122, 122, 102, 122, 98, 118, 111, 122, 130, 110, 104, 97, 108, 99, 99, 115, 115, 115, 120, 109, 109, 113, 96, 105, 115, 110, 111, 99, 110, 118, 118, 115, 119, 110, 110, 122, 114, 118, 114, 115, 122, 119, 90, 108, 122, 120, 130, 108, 117, 109, 123, 115, 107, 130, 110, 119, 103, 95, 107, 104, 123, 128, 103, 115, 106, 108, 132, 107, 109, 115, 129, 98, 111, 119, 104, 97, 115, 96, 102, 118, 116, 97, 108, 109, 113, 108, 121, 112, 105, 118, 104, 125, 134, 109, 133, 115, 115, 96, 102, 95, 111, 119, 126, 112, 107, 102, 111, 101, 113, 113, 116, 107, 105, 107, 117, 122, 119, 110, 98, 116, 115, 129, 116, 109, 104, 116, 100, 123, 101, 116, 111, 120, 112, 121, 116, 123, 120, 112, 106, 117, 95, 103, 114, 112, 113, 113, 116, 115, 118, 109, 109, 122, 125, 116, 97, 99, 120, 102, 123, 110, 81, 110, 120, 127, 99, 107, 98, 121, 108, 134, 101, 140, 118, 123, 126, 110, 112, 121, 126, 125, 129, 92, 115, 127, 131, 116, 104, 123, 107, 131, 120, 111, 103, 100, 104, 112, 122, 105, 111, 125, 113, 127, 117, 122, 110, 105, 98, 108, 124, 109, 122, 104, 102, 117, 107, 114, 113, 122, 103, 116, 112, 108, 99, 137, 112, 121, 128, 115, 110, 131, 106, 128, 103, 110, 116, 117, 88, 111, 116, 114, 129, 122, 123, 116, 131, 128, 120, 115, 109, 123, 97, 92, 122, 117, 117, 123, 103, 113, 103, 131, 91, 107, 121, 107, 113, 113, 130, 115, 118, 115, 119, 124, 121, 115, 116, 115, 97, 109, 115, 105, 123, 108, 101, 120, 109, 123, 109, 129, 121, 126, 117, 99, 139, 118, 103, 113, 115, 106, 106, 112, 99, 116, 127, 125, 108, 116, 110, 130, 115, 118, 119, 114, 121, 126, 107, 114, 105, 104, 115, 113, 115, 109, 108, 120, 129, 124, 98, 111, 105, 99, 115, 125, 122, 108, 105, 117, 133, 108, 115, 104, 135, 114, 123, 117, 106, 118, 102, 103, 111, 111, 129, 109, 117, 115, 124, 129, 101, 99, 120, 109, 122, 127, 96, 123, 112, 125, 109, 109, 125, 99, 130, 95, 113, 123, 119, 112, 121, 114, 111, 113, 101, 110, 150, 117, 105, 123, 117, 124, 118, 121, 119, 141, 109, 109, 103, 137, 107, 112, 118, 126, 116, 109, 127, 107, 118, 110, 129, 120, 109, 115, 111, 120, 117, 107, 117, 113, 122, 115, 122, 113, 122, 115, 107, 121, 122, 119, 111, 113, 122, 123, 118, 112, 106, 110, 105, 117, 110, 112, 119, 199, 117, 103, 107, 110, 112, 116, 119, 108, 113, 113, 128, 110, 124, 120, 114, 109, 127, 126, 128, 113, 115, 109, 112, 94, 120, 107, 126, 113, 124, 119, 103, 114, 122, 114, 114, 123, 111, 119, 127, 114, 111, 121, 105, 128, 134, 109, 114, 111, 102, 111, 118, 109, 117, 117, 114, 118, 116, 76, 110, 135, 121, 114, 109, 112, 116, 115, 102, 111, 114, 123, 107, 112, 120, 117, 110, 109, 109, 152, 57, 121, 110, 120, 106, 119, 121, 115, 117, 87, 121, 117, 118, 117, 100, 115, 118, 122, 112, 124, 108, 117, 105, 125, 114, 109, 119, 115, 120, 110, 112, 118, 117, 127, 90, 107, 112, 114, 120, 104, 128, 119, 110, 117, 125, 116, 117, 125, 158, 126, 113, 123, 111, 113, 131, 122, 118, 123, 90, 126, 127, 108, 105, 113, 111, 107, 119, 124, 116, 111, 119, 107, 117, 120, 91, 124, 114, 127, 118, 120, 123, 119, 109, 121, 115, 111, 129, 118, 112, 115, 118, 115, 118, 128, 116, 115, 114, 109, 119, 125, 118, 120, 115, 120, 117, 105, 136, 124, 121, 120, 122, 139, 106, 127, 117, 149, 121, 117, 120, 114, 111, 117, 113, 116, 116, 120, 69, 117, 112, 118, 113, 117, 113, 102, 120, 118, 114, 96, 114, 114, 111, 103, 120, 115, 102, 126, 118, 120, 116, 113, 116, 101, 106, 131, 112, 112, 119, 113, 112, 121, 117, 111, 116, 107, 120, 118, 119, 113, 122, 119, 115, 120, 117, 136, 107, 141, 119, 113, 119, 115, 113, 121, 112, 123, 107, 122, 121, 99, 102, 125, 123, 118, 127, 121, 119, 116, 110, 112, 102, 143, 149, 117, 121, 131, 134, 119, 119, 117, 140, 121, 114, 109, 113, 114, 120, 120, 110, 120, 119, 113, 99, 121, 117, 123, 119, 131, 121, 123, 124, 122, 122, 118, 112, 118, 109, 124, 120, 100, 113, 122, 133, 116, 118, 121, 114, 114, 112, 118, 118, 122, 113, 119, 120, 117, 114, 125, 110, 109, 121, 118, 113, 115, 121, 111, 126, 116, 110, 125, 110, 135, 119, 120, 111, 116, 112, 130, 119, 117, 107, 107, 109, 108, 120, 127, 120, 116, 112, 110, 115, 110, 109, 141, 117, 118, 123, 127, 111, 117, 114, 122, 117, 117, 117, 130, 112, 112, 117, 105, 119, 124, 114, 127, 120, 119, 50, 119, 121, 115, 108, 118, 119, 110, 121, 127, 82, 101, 115, 133, 114, 117, 135, 119, 117, 110, 119, 118, 100, 98, 121, 113, 110, 113, 106, 120, 102, 125, 118, 122, 127, 126, 98, 119, 118, 114, 123, 105, 123, 113, 103, 114, 116, 114, 116, 100, 122, 127, 149, 103, 85, 118, 104, 109, 122, 121, 122, 112, 122, 120, 114, 118, 126, 125, 118, 103, 119, 109, 112, 113, 113, 117, 73, 148, 119, 113, 110, 113, 117, 119, 124, 121, 146, 112, 123, 112, 111, 121, 126, 126, 110, 112, 102, 122, 112, 123, 116, 116, 111, 111, 109, 118, 101, 115, 109, 116, 131, 117, 121, 123, 120, 121, 103, 120, 129, 89, 122, 134, 110, 116, 121, 116, 107, 128, 117, 102, 124, 100, 126, 108, 118, 104, 116, 116, 116, 125, 116, 119, 121, 118, 112, 113, 112, 115, 114, 126, 126, 119, 105, 109, 122, 123, 123, 124, 96, 125, 117, 85, 123, 112, 119, 115, 114, 108, 111, 122, 118, 128, 107, 114, 115, 114, 114, 107, 126, 121, 118, 105, 115, 107, 120, 105, 113, 106, 110, 118, 110, 116, 114, 122, 120, 114, 109, 117, 114, 107, 119, 110, 129, 122, 121, 135, 119, 117, 110, 108, 107, 119, 107, 113, 190, 126, 119, 129, 108, 106, 124, 115, 115, 124, 121, 120, 108, 141, 115, 146, 104, 117, 116, 114, 108, 118, 111, 115, 104, 109, 116, 114, 115, 119, 109, 113, 118, 120, 111, 116, 126, 115, 130, 122, 110, 127, 114, 116, 110, 125, 127, 112, 132, 113, 132, 150, 133, 138, 108, 108, 113, 117, 113, 114, 115, 117, 117, 146, 109, 113, 118, 118, 83, 129, 102, 117, 113, 109, 109, 115, 124, 126, 113, 122, 126, 114, 139, 118, 116, 110, 125, 108, 118, 117, 114, 134, 119, 122, 123, 110, 116, 111, 104, 103, 113, 108, 120, 119, 133, 115, 117, 112, 114, 120, 127, 106, 119, 106, 117, 111, 98, 98, 105, 111, 119, 100, 92, 115, 115, 112, 121, 112, 134, 125, 115, 103, 109, 115, 126, 145, 89, 86, 114, 107, 107, 112, 120, 123, 103, 115, 110, 121, 115, 111, 115, 113, 114, 119, 121, 114, 106, 125, 100, 123, 126, 120, 113, 111, 121, 118, 116, 102, 119, 109, 127, 126, 118, 149, 108, 118, 119, 111, 117, 119, 141, 112, 112, 112, 127, 116, 109, 120, 136, 121, 113, 119, 102, 102, 97, 118, 116, 115, 113, 113, 111, 110, 118, 123, 121, 120, 114, 110, 119, 117, 118, 119, 140, 116, 117, 118, 123, 113, 120, 112, 117, 115, 113, 134, 132, 107, 126, 116, 106, 113, 108, 129, 124, 115, 117, 115, 116, 113, 126, 118, 118, 114, 108, 115, 124, 109, 116, 115, 118, 115, 106, 128, 113, 110, 109, 129, 122, 120, 115, 117, 102, 119, 144, 120, 114, 119, 130, 118, 111, 109, 108, 109, 128, 111, 125, 122, 126, 118, 117, 113, 120, 105, 114, 123, 146, 119, 127, 136, 114, 117, 117, 108, 118, 115, 114, 122, 105, 109, 119, 112, 124, 110, 121, 113, 112, 124, 114, 117, 102, 125, 115, 115, 133, 120, 115, 114, 116, 111, 96, 109, 123, 113, 121, 112, 115, 109, 122, 119, 114, 118, 119, 109, 113, 103, 155, 96, 105, 115, 150, 103, 85, 117, 104, 112, 112, 117, 138, 108, 123, 126, 108, 119, 118, 118, 126, 111, 117, 131, 104, 114, 103, 116, 117, 109, 119, 121, 117, 125, 122, 113, 110, 96, 133, 112, 111, 111, 106, 108, 115, 110, 117, 121, 114, 114, 101, 116, 123, 137, 111, 109, 127, 118, 116, 119, 114, 113, 113, 113, 135, 121, 125, 86, 114, 120, 126, 118, 109, 117, 101, 115, 117, 109, 105, 113, 96, 121, 121, 121, 103, 123, 107, 110, 127, 116, 126, 99, 89, 102, 111, 116, 125, 115, 125, 94, 113, 117, 119, 127, 110, 125, 129, 113, 114, 121, 119, 114, 116, 114, 123, 118, 120, 112, 109, 111, 113, 121, 118, 121, 111, 113, 116, 138, 124, 99, 104, 114, 130, 118, 113, 106, 104, 111, 120, 107, 130, 113, 117, 128, 111, 129, 111, 114, 109, 119, 118, 118, 107, 109, 118, 106, 117, 124, 111, 97, 115, 119, 122, 103, 106, 127, 124, 125, 123, 116, 116, 111, 96, 124, 126, 112, 117, 115, 108, 118, 104, 110, 102, 117, 118, 135, 117, 117, 106, 110, 131, 121, 116, 101, 111, 113, 116, 117, 119, 121, 93, 129, 103, 132, 127, 120, 109, 118, 104, 118, 118, 98, 127, 111, 108, 124, 110, 80, 115, 120, 96, 142, 117, 105, 121, 118, 140, 97, 108, 125, 103, 108, 125, 121, 112, 125, 116, 124, 96, 124, 123, 124, 108, 138, 103, 110, 124, 133, 118, 130, 114, 112, 138, 109, 92, 114, 114, 128, 115, 116, 123, 124, 126, 111, 118, 127, 110, 104, 106, 109, 122, 101, 105, 119, 118, 105, 117, 99, 101, 118, 113, 135, 117, 112, 110, 110, 119, 115, 120, 127, 111, 123, 127, 105, 113, 124, 98, 117, 113, 110, 118, 110, 114, 110, 117, 119, 113, 125, 112, 97, 121, 137, 114, 114, 120, 113, 117, 97, 124, 115, 128, 112, 119, 100, 109, 117, 90, 100, 107, 104, 111, 124, 126, 115, 122, 107, 115, 108, 107, 122, 125, 110, 119, 139, 108, 97, 117, 118, 118, 105, 112, 119, 119, 120, 124, 123, 125, 142, 124, 116, 121, 124, 116, 112, 116, 110, 110, 109, 114, 130, 126, 148, 123, 119, 136, 121, 133, 104, 115, 117, 106, 117, 114, 115, 116, 116, 102, 103, 110, 132, 114, 131, 125, 116, 121, 120, 108, 115, 118, 105, 115, 112, 107, 119, 115, 111, 117, 122, 115, 121, 121, 110, 112, 111, 113, 112, 115, 115, 129, 111, 123, 122, 116, 122, 117, 134, 122, 120, 116, 118, 102, 117, 112, 110, 96, 120, 112, 108, 121, 117, 132, 119, 118, 139, 129, 120, 123, 106, 121, 111, 125, 107, 109, 105, 121, 105, 112, 114, 107, 111, 123, 115, 117, 113, 114, 122, 127, 105, 127, 114, 113, 116, 100, 134, 130, 117, 109, 103, 117, 117, 132, 104, 110, 112, 114, 124, 125, 110, 119, 124, 109, 109, 108, 118, 118, 125, 107, 123, 102, 113, 102, 121, 99, 126, 109, 106, 116, 95, 121, 127, 114, 94, 142, 138, 116, 129, 122, 114, 125, 113, 105, 102, 117, 111, 132, 121, 109, 136, 105, 102, 115, 108, 117, 120, 112, 117, 139, 121, 112, 123, 121, 107, 119, 112, 128, 119, 106, 112, 113, 133, 112, 115, 120, 122, 123, 115, 112, 131, 108, 130, 123, 118, 121, 110, 94, 108, 115, 110, 117, 122, 112, 101, 116, 116, 114, 113, 112, 127, 113, 111, 93, 118, 118, 119, 104, 107, 130, 109, 124, 119, 113, 128, 89, 109, 131, 109, 108, 142, 126, 116, 115, 115, 119, 118, 112, 112, 121, 103, 119, 119, 126, 103, 115, 120, 115, 106, 120, 122, 114, 114, 126, 113, 108, 116, 103, 134, 123, 124, 108, 128, 118, 117, 115, 106, 125, 113, 115, 120, 119, 110, 114, 99, 110, 117, 122, 124, 116, 114, 119, 117, 122, 114, 125, 110, 113, 123, 115, 109, 111, 116, 123, 114, 96, 123, 118, 117, 112, 117, 118, 110, 124, 98, 130, 114, 105, 108, 120, 117, 114, 112, 114, 117, 117, 123, 120, 116, 109, 120, 116, 118, 120, 125, 110, 114, 122, 109, 126, 113, 118, 125, 119, 115, 124, 103, 118, 118, 116, 114, 154, 111, 113, 104, 118, 115, 110, 121, 122, 77, 99, 120, 120, 115, 130, 120, 106, 113, 119, 122, 138, 125, 113, 115, 102, 118, 114, 125, 110, 117, 121, 115, 121, 118, 109, 118, 115, 117, 112, 117, 106, 116, 115, 133, 112, 125, 119, 118, 117, 117, 130, 124, 103, 118, 117, 110, 113, 124, 115, 115, 110, 118, 108, 112, 112, 122, 115, 112, 112, 105, 118, 103, 119, 126, 122, 112, 118, 121, 110, 110, 115, 125, 114, 115, 111, 110, 119, 113, 112, 107, 116, 109, 120, 107, 109, 126, 54, 125, 129, 131, 106, 116, 118, 119, 125, 114, 119, 108, 114, 109, 110, 84, 121, 115, 117, 116, 118, 111, 123, 112, 120, 117, 117, 103, 116, 118, 123, 107, 121, 115, 114, 108, 123, 106, 116, 117, 108, 115, 144, 180, 110, 124, 140, 125, 133, 109, 126, 115, 117, 125, 132, 113, 115, 111, 115, 129, 111, 119, 113, 107, 107, 129, 120, 118, 130, 116, 103, 111, 130, 113, 106, 114, 109, 111, 110, 122, 128, 125, 117, 116, 111, 111, 129, 107, 106, 162, 110, 116, 124, 117, 119, 114, 112, 118, 115, 124, 127, 116, 119, 109, 116, 105, 116, 121, 118, 121, 184, 131, 120, 119, 120, 121, 112, 110, 110, 129, 123, 113, 113, 127, 105, 116, 126, 112, 125, 116, 113, 121, 112, 125, 124, 115, 126, 115, 119, 110, 101, 114, 109, 112, 103, 174, 112, 105, 110, 105, 123, 108, 116, 119, 125, 126, 110, 117, 114, 115, 103, 122, 117, 110, 120, 122, 127, 119, 116, 120, 118, 111, 110, 103, 122, 124, 114, 107, 120, 109, 112, 125, 114, 112, 123, 118, 111, 121, 122, 117, 112, 112, 121, 106, 118, 214, 112, 110, 108, 112, 108, 118, 122, 110, 118, 102, 113, 115, 108, 116, 115, 113, 130, 96, 116, 118, 114, 129, 108, 123, 110, 111, 116, 115, 117, 116, 126, 106, 119, 119, 120, 110, 118, 120, 118, 115, 116, 127, 120, 112, 128, 118, 119, 108, 112, 116, 112, 118, 116, 102, 109, 124, 115, 130, 110, 110, 116, 126, 113, 129, 88, 114, 126, 121, 101, 118, 111, 123, 117, 122, 109, 121, 114, 120, 117, 116, 110, 117, 169, 117, 119, 119, 121, 113, 105, 115, 114, 112, 121, 111, 123, 113, 104, 116, 127, 125, 119, 114, 116, 120, 108, 118, 107, 115, 113, 124, 115, 116, 109, 120, 113, 92, 113, 123, 131, 124, 126, 108, 107, 89, 107, 107, 111, 113, 115, 126, 118, 114, 110, 107, 120, 112, 156, 118, 132, 114, 113, 109, 115, 107, 117, 127, 154, 111, 116, 119, 130, 123, 117, 105, 108, 117, 116, 117, 115, 101, 106, 107, 120, 127, 153, 164, 105, 105, 128, 118, 106, 115, 107, 114, 132, 123, 94, 112, 106, 121, 118, 116, 100, 102, 131, 119, 110, 116, 110, 114, 111, 110, 113, 108, 117, 117, 125, 115, 112, 108, 100, 108, 93, 112, 119, 120, 112, 107, 116, 126, 124, 132, 117, 126, 117, 132, 111, 117, 121, 110, 121, 119, 133, 114, 121, 112, 105, 122, 105, 123, 139, 132, 107, 117, 126, 113, 111, 116, 115, 127, 120, 107, 117, 91, 105, 104, 121, 123, 117, 114, 112, 122, 133, 141, 109, 103, 127, 107, 112, 109, 129, 124, 125, 120, 102, 93, 115, 113, 99, 115, 97, 126, 121, 112, 114, 130, 111, 123, 110, 103, 102, 117, 109, 105, 115, 114, 118, 111, 116, 130, 106, 125, 117, 105, 113, 107, 106, 116, 112, 105, 135, 119, 116, 102, 117, 140, 113, 106, 103, 113, 108, 118, 115, 128, 123, 113, 106, 113, 78, 112, 120, 114, 119, 122, 105, 112, 121, 123, 115, 99, 104, 108, 117, 117, 117, 137, 113, 113, 107, 119, 119, 119, 118, 110, 118, 124, 109, 112, 105, 113, 121, 113, 123, 107, 112, 116, 117, 119, 121, 118, 119, 104, 122, 120, 128, 118, 143, 110, 117, 105, 116, 109, 115, 112, 111, 110, 114, 126, 112, 112, 115, 118, 127, 118, 96, 117, 111, 113, 129, 120, 115, 119, 105, 116, 126, 130, 127, 113, 116, 116, 124, 111, 114, 113, 118, 112, 107, 115, 117, 110, 116, 111, 120, 115, 126, 120, 130, 121, 107, 103, 111, 126, 123, 111, 120, 110, 119, 115, 119, 121, 113, 123, 114, 126, 128, 117, 121, 111, 106, 111, 122, 117, 130, 114, 111, 107, 113, 123, 127, 104, 114, 105, 111, 116, 119, 119, 117, 106, 122, 120, 123, 119, 115, 129, 146, 127, 120, 103, 124, 108, 109, 117, 114, 110, 119, 120, 112, 100, 125, 118, 123, 118, 123, 116, 128, 117, 113, 104, 107, 106, 129, 98, 101, 96, 121, 106, 112, 123, 120, 97, 107, 113, 132, 117, 127, 119, 123, 108, 110, 121, 114, 119, 114, 119, 133, 83, 136, 120, 115, 107, 92, 110, 116, 126, 134, 126, 108, 104, 93, 117, 104, 118, 117, 113, 100, 113, 106, 120, 112, 112, 133, 104, 93, 110, 107, 117, 118, 114, 119, 116, 116, 119, 118, 117, 112, 102, 117, 125, 97, 115, 116, 135, 124, 103, 118, 105, 106, 107, 120, 98, 115, 126, 110, 110, 102, 120, 130, 101, 113, 100, 110, 112, 121, 108, 105, 114, 123, 116, 127, 123, 124, 122, 114, 120, 117, 114, 111, 147, 111, 111, 123, 103, 130, 126, 120, 103, 97, 113, 117, 105, 130, 106, 125, 119, 108, 110, 115, 116, 112, 112, 113, 108, 117, 113, 112, 108, 114, 121, 108, 138, 113, 120, 111, 116, 107, 102, 107, 121, 107, 113, 117, 111, 122, 113, 116, 111, 114, 112, 117, 116, 122, 118, 116, 109, 120, 106, 129, 117, 113, 113, 122, 116, 117, 113, 120, 117, 106, 110, 126, 101, 104, 120, 108, 137, 114, 108, 116, 115, 116, 120, 130, 109, 121, 125, 105, 108, 124, 110, 108, 111, 107, 127, 115, 124, 118, 124, 111, 114, 113, 110, 106, 106, 122, 108, 115, 123, 103, 114, 107, 98, 118, 113, 123, 114, 105, 116, 106, 111, 142, 123, 118, 114, 108, 115, 107, 107, 108, 119, 113, 123, 115, 134, 115, 131, 116, 112, 113, 107, 115, 111, 111, 109, 113, 111, 114, 107, 115, 107, 110, 102, 119, 110, 114, 126, 104, 110, 124, 123, 119, 120, 116, 116, 119, 93, 129, 113, 110, 111, 120, 112, 119, 143, 117, 106, 140, 106, 122, 121, 104, 108, 129, 107, 116, 116, 118, 111, 98, 122, 118, 108, 117, 121, 132, 90, 114, 115, 111, 111, 121, 110, 109, 121, 108, 125, 117, 117, 117, 118, 125, 122, 122, 107, 124, 122, 131, 134, 109, 126, 115, 127, 116, 108, 121, 107, 110, 113, 135, 111, 123, 101, 121, 119, 113, 128, 134, 121, 118, 100, 115, 114, 100, 114, 123, 112, 117, 121, 108, 108, 124, 124, 122, 128, 136, 107, 111, 145, 132, 110, 122, 117, 123, 114, 108, 122, 112, 107, 118, 130, 113, 115, 116, 123, 114, 107, 114, 108, 113, 103, 116, 116, 111, 121, 122, 129, 102, 125, 120, 111, 123, 123, 142, 123, 114, 126, 115, 120, 118, 109, 115, 112, 101, 117, 117, 121, 127, 129, 129, 122, 118, 92, 98, 108, 118, 117, 121, 120, 104, 118, 121, 134, 111, 116, 110, 112, 115, 125, 108, 105, 119, 119, 113, 118, 115, 118, 124, 124, 106, 112, 116, 115, 98, 104, 106, 121, 134, 109, 119, 118, 129, 88, 127, 110, 124, 96, 124, 112, 117, 114, 117, 116, 117, 126, 112, 129, 115, 118, 119, 110, 113, 112, 104, 113, 107, 120, 100, 120, 114, 119, 123, 111, 130, 108, 104, 113, 112, 120, 117, 115, 119, 125, 130, 125, 134, 132, 120, 109, 107, 126, 122, 112, 107, 109, 121, 113, 122, 121, 133, 123, 111, 119, 113, 108, 119, 115, 119, 126, 104, 117, 125, 105, 116, 107, 116, 121, 101, 106, 119, 117, 116, 85, 114, 115, 115, 117, 99, 115, 106, 131, 124, 119, 111, 101, 115, 124, 115, 119, 107, 116, 121, 122, 118, 105, 122, 117, 106, 99, 108, 108, 103, 119, 113, 113, 118, 102, 112, 111, 124, 112, 114, 106, 111, 115, 92, 122, 116, 118, 109, 117, 114, 118, 118, 127, 119, 104, 105, 119, 127, 119, 108, 117, 128, 115, 107, 115, 118, 116, 110, 123, 115, 118, 108, 125, 106, 128, 105, 116, 115, 111, 116, 112, 140, 110, 113, 106, 115, 129, 113, 105, 113, 110, 114, 118, 114, 109, 127, 101, 121, 105, 108, 118, 112, 103, 113, 126, 104, 124, 124, 109, 121, 111, 114, 112, 126, 111, 111, 114, 96, 111, 108, 135, 108, 105, 134, 114, 106, 107, 119, 108, 129, 121, 125, 111, 88, 120, 126, 114, 132, 121, 107, 103, 115, 101, 112, 127, 120, 117, 119, 115, 105, 115, 121, 114, 119, 111, 112, 129, 111, 103, 109, 119, 116, 107, 128, 115, 117, 114, 109, 110, 153, 111, 113, 112, 113, 107, 108, 125, 106, 92, 135, 133, 120, 111, 122, 121, 132, 122, 123, 127, 116, 108, 109, 121, 113, 109, 112, 121, 111, 113, 107, 120, 117, 118, 127, 116, 109, 93, 119, 111, 124, 109, 123, 123, 126, 119, 104, 112, 131, 115, 122, 118, 110, 94, 111, 118, 125, 107, 114, 121, 119, 119, 112, 118, 120, 108, 125, 110, 121, 120, 121, 112, 109, 119, 121, 133, 117, 108, 108, 103, 109, 91, 107, 99, 129, 115, 125, 104, 106, 104, 73, 137, 111, 104, 118, 100, 109, 124, 84, 111, 125, 101, 110, 104, 92, 130, 109, 109, 117, 91, 121, 117, 106, 113, 113, 126, 124, 119, 118, 123, 128, 115, 119, 112, 127, 115, 150, 128, 109, 129, 122, 106, 124, 125, 118, 114, 111, 116, 112, 93, 116, 116, 100, 112, 118, 114, 111, 118, 136, 109, 128, 117, 116, 116, 113, 116, 115, 118, 118, 132, 117, 114, 112, 126, 108, 125, 111, 114, 121, 111, 127, 119, 123, 111, 118, 110, 107, 118, 113, 118, 123, 126, 114, 116, 111, 116, 97, 117, 120, 107, 117, 107, 122, 116, 116, 99, 114, 116, 138, 120, 106, 114, 118, 109, 134, 112, 99, 101, 99, 118, 115, 113, 107, 113, 111, 112, 120, 118, 116, 110, 128, 115, 108, 113, 122, 113, 117, 105, 120, 106, 119, 110, 117, 107, 105, 129, 119, 119, 114, 125, 116, 124, 121, 124, 98, 117, 107, 89, 120, 101, 115, 114, 111, 122, 107, 110, 108, 122, 123, 111, 117, 114, 117, 107, 124, 111, 120, 124, 112, 115, 120, 120, 115, 117, 123, 122, 113, 122, 116, 118, 120, 117, 110, 121, 105, 111, 124, 112, 111, 106, 123, 123, 112, 123, 111, 104, 117, 114, 110, 118, 122, 111, 125, 133, 106, 121, 123, 111, 119, 101, 124, 113, 116, 124, 110, 117, 107, 115, 112, 114, 121, 112, 128, 103, 112, 115, 96, 103, 116, 114, 99, 123, 114, 105, 117, 135, 111, 113, 122, 109, 111, 111, 119, 113, 112, 114, 110, 111, 106, 124, 102, 108, 105, 106, 110, 115, 155, 141, 114, 86, 118, 111, 133, 123, 132, 116, 109, 121, 129, 110, 128, 113, 105, 118, 109, 110, 116, 102, 108, 111, 101, 112, 106, 104, 104, 114, 121, 124, 113, 110, 116, 124, 127, 111, 123, 106, 119, 132, 118, 129, 117, 113, 116, 128, 122, 113, 110, 114, 127, 119, 114, 118, 114, 116, 116, 109, 114, 113, 124, 109, 101, 124, 133, 121, 118, 120, 110, 104, 97, 101, 113, 118, 120, 131, 96, 115, 140, 116, 105, 109, 106, 107, 109, 117, 117, 120, 118, 111, 118, 115, 118, 118, 105, 87, 115, 118, 122, 150, 130, 136, 114, 126, 108, 108, 119, 124, 115, 118, 110, 147, 113, 114, 117, 106, 117, 121, 136, 119, 112, 127, 115, 108, 102, 123, 127, 100, 119, 110, 106, 96, 105, 124, 127, 116, 109, 123, 112, 117, 117, 112, 115, 121, 116, 110, 109, 130, 105, 114, 116, 118, 116, 127, 125, 103, 110, 103, 119, 112, 120, 107, 116, 101, 116, 126, 111, 118, 116, 126, 120, 104, 122, 111, 118, 124, 121, 102, 110, 132, 108, 112, 106, 120, 126, 109, 112, 106, 99, 105, 115, 102, 104, 119, 121, 123, 116, 102, 134, 122, 119, 118, 96, 113, 106, 132, 113, 105, 121, 111, 135, 121, 131, 124, 126, 123, 120, 113, 119, 119, 121, 121, 115, 118, 115, 120, 133, 115, 109, 115, 111, 123, 121, 107, 113, 117, 123, 121, 109, 116, 115, 109, 123, 122, 124, 124, 130, 118, 102, 126, 121, 118, 116, 124, 110, 123, 123, 123, 111, 111, 123, 117, 113, 112, 119, 118, 115, 124, 121, 106, 117, 112, 132, 96, 117, 95, 123, 119, 101, 128, 102, 118, 120, 120, 113, 112, 111, 108, 103, 129, 124, 136, 108, 107, 120, 119, 103, 109, 97, 125, 100, 123, 114, 98, 113, 118, 103, 116, 104, 120, 120, 108, 108, 115, 121, 122, 107, 96, 117, 102, 120, 117, 124, 117, 112, 108, 115, 114, 116, 113, 113, 125, 117, 111, 123, 114, 124, 125, 134, 127, 107, 121, 124, 116, 117, 114, 114, 108, 123, 120, 123, 113, 108, 115, 101, 123, 110, 111, 119, 109, 122, 122, 113, 114, 130, 112, 124, 114, 119, 123, 109, 108, 115, 108, 124, 110, 107, 123, 105, 120, 122, 116, 113, 112, 118, 104, 118, 122, 121, 131, 111, 128, 128, 115, 122, 121, 110, 110, 113, 122, 125, 106, 113, 100, 118, 100, 111, 132, 121, 114, 105, 107, 114, 100, 104, 114, 99, 124, 113, 124, 114, 121, 107, 112, 117, 122, 129, 112, 123, 99, 99, 122, 137, 107, 116, 106, 110, 121, 123, 122, 114, 124, 127, 124, 101, 116, 120, 128, 130, 105, 124, 109, 116, 128, 107, 108, 110, 135, 115, 109, 117, 116, 107, 107, 115, 122, 118, 87, 126, 109, 116, 102, 124, 110, 114, 112, 116, 113, 123, 128, 112, 115, 120, 129, 110, 123, 116, 109, 107, 113, 100, 117, 121, 118, 111, 124, 106, 114, 108, 109, 103, 116, 137, 111, 116, 127, 130, 113, 102, 139, 120, 125, 117, 103, 130, 116, 110, 106, 124, 105, 115, 114, 105, 125, 101, 124, 116, 112, 123, 115, 119, 116, 141, 128, 99, 109, 106, 118, 114, 115, 116, 125, 123, 122, 105, 115, 113, 121, 117, 111, 107, 123, 132, 114, 108, 120, 105, 117, 107, 116, 100, 112, 125, 111, 120, 115, 133, 113, 121, 107, 127, 119, 116, 118, 110, 113, 120, 101, 116, 114, 114, 105, 135, 116, 131, 123, 107, 117, 116, 126, 121, 100, 113, 109, 104, 118, 95, 88, 112, 119, 118, 106, 132, 108, 108, 100, 114, 125, 117, 125, 122, 113, 113, 112, 118, 99, 118, 107, 112, 126, 121, 117, 125, 118, 121, 134, 134, 114, 121, 123, 122, 101, 137, 117, 122, 102, 126, 104, 120, 122, 139, 116, 108, 129, 122, 104, 115, 119, 110, 120, 109, 125, 110, 121, 103, 112, 122, 116, 119, 106, 115, 112, 133, 129, 111, 111, 99, 124, 123, 130, 104, 112, 130, 120, 122, 109, 118, 118, 116, 130, 119, 112, 119, 118, 114, 113, 143, 117, 110, 123, 114, 120, 107, 114, 129, 109, 144, 116, 120, 134, 96, 99, 106, 124, 117, 141, 107, 122, 126, 123, 109, 119, 106, 121, 126, 113, 121, 107, 104, 111, 108, 106, 122, 111, 105, 120, 114, 116, 142, 103, 118, 112, 115, 125, 111, 131, 116, 100, 119, 128, 133, 128, 96, 135, 106, 127, 114, 112, 124, 123, 115, 96, 121, 116, 148, 116, 105, 117, 111, 115, 131, 112, 109, 122, 104, 92, 140, 113, 126, 119, 127, 125, 106, 121, 124, 112, 115, 108, 130, 110, 112, 124, 112, 130, 117, 126, 109, 114, 110, 124, 122, 122, 113, 126, 106, 132, 115, 113, 98, 110, 110, 122, 130, 123, 110, 123, 111, 123, 118, 110, 122, 109, 118, 110, 118, 110, 108, 128, 120, 121, 95, 124, 107, 104, 119, 106, 95, 106, 121, 136, 118, 111, 101, 115, 120, 113, 124, 101, 127, 132, 126, 115, 138, 112, 109, 103, 114, 128, 112, 115, 108, 117, 113, 122, 113, 115, 108, 121, 138, 120, 121, 114, 121, 126, 118, 112, 130, 111, 108, 89, 109, 93, 121, 119, 105, 104, 120, 116, 113, 119, 128, 113, 115, 101, 112, 109, 131, 118, 113, 106, 118, 117, 120, 111, 110, 116, 100, 119, 116, 87, 108, 110, 108, 111, 110, 113, 108, 110, 109, 135, 113, 111, 113, 110, 118, 130, 115, 114, 118, 136, 114, 104, 117, 111, 110, 114, 124, 105, 109, 111, 94, 116, 127, 146, 124, 123, 111, 123, 115, 119, 109, 108, 121, 122, 105, 121, 107, 107, 85, 118, 142, 121, 105, 115, 132, 116, 112, 117, 102, 128, 109, 133, 133, 119, 119, 117, 101, 132, 116, 119, 108, 133, 113, 118, 108, 126, 115, 110, 114, 98, 108, 112, 114, 139, 117, 119, 110, 102, 110, 114, 124, 109, 112, 119, 107, 115, 107, 113, 129, 117, 119, 112, 106, 106, 104, 108, 133, 110, 127, 119, 109, 120, 113, 108, 134, 105, 112, 126, 110, 126, 107, 97, 120, 119, 100, 115, 107, 116, 119, 118, 109, 117, 110, 109, 128, 111, 113, 107, 120, 126, 106, 110, 107, 98, 110, 114, 112, 108, 111, 140, 117, 107, 102, 123, 126, 105, 110, 112, 116, 117, 107, 113, 115, 111, 106, 112, 126, 109, 111, 105, 95, 129, 114, 98, 109, 129, 120, 116, 133, 113, 127, 115, 130, 110, 101, 127, 118, 97, 119, 122, 132, 119, 116, 124, 113, 115, 120, 103, 121, 92, 104, 123, 128, 101, 116, 111, 125, 123, 102, 131, 111, 127, 121, 139, 106, 113, 110, 106, 112, 138, 105, 125, 106, 112, 116, 121, 98, 98, 121, 109, 106, 98, 108, 103, 123, 116, 125, 124, 115, 102, 123, 109, 114, 126, 112, 110, 115, 116, 118, 113, 127, 129, 109, 125, 149, 123, 127, 111, 112, 113, 105, 105, 117, 111, 129, 114, 114, 115, 127, 141, 106, 131, 97, 113, 110, 98, 119, 115, 108, 115, 114, 110, 126, 126, 106, 103, 123, 122, 132, 115, 115, 101, 110, 108, 101, 117, 114, 97, 118, 126, 109, 105, 118, 105, 123, 110, 118, 121, 109, 114, 115, 103, 126, 121, 130, 91, 112, 122, 111, 132, 108, 109, 107, 114, 123, 135, 113, 101, 112, 121, 107, 121, 104, 113, 102, 119, 104, 111, 113, 117, 106, 129, 119, 115, 110, 119, 100, 117, 114, 116, 111, 106, 126, 110, 121, 122, 112, 115, 109, 110, 100, 127, 112, 124, 128, 107, 116, 119, 120, 127, 113, 106, 113, 117, 98, 129, 119, 112, 123, 118, 117, 139, 122, 152, 114, 107, 124, 117, 104, 116, 115, 112, 107, 111, 103, 118, 116, 111, 109, 116, 123, 128, 106, 110, 119, 106, 100, 115, 128, 154, 133, 112, 122, 124, 132, 125, 111, 122, 136, 98, 125, 110, 126, 120, 115, 110, 131, 112, 104, 110, 124, 130, 117, 104, 122, 120, 119, 118, 134, 130, 126, 122, 111, 106, 126, 138, 106, 127, 115, 128, 108, 114, 123, 112, 99, 126, 105, 114, 116, 107, 122, 112, 109, 112, 92, 115, 110, 120, 99, 140, 107, 104, 116, 129, 124, 118, 114, 125, 116, 114, 116, 107, 108, 130, 107, 127, 114, 118, 135, 104, 98, 105, 107, 118, 132, 131, 119, 116, 120, 119, 120, 139, 105, 109, 129, 116, 126, 115, 121, 113, 113, 121, 107, 120, 105, 115, 126, 113, 112, 117, 126, 126, 122, 119, 105, 132, 104, 115, 111, 142, 110, 119, 119, 126, 125, 128, 119, 109, 113, 123, 116, 120, 113, 117, 94, 123, 112, 132, 106, 108, 117, 111, 104, 112, 115, 104, 113, 128, 96, 126, 123, 126, 114, 108, 104, 126, 109, 113, 96, 107, 121, 112, 117, 119, 107, 114, 113, 116, 110, 151, 137, 102, 114, 110, 137, 124, 131, 95, 117, 125, 122, 105, 112, 116, 106, 102, 106, 111, 130, 111, 116, 126, 108, 109, 101, 108, 103, 107, 138, 107, 111, 110, 124, 113, 113, 120, 114, 119, 94, 137, 121, 120, 106, 117, 114, 108, 111, 102, 125, 102, 112, 116, 134, 110, 124, 127, 108, 112, 112, 131, 110, 101, 115, 139, 99, 122, 91, 122, 118, 105, 112, 108, 113, 124, 119, 102, 113, 109, 120, 99, 115, 131, 126, 132, 105, 113, 145, 102, 114, 122, 116, 127, 105, 124, 135, 109, 98, 119, 137, 112, 117, 99, 122, 108, 121, 116, 112, 125, 122, 116, 114, 108, 128, 111, 120, 117, 115, 112, 125, 112, 125, 115, 110, 118, 128, 109, 111, 131, 122, 104, 115, 113, 113, 111, 123, 104, 106, 116, 106, 120, 121, 112, 114, 123, 104, 116, 110, 118, 119, 125, 122, 119, 119, 112, 107, 114, 123, 118, 115, 116, 123, 116, 122, 125, 115, 126, 117, 118, 116, 110, 123, 113, 113, 129, 107, 120, 129, 104, 121, 124, 122, 112, 113, 111, 114, 120, 117, 117, 119, 120, 113, 125, 117, 116, 115, 116, 114, 122, 120, 130, 112, 118, 120, 118, 121, 120, 120, 115, 114, 118, 115, 123, 117, 120, 113, 112, 106, 119, 98, 105, 118, 115, 117, 120, 117, 104, 122, 113, 122, 117, 117, 131, 117, 113, 114, 108, 116, 123, 128, 113, 114, 128, 112, 111, 106, 119, 123, 116, 115, 113, 111, 112, 120, 120, 109, 117, 113, 118, 117, 114, 117, 121, 118, 122, 116, 115, 119, 125, 119, 120, 109, 110, 110, 114, 123, 115, 111, 109, 118, 125, 102, 117, 124, 122, 123, 115, 120, 106, 112, 123, 117, 117, 112, 121, 114, 114, 117, 104, 99, 127, 115, 110, 101, 117, 117, 123, 114, 114, 119, 118, 106, 118, 115, 118, 110, 126, 115, 112, 129, 110, 129, 111, 121, 116, 119, 102, 117, 123, 106, 116, 112, 106, 111, 115, 109, 118, 117, 107, 120, 115, 117, 114, 121, 117, 113, 118, 119, 118, 106, 115, 110, 116, 116, 121, 116, 112, 110, 116, 113, 109, 113, 120, 112, 116, 118, 120, 124, 115, 119, 112, 115, 132, 121, 125, 113, 118, 113, 123, 119, 112, 115, 114, 120, 121, 109, 109, 118, 118, 118, 115, 127, 117, 110, 109, 131, 120, 116, 120, 129, 113, 115, 116, 109, 122, 105, 105, 103, 116, 124, 113, 115, 121, 120, 122, 121, 118, 101, 120, 109, 113, 121, 115, 112, 120, 124, 116, 116, 119, 116, 122, 120, 117, 119, 122, 116, 126, 116, 119, 115, 118, 118, 109, 124, 114, 113, 114, 116, 112, 112, 112, 113, 120, 114, 116, 119, 111, 106, 119, 124, 118, 103, 122, 118, 112, 114, 116, 125, 107, 121, 122, 121, 114, 127, 113, 117, 115, 113, 111, 123, 112, 121, 117, 116, 116, 109, 117, 116, 117, 115, 120, 114, 118, 112, 119, 100, 111, 126, 124, 109, 119, 120, 118, 116, 117, 126, 120, 113, 111, 102, 121, 114, 119, 111, 131, 112, 114, 120, 111, 118, 109, 111, 121, 123, 114, 109, 124, 119, 126, 106, 117, 121, 110, 118, 119, 121, 119, 118, 119, 110, 115, 116, 113, 117, 117, 116, 120, 124, 127, 120, 123, 121, 119, 108, 114, 119, 128, 122, 114, 115, 120, 116, 121, 123, 116, 121, 119, 115, 111, 108, 118, 120, 116, 122, 102, 129, 117, 118, 118, 114, 121, 119, 116, 113, 122, 123, 113, 127, 119, 108, 122, 118, 110, 109, 117, 118, 115, 106, 111, 103, 126, 127, 120, 120, 115, 115, 123, 121, 126, 118, 116, 119, 108, 115, 116, 116, 120, 120, 121, 122, 115, 119, 116, 116, 123, 120, 107, 122, 119, 115, 118, 109, 130, 101, 117, 117, 102, 124, 115, 125, 114, 109, 122, 118, 125, 122, 108, 104, 124, 121, 119, 115, 113, 127, 110, 135, 111, 108, 113, 125, 119, 116, 110, 106, 125, 106, 111, 123, 121, 113, 104, 93, 127, 98, 107, 139, 113, 111, 111, 119, 120, 124, 110, 110, 117, 117, 116, 145, 124, 115, 110, 114, 108, 114, 104, 116, 119, 120, 113, 105, 118, 116, 115, 110, 115, 109, 121, 128, 116, 107, 111, 122, 126, 127, 121, 123, 132, 111, 119, 113, 111, 117, 112, 110, 113, 128, 119, 121, 117, 114, 108, 104, 116, 111, 127, 124, 135, 111, 122, 117, 118, 110, 110, 115, 174, 116, 125, 111, 114, 112, 112, 126, 108, 124, 122, 119, 112, 121, 96, 116, 117, 111, 122, 118, 121, 126, 125, 111, 111, 97, 119, 114, 115, 114, 120, 118, 111, 102, 138, 118, 113, 117, 120, 132, 120, 119, 112, 127, 118, 110, 115, 115, 118, 142, 118, 108, 116, 117, 120, 117, 125, 107, 115, 115, 110, 121, 131, 113, 111, 117, 128, 123, 117, 129, 96, 129, 116, 100, 124, 116, 118, 116, 114, 125, 115, 117, 111, 109, 115, 109, 123, 115, 120, 124, 119, 120, 109, 115, 135, 115, 109, 104, 121, 108, 110, 115, 112, 102, 108, 132, 121, 126, 110, 116, 124, 114, 115, 117, 113, 123, 113, 111, 107, 115, 123, 118, 115, 128, 110, 118, 115, 110, 125, 116, 116, 105, 143, 116, 125, 110, 145, 117, 114, 115, 115, 106, 114, 118, 119, 105, 133, 116, 112, 125, 117, 118, 122, 117, 116, 118, 120, 112, 116, 102, 111, 131, 124, 111, 111, 115, 127, 114, 125, 162, 120, 111, 115, 141, 109, 105, 116, 106, 113, 100, 116, 116, 127, 112, 114, 102, 131, 107, 120, 104, 106, 116, 110, 109, 135, 96, 115, 110, 120, 110, 115, 121, 106, 121, 116, 113, 117, 112, 104, 106, 125, 126, 105, 119, 111, 119, 136, 113, 118, 121, 118, 120, 115, 119, 126, 126, 105, 124, 100, 123, 116, 110, 117, 122, 105, 116, 104, 109, 122, 114, 120, 116, 110, 105, 117, 107, 122, 118, 110, 117, 113, 102, 116, 130, 100, 87, 122, 138, 106, 111, 96, 117, 118, 119, 122, 117, 101, 126, 94, 132, 108, 108, 124, 108, 109, 123, 100, 110, 86, 119, 107, 110, 108, 116, 105, 118, 117, 129, 113, 112, 111, 116, 117, 107, 112, 104, 102, 104, 113, 120, 104, 122, 108, 111, 108, 115, 124, 126, 123, 99, 107, 114, 109, 110, 98, 109, 96, 121, 106, 126, 103, 124, 115, 108, 109, 108, 106, 120, 110, 142, 120, 108, 129, 122, 110, 132, 116, 124, 113, 96, 108, 118, 124, 113, 118, 125, 122, 127, 109, 121, 110, 109, 120, 106, 106, 125, 108, 109, 122, 117, 120, 135, 120, 122, 129, 119, 122, 116, 108, 121, 105, 110, 116, 124, 107, 123, 120, 116, 118, 117, 119, 120, 117, 115, 108, 110, 118, 127, 114, 114, 118, 131, 118, 111, 107, 114, 103, 122, 108, 103, 110, 112, 120, 114, 123, 106, 115, 116, 137, 123, 125, 125, 111, 141, 116, 124, 123, 125, 112, 128, 110, 122, 131, 120, 114, 114, 106, 111, 114, 116, 128, 109, 115, 123, 126, 103, 116, 130, 116, 108, 109, 129, 100, 120, 118, 109, 110, 114, 104, 112, 119, 121, 106, 111, 125, 121, 115, 115, 113, 99, 130, 110, 131, 122, 117, 156, 127, 105, 116, 114, 123, 112, 113, 123, 110, 132, 139, 118, 118, 118, 91, 125, 108, 104, 105, 126, 127, 123, 124, 114, 118, 118, 120, 112, 113, 113, 119, 139, 99, 103, 131, 131, 111, 127, 134, 96, 131, 119, 120, 128, 128, 123, 116, 117, 112, 124, 129, 112, 139, 111, 127, 133, 135, 117, 128, 99, 115, 106, 120, 112, 119, 114, 115, 106, 118, 104, 107, 120, 116, 139, 129, 127, 101, 122, 150, 120, 117, 131, 103, 113, 121, 108, 124, 110, 139, 106, 117, 122, 122, 113, 118, 106, 107, 117, 109, 124, 123, 117, 91, 131, 112, 115, 105, 110, 117, 113, 115, 118, 120, 118, 122, 112, 112, 114, 122, 123, 124, 118, 121, 115, 108, 128, 131, 126, 104, 107, 116, 119, 115, 124, 113, 120, 119, 143, 117, 122, 122, 118, 121, 118, 101, 99, 114, 128, 121, 109, 127, 122, 114, 126, 118, 98, 109, 117, 122, 103, 117, 117, 110, 115, 131, 112, 117, 128, 127, 127, 136, 107, 113, 118, 130, 113, 123, 112, 113, 107, 119, 124, 126, 137, 111, 117, 107, 122, 103, 110, 121, 114, 134, 119, 128, 115, 116, 134, 134, 127, 129, 118, 114, 121, 131, 109, 123, 101, 109, 120, 111, 126, 125, 116, 111, 104, 116, 113, 97, 119, 113, 133, 108, 129, 119, 110, 116, 136, 107, 123, 116, 132, 120, 113, 132, 117, 97, 116, 120, 107, 126, 113, 109, 134, 138, 130, 135, 109, 99, 134, 128, 115, 94, 126, 105, 112, 113, 118, 105, 112, 133, 107, 112, 116, 113, 113, 116, 121, 101, 119, 129, 119, 110, 107, 125, 106, 105, 119, 109, 107, 121, 115, 102, 113, 115, 122, 102, 112, 119, 117, 126, 110, 122, 117, 113, 125, 112, 105, 127, 110, 120, 116, 137, 124, 116, 125, 105, 112, 122, 111, 120, 119, 108, 126, 118, 115, 132, 124, 103, 116, 124, 133, 120, 120, 127, 104, 111, 113, 114, 122, 126, 115, 116, 125, 128, 101, 115, 121, 118, 111, 109, 108, 128, 113, 114, 118, 111, 101, 131, 122, 114, 128, 121, 103, 117, 125, 108, 91, 109, 116, 134, 110, 109, 103, 140, 107, 123, 107, 111, 114, 106, 141, 116, 98, 121, 109, 120, 111, 120, 112, 127, 123, 123, 115, 121, 123, 121, 115, 109, 113, 117, 106, 122, 116, 101, 122, 110, 113, 134, 112, 124, 126, 132, 109, 97, 115, 112, 121, 123, 104, 125, 113, 120, 102, 114, 115, 104, 115, 111, 115, 118, 122, 98, 101, 122, 110, 110, 106, 113, 119, 123, 120, 99, 120, 120, 117, 124, 137, 121, 102, 120, 113, 131, 97, 115, 128, 124, 122, 124, 121, 114, 130, 119, 111, 107, 114, 118, 124, 130, 136, 120, 125, 106, 107, 125, 106, 118, 110, 125, 110, 136, 119, 116, 125, 122, 113, 99, 116, 107, 107, 89, 105, 103, 153, 107, 110, 116, 105, 90, 130, 115, 120, 115, 112, 110, 126, 127, 114, 125, 124, 124, 114, 116, 109, 105, 115, 121, 85, 115, 122, 109, 96, 106, 116, 104, 110, 137, 108, 115, 109, 130, 109, 97, 109, 116, 114, 115, 117, 121, 109, 117, 113, 114, 126, 101, 121, 113, 122, 97, 108, 99, 107, 98, 97, 113, 100, 116, 128, 114, 113, 111, 124, 109, 125, 114, 97, 122, 115, 105, 99, 95, 112, 132, 109, 108, 117, 110, 107, 108, 126, 99, 99, 129, 106, 118, 121, 124, 116, 138, 127, 105, 116, 111, 116, 113, 114, 124, 112, 108, 108, 100, 105, 133, 129, 135, 141, 125, 111, 121, 115, 100, 117, 104, 98, 103, 117, 125, 109, 105, 130, 129, 122, 116, 123, 86, 87, 110, 124, 110, 109, 99, 126, 102, 122, 95, 104, 107, 107, 124, 146, 107, 125, 119, 117, 107, 124, 124, 97, 102, 121, 126, 100, 120, 101, 112, 116, 91, 134, 114, 113, 114, 103, 102, 117, 96, 107, 109, 91, 100, 117, 112, 121, 97, 115, 112, 133, 126, 119, 116, 120, 102, 93, 127, 113, 116, 101, 112, 106, 123, 109, 111, 115, 106, 121, 112, 119, 101, 120, 112, 105, 109, 128, 89, 106, 120, 130, 118, 117, 126, 104, 100, 111, 110, 94, 105, 134, 152, 106, 112, 104, 101, 130, 124, 116, 106, 93, 104, 108, 120, 129, 94, 106, 114, 114, 119, 114, 105, 110, 110, 115, 109, 122, 104, 114, 108, 118, 118, 101, 106, 121, 105, 122, 126, 115, 99, 122, 140, 103, 113, 123, 116, 140, 122, 110, 114, 108, 138, 103, 130, 112, 111, 101, 115, 119, 138, 121, 127, 124, 119, 106, 142, 104, 121, 139, 101, 136, 117, 114, 128, 123, 90, 120, 127, 126, 123, 124, 115, 120, 118, 124, 114, 98, 115, 115, 92, 115, 109, 122, 101, 91, 139, 107, 116, 75, 118, 103, 112, 117, 120, 107, 121, 112, 138, 121, 105, 93, 103, 137, 113, 115, 117, 106, 99, 115, 135, 104, 108, 113, 98, 98, 107, 103, 122, 112, 108, 111, 102, 105, 116, 128, 108, 106, 128, 109, 117, 102, 130, 175, 103, 122, 115, 105, 122, 131, 111, 132, 96, 110, 122, 101, 121, 108, 113, 120, 134, 114, 108, 120, 89, 97, 117, 133, 128, 116, 114, 105, 109, 113, 118, 123, 101, 114, 124, 119, 118, 115, 105, 106, 98, 113, 120, 114, 114, 132, 126, 104, 116, 101, 102, 147, 96, 140, 69, 128, 106, 118, 120, 95, 121, 117, 99, 125, 99, 117, 111, 107, 117, 109, 100, 124, 106, 108, 110, 106, 85, 104, 100, 95, 109, 109, 115, 109, 93, 111, 112, 99, 119, 101, 112, 116, 130, 114, 109, 127, 105, 113, 99, 95, 120, 114, 117, 107, 131, 114, 121, 130, 121, 123, 111, 138, 111, 117, 113, 116, 121, 103, 119, 145, 107, 113, 122, 108, 130, 120, 127, 133, 105, 104, 132, 110, 111, 113, 126, 107, 111, 92, 108, 118, 102, 127, 109, 130, 105, 110, 98, 106, 108, 127, 121, 108, 127, 135, 102, 117, 108, 131, 127, 112, 123, 105, 108, 95, 114, 104, 112, 114, 105, 120, 108, 129, 121, 112, 101, 114, 125, 115, 86, 112, 98, 127, 133, 113, 109, 117, 110, 116, 107, 117, 112, 120, 112, 110, 108, 110, 138, 104, 114, 111, 110, 122, 112, 114, 103, 110, 112, 110, 122, 125, 107, 117, 126, 118, 128, 121, 100, 139, 121, 114, 103, 113, 119, 101, 113, 113, 110, 113, 103, 125, 110, 113, 115, 101, 122, 127, 109, 134, 107, 128, 114, 130, 121, 124, 118, 116, 114, 112, 116, 100, 115, 111, 128, 117, 107, 137, 127, 126, 114, 132, 113, 122, 112, 98, 112, 117, 119, 116, 106, 121, 115, 122, 108, 130, 121, 107, 128, 131, 104, 103, 125, 103, 121, 128, 111, 103, 119, 115, 135, 137, 121, 115, 119, 132, 118, 106, 105, 110, 114, 104, 116, 107, 111, 118, 106, 107, 108, 110, 104, 104, 116, 112, 114, 108, 94, 119, 109, 105, 108, 101, 109, 105, 104, 115, 119, 104, 102, 113, 115, 123, 108, 118, 118, 112, 102, 113, 119, 117, 104, 121, 119, 110, 120, 120, 103, 112, 122, 106, 115, 103, 114, 113, 110, 81, 112, 119, 109, 125, 130, 115, 137, 118, 110, 104, 107, 117, 105, 115, 108, 117, 123, 111, 114, 120, 112, 105, 126, 108, 114, 104, 103, 108, 108, 124, 116, 115, 115, 114, 108, 115, 127, 121, 131, 124, 150, 108, 128, 146, 106, 108, 111, 112, 125, 114, 119, 111, 105, 118, 109, 110, 117, 114, 107, 106, 124, 117, 118, 123, 114, 110, 112, 121, 119, 113, 99, 103, 102, 117, 118, 134, 96, 111, 109, 106, 111, 114, 131, 119, 117, 122, 123, 112, 125, 116, 118, 116, 112, 102, 94, 138, 123, 137, 100, 109, 120, 114, 110, 99, 124, 123, 113, 119, 112, 110, 123, 105, 112, 117, 101, 159, 111, 119, 110, 128, 120, 127, 119, 117, 119, 122, 110, 116, 103, 114, 91, 128, 111, 121, 111, 116, 128, 111, 146, 125, 116, 112, 94, 121, 102, 105, 137, 118, 118, 122, 104, 131, 108, 114, 114, 115, 101, 110, 119, 120, 119, 113, 115, 129, 115, 127, 99, 129, 123, 118, 134, 106, 127, 107, 108, 121, 119, 106, 123, 110, 112, 112, 111, 116, 108, 130, 97, 114, 107, 105, 104, 126, 124, 107, 125, 112, 102, 103, 118, 108, 108, 118, 101, 119, 129, 131, 110, 118, 121, 112, 121, 115, 120, 114, 116, 110, 99, 112, 115, 117, 108, 116, 119, 108, 110, 114, 116, 95, 124, 109, 119, 106, 113, 119, 116, 109, 131, 107, 111, 118, 122, 122, 109, 110, 118, 126, 111, 113, 118, 103, 119, 100, 123, 110, 110, 102, 106, 115, 132, 113, 116, 87, 129, 114, 105, 134, 117, 120, 120, 116, 102, 127, 113, 126, 130, 115, 120, 110, 137, 109, 104, 97, 104, 128, 99, 117, 117, 123, 119, 100, 156, 94, 112, 104, 114, 116, 116, 101, 110, 127, 124, 113, 105, 102, 125, 127, 111, 114, 114, 137, 121, 124, 119, 120, 111, 107, 104, 94, 130, 115, 113, 108, 130, 119, 108, 118, 92, 117, 154, 107, 130, 130, 117, 105, 121, 131, 105, 106, 136, 117, 107, 118, 109, 101, 129, 100, 123, 103, 103, 117, 111, 111, 108, 109, 103, 123, 116, 114, 128, 107, 110, 107, 110, 106, 114, 109, 103, 101, 133, 120, 104, 107, 113, 113, 112, 119, 116, 121, 117, 98, 119, 114, 112, 125, 112, 119, 125, 121, 113, 106, 100, 118, 111, 106, 103, 108, 119, 135, 116, 112, 123, 115, 120, 114, 119, 117, 111, 104, 115, 136, 129, 126, 102, 102, 112, 109, 111, 117, 141, 102, 108, 106, 104, 106, 123, 115, 124, 105, 130, 122, 106, 119, 122, 118, 111, 109, 99, 104, 126, 105, 155, 126, 112, 113, 127, 126, 138, 119, 112, 112, 109, 108, 122, 104, 113, 115, 103, 115, 142, 127, 119, 126, 107, 141, 104, 124, 115, 106, 122, 93, 117, 105, 128, 108, 122, 105, 120, 118, 94, 123, 113, 110, 123, 114, 118, 104, 115, 119, 105, 107, 131, 95, 136, 107, 109, 112, 114, 116, 97, 115, 118, 115, 105, 120, 144, 125, 103, 104, 121, 109, 132, 107, 113, 124, 109, 106, 112, 111, 112, 123, 110, 96, 122, 118, 120, 119, 110, 118, 98, 101, 113, 106, 123, 111, 131, 91, 130, 118, 141, 108, 119, 121, 112, 108, 121, 111, 132, 110, 121, 125, 103, 112, 107, 122, 110, 119, 127, 113, 106, 128, 119, 103, 114, 120, 130, 122, 121, 106, 111, 119, 118, 126, 134, 109, 112, 113, 125, 144, 95, 112, 109, 113, 111, 118, 115, 114, 108, 119, 109, 126, 130, 125, 122, 110, 122, 123, 126, 119, 135, 112, 119, 114, 102, 123, 113, 117, 110, 115, 107, 100, 114, 115, 124, 104, 122, 103, 120, 104, 120, 118, 130, 109, 116, 115, 107, 116, 92, 117, 118, 118, 123, 105, 86, 110, 113, 107, 110, 122, 114, 127, 115, 116, 126, 116, 102, 117, 114, 110, 116, 124, 101, 106, 112, 102, 122, 114, 113, 110, 116, 114, 105, 105, 112, 109, 113, 116, 119, 114, 127, 105, 123, 116, 108, 121, 117, 115, 107, 121, 98, 110, 142, 105, 123, 112, 128, 125, 117, 119, 116, 119, 125, 113, 126, 111, 130, 107, 115, 109, 121, 115, 124, 129, 119, 100, 106, 103, 110, 126, 127, 124, 111, 110, 106, 118, 114, 91, 121, 107, 123, 120, 112, 115, 115, 116, 112, 111, 113, 114, 126, 115, 109, 115, 127, 111, 124, 119, 105, 109, 104, 130, 123, 102, 99, 89, 102, 115, 122, 116, 103, 112, 123, 123, 117, 103, 115, 114, 120, 139, 115, 119, 113, 118, 117, 108, 126, 121, 118, 117, 109, 123, 110, 117, 100, 132, 103, 102, 120, 119, 120, 111, 111, 105, 120, 121, 124, 102, 105, 108, 120, 101, 117, 115, 118, 121, 114, 106, 122, 112, 115, 113, 118, 114, 101, 111, 108, 106, 119, 123, 115, 119, 105, 101, 129, 102, 116, 112, 111, 104, 118, 119, 114, 115, 117, 103, 112, 117, 109, 123, 121, 111, 118, 109, 132, 115, 109, 113, 121, 108, 116, 115, 105, 109, 134, 115, 116, 125, 112, 92, 108, 111, 110, 107, 115, 116, 112, 119, 111, 128, 122, 108, 102, 116, 113, 111, 114, 117, 107, 117, 107, 127, 127, 109, 113, 110, 118, 110, 118, 117, 117, 124, 111, 130, 119, 118, 114, 116, 104, 117, 114, 128, 114, 113, 119, 108, 110, 125, 96, 106, 121, 115, 113, 116, 105, 126, 133, 106, 106, 112, 110, 95, 97, 130, 122, 116, 102, 122, 122, 113, 107, 119, 119, 119, 118, 106, 124, 110, 111, 132, 106, 95, 118, 122, 122, 116, 122, 115, 107, 113, 113, 106, 120, 116, 133, 121, 121, 111, 110, 111, 97, 110, 104, 89, 102, 118, 113, 120, 119, 119, 104, 126, 101, 127, 135, 104, 109, 120, 119, 117, 141, 112, 122, 119, 112, 109, 110, 117, 116, 117, 108, 110, 146, 120, 108, 118, 117, 129, 143, 118, 101, 121, 114, 107, 105, 124, 124, 110, 109, 120, 122, 118, 123, 138, 105, 119, 114, 108, 111, 117, 131, 112, 108, 111, 133, 121, 110, 126, 109, 109, 116, 120, 105, 124, 115, 107, 120, 103, 117, 107, 106, 103, 124, 127, 111, 108, 107, 105, 110, 117, 115, 132, 99, 124, 114, 128, 114, 126, 112, 104, 107, 118, 128, 114, 130, 125, 115, 121, 119, 108, 116, 120, 100, 112, 89, 112, 114, 108, 107, 124, 105, 116, 100, 107, 119, 125, 114, 127, 124, 99, 120, 108, 112, 121, 111, 119, 116, 121, 130, 117, 116, 121, 102, 105, 124, 123, 99, 110, 106, 108, 114, 113, 121, 124, 109, 110, 120, 104, 114, 115, 127, 110, 123, 120, 117, 110, 107, 119, 115, 112, 100, 104, 108, 111, 124, 121, 104, 111, 117, 109, 99, 126, 118, 120, 118, 119, 130, 141, 110, 120, 117, 100, 117, 117, 109, 120, 121, 133, 122, 104, 134, 108, 104, 113, 104, 121, 112, 122, 127, 112, 105, 106, 125, 113, 117, 125, 108, 115, 114, 130, 120, 109, 115, 108, 109, 121, 110, 115, 122, 132, 117, 116, 125, 120, 125, 126, 109, 110, 104, 104, 118, 102, 117, 126, 116, 120, 112, 121, 127, 114, 116, 124, 108, 107, 127, 118, 98, 100, 103, 121, 111, 122, 129, 107, 122, 119, 118, 102, 105, 120, 130, 104, 108, 133, 123, 123, 111, 113, 124, 103, 111, 117, 112, 109, 133, 125, 117, 122, 123, 113, 125, 118, 96, 114, 108, 115, 122, 114, 126, 112, 107, 110, 113, 113, 113, 119, 104, 118, 111, 119, 127, 108, 116, 115, 117, 110, 125, 119, 111, 89, 105, 121, 122, 112, 114, 116, 120, 118, 109, 103, 119, 112, 133, 122, 125, 114, 96, 98, 115, 136, 120, 102, 114, 116, 120, 109, 118, 127, 107, 111, 106, 115, 136, 110, 88, 116, 120, 126, 104, 116, 122, 130, 139, 110, 114, 112, 120, 103, 112, 113, 115, 127, 117, 102, 109, 124, 103, 120, 111, 106, 103, 117, 126, 122, 133, 103, 114, 136, 136, 106, 111, 116, 125, 110, 114, 121, 110, 106, 123, 93, 114, 123, 107, 122, 128, 94, 119, 120, 125, 108, 116, 125, 115, 120, 114, 118, 127, 120, 121, 111, 115, 135, 106, 111, 100, 109, 109, 126, 122, 125, 122, 115, 118, 127, 105, 103, 124, 102, 114, 103, 104, 117, 119, 107, 114, 108, 118, 105, 108, 125, 106, 118, 126, 119, 104, 124, 113, 112, 96, 126, 111, 107, 114, 120, 112, 114, 114, 123, 120, 125, 134, 111, 99, 100, 104, 121, 121, 114, 112, 120, 125, 127, 139, 114, 118, 113, 104, 110, 122, 113, 130, 120, 118, 132, 119, 122, 125, 106, 115, 119, 118, 115, 118, 103, 120, 112, 93, 129, 118, 112, 109, 114, 101, 117, 118, 142, 126, 102, 89, 103, 123, 117, 101, 115, 111, 129, 109, 146, 114, 115, 126, 103, 115, 127, 115, 111, 116, 114, 106, 102, 106, 118, 122, 91, 125, 127, 107, 117, 120, 109, 101, 127, 104, 124, 124, 106, 118, 115, 116, 112, 128, 125, 118, 127, 131, 121, 109, 126, 108, 124, 125, 134, 117, 124, 115, 134, 113, 114, 113, 128, 124, 107, 129, 121, 103, 120, 104, 106, 106, 108, 136, 111, 116, 117, 131, 116, 133, 117, 113, 118, 98, 120, 119, 119, 144, 122, 120, 125, 119, 132, 113, 107, 114, 118, 108, 131, 117, 123, 107, 111, 105, 124, 126, 125, 105, 115, 118, 105, 119, 110, 105, 120, 104, 78, 117, 118, 131, 120, 112, 109, 120, 110, 132, 123, 122, 111, 116, 121, 119, 121, 119, 128, 116, 112, 121, 115, 110, 108, 129, 115, 105, 119, 114, 128, 113, 108, 115, 114, 127, 110, 124, 153, 127, 129, 129, 110, 125, 105, 124, 116, 128, 125, 112, 110, 134, 122, 120, 106, 120, 103, 121, 125, 103, 110, 109, 108, 117, 134, 122, 110, 111, 106, 123, 115, 110, 121, 120, 132, 119, 124, 97, 126, 113, 132, 115, 124, 110, 110, 116, 122, 102, 113, 110, 109, 114, 111, 115, 110, 117, 128, 112, 114, 99, 113, 130, 112, 139, 120, 114, 101, 130, 116, 116, 121, 121, 108, 134, 112, 111, 140, 128, 109, 109, 135, 122, 129, 118, 117, 110, 121, 111, 118, 104, 106, 127, 123, 114, 120, 108, 115, 114, 117, 117, 132, 90, 116, 120, 113, 107, 117, 102, 120, 136, 105, 121, 111, 118, 135, 118, 114, 119, 126, 110, 133, 100, 124, 138, 121, 105, 124, 111, 121, 110, 107, 121, 114, 100, 114, 109, 111, 132, 119, 89, 115, 111, 110, 134, 104, 118, 142, 96, 118, 113, 121, 116, 123, 110, 112, 103, 131, 109, 117, 127, 119, 98, 123, 111, 119, 120, 121, 128, 117, 94, 121, 133, 107, 131, 111, 116, 93, 110, 106, 113, 146, 110, 106, 110, 125, 98, 116, 118, 97, 112, 109, 121, 117, 120, 117, 114, 110, 111, 119, 119, 109, 119, 126, 111, 120, 110, 126, 120, 119, 111, 120, 117, 112, 119, 108, 100, 116, 120, 109, 135, 109, 116, 106, 120, 100, 109, 114, 117, 107, 102, 117, 114, 109, 120, 116, 120, 120, 124, 110, 122, 116, 111, 134, 101, 111, 120, 120, 122, 108, 105, 109, 117, 119, 109, 105, 121, 111, 119, 109, 117, 122, 111, 111, 108, 126, 113, 108, 114, 117, 117, 123, 121, 106, 101, 119, 131, 115, 115, 121, 116, 132, 114, 115, 113, 124, 118, 115, 109, 97, 112, 105, 125, 137, 111, 114, 124, 107, 107, 109, 125, 112, 139, 123, 118, 119, 110, 106, 130, 127, 117, 106, 118, 104, 112, 121, 125, 92, 115, 126, 128, 107, 112, 111, 102, 111, 107, 112, 135, 119, 116, 114, 112, 114, 105, 117, 113, 103, 118, 112, 126, 122, 120, 114, 122, 117, 104, 123, 102, 100, 129, 113, 120, 114, 117, 101, 115, 124, 117, 110, 115, 122, 116, 117, 114, 120, 107, 117, 104, 117, 121, 108, 112, 121, 113, 106, 122, 113, 99, 100, 117, 111, 99, 122, 121, 112, 112, 120, 107, 123, 126, 103, 108, 121, 113, 105, 108, 109, 126, 109, 111, 110, 114, 117, 131, 120, 115, 112, 124, 100, 103, 117, 120, 108, 124, 98, 131, 113, 111, 109, 117, 121, 133, 113, 133, 118, 126, 114, 114, 101, 113, 126, 122, 126, 125, 111, 106, 114, 103, 117, 111, 107, 113, 120, 115, 134, 123, 137, 111, 117, 108, 118, 125, 108, 89, 120, 128, 107, 125, 102, 115, 120, 111, 123, 108, 115, 107, 117, 108, 111, 114, 117, 105, 114, 110, 125, 122, 78, 120, 114, 117, 112, 107, 126, 120, 115, 116, 115, 104, 101, 118, 112, 102, 124, 118, 118, 122, 114, 96, 127, 116, 131, 108, 117, 116, 129, 120, 114, 118, 112, 109, 118, 115, 105, 143, 126, 107, 111, 110, 125, 128, 119, 115, 128, 122, 105, 114, 114, 110, 112, 111, 119, 111, 141, 109, 106, 111, 142, 103, 117, 114, 106, 98, 120, 124, 130, 123, 116, 124, 108, 119, 118, 138, 136, 110, 107, 115, 113, 110, 112, 95, 117, 117, 116, 111, 108, 113, 123, 114, 109, 115, 90, 102, 118, 123, 113, 116, 119, 121, 126, 122, 97, 123, 118, 125, 111, 136, 119, 108, 117, 118, 114, 121, 125, 109, 117, 121, 107, 112, 109, 110, 116, 121, 122, 106, 112, 108, 110, 127, 102, 119, 111, 119, 111, 108, 110, 117, 115, 111, 124, 120, 122, 124, 122, 113, 124, 117, 125, 112, 111, 115, 129, 120, 123, 117, 118, 117, 107, 118, 115, 108, 120, 116, 110, 112, 113, 107, 116, 105, 111, 124, 108, 111, 115, 118, 119, 112, 129, 118, 120, 120, 116, 111, 120, 105, 90, 111, 100, 122, 123, 128, 116, 101, 116, 111, 107, 115, 117, 105, 118, 112, 112, 103, 114, 120, 112, 100, 122, 117, 108, 129, 98, 121, 118, 117, 112, 116, 115, 115, 115, 106, 112, 127, 119, 121, 108, 114, 116, 97, 117, 112, 109, 118, 124, 118, 102, 107, 117, 115, 112, 120, 115, 124, 113, 115, 126, 122, 125, 127, 112, 112, 120, 124, 119, 100, 115, 121, 136, 112, 120, 114, 119, 124, 121, 122, 130, 116, 116, 117, 117, 118, 119, 124, 123, 121, 102, 114, 115, 119, 111, 117, 112, 112, 119, 112, 117, 116, 119, 117, 129, 89, 113, 122, 115, 83, 123, 109, 114, 110, 115, 114, 106, 133, 120, 114, 116, 124, 109, 113, 116, 109, 118, 78, 122, 116, 117, 117, 113, 121, 118, 112, 125, 114, 114, 111, 112, 120, 147, 116, 194, 141, 101, 117, 112, 119, 113, 113, 119, 117, 130, 116, 120, 115, 124, 118, 117, 120, 119, 129, 128, 113, 116, 126, 113, 120, 116, 116, 108, 115, 118, 105, 114, 113, 109, 116, 113, 112, 117, 127, 122, 100, 110, 120, 117, 111, 113, 113, 112, 114, 109, 123, 109, 116, 124, 101, 114, 118, 119, 112, 121, 112, 116, 130, 114, 114, 113, 117, 119, 119, 115, 114, 114, 130, 112, 119, 108, 116, 113, 117, 116, 117, 115, 120, 120, 107, 115, 111, 116, 115, 104, 104, 99, 125, 113, 119, 123, 118, 118, 119, 102, 120, 121, 112, 121, 110, 117, 114, 126, 115, 120, 112, 116, 115, 119, 120, 116, 115, 118, 120, 118, 92, 118, 118, 113, 113, 123, 113, 109, 150, 113, 116, 116, 115, 116, 115, 115, 115, 119, 119, 109, 111, 119, 116, 122, 113, 111, 113, 120, 114, 107, 114, 119, 112, 111, 119, 53, 110, 113, 109, 122, 119, 119, 114, 114, 113, 110, 117, 111, 118, 119, 110, 114, 121, 117, 116, 105, 121, 116, 108, 132, 117, 127, 130, 116, 122, 113, 114, 116, 108, 118, 122, 121, 115, 116, 127, 90, 106, 120, 118, 118, 123, 111, 128, 122, 125, 123, 112, 112, 119, 115, 116, 130, 127, 113, 116, 118, 129, 114, 114, 118, 105, 115, 114, 117, 111, 103, 124, 112, 117, 116, 123, 113, 126, 110, 108, 98, 116, 109, 115, 119, 109, 114, 114, 120, 108, 115, 121, 104, 118, 114, 113, 120, 116, 118, 109, 117, 119, 118, 113, 109, 110, 105, 116, 113, 116, 105, 118, 117, 110, 108, 109, 119, 114, 116, 111, 115, 121, 116, 113, 112, 120, 133, 117, 106, 117, 110, 117, 110, 122, 117, 115, 112, 113, 114, 117, 124, 118, 99, 121, 118, 115, 124, 119, 116, 117, 113, 114, 111, 120, 115, 116, 84, 111, 113, 120, 122, 117, 117, 119, 114, 158, 114, 119, 119, 122, 114, 116, 118, 116, 117, 120, 120, 109, 117, 114, 112, 117, 120, 115, 118, 65, 112, 108, 115, 121, 116, 117, 112, 112, 118, 81, 115, 115, 122, 109, 118, 117, 120, 119, 118, 119, 118, 114, 146, 116, 108, 110, 107, 114, 118, 122, 121, 111, 121, 118, 111, 123, 121, 110, 115, 113, 127, 107, 109, 114, 101, 111, 144, 111, 108, 117, 108, 114, 136, 114, 118, 114, 111, 116, 118, 119, 119, 116, 121, 117, 115, 115, 115, 120, 117, 120, 120, 113, 116, 121, 116, 118, 118, 121, 104, 116, 120, 106, 128, 121, 135, 105, 100, 121, 115, 108, 106, 123, 106, 119, 116, 103, 119, 118, 109, 108, 123, 109, 115, 108, 128, 124, 107, 125, 110, 126, 111, 116, 141, 117, 118, 114, 113, 120, 104, 128, 134, 118, 123, 108, 103, 101, 110, 117, 88, 120, 114, 114, 105, 107, 109, 101, 120, 109, 110, 124, 110, 118, 122, 117, 149, 128, 112, 120, 156, 94, 109, 110, 124, 121, 114, 118, 90, 132, 145, 100, 127, 118, 126, 121, 118, 104, 114, 110, 111, 117, 88, 101, 121, 119, 128, 113, 129, 113, 152, 108, 116, 135, 104, 110, 123, 123, 105, 121, 98, 129, 116, 108, 136, 119, 105, 111, 120, 127, 99, 127, 104, 122, 120, 102, 115, 111, 114, 125, 126, 93, 116, 122, 138, 113, 111, 120, 124, 107, 114, 114, 123, 113, 126, 139, 128, 102, 134, 118, 104, 101, 119, 106, 105, 111, 117, 123, 159, 122, 120, 119, 126, 100, 105, 108, 103, 125, 96, 113, 125, 114, 128, 104, 116, 118, 128, 112, 111, 106, 98, 113, 114, 111, 107, 117, 114, 115, 128, 113, 110, 123, 109, 118, 125, 116, 140, 112, 129, 114, 107, 125, 97, 112, 123, 111, 108, 109, 122, 101, 117, 120, 127, 105, 113, 123, 119, 111, 115, 129, 110, 93, 107, 119, 107, 107, 114, 108, 139, 118, 111, 112, 117, 107, 123, 122, 133, 101, 111, 119, 120, 120, 134, 115, 126, 109, 108, 92, 91, 119, 116, 123, 106, 130, 121, 123, 111, 105, 120, 97, 111, 124, 115, 117, 118, 111, 112, 114, 98, 125, 90, 115, 106, 115, 129, 112, 135, 126, 123, 133, 102, 103, 120, 126, 108, 108, 106, 114, 112, 129, 122, 111, 116, 128, 98, 112, 123, 117, 116, 122, 118, 120, 116, 116, 108, 123, 115, 123, 103, 118, 110, 108, 115, 119, 109, 122, 129, 98, 108, 123, 123, 134, 121, 114, 105, 120, 113, 130, 125, 117, 128, 106, 97, 114, 100, 107, 95, 124, 127, 110, 112, 124, 115, 131, 106, 113, 121, 116, 112, 109, 118, 102, 119, 112, 158, 126, 117, 119, 131, 112, 122, 101, 117, 125, 117, 99, 114, 135, 121, 115, 111, 111, 112, 111, 106, 83, 98, 117, 106, 122, 122, 124, 124, 136, 115, 118, 114, 107, 137, 114, 116, 117, 125, 116, 109, 121, 114, 127, 109, 115, 120, 109, 105, 120, 104, 111, 118, 117, 133, 121, 115, 112, 113, 118, 117, 105, 109, 116, 149, 118, 109, 114, 117, 112, 114, 111, 112, 124, 115, 104, 119, 127, 113, 117, 124, 85, 126, 107, 119, 103, 102, 89, 133, 128, 120, 129, 116, 104, 113, 110, 133, 118, 126, 108, 113, 113, 121, 114, 135, 132, 99, 110, 108, 136, 107, 112, 132, 119, 101, 119, 122, 108, 131, 97, 103, 113, 122, 100, 102, 108, 111, 124, 101, 114, 128, 123, 137, 111, 118, 114, 113, 87, 117, 100, 120, 112, 109, 124, 123, 108, 130, 123, 134, 108, 131, 122, 140, 112, 131, 122, 105, 119, 118, 122, 106, 131, 116, 119, 106, 113, 107, 119, 107, 129, 147, 112, 113, 116, 133, 101, 111, 107, 111, 98, 99, 130, 112, 115, 106, 100, 105, 110, 113, 122, 110, 122, 106, 122, 115, 117, 106, 117, 125, 116, 115, 133, 134, 125, 112, 121, 109, 100, 128, 111, 112, 113, 110, 128, 106, 113, 111, 122, 120, 121, 108, 107, 124, 121, 121, 114, 108, 124, 121, 115, 111, 109, 113, 110, 120, 97, 90, 110, 103, 120, 117, 108, 100, 102, 100, 109, 111, 117, 118, 119, 125, 111, 115, 105, 123, 114, 114, 115, 95, 138, 119, 93, 115, 101, 118, 117, 109, 119, 121, 99, 114, 116, 109, 122, 107, 127, 122, 106, 99, 103, 112, 134, 110, 106, 111, 110, 114, 138, 108, 113, 117, 135, 117, 121, 123, 121, 100, 109, 111, 119, 110, 110, 119, 144, 102, 105, 96, 121, 96, 108, 123, 112, 108, 108, 121, 114, 137, 123, 78, 114, 137, 112, 117, 108, 127, 105, 111, 106, 118, 116, 92, 111, 106, 110, 113, 105, 131, 118, 112, 114, 120, 115, 105, 119, 112, 105, 107, 115, 91, 96, 121, 115, 106, 114, 105, 121, 140, 114, 125, 115, 113, 109, 112, 122, 108, 151, 114, 113, 105, 111, 117, 136, 102, 107, 106, 116, 126, 114, 130, 116, 130, 134, 123, 116, 119, 114, 126, 119, 130, 126, 117, 118, 112, 116, 126, 112, 115, 131, 120, 134, 101, 118, 106, 104, 113, 118, 116, 116, 121, 123, 107, 102, 98, 118, 132, 119, 127, 113, 120, 107, 109, 119, 116, 108, 110, 124, 126, 106, 135, 102, 114, 101, 122, 111, 106, 111, 110, 129, 132, 116, 126, 116, 118, 117, 113, 129, 113, 124, 129, 103, 103, 118, 131, 117, 124, 105, 110, 116, 135, 115, 116, 121, 100, 109, 137, 107, 108, 124, 109, 113, 110, 117, 111, 106, 124, 127, 132, 131, 107, 93, 120, 108, 106, 125, 133, 101, 103, 123, 116, 129, 106, 119, 121, 116, 125, 105, 103, 112, 115, 124, 107, 108, 111, 115, 111, 106, 107, 116, 113, 97, 122, 112, 136, 104, 127, 116, 120, 110, 114, 103, 116, 114, 106, 120, 115, 102, 92, 115, 110, 101, 118, 115, 122, 100, 120, 113, 121, 122, 113, 118, 107, 125, 108, 124, 113, 105, 117, 115, 123, 107, 115, 109, 114, 109, 106, 104, 118, 115, 105, 108, 114, 116, 101, 119, 117, 112, 113, 115, 108, 103, 110, 108, 119, 123, 118, 114, 108, 111, 118, 110, 115, 120, 108, 129, 131, 139, 113, 147, 126, 126, 131, 107, 116, 115, 119, 123, 116, 109, 113, 148, 124, 115, 118, 106, 126, 104, 124, 108, 123, 102, 112, 107, 115, 114, 108, 126, 114, 96, 111, 114, 98, 112, 117, 113, 117, 106, 127, 114, 110, 109, 112, 118, 123, 141, 132, 114, 134, 100, 100, 117, 112, 130, 124, 102, 98, 117, 120, 106, 109, 140, 117, 121, 114, 92, 112, 131, 115, 116, 95, 136, 102, 109, 130, 99, 141, 92, 109, 108, 115, 105, 104, 93, 116, 114, 126, 122, 120, 111, 120, 115, 116, 119, 119, 124, 121, 112, 130, 113, 116, 114, 108, 114, 129, 122, 117, 121, 119, 118, 135, 118, 117, 116, 123, 121, 115, 114, 122, 111, 118, 104, 120, 125, 120, 117, 106, 119, 115, 122, 112, 100, 126, 118, 111, 123, 119, 107, 115, 116, 114, 116, 117, 118, 107, 106, 119, 110, 135, 108, 118, 118, 117, 116, 123, 122, 113, 116, 100, 117, 127, 112, 118, 119, 112, 117, 125, 108, 116, 121, 113, 119, 130, 108, 121, 114, 103, 120, 115, 109, 113, 120, 120, 107, 120, 115, 117, 117, 123, 116, 117, 128, 120, 111, 126, 125, 124, 116, 115, 118, 129, 122, 112, 114, 119, 106, 120, 116, 109, 123, 119, 109, 120, 110, 133, 119, 120, 121, 114, 109, 123, 116, 119, 108, 113, 124, 117, 108, 114, 117, 121, 124, 131, 106, 116, 118, 128, 106, 115, 118, 117, 122, 110, 112, 132, 114, 121, 116, 117, 121, 121, 118, 119, 119, 115, 129, 115, 124, 105, 117, 112, 116, 111, 111, 122, 119, 120, 114, 117, 120, 117, 118, 123, 112, 101, 121, 127, 113, 111, 120, 116, 112, 120, 113, 117, 111, 110, 111, 138, 115, 119, 123, 111, 118, 109, 126, 116, 113, 119, 123, 124, 114, 107, 129, 112, 116, 118, 118, 116, 106, 109, 116, 120, 119, 112, 119, 113, 121, 120, 119, 121, 130, 128, 120, 123, 130, 118, 123, 123, 109, 115, 114, 116, 121, 117, 124, 117, 111, 107, 121, 114, 106, 117, 117, 121, 115, 114, 125, 113, 105, 108, 115, 125, 123, 114, 123, 104, 104, 124, 110, 110, 113, 110, 112, 110, 122, 123, 119, 123, 108, 115, 116, 124, 132, 116, 128, 115, 117, 102, 126, 120, 121, 116, 108, 121, 114, 114, 115, 109, 118, 115, 106, 108, 117, 126, 133, 117, 117, 117, 121, 125, 118, 109, 116, 114, 123, 115, 114, 125, 110, 115, 121, 119, 109, 114, 113, 115, 122, 122, 128, 116, 125, 117, 117, 120, 122, 116, 119, 120, 115, 113, 125, 108, 95, 120, 115, 128, 136, 114, 118, 115, 123, 129, 117, 102, 130, 116, 125, 121, 113, 123, 124, 112, 123, 110, 123, 116, 114, 124, 113, 98, 115, 129, 109, 120, 107, 107, 118, 115, 117, 107, 107, 118, 112, 117, 122, 121, 108, 112, 114, 116, 119, 117, 108, 130, 112, 131, 97, 116, 120, 124, 113, 122, 114, 122, 119, 123, 123, 118, 109, 133, 116, 115, 118, 114, 121, 108, 114, 118, 112, 121, 123, 115, 110, 119, 117, 121, 104, 129, 111, 125, 112, 119, 122, 113, 116, 111, 106, 116, 135, 119, 119, 113, 118, 116, 129, 125, 114, 117, 114, 118, 107, 113, 121, 127, 125, 112, 120, 118, 119, 119, 122, 112, 120, 110, 112, 108, 120, 115, 123, 123, 122, 102, 108, 119, 122, 113, 119, 125, 112, 128, 119, 110, 112, 113, 124, 116, 111, 116, 120, 111, 112, 129, 122, 111, 110, 118, 121, 123, 107, 116, 111, 105, 98, 118, 122, 115, 121, 115, 118, 111, 106, 107, 113, 127, 115, 130, 110, 112, 106, 117, 122, 120, 118, 116, 121, 119, 115, 124, 108, 122, 131, 109, 118, 121, 108, 122, 119, 113, 111, 98, 116, 118, 114, 114, 120, 122, 123, 118, 114, 110, 142, 121, 124, 112, 131, 109, 117, 120, 127, 115, 112, 119, 114, 116, 127, 122, 112, 115, 116, 113, 131, 120, 120, 118, 119, 107, 119, 116, 118, 119, 113, 109, 108, 126, 117, 125, 105, 113, 124, 105, 121, 125, 123, 116, 125, 110, 106, 119, 109, 117, 122, 118, 109, 112, 115, 111, 125, 111, 114, 105, 106, 116, 108, 111, 114, 111, 108, 125, 119, 114, 119, 113, 124, 108, 123, 109, 122, 122, 111, 113, 114, 117, 119, 107, 121, 114, 117, 107, 124, 120, 94, 117, 114, 117, 107, 116, 122, 116, 107, 125, 115, 111, 120, 109, 113, 118, 129, 107, 117, 120, 110, 118, 114, 125, 121, 116, 104, 112, 120, 116, 124, 110, 118, 108, 112, 112, 116, 121, 122, 113, 112, 113, 114, 135, 115, 106, 112, 107, 124, 122, 121, 116, 111, 113, 91, 123, 118, 113, 117, 109, 116, 109, 121, 119, 106, 124, 112, 113, 114, 112, 138, 122, 113, 119, 118, 122, 114, 119, 120, 117, 112, 112, 125, 124, 112, 116, 108, 116, 123, 129, 113, 117, 123, 116, 114, 118, 111, 122, 125, 116, 111, 126, 111, 122, 115, 116, 121, 105, 110, 117, 110, 112, 110, 129, 114, 125, 113, 111, 124, 116, 106, 128, 117, 116, 122, 115, 101, 108, 104, 114, 113, 119, 113, 107, 113, 122, 113, 105, 116, 113, 117, 127, 97, 115, 120, 127, 122, 116, 125, 117, 118, 114, 115, 117, 116, 106, 109, 120, 112, 122, 108, 120, 108, 117, 106, 127, 133, 113, 109, 113, 107, 116, 118, 122, 119, 136, 116, 113, 117, 113, 132, 119, 115, 117, 124, 130, 115, 119, 115, 113, 113, 115, 117, 123, 116, 110, 120, 111, 114, 126, 124, 118, 131, 116, 118, 120, 114, 122, 110, 113, 114, 107, 114, 113, 137, 116, 113, 118, 118, 121, 118, 122, 113, 122, 121, 124, 124, 116, 119, 112, 101, 92, 123, 135, 117, 121, 107, 118, 126, 116, 122, 116, 127, 123, 116, 112, 112, 116, 118, 103, 121, 115, 104, 118, 123, 128, 115, 122, 111, 112, 112, 122, 121, 108, 116, 117, 109, 116, 125, 114, 127, 112, 121, 112, 106, 113, 112, 115, 118, 107, 111, 125, 116, 93, 120, 122, 122, 117, 121, 127, 116, 123, 110, 113, 121, 123, 104, 112, 112, 114, 118, 122, 106, 121, 119, 115, 116, 117, 117, 111, 114, 119, 111, 116, 116, 113, 102, 110, 123, 102, 123, 108, 123, 110, 116, 115, 105, 125, 113, 114, 114, 120, 117, 128, 118, 109, 126, 114, 92, 111, 127, 109, 104, 113, 118, 103, 113, 110, 112, 113, 114, 119, 112, 121, 118, 116, 109, 114, 108, 113, 106, 123, 116, 122, 110, 112, 128, 123, 115, 112, 118, 114, 112, 113, 114, 102, 124, 107, 106, 121, 112, 95, 122, 111, 115, 113, 105, 113, 119, 118, 114, 126, 118, 117, 125, 124, 115, 110, 112, 122, 119, 126, 117, 108, 128, 102, 118, 113, 120, 103, 110, 112, 113, 120, 126, 107, 122, 119, 108, 114, 126, 114, 115, 114, 114, 102, 121, 119, 123, 109, 117, 111, 119, 116, 106, 123, 110, 101, 120, 116, 118, 122, 132, 120, 119, 134, 116, 110, 118, 118, 107, 113, 112, 109, 114, 111, 122, 120, 104, 120, 106, 110, 112, 112, 106, 115, 119, 115, 117, 109, 110, 119, 123, 116, 110, 118, 122, 114, 112, 116, 113, 113, 110, 121, 115, 120, 130, 129, 108, 133, 118, 122, 117, 118, 117, 117, 123, 101, 118, 129, 118, 117, 114, 119, 116, 124, 112, 117, 112, 115, 116, 114, 117, 112, 130, 119, 132, 121, 117, 115, 124, 111, 115, 111, 112, 112, 114, 129, 126, 114, 119, 107, 110, 111, 115, 128, 119, 102, 118, 113, 110, 114, 111, 119, 125, 116, 111, 115, 110, 125, 108, 117, 110, 115, 116, 114, 112, 121, 100, 114, 119, 120, 115, 120, 103, 113, 112, 112, 118, 113, 115, 121, 110, 137, 122, 117, 121, 120, 112, 116, 119, 125, 143, 108, 115, 114, 120, 121, 113, 108, 118, 119, 110, 106, 101, 110, 115, 116, 113, 109, 117, 109, 114, 126, 120, 110, 119, 110, 107, 113, 110, 124, 114, 123, 118, 109, 115, 105, 119, 115, 118, 118, 117, 118, 115, 110, 119, 107, 110, 123, 116, 115, 109, 118, 94, 108, 114, 112, 136, 103, 115, 137, 121, 124, 106, 100, 108, 107, 125, 121, 114, 122, 112, 111, 106, 118, 107, 121, 113, 113, 98, 124, 118, 119, 109, 104, 108, 121, 122, 124, 109, 114, 111, 129, 121, 116, 114, 114, 110, 118, 125, 116, 119, 109, 117, 110, 112, 109, 113, 120, 122, 122, 110, 128, 113, 121, 114, 110, 117, 119, 124, 117, 120, 110, 104, 113, 114, 117, 117, 116, 109, 118, 116, 126, 122, 113, 114, 122, 119, 120, 114, 111, 120, 112, 112, 116, 102, 120, 113, 104, 111, 118, 118, 110, 121, 104, 124, 121, 119, 114, 125, 121, 123, 125, 112, 129, 118, 109, 124, 116, 111, 113, 110, 106, 102, 114, 116, 104, 108, 111, 115, 116, 123, 124, 102, 113, 104, 112, 114, 121, 110, 108, 119, 114, 116, 113, 123, 112, 115, 113, 127, 120, 118, 111, 121, 118, 107, 122, 110, 112, 114, 122, 118, 101, 119, 118, 120, 113, 111, 115, 114, 108, 117, 110, 116, 123, 111, 116, 117, 130, 129, 113, 121, 122, 111, 101, 106, 118, 126, 114, 121, 110, 118, 114, 106, 108, 100, 121, 122, 111, 118, 124, 115, 114, 125, 122, 109, 118, 151, 110, 123, 112, 119, 126, 121, 108, 125, 116, 113, 114, 112, 108, 130, 121, 108, 117, 127, 113, 111, 127, 118, 106, 120, 117, 120, 116, 107, 118, 109, 119, 111, 116, 116, 139, 125, 119, 110, 116, 113, 104, 115, 126, 125, 120, 115, 108, 114, 95, 104, 135, 114, 115, 103, 106, 114, 105, 117, 119, 103, 118, 117, 119, 125, 106, 107, 104, 114, 101, 125, 109, 112, 106, 111, 113, 117, 146, 116, 116, 137, 129, 118, 118, 111, 130, 98, 124, 111, 124, 87, 104, 119, 112, 114, 128, 126, 117, 101, 111, 111, 126, 114, 127, 101, 105, 114, 127, 111, 119, 105, 112, 107, 118, 111, 117, 108, 123, 95, 113, 121, 125, 132, 140, 118, 113, 116, 102, 111, 134, 116, 118, 111, 115, 102, 129, 116, 114, 120, 124, 119, 109, 112, 128, 119, 120, 109, 108, 107, 119, 109, 108, 103, 120, 118, 119, 121, 111, 114, 123, 113, 113, 114, 114, 120, 108, 112, 130, 134, 104, 119, 93, 107, 112, 117, 128, 102, 122, 117, 123, 107, 112, 115, 134, 129, 113, 127, 123, 107, 116, 116, 100, 118, 128, 122, 114, 127, 113, 115, 121, 133, 114, 109, 112, 119, 112, 119, 132, 124, 113, 92, 108, 110, 115, 115, 126, 110, 107, 109, 120, 122, 126, 112, 141, 108, 114, 113, 102, 112, 130, 120, 97, 116, 114, 113, 105, 108, 113, 127, 105, 119, 105, 110, 107, 95, 112, 117, 101, 141, 118, 133, 117, 136, 115, 120, 116, 117, 111, 104, 137, 104, 119, 124, 113, 116, 156, 108, 117, 115, 125, 116, 111, 119, 105, 109, 121, 113, 112, 99, 111, 123, 123, 110, 99, 134, 110, 111, 119, 123, 142, 137, 117, 107, 108, 111, 119, 119, 103, 135, 116, 133, 104, 115, 126, 113, 118, 118, 106, 122, 123, 117, 105, 124, 116, 113, 131, 113, 113, 118, 113, 113, 120, 144, 118, 111, 112, 104, 110, 115, 116, 138, 121, 93, 120, 112, 116, 123, 109, 116, 88, 126, 101, 114, 101, 81, 116, 141, 116, 112, 119, 117, 118, 118, 119, 120, 111, 96, 103, 131, 111, 116, 108, 111, 110, 116, 107, 110, 117, 110, 122, 104, 119, 83, 118, 114, 93, 135, 132, 106, 109, 123, 116, 115, 105, 108, 123, 145, 117, 118, 122, 103, 122, 118, 131, 88, 112, 110, 107, 139, 119, 138, 165, 133, 139, 126, 130, 113, 119, 117, 118, 131, 119, 111, 115, 123, 100, 137, 116, 108, 107, 114, 114, 119, 123, 125, 100, 104, 112, 120, 99, 121, 119, 119, 99, 122, 109, 107, 112, 110, 129, 75, 109, 112, 121, 120, 120, 102, 106, 129, 132, 102, 102, 102, 136, 82, 114, 116, 101, 135, 114, 112, 112, 113, 117, 98, 127, 114, 115, 121, 108, 107, 98, 122, 117, 123, 115, 120, 120, 105, 108, 115, 125, 107, 116, 125, 120, 112, 109, 95, 119, 109, 113, 112, 98, 96, 104, 109, 128, 123, 122, 121, 120, 131, 105, 114, 110, 116, 102, 117, 114, 111, 106, 112, 111, 131, 104, 118, 111, 117, 127, 118, 118, 115, 124, 115, 113, 100, 118, 103, 109, 111, 120, 111, 103, 132, 118, 115, 115, 112, 112, 115, 122, 107, 106, 111, 119, 114, 115, 105, 112, 112, 107, 116, 115, 114, 113, 128, 121, 106, 128, 118, 109, 116, 98, 121, 103, 108, 91, 124, 109, 135, 109, 107, 117, 97, 108, 106, 118, 104, 121, 116, 126, 124, 122, 105, 127, 105, 117, 127, 103, 116, 126, 119, 106, 132, 110, 111, 112, 139, 108, 129, 114, 128, 118, 125, 122, 112, 96, 113, 115, 114, 128, 106, 104, 103, 133, 129, 115, 104, 125, 102, 104, 108, 104, 112, 110, 106, 107, 113, 112, 122, 112, 134, 126, 121, 115, 107, 115, 111, 107, 113, 103, 122, 130, 103, 102, 120, 118, 117, 111, 120, 106, 125, 112, 107, 122, 124, 108, 130, 121, 112, 134, 104, 119, 127, 129, 133, 114, 123, 124, 104, 104, 107, 117, 122, 112, 122, 121, 125, 115, 110, 115, 91, 110, 114, 135, 109, 121, 102, 131, 139, 103, 82, 97, 102, 118, 113, 125, 143, 115, 109, 117, 126, 114, 125, 107, 117, 127, 99, 82, 105, 114, 119, 128, 122, 124, 110, 122, 111, 119, 119, 108, 129, 110, 110, 115, 111, 121, 129, 106, 120, 141, 119, 133, 104, 112, 112, 115, 115, 123, 98, 114, 129, 125, 111, 110, 130, 120, 113, 112, 118, 95, 106, 92, 113, 113, 124, 137, 124, 106, 120, 117, 116, 112, 120, 112, 122, 107, 126, 109, 111, 107, 114, 117, 112, 111, 120, 111, 109, 84, 109, 127, 103, 139, 116, 116, 112, 119, 113, 155, 141, 113, 117, 122, 107, 118, 132, 111, 118, 109, 111, 101, 110, 99, 114, 100, 118, 99, 135, 110, 121, 108, 107, 116, 120, 118, 108, 107, 112, 119, 133, 111, 122, 120, 122, 116, 117, 132, 105, 117, 116, 129, 123, 121, 126, 126, 111, 130, 111, 110, 122, 113, 121, 111, 112, 111, 120, 122, 125, 114, 107, 117, 91, 121, 105, 121, 122, 95, 109, 112, 121, 115, 124, 115, 121, 113, 115, 103, 120, 132, 111, 123, 110, 113, 109, 104, 107, 108, 122, 126, 115, 104, 107, 108, 109, 122, 110, 114, 128, 118, 116, 114, 113, 116, 117, 107, 128, 120, 107, 123, 125, 112, 106, 119, 113, 111, 114, 112, 102, 113, 112, 126, 146, 121, 136, 126, 118, 110, 113, 115, 120, 125, 118, 121, 101, 114, 106, 102, 135, 115, 115, 100, 104, 114, 121, 116, 124, 113, 119, 123, 135, 114, 100, 134, 116, 100, 120, 107, 110, 114, 123, 120, 114, 121, 123, 117, 125, 124, 105, 121, 114, 113, 124, 108, 112, 100, 124, 117, 119, 123, 127, 109, 109, 112, 106, 115, 152, 129, 110, 114, 114, 105, 115, 129, 106, 116, 118, 124, 121, 108, 105, 124, 135, 125, 108, 119, 102, 104, 115, 128, 114, 95, 90, 128, 122, 113, 115, 110, 104, 120, 113, 105, 128, 130, 101, 107, 113, 111, 111, 137, 122, 113, 115, 121, 112, 108, 114, 124, 93, 107, 99, 118, 120, 118, 127, 137, 119, 121, 88, 119, 113, 123, 104, 102, 120, 128, 104, 116, 113, 109, 110, 110, 109, 109, 108, 115, 121, 144, 119, 96, 116, 104, 122, 109, 117, 112, 137, 113, 105, 108, 139, 128, 103, 121, 127, 132, 117, 103, 120, 111, 132, 117, 121, 114, 109, 106, 110, 109, 104, 95, 111, 115, 127, 121, 120, 120, 123, 105, 122, 128, 120, 120, 115, 122, 115, 117, 110, 130, 131, 119, 110, 114, 117, 88, 99, 109, 110, 117, 111, 129, 111, 125, 114, 105, 113, 119, 122, 108, 118, 113, 112, 118, 114, 124, 126, 113, 114, 121, 114, 118, 133, 126, 107, 127, 113, 114, 138, 138, 120, 109, 105, 123, 100, 115, 119, 109, 132, 108, 116, 115, 119, 116, 128, 116, 115, 115, 125, 97, 115, 96, 116, 134, 111, 118, 114, 117, 122, 105, 140, 126, 106, 122, 122, 122, 104, 131, 129, 117, 106, 110, 102, 116, 127, 115, 119, 110, 116, 125, 124, 138, 115, 128, 116, 120, 115, 127, 112, 114, 112, 116, 144, 115, 116, 121, 124, 129, 115, 114, 107, 118, 128, 123, 133, 114, 100, 106, 102, 125, 131, 122, 110, 105, 113, 119, 99, 114, 116, 129, 101, 120, 130, 121, 111, 117, 110, 108, 123, 126, 129, 108, 117, 111, 118, 110, 118, 125, 119, 121, 128, 139, 116, 103, 110, 119, 113, 124, 122, 111, 104, 122, 122, 111, 132, 115, 105, 112, 117, 111, 124, 107, 109, 109, 129, 117, 125, 128, 115, 122, 117, 117, 107, 88, 123, 123, 110, 107, 108, 109, 131, 132, 118, 173, 124, 104, 115, 120, 115, 94, 107, 105, 119, 115, 103, 113, 103, 129, 116, 118, 116, 119, 112, 122, 114, 116, 121, 114, 110, 121, 119, 96, 121, 111, 113, 120, 108, 129, 119, 126, 123, 119, 126, 118, 105, 100, 103, 119, 106, 127, 115, 101, 99, 101, 128, 126, 122, 114, 113, 120, 111, 115, 120, 130, 123, 117, 106, 127, 124, 113, 110, 120, 112, 127, 112, 109, 102, 105, 113, 107, 113, 120, 121, 106, 119, 110, 122, 116, 122, 122, 111, 126, 105, 119, 107, 128, 108, 118, 114, 119, 122, 119, 137, 113, 117, 116, 129, 129, 119, 100, 112, 113, 120, 119, 123, 119, 126, 120, 123, 111, 109, 131, 112, 104, 113, 115, 132, 113, 99, 116, 106, 113, 111, 166, 127, 113, 115, 109, 82, 103, 111, 119, 123, 125, 117, 99, 124, 118, 109, 103, 126, 107, 114, 88, 136, 125, 112, 99, 175, 113, 121, 110, 110, 107, 109, 111, 109, 128, 132, 118, 110, 115, 117, 118, 118, 105, 104, 120, 112, 113, 104, 111, 108, 110, 121, 114, 122, 110, 113, 122, 100, 112, 121, 117, 124, 117, 105, 107, 108, 130, 121, 110, 116, 128, 109, 119, 116, 136, 130, 120, 119, 103, 116, 117, 119, 122, 112, 122, 106, 102, 115, 120, 120, 128, 116, 112, 112, 121, 130, 118, 112, 116, 121, 125, 118, 116, 112, 108, 112, 116, 112, 114, 104, 102, 147, 122, 130, 111, 107, 113, 101, 117, 145, 110, 118, 110, 116, 121, 121, 121, 120, 124, 125, 110, 132, 122, 115, 121, 122, 121, 124, 123, 128, 121, 124, 109, 116, 108, 127, 123, 121, 119, 129, 108, 119, 119, 126, 109, 117, 104, 117, 117, 106, 118, 119, 110, 109, 113, 116, 110, 118, 100, 107, 118, 124, 114, 135, 109, 113, 119, 137, 112, 110, 108, 108, 124, 118, 121, 126, 116, 107, 121, 116, 114, 108, 115, 111, 110, 115, 112, 111, 122, 114, 133, 116, 113, 113, 114, 114, 112, 115, 120, 121, 102, 117, 117, 107, 117, 123, 120, 111, 109, 119, 125, 123, 122, 116, 100, 123, 104, 115, 115, 115, 113, 119, 112, 117, 119, 113, 114, 116, 112, 104, 125, 129, 118, 117, 122, 128, 119, 114, 119, 115, 117, 115, 116, 108, 120, 108, 122, 119, 112, 107, 109, 113, 107, 117, 118, 108, 126, 102, 116, 123, 110, 128, 123, 127, 115, 112, 107, 118, 113, 105, 120, 125, 122, 106, 108, 107, 126, 115, 116, 116, 114, 106, 110, 115, 115, 110, 131, 112, 121, 123, 112, 114, 104, 102, 109, 108, 116, 121, 109, 111, 106, 106, 113, 119, 126, 113, 130, 119, 101, 124, 119, 114, 107, 120, 120, 117, 104, 120, 115, 115, 112, 112, 115, 114, 127, 126, 116, 110, 116, 113, 117, 107, 118, 120, 103, 118, 117, 122, 131, 111, 130, 120, 134, 118, 123, 109, 127, 118, 126, 129, 106, 110, 119, 106, 117, 111, 126, 111, 123, 115, 120, 118, 96, 114, 111, 120, 118, 135, 108, 117, 115, 110, 133, 115, 109, 132, 114, 119, 134, 123, 118, 117, 117, 111, 112, 117, 124, 128, 109, 114, 117, 123, 118, 108, 110, 124, 112, 109, 112, 114, 125, 119, 111, 115, 113, 115, 101, 125, 136, 128, 109, 126, 100, 105, 117, 114, 118, 113, 112, 113, 121, 117, 108, 115, 100, 103, 122, 124, 117, 111, 126, 128, 112, 113, 116, 113, 111, 114, 117, 112, 116, 119, 127, 116, 118, 121, 107, 109, 118, 118, 108, 112, 110, 109, 116, 112, 109, 126, 113, 127, 115, 107, 125, 127, 118, 112, 115, 125, 116, 108, 105, 117, 118, 101, 121, 119, 110, 123, 112, 125, 114, 113, 108, 115, 123, 121, 105, 120, 118, 120, 122, 118, 113, 113, 115, 103, 114, 117, 111, 112, 106, 117, 113, 108, 107, 118, 117, 119, 111, 126, 115, 127, 121, 132, 114, 117, 105, 120, 113, 154, 118, 109, 121, 115, 121, 114, 109, 127, 113, 111, 122, 107, 111, 103, 117, 115, 104, 119, 120, 115, 125, 133, 107, 115, 122, 117, 126, 123, 120, 113, 115, 114, 118, 126, 125, 119, 119, 117, 112, 120, 132, 115, 120, 118, 123, 120, 114, 123, 126, 130, 112, 127, 115, 111, 115, 118, 117, 110, 108, 115, 106, 117, 127, 113, 112, 109, 120, 125, 116, 126, 112, 118, 107, 102, 120, 115, 123, 114, 112, 112, 114, 122, 115, 112, 110, 124, 126, 109, 109, 117, 114, 126, 107, 115, 118, 113, 111, 109, 111, 122, 140, 116, 117, 117, 109, 113, 128, 111, 123, 138, 117, 110, 107, 119, 116, 114, 111, 106, 116, 122, 104, 122, 103, 117, 126, 115, 126, 116, 122, 115, 118, 125, 117, 117, 119, 114, 117, 121, 118, 116, 109, 121, 126, 110, 117, 115, 120, 114, 116, 108, 124, 113, 118, 107, 112, 122, 119, 120, 127, 118, 133, 113, 118, 107, 120, 120, 123, 134, 112, 119, 112, 94, 123, 120, 111, 116, 113, 112, 119, 114, 117, 114, 110, 103, 118, 128, 120, 117, 119, 112, 116, 113, 119, 116, 113, 121, 117, 110, 118, 117, 116, 115, 126, 123, 112, 113, 121, 118, 114, 107, 121, 107, 112, 112, 125, 116, 111, 128, 115, 110, 110, 126, 127, 106, 113, 118, 117, 116, 116, 115, 118, 121, 112, 124, 113, 122, 123, 117, 113, 131, 115, 110, 119, 116, 114, 115, 117, 117, 118, 99, 109, 115, 104, 122, 119, 130, 119, 122, 119, 130, 114, 113, 113, 117, 113, 112, 118, 114, 116, 119, 124, 106, 124, 102, 127, 118, 124, 115, 110, 137, 122, 117, 112, 120, 114, 107, 118, 106, 109, 116, 123, 112, 118, 113, 118, 108, 113, 126, 111, 119, 118, 108, 120, 124, 120, 130, 120, 104, 112, 117, 117, 120, 112, 119, 117, 102, 120, 120, 118, 110, 116, 117, 122, 113, 123, 112, 117, 116, 114, 122, 111, 114, 114, 126, 122, 106, 120, 119, 117, 120, 112, 121, 120, 110, 117, 111, 118, 118, 106, 116, 132, 114, 121, 111, 119, 120, 119, 118, 119, 127, 122, 111, 109, 115, 120, 116, 109, 118, 115, 112, 116, 111, 120, 136, 121, 107, 116, 111, 121, 108, 118, 116, 114, 121, 109, 117, 118, 112, 113, 116, 118, 113, 116, 116, 124, 104, 95, 114, 132, 100, 129, 112, 112, 113, 114, 117, 120, 118, 116, 128, 122, 119, 110, 101, 119, 126, 126, 99, 112, 86, 116, 110, 121, 117, 116, 128, 110, 104, 109, 110, 118, 95, 105, 112, 124, 106, 122, 123, 122, 128, 115, 122, 109, 143, 107, 122, 121, 117, 114, 111, 117, 120, 120, 110, 115, 99, 112, 104, 118, 111, 119, 111, 127, 112, 119, 111, 115, 116, 120, 121, 113, 121, 110, 118, 131, 117, 121, 116, 112, 114, 119, 113, 114, 116, 117, 103, 111, 114, 124, 120, 123, 117, 122, 130, 118, 108, 113, 115, 108, 125, 116, 113, 113, 107, 124, 101, 120, 118, 122, 110, 117, 113, 111, 118, 109, 107, 114, 111, 117, 116, 115, 117, 126, 123, 113, 110, 116, 117, 113, 119, 114, 118, 121, 116, 107, 116, 116, 110, 103, 121, 122, 126, 107, 117, 112, 110, 110, 116, 108, 111, 120, 110, 126, 117, 111, 106, 117, 112, 113, 131, 116, 120, 117, 113, 117, 109, 130, 121, 117, 112, 115, 107, 125, 117, 119, 122, 116, 133, 112, 125, 129, 112, 104, 116, 120, 115, 93, 111, 121, 104, 110, 120, 111, 113, 111, 118, 121, 109, 122, 123, 117, 123, 109, 125, 114, 112, 111, 117, 114, 121, 123, 120, 126, 121, 103, 123, 118, 112, 119, 120, 116, 106, 117, 115, 108, 115, 110, 123, 133, 115, 119, 120, 126, 116, 110, 115, 121, 116, 132, 119, 109, 123, 121, 123, 104, 128, 113, 110, 108, 110, 112, 125, 115, 116, 132, 105, 123, 133, 102, 103, 107, 128, 103, 113, 119, 126, 116, 132, 114, 118, 115, 103, 127, 118, 100, 128, 109, 112, 106, 117, 95, 126, 121, 128, 118, 119, 125, 120, 108, 117, 124, 114, 127, 129, 119, 113, 107, 105, 109, 125, 115, 111, 118, 121, 116, 119, 119, 103, 88, 107, 104, 121, 114, 124, 120, 107, 115, 119, 101, 125, 119, 103, 127, 112, 125, 113, 120, 107, 123, 123, 106, 127, 120, 120, 134, 127, 108, 104, 116, 109, 116, 128, 111, 110, 116, 123, 112, 116, 118, 110, 118, 116, 104, 112, 121, 95, 114, 110, 114, 110, 111, 88, 139, 119, 112, 104, 98, 108, 98, 124, 119, 128, 108, 114, 105, 111, 123, 127, 128, 121, 119, 108, 113, 111, 118, 129, 111, 111, 119, 135, 117, 107, 103, 116, 119, 116, 109, 101, 108, 127, 114, 110, 99, 116, 104, 118, 109, 112, 124, 118, 111, 124, 115, 120, 111, 96, 106, 125, 121, 112, 108, 96, 108, 105, 111, 124, 124, 117, 98, 131, 125, 115, 118, 100, 112, 99, 111, 100, 126, 130, 128, 128, 106, 118, 115, 129, 116, 114, 127, 117, 115, 117, 100, 124, 116, 100, 114, 103, 110, 123, 123, 109, 108, 122, 113, 114, 117, 90, 127, 107, 104, 121, 112, 122, 110, 115, 130, 106, 110, 106, 118, 105, 124, 116, 105, 112, 120, 106, 113, 123, 112, 112, 119, 115, 107, 105, 116, 120, 97, 123, 105, 119, 128, 122, 118, 111, 101, 120, 116, 129, 143, 96, 109, 108, 108, 119, 94, 95, 81, 101, 111, 114, 119, 107, 126, 123, 106, 125, 132, 114, 123, 107, 116, 111, 109, 121, 108, 116, 112, 114, 133, 124, 122, 110, 119, 125, 111, 126, 117, 111, 115, 112, 109, 113, 124, 115, 108, 119, 119, 121, 91, 116, 113, 112, 124, 101, 114, 121, 110, 125, 117, 113, 115, 120, 113, 111, 117, 108, 107, 116, 107, 111, 115, 132, 115, 112, 114, 110, 115, 121, 111, 126, 133, 120, 120, 120, 108, 113, 114, 100, 112, 128, 110, 118, 115, 118, 93, 119, 105, 129, 118, 106, 116, 123, 119, 121, 144, 130, 98, 112, 122, 106, 124, 112, 106, 112, 133, 126, 110, 117, 99, 124, 122, 120, 106, 131, 120, 129, 114, 111, 128, 115, 117, 120, 117, 115, 96, 122, 104, 116, 107, 107, 114, 119, 110, 123, 118, 118, 113, 117, 116, 116, 131, 112, 128, 152, 126, 121, 126, 116, 119, 112, 104, 123, 105, 119, 127, 124, 114, 141, 92, 145, 115, 99, 94, 112, 118, 108, 123, 112, 110, 118, 118, 114, 124, 119, 109, 106, 110, 112, 114, 109, 116, 128, 138, 109, 104, 125, 114, 128, 112, 133, 126, 110, 122, 114, 132, 109, 92, 131, 110, 131, 119, 123, 130, 116, 111, 110, 105, 120, 118, 119, 113, 113, 120, 116, 120, 110, 129, 139, 117, 103, 120, 125, 116, 131, 115, 124, 110, 107, 100, 120, 111, 121, 119, 110, 114, 115, 115, 119, 115, 134, 112, 118, 109, 114, 109, 114, 118, 121, 107, 113, 109, 108, 121, 119, 116, 112, 127, 109, 98, 106, 95, 130, 133, 118, 114, 120, 100, 95, 112, 143, 110, 119, 125, 118, 111, 125, 99, 90, 121, 74, 129, 120, 102, 120, 123, 125, 121, 117, 109, 120, 122, 119, 104, 146, 108, 123, 119, 116, 113, 117, 111, 117, 103, 105, 105, 121, 106, 124, 143, 105, 124, 125, 106, 119, 95, 110, 122, 128, 126, 132, 128, 142, 108, 103, 133, 110, 112, 119, 82, 116, 118, 121, 114, 125, 114, 98, 117, 124, 105, 86, 123, 109, 126, 130, 124, 116, 114, 112, 128, 110, 131, 118, 115, 119, 122, 115, 109, 122, 114, 113, 110, 102, 120, 114, 115, 120, 105, 118, 114, 110, 82, 100, 121, 105, 107, 123, 107, 121, 114, 145, 109, 111, 128, 116, 124, 104, 108, 131, 116, 113, 133, 103, 113, 118, 127, 124, 108, 118, 108, 118, 122, 114, 122, 124, 127, 126, 123, 110, 117, 116, 116, 111, 113, 110, 113, 124, 113, 106, 110, 110, 108, 115, 110, 112, 108, 116, 124, 115, 116, 120, 104, 125, 115, 104, 118, 128, 111, 97, 126, 114, 97, 120, 139, 117, 112, 104, 113, 123, 120, 100, 111, 108, 117, 98, 124, 110, 114, 125, 120, 115, 145, 115, 132, 127, 113, 122, 104, 112, 110, 125, 128, 110, 115, 127, 112, 117, 133, 127, 114, 129, 113, 107, 107, 110, 110, 117, 118, 112, 109, 114, 132, 112, 116, 123, 107, 115, 130, 107, 109, 108, 98, 118, 117, 115, 97, 147, 111, 87, 104, 117, 108, 104, 117, 134, 116, 103, 120, 116, 117, 122, 112, 114, 123, 118, 119, 120, 116, 107, 107, 128, 116, 120, 99, 131, 128, 124, 113, 118, 135, 112, 109, 136, 122, 107, 90, 131, 112, 130, 111, 140, 113, 95, 116, 104, 112, 123, 133, 114, 126, 135, 128, 125, 114, 110, 118, 113, 108, 122, 124, 123, 119, 133, 98, 119, 129, 91, 100, 115, 121, 108, 113, 105, 116, 115, 121, 116, 119, 132, 122, 109, 135, 92, 120, 117, 116, 111, 109, 104, 125, 93, 119, 110, 122, 116, 119, 128, 107, 125, 100, 161, 108, 119, 122, 117, 115, 118, 119, 123, 126, 118, 115, 115, 105, 115, 120, 99, 115, 124, 124, 121, 123, 103, 96, 112, 115, 112, 127, 96, 125, 119, 101, 133, 101, 77, 116, 110, 100, 114, 119, 118, 107, 110, 115, 112, 101, 100, 115, 100, 123, 91, 94, 119, 122, 106, 118, 116, 120, 96, 110, 106, 112, 113, 88, 120, 109, 124, 124, 176, 120, 113, 118, 115, 110, 130, 111, 103, 121, 116, 111, 119, 109, 89, 135, 116, 106, 116, 128, 112, 111, 114, 116, 99, 106, 111, 126, 108, 111, 103, 121, 117, 120, 110, 122, 103, 120, 122, 113, 136, 121, 111, 116, 124, 136, 110, 129, 116, 108, 120, 113, 104, 113, 112, 107, 119, 105, 136, 119, 121, 120, 124, 116, 98, 105, 113, 116, 141, 126, 124, 133, 111, 111, 114, 98, 115, 110, 109, 119, 108, 107, 88, 145, 106, 116, 127, 92, 115, 105, 102, 104, 112, 101, 129, 129, 115, 110, 111, 126, 129, 90, 121, 122, 128, 109, 127, 128, 101, 121, 93, 78, 99, 93, 133, 120, 112, 119, 110, 104, 129, 117, 101, 121, 117, 105, 98, 144, 120, 98, 114, 148, 103, 124, 132, 118, 119, 145, 121, 121, 102, 118, 139, 102, 116, 120, 108, 114, 129, 108, 141, 113, 120, 120, 106, 110, 109, 170, 128, 113, 154, 97, 117, 109, 117, 111, 134, 144, 124, 126, 72, 121, 117, 92, 88, 134, 103, 126, 113, 111, 113, 122, 102, 138, 106, 133, 106, 106, 110, 108, 114, 99, 80, 111, 121, 121, 117, 142, 124, 118, 109, 107, 112, 121, 136, 125, 110, 103, 186, 137, 124, 118, 117, 110, 132, 122, 107, 122, 124, 108, 98, 130, 132, 105, 104, 129, 126, 110, 111, 124, 130, 117, 93, 127, 121, 105, 106, 118, 151, 128, 115, 123, 121, 140, 129, 105, 101, 120, 105, 106, 108, 108, 121, 120, 128, 148, 147, 104, 139, 106, 125, 112, 104, 114, 98, 114, 142, 110, 143, 99, 111, 116, 121, 115, 101, 85, 99, 107, 131, 125, 122, 134, 115, 117, 155, 128, 124, 115, 118, 97, 116, 120, 113, 119, 157, 105, 117, 126, 95, 136, 123, 100, 126, 150, 107, 139, 102, 107, 110, 79, 113, 91, 98, 108, 103, 125, 109, 90, 90, 110, 121, 93, 165, 114, 108, 102, 115, 104, 98, 134, 142, 124, 110, 110, 122, 131, 131, 93, 102, 120, 112, 102, 113, 111, 135, 119, 108, 116, 134, 123, 105, 110, 94, 118, 111, 121, 131, 128, 111, 110, 106, 148, 125, 123, 114, 140, 81, 88, 109, 91, 88, 123, 123, 101, 120, 122, 104, 85, 99, 124, 124, 107, 132, 127, 105, 119, 109, 120, 127, 123, 119, 97, 110, 99, 117, 113, 90, 104, 131, 81, 115, 83, 112, 112, 99, 110, 128, 109, 124, 120, 123, 137, 99, 102, 117, 126, 116, 119, 105, 123, 86, 135, 112, 116, 120, 110, 116, 127, 86, 101, 122, 120, 105, 126, 164, 156, 119, 107, 120, 164, 115, 121, 117, 118, 118, 123, 101, 115, 110, 101, 133, 118, 117, 116, 129, 113, 114, 136, 111, 125, 109, 127, 103, 122, 117, 126, 106, 162, 133, 117, 111, 120, 96, 109, 130, 111, 91, 80, 103, 125, 121, 99, 111, 109, 109, 126, 115, 107, 110, 100, 116, 97, 117, 121, 113, 148, 119, 108, 132, 102, 106, 160, 111, 115, 133, 113, 139, 113, 113, 106, 117, 107, 118, 108, 128, 129, 133, 112, 105, 103, 100, 115, 120, 122, 137, 91, 96, 95, 115, 122, 137, 90, 134, 110, 92, 123, 120, 114, 121, 107, 103, 116, 121, 118, 122, 113, 108, 109, 121, 128, 94, 84, 127, 110, 105, 118, 95, 105, 128, 135, 126, 112, 131, 110, 96, 110, 112, 78, 130, 113, 120, 133, 128, 131, 106, 122, 115, 109, 122, 90, 112, 130, 111, 126, 98, 120, 116, 117, 122, 122, 117, 115, 117, 107, 117, 121, 119, 118, 114, 108, 125, 119, 127, 112, 125, 106, 112, 124, 122, 116, 123, 114, 111, 128, 109, 115, 110, 119, 115, 121, 119, 103, 113, 123, 117, 108, 123, 112, 122, 106, 108, 120, 112, 130, 123, 125, 112, 172, 108, 120, 116, 118, 108, 119, 120, 121, 105, 119, 116, 108, 113, 120, 113, 107, 129, 117, 121, 111, 105, 118, 128, 112, 129, 114, 111, 116, 123, 113, 117, 106, 117, 122, 116, 125, 121, 124, 109, 117, 107, 91, 110, 110, 134, 105, 119, 105, 119, 104, 111, 122, 114, 141, 114, 110, 116, 106, 119, 108, 101, 110, 158, 115, 114, 113, 118, 109, 121, 129, 116, 116, 122, 107, 109, 125, 140, 115, 148, 128, 115, 117, 120, 126, 113, 116, 104, 118, 110, 127, 110, 123, 103, 125, 114, 122, 120, 114, 106, 111, 118, 114, 102, 113, 116, 112, 117, 115, 122, 121, 115, 111, 112, 112, 108, 128, 110, 111, 91, 116, 114, 114, 119, 120, 121, 110, 113, 116, 112, 120, 145, 130, 112, 128, 113, 114, 110, 123, 111, 77, 117, 105, 126, 108, 115, 115, 112, 112, 113, 113, 100, 115, 107, 107, 111, 112, 118, 107, 119, 115, 111, 116, 126, 113, 117, 124, 112, 118, 104, 130, 115, 100, 122, 118, 116, 116, 111, 121, 119, 127, 103, 123, 122, 110, 107, 101, 108, 110, 143, 123, 117, 117, 128, 107, 119, 132, 106, 118, 112, 127, 115, 130, 124, 114, 131, 114, 115, 109, 113, 125, 110, 119, 110, 123, 116, 111, 114, 109, 111, 137, 108, 118, 99, 111, 114, 99, 111, 114, 108, 129, 111, 123, 117, 116, 95, 87, 134, 114, 115, 120, 112, 110, 124, 117, 111, 113, 110, 116, 114, 119, 92, 114, 109, 123, 116, 118, 128, 111, 136, 115, 123, 112, 116, 113, 120, 123, 111, 126, 128, 115, 119, 128, 115, 123, 108, 128, 110, 111, 132, 120, 119, 121, 113, 118, 115, 111, 121, 94, 102, 112, 128, 129, 114, 126, 111, 116, 115, 115, 119, 102, 122, 108, 98, 110, 115, 119, 113, 119, 118, 137, 121, 85, 116, 113, 113, 121, 124, 121, 116, 107, 119, 115, 121, 100, 115, 117, 118, 121, 164, 124, 107, 114, 118, 111, 116, 117, 113, 114, 124, 114, 115, 113, 124, 104, 109, 111, 118, 111, 124, 100, 96, 105, 109, 122, 113, 108, 114, 104, 125, 112, 100, 106, 121, 111, 121, 126, 120, 127, 100, 112, 115, 119, 113, 116, 127, 138, 118, 117, 108, 113, 115, 123, 127, 112, 120, 112, 114, 113, 126, 125, 104, 110, 114, 122, 115, 108, 112, 132, 114, 116, 117, 111, 117, 131, 126, 111, 120, 117, 112, 121, 119, 107, 99, 111, 113, 112, 116, 111, 108, 121, 119, 119, 111, 119, 107, 122, 107, 105, 83, 109, 120, 125, 115, 114, 109, 117, 118, 113, 125, 125, 118, 109, 107, 121, 111, 124, 114, 111, 111, 111, 119, 114, 108, 114, 113, 116, 126, 116, 117, 117, 112, 112, 116, 109, 110, 99, 107, 122, 125, 115, 82, 110, 105, 122, 130, 122, 121, 125, 97, 104, 121, 114, 103, 117, 93, 99, 115, 113, 120, 105, 118, 114, 126, 101, 118, 114, 129, 113, 112, 121, 128, 124, 117, 125, 102, 119, 109, 112, 114, 114, 112, 116, 111, 141, 108, 111, 116, 109, 105, 129, 110, 103, 122, 128, 109, 111, 121, 114, 116, 120, 119, 109, 111, 118, 118, 123, 110, 115, 125, 131, 114, 120, 111, 119, 126, 118, 116, 123, 118, 118, 114, 118, 120, 114, 118, 133, 119, 98, 116, 120, 115, 118, 122, 108, 114, 126, 124, 120, 106, 116, 167, 114, 130, 139, 118, 123, 107, 118, 112, 119, 115, 111, 110, 131, 111, 107, 102, 110, 129, 111, 129, 122, 109, 112, 106, 119, 97, 127, 110, 111, 120, 111, 113, 107, 107, 116, 115, 125, 138, 122, 110, 113, 104, 109, 111, 120, 120, 109, 114, 96, 123, 121, 111, 117, 118, 102, 122, 87, 125, 117, 130, 117, 112, 101, 109, 115, 118, 118, 118, 110, 106, 117, 118, 123, 117, 130, 106, 113, 139, 131, 110, 125, 127, 110, 116, 105, 110, 102, 116, 120, 125, 109, 111, 114, 111, 109, 105, 121, 126, 117, 124, 125, 112, 82, 105, 130, 115, 116, 108, 105, 107, 125, 115, 114, 111, 115, 116, 122, 105, 119, 118, 102, 87, 109, 113, 107, 105, 120, 119, 117, 120, 114, 115, 118, 107, 117, 111, 114, 113, 136, 118, 122, 131, 134, 118, 136, 109, 123, 108, 114, 109, 131, 128, 104, 118, 128, 118, 104, 111, 101, 118, 123, 128, 134, 122, 133, 116, 143, 105, 93, 111, 122, 109, 120, 122, 105, 129, 109, 111, 118, 129, 106, 114, 115, 126, 121, 123, 106, 116, 117, 99, 126, 117, 108, 111, 112, 103, 109, 117, 101, 121, 110, 105, 112, 130, 105, 132, 109, 129, 122, 126, 120, 121, 116, 119, 106, 120, 122, 126, 111, 114, 117, 117, 119, 114, 108, 114, 124, 104, 118, 109, 124, 125, 136, 118, 118, 124, 122, 112, 116, 114, 118, 129, 118, 124, 128, 114, 97, 128, 107, 127, 118, 105, 122, 119, 123, 106, 101, 115, 111, 103, 118, 106, 119, 125, 112, 117, 113, 120, 115, 128, 131, 118, 119, 112, 101, 122, 119, 115, 122, 115, 109, 123, 120, 139, 111, 112, 124, 120, 117, 112, 115, 119, 111, 113, 115, 111, 121, 122, 115, 153, 111, 119, 114, 107, 97, 152, 106, 116, 137, 112, 128, 114, 119, 111, 117, 121, 114, 122, 113, 133, 99, 112, 132, 116, 124, 135, 82, 110, 100, 106, 124, 109, 122, 119, 109, 118, 121, 126, 110, 130, 122, 107, 112, 139, 109, 119, 114, 114, 117, 110, 128, 117, 111, 120, 101, 115, 106, 116, 81, 119, 126, 127, 112, 123, 106, 126, 109, 107, 114, 117, 114, 108, 121, 116, 117, 118, 110, 109, 122, 111, 124, 116, 121, 105, 109, 117, 125, 105, 112, 106, 112, 130, 115, 112, 116, 105, 110, 122, 117, 127, 104, 118, 131, 121, 104, 98, 110, 108, 116, 99, 107, 98, 109, 113, 103, 112, 121, 123, 110, 143, 122, 115, 109, 98, 111, 96, 130, 128, 123, 116, 110, 128, 100, 112, 116, 121, 139, 110, 105, 127, 106, 122, 113, 105, 106, 114, 130, 112, 120, 108, 96, 124, 112, 126, 104, 130, 100, 113, 100, 121, 116, 108, 107, 123, 116, 108, 116, 98, 128, 113, 123, 110, 140, 115, 124, 128, 98, 122, 115, 116, 109, 130, 117, 143, 106, 110, 133, 112, 127, 126, 106, 125, 103, 127, 122, 109, 95, 99, 110, 112, 118, 120, 119, 109, 122, 105, 108, 103, 99, 114, 118, 118, 117, 101, 100, 131, 105, 140, 118, 120, 116, 118, 109, 113, 91, 130, 112, 112, 137, 113, 123, 101, 102, 101, 120, 117, 108, 114, 99, 116, 113, 114, 120, 117, 112, 118, 111, 118, 110, 117, 99, 121, 110, 134, 119, 117, 124, 122, 105, 124, 100, 98, 125, 112, 97, 116, 122, 106, 137, 101, 108, 128, 115, 129, 116, 105, 104, 125, 114, 124, 126, 111, 97, 116, 117, 111, 105, 109, 111, 124, 114, 123, 96, 113, 114, 98, 109, 117, 117, 128, 112, 112, 113, 117, 128, 172, 113, 113, 105, 117, 142, 121, 129, 111, 110, 123, 145, 105, 95, 124, 113, 110, 139, 118, 124, 111, 115, 127, 122, 113, 106, 158, 111, 112, 114, 99, 108, 109, 107, 125, 118, 119, 111, 98, 125, 115, 95, 135, 105, 109, 104, 139, 111, 106, 92, 117, 124, 164, 120, 107, 111, 101, 101, 122, 109, 115, 122, 118, 105, 120, 101, 108, 117, 114, 104, 110, 115, 124, 109, 125, 134, 115, 131, 111, 125, 125, 108, 111, 110, 117, 105, 129, 113, 126, 102, 107, 117, 130, 120, 106, 113, 127, 118, 119, 114, 116, 108, 112, 123, 114, 137, 113, 122, 114, 105, 127, 111, 125, 119, 109, 110, 108, 114, 100, 118, 110, 110, 104, 103, 109, 126, 115, 120, 124, 102, 149, 111, 125, 105, 98, 114, 118, 120, 92, 108, 124, 113, 102, 105, 130, 116, 114, 102, 114, 118, 112, 94, 130, 108, 107, 110, 100, 119, 124, 115, 91, 107, 111, 111, 112, 109, 123, 108, 112, 113, 103, 110, 106, 115, 116, 109, 103, 115, 119, 102, 131, 107, 117, 118, 110, 106, 105, 109, 116, 112, 116, 123, 89, 121, 112, 118, 126, 119, 116, 124, 100, 107, 117, 101, 113, 121, 122, 99, 130, 117, 116, 125, 125, 122, 106, 115, 116, 132, 110, 105, 105, 115, 97, 103, 101, 111, 129, 115, 129, 109, 120, 115, 140, 98, 107, 100, 108, 125, 110, 115, 108, 116, 110, 125, 111, 113, 121, 135, 130, 121, 103, 132, 145, 117, 88, 111, 116, 146, 123, 93, 120, 88, 120, 115, 120, 120, 139, 106, 129, 109, 112, 141, 110, 117, 123, 112, 100, 113, 115, 112, 109, 112, 104, 107, 136, 127, 117, 126, 116, 117, 127, 117, 112, 119, 111, 114, 96, 103, 110, 126, 111, 107, 118, 131, 127, 124, 110, 116, 103, 119, 113, 102, 112, 118, 123, 124, 114, 100, 112, 129, 117, 101, 126, 124, 112, 118, 113, 105, 131, 127, 117, 93, 121, 117, 114, 111, 100, 119, 46, 123, 125, 119, 103, 122, 119, 109, 109, 116, 123, 118, 126, 116, 119, 120, 118, 126, 120, 116, 111, 122, 113, 110, 103, 121, 115, 124, 127, 109, 122, 96, 105, 112, 119, 115, 104, 116, 122, 114, 104, 107, 99, 125, 119, 118, 122, 110, 104, 111, 116, 116, 101, 115, 114, 109, 120, 111, 115, 98, 113, 123, 116, 120, 112, 118, 108, 119, 118, 117, 124, 111, 96, 123, 117, 115, 112, 107, 120, 115, 120, 120, 113, 117, 134, 127, 119, 121, 127, 113, 130, 109, 98, 113, 123, 113, 113, 104, 118, 111, 108, 104, 110, 119, 115, 127, 119, 126, 121, 120, 105, 109, 103, 129, 105, 121, 103, 113, 124, 120, 105, 129, 121, 113, 123, 107, 119, 118, 113, 108, 138, 114, 120, 115, 117, 119, 105, 109, 110, 104, 105, 121, 129, 136, 112, 128, 109, 102, 121, 112, 115, 119, 122, 134, 120, 120, 118, 126, 119, 102, 117, 112, 118, 121, 118, 117, 120, 113, 113, 142, 115, 123, 109, 117, 121, 101, 129, 107, 115, 123, 102, 104, 125, 116, 108, 109, 115, 112, 115, 121, 115, 128, 116, 126, 104, 114, 113, 126, 121, 110, 108, 146, 109, 109, 114, 102, 107, 106, 120, 110, 133, 110, 131, 115, 112, 106, 111, 123, 105, 123, 111, 123, 107, 127, 124, 127, 106, 111, 128, 110, 115, 121, 117, 119, 118, 110, 109, 111, 104, 115, 109, 94, 120, 112, 113, 115, 127, 119, 109, 117, 118, 127, 132, 115, 120, 116, 125, 107, 117, 132, 112, 119, 109, 121, 142, 114, 110, 112, 123, 122, 108, 113, 120, 131, 98, 117, 122, 128, 123, 99, 112, 113, 101, 99, 115, 108, 123, 119, 110, 112, 120, 118, 118, 120, 106, 115, 135, 112, 112, 121, 119, 111, 115, 118, 112, 113, 113, 112, 126, 110, 93, 124, 114, 119, 100, 122, 109, 109, 118, 111, 122, 120, 90, 113, 113, 106, 103, 109, 114, 110, 117, 118, 118, 117, 122, 107, 129, 113, 108, 113, 126, 117, 115, 119, 115, 105, 126, 104, 126, 109, 122, 132, 119, 107, 108, 79, 117, 109, 111, 125, 120, 125, 107, 119, 123, 111, 110, 108, 117, 108, 112, 111, 131, 107, 95, 109, 113, 112, 108, 116, 116, 104, 117, 122, 126, 109, 112, 121, 115, 106, 107, 120, 104, 110, 119, 120, 112, 112, 112, 115, 126, 121, 103, 100, 121, 116, 123, 127, 116, 116, 134, 117, 116, 82, 110, 95, 116, 124, 103, 127, 99, 118, 123, 112, 130, 103, 122, 125, 121, 107, 113, 110, 116, 117, 110, 129, 116, 122, 122, 121, 106, 117, 123, 119, 109, 128, 124, 126, 118, 119, 113, 118, 111, 100, 108, 124, 106, 111, 114, 117, 121, 114, 113, 110, 124, 127, 110, 118, 110, 114, 121, 104, 111, 127, 108, 116, 124, 119, 106, 111, 126, 106, 115, 118, 125, 133, 118, 144, 130, 120, 106, 100, 114, 119, 98, 118, 111, 109, 137, 119, 105, 106, 119, 102, 124, 114, 112, 127, 123, 91, 123, 126, 108, 112, 114, 107, 109, 115, 109, 112, 121, 137, 114, 110, 114, 101, 124, 116, 134, 110, 112, 115, 128, 97, 104, 117, 135, 123, 110, 117, 127, 109, 119, 117, 109, 113, 104, 119, 104, 105, 105, 109, 110, 107, 133, 109, 124, 108, 120, 101, 107, 109, 119, 113, 110, 113, 109, 102, 128, 125, 107, 126, 107, 125, 122, 110, 139, 111, 100, 121, 110, 117, 116, 89, 110, 120, 115, 108, 127, 119, 142, 106, 107, 94, 99, 110, 104, 124, 95, 120, 116, 131, 95, 109, 117, 107, 108, 110, 113, 113, 116, 114, 132, 121, 135, 129, 83, 119, 131, 115, 115, 110, 117, 107, 129, 102, 118, 104, 151, 117, 124, 117, 110, 102, 141, 131, 111, 120, 107, 101, 113, 97, 128, 114, 110, 110, 124, 117, 112, 106, 105, 118, 109, 116, 120, 111, 111, 128, 116, 104, 122, 114, 96, 127, 108, 120, 108, 120, 99, 123, 119, 129, 121, 136, 115, 120, 114, 101, 126, 127, 114, 87, 128, 120, 118, 118, 120, 98, 114, 122, 111, 102, 105, 119, 106, 122, 120, 112, 94, 135, 117, 110, 112, 114, 122, 114, 108, 117, 110, 124, 114, 108, 107, 111, 116, 114, 122, 134, 119, 99, 101, 101, 114, 114, 125, 116, 100, 121, 108, 116, 118, 114, 105, 112, 111, 119, 107, 113, 122, 121, 134, 120, 125, 111, 124, 116, 117, 135, 122, 123, 116, 116, 120, 116, 123, 111, 104, 121, 126, 118, 111, 107, 112, 122, 107, 97, 126, 117, 126, 102, 96, 113, 112, 115, 130, 118, 126, 132, 131, 108, 117, 113, 108, 112, 84, 116, 111, 126, 130, 100, 106, 114, 110, 112, 134, 109, 121, 100, 105, 90, 110, 164, 118, 106, 104, 110, 120, 116, 116, 114, 103, 105, 115, 112, 111, 168, 121, 130, 114, 134, 122, 102, 119, 111, 131, 113, 114, 116, 97, 119, 108, 97, 128, 123, 125, 97, 103, 109, 125, 100, 119, 123, 126, 102, 104, 101, 116, 111, 119, 125, 115, 106, 86, 115, 109, 116, 119, 113, 109, 119, 125, 110, 105, 126, 107, 114, 108, 110, 108, 114, 110, 126, 107, 118, 116, 143, 120, 114, 116, 116, 107, 119, 138, 148, 110, 90, 103, 118, 107, 119, 119, 110, 115, 101, 124, 95, 134, 113, 114, 104, 118, 110, 146, 122, 106, 123, 110, 102, 107, 114, 127, 115, 111, 120, 109, 126, 131, 108, 119, 116, 121, 107, 104, 105, 120, 131, 116, 111, 103, 124, 116, 114, 112, 99, 116, 107, 124, 112, 113, 115, 113, 108, 110, 110, 124, 95, 129, 112, 117, 111, 129, 131, 120, 115, 111, 114, 121, 124, 110, 125, 107, 108, 99, 120, 104, 120, 118, 104, 108, 112, 120, 120, 139, 124, 114, 103, 142, 114, 94, 116, 129, 109, 123, 116, 110, 114, 138, 107, 133, 123, 118, 111, 111, 117, 127, 123, 121, 113, 103, 110, 116, 119, 124, 128, 125, 108, 122, 119, 123, 113, 119, 110, 121, 110, 109, 127, 109, 106, 128, 126, 115, 112, 116, 112, 95, 128, 111, 115, 117, 118, 104, 121, 105, 102, 116, 107, 118, 123, 115, 103, 123, 113, 119, 105, 104, 108, 110, 120, 121, 116, 127, 119, 112, 107, 109, 123, 123, 105, 143, 121, 101, 122, 117, 97, 136, 118, 106, 125, 119, 121, 124, 98, 117, 102, 110, 114, 121, 122, 121, 117, 129, 114, 116, 115, 106, 109, 153, 117, 112, 118, 118, 115, 106, 109, 108, 112, 107, 106, 116, 114, 121, 125, 116, 125, 110, 114, 102, 103, 118, 118, 128, 116, 113, 114, 117, 122, 125, 113, 117, 113, 111, 122, 124, 121, 133, 115, 113, 122, 106, 130, 92, 119, 111, 107, 131, 113, 109, 119, 117, 124, 97, 128, 119, 112, 119, 112, 129, 125, 115, 121, 123, 87, 126, 116, 118, 123, 138, 107, 113, 106, 120, 109, 117, 121, 126, 129, 126, 109, 127, 111, 122, 116, 102, 111, 139, 116, 118, 117, 124, 112, 108, 122, 121, 113, 128, 138, 118, 115, 127, 120, 113, 110, 101, 117, 116, 120, 129, 114, 113, 115, 107, 110, 128, 119, 119, 117, 114, 121, 130, 116, 128, 125, 104, 111, 114, 115, 121, 120, 131, 115, 111, 94, 95, 120, 114, 119, 120, 126, 117, 117, 116, 116, 117, 115, 100, 116, 113, 102, 108, 113, 116, 106, 123, 112, 111, 118, 111, 128, 113, 105, 118, 107, 120, 114, 114, 123, 112, 117, 111, 104, 117, 124, 119, 110, 108, 113, 109, 118, 113, 117, 104, 109, 136, 104, 109, 118, 118, 118, 118, 119, 111, 115, 133, 123, 140, 118, 109, 125, 116, 116, 98, 132, 120, 124, 124, 118, 110, 109, 117, 119, 119, 110, 111, 112, 120, 118, 128, 110, 126, 116, 93, 115, 120, 113, 113, 113, 106, 113, 106, 113, 99, 111, 111, 126, 104, 112, 107, 119, 106, 114, 113, 125, 110, 111, 117, 98, 126, 114, 121, 123, 120, 118, 104, 109, 111, 115, 118, 89, 102, 118, 111, 100, 113, 108, 122, 119, 126, 110, 122, 118, 116, 150, 127, 126, 114, 121, 107, 109, 106, 110, 120, 109, 116, 129, 113, 107, 111, 129, 122, 118, 110, 118, 118, 116, 115, 111, 123, 116, 114, 120, 106, 107, 110, 112, 92, 114, 117, 113, 117, 107, 110, 112, 130, 109, 110, 123, 115, 106, 112, 113, 106, 125, 127, 106, 110, 107, 123, 113, 113, 126, 107, 140, 112, 117, 101, 126, 200, 114, 116, 106, 107, 120, 125, 112, 112, 102, 122, 119, 119, 105, 130, 125, 108, 122, 134, 128, 109, 110, 109, 189, 111, 93, 139, 118, 111, 123, 107, 135, 110, 114, 120, 118, 110, 114, 106, 110, 119, 100, 114, 123, 120, 128, 113, 121, 112, 117, 104, 105, 110, 116, 109, 119, 116, 115, 107, 111, 117, 118, 120, 107, 123, 123, 117, 92, 114, 115, 115, 125, 107, 116, 105, 100, 125, 105, 119, 107, 116, 116, 119, 114, 107, 133, 112, 111, 94, 113, 128, 113, 123, 110, 96, 129, 126, 117, 110, 109, 117, 138, 111, 112, 120, 113, 109, 117, 112, 107, 110, 119, 118, 123, 121, 121, 124, 106, 109, 109, 133, 113, 118, 103, 128, 121, 128, 115, 105, 126, 117, 123, 115, 122, 112, 115, 102, 110, 103, 112, 117, 115, 124, 115, 110, 107, 110, 122, 118, 123, 111, 116, 131, 134, 101, 105, 111, 124, 104, 120, 117, 123, 114, 104, 112, 115, 117, 104, 114, 124, 117, 125, 96, 121, 111, 117, 105, 120, 117, 103, 104, 137, 108, 116, 96, 105, 123, 110, 123, 119, 118, 104, 97, 108, 127, 124, 120, 122, 109, 112, 95, 113, 101, 111, 117, 133, 116, 130, 111, 101, 113, 121, 103, 117, 112, 131, 101, 122, 109, 130, 120, 113, 111, 117, 109, 122, 107, 121, 121, 117, 115, 115, 117, 120, 108, 118, 98, 105, 116, 111, 113, 125, 116, 111, 125, 121, 130, 101, 121, 107, 108, 127, 116, 97, 108, 114, 114, 117, 127, 121, 111, 121, 150, 123, 114, 123, 100, 116, 114, 108, 118, 111, 117, 123, 109, 109, 120, 120, 115, 114, 119, 134, 104, 117, 114, 117, 134, 117, 127, 130, 109, 107, 124, 130, 113, 106, 116, 107, 121, 121, 113, 108, 110, 119, 108, 109, 119, 102, 91, 113, 104, 114, 113, 117, 126, 109, 113, 115, 134, 124, 129, 109, 117, 107, 129, 131, 103, 124, 104, 112, 125, 121, 137, 124, 121, 130, 115, 90, 117, 128, 114, 120, 113, 116, 103, 100, 126, 92, 121, 118, 105, 107, 131, 114, 117, 111, 106, 122, 130, 121, 108, 121, 127, 132, 119, 111, 115, 118, 140, 129, 126, 109, 129, 104, 123, 125, 138, 111, 101, 98, 111, 138, 130, 108, 122, 124, 120, 127, 109, 112, 139, 136, 110, 112, 122, 109, 115, 95, 120, 106, 128, 117, 116, 115, 111, 102, 111, 97, 123, 102, 122, 109, 122, 105, 112, 134, 121, 98, 125, 121, 132, 109, 118, 114, 114, 120, 112, 118, 118, 121, 140, 117, 123, 95, 129, 113, 120, 124, 109, 118, 110, 105, 128, 139, 126, 112, 117, 130, 120, 112, 122, 121, 116, 124, 117, 104, 119, 104, 131, 110, 135, 114, 97, 125, 117, 109, 114, 123, 129, 109, 120, 115, 107, 120, 117, 122, 119, 124, 135, 102, 93, 119, 115, 119, 95, 116, 110, 112, 80, 106, 102, 112, 108, 124, 124, 108, 107, 110, 114, 121, 117, 96, 117, 118, 115, 124, 113, 128, 107, 99, 109, 121, 100, 122, 111, 109, 125, 130, 121, 121, 113, 110, 102, 130, 101, 121, 116, 126, 128, 116, 113, 120, 113, 115, 109, 106, 102, 118, 109, 108, 128, 139, 119, 113, 113, 115, 122, 123, 113, 126, 106, 131, 98, 118, 103, 112, 120, 131, 113, 107, 123, 105, 124, 99, 120, 119, 116, 159, 93, 111, 109, 118, 116, 118, 117, 104, 106, 98, 117, 105, 144, 117, 129, 116, 120, 114, 127, 120, 128, 131, 116, 118, 114, 115, 101, 128, 124, 113, 90, 117, 118, 101, 121, 116, 115, 104, 116, 120, 110, 112, 117, 110, 107, 111, 115, 112, 120, 121, 198, 116, 114, 118, 124, 105, 127, 94, 112, 114, 122, 109, 111, 116, 118, 123, 113, 117, 124, 105, 123, 120, 105, 125, 131, 119, 111, 143, 118, 116, 116, 112, 107, 113, 110, 97, 113, 123, 117, 118, 111, 122, 115, 139, 122, 106, 112, 124, 114, 119, 97, 119, 110, 123, 115, 128, 112, 111, 115, 116, 101, 104, 112, 119, 121, 117, 115, 116, 122, 111, 123, 135, 90, 117, 113, 126, 126, 116, 109, 118, 75, 116, 113, 120, 106, 111, 123, 130, 115, 132, 121, 109, 114, 97, 114, 108, 124, 101, 128, 118, 119, 106, 108, 118, 115, 114, 120, 113, 113, 113, 130, 121, 101, 108, 120, 117, 114, 113, 109, 126, 118, 109, 112, 114, 111, 127, 117, 105, 112, 113, 121, 125, 88, 71, 117, 115, 132, 113, 116, 109, 119, 112, 115, 114, 123, 120, 108, 112, 120, 118, 121, 118, 114, 118, 119, 126, 117, 107, 121, 119, 110, 119, 114, 122, 115, 124, 120, 117, 108, 110, 113, 117, 116, 114, 123, 121, 109, 118, 122, 116, 123, 114, 127, 111, 122, 118, 109, 108, 130, 126, 111, 142, 122, 130, 115, 124, 114, 119, 125, 114, 113, 121, 118, 111, 122, 113, 105, 118, 114, 119, 115, 103, 114, 119, 123, 114, 118, 113, 113, 114, 115, 124, 115, 111, 123, 117, 122, 109, 111, 109, 109, 121, 122, 113, 117, 112, 121, 86, 116, 116, 101, 115, 114, 105, 129, 123, 120, 128, 122, 109, 106, 107, 112, 110, 109, 119, 124, 115, 109, 113, 124, 112, 114, 120, 123, 122, 116, 131, 120, 110, 133, 94, 102, 124, 100, 113, 121, 119, 114, 109, 115, 120, 123, 109, 114, 123, 110, 110, 123, 119, 101, 116, 102, 116, 109, 106, 103, 118, 115, 113, 122, 116, 113, 110, 110, 123, 112, 120, 128, 119, 117, 118, 112, 116, 117, 119, 139, 127, 113, 120, 116, 121, 117, 123, 137, 121, 121, 115, 120, 111, 110, 124, 118, 119, 121, 128, 111, 111, 117, 120, 111, 115, 103, 116, 127, 119, 84, 122, 143, 115, 113, 132, 126, 121, 124, 117, 116, 110, 113, 118, 112, 125, 116, 120, 118, 70, 85, 120, 114, 102, 116, 111, 114, 122, 122, 113, 107, 118, 115, 108, 129, 134, 110, 94, 111, 106, 105, 109, 117, 126, 131, 108, 122, 110, 111, 111, 111, 105, 114, 121, 100, 116, 114, 123, 125, 99, 130, 111, 113, 113, 142, 130, 121, 99, 124, 117, 119, 125, 131, 118, 122, 119, 134, 108, 101, 139, 120, 93, 110, 126, 119, 117, 108, 124, 117, 116, 129, 117, 117, 114, 115, 110, 124, 95, 129, 117, 102, 127, 103, 122, 119, 119, 111, 119, 111, 67, 117, 109, 112, 114, 112, 114, 108, 113, 112, 122, 119, 122, 110, 118, 126, 102, 92, 129, 117, 120, 124, 83, 123, 133, 108, 127, 115, 126, 114, 116, 107, 115, 125, 122, 125, 120, 116, 127, 110, 124, 122, 110, 119, 112, 107, 112, 135, 115, 109, 105, 111, 121, 113, 106, 118, 122, 121, 115, 127, 106, 121, 120, 109, 117, 122, 119, 105, 110, 115, 118, 111, 114, 114, 130, 116, 119, 120, 116, 111, 113, 104, 119, 132, 114, 112, 110, 129, 128, 119, 116, 108, 119, 117, 119, 124, 115, 114, 128, 111, 119, 114, 108, 108, 113, 84, 105, 119, 108, 115, 114, 118, 121, 117, 114, 113, 110, 109, 111, 117, 100, 113, 95, 110, 141, 101, 118, 113, 109, 110, 92, 114, 114, 109, 98, 110, 123, 112, 112, 123, 116, 117, 122, 118, 115, 119, 118, 120, 124, 117, 116, 113, 110, 114, 108, 122, 110, 113, 116, 102, 116, 123, 133, 136, 112, 91, 115, 116, 111, 115, 112, 116, 115, 116, 107, 125, 120, 117, 120, 114, 108, 121, 124, 116, 117, 130, 115, 113, 67, 116, 119, 110, 116, 115, 105, 120, 110, 127, 116, 121, 128, 127, 116, 117, 117, 116, 119, 108, 106, 117, 110, 114, 113, 98, 97, 119, 106, 121, 120, 119, 113, 109, 124, 115, 122, 122, 124, 114, 115, 123, 125, 117, 112, 118, 108, 116, 103, 116, 110, 116, 106, 116, 109, 137, 123, 113, 119, 139, 124, 118, 109, 109, 128, 120, 122, 108, 122, 114, 112, 123, 77, 114, 119, 119, 120, 119, 122, 109, 111, 105, 117, 124, 112, 131, 100, 110, 101, 117, 124, 105, 109, 125, 123, 126, 120, 117, 114, 122, 118, 114, 109, 103, 116, 127, 116, 116, 117, 118, 114, 116, 117, 121, 109, 127, 127, 115, 109, 119, 112, 121, 115, 110, 118, 114, 116, 113, 122, 111, 121, 124, 125, 120, 111, 115, 109, 109, 131, 120, 118, 112, 94, 118, 108, 124, 109, 111, 128, 119, 119, 139, 116, 116, 126, 130, 117, 110, 112, 112, 116, 113, 119, 115, 114, 107, 122, 102, 115, 120, 117, 115, 116, 95, 109, 102, 115, 114, 112, 108, 114, 115, 125, 138, 109, 114, 116, 111, 115, 118, 114, 110, 118, 117, 119, 115, 139, 101, 120, 108, 111, 120, 123, 116, 124, 118, 130, 106, 113, 111, 116, 122, 113, 118, 111, 120, 98, 112, 146, 131, 125, 111, 113, 104, 120, 111, 111, 117, 116, 111, 109, 117, 121, 115, 113, 119, 115, 120, 112, 118, 124, 124, 111, 120, 132, 122, 128, 113, 114, 118, 115, 118, 117, 112, 111, 166, 116, 124, 111, 116, 116, 109, 119, 117, 114, 117, 114, 112, 121, 111, 111, 113, 110, 119, 123, 134, 112, 124, 116, 116, 119, 116, 116, 117, 153, 141, 116, 120, 117, 107, 112, 115, 109, 108, 124, 116, 108, 113, 85, 123, 121, 120, 108, 121, 115, 119, 124, 112, 117, 114, 119, 116, 116, 105, 109, 114, 128, 118, 114, 108, 105, 110, 104, 141, 115, 115, 113, 108, 105, 126, 117, 109, 115, 107, 111, 115, 119, 122, 117, 115, 123, 112, 122, 113, 119, 127, 116, 106, 120, 108, 116, 120, 119, 118, 99, 119, 113, 108, 120, 123, 110, 105, 108, 109, 118, 109, 128, 103, 111, 96, 107, 112, 115, 110, 112, 109, 113, 122, 116, 113, 101, 114, 113, 112, 106, 110, 130, 107, 122, 120, 114, 137, 114, 125, 117, 127, 108, 118, 115, 125, 118, 112, 125, 125, 111, 111, 122, 119, 103, 113, 125, 120, 110, 108, 128, 105, 105, 118, 124, 106, 123, 108, 124, 123, 105, 114, 125, 105, 137, 118, 118, 111, 109, 101, 109, 124, 124, 110, 115, 123, 118, 105, 117, 134, 118, 117, 112, 122, 120, 116, 147, 120, 127, 125, 108, 120, 121, 118, 117, 120, 115, 124, 117, 115, 123, 107, 114, 103, 120, 123, 126, 113, 120, 122, 110, 122, 111, 94, 118, 112, 115, 107, 119, 107, 107, 113, 126, 114, 131, 115, 128, 118, 115, 107, 117, 129, 117, 115, 124, 117, 118, 110, 120, 127, 116, 105, 112, 115, 117, 123, 134, 104, 107, 107, 136, 143, 116, 111, 112, 108, 122, 127, 112, 119, 119, 110, 101, 130, 137, 132, 120, 125, 144, 110, 101, 117, 113, 115, 113, 127, 136, 138, 122, 111, 137, 118, 108, 120, 117, 121, 115, 111, 117, 113, 114, 145, 110, 122, 105, 112, 101, 106, 120, 122, 122, 110, 120, 106, 127, 107, 114, 116, 111, 88, 118, 120, 121, 114, 126, 117, 116, 112, 108, 118, 111, 119, 114, 132, 127, 123, 115, 124, 122, 113, 107, 120, 107, 120, 104, 101, 138, 106, 121, 118, 107, 112, 116, 109, 140, 120, 109, 125, 129, 117, 115, 119, 113, 101, 115, 116, 114, 112, 126, 114, 122, 131, 109, 110, 123, 119, 126, 122, 105, 99, 113, 119, 96, 118, 108, 109, 116, 120, 111, 113, 114, 120, 134, 122, 111, 112, 119, 103, 115, 104, 129, 103, 114, 118, 130, 124, 121, 114, 113, 119, 121, 120, 120, 119, 115, 119, 103, 120, 120, 105, 125, 129, 120, 121, 127, 119, 129, 115, 112, 102, 135, 122, 112, 115, 114, 132, 132, 112, 112, 114, 111, 120, 135, 108, 111, 114, 111, 117, 115, 113, 107, 107, 117, 106, 106, 111, 108, 107, 101, 123, 122, 120, 112, 121, 119, 107, 115, 129, 101, 109, 129, 119, 113, 137, 113, 107, 118, 122, 132, 121, 127, 122, 123, 108, 110, 111, 113, 111, 129, 108, 111, 110, 104, 111, 111, 116, 115, 112, 128, 115, 133, 115, 125, 123, 118, 122, 134, 118, 123, 114, 115, 117, 116, 118, 110, 106, 110, 100, 124, 116, 134, 112, 103, 111, 99, 116, 123, 107, 107, 114, 107, 116, 104, 119, 119, 115, 88, 123, 146, 122, 119, 115, 114, 108, 102, 114, 118, 103, 109, 111, 99, 107, 118, 112, 116, 121, 119, 104, 137, 112, 110, 113, 111, 113, 114, 120, 131, 108, 122, 114, 120, 115, 137, 112, 120, 114, 111, 108, 120, 109, 119, 108, 109, 104, 125, 102, 109, 118, 111, 111, 128, 113, 129, 116, 104, 128, 131, 109, 115, 106, 113, 128, 118, 120, 119, 109, 142, 123, 102, 123, 127, 116, 109, 137, 118, 131, 114, 131, 127, 111, 116, 96, 121, 96, 113, 123, 107, 97, 115, 113, 123, 101, 114, 117, 115, 105, 105, 102, 139, 109, 117, 119, 116, 121, 119, 117, 123, 130, 118, 115, 112, 113, 118, 110, 128, 116, 111, 118, 123, 109, 118, 117, 110, 109, 117, 117, 123, 97, 123, 119, 119, 120, 142, 101, 106, 113, 111, 123, 106, 135, 123, 114, 120, 112, 108, 123, 90, 114, 121, 110, 127, 109, 109, 120, 109, 102, 118, 118, 91, 106, 111, 113, 108, 123, 102, 108, 106, 112, 110, 116, 116, 122, 107, 106, 120, 117, 119, 102, 122, 126, 118, 126, 107, 126, 119, 131, 116, 111, 125, 126, 93, 115, 111, 107, 130, 117, 111, 126, 102, 143, 127, 123, 108, 104, 114, 124, 120, 122, 112, 108, 111, 93, 98, 125, 122, 91, 109, 101, 116, 107, 105, 156, 103, 116, 124, 107, 100, 126, 112, 116, 138, 122, 126, 96, 105, 106, 125, 108, 120, 142, 117, 105, 113, 127, 118, 116, 127, 127, 114, 113, 109, 112, 101, 109, 109, 108, 113, 120, 88, 125, 112, 110, 120, 93, 110, 134, 116, 119, 125, 125, 121, 122, 115, 125, 105, 123, 93, 113, 122, 125, 109, 119, 107, 123, 136, 122, 104, 111, 112, 119, 131, 134, 107, 113, 120, 115, 131, 107, 135, 124, 102, 132, 123, 113, 112, 108, 118, 114, 121, 96, 110, 124, 129, 118, 113, 108, 116, 105, 120, 125, 104, 108, 135, 117, 121, 121, 99, 112, 100, 119, 128, 132, 125, 113, 112, 116, 133, 113, 94, 100, 103, 110, 116, 107, 118, 116, 120, 116, 133, 132, 130, 111, 94, 115, 119, 120, 118, 130, 118, 115, 115, 120, 108, 141, 99, 110, 115, 116, 125, 102, 130, 109, 128, 116, 119, 133, 124, 120, 139, 117, 99, 117, 130, 110, 145, 99, 133, 102, 112, 127, 138, 117, 110, 118, 111, 134, 114, 120, 134, 132, 114, 116, 127, 123, 126, 123, 117, 116, 115, 118, 115, 96, 125, 108, 112, 122, 113, 116, 116, 126, 119, 130, 101, 125, 107, 106, 139, 127, 112, 119, 108, 111, 120, 108, 122, 102, 108, 107, 115, 104, 96, 126, 120, 105, 131, 117, 120, 101, 114, 127, 141, 124, 109, 113, 101, 123, 111, 135, 117, 119, 120, 131, 113, 108, 140, 118, 112, 112, 97, 126, 129, 112, 136, 109, 115, 123, 117, 110, 128, 125, 118, 133, 109, 126, 139, 105, 113, 116, 107, 122, 127, 116, 129, 115, 137, 114, 107, 100, 132, 108, 122, 109, 107, 115, 87, 113, 124, 112, 135, 133, 104, 119, 101, 102, 110, 107, 113, 110, 124, 106, 102, 133, 106, 131, 112, 102, 115, 131, 109, 107, 128, 135, 120, 112, 96, 106, 119, 113, 99, 101, 116, 94, 91, 113, 107, 125, 109, 114, 116, 108, 121, 117, 106, 105, 126, 117, 139, 108, 102, 110, 114, 125, 113, 105, 121, 106, 113, 117, 115, 124, 96, 111, 126, 119, 122, 126, 107, 120, 117, 96, 125, 123, 114, 105, 88, 111, 113, 122, 211, 133, 117, 110, 97, 103, 125, 117, 112, 98, 127, 122, 103, 105, 115, 112, 108, 101, 106, 109, 129, 108, 122, 115, 87, 106, 117, 104, 114, 98, 98, 119, 116, 130, 112, 102, 101, 134, 116, 117, 104, 119, 130, 120, 119, 113, 132, 117, 129, 141, 129, 130, 128, 101, 124, 143, 108, 112, 109, 116, 122, 120, 139, 109, 83, 105, 111, 115, 115, 114, 114, 112, 110, 111, 107, 115, 119, 115, 112, 125, 107, 113, 102, 108, 111, 116, 91, 113, 118, 93, 109, 117, 117, 109, 107, 113, 114, 113, 98, 113, 115, 120, 93, 113, 114, 111, 99, 117, 113, 118, 109, 106, 113, 116, 121, 109, 107, 122, 113, 118, 136, 123, 113, 108, 127, 103, 133, 113, 116, 116, 127, 126, 124, 115, 141, 123, 122, 116, 123, 119, 130, 119, 125, 128, 120, 121, 127, 104, 109, 110, 124, 113, 101, 125, 117, 120, 109, 117, 103, 110, 104, 110, 114, 123, 108, 110, 104, 116, 107, 110, 112, 114, 81, 106, 121, 91, 96, 107, 127, 106, 88, 110, 122, 128, 113, 132, 116, 108, 107, 107, 114, 99, 103, 129, 117, 121, 143, 122, 116, 116, 106, 115, 115, 111, 113, 110, 124, 106, 112, 109, 118, 116, 121, 110, 101, 125, 122, 116, 127, 119, 123, 103, 118, 104, 113, 112, 121, 108, 102, 113, 113, 106, 139, 108, 106, 103, 103, 126, 131, 108, 112, 104, 121, 109, 122, 105, 136, 113, 130, 103, 123, 117, 128, 112, 107, 123, 123, 114, 127, 110, 113, 120, 122, 108, 108, 136, 119, 110, 129, 117, 106, 132, 112, 159, 137, 107, 107, 109, 117, 62, 156, 110, 111, 120, 107, 140, 107, 114, 130, 119, 108, 110, 107, 91, 125, 114, 124, 118, 112, 132, 138, 116, 106, 110, 103, 107, 121, 115, 113, 102, 102, 114, 102, 106, 88, 134, 130, 125, 120, 117, 128, 107, 127, 128, 103, 121, 117, 115, 113, 131, 102, 125, 30, 125, 126, 122, 130, 105, 114, 116, 118, 123, 108, 104, 113, 132, 116, 128, 117, 114, 112, 92, 111, 120, 110, 123, 118, 117, 122, 108, 106, 128, 116, 109, 105, 122, 111, 119, 127, 122, 106, 108, 105, 125, 126, 107, 107, 126, 114, 123, 100, 124, 117, 111, 132, 121, 115, 112, 121, 106, 93, 116, 110, 137, 109, 112, 113, 72, 106, 115, 107, 121, 100, 116, 139, 109, 120, 123, 129, 112, 111, 130, 125, 115, 100, 115, 114, 88, 106, 123, 113, 107, 101, 127, 108, 125, 121, 108, 108, 117, 115, 116, 114, 119, 102, 134, 122, 107, 134, 124, 111, 128, 108, 111, 115, 125, 101, 106, 113, 110, 122, 122, 139, 138, 116, 117, 106, 102, 94, 105, 100, 121, 105, 116, 121, 134, 115, 110, 121, 112, 120, 118, 112, 94, 123, 103, 107, 119, 116, 105, 130, 117, 98, 112, 108, 123, 125, 114, 123, 115, 110, 108, 120, 119, 120, 112, 84, 180, 122, 133, 108, 123, 114, 131, 109, 143, 133, 3, 108, 101, 117, 107, 126, 124, 119, 113, 121, 120, 121, 105, 110, 99, 124, 139, 115, 117, 113, 113, 121, 114, 116, 112, 119, 81, 117, 113, 112, 114, 113, 133, 129, 113, 122, 117, 110, 113, 114, 118, 128, 113, 116, 116, 118, 110, 120, 123, 119, 114, 115, 118, 111, 116, 104, 111, 110, 121, 111, 115, 116, 136, 111, 136, 127, 116, 117, 117, 122, 112, 122, 106, 103, 118, 129, 122, 114, 119, 110, 122, 119, 111, 112, 114, 108, 117, 115, 107, 116, 120, 115, 129, 116, 120, 114, 113, 132, 125, 142, 113, 115, 121, 123, 113, 121, 118, 115, 111, 124, 113, 112, 152, 116, 120, 112, 114, 123, 114, 123, 116, 111, 118, 109, 117, 109, 119, 112, 115, 112, 118, 119, 121, 118, 115, 102, 121, 108, 115, 123, 143, 107, 102, 113, 118, 116, 134, 105, 110, 123, 120, 133, 123, 118, 123, 106, 120, 122, 122, 114, 126, 128, 112, 121, 120, 119, 120, 87, 118, 125, 130, 114, 112, 128, 105, 121, 109, 118, 122, 108, 112, 119, 117, 103, 120, 113, 115, 113, 124, 118, 130, 117, 106, 116, 111, 112, 112, 118, 119, 106, 121, 114, 129, 123, 114, 109, 111, 123, 89, 112, 105, 115, 121, 106, 122, 106, 122, 123, 118, 97, 109, 111, 124, 129, 115, 113, 104, 109, 119, 110, 118, 118, 119, 127, 138, 148, 103, 121, 119, 109, 123, 117, 120, 111, 112, 122, 111, 126, 120, 112, 115, 119, 118, 106, 117, 106, 121, 144, 113, 127, 112, 112, 113, 107, 109, 110, 106, 109, 128, 120, 130, 119, 127, 128, 111, 116, 120, 104, 105, 139, 114, 110, 116, 113, 105, 120, 112, 111, 119, 116, 107, 125, 110, 115, 109, 127, 109, 113, 112, 108, 121, 124, 105, 122, 111, 114, 119, 113, 114, 120, 117, 122, 115, 119, 113, 118, 107, 105, 124, 105, 116, 115, 112, 118, 110, 114, 111, 112, 115, 115, 99, 110, 114, 121, 110, 128, 95, 125, 115, 116, 142, 116, 123, 127, 107, 125, 115, 118, 112, 104, 115, 103, 116, 120, 124, 118, 119, 118, 109, 108, 104, 167, 118, 118, 119, 115, 105, 112, 122, 97, 117, 135, 111, 127, 115, 119, 110, 124, 109, 121, 117, 119, 116, 110, 120, 116, 124, 110, 118, 113, 100, 108, 110, 106, 119, 106, 117, 114, 118, 119, 126, 113, 113, 119, 110, 110, 115, 110, 131, 117, 103, 144, 146, 125, 107, 119, 109, 99, 121, 133, 114, 105, 112, 114, 99, 118, 102, 115, 107, 115, 117, 101, 108, 155, 120, 123, 117, 89, 117, 94, 127, 114, 113, 116, 116, 127, 107, 115, 118, 117, 121, 111, 107, 115, 111, 104, 129, 122, 130, 116, 121, 123, 114, 123, 116, 118, 115, 100, 108, 101, 103, 131, 111, 113, 122, 121, 109, 112, 117, 116, 109, 115, 101, 111, 126, 119, 111, 117, 119, 111, 114, 117, 124, 134, 118, 120, 123, 110, 119, 117, 113, 120, 114, 119, 117, 124, 121, 114, 114, 126, 120, 128, 111, 143, 114, 125, 112, 123, 100, 126, 124, 107, 110, 120, 132, 120, 119, 98, 112, 109, 121, 107, 114, 108, 111, 135, 107, 116, 129, 116, 110, 96, 125, 112, 115, 107, 115, 113, 110, 115, 104, 125, 92, 98, 134, 118, 130, 107, 122, 99, 114, 109, 119, 119, 108, 122, 109, 116, 110, 129, 113, 123, 121, 124, 105, 110, 128, 131, 133, 123, 105, 116, 121, 121, 109, 118, 105, 133, 118, 112, 129, 106, 117, 106, 118, 120, 114, 121, 121, 115, 132, 110, 116, 110, 111, 113, 112, 115, 118, 117, 112, 120, 115, 114, 105, 125, 120, 114, 125, 112, 111, 105, 95, 104, 106, 109, 112, 117, 108, 117, 115, 111, 105, 112, 114, 132, 128, 115, 123, 112, 108, 118, 117, 123, 124, 128, 114, 102, 121, 123, 114, 117, 115, 123, 119, 128, 105, 108, 100, 122, 115, 108, 101, 109, 118, 98, 109, 106, 125, 118, 118, 109, 114, 117, 123, 120, 107, 118, 125, 117, 120, 124, 120, 113, 124, 103, 100, 115, 116, 118, 104, 114, 117, 108, 118, 115, 129, 100, 117, 116, 104, 110, 102, 119, 115, 126, 115, 108, 127, 122, 107, 125, 102, 115, 103, 115, 121, 108, 118, 108, 128, 109, 107, 115, 115, 108, 126, 110, 118, 103, 128, 125, 113, 131, 107, 122, 118, 112, 102, 119, 112, 111, 122, 126, 109, 113, 113, 120, 129, 116, 112, 121, 114, 108, 108, 127, 110, 114, 101, 110, 113, 102, 111, 105, 112, 117, 111, 124, 109, 111, 111, 127, 104, 114, 123, 118, 111, 105, 112, 119, 104, 100, 123, 110, 121, 112, 112, 105, 120, 112, 117, 102, 114, 116, 114, 109, 116, 123, 120, 121, 116, 113, 121, 110, 126, 127, 105, 110, 117, 111, 115, 116, 127, 112, 105, 112, 123, 109, 121, 129, 127, 134, 114, 114, 119, 105, 122, 123, 100, 134, 105, 111, 116, 108, 138, 108, 103, 112, 117, 106, 109, 111, 114, 113, 104, 122, 128, 112, 120, 107, 105, 126, 107, 111, 117, 115, 112, 130, 111, 104, 111, 112, 110, 114, 132, 119, 113, 125, 107, 112, 97, 106, 110, 104, 111, 113, 128, 129, 111, 108, 116, 119, 126, 108, 116, 122, 129, 106, 117, 115, 114, 119, 126, 106, 112, 104, 125, 127, 116, 125, 111, 129, 122, 119, 96, 123, 110, 119, 117, 115, 132, 104, 112, 113, 107, 107, 114, 105, 104, 104, 117, 114, 127, 104, 113, 104, 122, 112, 106, 130, 119, 115, 112, 107, 117, 133, 122, 106, 99, 126, 112, 121, 116, 104, 115, 109, 125, 138, 112, 112, 107, 126, 114, 115, 120, 115, 106, 148, 108, 107, 108, 113, 113, 105, 119, 128, 104, 117, 130, 122, 118, 110, 128, 120, 115, 112, 107, 117, 115, 118, 121, 127, 121, 112, 91, 113, 115, 105, 126, 106, 106, 113, 103, 117, 132, 105, 107, 123, 119, 109, 122, 126, 114, 115, 118, 117, 108, 127, 114, 101, 121, 116, 132, 111, 105, 121, 121, 113, 111, 111, 123, 114, 123, 115, 121, 105, 105, 118, 109, 99, 119, 115, 94, 114, 110, 120, 100, 107, 124, 109, 111, 137, 108, 114, 126, 110, 104, 115, 107, 134, 119, 134, 119, 111, 116, 141, 122, 101, 107, 125, 118, 117, 118, 109, 129, 129, 103, 113, 115, 98, 110, 162, 123, 125, 117, 122, 121, 115, 112, 125, 123, 107, 115, 128, 100, 114, 125, 107, 113, 125, 109, 130, 105, 121, 115, 122, 112, 111, 114, 113, 115, 106, 107, 128, 114, 97, 113, 99, 104, 108, 149, 110, 110, 114, 138, 110, 113, 122, 130, 114, 111, 131, 112, 108, 103, 112, 115, 120, 106, 114, 128, 107, 103, 112, 121, 127, 111, 119, 125, 124, 125, 108, 118, 95, 110, 145, 104, 110, 118, 93, 115, 122, 114, 122, 113, 115, 115, 120, 114, 112, 98, 131, 156, 122, 109, 102, 117, 118, 112, 117, 119, 118, 133, 100, 122, 123, 133, 128, 111, 126, 118, 116, 101, 102, 111, 113, 125, 117, 111, 117, 115, 124, 112, 120, 111, 121, 111, 117, 107, 119, 120, 115, 121, 107, 118, 105, 91, 112, 108, 113, 127, 117, 102, 116, 113, 89, 100, 112, 110, 111, 118, 96, 119, 128, 122, 118, 114, 126, 118, 106, 128, 96, 115, 121, 118, 115, 115, 118, 116, 114, 110, 121, 127, 117, 108, 115, 114, 110, 125, 119, 101, 125, 114, 112, 130, 116, 113, 111, 122, 116, 112, 113, 131, 111, 114, 111, 120, 112, 115, 117, 119, 108, 123, 131, 116, 118, 114, 111, 118, 120, 117, 122, 122, 132, 121, 115, 126, 102, 102, 117, 118, 117, 122, 109, 117, 115, 118, 112, 105, 110, 119, 112, 117, 116, 109, 132, 110, 113, 117, 123, 115, 119, 121, 113, 111, 110, 126, 102, 126, 108, 120, 106, 110, 124, 114, 131, 111, 105, 116, 121, 103, 119, 109, 111, 107, 92, 102, 78, 112, 111, 105, 122, 108, 119, 122, 114, 119, 112, 123, 120, 112, 121, 110, 99, 102, 130, 121, 103, 110, 118, 118, 118, 120, 131, 103, 115, 119, 118, 123, 115, 116, 127, 104, 113, 124, 114, 95, 128, 100, 104, 117, 113, 114, 104, 108, 121, 103, 125, 74, 109, 97, 109, 118, 124, 108, 94, 104, 106, 104, 110, 123, 111, 118, 110, 120, 113, 133, 122, 111, 111, 124, 124, 124, 120, 108, 113, 127, 138, 108, 120, 112, 128, 120, 121, 107, 122, 107, 115, 122, 117, 113, 111, 117, 112, 123, 109, 107, 120, 115, 130, 124, 92, 137, 108, 110, 121, 110, 101, 124, 115, 118, 119, 126, 117, 109, 114, 105, 100, 111, 99, 126, 111, 104, 109, 126, 124, 125, 101, 118, 114, 112, 123, 104, 116, 107, 128, 118, 113, 128, 113, 105, 102, 121, 121, 99, 109, 121, 128, 111, 114, 113, 108, 113, 133, 109, 114, 100, 121, 103, 115, 132, 128, 99, 126, 113, 114, 121, 127, 132, 132, 126, 111, 114, 106, 113, 120, 117, 119, 119, 122, 107, 114, 140, 124, 102, 110, 118, 109, 111, 121, 111, 104, 119, 108, 107, 118, 112, 107, 112, 121, 118, 124, 109, 112, 123, 123, 126, 90, 113, 117, 126, 138, 123, 136, 134, 120, 127, 120, 103, 114, 117, 111, 138, 129, 106, 121, 113, 107, 114, 118, 131, 106, 107, 114, 107, 104, 100, 136, 132, 118, 106, 137, 108, 112, 107, 110, 105, 113, 79, 117, 113, 121, 105, 125, 114, 118, 111, 140, 94, 106, 117, 117, 118, 116, 123, 99, 118, 122, 131, 136, 120, 115, 115, 130, 96, 114, 91, 118, 111, 122, 126, 99, 98, 114, 110, 110, 116, 126, 114, 120, 125, 115, 114, 111, 126, 119, 114, 127, 143, 106, 119, 104, 108, 114, 117, 129, 122, 125, 119, 105, 141, 100, 123, 97, 102, 123, 117, 132, 120, 135, 135, 94, 123, 115, 131, 118, 115, 106, 119, 112, 114, 115, 105, 113, 128, 121, 114, 127, 112, 118, 115, 114, 133, 111, 135, 128, 127, 106, 147, 109, 104, 123, 106, 113, 127, 116, 107, 112, 95, 109, 110, 102, 128, 133, 109, 105, 114, 101, 116, 118, 98, 105, 108, 124, 110, 138, 121, 116, 98, 125, 111, 123, 130, 112, 125, 104, 127, 115, 97, 108, 124, 138, 126, 104, 109, 114, 114, 115, 110, 107, 106, 103, 116, 132, 110, 89, 110, 117, 114, 104, 116, 101, 116, 114, 112, 115, 116, 103, 112, 122, 99, 125, 110, 115, 121, 115, 111, 129, 104, 126, 121, 109, 115, 105, 124, 102, 116, 118, 125, 113, 122, 124, 114, 114, 107, 115, 100, 102, 122, 114, 111, 123, 121, 118, 117, 104, 121, 106, 111, 148, 108, 117, 116, 111, 117, 125, 130, 152, 147, 103, 123, 118, 109, 114, 119, 104, 104, 125, 123, 103, 121, 120, 109, 115, 116, 123, 101, 125, 98, 102, 104, 118, 112, 113, 99, 104, 131, 120, 118, 120, 112, 118, 119, 136, 114, 122, 121, 121, 115, 110, 104, 112, 118, 97, 119, 112, 126, 105, 93, 115, 104, 127, 107, 127, 108, 109, 113, 110, 128, 109, 117, 120, 163, 117, 98, 109, 91, 131, 130, 91, 126, 111, 122, 119, 107, 120, 102, 108, 117, 101, 128, 116, 120, 115, 111, 123, 122, 139, 120, 125, 120, 118, 124, 112, 113, 107, 125, 111, 109, 131, 137, 122, 102, 127, 122, 130, 127, 116, 114, 128, 94, 123, 115, 111, 117, 98, 112, 116, 129, 102, 89, 125, 123, 131, 141, 126, 112, 119, 129, 128, 123, 120, 136, 126, 109, 114, 116, 141, 108, 118, 118, 114, 119, 87, 116, 117, 112, 116, 121, 109, 115, 119, 122, 121, 106, 116, 139, 120, 131, 117, 133, 103, 103, 133, 122, 101, 116, 124, 127, 114, 121, 119, 85, 133, 107, 118, 142, 113, 109, 155, 120, 94, 119, 120, 112, 99, 99, 109, 118, 127, 112, 116, 130, 105, 112, 129, 116, 119, 107, 117, 102, 107, 114, 126, 136, 117, 128, 114, 106, 113, 119, 98, 104, 124, 110, 119, 107, 137, 122, 99, 124, 117, 118, 120, 118, 93, 110, 111, 130, 111, 95, 113, 125, 122, 101, 127, 111, 131, 106};
+ model->setOperandValue(op80, op80_init, sizeof(uint8_t) * 262144);
+ static int32_t op83_init[] = {-4628, -2934, 1194, -4381, -7082, 2581, -2454, -471, -2961, -6593, -7812, -3592, -7396, -2142, -1082, -625, -696, -4648, -5302, -1783, -5261, -1369, 2343, -2216, 426, -2891, -594, -476, 1138, 277, -3851, 548, -720, 2505, -5856, -595, -6603, 1293, -2881, -676, 1556, 624, 2128, 981, -4575, 3327, 2164, 3142, 354, -6065, -673, 3220, -9618, 7095, 4169, 4332, 2419, 1777, -2618, 6553, 6394, 2998, 4845, 769, -817, 3180, 1109, -1080, 2713, 1365, -3032, -3135, -1297, -1483, -1523, -841, 155, -1295, 972, 4761, 2553, -8008, -2033, 368, -14412, -6709, -2727, -3975, -1662, -3303, 1786, -3532, -3764, -1591, -2645, -3037, -5524, -1286, -8199, -8220, -5688, -7443, -5917, -899, 3561, 1799, -1877, 129, 248, 633, -2704, -4421, 2452, 2015, -1323, 5102, -3120, -42, -5990, 2163, 1832, -1115, -1634, -1324, -5337, 2440, -3066, -4100, -1675, -4275, -1555, -6653, -6817, -5934, 1841, -9346, -5108, -3929, -8298, -5621, -5565, -7759, -4927, -6129, -5658, -6660, -6747, -1909, -3746, -5484, -4428, 149, 2149, -6093, 3139, -2266, -364, -1559, -5926, -789, -1709, -2984, 901, 5180, 285, 689, 1407, -2742, -2092, 2991, -2354, 1410, 5182, 1087, 1137, 1963, -237, -4070, 1529, 5108, -1070, -630, -2106, 1742, -3862, 4631, 2674, -774, 2865, -2089, 2484, -3221, 1109, 2732, -2720, -1492, -13, -277, -1679, -4892, 744, -3213, -2327, 1325, 3471, 3833, -326, -1649, 1459, 1805, 5115, -4089, 4642, -1139, -375, 1255, 760, -4348, 3026, -1436, 3728, -2445, -4350, -2613, 7480, -4343, 1558, -1419, 1276, -6539, 1541, -2500, -828, 4065, 1681, 2120, -1594, 174, 4120, 3266, 5460, -2129, -4539, 103, -3697, -1739, 4185, -3470, -4220, -405, -3243, 1093, -1283, -1216, -3982, 183, -2578, 1444, 1412, -5310, -1748, -3865, -2207, -2921, 3103, 1148, 134, 326, -1563, -3368, 212, 2771, -2784, 1302, 4833, -2714, -1732, -161, -1573, -5530, -743, -748, 4240, -1342, -5356, -557, 3763, 0, 1804, -4147, -638, -1155, -4285, 232, -5059, 117, -85, -2531, -1693, -25, 1938, -5379, -760, -4641, -2126, -5250, 2623, -1039, -1343, -6315, -3250, 6247, -1335, 3844, 8668, 4997, 1579, -3666, -1888, -66, -1243, -1456, -10765, -9411, -6241, -2920, -6872, -6192, 1873, -1491, -2567, 1205, -1347, -5835, 1312, -3710, -2957, 3766, -3941, -4340, -2821, -3463, 962, -3650, -991, -3576, -4251, -1285, -3281, -2752, -1639, -2349, -6385, -7520, -2894, -3905, -8652, 1889, -1136, 684, -668, 487, 209, -1428, 3776, 4030, 33, -2997, 1669, -3163, 567, -1325, -2684, -1096, 3456, -2150, -3314, -3629, -149, 1375, -139, -3991, -183, 1288, -221, -5312, -2684, -965, -4344, -1873, -5710, -1367, 2062, -8691, -6561, -5459, -3561, -7031, -4874, -103, 2030, -3070, 2275, 1083, -5497, -7414, -875, 214, -998, -9100, 714, 662, -1542, 5503, 380, 3351, 2744, 3908, -3264, 5720, 11648, -2728, 4997, -4761, 4220, 6026, -62, -6441, 2359, 1593, -105, -1919, -534, -1455, 3262, 1643, 1533, 2747, -4187, 1812, -5331, 3473, 2109, -2289, -216, -2436, 7393, 4863, 163, 6070, 1800, -635, 245, -92, 3470, 3668, 5685, 1101, 3601, 820, 5039, 2243, 1235, 2374, 4984, 11643, -175, -3471, 562, 6748, -6998, 1575, -1606, -2922, 2210, -615, -239, -9301, 1507, 5768, 2501, 5403, 1765, 1585, -872, -2896, -441, -2565, 9615, 2026, 7678, -3265, 100, 1980, 1185, -2288, -834, -857, -3410, -2018, 1286, -759, 2900, 1294, -2892, 4258, 263, 5384, -749, 4332, 1843, -4352, 1829, -880, 1625, -1803, 7728, 783, -3608, -1169, 6987, -4352, -2128, 1544, 8367, -6268, -3862, 335, -2077, -3999, 7192, 4464, -2705, 257, 1538, 4067, -1275, -3142, -5383, 1376, 8806, -7403, 3991, 4207, -546, -942, -1073, -3538, -7994, -3799, 1262, -3924, 4095, -646, 1013, -792, 489, -1076, 5157, 1227, 542, -6553, -2320, -1655, 2036, -7147, -3887, -1888, 411, -431, 1168, -2954, -1473, 875, -4270, 2946, -742, -2362, -2453, -3769, 2362, 2081, -1418, 2864, 2993, 6031, 987, -5105, 5313, -175, 1052, -897, 3656, 101, 6243, -2955, -7454, 3244, 4479, -4730, 8389, 4786, -2210, -2546, -2636, -3527, 1338, 3897, -2014, 9878, 53, 7162, 1357, -5736, -1142, -1897, 2024, 5122, 4395, 2222, 265, 4302, -815, 1218, 4243, 2595, -4602, 3364, -1637, -3995, 3730, 2835, 3566, 3337, 7738, 110, 404, 1488, 1557, 2036, -5284, -2206, -900, -1125, 1520, 3653, -4431, 8567, -1824, 3462, 2695, 3036, -717, 2351, 3431, 2790, 3224, 1877, 192, 3264, 2206, 3505, -5151, 4243, 1824, 2988, 747, 1683, -1113, -7211, -2843, -2055, 1264, 40, 4565, -197, -2416, -2154, 9502, 6065, -280, 4539, 5038, 3120, 4896, -1543, -5570, 2686, -4039, -3007, -6612, -8415, -169, 7424, -2924, -3417, 2988, 6615, -3214, 1711, -2518, 5112, -4165, -956, 6409, 707, -1172, 2915, -3869, -866, -1753, 1310, 5660, 2729, 2062, 4785, -6511, 7187, -958, 4346, 3431, 3234, 2887, 8839, -1736, -5764, -1007, -3370, -7742, 4920, 1921, -2891, 7142, -1985, 3954, -5282, -186, 1036, 2830, 4441, -411, 359, 3677, -1326, 8244, 1162, 2649, 1072, -1234, 1258, 2506, 3138, 3671, 1695, 2645, 1418, -2893, 1453, -3968, -143, -23, 5791, 5162, 1999, 184, 4527, 2905, -4165, 3505, 687, 7384, 446, 2027, 4122, 1851, 2726, -1071, 288, 1770, -3483, -3478, -3251, -3578, 3312, 1885, 3437, 3908, 529, -2020, 2644, 634, -6579, 3714, 3184, 975, 5794, -2631, -1078, 4390, -1247, 6716, -5793, 332, -5787, -2474, 630, 3999, 28, -2157, 3522, 2511, -2710, -952, 1193, 1954, -4560, 5154, 409, -4706, 2393, -53, -7592, -2070, 1445, 7151, 6877, 6615, 2066, 884, 8126, -4531, 2274, 131, -4773, -4713, 5844, -3936, 7323, 10151, 7921, -691, 1488, 7411, 818, 1451, 4508, 10638, -1999, -2475, 3971, -193, 3565, 3371, 4528, -3569, -2711, 4687, -6700, -6017, 4296, 4158, -1190, 1108, -2640, 1533, -1879, 1047, -2490, -1554, 8773, -257, 1229, -4238, 2964, 14, -10224, -2028, 777, 1006, -3939, 6428, 4139, 1799, 2747, 2312, 636, 9735, -3070, -5282, 104, -914, -1612, -2058, 3302, 4238, 655, -469, 2834, -244, 6558, 1260, -4228, -1588, 4197, 7835, 9766, 7238, 3974, 5035, -5768, -1770, 3435, 7952, -515, 13, -5245, -1036, -199, -797, -576, 6356, 4743, 5163, 2549, 2080, -1068, -5, -5517, -2960, -616, 7591, 4146, 2780, 2665, -5790, 1727, -1257, 2844, 1848, -910, -185, -916, -3648, -833, 1329, -4269, 1616, -3497, 1107, 3807, 3039, 3702, 1039, 468, 2160, 3104, -71, -1102, 918, -997, -1922, 3350, 2401, -2955, -58, -429, 819, 4478, 3886, 631, 1391, 5752, 5937, 4683, 3843, 508, 10267, 4684, 11635, 5454, 5185, 2818, 2977, 2906, -2776, 3943, 361, -2178, 5216, 849, 1668, 4607, 590, -7587, -8202, -3721, -1972, -1450, -1112, 3620, 3713};
+ model->setOperandValue(op83, op83_init, sizeof(int32_t) * 1001);
+ static uint8_t op84_init[] = {65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 66, 65, 65, 65, 66, 66, 65, 65, 65, 66, 66, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 66, 65, 66, 65, 65, 65, 65, 65, 66, 66, 65, 65, 66, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 66, 65, 65, 65, 65, 66, 65, 65, 66, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 66, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 66, 66, 65, 65, 65, 66, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 66, 66, 65, 65, 66, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 66, 65, 66, 65, 65, 66, 65, 65, 66, 65, 65, 66, 66, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 66, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 66, 65, 65, 65, 66, 65, 65, 66, 65, 65, 65, 65, 66, 66, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 66, 65, 65, 65, 65, 66, 65, 66, 65, 65, 66, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 66, 65, 66, 65, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 66, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 66, 65, 66, 65, 65, 66, 65, 65, 66, 66, 65, 66, 65, 66, 65, 65, 65, 65, 65, 65, 66, 66, 65, 65, 65, 66, 65, 65, 65, 66, 66, 66, 65, 65, 65, 65, 66, 65, 65, 66, 65, 65, 66, 66, 65, 65, 65, 66, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 66, 66, 65, 65, 65, 66, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 66, 65, 65, 65, 66, 65, 65, 66, 65, 66, 66, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 66, 65, 66, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 66, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 66, 65, 65, 66, 65, 65, 66, 66, 66, 65, 66, 66, 65, 65, 65, 65, 65, 66, 65, 65, 65, 66, 65, 65, 66, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 66, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 66, 66, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 66, 65, 66, 65, 65, 66, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 66, 66, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 66, 66, 65, 65, 65, 65, 65, 66, 65, 66, 65, 65, 65, 65, 65, 65, 66, 66, 65, 65, 65, 66, 65, 65, 66, 65, 65, 65, 65, 65, 66, 65, 65, 66, 66, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 66, 65, 66, 66, 66, 65, 65, 65, 65, 65, 65, 66, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 66, 65, 66, 65, 66, 65, 66, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 66, 66, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 66, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 66, 66, 65, 66, 65, 66, 66, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 66, 65, 66, 65, 65, 65, 65, 66, 66, 65, 65, 66, 65, 65, 66, 65, 65, 65, 65, 65, 66, 66, 65, 65, 65, 66, 65, 66, 66, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 66, 65, 65, 65, 66, 65, 66, 65, 65, 65, 65, 65, 65, 65, 66, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 65, 66, 65, 65, 65, 65, 66, 65, 66, 65, 65, 65, 65, 65, 66, 65, 65, 65, 66, 65, 66, 65, 65, 65, 65, 65, 65, 65, 66, 65, 65, 65, 54, 62, 53, 66, 54, 50, 59, 72, 57, 50, 75, 65, 55, 72, 73, 57, 72, 61, 44, 69, 56, 64, 64, 58, 56, 52, 75, 70, 72, 50, 76, 65, 71, 71, 54, 62, 58, 88, 51, 56, 86, 54, 75, 114, 64, 74, 67, 72, 64, 67, 62, 55, 62, 89, 67, 57, 56, 78, 65, 75, 107, 101, 69, 75, 55, 71, 83, 71, 70, 85, 72, 66, 55, 74, 54, 68, 70, 58, 60, 78, 50, 58, 66, 90, 70, 63, 74, 100, 63, 57, 57, 67, 56, 57, 69, 64, 67, 98, 64, 62, 76, 48, 53, 57, 79, 78, 52, 50, 74, 56, 57, 63, 82, 67, 70, 67, 63, 84, 59, 66, 49, 64, 58, 53, 79, 57, 78, 60, 64, 50, 86, 60, 65, 65, 64, 55, 83, 62, 64, 82, 75, 64, 71, 67, 52, 78, 81, 60, 63, 63, 73, 52, 58, 46, 46, 64, 69, 45, 61, 83, 67, 57, 65, 66, 49, 56, 49, 54, 58, 62, 71, 49, 65, 61, 53, 63, 66, 80, 61, 54, 66, 58, 52, 53, 76, 57, 80, 68, 94, 67, 65, 51, 65, 64, 70, 69, 54, 77, 82, 37, 59, 75, 57, 51, 57, 51, 68, 54, 55, 70, 66, 57, 57, 61, 69, 64, 69, 65, 51, 65, 35, 51, 61, 60, 69, 90, 71, 65, 49, 47, 66, 71, 67, 68, 53, 59, 87, 59, 58, 79, 77, 80, 52, 49, 75, 78, 65, 66, 62, 82, 73, 57, 64, 69, 66, 77, 61, 77, 82, 44, 65, 56, 61, 49, 74, 87, 51, 78, 52, 62, 68, 75, 55, 74, 53, 54, 72, 65, 63, 64, 64, 63, 63, 58, 77, 68, 52, 61, 85, 53, 67, 67, 66, 52, 49, 58, 72, 65, 54, 51, 58, 77, 90, 79, 66, 62, 57, 101, 63, 61, 44, 56, 61, 55, 78, 51, 58, 63, 61, 65, 63, 47, 74, 55, 59, 72, 50, 68, 58, 74, 76, 73, 46, 64, 71, 63, 60, 69, 65, 84, 73, 75, 60, 125, 58, 58, 55, 59, 57, 64, 78, 52, 51, 66, 114, 76, 62, 59, 71, 66, 59, 48, 58, 56, 51, 97, 60, 47, 86, 69, 52, 63, 69, 48, 76, 73, 69, 58, 85, 70, 46, 63, 48, 68, 62, 72, 58, 78, 82, 77, 73, 92, 106, 55, 64, 54, 59, 53, 54, 64, 61, 70, 52, 57, 60, 46, 66, 61, 68, 63, 53, 56, 68, 50, 64, 73, 64, 59, 69, 78, 65, 67, 62, 60, 50, 67, 80, 70, 85, 61, 66, 60, 58, 59, 68, 75, 57, 56, 57, 58, 63, 66, 47, 76, 54, 68, 55, 54, 75, 69, 138, 85, 49, 51, 53, 85, 73, 73, 56, 54, 58, 73, 52, 58, 59, 55, 77, 84, 83, 52, 49, 65, 64, 57, 69, 59, 43, 64, 62, 65, 50, 59, 60, 60, 66, 59, 78, 47, 60, 55, 50, 70, 90, 55, 62, 60, 97, 49, 58, 72, 59, 64, 75, 74, 64, 63, 59, 66, 69, 64, 67, 70, 72, 60, 69, 138, 73, 63, 64, 62, 75, 59, 74, 94, 69, 84, 58, 61, 76, 65, 95, 60, 126, 61, 60, 76, 74, 79, 65, 65, 69, 70, 80, 59, 57, 65, 52, 88, 58, 55, 76, 79, 66, 49, 51, 66, 62, 80, 60, 77, 49, 96, 54, 56, 53, 52, 48, 80, 71, 55, 60, 86, 68, 73, 65, 65, 71, 79, 59, 69, 76, 86, 73, 98, 63, 45, 73, 106, 61, 63, 61, 84, 105, 80, 53, 50, 63, 103, 51, 92, 66, 50, 71, 66, 64, 65, 65, 59, 60, 72, 82, 64, 74, 65, 77, 105, 69, 60, 59, 79, 51, 72, 49, 75, 77, 58, 66, 60, 77, 63, 65, 68, 69, 58, 74, 55, 95, 83, 56, 67, 65, 68, 59, 53, 75, 65, 63, 60, 67, 68, 76, 68, 80, 56, 68, 45, 52, 64, 78, 66, 77, 75, 72, 106, 47, 78, 76, 77, 63, 60, 64, 75, 89, 123, 66, 68, 57, 71, 77, 60, 47, 76, 54, 60, 64, 65, 61, 100, 60, 72, 54, 49, 62, 80, 87, 62, 55, 51, 58, 57, 51, 77, 59, 65, 58, 60, 57, 93, 52, 69, 70, 64, 63, 63, 62, 87, 63, 75, 51, 60, 68, 59, 68, 60, 52, 67, 69, 75, 51, 65, 59, 68, 64, 51, 79, 85, 104, 50, 59, 62, 72, 71, 65, 95, 56, 62, 58, 74, 103, 64, 68, 59, 110, 67, 57, 57, 58, 55, 51, 75, 75, 54, 70, 54, 64, 66, 61, 59, 71, 65, 55, 61, 65, 57, 69, 70, 76, 60, 70, 44, 64, 62, 59, 46, 74, 83, 66, 65, 80, 54, 73, 90, 61, 59, 68, 66, 58, 54, 53, 53, 70, 64, 54, 74, 56, 72, 74, 57, 61, 69, 72, 49, 65, 57, 102, 61, 71, 68, 70, 67, 54, 42, 79, 59, 81, 58, 42, 73, 53, 63, 52, 58, 66, 51, 61, 85, 55, 95, 66, 63, 106, 61, 57, 63, 60, 64, 72, 53, 63, 47, 49, 70, 64, 63, 67, 67, 71, 60, 61, 72, 50, 67, 64, 56, 70, 125, 46, 64, 81, 76, 59, 53, 55, 59, 77, 74, 66, 52, 64, 44, 72, 61, 39, 91, 62, 93, 61, 55, 54, 52, 70, 75, 58, 78, 62, 62, 71, 71, 62, 53, 77, 47, 47, 59, 81, 82, 69, 73, 55, 65, 67, 67, 83, 63, 64, 58, 69, 54, 54, 73, 52, 67, 60, 68, 56, 63, 66, 76, 84, 62, 68, 71, 65, 55, 55, 61, 64, 78, 64, 76, 53, 63, 68, 67, 55, 92, 71, 68, 58, 49, 100, 63, 73, 65, 54, 83, 64, 98, 58, 71, 97, 53, 56, 50, 56, 63, 61, 74, 50, 65, 66, 84, 72, 58, 57, 75, 76, 78, 46, 81, 101, 63, 70, 82, 62, 50, 53, 84, 56, 77, 62, 63, 71, 64, 67, 73, 70, 67, 57, 64, 68, 74, 72, 47, 62, 48, 86, 61, 60, 61, 82, 56, 67, 66, 64, 69, 59, 61, 68, 57, 57, 72, 89, 71, 48, 66, 68, 58, 46, 102, 74, 74, 69, 67, 59, 58, 92, 53, 64, 65, 75, 68, 51, 99, 79, 52, 54, 70, 63, 72, 80, 60, 70, 60, 80, 72, 64, 57, 73, 66, 68, 62, 77, 56, 62, 68, 61, 76, 59, 58, 54, 82, 85, 73, 70, 55, 58, 75, 67, 50, 61, 55, 50, 70, 124, 63, 66, 73, 62, 112, 71, 69, 61, 56, 54, 57, 60, 70, 58, 56, 73, 60, 56, 69, 60, 59, 68, 73, 60, 62, 74, 75, 53, 62, 81, 64, 69, 65, 58, 85, 54, 99, 60, 60, 93, 69, 47, 68, 68, 58, 62, 75, 58, 55, 67, 57, 64, 46, 72, 69, 53, 56, 56, 91, 63, 59, 54, 64, 61, 71, 58, 67, 66, 74, 110, 57, 88, 67, 48, 61, 66, 71, 71, 63, 62, 76, 78, 60, 60, 50, 88, 83, 52, 64, 60, 106, 71, 61, 58, 66, 71, 47, 65, 68, 96, 48, 65, 66, 60, 58, 60, 88, 56, 62, 60, 59, 71, 64, 55, 59, 66, 53, 58, 54, 67, 49, 61, 69, 65, 43, 60, 52, 58, 60, 61, 68, 54, 63, 67, 35, 87, 67, 68, 69, 59, 62, 54, 65, 58, 72, 95, 63, 71, 59, 61, 64, 56, 77, 77, 57, 57, 54, 60, 64, 96, 53, 77, 76, 72, 64, 57, 60, 69, 72, 76, 54, 63, 70, 67, 57, 70, 59, 54, 80, 61, 105, 56, 58, 56, 50, 75, 91, 65, 60, 90, 69, 59, 65, 70, 92, 100, 74, 45, 53, 69, 62, 118, 60, 107, 69, 57, 75, 44, 48, 59, 66, 56, 60, 67, 74, 50, 75, 86, 59, 73, 83, 78, 62, 57, 75, 44, 50, 49, 46, 62, 65, 67, 73, 60, 60, 61, 76, 53, 49, 56, 62, 76, 53, 67, 50, 62, 84, 61, 75, 62, 66, 69, 66, 79, 57, 78, 60, 66, 53, 68, 74, 74, 67, 78, 75, 69, 65, 63, 83, 84, 92, 68, 58, 56, 66, 71, 60, 54, 60, 67, 62, 51, 89, 75, 69, 61, 73, 81, 53, 65, 62, 78, 60, 120, 71, 58, 55, 62, 73, 78, 40, 56, 76, 70, 79, 51, 41, 72, 63, 68, 57, 66, 74, 69, 72, 63, 65, 65, 65, 68, 66, 56, 64, 73, 55, 55, 105, 63, 54, 64, 123, 105, 88, 72, 61, 74, 66, 60, 58, 93, 62, 71, 63, 54, 60, 69, 86, 64, 66, 73, 49, 63, 58, 65, 70, 73, 56, 54, 66, 64, 56, 62, 84, 56, 77, 70, 60, 63, 71, 69, 60, 51, 62, 58, 85, 46, 57, 62, 82, 67, 83, 54, 51, 39, 59, 60, 78, 63, 55, 132, 102, 55, 70, 54, 74, 80, 71, 64, 50, 50, 71, 63, 66, 62, 58, 54, 65, 71, 62, 67, 57, 46, 57, 59, 51, 54, 57, 64, 60, 55, 55, 64, 64, 64, 62, 63, 69, 52, 64, 61, 86, 83, 68, 63, 66, 68, 73, 73, 64, 54, 77, 56, 81, 95, 82, 62, 54, 52, 73, 68, 58, 93, 66, 67, 102, 61, 53, 53, 58, 60, 50, 71, 88, 86, 46, 67, 53, 54, 54, 101, 66, 83, 58, 53, 47, 79, 63, 65, 77, 61, 56, 58, 54, 63, 55, 75, 94, 54, 98, 67, 66, 55, 55, 65, 52, 58, 87, 67, 70, 74, 103, 59, 76, 60, 54, 73, 69, 82, 65, 62, 78, 49, 58, 54, 56, 70, 73, 63, 75, 50, 59, 70, 67, 69, 57, 59, 143, 48, 56, 63, 68, 66, 62, 74, 63, 62, 76, 61, 75, 61, 82, 72, 55, 62, 59, 59, 55, 60, 94, 65, 91, 58, 85, 68, 75, 68, 60, 49, 61, 75, 57, 55, 70, 83, 70, 55, 68, 58, 75, 61, 80, 71, 60, 87, 74, 73, 157, 80, 57, 68, 77, 61, 73, 63, 48, 67, 69, 65, 85, 63, 85, 59, 69, 70, 77, 59, 50, 90, 58, 65, 70, 68, 83, 53, 93, 69, 68, 58, 59, 61, 63, 71, 62, 54, 42, 64, 49, 43, 48, 76, 70, 61, 55, 55, 63, 48, 80, 56, 43, 55, 61, 47, 48, 69, 60, 64, 61, 70, 51, 70, 68, 72, 63, 72, 64, 65, 63, 62, 84, 64, 54, 64, 77, 57, 89, 84, 68, 59, 58, 67, 55, 62, 61, 70, 102, 90, 65, 68, 61, 56, 55, 38, 74, 75, 57, 76, 54, 61, 79, 50, 59, 68, 87, 78, 57, 74, 54, 103, 76, 70, 66, 48, 63, 64, 49, 85, 57, 61, 86, 59, 58, 75, 53, 62, 50, 66, 61, 63, 58, 56, 65, 52, 71, 63, 55, 53, 68, 85, 54, 50, 49, 76, 59, 52, 56, 45, 58, 45, 55, 78, 111, 73, 53, 63, 64, 66, 105, 66, 60, 63, 59, 56, 44, 80, 61, 69, 58, 47, 54, 76, 50, 58, 50, 65, 69, 88, 68, 63, 79, 69, 56, 51, 69, 74, 63, 85, 60, 64, 102, 67, 63, 70, 53, 66, 75, 68, 76, 59, 70, 51, 65, 60, 56, 53, 59, 76, 64, 62, 72, 66, 63, 41, 48, 71, 51, 80, 69, 70, 77, 68, 91, 67, 60, 60, 76, 59, 59, 70, 54, 78, 69, 65, 58, 75, 56, 60, 43, 55, 80, 65, 44, 74, 62, 62, 61, 59, 62, 63, 65, 80, 58, 65, 71, 62, 68, 54, 99, 62, 52, 59, 75, 62, 87, 69, 57, 58, 80, 68, 60, 49, 58, 52, 80, 49, 62, 74, 61, 61, 64, 55, 54, 55, 52, 57, 81, 57, 82, 78, 59, 93, 44, 57, 70, 76, 61, 72, 56, 70, 74, 58, 61, 63, 69, 72, 101, 55, 48, 68, 57, 70, 74, 50, 58, 66, 69, 66, 70, 54, 81, 72, 86, 48, 63, 61, 60, 60, 71, 78, 63, 60, 50, 55, 74, 70, 60, 73, 61, 55, 73, 55, 48, 69, 52, 70, 61, 64, 56, 61, 101, 61, 54, 55, 72, 53, 64, 95, 59, 51, 68, 76, 78, 50, 49, 59, 69, 69, 55, 66, 57, 45, 63, 66, 60, 57, 54, 61, 73, 63, 81, 54, 55, 53, 81, 55, 44, 71, 57, 71, 65, 83, 41, 62, 59, 84, 79, 60, 50, 62, 64, 53, 68, 55, 56, 64, 77, 61, 55, 78, 49, 84, 75, 76, 62, 56, 77, 60, 64, 67, 75, 69, 62, 75, 58, 73, 47, 63, 56, 60, 58, 60, 64, 77, 95, 83, 65, 73, 63, 54, 52, 83, 57, 71, 64, 108, 91, 54, 80, 64, 73, 39, 65, 43, 65, 69, 72, 66, 57, 52, 64, 79, 45, 89, 70, 90, 59, 71, 72, 76, 57, 77, 75, 64, 92, 73, 60, 58, 49, 69, 55, 86, 82, 51, 114, 77, 85, 62, 74, 50, 94, 64, 58, 75, 46, 61, 62, 77, 62, 66, 68, 67, 69, 48, 79, 48, 82, 52, 60, 75, 63, 70, 61, 68, 63, 81, 60, 58, 50, 93, 73, 58, 66, 79, 69, 57, 99, 67, 53, 62, 64, 76, 60, 60, 47, 64, 59, 77, 60, 52, 56, 62, 73, 89, 88, 48, 81, 69, 63, 57, 67, 65, 74, 70, 75, 64, 73, 74, 51, 68, 50, 70, 76, 62, 80, 57, 77, 66, 54, 95, 55, 77, 61, 85, 62, 70, 65, 58, 40, 74, 57, 74, 69, 88, 63, 61, 66, 56, 51, 62, 60, 73, 89, 54, 63, 61, 61, 64, 65, 54, 56, 85, 49, 56, 76, 56, 78, 61, 48, 59, 74, 71, 68, 72, 62, 63, 74, 65, 74, 65, 102, 50, 53, 79, 49, 64, 70, 63, 62, 56, 61, 58, 54, 56, 89, 99, 93, 66, 71, 65, 47, 60, 54, 70, 47, 74, 61, 49, 61, 93, 46, 74, 52, 57, 64, 46, 114, 84, 75, 58, 79, 66, 73, 70, 110, 55, 60, 86, 61, 74, 50, 50, 50, 88, 59, 89, 71, 64, 54, 62, 58, 66, 64, 63, 58, 58, 65, 80, 56, 64, 69, 62, 71, 70, 73, 66, 67, 64, 53, 76, 75, 59, 62, 83, 83, 64, 61, 61, 82, 67, 107, 99, 61, 46, 46, 83, 61, 71, 58, 69, 81, 62, 71, 60, 67, 65, 49, 62, 47, 106, 65, 69, 58, 65, 62, 72, 56, 70, 71, 61, 74, 50, 61, 74, 70, 69, 96, 71, 74, 72, 80, 70, 60, 53, 58, 70, 73, 55, 52, 59, 101, 75, 77, 76, 42, 64, 62, 61, 63, 76, 47, 57, 48, 57, 66, 52, 73, 40, 65, 62, 67, 61, 63, 44, 46, 58, 66, 49, 65, 58, 57, 49, 65, 55, 77, 75, 57, 73, 58, 59, 59, 82, 94, 77, 41, 72, 70, 65, 93, 58, 61, 53, 61, 75, 56, 54, 52, 57, 52, 61, 53, 107, 53, 60, 66, 51, 54, 65, 79, 105, 54, 79, 67, 52, 56, 121, 36, 117, 63, 151, 75, 61, 79, 61, 64, 63, 60, 69, 69, 59, 62, 74, 92, 69, 47, 70, 59, 60, 52, 52, 63, 57, 66, 79, 69, 79, 55, 62, 69, 63, 57, 83, 70, 62, 62, 50, 46, 61, 64, 95, 66, 74, 56, 52, 73, 67, 53, 51, 55, 54, 58, 76, 71, 61, 62, 81, 47, 87, 77, 64, 70, 54, 75, 78, 64, 65, 66, 79, 46, 64, 45, 50, 93, 59, 59, 76, 69, 61, 63, 54, 127, 72, 59, 47, 69, 57, 61, 84, 48, 74, 56, 69, 69, 72, 47, 77, 69, 76, 105, 67, 54, 61, 71, 62, 78, 54, 53, 70, 57, 65, 51, 60, 87, 62, 78, 56, 44, 61, 49, 62, 75, 68, 54, 70, 73, 62, 47, 83, 61, 57, 63, 99, 88, 66, 64, 72, 62, 89, 63, 66, 81, 68, 49, 34, 79, 68, 55, 91, 80, 64, 54, 58, 66, 70, 52, 87, 50, 61, 66, 60, 125, 56, 64, 81, 71, 66, 59, 49, 66, 78, 55, 83, 54, 76, 65, 48, 43, 54, 56, 75, 79, 78, 87, 87, 53, 67, 63, 59, 87, 51, 71, 58, 57, 68, 72, 79, 70, 61, 63, 62, 56, 63, 65, 72, 72, 61, 63, 64, 62, 54, 75, 78, 79, 57, 68, 67, 70, 63, 108, 60, 60, 57, 75, 107, 59, 58, 84, 91, 49, 76, 97, 74, 76, 60, 46, 90, 68, 76, 43, 58, 95, 55, 62, 98, 74, 36, 60, 64, 63, 64, 59, 62, 56, 51, 79, 136, 62, 72, 61, 65, 66, 74, 146, 61, 48, 56, 77, 76, 70, 78, 56, 65, 63, 63, 68, 48, 66, 76, 56, 55, 69, 50, 77, 49, 81, 50, 72, 44, 68, 43, 76, 77, 81, 99, 49, 84, 63, 100, 62, 61, 70, 63, 70, 75, 75, 58, 77, 71, 53, 51, 72, 63, 49, 62, 79, 68, 98, 81, 70, 73, 77, 65, 58, 59, 47, 50, 74, 52, 63, 68, 63, 61, 60, 57, 77, 60, 76, 50, 90, 65, 58, 65, 53, 68, 62, 51, 58, 55, 64, 64, 56, 73, 54, 65, 58, 50, 61, 84, 46, 60, 63, 129, 69, 80, 72, 45, 75, 65, 65, 66, 83, 53, 65, 62, 57, 55, 58, 64, 63, 58, 44, 68, 57, 82, 63, 71, 53, 41, 50, 61, 80, 59, 51, 48, 65, 42, 47, 78, 71, 44, 56, 67, 90, 70, 55, 49, 80, 65, 69, 91, 59, 60, 69, 67, 44, 74, 69, 59, 58, 57, 58, 62, 83, 65, 56, 56, 54, 70, 73, 75, 57, 69, 64, 79, 83, 111, 51, 76, 53, 64, 54, 107, 76, 79, 56, 62, 48, 72, 74, 69, 48, 47, 55, 73, 63, 68, 62, 85, 77, 55, 59, 54, 47, 70, 64, 45, 75, 66, 44, 48, 50, 83, 78, 68, 67, 77, 60, 59, 62, 51, 75, 41, 93, 65, 49, 63, 60, 64, 89, 62, 51, 92, 70, 53, 71, 61, 59, 61, 40, 53, 67, 54, 78, 71, 61, 62, 56, 58, 56, 50, 75, 57, 54, 60, 73, 70, 53, 74, 69, 41, 70, 64, 59, 66, 68, 62, 63, 72, 63, 62, 51, 73, 52, 57, 81, 67, 50, 49, 51, 57, 62, 80, 57, 77, 85, 54, 49, 58, 74, 64, 52, 51, 56, 53, 86, 65, 56, 64, 80, 63, 75, 61, 37, 64, 97, 65, 76, 57, 71, 55, 62, 64, 58, 71, 64, 64, 60, 58, 54, 58, 72, 64, 62, 57, 56, 59, 68, 65, 60, 49, 80, 58, 66, 68, 62, 68, 68, 67, 64, 55, 54, 57, 51, 60, 50, 81, 66, 51, 59, 62, 67, 55, 65, 70, 58, 63, 71, 60, 54, 53, 69, 86, 78, 57, 63, 68, 59, 55, 65, 80, 85, 60, 62, 59, 96, 63, 48, 63, 50, 56, 64, 72, 64, 64, 37, 54, 60, 82, 70, 65, 56, 69, 66, 66, 47, 62, 60, 67, 68, 63, 47, 58, 55, 87, 63, 67, 63, 65, 80, 74, 87, 58, 65, 58, 72, 48, 83, 56, 58, 73, 68, 55, 64, 79, 52, 67, 58, 56, 92, 59, 66, 50, 49, 78, 74, 77, 71, 62, 49, 80, 58, 55, 73, 75, 65, 64, 55, 81, 64, 82, 57, 67, 56, 61, 76, 75, 78, 70, 67, 69, 58, 60, 78, 62, 61, 80, 70, 79, 68, 61, 82, 61, 66, 69, 74, 60, 91, 54, 64, 52, 65, 77, 71, 64, 78, 62, 77, 69, 94, 76, 77, 51, 60, 100, 62, 46, 75, 81, 58, 70, 68, 60, 69, 78, 65, 76, 58, 106, 55, 64, 62, 56, 65, 62, 64, 54, 69, 68, 77, 56, 66, 63, 67, 57, 66, 86, 61, 54, 78, 73, 69, 56, 57, 60, 65, 65, 46, 91, 57, 86, 71, 61, 58, 98, 66, 53, 73, 64, 58, 80, 69, 58, 89, 72, 42, 71, 43, 81, 66, 73, 69, 73, 78, 62, 93, 71, 68, 64, 68, 72, 110, 78, 61, 106, 61, 66, 51, 56, 57, 74, 95, 57, 60, 70, 88, 57, 67, 63, 78, 52, 75, 54, 60, 76, 54, 67, 67, 101, 65, 75, 45, 51, 64, 57, 73, 91, 83, 65, 60, 63, 48, 82, 71, 73, 67, 62, 89, 90, 68, 65, 107, 63, 65, 68, 69, 65, 69, 61, 57, 65, 65, 69, 81, 60, 78, 58, 82, 56, 60, 64, 69, 51, 58, 74, 88, 52, 64, 43, 61, 64, 64, 58, 71, 67, 67, 59, 67, 71, 78, 86, 57, 69, 99, 86, 72, 64, 73, 72, 52, 51, 67, 57, 55, 73, 59, 75, 61, 46, 74, 45, 57, 67, 54, 66, 73, 82, 65, 80, 65, 59, 49, 65, 72, 58, 53, 65, 65, 61, 71, 68, 43, 78, 66, 58, 67, 52, 61, 56, 45, 62, 64, 64, 66, 64, 62, 76, 57, 53, 59, 70, 55, 64, 60, 61, 54, 82, 110, 81, 72, 71, 60, 80, 56, 65, 57, 78, 53, 73, 66, 78, 62, 63, 57, 59, 62, 62, 62, 74, 46, 61, 66, 58, 77, 70, 44, 79, 68, 67, 89, 113, 92, 135, 54, 128, 62, 68, 79, 62, 61, 73, 74, 53, 53, 60, 63, 48, 62, 53, 70, 60, 57, 56, 53, 62, 50, 67, 51, 92, 51, 96, 79, 66, 68, 63, 64, 80, 72, 64, 63, 57, 61, 65, 53, 48, 78, 66, 50, 56, 66, 69, 64, 48, 76, 92, 70, 66, 51, 56, 81, 70, 53, 58, 64, 64, 107, 73, 59, 79, 71, 73, 69, 71, 61, 86, 59, 62, 60, 63, 69, 74, 57, 45, 59, 62, 130, 55, 56, 60, 49, 53, 59, 79, 54, 68, 79, 55, 49, 66, 65, 54, 56, 90, 99, 52, 61, 39, 54, 62, 64, 64, 71, 59, 80, 62, 73, 60, 88, 56, 61, 67, 52, 79, 69, 71, 57, 55, 78, 58, 55, 69, 63, 99, 81, 64, 64, 88, 78, 66, 63, 60, 73, 76, 54, 58, 78, 75, 67, 72, 89, 61, 60, 60, 57, 57, 60, 61, 87, 53, 54, 61, 50, 62, 51, 82, 133, 78, 51, 69, 65, 54, 59, 57, 70, 84, 68, 56, 71, 52, 73, 73, 83, 41, 57, 72, 84, 64, 46, 72, 63, 73, 58, 75, 58, 66, 62, 59, 50, 65, 59, 57, 65, 64, 60, 55, 56, 93, 70, 59, 81, 60, 76, 73, 72, 47, 102, 62, 88, 53, 52, 74, 67, 41, 115, 60, 73, 66, 99, 78, 65, 72, 66, 65, 55, 57, 52, 65, 68, 57, 58, 87, 62, 88, 65, 61, 69, 66, 50, 60, 65, 71, 78, 73, 69, 54, 67, 51, 57, 57, 93, 100, 66, 75, 70, 50, 64, 69, 139, 51, 65, 65, 48, 56, 68, 52, 73, 79, 67, 62, 54, 77, 61, 54, 74, 45, 65, 85, 84, 70, 67, 55, 64, 84, 68, 52, 56, 47, 58, 81, 81, 52, 60, 79, 79, 63, 78, 73, 76, 59, 114, 68, 61, 75, 64, 82, 75, 61, 59, 58, 60, 56, 86, 64, 70, 81, 58, 67, 51, 75, 57, 70, 55, 70, 55, 62, 85, 52, 57, 55, 82, 66, 41, 79, 76, 92, 43, 60, 59, 51, 63, 57, 45, 82, 70, 84, 51, 67, 61, 61, 64, 76, 69, 77, 72, 58, 67, 124, 55, 55, 55, 55, 91, 69, 67, 52, 58, 56, 69, 58, 76, 62, 73, 60, 60, 66, 55, 63, 89, 76, 43, 72, 65, 73, 70, 64, 55, 89, 69, 59, 30, 62, 49, 66, 74, 69, 53, 60, 50, 53, 67, 81, 66, 67, 62, 56, 70, 76, 61, 64, 82, 65, 80, 50, 69, 61, 61, 52, 88, 53, 63, 58, 66, 65, 74, 68, 52, 61, 66, 56, 78, 120, 60, 69, 57, 60, 47, 122, 61, 49, 58, 66, 61, 42, 71, 81, 68, 54, 51, 78, 71, 61, 56, 84, 69, 69, 67, 64, 70, 57, 68, 51, 51, 65, 59, 81, 73, 94, 92, 66, 65, 78, 66, 49, 56, 59, 61, 82, 68, 87, 44, 75, 67, 70, 51, 63, 73, 48, 61, 62, 90, 64, 66, 50, 74, 72, 55, 59, 75, 57, 58, 72, 56, 58, 64, 48, 66, 59, 55, 45, 42, 66, 84, 62, 53, 51, 58, 65, 63, 52, 73, 83, 60, 65, 64, 64, 57, 75, 68, 67, 66, 60, 92, 72, 60, 77, 47, 76, 65, 59, 80, 73, 78, 59, 58, 56, 62, 91, 62, 57, 69, 59, 66, 67, 59, 54, 47, 68, 69, 57, 64, 67, 55, 54, 62, 50, 69, 70, 65, 59, 81, 54, 55, 67, 52, 54, 56, 62, 79, 71, 62, 47, 67, 77, 53, 65, 58, 63, 56, 51, 65, 61, 70, 70, 53, 59, 76, 68, 71, 70, 58, 62, 66, 72, 85, 103, 64, 83, 54, 72, 70, 53, 66, 64, 54, 53, 65, 60, 64, 67, 70, 70, 66, 61, 66, 64, 71, 65, 55, 51, 71, 63, 64, 68, 52, 74, 47, 49, 73, 64, 83, 50, 54, 74, 67, 66, 54, 67, 61, 73, 67, 75, 42, 52, 66, 67, 69, 69, 57, 79, 68, 69, 48, 67, 62, 59, 69, 60, 71, 50, 60, 55, 60, 68, 70, 55, 59, 57, 50, 79, 68, 77, 64, 55, 99, 56, 66, 44, 71, 70, 75, 59, 67, 52, 75, 63, 62, 81, 58, 98, 60, 51, 65, 66, 55, 54, 51, 62, 71, 61, 51, 68, 86, 63, 58, 66, 57, 62, 72, 73, 71, 48, 78, 85, 55, 46, 53, 68, 56, 63, 62, 56, 63, 62, 66, 67, 58, 65, 60, 64, 88, 58, 115, 78, 54, 46, 65, 62, 56, 73, 67, 60, 65, 128, 46, 51, 63, 85, 58, 54, 67, 65, 67, 65, 50, 94, 72, 63, 49, 46, 56, 61, 59, 62, 52, 79, 69, 67, 52, 65, 62, 84, 131, 66, 73, 61, 74, 71, 69, 53, 65, 61, 67, 69, 60, 65, 81, 62, 69, 84, 51, 70, 64, 80, 72, 66, 94, 61, 58, 74, 64, 56, 78, 72, 88, 84, 51, 57, 48, 54, 83, 72, 40, 65, 58, 49, 80, 59, 60, 112, 62, 45, 60, 58, 65, 47, 57, 65, 53, 61, 66, 55, 54, 61, 85, 55, 60, 79, 56, 59, 59, 46, 57, 83, 59, 59, 84, 60, 52, 59, 59, 85, 76, 63, 82, 54, 49, 72, 64, 51, 45, 73, 66, 56, 85, 38, 89, 53, 63, 79, 69, 56, 64, 46, 55, 81, 54, 67, 87, 65, 40, 57, 70, 61, 56, 69, 78, 56, 72, 69, 83, 63, 48, 82, 71, 65, 82, 56, 66, 58, 76, 72, 71, 72, 82, 88, 60, 52, 81, 69, 81, 55, 53, 62, 58, 83, 62, 61, 64, 63, 66, 72, 62, 74, 89, 56, 61, 48, 65, 53, 72, 90, 64, 64, 47, 68, 59, 77, 66, 65, 72, 74, 72, 50, 72, 47, 36, 63, 61, 71, 66, 68, 60, 57, 91, 69, 98, 75, 59, 63, 61, 64, 66, 69, 64, 74, 68, 66, 61, 59, 54, 70, 102, 53, 65, 58, 77, 73, 69, 67, 69, 50, 52, 85, 63, 52, 66, 61, 59, 54, 96, 61, 67, 72, 65, 92, 85, 73, 70, 54, 60, 77, 68, 87, 63, 111, 63, 116, 61, 110, 65, 56, 63, 67, 57, 96, 53, 81, 50, 50, 36, 66, 33, 68, 70, 54, 70, 56, 76, 75, 83, 48, 56, 81, 46, 87, 59, 69, 74, 75, 61, 60, 57, 92, 57, 55, 50, 53, 75, 70, 57, 76, 55, 57, 66, 76, 52, 76, 59, 48, 82, 53, 68, 67, 69, 75, 39, 60, 52, 55, 94, 65, 63, 77, 57, 51, 61, 84, 61, 68, 60, 64, 81, 65, 89, 39, 60, 62, 69, 71, 154, 47, 69, 68, 59, 54, 71, 73, 62, 65, 63, 42, 52, 67, 48, 96, 80, 61, 49, 64, 56, 57, 58, 50, 93, 61, 68, 60, 94, 76, 74, 57, 41, 48, 55, 83, 59, 74, 60, 55, 62, 57, 59, 49, 87, 63, 61, 58, 59, 51, 101, 94, 62, 54, 61, 77, 72, 68, 68, 58, 74, 52, 54, 56, 76, 53, 64, 81, 42, 76, 61, 76, 50, 64, 68, 72, 63, 66, 87, 62, 114, 70, 63, 89, 69, 56, 66, 48, 63, 74, 75, 67, 53, 60, 62, 79, 83, 69, 56, 81, 46, 59, 60, 73, 78, 52, 95, 44, 70, 58, 60, 55, 44, 63, 54, 70, 91, 54, 82, 57, 59, 76, 59, 62, 65, 53, 53, 82, 52, 73, 96, 59, 67, 64, 44, 67, 63, 50, 105, 84, 69, 61, 78, 72, 59, 59, 57, 56, 65, 49, 68, 56, 67, 50, 49, 55, 69, 57, 132, 61, 61, 64, 89, 56, 63, 57, 69, 39, 87, 51, 65, 51, 65, 69, 57, 89, 64, 70, 62, 69, 79, 69, 138, 91, 80, 73, 97, 72, 72, 59, 64, 95, 91, 51, 55, 46, 83, 55, 53, 76, 60, 105, 64, 64, 48, 62, 66, 64, 64, 59, 73, 67, 82, 109, 74, 88, 56, 99, 60, 87, 66, 79, 74, 79, 77, 69, 68, 49, 67, 60, 88, 77, 74, 77, 72, 77, 59, 45, 58, 89, 74, 62, 68, 81, 70, 68, 60, 53, 62, 73, 61, 46, 60, 54, 75, 51, 65, 65, 62, 85, 57, 70, 57, 71, 66, 78, 55, 50, 79, 91, 70, 68, 58, 50, 60, 57, 76, 76, 48, 63, 51, 115, 62, 89, 76, 83, 69, 59, 91, 54, 52, 84, 42, 51, 106, 65, 76, 39, 69, 67, 60, 63, 63, 75, 54, 80, 66, 66, 57, 53, 81, 41, 76, 70, 72, 83, 71, 66, 71, 83, 76, 65, 48, 55, 54, 51, 76, 42, 65, 67, 89, 55, 76, 82, 66, 59, 68, 57, 83, 65, 84, 80, 48, 65, 58, 59, 70, 67, 59, 68, 65, 48, 54, 88, 59, 78, 49, 87, 64, 59, 54, 107, 67, 78, 57, 51, 61, 82, 57, 78, 74, 66, 61, 64, 57, 62, 60, 54, 49, 62, 66, 51, 61, 86, 66, 72, 54, 47, 46, 52, 65, 48, 98, 51, 52, 68, 67, 60, 57, 53, 93, 56, 42, 54, 50, 88, 69, 74, 65, 66, 65, 67, 53, 57, 89, 58, 72, 64, 94, 77, 52, 55, 56, 89, 56, 53, 67, 50, 59, 37, 65, 54, 52, 54, 65, 104, 56, 58, 51, 61, 52, 75, 43, 64, 104, 61, 55, 75, 60, 74, 56, 55, 84, 59, 76, 73, 86, 59, 63, 56, 67, 54, 62, 33, 87, 63, 73, 76, 64, 59, 67, 55, 54, 58, 64, 58, 65, 52, 62, 53, 61, 62, 66, 78, 61, 61, 58, 94, 61, 71, 67, 50, 61, 75, 67, 76, 49, 52, 74, 67, 86, 58, 81, 60, 66, 74, 106, 65, 83, 52, 44, 64, 61, 55, 75, 64, 63, 43, 59, 82, 64, 52, 51, 70, 57, 79, 72, 68, 52, 52, 68, 36, 113, 62, 58, 72, 71, 53, 76, 63, 68, 77, 81, 65, 55, 57, 52, 60, 83, 57, 72, 65, 74, 74, 66, 81, 90, 55, 49, 63, 54, 56, 73, 70, 67, 39, 51, 44, 68, 148, 57, 59, 51, 68, 69, 51, 77, 58, 92, 65, 69, 65, 57, 59, 50, 64, 97, 73, 51, 83, 69, 66, 55, 61, 78, 49, 66, 56, 62, 68, 68, 66, 68, 79, 71, 72, 53, 74, 104, 45, 72, 66, 82, 94, 105, 64, 71, 68, 61, 80, 69, 69, 78, 87, 63, 59, 61, 86, 65, 54, 73, 70, 59, 70, 72, 59, 61, 60, 62, 76, 57, 56, 71, 65, 80, 60, 51, 73, 60, 53, 102, 74, 60, 62, 62, 53, 56, 64, 60, 69, 53, 54, 58, 60, 82, 65, 87, 66, 93, 82, 59, 59, 76, 59, 96, 70, 56, 44, 69, 56, 79, 73, 72, 55, 81, 55, 91, 67, 40, 51, 57, 35, 60, 81, 62, 66, 46, 67, 52, 80, 51, 67, 67, 59, 82, 83, 41, 62, 63, 72, 55, 76, 71, 68, 45, 61, 63, 60, 68, 58, 74, 57, 63, 75, 60, 60, 93, 63, 66, 67, 66, 65, 69, 87, 62, 54, 72, 56, 75, 54, 64, 48, 53, 56, 105, 56, 56, 49, 74, 59, 41, 56, 86, 116, 69, 75, 62, 63, 62, 93, 56, 79, 68, 63, 85, 77, 67, 61, 93, 70, 56, 90, 62, 88, 78, 48, 64, 66, 51, 71, 64, 60, 69, 56, 63, 85, 66, 72, 76, 64, 90, 76, 74, 55, 56, 71, 32, 62, 64, 55, 86, 59, 59, 84, 67, 67, 55, 77, 57, 65, 59, 61, 60, 61, 68, 62, 70, 63, 46, 63, 67, 60, 65, 62, 71, 57, 75, 69, 60, 61, 82, 53, 88, 51, 54, 71, 64, 63, 51, 78, 47, 66, 68, 55, 44, 69, 59, 78, 51, 75, 83, 53, 76, 70, 50, 52, 46, 60, 90, 66, 53, 55, 74, 91, 84, 79, 74, 69, 68, 100, 81, 56, 60, 69, 131, 92, 50, 72, 93, 59, 78, 108, 62, 59, 68, 60, 51, 61, 72, 66, 58, 55, 60, 50, 50, 65, 61, 73, 74, 65, 66, 82, 50, 93, 65, 84, 98, 48, 55, 59, 60, 55, 64, 67, 97, 52, 79, 63, 46, 57, 55, 65, 56, 57, 73, 46, 58, 89, 66, 57, 72, 55, 88, 37, 47, 57, 60, 99, 74, 92, 99, 59, 54, 103, 70, 69, 73, 69, 95, 45, 50, 80, 48, 71, 88, 70, 86, 101, 84, 47, 64, 64, 61, 59, 71, 52, 76, 85, 77, 87, 64, 51, 58, 63, 62, 50, 72, 82, 58, 81, 78, 61, 62, 55, 63, 66, 52, 61, 50, 58, 69, 48, 74, 59, 71, 45, 43, 47, 64, 69, 80, 58, 65, 64, 83, 71, 37, 62, 62, 68, 89, 91, 64, 60, 64, 73, 55, 75, 67, 41, 52, 60, 50, 61, 123, 72, 51, 65, 56, 39, 48, 53, 68, 60, 62, 67, 66, 60, 60, 78, 67, 58, 48, 68, 64, 119, 73, 57, 69, 53, 123, 58, 90, 76, 47, 77, 88, 58, 62, 63, 86, 69, 56, 47, 77, 69, 62, 52, 47, 64, 73, 66, 56, 64, 49, 50, 56, 64, 50, 65, 79, 55, 75, 55, 67, 66, 57, 72, 48, 57, 93, 47, 58, 52, 64, 115, 74, 48, 69, 61, 52, 63, 83, 68, 82, 78, 58, 70, 24, 69, 46, 76, 63, 95, 51, 74, 58, 65, 67, 57, 76, 57, 55, 58, 57, 86, 70, 60, 58, 69, 52, 76, 62, 78, 52, 82, 70, 74, 57, 64, 55, 55, 70, 70, 53, 66, 65, 53, 56, 92, 63, 55, 56, 56, 99, 86, 77, 45, 80, 66, 65, 65, 90, 48, 61, 60, 47, 63, 68, 67, 73, 58, 79, 89, 57, 70, 75, 51, 89, 69, 79, 83, 79, 64, 57, 71, 57, 53, 60, 64, 65, 52, 71, 87, 80, 86, 55, 91, 82, 53, 74, 75, 70, 67, 67, 50, 140, 68, 77, 65, 50, 75, 75, 59, 48, 55, 60, 106, 86, 46, 58, 61, 50, 63, 63, 91, 48, 94, 56, 52, 61, 49, 72, 62, 54, 71, 66, 85, 61, 57, 56, 77, 55, 51, 97, 45, 79, 45, 69, 60, 64, 66, 69, 83, 63, 49, 67, 94, 69, 51, 80, 51, 53, 51, 83, 104, 48, 76, 60, 64, 54, 60, 60, 91, 57, 50, 52, 97, 53, 55, 65, 80, 62, 77, 72, 50, 54, 113, 56, 74, 62, 56, 80, 63, 67, 56, 54, 57, 54, 55, 64, 62, 80, 77, 46, 78, 68, 88, 58, 53, 95, 75, 65, 80, 75, 68, 62, 75, 78, 89, 57, 77, 61, 71, 75, 57, 49, 71, 71, 61, 75, 48, 68, 50, 62, 69, 63, 77, 59, 58, 52, 115, 71, 89, 61, 72, 77, 77, 69, 64, 34, 58, 58, 44, 61, 49, 70, 67, 56, 85, 82, 59, 73, 48, 85, 66, 84, 59, 56, 53, 65, 65, 61, 60, 65, 71, 85, 72, 73, 78, 52, 66, 67, 62, 62, 77, 71, 62, 60, 60, 49, 74, 56, 55, 63, 59, 62, 70, 61, 64, 60, 90, 64, 62, 62, 63, 90, 70, 51, 54, 51, 52, 74, 59, 61, 69, 71, 44, 52, 61, 86, 48, 56, 48, 65, 64, 61, 57, 73, 71, 56, 49, 77, 65, 60, 68, 65, 76, 62, 70, 70, 124, 93, 61, 41, 68, 71, 78, 70, 68, 53, 49, 81, 67, 60, 66, 62, 69, 75, 102, 91, 67, 68, 47, 64, 89, 67, 42, 67, 81, 66, 61, 71, 72, 71, 62, 69, 55, 60, 57, 47, 97, 77, 75, 49, 67, 53, 84, 63, 68, 68, 68, 56, 62, 65, 74, 54, 50, 54, 52, 52, 61, 59, 58, 62, 70, 88, 70, 71, 53, 71, 86, 69, 68, 71, 76, 62, 81, 75, 73, 53, 61, 58, 63, 61, 43, 66, 50, 77, 53, 97, 57, 66, 49, 68, 71, 80, 56, 76, 70, 83, 53, 85, 58, 64, 65, 70, 57, 65, 56, 41, 61, 59, 118, 51, 63, 81, 67, 51, 51, 76, 58, 57, 40, 56, 70, 69, 68, 74, 82, 59, 71, 61, 82, 89, 52, 69, 69, 66, 82, 51, 66, 66, 73, 54, 55, 83, 100, 64, 64, 69, 54, 85, 156, 60, 65, 45, 65, 57, 56, 68, 58, 87, 66, 66, 67, 63, 79, 45, 47, 82, 65, 59, 51, 80, 62, 62, 66, 71, 60, 90, 58, 60, 64, 59, 44, 120, 78, 62, 61, 49, 48, 88, 47, 69, 59, 46, 55, 98, 89, 72, 67, 61, 55, 55, 67, 70, 79, 55, 66, 62, 93, 75, 45, 61, 50, 55, 90, 56, 49, 43, 59, 77, 61, 52, 67, 85, 70, 67, 62, 63, 75, 73, 81, 94, 77, 49, 39, 44, 63, 75, 67, 75, 57, 53, 51, 59, 71, 57, 80, 78, 70, 61, 106, 62, 57, 59, 60, 52, 52, 59, 61, 85, 69, 77, 78, 53, 54, 75, 56, 93, 67, 53, 66, 57, 61, 66, 70, 61, 65, 62, 70, 70, 58, 55, 66, 57, 57, 62, 77, 48, 59, 62, 85, 58, 59, 79, 77, 45, 61, 67, 60, 60, 83, 51, 86, 83, 67, 56, 55, 46, 60, 72, 86, 62, 55, 54, 82, 76, 54, 75, 47, 78, 45, 57, 43, 75, 60, 130, 66, 52, 73, 69, 83, 63, 60, 75, 169, 46, 82, 52, 48, 70, 73, 74, 76, 65, 72, 81, 75, 48, 60, 62, 80, 78, 60, 61, 75, 57, 45, 67, 62, 62, 66, 64, 58, 60, 58, 50, 63, 48, 63, 72, 59, 46, 82, 59, 80, 44, 57, 54, 51, 81, 73, 55, 70, 56, 66, 76, 93, 55, 94, 60, 53, 69, 58, 66, 72, 49, 75, 75, 64, 52, 44, 53, 54, 61, 61, 58, 68, 64, 75, 60, 79, 74, 59, 65, 89, 67, 68, 48, 65, 61, 55, 64, 71, 95, 81, 62, 53, 57, 45, 57, 68, 52, 54, 63, 67, 80, 67, 76, 79, 92, 57, 49, 43, 80, 54, 77, 85, 75, 57, 55, 76, 48, 63, 48, 56, 102, 120, 63, 47, 80, 57, 59, 56, 54, 59, 59, 48, 47, 51, 59, 67, 65, 65, 82, 44, 56, 55, 74, 52, 63, 58, 56, 78, 65, 78, 54, 87, 63, 52, 58, 52, 52, 61, 63, 45, 56, 64, 67, 79, 57, 62, 51, 77, 45, 58, 68, 59, 65, 108, 38, 51, 89, 53, 68, 62, 66, 58, 56, 98, 81, 74, 86, 66, 71, 80, 66, 47, 61, 70, 81, 65, 82, 77, 42, 63, 64, 51, 60, 75, 60, 64, 74, 57, 57, 68, 81, 66, 64, 62, 70, 89, 69, 68, 58, 59, 59, 52, 72, 83, 64, 73, 77, 45, 52, 54, 52, 93, 62, 80, 62, 68, 73, 55, 50, 52, 68, 61, 64, 53, 67, 83, 79, 53, 49, 54, 75, 70, 71, 79, 66, 56, 67, 84, 89, 82, 53, 62, 47, 50, 71, 34, 66, 53, 60, 71, 161, 59, 67, 75, 47, 63, 51, 53, 92, 48, 64, 62, 61, 60, 77, 77, 56, 48, 75, 72, 55, 96, 80, 56, 83, 75, 86, 47, 90, 62, 66, 69, 56, 74, 51, 66, 48, 61, 57, 53, 67, 63, 55, 61, 73, 70, 66, 94, 83, 74, 62, 68, 69, 56, 70, 65, 66, 54, 77, 61, 74, 35, 73, 57, 48, 63, 57, 43, 67, 49, 64, 88, 100, 59, 72, 89, 70, 64, 69, 71, 84, 63, 58, 119, 51, 50, 58, 52, 63, 70, 60, 58, 56, 62, 83, 63, 68, 76, 62, 66, 56, 94, 54, 67, 55, 53, 45, 74, 51, 52, 60, 68, 55, 54, 61, 87, 54, 67, 53, 73, 56, 76, 65, 49, 62, 70, 75, 60, 52, 65, 69, 83, 79, 72, 45, 59, 80, 70, 104, 67, 74, 66, 67, 59, 78, 65, 79, 69, 48, 64, 63, 55, 52, 58, 51, 57, 86, 79, 104, 50, 69, 66, 70, 76, 51, 61, 77, 51, 65, 59, 67, 89, 60, 69, 79, 47, 57, 53, 52, 63, 72, 105, 112, 77, 88, 55, 56, 60, 65, 82, 53, 55, 67, 47, 47, 56, 47, 58, 72, 77, 63, 90, 68, 104, 57, 76, 60, 51, 82, 60, 66, 91, 78, 85, 61, 67, 58, 55, 51, 72, 106, 42, 72, 65, 66, 78, 74, 80, 64, 80, 68, 55, 60, 106, 73, 60, 86, 77, 70, 49, 86, 83, 61, 63, 50, 46, 58, 63, 55, 64, 87, 74, 57, 81, 55, 72, 66, 72, 67, 51, 62, 66, 46, 74, 48, 60, 56, 54, 62, 49, 54, 56, 59, 71, 54, 37, 62, 55, 54, 73, 57, 78, 67, 61, 72, 53, 89, 62, 79, 54, 59, 60, 52, 66, 52, 52, 48, 50, 72, 60, 80, 59, 61, 85, 60, 64, 95, 74, 60, 57, 57, 68, 59, 72, 58, 79, 75, 54, 50, 91, 52, 66, 57, 79, 39, 63, 62, 54, 49, 60, 47, 50, 83, 61, 57, 72, 88, 56, 70, 62, 60, 53, 60, 104, 57, 53, 93, 48, 63, 72, 77, 69, 57, 65, 65, 77, 72, 114, 95, 45, 73, 69, 96, 58, 67, 62, 61, 63, 74, 61, 84, 60, 56, 56, 81, 61, 72, 116, 59, 69, 79, 65, 62, 58, 40, 72, 54, 56, 68, 47, 62, 74, 53, 58, 61, 73, 88, 57, 53, 55, 63, 80, 62, 49, 57, 47, 58, 63, 81, 62, 68, 52, 61, 69, 94, 45, 44, 94, 130, 77, 68, 57, 58, 72, 57, 86, 47, 67, 85, 51, 76, 64, 57, 66, 80, 101, 98, 76, 72, 63, 88, 76, 100, 53, 63, 40, 55, 54, 53, 54, 76, 58, 73, 56, 84, 75, 54, 87, 53, 79, 60, 59, 51, 68, 73, 46, 79, 77, 85, 58, 55, 57, 56, 56, 78, 76, 51, 60, 68, 71, 61, 57, 73, 62, 39, 79, 76, 79, 50, 48, 90, 64, 93, 98, 90, 70, 53, 54, 46, 52, 58, 73, 69, 61, 67, 74, 55, 66, 72, 70, 81, 73, 64, 88, 48, 64, 59, 51, 59, 63, 66, 54, 65, 74, 79, 138, 82, 78, 75, 66, 67, 63, 63, 69, 65, 74, 60, 56, 57, 63, 57, 66, 60, 87, 67, 62, 74, 59, 57, 54, 63, 47, 61, 98, 65, 74, 67, 62, 63, 67, 34, 53, 82, 80, 93, 76, 79, 57, 59, 61, 41, 77, 114, 60, 63, 78, 74, 65, 60, 76, 44, 59, 48, 56, 51, 65, 55, 69, 47, 79, 61, 71, 60, 65, 58, 59, 73, 55, 73, 62, 61, 72, 63, 90, 67, 48, 50, 66, 65, 55, 78, 70, 81, 51, 54, 73, 74, 84, 69, 71, 66, 83, 70, 76, 77, 65, 59, 63, 38, 57, 71, 71, 61, 76, 48, 66, 47, 41, 73, 58, 69, 60, 52, 112, 53, 69, 65, 52, 72, 59, 45, 45, 64, 69, 50, 83, 80, 43, 59, 65, 67, 63, 59, 63, 62, 58, 58, 56, 73, 69, 80, 61, 100, 73, 65, 58, 70, 101, 82, 50, 79, 59, 66, 61, 67, 78, 60, 55, 56, 76, 59, 76, 60, 65, 70, 59, 71, 64, 76, 70, 51, 57, 61, 52, 74, 65, 56, 66, 65, 64, 64, 83, 58, 73, 71, 52, 62, 58, 81, 65, 56, 49, 65, 51, 107, 76, 64, 62, 78, 69, 68, 55, 58, 69, 61, 89, 127, 56, 52, 55, 79, 62, 57, 71, 56, 94, 53, 93, 50, 50, 93, 49, 78, 59, 50, 63, 70, 52, 67, 64, 77, 70, 57, 75, 76, 98, 59, 61, 61, 61, 71, 68, 46, 49, 65, 52, 47, 35, 47, 80, 48, 60, 57, 57, 75, 66, 61, 74, 79, 44, 70, 68, 55, 66, 61, 50, 73, 74, 94, 44, 65, 62, 51, 59, 63, 68, 45, 60, 62, 73, 76, 58, 71, 57, 62, 65, 97, 64, 59, 64, 66, 66, 120, 63, 71, 63, 59, 40, 83, 80, 59, 56, 73, 62, 68, 64, 64, 64, 75, 64, 61, 64, 50, 61, 70, 54, 65, 63, 71, 53, 92, 61, 55, 63, 78, 56, 51, 61, 68, 73, 56, 58, 66, 72, 98, 89, 65, 54, 57, 53, 72, 66, 63, 90, 74, 61, 62, 52, 69, 82, 75, 153, 64, 53, 51, 74, 61, 50, 56, 83, 73, 77, 84, 59, 76, 63, 85, 57, 66, 74, 51, 77, 83, 60, 87, 73, 56, 59, 51, 66, 66, 80, 60, 62, 68, 55, 56, 68, 53, 58, 84, 97, 97, 69, 67, 77, 94, 76, 82, 81, 57, 94, 55, 61, 67, 75, 60, 52, 73, 80, 77, 50, 54, 54, 47, 69, 69, 64, 69, 66, 62, 74, 98, 78, 77, 49, 54, 53, 62, 70, 109, 55, 68, 68, 61, 67, 52, 74, 68, 59, 67, 77, 95, 50, 76, 57, 64, 74, 54, 62, 60, 50, 68, 65, 52, 48, 72, 77, 55, 59, 64, 68, 53, 84, 58, 63, 57, 56, 54, 62, 60, 73, 46, 71, 65, 76, 67, 58, 56, 71, 53, 95, 92, 53, 53, 64, 43, 70, 61, 82, 62, 57, 53, 53, 71, 54, 60, 69, 66, 54, 74, 71, 61, 91, 69, 53, 63, 56, 51, 77, 83, 59, 47, 53, 80, 68, 56, 70, 58, 71, 92, 46, 81, 78, 70, 73, 47, 86, 108, 60, 54, 89, 47, 62, 55, 57, 53, 71, 60, 63, 59, 67, 65, 72, 60, 67, 65, 73, 48, 75, 61, 60, 76, 79, 60, 81, 64, 53, 59, 61, 79, 78, 57, 63, 47, 81, 64, 52, 69, 59, 62, 64, 52, 68, 58, 45, 66, 56, 59, 54, 63, 109, 65, 51, 58, 68, 60, 69, 56, 52, 83, 66, 50, 71, 51, 59, 68, 67, 62, 60, 48, 82, 58, 61, 51, 65, 57, 71, 71, 62, 85, 53, 61, 64, 62, 69, 66, 68, 75, 73, 66, 54, 83, 79, 69, 61, 79, 59, 90, 55, 105, 60, 59, 42, 61, 72, 78, 52, 67, 78, 89, 60, 84, 61, 50, 52, 56, 82, 68, 71, 80, 63, 69, 58, 67, 59, 76, 58, 53, 64, 94, 76, 52, 95, 61, 68, 69, 70, 56, 71, 83, 73, 55, 76, 62, 74, 64, 88, 84, 67, 55, 85, 49, 37, 111, 60, 57, 57, 81, 59, 66, 67, 79, 71, 63, 66, 54, 80, 75, 68, 95, 77, 118, 62, 62, 73, 76, 59, 62, 60, 82, 44, 65, 61, 61, 50, 75, 54, 60, 73, 75, 75, 66, 49, 57, 59, 75, 52, 55, 78, 63, 68, 63, 54, 56, 71, 67, 58, 79, 63, 66, 59, 53, 66, 70, 72, 59, 71, 69, 72, 55, 67, 58, 60, 63, 68, 80, 61, 56, 59, 78, 56, 68, 54, 48, 67, 72, 58, 52, 53, 65, 65, 71, 106, 43, 68, 51, 77, 78, 63, 100, 62, 59, 55, 80, 73, 62, 80, 55, 61, 59, 72, 80, 50, 63, 67, 100, 79, 48, 76, 46, 67, 80, 85, 75, 66, 62, 54, 119, 70, 65, 72, 62, 54, 74, 53, 77, 41, 63, 49, 84, 64, 59, 45, 53, 47, 66, 64, 75, 57, 57, 68, 66, 59, 64, 69, 44, 53, 77, 58, 64, 55, 69, 77, 81, 70, 57, 57, 53, 91, 61, 89, 47, 71, 55, 55, 76, 61, 53, 60, 56, 98, 61, 47, 63, 56, 67, 54, 80, 75, 61, 57, 79, 86, 87, 68, 84, 62, 49, 60, 65, 56, 55, 60, 70, 84, 72, 51, 73, 52, 76, 76, 70, 74, 69, 69, 64, 95, 78, 57, 58, 78, 77, 81, 78, 83, 67, 66, 62, 85, 67, 51, 92, 81, 81, 66, 52, 71, 58, 93, 54, 61, 67, 69, 62, 63, 86, 40, 62, 56, 79, 51, 94, 60, 66, 56, 93, 61, 67, 41, 66, 63, 67, 63, 82, 46, 73, 46, 95, 64, 72, 75, 63, 57, 88, 79, 82, 110, 80, 60, 77, 50, 62, 56, 64, 67, 49, 76, 93, 60, 59, 71, 52, 52, 60, 59, 78, 60, 46, 69, 76, 76, 56, 59, 102, 69, 75, 85, 92, 66, 68, 57, 76, 69, 72, 69, 58, 54, 59, 72, 52, 53, 93, 72, 74, 60, 55, 51, 48, 38, 75, 55, 48, 63, 56, 64, 60, 72, 94, 144, 88, 82, 71, 57, 77, 70, 38, 63, 64, 59, 77, 73, 57, 71, 65, 53, 45, 71, 49, 88, 66, 66, 62, 56, 62, 49, 64, 106, 73, 92, 70, 51, 55, 59, 63, 60, 90, 54, 108, 64, 63, 55, 51, 64, 58, 67, 89, 83, 60, 54, 63, 72, 80, 84, 66, 55, 61, 54, 62, 91, 73, 62, 75, 74, 84, 61, 66, 71, 45, 85, 59, 60, 68, 63, 60, 61, 73, 74, 89, 50, 72, 46, 48, 62, 74, 79, 77, 67, 72, 60, 84, 82, 64, 63, 63, 57, 85, 67, 55, 59, 76, 44, 63, 61, 55, 61, 59, 75, 64, 65, 60, 68, 72, 62, 72, 55, 54, 74, 65, 75, 63, 58, 64, 72, 67, 65, 63, 41, 56, 55, 69, 67, 63, 67, 62, 60, 56, 54, 60, 49, 59, 63, 61, 65, 84, 63, 54, 103, 55, 71, 90, 70, 58, 54, 101, 60, 47, 53, 61, 72, 60, 66, 55, 86, 63, 80, 52, 53, 47, 62, 61, 80, 73, 68, 54, 58, 64, 80, 60, 75, 59, 55, 69, 87, 69, 73, 82, 70, 73, 50, 69, 54, 48, 75, 59, 68, 73, 67, 67, 75, 73, 47, 64, 53, 66, 61, 50, 63, 64, 49, 112, 63, 78, 72, 52, 59, 78, 62, 75, 77, 52, 126, 67, 62, 68, 60, 71, 65, 57, 67, 64, 54, 76, 53, 51, 59, 60, 67, 88, 97, 58, 51, 72, 49, 59, 53, 50, 49, 68, 52, 67, 56, 56, 57, 58, 57, 75, 67, 60, 68, 68, 58, 84, 66, 58, 72, 58, 51, 59, 59, 65, 76, 71, 61, 65, 54, 64, 59, 48, 88, 64, 62, 64, 62, 92, 52, 68, 64, 64, 67, 71, 53, 60, 58, 66, 62, 106, 70, 88, 54, 47, 65, 72, 71, 63, 82, 63, 75, 54, 97, 69, 79, 63, 63, 71, 60, 52, 68, 56, 75, 55, 74, 80, 57, 75, 70, 75, 72, 48, 58, 59, 54, 69, 81, 59, 70, 62, 72, 118, 85, 65, 58, 60, 37, 60, 63, 63, 57, 62, 73, 66, 58, 66, 53, 39, 148, 53, 59, 65, 74, 43, 87, 84, 81, 82, 54, 59, 59, 69, 69, 58, 61, 67, 54, 44, 55, 82, 84, 83, 72, 61, 71, 69, 50, 58, 83, 54, 70, 71, 60, 57, 65, 65, 66, 71, 86, 78, 54, 73, 38, 108, 60, 89, 80, 67, 58, 60, 56, 44, 70, 84, 72, 63, 69, 75, 63, 68, 63, 60, 70, 60, 65, 60, 62, 90, 62, 86, 62, 96, 56, 68, 75, 69, 78, 111, 88, 61, 63, 65, 52, 70, 96, 71, 46, 64, 60, 69, 69, 65, 63, 85, 58, 68, 74, 52, 68, 69, 60, 79, 47, 72, 44, 61, 55, 74, 66, 55, 71, 73, 49, 46, 55, 48, 61, 38, 68, 55, 58, 69, 74, 72, 55, 74, 51, 64, 79, 78, 48, 64, 65, 57, 79, 67, 56, 71, 56, 42, 69, 73, 53, 56, 70, 51, 54, 84, 47, 51, 90, 63, 58, 67, 65, 84, 72, 78, 70, 59, 59, 51, 78, 58, 81, 47, 70, 84, 88, 66, 66, 54, 74, 64, 83, 136, 98, 45, 78, 52, 76, 72, 64, 46, 62, 71, 76, 68, 58, 62, 71, 54, 59, 63, 94, 51, 60, 72, 68, 74, 63, 61, 87, 67, 59, 88, 63, 65, 79, 70, 60, 60, 80, 53, 44, 84, 65, 76, 61, 48, 53, 66, 67, 65, 56, 78, 63, 49, 99, 64, 62, 89, 75, 77, 66, 60, 53, 89, 76, 67, 56, 72, 67, 83, 38, 61, 61, 83, 80, 62, 81, 62, 71, 101, 64, 82, 72, 66, 71, 49, 91, 51, 79, 58, 77, 78, 80, 78, 70, 70, 62, 52, 76, 66, 55, 66, 49, 106, 71, 72, 57, 47, 58, 79, 61, 77, 72, 101, 63, 85, 83, 59, 58, 50, 58, 67, 64, 76, 64, 60, 85, 80, 62, 71, 69, 56, 67, 87, 53, 63, 100, 65, 71, 62, 83, 60, 67, 51, 57, 55, 61, 52, 63, 58, 62, 82, 66, 74, 70, 57, 63, 92, 54, 69, 68, 60, 62, 61, 56, 93, 58, 59, 60, 58, 86, 63, 55, 84, 56, 89, 50, 75, 70, 75, 77, 61, 69, 89, 77, 61, 59, 57, 64, 83, 54, 79, 73, 83, 48, 76, 47, 63, 43, 66, 65, 69, 59, 58, 59, 59, 56, 74, 80, 66, 55, 81, 58, 68, 65, 57, 58, 88, 37, 76, 59, 55, 76, 68, 88, 53, 68, 79, 68, 57, 71, 63, 57, 73, 72, 58, 61, 74, 63, 59, 67, 50, 58, 70, 56, 63, 110, 74, 56, 59, 60, 74, 55, 91, 60, 56, 59, 86, 79, 59, 88, 52, 68, 58, 56, 84, 57, 72, 52, 112, 59, 64, 61, 60, 74, 70, 77, 75, 66, 73, 62, 113, 71, 62, 54, 78, 47, 57, 47, 79, 56, 88, 50, 83, 39, 83, 58, 46, 49, 62, 51, 80, 77, 50, 79, 59, 61, 68, 72, 66, 56, 98, 73, 58, 60, 63, 79, 58, 63, 51, 83, 69, 79, 69, 55, 53, 46, 61, 54, 63, 83, 67, 74, 66, 98, 72, 66, 49, 48, 74, 56, 59, 63, 56, 84, 65, 75, 70, 65, 81, 44, 56, 58, 71, 57, 59, 65, 54, 68, 67, 50, 62, 57, 74, 48, 83, 47, 54, 62, 64, 74, 81, 51, 67, 66, 79, 68, 72, 56, 47, 74, 75, 92, 82, 77, 55, 47, 57, 61, 52, 67, 61, 85, 49, 43, 57, 70, 60, 40, 82, 66, 54, 42, 79, 71, 100, 63, 63, 69, 81, 81, 53, 61, 68, 48, 64, 62, 90, 52, 62, 67, 69, 64, 61, 80, 76, 58, 92, 43, 73, 83, 72, 84, 64, 67, 46, 57, 85, 57, 66, 70, 89, 82, 64, 76, 79, 89, 59, 60, 53, 76, 58, 48, 54, 65, 81, 46, 53, 56, 148, 58, 59, 55, 61, 57, 65, 60, 58, 64, 73, 68, 69, 82, 73, 60, 53, 70, 87, 64, 69, 64, 54, 68, 54, 49, 64, 54, 46, 68, 59, 62, 63, 88, 56, 64, 58, 67, 53, 70, 49, 55, 58, 63, 51, 69, 59, 62, 85, 66, 57, 60, 92, 89, 58, 75, 84, 55, 47, 50, 52, 64, 69, 75, 80, 73, 60, 64, 72, 61, 65, 77, 102, 64, 51, 71, 69, 70, 68, 67, 70, 82, 62, 71, 62, 61, 61, 61, 77, 65, 59, 64, 62, 57, 59, 64, 54, 67, 60, 77, 70, 55, 50, 60, 62, 81, 62, 66, 65, 57, 62, 71, 57, 53, 64, 49, 49, 63, 84, 57, 71, 53, 54, 77, 60, 102, 54, 40, 59, 62, 68, 67, 66, 58, 66, 59, 58, 65, 54, 74, 59, 55, 56, 50, 64, 59, 80, 52, 56, 54, 68, 89, 57, 95, 71, 59, 58, 80, 58, 56, 79, 81, 64, 68, 77, 71, 83, 61, 59, 59, 107, 67, 96, 71, 70, 74, 70, 60, 80, 83, 61, 96, 84, 70, 53, 96, 72, 63, 72, 58, 58, 62, 64, 53, 77, 67, 61, 42, 60, 107, 56, 89, 79, 54, 55, 54, 64, 84, 60, 70, 77, 88, 49, 55, 73, 52, 46, 75, 76, 95, 72, 57, 64, 51, 63, 57, 52, 64, 74, 54, 65, 52, 116, 67, 57, 62, 60, 60, 69, 61, 59, 50, 69, 77, 57, 69, 74, 40, 63, 71, 56, 66, 69, 62, 72, 102, 93, 54, 58, 50, 65, 83, 54, 102, 66, 76, 76, 71, 58, 67, 57, 49, 73, 98, 58, 63, 62, 62, 63, 71, 71, 58, 63, 88, 61, 70, 63, 61, 60, 59, 83, 56, 58, 61, 84, 77, 43, 56, 63, 91, 67, 59, 54, 60, 60, 60, 76, 51, 76, 56, 108, 65, 66, 72, 55, 55, 55, 58, 59, 52, 65, 68, 60, 60, 67, 96, 56, 60, 71, 51, 78, 100, 41, 66, 68, 68, 67, 64, 69, 64, 72, 64, 50, 64, 101, 68, 57, 50, 83, 62, 63, 62, 71, 84, 74, 69, 62, 97, 69, 54, 95, 62, 50, 55, 44, 54, 58, 47, 64, 68, 64, 57, 69, 60, 77, 55, 60, 96, 59, 90, 66, 61, 55, 85, 59, 66, 63, 60, 73, 72, 62, 60, 58, 55, 52, 49, 42, 59, 52, 51, 57, 66, 53, 50, 91, 76, 33, 62, 60, 58, 120, 66, 78, 73, 65, 76, 68, 57, 98, 80, 71, 58, 61, 69, 62, 78, 58, 78, 79, 76, 99, 88, 54, 84, 73, 73, 52, 71, 55, 75, 71, 60, 42, 44, 61, 73, 74, 59, 70, 59, 59, 54, 64, 53, 55, 63, 74, 70, 54, 99, 51, 63, 46, 57, 64, 55, 66, 84, 97, 56, 59, 43, 56, 52, 57, 58, 65, 92, 38, 73, 74, 61, 76, 56, 49, 83, 76, 73, 66, 40, 81, 93, 61, 64, 91, 102, 78, 97, 82, 73, 58, 48, 70, 60, 105, 47, 53, 64, 79, 85, 72, 72, 91, 69, 69, 67, 59, 65, 59, 71, 75, 51, 65, 50, 56, 59, 78, 69, 56, 64, 54, 68, 87, 58, 67, 65, 60, 61, 66, 64, 100, 51, 55, 76, 67, 60, 73, 85, 46, 59, 59, 95, 78, 105, 55, 60, 61, 70, 87, 105, 79, 62, 59, 66, 44, 67, 115, 76, 54, 60, 72, 79, 73, 74, 61, 69, 68, 49, 72, 59, 62, 53, 62, 60, 59, 56, 66, 44, 60, 68, 65, 58, 55, 57, 39, 85, 75, 62, 71, 50, 61, 64, 62, 69, 69, 60, 56, 70, 59, 97, 49, 62, 66, 67, 52, 102, 67, 60, 44, 91, 76, 43, 63, 63, 77, 54, 45, 74, 62, 89, 63, 64, 85, 75, 46, 59, 54, 72, 63, 67, 81, 102, 78, 61, 98, 72, 64, 46, 72, 65, 60, 60, 51, 71, 57, 60, 60, 53, 70, 46, 62, 111, 49, 69, 73, 61, 58, 61, 53, 65, 61, 100, 60, 69, 109, 90, 71, 88, 40, 59, 49, 75, 52, 62, 59, 63, 69, 73, 71, 65, 61, 65, 57, 56, 64, 94, 63, 64, 56, 93, 73, 48, 63, 59, 69, 85, 58, 61, 69, 54, 67, 61, 48, 55, 67, 60, 85, 65, 49, 61, 63, 67, 66, 65, 79, 54, 62, 69, 54, 58, 71, 54, 51, 57, 57, 65, 79, 54, 77, 84, 61, 64, 81, 67, 68, 58, 89, 81, 45, 60, 58, 66, 92, 47, 81, 60, 67, 92, 73, 66, 73, 51, 72, 75, 39, 63, 69, 55, 75, 54, 61, 80, 72, 92, 75, 53, 82, 55, 58, 40, 61, 56, 89, 34, 60, 57, 47, 79, 63, 69, 72, 62, 82, 60, 59, 76, 62, 97, 59, 76, 59, 71, 63, 64, 75, 73, 67, 54, 55, 45, 88, 52, 45, 50, 62, 72, 74, 71, 68, 69, 50, 43, 59, 78, 100, 99, 86, 64, 54, 81, 68, 106, 58, 65, 68, 65, 55, 58, 52, 69, 55, 74, 64, 61, 61, 58, 58, 68, 49, 76, 91, 65, 70, 61, 56, 56, 50, 61, 50, 59, 52, 52, 55, 46, 67, 62, 70, 76, 57, 68, 92, 54, 63, 67, 63, 62, 62, 58, 64, 49, 60, 62, 53, 79, 55, 61, 55, 80, 58, 65, 75, 103, 85, 51, 58, 52, 108, 64, 55, 77, 78, 63, 101, 86, 74, 64, 78, 58, 49, 59, 79, 89, 58, 58, 49, 57, 57, 51, 54, 55, 67, 60, 82, 50, 52, 51, 77, 69, 65, 69, 76, 65, 51, 60, 70, 48, 59, 57, 64, 77, 53, 54, 84, 82, 53, 72, 82, 72, 50, 68, 61, 66, 56, 63, 63, 42, 56, 115, 60, 71, 46, 69, 73, 62, 70, 68, 69, 54, 57, 58, 74, 78, 61, 51, 71, 63, 46, 52, 68, 52, 101, 80, 74, 64, 69, 60, 56, 92, 69, 57, 53, 50, 44, 57, 49, 68, 55, 49, 84, 56, 78, 68, 103, 50, 59, 95, 65, 92, 67, 72, 86, 80, 89, 58, 61, 47, 67, 59, 56, 61, 70, 59, 56, 79, 62, 47, 52, 79, 76, 53, 66, 96, 73, 61, 61, 66, 60, 59, 75, 59, 55, 63, 70, 62, 62, 67, 91, 56, 56, 61, 57, 61, 73, 55, 70, 65, 40, 68, 73, 60, 70, 59, 81, 68, 67, 62, 69, 66, 60, 59, 70, 69, 51, 66, 68, 63, 56, 58, 65, 55, 79, 55, 57, 57, 58, 74, 77, 61, 61, 57, 57, 49, 60, 62, 63, 66, 46, 82, 73, 62, 45, 68, 65, 65, 74, 62, 54, 59, 61, 108, 66, 113, 70, 58, 61, 69, 64, 65, 87, 72, 65, 64, 61, 55, 65, 61, 88, 92, 62, 69, 69, 63, 72, 66, 80, 57, 70, 54, 97, 59, 72, 69, 74, 57, 47, 54, 67, 76, 60, 55, 57, 59, 56, 52, 91, 60, 59, 70, 71, 61, 51, 64, 66, 52, 51, 91, 61, 112, 62, 88, 53, 61, 59, 54, 62, 72, 56, 82, 72, 52, 51, 83, 47, 58, 52, 70, 61, 45, 122, 60, 61, 63, 65, 71, 70, 58, 69, 57, 70, 60, 53, 67, 48, 61, 60, 78, 71, 73, 74, 57, 58, 58, 79, 54, 61, 79, 84, 51, 68, 88, 67, 69, 48, 59, 81, 63, 60, 52, 61, 128, 70, 56, 63, 61, 65, 117, 64, 63, 67, 95, 98, 78, 59, 60, 58, 69, 79, 55, 59, 51, 46, 56, 62, 69, 122, 58, 44, 52, 62, 55, 62, 60, 71, 67, 54, 62, 56, 100, 80, 64, 64, 85, 61, 57, 66, 65, 88, 64, 60, 49, 57, 55, 71, 82, 63, 46, 73, 62, 49, 68, 61, 60, 66, 65, 57, 61, 50, 43, 67, 59, 63, 53, 65, 76, 65, 64, 70, 44, 85, 51, 58, 60, 60, 96, 68, 46, 74, 57, 73, 59, 61, 48, 61, 79, 64, 73, 64, 68, 72, 71, 68, 60, 52, 63, 64, 62, 64, 65, 73, 49, 46, 67, 81, 56, 66, 56, 95, 65, 54, 52, 95, 51, 65, 79, 72, 60, 64, 102, 59, 65, 72, 70, 61, 71, 56, 68, 79, 65, 58, 109, 57, 120, 82, 58, 54, 69, 54, 66, 59, 69, 68, 61, 51, 47, 74, 83, 51, 82, 50, 60, 61, 72, 76, 67, 65, 52, 59, 59, 65, 44, 48, 52, 70, 68, 60, 74, 55, 57, 98, 65, 60, 75, 89, 65, 60, 53, 58, 87, 76, 73, 50, 83, 57, 55, 61, 87, 70, 63, 54, 62, 76, 68, 90, 63, 72, 102, 58, 60, 118, 58, 58, 45, 48, 56, 84, 62, 60, 69, 54, 59, 62, 69, 71, 60, 79, 76, 59, 50, 75, 63, 66, 50, 63, 104, 51, 81, 74, 87, 69, 60, 66, 70, 59, 58, 102, 62, 110, 74, 65, 55, 57, 86, 70, 78, 62, 61, 53, 62, 60, 63, 63, 61, 102, 131, 66, 54, 55, 76, 53, 47, 68, 62, 47, 81, 73, 63, 59, 64, 55, 70, 58, 59, 58, 81, 84, 60, 61, 70, 65, 50, 81, 59, 61, 65, 72, 70, 54, 89, 72, 56, 69, 53, 81, 43, 66, 43, 65, 55, 60, 72, 61, 60, 53, 60, 57, 73, 69, 67, 68, 68, 76, 57, 59, 64, 62, 70, 56, 57, 77, 38, 79, 42, 89, 64, 58, 62, 56, 62, 56, 57, 58, 49, 69, 82, 55, 73, 77, 60, 61, 55, 70, 66, 57, 64, 70, 63, 55, 76, 63, 67, 130, 68, 99, 84, 55, 69, 52, 66, 50, 66, 74, 86, 70, 49, 48, 65, 90, 54, 73, 75, 64, 71, 83, 55, 63, 80, 79, 61, 79, 58, 62, 56, 58, 57, 80, 62, 64, 51, 55, 63, 64, 43, 79, 65, 65, 51, 59, 63, 73, 57, 64, 52, 72, 46, 53, 50, 57, 58, 71, 72, 74, 61, 61, 91, 57, 56, 67, 81, 65, 54, 82, 61, 49, 53, 63, 72, 92, 73, 79, 47, 67, 77, 61, 83, 55, 76, 63, 103, 53, 61, 55, 83, 86, 44, 71, 55, 73, 66, 64, 52, 60, 67, 68, 54, 57, 65, 59, 61, 101, 63, 57, 49, 68, 78, 79, 72, 46, 58, 91, 80, 82, 60, 82, 93, 83, 59, 64, 66, 72, 54, 85, 92, 67, 62, 65, 54, 63, 52, 66, 56, 59, 49, 52, 91, 51, 62, 99, 97, 63, 52, 77, 60, 65, 84, 69, 67, 55, 63, 65, 57, 43, 61, 42, 57, 79, 59, 59, 65, 62, 78, 63, 57, 55, 50, 86, 54, 80, 82, 75, 73, 58, 47, 79, 43, 77, 52, 56, 50, 57, 51, 70, 79, 80, 59, 95, 93, 53, 65, 71, 85, 68, 53, 65, 97, 78, 66, 67, 54, 64, 70, 57, 50, 52, 44, 57, 68, 72, 59, 55, 79, 70, 67, 50, 73, 77, 54, 58, 48, 69, 59, 49, 87, 60, 56, 65, 54, 71, 55, 52, 67, 60, 72, 57, 46, 66, 55, 67, 76, 59, 68, 69, 60, 65, 45, 52, 69, 61, 74, 49, 69, 49, 64, 85, 69, 59, 59, 51, 93, 60, 63, 65, 69, 66, 61, 60, 59, 83, 51, 62, 75, 58, 68, 70, 65, 53, 60, 50, 74, 68, 96, 50, 82, 58, 81, 100, 49, 69, 74, 60, 62, 84, 71, 61, 72, 70, 67, 59, 52, 57, 68, 50, 63, 56, 63, 90, 56, 64, 72, 78, 56, 64, 77, 62, 63, 59, 51, 70, 50, 49, 50, 57, 63, 69, 62, 61, 57, 69, 73, 55, 79, 60, 63, 63, 55, 51, 43, 68, 56, 60, 63, 61, 59, 64, 55, 39, 64, 56, 102, 67, 63, 73, 65, 113, 54, 78, 76, 51, 69, 63, 78, 99, 64, 83, 69, 56, 73, 69, 61, 52, 57, 62, 67, 58, 61, 72, 68, 62, 63, 63, 65, 61, 68, 66, 49, 66, 67, 51, 71, 68, 52, 67, 64, 65, 90, 75, 52, 63, 58, 63, 68, 57, 66, 63, 65, 71, 70, 73, 96, 66, 73, 104, 55, 64, 77, 54, 68, 91, 58, 92, 68, 63, 68, 54, 67, 61, 75, 68, 63, 56, 52, 66, 73, 56, 60, 58, 52, 76, 68, 68, 59, 76, 70, 67, 61, 60, 62, 97, 73, 60, 59, 58, 63, 69, 68, 73, 80, 88, 46, 61, 60, 58, 66, 47, 92, 55, 84, 88, 59, 56, 96, 54, 51, 55, 71, 70, 58, 55, 68, 57, 69, 55, 59, 72, 64, 54, 78, 90, 52, 53, 74, 54, 69, 55, 54, 53, 61, 66, 95, 48, 39, 54, 57, 57, 67, 93, 72, 73, 78, 59, 62, 80, 77, 66, 59, 59, 75, 85, 41, 61, 78, 50, 70, 63, 69, 71, 58, 54, 72, 88, 67, 62, 63, 53, 97, 69, 79, 56, 56, 63, 64, 56, 58, 52, 56, 60, 56, 52, 55, 72, 78, 90, 63, 57, 49, 73, 55, 54, 62, 60, 50, 55, 73, 83, 54, 61, 74, 77, 67, 60, 63, 66, 62, 55, 67, 78, 49, 58, 72, 96, 64, 65, 71, 65, 55, 61, 53, 49, 41, 72, 94, 67, 69, 56, 70, 67, 65, 51, 66, 78, 60, 53, 60, 73, 62, 66, 78, 51, 65, 53, 56, 61, 56, 103, 54, 54, 69, 68, 82, 59, 57, 58, 78, 67, 63, 46, 57, 68, 70, 64, 87, 57, 66, 54, 66, 58, 67, 81, 57, 63, 54, 72, 64, 68, 54, 61, 77, 71, 64, 58, 63, 49, 64, 77, 81, 56, 67, 56, 63, 71, 109, 65, 49, 54, 66, 107, 53, 68, 92, 78, 60, 62, 53, 54, 62, 65, 48, 56, 46, 107, 76, 58, 63, 82, 68, 56, 73, 64, 80, 72, 46, 63, 75, 95, 65, 58, 98, 63, 55, 96, 60, 77, 74, 75, 77, 65, 57, 57, 75, 60, 93, 57, 56, 50, 61, 71, 62, 70, 61, 58, 54, 54, 51, 69, 73, 54, 68, 60, 60, 69, 68, 51, 55, 82, 72, 70, 88, 56, 71, 63, 52, 66, 58, 49, 68, 68, 58, 51, 87, 76, 64, 57, 68, 68, 63, 59, 100, 57, 70, 67, 69, 58, 71, 68, 50, 66, 86, 58, 61, 54, 84, 78, 90, 43, 59, 68, 58, 66, 63, 86, 58, 55, 83, 61, 45, 50, 81, 56, 68, 63, 75, 65, 53, 66, 53, 51, 103, 74, 70, 59, 61, 70, 68, 61, 65, 46, 66, 60, 61, 84, 70, 51, 62, 64, 70, 79, 78, 55, 68, 63, 72, 60, 57, 56, 66, 62, 70, 56, 85, 58, 52, 54, 50, 107, 68, 67, 89, 105, 74, 76, 64, 57, 63, 63, 83, 75, 66, 81, 61, 52, 84, 69, 67, 85, 70, 52, 41, 114, 71, 68, 59, 80, 70, 69, 75, 70, 62, 65, 67, 61, 60, 56, 63, 63, 66, 53, 66, 69, 78, 72, 72, 64, 83, 41, 54, 52, 67, 62, 82, 59, 64, 63, 72, 60, 59, 64, 75, 87, 54, 119, 61, 92, 93, 62, 66, 74, 70, 68, 45, 44, 57, 55, 56, 65, 54, 58, 68, 90, 120, 54, 56, 60, 75, 77, 61, 64, 69, 66, 81, 80, 79, 58, 78, 64, 59, 46, 78, 111, 71, 72, 64, 69, 49, 71, 65, 50, 51, 63, 68, 56, 72, 49, 61, 66, 61, 54, 68, 68, 83, 63, 52, 64, 57, 66, 55, 56, 66, 78, 63, 49, 61, 66, 66, 61, 73, 58, 96, 66, 59, 57, 52, 59, 67, 72, 58, 81, 60, 114, 49, 63, 86, 70, 49, 68, 64, 77, 63, 88, 58, 64, 90, 87, 59, 59, 48, 76, 59, 57, 62, 59, 56, 79, 65, 70, 75, 134, 63, 48, 52, 68, 63, 58, 65, 61, 74, 57, 85, 60, 57, 68, 62, 57, 75, 73, 89, 66, 63, 84, 53, 74, 69, 64, 60, 50, 79, 64, 62, 66, 45, 77, 66, 54, 57, 71, 66, 86, 56, 66, 68, 61, 52, 51, 68, 59, 50, 56, 45, 71, 75, 74, 48, 62, 73, 61, 70, 66, 61, 63, 62, 69, 60, 61, 63, 97, 52, 72, 78, 58, 55, 54, 89, 57, 65, 81, 70, 72, 88, 59, 65, 58, 48, 61, 96, 65, 68, 60, 63, 72, 56, 59, 50, 71, 71, 56, 59, 53, 54, 49, 52, 69, 73, 59, 72, 108, 60, 53, 65, 68, 66, 79, 65, 55, 67, 54, 52, 82, 68, 78, 84, 90, 64, 61, 56, 83, 61, 60, 74, 59, 53, 63, 46, 60, 60, 61, 46, 51, 73, 62, 48, 56, 65, 99, 88, 58, 63, 71, 65, 66, 59, 73, 61, 74, 52, 56, 85, 100, 68, 60, 61, 61, 67, 55, 56, 62, 76, 54, 50, 59, 52, 76, 55, 57, 82, 109, 60, 60, 58, 54, 56, 67, 56, 56, 56, 51, 77, 62, 85, 51, 68, 62, 88, 60, 58, 71, 77, 47, 62, 63, 62, 52, 68, 62, 59, 77, 62, 62, 61, 57, 57, 70, 61, 77, 62, 64, 65, 62, 77, 61, 77, 54, 66, 63, 77, 62, 66, 67, 70, 54, 72, 100, 71, 54, 56, 58, 60, 67, 71, 62, 63, 57, 96, 76, 69, 83, 58, 67, 58, 81, 70, 76, 61, 65, 68, 81, 78, 90, 52, 61, 61, 55, 56, 89, 113, 79, 53, 85, 57, 62, 90, 42, 59, 62, 53, 82, 81, 72, 78, 49, 60, 56, 63, 72, 66, 61, 60, 69, 57, 67, 44, 81, 60, 100, 76, 52, 70, 58, 66, 92, 69, 83, 79, 68, 58, 56, 81, 64, 62, 86, 77, 100, 66, 57, 78, 67, 62, 57, 58, 68, 60, 75, 59, 60, 64, 68, 70, 64, 85, 73, 59, 65, 60, 62, 72, 67, 88, 52, 68, 65, 53, 69, 42, 52, 80, 59, 72, 54, 50, 68, 64, 83, 73, 61, 64, 53, 66, 65, 63, 109, 76, 58, 67, 86, 69, 70, 77, 57, 56, 50, 68, 58, 69, 64, 64, 73, 86, 67, 68, 57, 75, 52, 43, 51, 58, 54, 55, 56, 84, 75, 63, 64, 53, 63, 58, 87, 63, 59, 62, 75, 84, 94, 55, 65, 65, 66, 62, 58, 65, 65, 64, 64, 55, 59, 110, 55, 75, 94, 67, 57, 69, 69, 50, 62, 60, 64, 60, 48, 84, 58, 88, 70, 64, 64, 88, 70, 65, 83, 69, 66, 66, 53, 55, 66, 52, 58, 55, 81, 63, 72, 59, 72, 69, 53, 62, 58, 36, 61, 77, 37, 59, 49, 56, 71, 66, 74, 72, 47, 58, 54, 74, 57, 63, 70, 64, 58, 86, 88, 61, 63, 82, 61, 57, 68, 65, 70, 59, 56, 74, 69, 54, 54, 68, 86, 50, 67, 67, 37, 64, 70, 67, 60, 75, 77, 69, 70, 55, 62, 45, 59, 50, 65, 58, 86, 65, 68, 73, 81, 65, 65, 74, 61, 67, 62, 61, 72, 78, 59, 64, 68, 87, 71, 67, 54, 53, 85, 80, 62, 71, 63, 88, 49, 104, 80, 64, 76, 76, 48, 71, 59, 53, 49, 77, 65, 60, 72, 65, 78, 67, 75, 59, 67, 74, 79, 57, 68, 60, 59, 64, 79, 62, 63, 83, 78, 67, 67, 59, 67, 62, 65, 47, 86, 75, 56, 77, 75, 75, 64, 64, 63, 58, 81, 59, 47, 67, 54, 106, 53, 70, 58, 59, 73, 69, 60, 69, 64, 39, 56, 66, 77, 83, 78, 104, 45, 62, 58, 76, 41, 64, 114, 59, 68, 54, 61, 71, 51, 60, 55, 59, 75, 57, 69, 53, 57, 67, 62, 68, 35, 63, 55, 51, 64, 49, 106, 74, 53, 64, 64, 69, 56, 57, 48, 53, 63, 60, 85, 55, 62, 61, 62, 82, 66, 68, 65, 61, 54, 95, 53, 65, 66, 62, 84, 55, 51, 64, 63, 67, 70, 53, 78, 57, 54, 53, 62, 63, 113, 54, 67, 61, 64, 44, 62, 62, 67, 78, 52, 70, 65, 69, 89, 71, 43, 94, 54, 77, 64, 71, 72, 82, 81, 45, 63, 75, 66, 55, 57, 102, 54, 48, 66, 66, 65, 78, 76, 58, 59, 66, 63, 69, 49, 55, 67, 62, 66, 63, 65, 59, 76, 67, 92, 70, 72, 66, 53, 79, 71, 58, 55, 64, 60, 71, 54, 68, 84, 65, 67, 56, 46, 76, 54, 77, 59, 64, 62, 57, 50, 48, 64, 99, 59, 58, 51, 50, 51, 55, 91, 84, 56, 71, 82, 55, 85, 51, 63, 85, 78, 65, 60, 57, 67, 69, 69, 69, 57, 62, 55, 77, 69, 50, 62, 69, 78, 130, 85, 65, 62, 73, 61, 77, 72, 51, 57, 63, 64, 66, 67, 73, 68, 38, 50, 64, 77, 69, 68, 53, 68, 50, 64, 57, 59, 69, 61, 58, 62, 66, 75, 70, 57, 73, 112, 64, 66, 68, 62, 102, 66, 55, 52, 125, 79, 65, 64, 81, 101, 54, 110, 73, 59, 59, 57, 90, 47, 47, 92, 74, 60, 65, 54, 60, 87, 72, 50, 52, 55, 61, 76, 65, 58, 72, 62, 66, 72, 65, 69, 64, 72, 62, 57, 58, 71, 71, 82, 78, 66, 50, 68, 60, 69, 71, 74, 66, 55, 82, 68, 57, 92, 61, 81, 55, 49, 50, 67, 70, 60, 58, 64, 66, 55, 73, 65, 64, 70, 64, 93, 122, 80, 51, 66, 83, 73, 45, 63, 66, 73, 76, 74, 51, 63, 54, 66, 55, 63, 72, 56, 66, 75, 61, 54, 77, 64, 39, 53, 65, 64, 71, 68, 58, 56, 58, 87, 65, 60, 59, 71, 67, 60, 69, 72, 60, 60, 58, 63, 59, 54, 58, 56, 90, 72, 73, 70, 70, 61, 62, 65, 73, 55, 84, 57, 72, 61, 58, 72, 63, 119, 78, 60, 49, 58, 69, 87, 45, 66, 74, 73, 56, 49, 71, 67, 68, 50, 57, 69, 57, 98, 51, 79, 70, 62, 69, 78, 84, 135, 59, 34, 56, 47, 64, 65, 56, 61, 59, 66, 61, 76, 52, 59, 57, 86, 68, 66, 73, 61, 62, 64, 61, 70, 95, 66, 73, 54, 83, 75, 58, 56, 51, 56, 85, 54, 69, 65, 66, 56, 62, 72, 76, 62, 35, 74, 63, 77, 60, 52, 49, 47, 64, 63, 58, 70, 71, 67, 53, 58, 71, 62, 53, 68, 78, 67, 57, 48, 58, 56, 61, 112, 66, 67, 73, 51, 82, 67, 63, 83, 85, 56, 62, 68, 58, 65, 132, 58, 60, 56, 74, 78, 44, 66, 60, 56, 65, 60, 76, 67, 59, 93, 57, 69, 100, 70, 53, 68, 62, 49, 83, 82, 62, 75, 63, 57, 74, 50, 65, 77, 63, 116, 48, 86, 55, 57, 70, 62, 56, 65, 66, 59, 57, 68, 50, 67, 72, 66, 57, 67, 52, 59, 83, 56, 74, 75, 76, 52, 57, 86, 67, 83, 60, 81, 70, 69, 68, 72, 88, 82, 63, 46, 60, 66, 67, 63, 59, 62, 62, 63, 65, 57, 57, 63, 71, 80, 82, 45, 88, 64, 71, 74, 49, 56, 69, 54, 61, 56, 59, 83, 72, 64, 51, 59, 107, 51, 71, 54, 96, 63, 56, 65, 113, 48, 53, 62, 53, 67, 68, 61, 62, 59, 58, 65, 64, 82, 62, 54, 65, 64, 60, 69, 63, 60, 60, 63, 73, 45, 69, 66, 78, 52, 60, 44, 78, 68, 75, 67, 55, 56, 78, 77, 68, 70, 88, 70, 93, 55, 53, 72, 75, 97, 57, 70, 71, 63, 60, 69, 80, 64, 72, 76, 63, 87, 51, 66, 52, 81, 59, 75, 56, 61, 60, 40, 60, 71, 73, 75, 58, 90, 61, 50, 70, 63, 58, 61, 68, 72, 69, 65, 69, 56, 89, 94, 69, 56, 51, 68, 83, 56, 62, 66, 60, 66, 80, 71, 61, 71, 86, 61, 51, 67, 77, 65, 61, 55, 64, 69, 52, 67, 77, 71, 71, 68, 85, 64, 55, 63, 82, 60, 72, 67, 68, 63, 68, 68, 79, 53, 75, 74, 57, 64, 80, 89, 58, 61, 48, 71, 63, 64, 67, 64, 60, 62, 70, 60, 75, 66, 65, 86, 61, 124, 48, 52, 64, 41, 73, 66, 49, 72, 55, 94, 76, 49, 48, 59, 68, 69, 53, 91, 78, 81, 56, 55, 67, 70, 51, 49, 72, 59, 58, 63, 70, 96, 54, 79, 87, 95, 52, 70, 65, 71, 75, 74, 58, 66, 65, 61, 68, 60, 47, 74, 57, 63, 42, 58, 91, 49, 61, 87, 67, 77, 62, 62, 66, 58, 64, 67, 70, 56, 97, 49, 54, 63, 59, 78, 46, 61, 73, 78, 47, 74, 60, 57, 75, 59, 56, 73, 59, 56, 65, 59, 64, 60, 59, 64, 68, 52, 54, 65, 78, 66, 71, 62, 88, 68, 67, 53, 75, 61, 47, 56, 75, 88, 68, 62, 54, 68, 47, 67, 70, 54, 73, 66, 64, 56, 59, 56, 92, 77, 49, 64, 70, 71, 60, 105, 63, 61, 68, 103, 56, 58, 67, 79, 65, 58, 68, 64, 53, 48, 90, 66, 66, 42, 62, 83, 65, 60, 75, 72, 60, 69, 78, 58, 56, 64, 75, 57, 65, 63, 56, 61, 90, 72, 69, 62, 69, 72, 78, 63, 55, 45, 100, 74, 118, 105, 55, 64, 61, 55, 57, 67, 62, 80, 86, 52, 73, 95, 46, 52, 87, 68, 63, 74, 70, 68, 57, 55, 57, 104, 72, 64, 68, 69, 60, 54, 65, 57, 69, 68, 67, 58, 59, 52, 39, 62, 76, 94, 51, 65, 58, 70, 53, 62, 57, 53, 40, 61, 84, 71, 87, 57, 91, 72, 61, 64, 65, 84, 52, 62, 66, 79, 81, 76, 76, 63, 56, 68, 56, 99, 68, 134, 59, 72, 80, 54, 45, 58, 63, 54, 80, 66, 65, 89, 81, 55, 68, 54, 64, 72, 87, 69, 56, 53, 56, 93, 66, 67, 64, 67, 61, 61, 69, 63, 57, 67, 73, 83, 54, 51, 68, 59, 126, 72, 72, 56, 53, 54, 105, 62, 77, 59, 65, 89, 56, 57, 63, 55, 48, 67, 56, 72, 68, 59, 51, 53, 68, 88, 68, 48, 59, 61, 53, 64, 59, 75, 62, 74, 59, 74, 88, 74, 65, 109, 89, 58, 75, 47, 77, 64, 80, 68, 43, 74, 62, 74, 63, 55, 91, 52, 83, 68, 55, 68, 51, 65, 49, 55, 60, 53, 54, 60, 56, 63, 66, 60, 65, 69, 74, 60, 63, 75, 59, 74, 62, 69, 80, 73, 85, 62, 56, 56, 62, 74, 63, 60, 89, 77, 59, 71, 71, 64, 65, 77, 99, 63, 70, 51, 50, 70, 84, 67, 51, 48, 51, 63, 52, 69, 77, 102, 60, 46, 44, 74, 62, 85, 64, 66, 65, 62, 51, 75, 65, 85, 69, 63, 77, 67, 57, 59, 56, 63, 69, 71, 104, 57, 73, 66, 51, 57, 78, 66, 52, 67, 54, 58, 69, 77, 67, 60, 91, 57, 59, 68, 64, 65, 56, 89, 66, 77, 66, 65, 65, 59, 67, 62, 47, 59, 66, 44, 49, 111, 43, 71, 88, 61, 94, 59, 60, 58, 66, 55, 51, 66, 76, 73, 67, 90, 69, 55, 69, 56, 67, 55, 79, 100, 64, 58, 85, 53, 74, 100, 56, 57, 63, 57, 63, 70, 74, 54, 55, 55, 60, 68, 67, 66, 66, 70, 61, 54, 63, 62, 58, 98, 60, 55, 38, 64, 54, 58, 73, 63, 61, 49, 86, 63, 56, 95, 67, 88, 68, 62, 65, 79, 74, 65, 52, 64, 61, 64, 47, 64, 63, 55, 66, 104, 130, 75, 52, 55, 61, 52, 87, 51, 86, 68, 57, 70, 61, 66, 58, 70, 64, 89, 63, 66, 50, 108, 70, 67, 59, 63, 61, 81, 50, 49, 68, 64, 75, 66, 67, 80, 58, 64, 68, 66, 76, 53, 42, 71, 47, 58, 56, 59, 64, 78, 46, 69, 75, 70, 63, 55, 72, 61, 45, 58, 48, 47, 66, 66, 75, 73, 63, 64, 64, 58, 105, 67, 50, 74, 79, 59, 78, 72, 78, 46, 68, 58, 53, 65, 75, 51, 72, 86, 66, 47, 71, 67, 83, 62, 59, 64, 77, 115, 61, 54, 68, 65, 76, 65, 69, 59, 56, 54, 93, 72, 73, 53, 59, 87, 66, 80, 70, 47, 68, 61, 52, 74, 58, 70, 57, 67, 57, 77, 55, 67, 60, 61, 57, 72, 51, 66, 67, 72, 56, 82, 65, 56, 69, 65, 55, 66, 59, 66, 57, 76, 59, 66, 56, 70, 71, 53, 76, 63, 65, 68, 67, 67, 56, 62, 55, 47, 59, 70, 67, 71, 72, 57, 47, 63, 59, 85, 48, 67, 82, 63, 79, 71, 63, 65, 93, 50, 59, 63, 55, 56, 84, 77, 57, 64, 61, 69, 58, 49, 69, 39, 90, 58, 70, 54, 75, 120, 64, 57, 52, 54, 86, 42, 47, 67, 50, 48, 67, 66, 84, 74, 66, 67, 53, 49, 67, 75, 52, 70, 98, 63, 61, 67, 61, 66, 61, 62, 69, 71, 64, 50, 69, 73, 42, 57, 68, 63, 53, 79, 55, 59, 50, 44, 64, 66, 71, 56, 61, 52, 68, 42, 70, 65, 75, 56, 71, 57, 63, 58, 54, 66, 90, 79, 58, 79, 77, 52, 76, 78, 72, 45, 66, 76, 65, 62, 70, 53, 53, 102, 67, 71, 60, 80, 81, 62, 62, 83, 122, 55, 58, 63, 92, 50, 86, 62, 64, 49, 67, 62, 69, 61, 67, 63, 76, 58, 63, 63, 70, 52, 63, 47, 52, 75, 58, 53, 59, 66, 57, 65, 83, 57, 76, 57, 51, 61, 59, 77, 83, 69, 79, 105, 69, 65, 50, 61, 58, 52, 44, 61, 61, 76, 83, 60, 53, 76, 57, 63, 99, 104, 66, 58, 100, 58, 47, 67, 91, 70, 68, 59, 64, 51, 76, 46, 55, 58, 53, 72, 65, 56, 64, 71, 75, 58, 68, 62, 61, 67, 57, 71, 59, 63, 98, 71, 66, 56, 65, 46, 69, 87, 71, 58, 57, 78, 76, 40, 62, 51, 46, 59, 63, 59, 68, 57, 59, 71, 82, 65, 55, 48, 80, 66, 56, 50, 83, 97, 64, 43, 62, 52, 62, 74, 61, 76, 71, 63, 69, 46, 62, 66, 53, 60, 70, 56, 69, 71, 52, 48, 42, 66, 44, 67, 64, 60, 53, 65, 89, 71, 50, 67, 43, 120, 56, 60, 85, 95, 61, 69, 55, 70, 79, 58, 49, 50, 71, 61, 60, 60, 37, 45, 81, 69, 46, 80, 65, 60, 64, 71, 51, 70, 60, 65, 70, 57, 69, 63, 55, 57, 88, 79, 74, 65, 50, 58, 75, 56, 83, 56, 50, 56, 57, 70, 65, 65, 64, 74, 97, 58, 64, 82, 64, 57, 66, 70, 55, 83, 62, 89, 75, 56, 66, 59, 65, 52, 54, 62, 61, 60, 44, 65, 44, 68, 62, 62, 53, 63, 67, 60, 60, 51, 57, 73, 58, 61, 52, 96, 50, 54, 64, 78, 71, 94, 64, 60, 45, 90, 60, 73, 72, 64, 65, 55, 49, 67, 61, 50, 51, 80, 92, 75, 73, 60, 75, 58, 60, 73, 61, 64, 70, 60, 64, 60, 64, 58, 69, 82, 51, 69, 66, 48, 64, 58, 62, 72, 58, 66, 99, 62, 60, 66, 68, 64, 64, 59, 69, 68, 60, 55, 55, 82, 55, 61, 66, 59, 60, 62, 69, 69, 68, 43, 54, 58, 96, 70, 59, 62, 65, 61, 52, 64, 109, 66, 76, 86, 87, 66, 92, 60, 78, 54, 78, 68, 62, 58, 71, 56, 55, 60, 72, 86, 71, 55, 52, 48, 71, 80, 91, 70, 69, 109, 103, 79, 71, 70, 87, 57, 62, 62, 66, 55, 63, 66, 52, 73, 76, 73, 86, 72, 63, 64, 60, 75, 40, 81, 58, 65, 64, 63, 93, 100, 70, 69, 62, 67, 55, 60, 70, 81, 69, 65, 58, 67, 80, 67, 86, 50, 68, 60, 86, 46, 61, 106, 49, 53, 55, 60, 69, 61, 71, 63, 55, 54, 65, 85, 58, 54, 65, 60, 62, 61, 76, 50, 66, 65, 56, 84, 64, 63, 71, 69, 70, 53, 64, 43, 53, 66, 67, 60, 54, 60, 54, 62, 69, 67, 78, 64, 73, 55, 113, 73, 90, 73, 55, 92, 77, 56, 76, 60, 72, 70, 55, 89, 55, 66, 50, 68, 87, 128, 60, 60, 72, 57, 69, 60, 55, 68, 66, 65, 92, 54, 73, 88, 63, 55, 55, 60, 82, 67, 72, 69, 52, 73, 55, 60, 62, 59, 56, 50, 55, 47, 83, 66, 63, 53, 47, 79, 65, 52, 67, 59, 52, 79, 45, 61, 81, 50, 62, 75, 61, 83, 52, 63, 56, 70, 71, 51, 73, 68, 76, 74, 58, 67, 62, 106, 73, 69, 68, 72, 67, 62, 63, 52, 53, 60, 58, 61, 64, 60, 56, 56, 58, 62, 78, 74, 48, 58, 57, 53, 68, 55, 68, 64, 61, 45, 53, 88, 69, 55, 66, 51, 64, 70, 59, 56, 64, 67, 63, 54, 81, 82, 60, 54, 58, 59, 113, 48, 69, 58, 70, 57, 63, 59, 56, 57, 57, 75, 76, 80, 72, 61, 73, 85, 59, 67, 61, 76, 64, 88, 83, 79, 67, 50, 65, 55, 74, 55, 72, 59, 58, 56, 69, 121, 79, 59, 54, 69, 83, 61, 63, 48, 84, 58, 73, 59, 61, 62, 61, 74, 53, 71, 57, 65, 69, 67, 52, 100, 65, 48, 55, 72, 60, 52, 65, 60, 67, 64, 49, 79, 84, 64, 65, 81, 67, 52, 91, 66, 55, 88, 82, 58, 72, 68, 58, 59, 77, 63, 54, 98, 46, 74, 60, 67, 59, 59, 61, 73, 52, 95, 58, 91, 84, 56, 74, 68, 86, 66, 54, 69, 56, 72, 54, 75, 64, 68, 47, 76, 113, 100, 54, 52, 54, 81, 60, 72, 69, 53, 52, 79, 79, 61, 63, 63, 65, 56, 72, 59, 70, 77, 65, 66, 68, 62, 72, 66, 61, 67, 58, 64, 80, 81, 64, 68, 70, 57, 67, 70, 54, 59, 63, 70, 79, 57, 59, 55, 69, 81, 77, 50, 63, 62, 66, 50, 53, 72, 60, 72, 62, 48, 84, 87, 65, 114, 47, 46, 59, 49, 116, 66, 56, 57, 80, 85, 38, 67, 71, 68, 49, 47, 63, 64, 48, 63, 61, 74, 56, 52, 48, 76, 62, 66, 54, 62, 102, 117, 60, 58, 52, 65, 80, 57, 51, 57, 63, 57, 72, 53, 70, 64, 43, 66, 64, 56, 77, 53, 58, 85, 69, 98, 62, 55, 67, 56, 81, 74, 61, 70, 97, 60, 51, 72, 72, 68, 101, 53, 53, 93, 57, 57, 52, 71, 61, 63, 66, 40, 55, 58, 98, 61, 60, 74, 60, 62, 63, 60, 64, 79, 68, 51, 70, 47, 67, 52, 47, 59, 70, 83, 59, 67, 61, 79, 53, 74, 60, 55, 85, 57, 63, 63, 55, 62, 61, 63, 63, 45, 58, 77, 57, 64, 51, 73, 52, 61, 78, 60, 63, 59, 75, 60, 45, 59, 74, 138, 73, 69, 66, 63, 79, 58, 62, 55, 69, 66, 58, 74, 64, 94, 54, 90, 66, 64, 59, 88, 46, 75, 48, 57, 53, 51, 54, 52, 73, 59, 50, 73, 54, 61, 63, 60, 54, 71, 78, 50, 59, 116, 67, 70, 60, 66, 71, 64, 65, 56, 73, 78, 63, 57, 59, 69, 68, 79, 66, 62, 60, 65, 107, 63, 68, 83, 73, 76, 67, 60, 78, 68, 53, 53, 43, 61, 72, 62, 74, 62, 52, 74, 100, 52, 61, 55, 86, 52, 68, 70, 78, 74, 59, 87, 100, 53, 64, 54, 59, 70, 61, 53, 61, 60, 71, 64, 61, 61, 52, 62, 59, 57, 58, 55, 61, 52, 55, 54, 55, 54, 54, 64, 48, 57, 61, 68, 59, 51, 53, 55, 62, 65, 58, 51, 62, 70, 51, 72, 83, 50, 77, 71, 59, 61, 50, 59, 57, 49, 52, 58, 81, 83, 61, 67, 58, 75, 64, 61, 89, 75, 98, 89, 60, 69, 70, 55, 76, 81, 62, 58, 59, 56, 53, 67, 66, 51, 56, 58, 72, 50, 51, 80, 56, 66, 84, 58, 64, 68, 76, 53, 62, 55, 53, 66, 64, 87, 68, 63, 52, 74, 55, 62, 52, 66, 82, 51, 58, 80, 99, 67, 54, 85, 68, 75, 64, 80, 62, 59, 55, 54, 53, 45, 74, 65, 69, 56, 71, 57, 72, 59, 73, 49, 60, 55, 70, 56, 76, 61, 55, 75, 56, 60, 71, 60, 64, 63, 74, 68, 66, 58, 57, 68, 64, 129, 74, 60, 58, 77, 69, 70, 58, 70, 51, 62, 55, 61, 66, 78, 74, 84, 57, 75, 69, 64, 57, 65, 60, 58, 67, 73, 60, 61, 66, 73, 72, 69, 61, 59, 68, 105, 64, 62, 59, 73, 84, 52, 68, 67, 92, 75, 52, 57, 64, 65, 66, 68, 61, 82, 107, 64, 52, 63, 87, 69, 54, 55, 66, 78, 65, 95, 63, 68, 70, 53, 63, 57, 55, 72, 74, 60, 47, 79, 59, 74, 52, 63, 56, 65, 78, 87, 54, 66, 57, 65, 52, 51, 67, 56, 89, 45, 57, 49, 55, 72, 64, 68, 56, 61, 62, 54, 60, 45, 68, 61, 64, 61, 57, 57, 83, 54, 56, 96, 59, 80, 78, 59, 56, 58, 52, 61, 69, 68, 61, 48, 72, 56, 69, 89, 79, 58, 53, 100, 62, 52, 62, 67, 54, 70, 60, 64, 68, 84, 76, 52, 50, 68, 59, 100, 59, 58, 64, 70, 53, 52, 42, 72, 59, 54, 52, 64, 56, 49, 67, 65, 62, 107, 73, 65, 56, 60, 92, 70, 65, 69, 60, 48, 100, 55, 57, 60, 72, 60, 61, 43, 54, 61, 58, 55, 58, 67, 105, 58, 65, 58, 52, 60, 53, 73, 58, 63, 64, 44, 52, 64, 60, 42, 54, 75, 71, 74, 53, 65, 73, 56, 66, 78, 80, 47, 58, 86, 61, 60, 81, 78, 58, 81, 61, 64, 83, 57, 65, 68, 76, 62, 45, 77, 57, 59, 58, 76, 59, 56, 70, 67, 66, 90, 82, 49, 64, 69, 59, 39, 75, 116, 67, 59, 67, 67, 67, 62, 65, 67, 66, 63, 71, 68, 86, 90, 89, 58, 67, 77, 73, 70, 71, 60, 65, 39, 41, 64, 61, 68, 74, 82, 59, 75, 59, 56, 77, 82, 55, 45, 65, 63, 104, 59, 45, 58, 47, 73, 120, 54, 61, 62, 54, 75, 52, 73, 98, 66, 48, 58, 54, 56, 73, 61, 68, 62, 53, 86, 55, 48, 57, 65, 58, 64, 60, 61, 76, 73, 63, 69, 68, 93, 60, 94, 102, 60, 61, 62, 49, 95, 52, 58, 52, 51, 61, 60, 60, 49, 95, 54, 45, 71, 73, 59, 110, 67, 48, 66, 50, 54, 74, 56, 68, 60, 79, 61, 62, 56, 60, 62, 56, 78, 70, 54, 69, 66, 102, 64, 44, 70, 72, 41, 59, 61, 68, 75, 81, 79, 62, 78, 68, 103, 56, 63, 63, 67, 76, 67, 47, 57, 57, 61, 67, 52, 69, 49, 72, 68, 85, 62, 59, 58, 50, 94, 57, 72, 57, 38, 72, 72, 65, 65, 59, 61, 58, 62, 60, 45, 68, 45, 68, 57, 79, 86, 79, 67, 48, 59, 62, 62, 94, 72, 102, 66, 57, 54, 51, 48, 48, 35, 86, 56, 64, 59, 67, 64, 79, 81, 61, 62, 71, 70, 67, 65, 60, 70, 58, 50, 72, 55, 48, 110, 71, 84, 86, 79, 112, 67, 79, 74, 93, 71, 67, 65, 70, 79, 55, 76, 84, 73, 55, 59, 57, 60, 51, 71, 48, 64, 65, 87, 53, 66, 66, 54, 81, 62, 95, 68, 65, 64, 82, 72, 63, 67, 63, 70, 54, 67, 57, 67, 74, 36, 57, 62, 68, 59, 64, 57, 97, 87, 57, 59, 87, 61, 94, 50, 61, 64, 59, 79, 63, 64, 63, 55, 83, 60, 107, 78, 54, 72, 63, 51, 43, 51, 65, 114, 106, 58, 84, 60, 62, 62, 40, 65, 67, 72, 55, 68, 58, 58, 51, 72, 71, 61, 73, 55, 64, 79, 56, 80, 75, 53, 86, 58, 60, 68, 54, 51, 63, 67, 69, 72, 75, 61, 84, 68, 66, 69, 92, 65, 62, 53, 60, 60, 75, 78, 69, 76, 81, 60, 65, 67, 69, 72, 63, 64, 47, 64, 86, 52, 77, 81, 55, 48, 81, 65, 54, 57, 47, 61, 50, 61, 53, 92, 66, 87, 60, 82, 65, 69, 67, 59, 72, 65, 59, 62, 73, 70, 56, 64, 55, 62, 90, 121, 66, 66, 84, 59, 76, 50, 71, 57, 51, 76, 93, 50, 51, 62, 56, 103, 62, 90, 78, 54, 59, 36, 55, 62, 70, 67, 75, 74, 65, 72, 62, 37, 65, 72, 59, 70, 70, 62, 61, 61, 61, 90, 60, 51, 69, 67, 57, 71, 61, 58, 56, 61, 75, 68, 72, 66, 66, 70, 91, 62, 71, 112, 73, 64, 58, 52, 62, 54, 50, 73, 55, 62, 57, 61, 56, 78, 65, 53, 63, 71, 100, 49, 62, 49, 49, 55, 55, 69, 69, 56, 65, 58, 69, 62, 75, 54, 60, 64, 62, 72, 58, 45, 58, 65, 60, 58, 75, 40, 72, 62, 62, 100, 71, 71, 84, 66, 66, 72, 58, 106, 82, 81, 51, 48, 72, 67, 71, 63, 61, 64, 73, 101, 56, 83, 61, 58, 58, 68, 59, 68, 60, 65, 83, 64, 56, 76, 80, 68, 60, 72, 77, 68, 65, 70, 57, 76, 46, 46, 67, 82, 64, 65, 50, 57, 75, 75, 60, 61, 77, 82, 54, 60, 106, 79, 49, 81, 87, 68, 76, 77, 50, 84, 87, 59, 61, 54, 67, 54, 57, 60, 65, 68, 50, 81, 101, 67, 63, 68, 88, 59, 58, 56, 107, 56, 59, 60, 57, 50, 50, 61, 65, 61, 65, 83, 60, 66, 73, 57, 68, 72, 70, 82, 49, 59, 56, 48, 59, 54, 73, 53, 79, 71, 58, 64, 64, 61, 81, 64, 72, 70, 64, 90, 53, 58, 52, 55, 70, 91, 70, 57, 69, 71, 56, 72, 67, 74, 76, 44, 62, 65, 60, 61, 50, 61, 66, 50, 72, 58, 58, 64, 64, 62, 75, 74, 52, 76, 51, 58, 58, 88, 66, 58, 69, 50, 55, 51, 76, 77, 73, 67, 68, 58, 103, 81, 53, 76, 68, 65, 60, 75, 59, 68, 66, 82, 74, 77, 51, 48, 56, 69, 57, 67, 69, 90, 59, 63, 81, 57, 59, 82, 67, 61, 59, 64, 58, 54, 61, 93, 76, 66, 63, 52, 72, 66, 49, 67, 83, 61, 97, 69, 73, 72, 71, 66, 41, 68, 57, 56, 71, 51, 51, 66, 50, 69, 60, 67, 63, 87, 53, 50, 67, 93, 75, 73, 90, 56, 60, 58, 92, 72, 51, 78, 83, 64, 65, 91, 68, 74, 51, 61, 98, 82, 66, 62, 57, 45, 65, 53, 67, 68, 59, 57, 62, 65, 71, 63, 75, 112, 71, 75, 50, 62, 85, 48, 56, 52, 68, 57, 55, 60, 57, 57, 65, 69, 63, 74, 91, 60, 63, 69, 69, 62, 74, 65, 67, 82, 58, 49, 63, 57, 49, 51, 82, 61, 67, 52, 51, 60, 65, 47, 64, 60, 83, 53, 66, 59, 72, 63, 55, 73, 64, 58, 55, 64, 59, 55, 63, 50, 66, 64, 59, 57, 65, 57, 87, 70, 67, 72, 58, 51, 71, 72, 59, 64, 71, 101, 63, 65, 77, 63, 61, 59, 59, 75, 57, 63, 72, 66, 68, 88, 76, 90, 56, 71, 58, 88, 69, 55, 58, 98, 48, 51, 61, 70, 70, 63, 57, 73, 63, 57, 73, 62, 73, 79, 65, 73, 55, 63, 64, 82, 65, 72, 68, 60, 72, 70, 76, 86, 64, 75, 49, 55, 98, 73, 56, 64, 61, 63, 84, 63, 65, 61, 77, 57, 112, 75, 57, 69, 95, 58, 60, 58, 63, 71, 32, 64, 63, 74, 77, 64, 54, 66, 74, 70, 76, 71, 57, 83, 57, 59, 64, 69, 60, 67, 71, 57, 71, 56, 65, 64, 61, 57, 59, 78, 54, 71, 70, 77, 71, 58, 41, 57, 79, 73, 64, 65, 80, 54, 44, 73, 56, 64, 66, 59, 53, 62, 65, 46, 35, 58, 77, 55, 51, 55, 84, 84, 59, 79, 84, 68, 71, 100, 63, 75, 69, 62, 63, 69, 68, 61, 64, 77, 66, 53, 83, 95, 47, 62, 33, 88, 94, 90, 64, 62, 63, 85, 58, 45, 76, 49, 52, 65, 61, 53, 59, 63, 58, 85, 68, 49, 73, 74, 115, 79, 63, 63, 61, 79, 124, 58, 62, 62, 48, 97, 53, 70, 87, 73, 80, 53, 51, 64, 60, 55, 76, 99, 84, 109, 56, 64, 48, 60, 55, 54, 83, 74, 59, 72, 48, 59, 63, 88, 63, 93, 94, 63, 47, 56, 63, 63, 57, 50, 53, 58, 59, 59, 59, 73, 94, 57, 77, 60, 75, 70, 67, 70, 78, 65, 65, 58, 60, 65, 61, 63, 78, 62, 66, 57, 53, 54, 54, 56, 59, 64, 76, 55, 92, 58, 75, 69, 59, 58, 77, 74, 63, 64, 70, 54, 63, 71, 52, 50, 80, 58, 70, 58, 59, 65, 69, 68, 65, 64, 57, 88, 48, 48, 53, 53, 92, 59, 85, 57, 56, 59, 61, 75, 68, 109, 74, 65, 67, 52, 54, 44, 78, 59, 64, 72, 82, 66, 54, 62, 52, 54, 74, 68, 69, 57, 41, 74, 87, 63, 66, 54, 54, 76, 64, 70, 55, 111, 78, 58, 70, 65, 57, 53, 68, 83, 83, 60, 63, 63, 58, 64, 65, 83, 65, 52, 55, 63, 60, 127, 77, 72, 114, 55, 99, 64, 91, 56, 68, 68, 65, 57, 47, 107, 65, 99, 91, 56, 80, 57, 78, 45, 69, 85, 66, 70, 65, 64, 76, 98, 66, 54, 85, 59, 75, 65, 66, 70, 62, 61, 63, 66, 76, 73, 57, 64, 66, 86, 51, 73, 64, 62, 80, 70, 41, 54, 55, 41, 57, 59, 60, 48, 96, 78, 66, 58, 66, 46, 100, 62, 62, 32, 88, 65, 74, 61, 58, 71, 66, 51, 57, 51, 61, 71, 103, 54, 77, 69, 55, 79, 77, 90, 53, 70, 69, 77, 74, 56, 74, 68, 50, 57, 77, 50, 70, 66, 59, 63, 63, 66, 61, 63, 56, 55, 86, 56, 80, 64, 55, 68, 66, 55, 79, 70, 50, 74, 86, 66, 63, 71, 51, 53, 67, 45, 87, 59, 102, 78, 63, 64, 69, 64, 54, 68, 50, 55, 46, 87, 64, 79, 69, 74, 60, 65, 68, 62, 53, 94, 82, 56, 93, 79, 40, 72, 60, 65, 75, 60, 45, 58, 59, 64, 80, 66, 53, 66, 63, 56, 58, 56, 57, 106, 49, 62, 60, 67, 45, 72, 63, 62, 52, 45, 100, 76, 81, 71, 68, 91, 59, 64, 57, 72, 48, 67, 73, 94, 73, 68, 59, 51, 85, 67, 83, 52, 69, 57, 42, 58, 63, 67, 57, 43, 51, 70, 77, 61, 54, 78, 66, 61, 66, 99, 59, 78, 58, 55, 60, 59, 60, 73, 92, 73, 62, 71, 64, 58, 67, 63, 68, 73, 58, 64, 73, 46, 63, 93, 61, 56, 66, 84, 55, 58, 69, 66, 58, 61, 86, 59, 72, 64, 57, 73, 63, 77, 54, 47, 48, 84, 59, 56, 62, 66, 83, 56, 55, 66, 92, 60, 61, 54, 43, 71, 68, 92, 74, 70, 75, 87, 67, 57, 74, 58, 79, 71, 79, 66, 72, 61, 52, 61, 68, 75, 58, 66, 52, 79, 78, 55, 63, 59, 91, 58, 53, 72, 51, 62, 59, 53, 73, 62, 63, 64, 63, 65, 47, 69, 83, 56, 71, 50, 68, 64, 58, 54, 70, 73, 69, 58, 62, 52, 42, 69, 52, 42, 84, 44, 48, 76, 55, 104, 55, 59, 70, 83, 67, 81, 63, 67, 71, 64, 63, 87, 73, 55, 63, 75, 57, 53, 49, 80, 61, 65, 55, 65, 110, 59, 76, 64, 63, 51, 59, 62, 68, 61, 59, 65, 57, 67, 59, 84, 64, 48, 71, 65, 68, 87, 65, 62, 62, 72, 73, 59, 59, 63, 68, 56, 72, 68, 59, 68, 73, 63, 70, 94, 62, 70, 61, 69, 54, 72, 61, 54, 62, 74, 61, 84, 92, 60, 89, 65, 72, 51, 50, 53, 61, 73, 80, 73, 109, 65, 58, 59, 69, 76, 71, 116, 64, 45, 61, 49, 68, 59, 49, 63, 59, 64, 57, 59, 68, 58, 56, 67, 62, 66, 92, 57, 70, 47, 80, 71, 67, 71, 63, 59, 57, 72, 66, 53, 57, 69, 55, 59, 67, 81, 63, 58, 64, 55, 87, 61, 57, 80, 52, 60, 54, 77, 71, 92, 63, 66, 78, 59, 54, 59, 42, 65, 85, 63, 98, 62, 70, 71, 80, 58, 57, 84, 95, 60, 60, 65, 61, 61, 54, 72, 64, 59, 62, 74, 60, 84, 63, 55, 74, 90, 59, 60, 65, 69, 65, 65, 50, 66, 59, 73, 58, 58, 60, 50, 63, 52, 61, 59, 60, 67, 52, 51, 59, 62, 54, 60, 54, 65, 53, 61, 64, 55, 68, 59, 61, 46, 65, 73, 38, 63, 68, 63, 66, 53, 60, 76, 93, 76, 61, 55, 59, 54, 73, 63, 109, 75, 64, 73, 53, 75, 88, 66, 71, 58, 65, 54, 81, 61, 79, 54, 83, 58, 50, 63, 65, 53, 66, 64, 89, 78, 55, 80, 75, 59, 65, 63, 55, 70, 56, 71, 48, 65, 66, 59, 70, 41, 82, 71, 72, 87, 51, 62, 61, 56, 61, 54, 58, 74, 87, 58, 70, 62, 66, 75, 110, 58, 60, 50, 77, 68, 75, 69, 63, 71, 56, 61, 62, 120, 76, 50, 75, 63, 54, 77, 71, 49, 56, 36, 59, 78, 64, 87, 61, 77, 86, 75, 74, 79, 93, 61, 67, 78, 43, 75, 60, 61, 76, 57, 59, 60, 54, 61, 47, 53, 69, 70, 57, 52, 75, 54, 80, 72, 50, 51, 62, 53, 62, 66, 62, 59, 64, 58, 85, 74, 52, 65, 79, 64, 67, 74, 64, 55, 46, 54, 57, 85, 51, 73, 56, 67, 45, 50, 79, 97, 87, 60, 54, 107, 93, 88, 64, 58, 72, 49, 66, 57, 74, 76, 51, 61, 64, 62, 62, 78, 73, 87, 66, 57, 85, 66, 73, 71, 66, 57, 76, 65, 48, 62, 75, 68, 56, 61, 55, 66, 50, 97, 96, 66, 53, 79, 59, 67, 59, 51, 63, 83, 80, 80, 61, 101, 72, 64, 61, 62, 54, 65, 56, 63, 64, 69, 65, 88, 80, 74, 78, 58, 53, 85, 71, 73, 47, 61, 66, 63, 52, 65, 61, 59, 82, 53, 75, 83, 46, 48, 72, 70, 62, 52, 65, 57, 74, 74, 55, 53, 59, 67, 126, 85, 65, 47, 53, 75, 68, 64, 81, 69, 55, 89, 52, 70, 58, 70, 62, 90, 70, 102, 72, 57, 48, 63, 80, 65, 79, 75, 56, 52, 64, 57, 55, 115, 55, 64, 55, 65, 56, 68, 67, 77, 84, 78, 50, 51, 63, 59, 75, 55, 63, 60, 90, 61, 59, 81, 80, 50, 70, 58, 65, 58, 63, 55, 77, 63, 53, 47, 64, 72, 56, 52, 60, 65, 54, 66, 60, 77, 53, 57, 96, 58, 63, 60, 64, 64, 58, 70, 57, 63, 62, 72, 67, 68, 69, 61, 49, 71, 65, 65, 50, 55, 62, 92, 61, 62, 81, 66, 60, 57, 88, 98, 68, 60, 46, 52, 62, 62, 92, 60, 52, 69, 66, 80, 102, 59, 50, 43, 55, 47, 71, 58, 72, 59, 74, 79, 65, 55, 86, 99, 68, 53, 58, 57, 65, 62, 52, 61, 71, 55, 68, 82, 72, 60, 69, 71, 58, 78, 63, 69, 69, 69, 73, 50, 59, 56, 62, 57, 66, 68, 52, 56, 76, 104, 84, 60, 75, 61, 73, 66, 58, 66, 88, 52, 91, 64, 55, 82, 55, 64, 47, 57, 70, 57, 77, 51, 61, 88, 55, 56, 67, 86, 77, 77, 62, 69, 57, 60, 58, 66, 49, 58, 57, 99, 64, 77, 66, 65, 57, 83, 55, 50, 67, 52, 59, 78, 83, 55, 58, 104, 60, 70, 70, 52, 50, 61, 76, 98, 70, 111, 66, 81, 79, 80, 66, 57, 86, 70, 51, 73, 44, 77, 89, 71, 63, 63, 47, 87, 120, 87, 60, 57, 60, 54, 71, 81, 92, 69, 57, 70, 56, 63, 45, 71, 84, 56, 78, 66, 74, 81, 55, 62, 74, 51, 82, 114, 53, 62, 68, 71, 66, 76, 72, 69, 59, 55, 67, 62, 47, 68, 69, 66, 68, 63, 64, 56, 56, 44, 72, 64, 79, 59, 67, 58, 67, 51, 79, 62, 77, 56, 69, 92, 58, 73, 53, 70, 40, 54, 80, 60, 71, 70, 58, 73, 90, 52, 48, 72, 82, 85, 81, 56, 42, 66, 61, 70, 55, 47, 60, 72, 61, 64, 64, 65, 72, 106, 58, 53, 75, 59, 73, 67, 71, 51, 50, 70, 113, 64, 46, 75, 69, 59, 59, 63, 52, 68, 62, 90, 124, 80, 54, 80, 61, 61, 56, 43, 55, 55, 105, 74, 69, 58, 70, 53, 53, 54, 63, 67, 70, 76, 48, 47, 60, 67, 60, 65, 53, 67, 62, 46, 62, 73, 59, 60, 77, 54, 61, 60, 64, 62, 78, 56, 63, 62, 56, 66, 55, 70, 65, 54, 56, 71, 70, 64, 64, 69, 74, 66, 68, 59, 69, 59, 64, 67, 73, 65, 67, 70, 63, 68, 68, 53, 70, 56, 57, 63, 45, 57, 55, 57, 83, 50, 61, 129, 61, 59, 69, 52, 67, 61, 81, 54, 59, 51, 63, 81, 67, 64, 79, 68, 73, 53, 61, 71, 49, 65, 69, 84, 61, 65, 76, 67, 63, 63, 67, 66, 72, 67, 74, 61, 67, 63, 69, 70, 58, 81, 57, 71, 51, 70, 53, 68, 67, 57, 56, 76, 68, 96, 60, 68, 58, 60, 69, 58, 52, 53, 95, 60, 74, 69, 62, 57, 74, 61, 52, 62, 80, 76, 85, 88, 64, 59, 77, 70, 71, 48, 72, 59, 49, 90, 69, 70, 74, 75, 67, 62, 59, 68, 95, 58, 68, 45, 47, 61, 64, 64, 63, 48, 56, 61, 76, 59, 104, 44, 61, 58, 67, 64, 88, 52, 74, 71, 58, 71, 64, 60, 79, 70, 74, 59, 45, 59, 79, 61, 76, 60, 57, 100, 55, 49, 78, 65, 58, 76, 89, 65, 58, 52, 61, 72, 70, 88, 75, 57, 80, 66, 74, 58, 58, 68, 70, 68, 117, 59, 89, 60, 56, 61, 53, 45, 62, 58, 59, 66, 81, 57, 59, 70, 64, 59, 64, 70, 64, 61, 56, 77, 60, 68, 83, 63, 51, 73, 73, 80, 71, 75, 79, 61, 88, 56, 79, 67, 67, 69, 67, 70, 70, 65, 63, 82, 78, 61, 97, 62, 68, 63, 61, 58, 56, 80, 74, 75, 59, 75, 66, 52, 73, 61, 74, 61, 51, 62, 81, 55, 68, 71, 60, 43, 62, 53, 102, 58, 55, 71, 49, 73, 71, 56, 59, 43, 51, 63, 69, 45, 58, 66, 73, 90, 69, 70, 58, 77, 58, 66, 63, 72, 63, 75, 55, 64, 65, 67, 61, 59, 63, 91, 71, 78, 61, 50, 60, 64, 72, 73, 74, 66, 61, 56, 67, 68, 69, 60, 66, 66, 61, 75, 74, 71, 81, 65, 62, 53, 61, 60, 89, 62, 52, 63, 65, 72, 54, 77, 121, 63, 66, 60, 78, 70, 81, 65, 62, 66, 53, 73, 73, 49, 90, 66, 59, 49, 83, 68, 67, 69, 58, 52, 60, 73, 52, 53, 69, 47, 66, 71, 58, 56, 53, 63, 65, 62, 41, 61, 59, 45, 66, 61, 74, 64, 58, 105, 64, 54, 66, 55, 50, 80, 73, 54, 63, 78, 88, 68, 59, 69, 77, 72, 64, 61, 70, 40, 61, 62, 62, 58, 58, 105, 68, 69, 57, 64, 59, 72, 64, 60, 60, 57, 56, 66, 53, 66, 62, 61, 89, 76, 61, 83, 46, 63, 53, 64, 53, 79, 44, 57, 67, 77, 53, 47, 57, 60, 65, 54, 59, 67, 53, 57, 57, 57, 90, 58, 73, 62, 79, 70, 60, 58, 51, 69, 59, 64, 76, 92, 55, 70, 54, 60, 58, 66, 60, 57, 63, 61, 64, 83, 88, 60, 61, 56, 66, 67, 57, 78, 94, 69, 65, 85, 88, 70, 61, 56, 73, 84, 57, 62, 54, 52, 50, 65, 74, 45, 68, 58, 60, 76, 65, 52, 77, 69, 74, 70, 68, 63, 51, 66, 57, 67, 53, 59, 70, 57, 49, 61, 73, 90, 91, 57, 76, 88, 49, 75, 58, 46, 55, 70, 73, 96, 60, 101, 69, 49, 59, 61, 64, 66, 60, 78, 67, 84, 77, 58, 61, 72, 67, 63, 67, 77, 69, 77, 100, 50, 64, 47, 62, 76, 61, 59, 66, 79, 69, 72, 61, 67, 80, 91, 53, 58, 46, 72, 68, 72, 46, 60, 62, 64, 117, 101, 64, 67, 53, 85, 71, 45, 62, 70, 49, 60, 75, 64, 66, 66, 56, 69, 56, 66, 76, 99, 65, 62, 68, 65, 64, 48, 67, 50, 64, 79, 57, 113, 56, 75, 89, 63, 68, 64, 59, 65, 60, 78, 69, 45, 65, 58, 43, 61, 55, 70, 86, 63, 60, 53, 60, 67, 46, 59, 69, 69, 81, 69, 80, 56, 73, 64, 50, 64, 60, 60, 80, 82, 57, 75, 59, 69, 53, 60, 74, 64, 65, 67, 64, 62, 66, 56, 71, 67, 58, 47, 61, 67, 68, 96, 52, 70, 65, 73, 47, 63, 61, 83, 82, 54, 111, 59, 67, 62, 73, 48, 75, 47, 96, 65, 67, 62, 41, 43, 67, 49, 63, 62, 54, 98, 61, 80, 70, 61, 63, 78, 76, 49, 90, 85, 33, 56, 51, 71, 72, 50, 81, 60, 58, 57, 66, 59, 58, 64, 68, 68, 48, 42, 48, 83, 57, 56, 45, 56, 62, 38, 62, 56, 54, 62, 63, 71, 86, 60, 51, 78, 63, 94, 79, 49, 86, 54, 105, 77, 70, 53, 69, 85, 70, 70, 68, 52, 49, 81, 76, 66, 62, 60, 56, 103, 61, 82, 51, 67, 68, 80, 71, 74, 60, 51, 54, 64, 66, 87, 79, 64, 90, 66, 62, 57, 55, 76, 59, 92, 78, 62, 52, 53, 59, 68, 64, 63, 74, 56, 58, 60, 76, 62, 77, 64, 68, 74, 71, 89, 53, 87, 83, 81, 51, 80, 74, 47, 63, 61, 52, 70, 64, 59, 60, 64, 42, 95, 96, 64, 64, 62, 78, 70, 99, 85, 83, 76, 51, 57, 67, 60, 55, 64, 83, 74, 79, 66, 89, 52, 66, 63, 63, 64, 62, 85, 71, 65, 71, 54, 70, 62, 63, 104, 50, 58, 68, 60, 57, 64, 80, 57, 87, 61, 85, 56, 58, 85, 78, 55, 58, 52, 62, 84, 58, 56, 77, 60, 80, 47, 55, 82, 72, 60, 60, 47, 62, 55, 87, 69, 65, 101, 54, 69, 75, 53, 63, 84, 55, 75, 64, 53, 66, 60, 62, 57, 55, 53, 87, 96, 61, 69, 62, 76, 80, 126, 64, 49, 70, 66, 82, 48, 71, 58, 55, 62, 89, 80, 61, 74, 60, 84, 57, 65, 49, 64, 41, 58, 76, 58, 48, 87, 61, 61, 68, 72, 53, 60, 73, 86, 48, 70, 58, 71, 62, 58, 40, 41, 64, 66, 56, 68, 52, 66, 66, 53, 58, 55, 68, 67, 67, 69, 74, 73, 94, 55, 83, 59, 63, 63, 58, 53, 69, 59, 61, 81, 49, 63, 67, 70, 55, 45, 53, 75, 63, 57, 82, 64, 66, 59, 59, 63, 41, 64, 61, 56, 68, 51, 83, 55, 73, 69, 69, 69, 70, 66, 63, 66, 89, 69, 55, 58, 58, 90, 66, 82, 67, 57, 85, 61, 69, 65, 54, 45, 74, 102, 58, 65, 75, 54, 66, 69, 67, 68, 70, 77, 46, 87, 58, 75, 69, 57, 75, 56, 83, 68, 76, 68, 94, 55, 51, 69, 82, 62, 53, 72, 76, 59, 68, 76, 88, 75, 75, 71, 63, 66, 67, 76, 52, 64, 64, 72, 67, 55, 63, 64, 68, 74, 86, 76, 71, 69, 75, 55, 81, 53, 50, 67, 54, 60, 62, 66, 57, 53, 81, 54, 72, 51, 60, 86, 65, 72, 53, 69, 107, 56, 60, 69, 117, 67, 92, 53, 82, 49, 65, 53, 60, 43, 67, 63, 52, 54, 85, 57, 60, 55, 63, 55, 63, 94, 68, 58, 56, 79, 70, 54, 73, 64, 64, 82, 66, 82, 46, 57, 90, 73, 71, 63, 53, 64, 59, 72, 37, 82, 73, 65, 56, 52, 84, 91, 74, 73, 81, 70, 67, 87, 61, 75, 68, 49, 72, 86, 99, 54, 44, 54, 68, 58, 75, 80, 96, 58, 71, 77, 75, 62, 55, 70, 66, 51, 66, 65, 50, 69, 61, 62, 54, 50, 97, 81, 58, 79, 81, 81, 66, 59, 81, 45, 69, 75, 68, 74, 67, 59, 49, 64, 65, 48, 58, 50, 67, 58, 73, 59, 62, 75, 83, 74, 54, 103, 86, 102, 65, 51, 45, 54, 85, 61, 85, 71, 55, 69, 88, 64, 73, 60, 57, 62, 82, 54, 81, 70, 65, 66, 72, 51, 96, 33, 57, 49, 78, 77, 55, 48, 56, 50, 82, 56, 66, 69, 66, 58, 61, 47, 57, 74, 68, 61, 46, 55, 69, 83, 49, 53, 68, 58, 68, 53, 66, 63, 51, 60, 56, 85, 70, 64, 52, 67, 64, 78, 64, 56, 63, 77, 86, 54, 34, 41, 80, 48, 51, 60, 70, 50, 69, 60, 49, 50, 72, 52, 56, 68, 82, 46, 52, 67, 73, 96, 69, 67, 57, 76, 55, 88, 93, 50, 81, 59, 39, 65, 63, 67, 58, 51, 55, 64, 53, 59, 51, 60, 51, 65, 69, 69, 89, 41, 70, 63, 59, 61, 63, 65, 53, 52, 49, 58, 88, 68, 65, 74, 89, 62, 60, 65, 77, 60, 69, 76, 80, 59, 69, 47, 71, 74, 80, 50, 50, 75, 62, 67, 57, 58, 69, 75, 61, 90, 76, 46, 67, 64, 61, 98, 59, 84, 73, 91, 59, 59, 63, 71, 74, 68, 71, 65, 74, 56, 65, 60, 74, 81, 55, 124, 63, 70, 56, 82, 63, 55, 66, 57, 85, 67, 61, 61, 60, 50, 46, 53, 84, 73, 56, 67, 51, 58, 79, 68, 55, 76, 62, 53, 105, 107, 56, 64, 70, 53, 67, 53, 59, 68, 53, 60, 52, 97, 71, 77, 57, 66, 65, 73, 60, 70, 68, 66, 58, 71, 60, 76, 54, 84, 64, 65, 70, 57, 67, 69, 62, 59, 65, 68, 64, 62, 67, 80, 69, 65, 71, 64, 71, 78, 62, 70, 81, 52, 65, 68, 57, 63, 63, 63, 57, 64, 62, 65, 45, 66, 45, 84, 56, 57, 60, 63, 52, 77, 55, 94, 65, 138, 58, 86, 69, 58, 61, 60, 56, 50, 70, 59, 53, 121, 50, 61, 60, 71, 60, 55, 79, 74, 50, 52, 64, 66, 61, 62, 60, 81, 53, 66, 56, 51, 69, 65, 69, 86, 68, 51, 66, 68, 73, 78, 68, 64, 61, 67, 98, 50, 87, 59, 70, 97, 67, 79, 64, 68, 59, 73, 52, 73, 65, 59, 63, 55, 57, 112, 68, 73, 63, 65, 52, 57, 71, 73, 65, 67, 62, 51, 66, 97, 63, 51, 97, 67, 80, 43, 77, 67, 61, 62, 49, 48, 63, 60, 63, 62, 89, 57, 57, 60, 54, 66, 52, 70, 60, 58, 56, 62, 57, 60, 57, 63, 59, 70, 70, 70, 61, 74, 74, 85, 59, 70, 75, 60, 82, 69, 60, 67, 58, 59, 57, 74, 54, 55, 65, 71, 67, 56, 70, 56, 68, 62, 71, 55, 76, 52, 67, 63, 72, 67, 51, 65, 103, 53, 62, 63, 88, 105, 62, 64, 85, 53, 66, 76, 56, 84, 67, 55, 64, 66, 52, 59, 64, 60, 64, 62, 57, 51, 62, 64, 81, 66, 74, 47, 64, 59, 64, 86, 114, 68, 57, 68, 59, 61, 64, 56, 71, 57, 62, 61, 67, 65, 55, 65, 61, 97, 64, 63, 59, 68, 61, 49, 63, 62, 46, 53, 70, 67, 62, 110, 64, 66, 50, 53, 73, 61, 71, 62, 72, 67, 62, 58, 73, 69, 62, 103, 64, 57, 58, 66, 67, 90, 71, 93, 56, 61, 64, 78, 81, 95, 70, 62, 62, 52, 57, 77, 89, 49, 58, 100, 54, 61, 70, 54, 55, 58, 77, 58, 70, 59, 61, 61, 70, 55, 77, 80, 69, 49, 66, 64, 48, 53, 71, 82, 64, 110, 60, 55, 59, 44, 68, 65, 74, 70, 60, 50, 58, 67, 60, 68, 66, 89, 63, 72, 121, 69, 67, 65, 74, 50, 92, 65, 81, 54, 74, 61, 79, 57, 70, 83, 80, 75, 58, 85, 62, 104, 58, 55, 70, 66, 76, 71, 57, 67, 73, 56, 70, 50, 76, 87, 51, 61, 65, 65, 69, 63, 56, 69, 67, 65, 59, 57, 52, 72, 47, 57, 88, 69, 60, 69, 65, 66, 56, 57, 55, 53, 74, 87, 57, 75, 51, 49, 56, 58, 48, 63, 64, 63, 62, 63, 83, 65, 61, 50, 70, 86, 66, 55, 83, 69, 56, 67, 50, 63, 59, 52, 66, 64, 72, 57, 80, 122, 68, 53, 56, 75, 77, 64, 65, 64, 67, 70, 95, 57, 56, 71, 51, 107, 56, 57, 62, 60, 74, 72, 67, 76, 59, 83, 73, 72, 58, 84, 73, 59, 83, 72, 49, 66, 77, 74, 79, 63, 60, 70, 58, 69, 50, 53, 59, 73, 66, 60, 56, 72, 54, 69, 58, 76, 61, 54, 68, 55, 59, 53, 63, 57, 60, 67, 69, 66, 54, 73, 66, 109, 73, 80, 60, 69, 71, 53, 76, 62, 53, 61, 53, 51, 70, 61, 69, 60, 57, 48, 83, 90, 70, 60, 69, 50, 58, 57, 79, 61, 77, 60, 75, 58, 60, 56, 70, 100, 67, 56, 61, 44, 69, 55, 48, 73, 69, 60, 44, 74, 55, 70, 80, 62, 57, 58, 64, 73, 106, 74, 90, 58, 59, 63, 63, 69, 64, 56, 48, 69, 64, 72, 69, 78, 77, 61, 53, 65, 63, 69, 63, 65, 59, 66, 76, 64, 59, 59, 68, 54, 64, 75, 72, 62, 52, 64, 55, 59, 67, 65, 53, 65, 49, 83, 79, 63, 78, 106, 62, 63, 67, 61, 76, 66, 62, 57, 51, 66, 66, 64, 52, 66, 84, 59, 64, 57, 58, 91, 97, 49, 57, 65, 109, 84, 73, 48, 55, 78, 65, 53, 60, 61, 69, 80, 60, 63, 60, 69, 64, 55, 62, 58, 82, 67, 57, 56, 66, 81, 68, 69, 54, 56, 73, 62, 55, 62, 63, 58, 64, 42, 58, 101, 60, 67, 64, 70, 60, 61, 60, 70, 55, 63, 94, 70, 71, 65, 39, 68, 70, 49, 49, 64, 85, 58, 51, 86, 92, 69, 67, 70, 57, 53, 72, 51, 57, 67, 58, 69, 92, 52, 68, 46, 60, 54, 57, 62, 70, 53, 86, 68, 64, 61, 112, 66, 84, 74, 69, 80, 75, 71, 60, 80, 81, 49, 79, 84, 64, 65, 80, 68, 57, 66, 65, 62, 58, 78, 85, 56, 77, 49, 63, 68, 60, 66, 68, 80, 48, 54, 74, 44, 72, 65, 76, 66, 96, 63, 89, 69, 70, 63, 67, 67, 76, 55, 75, 66, 54, 45, 72, 64, 57, 67, 61, 62, 59, 94, 63, 61, 63, 69, 65, 71, 63, 54, 73, 68, 56, 72, 76, 47, 69, 64, 78, 69, 59, 74, 73, 72, 67, 67, 58, 61, 51, 75, 52, 73, 71, 59, 70, 60, 65, 54, 59, 60, 62, 70, 58, 66, 66, 97, 55, 56, 61, 63, 67, 54, 70, 69, 89, 55, 55, 62, 64, 59, 64, 61, 110, 53, 71, 90, 63, 73, 94, 66, 65, 66, 59, 72, 88, 64, 70, 51, 58, 73, 64, 69, 56, 56, 58, 52, 59, 77, 49, 65, 54, 72, 46, 69, 54, 55, 55, 63, 66, 63, 72, 70, 69, 56, 75, 57, 56, 75, 70, 89, 67, 58, 55, 69, 64, 57, 57, 81, 71, 99, 64, 78, 77, 60, 63, 88, 79, 54, 68, 70, 56, 55, 65, 53, 64, 69, 56, 67, 58, 55, 85, 85, 75, 61, 57, 85, 57, 57, 68, 90, 59, 54, 77, 70, 58, 76, 76, 63, 66, 69, 112, 97, 62, 62, 56, 73, 61, 62, 88, 64, 43, 61, 74, 63, 53, 62, 60, 54, 81, 67, 53, 56, 58, 69, 75, 57, 71, 75, 66, 57, 79, 98, 65, 70, 52, 58, 61, 59, 59, 49, 72, 67, 61, 51, 69, 75, 59, 50, 65, 118, 46, 77, 74, 54, 70, 70, 64, 62, 67, 58, 72, 77, 52, 69, 67, 65, 71, 62, 75, 56, 79, 67, 73, 91, 75, 56, 69, 68, 137, 75, 59, 73, 74, 52, 80, 72, 75, 63, 72, 55, 58, 59, 53, 83, 82, 76, 47, 61, 69, 61, 65, 56, 52, 60, 58, 90, 47, 78, 58, 53, 38, 66, 56, 57, 75, 55, 60, 76, 74, 64, 76, 88, 62, 76, 59, 79, 59, 79, 75, 60, 63, 97, 53, 65, 50, 82, 86, 64, 56, 50, 57, 54, 68, 90, 63, 56, 61, 54, 133, 66, 62, 59, 58, 71, 95, 49, 90, 60, 73, 82, 63, 74, 43, 62, 98, 94, 55, 55, 56, 69, 78, 76, 72, 95, 59, 67, 61, 65, 52, 51, 51, 52, 76, 60, 64, 59, 69, 90, 63, 91, 99, 81, 62, 67, 72, 65, 57, 61, 55, 47, 58, 71, 62, 58, 70, 40, 57, 62, 81, 63, 60, 56, 51, 60, 55, 57, 86, 66, 71, 60, 56, 69, 76, 73, 45, 49, 67, 73, 54, 49, 55, 70, 65, 82, 80, 53, 58, 69, 70, 67, 53, 61, 113, 77, 56, 50, 76, 66, 63, 58, 52, 55, 52, 48, 83, 57, 65, 62, 66, 52, 65, 52, 77, 66, 63, 51, 59, 67, 85, 62, 70, 75, 71, 80, 58, 73, 71, 58, 68, 60, 69, 65, 70, 54, 63, 60, 107, 58, 65, 63, 100, 54, 63, 42, 62, 67, 89, 49, 67, 62, 46, 72, 73, 64, 52, 99, 70, 49, 65, 62, 61, 63, 56, 99, 70, 71, 40, 53, 73, 54, 71, 69, 49, 57, 69, 59, 71, 106, 64, 48, 68, 55, 71, 61, 58, 63, 58, 55, 80, 75, 81, 54, 66, 99, 60, 51, 60, 71, 48, 55, 67, 74, 63, 66, 62, 63, 80, 75, 71, 55, 65, 48, 80, 68, 90, 56, 82, 88, 49, 58, 44, 67, 61, 62, 54, 72, 59, 84, 72, 76, 54, 72, 75, 90, 86, 47, 63, 68, 40, 47, 63, 61, 87, 79, 59, 59, 66, 64, 72, 77, 75, 61, 62, 50, 54, 78, 52, 67, 50, 60, 59, 81, 139, 80, 63, 56, 60, 66, 75, 69, 73, 74, 67, 57, 58, 56, 66, 56, 81, 64, 70, 63, 62, 89, 51, 67, 76, 64, 74, 50, 56, 87, 60, 59, 80, 66, 60, 64, 62, 59, 61, 53, 51, 66, 62, 58, 54, 69, 52, 89, 64, 70, 61, 68, 78, 63, 59, 56, 64, 65, 53, 56, 66, 52, 76, 79, 56, 51, 59, 66, 75, 50, 51, 66, 58, 72, 80, 57, 86, 41, 85, 74, 69, 73, 59, 48, 93, 75, 50, 58, 80, 54, 54, 60, 75, 92, 61, 52, 68, 115, 48, 51, 97, 69, 61, 75, 57, 68, 57, 78, 79, 70, 65, 73, 70, 66, 62, 76, 75, 52, 50, 60, 78, 75, 74, 75, 64, 48, 45, 68, 51, 82, 92, 55, 63, 48, 76, 48, 67, 54, 52, 64, 53, 65, 70, 49, 57, 56, 63, 67, 55, 63, 86, 61, 61, 51, 49, 66, 70, 74, 61, 85, 65, 74, 82, 79, 58, 65, 56, 71, 55, 78, 59, 59, 61, 60, 71, 77, 61, 79, 78, 72, 66, 75, 63, 56, 76, 60, 52, 34, 61, 66, 69, 70, 74, 56, 65, 61, 65, 53, 55, 67, 62, 44, 73, 53, 56, 63, 78, 69, 51, 63, 61, 67, 44, 58, 62, 67, 70, 61, 66, 77, 79, 63, 71, 82, 59, 61, 78, 65, 79, 60, 59, 62, 60, 52, 61, 59, 69, 49, 87, 69, 57, 96, 62, 57, 58, 64, 65, 111, 55, 61, 63, 84, 74, 64, 60, 52, 73, 67, 53, 59, 58, 76, 45, 61, 63, 56, 71, 62, 61, 45, 65, 71, 57, 101, 68, 68, 81, 51, 66, 43, 77, 60, 60, 52, 56, 58, 52, 82, 56, 65, 66, 62, 78, 65, 64, 69, 92, 56, 87, 69, 89, 64, 82, 52, 79, 66, 70, 58, 57, 60, 53, 63, 57, 53, 65, 68, 62, 59, 64, 48, 59, 78, 69, 67, 72, 55, 44, 66, 64, 64, 66, 43, 56, 66, 86, 55, 77, 69, 63, 90, 72, 51, 78, 91, 56, 69, 59, 53, 62, 91, 65, 57, 65, 41, 63, 56, 54, 60, 60, 57, 89, 78, 59, 57, 61, 73, 65, 53, 50, 66, 72, 60, 57, 59, 70, 52, 67, 77, 45, 51, 87, 65, 58, 59, 64, 65, 85, 55, 62, 57, 65, 77, 63, 72, 50, 65, 69, 53, 76, 90, 69, 62, 56, 81, 63, 67, 74, 55, 59, 58, 78, 54, 58, 64, 59, 63, 64, 66, 90, 53, 62, 92, 68, 69, 57, 72, 58, 65, 67, 64, 68, 64, 72, 63, 72, 62, 68, 50, 42, 58, 84, 72, 103, 55, 52, 70, 50, 54, 69, 63, 60, 56, 65, 93, 59, 60, 68, 66, 67, 77, 62, 57, 72, 71, 80, 102, 46, 64, 59, 91, 59, 54, 64, 91, 57, 56, 61, 58, 65, 48, 88, 51, 48, 79, 66, 60, 46, 61, 66, 50, 64, 81, 62, 61, 67, 101, 113, 58, 45, 53, 76, 62, 59, 57, 52, 50, 86, 77, 77, 72, 60, 69, 45, 57, 60, 55, 74, 68, 65, 64, 59, 75, 67, 39, 56, 62, 73, 54, 53, 61, 47, 69, 55, 61, 68, 62, 49, 52, 66, 50, 75, 71, 56, 46, 65, 60, 64, 57, 66, 61, 58, 58, 77, 76, 72, 84, 62, 98, 53, 82, 98, 50, 85, 69, 55, 63, 65, 76, 86, 72, 62, 42, 65, 77, 55, 61, 72, 70, 87, 71, 61, 69, 50, 52, 60, 46, 93, 66, 83, 62, 50, 65, 72, 68, 58, 59, 56, 64, 59, 60, 57, 66, 49, 45, 59, 62, 54, 70, 79, 63, 63, 40, 63, 54, 68, 53, 62, 62, 84, 75, 83, 64, 48, 65, 73, 82, 46, 50, 73, 85, 87, 69, 55, 60, 69, 61, 94, 54, 74, 76, 82, 60, 87, 51, 51, 60, 77, 66, 59, 75, 60, 100, 91, 89, 82, 41, 83, 65, 53, 60, 62, 68, 64, 48, 66, 40, 77, 74, 82, 74, 67, 73, 50, 58, 52, 56, 44, 73, 91, 54, 56, 63, 94, 70, 67, 81, 57, 48, 50, 56, 63, 58, 58, 58, 51, 62, 78, 88, 53, 63, 42, 66, 70, 57, 61, 92, 46, 65, 85, 90, 82, 48, 71, 66, 63, 81, 78, 78, 73, 70, 61, 58, 90, 67, 87, 53, 57, 59, 59, 97, 72, 58, 54, 102, 86, 61, 108, 58, 80, 56, 64, 56, 60, 108, 64, 51, 63, 82, 67, 60, 52, 68, 59, 65, 55, 77, 52, 66, 70, 66, 51, 90, 50, 64, 68, 59, 127, 68, 81, 47, 60, 49, 52, 43, 61, 71, 49, 70, 67, 69, 71, 68, 72, 68, 54, 61, 61, 85, 42, 49, 57, 61, 71, 62, 84, 50, 57, 52, 53, 130, 51, 80, 97, 55, 59, 61, 94, 73, 28, 57, 84, 70, 68, 64, 60, 65, 73, 87, 51, 62, 57, 57, 60, 112, 73, 59, 59, 56, 66, 77, 78, 48, 67, 46, 63, 73, 57, 51, 75, 72, 74, 58, 77, 69, 57, 57, 76, 54, 66, 68, 60, 48, 50, 55, 67, 74, 54, 49, 72, 52, 68, 65, 77, 70, 74, 61, 73, 52, 108, 64, 68, 55, 75, 50, 82, 69, 46, 80, 88, 47, 50, 82, 80, 64, 80, 88, 74, 46, 56, 80, 72, 59, 61, 66, 68, 60, 65, 78, 52, 58, 75, 66, 67, 65, 54, 56, 48, 75, 66, 54, 61, 76, 41, 81, 58, 64, 82, 95, 69, 59, 62, 50, 61, 52, 70, 64, 77, 69, 41, 73, 51, 50, 55, 53, 83, 71, 63, 77, 40, 61, 77, 84, 55, 86, 121, 47, 57, 68, 74, 63, 92, 57, 70, 74, 52, 42, 53, 55, 78, 62, 80, 77, 74, 91, 81, 85, 66, 49, 44, 63, 66, 73, 57, 67, 74, 46, 67, 56, 69, 85, 57, 50, 51, 66, 63, 58, 59, 73, 58, 70, 77, 54, 65, 67, 55, 54, 57, 75, 68, 65, 59, 55, 79, 78, 62, 73, 58, 98, 94, 33, 78, 47, 64, 87, 43, 61, 59, 49, 63, 46, 62, 78, 58, 70, 106, 74, 83, 73, 59, 84, 61, 54, 78, 96, 60, 58, 64, 61, 52, 53, 56, 53, 68, 88, 64, 44, 67, 60, 51, 62, 48, 72, 67, 55, 75, 52, 54, 50, 68, 93, 52, 58, 45, 53, 80, 68, 64, 76, 63, 59, 70, 59, 46, 77, 67, 62, 77, 53, 69, 63, 74, 58, 65, 62, 83, 58, 73, 84, 71, 63, 57, 89, 63, 61, 58, 55, 51, 67, 90, 45, 59, 90, 91, 68, 63, 70, 54, 77, 68, 74, 43, 69, 62, 71, 57, 75, 78, 64, 57, 48, 73, 118, 55, 57, 71, 52, 52, 51, 82, 38, 66, 59, 67, 86, 56, 60, 65, 53, 55, 66, 64, 50, 71, 65, 62, 82, 60, 95, 61, 57, 73, 65, 79, 65, 62, 69, 72, 65, 110, 45, 71, 55, 55, 79, 60, 77, 109, 61, 61, 43, 48, 60, 44, 71, 109, 66, 77, 59, 61, 41, 62, 63, 70, 64, 49, 63, 58, 78, 60, 85, 73, 88, 50, 85, 58, 67, 63, 54, 61, 67, 69, 83, 69, 62, 84, 55, 72, 45, 46, 59, 61, 46, 69, 62, 73, 47, 87, 63, 51, 57, 78, 66, 93, 55, 49, 73, 58, 43, 59, 98, 30, 66, 63, 97, 74, 55, 58, 44, 61, 72, 81, 104, 80, 72, 60, 63, 71, 49, 42, 51, 77, 30, 55, 58, 86, 76, 85, 55, 66, 53, 58, 78, 67, 58, 54, 75, 56, 74, 91, 66, 70, 90, 60, 65, 67, 38, 53, 102, 77, 76, 63, 64, 50, 79, 70, 78, 60, 53, 84, 59, 48, 65, 40, 55, 67, 69, 59, 36, 70, 83, 78, 59, 53, 33, 75, 64, 53, 63, 59, 59, 92, 68, 73, 68, 51, 69, 57, 51, 55, 62, 44, 86, 59, 54, 81, 60, 64, 62, 68, 61, 70, 66, 77, 79, 63, 70, 60, 96, 91, 78, 76, 58, 57, 62, 61, 69, 54, 122, 47, 68, 54, 43, 79, 60, 64, 76, 44, 67, 66, 59, 76, 50, 61, 81, 65, 63, 73, 42, 65, 49, 48, 59, 64, 57, 70, 72, 71, 53, 83, 51, 52, 75, 72, 63, 94, 88, 40, 54, 40, 65, 42, 57, 60, 56, 66, 93, 76, 54, 61, 58, 68, 85, 72, 64, 75, 82, 48, 66, 70, 84, 57, 63, 92, 61, 52, 87, 68, 72, 79, 77, 55, 77, 83, 60, 69, 55, 56, 50, 73, 47, 57, 55, 73, 80, 48, 82, 62, 64, 64, 58, 87, 51, 55, 64, 57, 67, 55, 110, 58, 80, 89, 54, 46, 97, 57, 63, 66, 47, 83, 62, 58, 57, 58, 45, 62, 78, 87, 49, 71, 52, 46, 46, 65, 62, 48, 76, 60, 53, 59, 68, 48, 107, 72, 56, 62, 76, 78, 65, 66, 71, 67, 65, 62, 47, 92, 49, 56, 93, 64, 61, 54, 85, 67, 72, 60, 54, 52, 50, 54, 74, 58, 62, 63, 67, 60, 80, 76, 50, 84, 66, 56, 83, 80, 77, 69, 78, 90, 60, 48, 60, 50, 73, 80, 61, 53, 49, 101, 66, 88, 68, 68, 95, 51, 47, 56, 56, 78, 54, 51, 54, 65, 56, 50, 76, 108, 58, 70, 61, 79, 50, 87, 79, 54, 62, 69, 66, 55, 89, 48, 66, 78, 67, 67, 52, 76, 69, 62, 80, 69, 68, 78, 47, 66, 63, 82, 67, 40, 49, 71, 53, 53, 55, 78, 68, 55, 82, 51, 53, 64, 63, 58, 66, 55, 58, 79, 63, 71, 66, 60, 60, 69, 57, 92, 45, 53, 59, 73, 69, 55, 63, 65, 49, 50, 63, 62, 70, 66, 66, 56, 57, 45, 81, 58, 47, 89, 53, 65, 47, 65, 64, 42, 73, 50, 70, 72, 63, 61, 68, 59, 57, 57, 69, 54, 66, 68, 84, 71, 53, 86, 74, 50, 59, 56, 66, 80, 70, 114, 112, 70, 51, 58, 56, 60, 55, 87, 90, 98, 64, 78, 62, 90, 66, 56, 63, 64, 76, 65, 49, 48, 66, 102, 83, 55, 55, 61, 75, 77, 62, 66, 66, 53, 74, 86, 64, 53, 38, 83, 68, 88, 81, 38, 70, 59, 71, 81, 72, 63, 64, 72, 61, 60, 56, 63, 63, 70, 83, 59, 64, 57, 92, 75, 46, 44, 78, 63, 49, 99, 84, 60, 78, 122, 83, 77, 95, 73, 50, 57, 66, 48, 55, 79, 66, 81, 79, 84, 52, 56, 118, 92, 71, 60, 70, 76, 45, 78, 68, 59, 94, 57, 59, 68, 89, 55, 49, 62, 69, 64, 69, 77, 108, 57, 72, 63, 93, 70, 87, 54, 50, 63, 78, 112, 66, 83, 68, 47, 41, 61, 60, 63, 75, 105, 57, 46, 67, 85, 56, 89, 75, 66, 64, 52, 80, 57, 67, 71, 56, 51, 48, 70, 57, 70, 69, 52, 129, 59, 66, 80, 65, 60, 56, 81, 48, 76, 69, 68, 56, 50, 48, 53, 72, 57, 76, 63, 66, 73, 56, 57, 88, 72, 67, 63, 61, 89, 58, 54, 62, 64, 54, 54, 48, 60, 55, 102, 78, 69, 67, 56, 53, 51, 61, 78, 69, 71, 58, 51, 52, 55, 70, 95, 54, 52, 62, 58, 69, 65, 61, 68, 59, 51, 63, 91, 71, 99, 61, 70, 51, 61, 64, 62, 64, 74, 56, 87, 51, 79, 58, 55, 74, 58, 91, 59, 47, 53, 69, 69, 61, 67, 73, 74, 85, 65, 72, 65, 68, 92, 86, 63, 77, 71, 53, 73, 80, 60, 68, 63, 67, 64, 54, 79, 59, 47, 107, 57, 59, 59, 81, 66, 50, 68, 57, 68, 48, 49, 67, 78, 72, 67, 65, 86, 66, 63, 66, 83, 76, 47, 60, 65, 46, 108, 66, 48, 71, 65, 68, 75, 57, 83, 49, 54, 66, 67, 60, 62, 55, 97, 62, 56, 62, 56, 74, 83, 63, 79, 33, 60, 83, 69, 65, 116, 71, 66, 59, 58, 81, 61, 67, 68, 73, 61, 52, 75, 65, 66, 66, 62, 65, 62, 87, 39, 59, 63, 70, 60, 71, 61, 56, 67, 71, 77, 40, 62, 91, 83, 72, 64, 58, 52, 57, 60, 52, 53, 63, 63, 44, 61, 72, 68, 78, 90, 69, 73, 73, 47, 49, 44, 61, 64, 97, 48, 81, 53, 55, 61, 78, 72, 54, 52, 63, 81, 64, 65, 62, 72, 64, 64, 66, 65, 77, 57, 52, 58, 35, 62, 87, 57, 65, 56, 64, 40, 76, 72, 76, 69, 87, 55, 57, 54, 44, 60, 57, 67, 69, 66, 61, 54, 69, 74, 48, 116, 59, 77, 92, 59, 49, 65, 65, 68, 66, 55, 57, 59, 67, 86, 54, 67, 78, 69, 57, 53, 62, 50, 72, 64, 69, 46, 52, 60, 52, 61, 85, 56, 73, 54, 60, 98, 120, 50, 55, 67, 58, 59, 55, 58, 60, 60, 55, 56, 86, 52, 79, 73, 59, 64, 48, 53, 57, 52, 51, 53, 66, 57, 48, 61, 70, 71, 44, 91, 92, 51, 55, 57, 53, 70, 54, 48, 72, 58, 59, 87, 72, 118, 70, 64, 56, 91, 58, 66, 56, 119, 62, 65, 42, 40, 85, 66, 54, 57, 78, 53, 67, 56, 85, 68, 69, 55, 86, 61, 59, 68, 73, 57, 63, 82, 86, 63, 68, 70, 73, 71, 67, 73, 63, 88, 59, 67, 62, 50, 74, 59, 46, 107, 68, 61, 59, 61, 46, 57, 66, 67, 63, 74, 49, 62, 63, 47, 60, 61, 95, 65, 53, 58, 71, 77, 49, 70, 97, 85, 74, 67, 55, 64, 64, 96, 69, 74, 32, 68, 41, 82, 61, 63, 50, 63, 58, 70, 73, 71, 49, 59, 67, 60, 56, 72, 76, 71, 59, 60, 60, 46, 48, 73, 100, 68, 73, 60, 56, 61, 55, 63, 58, 63, 71, 58, 53, 64, 62, 65, 49, 75, 71, 55, 63, 68, 68, 83, 61, 62, 46, 46, 64, 72, 76, 49, 50, 56, 81, 55, 60, 44, 70, 55, 88, 59, 81, 52, 52, 42, 72, 70, 55, 79, 75, 113, 57, 58, 73, 77, 50, 65, 77, 56, 102, 65, 72, 86, 73, 74, 54, 62, 67, 60, 93, 68, 41, 42, 57, 74, 77, 114, 77, 64, 73, 62, 62, 59, 63, 62, 90, 59, 60, 59, 43, 50, 37, 51, 55, 55, 109, 66, 55, 68, 55, 54, 87, 48, 85, 72, 55, 79, 41, 49, 59, 57, 82, 79, 44, 68, 77, 53, 85, 82, 59, 51, 51, 66, 67, 70, 59, 62, 73, 57, 66, 59, 75, 58, 88, 54, 56, 46, 54, 57, 65, 69, 76, 63, 52, 57, 67, 51, 57, 58, 68, 64, 61, 64, 63, 64, 59, 73, 76, 59, 61, 59, 56, 56, 68, 70, 77, 49, 81, 66, 90, 67, 63, 65, 52, 74, 47, 83, 49, 38, 56, 83, 53, 56, 61, 65, 52, 44, 105, 112, 77, 44, 41, 77, 58, 52, 80, 64, 63, 52, 69, 58, 51, 61, 82, 69, 46, 53, 75, 92, 66, 53, 63, 49, 69, 51, 42, 72, 53, 62, 57, 69, 63, 75, 70, 51, 82, 56, 67, 59, 74, 60, 71, 59, 58, 103, 76, 63, 50, 55, 64, 71, 80, 60, 80, 63, 81, 77, 51, 62, 60, 74, 67, 61, 86, 57, 78, 65, 43, 75, 52, 65, 56, 66, 98, 64, 80, 34, 65, 66, 58, 58, 54, 66, 56, 62, 71, 51, 65, 63, 69, 70, 62, 63, 82, 61, 102, 76, 64, 104, 78, 47, 62, 132, 60, 48, 45, 70, 65, 61, 52, 60, 104, 64, 76, 83, 88, 64, 59, 99, 67, 63, 49, 51, 68, 67, 65, 61, 94, 67, 72, 68, 71, 49, 55, 61, 55, 60, 63, 54, 46, 74, 66, 69, 72, 60, 98, 71, 75, 70, 86, 64, 62, 72, 60, 61, 52, 56, 65, 99, 62, 49, 52, 54, 89, 76, 58, 42, 63, 58, 62, 66, 83, 70, 71, 104, 79, 55, 53, 42, 96, 64, 78, 65, 50, 64, 60, 71, 86, 68, 62, 90, 69, 55, 68, 68, 71, 46, 45, 83, 53, 62, 60, 59, 56, 63, 60, 74, 52, 102, 76, 98, 56, 61, 46, 99, 84, 53, 51, 84, 51, 64, 137, 67, 61, 51, 61, 64, 46, 60, 91, 73, 70, 56, 63, 112, 63, 59, 56, 52, 61, 65, 56, 78, 71, 83, 57, 73, 64, 53, 77, 61, 77, 65, 65, 51, 43, 48, 67, 62, 51, 61, 71, 50, 56, 80, 68, 76, 50, 93, 77, 53, 59, 64, 91, 57, 91, 63, 61, 79, 60, 69, 45, 76, 77, 49, 63, 91, 37, 65, 83, 48, 73, 69, 63, 54, 79, 70, 50, 51, 71, 64, 77, 56, 75, 68, 51, 65, 78, 96, 51, 91, 63, 57, 52, 50, 86, 78, 97, 61, 57, 84, 66, 111, 81, 64, 78, 77, 56, 58, 53, 59, 65, 68, 47, 56, 57, 70, 46, 50, 52, 65, 44, 55, 71, 98, 70, 63, 40, 45, 57, 65, 54, 50, 62, 85, 148, 54, 49, 57, 60, 48, 73, 57, 56, 53, 50, 78, 66, 72, 57, 74, 44, 52, 58, 78, 80, 81, 60, 73, 90, 62, 66, 40, 66, 68, 63, 102, 65, 65, 65, 58, 73, 63, 67, 81, 61, 66, 54, 73, 60, 46, 66, 68, 68, 62, 70, 68, 87, 55, 74, 66, 57, 65, 54, 50, 54, 62, 57, 40, 67, 69, 87, 61, 75, 49, 55, 61, 57, 71, 46, 54, 66, 61, 52, 85, 61, 61, 88, 52, 61, 58, 49, 85, 74, 64, 76, 75, 86, 56, 89, 52, 78, 50, 74, 83, 59, 74, 58, 69, 56, 47, 81, 66, 51, 68, 45, 45, 64, 66, 76, 72, 74, 55, 83, 63, 51, 69, 84, 55, 62, 62, 54, 82, 51, 67, 46, 47, 57, 67, 59, 79, 87, 52, 58, 77, 59, 51, 56, 67, 52, 95, 53, 69, 60, 96, 100, 93, 93, 56, 57, 66, 87, 93, 68, 52, 50, 123, 50, 58, 65, 58, 85, 65, 72, 68, 64, 52, 56, 71, 50, 75, 67, 68, 65, 63, 76, 57, 52, 85, 103, 50, 65, 72, 63, 71, 83, 66, 59, 47, 61, 73, 61, 58, 72, 73, 76, 65, 51, 96, 82, 42, 68, 57, 68, 77, 92, 46, 45, 68, 69, 46, 88, 48, 66, 60, 48, 43, 65, 88, 59, 79, 40, 78, 50, 67, 66, 71, 36, 57, 100, 71, 70, 48, 56, 52, 56, 64, 63, 75, 51, 53, 58, 80, 61, 48, 77, 60, 51, 89, 66, 80, 48, 70, 115, 55, 82, 55, 57, 69, 44, 57, 72, 44, 57, 64, 54, 58, 63, 54, 68, 87, 54, 86, 83, 53, 81, 61, 59, 67, 63, 92, 46, 86, 96, 65, 64, 49, 71, 67, 56, 95, 63, 88, 60, 78, 70, 38, 72, 59, 66, 59, 50, 72, 52, 79, 70, 54, 56, 40, 65, 66, 87, 55, 60, 64, 32, 85, 140, 73, 51, 92, 60, 55, 63, 78, 59, 73, 54, 78, 86, 84, 57, 56, 68, 48, 63, 87, 51, 57, 88, 65, 60, 68, 42, 80, 53, 80, 58, 87, 87, 58, 60, 89, 59, 72, 58, 57, 77, 57, 58, 50, 51, 95, 65, 69, 53, 111, 89, 76, 61, 106, 43, 82, 60, 66, 64, 62, 50, 65, 68, 50, 89, 71, 72, 87, 72, 52, 78, 73, 83, 54, 86, 80, 57, 74, 45, 59, 55, 74, 70, 75, 63, 102, 58, 53, 58, 54, 49, 81, 59, 51, 65, 99, 75, 68, 59, 49, 47, 120, 70, 75, 71, 77, 46, 61, 90, 82, 68, 60, 98, 59, 69, 83, 65, 52, 49, 89, 76, 111, 57, 40, 57, 50, 68, 50, 61, 52, 67, 58, 77, 71, 59, 54, 47, 73, 74, 77, 59, 82, 54, 65, 48, 45, 53, 48, 65, 85, 95, 62, 48, 69, 51, 55, 77, 70, 96, 41, 56, 66, 50, 56, 55, 80, 59, 85, 52, 49, 41, 77, 75, 69, 66, 70, 96, 72, 55, 74, 45, 69, 65, 93, 85, 73, 80, 83, 78, 65, 64, 66, 50, 50, 35, 79, 68, 65, 55, 63, 75, 55, 67, 80, 42, 61, 61, 75, 92, 62, 96, 55, 65, 43, 61, 43, 126, 63, 52, 79, 85, 44, 65, 60, 75, 65, 87, 46, 68, 85, 56, 66, 65, 107, 71, 86, 50, 73, 66, 81, 68, 61, 47, 47, 63, 73, 43, 73, 51, 47, 77, 53, 80, 56, 55, 72, 79, 108, 65, 69, 59, 77, 49, 57, 68, 82, 56, 27, 81, 97, 60, 73, 89, 93, 66, 112, 59, 68, 66, 65, 94, 45, 50, 61, 78, 62, 67, 48, 67, 61, 82, 55, 58, 69, 78, 44, 82, 81, 62, 54, 74, 54, 34, 58, 73, 68, 68, 58, 56, 75, 65, 63, 58, 91, 45, 65, 49, 62, 52, 67, 54, 61, 52, 55, 72, 73, 89, 55, 56, 62, 43, 55, 62, 79, 61, 76, 61, 88, 75, 51, 56, 55, 49, 62, 55, 100, 61, 50, 45, 54, 46, 50, 45, 72, 79, 68, 43, 65, 54, 65, 63, 60, 62, 42, 77, 56, 61, 55, 64, 67, 88, 75, 47, 49, 69, 53, 87, 63, 59, 74, 58, 82, 39, 66, 72, 69, 67, 61, 91, 56, 55, 79, 46, 48, 45, 47, 74, 62, 74, 50, 78, 68, 56, 54, 62, 55, 62, 53, 42, 72, 64, 60, 92, 64, 73, 71, 63, 64, 90, 76, 97, 68, 72, 70, 55, 55, 57, 61, 48, 73, 83, 53, 66, 81, 73, 52, 72, 60, 97, 79, 47, 61, 55, 93, 49, 55, 67, 89, 68, 92, 43, 55, 52, 66, 70, 85, 73, 55, 66, 64, 47, 56, 67, 78, 61, 66, 67, 58, 56, 74, 53, 82, 82, 75, 66, 55, 70, 57, 71, 57, 58, 70, 88, 72, 67, 59, 61, 83, 59, 61, 47, 58, 35, 66, 53, 67, 50, 74, 56, 67, 87, 53, 58, 56, 76, 63, 73, 53, 73, 50, 81, 90, 57, 54, 51, 59, 55, 57, 58, 68, 68, 75, 66, 76, 62, 50, 98, 102, 70, 73, 71, 65, 74, 72, 60, 62, 57, 57, 63, 79, 68, 73, 66, 76, 70, 91, 80, 75, 78, 50, 57, 72, 71, 61, 74, 88, 65, 50, 67, 62, 66, 88, 56, 70, 56, 63, 60, 55, 69, 78, 67, 55, 61, 74, 59, 63, 65, 57, 69, 64, 59, 67, 64, 61, 59, 81, 59, 76, 60, 58, 63, 75, 49, 52, 73, 53, 85, 78, 44, 65, 80, 60, 78, 65, 59, 74, 56, 51, 94, 62, 60, 78, 72, 67, 60, 66, 93, 53, 68, 92, 56, 66, 83, 62, 75, 69, 52, 64, 62, 61, 56, 61, 66, 64, 59, 77, 81, 65, 56, 52, 58, 71, 59, 58, 61, 63, 65, 63, 54, 41, 69, 59, 64, 50, 57, 52, 74, 103, 99, 67, 62, 60, 58, 61, 94, 53, 58, 63, 68, 122, 88, 62, 51, 68, 54, 70, 55, 54, 46, 57, 63, 48, 62, 58, 66, 61, 65, 93, 53, 55, 69, 77, 79, 66, 56, 58, 75, 86, 56, 53, 53, 61, 123, 58, 89, 62, 58, 59, 57, 70, 72, 69, 97, 61, 52, 53, 53, 58, 53, 76, 48, 59, 57, 65, 64, 104, 68, 67, 59, 58, 52, 61, 75, 66, 66, 71, 55, 65, 56, 63, 59, 67, 98, 88, 63, 63, 70, 59, 64, 67, 67, 62, 94, 58, 58, 57, 72, 49, 77, 59, 55, 64, 47, 58, 53, 57, 57, 58, 56, 69, 57, 118, 61, 60, 54, 70, 65, 73, 67, 51, 56, 93, 78, 62, 96, 58, 73, 87, 60, 70, 83, 58, 85, 75, 41, 55, 60, 66, 61, 56, 68, 61, 48, 73, 64, 68, 106, 59, 54, 63, 54, 82, 56, 52, 83, 60, 64, 59, 58, 80, 57, 61, 69, 67, 53, 69, 58, 56, 61, 60, 72, 67, 58, 55, 60, 73, 55, 55, 81, 70, 48, 58, 67, 64, 58, 55, 76, 109, 68, 76, 82, 77, 58, 59, 73, 58, 73, 67, 78, 58, 80, 57, 50, 61, 75, 62, 48, 68, 55, 61, 50, 72, 57, 55, 72, 55, 72, 51, 53, 61, 63, 61, 67, 61, 57, 65, 67, 69, 56, 55, 81, 58, 97, 69, 61, 61, 59, 74, 47, 52, 89, 61, 63, 56, 56, 64, 70, 75, 67, 47, 69, 72, 47, 64, 69, 58, 63, 55, 71, 60, 55, 61, 54, 67, 64, 63, 56, 98, 64, 83, 58, 61, 69, 72, 56, 58, 82, 72, 48, 57, 62, 50, 60, 65, 66, 61, 63, 59, 57, 62, 59, 57, 64, 102, 58, 62, 64, 55, 57, 39, 79, 58, 63, 59, 65, 80, 53, 68, 67, 58, 69, 73, 58, 61, 52, 59, 72, 64, 68, 88, 67, 67, 85, 57, 56, 69, 63, 87, 60, 72, 87, 66, 55, 59, 76, 102, 80, 71, 72, 58, 71, 50, 62, 56, 67, 72, 53, 58, 57, 54, 53, 56, 68, 65, 77, 52, 52, 71, 64, 62, 50, 87, 84, 65, 112, 95, 60, 62, 63, 67, 62, 68, 58, 65, 71, 70, 108, 61, 65, 62, 62, 51, 51, 55, 59, 79, 73, 61, 78, 46, 79, 52, 71, 72, 62, 82, 62, 66, 63, 61, 77, 71, 59, 55, 75, 55, 81, 47, 72, 85, 75, 66, 49, 52, 60, 63, 56, 75, 54, 73, 65, 54, 55, 53, 88, 60, 74, 50, 64, 62, 63, 47, 67, 66, 59, 60, 74, 104, 66, 62, 75, 67, 58, 53, 76, 61, 52, 68, 57, 69, 63, 54, 56, 75, 63, 48, 75, 60, 54, 90, 60, 57, 59, 55, 46, 62, 56, 59, 64, 84, 55, 63, 52, 69, 78, 58, 72, 56, 60, 59, 67, 76, 53, 72, 83, 60, 75, 50, 67, 68, 63, 68, 49, 82, 58, 83, 96, 82, 81, 48, 58, 65, 59, 63, 67, 64, 77, 61, 61, 65, 57, 66, 56, 68, 81, 62, 57, 71, 67, 56, 53, 58, 68, 82, 55, 50, 62, 57, 75, 74, 66, 69, 53, 58, 67, 58, 57, 66, 60, 61, 50, 68, 74, 91, 89, 73, 75, 64, 57, 53, 46, 74, 51, 58, 112, 67, 77, 61, 55, 64, 58, 42, 57, 63, 85, 61, 70, 92, 91, 62, 75, 93, 82, 48, 82, 58, 57, 62, 57, 57, 84, 81, 76, 58, 72, 57, 73, 63, 46, 57, 87, 61, 76, 70, 55, 80, 63, 78, 56, 59, 87, 84, 61, 72, 53, 72, 101, 66, 73, 53, 64, 59, 70, 52, 68, 55, 72, 69, 65, 70, 96, 74, 70, 83, 65, 88, 66, 69, 71, 66, 59, 51, 58, 58, 62, 61, 67, 56, 51, 109, 62, 67, 66, 58, 85, 58, 82, 75, 90, 69, 52, 71, 57, 55, 88, 98, 57, 96, 51, 53, 54, 79, 61, 62, 47, 51, 54, 88, 63, 68, 54, 74, 57, 83, 56, 66, 73, 62, 62, 53, 67, 56, 98, 72, 62, 53, 62, 65, 65, 58, 111, 60, 64, 78, 58, 59, 52, 69, 69, 58, 56, 70, 75, 70, 55, 62, 64, 69, 73, 65, 59, 58, 117, 63, 63, 58, 65, 62, 55, 59, 64, 70, 58, 55, 82, 63, 46, 61, 73, 81, 70, 61, 83, 88, 59, 48, 90, 71, 59, 61, 80, 58, 65, 63, 62, 67, 74, 60, 54, 66, 65, 48, 81, 88, 64, 70, 64, 58, 94, 71, 84, 68, 69, 58, 90, 68, 65, 97, 71, 57, 58, 74, 64, 59, 66, 59, 51, 66, 63, 80, 50, 66, 59, 55, 86, 75, 54, 56, 59, 71, 53, 63, 43, 92, 57, 90, 78, 63, 65, 56, 61, 58, 59, 71, 77, 75, 63, 65, 64, 91, 63, 48, 64, 53, 62, 61, 62, 51, 64, 66, 60, 56, 61, 60, 53, 64, 52, 60, 63, 49, 66, 64, 65, 53, 62, 65, 57, 65, 83, 56, 59, 56, 55, 58, 59, 66, 65, 49, 65, 60, 60, 47, 62, 52, 67, 65, 84, 55, 68, 75, 53, 61, 61, 65, 69, 95, 54, 71, 63, 69, 65, 59, 75, 76, 78, 74, 71, 66, 61, 68, 55, 75, 53, 61, 99, 73, 97, 71, 62, 53, 60, 62, 106, 79, 57, 63, 68, 73, 47, 63, 73, 55, 56, 62, 64, 68, 61, 61, 58, 65, 64, 60, 50, 50, 76, 70, 63, 75, 82, 77, 62, 71, 67, 62, 70, 66, 74, 67, 106, 67, 65, 99, 54, 61, 59, 80, 59, 63, 61, 57, 50, 56, 78, 62, 56, 85, 64, 62, 52, 54, 66, 59, 60, 73, 58, 70, 62, 73, 76, 57, 56, 63, 63, 72, 74, 96, 70, 64, 58, 62, 57, 62, 81, 60, 55, 59, 96, 84, 88, 71, 100, 55, 62, 74, 61, 72, 66, 68, 53, 62, 70, 70, 58, 49, 68, 57, 70, 62, 66, 64, 59, 65, 51, 69, 60, 56, 60, 88, 55, 72, 66, 72, 64, 79, 77, 54, 73, 53, 80, 94, 63, 59, 83, 58, 60, 57, 55, 86, 71, 53, 66, 69, 56, 77, 62, 57, 70, 62, 103, 95, 76, 67, 61, 69, 66, 47, 63, 80, 61, 57, 69, 92, 60, 62, 61, 51, 71, 67, 71, 86, 81, 64, 48, 64, 68, 54, 73, 59, 53, 44, 75, 68, 124, 47, 86, 64, 52, 77, 55, 58, 69, 55, 68, 66, 43, 54, 57, 58, 75, 77, 63, 88, 65, 53, 57, 58, 53, 58, 57, 56, 60, 65, 56, 78, 61, 59, 60, 62, 56, 86, 84, 68, 60, 56, 64, 62, 64, 62, 108, 66, 66, 61, 56, 80, 53, 68, 57, 61, 78, 57, 53, 60, 71, 70, 64, 59, 51, 60, 76, 50, 72, 54, 56, 64, 63, 65, 75, 55, 59, 69, 68, 76, 62, 63, 57, 62, 54, 45, 82, 60, 65, 50, 150, 70, 96, 64, 60, 55, 78, 78, 78, 73, 62, 73, 62, 74, 91, 76, 83, 66, 64, 66, 62, 58, 62, 60, 55, 85, 74, 72, 57, 54, 96, 57, 55, 57, 60, 80, 63, 45, 57, 71, 56, 58, 58, 56, 52, 91, 67, 92, 83, 63, 71, 56, 71, 69, 59, 70, 52, 54, 84, 62, 55, 55, 54, 74, 57, 92, 67, 68, 68, 63, 74, 75, 68, 55, 63, 62, 65, 77, 60, 67, 94, 71, 60, 69, 63, 58, 60, 58, 69, 72, 52, 51, 64, 55, 62, 107, 77, 58, 61, 93, 58, 56, 60, 54, 57, 56, 50, 63, 68, 57, 59, 65, 93, 66, 48, 63, 51, 80, 55, 78, 83, 65, 89, 67, 123, 81, 56, 56, 63, 80, 74, 58, 55, 56, 62, 59, 75, 112, 57, 49, 62, 82, 70, 59, 101, 74, 64, 61, 65, 65, 56, 74, 62, 74, 58, 90, 61, 56, 62, 62, 51, 62, 60, 59, 65, 69, 75, 64, 70, 59, 56, 67, 50, 69, 68, 54, 71, 54, 60, 69, 65, 70, 65, 82, 58, 79, 52, 76, 61, 55, 71, 63, 58, 55, 63, 58, 88, 52, 66, 57, 48, 69, 60, 82, 55, 70, 62, 78, 67, 45, 56, 80, 61, 73, 49, 59, 74, 63, 69, 69, 50, 63, 87, 81, 62, 55, 61, 75, 55, 58, 87, 59, 58, 65, 93, 73, 96, 67, 61, 70, 78, 95, 53, 59, 55, 97, 51, 68, 93, 60, 57, 68, 72, 69, 107, 68, 55, 65, 72, 57, 74, 77, 52, 64, 55, 71, 64, 59, 59, 46, 69, 69, 70, 92, 55, 62, 65, 59, 62, 67, 60, 64, 87, 61, 51, 90, 65, 58, 106, 56, 53, 73, 70, 112, 105, 55, 59, 62, 69, 43, 64, 77, 61, 62, 57, 68, 86, 62, 56, 58, 58, 54, 55, 48, 68, 77, 66, 58, 69, 65, 57, 52, 54, 61, 56, 61, 55, 60, 57, 80, 61, 70, 68, 62, 63, 50, 65, 57, 49, 59, 68, 70, 66, 55, 61, 69, 65, 59, 49, 103, 63, 59, 63, 58, 62, 55, 64, 74, 45, 65, 62, 64, 53, 59, 67, 54, 55, 56, 72, 59, 66, 59, 66, 60, 55, 64, 75, 78, 69, 53, 56, 58, 142, 63, 57, 63, 56, 65, 98, 82, 57, 101, 61, 59, 75, 57, 70, 81, 59, 67, 56, 67, 62, 48, 73, 70, 74, 76, 62, 58, 63, 70, 54, 68, 49, 60, 52, 61, 68, 70, 58, 70, 46, 70, 63, 46, 65, 53, 56, 58, 64, 52, 63, 56, 50, 76, 65, 81, 76, 62, 61, 65, 63, 60, 69, 52, 76, 71, 94, 54, 60, 57, 70, 62, 69, 62, 52, 61, 64, 61, 77, 51, 68, 61, 84, 57, 65, 59, 68, 69, 54, 66, 69, 53, 71, 63, 68, 59, 67, 48, 64, 65, 78, 94, 64, 67, 60, 50, 72, 48, 64, 54, 73, 69, 65, 64, 69, 70, 95, 67, 67, 55, 60, 59, 62, 62, 63, 64, 57, 109, 58, 81, 55, 71, 58, 64, 80, 55, 68, 58, 60, 66, 60, 63, 55, 51, 70, 63, 62, 60, 78, 68, 62, 52, 72, 50, 55, 59, 62, 98, 62, 43, 53, 77, 71, 69, 65, 107, 65, 55, 60, 71, 62, 66, 66, 81, 78, 64, 74, 69, 93, 63, 60, 59, 63, 61, 68, 57, 49, 57, 62, 67, 55, 57, 74, 70, 81, 71, 57, 59, 45, 68, 51, 60, 60, 48, 79, 56, 78, 56, 92, 53, 54, 77, 61, 67, 53, 57, 78, 59, 77, 50, 72, 59, 58, 65, 61, 75, 69, 75, 71, 52, 70, 59, 66, 56, 73, 86, 59, 54, 59, 62, 76, 59, 55, 84, 57, 60, 60, 61, 63, 66, 69, 71, 71, 60, 79, 49, 77, 80, 62, 78, 56, 68, 63, 72, 56, 77, 76, 62, 61, 55, 60, 56, 66, 67, 57, 73, 75, 63, 62, 56, 69, 59, 60, 60, 56, 63, 48, 63, 68, 70, 82, 61, 65, 63, 67, 57, 64, 86, 74, 75, 50, 55, 58, 39, 62, 58, 82, 73, 65, 81, 48, 61, 65, 72, 71, 91, 87, 82, 51, 84, 61, 65, 77, 63, 86, 63, 44, 50, 49, 69, 62, 64, 73, 72, 61, 71, 75, 55, 47, 63, 84, 71, 64, 80, 75, 70, 73, 67, 49, 78, 70, 53, 56, 68, 64, 89, 58, 79, 77, 54, 71, 67, 62, 67, 109, 67, 101, 84, 66, 76, 46, 77, 67, 52, 65, 73, 52, 66, 74, 61, 61, 94, 99, 69, 63, 70, 47, 55, 43, 62, 82, 52, 78, 87, 55, 81, 58, 50, 83, 70, 57, 52, 51, 71, 59, 58, 58, 99, 77, 62, 53, 86, 67, 44, 46, 58, 64, 55, 77, 54, 52, 61, 71, 64, 57, 48, 55, 59, 49, 64, 56, 47, 58, 59, 59, 77, 56, 71, 69, 59, 73, 52, 61, 78, 64, 119, 81, 80, 53, 73, 58, 72, 64, 50, 71, 58, 90, 70, 81, 69, 107, 56, 60, 92, 56, 54, 64, 60, 59, 66, 64, 71, 85, 62, 74, 65, 97, 53, 48, 52, 90, 65, 75, 71, 61, 51, 60, 78, 55, 58, 54, 71, 73, 53, 63, 56, 59, 53, 82, 94, 46, 56, 60, 51, 60, 61, 83, 53, 66, 56, 62, 69, 68, 60, 71, 51, 82, 65, 109, 90, 58, 52, 46, 68, 75, 57, 59, 104, 63, 59, 75, 87, 59, 62, 73, 64, 49, 48, 58, 69, 89, 50, 69, 81, 56, 59, 59, 55, 71, 59, 56, 81, 85, 63, 74, 62, 53, 64, 76, 53, 64, 81, 57, 61, 58, 46, 47, 58, 67, 74, 51, 81, 60, 55, 67, 50, 65, 62, 61, 73, 64, 68, 53, 82, 53, 40, 63, 87, 68, 64, 97, 62, 53, 49, 66, 60, 48, 55, 98, 61, 75, 89, 65, 40, 68, 54, 71, 59, 77, 57, 54, 71, 72, 71, 65, 59, 59, 68, 42, 52, 64, 63, 87, 69, 82, 62, 38, 58, 52, 57, 89, 48, 59, 58, 68, 72, 55, 44, 78, 62, 84, 55, 74, 89, 97, 64, 60, 55, 76, 77, 56, 64, 65, 66, 43, 57, 87, 71, 59, 55, 42, 63, 61, 49, 47, 58, 58, 61, 69, 37, 54, 62, 96, 63, 53, 62, 57, 90, 48, 72, 63, 55, 72, 59, 79, 78, 101, 69, 62, 79, 83, 50, 59, 66, 47, 63, 56, 61, 58, 73, 60, 74, 61, 65, 54, 54, 56, 72, 85, 63, 74, 62, 73, 69, 77, 56, 69, 60, 58, 54, 62, 70, 68, 75, 67, 79, 73, 57, 59, 50, 70, 82, 74, 71, 63, 54, 48, 116, 94, 60, 65, 81, 56, 78, 54, 57, 69, 30, 67, 96, 65, 45, 59, 35, 87, 62, 55, 59, 80, 92, 94, 88, 72, 72, 73, 68, 114, 86, 55, 78, 65, 85, 55, 49, 50, 71, 68, 61, 57, 136, 69, 57, 65, 82, 56, 66, 71, 69, 62, 80, 44, 65, 60, 69, 65, 56, 67, 84, 59, 56, 83, 65, 46, 54, 69, 65, 50, 65, 66, 64, 75, 49, 61, 54, 63, 70, 60, 49, 76, 71, 59, 76, 82, 70, 45, 78, 52, 56, 71, 73, 66, 49, 55, 68, 74, 79, 75, 64, 71, 60, 61, 52, 42, 66, 66, 51, 60, 48, 52, 73, 74, 53, 74, 67, 65, 77, 88, 52, 57, 48, 73, 64, 62, 53, 83, 69, 62, 64, 66, 70, 61, 67, 62, 59, 65, 45, 104, 58, 87, 49, 85, 84, 65, 82, 67, 53, 70, 82, 59, 67, 74, 61, 59, 70, 55, 55, 97, 63, 54, 55, 52, 52, 89, 50, 59, 53, 71, 58, 91, 56, 45, 63, 72, 48, 94, 64, 70, 69, 48, 58, 63, 54, 67, 83, 76, 61, 52, 89, 60, 80, 113, 50, 66, 71, 71, 127, 67, 76, 60, 53, 81, 69, 57, 84, 72, 57, 64, 74, 66, 84, 58, 80, 51, 56, 54, 95, 65, 65, 55, 50, 43, 43, 56, 48, 60, 59, 40, 57, 58, 63, 71, 88, 88, 94, 66, 56, 65, 77, 66, 72, 66, 56, 75, 56, 66, 71, 103, 56, 67, 81, 94, 78, 80, 71, 62, 64, 78, 73, 60, 87, 67, 62, 52, 60, 56, 72, 94, 82, 59, 62, 58, 77, 61, 64, 61, 58, 56, 63, 56, 85, 65, 81, 50, 67, 145, 59, 61, 68, 28, 63, 74, 63, 61, 86, 42, 60, 68, 69, 73, 64, 54, 74, 57, 57, 60, 67, 58, 52, 62, 70, 52, 61, 70, 67, 60, 73, 74, 59, 63, 62, 58, 62, 69, 46, 56, 78, 65, 78, 58, 52, 88, 83, 63, 53, 68, 60, 71, 62, 69, 53, 63, 58, 53, 56, 62, 60, 47, 58, 59, 56, 86, 57, 83, 55, 80, 52, 71, 49, 59, 75, 54, 68, 80, 71, 63, 63, 77, 63, 59, 53, 67, 53, 56, 78, 48, 102, 74, 61, 67, 66, 67, 75, 54, 68, 67, 84, 51, 51, 57, 44, 69, 60, 59, 64, 56, 50, 64, 53, 67, 62, 65, 61, 65, 56, 53, 85, 60, 69, 58, 63, 63, 111, 65, 67, 57, 79, 54, 69, 51, 70, 57, 61, 63, 54, 84, 70, 61, 54, 52, 59, 52, 48, 71, 67, 81, 69, 61, 53, 64, 53, 75, 78, 81, 72, 59, 65, 56, 68, 52, 124, 59, 65, 57, 68, 64, 59, 70, 74, 69, 73, 50, 67, 98, 80, 67, 80, 86, 75, 67, 53, 57, 91, 70, 62, 64, 65, 65, 87, 75, 59, 62, 51, 54, 77, 45, 69, 42, 61, 57, 67, 58, 65, 94, 57, 64, 75, 52, 61, 78, 66, 82, 48, 46, 77, 73, 59, 66, 61, 63, 43, 68, 59, 80, 61, 67, 92, 69, 67, 51, 83, 57, 63, 57, 64, 72, 81, 64, 60, 57, 38, 61, 66, 47, 50, 68, 85, 66, 53, 99, 87, 52, 54, 67, 55, 68, 75, 65, 86, 72, 55, 69, 68, 58, 62, 76, 65, 48, 56, 65, 46, 102, 75, 52, 61, 71, 51, 58, 75, 54, 76, 61, 59, 58, 68, 68, 53, 66, 76, 55, 64, 48, 65, 61, 67, 51, 42, 55, 64, 89, 60, 86, 76, 73, 69, 72, 80, 58, 83, 61, 61, 62, 58, 65, 71, 80, 63, 60, 44, 74, 51, 64, 65, 63, 61, 75, 65, 54, 74, 56, 51, 69, 59, 55, 62, 83, 79, 66, 65, 65, 49, 94, 70, 74, 68, 62, 53, 63, 57, 76, 49, 59, 58, 75, 67, 67, 71, 55, 63, 118, 77, 86, 88, 78, 52, 66, 45, 71, 66, 63, 72, 61, 62, 75, 66, 69, 59, 65, 73, 59, 59, 55, 66, 70, 70, 83, 57, 60, 64, 80, 62, 55, 67, 75, 82, 67, 61, 53, 75, 63, 73, 68, 79, 74, 62, 63, 49, 57, 68, 74, 59, 49, 67, 53, 57, 58, 64, 68, 64, 69, 70, 64, 64, 86, 63, 59, 57, 80, 49, 64, 62, 80, 74, 56, 62, 63, 54, 63, 57, 70, 106, 69, 66, 56, 52, 77, 59, 67, 62, 49, 56, 99, 76, 58, 73, 56, 74, 72, 72, 66, 59, 78, 67, 60, 60, 66, 62, 72, 52, 84, 47, 85, 60, 60, 63, 87, 66, 82, 61, 55, 64, 66, 60, 69, 71, 56, 67, 74, 64, 61, 67, 53, 49, 77, 65, 63, 61, 66, 55, 47, 78, 63, 67, 60, 75, 55, 64, 60, 51, 56, 56, 59, 50, 97, 62, 79, 45, 57, 69, 70, 65, 64, 104, 75, 63, 69, 62, 58, 71, 59, 53, 76, 74, 57, 68, 112, 64, 53, 72, 70, 57, 56, 53, 71, 64, 77, 90, 96, 65, 77, 64, 52, 58, 92, 59, 59, 67, 59, 76, 80, 54, 80, 63, 79, 90, 77, 88, 57, 57, 67, 57, 56, 50, 69, 70, 70, 58, 77, 55, 70, 63, 66, 78, 67, 43, 67, 62, 52, 61, 72, 51, 75, 59, 97, 54, 68, 73, 66, 51, 88, 51, 74, 70, 76, 44, 66, 53, 72, 74, 58, 81, 60, 56, 50, 50, 57, 60, 71, 58, 67, 55, 73, 59, 52, 68, 111, 63, 67, 63, 62, 77, 62, 63, 87, 55, 56, 63, 87, 59, 84, 57, 61, 62, 89, 71, 66, 62, 84, 76, 65, 51, 96, 56, 76, 60, 67, 83, 81, 66, 69, 53, 69, 83, 76, 80, 57, 56, 116, 64, 57, 52, 51, 68, 60, 59, 66, 55, 58, 55, 80, 63, 85, 67, 78, 91, 95, 62, 74, 54, 60, 58, 59, 54, 58, 84, 62, 67, 57, 50, 68, 47, 59, 77, 55, 72, 49, 58, 71, 74, 76, 77, 54, 60, 68, 68, 59, 85, 80, 77, 66, 73, 49, 58, 55, 62, 77, 56, 67, 64, 57, 54, 55, 104, 83, 75, 52, 66, 75, 68, 61, 68, 53, 58, 42, 79, 83, 64, 68, 44, 84, 74, 58, 60, 60, 90, 53, 90, 59, 56, 66, 65, 124, 68, 65, 70, 67, 90, 54, 54, 57, 68, 51, 59, 54, 124, 69, 61, 73, 69, 72, 72, 79, 57, 58, 83, 68, 54, 58, 64, 65, 63, 72, 56, 58, 75, 77, 56, 61, 64, 48, 77, 66, 57, 49, 60, 76, 59, 69, 68, 86, 67, 62, 50, 63, 74, 58, 57, 74, 59, 90, 61, 65, 41, 64, 65, 58, 44, 62, 94, 71, 65, 85, 74, 59, 55, 54, 71, 54, 49, 69, 70, 61, 63, 43, 43, 51, 66, 59, 61, 73, 93, 80, 52, 54, 74, 84, 58, 65, 58, 74, 71, 61, 61, 57, 71, 78, 47, 63, 59, 79, 57, 102, 47, 96, 58, 64, 107, 84, 70, 67, 58, 79, 64, 65, 52, 67, 52, 51, 61, 58, 71, 118, 57, 57, 65, 73, 60, 110, 69, 63, 69, 69, 59, 108, 63, 55, 49, 59, 67, 70, 74, 67, 70, 60, 63, 63, 79, 70, 79, 91, 58, 57, 68, 82, 56, 127, 68, 52, 58, 83, 113, 64, 84, 59, 54, 79, 66, 56, 59, 69, 61, 60, 73, 84, 55, 67, 63, 59, 75, 65, 79, 50, 66, 53, 55, 64, 79, 48, 72, 53, 62, 66, 56, 62, 56, 79, 84, 56, 116, 65, 61, 36, 55, 78, 48, 63, 61, 62, 56, 66, 78, 68, 43, 58, 68, 66, 56, 88, 48, 72, 59, 64, 56, 77, 54, 73, 69, 56, 54, 56, 72, 58, 59, 57, 83, 84, 63, 61, 55, 54, 58, 59, 71, 56, 61, 61, 67, 70, 92, 119, 105, 56, 47, 63, 60, 67, 63, 65, 67, 81, 65, 57, 61, 50, 62, 66, 53, 58, 68, 59, 63, 57, 50, 51, 59, 59, 48, 70, 67, 53, 73, 64, 67, 60, 70, 50, 66, 72, 65, 40, 75, 46, 63, 66, 55, 67, 48, 69, 59, 76, 63, 61, 65, 69, 62, 72, 65, 60, 72, 61, 50, 68, 76, 59, 55, 76, 61, 74, 56, 73, 56, 62, 54, 61, 66, 52, 66, 71, 63, 60, 58, 91, 60, 70, 59, 51, 63, 58, 80, 60, 106, 55, 62, 68, 55, 48, 81, 62, 85, 71, 62, 51, 59, 59, 72, 69, 52, 72, 59, 75, 59, 76, 59, 76, 74, 59, 54, 56, 70, 62, 72, 52, 61, 60, 63, 51, 99, 57, 67, 50, 69, 58, 60, 70, 69, 68, 49, 55, 54, 86, 73, 66, 73, 48, 55, 62, 62, 42, 69, 59, 63, 55, 62, 78, 65, 85, 84, 57, 58, 89, 51, 55, 60, 78, 120, 62, 55, 67, 64, 66, 52, 58, 80, 66, 60, 52, 69, 88, 57, 59, 74, 71, 62, 61, 55, 73, 57, 51, 37, 66, 61, 90, 54, 60, 63, 57, 68, 61, 51, 70, 60, 61, 65, 59, 84, 63, 56, 110, 77, 77, 65, 55, 64, 68, 49, 73, 68, 74, 101, 76, 64, 87, 68, 57, 74, 53, 62, 73, 68, 52, 67, 63, 59, 53, 66, 55, 53, 48, 61, 78, 70, 58, 52, 54, 56, 61, 67, 66, 54, 51, 67, 74, 65, 70, 75, 46, 54, 65, 64, 74, 60, 45, 57, 76, 87, 55, 67, 65, 54, 61, 57, 67, 68, 76, 53, 107, 70, 61, 59, 75, 60, 57, 68, 55, 66, 63, 59, 84, 78, 57, 51, 65, 50, 47, 56, 57, 48, 60, 44, 59, 57, 51, 57, 50, 80, 48, 63, 68, 72, 56, 58, 67, 58, 63, 56, 66, 60, 60, 81, 52, 82, 56, 71, 50, 65, 58, 62, 56, 79, 51, 57, 66, 73, 71, 66, 76, 67, 77, 64, 76, 64, 92, 68, 62, 64, 69, 54, 50, 66, 59, 51, 66, 66, 55, 88, 65, 58, 61, 69, 59, 71, 68, 78, 96, 67, 58, 77, 62, 61, 66, 59, 102, 69, 57, 83, 55, 71, 53, 72, 67, 83, 50, 56, 69, 55, 55, 65, 71, 53, 74, 51, 67, 54, 71, 65, 61, 65, 101, 64, 68, 70, 57, 50, 68, 65, 95, 51, 78, 57, 71, 67, 54, 60, 70, 70, 59, 61, 53, 72, 55, 63, 52, 55, 58, 65, 60, 60, 62, 73, 64, 71, 56, 78, 62, 61, 66, 60, 67, 64, 51, 54, 76, 55, 54, 103, 60, 66, 66, 64, 61, 61, 65, 63, 66, 69, 65, 76, 87, 63, 118, 70, 62, 61, 64, 59, 63, 62, 51, 54, 64, 54, 59, 71, 69, 78, 77, 61, 67, 57, 65, 49, 49, 69, 61, 52, 60, 56, 73, 68, 57, 73, 68, 63, 58, 79, 52, 65, 75, 79, 59, 61, 53, 75, 53, 61, 54, 73, 68, 51, 66, 56, 56, 71, 70, 59, 73, 63, 93, 120, 57, 63, 66, 73, 61, 65, 49, 91, 78, 55, 61, 90, 48, 71, 61, 83, 62, 63, 60, 59, 103, 71, 51, 78, 68, 62, 78, 55, 59, 45, 49, 75, 113, 72, 59, 61, 71, 64, 70, 64, 63, 59, 58, 64, 54, 65, 56, 63, 76, 58, 58, 86, 63, 63, 65, 47, 72, 57, 50, 61, 61, 55, 69, 63, 60, 46, 53, 62, 55, 60, 82, 57, 59, 58, 64, 61, 54, 60, 99, 54, 58, 68, 63, 65, 102, 63, 59, 73, 71, 53, 66, 55, 54, 57, 54, 63, 61, 62, 78, 80, 71, 55, 70, 53, 63, 67, 68, 60, 70, 71, 65, 78, 74, 53, 47, 66, 61, 45, 83, 44, 65, 55, 107, 67, 73, 57, 55, 60, 79, 39, 66, 79, 71, 47, 63, 62, 91, 59, 76, 77, 59, 68, 56, 61, 56, 50, 58, 61, 87, 57, 51, 61, 104, 60, 60, 54, 54, 92, 60, 60, 63, 59, 64, 51, 63, 58, 47, 73, 78, 85, 68, 49, 74, 53, 50, 60, 52, 53, 72, 60, 55, 95, 61, 65, 58, 72, 47, 72, 80, 62, 74, 56, 70, 54, 82, 57, 77, 59, 70, 56, 55, 65, 83, 69, 53, 61, 73, 84, 56, 57, 61, 59, 74, 50, 62, 59, 60, 89, 81, 74, 62, 69, 64, 65, 81, 57, 66, 64, 69, 84, 66, 58, 64, 82, 107, 71, 83, 63, 63, 92, 43, 65, 69, 63, 66, 65, 104, 75, 53, 60, 63, 94, 64, 56, 62, 68, 57, 51, 83, 135, 67, 60, 48, 61, 80, 44, 74, 75, 52, 82, 50, 62, 63, 68, 53, 66, 61, 58, 75, 83, 63, 64, 66, 63, 67, 45, 59, 66, 74, 48, 58, 60, 59, 61, 91, 96, 68, 46, 62, 50, 55, 67, 64, 68, 75, 100, 71, 67, 73, 57, 65, 51, 65, 75, 67, 65, 54, 56, 91, 71, 79, 74, 68, 77, 72, 56, 66, 52, 60, 65, 56, 86, 67, 72, 72, 50, 78, 53, 74, 58, 88, 73, 58, 67, 96, 91, 61, 54, 57, 67, 88, 59, 77, 66, 66, 68, 108, 64, 96, 57, 79, 74, 83, 85, 57, 52, 83, 57, 53, 72, 72, 51, 86, 59, 77, 57, 96, 51, 55, 54, 47, 63, 83, 62, 76, 56, 57, 82, 63, 64, 52, 63, 78, 58, 75, 81, 61, 62, 54, 58, 63, 58, 85, 46, 87, 72, 58, 53, 69, 51, 117, 52, 62, 68, 67, 107, 58, 82, 56, 66, 59, 58, 59, 54, 61, 56, 54, 61, 82, 85, 81, 79, 61, 68, 59, 43, 57, 69, 60, 61, 55, 59, 70, 76, 50, 70, 53, 67, 65, 54, 57, 94, 48, 38, 60, 63, 102, 40, 65, 65, 49, 85, 74, 55, 57, 68, 81, 63, 51, 51, 60, 108, 101, 62, 64, 53, 71, 49, 74, 67, 84, 57, 83, 55, 58, 72, 78, 62, 54, 57, 77, 75, 63, 72, 69, 61, 69, 58, 70, 58, 67, 39, 68, 81, 124, 79, 63, 51, 53, 68, 63, 79, 59, 74, 76, 74, 73, 69, 51, 82, 62, 65, 59, 55, 57, 64, 55, 68, 69, 67, 67, 84, 75, 65, 53, 67, 76, 58, 52, 84, 71, 63, 57, 49, 68, 57, 60, 70, 81, 56, 61, 56, 70, 56, 59, 51, 90, 64, 52, 65, 77, 68, 57, 80, 75, 62, 65, 57, 68, 77, 87, 90, 61, 58, 77, 58, 51, 61, 64, 57, 66, 63, 74, 56, 76, 61, 79, 69, 54, 56, 72, 53, 68, 93, 56, 65, 57, 65, 59, 54, 76, 74, 59, 71, 66, 88, 52, 62, 62, 69, 67, 66, 57, 67, 50, 57, 64, 65, 64, 54, 79, 59, 58, 65, 53, 86, 66, 65, 59, 69, 55, 107, 84, 77, 53, 79, 62, 59, 59, 59, 68, 61, 62, 75, 92, 67, 50, 44, 51, 64, 51, 58, 95, 52, 44, 76, 59, 66, 58, 52, 54, 82, 96, 82, 91, 65, 52, 66, 54, 112, 62, 54, 59, 60, 55, 72, 56, 78, 59, 68, 55, 77, 106, 55, 55, 72, 59, 70, 73, 62, 66, 71, 59, 57, 55, 75, 72, 55, 84, 74, 63, 53, 58, 48, 52, 53, 67, 59, 88, 62, 78, 63, 91, 49, 71, 73, 41, 57, 53, 68, 87, 55, 49, 66, 78, 62, 78, 67, 58, 52, 66, 63, 66, 78, 67, 64, 86, 80, 59, 100, 67, 62, 59, 53, 59, 45, 53, 55, 66, 73, 69, 63, 57, 68, 56, 88, 65, 68, 82, 63, 67, 89, 42, 69, 61, 61, 70, 66, 70, 81, 71, 70, 68, 67, 72, 66, 53, 54, 64, 67, 75, 60, 64, 52, 73, 53, 67, 55, 70, 70, 61, 52, 62, 57, 59, 64, 59, 53, 68, 64, 66, 71, 51, 72, 63, 63, 50, 45, 56, 72, 50, 51, 64, 67, 70, 55, 67, 46, 54, 89, 86, 59, 73, 74, 64, 59, 65, 74, 82, 77, 61, 68, 65, 63, 76, 63, 56, 70, 65, 99, 74, 76, 66, 51, 67, 49, 91, 92, 62, 59, 86, 69, 56, 62, 45, 66, 70, 51, 67, 75, 53, 58, 61, 51, 70, 60, 64, 53, 84, 57, 78, 58, 59, 54, 52, 68, 76, 65, 63, 57, 62, 66, 78, 68, 60, 73, 89, 50, 67, 57, 66, 60, 61, 64, 85, 60, 67, 75, 47, 73, 53, 66, 59, 54, 77, 56, 72, 67, 71, 58, 65, 63, 72, 65, 82, 71, 55, 79, 66, 58, 55, 62, 100, 61, 53, 70, 56, 62, 58, 50, 60, 48, 62, 84, 64, 107, 56, 66, 60, 61, 60, 58, 72, 72, 60, 70, 72, 56, 53, 135, 75, 78, 60, 69, 77, 66, 58, 70, 63, 64, 94, 60, 105, 75, 80, 52, 55, 57, 71, 61, 55, 52, 64, 53, 77, 57, 67, 67, 80, 60, 73, 62, 59, 62, 72, 56, 42, 53, 50, 66, 68, 58, 61, 65, 64, 84, 62, 67, 72, 78, 68, 65, 87, 63, 82, 71, 54, 60, 76, 68, 73, 83, 64, 62, 79, 66, 68, 71, 72, 60, 61, 69, 72, 55, 65, 46, 66, 71, 69, 61, 55, 90, 68, 62, 68, 74, 65, 62, 54, 64, 63, 50, 61, 62, 109, 59, 66, 80, 59, 59, 71, 75, 63, 77, 47, 61, 67, 59, 70, 81, 62, 70, 69, 62, 70, 107, 57, 79, 63, 48, 73, 57, 68, 58, 54, 64, 66, 61, 68, 49, 64, 98, 56, 80, 65, 49, 58, 38, 61, 55, 63, 96, 57, 63, 49, 54, 60, 58, 56, 46, 55, 68, 56, 67, 57, 64, 56, 77, 56, 65, 65, 62, 57, 85, 88, 74, 66, 61, 58, 48, 57, 63, 58, 48, 63, 61, 50, 75, 54, 65, 64, 85, 50, 67, 120, 60, 60, 62, 80, 55, 50, 57, 68, 62, 66, 77, 64, 64, 69, 55, 71, 53, 77, 69, 50, 92, 72, 85, 87, 69, 67, 85, 58, 62, 66, 83, 61, 71, 57, 58, 63, 67, 62, 65, 56, 65, 62, 96, 60, 52, 58, 93, 60, 73, 71, 60, 52, 87, 61, 66, 62, 86, 67, 76, 49, 102, 65, 65, 59, 62, 54, 59, 61, 77, 79, 82, 65, 55, 71, 59, 92, 85, 82, 69, 69, 58, 70, 58, 132, 75, 79, 61, 59, 56, 54, 59, 67, 64, 79, 46, 73, 58, 75, 52, 72, 58, 53, 74, 61, 91, 51, 70, 64, 69, 62, 55, 57, 83, 36, 61, 64, 52, 41, 118, 75, 54, 68, 85, 64, 70, 80, 68, 72, 79, 53, 53, 70, 61, 84, 56, 92, 61, 67, 78, 52, 89, 65, 65, 87, 54, 69, 64, 49, 85, 56, 45, 58, 65, 46, 63, 67, 80, 67, 55, 76, 80, 53, 64, 71, 69, 78, 63, 64, 54, 58, 59, 62, 73, 74, 59, 68, 58, 82, 57, 69, 72, 68, 57, 88, 48, 65, 63, 68, 75, 62, 59, 55, 83, 55, 72, 57, 75, 66, 58, 52, 57, 58, 67, 89, 70, 57, 66, 83, 90, 58, 75, 55, 60, 86, 68, 54, 75, 91, 46, 58, 81, 83, 63, 74, 49, 109, 50, 57, 66, 60, 60, 56, 67, 54, 71, 68, 57, 39, 56, 72, 73, 53, 54, 75, 59, 88, 52, 71, 61, 57, 84, 50, 84, 57, 73, 72, 56, 55, 55, 62, 70, 61, 49, 46, 58, 79, 74, 59, 60, 70, 59, 99, 65, 61, 60, 61, 67, 61, 82, 68, 57, 60, 66, 73, 49, 77, 46, 64, 74, 59, 70, 65, 78, 65, 63, 65, 57, 72, 72, 64, 96, 53, 54, 72, 125, 113, 63, 48, 68, 86, 62, 71, 60, 62, 69, 81, 102, 66, 62, 78, 76, 70, 69, 69, 59, 93, 72, 50, 78, 47, 71, 62, 72, 53, 72, 68, 60, 68, 71, 69, 98, 62, 93, 46, 65, 95, 57, 44, 76, 56, 62, 53, 53, 58, 58, 90, 58, 83, 53, 81, 64, 58, 64, 68, 53, 67, 59, 89, 66, 63, 65, 52, 74, 58, 55, 58, 55, 56, 72, 54, 53, 56, 51, 66, 69, 49, 60, 74, 70, 64, 55, 77, 57, 133, 66, 57, 58, 55, 50, 52, 57, 75, 63, 51, 57, 64, 73, 65, 60, 46, 82, 43, 56, 53, 71, 46, 57, 66, 70, 63, 75, 62, 57, 63, 42, 66, 76, 103, 59, 76, 65, 62, 78, 65, 66, 55, 71, 66, 64, 96, 77, 63, 59, 73, 74, 49, 84, 44, 48, 59, 60, 64, 53, 69, 53, 58, 66, 91, 63, 119, 107, 64, 57, 67, 49, 67, 101, 92, 62, 70, 61, 70, 61, 51, 67, 100, 57, 69, 53, 54, 61, 60, 67, 68, 108, 73, 93, 61, 64, 43, 41, 49, 45, 61, 70, 47, 57, 64, 56, 70, 63, 50, 54, 78, 47, 60, 64, 67, 49, 79, 83, 68, 72, 56, 73, 92, 63, 49, 60, 55, 57, 66, 74, 51, 57, 59, 60, 66, 50, 66, 71, 61, 52, 106, 53, 65, 57, 84, 58, 46, 60, 59, 77, 67, 72, 54, 58, 64, 66, 45, 88, 36, 66, 53, 58, 67, 67, 75, 144, 65, 60, 69, 62, 66, 42, 65, 60, 72, 55, 72, 49, 95, 64, 80, 65, 62, 71, 50, 66, 62, 62, 72, 55, 57, 57, 62, 50, 59, 53, 63, 55, 51, 79, 61, 57, 72, 52, 77, 72, 83, 70, 54, 105, 53, 60, 49, 53, 79, 48, 79, 54, 57, 60, 70, 57, 83, 57, 75, 69, 59, 61, 52, 59, 60, 57, 45, 69, 62, 72, 57, 59, 73, 69, 70, 66, 57, 64, 56, 79, 92, 57, 53, 98, 76, 60, 71, 60, 70, 82, 102, 72, 76, 79, 58, 61, 59, 50, 91, 85, 64, 61, 62, 56, 52, 88, 75, 62, 116, 54, 60, 67, 67, 63, 50, 59, 63, 59, 76, 60, 78, 70, 78, 66, 54, 62, 74, 60, 56, 54, 60, 76, 66, 122, 65, 71, 61, 55, 51, 72, 98, 60, 68, 63, 80, 70, 74, 62, 60, 63, 70, 66, 66, 50, 61, 69, 59, 73, 78, 51, 60, 46, 55, 65, 65, 90, 62, 65, 49, 95, 96, 43, 65, 61, 70, 54, 76, 55, 76, 85, 68, 67, 58, 74, 58, 53, 62, 48, 67, 61, 64, 68, 74, 125, 82, 61, 59, 68, 71, 95, 81, 66, 58, 54, 58, 75, 68, 44, 54, 77, 71, 49, 62, 70, 56, 49, 65, 58, 60, 53, 47, 68, 61, 55, 64, 59, 54, 53, 52, 74, 53, 70, 85, 48, 59, 78, 71, 54, 77, 64, 68, 89, 74, 58, 57, 67, 69, 59, 57, 68, 61, 57, 69, 59, 53, 68, 69, 61, 71, 78, 51, 55, 64, 60, 58, 83, 63, 74, 55, 58, 60, 73, 78, 71, 52, 99, 61, 65, 48, 51, 54, 54, 57, 78, 68, 58, 71, 43, 68, 60, 56, 54, 79, 71, 109, 66, 62, 63, 61, 64, 70, 63, 60, 57, 61, 70, 70, 56, 64, 66, 48, 85, 47, 50, 48, 63, 71, 58, 62, 93, 49, 47, 64, 51, 65, 53, 61, 71, 87, 52, 68, 61, 79, 57, 52, 70, 63, 66, 76, 65, 73, 50, 57, 92, 77, 88, 62, 54, 66, 86, 62, 53, 82, 57, 53, 51, 65, 85, 54, 48, 55, 53, 68, 77, 55, 84, 62, 80, 78, 74, 56, 65, 70, 55, 86, 62, 55, 77, 69, 63, 69, 65, 39, 69, 71, 75, 52, 63, 90, 61, 71, 61, 64, 65, 61, 69, 73, 61, 55, 54, 59, 48, 65, 42, 64, 71, 64, 68, 55, 49, 56, 58, 43, 81, 63, 70, 50, 74, 54, 49, 63, 111, 68, 77, 60, 90, 76, 63, 54, 60, 52, 66, 87, 71, 58, 99, 93, 83, 79, 75, 60, 75, 57, 63, 44, 51, 62, 55, 64, 65, 57, 54, 60, 61, 76, 55, 78, 59, 56, 63, 61, 77, 58, 53, 93, 69, 65, 51, 78, 76, 67, 59, 59, 76, 66, 55, 109, 62, 63, 65, 59, 78, 61, 70, 50, 81, 65, 55, 62, 69, 64, 68, 53, 64, 65, 75, 62, 57, 62, 64, 49, 66, 72, 72, 60, 58, 75, 93, 70, 82, 66, 57, 62, 95, 52, 64, 53, 60, 68, 61, 77, 48, 71, 51, 86, 61, 58, 64, 61, 83, 55, 57, 68, 109, 55, 53, 61, 53, 97, 63, 56, 53, 80, 70, 63, 58, 41, 84, 74, 52, 51, 82, 85, 66, 84, 53, 78, 43, 57, 56, 52, 50, 68, 59, 71, 62, 86, 61, 71, 56, 49, 111, 82, 71, 63, 58, 48, 72, 64, 57, 72, 68, 77, 79, 60, 46, 64, 83, 47, 46, 66, 57, 54, 75, 76, 56, 46, 66, 61, 57, 77, 145, 69, 51, 51, 91, 69, 65, 62, 58, 57, 66, 67, 103, 65, 68, 45, 68, 65, 73, 62, 47, 55, 90, 72, 99, 64, 82, 55, 81, 81, 76, 69, 87, 55, 59, 68, 49, 68, 63, 74, 72, 119, 48, 65, 53, 85, 63, 68, 90, 66, 58, 72, 73, 63, 58, 47, 86, 65, 68, 64, 67, 66, 59, 60, 72, 48, 80, 64, 61, 58, 80, 61, 61, 58, 61, 51, 54, 60, 72, 68, 61, 51, 84, 53, 71, 49, 70, 58, 66, 67, 60, 60, 63, 83, 51, 60, 70, 87, 71, 45, 58, 45, 95, 50, 43, 59, 50, 60, 74, 118, 50, 125, 54, 62, 62, 58, 62, 65, 87, 96, 56, 57, 61, 44, 68, 87, 49, 65, 51, 98, 66, 66, 60, 60, 62, 55, 55, 56, 50, 84, 75, 102, 61, 93, 69, 69, 83, 69, 57, 62, 98, 51, 63, 60, 69, 73, 50, 72, 69, 61, 67, 89, 66, 90, 71, 50, 85, 65, 87, 63, 60, 62, 68, 75, 53, 59, 67, 66, 77, 60, 69, 80, 64, 46, 73, 41, 70, 59, 69, 42, 62, 49, 81, 57, 50, 53, 63, 59, 70, 59, 68, 61, 52, 58, 82, 68, 74, 67, 62, 72, 56, 61, 65, 71, 55, 76, 85, 49, 55, 55, 58, 63, 80, 54, 70, 77, 79, 55, 61, 90, 58, 65, 62, 91, 68, 64, 61, 66, 66, 58, 64, 57, 51, 53, 88, 54, 79, 55, 67, 48, 41, 81, 62, 68, 49, 81, 67, 107, 72, 64, 77, 72, 85, 55, 74, 71, 62, 55, 71, 52, 73, 67, 90, 55, 76, 82, 76, 51, 65, 53, 137, 64, 40, 77, 83, 51, 67, 74, 42, 46, 56, 84, 70, 93, 59, 58, 58, 48, 69, 79, 58, 54, 62, 76, 96, 68, 53, 78, 79, 60, 69, 93, 58, 58, 61, 56, 61, 63, 60, 61, 62, 65, 50, 66, 70, 56, 60, 64, 59, 54, 77, 61, 86, 52, 44, 57, 76, 53, 53, 55, 76, 65, 54, 49, 61, 97, 71, 55, 92, 51, 61, 55, 50, 63, 55, 60, 57, 73, 72, 76, 60, 62, 51, 71, 52, 44, 50, 64, 80, 73, 68, 58, 77, 99, 101, 74, 64, 45, 60, 54, 70, 94, 62, 50, 68, 72, 59, 70, 78, 63, 88, 63, 63, 57, 65, 76, 64, 74, 61, 83, 54, 67, 93, 54, 73, 40, 58, 95, 69, 82, 75, 69, 58, 59, 61, 53, 63, 75, 52, 54, 58, 71, 49, 86, 51, 74, 56, 51, 65, 108, 60, 63, 69, 54, 78, 59, 67, 59, 65, 68, 58, 66, 56, 71, 66, 71, 48, 77, 61, 59, 64, 56, 74, 68, 55, 79, 58, 54, 66, 66, 92, 51, 99, 96, 58, 37, 65, 56, 71, 79, 60, 60, 89, 61, 66, 56, 74, 78, 71, 48, 75, 69, 84, 82, 60, 47, 75, 55, 62, 61, 87, 56, 69, 66, 49, 68, 49, 49, 65, 121, 98, 78, 64, 75, 66, 79, 83, 53, 61, 66, 60, 64, 53, 60, 50, 80, 44, 52, 69, 72, 60, 76, 68, 56, 59, 66, 52, 63, 63, 55, 49, 47, 70, 76, 61, 65, 69, 54, 63, 60, 69, 70, 57, 59, 54, 59, 81, 75, 73, 57, 75, 64, 59, 57, 67, 68, 79, 77, 64, 49, 77, 62, 69, 104, 56, 74, 56, 72, 65, 87, 62, 71, 52, 57, 68, 34, 83, 62, 63, 61, 60, 63, 40, 61, 59, 61, 59, 54, 62, 42, 60, 69, 93, 65, 100, 63, 56, 80, 57, 74, 63, 71, 71, 75, 51, 56, 60, 72, 60, 58, 65, 80, 72, 54, 85, 74, 80, 52, 56, 71, 64, 58, 75, 74, 62, 84, 64, 35, 66, 74, 57, 55, 51, 58, 65, 55, 53, 65, 79, 68, 46, 63, 75, 72, 72, 46, 74, 88, 65, 95, 66, 60, 81, 80, 62, 47, 45, 59, 64, 73, 56, 73, 53, 61, 78, 67, 57, 63, 69, 51, 52, 51, 57, 65, 71, 57, 54, 51, 56, 77, 51, 68, 65, 50, 57, 87, 61, 74, 69, 49, 73, 56, 59, 76, 60, 68, 87, 79, 122, 75, 53, 72, 65, 70, 73, 48, 64, 55, 67, 66, 34, 61, 53, 52, 61, 80, 56, 83, 83, 67, 64, 59, 60, 90, 58, 55, 48, 65, 70, 70, 60, 63, 57, 66, 77, 52, 63, 50, 67, 67, 64, 67, 62, 54, 69, 57, 61, 60, 80, 66, 50, 72, 81, 52, 63, 75, 54, 76, 84, 75, 65, 62, 58, 65, 61, 61, 63, 72, 64, 54, 91, 63, 66, 28, 50, 122, 57, 54, 68, 62, 55, 62, 57, 71, 72, 52, 52, 46, 99, 89, 53, 56, 57, 64, 76, 59, 69, 77, 56, 76, 70, 66, 63, 54, 46, 65, 83, 64, 58, 73, 61, 58, 84, 53, 76, 64, 73, 47, 46, 63, 60, 74, 60, 62, 57, 64, 37, 66, 71, 68, 60, 79, 65, 67, 58, 67, 48, 59, 50, 77, 59, 68, 68, 54, 108, 77, 53, 64, 59, 77, 62, 50, 60, 77, 54, 86, 57, 65, 79, 95, 80, 61, 50, 89, 65, 80, 64, 63, 78, 59, 48, 62, 67, 63, 62, 76, 66, 62, 58, 65, 63, 58, 68, 57, 79, 51, 68, 75, 52, 52, 61, 64, 67, 49, 54, 74, 116, 66, 79, 113, 87, 63, 40, 61, 71, 54, 88, 76, 55, 55, 60, 77, 62, 59, 50, 68, 60, 65, 72, 38, 67, 59, 60, 59, 53, 55, 58, 61, 54, 100, 90, 64, 68, 60, 91, 73, 78, 56, 63, 60, 66, 72, 67, 78, 91, 77, 48, 100, 41, 74, 70, 61, 56, 58, 54, 60, 62, 50, 98, 58, 59, 64, 78, 56, 90, 60, 55, 82, 59, 64, 54, 99, 66, 55, 73, 97, 61, 87, 66, 65, 77, 61, 53, 64, 56, 69, 73, 73, 64, 56, 73, 79, 68, 69, 112, 58, 63, 62, 58, 57, 44, 59, 61, 62, 55, 91, 73, 90, 61, 101, 66, 73, 47, 65, 67, 54, 81, 55, 55, 50, 62, 64, 63, 92, 123, 85, 55, 69, 79, 66, 65, 58, 57, 54, 50, 67, 71, 63, 51, 52, 77, 86, 82, 62, 56, 63, 48, 98, 54, 62, 72, 55, 92, 75, 87, 55, 66, 67, 67, 67, 59, 62, 80, 61, 62, 74, 75, 99, 69, 60, 53, 73, 76, 48, 52, 69, 62, 61, 63, 68, 56, 110, 68, 67, 61, 77, 59, 64, 42, 52, 73, 76, 67, 71, 97, 95, 64, 91, 72, 71, 60, 61, 43, 53, 73, 48, 79, 50, 62, 50, 68, 62, 57, 56, 53, 57, 51, 77, 61, 45, 64, 61, 72, 77, 53, 40, 86, 60, 69, 70, 61, 46, 88, 113, 69, 111, 68, 56, 80, 71, 82, 57, 98, 85, 53, 64, 36, 97, 72, 71, 50, 57, 70, 107, 73, 50, 61, 63, 70, 79, 75, 63, 60, 53, 59, 68, 41, 71, 66, 80, 67, 59, 95, 62, 79, 66, 58, 79, 89, 48, 65, 71, 67, 65, 82, 50, 59, 99, 61, 71, 101, 77, 130, 61, 76, 58, 62, 61, 59, 61, 70, 55, 63, 62, 66, 62, 68, 70, 51, 74, 62, 61, 71, 49, 74, 60, 54, 56, 58, 52, 68, 68, 67, 68, 74, 77, 70, 74, 62, 63, 63, 61, 59, 59, 50, 67, 57, 48, 63, 64, 67, 55, 67, 72, 55, 60, 62, 88, 80, 96, 74, 73, 57, 62, 52, 58, 65, 64, 64, 58, 53, 52, 52, 60, 62, 64, 50, 60, 75, 58, 49, 85, 60, 74, 64, 48, 87, 67, 80, 62, 60, 118, 61, 58, 76, 63, 83, 78, 80, 66, 86, 62, 58, 69, 55, 71, 75, 60, 60, 66, 57, 66, 71, 69, 50, 60, 63, 75, 83, 62, 60, 53, 60, 42, 45, 88, 55, 62, 46, 66, 58, 48, 83, 55, 62, 61, 60, 49, 77, 71, 56, 62, 60, 42, 65, 114, 74, 61, 54, 67, 63, 63, 64, 54, 46, 88, 66, 58, 62, 55, 65, 76, 60, 58, 76, 57, 77, 72, 58, 81, 70, 56, 48, 49, 80, 52, 67, 56, 69, 87, 52, 56, 78, 83, 66, 51, 46, 77, 61, 62, 56, 74, 94, 60, 58, 95, 56, 57, 65, 67, 62, 70, 59, 65, 75, 67, 63, 68, 104, 59, 61, 67, 65, 56, 55, 85, 63, 45, 76, 44, 108, 57, 74, 56, 70, 79, 52, 61, 44, 56, 60, 53, 91, 65, 58, 100, 63, 71, 63, 74, 58, 98, 55, 94, 58, 82, 60, 72, 68, 68, 56, 50, 63, 50, 82, 68, 63, 78, 58, 66, 62, 63, 67, 103, 70, 72, 89, 62, 65, 41, 65, 67, 43, 75, 42, 74, 63, 51, 53, 65, 48, 70, 62, 91, 74, 72, 77, 56, 67, 76, 78, 53, 61, 46, 82, 74, 68, 82, 55, 89, 64, 72, 69, 74, 82, 59, 94, 52, 42, 52, 64, 57, 78, 69, 83, 82, 69, 77, 60, 80, 63, 82, 54, 69, 81, 59, 66, 73, 66, 47, 61, 70, 55, 85, 101, 83, 65, 67, 71, 90, 78, 54, 65, 83, 59, 39, 43, 65, 57, 73, 71, 55, 70, 59, 69, 75, 59, 69, 54, 72, 69, 60, 53, 59, 52, 70, 61, 76, 49, 85, 61, 84, 74, 59, 71, 68, 70, 66, 61, 57, 74, 64, 51, 73, 56, 61, 60, 68, 60, 56, 107, 63, 58, 69, 63, 56, 68, 83, 73, 52, 58, 59, 93, 58, 85, 61, 71, 82, 57, 56, 63, 58, 68, 64, 52, 72, 34, 80, 54, 47, 76, 51, 78, 60, 52, 77, 86, 97, 71, 66, 61, 81, 66, 65, 69, 65, 74, 60, 60, 64, 67, 59, 67, 55, 69, 57, 66, 60, 69, 68, 102, 66, 56, 73, 54, 81, 78, 63, 67, 78, 64, 54, 42, 72, 68, 56, 69, 54, 67, 72, 77, 59, 78, 67, 49, 63, 68, 59, 56, 59, 64, 59, 69, 82, 46, 96, 72, 64, 76, 98, 63, 60, 54, 53, 70, 66, 53, 72, 71, 56, 59, 56, 59, 70, 78, 64, 61, 63, 56, 64, 92, 64, 60, 90, 56, 67, 71, 50, 60, 58, 47, 61, 80, 53, 56, 68, 55, 50, 70, 71, 85, 57, 97, 68, 67, 59, 56, 76, 72, 51, 79, 48, 59, 57, 63, 54, 55, 64, 62, 52, 51, 119, 90, 50, 59, 66, 58, 64, 43, 70, 69, 61, 62, 61, 55, 90, 47, 61, 85, 57, 40, 76, 80, 70, 42, 64, 61, 42, 67, 63, 69, 64, 83, 66, 61, 71, 47, 72, 89, 55, 63, 67, 48, 61, 67, 70, 62, 69, 65, 72, 53, 82, 55, 63, 65, 68, 51, 53, 44, 114, 70, 54, 57, 64, 59, 67, 69, 56, 70, 79, 65, 59, 94, 80, 48, 57, 57, 41, 58, 63, 68, 75, 71, 70, 82, 41, 75, 66, 54, 78, 72, 66, 77, 70, 71, 73, 60, 52, 52, 80, 53, 71, 64, 53, 73, 61, 67, 66, 43, 56, 85, 50, 66, 53, 55, 70, 71, 57, 59, 70, 84, 50, 80, 77, 67, 77, 55, 85, 97, 47, 52, 68, 68, 75, 65, 61, 65, 54, 67, 101, 72, 65, 95, 85, 67, 60, 60, 57, 54, 60, 59, 61, 57, 57, 62, 60, 54, 51, 74, 84, 64, 91, 61, 85, 59, 67, 53, 38, 80, 59, 62, 98, 71, 77, 72, 69, 62, 56, 47, 75, 86, 52, 54, 100, 58, 67, 80, 63, 51, 42, 104, 77, 85, 59, 57, 56, 58, 71, 51, 52, 51, 59, 60, 55, 93, 71, 60, 53, 44, 65, 47, 63, 63, 96, 104, 47, 61, 45, 71, 62, 114, 55, 66, 48, 66, 56, 68, 41, 80, 82, 48, 76, 67, 67, 68, 51, 72, 63, 52, 57, 60, 70, 80, 47, 59, 45, 67, 51, 84, 68, 58, 63, 65, 60, 74, 79, 66, 67, 53, 93, 62, 73, 49, 69, 74, 63, 74, 46, 53, 57, 53, 68, 52, 52, 56, 61, 52, 57, 88, 77, 74, 70, 63, 62, 60, 57, 51, 66, 56, 93, 73, 71, 66, 71, 96, 53, 56, 50, 51, 62, 76, 87, 59, 56, 51, 69, 60, 109, 138, 52, 63, 63, 93, 81, 49, 62, 73, 49, 53, 62, 90, 53, 72, 56, 54, 80, 45, 49, 47, 61, 77, 83, 105, 52, 78, 68, 66, 60, 69, 55, 68, 89, 82, 42, 48, 52, 75, 45, 55, 97, 52, 76, 71, 83, 57, 76, 56, 52, 65, 50, 59, 60, 77, 76, 66, 82, 53, 69, 53, 54, 56, 68, 76, 53, 65, 68, 66, 63, 83, 68, 45, 60, 63, 55, 61, 76, 65, 56, 66, 63, 64, 73, 58, 55, 83, 52, 67, 75, 49, 78, 74, 68, 74, 58, 53, 86, 65, 52, 59, 53, 113, 72, 83, 74, 48, 59, 74, 124, 70, 113, 62, 76, 87, 50, 82, 66, 81, 94, 66, 69, 53, 85, 69, 82, 50, 75, 41, 93, 59, 50, 66, 57, 63, 65, 83, 60, 62, 81, 72, 71, 50, 54, 61, 77, 67, 68, 69, 59, 79, 64, 64, 73, 64, 70, 58, 66, 63, 64, 86, 67, 93, 95, 37, 58, 81, 99, 102, 64, 73, 66, 48, 79, 48, 61, 63, 57, 57, 63, 63, 77, 63, 62, 48, 73, 61, 69, 59, 58, 83, 59, 60, 61, 45, 61, 66, 63, 66, 68, 70, 79, 68, 62, 67, 59, 66, 53, 64, 74, 55, 49, 52, 41, 81, 62, 78, 55, 57, 62, 62, 71, 72, 67, 64, 83, 64, 68, 50, 77, 67, 72, 60, 70, 58, 66, 57, 54, 41, 61, 75, 65, 59, 63, 68, 53, 56, 77, 56, 58, 55, 62, 75, 53, 67, 78, 74, 133, 82, 53, 91, 54, 82, 76, 64, 78, 61, 54, 54, 71, 63, 70, 67, 70, 58, 102, 64, 65, 54, 75, 83, 54, 51, 81, 71, 55, 52, 63, 72, 86, 56, 85, 60, 78, 55, 61, 48, 64, 58, 49, 73, 51, 59, 110, 71, 71, 55, 65, 50, 67, 78, 123, 71, 59, 58, 58, 78, 76, 60, 50, 50, 69, 76, 77, 70, 76, 93, 93, 73, 50, 73, 68, 86, 55, 48, 71, 67, 67, 62, 68, 66, 70, 55, 44, 53, 89, 43, 70, 55, 81, 51, 53, 71, 56, 57, 66, 69, 73, 97, 69, 61, 81, 75, 51, 51, 62, 62, 64, 59, 67, 66, 58, 81, 60, 105, 61, 55, 75, 54, 61, 50, 81, 61, 53, 89, 51, 81, 66, 67, 61, 59, 69, 74, 60, 67, 62, 70, 45, 56, 71, 49, 94, 56, 56, 52, 71, 73, 93, 86, 69, 60, 78, 61, 54, 69, 57, 49, 68, 65, 59, 84, 53, 49, 85, 52, 68, 50, 76, 61, 114, 62, 69, 83, 74, 60, 49, 64, 48, 71, 65, 71, 72, 57, 67, 55, 63, 53, 49, 67, 60, 73, 67, 71, 53, 54, 68, 54, 61, 58, 35, 81, 78, 71, 61, 66, 73, 47, 78, 78, 50, 60, 69, 75, 71, 57, 53, 61, 71, 61, 56, 73, 73, 62, 80, 53, 93, 51, 86, 85, 66, 65, 69, 72, 62, 66, 64, 60, 58, 59, 106, 92, 55, 53, 71, 60, 83, 52, 41, 77, 76, 59, 52, 70, 53, 63, 54, 76, 63, 64, 69, 78, 77, 68, 60, 62, 65, 55, 70, 79, 65, 68, 69, 54, 78, 76, 64, 72, 59, 80, 52, 55, 65, 50, 54, 59, 72, 72, 78, 55, 66, 79, 65, 52, 65, 59, 72, 119, 69, 65, 80, 70, 54, 63, 61, 53, 59, 41, 58, 53, 71, 84, 57, 72, 61, 62, 78, 62, 57, 80, 56, 74, 88, 52, 45, 104, 63, 57, 56, 55, 68, 63, 70, 47, 73, 59, 71, 103, 52, 77, 67, 61, 61, 55, 57, 66, 55, 37, 54, 66, 73, 60, 67, 54, 57, 82, 66, 62, 65, 56, 70, 53, 46, 72, 58, 59, 64, 64, 41, 61, 75, 65, 72, 61, 81, 70, 57, 44, 82, 66, 74, 80, 63, 77, 55, 65, 70, 74, 73, 62, 67, 74, 70, 36, 116, 71, 62, 56, 56, 62, 60, 54, 77, 46, 62, 61, 57, 50, 46, 71, 75, 58, 47, 49, 69, 60, 90, 58, 78, 50, 56, 81, 62, 68, 69, 58, 69, 61, 74, 72, 57, 62, 63, 34, 110, 92, 72, 61, 63, 48, 46, 68, 58, 37, 66, 59, 65, 79, 68, 52, 74, 64, 76, 80, 65, 79, 74, 62, 141, 103, 69, 49, 53, 60, 59, 46, 73, 63, 53, 54, 66, 70, 86, 75, 71, 74, 55, 58, 61, 43, 61, 83, 70, 60, 46, 62, 53, 60, 71, 108, 81, 48, 86, 46, 74, 50, 45, 74, 62, 65, 47, 64, 71, 57, 72, 67, 53, 42, 90, 53, 63, 79, 66, 88, 91, 69, 60, 46, 60, 60, 53, 79, 43, 66, 80, 61, 57, 65, 66, 55, 79, 74, 59, 61, 61, 82, 74, 68, 68, 62, 77, 68, 54, 59, 99, 63, 49, 76, 62, 89, 108, 58, 106, 55, 56, 82, 82, 62, 71, 98, 68, 63, 63, 40, 60, 94, 63, 78, 63, 62, 64, 39, 58, 59, 42, 87, 75, 66, 54, 100, 68, 86, 54, 64, 44, 71, 59, 67, 52, 77, 78, 57, 59, 66, 64, 78, 88, 46, 96, 83, 57, 67, 70, 66, 46, 57, 50, 75, 62, 63, 60, 47, 65, 54, 92, 83, 62, 69, 53, 77, 88, 67, 88, 72, 55, 68, 60, 73, 71, 73, 76, 53, 79, 69, 57, 81, 66, 64, 44, 64, 71, 73, 57, 63, 66, 69, 65, 95, 69, 72, 65, 73, 71, 61, 47, 55, 76, 103, 70, 64, 77, 32, 72, 67, 54, 53, 74, 52, 39, 26, 88, 69, 50, 58, 71, 67, 58, 84, 56, 80, 60, 41, 67, 42, 51, 60, 48, 38, 67, 47, 45, 53, 76, 58, 59, 88, 56, 93, 53, 78, 49, 80, 55, 64, 64, 83, 53, 68, 52, 51, 47, 82, 70, 56, 87, 76, 54, 74, 59, 56, 58, 62, 53, 59, 74, 69, 68, 53, 63, 47, 49, 73, 67, 89, 54, 69, 45, 69, 74, 70, 76, 69, 55, 68, 77, 84, 84, 43, 110, 80, 83, 107, 71, 60, 92, 53, 64, 72, 85, 76, 94, 77, 50, 69, 57, 49, 48, 78, 64, 62, 53, 64, 65, 74, 51, 57, 81, 61, 47, 62, 62, 61, 86, 60, 53, 56, 59, 95, 74, 58, 40, 87, 63, 49, 76, 95, 67, 64, 65, 59, 68, 72, 65, 60, 83, 52, 67, 89, 66, 74, 78, 69, 62, 70, 91, 41, 79, 73, 47, 73, 51, 72, 59, 54, 59, 95, 58, 52, 66, 83, 76, 57, 112, 54, 59, 50, 75, 78, 57, 78, 70, 69, 49, 69, 65, 64, 132, 76, 52, 65, 82, 61, 78, 59, 74, 64, 60, 70, 77, 87, 93, 58, 80, 77, 79, 56, 73, 70, 72, 64, 81, 57, 70, 77, 86, 70, 96, 83, 79, 52, 39, 66, 68, 74, 113, 62, 47, 61, 58, 68, 80, 48, 70, 68, 75, 68, 80, 56, 97, 75, 57, 47, 61, 52, 81, 63, 94, 55, 42, 57, 47, 75, 110, 49, 80, 84, 86, 77, 66, 71, 73, 82, 55, 58, 74, 41, 58, 69, 75, 68, 68, 52, 88, 90, 71, 62, 61, 32, 86, 53, 84, 52, 43, 61, 70, 66, 64, 82, 84, 73, 66, 67, 79, 62, 51, 66, 63, 94, 57, 61, 68, 58, 70, 45, 32, 61, 69, 65, 49, 72, 82, 91, 54, 73, 61, 94, 48, 56, 90, 36, 50, 107, 56, 60, 61, 65, 57, 80, 57, 49, 61, 67, 48, 82, 76, 42, 39, 74, 49, 72, 62, 59, 61, 56, 61, 54, 73, 56, 70, 79, 52, 60, 94, 78, 125, 71, 49, 63, 67, 85, 51, 63, 76, 44, 94, 87, 70, 57, 75, 55, 77, 67, 61, 54, 52, 75, 85, 48, 116, 55, 81, 60, 67, 46, 75, 113, 63, 95, 62, 71, 51, 57, 96, 89, 109, 58, 69, 70, 47, 61, 63, 81, 66, 61, 56, 62, 70, 52, 76, 52, 65, 62, 75, 70, 56, 62, 74, 47, 73, 59, 72, 87, 78, 90, 55, 60, 41, 77, 154, 47, 66, 69, 90, 64, 62, 112, 70, 64, 56, 55, 56, 59, 59, 47, 68, 56, 56, 44, 62, 66, 59, 43, 65, 53, 77, 85, 65, 41, 52, 70, 59, 68, 50, 59, 91, 68, 73, 49, 80, 48, 78, 61, 48, 51, 61, 98, 49, 72, 60, 50, 58, 42, 75, 68, 66, 59, 70, 82, 95, 50, 60, 96, 67, 51, 59, 82, 56, 49, 55, 62, 82, 46, 62, 49, 56, 76, 73, 62, 60, 76, 63, 77, 78, 64, 54, 58, 64, 54, 69, 56, 73, 74, 77, 68, 59, 67, 64, 81, 64, 98, 74, 65, 54, 82, 89, 60, 72, 54, 74, 59, 60, 45, 63, 51, 72, 67, 45, 73, 71, 64, 58, 54, 87, 55, 76, 65, 57, 53, 55, 61, 104, 81, 65, 65, 68, 55, 70, 66, 51, 67, 58, 64, 55, 96, 75, 57, 61, 64, 59, 76, 74, 46, 51, 64, 70, 55, 78, 72, 58, 76, 69, 56, 80, 57, 85, 53, 52, 70, 69, 58, 63, 64, 68, 68, 56, 53, 68, 61, 72, 57, 70, 60, 69, 53, 59, 55, 74, 78, 73, 80, 67, 62, 52, 60, 105, 62, 72, 74, 57, 78, 57, 59, 55, 60, 68, 65, 59, 50, 66, 63, 61, 72, 49, 50, 86, 39, 60, 42, 61, 63, 53, 45, 67, 55, 66, 70, 69, 56, 58, 114, 73, 119, 77, 65, 70, 71, 54, 66, 64, 56, 55, 53, 45, 68, 77, 85, 56, 57, 45, 72, 75, 52, 64, 78, 61, 68, 64, 87, 63, 91, 57, 59, 47, 66, 59, 59, 66, 50, 71, 63, 55, 61, 61, 68, 72, 50, 62, 43, 55, 72, 51, 63, 68, 75, 72, 66, 78, 59, 74, 70, 50, 65, 73, 62, 65, 52, 56, 70, 66, 80, 95, 51, 54, 62, 60, 55, 73, 58, 79, 83, 56, 67, 61, 67, 55, 71, 54, 50, 77, 61, 78, 49, 89, 56, 60, 57, 54, 60, 95, 72, 49, 49, 61, 75, 52, 60, 97, 55, 51, 51, 82, 65, 55, 78, 81, 67, 80, 63, 70, 51, 77, 67, 67, 56, 62, 56, 63, 57, 58, 62, 60, 73, 87, 64, 64, 64, 61, 69, 79, 99, 78, 45, 49, 55, 57, 66, 48, 53, 83, 77, 65, 74, 51, 68, 49, 61, 64, 42, 56, 55, 86, 70, 121, 102, 59, 44, 64, 60, 50, 63, 66, 52, 57, 69, 60, 77, 85, 51, 65, 71, 45, 62, 75, 71, 91, 85, 72, 70, 60, 68, 75, 65, 78, 107, 61, 48, 67, 66, 57, 66, 64, 75, 49, 51, 74, 63, 74, 54, 87, 83, 62, 55, 73, 68, 64, 55, 54, 88, 74, 55, 74, 87, 61, 62, 58, 70, 67, 69, 87, 79, 40, 86, 56, 72, 79, 60, 55, 81, 65, 89, 60, 79, 80, 63, 55, 73, 82, 56, 90, 54, 55, 56, 78, 65, 126, 67, 84, 41, 67, 64, 86, 59, 59, 69, 58, 79, 53, 74, 56, 104, 61, 62, 72, 74, 55, 46, 60, 65, 55, 60, 85, 48, 70, 98, 74, 59, 66, 79, 59, 56, 77, 48, 56, 77, 70, 50, 41, 66, 50, 66, 83, 58, 84, 64, 52, 68, 68, 59, 60, 57, 49, 94, 59, 60, 52, 65, 67, 39, 71, 139, 84, 97, 53, 76, 64, 54, 44, 53, 72, 49, 78, 76, 46, 66, 77, 51, 66, 64, 57, 105, 69, 75, 80, 57, 50, 61, 52, 65, 100, 51, 63, 105, 51, 84, 50, 41, 78, 52, 49, 59, 59, 102, 46, 55, 62, 76, 54, 70, 69, 92, 63, 72, 76, 77, 71, 47, 72, 62, 64, 60, 54, 58, 53, 48, 56, 63, 68, 50, 67, 57, 47, 57, 86, 54, 58, 54, 68, 60, 64, 52, 61, 105, 51, 73, 47, 79, 45, 70, 81, 85, 84, 54, 87, 68, 76, 80, 63, 62, 64, 78, 69, 67, 50, 72, 63, 62, 67, 57, 86, 71, 68, 41, 76, 53, 55, 77, 53, 63, 58, 47, 62, 54, 54, 94, 65, 76, 63, 53, 61, 90, 88, 63, 82, 64, 81, 85, 63, 75, 69, 69, 56, 69, 57, 78, 78, 67, 53, 55, 63, 53, 57, 52, 66, 53, 53, 63, 73, 44, 53, 68, 81, 67, 52, 66, 61, 52, 66, 41, 51, 82, 49, 73, 81, 51, 71, 59, 57, 62, 72, 118, 89, 78, 83, 51, 66, 49, 82, 65, 70, 57, 87, 72, 81, 83, 56, 56, 59, 53, 67, 68, 67, 65, 58, 56, 53, 72, 54, 60, 79, 65, 50, 68, 58, 71, 70, 67, 86, 56, 80, 37, 85, 79, 51, 64, 70, 63, 59, 70, 68, 61, 94, 71, 62, 81, 97, 72, 82, 55, 76, 63, 57, 72, 48, 73, 59, 56, 73, 76, 79, 64, 65, 72, 56, 71, 71, 75, 84, 63, 98, 47, 81, 62, 43, 58, 95, 67, 65, 68, 80, 52, 53, 63, 62, 67, 87, 55, 101, 53, 59, 76, 69, 78, 120, 74, 54, 64, 62, 49, 66, 63, 83, 66, 64, 79, 59, 92, 91, 53, 73, 78, 54, 65, 65, 46, 56, 74, 67, 53, 65, 57, 41, 63, 85, 89, 60, 68, 74, 95, 53, 51, 59, 68, 65, 71, 75, 67, 65, 80, 61, 78, 60, 78, 75, 84, 87, 60, 62, 48, 35, 82, 80, 68, 71, 65, 51, 69, 76, 54, 58, 61, 63, 69, 61, 63, 94, 49, 56, 58, 86, 87, 62, 57, 74, 43, 66, 146, 58, 67, 71, 60, 77, 76, 56, 55, 63, 44, 58, 71, 48, 73, 46, 46, 56, 60, 74, 65, 71, 48, 53, 49, 59, 85, 77, 76, 61, 64, 74, 87, 95, 41, 55, 56, 52, 84, 61, 52, 49, 56, 70, 75, 68, 59, 82, 55, 72, 72, 54, 69, 83, 59, 57, 70, 98, 52, 83, 48, 78, 43, 43, 136, 36, 99, 61, 61, 80, 48, 133, 73, 97, 65, 59, 58, 50, 55, 67, 45, 72, 57, 74, 72, 52, 46, 100, 63, 66, 47, 57, 76, 82, 54, 57, 64, 83, 68, 38, 72, 91, 75, 89, 69, 59, 85, 123, 50, 57, 76, 64, 50, 51, 122, 89, 47, 56, 53, 58, 47, 52, 45, 58, 79, 63, 63, 57, 68, 76, 90, 50, 57, 74, 88, 53, 63, 56, 73, 45, 54, 52, 81, 67, 61, 72, 63, 74, 63, 69, 87, 70, 57, 46, 77, 52, 69, 42, 65, 63, 68, 60, 81, 65, 64, 78, 67, 113, 52, 58, 100, 58, 52, 68, 47, 58, 65, 65, 81, 73, 59, 62, 42, 56, 53, 51, 58, 61, 37, 63, 75, 72, 58, 65, 55, 59, 54, 74, 47, 57, 55, 66, 75, 57, 65, 61, 58, 63, 90, 87, 66, 76, 44, 99, 46, 72, 69, 65, 51, 77, 83, 49, 63, 72, 56, 39, 55, 60, 69, 70, 50, 45, 71, 67, 74, 57, 55, 69, 62, 99, 55, 78, 59, 63, 59, 54, 60, 64, 64, 58, 51, 67, 85, 105, 67, 84, 73, 61, 51, 62, 60, 45, 61, 68, 50, 90, 57, 59, 94, 63, 55, 81, 68, 77, 64, 59, 73, 56, 82, 63, 59, 53, 76, 80, 58, 73, 63, 93, 58, 62, 65, 83, 56, 79, 49, 63, 74, 64, 67, 61, 74, 62, 57, 80, 59, 62, 55, 56, 66, 63, 73, 70, 61, 46, 49, 72, 64, 71, 74, 62, 69, 58, 51, 78, 43, 78, 51, 103, 66, 61, 34, 67, 54, 63, 48, 67, 53, 74, 121, 62, 101, 68, 80, 79, 81, 62, 61, 61, 70, 66, 60, 42, 74, 85, 64, 56, 67, 61, 55, 67, 75, 67, 48, 75, 53, 89, 53, 60, 102, 51, 68, 71, 57, 78, 65, 69, 66, 98, 67, 67, 73, 48, 54, 66, 59, 59, 57, 53, 71, 50, 82, 74, 59, 77, 59, 75, 72, 59, 59, 66, 106, 63, 54, 62, 53, 48, 71, 77, 80, 91, 69, 48, 50, 64, 85, 65, 85, 57, 60, 64, 67, 57, 69, 77, 54, 58, 83, 51, 63, 60, 68, 62, 66, 58, 85, 58, 66, 71, 49, 73, 40, 68, 76, 58, 82, 59, 70, 46, 81, 72, 81, 44, 75, 78, 58, 64, 57, 54, 42, 88, 64, 42, 60, 73, 85, 53, 69, 67, 78, 52, 62, 63, 73, 84, 76, 53, 79, 62, 60, 73, 64, 73, 56, 65, 102, 57, 43, 76, 50, 66, 71, 62, 65, 61, 63, 62, 76, 71, 50, 85, 84, 115, 123, 67, 49, 47, 73, 68, 70, 56, 84, 63, 59, 59, 79, 65, 83, 63, 66, 44, 75, 64, 74, 53, 57, 61, 86, 37, 104, 50, 68, 81, 93, 66, 68, 70, 74, 74, 54, 52, 52, 54, 53, 78, 54, 59, 67, 57, 72, 75, 49, 63, 55, 71, 72, 57, 89, 70, 74, 81, 71, 102, 52, 63, 59, 99, 78, 65, 80, 66, 61, 83, 60, 64, 64, 54, 96, 46, 53, 69, 79, 61, 45, 64, 47, 47, 56, 73, 49, 75, 72, 80, 70, 78, 59, 60, 59, 48, 76, 92, 56, 63, 64, 64, 62, 70, 56, 78, 70, 65, 70, 55, 52, 60, 55, 68, 52, 43, 53, 47, 68, 69, 73, 45, 81, 60, 68, 80, 80, 57, 53, 67, 77, 59, 77, 61, 60, 53, 69, 75, 59, 89, 97, 65, 59, 71, 80, 69, 66, 92, 61, 66, 63, 66, 75, 59, 66, 50, 63, 71, 65, 71, 62, 56, 70, 58, 77, 58, 59, 83, 68, 76, 66, 72, 73, 60, 55, 55, 65, 72, 67, 55, 54, 61, 60, 57, 76, 59, 71, 85, 62, 54, 65, 71, 59, 84, 47, 80, 63, 47, 100, 58, 66, 49, 63, 72, 67, 63, 54, 52, 62, 67, 79, 100, 74, 81, 51, 52, 58, 54, 77, 67, 65, 66, 43, 95, 53, 69, 57, 62, 55, 58, 87, 60, 60, 91, 66, 54, 70, 96, 92, 68, 73, 76, 86, 84, 66, 65, 55, 55, 63, 61, 68, 54, 79, 67, 60, 73, 66, 82, 46, 60, 63, 39, 69, 46, 81, 46, 55, 60, 58, 77, 51, 51, 74, 59, 68, 58, 74, 82, 78, 58, 58, 83, 54, 61, 56, 71, 80, 62, 68, 65, 66, 49, 94, 61, 60, 55, 61, 55, 55, 83, 58, 129, 69, 77, 72, 58, 74, 62, 79, 55, 78, 49, 51, 52, 79, 63, 69, 75, 70, 69, 55, 53, 60, 50, 56, 52, 66, 64, 83, 85, 84, 64, 51, 51, 62, 61, 69, 73, 63, 63, 62, 79, 46, 82, 45, 62, 75, 63, 49, 61, 79, 69, 57, 79, 96, 65, 71, 74, 70, 56, 72, 67, 59, 76, 50, 54, 79, 60, 69, 73, 68, 80, 66, 86, 54, 67, 47, 80, 53, 56, 86, 69, 80, 53, 76, 50, 54, 71, 68, 64, 59, 70, 76, 80, 68, 91, 61, 62, 55, 64, 43, 68, 62, 58, 70, 68, 43, 62, 49, 34, 86, 71, 48, 96, 57, 85, 58, 106, 81, 60, 61, 57, 78, 67, 66, 74, 59, 46, 48, 76, 56, 62, 68, 43, 70, 99, 70, 52, 66, 107, 84, 57, 60, 58, 49, 65, 54, 101, 53, 83, 42, 70, 73, 83, 49, 51, 59, 80, 71, 61, 63, 66, 50, 68, 50, 75, 68, 71, 67, 92, 89, 80, 60, 63, 107, 94, 47, 57, 79, 69, 72, 84, 56, 78, 57, 75, 53, 77, 78, 36, 56, 85, 48, 48, 58, 45, 60, 58, 50, 58, 72, 50, 74, 71, 67, 63, 58, 57, 58, 64, 94, 62, 73, 43, 53, 59, 78, 60, 69, 53, 65, 51, 77, 55, 50, 81, 59, 56, 73, 82, 78, 46, 65, 58, 64, 67, 58, 52, 59, 51, 81, 58, 69, 68, 56, 74, 57, 67, 61, 70, 42, 71, 76, 77, 89, 64, 48, 87, 63, 62, 75, 64, 69, 87, 57, 72, 88, 76, 68, 71, 77, 66, 69, 52, 65, 73, 70, 68, 56, 84, 84, 80, 58, 68, 58, 67, 124, 49, 99, 55, 71, 51, 53, 79, 63, 72, 49, 71, 71, 61, 73, 58, 60, 45, 61, 51, 72, 71, 81, 60, 73, 77, 56, 69, 62, 56, 83, 87, 54, 52, 74, 68, 105, 80, 54, 41, 84, 60, 78, 172, 69, 68, 74, 94, 66, 73, 78, 77, 58, 64, 49, 73, 52, 56, 65, 53, 53, 66, 56, 65, 60, 62, 73, 63, 59, 42, 63, 46, 54, 72, 70, 50, 52, 57, 77, 72, 59, 62, 57, 80, 60, 62, 73, 53, 62, 66, 68, 55, 83, 67, 68, 92, 81, 56, 71, 68, 60, 81, 78, 115, 72, 58, 57, 58, 59, 74, 65, 66, 59, 49, 68, 52, 52, 78, 60, 81, 86, 69, 71, 61, 58, 61, 70, 92, 63, 69, 60, 64, 76, 79, 73, 76, 60, 65, 44, 71, 65, 77, 51, 49, 47, 93, 59, 53, 47, 56, 70, 79, 50, 68, 66, 64, 79, 46, 52, 89, 62, 71, 51, 80, 62, 74, 90, 53, 66, 66, 66, 66, 62, 45, 69, 92, 79, 54, 58, 68, 76, 70, 54, 64, 69, 68, 78, 75, 48, 75, 49, 76, 69, 61, 73, 60, 74, 67, 47, 66, 48, 70, 75, 73, 67, 68, 52, 87, 68, 40, 57, 57, 51, 55, 70, 56, 48, 67, 74, 62, 64, 50, 57, 57, 53, 66, 47, 54, 63, 52, 73, 72, 85, 78, 40, 62, 62, 46, 76, 74, 87, 51, 61, 50, 78, 60, 58, 75, 55, 65, 65, 63, 72, 50, 75, 66, 49, 70, 75, 59, 73, 51, 67, 56, 67, 81, 76, 64, 60, 78, 59, 83, 60, 59, 119, 64, 98, 54, 50, 84, 46, 47, 66, 62, 64, 55, 77, 54, 88, 79, 77, 54, 54, 71, 59, 50, 70, 57, 56, 62, 55, 99, 57, 86, 72, 67, 57, 74, 63, 67, 59, 64, 51, 96, 69, 73, 57, 61, 80, 88, 58, 58, 51, 77, 65, 54, 99, 77, 59, 48, 64, 66, 72, 65, 46, 76, 118, 60, 49, 58, 57, 51, 59, 68, 57, 52, 64, 68, 68, 75, 64, 32, 64, 83, 56, 73, 47, 70, 65, 67, 66, 63, 76, 44, 67, 59, 67, 71, 55, 48, 69, 54, 62, 84, 64, 60, 64, 69, 38, 68, 101, 65, 67, 55, 56, 84, 72, 73, 63, 61, 56, 57, 57, 59, 77, 83, 64, 50, 75, 67, 65, 58, 77, 74, 55, 67, 78, 44, 71, 56, 98, 43, 58, 50, 55, 85, 86, 60, 77, 54, 94, 49, 67, 67, 66, 57, 107, 54, 55, 44, 65, 79, 59, 49, 66, 73, 104, 112, 131, 61, 48, 51, 42, 47, 65, 66, 67, 68, 57, 67, 58, 69, 83, 75, 46, 41, 106, 40, 68, 58, 77, 71, 71, 61, 86, 50, 54, 66, 105, 51, 68, 75, 65, 64, 70, 73, 66, 57, 46, 47, 57, 64, 89, 74, 67, 87, 56, 78, 53, 63, 66, 67, 76, 86, 70, 77, 92, 103, 71, 51, 85, 94, 79, 76, 74, 57, 71, 61, 79, 58, 69, 59, 72, 70, 64, 73, 64, 62, 63, 49, 61, 64, 63, 70, 73, 61, 51, 34, 58, 77, 54, 67, 44, 63, 75, 78, 52, 65, 73, 64, 66, 73, 57, 46, 80, 63, 52, 61, 63, 50, 59, 89, 70, 48, 100, 56, 44, 67, 75, 61, 52, 90, 42, 69, 88, 40, 61, 60, 80, 56, 74, 68, 53, 66, 61, 73, 65, 98, 97, 67, 67, 70, 59, 63, 62, 50, 63, 57, 64, 52, 59, 52, 78, 44, 71, 65, 47, 76, 64, 59, 69, 62, 63, 55, 58, 54, 60, 99, 62, 61, 78, 64, 75, 47, 66, 79, 65, 66, 51, 65, 59, 70, 78, 65, 50, 64, 69, 62, 81, 46, 48, 63, 52, 53, 88, 54, 68, 54, 42, 72, 69, 58, 51, 51, 44, 58, 63, 84, 54, 93, 71, 59, 70, 87, 61, 36, 63, 57, 64, 55, 61, 81, 51, 86, 47, 61, 54, 93, 77, 68, 63, 101, 78, 39, 71, 80, 63, 65, 74, 92, 76, 72, 52, 50, 70, 69, 52, 46, 58, 62, 61, 62, 57, 54, 68, 51, 76, 52, 72, 54, 58, 78, 54, 59, 58, 60, 70, 65, 69, 71, 68, 59, 63, 50, 73, 83, 49, 69, 51, 97, 59, 82, 61, 54, 78, 72, 44, 68, 49, 70, 75, 89, 65, 52, 61, 49, 70, 96, 77, 123, 62, 78, 76, 46, 65, 72, 67, 53, 77, 61, 53, 55, 68, 69, 65, 89, 87, 75, 69, 39, 62, 78, 50, 53, 75, 56, 66, 79, 64, 70, 55, 54, 83, 101, 64, 47, 59, 85, 53, 79, 61, 82, 82, 60, 71, 79, 65, 64, 96, 73, 81, 71, 64, 68, 64, 56, 68, 54, 64, 60, 93, 44, 64, 71, 53, 46, 48, 60, 75, 47, 69, 79, 50, 71, 36, 85, 55, 68, 43, 64, 77, 61, 92, 56, 72, 66, 64, 58, 43, 61, 88, 76, 44, 59, 63, 72, 63, 65, 47, 42, 61, 51, 105, 80, 52, 69, 53, 62, 83, 62, 62, 74, 57, 82, 55, 99, 64, 52, 85, 49, 67, 91, 49, 62, 58, 65, 39, 47, 69, 67, 65, 64, 53, 100, 77, 58, 63, 90, 84, 65, 68, 65, 48, 60, 76, 76, 56, 75, 70, 44, 81, 104, 56, 69, 72, 81, 74, 49, 64, 64, 66, 58, 62, 58, 49, 69, 59, 94, 64, 61, 71, 75, 106, 47, 72, 59, 70, 54, 89, 92, 72, 69, 53, 78, 58, 79, 55, 81, 58, 72, 61, 64, 62, 52, 54, 72, 69, 65, 70, 63, 65, 61, 71, 56, 68, 55, 81, 41, 73, 74, 45, 83, 61, 57, 57, 61, 60, 57, 64, 76, 62, 45, 65, 56, 53, 69, 49, 80, 61, 58, 61, 56, 64, 67, 42, 57, 59, 42, 54, 36, 70, 67, 59, 57, 68, 47, 56, 46, 63, 60, 64, 77, 107, 63, 54, 80, 55, 60, 62, 78, 81, 78, 58, 61, 79, 93, 46, 50, 52, 74, 67, 72, 61, 62, 81, 55, 43, 70, 64, 77, 75, 56, 66, 72, 127, 45, 88, 56, 70, 70, 72, 77, 35, 57, 55, 79, 82, 58, 69, 61, 63, 92, 54, 76, 62, 83, 61, 85, 73, 57, 65, 73, 70, 77, 84, 97, 60, 67, 47, 96, 101, 77, 65, 51, 99, 43, 69, 190, 84, 50, 53, 90, 59, 80, 96, 79, 41, 71, 80, 68, 70, 64, 62, 52, 78, 78, 51, 58, 79, 65, 57, 74, 59, 58, 70, 66, 61, 56, 57, 67, 70, 58, 75, 76, 50, 61, 58, 58, 61, 66, 76, 43, 53, 79, 59, 50, 117, 79, 53, 58, 54, 72, 85, 63, 79, 83, 42, 116, 41, 68, 63, 64, 73, 58, 68, 65, 68, 76, 63, 60, 72, 67, 76, 63, 51, 59, 63, 66, 48, 59, 65, 77, 64, 67, 42, 74, 64, 52, 78, 74, 58, 90, 60, 72, 63, 57, 59, 55, 56, 93, 66, 73, 66, 76, 84, 84, 57, 66, 59, 46, 82, 67, 54, 77, 55, 69, 54, 67, 65, 53, 74, 75, 59, 52, 71, 55, 58, 70, 64, 97, 90, 73, 79, 81, 73, 49, 76, 78, 79, 58, 70, 57, 73, 61, 56, 90, 83, 78, 81, 60, 74, 49, 61, 55, 61, 64, 56, 69, 48, 75, 45, 100, 61, 49, 68, 67, 79, 61, 74, 65, 48, 58, 47, 62, 45, 54, 51, 70, 50, 69, 57, 68, 58, 63, 53, 78, 86, 65, 83, 60, 69, 60, 79, 80, 75, 65, 79, 45, 62, 60, 75, 76, 44, 55, 73, 66, 63, 73, 69, 45, 49, 56, 56, 69, 68, 41, 74, 62, 57, 63, 73, 44, 72, 75, 72, 60, 63, 67, 123, 61, 87, 75, 64, 64, 61, 62, 65, 65, 65, 60, 58, 62, 68, 68, 84, 74, 66, 53, 77, 53, 66, 46, 59, 63, 68, 103, 59, 67, 99, 61, 49, 59, 40, 70, 68, 101, 73, 69, 84, 77, 62, 55, 72, 51, 50, 55, 55, 43, 60, 62, 83, 65, 54, 70, 55, 80, 39, 68, 60, 53, 92, 51, 74, 57, 73, 92, 62, 76, 49, 73, 77, 63, 63, 84, 70, 65, 67, 57, 76, 70, 75, 55, 56, 72, 74, 71, 43, 51, 54, 69, 65, 65, 61, 54, 54, 80, 66, 71, 50, 56, 69, 64, 76, 52, 88, 59, 56, 66, 72, 41, 73, 52, 53, 65, 61, 53, 45, 70, 52, 48, 57, 57, 65, 68, 51, 55, 65, 76, 63, 85, 57, 60, 59, 69, 103, 68, 45, 62, 68, 64, 81, 44, 75, 76, 105, 62, 50, 51, 47, 57, 71, 68, 60, 57, 76, 73, 69, 78, 59, 71, 110, 120, 110, 57, 56, 64, 60, 63, 70, 69, 82, 73, 54, 59, 62, 53, 61, 70, 54, 39, 91, 58, 65, 59, 63, 53, 61, 37, 100, 71, 55, 74, 101, 60, 73, 73, 56, 72, 54, 77, 72, 69, 56, 61, 64, 75, 61, 60, 73, 95, 60, 71, 68, 62, 77, 80, 48, 49, 48, 80, 117, 100, 67, 64, 77, 87, 63, 66, 60, 55, 83, 70, 76, 64, 55, 65, 76, 56, 69, 65, 42, 74, 54, 71, 54, 45, 61, 57, 58, 62, 62, 56, 77, 70, 79, 77, 52, 65, 48, 52, 66, 59, 39, 70, 68, 62, 74, 64, 68, 66, 59, 54, 79, 68, 51, 80, 71, 62, 68, 58, 65, 53, 70, 83, 66, 60, 58, 48, 99, 58, 75, 64, 69, 73, 59, 45, 53, 60, 81, 80, 52, 85, 61, 73, 55, 61, 52, 68, 78, 68, 70, 61, 68, 58, 81, 62, 42, 65, 45, 62, 53, 65, 69, 53, 54, 49, 61, 84, 63, 70, 57, 62, 78, 63, 69, 48, 59, 62, 80, 80, 64, 72, 52, 77, 78, 58, 65, 65, 51, 74, 72, 69, 67, 49, 65, 56, 48, 58, 83, 52, 64, 56, 59, 61, 55, 89, 50, 66, 72, 50, 51, 63, 69, 90, 51, 83, 69, 54, 64, 81, 80, 60, 63, 51, 67, 91, 64, 72, 63, 63, 47, 64, 68, 48, 64, 79, 72, 67, 57, 64, 83, 47, 60, 39, 75, 71, 68, 58, 70, 52, 54, 71, 57, 58, 67, 69, 44, 66, 50, 58, 77, 67, 61, 80, 65, 72, 70, 71, 65, 73, 57, 74, 65, 64, 53, 67, 64, 80, 73, 93, 70, 64, 53, 72, 51, 67, 68, 57, 79, 49, 68, 66, 70, 56, 81, 74, 74, 73, 56, 46, 62, 51, 60, 133, 68, 81, 69, 58, 70, 71, 82, 55, 81, 58, 57, 65, 59, 59, 55, 76, 65, 78, 75, 57, 78, 46, 82, 76, 79, 57, 80, 71, 75, 51, 78, 48, 62, 79, 45, 69, 75, 58, 48, 100, 54, 61, 56, 61, 64, 87, 68, 73, 77, 79, 58, 74, 79, 45, 63, 70, 58, 61, 79, 68, 55, 67, 65, 56, 61, 55, 67, 53, 47, 55, 80, 68, 67, 84, 48, 62, 94, 63, 49, 50, 57, 62, 80, 62, 73, 61, 64, 68, 52, 38, 73, 79, 58, 69, 56, 78, 66, 78, 57, 61, 65, 45, 83, 61, 72, 63, 69, 44, 86, 89, 63, 90, 63, 77, 63, 102, 60, 61, 76, 67, 46, 76, 78, 68, 55, 63, 64, 59, 50, 62, 69, 62, 58, 107, 74, 68, 63, 102, 79, 66, 59, 55, 49, 74, 61, 86, 54, 62, 56, 55, 74, 88, 69, 52, 67, 61, 70, 65, 64, 77, 58, 43, 62, 72, 67, 43, 70, 89, 86, 58, 72, 57, 86, 65, 69, 63, 59, 82, 71, 89, 63, 57, 71, 85, 55, 66, 81, 52, 76, 52, 65, 68, 61, 67, 53, 75, 48, 78, 64, 64, 80, 60, 62, 49, 80, 60, 57, 68, 116, 55, 52, 58, 64, 47, 59, 68, 80, 72, 61, 54, 74, 56, 80, 50, 55, 60, 58, 65, 72, 56, 60, 74, 52, 77, 60, 61, 62, 70, 57, 59, 51, 53, 60, 84, 75, 80, 72, 63, 56, 55, 61, 47, 77, 58, 47, 87, 71, 67, 76, 51, 60, 102, 58, 64, 83, 44, 58, 63, 66, 53, 51, 85, 60, 68, 60, 74, 69, 88, 58, 91, 56, 68, 68, 52, 118, 82, 98, 68, 63, 53, 65, 77, 67, 89, 67, 74, 88, 68, 58, 63, 58, 64, 66, 74, 52, 53, 50, 80, 59, 40, 61, 77, 61, 56, 76, 85, 74, 83, 61, 67, 98, 66, 62, 57, 78, 69, 59, 165, 55, 65, 60, 89, 56, 60, 67, 69, 72, 77, 46, 65, 59, 57, 69, 54, 61, 57, 48, 55, 52, 79, 59, 62, 38, 63, 70, 68, 67, 58, 51, 87, 47, 64, 76, 63, 64, 60, 54, 82, 68, 52, 53, 71, 59, 57, 61, 54, 64, 51, 74, 79, 50, 65, 63, 69, 68, 65, 67, 134, 55, 54, 56, 57, 57, 54, 69, 75, 52, 66, 50, 68, 64, 54, 66, 65, 63, 45, 52, 54, 59, 63, 75, 70, 50, 86, 63, 64, 62, 67, 77, 87, 56, 83, 68, 56, 51, 92, 57, 65, 52, 61, 53, 65, 46, 51, 53, 55, 67, 68, 50, 70, 95, 53, 63, 65, 65, 72, 63, 66, 61, 74, 54, 54, 70, 83, 93, 51, 64, 62, 87, 86, 57, 58, 63, 82, 77, 62, 74, 70, 69, 92, 57, 65, 72, 47, 66, 96, 82, 69, 81, 62, 48, 75, 68, 50, 55, 79, 82, 95, 86, 62, 74, 91, 68, 72, 60, 65, 81, 56, 69, 65, 72, 58, 60, 77, 87, 56, 65, 59, 73, 61, 81, 69, 80, 50, 63, 55, 42, 58, 64, 44, 51, 66, 75, 58, 66, 64, 74, 66, 75, 73, 56, 97, 69, 63, 56, 66, 56, 64, 53, 58, 63, 58, 69, 72, 76, 64, 57, 52, 58, 63, 50, 56, 69, 58, 57, 64, 61, 66, 108, 62, 65, 71, 68, 53, 55, 58, 62, 71, 60, 62, 74, 59, 67, 67, 79, 82, 61, 90, 65, 73, 45, 70, 43, 64, 52, 58, 83, 67, 55, 60, 68, 58, 71, 61, 61, 58, 58, 89, 68, 58, 47, 53, 55, 67, 53, 79, 57, 71, 61, 53, 51, 88, 60, 51, 75, 75, 68, 74, 72, 68, 63, 58, 63, 69, 50, 77, 53, 83, 63, 75, 70, 47, 47, 53, 65, 66, 53, 77, 52, 53, 58, 57, 60, 67, 59, 55, 63, 80, 81, 63, 73, 73, 77, 70, 41, 58, 65, 86, 76, 82, 79, 68, 52, 47, 56, 71, 55, 69, 81, 62, 47, 58, 41, 67, 66, 49, 71, 49, 75, 72, 53, 76, 63, 91, 62, 67, 63, 67, 58, 78, 65, 63, 55, 59, 66, 57, 67, 56, 71, 63, 71, 50, 63, 95, 66, 70, 120, 90, 73, 53, 84, 82, 60, 71, 49, 59, 57, 106, 71, 57, 56, 116, 52, 66, 42, 62, 53, 48, 56, 61, 49, 66, 63, 67, 57, 81, 69, 93, 47, 53, 63, 63, 66, 56, 52, 53, 71, 56, 80, 53, 63, 41, 85, 53, 68, 61, 53, 71, 61, 75, 60, 56, 58, 58, 62, 68, 59, 46, 63, 61, 77, 84, 65, 70, 87, 56, 62, 64, 63, 91, 38, 51, 66, 65, 71, 58, 53, 67, 87, 59, 69, 62, 78, 57, 48, 56, 101, 61, 72, 48, 56, 68, 66, 78, 86, 68, 61, 69, 68, 52, 69, 67, 45, 57, 71, 54, 67, 60, 64, 87, 63, 48, 101, 63, 42, 67, 61, 68, 63, 78, 66, 54, 76, 53, 64, 87, 73, 74, 58, 51, 66, 67, 63, 64, 56, 56, 64, 61, 126, 70, 48, 66, 59, 76, 58, 63, 65, 68, 61, 101, 53, 61, 54, 64, 60, 65, 47, 67, 78, 50, 59, 93, 61, 73, 63, 55, 69, 67, 55, 62, 91, 75, 58, 53, 59, 72, 56, 66, 52, 58, 48, 87, 51, 58, 56, 69, 84, 51, 61, 60, 83, 49, 62, 51, 60, 57, 54, 68, 55, 65, 133, 70, 78, 56, 74, 60, 63, 95, 69, 97, 64, 61, 58, 58, 49, 61, 69, 62, 73, 62, 66, 59, 69, 109, 36, 73, 55, 49, 64, 75, 76, 53, 81, 63, 64, 66, 81, 49, 63, 92, 74, 87, 76, 50, 69, 60, 60, 47, 66, 55, 78, 44, 56, 60, 89, 58, 59, 65, 80, 86, 66, 56, 67, 66, 87, 68, 54, 105, 63, 62, 49, 68, 87, 81, 76, 70, 50, 62, 64, 58, 56, 54, 59, 72, 62, 70, 50, 66, 79, 73, 55, 64, 54, 48, 61, 82, 48, 64, 63, 99, 49, 62, 55, 62, 90, 85, 55, 57, 61, 69, 112, 82, 72, 64, 57, 63, 68, 58, 59, 49, 49, 50, 81, 60, 64, 59, 73, 55, 65, 75, 90, 60, 72, 84, 63, 74, 72, 54, 58, 67, 79, 88, 47, 48, 75, 67, 50, 97, 51, 49, 67, 63, 68, 92, 63, 58, 90, 64, 77, 74, 92, 64, 59, 69, 67, 56, 52, 67, 81, 87, 71, 49, 54, 59, 53, 70, 57, 56, 71, 57, 67, 57, 73, 61, 60, 46, 60, 73, 45, 92, 85, 81, 66, 72, 57, 61, 66, 84, 66, 62, 54, 56, 84, 68, 73, 56, 66, 97, 63, 60, 66, 81, 66, 60, 63, 52, 79, 85, 58, 49, 87, 65, 88, 56, 56, 54, 77, 110, 59, 75, 71, 48, 84, 58, 78, 61, 48, 59, 58, 54, 93, 111, 76, 82, 56, 72, 62, 96, 67, 67, 57, 47, 59, 76, 60, 54, 70, 48, 62, 32, 47, 70, 61, 48, 60, 61, 100, 77, 77, 54, 62, 80, 72, 66, 76, 71, 83, 61, 70, 92, 50, 91, 63, 76, 88, 76, 147, 87, 74, 63, 94, 55, 59, 56, 87, 71, 59, 58, 54, 61, 67, 60, 70, 63, 71, 51, 69, 99, 56, 50, 69, 58, 59, 53, 54, 78, 60, 61, 54, 61, 47, 66, 78, 61, 87, 52, 57, 74, 61, 63, 68, 67, 76, 75, 51, 54, 62, 86, 77, 52, 69, 67, 67, 88, 70, 69, 59, 74, 72, 107, 66, 52, 65, 121, 56, 55, 53, 75, 69, 72, 74, 54, 64, 67, 69, 51, 75, 63, 58, 66, 54, 57, 72, 56, 81, 119, 50, 91, 76, 81, 58, 60, 110, 68, 82, 58, 79, 61, 78, 69, 61, 77, 67, 62, 60, 55, 58, 70, 81, 54, 71, 65, 59, 76, 56, 67, 69, 98, 58, 64, 52, 71, 68, 61, 89, 58, 55, 76, 75, 60, 56, 66, 58, 79, 55, 57, 88, 47, 64, 92, 55, 61, 54, 60, 74, 93, 76, 58, 57, 86, 60, 67, 77, 91, 65, 54, 56, 51, 70, 64, 64, 64, 81, 47, 70, 66, 51, 52, 51, 70, 55, 55, 56, 53, 81, 54, 89, 59, 62, 77, 71, 92, 63, 60, 52, 74, 85, 56, 64, 53, 57, 66, 64, 63, 71, 52, 58, 78, 58, 51, 93, 57, 103, 65, 61, 63, 51, 60, 76, 62, 69, 69, 80, 97, 92, 51, 67, 56, 69, 67, 60, 68, 58, 74, 69, 83, 80, 62, 83, 57, 53, 73, 53, 77, 56, 61, 45, 55, 55, 69, 58, 60, 52, 83, 98, 53, 57, 75, 71, 45, 102, 60, 57, 66, 59, 44, 54, 73, 66, 56, 47, 63, 75, 76, 70, 72, 65, 61, 46, 67, 55, 61, 74, 77, 68, 53, 56, 62, 68, 66, 75, 62, 53, 51, 65, 66, 57, 53, 75, 66, 56, 86, 51, 59, 62, 103, 57, 62, 59, 60, 95, 56, 70, 66, 63, 67, 69, 50, 61, 67, 66, 56, 67, 64, 56, 60, 79, 59, 69, 82, 82, 58, 72, 57, 68, 55, 52, 56, 69, 58, 50, 75, 48, 70, 64, 75, 66, 70, 57, 76, 57, 62, 48, 82, 75, 67, 102, 58, 60, 52, 49, 84, 41, 77, 62, 54, 64, 52, 67, 58, 66, 78, 79, 53, 52, 93, 55, 61, 42, 68, 75, 54, 64, 66, 50, 67, 51, 54, 59, 55, 50, 71, 61, 62, 77, 71, 66, 66, 57, 62, 60, 71, 67, 68, 50, 62, 49, 56, 53, 51, 58, 77, 70, 86, 93, 54, 53, 71, 72, 53, 68, 54, 55, 70, 55, 62, 136, 54, 56, 64, 71, 90, 69, 71, 68, 57, 63, 64, 82, 54, 62, 68, 54, 91, 69, 66, 63, 65, 65, 83, 88, 80, 63, 60, 49, 64, 74, 63, 51, 74, 97, 65, 46, 55, 62, 70, 66, 65, 62, 74, 68, 45, 70, 75, 77, 48, 54, 65, 58, 66, 57, 65, 60, 65, 93, 48, 56, 58, 61, 61, 69, 99, 69, 54, 67, 61, 55, 49, 71, 65, 45, 69, 86, 97, 73, 65, 63, 75, 64, 60, 39, 56, 65, 69, 54, 53, 55, 74, 59, 70, 77, 60, 52, 92, 54, 56, 62, 59, 66, 65, 56, 57, 86, 51, 67, 57, 83, 65, 58, 57, 74, 73, 71, 57, 63, 74, 65, 75, 58, 61, 78, 66, 69, 67, 65, 90, 58, 72, 68, 68, 50, 70, 48, 63, 84, 45, 52, 68, 74, 47, 56, 89, 54, 90, 68, 70, 55, 58, 52, 56, 58, 70, 65, 51, 58, 59, 65, 43, 66, 70, 64, 60, 51, 97, 86, 61, 83, 67, 64, 55, 65, 70, 68, 108, 92, 47, 45, 80, 89, 73, 74, 79, 58, 72, 35, 68, 48, 61, 76, 67, 50, 79, 42, 63, 71, 54, 68, 65, 55, 70, 71, 61, 93, 68, 81, 101, 55, 65, 78, 61, 57, 75, 71, 68, 58, 61, 64, 64, 65, 69, 49, 52, 63, 56, 60, 70, 62, 70, 78, 56, 91, 63, 57, 62, 51, 49, 60, 61, 61, 71, 59, 66, 61, 56, 70, 53, 100, 73, 70, 50, 71, 71, 135, 45, 67, 51, 76, 58, 69, 81, 64, 51, 67, 75, 61, 61, 77, 63, 60, 61, 52, 66, 55, 69, 64, 75, 51, 60, 60, 56, 60, 44, 56, 75, 68, 71, 61, 53, 39, 75, 92, 72, 69, 59, 78, 86, 58, 55, 74, 64, 44, 66, 91, 57, 110, 69, 79, 78, 56, 51, 56, 44, 90, 64, 94, 72, 61, 53, 61, 70, 60, 58, 63, 38, 73, 118, 60, 73, 45, 66, 58, 56, 63, 60, 58, 53, 58, 91, 73, 80, 65, 61, 76, 66, 84, 50, 48, 55, 76, 65, 70, 68, 66, 68, 110, 52, 52, 62, 55, 56, 52, 57, 48, 66, 88, 52, 70, 65, 57, 88, 58, 57, 70, 64, 61, 61, 79, 68, 68, 83, 64, 51, 62, 63, 54, 56, 76, 51, 67, 68, 70, 57, 70, 58, 54, 50, 72, 68, 61, 70, 73, 57, 84, 54, 66, 54, 86, 61, 57, 71, 60, 63, 87, 88, 94, 48, 73, 69, 116, 79, 81, 91, 63, 53, 89, 74, 60, 80, 66, 76, 72, 64, 59, 48, 65, 62, 60, 82, 54, 71, 61, 58, 60, 57, 63, 80, 87, 68, 62, 50, 61, 79, 49, 67, 57, 60, 72, 57, 54, 60, 63, 101, 49, 110, 72, 62, 73, 66, 52, 90, 53, 91, 68, 57, 60, 69, 79, 92, 78, 47, 75, 70, 96, 58, 61, 59, 70, 133, 64, 62, 81, 80, 62, 66, 74, 55, 70, 72, 64, 74, 50, 46, 87, 52, 82, 63, 51, 60, 72, 68, 68, 70, 56, 65, 54, 60, 100, 88, 50, 81, 55, 67, 63, 62, 62, 61, 90, 56, 65, 59, 54, 62, 59, 54, 61, 53, 122, 49, 64, 75, 81, 111, 88, 64, 85, 67, 69, 59, 79, 62, 91, 75, 40, 61, 59, 54, 62, 73, 71, 72, 67, 48, 54, 77, 57, 53, 47, 72, 59, 52, 51, 57, 60, 61, 68, 47, 89, 74, 80, 64, 59, 71, 63, 78, 59, 62, 87, 55, 54, 77, 55, 63, 59, 73, 67, 90, 72, 56, 83, 47, 157, 78, 66, 51, 75, 92, 70, 93, 48, 49, 68, 55, 83, 71, 67, 63, 64, 65, 60, 71, 60, 100, 73, 59, 63, 67, 51, 50, 88, 69, 78, 72, 64, 66, 58, 64, 56, 73, 60, 54, 78, 81, 53, 65, 59, 73, 62, 67, 93, 47, 74, 63, 72, 78, 60, 51, 74, 48, 77, 48, 58, 62, 81, 55, 62, 73, 68, 35, 68, 50, 61, 84, 78, 62, 55, 77, 70, 53, 55, 47, 51, 68, 66, 66, 76, 55, 64, 70, 68, 82, 65, 82, 58, 87, 75, 91, 99, 55, 47, 52, 63, 77, 53, 65, 50, 40, 58, 82, 58, 66, 60, 76, 76, 66, 64, 61, 94, 55, 60, 78, 53, 55, 62, 43, 69, 71, 67, 53, 88, 53, 47, 76, 71, 53, 51, 65, 96, 64, 59, 72, 63, 58, 69, 76, 69, 66, 65, 57, 43, 68, 67, 75, 75, 57, 53, 82, 63, 66, 62, 48, 58, 50, 66, 62, 91, 54, 58, 84, 57, 57, 79, 69, 52, 92, 53, 63, 62, 57, 68, 56, 55, 68, 57, 54, 62, 77, 65, 82, 57, 64, 79, 65, 65, 61, 81, 59, 60, 52, 46, 58, 56, 72, 79, 65, 70, 54, 58, 57, 64, 98, 61, 46, 62, 88, 53, 78, 70, 62, 64, 47, 47, 45, 72, 48, 70, 56, 57, 36, 53, 57, 89, 58, 100, 70, 63, 55, 79, 54, 81, 60, 57, 76, 71, 74, 58, 49, 83, 59, 61, 67, 52, 55, 57, 76, 107, 85, 68, 50, 57, 72, 79, 50, 73, 57, 76, 53, 79, 56, 62, 83, 49, 52, 53, 60, 55, 77, 63, 66, 62, 62, 50, 49, 50, 49, 67, 46, 74, 78, 65, 71, 67, 75, 56, 49, 59, 61, 73, 81, 60, 49, 57, 64, 67, 97, 95, 58, 43, 66, 65, 71, 62, 80, 60, 87, 121, 73, 55, 52, 64, 74, 90, 53, 46, 60, 58, 60, 66, 56, 64, 69, 54, 72, 58, 63, 46, 60, 75, 64, 57, 56, 69, 68, 78, 98, 60, 70, 78, 55, 70, 64, 80, 76, 45, 60, 94, 69, 67, 68, 56, 88, 66, 59, 51, 71, 68, 75, 71, 48, 49, 55, 49, 59, 50, 58, 100, 70, 66, 58, 62, 64, 75, 63, 78, 42, 53, 54, 70, 70, 69, 93, 67, 63, 57, 99, 62, 67, 58, 65, 79, 64, 68, 77, 63, 71, 53, 60, 78, 51, 74, 78, 60, 69, 71, 70, 76, 63, 57, 68, 56, 72, 76, 54, 69, 73, 55, 63, 75, 67, 52, 77, 73, 80, 67, 62, 56, 64, 67, 56, 76, 52, 60, 57, 70, 58, 56, 63, 69, 56, 54, 62, 71, 67, 65, 99, 84, 67, 59, 49, 63, 57, 55, 59, 65, 62, 67, 48, 53, 91, 82, 73, 61, 63, 61, 49, 54, 60, 58, 95, 48, 47, 56, 72, 64, 48, 68, 115, 67, 59, 68, 63, 73, 80, 75, 70, 66, 51, 102, 56, 66, 55, 58, 61, 76, 77, 54, 69, 78, 61, 57, 73, 62, 100, 77, 57, 78, 64, 54, 71, 77, 73, 78, 77, 67, 68, 64, 72, 74, 61, 56, 70, 71, 114, 61, 72, 75, 59, 60, 54, 58, 63, 55, 50, 49, 60, 53, 94, 88, 69, 67, 66, 69, 84, 72, 64, 58, 98, 58, 67, 53, 81, 70, 62, 66, 52, 71, 104, 49, 66, 58, 92, 54, 56, 56, 57, 72, 72, 69, 82, 55, 64, 56, 56, 73, 82, 57, 55, 73, 42, 60, 59, 60, 65, 62, 65, 63, 68, 66, 77, 72, 54, 54, 56, 93, 75, 55, 62, 71, 105, 56, 77, 73, 48, 67, 88, 72, 67, 71, 68, 61, 70, 100, 77, 62, 55, 69, 68, 72, 67, 63, 80, 74, 61, 100, 35, 70, 80, 70, 84, 76, 49, 74, 55, 44, 57, 46, 57, 50, 54, 64, 54, 67, 60, 83, 60, 49, 60, 56, 101, 65, 62, 64, 74, 55, 62, 55, 44, 78, 51, 66, 61, 57, 85, 51, 53, 53, 54, 125, 67, 61, 74, 54, 59, 52, 74, 59, 69, 59, 77, 65, 46, 63, 60, 57, 87, 50, 70, 64, 73, 60, 89, 55, 46, 66, 61, 80, 50, 67, 84, 63, 61, 53, 65, 53, 68, 67, 58, 62, 78, 58, 97, 66, 53, 68, 61, 76, 57, 71, 65, 131, 66, 73, 53, 81, 63, 63, 55, 60, 61, 129, 74, 70, 56, 56, 63, 74, 68, 42, 68, 75, 75, 55, 70, 55, 76, 55, 71, 60, 81, 55, 42, 44, 101, 83, 85, 57, 88, 86, 67, 55, 57, 69, 58, 60, 79, 72, 77, 67, 60, 105, 86, 68, 63, 65, 47, 79, 60, 55, 58, 80, 73, 55, 56, 76, 93, 78, 80, 95, 55, 57, 75, 60, 65, 54, 75, 59, 62, 75, 52, 63, 68, 66, 52, 56, 57, 49, 51, 64, 62, 66, 58, 54, 55, 74, 45, 68, 49, 92, 74, 39, 71, 48, 62, 62, 72, 79, 58, 65, 74, 91, 47, 67, 68, 86, 51, 44, 84, 71, 54, 119, 51, 61, 76, 55, 52, 61, 65, 72, 62, 45, 67, 73, 53, 45, 61, 45, 70, 57, 72, 88, 84, 55, 72, 62, 67, 72, 56, 47, 53, 68, 57, 67, 77, 61, 60, 63, 97, 79, 71, 60, 61, 67, 56, 71, 60, 67, 58, 73, 61, 50, 92, 82, 64, 50, 53, 67, 76, 53, 71, 67, 43, 65, 86, 65, 78, 80, 73, 75, 64, 59, 71, 59, 63, 89, 79, 73, 93, 75, 92, 51, 53, 76, 50, 49, 74, 54, 60, 84, 65, 68, 54, 73, 60, 50, 48, 49, 52, 57, 57, 70, 62, 60, 69, 59, 53, 64, 73, 67, 59, 69, 68, 66, 79, 64, 63, 86, 114, 75, 60, 52, 68, 78, 66, 63, 42, 67, 58, 57, 67, 80, 62, 70, 53, 55, 64, 82, 63, 59, 62, 69, 52, 77, 83, 46, 67, 53, 58, 62, 64, 70, 66, 87, 69, 78, 54, 70, 65, 71, 54, 62, 70, 62, 69, 63, 61, 59, 65, 66, 64, 62, 89, 69, 58, 106, 50, 141, 60, 70, 64, 69, 59, 68, 43, 67, 67, 55, 58, 56, 56, 65, 66, 48, 50, 54, 56, 75, 61, 49, 67, 69, 53, 60, 58, 67, 53, 78, 63, 64, 63, 58, 64, 75, 71, 61, 64, 57, 74, 60, 64, 83, 58, 66, 69, 43, 64, 73, 64, 65, 80, 60, 73, 55, 82, 36, 69, 72, 70, 72, 71, 78, 59, 58, 68, 58, 57, 50, 80, 64, 63, 79, 84, 46, 54, 66, 51, 77, 64, 46, 66, 69, 65, 75, 64, 82, 103, 67, 99, 65, 72, 66, 53, 69, 78, 60, 62, 80, 59, 70, 58, 59, 55, 61, 70, 84, 68, 73, 70, 48, 82, 61, 64, 62, 65, 44, 54, 59, 62, 68, 43, 56, 71, 65, 63, 58, 63, 58, 71, 80, 53, 61, 45, 107, 64, 66, 61, 49, 64, 62, 100, 67, 52, 82, 55, 62, 74, 56, 67, 60, 64, 59, 61, 51, 64, 66, 55, 52, 54, 50, 50, 85, 53, 66, 71, 65, 59, 48, 68, 87, 75, 65, 62, 62, 40, 90, 63, 55, 74, 59, 57, 64, 74, 61, 59, 58, 58, 81, 67, 76, 52, 54, 60, 68, 59, 57, 67, 61, 78, 59, 72, 66, 65, 51, 74, 65, 72, 80, 63, 57, 60, 74, 74, 59, 55, 63, 67, 72, 68, 51, 81, 46, 73, 66, 74, 63, 68, 97, 64, 58, 84, 66, 68, 49, 52, 65, 55, 74, 74, 76, 73, 59, 60, 62, 49, 57, 55, 59, 55, 70, 58, 102, 81, 65, 66, 65, 62, 63, 58, 76, 65, 73, 65, 62, 56, 67, 61, 58, 55, 57, 59, 58, 60, 50, 54, 49, 63, 61, 74, 55, 61, 72, 64, 54, 74, 64, 56, 71, 53, 65, 58, 75, 53, 48, 79, 79, 79, 55, 54, 84, 89, 108, 58, 67, 76, 70, 60, 44, 71, 62, 61, 66, 60, 81, 58, 46, 65, 76, 82, 63, 55, 66, 65, 52, 77, 57, 97, 56, 58, 62, 72, 73, 57, 81, 93, 65, 63, 69, 61, 56, 106, 57, 66, 50, 70, 42, 56, 85, 78, 67, 72, 78, 85, 48, 58, 61, 56, 69, 59, 56, 75, 81, 104, 70, 55, 53, 46, 68, 57, 59, 59, 62, 52, 48, 67, 43, 65, 61, 65, 56, 72, 55, 80, 67, 75, 70, 68, 67, 66, 58, 59, 84, 63, 65, 57, 65, 64, 59, 76, 104, 60, 79, 88, 67, 64, 71, 71, 60, 115, 57, 64, 97, 81, 65, 60, 59, 65, 89, 58, 64, 65, 60, 83, 61, 46, 61, 72, 65, 62, 63, 57, 49, 51, 70, 70, 83, 70, 57, 72, 54, 79, 54, 61, 54, 55, 65, 74, 61, 40, 66, 101, 62, 56, 66, 74, 57, 71, 56, 62, 74, 63, 50, 44, 79, 72, 98, 61, 81, 79, 64, 56, 73, 50, 59, 70, 74, 65, 57, 69, 59, 57, 59, 88, 68, 72, 92, 52, 59, 61, 80, 55, 68, 45, 115, 49, 65, 57, 47, 74, 58, 62, 49, 55, 60, 69, 61, 85, 55, 103, 57, 58, 81, 71, 54, 52, 51, 57, 59, 64, 79, 66, 68, 48, 50, 62, 67, 61, 59, 71, 68, 64, 97, 63, 61, 56, 58, 57, 60, 52, 50, 57, 53, 91, 57, 77, 70, 113, 82, 45, 70, 51, 58, 66, 56, 63, 79, 69, 53, 69, 86, 52, 78, 76, 63, 55, 63, 91, 57, 75, 54, 54, 60, 61, 71, 59, 76, 61, 82, 63, 54, 59, 63, 62, 62, 66, 64, 57, 72, 59, 50, 60, 56, 59, 62, 60, 66, 51, 63, 77, 79, 76, 68, 62, 66, 80, 72, 53, 68, 78, 71, 67, 68, 51, 80, 61, 59, 61, 100, 81, 64, 53, 59, 59, 72, 68, 56, 65, 72, 69, 86, 56, 76, 77, 70, 56, 47, 60, 56, 62, 60, 66, 64, 66, 48, 58, 55, 66, 71, 67, 74, 51, 74, 52, 65, 63, 76, 64, 63, 65, 65, 80, 60, 49, 60, 75, 72, 53, 79, 74, 66, 57, 57, 71, 126, 45, 74, 71, 67, 71, 61, 60, 59, 66, 62, 82, 69, 65, 53, 53, 69, 54, 56, 65, 58, 74, 46, 85, 73, 73, 62, 66, 62, 54, 62, 65, 79, 63, 64, 69, 58, 55, 46, 58, 83, 63, 76, 67, 88, 72, 69, 60, 51, 67, 54, 69, 65, 59, 45, 61, 57, 57, 59, 60, 72, 62, 104, 82, 93, 58, 78, 67, 54, 58, 61, 66, 66, 53, 70, 60, 76, 64, 58, 54, 78, 79, 59, 62, 65, 133, 50, 77, 69, 55, 79, 60, 54, 60, 50, 49, 65, 57, 50, 66, 66, 65, 81, 65, 92, 82, 69, 61, 64, 51, 59, 52, 66, 74, 69, 63, 74, 61, 55, 65, 52, 64, 60, 52, 50, 51, 82, 70, 62, 102, 46, 51, 56, 53, 65, 57, 75, 61, 55, 51, 66, 63, 83, 50, 53, 82, 59, 57, 49, 61, 84, 83, 56, 54, 63, 69, 52, 58, 60, 76, 76, 83, 62, 57, 57, 65, 74, 63, 71, 55, 49, 61, 110, 83, 48, 87, 63, 55, 66, 57, 66, 52, 62, 86, 89, 65, 65, 52, 74, 67, 64, 96, 105, 74, 56, 85, 60, 57, 68, 39, 76, 57, 71, 55, 64, 49, 58, 58, 55, 76, 79, 72, 59, 49, 64, 54, 56, 58, 75, 64, 70, 44, 65, 70, 45, 70, 75, 57, 67, 58, 67, 55, 70, 64, 73, 78, 60, 55, 40, 83, 72, 50, 69, 57, 60, 56, 102, 63, 71, 72, 74, 81, 66, 69, 64, 69, 51, 68, 60, 61, 56, 55, 60, 63, 69, 73, 80, 96, 60, 90, 64, 72, 60, 59, 71, 73, 64, 65, 60, 52, 59, 66, 57, 79, 91, 60, 62, 54, 80, 116, 46, 56, 59, 73, 66, 64, 75, 85, 56, 67, 65, 61, 54, 62, 70, 43, 47, 46, 68, 60, 86, 85, 54, 70, 66, 69, 53, 52, 58, 62, 65, 56, 57, 73, 63, 75, 59, 71, 58, 67, 59, 59, 71, 79, 70, 59, 69, 67, 55, 63, 62, 59, 52, 95, 82, 59, 68, 69, 153, 61, 66, 59, 62, 63, 94, 73, 79, 61, 53, 69, 71, 71, 76, 60, 65, 56, 61, 54, 70, 104, 60, 65, 53, 65, 64, 62, 66, 64, 59, 65, 63, 69, 87, 59, 61, 57, 46, 64, 54, 77, 47, 51, 65, 93, 65, 59, 61, 61, 91, 74, 52, 60, 58, 69, 86, 63, 49, 56, 44, 57, 101, 73, 64, 101, 68, 69, 47, 64, 59, 72, 58, 66, 71, 83, 59, 63, 80, 52, 52, 56, 52, 89, 52, 50, 57, 64, 90, 99, 49, 73, 71, 67, 55, 69, 55, 60, 57, 44, 58, 60, 70, 55, 66, 74, 75, 68, 49, 58, 64, 63, 63, 58, 71, 63, 64, 65, 64, 53, 56, 116, 55, 64, 69, 104, 53, 51, 72, 63, 53, 68, 57, 73, 65, 69, 100, 65, 79, 76, 68, 78, 83, 89, 66, 56, 66, 74, 46, 78, 52, 69, 72, 90, 55, 76, 62, 59, 69, 70, 68, 72, 79, 68, 64, 67, 60, 74, 63, 78, 81, 71, 65, 62, 55, 64, 54, 64, 97, 47, 66, 63, 53, 66, 67, 75, 68, 62, 63, 57, 66, 79, 52, 48, 58, 60, 59, 49, 70, 73, 53, 79, 63, 58, 63, 78, 86, 62, 55, 67, 79, 56, 65, 82, 59, 66, 99, 80, 60, 56, 73, 80, 53, 72, 61, 89, 73, 71, 51, 62, 85, 59, 74, 69, 53, 63, 70, 63, 62, 44, 67, 65, 72, 72, 77, 71, 47, 55, 62, 61, 69, 71, 79, 46, 89, 75, 63, 55, 47, 67, 57, 63, 51, 45, 53, 43, 49, 69, 66, 54, 59, 42, 88, 63, 56, 61, 58, 61, 70, 66, 77, 65, 49, 78, 48, 41, 50, 54, 56, 80, 69, 89, 73, 65, 60, 69, 66, 70, 66, 79, 65, 82, 62, 77, 101, 42, 69, 65, 58, 50, 77, 84, 56, 67, 88, 60, 55, 78, 78, 73, 97, 76, 63, 79, 68, 62, 54, 69, 59, 70, 75, 37, 55, 51, 64, 71, 70, 62, 65, 54, 51, 75, 54, 86, 83, 54, 58, 73, 61, 53, 66, 57, 75, 72, 78, 65, 67, 57, 65, 90, 57, 67, 59, 43, 68, 102, 60, 83, 63, 59, 62, 58, 63, 59, 78, 64, 61, 75, 52, 78, 65, 63, 61, 65, 55, 95, 75, 61, 71, 72, 90, 49, 88, 95, 63, 65, 84, 73, 43, 61, 85, 62, 70, 52, 49, 70, 71, 73, 71, 62, 59, 74, 60, 54, 92, 61, 60, 58, 74, 63, 113, 56, 69, 74, 55, 127, 55, 49, 58, 63, 75, 51, 83, 62, 56, 45, 62, 66, 78, 103, 56, 63, 65, 69, 59, 76, 66, 62, 41, 50, 95, 61, 55, 105, 75, 77, 80, 60, 56, 58, 54, 60, 76, 51, 65, 66, 57, 90, 79, 68, 63, 67, 42, 62, 70, 43, 61, 58, 62, 58, 64, 84, 82, 59, 61, 106, 64, 55, 75, 66, 57, 63, 120, 62, 58, 59, 56, 76, 68, 99, 57, 52, 77, 51, 74, 66, 66, 74, 52, 53, 57, 102, 63, 62, 55, 53, 61, 77, 89, 61, 58, 61, 59, 71, 57, 58, 67, 49, 55, 56, 42, 74, 44, 58, 77, 90, 49, 62, 55, 48, 60, 62, 81, 59, 70, 85, 53, 58, 55, 104, 62, 53, 41, 65, 81, 76, 53, 66, 66, 85, 46, 60, 57, 55, 52, 73, 72, 49, 63, 82, 62, 57, 51, 50, 60, 62, 80, 68, 70, 74, 83, 54, 51, 58, 71, 58, 54, 71, 68, 64, 62, 59, 57, 57, 61, 68, 75, 79, 64, 64, 61, 49, 70, 67, 54, 60, 42, 87, 55, 55, 66, 63, 64, 73, 74, 68, 56, 62, 54, 59, 84, 83, 64, 58, 70, 57, 60, 69, 64, 67, 80, 65, 67, 67, 60, 77, 64, 67, 46, 78, 62, 71, 61, 61, 66, 53, 73, 47, 49, 66, 63, 65, 86, 56, 62, 52, 42, 47, 71, 54, 63, 54, 55, 49, 49, 71, 58, 57, 65, 71, 52, 76, 73, 75, 71, 53, 94, 102, 62, 67, 68, 64, 56, 63, 66, 58, 63, 105, 70, 49, 36, 64, 73, 68, 67, 65, 57, 53, 70, 79, 46, 63, 47, 57, 78, 72, 62, 78, 52, 85, 66, 51, 62, 63, 49, 65, 80, 57, 60, 84, 72, 70, 56, 50, 84, 55, 66, 91, 55, 62, 57, 57, 63, 57, 46, 52, 80, 55, 127, 87, 102, 50, 61, 57, 68, 61, 55, 90, 76, 57, 52, 58, 54, 76, 47, 84, 77, 62, 71, 69, 53, 126, 68, 64, 59, 76, 58, 53, 68, 58, 66, 59, 73, 60, 54, 81, 60, 67, 92, 73, 65, 63, 59, 63, 79, 63, 73, 59, 71, 79, 59, 54, 76, 50, 61, 66, 56, 71, 60, 54, 77, 67, 80, 111, 63, 67, 52, 64, 56, 56, 89, 59, 77, 59, 59, 56, 70, 61, 94, 62, 68, 52, 57, 79, 54, 65, 82, 68, 58, 63, 74, 71, 63, 47, 64, 56, 46, 68, 59, 82, 52, 81, 87, 47, 75, 108, 58, 63, 96, 70, 63, 64, 82, 74, 59, 65, 83, 65, 65, 56, 95, 65, 50, 60, 75, 52, 60, 65, 105, 68, 75, 71, 62, 62, 73, 64, 40, 60, 50, 67, 51, 54, 79, 65, 64, 104, 77, 109, 79, 55, 56, 56, 73, 66, 59, 74, 48, 49, 61, 55, 74, 65, 73, 75, 57, 78, 58, 51, 79, 60, 87, 88, 66, 45, 60, 58, 49, 61, 55, 67, 66, 80, 49, 66, 54, 75, 67, 68, 72, 53, 71, 75, 67, 52, 61, 78, 63, 58, 62, 68, 89, 50, 55, 75, 70, 63, 50, 66, 51, 82, 50, 52, 69, 54, 69, 72, 62, 57, 79, 53, 87, 52, 82, 58, 62, 120, 102, 45, 41, 58, 86, 47, 76, 57, 63, 51, 102, 68, 65, 60, 94, 45, 86, 71, 70, 65, 63, 80, 63, 62, 84, 58, 62, 53, 69, 67, 81, 79, 69, 72, 47, 48, 48, 65, 51, 63, 45, 53, 55, 63, 114, 64, 75, 79, 65, 46, 105, 52, 80, 79, 52, 71, 110, 51, 145, 67, 72, 58, 62, 74, 53, 61, 73, 66, 67, 62, 50, 62, 88, 76, 55, 54, 57, 66, 76, 75, 57, 59, 53, 67, 45, 54, 60, 55, 91, 68, 60, 45, 54, 78, 83, 68, 52, 60, 60, 84, 37, 55, 55, 69, 75, 83, 67, 54, 73, 72, 64, 63, 58, 56, 75, 58, 70, 56, 58, 97, 51, 79, 60, 45, 69, 56, 89, 70, 76, 61, 67, 66, 50, 72, 49, 62, 60, 52, 61, 63, 56, 84, 53, 53, 52, 65, 97, 114, 73, 63, 67, 59, 65, 56, 62, 83, 84, 54, 65, 56, 75, 58, 94, 59, 54, 65, 85, 39, 65, 67, 69, 103, 56, 38, 69, 56, 54, 58, 73, 104, 58, 69, 61, 93, 71, 50, 58, 68, 78, 70, 82, 64, 58, 81, 81, 74, 74, 68, 70, 78, 59, 89, 77, 57, 74, 45, 66, 53, 84, 74, 59, 51, 55, 91, 63, 57, 60, 53, 58, 66, 76, 54, 53, 79, 47, 83, 58, 70, 68, 54, 67, 60, 62, 59, 58, 47, 78, 56, 69, 65, 64, 64, 59, 82, 46, 65, 78, 82, 50, 60, 58, 52, 58, 60, 54, 59, 83, 74, 79, 65, 59, 64, 58, 69, 102, 66, 74, 79, 83, 52, 68, 86, 75, 55, 78, 51, 49, 60, 67, 52, 57, 73, 69, 61, 68, 68, 59, 72, 91, 64, 45, 63, 59, 54, 53, 43, 59, 55, 56, 64, 52, 62, 63, 91, 60, 70, 56, 54, 65, 49, 75, 75, 74, 71, 54, 57, 77, 55, 74, 91, 61, 80, 60, 59, 63, 62, 60, 65, 53, 43, 60, 65, 67, 59, 56, 79, 69, 60, 74, 74, 83, 81, 95, 64, 61, 72, 59, 54, 73, 62, 57, 66, 51, 54, 55, 68, 75, 58, 58, 58, 57, 44, 105, 60, 62, 62, 61, 61, 57, 74, 77, 68, 91, 73, 58, 54, 57, 62, 74, 75, 61, 56, 54, 52, 74, 55, 85, 78, 55, 76, 56, 62, 57, 72, 66, 73, 66, 75, 71, 90, 67, 102, 45, 52, 64, 45, 65, 73, 69, 58, 49, 63, 62, 62, 65, 57, 61, 59, 71, 66, 63, 56, 77, 85, 58, 60, 66, 65, 55, 59, 85, 70, 59, 91, 53, 59, 67, 60, 69, 63, 59, 52, 59, 52, 85, 55, 51, 75, 77, 75, 71, 69, 52, 53, 84, 63, 68, 43, 57, 68, 85, 98, 82, 67, 64, 59, 79, 69, 65, 73, 53, 64, 72, 71, 64, 50, 87, 70, 71, 58, 57, 56, 57, 96, 59, 65, 61, 61, 76, 64, 72, 61, 49, 53, 53, 56, 65, 79, 61, 51, 59, 48, 73, 47, 48, 73, 56, 55, 73, 51, 68, 68, 94, 73, 51, 57, 71, 66, 67, 70, 70, 65, 60, 52, 47, 55, 94, 80, 51, 55, 91, 58, 65, 78, 62, 72, 48, 45, 70, 70, 65, 53, 55, 113, 96, 72, 73, 62, 65, 44, 76, 69, 83, 54, 71, 80, 81, 61, 57, 60, 49, 73, 68, 64, 46, 90, 50, 83, 67, 98, 60, 65, 75, 68, 53, 56, 53, 57, 64, 48, 65, 58, 78, 70, 50, 39, 59, 53, 62, 55, 53, 76, 72, 74, 74, 70, 75, 64, 58, 60, 87, 46, 73, 109, 52, 73, 63, 112, 63, 73, 72, 76, 61, 65, 63, 52, 75, 53, 59, 58, 56, 61, 73, 93, 57, 64, 84, 92, 56, 64, 54, 66, 78, 82, 80, 64, 64, 74, 74, 52, 63, 95, 69, 70, 54, 58, 80, 59, 81, 87, 59, 67, 64, 65, 72, 93, 50, 72, 55, 69, 73, 50, 56, 55, 72, 60, 59, 56, 53, 59, 65, 56, 52, 66, 71, 58, 67, 75, 73, 58, 49, 49, 60, 66, 59, 49, 63, 71, 55, 73, 59, 54, 62, 72, 64, 90, 60, 62, 63, 68, 55, 55, 61, 57, 50, 61, 73, 58, 60, 59, 87, 93, 72, 61, 53, 48, 75, 54, 62, 57, 47, 72, 56, 59, 69, 76, 76, 65, 95, 55, 76, 77, 82, 43, 132, 74, 74, 67, 69, 68, 67, 69, 69, 60, 59, 84, 66, 56, 65, 82, 55, 54, 67, 63, 69, 52, 70, 68, 53, 54, 61, 62, 140, 61, 59, 66, 75, 84, 71, 75, 59, 61, 67, 73, 55, 55, 43, 82, 53, 76, 69, 72, 65, 61, 50, 69, 59, 49, 58, 60, 56, 55, 52, 68, 40, 59, 94, 123, 64, 52, 62, 58, 105, 61, 55, 54, 65, 60, 49, 63, 59, 84, 73, 64, 53, 54, 52, 51, 54, 71, 86, 71, 67, 58, 70, 94, 59, 62, 71, 80, 88, 65, 75, 64, 63, 51, 100, 45, 65, 64, 62, 65, 97, 55, 72, 62, 90, 62, 57, 67, 71, 74, 70, 69, 57, 70, 71, 54, 74, 64, 62, 59, 67, 47, 63, 54, 52, 54, 57, 68, 74, 49, 59, 61, 57, 59, 80, 54, 99, 56, 63, 49, 84, 77, 44, 60, 71, 62, 67, 53, 94, 64, 59, 59, 69, 38, 55, 56, 64, 79, 99, 56, 65, 71, 61, 68, 98, 45, 57, 93, 62, 56, 57, 65, 124, 56, 68, 63, 84, 60, 69, 63, 68, 58, 69, 78, 111, 63, 74, 82, 61, 57, 51, 69, 46, 58, 67, 66, 58, 50, 67, 72, 58, 134, 72, 72, 67, 56, 63, 46, 62, 73, 70, 67, 63, 53, 63, 72, 65, 59, 62, 82, 67, 78, 83, 54, 67, 57, 57, 143, 56, 47, 78, 68, 79, 48, 68, 56, 64, 77, 58, 50, 54, 67, 65, 68, 48, 89, 62, 84, 48, 67, 61, 58, 57, 68, 76, 44, 82, 54, 61, 65, 97, 59, 72, 62, 58, 62, 69, 86, 62, 71, 80, 39, 47, 74, 60, 95, 116, 63, 74, 66, 66, 111, 96, 67, 51, 65, 80, 64, 70, 60, 56, 71, 59, 60, 74, 64, 54, 60, 68, 91, 52, 91, 88, 54, 44, 103, 106, 59, 55, 71, 63, 69, 72, 55, 75, 50, 60, 63, 61, 51, 57, 62, 62, 56, 70, 57, 71, 60, 68, 46, 64, 83, 84, 57, 43, 73, 68, 62, 52, 58, 139, 60, 68, 64, 62, 84, 71, 55, 64, 56, 67, 68, 61, 40, 68, 63, 93, 61, 63, 63, 74, 91, 53, 72, 62, 48, 63, 52, 67, 83, 74, 47, 55, 55, 45, 58, 75, 53, 50, 50, 61, 55, 25, 61, 55, 61, 77, 69, 86, 68, 63, 78, 68, 91, 57, 77, 77, 53, 48, 63, 64, 83, 77, 64, 63, 60, 63, 65, 54, 64, 66, 66, 77, 64, 78, 76, 65, 74, 70, 51, 75, 72, 94, 71, 59, 56, 64, 63, 64, 106, 67, 59, 51, 43, 51, 53, 83, 106, 51, 64, 59, 67, 59, 61, 43, 52, 71, 104, 63, 34, 66, 58, 74, 96, 56, 69, 56, 66, 64, 64, 60, 104, 58, 76, 68, 77, 77, 70, 69, 52, 61, 52, 57, 71, 63, 65, 109, 61, 53, 46, 63, 52, 63, 77, 71, 62, 55, 73, 79, 64, 80, 61, 78, 64, 63, 58, 69, 57, 76, 51, 75, 75, 78, 63, 89, 62, 66, 77, 64, 81, 50, 69, 59, 67, 60, 73, 59, 57, 81, 97, 75, 63, 69, 64, 56, 105, 63, 64, 65, 60, 57, 65, 58, 73, 69, 61, 83, 65, 70, 56, 65, 71, 59, 61, 73, 55, 96, 63, 52, 105, 47, 58, 74, 109, 89, 53, 85, 80, 43, 47, 81, 61, 56, 77, 89, 66, 92, 68, 60, 45, 98, 62, 68, 69, 66, 61, 74, 42, 68, 74, 53, 49, 50, 65, 88, 57, 55, 56, 69, 85, 52, 63, 75, 74, 92, 71, 55, 67, 55, 71, 56, 46, 56, 78, 66, 68, 56, 78, 66, 65, 57, 70, 61, 49, 62, 68, 63, 58, 64, 69, 67, 60, 52, 105, 49, 51, 82, 57, 57, 70, 59, 72, 55, 45, 109, 91, 73, 68, 65, 80, 65, 71, 66, 79, 83, 74, 52, 60, 69, 54, 74, 69, 61, 62, 101, 76, 60, 76, 48, 66, 55, 49, 91, 66, 56, 71, 72, 44, 83, 69, 69, 71, 61, 82, 56, 62, 60, 49, 56, 68, 54, 94, 55, 90, 71, 51, 54, 76, 62, 72, 101, 52, 74, 76, 53, 61, 53, 59, 49, 95, 62, 75, 61, 63, 82, 82, 56, 60, 68, 51, 66, 67, 73, 66, 66, 67, 62, 57, 65, 50, 57, 62, 64, 65, 55, 59, 44, 61, 81, 66, 57, 62, 55, 54, 52, 68, 59, 51, 48, 61, 67, 72, 59, 58, 63, 60, 37, 67, 55, 52, 73, 67, 52, 63, 68, 58, 73, 51, 57, 49, 73, 51, 58, 87, 79, 96, 85, 71, 57, 59, 60, 82, 78, 57, 53, 56, 74, 59, 70, 64, 75, 54, 48, 64, 61, 67, 51, 49, 57, 80, 59, 67, 62, 100, 57, 53, 77, 79, 67, 65, 68, 64, 74, 66, 56, 58, 47, 88, 83, 47, 60, 61, 47, 64, 82, 56, 61, 47, 58, 56, 58, 90, 54, 57, 63, 65, 51, 100, 77, 63, 58, 66, 79, 65, 59, 64, 111, 65, 51, 51, 53, 70, 66, 65, 50, 74, 64, 62, 63, 54, 65, 115, 52, 60, 77, 74, 52, 49, 47, 59, 60, 73, 60, 62, 85, 68, 69, 60, 92, 56, 59, 80, 63, 56, 99, 63, 54, 56, 52, 57, 62, 87, 59, 55, 61, 94, 60, 62, 84, 133, 59, 58, 58, 71, 62, 72, 51, 56, 68, 69, 58, 51, 61, 70, 75, 68, 74, 62, 55, 112, 61, 76, 60, 64, 73, 64, 69, 63, 64, 60, 69, 50, 66, 67, 52, 73, 70, 69, 77, 58, 55, 64, 58, 77, 68, 58, 82, 56, 75, 60, 63, 75, 81, 64, 62, 92, 78, 80, 58, 53, 65, 55, 82, 80, 64, 60, 79, 82, 60, 66, 145, 70, 60, 50, 64, 54, 62, 58, 64, 73, 64, 85, 73, 56, 55, 82, 49, 63, 60, 66, 74, 56, 74, 47, 85, 68, 44, 61, 66, 80, 60, 58, 61, 81, 68, 61, 57, 57, 65, 90, 74, 51, 45, 91, 38, 62, 71, 50, 77, 60, 50, 85, 69, 63, 74, 49, 116, 49, 61, 65, 78, 65, 54, 68, 74, 52, 75, 57, 62, 68, 58, 68, 54, 86, 61, 61, 62, 74, 67, 61, 61, 63, 59, 57, 54, 53, 47, 71, 70, 61, 72, 76, 72, 65, 63, 83, 85, 64, 81, 76, 53, 55, 72, 67, 74, 67, 53, 63, 73, 66, 79, 43, 59, 61, 73, 60, 77, 92, 91, 69, 68, 64, 70, 75, 50, 58, 71, 84, 74, 58, 55, 64, 51, 58, 54, 65, 78, 93, 64, 54, 77, 118, 54, 81, 58, 64, 85, 50, 66, 60, 75, 59, 65, 53, 69, 77, 60, 60, 102, 58, 74, 66, 63, 81, 70, 62, 67, 58, 66, 65, 61, 48, 83, 66, 63, 49, 76, 59, 47, 56, 66, 83, 61, 69, 58, 66, 70, 70, 63, 71, 62, 71, 87, 62, 66, 65, 67, 61, 74, 69, 55, 57, 84, 61, 58, 67, 107, 97, 67, 63, 56, 76, 64, 73, 65, 65, 68, 90, 51, 66, 104, 48, 63, 64, 72, 56, 54, 65, 77, 49, 71, 72, 59, 55, 54, 82, 60, 59, 67, 45, 106, 47, 59, 59, 55, 63, 63, 82, 116, 84, 67, 70, 81, 69, 55, 77, 81, 59, 78, 57, 80, 51, 76, 59, 68, 102, 57, 64, 61, 54, 70, 96, 58, 59, 68, 60, 50, 62, 54, 70, 59, 79, 46, 63, 59, 39, 63, 59, 70, 62, 56, 65, 61, 60, 96, 73, 84, 72, 55, 57, 69, 50, 61, 70, 59, 82, 68, 84, 74, 53, 51, 51, 72, 42, 66, 68, 68, 65, 59, 60, 59, 74, 67, 72, 58, 60, 62, 48, 62, 58, 74, 57, 71, 55, 72, 65, 53, 52, 47, 64, 107, 65, 45, 49, 53, 112, 54, 57, 59, 57, 47, 60, 68, 85, 69, 59, 50, 58, 41, 67, 55, 48, 61, 66, 68, 64, 80, 38, 58, 62, 70, 97, 61, 60, 54, 73, 64, 81, 45, 70, 79, 57, 70, 65, 46, 66, 70, 60, 64, 65, 64, 68, 55, 69, 56, 62, 55, 80, 59, 115, 82, 55, 62, 69, 134, 54, 65, 49, 69, 68, 58, 61, 42, 67, 66, 63, 61, 86, 61, 71, 43, 80, 66, 56, 116, 62, 55, 74, 69, 57, 80, 61, 63, 56, 50, 67, 75, 63, 74, 64, 83, 65, 72, 74, 61, 62, 73, 59, 59, 80, 72, 68, 58, 56, 60, 61, 60, 68, 60, 77, 81, 52, 73, 57, 49, 85, 77, 79, 57, 65, 72, 71, 48, 68, 70, 54, 64, 72, 63, 64, 65, 71, 73, 54, 44, 62, 58, 61, 67, 73, 64, 55, 72, 99, 82, 68, 66, 59, 63, 79, 86, 45, 56, 63, 57, 60, 62, 106, 75, 65, 74, 48, 54, 82, 59, 53, 77, 101, 75, 67, 47, 46, 52, 59, 50, 87, 52, 87, 73, 92, 74, 57, 75, 79, 63, 60, 66, 50, 50, 64, 99, 108, 55, 73, 57, 63, 57, 83, 76, 58, 68, 58, 51, 69, 40, 71, 59, 64, 58, 53, 71, 64, 49, 79, 62, 60, 71, 72, 70, 63, 43, 78, 50, 49, 56, 67, 70, 58, 46, 64, 63, 55, 91, 74, 55, 62, 63, 54, 63, 108, 73, 58, 76, 83, 53, 69, 63, 61, 49, 61, 56, 60, 61, 70, 59, 79, 57, 65, 70, 52, 69, 32, 69, 67, 69, 67, 62, 77, 65, 63, 63, 105, 53, 50, 74, 49, 56, 67, 52, 59, 62, 63, 70, 79, 81, 57, 68, 57, 68, 55, 66, 55, 62, 57, 75, 55, 65, 59, 89, 64, 78, 53, 68, 72, 64, 54, 56, 67, 87, 76, 61, 57, 67, 59, 63, 64, 61, 41, 78, 46, 55, 67, 66, 52, 67, 82, 56, 66, 63, 60, 61, 77, 47, 63, 63, 102, 62, 54, 65, 67, 65, 61, 62, 76, 57, 91, 57, 66, 65, 48, 62, 64, 59, 98, 63, 62, 58, 63, 89, 62, 71, 77, 68, 61, 92, 62, 69, 66, 67, 72, 56, 60, 71, 65, 64, 57, 54, 68, 56, 59, 85, 73, 92, 87, 65, 47, 70, 59, 64, 51, 64, 62, 64, 77, 71, 68, 55, 61, 78, 71, 82, 60, 57, 64, 62, 70, 59, 56, 58, 47, 59, 52, 59, 72, 64, 64, 63, 58, 46, 84, 73, 73, 54, 80, 63, 66, 45, 62, 64, 65, 62, 61, 69, 57, 64, 57, 61, 68, 76, 53, 67, 56, 61, 82, 65, 62, 58, 70, 64, 48, 61, 60, 57, 64, 66, 70, 54, 86, 56, 71, 72, 72, 91, 41, 56, 75, 52, 43, 79, 55, 72, 50, 85, 53, 66, 56, 62, 66, 69, 66, 64, 55, 61, 54, 60, 70, 54, 83, 116, 61, 65, 80, 64, 72, 64, 59, 75, 63, 59, 62, 77, 63, 56, 53, 62, 81, 55, 55, 64, 64, 51, 65, 65, 67, 53, 74, 61, 46, 87, 64, 73, 65, 68, 81, 49, 69, 69, 64, 71, 53, 61, 57, 67, 63, 56, 54, 65, 103, 64, 61, 71, 68, 89, 70, 60, 70, 59, 59, 59, 74, 55, 87, 66, 67, 57, 66, 58, 62, 69, 61, 70, 86, 54, 48, 55, 95, 68, 64, 70, 79, 58, 64, 49, 62, 55, 61, 61, 53, 64, 60, 71, 60, 61, 49, 60, 66, 73, 67, 137, 57, 71, 57, 70, 62, 68, 93, 55, 65, 73, 77, 73, 60, 68, 110, 52, 64, 88, 65, 63, 52, 74, 63, 68, 50, 59, 62, 58, 59, 64, 68, 54, 53, 59, 71, 53, 62, 76, 63, 57, 61, 74, 63, 71, 55, 71, 52, 73, 55, 56, 68, 57, 77, 79, 68, 59, 66, 57, 64, 62, 61, 56, 69, 75, 72, 59, 62, 59, 60, 56, 55, 76, 56, 97, 58, 62, 73, 90, 58, 59, 51, 56, 63, 60, 65, 77, 60, 55, 61, 89, 62, 63, 62, 66, 74, 62, 61, 63, 51, 67, 85, 55, 50, 80, 72, 49, 59, 65, 67, 59, 59, 64, 61, 60, 58, 58, 66, 69, 56, 71, 71, 54, 58, 67, 62, 59, 65, 62, 64, 51, 62, 88, 64, 66, 80, 50, 67, 65, 80, 71, 98, 121, 45, 51, 74, 63, 79, 71, 54, 64, 58, 83, 133, 70, 50, 46, 59, 59, 86, 53, 55, 64, 53, 57, 67, 50, 54, 57, 70, 51, 79, 59, 57, 61, 57, 61, 67, 86, 65, 73, 82, 59, 106, 87, 52, 55, 70, 78, 57, 60, 59, 56, 64, 59, 72, 67, 73, 78, 72, 75, 71, 60, 78, 81, 94, 76, 66, 70, 66, 59, 49, 61, 60, 84, 69, 64, 73, 101, 66, 67, 60, 76, 63, 106, 68, 66, 106, 57, 100, 61, 61, 78, 70, 105, 68, 69, 49, 63, 61, 75, 61, 73, 52, 90, 63, 72, 57, 63, 68, 68, 52, 59, 61, 51, 79, 61, 63, 84, 70, 61, 58, 67, 52, 53, 58, 64, 63, 62, 56, 52, 66, 61, 61, 71, 59, 79, 68, 60, 65, 56, 80, 53, 63, 65, 67, 70, 80, 57, 62, 64, 44, 72, 62, 67, 70, 91, 63, 78, 62, 50, 61, 70, 94, 70, 46, 63, 53, 57, 69, 61, 53, 60, 58, 57, 47, 51, 64, 62, 95, 78, 60, 82, 70, 65, 67, 96, 65, 59, 61, 61, 67, 61, 77, 69, 65, 78, 63, 64, 62, 50, 113, 45, 65, 74, 49, 57, 60, 68, 64, 65, 136, 69, 52, 60, 75, 69, 58, 58, 60, 59, 54, 68, 49, 59, 63, 58, 93, 60, 62, 76, 70, 51, 90, 65, 65, 59, 66, 83, 48, 66, 92, 69, 60, 73, 56, 97, 52, 71, 68, 67, 59, 80, 83, 72, 54, 61, 58, 44, 63, 82, 63, 67, 51, 103, 56, 68, 96, 54, 60, 58, 64, 54, 62, 68, 62, 78, 73, 72, 62, 91, 51, 59, 75, 53, 62, 112, 61, 64, 47, 72, 103, 63, 56, 98, 53, 66, 71, 72, 67, 71, 57, 78, 58, 80, 56, 63, 66, 57, 71, 66, 76, 121, 56, 61, 64, 67, 79, 53, 63, 71, 66, 64, 49, 63, 69, 82, 64, 54, 57, 60, 55, 58, 67, 65, 72, 68, 71, 56, 46, 65, 63, 65, 80, 63, 73, 77, 58, 63, 45, 121, 108, 71, 65, 78, 68, 66, 63, 63, 59, 62, 64, 67, 50, 50, 60, 62, 67, 89, 68, 51, 102, 60, 71, 64, 76, 51, 67, 69, 60, 62, 59, 61, 74, 70, 48, 64, 63, 63, 64, 60, 73, 61, 66, 67, 66, 57, 62, 81, 67, 63, 58, 63, 54, 72, 73, 60, 53, 51, 64, 87, 62, 94, 72, 64, 66, 73, 59, 58, 63, 72, 103, 47, 57, 60, 54, 61, 68, 64, 76, 73, 55, 62, 105, 68, 64, 67, 46, 63, 92, 62, 53, 61, 53, 66, 84, 89, 59, 88, 64, 54, 91, 53, 61, 55, 63, 61, 62, 70, 61, 63, 57, 60, 83, 87, 58, 53, 69, 63, 59, 69, 100, 56, 65, 71, 58, 52, 53, 85, 64, 53, 53, 52, 57, 53, 52, 68, 70, 64, 55, 69, 58, 82, 73, 50, 61, 64, 56, 56, 61, 52, 75, 76, 69, 70, 75, 68, 97, 54, 81, 70, 60, 80, 57, 71, 69, 60, 62, 59, 99, 54, 61, 62, 65, 60, 56, 62, 59, 59, 72, 46, 69, 62, 67, 47, 77, 63, 60, 65, 73, 83, 75, 62, 66, 79, 69, 60, 66, 50, 58, 50, 57, 66, 67, 72, 57, 79, 50, 58, 56, 62, 63, 64, 65, 66, 145, 83, 70, 60, 57, 62, 66, 60, 54, 71, 61, 53, 64, 49, 79, 62, 57, 64, 75, 76, 64, 67, 68, 64, 59, 77, 53, 60, 57, 71, 66, 77, 55, 60, 66, 47, 52, 57, 54, 78, 75, 54, 64, 59, 54, 59, 62, 56, 55, 54, 64, 52, 90, 82, 53, 79, 74, 77, 66, 63, 72, 55, 75, 54, 65, 63, 78, 56, 59, 57, 63, 64, 81, 61, 64, 58, 50, 66, 57, 56, 79, 61, 61, 67, 57, 58, 66, 56, 85, 65, 61, 97, 73, 56, 55, 60, 43, 57, 68, 64, 74, 55, 62, 70, 81, 62, 63, 60, 68, 117, 52, 81, 71, 67, 73, 76, 65, 85, 67, 60, 49, 63, 39, 64, 69, 63, 59, 60, 66, 69, 58, 64, 66, 78, 74, 69, 94, 63, 61, 83, 67, 60, 67, 61, 65, 80, 71, 56, 45, 56, 47, 61, 66, 66, 52, 58, 63, 57, 55, 58, 56, 67, 71, 75, 72, 60, 62, 56, 49, 56, 65, 63, 61, 70, 84, 90, 60, 49, 78, 73, 67, 68, 53, 81, 68, 59, 59, 67, 83, 54, 54, 73, 75, 72, 49, 59, 74, 54, 64, 65, 68, 64, 64, 72, 68, 99, 62, 72, 65, 62, 84, 93, 47, 58, 63, 69, 70, 60, 55, 54, 73, 55, 77, 81, 71, 58, 63, 55, 67, 51, 64, 66, 50, 64, 46, 44, 74, 60, 80, 81, 75, 53, 65, 66, 60, 66, 52, 99, 57, 57, 58, 61, 69, 81, 55, 68, 50, 55, 63, 61, 52, 57, 92, 72, 72, 63, 63, 82, 59, 72, 104, 58, 48, 62, 51, 57, 62, 90, 60, 63, 40, 100, 75, 72, 60, 78, 55, 79, 63, 55, 61, 61, 57, 49, 51, 70, 102, 63, 69, 68, 67, 68, 93, 61, 63, 58, 64, 64, 61, 57, 54, 77, 72, 58, 55, 66, 106, 63, 60, 74, 80, 49, 62, 55, 64, 66, 67, 77, 52, 69, 82, 73, 84, 58, 63, 59, 84, 59, 57, 66, 91, 48, 54, 71, 63, 66, 62, 57, 62, 69, 82, 53, 69, 71, 85, 75, 67, 65, 76, 70, 62, 55, 78, 46, 66, 68, 50, 42, 60, 74, 79, 46, 82, 53, 61, 79, 70, 53, 53, 65, 70, 60, 79, 75, 50, 45, 60, 79, 62, 47, 66, 56, 95, 56, 58, 72, 62, 70, 64, 67, 59, 48, 76, 53, 61, 88, 80, 70, 64, 60, 49, 78, 61, 82, 79, 67, 65, 102, 72, 62, 74, 56, 65, 65, 53, 81, 43, 52, 66, 63, 57, 73, 53, 60, 57, 65, 65, 68, 46, 54, 66, 67, 84, 61, 69, 66, 79, 64, 63, 69, 78, 73, 55, 56, 69, 43, 77, 72, 73, 66, 74, 126, 60, 45, 74, 80, 65, 58, 77, 73, 61, 53, 85, 66, 71, 66, 70, 75, 69, 48, 60, 58, 67, 66, 87, 74, 76, 48, 47, 76, 52, 66, 78, 58, 59, 59, 69, 62, 47, 60, 81, 67, 37, 59, 80, 54, 58, 83, 49, 67, 48, 72, 74, 144, 59, 61, 51, 64, 88, 69, 75, 56, 52, 114, 68, 80, 53, 68, 60, 71, 68, 51, 81, 55, 75, 57, 85, 59, 79, 45, 64, 74, 64, 52, 46, 57, 107, 82, 81, 65, 76, 64, 56, 76, 59, 54, 49, 62, 65, 79, 81, 71, 62, 100, 74, 62, 65, 64, 75, 72, 66, 53, 59, 72, 58, 54, 59, 58, 83, 70, 55, 83, 54, 75, 63, 66, 69, 66, 90, 77, 56, 83, 73, 67, 63, 43, 60, 67, 58, 59, 63, 76, 56, 72, 54, 64, 58, 58, 62, 55, 41, 101, 89, 63, 49, 68, 56, 60, 71, 69, 72, 56, 83, 76, 40, 65, 75, 81, 82, 76, 90, 61, 71, 96, 97, 86, 50, 75, 47, 61, 62, 60, 68, 67, 59, 100, 73, 63, 74, 57, 51, 46, 81, 84, 53, 63, 61, 53, 86, 60, 67, 48, 60, 69, 49, 55, 74, 58, 64, 66, 92, 71, 84, 59, 49, 60, 64, 64, 69, 71, 61, 76, 79, 66, 94, 55, 73, 61, 59, 58, 59, 56, 43, 65, 65, 73, 82, 62, 86, 72, 73, 70, 57, 53, 50, 63, 53, 73, 82, 74, 78, 82, 70, 48, 73, 85, 53, 50, 66, 46, 66, 84, 62, 57, 54, 71, 75, 55, 73, 46, 60, 54, 58, 41, 54, 64, 70, 60, 81, 65, 88, 69, 62, 53, 60, 74, 55, 71, 68, 69, 107, 72, 58, 68, 56, 73, 62, 70, 55, 73, 52, 56, 59, 77, 51, 62, 62, 57, 63, 70, 67, 57, 54, 55, 58, 79, 86, 61, 61, 64, 69, 67, 67, 71, 58, 84, 78, 73, 59, 81, 66, 61, 47, 63, 68, 84, 58, 74, 75, 51, 60, 55, 70, 52, 98, 61, 64, 90, 66, 150, 69, 76, 59, 73, 42, 65, 61, 78, 48, 67, 53, 75, 59, 65, 84, 57, 72, 69, 55, 68, 65, 47, 63, 52, 64, 68, 51, 57, 55, 77, 63, 58, 70, 67, 62, 81, 65, 49, 71, 57, 82, 65, 66, 82, 64, 69, 69, 74, 58, 86, 48, 77, 75, 47, 72, 74, 82, 54, 63, 51, 56, 68, 78, 50, 66, 64, 62, 72, 58, 67, 73, 67, 54, 80, 95, 71, 59, 56, 51, 78, 75, 67, 61, 74, 67, 51, 73, 83, 85, 71, 104, 55, 70, 56, 63, 70, 75, 61, 48, 60, 82, 61, 50, 75, 67, 45, 53, 87, 63, 57, 68, 58, 97, 65, 63, 58, 56, 59, 65, 68, 60, 77, 56, 68, 83, 49, 62, 62, 58, 76, 86, 53, 61, 60, 63, 103, 58, 78, 55, 80, 69, 90, 85, 64, 61, 61, 50, 67, 70, 67, 78, 72, 46, 41, 56, 66, 50, 51, 37, 64, 57, 43, 65, 73, 58, 65, 73, 62, 53, 81, 62, 79, 74, 55, 57, 63, 53, 75, 72, 67, 49, 68, 58, 60, 80, 62, 59, 62, 72, 89, 47, 67, 73, 58, 60, 69, 62, 75, 66, 67, 83, 63, 34, 59, 69, 63, 62, 58, 64, 64, 63, 97, 69, 63, 69, 56, 62, 54, 53, 81, 49, 51, 69, 63, 77, 49, 63, 60, 71, 96, 61, 83, 78, 70, 70, 78, 66, 50, 48, 56, 71, 52, 61, 57, 63, 61, 49, 63, 52, 39, 56, 66, 68, 72, 71, 53, 61, 55, 57, 55, 59, 72, 66, 86, 64, 62, 58, 73, 69, 53, 59, 52, 60, 55, 60, 87, 40, 53, 62, 72, 58, 65, 53, 72, 55, 57, 72, 54, 47, 69, 60, 70, 70, 65, 58, 72, 61, 57, 65, 59, 71, 78, 80, 117, 53, 63, 53, 60, 81, 73, 85, 55, 65, 88, 55, 57, 54, 60, 52, 91, 48, 67, 63, 71, 55, 75, 54, 74, 89, 53, 63, 63, 65, 49, 58, 64, 84, 54, 71, 57, 52, 64, 113, 38, 64, 76, 64, 57, 76, 83, 63, 65, 71, 98, 65, 47, 70, 51, 62, 52, 58, 50, 76, 85, 115, 86, 61, 60, 60, 59, 60, 65, 64, 48, 64, 85, 74, 70, 56, 59, 58, 55, 55, 58, 47, 86, 59, 64, 46, 53, 94, 54, 65, 62, 101, 48, 47, 50, 51, 60, 71, 79, 52, 63, 66, 54, 64, 82, 45, 61, 75, 76, 74, 61, 68, 54, 51, 49, 74, 126, 45, 55, 57, 64, 93, 62, 91, 53, 56, 86, 75, 84, 66, 64, 93, 70, 67, 54, 80, 52, 64, 57, 78, 64, 54, 66, 52, 63, 52, 64, 71, 58, 60, 67, 112, 82, 60, 54, 63, 86, 80, 64, 53, 62, 45, 55, 48, 86, 52, 63, 68, 59, 52, 69, 72, 57, 54, 85, 75, 62, 81, 75, 59, 65, 88, 110, 58, 51, 55, 63, 58, 54, 67, 66, 57, 81, 63, 56, 69, 59, 57, 69, 64, 65, 97, 62, 70, 54, 69, 52, 79, 83, 55, 84, 68, 52, 88, 73, 62, 62, 65, 45, 73, 66, 67, 55, 68, 59, 76, 60, 94, 75, 50, 90, 64, 69, 53, 43, 63, 58, 75, 44, 48, 75, 125, 80, 61, 62, 96, 78, 54, 90, 50, 64, 90, 72, 57, 51, 59, 61, 89, 55, 60, 56, 102, 70, 50, 54, 82, 63, 52, 42, 63, 57, 65, 87, 51, 75, 48, 53, 53, 60, 57, 49, 59, 55, 60, 57, 51, 57, 47, 66, 56, 71, 66, 80, 77, 73, 57, 82, 61, 107, 81, 52, 66, 65, 96, 83, 45, 50, 65, 62, 93, 54, 90, 47, 58, 61, 65, 124, 69, 71, 51, 65, 60, 83, 51, 84, 82, 77, 68, 69, 35, 64, 59, 54, 59, 60, 55, 74, 54, 60, 70, 60, 76, 56, 73, 66, 55, 55, 57, 55, 73, 65, 45, 63, 75, 53, 52, 65, 68, 59, 67, 55, 62, 61, 57, 68, 59, 63, 51, 56, 93, 69, 77, 127, 79, 73, 68, 42, 73, 71, 61, 50, 62, 68, 75, 55, 57, 73, 55, 53, 62, 76, 81, 50, 90, 71, 70, 51, 69, 58, 64, 41, 68, 66, 63, 56, 65, 75, 60, 63, 59, 70, 63, 72, 69, 50, 91, 45, 54, 74, 75, 56, 66, 85, 50, 110, 61, 56, 94, 72, 76, 51, 73, 60, 51, 132, 103, 69, 69, 59, 59, 68, 85, 75, 57, 93, 54, 60, 67, 87, 69, 59, 66, 70, 48, 53, 96, 61, 103, 74, 57, 69, 68, 45, 131, 66, 63, 60, 51, 59, 49, 45, 75, 67, 57, 77, 62, 61, 76, 79, 70, 71, 50, 69, 68, 52, 47, 59, 61, 58, 46, 56, 61, 64, 77, 68, 71, 68, 82, 65, 72, 62, 52, 69, 74, 54, 46, 59, 59, 60, 60, 42, 90, 54, 59, 51, 72, 63, 53, 52, 69, 58, 70, 65, 57, 56, 61, 61, 56, 42, 66, 58, 63, 70, 76, 60, 53, 65, 62, 63, 63, 83, 65, 63, 70, 79, 72, 48, 54, 85, 62, 64, 69, 95, 63, 60, 46, 67, 59, 71, 65, 75, 60, 63, 67, 63, 59, 61, 60, 75, 69, 67, 48, 50, 55, 30, 91, 55, 58, 67, 67, 47, 99, 59, 46, 48, 66, 91, 85, 67, 70, 67, 57, 58, 96, 54, 105, 93, 56, 60, 54, 66, 52, 73, 48, 102, 45, 55, 144, 70, 67, 60, 48, 73, 53, 46, 60, 71, 60, 69, 65, 70, 54, 57, 72, 55, 70, 76, 63, 51, 68, 54, 62, 53, 68, 47, 61, 87, 69, 55, 64, 68, 57, 51, 62, 60, 46, 68, 63, 71, 51, 89, 61, 59, 66, 97, 62, 99, 74, 64, 65, 99, 109, 78, 46, 58, 74, 93, 57, 84, 64, 75, 89, 70, 69, 98, 64, 71, 86, 66, 68, 55, 66, 51, 56, 56, 63, 76, 92, 60, 49, 66, 81, 64, 61, 67, 64, 91, 55, 60, 67, 64, 81, 43, 75, 63, 74, 59, 56, 62, 110, 53, 59, 79, 45, 63, 84, 55, 60, 61, 51, 134, 68, 78, 47, 86, 74, 58, 64, 77, 58, 57, 58, 58, 62, 77, 59, 62, 66, 61, 71, 62, 66, 41, 56, 50, 58, 75, 48, 58, 80, 32, 43, 64, 60, 56, 74, 81, 95, 80, 63, 51, 49, 48, 59, 53, 68, 61, 63, 80, 64, 86, 95, 63, 51, 65, 62, 76, 67, 61, 58, 74, 59, 69, 77, 65, 53, 58, 79, 84, 58, 95, 75, 63, 72, 67, 74, 78, 60, 60, 58, 96, 51, 56, 68, 73, 63, 72, 78, 46, 52, 72, 78, 64, 58, 81, 51, 55, 46, 97, 53, 70, 61, 52, 64, 83, 62, 61, 55, 80, 68, 56, 72, 76, 93, 87, 62, 82, 69, 54, 72, 101, 91, 58, 56, 76, 80, 46, 65, 65, 59, 73, 58, 70, 55, 54, 67, 69, 77, 54, 104, 66, 64, 77, 52, 67, 59, 59, 63, 77, 57, 63, 47, 45, 63, 51, 64, 62, 69, 67, 65, 57, 67, 95, 64, 73, 53, 66, 84, 53, 55, 42, 75, 62, 59, 55, 52, 65, 49, 71, 63, 62, 67, 64, 62, 54, 81, 57, 69, 68, 67, 50, 70, 68, 73, 82, 57, 63, 90, 67, 78, 55, 95, 51, 67, 52, 66, 83, 66, 74, 71, 48, 46, 79, 60, 53, 125, 59, 70, 75, 59, 75, 47, 92, 56, 87, 62, 68, 64, 67, 59, 71, 60, 61, 79, 71, 54, 72, 62, 62, 77, 83, 80, 57, 98, 61, 62, 29, 49, 53, 56, 58, 59, 66, 92, 74, 48, 58, 69, 68, 54, 54, 84, 75, 78, 66, 69, 57, 88, 67, 43, 64, 76, 61, 63, 56, 42, 57, 43, 64, 69, 64, 63, 57, 56, 60, 50, 83, 72, 65, 55, 60, 67, 53, 61, 79, 53, 58, 54, 69, 50, 60, 62, 55, 69, 61, 74, 70, 55, 61, 58, 77, 56, 60, 62, 72, 39, 54, 72, 45, 77, 82, 39, 72, 48, 60, 38, 59, 63, 79, 76, 64, 85, 61, 72, 78, 80, 61, 59, 51, 60, 47, 93, 73, 95, 72, 69, 56, 94, 69, 62, 92, 70, 54, 73, 68, 63, 60, 72, 64, 75, 63, 80, 60, 76, 66, 68, 51, 63, 65, 76, 60, 58, 91, 59, 47, 52, 47, 62, 58, 86, 58, 66, 52, 63, 62, 50, 74, 52, 91, 98, 52, 48, 62, 87, 59, 61, 70, 55, 58, 70, 60, 62, 61, 83, 67, 68, 63, 63, 85, 47, 61, 56, 61, 56, 73, 59, 74, 67, 61, 60, 65, 81, 57, 79, 54, 52, 63, 61, 62, 56, 77, 81, 88, 64, 76, 67, 64, 84, 105, 63, 66, 63, 44, 64, 49, 82, 58, 59, 64, 50, 64, 47, 61, 66, 82, 73, 62, 47, 64, 64, 48, 85, 67, 60, 94, 51, 61, 61, 69, 65, 61, 87, 54, 60, 63, 46, 58, 64, 61, 63, 61, 41, 85, 68, 69, 117, 57, 42, 74, 55, 57, 72, 64, 67, 70, 59, 66, 57, 70, 70, 65, 52, 52, 69, 55, 50, 69, 57, 56, 55, 67, 60, 53, 62, 69, 74, 75, 59, 57, 65, 50, 64, 48, 56, 55, 82, 60, 58, 64, 58, 63, 71, 103, 55, 105, 64, 67, 54, 53, 63, 53, 70, 65, 62, 102, 75, 56, 103, 82, 88, 42, 67, 61, 75, 59, 70, 53, 65, 70, 53, 52, 70, 52, 61, 60, 91, 66, 73, 46, 67, 59, 53, 46, 54, 56, 51, 69, 76, 71, 57, 83, 69, 70, 88, 59, 66, 66, 66, 89, 67, 90, 52, 64, 64, 66, 73, 66, 84, 85, 77, 69, 50, 71, 61, 68, 108, 74, 60, 52, 56, 57, 54, 59, 77, 56, 71, 83, 66, 51, 65, 63, 73, 62, 75, 86, 73, 70, 65, 65, 74, 49, 63, 64, 67, 60, 95, 63, 43, 59, 58, 57, 65, 79, 70, 48, 72, 69, 63, 54, 75, 50, 53, 89, 49, 61, 55, 55, 60, 51, 58, 74, 66, 58, 77, 59, 67, 75, 76, 60, 66, 68, 76, 56, 73, 97, 58, 96, 59, 58, 56, 89, 69, 57, 60, 65, 69, 52, 113, 65, 65, 51, 75, 65, 55, 79, 73, 59, 52, 55, 64, 79, 45, 70, 55, 80, 63, 54, 64, 51, 53, 57, 62, 73, 70, 69, 69, 57, 68, 54, 79, 55, 69, 59, 47, 62, 59, 71, 69, 59, 55, 60, 60, 72, 67, 68, 59, 71, 73, 64, 88, 51, 64, 60, 74, 56, 58, 70, 60, 89, 65, 58, 68, 92, 75, 56, 71, 60, 59, 58, 58, 63, 54, 55, 108, 74, 79, 77, 72, 69, 57, 60, 58, 67, 60, 75, 65, 83, 60, 108, 72, 51, 58, 63, 57, 83, 59, 58, 67, 59, 64, 65, 61, 87, 108, 58, 56, 80, 74, 76, 56, 66, 64, 69, 66, 62, 62, 58, 54, 49, 64, 64, 59, 70, 62, 76, 80, 63, 56, 67, 78, 59, 76, 56, 57, 79, 60, 80, 69, 77, 62, 94, 75, 67, 74, 67, 62, 88, 88, 80, 59, 55, 77, 127, 70, 53, 62, 62, 56, 74, 68, 62, 57, 66, 67, 51, 83, 76, 56, 67, 62, 81, 72, 60, 57, 55, 60, 46, 70, 95, 74, 50, 74, 84, 62, 54, 63, 74, 50, 79, 50, 71, 54, 60, 60, 55, 118, 73, 85, 47, 60, 72, 70, 71, 57, 52, 61, 66, 77, 64, 79, 55, 81, 66, 61, 71, 66, 60, 63, 69, 65, 81, 94, 64, 58, 51, 83, 67, 66, 73, 55, 63, 56, 55, 88, 50, 43, 79, 85, 70, 64, 52, 90, 56, 63, 59, 60, 58, 69, 63, 54, 45, 53, 59, 69, 44, 50, 70, 54, 72, 58, 94, 54, 72, 70, 54, 63, 64, 75, 82, 54, 124, 49, 68, 66, 83, 124, 127, 54, 78, 57, 60, 54, 55, 53, 83, 96, 56, 78, 78, 49, 76, 78, 64, 58, 64, 82, 80, 89, 58, 62, 69, 54, 61, 60, 44, 59, 57, 76, 66, 70, 62, 74, 79, 70, 63, 70, 76, 54, 69, 50, 61, 73, 75, 54, 74, 61, 59, 85, 73, 80, 59, 58, 56, 63, 128, 63, 52, 68, 53, 65, 67, 70, 72, 60, 62, 48, 59, 63, 53, 66, 89, 50, 63, 58, 68, 110, 52, 67, 46, 74, 59, 81, 67, 56, 71, 56, 64, 63, 50, 55, 60, 61, 49, 71, 67, 67, 82, 62, 62, 69, 55, 60, 102, 50, 59, 51, 64, 59, 68, 89, 58, 61, 68, 57, 54, 69, 68, 50, 59, 49, 62, 48, 83, 54, 69, 95, 65, 56, 58, 72, 56, 63, 79, 65, 52, 64, 58, 93, 63, 66, 55, 63, 63, 95, 58, 67, 50, 67, 73, 53, 49, 60, 73, 52, 47, 54, 67, 55, 70, 61, 51, 68, 56, 57, 66, 63, 103, 87, 83, 53, 76, 55, 54, 58, 72, 87, 55, 54, 70, 72, 57, 36, 63, 69, 51, 67, 65, 55, 63, 70, 111, 71, 55, 62, 65, 67, 58, 73, 55, 86, 75, 71, 48, 85, 90, 65, 82, 53, 75, 82, 63, 62, 50, 65, 62, 52, 57, 67, 48, 66, 57, 53, 60, 60, 72, 63, 53, 59, 59, 105, 59, 61, 57, 65, 65, 58, 56, 57, 51, 48, 61, 68, 64, 76, 97, 47, 55, 61, 57, 68, 77, 75, 50, 64, 56, 68, 58, 64, 56, 51, 53, 70, 47, 68, 61, 68, 80, 79, 69, 56, 63, 66, 67, 53, 53, 50, 79, 60, 70, 70, 69, 65, 59, 66, 63, 65, 59, 70, 57, 69, 55, 58, 76, 94, 60, 63, 61, 69, 55, 53, 83, 54, 59, 65, 62, 53, 53, 73, 99, 87, 60, 73, 58, 69, 60, 68, 60, 76, 57, 62, 62, 76, 71, 58, 71, 79, 50, 66, 59, 105, 79, 66, 50, 59, 43, 88, 53, 55, 61, 87, 62, 49, 61, 60, 54, 78, 61, 58, 62, 43, 60, 70, 63, 63, 74, 87, 56, 116, 66, 64, 69, 57, 46, 59, 54, 53, 59, 64, 89, 69, 85, 47, 76, 79, 54, 72, 85, 61, 52, 57, 48, 65, 94, 65, 59, 105, 59, 51, 44, 61, 63, 58, 60, 74, 57, 57, 65, 104, 66, 69, 54, 75, 58, 74, 57, 70, 67, 106, 80, 62, 64, 54, 51, 88, 60, 56, 51, 80, 52, 48, 53, 58, 59, 51, 56, 68, 92, 54, 73, 74, 56, 73, 62, 49, 67, 89, 82, 66, 45, 65, 57, 63, 52, 79, 47, 54, 77, 56, 67, 53, 75, 63, 56, 51, 71, 62, 55, 74, 55, 101, 77, 68, 49, 53, 61, 76, 47, 86, 56, 51, 94, 63, 51, 75, 89, 71, 64, 58, 63, 77, 74, 63, 63, 50, 62, 73, 51, 57, 71, 71, 65, 71, 71, 64, 60, 57, 71, 78, 75, 46, 61, 71, 125, 70, 62, 68, 57, 62, 67, 77, 56, 59, 57, 70, 65, 67, 65, 49, 76, 53, 84, 67, 51, 71, 67, 67, 76, 63, 81, 82, 52, 59, 51, 60, 61, 115, 63, 65, 52, 90, 44, 94, 74, 62, 66, 47, 60, 73, 55, 61, 66, 59, 57, 62, 88, 60, 61, 61, 55, 72, 66, 66, 77, 53, 62, 87, 75, 46, 65, 54, 66, 56, 66, 57, 43, 56, 74, 62, 49, 84, 56, 59, 65, 46, 86, 57, 68, 64, 66, 74, 55, 67, 60, 59, 59, 97, 63, 69, 62, 57, 54, 98, 73, 144, 73, 49, 58, 70, 64, 74, 54, 56, 72, 58, 69, 61, 75, 78, 104, 67, 57, 43, 57, 69, 55, 58, 86, 60, 67, 49, 84, 64, 67, 50, 52, 63, 87, 75, 53, 56, 83, 52, 62, 65, 92, 49, 56, 67, 65, 65, 88, 61, 61, 94, 61, 52, 37, 55, 48, 70, 73, 62, 61, 46, 70, 55, 80, 76, 67, 65, 83, 73, 98, 57, 81, 66, 82, 83, 86, 88, 91, 65, 68, 78, 56, 65, 69, 54, 50, 58, 81, 62, 57, 51, 52, 52, 59, 59, 48, 60, 69, 53, 76, 48, 70, 66, 58, 55, 46, 54, 69, 73, 90, 56, 71, 63, 62, 57, 93, 57, 74, 93, 62, 73, 86, 54, 56, 64, 71, 77, 95, 78, 85, 56, 63, 66, 48, 60, 65, 78, 58, 132, 57, 70, 95, 58, 86, 53, 70, 56, 62, 73, 53, 82, 62, 59, 57, 62, 57, 74, 50, 64, 61, 64, 62, 66, 51, 80, 71, 76, 96, 74, 69, 94, 78, 59, 56, 56, 83, 61, 60, 54, 61, 61, 60, 61, 72, 68, 68, 136, 74, 76, 87, 66, 59, 66, 64, 76, 49, 77, 55, 46, 73, 71, 60, 67, 49, 49, 54, 55, 87, 63, 67, 58, 63, 55, 56, 80, 52, 57, 67, 57, 98, 62, 81, 61, 63, 61, 90, 68, 69, 85, 71, 66, 58, 57, 71, 63, 57, 57, 48, 53, 73, 74, 70, 65, 43, 46, 69, 69, 69, 65, 58, 56, 64, 68, 66, 67, 63, 61, 61, 73, 51, 101, 76, 50, 66, 53, 75, 65, 64, 62, 49, 60, 50, 72, 46, 73, 72, 59, 69, 67, 56, 61, 79, 92, 69, 75, 79, 78, 49, 59, 71, 66, 80, 66, 50, 51, 50, 65, 61, 66, 47, 66, 71, 57, 69, 66, 63, 62, 82, 65, 60, 47, 85, 59, 79, 63, 54, 68, 85, 67, 106, 56, 88, 78, 85, 54, 76, 49, 53, 62, 69, 91, 48, 59, 63, 57, 54, 121, 74, 49, 54, 81, 43, 72, 49, 106, 70, 56, 53, 70, 61, 69, 65, 51, 78, 58, 67, 90, 61, 53, 57, 57, 50, 70, 73, 63, 66, 93, 72, 57, 61, 57, 93, 58, 61, 85, 63, 66, 67, 58, 62, 67, 65, 75, 78, 54, 82, 74, 56, 72, 67, 70, 63, 37, 58, 58, 65, 59, 59, 54, 69, 60, 63, 63, 67, 47, 73, 68, 59, 36, 65, 44, 151, 64, 55, 84, 63, 135, 54, 97, 67, 60, 49, 47, 53, 39, 75, 66, 46, 63, 54, 61, 73, 69, 52, 62, 65, 90, 108, 81, 47, 54, 47, 58, 58, 50, 72, 65, 60, 97, 63, 65, 77, 81, 97, 44, 86, 69, 59, 63, 60, 63, 62, 54, 82, 54, 54, 64, 75, 69, 64, 60, 63, 69, 78, 67, 101, 56, 58, 75, 58, 53, 72, 70, 44, 66, 70, 65, 49, 80, 59, 82, 56, 79, 68, 56, 56, 61, 96, 54, 64, 43, 41, 47, 104, 72, 58, 69, 58, 64, 83, 72, 60, 75, 81, 47, 65, 70, 96, 70, 62, 59, 69, 76, 84, 64, 56, 46, 68, 75, 64, 57, 58, 61, 76, 63, 50, 75, 71, 67, 60, 65, 79, 49, 71, 50, 52, 65, 55, 54, 97, 60, 52, 57, 57, 80, 50, 70, 66, 97, 66, 61, 69, 50, 52, 62, 58, 66, 51, 49, 56, 59, 66, 90, 64, 46, 53, 55, 61, 44, 65, 70, 53, 58, 56, 70, 70, 75, 100, 105, 60, 57, 60, 58, 65, 78, 58, 90, 45, 61, 70, 47, 73, 110, 57, 63, 61, 69, 84, 70, 49, 79, 104, 101, 53, 64, 73, 66, 96, 73, 71, 64, 61, 60, 52, 77, 84, 58, 63, 60, 71, 81, 52, 58, 62, 58, 62, 71, 55, 46, 63, 52, 78, 47, 70, 69, 65, 51, 55, 51, 65, 64, 58, 83, 65, 79, 54, 62, 61, 75, 46, 98, 57, 65, 53, 61, 50, 54, 62, 69, 58, 65, 62, 63, 59, 48, 58, 68, 58, 63, 85, 61, 72, 63, 59, 64, 70, 65, 55, 62, 49, 71, 62, 78, 73, 69, 72, 55, 64, 51, 68, 59, 59, 69, 82, 62, 47, 69, 88, 62, 51, 56, 34, 72, 68, 79, 71, 41, 61, 75, 45, 76, 53, 63, 71, 61, 67, 54, 53, 54, 78, 60, 65, 87, 66, 66, 64, 62, 72, 52, 61, 55, 60, 74, 56, 50, 53, 41, 51, 52, 68, 75, 91, 55, 66, 67, 52, 103, 43, 39, 40, 73, 63, 52, 66, 87, 63, 70, 53, 44, 62, 63, 71, 70, 67, 71, 60, 66, 66, 54, 63, 63, 83, 58, 61, 46, 64, 64, 65, 43, 101, 57, 52, 77, 73, 50, 65, 67, 66, 59, 44, 58, 44, 98, 96, 66, 59, 79, 46, 47, 68, 71, 66, 73, 44, 53, 36, 74, 75, 57, 71, 48, 69, 74, 54, 57, 41, 68, 68, 88, 69, 70, 64, 71, 70, 73, 64, 61, 54, 52, 62, 90, 62, 63, 63, 63, 83, 57, 81, 64, 83, 52, 71, 66, 41, 72, 64, 73, 61, 75, 58, 50, 63, 75, 80, 39, 67, 57, 62, 59, 46, 70, 75, 67, 46, 72, 67, 74, 64, 64, 78, 82, 65, 53, 40, 26, 51, 70, 59, 77, 97, 74, 73, 83, 61, 58, 112, 50, 70, 65, 61, 68, 53, 61, 66, 72, 59, 80, 94, 56, 60, 77, 64, 96, 63, 59, 58, 68, 54, 86, 94, 53, 64, 72, 119, 79, 67, 48, 45, 56, 62, 39, 62, 72, 70, 56, 72, 82, 65, 56, 70, 85, 59, 77, 62, 62, 58, 61, 37, 51, 74, 75, 85, 105, 43, 62, 65, 103, 82, 63, 74, 58, 57, 65, 64, 61, 53, 53, 88, 76, 51, 63, 52, 65, 69, 59, 69, 43, 66, 70, 64, 69, 80, 71, 62, 53, 60, 83, 51, 68, 85, 77, 69, 53, 43, 72, 72, 58, 47, 72, 91, 71, 66, 84, 61, 60, 60, 63, 65, 58, 71, 76, 58, 56, 70, 66, 62, 64, 62, 68, 46, 52, 84, 88, 62, 120, 69, 63, 66, 51, 72, 56, 55, 62, 70, 57, 42, 65, 59, 49, 53, 69, 40, 69, 53, 79, 74, 60, 85, 63, 72, 36, 79, 70, 68, 72, 74, 75, 122, 80, 56, 56, 79, 39, 51, 61, 76, 63, 68, 58, 66, 68, 51, 62, 59, 90, 71, 57, 60, 47, 61, 82, 63, 62, 76, 74, 62, 59, 86, 70, 59, 59, 84, 72, 67, 53, 63, 56, 54, 66, 56, 56, 66, 52, 65, 71, 53, 61, 84, 68, 73, 57, 62, 62, 53, 66, 61, 59, 68, 85, 60, 73, 41, 60, 51, 54, 66, 45, 54, 61, 62, 70, 61, 67, 64, 84, 73, 61, 55, 59, 84, 73, 89, 66, 68, 111, 67, 65, 65, 55, 74, 68, 97, 45, 101, 50, 79, 67, 45, 50, 57, 83, 62, 141, 51, 61, 107, 75, 65, 62, 58, 63, 63, 61, 69, 63, 67, 64, 62, 77, 40, 71, 56, 67, 64, 51, 75, 59, 89, 51, 80, 81, 94, 88, 79, 78, 57, 71, 47, 77, 58, 72, 62, 65, 65, 58, 41, 62, 73, 57, 53, 70, 83, 80, 73, 82, 67, 83, 48, 69, 56, 52, 52, 61, 66, 71, 63, 48, 67, 74, 62, 53, 92, 64, 65, 70, 58, 90, 63, 68, 63, 72, 40, 66, 81, 58, 75, 67, 68, 81, 99, 57, 48, 86, 81, 45, 61, 66, 75, 56, 50, 46, 65, 64, 89, 54, 74, 63, 64, 98, 75, 60, 52, 75, 68, 56, 69, 65, 79, 64, 71, 70, 59, 56, 54, 68, 61, 54, 62, 54, 59, 56, 65, 74, 74, 71, 52, 63, 74, 49, 66, 56, 69, 61, 54, 55, 92, 93, 59, 87, 49, 58, 59, 77, 64, 54, 65, 59, 40, 40, 58, 59, 76, 82, 89, 75, 60, 73, 56, 50, 54, 80, 69, 69, 49, 64, 73, 55, 66, 65, 63, 62, 73, 38, 120, 58, 84, 50, 54, 53, 63, 55, 59, 66, 61, 88, 70, 55, 52, 70, 66, 110, 65, 69, 66, 79, 72, 77, 64, 129, 50, 59, 49, 84, 62, 68, 64, 52, 52, 82, 90, 84, 56, 61, 61, 54, 69, 57, 90, 46, 81, 88, 60, 69, 50, 59, 68, 49, 54, 107, 55, 55, 62, 49, 67, 63, 47, 56, 67, 51, 57, 66, 54, 81, 59, 59, 76, 84, 70, 72, 81, 74, 54, 43, 60, 56, 64, 55, 56, 41, 81, 57, 67, 64, 61, 52, 144, 53, 61, 47, 76, 125, 51, 93, 63, 67, 66, 70, 64, 70, 98, 60, 60, 77, 40, 57, 92, 64, 66, 72, 65, 92, 73, 84, 62, 43, 63, 70, 65, 62, 62, 46, 49, 86, 57, 63, 87, 65, 95, 65, 67, 66, 65, 60, 56, 49, 46, 56, 96, 77, 60, 71, 60, 56, 55, 74, 57, 67, 76, 48, 100, 69, 58, 71, 63, 60, 72, 84, 41, 82, 62, 68, 43, 67, 50, 64, 46, 58, 52, 59, 63, 87, 86, 61, 76, 65, 45, 51, 112, 74, 63, 64, 50, 52, 51, 52, 59, 76, 87, 59, 64, 86, 99, 42, 55, 72, 75, 70, 60, 46, 64, 44, 57, 81, 77, 81, 69, 61, 86, 63, 69, 60, 65, 63, 62, 59, 76, 55, 73, 63, 61, 55, 58, 81, 51, 77, 69, 66, 53, 87, 61, 60, 56, 71, 70, 65, 56, 49, 48, 75, 63, 55, 71, 82, 43, 59, 53, 122, 61, 63, 80, 84, 58, 60, 55, 122, 56, 62, 63, 49, 77, 66, 133, 108, 46, 79, 63, 62, 62, 48, 54, 58, 64, 52, 69, 58, 56, 121, 75, 72, 80, 64, 54, 53, 77, 80, 107, 141, 61, 73, 56, 60, 50, 74, 70, 55, 49, 68, 46, 58, 84, 89, 63, 60, 60, 68, 65, 80, 62, 57, 64, 52, 51, 54, 48, 57, 51, 50, 54, 59, 65, 47, 68, 50, 86, 50, 60, 63, 64, 74, 75, 59, 54, 69, 66, 93, 47, 69, 42, 64, 61, 50, 75, 68, 65, 63, 64, 43, 75, 53, 62, 63, 63, 55, 69, 55, 56, 69, 71, 66, 60, 57, 61, 70, 60, 67, 63, 69, 50, 61, 54, 74, 64, 69, 53, 58, 56, 53, 60, 79, 49, 46, 63, 76, 51, 63, 52, 55, 79, 91, 58, 67, 64, 52, 68, 56, 80, 55, 54, 67, 53, 46, 57, 71, 82, 47, 59, 86, 46, 71, 49, 51, 66, 63, 46, 71, 67, 59, 66, 81, 52, 50, 59, 67, 54, 73, 64, 91, 60, 74, 58, 78, 67, 54, 59, 55, 70, 67, 73, 83, 75, 49, 66, 59, 87, 89, 59, 72, 70, 42, 69, 57, 49, 57, 92, 60, 65, 43, 62, 75, 82, 55, 54, 42, 90, 66, 44, 68, 54, 36, 48, 69, 70, 61, 71, 58, 79, 74, 104, 63, 70, 66, 77, 64, 68, 68, 57, 64, 74, 49, 43, 35, 64, 59, 56, 72, 87, 70, 57, 69, 77, 89, 54, 63, 71, 57, 67, 49, 50, 56, 73, 49, 45, 70, 71, 74, 62, 48, 59, 61, 59, 51, 61, 65, 71, 51, 65, 61, 72, 79, 59, 89, 60, 75, 52, 48, 67, 84, 73, 59, 76, 73, 62, 55, 55, 63, 54, 76, 81, 51, 61, 70, 53, 57, 87, 84, 48, 91, 52, 57, 76, 63, 63, 57, 86, 77, 39, 59, 86, 67, 81, 59, 59, 79, 85, 66, 57, 63, 70, 90, 80, 89, 81, 65, 59, 67, 51, 69, 123, 73, 69, 54, 58, 70, 88, 72, 56, 61, 53, 57, 57, 72, 51, 62, 74, 63, 79, 61, 64, 54, 64, 66, 56, 76, 68, 61, 64, 64, 109, 51, 55, 56, 68, 70, 65, 62, 64, 56, 68, 49, 84, 61, 55, 75, 59, 75, 85, 57, 87, 55, 46, 75, 75, 60, 73, 68, 68, 56, 52, 59, 63, 60, 55, 80, 50, 64, 68, 57, 61, 57, 58, 56, 71, 57, 76, 75, 48, 65, 35, 59, 62, 59, 77, 64, 68, 44, 53, 81, 68, 72, 62, 57, 102, 56, 45, 66, 67, 99, 46, 66, 75, 54, 75, 71, 54, 54, 62, 59, 76, 55, 71, 74, 77, 57, 57, 55, 60, 64, 80, 52, 40, 82, 63, 58, 63, 65, 75, 77, 50, 58, 66, 40, 73, 63, 57, 58, 59, 70, 78, 90, 59, 45, 75, 76, 76, 69, 56, 68, 81, 65, 67, 64, 65, 68, 65, 45, 63, 72, 51, 73, 49, 60, 53, 63, 86, 55, 58, 47, 66, 63, 58, 70, 56, 67, 89, 61, 63, 51, 75, 56, 91, 80, 73, 63, 64, 68, 64, 48, 65, 63, 49, 52, 51, 62, 60, 78, 55, 57, 75, 55, 62, 44, 55, 71, 84, 57, 84, 74, 59, 59, 77, 81, 71, 84, 60, 59, 65, 66, 60, 68, 58, 74, 53, 53, 78, 92, 56, 95, 59, 72, 107, 73, 45, 73, 72, 64, 88, 73, 55, 63, 58, 64, 62, 47, 59, 77, 95, 98, 59, 71, 44, 68, 65, 67, 64, 70, 96, 72, 67, 72, 55, 56, 66, 61, 50, 64, 59, 59, 64, 53, 76, 66, 61, 54, 65, 96, 59, 51, 85, 52, 48, 48, 93, 68, 67, 58, 39, 63, 63, 59, 60, 104, 48, 69, 61, 67, 44, 57, 50, 74, 65, 73, 46, 57, 62, 112, 77, 42, 142, 54, 62, 54, 77, 71, 61, 85, 67, 62, 60, 80, 75, 48, 57, 77, 78, 67, 71, 91, 58, 58, 61, 60, 56, 64, 84, 74, 67, 57, 69, 59, 72, 58, 52, 59, 54, 73, 55, 60, 80, 70, 85, 79, 59, 74, 51, 53, 66, 54, 99, 75, 53, 66, 74, 50, 52, 62, 108, 61, 67, 65, 78, 96, 59, 65, 45, 66, 64, 61, 66, 56, 67, 73, 87, 51, 71, 75, 66, 54, 48, 80, 64, 65, 45, 66, 53, 56, 59, 65, 43, 91, 138, 57, 101, 56, 72, 58, 78, 68, 69, 69, 61, 63, 82, 54, 58, 53, 85, 43, 70, 69, 67, 59, 59, 60, 52, 78, 66, 62, 77, 73, 47, 51, 68, 90, 58, 72, 63, 53, 70, 74, 46, 54, 79, 77, 47, 95, 70, 78, 92, 68, 64, 52, 55, 61, 56, 53, 81, 58, 60, 68, 81, 64, 63, 86, 59, 53, 67, 54, 111, 80, 66, 64, 51, 63, 56, 91, 64, 68, 50, 47, 70, 55, 40, 52, 66, 76, 65, 65, 79, 70, 52, 87, 110, 52, 59, 56, 76, 63, 56, 62, 102, 72, 81, 48, 71, 64, 56, 55, 56, 79, 69, 49, 64, 77, 85, 57, 56, 58, 60, 88, 112, 68, 61, 92, 84, 76, 80, 90, 68, 113, 56, 67, 66, 59, 84, 68, 65, 55, 115, 58, 52, 65, 64, 61, 51, 96, 43, 84, 59, 72, 70, 57, 64, 83, 103, 60, 57, 72, 112, 67, 69, 62, 48, 62, 57, 53, 51, 56, 49, 54, 50, 57, 58, 76, 87, 66, 63, 82, 69, 82, 69, 61, 87, 58, 76, 69, 105, 65, 52, 59, 72, 85, 68, 81, 64, 67, 72, 109, 65, 67, 63, 80, 50, 52, 60, 77, 66, 73, 57, 58, 63, 79, 52, 55, 79, 58, 51, 56, 74, 63, 81, 53, 87, 71, 61, 72, 60, 52, 71, 91, 128, 67, 51, 65, 63, 73, 53, 32, 55, 55, 52, 49, 62, 77, 67, 100, 74, 67, 64, 80, 49, 90, 68, 53, 64, 61, 53, 60, 66, 79, 64, 81, 50, 78, 73, 49, 102, 76, 76, 71, 68, 71, 55, 73, 74, 51, 69, 56, 57, 81, 75, 70, 107, 60, 48, 118, 61, 64, 74, 63, 59, 57, 53, 72, 58, 63, 91, 69, 78, 57, 81, 66, 70, 74, 71, 76, 54, 70, 67, 53, 53, 91, 62, 45, 58, 50, 47, 70, 57, 67, 63, 74, 59, 111, 64, 50, 53, 72, 61, 95, 62, 64, 85, 111, 113, 72, 80, 74, 71, 80, 65, 65, 87, 59, 71, 63, 74, 62, 54, 68, 58, 42, 62, 72, 65, 73, 60, 65, 61, 55, 48, 78, 69, 58, 81, 68, 69, 54, 66, 118, 75, 77, 70, 51, 60, 57, 52, 59, 87, 64, 56, 48, 84, 55, 60, 55, 69, 68, 60, 70, 70, 56, 75, 54, 65, 68, 72, 62, 44, 63, 59, 56, 53, 65, 72, 75, 67, 57, 82, 99, 58, 56, 65, 56, 73, 62, 60, 54, 48, 75, 52, 63, 86, 96, 62, 59, 54, 73, 78, 39, 64, 58, 66, 59, 68, 63, 53, 61, 60, 61, 56, 76, 58, 74, 92, 61, 49, 95, 63, 75, 59, 54, 66, 69, 63, 46, 51, 59, 58, 79, 64, 75, 67, 61, 55, 67, 48, 72, 68, 84, 75, 113, 60, 65, 89, 73, 80, 82, 43, 65, 63, 58, 105, 52, 78, 59, 86, 76, 52, 68, 52, 54, 59, 83, 63, 52, 57, 60, 76, 72, 75, 61, 53, 40, 83, 89, 141, 61, 50, 70, 70, 51, 88, 70, 61, 67, 50, 59, 85, 78, 66, 46, 49, 52, 48, 70, 65, 71, 67, 69, 78, 76, 100, 57, 72, 63, 75, 125, 46, 58, 77, 61, 52, 64, 81, 53, 45, 72, 53, 73, 54, 60, 81, 62, 55, 52, 67, 67, 63, 53, 56, 57, 74, 80, 77, 59, 73, 73, 50, 81, 65, 64, 73, 57, 45, 50, 47, 60, 62, 83, 77, 67, 49, 68, 56, 69, 59, 55, 52, 88, 64, 64, 55, 98, 74, 55, 66, 69, 114, 56, 53, 60, 61, 72, 58, 50, 71, 65, 66, 63, 59, 50, 67, 58, 76, 48, 73, 64, 52, 75, 64, 51, 59, 49, 61, 70, 52, 46, 62, 52, 65, 70, 59, 71, 68, 66, 65, 89, 44, 91, 56, 87, 63, 71, 57, 77, 72, 59, 82, 70, 68, 89, 64, 55, 68, 77, 59, 56, 61, 57, 63, 51, 61, 82, 68, 61, 80, 55, 72, 76, 63, 85, 83, 68, 63, 45, 85, 60, 62, 52, 111, 62, 54, 43, 45, 59, 61, 56, 49, 57, 64, 69, 75, 61, 51, 60, 61, 69, 63, 59, 75, 53, 80, 54, 43, 61, 53, 78, 54, 72, 68, 53, 59, 58, 67, 61, 82, 91, 59, 79, 74, 68, 66, 65, 58, 51, 77, 46, 41, 89, 61, 59, 54, 95, 57, 61, 72, 64, 58, 81, 67, 68, 79, 72, 56, 59, 82, 76, 58, 60, 46, 58, 60, 87, 62, 69, 79, 63, 68, 68, 64, 66, 63, 55, 48, 90, 54, 68, 66, 57, 65, 72, 72, 62, 50, 52, 61, 65, 56, 55, 66, 64, 86, 64, 60, 64, 64, 68, 58, 55, 67, 94, 50, 58, 59, 62, 65, 85, 65, 59, 82, 65, 72, 61, 47, 61, 65, 55, 54, 65, 49, 101, 76, 45, 63, 80, 60, 62, 62, 72, 72, 61, 66, 60, 91, 59, 61, 69, 44, 67, 72, 68, 59, 65, 64, 56, 69, 58, 65, 61, 54, 59, 107, 75, 103, 57, 68, 71, 101, 70, 54, 63, 74, 56, 61, 91, 54, 43, 46, 47, 78, 63, 75, 77, 68, 61, 42, 52, 61, 58, 77, 37, 58, 85, 65, 64, 65, 88, 61, 78, 58, 66, 83, 57, 76, 56, 68, 77, 46, 54, 49, 50, 71, 54, 67, 68, 75, 67, 65, 60, 68, 42, 58, 87, 52, 74, 54, 71, 49, 68, 64, 84, 45, 61, 80, 66, 68, 83, 67, 82, 61, 69, 53, 83, 79, 54, 68, 70, 60, 49, 71, 79, 76, 63, 67, 71, 55, 42, 55, 58, 53, 80, 50, 92, 70, 122, 79, 87, 67, 51, 84, 62, 72, 81, 86, 75, 69, 63, 84, 60, 57, 64, 81, 81, 72, 58, 69, 95, 67, 71, 63, 55, 57, 84, 57, 68, 73, 51, 58, 66, 56, 63, 88, 79, 53, 66, 67, 63, 48, 75, 70, 84, 46, 52, 76, 41, 90, 60, 57, 61, 82, 68, 63, 60, 59, 65, 85, 77, 69, 74, 97, 92, 57, 69, 90, 61, 71, 49, 76, 65, 55, 121, 89, 64, 59, 69, 66, 75, 73, 75, 63, 70, 87, 52, 47, 72, 69, 69, 66, 87, 69, 54, 51, 59, 80, 68, 65, 60, 65, 59, 55, 55, 149, 63, 68, 72, 77, 60, 50, 75, 75, 79, 85, 77, 80, 63, 62, 60, 54, 67, 52, 78, 48, 69, 76, 60, 51, 67, 59, 48, 54, 47, 60, 74, 47, 118, 62, 78, 62, 49, 77, 59, 54, 50, 63, 52, 72, 76, 56, 59, 45, 64, 60, 72, 59, 66, 67, 69, 67, 97, 82, 79, 54, 68, 57, 62, 58, 50, 48, 90, 51, 94, 58, 58, 68, 97, 62, 79, 85, 54, 53, 72, 49, 61, 75, 44, 48, 56, 78, 53, 60, 69, 66, 57, 74, 43, 52, 50, 82, 94, 56, 91, 50, 81, 83, 59, 58, 91, 66, 91, 62, 62, 63, 68, 49, 61, 51, 61, 66, 85, 72, 54, 57, 49, 51, 65, 52, 65, 59, 65, 62, 61, 57, 57, 64, 72, 91, 81, 67, 59, 81, 60, 74, 70, 61, 70, 55, 78, 65, 63, 71, 45, 53, 35, 66, 60, 53, 76, 71, 37, 67, 52, 86, 69, 79, 61, 81, 66, 54, 59, 60, 80, 49, 71, 72, 92, 60, 52, 82, 63, 65, 64, 62, 62, 58, 65, 55, 55, 61, 54, 59, 55, 52, 51, 84, 52, 63, 65, 54, 74, 61, 59, 76, 51, 56, 60, 71, 67, 53, 74, 58, 71, 60, 93, 79, 74, 61, 70, 66, 55, 61, 96, 83, 49, 50, 50, 61, 77, 62, 52, 59, 71, 53, 47, 62, 57, 65, 93, 61, 42, 56, 56, 61, 65, 70, 59, 65, 48, 63, 68, 76, 62, 57, 95, 69, 71, 77, 64, 75, 56, 48, 71, 63, 90, 61, 56, 61, 44, 64, 45, 58, 70, 69, 62, 49, 60, 58, 49, 76, 97, 83, 65, 71, 63, 51, 63, 64, 49, 77, 68, 55, 54, 61, 69, 80, 47, 80, 56, 52, 98, 45, 61, 72, 61, 66, 61, 68, 67, 65, 60, 66, 77, 73, 85, 54, 91, 61, 75, 69, 59, 54, 54, 82, 66, 73, 61, 49, 87, 56, 86, 71, 46, 70, 80, 41, 53, 76, 67, 55, 70, 65, 64, 67, 60, 68, 52, 72, 82, 83, 70, 65, 72, 66, 55, 66, 61, 72, 81, 50, 52, 67, 54, 84, 83, 71, 61, 62, 54, 74, 69, 66, 60, 52, 86, 93, 125, 61, 55, 75, 53, 78, 75, 68, 52, 66, 83, 56, 117, 54, 63, 72, 69, 70, 62, 53, 52, 73, 63, 80, 64, 52, 63, 58, 72, 87, 74, 61, 61, 59, 81, 56, 58, 33, 58, 67, 52, 67, 69, 55, 61, 46, 79, 59, 59, 64, 134, 62, 62, 52, 117, 62, 43, 60, 71, 52, 49, 57, 72, 71, 71, 68, 50, 59, 74, 56, 69, 59, 58, 57, 56, 60, 48, 66, 55, 54, 66, 62, 67, 86, 61, 63, 52, 40, 76, 74, 70, 68, 78, 66, 66, 74, 55, 56, 55, 55, 92, 99, 79, 80, 73, 46, 87, 70, 70, 62, 67, 77, 70, 75, 76, 70, 58, 72, 60, 58, 38, 78, 95, 76, 83, 57, 61, 93, 93, 57, 73, 64, 71, 66, 86, 67, 61, 74, 62, 83, 67, 65, 74, 61, 72, 51, 68, 55, 68, 86, 60, 64, 70, 70, 62, 52, 47, 54, 69, 60, 56, 69, 65, 67, 60, 63, 46, 63, 40, 92, 67, 52, 52, 58, 58, 58, 51, 75, 58, 60, 70, 61, 58, 32, 73, 61, 73, 60, 50, 79, 57, 69, 115, 72, 52, 79, 62, 83, 70, 81, 61, 67, 61, 63, 64, 51, 57, 54, 63, 74, 51, 56, 73, 53, 76, 74, 89, 61, 56, 68, 54, 79, 62, 62, 81, 43, 78, 67, 53, 58, 55, 86, 43, 65, 73, 52, 69, 60, 71, 75, 62, 66, 67, 57, 96, 63, 61, 82, 68, 70, 113, 79, 61, 77, 71, 76, 62, 64, 65, 67, 49, 67, 54, 56, 60, 67, 61, 69, 64, 55, 68, 84, 54, 54, 59, 61, 74, 56, 61, 58, 74, 72, 69, 67, 74, 53, 48, 61, 74, 67, 71, 65, 61, 54, 57, 75, 61, 56, 61, 54, 56, 68, 60, 63, 64, 52, 76, 45, 59, 77, 60, 62, 55, 61, 73, 81, 111, 42, 59, 65, 59, 59, 48, 56, 38, 69, 47, 79, 110, 65, 52, 54, 84, 61, 51, 50, 56, 61, 57, 64, 74, 32, 66, 60, 55, 76, 73, 59, 81, 55, 54, 59, 100, 70, 58, 50, 59, 62, 78, 56, 59, 59, 54, 83, 57, 53, 60, 53, 59, 70, 53, 55, 51, 44, 58, 66, 68, 70, 62, 62, 64, 82, 71, 83, 69, 71, 62, 56, 55, 54, 90, 47, 64, 60, 54, 61, 83, 45, 59, 112, 51, 56, 56, 49, 83, 67, 64, 43, 62, 57, 92, 58, 57, 61, 60, 47, 43, 69, 82, 47, 73, 87, 42, 87, 44, 58, 70, 73, 67, 59, 57, 47, 54, 46, 70, 60, 53, 65, 61, 60, 57, 73, 76, 138, 71, 82, 69, 65, 79, 67, 61, 65, 79, 69, 86, 82, 52, 68, 60, 70, 58, 62, 66, 69, 65, 80, 59, 60, 54, 69, 42, 45, 53, 84, 67, 58, 60, 62, 78, 59, 78, 80, 49, 66, 62, 75, 74, 66, 71, 63, 69, 81, 45, 55, 92, 96, 39, 58, 69, 93, 71, 88, 63, 79, 77, 54, 59, 54, 58, 73, 88, 59, 55, 82, 75, 76, 74, 53, 98, 54, 89, 57, 50, 81, 63, 76, 64, 39, 52, 51, 74, 64, 63, 69, 71, 52, 60, 70, 56, 50, 68, 26, 66, 58, 129, 54, 73, 65, 63, 81, 54, 49, 53, 62, 67, 73, 73, 56, 51, 75, 58, 80, 86, 84, 54, 79, 82, 71, 92, 74, 74, 60, 67, 76, 62, 65, 56, 56, 79, 72, 56, 59, 71, 68, 80, 63, 60, 45, 83, 88, 61, 54, 77, 66, 61, 72, 65, 74, 61, 62, 72, 55, 47, 57, 63, 59, 52, 58, 63, 98, 96, 71, 64, 82, 61, 71, 55, 63, 63, 72, 140, 64, 52, 82, 74, 67, 65, 76, 92, 77, 75, 54, 70, 77, 74, 64, 73, 83, 111, 60, 56, 57, 75, 78, 66, 35, 55, 79, 62, 60, 69, 116, 64, 49, 51, 59, 72, 58, 77, 92, 73, 75, 73, 71, 60, 56, 68, 62, 66, 86, 59, 67, 55, 49, 74, 54, 61, 58, 66, 57, 63, 59, 72, 72, 56, 79, 51, 74, 55, 72, 69, 59, 65, 59, 55, 46, 70, 54, 64, 56, 59, 71, 50, 68, 32, 90, 50, 67, 100, 80, 90, 73, 53, 51, 76, 59, 56, 65, 52, 75, 96, 57, 57, 58, 85, 55, 68, 74, 71, 54, 68, 55, 62, 55, 65, 67, 59, 85, 78, 56, 75, 72, 68, 69, 53, 86, 65, 52, 109, 44, 93, 70, 67, 39, 58, 75, 124, 62, 46, 95, 57, 76, 62, 61, 61, 51, 51, 51, 100, 62, 77, 67, 62, 64, 73, 57, 71, 73, 67, 58, 69, 70, 59, 48, 64, 52, 78, 68, 56, 63, 66, 57, 81, 80, 53, 54, 76, 54, 75, 58, 82, 64, 67, 70, 59, 54, 92, 79, 82, 62, 60, 44, 65, 56, 57, 86, 57, 59, 54, 71, 68, 65, 63, 72, 56, 69, 52, 71, 49, 66, 82, 70, 47, 66, 58, 38, 67, 86, 73, 62, 67, 64, 75, 99, 62, 66, 70, 50, 57, 62, 68, 60, 38, 67, 90, 75, 58, 53, 68, 74, 72, 51, 84, 96, 67, 48, 78, 60, 70, 62, 78, 54, 89, 85, 64, 53, 76, 71, 50, 53, 63, 63, 41, 60, 45, 71, 66, 45, 61, 61, 62, 68, 67, 90, 40, 63, 57, 54, 66, 68, 49, 49, 111, 68, 68, 95, 73, 83, 51, 62, 83, 49, 50, 56, 88, 71, 62, 68, 74, 95, 60, 63, 60, 53, 60, 62, 65, 44, 81, 86, 54, 66, 65, 67, 44, 54, 61, 67, 58, 63, 80, 64, 60, 51, 65, 98, 55, 84, 102, 64, 67, 76, 44, 74, 48, 78, 61, 79, 45, 68, 45, 68, 81, 39, 56, 63, 70, 58, 95, 52, 60, 79, 54, 67, 103, 50, 51, 68, 83, 54, 59, 79, 59, 64, 67, 62, 61, 63, 57, 65, 55, 62, 72, 76, 56, 62, 72, 54, 81, 67, 55, 58, 50, 79, 79, 71, 82, 70, 43, 53, 58, 82, 63, 83, 74, 56, 63, 71, 54, 65, 48, 56, 76, 81, 139, 78, 71, 72, 76, 56, 47, 52, 72, 58, 64, 57, 72, 61, 62, 84, 78, 59, 83, 68, 63, 52, 53, 53, 68, 49, 65, 64, 75, 79, 60, 47, 77, 60, 92, 54, 52, 35, 57, 59, 65, 57, 46, 54, 66, 114, 111, 48, 63, 81, 133, 74, 56, 68, 105, 63, 56, 60, 48, 64, 73, 46, 63, 64, 69, 85, 86, 63, 94, 64, 60, 57, 47, 66, 69, 59, 66, 43, 66, 54, 95, 64, 55, 70, 79, 66, 41, 58, 94, 81, 57, 53, 80, 81, 73, 45, 49, 62, 53, 59, 77, 80, 67, 62, 76, 63, 65, 85, 55, 53, 55, 59, 63, 58, 58, 58, 53, 63, 79, 64, 72, 63, 56, 73, 68, 51, 50, 65, 64, 73, 57, 68, 54, 72, 63, 85, 53, 64, 58, 79, 48, 54, 56, 59, 59, 75, 54, 64, 50, 73, 89, 55, 86, 58, 76, 45, 55, 48, 51, 66, 87, 96, 61, 75, 54, 58, 57, 60, 75, 74, 65, 50, 66, 60, 65, 68, 51, 73, 58, 88, 54, 47, 62, 54, 74, 59, 102, 58, 49, 70, 43, 60, 65, 49, 61, 60, 73, 73, 71, 62, 66, 64, 69, 65, 64, 76, 62, 70, 82, 84, 55, 56, 62, 61, 49, 60, 62, 53, 52, 51, 80, 52, 52, 60, 66, 62, 81, 72, 48, 54, 82, 60, 82, 70, 61, 53, 75, 50, 65, 64, 50, 63, 56, 68, 91, 57, 48, 44, 51, 62, 57, 64, 76, 58, 75, 55, 63, 47, 46, 68, 49, 73, 43, 69, 54, 79, 64, 62, 82, 101, 102, 85, 69, 80, 43, 61, 65, 53, 63, 57, 67, 92, 67, 78, 69, 51, 71, 72, 80, 45, 71, 68, 69, 78, 67, 74, 52, 77, 60, 50, 56, 67, 69, 67, 71, 99, 57, 70, 75, 55, 48, 54, 49, 54, 61, 54, 50, 92, 64, 68, 60, 66, 56, 61, 71, 66, 58, 68, 84, 51, 69, 61, 110, 74, 83, 74, 68, 58, 71, 55, 46, 71, 63, 88, 80, 59, 55, 63, 82, 73, 59, 58, 99, 65, 52, 82, 63, 81, 51, 50, 82, 54, 61, 62, 53, 50, 89, 54, 63, 65, 75, 48, 55, 61, 60, 62, 75, 61, 58, 61, 73, 65, 60, 75, 46, 45, 55, 63, 77, 53, 84, 52, 39, 43, 61, 84, 54, 48, 59, 61, 72, 67, 63, 46, 65, 71, 58, 60, 80, 59, 57, 80, 59, 52, 74, 59, 50, 57, 87, 50, 84, 54, 64, 89, 63, 57, 46, 67, 56, 49, 69, 70, 66, 76, 51, 52, 53, 52, 65, 65, 64, 90, 96, 117, 70, 36, 97, 61, 59, 60, 79, 74, 64, 66, 62, 40, 82, 62, 68, 56, 59, 77, 84, 77, 56, 46, 67, 47, 87, 66, 50, 69, 54, 63, 68, 56, 69, 89, 44, 49, 98, 54, 60, 37, 54, 58, 74, 56, 71, 79, 50, 40, 86, 74, 55, 74, 70, 70, 67, 69, 67, 65, 54, 68, 74, 57, 78, 71, 57, 63, 65, 64, 53, 111, 55, 57, 61, 51, 63, 54, 68, 81, 100, 79, 54, 65, 57, 61, 66, 89, 70, 57, 66, 66, 68, 67, 57, 59, 53, 60, 68, 79, 78, 68, 103, 52, 59, 59, 45, 51, 61, 70, 69, 63, 66, 57, 59, 60, 54, 74, 61, 78, 74, 95, 51, 68, 61, 70, 60, 55, 57, 70, 71, 59, 61, 45, 54, 51, 55, 64, 61, 63, 64, 88, 62, 67, 48, 61, 57, 55, 69, 52, 50, 55, 67, 68, 51, 67, 58, 79, 66, 67, 42, 59, 48, 64, 94, 94, 43, 95, 71, 71, 52, 103, 79, 56, 56, 68, 71, 85, 151, 71, 59, 70, 89, 63, 69, 85, 60, 50, 71, 51, 54, 74, 72, 65, 53, 76, 94, 94, 57, 69, 56, 70, 52, 103, 71, 89, 58, 82, 91, 102, 63, 92, 59, 58, 65, 49, 83, 90, 60, 66, 67, 62, 60, 61, 68, 58, 84, 70, 54, 53, 54, 72, 76, 53, 84, 68, 45, 76, 81, 53, 61, 58, 46, 79, 83, 52, 74, 69, 63, 49, 47, 65, 59, 47, 73, 69, 63, 60, 56, 61, 51, 70, 54, 80, 50, 48, 82, 63, 97, 63, 83, 65, 57, 67, 71, 58, 61, 37, 81, 57, 55, 87, 82, 59, 63, 60, 72, 69, 51, 71, 42, 59, 49, 68, 63, 66, 55, 54, 54, 131, 55, 99, 58, 62, 92, 73, 101, 44, 87, 57, 62, 41, 61, 49, 75, 68, 72, 78, 77, 84, 53, 79, 54, 67, 57, 56, 107, 89, 69, 70, 57, 56, 72, 59, 52, 69, 70, 63, 77, 62, 74, 43, 80, 62, 78, 69, 80, 75, 65, 62, 42, 71, 75, 57, 54, 63, 62, 72, 60, 86, 55, 61, 66, 53, 42, 64, 43, 62, 53, 67, 52, 66, 77, 94, 72, 46, 73, 73, 69, 60, 97, 81, 44, 53, 58, 82, 58, 54, 70, 67, 68, 90, 57, 46, 70, 74, 46, 85, 69, 80, 74, 64, 65, 53, 88, 57, 91, 55, 70, 72, 76, 69, 93, 101, 47, 63, 60, 61, 65, 55, 83, 59, 42, 74, 68, 94, 52, 66, 70, 59, 60, 73, 78, 69, 60, 74, 62, 60, 89, 66, 61, 55, 63, 47, 31, 117, 68, 62, 86, 69, 69, 56, 60, 52, 59, 52, 72, 68, 64, 76, 75, 65, 66, 58, 73, 75, 79, 53, 80, 47, 94, 63, 49, 73, 56, 62, 65, 83, 110, 72, 51, 73, 45, 71, 56, 63, 82, 64, 66, 66, 66, 57, 94, 66, 66, 63, 72, 50, 74, 55, 66, 47, 76, 83, 64, 66, 94, 63, 81, 57, 60, 58, 62, 56, 52, 66, 62, 59, 56, 73, 67, 78, 68, 48, 45, 66, 55, 79, 83, 64, 69, 65, 80, 52, 55, 65, 107, 50, 56, 66, 58, 67, 80, 57, 54, 85, 55, 57, 47, 71, 66, 62, 64, 64, 53, 45, 63, 64, 53, 55, 63, 40, 81, 107, 77, 84, 71, 65, 69, 105, 71, 89, 68, 66, 52, 67, 58, 101, 63, 68, 93, 92, 136, 57, 68, 70, 59, 54, 74, 74, 67, 70, 51, 49, 54, 61, 56, 56, 47, 81, 69, 63, 61, 67, 63, 59, 58, 64, 63, 41, 66, 62, 68, 61, 84, 56, 72, 59, 80, 53, 53, 60, 57, 66, 80, 55, 74, 76, 81, 75, 71, 86, 103, 77, 52, 46, 114, 84, 44, 68, 71, 79, 51, 84, 70, 60, 43, 56, 55, 59, 95, 52, 82, 63, 57, 54, 55, 55, 56, 72, 87, 75, 83, 63, 60, 74, 81, 64, 71, 87, 77, 113, 49, 64, 74, 71, 57, 55, 68, 71, 77, 67, 68, 78, 65, 78, 62, 64, 70, 57, 58, 69, 62, 60, 59, 59, 68, 78, 49, 81, 72, 52, 60, 51, 66, 71, 54, 58, 49, 64, 68, 72, 85, 58, 63, 82, 44, 69, 74, 83, 49, 55, 63, 50, 63, 59, 53, 55, 65, 57, 75, 74, 61, 75, 57, 53, 74, 70, 69, 62, 66, 63, 55, 72, 61, 65, 84, 58, 66, 40, 67, 56, 49, 51, 52, 57, 66, 69, 106, 55, 57, 62, 85, 55, 66, 67, 66, 57, 54, 45, 57, 71, 56, 63, 56, 54, 80, 61, 64, 88, 55, 56, 59, 52, 62, 75, 77, 66, 71, 70, 66, 62, 73, 69, 49, 73, 61, 56, 57, 69, 65, 86, 80, 56, 60, 80, 72, 84, 86, 58, 68, 68, 60, 65, 75, 66, 43, 59, 101, 61, 78, 58, 67, 61, 50, 44, 67, 47, 55, 64, 58, 51, 118, 62, 53, 57, 76, 56, 70, 66, 66, 79, 51, 49, 63, 60, 62, 105, 53, 52, 96, 62, 53, 42, 60, 59, 82, 57, 58, 73, 58, 123, 59, 67, 53, 54, 65, 55, 66, 72, 68, 64, 81, 59, 53, 83, 57, 67, 67, 71, 59, 77, 83, 61, 63, 67, 59, 65, 68, 76, 64, 46, 64, 52, 54, 74, 90, 70, 81, 55, 68, 54, 73, 57, 65, 67, 74, 59, 54, 57, 69, 65, 73, 61, 34, 56, 93, 69, 45, 55, 103, 60, 60, 56, 55, 82, 76, 70, 83, 50, 62, 69, 57, 63, 56, 58, 55, 66, 70, 79, 70, 73, 68, 46, 76, 51, 62, 62, 57, 64, 76, 42, 72, 51, 45, 77, 44, 72, 63, 66, 54, 72, 85, 67, 67, 81, 52, 97, 60, 72, 41, 52, 83, 42, 77, 59, 70, 80, 58, 62, 71, 65, 51, 63, 67, 64, 80, 80, 70, 62, 76, 51, 85, 58, 49, 56, 65, 72, 67, 55, 49, 54, 78, 61, 57, 56, 54, 71, 71, 53, 65, 56, 70, 52, 60, 56, 75, 88, 50, 52, 59, 54, 64, 56, 61, 118, 73, 54, 96, 67, 64, 72, 59, 64, 53, 55, 61, 67, 66, 72, 50, 54, 65, 56, 79, 52, 70, 80, 63, 66, 76, 59, 67, 67, 55, 72, 62, 72, 73, 83, 72, 67, 90, 97, 54, 76, 52, 69, 59, 67, 71, 61, 65, 54, 62, 67, 56, 62, 75, 64, 60, 67, 42, 88, 68, 51, 64, 47, 60, 46, 76, 85, 68, 164, 58, 66, 78, 58, 68, 66, 69, 55, 69, 62, 72, 72, 67, 105, 71, 78, 77, 51, 55, 65, 54, 59, 110, 88, 56, 56, 50, 59, 46, 50, 70, 61, 101, 60, 72, 81, 68, 59, 61, 70, 68, 66, 63, 55, 83, 58, 88, 79, 55, 75, 84, 32, 41, 67, 75, 50, 56, 68, 62, 64, 61, 67, 61, 70, 61, 58, 51, 64, 59, 52, 80, 78, 66, 57, 65, 59, 57, 65, 65, 59, 66, 58, 82, 59, 67, 61, 49, 74, 61, 45, 50, 68, 59, 69, 60, 61, 68, 82, 91, 52, 80, 55, 60, 64, 79, 52, 65, 69, 137, 72, 50, 81, 62, 61, 69, 69, 97, 65, 67, 81, 54, 56, 48, 61, 59, 62, 78, 59, 51, 73, 57, 95, 67, 57, 58, 78, 55, 60, 73, 109, 48, 48, 63, 59, 57, 47, 66, 71, 67, 59, 62, 66, 67, 60, 60, 70, 101, 72, 102, 48, 60, 54, 72, 58, 64, 57, 56, 59, 64, 57, 88, 58, 63, 67, 59, 53, 59, 62, 60, 60, 61, 48, 41, 65, 72, 65, 60, 51, 54, 65, 64, 66, 55, 64, 85, 61, 81, 96, 98, 52, 58, 60, 69, 70, 55, 68, 68, 64, 85, 74, 59, 71, 74, 47, 63, 100, 52, 66, 62, 61, 52, 64, 54, 72, 61, 61, 71, 59, 69, 64, 43, 48, 57, 64, 49, 57, 98, 117, 87, 71, 52, 75, 66, 76, 71, 53, 73, 70, 56, 72, 83, 62, 76, 53, 55, 79, 76, 64, 65, 70, 64, 73, 59, 62, 78, 46, 60, 56, 50, 63, 58, 90, 84, 73, 74, 62, 55, 79, 59, 59, 68, 61, 50, 60, 69, 67, 57, 35, 61, 44, 49, 60, 63, 74, 63, 77, 66, 55, 71, 77, 55, 58, 67, 69, 66, 49, 56, 53, 52, 65, 72, 82, 56, 53, 56, 53, 47, 57, 70, 62, 54, 76, 67, 63, 101, 67, 52, 60, 68, 69, 78, 117, 66, 77, 71, 58, 49, 69, 62, 64, 69, 72, 50, 61, 55, 66, 57, 62, 71, 55, 74, 57, 75, 62, 67, 71, 72, 64, 69, 61, 49, 76, 58, 62, 52, 66, 68, 66, 76, 80, 68, 56, 56, 63, 60, 72, 73, 106, 66, 70, 69, 65, 65, 56, 59, 55, 66, 65, 56, 42, 114, 63, 62, 79, 50, 71, 72, 59, 77, 72, 47, 56, 68, 63, 72, 69, 59, 71, 99, 53, 62, 62, 58, 56, 69, 55, 70, 70, 59, 55, 74, 58, 55, 83, 62, 56, 64, 54, 62, 65, 59, 64, 56, 73, 72, 71, 57, 54, 87, 40, 55, 63, 67, 75, 70, 51, 59, 71, 47, 68, 61, 60, 61, 73, 53, 72, 75, 56, 63, 82, 55, 73, 59, 57, 53, 72, 62, 56, 59, 74, 62, 56, 67, 84, 68, 59, 67, 60, 61, 77, 74, 53, 65, 65, 67, 71, 73, 78, 72, 54, 61, 57, 67, 69, 66, 77, 57, 55, 54, 103, 71, 53, 69, 46, 49, 48, 75, 70, 53, 54, 67, 64, 124, 73, 67, 62, 47, 56, 78, 60, 60, 48, 68, 58, 88, 87, 61, 65, 78, 90, 74, 58, 79, 52, 66, 68, 86, 58, 63, 69, 58, 77, 78, 57, 74, 67, 62, 66, 68, 47, 64, 58, 62, 54, 49, 55, 68, 76, 74, 76, 65, 54, 123, 77, 56, 69, 96, 55, 68, 62, 59, 64, 66, 47, 60, 61, 77, 74, 65, 60, 50, 69, 104, 66, 66, 63, 81, 57, 51, 63, 71, 70, 82, 58, 53, 62, 80, 59, 81, 74, 51, 62, 53, 62, 59, 46, 72, 57, 64, 71, 53, 68, 54, 56, 69, 53, 81, 76, 69, 71, 53, 82, 76, 58, 57, 63, 65, 96, 80, 52, 64, 57, 61, 47, 62, 63, 60, 55, 63, 38, 67, 75, 89, 63, 79, 71, 88, 57, 74, 62, 57, 59, 59, 65, 76, 60, 61, 66, 63, 75, 81, 66, 81, 63, 72, 59, 77, 76, 69, 54, 52, 69, 42, 65, 57, 65, 90, 55, 46, 65, 64, 53, 83, 65, 61, 62, 60, 60, 34, 74, 43, 48, 74, 89, 44, 68, 68, 43, 70, 60, 54, 63, 57, 52, 48, 64, 65, 58, 46, 111, 71, 71, 49, 55, 76, 71, 59, 37, 61, 74, 81, 70, 51, 57, 76, 76, 49, 58, 83, 66, 85, 55, 81, 61, 73, 57, 78, 85, 60, 89, 56, 56, 76, 55, 51, 51, 67, 57, 68, 63, 75, 67, 68, 75, 49, 50, 87, 64, 56, 120, 37, 82, 69, 71, 51, 101, 78, 62, 64, 55, 63, 52, 60, 67, 79, 54, 54, 60, 94, 62, 84, 80, 87, 72, 73, 53, 66, 62, 58, 73, 55, 72, 65, 66, 51, 100, 77, 71, 72, 65, 65, 63, 53, 59, 59, 55, 72, 55, 59, 84, 55, 61, 87, 61, 53, 62, 66, 74, 63, 79, 65, 55, 81, 61, 67, 52, 64, 48, 61, 49, 51, 73, 66, 98, 72, 52, 64, 61, 60, 76, 88, 73, 75, 68, 119, 65, 81, 49, 62, 58, 65, 64, 85, 54, 68, 86, 50, 61, 58, 68, 86, 71, 51, 53, 75, 76, 54, 62, 69, 58, 95, 66, 61, 71, 47, 51, 63, 61, 71, 51, 65, 50, 56, 61, 62, 67, 59, 96, 78, 58, 59, 78, 75, 77, 78, 62, 66, 65, 77, 57, 112, 77, 73, 75, 58, 68, 59, 83, 86, 71, 43, 61, 71, 66, 52, 58, 62, 49, 42, 46, 61, 74, 47, 71, 61, 60, 66, 61, 51, 69, 69, 57, 48, 67, 72, 70, 60, 71, 49, 51, 68, 66, 67, 63, 61, 61, 53, 63, 61, 57, 61, 60, 68, 72, 66, 111, 54, 54, 84, 57, 59, 67, 66, 68, 57, 54, 84, 69, 58, 83, 104, 79, 75, 53, 97, 68, 60, 68, 76, 60, 44, 54, 44, 56, 66, 62, 77, 71, 82, 77, 64, 48, 58, 52, 76, 45, 77, 61, 69, 57, 87, 63, 73, 53, 59, 94, 53, 57, 54, 52, 61, 83, 72, 93, 66, 72, 80, 66, 74, 55, 75, 71, 73, 56, 56, 62, 80, 79, 66, 61, 61, 61, 84, 40, 50, 64, 49, 60, 50, 72, 62, 65, 80, 60, 51, 66, 68, 56, 45, 81, 55, 61, 70, 56, 47, 69, 108, 57, 72, 64, 54, 54, 71, 47, 60, 81, 46, 59, 52, 53, 65, 68, 68, 58, 86, 85, 57, 51, 57, 56, 64, 65, 70, 50, 66, 58, 56, 68, 58, 56, 72, 64, 72, 65, 39, 55, 60, 65, 58, 63, 67, 87, 84, 90, 71, 81, 63, 80, 50, 62, 52, 74, 64, 45, 61, 69, 69, 50, 80, 62, 79, 53, 71, 67, 62, 133, 78, 51, 60, 45, 50, 68, 138, 89, 82, 76, 59, 90, 82, 58, 71, 55, 63, 78, 55, 44, 69, 92, 68, 70, 70, 73, 71, 66, 77, 95, 60, 81, 61, 49, 75, 68, 72, 97, 60, 102, 62, 55, 72, 58, 82, 65, 61, 73, 92, 75, 65, 46, 60, 65, 82, 50, 81, 54, 58, 69, 69, 61, 63, 75, 45, 53, 49, 62, 50, 63, 53, 95, 59, 71, 74, 73, 54, 58, 62, 60, 74, 53, 69, 54, 80, 62, 49, 87, 65, 61, 69, 53, 85, 55, 70, 51, 85, 104, 49, 59, 72, 67, 54, 53, 76, 84, 53, 60, 70, 74, 94, 60, 78, 70, 72, 61, 52, 79, 63, 78, 58, 53, 62, 63, 68, 61, 80, 71, 59, 81, 71, 62, 67, 80, 86, 59, 97, 75, 66, 51, 79, 81, 69, 46, 47, 53, 54, 82, 45, 61, 55, 83, 56, 58, 99, 76, 59, 63, 56, 47, 54, 84, 60, 59, 57, 68, 62, 63, 69, 49, 76, 65, 63, 65, 76, 71, 75, 73, 56, 65, 51, 39, 71, 54, 63, 62, 74, 51, 64, 82, 62, 65, 62, 75, 97, 65, 63, 65, 53, 77, 54, 78, 72, 67, 45, 57, 57, 96, 76, 65, 68, 58, 54, 55, 86, 77, 52, 59, 77, 62, 56, 75, 64, 96, 65, 60, 84, 41, 127, 59, 56, 66, 86, 70, 77, 79, 91, 53, 74, 77, 64, 75, 72, 67, 41, 69, 52, 62, 50, 72, 67, 65, 56, 76, 79, 59, 65, 57, 55, 75, 57, 63, 54, 75, 63, 57, 64, 64, 58, 64, 48, 60, 40, 75, 57, 66, 76, 69, 56, 70, 50, 60, 46, 61, 64, 58, 58, 78, 110, 83, 70, 56, 61, 59, 74, 68, 79, 66, 77, 52, 47, 70, 72, 72, 57, 49, 79, 70, 70, 51, 62, 74, 63, 54, 82, 77, 43, 58, 77, 56, 58, 50, 53, 55, 75, 68, 55, 71, 64, 56, 43, 66, 60, 75, 62, 72, 66, 55, 64, 67, 69, 63, 59, 59, 72, 63, 65, 62, 90, 71, 78, 51, 41, 63, 54, 71, 60, 49, 83, 80, 57, 49, 56, 58, 93, 61, 72, 75, 51, 72, 52, 81, 57, 69, 60, 71, 56, 55, 76, 43, 60, 65, 74, 55, 60, 63, 65, 77, 54, 71, 50, 86, 79, 79, 62, 52, 82, 77, 63, 94, 75, 64, 74, 48, 51, 74, 55, 67, 76, 84, 156, 65, 57, 58, 75, 69, 60, 53, 61, 52, 53, 82, 72, 63, 59, 70, 62, 70, 67, 52, 77, 61, 51, 50, 52, 69, 64, 47, 62, 56, 81, 59, 76, 78, 95, 68, 75, 57, 57, 57, 72, 81, 51, 73, 53, 91, 45, 64, 64, 64, 118, 64, 71, 60, 144, 54, 63, 51, 58, 67, 69, 69, 74, 57, 75, 68, 96, 53, 60, 75, 88, 74, 41, 69, 61, 58, 51, 63, 59, 64, 32, 78, 71, 77, 58, 73, 40, 56, 73, 85, 103, 71, 45, 58, 81, 58, 71, 85, 69, 75, 63, 89, 60, 64, 74, 75, 75, 60, 68, 63, 60, 91, 72, 51, 51, 64, 53, 56, 66, 54, 81, 47, 81, 82, 44, 57, 81, 40, 58, 58, 69, 54, 79, 91, 65, 83, 61, 46, 56, 58, 62, 47, 72, 56, 49, 58, 51, 57, 71, 85, 48, 72, 58, 52, 78, 71, 31, 61, 57, 61, 53, 60, 51, 53, 73, 81, 63, 73, 52, 64, 59, 56, 53, 45, 73, 58, 48, 84, 71, 52, 54, 62, 67, 66, 67, 71, 49, 75, 57, 57, 75, 77, 67, 78, 62, 83, 54, 87, 74, 56, 62, 63, 59, 60, 66, 65, 57, 60, 81, 67, 63, 54, 65, 67, 70, 44, 76, 59, 69, 75, 68, 52, 80, 53, 104, 49, 84, 65, 60, 64, 76, 84, 58, 63, 59, 70, 89, 64, 73, 65, 68, 56, 70, 77, 90, 67, 71, 75, 71, 64, 75, 70, 62, 65, 75, 65, 67, 66, 65, 79, 59, 65, 71, 64, 44, 49, 55, 65, 68, 66, 128, 56, 62, 53, 80, 60, 72, 71, 64, 152, 84, 69, 51, 46, 59, 62, 55, 60, 51, 62, 61, 56, 53, 67, 55, 53, 58, 81, 48, 55, 83, 60, 62, 65, 59, 56, 64, 68, 80, 54, 54, 62, 61, 61, 57, 61, 75, 75, 51, 64, 55, 59, 60, 54, 52, 61, 58, 74, 52, 67, 61, 50, 101, 72, 80, 56, 68, 71, 75, 53, 68, 89, 53, 79, 70, 68, 74, 67, 82, 58, 59, 61, 63, 54, 45, 84, 64, 80, 57, 41, 56, 62, 69, 62, 78, 72, 74, 69, 62, 54, 95, 63, 59, 78, 50, 82, 59, 65, 66, 50, 75, 47, 62, 57, 67, 66, 57, 75, 68, 67, 105, 50, 70, 52, 73, 71, 70, 58, 61, 50, 57, 54, 48, 85, 74, 93, 64, 57, 75, 61, 76, 63, 55, 64, 67, 51, 61, 60, 74, 64, 75, 56, 64, 84, 76, 54, 87, 72, 79, 58, 55, 60, 56, 60, 70, 69, 64, 59, 70, 71, 66, 74, 52, 112, 66, 61, 75, 60, 68, 66, 62, 79, 53, 73, 94, 67, 58, 44, 83, 41, 62, 98, 78, 63, 70, 67, 49, 60, 48, 65, 39, 54, 60, 71, 63, 75, 79, 58, 50, 58, 64, 66, 58, 65, 72, 59, 69, 68, 63, 52, 64, 67, 59, 64, 67, 73, 64, 64, 56, 105, 53, 65, 54, 83, 54, 54, 82, 51, 81, 58, 90, 50, 60, 68, 60, 39, 42, 63, 74, 58, 71, 70, 74, 64, 50, 72, 61, 50, 56, 66, 64, 50, 70, 66, 83, 65, 61, 61, 65, 51, 94, 52, 53, 50, 134, 56, 59, 72, 77, 50, 62, 54, 66, 49, 73, 68, 63, 57, 64, 66, 58, 42, 81, 45, 61, 65, 62, 60, 69, 64, 75, 76, 67, 71, 66, 66, 55, 70, 62, 61, 119, 77, 86, 61, 72, 58, 55, 58, 59, 48, 71, 63, 79, 73, 69, 59, 68, 67, 67, 83, 54, 84, 59, 66, 61, 63, 46, 55, 57, 77, 84, 62, 72, 70, 67, 64, 83, 87, 63, 75, 129, 66, 60, 76, 51, 75, 74, 65, 81, 61, 68, 83, 64, 63, 61, 58, 58, 44, 94, 59, 61, 60, 66, 84, 65, 71, 59, 83, 73, 50, 75, 98, 89, 86, 67, 60, 72, 63, 61, 83, 52, 66, 67, 57, 51, 70, 51, 66, 76, 52, 62, 68, 55, 60, 94, 59, 64, 52, 72, 63, 67, 70, 80, 76, 54, 68, 47, 68, 60, 58, 71, 73, 62, 61, 58, 65, 54, 62, 67, 73, 56, 73, 64, 48, 79, 69, 61, 66, 69, 45, 70, 45, 66, 63, 67, 80, 61, 51, 63, 47, 74, 46, 59, 66, 67, 49, 65, 91, 64, 64, 84, 61, 57, 62, 73, 65, 61, 65, 69, 47, 71, 66, 65, 104, 67, 64, 70, 65, 124, 47, 104, 36, 61, 49, 67, 63, 108, 51, 68, 56, 53, 64, 76, 59, 58, 51, 62, 62, 97, 60, 70, 58, 58, 64, 59, 57, 59, 59, 80, 46, 59, 69, 64, 75, 48, 71, 88, 63, 60, 61, 51, 52, 65, 67, 67, 47, 65, 53, 63, 84, 67, 68, 60, 55, 59, 62, 77, 81, 66, 63, 65, 63, 55, 52, 77, 117, 51, 57, 57, 89, 73, 65, 59, 73, 61, 58, 59, 57, 48, 49, 61, 60, 51, 75, 60, 62, 54, 52, 62, 53, 65, 58, 53, 76, 55, 69, 80, 56, 58, 67, 59, 68, 68, 59, 74, 60, 71, 57, 72, 51, 63, 54, 55, 69, 65, 58, 75, 66, 78, 80, 52, 57, 62, 80, 78, 63, 60, 61, 40, 55, 75, 77, 91, 69, 69, 70, 47, 62, 61, 62, 82, 57, 58, 52, 48, 72, 56, 58, 57, 58, 72, 78, 84, 59, 70, 66, 73, 58, 61, 62, 59, 62, 97, 63, 58, 61, 61, 64, 77, 96, 88, 57, 65, 68, 56, 91, 67, 63, 57, 74, 61, 67, 59, 61, 62, 73, 69, 69, 63, 50, 55, 54, 75, 65, 61, 66, 74, 58, 88, 73, 77, 56, 65, 64, 66, 54, 66, 61, 62, 66, 52, 61, 98, 52, 72, 71, 62, 52, 49, 64, 71, 62, 42, 84, 75, 56, 50, 44, 82, 65, 61, 56, 68, 61, 53, 133, 62, 59, 75, 59, 56, 66, 97, 63, 64, 58, 58, 58, 87, 58, 69, 53, 61, 54, 55, 63, 95, 80, 66, 66, 53, 87, 81, 46, 46, 69, 68, 71, 54, 89, 52, 54, 85, 78, 130, 53, 55, 88, 68, 52, 65, 71, 50, 54, 69, 54, 69, 73, 51, 74, 57, 67, 64, 65, 80, 68, 68, 72, 63, 50, 61, 46, 65, 51, 75, 60, 58, 67, 59, 61, 69, 53, 80, 63, 50, 65, 63, 63, 63, 68, 94, 53, 70, 76, 116, 62, 81, 60, 110, 65, 64, 61, 61, 53, 47, 63, 65, 68, 51, 78, 67, 53, 82, 64, 62, 68, 66, 56, 65, 56, 67, 70, 78, 66, 95, 67, 62, 57, 66, 69, 85, 71, 55, 58, 67, 58, 62, 83, 74, 59, 70, 89, 61, 61, 66, 51, 61, 63, 61, 61, 62, 85, 61, 56, 65, 59, 58, 64, 64, 80, 59, 62, 70, 73, 55, 54, 94, 68, 68, 55, 56, 60, 57, 95, 59, 60, 76, 69, 65, 64, 76, 68, 53, 64, 58, 67, 68, 53, 77, 62, 65, 65, 80, 62, 66, 60, 78, 62, 56, 75, 54, 73, 59, 61, 78, 97, 61, 55, 66, 62, 91, 62, 62, 94, 60, 70, 70, 57, 82, 73, 76, 65, 47, 89, 61, 50, 74, 78, 73, 71, 37, 60, 68, 91, 63, 64, 75, 53, 58, 52, 68, 72, 45, 48, 50, 49, 69, 66, 66, 62, 67, 54, 87, 43, 52, 57, 62, 63, 72, 56, 62, 52, 52, 52, 69, 71, 59, 56, 78, 54, 64, 60, 66, 53, 45, 110, 77, 70, 88, 46, 83, 92, 76, 77, 59, 75, 55, 51, 71, 44, 79, 91, 68, 86, 56, 74, 57, 70, 71, 67, 61, 46, 50, 79, 51, 47, 70, 62, 53, 71, 59, 66, 63, 64, 115, 79, 87, 54, 86, 66, 71, 72, 55, 76, 76, 58, 71, 67, 53, 61, 74, 53, 53, 66, 94, 55, 51, 61, 62, 74, 59, 76, 63, 67, 56, 77, 64, 66, 76, 59, 78, 50, 48, 79, 71, 83, 71, 77, 36, 68, 81, 71, 61, 57, 67, 86, 56, 65, 57, 63, 91, 41, 84, 63, 77, 47, 90, 41, 82, 71, 59, 58, 60, 67, 56, 51, 64, 55, 84, 60, 97, 66, 101, 62, 54, 55, 70, 53, 65, 34, 60, 58, 74, 70, 51, 52, 59, 68, 62, 67, 60, 50, 74, 59, 71, 60, 47, 48, 78, 68, 55, 82, 46, 43, 70, 73, 59, 66, 68, 62, 75, 66, 69, 58, 78, 50, 59, 66, 56, 87, 75, 58, 71, 62, 69, 57, 59, 48, 61, 73, 50, 58, 59, 73, 80, 73, 39, 72, 53, 47, 51, 60, 62, 72, 65, 78, 67, 66, 40, 58, 96, 55, 49, 63, 69, 54, 52, 73, 58, 86, 49, 63, 74, 76, 68, 68, 72, 120, 53, 64, 92, 93, 53, 55, 60, 87, 66, 56, 51, 41, 50, 63, 76, 80, 42, 79, 79, 53, 62, 41, 74, 56, 63, 57, 49, 56, 49, 117, 61, 62, 67, 66, 50, 67, 76, 64, 51, 81, 46, 68, 62, 70, 65, 91, 94, 54, 58, 61, 75, 67, 64, 76, 58, 80, 68, 70, 71, 87, 53, 76, 74, 66, 84, 81, 66, 60, 75, 71, 71, 50, 50, 64, 86, 68, 67, 48, 46, 59, 55, 53, 74, 69, 60, 84, 67, 55, 61, 62, 72, 53, 58, 67, 59, 48, 63, 76, 51, 62, 105, 53, 62, 64, 73, 78, 66, 70, 54, 88, 87, 54, 47, 43, 76, 61, 57, 81, 76, 72, 53, 78, 73, 57, 62, 69, 71, 61, 69, 68, 47, 65, 76, 62, 51, 66, 59, 73, 54, 68, 77, 60, 59, 76, 84, 83, 67, 60, 77, 54, 59, 57, 58, 64, 54, 67, 54, 97, 82, 57, 68, 55, 102, 63, 71, 106, 90, 65, 48, 61, 51, 82, 64, 42, 47, 54, 128, 94, 50, 51, 51, 102, 69, 51, 97, 54, 62, 74, 43, 72, 61, 99, 74, 68, 60, 74, 83, 62, 69, 117, 59, 89, 58, 49, 50, 83, 60, 110, 70, 60, 59, 66, 62, 53, 66, 77, 58, 83, 53, 44, 65, 47, 66, 96, 97, 86, 86, 56, 84, 62, 98, 62, 60, 80, 74, 60, 77, 74, 54, 85, 84, 79, 44, 59, 69, 56, 76, 39, 54, 70, 53, 67, 65, 76, 66, 74, 45, 52, 64, 86, 60, 84, 80, 56, 59, 80, 72, 79, 55, 59, 81, 68, 46, 71, 56, 67, 69, 91, 69, 61, 55, 73, 70, 67, 49, 67, 70, 52, 59, 44, 51, 63, 102, 82, 47, 48, 50, 77, 36, 113, 70, 70, 57, 60, 123, 50, 83, 62, 50, 64, 53, 57, 88, 90, 72, 57, 53, 41, 72, 65, 66, 55, 55, 68, 82, 87, 71, 61, 54, 74, 67, 61, 61, 77, 66, 48, 57, 64, 54, 62, 55, 69, 95, 61, 71, 61, 66, 65, 73, 51, 65, 50, 81, 64, 66, 67, 49, 72, 62, 62, 68, 61, 58, 73, 58, 55, 55, 66, 67, 63, 39, 50, 72, 45, 64, 74, 49, 63, 68, 56, 44, 57, 64, 61, 79, 62, 66, 57, 55, 64, 52, 48, 63, 62, 74, 44, 45, 52, 55, 66, 67, 73, 73, 61, 49, 64, 58, 54, 49, 59, 63, 70, 74, 53, 73, 59, 44, 72, 73, 81, 65, 49, 51, 90, 59, 47, 56, 73, 78, 96, 57, 77, 63, 58, 55, 57, 74, 60, 63, 51, 56, 77, 43, 72, 56, 64, 90, 56, 82, 75, 77, 90, 54, 55, 51, 83, 62, 51, 100, 98, 65, 52, 51, 93, 68, 69, 73, 65, 73, 72, 68, 80, 60, 90, 57, 114, 94, 64, 66, 69, 62, 67, 59, 75, 64, 77, 75, 63, 62, 66, 48, 69, 75, 68, 67, 65, 69, 61, 69, 69, 75, 54, 60, 45, 101, 74, 78, 61, 57, 58, 63, 50, 54, 49, 59, 97, 40, 46, 93, 80, 69, 75, 74, 76, 91, 66, 56, 70, 52, 60, 67, 61, 53, 74, 93, 83, 74, 70, 78, 58, 60, 85, 69, 57, 59, 52, 56, 57, 88, 43, 54, 57, 56, 54, 57, 68, 59, 59, 61, 81, 67, 58, 71, 48, 69, 58, 55, 91, 68, 73, 65, 70, 56, 77, 53, 62, 62, 78, 72, 58, 135, 45, 63, 73, 65, 43, 60, 63, 69, 76, 62, 55, 70, 66, 69, 67, 62, 64, 68, 66, 46, 58, 55, 70, 65, 55, 69, 66, 55, 52, 82, 53, 51, 63, 46, 55, 60, 58, 77, 51, 92, 69, 52, 59, 56, 72, 81, 61, 64, 60, 107, 60, 70, 59, 125, 75, 62, 56, 81, 51, 86, 61, 68, 73, 54, 66, 57, 73, 116, 50, 80, 62, 51, 73, 69, 69, 53, 104, 74, 53, 61, 75, 58, 61, 102, 49, 68, 57, 61, 105, 40, 57, 60, 97, 77, 63, 49, 69, 60, 75, 60, 61, 56, 59, 51, 79, 41, 62, 47, 71, 57, 79, 52, 48, 77, 64, 70, 57, 73, 59, 63, 59, 75, 82, 70, 54, 57, 52, 51, 58, 67, 51, 55, 67, 58, 67, 58, 54, 64, 72, 62, 49, 58, 60, 57, 74, 67, 61, 40, 59, 47, 55, 50, 61, 71, 56, 60, 69, 45, 69, 56, 76, 57, 66, 60, 68, 73, 75, 77, 85, 48, 58, 75, 57, 53, 57, 100, 69, 81, 53, 81, 63, 72, 56, 60, 65, 58, 70, 66, 72, 60, 77, 69, 70, 75, 44, 93, 77, 63, 64, 45, 73, 56, 81, 80, 49, 82, 55, 84, 58, 65, 62, 53, 79, 67, 56, 64, 68, 59, 91, 62, 77, 59, 87, 49, 63, 77, 72, 59, 61, 62, 63, 56, 54, 52, 59, 100, 57, 79, 55, 75, 67, 71, 56, 78, 47, 60, 39, 56, 55, 114, 45, 59, 69, 73, 60, 65, 69, 66, 72, 76, 62, 45, 60, 59, 108, 46, 77, 93, 51, 62, 62, 56, 83, 69, 53, 61, 48, 58, 131, 61, 81, 53, 60, 56, 56, 52, 68, 76, 56, 73, 69, 66, 69, 77, 86, 74, 81, 73, 61, 88, 51, 72, 46, 62, 47, 64, 61, 62, 65, 78, 47, 53, 78, 55, 62, 73, 43, 71, 72, 82, 72, 70, 61, 77, 68, 67, 74, 76, 58, 59, 71, 69, 64, 85, 64, 65, 65, 96, 58, 51, 44, 67, 68, 85, 78, 75, 48, 46, 48, 59, 53, 72, 61, 58, 62, 70, 81, 84, 57, 64, 53, 59, 60, 84, 73, 65, 64, 62, 73, 42, 60, 58, 72, 58, 60, 79, 57, 62, 66, 67, 69, 62, 55, 67, 87, 72, 66, 48, 69, 88, 63, 60, 61, 74, 63, 73, 79, 91, 41, 40, 60, 85, 83, 97, 52, 68, 59, 68, 74, 74, 62, 72, 51, 80, 79, 77, 48, 56, 54, 81, 70, 57, 65, 63, 83, 49, 60, 69, 57, 81, 58, 53, 77, 54, 86, 75, 66, 49, 75, 83, 82, 62, 130, 69, 64, 101, 53, 56, 81, 72, 73, 62, 55, 68, 73, 60, 58, 58, 68, 73, 65, 62, 60, 74, 67, 67, 67, 77, 52, 76, 44, 58, 68, 74, 62, 66, 51, 66, 55, 73, 75, 56, 70, 57, 73, 52, 79, 61, 59, 69, 46, 81, 55, 58, 65, 54, 39, 71, 67, 70, 81, 83, 67, 57, 55, 70, 45, 80, 79, 78, 126, 46, 54, 65, 69, 47, 63, 77, 51, 56, 83, 62, 71, 55, 80, 71, 55, 76, 54, 70, 50, 78, 53, 91, 65, 63, 49, 57, 55, 45, 41, 51, 54, 83, 61, 63, 70, 66, 71, 61, 45, 56, 64, 76, 63, 62, 71, 107, 63, 69, 53, 91, 54, 65, 63, 58, 47, 43, 66, 59, 65, 56, 49, 53, 76, 87, 50, 39, 68, 79, 51, 100, 64, 54, 45, 39, 51, 56, 67, 43, 61, 50, 61, 68, 67, 64, 76, 58, 47, 61, 76, 55, 63, 43, 69, 54, 54, 85, 56, 57, 72, 61, 69, 75, 60, 86, 68, 63, 53, 138, 44, 45, 86, 64, 57, 69, 73, 79, 65, 89, 86, 74, 81, 77, 62, 81, 71, 66, 64, 42, 62, 58, 88, 72, 66, 66, 76, 58, 63, 72, 111, 56, 59, 55, 89, 75, 50, 53, 90, 68, 61, 111, 60, 65, 56, 65, 62, 73, 68, 68, 56, 46, 58, 76, 73, 48, 67, 74, 60, 74, 54, 80, 84, 67, 55, 70, 71, 57, 77, 64, 60, 48, 63, 61, 65, 80, 80, 82, 52, 54, 40, 56, 61, 60, 72, 62, 60, 76, 71, 100, 54, 83, 72, 58, 74, 66, 66, 56, 66, 79, 73, 75, 42, 67, 57, 49, 105, 68, 68, 51, 76, 47, 67, 48, 71, 48, 73, 62, 48, 72, 73, 85, 77, 56, 48, 40, 45, 91, 65, 60, 50, 51, 44, 64, 50, 80, 65, 54, 55, 79, 52, 81, 70, 84, 60, 55, 67, 88, 68, 48, 63, 60, 68, 54, 75, 53, 69, 65, 51, 65, 57, 62, 85, 80, 50, 63, 63, 59, 61, 58, 61, 55, 73, 53, 70, 91, 82, 43, 74, 63, 67, 53, 56, 60, 64, 80, 91, 63, 50, 58, 67, 73, 59, 55, 51, 66, 63, 59, 65, 59, 59, 63, 69, 58, 74, 70, 68, 55, 54, 82, 61, 64, 61, 54, 48, 62, 37, 53, 56, 76, 56, 49, 91, 59, 62, 63, 67, 59, 54, 67, 81, 43, 71, 67, 93, 60, 67, 87, 54, 56, 47, 81, 72, 71, 67, 58, 62, 77, 58, 58, 54, 64, 73, 54, 65, 73, 71, 60, 72, 84, 78, 80, 65, 67, 63, 63, 64, 72, 60, 73, 94, 71, 47, 84, 54, 55, 46, 72, 49, 68, 48, 111, 71, 58, 52, 78, 63, 71, 56, 57, 58, 60, 67, 52, 82, 63, 49, 71, 60, 70, 48, 59, 77, 71, 61, 55, 54, 63, 66, 54, 61, 88, 51, 47, 73, 56, 62, 86, 67, 76, 58, 55, 68, 70, 60, 85, 62, 71, 58, 98, 54, 64, 63, 49, 87, 55, 56, 67, 38, 58, 59, 54, 62, 52, 85, 65, 54, 74, 61, 58, 64, 58, 80, 59, 56, 62, 64, 89, 71, 52, 72, 61, 55, 57, 95, 47, 57, 43, 65, 69, 50, 70, 49, 57, 72, 47, 58, 80, 75, 57, 65, 49, 67, 56, 58, 86, 84, 53, 68, 73, 102, 53, 80, 62, 54, 63, 73, 66, 66, 72, 60, 60, 79, 140, 91, 78, 75, 50, 59, 82, 61, 83, 61, 72, 63, 56, 108, 57, 80, 70, 69, 88, 53, 54, 63, 82, 57, 101, 64, 68, 57, 69, 69, 59, 64, 64, 55, 58, 61, 71, 57, 57, 69, 69, 49, 54, 57, 68, 62, 67, 71, 78, 50, 110, 76, 47, 76, 89, 75, 61, 56, 55, 51, 76, 51, 85, 70, 59, 84, 68, 61, 67, 58, 69, 69, 55, 77, 77, 58, 67, 91, 58, 57, 60, 57, 84, 76, 55, 59, 70, 71, 71, 68, 59, 91, 68, 68, 67, 55, 74, 40, 74, 50, 62, 49, 60, 57, 78, 66, 68, 64, 65, 63, 64, 76, 48, 64, 65, 90, 60, 59, 53, 66, 66, 69, 40, 58, 75, 66, 57, 74, 55, 83, 115, 79, 98, 62, 92, 55, 59, 83, 74, 61, 57, 59, 90, 62, 72, 61, 61, 49, 73, 72, 93, 59, 65, 73, 63, 82, 56, 65, 66, 62, 60, 62, 64, 56, 85, 57, 67, 56, 55, 60, 52, 76, 60, 77, 55, 61, 67, 51, 52, 72, 65, 84, 52, 72, 49, 53, 55, 54, 74, 68, 41, 44, 97, 53, 78, 49, 66, 111, 55, 64, 87, 50, 69, 56, 49, 70, 72, 69, 86, 65, 72, 63, 56, 59, 50, 60, 62, 61, 45, 69, 70, 65, 65, 69, 91, 75, 50, 65, 62, 77, 55, 75, 80, 60, 65, 55, 72, 95, 45, 73, 60, 80, 61, 68, 59, 64, 54, 62, 67, 51, 72, 73, 84, 85, 66, 52, 70, 64, 65, 51, 76, 92, 72, 58, 64, 60, 59, 62, 75, 76, 86, 88, 65, 62, 65, 60, 82, 51, 70, 103, 55, 60, 56, 58, 78, 73, 76, 47, 43, 61, 61, 51, 79, 69, 61, 84, 61, 63, 82, 65, 84, 55, 65, 77, 52, 56, 73, 60, 71, 64, 55, 66, 53, 89, 62, 68, 74, 75, 61, 55, 84, 78, 57, 59, 54, 68, 60, 62, 80, 61, 78, 70, 99, 69, 78, 52, 63, 46, 84, 67, 70, 58, 54, 67, 57, 55, 95, 79, 75, 60, 81, 65, 54, 51, 80, 56, 72, 52, 83, 60, 90, 52, 64, 53, 73, 72, 61, 62, 69, 67, 58, 56, 67, 51, 53, 96, 71, 45, 75, 87, 72, 75, 81, 53, 57, 74, 62, 67, 83, 55, 95, 39, 56, 67, 39, 69, 45, 58, 59, 73, 49, 54, 56, 64, 64, 60, 58, 48, 67, 63, 80, 62, 72, 57, 48, 65, 48, 45, 49, 69, 69, 78, 54, 75, 75, 74, 46, 65, 79, 55, 55, 71, 71, 47, 54, 64, 64, 61, 78, 72, 70, 71, 76, 121, 71, 61, 97, 56, 62, 66, 72, 88, 58, 54, 35, 54, 62, 68, 70, 68, 76, 68, 65, 70, 78, 56, 48, 62, 59, 67, 43, 66, 61, 66, 57, 67, 74, 58, 62, 73, 75, 64, 49, 46, 70, 48, 49, 60, 56, 63, 66, 60, 84, 65, 51, 78, 61, 70, 53, 83, 80, 70, 78, 48, 77, 57, 78, 55, 71, 53, 66, 78, 56, 60, 86, 78, 56, 70, 64, 51, 78, 56, 46, 62, 55, 67, 74, 57, 70, 70, 60, 65, 51, 57, 65, 54, 45, 60, 60, 67, 69, 59, 58, 49, 114, 48, 60, 66, 53, 75, 51, 47, 64, 81, 55, 76, 60, 74, 55, 61, 72, 55, 69, 69, 54, 40, 87, 53, 69, 67, 55, 83, 45, 92, 52, 52, 51, 51, 61, 59, 91, 70, 70, 64, 71, 39, 75, 65, 75, 77, 52, 78, 86, 52, 78, 99, 83, 64, 46, 59, 60, 61, 62, 52, 49, 51, 61, 77, 60, 77, 58, 59, 43, 96, 55, 45, 64, 63, 74, 55, 151, 67, 66, 65, 74, 59, 68, 82, 79, 72, 67, 71, 61, 47, 66, 77, 49, 65, 73, 84, 68, 50, 51, 68, 53, 47, 66, 67, 66, 61, 56, 106, 56, 69, 65, 83, 72, 57, 73, 55, 64, 72, 69, 59, 33, 58, 63, 41, 75, 58, 62, 57, 78, 70, 77, 54, 72, 70, 48, 65, 78, 62, 46, 76, 50, 51, 73, 66, 70, 83, 70, 42, 56, 52, 52, 65, 66, 63, 76, 74, 67, 63, 78, 74, 68, 73, 70, 66, 72, 69, 106, 77, 72, 65, 73, 74, 75, 64, 64, 75, 78, 39, 56, 59, 69, 68, 59, 56, 52, 68, 53, 35, 68, 62, 55, 65, 73, 69, 62, 75, 53, 120, 69, 91, 68, 78, 78, 55, 115, 76, 56, 75, 73, 79, 64, 64, 90, 52, 82, 67, 72, 66, 77, 65, 73, 60, 59, 72, 98, 69, 42, 54, 55, 57, 63, 50, 57, 60, 69, 52, 75, 61, 72, 57, 92, 86, 60, 44, 54, 72, 64, 73, 73, 62, 49, 75, 125, 68, 82, 81, 66, 83, 37, 92, 66, 56, 83, 85, 63, 69, 53, 82, 84, 70, 59, 70, 52, 60, 51, 90, 66, 63, 49, 73, 66, 51, 49, 93, 59, 56, 65, 67, 59, 59, 69, 51, 54, 65, 66, 46, 82, 75, 82, 88, 47, 73, 65, 77, 56, 58, 64, 75, 65, 53, 101, 92, 67, 63, 53, 74, 63, 57, 77, 45, 79, 70, 80, 74, 70, 43, 78, 60, 54, 72, 68, 54, 74, 55, 84, 62, 60, 64, 72, 79, 62, 50, 56, 81, 70, 62, 60, 67, 50, 82, 71, 64, 40, 55, 51, 59, 50, 80, 92, 67, 53, 48, 66, 76, 79, 44, 67, 78, 64, 73, 69, 61, 64, 72, 79, 65, 85, 69, 53, 75, 72, 55, 71, 54, 95, 55, 57, 66, 68, 70, 57, 60, 70, 60, 61, 71, 56, 66, 74, 61, 54, 50, 68, 76, 63, 83, 72, 66, 61, 65, 62, 62, 45, 59, 64, 59, 63, 58, 64, 54, 83, 89, 75, 77, 59, 77, 50, 67, 93, 68, 68, 47, 57, 66, 81, 58, 59, 77, 62, 74, 73, 97, 67, 48, 66, 58, 59, 69, 73, 66, 56, 92, 78, 64, 69, 69, 70, 69, 74, 87, 42, 55, 50, 91, 51, 90, 63, 80, 74, 93, 72, 76, 61, 58, 57, 58, 61, 59, 85, 93, 158, 109, 71, 72, 85, 62, 50, 67, 53, 58, 68, 54, 78, 84, 59, 70, 72, 59, 59, 65, 87, 45, 57, 66, 60, 70, 68, 76, 62, 80, 75, 51, 75, 50, 72, 61, 66, 79, 66, 88, 56, 65, 58, 52, 38, 64, 72, 80, 67, 74, 109, 75, 50, 63, 132, 48, 71, 65, 56, 81, 68, 57, 75, 49, 73, 76, 56, 69, 46, 50, 85, 49, 93, 67, 60, 53, 58, 87, 70, 54, 40, 79, 73, 59, 77, 62, 87, 49, 65, 72, 85, 57, 64, 70, 64, 70, 70, 62, 35, 45, 85, 68, 64, 85, 36, 58, 58, 50, 61, 46, 74, 47, 82, 62, 50, 60, 64, 45, 63, 63, 74, 48, 64, 94, 77, 43, 70, 90, 59, 52, 88, 58, 56, 60, 54, 59, 56, 72, 72, 45, 58, 80, 65, 71, 56, 53, 83, 59, 79, 76, 84, 55, 85, 75, 58, 68, 73, 70, 59, 89, 63, 70, 71, 62, 43, 75, 55, 64, 74, 62, 81, 74, 72, 51, 63, 58, 67, 71, 52, 58, 58, 99, 73, 55, 76, 63, 81, 58, 59, 48, 70, 52, 45, 51, 56, 36, 69, 113, 80, 42, 68, 57, 54, 47, 65, 65, 66, 51, 65, 47, 66, 64, 59, 58, 54, 49, 40, 73, 51, 53, 60, 76, 74, 66, 59, 67, 58, 50, 71, 61, 64, 56, 77, 62, 72, 55, 56, 70, 64, 65, 73, 60, 59, 59, 87, 51, 52, 71, 67, 70, 51, 64, 65, 74, 86, 60, 66, 71, 75, 57, 61, 40, 89, 68, 68, 58, 62, 61, 109, 70, 115, 62, 61, 60, 63, 59, 54, 67, 52, 70, 78, 63, 52, 58, 75, 90, 91, 54, 59, 51, 50, 72, 44, 64, 59, 76, 56, 79, 67, 65, 53, 67, 58, 75, 54, 43, 59, 66, 65, 74, 62, 58, 53, 73, 77, 66, 71, 79, 67, 52, 58, 109, 70, 72, 84, 103, 47, 66, 60, 84, 69, 63, 60, 75, 74, 76, 71, 49, 66, 79, 60, 65, 62, 71, 57, 50, 41, 63, 76, 66, 62, 64, 79, 72, 89, 85, 66, 56, 93, 58, 61, 89, 77, 82, 73, 54, 53, 61, 67, 76, 51, 64, 55, 89, 59, 85, 86, 56, 65, 87, 128, 66, 94, 52, 60, 83, 71, 59, 156, 76, 86, 76, 59, 56, 72, 66, 58, 52, 68, 75, 77, 64, 65, 57, 41, 53, 51, 71, 79, 74, 50, 52, 48, 63, 70, 59, 42, 65, 65, 73, 68, 65, 55, 70, 83, 72, 71, 47, 61, 38, 87, 56, 46, 69, 70, 55, 67, 51, 63, 55, 66, 75, 67, 124, 63, 63, 84, 60, 82, 64, 79, 69, 64, 59, 70, 63, 61, 81, 62, 72, 75, 69, 77, 68, 71, 53, 66, 62, 72, 62, 34, 68, 62, 62, 146, 55, 59, 97, 44, 70, 68, 59, 80, 70, 81, 63, 81, 61, 75, 76, 66, 72, 60, 52, 42, 52, 76, 62, 42, 64, 64, 70, 70, 43, 40, 70, 62, 64, 64, 85, 59, 68, 62, 47, 73, 75, 51, 64, 58, 44, 74, 53, 59, 66, 72, 58, 67, 79, 88, 75, 80, 84, 60, 78, 58, 49, 51, 54, 52, 68, 66, 59, 52, 66, 84, 56, 85, 58, 56, 66, 56, 70, 64, 64, 58, 66, 68, 69, 52, 87, 58, 56, 84, 68, 61, 60, 76, 57, 42, 64, 76, 68, 60, 90, 70, 71, 48, 73, 50, 61, 77, 62, 61, 55, 71, 77, 63, 50, 77, 86, 66, 81, 60, 81, 65, 83, 51, 69, 67, 58, 71, 73, 60, 61, 57, 70, 67, 59, 49, 59, 81, 53, 61, 124, 57, 47, 57, 71, 65, 64, 172, 74, 82, 83, 71, 77, 68, 54, 64, 64, 54, 53, 59, 55, 72, 56, 61, 62, 71, 102, 76, 61, 66, 64, 61, 78, 60, 79, 68, 54, 55, 87, 60, 112, 46, 52, 44, 52, 60, 63, 62, 48, 91, 57, 56, 57, 56, 50, 85, 83, 107, 66, 77, 100, 65, 60, 57, 51, 62, 67, 70, 55, 67, 73, 49, 64, 48, 73, 81, 50, 55, 50, 59, 55, 60, 78, 65, 57, 78, 68, 69, 80, 56, 47, 54, 44, 67, 67, 68, 75, 72, 52, 65, 66, 76, 86, 53, 98, 76, 77, 77, 65, 56, 62, 69, 33, 54, 58, 80, 65, 53, 73, 67, 75, 53, 61, 79, 71, 52, 47, 75, 97, 52, 89, 81, 61, 66, 77, 115, 76, 64, 80, 54, 81, 71, 82, 69, 61, 49, 55, 54, 90, 90, 66, 82, 64, 61, 57, 97, 66, 52, 56, 72, 52, 83, 79, 63, 67, 61, 59, 86, 56, 42, 52, 52, 77, 77, 53, 86, 53, 50, 63, 45, 67, 51, 57, 53, 67, 61, 65, 96, 54, 30, 66, 63, 53, 86, 85, 65, 58, 77, 65, 54, 65, 63, 60, 62, 69, 47, 66, 62, 52, 66, 79, 60, 53, 76, 76, 46, 62, 75, 80, 69, 61, 66, 65, 70, 79, 46, 60, 54, 68, 97, 44, 57, 74, 75, 67, 55, 50, 75, 67, 73, 69, 71, 66, 72, 57, 47, 45, 75, 72, 80, 42, 76, 72, 64, 66, 54, 78, 69, 63, 47, 65, 39, 57, 56, 62, 104, 55, 60, 73, 78, 102, 58, 57, 66, 63, 61, 70, 89, 58, 67, 90, 58, 61, 60, 72, 62, 77, 45, 59, 80, 62, 68, 77, 66, 77, 70, 41, 47, 74, 61, 56, 57, 81, 50, 59, 76, 76, 101, 58, 41, 53, 43, 85, 52, 46, 73, 70, 62, 73, 45, 70, 63, 75, 64, 56, 60, 46, 55, 47, 64, 84, 85, 57, 63, 60, 39, 65, 58, 71, 52, 56, 52, 80, 93, 47, 59, 70, 62, 69, 53, 63, 63, 62, 77, 74, 52, 62, 54, 64, 77, 68, 51, 59, 49, 43, 95, 61, 70, 49, 59, 75, 109, 54, 63, 54, 85, 71, 67, 72, 40, 49, 62, 57, 78, 62, 65, 55, 66, 59, 70, 56, 43, 52, 68, 63, 59, 57, 58, 70, 67, 133, 76, 67, 58, 55, 63, 75, 45, 84, 92, 53, 107, 62, 73, 56, 89, 43, 66, 59, 48, 61, 70, 67, 57, 80, 52, 56, 55, 50, 83, 62, 82, 59, 72, 47, 59, 75, 42, 51, 66, 71, 76, 42, 59, 59, 71, 49, 101, 90, 61, 85, 67, 56, 60, 63, 61, 89, 66, 90, 78, 51, 103, 84, 60, 76, 129, 52, 68, 59, 68, 74, 61, 69, 72, 78, 64, 54, 82, 57, 47, 77, 76, 65, 51, 66, 76, 65, 59, 64, 78, 63, 52, 90, 71, 71, 52, 51, 78, 67, 50, 48, 58, 80, 74, 65, 72, 54, 65, 70, 64, 56, 57, 88, 73, 47, 56, 63, 57, 60, 46, 68, 75, 61, 61, 61, 58, 76, 58, 64, 82, 87, 73, 73, 62, 102, 71, 59, 64, 62, 83, 67, 61, 68, 62, 70, 55, 71, 63, 58, 71, 64, 64, 81, 82, 74, 63, 55, 77, 56, 83, 99, 62, 74, 66, 72, 62, 56, 62, 60, 48, 55, 57, 53, 64, 55, 73, 61, 60, 71, 55, 78, 75, 79, 52, 47, 54, 51, 66, 42, 53, 69, 70, 65, 52, 73, 57, 63, 49, 58, 71, 57, 59, 49, 48, 72, 72, 97, 60, 108, 54, 55, 75, 94, 66, 48, 65, 61, 55, 45, 64, 66, 63, 59, 47, 49, 59, 65, 75, 55, 56, 57, 53, 85, 79, 55, 68, 56, 63, 69, 65, 48, 62, 69, 69, 74, 58, 67, 64, 39, 46, 61, 78, 60, 58, 57, 69, 48, 57, 67, 63, 64, 65, 66, 90, 68, 87, 64, 57, 74, 61, 65, 55, 64, 70, 68, 73, 59, 46, 62, 79, 69, 149, 76, 46, 74, 73, 59, 63, 71, 56, 97, 76, 66, 75, 48, 49, 79, 65, 50, 69, 57, 73, 64, 74, 57, 75, 65, 59, 102, 49, 63, 59, 72, 56, 58, 61, 54, 66, 50, 74, 58, 67, 59, 50, 71, 71, 58, 63, 90, 73, 67, 53, 115, 89, 50, 78, 69, 68, 78, 60, 62, 65, 75, 82, 71, 77, 53, 72, 61, 77, 68, 54, 58, 73, 59, 56, 51, 74, 50, 78, 70, 66, 58, 50, 68, 64, 78, 47, 56, 84, 72, 53, 60, 56, 70, 76, 60, 71, 53, 72, 81, 90, 70, 60, 77, 40, 97, 76, 69, 69, 80, 110, 66, 54, 75, 63, 67, 54, 48, 134, 76, 77, 85, 75, 67, 69, 65, 68, 54, 49, 74, 83, 78, 64, 79, 66, 61, 71, 73, 63, 51, 69, 56, 57, 60, 64, 70, 58, 67, 69, 77, 64, 64, 60, 51, 53, 64, 56, 60, 56, 62, 62, 54, 72, 56, 68, 89, 52, 66, 60, 60, 64, 49, 76, 130, 66, 56, 80, 76, 65, 72, 63, 79, 67, 64, 66, 77, 63, 70, 59, 79, 83, 98, 59, 53, 69, 59, 52, 60, 68, 54, 48, 71, 62, 72, 80, 67, 67, 75, 57, 54, 96, 70, 56, 51, 50, 57, 74, 46, 55, 60, 56, 38, 62, 67, 65, 71, 73, 70, 86, 87, 57, 107, 74, 68, 45, 69, 56, 64, 77, 72, 61, 71, 47, 73, 88, 62, 66, 69, 73, 62, 55, 57, 63, 59, 78, 63, 86, 79, 84, 63, 61, 65, 68, 55, 73, 60, 50, 66, 72, 52, 55, 74, 60, 90, 112, 78, 60, 76, 61, 63, 70, 77, 76, 61, 59, 57, 57, 72, 78, 60, 50, 49, 54, 64, 93, 63, 86, 46, 64, 70, 68, 47, 60, 100, 65, 67, 46, 59, 64, 60, 73, 67, 69, 70, 54, 63, 53, 66, 75, 69, 40, 59, 65, 66, 50, 62, 91, 60, 60, 68, 62, 37, 60, 79, 69, 57, 70, 58, 56, 62, 67, 56, 65, 82, 63, 48, 67, 96, 64, 47, 169, 68, 46, 56, 75, 77, 56, 77, 80, 54, 90, 62, 44, 60, 46, 49, 53, 68, 56, 122, 63, 63, 57, 79, 73, 65, 57, 79, 62, 59, 55, 102, 70, 89, 50, 88, 55, 63, 68, 56, 66, 79, 85, 51, 60, 59, 71, 54, 105, 89, 76, 68, 51, 65, 60, 56, 90, 58, 60, 62, 54, 59, 72, 72, 65, 64, 79, 45, 63, 61, 68, 52, 66, 60, 56, 83, 76, 60, 61, 78, 73, 77, 65, 80, 47, 51, 51, 72, 74, 66, 64, 78, 75, 52, 84, 76, 58, 68, 78, 71, 96, 67, 68, 65, 65, 66, 60, 53, 98, 58, 69, 63, 68, 48, 77, 54, 70, 77, 53, 68, 67, 64, 87, 97, 61, 52, 60, 65, 108, 73, 81, 69, 57, 71, 77, 84, 69, 78, 63, 64, 51, 73, 64, 66, 80, 62, 61, 71, 82, 72, 106, 53, 72, 62, 55, 72, 56, 45, 77, 57, 55, 60, 89, 83, 55, 78, 67, 50, 52, 72, 56, 59, 52, 63, 60, 78, 65, 86, 73, 62, 77, 55, 49, 67, 59, 64, 87, 83, 64, 52, 79, 79, 64, 57, 66, 53, 77, 52, 73, 71, 62, 62, 61, 82, 58, 58, 58, 95, 73, 49, 78, 56, 70, 62, 57, 89, 54, 51, 63, 57, 73, 50, 63, 61, 62, 58, 58, 62, 64, 69, 88, 71, 62, 70, 81, 86, 64, 54, 76, 49, 62, 55, 70, 52, 46, 44, 61, 59, 43, 51, 66, 56, 43, 52, 58, 71, 60, 72, 107, 61, 73, 87, 85, 83, 54, 57, 54, 78, 57, 79, 101, 66, 68, 98, 67, 65, 57, 56, 72, 58, 65, 74, 87, 62, 75, 66, 50, 57, 64, 52, 88, 57, 52, 53, 76, 74, 67, 52, 69, 65, 89, 67, 47, 71, 75, 60, 62, 36, 85, 65, 68, 104, 48, 58, 66, 68, 68, 54, 65, 44, 64, 58, 59, 69, 81, 53, 83, 77, 54, 51, 82, 64, 56, 56, 55, 84, 73, 74, 51, 73, 78, 70, 48, 60, 46, 80, 63, 66, 59, 62, 67, 78, 61, 73, 58, 47, 54, 73, 106, 66, 61, 54, 64, 81, 116, 65, 66, 57, 78, 65, 61, 74, 78, 53, 64, 58, 56, 66, 59, 58, 71, 66, 62, 74, 55, 66, 54, 66, 68, 71, 48, 98, 53, 98, 68, 72, 69, 47, 69, 60, 59, 73, 92, 67, 117, 63, 70, 52, 67, 62, 43, 68, 79, 74, 47, 61, 62, 59, 63, 37, 50, 63, 64, 61, 52, 64, 64, 54, 63, 58, 72, 64, 76, 65, 128, 73, 48, 48, 63, 65, 66, 78, 57, 86, 41, 58, 54, 55, 56, 52, 84, 43, 67, 42, 101, 57, 45, 67, 122, 59, 52, 64, 74, 50, 61, 61, 59, 84, 63, 77, 82, 52, 66, 63, 58, 63, 71, 54, 61, 78, 60, 50, 78, 58, 67, 79, 40, 67, 65, 63, 85, 57, 77, 50, 49, 63, 62, 68, 52, 72, 57, 58, 53, 61, 81, 77, 81, 52, 78, 65, 71, 66, 65, 62, 56, 69, 55, 59, 38, 36, 64, 60, 108, 59, 72, 62, 61, 81, 71, 67, 57, 74, 65, 55, 74, 47, 38, 55, 64, 66, 68, 72, 63, 85, 52, 71, 84, 59, 60, 52, 53, 64, 82, 48, 79, 76, 63, 67, 52, 96, 74, 38, 68, 57, 67, 74, 68, 73, 74, 53, 69, 44, 65, 74, 72, 82, 64, 69, 101, 57, 95, 40, 70, 119, 56, 60, 80, 63, 63, 65, 73, 87, 76, 68, 36, 58, 62, 58, 50, 56, 74, 116, 71, 71, 86, 65, 54, 82, 76, 51, 95, 48, 61, 53, 88, 69, 50, 77, 70, 64, 59, 58, 71, 65, 54, 68, 46, 46, 96, 60, 60, 50, 63, 71, 74, 50, 87, 79, 65, 50, 83, 63, 73, 49, 51, 83, 82, 69, 84, 78, 53, 58, 73, 59, 68, 72, 66, 51, 61, 74, 54, 68, 49, 79, 58, 68, 80, 51, 69, 62, 66, 72, 71, 52, 119, 93, 79, 39, 41, 72, 51, 62, 67, 102, 76, 89, 72, 57, 63, 70, 64, 72, 46, 63, 72, 80, 110, 59, 67, 76, 75, 65, 67, 72, 55, 77, 74, 55, 56, 67, 45, 56, 61, 67, 78, 68, 50, 65, 59, 64, 53, 42, 62, 49, 57, 57, 76, 53, 41, 66, 67, 73, 104, 53, 69, 59, 90, 47, 69, 72, 59, 81, 69, 88, 68, 74, 64, 60, 60, 67, 84, 82, 83, 67, 58, 89, 50, 58, 69, 90, 45, 79, 54, 48, 54, 83, 90, 51, 73, 68, 56, 59, 51, 56, 97, 64, 47, 70, 52, 71, 52, 63, 58, 64, 63, 63, 62, 61, 79, 77, 63, 68, 70, 79, 75, 46, 74, 61, 72, 57, 70, 59, 82, 50, 42, 85, 72, 54, 63, 56, 86, 49, 69, 56, 58, 57, 58, 57, 99, 49, 77, 59, 68, 64, 44, 100, 74, 35, 101, 62, 59, 54, 81, 46, 85, 46, 45, 88, 45, 65, 63, 76, 55, 79, 56, 65, 60, 96, 78, 72, 81, 66, 46, 62, 56, 75, 58, 54, 62, 55, 59, 72, 72, 62, 44, 53, 49, 56, 66, 74, 53, 67, 99, 74, 53, 55, 66, 56, 64, 67, 51, 68, 89, 59, 55, 86, 75, 64, 70, 39, 73, 90, 67, 46, 71, 53, 60, 69, 51, 80, 81, 75, 70, 84, 72, 61, 61, 61, 105, 60, 47, 56, 84, 107, 61, 66, 69, 65, 85, 74, 55, 95, 83, 53, 92, 46, 61, 77, 65, 70, 63, 69, 42, 49, 63, 57, 42, 59, 62, 49, 61, 65, 77, 52, 89, 69, 51, 81, 69, 76, 69, 63, 70, 74, 52, 63, 56, 48, 55, 70, 64, 66, 60, 65, 48, 72, 52, 120, 51, 50, 46, 57, 45, 44, 66, 67, 61, 55, 56, 96, 54, 65, 79, 63, 85, 50, 65, 76, 62, 56, 55, 53, 60, 31, 61, 64, 64, 59, 75, 60, 83, 67, 68, 69, 61, 74, 54, 63, 48, 70, 67, 84, 47, 74, 69, 62, 75, 96, 72, 78, 52, 51, 77, 94, 150, 46, 55, 75, 37, 56, 61, 90, 76, 52, 68, 69, 72, 74, 78, 65, 54, 76, 51, 57, 44, 50, 73, 78, 63, 66, 60, 60, 52, 57, 64, 120, 78, 89, 71, 43, 74, 56, 76, 94, 77, 98, 88, 47, 59, 69, 56, 66, 66, 57, 57, 62, 71, 66, 72, 61, 63, 57, 71, 98, 48, 63, 63, 75, 54, 90, 78, 29, 61, 79, 43, 68, 52, 69, 73, 78, 60, 69, 50, 59, 53, 47, 59, 71, 43, 78, 78, 63, 57, 100, 86, 50, 60, 69, 69, 57, 50, 49, 63, 62, 67, 52, 61, 51, 44, 53, 63, 67, 72, 68, 60, 64, 64, 52, 55, 67, 83, 62, 53, 40, 90, 60, 90, 59, 57, 66, 80, 85, 90, 110, 63, 62, 62, 64, 52, 57, 71, 76, 62, 43, 91, 73, 66, 59, 50, 52, 53, 57, 98, 66, 56, 52, 81, 66, 58, 61, 70, 53, 64, 64, 45, 63, 70, 62, 60, 54, 62, 50, 66, 68, 51, 52, 64, 53, 60, 54, 66, 61, 53, 65, 81, 63, 47, 72, 74, 63, 67, 104, 58, 44, 51, 57, 62, 60, 64, 75, 74, 75, 56, 57, 52, 67, 68, 67, 49, 56, 53, 66, 97, 105, 72, 80, 92, 44, 56, 64, 43, 62, 76, 54, 79, 88, 41, 83, 58, 59, 79, 77, 61, 67, 56, 55, 58, 60, 69, 52, 75, 48, 76, 58, 78, 83, 80, 46, 93, 72, 77, 40, 53, 70, 46, 55, 82, 66, 56, 61, 62, 57, 70, 70, 80, 76, 58, 59, 63, 63, 76, 76, 62, 62, 59, 47, 61, 64, 86, 58, 62, 62, 71, 115, 68, 67, 87, 60, 75, 60, 62, 69, 32, 60, 51, 68, 64, 65, 55, 61, 50, 68, 74, 64, 92, 66, 63, 75, 67, 77, 53, 62, 114, 63, 73, 83, 71, 64, 73, 74, 84, 60, 69, 66, 65, 40, 58, 76, 59, 61, 52, 92, 90, 87, 50, 75, 63, 61, 83, 56, 46, 56, 75, 74, 72, 68, 87, 45, 94, 62, 71, 59, 73, 58, 44, 59, 59, 37, 89, 61, 77, 83, 73, 64, 55, 72, 55, 70, 45, 90, 39, 54, 62, 77, 52, 74, 75, 60, 49, 58, 52, 43, 65, 58, 70, 59, 55, 65, 64, 89, 54, 71, 63, 48, 70, 93, 63, 84, 73, 53, 47, 76, 57, 65, 49, 44, 56, 80, 143, 71, 65, 70, 70, 89, 60, 75, 50, 61, 100, 57, 88, 84, 58, 55, 50, 63, 53, 123, 46, 73, 66, 65, 49, 74, 53, 79, 102, 70, 72, 83, 54, 75, 84, 57, 74, 91, 51, 91, 47, 48, 60, 57, 84, 46, 82, 79, 121, 67, 114, 75, 75, 99, 116, 64, 73, 66, 88, 68, 74, 38, 66, 50, 65, 62, 52, 43, 79, 56, 46, 55, 48, 54, 84, 61, 77, 74, 69, 50, 77, 62, 84, 81, 55, 38, 80, 45, 68, 88, 61, 74, 72, 84, 53, 54, 60, 59, 67, 77, 77, 92, 50, 65, 46, 52, 66, 61, 54, 58, 54, 58, 64, 82, 74, 64, 59, 57, 45, 55, 59, 81, 76, 72, 46, 66, 67, 70, 54, 84, 47, 70, 57, 69, 57, 77, 53, 61, 63, 58, 70, 100, 86, 63, 66, 68, 75, 58, 74, 58, 71, 48, 62, 47, 64, 118, 50, 44, 73, 76, 65, 83, 58, 42, 71, 65, 70, 49, 62, 80, 82, 52, 57, 69, 52, 61, 105, 57, 82, 80, 76, 54, 62, 53, 68, 67, 58, 61, 42, 58, 60, 61, 48, 71, 79, 61, 66, 111, 63, 54, 68, 53, 61, 45, 59, 63, 66, 53, 78, 84, 40, 58, 50, 66, 63, 60, 58, 62, 61, 68, 55, 57, 66, 74, 87, 73, 73, 55, 63, 70, 62, 60, 70, 64, 58, 53, 107, 53, 69, 51, 58, 71, 59, 58, 61, 71, 65, 67, 50, 64, 73, 57, 67, 53, 77, 66, 65, 63, 58, 65, 57, 70, 57, 75, 80, 105, 72, 49, 107, 60, 62, 56, 100, 77, 74, 75, 54, 67, 56, 105, 69, 61, 47, 56, 46, 69, 62, 63, 58, 57, 66, 69, 50, 59, 59, 79, 71, 65, 80, 69, 81, 56, 59, 72, 58, 62, 69, 64, 75, 65, 73, 47, 77, 63, 72, 49, 89, 43, 81, 71, 60, 47, 89, 58, 37, 67, 68, 64, 86, 63, 57, 49, 59, 61, 109, 62, 58, 49, 96, 60, 63, 57, 57, 54, 67, 61, 67, 84, 56, 54, 72, 49, 47, 55, 43, 67, 78, 59, 56, 63, 64, 54, 89, 63, 68, 60, 59, 76, 77, 61, 67, 57, 63, 90, 59, 62, 65, 50, 58, 43, 75, 48, 78, 73, 80, 118, 47, 69, 53, 46, 58, 65, 47, 60, 85, 57, 44, 48, 71, 55, 49, 50, 59, 60, 90, 62, 65, 74, 66, 77, 67, 71, 67, 61, 77, 72, 74, 66, 55, 57, 47, 58, 58, 65, 75, 67, 40, 89, 69, 48, 72, 60, 55, 72, 64, 79, 69, 54, 65, 62, 63, 58, 80, 121, 74, 58, 102, 86, 59, 58, 75, 64, 56, 49, 82, 74, 71, 62, 75, 55, 65, 53, 89, 44, 79, 69, 59, 75, 62, 51, 71, 79, 64, 81, 85, 73, 52, 70, 73, 52, 93, 86, 67, 73, 72, 65, 67, 57, 70, 63, 49, 68, 59, 77, 61, 74, 68, 60, 64, 63, 52, 60, 89, 77, 70, 83, 67, 58, 74, 76, 56, 153, 63, 62, 84, 75, 82, 65, 89, 51, 61, 57, 76, 49, 58, 87, 73, 72, 71, 60, 61, 70, 74, 80, 94, 63, 58, 66, 65, 76, 65, 66, 78, 66, 81, 56, 71, 70, 77, 83, 75, 57, 49, 62, 81, 56, 80, 70, 73, 57, 74, 99, 76, 70, 75, 53, 68, 45, 76, 57, 71, 86, 54, 62, 72, 52, 46, 66, 61, 66, 55, 61, 72, 63, 70, 63, 54, 64, 68, 75, 58, 58, 64, 85, 83, 62, 65, 56, 78, 79, 60, 64, 41, 64, 69, 67, 75, 51, 43, 94, 60, 39, 71, 61, 55, 59, 47, 62, 65, 68, 118, 44, 75, 68, 70, 65, 44, 94, 110, 64, 65, 68, 57, 36, 80, 70, 56, 76, 58, 70, 56, 40, 60, 104, 56, 79, 65, 57, 73, 50, 69, 85, 48, 78, 73, 59, 49, 53, 70, 74, 51, 62, 85, 57, 48, 58, 54, 72, 112, 82, 87, 69, 61, 58, 78, 76, 61, 70, 61, 54, 68, 60, 87, 67, 40, 87, 49, 68, 45, 89, 62, 61, 54, 73, 64, 78, 56, 53, 62, 69, 51, 66, 60, 72, 70, 60, 60, 59, 62, 81, 100, 68, 53, 56, 79, 52, 58, 44, 61, 65, 81, 59, 52, 68, 55, 61, 87, 98, 79, 68, 51, 60, 79, 50, 65, 65, 77, 68, 45, 68, 72, 65, 79, 63, 55, 63, 75, 64, 112, 67, 55, 44, 56, 76, 74, 61, 60, 47, 83, 71, 50, 63, 64, 63, 64, 52, 60, 67, 84, 59, 72, 52, 56, 82, 74, 77, 60, 50, 49, 67, 48, 57, 80, 97, 65, 63, 72, 77, 74, 70, 59, 70, 73, 62, 60, 64, 49, 68, 61, 58, 58, 79, 44, 64, 73, 95, 60, 87, 59, 56, 57, 67, 69, 57, 68, 63, 61, 59, 58, 66, 52, 77, 91, 70, 74, 67, 57, 56, 64, 64, 68, 54, 68, 55, 61, 61, 77, 57, 71, 62, 63, 58, 43, 112, 64, 62, 78, 56, 71, 64, 51, 55, 58, 57, 66, 51, 72, 65, 83, 80, 60, 57, 62, 52, 90, 78, 76, 58, 53, 59, 61, 57, 68, 52, 48, 60, 53, 59, 55, 47, 80, 62, 71, 64, 71, 56, 81, 65, 76, 59, 81, 64, 57, 45, 67, 63, 60, 57, 65, 64, 59, 68, 103, 61, 70, 49, 54, 59, 65, 66, 63, 72, 69, 54, 63, 55, 68, 60, 57, 90, 92, 58, 52, 75, 52, 62, 68, 74, 80, 54, 83, 87, 71, 56, 54, 66, 59, 68, 48, 68, 68, 54, 57, 56, 53, 62, 77, 68, 68, 67, 55, 75, 47, 67, 50, 84, 63, 46, 57, 67, 63, 54, 82, 52, 85, 64, 79, 78, 61, 71, 61, 82, 68, 87, 73, 66, 57, 63, 71, 47, 60, 74, 59, 56, 55, 71, 70, 67, 59, 63, 68, 40, 65, 88, 58, 57, 56, 58, 73, 78, 64, 66, 66, 69, 66, 64, 75, 64, 74, 65, 70, 119, 73, 66, 57, 59, 57, 47, 64, 60, 54, 66, 52, 44, 148, 59, 87, 87, 78, 59, 54, 66, 79, 53, 72, 59, 78, 100, 67, 66, 50, 103, 62, 57, 40, 45, 53, 45, 78, 76, 59, 78, 71, 72, 74, 74, 37, 68, 49, 71, 83, 77, 48, 63, 69, 73, 59, 60, 62, 48, 75, 79, 95, 68, 99, 47, 61, 70, 74, 47, 47, 61, 41, 67, 66, 51, 70, 65, 72, 36, 53, 56, 79, 64, 79, 60, 65, 66, 78, 68, 67, 73, 62, 59, 57, 61, 65, 71, 60, 73, 81, 90, 55, 72, 45, 66, 58, 54, 77, 54, 58, 66, 61, 55, 72, 59, 57, 83, 71, 82, 44, 61, 65, 65, 76, 53, 71, 73, 67, 63, 60, 62, 79, 63, 50, 70, 77, 51, 49, 57, 72, 71, 80, 71, 73, 57, 88, 54, 81, 57, 78, 75, 51, 54, 69, 73, 79, 71, 62, 45, 71, 66, 82, 65, 74, 66, 62, 57, 51, 87, 59, 51, 59, 67, 61, 64, 71, 76, 78, 61, 58, 46, 66, 46, 75, 81, 57, 51, 62, 74, 92, 68, 41, 61, 64, 64, 68, 62, 62, 56, 80, 60, 77, 91, 51, 66, 57, 69, 67, 77, 54, 74, 55, 58, 50, 51, 49, 35, 59, 68, 68, 65, 87, 63, 58, 86, 59, 57, 86, 54, 48, 84, 70, 72, 78, 75, 53, 57, 60, 86, 90, 66, 72, 54, 54, 72, 76, 51, 75, 51, 77, 57, 54, 51, 51, 75, 64, 56, 64, 83, 55, 53, 70, 76, 79, 83, 46, 50, 53, 55, 64, 72, 69, 57, 67, 63, 63, 60, 81, 77, 79, 57, 50, 53, 82, 61, 58, 76, 45, 89, 93, 65, 67, 75, 70, 42, 68, 113, 60, 57, 65, 65, 77, 54, 128, 67, 61, 48, 51, 82, 79, 69, 55, 49, 72, 46, 60, 62, 57, 66, 57, 48, 66, 88, 96, 44, 49, 44, 54, 68, 80, 57, 68, 71, 68, 58, 57, 60, 54, 73, 85, 92, 66, 59, 60, 57, 82, 69, 83, 62, 65, 72, 60, 75, 58, 67, 60, 81, 69, 56, 79, 62, 74, 64, 54, 61, 49, 63, 51, 59, 63, 51, 66, 40, 69, 58, 82, 50, 64, 58, 43, 57, 61, 60, 63, 60, 60, 77, 75, 76, 101, 54, 46, 55, 54, 45, 60, 71, 62, 68, 77, 65, 83, 62, 79, 61, 55, 65, 59, 61, 42, 57, 65, 58, 69, 67, 54, 58, 54, 62, 67, 73, 101, 77, 66, 69, 57, 59, 59, 50, 58, 61, 57, 78, 58, 63, 50, 46, 70, 91, 119, 78, 72, 62, 58, 74, 52, 65, 63, 78, 57, 45, 80, 74, 71, 51, 86, 109, 60, 66, 114, 66, 71, 62, 43, 64, 82, 71, 63, 69, 48, 57, 53, 62, 71, 56, 76, 54, 67, 69, 64, 55, 58, 69, 78, 87, 53, 82, 62, 64, 83, 61, 73, 66, 62, 83, 57, 47, 84, 47, 62, 75, 79, 97, 61, 65, 74, 56, 78, 63, 46, 57, 73, 87, 65, 45, 56, 60, 73, 62, 78, 60, 94, 62, 79, 65, 54, 69, 78, 85, 84, 62, 70, 59, 74, 47, 70, 75, 67, 73, 49, 80, 110, 52, 73, 80, 57, 57, 67, 61, 70, 62, 64, 49, 88, 60, 63, 57, 78, 82, 62, 71, 80, 63, 54, 93, 64, 99, 63, 64, 85, 62, 71, 72, 69, 51, 72, 63, 85, 82, 63, 54, 60, 81, 56, 61, 78, 70, 64, 79, 47, 65, 66, 72, 73, 72, 74, 59, 65, 85, 52, 56, 71, 85, 60, 67, 67, 58, 77, 87, 60, 61, 81, 77, 51, 63, 75, 61, 72, 60, 64, 62, 53, 65, 66, 69, 68, 75, 66, 71, 59, 59, 62, 110, 141, 78, 132, 76, 63, 100, 93, 73, 85, 59, 52, 43, 64, 78, 47, 82, 67, 65, 65, 77, 63, 64, 52, 77, 42, 89, 63, 52, 42, 56, 86, 143, 55, 54, 75, 60, 56, 78, 72, 59, 60, 72, 70, 65, 54, 63, 74, 60, 75, 74, 60, 65, 85, 66, 119, 59, 81, 44, 71, 53, 48, 103, 62, 52, 90, 79, 94, 60, 66, 69, 51, 68, 60, 60, 65, 74, 49, 76, 67, 57, 62, 80, 65, 64, 66, 49, 71, 55, 72, 47, 76, 92, 79, 68, 78, 68, 45, 63, 78, 88, 69, 44, 53, 50, 71, 75, 70, 55, 53, 51, 61, 77, 96, 68, 112, 56, 85, 67, 83, 68, 67, 67, 71, 95, 89, 51, 52, 72, 94, 53, 44, 97, 55, 65, 64, 48, 62, 58, 73, 69, 54, 68, 77, 65, 56, 65, 59, 80, 51, 81, 44, 53, 40, 71, 73, 60, 52, 78, 95, 50, 78, 50, 66, 58, 41, 102, 93, 62, 58, 55, 45, 58, 61, 64, 63, 55, 93, 65, 67, 56, 52, 41, 71, 72, 49, 54, 69, 94, 59, 71, 64, 81, 53, 49, 45, 78, 60, 55, 69, 57, 75, 76, 50, 46, 68, 51, 62, 73, 95, 58, 70, 58, 67, 49, 59, 58, 87, 65, 64, 77, 58, 70, 47, 71, 104, 61, 55, 55, 56, 79, 55, 68, 74, 77, 53, 66, 71, 61, 105, 59, 53, 53, 70, 77, 56, 69, 46, 83, 41, 44, 46, 60, 71, 59, 67, 62, 73, 71, 56, 45, 70, 43, 67, 67, 56, 77, 63, 72, 110, 65, 68, 57, 63, 61, 71, 58, 50, 68, 65, 53, 64, 73, 91, 50, 77, 56, 58, 92, 45, 55, 83, 42, 82, 54, 65, 78, 46, 53, 70, 62, 71, 72, 56, 57, 60, 55, 60, 76, 67, 103, 81, 55, 82, 88, 55, 62, 62, 58, 64, 87, 65, 81, 87, 72, 77, 65, 59, 57, 78, 60, 74, 61, 67, 51, 56, 55, 67, 63, 64, 66, 55, 67, 75, 62, 63, 58, 84, 80, 54, 81, 64, 60, 67, 71, 60, 61, 52, 66, 99, 59, 68, 81, 56, 51, 52, 82, 88, 49, 71, 78, 60, 44, 87, 67, 60, 61, 60, 65, 57, 54, 55, 55, 74, 92, 54, 69, 65, 80, 48, 60, 70, 78, 62, 72, 77, 60, 52, 56, 50, 50, 51, 83, 86, 79, 124, 64, 61, 65, 59, 51, 67, 63, 60, 47, 90, 55, 66, 61, 69, 64, 55, 55, 58, 68, 82, 57, 65, 69, 54, 74, 69, 65, 79, 50, 95, 95, 58, 69, 50, 53, 64, 62, 48, 61, 62, 63, 57, 52, 50, 68, 66, 48, 55, 75, 123, 79, 80, 64, 119, 66, 77, 57, 63, 55, 57, 55, 66, 74, 60, 77, 60, 67, 59, 67, 61, 53, 53, 62, 63, 63, 65, 41, 74, 77, 50, 59, 73, 89, 68, 60, 35, 67, 50, 80, 71, 76, 71, 77, 78, 62, 84, 67, 60, 69, 90, 100, 45, 70, 53, 68, 43, 51, 75, 61, 62, 74, 70, 62, 54, 49, 51, 53, 55, 63, 57, 79, 57, 69, 66, 58, 75, 93, 54, 86, 72, 54, 87, 81, 58, 64, 57, 55, 69, 65, 59, 44, 70, 60, 50, 60, 71, 74, 65, 57, 76, 61, 62, 45, 80, 51, 61, 61, 61, 68, 60, 69, 65, 61, 56, 72, 68, 56, 67, 52, 64, 53, 60, 60, 70, 60, 70, 65, 69, 71, 63, 63, 78, 72, 63, 74, 55, 53, 89, 66, 59, 68, 56, 81, 56, 75, 72, 90, 50, 68, 60, 73, 69, 83, 59, 66, 52, 64, 75, 77, 66, 62, 58, 74, 58, 76, 65, 54, 54, 65, 47, 70, 86, 55, 78, 55, 76, 54, 72, 62, 54, 50, 69, 70, 53, 48, 80, 55, 81, 67, 69, 75, 45, 48, 63, 66, 52, 57, 56, 52, 60, 64, 67, 60, 61, 73, 53, 67, 60, 66, 58, 109, 67, 59, 81, 79, 45, 66, 97, 66, 76, 50, 61, 52, 68, 52, 57, 58, 65, 58, 67, 51, 72, 84, 67, 63, 59, 58, 48, 71, 75, 78, 74, 67, 63, 74, 58, 57, 56, 54, 56, 47, 56, 60, 53, 61, 74, 88, 81, 64, 55, 78, 66, 75, 55, 66, 69, 76, 63, 62, 70, 68, 69, 59, 57, 63, 110, 52, 58, 66, 59, 60, 122, 61, 85, 62, 52, 69, 63, 84, 54, 70, 78, 71, 55, 56, 96, 66, 66, 56, 50, 61, 75, 63, 73, 75, 62, 52, 61, 72, 52, 69, 70, 51, 52, 56, 61, 60, 47, 62, 67, 71, 63, 61, 63, 75, 64, 63, 65, 95, 57, 88, 85, 78, 53, 77, 43, 70, 76, 52, 90, 56, 58, 61, 77, 79, 64, 71, 59, 64, 51, 56, 93, 62, 70, 67, 50, 70, 64, 60, 71, 66, 64, 58, 73, 75, 69, 52, 70, 56, 62, 67, 78, 57, 60, 59, 72, 73, 61, 50, 69, 71, 63, 72, 62, 67, 59, 54, 52, 51, 63, 67, 51, 102, 61, 56, 101, 76, 55, 61, 58, 80, 73, 61, 65, 52, 66, 65, 64, 62, 99, 70, 60, 70, 58, 71, 51, 69, 59, 79, 56, 64, 77, 70, 80, 40, 47, 71, 71, 51, 61, 66, 63, 66, 44, 62, 56, 54, 80, 113, 65, 74, 72, 60, 75, 61, 72, 69, 77, 68, 69, 74, 51, 74, 67, 72, 46, 60, 62, 64, 63, 68, 62, 71, 56, 57, 61, 79, 60, 57, 56, 62, 55, 64, 78, 59, 49, 82, 71, 63, 55, 57, 65, 74, 54, 62, 89, 62, 56, 55, 87, 67, 67, 69, 91, 60, 61, 62, 56, 75, 66, 55, 56, 50, 51, 55, 67, 53, 66, 61, 51, 81, 51, 82, 39, 59, 64, 76, 62, 58, 60, 75, 72, 75, 63, 72, 58, 60, 58, 58, 79, 81, 77, 61, 77, 88, 66, 66, 70, 59, 63, 59, 68, 72, 54, 69, 75, 47, 48, 66, 68, 57, 56, 52, 55, 63, 45, 68, 52, 79, 59, 60, 75, 102, 66, 53, 48, 71, 55, 70, 169, 68, 53, 62, 79, 63, 58, 82, 49, 57, 58, 66, 48, 73, 53, 64, 87, 51, 62, 94, 54, 71, 51, 77, 63, 93, 62, 96, 61, 60, 58, 75, 64, 57, 80, 74, 60, 75, 71, 71, 62, 67, 93, 60, 49, 50, 56, 72, 91, 71, 68, 65, 81, 63, 49, 69, 47, 63, 64, 55, 65, 58, 68, 70, 53, 73, 73, 61, 67, 44, 52, 60, 64, 66, 79, 68, 70, 74, 74, 57, 69, 46, 58, 67, 69, 42, 69, 80, 47, 87, 80, 58, 54, 52, 71, 96, 53, 55, 69, 64, 78, 63, 63, 69, 79, 85, 69, 77, 67, 60, 64, 58, 70, 58, 57, 66, 71, 62, 58, 64, 73, 130, 95, 82, 53, 54, 78, 65, 98, 62, 69, 74, 68, 57, 57, 69, 92, 88, 70, 60, 81, 76, 65, 65, 66, 53, 53, 62, 88, 57, 65, 65, 49, 66, 61, 50, 69, 53, 62, 65, 58, 69, 55, 84, 59, 50, 60, 82, 68, 61, 76, 57, 66, 77, 53, 69, 71, 61, 36, 81, 62, 103, 55, 59, 81, 57, 76, 78, 39, 62, 55, 73, 61, 65, 56, 61, 63, 66, 71, 64, 74, 66, 74, 80, 57, 67, 60, 70, 98, 80, 53, 58, 76, 68, 59, 59, 64, 68, 63, 59, 58, 56, 80, 69, 53, 84, 80, 55, 82, 67, 64, 58, 50, 67, 57, 82, 52, 55, 90, 58, 57, 61, 76, 56, 84, 66, 65, 103, 71, 67, 44, 75, 61, 72, 78, 85, 71, 58, 58, 71, 62, 82, 71, 54, 69, 72, 71, 88, 64, 53, 65, 60, 64, 75, 45, 57, 65, 67, 46, 59, 64, 73, 73, 51, 52, 61, 57, 59, 63, 79, 77, 64, 77, 61, 51, 57, 56, 47, 49, 68, 87, 70, 59, 60, 89, 69, 58, 64, 100, 60, 96, 54, 64, 54, 65, 61, 59, 62, 53, 62, 69, 74, 42, 70, 69, 67, 59, 61, 82, 63, 95, 52, 58, 60, 51, 64, 74, 63, 54, 57, 85, 72, 72, 68, 74, 64, 47, 58, 62, 124, 70, 60, 67, 80, 66, 63, 63, 79, 115, 47, 61, 78, 53, 77, 73, 66, 62, 67, 67, 67, 49, 60, 61, 64, 69, 76, 66, 55, 58, 63, 68, 51, 66, 53, 66, 77, 73, 54, 60, 62, 63, 86, 89, 94, 76, 48, 59, 63, 63, 69, 60, 58, 65, 88, 145, 79, 71, 75, 66, 82, 52, 107, 69, 59, 64, 66, 59, 68, 58, 52, 72, 73, 60, 63, 68, 67, 80, 66, 73, 55, 115, 63, 57, 66, 80, 72, 57, 44, 65, 45, 68, 68, 63, 65, 50, 63, 53, 78, 55, 43, 86, 59, 63, 79, 97, 70, 63, 58, 130, 63, 65, 57, 64, 66, 58, 49, 65, 65, 86, 65, 67, 72, 64, 53, 77, 50, 54, 60, 65, 59, 65, 45, 92, 51, 59, 67, 56, 69, 62, 55, 62, 68, 52, 57, 51, 70, 78, 80, 90, 73, 57, 59, 80, 67, 63, 60, 61, 80, 66, 72, 78, 64, 58, 61, 77, 53, 75, 62, 73, 79, 62, 62, 71, 63, 58, 54, 71, 84, 72, 66, 50, 81, 81, 64, 78, 85, 88, 67, 49, 73, 67, 64, 66, 67, 60, 61, 56, 50, 63, 73, 58, 67, 64, 57, 64, 56, 55, 67, 62, 79, 61, 54, 71, 57, 59, 60, 55, 49, 81, 56, 62, 66, 45, 58, 76, 45, 71, 70, 63, 58, 74, 58, 57, 53, 75, 43, 56, 69, 50, 50, 64, 75, 57, 62, 66, 68, 81, 63, 64, 56, 77, 99, 62, 80, 76, 48, 63, 72, 78, 49, 61, 72, 95, 89, 62, 100, 78, 70, 74, 60, 69, 67, 64, 55, 72, 48, 71, 64, 76, 66, 61, 68, 51, 62, 64, 75, 73, 56, 76, 75, 81, 85, 71, 73, 38, 63, 45, 53, 70, 60, 54, 61, 76, 61, 82, 66, 54, 49, 85, 58, 68, 74, 63, 57, 58, 55, 63, 55, 64, 68, 37, 48, 85, 71, 98, 71, 57, 57, 62, 69, 81, 61, 78, 50, 43, 104, 61, 48, 55, 67, 67, 79, 56, 60, 63, 69, 72, 59, 59, 51, 79, 75, 56, 63, 57, 63, 61, 49, 62, 67, 61, 63, 60, 72, 96, 59, 66, 41, 64, 59, 69, 60, 78, 49, 46, 62, 81, 58, 48, 70, 85, 92, 88, 61, 73, 61, 112, 70, 69, 66, 64, 67, 55, 60, 56, 71, 56, 62, 63, 64, 60, 78, 70, 57, 42, 59, 51, 66, 61, 86, 67, 55, 67, 66, 63, 53, 46, 56, 79, 60, 34, 58, 67, 70, 80, 79, 63, 100, 67, 88, 73, 58, 84, 86, 70, 44, 80, 55, 78, 53, 65, 52, 65, 42, 74, 64, 63, 58, 92, 76, 75, 58, 40, 69, 62, 55, 50, 66, 80, 62, 51, 59, 64, 70, 58, 69, 47, 70, 49, 71, 54, 54, 70, 56, 67, 74, 54, 52, 60, 68, 67, 60, 88, 58, 60, 57, 63, 77, 75, 48, 58, 60, 62, 66, 77, 58, 82, 98, 89, 61, 65, 62, 71, 56, 69, 53, 68, 54, 70, 60, 62, 73, 72, 73, 83, 74, 44, 70, 85, 65, 57, 71, 85, 62, 55, 51, 55, 72, 72, 65, 55, 50, 68, 79, 78, 65, 60, 80, 61, 62, 85, 56, 93, 62, 90, 76, 75, 42, 59, 79, 64, 82, 75, 67, 45, 63, 64, 72, 80, 60, 54, 65, 69, 70, 49, 78, 47, 64, 57, 39, 56, 53, 70, 59, 62, 65, 118, 68, 70, 85, 65, 71, 58, 62, 76, 58, 54, 72, 73, 78, 55, 58, 64, 48, 63, 63, 45, 51, 104, 56, 74, 44, 43, 59, 68, 75, 70, 64, 63, 54, 66, 59, 69, 48, 63, 81, 52, 86, 66, 78, 56, 64, 65, 79, 65, 47, 51, 85, 84, 81, 55, 53, 54, 63, 73, 64, 69, 73, 69, 61, 64, 67, 66, 65, 79, 47, 69, 49, 79, 58, 67, 63, 64, 61, 59, 53, 55, 61, 54, 57, 62, 56, 74, 79, 65, 56, 87, 107, 68, 67, 59, 30, 66, 80, 162, 77, 62, 52, 83, 86, 67, 68, 61, 59, 49, 59, 52, 60, 69, 83, 64, 76, 56, 75, 61, 63, 67, 83, 57, 90, 63, 64, 66, 61, 49, 69, 56, 99, 64, 59, 67, 70, 62, 65, 53, 82, 63, 66, 59, 68, 65, 80, 76, 77, 56, 61, 59, 68, 63, 56, 45, 66, 56, 62, 70, 82, 72, 84, 75, 66, 68, 55, 95, 71, 77, 70, 48, 65, 68, 65, 52, 57, 80, 58, 75, 55, 59, 97, 58, 58, 74, 57, 69, 63, 90, 73, 72, 60, 78, 50, 78, 67, 79, 100, 101, 67, 68, 63, 81, 58, 52, 65, 83, 78, 58, 45, 46, 68, 56, 81, 78, 47, 62, 58, 53, 140, 33, 80, 52, 59, 57, 58, 102, 45, 48, 92, 73, 82, 69, 58, 78, 58, 75, 50, 69, 75, 73, 67, 47, 46, 45, 62, 105, 90, 54, 53, 53, 70, 48, 64, 65, 65, 54, 57, 54, 90, 78, 63, 78, 70, 78, 90, 69, 61, 70, 61, 50, 64, 49, 64, 73, 65, 56, 47, 110, 111, 42, 58, 73, 58, 58, 88, 67, 46, 73, 56, 49, 70, 78, 93, 86, 65, 68, 63, 53, 62, 68, 93, 67, 62, 54, 74, 86, 85, 79, 51, 32, 71, 55, 64, 73, 53, 56, 54, 58, 50, 51, 61, 64, 83, 62, 66, 69, 52, 50, 59, 68, 79, 99, 64, 65, 63, 33, 83, 57, 67, 56, 70, 58, 72, 60, 91, 76, 92, 49, 74, 71, 50, 84, 52, 48, 74, 47, 51, 53, 43, 79, 75, 65, 63, 68, 75, 61, 51, 59, 64, 48, 71, 85, 71, 62, 60, 53, 73, 49, 48, 64, 55, 50, 72, 75, 68, 79, 50, 48, 59, 93, 46, 59, 59, 66, 58, 72, 74, 126, 81, 60, 42, 51, 55, 65, 68, 93, 71, 70, 67, 48, 64, 64, 66, 57, 71, 59, 78, 71, 63, 66, 104, 67, 71, 69, 86, 61, 67, 63, 64, 49, 65, 52, 77, 88, 44, 45, 82, 62, 61, 52, 71, 94, 58, 58, 62, 74, 111, 52, 62, 60, 72, 53, 63, 55, 51, 87, 70, 66, 63, 54, 71, 64, 53, 77, 66, 60, 64, 49, 55, 76, 65, 73, 74, 96, 69, 58, 82, 65, 80, 61, 79, 48, 50, 81, 56, 56, 57, 51, 89, 66, 76, 46, 68, 74, 57, 49, 69, 68, 52, 86, 81, 162, 74, 74, 84, 72, 59, 70, 67, 53, 67, 60, 77, 50, 61, 56, 61, 68, 67, 70, 59, 59, 69, 65, 75, 62, 61, 52, 50, 60, 58, 59, 77, 60, 58, 61, 74, 66, 61, 85, 66, 58, 73, 59, 68, 71, 56, 89, 49, 74, 82, 64, 61, 67, 52, 125, 65, 54, 80, 69, 52, 45, 73, 71, 66, 87, 54, 48, 79, 57, 87, 73, 60, 58, 70, 79, 76, 65, 67, 52, 63, 65, 67, 73, 76, 43, 51, 51, 65, 74, 64, 49, 69, 51, 85, 43, 63, 71, 92, 57, 61, 80, 69, 51, 67, 62, 71, 68, 55, 50, 66, 60, 61, 81, 63, 62, 84, 54, 55, 52, 66, 56, 57, 66, 61, 49, 56, 88, 68, 48, 57, 68, 73, 69, 48, 58, 71, 57, 60, 69, 53, 56, 57, 64, 50, 60, 54, 79, 54, 60, 57, 61, 69, 40, 52, 76, 76, 58, 71, 87, 59, 65, 67, 66, 58, 61, 67, 76, 52, 69, 78, 73, 56, 58, 58, 66, 63, 68, 51, 64, 87, 59, 73, 58, 59, 63, 82, 48, 47, 78, 70, 72, 74, 60, 64, 57, 64, 67, 91, 67, 78, 58, 77, 52, 81, 77, 56, 68, 54, 86, 67, 54, 59, 51, 58, 62, 69, 61, 61, 60, 67, 49, 38, 76, 70, 85, 72, 74, 56, 75, 57, 71, 57, 57, 64, 70, 73, 83, 64, 69, 76, 66, 66, 65, 60, 77, 52, 68, 57, 67, 51, 67, 73, 79, 65, 81, 59, 57, 74, 53, 55, 58, 102, 64, 69, 72, 79, 59, 67, 79, 66, 81, 57, 71, 49, 58, 59, 60, 56, 59, 72, 59, 64, 60, 62, 61, 82, 54, 59, 53, 56, 67, 68, 69, 58, 71, 52, 58, 53, 72, 61, 61, 62, 48, 59, 52, 45, 64, 85, 67, 67, 66, 89, 69, 53, 53, 67, 67, 76, 58, 71, 67, 66, 64, 66, 59, 58, 99, 73, 80, 68, 65, 70, 117, 58, 71, 62, 52, 48, 67, 61, 63, 60, 77, 64, 65, 40, 98, 50, 60, 50, 57, 57, 72, 56, 57, 64, 63, 64, 77, 67, 62, 65, 48, 69, 49, 64, 52, 56, 60, 56, 81, 69, 42, 67, 69, 72, 60, 63, 64, 89, 80, 76, 64, 64, 55, 69, 49, 67, 66, 60, 62, 55, 69, 52, 68, 69, 57, 53, 59, 75, 62, 79, 81, 72, 68, 56, 64, 56, 84, 46, 58, 63, 58, 63, 54, 64, 79, 52, 55, 76, 41, 67, 63, 64, 53, 55, 73, 52, 62, 54, 63, 60, 69, 59, 66, 69, 68, 54, 54, 56, 56, 55, 62, 118, 76, 63, 84, 75, 61, 70, 55, 89, 71, 50, 66, 47, 57, 71, 73, 62, 108, 52, 57, 55, 69, 60, 35, 68, 58, 80, 68, 74, 52, 59, 51, 50, 47, 43, 51, 66, 74, 56, 49, 70, 67, 51, 67, 58, 59, 98, 54, 76, 69, 57, 77, 85, 72, 59, 81, 80, 58, 79, 82, 59, 63, 78, 72, 67, 70, 70, 61, 60, 64, 69, 57, 73, 54, 65, 67, 66, 61, 54, 64, 77, 71, 51, 67, 61, 60, 75, 51, 57, 63, 63, 56, 66, 64, 51, 56, 68, 54, 69, 56, 68, 104, 79, 75, 61, 75, 64, 62, 71, 72, 60, 59, 51, 86, 75, 48, 55, 58, 102, 60, 82, 70, 75, 62, 79, 55, 84, 69, 64, 79, 67, 67, 81, 48, 70, 58, 49, 84, 77, 76, 76, 78, 79, 56, 49, 54, 53, 67, 53, 53, 72, 47, 64, 67, 78, 62, 73, 60, 70, 50, 42, 52, 58, 45, 57, 58, 71, 80, 69, 41, 106, 55, 69, 46, 54, 69, 69, 159, 82, 49, 56, 70, 75, 59, 72, 66, 84, 65, 67, 60, 81, 51, 63, 95, 58, 84, 82, 58, 66, 60, 87, 61, 102, 68, 88, 63, 73, 67, 93, 59, 71, 61, 64, 51, 56, 74, 85, 62, 57, 87, 52, 75, 52, 60, 63, 82, 81, 53, 44, 74, 73, 56, 61, 57, 65, 49, 73, 70, 62, 74, 66, 55, 62, 81, 63, 76, 58, 62, 85, 62, 61, 78, 79, 63, 55, 70, 84, 60, 52, 61, 91, 65, 65, 61, 63, 58, 74, 82, 60, 63, 57, 60, 76, 58, 60, 78, 60, 71, 61, 62, 78, 68, 88, 77, 84, 63, 69, 63, 76, 62, 50, 63, 73, 82, 44, 55, 77, 72, 128, 108, 90, 68, 70, 75, 69, 109, 50, 64, 76, 70, 52, 53, 69, 96, 81, 67, 54, 83, 64, 71, 50, 60, 44, 59, 50, 85, 68, 76, 57, 74, 36, 58, 55, 71, 63, 66, 55, 72, 63, 74, 72, 75, 58, 59, 57, 47, 61, 71, 64, 79, 60, 51, 64, 58, 57, 50, 63, 61, 113, 57, 52, 59, 64, 84, 75, 68, 52, 67, 61, 81, 75, 54, 83, 58, 54, 62, 74, 64, 62, 78, 80, 57, 54, 51, 65, 97, 76, 76, 59, 64, 86, 61, 64, 72, 69, 71, 70, 53, 60, 70, 77, 62, 105, 67, 61, 50, 50, 63, 66, 61, 73, 58, 65, 62, 60, 93, 62, 56, 56, 74, 57, 74, 69, 53, 72, 65, 73, 55, 58, 53, 56, 85, 74, 75, 69, 47, 58, 67, 68, 68, 61, 73, 65, 68, 84, 50, 77, 70, 49, 46, 83, 57, 79, 63, 48, 63, 56, 58, 68, 75, 58, 50, 63, 67, 72, 60, 57, 80, 57, 61, 53, 45, 67, 80, 62, 65, 64, 78, 55, 57, 62, 69, 56, 67, 65, 90, 63, 93, 67, 58, 60, 53, 67, 64, 56, 55, 49, 59, 66, 71, 81, 70, 67, 62, 94, 78, 66, 79, 64, 51, 57, 55, 52, 88, 50, 58, 57, 82, 70, 76, 65, 70, 56, 58, 65, 73, 123, 67, 57, 69, 51, 57, 69, 68, 60, 101, 69, 45, 89, 62, 50, 68, 65, 46, 79, 71, 64, 53, 52, 71, 69, 67, 75, 72, 61, 60, 63, 62, 66, 53, 61, 62, 69, 52, 49, 72, 54, 68, 85, 51, 94, 56, 60, 56, 69, 79, 80, 63, 40, 84, 83, 145, 69, 57, 79, 58, 53, 70, 77, 75, 49, 61, 73, 63, 66, 62, 54, 70, 74, 53, 47, 70, 64, 81, 45, 62, 57, 97, 66, 71, 57, 75, 70, 57, 57, 60, 61, 50, 77, 59, 64, 63, 69, 70, 66, 56, 62, 82, 63, 71, 56, 91, 73, 78, 63, 124, 53, 59, 58, 65, 47, 91, 63, 59, 58, 89, 53, 74, 50, 51, 54, 64, 51, 60, 58, 57, 58, 68, 47, 70, 54, 50, 55, 51, 75, 67, 67, 72, 60, 54, 62, 65, 61, 73, 80, 72, 59, 65, 53, 61, 62, 58, 60, 68, 80, 66, 46, 57, 73, 45, 54, 80, 68, 61, 53, 74, 69, 54, 62, 56, 65, 65, 59, 56, 69, 73, 46, 62, 67, 53, 72, 65, 77, 85, 63, 63, 65, 75, 65, 50, 58, 50, 50, 59, 68, 72, 75, 59, 55, 51, 71, 69, 83, 52, 64, 77, 64, 59, 67, 69, 56, 72, 62, 63, 50, 68, 67, 56, 62, 65, 67, 61, 93, 65, 61, 69, 91, 85, 53, 60, 64, 78, 69, 57, 56, 73, 98, 50, 70, 81, 63, 81, 88, 57, 68, 54, 59, 66, 71, 73, 63, 77, 60, 42, 60, 69, 63, 62, 80, 68, 47, 71, 63, 53, 61, 73, 65, 74, 53, 56, 79, 62, 83, 60, 66, 46, 48, 59, 74, 57, 71, 67, 61, 94, 76, 90, 58, 74, 59, 62, 55, 81, 71, 74, 69, 54, 67, 62, 67, 90, 67, 87, 104, 54, 46, 56, 65, 65, 63, 53, 65, 56, 57, 65, 63, 68, 58, 54, 50, 49, 80, 63, 58, 54, 52, 70, 60, 68, 61, 52, 75, 84, 49, 69, 56, 68, 58, 74, 67, 67, 51, 68, 51, 56, 67, 77, 66, 62, 75, 70, 62, 65, 58, 65, 50, 59, 59, 48, 58, 59, 87, 45, 64, 61, 85, 59, 47, 70, 89, 54, 59, 54, 59, 50, 58, 70, 60, 86, 60, 63, 64, 69, 55, 72, 77, 48, 58, 54, 60, 65, 83, 57, 84, 62, 62, 60, 49, 100, 59, 61, 73, 68, 65, 56, 58, 82, 110, 57, 69, 69, 91, 51, 93, 82, 66, 61, 71, 57, 65, 86, 57, 84, 80, 68, 38, 67, 64, 64, 59, 65, 92, 74, 77, 81, 53, 59, 59, 69, 58, 73, 58, 67, 82, 113, 64, 80, 70, 66, 73, 51, 54, 54, 59, 69, 65, 57, 72, 54, 62, 50, 59, 73, 66, 61, 51, 64, 69, 69, 58, 124, 53, 52, 55, 101, 54, 62, 57, 77, 69, 55, 65, 70, 75, 83, 52, 80, 72, 61, 58, 69, 73, 64, 56, 71, 64, 76, 51, 64, 54, 75, 78, 54, 58, 48, 90, 68, 75, 66, 75, 68, 55, 55, 65, 59, 67, 74, 55, 75, 71, 102, 57, 60, 60, 69, 50, 80, 57, 61, 89, 79, 66, 65, 60, 64, 48, 58, 60, 68, 63, 98, 61, 51, 83, 53, 78, 56, 68, 76, 60, 61, 89, 67, 65, 70, 74, 62, 59, 68, 66, 53, 80, 64, 60, 78, 60, 96, 59, 58, 71, 59, 48, 63, 60, 81, 62, 76, 61, 66, 68, 72, 52, 72, 52, 65, 56, 55, 65, 76, 52, 62, 105, 67, 47, 57, 73, 81, 68, 52, 56, 59, 74, 65, 63, 61, 67, 57, 51, 125, 63, 87, 73, 59, 64, 53, 53, 57, 67, 67, 63, 55, 59, 59, 87, 96, 57, 63, 64, 56, 65, 53, 53, 74, 91, 69, 61, 100, 53, 54, 55, 57, 62, 64, 61, 62, 63, 72, 63, 60, 62, 64, 74, 62, 56, 65, 51, 62, 69, 68, 57, 60, 73, 77, 53, 69, 76, 90, 46, 55, 51, 69, 67, 64, 72, 55, 61, 56, 56, 96, 73, 54, 74, 62, 46, 68, 54, 68, 53, 58, 56, 75, 79, 60, 76, 74, 66, 68, 69, 71, 81, 70, 79, 55, 64, 51, 70, 59, 68, 78, 60, 61, 90, 60, 78, 80, 57, 65, 55, 63, 74, 96, 79, 59, 60, 114, 55, 64, 64, 77, 70, 47, 44, 79, 55, 60, 56, 65, 53, 71, 57, 76, 63, 65, 52, 59, 56, 69, 70, 57, 67, 80, 57, 68, 64, 61, 46, 60, 61, 45, 68, 64, 118, 73, 80, 49, 59, 50, 95, 55, 61, 59, 54, 58, 66, 64, 78, 91, 58, 63, 74, 73, 55, 91, 81, 98, 82, 77, 64, 77, 80, 74, 79, 52, 63, 60, 54, 76, 70, 53, 73, 75, 82, 88, 70, 63, 72, 67, 66, 59, 64, 61, 60, 86, 80, 56, 52, 70, 50, 66, 57, 51, 60, 97, 57, 57, 61, 50, 58, 69, 65, 87, 65, 45, 60, 72, 51, 47, 61, 72, 54, 55, 65, 68, 71, 53, 64, 84, 67, 80, 56, 85, 56, 85, 78, 119, 106, 63, 61, 75, 51, 61, 61, 57, 60, 62, 84, 65, 75, 61, 73, 74, 63, 55, 71, 87, 49, 49, 78, 67, 69, 56, 64, 56, 75, 59, 76, 70, 72, 59, 81, 68, 76, 59, 70, 55, 60, 58, 56, 64, 60, 72, 65, 52, 100, 63, 70, 88, 78, 56, 50, 61, 51, 63, 64, 81, 84, 60, 64, 52, 82, 62, 78, 58, 51, 67, 61, 58, 72, 48, 52, 68, 57, 84, 70, 70, 58, 69, 68, 49, 86, 60, 47, 65, 63, 58, 71, 72, 61, 51, 61, 75, 75, 51, 84, 54, 67, 106, 69, 72, 57, 77, 69, 59, 58, 48, 63, 85, 62, 59, 59, 74, 85, 120, 62, 59, 67, 78, 103, 69, 72, 70, 62, 133, 60, 65, 44, 79, 74, 71, 82, 54, 51, 68, 65, 59, 48, 80, 56, 59, 67, 70, 54, 53, 60, 57, 58, 65, 91, 74, 95, 75, 66, 100, 70, 46, 69, 62, 74, 65, 62, 58, 52, 71, 55, 66, 66, 56, 62, 73, 72, 65, 52, 62, 62, 62, 55, 73, 58, 41, 53, 57, 67, 64, 70, 49, 61, 66, 54, 60, 71, 57, 56, 61, 67, 66, 66, 79, 46, 63, 66, 68, 79, 53, 80, 67, 65, 57, 49, 62, 57, 75, 57, 58, 95, 79, 69, 53, 68, 63, 74, 62, 81, 64, 52, 66, 68, 62, 61, 73, 85, 64, 61, 64, 69, 53, 67, 76, 66, 59, 60, 60, 65, 67, 73, 51, 124, 53, 61, 77, 60, 92, 73, 67, 71, 56, 63, 66, 68, 75, 93, 62, 65, 48, 59, 65, 69, 61, 75, 60, 56, 55, 60, 94, 56, 48, 51, 55, 53, 64, 57, 77, 53, 65, 69, 64, 78, 69, 56, 57, 74, 64, 76, 78, 64, 77, 63, 60, 70, 63, 42, 67, 60, 83, 71, 60, 61, 68, 78, 66, 55, 74, 59, 64, 58, 73, 61, 59, 50, 64, 54, 59, 68, 60, 52, 58, 58, 102, 64, 69, 58, 65, 82, 67, 67, 71, 55, 47, 70, 53, 76, 66, 51, 94, 52, 64, 71, 74, 52, 60, 58, 67, 56, 68, 59, 54, 52, 68, 68, 65, 70, 63, 63, 53, 64, 58, 55, 55, 67, 53, 54, 70, 59, 67, 55, 56, 71, 53, 74, 63, 66, 70, 61, 61, 68, 87, 148, 69, 70, 64, 63, 68, 92, 56, 53, 55, 73, 73, 55, 66, 67, 63, 75, 110, 76, 65, 60, 72, 88, 57, 76, 91, 73, 67, 73, 67, 99, 67, 67, 51, 71, 65, 64, 47, 69, 74, 70, 62, 76, 53, 66, 73, 65, 64, 55, 59, 92, 51, 62, 66, 70, 60, 57, 86, 53, 57, 51, 72, 72, 63, 64, 60, 63, 68, 93, 75, 70, 65, 65, 85, 57, 58, 90, 46, 61, 92, 63, 41, 76, 47, 53, 79, 102, 63, 49, 63, 57, 80, 67, 74, 58, 54, 129, 59, 51, 56, 68, 73, 71, 76, 67, 67, 62, 68, 55, 55, 64, 57, 51, 68, 46, 70, 75, 61, 76, 74, 64, 60, 63, 50, 77, 90, 62, 62, 86, 57, 66, 67, 68, 67, 48, 60, 68, 58, 54, 55, 77, 96, 65, 115, 80, 57, 75, 82, 102, 70, 66, 65, 85, 57, 60, 53, 64, 51, 68, 79, 78, 68, 46, 59, 55, 55, 75, 56, 55, 80, 56, 69, 50, 65, 63, 65, 73, 81, 86, 44, 60, 56, 95, 67, 57, 98, 65, 97, 62, 54, 63, 60, 63, 85, 56, 55, 71, 62, 55, 72, 60, 87, 74, 62, 52, 61, 56, 57, 90, 48, 66, 51, 96, 53, 56, 67, 77, 59, 54, 67, 54, 118, 44, 64, 70, 59, 80, 58, 57, 52, 49, 55, 65, 67, 63, 95, 67, 53, 61, 62, 51, 58, 66, 56, 62, 52, 52, 70, 64, 70, 61, 63, 75, 81, 68, 67, 63, 68, 66, 70, 57, 69, 52, 50, 57, 58, 75, 59, 49, 67, 72, 61, 76, 69, 58, 64, 63, 65, 52, 83, 53, 63, 70, 61, 82, 66, 85, 68, 50, 79, 69, 81, 59, 47, 64, 63, 56, 73, 70, 85, 52, 75, 58, 49, 65, 75, 59, 80, 81, 58, 49, 67, 51, 71, 80, 49, 85, 59, 73, 61, 69, 95, 69, 66, 52, 73, 68, 72, 64, 57, 62, 76, 94, 35, 104, 62, 86, 58, 50, 62, 59, 53, 76, 60, 62, 53, 67, 62, 57, 65, 48, 72, 48, 96, 62, 58, 68, 55, 58, 71, 63, 55, 61, 76, 60, 111, 74, 45, 75, 56, 56, 73, 54, 66, 46, 96, 69, 72, 61, 40, 55, 56, 95, 60, 60, 64, 63, 76, 63, 96, 85, 50, 57, 64, 76, 74, 66, 75, 65, 87, 55, 60, 65, 65, 66, 58, 52, 54, 63, 70, 51, 59, 93, 74, 59, 62, 73, 54, 71, 74, 65, 73, 89, 54, 71, 57, 57, 77, 90, 56, 108, 54, 62, 67, 72, 64, 56, 63, 65, 100, 70, 80, 55, 75, 56, 54, 69, 44, 70, 62, 48, 52, 63, 67, 61, 74, 79, 67, 61, 75, 54, 68, 67, 58, 71, 65, 60, 55, 50, 55, 45, 48, 53, 71, 78, 50, 78, 64, 80, 62, 48, 55, 44, 49, 73, 66, 52, 66, 65, 52, 132, 55, 62, 67, 77, 52, 54, 59, 66, 54, 55, 64, 62, 79, 62, 67, 36, 86, 55, 62, 67, 84, 61, 48, 53, 57, 64, 58, 64, 67, 67, 58, 71, 83, 58, 76, 64, 83, 69, 76, 72, 73, 61, 55, 37, 51, 64, 72, 66, 78, 85, 47, 92, 58, 49, 59, 51, 67, 52, 66, 62, 67, 53, 58, 76, 80, 51, 50, 62, 67, 59, 59, 64, 84, 66, 42, 57, 56, 59, 55, 41, 56, 54, 76, 69, 61, 58, 83, 56, 72, 50, 83, 59, 70, 62, 51, 87, 55, 74, 59, 82, 64, 60, 85, 59, 59, 66, 56, 95, 65, 84, 59, 63, 56, 69, 75, 84, 56, 71, 69, 58, 103, 64, 69, 69, 69, 68, 62, 59, 83, 67, 48, 59, 62, 62, 63, 74, 83, 62, 62, 51, 67, 67, 74, 57, 70, 46, 101, 53, 60, 68, 60, 90, 84, 96, 47, 49, 72, 59, 59, 85, 68, 68, 55, 78, 65, 53, 62, 104, 59, 67, 62, 39, 58, 68, 59, 65, 57, 76, 63, 86, 64, 55, 56, 67, 52, 69, 48, 55, 82, 66, 68, 60, 54, 61, 56, 54, 60, 48, 62, 68, 47, 61, 81, 60, 45, 51, 67, 67, 78, 52, 64, 74, 47, 54, 75, 68, 52, 54, 58, 61, 74, 68, 51, 51, 62, 71, 54, 46, 74, 74, 62, 61, 72, 98, 47, 135, 58, 63, 31, 78, 98, 57, 50, 40, 81, 57, 70, 61, 50, 49, 83, 50, 73, 56, 60, 74, 67, 83, 79, 61, 58, 68, 59, 73, 62, 70, 62, 57, 64, 73, 69, 54, 89, 34, 75, 66, 56, 63, 46, 72, 67, 47, 69, 62, 74, 70, 65, 61, 63, 64, 47, 51, 84, 76, 52, 67, 57, 70, 58, 55, 69, 55, 73, 55, 60, 65, 86, 61, 80, 80, 48, 83, 52, 55, 58, 56, 76, 59, 54, 57, 60, 89, 67, 60, 107, 68, 65, 70, 60, 69, 64, 55, 57, 84, 52, 66, 49, 60, 65, 80, 58, 57, 62, 93, 54, 57, 64, 52, 78, 65, 51, 59, 58, 58, 53, 79, 56, 72, 48, 56, 48, 74, 58, 87, 56, 56, 64, 76, 55, 36, 61, 57, 72, 70, 59, 61, 63, 66, 52, 59, 72, 61, 60, 64, 46, 61, 72, 50, 51, 55, 54, 87, 50, 91, 75, 50, 57, 45, 58, 68, 65, 82, 60, 61, 61, 63, 63, 62, 52, 46, 68, 66, 58, 68, 64, 92, 65, 71, 78, 54, 83, 82, 59, 74, 101, 47, 55, 55, 55, 56, 63, 71, 61, 62, 80, 76, 60, 66, 59, 59, 72, 59, 104, 66, 58, 113, 79, 59, 74, 66, 56, 39, 70, 70, 47, 67, 81, 47, 94, 65, 80, 77, 78, 60, 68, 79, 74, 62, 59, 52, 58, 56, 87, 51, 87, 54, 58, 59, 86, 66, 70, 60, 95, 55, 54, 66, 116, 76, 114, 62, 86, 52, 70, 58, 59, 56, 85, 76, 52, 67, 50, 125, 57, 54, 61, 61, 62, 60, 55, 58, 68, 62, 65, 57, 52, 57, 62, 56, 53, 73, 56, 84, 86, 61, 63, 54, 57, 59, 62, 69, 59, 64, 63, 57, 59, 69, 70, 72, 109, 66, 90, 54, 76, 63, 58, 55, 64, 77, 81, 70, 56, 57, 65, 64, 62, 66, 64, 61, 60, 63, 62, 74, 62, 81, 69, 62, 91, 65, 65, 63, 59, 55, 81, 87, 81, 49, 74, 48, 68, 60, 70, 62, 58, 52, 54, 54, 56, 63, 71, 79, 52, 64, 53, 53, 52, 53, 62, 68, 66, 58, 65, 48, 73, 61, 65, 72, 67, 62, 70, 63, 62, 51, 67, 57, 58, 55, 62, 68, 55, 97, 55, 60, 31, 61, 70, 40, 45, 56, 52, 61, 51, 70, 45, 53, 96, 68, 60, 53, 58, 41, 56, 68, 52, 58, 86, 86, 66, 99, 69, 65, 52, 70, 77, 49, 87, 84, 57, 74, 114, 81, 53, 58, 64, 53, 96, 58, 68, 57, 49, 74, 57, 67, 62, 70, 108, 62, 85, 71, 51, 56, 73, 101, 83, 66, 60, 53, 55, 66, 62, 43, 45, 58, 100, 74, 66, 62, 62, 50, 54, 107, 70, 69, 94, 60, 68, 56, 62, 62, 72, 43, 98, 86, 61, 63, 49, 60, 71, 77, 154, 43, 68, 78, 64, 124, 79, 57, 50, 56, 59, 66, 75, 68, 67, 66, 60, 87, 67, 57, 61, 56, 67, 61, 57, 62, 59, 41, 65, 66, 57, 57, 53, 67, 46, 52, 81, 85, 87, 80, 65, 88, 89, 68, 57, 62, 64, 62, 55, 66, 76, 54, 68, 80, 66, 80, 54, 59, 69, 64, 78, 71, 69, 59, 71, 70, 54, 57, 64, 56, 52, 78, 38, 65, 67, 49, 74, 71, 62, 71, 71, 55, 68, 53, 66, 58, 68, 63, 62, 53, 55, 57, 50, 60, 69, 66, 66, 75, 72, 73, 100, 65, 70, 68, 73, 62, 59, 69, 74, 68, 97, 44, 51, 61, 61, 70, 92, 71, 64, 58, 49, 60, 56, 83, 86, 45, 72, 64, 58, 64, 52, 74, 73, 67, 49, 81, 56, 108, 41, 54, 63, 52, 79, 64, 93, 51, 110, 88, 79, 78, 80, 71, 73, 61, 67, 48, 48, 61, 57, 65, 114, 66, 48, 55, 52, 55, 44, 53, 44, 84, 77, 107, 65, 55, 90, 65, 60, 48, 64, 73, 65, 60, 68, 73, 53, 62, 62, 69, 55, 69, 108, 108, 61, 55, 52, 50, 64, 66, 63, 76, 55, 63, 54, 40, 57, 57, 61, 56, 67, 79, 51, 57, 59, 55, 60, 57, 102, 84, 60, 58, 48, 61, 55, 73, 82, 62, 78, 55, 70, 54, 49, 63, 67, 79, 69, 74, 84, 69, 53, 95, 61, 79, 73, 78, 69, 72, 72, 78, 75, 73, 46, 74, 63, 99, 105, 99, 66, 64, 83, 126, 101, 62, 76, 59, 46, 55, 46, 65, 62, 54, 58, 96, 67, 48, 76, 54, 56, 75, 59, 58, 69, 55, 67, 66, 79, 72, 57, 48, 54, 59, 64, 76, 75, 74, 68, 90, 63, 70, 63, 72, 61, 55, 59, 81, 70, 100, 67, 64, 62, 57, 60, 62, 61, 71, 71, 49, 88, 52, 76, 75, 64, 47, 68, 52, 61, 52, 76, 50, 67, 62, 62, 54, 64, 76, 59, 100, 55, 74, 71, 61, 52, 57, 62, 64, 60, 58, 45, 47, 61, 53, 63, 81, 49, 88, 53, 70, 91, 80, 49, 84, 73, 51, 65, 65, 68, 44, 59, 67, 63, 117, 89, 45, 50, 59, 81, 62, 75, 80, 79, 58, 59, 80, 55, 85, 65, 52, 64, 63, 50, 59, 83, 63, 53, 49, 87, 66, 92, 77, 52, 61, 54, 90, 51, 69, 60, 55, 56, 56, 59, 64, 54, 59, 61, 67, 85, 50, 56, 69, 59, 78, 52, 91, 75, 76, 70, 54, 68, 49, 69, 62, 64, 58, 65, 68, 71, 65, 58, 70, 75, 81, 83, 66, 59, 54, 55, 46, 74, 55, 89, 82, 67, 61, 65, 92, 83, 56, 53, 116, 88, 54, 50, 47, 55, 59, 60, 85, 68, 63, 72, 75, 84, 57, 56, 71, 50, 73, 66, 56, 56, 66, 57, 55, 75, 83, 61, 78, 74, 88, 68, 46, 56, 57, 59, 59, 123, 51, 51, 61, 75, 75, 62, 69, 56, 59, 78, 45, 52, 56, 74, 48, 83, 62, 62, 69, 67, 63, 54, 63, 65, 65, 84, 49, 57, 41, 80, 63, 70, 61, 54, 79, 70, 53, 75, 69, 107, 71, 83, 50, 58, 80, 73, 57, 98, 80, 69, 67, 34, 73, 71, 105, 79, 52, 78, 60, 62, 60, 56, 62, 66, 54, 49, 55, 58, 68, 76, 61, 72, 67, 69, 59, 73, 63, 45, 73, 91, 64, 44, 57, 84, 49, 58, 71, 57, 56, 66, 54, 76, 75, 109, 63, 74, 78, 49, 80, 69, 57, 78, 73, 72, 69, 53, 101, 46, 75, 78, 80, 67, 58, 63, 73, 67, 68, 68, 75, 76, 76, 55, 54, 62, 71, 54, 63, 67, 70, 74, 85, 64, 50, 64, 61, 46, 61, 61, 78, 51, 76, 49, 63, 51, 60, 52, 43, 71, 64, 61, 73, 69, 67, 59, 63, 68, 55, 40, 61, 90, 53, 60, 66, 94, 82, 53, 71, 47, 113, 63, 54, 47, 73, 47, 76, 57, 81, 54, 50, 77, 69, 79, 55, 91, 80, 76, 62, 66, 76, 56, 107, 83, 54, 57, 72, 37, 61, 74, 47, 45, 68, 57, 86, 93, 108, 64, 52, 102, 65, 49, 88, 63, 108, 67, 58, 67, 62, 57, 56, 50, 70, 71, 102, 56, 75, 64, 48, 66, 67, 69, 67, 66, 51, 77, 66, 71, 86, 58, 53, 85, 86, 51, 64, 67, 53, 35, 46, 63, 57, 57, 53, 66, 69, 79, 58, 112, 56, 67, 59, 57, 61, 52, 77, 84, 57, 60, 85, 65, 66, 66, 53, 53, 55, 83, 66, 74, 70, 60, 60, 41, 47, 66, 80, 80, 56, 57, 72, 72, 59, 72, 67, 75, 62, 90, 61, 66, 63, 50, 58, 74, 66, 90, 80, 73, 78, 52, 72, 64, 68, 53, 61, 48, 63, 57, 57, 71, 56, 68, 89, 54, 55, 76, 76, 57, 79, 100, 50, 74, 65, 72, 81, 58, 77, 67, 74, 69, 69, 30, 66, 68, 61, 86, 77, 62, 116, 73, 63, 68, 64, 67, 112, 69, 66, 65, 63, 68, 63, 71, 63, 69, 70, 74, 92, 47, 66, 65, 60, 50, 52, 70, 76, 61, 60, 59, 54, 77, 61, 64, 55, 67, 63, 60, 58, 76, 91, 58, 59, 77, 76, 60, 62, 63, 57, 56, 86, 69, 64, 57, 60, 58, 59, 69, 79, 69, 66, 57, 68, 53, 72, 59, 62, 62, 56, 59, 82, 58, 77, 62, 64, 67, 87, 62, 67, 52, 88, 53, 85, 56, 68, 82, 77, 59, 69, 67, 69, 74, 63, 73, 62, 56, 80, 63, 74, 71, 67, 77, 58, 87, 62, 69, 64, 64, 64, 89, 59, 54, 61, 60, 49, 57, 66, 57, 53, 72, 60, 57, 67, 61, 73, 98, 71, 65, 46, 61, 60, 81, 63, 81, 74, 59, 53, 66, 104, 59, 56, 113, 66, 147, 69, 70, 68, 55, 64, 57, 71, 66, 78, 54, 67, 73, 52, 60, 74, 69, 65, 54, 55, 99, 89, 82, 74, 60, 55, 75, 65, 56, 69, 72, 76, 64, 70, 67, 69, 58, 60, 67, 66, 67, 65, 70, 63, 64, 66, 53, 92, 65, 73, 55, 63, 51, 84, 71, 74, 63, 46, 77, 65, 62, 45, 71, 58, 57, 48, 67, 78, 71, 44, 72, 67, 56, 80, 61, 51, 65, 65, 115, 103, 69, 86, 60, 71, 71, 66, 73, 70, 55, 70, 71, 68, 67, 54, 56, 59, 78, 70, 64, 67, 65, 63, 84, 65, 50, 73, 73, 73, 55, 59, 74, 73, 63, 68, 78, 63, 85, 66, 52, 57, 62, 59, 56, 62, 54, 59, 62, 70, 80, 54, 61, 64, 101, 60, 67, 71, 70, 55, 60, 66, 53, 68, 48, 80, 44, 54, 48, 63, 58, 73, 78, 53, 70, 74, 76, 71, 58, 56, 61, 76, 64, 55, 69, 64, 49, 50, 58, 50, 42, 62, 63, 63, 74, 62, 66, 49, 63, 49, 81, 63, 81, 59, 59, 60, 60, 79, 80, 55, 90, 65, 62, 104, 60, 57, 66, 62, 67, 51, 54, 76, 62, 61, 91, 69, 65, 65, 62, 47, 67, 57, 99, 90, 64, 59, 59, 78, 62, 61, 64, 61, 72, 73, 90, 58, 71, 46, 66, 58, 70, 73, 56, 64, 82, 50, 48, 62, 58, 93, 84, 64, 58, 53, 50, 47, 80, 65, 64, 64, 71, 55, 88, 39, 65, 51, 74, 86, 64, 71, 54, 68, 70, 66, 71, 61, 59, 65, 61, 77, 70, 74, 95, 63, 50, 56, 36, 52, 54, 65, 72, 90, 52, 76, 60, 61, 63, 61, 59, 101, 61, 62, 69, 61, 51, 67, 76, 42, 74, 75, 81, 63, 163, 65, 64, 71, 64, 64, 76, 68, 60, 71, 58, 72, 66, 54, 75, 75, 57, 76, 56, 93, 59, 59, 70, 59, 59, 70, 68, 68, 64, 66, 73, 57, 57, 61, 75, 60, 71, 46, 61, 56, 73, 70, 75, 71, 65, 71, 64, 120, 67, 68, 69, 61, 60, 72, 70, 65, 58, 74, 83, 69, 63, 68, 68, 47, 60, 85, 63, 58, 48, 57, 83, 62, 58, 80, 58, 59, 69, 66, 57, 43, 60, 62, 70, 74, 79, 93, 80, 71, 56, 66, 61, 56, 64, 53, 75, 55, 71, 82, 63, 146, 65, 56, 71, 49, 69, 53, 65, 103, 55, 69, 66, 69, 48, 59, 69, 51, 51, 56, 68, 47, 55, 41, 61, 69, 73, 79, 58, 67, 74, 37, 63, 68, 60, 58, 60, 63, 51, 61, 62, 61, 59, 59, 64, 77, 70, 96, 58, 60, 56, 62, 65, 61, 77, 89, 77, 61, 65, 69, 61, 61, 81, 58, 61, 47, 58, 60, 85, 55, 57, 48, 50, 64, 70, 47, 63, 73, 69, 52, 53, 64, 46, 66, 60, 70, 63, 63, 65, 66, 55, 66, 62, 53, 67, 63, 129, 56, 73, 58, 61, 73, 61, 85, 59, 52, 61, 71, 54, 64, 89, 52, 54, 63, 64, 53, 69, 64, 59, 62, 67, 63, 65, 73, 50, 65, 54, 75, 65, 51, 58, 57, 56, 85, 59, 77, 64, 63, 74, 58, 53, 66, 57, 68, 68, 62, 69, 57, 58, 55, 69, 63, 61, 62, 64, 64, 70, 53, 60, 63, 82, 63, 70, 65, 71, 68, 63, 74, 63, 82, 61, 63, 69, 66, 47, 59, 58, 67, 68, 46, 72, 58, 74, 52, 72, 98, 55, 60, 70, 44, 59, 65, 75, 80, 75, 62, 58, 80, 63, 59, 63, 60, 57, 59, 86, 68, 65, 80, 84, 81, 67, 61, 70, 60, 62, 69, 66, 67, 67, 55, 60, 65, 60, 73, 52, 60, 78, 62, 67, 78, 51, 71, 77, 69, 48, 67, 72, 69, 54, 56, 79, 61, 61, 54, 62, 66, 67, 60, 72, 49, 68, 52, 68, 70, 75, 60, 58, 56, 81, 87, 63, 71, 69, 64, 88, 74, 61, 61, 74, 77, 63, 90, 57, 59, 100, 77, 53, 56, 68, 64, 64, 54, 77, 72, 68, 66, 52, 53, 95, 59, 64, 56, 54, 62, 67, 57, 60, 63, 60, 58, 62, 57, 59, 69, 75, 67, 55, 47, 45, 81, 58, 63, 89, 55, 49, 56, 60, 58, 82, 74, 58, 80, 54, 47, 60, 74, 61, 52, 73, 52, 54, 52, 63, 67, 51, 56, 67, 62, 58, 62, 54, 71, 81, 74, 73, 87, 64, 58, 59, 73, 88, 97, 69, 64, 73, 63, 64, 70, 62, 77, 71, 70, 53, 65, 58, 100, 54, 71, 60, 71, 54, 61, 50, 56, 90, 60, 59, 59, 65, 82, 53, 56, 58, 62, 78, 79, 56, 71, 60, 53, 66, 78, 100, 61, 58, 76, 65, 70, 55, 76, 66, 70, 61, 60, 81, 64, 60, 80, 59, 64, 60, 73, 52, 60, 56, 64, 62, 74, 62, 68, 59, 64, 62, 55, 65, 60, 66, 72, 58, 65, 56, 53, 59, 65, 61, 56, 66, 53, 67, 50, 80, 70, 80, 69, 69, 49, 63, 71, 56, 85, 60, 93, 64, 54, 62, 58, 65, 50, 64, 75, 71, 82, 59, 65, 62, 78, 54, 62, 61, 68, 63, 60, 61, 53, 62, 60, 72, 60, 74, 59, 101, 71, 59, 65, 65, 75, 44, 68, 71, 90, 64, 64, 66, 87, 55, 69, 71, 48, 58, 69, 61, 63, 80, 70, 58, 59, 53, 46, 78, 57, 55, 50, 68, 64, 60, 76, 54, 78, 58, 47, 63, 62, 62, 113, 65, 59, 67, 40, 46, 76, 53, 75, 80, 80, 62, 61, 80, 54, 56, 58, 60, 58, 56, 69, 42, 61, 53, 60, 70, 63, 72, 68, 49, 66, 61, 52, 79, 59, 75, 94, 45, 82, 70, 63, 44, 89, 44, 42, 77, 51, 65, 75, 68, 74, 76, 101, 68, 74, 93, 75, 68, 77, 53, 69, 55, 43, 76, 69, 68, 53, 58, 69, 59, 71, 63, 60, 68, 70, 57, 48, 65, 57, 59, 47, 68, 53, 56, 83, 83, 87, 59, 45, 67, 67, 92, 82, 61, 66, 69, 64, 59, 81, 52, 62, 116, 78, 138, 49, 49, 84, 59, 79, 51, 65, 63, 65, 68, 52, 63, 68, 49, 71, 69, 57, 35, 56, 93, 66, 76, 62, 55, 49, 64, 66, 67, 51, 76, 62, 59, 57, 79, 75, 61, 62, 64, 56, 62, 70, 94, 63, 72, 65, 53, 88, 44, 58, 60, 52, 79, 61, 50, 71, 53, 53, 55, 57, 62, 53, 76, 53, 53, 74, 72, 46, 50, 61, 55, 64, 87, 70, 70, 76, 52, 79, 110, 68, 74, 64, 77, 64, 75, 56, 59, 68, 53, 55, 57, 56, 52, 64, 75, 50, 47, 54, 54, 59, 73, 61, 69, 78, 46, 73, 57, 64, 56, 53, 61, 60, 44, 52, 65, 64, 72, 66, 82, 47, 54, 52, 57, 57, 77, 61, 61, 67, 53, 78, 60, 46, 82, 51, 67, 44, 69, 68, 85, 57, 77, 81, 44, 78, 52, 65, 53, 63, 59, 45, 87, 53, 71, 69, 74, 72, 91, 76, 68, 66, 62, 51, 62, 57, 42, 43, 60, 67, 52, 58, 47, 58, 62, 56, 65, 68, 67, 58, 73, 92, 70, 56, 59, 55, 55, 47, 59, 66, 71, 54, 77, 91, 55, 64, 71, 56, 62, 76, 54, 56, 54, 56, 74, 75, 67, 68, 65, 52, 48, 84, 97, 117, 61, 68, 69, 69, 76, 69, 54, 66, 84, 65, 63, 58, 67, 59, 60, 55, 75, 61, 64, 77, 70, 97, 72, 51, 51, 73, 71, 59, 65, 62, 63, 67, 60, 59, 71, 57, 45, 66, 76, 54, 66, 64, 64, 71, 66, 60, 44, 68, 60, 57, 76, 54, 72, 58, 57, 67, 69, 66, 68, 64, 47, 70, 103, 50, 74, 74, 74, 75, 63, 84, 60, 94, 63, 69, 72, 108, 61, 74, 52, 55, 71, 71, 76, 86, 68, 92, 64, 65, 170, 76, 58, 88, 52, 49, 50, 56, 65, 55, 56, 48, 90, 72, 65, 72, 58, 70, 66, 70, 60, 58, 63, 79, 56, 65, 71, 47, 65, 109, 84, 65, 65, 68, 77, 72, 55, 72, 54, 69, 48, 59, 52, 60, 66, 76, 67, 106, 59, 87, 61, 53, 47, 61, 56, 63, 46, 83, 60, 63, 82, 74, 62, 44, 59, 64, 74, 49, 85, 69, 78, 84, 49, 71, 55, 60, 45, 75, 71, 74, 78, 66, 46, 73, 70, 86, 75, 60, 46, 58, 61, 50, 55, 54, 49, 53, 65, 85, 94, 139, 72, 76, 69, 51, 53, 52, 48, 86, 40, 69, 75, 63, 61, 62, 45, 74, 76, 43, 62, 65, 73, 67, 64, 60, 68, 76, 60, 57, 71, 62, 91, 62, 68, 51, 69, 92, 62, 55, 59, 67, 54, 61, 73, 62, 84, 62, 69, 71, 65, 69, 56, 79, 62, 59, 103, 72, 57, 68, 69, 62, 80, 63, 71, 51, 61, 61, 53, 52, 57, 63, 82, 69, 69, 56, 59, 74, 75, 61, 77, 44, 68, 72, 78, 63, 51, 68, 67, 50, 62, 72, 67, 60, 69, 55, 135, 51, 53, 72, 53, 91, 76, 78, 79, 50, 74, 61, 92, 64, 59, 61, 61, 55, 62, 61, 50, 81, 59, 60, 52, 65, 59, 58, 55, 60, 60, 87, 64, 62, 66, 82, 78, 73, 55, 69, 69, 54, 52, 68, 82, 71, 60, 50, 63, 96, 74, 59, 96, 47, 51, 77, 61, 62, 48, 69, 74, 70, 61, 57, 72, 76, 68, 71, 56, 81, 56, 71, 66, 87, 54, 77, 74, 72, 58, 61, 62, 63, 49, 90, 68, 73, 66, 75, 69, 76, 62, 45, 57, 81, 52, 56, 66, 69, 84, 54, 67, 71, 65, 65, 71, 73, 90, 51, 61, 58, 71, 83, 78, 48, 62, 85, 67, 61, 58, 48, 61, 59, 71, 37, 75, 92, 62, 81, 63, 64, 65, 60, 65, 78, 65, 65, 62, 53, 69, 56, 67, 56, 55, 76, 66, 57, 67, 57, 61, 36, 54, 59, 66, 57, 73, 64, 66, 75, 79, 64, 85, 55, 93, 81, 41, 77, 62, 48, 75, 45, 75, 71, 41, 87, 77, 97, 75, 53, 113, 56, 73, 60, 57, 65, 81, 67, 72, 74, 64, 59, 71, 75, 66, 71, 66, 70, 60, 68, 59, 62, 67, 57, 70, 57, 58, 71, 60, 69, 53, 53, 78, 55, 58, 76, 54, 87, 88, 71, 50, 103, 58, 84, 50, 54, 81, 66, 79, 70, 63, 65, 51, 64, 57, 74, 82, 60, 74, 76, 63, 62, 59, 78, 60, 51, 53, 58, 70, 89, 64, 70, 41, 57, 57, 65, 58, 87, 54, 58, 56, 58, 54, 50, 63, 59, 69, 68, 78, 89, 49, 82, 65, 46, 58, 68, 59, 67, 78, 60, 97, 62, 51, 60, 51, 66, 79, 55, 64, 55, 96, 70, 55, 75, 53, 76, 62, 63, 89, 57, 74, 99, 71, 76, 69, 73, 53, 73, 63, 63, 67, 68, 70, 72, 53, 52, 73, 51, 60, 61, 63, 45, 56, 64, 63, 62, 61, 58, 67, 67, 56, 63, 74, 61, 74, 60, 64, 53, 72, 61, 60, 63, 69, 59, 85, 52, 89, 87, 91, 50, 72, 70, 54, 77, 54, 56, 62, 79, 69, 58, 78, 62, 57, 55, 47, 59, 71, 76, 74, 58, 52, 67, 67, 57, 52, 77, 64, 70, 59, 45, 64, 78, 61, 51, 74, 63, 91, 62, 63, 76, 64, 78, 68, 66, 65, 113, 76, 66, 72, 59, 58, 64, 80, 67, 67, 71, 76, 81, 52, 74, 52, 79, 67, 74, 51, 61, 63, 50, 56, 67, 67, 50, 58, 85, 63, 55, 57, 83, 65, 74, 58, 52, 55, 62, 78, 68, 53, 63, 74, 78, 62, 60, 52, 68, 65, 71, 70, 77, 68, 73, 61, 57, 62, 66, 55, 68, 75, 79, 65, 46, 65, 82, 73, 53, 77, 75, 57, 77, 50, 68, 39, 92, 62, 54, 76, 66, 66, 65, 52, 57, 77, 68, 74, 84, 62, 84, 63, 55, 50, 62, 84, 54, 80, 65, 44, 64, 66, 54, 71, 69, 51, 67, 61, 63, 65, 60, 58, 52, 61, 59, 51, 61, 77, 76, 80, 65, 53, 47, 54, 75, 82, 76, 80, 69, 71, 78, 60, 80, 47, 49, 118, 64, 142, 71, 62, 72, 68, 69, 70, 67, 59, 63, 60, 68, 91, 54, 57, 70, 79, 63, 70, 59, 100, 78, 58, 64, 64, 85, 89, 56, 57, 48, 71, 81, 64, 71, 68, 68, 58, 56, 49, 50, 76, 61, 84, 62, 64, 71, 64, 94, 53, 70, 55, 45, 71, 58, 75, 77, 63, 67, 74, 64, 76, 47, 70, 56, 69, 82, 63, 53, 75, 34, 55, 61, 55, 60, 55, 77, 56, 59, 120, 81, 54, 72, 61, 66, 57, 58, 64, 47, 49, 64, 46, 63, 68, 61, 64, 64, 69, 61, 60, 66, 62, 65, 45, 65, 53, 60, 76, 69, 61, 71, 68, 59, 58, 62, 88, 85, 73, 49, 61, 61, 50, 61, 55, 54, 66, 61, 65, 64, 68, 74, 60, 60, 87, 51, 63, 70, 76, 68, 73, 59, 53, 80, 53, 71, 71, 58, 56, 68, 81, 49, 95, 46, 68, 64, 84, 74, 83, 82, 64, 83, 57, 72, 75, 48, 72, 68, 65, 85, 62, 63, 54, 77, 74, 60, 49, 63, 69, 50, 86, 60, 65, 50, 73, 56, 65, 71, 72, 57, 87, 70, 69, 103, 53, 62, 67, 48, 80, 83, 65, 79, 67, 56, 79, 55, 51, 64, 70, 55, 67, 60, 102, 95, 69, 44, 57, 63, 77, 64, 60, 54, 79, 58, 83, 66, 67, 65, 62, 55, 82, 64, 66, 59, 92, 84, 66, 56, 80, 68, 66, 56, 51, 59, 49, 66, 50, 61, 61, 72, 59, 55, 94, 57, 52, 58, 64, 85, 54, 63, 78, 62, 56, 47, 62, 53, 106, 47, 43, 61, 58, 49, 96, 51, 67, 61, 112, 55, 54, 69, 71, 81, 66, 69, 62, 65, 68, 75, 63, 108, 64, 56, 63, 64, 61, 61, 61, 85, 78, 82, 66, 65, 176, 54, 49, 87, 67, 59, 61, 64, 54, 63, 56, 58, 74, 57, 64, 84, 55, 60, 66, 80, 56, 51, 58, 58, 56, 63, 67, 58, 47, 86, 73, 55, 47, 46, 53, 76, 58, 66, 54, 74, 74, 54, 62, 63, 65, 76, 58, 118, 54, 69, 66, 54, 53, 66, 65, 62, 63, 67, 86, 64, 60, 76, 58, 51, 67, 83, 49, 79, 64, 63, 78, 60, 72, 75, 59, 52, 53, 56, 57, 81, 80, 61, 60, 51, 69, 93, 68, 77, 73, 72, 50, 48, 51, 59, 71, 43, 73, 91, 86, 148, 74, 56, 57, 48, 67, 75, 63, 89, 64, 61, 73, 65, 66, 62, 55, 81, 81, 55, 80, 57, 57, 75, 62, 47, 65, 75, 54, 73, 73, 80, 50, 31, 51, 62, 56, 77, 64, 51, 66, 74, 53, 54, 64, 86, 54, 79, 54, 56, 71, 62, 63, 57, 79, 77, 72, 72, 57, 60, 73, 53, 83, 52, 62, 69, 52, 58, 64, 66, 59, 77, 56, 79, 50, 54, 67, 80, 77, 67, 69, 75, 66, 87, 71, 68, 63, 63, 67, 67, 48, 61, 76, 65, 58, 59, 139, 75, 77, 59, 56, 80, 86, 60, 57, 57, 78, 58, 66, 54, 95, 74, 62, 57, 64, 53, 64, 67, 55, 55, 53, 57, 44, 45, 65, 67, 63, 68, 60, 76, 49, 76, 82, 81, 53, 66, 67, 55, 68, 64, 51, 67, 59, 49, 75, 66, 81, 61, 45, 50, 67, 58, 72, 72, 64, 66, 72, 67, 59, 67, 71, 53, 53, 67, 67, 83, 71, 55, 57, 85, 63, 48, 72, 58, 59, 58, 45, 66, 62, 100, 70, 65, 63, 71, 63, 80, 52, 51, 76, 76, 66, 62, 67, 76, 94, 55, 61, 72, 51, 62, 75, 58, 54, 65, 76, 63, 70, 79, 75, 60, 69, 57, 53, 55, 64, 62, 77, 53, 52, 57, 60, 84, 77, 79, 52, 46, 83, 49, 75, 67, 58, 59, 65, 73, 70, 60, 66, 81, 54, 66, 58, 58, 59, 56, 55, 69, 56, 63, 65, 55, 59, 66, 67, 70, 63, 62, 75, 64, 95, 86, 60, 72, 62, 67, 83, 67, 63, 82, 69, 70, 68, 90, 63, 69, 112, 67, 56, 53, 63, 63, 61, 72, 58, 67, 73, 58, 55, 53, 86, 63, 56, 45, 64, 74, 64, 59, 53, 61, 63, 64, 56, 54, 47, 79, 82, 65, 57, 56, 65, 71, 54, 66, 80, 37, 53, 61, 59, 74, 43, 57, 62, 53, 66, 68, 59, 60, 54, 53, 54, 77, 69, 55, 66, 49, 55, 81, 74, 56, 56, 53, 79, 66, 74, 60, 69, 74, 60, 63, 66, 72, 71, 84, 53, 61, 65, 58, 62, 71, 70, 64, 64, 60, 58, 74, 66, 80, 78, 74, 73, 74, 65, 59, 61, 59, 97, 58, 59, 69, 47, 72, 58, 62, 67, 59, 104, 62, 59, 71, 53, 59, 61, 81, 95, 62, 66, 83, 75, 72, 60, 50, 52, 80, 48, 61, 83, 65, 70, 78, 57, 57, 65, 67, 58, 62, 62, 63, 55, 49, 51, 65, 70, 58, 74, 76, 47, 65, 55, 64, 57, 53, 50, 74, 56, 72, 56, 58, 61, 69, 75, 58, 77, 42, 87, 58, 65, 46, 71, 68, 62, 70, 69, 90, 64, 59, 76, 60, 57, 61, 53, 71, 60, 79, 79, 69, 69, 55, 60, 62, 70, 74, 58, 63, 67, 50, 55, 81, 72, 52, 63, 77, 101, 59, 54, 70, 73, 62, 90, 62, 58, 67, 47, 54, 53, 91, 68, 52, 57, 65, 60, 66, 44, 54, 58, 70, 83, 101, 68, 62, 64, 46, 51, 80, 59, 66, 55, 57, 72, 47, 57, 70, 73, 84, 62, 89, 48, 44, 69, 55, 60, 57, 55, 75, 64, 85, 47, 55, 63, 67, 54, 63, 58, 80, 65, 55, 70, 70, 60, 90, 86, 68, 75, 72, 67, 65, 67, 60, 63, 54, 79, 115, 64, 58, 74, 67, 66, 100, 67, 54, 70, 65, 60, 64, 70, 75, 77, 79, 45, 51, 68, 78, 58, 64, 79, 66, 66, 72, 72, 98, 75, 56, 102, 73, 66, 52, 63, 67, 68, 81, 69, 75, 64, 113, 95, 59, 71, 50, 58, 96, 67, 54, 61, 48, 65, 58, 52, 48, 50, 52, 55, 54, 59, 65, 48, 63, 116, 71, 144, 65, 63, 58, 49, 63, 44, 66, 76, 63, 67, 66, 60, 47, 53, 63, 70, 57, 69, 74, 74, 64, 70, 52, 53, 60, 61, 59, 54, 62, 63, 54, 80, 82, 88, 62, 81, 54, 53, 84, 50, 65, 79, 58, 62, 44, 62, 36, 53, 61, 65, 70, 69, 84, 65, 80, 72, 57, 62, 69, 65, 53, 61, 65, 57, 64, 63, 66, 55, 119, 66, 74, 75, 76, 56, 63, 61, 69, 114, 97, 64, 73, 74, 57, 60, 61, 57, 62, 64, 79, 59, 58, 54, 59, 56, 61, 67, 57, 55, 58, 71, 92, 56, 59, 65, 58, 57, 72, 66, 71, 73, 57, 61, 56, 81, 69, 72, 73, 61, 65, 62, 64, 65, 70, 63, 51, 71, 56, 54, 67, 69, 64, 89, 60, 64, 65, 84, 50, 59, 75, 82, 62, 78, 84, 57, 65, 81, 59, 50, 60, 94, 60, 77, 58, 73, 62, 65, 51, 55, 61, 80, 65, 47, 64, 66, 39, 67, 45, 70, 51, 65, 76, 57, 57, 62, 57, 54, 61, 73, 71, 56, 61, 51, 74, 66, 46, 67, 52, 98, 60, 72, 64, 66, 60, 92, 80, 63, 51, 62, 56, 58, 64, 80, 77, 66, 79, 65, 50, 59, 61, 96, 97, 71, 65, 73, 54, 52, 72, 55, 50, 58, 54, 74, 68, 55, 62, 57, 49, 87, 54, 61, 68, 102, 76, 55, 52, 61, 55, 71, 57, 78, 51, 76, 62, 73, 61, 68, 76, 84, 60, 89, 63, 66, 48, 56, 42, 59, 63, 67, 65, 64, 51, 90, 60, 61, 63, 80, 52, 99, 59, 63, 62, 64, 73, 62, 77, 74, 76, 88, 81, 58, 89, 56, 57, 53, 77, 66, 117, 66, 47, 73, 59, 52, 82, 62, 52, 69, 72, 115, 52, 145, 75, 49, 95, 64, 50, 67, 53, 52, 53, 46, 71, 74, 47, 49, 63, 50, 51, 67, 56, 62, 59, 53, 63, 79, 64, 56, 60, 65, 68, 102, 61, 60, 59, 58, 68, 68, 80, 60, 55, 74, 71, 55, 71, 50, 65, 64, 118, 70, 69, 66, 60, 65, 60, 67, 62, 50, 52, 62, 58, 50, 72, 55, 52, 73, 57, 40, 58, 77, 51, 65, 66, 69, 62, 61, 69, 61, 80, 64, 68, 68, 61, 78, 56, 55, 116, 58, 65, 67, 60, 71, 67, 66, 62, 52, 52, 59, 55, 110, 91, 57, 71, 69, 67, 64, 82, 68, 47, 57, 66, 57, 85, 48, 43, 65, 69, 58, 59, 80, 83, 67, 69, 61, 65, 51, 78, 66, 60, 67, 62, 41, 65, 73, 70, 69, 49, 56, 50, 68, 65, 68, 65, 67, 62, 67, 42, 58, 71, 67, 71, 56, 43, 67, 69, 111, 78, 62, 53, 65, 62, 72, 56, 67, 58, 55, 73, 60, 59, 56, 63, 81, 66, 70, 60, 88, 56, 61, 60, 77, 60, 74, 58, 88, 74, 52, 70, 56, 65, 75, 52, 68, 71, 69, 59, 132, 50, 49, 56, 67, 63, 73, 93, 69, 63, 58, 57, 75, 54, 47, 64, 74, 44, 68, 72, 59, 58, 70, 69, 71, 62, 69, 57, 60, 55, 52, 79, 64, 83, 56, 67, 70, 71, 55, 57, 70, 64, 70, 80, 70, 73, 83, 75, 77, 84, 91, 58, 48, 60, 55, 82, 72, 51, 47, 66, 77, 37, 61, 58, 58, 69, 61, 56, 53, 60, 63, 76, 98, 61, 67, 60, 54, 57, 59, 68, 78, 52, 61, 81, 77, 59, 62, 46, 45, 64, 52, 55, 68, 53, 78, 65, 51, 68, 75, 51, 62, 75, 54, 61, 61, 64, 80, 95, 74, 47, 52, 78, 57, 62, 70, 60, 63, 83, 68, 60, 66, 86, 79, 70, 56, 58, 86, 74, 86, 74, 53, 73, 77, 80, 75, 60, 59, 73, 54, 55, 59, 37, 63, 60, 45, 64, 67, 74, 55, 63, 57, 65, 63, 66, 64, 53, 71, 70, 79, 49, 53, 64, 86, 86, 65, 72, 69, 53, 84, 72, 55, 52, 70, 72, 62, 107, 94, 56, 74, 72, 64, 71, 79, 65, 64, 62, 59, 56, 57, 61, 85, 64, 99, 49, 64, 68, 59, 69, 64, 57, 73, 63, 55, 64, 62, 58, 77, 61, 54, 66, 56, 82, 76, 66, 87, 67, 70, 76, 62, 78, 66, 70, 65, 67, 62, 70, 68, 85, 59, 51, 44, 71, 57, 62, 68, 68, 70, 60, 110, 53, 71, 45, 42, 61, 63, 58, 70, 103, 63, 70, 69, 47, 65, 55, 64, 78, 63, 66, 65, 52, 54, 60, 72, 72, 54, 78, 65, 78, 60, 57, 84, 59, 57, 69, 63, 60, 51, 84, 79, 63, 59, 65, 60, 62, 72, 69, 48, 58, 70, 53, 67, 65, 56, 69, 74, 60, 91, 49, 71, 66, 72, 76, 51, 68, 67, 70, 68, 55, 56, 66, 52, 60, 57, 50, 57, 52, 55, 57, 73, 58, 62, 70, 71, 63, 56, 63, 86, 62, 79, 54, 49, 69, 76, 77, 75, 71, 71, 69, 54, 57, 66, 53, 93, 52, 91, 61, 91, 48, 53, 66, 86, 57, 70, 58, 80, 111, 55, 51, 72, 54, 56, 78, 48, 52, 66, 65, 65, 56, 64, 56, 52, 55, 54, 80, 64, 97, 61, 84, 74, 50, 49, 55, 68, 61, 82, 59, 67, 81, 71, 48, 67, 78, 77, 70, 65, 67, 55, 45, 63, 91, 65, 76, 81, 51, 66, 88, 63, 62, 77, 50, 60, 59, 63, 51, 70, 57, 59, 75, 70, 39, 76, 65, 60, 55, 58, 83, 79, 100, 63, 59, 86, 56, 65, 72, 55, 64, 69, 57, 57, 62, 81, 67, 49, 63, 61, 93, 68, 56, 59, 63, 63, 88, 76, 57, 55, 43, 57, 75, 83, 52, 92, 58, 66, 67, 57, 58, 69, 58, 64, 60, 76, 60, 57, 57, 68, 71, 59, 75, 82, 56, 57, 68, 58, 69, 61, 69, 58, 82, 98, 53, 63, 59, 58, 48, 50, 70, 63, 67, 81, 50, 56, 60, 62, 64, 64, 66, 73, 81, 78, 62, 69, 89, 83, 62, 65, 56, 63, 54, 66, 63, 56, 83, 61, 61, 57, 70, 68, 72, 134, 73, 120, 52, 58, 64, 85, 76, 63, 80, 99, 65, 58, 65, 62, 47, 59, 40, 67, 65, 73, 87, 60, 53, 111, 65, 75, 70, 61, 68, 61, 62, 74, 48, 66, 64, 75, 64, 43, 58, 71, 70, 49, 82, 86, 52, 52, 35, 65, 66, 51, 63, 55, 44, 60, 53, 58, 77, 61, 64, 70, 92, 71, 70, 50, 54, 76, 59, 68, 71, 66, 39, 58, 54, 61, 71, 58, 69, 78, 74, 94, 76, 76, 63, 69, 69, 80, 60, 63, 60, 69, 57, 47, 64, 58, 64, 64, 96, 70, 60, 64, 80, 70, 51, 57, 65, 51, 67, 56, 68, 54, 56, 74, 91, 51, 70, 38, 80, 68, 78, 66, 63, 50, 59, 51, 62, 80, 70, 58, 65, 57, 58, 68, 60, 89, 55, 74, 68, 55, 64, 81, 92, 66, 65, 73, 78, 60, 54, 56, 54, 72, 63, 98, 84, 88, 66, 52, 70, 58, 60, 43, 56, 75, 84, 59, 72, 54, 49, 64, 71, 83, 62, 54, 59, 101, 61, 68, 61, 71, 59, 76, 68, 54, 59, 59, 56, 65, 74, 49, 72, 85, 68, 84, 70, 66, 59, 52, 71, 72, 65, 73, 67, 63, 57, 66, 81, 62, 58, 57, 42, 69, 93, 85, 107, 63, 92, 63, 63, 48, 65, 59, 68, 89, 49, 60, 57, 48, 62, 85, 72, 84, 71, 55, 63, 108, 81, 68, 61, 53, 61, 52, 43, 59, 73, 63, 57, 66, 67, 65, 60, 65, 56, 80, 83, 64, 62, 63, 81, 63, 67, 77, 82, 68, 47, 63, 63, 61, 72, 66, 78, 91, 42, 63, 52, 61, 83, 133, 47, 56, 47, 94, 75, 65, 76, 49, 54, 68, 64, 63, 74, 66, 60, 62, 98, 67, 81, 58, 74, 48, 66, 72, 59, 65, 67, 65, 50, 47, 61, 66, 36, 46, 70, 63, 46, 89, 66, 73, 66, 69, 55, 72, 64, 75, 59, 61, 108, 53, 62, 64, 67, 67, 110, 86, 58, 63, 61, 95, 72, 62, 68, 81, 62, 80, 62, 82, 55, 62, 69, 93, 90, 77, 106, 58, 57, 64, 64, 68, 60, 66, 76, 82, 55, 73, 60, 60, 62, 86, 56, 70, 58, 68, 54, 83, 97, 63, 69, 55, 93, 48, 57, 69, 74, 71, 53, 51, 61, 74, 73, 58, 61, 53, 109, 60, 62, 61, 76, 63, 70, 70, 79, 46, 152, 61, 70, 58, 53, 55, 59, 57, 74, 56, 55, 63, 68, 80, 76, 59, 41, 63, 56, 66, 72, 60, 62, 72, 62, 74, 62, 61, 65, 79, 45, 44, 92, 91, 69, 60, 64, 76, 71, 76, 77, 63, 73, 80, 72, 105, 68, 56, 77, 58, 63, 71, 60, 78, 68, 104, 59, 94, 53, 64, 73, 57, 59, 60, 75, 51, 69, 58, 66, 66, 56, 59, 64, 49, 71, 69, 88, 86, 60, 64, 82, 78, 68, 65, 50, 69, 73, 52, 43, 79, 64, 42, 70, 66, 53, 106, 59, 73, 68, 61, 89, 73, 63, 58, 81, 56, 62, 89, 64, 68, 63, 70, 64, 75, 60, 75, 77, 55, 76, 62, 56, 58, 67, 58, 67, 56, 78, 63, 55, 72, 74, 65, 74, 66, 70, 77, 68, 76, 55, 51, 60, 79, 85, 68, 113, 59, 68, 57, 59, 53, 72, 66, 50, 73, 53, 64, 59, 65, 62, 57, 56, 68, 53, 55, 51, 64, 74, 77, 62, 70, 66, 50, 60, 61, 64, 88, 59, 72, 63, 60, 67, 59, 64, 52, 47, 61, 53, 72, 70, 55, 69, 71, 68, 82, 69, 76, 59, 81, 55, 84, 84, 95, 58, 61, 61, 72, 89, 67, 49, 84, 57, 47, 65, 78, 76, 53, 71, 79, 63, 59, 46, 53, 80, 65, 52, 65, 61, 77, 80, 71, 65, 51, 72, 56, 64, 54, 52, 62, 70, 46, 81, 64, 55, 59, 73, 63, 56, 80, 76, 54, 52, 67, 74, 45, 67, 60, 58, 53, 79, 64, 70, 57, 86, 67, 54, 71, 75, 65, 67, 55, 63, 59, 60, 108, 77, 73, 72, 67, 70, 65, 85, 59, 59, 51, 82, 73, 62, 45, 65, 68, 52, 78, 58, 54, 57, 56, 70, 57, 70, 57, 71, 73, 82, 55, 63, 58, 61, 68, 66, 60, 115, 56, 60, 67, 65, 59, 70, 69, 57, 46, 67, 92, 72, 60, 54, 63, 58, 56, 55, 75, 70, 64, 53, 74, 50, 69, 56, 58, 64, 54, 76, 60, 49, 66, 50, 115, 61, 47, 51, 62, 98, 68, 73, 64, 65, 59, 77, 56, 56, 45, 61, 67, 67, 66, 55, 67, 65, 57, 60, 70, 43, 56, 75, 104, 48, 68, 65, 59, 52, 64, 59, 61, 62, 125, 62, 54, 63, 66, 66, 61, 77, 82, 61, 67, 95, 52, 71, 57, 54, 96, 54, 62, 49, 62, 80, 60, 66, 61, 56, 68, 49, 58, 74, 54, 67, 65, 49, 62, 52, 75, 85, 65, 41, 42, 69, 70, 58, 42, 73, 81, 61, 58, 68, 71, 66, 79, 64, 56, 62, 71, 52, 99, 68, 75, 45, 56, 68, 67, 59, 90, 72, 57, 51, 67, 61, 72, 63, 69, 61, 52, 62, 97, 79, 58, 58, 53, 66, 63, 55, 67, 70, 88, 74, 77, 59, 70, 70, 96, 68, 56, 51, 69, 115, 67, 43, 73, 63, 80, 54, 66, 49, 56, 72, 66, 57, 74, 64, 80, 68, 62, 60, 75, 76, 46, 77, 50, 57, 57, 74, 73, 52, 77, 71, 67, 51, 67, 68, 58, 66, 67, 66, 85, 81, 59, 66, 65, 64, 70, 71, 85, 62, 63, 69, 66, 57, 78, 59, 38, 63, 77, 68, 57, 56, 55, 63, 68, 79, 67, 75, 65, 61, 51, 92, 81, 75, 73, 66, 65, 68, 61, 63, 73, 67, 60, 65, 64, 67, 72, 71, 66, 59, 77, 81, 49, 53, 77, 45, 65, 90, 74, 75, 51, 88, 87, 50, 36, 76, 63, 39, 60, 62, 57, 59, 60, 54, 66, 57, 57, 59, 70, 58, 64, 54, 62, 80, 67, 102, 121, 71, 70, 54, 62, 43, 60, 73, 72, 75, 57, 60, 54, 50, 52, 53, 139, 49, 156, 42, 67, 90, 72, 50, 67, 68, 96, 70, 62, 64, 73, 78, 69, 62, 59, 58, 64, 75, 65, 68, 107, 56, 54, 46, 73, 79, 63, 72, 80, 51, 100, 63, 70, 66, 66, 59, 58, 59, 48, 66, 116, 55, 59, 54, 64, 48, 68, 55, 52, 56, 71, 64, 78, 74, 65, 66, 69, 72, 54, 59, 67, 69, 61, 46, 60, 58, 55, 44, 57, 58, 57, 70, 70, 64, 60, 65, 109, 61, 46, 63, 77, 64, 47, 64, 61, 59, 50, 61, 62, 73, 40, 62, 69, 74, 86, 61, 77, 65, 72, 63, 57, 63, 52, 63, 58, 90, 63, 45, 76, 60, 63, 69, 77, 52, 61, 59, 66, 74, 60, 64, 61, 58, 66, 58, 84, 63, 53, 90, 76, 62, 77, 50, 60, 64, 35, 66, 51, 59, 77, 65, 74, 59, 50, 56, 48, 61, 59, 45, 61, 53, 70, 64, 51, 69, 65, 57, 78, 64, 70, 61, 55, 64, 51, 66, 62, 61, 60, 65, 54, 75, 75, 71, 58, 57, 69, 51, 54, 69, 76, 63, 67, 74, 64, 65, 60, 69, 96, 66, 103, 102, 60, 83, 60, 54, 61, 62, 76, 87, 64, 85, 68, 77, 54, 68, 76, 59, 65, 50, 105, 106, 76, 90, 65, 70, 57, 66, 48, 68, 89, 69, 71, 78, 57, 66, 48, 88, 84, 53, 58, 68, 111, 77, 57, 64, 61, 69, 57, 78, 53, 50, 53, 60, 56, 67, 48, 69, 75, 58, 82, 80, 79, 60, 49, 95, 63, 72, 61, 74, 63, 62, 54, 68, 61, 54, 49, 67, 46, 48, 98, 64, 71, 68, 119, 67, 51, 82, 76, 56, 74, 77, 44, 48, 75, 47, 55, 114, 72, 75, 69, 54, 53, 69, 74, 60, 53, 70, 89, 65, 84, 70, 74, 80, 55, 54, 64, 68, 52, 83, 58, 57, 62, 54, 50, 73, 85, 55, 66, 64, 64, 58, 85, 87, 49, 84, 60, 68, 67, 98, 87, 66, 60, 48, 87, 52, 49, 77, 71, 80, 75, 52, 86, 58, 67, 54, 46, 108, 57, 83, 66, 63, 55, 69, 60, 56, 57, 69, 90, 57, 78, 73, 59, 41, 64, 58, 63, 55, 71, 74, 73, 59, 69, 44, 73, 58, 59, 60, 64, 73, 50, 61, 51, 58, 98, 72, 64, 74, 74, 50, 75, 43, 66, 63, 89, 63, 56, 48, 80, 131, 62, 71, 55, 69, 60, 68, 59, 73, 86, 64, 49, 83, 72, 71, 69, 88, 60, 58, 72, 64, 54, 54, 55, 45, 87, 79, 82, 62, 66, 85, 42, 77, 85, 69, 66, 68, 84, 63, 62, 71, 41, 63, 73, 69, 78, 62, 69, 59, 46, 77, 65, 44, 50, 49, 92, 66, 78, 54, 66, 57, 58, 63, 62, 51, 72, 50, 69, 71, 53, 66, 61, 64, 60, 50, 61, 83, 67, 62, 60, 58, 62, 49, 68, 63, 78, 79, 53, 58, 55, 61, 85, 68, 61, 70, 136, 43, 64, 57, 50, 95, 70, 70, 50, 61, 66, 72, 58, 53, 80, 71, 74, 80, 72, 47, 61, 73, 62, 52, 70, 64, 66, 64, 72, 79, 60, 92, 56, 68, 60, 70, 52, 68, 54, 49, 81, 61, 76, 52, 59, 62, 60, 59, 93, 66, 53, 58, 51, 58, 42, 71, 45, 68, 51, 56, 65, 74, 71, 54, 51, 64, 70, 73, 76, 62, 71, 66, 82, 68, 68, 67, 54, 44, 58, 68, 42, 76, 70, 46, 76, 58, 48, 73, 62, 95, 65, 57, 68, 70, 79, 56, 49, 57, 88, 70, 60, 65, 69, 70, 77, 82, 80, 71, 64, 66, 70, 76, 43, 53, 46, 54, 55, 42, 63, 59, 40, 83, 67, 65, 66, 62, 66, 41, 61, 62, 71, 48, 72, 77, 53, 56, 64, 70, 81, 75, 53, 73, 55, 87, 72, 62, 58, 67, 53, 66, 63, 60, 67, 58, 57, 68, 71, 53, 79, 72, 80, 59, 69, 94, 66, 78, 60, 79, 66, 62, 48, 73, 60, 77, 67, 81, 67, 62, 118, 70, 71, 57, 61, 52, 82, 67, 76, 67, 65, 56, 70, 63, 52, 52, 67, 71, 55, 64, 67, 58, 79, 75, 63, 65, 68, 59, 71, 91, 58, 65, 51, 83, 72, 67, 63, 78, 85, 85, 62, 96, 63, 79, 59, 65, 67, 32, 95, 72, 81, 59, 70, 61, 58, 66, 70, 67, 56, 64, 53, 68, 73, 68, 61, 66, 73, 75, 62, 60, 65, 46, 80, 34, 51, 47, 68, 99, 76, 61, 65, 59, 71, 58, 50, 59, 40, 80, 67, 88, 44, 63, 70, 65, 56, 61, 79, 58, 66, 56, 80, 58, 86, 49, 73, 67, 58, 67, 64, 74, 105, 62, 58, 53, 50, 68, 60, 63, 60, 58, 51, 73, 64, 82, 66, 70, 65, 77, 57, 62, 52, 60, 67, 67, 91, 66, 55, 54, 69, 63, 60, 51, 65, 63, 55, 67, 59, 57, 65, 64, 53, 56, 73, 61, 60, 71, 76, 52, 87, 61, 71, 70, 80, 53, 69, 67, 78, 28, 95, 67, 83, 75, 56, 50, 54, 60, 80, 67, 73, 67, 80, 66, 66, 49, 55, 55, 58, 55, 94, 53, 63, 69, 65, 62, 59, 80, 67, 54, 80, 87, 79, 69, 54, 66, 58, 69, 67, 65, 57, 88, 55, 56, 91, 50, 64, 86, 69, 68, 73, 69, 68, 55, 53, 82, 51, 79, 60, 52, 52, 78, 69, 58, 38, 76, 85, 49, 68, 54, 55, 65, 70, 67, 75, 94, 68, 48, 60, 55, 56, 31, 62, 52, 54, 48, 56, 51, 60, 59, 79, 54, 59, 57, 86, 70, 66, 59, 65, 42, 62, 68, 63, 59, 55, 71, 39, 61, 53, 73, 53, 69, 72, 70, 40, 68, 71, 70, 58, 50, 94, 66, 51, 98, 64, 45, 65, 64, 59, 64, 50, 79, 90, 60, 71, 90, 59, 49, 84, 66, 53, 68, 64, 59, 99, 62, 71, 62, 79, 71, 39, 56, 54, 62, 65, 47, 57, 75, 56, 64, 98, 63, 57, 86, 46, 73, 89, 51, 75, 58, 64, 54, 76, 67, 104, 74, 55, 57, 73, 66, 57, 66, 103, 63, 79, 63, 71, 51, 68, 70, 50, 64, 52, 65, 54, 65, 61, 89, 57, 73, 57, 74, 65, 46, 67, 84, 61, 75, 76, 70, 69, 57, 67, 49, 72, 81, 58, 78, 96, 86, 62, 57, 71, 78, 44, 61, 115, 66, 85, 56, 72, 37, 105, 70, 80, 54, 68, 66, 59, 65, 49, 56, 69, 62, 61, 74, 63, 59, 77, 51, 50, 51, 50, 56, 71, 59, 62, 55, 74, 76, 54, 63, 129, 50, 75, 90, 54, 55, 55, 97, 64, 73, 61, 69, 48, 63, 59, 54, 60, 70, 53, 65, 54, 77, 57, 62, 62, 64, 80, 66, 58, 44, 65, 76, 40, 72, 59, 74, 79, 78, 66, 61, 69, 67, 59, 74, 61, 76, 62, 59, 69, 69, 62, 67, 85, 71, 66, 85, 52, 65, 62, 74, 66, 60, 69, 69, 56, 91, 80, 70, 55, 36, 45, 67, 60, 51, 62, 67, 72, 66, 73, 64, 38, 56, 71, 64, 72, 57, 66, 58, 97, 57, 59, 51, 44, 62, 46, 76, 71, 70, 64, 48, 50, 41, 60, 49, 50, 51, 71, 76, 70, 62, 81, 85, 42, 56, 58, 76, 45, 68, 63, 55, 63, 79, 46, 59, 77, 57, 54, 56, 60, 50, 53, 38, 67, 89, 97, 67, 69, 65, 77, 75, 63, 72, 42, 63, 63, 69, 53, 125, 47, 75, 77, 57, 59, 79, 111, 93, 42, 57, 41, 53, 76, 55, 71, 88, 58, 56, 55, 67, 87, 72, 52, 70, 49, 54, 55, 58, 66, 55, 44, 71, 81, 77, 53, 55, 81, 59, 54, 57, 64, 70, 63, 67, 62, 49, 51, 56, 58, 78, 56, 85, 66, 87, 70, 86, 56, 91, 49, 63, 99, 52, 67, 53, 63, 68, 64, 77, 64, 65, 59, 111, 69, 46, 53, 51, 71, 116, 81, 72, 66, 42, 51, 54, 72, 52, 63, 72, 50, 39, 68, 74, 70, 53, 60, 75, 62, 79, 88, 52, 48, 85, 57, 55, 137, 85, 58, 48, 54, 92, 65, 66, 86, 54, 61, 65, 79, 81, 60, 65, 68, 60, 71, 53, 52, 55, 56, 53, 48, 63, 68, 63, 70, 59, 72, 62, 67, 65, 69, 53, 52, 48, 64, 77, 69, 68, 76, 51, 54, 45, 68, 60, 50, 65, 55, 59, 59, 58, 88, 61, 57, 74, 58, 50, 66, 69, 60, 64, 51, 43, 103, 56, 107, 83, 75, 50, 79, 57, 71, 69, 59, 100, 75, 48, 46, 74, 94, 49, 62, 80, 65, 70, 66, 81, 72, 68, 60, 67, 43, 77, 51, 74, 60, 66, 108, 64, 86, 68, 67, 88, 72, 60, 67, 61, 71, 65, 67, 49, 70, 90, 46, 77, 95, 57, 43, 42, 58, 68, 82, 70, 70, 56, 90, 76, 47, 65, 57, 53, 54, 48, 63, 61, 55, 63, 70, 56, 47, 59, 75, 78, 45, 63, 56, 66, 72, 46, 82, 68, 50, 86, 65, 89, 105, 59, 103, 56, 56, 61, 115, 74, 71, 56, 66, 80, 63, 68, 56, 69, 59, 60, 69, 45, 67, 49, 79, 64, 86, 56, 68, 90, 67, 39, 53, 119, 49, 83, 69, 58, 56, 79, 60, 88, 96, 75, 69, 54, 57, 57, 64, 49, 69, 62, 64, 40, 56, 72, 66, 45, 72, 70, 85, 57, 44, 82, 99, 59, 65, 50, 65, 56, 65, 47, 90, 83, 60, 67, 51, 84, 57, 63, 70, 56, 64, 45, 49, 55, 77, 60, 66, 54, 53, 74, 55, 46, 63, 96, 74, 58, 79, 58, 64, 76, 99, 61, 76, 61, 102, 55, 69, 50, 59, 55, 66, 49, 65, 56, 77, 61, 72, 93, 55, 55, 62, 48, 81, 45, 68, 56, 73, 45, 76, 62, 86, 67, 72, 94, 69, 65, 56, 69, 50, 66, 48, 75, 84, 73, 58, 85, 73, 91, 62, 60, 62, 59, 77, 60, 53, 142, 53, 61, 50, 62, 74, 61, 57, 55, 60, 63, 59, 65, 50, 93, 65, 65, 58, 66, 65, 73, 44, 66, 74, 71, 68, 98, 52, 50, 130, 81, 47, 69, 43, 65, 60, 53, 56, 61, 69, 82, 55, 62, 63, 64, 54, 76, 56, 77, 108, 58, 48, 68, 74, 61, 66, 52, 57, 48, 46, 84, 32, 47, 87, 51, 74, 92, 61, 80, 68, 77, 79, 46, 60, 73, 59, 78, 82, 55, 71, 60, 83, 48, 52, 82, 69, 82, 42, 64, 79, 56, 82, 55, 45, 67, 70, 72, 83, 79, 54, 65, 58, 84, 45, 50, 47, 87, 70, 59, 65, 53, 51, 66, 66, 70, 86, 70, 58, 54, 89, 60, 79, 54, 76, 80, 84, 65, 57, 58, 81, 78, 63, 57, 81, 49, 50, 49, 61, 67, 69, 65, 53, 63, 53, 58, 59, 70, 142, 70, 56, 73, 53, 89, 80, 87, 58, 78, 88, 80, 71, 81, 70, 52, 67, 82, 52, 40, 63, 61, 113, 77, 59, 55, 57, 57, 48, 36, 53, 54, 52, 65, 63, 80, 96, 83, 51, 67, 102, 59, 46, 70, 75, 71, 91, 61, 68, 91, 122, 75, 66, 69, 57, 86, 57, 69, 75, 81, 72, 70, 45, 69, 74, 65, 49, 66, 81, 64, 62, 51, 54, 61, 74, 43, 56, 67, 61, 63, 72, 60, 55, 67, 63, 60, 67, 65, 62, 72, 71, 84, 55, 48, 70, 62, 46, 53, 79, 60, 64, 71, 65, 64, 59, 108, 64, 56, 66, 70, 105, 65, 60, 77, 50, 68, 80, 60, 56, 44, 69, 54, 61, 52, 62, 62, 62, 68, 56, 83, 76, 65, 54, 55, 93, 75, 70, 74, 56, 52, 54, 66, 87, 60, 94, 89, 66, 53, 50, 70, 59, 57, 90, 49, 48, 61, 67, 60, 60, 78, 79, 69, 48, 68, 63, 65, 58, 61, 48, 58, 66, 53, 88, 60, 57, 70, 66, 88, 61, 81, 46, 59, 59, 63, 53, 75, 78, 53, 44, 66, 50, 57, 119, 65, 63, 60, 47, 47, 41, 68, 66, 63, 93, 68, 52, 62, 63, 62, 74, 60, 73, 67, 76, 72, 57, 71, 94, 56, 54, 58, 59, 64, 59, 55, 65, 52, 61, 77, 69, 74, 48, 83, 65, 60, 55, 64, 62, 63, 74, 94, 60, 91, 50, 55, 63, 76, 87, 67, 60, 44, 73, 63, 86, 67, 60, 72, 41, 74, 52, 55, 76, 65, 58, 77, 68, 49, 51, 79, 84, 88, 66, 64, 53, 58, 96, 72, 95, 81, 59, 64, 52, 45, 64, 51, 58, 48, 90, 55, 62, 55, 81, 62, 83, 65, 64, 68, 58, 58, 57, 50, 52, 66, 87, 112, 63, 68, 62, 58, 60, 56, 63, 70, 109, 94, 60, 70, 77, 92, 71, 73, 64, 50, 71, 70, 62, 70, 53, 66, 61, 75, 75, 65, 67, 80, 77, 55, 56, 43, 71, 59, 73, 89, 53, 78, 72, 68, 57, 45, 56, 49, 52, 64, 47, 75, 55, 64, 64, 69, 50, 69, 71, 53, 52, 62, 65, 68, 58, 61, 64, 60, 70, 81, 71, 52, 91, 62, 82, 68, 65, 65, 46, 58, 68, 72, 57, 47, 69, 60, 51, 61, 73, 66, 50, 55, 64, 49, 53, 65, 47, 88, 92, 73, 63, 96, 51, 67, 55, 57, 67, 60, 72, 61, 61, 56, 64, 61, 65, 54, 55, 66, 54, 62, 65, 102, 56, 91, 64, 77, 74, 57, 77, 58, 63, 58, 63, 62, 107, 72, 76, 59, 54, 47, 67, 50, 63, 34, 82, 64, 59, 59, 104, 63, 61, 60, 55, 64, 104, 64, 51, 79, 52, 67, 90, 63, 70, 63, 125, 67, 53, 65, 72, 51, 65, 78, 56, 59, 60, 63, 71, 71, 62, 48, 53, 68, 69, 58, 39, 67, 99, 91, 81, 64, 85, 59, 85, 72, 47, 58, 64, 66, 61, 85, 81, 81, 71, 52, 81, 68, 58, 52, 49, 64, 61, 51, 61, 62, 97, 102, 71, 82, 53, 98, 60, 57, 63, 64, 55, 50, 71, 110, 83, 74, 80, 62, 61, 41, 73, 61, 58, 53, 65, 67, 72, 82, 62, 71, 58, 71, 102, 71, 79, 63, 73, 54, 62, 54, 84, 71, 45, 66, 60, 58, 69, 69, 79, 78, 63, 66, 61, 67, 53, 65, 66, 120, 53, 53, 49, 71, 66, 73, 112, 105, 71, 54, 70, 67, 48, 60, 60, 56, 71, 64, 75, 59, 71, 64, 54, 77, 52, 86, 63, 63, 63, 66, 50, 61, 71, 91, 66, 68, 43, 52, 65, 93, 60, 59, 52, 66, 67, 68, 91, 57, 62, 59, 66, 62, 62, 35, 59, 59, 72, 93, 90, 84, 61, 63, 55, 83, 62, 58, 64, 58, 78, 62, 50, 55, 37, 63, 76, 57, 69, 57, 64, 59, 71, 60, 51, 66, 64, 52, 66, 56, 58, 74, 64, 72, 74, 70, 93, 79, 97, 60, 69, 53, 60, 55, 68, 52, 58, 43, 60, 65, 51, 69, 62, 46, 98, 43, 57, 87, 78, 98, 68, 68, 61, 55, 61, 53, 63, 53, 75, 47, 42, 72, 64, 54, 62, 73, 63, 70, 71, 65, 62, 68, 64, 60, 61, 36, 77, 72, 63, 44, 59, 68, 139, 62, 68, 62, 67, 56, 75, 57, 74, 102, 44, 74, 83, 67, 70, 57, 60, 81, 63, 54, 80, 58, 62, 76, 67, 50, 41, 58, 60, 66, 52, 60, 59, 61, 77, 74, 70, 71, 64, 49, 66, 52, 51, 83, 57, 69, 63, 45, 54, 54, 60, 65, 72, 70, 66, 49, 68, 50, 64, 61, 63, 109, 62, 52, 68, 62, 59, 101, 82, 62, 74, 65, 52, 58, 71, 48, 70, 56, 74, 71, 88, 93, 54, 66, 76, 66, 65, 62, 78, 63, 66, 71, 53, 82, 49, 60, 79, 74, 70, 70, 61, 124, 88, 83, 76, 48, 59, 60, 100, 64, 59, 59, 62, 68, 71, 65, 61, 59, 107, 65, 60, 72, 53, 40, 55, 70, 60, 71, 72, 59, 74, 64, 69, 57, 59, 80, 62, 79, 84, 55, 54, 52, 55, 72, 65, 49, 74, 56, 49, 80, 66, 58, 48, 72, 73, 61, 50, 53, 70, 54, 70, 57, 85, 56, 61, 66, 73, 75, 54, 55, 76, 122, 62, 67, 84, 71, 80, 71, 57, 72, 68, 71, 57, 79, 69, 76, 71, 53, 81, 74, 59, 73, 58, 52, 66, 56, 71, 69, 64, 56, 58, 57, 58, 70, 51, 54, 82, 65, 61, 66, 75, 64, 79, 58, 60, 58, 73, 54, 50, 93, 55, 103, 103, 65, 55, 37, 51, 73, 60, 62, 56, 55, 62, 49, 129, 77, 60, 73, 54, 60, 61, 72, 73, 61, 48, 64, 65, 67, 62, 52, 86, 131, 73, 132, 75, 57, 64, 67, 76, 74, 73, 84, 57, 46, 47, 78, 51, 60, 66, 59, 71, 68, 64, 72, 68, 50, 64, 58, 58, 59, 61, 63, 78, 69, 65, 55, 65, 49, 52, 64, 64, 74, 51, 39, 70, 55, 72, 64, 57, 75, 57, 58, 81, 58, 62, 50, 63, 54, 52, 78, 98, 60, 61, 72, 78, 69, 79, 55, 65, 44, 56, 64, 84, 69, 57, 51, 71, 48, 65, 64, 66, 55, 77, 64, 64, 70, 47, 54, 60, 61, 61, 55, 61, 68, 81, 73, 83, 61, 111, 52, 69, 75, 68, 64, 58, 92, 54, 61, 59, 64, 70, 52, 65, 76, 75, 67, 65, 58, 86, 65, 56, 59, 71, 53, 73, 54, 66, 62, 81, 79, 85, 60, 52, 75, 65, 60, 54, 61, 55, 57, 74, 117, 50, 72, 80, 61, 57, 77, 71, 83, 71, 75, 78, 41, 63, 66, 66, 64, 71, 52, 88, 61, 62, 60, 81, 61, 60, 63, 79, 67, 56, 53, 54, 65, 61, 74, 60, 65, 60, 93, 88, 54, 49, 71, 76, 62, 62, 58, 40, 89, 60, 51, 58, 57, 54, 59, 63, 83, 64, 67, 71, 60, 66, 57, 80, 75, 62, 87, 69, 72, 71, 133, 67, 67, 54, 69, 96, 76, 73, 57, 56, 51, 57, 72, 61, 54, 68, 79, 69, 56, 66, 54, 55, 80, 70, 67, 58, 36, 75, 47, 57, 64, 67, 76, 56, 52, 71, 67, 57, 78, 71, 80, 55, 108, 89, 98, 57, 60, 56, 101, 56, 67, 69, 66, 106, 62, 64, 51, 61, 54, 63, 70, 64, 66, 56, 70, 47, 66, 59, 59, 72, 66, 76, 55, 58, 74, 74, 90, 77, 53, 68, 65, 62, 67, 59, 64, 74, 84, 61, 98, 79, 63, 70, 66, 84, 58, 48, 71, 82, 78, 69, 62, 54, 65, 60, 55, 59, 65, 82, 71, 69, 63, 61, 59, 70, 57, 69, 92, 69, 64, 71, 119, 72, 48, 66, 52, 64, 68, 50, 71, 62, 62, 83, 51, 59, 68, 97, 57, 41, 58, 59, 112, 62, 62, 60, 59, 54, 97, 74, 73, 68, 55, 74, 54, 57, 77, 68, 73, 64, 64, 68, 67, 61, 53, 69, 85, 67, 59, 82, 73, 70, 69, 66, 66, 80, 93, 70, 51, 69, 50, 103, 51, 79, 59, 65, 59, 69, 49, 51, 71, 66, 122, 55, 54, 65, 46, 57, 77, 107, 56, 52, 51, 69, 57, 63, 61, 55, 50, 82, 76, 57, 49, 63, 64, 67, 64, 84, 56, 57, 67, 75, 78, 60, 57, 69, 58, 55, 50, 69, 54, 78, 60, 80, 63, 58, 69, 59, 67, 49, 72, 89, 66, 69, 41, 82, 51, 81, 73, 65, 62, 65, 71, 62, 100, 79, 74, 44, 56, 47, 50, 57, 81, 61, 72, 59, 57, 67, 73, 53, 54, 62, 88, 54, 56, 67, 69, 71, 60, 53, 63, 52, 108, 61, 73, 56, 59, 82, 70, 56, 63, 73, 70, 58, 52, 47, 66, 57, 58, 69, 70, 58, 45, 68, 68, 74, 66, 55, 95, 89, 62, 73, 53, 55, 60, 50, 94, 65, 61, 78, 73, 93, 74, 64, 89, 68, 142, 57, 70, 58, 61, 66, 70, 75, 55, 87, 66, 75, 58, 58, 80, 66, 78, 75, 72, 72, 63, 73, 51, 55, 71, 60, 70, 66, 77, 76, 93, 80, 76, 73, 67, 74, 64, 62, 56, 69, 45, 67, 53, 71, 74, 89, 46, 69, 75, 86, 95, 56, 42, 69, 65, 54, 51, 81, 92, 58, 47, 56, 81, 94, 76, 66, 59, 67, 70, 61, 59, 68, 62, 45, 67, 36, 67, 49, 63, 115, 132, 73, 49, 79, 51, 57, 66, 82, 65, 65, 56, 71, 45, 72, 66, 51, 47, 61, 76, 64, 58, 90, 74, 65, 50, 60, 74, 67, 60, 65, 62, 55, 62, 83, 59, 51, 62, 75, 43, 60, 66, 64, 57, 48, 57, 72, 43, 65, 64, 70, 68, 65, 68, 68, 60, 82, 55, 57, 60, 65, 86, 60, 72, 64, 66, 51, 58, 90, 59, 54, 103, 73, 60, 63, 68, 60, 87, 38, 102, 74, 69, 70, 46, 51, 73, 77, 63, 61, 65, 53, 75, 52, 70, 60, 60, 53, 59, 129, 53, 93, 62, 62, 63, 57, 64, 56, 64, 67, 78, 82, 75, 53, 73, 67, 55, 52, 76, 57, 55, 66, 55, 64, 90, 66, 62, 78, 58, 62, 62, 53, 74, 72, 75, 58, 61, 64, 67, 54, 71, 66, 56, 51, 80, 75, 69, 57, 64, 65, 60, 60, 66, 76, 63, 63, 55, 66, 65, 50, 92, 78, 60, 56, 84, 57, 57, 55, 60, 56, 59, 69, 80, 74, 71, 67, 80, 67, 59, 65, 84, 79, 58, 75, 80, 67, 56, 70, 69, 67, 71, 55, 68, 83, 90, 74, 57, 63, 48, 60, 77, 61, 84, 71, 34, 51, 52, 64, 56, 80, 60, 71, 64, 56, 59, 58, 64, 103, 64, 46, 59, 57, 82, 59, 55, 73, 49, 73, 73, 55, 79, 95, 63, 77, 65, 59, 61, 57, 63, 60, 60, 61, 65, 54, 60, 70, 53, 66, 67, 90, 61, 54, 54, 95, 55, 94, 58, 55, 46, 113, 62, 57, 57, 62, 73, 71, 66, 59, 54, 64, 72, 79, 60, 75, 60, 72, 67, 75, 76, 70, 75, 50, 51, 61, 58, 57, 50, 67, 73, 58, 86, 71, 60, 58, 65, 50, 65, 62, 67, 72, 50, 60, 67, 55, 85, 66, 80, 73, 54, 61, 64, 73, 73, 79, 71, 74, 83, 64, 66, 66, 67, 76, 79, 78, 67, 63, 69, 89, 62, 54, 55, 68, 58, 66, 60, 66, 55, 58, 73, 47, 59, 63, 71, 73, 72, 66, 57, 53, 78, 56, 49, 62, 62, 68, 69, 63, 103, 86, 72, 88, 85, 75, 87, 61, 65, 66, 72, 64, 86, 75, 57, 53, 74, 80, 62, 56, 52, 63, 48, 59, 55, 52, 85, 75, 60, 58, 57, 67, 60, 79, 54, 68, 87, 70, 72, 70, 63, 56, 63, 67, 82, 63, 55, 71, 72, 76, 87, 48, 58, 65, 58, 57, 80, 52, 62, 64, 69, 59, 49, 58, 72, 56, 61, 55, 81, 68, 79, 59, 55, 66, 54, 73, 68, 53, 71, 65, 78, 66, 60, 60, 61, 51, 62, 65, 107, 55, 53, 63, 52, 60, 79, 59, 78, 76, 81, 83, 64, 68, 71, 68, 65, 67, 67, 66, 79, 58, 95, 69, 45, 56, 60, 75, 41, 57, 59, 66, 58, 57, 72, 65, 56, 68, 96, 63, 50, 68, 59, 74, 93, 52, 53, 59, 64, 72, 63, 64, 42, 104, 77, 61, 55, 81, 68, 57, 61, 64, 64, 67, 79, 63, 75, 46, 67, 66, 63, 62, 53, 51, 72, 68, 74, 78, 67, 65, 74, 67, 69, 64, 52, 58, 64, 66, 60, 43, 68, 59, 66, 62, 91, 63, 73, 81, 64, 53, 51, 66, 69, 80, 90, 56, 55, 54, 61, 60, 74, 101, 48, 63, 91, 86, 68, 88, 69, 54, 71, 72, 60, 52, 61, 60, 60, 39, 48, 55, 59, 75, 49, 55, 60, 50, 48, 39, 54, 57, 66, 56, 59, 66, 89, 85, 111, 70, 52, 85, 56, 63, 51, 45, 67, 73, 82, 59, 63, 60, 69, 51, 64, 53, 70, 53, 76, 63, 78, 75, 58, 77, 55, 49, 90, 73, 75, 59, 80, 60, 69, 60, 62, 81, 80, 57, 87, 71, 65, 54, 61, 57, 54, 50, 63, 63, 57, 63, 51, 96, 105, 97, 55, 69, 104, 70, 59, 73, 75, 68, 76, 90, 49, 66, 66, 55, 64, 63, 63, 77, 80, 59, 60, 57, 54, 61, 69, 68, 80, 62, 60, 46, 53, 67, 64, 76, 71, 51, 58, 78, 94, 47, 71, 59, 99, 55, 74, 49, 95, 58, 59, 77, 79, 47, 93, 71, 53, 55, 66, 60, 58, 55, 53, 63, 58, 76, 56, 44, 92, 52, 54, 79, 83, 70, 67, 59, 67, 66, 61, 78, 50, 65, 66, 68, 76, 73, 64, 51, 99, 66, 58, 72, 66, 59, 77, 57, 61, 54, 104, 63, 57, 68, 52, 60, 56, 83, 57, 60, 59, 90, 62, 59, 70, 72, 59, 47, 60, 48, 120, 59, 58, 59, 61, 61, 91, 55, 104, 55, 61, 58, 63, 58, 78, 61, 95, 72, 59, 64, 62, 60, 48, 61, 95, 68, 58, 69, 70, 61, 53, 63, 59, 55, 92, 43, 49, 58, 58, 109, 53, 54, 103, 64, 61, 72, 53, 48, 60, 70, 46, 51, 59, 61, 72, 52, 48, 76, 75, 52, 52, 76, 49, 61, 48, 66, 60, 79, 58, 53, 55, 56, 56, 67, 54, 78, 66, 59, 63, 78, 55, 51, 60, 51, 59, 57, 77, 57, 72, 66, 59, 91, 65, 64, 59, 59, 70, 53, 61, 50, 67, 83, 52, 73, 93, 58, 80, 61, 64, 64, 69, 92, 79, 57, 65, 56, 66, 70, 63, 63, 74, 96, 56, 77, 85, 65, 76, 68, 61, 52, 68, 64, 51, 57, 50, 59, 50, 63, 77, 55, 138, 63, 88, 56, 107, 56, 57, 49, 54, 52, 50, 50, 56, 61, 61, 71, 50, 71, 55, 58, 60, 75, 80, 63, 73, 93, 75, 116, 73, 64, 73, 51, 80, 62, 74, 48, 58, 68, 67, 58, 61, 75, 69, 75, 120, 63, 58, 62, 67, 55, 81, 51, 57, 57, 53, 40, 67, 85, 62, 55, 65, 56, 64, 88, 77, 60, 81, 80, 49, 68, 55, 54, 76, 76, 65, 99, 71, 57, 61, 83, 59, 58, 53, 77, 89, 51, 68, 68, 83, 68, 53, 60, 56, 82, 100, 56, 90, 72, 90, 65, 90, 67, 102, 61, 66, 47, 67, 86, 84, 72, 72, 66, 78, 83, 66, 77, 61, 76, 58, 51, 77, 63, 62, 116, 139, 59, 50, 87, 69, 61, 77, 78, 63, 69, 69, 67, 74, 57, 63, 48, 63, 51, 103, 80, 62, 67, 70, 62, 57, 78, 66, 70, 61, 61, 55, 56, 77, 56, 70, 86, 70, 81, 51, 53, 45, 72, 66, 65, 59, 58, 51, 69, 52, 69, 64, 60, 58, 63, 56, 63, 50, 61, 71, 66, 73, 56, 66, 69, 72, 47, 48, 89, 64, 50, 51, 59, 49, 68, 51, 61, 41, 50, 79, 106, 81, 72, 75, 57, 57, 61, 45, 68, 50, 72, 102, 85, 84, 36, 63, 54, 98, 124, 72, 60, 52, 80, 51, 88, 68, 67, 64, 56, 79, 51, 57, 64, 57, 67, 65, 58, 69, 62, 66, 78, 59, 67, 70, 56, 56, 82, 67, 73, 53, 48, 56, 63, 76, 55, 93, 54, 68, 71, 73, 60, 63, 70, 51, 56, 62, 60, 60, 75, 59, 56, 42, 57, 56, 50, 61, 54, 55, 55, 75, 58, 57, 65, 62, 54, 72, 51, 51, 63, 61, 67, 56, 71, 76, 44, 84, 67, 57, 70, 82, 61, 67, 79, 62, 61, 71, 57, 76, 68, 76, 58, 50, 71, 61, 76, 55, 64, 80, 56, 69, 39, 56, 49, 67, 70, 59, 82, 84, 51, 51, 81, 64, 65, 79, 51, 53, 58, 60, 77, 40, 58, 71, 73, 53, 62, 65, 94, 91, 50, 89, 66, 55, 63, 68, 52, 62, 60, 58, 66, 61, 67, 62, 59, 57, 72, 63, 72, 69, 96, 59, 54, 83, 80, 88, 95, 69, 62, 66, 60, 53, 52, 50, 56, 64, 68, 78, 55, 65, 47, 64, 58, 69, 60, 60, 79, 64, 111, 86, 97, 64, 76, 57, 49, 58, 61, 73, 44, 53, 72, 90, 66, 51, 70, 55, 62, 62, 48, 72, 63, 56, 65, 67, 63, 49, 77, 81, 59, 54, 63, 72, 56, 62, 63, 66, 50, 52, 55, 65, 68, 55, 80, 85, 76, 79, 69, 70, 64, 88, 66, 60, 57, 64, 49, 55, 68, 63, 60, 65, 59, 60, 73, 65, 61, 83, 67, 85, 56, 88, 44, 61, 71, 58, 57, 58, 66, 114, 62, 54, 74, 74, 67, 95, 72, 68, 47, 94, 75, 71, 49, 59, 68, 90, 84, 65, 53, 65, 74, 70, 52, 59, 75, 94, 65, 56, 53, 68, 82, 76, 75, 60, 51, 65, 90, 50, 64, 56, 55, 44, 69, 71, 102, 65, 51, 62, 63, 64, 73, 67, 57, 76, 63, 90, 59, 61, 58, 60, 54, 84, 59, 83, 61, 58, 64, 74, 85, 79, 54, 58, 65, 57, 75, 66, 70, 67, 62, 69, 84, 59, 58, 55, 68, 97, 59, 76, 55, 58, 64, 84, 51, 73, 55, 62, 80, 60, 69, 75, 57, 62, 70, 62, 53, 69, 58, 70, 53, 69, 48, 60, 51, 66, 57, 70, 57, 54, 41, 56, 55, 48, 67, 90, 66, 92, 90, 64, 78, 58, 69, 80, 61, 64, 52, 60, 92, 55, 64, 56, 73, 74, 57, 65, 55, 52, 58, 68, 55, 73, 70, 62, 63, 56, 58, 53, 58, 60, 53, 59, 51, 65, 64, 89, 75, 111, 58, 68, 61, 52, 58, 44, 78, 48, 54, 80, 49, 59, 55, 51, 58, 71, 55, 72, 83, 77, 64, 62, 54, 74, 54, 54, 66, 54, 63, 61, 59, 83, 77, 52, 58, 99, 59, 65, 78, 53, 63, 52, 56, 73, 69, 47, 80, 65, 57, 76, 74, 78, 82, 60, 72, 53, 90, 72, 58, 63, 64, 58, 72, 83, 60, 65, 59, 125, 91, 59, 78, 65, 70, 63, 48, 64, 83, 66, 53, 59, 60, 65, 52, 61, 55, 78, 78, 55, 57, 65, 61, 52, 70, 42, 66, 82, 91, 68, 51, 62, 69, 59, 82, 49, 105, 58, 72, 67, 68, 51, 78, 52, 52, 63, 81, 92, 63, 54, 88, 56, 69, 77, 54, 65, 84, 105, 68, 60, 79, 87, 61, 77, 62, 75, 60, 46, 58, 65, 54, 78, 70, 75, 64, 59, 86, 48, 53, 58, 71, 80, 59, 62, 101, 60, 76, 65, 74, 96, 60, 71, 59, 73, 74, 60, 58, 55, 61, 71, 67, 72, 83, 53, 63, 57, 61, 74, 72, 57, 68, 81, 32, 60, 64, 63, 67, 62, 64, 86, 62, 61, 52, 73, 98, 68, 55, 69, 62, 74, 79, 43, 81, 61, 81, 66, 77, 64, 74, 57, 68, 59, 65, 63, 82, 79, 66, 68, 74, 77, 69, 104, 55, 60, 70, 61, 64, 59, 64, 72, 56, 88, 63, 77, 56, 73, 69, 65, 47, 71, 76, 95, 65, 63, 53, 89, 53, 100, 62, 69, 49, 54, 63, 57, 62, 76, 82, 50, 80, 63, 72, 47, 58, 59, 87, 108, 74, 47, 59, 82, 51, 66, 58, 76, 65, 68, 71, 79, 57, 41, 103, 64, 57, 90, 59, 52, 63, 55, 73, 70, 74, 53, 54, 53, 72, 61, 73, 51, 88, 63, 59, 60, 75, 56, 83, 59, 51, 51, 60, 52, 75, 53, 61, 67, 61, 61, 63, 62, 66, 58, 89, 71, 59, 67, 58, 69, 63, 60, 57, 45, 86, 60, 63, 74, 64, 57, 77, 51, 65, 67, 111, 71, 61, 77, 72, 56, 74, 85, 62, 72, 66, 59, 79, 44, 111, 56, 59, 58, 62, 64, 51, 76, 70, 60, 83, 80, 66, 66, 69, 62, 79, 103, 58, 73, 65, 57, 62, 58, 59, 76, 53, 93, 65, 86, 94, 63, 73, 58, 43, 61, 56, 71, 50, 65, 61, 58, 69, 84, 61, 59, 55, 54, 53, 78, 59, 67, 72, 69, 113, 76, 65, 66, 46, 58, 55, 74, 71, 61, 55, 70, 62, 52, 53, 52, 50, 119, 57, 49, 52, 80, 52, 78, 91, 76, 60, 53, 71, 56, 64, 56, 53, 77, 58, 59, 60, 79, 75, 62, 70, 74, 80, 51, 59, 60, 79, 59, 69, 59, 62, 70, 68, 66, 59, 45, 82, 88, 61, 59, 59, 49, 82, 67, 78, 63, 82, 49, 66, 64, 57, 69, 53, 64, 82, 89, 63, 70, 63, 69, 66, 94, 69, 55, 42, 71, 63, 63, 56, 56, 64, 57, 53, 71, 77, 61, 107, 116, 70, 75, 47, 68, 65, 53, 66, 57, 55, 79, 81, 52, 55, 63, 60, 68, 54, 84, 61, 58, 75, 72, 51, 68, 51, 59, 50, 62, 83, 65, 62, 67, 81, 59, 81, 49, 71, 66, 59, 56, 64, 66, 69, 67, 49, 57, 59, 52, 47, 58, 66, 81, 66, 59, 48, 70, 82, 52, 53, 43, 64, 50, 76, 73, 90, 74, 71, 88, 37, 54, 68, 53, 64, 70, 51, 71, 55, 92, 84, 54, 58, 65, 56, 61, 59, 70, 57, 63, 70, 71, 66, 70, 58, 56, 63, 73, 125, 70, 50, 84, 61, 59, 63, 68, 43, 52, 76, 83, 108, 57, 50, 54, 85, 54, 55, 76, 94, 76, 66, 64, 77, 69, 75, 43, 85, 64, 54, 69, 63, 68, 62, 123, 63, 55, 57, 74, 56, 54, 68, 61, 58, 60, 71, 56, 55, 60, 61, 55, 71, 76, 45, 67, 89, 58, 65, 61, 70, 118, 78, 68, 62, 58, 61, 77, 40, 90, 80, 72, 91, 35, 64, 59, 64, 84, 83, 65, 61, 69, 52, 58, 76, 52, 62, 66, 69, 80, 68, 85, 67, 70, 69, 72, 57, 61, 41, 66, 70, 91, 70, 51, 54, 64, 57, 62, 68, 65, 63, 59, 97, 73, 68, 77, 51, 60, 76, 50, 92, 74, 58, 61, 68, 66, 56, 63, 88, 74, 89, 107, 72, 64, 79, 81, 67, 55, 50, 71, 54, 65, 69, 85, 60, 64, 78, 71, 46, 72, 90, 59, 87, 55, 76, 70, 91, 67, 68, 81, 66, 60, 75, 69, 75, 83, 58, 55, 62, 61, 66, 63, 60, 71, 61, 55, 78, 59, 80, 85, 56, 44, 59, 71, 58, 55, 68, 60, 86, 61, 53, 70, 72, 59, 58, 74, 60, 70, 59, 51, 91, 52, 55, 72, 70, 54, 57, 70, 69, 50, 65, 37, 58, 58, 68, 68, 89, 87, 54, 75, 60, 48, 60, 69, 60, 59, 70, 62, 48, 60, 51, 74, 54, 45, 64, 63, 36, 88, 55, 54, 63, 52, 64, 66, 61, 93, 61, 83, 86, 66, 54, 53, 93, 60, 50, 64, 70, 85, 60, 53, 65, 57, 59, 71, 47, 80, 72, 48, 84, 62, 79, 53, 60, 71, 80, 62, 57, 54, 68, 53, 66, 61, 59, 65, 68, 72, 46, 80, 78, 64, 71, 80, 38, 81, 72, 44, 63, 82, 72, 62, 64, 67, 111, 71, 54, 65, 61, 66, 51, 55, 50, 54, 54, 86, 88, 62, 61, 78, 58, 52, 85, 54, 56, 53, 48, 56, 95, 63, 54, 64, 61, 87, 65, 53, 43, 52, 53, 48, 60, 59, 63, 61, 49, 68, 58, 84, 63, 59, 55, 75, 49, 53, 69, 55, 58, 51, 65, 60, 80, 69, 64, 81, 81, 66, 53, 67, 84, 60, 68, 58, 70, 58, 62, 74, 63, 52, 57, 64, 59, 68, 58, 104, 48, 84, 61, 62, 64, 70, 63, 74, 69, 58, 50, 49, 51, 59, 67, 75, 83, 63, 74, 80, 78, 69, 72, 64, 66, 75, 50, 74, 61, 77, 59, 47, 38, 78, 72, 63, 44, 59, 54, 90, 50, 56, 56, 70, 88, 56, 67, 57, 55, 69, 67, 50, 53, 63, 72, 56, 61, 75, 66, 68, 64, 70, 63, 76, 54, 85, 61, 55, 67, 60, 60, 60, 61, 66, 73, 44, 65, 71, 64, 57, 51, 100, 58, 79, 53, 50, 61, 53, 71, 68, 75, 59, 58, 57, 94, 58, 56, 69, 102, 62, 56, 56, 72, 39, 65, 77, 60, 63, 55, 107, 85, 65, 57, 48, 73, 67, 64, 62, 78, 66, 52, 55, 55, 45, 72, 70, 67, 70, 53, 64, 62, 66, 60, 49, 81, 65, 58, 98, 72, 70, 68, 104, 54, 70, 60, 71, 77, 81, 87, 69, 68, 55, 66, 70, 70, 50, 59, 64, 59, 60, 79, 65, 62, 86, 66, 55, 77, 51, 51, 61, 75, 54, 64, 97, 70, 63, 62, 67, 61, 75, 60, 62, 48, 71, 73, 53, 67, 71, 75, 78, 59, 58, 73, 70, 101, 56, 77, 68, 64, 76, 57, 65, 64, 65, 53, 69, 59, 64, 68, 57, 64, 68, 62, 66, 60, 80, 65, 69, 73, 52, 51, 63, 73, 67, 57, 75, 70, 71, 68, 87, 57, 74, 46, 82, 94, 66, 71, 71, 73, 72, 60, 56, 60, 68, 56, 68, 53, 52, 78, 53, 59, 83, 57, 69, 72, 80, 57, 84, 58, 57, 46, 98, 71, 58, 69, 56, 50, 66, 73, 57, 89, 86, 48, 57, 61, 49, 77, 76, 60, 48, 55, 109, 69, 65, 63, 58, 69, 72, 46, 70, 64, 65, 69, 91, 89, 101, 76, 60, 67, 63, 57, 68, 63, 68, 69, 89, 83, 66, 74, 62, 61, 59, 62, 67, 61, 72, 76, 73, 51, 55, 101, 64, 58, 71, 53, 60, 70, 60, 71, 63, 51, 71, 58, 56, 52, 56, 47, 62, 75, 58, 56, 56, 71, 69, 65, 71, 67, 61, 54, 70, 75, 58, 73, 61, 68, 64, 53, 71, 58, 62, 66, 65, 64, 58, 68, 52, 65, 68, 64, 70, 75, 68, 68, 57, 66, 46, 59, 53, 74, 56, 61, 89, 51, 67, 67, 52, 68, 99, 59, 64, 57, 66, 70, 51, 63, 58, 62, 66, 70, 61, 52, 69, 95, 83, 70, 60, 65, 55, 74, 64, 51, 67, 69, 62, 68, 55, 86, 65, 67, 63, 49, 95, 52, 62, 64, 57, 63, 59, 55, 61, 78, 59, 55, 60, 44, 65, 62, 70, 70, 86, 57, 61, 64, 49, 69, 68, 56, 90, 92, 74, 70, 61, 52, 66, 77, 75, 57, 55, 54, 68, 68, 53, 55, 72, 82, 136, 60, 46, 65, 71, 63, 56, 83, 79, 82, 57, 88, 65, 64, 67, 64, 62, 77, 64, 74, 76, 106, 78, 78, 57, 92, 67, 52, 50, 68, 74, 59, 85, 67, 49, 78, 54, 58, 48, 69, 63, 54, 54, 67, 50, 89, 56, 66, 65, 78, 133, 47, 67, 56, 68, 61, 70, 74, 80, 73, 67, 70, 55, 65, 68, 66, 68, 65, 52, 74, 60, 68, 62, 62, 60, 52, 68, 65, 69, 103, 155, 59, 77, 61, 75, 62, 64, 76, 57, 63, 75, 65, 51, 59, 52, 82, 59, 70, 76, 65, 69, 86, 69, 69, 78, 60, 64, 58, 58, 67, 62, 84, 60, 61, 55, 65, 69, 68, 73, 62, 70, 54, 55, 50, 65, 64, 54, 67, 62, 68, 62, 64, 56, 70, 62, 71, 68, 80, 64, 56, 104, 60, 60, 67, 52, 66, 63, 69, 74, 59, 64, 51, 53, 59, 65, 55, 80, 70, 97, 85, 65, 59, 75, 60, 54, 59, 70, 58, 55, 73, 69, 68, 76, 74, 71, 62, 70, 106, 61, 84, 55, 49, 49, 52, 65, 53, 81, 75, 71, 87, 60, 70, 65, 70, 56, 58, 90, 62, 66, 73, 70, 53, 72, 59, 55, 68, 68, 62, 72, 66, 84, 73, 63, 71, 63, 59, 72, 72, 72, 60, 65, 54, 79, 80, 70, 54, 70, 75, 60, 55, 77, 66, 65, 51, 69, 77, 78, 58, 88, 84, 47, 63, 69, 56, 71, 63, 63, 62, 73, 75, 87, 60, 76, 57, 68, 62, 58, 62, 75, 67, 56, 75, 72, 54, 61, 71, 78, 59, 67, 50, 57, 64, 89, 68, 63, 70, 66, 55, 75, 62, 80, 49, 54, 64, 56, 63, 76, 59, 95, 120, 71, 70, 78, 58, 58, 83, 51, 58, 70, 51, 68, 56, 58, 61, 68, 71, 73, 62, 78, 81, 63, 71, 69, 75, 57, 62, 57, 51, 65, 41, 67, 67, 60, 48, 66, 59, 69, 80, 60, 63, 74, 65, 48, 87, 66, 60, 55, 69, 75, 53, 44, 60, 70, 63, 78, 58, 76, 50, 79, 80, 50, 72, 72, 57, 70, 98, 92, 77, 72, 81, 58, 71, 59, 61, 56, 53, 63, 68, 99, 76, 73, 73, 62, 84, 69, 65, 64, 57, 55, 59, 64, 53, 60, 74, 64, 59, 60, 60, 65, 57, 78, 59, 66, 82, 66, 63, 64, 67, 65, 81, 78, 60, 64, 63, 54, 65, 72, 69, 69, 56, 72, 53, 50, 96, 74, 49, 62, 50, 110, 42, 60, 69, 83, 61, 78, 75, 58, 60, 74, 71, 61, 60, 68, 64, 73, 69, 58, 50, 67, 56, 79, 71, 70, 56, 77, 59, 63, 59, 65, 62, 87, 78, 63, 58, 68, 71, 66, 66, 48, 47, 87, 82, 66, 63, 75, 86, 64, 48, 61, 77, 79, 68, 59, 57, 61, 60, 53, 73, 85, 67, 69, 67, 70, 79, 62, 61, 87, 66, 77, 61, 98, 58, 58, 62, 66, 66, 55, 55, 73, 63, 68, 48, 72, 68, 64, 71, 68, 41, 65, 71, 61, 61, 61, 65, 83, 79, 54, 67, 64, 66, 79, 59, 76, 60, 58, 72, 83, 64, 53, 66, 68, 62, 75, 61, 67, 66, 69, 70, 42, 74, 61, 72, 59, 64, 59, 59, 81, 71, 75, 79, 57, 69, 48, 62, 54, 67, 51, 76, 62, 76, 74, 57, 59, 56, 62, 69, 86, 64, 55, 65, 62, 69, 54, 75, 55, 78, 60, 62, 56, 67, 73, 67, 58, 54, 56, 60, 96, 56, 96, 48, 62, 56, 72, 63, 70, 64, 79, 65, 63, 53, 55, 63, 80, 68, 60, 61, 66, 65, 63, 59, 54, 62, 79, 69, 64, 66, 110, 60, 106, 82, 74, 56, 76, 70, 60, 74, 60, 62, 52, 106, 59, 71, 54, 73, 72, 54, 78, 101, 56, 50, 57, 60, 63, 62, 57, 67, 54, 69, 63, 47, 50, 75, 54, 65, 63, 65, 64, 79, 70, 85, 53, 61, 58, 61, 82, 72, 79, 69, 70, 54, 61, 67, 44, 47, 61, 52, 55, 62, 82, 65, 63, 105, 67, 75, 101, 61, 100, 69, 62, 46, 51, 74, 60, 87, 54, 55, 67, 64, 85, 60, 71, 54, 59, 61, 97, 62, 50, 120, 76, 61, 53, 75, 60, 49, 64, 76, 74, 78, 57, 53, 62, 62, 71, 64, 55, 63, 82, 82, 65, 80, 71, 70, 56, 68, 52, 49, 95, 69, 61, 51, 76, 59, 55, 69, 77, 93, 93, 77, 61, 69, 56, 70, 80, 49, 58, 80, 73, 46, 72, 62, 55, 48, 56, 63, 52, 64, 77, 48, 58, 104, 46, 54, 63, 64, 76, 59, 76, 86, 54, 74, 58, 48, 59, 60, 59, 61, 137, 53, 81, 60, 64, 55, 73, 78, 57, 56, 66, 46, 82, 65, 60, 56, 65, 65, 56, 57, 54, 72, 56, 105, 63, 96, 57, 65, 55, 65, 83, 66, 78, 45, 71, 52, 56, 73, 54, 56, 69, 64, 54, 91, 61, 68, 63, 60, 93, 80, 55, 75, 60, 54, 66, 84, 88, 53, 57, 57, 115, 62, 67, 45, 74, 64, 132, 68, 85, 68, 69, 89, 60, 60, 63, 83, 66, 55, 107, 64, 62, 58, 78, 60, 75, 62, 57, 63, 58, 67, 64, 71, 67, 107, 75, 59, 56, 56, 56, 67, 74, 70, 43, 68, 74, 64, 61, 64, 49, 61, 60, 68, 68, 68, 59, 57, 65, 64, 47, 62, 52, 59, 98, 56, 59, 66, 73, 66, 64, 75, 49, 64, 81, 65, 39, 77, 60, 74, 61, 54, 73, 68, 85, 60, 61, 95, 67, 71, 60, 63, 56, 64, 69, 67, 49, 64, 64, 60, 65, 108, 67, 47, 54, 60, 77, 65, 50, 59, 79, 72, 56, 46, 61, 63, 67, 68, 64, 84, 45, 59, 81, 79, 103, 78, 67, 67, 76, 59, 66, 54, 65, 75, 66, 72, 85, 64, 75, 48, 70, 67, 64, 57, 62, 57, 81, 71, 57, 55, 60, 69, 60, 51, 81, 42, 62, 60, 72, 52, 76, 64, 74, 71, 101, 56, 60, 54, 68, 66, 87, 74, 53, 100, 85, 61, 67, 57, 62, 71, 119, 79, 62, 59, 64, 63, 80, 60, 40, 52, 52, 66, 59, 79, 65, 55, 69, 75, 40, 58, 47, 92, 69, 82, 47, 67, 56, 68, 73, 80, 56, 65, 67, 62, 52, 59, 57, 60, 65, 71, 76, 79, 79, 60, 61, 59, 54, 60, 64, 63, 104, 72, 81, 66, 66, 64, 90, 92, 69, 63, 55, 57, 55, 57, 70, 65, 62, 52, 61, 69, 99, 61, 51, 61, 68, 61, 55, 51, 30, 75, 72, 75, 79, 70, 47, 55, 59, 93, 50, 92, 56, 72, 72, 56, 66, 69, 77, 45, 75, 66, 74, 82, 62, 64, 57, 73, 92, 58, 58, 61, 71, 57, 71, 80, 53, 73, 76, 64, 62, 71, 85, 66, 58, 44, 70, 59, 57, 70, 63, 59, 73, 83, 60, 53, 57, 63, 52, 72, 110, 54, 48, 58, 92, 77, 53, 85, 69, 75, 55, 71, 66, 73, 68, 66, 71, 48, 85, 56, 77, 83, 72, 84, 83, 64, 66, 58, 67, 52, 82, 70, 55, 70, 54, 65, 60, 75, 74, 113, 47, 71, 63, 53, 63, 57, 72, 57, 78, 63, 64, 87, 62, 59, 70, 60, 70, 66, 61, 57, 52, 58, 93, 69, 50, 45, 73, 61, 81, 77, 49, 66, 99, 55, 70, 64, 87, 49, 68, 64, 51, 62, 83, 57, 57, 64, 57, 86, 87, 59, 50, 62, 78, 64, 78, 71, 68, 62, 50, 60, 80, 63, 59, 57, 58, 67, 84, 65, 48, 69, 61, 54, 66, 104, 58, 84, 51, 76, 72, 77, 61, 83, 52, 63, 55, 57, 67, 72, 64, 56, 100, 55, 69, 62, 94, 64, 55, 63, 80, 65, 65, 75, 48, 56, 58, 60, 53, 103, 52, 62, 71, 75, 56, 70, 61, 61, 63, 68, 63, 112, 58, 89, 53, 53, 78, 82, 61, 70, 70, 85, 59, 67, 64, 69, 83, 60, 58, 55, 65, 54, 72, 58, 54, 51, 69, 77, 58, 80, 71, 105, 65, 69, 81, 72, 77, 82, 54, 65, 62, 59, 65, 63, 57, 63, 69, 64, 61, 44, 57, 58, 157, 60, 70, 41, 63, 57, 66, 73, 89, 98, 76, 71, 54, 43, 65, 52, 69, 64, 59, 64, 58, 89, 84, 66, 59, 82, 64, 63, 101, 61, 72, 84, 61, 69, 57, 72, 44, 82, 67, 68, 69, 63, 61, 84, 67, 80, 89, 60, 64, 57, 62, 58, 77, 67, 57, 69, 57, 48, 42, 47, 43, 52, 94, 50, 58, 57, 69, 86, 73, 71, 75, 77, 76, 63, 34, 63, 63, 64, 78, 73, 59, 75, 61, 35, 36, 54, 94, 70, 47, 69, 50, 61, 57, 89, 61, 42, 70, 59, 79, 65, 60, 48, 74, 91, 71, 54, 63, 100, 71, 50, 59, 102, 54, 69, 53, 70, 65, 60, 59, 50, 75, 53, 94, 56, 60, 78, 69, 55, 51, 85, 58, 75, 49, 77, 87, 81, 56, 43, 56, 65, 49, 65, 53, 50, 66, 57, 73, 64, 59, 77, 72, 78, 75, 75, 58, 61, 61, 69, 70, 108, 61, 50, 65, 55, 76, 61, 111, 88, 54, 61, 45, 74, 78, 45, 117, 64, 53, 44, 77, 59, 99, 72, 51, 76, 70, 59, 62, 67, 77, 49, 79, 54, 79, 60, 55, 49, 94, 61, 63, 58, 82, 69, 55, 61, 51, 74, 67, 83, 48, 65, 93, 58, 60, 101, 68, 72, 65, 63, 46, 58, 65, 54, 47, 58, 51, 72, 53, 98, 50, 64, 58, 49, 54, 59, 75, 74, 78, 53, 84, 70, 65, 72, 66, 66, 63, 66, 61, 91, 40, 67, 76, 64, 74, 59, 58, 70, 66, 76, 62, 99, 74, 54, 56, 59, 51, 77, 62, 60, 73, 55, 105, 55, 53, 58, 71, 48, 96, 51, 47, 56, 68, 66, 45, 53, 85, 55, 57, 41, 93, 74, 56, 71, 61, 66, 86, 72, 57, 55, 72, 66, 66, 69, 77, 56, 55, 83, 56, 59, 68, 100, 43, 59, 55, 55, 56, 77, 60, 56, 57, 69, 88, 59, 76, 51, 45, 96, 77, 59, 59, 76, 65, 52, 68, 72, 90, 75, 72, 55, 78, 74, 82, 60, 47, 62, 53, 99, 70, 44, 37, 79, 72, 55, 62, 49, 74, 83, 55, 70, 76, 83, 70, 81, 75, 83, 72, 61, 79, 72, 92, 56, 69, 57, 58, 69, 89, 81, 68, 61, 82, 51, 59, 63, 56, 59, 61, 60, 49, 88, 68, 55, 64, 67, 72, 56, 71, 75, 80, 77, 61, 91, 81, 85, 65, 62, 77, 80, 65, 77, 38, 76, 64, 66, 71, 71, 72, 50, 79, 67, 63, 47, 59, 62, 69, 51, 65, 73, 92, 74, 78, 90, 65, 56, 59, 57, 76, 72, 69, 75, 66, 53, 60, 54, 58, 78, 55, 63, 85, 79, 72, 53, 66, 82, 63, 74, 52, 61, 66, 52, 63, 62, 65, 97, 70, 56, 61, 53, 70, 56, 67, 92, 79, 80, 94, 70, 55, 68, 83, 60, 60, 73, 47, 59, 44, 72, 57, 44, 77, 95, 64, 69, 60, 72, 71, 66, 60, 58, 76, 58, 101, 70, 57, 49, 77, 72, 58, 53, 74, 57, 59, 71, 61, 59, 88, 60, 67, 59, 96, 69, 61, 55, 95, 59, 69, 58, 59, 68, 83, 57, 74, 62, 55, 111, 65, 64, 106, 57, 71, 53, 64, 85, 53, 56, 69, 80, 56, 68, 50, 68, 69, 57, 78, 52, 96, 54, 69, 65, 44, 52, 56, 84, 60, 48, 79, 58, 66, 61, 65, 69, 50, 54, 80, 48, 64, 55, 77, 62, 65, 69, 57, 69, 48, 74, 66, 82, 64, 57, 67, 49, 67, 66, 70, 46, 54, 88, 52, 86, 66, 69, 74, 65, 66, 75, 75, 61, 76, 41, 64, 67, 56, 48, 67, 52, 77, 70, 99, 82, 69, 57, 70, 73, 87, 78, 58, 47, 69, 65, 56, 50, 71, 83, 77, 74, 71, 66, 90, 69, 68, 89, 84, 81, 53, 60, 72, 72, 52, 53, 70, 62, 66, 63, 59, 59, 76, 67, 59, 52, 45, 86, 67, 69, 56, 50, 56, 67, 90, 72, 67, 55, 55, 59, 57, 75, 70, 61, 89, 78, 131, 57, 63, 77, 79, 51, 55, 55, 66, 75, 48, 49, 51, 60, 61, 73, 69, 83, 60, 63, 55, 72, 47, 73, 83, 100, 63, 50, 64, 54, 75, 64, 67, 58, 64, 88, 49, 56, 59, 53, 52, 54, 69, 87, 52, 79, 65, 53, 56, 49, 70, 111, 63, 51, 46, 61, 62, 98, 79, 55, 53, 81, 59, 71, 89, 39, 68, 82, 57, 72, 79, 53, 56, 85, 66, 67, 66, 72, 73, 112, 122, 66, 67, 37, 81, 56, 90, 65, 56, 78, 86, 61, 66, 56, 62, 48, 54, 56, 82, 48, 59, 77, 60, 57, 76, 75, 62, 65, 62, 58, 55, 69, 77, 61, 67, 71, 62, 86, 61, 69, 59, 68, 82, 49, 69, 48, 58, 64, 60, 78, 70, 70, 65, 60, 54, 62, 67, 64, 62, 63, 73, 57, 55, 83, 63, 64, 68, 48, 75, 67, 56, 61, 52, 55, 50, 62, 98, 38, 89, 88, 58, 71, 64, 66, 79, 73, 67, 74, 70, 72, 70, 87, 43, 64, 52, 61, 70, 143, 69, 43, 55, 63, 66, 73, 91, 55, 69, 121, 99, 56, 56, 51, 44, 90, 49, 64, 52, 93, 48, 44, 74, 63, 62, 47, 90, 73, 81, 60, 50, 59, 69, 56, 42, 49, 81, 78, 71, 37, 55, 76, 56, 65, 50, 55, 65, 71, 56, 46, 67, 78, 71, 59, 47, 65, 60, 40, 52, 76, 65, 61, 97, 60, 59, 75, 91, 58, 55, 52, 88, 66, 59, 90, 55, 63, 62, 81, 59, 66, 110, 62, 61, 70, 49, 57, 72, 66, 67, 64, 104, 102, 58, 72, 93, 67, 78, 66, 51, 64, 69, 62, 47, 58, 75, 53, 62, 70, 59, 67, 63, 86, 44, 55, 56, 69, 63, 55, 63, 93, 61, 58, 70, 69, 70, 61, 74, 84, 89, 98, 56, 99, 61, 50, 79, 57, 55, 54, 70, 64, 44, 58, 72, 67, 80, 79, 58, 57, 61, 104, 68, 63, 78, 62, 67, 61, 57, 95, 69, 72, 61, 59, 74, 70, 63, 55, 75, 65, 58, 83, 67, 51, 54, 83, 88, 67, 43, 93, 74, 49, 60, 44, 73, 74, 55, 72, 68, 71, 52, 71, 79, 74, 72, 73, 86, 56, 66, 55, 68, 75, 58, 51, 73, 66, 53, 39, 63, 68, 68, 54, 66, 52, 69, 60, 73, 91, 93, 55, 84, 56, 49, 75, 66, 62, 53, 71, 64, 56, 65, 71, 68, 68, 59, 49, 73, 65, 58, 63, 59, 62, 82, 68, 80, 58, 88, 56, 48, 53, 60, 61, 60, 73, 64, 63, 61, 70, 65, 59, 75, 56, 48, 66, 39, 77, 61, 75, 63, 55, 72, 75, 64, 84, 74, 92, 60, 74, 63, 74, 76, 113, 53, 71, 65, 94, 68, 73, 77, 91, 58, 64, 63, 57, 86, 51, 65, 72, 73, 61, 54, 67, 69, 96, 58, 75, 65, 63, 56, 97, 82, 57, 64, 49, 71, 78, 53, 58, 50, 61, 63, 66, 72, 71, 77, 54, 66, 78, 61, 66, 57, 49, 59, 42, 62, 64, 65, 45, 70, 52, 68, 58, 56, 88, 72, 45, 89, 53, 55, 46, 59, 57, 41, 72, 66, 47, 50, 42, 83, 63, 56, 56, 54, 79, 70, 79, 55, 64, 59, 55, 81, 50, 68, 78, 61, 89, 66, 34, 72, 54, 60, 51, 78, 76, 79, 63, 70, 78, 81, 60, 72, 61, 59, 64, 60, 78, 47, 89, 71, 54, 59, 67, 61, 67, 62, 72, 67, 44, 69, 64, 83, 58, 60, 76, 46, 65, 59, 65, 87, 59, 65, 78, 64, 70, 63, 63, 65, 82, 52, 54, 62, 61, 80, 50, 63, 54, 71, 65, 48, 68, 79, 68, 59, 54, 46, 56, 59, 79, 63, 53, 70, 69, 49, 67, 98, 64, 79, 90, 62, 59, 91, 80, 75, 93, 46, 71, 36, 69, 66, 53, 62, 53, 67, 62, 65, 64, 51, 78, 70, 69, 61, 90, 86, 59, 46, 57, 56, 70, 69, 44, 75, 55, 111, 103, 76, 71, 53, 59, 67, 69, 69, 81, 70, 52, 55, 51, 69, 69, 58, 55, 91, 59, 58, 79, 65, 60, 46, 69, 58, 71, 98, 78, 74, 55, 84, 58, 64, 88, 72, 84, 62, 64, 63, 60, 60, 77, 70, 51, 62, 71, 92, 62, 60, 69, 61, 59, 80, 63, 53, 46, 93, 59, 62, 82, 77, 52, 81, 62, 64, 67, 44, 53, 67, 68, 86, 88, 68, 67, 50, 81, 59, 51, 60, 66, 86, 61, 57, 109, 68, 72, 61, 83, 66, 59, 63, 58, 62, 63, 66, 76, 79, 64, 70, 88, 66, 52, 72, 56, 77, 50, 84, 79, 61, 60, 73, 55, 70, 54, 58, 78, 55, 71, 85, 61, 64, 50, 79, 95, 62, 64, 44, 54, 60, 77, 58, 66, 47, 62, 56, 70, 72, 68, 77, 49, 62, 71, 52, 63, 87, 71, 69, 66, 66, 81, 93, 61, 75, 72, 56, 47, 57, 78, 62, 80, 84, 63, 60, 54, 60, 77, 53, 53, 62, 73, 96, 71, 50, 57, 84, 57, 86, 64, 74, 59, 44, 76, 49, 63, 78, 66, 68, 67, 52, 63, 60, 66, 87, 70, 101, 63, 57, 60, 71, 66, 60, 63, 63, 46, 69, 69, 83, 48, 66, 91, 84, 51, 95, 68, 57, 66, 63, 67, 73, 62, 57, 75, 56, 61, 68, 65, 52, 61, 55, 60, 75, 55, 62, 62, 66, 57, 53, 57, 63, 60, 65, 78, 66, 57, 57, 78, 79, 70, 60, 87, 63, 72, 52, 63, 64, 58, 79, 57, 54, 89, 60, 71, 74, 65, 58, 65, 50, 69, 61, 96, 65, 63, 62, 76, 56, 63, 74, 63, 67, 67, 67, 67, 48, 78, 76, 67, 62, 63, 71, 70, 59, 48, 57, 69, 89, 78, 59, 68, 70, 65, 78, 61, 76, 65, 63, 66, 56, 57, 80, 62, 107, 67, 96, 48, 60, 71, 71, 51, 69, 51, 64, 47, 53, 74, 65, 78, 83, 50, 58, 55, 68, 54, 62, 65, 64, 75, 62, 93, 72, 57, 47, 61, 78, 60, 77, 69, 77, 67, 64, 64, 71, 58, 69, 70, 117, 68, 69, 59, 96, 45, 63, 94, 54, 73, 65, 67, 69, 72, 49, 69, 71, 70, 76, 84, 64, 72, 66, 64, 64, 83, 68, 67, 67, 79, 73, 52, 58, 80, 64, 77, 51, 63, 45, 82, 89, 56, 53, 74, 56, 73, 68, 56, 54, 70, 64, 85, 53, 62, 74, 69, 41, 85, 75, 70, 88, 58, 68, 67, 83, 80, 49, 46, 67, 55, 63, 57, 57, 74, 74, 70, 57, 72, 81, 95, 128, 70, 54, 62, 75, 53, 65, 72, 47, 62, 70, 62, 61, 55, 57, 63, 68, 55, 88, 70, 66, 71, 61, 56, 89, 72, 71, 56, 71, 67, 82, 60, 70, 49, 52, 74, 57, 72, 68, 59, 62, 47, 81, 68, 68, 55, 52, 80, 56, 50, 63, 63, 56, 69, 58, 63, 77, 67, 58, 66, 69, 60, 46, 60, 69, 91, 60, 60, 89, 57, 49, 68, 70, 63, 66, 73, 71, 58, 109, 88, 73, 70, 78, 63, 59, 63, 70, 57, 66, 86, 80, 67, 77, 65, 65, 38, 83, 135, 57, 57, 68, 62, 58, 69, 81, 59, 56, 85, 92, 88, 68, 60, 55, 92, 59, 63, 84, 84, 49, 64, 61, 64, 68, 72, 55, 58, 62, 64, 73, 55, 78, 63, 97, 73, 64, 60, 60, 72, 43, 61, 59, 53, 62, 54, 62, 56, 55, 74, 57, 61, 55, 56, 68, 63, 59, 59, 47, 80, 95, 89, 52, 55, 70, 64, 83, 67, 94, 66, 70, 66, 49, 75, 72, 74, 59, 69, 47, 71, 71, 46, 67, 65, 71, 51, 78, 66, 59, 67, 88, 71, 65, 71, 66, 70, 55, 62, 45, 65, 74, 79, 52, 76, 68, 57, 57, 66, 52, 71, 59, 106, 45, 60, 68, 72, 69, 65, 46, 99, 77, 56, 83, 55, 55, 63, 57, 72, 75, 107, 106, 71, 54, 71, 84, 62, 60, 64, 60, 58, 60, 73, 82, 68, 80, 52, 66, 60, 61, 104, 84, 83, 61, 66, 68, 86, 68, 50, 67, 44, 47, 85, 64, 71, 75, 63, 51, 60, 77, 77, 66, 65, 58, 75, 65, 69, 52, 75, 78, 64, 53, 56, 66, 57, 62, 61, 53, 81, 48, 63, 91, 61, 71, 64, 70, 61, 79, 70, 56, 70, 47, 47, 66, 62, 50, 54, 62, 64, 55, 60, 56, 58, 55, 53, 93, 90, 73, 52, 80, 59, 56, 58, 77, 59, 67, 72, 72, 74, 60, 59, 57, 61, 41, 59, 52, 51, 78, 62, 62, 65, 57, 78, 57, 59, 91, 58, 84, 94, 56, 73, 67, 78, 52, 48, 76, 71, 89, 68, 74, 56, 62, 65, 63, 48, 59, 83, 66, 84, 53, 85, 60, 58, 76, 92, 44, 66, 64, 69, 69, 74, 49, 61, 71, 73, 62, 67, 69, 77, 61, 43, 44, 57, 75, 85, 62, 70, 62, 82, 59, 76, 70, 104, 43, 63, 54, 60, 51, 57, 64, 61, 44, 62, 93, 91, 46, 54, 69, 60, 63, 73, 48, 47, 70, 45, 62, 87, 63, 53, 48, 66, 76, 44, 68, 60, 54, 48, 52, 58, 55, 70, 71, 50, 63, 78, 80, 64, 69, 67, 66, 51, 67, 60, 54, 50, 56, 84, 55, 82, 65, 89, 44, 85, 62, 59, 57, 91, 66, 53, 74, 61, 58, 72, 67, 61, 62, 52, 70, 51, 63, 69, 93, 47, 94, 63, 67, 67, 76, 66, 73, 60, 71, 48, 71, 61, 58, 52, 81, 87, 61, 57, 63, 80, 70, 70, 72, 72, 66, 55, 71, 65, 86, 59, 54, 43, 45, 77, 54, 53, 59, 66, 63, 56, 53, 59, 58, 69, 57, 76, 62, 73, 68, 76, 52, 42, 48, 79, 70, 63, 83, 76, 57, 88, 51, 57, 49, 56, 82, 62, 48, 64, 66, 48, 64, 59, 66, 73, 60, 67, 90, 80, 54, 99, 70, 62, 77, 69, 62, 71, 77, 61, 68, 60, 48, 60, 60, 47, 63, 56, 78, 61, 94, 83, 69, 64, 57, 57, 64, 51, 58, 50, 62, 60, 76, 76, 56, 61, 67, 72, 76, 74, 55, 66, 65, 63, 62, 78, 53, 69, 52, 59, 128, 57, 67, 52, 56, 70, 77, 58, 75, 72, 62, 71, 71, 62, 69, 94, 78, 78, 47, 54, 75, 58, 63, 68, 62, 68, 54, 47, 71, 64, 56, 44, 58, 81, 59, 79, 64, 60, 57, 78, 69, 66, 82, 67, 84, 44, 65, 54, 95, 56, 64, 64, 47, 49, 61, 66, 83, 70, 74, 59, 67, 64, 60, 62, 66, 58, 55, 53, 53, 66, 62, 63, 64, 100, 92, 54, 64, 52, 61, 66, 59, 67, 58, 50, 71, 77, 88, 45, 62, 66, 63, 68, 66, 64, 62, 75, 67, 51, 66, 72, 63, 68, 57, 53, 57, 65, 53, 67, 69, 43, 66, 65, 63, 76, 78, 63, 67, 100, 65, 48, 66, 67, 69, 80, 56, 88, 67, 65, 80, 43, 71, 53, 71, 71, 65, 79, 70, 69, 72, 57, 127, 69, 58, 71, 56, 65, 69, 104, 64, 66, 61, 65, 61, 86, 62, 62, 61, 63, 118, 54, 56, 59, 82, 56, 63, 64, 58, 55, 61, 70, 54, 62, 69, 74, 55, 50, 63, 70, 72, 67, 76, 59, 54, 58, 67, 87, 61, 61, 57, 51, 72, 108, 62, 70, 88, 57, 64, 102, 85, 53, 81, 69, 78, 80, 57, 64, 62, 57, 73, 53, 76, 63, 71, 60, 51, 84, 71, 60, 68, 62, 82, 62, 80, 55, 87, 68, 70, 65, 63, 68, 95, 43, 52, 60, 75, 63, 72, 65, 66, 67, 63, 59, 60, 76, 50, 68, 46, 69, 49, 64, 65, 80, 65, 54, 70, 91, 71, 95, 74, 79, 92, 79, 68, 58, 56, 55, 81, 54, 55, 51, 62, 66, 71, 80, 75, 65, 98, 54, 68, 87, 83, 58, 65, 47, 58, 52, 71, 63, 55, 48, 55, 55, 56, 61, 79, 51, 75, 58, 52, 75, 59, 67, 63, 50, 67, 72, 72, 57, 64, 85, 66, 78, 61, 59, 61, 91, 66, 53, 60, 77, 71, 61, 56, 52, 55, 60, 50, 51, 56, 75, 61, 87, 71, 58, 64, 73, 151, 66, 71, 60, 58, 67, 79, 49, 60, 59, 88, 82, 83, 53, 50, 52, 71, 45, 56, 54, 78, 56, 55, 52, 73, 63, 68, 48, 69, 52, 72, 67, 68, 65, 50, 80, 72, 75, 66, 76, 58, 56, 91, 67, 66, 47, 90, 54, 67, 57, 70, 57, 52, 68, 59, 55, 65, 57, 82, 88, 57, 94, 61, 64, 64, 55, 64, 73, 83, 60, 52, 66, 61, 60, 73, 54, 70, 61, 79, 31, 65, 78, 67, 66, 49, 61, 110, 63, 60, 84, 74, 49, 62, 72, 71, 58, 53, 67, 47, 68, 88, 69, 72, 61, 71, 60, 75, 58, 56, 68, 43, 54, 91, 49, 74, 37, 67, 59, 58, 53, 68, 54, 66, 46, 75, 65, 48, 63, 47, 61, 66, 54, 102, 79, 62, 78, 62, 51, 59, 64, 74, 75, 72, 59, 66, 57, 53, 72, 83, 62, 61, 46, 62, 75, 67, 60, 55, 76, 61, 66, 57, 77, 59, 56, 75, 62, 70, 67, 67, 67, 64, 40, 71, 63, 61, 84, 87, 106, 54, 59, 63, 99, 69, 70, 94, 67, 77, 64, 71, 114, 84, 56, 67, 57, 57, 51, 66, 79, 60, 63, 75, 62, 53, 64, 75, 60, 60, 64, 68, 69, 69, 74, 72, 53, 70, 70, 68, 53, 48, 73, 62, 61, 55, 67, 64, 69, 70, 64, 58, 56, 140, 68, 78, 73, 67, 57, 63, 93, 77, 65, 63, 60, 67, 77, 78, 60, 59, 54, 57, 82, 78, 67, 89, 49, 66, 57, 54, 59, 91, 60, 56, 72, 63, 63, 60, 58, 54, 65, 86, 79, 76, 53, 70, 61, 57, 62, 65, 58, 57, 71, 58, 73, 77, 60, 71, 58, 69, 53, 70, 71, 70, 49, 60, 52, 77, 61, 63, 64, 71, 73, 59, 61, 92, 56, 77, 52, 95, 65, 56, 41, 47, 71, 47, 61, 57, 69, 70, 68, 61, 78, 63, 65, 66, 61, 56, 64, 68, 53, 67, 65, 69, 57, 56, 84, 62, 65, 68, 67, 63, 78, 63, 65, 59, 95, 63, 67, 50, 104, 71, 69, 47, 67, 66, 89, 59, 63, 114, 52, 67, 63, 105, 62, 54, 70, 76, 86, 59, 94, 62, 75, 67, 60, 58, 52, 60, 63, 53, 98, 66, 82, 88, 56, 56, 56, 51, 62, 56, 57, 75, 76, 65, 75, 73, 77, 71, 70, 61, 66, 55, 84, 57, 76, 63, 75, 61, 55, 67, 74, 55, 67, 61, 77, 71, 87, 83, 58, 62, 69, 106, 105, 48, 62, 75, 64, 47, 58, 66, 76, 60, 53, 54, 52, 64, 74, 65, 66, 59, 60, 83, 61, 54, 102, 74, 45, 71, 56, 62, 70, 62, 69, 64, 63, 63, 86, 62, 60, 61, 57, 59, 73, 53, 66, 59, 53, 58, 71, 55, 64, 56, 68, 51, 69, 62, 51, 55, 60, 94, 59, 58, 50, 76, 49, 56, 60, 62, 80, 64, 72, 64, 71, 100, 64, 50, 80, 62, 72, 72, 56, 88, 65, 53, 66, 71, 120, 46, 75, 108, 61, 73, 62, 73, 68, 51, 70, 77, 59, 66, 56, 64, 71, 67, 77, 120, 73, 71, 73, 57, 73, 61, 79, 98, 64, 58, 84, 82, 72, 46, 61, 72, 54, 72, 72, 67, 62, 53, 62, 68, 63, 88, 65, 70, 66, 73, 91, 85, 56, 60, 65, 66, 67, 70, 54, 70, 73, 66, 73, 64, 56, 52, 63, 55, 56, 57, 62, 70, 48, 75, 74, 76, 53, 67, 63, 58, 58, 51, 65, 74, 68, 61, 74, 64, 61, 61, 69, 71, 69, 70, 69, 62, 52, 63, 52, 62, 60, 63, 52, 63, 60, 58, 52, 61, 55, 52, 68, 63, 77, 52, 59, 82, 78, 76, 61, 76, 67, 72, 54, 60, 65, 35, 71, 53, 64, 60, 82, 76, 47, 54, 72, 63, 141, 85, 60, 62, 61, 95, 63, 53, 62, 86, 87, 65, 70, 46, 55, 47, 66, 89, 55, 70, 89, 53, 78, 58, 57, 89, 69, 59, 83, 59, 65, 67, 52, 53, 54, 65, 52, 58, 69, 60, 66, 62, 101, 56, 48, 71, 56, 41, 107, 66, 54, 84, 73, 86, 58, 62, 70, 46, 70, 68, 55, 59, 66, 63, 58, 40, 100, 49, 61, 72, 73, 71, 85, 47, 69, 46, 55, 70, 58, 86, 58, 63, 65, 75, 55, 55, 70, 75, 56, 62, 86, 58, 49, 90, 48, 48, 62, 86, 51, 62, 54, 51, 66, 65, 66, 68, 93, 62, 62, 89, 62, 56, 44, 66, 54, 52, 58, 75, 63, 65, 58, 62, 65, 97, 67, 59, 52, 45, 58, 63, 50, 41, 72, 62, 85, 101, 71, 52, 71, 55, 63, 53, 53, 65, 76, 49, 75, 75, 56, 56, 56, 67, 62, 56, 54, 81, 86, 92, 56, 61, 68, 73, 54, 65, 62, 84, 92, 74, 68, 55, 69, 53, 85, 48, 59, 64, 58, 64, 62, 58, 70, 38, 56, 78, 75, 66, 57, 70, 38, 102, 65, 51, 94, 51, 62, 96, 86, 51, 72, 75, 78, 43, 104, 51, 72, 74, 60, 136, 57, 65, 62, 93, 68, 67, 84, 62, 66, 54, 75, 55, 44, 65, 101, 64, 56, 82, 91, 52, 50, 65, 61, 68, 56, 86, 112, 63, 70, 76, 78, 62, 137, 61, 58, 48, 66, 60, 57, 62, 63, 67, 72, 80, 65, 60, 72, 76, 69, 57, 58, 84, 50, 84, 59, 68, 58, 47, 55, 69, 75, 78, 47, 86, 57, 67, 64, 62, 60, 58, 67, 72, 62, 81, 64, 94, 74, 54, 73, 58, 55, 63, 63, 67, 71, 67, 66, 67, 60, 61, 78, 48, 69, 61, 47, 42, 73, 51, 66, 68, 77, 62, 91, 70, 70, 64, 67, 78, 79, 47, 62, 54, 62, 60, 74, 54, 95, 56, 60, 60, 70, 114, 57, 60, 64, 53, 82, 58, 51, 64, 59, 66, 65, 49, 61, 74, 61, 79, 63, 59, 48, 63, 50, 75, 70, 61, 80, 79, 76, 53, 94, 61, 86, 88, 70, 62, 54, 70, 58, 54, 49, 69, 55, 64, 65, 60, 62, 61, 69, 53, 74, 57, 56, 73, 56, 78, 73, 96, 53, 109, 68, 73, 40, 71, 69, 90, 60, 85, 56, 86, 73, 58, 73, 65, 74, 66, 86, 54, 49, 52, 70, 68, 41, 62, 44, 65, 53, 88, 64, 73, 70, 66, 73, 60, 69, 82, 57, 60, 62, 63, 60, 57, 61, 66, 58, 59, 65, 82, 69, 62, 101, 61, 39, 71, 56, 77, 106, 75, 42, 59, 99, 61, 71, 74, 58, 79, 61, 78, 65, 48, 72, 82, 64, 59, 85, 56, 51, 38, 93, 66, 57, 53, 63, 63, 62, 70, 88, 71, 47, 86, 58, 62, 50, 61, 57, 60, 65, 72, 49, 90, 65, 68, 75, 75, 64, 63, 54, 69, 48, 50, 45, 62, 72, 64, 60, 50, 65, 64, 74, 93, 66, 93, 51, 57, 57, 61, 54, 58, 65, 63, 53, 61, 69, 66, 58, 69, 101, 50, 70, 73, 72, 63, 90, 63, 70, 68, 60, 100, 78, 71, 52, 54, 87, 55, 95, 62, 70, 57, 59, 61, 80, 60, 66, 52, 59, 53, 67, 70, 42, 57, 74, 61, 82, 59, 100, 56, 49, 67, 71, 60, 80, 74, 76, 44, 67, 55, 59, 59, 54, 56, 61, 60, 61, 74, 67, 75, 57, 63, 65, 88, 81, 70, 62, 59, 62, 55, 57, 101, 66, 72, 62, 97, 62, 63, 49, 68, 55, 48, 70, 55, 72, 55, 70, 76, 58, 62, 56, 149, 48, 65, 57, 57, 70, 87, 69, 62, 75, 59, 58, 64, 73, 63, 73, 67, 53, 65, 78, 61, 65, 65, 50, 51, 55, 59, 84, 80, 77, 54, 58, 67, 71, 39, 66, 66, 63, 60, 59, 63, 50, 68, 74, 68, 56, 56, 65, 63, 77, 64, 69, 61, 63, 59, 49, 58, 71, 82, 103, 68, 67, 56, 60, 57, 58, 58, 58, 61, 91, 66, 74, 73, 75, 79, 47, 75, 81, 64, 83, 74, 65, 54, 65, 64, 81, 49, 64, 51, 85, 68, 54, 62, 53, 74, 81, 60, 81, 53, 77, 90, 57, 70, 46, 63, 72, 66, 67, 64, 72, 47, 51, 64, 66, 61, 62, 75, 61, 119, 65, 66, 107, 67, 54, 78, 44, 93, 62, 72, 70, 50, 75, 66, 65, 82, 87, 89, 77, 64, 66, 68, 64, 79, 65, 56, 60, 72, 64, 69, 62, 64, 57, 59, 59, 68, 76, 68, 75, 77, 72, 83, 62, 61, 66, 68, 78, 57, 52, 77, 78, 67, 83, 66, 45, 62, 81, 56, 62, 71, 55, 89, 60, 56, 65, 62, 58, 62, 55, 89, 49, 62, 70, 69, 64, 63, 58, 84, 80, 63, 76, 58, 69, 87, 69, 59, 74, 53, 76, 83, 58, 52, 69, 61, 61, 60, 63, 69, 70, 57, 60, 64, 54, 68, 85, 67, 64, 69, 73, 73, 63, 48, 74, 64, 48, 69, 56, 68, 66, 71, 56, 45, 74, 47, 64, 88, 60, 69, 78, 66, 61, 65, 66, 61, 60, 72, 65, 68, 64, 65, 76, 83, 85, 64, 58, 53, 59, 64, 53, 73, 54, 65, 66, 61, 62, 76, 61, 62, 86, 66, 75, 62, 72, 73, 57, 58, 65, 49, 64, 71, 59, 52, 71, 94, 65, 54, 68, 41, 71, 60, 62, 77, 70, 55, 69, 58, 54, 64, 50, 81, 76, 84, 60, 58, 67, 44, 56, 87, 66, 56, 62, 57, 59, 64, 42, 69, 72, 65, 59, 57, 53, 70, 65, 71, 49, 62, 88, 95, 55, 56, 61, 58, 65, 62, 66, 49, 94, 72, 72, 62, 54, 80, 106, 62, 63, 52, 49, 72, 61, 59, 54, 67, 74, 64, 63, 102, 53, 55, 84, 78, 83, 57, 65, 44, 63, 73, 61, 52, 51, 79, 61, 69, 59, 56, 51, 83, 54, 59, 83, 82, 74, 65, 70, 60, 57, 71, 56, 66, 73, 57, 82, 65, 70, 49, 77, 68, 39, 67, 64, 52, 93, 68, 72, 77, 77, 54, 51, 67, 65, 64, 60, 81, 63, 75, 60, 50, 63, 67, 83, 75, 75, 58, 54, 66, 62, 81, 54, 65, 116, 76, 39, 67, 89, 56, 60, 62, 68, 60, 61, 65, 75, 71, 84, 64, 62, 53, 62, 86, 63, 38, 63, 69, 62, 70, 71, 50, 64, 54, 66, 58, 48, 71, 61, 52, 69, 86, 72, 47, 91, 60, 64, 90, 91, 59, 56, 52, 53, 58, 63, 70, 75, 75, 80, 62, 107, 58, 72, 94, 42, 62, 69, 60, 83, 68, 90, 54, 90, 99, 55, 57, 62, 56, 72, 56, 86, 69, 63, 55, 64, 68, 68, 78, 67, 47, 75, 46, 73, 68, 82, 68, 66, 54, 67, 109, 47, 68, 52, 84, 63, 61, 50, 51, 60, 64, 66, 92, 62, 49, 66, 70, 55, 51, 60, 56, 59, 53, 75, 64, 60, 68, 65, 56, 61, 57, 59, 57, 58, 62, 61, 69, 71, 64, 70, 58, 59, 87, 75, 57, 64, 58, 94, 70, 57, 65, 59, 70, 63, 87, 51, 60, 70, 64, 59, 57, 75, 58, 69, 64, 53, 71, 53, 66, 73, 63, 60, 82, 74, 62, 64, 78, 82, 77, 123, 61, 63, 59, 60, 111, 70, 85, 66, 71, 49, 66, 54, 54, 58, 52, 72, 72, 59, 73, 65, 61, 75, 75, 73, 68, 85, 72, 65, 51, 54, 72, 102, 77, 66, 52, 80, 70, 116, 64, 55, 71, 58, 55, 55, 74, 58, 77, 85, 69, 47, 72, 52, 45, 74, 68, 86, 87, 54, 72, 62, 54, 66, 58, 59, 65, 88, 61, 69, 88, 47, 62, 56, 54, 64, 57, 56, 85, 65, 68, 51, 74, 53, 54, 55, 74, 70, 62, 63, 65, 85, 77, 69, 39, 58, 61, 63, 63, 72, 53, 68, 52, 66, 81, 69, 56, 64, 41, 58, 81, 52, 56, 59, 45, 74, 54, 47, 59, 53, 59, 59, 53, 87, 82, 53, 67, 50, 82, 73, 57, 96, 58, 71, 60, 88, 57, 52, 43, 48, 69, 70, 61, 102, 59, 61, 68, 115, 54, 63, 49, 68, 72, 82, 55, 54, 57, 76, 70, 57, 61, 58, 64, 65, 89, 58, 71, 86, 87, 57, 58, 53, 59, 57, 68, 88, 59, 68, 67, 75, 69, 65, 45, 67, 98, 70, 67, 62, 62, 66, 58, 67, 69, 49, 74, 56, 55, 45, 68, 83, 68, 57, 72, 83, 60, 57, 26, 48, 56, 65, 66, 86, 57, 46, 60, 48, 51, 54, 69, 90, 73, 60, 69, 67, 50, 59, 81, 88, 83, 51, 84, 70, 54, 60, 61, 64, 70, 65, 65, 86, 62, 62, 73, 40, 75, 72, 82, 96, 74, 60, 70, 68, 70, 46, 49, 75, 63, 88, 65, 68, 52, 66, 55, 58, 60, 73, 68, 80, 58, 69, 59, 65, 67, 72, 62, 66, 69, 81, 55, 57, 44, 52, 67, 50, 72, 58, 52, 58, 61, 66, 55, 56, 68, 58, 81, 70, 70, 50, 67, 91, 67, 65, 80, 60, 63, 59, 48, 73, 76, 72, 42, 58, 72, 42, 68, 53, 95, 58, 64, 64, 74, 75, 81, 68, 63, 50, 67, 71, 82, 110, 61, 70, 62, 80, 59, 56, 76, 55, 71, 97, 60, 58, 75, 111, 59, 71, 54, 80, 74, 64, 54, 92, 71, 64, 58, 90, 55, 59, 64, 83, 74, 141, 46, 70, 55, 62, 56, 59, 88, 63, 60, 69, 82, 74, 40, 57, 55, 71, 102, 40, 72, 64, 72, 76, 65, 58, 56, 56, 90, 82, 64, 73, 58, 63, 58, 72, 91, 57, 99, 63, 60, 57, 74, 56, 50, 52, 54, 69, 67, 49, 58, 64, 63, 68, 89, 60, 71, 63, 71, 66, 66, 64, 61, 65, 46, 66, 56, 58, 59, 77, 52, 60, 71, 72, 73, 53, 52, 53, 53, 57, 65, 50, 60, 60, 78, 125, 68, 57, 39, 59, 74, 56, 95, 61, 46, 56, 78, 72, 57, 64, 63, 52, 61, 61, 78, 70, 55, 72, 67, 51, 52, 61, 64, 50, 42, 81, 69, 74, 63, 59, 57, 92, 50, 92, 69, 66, 65, 50, 66, 55, 55, 85, 53, 59, 55, 49, 82, 70, 51, 74, 44, 55, 65, 65, 79, 54, 56, 69, 62, 58, 55, 56, 54, 60, 72, 63, 70, 85, 66, 59, 78, 74, 62, 74, 68, 69, 63, 68, 44, 57, 79, 58, 66, 67, 49, 79, 51, 49, 54, 74, 90, 58, 72, 56, 86, 80, 50, 70, 72, 64, 63, 69, 66, 44, 71, 59, 68, 46, 60, 70, 65, 67, 59, 93, 85, 62, 54, 52, 53, 51, 56, 55, 69, 78, 75, 53, 56, 44, 57, 65, 61, 73, 59, 63, 54, 56, 65, 66, 70, 71, 70, 75, 72, 60, 65, 60, 53, 57, 50, 45, 70, 49, 49, 111, 52, 73, 93, 56, 75, 64, 73, 77, 57, 78, 59, 62, 70, 67, 62, 65, 58, 85, 47, 62, 58, 62, 68, 51, 57, 61, 72, 59, 53, 69, 67, 64, 62, 101, 66, 74, 97, 51, 64, 72, 81, 70, 59, 47, 54, 85, 73, 59, 73, 70, 50, 67, 54, 75, 100, 92, 73, 52, 54, 80, 74, 58, 74, 55, 62, 86, 62, 69, 67, 89, 79, 57, 66, 48, 43, 60, 66, 53, 73, 68, 61, 61, 73, 86, 69, 46, 58, 66, 49, 57, 82, 58, 52, 51, 65, 73, 46, 52, 59, 49, 94, 73, 139, 58, 59, 77, 54, 64, 46, 51, 72, 75, 85, 89, 78, 69, 60, 55, 77, 49, 61, 60, 57, 64, 61, 54, 62, 73, 64, 73, 57, 61, 64, 66, 68, 72, 59, 64, 69, 57, 68, 58, 64, 61, 61, 68, 72, 64, 59, 78, 57, 60, 47, 66, 58, 62, 63, 53, 93, 66, 79, 58, 60, 62, 58, 53, 72, 80, 55, 71, 68, 60, 71, 44, 70, 74, 57, 91, 78, 78, 105, 67, 54, 78, 58, 56, 53, 101, 68, 60, 67, 52, 56, 65, 77, 41, 59, 65, 58, 82, 61, 66, 55, 56, 54, 48, 57, 78, 64, 71, 60, 47, 46, 87, 81, 50, 66, 107, 57, 58, 67, 60, 70, 77, 74, 70, 62, 48, 62, 55, 66, 77, 60, 63, 69, 63, 59, 92, 54, 60, 57, 45, 62, 63, 71, 65, 67, 61, 64, 60, 62, 60, 62, 49, 55, 62, 62, 55, 62, 62, 64, 78, 61, 78, 63, 63, 64, 66, 40, 78, 64, 54, 65, 57, 59, 61, 63, 65, 54, 57, 57, 63, 61, 59, 50, 89, 52, 64, 64, 64, 64, 122, 54, 44, 66, 69, 67, 60, 53, 60, 84, 83, 98, 65, 74, 53, 80, 84, 64, 92, 74, 62, 99, 64, 74, 53, 71, 78, 68, 77, 71, 60, 51, 85, 36, 65, 66, 49, 62, 63, 60, 58, 52, 48, 55, 67, 51, 63, 65, 52, 63, 93, 43, 59, 71, 60, 77, 66, 63, 65, 56, 74, 68, 60, 78, 64, 83, 55, 92, 52, 66, 56, 56, 52, 62, 66, 60, 58, 53, 64, 59, 45, 66, 51, 79, 63, 61, 53, 75, 77, 68, 64, 50, 60, 47, 70, 67, 51, 54, 76, 48, 76, 44, 62, 64, 61, 81, 46, 65, 58, 64, 76, 74, 55, 58, 63, 66, 74, 64, 68, 68, 84, 68, 64, 92, 47, 58, 54, 83, 73, 65, 134, 55, 64, 63, 67, 131, 61, 61, 61, 89, 60, 110, 59, 52, 61, 53, 78, 48, 63, 68, 66, 66, 62, 60, 84, 62, 58, 50, 58, 62, 60, 55, 70, 78, 52, 89, 76, 70, 105, 56, 70, 74, 64, 74, 60, 97, 80, 86, 75, 96, 59, 57, 60, 60, 64, 75, 51, 81, 60, 79, 58, 53, 64, 52, 59, 52, 47, 54, 106, 71, 56, 64, 67, 60, 56, 66, 69, 63, 76, 79, 61, 77, 62, 56, 55, 54, 63, 54, 78, 66, 60, 73, 63, 65, 64, 55, 81, 53, 75, 68, 57, 61, 83, 63, 69, 97, 59, 59, 61, 60, 59, 52, 55, 64, 66, 77, 47, 83, 61, 59, 81, 60, 93, 65, 79, 59, 60, 86, 79, 54, 87, 94, 54, 54, 64, 82, 54, 59, 58, 68, 82, 106, 72, 65, 67, 51, 52, 46, 61, 72, 60, 55, 67, 68, 73, 83, 96, 73, 107, 56, 67, 75, 64, 63, 76, 59, 63, 59, 53, 60, 71, 57, 71, 68, 73, 76, 49, 53, 117, 49, 67, 68, 92, 85, 61, 95, 55, 49, 66, 49, 50, 75, 64, 57, 76, 68, 41, 57, 55, 62, 51, 75, 85, 60, 61, 60, 75, 73, 58, 70, 75, 66, 56, 71, 64, 56, 58, 83, 53, 59, 61, 56, 54, 84, 78, 70, 62, 65, 62, 53, 56, 58, 64, 73, 52, 70, 82, 61, 75, 65, 59, 73, 86, 69, 68, 55, 111, 85, 59, 61, 66, 51, 62, 69, 71, 63, 74, 58, 64, 48, 60, 51, 56, 77, 77, 72, 56, 48, 52, 48, 67, 69, 89, 65, 60, 65, 55, 56, 82, 61, 61, 63, 58, 93, 59, 71, 64, 73, 72, 56, 58, 60, 54, 71, 72, 56, 53, 61, 74, 75, 58, 66, 61, 73, 59, 73, 73, 89, 62, 59, 62, 57, 73, 55, 51, 70, 53, 65, 68, 66, 54, 48, 79, 79, 53, 78, 75, 64, 74, 56, 63, 60, 62, 109, 65, 65, 60, 63, 62, 59, 54, 76, 88, 52, 52, 52, 99, 45, 69, 58, 63, 70, 66, 59, 78, 67, 54, 61, 98, 68, 86, 60, 55, 60, 63, 62, 60, 90, 64, 75, 65, 51, 75, 64, 54, 47, 57, 65, 39, 106, 65, 54, 61, 64, 53, 70, 87, 73, 72, 70, 70, 65, 49, 74, 75, 66, 76, 49, 68, 81, 48, 71, 88, 67, 63, 65, 74, 60, 69, 58, 47, 51, 70, 144, 60, 78, 70, 73, 62, 48, 53, 61, 88, 55, 58, 66, 52, 60, 73, 52, 65, 65, 55, 73, 58, 63, 75, 60, 52, 67, 49, 108, 64, 65, 64, 62, 73, 57, 68, 68, 81, 64, 69, 71, 57, 53, 61, 69, 61, 59, 62, 64, 84, 53, 55, 60, 69, 68, 70, 63, 73, 70, 119, 57, 61, 57, 61, 77, 51, 58, 54, 76, 80, 63, 49, 58, 61, 76, 56, 69, 59, 73, 49, 67, 62, 73, 52, 58, 78, 58, 74, 63, 60, 67, 62, 51, 61, 67, 55, 64, 87, 65, 72, 48, 69, 75, 73, 69, 68, 68, 96, 71, 73, 86, 58, 93, 78, 64, 53, 76, 83, 109, 56, 79, 80, 61, 89, 61, 75, 70, 66, 59, 73, 51, 56, 55, 70, 80, 67, 58, 67, 65, 64, 60, 50, 81, 64, 71, 64, 81, 82, 66, 51, 79, 55, 62, 63, 39, 81, 59, 62, 59, 66, 72, 55, 48, 56, 81, 78, 57, 59, 62, 76, 66, 61, 59, 58, 55, 86, 49, 53, 63, 53, 65, 80, 56, 57, 60, 61, 70, 65, 72, 59, 62, 46, 90, 74, 55, 57, 68, 85, 74, 95, 61, 86, 63, 70, 55, 71, 61, 74, 74, 66, 60, 70, 61, 53, 62, 69, 59, 61, 72, 64, 67, 100, 53, 58, 61, 72, 61, 53, 65, 107, 70, 80, 61, 53, 74, 59, 72, 60, 71, 60, 67, 76, 54, 59, 61, 64, 63, 57, 53, 90, 73, 66, 78, 65, 49, 57, 60, 56, 65, 80, 91, 48, 56, 64, 60, 66, 63, 63, 71, 58, 81, 71, 61, 60, 66, 83, 72, 82, 59, 55, 61, 62, 76, 69, 75, 58, 48, 49, 54, 56, 68, 64, 44, 67, 76, 62, 57, 65, 74, 58, 55, 65, 65, 41, 53, 72, 57, 108, 77, 83, 77, 60, 68, 78, 67, 62, 87, 78, 62, 82, 62, 51, 70, 61, 66, 90, 52, 63, 93, 54, 61, 59, 69, 67, 58, 57, 53, 52, 63, 67, 56, 65, 61, 68, 55, 60, 65, 70, 67, 55, 77, 54, 73, 57, 65, 66, 59, 61, 54, 61, 58, 58, 82, 63, 102, 76, 63, 79, 42, 64, 64, 56, 61, 55, 70, 53, 55, 55, 68, 63, 51, 67, 47, 56, 67, 64, 57, 74, 60, 61, 87, 63, 72, 66, 69, 59, 49, 46, 60, 66, 66, 77, 61, 81, 79, 42, 71, 97, 42, 46, 107, 76, 97, 62, 68, 78, 60, 62, 50, 48, 61, 62, 60, 70, 69, 64, 56, 71, 86, 56, 41, 99, 59, 56, 97, 43, 73, 77, 74, 88, 53, 65, 63, 89, 49, 61, 60, 58, 55, 68, 67, 52, 64, 63, 55, 85, 96, 72, 38, 56, 61, 68, 63, 84, 72, 51, 58, 70, 74, 70, 89, 60, 77, 66, 76, 74, 63, 66, 60, 48, 66, 85, 63, 67, 116, 60, 86, 59, 70, 69, 75, 77, 60, 55, 57, 50, 83, 63, 54, 111, 64, 74, 82, 56, 58, 65, 61, 52, 60, 45, 54, 77, 56, 82, 70, 73, 54, 95, 74, 55, 71, 66, 45, 75, 63, 57, 60, 64, 75, 53, 62, 44, 51, 60, 58, 87, 79, 56, 91, 86, 57, 73, 73, 59, 105, 47, 62, 77, 102, 59, 73, 60, 61, 56, 59, 82, 65, 65, 68, 83, 66, 76, 50, 83, 62, 59, 60, 87, 60, 110, 63, 55, 85, 68, 67, 78, 61, 53, 58, 82, 66, 76, 89, 61, 86, 45, 62, 77, 71, 40, 64, 75, 59, 64, 65, 56, 60, 99, 92, 65, 62, 71, 77, 64, 69, 67, 56, 54, 49, 55, 56, 88, 55, 64, 52, 67, 135, 48, 61, 63, 51, 70, 66, 72, 51, 73, 77, 73, 60, 82, 86, 85, 51, 79, 35, 82, 54, 58, 57, 58, 63, 46, 60, 70, 71, 58, 55, 71, 82, 105, 64, 96, 69, 48, 51, 70, 84, 71, 64, 62, 99, 72, 67, 60, 67, 61, 66, 85, 96, 61, 45, 56, 66, 53, 52, 53, 55, 38, 52, 91, 54, 50, 75, 58, 74, 63, 54, 65, 62, 76, 76, 66, 62, 79, 90, 56, 67, 59, 63, 69, 65, 49, 52, 57, 59, 50, 68, 64, 65, 57, 72, 50, 85, 77, 56, 82, 80, 53, 72, 67, 67, 58, 48, 67, 56, 59, 59, 82, 78, 64, 62, 76, 68, 83, 43, 103, 78, 66, 51, 58, 64, 59, 59, 68, 67, 62, 74, 62, 78, 67, 73, 72, 56, 57, 34, 56, 62, 80, 75, 57, 64, 67, 41, 40, 69, 62, 47, 98, 93, 54, 61, 58, 44, 59, 62, 65, 121, 64, 55, 50, 72, 48, 40, 59, 105, 57, 86, 56, 74, 91, 74, 62, 102, 51, 106, 57, 81, 56, 93, 41, 66, 44, 71, 51, 63, 71, 104, 79, 64, 98, 56, 51, 86, 84, 75, 60, 51, 77, 81, 64, 79, 64, 67, 42, 82, 75, 99, 73, 47, 62, 62, 55, 60, 75, 75, 78, 66, 71, 74, 56, 55, 65, 76, 58, 66, 55, 29, 64, 65, 69, 66, 51, 62, 60, 52, 60, 65, 61, 84, 56, 58, 69, 72, 54, 70, 70, 66, 75, 56, 49, 53, 99, 56, 90, 101, 79, 79, 61, 80, 74, 43, 98, 69, 78, 54, 69, 66, 62, 77, 64, 70, 69, 82, 64, 71, 63, 65, 50, 50, 73, 60, 60, 61, 58, 82, 49, 69, 97, 57, 91, 71, 56, 63, 68, 61, 54, 84, 62, 82, 76, 59, 62, 62, 56, 66, 73, 76, 59, 61, 76, 55, 64, 61, 55, 96, 55, 62, 87, 66, 87, 62, 71, 61, 54, 75, 66, 63, 85, 62, 80, 68, 54, 62, 56, 62, 51, 67, 87, 58, 64, 42, 59, 46, 45, 64, 53, 65, 67, 57, 57, 24, 108, 55, 83, 95, 59, 58, 57, 66, 54, 57, 62, 87, 67, 47, 69, 99, 74, 53, 44, 57, 47, 60, 62, 73, 54, 67, 55, 63, 50, 88, 80, 69, 59, 92, 64, 66, 56, 55, 65, 65, 65, 63, 70, 74, 67, 69, 65, 59, 70, 55, 64, 57, 60, 79, 72, 54, 74, 69, 67, 94, 73, 79, 66, 44, 58, 52, 77, 65, 59, 51, 65, 56, 75, 77, 46, 83, 68, 55, 63, 50, 54, 82, 63, 66, 75, 50, 60, 31, 55, 49, 67, 57, 73, 42, 51, 61, 62, 61, 47, 60, 57, 88, 58, 67, 67, 56, 52, 44, 98, 59, 55, 79, 88, 63, 79, 76, 71, 60, 67, 66, 81, 65, 51, 43, 47, 56, 61, 53, 68, 79, 94, 64, 53, 54, 61, 66, 59, 55, 43, 87, 69, 55, 76, 70, 70, 77, 57, 41, 58, 63, 100, 66, 69, 60, 47, 63, 68, 80, 47, 48, 43, 45, 56, 59, 79, 68, 57, 76, 49, 58, 67, 74, 69, 107, 96, 63, 81, 51, 97, 64, 72, 57, 62, 47, 57, 60, 53, 60, 82, 83, 73, 98, 66, 56, 65, 77, 70, 48, 81, 87, 66, 48, 79, 97, 52, 53, 69, 58, 53, 66, 67, 65, 56, 90, 43, 76, 66, 68, 66, 68, 58, 73, 70, 65, 45, 63, 67, 48, 60, 97, 60, 82, 48, 68, 56, 58, 64, 86, 74, 58, 65, 68, 58, 56, 61, 90, 55, 49, 67, 55, 55, 46, 87, 54, 106, 60, 68, 70, 68, 79, 73, 76, 51, 84, 75, 74, 110, 89, 84, 61, 50, 62, 68, 73, 101, 40, 60, 60, 65, 69, 70, 55, 85, 73, 60, 58, 61, 66, 65, 92, 46, 53, 59, 108, 60, 53, 68, 78, 62, 52, 80, 49, 48, 48, 48, 54, 70, 74, 48, 51, 70, 62, 97, 76, 47, 63, 51, 59, 59, 55, 89, 75, 61, 54, 73, 69, 39, 61, 51, 45, 82, 60, 65, 57, 48, 89, 52, 100, 49, 41, 64, 63, 57, 59, 77, 95, 59, 77, 75, 54, 63, 80, 49, 50, 69, 69, 76, 60, 58, 74, 89, 87, 81, 65, 60, 74, 62, 63, 62, 35, 66, 58, 92, 69, 56, 49, 66, 69, 54, 57, 44, 56, 66, 73, 70, 65, 69, 59, 89, 53, 63, 39, 58, 45, 64, 69, 78, 71, 58, 59, 79, 68, 73, 64, 58, 62, 63, 54, 67, 67, 49, 77, 61, 63, 57, 53, 62, 89, 47, 52, 70, 65, 77, 76, 56, 60, 71, 67, 70, 59, 65, 70, 50, 77, 45, 62, 61, 51, 60, 65, 62, 76, 63, 86, 66, 58, 39, 82, 63, 50, 86, 34, 79, 64, 63, 55, 46, 60, 51, 72, 68, 68, 52, 76, 59, 89, 60, 47, 59, 64, 62, 67, 100, 87, 65, 60, 85, 66, 77, 80, 66, 62, 63, 54, 57, 62, 75, 63, 62, 49, 61, 57, 60, 48, 53, 69, 57, 44, 62, 51, 58, 65, 64, 66, 75, 75, 63, 67, 60, 69, 73, 59, 76, 74, 73, 73, 54, 59, 79, 55, 68, 70, 67, 78, 59, 52, 55, 86, 49, 66, 55, 69, 62, 72, 92, 60, 59, 80, 65, 54, 62, 75, 71, 72, 74, 77, 58, 75, 54, 88, 55, 57, 106, 54, 58, 58, 50, 63, 61, 57, 117, 64, 65, 53, 61, 67, 55, 62, 50, 59, 72, 71, 80, 54, 96, 68, 58, 61, 65, 73, 63, 61, 65, 59, 103, 57, 60, 83, 41, 68, 63, 78, 84, 81, 62, 62, 55, 103, 65, 60, 70, 53, 59, 53, 55, 60, 51, 56, 80, 51, 49, 80, 71, 65, 50, 61, 62, 48, 72, 64, 82, 61, 92, 57, 58, 61, 62, 48, 64, 68, 66, 73, 84, 79, 73, 49, 45, 67, 65, 58, 72, 100, 54, 63, 54, 56, 66, 53, 55, 63, 62, 74, 68, 41, 66, 59, 51, 60, 54, 59, 45, 49, 52, 55, 91, 59, 64, 55, 74, 119, 64, 61, 54, 62, 74, 67, 57, 64, 62, 54, 73, 54, 62, 75, 56, 62, 70, 65, 116, 61, 55, 63, 64, 88, 64, 61, 63, 61, 71, 87, 72, 63, 108, 61, 65, 51, 71, 57, 42, 75, 63, 64, 67, 46, 88, 69, 61, 57, 57, 105, 60, 48, 55, 53, 70, 99, 75, 45, 65, 69, 60, 64, 80, 56, 65, 61, 56, 49, 71, 63, 64, 73, 50, 63, 64, 79, 72, 54, 55, 88, 57, 61, 70, 65, 65, 71, 72, 64, 58, 63, 67, 66, 81, 62, 85, 83, 72, 75, 65, 73, 59, 62, 57, 78, 56, 55, 63, 67, 62, 103, 57, 69, 70, 57, 66, 68, 84, 49, 97, 97, 54, 82, 49, 66, 50, 82, 77, 55, 58, 62, 58, 46, 57, 58, 72, 75, 74, 62, 61, 69, 64, 58, 57, 51, 69, 59, 90, 75, 60, 72, 101, 80, 59, 65, 75, 60, 75, 62, 85, 67, 63, 76, 51, 57, 65, 57, 55, 77, 63, 63, 66, 53, 109, 62, 67, 87, 79, 56, 55, 92, 71, 67, 58, 46, 61, 54, 66, 65, 52, 64, 63, 69, 79, 53, 55, 71, 120, 54, 75, 56, 87, 71, 62, 65, 72, 60, 73, 67, 60, 68, 59, 78, 65, 65, 62, 68, 65, 57, 84, 55, 59, 52, 65, 53, 89, 56, 75, 80, 57, 72, 85, 58, 71, 91, 63, 80, 54, 97, 97, 60, 65, 77, 72, 64, 68, 81, 68, 76, 59, 61, 53, 65, 56, 62, 81, 79, 40, 98, 46, 68, 57, 96, 98, 43, 72, 62, 93, 91, 80, 85, 57, 57, 104, 92, 86, 55, 60, 72, 52, 63, 68, 69, 65, 95, 62, 54, 69, 57, 58, 52, 60, 72, 87, 53, 59, 57, 78, 70, 72, 97, 63, 100, 61, 60, 55, 59, 54, 62, 61, 62, 68, 63, 77, 88, 60, 69, 54, 94, 60, 68, 72, 69, 82, 59, 71, 59, 78, 77, 67, 68, 59, 60, 87, 82, 69, 71, 48, 55, 66, 67, 62, 55, 51, 55, 60, 68, 62, 60, 73, 64, 79, 85, 52, 74, 123, 73, 51, 69, 55, 50, 71, 56, 53, 61, 58, 40, 58, 68, 63, 55, 72, 56, 76, 84, 64, 68, 64, 66, 74, 74, 69, 46, 57, 60, 58, 57, 52, 80, 54, 85, 58, 51, 68, 55, 51, 55, 65, 91, 58, 57, 67, 66, 65, 53, 47, 58, 95, 74, 59, 77, 55, 59, 62, 73, 57, 57, 81, 54, 58, 85, 57, 69, 52, 57, 56, 73, 64, 52, 62, 57, 59, 65, 65, 57, 46, 77, 59, 63, 74, 52, 58, 52, 56, 63, 75, 46, 57, 61, 57, 54, 77, 70, 62, 58, 70, 54, 62, 49, 52, 55, 72, 65, 76, 51, 65, 96, 105, 61, 62, 88, 60, 80, 72, 63, 67, 75, 80, 76, 58, 48, 71, 46, 53, 60, 93, 49, 47, 62, 65, 57, 58, 61, 70, 57, 70, 72, 78, 57, 72, 60, 60, 66, 55, 62, 106, 51, 57, 61, 58, 101, 52, 67, 68, 54, 74, 55, 76, 79, 62, 59, 54, 62, 58, 80, 60, 105, 56, 42, 80, 45, 72, 72, 92, 86, 62, 49, 88, 68, 65, 58, 64, 65, 93, 72, 73, 86, 62, 74, 54, 49, 58, 67, 61, 61, 60, 70, 55, 98, 70, 57, 55, 57, 56, 67, 64, 63, 45, 70, 60, 54, 62, 74, 44, 62, 65, 64, 61, 49, 48, 62, 57, 77, 78, 53, 61, 46, 49, 70, 66, 57, 84, 68, 58, 51, 69, 87, 74, 58, 53, 76, 67, 86, 55, 81, 62, 55, 68, 54, 80, 82, 56, 48, 59, 83, 55, 50, 65, 58, 59, 56, 56, 80, 83, 66, 62, 56, 56, 76, 64, 64, 77, 57, 59, 72, 64, 67, 71, 68, 73, 48, 69, 67, 61, 75, 49, 65, 58, 88, 89, 56, 49, 84, 64, 57, 62, 58, 68, 67, 81, 49, 52, 63, 54, 81, 61, 53, 71, 56, 86, 56, 52, 86, 67, 49, 59, 50, 67, 63, 78, 62, 55, 61, 80, 65, 71, 80, 70, 46, 61, 54, 63, 89, 64, 72, 57, 78, 50, 54, 65, 48, 63, 65, 48, 67, 57, 100, 52, 60, 46, 53, 59, 59, 53, 58, 63, 80, 81, 78, 63, 47, 74, 58, 74, 83, 56, 57, 67, 50, 63, 51, 69, 58, 62, 49, 74, 54, 56, 63, 72, 65, 60, 67, 74, 52, 55, 47, 53, 58, 69, 59, 43, 71, 89, 63, 89, 63, 50, 84, 66, 61, 60, 65, 63, 55, 51, 65, 57, 56, 60, 63, 72, 98, 61, 53, 64, 58, 84, 97, 68, 54, 61, 57, 73, 47, 72, 82, 80, 56, 45, 64, 59, 91, 58, 103, 65, 75, 60, 63, 60, 59, 70, 62, 53, 58, 59, 65, 65, 57, 48, 94, 48, 57, 71, 87, 49, 64, 82, 67, 56, 63, 58, 68, 58, 54, 73, 74, 85, 88, 62, 74, 69, 80, 63, 79, 55, 56, 51, 58, 64, 62, 71, 68, 77, 67, 55, 77, 72, 75, 70, 64, 56, 58, 72, 64, 50, 93, 66, 58, 91, 60, 66, 65, 69, 74, 128, 69, 62, 67, 62, 71, 68, 43, 65, 71, 70, 78, 44, 48, 64, 59, 57, 79, 69, 47, 57, 47, 56, 80, 80, 65, 59, 104, 76, 57, 63, 53, 80, 57, 34, 64, 116, 58, 67, 88, 57, 59, 62, 48, 66, 45, 64, 64, 57, 98, 64, 58, 67, 70, 75, 78, 65, 84, 61, 54, 74, 64, 68, 79, 58, 60, 51, 47, 62, 66, 66, 75, 75, 65, 56, 47, 53, 57, 36, 53, 50, 74, 72, 74, 50, 69, 61, 84, 75, 41, 95, 58, 63, 69, 75, 49, 63, 57, 76, 70, 47, 93, 55, 75, 58, 96, 82, 60, 73, 79, 55, 62, 85, 54, 74, 46, 55, 56, 100, 66, 60, 68, 60, 46, 43, 73, 52, 73, 115, 74, 44, 61, 70, 81, 60, 56, 55, 60, 58, 62, 47, 85, 52, 56, 69, 56, 60, 87, 69, 69, 43, 72, 62, 39, 89, 80, 46, 76, 56, 132, 67, 37, 68, 75, 57, 72, 52, 48, 65, 66, 68, 60, 60, 63, 37, 71, 68, 63, 50, 85, 60, 61, 71, 73, 78, 63, 70, 48, 75, 51, 68, 66, 135, 64, 85, 47, 66, 71, 71, 63, 50, 73, 39, 90, 75, 67, 53, 65, 50, 80, 61, 78, 71, 68, 71, 83, 72, 50, 65, 63, 106, 103, 48, 63, 53, 60, 71, 54, 66, 64, 67, 76, 63, 58, 57, 79, 68, 49, 67, 63, 65, 76, 64, 61, 56, 67, 72, 49, 60, 71, 74, 62, 80, 67, 83, 71, 63, 53, 97, 58, 67, 53, 75, 71, 90, 59, 60, 71, 77, 67, 64, 58, 73, 63, 94, 65, 54, 69, 67, 76, 70, 69, 50, 71, 97, 71, 61, 42, 51, 70, 72, 59, 55, 67, 78, 47, 89, 93, 66, 73, 52, 70, 58, 70, 59, 92, 52, 66, 59, 74, 75, 75, 53, 63, 59, 66, 53, 82, 54, 55, 40, 63, 66, 71, 51, 50, 57, 107, 65, 56, 51, 88, 84, 60, 84, 62, 61, 115, 65, 53, 76, 66, 71, 65, 88, 59, 65, 66, 56, 67, 71, 52, 61, 49, 47, 72, 106, 64, 107, 57, 71, 73, 81, 71, 70, 58, 63, 62, 63, 51, 90, 68, 67, 60, 66, 76, 68, 61, 65, 50, 63, 65, 96, 59, 59, 99, 72, 70, 59, 46, 69, 61, 66, 64, 62, 78, 72, 88, 45, 58, 73, 97, 58, 58, 56, 113, 85, 53, 88, 59, 59, 61, 65, 73, 92, 60, 70, 94, 50, 65, 63, 59, 69, 112, 63, 58, 66, 68, 54, 41, 74, 67, 64, 63, 56, 86, 53, 34, 39, 48, 55, 42, 71, 57, 38, 50, 54, 65, 59, 59, 80, 60, 77, 59, 88, 46, 65, 73, 82, 93, 92, 87, 81, 57, 63, 48, 44, 51, 60, 71, 60, 46, 74, 67, 59, 97, 53, 83, 52, 69, 107, 55, 60, 57, 49, 68, 80, 61, 72, 64, 56, 54, 77, 66, 79, 72, 50, 77, 68, 78, 56, 47, 69, 36, 56, 61, 63, 55, 71, 78, 75, 46, 57, 49, 130, 69, 40, 77, 68, 59, 68, 82, 56, 55, 50, 54, 58, 53, 62, 62, 81, 59, 58, 72, 58, 58, 67, 84, 47, 118, 67, 76, 74, 69, 55, 68, 67, 57, 59, 85, 56, 55, 46, 53, 82, 52, 50, 78, 56, 67, 65, 66, 62, 53, 50, 63, 50, 111, 54, 65, 65, 73, 66, 49, 61, 67, 85, 64, 62, 63, 73, 52, 66, 56, 55, 69, 85, 98, 71, 57, 54, 54, 67, 65, 59, 62, 48, 47, 57, 89, 50, 96, 57, 48, 81, 57, 50, 43, 45, 90, 91, 55, 50, 53, 50, 63, 75, 77, 66, 66, 62, 47, 81, 62, 67, 58, 72, 67, 62, 95, 55, 67, 61, 64, 76, 60, 90, 94, 65, 55, 91, 58, 53, 63, 59, 53, 76, 83, 70, 65, 79, 53, 87, 59, 70, 50, 76, 63, 55, 64, 56, 65, 76, 40, 83, 56, 53, 58, 45, 50, 83, 56, 51, 66, 64, 69, 90, 52, 62, 96, 65, 58, 63, 52, 56, 54, 73, 83, 61, 57, 58, 58, 75, 78, 59, 49, 87, 51, 66, 71, 74, 69, 67, 54, 68, 85, 75, 59, 65, 46, 109, 61, 56, 67, 45, 66, 67, 95, 49, 52, 67, 66, 55, 58, 48, 60, 67, 55, 64, 72, 57, 54, 50, 51, 62, 61, 86, 60, 49, 64, 76, 76, 72, 74, 46, 73, 62, 81, 36, 54, 72, 59, 44, 65, 69, 76, 56, 62, 50, 82, 65, 49, 64, 69, 87, 59, 57, 59, 95, 60, 41, 48, 70, 61, 105, 63, 58, 63, 58, 54, 104, 66, 119, 68, 65, 61, 39, 84, 56, 97, 62, 48, 49, 77, 44, 59, 83, 70, 80, 48, 56, 59, 75, 88, 61, 55, 65, 86, 63, 47, 66, 85, 65, 57, 76, 68, 41, 75, 52, 63, 69, 54, 86, 54, 64, 56, 67, 69, 62, 58, 61, 72, 52, 74, 46, 64, 55, 89, 71, 77, 80, 70, 79, 52, 61, 77, 72, 65, 56, 50, 48, 124, 75, 55, 64, 65, 50, 84, 104, 82, 69, 62, 57, 89, 65, 79, 61, 58, 65, 69, 73, 61, 54, 62, 66, 73, 50, 60, 52, 67, 59, 60, 58, 92, 70, 56, 78, 51, 59, 64, 50, 57, 54, 114, 54, 61, 81, 60, 57, 64, 58, 68, 78, 54, 59, 88, 109, 56, 74, 67, 39, 63, 81, 66, 75, 50, 73, 61, 89, 58, 51, 54, 60, 51, 69, 45, 75, 52, 45, 62, 51, 85, 74, 61, 55, 54, 91, 52, 65, 57, 56, 50, 97, 63, 51, 110, 81, 62, 116, 54, 61, 57, 52, 123, 45, 60, 90, 62, 64, 78, 56, 82, 81, 87, 92, 54, 55, 54, 65, 60, 68, 61, 39, 89, 73, 71, 54, 69, 56, 75, 56, 101, 61, 64, 51, 73, 84, 71, 75, 70, 97, 48, 67, 64, 108, 101, 76, 56, 56, 48, 73, 53, 49, 76, 54, 56, 57, 73, 71, 58, 66, 125, 61, 57, 52, 57, 53, 74, 63, 63, 61, 52, 63, 67, 63, 52, 60, 43, 67, 48, 100, 83, 55, 57, 61, 64, 60, 65, 80, 63, 64, 127, 61, 73, 61, 51, 56, 95, 67, 64, 55, 79, 58, 43, 68, 80, 74, 45, 84, 66, 66, 82, 64, 61, 52, 69, 103, 64, 65, 54, 59, 70, 66, 49, 65, 54, 80, 65, 42, 79, 70, 62, 61, 61, 66, 40, 61, 57, 82, 76, 51, 67, 74, 76, 72, 68, 56, 80, 83, 63, 68, 72, 78, 52, 65, 59, 57, 58, 70, 63, 65, 94, 53, 78, 95, 52, 68, 68, 66, 62, 67, 76, 76, 80, 45, 70, 51, 73, 62, 99, 73, 62, 57, 40, 51, 99, 113, 68, 53, 57, 76, 53, 60, 58, 75, 64, 121, 56, 58, 84, 111, 48, 70, 48, 55, 74, 57, 67, 60, 62, 54, 58, 61, 63, 70, 63, 86, 71, 77, 67, 51, 60, 56, 65, 64, 102, 82, 68, 83, 83, 58, 55, 72, 92, 59, 47, 63, 48, 110, 77, 49, 47, 72, 81, 48, 61, 97, 56, 66, 69, 54, 73, 111, 66, 67, 65, 60, 71, 60, 63, 101, 86, 68, 64, 64, 74, 115, 57, 72, 67, 64, 65, 62, 76, 72, 66, 72, 57, 49, 62, 62, 81, 49, 88, 73, 68, 66, 52, 63, 54, 54, 37, 57, 56, 61, 63, 79, 93, 56, 67, 110, 55, 71, 62, 67, 64, 56, 57, 51, 56, 74, 70, 54, 81, 67, 53, 68, 70, 62, 76, 89, 43, 65, 60, 50, 65, 69, 56, 56, 54, 68, 65, 76, 49, 64, 74, 67, 53, 76, 62, 64, 62, 67, 89, 61, 74, 55, 64, 83, 49, 79, 62, 53, 98, 55, 73, 57, 63, 71, 85, 57, 59, 69, 70, 63, 57, 48, 74, 72, 88, 86, 77, 50, 51, 76, 62, 61, 74, 72, 55, 63, 56, 88, 62, 101, 83, 70, 72, 68, 63, 73, 54, 87, 60, 69, 56, 64, 77, 69, 52, 57, 72, 60, 60, 59, 64, 130, 72, 72, 64, 71, 84, 62, 73, 58, 68, 70, 68, 50, 79, 53, 71, 86, 72, 59, 77, 59, 46, 88, 80, 80, 57, 60, 66, 70, 92, 111, 59, 50, 72, 54, 46, 76, 62, 61, 67, 52, 64, 65, 85, 55, 45, 41, 68, 65, 80, 68, 53, 62, 89, 62, 80, 43, 80, 82, 61, 61, 66, 91, 78, 54, 87, 95, 69, 71, 82, 92, 89, 60, 78, 66, 68, 55, 61, 53, 70, 54, 46, 63, 59, 38, 105, 47, 51, 59, 71, 69, 74, 65, 59, 72, 65, 62, 63, 70, 106, 67, 48, 89, 56, 65, 99, 91, 52, 71, 58, 57, 100, 62, 70, 73, 60, 78, 87, 69, 68, 71, 55, 83, 68, 69, 68, 55, 61, 48, 69, 63, 64, 62, 70, 58, 58, 67, 69, 76, 79, 76, 58, 75, 66, 56, 56, 54, 66, 68, 82, 82, 68, 74, 74, 43, 62, 63, 61, 58, 69, 62, 66, 59, 77, 92, 44, 61, 51, 64, 57, 70, 64, 53, 75, 44, 74, 55, 59, 91, 47, 59, 76, 124, 63, 44, 90, 63, 52, 52, 73, 59, 56, 57, 62, 57, 56, 58, 52, 57, 78, 74, 63, 69, 57, 79, 66, 66, 55, 78, 94, 71, 54, 61, 69, 79, 94, 56, 65, 63, 54, 67, 67, 61, 68, 68, 55, 75, 40, 47, 57, 68, 62, 68, 50, 57, 72, 66, 77, 51, 72, 56, 91, 56, 75, 57, 65, 63, 49, 57, 75, 66, 86, 64, 62, 96, 67, 87, 48, 47, 64, 46, 77, 65, 81, 82, 64, 68, 59, 64, 48, 55, 57, 79, 58, 58, 67, 65, 77, 60, 58, 70, 71, 56, 59, 77, 93, 49, 53, 50, 58, 36, 58, 68, 93, 69, 80, 60, 56, 67, 83, 77, 58, 63, 71, 63, 64, 75, 58, 55, 60, 65, 73, 66, 60, 56, 67, 60, 62, 57, 63, 63, 53, 75, 135, 73, 56, 57, 70, 88, 60, 32, 87, 79, 75, 52, 66, 63, 89, 103, 65, 95, 64, 95, 56, 64, 63, 60, 66, 74, 54, 69, 75, 79, 90, 39, 78, 43, 67, 76, 90, 59, 93, 63, 49, 68, 99, 57, 53, 58, 71, 69, 72, 81, 65, 88, 57, 78, 77, 79, 82, 79, 64, 62, 50, 65, 117, 93, 64, 51, 58, 72, 57, 82, 55, 72, 59, 68, 60, 64, 58, 63, 51, 61, 64, 61, 55, 82, 58, 67, 65, 87, 61, 76, 59, 74, 63, 83, 74, 57, 66, 70, 63, 51, 63, 90, 54, 54, 37, 45, 70, 59, 67, 57, 61, 95, 51, 67, 53, 57, 48, 54, 73, 72, 69, 55, 99, 59, 74, 58, 82, 73, 65, 74, 67, 43, 57, 88, 47, 57, 66, 60, 67, 47, 47, 71, 63, 55, 69, 57, 52, 55, 85, 77, 73, 72, 109, 71, 72, 70, 70, 44, 71, 63, 56, 70, 76, 60, 77, 67, 84, 70, 65, 69, 51, 68, 58, 58, 65, 75, 69, 61, 74, 63, 53, 83, 66, 83, 63, 73, 55, 49, 68, 59, 43, 70, 75, 65, 64, 68, 70, 79, 56, 64, 55, 76, 54, 85, 43, 66, 62, 80, 56, 50, 82, 55, 59, 66, 49, 64, 70, 66, 60, 55, 67, 40, 59, 57, 68, 52, 58, 54, 62, 49, 69, 73, 52, 63, 74, 81, 71, 62, 54, 74, 69, 68, 63, 52, 58, 55, 65, 67, 70, 66, 65, 78, 59, 69, 68, 77, 59, 64, 83, 45, 46, 66, 72, 90, 72, 75, 64, 61, 68, 41, 45, 47, 63, 66, 54, 62, 70, 61, 58, 69, 69, 39, 38, 74, 65, 66, 54, 37, 77, 68, 58, 47, 63, 90, 53, 59, 68, 47, 49, 48, 64, 62, 63, 47, 76, 43, 51, 72, 51, 63, 53, 66, 63, 75, 47, 60, 64, 60, 57, 60, 66, 75, 59, 60, 41, 58, 53, 57, 70, 58, 73, 77, 72, 71, 59, 56, 61, 81, 96, 81, 63, 64, 65, 60, 56, 65, 54, 62, 68, 56, 60, 58, 59, 61, 61, 63, 86, 59, 58, 52, 63, 61, 66, 65, 56, 74, 46, 70, 65, 100, 69, 71, 55, 64, 63, 80, 62, 62, 60, 79, 66, 59, 55, 67, 70, 51, 118, 81, 75, 48, 55, 62, 101, 103, 57, 68, 59, 65, 92, 63, 91, 77, 73, 78, 58, 71, 58, 61, 50, 54, 57, 84, 72, 53, 54, 71, 65, 56, 62, 69, 53, 63, 61, 66, 64, 59, 65, 57, 58, 65, 58, 63, 71, 71, 51, 55, 53, 60, 67, 66, 61, 60, 54, 79, 69, 65, 65, 61, 67, 61, 51, 62, 74, 50, 67, 60, 65, 54, 68, 72, 49, 52, 67, 52, 69, 62, 56, 66, 63, 60, 64, 61, 62, 48, 70, 49, 76, 80, 63, 58, 58, 126, 50, 57, 62, 51, 60, 78, 70, 61, 62, 96, 75, 64, 49, 62, 66, 61, 58, 65, 83, 64, 57, 62, 63, 66, 65, 57, 58, 84, 66, 64, 51, 71, 45, 61, 60, 46, 60, 55, 60, 71, 76, 87, 67, 62, 58, 65, 115, 54, 71, 59, 59, 87, 87, 58, 62, 65, 66, 54, 58, 58, 55, 71, 114, 54, 81, 121, 55, 66, 57, 56, 68, 70, 49, 75, 78, 53, 51, 44, 81, 107, 56, 84, 69, 68, 63, 53, 74, 68, 69, 57, 62, 68, 62, 63, 59, 59, 58, 50, 71, 67, 51, 77, 60, 66, 55, 65, 58, 53, 82, 67, 57, 60, 94, 68, 70, 63, 63, 74, 66, 77, 66, 61, 84, 67, 76, 65, 80, 70, 58, 57, 65, 65, 56, 53, 63, 60, 60, 92, 68, 71, 60, 56, 68, 55, 64, 54, 58, 69, 58, 62, 56, 57, 56, 63, 58, 51, 78, 60, 42, 58, 61, 48, 58, 111, 44, 94, 89, 58, 74, 58, 51, 62, 70, 63, 66, 71, 72, 79, 61, 64, 56, 78, 92, 72, 81, 66, 65, 64, 60, 63, 55, 61, 58, 60, 72, 88, 71, 79, 83, 70, 72, 55, 57, 66, 63, 92, 72, 66, 62, 54, 76, 80, 59, 56, 52, 52, 60, 55, 64, 100, 61, 64, 50, 67, 80, 60, 92, 62, 57, 57, 58, 57, 92, 55, 51, 66, 78, 53, 60, 75, 59, 101, 81, 109, 53, 63, 68, 82, 68, 55, 65, 56, 72, 55, 67, 66, 64, 67, 105, 85, 58, 68, 83, 58, 69, 66, 61, 60, 67, 49, 53, 72, 70, 61, 75, 67, 67, 63, 57, 67, 60, 65, 69, 62, 82, 56, 59, 62, 75, 62, 54, 75, 96, 69, 82, 68, 67, 53, 68, 64, 61, 79, 51, 66, 95, 51, 68, 58, 64, 63, 57, 60, 79, 87, 82, 70, 70, 57, 57, 64, 77, 86, 60, 69, 54, 67, 57, 60, 63, 67, 77, 58, 58, 67, 60, 60, 70, 64, 77, 62, 64, 53, 69, 94, 58, 68, 83, 62, 103, 59, 64, 56, 64, 51, 54, 73, 56, 62, 55, 69, 73, 58, 60, 68, 58, 59, 47, 83, 75, 70, 59, 68, 57, 48, 86, 62, 67, 60, 58, 57, 52, 65, 65, 93, 80, 68, 66, 81, 64, 68, 58, 60, 61, 72, 73, 63, 72, 54, 71, 56, 74, 112, 55, 111, 85, 67, 66, 66, 90, 58, 59, 67, 48, 43, 70, 60, 86, 64, 83, 78, 67, 55, 51, 63, 89, 77, 56, 57, 67, 79, 73, 66, 62, 71, 87, 60, 53, 61, 63, 69, 73, 77, 60, 77, 88, 65, 56, 65, 48, 67, 62, 60, 60, 55, 73, 52, 55, 59, 60, 67, 106, 60, 61, 52, 74, 70, 65, 93, 65, 69, 50, 57, 68, 52, 64, 80, 59, 80, 56, 57, 76, 66, 74, 73, 69, 57, 69, 59, 58, 60, 61, 60, 57, 65, 78, 65, 57, 61, 56, 66, 90, 74, 64, 58, 61, 72, 61, 61, 64, 65, 57, 76, 91, 87, 88, 50, 57, 56, 62, 92, 77, 73, 67, 59, 75, 59, 61, 65, 76, 56, 64, 81, 73, 57, 72, 54, 90, 68, 68, 54, 82, 52, 108, 56, 54, 77, 80, 53, 64, 65, 54, 96, 63, 67, 69, 56, 89, 69, 61, 98, 62, 69, 65, 74, 69, 49, 55, 61, 58, 59, 82, 53, 90, 52, 73, 92, 52, 79, 80, 76, 64, 58, 55, 63, 66, 56, 65, 57, 59, 73, 69, 79, 54, 87, 67, 76, 67, 61, 56, 62, 71, 63, 60, 66, 108, 80, 61, 62, 68, 55, 60, 59, 67, 61, 46, 53, 62, 57, 57, 69, 54, 56, 57, 74, 74, 65, 75, 62, 67, 80, 51, 74, 52, 61, 75, 76, 63, 56, 51, 58, 64, 80, 65, 67, 69, 85, 61, 73, 78, 63, 68, 52, 60, 64, 50, 65, 61, 61, 66, 66, 72, 65, 58, 53, 98, 49, 71, 71, 97, 54, 53, 72, 66, 63, 73, 84, 59, 56, 56, 68, 72, 78, 71, 81, 52, 64, 58, 63, 67, 54, 84, 55, 66, 59, 102, 75, 59, 59, 72, 62, 69, 73, 64, 50, 69, 65, 49, 61, 61, 46, 58, 60, 51, 93, 40, 75, 62, 62, 73, 59, 52, 67, 80, 62, 57, 77, 64, 53, 72, 64, 63, 81, 47, 53, 54, 81, 83, 51, 97, 70, 84, 65, 71, 61, 63, 76, 43, 54, 52, 61, 66, 61, 90, 64, 69, 60, 63, 77, 57, 67, 51, 59, 90, 59, 68, 52, 64, 57, 68, 64, 62, 65, 57, 58, 48, 59, 59, 64, 50, 71, 56, 68, 76, 60, 65, 56, 58, 69, 46, 74, 63, 61, 64, 60, 65, 76, 54, 65, 57, 74, 72, 94, 51, 60, 52, 73, 67, 56, 60, 64, 62, 55, 84, 64, 60, 56, 60, 65, 90, 69, 68, 46, 70, 60, 42, 63, 56, 62, 62, 60, 79, 64, 63, 55, 49, 63, 69, 53, 61, 55, 51, 62, 67, 62, 62, 58, 58, 80, 60, 62, 60, 64, 56, 71, 55, 70, 48, 78, 62, 50, 73, 59, 63, 74, 87, 72, 58, 52, 65, 76, 61, 78, 71, 75, 73, 48, 54, 50, 54, 64, 92, 65, 63, 71, 58, 64, 60, 67, 66, 60, 62, 58, 51, 60, 65, 68, 51, 79, 58, 69, 61, 67, 60, 68, 59, 81, 60, 74, 77, 66, 60, 113, 70, 54, 63, 58, 76, 62, 63, 65, 61, 63, 53, 53, 53, 58, 63, 51, 58, 84, 74, 49, 58, 55, 69, 94, 55, 54, 83, 62, 61, 64, 58, 73, 57, 49, 60, 53, 76, 69, 39, 65, 54, 61, 61, 59, 62, 72, 90, 56, 102, 73, 72, 74, 49, 89, 67, 74, 62, 71, 76, 71, 47, 73, 51, 69, 97, 61, 66, 76, 61, 58, 77, 64, 52, 61, 39, 59, 54, 58, 59, 53, 61, 56, 54, 83, 55, 73, 91, 87, 57, 59, 52, 63, 53, 55, 59, 63, 55, 51, 60, 50, 44, 84, 54, 58, 58, 61, 74, 89, 71, 71, 85, 80, 61, 64, 69, 63, 72, 80, 74, 64, 64, 58, 59, 57, 58, 80, 79, 102, 55, 77, 66, 70, 76, 72, 65, 67, 70, 44, 61, 48, 67, 52, 64, 47, 55, 60, 105, 67, 73, 80, 45, 56, 57, 109, 60, 64, 78, 63, 131, 46, 56, 57, 66, 63, 72, 62, 68, 61, 77, 68, 48, 72, 80, 64, 63, 63, 50, 69, 57, 73, 77, 52, 69, 59, 69, 83, 63, 65, 61, 72, 69, 115, 62, 95, 60, 53, 57, 59, 84, 61, 50, 45, 93, 72, 56, 58, 62, 69, 77, 62, 47, 73, 50, 56, 70, 73, 72, 65, 67, 111, 96, 56, 55, 59, 67, 62, 58, 55, 67, 57, 67, 75, 65, 60, 62, 53, 54, 58, 63, 58, 61, 58, 58, 58, 76, 72, 65, 59, 80, 60, 54, 72, 60, 74, 131, 52, 53, 68, 128, 59, 45, 66, 58, 66, 38, 76, 60, 78, 60, 75, 66, 73, 71, 64, 65, 75, 58, 53, 57, 73, 70, 73, 64, 98, 89, 71, 52, 64, 68, 73, 77, 57, 66, 78, 68, 50, 59, 72, 66, 70, 51, 54, 50, 58, 54, 61, 83, 64, 64, 77, 61, 62, 71, 74, 52, 70, 78, 62, 63, 60, 64, 59, 59, 57, 53, 46, 98, 75, 61, 66, 65, 113, 73, 54, 67, 68, 108, 69, 74, 64, 69, 73, 64, 58, 69, 67, 67, 77, 78, 72, 60, 96, 60, 60, 68, 66, 68, 44, 59, 86, 112, 71, 66, 58, 63, 63, 94, 62, 63, 56, 83, 67, 65, 66, 67, 69, 53, 87, 67, 55, 55, 69, 52, 58, 83, 62, 73, 63, 55, 70, 57, 57, 65, 68, 78, 73, 86, 71, 63, 65, 80, 45, 57, 73, 88, 60, 68, 56, 62, 54, 66, 57, 73, 123, 46, 43, 79, 58, 64, 61, 59, 63, 70, 65, 61, 85, 83, 59, 59, 56, 59, 68, 64, 60, 62, 64, 79, 52, 69, 51, 70, 67, 64, 45, 73, 66, 59, 59, 53, 83, 51, 69, 68, 68, 54, 97, 56, 80, 77, 80, 93, 70, 60, 56, 70, 99, 54, 57, 88, 72, 46, 61, 64, 63, 70, 61, 61, 68, 59, 95, 73, 70, 49, 59, 75, 77, 76, 75, 68, 72, 55, 58, 56, 62, 39, 92, 51, 64, 60, 67, 68, 72, 63, 47, 75, 55, 60, 70, 71, 78, 74, 62, 59, 103, 65, 50, 70, 54, 56, 70, 100, 68, 60, 53, 58, 71, 54, 69, 55, 85, 55, 54, 81, 57, 42, 70, 68, 72, 70, 65, 67, 58, 58, 64, 53, 63, 81, 55, 89, 62, 68, 63, 57, 60, 69, 58, 85, 74, 75, 78, 55, 62, 72, 78, 56, 93, 100, 59, 66, 74, 84, 61, 64, 54, 59, 56, 66, 52, 62, 68, 58, 85, 63, 66, 60, 61, 77, 43, 61, 54, 51, 68, 64, 69, 104, 63, 74, 67, 75, 68, 40, 68, 63, 84, 59, 65, 76, 59, 69, 57, 49, 61, 67, 76, 64, 64, 47, 59, 74, 54, 60, 52, 50, 64, 57, 85, 56, 55, 62, 55, 63, 58, 70, 54, 91, 69, 68, 50, 72, 59, 52, 71, 56, 76, 67, 33, 50, 65, 71, 69, 60, 89, 64, 67, 45, 70, 60, 56, 44, 61, 51, 47, 62, 92, 63, 62, 66, 60, 63, 56, 64, 63, 57, 70, 74, 70, 55, 63, 70, 69, 58, 55, 73, 77, 99, 56, 81, 58, 54, 66, 46, 62, 87, 55, 72, 74, 53, 67, 59, 61, 102, 67, 52, 41, 66, 61, 57, 49, 67, 81, 81, 61, 58, 53, 56, 74, 90, 56, 50, 54, 57, 82, 71, 52, 65, 55, 67, 86, 69, 65, 74, 73, 65, 63, 68, 74, 71, 77, 53, 58, 58, 55, 79, 62, 62, 82, 71, 95, 68, 64, 65, 57, 68, 60, 53, 67, 62, 59, 64, 57, 46, 69, 58, 66, 61, 81, 53, 68, 78, 47, 58, 54, 58, 88, 54, 59, 53, 65, 48, 102, 83, 116, 65, 79, 63, 59, 85, 63, 59, 43, 65, 56, 68, 75, 72, 62, 61, 86, 80, 59, 50, 62, 67, 80, 59, 58, 60, 60, 50, 64, 77, 63, 92, 88, 69, 90, 57, 43, 69, 58, 67, 97, 82, 65, 71, 78, 74, 64, 63, 54, 58, 73, 67, 61, 48, 62, 66, 86, 63, 58, 55, 66, 72, 62, 75, 73, 66, 66, 67, 65, 87, 68, 67, 68, 51, 58, 60, 98, 71, 74, 59, 49, 95, 64, 76, 53, 72, 70, 63, 82, 54, 64, 51, 91, 60, 57, 36, 55, 72, 71, 55, 55, 98, 71, 71, 57, 63, 69, 71, 57, 62, 73, 82, 67, 49, 57, 67, 64, 54, 84, 55, 64, 91, 63, 67, 100, 66, 68, 74, 63, 63, 100, 79, 79, 61, 49, 63, 87, 74, 70, 56, 70, 60, 70, 56, 66, 62, 58, 70, 62, 84, 65, 80, 85, 57, 82, 44, 73, 51, 56, 67, 66, 56, 49, 56, 71, 61, 114, 58, 84, 66, 62, 96, 62, 67, 55, 63, 68, 61, 66, 55, 66, 94, 67, 56, 55, 63, 55, 61, 82, 89, 84, 87, 88, 49, 63, 56, 65, 61, 79, 92, 65, 53, 64, 59, 68, 73, 75, 55, 54, 51, 58, 73, 63, 80, 98, 48, 70, 57, 58, 67, 55, 60, 67, 91, 64, 62, 86, 83, 59, 62, 65, 61, 77, 63, 55, 56, 60, 60, 69, 62, 50, 76, 57, 40, 73, 52, 63, 92, 92, 74, 65, 100, 62, 69, 49, 63, 59, 76, 71, 57, 67, 75, 72, 105, 70, 61, 52, 69, 60, 59, 77, 55, 66, 51, 69, 66, 80, 99, 39, 62, 57, 66, 65, 71, 71, 79, 64, 64, 78, 72, 55, 93, 85, 75, 45, 69, 65, 68, 61, 42, 97, 64, 59, 91, 73, 72, 64, 65, 92, 61, 50, 52, 68, 64, 59, 57, 62, 42, 59, 65, 65, 79, 53, 50, 73, 74, 66, 66, 62, 65, 71, 66, 71, 68, 65, 65, 69, 68, 62, 49, 67, 73, 42, 78, 71, 63, 46, 65, 65, 73, 55, 60, 96, 63, 55, 52, 53, 62, 57, 73, 41, 53, 66, 54, 59, 54, 93, 44, 76, 61, 80, 69, 62, 68, 100, 84, 70, 61, 48, 51, 71, 62, 85, 67, 59, 55, 85, 57, 112, 67, 46, 81, 36, 52, 62, 71, 61, 80, 51, 71, 55, 54, 58, 71, 63, 63, 58, 67, 56, 72, 66, 64, 58, 61, 68, 60, 50, 77, 41, 102, 53, 81, 46, 55, 73, 64, 58, 49, 57, 62, 81, 67, 63, 57, 85, 62, 61, 74, 61, 62, 64, 74, 54, 58, 70, 101, 55, 55, 44, 53, 66, 69, 62, 52, 67, 52, 67, 82, 53, 60, 56, 60, 86, 64, 66, 62, 66, 66, 77, 67, 56, 64, 85, 57, 76, 57, 57, 73, 62, 60, 60, 73, 61, 62, 64, 47, 54, 72, 68, 164, 63, 57, 56, 68, 63, 55, 65, 67, 65, 62, 102, 46, 48, 84, 59, 70, 54, 86, 73, 56, 57, 61, 68, 67, 49, 59, 78, 62, 69, 59, 52, 59, 65, 73, 61, 76, 90, 79, 66, 68, 59, 56, 67, 53, 48, 73, 50, 66, 58, 44, 51, 61, 53, 65, 48, 79, 56, 63, 58, 66, 67, 72, 91, 75, 64, 60, 54, 63, 56, 66, 56, 74, 72, 90, 70, 51, 61, 85, 63, 73, 45, 66, 92, 65, 82, 70, 80, 60, 77, 92, 60, 58, 53, 79, 77, 68, 88, 88, 46, 50, 50, 91, 78, 61, 72, 64, 85, 53, 82, 64, 66, 70, 65, 59, 88, 58, 61, 72, 77, 77, 51, 62, 53, 55, 67, 53, 54, 56, 75, 55, 46, 64, 75, 90, 68, 55, 68, 65, 68, 82, 56, 74, 93, 73, 64, 51, 88, 63, 65, 76, 84, 61, 61, 55, 106, 68, 54, 64, 76, 71, 42, 59, 69, 91, 87, 73, 89, 62, 89, 109, 56, 54, 50, 69, 67, 50, 56, 34, 61, 64, 60, 63, 65, 64, 65, 47, 100, 87, 76, 88, 77, 66, 55, 94, 64, 61, 73, 51, 67, 53, 56, 65, 61, 66, 42, 68, 43, 66, 56, 67, 56, 52, 63, 72, 67, 60, 69, 70, 67, 63, 74, 55, 65, 56, 66, 62, 53, 69, 65, 63, 59, 64, 54, 58, 63, 48, 56, 60, 45, 91, 47, 62, 75, 82, 74, 76, 72, 84, 84, 68, 53, 57, 46, 68, 64, 69, 47, 74, 64, 75, 63, 61, 68, 68, 63, 62, 147, 68, 52, 63, 54, 66, 56, 64, 45, 53, 59, 68, 58, 70, 60, 54, 91, 60, 68, 60, 62, 66, 75, 63, 54, 51, 64, 58, 74, 55, 69, 59, 60, 76, 68, 73, 55, 74, 55, 56, 63, 67, 79, 73, 56, 77, 85, 50, 64, 53, 72, 60, 82, 56, 57, 53, 59, 55, 59, 43, 56, 66, 72, 68, 61, 71, 66, 57, 55, 56, 68, 65, 57, 76, 93, 71, 97, 44, 72, 69, 47, 56, 51, 61, 68, 75, 56, 74, 67, 60, 96, 93, 40, 74, 59, 78, 69, 51, 50, 81, 64, 73, 73, 89, 46, 47, 73, 84, 86, 95, 51, 61, 74, 56, 72, 64, 67, 55, 42, 72, 81, 66, 47, 64, 67, 71, 58, 63, 57, 73, 102, 65, 85, 61, 101, 86, 68, 57, 59, 42, 70, 80, 60, 61, 70, 70, 60, 87, 54, 61, 80, 67, 55, 69, 91, 56, 67, 60, 70, 59, 66, 50, 80, 73, 85, 74, 70, 51, 59, 60, 80, 103, 68, 49, 68, 66, 71, 54, 72, 124, 45, 59, 73, 86, 65, 61, 60, 57, 53, 69, 88, 68, 50, 77, 91, 57, 54, 58, 93, 53, 63, 81, 39, 78, 61, 84, 61, 63, 63, 66, 79, 63, 57, 72, 77, 59, 80, 63, 65, 98, 65, 58, 52, 60, 89, 70, 85, 84, 79, 63, 69, 62, 67, 72, 102, 70, 57, 62, 52, 56, 76, 69, 80, 66, 58, 51, 64, 68, 88, 78, 67, 64, 55, 55, 58, 64, 79, 59, 70, 52, 83, 73, 76, 70, 69, 69, 65, 74, 75, 53, 71, 63, 63, 57, 97, 72, 71, 66, 70, 83, 57, 61, 70, 56, 51, 59, 50, 56, 74, 75, 83, 68, 49, 90, 74, 71, 60, 79, 57, 55, 55, 47, 61, 62, 49, 57, 70, 60, 88, 68, 65, 52, 87, 73, 70, 66, 49, 81, 68, 57, 77, 56, 58, 83, 104, 54, 58, 81, 81, 83, 79, 70, 113, 66, 47, 62, 57, 75, 74, 58, 60, 75, 86, 72, 61, 72, 58, 63, 50, 92, 71, 100, 48, 56, 77, 72, 42, 67, 64, 72, 57, 66, 58, 65, 57, 63, 80, 55, 66, 80, 62, 67, 64, 57, 66, 66, 80, 57, 56, 73, 66, 77, 68, 58, 48, 51, 70, 73, 66, 64, 54, 67, 51, 76, 50, 63, 65, 54, 82, 56, 52, 44, 63, 48, 65, 44, 54, 67, 66, 46, 68, 58, 65, 61, 61, 93, 57, 70, 55, 55, 74, 60, 82, 104, 61, 66, 74, 62, 84, 62, 74, 73, 64, 54, 87, 57, 70, 82, 51, 61, 85, 52, 66, 54, 61, 73, 76, 68, 59, 57, 54, 67, 63, 66, 67, 65, 65, 64, 95, 89, 66, 49, 76, 64, 73, 95, 78, 62, 51, 63, 72, 64, 82, 68, 86, 66, 112, 63, 63, 71, 69, 81, 58, 82, 71, 80, 64, 47, 57, 65, 60, 96, 72, 54, 60, 70, 54, 54, 58, 63, 81, 58, 67, 60, 60, 61, 55, 58, 57, 62, 58, 67, 53, 61, 69, 68, 65, 53, 55, 73, 67, 55, 48, 58, 59, 77, 61, 62, 82, 59, 44, 69, 51, 78, 67, 65, 56, 63, 80, 55, 62, 51, 63, 73, 59, 79, 78, 65, 54, 99, 60, 68, 66, 68, 64, 47, 67, 51, 66, 69, 65, 63, 63, 62, 101, 71, 57, 65, 73, 58, 66, 80, 64, 63, 53, 70, 73, 59, 61, 54, 62, 56, 65, 57, 86, 52, 69, 66, 57, 55, 62, 49, 76, 113, 55, 58, 65, 45, 49, 49, 51, 51, 64, 68, 64, 67, 56, 61, 54, 80, 55, 52, 73, 59, 57, 66, 67, 52, 55, 92, 60, 64, 49, 51, 86, 74, 75, 62, 55, 64, 84, 64, 65, 62, 55, 57, 79, 50, 94, 56, 76, 83, 97, 91, 62, 73, 67, 70, 52, 57, 73, 74, 62, 56, 66, 64, 62, 58, 59, 61, 51, 57, 59, 96, 54, 65, 54, 52, 65, 57, 73, 76, 69, 59, 60, 57, 53, 77, 74, 53, 59, 50, 65, 52, 51, 60, 65, 92, 62, 59, 61, 58, 61, 65, 66, 65, 66, 58, 54, 54, 70, 66, 90, 64, 60, 80, 62, 57, 72, 73, 66, 70, 58, 68, 75, 58, 63, 66, 61, 73, 80, 40, 69, 72, 86, 100, 93, 61, 50, 55, 60, 77, 69, 58, 68, 73, 76, 70, 70, 45, 67, 70, 63, 62, 48, 67, 66, 73, 62, 68, 66, 54, 60, 63, 55, 59, 64, 147, 61, 63, 66, 62, 57, 60, 67, 62, 71, 70, 85, 74, 63, 48, 66, 65, 58, 82, 67, 64, 74, 81, 63, 72, 63, 61, 72, 72, 53, 69, 65, 104, 75, 67, 70, 63, 69, 61, 58, 72, 51, 57, 68, 61, 59, 88, 81, 73, 57, 90, 60, 68, 48, 69, 63, 47, 57, 67, 58, 74, 55, 68, 77, 70, 56, 61, 61, 61, 75, 82, 64, 47, 57, 78, 64, 70, 69, 61, 65, 56, 50, 66, 65, 58, 75, 67, 67, 88, 50, 84, 62, 60, 65, 59, 70, 68, 57, 98, 77, 68, 59, 63, 69, 62, 68, 55, 67, 57, 64, 66, 60, 61, 76, 88, 104, 52, 60, 74, 70, 101, 58, 82, 82, 53, 66, 60, 51, 63, 77, 74, 62, 61, 62, 81, 64, 56, 60, 78, 57, 61, 84, 63, 114, 74, 64, 51, 76, 96, 54, 82, 70, 62, 57, 83, 94, 69, 66, 74, 61, 58, 61, 52, 52, 62, 52, 75, 60, 68, 47, 123, 68, 80, 71, 74, 63, 91, 59, 65, 59, 107, 74, 54, 58, 63, 70, 58, 120, 56, 90, 79, 65, 41, 57, 60, 65, 77, 64, 53, 54, 62, 61, 62, 73, 55, 80, 65, 61, 72, 55, 67, 53, 55, 65, 55, 67, 57, 64, 66, 51, 56, 74, 56, 53, 61, 59, 69, 68, 54, 63, 68, 54, 66, 58, 65, 53, 59, 67, 66, 60, 52, 56, 65, 75, 64, 73, 87, 54, 84, 75, 67, 69, 53, 72, 56, 54, 61, 60, 72, 75, 63, 67, 57, 86, 74, 65, 88, 121, 66, 88, 77, 70, 60, 85, 55, 50, 53, 59, 86, 68, 68, 68, 65, 62, 53, 76, 55, 68, 52, 81, 85, 53, 63, 59, 62, 68, 59, 54, 85, 78, 61, 67, 62, 58, 68, 61, 67, 59, 74, 47, 60, 64, 97, 57, 66, 66, 50, 54, 59, 54, 69, 59, 47, 62, 53, 64, 70, 52, 82, 82, 71, 57, 72, 62, 52, 65, 58, 53, 64, 55, 107, 55, 59, 55, 73, 80, 56, 62, 72, 67, 64, 57, 64, 64, 90, 69, 95, 100, 71, 77, 73, 70, 88, 47, 57, 58, 61, 75, 50, 93, 75, 63, 64, 64, 69, 67, 96, 55, 72, 68, 88, 57, 75, 62, 59, 105, 66, 76, 56, 53, 59, 66, 59, 66, 59, 75, 52, 69, 52, 73, 57, 69, 73, 66, 63, 65, 67, 61, 107, 57, 73, 78, 72, 79, 95, 73, 56, 66, 74, 70, 62, 78, 52, 70, 82, 59, 58, 58, 62, 95, 50, 94, 70, 50, 57, 63, 67, 71, 46, 74, 68, 48, 55, 92, 52, 62, 105, 62, 67, 95, 67, 68, 66, 47, 56, 67, 60, 68, 47, 47, 55, 72, 55, 51, 73, 64, 62, 60, 51, 63, 65, 65, 77, 61, 88, 59, 74, 42, 72, 72, 51, 62, 60, 79, 93, 79, 103, 45, 65, 77, 54, 81, 70, 69, 63, 105, 58, 73, 66, 64, 50, 62, 47, 77, 52, 56, 70, 92, 66, 47, 46, 62, 79, 63, 59, 81, 65, 64, 56, 61, 67, 49, 67, 56, 87, 68, 67, 66, 52, 66, 81, 61, 81, 49, 96, 57, 52, 62, 67, 58, 65, 85, 78, 65, 66, 70, 45, 59, 71, 64, 68, 64, 51, 71, 64, 90, 73, 70, 70, 61, 94, 76, 81, 83, 55, 69, 57, 62, 50, 55, 58, 58, 53, 56, 64, 39, 57, 57, 46, 58, 59, 68, 61, 55, 102, 59, 69, 63, 90, 60, 59, 113, 74, 64, 67, 64, 85, 59, 61, 91, 48, 53, 64, 67, 90, 68, 70, 69, 97, 72, 63, 77, 56, 60, 56, 63, 77, 64, 60, 45, 60, 44, 80, 70, 56, 67, 54, 62, 65, 78, 68, 73, 68, 57, 87, 73, 69, 45, 37, 76, 46, 65, 61, 59, 58, 60, 77, 68, 71, 52, 63, 55, 45, 70, 63, 71, 72, 66, 54, 68, 61, 63, 60, 58, 61, 58, 55, 46, 55, 68, 61, 59, 52, 59, 63, 65, 63, 63, 75, 59, 58, 59, 79, 58, 55, 68, 64, 61, 61, 63, 83, 59, 75, 68, 54, 70, 86, 56, 66, 58, 59, 100, 60, 61, 51, 63, 61, 71, 64, 59, 62, 66, 89, 61, 93, 47, 75, 60, 58, 67, 66, 63, 50, 81, 98, 90, 54, 56, 67, 66, 75, 66, 69, 75, 68, 68, 52, 63, 50, 48, 88, 81, 64, 66, 59, 60, 36, 74, 68, 92, 73, 85, 61, 74, 48, 64, 68, 80, 86, 91, 80, 79, 72, 76, 84, 82, 59, 72, 76, 50, 50, 68, 77, 70, 57, 58, 69, 45, 56, 47, 52, 53, 81, 82, 70, 61, 75, 75, 65, 63, 85, 67, 72, 83, 73, 71, 61, 105, 56, 58, 41, 59, 50, 51, 60, 78, 58, 54, 57, 74, 58, 67, 75, 60, 68, 61, 65, 60, 68, 82, 64, 52, 60, 58, 54, 56, 90, 75, 63, 55, 59, 48, 45, 42, 72, 107, 101, 55, 66, 94, 64, 62, 81, 65, 44, 73, 68, 65, 65, 70, 66, 57, 77, 62, 67, 64, 92, 66, 67, 57, 46, 52, 53, 71, 54, 45, 63, 62, 68, 62, 65, 80, 53, 46, 65, 51, 48, 75, 89, 59, 87, 63, 87, 68, 50, 64, 62, 60, 55, 54, 58, 73, 101, 65, 58, 49, 63, 47, 64, 68, 43, 77, 45, 78, 54, 70, 66, 52, 47, 54, 117, 74, 54, 74, 73, 59, 80, 75, 75, 57, 66, 66, 74, 75, 65, 84, 77, 64, 71, 64, 70, 51, 46, 62, 79, 56, 93, 69, 62, 63, 57, 52, 49, 126, 71, 54, 74, 64, 44, 63, 61, 64, 63, 64, 71, 81, 61, 52, 89, 64, 66, 57, 52, 47, 45, 84, 69, 65, 56, 100, 68, 56, 104, 63, 51, 57, 50, 42, 70, 73, 82, 51, 59, 60, 57, 56, 83, 64, 48, 70, 63, 63, 81, 49, 55, 52, 65, 83, 89, 38, 58, 89, 64, 65, 62, 41, 64, 59, 68, 79, 43, 66, 68, 49, 67, 61, 55, 58, 67, 96, 50, 58, 79, 72, 143, 57, 58, 85, 55, 56, 72, 68, 99, 65, 51, 114, 95, 49, 69, 57, 79, 60, 63, 57, 57, 52, 67, 42, 73, 71, 73, 77, 74, 63, 65, 66, 55, 72, 68, 61, 68, 111, 49, 78, 60, 65, 64, 78, 51, 65, 83, 51, 84, 55, 63, 70, 50, 70, 73, 48, 73, 66, 74, 68, 62, 55, 50, 103, 50, 53, 70, 63, 73, 53, 59, 73, 58, 69, 96, 68, 61, 66, 48, 58, 74, 76, 51, 68, 82, 87, 56, 73, 79, 76, 88, 52, 69, 49, 60, 72, 51, 74, 61, 55, 65, 66, 88, 72, 59, 51, 84, 77, 46, 48, 56, 66, 87, 47, 85, 103, 61, 51, 71, 96, 74, 59, 68, 50, 77, 86, 62, 46, 52, 57, 65, 78, 61, 57, 67, 55, 55, 90, 72, 73, 74, 50, 73, 96, 74, 72, 66, 83, 78, 79, 71, 53, 91, 61, 66, 62, 61, 79, 95, 51, 59, 60, 57, 50, 68, 65, 54, 90, 89, 55, 93, 54, 76, 80, 90, 59, 69, 75, 60, 58, 48, 52, 44, 81, 66, 73, 55, 95, 72, 47, 85, 99, 60, 65, 67, 72, 68, 39, 60, 52, 41, 60, 48, 56, 70, 74, 78, 80, 72, 86, 84, 57, 57, 49, 54, 67, 38, 56, 72, 65, 79, 66, 39, 64, 66, 52, 43, 47, 62, 57, 85, 71, 68, 48, 74, 72, 56, 83, 71, 67, 54, 54, 64, 80, 58, 72, 96, 107, 55, 78, 64, 83, 70, 57, 52, 60, 60, 45, 40, 77, 61, 57, 69, 76, 67, 64, 64, 137, 66, 67, 61, 55, 77, 58, 53, 61, 64, 52, 75, 96, 70, 88, 64, 78, 66, 69, 59, 89, 68, 81, 59, 54, 80, 67, 78, 57, 65, 68, 41, 59, 70, 76, 71, 75, 49, 72, 68, 67, 54, 58, 81, 47, 95, 69, 61, 58, 85, 59, 79, 53, 73, 66, 69, 71, 56, 57, 62, 50, 101, 68, 50, 71, 60, 74, 67, 52, 51, 58, 64, 54, 59, 84, 66, 83, 51, 104, 57, 92, 52, 56, 60, 80, 69, 63, 79, 70, 38, 101, 85, 66, 78, 77, 69, 77, 46, 50, 64, 62, 68, 73, 67, 84, 44, 76, 68, 71, 71, 59, 61, 84, 54, 74, 63, 55, 52, 67, 56, 85, 73, 50, 83, 93, 78, 79, 72, 84, 83, 81, 52, 44, 62, 87, 55, 39, 57, 62, 45, 88, 76, 60, 49, 67, 67, 63, 70, 68, 68, 73, 62, 64, 61, 98, 51, 67, 67, 64, 62, 69, 64, 101, 57, 72, 54, 94, 56, 51, 62, 68, 48, 79, 63, 49, 53, 64, 76, 59, 89, 77, 71, 84, 58, 58, 43, 73, 67, 53, 61, 72, 61, 42, 61, 84, 56, 86, 65, 70, 51, 62, 77, 61, 77, 68, 61, 70, 65, 68, 61, 81, 68, 86, 62, 94, 112, 97, 46, 56, 84, 61, 49, 75, 58, 86, 54, 68, 65, 29, 69, 58, 63, 70, 41, 66, 60, 67, 88, 53, 58, 64, 69, 65, 73, 59, 63, 67, 64, 69, 74, 63, 61, 64, 78, 79, 49, 73, 47, 73, 88, 83, 56, 61, 70, 84, 73, 74, 87, 67, 60, 53, 63, 60, 47, 71, 42, 60, 58, 79, 48, 68, 70, 58, 68, 73, 65, 74, 51, 52, 52, 58, 72, 60, 113, 56, 97, 44, 73, 60, 57, 66, 69, 74, 66, 71, 71, 68, 54, 90, 55, 56, 69, 53, 74, 62, 53, 53, 74, 60, 51, 61, 82, 62, 53, 104, 63, 64, 73, 38, 76, 52, 80, 87, 54, 76, 70, 63, 91, 62, 56, 54, 68, 57, 76, 67, 101, 49, 66, 56, 75, 54, 55, 54, 55, 72, 51, 64, 60, 65, 60, 40, 71, 78, 67, 67, 54, 49, 67, 59, 87, 54, 65, 90, 50, 64, 80, 106, 74, 63, 68, 58, 66, 58, 75, 52, 74, 61, 62, 68, 58, 55, 63, 53, 50, 54, 58, 84, 46, 56, 53, 57, 60, 63, 52, 59, 75, 65, 54, 71, 99, 61, 73, 67, 51, 42, 92, 60, 54, 36, 66, 77, 71, 93, 77, 57, 59, 76, 58, 55, 83, 93, 61, 60, 62, 63, 50, 55, 59, 63, 66, 66, 47, 78, 58, 55, 62, 80, 83, 40, 47, 60, 72, 64, 72, 58, 63, 53, 78, 109, 75, 85, 51, 52, 71, 49, 58, 65, 77, 70, 58, 51, 93, 77, 75, 75, 53, 74, 54, 59, 62, 66, 61, 68, 62, 78, 60, 62, 70, 73, 72, 39, 76, 95, 59, 97, 59, 56, 67, 65, 71, 78, 62, 66, 58, 70, 61, 59, 77, 53, 67, 55, 94, 58, 58, 60, 90, 77, 54, 63, 68, 76, 67, 78, 55, 60, 56, 68, 60, 69, 50, 99, 67, 61, 52, 68, 65, 59, 47, 94, 62, 64, 58, 66, 60, 71, 70, 56, 61, 72, 68, 73, 77, 54, 97, 52, 117, 56, 67, 50, 98, 79, 66, 54, 64, 72, 71, 62, 65, 98, 62, 64, 56, 68, 79, 61, 57, 69, 64, 57, 63, 66, 68, 53, 69, 59, 61, 64, 63, 69, 68, 65, 66, 70, 43, 68, 75, 63, 50, 63, 79, 50, 54, 71, 63, 56, 57, 57, 67, 54, 49, 60, 75, 70, 68, 62, 93, 59, 55, 73, 57, 72, 60, 50, 59, 57, 56, 61, 69, 58, 61, 71, 59, 67, 61, 48, 50, 80, 60, 58, 85, 61, 59, 56, 80, 63, 54, 50, 64, 60, 62, 40, 71, 112, 51, 71, 77, 62, 72, 74, 89, 41, 71, 76, 65, 58, 47, 60, 84, 64, 75, 57, 55, 60, 53, 63, 78, 112, 88, 62, 81, 75, 52, 63, 66, 56, 69, 63, 70, 55, 70, 81, 79, 56, 52, 51, 55, 72, 61, 60, 50, 81, 64, 60, 66, 75, 107, 57, 63, 55, 64, 52, 73, 68, 118, 55, 67, 68, 56, 79, 117, 69, 57, 60, 65, 65, 68, 72, 75, 58, 62, 90, 97, 55, 49, 58, 67, 76, 57, 48, 54, 55, 83, 45, 55, 62, 60, 68, 73, 71, 64, 76, 69, 89, 56, 65, 71, 66, 159, 65, 56, 88, 57, 67, 79, 62, 83, 61, 57, 93, 65, 74, 54, 52, 63, 62, 65, 77, 56, 55, 64, 58, 57, 74, 64, 74, 51, 61, 47, 65, 60, 74, 67, 49, 59, 66, 61, 59, 67, 52, 64, 76, 56, 72, 59, 52, 48, 87, 75, 70, 73, 62, 58, 71, 67, 56, 64, 74, 52, 71, 65, 55, 52, 60, 63, 65, 58, 59, 51, 64, 86, 77, 82, 64, 75, 75, 76, 53, 81, 58, 51, 68, 72, 83, 66, 76, 41, 72, 108, 66, 69, 59, 55, 75, 66, 88, 49, 59, 59, 62, 67, 52, 65, 72, 69, 69, 43, 61, 58, 69, 69, 55, 69, 59, 66, 57, 56, 77, 92, 65, 66, 59, 86, 59, 60, 60, 85, 78, 67, 67, 64, 54, 57, 75, 63, 68, 65, 62, 75, 55, 60, 89, 62, 73, 54, 77, 57, 60, 62, 65, 78, 58, 57, 65, 65, 92, 64, 57, 67, 54, 61, 61, 57, 97, 60, 57, 59, 46, 79, 62, 48, 70, 62, 64, 84, 52, 51, 74, 68, 57, 55, 74, 57, 64, 63, 63, 73, 77, 94, 63, 59, 61, 49, 66, 56, 68, 66, 67, 54, 72, 56, 95, 63, 61, 63, 101, 57, 58, 72, 50, 65, 56, 57, 70, 53, 77, 58, 63, 46, 55, 66, 59, 63, 80, 64, 48, 83, 59, 78, 57, 65, 47, 57, 71, 67, 90, 65, 65, 71, 65, 74, 67, 66, 58, 43, 125, 57, 62, 77, 70, 55, 50, 67, 83, 61, 49, 65, 55, 89, 71, 54, 80, 64, 90, 70, 141, 89, 58, 59, 56, 65, 57, 56, 64, 60, 67, 54, 79, 59, 71, 82, 62, 55, 61, 67, 68, 56, 67, 37, 52, 49, 52, 79, 75, 70, 59, 62, 59, 42, 62, 54, 60, 46, 57, 56, 65, 60, 64, 69, 63, 129, 66, 58, 70, 61, 60, 59, 65, 68, 70, 63, 66, 63, 68, 49, 76, 71, 74, 60, 62, 63, 49, 52, 52, 77, 45, 57, 62, 66, 100, 63, 57, 63, 88, 55, 60, 63, 72, 68, 54, 82, 62, 61, 72, 74, 96, 76, 59, 67, 60, 100, 75, 79, 73, 64, 52, 47, 47, 65, 75, 73, 73, 69, 79, 67, 66, 65, 75, 68, 68, 56, 67, 64, 54, 58, 86, 74, 59, 63, 40, 55, 73, 59, 50, 68, 66, 47, 57, 57, 69, 69, 52, 55, 71, 71, 67, 66, 70, 62, 58, 69, 65, 65, 61, 59, 74, 64, 66, 71, 77, 72, 68, 59, 77, 57, 59, 56, 53, 57, 93, 69, 67, 62, 53, 52, 56, 73, 71, 98, 63, 54, 61, 78, 60, 100, 111, 57, 48, 59, 60, 74, 60, 78, 49, 64, 91, 81, 51, 58, 86, 66, 57, 74, 65, 47, 69, 65, 78, 55, 70, 63, 81, 82, 61, 71, 60, 70, 70, 58, 64, 89, 78, 46, 61, 69, 71, 62, 58, 58, 74, 59, 74, 75, 65, 82, 61, 53, 52, 59, 95, 83, 64, 65, 64, 60, 62, 70, 76, 67, 49, 61, 93, 53, 91, 54, 66, 52, 79, 61, 66, 51, 76, 58, 72, 74, 90, 58, 73, 64, 64, 46, 74, 54, 72, 66, 65, 72, 59, 66, 45, 66, 68, 62, 60, 74, 51, 58, 57, 52, 100, 81, 64, 61, 59, 55, 66, 56, 53, 51, 65, 72, 59, 104, 47, 69, 61, 56, 59, 75, 95, 69, 52, 60, 48, 55, 59, 71, 76, 84, 51, 60, 62, 60, 59, 58, 72, 92, 51, 85, 95, 59, 63, 62, 53, 74, 77, 73, 65, 65, 81, 72, 74, 71, 66, 65, 64, 82, 51, 66, 68, 100, 54, 72, 78, 97, 81, 77, 74, 56, 82, 71, 59, 63, 62, 69, 62, 62, 79, 59, 79, 60, 55, 66, 43, 90, 66, 48, 84, 57, 56, 68, 99, 71, 58, 72, 45, 68, 67, 61, 67, 62, 55, 62, 55, 56, 61, 87, 84, 59, 54, 64, 57, 56, 65, 50, 55, 69, 78, 59, 69, 67, 84, 62, 53, 52, 54, 64, 74, 63, 60, 74, 68, 61, 63, 63, 61, 72, 68, 81, 65, 54, 65, 68, 57, 63, 71, 67, 92, 55, 86, 58, 64, 83, 76, 63, 56, 85, 78, 75, 65, 73, 54, 72, 53, 69, 75, 70, 46, 61, 53, 75, 56, 82, 64, 54, 58, 71, 61, 66, 47, 61, 70, 55, 52, 53, 55, 88, 68, 65, 64, 75, 50, 55, 81, 58, 49, 56, 70, 59, 72, 83, 75, 75, 66, 55, 66, 65, 68, 45, 45, 73, 57, 94, 48, 96, 63, 59, 52, 48, 63, 72, 55, 57, 78, 54, 62, 64, 76, 92, 72, 61, 79, 73, 57, 56, 47, 61, 72, 55, 49, 77, 72, 79, 56, 53, 42, 65, 73, 71, 64, 66, 72, 70, 61, 59, 57, 65, 55, 73, 60, 37, 58, 64, 61, 71, 45, 49, 60, 77, 60, 55, 62, 67, 53, 62, 55, 67, 99, 68, 74, 54, 67, 73, 69, 44, 68, 65, 67, 63, 61, 64, 85, 52, 59, 61, 65, 66, 64, 74, 61, 54, 67, 66, 45, 55, 55, 53, 62, 59, 71, 68, 58, 45, 62, 65, 70, 76, 50, 60, 76, 66, 75, 76, 60, 81, 85, 71, 75, 52, 95, 73, 69, 57, 57, 89, 85, 66, 71, 57, 57, 74, 71, 81, 83, 58, 64, 85, 79, 90, 97, 118, 70, 43, 57, 73, 50, 64, 58, 77, 67, 57, 70, 74, 65, 79, 57, 68, 48, 61, 90, 72, 66, 49, 58, 53, 58, 59, 57, 43, 70, 55, 70, 75, 53, 77, 66, 61, 74, 69, 50, 61, 58, 61, 67, 55, 38, 78, 69, 63, 54, 77, 41, 60, 48, 60, 46, 39, 58, 67, 59, 66, 42, 77, 68, 70, 64, 54, 83, 53, 60, 62, 69, 56, 55, 124, 65, 61, 56, 56, 44, 56, 55, 68, 70, 73, 75, 68, 75, 66, 50, 74, 66, 56, 75, 69, 70, 74, 69, 91, 88, 58, 61, 122, 63, 67, 55, 140, 54, 79, 68, 81, 60, 46, 70, 50, 57, 69, 97, 70, 67, 63, 49, 76, 66, 66, 71, 73, 135, 71, 38, 61, 41, 60, 67, 64, 65, 61, 81, 76, 63, 66, 79, 67, 76, 55, 34, 66, 73, 74, 57, 73, 57, 62, 56, 48, 66, 65, 68, 74, 77, 63, 71, 66, 62, 90, 73, 52, 82, 59, 49, 61, 55, 53, 65, 51, 59, 74, 65, 67, 68, 154, 62, 73, 61, 65, 48, 46, 112, 63, 65, 65, 63, 74, 61, 85, 62, 30, 54, 64, 89, 62, 49, 101, 105, 54, 74, 91, 58, 66, 72, 87, 68, 57, 95, 57, 75, 69, 61, 56, 69, 65, 54, 69, 57, 90, 77, 55, 54, 52, 72, 59, 72, 112, 108, 64, 56, 51, 75, 64, 44, 68, 61, 49, 64, 59, 68, 49, 58, 68, 52, 67, 50, 58, 43, 145, 61, 60, 55, 81, 61, 49, 96, 89, 74, 66, 66, 54, 84, 44, 70, 72, 82, 77, 52, 55, 73, 67, 47, 72, 59, 69, 69, 61, 61, 88, 69, 63, 84, 71, 61, 69, 52, 78, 69, 78, 65, 76, 61, 72, 66, 51, 85, 54, 63, 56, 60, 60, 42, 62, 68, 57, 51, 44, 46, 81, 66, 73, 56, 76, 54, 69, 62, 44, 57, 60, 72, 42, 83, 79, 61, 89, 60, 72, 50, 51, 77, 46, 57, 59, 60, 98, 62, 70, 49, 66, 57, 62, 60, 49, 56, 56, 76, 100, 52, 56, 64, 61, 62, 70, 73, 62, 73, 60, 81, 58, 75, 60, 67, 60, 68, 53, 60, 67, 65, 51, 54, 73, 53, 48, 51, 60, 60, 72, 67, 81, 60, 68, 74, 57, 55, 68, 92, 112, 61, 66, 55, 93, 86, 57, 61, 76, 112, 81, 40, 58, 75, 83, 68, 51, 56, 77, 48, 66, 68, 71, 50, 68, 83, 81, 80, 64, 58, 47, 70, 57, 73, 68, 82, 73, 79, 99, 60, 63, 48, 101, 66, 75, 72, 53, 80, 51, 70, 80, 57, 57, 60, 69, 69, 88, 79, 82, 62, 57, 71, 54, 72, 58, 52, 72, 77, 90, 58, 65, 59, 53, 90, 58, 67, 69, 86, 55, 64, 59, 87, 78, 64, 39, 87, 71, 58, 82, 58, 62, 68, 86, 54, 44, 68, 68, 85, 73, 56, 91, 95, 99, 74, 60, 61, 40, 45, 69, 56, 55, 69, 71, 54, 58, 60, 65, 80, 73, 61, 60, 62, 51, 67, 67, 56, 102, 67, 65, 64, 68, 75, 43, 55, 74, 71, 58, 52, 73, 76, 45, 57, 51, 69, 63, 59, 84, 79, 62, 71, 41, 68, 56, 42, 56, 79, 72, 59, 68, 56, 56, 56, 82, 76, 79, 69, 58, 67, 63, 71, 73, 54, 57, 83, 63, 53, 93, 89, 74, 62, 81, 67, 67, 88, 51, 71, 83, 99, 81, 90, 60, 70, 65, 56, 73, 79, 52, 60, 54, 60, 59, 62, 40, 30, 63, 47, 69, 81, 48, 59, 68, 68, 62, 60, 119, 60, 82, 83, 75, 50, 71, 57, 55, 58, 51, 70, 62, 52, 80, 70, 57, 80, 55, 69, 92, 54, 58, 72, 65, 74, 60, 71, 77, 61, 78, 62, 53, 53, 70, 58, 62, 55, 68, 71, 66, 101, 59, 56, 78, 51, 56, 71, 73, 55, 58, 68, 46, 68, 70, 55, 65, 65, 57, 66, 44, 53, 63, 54, 53, 61, 85, 64, 88, 68, 65, 59, 69, 82, 49, 61, 69, 84, 99, 74, 62, 60, 69, 63, 55, 82, 64, 53, 57, 73, 65, 60, 61, 57, 89, 81, 78, 62, 42, 55, 60, 75, 56, 69, 64, 77, 96, 61, 55, 65, 81, 90, 57, 96, 63, 70, 51, 81, 63, 43, 68, 43, 59, 70, 65, 81, 67, 75, 60, 57, 44, 69, 62, 57, 85, 81, 52, 88, 55, 60, 48, 132, 64, 64, 64, 70, 69, 64, 54, 58, 53, 64, 60, 60, 54, 71, 66, 52, 56, 49, 54, 54, 52, 59, 45, 64, 85, 99, 58, 58, 61, 84, 80, 62, 56, 52, 67, 53, 78, 50, 105, 63, 73, 50, 55, 54, 57, 59, 90, 51, 59, 43, 56, 74, 89, 68, 80, 72, 59, 47, 51, 55, 65, 60, 83, 57, 64, 52, 89, 66, 65, 37, 60, 46, 66, 70, 63, 75, 77, 70, 85, 69, 87, 72, 80, 64, 70, 63, 58, 75, 73, 72, 81, 51, 40, 67, 93, 62, 62, 65, 72, 103, 70, 78, 69, 78, 51, 74, 71, 66, 66, 61, 89, 55, 61, 60, 60, 83, 62, 66, 70, 61, 44, 55, 57, 67, 61, 63, 58, 54, 83, 73, 51, 54, 82, 62, 60, 59, 73, 73, 65, 63, 71, 62, 59, 64, 60, 83, 60, 53, 57, 61, 52, 75, 53, 74, 59, 60, 60, 90, 65, 64, 69, 71, 73, 63, 42, 68, 63, 72, 66, 71, 48, 78, 82, 57, 64, 73, 63, 55, 72, 62, 59, 65, 59, 56, 91, 49, 110, 61, 62, 57, 64, 98, 62, 57, 69, 63, 42, 64, 51, 77, 53, 59, 53, 52, 70, 73, 74, 59, 74, 69, 65, 85, 63, 64, 68, 55, 58, 78, 61, 60, 51, 65, 62, 59, 57, 61, 69, 71, 65, 82, 66, 61, 73, 71, 82, 64, 56, 63, 71, 65, 64, 65, 53, 58, 68, 65, 62, 62, 63, 52, 82, 70, 65, 61, 62, 54, 77, 53, 93, 59, 65, 49, 67, 50, 65, 72, 55, 51, 67, 64, 77, 58, 51, 59, 64, 52, 59, 40, 63, 60, 110, 72, 45, 62, 57, 59, 55, 66, 69, 61, 69, 64, 58, 62, 73, 65, 82, 65, 88, 58, 61, 65, 58, 74, 64, 81, 56, 65, 51, 70, 64, 60, 69, 64, 59, 66, 97, 53, 72, 95, 76, 71, 64, 75, 63, 52, 68, 60, 69, 61, 61, 76, 98, 59, 55, 68, 69, 67, 74, 53, 56, 63, 66, 80, 69, 53, 77, 77, 58, 72, 63, 52, 77, 60, 69, 60, 55, 69, 62, 70, 72, 82, 105, 73, 106, 105, 49, 68, 60, 56, 63, 55, 55, 78, 60, 71, 65, 59, 83, 56, 56, 93, 87, 62, 56, 65, 55, 53, 60, 84, 68, 73, 59, 66, 64, 57, 69, 56, 60, 51, 58, 68, 85, 69, 65, 76, 55, 68, 66, 67, 56, 71, 56, 86, 75, 71, 78, 59, 66, 64, 54, 76, 60, 59, 56, 57, 54, 52, 51, 79, 60, 65, 67, 51, 48, 67, 50, 55, 58, 57, 62, 63, 64, 56, 47, 66, 90, 76, 55, 56, 89, 62, 63, 60, 62, 64, 49, 69, 70, 61, 61, 76, 68, 60, 55, 59, 72, 64, 65, 79, 86, 59, 66, 61, 65, 62, 76, 73, 63, 64, 59, 80, 60, 56, 64, 75, 89, 57, 62, 53, 55, 63, 74, 78, 82, 58, 73, 56, 78, 60, 79, 70, 60, 79, 53, 63, 63, 75, 52, 81, 59, 50, 80, 49, 55, 60, 87, 61, 61, 62, 44, 64, 58, 112, 67, 56, 66, 63, 83, 62, 76, 58, 58, 72, 61, 60, 52, 75, 76, 78, 56, 56, 52, 63, 82, 63, 77, 49, 63, 51, 51, 81, 78, 69, 67, 64, 66, 59, 69, 69, 65, 63, 69, 61, 67, 49, 95, 107, 122, 51, 59, 58, 67, 69, 59, 68, 69, 62, 57, 88, 70, 52, 61, 57, 52, 63, 83, 67, 60, 79, 57, 60, 68, 98, 51, 69, 67, 61, 102, 58, 55, 55, 64, 54, 71, 76, 66, 55, 57, 72, 65, 60, 60, 55, 61, 65, 58, 59, 60, 62, 56, 55, 67, 64, 71, 70, 100, 57, 94, 52, 68, 63, 64, 70, 76, 51, 75, 63, 60, 60, 54, 63, 47, 58, 53, 61, 65, 71, 62, 60, 63, 54, 48, 51, 52, 84, 77, 62, 63, 48, 69, 76, 65, 50, 49, 67, 53, 61, 65, 82, 68, 48, 63, 71, 60, 49, 66, 71, 66, 66, 61, 59, 60, 68, 57, 65, 70, 104, 53, 93, 52, 58, 60, 104, 96, 65, 65, 54, 56, 68, 62, 58, 75, 59, 68, 78, 61, 51, 61, 64, 65, 71, 60, 57, 62, 72, 62, 62, 55, 66, 65, 72, 67, 69, 64, 66, 61, 58, 47, 68, 68, 70, 57, 65, 65, 63, 63, 59, 52, 79, 110, 67, 63, 58, 62, 62, 74, 68, 63, 74, 64, 71, 49, 92, 107, 60, 108, 113, 50, 51, 87, 59, 70, 60, 57, 64, 46, 64, 65, 55, 76, 66, 69, 59, 67, 56, 57, 54, 64, 60, 62, 58, 50, 73, 58, 63, 70, 64, 62, 62, 62, 69, 68, 50, 84, 65, 62, 62, 58, 58, 55, 46, 69, 62, 64, 71, 88, 65, 54, 69, 92, 58, 63, 64, 56, 104, 71, 68, 54, 71, 54, 61, 78, 71, 75, 61, 68, 70, 69, 57, 65, 68, 63, 60, 63, 48, 61, 79, 54, 56, 53, 71, 80, 60, 69, 98, 62, 54, 85, 60, 60, 85, 61, 80, 52, 105, 70, 69, 58, 69, 58, 67, 51, 51, 73, 66, 52, 56, 63, 59, 55, 65, 103, 71, 49, 66, 66, 65, 57, 48, 57, 58, 59, 66, 67, 75, 57, 74, 77, 61, 85, 100, 64, 80, 85, 64, 65, 57, 57, 61, 69, 62, 61, 36, 69, 72, 82, 77, 63, 58, 108, 67, 61, 64, 74, 84, 70, 100, 60, 80, 78, 79, 72, 109, 69, 64, 68, 62, 87, 93, 114, 54, 76, 64, 67, 58, 76, 54, 65, 43, 61, 66, 69, 64, 56, 69, 63, 75, 108, 56, 68, 74, 64, 55, 54, 64, 48, 63, 69, 114, 38, 50, 83, 78, 58, 68, 63, 63, 61, 75, 70, 69, 81, 59, 70, 55, 64, 56, 85, 59, 63, 66, 63, 74, 60, 59, 61, 57, 67, 57, 56, 64, 63, 75, 62, 60, 49, 59, 74, 60, 70, 55, 68, 57, 71, 61, 58, 79, 86, 95, 64, 58, 60, 53, 61, 60, 53, 61, 75, 81, 48, 57, 59, 68, 65, 86, 60, 55, 64, 65, 50, 61, 58, 45, 70, 64, 65, 53, 51, 58, 58, 56, 74, 48, 54, 71, 88, 56, 63, 82, 69, 72, 46, 68, 59, 63, 56, 66, 61, 66, 75, 53, 63, 60, 62, 55, 70, 39, 55, 64, 57, 58, 70, 61, 68, 72, 69, 79, 60, 50, 60, 62, 63, 48, 62, 88, 76, 63, 57, 64, 60, 76, 64, 64, 55, 50, 64, 62, 65, 64, 60, 70, 60, 60, 59, 80, 59, 70, 62, 66, 70, 67, 59, 75, 64, 61, 68, 114, 126, 55, 55, 65, 59, 33, 65, 78, 76, 86, 85, 71, 87, 65, 73, 61, 87, 59, 68, 43, 66, 87, 54, 70, 78, 58, 42, 70, 35, 63, 73, 59, 88, 48, 101, 78, 56, 57, 71, 60, 81, 61, 67, 60, 65, 107, 50, 67, 52, 42, 51, 77, 57, 55, 68, 72, 56, 80, 69, 58, 76, 64, 118, 59, 58, 46, 55, 82, 52, 50, 53, 60, 63, 59, 74, 86, 52, 75, 66, 73, 45, 67, 71, 61, 65, 78, 71, 74, 72, 79, 68, 57, 78, 84, 90, 56, 70, 63, 68, 55, 44, 65, 45, 46, 59, 58, 71, 94, 61, 56, 65, 83, 55, 78, 76, 98, 63, 69, 94, 61, 57, 103, 76, 48, 58, 71, 61, 72, 82, 73, 68, 62, 86, 49, 62, 63, 73, 77, 83, 81, 70, 56, 55, 51, 95, 72, 75, 66, 85, 68, 61, 61, 60, 86, 61, 56, 46, 62, 76, 58, 69, 78, 105, 71, 52, 67, 63, 41, 43, 55, 79, 72, 56, 91, 56, 62, 79, 71, 64, 112, 52, 61, 55, 56, 62, 61, 67, 64, 67, 83, 101, 59, 66, 79, 97, 72, 66, 59, 53, 58, 61, 46, 71, 56, 66, 96, 61, 42, 60, 82, 57, 85, 63, 124, 67, 66, 45, 69, 89, 114, 63, 54, 63, 65, 73, 58, 65, 52, 52, 70, 78, 60, 83, 56, 56, 59, 52, 48, 109, 47, 73, 65, 44, 112, 64, 45, 75, 71, 73, 52, 71, 51, 55, 62, 65, 62, 73, 51, 61, 50, 63, 114, 52, 65, 51, 68, 54, 66, 80, 52, 84, 81, 95, 54, 68, 59, 69, 83, 50, 80, 92, 68, 80, 86, 59, 53, 77, 76, 68, 50, 93, 70, 56, 61, 83, 49, 81, 51, 60, 78, 58, 69, 36, 58, 101, 64, 75, 56, 56, 71, 57, 47, 64, 41, 90, 46, 60, 60, 43, 57, 52, 64, 78, 50, 68, 37, 68, 60, 55, 38, 47, 82, 59, 85, 96, 79, 49, 95, 59, 67, 56, 53, 50, 64, 52, 75, 63, 66, 55, 54, 69, 42, 88, 39, 69, 51, 80, 61, 69, 50, 53, 58, 38, 56, 68, 62, 61, 78, 59, 61, 68, 66, 57, 73, 66, 73, 57, 81, 64, 39, 64, 67, 56, 54, 56, 57, 73, 35, 55, 76, 60, 90, 82, 70, 67, 69, 81, 56, 54, 49, 62, 56, 76, 75, 82, 61, 47, 66, 43, 61, 67, 72, 54, 73, 63, 69, 60, 93, 57, 58, 59, 51, 61, 58, 56, 44, 50, 46, 49, 114, 73, 65, 62, 47, 67, 51, 55, 60, 64, 56, 73, 80, 61, 80, 69, 126, 68, 73, 65, 64, 95, 79, 115, 56, 61, 63, 45, 54, 59, 93, 59, 71, 63, 55, 69, 74, 67, 71, 61, 64, 78, 80, 90, 61, 93, 55, 53, 61, 66, 53, 73, 50, 93, 63, 59, 59, 67, 58, 107, 63, 63, 48, 56, 76, 87, 58, 54, 53, 82, 77, 68, 42, 86, 66, 88, 48, 59, 96, 63, 52, 78, 61, 79, 58, 56, 53, 57, 45, 66, 59, 60, 76, 104, 63, 51, 55, 75, 52, 45, 60, 60, 59, 64, 60, 74, 47, 70, 109, 62, 38, 54, 76, 65, 72, 58, 50, 70, 61, 72, 87, 96, 65, 101, 65, 44, 54, 56, 48, 76, 69, 54, 52, 53, 70, 62, 48, 74, 102, 92, 42, 46, 56, 54, 89, 48, 64, 60, 64, 60, 59, 63, 65, 63, 61, 48, 52, 65, 68, 51, 58, 71, 72, 61, 109, 60, 66, 54, 55, 51, 98, 76, 56, 56, 63, 56, 63, 66, 57, 78, 67, 81, 104, 69, 84, 54, 38, 74, 82, 43, 68, 72, 114, 70, 70, 56, 73, 78, 101, 76, 87, 98, 58, 65, 53, 67, 74, 68, 62, 67, 60, 70, 70, 68, 58, 63, 72, 58, 73, 54, 57, 60, 65, 58, 61, 83, 69, 57, 52, 58, 82, 65, 71, 98, 65, 37, 51, 68, 59, 66, 57, 55, 64, 75, 58, 75, 77, 69, 49, 65, 80, 41, 58, 51, 55, 65, 46, 46, 67, 67, 92, 47, 54, 79, 84, 89, 82, 54, 64, 50, 65, 83, 59, 49, 62, 54, 65, 61, 61, 66, 73, 40, 62, 102, 58, 59, 91, 48, 71, 55, 63, 59, 66, 79, 68, 52, 77, 55, 101, 74, 96, 60, 55, 57, 57, 60, 81, 51, 46, 67, 97, 62, 53, 66, 74, 60, 60, 55, 69, 47, 69, 120, 59, 57, 67, 78, 119, 75, 54, 60, 65, 65, 71, 51, 54, 73, 74, 60, 77, 69, 64, 53, 65, 64, 39, 75, 76, 70, 71, 68, 67, 78, 39, 48, 71, 63, 60, 53, 45, 55, 47, 68, 69, 91, 65, 68, 63, 76, 99, 60, 59, 100, 60, 62, 82, 51, 58, 49, 80, 54, 69, 52, 63, 64, 74, 73, 75, 96, 80, 66, 52, 78, 55, 49, 59, 52, 74, 75, 120, 60, 86, 63, 74, 70, 73, 82, 84, 70, 66, 53, 53, 38, 58, 63, 60, 51, 70, 63, 51, 83, 65, 64, 72, 69, 48, 82, 70, 76, 58, 64, 55, 79, 55, 58, 49, 63, 76, 76, 62, 63, 56, 55, 60, 57, 66, 61, 84, 75, 83, 78, 68, 78, 60, 66, 66, 89, 64, 57, 93, 61, 54, 67, 72, 37, 52, 42, 63, 50, 59, 70, 90, 77, 102, 55, 63, 64, 47, 57, 72, 73, 65, 55, 60, 51, 70, 97, 85, 70, 91, 76, 80, 62, 78, 69, 78, 69, 49, 59, 63, 60, 51, 47, 64, 80, 86, 68, 75, 66, 45, 87, 89, 51, 67, 59, 60, 74, 48, 50, 80, 70, 63, 57, 57, 45, 71, 61, 75, 57, 70, 53, 54, 63, 52, 46, 54, 56, 67, 53, 44, 65, 57, 71, 63, 42, 113, 54, 62, 51, 57, 71, 43, 58, 79, 68, 54, 55, 81, 74, 77, 95, 45, 52, 133, 75, 75, 76, 61, 79, 74, 64, 74, 41, 53, 62, 55, 51, 57, 54, 53, 79, 64, 59, 56, 63, 63, 54, 70, 58, 65, 72, 78, 77, 70, 109, 57, 94, 72, 74, 52, 61, 101, 82, 74, 85, 115, 62, 85, 94, 78, 56, 87, 66, 71, 42, 47, 72, 87, 55, 81, 61, 68, 54, 86, 94, 52, 61, 42, 61, 60, 62, 81, 65, 63, 62, 66, 88, 88, 60, 58, 104, 64, 86, 55, 62, 60, 59, 98, 50, 51, 61, 62, 87, 67, 60, 72, 50, 67, 59, 62, 80, 57, 63, 72, 65, 49, 78, 76, 40, 43, 99, 92, 108, 80, 67, 46, 51, 48, 68, 55, 70, 64, 79, 59, 61, 64, 79, 57, 50, 71, 72, 72, 75, 60, 91, 54, 58, 50, 75, 85, 41, 67, 73, 39, 46, 70, 72, 71, 79, 84, 69, 83, 84, 58, 60, 51, 67, 48, 64, 65, 59, 87, 62, 66, 59, 60, 55, 63, 62, 61, 58, 58, 61, 76, 58, 78, 76, 55, 57, 65, 62, 77, 67, 76, 59, 64, 65, 94, 58, 52, 61, 51, 54, 71, 49, 79, 49, 84, 69, 56, 74, 53, 63, 61, 76, 65, 56, 89, 66, 64, 61, 87, 83, 83, 44, 65, 59, 91, 64, 60, 55, 72, 80, 63, 41, 51, 65, 75, 70, 63, 74, 53, 75, 49, 49, 73, 124, 67, 62, 70, 93, 54, 75, 88, 63, 59, 47, 80, 54, 73, 68, 54, 46, 65, 78, 49, 58, 71, 56, 67, 92, 59, 59, 53, 67, 62, 76, 70, 98, 74, 65, 56, 60, 54, 85, 58, 61, 60, 50, 112, 44, 63, 60, 52, 63, 52, 60, 49, 61, 68, 63, 62, 76, 58, 60, 77, 77, 76, 58, 52, 62, 44, 72, 68, 63, 77, 75, 56, 99, 50, 62, 54, 73, 60, 67, 55, 57, 78, 79, 51, 59, 76, 79, 51, 71, 70, 29, 48, 59, 59, 71, 52, 47, 50, 50, 60, 72, 84, 93, 56, 40, 76, 74, 57, 97, 67, 66, 59, 50, 77, 67, 41, 65, 51, 73, 60, 69, 71, 55, 74, 62, 80, 64, 63, 68, 62, 40, 49, 69, 82, 56, 45, 57, 80, 92, 60, 55, 85, 60, 54, 56, 58, 50, 77, 74, 69, 82, 62, 52, 61, 75, 107, 52, 66, 59, 59, 75, 72, 55, 76, 56, 59, 51, 56, 93, 67, 85, 84, 60, 67, 53, 88, 70, 85, 67, 71, 73, 92, 59, 61, 68, 86, 63, 54, 75, 51, 85, 57, 82, 92, 59, 58, 44, 62, 95, 51, 64, 56, 60, 25, 81, 62, 79, 65, 101, 65, 57, 65, 59, 52, 62, 78, 67, 63, 62, 68, 64, 80, 58, 56, 72, 66, 56, 55, 55, 62, 56, 78, 55, 50, 70, 53, 78, 49, 63, 68, 69, 47, 59, 68, 68, 57, 80, 45, 74, 75, 97, 69, 65, 65, 46, 68, 94, 65, 61, 83, 52, 77, 46, 67, 86, 74, 62, 89, 79, 45, 79, 67, 89, 89, 111, 47, 64, 89, 55, 64, 44, 66, 98, 94, 49, 63, 67, 58, 71, 86, 37, 56, 76, 77, 33, 74, 53, 67, 52, 97, 76, 60, 135, 75, 42, 49, 66, 67, 66, 61, 52, 64, 57, 77, 87, 79, 42, 73, 86, 71, 50, 37, 62, 65, 48, 73, 42, 62, 47, 39, 47, 62, 66, 85, 76, 55, 55, 61, 81, 55, 81, 59, 112, 70, 49, 83, 71, 150, 63, 51, 118, 54, 60, 79, 63, 49, 69, 62, 45, 68, 71, 57, 68, 92, 64, 63, 48, 69, 55, 81, 66, 59, 56, 64, 68, 70, 57, 75, 66, 67, 79, 70, 46, 47, 60, 48, 59, 61, 65, 74, 63, 57, 82, 75, 82, 54, 61, 88, 55, 70, 56, 44, 67, 57, 85, 80, 50, 64, 65, 55, 58, 106, 77, 80, 101, 48, 73, 55, 45, 54, 46, 68, 54, 51, 59, 71, 41, 66, 74, 75, 54, 65, 73, 50, 52, 67, 88, 54, 67, 68, 73, 55, 52, 60, 76, 78, 51, 78, 84, 58, 91, 49, 65, 67, 44, 54, 63, 54, 67, 52, 74, 45, 103, 63, 71, 84, 107, 55, 71, 84, 56, 74, 64, 64, 62, 56, 82, 44, 43, 67, 62, 79, 57, 77, 48, 81, 28, 57, 53, 58, 61, 76, 51, 63, 67, 49, 65, 85, 56, 67, 60, 61, 46, 74, 37, 90, 86, 41, 68, 66, 57, 60, 83, 51, 68, 54, 72, 65, 60, 64, 58, 96, 39, 54, 53, 72, 65, 54, 48, 54, 57, 74, 63, 62, 67, 78, 63, 71, 56, 76, 58, 71, 57, 55, 65, 56, 54, 56, 61, 90, 53, 60, 46, 71, 72, 58, 63, 84, 52, 95, 55, 63, 81, 80, 42, 83, 57, 54, 52, 61, 59, 62, 92, 54, 88, 68, 79, 53, 71, 103, 57, 59, 61, 66, 45, 66, 79, 77, 54, 61, 64, 67, 50, 55, 79, 54, 71, 96, 44, 57, 60, 68, 45, 70, 66, 65, 79, 44, 71, 83, 66, 50, 58, 81, 67, 64, 48, 52, 43, 84, 61, 55, 63, 76, 58, 78, 74, 63, 63, 101, 59, 77, 88, 61, 36, 65, 59, 72, 50, 57, 71, 55, 56, 56, 95, 60, 70, 61, 73, 112, 55, 62, 29, 58, 59, 55, 44, 88, 57, 61, 58, 60, 66, 46, 132, 52, 92, 47, 70, 67, 50, 89, 51, 73, 72, 64, 69, 105, 69, 46, 53, 60, 51, 75, 51, 60, 73, 57, 47, 72, 88, 46, 66, 65, 86, 72, 48, 80, 68, 62, 64, 86, 47, 53, 44, 63, 84, 52, 62, 68, 90, 67, 42, 43, 90, 87, 115, 51, 71, 81, 55, 54, 66, 88, 44, 87, 53, 66, 61, 80, 73, 50, 63, 74, 55, 61, 72, 67, 58, 56, 81, 77, 90, 50, 57, 73, 74, 94, 53, 63, 68, 61, 67, 80, 61, 75, 89, 70, 48, 63, 64, 64, 54, 56, 63, 61, 47, 81, 59, 66, 52, 55, 84, 58, 58, 64, 69, 65, 71, 80, 47, 53, 50, 108, 57, 59, 47, 77, 67, 57, 59, 73, 71, 55, 102, 61, 93, 70, 77, 70, 66, 80, 55, 55, 58, 53, 50, 51, 79, 61, 77, 74, 68, 72, 53, 48, 66, 92, 74, 36, 71, 69, 103, 63, 89, 71, 63, 50, 84, 63, 71, 51, 64, 103, 56, 74, 84, 86, 68, 70, 57, 74, 82, 70, 64, 71, 65, 73, 60, 53, 66, 48, 82, 62, 77, 58, 66, 66, 63, 72, 52, 68, 93, 58, 67, 61, 54, 86, 100, 98, 83, 73, 57, 49, 64, 83, 72, 67, 58, 62, 54, 55, 99, 56, 79, 75, 58, 69, 53, 54, 67, 66, 68, 63, 52, 73, 48, 68, 47, 73, 56, 57, 71, 56, 55, 70, 87, 53, 46, 42, 56, 61, 69, 58, 65, 79, 56, 91, 68, 61, 70, 78, 62, 58, 81, 63, 66, 57, 65, 64, 57, 66, 102, 61, 63, 54, 46, 48, 45, 86, 63, 63, 55, 63, 66, 56, 54, 65, 63, 53, 61, 78, 79, 66, 63, 69, 79, 66, 83, 60, 60, 60, 54, 62, 44, 58, 66, 81, 60, 73, 71, 72, 65, 60, 64, 55, 59, 67, 75, 58, 110, 69, 55, 65, 49, 87, 71, 64, 58, 65, 71, 61, 64, 53, 74, 65, 60, 63, 64, 78, 62, 59, 62, 86, 55, 57, 81, 47, 53, 67, 64, 58, 44, 69, 53, 56, 59, 65, 55, 51, 35, 75, 61, 72, 70, 41, 77, 68, 79, 67, 77, 79, 80, 90, 73, 173, 73, 77, 39, 62, 94, 66, 56, 74, 53, 66, 59, 59, 79, 59, 72, 48, 79, 59, 58, 74, 64, 60, 59, 61, 66, 52, 98, 80, 72, 66, 68, 84, 49, 72, 73, 65, 63, 62, 55, 57, 78, 69, 59, 65, 62, 58, 75, 67, 60, 48, 69, 50, 47, 75, 116, 56, 63, 66, 79, 65, 97, 63, 60, 59, 62, 60, 62, 68, 85, 71, 59, 66, 63, 74, 64, 54, 67, 64, 62, 54, 74, 47, 61, 66, 81, 60, 58, 62, 61, 50, 58, 55, 54, 86, 71, 64, 47, 58, 64, 63, 56, 66, 70, 80, 57, 63, 53, 60, 78, 70, 63, 76, 58, 51, 65, 63, 74, 53, 66, 63, 65, 107, 46, 65, 60, 79, 84, 59, 72, 69, 38, 61, 65, 56, 67, 60, 76, 60, 59, 62, 75, 62, 59, 74, 54, 78, 74, 61, 59, 73, 40, 77, 61, 66, 62, 66, 83, 52, 68, 72, 70, 58, 60, 57, 78, 73, 69, 52, 66, 55, 67, 52, 72, 122, 57, 54, 63, 59, 77, 73, 58, 57, 58, 56, 68, 72, 83, 58, 54, 56, 82, 68, 72, 55, 57, 65, 67, 52, 69, 55, 54, 72, 52, 63, 61, 85, 60, 80, 69, 76, 61, 53, 61, 63, 57, 60, 59, 59, 69, 56, 59, 59, 94, 67, 64, 62, 65, 57, 63, 68, 78, 57, 70, 63, 69, 62, 54, 58, 53, 72, 76, 55, 69, 69, 101, 77, 92, 65, 77, 69, 62, 70, 58, 97, 56, 72, 62, 78, 81, 67, 115, 50, 51, 80, 65, 70, 62, 48, 79, 69, 117, 70, 55, 57, 57, 63, 67, 66, 60, 53, 65, 68, 85, 51, 49, 65, 51, 90, 83, 71, 123, 57, 48, 74, 63, 55, 62, 59, 77, 63, 63, 83, 55, 73, 57, 61, 60, 61, 80, 77, 57, 63, 71, 68, 71, 55, 64, 73, 55, 57, 55, 97, 64, 57, 65, 51, 82, 64, 67, 49, 104, 69, 81, 78, 54, 105, 73, 72, 85, 63, 51, 68, 109, 65, 72, 62, 66, 44, 56, 81, 55, 55, 76, 66, 80, 47, 48, 104, 69, 59, 70, 69, 53, 60, 61, 66, 85, 57, 79, 64, 85, 68, 80, 63, 63, 76, 59, 70, 58, 56, 69, 75, 58, 58, 54, 76, 54, 91, 46, 62, 77, 63, 47, 68, 49, 67, 53, 58, 59, 79, 78, 52, 61, 61, 69, 57, 52, 58, 76, 53, 57, 80, 61, 77, 61, 63, 76, 72, 88, 59, 58, 64, 69, 74, 63, 69, 76, 56, 78, 83, 52, 54, 60, 68, 67, 65, 57, 75, 77, 49, 68, 58, 78, 64, 58, 77, 54, 51, 68, 67, 92, 70, 53, 57, 83, 73, 47, 70, 60, 55, 80, 50, 75, 66, 92, 48, 51, 65, 112, 61, 64, 55, 70, 53, 85, 58, 68, 57, 73, 80, 68, 83, 53, 57, 75, 63, 61, 53, 79, 60, 65, 65, 74, 55, 55, 56, 61, 54, 61, 55, 63, 45, 71, 55, 51, 71, 62, 71, 49, 64, 57, 55, 60, 88, 68, 54, 50, 50, 56, 57, 76, 41, 56, 60, 59, 82, 54, 58, 63, 70, 44, 59, 53, 50, 60, 69, 65, 75, 84, 66, 60, 56, 51, 83, 55, 49, 74, 69, 65, 78, 52, 44, 55, 77, 70, 56, 66, 69, 58, 70, 53, 83, 102, 50, 71, 59, 52, 59, 67, 69, 57, 59, 50, 53, 70, 69, 64, 58, 66, 57, 67, 60, 80, 58, 79, 50, 60, 57, 56, 61, 114, 57, 66, 61, 80, 54, 54, 65, 71, 59, 58, 61, 54, 73, 64, 51, 64, 65, 59, 49, 70, 49, 42, 61, 80, 46, 75, 80, 58, 75, 58, 77, 77, 64, 41, 53, 61, 58, 66, 71, 81, 54, 63, 64, 64, 63, 68, 51, 77, 78, 63, 60, 73, 60, 62, 76, 64, 55, 68, 66, 62, 62, 83, 59, 91, 61, 75, 62, 52, 64, 62, 74, 55, 97, 87, 71, 59, 63, 48, 68, 57, 60, 57, 62, 62, 101, 71, 65, 64, 98, 60, 72, 79, 70, 67, 95, 97, 69, 62, 117, 81, 61, 92, 53, 88, 57, 76, 59, 65, 58, 54, 67, 60, 84, 76, 61, 64, 77, 52, 61, 64, 80, 65, 73, 67, 65, 68, 49, 69, 54, 68, 104, 77, 56, 70, 39, 52, 75, 58, 127, 65, 56, 60, 60, 70, 76, 58, 68, 57, 60, 83, 64, 47, 52, 73, 80, 55, 58, 84, 76, 61, 63, 41, 45, 64, 56, 64, 45, 77, 71, 85, 66, 68, 56, 69, 57, 55, 59, 52, 67, 63, 76, 54, 58, 55, 53, 70, 71, 58, 72, 63, 61, 58, 56, 66, 62, 70, 80, 61, 48, 65, 74, 54, 73, 69, 49, 63, 63, 46, 57, 48, 76, 64, 61, 61, 84, 64, 49, 58, 56, 132, 69, 55, 81, 73, 75, 64, 86, 77, 51, 54, 95, 56, 104, 56, 63, 68, 79, 53, 100, 77, 56, 43, 67, 56, 59, 69, 61, 88, 87, 68, 60, 51, 69, 55, 70, 63, 84, 72, 45, 73, 40, 73, 53, 66, 72, 78, 74, 89, 54, 51, 59, 60, 95, 71, 55, 65, 66, 68, 65, 79, 56, 62, 63, 56, 91, 60, 87, 65, 48, 64, 74, 66, 59, 63, 46, 82, 72, 79, 80, 80, 49, 69, 55, 63, 77, 66, 66, 54, 56, 71, 47, 64, 42, 89, 107, 60, 70, 66, 114, 67, 51, 52, 64, 63, 60, 60, 75, 59, 48, 62, 74, 77, 55, 57, 69, 48, 66, 58, 62, 66, 67, 56, 72, 55, 52, 62, 57, 60, 57, 70, 64, 54, 61, 86, 51, 58, 56, 58, 68, 72, 71, 66, 66, 73, 54, 48, 59, 100, 58, 67, 78, 88, 75, 71, 57, 53, 66, 76, 64, 91, 55, 67, 106, 55, 65, 69, 66, 57, 71, 87, 60, 73, 78, 61, 51, 61, 50, 79, 82, 55, 68, 67, 60, 69, 54, 60, 70, 60, 40, 44, 61, 58, 75, 67, 90, 80, 59, 46, 60, 66, 71, 63, 67, 80, 56, 71, 49, 64, 54, 69, 57, 62, 106, 72, 55, 48, 55, 68, 58, 51, 75, 64, 61, 76, 62, 57, 73, 48, 46, 64, 64, 49, 65, 76, 62, 55, 73, 58, 45, 93, 55, 61, 87, 46, 114, 75, 70, 94, 46, 56, 61, 72, 67, 51, 63, 60, 43, 81, 57, 49, 72, 79, 71, 73, 57, 50, 83, 98, 67, 86, 64, 82, 64, 88, 56, 51, 47, 74, 76, 55, 59, 51, 65, 70, 59, 105, 77, 80, 59, 91, 62, 61, 59, 57, 71, 81, 67, 65, 62, 61, 65, 70, 61, 68, 53, 57, 91, 58, 61, 60, 50, 64, 66, 44, 70, 54, 67, 69, 66, 69, 96, 85, 68, 66, 69, 81, 63, 66, 77, 85, 69, 47, 66, 71, 54, 91, 65, 55, 58, 65, 55, 58, 77, 63, 87, 62, 67, 57, 65, 107, 73, 80, 66, 56, 57, 52, 101, 75, 80, 59, 108, 68, 64, 59, 66, 51, 59, 85, 66, 55, 49, 56, 66, 55, 66, 74, 70, 55, 56, 79, 71, 94, 77, 101, 52, 62, 59, 50, 56, 49, 72, 57, 41, 49, 48, 72, 47, 61, 68, 48, 61, 53, 88, 64, 49, 74, 59, 64, 61, 70, 59, 55, 58, 74, 61, 66, 68, 60, 79, 57, 74, 52, 62, 70, 62, 59, 69, 62, 52, 103, 72, 79, 59, 65, 63, 75, 58, 66, 59, 65, 51, 54, 53, 58, 57, 68, 65, 55, 58, 66, 66, 64, 55, 46, 49, 80, 64, 62, 81, 62, 79, 65, 90, 66, 52, 90, 86, 51, 57, 69, 70, 76, 61, 85, 73, 92, 55, 58, 65, 56, 72, 67, 66, 73, 64, 76, 59, 62, 58, 68, 83, 68, 40, 47, 72, 65, 51, 56, 55, 64, 107, 68, 63, 74, 58, 104, 47, 60, 66, 48, 72, 48, 57, 69, 85, 70, 118, 68, 83, 66, 75, 65, 82, 58, 70, 80, 64, 68, 60, 55, 58, 62, 55, 63, 74, 86, 60, 63, 61, 91, 57, 62, 66, 101, 66, 84, 78, 64, 69, 65, 52, 58, 52, 60, 68, 87, 63, 71, 82, 48, 59, 83, 63, 36, 73, 74, 60, 68, 63, 59, 92, 58, 58, 81, 59, 66, 64, 59, 57, 92, 53, 64, 75, 58, 69, 70, 82, 71, 75, 66, 62, 60, 66, 65, 69, 55, 56, 58, 50, 75, 81, 57, 73, 67, 62, 78, 81, 48, 63, 56, 73, 80, 113, 67, 53, 57, 84, 63, 61, 63, 53, 70, 61, 71, 69, 77, 84, 41, 48, 76, 81, 62, 42, 44, 55, 85, 60, 54, 51, 56, 60, 81, 51, 53, 51, 53, 52, 50, 49, 45, 88, 85, 43, 76, 56, 69, 70, 75, 82, 42, 63, 38, 62, 116, 54, 42, 61, 88, 57, 61, 65, 90, 50, 56, 72, 83, 54, 72, 57, 61, 59, 52, 68, 65, 59, 77, 49, 82, 49, 63, 69, 57, 71, 58, 92, 57, 50, 91, 79, 53, 69, 46, 58, 50, 63, 39, 56, 69, 95, 80, 59, 68, 64, 64, 70, 66, 63, 65, 55, 91, 64, 45, 106, 51, 61, 68, 71, 72, 64, 86, 48, 61, 47, 77, 57, 69, 62, 64, 72, 68, 65, 69, 54, 58, 77, 57, 67, 67, 59, 87, 71, 65, 66, 97, 50, 94, 62, 51, 95, 59, 104, 64, 97, 64, 58, 64, 59, 63, 68, 83, 65, 67, 46, 85, 64, 48, 92, 42, 62, 92, 62, 48, 44, 70, 73, 72, 60, 49, 62, 52, 53, 57, 81, 88, 56, 57, 61, 78, 102, 61, 60, 69, 53, 92, 67, 52, 57, 61, 53, 48, 50, 71, 66, 69, 65, 74, 49, 66, 82, 61, 87, 52, 67, 75, 37, 70, 69, 69, 77, 54, 54, 65, 87, 83, 62, 59, 59, 93, 56, 63, 55, 63, 52, 66, 76, 48, 55, 64, 31, 59, 62, 47, 53, 62, 61, 82, 69, 68, 94, 59, 58, 61, 45, 67, 86, 67, 59, 101, 43, 66, 68, 49, 70, 58, 46, 67, 53, 91, 102, 77, 52, 75, 94, 43, 77, 74, 58, 57, 74, 71, 60, 52, 56, 73, 77, 66, 64, 59, 87, 107, 72, 52, 69, 44, 62, 53, 62, 54, 74, 69, 55, 60, 70, 45, 80, 92, 114, 56, 61, 63, 81, 64, 56, 54, 65, 52, 68, 62, 55, 52, 69, 71, 49, 70, 105, 63, 65, 60, 65, 64, 89, 57, 74, 74, 55, 66, 69, 82, 82, 65, 77, 62, 72, 100, 90, 67, 61, 50, 56, 69, 72, 76, 82, 55, 57, 58, 57, 65, 61, 57, 61, 92, 55, 45, 65, 66, 60, 53, 64, 59, 66, 71, 60, 92, 96, 68, 53, 70, 54, 60, 53, 64, 90, 68, 60, 81, 68, 104, 67, 62, 90, 49, 44, 73, 57, 50, 77, 61, 51, 47, 70, 82, 74, 65, 60, 61, 72, 48, 82, 54, 47, 53, 72, 118, 67, 76, 71, 57, 56, 66, 72, 91, 60, 57, 79, 84, 61, 53, 59, 66, 114, 40, 61, 73, 63, 59, 95, 65, 56, 54, 77, 62, 47, 60, 70, 90, 73, 58, 59, 62, 55, 57, 74, 60, 49, 71, 56, 66, 73, 50, 52, 70, 54, 88, 70, 72, 58, 78, 60, 55, 56, 62, 51, 56, 52, 58, 58, 66, 62, 56, 75, 66, 45, 61, 48, 47, 62, 77, 71, 67, 65, 60, 52, 68, 37, 52, 70, 110, 54, 69, 85, 62, 54, 86, 67, 60, 105, 71, 66, 81, 57, 59, 68, 53, 76, 51, 84, 67, 67, 75, 64, 70, 69, 76, 113, 54, 46, 54, 70, 65, 78, 59, 61, 62, 68, 65, 134, 71, 56, 65, 59, 78, 71, 56, 56, 62, 55, 51, 58, 53, 73, 88, 54, 54, 107, 75, 63, 82, 77, 67, 62, 57, 85, 74, 80, 62, 62, 52, 47, 59, 64, 55, 60, 67, 68, 60, 48, 94, 52, 64, 56, 65, 67, 62, 71, 57, 61, 64, 61, 72, 71, 52, 89, 69, 54, 64, 106, 69, 63, 62, 58, 58, 39, 45, 64, 58, 58, 55, 81, 68, 65, 55, 59, 49, 42, 49, 59, 59, 83, 53, 62, 66, 74, 58, 52, 56, 80, 61, 69, 63, 84, 51, 67, 55, 66, 62, 58, 80, 52, 70, 69, 63, 67, 50, 59, 76, 110, 74, 60, 61, 61, 62, 55, 106, 50, 65, 65, 71, 69, 60, 62, 60, 60, 88, 61, 74, 54, 63, 47, 72, 41, 57, 131, 70, 56, 65, 64, 68, 50, 72, 54, 58, 64, 74, 64, 64, 45, 70, 69, 58, 60, 49, 85, 88, 52, 66, 101, 57, 74, 95, 88, 52, 73, 51, 65, 56, 75, 91, 102, 65, 47, 69, 61, 81, 64, 69, 84, 49, 63, 93, 59, 70, 54, 65, 72, 62, 68, 70, 62, 93, 63, 94, 64, 77, 59, 60, 88, 70, 56, 66, 51, 77, 65, 44, 74, 59, 58, 72, 56, 84, 59, 75, 110, 57, 56, 89, 62, 60, 64, 61, 58, 56, 63, 68, 64, 57, 70, 68, 56, 54, 89, 80, 84, 75, 70, 71, 78, 51, 69, 82, 67, 55, 51, 71, 56, 61, 76, 49, 63, 85, 58, 60, 68, 86, 74, 56, 71, 52, 47, 75, 57, 71, 87, 76, 68, 50, 69, 51, 65, 53, 55, 78, 81, 74, 54, 54, 98, 68, 55, 70, 65, 60, 46, 53, 77, 51, 62, 64, 82, 57, 83, 76, 73, 46, 63, 47, 53, 58, 60, 49, 57, 49, 54, 66, 79, 87, 58, 76, 65, 72, 65, 48, 54, 102, 60, 73, 65, 79, 91, 59, 66, 94, 60, 59, 63, 94, 60, 54, 41, 47, 65, 87, 83, 75, 67, 61, 65, 46, 58, 68, 46, 64, 57, 61, 80, 71, 71, 52, 113, 60, 88, 76, 51, 58, 84, 57, 60, 57, 71, 68, 57, 82, 68, 60, 65, 66, 52, 70, 49, 59, 73, 59, 60, 59, 50, 68, 65, 69, 57, 47, 64, 65, 80, 73, 108, 58, 81, 58, 46, 70, 70, 62, 59, 63, 64, 60, 62, 51, 67, 64, 84, 66, 59, 58, 103, 67, 53, 42, 61, 58, 59, 70, 81, 61, 65, 73, 59, 76, 50, 76, 62, 79, 68, 96, 72, 48, 65, 57, 58, 75, 86, 58, 74, 50, 123, 52, 55, 67, 94, 61, 111, 56, 89, 67, 88, 80, 63, 55, 48, 55, 57, 59, 102, 53, 73, 58, 75, 54, 62, 82, 53, 75, 57, 54, 73, 62, 34, 58, 56, 67, 87, 49, 61, 80, 48, 66, 84, 65, 54, 80, 55, 86, 64, 71, 63, 68, 58, 86, 60, 50, 66, 69, 54, 74, 61, 45, 61, 104, 43, 52, 62, 55, 52, 57, 57, 77, 61, 65, 92, 111, 55, 54, 59, 57, 79, 81, 67, 47, 97, 71, 64, 67, 77, 65, 67, 75, 62, 70, 46, 55, 63, 55, 81, 59, 67, 61, 67, 79, 82, 68, 61, 61, 128, 54, 58, 69, 58, 61, 62, 63, 48, 56, 42, 66, 67, 75, 55, 77, 53, 66, 60, 80, 62, 52, 83, 56, 57, 84, 87, 55, 54, 58, 51, 97, 80, 65, 82, 63, 53, 47, 66, 64, 44, 53, 50, 68, 72, 65, 61, 70, 63, 66, 55, 24, 100, 103, 72, 66, 60, 64, 57, 61, 64, 64, 52, 63, 87, 78, 72, 40, 70, 68, 64, 68, 93, 72, 80, 79, 78, 61, 86, 73, 60, 73, 67, 60, 82, 56, 82, 70, 66, 59, 52, 67, 83, 57, 92, 47, 70, 59, 80, 65, 72, 46, 48, 71, 76, 51, 131, 50, 60, 58, 80, 50, 79, 72, 64, 50, 75, 73, 82, 73, 57, 97, 65, 55, 68, 65, 79, 77, 54, 76, 61, 72, 57, 91, 67, 58, 61, 66, 55, 54, 52, 50, 101, 79, 57, 69, 50, 54, 74, 75, 52, 92, 64, 68, 44, 55, 72, 66, 51, 55, 67, 95, 55, 81, 56, 70, 58, 80, 63, 65, 62, 55, 52, 69, 65, 84, 71, 69, 66, 78, 84, 58, 64, 48, 64, 85, 57, 49, 59, 97, 68, 56, 51, 75, 52, 46, 78, 57, 60, 63, 81, 62, 65, 72, 55, 70, 77, 52, 72, 47, 54, 55, 60, 56, 71, 57, 70, 91, 66, 56, 66, 58, 67, 60, 49, 71, 64, 75, 77, 58, 78, 79, 58, 53, 66, 49, 48, 53, 59, 92, 56, 65, 55, 61, 62, 65, 63, 54, 58, 57, 53, 63, 48, 60, 87, 46, 60, 47, 49, 69, 94, 46, 53, 76, 58, 73, 100, 62, 55, 62, 50, 67, 63, 58, 67, 48, 71, 72, 63, 55, 65, 70, 40, 64, 72, 60, 56, 63, 56, 68, 60, 63, 47, 51, 68, 56, 73, 55, 61, 65, 40, 66, 53, 59, 60, 56, 78, 60, 83, 89, 75, 83, 70, 51, 68, 61, 70, 61, 55, 101, 77, 82, 76, 64, 55, 89, 75, 74, 84, 71, 67, 89, 60, 60, 44, 81, 72, 68, 55, 66, 49, 69, 47, 59, 73, 71, 65, 56, 62, 50, 59, 55, 44, 106, 80, 58, 55, 84, 63, 60, 76, 70, 68, 65, 77, 45, 60, 65, 60, 65, 77, 57, 62, 46, 68, 64, 76, 71, 61, 70, 58, 56, 60, 53, 78, 86, 68, 66, 64, 63, 57, 60, 61, 67, 65, 81, 67, 56, 68, 78, 49, 60, 60, 66, 67, 59, 40, 74, 67, 83, 84, 65, 56, 67, 67, 61, 44, 57, 64, 56, 84, 66, 90, 76, 54, 59, 49, 72, 60, 50, 78, 61, 58, 67, 68, 80, 74, 58, 69, 57, 66, 60, 79, 59, 59, 59, 77, 57, 71, 75, 60, 79, 62, 48, 81, 52, 64, 71, 72, 72, 66, 69, 69, 69, 60, 61, 67, 61, 80, 50, 67, 45, 67, 70, 65, 52, 58, 59, 160, 58, 69, 69, 71, 73, 73, 59, 64, 77, 56, 57, 74, 61, 62, 73, 65, 59, 73, 74, 73, 72, 71, 71, 60, 63, 70, 74, 47, 43, 63, 58, 75, 59, 72, 73, 50, 62, 62, 72, 90, 56, 53, 67, 78, 55, 87, 46, 40, 53, 56, 63, 51, 64, 67, 75, 57, 68, 46, 84, 75, 59, 64, 54, 88, 68, 67, 53, 66, 62, 52, 67, 63, 56, 71, 62, 89, 62, 93, 63, 50, 70, 45, 48, 57, 63, 54, 98, 77, 82, 65, 94, 76, 79, 57, 50, 54, 67, 63, 69, 50, 52, 59, 66, 76, 75, 53, 69, 80, 54, 54, 47, 79, 57, 60, 60, 53, 88, 59, 65, 63, 65, 53, 59, 82, 63, 73, 63, 77, 58, 64, 62, 70, 59, 60, 60, 151, 89, 55, 67, 58, 65, 71, 74, 60, 61, 44, 68, 59, 58, 55, 59, 53, 84, 61, 59, 80, 63, 67, 48, 81, 64, 58, 54, 71, 61, 59, 55, 61, 63, 68, 57, 56, 66, 53, 64, 56, 65, 62, 57, 77, 63, 54, 100, 57, 61, 65, 65, 73, 61, 63, 72, 69, 66, 57, 75, 55, 57, 69, 65, 53, 78, 74, 69, 116, 68, 50, 55, 75, 54, 49, 56, 78, 71, 61, 70, 68, 63, 56, 79, 57, 75, 70, 63, 86, 75, 61, 57, 62, 69, 49, 79, 61, 72, 75, 71, 59, 57, 71, 60, 77, 70, 97, 62, 66, 70, 66, 68, 77, 60, 56, 72, 67, 70, 72, 96, 68, 57, 75, 69, 59, 69, 55, 59, 74, 79, 65, 69, 84, 49, 63, 78, 88, 60, 98, 81, 66, 73, 63, 59, 68, 69, 65, 52, 61, 54, 48, 69, 82, 59, 57, 84, 53, 59, 64, 49, 69, 92, 58, 68, 58, 59, 59, 94, 61, 71, 85, 73, 90, 75, 53, 59, 63, 66, 56, 70, 70, 93, 78, 52, 55, 56, 56, 89, 72, 57, 63, 65, 66, 104, 65, 75, 95, 72, 76, 57, 117, 65, 66, 58, 96, 80, 61, 69, 62, 54, 62, 51, 51, 56, 56, 56, 79, 77, 68, 50, 68, 69, 54, 67, 63, 73, 35, 62, 68, 54, 62, 62, 58, 66, 81, 59, 67, 68, 65, 72, 55, 76, 87, 76, 73, 66, 58, 86, 54, 76, 46, 58, 74, 75, 71, 59, 50, 72, 59, 57, 44, 61, 75, 70, 63, 62, 64, 71, 57, 60, 75, 56, 58, 72, 52, 82, 55, 58, 60, 91, 57, 84, 72, 91, 62, 59, 65, 57, 53, 43, 73, 71, 60, 61, 94, 58, 54, 68, 63, 64, 72, 60, 86, 58, 57, 75, 73, 59, 96, 57, 104, 48, 63, 73, 69, 66, 54, 47, 53, 62, 70, 53, 75, 67, 56, 53, 68, 59, 82, 62, 54, 90, 68, 79, 48, 74, 45, 61, 67, 55, 77, 69, 80, 61, 70, 65, 55, 63, 59, 50, 72, 72, 66, 55, 66, 72, 56, 76, 65, 56, 55, 51, 74, 70, 51, 64, 85, 61, 61, 81, 67, 68, 68, 51, 49, 78, 64, 78, 60, 65, 61, 59, 80, 70, 64, 71, 42, 80, 54, 49, 60, 54, 76, 72, 65, 103, 63, 65, 65, 50, 71, 61, 60, 73, 71, 57, 87, 46, 72, 63, 61, 68, 66, 79, 61, 63, 70, 60, 68, 61, 61, 61, 71, 61, 88, 78, 76, 58, 54, 78, 65, 82, 62, 58, 70, 57, 56, 55, 74, 67, 84, 75, 72, 55, 84, 67, 65, 54, 52, 67, 77, 64, 71, 54, 50, 72, 59, 64, 86, 66, 51, 64, 71, 81, 50, 69, 66, 88, 73, 60, 60, 55, 68, 76, 80, 75, 50, 68, 69, 100, 56, 72, 68, 60, 37, 55, 55, 58, 89, 50, 70, 70, 55, 62, 72, 60, 56, 47, 44, 50, 57, 64, 50, 60, 91, 48, 77, 57, 61, 85, 42, 70, 71, 93, 68, 66, 73, 55, 63, 55, 65, 57, 70, 78, 62, 65, 50, 65, 53, 84, 64, 63, 64, 66, 72, 82, 68, 71, 64, 68, 57, 64, 67, 64, 61, 70, 68, 76, 70, 70, 51, 50, 83, 86, 75, 71, 70, 77, 81, 69, 60, 82, 52, 68, 57, 71, 52, 79, 65, 70, 66, 58, 70, 60, 59, 60, 56, 72, 55, 52, 51, 65, 90, 61, 67, 62, 72, 61, 61, 48, 47, 62, 65, 84, 62, 79, 55, 87, 60, 66, 50, 58, 69, 66, 55, 55, 55, 56, 62, 64, 92, 83, 58, 66, 88, 68, 70, 54, 93, 55, 51, 70, 47, 52, 70, 66, 61, 76, 74, 65, 57, 51, 61, 51, 50, 58, 75, 61, 62, 67, 65, 72, 76, 49, 65, 62, 63, 54, 59, 129, 83, 60, 71, 75, 68, 54, 63, 64, 65, 63, 53, 53, 80, 66, 77, 64, 68, 56, 39, 55, 56, 74, 58, 84, 56, 58, 46, 63, 50, 52, 70, 69, 56, 74, 71, 55, 48, 56, 63, 82, 73, 64, 56, 67, 74, 92, 64, 79, 62, 74, 68, 58, 63, 55, 56, 66, 64, 68, 48, 83, 50, 55, 67, 76, 49, 55, 62, 56, 52, 87, 62, 89, 73, 54, 48, 63, 41, 61, 101, 80, 57, 65, 72, 54, 79, 62, 60, 55, 64, 57, 55, 78, 77, 66, 62, 69, 62, 72, 59, 60, 55, 58, 56, 54, 84, 81, 64, 48, 60, 77, 61, 75, 67, 68, 59, 65, 47, 89, 55, 57, 84, 60, 63, 67, 115, 60, 44, 53, 106, 67, 55, 56, 57, 54, 70, 63, 55, 75, 52, 63, 55, 78, 50, 61, 66, 69, 79, 67, 68, 89, 61, 57, 64, 46, 63, 71, 71, 57, 57, 52, 73, 65, 93, 58, 63, 54, 69, 59, 70, 65, 61, 71, 64, 63, 52, 65, 91, 63, 66, 66, 90, 55, 73, 80, 66, 63, 63, 80, 65, 51, 68, 60, 53, 81, 74, 65, 58, 51, 60, 71, 52, 67, 61, 60, 62, 74, 61, 66, 69, 87, 62, 80, 52, 60, 86, 60, 71, 83, 58, 49, 59, 47, 59, 66, 55, 66, 64, 64, 57, 57, 50, 56, 54, 73, 61, 54, 63, 63, 143, 58, 59, 70, 63, 82, 61, 67, 65, 70, 73, 60, 60, 76, 68, 58, 68, 56, 67, 93, 69, 69, 52, 66, 54, 94, 49, 81, 62, 64, 75, 52, 57, 65, 57, 66, 54, 70, 57, 63, 77, 76, 78, 86, 68, 54, 53, 50, 60, 115, 73, 60, 54, 61, 60, 54, 72, 68, 67, 68, 61, 65, 76, 71, 54, 49, 61, 63, 54, 73, 55, 62, 70, 59, 54, 62, 69, 54, 115, 58, 72, 62, 69, 55, 59, 50, 51, 76, 62, 75, 68, 72, 73, 64, 58, 62, 53, 79, 103, 60, 65, 58, 53, 65, 56, 61, 69, 63, 50, 72, 69, 73, 58, 70, 68, 65, 49, 70, 64, 76, 65, 64, 52, 63, 50, 66, 50, 57, 90, 57, 63, 61, 66, 70, 60, 49, 129, 51, 76, 61, 56, 66, 63, 64, 58, 67, 67, 55, 58, 75, 63, 53, 61, 69, 62, 63, 71, 52, 74, 63, 76, 57, 55, 63, 85, 60, 69, 68, 72, 43, 64, 69, 73, 59, 62, 66, 63, 55, 81, 58, 70, 52, 65, 84, 70, 61, 61, 69, 92, 67, 82, 67, 82, 67, 55, 54, 60, 60, 59, 62, 58, 61, 68, 61, 73, 77, 62, 58, 68, 59, 50, 65, 69, 68, 55, 68, 58, 74, 54, 109, 58, 66, 53, 66, 82, 47, 62, 80, 62, 57, 66, 74, 56, 58, 68, 69, 65, 50, 67, 96, 83, 71, 82, 65, 61, 57, 72, 66, 65, 59, 59, 63, 55, 61, 91, 87, 63, 70, 66, 68, 53, 99, 61, 74, 62, 64, 135, 50, 82, 76, 68, 84, 70, 75, 73, 77, 67, 67, 58, 57, 40, 79, 65, 64, 79, 69, 53, 63, 65, 51, 64, 59, 64, 65, 60, 54, 69, 53, 61, 52, 63, 83, 65, 49, 55, 66, 49, 60, 102, 68, 63, 65, 101, 69, 75, 67, 64, 83, 66, 92, 48, 57, 42, 56, 50, 64, 65, 57, 41, 71, 62, 78, 121, 55, 66, 61, 73, 65, 75, 55, 57, 69, 50, 73, 59, 81, 64, 57, 68, 67, 61, 67, 49, 72, 67, 55, 66, 78, 63, 69, 62, 63, 74, 66, 72, 71, 68, 64, 60, 71, 63, 55, 63, 60, 57, 55, 72, 57, 86, 83, 53, 61, 80, 79, 54, 74, 77, 60, 69, 65, 64, 50, 67, 101, 74, 74, 55, 68, 58, 67, 49, 76, 51, 64, 67, 60, 47, 63, 78, 74, 57, 70, 60, 63, 54, 68, 80, 64, 90, 55, 61, 79, 58, 56, 64, 68, 64, 59, 54, 55, 73, 81, 93, 59, 45, 63, 56, 55, 98, 53, 52, 54, 80, 64, 96, 65, 65, 50, 135, 59, 54, 72, 75, 61, 68, 64, 58, 67, 62, 72, 95, 99, 106, 77, 57, 43, 61, 72, 65, 65, 63, 54, 69, 66, 67, 61, 59, 50, 57, 56, 64, 66, 62, 66, 61, 67, 64, 71, 71, 96, 52, 72, 79, 64, 43, 57, 87, 54, 79, 55, 62, 60, 70, 56, 62, 58, 44, 80, 100, 69, 65, 68, 51, 99, 60, 62, 62, 67, 75, 63, 54, 54, 47, 53, 62, 107, 59, 75, 98, 70, 77, 63, 59, 76, 61, 61, 68, 65, 80, 61, 68, 62, 73, 76, 57, 61, 74, 70, 51, 55, 64, 70, 57, 53, 100, 60, 56, 68, 64, 67, 70, 72, 64, 64, 63, 65, 58, 62, 73, 59, 41, 74, 65, 77, 64, 56, 51, 66, 77, 95, 88, 72, 64, 63, 60, 49, 58, 56, 53, 76, 66, 55, 67, 64, 54, 58, 64, 54, 84, 106, 64, 59, 59, 92, 85, 66, 63, 63, 67, 56, 67, 85, 74, 56, 68, 75, 54, 61, 44, 61, 58, 81, 61, 60, 58, 47, 70, 47, 59, 51, 93, 70, 53, 67, 70, 75, 87, 69, 43, 68, 70, 67, 41, 71, 67, 60, 59, 55, 55, 62, 69, 67, 60, 62, 62, 70, 60, 63, 72, 96, 65, 64, 89, 53, 85, 73, 64, 53, 90, 51, 71, 65, 63, 66, 60, 76, 51, 64, 61, 82, 64, 60, 65, 69, 55, 50, 67, 67, 70, 62, 54, 44, 63, 62, 63, 34, 62, 79, 52, 70, 59, 64, 53, 57, 85, 62, 71, 58, 55, 70, 69, 70, 59, 51, 46, 50, 38, 58, 59, 59, 58, 71, 58, 79, 64, 80, 62, 65, 64, 63, 64, 111, 52, 71, 76, 57, 66, 63, 65, 71, 67, 75, 48, 63, 71, 54, 70, 54, 70, 72, 71, 76, 58, 58, 77, 60, 70, 61, 53, 70, 73, 71, 66, 66, 69, 52, 90, 70, 74, 70, 73, 64, 64, 58, 58, 65, 68, 49, 60, 63, 77, 69, 89, 65, 64, 78, 44, 73, 64, 69, 77, 56, 59, 62, 62, 71, 65, 52, 72, 65, 62, 73, 75, 54, 81, 63, 66, 61, 50, 64, 60, 58, 74, 76, 66, 75, 60, 107, 70, 62, 70, 70, 57, 54, 66, 58, 53, 67, 48, 64, 90, 86, 68, 70, 64, 57, 68, 68, 78, 69, 61, 65, 61, 73, 82, 79, 59, 54, 65, 69, 70, 59, 71, 68, 64, 68, 58, 94, 55, 56, 59, 62, 52, 46, 94, 53, 84, 88, 61, 67, 74, 55, 59, 63, 56, 61, 56, 53, 72, 55, 81, 58, 58, 52, 60, 63, 60, 63, 63, 49, 63, 97, 48, 64, 66, 73, 67, 87, 70, 67, 64, 61, 67, 74, 52, 49, 51, 66, 59, 75, 53, 105, 60, 68, 54, 49, 56, 78, 51, 73, 54, 76, 105, 60, 60, 56, 79, 57, 91, 60, 48, 56, 66, 45, 59, 65, 58, 81, 59, 72, 66, 82, 58, 56, 50, 62, 69, 57, 70, 61, 61, 62, 79, 72, 99, 73, 68, 56, 61, 58, 55, 51, 66, 63, 59, 49, 72, 52, 89, 70, 79, 67, 76, 79, 44, 77, 41, 52, 78, 72, 53, 56, 67, 79, 62, 60, 56, 108, 84, 39, 56, 57, 47, 62, 63, 71, 67, 87, 40, 69, 89, 73, 53, 49, 76, 90, 62, 53, 56, 76, 74, 71, 53, 78, 55, 81, 62, 52, 60, 78, 64, 72, 55, 65, 99, 74, 60, 49, 54, 62, 78, 73, 69, 93, 74, 54, 74, 51, 58, 70, 60, 55, 66, 68, 71, 54, 57, 98, 92, 90, 53, 90, 82, 63, 54, 69, 61, 64, 64, 68, 55, 69, 76, 70, 96, 46, 63, 70, 60, 71, 58, 62, 95, 53, 62, 70, 51, 84, 72, 66, 93, 56, 76, 57, 66, 63, 87, 62, 58, 93, 61, 59, 77, 48, 63, 55, 62, 69, 45, 69, 72, 65, 41, 57, 44, 58, 89, 59, 65, 62, 66, 66, 65, 64, 68, 75, 116, 65, 57, 55, 57, 54, 66, 70, 77, 63, 76, 76, 52, 69, 43, 60, 54, 92, 54, 55, 64, 54, 55, 62, 54, 77, 52, 65, 47, 56, 68, 60, 79, 79, 68, 55, 59, 71, 69, 46, 61, 61, 44, 75, 148, 64, 51, 65, 48, 70, 49, 77, 80, 59, 57, 100, 65, 93, 60, 78, 87, 56, 56, 55, 159, 61, 49, 54, 54, 63, 68, 83, 94, 52, 70, 56, 70, 71, 67, 49, 95, 66, 68, 84, 63, 60, 49, 63, 55, 60, 82, 115, 57, 63, 73, 38, 74, 63, 74, 42, 56, 86, 71, 67, 66, 77, 53, 35, 70, 74, 70, 53, 85, 44, 58, 68, 80, 59, 66, 53, 76, 64, 57, 60, 56, 56, 73, 45, 63, 66, 67, 59, 67, 44, 83, 51, 50, 65, 44, 86, 76, 57, 70, 90, 77, 47, 87, 74, 64, 61, 56, 60, 51, 51, 41, 51, 43, 94, 110, 70, 64, 76, 84, 64, 72, 60, 71, 54, 63, 61, 74, 55, 66, 88, 110, 113, 52, 69, 83, 57, 58, 51, 96, 62, 88, 70, 83, 59, 57, 60, 96, 79, 60, 56, 59, 66, 67, 75, 69, 93, 97, 54, 79, 41, 61, 54, 64, 61, 60, 49, 65, 64, 55, 67, 61, 61, 82, 72, 62, 56, 56, 66, 46, 59, 57, 52, 89, 84, 78, 61, 71, 107, 57, 53, 65, 71, 57, 60, 38, 50, 122, 60, 63, 68, 96, 58, 62, 56, 71, 77, 89, 85, 66, 68, 57, 63, 80, 52, 71, 72, 66, 75, 61, 73, 78, 74, 53, 61, 61, 62, 59, 64, 66, 63, 59, 46, 59, 63, 57, 65, 55, 59, 64, 58, 63, 92, 44, 64, 64, 49, 68, 84, 47, 65, 51, 56, 41, 69, 59, 48, 60, 61, 74, 54, 58, 66, 62, 87, 57, 63, 75, 60, 72, 60, 59, 66, 64, 51, 53, 87, 60, 48, 61, 64, 67, 61, 52, 63, 79, 64, 64, 57, 61, 93, 61, 68, 61, 70, 54, 87, 66, 71, 69, 60, 69, 80, 74, 58, 59, 76, 70, 59, 57, 69, 51, 78, 75, 71, 61, 91, 68, 54, 63, 45, 80, 53, 65, 54, 125, 51, 75, 75, 67, 70, 63, 53, 49, 56, 36, 52, 74, 66, 67, 66, 49, 73, 46, 73, 54, 57, 71, 84, 69, 66, 63, 68, 66, 53, 63, 43, 62, 51, 72, 58, 51, 79, 59, 45, 65, 65, 60, 59, 56, 117, 67, 71, 70, 58, 63, 58, 71, 53, 63, 57, 67, 65, 67, 51, 67, 61, 69, 52, 53, 104, 64, 58, 60, 74, 60, 86, 66, 74, 59, 45, 59, 66, 77, 57, 60, 78, 93, 52, 61, 73, 63, 55, 62, 72, 74, 67, 63, 71, 69, 45, 59, 62, 56, 68, 59, 59, 51, 56, 72, 94, 68, 59, 87, 54, 57, 54, 76, 70, 76, 56, 63, 68, 67, 83, 78, 64, 76, 70, 75, 59, 76, 66, 77, 68, 82, 59, 78, 77, 59, 77, 48, 70, 72, 90, 73, 60, 57, 78, 57, 61, 76, 76, 60, 58, 42, 63, 77, 63, 68, 88, 55, 80, 56, 71, 40, 57, 77, 47, 68, 77, 64, 98, 73, 43, 80, 55, 61, 73, 61, 61, 51, 55, 73, 84, 36, 54, 62, 78, 63, 63, 73, 71, 54, 91, 62, 70, 71, 64, 46, 69, 61, 81, 71, 74, 51, 54, 54, 69, 67, 77, 64, 52, 72, 73, 102, 66, 66, 89, 50, 55, 52, 76, 49, 79, 61, 63, 69, 69, 77, 58, 61, 82, 72, 66, 62, 64, 71, 70, 50, 54, 52, 56, 51, 87, 55, 67, 74, 52, 51, 83, 78, 60, 49, 55, 59, 62, 55, 64, 51, 72, 84, 44, 88, 63, 71, 63, 92, 59, 55, 69, 65, 50, 53, 92, 60, 66, 95, 90, 82, 86, 71, 56, 74, 63, 55, 63, 61, 55, 77, 54, 92, 77, 66, 54, 61, 56, 69, 56, 76, 56, 64, 72, 71, 63, 65, 64, 66, 81, 69, 71, 54, 57, 61, 90, 55, 32, 64, 58, 49, 56, 67, 105, 61, 61, 66, 72, 64, 52, 109, 78, 87, 58, 84, 78, 56, 52, 61, 53, 46, 76, 45, 57, 68, 63, 61, 89, 62, 52, 68, 93, 54, 52, 75, 47, 67, 38, 62, 59, 62, 46, 61, 52, 64, 78, 56, 59, 74, 71, 67, 71, 56, 54, 62, 62, 61, 54, 55, 70, 69, 55, 52, 71, 56, 54, 71, 116, 47, 68, 71, 48, 73, 50, 82, 81, 61, 53, 74, 67, 78, 64, 63, 86, 79, 54, 79, 62, 60, 71, 73, 62, 80, 53, 45, 60, 53, 69, 76, 73, 68, 50, 77, 70, 61, 57, 65, 68, 56, 73, 61, 59, 61, 71, 51, 77, 70, 81, 68, 51, 64, 47, 51, 89, 67, 62, 59, 64, 66, 116, 56, 84, 55, 40, 65, 55, 63, 42, 73, 81, 68, 68, 57, 66, 75, 88, 63, 56, 90, 47, 57, 24, 43, 47, 77, 46, 62, 66, 65, 72, 69, 78, 63, 51, 71, 60, 51, 74, 65, 61, 46, 58, 70, 57, 62, 75, 42, 68, 60, 73, 48, 55, 46, 68, 53, 63, 69, 58, 76, 53, 65, 55, 72, 53, 73, 53, 93, 65, 54, 45, 54, 75, 54, 59, 60, 66, 46, 61, 48, 72, 84, 44, 72, 62, 56, 73, 59, 65, 49, 58, 64, 52, 66, 71, 56, 65, 54, 74, 48, 57, 93, 103, 58, 79, 66, 51, 72, 51, 77, 68, 62, 66, 65, 68, 58, 61, 74, 61, 81, 53, 85, 73, 60, 71, 79, 95, 81, 68, 73, 41, 56, 82, 64, 67, 59, 49, 77, 59, 167, 53, 61, 58, 82, 46, 54, 70, 59, 65, 87, 65, 68, 43, 58, 59, 69, 54, 43, 57, 79, 61, 74, 64, 44, 66, 96, 92, 58, 56, 56, 62, 59, 49, 44, 64, 78, 43, 116, 65, 78, 44, 95, 62, 57, 53, 66, 64, 44, 66, 62, 63, 86, 54, 68, 44, 101, 80, 67, 73, 78, 58, 65, 72, 62, 60, 69, 84, 77, 53, 78, 62, 51, 90, 81, 65, 56, 65, 64, 65, 86, 70, 79, 58, 68, 85, 57, 89, 71, 61, 50, 60, 60, 57, 83, 59, 65, 70, 62, 56, 57, 69, 53, 64, 55, 53, 67, 77, 70, 52, 65, 65, 55, 61, 53, 47, 55, 65, 94, 61, 65, 64, 46, 61, 118, 49, 54, 59, 55, 63, 59, 65, 63, 86, 112, 71, 80, 59, 75, 71, 75, 55, 57, 64, 90, 49, 92, 64, 97, 49, 47, 44, 50, 59, 67, 52, 61, 52, 59, 73, 61, 57, 68, 47, 53, 76, 57, 65, 52, 60, 83, 63, 50, 66, 72, 90, 59, 50, 71, 65, 73, 62, 75, 73, 76, 66, 78, 78, 58, 56, 64, 66, 62, 76, 48, 63, 72, 81, 91, 53, 56, 45, 58, 75, 68, 56, 59, 85, 66, 66, 74, 63, 46, 75, 74, 59, 69, 66, 60, 56, 80, 97, 78, 64, 78, 80, 51, 55, 41, 54, 51, 71, 62, 40, 73, 79, 66, 77, 74, 60, 66, 65, 54, 71, 67, 75, 84, 67, 74, 69, 83, 56, 54, 73, 62, 50, 76, 62, 93, 53, 43, 56, 55, 57, 81, 76, 57, 54, 55, 61, 51, 68, 57, 83, 85, 73, 64, 96, 52, 80, 52, 80, 61, 45, 65, 56, 60, 54, 58, 69, 62, 67, 53, 68, 57, 58, 60, 71, 52, 84, 67, 103, 87, 51, 83, 64, 45, 69, 60, 61, 53, 52, 65, 72, 62, 52, 88, 84, 49, 58, 68, 83, 58, 70, 57, 67, 63, 80, 77, 54, 56, 68, 75, 73, 45, 89, 59, 94, 65, 69, 46, 62, 96, 105, 52, 89, 70, 50, 65, 63, 94, 76, 56, 51, 55, 41, 64, 77, 44, 66, 48, 61, 77, 70, 64, 56, 79, 47, 48, 63, 66, 70, 43, 66, 44, 63, 71, 70, 70, 62, 47, 50, 66, 74, 49, 57, 101, 80, 57, 77, 79, 55, 75, 94, 56, 59, 57, 59, 66, 68, 57, 74, 82, 54, 65, 144, 77, 85, 56, 47, 60, 57, 85, 49, 59, 62, 49, 63, 68, 87, 105, 72, 60, 71, 84, 60, 58, 60, 51, 93, 99, 61, 59, 59, 95, 73, 38, 59, 62, 41, 83, 49, 78, 61, 84, 89, 50, 75, 68, 54, 54, 62, 61, 66, 61, 55, 66, 53, 68, 53, 52, 98, 71, 51, 58, 53, 41, 58, 57, 65, 67, 50, 60, 61, 83, 64, 88, 35, 46, 79, 66, 60, 53, 48, 64, 60, 66, 72, 69, 74, 64, 77, 62, 81, 53, 67, 80, 58, 105, 49, 88, 68, 55, 85, 65, 54, 74, 80, 52, 62, 58, 68, 57, 58, 46, 47, 67, 76, 60, 79, 72, 65, 80, 64, 60, 105, 66, 52, 72, 58, 62, 68, 58, 58, 52, 74, 53, 57, 70, 63, 62, 50, 74, 71, 58, 79, 69, 58, 62, 85, 117, 61, 60, 68, 78, 73, 54, 56, 65, 77, 67, 57, 84, 61, 61, 56, 60, 46, 69, 51, 55, 59, 72, 110, 75, 60, 74, 79, 52, 49, 70, 64, 48, 65, 62, 65, 53, 56, 48, 38, 57, 62, 55, 69, 62, 73, 66, 91, 59, 69, 83, 62, 65, 83, 51, 69, 65, 66, 49, 71, 72, 72, 73, 68, 60, 63, 101, 63, 77, 68, 63, 68, 72, 49, 81, 57, 60, 82, 59, 71, 58, 75, 53, 73, 87, 90, 64, 66, 66, 70, 76, 87, 61, 60, 87, 52, 61, 82, 51, 75, 57, 72, 90, 70, 90, 48, 66, 43, 86, 74, 51, 49, 50, 72, 93, 58, 43, 52, 69, 56, 102, 49, 44, 54, 47, 83, 65, 73, 61, 59, 74, 59, 46, 69, 55, 61, 54, 53, 66, 74, 45, 70, 61, 73, 62, 72, 56, 88, 75, 58, 72, 56, 57, 67, 73, 73, 72, 50, 70, 58, 85, 50, 46, 75, 62, 117, 89, 106, 49, 60, 58, 63, 61, 53, 84, 55, 66, 67, 73, 64, 61, 86, 55, 59, 45, 78, 100, 56, 68, 68, 46, 54, 56, 35, 48, 83, 48, 50, 81, 56, 64, 65, 57, 70, 74, 60, 69, 57, 86, 56, 63, 46, 51, 54, 79, 63, 133, 72, 94, 61, 69, 71, 70, 62, 53, 72, 63, 73, 60, 50, 79, 52, 71, 89, 85, 54, 51, 66, 54, 59, 74, 68, 48, 68, 55, 63, 53, 64, 63, 72, 63, 74, 56, 57, 97, 70, 50, 62, 62, 85, 63, 61, 67, 50, 55, 50, 96, 70, 64, 82, 95, 69, 69, 72, 59, 66, 87, 74, 60, 83, 66, 79, 79, 68, 86, 61, 44, 95, 102, 61, 63, 65, 78, 74, 71, 57, 70, 70, 65, 53, 76, 70, 63, 72, 64, 54, 57, 53, 62, 54, 51, 62, 43, 58, 92, 48, 58, 85, 50, 55, 70, 88, 66, 85, 66, 63, 56, 67, 58, 65, 68, 61, 53, 53, 70, 60, 57, 105, 80, 51, 52, 95, 65, 61, 48, 66, 80, 50, 64, 57, 40, 95, 69, 80, 60, 48, 106, 42, 48, 60, 83, 57, 96, 55, 66, 70, 84, 58, 74, 65, 51, 82, 79, 57, 78, 83, 76, 58, 46, 73, 61, 68, 68, 62, 88, 56, 59, 62, 45, 65, 70, 70, 64, 45, 57, 81, 52, 82, 64, 64, 73, 46, 73, 65, 67, 70, 60, 77, 70, 61, 56, 70, 57, 56, 65, 57, 62, 55, 36, 75, 54, 60, 55, 69, 64, 63, 47, 99, 72, 64, 64, 75, 63, 71, 71, 79, 66, 47, 80, 42, 57, 70, 63, 49, 70, 44, 54, 65, 67, 79, 56, 79, 63, 65, 73, 57, 101, 44, 55, 65, 96, 87, 63, 68, 70, 81, 74, 72, 58, 52, 53, 61, 69, 64, 81, 82, 56, 102, 61, 74, 67, 68, 27, 65, 74, 44, 67, 45, 62, 47, 63, 86, 77, 60, 40, 59, 63, 62, 64, 69, 86, 65, 72, 70, 58, 56, 59, 75, 48, 65, 44, 70, 87, 51, 53, 72, 71, 53, 62, 68, 67, 48, 61, 55, 68, 61, 54, 66, 60, 75, 67, 74, 79, 65, 78, 80, 79, 52, 56, 56, 62, 73, 75, 70, 70, 66, 103, 60, 70, 49, 76, 58, 74, 80, 43, 81, 50, 75, 49, 60, 54, 58, 67, 51, 71, 71, 82, 42, 66, 46, 82, 57, 69, 68, 69, 71, 50, 70, 89, 60, 87, 58, 76, 51, 70, 49, 64, 84, 61, 73, 66, 66, 121, 89, 72, 81, 34, 89, 77, 48, 79, 113, 50, 69, 58, 74, 75, 61, 72, 69, 79, 70, 135, 40, 84, 69, 75, 70, 62, 78, 67, 58, 39, 64, 76, 93, 59, 106, 46, 62, 59, 52, 62, 59, 78, 80, 53, 83, 60, 67, 70, 62, 58, 71, 61, 74, 91, 79, 107, 83, 87, 40, 62, 89, 45, 110, 46, 72, 80, 70, 40, 73, 62, 64, 122, 70, 59, 51, 73, 46, 65, 60, 74, 63, 73, 124, 46, 62, 46, 53, 55, 44, 76, 51, 75, 78, 57, 37, 46, 53, 81, 116, 78, 64, 77, 72, 81, 70, 70, 46, 46, 56, 60, 61, 64, 54, 46, 52, 79, 88, 89, 73, 78, 103, 62, 51, 58, 70, 55, 71, 54, 55, 52, 109, 78, 66, 62, 58, 60, 64, 49, 82, 68, 60, 73, 67, 46, 70, 58, 68, 55, 68, 78, 62, 57, 69, 45, 85, 90, 71, 49, 52, 52, 69, 48, 82, 48, 58, 58, 60, 72, 81, 49, 71, 69, 75, 46, 60, 71, 67, 59, 62, 70, 68, 70, 51, 77, 56, 69, 54, 52, 43, 33, 67, 107, 89, 71, 63, 59, 71, 53, 52, 41, 45, 61, 71, 61, 61, 69, 58, 79, 64, 73, 70, 66, 58, 56, 63, 51, 60, 83, 57, 54, 62, 69, 63, 51, 63, 56, 37, 84, 69, 77, 89, 69, 63, 60, 69, 80, 47, 55, 71, 68, 51, 57, 62, 59, 59, 54, 47, 104, 60, 67, 79, 68, 56, 84, 59, 75, 60, 78, 55, 57, 52, 97, 64, 64, 66, 52, 64, 64, 70, 59, 66, 88, 100, 39, 76, 65, 63, 70, 63, 55, 57, 60, 77, 86, 77, 93, 61, 57, 77, 46, 78, 142, 58, 63, 65, 51, 62, 46, 47, 53, 43, 40, 44, 66, 68, 74, 64, 56, 70, 51, 57, 60, 72, 55, 54, 57, 50, 67, 56, 45, 68, 44, 53, 106, 74, 77, 61, 69, 73, 56, 93, 49, 65, 95, 60, 77, 47, 92, 52, 64, 58, 77, 83, 67, 48, 61, 46, 63, 54, 75, 77, 81, 65, 67, 72, 70, 58, 82, 99, 58, 68, 73, 66, 64, 60, 55, 57, 52, 67, 52, 67, 80, 53, 47, 72, 60, 77, 68, 62, 50, 81, 47, 42, 69, 58, 68, 50, 56, 68, 67, 75, 72, 64, 67, 75, 71, 66, 88, 87, 67, 74, 46, 104, 50, 66, 76, 82, 80, 42, 72, 86, 71, 86, 109, 67, 52, 52, 101, 87, 69, 81, 53, 61, 61, 77, 78, 73, 83, 84, 63, 81, 51, 82, 73, 108, 68, 73, 53, 76, 69, 39, 58, 57, 114, 59, 73, 78, 71, 86, 55, 71, 57, 76, 91, 43, 51, 49, 70, 46, 127, 38, 86, 62, 72, 67, 61, 46, 68, 86, 43, 56, 69, 82, 83, 54, 58, 83, 65, 49, 60, 71, 84, 70, 58, 55, 66, 87, 76, 78, 55, 62, 64, 67, 79, 58, 71, 84, 90, 86, 83, 63, 40, 64, 86, 41, 69, 89, 58, 57, 78, 47, 55, 66, 57, 53, 87, 76, 57, 64, 89, 49, 54, 42, 59, 71, 45, 53, 52, 66, 48, 64, 69, 78, 104, 67, 109, 67, 58, 79, 65, 69, 57, 76, 60, 77, 47, 55, 49, 60, 69, 50, 49, 70, 63, 61, 57, 56, 72, 70, 77, 55, 65, 56, 45, 67, 116, 60, 64, 53, 84, 64, 57, 67, 59, 55, 72, 72, 56, 59, 79, 75, 58, 72, 53, 82, 54, 72, 58, 77, 64, 48, 54, 47, 49, 74, 91, 66, 63, 60, 63, 65, 69, 125, 58, 68, 68, 64, 40, 62, 67, 50, 83, 94, 60, 64, 58, 82, 77, 79, 75, 54, 62, 66, 61, 46, 60, 87, 71, 68, 57, 68, 74, 71, 80, 72, 49, 59, 67, 51, 99, 106, 64, 61, 70, 51, 57, 89, 63, 71, 68, 72, 116, 64, 66, 67, 46, 43, 57, 67, 48, 70, 83, 45, 62, 75, 23, 68, 94, 72, 74, 66, 93, 63, 74, 45, 56, 83, 53, 78, 67, 92, 54, 71, 71, 67, 91, 46, 71, 90, 60, 58, 37, 55, 111, 49, 70, 57, 63, 58, 65, 84, 50, 84, 68, 84, 49, 74, 76, 56, 69, 47, 64, 113, 65, 73, 50, 50, 70, 59, 63, 53, 106, 58, 61, 76, 66, 54, 63, 59, 134, 77, 84, 68, 73, 58, 56, 66, 73, 59, 51, 46, 54, 60, 88, 41, 99, 73, 103, 77, 67, 66, 80, 64, 82, 90, 76, 63, 55, 42, 61, 52, 56, 54, 82, 56, 58, 57, 88, 76, 66, 77, 59, 74, 59, 55, 63, 47, 54, 53, 59, 62, 87, 75, 73, 66, 90, 72, 84, 67, 80, 43, 59, 59, 89, 103, 43, 64, 52, 70, 88, 63, 48, 69, 64, 86, 67, 78, 57, 58, 71, 72, 65, 84, 61, 70, 76, 62, 63, 65, 79, 57, 45, 62, 99, 57, 80, 57, 66, 77, 84, 54, 69, 52, 65, 64, 55, 74, 48, 50, 52, 69, 64, 69, 58, 52, 47, 47, 79, 76, 62, 65, 57, 92, 60, 94, 83, 64, 41, 80, 61, 51, 63, 85, 61, 64, 64, 61, 70, 55, 55, 92, 88, 52, 72, 61, 51, 74, 77, 55, 69, 36, 57, 68, 57, 67, 64, 69, 85, 61, 64, 57, 66, 78, 52, 51, 56, 49, 59, 72, 56, 57, 56, 56, 72, 65, 60, 64, 45, 78, 59, 62, 81, 73, 61, 82, 65, 52, 58, 63, 73, 87, 62, 52, 75, 66, 57, 70, 79, 61, 87, 71, 54, 48, 52, 67, 92, 70, 72, 91, 49, 55, 59, 56, 92, 75, 113, 62, 65, 71, 47, 49, 50, 46, 64, 63, 68, 78, 51, 57, 45, 66, 71, 70, 83, 53, 67, 78, 66, 52, 57, 47, 58, 72, 58, 87, 62, 66, 57, 60, 58, 56, 55, 64, 61, 67, 57, 64, 113, 67, 101, 70, 59, 43, 77, 58, 75, 57, 49, 54, 61, 69, 72, 50, 67, 83, 69, 57, 68, 68, 69, 70, 77, 79, 87, 48, 63, 66, 69, 62, 50, 66, 59, 47, 102, 94, 51, 49, 63, 52, 87, 73, 68, 59, 72, 51, 66, 59, 86, 58, 67, 52, 46, 60, 122, 67, 106, 73, 68, 70, 69, 77, 65, 79, 75, 53, 67, 61, 58, 68, 63, 55, 73, 56, 67, 64, 68, 61, 53, 57, 59, 74, 56, 64, 85, 65, 76, 57, 68, 78, 55, 75, 66, 58, 51, 60, 70, 67, 78, 52, 58, 56, 59, 64, 68, 52, 57, 53, 74, 35, 59, 53, 57, 72, 78, 82, 54, 96, 69, 81, 71, 92, 58, 64, 60, 58, 72, 44, 54, 56, 48, 79, 64, 89, 78, 59, 61, 61, 96, 51, 37, 81, 82, 62, 87, 53, 74, 45, 54, 61, 57, 101, 99, 50, 72, 67, 82, 65, 77, 73, 77, 53, 65, 63, 73, 47, 68, 72, 72, 56, 79, 77, 63, 58, 73, 91, 66, 60, 88, 54, 66, 48, 55, 74, 66, 65, 83, 59, 60, 89, 84, 70, 66, 60, 39, 78, 65, 69, 66, 116, 63, 72, 50, 80, 73, 67, 74, 47, 71, 50, 64, 57, 47, 55, 79, 51, 72, 78, 77, 65, 66, 53, 53, 59, 60, 45, 64, 54, 85, 62, 67, 83, 62, 64, 57, 53, 53, 63, 60, 46, 81, 74, 71, 64, 66, 56, 51, 67, 69, 64, 57, 89, 68, 54, 69, 61, 52, 71, 93, 65, 58, 63, 96, 60, 57, 81, 64, 74, 95, 58, 73, 55, 63, 49, 63, 67, 49, 78, 65, 68, 83, 45, 90, 57, 41, 63, 59, 77, 109, 63, 66, 75, 90, 63, 73, 77, 81, 59, 61, 69, 54, 54, 60, 63, 92, 68, 67, 62, 73, 65, 79, 55, 61, 59, 74, 76, 80, 45, 68, 66, 46, 69, 45, 62, 64, 73, 80, 50, 69, 93, 57, 62, 71, 73, 67, 59, 74, 57, 68, 61, 97, 77, 52, 50, 67, 68, 58, 59, 40, 60, 60, 66, 86, 64, 54, 59, 64, 63, 74, 54, 90, 63, 60, 78, 46, 68, 56, 60, 57, 73, 105, 68, 109, 71, 106, 71, 74, 58, 62, 59, 85, 48, 85, 56, 67, 79, 68, 73, 97, 41, 65, 52, 78, 61, 44, 67, 77, 61, 76, 67, 74, 64, 61, 68, 82, 65, 67, 53, 61, 75, 30, 75, 83, 66, 64, 93, 58, 84, 50, 78, 41, 65, 63, 68, 53, 69, 65, 66, 74, 44, 68, 43, 62, 64, 48, 104, 67, 77, 56, 61, 79, 71, 67, 42, 72, 63, 63, 90, 61, 61, 43, 74, 70, 72, 55, 54, 68, 54, 70, 56, 66, 48, 84, 56, 48, 63, 70, 80, 63, 79, 86, 97, 61, 67, 74, 69, 78, 56, 117, 70, 71, 52, 51, 60, 62, 68, 67, 40, 72, 60, 64, 61, 58, 62, 49, 47, 63, 79, 52, 60, 65, 58, 51, 76, 53, 51, 95, 58, 65, 79, 49, 85, 87, 54, 79, 96, 59, 59, 48, 68, 76, 98, 103, 60, 62, 76, 55, 62, 77, 75, 57, 69, 57, 66, 84, 62, 57, 60, 77, 57, 65, 61, 81, 52, 67, 68, 89, 69, 66, 56, 70, 75, 86, 71, 50, 64, 59, 67, 56, 68, 66, 62, 48, 71, 60, 63, 65, 87, 67, 60, 115, 51, 47, 79, 90, 62, 88, 54, 52, 77, 53, 81, 66, 55, 53, 48, 60, 90, 65, 42, 56, 57, 54, 70, 51, 59, 73, 70, 59, 78, 114, 91, 80, 63, 59, 53, 85, 78, 59, 82, 60, 99, 89, 76, 69, 63, 51, 56, 59, 98, 59, 62, 85, 50, 58, 59, 73, 54, 59, 62, 101, 86, 57, 69, 56, 71, 59, 94, 69, 66, 55, 74, 55, 88, 69, 82, 55, 73, 74, 64, 59, 81, 78, 61, 92, 99, 57, 41, 66, 48, 68, 122, 74, 48, 60, 81, 70, 66, 88, 60, 54, 71, 49, 57, 74, 58, 73, 51, 75, 72, 60, 70, 51, 93, 70, 65, 116, 84, 56, 58, 62, 71, 62, 50, 69, 54, 53, 62, 57, 72, 68, 51, 80, 57, 64, 70, 68, 59, 66, 71, 81, 78, 60, 59, 60, 70, 84, 87, 65, 81, 69, 81, 68, 53, 83, 77, 79, 66, 61, 73, 47, 62, 63, 61, 79, 61, 41, 61, 65, 67, 66, 65, 42, 48, 68, 63, 33, 59, 68, 64, 63, 47, 67, 62, 62, 78, 100, 75, 54, 55, 59, 44, 69, 63, 91, 67, 71, 63, 50, 59, 70, 71, 52, 61, 75, 61, 64, 61, 84, 67, 66, 62, 67, 48, 97, 50, 59, 51, 52, 61, 50, 56, 47, 50, 67, 54, 58, 65, 65, 46, 63, 100, 53, 94, 70, 98, 66, 53, 113, 74, 74, 52, 79, 58, 78, 60, 73, 48, 77, 76, 87, 60, 70, 73, 56, 58, 54, 88, 74, 61, 58, 57, 68, 69, 63, 75, 67, 70, 56, 52, 62, 59, 80, 52, 66, 45, 68, 96, 71, 50, 84, 64, 59, 70, 76, 64, 51, 90, 65, 83, 45, 52, 90, 51, 100, 73, 67, 74, 85, 93, 61, 78, 61, 73, 77, 78, 68, 52, 70, 62, 70, 50, 83, 42, 58, 80, 78, 67, 57, 69, 69, 57, 48, 38, 81, 53, 60, 61, 73, 75, 41, 39, 76, 65, 57, 83, 70, 45, 60, 68, 56, 79, 57, 71, 81, 63, 56, 43, 68, 61, 62, 54, 65, 63, 80, 61, 57, 54, 51, 67, 57, 49, 38, 67, 79, 74, 56, 83, 50, 81, 64, 64, 60, 75, 42, 77, 60, 82, 48, 110, 81, 67, 57, 60, 62, 57, 58, 66, 47, 51, 44, 68, 63, 48, 66, 58, 81, 61, 65, 59, 87, 66, 45, 57, 78, 63, 64, 68, 103, 59, 143, 52, 59, 66, 62, 73, 68, 51, 70, 59, 68, 47, 62, 54, 46, 79, 68, 53, 79, 45, 78, 70, 78, 52, 58, 47, 54, 73, 63, 69, 60, 69, 48, 42, 46, 54, 59, 59, 70, 57, 65, 76, 109, 117, 62, 57, 59, 59, 55, 64, 80, 48, 79, 65, 46, 88, 53, 72, 50, 103, 62, 50, 36, 60, 59, 71, 80, 60, 46, 49, 75, 96, 60, 84, 46, 57, 95, 57, 83, 88, 41, 39, 61, 74, 79, 66, 67, 66, 58, 57, 50, 81, 58, 61, 94, 77, 55, 48, 94, 53, 70, 54, 54, 65, 75, 61, 76, 48, 76, 66, 76, 49, 66, 54, 60, 52, 68, 67, 65, 68, 71, 54, 69, 61, 43, 77, 52, 66, 96, 75, 95, 59, 87, 95, 52, 77, 49, 44, 58, 75, 59, 55, 85, 62, 79, 46, 85, 64, 60, 65, 65, 65, 63, 73, 65, 55, 52, 71, 69, 56, 41, 75, 55, 86, 69, 71, 84, 80, 73, 58, 66, 55, 49, 49, 64, 84, 56, 83, 78, 63, 62, 78, 85, 66, 61, 72, 78, 54, 64, 60, 77, 84, 78, 70, 82, 51, 84, 72, 70, 59, 55, 48, 62, 48, 74, 60, 51, 60, 71, 69, 40, 71, 55, 61, 78, 108, 79, 56, 62, 50, 85, 59, 66, 58, 69, 72, 58, 47, 58, 63, 60, 78, 74, 79, 105, 80, 62, 55, 53, 123, 70, 76, 79, 76, 60, 63, 67, 70, 61, 49, 86, 46, 75, 77, 51, 58, 68, 42, 66, 58, 71, 90, 100, 54, 64, 65, 72, 64, 43, 46, 64, 64, 81, 82, 84, 85, 85, 61, 63, 53, 69, 63, 53, 65, 87, 76, 53, 55, 73, 66, 42, 60, 69, 56, 53, 94, 64, 139, 70, 56, 66, 62, 96, 66, 57, 75, 80, 70, 56, 47, 91, 65, 64, 61, 63, 46, 73, 65, 55, 61, 37, 54, 60, 45, 59, 54, 51, 57, 62, 57, 55, 64, 56, 71, 75, 77, 63, 52, 42, 72, 81, 50, 79, 74, 53, 65, 51, 86, 86, 54, 60, 75, 63, 76, 55, 57, 58, 45, 46, 70, 96, 65, 90, 62, 54, 39, 67, 37, 62, 65, 46, 51, 61, 97, 51, 62, 65, 65, 37, 59, 76, 66, 54, 49, 74, 59, 66, 70, 57, 64, 62, 66, 45, 52, 71, 58, 84, 74, 78, 72, 65, 69, 78, 75, 67, 73, 66, 81, 45, 64, 81, 53, 59, 65, 77, 54, 132, 49, 80, 67, 101, 65, 56, 62, 63, 54, 86, 66, 52, 66, 58, 60, 123, 54, 64, 57, 53, 78, 68, 60, 63, 73, 53, 65, 74, 60, 71, 57, 75, 69, 49, 69, 57, 65, 64, 63, 66, 58, 64, 79, 61, 74, 51, 62, 48, 63, 75, 57, 64, 62, 44, 57, 88, 53, 73, 61, 66, 61, 52, 106, 61, 77, 70, 89, 77, 59, 56, 61, 66, 71, 58, 69, 56, 60, 40, 78, 39, 47, 60, 55, 67, 68, 57, 66, 82, 62, 95, 67, 53, 51, 83, 68, 70, 65, 73, 67, 80, 59, 59, 74, 94, 81, 83, 68, 81, 54, 57, 64, 58, 56, 69, 77, 79, 60, 62, 82, 50, 59, 77, 63, 66, 97, 46, 68, 61, 47, 62, 61, 58, 38, 96, 75, 66, 65, 27, 94, 78, 69, 61, 59, 76, 51, 76, 60, 66, 93, 54, 58, 64, 61, 76, 71, 78, 74, 51, 85, 72, 55, 59, 56, 42, 48, 72, 55, 74, 51, 64, 61, 64, 57, 55, 63, 57, 65, 72, 61, 70, 74, 64, 51, 51, 62, 60, 68, 76, 64, 47, 78, 72, 73, 63, 76, 62, 50, 102, 59, 56, 83, 130, 68, 76, 71, 57, 54, 56, 45, 76, 56, 55, 56, 72, 71, 52, 49, 67, 63, 56, 84, 69, 71, 72, 61, 58, 49, 93, 53, 88, 74, 64, 76, 69, 68, 57, 70, 62, 91, 58, 47, 63, 72, 65, 53, 55, 84, 57, 60, 51, 66, 66, 72, 62, 62, 73, 93, 53, 102, 71, 78, 64, 76, 64, 48, 64, 109, 58, 58, 62, 60, 94, 88, 79, 74, 68, 76, 65, 65, 71, 63, 64, 80, 53, 57, 68, 50, 44, 126, 66, 44, 50, 80, 57, 69, 81, 76, 61, 65, 59, 43, 52, 43, 66, 64, 59, 104, 45, 71, 104, 83, 49, 50, 90, 94, 55, 57, 56, 66, 47, 69, 54, 68, 73, 55, 55, 97, 80, 63, 59, 59, 65, 63, 52, 63, 50, 58, 59, 70, 47, 53, 77, 59, 71, 78, 69, 61, 85, 62, 54, 73, 76, 54, 80, 79, 54, 53, 57, 63, 44, 91, 66, 66, 72, 59, 62, 108, 56, 51, 43, 58, 63, 70, 57, 73, 56, 61, 54, 49, 59, 66, 74, 100, 86, 67, 60, 53, 81, 46, 40, 45, 58, 77, 81, 79, 75, 69, 71, 60, 67, 55, 75, 54, 52, 64, 60, 60, 96, 70, 44, 63, 89, 84, 61, 62, 73, 93, 48, 63, 59, 84, 92, 74, 67, 69, 53, 43, 64, 82, 71, 51, 76, 51, 70, 85, 51, 95, 56, 74, 55, 94, 69, 76, 70, 47, 49, 78, 98, 64, 85, 62, 77, 88, 75, 59, 52, 74, 52, 47, 59, 49, 55, 71, 54, 66, 60, 66, 71, 43, 55, 48, 72, 56, 60, 62, 67, 63, 96, 62, 40, 61, 61, 56, 59, 71, 77, 81, 51, 56, 49, 61, 56, 64, 90, 81, 61, 79, 77, 70, 77, 81, 51, 64, 64, 61, 68, 67, 67, 53, 59, 84, 58, 59, 86, 76, 58, 52, 64, 76, 82, 70, 74, 34, 40, 81, 90, 60, 62, 83, 74, 57, 68, 55, 73, 67, 54, 66, 92, 56, 49, 70, 54, 66, 71, 65, 64, 53, 60, 55, 126, 66, 67, 54, 85, 74, 55, 55, 56, 56, 68, 64, 65, 71, 66, 69, 89, 51, 52, 65, 71, 70, 67, 68, 88, 67, 70, 105, 91, 85, 63, 75, 71, 61, 101, 72, 58, 40, 60, 68, 116, 51, 65, 69, 54, 86, 40, 55, 72, 60, 62, 67, 60, 70, 66, 58, 87, 70, 77, 51, 60, 67, 93, 55, 95, 73, 63, 62, 65, 67, 65, 73, 59, 75, 63, 63, 67, 55, 62, 47, 57, 48, 58, 53, 46, 56, 69, 84, 69, 73, 52, 77, 80, 53, 60, 58, 67, 68, 72, 67, 67, 77, 79, 52, 60, 81, 86, 65, 77, 86, 51, 67, 55, 85, 66, 59, 42, 87, 71, 64, 62, 61, 52, 65, 63, 71, 57, 69, 67, 72, 61, 55, 61, 52, 69, 77, 145, 104, 60, 60, 59, 54, 44, 62, 64, 43, 69, 65, 55, 68, 78, 57, 52, 71, 63, 47, 147, 59, 56, 69, 73, 52, 61, 64, 83, 58, 39, 67, 51, 59, 66, 36, 123, 60, 68, 76, 49, 69, 76, 59, 73, 59, 68, 98, 53, 74, 59, 56, 51, 71, 127, 85, 66, 59, 63, 58, 63, 78, 72, 60, 52, 86, 72, 64, 90, 74, 54, 81, 68, 64, 47, 50, 79, 92, 66, 50, 65, 68, 55, 82, 72, 58, 60, 76, 78, 53, 82, 55, 79, 50, 59, 66, 59, 67, 71, 66, 64, 57, 61, 75, 41, 54, 79, 64, 80, 59, 69, 36, 77, 77, 106, 75, 66, 60, 75, 70, 55, 62, 71, 62, 46, 55, 54, 64, 54, 59, 54, 88, 42, 59, 55, 56, 60, 105, 79, 82, 50, 72, 108, 53, 63, 57, 98, 86, 63, 57, 57, 61, 70, 39, 76, 65, 77, 54, 60, 80, 61, 70, 76, 71, 69, 93, 66, 61, 59, 64, 52, 56, 63, 73, 64, 73, 65, 65, 48, 80, 58, 53, 98, 83, 93, 54, 89, 50, 38, 68, 73, 63, 58, 67, 59, 76, 123, 54, 62, 67, 102, 61, 88, 60, 62, 55, 85, 75, 59, 62, 94, 60, 67, 61, 64, 71, 88, 62, 56, 81, 75, 55, 46, 60, 78, 53, 69, 63, 42, 57, 69, 63, 53, 55, 72, 55, 48, 67, 60, 66, 59, 83, 42, 59, 66, 75, 71, 74, 55, 60, 73, 72, 45, 64, 69, 77, 50, 90, 69, 42, 52, 88, 69, 57, 56, 47, 52, 62, 65, 63, 58, 45, 59, 87, 82, 81, 52, 59, 61, 60, 52, 88, 101, 58, 79, 69, 68, 46, 69, 65, 46, 58, 69, 49, 62, 80, 78, 60, 56, 74, 53, 74, 63, 57, 70, 73, 41, 44, 68, 59, 52, 99, 49, 65, 71, 82, 56, 62, 67, 73, 72, 53, 56, 75, 76, 68, 67, 62, 70, 79, 67, 73, 62, 64, 61, 66, 109, 54, 80, 44, 91, 51, 68, 61, 62, 64, 60, 51, 73, 68, 55, 91, 66, 63, 46, 70, 73, 67, 79, 54, 51, 69, 87, 67, 81, 38, 52, 76, 67, 72, 67, 65, 67, 75, 50, 60, 78, 65, 66, 58, 49, 83, 86, 51, 57, 58, 85, 90, 64, 66, 58, 66, 62, 70, 61, 40, 64, 67, 68, 66, 52, 52, 40, 35, 45, 101, 79, 66, 54, 61, 45, 53, 61, 76, 63, 65, 71, 98, 61, 62, 65, 64, 61, 66, 49, 64, 61, 76, 70, 63, 61, 66, 84, 62, 62, 73, 62, 66, 71, 63, 64, 77, 58, 41, 80, 53, 71, 64, 73, 75, 55, 47, 68, 70, 61, 78, 47, 63, 77, 53, 69, 58, 89, 104, 57, 61, 68, 81, 61, 62, 67, 54, 74, 81, 65, 85, 75, 67, 79, 77, 63, 66, 62, 86, 74, 100, 59, 68, 55, 56, 56, 76, 76, 65, 71, 72, 48, 74, 80, 65, 55, 59, 74, 81, 48, 55, 83, 59, 65, 61, 68, 49, 72, 64, 70, 49, 56, 52, 55, 72, 54, 61, 78, 67, 87, 55, 60, 58, 57, 73, 64, 57, 84, 51, 95, 66, 87, 59, 81, 60, 74, 67, 70, 85, 55, 42, 69, 56, 67, 52, 70, 58, 57, 33, 60, 68, 54, 61, 70, 75, 60, 74, 68, 60, 61, 95, 81, 70, 79, 66, 52, 56, 55, 61, 64, 74, 68, 76, 55, 64, 89, 59, 61, 70, 56, 78, 73, 56, 64, 82, 57, 44, 77, 57, 70, 48, 51, 95, 56, 85, 65, 62, 52, 58, 46, 61, 71, 50, 61, 57, 68, 70, 51, 62, 62, 56, 59, 55, 82, 47, 56, 68, 47, 58, 65, 55, 70, 69, 56, 47, 47, 60, 56, 80, 50, 69, 58, 67, 65, 67, 57, 67, 65, 70, 59, 66, 70, 57, 80, 48, 65, 64, 77, 70, 50, 56, 54, 71, 40, 65, 66, 65, 56, 57, 57, 83, 72, 56, 88, 70, 61, 72, 56, 71, 60, 55, 79, 57, 72, 67, 54, 54, 46, 65, 68, 50, 63, 65, 66, 65, 59, 59, 78, 69, 48, 58, 55, 61, 48, 43, 74, 80, 97, 79, 88, 88, 54, 51, 62, 72, 77, 50, 59, 57, 57, 80, 66, 64, 57, 74, 55, 92, 80, 63, 87, 75, 79, 58, 90, 59, 54, 80, 62, 66, 83, 88, 64, 47, 62, 59, 53, 63, 77, 56, 76, 61, 56, 57, 65, 58, 82, 48, 75, 76, 49, 87, 59, 72, 47, 66, 56, 89, 46, 68, 86, 65, 84, 89, 60, 67, 62, 50, 84, 63, 65, 57, 70, 71, 61, 55, 68, 64, 68, 63, 57, 65, 85, 61, 77, 65, 91, 64, 67, 69, 53, 77, 53, 118, 61, 84, 82, 78, 56, 62, 78, 49, 61, 70, 52, 65, 62, 64, 76, 58, 81, 56, 68, 61, 62, 60, 50, 57, 62, 71, 69, 60, 65, 63, 64, 77, 76, 57, 60, 81, 72, 64, 63, 69, 71, 93, 75, 63, 67, 63, 69, 71, 51, 57, 53, 70, 52, 72, 73, 45, 52, 34, 55, 63, 60, 61, 70, 64, 64, 95, 50, 53, 54, 50, 66, 53, 67, 55, 66, 66, 56, 67, 60, 68, 98, 56, 53, 72, 76, 68, 56, 64, 54, 54, 93, 76, 83, 65, 95, 45, 62, 77, 55, 72, 57, 89, 76, 46, 65, 66, 68, 65, 64, 109, 68, 75, 64, 77, 56, 60, 63, 78, 71, 56, 76, 64, 57, 62, 39, 57, 98, 52, 64, 63, 101, 59, 72, 108, 48, 63, 59, 52, 60, 60, 57, 58, 54, 80, 64, 57, 94, 76, 60, 84, 55, 68, 75, 66, 64, 51, 63, 66, 64, 150, 70, 65, 76, 40, 49, 77, 55, 72, 62, 75, 64, 77, 60, 51, 64, 66, 56, 82, 60, 78, 74, 49, 76, 56, 71, 67, 58, 52, 76, 57, 52, 70, 53, 61, 52, 53, 55, 72, 61, 54, 67, 54, 50, 68, 70, 68, 42, 66, 67, 70, 62, 70, 63, 65, 60, 55, 51, 61, 69, 70, 74, 55, 85, 69, 78, 62, 126, 72, 66, 68, 56, 46, 48, 63, 60, 70, 68, 53, 72, 58, 78, 73, 69, 48, 61, 59, 141, 56, 69, 60, 60, 82, 46, 72, 72, 63, 67, 50, 72, 63, 66, 87, 62, 65, 41, 58, 52, 64, 81, 49, 79, 71, 108, 86, 60, 57, 63, 81, 81, 52, 54, 70, 49, 56, 63, 86, 57, 58, 73, 53, 76, 71, 70, 61, 114, 61, 101, 57, 59, 101, 59, 62, 70, 68, 66, 83, 64, 57, 63, 104, 96, 63, 70, 68, 83, 52, 60, 66, 62, 67, 70, 65, 72, 63, 58, 72, 63, 83, 65, 48, 73, 61, 61, 57, 57, 80, 53, 54, 59, 52, 55, 77, 60, 63, 123, 82, 66, 64, 65, 49, 60, 73, 64, 60, 76, 62, 88, 81, 65, 65, 73, 62, 70, 54, 93, 51, 54, 54, 76, 67, 77, 60, 61, 65, 54, 65, 54, 59, 54, 53, 47, 72, 63, 55, 55, 57, 51, 72, 58, 67, 70, 70, 75, 60, 45, 63, 64, 66, 51, 75, 57, 61, 59, 65, 64, 45, 55, 64, 55, 77, 74, 59, 62, 49, 82, 79, 52, 70, 54, 45, 86, 65, 62, 77, 61, 42, 104, 50, 78, 62, 65, 53, 73, 83, 68, 63, 72, 62, 69, 65, 62, 61, 42, 63, 61, 58, 63, 42, 64, 64, 47, 50, 64, 66, 60, 60, 57, 92, 63, 60, 61, 72, 58, 63, 60, 63, 69, 93, 79, 57, 51, 68, 97, 86, 98, 66, 105, 76, 53, 76, 100, 58, 60, 44, 40, 66, 69, 78, 50, 58, 52, 52, 64, 56, 60, 55, 83, 61, 62, 70, 61, 83, 64, 74, 58, 81, 52, 62, 67, 77, 75, 74, 59, 70, 56, 73, 51, 88, 60, 63, 55, 73, 66, 62, 79, 52, 70, 75, 80, 52, 56, 72, 69, 72, 69, 52, 97, 124, 57, 62, 75, 84, 75, 49, 78, 54, 58, 51, 57, 82, 63, 69, 77, 72, 51, 52, 75, 64, 68, 66, 73, 71, 69, 56, 76, 50, 55, 62, 52, 46, 76, 72, 58, 50, 65, 67, 52, 67, 72, 64, 88, 64, 62, 57, 69, 65, 38, 58, 81, 64, 66, 53, 50, 64, 76, 61, 76, 49, 49, 68, 59, 90, 58, 71, 78, 57, 62, 57, 69, 91, 64, 62, 61, 63, 62, 52, 57, 64, 91, 54, 60, 67, 59, 68, 67, 48, 54, 84, 51, 71, 53, 72, 77, 59, 57, 58, 57, 70, 69, 55, 50, 59, 67, 69, 50, 56, 61, 56, 67, 61, 89, 67, 68, 56, 80, 72, 61, 53, 79, 66, 60, 92, 49, 57, 61, 62, 63, 85, 80, 54, 62, 70, 56, 56, 64, 59, 70, 54, 48, 42, 96, 65, 77, 75, 81, 63, 64, 63, 65, 63, 64, 58, 60, 80, 45, 59, 54, 71, 65, 92, 87, 50, 74, 71, 67, 66, 54, 65, 57, 73, 66, 57, 70, 63, 103, 81, 60, 63, 82, 57, 120, 75, 61, 63, 58, 70, 68, 56, 36, 55, 62, 48, 50, 60, 60, 59, 90, 58, 56, 52, 46, 53, 66, 58, 73, 60, 56, 59, 68, 66, 50, 59, 59, 78, 61, 90, 52, 70, 58, 69, 86, 61, 86, 51, 66, 66, 90, 64, 64, 73, 61, 56, 60, 87, 78, 57, 62, 79, 63, 51, 51, 53, 68, 62, 82, 73, 74, 65, 61, 62, 61, 53, 78, 62, 64, 68, 47, 61, 55, 53, 68, 65, 42, 77, 68, 60, 80, 57, 72, 61, 51, 84, 58, 56, 61, 55, 65, 60, 53, 47, 67, 79, 90, 120, 62, 63, 55, 55, 54, 63, 48, 69, 74, 62, 64, 74, 84, 63, 88, 66, 73, 63, 47, 89, 67, 57, 75, 68, 60, 50, 55, 49, 74, 76, 63, 55, 80, 54, 79, 60, 61, 78, 47, 72, 46, 52, 87, 95, 92, 48, 73, 72, 55, 64, 74, 66, 98, 63, 62, 67, 106, 70, 59, 62, 59, 55, 60, 55, 65, 55, 75, 85, 61, 48, 63, 95, 67, 70, 57, 64, 72, 67, 68, 63, 50, 62, 63, 60, 65, 61, 53, 57, 53, 79, 74, 60, 53, 62, 63, 59, 63, 86, 66, 45, 47, 63, 55, 75, 57, 72, 53, 68, 68, 69, 112, 80, 51, 41, 59, 50, 47, 65, 62, 65, 53, 79, 69, 111, 75, 64, 70, 82, 55, 57, 71, 64, 82, 64, 83, 71, 74, 56, 73, 67, 57, 69, 42, 59, 78, 55, 60, 57, 52, 49, 82, 63, 74, 61, 50, 57, 48, 87, 67, 61, 74, 57, 66, 75, 59, 65, 66, 82, 54, 124, 60, 67, 61, 62, 62, 87, 53, 77, 55, 70, 56, 63, 64, 53, 71, 88, 59, 57, 76, 62, 71, 65, 63, 67, 70, 54, 85, 65, 54, 55, 54, 97, 64, 78, 59, 73, 56, 98, 53, 58, 49, 57, 51, 59, 71, 67, 61, 57, 87, 66, 52, 72, 63, 57, 61, 73, 54, 58, 73, 55, 59, 68, 60, 44, 63, 79, 64, 70, 69, 62, 68, 36, 53, 71, 53, 64, 76, 66, 67, 67, 61, 88, 49, 53, 55, 68, 62, 64, 63, 42, 73, 58, 71, 65, 68, 54, 44, 73, 78, 62, 69, 80, 68, 74, 59, 50, 63, 60, 70, 59, 63, 63, 66, 57, 71, 71, 72, 60, 59, 50, 119, 67, 83, 62, 59, 96, 82, 62, 54, 64, 62, 79, 59, 57, 66, 45, 88, 46, 69, 71, 63, 72, 78, 67, 51, 39, 70, 87, 64, 61, 55, 53, 59, 71, 63, 77, 70, 57, 64, 54, 71, 111, 75, 71, 62, 62, 74, 68, 57, 63, 60, 58, 61, 67, 78, 66, 74, 73, 60, 66, 73, 52, 52, 61, 65, 59, 59, 49, 97, 71, 62, 69, 52, 77, 56, 63, 77, 69, 58, 92, 57, 59, 66, 53, 68, 55, 89, 56, 67, 60, 74, 71, 69, 68, 62, 52, 55, 79, 58, 81, 57, 58, 64, 52, 50, 82, 52, 66, 69, 64, 72, 67, 77, 109, 57, 64, 51, 69, 67, 60, 62, 71, 61, 68, 88, 53, 70, 63, 95, 52, 75, 72, 68, 81, 57, 60, 100, 65, 67, 58, 69, 50, 71, 58, 54, 59, 82, 99, 59, 65, 67, 72, 66, 92, 58, 75, 85, 48, 83, 80, 78, 59, 63, 77, 80, 117, 63, 72, 69, 69, 57, 58, 67, 50, 81, 73, 59, 58, 92, 61, 66, 63, 55, 76, 55, 57, 72, 66, 41, 51, 73, 65, 60, 57, 53, 83, 65, 89, 64, 72, 89, 66, 63, 54, 71, 57, 65, 58, 82, 52, 57, 87, 73, 75, 59, 62, 87, 60, 56, 74, 65, 71, 72, 60, 39, 72, 59, 64, 64, 58, 54, 56, 65, 56, 72, 64, 58, 57, 69, 78, 99, 66, 77, 48, 68, 57, 67, 81, 59, 44, 74, 56, 57, 85, 66, 76, 55, 60, 85, 56, 52, 70, 64, 64, 70, 75, 66, 61, 61, 68, 51, 56, 72, 51, 62, 62, 98, 69, 51, 83, 92, 67, 43, 55, 62, 48, 66, 66, 81, 54, 63, 78, 72, 49, 77, 66, 52, 54, 64, 61, 53, 42, 68, 51, 58, 59, 59, 58, 92, 76, 64, 65, 62, 72, 62, 44, 66, 57, 110, 72, 68, 90, 79, 45, 63, 58, 66, 54, 63, 79, 107, 90, 78, 71, 75, 52, 71, 83, 66, 61, 64, 43, 60, 60, 62, 64, 51, 46, 48, 66, 62, 54, 112, 54, 92, 56, 79, 91, 45, 67, 58, 52, 61, 81, 85, 61, 63, 54, 70, 71, 68, 85, 56, 60, 53, 62, 64, 76, 72, 67, 59, 75, 81, 56, 56, 45, 58, 54, 68, 77, 67, 63, 80, 72, 63, 51, 70, 64, 89, 63, 64, 62, 61, 67, 82, 53, 59, 62, 59, 67, 70, 65, 67, 64, 65, 77, 99, 75, 47, 80, 74, 81, 131, 61, 71, 48, 63, 58, 112, 52, 69, 94, 72, 84, 70, 69, 56, 81, 67, 62, 66, 89, 71, 74, 71, 64, 65, 54, 68, 63, 51, 56, 73, 47, 70, 67, 76, 62, 74, 72, 65, 50, 70, 62, 66, 60, 58, 88, 68, 67, 61, 102, 75, 52, 85, 71, 48, 71, 57, 74, 55, 43, 68, 47, 53, 78, 81, 71, 70, 67, 64, 56, 92, 55, 67, 75, 63, 42, 62, 61, 69, 69, 78, 55, 66, 66, 64, 81, 86, 53, 64, 83, 80, 77, 62, 60, 61, 80, 58, 66, 71, 71, 51, 72, 55, 68, 64, 56, 114, 66, 54, 67, 59, 63, 85, 63, 52, 88, 98, 70, 59, 82, 58, 90, 73, 54, 68, 71, 60, 63, 57, 53, 64, 51, 69, 73, 59, 55, 72, 54, 46, 64, 51, 40, 67, 71, 61, 54, 102, 61, 57, 65, 60, 62, 66, 65, 80, 64, 65, 73, 116, 49, 92, 67, 62, 60, 45, 60, 58, 76, 59, 57, 58, 70, 94, 66, 65, 83, 81, 77, 70, 69, 57, 64, 68, 63, 57, 72, 82, 58, 53, 67, 55, 57, 75, 57, 56, 92, 62, 54, 64, 51, 74, 66, 79, 69, 62, 48, 51, 65, 82, 84, 70, 60, 78, 71, 64, 65, 72, 69, 68, 67, 72, 60, 95, 89, 57, 71, 54, 53, 46, 74, 68, 52, 57, 54, 66, 82, 61, 57, 50, 84, 64, 58, 64, 84, 69, 47, 52, 63, 70, 88, 46, 57, 55, 68, 45, 70, 69, 71, 60, 73, 54, 67, 48, 59, 69, 52, 51, 76, 61, 51, 85, 60, 78, 48, 45, 71, 54, 81, 50, 70, 83, 82, 59, 76, 78, 58, 54, 56, 57, 85, 86, 91, 56, 76, 55, 47, 86, 52, 66, 67, 48, 59, 61, 59, 69, 63, 66, 76, 80, 61, 60, 57, 61, 71, 57, 59, 64, 93, 62, 84, 48, 65, 59, 57, 87, 60, 58, 73, 73, 116, 58, 82, 69, 58, 53, 75, 80, 60, 77, 58, 60, 111, 68, 87, 88, 51, 87, 70, 52, 76, 69, 68, 87, 78, 87, 79, 63, 58, 62, 52, 69, 61, 54, 104, 68, 54, 93, 78, 76, 66, 75, 53, 75, 69, 66, 56, 60, 54, 69, 72, 62, 58, 47, 74, 75, 68, 57, 56, 99, 53, 75, 64, 61, 68, 54, 57, 52, 77, 91, 48, 85, 83, 63, 64, 63, 61, 58, 63, 54, 54, 58, 61, 75, 69, 93, 69, 59, 66, 66, 73, 79, 76, 56, 69, 75, 54, 92, 57, 41, 61, 61, 59, 80, 58, 61, 68, 58, 60, 73, 56, 52, 52, 88, 55, 57, 113, 73, 62, 86, 56, 69, 61, 58, 78, 53, 79, 67, 76, 77, 62, 49, 71, 72, 60, 55, 59, 64, 51, 114, 61, 72, 52, 56, 70, 56, 57, 74, 67, 73, 60, 67, 66, 59, 71, 67, 64, 73, 83, 48, 73, 63, 71, 53, 73, 59, 59, 69, 54, 47, 44, 48, 67, 55, 76, 46, 62, 68, 51, 74, 76, 58, 75, 66, 68, 64, 51, 73, 60, 64, 57, 50, 69, 61, 70, 52, 48, 69, 51, 71, 66, 61, 72, 68, 57, 71, 63, 54, 62, 57, 64, 74, 74, 58, 79, 59, 69, 42, 60, 55, 52, 82, 53, 58, 69, 55, 57, 48, 55, 77, 69, 85, 73, 65, 62, 68, 59, 92, 54, 71, 69, 70, 66, 66, 65, 53, 70, 61, 68, 76, 39, 89, 86, 85, 70, 64, 60, 60, 64, 74, 97, 63, 56, 69, 65, 66, 65, 72, 77, 64, 74, 70, 56, 76, 63, 62, 52, 87, 41, 57, 74, 90, 83, 68, 64, 60, 71, 53, 68, 76, 56, 49, 111, 105, 125, 59, 70, 79, 67, 78, 53, 55, 69, 68, 55, 116, 85, 68, 83, 57, 46, 56, 72, 63, 80, 63, 73, 67, 59, 79, 61, 49, 81, 57, 70, 113, 81, 61, 61, 62, 63, 53, 70, 48, 61, 69, 62, 113, 62, 60, 54, 43, 38, 64, 83, 83, 73, 54, 54, 40, 79, 57, 73, 44, 65, 61, 57, 81, 59, 89, 64, 47, 44, 56, 68, 77, 44, 68, 57, 38, 75, 47, 68, 64, 61, 58, 72, 65, 57, 80, 50, 61, 85, 63, 65, 46, 72, 80, 60, 62, 89, 47, 68, 64, 70, 71, 64, 114, 63, 51, 67, 68, 59, 50, 54, 56, 62, 49, 87, 83, 71, 44, 82, 56, 52, 39, 65, 55, 58, 56, 47, 57, 81, 74, 84, 52, 50, 81, 44, 76, 77, 59, 69, 74, 73, 86, 61, 60, 59, 61, 73, 53, 53, 69, 82, 65, 88, 56, 59, 61, 86, 70, 95, 90, 79, 53, 79, 115, 60, 82, 40, 79, 74, 78, 50, 90, 53, 63, 58, 44, 75, 61, 64, 64, 68, 86, 57, 87, 64, 66, 54, 60, 61, 62, 104, 50, 62, 56, 45, 78, 62, 63, 61, 70, 68, 62, 60, 100, 50, 50, 76, 52, 52, 58, 59, 50, 56, 58, 97, 87, 70, 64, 109, 50, 52, 48, 74, 68, 59, 62, 70, 60, 60, 77, 66, 46, 47, 68, 139, 51, 62, 62, 65, 43, 85, 53, 67, 61, 60, 52, 45, 50, 67, 59, 59, 73, 71, 54, 63, 58, 51, 63, 56, 63, 71, 52, 64, 53, 70, 63, 67, 65, 80, 54, 49, 67, 59, 65, 78, 67, 76, 55, 60, 56, 59, 101, 76, 66, 55, 67, 63, 50, 70, 75, 65, 71, 62, 55, 63, 74, 73, 73, 86, 66, 69, 74, 79, 95, 73, 59, 57, 52, 73, 48, 87, 50, 66, 68, 65, 48, 98, 82, 65, 70, 68, 60, 58, 72, 56, 76, 60, 65, 59, 56, 63, 71, 66, 56, 75, 48, 50, 71, 56, 67, 57, 76, 70, 71, 59, 65, 109, 65, 76, 54, 109, 54, 57, 63, 65, 61, 103, 59, 58, 47, 67, 63, 62, 72, 48, 66, 52, 41, 48, 68, 70, 59, 71, 70, 65, 56, 92, 80, 71, 64, 63, 80, 67, 64, 63, 65, 60, 78, 52, 71, 65, 65, 63, 79, 71, 91, 41, 78, 57, 67, 60, 78, 74, 51, 45, 59, 67, 59, 89, 53, 74, 53, 71, 64, 70, 62, 58, 59, 54, 59, 62, 62, 60, 60, 51, 53, 70, 49, 91, 72, 64, 68, 64, 54, 64, 68, 68, 113, 46, 60, 66, 53, 69, 44, 71, 88, 118, 76, 63, 76, 57, 62, 63, 43, 105, 75, 54, 31, 65, 55, 68, 49, 60, 59, 64, 91, 78, 72, 66, 62, 86, 66, 91, 51, 95, 81, 65, 54, 75, 77, 63, 66, 66, 49, 62, 85, 59, 52, 70, 58, 76, 57, 71, 66, 65, 61, 78, 75, 54, 69, 62, 45, 54, 66, 58, 79, 71, 58, 52, 62, 59, 80, 61, 64, 53, 81, 67, 58, 54, 64, 60, 56, 92, 60, 68, 57, 64, 74, 59, 79, 59, 124, 54, 75, 74, 54, 61, 60, 40, 66, 72, 77, 84, 50, 73, 60, 75, 55, 69, 79, 76, 49, 69, 66, 78, 62, 59, 96, 83, 65, 73, 62, 73, 44, 59, 67, 49, 45, 47, 80, 70, 41, 60, 72, 68, 47, 55, 82, 56, 40, 63, 62, 53, 65, 55, 75, 57, 56, 63, 72, 72, 63, 72, 49, 93, 83, 61, 68, 57, 55, 49, 76, 65, 96, 47, 70, 70, 68, 81, 56, 52, 75, 58, 67, 82, 66, 62, 65, 59, 62, 82, 50, 63, 76, 69, 62, 90, 68, 64, 86, 60, 92, 88, 70, 50, 78, 57, 61, 67, 86, 85, 53, 62, 54, 141, 81, 77, 74, 70, 62, 74, 61, 58, 59, 50, 61, 75, 80, 89, 66, 79, 58, 66, 89, 68, 60, 49, 45, 69, 56, 62, 56, 61, 118, 75, 63, 61, 55, 72, 95, 59, 53, 62, 60, 64, 62, 68, 71, 72, 82, 65, 77, 52, 63, 53, 100, 52, 67, 68, 67, 53, 65, 54, 57, 70, 114, 63, 59, 61, 51, 77, 65, 66, 54, 82, 66, 90, 61, 43, 59, 60, 63, 62, 67, 76, 57, 59, 82, 178, 46, 75, 49, 71, 54, 48, 57, 68, 65, 82, 66, 46, 94, 51, 79, 58, 87, 67, 64, 73, 59, 76, 78, 72, 97, 58, 85, 42, 73, 85, 75, 75, 80, 87, 56, 88, 53, 86, 77, 89, 73, 69, 49, 70, 87, 53, 82, 64, 51, 63, 75, 55, 64, 66, 53, 45, 73, 55, 68, 58, 61, 64, 139, 71, 63, 62, 64, 70, 49, 63, 71, 91, 49, 69, 76, 62, 59, 60, 79, 47, 79, 73, 58, 70, 73, 69, 65, 65, 73, 62, 72, 63, 68, 69, 72, 64, 53, 70, 66, 48, 60, 70, 44, 70, 70, 55, 46, 58, 99, 60, 65, 80, 64, 50, 50, 75, 91, 71, 63, 64, 75, 58, 63, 61, 60, 61, 77, 64, 57, 79, 86, 61, 66, 70, 62, 66, 55, 68, 98, 55, 83, 67, 53, 59, 69, 56, 62, 56, 62, 71, 38, 68, 62, 120, 40, 84, 58, 62, 78, 75, 70, 63, 55, 56, 54, 67, 47, 64, 82, 69, 56, 53, 95, 52, 68, 40, 54, 59, 68, 56, 88, 49, 55, 89, 44, 57, 78, 66, 56, 82, 59, 62, 47, 50, 59, 77, 63, 56, 75, 71, 70, 54, 72, 55, 66, 67, 67, 66, 71, 54, 67, 76, 58, 43, 93, 72, 61, 73, 75, 65, 63, 62, 65, 76, 56, 83, 76, 63, 51, 58, 47, 70, 71, 67, 47, 60, 49, 66, 77, 55, 64, 58, 67, 46, 63, 81, 63, 65, 39, 54, 66, 56, 97, 82, 102, 68, 62, 70, 62, 65, 75, 59, 54, 69, 103, 38, 54, 76, 97, 63, 70, 64, 63, 58, 80, 69, 45, 75, 61, 53, 65, 63, 54, 65, 60, 74, 72, 72, 62, 66, 72, 56, 73, 120, 119, 90, 81, 88, 56, 91, 73, 79, 87, 81, 62, 59, 73, 72, 38, 82, 53, 82, 44, 50, 56, 77, 69, 92, 70, 65, 57, 60, 72, 62, 68, 58, 68, 48, 80, 59, 56, 41, 62, 74, 68, 51, 34, 63, 114, 53, 54, 54, 62, 88, 72, 56, 73, 95, 89, 75, 53, 79, 59, 58, 82, 64, 57, 63, 59, 44, 75, 72, 64, 63, 71, 73, 51, 61, 63, 38, 65, 71, 61, 57, 47, 64, 64, 49, 62, 76, 86, 72, 84, 63, 78, 65, 60, 58, 67, 46, 63, 100, 71, 90, 66, 51, 72, 58, 66, 50, 54, 65, 89, 73, 45, 36, 74, 68, 61, 56, 95, 70, 47, 70, 63, 50, 63, 62, 65, 62, 65, 63, 56, 81, 65, 59, 41, 71, 69, 62, 77, 83, 62, 55, 63, 76, 60, 48, 69, 53, 54, 60, 92, 56, 62, 79, 65, 57, 61, 67, 53, 66, 84, 55, 85, 55, 76, 61, 92, 61, 66, 58, 56, 75, 68, 64, 71, 59, 71, 53, 68, 72, 56, 71, 65, 78, 71, 67, 82, 78, 47, 47, 53, 68, 74, 96, 73, 56, 58, 66, 68, 75, 70, 64, 87, 65, 49, 69, 72, 60, 57, 75, 48, 77, 75, 71, 61, 83, 58, 83, 74, 55, 58, 71, 62, 52, 63, 59, 53, 75, 51, 59, 51, 59, 62, 57, 71, 48, 126, 132, 60, 64, 64, 66, 63, 61, 61, 60, 52, 67, 70, 56, 51, 73, 77, 76, 64, 70, 92, 68, 71, 48, 59, 49, 59, 81, 61, 55, 65, 68, 58, 56, 64, 61, 74, 68, 70, 57, 48, 70, 65, 58, 71, 62, 65, 91, 76, 69, 66, 78, 58, 52, 66, 45, 72, 55, 76, 50, 45, 48, 63, 91, 92, 100, 61, 57, 75, 61, 69, 44, 64, 74, 71, 61, 59, 79, 76, 65, 70, 78, 73, 80, 58, 63, 81, 77, 67, 60, 60, 45, 91, 62, 86, 63, 57, 45, 76, 59, 64, 49, 70, 60, 60, 57, 62, 63, 60, 55, 63, 69, 64, 117, 71, 60, 56, 77, 39, 67, 47, 54, 58, 78, 64, 51, 61, 64, 58, 82, 83, 60, 64, 65, 81, 53, 67, 76, 43, 85, 54, 52, 74, 56, 88, 80, 66, 53, 71, 64, 82, 59, 56, 62, 72, 75, 61, 57, 61, 49, 51, 90, 49, 81, 55, 67, 108, 62, 69, 57, 57, 57, 46, 55, 72, 47, 59, 69, 54, 86, 66, 54, 71, 47, 76, 52, 54, 101, 55, 68, 62, 61, 76, 58, 77, 64, 48, 70, 54, 39, 65, 54, 76, 65, 105, 69, 56, 70, 55, 74, 44, 78, 69, 113, 84, 76, 66, 74, 74, 56, 70, 79, 95, 74, 47, 52, 29, 60, 67, 55, 59, 84, 58, 90, 73, 60, 74, 97, 63, 60, 69, 73, 81, 79, 68, 56, 63, 50, 73, 72, 46, 72, 81, 55, 71, 76, 63, 85, 68, 67, 68, 54, 75, 92, 66, 56, 62, 78, 70, 71, 43, 53, 52, 67, 77, 79, 65, 73, 69, 113, 65, 59, 74, 54, 43, 62, 53, 57, 77, 63, 53, 65, 63, 73, 63, 67, 57, 64, 85, 71, 76, 41, 64, 51, 66, 66, 62, 55, 59, 71, 60, 78, 58, 69, 61, 54, 67, 70, 57, 68, 66, 54, 70, 50, 70, 60, 67, 89, 45, 79, 61, 46, 72, 67, 54, 69, 57, 67, 77, 82, 54, 57, 76, 76, 61, 79, 67, 57, 47, 46, 71, 74, 76, 46, 45, 62, 71, 53, 75, 71, 59, 57, 66, 72, 44, 67, 57, 70, 74, 64, 87, 61, 49, 65, 56, 62, 74, 53, 63, 71, 63, 59, 69, 72, 61, 55, 53, 56, 57, 59, 81, 80, 87, 38, 67, 69, 57, 50, 88, 79, 49, 50, 77, 63, 58, 67, 92, 48, 69, 56, 76, 91, 57, 67, 51, 76, 77, 49, 77, 66, 60, 70, 73, 55, 50, 106, 46, 57, 66, 47, 94, 54, 51, 71, 51, 61, 57, 55, 67, 70, 134, 75, 60, 53, 54, 53, 75, 76, 53, 54, 64, 71, 47, 66, 103, 59, 41, 53, 59, 58, 68, 63, 77, 58, 69, 55, 48, 57, 55, 69, 64, 55, 71, 54, 52, 64, 67, 82, 54, 73, 54, 63, 52, 66, 69, 65, 61, 51, 56, 57, 54, 63, 48, 72, 75, 154, 64, 71, 58, 68, 59, 68, 68, 49, 65, 57, 65, 73, 87, 57, 40, 55, 87, 50, 46, 58, 61, 94, 63, 66, 40, 48, 68, 57, 60, 87, 74, 89, 64, 51, 66, 66, 69, 74, 85, 64, 68, 69, 73, 52, 82, 66, 63, 78, 81, 56, 70, 68, 62, 51, 84, 55, 47, 54, 61, 78, 52, 54, 125, 53, 70, 67, 71, 71, 61, 50, 56, 91, 50, 57, 79, 81, 48, 75, 73, 53, 69, 72, 69, 66, 76, 76, 57, 39, 53, 47, 53, 58, 53, 59, 37, 61, 69, 63, 96, 62, 53, 72, 63, 75, 57, 31, 71, 63, 71, 52, 85, 50, 64, 61, 63, 71, 63, 73, 61, 59, 73, 73, 70, 60, 60, 54, 46, 63, 68, 52, 70, 48, 58, 67, 53, 70, 59, 78, 68, 67, 84, 73, 113, 54, 70, 91, 68, 72, 59, 54, 84, 50, 77, 117, 88, 76, 70, 55, 91, 73, 52, 56, 70, 88, 55, 63, 54, 65, 72, 81, 70, 58, 127, 69, 49, 59, 67, 54, 60, 73, 103, 91, 58, 76, 55, 42, 56, 50, 51, 63, 66, 90, 76, 44, 72, 55, 59, 57, 79, 80, 67, 58, 92, 62, 74, 60, 54, 71, 51, 64, 57, 49, 60, 69, 64, 87, 72, 68, 69, 59, 69, 72, 84, 68, 55, 51, 72, 48, 68, 55, 58, 109, 54, 67, 60, 61, 64, 67, 61, 66, 56, 50, 58, 72, 50, 84, 47, 56, 45, 65, 68, 51, 99, 61, 64, 57, 68, 46, 60, 77, 66, 61, 47, 58, 49, 53, 52, 63, 73, 51, 62, 69, 73, 62, 88, 71, 60, 63, 92, 67, 75, 93, 60, 56, 39, 77, 56, 77, 61, 67, 73, 56, 102, 72, 61, 53, 61, 59, 76, 64, 67, 76, 62, 61, 75, 42, 60, 55, 68, 44, 70, 80, 54, 59, 43, 97, 61, 60, 53, 75, 69, 67, 62, 57, 72, 53, 44, 56, 62, 48, 55, 64, 70, 61, 43, 74, 63, 59, 127, 55, 61, 45, 64, 44, 61, 70, 61, 74, 55, 96, 66, 61, 65, 54, 46, 57, 61, 63, 51, 51, 60, 55, 60, 54, 59, 53, 49, 55, 69, 45, 60, 67, 58, 82, 90, 49, 55, 63, 49, 69, 62, 57, 67, 78, 66, 59, 57, 55, 87, 60, 65, 47, 57, 69, 62, 65, 59, 66, 53, 54, 63, 54, 75, 45, 52, 69, 88, 71, 72, 51, 102, 58, 66, 73, 71, 51, 64, 87, 60, 72, 89, 55, 67, 51, 73, 62, 48, 67, 63, 62, 114, 61, 69, 65, 74, 56, 90, 60, 62, 65, 55, 64, 75, 49, 81, 67, 49, 54, 66, 75, 72, 54, 70, 65, 73, 61, 55, 83, 109, 61, 65, 28, 99, 58, 71, 67, 85, 74, 65, 52, 66, 63, 46, 79, 76, 68, 57, 72, 88, 62, 54, 48, 58, 54, 69, 99, 76, 73, 57, 64, 61, 111, 56, 51, 87, 58, 58, 57, 79, 56, 68, 63, 58, 74, 83, 53, 70, 88, 61, 83, 79, 56, 83, 50, 66, 84, 59, 66, 75, 55, 54, 90, 71, 58, 54, 74, 68, 70, 124, 100, 49, 60, 75, 72, 73, 65, 57, 61, 73, 78, 56, 54, 68, 60, 65, 57, 77, 56, 74, 58, 60, 54, 62, 79, 76, 68, 81, 74, 65, 67, 84, 53, 68, 58, 43, 56, 94, 68, 76, 90, 78, 72, 75, 73, 79, 78, 69, 62, 65, 68, 55, 73, 72, 60, 56, 74, 57, 65, 64, 63, 65, 87, 48, 79, 71, 67, 60, 71, 65, 50, 51, 71, 69, 70, 58, 32, 76, 66, 77, 74, 65, 84, 66, 61, 63, 83, 67, 59, 67, 50, 68, 77, 61, 94, 68, 49, 67, 97, 50, 49, 70, 65, 61, 49, 55, 80, 62, 66, 57, 53, 69, 131, 64, 84, 55, 60, 83, 55, 78, 58, 48, 51, 55, 63, 75, 54, 68, 55, 50, 62, 63, 67, 64, 65, 50, 57, 72, 82, 92, 74, 64, 60, 88, 55, 57, 81, 59, 61, 59, 39, 80, 67, 69, 62, 83, 76, 66, 40, 47, 68, 55, 85, 78, 92, 88, 55, 79, 68, 49, 60, 56, 64, 67, 75, 68, 95, 53, 121, 80, 58, 56, 65, 70, 59, 38, 102, 56, 57, 65, 57, 69, 69, 68, 68, 59, 46, 48, 63, 66, 54, 84, 67, 101, 70, 53, 60, 57, 63, 52, 71, 67, 103, 62, 59, 70, 50, 59, 73, 71, 66, 69, 62, 86, 61, 62, 56, 76, 57, 62, 67, 63, 47, 85, 62, 60, 82, 45, 76, 60, 70, 61, 77, 64, 81, 54, 67, 71, 76, 69, 39, 73, 70, 93, 54, 71, 70, 83, 71, 53, 54, 105, 94, 103, 57, 51, 102, 52, 79, 56, 52, 77, 59, 50, 64, 44, 56, 61, 77, 55, 59, 59, 64, 55, 118, 70, 53, 63, 62, 59, 70, 53, 99, 62, 87, 55, 58, 90, 56, 66, 72, 55, 68, 76, 57, 65, 58, 60, 57, 44, 87, 58, 67, 57, 60, 54, 58, 45, 77, 54, 53, 57, 66, 63, 63, 81, 46, 52, 60, 42, 56, 59, 58, 53, 51, 74, 54, 59, 61, 66, 70, 87, 47, 61, 55, 57, 59, 60, 68, 65, 51, 74, 71, 61, 54, 61, 49, 55, 61, 78, 57, 59, 63, 69, 60, 70, 69, 58, 61, 97, 59, 61, 50, 73, 94, 48, 90, 71, 82, 60, 57, 55, 61, 76, 67, 55, 64, 88, 61, 69, 69, 74, 70, 63, 62, 55, 49, 84, 84, 50, 48, 47, 46, 51, 76, 83, 64, 45, 53, 45, 94, 56, 64, 78, 82, 95, 42, 97, 56, 50, 68, 56, 61, 67, 86, 66, 62, 56, 58, 101, 70, 63, 58, 43, 63, 54, 56, 59, 50, 135, 53, 67, 76, 42, 58, 56, 66, 49, 69, 61, 93, 77, 67, 73, 80, 72, 55, 63, 71, 57, 64, 40, 71, 53, 63, 76, 66, 74, 79, 68, 53, 64, 76, 73, 58, 59, 95, 50, 76, 65, 65, 55, 60, 57, 56, 70, 62, 64, 68, 54, 66, 83, 64, 71, 116, 85, 52, 60, 57, 57, 55, 127, 60, 68, 51, 67, 86, 97, 56, 70, 48, 104, 61, 57, 57, 81, 103, 69, 74, 57, 58, 49, 65, 64, 66, 61, 82, 76, 64, 64, 80, 53, 56, 64, 51, 55, 65, 85, 63, 78, 52, 72, 53, 72, 93, 63, 80, 61, 79, 71, 65, 60, 70, 68, 52, 71, 64, 112, 52, 53, 51, 52, 71, 61, 54, 52, 99, 62, 69, 72, 64, 56, 69, 88, 55, 62, 71, 63, 64, 89, 52, 74, 51, 35, 63, 63, 59, 72, 52, 63, 53, 61, 68, 84, 60, 52, 63, 53, 69, 73, 80, 83, 74, 76, 56, 58, 64, 68, 43, 62, 79, 85, 55, 59, 58, 78, 40, 60, 52, 60, 69, 65, 70, 50, 60, 62, 60, 75, 56, 91, 59, 61, 76, 76, 67, 61, 83, 85, 61, 63, 60, 79, 98, 70, 80, 78, 60, 68, 89, 64, 64, 63, 63, 52, 62, 65, 78, 54, 66, 78, 51, 61, 61, 63, 77, 67, 67, 50, 61, 80, 51, 74, 61, 46, 41, 86, 60, 77, 64, 72, 53, 65, 60, 64, 78, 56, 56, 52, 67, 58, 64, 97, 53, 44, 54, 63, 73, 53, 73, 56, 48, 57, 66, 63, 61, 76, 50, 73, 56, 63, 87, 67, 69, 64, 76, 83, 59, 60, 68, 64, 59, 88, 65, 49, 64, 57, 48, 69, 69, 67, 79, 47, 54, 62, 62, 53, 79, 77, 49, 71, 91, 66, 62, 72, 74, 66, 62, 84, 89, 90, 55, 55, 68, 65, 81, 65, 81, 66, 66, 60, 63, 59, 55, 62, 60, 70, 67, 46, 60, 114, 37, 68, 69, 55, 40, 60, 75, 74, 64, 51, 46, 65, 65, 56, 68, 58, 51, 74, 101, 112, 119, 73, 74, 71, 55, 57, 63, 58, 57, 62, 56, 91, 67, 51, 125, 52, 48, 58, 80, 76, 96, 57, 92, 116, 59, 63, 54, 57, 67, 59, 65, 90, 72, 85, 59, 66, 52, 58, 56, 61, 58, 67, 63, 66, 68, 63, 66, 59, 39, 69, 61, 46, 97, 56, 55, 49, 64, 33, 72, 50, 55, 81, 62, 81, 60, 84, 81, 53, 60, 42, 44, 67, 54, 54, 47, 36, 70, 69, 61, 72, 30, 51, 54, 72, 56, 80, 58, 77, 83, 62, 60, 58, 72, 51, 60, 56, 80, 67, 87, 48, 61, 85, 63, 84, 60, 52, 67, 68, 46, 55, 50, 65, 74, 53, 77, 81, 91, 58, 73, 57, 64, 63, 84, 73, 60, 69, 64, 68, 66, 62, 72, 63, 71, 78, 90, 84, 81, 69, 64, 93, 76, 70, 73, 59, 67, 69, 47, 53, 53, 103, 92, 63, 40, 62, 60, 67, 77, 71, 68, 93, 59, 50, 62, 82, 37, 61, 69, 58, 64, 60, 68, 79, 52, 70, 79, 65, 65, 59, 66, 59, 56, 49, 67, 60, 68, 100, 55, 51, 64, 85, 127, 54, 57, 64, 52, 52, 62, 50, 66, 71, 59, 67, 69, 69, 67, 50, 64, 68, 63, 79, 71, 78, 74, 50, 85, 69, 67, 44, 79, 48, 44, 57, 69, 62, 59, 65, 63, 62, 65, 55, 69, 64, 68, 58, 150, 61, 67, 68, 70, 59, 119, 63, 68, 62, 69, 58, 55, 51, 58, 65, 65, 69, 65, 70, 55, 70, 80, 46, 60, 72, 54, 55, 82, 60, 73, 54, 101, 74, 65, 58, 54, 53, 54, 60, 77, 61, 56, 45, 67, 55, 57, 63, 73, 98, 70, 72, 74, 49, 70, 93, 73, 64, 67, 55, 61, 55, 100, 61, 48, 74, 74, 56, 73, 76, 49, 41, 76, 76, 54, 51, 62, 73, 72, 46, 55, 80, 90, 55, 65, 58, 64, 79, 43, 61, 66, 74, 69, 66, 70, 66, 63, 79, 68, 53, 53, 55, 72, 65, 59, 73, 53, 66, 83, 90, 49, 83, 102, 57, 72, 75, 64, 73, 76, 51, 74, 70, 98, 63, 57, 53, 64, 76, 61, 53, 58, 70, 79, 74, 63, 46, 72, 49, 59, 47, 82, 62, 89, 67, 68, 66, 62, 75, 64, 66, 71, 59, 52, 65, 53, 60, 49, 64, 65, 69, 58, 71, 56, 44, 52, 105, 60, 70, 63, 60, 55, 62, 77, 63, 98, 67, 63, 59, 73, 76, 53, 75, 38, 67, 47, 56, 78, 48, 55, 61, 50, 81, 32, 53, 54, 56, 66, 69, 66, 55, 62, 71, 67, 89, 45, 63, 82, 64, 69, 67, 51, 64, 93, 63, 60, 58, 49, 74, 67, 117, 68, 74, 55, 50, 68, 73, 57, 54, 52, 59, 67, 61, 68, 71, 68, 72, 66, 65, 77, 61, 88, 77, 54, 76, 72, 69, 73, 67, 71, 46, 82, 95, 59, 64, 61, 62, 68, 73, 71, 45, 50, 82, 86, 71, 56, 81, 56, 78, 61, 62, 59, 91, 59, 66, 76, 60, 54, 61, 64, 78, 63, 75, 52, 68, 54, 60, 57, 64, 65, 61, 73, 67, 75, 69, 60, 70, 60, 85, 57, 85, 86, 58, 62, 78, 70, 121, 41, 59, 74, 66, 62, 85, 48, 45, 72, 67, 67, 71, 65, 54, 47, 58, 49, 82, 87, 40, 89, 77, 73, 82, 76, 62, 86, 67, 58, 51, 53, 41, 67, 54, 51, 72, 51, 77, 80, 62, 61, 78, 49, 70, 48, 63, 52, 74, 64, 62, 58, 56, 62, 55, 64, 62, 81, 80, 56, 59, 48, 78, 57, 72, 61, 61, 66, 49, 76, 60, 53, 68, 58, 65, 58, 67, 73, 48, 53, 45, 55, 75, 75, 61, 46, 75, 58, 55, 62, 76, 67, 82, 65, 71, 57, 78, 52, 71, 56, 85, 80, 97, 61, 53, 98, 72, 85, 51, 83, 72, 69, 57, 55, 66, 69, 68, 59, 73, 106, 69, 66, 60, 78, 88, 69, 48, 57, 54, 50, 62, 64, 55, 64, 125, 66, 60, 46, 73, 58, 91, 74, 76, 85, 52, 52, 83, 53, 74, 70, 65, 69, 63, 55, 69, 54, 112, 78, 75, 67, 57, 63, 55, 63, 75, 49, 108, 74, 50, 59, 51, 79, 56, 76, 74, 65, 62, 102, 57, 52, 60, 58, 56, 73, 69, 46, 53, 55, 74, 173, 59, 71, 68, 67, 47, 66, 76, 66, 60, 70, 56, 53, 93, 50, 76, 61, 82, 72, 48, 77, 54, 88, 51, 59, 87, 45, 57, 50, 62, 97, 69, 64, 72, 81, 63, 59, 60, 58, 63, 76, 60, 56, 57, 57, 82, 56, 75, 61, 64, 75, 62, 55, 53, 67, 76, 50, 64, 68, 77, 57, 55, 47, 121, 61, 64, 61, 71, 70, 58, 69, 53, 94, 52, 71, 67, 75, 60, 77, 54, 71, 61, 63, 53, 61, 53, 70, 77, 74, 84, 62, 88, 72, 61, 58, 74, 50, 57, 79, 69, 56, 58, 43, 62, 62, 88, 65, 66, 76, 88, 77, 100, 96, 49, 72, 74, 59, 98, 86, 49, 60, 70, 74, 62, 48, 56, 69, 71, 59, 71, 64, 63, 57, 75, 56, 66, 63, 49, 90, 62, 58, 60, 61, 96, 65, 73, 53, 76, 51, 80, 78, 65, 57, 57, 105, 60, 56, 66, 74, 69, 74, 63, 55, 84, 62, 62, 62, 61, 46, 71, 64, 60, 65, 90, 78, 51, 80, 53, 56, 52, 87, 62, 59, 57, 69, 64, 69, 65, 51, 64, 71, 61, 66, 32, 78, 73, 69, 59, 58, 66, 41, 69, 80, 56, 50, 53, 74, 60, 62, 72, 41, 74, 64, 70, 58, 75, 60, 70, 93, 55, 47, 67, 87, 76, 64, 68, 68, 77, 58, 69, 63, 75, 56, 73, 59, 55, 70, 51, 49, 60, 107, 77, 70, 52, 47, 78, 64, 63, 62, 65, 48, 58, 68, 60, 53, 86, 67, 54, 61, 49, 60, 75, 73, 42, 50, 57, 44, 72, 52, 77, 70, 65, 74, 84, 49, 98, 89, 66, 60, 66, 57, 62, 136, 48, 54, 63, 60, 57, 69, 56, 75, 58, 98, 52, 71, 81, 100, 69, 70, 42, 75, 68, 121, 61, 59, 61, 71, 122, 88, 87, 116, 63, 75, 75, 66, 62, 73, 69, 69, 54, 61, 50, 59, 45, 71, 77, 47, 59, 49, 73, 60, 56, 76, 40, 77, 70, 50, 48, 68, 78, 69, 55, 77, 65, 65, 61, 56, 52, 80, 51, 68, 55, 96, 78, 69, 60, 71, 59, 75, 71, 47, 88, 86, 56, 57, 66, 72, 94, 52, 68, 47, 78, 48, 62, 67, 52, 100, 72, 70, 60, 74, 74, 77, 75, 46, 52, 89, 67, 47, 62, 48, 58, 53, 59, 69, 54, 64, 92, 61, 74, 67, 44, 72, 67, 60, 59, 64, 67, 54, 51, 67, 81, 67, 39, 69, 69, 66, 61, 77, 63, 58, 58, 73, 61, 65, 68, 83, 75, 51, 68, 72, 74, 64, 85, 61, 68, 90, 64, 71, 71, 58, 62, 76, 69, 52, 54, 83, 38, 65, 63, 80, 66, 52, 81, 93, 103, 74, 59, 77, 71, 74, 67, 110, 86, 57, 51, 56, 80, 60, 51, 65, 58, 73, 58, 50, 63, 61, 60, 74, 77, 51, 45, 54, 64, 60, 77, 96, 114, 89, 66, 80, 60, 65, 77, 63, 58, 75, 58, 53, 81, 26, 83, 100, 56, 61, 81, 57, 62, 74, 92, 70, 64, 61, 80, 58, 57, 57, 56, 58, 73, 67, 78, 62, 67, 84, 68, 56, 66, 68, 50, 121, 55, 78, 59, 84, 56, 63, 46, 69, 57, 79, 60, 49, 70, 61, 67, 76, 74, 64, 62, 68, 43, 43, 60, 78, 59, 92, 60, 59, 50, 59, 43, 63, 54, 62, 90, 66, 58, 58, 56, 78, 69, 65, 54, 75, 43, 53, 70, 63, 113, 67, 64, 68, 57, 66, 74, 56, 74, 58, 70, 71, 44, 80, 51, 54, 65, 76, 48, 118, 83, 66, 60, 64, 56, 74, 66, 76, 67, 42, 49, 68, 88, 108, 58, 86, 61, 88, 70, 71, 78, 83, 75, 102, 87, 56, 76, 51, 88, 45, 67, 62, 59, 70, 69, 76, 59, 71, 79, 54, 74, 63, 78, 86, 66, 119, 52, 66, 58, 63, 50, 51, 51, 78, 46, 48, 74, 71, 58, 63, 65, 45, 81, 69, 68, 57, 53, 71, 38, 57, 63, 74, 82, 104, 65, 75, 71, 103, 54, 64, 73, 60, 76, 55, 65, 83, 63, 72, 57, 68, 59, 45, 65, 83, 42, 77, 47, 57, 64, 64, 54, 39, 50, 68, 81, 75, 66, 54, 62, 78, 67, 55, 51, 59, 63, 58, 90, 63, 59, 73, 43, 51, 53, 45, 72, 62, 64, 62, 58, 49, 57, 58, 63, 64, 106, 39, 43, 71, 69, 46, 61, 69, 57, 80, 70, 51, 55, 69, 52, 77, 52, 53, 62, 71, 55, 58, 75, 53, 58, 62, 54, 68, 79, 66, 61, 60, 77, 83, 51, 59, 62, 75, 78, 63, 67, 66, 64, 63, 43, 70, 59, 62, 64, 94, 68, 141, 59, 76, 108, 55, 70, 51, 47, 41, 80, 71, 73, 68, 69, 53, 75, 47, 55, 52, 59, 67, 54, 76, 56, 107, 69, 71, 87, 67, 59, 93, 64, 61, 58, 81, 67, 63, 47, 70, 62, 53, 43, 74, 78, 57, 84, 67, 71, 70, 90, 47, 71, 58, 64, 68, 71, 63, 62, 80, 65, 65, 60, 67, 65, 61, 81, 59, 56, 63, 55, 60, 70, 66, 68, 48, 59, 61, 78, 85, 81, 48, 67, 54, 51, 84, 66, 70, 59, 74, 68, 69, 50, 52, 64, 65, 56, 47, 74, 76, 63, 55, 69, 53, 60, 124, 31, 70, 60, 78, 96, 56, 50, 71, 70, 50, 77, 71, 53, 77, 57, 64, 55, 70, 86, 61, 73, 61, 66, 47, 54, 49, 46, 55, 51, 60, 67, 64, 109, 59, 68, 55, 51, 74, 67, 50, 58, 61, 54, 47, 79, 38, 66, 58, 86, 54, 46, 72, 57, 51, 60, 75, 84, 85, 72, 80, 54, 71, 43, 77, 56, 87, 63, 75, 76, 54, 53, 73, 47, 62, 63, 77, 62, 50, 47, 60, 102, 74, 58, 74, 53, 63, 95, 59, 60, 71, 54, 73, 52, 47, 54, 65, 53, 53, 76, 63, 57, 60, 98, 60, 85, 70, 50, 83, 60, 52, 90, 68, 126, 65, 64, 58, 78, 66, 83, 59, 74, 78, 54, 100, 73, 69, 60, 63, 85, 56, 72, 50, 52, 59, 86, 170, 64, 63, 67, 71, 65, 43, 61, 64, 71, 52, 68, 42, 71, 76, 67, 98, 94, 53, 67, 55, 55, 84, 81, 68, 62, 74, 56, 65, 90, 54, 66, 54, 71, 72, 68, 39, 72, 60, 70, 83, 85, 62, 61, 53, 64, 71, 88, 64, 64, 66, 88, 75, 63, 59, 44, 89, 74, 49, 57, 57, 77, 93, 66, 57, 61, 73, 71, 59, 79, 61, 57, 85, 71, 98, 75, 108, 69, 49, 45, 66, 71, 68, 69, 60, 53, 92, 47, 68, 55, 56, 68, 57, 53, 59, 82, 50, 70, 61, 74, 55, 71, 58, 101, 57, 54, 57, 61, 46, 120, 85, 75, 95, 65, 71, 57, 47, 77, 75, 84, 69, 92, 45, 59, 54, 50, 59, 51, 54, 62, 74, 62, 58, 66, 66, 64, 58, 50, 42, 66, 53, 68, 62, 70, 59, 48, 65, 56, 79, 61, 46, 63, 61, 73, 66, 75, 64, 53, 45, 60, 54, 62, 61, 52, 37, 56, 69, 67, 69, 67, 58, 49, 56, 99, 74, 62, 53, 58, 59, 72, 62, 80, 83, 60, 66, 66, 63, 55, 57, 62, 53, 58, 66, 58, 74, 63, 74, 66, 49, 72, 59, 80, 64, 58, 56, 80, 69, 44, 58, 72, 65, 58, 64, 68, 59, 62, 59, 77, 60, 70, 69, 81, 68, 86, 65, 56, 72, 98, 49, 73, 69, 58, 66, 63, 54, 64, 57, 46, 67, 60, 84, 72, 56, 71, 46, 50, 72, 63, 70, 73, 60, 61, 67, 55, 60, 86, 60, 62, 55, 65, 58, 80, 73, 60, 56, 63, 62, 63, 66, 59, 58, 75, 46, 80, 48, 118, 66, 52, 59, 59, 56, 66, 137, 61, 80, 52, 55, 61, 54, 58, 84, 56, 65, 50, 86, 93, 76, 80, 86, 64, 48, 62, 109, 59, 54, 55, 53, 76, 85, 80, 104, 60, 59, 75, 50, 62, 82, 74, 85, 78, 65, 59, 71, 49, 63, 66, 75, 67, 71, 73, 49, 61, 55, 42, 60, 77, 53, 74, 64, 74, 51, 52, 62, 56, 80, 65, 71, 57, 84, 49, 77, 73, 62, 72, 58, 74, 68, 75, 74, 52, 71, 64, 57, 67, 60, 58, 80, 103, 57, 63, 59, 47, 65, 54, 69, 54, 74, 64, 45, 85, 65, 76, 62, 53, 63, 73, 74, 61, 66, 59, 73, 65, 81, 89, 68, 61, 70, 69, 52, 57, 74, 48, 85, 67, 58, 59, 81, 77, 41, 59, 64, 106, 87, 60, 71, 63, 65, 57, 75, 63, 62, 30, 67, 75, 70, 51, 61, 65, 50, 59, 50, 78, 66, 86, 65, 85, 58, 76, 91, 87, 58, 70, 58, 87, 59, 69, 85, 44, 69, 69, 59, 51, 57, 72, 71, 103, 82, 62, 71, 69, 59, 60, 96, 71, 74, 93, 44, 71, 54, 69, 68, 71, 66, 67, 45, 67, 75, 70, 73, 57, 60, 61, 49, 69, 44, 85, 140, 107, 119, 53, 74, 75, 49, 70, 52, 55, 81, 66, 71, 74, 65, 67, 66, 51, 56, 58, 64, 82, 87, 108, 59, 58, 55, 71, 49, 61, 53, 65, 61, 71, 69, 62, 58, 51, 76, 73, 59, 63, 62, 87, 114, 71, 93, 59, 45, 76, 100, 58, 65, 56, 79, 72, 39, 69, 53, 62, 83, 93, 55, 65, 68, 54, 70, 66, 64, 67, 72, 71, 48, 61, 50, 58, 73, 47, 72, 71, 87, 67, 57, 55, 71, 50, 60, 55, 74, 61, 54, 61, 60, 112, 55, 65, 58, 62, 78, 81, 81, 57, 76, 71, 67, 64, 67, 67, 49, 65, 61, 66, 70, 106, 56, 52, 62, 65, 72, 77, 67, 140, 60, 60, 78, 75, 111, 50, 62, 73, 65, 75, 62, 54, 58, 85, 57, 78, 65, 71, 79, 106, 80, 59, 66, 64, 68, 63, 70, 46, 72, 74, 83, 78, 65, 65, 58, 63, 110, 62, 62, 53, 80, 46, 75, 75, 108, 74, 58, 60, 62, 55, 66, 55, 51, 64, 50, 65, 83, 55, 63, 52, 61, 55, 57, 58, 74, 50, 67, 60, 86, 63, 57, 68, 67, 53, 66, 107, 80, 87, 67, 61, 69, 62, 44, 81, 59, 70, 72, 73, 70, 54, 50, 48, 61, 59, 53, 73, 59, 68, 55, 69, 68, 64, 75, 60, 51, 62, 58, 61, 61, 78, 73, 62, 54, 80, 56, 69, 60, 56, 48, 53, 77, 62, 56, 70, 70, 114, 54, 58, 66, 50, 66, 65, 64, 71, 89, 73, 68, 54, 53, 66, 85, 78, 53, 46, 69, 63, 53, 72, 49, 40, 54, 71, 60, 79, 71, 61, 57, 82, 64, 53, 58, 74, 71, 55, 74, 59, 58, 55, 55, 47, 69, 49, 62, 72, 58, 62, 105, 64, 62, 97, 68, 97, 58, 47, 56, 71, 64, 66, 80, 77, 48, 45, 64, 65, 79, 68, 87, 52, 56, 45, 63, 79, 64, 98, 43, 51, 46, 69, 60, 63, 54, 69, 54, 58, 77, 60, 61, 68, 62, 65, 51, 58, 71, 68, 66, 52, 49, 62, 74, 54, 40, 65, 45, 63, 63, 58, 59, 63, 56, 60, 56, 67, 59, 53, 57, 62, 77, 68, 70, 61, 57, 85, 78, 59, 88, 93, 58, 57, 69, 64, 71, 80, 70, 62, 64, 76, 64, 60, 77, 68, 55, 67, 61, 61, 66, 66, 66, 68, 70, 62, 87, 49, 93, 74, 75, 73, 54, 60, 53, 80, 77, 58, 62, 65, 56, 66, 45, 61, 73, 72, 48, 70, 74, 65, 74, 42, 64, 59, 48, 116, 61, 72, 58, 80, 44, 61, 89, 70, 71, 72, 65, 51, 64, 51, 75, 60, 55, 70, 69, 58, 65, 38, 61, 85, 72, 47, 90, 69, 68, 56, 82, 79, 68, 53, 57, 75, 93, 61, 83, 78, 66, 56, 65, 68, 65, 53, 65, 66, 61, 51, 65, 94, 70, 62, 61, 60, 76, 71, 38, 64, 65, 70, 74, 56, 50, 66, 60, 74, 56, 70, 60, 52, 52, 74, 63, 78, 62, 56, 63, 59, 60, 92, 66, 77, 57, 58, 59, 69, 101, 55, 85, 62, 57, 68, 73, 59, 77, 68, 67, 78, 50, 48, 43, 62, 55, 67, 126, 46, 69, 63, 67, 52, 66, 67, 57, 73, 68, 76, 72, 54, 106, 61, 87, 97, 60, 78, 69, 63, 49, 80, 49, 93, 66, 63, 76, 58, 54, 75, 78, 60, 72, 51, 78, 56, 58, 52, 85, 76, 60, 72, 66, 82, 57, 71, 63, 52, 78, 58, 64, 59, 63, 61, 60, 68, 60, 56, 66, 67, 59, 73, 69, 66, 74, 60, 64, 56, 56, 48, 76, 95, 72, 71, 81, 60, 69, 78, 61, 87, 76, 85, 65, 65, 51, 56, 47, 71, 65, 61, 57, 77, 63, 56, 56, 57, 59, 83, 59, 73, 66, 78, 68, 50, 62, 95, 46, 130, 50, 86, 55, 73, 60, 51, 74, 92, 58, 47, 72, 73, 72, 78, 64, 68, 62, 60, 67, 62, 60, 69, 66, 50, 49, 56, 90, 56, 58, 69, 59, 80, 65, 56, 72, 52, 65, 72, 71, 73, 68, 73, 59, 81, 61, 63, 74, 55, 52, 59, 62, 78, 59, 62, 40, 93, 55, 75, 56, 63, 65, 43, 61, 65, 59, 40, 72, 68, 68, 65, 70, 74, 111, 59, 67, 70, 47, 55, 53, 71, 45, 66, 59, 57, 64, 48, 66, 51, 81, 87, 63, 67, 72, 71, 40, 60, 75, 49, 70, 48, 65, 70, 52, 55, 57, 53, 69, 60, 107, 87, 56, 59, 86, 70, 62, 53, 70, 69, 60, 25, 48, 52, 68, 71, 52, 49, 43, 60, 49, 66, 91, 58, 81, 73, 63, 50, 55, 77, 68, 57, 44, 47, 57, 62, 65, 83, 65, 58, 76, 66, 78, 53, 56, 72, 60, 63, 56, 55, 63, 79, 84, 68, 79, 84, 58, 112, 71, 55, 48, 68, 63, 39, 71, 74, 56, 56, 53, 86, 69, 68, 49, 47, 64, 68, 79, 64, 80, 68, 55, 69, 63, 84, 113, 64, 54, 59, 52, 103, 52, 87, 104, 74, 55, 69, 82, 63, 78, 72, 91, 60, 56, 70, 60, 49, 74, 66, 56, 68, 42, 72, 69, 64, 57, 81, 37, 86, 65, 92, 77, 87, 69, 57, 66, 49, 68, 85, 52, 53, 63, 39, 68, 54, 64, 72, 73, 67, 79, 58, 60, 56, 55, 72, 106, 69, 83, 50, 92, 92, 63, 66, 54, 93, 78, 57, 56, 69, 91, 60, 64, 91, 64, 92, 58, 67, 60, 76, 74, 61, 43, 61, 57, 71, 57, 63, 70, 70, 84, 77, 66, 72, 72, 46, 74, 70, 63, 56, 62, 61, 74, 62, 78, 77, 91, 77, 38, 85, 66, 61, 73, 54, 34, 33, 75, 51, 57, 64, 62, 32, 57, 54, 59, 34, 67, 58, 68, 61, 64, 62, 65, 49, 60, 69, 46, 60, 38, 64, 68, 67, 69, 86, 79, 64, 61, 81, 58, 89, 38, 93, 77, 105, 59, 36, 99, 65, 48, 87, 54, 66, 70, 70, 77, 47, 48, 74, 59, 51, 85, 51, 70, 82, 49, 61, 65, 56, 66, 80, 129, 103, 86, 66, 90, 79, 60, 74, 64, 84, 92, 72, 71, 93, 50, 53, 80, 75, 52, 73, 69, 42, 76, 80, 98, 70, 43, 84, 49, 76, 41, 56, 44, 77, 73, 55, 76, 47, 74, 60, 48, 67, 50, 103, 130, 59, 54, 60, 55, 67, 80, 59, 56, 57, 67, 53, 63, 86, 56, 62, 67, 129, 75, 92, 59, 57, 61, 47, 66, 70, 97, 55, 58, 70, 63, 67, 94, 56, 61, 47, 59, 64, 70, 69, 62, 62, 54, 75, 61, 69, 63, 62, 72, 113, 74, 63, 67, 66, 84, 58, 84, 51, 68, 63, 71, 58, 52, 70, 82, 89, 76, 62, 75, 86, 44, 70, 68, 53, 68, 53, 81, 64, 66, 62, 65, 81, 109, 43, 96, 58, 55, 76, 51, 70, 67, 72, 89, 49, 64, 72, 70, 57, 82, 63, 50, 87, 54, 50, 65, 56, 81, 88, 56, 52, 76, 45, 65, 70, 133, 59, 71, 83, 74, 58, 62, 65, 82, 66, 50, 54, 47, 72, 41, 66, 45, 65, 55, 71, 79, 74, 69, 47, 55, 75, 67, 57, 99, 63, 88, 82, 121, 68, 62, 56, 55, 53, 59, 82, 60, 82, 68, 52, 84, 59, 53, 80, 75, 42, 71, 95, 59, 72, 65, 50, 59, 70, 55, 73, 78, 78, 70, 48, 98, 60, 57, 48, 77, 73, 48, 56, 74, 102, 77, 47, 47, 72, 68, 57, 55, 86, 49, 43, 64, 66, 43, 58, 71, 104, 58, 59, 83, 75, 85, 50, 41, 88, 88, 52, 49, 71, 43, 60, 98, 61, 58, 68, 90, 62, 62, 74, 62, 49, 56, 55, 63, 111, 40, 56, 43, 64, 65, 48, 80, 63, 91, 78, 74, 38, 69, 61, 75, 57, 91, 57, 58, 66, 60, 60, 117, 62, 70, 109, 60, 108, 60, 37, 40, 64, 67, 80, 61, 60, 59, 56, 70, 60, 74, 81, 61, 50, 65, 78, 74, 77, 67, 56, 83, 69, 83, 73, 54, 60, 60, 88, 53, 42, 46, 42, 58, 85, 65, 61, 66, 56, 87, 66, 61, 79, 83, 79, 64, 64, 72, 63, 92, 53, 59, 68, 58, 67, 75, 39, 81, 62, 55, 56, 76, 68, 44, 46, 53, 64, 50, 83, 54, 67, 68, 65, 100, 68, 59, 65, 103, 58, 59, 76, 55, 42, 64, 50, 50, 77, 68, 58, 67, 65, 72, 56, 60, 70, 65, 51, 107, 47, 61, 72, 61, 68, 71, 70, 57, 40, 50, 62, 57, 57, 64, 67, 75, 73, 74, 84, 78, 72, 42, 45, 75, 70, 58, 42, 81, 70, 48, 86, 40, 56, 73, 64, 58, 57, 64, 90, 61, 59, 75, 70, 72, 70, 62, 97, 76, 68, 56, 49, 59, 57, 100, 51, 64, 59, 56, 70, 55, 43, 64, 53, 71, 51, 85, 60, 57, 75, 66, 73, 37, 50, 58, 44, 58, 67, 52, 62, 49, 95, 81, 54, 61, 74, 64, 61, 64, 61, 64, 61, 62, 44, 78, 50, 70, 81, 68, 79, 58, 69, 67, 63, 66, 68, 69, 72, 56, 66, 63, 102, 87, 71, 83, 56, 69, 66, 106, 49, 54, 55, 64, 73, 59, 57, 74, 47, 62, 56, 57, 83, 62, 72, 50, 67, 138, 63, 92, 51, 64, 81, 94, 91, 61, 49, 57, 60, 71, 69, 75, 48, 85, 86, 63, 48, 51, 47, 59, 64, 62, 83, 63, 54, 54, 76, 49, 71, 68, 32, 66, 71, 55, 59, 59, 54, 93, 68, 55, 74, 60, 89, 67, 45, 67, 46, 47, 66, 65, 75, 55, 56, 54, 69, 51, 65, 47, 56, 62, 93, 71, 56, 98, 81, 67, 68, 55, 73, 99, 113, 81, 75, 92, 67, 57, 60, 64, 78, 78, 63, 86, 77, 59, 71, 43, 68, 44, 57, 72, 50, 82, 74, 50, 56, 63, 83, 64, 51, 65, 101, 51, 68, 90, 90, 44, 115, 77, 78, 48, 75, 54, 49, 47, 68, 65, 53, 53, 80, 48, 79, 83, 62, 53, 43, 60, 45, 56, 63, 73, 61, 50, 87, 41, 47, 59, 55, 86, 94, 53, 71, 61, 47, 62, 65, 98, 60, 64, 55, 62, 58, 73, 42, 70, 46, 69, 74, 98, 70, 53, 59, 49, 51, 58, 58, 78, 78, 68, 73, 94, 69, 59, 66, 86, 86, 55, 51, 68, 117, 96, 79, 46, 43, 60, 58, 66, 31, 69, 55, 75, 79, 63, 66, 64, 38, 51, 48, 48, 77, 61, 58, 66, 71, 62, 58, 62, 63, 57, 42, 48, 59, 67, 54, 53, 61, 44, 66, 72, 60, 59, 56, 72, 73, 67, 86, 74, 55, 64, 57, 68, 63, 39, 48, 65, 64, 60, 64, 45, 58, 75, 64, 72, 62, 115, 75, 73, 62, 68, 71, 64, 46, 94, 59, 65, 72, 102, 71, 44, 67, 47, 48, 69, 71, 50, 62, 58, 76, 59, 66, 87, 32, 67, 79, 66, 69, 110, 51, 72, 65, 50, 52, 63, 67, 72, 69, 70, 60, 75, 58, 57, 62, 76, 106, 101, 111, 49, 55, 55, 108, 72, 49, 39, 89, 58, 64, 55, 48, 68, 50, 70, 67, 51, 85, 118, 55, 86, 69, 57, 89, 66, 65, 67, 56, 81, 58, 61, 67, 47, 86, 75, 48, 67, 57, 73, 74, 72, 124, 53, 64, 71, 50, 47, 49, 62, 64, 61, 68, 66, 41, 56, 62, 65, 60, 49, 47, 59, 50, 56, 76, 57, 51, 70, 57, 78, 72, 60, 65, 67, 61, 73, 67, 76, 55, 64, 85, 50, 65, 49, 74, 58, 62, 63, 64, 45, 71, 74, 55, 69, 74, 109, 55, 77, 53, 56, 47, 55, 78, 53, 56, 38, 48, 59, 59, 70, 81, 105, 60, 71, 133, 84, 57, 66, 62, 71, 44, 84, 53, 55, 65, 73, 50, 95, 49, 42, 82, 66, 52, 74, 117, 74, 82, 66, 76, 76, 50, 121, 54, 71, 70, 62, 59, 77, 54, 50, 54, 66, 59, 69, 62, 58, 75, 57, 63, 57, 70, 60, 75, 88, 76, 83, 68, 73, 57, 64, 66, 65, 46, 59, 57, 82, 63, 97, 86, 72, 56, 53, 88, 63, 67, 48, 90, 59, 57, 39, 89, 56, 50, 65, 60, 60, 45, 88, 88, 68, 67, 55, 95, 57, 49, 68, 65, 62, 70, 66, 57, 90, 52, 89, 52, 66, 63, 83, 52, 49, 57, 59, 74, 70, 47, 89, 55, 49, 63, 71, 57, 66, 112, 91, 75, 79, 55, 69, 52, 64, 70, 58, 57, 50, 67, 78, 62, 53, 65, 63, 80, 76, 108, 69, 55, 69, 64, 72, 80, 80, 62, 54, 63, 55, 61, 64, 58, 66, 51, 75, 50, 124, 42, 75, 70, 63, 61, 68, 55, 77, 50, 75, 54, 72, 52, 54, 68, 68, 56, 64, 69, 71, 44, 54, 52, 95, 60, 78, 71, 64, 65, 68, 49, 74, 57, 63, 57, 81, 53, 54, 87, 80, 63, 61, 53, 87, 65, 71, 46, 48, 82, 55, 74, 39, 80, 55, 58, 76, 80, 49, 84, 67, 63, 51, 71, 74, 52, 56, 77, 73, 52, 59, 78, 54, 73, 106, 65, 114, 57, 45, 68, 53, 52, 47, 53, 53, 75, 58, 60, 71, 54, 55, 112, 67, 70, 77, 81, 62, 87, 45, 78, 54, 88, 63, 52, 68, 76, 88, 71, 84, 86, 84, 70, 62, 71, 58, 66, 86, 55, 70, 66, 62, 48, 51, 72, 57, 62, 70, 62, 83, 75, 64, 50, 66, 66, 74, 80, 58, 45, 110, 56, 53, 60, 68, 75, 55, 66, 60, 65, 99, 47, 95, 64, 63, 59, 79, 55, 63, 58, 51, 56, 69, 114, 66, 64, 56, 81, 49, 83, 67, 62, 76, 69, 57, 62, 63, 51, 68, 58, 57, 46, 51, 88, 53, 47, 64, 63, 69, 67, 52, 64, 61, 62, 91, 61, 73, 78, 62, 63, 76, 69, 46, 55, 89, 70, 91, 61, 66, 67, 79, 55, 56, 72, 91, 94, 77, 63, 90, 62, 72, 116, 87, 66, 56, 56, 85, 69, 61, 49, 50, 42, 42, 50, 56, 74, 58, 66, 54, 46, 66, 72, 40, 80, 66, 48, 93, 81, 68, 67, 50, 56, 70, 50, 62, 44, 87, 73, 65, 60, 65, 85, 80, 73, 59, 52, 63, 69, 61, 70, 66, 86, 61, 74, 76, 54, 70, 65, 62, 53, 89, 92, 78, 55, 69, 60, 41, 53, 64, 61, 52, 77, 70, 65, 66, 53, 65, 61, 47, 45, 51, 57, 67, 62, 72, 77, 80, 68, 78, 73, 64, 48, 56, 52, 80, 54, 66, 44, 87, 52, 59, 78, 66, 60, 76, 80, 49, 69, 64, 66, 66, 78, 68, 129, 51, 65, 56, 78, 73, 56, 42, 60, 67, 64, 62, 63, 62, 74, 61, 78, 55, 54, 69, 67, 68, 61, 70, 58, 75, 71, 55, 89, 85, 90, 67, 69, 65, 64, 60, 76, 66, 56, 57, 52, 56, 57, 50, 63, 68, 57, 45, 64, 49, 68, 59, 61, 60, 64, 90, 65, 90, 70, 53, 61, 61, 64, 53, 54, 76, 54, 59, 35, 53, 111, 65, 55, 54, 72, 57, 56, 73, 74, 73, 69, 54, 64, 57, 59, 64, 66, 76, 68, 75, 65, 50, 58, 72, 66, 72, 65, 72, 72, 52, 69, 55, 69, 52, 66, 74, 57, 86, 61, 70, 60, 67, 60, 66, 67, 80, 73, 75, 53, 57, 46, 68, 53, 78, 63, 115, 54, 61, 67, 65, 98, 49, 75, 52, 70, 79, 53, 56, 71, 112, 74, 74, 69, 65, 75, 58, 53, 101, 54, 55, 67, 63, 82, 66, 65, 60, 88, 52, 76, 74, 63, 65, 69, 40, 119, 67, 68, 53, 60, 52, 79, 52, 64, 70, 54, 46, 78, 70, 67, 76, 114, 57, 56, 61, 103, 70, 59, 59, 84, 88, 53, 70, 75, 66, 68, 56, 85, 78, 77, 65, 59, 66, 53, 61, 60, 53, 82, 83, 55, 59, 82, 63, 84, 62, 55, 64, 60, 46, 60, 58, 56, 64, 58, 72, 107, 57, 56, 48, 42, 69, 55, 49, 64, 61, 106, 64, 59, 44, 76, 51, 77, 53, 84, 57, 46, 47, 57, 52, 88, 71, 62, 62, 82, 61, 63, 57, 73, 52, 58, 67, 70, 66, 51, 66, 67, 68, 68, 62, 50, 46, 86, 74, 80, 59, 66, 65, 73, 67, 70, 89, 63, 68, 76, 72, 50, 40, 61, 59, 59, 59, 59, 62, 49, 71, 77, 79, 89, 93, 90, 58, 63, 77, 49, 57, 51, 53, 70, 56, 62, 63, 85, 102, 80, 52, 80, 62, 71, 71, 43, 66, 58, 55, 67, 69, 62, 59, 104, 66, 70, 65, 71, 59, 60, 54, 73, 58, 64, 42, 57, 60, 62, 65, 64, 61, 59, 57, 72, 71, 68, 66, 77, 66, 61, 68, 73, 75, 58, 68, 66, 59, 90, 67, 51, 60, 71, 103, 70, 76, 74, 61, 54, 69, 45, 85, 47, 65, 60, 86, 69, 65, 88, 56, 60, 68, 48, 53, 48, 69, 57, 68, 82, 62, 62, 70, 60, 65, 56, 49, 79, 58, 81, 59, 65, 52, 87, 64, 58, 84, 72, 63, 52, 71, 105, 76, 69, 71, 73, 55, 62, 71, 70, 74, 75, 101, 74, 66, 92, 100, 72, 48, 51, 55, 61, 66, 91, 55, 67, 67, 77, 76, 64, 109, 69, 64, 86, 60, 58, 56, 58, 84, 62, 56, 76, 58, 56, 75, 105, 68, 58, 61, 93, 54, 95, 64, 78, 90, 58, 58, 71, 87, 54, 49, 56, 53, 65, 58, 81, 52, 64, 60, 60, 73, 55, 62, 57, 75, 68, 52, 75, 45, 45, 54, 85, 64, 54, 61, 49, 71, 62, 56, 85, 46, 66, 70, 59, 82, 63, 64, 59, 55, 62, 52, 60, 76, 53, 73, 80, 86, 59, 62, 54, 79, 52, 74, 59, 51, 63, 66, 74, 47, 61, 85, 36, 65, 62, 70, 70, 79, 72, 61, 60, 82, 70, 62, 48, 60, 54, 78, 56, 55, 58, 53, 52, 54, 45, 65, 100, 76, 66, 77, 67, 77, 77, 77, 53, 68, 70, 73, 69, 57, 69, 61, 44, 44, 48, 61, 47, 77, 72, 58, 65, 60, 76, 62, 94, 74, 67, 124, 74, 59, 73, 49, 78, 72, 64, 51, 55, 62, 69, 71, 54, 97, 92, 53, 88, 42, 78, 69, 60, 70, 53, 94, 69, 49, 68, 82, 79, 52, 56, 63, 56, 54, 65, 61, 76, 72, 58, 59, 58, 52, 71, 71, 65, 57, 106, 63, 50, 57, 53, 62, 64, 50, 72, 41, 60, 83, 53, 55, 63, 69, 55, 55, 53, 68, 132, 102, 72, 54, 45, 58, 83, 58, 64, 59, 82, 44, 89, 57, 57, 60, 49, 54, 76, 64, 54, 56, 49, 55, 53, 49, 93, 49, 84, 78, 50, 62, 55, 58, 53, 79, 73, 82, 62, 43, 51, 95, 51, 63, 58, 59, 61, 82, 58, 55, 58, 71, 54, 62, 58, 73, 45, 66, 49, 54, 60, 51, 64, 122, 92, 80, 76, 55, 72, 77, 55, 74, 73, 61, 67, 60, 68, 85, 90, 62, 65, 106, 93, 77, 52, 58, 71, 76, 77, 73, 66, 62, 71, 69, 59, 65, 60, 72, 68, 62, 74, 59, 69, 68, 70, 53, 66, 60, 56, 54, 52, 72, 81, 72, 58, 111, 69, 51, 63, 80, 51, 57, 69, 62, 58, 62, 60, 82, 54, 98, 79, 49, 48, 54, 52, 109, 81, 77, 51, 60, 47, 50, 78, 71, 66, 75, 58, 61, 56, 58, 59, 80, 86, 46, 64, 55, 85, 94, 78, 66, 57, 33, 65, 63, 41, 103, 110, 86, 76, 66, 60, 70, 45, 74, 67, 63, 75, 47, 68, 52, 82, 53, 69, 66, 105, 54, 41, 84, 69, 70, 62, 52, 47, 85, 76, 67, 63, 67, 93, 66, 61, 69, 107, 73, 74, 56, 91, 49, 82, 66, 64, 43, 49, 62, 78, 56, 69, 52, 79, 54, 77, 46, 67, 77, 47, 79, 56, 52, 55, 65, 49, 61, 128, 73, 63, 58, 69, 79, 54, 49, 59, 40, 63, 61, 56, 57, 55, 66, 80, 66, 85, 92, 58, 69, 74, 51, 61, 81, 72, 67, 81, 69, 90, 71, 75, 59, 53, 75, 44, 56, 79, 36, 63, 71, 94, 79, 63, 48, 51, 70, 92, 52, 67, 77, 79, 87, 72, 75, 46, 54, 87, 63, 47, 67, 74, 78, 50, 60, 67, 46, 59, 59, 59, 56, 65, 51, 56, 82, 49, 67, 61, 51, 61, 73, 89, 63, 71, 78, 65, 61, 56, 73, 55, 83, 73, 62, 67, 62, 58, 58, 68, 48, 69, 65, 81, 76, 69, 87, 64, 76, 56, 57, 59, 55, 63, 76, 63, 57, 53, 76, 64, 97, 60, 93, 55, 80, 84, 65, 70, 64, 97, 65, 60, 80, 68, 66, 49, 56, 43, 55, 74, 66, 53, 97, 74, 75, 76, 72, 60, 58, 64, 59, 55, 82, 71, 70, 85, 64, 98, 60, 51, 65, 57, 66, 65, 61, 73, 54, 126, 60, 52, 57, 76, 69, 75, 73, 90, 69, 81, 53, 82, 90, 52, 49, 51, 49, 78, 53, 85, 74, 74, 52, 92, 64, 65, 74, 57, 44, 106, 100, 67, 46, 57, 60, 51, 54, 61, 79, 46, 63, 76, 74, 55, 65, 61, 63, 47, 55, 57, 64, 73, 68, 61, 62, 57, 47, 67, 104, 70, 94, 46, 62, 60, 59, 62, 67, 56, 55, 61, 89, 53, 50, 65, 97, 55, 53, 63, 75, 82, 97, 60, 68, 57, 57, 51, 64, 62, 68, 79, 60, 66, 62, 109, 85, 68, 92, 58, 67, 74, 92, 93, 64, 52, 66, 67, 53, 66, 68, 65, 122, 81, 62, 98, 44, 65, 47, 65, 73, 75, 58, 52, 68, 108, 52, 65, 59, 51, 68, 68, 78, 56, 89, 61, 48, 60, 76, 74, 73, 74, 55, 72, 52, 61, 57, 65, 51, 53, 60, 50, 58, 70, 57, 69, 80, 45, 80, 88, 68, 51, 60, 63, 52, 69, 73, 55, 72, 88, 55, 64, 83, 42, 65, 58, 59, 73, 62, 66, 53, 62, 68, 68, 92, 120, 63, 66, 65, 59, 68, 58, 72, 103, 76, 57, 95, 55, 75, 56, 84, 42, 66, 70, 66, 71, 50, 100, 57, 83, 76, 86, 73, 49, 69, 54, 76, 45, 62, 90, 53, 61, 57, 63, 78, 47, 68, 63, 62, 56, 74, 58, 67, 43, 73, 58, 70, 52, 73, 80, 54, 63, 53, 48, 61, 59, 53, 52, 64, 68, 61, 41, 118, 54, 49, 86, 72, 105, 71, 50, 50, 60, 69, 64, 79, 57, 81, 80, 58, 64, 84, 91, 69, 39, 69, 30, 76, 63, 75, 56, 55, 81, 69, 77, 59, 63, 64, 62, 64, 97, 72, 46, 62, 61, 75, 61, 83, 52, 60, 76, 62, 50, 52, 59, 59, 63, 67, 50, 51, 77, 48, 58, 71, 83, 69, 35, 58, 82, 62, 57, 66, 59, 60, 62, 41, 83, 94, 56, 73, 52, 52, 47, 36, 112, 73, 61, 66, 59, 50, 62, 67, 53, 48, 50, 73, 67, 65, 63, 115, 52, 63, 46, 71, 64, 52, 48, 78, 52, 86, 78, 65, 55, 52, 50, 67, 74, 84, 65, 75, 46, 43, 60, 53, 55, 66, 87, 62, 99, 70, 61, 73, 52, 75, 54, 70, 63, 61, 66, 53, 98, 41, 64, 66, 63, 59, 48, 48, 70, 71, 62, 58, 63, 91, 55, 61, 73, 69, 77, 136, 74, 56, 55, 63, 61, 51, 53, 57, 66, 83, 65, 72, 51, 57, 76, 56, 70, 63, 118, 97, 76, 54, 64, 62, 38, 56, 128, 69, 64, 63, 61, 66, 52, 98, 74, 67, 83, 58, 56, 67, 70, 55, 44, 66, 72, 62, 60, 67, 75, 50, 65, 60, 100, 66, 63, 67, 63, 58, 60, 98, 63, 71, 59, 62, 74, 62, 70, 62, 57, 72, 74, 55, 52, 60, 81, 51, 60, 52, 41, 78, 112, 40, 69, 48, 71, 78, 58, 90, 69, 50, 65, 61, 116, 59, 73, 61, 66, 52, 65, 65, 71, 69, 73, 97, 70, 64, 68, 54, 60, 55, 64, 59, 62, 39, 64, 51, 79, 80, 59, 57, 42, 99, 69, 69, 61, 61, 58, 63, 94, 62, 46, 61, 68, 50, 57, 68, 82, 59, 69, 74, 77, 47, 66, 73, 54, 72, 44, 116, 70, 64, 59, 59, 56, 64, 58, 65, 60, 67, 70, 83, 56, 69, 61, 47, 65, 68, 57, 61, 78, 83, 56, 62, 71, 52, 56, 61, 63, 87, 68, 50, 57, 64, 90, 46, 77, 71, 69, 51, 62, 54, 75, 61, 76, 75, 57, 45, 63, 52, 75, 66, 52, 67, 71, 69, 69, 53, 59, 46, 61, 69, 97, 57, 61, 67, 70, 50, 64, 81, 57, 50, 63, 43, 82, 71, 71, 75, 51, 83, 62, 57, 58, 68, 69, 72, 49, 69, 39, 96, 59, 91, 65, 61, 76, 98, 80, 67, 72, 48, 55, 65, 71, 53, 112, 60, 81, 67, 67, 75, 89, 56, 62, 57, 82, 56, 55, 51, 102, 90, 57, 75, 50, 96, 73, 67, 63, 89, 42, 48, 48, 99, 74, 65, 49, 54, 59, 51, 61, 52, 59, 80, 127, 52, 71, 50, 59, 79, 90, 83, 58, 70, 62, 60, 50, 56, 59, 57, 50, 65, 58, 67, 83, 56, 83, 66, 70, 74, 88, 84, 67, 69, 76, 53, 48, 85, 49, 70, 69, 65, 86, 75, 67, 69, 62, 81, 61, 61, 82, 45, 47, 60, 55, 58, 63, 69, 62, 63, 83, 49, 61, 61, 54, 57, 125, 68, 58, 56, 67, 82, 49, 88, 47, 59, 90, 61, 71, 51, 68, 56, 62, 50, 72, 73, 62, 56, 53, 67, 89, 98, 51, 40, 83, 64, 39, 51, 82, 60, 71, 65, 68, 79, 54, 68, 73, 75, 77, 51, 61, 58, 75, 48, 63, 77, 58, 60, 59, 65, 64, 63, 87, 62, 52, 55, 64, 95, 128, 58, 45, 63, 61, 78, 55, 55, 60, 58, 65, 91, 64, 49, 68, 45, 55, 62, 76, 62, 82, 58, 53, 72, 71, 42, 56, 58, 57, 57, 68, 81, 84, 50, 46, 83, 64, 68, 58, 61, 64, 83, 57, 74, 65, 87, 59, 69, 68, 48, 52, 59, 48, 97, 75, 52, 78, 61, 76, 59, 73, 60, 64, 61, 63, 64, 64, 63, 102, 67, 74, 58, 82, 84, 69, 64, 57, 57, 57, 53, 60, 42, 63, 69, 67, 85, 55, 76, 71, 73, 72, 71, 61, 64, 60, 101, 61, 67, 59, 86, 65, 64, 58, 71, 70, 95, 79, 77, 75, 57, 68, 58, 41, 52, 77, 83, 77, 61, 66, 68, 85, 67, 78, 58, 72, 58, 70, 64, 61, 58, 56, 56, 66, 67, 45, 60, 59, 71, 72, 62, 61, 67, 53, 56, 52, 73, 61, 69, 91, 61, 93, 67, 74, 62, 92, 82, 56, 68, 48, 67, 65, 51, 56, 47, 70, 49, 67, 69, 61, 55, 54, 70, 50, 81, 55, 60, 74, 57, 96, 54, 51, 56, 71, 99, 62, 59, 65, 44, 53, 73, 60, 90, 47, 45, 57, 62, 41, 56, 58, 75, 71, 53, 79, 60, 59, 42, 54, 62, 35, 73, 59, 59, 80, 50, 58, 49, 87, 60, 57, 53, 71, 59, 66, 54, 57, 53, 80, 84, 44, 56, 69, 76, 71, 65, 60, 55, 68, 59, 48, 86, 59, 70, 74, 44, 56, 47, 55, 65, 61, 52, 85, 55, 64, 75, 57, 82, 96, 65, 52, 62, 65, 70, 65, 63, 62, 73, 77, 82, 44, 54, 50, 54, 86, 49, 84, 87, 76, 59, 71, 57, 79, 79, 79, 59, 55, 49, 67, 86, 60, 61, 70, 64, 75, 51, 57, 69, 97, 80, 56, 86, 53, 79, 59, 72, 46, 65, 56, 89, 54, 69, 54, 77, 56, 71, 54, 71, 55, 56, 68, 68, 53, 67, 63, 55, 56, 67, 68, 62, 42, 78, 78, 75, 80, 73, 47, 77, 63, 103, 85, 44, 74, 71, 68, 47, 61, 93, 60, 82, 76, 72, 59, 51, 60, 65, 55, 54, 85, 73, 86, 64, 69, 65, 72, 53, 51, 61, 59, 45, 62, 108, 46, 98, 46, 58, 60, 69, 87, 60, 68, 57, 42, 60, 56, 41, 73, 52, 71, 55, 84, 60, 62, 94, 59, 62, 65, 64, 78, 62, 74, 57, 66, 58, 56, 51, 77, 49, 71, 51, 57, 60, 86, 52, 79, 72, 48, 69, 63, 62, 75, 59, 81, 60, 68, 74, 61, 58, 78, 58, 50, 40, 102, 85, 50, 60, 70, 70, 63, 60, 69, 54, 55, 66, 71, 64, 53, 62, 80, 77, 61, 54, 79, 46, 81, 58, 71, 49, 83, 67, 93, 52, 67, 55, 59, 76, 64, 50, 64, 83, 83, 55, 67, 81, 98, 69, 42, 62, 75, 59, 66, 85, 60, 60, 68, 70, 59, 79, 55, 60, 76, 68, 82, 52, 69, 73, 56, 53, 47, 47, 61, 55, 81, 65, 52, 49, 49, 75, 69, 67, 61, 67, 62, 55, 64, 70, 62, 74, 68, 73, 74, 90, 63, 67, 78, 36, 54, 59, 56, 107, 72, 78, 64, 92, 66, 61, 113, 55, 64, 71, 68, 67, 59, 49, 74, 57, 57, 61, 74, 46, 71, 97, 55, 56, 67, 73, 57, 99, 79, 99, 63, 98, 63, 57, 51, 58, 48, 90, 60, 71, 41, 40, 59, 69, 51, 62, 64, 64, 65, 59, 67, 59, 60, 67, 59, 73, 60, 69, 68, 53, 49, 77, 62, 62, 86, 58, 65, 62, 58, 57, 72, 47, 66, 62, 50, 67, 67, 51, 66, 63, 68, 116, 68, 62, 56, 74, 64, 62, 52, 55, 55, 85, 69, 75, 66, 63, 63, 58, 67, 60, 116, 62, 78, 70, 69, 84, 52, 75, 150, 63, 70, 57, 47, 61, 56, 75, 52, 71, 76, 57, 64, 62, 67, 78, 49, 66, 98, 66, 63, 73, 63, 53, 65, 60, 53, 69, 64, 76, 58, 65, 55, 101, 47, 60, 56, 54, 74, 63, 67, 61, 67, 80, 75, 76, 66, 71, 65, 82, 62, 64, 51, 66, 97, 61, 76, 73, 48, 66, 54, 58, 47, 37, 57, 54, 118, 62, 64, 69, 66, 52, 67, 64, 58, 60, 79, 86, 90, 48, 57, 64, 50, 51, 80, 57, 63, 56, 55, 58, 87, 68, 59, 46, 38, 86, 70, 87, 61, 50, 51, 66, 82, 72, 61, 68, 76, 62, 61, 79, 100, 71, 69, 57, 69, 65, 59, 59, 47, 63, 63, 131, 57, 59, 57, 69, 62, 66, 48, 100, 51, 58, 78, 92, 70, 64, 80, 76, 73, 72, 58, 72, 51, 68, 75, 60, 58, 65, 57, 57, 57, 61, 54, 58, 56, 56, 76, 53, 91, 72, 70, 58, 70, 50, 65, 57, 79, 70, 70, 65, 77, 51, 56, 67, 43, 61, 47, 64, 85, 57, 84, 63, 50, 53, 68, 73, 65, 66, 68, 67, 71, 74, 73, 60, 46, 57, 72, 67, 66, 47, 63, 91, 68, 62, 53, 57, 65, 48, 70, 73, 49, 105, 72, 68, 55, 51, 81, 47, 102, 62, 72, 62, 47, 53, 84, 67, 95, 64, 119, 73, 71, 69, 81, 54, 63, 56, 73, 45, 71, 59, 129, 78, 51, 54, 51, 97, 75, 61, 62, 71, 59, 52, 53, 60, 48, 83, 59, 66, 63, 69, 71, 48, 60, 61, 117, 48, 63, 56, 74, 78, 96, 61, 53, 59, 66, 63, 80, 72, 71, 46, 69, 51, 64, 74, 66, 60, 102, 86, 70, 63, 80, 96, 59, 69, 72, 54, 62, 101, 52, 52, 72, 62, 64, 88, 64, 64, 43, 94, 99, 61, 75, 46, 46, 59, 58, 66, 83, 75, 59, 62, 64, 57, 55, 38, 65, 51, 88, 54, 60, 57, 85, 73, 68, 83, 78, 62, 57, 62, 64, 52, 55, 68, 79, 58, 64, 64, 50, 44, 62, 53, 81, 89, 53, 69, 82, 52, 58, 57, 95, 65, 61, 82, 82, 69, 42, 62, 42, 101, 69, 56, 60, 71, 54, 55, 67, 59, 79, 62, 47, 65, 80, 79, 83, 79, 57, 56, 63, 81, 121, 76, 104, 64, 65, 78, 68, 56, 81, 59, 64, 71, 67, 61, 72, 54, 62, 68, 88, 85, 65, 68, 56, 64, 56, 52, 65, 52, 78, 81, 66, 66, 56, 37, 73, 56, 75, 61, 65, 78, 54, 67, 59, 98, 62, 107, 54, 62, 44, 51, 60, 64, 69, 93, 62, 72, 76, 53, 87, 91, 43, 52, 82, 72, 58, 59, 66, 64, 75, 72, 70, 52, 70, 98, 88, 59, 59, 55, 56, 65, 58, 58, 56, 70, 60, 92, 68, 61, 55, 56, 76, 65, 56, 64, 74, 66, 54, 72, 55, 79, 68, 52, 62, 74, 51, 94, 75, 58, 65, 58, 99, 51, 65, 56, 60, 64, 51, 40, 95, 59, 103, 60, 60, 60, 59, 58, 57, 55, 49, 63, 65, 54, 57, 49, 63, 66, 60, 51, 63, 54, 51, 79, 63, 57, 64, 67, 56, 64, 57, 56, 110, 51, 72, 77, 77, 92, 39, 73, 59, 59, 54, 60, 53, 61, 93, 52, 52, 65, 66, 68, 58, 85, 63, 83, 60, 71, 85, 64, 69, 63, 49, 75, 48, 76, 65, 59, 78, 48, 61, 53, 66, 83, 52, 52, 56, 50, 60, 70, 89, 71, 55, 61, 90, 57, 70, 58, 72, 57, 62, 59, 46, 67, 77, 54, 65, 72, 84, 56, 49, 90, 50, 45, 62, 63, 61, 60, 83, 83, 58, 64, 65, 47, 69, 75, 67, 75, 78, 61, 50, 73, 55, 72, 65, 51, 46, 76, 77, 43, 82, 53, 74, 69, 72, 58, 66, 76, 78, 54, 63, 57, 61, 60, 68, 77, 53, 60, 74, 80, 69, 51, 50, 53, 64, 48, 86, 76, 58, 50, 54, 69, 82, 64, 90, 58, 44, 59, 63, 54, 71, 64, 83, 68, 44, 70, 81, 92, 69, 89, 64, 68, 56, 72, 53, 63, 59, 67, 60, 76, 56, 56, 75, 71, 52, 55, 44, 50, 66, 53, 64, 78, 57, 58, 62, 65, 82, 60, 86, 73, 60, 86, 90, 76, 69, 41, 52, 78, 73, 109, 87, 55, 58, 58, 67, 62, 59, 100, 68, 66, 73, 73, 51, 89, 65, 68, 89, 73, 74, 67, 56, 63, 63, 58, 58, 52, 67, 55, 49, 46, 65, 106, 54, 80, 53, 72, 43, 65, 66, 63, 54, 59, 57, 68, 84, 53, 64, 56, 69, 63, 66, 58, 68, 63, 52, 55, 72, 66, 54, 52, 67, 63, 63, 58, 45, 55, 51, 55, 61, 66, 67, 50, 59, 82, 62, 52, 55, 64, 80, 49, 98, 60, 68, 63, 65, 53, 49, 69, 64, 50, 65, 64, 56, 60, 58, 67, 99, 58, 63, 60, 64, 61, 62, 59, 60, 68, 67, 78, 69, 65, 64, 48, 42, 65, 78, 75, 62, 67, 60, 64, 93, 58, 39, 74, 65, 64, 60, 55, 85, 28, 88, 56, 60, 67, 62, 65, 40, 73, 64, 56, 55, 66, 102, 66, 69, 93, 63, 56, 58, 72, 52, 53, 113, 68, 62, 53, 75, 65, 52, 78, 44, 57, 60, 60, 65, 62, 86, 70, 63, 64, 77, 70, 64, 47, 59, 68, 70, 80, 59, 64, 61, 67, 47, 64, 55, 78, 69, 47, 65, 102, 44, 60, 64, 83, 49, 85, 118, 63, 68, 64, 45, 63, 58, 80, 76, 59, 55, 55, 70, 70, 60, 81, 57, 59, 78, 54, 67, 76, 60, 82, 74, 81, 68, 65, 95, 75, 56, 81, 60, 60, 62, 62, 50, 80, 86, 54, 63, 69, 69, 72, 57, 58, 55, 63, 58, 76, 59, 100, 63, 47, 86, 81, 39, 67, 58, 52, 53, 51, 62, 67, 62, 54, 54, 49, 64, 69, 61, 54, 70, 56, 59, 87, 79, 59, 66, 56, 61, 108, 47, 64, 62, 55, 61, 57, 82, 63, 50, 48, 58, 69, 75, 61, 86, 75, 83, 79, 42, 81, 50, 62, 44, 38, 78, 64, 50, 61, 42, 54, 52, 70, 54, 87, 72, 66, 73, 73, 63, 56, 60, 84, 68, 60, 55, 62, 55, 67, 96, 57, 61, 50, 77, 121, 60, 78, 91, 67, 73, 69, 53, 48, 63, 75, 65, 49, 63, 64, 70, 53, 52, 67, 59, 62, 68, 55, 61, 52, 47, 74, 59, 65, 65, 52, 76, 56, 108, 59, 61, 61, 60, 65, 71, 76, 54, 85, 66, 55, 70, 74, 72, 83, 64, 67, 65, 79, 60, 64, 44, 42, 53, 77, 55, 59, 63, 92, 58, 87, 65, 54, 63, 74, 47, 56, 56, 81, 74, 49, 59, 90, 64, 47, 67, 76, 52, 54, 50, 46, 67, 51, 73, 119, 47, 53, 59, 63, 76, 67, 80, 73, 74, 69, 61, 64, 62, 60, 66, 71, 56, 47, 51, 59, 58, 86, 49, 67, 77, 60, 57, 55, 59, 64, 79, 56, 74, 67, 68, 43, 84, 90, 92, 65, 64, 52, 55, 71, 75, 52, 68, 56, 85, 73, 62, 48, 55, 51, 50, 63, 66, 56, 80, 56, 60, 59, 89, 65, 84, 53, 57, 55, 61, 67, 63, 67, 87, 62, 63, 55, 61, 71, 64, 66, 77, 50, 56, 76, 78, 78, 94, 60, 63, 64, 58, 82, 58, 60, 41, 77, 60, 64, 60, 63, 47, 83, 84, 72, 86, 59, 48, 79, 71, 71, 87, 65, 66, 62, 78, 71, 63, 62, 72, 65, 62, 64, 55, 85, 83, 50, 66, 77, 61, 54, 88, 59, 48, 64, 54, 56, 67, 93, 75, 58, 74, 55, 105, 52, 67, 60, 72, 58, 72, 74, 51, 59, 71, 81, 60, 60, 69, 67, 69, 70, 72, 66, 65, 57, 85, 63, 60, 54, 57, 82, 63, 42, 52, 66, 61, 58, 53, 63, 45, 70, 63, 42, 55, 63, 63, 72, 72, 57, 65, 85, 72, 64, 69, 60, 94, 63, 50, 69, 73, 60, 56, 45, 67, 47, 66, 64, 58, 71, 68, 68, 61, 84, 75, 70, 60, 65, 55, 51, 55, 69, 92, 54, 53, 54, 74, 95, 59, 62, 77, 106, 64, 82, 68, 58, 86, 54, 88, 50, 62, 64, 75, 91, 47, 90, 114, 51, 77, 49, 48, 59, 49, 57, 64, 44, 86, 69, 59, 59, 94, 52, 74, 65, 78, 67, 49, 61, 129, 60, 48, 77, 65, 78, 74, 54, 73, 69, 63, 66, 58, 70, 60, 66, 60, 80, 92, 56, 58, 61, 62, 92, 48, 59, 64, 62, 73, 67, 63, 67, 56, 93, 59, 71, 52, 60, 58, 88, 73, 84, 56, 119, 56, 128, 64, 58, 72, 60, 76, 66, 53, 42, 62, 73, 66, 77, 60, 52, 64, 60, 79, 63, 66, 66, 61, 67, 78, 78, 87, 57, 70, 45, 53, 52, 48, 61, 57, 61, 80, 58, 61, 66, 50, 69, 51, 62, 49, 78, 62, 74, 55, 58, 45, 84, 54, 44, 57, 64, 58, 52, 78, 78, 58, 85, 71, 62, 70, 74, 77, 83, 70, 56, 112, 62, 54, 62, 61, 42, 96, 65, 58, 83, 67, 55, 50, 93, 55, 47, 84, 48, 65, 75, 44, 55, 60, 62, 59, 62, 74, 47, 73, 88, 58, 60, 63, 46, 53, 70, 46, 59, 63, 64, 64, 99, 57, 75, 70, 50, 58, 59, 65, 77, 75, 62, 51, 63, 77, 62, 64, 60, 55, 67, 73, 82, 64, 51, 67, 98, 61, 59, 69, 94, 73, 51, 67, 78, 61, 79, 65, 79, 64, 77, 74, 56, 72, 57, 57, 66, 56, 65, 85, 67, 60, 65, 75, 46, 52, 60, 66, 63, 78, 67, 69, 63, 48, 62, 54, 63, 71, 60, 70, 72, 73, 52, 66, 81, 69, 53, 65, 61, 55, 67, 79, 63, 79, 62, 51, 47, 52, 56, 46, 52, 62, 59, 67, 71, 72, 80, 54, 85, 80, 73, 75, 58, 87, 53, 54, 57, 56, 71, 66, 79, 77, 81, 72, 46, 56, 57, 71, 64, 52, 89, 85, 74, 73, 55, 64, 77, 89, 60, 59, 77, 40, 54, 57, 60, 67, 72, 56, 66, 61, 42, 77, 74, 67, 72, 61, 45, 59, 64, 62, 63, 56, 48, 61, 57, 52, 62, 45, 88, 49, 63, 52, 56, 47, 53, 57, 56, 67, 66, 65, 62, 87, 51, 72, 63, 52, 60, 76, 52, 75, 54, 41, 56, 68, 49, 69, 57, 78, 72, 62, 51, 52, 89, 52, 88, 88, 42, 67, 73, 69, 59, 83, 67, 65, 64, 95, 66, 78, 63, 56, 62, 53, 73, 52, 69, 63, 93, 55, 106, 75, 62, 60, 52, 72, 65, 54, 36, 57, 51, 82, 46, 56, 81, 63, 51, 61, 75, 69, 62, 82, 60, 58, 62, 89, 61, 52, 57, 51, 75, 67, 63, 83, 45, 60, 51, 80, 59, 69, 54, 55, 66, 49, 56, 51, 55, 111, 59, 78, 65, 52, 89, 73, 65, 64, 76, 54, 50, 111, 75, 62, 52, 94, 55, 64, 64, 52, 45, 44, 57, 52, 56, 78, 63, 52, 92, 49, 60, 75, 49, 65, 58, 58, 53, 53, 54, 119, 50, 91, 54, 65, 54, 65, 76, 59, 77, 73, 63, 58, 56, 75, 56, 82, 73, 67, 84, 61, 53, 62, 73, 64, 78, 64, 60, 63, 65, 89, 71, 95, 79, 66, 55, 72, 59, 75, 71, 63, 65, 55, 72, 52, 70, 109, 53, 56, 57, 65, 54, 80, 50, 53, 53, 64, 92, 75, 65, 62, 61, 59, 51, 69, 61, 56, 64, 81, 80, 59, 61, 84, 66, 67, 56, 69, 64, 66, 66, 82, 71, 57, 58, 65, 51, 67, 76, 54, 53, 71, 83, 68, 56, 69, 69, 54, 70, 52, 42, 64, 66, 72, 71, 61, 56, 62, 71, 66, 60, 100, 62, 54, 72, 94, 49, 47, 70, 73, 54, 88, 63, 51, 69, 68, 85, 69, 83, 64, 60, 61, 58, 82, 59, 71, 53, 66, 65, 55, 60, 81, 69, 61, 64, 55, 73, 54, 54, 94, 58, 75, 59, 71, 55, 66, 64, 71, 124, 56, 57, 69, 66, 48, 63, 63, 49, 75, 67, 68, 67, 90, 65, 51, 82, 63, 51, 55, 61, 65, 44, 65, 56, 53, 58, 55, 80, 61, 76, 52, 61, 56, 62, 72, 56, 65, 51, 68, 48, 57, 69, 63, 93, 87, 76, 58, 58, 69, 82, 61, 68, 57, 88, 67, 66, 58, 68, 75, 62, 90, 69, 52, 58, 73, 55, 69, 62, 86, 59, 49, 56, 59, 63, 80, 54, 68, 45, 61, 62, 59, 55, 93, 52, 62, 67, 86, 56, 59, 109, 74, 48, 56, 70, 72, 66, 76, 73, 57, 59, 55, 81, 56, 64, 50, 82, 50, 58, 59, 57, 57, 75, 55, 66, 78, 74, 83, 45, 68, 52, 66, 58, 60, 56, 47, 79, 58, 54, 62, 57, 61, 61, 88, 49, 74, 62, 73, 63, 58, 77, 64, 164, 55, 51, 97, 68, 80, 66, 44, 75, 60, 62, 74, 65, 64, 67, 61, 71, 59, 66, 64, 53, 51, 75, 59, 50, 81, 56, 79, 51, 56, 88, 113, 69, 76, 68, 62, 48, 45, 58, 104, 53, 77, 60, 72, 82, 80, 63, 54, 71, 50, 72, 72, 53, 78, 82, 65, 74, 89, 50, 90, 74, 69, 77, 104, 68, 67, 51, 68, 59, 53, 46, 62, 49, 78, 49, 71, 71, 64, 61, 68, 86, 59, 51, 55, 58, 86, 80, 56, 81, 65, 68, 59, 62, 49, 44, 55, 61, 67, 69, 67, 60, 61, 91, 92, 57, 122, 58, 58, 44, 86, 72, 52, 55, 61, 68, 60, 59, 55, 64, 78, 74, 64, 80, 65, 66, 75, 54, 55, 63, 81, 58, 55, 92, 51, 81, 52, 63, 57, 69, 60, 65, 86, 47, 95, 55, 73, 60, 63, 63, 108, 84, 55, 52, 49, 60, 74, 70, 74, 56, 61, 79, 45, 61, 88, 50, 59, 59, 68, 42, 93, 66, 53, 57, 67, 58, 52, 66, 56, 59, 44, 70, 62, 80, 57, 57, 61, 77, 64, 59, 75, 79, 56, 54, 56, 60, 81, 58, 55, 67, 76, 67, 52, 53, 52, 56, 74, 59, 61, 63, 68, 77, 53, 72, 56, 55, 49, 55, 60, 65, 62, 51, 61, 61, 66, 64, 61, 105, 58, 69, 65, 59, 51, 78, 73, 54, 81, 64, 64, 62, 78, 56, 79, 65, 64, 54, 53, 48, 127, 55, 59, 63, 58, 62, 51, 67, 67, 67, 61, 57, 72, 54, 66, 61, 53, 51, 61, 80, 137, 58, 58, 61, 58, 63, 61, 56, 63, 52, 57, 60, 45, 68, 70, 67, 60, 52, 99, 54, 55, 60, 70, 62, 53, 63, 64, 67, 62, 61, 64, 55, 58, 56, 56, 91, 66, 63, 71, 54, 57, 62, 70, 61, 79, 92, 57, 63, 54, 93, 55, 52, 75, 75, 55, 73, 69, 71, 68, 66, 64, 61, 58, 55, 56, 59, 53, 57, 97, 66, 60, 66, 50, 58, 56, 56, 66, 60, 48, 58, 83, 63, 77, 67, 53, 56, 56, 91, 60, 72, 47, 65, 48, 75, 72, 72, 80, 92, 54, 63, 68, 56, 93, 62, 62, 64, 77, 54, 64, 97, 70, 48, 80, 58, 82, 66, 57, 58, 53, 67, 68, 68, 54, 57, 96, 49, 64, 54, 58, 54, 83, 57, 58, 53, 75, 64, 63, 59, 56, 69, 61, 65, 62, 63, 64, 61, 71, 66, 51, 75, 64, 61, 59, 75, 70, 114, 46, 70, 66, 71, 75, 59, 65, 66, 60, 76, 60, 63, 48, 56, 54, 63, 53, 72, 70, 55, 78, 60, 52, 92, 81, 59, 64, 66, 79, 66, 82, 86, 63, 67, 55, 55, 79, 58, 68, 56, 69, 87, 69, 55, 59, 65, 67, 59, 57, 59, 69, 56, 87, 67, 79, 58, 73, 55, 64, 75, 68, 57, 51, 70, 59, 63, 48, 67, 77, 62, 62, 75, 93, 70, 61, 49, 51, 61, 56, 67, 67, 47, 77, 71, 61, 46, 62, 66, 61, 80, 85, 76, 67, 53, 68, 77, 69, 57, 79, 62, 52, 68, 78, 67, 73, 73, 63, 68, 89, 62, 83, 64, 76, 58, 69, 50, 49, 48, 56, 61, 59, 59, 54, 66, 70, 63, 53, 77, 79, 56, 66, 51, 49, 58, 57, 52, 86, 54, 73, 63, 70, 64, 50, 73, 61, 57, 81, 62, 74, 71, 64, 60, 69, 67, 57, 62, 81, 64, 51, 50, 52, 64, 68, 57, 54, 89, 56, 69, 81, 57, 61, 64, 60, 68, 60, 65, 44, 43, 90, 115, 68, 64, 72, 66, 60, 78, 65, 60, 78, 68, 59, 63, 62, 59, 52, 66, 60, 64, 45, 56, 59, 61, 63, 61, 113, 66, 78, 57, 63, 56, 62, 79, 54, 88, 67, 50, 81, 67, 71, 64, 69, 65, 69, 72, 54, 62, 59, 51, 65, 61, 64, 65, 79, 63, 57, 98, 87, 66, 72, 61, 73, 66, 52, 67, 66, 53, 62, 55, 101, 72, 71, 72, 53, 62, 79, 53, 54, 63, 69, 72, 63, 62, 67, 51, 84, 53, 86, 85, 59, 73, 75, 99, 47, 51, 83, 62, 52, 67, 91, 59, 58, 62, 86, 65, 67, 59, 53, 62, 72, 58, 52, 79, 54, 57, 91, 64, 69, 63, 67, 69, 57, 63, 109, 59, 93, 76, 86, 72, 67, 65, 61, 65, 68, 48, 72, 78, 73, 53, 75, 49, 58, 75, 67, 59, 76, 64, 64, 58, 59, 54, 72, 61, 52, 82, 117, 41, 68, 64, 44, 62, 77, 43, 51, 80, 68, 58, 51, 62, 81, 74, 49, 65, 65, 55, 65, 100, 56, 66, 62, 76, 70, 67, 59, 67, 57, 62, 64, 64, 68, 76, 59, 99, 61, 52, 55, 77, 56, 81, 92, 48, 56, 72, 69, 54, 56, 64, 67, 78, 51, 70, 69, 83, 71, 99, 57, 67, 57, 54, 52, 81, 59, 60, 59, 76, 73, 59, 72, 73, 55, 100, 61, 85, 52, 56, 74, 84, 58, 67, 61, 65, 66, 69, 64, 57, 48, 58, 61, 54, 76, 67, 64, 70, 67, 63, 78, 56, 82, 69, 74, 66, 74, 66, 65, 53, 59, 54, 68, 60, 59, 51, 67, 50, 88, 88, 75, 60, 76, 68, 55, 56, 55, 52, 105, 59, 50, 55, 74, 52, 61, 63, 58, 71, 71, 59, 90, 75, 103, 52, 95, 60, 64, 65, 54, 56, 67, 73, 50, 69, 69, 72, 47, 59, 65, 57, 69, 110, 64, 53, 60, 53, 68, 63, 67, 66, 62, 56, 70, 51, 53, 53, 58, 79, 72, 102, 56, 80, 67, 67, 81, 72, 70, 53, 57, 67, 74, 63, 69, 70, 76, 51, 60, 68, 52, 84, 73, 61, 50, 72, 66, 61, 68, 53, 73, 76, 59, 67, 125, 69, 62, 103, 66, 56, 60, 57, 64, 57, 55, 35, 83, 71, 39, 58, 57, 44, 74, 84, 64, 89, 91, 68, 83, 59, 62, 67, 56, 82, 74, 56, 56, 56, 65, 59, 78, 58, 55, 62, 56, 63, 55, 53, 68, 53, 71, 83, 55, 59, 72, 67, 63, 57, 57, 134, 57, 64, 69, 82, 71, 74, 62, 61, 83, 68, 67, 47, 52, 63, 53, 67, 95, 67, 64, 79, 74, 83, 61, 75, 95, 50, 73, 62, 69, 61, 51, 74, 66, 60, 69, 75, 51, 67, 60, 61, 46, 75, 62, 54, 62, 66, 70, 68, 59, 59, 69, 72, 60, 46, 54, 59, 74, 57, 82, 72, 71, 63, 69, 47, 70, 55, 45, 63, 68, 78, 66, 65, 77, 57, 47, 70, 62, 59, 58, 69, 64, 60, 68, 76, 84, 50, 70, 54, 56, 77, 74, 72, 61, 76, 67, 87, 81, 55, 55, 79, 80, 75, 81, 62, 67, 70, 71, 61, 63, 75, 54, 54, 70, 51, 75, 64, 56, 59, 74, 73, 71, 62, 52, 92, 101, 69, 68, 90, 68, 65, 73, 56, 64, 71, 58, 68, 73, 70, 61, 64, 100, 54, 87, 48, 64, 70, 73, 74, 92, 65, 63, 77, 67, 82, 54, 59, 105, 62, 67, 69, 58, 67, 76, 57, 65, 62, 65, 77, 67, 110, 78, 65, 60, 68, 64, 79, 59, 75, 74, 51, 63, 86, 70, 53, 68, 107, 112, 67, 70, 49, 53, 63, 79, 67, 74, 83, 52, 59, 93, 66, 56, 65, 47, 64, 70, 74, 55, 75, 47, 69, 63, 106, 60, 47, 57, 56, 60, 59, 63, 68, 73, 62, 62, 61, 60, 52, 54, 68, 54, 87, 50, 76, 89, 54, 61, 56, 72, 60, 63, 85, 90, 68, 56, 59, 74, 44, 80, 61, 64, 52, 44, 70, 66, 58, 70, 46, 66, 54, 65, 49, 52, 54, 66, 59, 70, 64, 95, 54, 56, 62, 55, 66, 55, 59, 73, 50, 57, 45, 69, 70, 54, 57, 76, 62, 75, 65, 57, 65, 55, 83, 91, 57, 53, 49, 68, 55, 56, 51, 80, 83, 58, 51, 60, 70, 63, 70, 54, 61, 52, 107, 53, 132, 56, 52, 55, 75, 67, 61, 76, 99, 63, 82, 82, 53, 71, 57, 57, 51, 52, 59, 55, 58, 60, 66, 61, 56, 60, 70, 68, 72, 79, 56, 57, 56, 73, 61, 56, 58, 54, 64, 64, 50, 60, 59, 65, 75, 66, 58, 53, 94, 56, 74, 54, 53, 56, 58, 57, 52, 55, 35, 63, 86, 57, 63, 82, 65, 68, 66, 64, 61, 79, 64, 54, 73, 64, 63, 99, 57, 72, 77, 79, 59, 75, 56, 57, 64, 43, 67, 60, 58, 71, 49, 60, 60, 59, 82, 59, 47, 72, 69, 88, 48, 61, 62, 40, 85, 117, 63, 72, 51, 72, 73, 56, 61, 65, 60, 70, 61, 70, 63, 77, 52, 64, 60, 62, 61, 51, 69, 62, 84, 76, 70, 74, 62, 43, 95, 70, 58, 64, 92, 70, 62, 63, 83, 50, 52, 60, 93, 81, 61, 53, 47, 71, 79, 67, 58, 52, 79, 92, 80, 57, 66, 59, 59, 56, 69, 54, 47, 53, 64, 60, 85, 70, 64, 56, 73, 59, 59, 61, 77, 73, 62, 61, 79, 74, 76, 64, 79, 61, 75, 48, 58, 50, 98, 72, 63, 62, 79, 82, 63, 54, 58, 90, 56, 65, 85, 51, 50, 64, 55, 61, 73, 74, 65, 56, 49, 58, 60, 52, 68, 76, 65, 96, 54, 63, 88, 64, 61, 66, 88, 35, 73, 73, 62, 56, 60, 64, 76, 55, 77, 69, 65, 60, 73, 62, 54, 70, 61, 61, 64, 57, 41, 48, 68, 58, 66, 99, 55, 54, 63, 71, 59, 49, 59, 78, 63, 60, 66, 71, 56, 72, 56, 55, 62, 60, 60, 75, 63, 65, 51, 104, 64, 78, 49, 75, 52, 83, 81, 60, 73, 74, 62, 49, 92, 88, 58, 62, 76, 64, 56, 48, 100, 61, 74, 63, 53, 55, 62, 52, 53, 60, 73, 66, 58, 57, 67, 64, 91, 51, 59, 60, 58, 55, 63, 82, 63, 69, 53, 65, 59, 61, 64, 45, 66, 58, 57, 56, 61, 64, 58, 90, 77, 66, 60, 58, 54, 51, 62, 53, 65, 81, 80, 35, 69, 96, 53, 78, 76, 63, 62, 49, 67, 54, 70, 61, 52, 62, 55, 65, 67, 70, 51, 78, 55, 55, 63, 65, 71, 87, 63, 69, 55, 66, 57, 77, 58, 56, 46, 62, 60, 90, 65, 60, 68, 68, 48, 63, 60, 68, 49, 60, 62, 59, 118, 61, 57, 71, 63, 71, 59, 60, 56, 59, 57, 123, 51, 61, 68, 55, 62, 68, 65, 59, 72, 61, 57, 63, 68, 92, 76, 56, 64, 51, 58, 45, 73, 70, 42, 66, 83, 61, 57, 69, 70, 70, 77, 109, 58, 56, 65, 54, 59, 56, 70, 51, 63, 71, 54, 85, 76, 72, 70, 51, 55, 82, 62, 60, 71, 62, 59, 49, 71, 74, 74, 59, 47, 86, 63, 75, 72, 54, 51, 54, 89, 60, 58, 63, 59, 57, 74, 118, 74, 71, 51, 90, 64, 64, 73, 94, 65, 74, 47, 71, 94, 97, 113, 70, 55, 56, 54, 67, 74, 60, 87, 68, 74, 45, 64, 78, 74, 68, 63, 56, 57, 68, 73, 63, 70, 65, 90, 61, 67, 63, 67, 88, 88, 57, 54, 58, 49, 77, 92, 58, 69, 87, 69, 94, 59, 73, 68, 77, 61, 58, 74, 67, 73, 52, 52, 77, 59, 53, 66, 49, 70, 68, 68, 71, 59, 66, 66, 57, 68, 68, 67, 92, 53, 82, 93, 69, 56, 56, 51, 70, 63, 70, 46, 88, 55, 83, 76, 74, 67, 61, 58, 62, 61, 58, 71, 69, 59, 62, 56, 55, 63, 68, 49, 65, 82, 54, 43, 57, 65, 69, 80, 75, 54, 64, 61, 53, 67, 87, 66, 56, 72, 76, 92, 55, 85, 53, 71, 85, 68, 62, 55, 61, 55, 81, 71, 62, 52, 72, 70, 73, 78, 58, 54, 69, 66, 66, 82, 54, 71, 53, 57, 78, 47, 53, 63, 124, 60, 64, 96, 58, 54, 41, 61, 61, 48, 78, 47, 87, 75, 77, 51, 63, 61, 69, 84, 57, 76, 96, 52, 73, 72, 65, 74, 57, 90, 68, 65, 44, 64, 68, 47, 66, 56, 46, 67, 52, 59, 53, 54, 58, 62, 79, 80, 64, 66, 72, 55, 56, 66, 67, 133, 65, 58, 62, 46, 55, 49, 68, 67, 69, 61, 55, 57, 66, 73, 58, 61, 56, 65, 70, 64, 96, 87, 46, 62, 94, 63, 64, 65, 72, 74, 74, 63, 62, 61, 63, 78, 104, 70, 69, 47, 58, 56, 70, 56, 76, 64, 71, 67, 76, 58, 63, 64, 55, 61, 82, 57, 66, 58, 63, 64, 57, 52, 61, 54, 63, 61, 67, 54, 66, 77, 58, 61, 90, 45, 54, 73, 57, 69, 62, 54, 56, 71, 58, 48, 64, 58, 50, 60, 58, 63, 67, 76, 63, 77, 58, 66, 57, 61, 46, 59, 78, 51, 82, 62, 84, 65, 38, 72, 73, 78, 64, 92, 72, 55, 61, 64, 58, 63, 64, 65, 72, 70, 54, 92, 69, 62, 58, 65, 70, 76, 69, 71, 98, 86, 57, 60, 64, 71, 62, 73, 70, 62, 113, 48, 56, 62, 72, 68, 54, 79, 54, 60, 50, 67, 53, 66, 79, 62, 61, 59, 42, 52, 54, 60, 54, 66, 58, 69, 61, 89, 71, 62, 88, 66, 68, 46, 61, 62, 61, 62, 57, 58, 67, 60, 63, 110, 76, 63, 44, 63, 52, 59, 64, 59, 64, 56, 55, 79, 69, 56, 63, 68, 70, 67, 111, 57, 75, 82, 55, 87, 66, 102, 66, 55, 83, 71, 53, 67, 55, 53, 82, 59, 58, 65, 80, 38, 71, 66, 56, 117, 57, 89, 66, 57, 77, 72, 61, 62, 60, 69, 75, 59, 70, 63, 65, 60, 55, 57, 60, 61, 56, 68, 51, 64, 85, 52, 60, 68, 71, 62, 76, 58, 79, 65, 66, 86, 112, 72, 55, 64, 57, 72, 55, 60, 64, 58, 61, 56, 76, 63, 58, 45, 67, 62, 68, 64, 65, 69, 51, 82, 88, 59, 56, 67, 86, 77, 62, 72, 63, 56, 53, 78, 69, 87, 50, 58, 54, 52, 62, 110, 67, 125, 59, 62, 58, 88, 75, 57, 79, 59, 56, 63, 79, 52, 58, 55, 75, 68, 66, 63, 68, 53, 66, 64, 62, 68, 59, 55, 44, 76, 59, 48, 64, 52, 63, 57, 70, 51, 70, 76, 59, 67, 56, 67, 66, 80, 58, 70, 58, 117, 71, 81, 69, 62, 71, 73, 52, 74, 62, 70, 67, 75, 69, 50, 40, 55, 56, 75, 57, 58, 76, 70, 61, 62, 60, 62, 105, 60, 70, 77, 65, 69, 55, 56, 54, 66, 62, 53, 65, 46, 51, 42, 62, 45, 54, 80, 67, 77, 58, 79, 64, 64, 67, 70, 61, 81, 68, 70, 67, 65, 58, 111, 56, 53, 65, 65, 58, 66, 64, 50, 86, 51, 63, 83, 63, 73, 55, 65, 57, 52, 80, 67, 51, 64, 59, 101, 63, 62, 54, 84, 53, 62, 75, 90, 69, 63, 76, 71, 40, 74, 62, 63, 67, 58, 59, 52, 61, 98, 93, 64, 51, 84, 53, 80, 70, 72, 79, 70, 65, 71, 64, 71, 42, 71, 61, 50, 54, 67, 50, 75, 55, 75, 38, 77, 41, 51, 63, 68, 94, 80, 58, 52, 50, 84, 95, 70, 81, 53, 65, 64, 76, 53, 59, 75, 86, 70, 45, 58, 73, 57, 74, 73, 65, 73, 61, 65, 86, 70, 51, 57, 67, 92, 59, 68, 57, 85, 61, 57, 63, 67, 57, 87, 60, 69, 62, 73, 64, 68, 56, 62, 85, 83, 80, 60, 73, 70, 83, 56, 77, 60, 56, 60, 52, 69, 73, 75, 74, 74, 84, 57, 74, 50, 65, 49, 64, 54, 74, 68, 47, 57, 55, 64, 52, 52, 56, 71, 69, 92, 61, 41, 98, 59, 83, 52, 51, 65, 69, 39, 67, 67, 99, 61, 57, 84, 58, 71, 62, 60, 52, 46, 61, 115, 58, 55, 68, 79, 63, 68, 60, 57, 52, 63, 74, 87, 83, 55, 55, 63, 61, 71, 69, 73, 58, 65, 72, 79, 55, 90, 64, 75, 75, 62, 60, 76, 59, 63, 69, 79, 53, 55, 73, 52, 63, 75, 56, 55, 58, 49, 64, 67, 53, 59, 64, 77, 81, 47, 81, 86, 65, 63, 51, 54, 53, 60, 45, 47, 95, 64, 59, 62, 78, 58, 62, 58, 78, 56, 72, 81, 98, 88, 73, 65, 48, 64, 47, 45, 78, 55, 56, 50, 87, 81, 70, 53, 70, 63, 56, 74, 62, 54, 57, 61, 37, 90, 67, 82, 61, 67, 64, 50, 69, 90, 69, 72, 74, 60, 68, 55, 42, 59, 64, 78, 46, 65, 65, 55, 66, 70, 83, 62, 55, 58, 29, 63, 64, 69, 62, 71, 68, 73, 57, 62, 75, 58, 60, 59, 113, 64, 80, 60, 62, 57, 70, 51, 55, 60, 73, 60, 51, 70, 88, 63, 81, 59, 52, 59, 78, 61, 56, 67, 75, 83, 57, 53, 58, 72, 78, 40, 56, 71, 49, 64, 42, 64, 80, 59, 76, 63, 68, 71, 83, 60, 63, 57, 110, 67, 61, 60, 56, 74, 51, 76, 52, 60, 55, 104, 57, 56, 81, 65, 58, 56, 60, 63, 44, 44, 66, 59, 74, 100, 67, 57, 51, 54, 48, 52, 73, 72, 68, 78, 63, 64, 88, 68, 75, 65, 65, 78, 59, 69, 81, 56, 66, 84, 73, 73, 62, 38, 74, 61, 73, 62, 49, 80, 64, 85, 49, 67, 71, 70, 65, 62, 59, 55, 48, 81, 49, 67, 64, 58, 65, 76, 75, 59, 75, 75, 78, 53, 82, 72, 60, 69, 60, 60, 58, 62, 83, 74, 100, 58, 78, 73, 88, 55, 60, 79, 74, 60, 47, 77, 63, 60, 89, 44, 48, 62, 85, 67, 73, 52, 62, 63, 54, 59, 61, 65, 67, 60, 66, 52, 75, 68, 71, 63, 65, 73, 67, 72, 79, 65, 87, 47, 64, 75, 65, 61, 81, 64, 72, 58, 64, 75, 52, 87, 58, 59, 58, 72, 57, 58, 58, 69, 60, 51, 72, 100, 60, 60, 94, 83, 57, 110, 80, 63, 53, 50, 95, 41, 54, 55, 83, 67, 59, 67, 62, 77, 77, 61, 61, 86, 96, 110, 83, 52, 58, 68, 62, 92, 83, 73, 58, 61, 68, 49, 55, 59, 38, 57, 79, 55, 62, 66, 85, 59, 53, 50, 52, 52, 67, 56, 61, 51, 46, 114, 55, 80, 46, 67, 74, 72, 60, 57, 68, 44, 60, 74, 60, 81, 64, 75, 68, 43, 53, 62, 75, 91, 70, 87, 70, 65, 57, 78, 52, 76, 72, 91, 56, 54, 59, 58, 53, 73, 70, 62, 58, 56, 63, 79, 64, 58, 68, 77, 80, 49, 58, 74, 56, 57, 65, 63, 57, 52, 56, 51, 47, 65, 46, 52, 50, 63, 57, 57, 60, 53, 61, 64, 60, 56, 60, 57, 71, 67, 68, 59, 69, 67, 84, 46, 78, 55, 62, 55, 60, 100, 63, 48, 57, 94, 58, 77, 64, 70, 62, 81, 60, 82, 87, 66, 76, 55, 62, 112, 69, 65, 59, 56, 76, 67, 111, 59, 59, 52, 70, 89, 52, 54, 50, 63, 69, 55, 52, 66, 70, 71, 73, 56, 54, 64, 89, 68, 81, 57, 66, 99, 69, 50, 73, 64, 65, 67, 61, 92, 50, 89, 62, 78, 45, 50, 49, 55, 100, 71, 63, 76, 49, 62, 50, 47, 45, 55, 50, 69, 75, 118, 68, 58, 53, 94, 61, 45, 65, 93, 68, 74, 59, 63, 40, 76, 60, 85, 88, 87, 75, 62, 48, 53, 66, 67, 68, 54, 47, 73, 70, 59, 50, 54, 56, 60, 77, 55, 60, 51, 60, 60, 69, 122, 65, 71, 62, 54, 59, 61, 49, 55, 95, 52, 59, 54, 64, 97, 70, 61, 51, 85, 56, 45, 73, 56, 53, 57, 90, 83, 112, 56, 64, 63, 55, 49, 95, 75, 48, 86, 50, 67, 55, 74, 59, 73, 87, 62, 61, 57, 64, 82, 57, 63, 70, 67, 61, 50, 105, 40, 61, 84, 62, 67, 65, 68, 74, 67, 65, 56, 83, 74, 38, 68, 65, 56, 101, 63, 46, 68, 49, 65, 73, 51, 50, 43, 62, 63, 67, 61, 58, 56, 58, 66, 51, 46, 49, 56, 83, 55, 57, 81, 63, 116, 70, 73, 55, 70, 61, 54, 90, 68, 50, 66, 88, 82, 60, 80, 59, 65, 69, 51, 50, 46, 53, 47, 75, 70, 59, 64, 72, 59, 67, 73, 68, 56, 68, 72, 46, 48, 63, 84, 54, 50, 56, 115, 63, 53, 68, 87, 74, 99, 58, 83, 64, 71, 65, 65, 54, 64, 67, 48, 67, 94, 53, 51, 62, 69, 61, 84, 52, 90, 79, 73, 51, 58, 68, 60, 85, 60, 65, 52, 55, 44, 60, 53, 49, 123, 58, 66, 72, 70, 64, 42, 54, 57, 57, 67, 63, 69, 72, 77, 67, 67, 62, 77, 56, 68, 93, 55, 71, 61, 61, 63, 62, 51, 68, 41, 63, 59, 55, 68, 72, 62, 47, 68, 64, 60, 79, 46, 65, 62, 66, 63, 60, 75, 94, 91, 69, 52, 56, 74, 78, 58, 61, 55, 47, 61, 48, 88, 84, 45, 61, 50, 63, 47, 64, 54, 54, 65, 68, 75, 78, 66, 51, 54, 60, 66, 67, 71, 53, 70, 37, 71, 100, 75, 67, 69, 58, 68, 44, 58, 54, 40, 61, 98, 89, 91, 64, 117, 76, 72, 57, 61, 60, 83, 61, 77, 59, 42, 64, 62, 59, 108, 45, 55, 73, 69, 48, 65, 63, 62, 52, 68, 71, 66, 67, 83, 52, 66, 51, 100, 62, 49, 108, 78, 65, 57, 54, 59, 63, 73, 73, 69, 53, 56, 47, 58, 76, 62, 50, 70, 62, 45, 83, 69, 39, 69, 79, 82, 66, 88, 81, 50, 64, 71, 67, 60, 92, 63, 68, 56, 70, 53, 64, 59, 52, 58, 61, 64, 49, 52, 66, 50, 49, 63, 57, 65, 72, 58, 55, 54, 83, 62, 62, 57, 80, 69, 42, 90, 84, 73, 52, 59, 65, 92, 76, 81, 52, 61, 67, 48, 66, 47, 66, 67, 91, 62, 58, 76, 61, 57, 64, 63, 64, 65, 57, 58, 80, 89, 77, 60, 60, 65, 54, 52, 58, 75, 66, 48, 77, 64, 62, 60, 55, 48, 49, 61, 43, 72, 60, 69, 53, 66, 68, 82, 49, 76, 64, 87, 62, 67, 58, 58, 48, 76, 72, 54, 67, 64, 94, 60, 62, 65, 71, 65, 43, 57, 87, 66, 64, 43, 57, 78, 58, 86, 49, 68, 63, 64, 67, 61, 67, 58, 65, 51, 51, 73, 70, 60, 67, 67, 59, 65, 60, 59, 55, 67, 73, 66, 54, 59, 61, 62, 93, 68, 49, 76, 60, 53, 62, 61, 69, 47, 90, 49, 135, 56, 69, 56, 64, 67, 63, 82, 66, 57, 51, 57, 60, 56, 95, 51, 53, 45, 91, 79, 74, 61, 78, 83, 72, 60, 66, 58, 66, 67, 61, 51, 125, 61, 61, 73, 32, 56, 58, 80, 70, 73, 64, 55, 82, 59, 49, 87, 60, 87, 66, 52, 67, 87, 55, 52, 41, 71, 61, 59, 58, 73, 83, 64, 66, 64, 54, 61, 78, 72, 57, 65, 95, 76, 56, 48, 77, 63, 46, 53, 47, 60, 68, 65, 73, 81, 74, 76, 66, 66, 67, 101, 63, 68, 72, 51, 76, 80, 86, 60, 57, 69, 76, 71, 83, 71, 66, 71, 54, 66, 58, 45, 64, 70, 64, 67, 60, 79, 77, 73, 73, 55, 50, 66, 56, 68, 74, 84, 65, 68, 45, 66, 71, 91, 70, 64, 59, 58, 57, 78, 55, 60, 65, 70, 50, 68, 53, 64, 59, 74, 59, 71, 59, 90, 54, 67, 45, 82, 71, 62, 58, 76, 52, 58, 75, 68, 61, 76, 70, 56, 73, 52, 87, 52, 78, 65, 104, 68, 75, 51, 61, 66, 68, 74, 67, 99, 88, 48, 81, 64, 62, 61, 63, 93, 95, 88, 68, 71, 72, 102, 84, 54, 85, 58, 51, 60, 67, 58, 56, 70, 52, 75, 60, 71, 59, 103, 76, 50, 73, 87, 75, 60, 71, 67, 66, 67, 62, 75, 42, 61, 67, 59, 103, 92, 62, 85, 69, 79, 60, 82, 55, 61, 60, 66, 150, 70, 75, 79, 72, 58, 46, 66, 47, 92, 78, 69, 79, 56, 67, 56, 64, 72, 67, 56, 81, 78, 84, 60, 65, 90, 55, 63, 65, 93, 80, 66, 68, 63, 62, 59, 58, 60, 90, 89, 58, 42, 62, 52, 55, 49, 89, 77, 37, 68, 60, 54, 56, 68, 64, 126, 56, 60, 63, 59, 65, 79, 68, 64, 66, 67, 93, 72, 54, 56, 66, 57, 73, 46, 79, 58, 88, 77, 40, 56, 92, 56, 60, 66, 67, 64, 56, 58, 56, 78, 56, 45, 116, 57, 117, 48, 67, 73, 49, 57, 73, 48, 58, 60, 42, 67, 69, 59, 59, 69, 58, 63, 66, 74, 91, 67, 64, 49, 80, 39, 39, 70, 69, 73, 61, 71, 73, 60, 86, 56, 67, 56, 62, 67, 55, 74, 64, 63, 60, 83, 78, 72, 46, 66, 65, 76, 69, 60, 55, 52, 65, 41, 51, 54, 68, 56, 62, 48, 79, 56, 82, 65, 54, 78, 45, 52, 70, 71, 58, 65, 82, 69, 62, 59, 79, 60, 52, 73, 64, 90, 74, 58, 64, 49, 91, 72, 92, 75, 60, 50, 56, 66, 55, 63, 49, 68, 72, 42, 114, 63, 64, 56, 76, 80, 80, 59, 41, 70, 60, 65, 54, 58, 80, 47, 54, 72, 70, 56, 63, 61, 57, 57, 75, 86, 64, 80, 75, 70, 65, 59, 58, 79, 63, 67, 49, 89, 91, 109, 51, 65, 81, 74, 89, 65, 57, 76, 51, 78, 69, 56, 64, 82, 58, 58, 61, 55, 54, 52, 29, 60, 91, 76, 58, 82, 72, 113, 52, 105, 62, 57, 74, 63, 68, 75, 56, 81, 59, 51, 65, 54, 66, 74, 49, 82, 72, 70, 59, 101, 80, 60, 58, 55, 70, 60, 42, 46, 99, 49, 83, 71, 59, 67, 84, 54, 71, 58, 59, 62, 59, 65, 68, 49, 67, 52, 116, 75, 74, 58, 88, 51, 66, 80, 129, 43, 45, 67, 63, 68, 60, 60, 52, 56, 68, 66, 90, 70, 73, 42, 46, 51, 68, 69, 52, 73, 49, 85, 62, 87, 53, 88, 63, 65, 75, 45, 74, 42, 55, 87, 59, 88, 66, 81, 66, 61, 52, 125, 67, 103, 64, 68, 76, 68, 62, 59, 69, 88, 60, 66, 74, 52, 77, 53, 57, 61, 45, 57, 62, 63, 73, 48, 80, 112, 43, 76, 59, 83, 50, 65, 72, 65, 66, 50, 71, 43, 71, 66, 76, 60, 59, 68, 56, 59, 65, 77, 75, 72, 62, 82, 64, 53, 80, 61, 77, 61, 93, 53, 76, 75, 61, 62, 44, 45, 67, 78, 64, 50, 71, 70, 50, 49, 58, 53, 99, 58, 55, 62, 61, 51, 43, 55, 53, 66, 70, 55, 66, 53, 102, 73, 67, 56, 60, 56, 63, 68, 70, 62, 70, 69, 44, 67, 56, 76, 84, 56, 65, 63, 81, 102, 62, 60, 51, 57, 52, 54, 61, 50, 94, 48, 70, 73, 56, 57, 52, 50, 80, 61, 85, 76, 71, 63, 64, 75, 68, 49, 82, 72, 43, 54, 51, 65, 63, 75, 46, 91, 59, 89, 56, 52, 56, 83, 63, 71, 52, 54, 77, 73, 59, 93, 45, 49, 78, 82, 49, 52, 87, 86, 77, 90, 94, 53, 52, 47, 65, 59, 57, 71, 60, 68, 69, 71, 64, 74, 49, 58, 54, 70, 75, 48, 60, 70, 67, 76, 77, 79, 55, 72, 62, 66, 61, 83, 75, 75, 75, 53, 71, 55, 69, 57, 96, 89, 82, 68, 75, 80, 69, 71, 73, 80, 79, 71, 46, 58, 67, 55, 49, 90, 52, 95, 63, 52, 73, 51, 62, 69, 78, 72, 52, 71, 63, 62, 47, 52, 77, 58, 72, 47, 70, 63, 60, 77, 79, 64, 50, 64, 58, 87, 72, 95, 72, 72, 47, 68, 66, 49, 47, 42, 53, 64, 56, 61, 66, 64, 62, 83, 62, 49, 105, 65, 95, 55, 48, 38, 92, 41, 46, 76, 87, 72, 63, 90, 65, 53, 56, 54, 60, 57, 74, 92, 56, 56, 67, 58, 65, 73, 59, 56, 43, 67, 84, 57, 67, 56, 80, 48, 54, 63, 66, 72, 59, 48, 56, 93, 40, 60, 67, 56, 38, 51, 82, 72, 57, 119, 68, 70, 61, 63, 78, 64, 43, 55, 67, 61, 55, 78, 44, 46, 83, 52, 78, 66, 75, 59, 63, 76, 56, 59, 76, 50, 48, 82, 65, 65, 61, 63, 59, 50, 51, 78, 49, 66, 58, 83, 84, 84, 115, 79, 52, 45, 97, 73, 54, 45, 46, 46, 67, 42, 72, 71, 57, 58, 67, 80, 67, 65, 56, 69, 82, 60, 54, 78, 57, 70, 67, 77, 55, 69, 69, 95, 43, 75, 109, 68, 81, 54, 63, 80, 54, 56, 62, 85, 70, 62, 79, 79, 88, 67, 53, 53, 68, 56, 50, 47, 77, 47, 68, 65, 71, 81, 70, 116, 54, 51, 70, 73, 71, 57, 62, 66, 68, 81, 53, 65, 44, 50, 51, 64, 70, 63, 54, 83, 70, 60, 69, 77, 57, 47, 53, 83, 78, 70, 56, 58, 69, 84, 56, 84, 65, 63, 71, 77, 83, 53, 91, 91, 51, 58, 106, 81, 60, 99, 74, 71, 67, 62, 61, 62, 67, 74, 50, 73, 55, 102, 52, 72, 77, 61, 58, 52, 58, 82, 91, 76, 63, 84, 80, 98, 46, 76, 52, 54, 65, 66, 57, 42, 51, 63, 54, 69, 83, 67, 88, 66, 55, 84, 66, 67, 51, 76, 58, 65, 72, 57, 56, 77, 66, 55, 74, 61, 62, 56, 60, 41, 75, 67, 74, 55, 67, 52, 62, 56, 63, 96, 71, 65, 60, 56, 55, 95, 99, 52, 75, 62, 53, 63, 73, 57, 53, 76, 72, 66, 81, 77, 78, 48, 60, 77, 43, 57, 109, 67, 57, 47, 90, 66, 54, 74, 72, 54, 67, 60, 55, 61, 88, 74, 80, 94, 56, 69, 57, 65, 66, 55, 56, 69, 46, 57, 80, 62, 58, 65, 61, 74, 48, 55, 63, 64, 95, 95, 62, 76, 66, 67, 47, 57, 49, 54, 81, 84, 58, 57, 49, 63, 89, 74, 55, 73, 65, 63, 62, 69, 61, 45, 69, 53, 96, 65, 50, 79, 57, 61, 64, 55, 57, 55, 73, 67, 45, 71, 58, 57, 54, 86, 77, 96, 58, 84, 60, 88, 70, 63, 58, 81, 45, 69, 76, 82, 60, 63, 62, 69, 60, 58, 63, 67, 106, 45, 65, 62, 53, 48, 66, 69, 51, 63, 81, 67, 46, 63, 57, 136, 54, 63, 88, 57, 61, 68, 72, 62, 64, 58, 79, 70, 54, 68, 48, 66, 77, 54, 49, 59, 88, 81, 52, 70, 76, 48, 70, 74, 47, 71, 54, 55, 62, 45, 64, 51, 52, 53, 83, 62, 79, 58, 53, 77, 59, 94, 68, 52, 87, 56, 70, 54, 47, 57, 56, 73, 66, 55, 65, 58, 59, 61, 69, 53, 51, 52, 48, 50, 56, 86, 65, 85, 82, 72, 73, 72, 56, 69, 55, 70, 67, 65, 73, 61, 71, 61, 62, 59, 66, 90, 87, 77, 70, 72, 83, 68, 90, 61, 62, 58, 57, 62, 77, 74, 65, 66, 58, 74, 48, 71, 82, 61, 48, 75, 47, 61, 64, 64, 54, 64, 54, 49, 55, 77, 98, 69, 66, 82, 71, 63, 80, 47, 81, 64, 86, 62, 77, 69, 61, 76, 86, 65, 89, 54, 86, 65, 73, 57, 60, 54, 56, 54, 61, 86, 53, 65, 58, 58, 53, 80, 50, 65, 65, 62, 60, 67, 44, 91, 93, 86, 70, 65, 57, 71, 64, 70, 56, 62, 67, 65, 50, 67, 66, 58, 70, 67, 91, 81, 51, 63, 56, 62, 68, 62, 83, 37, 59, 76, 64, 54, 57, 48, 45, 56, 66, 50, 57, 75, 60, 64, 58, 102, 58, 66, 55, 56, 59, 69, 68, 57, 51, 50, 70, 74, 72, 63, 49, 62, 55, 82, 64, 62, 85, 61, 61, 89, 91, 60, 50, 58, 53, 72, 71, 63, 72, 72, 55, 79, 71, 54, 72, 59, 51, 80, 62, 51, 66, 61, 107, 74, 65, 47, 77, 69, 52, 67, 104, 45, 99, 64, 48, 73, 59, 75, 60, 69, 58, 66, 60, 66, 60, 64, 54, 52, 64, 53, 71, 53, 54, 60, 58, 59, 63, 41, 70, 62, 65, 51, 68, 66, 53, 54, 61, 50, 57, 58, 46, 81, 60, 101, 67, 129, 61, 63, 58, 69, 67, 60, 63, 116, 57, 66, 83, 67, 64, 61, 63, 39, 64, 58, 61, 56, 76, 47, 66, 55, 57, 69, 76, 89, 57, 67, 63, 81, 51, 71, 72, 41, 67, 70, 65, 77, 64, 42, 60, 68, 93, 77, 59, 66, 56, 76, 56, 62, 64, 74, 61, 52, 52, 50, 80, 100, 55, 64, 50, 66, 83, 67, 101, 61, 75, 59, 65, 53, 79, 64, 108, 74, 41, 58, 48, 66, 70, 65, 54, 62, 62, 67, 67, 78, 62, 87, 55, 69, 56, 91, 68, 69, 76, 64, 65, 91, 66, 41, 60, 59, 95, 62, 74, 63, 67, 73, 48, 61, 68, 68, 85, 70, 63, 77, 86, 48, 58, 59, 63, 65, 63, 52, 46, 76, 60, 100, 75, 59, 63, 80, 55, 71, 47, 65, 78, 61, 74, 61, 48, 39, 95, 83, 69, 59, 51, 66, 58, 60, 59, 39, 52, 78, 87, 82, 51, 53, 63, 79, 59, 58, 57, 63, 59, 66, 58, 81, 75, 49, 64, 63, 62, 59, 68, 54, 56, 55, 107, 57, 59, 84, 62, 54, 65, 67, 51, 60, 60, 66, 42, 50, 65, 70, 47, 48, 61, 88, 65, 66, 58, 61, 54, 48, 101, 66, 77, 71, 83, 49, 88, 43, 47, 63, 59, 77, 79, 114, 62, 63, 67, 56, 68, 71, 60, 83, 64, 65, 57, 66, 49, 56, 78, 69, 75, 76, 91, 60, 57, 60, 58, 52, 74, 65, 81, 80, 61, 51, 64, 104, 70, 64, 85, 62, 61, 56, 76, 49, 57, 66, 69, 56, 62, 80, 49, 48, 57, 60, 69, 51, 67, 64, 105, 71, 60, 63, 79, 57, 88, 60, 57, 62, 76, 38, 56, 67, 60, 85, 62, 97, 94, 58, 82, 47, 65, 53, 81, 107, 63, 49, 68, 69, 56, 50, 57, 56, 84, 73, 53, 64, 47, 58, 69, 68, 53, 69, 73, 62, 57, 65, 77, 67, 60, 86, 98, 61, 59, 56, 75, 60, 68, 58, 57, 72, 57, 53, 48, 71, 61, 64, 67, 50, 57, 91, 60, 63, 52, 62, 77, 61, 61, 50, 76, 65, 61, 67, 65, 61, 61, 59, 60, 58, 57, 52, 59, 64, 82, 65, 61, 69, 95, 54, 67, 58, 43, 56, 61, 52, 67, 61, 52, 61, 56, 68, 67, 55, 88, 70, 74, 62, 61, 61, 61, 56, 66, 74, 79, 65, 46, 64, 62, 76, 102, 82, 55, 77, 60, 55, 75, 72, 88, 100, 88, 81, 68, 79, 71, 69, 67, 88, 61, 70, 49, 65, 52, 86, 55, 55, 79, 56, 59, 66, 79, 61, 65, 45, 75, 61, 63, 68, 59, 66, 55, 75, 94, 56, 51, 56, 79, 79, 51, 57, 76, 63, 48, 54, 75, 82, 54, 81, 52, 62, 55, 94, 48, 51, 73, 83, 45, 61, 64, 55, 87, 63, 60, 59, 62, 65, 66, 69, 53, 68, 70, 53, 58, 65, 52, 72, 58, 73, 71, 67, 65, 80, 62, 60, 59, 61, 59, 83, 56, 73, 60, 54, 70, 62, 53, 80, 58, 62, 67, 88, 74, 69, 63, 52, 62, 72, 74, 84, 97, 70, 91, 53, 70, 55, 55, 83, 69, 64, 101, 65, 62, 80, 63, 87, 64, 59, 57, 81, 57, 76, 58, 67, 93, 41, 63, 58, 54, 68, 85, 68, 74, 61, 59, 91, 69, 57, 56, 59, 60, 91, 64, 64, 62, 57, 65, 70, 53, 54, 63, 66, 44, 62, 70, 69, 65, 44, 56, 45, 73, 63, 65, 89, 60, 69, 84, 59, 114, 63, 78, 61, 68, 66, 64, 80, 66, 61, 88, 71, 64, 59, 44, 42, 60, 53, 67, 52, 64, 54, 89, 59, 72, 73, 61, 69, 53, 81, 61, 60, 55, 97, 61, 69, 61, 54, 86, 72, 69, 56, 63, 58, 55, 58, 80, 57, 76, 61, 77, 69, 62, 70, 56, 58, 56, 35, 66, 58, 46, 74, 61, 97, 55, 59, 99, 62, 68, 78, 80, 53, 85, 67, 55, 70, 50, 103, 78, 66, 57, 54, 68, 84, 49, 62, 59, 66, 54, 77, 75, 52, 66, 60, 72, 91, 91, 59, 58, 73, 62, 55, 85, 66, 51, 72, 71, 61, 62, 53, 51, 72, 59, 62, 61, 66, 72, 50, 50, 53, 80, 139, 70, 60, 59, 61, 63, 66, 60, 56, 94, 65, 62, 61, 65, 76, 51, 78, 83, 56, 55, 60, 68, 64, 50, 83, 90, 68, 58, 73, 71, 77, 53, 69, 54, 63, 45, 68, 86, 80, 49, 61, 58, 79, 70, 83, 56, 69, 52, 95, 72, 54, 67, 58, 48, 63, 70, 68, 62, 72, 82, 64, 67, 75, 67, 54, 81, 64, 59, 62, 77, 49, 60, 69, 64, 62, 60, 52, 69, 57, 57, 66, 60, 71, 52, 101, 98, 64, 48, 71, 79, 99, 65, 65, 62, 58, 60, 69, 113, 51, 86, 60, 81, 40, 72, 65, 68, 58, 55, 79, 57, 65, 48, 65, 65, 93, 84, 62, 72, 51, 65, 96, 63, 62, 52, 72, 77, 60, 59, 74, 60, 65, 70, 58, 59, 62, 78, 51, 69, 73, 62, 61, 72, 52, 89, 61, 71, 63, 60, 69, 66, 65, 53, 68, 70, 69, 65, 65, 65, 62, 62, 82, 65, 52, 54, 66, 60, 65, 72, 63, 69, 96, 81, 65, 56, 61, 63, 74, 67, 62, 57, 57, 53, 87, 59, 59, 50, 79, 44, 68, 70, 57, 74, 38, 70, 73, 61, 78, 44, 54, 60, 67, 69, 59, 61, 50, 44, 54, 72, 69, 71, 57, 65, 79, 48, 52, 59, 62, 57, 74, 75, 62, 59, 53, 74, 62, 60, 55, 60, 51, 60, 79, 74, 59, 53, 52, 66, 48, 57, 54, 76, 97, 100, 53, 84, 53, 75, 67, 55, 81, 81, 56, 80, 66, 56, 70, 54, 80, 61, 58, 85, 71, 51, 60, 67, 59, 61, 68, 111, 63, 49, 48, 57, 70, 64, 56, 70, 54, 54, 66, 47, 67, 50, 47, 67, 52, 109, 97, 53, 63, 63, 83, 69, 71, 87, 76, 66, 68, 67, 65, 84, 128, 62, 83, 56, 54, 65, 64, 31, 55, 67, 67, 60, 106, 50, 66, 56, 55, 73, 65, 67, 117, 66, 66, 77, 67, 73, 65, 50, 60, 93, 60, 52, 81, 69, 65, 45, 72, 52, 60, 91, 79, 66, 61, 60, 58, 89, 76, 72, 83, 55, 48, 77, 52, 73, 59, 54, 56, 91, 77, 58, 62, 50, 76, 53, 60, 60, 65, 67, 63, 107, 70, 49, 56, 64, 60, 97, 48, 65, 58, 80, 81, 57, 41, 59, 63, 60, 66, 62, 102, 69, 55, 68, 55, 63, 48, 65, 55, 70, 58, 60, 65, 65, 59, 72, 55, 63, 58, 78, 67, 67, 61, 57, 56, 54, 86, 44, 46, 98, 63, 71, 56, 50, 51, 57, 65, 55, 57, 66, 61, 77, 73, 52, 56, 67, 55, 53, 51, 74, 78, 72, 69, 76, 55, 92, 53, 49, 114, 59, 55, 64, 69, 52, 59, 81, 66, 54, 63, 74, 107, 85, 61, 78, 71, 68, 90, 72, 70, 55, 67, 58, 63, 76, 54, 58, 72, 92, 47, 72, 49, 45, 55, 70, 62, 75, 75, 50, 91, 59, 71, 64, 68, 68, 70, 69, 65, 67, 67, 61, 68, 56, 69, 107, 54, 52, 69, 59, 69, 81, 72, 87, 54, 70, 55, 63, 66, 48, 94, 55, 66, 70, 57, 50, 58, 83, 52, 73, 71, 44, 80, 53, 66, 63, 48, 95, 72, 69, 82, 52, 79, 55, 56, 74, 55, 51, 74, 59, 65, 81, 76, 60, 65, 51, 54, 59, 54, 67, 67, 60, 64, 55, 62, 83, 73, 65, 73, 61, 71, 101, 64, 64, 58, 65, 42, 64, 69, 69, 51, 62, 69, 58, 72, 63, 61, 54, 51, 66, 56, 99, 66, 53, 64, 100, 57, 56, 84, 65, 53, 88, 84, 56, 79, 52, 60, 52, 50, 54, 62, 63, 56, 57, 60, 76, 93, 68, 62, 72, 66, 67, 75, 50, 55, 70, 57, 55, 71, 51, 51, 62, 68, 81, 62, 75, 70, 65, 62, 78, 69, 76, 84, 62, 59, 64, 59, 80, 56, 64, 53, 61, 81, 67, 68, 47, 71, 51, 68, 55, 70, 61, 58, 65, 58, 71, 65, 65, 62, 77, 72, 71, 53, 60, 54, 61, 70, 67, 63, 66, 69, 65, 60, 62, 56, 59, 68, 60, 53, 50, 53, 64, 50, 80, 61, 66, 47, 78, 60, 84, 62, 54, 65, 62, 62, 73, 71, 61, 76, 56, 69, 59, 59, 70, 64, 75, 54, 81, 82, 68, 96, 66, 77, 82, 50, 62, 59, 69, 105, 72, 94, 66, 61, 84, 61, 72, 75, 91, 71, 55, 49, 62, 49, 67, 71, 76, 66, 73, 70, 56, 48, 62, 52, 75, 61, 61, 65, 61, 57, 53, 55, 91, 72, 81, 54, 67, 62, 74, 67, 59, 64, 107, 54, 56, 60, 63, 64, 59, 68, 60, 77, 47, 115, 56, 51, 89, 88, 86, 77, 52, 66, 49, 64, 72, 46, 50, 97, 67, 45, 83, 56, 64, 64, 59, 65, 68, 69, 66, 60, 69, 66, 61, 66, 61, 74, 62, 71, 64, 50, 67, 74, 85, 56, 52, 45, 62, 73, 56, 50, 70, 63, 84, 54, 71, 60, 114, 69, 66, 94, 117, 55, 76, 70, 63, 61, 64, 78, 68, 64, 79, 63, 61, 84, 64, 58, 48, 52, 72, 66, 83, 87, 56, 71, 71, 51, 75, 63, 65, 51, 57, 57, 74, 57, 76, 86, 54, 60, 66, 77, 49, 67, 82, 74, 79, 51, 50, 61, 57, 62, 58, 43, 77, 74, 64, 66, 65, 68, 79, 60, 58, 50, 69, 70, 53, 56, 67, 62, 71, 50, 62, 44, 82, 64, 68, 75, 62, 69, 63, 48, 77, 59, 45, 73, 76, 54, 72, 69, 95, 52, 104, 72, 47, 65, 56, 79, 51, 60, 61, 63, 60, 85, 55, 109, 50, 60, 90, 60, 69, 50, 66, 65, 53, 51, 79, 86, 54, 49, 71, 77, 68, 63, 51, 84, 57, 50, 59, 70, 71, 87, 60, 57, 66, 52, 82, 69, 79, 89, 67, 52, 62, 58, 60, 104, 72, 81, 84, 58, 51, 62, 65, 94, 60, 60, 64, 76, 67, 56, 103, 56, 64, 62, 80, 76, 52, 54, 52, 62, 64, 52, 58, 68, 52, 72, 66, 62, 65, 61, 59, 81, 63, 63, 61, 48, 69, 62, 67, 80, 74, 160, 57, 58, 85, 79, 63, 66, 62, 56, 76, 58, 83, 53, 54, 54, 68, 75, 52, 60, 60, 62, 66, 69, 57, 86, 73, 56, 55, 64, 56, 61, 51, 64, 47, 47, 61, 56, 64, 53, 53, 99, 66, 65, 89, 76, 57, 63, 55, 87, 66, 74, 67, 60, 77, 86, 59, 76, 63, 62, 66, 71, 70, 60, 78, 71, 48, 64, 68, 64, 75, 45, 77, 58, 72, 69, 66, 70, 62, 61, 83, 60, 53, 55, 65, 77, 71, 69, 79, 76, 73, 78, 62, 71, 56, 62, 45, 81, 119, 66, 67, 51, 82, 78, 82, 65, 46, 80, 56, 79, 63, 78, 74, 47, 60, 91, 115, 55, 51, 51, 58, 82, 61, 65, 47, 74, 67, 65, 63, 70, 86, 66, 70, 62, 66, 79, 52, 53, 70, 98, 59, 54, 75, 51, 82, 44, 100, 70, 66, 62, 52, 43, 81, 74, 59, 68, 91, 64, 55, 63, 69, 58, 52, 58, 48, 58, 60, 63, 79, 55, 58, 129, 69, 62, 62, 55, 70, 89, 46, 71, 66, 63, 55, 64, 57, 62, 63, 73, 61, 62, 71, 63, 64, 74, 65, 55, 66, 60, 62, 67, 69, 70, 64, 74, 75, 58, 62, 63, 59, 53, 69, 55, 59, 50, 59, 55, 65, 62, 63, 66, 87, 63, 66, 83, 53, 57, 76, 57, 62, 68, 78, 79, 56, 65, 55, 55, 65, 71, 48, 56, 56, 97, 59, 60, 82, 61, 52, 76, 78, 106, 64, 53, 61, 52, 62, 63, 57, 53, 58, 64, 62, 74, 44, 49, 62, 62, 70, 63, 122, 67, 56, 62, 66, 74, 59, 60, 66, 70, 67, 98, 64, 54, 65, 61, 81, 62, 62, 62, 66, 56, 71, 69, 62, 55, 68, 70, 55, 80, 58, 66, 80, 99, 65, 39, 63, 65, 57, 57, 76, 58, 53, 65, 75, 97, 72, 57, 69, 59, 95, 61, 65, 63, 68, 52, 71, 70, 68, 60, 60, 50, 54, 61, 57, 62, 76, 53, 50, 73, 81, 78, 102, 65, 87, 74, 78, 68, 87, 59, 56, 78, 76, 71, 78, 51, 58, 49, 67, 60, 117, 64, 52, 78, 66, 89, 52, 58, 51, 68, 55, 56, 58, 70, 51, 62, 70, 82, 93, 73, 57, 53, 69, 62, 61, 64, 61, 52, 71, 54, 62, 63, 71, 55, 83, 58, 60, 94, 69, 56, 80, 66, 65, 56, 86, 63, 60, 59, 58, 74, 71, 56, 69, 86, 67, 77, 44, 60, 73, 57, 88, 58, 64, 58, 73, 63, 61, 68, 49, 52, 73, 52, 85, 76, 62, 72, 74, 55, 66, 62, 70, 69, 80, 94, 85, 57, 60, 51, 68, 125, 55, 83, 55, 74, 48, 62, 69, 64, 63, 52, 69, 82, 72, 66, 65, 55, 57, 64, 87, 81, 66, 53, 55, 49, 68, 62, 59, 58, 67, 57, 59, 58, 53, 68, 61, 80, 53, 65, 63, 103, 61, 63, 77, 68, 82, 94, 57, 70, 67, 64, 58, 70, 53, 60, 94, 63, 63, 81, 55, 56, 72, 72, 80, 61, 54, 54, 91, 64, 58, 69, 49, 50, 65, 61, 52, 68, 85, 71, 92, 85, 82, 76, 80, 49, 65, 67, 69, 58, 58, 67, 62, 62, 62, 70, 72, 57, 50, 55, 62, 72, 66, 68, 52, 61, 53, 76, 66, 50, 79, 70, 81, 71, 69, 69, 74, 85, 69, 58, 56, 54, 90, 55, 68, 65, 55, 55, 55, 66, 54, 52, 67, 77, 47, 75, 63, 59, 75, 60, 67, 55, 55, 51, 62, 67, 84, 53, 89, 63, 59, 57, 78, 65, 75, 65, 65, 73, 60, 44, 46, 62, 60, 74, 69, 68, 71, 88, 61, 59, 36, 64, 64, 53, 41, 69, 65, 61, 41, 58, 80, 52, 65, 54, 60, 71, 53, 65, 63, 69, 50, 56, 66, 75, 93, 49, 64, 71, 69, 62, 58, 56, 61, 64, 55, 68, 71, 54, 66, 68, 73, 97, 64, 62, 48, 59, 54, 45, 54, 57, 64, 72, 68, 63, 64, 56, 56, 59, 68, 58, 57, 73, 68, 65, 51, 54, 79, 79, 68, 44, 58, 52, 45, 45, 78, 57, 67, 64, 89, 51, 55, 75, 49, 65, 56, 65, 59, 66, 65, 68, 47, 48, 70, 59, 44, 63, 82, 99, 51, 94, 48, 58, 71, 67, 75, 78, 59, 48, 89, 59, 103, 72, 57, 52, 59, 62, 51, 87, 58, 53, 63, 58, 79, 81, 97, 60, 50, 69, 54, 50, 66, 70, 48, 45, 55, 66, 58, 51, 53, 63, 58, 62, 123, 81, 88, 64, 51, 52, 68, 74, 52, 55, 62, 54, 51, 59, 60, 65, 88, 69, 77, 57, 68, 85, 63, 66, 82, 47, 58, 68, 53, 56, 59, 64, 108, 75, 56, 76, 73, 93, 69, 67, 74, 70, 70, 85, 66, 55, 58, 68, 70, 79, 56, 66, 56, 63, 64, 69, 71, 62, 58, 95, 64, 49, 92, 53, 68, 57, 58, 56, 70, 67, 63, 66, 62, 65, 51, 52, 52, 66, 62, 61, 46, 51, 44, 46, 60, 51, 97, 57, 72, 42, 46, 74, 64, 68, 53, 64, 62, 74, 59, 62, 69, 51, 80, 42, 58, 67, 63, 122, 51, 61, 90, 51, 64, 51, 56, 60, 60, 75, 93, 95, 60, 91, 73, 74, 60, 55, 93, 62, 54, 78, 66, 71, 51, 75, 92, 74, 56, 60, 75, 71, 87, 53, 82, 49, 57, 101, 80, 59, 53, 76, 69, 71, 60, 109, 76, 55, 66, 51, 56, 61, 94, 69, 65, 86, 62, 72, 59, 90, 64, 67, 67, 66, 61, 71, 62, 72, 61, 59, 54, 102, 76, 63, 59, 76, 79, 54, 45, 77, 48, 75, 72, 55, 69, 46, 66, 66, 86, 85, 58, 59, 74, 64, 71, 61, 61, 66, 63, 48, 72, 53, 50, 59, 112, 71, 63, 60, 67, 67, 47, 53, 90, 36, 79, 62, 92, 52, 74, 59, 57, 65, 72, 74, 59, 71, 68, 89, 76, 58, 56, 46, 54, 75, 60, 55, 70, 57, 78, 82, 56, 56, 56, 79, 70, 84, 52, 78, 64, 60, 79, 66, 62, 73, 88, 76, 36, 56, 81, 87, 50, 71, 55, 68, 55, 51, 70, 65, 77, 44, 99, 62, 53, 72, 69, 66, 68, 71, 58, 65, 45, 60, 79, 65, 54, 64, 60, 75, 52, 62, 72, 106, 48, 55, 52, 73, 56, 59, 52, 64, 57, 62, 42, 57, 81, 78, 83, 91, 81, 63, 67, 57, 62, 47, 47, 65, 52, 55, 56, 52, 79, 69, 90, 71, 59, 57, 60, 75, 49, 70, 73, 56, 86, 76, 77, 68, 53, 82, 52, 60, 63, 70, 82, 75, 75, 64, 66, 62, 74, 74, 67, 63, 63, 64, 54, 52, 70, 77, 55, 57, 53, 68, 81, 57, 57, 57, 49, 54, 68, 88, 82, 49, 61, 68, 96, 50, 70, 79, 97, 76, 71, 53, 65, 71, 67, 69, 54, 55, 86, 58, 69, 86, 76, 77, 52, 64, 54, 81, 70, 77, 110, 53, 105, 73, 60, 61, 77, 86, 55, 93, 55, 61, 79, 48, 74, 53, 50, 89, 71, 95, 74, 59, 58, 57, 72, 67, 58, 46, 91, 96, 73, 80, 63, 59, 64, 67, 64, 93, 53, 55, 61, 72, 55, 81, 50, 82, 79, 68, 52, 76, 67, 81, 60, 61, 78, 82, 65, 55, 71, 83, 59, 64, 58, 63, 74, 60, 57, 63, 63, 82, 52, 87, 60, 62, 69, 55, 65, 76, 58, 70, 73, 63, 73, 59, 71, 54, 67, 60, 62, 96, 65, 61, 107, 48, 65, 42, 72, 77, 62, 48, 58, 54, 59, 86, 49, 91, 52, 78, 56, 83, 62, 55, 58, 75, 75, 58, 55, 69, 66, 60, 71, 60, 70, 46, 68, 45, 133, 71, 51, 61, 50, 71, 58, 51, 63, 68, 53, 79, 80, 79, 95, 55, 64, 58, 81, 54, 49, 53, 66, 79, 58, 72, 69, 61, 77, 69, 61, 72, 90, 70, 65, 60, 53, 65, 68, 58, 57, 80, 51, 86, 63, 78, 58, 58, 58, 80, 62, 60, 58, 66, 55, 82, 58, 62, 78, 60, 46, 70, 62, 77, 60, 48, 77, 61, 61, 52, 67, 80, 52, 72, 65, 82, 49, 49, 59, 59, 58, 52, 53, 71, 60, 60, 63, 78, 57, 42, 54, 65, 51, 50, 59, 103, 53, 58, 49, 66, 55, 81, 59, 37, 53, 78, 78, 48, 94, 96, 52, 59, 59, 83, 50, 76, 48, 54, 60, 66, 71, 57, 63, 63, 73, 64, 68, 80, 72, 89, 78, 47, 73, 57, 75, 53, 59, 52, 70, 79, 53, 65, 56, 68, 64, 51, 65, 62, 63, 73, 111, 63, 76, 65, 82, 70, 82, 67, 51, 54, 57, 66, 82, 58, 78, 60, 75, 57, 64, 67, 59, 60, 65, 74, 72, 53, 61, 61, 96, 63, 85, 84, 90, 60, 68, 55, 73, 43, 83, 59, 72, 119, 75, 50, 73, 61, 71, 62, 63, 73, 48, 53, 68, 65, 72, 97, 71, 68, 56, 58, 74, 87, 70, 53, 52, 56, 90, 83, 58, 44, 58, 72, 66, 68, 49, 60, 57, 61, 81, 85, 63, 77, 69, 56, 50, 61, 69, 51, 55, 66, 54, 47, 80, 56, 70, 85, 54, 69, 49, 60, 88, 58, 55, 52, 52, 70, 71, 59, 81, 57, 55, 61, 64, 103, 65, 77, 49, 90, 65, 56, 50, 50, 57, 95, 80, 67, 56, 51, 56, 60, 78, 78, 77, 69, 68, 66, 59, 57, 63, 64, 51, 44, 56, 61, 46, 60, 69, 44, 56, 55, 67, 60, 64, 52, 71, 52, 66, 62, 48, 63, 58, 51, 53, 55, 90, 63, 51, 67, 53, 77, 58, 72, 58, 70, 61, 75, 56, 59, 56, 76, 78, 67, 69, 62, 52, 63, 75, 90, 106, 72, 57, 64, 60, 57, 62, 88, 61, 67, 59, 88, 49, 56, 58, 63, 66, 53, 53, 65, 54, 58, 60, 65, 53, 60, 61, 65, 55, 54, 59, 71, 79, 54, 67, 57, 74, 54, 66, 68, 54, 70, 64, 58, 74, 69, 58, 63, 57, 66, 65, 54, 54, 98, 52, 57, 50, 64, 80, 57, 70, 79, 72, 65, 46, 55, 63, 57, 53, 48, 56, 70, 55, 63, 53, 54, 87, 74, 66, 56, 69, 70, 73, 104, 89, 69, 70, 63, 67, 74, 60, 68, 56, 85, 52, 67, 54, 64, 50, 42, 71, 114, 74, 62, 59, 59, 63, 51, 65, 93, 57, 56, 71, 56, 59, 55, 65, 64, 58, 52, 47, 76, 53, 73, 64, 80, 61, 61, 62, 60, 58, 43, 63, 76, 76, 62, 69, 70, 75, 60, 64, 85, 108, 57, 55, 58, 56, 60, 66, 52, 58, 71, 64, 83, 82, 66, 72, 55, 59, 66, 62, 59, 81, 75, 55, 55, 63, 71, 65, 60, 47, 67, 61, 72, 67, 53, 52, 55, 78, 55, 56, 75, 62, 80, 85, 79, 58, 75, 72, 69, 67, 55, 48, 79, 60, 114, 47, 69, 61, 69, 67, 62, 63, 64, 60, 89, 85, 85, 78, 58, 68, 68, 55, 61, 63, 74, 84, 61, 65, 92, 58, 49, 71, 66, 59, 81, 88, 59, 50, 60, 62, 60, 59, 62, 84, 93, 68, 53, 70, 59, 79, 53, 69, 70, 55, 57, 73, 87, 50, 67, 68, 54, 65, 74, 75, 106, 65, 65, 55, 56, 58, 69, 57, 64, 56, 63, 61, 55, 59, 67, 79, 109, 50, 54, 64, 64, 53, 72, 67, 46, 55, 61, 62, 58, 57, 73, 50, 68, 60, 58, 62, 71, 79, 86, 62, 85, 59, 67, 90, 65, 49, 47, 60, 59, 58, 80, 63, 60, 60, 58, 69, 61, 52, 74, 79, 75, 85, 80, 55, 75, 61, 62, 73, 57, 62, 109, 47, 58, 53, 62, 70, 46, 93, 78, 61, 59, 85, 50, 51, 71, 58, 75, 71, 58, 63, 51, 74, 66, 58, 82, 58, 71, 91, 64, 55, 84, 55, 56, 59, 58, 77, 71, 68, 84, 104, 67, 45, 87, 72, 70, 67, 64, 86, 49, 56, 63, 57, 64, 58, 70, 57, 51, 56, 88, 64, 63, 53, 57, 64, 65, 60, 63, 57, 77, 62, 70, 71, 79, 73, 60, 62, 67, 66, 62, 70, 39, 77, 83, 76, 50, 65, 94, 56, 70, 57, 55, 61, 67, 64, 134, 65, 57, 64, 52, 57, 65, 97, 89, 72, 62, 91, 47, 61, 63, 55, 49, 71, 42, 57, 54, 69, 64, 68, 65, 51, 79, 90, 44, 79, 71, 60, 58, 67, 95, 47, 71, 78, 65, 66, 70, 59, 55, 62, 64, 71, 96, 51, 75, 54, 71, 68, 67, 68, 53, 63, 61, 79, 58, 63, 57, 67, 66, 58, 77, 53, 69, 62, 74, 57, 83, 100, 56, 56, 67, 69, 52, 69, 77, 67, 59, 62, 52, 67, 58, 62, 75, 72, 52, 59, 88, 57, 57, 67, 72, 75, 53, 66, 73, 53, 51, 59, 66, 51, 58, 55, 86, 86, 83, 98, 55, 53, 67, 61, 57, 101, 66, 63, 66, 82, 65, 71, 71, 55, 56, 78, 56, 61, 53, 75, 61, 86, 53, 50, 58, 84, 62, 78, 59, 78, 87, 61, 73, 88, 70, 72, 92, 63, 57, 52, 67, 69, 54, 70, 68, 101, 81, 53, 71, 65, 57, 64, 59, 73, 59, 64, 63, 65, 67, 101, 105, 82, 61, 63, 63, 44, 69, 56, 73, 66, 42, 58, 57, 71, 68, 55, 56, 58, 70, 50, 68, 73, 60, 60, 70, 68, 60, 65, 58, 82, 59, 60, 92, 53, 56, 67, 61, 64, 78, 62, 78, 62, 64, 59, 71, 68, 48, 78, 46, 56, 63, 76, 59, 58, 62, 61, 65, 57, 54, 67, 45, 60, 60, 58, 63, 58, 43, 92, 45, 65, 63, 55, 66, 67, 81, 70, 72, 62, 72, 75, 72, 111, 84, 74, 55, 83, 53, 59, 78, 72, 67, 63, 57, 57, 55, 49, 63, 120, 79, 59, 48, 66, 67, 57, 62, 52, 62, 65, 69, 56, 60, 61, 59, 75, 63, 53, 55, 79, 54, 65, 85, 69, 67, 87, 55, 55, 65, 60, 54, 74, 62, 66, 55, 64, 60, 58, 59, 69, 56, 56, 52, 58, 110, 56, 58, 73, 61, 71, 58, 51, 57, 60, 68, 64, 68, 68, 64, 53, 73, 74, 68, 65, 62, 86, 76, 80, 60, 65, 65, 61, 56, 70, 87, 60, 59, 72, 62, 69, 67, 68, 66, 59, 86, 57, 87, 62, 61, 49, 79, 77, 84, 56, 62, 50, 49, 59, 61, 62, 84, 44, 77, 82, 65, 72, 69, 76, 62, 72, 58, 68, 76, 75, 69, 60, 63, 67, 70, 45, 88, 71, 77, 60, 69, 60, 59, 63, 74, 88, 76, 70, 69, 72, 53, 66, 52, 59, 75, 71, 74, 51, 62, 65, 56, 75, 103, 57, 57, 71, 62, 76, 66, 64, 80, 92, 60, 75, 68, 59, 58, 79, 64, 67, 61, 61, 60, 56, 54, 59, 53, 73, 63, 88, 55, 57, 71, 74, 99, 57, 64, 47, 56, 66, 69, 69, 53, 65, 83, 70, 74, 59, 67, 103, 76, 69, 65, 76, 77, 53, 54, 51, 65, 83, 55, 67, 86, 71, 77, 64, 67, 67, 63, 50, 59, 85, 46, 61, 67, 72, 77, 43, 57, 97, 59, 73, 60, 93, 78, 57, 62, 66, 88, 65, 67, 57, 54, 61, 49, 54, 63, 56, 54, 77, 62, 66, 72, 85, 52, 65, 67, 63, 66, 63, 70, 61, 50, 52, 51, 57, 64, 71, 95, 47, 61, 55, 72, 47, 59, 57, 62, 66, 42, 64, 66, 59, 59, 76, 61, 72, 68, 57, 62, 72, 56, 64, 59, 69, 67, 57, 88, 52, 90, 85, 79, 60, 73, 68, 61, 60, 72, 81, 66, 79, 68, 68, 47, 61, 72, 62, 54, 49, 62, 65, 55, 63, 56, 79, 80, 61, 75, 64, 59, 70, 68, 76, 59, 60, 68, 57, 74, 82, 67, 66, 63, 56, 86, 68, 59, 59, 54, 64, 53, 62, 76, 57, 54, 63, 73, 58, 68, 69, 61, 60, 48, 47, 64, 51, 60, 67, 93, 67, 59, 67, 57, 67, 59, 69, 58, 56, 103, 94, 100, 62, 66, 51, 66, 58, 60, 70, 59, 71, 62, 60, 66, 50, 65, 61, 59, 64, 72, 55, 58, 60, 64, 83, 68, 53, 69, 61, 42, 69, 72, 72, 63, 58, 61, 64, 69, 49, 56, 59, 60, 76, 51, 49, 80, 54, 65, 74, 56, 55, 64, 71, 63, 73, 63, 56, 90, 72, 65, 59, 64, 53, 59, 78, 54, 55, 61, 53, 67, 86, 78, 63, 58, 75, 56, 57, 62, 101, 61, 74, 56, 61, 79, 58, 52, 50, 53, 63, 68, 66, 106, 65, 73, 63, 46, 69, 84, 67, 61, 95, 67, 87, 50, 86, 77, 59, 67, 115, 85, 63, 70, 64, 59, 63, 55, 59, 75, 65, 64, 69, 57, 44, 75, 91, 71, 55, 63, 63, 63, 48, 55, 64, 70, 63, 57, 92, 61, 61, 58, 63, 51, 50, 60, 74, 70, 58, 42, 42, 70, 78, 61, 65, 45, 63, 103, 49, 70, 58, 56, 68, 117, 49, 82, 74, 68, 50, 59, 70, 78, 65, 74, 89, 88, 93, 61, 47, 68, 57, 59, 81, 73, 95, 67, 74, 67, 51, 48, 54, 66, 61, 59, 69, 47, 64, 62, 64, 51, 78, 80, 89, 79, 67, 61, 70, 62, 90, 64, 51, 55, 69, 50, 39, 98, 67, 74, 62, 55, 48, 96, 90, 91, 65, 58, 60, 51, 53, 70, 66, 67, 61, 77, 66, 57, 57, 64, 90, 83, 68, 69, 61, 72, 56, 94, 46, 65, 53, 48, 53, 61, 69, 70, 57, 63, 58, 56, 54, 70, 68, 76, 57, 93, 71, 77, 68, 63, 52, 50, 66, 59, 71, 79, 76, 63, 83, 69, 60, 59, 62, 66, 69, 87, 75, 67, 63, 67, 80, 50, 54, 71, 65, 109, 74, 56, 80, 59, 59, 53, 58, 82, 63, 70, 56, 107, 52, 62, 63, 76, 71, 62, 75, 59, 76, 68, 54, 76, 70, 63, 73, 64, 85, 74, 55, 59, 56, 77, 77, 62, 40, 60, 106, 62, 77, 80, 56, 72, 90, 82, 78, 71, 72, 55, 78, 58, 55, 59, 58, 61, 78, 91, 51, 60, 49, 49, 72, 60, 59, 59, 52, 44, 56, 83, 60, 61, 57, 64, 61, 57, 84, 54, 62, 42, 74, 64, 53, 49, 86, 102, 57, 52, 63, 55, 54, 67, 75, 139, 70, 58, 61, 61, 58, 58, 80, 80, 48, 53, 74, 56, 58, 60, 75, 66, 67, 57, 71, 62, 55, 68, 86, 65, 71, 71, 88, 57, 78, 59, 73, 55, 87, 59, 51, 52, 69, 56, 59, 60, 58, 66, 48, 63, 64, 56, 53, 95, 80, 62, 69, 71, 60, 52, 63, 60, 80, 56, 47, 61, 84, 70, 50, 61, 60, 44, 86, 66, 57, 56, 95, 49, 76, 63, 54, 71, 59, 75, 51, 51, 53, 64, 61, 51, 88, 65, 57, 70, 76, 94, 65, 62, 59, 67, 67, 84, 70, 84, 63, 54, 92, 63, 79, 66, 75, 62, 55, 78, 90, 46, 65, 69, 59, 46, 99, 66, 61, 69, 48, 39, 57, 82, 61, 48, 66, 55, 61, 53, 55, 56, 86, 54, 82, 60, 81, 60, 79, 53, 75, 41, 60, 72, 91, 89, 67, 71, 88, 75, 57, 81, 113, 77, 52, 59, 63, 58, 67, 87, 69, 58, 66, 62, 59, 60, 63, 72, 57, 71, 91, 109, 56, 79, 61, 95, 58, 79, 62, 66, 64, 63, 54, 60, 61, 58, 50, 66, 49, 60, 62, 73, 66, 65, 63, 74, 62, 71, 66, 64, 71, 56, 53, 63, 51, 60, 56, 52, 56, 75, 63, 92, 64, 72, 61, 70, 85, 70, 54, 63, 59, 54, 69, 68, 58, 59, 59, 69, 67, 63, 65, 62, 64, 87, 64, 66, 72, 69, 75, 68, 62, 53, 65, 55, 76, 86, 68, 95, 65, 54, 72, 45, 64, 60, 58, 65, 64, 59, 59, 54, 63, 54, 89, 50, 110, 51, 54, 76, 109, 65, 46, 64, 69, 66, 63, 58, 66, 57, 63, 44, 76, 64, 70, 63, 87, 65, 51, 87, 90, 65, 57, 88, 68, 83, 63, 56, 58, 55, 89, 69, 74, 88, 62, 81, 57, 63, 72, 89, 56, 57, 78, 70, 63, 118, 80, 69, 52, 65, 54, 63, 66, 56, 57, 64, 71, 63, 73, 50, 79, 73, 39, 85, 60, 55, 89, 63, 58, 94, 60, 81, 72, 78, 52, 73, 40, 71, 69, 73, 65, 65, 60, 67, 61, 64, 62, 91, 44, 72, 75, 87, 70, 97, 63, 59, 53, 58, 61, 56, 59, 74, 91, 60, 66, 74, 63, 73, 62, 74, 64, 78, 49, 70, 99, 66, 58, 62, 48, 80, 64, 67, 73, 66, 53, 88, 62, 61, 50, 77, 64, 56, 60, 58, 65, 76, 55, 66, 64, 66, 73, 59, 71, 66, 59, 71, 72, 68, 65, 64, 83, 52, 50, 47, 82, 66, 55, 74, 68, 72, 62, 57, 63, 76, 66, 70, 59, 79, 63, 75, 55, 54, 52, 58, 51, 79, 48, 60, 43, 101, 55, 68, 70, 51, 80, 59, 70, 50, 71, 59, 91, 84, 47, 59, 98, 122, 61, 66, 69, 63, 66, 61, 60, 73, 59, 60, 73, 58, 80, 51, 58, 63, 71, 69, 53, 76, 68, 57, 60, 65, 73, 51, 60, 85, 77, 66, 78, 73, 86, 45, 55, 64, 75, 46, 59, 63, 70, 56, 55, 57, 56, 57, 78, 58, 72, 59, 78, 60, 64, 55, 53, 56, 82, 71, 66, 56, 58, 51, 63, 53, 48, 65, 66, 98, 79, 67, 52, 80, 61, 52, 62, 54, 67, 72, 58, 64, 68, 65, 51, 65, 68, 56, 63, 76, 75, 52, 58, 51, 69, 78, 66, 98, 62, 86, 81, 76, 66, 61, 65, 70, 55, 64, 57, 53, 53, 58, 58, 66, 67, 65, 58, 51, 56, 55, 58, 69, 111, 59, 71, 54, 60, 86, 56, 69, 75, 83, 89, 68, 66, 49, 63, 48, 77, 61, 53, 62, 67, 60, 58, 78, 78, 51, 58, 56, 66, 67, 62, 59, 72, 60, 61, 69, 54, 66, 67, 60, 54, 77, 50, 60, 69, 68, 80, 54, 51, 65, 49, 61, 70, 48, 59, 95, 73, 69, 60, 53, 54, 52, 60, 61, 58, 69, 70, 49, 58, 56, 59, 90, 65, 76, 70, 77, 59, 79, 80, 52, 77, 64, 50, 62, 55, 74, 55, 62, 98, 70, 56, 61, 62, 74, 59, 58, 66, 56, 69, 60, 67, 38, 60, 69, 73, 55, 51, 85, 60, 65, 49, 58, 69, 88, 55, 73, 59, 71, 62, 78, 66, 61, 56, 60, 99, 57, 88, 59, 71, 69, 64, 57, 62, 56, 72, 57, 58, 64, 64, 91, 53, 41, 53, 85, 64, 58, 58, 68, 71, 94, 63, 99, 61, 66, 62, 64, 96, 57, 66, 64, 87, 78, 62, 67, 93, 83, 62, 57, 67, 58, 53, 53, 59, 78, 68, 87, 57, 54, 40, 69, 78, 87, 60, 56, 70, 58, 63, 70, 57, 56, 61, 51, 39, 52, 61, 64, 65, 71, 53, 71, 50, 60, 54, 57, 65, 47, 68, 78, 60, 58, 60, 86, 66, 57, 56, 59, 56, 106, 79, 72, 57, 57, 64, 83, 60, 74, 61, 69, 60, 74, 79, 63, 62, 73, 68, 63, 107, 63, 68, 86, 57, 66, 62, 45, 50, 61, 64, 77, 65, 72, 75, 54, 52, 55, 79, 69, 73, 69, 52, 50, 71, 51, 61, 63, 59, 66, 52, 77, 91, 83, 64, 70, 71, 58, 63, 56, 83, 78, 63, 62, 62, 84, 51, 60, 70, 58, 56, 59, 47, 59, 65, 61, 90, 100, 54, 60, 60, 60, 56, 67, 79, 58, 56, 30, 61, 66, 71, 55, 69, 54, 52, 69, 74, 61, 86, 75, 52, 88, 49, 87, 118, 67, 65, 59, 72, 82, 72, 72, 64, 60, 77, 52, 53, 59, 62, 61, 66, 72, 90, 58, 55, 62, 77, 91, 60, 55, 59, 123, 58, 79, 58, 62, 62, 73, 58, 60, 62, 68, 77, 92, 69, 63, 72, 49, 60, 60, 75, 69, 66, 65, 50, 81, 66, 62, 69, 53, 52, 70, 65, 56, 54, 87, 59, 73, 69, 64, 64, 74, 90, 72, 70, 47, 59, 65, 58, 51, 47, 51, 80, 66, 61, 82, 52, 74, 65, 69, 48, 62, 57, 94, 81, 62, 59, 61, 52, 43, 84, 58, 77, 59, 85, 47, 70, 57, 60, 71, 60, 58, 49, 62, 70, 44, 72, 75, 62, 56, 63, 54, 66, 48, 65, 144, 66, 68, 70, 75, 65, 42, 76, 64, 77, 56, 66, 74, 66, 90, 57, 76, 79, 71, 50, 68, 63, 84, 62, 58, 67, 59, 76, 72, 76, 91, 61, 69, 63, 62, 53, 50, 61, 54, 74, 67, 56, 47, 65, 66, 60, 68, 68, 75, 64, 63, 64, 83, 62, 72, 60, 63, 61, 56, 96, 62, 52, 74, 56, 64, 56, 67, 55, 61, 77, 67, 72, 68, 68, 63, 77, 65, 61, 72, 66, 58, 58, 62, 54, 67, 89, 65, 55, 62, 78, 93, 56, 51, 73, 65, 51, 72, 82, 59, 38, 62, 72, 58, 84, 62, 63, 65, 69, 68, 79, 80, 72, 63, 55, 64, 92, 67, 60, 72, 68, 75, 57, 49, 53, 51, 89, 56, 55, 68, 78, 53, 49, 63, 77, 63, 44, 49, 68, 59, 53, 74, 62, 54, 121, 70, 76, 44, 74, 82, 47, 75, 67, 77, 52, 70, 61, 62, 69, 66, 68, 70, 51, 61, 64, 55, 68, 70, 58, 71, 93, 117, 50, 60, 69, 65, 66, 86, 48, 85, 48, 64, 65, 80, 72, 65, 57, 74, 73, 63, 75, 72, 50, 50, 52, 68, 59, 95, 59, 63, 77, 62, 57, 73, 75, 65, 66, 56, 52, 73, 56, 93, 62, 52, 64, 54, 91, 61, 60, 64, 65, 56, 92, 76, 48, 63, 69, 58, 61, 53, 65, 60, 60, 60, 92, 56, 64, 56, 76, 52, 66, 53, 75, 62, 67, 72, 57, 80, 62, 68, 69, 67, 81, 65, 71, 88, 56, 64, 65, 60, 75, 80, 60, 68, 92, 56, 53, 63, 113, 60, 57, 60, 68, 58, 64, 60, 59, 56, 57, 60, 66, 65, 60, 81, 35, 51, 83, 61, 64, 65, 45, 75, 68, 53, 74, 53, 65, 57, 65, 81, 61, 75, 55, 68, 76, 64, 63, 51, 69, 52, 76, 56, 65, 121, 54, 66, 67, 56, 76, 58, 79, 49, 58, 61, 69, 56, 55, 63, 72, 50, 85, 56, 57, 55, 65, 54, 58, 74, 57, 66, 62, 66, 66, 80, 48, 79, 84, 59, 71, 78, 68, 54, 53, 76, 60, 88, 63, 64, 80, 72, 54, 79, 61, 76, 63, 65, 52, 69, 60, 56, 77, 78, 64, 91, 67, 74, 55, 59, 75, 78, 52, 55, 69, 65, 68, 75, 57, 75, 92, 90, 62, 58, 61, 62, 59, 59, 65, 76, 71, 57, 61, 57, 65, 52, 65, 68, 58, 81, 73, 65, 68, 59, 66, 74, 67, 69, 60, 65, 80, 60, 59, 60, 64, 81, 72, 56, 66, 62, 49, 61, 62, 74, 73, 62, 66, 60, 68, 65, 58, 42, 56, 97, 75, 93, 90, 62, 74, 100, 76, 62, 64, 75, 67, 64, 58, 54, 70, 56, 104, 88, 54, 47, 106, 48, 58, 67, 74, 51, 53, 67, 63, 53, 60, 68, 50, 57, 66, 52, 40, 65, 58, 59, 53, 82, 82, 83, 55, 50, 56, 72, 76, 59, 52, 58, 60, 60, 83, 76, 68, 68, 55, 61, 59, 60, 77, 56, 58, 58, 52, 72, 64, 63, 66, 65, 86, 54, 68, 50, 76, 79, 67, 104, 60, 78, 56, 70, 57, 54, 56, 56, 63, 114, 90, 87, 58, 62, 60, 52, 63, 56, 54, 48, 82, 62, 54, 66, 67, 65, 73, 68, 69, 56, 63, 56, 64, 73, 66, 69, 62, 69, 59, 78, 63, 62, 60, 70, 57, 67, 71, 74, 65, 63, 75, 57, 56, 61, 58, 56, 62, 78, 47, 67, 54, 60, 60, 47, 71, 76, 67, 66, 61, 55, 55, 56, 82, 58, 84, 113, 75, 60, 63, 50, 71, 71, 60, 49, 99, 60, 56, 64, 74, 60, 60, 79, 57, 59, 70, 67, 58, 72, 64, 56, 64, 57, 60, 64, 62, 63, 58, 53, 71, 63, 57, 80, 61, 57, 69, 63, 52, 99, 90, 52, 60, 65, 61, 67, 65, 63, 59, 69, 58, 59, 57, 68, 62, 56, 64, 61, 66, 61, 66, 60, 105, 73, 83, 68, 57, 62, 61, 53, 63, 55, 65, 57, 66, 57, 64, 53, 58, 60, 57, 55, 70, 73, 63, 56, 60, 60, 63, 72, 52, 69, 84, 46, 67, 63, 52, 98, 55, 72, 75, 67, 59, 54, 62, 64, 65, 71, 58, 63, 82, 80, 60, 72, 57, 59, 51, 50, 79, 58, 75, 62, 65, 74, 64, 74, 61, 54, 45, 61, 73, 62, 66, 61, 76, 44, 59, 55, 62, 56, 98, 45, 68, 68, 99, 53, 57, 36, 125, 80, 57, 80, 88, 80, 81, 64, 56, 44, 54, 85, 67, 78, 62, 66, 103, 88, 59, 72, 55, 68, 58, 57, 60, 51, 56, 56, 77, 54, 57, 85, 60, 67, 105, 68, 81, 67, 69, 54, 57, 76, 57, 66, 56, 63, 62, 91, 66, 59, 59, 61, 58, 127, 76, 75, 59, 62, 58, 67, 63, 68, 69, 58, 54, 62, 79, 68, 53, 73, 59, 57, 71, 69, 88, 53, 61, 76, 51, 63, 82, 60, 84, 77, 42, 70, 60, 52, 71, 70, 72, 61, 65, 63, 72, 61, 101, 57, 84, 60, 72, 69, 63, 63, 61, 99, 63, 44, 81, 45, 50, 57, 90, 73, 64, 56, 85, 62, 59, 51, 83, 62, 59, 86, 65, 60, 65, 67, 83, 90, 75, 59, 49, 54, 50, 61, 69, 56, 53, 50, 44, 66, 62, 64, 76, 72, 76, 61, 51, 72, 89, 58, 61, 74, 62, 61, 74, 65, 57, 66, 82, 72, 53, 67, 68, 61, 49, 78, 58, 55, 65, 60, 88, 93, 65, 63, 64, 64, 64, 80, 58, 58, 57, 99, 51, 47, 52, 55, 60, 65, 61, 57, 69, 68, 75, 55, 88, 62, 50, 54, 70, 59, 62, 61, 71, 69, 72, 71, 69, 60, 60, 50, 58, 81, 52, 53, 63, 81, 61, 66, 57, 65, 96, 64, 63, 76, 48, 54, 66, 68, 71, 57, 56, 66, 74, 61, 57, 80, 54, 66, 94, 74, 59, 57, 69, 98, 78, 55, 69, 59, 58, 57, 71, 67, 58, 56, 47, 60, 67, 62, 56, 79, 91, 63, 65, 58, 46, 62, 52, 77, 54, 70, 48, 76, 72, 69, 77, 152, 61, 55, 64, 76, 65, 72, 65, 55, 62, 78, 83, 68, 59, 64, 68, 64, 58, 55, 69, 59, 56, 81, 65, 70, 61, 65, 70, 72, 74, 79, 56, 56, 76, 49, 67, 53, 53, 60, 57, 54, 51, 60, 54, 57, 70, 68, 63, 97, 78, 77, 57, 78, 59, 54, 58, 78, 61, 58, 60, 67, 61, 51, 65, 79, 62, 71, 50, 52, 61, 54, 89, 78, 71, 64, 64, 63, 61, 78, 59, 73, 65, 59, 56, 61, 82, 59, 64, 57, 72, 84, 54, 57, 61, 69, 78, 78, 61, 74, 57, 60, 84, 63, 88, 60, 69, 71, 53, 127, 59, 73, 69, 65, 57, 60, 109, 60, 59, 62, 88, 56, 66, 58, 74, 93, 66, 51, 73, 63, 75, 64, 63, 57, 73, 56, 78, 64, 54, 73, 69, 87, 67, 59, 88, 63, 65, 59, 85, 70, 54, 75, 66, 56, 55, 74, 58, 60, 63, 76, 71, 72, 60, 62, 54, 63, 67, 77, 66, 70, 67, 113, 62, 59, 55, 85, 75, 80, 56, 85, 64, 62, 74, 67, 73, 62, 84, 66, 84, 50, 50, 81, 76, 49, 57, 55, 66, 81, 55, 63, 72, 58, 58, 53, 56, 67, 67, 70, 61, 62, 53, 85, 60, 75, 58, 63, 84, 54, 58, 57, 77, 56, 90, 67, 62, 60, 70, 84, 56, 74, 61, 66, 55, 70, 70, 59, 61, 72, 72, 59, 54, 53, 61, 56, 46, 83, 74, 93, 66, 55, 67, 76, 72, 52, 56, 82, 66, 47, 63, 67, 84, 66, 42, 60, 81, 63, 56, 69, 121, 70, 72, 69, 55, 53, 50, 60, 57, 53, 55, 62, 75, 76, 59, 67, 78, 72, 65, 62, 81, 57, 66, 67, 62, 70, 66, 55, 71, 58, 54, 71, 61, 78, 66, 63, 65, 51, 68, 66, 76, 76, 57, 85, 54, 122, 52, 74, 60, 57, 59, 64, 63, 59, 60, 59, 56, 61, 68, 58, 73, 83, 72, 63, 64, 50, 52, 54, 61, 72, 84, 61, 87, 54, 78, 78, 74, 87, 66, 66, 50, 55, 60, 53, 60, 66, 63, 95, 70, 63, 63, 72, 80, 70, 58, 63, 63, 70, 64, 86, 63, 67, 49, 61, 71, 98, 44, 63, 61, 83, 67, 78, 96, 74, 88, 58, 62, 54, 59, 71, 75, 56, 57, 59, 55, 53, 62, 83, 53, 53, 69, 67, 63, 57, 64, 101, 63, 65, 62, 50, 72, 50, 61, 55, 73, 74, 63, 79, 47, 53, 79, 64, 61, 64, 62, 85, 56, 71, 74, 60, 66, 57, 52, 55, 64, 46, 64, 71, 59, 60, 59, 62, 56, 64, 55, 79, 58, 61, 80, 111, 78, 68, 76, 46, 70, 58, 92, 60, 59, 57, 76, 67, 64, 59, 111, 76, 67, 58, 64, 67, 59, 84, 42, 52, 73, 61, 56, 87, 55, 61, 66, 57, 59, 58, 50, 87, 74, 55, 59, 81, 67, 49, 66, 49, 93, 65, 69, 51, 56, 64, 64, 53, 58, 66, 55, 55, 62, 70, 59, 67, 63, 63, 70, 55, 64, 59, 71, 76, 78, 70, 60, 67, 64, 54, 69, 59, 67, 61, 63, 58, 60, 66, 60, 81, 76, 66, 53, 59, 53, 57, 56, 65, 65, 81, 87, 63, 52, 50, 71, 54, 64, 103, 64, 63, 46, 49, 64, 63, 81, 68, 70, 56, 64, 76, 80, 86, 69, 46, 65, 44, 66, 72, 63, 62, 51, 64, 68, 53, 65, 67, 57, 69, 58, 53, 47, 55, 62, 57, 58, 79, 65, 69, 73, 57, 81, 68, 67, 65, 58, 60, 64, 48, 69, 51, 59, 59, 63, 87, 51, 65, 58, 64, 74, 64, 71, 41, 58, 62, 91, 52, 57, 49, 57, 64, 81, 59, 49, 78, 60, 64, 61, 73, 60, 68, 58, 80, 63, 82, 57, 87, 64, 92, 85, 79, 59, 56, 63, 60, 71, 61, 72, 71, 62, 69, 55, 57, 55, 73, 58, 85, 61, 65, 53, 51, 83, 73, 89, 67, 49, 64, 69, 67, 64, 57, 77, 64, 53, 55, 63, 56, 54, 49, 64, 62, 76, 54, 80, 63, 99, 62, 77, 51, 51, 43, 67, 66, 71, 62, 54, 59, 59, 65, 70, 53, 59, 63, 57, 62, 62, 59, 58, 63, 69, 53, 75, 65, 45, 64, 67, 57, 96, 59, 62, 51, 71, 68, 51, 55, 49, 72, 59, 58, 53, 74, 81, 77, 56, 91, 51, 57, 65, 63, 61, 56, 66, 64, 69, 64, 58, 83, 93, 54, 48, 59, 57, 61, 54, 59, 52, 66, 86, 71, 40, 69, 95, 70, 77, 64, 63, 60, 97, 58, 51, 60, 65, 59, 65, 49, 58, 46, 48, 63, 55, 48, 56, 53, 66, 50, 57, 64, 54, 74, 68, 59, 61, 44, 49, 63, 71, 76, 38, 66, 56, 106, 77, 57, 60, 86, 102, 67, 57, 58, 50, 77, 57, 89, 52, 85, 53, 65, 58, 59, 62, 53, 57, 67, 78, 119, 55, 57, 53, 81, 59, 62, 91, 85, 90, 58, 38, 56, 58, 69, 58, 75, 81, 50, 60, 65, 74, 58, 67, 47, 55, 84, 68, 66, 58, 63, 62, 67, 48, 59, 83, 109, 59, 60, 54, 52, 62, 56, 64, 60, 66, 72, 66, 59, 61, 58, 70, 105, 56, 60, 65, 70, 63, 51, 62, 55, 78, 65, 81, 53, 70, 69, 72, 64, 63, 47, 88, 56, 75, 71, 47, 92, 53, 63, 107, 59, 60, 67, 72, 68, 63, 85, 58, 63, 65, 52, 66, 57, 75, 86, 57, 50, 97, 62, 73, 60, 60, 53, 60, 62, 62, 117, 57, 67, 61, 56, 52, 74, 85, 76, 59, 63, 73, 57, 53, 67, 56, 66, 73, 57, 49, 67, 49, 61, 52, 62, 48, 86, 88, 64, 61, 77, 64, 50, 65, 90, 70, 48, 70, 83, 97, 64, 86, 61, 61, 59, 59, 58, 67, 61, 84, 108, 86, 61, 60, 71, 57, 66, 55, 58, 64, 66, 60, 63, 96, 69, 67, 59, 63, 69, 75, 77, 66, 59, 67, 64, 75, 60, 51, 57, 59, 50, 67, 63, 79, 63, 60, 64, 64, 65, 56, 56, 64, 61, 60, 132, 57, 58, 48, 60, 83, 45, 79, 75, 96, 46, 55, 62, 60, 55, 71, 78, 59, 65, 59, 52, 107, 62, 75, 60, 68, 83, 85, 65, 54, 54, 57, 45, 53, 60, 67, 52, 94, 55, 49, 74, 56, 55, 61, 82, 79, 97, 83, 71, 78, 56, 49, 64, 47, 52, 56, 59, 66, 57, 64, 54, 61, 70, 65, 58, 53, 62, 79, 57, 67, 61, 80, 71, 63, 54, 66, 60, 68, 65, 50, 65, 44, 56, 85, 57, 103, 67, 83, 76, 59, 90, 65, 63, 76, 59, 74, 42, 74, 54, 70, 53, 53, 57, 63, 56, 61, 88, 88, 57, 95, 64, 70, 73, 67, 65, 99, 62, 65, 43, 94, 90, 68, 79, 68, 73, 60, 63, 63, 72, 53, 62, 77, 47, 47, 62, 64, 47, 71, 71, 64, 65, 59, 66, 112, 88, 54, 71, 49, 91, 55, 93, 55, 64, 65, 53, 71, 72, 83, 70, 62, 50, 87, 63, 61, 66, 90, 78, 59, 77, 86, 96, 60, 72, 68, 61, 67, 74, 52, 74, 55, 48, 59, 61, 55, 62, 53, 89, 73, 67, 74, 54, 55, 76, 55, 60, 69, 54, 57, 70, 75, 52, 57, 67, 76, 56, 87, 68, 62, 89, 60, 94, 68, 57, 53, 60, 83, 57, 59, 54, 116, 63, 71, 64, 72, 65, 63, 58, 64, 60, 95, 44, 53, 69, 55, 60, 63, 61, 64, 73, 49, 108, 57, 68, 97, 64, 67, 80, 70, 60, 78, 55, 61, 58, 62, 43, 82, 45, 54, 77, 80, 96, 68, 65, 82, 72, 67, 52, 110, 61, 68, 74, 56, 74, 68, 62, 62, 56, 56, 68, 71, 55, 67, 52, 70, 55, 59, 86, 64, 76, 59, 47, 63, 46, 49, 54, 66, 73, 68, 50, 54, 55, 63, 47, 64, 68, 68, 71, 57, 66, 67, 50, 68, 135, 60, 54, 69, 54, 83, 63, 67, 58, 51, 52, 74, 56, 80, 67, 62, 64, 62, 67, 56, 61, 81, 70, 34, 60, 47, 64, 73, 72, 75, 74, 69, 72, 71, 58, 70, 80, 77, 77, 61, 91, 60, 49, 63, 73, 89, 71, 64, 85, 49, 76, 48, 67, 64, 58, 70, 56, 79, 84, 68, 73, 80, 71, 90, 63, 87, 47, 61, 68, 68, 64, 89, 51, 60, 50, 66, 70, 64, 52, 52, 61, 53, 66, 73, 63, 71, 54, 67, 59, 69, 57, 67, 65, 66, 84, 63, 65, 50, 64, 59, 63, 85, 58, 64, 63, 84, 72, 64, 47, 67, 68, 73, 80, 58, 52, 72, 61, 57, 52, 65, 96, 52, 51, 64, 56, 57, 46, 55, 98, 74, 69, 71, 45, 65, 82, 57, 69, 65, 66, 75, 52, 80, 59, 78, 93, 99, 102, 76, 44, 81, 58, 50, 63, 69, 59, 64, 77, 59, 68, 54, 71, 68, 76, 59, 65, 67, 55, 70, 56, 53, 62, 73, 64, 65, 59, 92, 65, 79, 67, 77, 67, 61, 68, 88, 68, 68, 66, 68, 44, 68, 66, 76, 51, 62, 75, 77, 71, 63, 58, 60, 64, 74, 57, 96, 76, 46, 56, 57, 67, 51, 79, 76, 60, 49, 80, 84, 59, 51, 54, 52, 55, 80, 102, 47, 60, 56, 58, 60, 62, 93, 53, 56, 58, 50, 93, 69, 87, 61, 62, 60, 58, 73, 57, 63, 87, 75, 63, 60, 56, 59, 76, 56, 56, 47, 66, 56, 57, 80, 65, 71, 56, 54, 72, 70, 54, 78, 70, 68, 51, 53, 56, 60, 46, 58, 74, 76, 83, 63, 58, 47, 72, 69, 56, 60, 59, 81, 56, 98, 65, 59, 78, 58, 77, 57, 63, 66, 63, 57, 79, 52, 86, 62, 49, 74, 113, 52, 74, 58, 64, 53, 71, 63, 53, 57, 60, 68, 73, 76, 56, 58, 62, 68, 52, 73, 76, 63, 85, 85, 57, 54, 67, 67, 58, 60, 63, 66, 74, 74, 61, 55, 64, 71, 54, 70, 57, 58, 62, 86, 53, 55, 57, 59, 53, 73, 70, 67, 68, 57, 69, 65, 69, 55, 67, 54, 52, 57, 55, 50, 62, 72, 59, 66, 49, 49, 57, 76, 61, 68, 75, 64, 60, 64, 60, 50, 87, 51, 60, 63, 69, 91, 65, 49, 48, 59, 59, 60, 54, 92, 75, 58, 52, 63, 84, 66, 72, 83, 52, 52, 66, 59, 53, 74, 56, 136, 45, 59, 67, 69, 80, 56, 64, 53, 53, 113, 74, 57, 64, 76, 54, 71, 59, 62, 47, 57, 54, 73, 78, 67, 63, 49, 60, 65, 65, 56, 78, 46, 103, 72, 47, 111, 63, 67, 76, 51, 58, 54, 54, 61, 63, 59, 72, 60, 70, 56, 45, 61, 56, 59, 85, 58, 84, 96, 67, 62, 79, 72, 60, 49, 85, 61, 60, 61, 70, 52, 72, 55, 76, 60, 64, 85, 68, 61, 44, 51, 65, 60, 69, 77, 59, 43, 81, 66, 60, 50, 92, 54, 69, 68, 54, 63, 78, 55, 68, 70, 108, 75, 45, 74, 64, 65, 61, 69, 72, 62, 102, 61, 77, 57, 63, 54, 56, 74, 54, 68, 59, 55, 74, 72, 61, 67, 72, 64, 42, 79, 51, 79, 72, 46, 90, 73, 71, 62, 63, 72, 55, 42, 59, 58, 49, 64, 47, 67, 58, 68, 66, 66, 63, 63, 56, 68, 59, 67, 59, 76, 84, 61, 66, 65, 49, 58, 92, 66, 61, 86, 52, 40, 66, 77, 78, 76, 66, 65, 58, 68, 71, 60, 51, 62, 99, 77, 65, 40, 68, 52, 64, 82, 58, 63, 73, 77, 63, 50, 74, 83, 58, 92, 71, 62, 54, 68, 57, 51, 74, 60, 73, 56, 81, 75, 78, 61, 50, 100, 65, 54, 50, 89, 65, 65, 51, 66, 81, 57, 79, 64, 72, 81, 77, 57, 69, 76, 63, 61, 60, 73, 66, 64, 50, 127, 68, 68, 35, 75, 68, 49, 61, 62, 75, 62, 41, 62, 51, 54, 66, 62, 61, 72, 63, 66, 63, 74, 78, 79, 86, 58, 52, 63, 94, 53, 73, 79, 53, 51, 63, 61, 54, 70, 63, 60, 48, 58, 60, 55, 51, 71, 51, 73, 63, 64, 83, 58, 73, 63, 116, 62, 65, 76, 71, 66, 62, 77, 70, 37, 62, 70, 80, 65, 52, 60, 62, 64, 55, 62, 52, 84, 59, 67, 85, 47, 64, 81, 46, 62, 47, 78, 64, 49, 83, 84, 55, 101, 64, 79, 71, 52, 57, 56, 59, 76, 67, 53, 83, 79, 62, 59, 81, 53, 64, 53, 51, 65, 63, 68, 62, 64, 77, 78, 64, 72, 61, 70, 60, 80, 91, 53, 66, 61, 84, 72, 63, 51, 64, 58, 43, 63, 74, 52, 71, 73, 51, 54, 91, 65, 72, 62, 55, 66, 73, 71, 101, 33, 75, 72, 72, 81, 75, 57, 61, 108, 77, 72, 87, 66, 85, 89, 60, 61, 74, 73, 61, 67, 57, 73, 59, 54, 56, 68, 37, 56, 67, 67, 107, 65, 48, 57, 66, 43, 55, 56, 67, 67, 79, 84, 84, 60, 62, 102, 83, 86, 54, 74, 80, 89, 70, 62, 60, 60, 53, 83, 51, 49, 84, 69, 73, 58, 62, 65, 51, 66, 79, 53, 68, 65, 77, 60, 78, 72, 59, 39, 93, 54, 63, 59, 71, 75, 49, 90, 56, 70, 63, 64, 60, 48, 70, 68, 76, 63, 67, 100, 87, 68, 51, 71, 82, 56, 62, 54, 57, 107, 54, 56, 75, 70, 77, 75, 74, 94, 63, 62, 74, 52, 87, 61, 63, 65, 65, 65, 62, 62, 62, 49, 60, 85, 57, 51, 58, 67, 76, 51, 52, 76, 66, 52, 50, 74, 74, 53, 57, 46, 70, 82, 60, 62, 63, 47, 70, 71, 73, 49, 59, 51, 62, 64, 57, 91, 73, 62, 82, 71, 51, 130, 53, 52, 49, 67, 43, 71, 80, 78, 67, 45, 67, 76, 101, 66, 60, 77, 77, 69, 65, 57, 66, 91, 53, 66, 64, 59, 47, 76, 69, 47, 54, 69, 78, 61, 78, 81, 61, 50, 59, 77, 63, 63, 81, 60, 138, 60, 64, 55, 74, 65, 47, 61, 90, 62, 47, 53, 46, 76, 101, 61, 66, 54, 48, 60, 58, 91, 60, 58, 68, 68, 72, 80, 100, 76, 92, 51, 75, 54, 59, 70, 57, 59, 64, 71, 74, 72, 75, 51, 90, 52, 64, 67, 87, 67, 100, 69, 62, 44, 59, 45, 85, 73, 68, 88, 63, 66, 61, 85, 74, 68, 61, 37, 70, 29, 60, 68, 53, 56, 68, 86, 53, 65, 83, 65, 59, 61, 57, 53, 73, 71, 61, 63, 52, 72, 68, 59, 55, 54, 50, 47, 66, 58, 51, 66, 63, 58, 64, 68, 77, 69, 72, 51, 63, 100, 65, 79, 71, 75, 64, 63, 56, 39, 68, 80, 68, 62, 79, 49, 52, 66, 56, 52, 70, 68, 62, 34, 83, 75, 93, 63, 53, 47, 84, 75, 79, 63, 53, 57, 78, 86, 42, 52, 61, 69, 55, 48, 61, 70, 59, 66, 69, 69, 59, 58, 65, 59, 47, 75, 60, 82, 90, 105, 65, 62, 75, 97, 48, 50, 76, 62, 71, 64, 80, 55, 67, 57, 63, 86, 68, 85, 61, 76, 51, 76, 92, 63, 73, 72, 64, 54, 66, 52, 62, 60, 67, 55, 59, 76, 65, 81, 68, 54, 44, 67, 81, 79, 59, 54, 76, 64, 65, 66, 74, 85, 82, 74, 50, 60, 75, 72, 57, 64, 65, 40, 78, 62, 65, 54, 70, 82, 63, 44, 58, 46, 70, 50, 59, 53, 76, 64, 64, 56, 81, 59, 63, 63, 90, 59, 79, 44, 56, 56, 80, 83, 74, 65, 56, 47, 61, 53, 72, 54, 60, 52, 50, 55, 65, 54, 54, 66, 37, 72, 88, 85, 92, 73, 56, 61, 59, 61, 63, 65, 68, 50, 98, 74, 72, 67, 59, 80, 85, 70, 59, 82, 111, 58, 58, 75, 70, 53, 45, 52, 50, 70, 50, 78, 58, 80, 68, 72, 48, 68, 64, 61, 48, 80, 66, 71, 106, 58, 112, 67, 75, 73, 70, 58, 72, 56, 78, 68, 48, 77, 67, 77, 66, 74, 56, 59, 73, 58, 86, 74, 67, 55, 55, 99, 56, 76, 74, 79, 79, 61, 55, 77, 69, 66, 56, 71, 78, 79, 54, 68, 55, 64, 74, 69, 63, 113, 60, 90, 71, 53, 57, 62, 57, 61, 68, 62, 69, 93, 61, 64, 57, 104, 77, 63, 75, 61, 95, 85, 72, 55, 63, 53, 69, 70, 49, 63, 85, 87, 61, 55, 72, 84, 68, 54, 45, 89, 56, 82, 87, 82, 58, 70, 59, 54, 61, 77, 51, 61, 64, 67, 78, 59, 72, 94, 71, 63, 69, 85, 68, 64, 49, 72, 69, 57, 69, 58, 70, 73, 74, 56, 66, 67, 76, 63, 55, 66, 65, 69, 62, 61, 67, 57, 58, 55, 51, 54, 55, 63, 85, 60, 55, 54, 56, 61, 54, 58, 71, 69, 56, 59, 81, 48, 70, 56, 58, 54, 94, 62, 51, 57, 89, 73, 57, 62, 77, 64, 50, 59, 65, 97, 56, 63, 92, 53, 58, 63, 78, 60, 65, 48, 50, 65, 71, 72, 55, 85, 63, 81, 73, 61, 67, 79, 83, 66, 87, 87, 41, 64, 60, 79, 86, 81, 66, 55, 71, 81, 51, 58, 59, 64, 59, 62, 84, 61, 55, 66, 56, 65, 66, 65, 103, 54, 52, 68, 67, 104, 59, 56, 57, 60, 55, 57, 59, 69, 68, 60, 48, 61, 70, 51, 59, 95, 79, 59, 70, 61, 65, 96, 69, 58, 66, 54, 57, 67, 112, 53, 59, 59, 63, 75, 102, 54, 75, 56, 65, 63, 80, 72, 51, 69, 60, 62, 63, 76, 49, 68, 50, 64, 61, 61, 80, 78, 98, 47, 82, 52, 55, 61, 56, 51, 78, 51, 72, 61, 71, 64, 56, 68, 59, 81, 91, 70, 113, 46, 59, 59, 51, 77, 97, 69, 67, 50, 82, 71, 75, 57, 53, 53, 76, 62, 70, 54, 64, 68, 60, 63, 58, 55, 61, 113, 63, 68, 51, 70, 59, 67, 52, 70, 74, 56, 56, 83, 72, 54, 45, 66, 73, 60, 48, 75, 55, 72, 94, 58, 100, 55, 53, 54, 65, 62, 53, 62, 57, 71, 63, 65, 61, 86, 74, 60, 64, 65, 60, 61, 60, 56, 77, 60, 61, 60, 50, 63, 63, 60, 80, 58, 61, 59, 54, 74, 65, 69, 116, 59, 67, 61, 97, 60, 62, 51, 72, 75, 58, 61, 73, 66, 82, 58, 71, 60, 52, 82, 58, 57, 53, 59, 74, 49, 68, 64, 55, 109, 54, 78, 82, 63, 58, 88, 69, 67, 85, 75, 51, 87, 80, 49, 69, 62, 65, 58, 55, 66, 69, 55, 63, 63, 70, 52, 89, 66, 59, 90, 56, 58, 65, 53, 69, 54, 76, 49, 59, 51, 67, 52, 61, 57, 91, 66, 49, 55, 71, 59, 151, 130, 51, 64, 45, 60, 69, 57, 65, 67, 50, 71, 59, 62, 55, 61, 67, 69, 62, 95, 62, 62, 56, 85, 85, 63, 89, 74, 52, 62, 65, 49, 69, 57, 60, 66, 72, 89, 57, 61, 57, 72, 76, 47, 55, 68, 45, 58, 65, 59, 72, 59, 90, 82, 56, 70, 77, 107, 53, 68, 116, 63, 99, 60, 83, 76, 64, 77, 78, 106, 58, 59, 78, 73, 59, 51, 51, 77, 72, 71, 104, 65, 66, 50, 70, 54, 72, 63, 115, 81, 66, 67, 65, 75, 66, 69, 54, 66, 66, 94, 88, 50, 87, 55, 60, 53, 67, 77, 55, 62, 65, 79, 62, 62, 56, 62, 49, 85, 68, 66, 65, 67, 101, 68, 64, 67, 67, 82, 68, 62, 60, 74, 66, 66, 62, 64, 64, 58, 78, 57, 70, 61, 56, 58, 58, 80, 74, 54, 56, 76, 67, 60, 54, 77, 56, 68, 84, 55, 64, 69, 70, 116, 61, 78, 64, 102, 65, 82, 65, 64, 49, 53, 78, 68, 57, 52, 68, 80, 60, 116, 58, 76, 65, 58, 52, 70, 63, 47, 61, 56, 78, 74, 54, 60, 62, 69, 62, 55, 79, 88, 60, 74, 58, 69, 74, 65, 59, 60, 62, 42, 87, 50, 64, 64, 78, 70, 60, 75, 69, 87, 67, 45, 80, 60, 78, 66, 53, 67, 50, 76, 58, 84, 66, 61, 60, 72, 64, 72, 64, 64, 64, 73, 57, 71, 58, 65, 75, 68, 65, 49, 89, 56, 72, 59, 74, 67, 65, 67, 61, 50, 98, 68, 64, 54, 47, 63, 60, 61, 43, 109, 82, 60, 103, 62, 84, 59, 56, 77, 76, 56, 81, 54, 106, 82, 59, 88, 57, 55, 69, 78, 57, 71, 54, 65, 84, 59, 57, 65, 63, 57, 58, 59, 76, 53, 61, 68, 59, 79, 78, 48, 94, 57, 52, 95, 58, 71, 57, 75, 83, 68, 54, 70, 68, 65, 53, 67, 63, 100, 62, 72, 78, 62, 59, 62, 64, 54, 61, 57, 81, 60, 63, 51, 54, 87, 81, 66, 65, 68, 65, 59, 59, 46, 78, 50, 57, 82, 50, 86, 97, 61, 56, 96, 78, 56, 75, 39, 58, 63, 63, 59, 50, 50, 95, 48, 63, 68, 87, 56, 70, 73, 63, 57, 60, 53, 84, 51, 57, 61, 55, 59, 72, 81, 61, 61, 62, 54, 66, 56, 70, 56, 64, 58, 67, 66, 67, 69, 52, 66, 51, 75, 73, 62, 63, 94, 44, 59, 59, 60, 64, 92, 60, 66, 62, 67, 60, 80, 62, 89, 72, 63, 56, 54, 59, 74, 109, 69, 56, 58, 78, 61, 62, 54, 51, 58, 66, 78, 87, 67, 63, 46, 54, 69, 68, 66, 66, 68, 58, 60, 48, 64, 90, 62, 58, 54, 66, 82, 75, 94, 66, 41, 71, 63, 62, 103, 51, 56, 72, 65, 74, 67, 63, 80, 80, 110, 62, 84, 74, 47, 66, 55, 70, 52, 63, 56, 54, 64, 71, 56, 62, 59, 66, 66, 74, 99, 66, 57, 127, 64, 57, 81, 56, 52, 67, 67, 69, 50, 77, 68, 69, 53, 66, 65, 65, 57, 98, 61, 53, 71, 92, 78, 93, 92, 57, 51, 65, 72, 57, 49, 55, 45, 61, 76, 59, 55, 49, 69, 61, 87, 112, 71, 47, 68, 60, 58, 56, 72, 56, 60, 83, 55, 66, 65, 64, 65, 55, 59, 63, 63, 52, 70, 56, 68, 54, 60, 59, 65, 72, 75, 77, 62, 80, 75, 73, 50, 60, 56, 86, 55, 62, 56, 61, 63, 62, 59, 63, 64, 60, 60, 59, 72, 52, 76, 94, 64, 66, 69, 61, 68, 55, 55, 69, 59, 54, 89, 75, 50, 67, 64, 70, 57, 79, 66, 57, 61, 69, 59, 69, 97, 62, 64, 86, 60, 62, 52, 63, 51, 55, 66, 85, 80, 91, 49, 39, 53, 80, 99, 76, 70, 53, 87, 69, 62, 50, 74, 68, 72, 53, 68, 69, 65, 72, 72, 50, 51, 74, 48, 55, 61, 52, 63, 71, 61, 62, 70, 54, 56, 81, 57, 51, 43, 55, 61, 79, 50, 47, 61, 51, 69, 55, 56, 53, 73, 56, 76, 57, 95, 85, 57, 90, 63, 66, 60, 85, 73, 83, 84, 69, 58, 75, 42, 65, 64, 105, 90, 65, 60, 58, 80, 65, 64, 60, 55, 63, 74, 84, 64, 77, 63, 85, 53, 58, 67, 68, 63, 96, 89, 97, 78, 97, 90, 78, 48, 66, 55, 66, 63, 70, 90, 77, 68, 64, 70, 57, 44, 53, 72, 57, 69, 61, 74, 74, 63, 66, 60, 74, 61, 58, 46, 51, 48, 79, 58, 110, 65, 52, 74, 57, 59, 77, 57, 55, 61, 69, 48, 59, 63, 62, 74, 74, 69, 62, 67, 58, 72, 54, 56, 62, 60, 60, 93, 57, 62, 57, 80, 63, 65, 58, 67, 61, 45, 69, 68, 94, 57, 59, 122, 71, 68, 68, 83, 56, 83, 101, 69, 62, 90, 59, 64, 69, 66, 65, 54, 71, 62, 74, 67, 70, 66, 64, 74, 42, 59, 74, 64, 46, 52, 64, 71, 71, 64, 96, 66, 60, 56, 44, 67, 79, 54, 68, 87, 48, 59, 66, 58, 51, 72, 54, 61, 69, 74, 67, 65, 80, 55, 55, 47, 75, 60, 54, 47, 61, 107, 61, 69, 48, 73, 78, 90, 72, 44, 78, 58, 82, 72, 41, 65, 54, 88, 85, 68, 74, 64, 58, 50, 61, 103, 48, 60, 63, 65, 112, 44, 59, 76, 57, 60, 58, 60, 53, 83, 80, 51, 50, 56, 55, 64, 69, 47, 79, 115, 79, 64, 51, 68, 58, 57, 113, 61, 54, 63, 77, 68, 61, 83, 101, 53, 57, 79, 92, 58, 68, 62, 90, 51, 60, 69, 64, 87, 52, 67, 61, 71, 65, 77, 67, 67, 63, 47, 53, 68, 70, 54, 71, 93, 47, 49, 73, 60, 53, 71, 76, 51, 67, 62, 74, 96, 60, 60, 54, 51, 44, 54, 66, 52, 64, 71, 69, 79, 72, 92, 75, 64, 52, 87, 65, 73, 84, 68, 65, 81, 83, 71, 54, 65, 67, 53, 62, 57, 66, 72, 85, 50, 71, 60, 70, 79, 77, 74, 56, 61, 57, 59, 90, 67, 75, 48, 76, 45, 46, 52, 59, 110, 91, 52, 68, 90, 48, 88, 71, 59, 74, 96, 65, 57, 59, 62, 70, 56, 56, 63, 48, 83, 52, 68, 65, 79, 70, 60, 62, 64, 40, 53, 66, 58, 80, 60, 58, 65, 50, 75, 115, 58, 55, 72, 72, 67, 88, 74, 103, 51, 57, 75, 71, 78, 70, 85, 48, 67, 52, 40, 58, 60, 61, 58, 62, 58, 87, 45, 78, 58, 51, 56, 76, 48, 71, 84, 69, 66, 62, 84, 62, 64, 90, 45, 83, 74, 69, 62, 77, 66, 60, 82, 65, 50, 65, 78, 62, 52, 49, 48, 51, 100, 66, 82, 64, 84, 52, 62, 57, 56, 56, 60, 52, 48, 57, 65, 68, 57, 70, 50, 57, 58, 54, 70, 58, 52, 90, 64, 54, 37, 81, 74, 65, 61, 55, 58, 44, 39, 66, 58, 73, 52, 52, 100, 83, 72, 63, 74, 45, 67, 69, 68, 61, 55, 69, 58, 82, 68, 49, 69, 65, 40, 79, 126, 67, 82, 73, 58, 73, 62, 65, 72, 57, 58, 78, 58, 56, 71, 62, 60, 75, 49, 57, 79, 49, 76, 61, 69, 52, 57, 59, 84, 69, 58, 69, 56, 67, 55, 80, 66, 72, 53, 75, 58, 74, 52, 58, 64, 98, 78, 50, 64, 90, 59, 58, 68, 66, 61, 51, 62, 49, 56, 63, 67, 58, 52, 59, 47, 39, 74, 66, 47, 56, 67, 53, 70, 67, 57, 57, 52, 61, 90, 64, 49, 54, 41, 57, 92, 90, 67, 47, 51, 77, 71, 60, 67, 99, 61, 81, 68, 65, 79, 58, 50, 76, 50, 56, 79, 72, 76, 69, 88, 76, 85, 54, 53, 78, 53, 87, 59, 72, 81, 60, 41, 57, 60, 87, 71, 56, 76, 71, 64, 52, 91, 51, 52, 60, 62, 61, 62, 59, 76, 48, 69, 70, 66, 64, 58, 50, 64, 83, 117, 56, 89, 61, 58, 47, 79, 52, 77, 72, 92, 55, 85, 68, 56, 49, 71, 63, 67, 72, 63, 56, 59, 56, 68, 66, 73, 55, 61, 63, 84, 70, 52, 57, 73, 84, 76, 51, 50, 64, 70, 60, 78, 76, 67, 54, 73, 49, 47, 60, 61, 50, 71, 59, 82, 59, 60, 75, 63, 70, 45, 53, 69, 57, 83, 57, 60, 73, 84, 55, 67, 94, 49, 58, 77, 54, 85, 70, 71, 55, 67, 65, 51, 63, 53, 58, 79, 62, 68, 60, 57, 64, 59, 54, 76, 56, 60, 55, 75, 59, 57, 98, 54, 55, 38, 70, 66, 78, 112, 72, 63, 49, 72, 59, 81, 86, 53, 76, 79, 63, 49, 68, 70, 65, 68, 64, 72, 84, 51, 67, 63, 84, 69, 61, 57, 75, 48, 56, 68, 60, 64, 69, 56, 60, 80, 65, 83, 63, 45, 67, 65, 66, 54, 52, 106, 66, 58, 74, 43, 78, 51, 60, 67, 48, 61, 57, 59, 53, 61, 48, 56, 86, 67, 59, 58, 68, 41, 74, 67, 67, 42, 57, 63, 52, 90, 61, 52, 96, 74, 64, 68, 56, 62, 69, 76, 56, 65, 108, 65, 65, 48, 90, 47, 65, 69, 67, 42, 49, 81, 55, 63, 56, 64, 63, 51, 72, 58, 56, 65, 110, 89, 81, 65, 119, 80, 77, 59, 54, 86, 60, 59, 54, 93, 81, 44, 66, 37, 62, 58, 51, 67, 106, 54, 95, 98, 50, 63, 55, 50, 56, 63, 73, 69, 87, 73, 65, 45, 70, 54, 47, 65, 61, 75, 52, 60, 64, 55, 57, 50, 51, 70, 50, 54, 58, 81, 23, 60, 53, 55, 61, 63, 59, 76, 85, 85, 63, 57, 73, 71, 67, 54, 61, 68, 56, 78, 62, 53, 60, 59, 28, 63, 65, 73, 66, 60, 75, 57, 80, 49, 59, 56, 72, 63, 70, 64, 74, 67, 70, 62, 69, 64, 52, 71, 55, 75, 59, 67, 58, 65, 61, 54, 63, 68, 70, 83, 67, 55, 80, 43, 62, 50, 59, 80, 55, 45, 53, 63, 51, 56, 61, 66, 68, 53, 63, 40, 59, 62, 85, 56, 65, 56, 83, 76, 90, 67, 80, 56, 106, 47, 59, 67, 68, 47, 52, 61, 47, 63, 59, 60, 70, 54, 61, 67, 82, 54, 57, 75, 64, 55, 64, 109, 72, 66, 60, 62, 66, 57, 77, 68, 53, 60, 62, 83, 73, 83, 70, 83, 73, 46, 64, 57, 45, 89, 77, 97, 54, 86, 78, 66, 65, 79, 64, 76, 69, 56, 103, 74, 75, 67, 63, 66, 76, 69, 54, 68, 69, 60, 80, 65, 77, 61, 66, 68, 59, 71, 108, 53, 76, 52, 79, 62, 66, 61, 86, 52, 59, 50, 66, 57, 60, 77, 71, 67, 51, 61, 58, 114, 69, 94, 60, 66, 54, 52, 60, 47, 62, 67, 63, 60, 75, 56, 69, 65, 87, 53, 92, 54, 58, 90, 59, 58, 61, 63, 66, 65, 67, 54, 78, 52, 60, 77, 80, 56, 77, 66, 47, 64, 54, 43, 58, 101, 65, 79, 73, 43, 54, 62, 66, 52, 58, 58, 66, 65, 99, 54, 54, 69, 77, 59, 77, 58, 60, 76, 66, 71, 60, 43, 65, 64, 87, 51, 87, 61, 77, 57, 87, 43, 62, 61, 71, 61, 58, 53, 62, 61, 63, 71, 40, 60, 76, 68, 55, 49, 54, 49, 71, 59, 61, 90, 53, 60, 102, 67, 84, 80, 88, 60, 72, 93, 62, 76, 61, 88, 58, 64, 48, 97, 65, 64, 98, 57, 56, 64, 52, 78, 73, 68, 58, 47, 86, 65, 72, 67, 85, 86, 75, 81, 53, 86, 67, 56, 63, 72, 61, 68, 58, 51, 69, 66, 64, 61, 56, 65, 76, 79, 64, 82, 60, 74, 83, 66, 57, 75, 81, 55, 59, 58, 59, 66, 70, 69, 51, 55, 76, 64, 78, 58, 73, 63, 63, 68, 60, 74, 77, 59, 50, 60, 75, 73, 86, 41, 61, 53, 69, 49, 54, 95, 98, 55, 54, 73, 72, 70, 56, 69, 61, 52, 57, 67, 72, 71, 63, 63, 70, 67, 73, 61, 73, 51, 61, 62, 66, 68, 65, 58, 77, 68, 72, 61, 75, 70, 64, 59, 80, 47, 56, 43, 64, 47, 60, 53, 51, 55, 66, 59, 74, 88, 74, 83, 69, 67, 57, 43, 61, 73, 54, 55, 60, 68, 72, 61, 59, 63, 58, 72, 67, 66, 56, 68, 55, 53, 47, 61, 87, 71, 50, 70, 64, 60, 72, 94, 56, 70, 62, 66, 52, 65, 81, 55, 65, 53, 61, 58, 64, 71, 62, 63, 66, 66, 81, 68, 55, 63, 68, 69, 59, 63, 58, 72, 73, 66, 85, 68, 69, 55, 80, 105, 77, 54, 54, 54, 59, 59, 90, 56, 76, 70, 72, 68, 57, 63, 96, 54, 83, 55, 86, 58, 56, 67, 70, 68, 70, 82, 62, 88, 52, 65, 86, 60, 53, 73, 70, 84, 65, 68, 49, 57, 53, 61, 54, 69, 65, 59, 56, 71, 51, 54, 65, 72, 62, 54, 81, 86, 71, 69, 87, 69, 68, 61, 51, 94, 85, 55, 91, 46, 73, 61, 59, 73, 71, 81, 63, 76, 62, 51, 50, 73, 60, 50, 89, 76, 66, 67, 79, 79, 69, 59, 68, 101, 66, 66, 62, 60, 53, 108, 68, 56, 64, 59, 59, 72, 72, 54, 68, 62, 65, 49, 76, 58, 53, 93, 64, 61, 54, 44, 70, 59, 62, 74, 71, 67, 58, 58, 69, 64, 53, 50, 65, 53, 64, 57, 131, 96, 59, 48, 56, 66, 74, 62, 65, 76, 82, 62, 58, 70, 61, 51, 67, 59, 56, 67, 66, 61, 66, 70, 50, 61, 79, 59, 56, 74, 47, 61, 75, 70, 64, 69, 74, 71, 44, 49, 65, 90, 52, 54, 72, 67, 73, 71, 73, 45, 131, 94, 68, 66, 61, 64, 51, 65, 66, 110, 63, 74, 57, 90, 37, 66, 66, 46, 78, 73, 72, 76, 65, 108, 73, 80, 81, 64, 74, 51, 70, 71, 54, 51, 104, 74, 54, 60, 73, 66, 59, 45, 65, 57, 57, 63, 139, 58, 46, 44, 68, 87, 69, 140, 69, 54, 66, 62, 65, 72, 50, 59, 61, 53, 66, 74, 77, 63, 60, 59, 71, 46, 66, 54, 54, 64, 66, 59, 65, 79, 72, 84, 64, 66, 78, 71, 71, 66, 69, 68, 75, 94, 57, 70, 52, 74, 47, 65, 56, 59, 54, 67, 46, 64, 61, 49, 56, 81, 62, 66, 61, 74, 87, 68, 66, 55, 64, 51, 58, 70, 79, 80, 59, 59, 71, 58, 54, 66, 59, 62, 66, 74, 60, 59, 72, 51, 70, 68, 55, 53, 61, 72, 67, 55, 64, 65, 61, 41, 68, 56, 60, 62, 69, 77, 76, 63, 79, 60, 62, 70, 70, 56, 70, 49, 66, 98, 68, 74, 82, 51, 71, 76, 60, 58, 76, 54, 67, 57, 63, 59, 87, 58, 57, 60, 52, 75, 62, 70, 54, 69, 51, 59, 67, 71, 67, 76, 87, 69, 71, 59, 76, 62, 61, 95, 85, 53, 65, 67, 64, 55, 54, 55, 55, 69, 57, 55, 68, 79, 52, 62, 56, 81, 59, 50, 60, 75, 83, 62, 90, 49, 58, 64, 100, 78, 65, 53, 56, 65, 69, 91, 55, 68, 51, 52, 62, 63, 50, 56, 66, 68, 80, 68, 64, 70, 43, 66, 85, 80, 65, 51, 50, 61, 56, 63, 68, 89, 49, 69, 56, 59, 52, 59, 91, 125, 64, 62, 71, 67, 60, 62, 53, 81, 47, 60, 62, 84, 58, 75, 63, 57, 67, 89, 51, 94, 66, 72, 68, 64, 49, 74, 88, 76, 58, 82, 59, 69, 64, 67, 66, 51, 59, 65, 61, 84, 61, 68, 67, 57, 66, 62, 58, 51, 62, 62, 69, 46, 56, 71, 59, 58, 80, 50, 69, 75, 66, 78, 57, 91, 70, 64, 57, 55, 55, 54, 42, 68, 58, 58, 61, 59, 65, 48, 56, 93, 59, 64, 67, 70, 82, 56, 47, 53, 60, 47, 59, 63, 68, 68, 68, 57, 62, 59, 56, 78, 54, 60, 46, 77, 78, 77, 52, 80, 57, 73, 65, 70, 72, 54, 51, 100, 54, 66, 57, 64, 63, 72, 70, 61, 70, 62, 60, 59, 67, 72, 92, 48, 49, 60, 58, 58, 90, 75, 70, 60, 67, 42, 76, 45, 62, 56, 90, 68, 79, 59, 53, 64, 62, 63, 39, 49, 53, 57, 59, 72, 60, 84, 70, 66, 42, 47, 81, 61, 73, 78, 56, 59, 57, 82, 71, 63, 43, 71, 64, 76, 45, 71, 64, 59, 61, 54, 74, 76, 59, 64, 49, 94, 68, 83, 62, 51, 52, 58, 49, 63, 51, 66, 53, 60, 78, 69, 57, 64, 68, 59, 59, 55, 61, 58, 50, 67, 82, 55, 75, 62, 78, 55, 55, 71, 96, 55, 66, 60, 58, 74, 55, 60, 62, 51, 56, 65, 47, 69, 70, 42, 58, 77, 71, 56, 80, 61, 50, 70, 75, 61, 75, 86, 59, 62, 70, 65, 59, 67, 65, 63, 68, 79, 65, 46, 82, 69, 59, 63, 54, 79, 55, 58, 69, 69, 76, 55, 62, 61, 83, 53, 58, 83, 54, 79, 67, 75, 55, 69, 61, 91, 60, 61, 57, 71, 39, 55, 65, 72, 78, 55, 68, 50, 108, 59, 54, 65, 94, 72, 75, 55, 54, 68, 59, 54, 62, 82, 68, 62, 66, 60, 76, 63, 51, 64, 63, 58, 75, 68, 50, 66, 54, 62, 72, 75, 64, 90, 65, 77, 90, 75, 54, 37, 91, 51, 64, 51, 60, 78, 56, 69, 60, 83, 62, 68, 52, 53, 61, 75, 74, 69, 77, 55, 69, 72, 76, 61, 65, 62, 59, 65, 48, 56, 75, 47, 87, 57, 74, 65, 70, 48, 64, 62, 85, 82, 73, 63, 56, 50, 82, 69, 67, 63, 55, 89, 75, 63, 107, 64, 61, 67, 84, 76, 57, 56, 78, 87, 63, 70, 64, 63, 58, 57, 74, 63, 82, 55, 67, 48, 70, 60, 82, 51, 60, 66, 70, 70, 63, 82, 65, 83, 91, 83, 66, 54, 70, 53, 63, 46, 88, 54, 63, 63, 70, 52, 69, 58, 152, 68, 65, 58, 46, 86, 55, 50, 68, 84, 49, 74, 63, 57, 59, 87, 73, 74, 66, 67, 86, 63, 61, 61, 67, 56, 69, 63, 61, 53, 73, 66, 69, 76, 47, 55, 64, 56, 38, 48, 63, 64, 72, 64, 53, 73, 55, 55, 51, 83, 64, 51, 56, 68, 63, 56, 79, 68, 56, 58, 70, 72, 70, 82, 71, 58, 59, 60, 74, 63, 63, 81, 68, 58, 39, 58, 73, 56, 50, 56, 46, 67, 86, 93, 65, 57, 89, 58, 40, 70, 96, 46, 82, 74, 80, 74, 50, 71, 68, 103, 60, 61, 59, 58, 49, 54, 73, 105, 69, 78, 66, 55, 86, 65, 61, 47, 71, 57, 110, 86, 62, 68, 64, 65, 63, 60, 64, 77, 50, 66, 63, 69, 63, 60, 63, 76, 83, 59, 77, 47, 70, 62, 68, 76, 81, 74, 48, 82, 67, 63, 68, 84, 67, 56, 65, 46, 62, 82, 80, 74, 54, 58, 71, 60, 57, 78, 50, 71, 56, 68, 66, 61, 69, 54, 57, 76, 70, 58, 49, 57, 56, 66, 64, 48, 55, 64, 81, 62, 102, 54, 66, 86, 77, 80, 68, 69, 66, 61, 44, 58, 45, 64, 57, 103, 61, 95, 46, 74, 50, 57, 56, 73, 61, 61, 47, 78, 53, 76, 45, 67, 64, 66, 61, 67, 63, 95, 78, 46, 55, 75, 47, 45, 65, 55, 62, 51, 60, 57, 54, 59, 58, 75, 63, 66, 49, 77, 60, 83, 58, 52, 80, 40, 58, 56, 90, 97, 63, 60, 68, 58, 54, 55, 58, 51, 65, 66, 58, 72, 78, 57, 52, 57, 63, 61, 61, 70, 65, 84, 66, 63, 75, 78, 70, 86, 63, 65, 69, 61, 64, 56, 65, 82, 60, 55, 50, 60, 56, 48, 53, 77, 83, 70, 85, 63, 109, 59, 81, 73, 68, 75, 75, 50, 76, 122, 51, 62, 65, 60, 71, 69, 80, 90, 50, 61, 88, 68, 48, 79, 48, 108, 58, 53, 66, 54, 64, 84, 68, 74, 134, 61, 64, 71, 54, 62, 60, 73, 83, 72, 57, 81, 134, 72, 61, 50, 61, 64, 73, 143, 62, 43, 71, 53, 56, 94, 57, 63, 77, 54, 52, 68, 74, 57, 69, 50, 46, 61, 71, 58, 80, 69, 63, 63, 69, 66, 65, 79, 54, 54, 74, 83, 89, 59, 62, 59, 72, 58, 53, 53, 82, 65, 54, 61, 74, 50, 66, 67, 71, 71, 63, 67, 42, 113, 59, 64, 108, 55, 63, 53, 48, 63, 55, 70, 55, 94, 63, 46, 54, 54, 82, 79, 55, 83, 61, 73, 77, 53, 84, 71, 64, 66, 52, 56, 60, 65, 79, 56, 46, 62, 57, 85, 49, 57, 61, 57, 59, 71, 84, 67, 69, 63, 60, 62, 69, 63, 72, 57, 66, 64, 70, 116, 52, 65, 53, 44, 60, 52, 91, 75, 91, 58, 75, 59, 70, 58, 93, 69, 59, 51, 67, 56, 52, 69, 62, 56, 50, 76, 66, 89, 50, 73, 59, 64, 57, 73, 79, 56, 45, 90, 80, 56, 68, 64, 63, 72, 77, 52, 57, 76, 57, 56, 67, 64, 71, 71, 69, 63, 66, 57, 71, 50, 103, 61, 65, 105, 58, 62, 120, 54, 52, 73, 69, 65, 65, 72, 58, 76, 74, 65, 52, 62, 54, 72, 78, 58, 67, 62, 61, 56, 86, 58, 107, 96, 53, 55, 92, 68, 74, 77, 74, 58, 79, 58, 64, 82, 63, 54, 69, 91, 72, 56, 47, 51, 73, 64, 59, 55, 78, 61, 83, 52, 46, 60, 70, 60, 51, 73, 62, 50, 88, 49, 69, 67, 67, 67, 73, 63, 59, 67, 65, 44, 57, 78, 61, 63, 56, 77, 47, 63, 62, 47, 80, 73, 60, 78, 69, 62, 75, 76, 67, 59, 55, 80, 72, 62, 95, 64, 65, 67, 72, 55, 83, 73, 61, 75, 64, 78, 61, 67, 61, 64, 57, 74, 48, 68, 69, 69, 52, 61, 80, 44, 68, 55, 86, 77, 74, 62, 56, 67, 69, 80, 71, 83, 61, 62, 76, 67, 63, 63, 60, 66, 60, 60, 60, 91, 76, 61, 61, 55, 59, 58, 70, 74, 65, 75, 106, 62, 94, 61, 60, 69, 65, 55, 60, 58, 52, 59, 47, 95, 65, 69, 62, 107, 70, 62, 38, 62, 55, 72, 49, 56, 70, 57, 58, 73, 86, 63, 58, 72, 54, 54, 65, 77, 56, 52, 65, 53, 70, 74, 58, 55, 53, 72, 84, 48, 62, 57, 60, 77, 60, 60, 65, 61, 59, 53, 59, 83, 59, 69, 84, 94, 62, 83, 58, 64, 61, 85, 55, 56, 59, 92, 59, 69, 57, 55, 89, 64, 57, 55, 94, 62, 63, 55, 52, 102, 65, 69, 47, 76, 63, 56, 80, 58, 56, 56, 101, 65, 55, 61, 60, 63, 62, 84, 84, 71, 58, 53, 56, 82, 87, 60, 93, 63, 66, 48, 81, 54, 70, 69, 65, 101, 90, 54, 69, 88, 85, 91, 48, 50, 47, 56, 58, 49, 72, 76, 60, 51, 70, 57, 70, 71, 70, 76, 62, 65, 71, 73, 72, 51, 56, 54, 74, 63, 69, 64, 64, 67, 86, 74, 57, 55, 55, 76, 79, 50, 60, 74, 53, 73, 71, 70, 53, 60, 72, 82, 81, 79, 64, 57, 58, 67, 109, 86, 54, 77, 71, 58, 48, 68, 51, 67, 65, 58, 51, 58, 78, 61, 88, 58, 65, 74, 71, 75, 54, 73, 117, 78, 55, 67, 48, 75, 59, 55, 65, 71, 76, 61, 41, 59, 57, 105, 43, 66, 61, 63, 67, 58, 57, 76, 70, 72, 89, 73, 65, 66, 55, 75, 53, 75, 62, 53, 69, 58, 72, 86, 64, 58, 99, 53, 67, 76, 93, 58, 44, 56, 48, 57, 54, 71, 54, 82, 55, 68, 64, 64, 64, 78, 100, 49, 62, 70, 58, 140, 73, 59, 102, 70, 73, 55, 66, 61, 92, 55, 59, 77, 65, 56, 53, 51, 65, 71, 65, 49, 57, 77, 66, 97, 58, 59, 58, 72, 70, 59, 72, 81, 81, 77, 54, 74, 59, 61, 58, 66, 58, 48, 86, 58, 50, 52, 67, 68, 61, 61, 63, 67, 96, 63, 56, 60, 70, 59, 66, 55, 74, 59, 50, 63, 111, 54, 69, 81, 61, 75, 89, 65, 48, 57, 59, 58, 57, 80, 54, 62, 76, 65, 58, 59, 54, 71, 58, 55, 67, 62, 71, 70, 59, 58, 71, 57, 64, 52, 58, 60, 57, 76, 65, 75, 62, 69, 80, 50, 83, 55, 46, 57, 66, 73, 62, 65, 68, 54, 61, 96, 68, 61, 62, 54, 55, 49, 70, 74, 57, 66, 86, 83, 61, 75, 63, 60, 61, 45, 52, 50, 68, 74, 98, 89, 65, 71, 94, 67, 60, 74, 62, 69, 59, 64, 78, 54, 59, 80, 63, 81, 56, 79, 57, 56, 61, 65, 76, 61, 64, 61, 69, 74, 55, 55, 75, 71, 58, 62, 62, 50, 52, 77, 61, 51, 67, 62, 59, 56, 58, 55, 76, 68, 70, 60, 62, 63, 51, 42, 55, 43, 58, 58, 76, 68, 67, 51, 63, 55, 75, 89, 49, 60, 78, 54, 55, 81, 65, 71, 73, 77, 54, 56, 49, 57, 63, 49, 85, 109, 101, 84, 83, 76, 75, 61, 57, 99, 60, 57, 65, 58, 62, 55, 71, 64, 70, 68, 59, 68, 52, 72, 58, 57, 57, 72, 78, 92, 66, 63, 74, 103, 56, 83, 61, 83, 60, 47, 58, 57, 77, 74, 66, 56, 63, 62, 68, 55, 88, 68, 51, 73, 61, 54, 72, 67, 61, 52, 67, 66, 50, 52, 70, 48, 56, 64, 77, 53, 60, 72, 96, 75, 54, 66, 65, 47, 55, 72, 57, 77, 57, 61, 52, 75, 68, 62, 83, 52, 73, 76, 57, 87, 63, 91, 62, 73, 71, 66, 53, 42, 65, 62, 70, 61, 62, 66, 58, 71, 54, 53, 76, 64, 60, 62, 68, 59, 53, 83, 51, 69, 79, 113, 51, 76, 109, 77, 67, 61, 51, 66, 66, 56, 69, 63, 64, 52, 65, 118, 56, 83, 60, 64, 63, 59, 48, 63, 63, 82, 73, 57, 64, 103, 52, 48, 70, 74, 92, 43, 59, 51, 76, 51, 76, 77, 57, 56, 64, 48, 82, 42, 84, 73, 39, 57, 92, 65, 64, 54, 59, 49, 64, 113, 43, 76, 69, 65, 62, 62, 48, 57, 75, 53, 63, 66, 76, 67, 83, 76, 59, 69, 65, 68, 54, 70, 61, 64, 62, 64, 89, 71, 69, 60, 76, 59, 82, 59, 98, 51, 53, 98, 64, 72, 65, 86, 64, 56, 54, 68, 57, 48, 61, 73, 74, 62, 66, 68, 67, 60, 74, 56, 62, 64, 60, 66, 55, 94, 97, 69, 66, 56, 72, 59, 62, 56, 71, 48, 65, 64, 72, 84, 45, 65, 72, 48, 68, 77, 60, 68, 60, 62, 51, 75, 59, 48, 73, 55, 69, 55, 49, 89, 65, 79, 83, 54, 51, 74, 71, 54, 77, 54, 53, 88, 63, 58, 71, 72, 81, 68, 53, 74, 71, 76, 57, 63, 89, 51, 50, 53, 79, 63, 82, 66, 52, 61, 72, 86, 49, 54, 93, 85, 58, 65, 56, 61, 65, 60, 60, 51, 78, 57, 73, 70, 76, 91, 73, 62, 84, 43, 51, 69, 68, 64, 58, 51, 56, 81, 114, 53, 66, 74, 67, 63, 53, 78, 64, 60, 80, 67, 67, 64, 98, 57, 58, 46, 68, 61, 67, 62, 69, 58, 67, 44, 59, 52, 66, 64, 81, 67, 73, 78, 74, 58, 74, 72, 83, 52, 58, 64, 68, 52, 80, 71, 101, 71, 81, 48, 78, 64, 51, 58, 97, 90, 65, 69, 59, 54, 69, 63, 75, 79, 76, 64, 55, 73, 53, 58, 53, 87, 67, 84, 63, 58, 65, 66, 50, 54, 45, 57, 78, 71, 64, 43, 88, 75, 134, 66, 67, 57, 57, 65, 66, 39, 55, 64, 70, 114, 57, 70, 65, 67, 67, 73, 58, 89, 64, 62, 53, 56, 76, 60, 81, 58, 45, 83, 58, 42, 46, 76, 61, 59, 50, 61, 66, 62, 64, 66, 59, 55, 59, 80, 78, 67, 56, 62, 54, 69, 52, 53, 49, 63, 52, 54, 58, 89, 78, 40, 94, 67, 39, 50, 43, 77, 60, 66, 70, 68, 63, 83, 46, 54, 66, 61, 73, 63, 56, 65, 60, 71, 56, 54, 69, 42, 51, 61, 60, 71, 50, 58, 77, 68, 76, 65, 65, 57, 70, 47, 58, 77, 66, 52, 96, 66, 64, 58, 70, 96, 53, 59, 111, 161, 69, 63, 59, 64, 65, 67, 47, 58, 56, 66, 73, 62, 60, 50, 107, 59, 45, 65, 63, 57, 55, 83, 46, 61, 63, 64, 67, 69, 61, 72, 51, 74, 62, 67, 72, 67, 40, 71, 70, 56, 59, 52, 62, 81, 44, 60, 46, 73, 76, 68, 71, 61, 69, 62, 68, 78, 71, 110, 77, 58, 54, 80, 59, 80, 35, 68, 56, 79, 84, 69, 46, 78, 62, 66, 64, 86, 93, 55, 43, 64, 51, 85, 105, 60, 82, 63, 109, 50, 55, 55, 60, 52, 80, 58, 84, 53, 71, 77, 75, 53, 57, 88, 23, 94, 72, 40, 64, 52, 109, 63, 85, 49, 55, 44, 73, 99, 89, 57, 60, 79, 61, 60, 100, 71, 57, 68, 79, 67, 57, 76, 57, 69, 49, 54, 61, 58, 69, 117, 62, 70, 93, 76, 56, 77, 42, 55, 77, 60, 65, 67, 71, 66, 64, 60, 82, 62, 40, 73, 74, 51, 64, 66, 57, 69, 65, 67, 60, 62, 50, 65, 44, 62, 81, 61, 86, 80, 89, 45, 70, 94, 50, 58, 60, 55, 46, 82, 61, 85, 52, 70, 63, 86, 56, 63, 57, 56, 62, 68, 56, 48, 61, 71, 45, 56, 61, 54, 58, 64, 63, 57, 74, 53, 62, 45, 34, 61, 61, 54, 47, 69, 81, 67, 95, 57, 100, 46, 79, 46, 71, 59, 81, 50, 70, 62, 61, 58, 62, 70, 72, 64, 99, 64, 66, 58, 72, 69, 62, 51, 80, 47, 72, 66, 55, 70, 114, 82, 77, 75, 66, 66, 50, 54, 66, 56, 83, 77, 48, 78, 56, 51, 75, 73, 47, 62, 62, 80, 81, 51, 58, 73, 68, 53, 55, 60, 64, 64, 87, 56, 58, 64, 57, 66, 75, 78, 48, 40, 58, 110, 75, 61, 71, 52, 49, 50, 68, 50, 49, 73, 48, 66, 93, 69, 52, 87, 66, 72, 75, 50, 69, 54, 52, 82, 92, 45, 54, 51, 70, 46, 80, 85, 55, 55, 67, 53, 59, 59, 60, 61, 66, 73, 76, 73, 66, 57, 72, 66, 67, 88, 67, 63, 41, 88, 77, 46, 63, 90, 73, 64, 44, 66, 48, 85, 60, 44, 64, 92, 109, 58, 58, 68, 61, 66, 36, 74, 76, 45, 61, 54, 78, 79, 56, 65, 57, 75, 93, 52, 80, 69, 104, 71, 54, 69, 106, 87, 74, 71, 58, 50, 71, 48, 74, 86, 53, 53, 53, 46, 68, 59, 73, 92, 62, 66, 98, 59, 57, 63, 71, 77, 61, 63, 62, 61, 71, 62, 65, 59, 77, 62, 50, 55, 61, 60, 83, 67, 77, 73, 71, 52, 76, 76, 76, 84, 55, 70, 67, 72, 72, 57, 71, 75, 51, 51, 57, 77, 47, 101, 81, 68, 49, 69, 62, 52, 74, 58, 64, 67, 58, 57, 68, 62, 44, 52, 58, 85, 77, 58, 45, 43, 63, 47, 67, 51, 62, 58, 106, 74, 62, 76, 58, 81, 62, 69, 60, 81, 60, 43, 59, 78, 58, 110, 78, 85, 55, 60, 61, 75, 67, 75, 68, 82, 78, 65, 59, 46, 73, 30, 52, 63, 96, 42, 94, 65, 48, 80, 63, 55, 67, 99, 48, 70, 74, 63, 51, 76, 57, 49, 71, 67, 63, 55, 80, 63, 58, 86, 52, 97, 68, 78, 65, 90, 56, 65, 82, 78, 65, 47, 62, 72, 70, 63, 67, 49, 74, 55, 69, 66, 46, 55, 65, 74, 53, 59, 73, 49, 93, 77, 75, 84, 85, 85, 68, 80, 68, 47, 91, 66, 51, 71, 74, 79, 67, 67, 85, 45, 93, 63, 64, 51, 132, 76, 65, 48, 67, 84, 76, 56, 82, 84, 66, 72, 45, 114, 39, 68, 76, 77, 88, 77, 63, 93, 82, 67, 106, 74, 64, 79, 55, 57, 66, 48, 64, 53, 88, 40, 52, 59, 73, 52, 72, 92, 54, 72, 79, 65, 61, 63, 63, 55, 109, 70, 50, 51, 61, 113, 53, 102, 71, 43, 63, 76, 25, 63, 65, 72, 70, 67, 78, 84, 60, 53, 41, 66, 46, 45, 37, 30, 51, 55, 76, 73, 90, 84, 77, 79, 41, 76, 69, 56, 50, 58, 90, 55, 111, 63, 46, 63, 65, 63, 45, 57, 51, 70, 52, 54, 43, 88, 74, 78, 44, 82, 48, 66, 48, 71, 77, 61, 68, 87, 72, 82, 72, 111, 65, 71, 52, 72, 100, 49, 78, 93, 46, 58, 50, 93, 80, 65, 66, 62, 79, 63, 58, 75, 93, 64, 57, 44, 69, 48, 68, 77, 47, 56, 56, 76, 89, 60, 72, 82, 55, 50, 56, 69, 89, 61, 68, 67, 60, 92, 47, 75, 65, 81, 81, 75, 57, 61, 118, 63, 71, 64, 91, 54, 73, 66, 67, 76, 60, 60, 75, 63, 68, 49, 47, 98, 55, 65, 48, 55, 74, 57, 64, 64, 57, 70, 84, 71, 86, 96, 63, 55, 73, 56, 65, 81, 60, 66, 66, 44, 86, 52, 88, 113, 56, 39, 87, 102, 57, 63, 39, 80, 80, 113, 83, 44, 75, 43, 66, 77, 63, 53, 95, 87, 70, 69, 55, 51, 67, 54, 68, 67, 57, 56, 59, 74, 76, 63, 45, 44, 91, 59, 46, 66, 74, 77, 57, 94, 80, 60, 57, 58, 72, 63, 48, 63, 74, 104, 64, 108, 61, 63, 77, 77, 71, 71, 63, 54, 50, 59, 57, 90, 59, 85, 76, 61, 52, 49, 51, 77, 49, 89, 63, 56, 47, 53, 60, 66, 64, 64, 53, 73, 76, 53, 69, 55, 47, 62, 67, 62, 83, 71, 47, 54, 64, 58, 59, 58, 54, 70, 47, 64, 75, 56, 87, 49, 75, 54, 59, 85, 54, 72, 51, 51, 56, 77, 61, 54, 36, 62, 57, 78, 51, 65, 72, 51, 69, 79, 63, 77, 103, 38, 76, 76, 47, 73, 73, 64, 61, 56, 68, 100, 68, 57, 64, 54, 76, 69, 70, 44, 91, 60, 70, 86, 92, 58, 69, 61, 51, 74, 58, 43, 66, 66, 56, 70, 64, 75, 64, 74, 103, 76, 61, 82, 73, 57, 90, 57, 58, 63, 84, 64, 56, 90, 67, 48, 66, 69, 78, 68, 60, 56, 74, 85, 59, 55, 50, 50, 65, 61, 73, 71, 46, 55, 72, 92, 122, 100, 57, 63, 62, 87, 72, 50, 62, 81, 55, 65, 59, 54, 67, 77, 65, 32, 64, 86, 60, 70, 73, 55, 70, 62, 78, 75, 68, 60, 57, 73, 75, 72, 57, 65, 87, 72, 62, 56, 74, 43, 68, 56, 71, 66, 50, 56, 59, 68, 62, 44, 65, 58, 64, 58, 57, 52, 62, 65, 101, 76, 72, 80, 70, 60, 62, 72, 58, 66, 69, 140, 74, 45, 88, 71, 57, 73, 60, 75, 84, 60, 57, 64, 66, 60, 54, 74, 47, 61, 69, 78, 59, 74, 78, 61, 73, 54, 61, 53, 76, 55, 59, 76, 64, 73, 59, 49, 75, 49, 89, 49, 62, 48, 72, 58, 48, 54, 73, 92, 56, 54, 38, 48, 66, 77, 46, 82, 69, 80, 46, 69, 55, 58, 78, 58, 69, 66, 66, 66, 61, 78, 57, 64, 64, 65, 64, 59, 52, 85, 93, 73, 57, 67, 45, 58, 60, 76, 58, 73, 59, 62, 54, 75, 56, 55, 64, 55, 53, 113, 70, 87, 70, 64, 66, 69, 65, 61, 65, 70, 57, 82, 58, 79, 76, 70, 70, 65, 80, 58, 88, 58, 59, 71, 59, 86, 73, 45, 91, 65, 55, 47, 59, 66, 65, 61, 98, 64, 92, 62, 78, 67, 68, 66, 57, 62, 62, 64, 78, 63, 58, 60, 63, 55, 58, 75, 64, 80, 74, 64, 49, 49, 74, 55, 88, 65, 64, 62, 83, 102, 63, 62, 60, 76, 65, 48, 71, 72, 57, 61, 87, 68, 51, 77, 67, 74, 78, 63, 78, 57, 59, 62, 69, 63, 71, 55, 63, 60, 72, 72, 76, 68, 47, 65, 53, 65, 64, 67, 54, 61, 55, 53, 50, 70, 49, 87, 84, 71, 72, 79, 51, 64, 65, 62, 58, 42, 76, 69, 60, 73, 73, 83, 56, 63, 79, 80, 71, 64, 65, 57, 91, 60, 80, 56, 61, 57, 82, 70, 69, 64, 81, 79, 66, 47, 64, 79, 56, 62, 68, 62, 67, 62, 49, 55, 87, 102, 72, 84, 71, 95, 72, 52, 69, 134, 37, 82, 34, 96, 43, 65, 69, 63, 60, 47, 81, 88, 60, 75, 54, 66, 57, 73, 52, 62, 58, 95, 69, 64, 72, 63, 50, 56, 52, 62, 57, 71, 78, 61, 65, 72, 59, 68, 56, 65, 59, 28, 59, 81, 68, 73, 45, 88, 58, 71, 65, 60, 60, 47, 66, 81, 32, 78, 55, 77, 64, 80, 53, 80, 66, 65, 65, 57, 49, 75, 67, 72, 54, 68, 55, 74, 66, 56, 50, 69, 53, 57, 77, 54, 80, 54, 76, 65, 65, 63, 80, 80, 61, 54, 83, 67, 48, 85, 59, 46, 63, 55, 85, 70, 61, 73, 58, 75, 65, 58, 58, 64, 89, 76, 61, 61, 75, 76, 86, 70, 104, 75, 81, 54, 54, 63, 64, 57, 61, 70, 46, 71, 76, 53, 65, 88, 48, 83, 90, 44, 74, 56, 92, 73, 79, 61, 69, 76, 54, 78, 50, 78, 76, 70, 69, 56, 78, 73, 63, 76, 56, 57, 78, 55, 71, 70, 79, 40, 68, 59, 60, 80, 70, 63, 89, 83, 94, 55, 55, 70, 45, 83, 60, 64, 80, 82, 75, 77, 79, 55, 84, 50, 51, 91, 72, 62, 38, 79, 71, 56, 71, 66, 62, 56, 55, 63, 45, 74, 76, 58, 61, 56, 107, 55, 59, 89, 65, 60, 64, 75, 62, 62, 63, 48, 50, 48, 61, 63, 90, 60, 60, 48, 58, 75, 73, 89, 59, 77, 60, 75, 68, 54, 49, 66, 74, 55, 86, 79, 87, 53, 65, 44, 58, 86, 90, 71, 82, 69, 61, 51, 58, 48, 68, 62, 72, 60, 60, 84, 81, 65, 60, 62, 59, 65, 67, 47, 64, 40, 58, 61, 61, 82, 63, 58, 52, 67, 104, 70, 57, 70, 73, 58, 69, 75, 68, 54, 62, 76, 55, 68, 75, 66, 61, 59, 59, 70, 57, 82, 59, 107, 63, 52, 71, 80, 71, 68, 57, 57, 67, 76, 56, 87, 76, 91, 52, 85, 51, 34, 87, 50, 67, 53, 44, 56, 60, 85, 68, 70, 66, 71, 73, 83, 64, 67, 61, 69, 66, 86, 69, 78, 65, 89, 57, 49, 49, 61, 59, 54, 46, 111, 79, 79, 66, 67, 73, 67, 67, 75, 70, 51, 65, 67, 78, 52, 76, 54, 100, 74, 76, 83, 63, 62, 72, 63, 70, 63, 71, 70, 51, 80, 61, 51, 57, 62, 41, 93, 65, 61, 68, 81, 62, 78, 66, 81, 64, 53, 56, 59, 65, 75, 111, 75, 66, 67, 84, 69, 72, 61, 95, 78, 53, 63, 84, 65, 61, 60, 69, 62, 54, 58, 71, 62, 50, 58, 58, 69, 78, 65, 68, 80, 52, 71, 74, 61, 38, 94, 58, 70, 94, 68, 57, 106, 63, 68, 68, 89, 54, 63, 58, 54, 42, 52, 61, 86, 54, 69, 54, 72, 63, 71, 70, 79, 92, 74, 54, 66, 53, 46, 82, 57, 53, 67, 51, 60, 83, 66, 56, 65, 69, 71, 57, 93, 59, 53, 110, 76, 38, 61, 65, 54, 50, 57, 50, 69, 41, 70, 64, 76, 64, 51, 46, 63, 64, 77, 46, 69, 43, 66, 67, 52, 69, 70, 56, 73, 80, 53, 58, 57, 68, 67, 59, 67, 87, 63, 74, 67, 69, 63, 74, 61, 55, 82, 65, 74, 110, 55, 63, 55, 36, 61, 53, 73, 64, 72, 87, 58, 86, 48, 62, 52, 56, 72, 78, 59, 72, 53, 63, 65, 71, 59, 52, 69, 74, 66, 63, 52, 80, 56, 77, 84, 47, 58, 98, 80, 52, 71, 64, 72, 74, 77, 64, 75, 48, 51, 65, 56, 80, 75, 74, 69, 62, 67, 56, 64, 39, 61, 71, 58, 65, 54, 63, 60, 70, 62, 60, 99, 71, 57, 69, 70, 59, 48, 62, 62, 66, 68, 58, 60, 75, 63, 50, 59, 53, 69, 62, 75, 62, 63, 73, 70, 72, 55, 78, 74, 113, 74, 48, 86, 79, 57, 51, 76, 68, 79, 67, 69, 64, 64, 64, 74, 51, 67, 50, 63, 85, 53, 63, 90, 59, 61, 62, 58, 80, 65, 54, 72, 74, 61, 61, 57, 74, 56, 88, 86, 55, 65, 59, 63, 58, 60, 54, 58, 64, 67, 72, 66, 59, 52, 63, 70, 58, 63, 75, 78, 64, 63, 57, 70, 73, 79, 73, 75, 66, 66, 73, 56, 82, 75, 52, 54, 92, 73, 59, 68, 53, 63, 83, 66, 75, 65, 88, 55, 60, 57, 61, 65, 59, 57, 72, 63, 65, 66, 62, 46, 64, 67, 61, 54, 63, 71, 73, 66, 74, 68, 61, 66, 73, 57, 53, 51, 64, 80, 55, 62, 68, 59, 59, 67, 62, 59, 76, 82, 87, 101, 64, 88, 62, 102, 59, 49, 58, 64, 76, 71, 90, 61, 58, 62, 65, 65, 73, 63, 42, 83, 81, 81, 89, 52, 53, 76, 60, 64, 56, 81, 51, 90, 59, 69, 70, 57, 57, 90, 51, 57, 77, 55, 92, 59, 66, 65, 62, 62, 63, 60, 63, 57, 56, 56, 66, 58, 54, 63, 61, 66, 49, 69, 99, 79, 64, 83, 64, 66, 61, 80, 62, 63, 64, 63, 56, 61, 65, 62, 77, 88, 62, 66, 69, 68, 59, 71, 57, 49, 53, 56, 62, 60, 45, 52, 58, 60, 65, 60, 44, 65, 62, 71, 49, 60, 66, 57, 55, 54, 71, 60, 66, 56, 62, 54, 69, 66, 70, 67, 80, 57, 48, 55, 89, 72, 56, 62, 73, 59, 65, 62, 76, 55, 58, 76, 50, 63, 51, 56, 71, 52, 67, 44, 55, 63, 56, 66, 73, 63, 98, 81, 74, 62, 55, 72, 83, 70, 67, 46, 79, 87, 67, 67, 102, 57, 61, 61, 69, 89, 46, 81, 56, 65, 72, 61, 64, 55, 59, 55, 55, 63, 66, 85, 60, 63, 64, 84, 74, 59, 61, 60, 70, 62, 56, 64, 76, 57, 54, 73, 68, 53, 67, 62, 54, 43, 77, 72, 47, 65, 75, 75, 61, 82, 67, 50, 61, 71, 79, 88, 68, 60, 62, 72, 60, 59, 71, 67, 81, 62, 67, 55, 60, 63, 48, 60, 59, 55, 55, 55, 61, 61, 68, 66, 72, 104, 47, 72, 58, 61, 61, 84, 62, 61, 63, 83, 53, 90, 65, 64, 61, 72, 85, 56, 70, 53, 60, 71, 63, 67, 71, 60, 86, 75, 55, 76, 68, 55, 79, 65, 66, 57, 65, 72, 45, 74, 81, 62, 64, 53, 68, 64, 62, 60, 83, 89, 52, 73, 63, 67, 63, 60, 64, 60, 59, 99, 54, 85, 76, 71, 80, 90, 59, 99, 73, 64, 67, 60, 64, 82, 52, 60, 48, 48, 59, 78, 61, 59, 73, 62, 63, 57, 54, 62, 60, 68, 62, 55, 75, 64, 62, 59, 68, 73, 64, 66, 97, 64, 74, 76, 64, 55, 51, 69, 72, 66, 65, 61, 72, 55, 62, 61, 51, 63, 60, 63, 60, 46, 61, 55, 50, 55, 84, 71, 56, 88, 67, 49, 55, 73, 104, 63, 54, 69, 71, 58, 83, 53, 60, 65, 97, 50, 61, 73, 120, 52, 79, 58, 66, 67, 63, 51, 62, 55, 108, 85, 74, 94, 64, 53, 58, 58, 58, 58, 60, 57, 81, 59, 64, 59, 74, 63, 55, 56, 57, 71, 56, 86, 77, 58, 77, 85, 54, 60, 66, 64, 92, 54, 57, 53, 67, 66, 67, 77, 62, 56, 65, 57, 46, 77, 65, 61, 78, 51, 39, 54, 58, 61, 55, 57, 58, 64, 63, 73, 83, 61, 55, 57, 66, 55, 93, 73, 56, 94, 58, 79, 89, 80, 64, 57, 76, 74, 70, 70, 63, 73, 62, 75, 73, 77, 68, 66, 82, 81, 80, 59, 73, 60, 57, 85, 47, 58, 67, 82, 59, 63, 72, 63, 72, 65, 45, 54, 58, 69, 75, 63, 66, 62, 60, 69, 77, 55, 59, 68, 59, 66, 61, 71, 76, 57, 58, 63, 68, 58, 65, 64, 53, 99, 110, 50, 81, 62, 65, 68, 57, 54, 61, 62, 57, 78, 68, 76, 59, 57, 59, 72, 93, 47, 85, 62, 60, 65, 64, 73, 84, 81, 54, 93, 68, 58, 57, 58, 46, 62, 94, 77, 66, 50, 86, 80, 83, 50, 54, 95, 49, 54, 57, 62, 46, 64, 70, 71, 59, 60, 75, 53, 73, 66, 58, 81, 59, 57, 86, 71, 75, 61, 55, 69, 88, 61, 60, 69, 74, 48, 58, 56, 68, 59, 59, 63, 57, 73, 55, 66, 70, 75, 65, 58, 109, 68, 68, 54, 64, 91, 56, 55, 57, 67, 59, 56, 57, 54, 67, 57, 76, 59, 66, 56, 120, 69, 62, 56, 60, 54, 66, 98, 56, 59, 75, 55, 65, 51, 84, 63, 61, 63, 52, 56, 71, 57, 91, 82, 66, 73, 73, 63, 76, 62, 57, 56, 86, 90, 78, 60, 79, 75, 68, 64, 62, 79, 66, 70, 64, 60, 93, 76, 64, 86, 67, 62, 81, 50, 63, 72, 57, 60, 59, 65, 77, 55, 65, 57, 61, 62, 95, 73, 72, 61, 66, 73, 60, 68, 66, 60, 68, 86, 54, 56, 55, 59, 74, 73, 78, 57, 77, 65, 71, 94, 58, 75, 74, 53, 70, 68, 53, 56, 125, 54, 54, 69, 62, 67, 64, 65, 80, 49, 55, 72, 59, 54, 70, 67, 55, 60, 64, 98, 80, 59, 68, 55, 56, 62, 65, 46, 52, 68, 63, 57, 63, 60, 61, 81, 53, 60, 80, 72, 61, 69, 73, 87, 57, 71, 72, 74, 57, 67, 79, 52, 64, 95, 59, 58, 63, 65, 72, 60, 92, 74, 65, 72, 84, 61, 70, 71, 80, 67, 66, 61, 70, 51, 70, 71, 60, 68, 77, 62, 50, 63, 80, 69, 68, 48, 59, 62, 81, 70, 73, 59, 62, 51, 61, 82, 65, 41, 50, 47, 48, 63, 82, 54, 66, 58, 59, 62, 52, 51, 62, 56, 55, 64, 57, 77, 64, 55, 82, 64, 70, 64, 74, 69, 58, 53, 60, 57, 70, 67, 63, 54, 72, 55, 86, 50, 56, 69, 54, 62, 67, 63, 62, 64, 49, 54, 70, 66, 53, 70, 125, 67, 52, 83, 98, 60, 65, 57, 48, 81, 67, 49, 66, 63, 62, 129, 77, 59, 73, 56, 57, 69, 80, 63, 58, 72, 78, 72, 52, 73, 55, 74, 65, 61, 78, 92, 55, 68, 58, 52, 54, 60, 54, 56, 67, 84, 71, 77, 56, 69, 64, 72, 73, 62, 52, 82, 61, 63, 47, 73, 47, 59, 68, 91, 74, 84, 46, 57, 78, 68, 103, 59, 57, 77, 69, 79, 71, 56, 110, 62, 68, 54, 67, 60, 79, 70, 87, 86, 82, 67, 71, 58, 66, 48, 60, 62, 71, 71, 78, 63, 75, 68, 54, 63, 73, 62, 95, 57, 86, 61, 51, 62, 56, 52, 78, 50, 62, 74, 62, 58, 64, 62, 61, 64, 43, 57, 53, 53, 75, 69, 89, 57, 52, 95, 59, 67, 57, 60, 49, 85, 57, 54, 75, 58, 72, 78, 71, 60, 66, 51, 65, 57, 56, 54, 65, 81, 72, 73, 64, 71, 57, 105, 72, 57, 38, 76, 64, 62, 74, 57, 50, 50, 79, 63, 52, 64, 77, 78, 71, 55, 60, 59, 69, 55, 73, 59, 52, 58, 57, 66, 67, 74, 68, 75, 58, 66, 61, 57, 91, 95, 63, 68, 79, 67, 67, 103, 73, 68, 51, 53, 64, 46, 69, 73, 62, 48, 70, 74, 72, 67, 59, 71, 80, 72, 67, 55, 79, 59, 66, 65, 113, 74, 44, 65, 57, 58, 68, 55, 64, 57, 68, 75, 71, 65, 59, 60, 92, 66, 72, 85, 70, 72, 48, 83, 65, 57, 73, 66, 65, 78, 61, 55, 60, 47, 65, 78, 53, 53, 82, 64, 72, 63, 73, 60, 57, 86, 68, 55, 78, 64, 104, 47, 90, 79, 109, 68, 57, 49, 63, 103, 59, 57, 55, 64, 71, 85, 83, 58, 62, 80, 48, 72, 96, 53, 75, 72, 68, 67, 60, 62, 79, 80, 68, 68, 80, 50, 85, 52, 72, 60, 58, 64, 62, 90, 63, 44, 63, 86, 48, 74, 53, 91, 71, 60, 56, 64, 60, 65, 59, 79, 84, 98, 56, 61, 57, 59, 63, 62, 67, 68, 68, 58, 63, 82, 71, 54, 63, 74, 61, 79, 57, 60, 67, 65, 58, 62, 52, 63, 59, 57, 62, 88, 64, 66, 56, 50, 88, 55, 43, 73, 70, 58, 72, 56, 69, 54, 84, 57, 57, 71, 78, 72, 62, 64, 61, 45, 47, 60, 65, 88, 102, 53, 54, 76, 77, 64, 61, 59, 64, 61, 87, 55, 52, 57, 58, 60, 61, 58, 49, 63, 72, 52, 42, 73, 63, 68, 63, 60, 64, 66, 66, 52, 63, 77, 50, 51, 47, 77, 66, 79, 67, 100, 45, 67, 59, 64, 88, 48, 67, 55, 74, 71, 91, 58, 65, 70, 65, 46, 71, 70, 75, 78, 63, 65, 89, 80, 43, 69, 59, 58, 66, 53, 85, 69, 41, 66, 49, 46, 57, 66, 75, 63, 65, 71, 74, 62, 67, 67, 79, 60, 57, 51, 36, 56, 62, 58, 72, 91, 54, 54, 56, 80, 65, 61, 55, 52, 65, 63, 63, 69, 52, 61, 57, 69, 56, 67, 60, 89, 29, 66, 65, 77, 115, 68, 100, 56, 51, 63, 64, 54, 61, 59, 93, 73, 71, 66, 61, 62, 62, 73, 77, 56, 62, 59, 57, 61, 55, 63, 69, 63, 58, 67, 58, 47, 54, 54, 73, 70, 44, 63, 48, 50, 85, 56, 67, 70, 68, 66, 77, 66, 66, 59, 61, 72, 67, 65, 62, 51, 86, 65, 63, 66, 67, 59, 76, 61, 62, 45, 62, 71, 58, 76, 55, 56, 67, 65, 54, 64, 63, 64, 59, 60, 60, 86, 54, 74, 86, 63, 70, 63, 72, 73, 53, 55, 76, 67, 69, 64, 81, 67, 44, 63, 64, 59, 57, 76, 77, 71, 58, 58, 61, 79, 55, 71, 51, 77, 64, 61, 78, 59, 76, 63, 59, 68, 70, 64, 69, 47, 75, 51, 59, 57, 58, 68, 55, 69, 77, 65, 64, 65, 66, 66, 50, 66, 63, 57, 66, 65, 41, 65, 86, 56, 62, 70, 63, 67, 50, 53, 71, 54, 67, 63, 63, 63, 82, 67, 57, 64, 57, 110, 64, 59, 78, 82, 67, 73, 65, 56, 59, 65, 78, 69, 113, 93, 51, 59, 60, 66, 87, 65, 74, 74, 59, 59, 86, 69, 81, 43, 73, 64, 69, 77, 80, 66, 69, 63, 57, 87, 55, 57, 55, 51, 54, 84, 59, 64, 56, 47, 52, 70, 70, 77, 48, 69, 71, 53, 64, 87, 69, 50, 74, 54, 62, 82, 69, 68, 96, 80, 66, 111, 68, 52, 66, 73, 66, 78, 47, 66, 60, 86, 49, 87, 63, 78, 56, 78, 88, 41, 63, 73, 73, 68, 64, 52, 51, 72, 84, 52, 70, 67, 58, 61, 67, 67, 51, 72, 48, 71, 57, 70, 65, 61, 70, 78, 55, 92, 69, 57, 117, 89, 62, 58, 60, 60, 67, 48, 56, 65, 52, 82, 66, 61, 65, 53, 47, 84, 62, 57, 58, 71, 61, 52, 64, 60, 75, 89, 67, 58, 70, 49, 49, 61, 71, 62, 62, 64, 61, 60, 54, 66, 64, 58, 70, 62, 63, 91, 55, 80, 53, 63, 61, 67, 60, 66, 67, 47, 73, 90, 79, 57, 62, 68, 63, 64, 107, 54, 48, 67, 76, 57, 45, 52, 60, 59, 73, 63, 82, 103, 81, 60, 72, 69, 72, 97, 62, 57, 82, 75, 73, 55, 57, 55, 49, 52, 52, 59, 51, 75, 65, 65, 63, 61, 102, 67, 82, 63, 63, 68, 55, 70, 68, 93, 60, 62, 81, 56, 68, 62, 61, 57, 68, 57, 62, 56, 66, 70, 77, 70, 56, 67, 56, 77, 69, 61, 69, 55, 63, 52, 54, 68, 64, 58, 77, 56, 68, 65, 63, 68, 70, 79, 48, 71, 53, 71, 75, 66, 81, 58, 60, 57, 57, 52, 62, 73, 63, 71, 48, 72, 67, 58, 68, 60, 71, 47, 77, 66, 62, 61, 77, 59, 65, 67, 65, 61, 71, 95, 71, 46, 70, 69, 69, 74, 59, 73, 64, 56, 82, 52, 82, 51, 73, 59, 67, 56, 86, 103, 61, 70, 68, 55, 46, 65, 60, 75, 102, 51, 66, 76, 56, 59, 70, 68, 53, 80, 52, 59, 52, 68, 55, 49, 67, 60, 70, 62, 58, 47, 71, 59, 55, 66, 57, 79, 85, 65, 62, 61, 60, 52, 60, 66, 72, 63, 78, 54, 64, 63, 57, 62, 62, 76, 62, 87, 61, 59, 66, 66, 65, 58, 66, 92, 85, 81, 99, 70, 58, 59, 78, 74, 67, 85, 57, 83, 59, 74, 92, 62, 52, 75, 61, 55, 49, 68, 113, 66, 98, 62, 54, 59, 54, 57, 106, 54, 46, 58, 59, 64, 66, 62, 57, 50, 76, 62, 55, 66, 62, 81, 66, 60, 71, 51, 77, 56, 77, 54, 64, 46, 69, 52, 72, 87, 71, 70, 87, 52, 88, 64, 64, 49, 91, 46, 74, 83, 55, 90, 96, 49, 67, 111, 62, 52, 63, 74, 93, 55, 44, 63, 73, 66, 73, 58, 100, 65, 55, 94, 78, 67, 54, 68, 56, 68, 72, 68, 43, 82, 65, 56, 51, 64, 79, 48, 61, 70, 71, 50, 72, 80, 49, 60, 63, 43, 75, 66, 38, 63, 77, 53, 61, 56, 60, 64, 45, 72, 87, 59, 72, 81, 56, 87, 68, 36, 73, 78, 57, 99, 84, 48, 67, 46, 55, 123, 62, 65, 85, 92, 60, 56, 60, 74, 66, 86, 49, 56, 54, 58, 55, 54, 71, 65, 50, 74, 83, 54, 77, 50, 91, 78, 55, 66, 74, 61, 62, 66, 58, 74, 58, 82, 68, 52, 52, 61, 64, 57, 48, 63, 56, 64, 73, 61, 69, 66, 83, 58, 80, 57, 66, 75, 91, 42, 39, 71, 62, 61, 66, 51, 52, 67, 62, 53, 79, 45, 58, 45, 60, 46, 75, 66, 90, 52, 51, 62, 64, 77, 69, 93, 79, 64, 49, 56, 63, 72, 41, 92, 57, 66, 84, 67, 61, 73, 57, 61, 60, 62, 65, 54, 92, 73, 49, 54, 78, 102, 65, 57, 55, 55, 51, 57, 54, 79, 69, 55, 73, 93, 50, 69, 57, 79, 75, 66, 76, 59, 67, 46, 70, 78, 82, 69, 86, 45, 73, 105, 78, 102, 52, 54, 74, 67, 46, 49, 74, 65, 88, 62, 71, 73, 59, 65, 83, 52, 62, 74, 70, 54, 53, 53, 62, 70, 53, 66, 64, 59, 92, 56, 54, 95, 76, 52, 59, 95, 64, 98, 54, 68, 67, 65, 73, 55, 65, 66, 62, 52, 89, 44, 66, 46, 82, 54, 59, 74, 48, 61, 70, 69, 65, 64, 51, 67, 84, 65, 58, 66, 49, 77, 68, 72, 71, 62, 71, 85, 68, 66, 50, 50, 73, 54, 74, 83, 64, 62, 64, 87, 62, 71, 59, 61, 79, 100, 58, 63, 79, 67, 72, 64, 66, 75, 64, 92, 65, 93, 67, 66, 74, 52, 61, 60, 59, 47, 94, 71, 70, 36, 60, 53, 60, 84, 58, 58, 86, 66, 68, 64, 50, 55, 68, 78, 67, 55, 73, 62, 72, 68, 67, 60, 74, 53, 66, 65, 95, 51, 61, 85, 67, 88, 56, 76, 65, 78, 63, 61, 63, 50, 69, 54, 81, 63, 39, 50, 71, 49, 97, 55, 68, 66, 83, 71, 60, 64, 127, 65, 66, 71, 67, 62, 67, 82, 82, 65, 100, 67, 55, 75, 55, 78, 48, 56, 57, 61, 67, 51, 63, 65, 50, 51, 66, 63, 52, 73, 78, 61, 67, 90, 84, 63, 84, 58, 71, 50, 65, 65, 74, 46, 68, 64, 96, 56, 64, 70, 61, 67, 57, 68, 40, 48, 63, 69, 97, 68, 53, 61, 55, 50, 72, 56, 57, 78, 56, 64, 70, 54, 70, 70, 72, 62, 75, 61, 65, 89, 66, 74, 70, 47, 89, 69, 78, 46, 71, 72, 68, 57, 50, 73, 70, 96, 68, 69, 41, 65, 70, 73, 79, 68, 66, 61, 68, 66, 50, 63, 46, 61, 81, 55, 53, 75, 61, 58, 60, 55, 59, 81, 66, 63, 65, 58, 61, 66, 79, 51, 59, 64, 61, 74, 100, 69, 46, 75, 58, 56, 52, 63, 61, 86, 98, 64, 69, 60, 92, 53, 49, 63, 58, 60, 54, 61, 69, 65, 58, 57, 75, 62, 66, 47, 91, 52, 69, 91, 48, 52, 97, 107, 72, 119, 63, 48, 68, 75, 66, 68, 87, 76, 61, 71, 85, 90, 73, 59, 80, 68, 53, 66, 59, 69, 76, 54, 72, 63, 55, 69, 61, 61, 58, 64, 67, 74, 56, 68, 74, 49, 76, 58, 79, 64, 73, 60, 56, 57, 55, 69, 67, 66, 69, 62, 53, 57, 61, 66, 45, 58, 65, 63, 43, 62, 109, 66, 55, 52, 77, 73, 70, 69, 62, 75, 62, 65, 56, 84, 68, 75, 62, 64, 59, 87, 97, 60, 67, 60, 77, 57, 41, 85, 75, 60, 80, 48, 61, 57, 103, 56, 79, 58, 63, 73, 61, 78, 85, 63, 55, 62, 47, 73, 72, 74, 71, 66, 72, 82, 50, 59, 48, 62, 53, 83, 60, 69, 79, 52, 78, 58, 66, 55, 47, 78, 81, 48, 67, 68, 68, 77, 67, 49, 62, 59, 61, 74, 77, 81, 36, 52, 68, 64, 62, 56, 53, 55, 53, 87, 64, 52, 90, 69, 68, 44, 49, 51, 67, 58, 64, 68, 66, 62, 53, 60, 62, 67, 60, 60, 66, 70, 57, 73, 96, 76, 44, 56, 54, 59, 59, 89, 56, 54, 72, 68, 80, 48, 55, 52, 66, 60, 37, 93, 60, 57, 61, 86, 84, 68, 69, 66, 54, 83, 67, 54, 63, 78, 53, 69, 57, 56, 66, 72, 80, 73, 106, 75, 50, 52, 58, 74, 61, 94, 69, 59, 78, 91, 68, 54, 60, 55, 59, 66, 75, 77, 88, 46, 36, 63, 51, 62, 71, 52, 66, 59, 80, 66, 46, 70, 40, 66, 62, 48, 65, 63, 69, 67, 48, 73, 55, 61, 58, 76, 61, 59, 74, 68, 64, 72, 82, 75, 51, 52, 72, 80, 96, 66, 62, 61, 49, 76, 74, 61, 66, 85, 69, 53, 76, 59, 59, 70, 99, 56, 83, 65, 73, 57, 87, 69, 36, 56, 61, 70, 62, 70, 72, 58, 75, 72, 67, 62, 53, 54, 61, 93, 53, 82, 67, 55, 57, 65, 55, 60, 107, 67, 68, 63, 96, 59, 96, 52, 57, 88, 65, 64, 70, 60, 47, 126, 68, 60, 66, 52, 66, 53, 70, 86, 69, 57, 64, 74, 82, 70, 53, 62, 64, 87, 82, 107, 73, 66, 62, 65, 62, 76, 63, 50, 66, 61, 64, 69, 57, 79, 60, 49, 59, 72, 68, 91, 68, 57, 47, 92, 56, 57, 66, 72, 77, 49, 83, 67, 51, 67, 103, 47, 53, 61, 68, 55, 62, 44, 58, 75, 68, 60, 86, 62, 55, 71, 122, 78, 66, 65, 68, 53, 67, 61, 57, 67, 58, 63, 57, 64, 47, 71, 58, 67, 65, 47, 119, 58, 85, 81, 61, 67, 49, 50, 44, 51, 62, 52, 77, 67, 56, 56, 60, 56, 48, 57, 49, 73, 62, 75, 42, 65, 61, 105, 55, 79, 62, 77, 53, 56, 61, 85, 64, 67, 78, 62, 91, 49, 47, 49, 91, 54, 92, 56, 68, 79, 65, 69, 52, 85, 57, 67, 55, 66, 102, 62, 55, 44, 61, 77, 60, 80, 75, 45, 63, 67, 83, 76, 49, 62, 65, 71, 60, 76, 59, 48, 67, 67, 57, 67, 89, 62, 61, 75, 61, 66, 58, 71, 60, 98, 66, 54, 66, 59, 61, 72, 59, 68, 67, 69, 61, 59, 65, 67, 61, 67, 66, 59, 77, 55, 45, 56, 51, 67, 54, 82, 65, 60, 70, 51, 98, 59, 52, 65, 49, 53, 77, 41, 66, 84, 71, 52, 57, 70, 65, 54, 64, 70, 38, 72, 83, 57, 59, 63, 68, 58, 59, 66, 61, 53, 66, 54, 61, 70, 56, 82, 61, 75, 61, 39, 77, 64, 70, 75, 69, 64, 61, 69, 74, 64, 81, 73, 50, 70, 49, 59, 64, 61, 72, 121, 54, 58, 85, 70, 47, 78, 63, 84, 85, 66, 57, 59, 95, 62, 69, 67, 68, 72, 71, 48, 77, 52, 56, 61, 43, 54, 72, 59, 65, 63, 67, 61, 66, 68, 64, 75, 72, 73, 52, 61, 65, 71, 58, 63, 76, 72, 70, 74, 62, 91, 103, 57, 89, 51, 63, 58, 86, 106, 54, 59, 50, 66, 73, 71, 60, 76, 76, 67, 64, 83, 57, 63, 56, 60, 39, 67, 68, 57, 72, 70, 57, 54, 58, 64, 60, 71, 61, 46, 54, 79, 68, 62, 57, 83, 59, 93, 78, 57, 62, 73, 65, 74, 51, 65, 61, 51, 69, 55, 44, 82, 90, 52, 62, 90, 53, 68, 48, 58, 69, 68, 53, 69, 81, 73, 72, 70, 77, 53, 52, 60, 50, 67, 53, 70, 61, 74, 48, 58, 71, 55, 58, 70, 56, 114, 49, 67, 56, 67, 68, 66, 59, 98, 65, 56, 68, 70, 71, 63, 70, 46, 89, 74, 58, 72, 72, 84, 69, 61, 70, 61, 72, 71, 79, 69, 73, 46, 60, 54, 50, 83, 66, 51, 62, 62, 58, 64, 57, 51, 58, 61, 66, 61, 65, 68, 73, 67, 56, 68, 76, 64, 57, 80, 79, 61, 90, 66, 62, 73, 70, 46, 67, 61, 72, 49, 60, 52, 64, 66, 105, 59, 50, 64, 61, 54, 45, 59, 80, 72, 81, 82, 55, 60, 126, 81, 95, 63, 44, 69, 69, 79, 73, 60, 134, 69, 62, 57, 61, 56, 53, 57, 59, 63, 65, 69, 81, 59, 59, 49, 63, 77, 50, 60, 53, 55, 80, 65, 77, 60, 59, 49, 65, 59, 54, 61, 112, 78, 64, 64, 76, 64, 64, 85, 62, 56, 62, 90, 55, 64, 62, 72, 68, 69, 73, 63, 54, 72, 65, 53, 69, 70, 69, 78, 76, 56, 66, 61, 86, 60, 61, 83, 68, 66, 65, 99, 55, 55, 95, 57, 72, 58, 77, 76, 46, 68, 71, 49, 64, 47, 78, 51, 67, 86, 96, 67, 58, 74, 66, 88, 74, 57, 65, 56, 59, 56, 74, 54, 72, 55, 72, 64, 60, 64, 67, 64, 71, 66, 63, 53, 87, 59, 47, 70, 96, 74, 64, 49, 76, 58, 67, 59, 71, 65, 76, 56, 56, 64, 64, 59, 47, 64, 74, 66, 59, 68, 54, 77, 46, 64, 60, 62, 62, 73, 63, 68, 51, 74, 65, 60, 74, 92, 65, 56, 78, 77, 67, 90, 59, 50, 60, 83, 70, 41, 97, 80, 59, 65, 67, 89, 85, 55, 66, 60, 67, 63, 65, 75, 67, 64, 60, 71, 59, 71, 69, 57, 84, 58, 61, 83, 51, 59, 50, 80, 62, 61, 69, 66, 90, 66, 58, 49, 72, 62, 71, 52, 63, 96, 69, 89, 43, 70, 65, 78, 71, 72, 69, 62, 83, 63, 52, 58, 63, 96, 47, 64, 77, 67, 65, 66, 57, 63, 75, 58, 71, 84, 51, 104, 106, 69, 59, 67, 65, 70, 61, 91, 66, 74, 81, 55, 75, 51, 62, 70, 33, 61, 60, 66, 74, 78, 68, 68, 73, 62, 66, 64, 57, 84, 55, 56, 61, 81, 61, 67, 68, 66, 61, 99, 51, 68, 87, 67, 64, 58, 73, 61, 55, 64, 41, 50, 75, 54, 67, 73, 64, 67, 53, 70, 66, 51, 56, 61, 56, 72, 53, 66, 72, 58, 45, 75, 55, 85, 72, 72, 74, 76, 55, 64, 63, 65, 76, 57, 62, 71, 63, 73, 62, 56, 59, 51, 59, 65, 53, 75, 54, 57, 105, 58, 58, 52, 63, 54, 81, 58, 58, 73, 72, 62, 77, 70, 57, 80, 74, 67, 64, 74, 54, 63, 79, 69, 59, 63, 55, 70, 65, 55, 63, 55, 67, 67, 55, 62, 60, 49, 61, 61, 83, 68, 65, 82, 69, 74, 71, 76, 62, 94, 85, 67, 64, 58, 61, 48, 91, 63, 62, 57, 40, 75, 71, 64, 55, 43, 65, 59, 62, 52, 57, 57, 60, 62, 45, 102, 61, 76, 82, 61, 60, 66, 83, 62, 76, 83, 56, 43, 58, 58, 68, 86, 73, 66, 47, 54, 73, 99, 50, 81, 61, 73, 64, 57, 63, 59, 58, 63, 79, 64, 56, 78, 64, 60, 67, 57, 61, 55, 74, 47, 65, 71, 72, 64, 50, 61, 57, 58, 64, 70, 54, 57, 58, 57, 76, 46, 51, 53, 70, 59, 73, 65, 59, 89, 60, 52, 48, 54, 71, 76, 94, 59, 57, 90, 83, 62, 67, 75, 64, 75, 59, 62, 63, 53, 72, 76, 69, 72, 51, 67, 72, 64, 64, 80, 75, 75, 52, 67, 67, 54, 56, 63, 54, 68, 83, 102, 59, 74, 51, 59, 89, 55, 88, 64, 63, 70, 50, 63, 71, 62, 61, 73, 68, 42, 68, 109, 62, 61, 61, 65, 48, 49, 65, 76, 69, 49, 75, 68, 61, 67, 73, 61, 68, 83, 68, 75, 65, 56, 53, 65, 60, 62, 91, 58, 83, 73, 78, 61, 64, 65, 67, 46, 56, 62, 80, 73, 61, 53, 67, 65, 58, 68, 64, 50, 62, 72, 87, 51, 61, 70, 66, 50, 66, 65, 53, 54, 59, 49, 70, 65, 71, 65, 62, 57, 51, 60, 83, 51, 68, 95, 77, 69, 77, 102, 48, 64, 74, 68, 60, 54, 65, 83, 50, 59, 80, 68, 58, 78, 74, 66, 65, 48, 75, 64, 58, 94, 60, 63, 54, 46, 70, 75, 62, 64, 93, 67, 73, 101, 59, 66, 68, 57, 80, 62, 41, 69, 63, 81, 73, 73, 50, 75, 56, 64, 69, 44, 53, 56, 116, 64, 70, 67, 94, 86, 72, 68, 88, 74, 56, 87, 74, 62, 37, 80, 60, 67, 59, 62, 52, 56, 58, 61, 71, 82, 55, 59, 69, 56, 62, 54, 35, 76, 61, 57, 68, 67, 103, 77, 67, 54, 55, 62, 75, 57, 74, 62, 55, 60, 57, 53, 64, 62, 89, 49, 76, 67, 59, 81, 63, 70, 57, 61, 62, 76, 63, 83, 58, 53, 62, 55, 57, 63, 63, 70, 77, 55, 67, 46, 68, 63, 73, 51, 73, 69, 70, 67, 73, 48, 80, 73, 60, 64, 61, 67, 59, 59, 56, 71, 61, 76, 72, 58, 37, 70, 71, 72, 76, 81, 84, 88, 47, 74, 69, 50, 68, 46, 65, 64, 59, 83, 72, 86, 60, 70, 70, 77, 64, 78, 71, 55, 48, 59, 68, 53, 77, 49, 61, 70, 71, 56, 82, 62, 76, 78, 67, 66, 54, 87, 65, 66, 72, 62, 57, 67, 54, 74, 65, 61, 74, 61, 50, 61, 80, 52, 47, 56, 51, 54, 54, 66, 69, 72, 69, 52, 57, 72, 47, 65, 64, 77, 51, 110, 63, 57, 50, 60, 53, 59, 48, 132, 66, 91, 48, 68, 60, 83, 52, 69, 64, 75, 67, 75, 52, 60, 66, 50, 88, 65, 72, 82, 70, 103, 58, 63, 56, 66, 65, 65, 55, 64, 63, 92, 63, 67, 66, 65, 47, 45, 60, 57, 74, 51, 112, 92, 62, 68, 46, 71, 61, 67, 63, 62, 50, 81, 55, 69, 63, 69, 62, 78, 66, 90, 47, 55, 45, 66, 62, 55, 57, 60, 80, 64, 48, 68, 66, 59, 53, 35, 65, 71, 57, 64, 57, 65, 87, 52, 78, 58, 53, 87, 70, 68, 69, 65, 143, 56, 66, 79, 75, 60, 63, 57, 57, 71, 57, 70, 57, 64, 56, 68, 62, 66, 40, 64, 52, 67, 53, 85, 69, 55, 60, 94, 55, 60, 68, 48, 70, 65, 88, 58, 63, 92, 66, 65, 89, 62, 51, 89, 76, 70, 67, 71, 109, 63, 103, 57, 60, 76, 53, 60, 70, 48, 84, 48, 50, 74, 60, 60, 71, 61, 71, 77, 77, 70, 62, 67, 53, 56, 76, 72, 36, 68, 65, 96, 76, 75, 58, 66, 90, 61, 55, 82, 60, 74, 71, 67, 66, 67, 55, 64, 63, 70, 57, 55, 59, 61, 49, 61, 65, 59, 76, 72, 58, 54, 57, 69, 67, 58, 72, 52, 99, 68, 56, 53, 56, 68, 56, 70, 97, 57, 69, 67, 68, 60, 64, 56, 59, 75, 72, 65, 56, 71, 53, 87, 74, 86, 69, 58, 61, 46, 62, 69, 79, 82, 65, 60, 64, 60, 63, 71, 55, 72, 54, 60, 85, 52, 54, 65, 57, 48, 49, 64, 58, 57, 57, 56, 60, 73, 53, 69, 73, 55, 69, 78, 48, 59, 68, 56, 75, 56, 80, 73, 57, 69, 71, 80, 74, 73, 58, 59, 57, 59, 54, 64, 54, 72, 59, 67, 75, 73, 76, 61, 64, 63, 61, 52, 68, 58, 72, 100, 70, 60, 59, 55, 54, 69, 65, 50, 77, 60, 60, 56, 96, 73, 74, 77, 55, 77, 89, 50, 61, 58, 52, 64, 67, 59, 64, 58, 67, 70, 72, 73, 78, 71, 67, 76, 50, 52, 67, 58, 88, 57, 57, 48, 47, 50, 66, 60, 67, 50, 40, 49, 70, 63, 67, 82, 87, 69, 62, 65, 69, 69, 68, 79, 52, 65, 109, 65, 62, 41, 82, 50, 83, 70, 77, 63, 70, 64, 61, 76, 63, 63, 62, 64, 58, 54, 136, 63, 60, 65, 52, 73, 67, 101, 59, 75, 84, 69, 68, 67, 94, 67, 58, 66, 61, 62, 66, 80, 74, 74, 55, 68, 63, 59, 67, 96, 61, 51, 68, 114, 56, 62, 69, 97, 51, 45, 70, 60, 61, 54, 48, 68, 112, 65, 49, 57, 52, 54, 101, 70, 65, 48, 59, 68, 67, 64, 49, 73, 63, 54, 53, 44, 84, 71, 62, 59, 83, 63, 62, 80, 69, 82, 85, 35, 57, 60, 64, 64, 60, 64, 70, 51, 54, 70, 51, 122, 53, 65, 70, 68, 61, 79, 66, 63, 114, 59, 61, 64, 61, 51, 70, 68, 55, 64, 47, 85, 87, 55, 60, 67, 58, 73, 61, 108, 85, 67, 68, 76, 64, 77, 71, 58, 62, 60, 76, 72, 73, 60, 57, 64, 55, 69, 67, 75, 80, 90, 62, 80, 62, 60, 55, 69, 76, 84, 61, 82, 83, 70, 59, 47, 81, 83, 67, 79, 70, 54, 81, 92, 82, 54, 52, 57, 67, 59, 61, 62, 64, 53, 59, 90, 64, 68, 63, 64, 58, 57, 69, 46, 74, 79, 51, 63, 82, 70, 76, 61, 68, 56, 58, 87, 47, 63, 56, 72, 69, 58, 68, 80, 63, 50, 63, 52, 62, 60, 55, 76, 53, 51, 61, 75, 66, 73, 67, 59, 54, 110, 64, 63, 71, 68, 66, 58, 59, 80, 38, 55, 47, 85, 82, 78, 87, 59, 74, 59, 65, 72, 65, 69, 64, 50, 73, 67, 89, 68, 99, 64, 62, 98, 70, 63, 65, 58, 67, 96, 47, 62, 56, 41, 61, 71, 55, 59, 83, 54, 59, 66, 73, 69, 62, 56, 69, 50, 78, 58, 62, 61, 63, 66, 62, 54, 89, 67, 79, 69, 68, 98, 77, 58, 59, 88, 65, 81, 76, 68, 55, 96, 58, 56, 57, 86, 62, 52, 60, 79, 63, 67, 76, 66, 71, 103, 66, 68, 65, 65, 70, 65, 58, 99, 54, 56, 82, 60, 67, 57, 74, 61, 70, 72, 75, 65, 71, 57, 65, 64, 63, 61, 73, 72, 69, 87, 75, 72, 74, 80, 57, 59, 56, 60, 85, 62, 69, 57, 63, 63, 57, 57, 64, 65, 74, 52, 117, 90, 60, 58, 61, 57, 62, 52, 68, 65, 53, 66, 89, 78, 79, 68, 69, 87, 60, 56, 75, 51, 59, 76, 51, 67, 50, 62, 61, 97, 79, 49, 50, 78, 61, 77, 62, 80, 61, 47, 62, 51, 51, 88, 64, 64, 61, 80, 89, 92, 69, 59, 46, 50, 70, 64, 68, 61, 67, 72, 63, 83, 62, 69, 56, 60, 62, 57, 65, 57, 69, 70, 69, 67, 43, 53, 93, 95, 63, 52, 58, 68, 57, 64, 62, 57, 57, 59, 57, 68, 57, 52, 67, 66, 75, 62, 60, 50, 70, 65, 82, 63, 53, 62, 55, 62, 63, 58, 60, 77, 72, 53, 46, 55, 58, 88, 71, 59, 64, 51, 66, 50, 55, 58, 45, 62, 81, 53, 59, 61, 61, 75, 47, 66, 70, 76, 47, 71, 63, 61, 61, 61, 61, 67, 68, 71, 89, 54, 93, 69, 57, 64, 80, 65, 111, 63, 74, 57, 37, 63, 75, 50, 64, 73, 66, 59, 56, 63, 67, 67, 69, 68, 66, 99, 79, 67, 74, 61, 58, 61, 54, 88, 63, 81, 75, 55, 56, 43, 63, 53, 63, 62, 62, 66, 66, 66, 66, 65, 61, 53, 53, 64, 66, 59, 64, 67, 61, 46, 73, 76, 66, 69, 77, 59, 54, 68, 103, 68, 71, 83, 55, 63, 74, 62, 76, 62, 60, 62, 60, 91, 66, 65, 64, 67, 58, 44, 81, 74, 53, 78, 68, 73, 55, 41, 67, 71, 62, 56, 58, 74, 70, 58, 52, 48, 105, 91, 55, 78, 58, 82, 68, 50, 76, 113, 60, 94, 63, 58, 77, 54, 61, 61, 59, 81, 74, 68, 66, 61, 63, 71, 88, 63, 58, 71, 69, 78, 56, 52, 71, 52, 79, 53, 57, 60, 45, 78, 57, 64, 85, 80, 57, 64, 56, 64, 60, 75, 56, 61, 59, 79, 50, 67, 76, 56, 69, 58, 56, 74, 64, 89, 69, 46, 82, 52, 55, 101, 77, 56, 63, 57, 76, 60, 55, 53, 51, 75, 56, 77, 64, 73, 67, 44, 64, 55, 67, 71, 66, 78, 77, 65, 60, 62, 64, 66, 73, 59, 43, 60, 57, 56, 52, 60, 66, 57, 70, 64, 59, 71, 60, 67, 58, 63, 56, 59, 70, 66, 54, 28, 69, 54, 62, 58, 60, 64, 53, 61, 76, 72, 58, 51, 61, 59, 65, 59, 59, 87, 61, 65, 72, 57, 51, 72, 101, 68, 79, 59, 111, 62, 75, 73, 46, 70, 70, 93, 58, 66, 115, 72, 50, 55, 61, 71, 59, 57, 68, 72, 55, 64, 84, 84, 62, 67, 59, 64, 59, 42, 63, 61, 73, 88, 93, 60, 56, 84, 48, 68, 56, 57, 89, 63, 63, 60, 47, 58, 74, 62, 65, 64, 78, 55, 73, 60, 64, 54, 75, 63, 59, 60, 52, 55, 61, 53, 59, 63, 73, 75, 119, 59, 55, 68, 70, 71, 84, 63, 54, 74, 69, 70, 65, 74, 66, 60, 72, 58, 54, 84, 54, 66, 61, 96, 67, 53, 61, 47, 58, 63, 67, 75, 60, 72, 72, 87, 81, 86, 69, 80, 55, 71, 42, 70, 81, 80, 76, 67, 61, 51, 65, 54, 55, 60, 57, 67, 79, 54, 51, 70, 80, 55, 69, 60, 64, 66, 54, 62, 73, 67, 79, 56, 64, 74, 105, 59, 54, 59, 57, 65, 62, 80, 124, 57, 63, 86, 57, 58, 66, 66, 62, 61, 81, 87, 57, 76, 71, 69, 58, 63, 79, 50, 77, 66, 63, 76, 76, 71, 79, 63, 83, 80, 62, 65, 63, 43, 63, 73, 83, 66, 61, 54, 53, 93, 59, 62, 49, 60, 60, 60, 104, 68, 52, 81, 55, 73, 61, 69, 88, 96, 77, 57, 58, 61, 70, 56, 63, 58, 74, 76, 60, 59, 58, 69, 48, 60, 53, 60, 64, 92, 63, 61, 68, 66, 133, 55, 60, 51, 74, 98, 61, 63, 76, 73, 56, 65, 70, 59, 76, 67, 58, 61, 56, 49, 98, 66, 71, 58, 52, 56, 62, 71, 69, 63, 74, 39, 67, 61, 73, 56, 64, 52, 57, 72, 62, 59, 85, 58, 60, 78, 76, 67, 71, 78, 65, 69, 94, 68, 59, 68, 84, 73, 63, 79, 85, 73, 47, 66, 53, 60, 87, 72, 46, 58, 64, 50, 78, 66, 67, 90, 75, 72, 79, 66, 64, 52, 48, 54, 68, 49, 53, 75, 63, 59, 66, 60, 72, 64, 83, 84, 83, 61, 58, 75, 42, 63, 54, 47, 65, 53, 75, 80, 80, 75, 62, 58, 68, 63, 62, 82, 55, 49, 126, 63, 62, 45, 57, 66, 53, 58, 77, 48, 51, 88, 79, 56, 49, 60, 61, 58, 63, 90, 63, 60, 61, 77, 77, 63, 63, 52, 91, 68, 46, 104, 63, 60, 62, 63, 65, 61, 99, 69, 78, 68, 70, 69, 63, 62, 51, 63, 63, 64, 67, 67, 54, 59, 61, 70, 63, 62, 57, 55, 77, 60, 63, 98, 73, 63, 71, 56, 73, 59, 69, 61, 63, 70, 61, 58, 64, 70, 56, 76, 61, 51, 100, 61, 77, 75, 56, 66, 99, 85, 67, 64, 71, 51, 61, 82, 63, 83, 60, 59, 76, 79, 75, 67, 87, 65, 54, 75, 63, 69, 53, 76, 53, 49, 62, 64, 60, 69, 73, 63, 51, 72, 67, 67, 76, 68, 71, 64, 78, 70, 60, 47, 76, 98, 78, 65, 61, 58, 59, 82, 67, 69, 57, 57, 95, 66, 47, 95, 54, 75, 99, 64, 71, 74, 71, 61, 46, 67, 58, 55, 53, 67, 60, 77, 53, 89, 57, 67, 61, 50, 63, 43, 50, 63, 59, 57, 70, 78, 59, 72, 54, 53, 58, 65, 82, 61, 124, 77, 73, 69, 51, 84, 86, 56, 70, 86, 34, 87, 60, 58, 56, 63, 66, 54, 54, 84, 63, 76, 61, 55, 71, 70, 64, 57, 54, 88, 71, 54, 53, 76, 45, 52, 62, 61, 73, 45, 53, 84, 55, 54, 72, 52, 65, 63, 52, 71, 75, 62, 54, 53, 65, 63, 71, 61, 57, 58, 71, 75, 87, 70, 46, 64, 63, 57, 76, 59, 88, 137, 55, 62, 55, 56, 48, 51, 79, 77, 124, 54, 57, 59, 64, 63, 64, 68, 51, 79, 55, 54, 83, 54, 81, 60, 62, 68, 54, 60, 75, 89, 63, 60, 56, 64, 51, 43, 75, 78, 75, 61, 64, 47, 69, 65, 74, 52, 55, 48, 63, 53, 56, 83, 76, 85, 65, 67, 73, 68, 49, 43, 48, 60, 61, 57, 67, 62, 58, 84, 52, 59, 58, 36, 43, 45, 82, 53, 82, 81, 101, 65, 58, 68, 54, 50, 56, 81, 83, 50, 57, 51, 81, 68, 71, 68, 46, 65, 56, 98, 74, 71, 53, 65, 59, 65, 72, 70, 63, 72, 70, 52, 70, 66, 54, 58, 63, 57, 73, 61, 78, 63, 41, 62, 57, 76, 56, 72, 32, 78, 64, 61, 57, 69, 47, 55, 73, 44, 82, 63, 52, 66, 61, 87, 54, 69, 71, 61, 52, 71, 61, 53, 77, 62, 45, 63, 73, 59, 81, 64, 66, 32, 59, 62, 86, 48, 71, 50, 58, 106, 50, 56, 65, 50, 53, 84, 62, 62, 65, 55, 78, 63, 64, 72, 88, 68, 72, 59, 67, 43, 43, 54, 66, 71, 74, 53, 68, 122, 60, 61, 65, 61, 59, 58, 80, 81, 72, 60, 67, 61, 65, 67, 74, 61, 72, 79, 69, 72, 68, 76, 67, 69, 63, 73, 56, 77, 74, 70, 69, 67, 53, 66, 62, 63, 67, 57, 71, 77, 59, 64, 71, 56, 42, 83, 71, 69, 62, 69, 60, 82, 63, 62, 58, 54, 69, 62, 70, 65, 54, 107, 62, 69, 55, 52, 102, 86, 49, 116, 81, 47, 78, 63, 71, 109, 59, 125, 86, 87, 73, 48, 80, 72, 66, 77, 116, 40, 70, 54, 60, 75, 59, 79, 59, 64, 74, 80, 53, 73, 88, 66, 59, 52, 63, 58, 49, 40, 75, 58, 67, 70, 75, 82, 48, 59, 67, 75, 70, 93, 62, 67, 71, 88, 62, 66, 52, 62, 73, 51, 85, 69, 60, 54, 89, 57, 72, 71, 63, 64, 69, 64, 58, 71, 60, 74, 50, 38, 53, 48, 47, 78, 59, 67, 38, 67, 63, 72, 69, 69, 59, 66, 79, 41, 71, 43, 74, 58, 69, 60, 72, 63, 52, 71, 60, 55, 59, 74, 68, 83, 64, 77, 62, 66, 67, 76, 65, 51, 80, 71, 70, 64, 53, 71, 57, 48, 75, 87, 64, 72, 57, 51, 59, 68, 73, 59, 69, 84, 63, 53, 61, 97, 85, 41, 74, 69, 65, 62, 119, 70, 84, 125, 59, 88, 62, 91, 65, 60, 75, 54, 74, 85, 76, 84, 69, 81, 74, 53, 59, 65, 68, 66, 74, 50, 63, 64, 64, 57, 65, 73, 97, 63, 110, 75, 55, 102, 63, 63, 70, 38, 64, 51, 81, 66, 60, 59, 82, 62, 60, 68, 72, 63, 90, 60, 62, 62, 57, 72, 82, 58, 69, 64, 63, 51, 67, 56, 60, 75, 97, 80, 61, 139, 62, 67, 75, 71, 57, 62, 62, 67, 61, 65, 78, 66, 73, 79, 70, 73, 56, 62, 68, 66, 86, 70, 70, 79, 66, 66, 82, 63, 41, 63, 69, 71, 58, 75, 56, 48, 72, 64, 74, 59, 91, 44, 79, 86, 64, 55, 70, 59, 62, 59, 58, 57, 82, 50, 64, 71, 62, 77, 63, 81, 71, 60, 71, 44, 61, 46, 70, 68, 61, 63, 58, 77, 77, 60, 66, 58, 53, 72, 116, 54, 67, 53, 59, 51, 69, 67, 62, 56, 62, 62, 62, 88, 69, 95, 52, 58, 89, 83, 79, 68, 74, 51, 79, 63, 63, 56, 73, 80, 64, 108, 57, 65, 74, 53, 44, 73, 70, 51, 71, 67, 72, 70, 63, 52, 48, 80, 58, 51, 63, 85, 71, 72, 49, 60, 93, 73, 58, 50, 59, 64, 56, 61, 60, 101, 71, 73, 60, 69, 93, 63, 58, 65, 65, 66, 63, 80, 77, 77, 48, 50, 97, 52, 56, 79, 91, 73, 62, 56, 61, 63, 71, 82, 69, 52, 55, 84, 76, 86, 69, 85, 57, 76, 64, 61, 63, 75, 58, 58, 68, 64, 63, 65, 56, 56, 65, 80, 58, 65, 74, 68, 52, 49, 58, 54, 103, 73, 68, 50, 74, 64, 86, 73, 68, 85, 61, 69, 62, 52, 93, 58, 75, 57, 70, 64, 65, 59, 82, 62, 40, 72, 59, 63, 81, 64, 57, 99, 65, 70, 73, 70, 61, 75, 72, 60, 66, 51, 53, 86, 55, 72, 46, 65, 67, 65, 76, 58, 106, 63, 59, 84, 32, 63, 56, 68, 50, 72, 79, 71, 49, 63, 56, 66, 69, 68, 54, 65, 56, 73, 120, 71, 46, 50, 57, 65, 63, 57, 78, 57, 82, 68, 57, 72, 55, 45, 59, 73, 89, 68, 83, 69, 64, 69, 78, 63, 89, 54, 67, 53, 42, 47, 65, 62, 65, 53, 81, 51, 60, 77, 82, 64, 66, 77, 58, 63, 74, 69, 43, 55, 57, 54, 67, 69, 66, 57, 54, 75, 55, 63, 131, 113, 77, 71, 56, 62, 68, 46, 86, 50, 67, 58, 52, 71, 65, 61, 52, 63, 56, 61, 55, 80, 77, 88, 94, 87, 51, 57, 91, 73, 58, 59, 60, 49, 60, 78, 56, 81, 76, 65, 66, 68, 71, 64, 71, 47, 62, 60, 44, 47, 58, 69, 56, 77, 84, 63, 103, 67, 78, 96, 59, 69, 53, 56, 57, 68, 66, 69, 48, 47, 69, 74, 54, 57, 86, 68, 60, 58, 90, 62, 81, 80, 57, 73, 81, 55, 57, 74, 70, 60, 56, 65, 53, 81, 52, 52, 98, 82, 60, 62, 78, 52, 61, 60, 66, 60, 62, 55, 73, 46, 56, 59, 85, 75, 60, 56, 63, 71, 64, 58, 79, 70, 58, 66, 65, 76, 71, 61, 46, 81, 73, 86, 78, 65, 60, 80, 63, 60, 31, 69, 67, 72, 65, 71, 50, 65, 54, 71, 64, 70, 60, 64, 71, 63, 64, 72, 70, 57, 38, 69, 67, 54, 45, 61, 71, 64, 50, 47, 54, 62, 62, 89, 59, 60, 53, 55, 62, 68, 78, 81, 67, 59, 66, 69, 68, 51, 51, 55, 86, 77, 66, 87, 72, 62, 70, 66, 63, 106, 80, 72, 108, 67, 49, 57, 56, 53, 69, 54, 72, 58, 98, 55, 62, 76, 76, 72, 64, 52, 124, 108, 69, 58, 45, 57, 78, 62, 78, 90, 70, 60, 52, 68, 68, 53, 63, 65, 62, 50, 87, 79, 59, 69, 61, 69, 62, 57, 66, 78, 53, 69, 67, 73, 66, 49, 58, 65, 71, 77, 82, 53, 68, 62, 68, 55, 63, 49, 61, 59, 63, 59, 54, 77, 60, 75, 49, 77, 51, 64, 55, 74, 99, 73, 62, 69, 60, 73, 59, 56, 58, 94, 41, 77, 85, 72, 49, 86, 68, 55, 50, 52, 70, 56, 68, 66, 63, 64, 70, 63, 62, 72, 69, 91, 76, 61, 60, 64, 68, 64, 51, 60, 78, 58, 77, 84, 106, 71, 51, 68, 60, 52, 63, 51, 49, 55, 53, 71, 74, 54, 91, 87, 72, 85, 72, 64, 77, 54, 57, 83, 59, 63, 50, 67, 91, 79, 90, 46, 57, 62, 75, 72, 62, 105, 76, 80, 35, 84, 49, 64, 47, 62, 71, 71, 51, 67, 46, 51, 60, 72, 52, 53, 87, 62, 82, 58, 69, 63, 80, 49, 54, 48, 57, 70, 92, 62, 49, 74, 64, 63, 101, 68, 75, 66, 70, 63, 59, 57, 67, 65, 71, 72, 57, 67, 61, 49, 68, 69, 55, 89, 47, 57, 49, 85, 81, 69, 67, 66, 88, 47, 63, 57, 66, 44, 65, 62, 59, 75, 69, 75, 68, 58, 58, 59, 78, 56, 52, 64, 55, 50, 100, 57, 76, 51, 73, 62, 46, 65, 82, 61, 93, 79, 68, 74, 69, 37, 55, 56, 63, 70, 70, 43, 50, 100, 67, 59, 62, 75, 54, 64, 83, 78, 70, 60, 61, 58, 54, 78, 74, 68, 74, 63, 67, 55, 58, 53, 65, 67, 58, 48, 64, 79, 75, 94, 69, 58, 71, 64, 64, 57, 82, 59, 67, 71, 50, 68, 58, 74, 65, 86, 66, 70, 74, 66, 82, 67, 64, 71, 52, 69, 77, 45, 75, 76, 78, 57, 66, 59, 77, 65, 79, 71, 73, 71, 60, 60, 60, 63, 50, 71, 74, 58, 66, 56, 78, 64, 77, 62, 82, 70, 60, 70, 85, 68, 76, 61, 129, 59, 68, 50, 63, 60, 53, 62, 50, 100, 71, 46, 49, 68, 63, 61, 58, 63, 71, 66, 65, 78, 75, 105, 67, 66, 44, 79, 111, 52, 71, 83, 60, 77, 68, 57, 56, 84, 82, 52, 65, 52, 63, 50, 53, 50, 67, 63, 93, 81, 41, 100, 45, 65, 76, 47, 59, 83, 69, 67, 70, 75, 54, 67, 74, 61, 69, 60, 80, 65, 79, 84, 77, 62, 66, 65, 85, 59, 78, 51, 59, 63, 44, 65, 92, 61, 63, 75, 59, 69, 60, 60, 96, 56, 95, 67, 60, 70, 66, 61, 66, 63, 78, 52, 53, 52, 56, 69, 64, 61, 72, 62, 63, 48, 63, 60, 39, 71, 64, 86, 65, 64, 60, 51, 63, 60, 88, 70, 62, 61, 62, 67, 53, 52, 75, 92, 70, 53, 51, 60, 60, 56, 57, 55, 51, 66, 55, 53, 78, 79, 54, 60, 84, 47, 81, 44, 70, 64, 88, 59, 53, 70, 89, 77, 51, 109, 62, 65, 59, 61, 67, 63, 62, 76, 62, 59, 72, 61, 77, 61, 68, 62, 59, 53, 55, 68, 54, 57, 67, 58, 64, 74, 59, 78, 52, 67, 66, 62, 73, 58, 67, 59, 63, 53, 65, 70, 57, 56, 65, 65, 66, 60, 91, 79, 69, 87, 62, 65, 52, 75, 78, 77, 95, 78, 66, 57, 63, 69, 75, 77, 72, 41, 65, 56, 70, 82, 48, 67, 67, 60, 87, 83, 57, 65, 70, 64, 67, 53, 73, 55, 60, 39, 78, 62, 82, 71, 60, 75, 59, 92, 74, 66, 72, 63, 51, 96, 49, 55, 64, 68, 65, 55, 69, 54, 66, 65, 65, 67, 64, 64, 60, 49, 72, 62, 55, 61, 86, 85, 54, 63, 67, 58, 59, 54, 60, 63, 46, 63, 60, 62, 103, 52, 55, 71, 66, 56, 93, 63, 55, 48, 60, 60, 66, 70, 47, 68, 64, 71, 82, 61, 55, 47, 55, 70, 54, 79, 64, 54, 54, 62, 55, 76, 59, 49, 56, 69, 90, 63, 80, 47, 72, 55, 60, 74, 55, 52, 75, 66, 76, 66, 57, 80, 78, 58, 78, 57, 75, 68, 73, 86, 65, 93, 62, 42, 72, 66, 71, 77, 47, 50, 66, 75, 55, 80, 92, 65, 56, 66, 70, 58, 66, 49, 65, 50, 75, 62, 65, 105, 56, 67, 101, 84, 70, 55, 53, 69, 65, 75, 59, 76, 70, 101, 56, 73, 61, 66, 59, 66, 61, 71, 80, 52, 60, 59, 60, 67, 57, 86, 65, 65, 64, 78, 76, 49, 46, 62, 75, 76, 69, 54, 67, 53, 92, 64, 46, 77, 61, 53, 66, 79, 68, 83, 62, 78, 63, 66, 70, 55, 52, 47, 45, 55, 64, 51, 62, 57, 100, 51, 55, 51, 37, 94, 52, 47, 71, 78, 64, 55, 69, 75, 67, 69, 57, 74, 72, 73, 55, 67, 76, 82, 69, 110, 63, 69, 75, 59, 68, 66, 87, 72, 76, 58, 84, 60, 70, 71, 64, 60, 52, 58, 49, 72, 79, 56, 72, 64, 65, 66, 44, 71, 79, 69, 80, 43, 72, 54, 63, 68, 82, 77, 47, 53, 75, 52, 62, 59, 58, 49, 73, 51, 60, 62, 84, 60, 65, 60, 84, 59, 67, 62, 68, 48, 56, 70, 65, 74, 61, 74, 71, 104, 45, 48, 70, 62, 93, 61, 89, 46, 60, 74, 61, 53, 58, 43, 58, 111, 71, 53, 73, 76, 49, 66, 72, 44, 59, 70, 62, 61, 55, 59, 58, 69, 68, 55, 74, 61, 69, 64, 65, 71, 96, 67, 60, 54, 67, 65, 90, 70, 57, 57, 66, 70, 60, 101, 69, 59, 67, 66, 55, 84, 53, 60, 75, 65, 60, 82, 87, 51, 76, 52, 84, 71, 65, 64, 68, 64, 48, 62, 85, 64, 66, 61, 90, 60, 53, 49, 55, 101, 88, 57, 69, 70, 63, 73, 70, 46, 92, 62, 78, 82, 81, 86, 60, 48, 62, 41, 63, 38, 46, 50, 65, 75, 50, 58, 59, 87, 86, 64, 67, 66, 88, 67, 72, 62, 71, 60, 43, 63, 59, 97, 96, 64, 77, 86, 49, 69, 56, 53, 65, 72, 67, 53, 69, 59, 49, 87, 103, 66, 88, 70, 63, 93, 68, 78, 64, 61, 79, 47, 68, 54, 67, 49, 65, 66, 82, 58, 55, 72, 74, 62, 61, 71, 61, 60, 63, 76, 82, 48, 69, 72, 59, 77, 72, 65, 58, 56, 87, 69, 49, 64, 104, 70, 82, 85, 68, 57, 59, 71, 58, 47, 85, 67, 88, 50, 64, 80, 69, 62, 70, 50, 69, 53, 51, 133, 64, 76, 48, 77, 51, 63, 49, 63, 71, 58, 53, 93, 79, 66, 54, 60, 91, 47, 60, 51, 82, 60, 61, 66, 73, 60, 97, 66, 66, 48, 78, 58, 76, 75, 71, 72, 42, 63, 75, 63, 65, 65, 62, 72, 71, 79, 61, 67, 55, 51, 91, 81, 60, 57, 70, 71, 60, 61, 66, 62, 70, 74, 68, 88, 62, 77, 85, 64, 70, 38, 59, 62, 56, 55, 64, 87, 107, 47, 78, 79, 60, 84, 67, 74, 53, 64, 54, 63, 37, 72, 74, 59, 65, 56, 78, 79, 63, 111, 55, 45, 61, 86, 76, 63, 87, 55, 49, 62, 68, 76, 52, 60, 67, 78, 52, 80, 41, 90, 61, 75, 63, 64, 60, 71, 57, 71, 72, 71, 51, 72, 61, 73, 116, 70, 71, 59, 71, 50, 91, 96, 74, 60, 57, 85, 54, 57, 63, 50, 84, 64, 50, 77, 91, 52, 86, 63, 54, 72, 69, 62, 67, 54, 78, 67, 72, 48, 53, 88, 70, 50, 59, 54, 53, 49, 57, 57, 57, 78, 51, 58, 57, 58, 113, 47, 61, 58, 91, 71, 61, 64, 52, 55, 59, 40, 89, 88, 62, 79, 80, 66, 70, 54, 68, 69, 73, 78, 62, 92, 46, 90, 70, 64, 59, 86, 85, 62, 61, 49, 68, 59, 61, 76, 60, 52, 55, 67, 75, 91, 80, 63, 61, 61, 59, 57, 63, 64, 76, 50, 83, 76, 81, 67, 58, 102, 89, 59, 60, 71, 107, 63, 70, 80, 52, 60, 57, 111, 58, 61, 100, 64, 68, 63, 74, 47, 62, 57, 84, 56, 69, 59, 49, 63, 61, 53, 101, 89, 54, 84, 99, 80, 63, 76, 68, 70, 75, 65, 71, 58, 99, 70, 35, 62, 66, 57, 71, 44, 55, 86, 64, 84, 65, 65, 61, 54, 99, 58, 60, 70, 114, 61, 56, 55, 61, 57, 71, 48, 66, 70, 68, 56, 98, 96, 53, 55, 59, 62, 76, 58, 54, 67, 55, 68, 70, 67, 55, 53, 67, 64, 83, 56, 66, 51, 89, 57, 55, 28, 67, 47, 82, 59, 109, 63, 67, 67, 85, 63, 52, 59, 64, 58, 70, 59, 81, 47, 66, 61, 89, 64, 67, 64, 65, 46, 48, 59, 55, 51, 74, 75, 50, 89, 81, 68, 61, 106, 53, 62, 68, 69, 62, 48, 68, 113, 80, 67, 53, 99, 66, 41, 60, 63, 57, 54, 61, 59, 50, 61, 62, 51, 57, 113, 64, 93, 53, 26, 81, 60, 75, 57, 70, 55, 79, 55, 100, 64, 42, 63, 62, 74, 72, 79, 68, 57, 74, 82, 59, 55, 64, 76, 56, 69, 59, 45, 52, 56, 63, 66, 47, 51, 52, 67, 35, 89, 26, 45, 46, 48, 54, 55, 75, 49, 81, 62, 59, 65, 70, 64, 57, 56, 88, 63, 61, 53, 75, 63, 57, 69, 70, 73, 47, 67, 48, 81, 49, 57, 69, 67, 72, 61, 49, 68, 64, 85, 76, 44, 45, 57, 44, 71, 57, 59, 62, 99, 52, 54, 64, 77, 87, 59, 66, 63, 56, 62, 109, 41, 62, 60, 61, 56, 82, 74, 60, 69, 45, 62, 53, 56, 85, 55, 51, 65, 59, 79, 71, 61, 73, 87, 65, 39, 59, 68, 55, 57, 80, 79, 65, 74, 70, 55, 56, 58, 59, 68, 64, 51, 60, 71, 97, 115, 54, 76, 49, 112, 93, 89, 56, 60, 68, 54, 66, 46, 61, 47, 100, 82, 56, 51, 72, 67, 101, 67, 85, 66, 62, 78, 59, 52, 55, 63, 67, 69, 61, 41, 57, 60, 54, 69, 80, 61, 67, 130, 51, 67, 57, 62, 61, 48, 59, 58, 59, 44, 75, 82, 95, 44, 77, 69, 77, 55, 63, 62, 74, 61, 78, 71, 74, 55, 57, 101, 52, 65, 71, 65, 73, 60, 70, 41, 45, 49, 69, 65, 63, 54, 103, 46, 52, 66, 79, 88, 65, 51, 51, 76, 70, 67, 50, 57, 74, 65, 52, 73, 48, 55, 62, 72, 89, 68, 111, 78, 64, 50, 78, 59, 41, 51, 68, 48, 64, 67, 60, 84, 83, 89, 69, 92, 57, 84, 70, 51, 51, 75, 57, 76, 63, 85, 62, 76, 86, 59, 64, 75, 66, 57, 53, 70, 46, 76, 61, 76, 69, 84, 85, 64, 83, 48, 48, 58, 79, 77, 72, 55, 42, 57, 51, 71, 71, 76, 67, 57, 69, 52, 73, 84, 72, 87, 75, 88, 61, 60, 76, 80, 59, 110, 87, 72, 54, 48, 78, 46, 106, 89, 77, 52, 50, 50, 66, 65, 73, 61, 62, 78, 59, 47, 81, 80, 63, 51, 63, 61, 86, 58, 69, 72, 74, 71, 42, 62, 63, 49, 65, 63, 46, 62, 76, 86, 55, 66, 85, 65, 67, 80, 69, 55, 70, 64, 70, 56, 65, 60, 76, 54, 65, 64, 63, 65, 76, 78, 59, 71, 82, 57, 59, 40, 75, 81, 81, 56, 101, 85, 70, 61, 58, 50, 57, 95, 84, 58, 75, 82, 73, 65, 62, 77, 60, 64, 59, 50, 61, 54, 106, 61, 60, 69, 70, 65, 50, 66, 62, 55, 70, 66, 67, 64, 64, 51, 58, 58, 63, 63, 63, 59, 56, 59, 56, 75, 57, 90, 66, 64, 55, 62, 66, 71, 69, 67, 64, 41, 73, 74, 62, 59, 59, 65, 55, 62, 64, 68, 60, 74, 72, 70, 61, 43, 55, 54, 63, 70, 47, 85, 58, 79, 60, 75, 54, 48, 93, 62, 67, 66, 63, 74, 61, 70, 49, 56, 58, 92, 56, 88, 57, 63, 67, 68, 80, 74, 89, 50, 71, 62, 70, 61, 71, 60, 70, 62, 66, 68, 57, 62, 64, 123, 68, 48, 60, 41, 101, 62, 84, 74, 52, 63, 53, 72, 71, 67, 48, 75, 72, 72, 70, 71, 81, 66, 65, 60, 64, 55, 72, 62, 80, 53, 53, 55, 66, 50, 63, 64, 40, 76, 88, 44, 74, 56, 39, 55, 67, 70, 74, 71, 48, 66, 68, 64, 79, 51, 70, 55, 47, 68, 119, 78, 114, 67, 55, 37, 79, 60, 69, 61, 63, 94, 70, 55, 58, 29, 73, 75, 82, 50, 59, 72, 85, 58, 67, 97, 67, 68, 67, 65, 79, 66, 68, 49, 74, 60, 66, 86, 77, 73, 70, 56, 79, 65, 71, 59, 67, 67, 60, 66, 62, 69, 60, 67, 77, 60, 67, 57, 93, 56, 52, 40, 76, 68, 70, 74, 79, 64, 66, 90, 66, 49, 66, 66, 104, 61, 64, 63, 71, 53, 75, 77, 62, 58, 100, 87, 95, 57, 53, 62, 45, 68, 77, 57, 59, 66, 66, 67, 67, 56, 49, 99, 52, 66, 61, 98, 54, 64, 46, 49, 71, 95, 45, 76, 73, 64, 66, 66, 74, 53, 43, 67, 66, 76, 64, 67, 59, 47, 76, 48, 60, 73, 84, 63, 71, 64, 64, 39, 60, 67, 61, 65, 119, 57, 75, 84, 53, 86, 56, 71, 58, 73, 101, 54, 65, 72, 57, 65, 69, 51, 63, 64, 86, 82, 76, 79, 74, 51, 55, 61, 70, 61, 52, 53, 74, 51, 60, 66, 67, 74, 75, 60, 68, 91, 51, 81, 58, 60, 68, 78, 72, 79, 59, 113, 72, 75, 65, 55, 62, 52, 67, 57, 66, 65, 59, 57, 72, 64, 69, 36, 81, 72, 92, 77, 72, 57, 99, 52, 44, 69, 70, 93, 64, 68, 70, 70, 60, 69, 49, 78, 88, 80, 68, 67, 64, 112, 66, 71, 61, 66, 80, 53, 59, 74, 65, 111, 57, 65, 52, 64, 45, 62, 43, 78, 61, 80, 66, 58, 82, 63, 64, 49, 86, 89, 75, 88, 90, 89, 98, 82, 67, 74, 64, 53, 60, 60, 79, 66, 42, 40, 48, 64, 57, 71, 69, 51, 121, 66, 58, 60, 69, 61, 77, 58, 58, 48, 58, 65, 56, 66, 73, 64, 70, 66, 51, 60, 61, 61, 87, 87, 65, 65, 46, 76, 61, 51, 81, 63, 57, 51, 77, 58, 86, 98, 83, 84, 67, 64, 62, 48, 64, 60, 75, 65, 100, 62, 57, 60, 77, 76, 67, 73, 43, 66, 61, 60, 60, 46, 64, 69, 77, 72, 80, 50, 40, 68, 54, 59, 92, 71, 49, 55, 86, 61, 49, 37, 61, 95, 60, 53, 73, 37, 48, 51, 66, 74, 81, 62, 57, 56, 41, 63, 90, 60, 69, 85, 57, 62, 85, 66, 66, 79, 66, 74, 74, 84, 48, 78, 54, 58, 78, 60, 58, 73, 65, 69, 64, 74, 67, 62, 109, 55, 75, 60, 60, 79, 47, 79, 58, 67, 55, 53, 53, 63, 57, 65, 54, 53, 47, 69, 73, 64, 67, 63, 66, 79, 70, 61, 70, 56, 54, 74, 52, 59, 55, 77, 63, 79, 61, 59, 62, 89, 77, 50, 55, 64, 52, 55, 53, 82, 52, 49, 62, 61, 60, 53, 60, 46, 56, 60, 69, 80, 65, 57, 42, 57, 61, 79, 72, 50, 49, 70, 70, 68, 66, 54, 62, 66, 77, 58, 72, 56, 66, 57, 45, 70, 54, 57, 68, 66, 70, 76, 67, 91, 62, 75, 66, 48, 76, 44, 60, 86, 66, 77, 49, 74, 47, 80, 45, 65, 62, 60, 78, 59, 48, 68, 60, 51, 51, 50, 57, 67, 70, 79, 55, 51, 67, 28, 61, 65, 61, 51, 71, 96, 63, 78, 65, 59, 76, 67, 55, 118, 43, 55, 64, 86, 74, 66, 79, 72, 77, 58, 69, 60, 61, 58, 96, 67, 61, 62, 69, 60, 56, 43, 69, 59, 47, 72, 47, 54, 64, 64, 65, 63, 56, 82, 58, 67, 92, 43, 62, 77, 45, 82, 56, 76, 76, 64, 108, 53, 58, 57, 62, 80, 61, 58, 63, 46, 76, 84, 58, 52, 41, 58, 86, 69, 61, 78, 49, 72, 61, 100, 52, 60, 58, 99, 57, 68, 74, 63, 74, 46, 77, 63, 97, 94, 77, 66, 73, 56, 69, 58, 54, 45, 44, 38, 71, 59, 68, 71, 72, 62, 91, 80, 74, 72, 39, 53, 99, 95, 67, 58, 49, 80, 68, 66, 58, 80, 94, 48, 66, 66, 59, 106, 62, 76, 78, 84, 68, 70, 75, 67, 46, 77, 57, 52, 61, 55, 66, 78, 63, 72, 74, 66, 64, 110, 128, 66, 56, 72, 43, 55, 45, 51, 62, 57, 68, 58, 61, 60, 61, 78, 57, 77, 59, 69, 65, 61, 75, 61, 58, 61, 77, 82, 55, 64, 82, 96, 46, 68, 47, 67, 77, 73, 72, 71, 58, 80, 81, 56, 72, 53, 38, 76, 100, 75, 53, 47, 65, 65, 27, 68, 61, 65, 52, 67, 55, 71, 60, 46, 51, 145, 60, 54, 55, 69, 68, 89, 49, 61, 76, 88, 46, 71, 71, 68, 43, 64, 45, 59, 78, 62, 77, 60, 69, 56, 78, 65, 50, 56, 69, 62, 86, 61, 59, 63, 74, 73, 42, 59, 63, 63, 84, 57, 48, 45, 77, 67, 57, 72, 55, 63, 73, 75, 55, 80, 72, 56, 78, 73, 51, 42, 62, 59, 53, 65, 61, 67, 64, 64, 51, 56, 56, 60, 80, 62, 66, 58, 64, 80, 87, 48, 76, 90, 59, 69, 53, 47, 51, 51, 71, 49, 71, 70, 73, 67, 41, 60, 63, 74, 60, 70, 86, 54, 74, 63, 73, 85, 62, 63, 61, 70, 66, 49, 52, 81, 58, 65, 69, 68, 60, 93, 55, 61, 59, 69, 81, 71, 61, 64, 64, 95, 56, 71, 60, 62, 62, 72, 57, 53, 68, 62, 42, 66, 62, 63, 71, 74, 55, 53, 56, 57, 55, 58, 61, 72, 51, 48, 65, 57, 67, 57, 52, 52, 64, 64, 68, 57, 48, 47, 59, 60, 79, 70, 96, 71, 59, 50, 56, 62, 57, 85, 74, 113, 51, 62, 41, 63, 70, 80, 65, 40, 66, 59, 68, 70, 76, 63, 69, 67, 60, 77, 70, 74, 65, 95, 70, 62, 60, 58, 82, 86, 67, 41, 60, 64, 48, 68, 65, 63, 62, 70, 56, 71, 61, 56, 74, 47, 70, 70, 65, 68, 74, 50, 81, 63, 56, 78, 46, 62, 54, 61, 72, 70, 80, 65, 71, 68, 75, 57, 63, 65, 72, 70, 58, 62, 51, 67, 69, 55, 60, 58, 56, 57, 116, 73, 63, 61, 54, 56, 88, 65, 78, 59, 62, 99, 69, 76, 99, 66, 50, 88, 62, 64, 50, 72, 102, 55, 73, 83, 51, 73, 59, 77, 76, 56, 90, 87, 75, 57, 68, 71, 93, 66, 56, 50, 75, 61, 43, 68, 56, 87, 50, 66, 68, 72, 78, 75, 56, 66, 57, 47, 56, 62, 58, 80, 67, 47, 63, 64, 68, 54, 70, 74, 74, 51, 65, 66, 81, 68, 66, 51, 63, 58, 81, 72, 52, 64, 62, 83, 112, 69, 67, 65, 62, 89, 86, 53, 66, 51, 77, 70, 63, 60, 56, 99, 55, 55, 68, 65, 58, 54, 46, 65, 72, 84, 61, 81, 61, 99, 66, 54, 54, 56, 64, 76, 51, 53, 56, 53, 60, 67, 82, 53, 71, 46, 61, 67, 72, 58, 74, 50, 39, 42, 69, 64, 113, 45, 69, 57, 65, 74, 74, 66, 59, 85, 78, 59, 84, 56, 75, 42, 53, 65, 52, 62, 55, 70, 80, 64, 76, 49, 65, 63, 53, 79, 68, 53, 71, 66, 73, 82, 71, 59, 77, 73, 65, 95, 70, 52, 50, 50, 64, 65, 78, 80, 59, 114, 48, 91, 69, 76, 55, 51, 74, 69, 87, 68, 64, 62, 65, 76, 58, 50, 65, 62, 94, 104, 75, 75, 72, 63, 63, 64, 50, 65, 59, 69, 84, 61, 64, 69, 70, 82, 50, 60, 65, 53, 51, 84, 58, 68, 75, 57, 77, 63, 83, 70, 45, 115, 65, 63, 57, 53, 50, 55, 60, 92, 62, 81, 44, 68, 67, 65, 55, 62, 91, 94, 67, 70, 62, 75, 69, 78, 74, 65, 73, 63, 58, 86, 69, 65, 84, 66, 74, 60, 64, 63, 63, 58, 122, 56, 63, 65, 64, 67, 64, 64, 69, 43, 50, 70, 57, 69, 48, 63, 74, 70, 46, 55, 70, 54, 59, 69, 49, 75, 40, 52, 64, 62, 67, 51, 77, 51, 71, 45, 64, 93, 98, 89, 74, 49, 47, 85, 82, 61, 80, 75, 94, 57, 71, 64, 63, 65, 59, 57, 53, 61, 68, 69, 65, 37, 69, 72, 74, 53, 65, 64, 51, 53, 40, 57, 78, 64, 65, 54, 57, 66, 61, 78, 62, 77, 92, 71, 96, 67, 57, 79, 66, 45, 64, 69, 66, 61, 71, 57, 66, 59, 61, 121, 57, 62, 71, 63, 65, 61, 78, 75, 67, 77, 71, 96, 59, 62, 83, 72, 54, 68, 47, 59, 52, 63, 61, 58, 116, 62, 58, 73, 61, 71, 67, 58, 57, 61, 88, 57, 59, 61, 45, 56, 76, 51, 63, 79, 84, 58, 56, 59, 75, 48, 72, 66, 89, 75, 61, 50, 72, 50, 63, 59, 66, 70, 55, 78, 65, 29, 69, 64, 61, 65, 58, 47, 53, 53, 60, 57, 54, 63, 59, 84, 67, 58, 62, 50, 53, 59, 77, 83, 61, 65, 67, 55, 48, 78, 44, 73, 67, 62, 61, 54, 68, 70, 55, 64, 68, 60, 55, 63, 70, 68, 67, 60, 81, 83, 71, 87, 71, 66, 68, 56, 56, 61, 68, 64, 76, 79, 55, 82, 52, 63, 64, 83, 67, 66, 85, 64, 73, 60, 44, 56, 73, 53, 63, 47, 74, 55, 76, 68, 61, 69, 69, 74, 72, 61, 60, 67, 70, 101, 63, 61, 73, 60, 73, 61, 59, 128, 61, 54, 62, 72, 59, 50, 92, 75, 52, 56, 73, 49, 39, 63, 32, 57, 44, 75, 63, 39, 73, 66, 63, 52, 65, 78, 62, 54, 65, 75, 46, 62, 59, 101, 59, 76, 83, 64, 65, 66, 63, 62, 79, 59, 58, 64, 95, 71, 48, 65, 57, 54, 64, 68, 51, 59, 79, 77, 83, 77, 71, 43, 74, 87, 55, 67, 57, 60, 41, 87, 55, 59, 41, 77, 56, 56, 76, 65, 56, 51, 65, 64, 99, 81, 58, 77, 67, 74, 86, 52, 53, 67, 64, 70, 72, 71, 53, 70, 80, 66, 49, 75, 76, 49, 65, 51, 68, 86, 43, 58, 66, 87, 83, 65, 55, 79, 77, 63, 56, 57, 69, 118, 67, 73, 48, 62, 56, 68, 67, 75, 69, 77, 69, 61, 79, 59, 55, 99, 65, 76, 60, 51, 58, 91, 101, 75, 73, 73, 60, 58, 66, 60, 59, 64, 67, 55, 84, 88, 56, 66, 69, 78, 59, 64, 64, 49, 50, 56, 64, 65, 64, 62, 71, 74, 89, 101, 73, 62, 64, 64, 68, 72, 51, 81, 60, 77, 72, 73, 75, 50, 97, 64, 73, 62, 106, 63, 97, 76, 78, 39, 66, 75, 59, 69, 64, 62, 62, 61, 46, 65, 67, 68, 64, 58, 65, 78, 49, 63, 69, 77, 51, 79, 77, 84, 67, 64, 69, 57, 80, 61, 84, 53, 50, 52, 54, 71, 63, 71, 58, 57, 63, 80, 75, 40, 70, 58, 61, 70, 41, 88, 73, 55, 68, 115, 63, 48, 62, 69, 83, 53, 71, 60, 62, 63, 54, 46, 93, 69, 60, 59, 54, 52, 68, 63, 72, 44, 56, 57, 59, 65, 55, 60, 69, 73, 51, 83, 74, 73, 89, 61, 75, 74, 53, 58, 42, 61, 67, 52, 48, 45, 56, 74, 47, 67, 56, 83, 78, 53, 71, 72, 44, 61, 72, 55, 50, 59, 57, 48, 72, 52, 64, 61, 58, 63, 62, 72, 74, 54, 58, 67, 72, 52, 118, 59, 80, 73, 76, 69, 53, 59, 64, 45, 77, 68, 60, 64, 73, 59, 62, 75, 98, 84, 61, 65, 37, 53, 46, 68, 69, 54, 50, 79, 55, 61, 59, 41, 54, 56, 54, 50, 65, 67, 51, 53, 77, 43, 56, 62, 48, 87, 56, 64, 79, 80, 65, 64, 47, 52, 70, 58, 49, 91, 56, 63, 65, 60, 56, 77, 73, 56, 49, 60, 63, 70, 89, 61, 70, 63, 70, 61, 59, 58, 85, 110, 53, 71, 84, 62, 87, 61, 52, 91, 52, 84, 64, 55, 65, 41, 42, 79, 76, 69, 85, 59, 60, 80, 60, 58, 74, 84, 61, 61, 78, 65, 72, 42, 45, 58, 60, 71, 66, 83, 116, 60, 59, 76, 79, 49, 57, 58, 70, 69, 64, 82, 64, 73, 74, 51, 60, 60, 45, 55, 69, 77, 90, 58, 53, 35, 66, 83, 72, 44, 68, 83, 71, 64, 47, 34, 59, 91, 72, 60, 60, 59, 102, 58, 59, 86, 66, 56, 54, 71, 59, 66, 68, 32, 70, 73, 55, 116, 83, 85, 54, 51, 92, 72, 76, 57, 126, 84, 83, 66, 68, 65, 56, 68, 78, 53, 87, 50, 99, 74, 89, 68, 78, 62, 82, 70, 49, 67, 70, 87, 45, 62, 60, 61, 73, 74, 82, 58, 67, 60, 62, 50, 72, 70, 62, 70, 87, 67, 73, 58, 73, 96, 61, 71, 65, 49, 68, 85, 65, 59, 64, 67, 83, 81, 50, 90, 64, 57, 53, 62, 74, 79, 48, 67, 73, 51, 62, 52, 68, 73, 93, 78, 85, 50, 60, 76, 70, 70, 62, 52, 73, 56, 56, 79, 69, 46, 58, 50, 73, 66, 71, 50, 115, 79, 71, 58, 46, 78, 62, 71, 59, 60, 70, 58, 62, 61, 53, 73, 50, 65, 56, 60, 80, 57, 81, 55, 60, 67, 63, 51, 74, 88, 35, 75, 74, 59, 60, 57, 70, 58, 93, 72, 72, 77, 66, 77, 64, 63, 71, 64, 55, 36, 54, 101, 56, 78, 61, 75, 62, 52, 78, 57, 77, 56, 53, 65, 48, 74, 81, 80, 66, 76, 94, 57, 88, 73, 68, 63, 39, 64, 62, 65, 81, 67, 67, 80, 65, 77, 69, 63, 66, 70, 59, 43, 58, 98, 57, 62, 60, 75, 111, 75, 86, 50, 54, 96, 66, 67, 57, 58, 60, 68, 64, 55, 54, 66, 99, 56, 65, 55, 49, 71, 61, 85, 83, 59, 77, 88, 85, 78, 84, 55, 49, 61, 49, 70, 51, 65, 67, 53, 70, 53, 75, 59, 91, 57, 115, 54, 68, 65, 78, 79, 81, 77, 53, 54, 62, 71, 65, 78, 61, 46, 65, 62, 97, 62, 69, 57, 69, 99, 39, 59, 63, 74, 100, 77, 59, 57, 71, 64, 88, 73, 93, 80, 84, 54, 55, 40, 55, 50, 54, 68, 66, 65, 112, 59, 74, 72, 87, 61, 51, 77, 92, 73, 61, 53, 74, 66, 53, 58, 82, 57, 55, 56, 49, 51, 66, 78, 56, 57, 71, 55, 83, 75, 95, 41, 56, 58, 84, 51, 69, 81, 63, 61, 70, 66, 69, 59, 60, 66, 77, 104, 53, 67, 64, 104, 52, 75, 70, 62, 56, 52, 55, 50, 97, 75, 67, 63, 80, 63, 71, 58, 55, 80, 66, 96, 51, 82, 56, 58, 50, 67, 71, 44, 62, 62, 58, 68, 69, 50, 61, 62, 55, 62, 58, 55, 59, 64, 47, 70, 71, 82, 64, 101, 58, 62, 51, 68, 41, 93, 83, 74, 60, 65, 69, 64, 54, 77, 68, 81, 72, 80, 47, 91, 45, 69, 57, 58, 61, 74, 64, 65, 76, 74, 71, 77, 75, 59, 67, 65, 60, 78, 71, 56, 55, 65, 83, 64, 61, 58, 37, 69, 74, 43, 69, 71, 54, 62, 89, 89, 71, 40, 63, 86, 53, 70, 64, 58, 96, 41, 69, 61, 66, 70, 75, 61, 73, 99, 62, 72, 58, 75, 69, 74, 67, 53, 58, 116, 66, 91, 52, 69, 50, 49, 55, 65, 83, 67, 64, 64, 82, 87, 79, 58, 46, 31, 60, 60, 64, 47, 60, 59, 67, 59, 73, 60, 87, 59, 65, 36, 67, 109, 73, 42, 71, 62, 58, 86, 77, 50, 80, 57, 87, 65, 49, 64, 68, 61, 55, 86, 58, 50, 55, 66, 54, 63, 63, 76, 70, 59, 50, 66, 87, 76, 60, 57, 74, 71, 59, 61, 76, 52, 96, 77, 63, 74, 74, 44, 110, 78, 54, 55, 62, 68, 74, 49, 80, 68, 70, 81, 63, 85, 73, 66, 63, 69, 39, 58, 47, 70, 56, 103, 55, 62, 51, 95, 83, 58, 54, 59, 86, 63, 38, 57, 69, 91, 61, 69, 61, 62, 82, 50, 53, 74, 71, 50, 78, 76, 64, 69, 63, 54, 52, 58, 89, 79, 59, 75, 89, 51, 28, 64, 69, 60, 71, 62, 60, 52, 79, 57, 65, 67, 43, 103, 65, 71, 86, 75, 62, 67, 54, 69, 69, 76, 53, 59, 84, 74, 63, 86, 71, 71, 67, 66, 61, 102, 110, 56, 60, 69, 62, 79, 50, 61, 56, 52, 49, 79, 68, 61, 57, 65, 60, 63, 58, 84, 54, 54, 66, 68, 45, 75, 76, 61, 44, 64, 64, 78, 56, 75, 62, 54, 58, 57, 75, 79, 66, 69, 58, 67, 74, 63, 73, 52, 87, 76, 43, 56, 53, 73, 60, 63, 67, 44, 56, 58, 113, 59, 73, 60, 68, 101, 72, 68, 88, 66, 75, 74, 51, 58, 79, 81, 77, 94, 75, 76, 50, 59, 57, 48, 77, 65, 73, 61, 77, 68, 49, 62, 75, 40, 53, 88, 50, 79, 52, 77, 72, 55, 54, 72, 65, 71, 103, 62, 60, 43, 61, 83, 57, 96, 56, 61, 57, 48, 87, 53, 72, 68, 44, 52, 86, 49, 63, 61, 57, 66, 57, 97, 54, 68, 82, 68, 58, 61, 70, 65, 64, 51, 59, 55, 64, 66, 59, 77, 88, 79, 61, 44, 43, 71, 45, 57, 58, 60, 72, 54, 98, 72, 67, 65, 43, 68, 68, 64, 80, 69, 59, 48, 78, 59, 69, 61, 65, 59, 85, 57, 72, 63, 62, 67, 61, 73, 54, 80, 93, 70, 58, 65, 70, 89, 50, 60, 63, 53, 61, 61, 49, 56, 80, 60, 63, 44, 56, 60, 62, 68, 64, 67, 44, 67, 49, 64, 68, 69, 61, 56, 54, 49, 52, 76, 49, 45, 71, 64, 52, 58, 71, 69, 66, 58, 56, 56, 67, 75, 58, 56, 59, 74, 63, 62, 68, 84, 55, 66, 53, 53, 61, 85, 69, 68, 72, 83, 57, 59, 67, 53, 63, 56, 51, 49, 59, 71, 69, 59, 101, 56, 72, 73, 54, 53, 103, 71, 60, 82, 70, 70, 70, 67, 73, 81, 57, 67, 54, 61, 76, 62, 80, 71, 62, 60, 47, 46, 65, 62, 65, 47, 57, 112, 65, 62, 73, 72, 85, 80, 86, 56, 48, 57, 41, 56, 57, 58, 115, 60, 76, 70, 62, 57, 79, 67, 81, 79, 53, 65, 65, 63, 50, 61, 42, 55, 58, 50, 49, 61, 63, 78, 67, 66, 75, 53, 63, 93, 67, 64, 41, 58, 62, 75, 64, 60, 59, 63, 86, 117, 69, 53, 67, 80, 77, 58, 57, 82, 65, 73, 67, 44, 68, 63, 67, 72, 42, 64, 77, 59, 44, 69, 74, 61, 68, 92, 70, 59, 67, 72, 55, 84, 66, 72, 64, 68, 72, 53, 43, 92, 67, 64, 64, 70, 82, 60, 68, 62, 51, 50, 68, 65, 67, 48, 56, 58, 62, 101, 59, 48, 62, 72, 80, 53, 82, 51, 97, 102, 65, 48, 53, 96, 64, 94, 74, 81, 63, 88, 70, 57, 66, 101, 42, 82, 61, 61, 70, 64, 88, 55, 83, 67, 57, 82, 67, 58, 66, 60, 81, 53, 57, 71, 93, 74, 64, 74, 52, 84, 68, 70, 60, 59, 84, 52, 57, 74, 63, 76, 57, 51, 57, 61, 71, 59, 67, 53, 71, 59, 63, 58, 56, 55, 82, 41, 82, 72, 57, 62, 56, 69, 56, 63, 46, 57, 70, 51, 56, 82, 53, 57, 77, 73, 50, 77, 70, 130, 59, 71, 67, 53, 42, 75, 65, 74, 52, 101, 59, 62, 56, 40, 77, 54, 55, 65, 55, 68, 68, 71, 60, 61, 60, 57, 95, 101, 52, 69, 93, 67, 76, 72, 65, 76, 59, 54, 49, 81, 55, 71, 61, 78, 64, 63, 68, 51, 49, 100, 56, 73, 64, 53, 68, 67, 68, 49, 59, 107, 56, 83, 68, 70, 59, 55, 58, 67, 74, 82, 70, 60, 70, 62, 60, 60, 69, 47, 57, 67, 64, 75, 71, 73, 79, 58, 52, 64, 156, 62, 51, 51, 59, 64, 73, 57, 63, 72, 58, 48, 141, 57, 55, 71, 58, 57, 47, 73, 55, 61, 68, 89, 74, 50, 69, 70, 62, 82, 84, 60, 64, 74, 65, 110, 62, 62, 64, 72, 52, 73, 90, 44, 72, 74, 49, 89, 48, 78, 63, 74, 64, 46, 69, 62, 49, 58, 52, 47, 114, 49, 73, 76, 71, 73, 66, 73, 63, 69, 71, 47, 54, 86, 93, 79, 67, 67, 68, 60, 43, 61, 89, 63, 52, 57, 68, 67, 64, 61, 77, 42, 63, 62, 95, 58, 90, 64, 73, 58, 69, 70, 73, 75, 75, 67, 73, 61, 61, 69, 51, 83, 59, 83, 67, 67, 74, 65, 67, 64, 55, 50, 64, 53, 67, 67, 74, 58, 57, 67, 69, 57, 70, 73, 69, 65, 117, 50, 64, 56, 77, 66, 58, 70, 49, 75, 64, 93, 58, 58, 58, 78, 70, 67, 55, 65, 58, 76, 57, 61, 91, 91, 60, 65, 65, 60, 57, 47, 70, 66, 73, 39, 63, 60, 81, 87, 70, 61, 62, 69, 56, 64, 56, 56, 66, 59, 65, 62, 75, 57, 62, 84, 80, 73, 68, 74, 66, 72, 81, 68, 62, 60, 58, 61, 49, 71, 59, 59, 68, 78, 55, 58, 81, 85, 64, 64, 55, 62, 57, 74, 56, 68, 73, 71, 67, 103, 50, 66, 64, 56, 44, 58, 46, 62, 71, 60, 49, 89, 70, 61, 61, 76, 69, 98, 83, 64, 79, 68, 66, 55, 66, 55, 73, 56, 64, 65, 83, 78, 67, 63, 65, 73, 59, 79, 76, 66, 54, 53, 68, 69, 51, 66, 66, 72, 82, 77, 60, 133, 104, 50, 57, 56, 74, 77, 61, 65, 71, 56, 58, 52, 57, 73, 85, 54, 57, 84, 42, 55, 58, 58, 52, 74, 57, 71, 73, 37, 50, 73, 53, 55, 55, 112, 64, 62, 48, 76, 65, 51, 47, 51, 68, 66, 60, 64, 72, 48, 44, 105, 62, 56, 56, 44, 74, 53, 70, 62, 83, 49, 61, 61, 42, 75, 62, 65, 80, 76, 69, 67, 57, 51, 62, 68, 74, 65, 72, 62, 67, 78, 60, 66, 74, 96, 64, 63, 67, 56, 110, 60, 63, 52, 58, 67, 73, 47, 80, 74, 79, 66, 68, 68, 66, 60, 50, 86, 94, 78, 61, 71, 63, 92, 75, 66, 56, 75, 64, 63, 72, 74, 68, 140, 74, 83, 59, 45, 62, 63, 63, 53, 59, 90, 68, 75, 62, 67, 69, 111, 68, 70, 62, 70, 55, 87, 116, 63, 84, 64, 61, 62, 64, 63, 59, 69, 49, 73, 62, 66, 64, 85, 51, 60, 64, 80, 75, 73, 54, 71, 57, 68, 64, 58, 50, 63, 84, 95, 63, 59, 62, 49, 64, 64, 60, 104, 65, 47, 71, 55, 60, 62, 54, 61, 58, 53, 69, 55, 67, 77, 85, 55, 57, 65, 53, 70, 70, 65, 63, 60, 49, 91, 45, 62, 67, 59, 79, 106, 90, 61, 94, 85, 59, 61, 105, 47, 67, 58, 55, 52, 68, 58, 63, 70, 73, 52, 64, 53, 56, 85, 60, 53, 76, 44, 47, 45, 56, 56, 60, 61, 61, 66, 85, 59, 74, 63, 75, 71, 75, 79, 76, 72, 70, 57, 55, 71, 67, 59, 75, 64, 56, 59, 66, 61, 80, 52, 61, 51, 65, 72, 100, 50, 70, 77, 66, 64, 65, 47, 76, 70, 73, 61, 51, 88, 64, 47, 68, 49, 66, 67, 80, 58, 62, 48, 58, 79, 89, 73, 84, 62, 78, 72, 80, 67, 59, 62, 83, 67, 60, 58, 55, 56, 84, 74, 63, 71, 69, 64, 57, 64, 59, 79, 44, 70, 83, 72, 60, 67, 71, 70, 52, 48, 65, 60, 59, 52, 64, 61, 62, 55, 64, 66, 69, 46, 59, 61, 66, 65, 48, 71, 67, 49, 54, 68, 47, 56, 57, 51, 66, 54, 63, 59, 64, 65, 58, 56, 76, 68, 62, 65, 52, 71, 57, 73, 74, 65, 54, 60, 51, 69, 67, 72, 66, 113, 65, 56, 57, 79, 73, 56, 85, 61, 63, 58, 88, 49, 64, 48, 68, 63, 71, 50, 60, 62, 98, 78, 42, 52, 58, 47, 101, 59, 82, 63, 74, 58, 65, 67, 51, 57, 65, 75, 77, 65, 84, 68, 71, 62, 59, 67, 70, 55, 68, 52, 65, 57, 60, 74, 59, 56, 50, 71, 56, 66, 115, 69, 66, 63, 64, 62, 76, 76, 57, 58, 50, 47, 60, 67, 68, 59, 89, 63, 48, 54, 50, 61, 57, 67, 91, 57, 46, 67, 58, 60, 85, 77, 75, 81, 68, 77, 66, 104, 85, 69, 58, 76, 84, 61, 52, 107, 62, 76, 62, 98, 55, 53, 57, 65, 93, 51, 71, 108, 71, 53, 64, 63, 87, 52, 64, 57, 102, 68, 65, 57, 40, 66, 54, 62, 59, 85, 95, 62, 89, 56, 45, 69, 62, 80, 56, 49, 52, 72, 63, 51, 67, 89, 70, 68, 67, 71, 71, 70, 65, 50, 64, 68, 62, 56, 70, 81, 65, 79, 63, 60, 44, 75, 69, 60, 59, 60, 57, 67, 55, 52, 58, 66, 39, 73, 58, 66, 55, 59, 59, 74, 84, 76, 67, 78, 71, 53, 58, 53, 58, 73, 78, 56, 43, 65, 57, 65, 63, 68, 87, 77, 65, 44, 53, 62, 59, 58, 60, 83, 51, 61, 58, 60, 80, 70, 66, 59, 59, 76, 62, 64, 84, 74, 65, 66, 70, 65, 68, 52, 63, 66, 75, 63, 64, 69, 66, 78, 60, 48, 66, 78, 56, 59, 55, 61, 54, 60, 67, 74, 53, 64, 101, 69, 47, 55, 52, 117, 65, 64, 73, 55, 58, 64, 72, 94, 86, 73, 65, 75, 68, 71, 56, 64, 77, 59, 67, 61, 71, 49, 73, 88, 64, 57, 72, 69, 67, 64, 66, 81, 64, 67, 56, 84, 77, 48, 60, 65, 58, 71, 76, 65, 54, 90, 60, 76, 67, 87, 51, 51, 55, 60, 66, 61, 67, 89, 72, 99, 68, 70, 70, 54, 72, 74, 69, 51, 61, 58, 57, 67, 64, 73, 69, 58, 72, 76, 65, 45, 73, 61, 72, 83, 91, 55, 58, 68, 79, 62, 58, 59, 54, 61, 45, 65, 58, 61, 81, 61, 96, 73, 61, 65, 64, 69, 63, 74, 66, 88, 58, 61, 60, 61, 75, 72, 65, 75, 74, 77, 69, 52, 79, 115, 67, 52, 50, 67, 52, 55, 65, 49, 78, 54, 57, 69, 57, 60, 84, 66, 56, 69, 57, 53, 76, 62, 59, 65, 99, 42, 66, 96, 94, 62, 73, 58, 78, 78, 50, 56, 59, 98, 88, 84, 70, 55, 62, 52, 52, 66, 64, 73, 49, 65, 64, 55, 97, 63, 86, 60, 71, 66, 76, 60, 67, 80, 53, 83, 73, 61, 49, 54, 73, 48, 104, 47, 69, 59, 67, 91, 56, 76, 79, 65, 55, 64, 81, 73, 64, 57, 52, 77, 73, 78, 49, 58, 69, 77, 51, 116, 66, 104, 72, 56, 75, 85, 71, 72, 58, 50, 61, 74, 62, 55, 67, 74, 48, 63, 48, 57, 71, 64, 77, 66, 60, 59, 46, 66, 67, 80, 58, 67, 50, 62, 68, 66, 63, 75, 52, 65, 50, 59, 63, 71, 62, 89, 73, 61, 68, 58, 64, 75, 60, 53, 52, 47, 72, 56, 65, 69, 66, 66, 58, 68, 52, 64, 64, 79, 77, 64, 57, 81, 49, 50, 48, 70, 72, 68, 65, 58, 56, 79, 78, 55, 71, 45, 69, 74, 52, 88, 58, 62, 67, 60, 56, 82, 67, 60, 84, 61, 56, 69, 54, 78, 65, 70, 64, 68, 59, 66, 73, 125, 69, 59, 71, 69, 66, 54, 63, 59, 73, 49, 74, 61, 72, 51, 59, 62, 65, 51, 61, 71, 70, 65, 68, 60, 77, 72, 51, 74, 77, 74, 69, 67, 48, 93, 75, 69, 51, 50, 71, 87, 62, 63, 63, 76, 71, 59, 67, 82, 60, 56, 61, 52, 52, 56, 66, 85, 69, 60, 58, 65, 48, 70, 80, 64, 79, 80, 79, 103, 61, 45, 46, 77, 60, 60, 54, 65, 51, 54, 62, 78, 89, 46, 72, 68, 71, 78, 71, 68, 63, 86, 57, 61, 60, 76, 66, 64, 69, 72, 76, 64, 60, 58, 78, 63, 90, 61, 63, 83, 80, 66, 66, 56, 77, 56, 71, 59, 74, 81, 59, 55, 62, 65, 52, 70, 78, 70, 56, 56, 58, 44, 67, 75, 64, 54, 54, 66, 77, 54, 55, 96, 85, 86, 53, 69, 69, 67, 53, 72, 62, 76, 58, 69, 60, 64, 76, 86, 61, 80, 86, 70, 53, 72, 55, 78, 55, 67, 61, 64, 76, 58, 67, 91, 57, 58, 72, 54, 68, 97, 127, 60, 98, 66, 60, 78, 63, 90, 69, 49, 63, 82, 78, 74, 61, 55, 77, 71, 55, 68, 57, 51, 63, 81, 59, 65, 73, 60, 49, 50, 59, 81, 65, 81, 61, 67, 43, 76, 94, 76, 60, 70, 57, 61, 56, 62, 62, 71, 60, 70, 42, 49, 52, 74, 70, 68, 58, 56, 66, 68, 92, 67, 63, 72, 74, 72, 62, 58, 63, 54, 77, 67, 64, 54, 86, 90, 65, 56, 90, 57, 49, 68, 52, 63, 69, 64, 83, 70, 48, 61, 72, 80, 61, 60, 52, 75, 66, 52, 100, 66, 71, 54, 58, 66, 58, 57, 87, 70, 46, 41, 56, 55, 73, 87, 84, 55, 72, 61, 68, 59, 62, 57, 75, 55, 71, 59, 47, 73, 76, 65, 80, 86, 54, 57, 110, 56, 58, 67, 63, 67, 54, 58, 54, 45, 52, 66, 65, 80, 58, 58, 60, 55, 51, 61, 59, 46, 57, 65, 54, 71, 49, 57, 54, 78, 70, 67, 86, 66, 75, 50, 69, 78, 57, 54, 65, 63, 74, 45, 69, 61, 60, 68, 68, 63, 59, 67, 80, 85, 78, 63, 80, 78, 51, 81, 72, 81, 72, 71, 73, 55, 66, 74, 60, 59, 52, 84, 71, 53, 69, 64, 51, 59, 54, 52, 76, 75, 63, 81, 56, 73, 71, 52, 67, 52, 51, 74, 58, 63, 52, 67, 64, 48, 54, 69, 73, 63, 57, 51, 65, 76, 48, 62, 69, 62, 62, 63, 67, 98, 42, 44, 52, 57, 67, 66, 74, 78, 68, 62, 88, 67, 35, 58, 47, 79, 52, 74, 49, 49, 89, 105, 65, 74, 58, 66, 75, 68, 67, 66, 66, 72, 47, 58, 52, 80, 62, 84, 54, 81, 70, 57, 51, 72, 67, 65, 45, 89, 52, 58, 61, 73, 76, 51, 62, 61, 55, 66, 68, 73, 100, 70, 53, 66, 64, 59, 58, 68, 84, 56, 68, 78, 68, 61, 79, 66, 65, 64, 57, 74, 95, 66, 44, 57, 76, 67, 69, 50, 61, 90, 73, 90, 44, 75, 57, 63, 58, 72, 78, 68, 66, 64, 77, 58, 61, 103, 72, 53, 53, 97, 54, 57, 84, 69, 89, 66, 61, 53, 92, 67, 65, 42, 60, 76, 59, 74, 58, 73, 68, 64, 70, 62, 77, 50, 71, 74, 75, 68, 69, 58, 66, 83, 52, 77, 62, 56, 71, 44, 68, 76, 57, 59, 62, 58, 110, 52, 91, 64, 56, 54, 53, 72, 57, 55, 55, 53, 75, 93, 79, 63, 67, 64, 73, 53, 52, 58, 70, 54, 60, 57, 66, 87, 78, 71, 62, 75, 55, 54, 61, 71, 59, 55, 66, 96, 83, 76, 47, 54, 51, 52, 75, 80, 63, 101, 44, 70, 60, 64, 66, 51, 67, 55, 82, 60, 63, 71, 66, 69, 53, 47, 50, 58, 85, 52, 61, 69, 60, 75, 50, 56, 63, 66, 56, 51, 71, 53, 69, 54, 66, 64, 55, 69, 90, 73, 64, 58, 72, 81, 58, 66, 44, 61, 68, 77, 70, 66, 69, 67, 47, 56, 106, 52, 42, 98, 65, 81, 53, 50, 76, 62, 70, 72, 54, 127, 65, 67, 73, 73, 62, 58, 87, 79, 88, 77, 59, 70, 62, 84, 83, 67, 61, 77, 76, 93, 59, 63, 72, 88, 72, 66, 68, 81, 58, 38, 66, 65, 77, 72, 69, 78, 70, 73, 53, 63, 59, 96, 51, 64, 77, 54, 65, 69, 59, 54, 65, 108, 59, 67, 54, 65, 66, 78, 49, 64, 76, 62, 63, 63, 55, 69, 54, 66, 85, 62, 51, 52, 56, 88, 63, 72, 59, 64, 58, 82, 53, 55, 68, 75, 60, 65, 52, 49, 71, 59, 64, 73, 121, 73, 64, 60, 58, 52, 55, 60, 60, 81, 57, 59, 75, 56, 81, 65, 62, 66, 58, 57, 57, 65, 83, 66, 61, 56, 42, 80, 60, 49, 64, 56, 84, 76, 70, 51, 65, 82, 89, 45, 65, 61, 62, 40, 71, 46, 73, 60, 112, 60, 67, 63, 68, 54, 67, 67, 71, 67, 61, 58, 67, 65, 72, 84, 81, 67, 70, 68, 64, 67, 61, 59, 91, 61, 50, 58, 75, 73, 56, 62, 73, 53, 82, 61, 96, 76, 73, 93, 63, 59, 70, 52, 77, 67, 67, 65, 66, 67, 66, 87, 70, 59, 66, 61, 56, 79, 67, 53, 90, 66, 46, 89, 64, 53, 58, 64, 65, 60, 54, 63, 82, 69, 69, 71, 96, 62, 51, 56, 56, 48, 61, 75, 70, 54, 62, 91, 73, 68, 61, 58, 57, 73, 61, 55, 70, 51, 60, 68, 91, 91, 69, 63, 64, 76, 64, 78, 58, 64, 81, 57, 64, 64, 63, 72, 62, 109, 59, 60, 61, 55, 59, 60, 55, 59, 70, 60, 47, 51, 63, 71, 75, 56, 52, 56, 69, 50, 52, 73, 56, 57, 54, 71, 62, 74, 58, 66, 68, 101, 54, 49, 89, 69, 75, 47, 68, 45, 65, 60, 47, 83, 85, 72, 70, 101, 63, 76, 55, 65, 66, 62, 58, 70, 68, 56, 57, 78, 73, 68, 54, 74, 63, 67, 51, 71, 55, 60, 64, 61, 50, 55, 58, 59, 76, 63, 51, 63, 45, 63, 62, 48, 52, 90, 65, 69, 52, 62, 64, 91, 61, 63, 59, 90, 66, 64, 59, 122, 60, 41, 83, 65, 65, 63, 72, 56, 78, 51, 71, 53, 79, 75, 54, 59, 61, 65, 65, 55, 55, 64, 62, 57, 64, 61, 69, 77, 71, 81, 52, 52, 91, 97, 72, 36, 74, 67, 56, 53, 60, 58, 56, 66, 61, 76, 71, 47, 63, 72, 60, 72, 62, 66, 49, 69, 56, 52, 73, 65, 72, 53, 46, 68, 46, 62, 76, 68, 54, 89, 77, 59, 62, 80, 71, 67, 71, 73, 73, 65, 51, 74, 100, 110, 61, 47, 57, 62, 105, 57, 91, 66, 56, 59, 54, 61, 55, 73, 77, 61, 71, 76, 63, 71, 56, 90, 86, 91, 77, 65, 62, 86, 78, 61, 63, 64, 67, 47, 52, 74, 55, 102, 67, 74, 66, 50, 78, 76, 61, 66, 57, 75, 51, 51, 75, 69, 72, 99, 70, 71, 63, 52, 63, 86, 130, 57, 68, 54, 57, 61, 66, 64, 59, 54, 56, 58, 86, 68, 64, 59, 50, 80, 55, 50, 76, 66, 70, 70, 50, 71, 57, 67, 63, 72, 96, 85, 66, 85, 70, 48, 66, 52, 80, 90, 62, 49, 61, 53, 59, 64, 71, 67, 64, 66, 112, 62, 61, 79, 97, 67, 68, 55, 48, 71, 71, 70, 61, 49, 48, 67, 78, 73, 55, 72, 83, 103, 73, 60, 57, 75, 58, 59, 65, 65, 70, 60, 56, 69, 52, 66, 67, 74, 81, 61, 59, 76, 68, 75, 48, 67, 64, 74, 75, 56, 81, 65, 63, 56, 67, 56, 73, 57, 67, 59, 56, 60, 61, 79, 86, 74, 54, 61, 63, 50, 45, 63, 83, 62, 61, 69, 78, 71, 86, 44, 77, 73, 68, 67, 111, 52, 65, 76, 57, 62, 55, 61, 64, 62, 53, 50, 79, 68, 60, 64, 60, 78, 56, 53, 56, 63, 59, 57, 74, 55, 38, 70, 53, 67, 53, 52, 73, 61, 57, 64, 65, 60, 49, 61, 65, 91, 74, 56, 74, 82, 58, 61, 83, 71, 79, 46, 47, 62, 69, 56, 84, 80, 50, 64, 71, 85, 60, 71, 58, 60, 65, 72, 56, 68, 56, 86, 52, 65, 66, 52, 55, 57, 41, 85, 54, 61, 67, 83, 72, 59, 52, 63, 52, 52, 74, 47, 57, 75, 92, 66, 76, 68, 72, 48, 86, 62, 60, 71, 55, 62, 76, 64, 57, 53, 55, 61, 65, 83, 67, 72, 93, 70, 53, 85, 58, 44, 54, 61, 58, 91, 61, 58, 67, 61, 61, 70, 63, 53, 101, 73, 57, 73, 61, 45, 77, 79, 77, 72, 63, 37, 66, 62, 64, 65, 71, 67, 64, 71, 70, 60, 73, 78, 75, 56, 61, 78, 50, 52, 67, 66, 65, 64, 53, 55, 91, 56, 86, 80, 95, 56, 49, 59, 61, 71, 55, 68, 65, 75, 63, 71, 57, 61, 84, 66, 59, 63, 53, 72, 89, 69, 57, 65, 95, 60, 68, 55, 60, 56, 69, 100, 65, 68, 65, 89, 56, 54, 68, 80, 45, 96, 98, 38, 64, 104, 61, 66, 51, 63, 72, 64, 100, 68, 52, 79, 58, 60, 106, 64, 58, 83, 45, 62, 56, 55, 57, 89, 51, 52, 83, 69, 62, 61, 64, 68, 77, 59, 62, 80, 59, 88, 111, 81, 60, 73, 60, 57, 65, 82, 63, 63, 64, 61, 104, 67, 84, 59, 65, 66, 65, 54, 56, 58, 61, 50, 91, 70, 61, 66, 75, 71, 67, 64, 68, 56, 59, 59, 73, 60, 69, 76, 53, 62, 53, 76, 66, 61, 57, 83, 62, 52, 82, 80, 75, 98, 64, 59, 67, 48, 87, 63, 47, 86, 84, 57, 72, 79, 63, 57, 65, 69, 61, 68, 61, 69, 68, 56, 68, 61, 58, 57, 105, 55, 54, 64, 71, 67, 55, 69, 58, 67, 44, 67, 52, 49, 55, 65, 80, 64, 59, 60, 75, 58, 68, 68, 82, 58, 62, 51, 60, 73, 62, 59, 62, 62, 50, 74, 51, 59, 80, 52, 59, 115, 58, 43, 67, 65, 53, 63, 75, 76, 70, 127, 68, 67, 71, 62, 70, 57, 67, 71, 90, 60, 57, 53, 62, 85, 63, 74, 73, 66, 89, 67, 65, 60, 88, 65, 68, 49, 55, 76, 68, 97, 59, 56, 57, 63, 65, 63, 70, 57, 56, 58, 51, 91, 68, 63, 70, 68, 65, 48, 62, 51, 48, 112, 66, 57, 63, 71, 75, 78, 70, 57, 70, 58, 68, 76, 81, 64, 64, 55, 79, 75, 65, 63, 60, 92, 72, 77, 61, 50, 74, 81, 63, 43, 62, 48, 66, 63, 42, 68, 70, 58, 55, 55, 119, 46, 64, 61, 68, 64, 55, 66, 66, 75, 64, 52, 64, 66, 69, 65, 77, 49, 73, 70, 56, 89, 78, 62, 65, 67, 63, 67, 65, 58, 74, 69, 57, 78, 75, 66, 72, 81, 79, 52, 65, 54, 66, 71, 71, 63, 85, 70, 101, 48, 57, 69, 55, 56, 63, 58, 71, 59, 76, 71, 56, 91, 63, 59, 56, 60, 58, 50, 55, 59, 60, 75, 64, 68, 69, 60, 76, 63, 55, 62, 59, 66, 85, 62, 98, 64, 63, 99, 55, 78, 77, 55, 70, 62, 70, 60, 60, 55, 61, 102, 60, 62, 84, 85, 51, 50, 69, 76, 82, 51, 66, 53, 52, 64, 71, 59, 70, 55, 46, 76, 61, 59, 67, 52, 95, 65, 62, 52, 56, 54, 82, 81, 59, 73, 81, 87, 52, 61, 51, 74, 71, 76, 76, 78, 64, 56, 51, 55, 78, 68, 57, 55, 57, 51, 55, 49, 65, 55, 69, 46, 61, 80, 62, 76, 56, 93, 67, 71, 62, 71, 55, 57, 60, 44, 54, 64, 52, 75, 76, 56, 64, 51, 68, 52, 43, 54, 63, 54, 53, 58, 87, 70, 41, 77, 64, 76, 55, 48, 49, 57, 94, 50, 49, 91, 61, 83, 49, 63, 57, 59, 66, 52, 83, 72, 74, 69, 67, 64, 52, 73, 64, 49, 48, 83, 56, 69, 73, 45, 61, 68, 68, 78, 65, 69, 63, 71, 77, 66, 65, 62, 75, 66, 61, 73, 70, 63, 60, 50, 55, 64, 65, 90, 74, 72, 63, 62, 52, 74, 66, 67, 70, 58, 63, 63, 63, 113, 52, 76, 77, 52, 60, 56, 63, 51, 64, 69, 61, 65, 66, 58, 65, 62, 47, 64, 60, 54, 78, 53, 64, 64, 69, 58, 65, 66, 62, 57, 67, 66, 67, 101, 60, 63, 66, 78, 72, 58, 68, 68, 71, 65, 76, 68, 79, 66, 71, 66, 66, 77, 75, 81, 61, 71, 59, 59, 82, 69, 65, 61, 59, 53, 50, 58, 88, 66, 59, 91, 68, 60, 60, 81, 69, 68, 74, 58, 92, 64, 65, 69, 92, 102, 49, 46, 71, 64, 73, 66, 94, 73, 57, 68, 62, 77, 80, 74, 65, 52, 74, 67, 65, 77, 60, 77, 84, 84, 65, 46, 63, 77, 58, 59, 73, 56, 64, 80, 75, 59, 61, 121, 66, 65, 56, 53, 72, 53, 51, 80, 64, 87, 53, 65, 82, 62, 52, 103, 52, 69, 77, 58, 58, 89, 119, 69, 48, 44, 53, 71, 60, 81, 59, 58, 51, 62, 75, 67, 54, 63, 67, 76, 59, 56, 61, 63, 89, 67, 60, 89, 54, 66, 76, 58, 46, 83, 53, 44, 39, 60, 77, 54, 60, 84, 65, 68, 63, 58, 58, 65, 88, 58, 72, 67, 101, 59, 51, 62, 83, 62, 62, 58, 62, 70, 79, 57, 76, 64, 63, 81, 70, 62, 68, 78, 60, 102, 77, 72, 55, 73, 71, 76, 84, 81, 77, 59, 55, 66, 45, 59, 87, 62, 72, 53, 72, 60, 80, 59, 73, 63, 71, 63, 53, 66, 54, 56, 63, 59, 53, 58, 85, 60, 53, 103, 75, 57, 66, 85, 56, 63, 51, 53, 69, 83, 70, 62, 78, 40, 68, 63, 63, 57, 56, 37, 70, 65, 68, 56, 97, 58, 63, 69, 72, 52, 61, 48, 60, 82, 112, 53, 83, 85, 65, 57, 69, 76, 67, 83, 64, 60, 64, 56, 66, 70, 38, 54, 56, 59, 72, 61, 55, 50, 71, 72, 55, 61, 63, 65, 71, 73, 75, 50, 54, 59, 56, 69, 86, 65, 65, 97, 71, 77, 83, 60, 72, 57, 50, 56, 82, 52, 69, 64, 63, 53, 55, 70, 59, 56, 68, 54, 53, 73, 57, 85, 55, 54, 54, 48, 55, 77, 60, 65, 86, 73, 66, 64, 75, 55, 67, 49, 82, 49, 63, 58, 55, 52, 50, 64, 74, 55, 55, 64, 63, 78, 50, 51, 61, 59, 72, 59, 60, 104, 64, 66, 67, 58, 63, 66, 81, 54, 65, 66, 64, 59, 49, 55, 57, 66, 68, 60, 55, 54, 86, 96, 55, 49, 63, 60, 94, 59, 64, 102, 61, 76, 67, 70, 65, 64, 76, 53, 50, 64, 60, 77, 92, 71, 62, 70, 68, 71, 68, 64, 57, 46, 58, 68, 60, 53, 65, 63, 68, 76, 97, 57, 67, 52, 75, 60, 91, 55, 77, 63, 66, 65, 56, 52, 77, 65, 63, 58, 52, 62, 69, 64, 70, 72, 75, 68, 44, 62, 63, 64, 58, 72, 97, 74, 80, 64, 56, 110, 57, 64, 63, 38, 59, 54, 72, 82, 43, 68, 68, 76, 64, 73, 79, 68, 84, 49, 65, 49, 54, 63, 56, 71, 86, 65, 59, 58, 97, 40, 48, 74, 73, 71, 77, 61, 77, 69, 64, 77, 67, 72, 48, 86, 63, 72, 71, 42, 53, 75, 54, 89, 71, 67, 57, 66, 80, 86, 69, 70, 57, 55, 99, 70, 71, 79, 76, 38, 42, 78, 68, 71, 51, 76, 79, 62, 68, 59, 60, 65, 59, 55, 68, 46, 63, 69, 74, 66, 70, 50, 63, 70, 74, 72, 70, 45, 65, 54, 71, 69, 47, 45, 98, 44, 45, 52, 62, 58, 62, 66, 75, 56, 65, 74, 71, 57, 72, 56, 75, 73, 60, 60, 73, 61, 61, 88, 57, 69, 64, 59, 70, 56, 70, 62, 80, 68, 58, 51, 71, 74, 53, 77, 46, 72, 69, 52, 70, 69, 76, 69, 62, 48, 116, 86, 75, 68, 55, 57, 69, 72, 55, 69, 107, 85, 71, 71, 62, 45, 70, 55, 71, 67, 42, 58, 50, 100, 88, 69, 58, 49, 66, 71, 70, 47, 73, 82, 55, 70, 62, 42, 74, 79, 60, 56, 77, 49, 69, 66, 84, 64, 67, 52, 66, 82, 86, 40, 63, 79, 61, 61, 65, 68, 64, 64, 49, 80, 61, 87, 65, 66, 74, 75, 55, 57, 77, 68, 60, 90, 76, 81, 54, 57, 46, 61, 63, 72, 59, 77, 64, 75, 66, 66, 74, 70, 67, 68, 62, 69, 66, 68, 80, 80, 88, 68, 60, 79, 64, 72, 63, 60, 51, 53, 44, 54, 64, 49, 83, 65, 116, 74, 64, 60, 56, 79, 75, 84, 62, 68, 92, 66, 79, 86, 57, 76, 62, 65, 88, 87, 60, 68, 87, 97, 37, 53, 40, 71, 115, 73, 63, 57, 64, 78, 54, 62, 59, 82, 76, 67, 52, 62, 84, 66, 68, 67, 59, 50, 106, 57, 71, 100, 58, 65, 66, 51, 67, 71, 54, 73, 64, 88, 53, 68, 68, 91, 71, 50, 36, 89, 55, 78, 50, 78, 47, 58, 83, 70, 50, 56, 74, 72, 84, 49, 89, 86, 56, 68, 67, 45, 44, 61, 74, 57, 59, 58, 56, 83, 61, 89, 71, 75, 62, 75, 47, 82, 68, 61, 61, 85, 62, 68, 60, 66, 59, 58, 57, 68, 69, 94, 59, 83, 65, 53, 95, 67, 65, 86, 78, 66, 52, 76, 59, 48, 55, 97, 66, 55, 62, 57, 63, 72, 49, 58, 74, 76, 61, 65, 84, 80, 62, 55, 58, 68, 99, 66, 49, 66, 100, 74, 63, 71, 47, 95, 90, 103, 63, 66, 61, 58, 67, 66, 71, 69, 72, 57, 78, 55, 69, 58, 71, 65, 50, 54, 68, 63, 81, 54, 58, 53, 59, 72, 58, 76, 43, 71, 65, 43, 66, 70, 77, 61, 75, 45, 73, 76, 68, 46, 61, 77, 56, 56, 61, 57, 64, 81, 50, 65, 67, 53, 61, 100, 71, 79, 71, 56, 74, 79, 54, 69, 65, 56, 55, 89, 44, 54, 63, 73, 56, 75, 64, 65, 64, 62, 68, 60, 70, 73, 67, 54, 43, 48, 60, 67, 65, 91, 74, 76, 56, 76, 82, 61, 83, 66, 63, 96, 65, 59, 81, 53, 81, 66, 67, 53, 48, 56, 65, 58, 70, 63, 80, 45, 66, 67, 66, 58, 62, 66, 66, 55, 63, 79, 53, 68, 59, 46, 71, 63, 63, 81, 61, 73, 50, 84, 45, 68, 103, 57, 54, 54, 66, 66, 92, 74, 57, 78, 69, 61, 71, 66, 76, 63, 66, 69, 69, 63, 65, 57, 67, 71, 51, 70, 60, 52, 54, 88, 74, 47, 67, 66, 45, 63, 61, 70, 65, 55, 56, 66, 81, 94, 56, 80, 59, 81, 74, 63, 81, 46, 69, 76, 67, 64, 63, 66, 79, 75, 80, 89, 79, 46, 57, 113, 88, 82, 57, 55, 61, 75, 59, 58, 68, 70, 81, 69, 55, 68, 61, 109, 93, 70, 95, 54, 67, 69, 42, 86, 61, 60, 59, 54, 74, 80, 77, 65, 81, 57, 50, 90, 63, 99, 100, 60, 75, 61, 58, 64, 63, 80, 76, 52, 77, 70, 96, 56, 69, 99, 91, 92, 55, 58, 71, 53, 71, 65, 71, 51, 45, 62, 62, 69, 67, 89, 68, 73, 68, 46, 71, 36, 75, 92, 61, 52, 54, 58, 56, 69, 67, 56, 66, 67, 36, 60, 75, 64, 56, 54, 53, 66, 47, 78, 100, 52, 58, 59, 52, 51, 63, 61, 61, 62, 76, 90, 64, 69, 55, 85, 50, 49, 85, 51, 61, 77, 81, 62, 63, 48, 81, 60, 36, 60, 59, 90, 52, 70, 74, 59, 61, 80, 26, 57, 54, 58, 72, 70, 63, 78, 58, 46, 58, 59, 65, 73, 69, 85, 84, 70, 85, 48, 66, 74, 63, 52, 67, 51, 62, 34, 75, 57, 100, 65, 64, 75, 52, 83, 74, 52, 59, 87, 67, 63, 56, 58, 64, 88, 57, 66, 85, 60, 68, 64, 63, 57, 53, 51, 75, 53, 61, 55, 94, 63, 64, 55, 69, 46, 65, 68, 55, 55, 60, 66, 64, 41, 58, 56, 83, 36, 65, 60, 67, 92, 74, 62, 79, 53, 55, 85, 59, 68, 66, 62, 65, 52, 37, 68, 55, 85, 87, 70, 55, 65, 65, 76, 66, 92, 64, 92, 58, 57, 70, 55, 124, 55, 67, 56, 63, 51, 52, 79, 87, 65, 83, 73, 88, 62, 58, 59, 70, 92, 73, 65, 60, 75, 69, 62, 63, 68, 77, 89, 60, 59, 78, 66, 68, 58, 53, 48, 75, 58, 86, 65, 77, 75, 63, 62, 55, 47, 58, 61, 64, 81, 58, 61, 75, 74, 83, 52, 57, 57, 73, 93, 69, 66, 103, 104, 64, 71, 47, 81, 61, 80, 93, 63, 61, 78, 47, 114, 66, 72, 92, 63, 54, 73, 82, 55, 68, 80, 65, 50, 86, 52, 55, 51, 85, 53, 66, 91, 58, 75, 60, 70, 50, 52, 87, 53, 74, 51, 47, 62, 58, 72, 59, 99, 67, 58, 65, 61, 95, 67, 73, 64, 64, 74, 87, 66, 85, 59, 71, 67, 65, 53, 73, 59, 97, 52, 62, 69, 103, 61, 77, 61, 67, 74, 62, 51, 61, 57, 82, 77, 52, 61, 44, 72, 60, 84, 55, 52, 112, 63, 43, 60, 83, 69, 69, 77, 64, 66, 67, 39, 68, 69, 87, 54, 67, 77, 53, 63, 72, 84, 63, 59, 60, 57, 52, 51, 60, 46, 73, 70, 92, 70, 61, 60, 53, 41, 60, 81, 61, 66, 59, 47, 58, 78, 62, 63, 68, 94, 66, 85, 60, 42, 46, 65, 58, 58, 49, 52, 64, 62, 56, 83, 65, 46, 97, 111, 62, 58, 56, 79, 58, 73, 65, 66, 75, 64, 59, 64, 64, 55, 69, 81, 57, 69, 76, 70, 60, 71, 53, 75, 80, 59, 69, 58, 57, 66, 80, 44, 73, 86, 58, 65, 58, 106, 70, 50, 70, 58, 51, 70, 77, 70, 70, 64, 77, 67, 60, 59, 132, 59, 78, 59, 85, 48, 83, 85, 76, 65, 65, 67, 63, 44, 58, 61, 77, 73, 64, 81, 93, 51, 92, 64, 63, 80, 67, 68, 62, 66, 72, 69, 69, 123, 55, 88, 68, 50, 67, 63, 61, 64, 52, 52, 36, 86, 48, 48, 64, 76, 74, 54, 67, 68, 69, 47, 65, 59, 82, 61, 82, 83, 70, 84, 75, 69, 62, 58, 78, 75, 70, 58, 75, 59, 53, 92, 75, 71, 58, 67, 91, 54, 73, 73, 67, 61, 78, 61, 71, 97, 52, 79, 54, 40, 44, 69, 64, 64, 58, 55, 59, 64, 62, 60, 74, 54, 96, 47, 95, 93, 78, 94, 55, 52, 55, 93, 58, 45, 84, 78, 70, 69, 60, 61, 66, 46, 59, 55, 77, 50, 52, 52, 67, 67, 61, 63, 42, 44, 74, 61, 96, 54, 58, 80, 60, 64, 55, 106, 58, 53, 53, 61, 59, 59, 62, 73, 75, 74, 46, 69, 60, 77, 89, 49, 56, 81, 78, 59, 67, 67, 51, 55, 106, 80, 58, 76, 104, 66, 57, 55, 85, 55, 64, 59, 46, 57, 75, 50, 58, 60, 64, 69, 61, 38, 64, 59, 64, 58, 47, 73, 60, 90, 67, 58, 81, 62, 59, 66, 50, 42, 52, 44, 105, 61, 65, 64, 56, 63, 89, 74, 41, 61, 61, 78, 66, 74, 69, 58, 63, 48, 106, 52, 67, 58, 68, 59, 100, 70, 64, 47, 61, 55, 68, 65, 65, 63, 61, 85, 59, 67, 55, 65, 57, 73, 63, 53, 55, 44, 67, 76, 42, 64, 41, 130, 61, 68, 52, 69, 63, 59, 61, 86, 73, 59, 56, 65, 89, 92, 57, 46, 43, 84, 87, 70, 64, 94, 47, 70, 74, 53, 64, 69, 59, 50, 66, 77, 63, 87, 64, 47, 65, 69, 74, 58, 60, 66, 55, 52, 63, 65, 62, 55, 61, 65, 69, 47, 70, 71, 46, 70, 74, 60, 53, 52, 66, 65, 62, 57, 87, 77, 58, 62, 45, 82, 54, 65, 55, 50, 63, 55, 62, 54, 44, 85, 73, 81, 72, 55, 62, 66, 65, 51, 69, 72, 77, 91, 55, 61, 64, 65, 63, 66, 56, 65, 63, 72, 56, 59, 59, 66, 57, 64, 73, 74, 77, 84, 48, 62, 69, 70, 45, 43, 67, 58, 62, 69, 52, 49, 59, 79, 61, 78, 61, 61, 66, 52, 61, 94, 68, 84, 71, 48, 67, 71, 60, 79, 69, 46, 38, 56, 133, 99, 58, 59, 51, 71, 47, 59, 56, 70, 70, 75, 68, 68, 53, 81, 73, 55, 52, 65, 77, 62, 60, 60, 64, 58, 54, 68, 79, 43, 72, 61, 78, 63, 48, 69, 80, 84, 96, 69, 78, 63, 49, 57, 93, 63, 69, 63, 79, 71, 78, 68, 74, 100, 42, 68, 83, 72, 83, 59, 64, 61, 48, 51, 61, 61, 76, 61, 73, 53, 74, 63, 116, 58, 63, 65, 66, 80, 57, 67, 45, 89, 71, 62, 67, 64, 62, 59, 67, 77, 72, 63, 54, 72, 48, 57, 78, 64, 62, 45, 72, 55, 72, 62, 54, 74, 77, 59, 48, 57, 76, 74, 62, 61, 101, 74, 59, 64, 64, 60, 69, 66, 86, 56, 101, 54, 54, 51, 75, 59, 73, 60, 77, 67, 54, 43, 54, 71, 82, 52, 68, 44, 58, 71, 71, 56, 58, 54, 90, 67, 62, 66, 50, 101, 57, 59, 56, 75, 56, 72, 55, 91, 72, 44, 56, 58, 64, 48, 43, 49, 69, 58, 63, 47, 68, 58, 58, 57, 103, 61, 65, 52, 102, 87, 85, 74, 56, 64, 90, 67, 64, 43, 59, 41, 68, 57, 64, 58, 51, 73, 78, 56, 62, 65, 77, 71, 53, 108, 64, 48, 58, 63, 71, 67, 70, 67, 80, 59, 76, 74, 100, 48, 51, 60, 65, 53, 60, 68, 55, 58, 62, 64, 54, 59, 65, 56, 62, 58, 63, 68, 65, 66, 76, 81, 59, 59, 71, 56, 56, 53, 83, 54, 48, 62, 82, 78, 97, 60, 42, 73, 53, 68, 77, 71, 83, 60, 54, 66, 45, 60, 67, 56, 84, 61, 96, 57, 68, 59, 54, 79, 61, 83, 65, 122, 66, 54, 62, 70, 94, 83, 122, 58, 63, 63, 61, 48, 59, 64, 67, 65, 47, 48, 49, 55, 72, 51, 65, 60, 60, 55, 116, 71, 61, 69, 60, 63, 67, 76, 65, 62, 59, 85, 56, 68, 60, 72, 68, 89, 61, 49, 58, 50, 59, 54, 66, 57, 57, 59, 62, 72, 79, 57, 63, 69, 39, 47, 76, 51, 40, 74, 64, 57, 64, 59, 66, 68, 46, 59, 58, 68, 50, 81, 65, 85, 64, 76, 60, 66, 66, 54, 52, 64, 73, 77, 58, 64, 95, 62, 49, 69, 72, 86, 54, 80, 56, 53, 56, 89, 71, 53, 57, 71, 63, 53, 54, 48, 108, 46, 76, 64, 60, 88, 56, 48, 71, 75, 62, 88, 56, 59, 77, 61, 61, 47, 59, 61, 79, 55, 62, 73, 45, 61, 57, 72, 55, 69, 58, 49, 62, 41, 60, 69, 80, 65, 58, 83, 71, 63, 90, 70, 63, 52, 57, 84, 60, 68, 72, 57, 71, 60, 61, 42, 49, 118, 51, 84, 73, 69, 45, 59, 75, 54, 74, 53, 59, 57, 72, 70, 80, 62, 94, 65, 59, 100, 105, 63, 45, 58, 51, 69, 54, 61, 53, 59, 55, 55, 46, 55, 64, 52, 48, 76, 81, 59, 79, 74, 66, 45, 105, 74, 60, 64, 75, 51, 68, 81, 69, 67, 105, 62, 69, 72, 51, 67, 73, 69, 83, 56, 64, 65, 81, 89, 63, 40, 75, 65, 74, 80, 55, 58, 94, 61, 70, 108, 60, 81, 57, 65, 55, 59, 43, 60, 51, 77, 84, 51, 55, 66, 53, 74, 63, 56, 67, 59, 70, 61, 62, 93, 90, 84, 76, 90, 54, 62, 80, 87, 70, 58, 57, 61, 72, 70, 63, 59, 53, 62, 51, 43, 72, 80, 91, 48, 58, 71, 84, 67, 76, 57, 51, 54, 74, 50, 71, 70, 67, 56, 51, 62, 85, 139, 86, 70, 60, 70, 62, 59, 84, 69, 54, 53, 46, 73, 76, 75, 89, 59, 66, 59, 60, 65, 60, 73, 73, 69, 66, 71, 61, 76, 55, 71, 64, 55, 57, 98, 58, 46, 62, 59, 65, 55, 51, 61, 64, 61, 78, 65, 69, 75, 62, 80, 54, 57, 66, 46, 82, 55, 63, 58, 72, 66, 58, 57, 62, 51, 62, 101, 61, 55, 66, 49, 74, 67, 70, 60, 84, 75, 60, 58, 55, 53, 59, 59, 47, 61, 62, 72, 88, 61, 58, 81, 66, 73, 61, 55, 66, 64, 56, 65, 67, 68, 70, 72, 61, 71, 55, 108, 80, 51, 57, 46, 67, 69, 58, 58, 83, 59, 64, 55, 79, 73, 87, 70, 62, 97, 47, 82, 64, 67, 74, 73, 105, 61, 51, 55, 67, 68, 59, 90, 60, 57, 53, 63, 69, 46, 86, 69, 82, 61, 67, 75, 47, 64, 76, 57, 61, 65, 53, 64, 86, 81, 56, 39, 63, 54, 67, 83, 47, 59, 65, 69, 82, 69, 77, 63, 75, 107, 62, 72, 90, 43, 60, 58, 54, 71, 45, 55, 56, 80, 60, 80, 126, 66, 54, 45, 107, 65, 52, 53, 77, 63, 46, 63, 115, 45, 61, 58, 82, 57, 70, 55, 61, 61, 71, 69, 45, 46, 65, 48, 66, 66, 68, 63, 61, 53, 64, 58, 81, 52, 71, 74, 67, 74, 93, 61, 59, 58, 67, 70, 73, 60, 80, 66, 73, 77, 102, 65, 77, 55, 67, 57, 54, 71, 71, 66, 60, 50, 70, 53, 100, 50, 69, 50, 49, 57, 58, 89, 72, 64, 68, 47, 61, 50, 72, 80, 41, 72, 70, 119, 91, 64, 83, 70, 64, 56, 85, 47, 57, 88, 56, 66, 85, 65, 68, 61, 69, 57, 60, 55, 73, 67, 61, 56, 63, 54, 46, 58, 98, 66, 69, 60, 65, 75, 48, 58, 72, 76, 60, 93, 80, 70, 64, 70, 63, 57, 51, 69, 63, 58, 66, 68, 89, 66, 101, 63, 59, 56, 89, 65, 52, 66, 71, 65, 73, 52, 63, 57, 61, 102, 63, 72, 54, 53, 63, 45, 67, 64, 71, 61, 49, 65, 78, 66, 73, 60, 62, 73, 70, 49, 83, 62, 42, 50, 66, 87, 59, 55, 60, 68, 66, 94, 80, 53, 59, 65, 86, 75, 50, 97, 70, 59, 83, 64, 69, 93, 76, 64, 52, 70, 50, 47, 87, 76, 68, 66, 67, 77, 68, 68, 66, 70, 57, 66, 59, 67, 49, 51, 57, 85, 69, 70, 52, 65, 81, 70, 96, 56, 58, 80, 51, 48, 61, 49, 69, 45, 74, 55, 69, 72, 67, 102, 60, 57, 92, 90, 65, 69, 77, 69, 64, 58, 49, 98, 73, 72, 75, 69, 78, 55, 79, 92, 52, 73, 61, 74, 51, 95, 62, 61, 66, 48, 54, 88, 82, 81, 106, 59, 47, 47, 63, 65, 51, 49, 52, 68, 49, 56, 49, 54, 60, 55, 57, 80, 66, 62, 84, 71, 108, 51, 58, 57, 55, 62, 63, 72, 56, 48, 68, 62, 63, 55, 62, 61, 59, 72, 67, 59, 68, 43, 55, 67, 64, 48, 56, 61, 104, 59, 60, 55, 46, 59, 73, 47, 52, 51, 62, 52, 79, 67, 62, 61, 72, 89, 54, 53, 65, 103, 64, 62, 72, 58, 51, 64, 55, 57, 80, 74, 57, 72, 59, 73, 42, 64, 68, 64, 63, 56, 65, 65, 58, 98, 62, 59, 78, 60, 69, 77, 62, 109, 58, 52, 68, 61, 84, 67, 44, 63, 76, 60, 57, 42, 52, 76, 68, 48, 64, 48, 78, 80, 62, 49, 52, 63, 87, 51, 73, 60, 81, 76, 66, 73, 65, 66, 100, 53, 126, 82, 73, 69, 48, 59, 74, 72, 76, 77, 109, 57, 63, 66, 100, 73, 65, 55, 58, 66, 97, 52, 89, 58, 48, 74, 58, 82, 59, 58, 82, 62, 65, 84, 67, 47, 65, 49, 46, 65, 85, 47, 49, 69, 66, 65, 62, 65, 64, 87, 65, 64, 80, 61, 73, 77, 70, 57, 48, 62, 57, 76, 55, 66, 52, 60, 78, 79, 57, 55, 77, 79, 78, 51, 66, 80, 54, 66, 54, 58, 71, 62, 68, 58, 112, 65, 82, 69, 48, 56, 62, 60, 60, 64, 79, 58, 95, 72, 77, 67, 78, 69, 72, 82, 71, 52, 63, 67, 60, 67, 63, 53, 69, 82, 126, 69, 52, 87, 50, 55, 71, 61, 69, 92, 67, 72, 63, 70, 66, 72, 64, 46, 65, 63, 66, 55, 74, 80, 70, 48, 68, 51, 61, 63, 64, 66, 67, 56, 41, 52, 70, 73, 79, 67, 73, 70, 53, 74, 65, 54, 43, 69, 58, 59, 65, 77, 79, 72, 92, 43, 69, 61, 62, 60, 59, 69, 59, 40, 71, 63, 71, 46, 84, 74, 75, 139, 71, 93, 77, 51, 57, 55, 80, 78, 85, 61, 77, 76, 61, 77, 49, 54, 56, 63, 64, 57, 37, 122, 79, 42, 82, 68, 53, 66, 68, 91, 66, 62, 72, 53, 65, 85, 74, 72, 76, 78, 59, 60, 69, 72, 60, 54, 64, 79, 59, 43, 56, 63, 49, 58, 60, 61, 53, 63, 53, 78, 50, 86, 71, 62, 72, 56, 74, 68, 47, 65, 64, 52, 49, 68, 74, 77, 69, 60, 134, 60, 89, 70, 47, 52, 80, 68, 54, 51, 55, 58, 64, 44, 66, 50, 85, 88, 57, 94, 57, 84, 55, 55, 73, 42, 59, 64, 66, 93, 46, 70, 61, 75, 71, 50, 68, 70, 76, 41, 63, 64, 53, 52, 77, 66, 81, 70, 60, 53, 52, 59, 66, 57, 77, 67, 61, 61, 47, 64, 67, 62, 70, 65, 66, 54, 60, 67, 63, 73, 54, 69, 113, 80, 62, 69, 74, 54, 83, 66, 53, 63, 66, 34, 63, 65, 60, 80, 64, 113, 60, 86, 61, 61, 69, 88, 74, 64, 61, 60, 70, 61, 67, 70, 59, 49, 83, 58, 70, 74, 58, 76, 71, 51, 89, 54, 61, 82, 57, 57, 87, 49, 54, 74, 74, 65, 74, 90, 46, 62, 73, 67, 51, 83, 64, 65, 57, 67, 59, 71, 52, 59, 75, 59, 62, 66, 71, 80, 55, 74, 60, 95, 60, 74, 69, 74, 69, 55, 67, 68, 80, 74, 65, 44, 54, 81, 75, 96, 81, 90, 63, 60, 84, 63, 65, 57, 56, 52, 52, 52, 84, 50, 71, 48, 73, 93, 68, 50, 65, 58, 65, 52, 79, 72, 70, 122, 58, 71, 78, 61, 57, 54, 46, 70, 95, 65, 56, 58, 47, 65, 49, 113, 69, 60, 55, 65, 81, 46, 92, 59, 64, 67, 69, 87, 68, 85, 87, 60, 71, 81, 49, 74, 69, 66, 83, 67, 55, 69, 53, 77, 51, 97, 54, 69, 80, 65, 77, 41, 64, 66, 48, 96, 64, 42, 68, 44, 56, 84, 68, 50, 59, 50, 80, 54, 56, 71, 60, 56, 103, 64, 58, 107, 52, 48, 65, 85, 55, 54, 62, 64, 87, 60, 84, 55, 64, 65, 52, 55, 55, 69, 63, 57, 62, 71, 71, 72, 64, 36, 60, 71, 75, 61, 75, 71, 49, 51, 65, 72, 56, 58, 48, 56, 50, 57, 67, 65, 79, 65, 71, 65, 56, 62, 58, 50, 68, 62, 60, 63, 69, 94, 76, 62, 55, 64, 61, 69, 102, 73, 85, 93, 71, 83, 62, 74, 68, 60, 71, 48, 68, 64, 62, 63, 95, 68, 68, 52, 84, 47, 74, 76, 80, 87, 72, 69, 53, 80, 67, 52, 73, 73, 92, 63, 73, 63, 52, 49, 81, 72, 61, 57, 72, 54, 57, 75, 82, 80, 70, 53, 53, 57, 85, 59, 59, 73, 46, 47, 80, 50, 59, 51, 76, 64, 72, 66, 62, 61, 74, 80, 61, 56, 72, 52, 82, 60, 54, 66, 53, 73, 76, 60, 52, 67, 66, 96, 67, 63, 53, 63, 75, 98, 58, 66, 72, 52, 73, 71, 78, 65, 73, 59, 63, 58, 54, 51, 72, 54, 49, 61, 88, 64, 75, 63, 55, 76, 90, 62, 67, 80, 62, 60, 54, 32, 68, 67, 68, 43, 66, 60, 73, 62, 58, 63, 41, 56, 73, 69, 87, 66, 60, 74, 62, 102, 54, 57, 75, 55, 61, 83, 98, 51, 86, 48, 60, 64, 56, 61, 60, 57, 48, 60, 60, 124, 65, 99, 60, 57, 73, 74, 80, 75, 61, 86, 77, 71, 51, 80, 62, 62, 62, 44, 44, 57, 81, 69, 47, 35, 65, 70, 57, 63, 89, 50, 72, 41, 63, 64, 89, 84, 63, 88, 53, 75, 74, 61, 68, 76, 64, 57, 51, 84, 60, 75, 66, 107, 69, 45, 76, 81, 58, 54, 51, 71, 76, 72, 54, 71, 77, 58, 62, 50, 46, 61, 73, 50, 80, 50, 66, 63, 53, 52, 75, 92, 67, 49, 49, 80, 73, 61, 40, 91, 65, 84, 58, 60, 66, 63, 62, 69, 83, 62, 75, 70, 61, 46, 55, 71, 62, 56, 72, 67, 59, 60, 64, 58, 64, 34, 72, 93, 53, 45, 91, 74, 67, 64, 52, 71, 82, 50, 91, 69, 65, 86, 68, 74, 51, 61, 91, 60, 56, 68, 60, 78, 120, 73, 42, 75, 66, 98, 79, 96, 72, 89, 53, 69, 56, 73, 75, 76, 55, 71, 71, 98, 68, 70, 59, 52, 78, 51, 56, 43, 72, 73, 70, 58, 58, 95, 64, 51, 77, 59, 56, 90, 67, 65, 63, 107, 64, 41, 73, 72, 63, 57, 108, 53, 44, 51, 49, 65, 67, 65, 67, 59, 57, 59, 64, 90, 56, 57, 50, 69, 71, 64, 84, 69, 47, 67, 88, 66, 71, 60, 69, 61, 54, 67, 69, 47, 75, 109, 78, 69, 59, 61, 50, 43, 56, 67, 49, 46, 77, 63, 68, 65, 69, 60, 75, 69, 98, 65, 81, 53, 51, 59, 75, 74, 73, 69, 84, 72, 46, 64, 46, 75, 48, 67, 91, 64, 64, 49, 64, 115, 53, 61, 51, 76, 55, 70, 70, 55, 58, 82, 68, 62, 69, 71, 62, 49, 59, 66, 66, 80, 72, 74, 57, 57, 79, 54, 51, 45, 56, 54, 55, 62, 49, 58, 76, 76, 65, 55, 67, 96, 69, 54, 92, 69, 56, 63, 68, 64, 60, 49, 86, 48, 57, 62, 75, 61, 98, 65, 82, 50, 58, 65, 63, 53, 63, 65, 63, 48, 59, 53, 67, 54, 69, 53, 114, 85, 59, 50, 101, 61, 79, 59, 70, 58, 73, 42, 73, 47, 68, 81, 66, 73, 59, 62, 58, 69, 60, 79, 60, 80, 52, 44, 85, 93, 91, 69, 57, 56, 71, 71, 63, 59, 59, 95, 82, 53, 68, 69, 65, 66, 96, 75, 63, 106, 55, 66, 50, 64, 46, 47, 71, 56, 55, 77, 79, 57, 57, 55, 67, 65, 49, 58, 71, 55, 88, 78, 57, 65, 56, 61, 77, 56, 57, 72, 67, 78, 74, 65, 64, 68, 87, 51, 69, 67, 79, 62, 76, 46, 62, 67, 78, 65, 57, 55, 47, 102, 110, 87, 84, 58, 59, 77, 78, 56, 55, 70, 74, 129, 98, 63, 53, 68, 82, 62, 61, 66, 67, 104, 66, 47, 98, 74, 55, 51, 68, 69, 59, 83, 106, 63, 56, 77, 72, 62, 53, 74, 80, 54, 68, 49, 71, 72, 49, 61, 56, 64, 70, 50, 75, 49, 52, 47, 83, 86, 67, 64, 48, 66, 65, 58, 57, 72, 48, 41, 64, 60, 41, 52, 42, 52, 71, 70, 54, 73, 81, 66, 98, 90, 63, 74, 73, 74, 62, 73, 66, 52, 44, 64, 82, 62, 115, 68, 62, 85, 66, 85, 69, 75, 63, 70, 66, 66, 75, 58, 71, 73, 57, 64, 73, 51, 65, 67, 63, 57, 107, 53, 46, 42, 74, 52, 92, 68, 62, 77, 58, 51, 59, 58, 66, 68, 53, 69, 74, 58, 57, 65, 77, 61, 58, 69, 49, 58, 69, 63, 54, 64, 84, 71, 79, 74, 71, 63, 90, 68, 69, 71, 71, 71, 69, 61, 51, 71, 58, 107, 61, 33, 63, 59, 65, 71, 75, 52, 60, 33, 60, 54, 64, 90, 90, 63, 66, 74, 55, 52, 57, 87, 52, 70, 69, 60, 56, 86, 56, 63, 92, 59, 73, 53, 53, 78, 80, 55, 72, 71, 77, 61, 74, 69, 47, 57, 76, 57, 47, 82, 57, 52, 63, 46, 51, 60, 81, 69, 95, 72, 53, 61, 63, 73, 59, 72, 67, 48, 71, 65, 95, 59, 57, 53, 78, 60, 80, 104, 121, 89, 59, 79, 64, 44, 46, 57, 60, 69, 73, 62, 99, 63, 87, 67, 71, 82, 62, 75, 63, 65, 61, 60, 82, 69, 75, 131, 74, 59, 62, 69, 59, 44, 46, 70, 68, 72, 53, 41, 66, 57, 63, 60, 63, 45, 76, 51, 81, 56, 86, 50, 65, 69, 72, 100, 66, 51, 56, 61, 64, 65, 57, 62, 89, 53, 60, 74, 44, 66, 76, 59, 57, 54, 66, 78, 67, 56, 61, 49, 46, 57, 56, 96, 62, 28, 59, 66, 48, 87, 59, 85, 110, 61, 66, 77, 63, 53, 61, 56, 84, 76, 35, 93, 73, 62, 65, 82, 51, 74, 66, 81, 71, 53, 74, 68, 68, 77, 53, 83, 59, 78, 55, 61, 66, 59, 51, 42, 41, 58, 53, 70, 81, 69, 41, 56, 64, 61, 52, 71, 56, 58, 69, 56, 62, 54, 87, 66, 87, 88, 54, 73, 50, 89, 64, 60, 50, 78, 64, 58, 70, 86, 78, 48, 57, 50, 66, 61, 106, 74, 65, 77, 69, 58, 73, 63, 72, 72, 66, 54, 59, 47, 54, 78, 69, 59, 58, 56, 85, 68, 82, 58, 82, 88, 73, 59, 54, 67, 55, 66, 57, 60, 67, 64, 54, 65, 72, 78, 80, 87, 60, 55, 73, 60, 84, 62, 46, 77, 58, 40, 76, 72, 90, 53, 51, 66, 54, 49, 66, 49, 47, 53, 59, 65, 45, 64, 73, 72, 54, 69, 80, 72, 70, 60, 63, 68, 66, 49, 76, 80, 73, 62, 53, 55, 80, 127, 57, 63, 73, 55, 69, 68, 75, 70, 66, 63, 94, 63, 63, 68, 68, 50, 61, 61, 64, 50, 58, 75, 63, 75, 78, 63, 70, 66, 72, 53, 75, 44, 76, 60, 76, 62, 65, 87, 57, 61, 89, 56, 66, 88, 67, 49, 67, 58, 82, 61, 61, 58, 67, 69, 93, 64, 47, 88, 67, 62, 51, 55, 72, 56, 87, 56, 71, 78, 57, 57, 64, 74, 52, 71, 55, 64, 59, 95, 56, 75, 48, 50, 68, 74, 63, 61, 55, 75, 47, 57, 61, 75, 68, 68, 67, 81, 66, 88, 60, 52, 54, 74, 75, 53, 59, 78, 79, 69, 77, 62, 73, 60, 63, 60, 77, 71, 62, 45, 47, 65, 62, 82, 56, 62, 58, 76, 64, 75, 53, 103, 68, 81, 65, 92, 82, 60, 63, 66, 56, 65, 65, 73, 65, 52, 60, 58, 45, 58, 57, 57, 76, 69, 45, 54, 63, 47, 90, 79, 63, 64, 75, 69, 62, 71, 46, 89, 57, 94, 71, 60, 59, 57, 51, 64, 64, 65, 54, 56, 51, 50, 74, 93, 76, 67, 78, 55, 72, 84, 47, 49, 52, 48, 76, 61, 59, 66, 113, 84, 62, 51, 53, 65, 65, 56, 77, 71, 65, 71, 57, 67, 76, 82, 93, 58, 92, 45, 55, 70, 90, 69, 59, 58, 63, 89, 68, 73, 46, 62, 92, 64, 74, 74, 76, 73, 48, 45, 59, 62, 73, 49, 59, 53, 83, 49, 66, 56, 57, 69, 72, 59, 49, 97, 52, 46, 67, 63, 55, 74, 58, 46, 71, 97, 66, 62, 63, 68, 48, 46, 100, 72, 81, 68, 66, 68, 95, 60, 82, 50, 76, 61, 51, 74, 52, 72, 71, 59, 55, 39, 78, 68, 56, 56, 60, 75, 94, 75, 78, 65, 42, 94, 64, 54, 69, 88, 58, 96, 64, 82, 50, 62, 69, 77, 79, 42, 69, 54, 49, 63, 86, 50, 54, 77, 68, 57, 111, 50, 78, 57, 71, 71, 71, 74, 51, 81, 69, 53, 78, 69, 73, 45, 51, 73, 64, 44, 67, 124, 48, 51, 40, 56, 63, 52, 68, 49, 62, 78, 79, 71, 67, 51, 58, 60, 76, 47, 71, 57, 58, 66, 60, 64, 77, 63, 104, 53, 47, 62, 62, 70, 70, 71, 62, 71, 61, 72, 62, 66, 59, 81, 63, 72, 62, 63, 62, 55, 68, 65, 73, 97, 79, 44, 58, 65, 46, 72, 70, 60, 53, 65, 92, 64, 57, 76, 43, 56, 46, 71, 62, 51, 66, 77, 81, 67, 67, 38, 69, 55, 67, 60, 56, 77, 66, 60, 65, 70, 58, 64, 79, 71, 63, 53, 61, 78, 56, 58, 57, 62, 61, 57, 76, 70, 91, 55, 65, 69, 49, 66, 62, 54, 70, 67, 58, 64, 76, 51, 50, 56, 69, 72, 59, 65, 59, 68, 66, 63, 67, 44, 61, 62, 67, 68, 64, 53, 86, 53, 59, 59, 95, 67, 86, 57, 64, 64, 82, 57, 65, 64, 53, 73, 57, 53, 76, 82, 66, 68, 50, 80, 57, 51, 82, 73, 69, 66, 60, 98, 63, 82, 69, 59, 49, 55, 68, 112, 63, 52, 113, 65, 62, 80, 57, 78, 69, 63, 66, 83, 76, 61, 73, 52, 48, 57, 73, 48, 78, 112, 70, 81, 60, 68, 67, 65, 69, 82, 56, 69, 78, 72, 76, 63, 56, 77, 52, 79, 68, 49, 77, 51, 54, 68, 54, 105, 58, 71, 64, 42, 61, 59, 57, 76, 80, 92, 60, 74, 52, 80, 48, 60, 63, 62, 63, 57, 60, 50, 70, 51, 65, 58, 88, 46, 76, 77, 99, 59, 111, 84, 72, 60, 114, 56, 78, 73, 56, 60, 65, 66, 53, 68, 80, 62, 67, 76, 49, 90, 64, 57, 55, 74, 58, 92, 64, 61, 63, 59, 53, 81, 98, 70, 68, 75, 62, 65, 100, 42, 48, 75, 65, 61, 98, 75, 78, 66, 60, 59, 73, 53, 74, 58, 72, 59, 59, 61, 69, 69, 57, 51, 65, 71, 68, 71, 54, 65, 57, 69, 68, 71, 48, 55, 66, 67, 57, 67, 65, 56, 66, 58, 74, 76, 56, 60, 50, 126, 55, 65, 64, 72, 52, 67, 42, 54, 57, 68, 92, 81, 62, 85, 91, 49, 56, 60, 60, 49, 60, 92, 50, 50, 67, 74, 69, 72, 74, 60, 68, 66, 48, 68, 83, 79, 84, 60, 44, 60, 62, 66, 68, 66, 59, 59, 59, 59, 48, 85, 57, 53, 65, 61, 64, 60, 44, 70, 66, 81, 60, 68, 78, 49, 68, 60, 56, 107, 60, 64, 90, 78, 81, 51, 73, 59, 77, 80, 68, 62, 58, 57, 102, 53, 49, 43, 76, 61, 49, 69, 86, 69, 84, 62, 81, 100, 49, 36, 75, 67, 76, 46, 75, 80, 45, 100, 64, 59, 52, 45, 53, 53, 79, 66, 93, 69, 62, 73, 43, 87, 51, 77, 69, 62, 59, 89, 82, 68, 68, 54, 65, 58, 54, 89, 65, 73, 70, 50, 71, 66, 61, 56, 65, 56, 60, 46, 73, 59, 73, 44, 64, 79, 67, 61, 63, 54, 67, 60, 72, 71, 55, 68, 63, 123, 55, 52, 63, 80, 45, 47, 60, 53, 74, 51, 59, 88, 55, 62, 62, 89, 62, 77, 71, 68, 75, 82, 59, 76, 69, 75, 63, 65, 66, 71, 56, 63, 60, 55, 99, 77, 55, 56, 89, 63, 53, 66, 64, 69, 52, 60, 74, 61, 60, 76, 68, 82, 64, 75, 62, 70, 85, 58, 48, 70, 88, 65, 73, 67, 76, 80, 64, 82, 50, 70, 72, 80, 77, 58, 61, 90, 54, 44, 49, 72, 67, 41, 111, 76, 77, 57, 51, 77, 53, 60, 63, 51, 58, 53, 67, 43, 73, 61, 79, 69, 56, 62, 60, 67, 65, 55, 68, 64, 57, 60, 58, 78, 63, 59, 83, 58, 70, 55, 59, 63, 79, 50, 60, 74, 79, 93, 75, 63, 42, 61, 55, 64, 56, 50, 66, 63, 104, 63, 78, 54, 82, 66, 63, 51, 80, 84, 57, 53, 73, 53, 72, 55, 81, 74, 65, 69, 73, 72, 70, 64, 72, 83, 68, 54, 65, 84, 55, 66, 63, 106, 88, 59, 48, 79, 56, 55, 72, 36, 56, 56, 82, 63, 80, 71, 79, 53, 59, 47, 79, 62, 59, 74, 46, 54, 86, 99, 53, 42, 66, 81, 58, 56, 69, 47, 54, 68, 56, 99, 67, 57, 57, 61, 65, 53, 61, 58, 78, 59, 42, 64, 65, 97, 63, 59, 64, 49, 59, 73, 83, 63, 61, 58, 47, 68, 88, 65, 45, 62, 59, 55, 69, 48, 83, 74, 67, 57, 60, 78, 67, 62, 79, 48, 66, 51, 56, 91, 74, 55, 78, 55, 62, 71, 64, 66, 56, 64, 62, 70, 60, 50, 53, 76, 72, 52, 65, 69, 61, 60, 51, 58, 71, 68, 76, 63, 65, 66, 73, 65, 60, 70, 72, 59, 61, 61, 76, 70, 73, 63, 89, 118, 63, 52, 50, 95, 61, 63, 67, 63, 78, 58, 55, 75, 67, 55, 68, 67, 95, 54, 55, 62, 59, 70, 58, 69, 54, 62, 80, 79, 69, 73, 66, 78, 54, 71, 89, 75, 65, 62, 80, 64, 78, 70, 59, 72, 61, 72, 57, 54, 57, 69, 55, 69, 73, 74, 64, 71, 56, 67, 64, 63, 60, 68, 85, 64, 50, 66, 83, 55, 54, 69, 67, 72, 54, 63, 72, 69, 79, 84, 60, 61, 59, 63, 79, 79, 69, 76, 55, 53, 94, 52, 64, 51, 60, 65, 56, 89, 69, 66, 63, 54, 78, 64, 53, 92, 55, 65, 61, 73, 74, 71, 67, 41, 37, 49, 65, 61, 62, 77, 69, 62, 47, 116, 53, 67, 111, 92, 55, 67, 53, 62, 60, 106, 70, 47, 69, 79, 61, 55, 74, 60, 96, 60, 59, 67, 58, 50, 77, 52, 72, 56, 57, 82, 56, 53, 56, 53, 66, 59, 72, 73, 58, 57, 60, 57, 93, 73, 59, 64, 66, 80, 80, 54, 67, 80, 73, 57, 48, 78, 61, 61, 67, 58, 52, 57, 55, 74, 66, 53, 66, 68, 59, 68, 76, 63, 80, 68, 74, 67, 84, 94, 52, 68, 77, 81, 74, 58, 89, 68, 61, 53, 57, 53, 69, 47, 59, 107, 74, 64, 67, 76, 79, 60, 46, 109, 82, 63, 48, 58, 68, 40, 66, 92, 56, 63, 63, 70, 49, 63, 71, 58, 54, 71, 56, 122, 39, 56, 72, 46, 61, 72, 56, 106, 75, 55, 65, 86, 58, 73, 70, 68, 78, 62, 56, 53, 71, 61, 59, 54, 75, 80, 99, 67, 69, 71, 63, 53, 57, 61, 56, 52, 70, 64, 49, 61, 78, 61, 62, 75, 76, 56, 84, 44, 72, 63, 51, 60, 59, 62, 66, 64, 83, 63, 52, 53, 74, 68, 98, 45, 67, 61, 65, 60, 61, 70, 77, 55, 57, 62, 70, 67, 67, 60, 64, 82, 83, 61, 63, 57, 69, 63, 59, 62, 55, 59, 60, 63, 68, 60, 72, 102, 54, 73, 63, 59, 51, 60, 62, 61, 56, 53, 70, 88, 62, 85, 88, 71, 53, 63, 66, 78, 64, 88, 55, 67, 60, 53, 52, 67, 65, 66, 57, 57, 69, 60, 75, 55, 58, 70, 62, 76, 72, 64, 75, 71, 56, 65, 90, 59, 88, 60, 56, 79, 56, 58, 72, 65, 99, 116, 67, 73, 62, 65, 52, 80, 71, 57, 59, 56, 65, 61, 58, 48, 95, 56, 69, 64, 64, 60, 70, 65, 62, 60, 53, 50, 46, 56, 80, 75, 64, 62, 51, 59, 76, 69, 66, 84, 64, 76, 61, 68, 80, 58, 73, 63, 81, 66, 46, 72, 53, 64, 63, 76, 51, 50, 66, 63, 77, 63, 66, 72, 62, 51, 64, 60, 73, 74, 75, 53, 73, 43, 100, 53, 67, 65, 62, 55, 59, 59, 59, 49, 49, 72, 69, 65, 58, 63, 69, 58, 64, 86, 62, 71, 56, 46, 70, 61, 61, 58, 56, 60, 56, 61, 62, 72, 54, 71, 73, 77, 76, 65, 45, 67, 62, 55, 75, 62, 59, 60, 109, 62, 63, 70, 87, 52, 63, 80, 65, 75, 71, 75, 63, 61, 63, 53, 68, 50, 55, 62, 55, 63, 70, 57, 95, 72, 87, 47, 63, 95, 87, 55, 61, 92, 69, 66, 69, 61, 64, 75, 53, 87, 53, 53, 64, 52, 54, 47, 55, 70, 69, 79, 84, 70, 55, 82, 60, 67, 63, 58, 63, 52, 57, 55, 65, 50, 66, 53, 68, 33, 63, 58, 47, 67, 66, 50, 62, 58, 66, 62, 58, 61, 63, 57, 79, 64, 51, 69, 61, 55, 51, 65, 55, 65, 70, 66, 87, 59, 79, 59, 52, 70, 66, 62, 68, 56, 57, 59, 56, 54, 64, 65, 68, 67, 67, 64, 67, 62, 77, 69, 57, 76, 52, 54, 60, 64, 53, 62, 54, 56, 71, 79, 69, 74, 69, 53, 88, 59, 66, 52, 49, 70, 66, 77, 70, 60, 50, 97, 86, 69, 54, 49, 77, 55, 61, 80, 47, 61, 51, 89, 59, 70, 61, 76, 62, 59, 71, 46, 66, 85, 65, 52, 87, 64, 57, 79, 77, 53, 70, 71, 58, 76, 59, 65, 64, 64, 63, 75, 65, 62, 57, 46, 46, 97, 55, 48, 83, 56, 70, 77, 59, 39, 66, 49, 83, 40, 53, 67, 97, 70, 69, 60, 73, 68, 58, 69, 82, 113, 62, 50, 75, 71, 60, 60, 43, 65, 56, 78, 75, 85, 46, 70, 60, 66, 43, 61, 73, 69, 64, 60, 69, 65, 52, 54, 54, 110, 43, 60, 64, 81, 50, 76, 57, 89, 81, 79, 62, 59, 60, 48, 59, 95, 88, 117, 52, 65, 71, 75, 75, 49, 79, 63, 64, 60, 71, 77, 65, 57, 101, 72, 59, 59, 104, 64, 74, 57, 62, 54, 114, 101, 55, 57, 61, 44, 67, 56, 66, 59, 93, 62, 71, 68, 55, 61, 66, 76, 71, 59, 73, 63, 107, 96, 58, 66, 57, 57, 47, 71, 51, 61, 75, 51, 78, 64, 67, 77, 64, 70, 52, 74, 70, 81, 71, 75, 70, 66, 58, 48, 64, 65, 72, 63, 91, 70, 65, 65, 73, 71, 64, 68, 64, 51, 53, 53, 61, 80, 65, 72, 65, 87, 49, 71, 56, 53, 64, 52, 45, 74, 64, 98, 44, 46, 66, 66, 61, 96, 75, 58, 96, 66, 52, 62, 55, 69, 84, 90, 45, 64, 77, 57, 57, 47, 50, 115, 60, 60, 66, 46, 61, 55, 51, 58, 85, 71, 54, 49, 60, 89, 50, 55, 63, 56, 56, 49, 73, 73, 70, 56, 61, 83, 64, 61, 54, 53, 65, 80, 60, 83, 64, 62, 88, 67, 75, 49, 55, 66, 55, 55, 79, 76, 52, 68, 56, 62, 71, 65, 70, 70, 60, 64, 70, 53, 72, 44, 71, 67, 61, 58, 52, 54, 60, 47, 58, 61, 59, 82, 75, 72, 55, 65, 63, 90, 53, 67, 90, 64, 67, 75, 58, 53, 89, 74, 128, 56, 43, 62, 76, 71, 53, 48, 70, 79, 78, 80, 63, 61, 66, 78, 58, 74, 66, 59, 55, 118, 60, 76, 73, 43, 62, 67, 64, 54, 76, 58, 56, 71, 70, 49, 69, 74, 58, 58, 68, 87, 63, 77, 62, 59, 69, 61, 52, 69, 60, 58, 55, 40, 53, 72, 60, 78, 69, 89, 78, 73, 80, 77, 53, 84, 53, 67, 55, 57, 77, 58, 51, 76, 69, 72, 63, 73, 57, 59, 59, 75, 141, 64, 56, 66, 66, 77, 68, 68, 64, 51, 53, 46, 58, 63, 57, 61, 67, 53, 55, 58, 67, 59, 53, 69, 56, 71, 104, 78, 121, 60, 105, 57, 84, 73, 59, 52, 62, 67, 116, 58, 72, 86, 52, 79, 56, 80, 62, 51, 71, 53, 59, 81, 66, 61, 116, 77, 57, 64, 62, 82, 55, 76, 62, 46, 63, 54, 37, 59, 75, 55, 55, 70, 86, 45, 62, 76, 73, 59, 51, 73, 78, 55, 65, 75, 55, 78, 51, 87, 80, 64, 70, 96, 46, 55, 63, 69, 61, 90, 66, 67, 73, 74, 66, 83, 82, 76, 51, 53, 69, 53, 49, 73, 69, 51, 71, 59, 83, 80, 61, 91, 77, 72, 54, 62, 38, 60, 79, 63, 70, 62, 58, 90, 66, 54, 78, 51, 75, 67, 70, 62, 109, 49, 55, 73, 51, 58, 95, 66, 59, 58, 50, 62, 70, 53, 72, 63, 69, 55, 81, 62, 83, 53, 58, 69, 53, 64, 74, 66, 58, 76, 67, 54, 96, 75, 52, 57, 66, 57, 61, 61, 63, 71, 54, 51, 40, 67, 75, 66, 73, 49, 51, 68, 58, 55, 65, 64, 68, 76, 89, 75, 54, 58, 73, 62, 63, 53, 55, 61, 78, 56, 68, 55, 53, 57, 66, 49, 68, 65, 64, 62, 113, 64, 62, 55, 61, 55, 57, 78, 62, 69, 94, 60, 61, 67, 81, 66, 55, 61, 70, 45, 42, 115, 65, 57, 64, 71, 57, 58, 78, 54, 71, 72, 77, 62, 62, 53, 64, 75, 61, 66, 57, 63, 66, 72, 67, 52, 49, 59, 108, 57, 59, 59, 53, 47, 100, 60, 67, 68, 67, 81, 75, 48, 48, 53, 68, 75, 50, 53, 56, 69, 73, 82, 100, 58, 56, 68, 58, 69, 62, 60, 51, 53, 58, 55, 75, 50, 64, 55, 66, 59, 81, 64, 55, 72, 81, 72, 59, 57, 55, 49, 74, 80, 63, 55, 63, 58, 51, 50, 61, 70, 57, 63, 78, 49, 40, 62, 60, 65, 79, 57, 58, 66, 74, 58, 62, 64, 72, 59, 66, 72, 62, 55, 54, 64, 101, 61, 59, 54, 54, 119, 83, 93, 54, 73, 65, 60, 47, 52, 55, 57, 63, 72, 76, 57, 74, 63, 74, 67, 53, 73, 72, 99, 67, 65, 65, 87, 73, 92, 54, 72, 61, 68, 68, 72, 93, 57, 64, 58, 68, 56, 66, 61, 74, 71, 61, 71, 67, 50, 44, 54, 51, 110, 52, 55, 64, 72, 79, 58, 65, 53, 60, 56, 63, 60, 48, 66, 77, 61, 63, 37, 55, 70, 71, 65, 66, 65, 68, 66, 47, 81, 60, 57, 66, 72, 61, 57, 103, 64, 78, 74, 73, 66, 89, 59, 76, 63, 86, 70, 58, 58, 114, 80, 52, 66, 97, 73, 69, 55, 55, 61, 81, 58, 92, 63, 79, 64, 79, 58, 66, 71, 61, 59, 67, 62, 65, 72, 64, 62, 75, 76, 69, 109, 67, 57, 66, 88, 64, 57, 58, 52, 100, 63, 77, 70, 62, 70, 58, 58, 80, 55, 66, 76, 56, 62, 58, 78, 58, 67, 51, 78, 61, 65, 49, 91, 63, 60, 63, 52, 81, 57, 74, 59, 68, 61, 62, 66, 52, 83, 55, 57, 90, 66, 61, 51, 62, 58, 59, 65, 50, 80, 64, 62, 66, 67, 51, 72, 74, 102, 59, 54, 59, 91, 68, 58, 72, 57, 43, 58, 54, 51, 66, 57, 70, 60, 68, 55, 56, 63, 71, 59, 53, 58, 56, 50, 49, 73, 69, 75, 47, 65, 64, 87, 64, 58, 53, 54, 62, 69, 61, 64, 81, 57, 62, 69, 50, 82, 66, 77, 69, 65, 59, 62, 64, 57, 59, 82, 87, 53, 51, 66, 54, 68, 63, 52, 79, 55, 113, 81, 63, 75, 83, 65, 75, 57, 63, 51, 54, 65, 53, 69, 72, 42, 58, 65, 63, 65, 63, 45, 55, 62, 64, 81, 80, 52, 56, 51, 72, 87, 57, 119, 74, 49, 58, 59, 69, 64, 64, 75, 63, 63, 70, 64, 56, 55, 77, 53, 81, 60, 83, 85, 51, 117, 71, 85, 58, 64, 60, 52, 96, 56, 73, 41, 73, 83, 54, 51, 82, 57, 66, 54, 60, 58, 61, 72, 68, 71, 53, 72, 61, 56, 64, 58, 69, 57, 61, 67, 68, 57, 111, 76, 52, 53, 85, 86, 73, 54, 62, 60, 62, 67, 55, 65, 68, 64, 92, 74, 88, 77, 72, 50, 63, 52, 52, 56, 73, 70, 49, 52, 116, 62, 46, 94, 123, 73, 68, 60, 69, 54, 86, 68, 73, 93, 87, 54, 66, 65, 54, 59, 59, 63, 55, 60, 41, 66, 47, 53, 68, 58, 77, 76, 67, 64, 70, 57, 80, 68, 80, 64, 63, 62, 78, 59, 69, 59, 38, 67, 61, 63, 62, 105, 56, 50, 60, 77, 68, 65, 50, 79, 51, 60, 93, 64, 76, 57, 89, 62, 73, 56, 61, 75, 68, 60, 56, 85, 68, 83, 54, 55, 59, 74, 58, 84, 74, 49, 69, 91, 76, 58, 60, 70, 48, 84, 50, 56, 69, 55, 54, 95, 75, 65, 64, 94, 62, 86, 70, 52, 66, 79, 72, 67, 52, 60, 55, 85, 83, 64, 44, 68, 62, 83, 41, 63, 67, 82, 59, 67, 71, 61, 67, 61, 58, 60, 83, 47, 65, 68, 59, 53, 69, 51, 67, 67, 81, 62, 96, 65, 71, 53, 67, 53, 49, 65, 50, 69, 74, 61, 58, 69, 50, 64, 59, 58, 50, 65, 48, 62, 59, 51, 75, 72, 52, 57, 60, 72, 60, 61, 60, 45, 76, 70, 61, 109, 62, 55, 78, 65, 56, 83, 61, 63, 77, 70, 46, 60, 72, 84, 64, 65, 79, 57, 64, 61, 54, 55, 62, 62, 87, 81, 55, 72, 82, 63, 52, 62, 82, 70, 60, 59, 88, 61, 69, 84, 60, 58, 63, 65, 71, 65, 60, 42, 89, 49, 91, 64, 74, 77, 71, 60, 58, 61, 48, 102, 71, 55, 68, 67, 65, 76, 77, 72, 89, 71, 83, 65, 56, 58, 69, 56, 47, 69, 78, 61, 95, 68, 67, 65, 53, 74, 69, 54, 45, 63, 57, 65, 59, 56, 60, 66, 69, 76, 76, 77, 58, 62, 69, 82, 72, 73, 66, 93, 71, 63, 80, 65, 85, 64, 65, 58, 50, 94, 62, 62, 76, 48, 78, 54, 61, 68, 66, 57, 59, 62, 77, 67, 49, 77, 69, 51, 62, 73, 61, 71, 95, 70, 62, 74, 61, 66, 83, 58, 68, 58, 82, 63, 52, 55, 61, 67, 55, 70, 58, 60, 76, 53, 69, 73, 72, 53, 74, 57, 75, 63, 65, 127, 61, 63, 96, 62, 61, 69, 60, 65, 56, 51, 52, 67, 62, 44, 68, 73, 61, 66, 64, 67, 74, 41, 81, 73, 64, 61, 63, 60, 67, 59, 65, 113, 54, 58, 56, 41, 55, 61, 63, 57, 58, 78, 58, 64, 48, 96, 58, 73, 64, 60, 64, 62, 66, 66, 57, 60, 67, 47, 59, 65, 97, 86, 54, 58, 56, 92, 69, 48, 81, 54, 92, 83, 47, 59, 70, 76, 62, 64, 69, 55, 66, 66, 61, 55, 46, 57, 64, 68, 55, 70, 79, 57, 68, 53, 73, 79, 79, 65, 73, 74, 64, 75, 50, 64, 58, 62, 76, 50, 56, 59, 73, 53, 44, 72, 77, 53, 78, 60, 91, 54, 75, 64, 79, 66, 59, 71, 69, 84, 79, 47, 56, 75, 65, 72, 91, 60, 66, 43, 50, 51, 42, 54, 80, 74, 68, 74, 54, 64, 44, 52, 68, 56, 82, 59, 81, 62, 93, 56, 62, 61, 51, 61, 68, 88, 66, 76, 60, 77, 101, 50, 53, 70, 107, 68, 37, 58, 62, 73, 60, 54, 66, 58, 62, 71, 59, 58, 60, 52, 50, 58, 54, 82, 48, 70, 71, 71, 53, 56, 56, 80, 64, 80, 81, 56, 72, 60, 50, 84, 79, 62, 50, 81, 67, 46, 62, 60, 52, 57, 39, 62, 72, 57, 73, 63, 94, 62, 61, 47, 84, 70, 57, 63, 75, 88, 64, 63, 74, 56, 70, 66, 72, 36, 63, 68, 55, 80, 35, 71, 76, 58, 70, 62, 64, 71, 57, 91, 70, 63, 60, 51, 76, 51, 43, 47, 62, 94, 75, 52, 58, 62, 65, 73, 51, 72, 87, 114, 67, 60, 64, 91, 71, 78, 65, 75, 49, 92, 75, 61, 54, 56, 67, 78, 71, 75, 78, 68, 47, 62, 57, 70, 65, 75, 65, 56, 82, 49, 56, 49, 58, 80, 59, 68, 64, 68, 74, 76, 55, 59, 73, 73, 78, 60, 96, 53, 58, 73, 60, 56, 53, 58, 65, 55, 92, 72, 61, 69, 61, 52, 112, 101, 54, 49, 48, 67, 70, 58, 51, 76, 96, 88, 60, 71, 71, 43, 71, 53, 77, 58, 64, 90, 56, 85, 65, 86, 60, 66, 72, 53, 59, 95, 56, 51, 78, 72, 43, 75, 80, 66, 82, 58, 56, 70, 59, 41, 59, 57, 39, 54, 64, 57, 72, 64, 73, 71, 61, 72, 56, 59, 58, 66, 70, 55, 65, 73, 92, 62, 43, 76, 83, 52, 63, 51, 60, 66, 67, 62, 56, 59, 70, 72, 49, 123, 68, 81, 85, 93, 58, 74, 67, 56, 77, 60, 49, 53, 52, 66, 95, 74, 66, 59, 66, 54, 69, 56, 57, 79, 65, 68, 60, 75, 67, 52, 102, 60, 40, 73, 69, 69, 82, 71, 76, 55, 84, 71, 62, 50, 77, 54, 59, 35, 58, 84, 64, 73, 72, 64, 65, 97, 54, 54, 77, 55, 60, 51, 62, 67, 79, 80, 57, 62, 67, 68, 97, 65, 43, 68, 73, 65, 97, 104, 89, 54, 62, 69, 86, 56, 72, 61, 80, 56, 62, 98, 88, 59, 115, 59, 49, 72, 84, 108, 59, 53, 85, 67, 57, 122, 66, 138, 56, 61, 71, 63, 69, 58, 68, 60, 47, 69, 55, 47, 70, 82, 52, 66, 55, 66, 100, 46, 61, 86, 92, 54, 60, 50, 76, 99, 54, 75, 67, 75, 72, 72, 43, 74, 77, 59, 70, 86, 54, 75, 48, 52, 51, 61, 60, 66, 66, 55, 63, 70, 66, 102, 58, 69, 71, 44, 80, 52, 73, 59, 72, 61, 64, 72, 85, 45, 63, 48, 87, 84, 92, 84, 61, 89, 71, 76, 64, 85, 74, 80, 72, 82, 59, 54, 70, 53, 66, 74, 49, 52, 71, 52, 40, 58, 62, 65, 66, 66, 71, 70, 57, 66, 69, 54, 66, 78, 56, 72, 85, 61, 66, 63, 79, 63, 60, 59, 63, 68, 85, 80, 47, 77, 73, 86, 53, 78, 52, 87, 100, 86, 55, 59, 61, 48, 82, 61, 62, 52, 105, 57, 62, 79, 52, 58, 88, 56, 67, 56, 83, 52, 65, 58, 53, 62, 79, 70, 69, 55, 64, 68, 64, 77, 74, 66, 66, 54, 46, 79, 63, 60, 60, 64, 87, 58, 78, 44, 60, 54, 53, 84, 63, 61, 56, 60, 90, 41, 52, 66, 58, 48, 60, 60, 81, 45, 67, 71, 77, 70, 81, 63, 75, 72, 55, 56, 67, 68, 45, 65, 64, 83, 66, 58, 53, 53, 49, 70, 65, 43, 58, 50, 59, 72, 57, 56, 69, 114, 59, 52, 52, 66, 51, 56, 60, 57, 57, 55, 81, 50, 70, 102, 75, 89, 57, 74, 73, 58, 69, 48, 47, 62, 47, 69, 56, 68, 61, 43, 73, 76, 62, 66, 57, 47, 64, 73, 74, 58, 64, 56, 54, 69, 70, 63, 68, 57, 54, 67, 64, 52, 65, 54, 62, 94, 57, 81, 44, 66, 56, 55, 60, 62, 96, 65, 56, 61, 76, 76, 48, 50, 58, 66, 46, 70, 57, 75, 59, 96, 52, 69, 48, 81, 63, 62, 70, 70, 75, 58, 56, 60, 72, 65, 51, 109, 66, 79, 68, 50, 54, 72, 58, 68, 47, 56, 64, 77, 67, 68, 65, 67, 68, 59, 89, 68, 70, 60, 52, 69, 63, 52, 58, 54, 73, 64, 50, 77, 68, 92, 62, 56, 61, 108, 73, 57, 93, 70, 59, 91, 47, 69, 73, 61, 55, 49, 107, 63, 51, 45, 102, 70, 49, 54, 56, 63, 79, 68, 61, 84, 110, 120, 67, 72, 40, 93, 79, 55, 70, 72, 81, 70, 59, 63, 54, 59, 105, 57, 57, 55, 88, 75, 69, 78, 78, 68, 63, 50, 61, 70, 79, 74, 86, 68, 67, 49, 110, 66, 84, 98, 52, 39, 60, 84, 74, 59, 62, 86, 46, 62, 42, 70, 48, 54, 78, 83, 51, 66, 59, 52, 52, 57, 59, 55, 59, 38, 61, 69, 76, 51, 75, 78, 75, 48, 50, 60, 52, 83, 65, 70, 78, 39, 71, 76, 55, 51, 64, 54, 52, 53, 60, 81, 89, 65, 96, 59, 64, 74, 75, 63, 63, 116, 52, 72, 68, 55, 54, 56, 80, 68, 117, 58, 47, 54, 85, 60, 67, 66, 73, 59, 66, 86, 47, 65, 72, 55, 65, 73, 55, 84, 66, 64, 57, 65, 72, 62, 85, 58, 53, 111, 67, 63, 75, 80, 46, 70, 49, 67, 60, 52, 77, 52, 67, 98, 57, 67, 68, 74, 65, 49, 83, 72, 55, 57, 83, 55, 71, 60, 94, 100, 73, 68, 56, 65, 96, 57, 70, 62, 54, 60, 54, 60, 71, 63, 60, 94, 75, 64, 53, 32, 51, 69, 85, 103, 69, 64, 67, 57, 55, 53, 57, 72, 67, 69, 65, 68, 91, 74, 52, 71, 64, 47, 65, 67, 53, 53, 68, 66, 63, 54, 63, 56, 62, 39, 57, 69, 59, 36, 54, 57, 68, 57, 60, 74, 52, 61, 81, 60, 47, 57, 69, 55, 91, 72, 60, 71, 69, 84, 69, 67, 78, 71, 71, 55, 48, 62, 79, 50, 69, 48, 69, 63, 72, 49, 61, 63, 62, 54, 65, 101, 59, 61, 89, 51, 106, 69, 81, 58, 68, 60, 70, 69, 58, 82, 67, 65, 57, 65, 78, 53, 86, 63, 55, 61, 77, 58, 107, 62, 61, 83, 36, 72, 69, 58, 68, 65, 65, 65, 46, 60, 72, 78, 54, 58, 79, 76, 63, 65, 74, 62, 79, 64, 56, 59, 67, 50, 95, 57, 59, 53, 70, 61, 59, 45, 56, 55, 40, 66, 60, 63, 70, 60, 55, 72, 72, 60, 70, 66, 71, 72, 66, 80, 67, 57, 106, 60, 69, 45, 62, 63, 58, 80, 74, 75, 72, 82, 59, 49, 77, 52, 65, 73, 64, 70, 82, 67, 50, 100, 67, 54, 63, 55, 78, 60, 68, 56, 87, 119, 80, 69, 46, 83, 58, 64, 74, 67, 73, 91, 53, 81, 65, 62, 81, 64, 70, 65, 58, 79, 60, 60, 54, 70, 61, 71, 58, 53, 77, 48, 56, 75, 53, 72, 65, 56, 60, 72, 73, 72, 59, 76, 80, 64, 65, 56, 55, 69, 63, 55, 58, 110, 69, 66, 66, 70, 68, 62, 95, 74, 62, 75, 77, 75, 59, 70, 68, 79, 96, 55, 71, 98, 89, 45, 51, 64, 52, 50, 64, 59, 64, 53, 64, 74, 69, 62, 65, 58, 64, 92, 72, 72, 62, 76, 75, 77, 106, 57, 65, 57, 72, 58, 72, 59, 71, 60, 106, 54, 68, 54, 62, 65, 80, 69, 76, 57, 57, 58, 51, 57, 68, 54, 85, 61, 86, 94, 52, 57, 62, 54, 62, 96, 65, 64, 68, 56, 56, 65, 62, 79, 53, 77, 46, 69, 52, 66, 56, 50, 54, 59, 77, 40, 82, 72, 53, 72, 74, 54, 98, 113, 63, 54, 63, 94, 54, 48, 51, 67, 68, 71, 60, 61, 69, 65, 65, 55, 75, 60, 88, 60, 50, 54, 80, 71, 66, 44, 57, 71, 77, 52, 60, 69, 68, 71, 61, 55, 60, 102, 66, 45, 68, 55, 56, 46, 85, 73, 62, 56, 70, 68, 78, 54, 84, 56, 69, 64, 64, 73, 100, 100, 100, 60, 49, 63, 71, 52, 60, 58, 57, 78, 59, 97, 59, 51, 61, 82, 45, 71, 83, 83, 64, 61, 60, 65, 74, 81, 61, 75, 72, 68, 59, 77, 66, 62, 74, 61, 67, 43, 83, 65, 47, 59, 69, 92, 63, 61, 54, 75, 55, 52, 89, 53, 79, 70, 71, 60, 76, 70, 61, 58, 69, 77, 58, 66, 70, 66, 57, 83, 55, 64, 39, 34, 90, 58, 59, 39, 63, 58, 67, 84, 64, 88, 57, 93, 61, 60, 66, 34, 89, 65, 64, 53, 50, 62, 62, 58, 44, 48, 75, 68, 97, 81, 65, 97, 64, 62, 69, 63, 96, 65, 66, 61, 77, 70, 83, 100, 62, 76, 36, 59, 62, 55, 76, 61, 61, 57, 73, 74, 73, 69, 50, 82, 75, 59, 52, 65, 63, 68, 42, 72, 62, 67, 67, 90, 61, 56, 63, 70, 61, 70, 70, 64, 57, 128, 51, 72, 80, 80, 69, 69, 59, 62, 63, 52, 49, 75, 56, 56, 122, 42, 86, 79, 118, 53, 57, 49, 64, 79, 63, 57, 120, 66, 63, 71, 85, 62, 63, 53, 69, 64, 66, 84, 52, 84, 60, 86, 73, 68, 60, 62, 57, 57, 65, 52, 60, 80, 70, 66, 68, 56, 98, 67, 63, 70, 77, 69, 50, 62, 67, 50, 75, 66, 117, 49, 63, 66, 66, 73, 54, 63, 65, 70, 56, 55, 57, 70, 84, 83, 50, 69, 68, 53, 53, 73, 68, 66, 75, 56, 53, 62, 49, 94, 66, 53, 61, 124, 63, 48, 78, 74, 74, 58, 53, 60, 61, 51, 59, 47, 60, 72, 55, 70, 61, 63, 66, 67, 48, 64, 63, 55, 60, 52, 69, 59, 91, 70, 53, 71, 60, 66, 58, 65, 69, 67, 59, 85, 65, 58, 60, 77, 48, 78, 87, 61, 66, 47, 58, 63, 77, 69, 69, 57, 62, 72, 59, 60, 57, 65, 50, 77, 90, 58, 52, 55, 59, 85, 61, 71, 65, 54, 55, 55, 64, 73, 59, 68, 73, 63, 81, 52, 71, 66, 68, 61, 69, 52, 62, 69, 47, 47, 62, 76, 60, 44, 63, 76, 55, 59, 49, 73, 47, 108, 89, 65, 69, 82, 72, 61, 50, 74, 74, 69, 53, 67, 60, 68, 53, 61, 49, 73, 62, 64, 76, 67, 79, 77, 68, 75, 73, 65, 71, 67, 77, 68, 45, 96, 59, 64, 64, 76, 65, 65, 112, 70, 52, 105, 63, 38, 53, 60, 76, 56, 67, 66, 67, 59, 70, 91, 67, 64, 63, 71, 41, 72, 50, 62, 55, 73, 57, 65, 53, 46, 66, 64, 68, 49, 76, 67, 83, 66, 85, 65, 48, 67, 48, 57, 73, 67, 59, 65, 85, 65, 121, 70, 41, 57, 72, 60, 66, 52, 86, 60, 66, 60, 54, 55, 61, 83, 63, 57, 65, 66, 100, 72, 118, 63, 67, 53, 58, 64, 58, 56, 68, 70, 49, 54, 60, 79, 70, 73, 62, 69, 83, 81, 64, 76, 57, 55, 48, 53, 53, 55, 90, 78, 62, 71, 51, 71, 63, 65, 84, 67, 59, 55, 64, 73, 56, 76, 59, 64, 64, 76, 60, 95, 92, 69, 92, 60, 56, 66, 63, 70, 71, 63, 67, 58, 62, 68, 63, 79, 77, 52, 52, 54, 58, 58, 55, 65, 66, 79, 90, 65, 66, 63, 69, 86, 51, 62, 68, 91, 70, 59, 49, 58, 65, 66, 71, 54, 50, 51, 52, 59, 72, 50, 82, 64, 62, 64, 61, 52, 50, 48, 66, 53, 45, 101, 70, 56, 76, 78, 63, 52, 98, 76, 92, 54, 63, 75, 61, 66, 66, 66, 71, 63, 68, 36, 78, 61, 67, 64, 89, 49, 55, 65, 65, 54, 53, 60, 61, 64, 51, 43, 69, 71, 65, 88, 66, 66, 47, 55, 44, 54, 58, 63, 62, 65, 96, 73, 86, 44, 82, 97, 55, 71, 53, 48, 64, 79, 74, 68, 72, 45, 58, 72, 44, 82, 68, 65, 74, 56, 57, 66, 55, 73, 73, 66, 87, 60, 66, 73, 50, 72, 62, 48, 90, 65, 116, 62, 70, 46, 73, 43, 60, 79, 72, 61, 65, 54, 71, 50, 70, 87, 66, 60, 89, 63, 83, 64, 63, 57, 52, 74, 68, 61, 79, 85, 79, 59, 71, 65, 71, 68, 75, 58, 66, 79, 54, 72, 76, 66, 43, 60, 63, 54, 61, 47, 67, 53, 70, 60, 62, 41, 65, 66, 50, 36, 62, 70, 82, 63, 61, 63, 106, 48, 57, 59, 63, 57, 71, 64, 49, 65, 82, 49, 50, 54, 70, 72, 65, 56, 80, 58, 73, 64, 61, 53, 65, 62, 65, 62, 55, 64, 87, 69, 68, 58, 80, 125, 59, 73, 86, 56, 46, 64, 79, 65, 52, 67, 69, 73, 58, 62, 74, 44, 76, 61, 76, 75, 78, 90, 72, 54, 66, 40, 60, 60, 88, 73, 70, 51, 73, 70, 56, 79, 64, 68, 53, 57, 76, 70, 70, 53, 64, 67, 63, 85, 79, 63, 59, 99, 71, 65, 65, 78, 74, 63, 61, 84, 79, 86, 66, 65, 69, 49, 47, 56, 48, 57, 46, 75, 69, 75, 70, 76, 63, 58, 56, 61, 36, 64, 44, 59, 67, 79, 65, 57, 68, 59, 58, 75, 89, 57, 70, 39, 68, 81, 69, 58, 78, 71, 65, 66, 60, 45, 72, 67, 62, 82, 65, 71, 97, 80, 84, 69, 63, 84, 36, 53, 58, 62, 123, 61, 89, 55, 84, 70, 62, 60, 58, 56, 52, 70, 65, 55, 55, 50, 88, 64, 47, 67, 88, 59, 62, 66, 59, 69, 59, 79, 76, 56, 46, 70, 70, 62, 57, 45, 65, 84, 61, 50, 47, 82, 71, 71, 79, 114, 55, 71, 40, 57, 93, 60, 60, 66, 112, 45, 65, 60, 66, 63, 48, 87, 60, 74, 76, 58, 52, 43, 68, 57, 46, 72, 58, 48, 67, 64, 55, 66, 68, 61, 65, 55, 66, 66, 61, 38, 58, 52, 64, 74, 68, 57, 51, 59, 64, 77, 64, 55, 54, 64, 54, 73, 36, 59, 59, 69, 75, 63, 58, 53, 80, 51, 64, 43, 56, 53, 48, 59, 66, 81, 58, 61, 69, 105, 67, 80, 57, 51, 78, 79, 77, 66, 59, 31, 64, 69, 85, 60, 101, 61, 67, 56, 58, 29, 65, 60, 87, 74, 77, 76, 63, 107, 59, 81, 68, 67, 67, 51, 51, 59, 77, 81, 64, 59, 72, 62, 60, 104, 55, 67, 57, 56, 64, 73, 69, 70, 59, 54, 70, 87, 58, 66, 67, 56, 57, 57, 59, 57, 75, 88, 63, 53, 61, 54, 57, 57, 57, 88, 58, 68, 64, 54, 64, 89, 70, 56, 57, 52, 48, 49, 57, 66, 57, 61, 77, 54, 75, 66, 74, 66, 52, 63, 46, 58, 84, 51, 48, 75, 80, 52, 66, 54, 53, 68, 82, 76, 95, 63, 62, 32, 86, 76, 74, 60, 112, 60, 55, 70, 66, 55, 66, 54, 76, 72, 66, 63, 55, 81, 78, 65, 65, 71, 59, 60, 61, 59, 69, 76, 66, 57, 52, 45, 48, 57, 65, 84, 66, 100, 53, 72, 82, 64, 60, 59, 50, 43, 46, 65, 66, 73, 81, 57, 110, 69, 60, 78, 67, 60, 53, 42, 73, 100, 52, 45, 67, 57, 69, 51, 71, 71, 58, 64, 56, 63, 60, 65, 98, 62, 61, 56, 90, 56, 66, 73, 68, 53, 71, 63, 36, 100, 75, 77, 48, 70, 53, 46, 53, 60, 26, 72, 77, 73, 72, 43, 60, 56, 67, 72, 63, 60, 66, 97, 63, 54, 76, 85, 65, 62, 67, 73, 43, 86, 62, 123, 52, 50, 68, 71, 75, 61, 61, 62, 64, 57, 64, 63, 66, 47, 82, 106, 75, 59, 58, 75, 66, 70, 72, 41, 70, 59, 50, 72, 72, 74, 64, 63, 71, 85, 65, 71, 68, 66, 61, 45, 57, 77, 60, 73, 63, 115, 58, 77, 49, 68, 59, 86, 68, 68, 54, 64, 55, 47, 62, 59, 86, 67, 67, 57, 62, 69, 71, 69, 76, 53, 93, 72, 68, 99, 79, 60, 79, 53, 57, 62, 65, 56, 90, 65, 67, 71, 55, 87, 55, 48, 66, 62, 56, 83, 54, 87, 68, 51, 51, 64, 77, 84, 67, 76, 54, 57, 53, 70, 77, 63, 61, 58, 51, 55, 52, 61, 64, 59, 80, 70, 77, 61, 78, 61, 59, 80, 51, 55, 56, 110, 80, 66, 44, 60, 70, 75, 70, 72, 69, 75, 85, 86, 63, 53, 69, 95, 62, 60, 55, 64, 56, 64, 71, 102, 48, 91, 61, 63, 56, 58, 80, 63, 64, 61, 67, 63, 60, 70, 64, 70, 70, 55, 66, 75, 62, 53, 86, 71, 64, 80, 89, 92, 81, 77, 66, 65, 92, 57, 64, 79, 60, 66, 85, 61, 45, 51, 63, 62, 66, 53, 65, 55, 62, 81, 56, 73, 61, 52, 78, 77, 77, 50, 106, 58, 89, 51, 68, 70, 62, 79, 80, 66, 62, 60, 66, 58, 65, 61, 58, 76, 60, 58, 52, 61, 84, 58, 61, 81, 64, 56, 57, 94, 44, 112, 69, 69, 68, 66, 56, 49, 54, 60, 73, 93, 67, 76, 62, 68, 27, 58, 48, 90, 55, 70, 75, 52, 69, 67, 48, 60, 46, 52, 74, 57, 61, 69, 76, 66, 61, 58, 57, 86, 42, 81, 107, 48, 63, 71, 56, 101, 54, 46, 68, 61, 57, 57, 61, 108, 67, 51, 51, 58, 68, 83, 59, 63, 66, 92, 103, 67, 64, 61, 71, 63, 83, 69, 72, 64, 78, 64, 70, 61, 72, 80, 61, 61, 60, 76, 55, 73, 66, 82, 54, 50, 66, 53, 76, 60, 80, 60, 84, 61, 62, 62, 63, 67, 61, 74, 66, 76, 57, 48, 54, 61, 66, 70, 68, 69, 73, 65, 65, 78, 52, 67, 63, 64, 61, 66, 62, 72, 75, 77, 69, 57, 65, 52, 66, 73, 70, 65, 65, 56, 45, 67, 73, 82, 54, 59, 30, 54, 60, 62, 47, 57, 44, 55, 59, 68, 67, 104, 78, 75, 67, 69, 53, 100, 69, 63, 76, 58, 75, 58, 60, 64, 63, 49, 66, 63, 97, 87, 81, 69, 52, 55, 62, 60, 48, 67, 66, 61, 41, 68, 78, 71, 97, 59, 84, 71, 45, 42, 87, 75, 44, 64, 67, 46, 69, 62, 69, 49, 85, 90, 74, 59, 54, 67, 73, 57, 61, 60, 41, 77, 56, 72, 61, 53, 81, 73, 50, 58, 76, 64, 71, 52, 62, 75, 60, 49, 53, 57, 89, 57, 73, 49, 49, 61, 71, 67, 80, 69, 62, 54, 76, 62, 67, 90, 67, 73, 66, 63, 62, 51, 56, 69, 81, 73, 84, 68, 80, 63, 79, 76, 74, 76, 59, 56, 62, 62, 83, 59, 89, 71, 43, 53, 75, 69, 57, 53, 51, 42, 91, 78, 66, 67, 71, 64, 67, 126, 140, 68, 61, 69, 41, 60, 71, 75, 80, 52, 62, 75, 98, 57, 69, 59, 87, 99, 67, 55, 100, 103, 87, 53, 68, 66, 53, 74, 68, 56, 62, 54, 67, 64, 58, 56, 51, 68, 62, 73, 66, 58, 58, 45, 57, 72, 63, 61, 70, 68, 63, 62, 60, 79, 41, 67, 65, 70, 60, 65, 56, 56, 54, 73, 58, 55, 50, 63, 62, 48, 48, 57, 74, 66, 62, 57, 85, 49, 62, 63, 104, 63, 103, 59, 54, 65, 76, 88, 64, 69, 56, 116, 99, 63, 81, 41, 48, 95, 59, 59, 86, 56, 70, 67, 68, 62, 62, 69, 66, 61, 49, 53, 68, 66, 60, 61, 75, 68, 133, 79, 54, 56, 67, 69, 76, 56, 76, 66, 65, 71, 55, 64, 71, 70, 48, 50, 61, 66, 72, 70, 86, 50, 66, 50, 68, 63, 55, 70, 80, 59, 68, 82, 51, 74, 65, 81, 100, 63, 67, 72, 61, 73, 61, 68, 54, 75, 77, 53, 86, 42, 71, 72, 71, 60, 57, 65, 74, 56, 52, 73, 49, 62, 79, 52, 102, 42, 56, 64, 79, 64, 57, 75, 52, 60, 66, 78, 67, 72, 60, 63, 89, 51, 68, 61, 49, 59, 62, 61, 61, 84, 57, 73, 68, 86, 73, 68, 75, 54, 62, 65, 73, 62, 67, 54, 68, 60, 77, 66, 68, 69, 60, 56, 66, 79, 54, 48, 60, 55, 98, 80, 60, 63, 61, 56, 78, 57, 98, 65, 53, 79, 79, 53, 56, 65, 65, 74, 46, 55, 86, 73, 29, 81, 44, 62, 67, 102, 68, 36, 64, 62, 66, 40, 56, 85, 65, 76, 56, 60, 65, 59, 56, 85, 141, 55, 64, 58, 62, 55, 52, 82, 49, 56, 72, 50, 55, 81, 50, 51, 58, 87, 61, 46, 80, 85, 55, 64, 51, 67, 52, 64, 62, 57, 63, 66, 44, 78, 79, 76, 63, 59, 60, 78, 67, 73, 62, 50, 62, 54, 60, 67, 63, 84, 64, 62, 62, 57, 65, 54, 61, 71, 53, 67, 59, 73, 51, 90, 54, 52, 59, 42, 53, 73, 45, 77, 46, 70, 58, 76, 60, 70, 100, 116, 60, 67, 80, 54, 83, 71, 53, 70, 61, 98, 59, 59, 61, 119, 80, 79, 79, 68, 56, 72, 55, 54, 53, 65, 57, 62, 73, 84, 65, 63, 113, 48, 60, 59, 45, 53, 68, 43, 59, 81, 48, 57, 62, 68, 76, 62, 55, 66, 45, 59, 78, 57, 110, 80, 89, 48, 61, 49, 47, 60, 56, 78, 72, 53, 59, 62, 67, 63, 71, 57, 80, 64, 63, 52, 108, 61, 86, 87, 67, 77, 55, 60, 67, 63, 61, 73, 61, 58, 51, 85, 59, 55, 61, 64, 65, 86, 53, 49, 89, 60, 53, 65, 62, 73, 80, 73, 58, 87, 56, 63, 46, 61, 64, 64, 66, 59, 73, 75, 75, 49, 63, 55, 73, 57, 70, 65, 66, 59, 72, 65, 74, 49, 75, 71, 68, 50, 60, 75, 66, 63, 77, 53, 62, 67, 59, 60, 66, 86, 70, 76, 76, 48, 59, 73, 72, 46, 66, 78, 46, 62, 62, 79, 76, 59, 75, 50, 115, 65, 60, 69, 55, 54, 71, 74, 70, 57, 61, 68, 51, 57, 69, 44, 66, 72, 58, 41, 93, 80, 74, 48, 34, 85, 74, 48, 58, 51, 49, 58, 58, 54, 67, 61, 80, 65, 35, 67, 62, 52, 53, 57, 55, 71, 65, 82, 70, 50, 105, 76, 49, 129, 43, 74, 77, 78, 56, 81, 70, 74, 62, 58, 56, 59, 55, 50, 54, 68, 80, 77, 83, 56, 49, 86, 60, 55, 51, 72, 68, 47, 69, 70, 56, 46, 60, 74, 103, 62, 77, 51, 66, 71, 62, 78, 59, 87, 52, 60, 75, 92, 62, 120, 71, 56, 93, 68, 61, 68, 58, 64, 59, 70, 60, 70, 57, 66, 59, 52, 64, 63, 66, 47, 78, 64, 53, 53, 64, 51, 68, 69, 66, 54, 39, 55, 58, 51, 56, 114, 59, 74, 61, 82, 81, 66, 60, 63, 69, 70, 74, 67, 55, 54, 73, 75, 51, 69, 58, 70, 62, 59, 68, 64, 65, 59, 55, 72, 76, 94, 80, 56, 71, 62, 67, 63, 53, 53, 73, 36, 59, 59, 72, 76, 68, 62, 64, 49, 73, 68, 93, 75, 96, 54, 54, 36, 58, 82, 73, 68, 52, 60, 84, 58, 61, 49, 51, 84, 59, 76, 61, 68, 74, 72, 61, 87, 74, 67, 76, 82, 55, 54, 60, 79, 57, 93, 75, 56, 82, 52, 76, 55, 69, 68, 60, 62, 59, 53, 84, 72, 63, 85, 68, 71, 56, 78, 75, 62, 69, 88, 66, 72, 88, 78, 58, 84, 60, 66, 68, 79, 77, 62, 71, 48, 79, 66, 78, 54, 47, 46, 66, 62, 72, 76, 67, 65, 61, 67, 88, 68, 50, 73, 78, 69, 65, 63, 77, 73, 50, 89, 75, 49, 75, 52, 53, 71, 70, 72, 63, 62, 72, 70, 85, 63, 73, 70, 63, 109, 61, 53, 45, 65, 87, 63, 64, 70, 61, 72, 67, 102, 55, 49, 73, 56, 75, 58, 86, 85, 64, 68, 78, 67, 63, 48, 64, 63, 60, 59, 69, 52, 61, 61, 47, 74, 84, 60, 109, 72, 81, 63, 91, 72, 68, 73, 50, 77, 45, 84, 71, 86, 55, 78, 59, 79, 60, 54, 63, 71, 73, 56, 52, 65, 29, 59, 46, 53, 103, 70, 73, 65, 42, 83, 78, 63, 60, 83, 47, 51, 58, 79, 60, 61, 73, 65, 83, 82, 77, 50, 54, 58, 80, 57, 63, 64, 71, 53, 68, 44, 65, 80, 81, 57, 59, 59, 68, 59, 56, 59, 70, 66, 45, 50, 67, 62, 69, 67, 65, 72, 53, 55, 55, 67, 53, 71, 51, 68, 55, 58, 52, 55, 72, 52, 61, 53, 67, 57, 80, 49, 74, 57, 59, 64, 62, 82, 62, 68, 77, 77, 59, 40, 71, 69, 69, 52, 86, 57, 64, 80, 74, 65, 45, 45, 76, 60, 53, 50, 65, 69, 83, 61, 57, 59, 77, 85, 71, 48, 77, 54, 42, 56, 67, 53, 73, 64, 54, 100, 129, 71, 80, 52, 64, 65, 65, 62, 70, 48, 82, 82, 93, 67, 54, 65, 91, 107, 52, 58, 95, 103, 79, 70, 64, 51, 75, 77, 72, 72, 52, 51, 66, 65, 53, 49, 95, 55, 62, 80, 71, 83, 69, 46, 79, 61, 60, 77, 46, 51, 65, 65, 50, 80, 56, 72, 55, 63, 62, 76, 88, 66, 56, 67, 75, 54, 52, 70, 69, 64, 70, 68, 50, 59, 81, 49, 65, 69, 47, 56, 107, 58, 96, 50, 73, 66, 51, 64, 52, 70, 58, 105, 96, 71, 87, 38, 69, 81, 63, 83, 55, 55, 68, 54, 54, 70, 60, 60, 63, 67, 48, 92, 69, 74, 76, 49, 79, 57, 114, 67, 72, 44, 71, 59, 92, 71, 96, 36, 65, 65, 68, 70, 87, 63, 77, 59, 57, 64, 60, 50, 101, 63, 79, 61, 76, 72, 71, 59, 68, 69, 57, 56, 54, 72, 90, 62, 82, 53, 64, 83, 69, 76, 65, 72, 67, 71, 93, 79, 54, 50, 53, 77, 63, 83, 68, 75, 74, 61, 54, 61, 62, 46, 97, 78, 98, 52, 55, 68, 76, 61, 59, 68, 52, 51, 57, 79, 61, 42, 66, 94, 66, 52, 71, 61, 63, 52, 60, 42, 62, 66, 52, 96, 66, 79, 66, 49, 86, 53, 56, 59, 62, 60, 69, 60, 73, 63, 65, 66, 56, 67, 59, 58, 63, 59, 62, 50, 47, 72, 72, 64, 60, 82, 59, 71, 74, 64, 82, 73, 55, 67, 57, 72, 46, 54, 54, 66, 66, 59, 94, 42, 55, 54, 49, 81, 67, 75, 59, 55, 55, 42, 68, 50, 75, 105, 52, 64, 51, 77, 53, 48, 41, 93, 135, 56, 49, 57, 67, 80, 52, 79, 66, 55, 61, 53, 39, 64, 55, 59, 64, 45, 59, 25, 68, 70, 69, 53, 69, 57, 73, 75, 74, 66, 70, 54, 53, 90, 51, 60, 74, 66, 57, 65, 80, 67, 58, 41, 101, 82, 73, 92, 66, 89, 89, 68, 64, 66, 48, 52, 69, 58, 69, 54, 63, 71, 58, 59, 75, 65, 87, 60, 50, 62, 59, 63, 55, 66, 59, 58, 83, 75, 101, 103, 72, 63, 80, 70, 79, 65, 59, 61, 53, 74, 58, 68, 54, 100, 58, 85, 91, 41, 63, 68, 74, 56, 63, 51, 70, 72, 70, 96, 47, 81, 104, 43, 76, 50, 38, 62, 73, 63, 65, 70, 66, 53, 63, 61, 76, 48, 84, 83, 65, 70, 81, 66, 109, 60, 89, 68, 79, 57, 75, 64, 69, 91, 77, 65, 60, 58, 45, 79, 86, 60, 64, 51, 82, 46, 91, 53, 97, 69, 74, 65, 72, 70, 77, 56, 55, 60, 57, 52, 52, 69, 46, 81, 65, 69, 45, 68, 48, 62, 74, 58, 62, 60, 69, 71, 67, 69, 65, 53, 74, 60, 44, 67, 66, 52, 60, 68, 50, 77, 60, 62, 49, 51, 54, 60, 75, 78, 69, 71, 74, 63, 60, 54, 61, 56, 45, 58, 55, 79, 54, 84, 62, 40, 48, 72, 74, 52, 69, 78, 45, 71, 68, 69, 60, 67, 60, 68, 56, 82, 63, 60, 58, 70, 89, 50, 49, 61, 89, 65, 52, 91, 62, 62, 70, 61, 41, 77, 62, 75, 63, 63, 57, 45, 67, 68, 76, 83, 67, 66, 71, 60, 59, 73, 67, 73, 66, 60, 66, 57, 76, 57, 58, 45, 88, 60, 55, 64, 67, 49, 56, 68, 62, 70, 72, 72, 59, 54, 101, 78, 65, 116, 65, 47, 61, 67, 59, 83, 64, 84, 58, 62, 82, 56, 63, 63, 74, 54, 63, 83, 61, 61, 69, 66, 54, 56, 64, 56, 61, 71, 61, 88, 60, 64, 65, 86, 85, 50, 70, 53, 62, 57, 78, 75, 71, 90, 76, 71, 74, 91, 55, 141, 60, 49, 74, 57, 74, 66, 55, 79, 50, 62, 65, 70, 45, 77, 61, 57, 62, 58, 57, 67, 75, 45, 63, 67, 61, 55, 69, 50, 69, 53, 48, 65, 74, 63, 97, 110, 71, 79, 72, 68, 80, 82, 67, 57, 69, 64, 42, 62, 64, 63, 63, 85, 54, 61, 57, 74, 67, 74, 67, 68, 70, 68, 80, 55, 72, 85, 71, 75, 78, 71, 69, 44, 74, 42, 59, 59, 64, 69, 57, 48, 61, 64, 69, 89, 68, 82, 85, 47, 90, 44, 65, 53, 58, 88, 48, 65, 48, 63, 77, 62, 51, 70, 63, 108, 67, 64, 55, 85, 76, 45, 66, 90, 43, 74, 76, 72, 59, 53, 63, 54, 65, 82, 47, 69, 75, 76, 57, 75, 51, 48, 87, 55, 54, 73, 73, 87, 55, 67, 74, 65, 63, 84, 66, 65, 50, 80, 72, 77, 74, 51, 48, 113, 56, 60, 61, 72, 76, 47, 54, 75, 68, 91, 90, 54, 52, 60, 61, 60, 74, 82, 58, 74, 73, 55, 77, 85, 55, 48, 62, 57, 63, 39, 59, 43, 61, 54, 62, 46, 68, 60, 51, 68, 69, 57, 86, 58, 62, 63, 61, 69, 73, 52, 69, 90, 54, 42, 54, 71, 61, 71, 66, 58, 68, 69, 66, 89, 66, 46, 61, 62, 83, 66, 91, 92, 75, 43, 64, 65, 84, 60, 82, 55, 38, 51, 68, 76, 55, 67, 66, 74, 61, 65, 61, 52, 83, 51, 68, 61, 65, 45, 59, 49, 97, 47, 73, 53, 63, 59, 84, 64, 73, 59, 65, 78, 57, 58, 67, 68, 81, 65, 72, 63, 77, 70, 67, 61, 71, 49, 95, 70, 104, 82, 49, 41, 67, 66, 73, 59, 115, 45, 131, 81, 74, 59, 78, 78, 65, 55, 57, 119, 57, 62, 61, 76, 110, 71, 84, 60, 60, 69, 67, 64, 72, 68, 65, 75, 58, 65, 66, 66, 76, 61, 58, 42, 58, 63, 92, 62, 57, 82, 55, 54, 74, 63, 61, 63, 73, 55, 58, 91, 49, 58, 69, 59, 54, 78, 69, 54, 66, 47, 59, 81, 69, 55, 107, 58, 73, 63, 69, 61, 53, 82, 85, 61, 60, 65, 85, 60, 64, 59, 64, 62, 74, 71, 63, 73, 51, 62, 69, 52, 57, 56, 60, 52, 70, 76, 53, 58, 67, 96, 69, 66, 73, 62, 85, 73, 62, 64, 70, 52, 56, 60, 54, 85, 55, 70, 60, 45, 56, 70, 61, 82, 61, 50, 87, 58, 82, 90, 64, 69, 90, 62, 63, 64, 66, 54, 49, 68, 44, 68, 61, 68, 47, 59, 81, 61, 57, 59, 76, 72, 86, 47, 84, 52, 56, 122, 57, 59, 57, 57, 71, 54, 77, 85, 66, 69, 70, 63, 57, 104, 64, 58, 67, 64, 68, 69, 53, 58, 64, 74, 68, 54, 62, 62, 61, 61, 113, 52, 55, 67, 59, 76, 67, 54, 60, 114, 79, 67, 61, 65, 55, 68, 69, 52, 59, 84, 72, 45, 71, 78, 74, 59, 51, 79, 79, 68, 65, 81, 59, 60, 66, 63, 70, 54, 78, 62, 55, 63, 84, 57, 57, 72, 100, 72, 55, 57, 68, 53, 62, 51, 96, 51, 73, 62, 62, 62, 50, 78, 60, 63, 68, 55, 62, 61, 41, 59, 63, 55, 64, 47, 61, 53, 70, 45, 75, 54, 69, 66, 74, 67, 51, 85, 70, 50, 49, 65, 67, 62, 82, 58, 74, 52, 64, 76, 78, 50, 89, 65, 55, 62, 70, 59, 71, 72, 63, 74, 53, 78, 58, 67, 60, 47, 59, 68, 75, 54, 78, 52, 62, 94, 50, 75, 77, 68, 48, 75, 81, 59, 74, 55, 67, 68, 65, 80, 72, 97, 52, 45, 68, 51, 80, 62, 61, 69, 76, 76, 71, 64, 102, 62, 72, 58, 57, 59, 71, 68, 63, 45, 71, 99, 41, 92, 61, 68, 68, 57, 60, 72, 54, 107, 59, 70, 93, 73, 68, 77, 87, 55, 66, 47, 80, 70, 60, 69, 85, 72, 67, 54, 68, 57, 50, 65, 43, 60, 63, 131, 54, 73, 56, 75, 59, 66, 71, 53, 55, 54, 67, 45, 101, 60, 65, 53, 66, 76, 60, 73, 59, 67, 71, 68, 55, 110, 65, 56, 71, 88, 60, 69, 56, 45, 89, 69, 51, 51, 58, 65, 61, 70, 69, 60, 55, 61, 65, 64, 60, 68, 78, 64, 48, 56, 68, 58, 59, 79, 47, 74, 70, 66, 72, 93, 66, 82, 62, 61, 52, 98, 107, 65, 102, 93, 62, 49, 59, 59, 65, 70, 68, 43, 78, 53, 56, 54, 63, 59, 52, 69, 66, 66, 65, 62, 61, 63, 54, 72, 56, 79, 45, 68, 47, 48, 73, 72, 70, 51, 61, 56, 58, 62, 70, 62, 48, 107, 54, 53, 60, 65, 63, 55, 65, 85, 52, 82, 61, 84, 65, 71, 121, 65, 94, 55, 70, 54, 57, 53, 88, 51, 63, 72, 88, 70, 80, 64, 60, 60, 55, 52, 82, 68, 80, 84, 61, 57, 57, 51, 64, 60, 58, 49, 66, 52, 83, 59, 60, 79, 69, 65, 59, 58, 50, 67, 55, 62, 64, 64, 57, 69, 59, 69, 76, 71, 76, 63, 75, 55, 62, 82, 78, 61, 68, 59, 81, 48, 75, 78, 47, 71, 53, 82, 61, 70, 60, 77, 57, 60, 69, 75, 76, 68, 62, 64, 69, 62, 84, 77, 88, 59, 62, 60, 70, 64, 68, 55, 61, 62, 56, 54, 61, 54, 53, 54, 57, 70, 70, 68, 72, 79, 81, 69, 51, 92, 73, 65, 86, 63, 52, 59, 82, 58, 70, 50, 85, 42, 64, 80, 69, 66, 65, 61, 63, 64, 50, 56, 58, 61, 78, 62, 78, 77, 73, 67, 81, 57, 75, 62, 75, 68, 61, 56, 75, 56, 61, 67, 60, 68, 50, 45, 55, 64, 49, 60, 58, 76, 68, 115, 53, 62, 41, 83, 82, 66, 57, 59, 58, 75, 66, 76, 55, 83, 58, 46, 47, 66, 50, 54, 60, 46, 77, 58, 66, 70, 78, 68, 73, 52, 90, 52, 52, 100, 89, 58, 61, 57, 63, 70, 65, 57, 67, 60, 83, 81, 52, 54, 61, 51, 71, 59, 60, 65, 53, 59, 61, 92, 61, 70, 72, 64, 63, 80, 80, 71, 57, 83, 65, 85, 73, 62, 77, 63, 67, 55, 71, 55, 50, 52, 78, 67, 72, 92, 55, 90, 67, 66, 62, 65, 49, 75, 61, 46, 78, 50, 89, 67, 70, 75, 48, 60, 63, 76, 85, 64, 42, 60, 64, 56, 54, 59, 57, 77, 73, 64, 52, 62, 89, 68, 55, 64, 59, 66, 63, 55, 60, 57, 64, 55, 64, 56, 54, 63, 52, 71, 48, 72, 58, 64, 59, 60, 65, 47, 53, 58, 59, 100, 61, 74, 70, 68, 58, 69, 50, 82, 100, 75, 61, 71, 44, 45, 57, 60, 58, 70, 57, 64, 53, 106, 78, 65, 61, 44, 56, 55, 80, 70, 61, 67, 61, 76, 61, 61, 57, 57, 54, 74, 128, 66, 61, 66, 52, 77, 74, 93, 50, 64, 65, 52, 51, 87, 69, 57, 69, 46, 82, 68, 51, 59, 64, 61, 127, 71, 72, 64, 61, 69, 78, 77, 88, 66, 64, 59, 106, 53, 52, 67, 62, 71, 79, 68, 82, 62, 53, 61, 61, 65, 71, 65, 86, 68, 62, 59, 82, 66, 64, 54, 88, 105, 57, 46, 68, 71, 50, 84, 69, 75, 78, 53, 56, 75, 56, 62, 65, 67, 57, 61, 66, 66, 87, 61, 54, 60, 60, 47, 77, 68, 60, 56, 57, 59, 57, 59, 69, 61, 77, 66, 83, 43, 55, 70, 57, 77, 62, 62, 62, 54, 60, 60, 56, 46, 56, 42, 62, 60, 49, 84, 71, 57, 59, 70, 76, 73, 74, 71, 45, 75, 43, 59, 45, 52, 93, 63, 50, 63, 75, 62, 44, 66, 52, 68, 57, 48, 76, 68, 68, 58, 56, 50, 112, 56, 67, 49, 55, 62, 58, 64, 68, 108, 67, 63, 58, 70, 58, 62, 102, 66, 55, 64, 60, 55, 67, 62, 43, 80, 49, 61, 65, 99, 70, 59, 82, 69, 96, 62, 95, 47, 72, 100, 73, 67, 84, 66, 83, 76, 54, 78, 86, 73, 73, 69, 56, 100, 53, 67, 81, 57, 62, 67, 63, 49, 65, 69, 63, 65, 60, 77, 62, 65, 65, 62, 70, 60, 52, 65, 69, 70, 73, 61, 68, 58, 52, 58, 61, 61, 53, 52, 42, 55, 53, 53, 58, 69, 76, 62, 74, 62, 75, 67, 79, 47, 68, 69, 50, 66, 95, 77, 61, 68, 66, 72, 74, 74, 75, 54, 63, 58, 65, 49, 56, 51, 107, 61, 63, 51, 56, 73, 43, 62, 58, 64, 49, 77, 65, 74, 46, 67, 76, 74, 42, 53, 64, 62, 72, 56, 64, 57, 69, 62, 59, 76, 45, 62, 82, 42, 55, 78, 80, 70, 58, 68, 54, 69, 79, 80, 74, 66, 62, 51, 45, 65, 45, 56, 55, 55, 60, 63, 62, 101, 69, 67, 65, 70, 77, 71, 51, 39, 81, 59, 67, 70, 57, 102, 66, 54, 90, 63, 62, 109, 60, 63, 52, 58, 82, 46, 78, 78, 63, 68, 75, 78, 85, 73, 96, 61, 65, 53, 87, 73, 90, 80, 61, 58, 87, 63, 62, 68, 105, 67, 64, 53, 92, 70, 65, 57, 60, 62, 85, 53, 49, 48, 83, 88, 69, 62, 53, 57, 71, 84, 65, 60, 54, 78, 52, 48, 85, 64, 87, 52, 83, 66, 62, 52, 61, 68, 63, 61, 80, 74, 70, 53, 61, 62, 89, 75, 74, 72, 57, 75, 72, 59, 74, 65, 65, 55, 54, 58, 63, 53, 73, 63, 48, 48, 82, 63, 97, 64, 52, 49, 74, 70, 68, 61, 62, 66, 85, 73, 54, 68, 63, 56, 59, 68, 70, 65, 62, 67, 68, 44, 58, 80, 66, 54, 63, 70, 62, 60, 61, 69, 77, 84, 65, 48, 75, 66, 63, 70, 60, 49, 65, 78, 62, 64, 64, 68, 78, 63, 78, 53, 61, 56, 58, 71, 65, 57, 59, 53, 75, 113, 70, 99, 49, 72, 43, 45, 73, 61, 41, 48, 65, 57, 65, 105, 59, 51, 53, 81, 68, 54, 69, 59, 58, 72, 95, 74, 56, 76, 58, 95, 93, 81, 56, 54, 56, 88, 56, 96, 59, 58, 71, 46, 46, 47, 66, 60, 65, 72, 54, 47, 60, 52, 65, 65, 63, 77, 61, 75, 64, 60, 82, 60, 69, 55, 87, 63, 50, 72, 81, 65, 54, 81, 54, 67, 42, 58, 45, 79, 56, 77, 59, 54, 63, 61, 54, 68, 53, 75, 57, 65, 61, 61, 69, 72, 67, 45, 102, 73, 51, 65, 56, 53, 57, 49, 79, 88, 105, 60, 71, 72, 76, 70, 67, 70, 67, 69, 69, 79, 84, 71, 89, 59, 107, 79, 48, 63, 118, 70, 59, 63, 49, 104, 70, 96, 61, 83, 105, 64, 77, 56, 53, 117, 64, 63, 60, 61, 72, 64, 46, 56, 62, 81, 56, 61, 64, 57, 122, 70, 99, 55, 112, 57, 73, 76, 63, 40, 75, 62, 59, 67, 64, 58, 47, 64, 72, 56, 90, 55, 83, 53, 56, 69, 65, 68, 52, 71, 73, 57, 71, 60, 68, 64, 69, 81, 63, 66, 59, 60, 58, 47, 89, 66, 48, 76, 72, 63, 60, 124, 63, 59, 63, 83, 71, 61, 58, 80, 70, 61, 63, 67, 70, 60, 58, 55, 65, 67, 57, 71, 49, 51, 61, 65, 58, 63, 70, 43, 52, 63, 60, 58, 81, 61, 77, 66, 97, 73, 75, 80, 65, 62, 51, 69, 57, 58, 65, 74, 64, 69, 78, 63, 77, 69, 47, 57, 55, 71, 68, 64, 86, 62, 62, 78, 94, 48, 65, 61, 73, 72, 51, 72, 58, 58, 49, 76, 61, 50, 80, 62, 74, 56, 54, 58, 54, 52, 59, 82, 72, 62, 69, 63, 82, 85, 43, 53, 65, 68, 60, 72, 66, 58, 49, 65, 51, 46, 52, 52, 60, 59, 62, 59, 52, 59, 78, 102, 70, 47, 68, 85, 69, 67, 64, 61, 60, 64, 58, 56, 74, 59, 58, 99, 62, 65, 62, 57, 61, 70, 61, 63, 75, 57, 60, 69, 52, 42, 68, 67, 68, 42, 72, 64, 73, 85, 70, 77, 96, 71, 55, 73, 59, 59, 74, 107, 69, 64, 64, 62, 72, 66, 54, 78, 58, 75, 55, 56, 80, 78, 77, 65, 64, 65, 71, 61, 62, 103, 44, 53, 61, 66, 68, 50, 64, 62, 61, 55, 53, 41, 78, 79, 77, 105, 53, 70, 69, 65, 52, 71, 55, 54, 61, 66, 95, 66, 61, 71, 39, 77, 66, 83, 69, 66, 65, 81, 60, 62, 72, 59, 64, 63, 50, 65, 44, 60, 74, 55, 47, 53, 60, 68, 67, 87, 67, 71, 60, 87, 60, 72, 63, 61, 49, 52, 89, 59, 81, 66, 45, 76, 65, 70, 68, 83, 45, 50, 56, 70, 47, 54, 81, 74, 58, 61, 40, 62, 63, 104, 64, 96, 64, 64, 67, 73, 69, 75, 68, 68, 55, 102, 80, 66, 63, 69, 92, 61, 65, 76, 73, 77, 73, 66, 113, 83, 56, 86, 57, 57, 61, 55, 67, 65, 67, 57, 87, 77, 49, 59, 61, 83, 70, 65, 58, 71, 58, 62, 76, 97, 92, 96, 63, 60, 51, 46, 69, 70, 60, 86, 75, 61, 53, 89, 90, 100, 72, 62, 81, 72, 89, 57, 61, 76, 71, 61, 61, 67, 80, 62, 70, 48, 61, 78, 64, 79, 69, 68, 88, 62, 67, 56, 60, 78, 82, 64, 63, 58, 68, 52, 64, 51, 69, 69, 76, 39, 77, 53, 69, 83, 54, 73, 74, 65, 67, 49, 68, 55, 77, 59, 84, 77, 56, 56, 53, 71, 79, 62, 60, 74, 85, 54, 53, 61, 36, 50, 50, 66, 67, 63, 61, 55, 70, 68, 64, 62, 66, 70, 48, 64, 59, 65, 65, 69, 80, 62, 58, 49, 66, 69, 51, 55, 47, 58, 57, 65, 68, 41, 78, 67, 44, 89, 66, 67, 88, 57, 71, 58, 98, 58, 69, 69, 51, 61, 71, 56, 61, 49, 57, 137, 75, 66, 83, 59, 93, 56, 108, 56, 58, 71, 66, 57, 58, 73, 63, 59, 54, 63, 68, 61, 59, 50, 77, 80, 53, 71, 77, 69, 58, 81, 74, 56, 59, 74, 80, 84, 70, 63, 53, 54, 55, 59, 77, 108, 64, 68, 65, 55, 57, 62, 83, 64, 62, 62, 64, 69, 68, 69, 52, 81, 79, 68, 70, 62, 65, 56, 61, 62, 67, 59, 81, 62, 64, 65, 75, 71, 83, 57, 60, 56, 65, 63, 69, 61, 59, 58, 60, 58, 75, 33, 68, 43, 60, 66, 59, 85, 77, 58, 55, 74, 85, 61, 52, 72, 72, 58, 72, 55, 69, 60, 76, 67, 86, 46, 74, 61, 57, 69, 50, 55, 59, 77, 67, 69, 67, 53, 65, 68, 70, 58, 56, 62, 60, 53, 78, 71, 65, 63, 51, 68, 73, 76, 98, 67, 72, 124, 74, 66, 53, 72, 56, 68, 63, 74, 61, 67, 72, 60, 60, 76, 91, 62, 72, 59, 78, 84, 60, 62, 100, 64, 65, 65, 61, 62, 82, 56, 77, 78, 68, 70, 56, 56, 52, 62, 45, 63, 83, 58, 64, 89, 72, 63, 71, 66, 75, 57, 63, 87, 72, 87, 62, 66, 82, 61, 48, 62, 88, 47, 65, 76, 65, 74, 53, 70, 68, 56, 86, 56, 59, 54, 64, 47, 97, 66, 36, 65, 55, 64, 61, 68, 48, 60, 69, 66, 54, 56, 51, 73, 60, 94, 67, 58, 62, 59, 62, 63, 62, 96, 65, 67, 60, 77, 87, 57, 62, 57, 67, 63, 61, 69, 66, 52, 49, 71, 50, 61, 69, 76, 61, 81, 70, 59, 63, 56, 75, 56, 82, 68, 72, 120, 67, 88, 72, 55, 61, 68, 69, 76, 70, 52, 51, 62, 78, 97, 52, 81, 67, 60, 48, 77, 56, 37, 70, 58, 46, 58, 55, 80, 61, 51, 60, 63, 56, 65, 76, 53, 51, 41, 67, 58, 70, 60, 83, 74, 50, 75, 79, 47, 78, 54, 107, 58, 66, 64, 52, 65, 61, 64, 67, 60, 60, 62, 52, 65, 49, 65, 74, 59, 51, 129, 61, 69, 63, 70, 74, 49, 71, 102, 61, 60, 63, 58, 73, 82, 56, 38, 52, 60, 59, 60, 54, 69, 49, 82, 94, 60, 60, 55, 57, 71, 93, 53, 89, 66, 60, 63, 64, 67, 74, 59, 61, 64, 52, 80, 67, 71, 65, 59, 57, 62, 59, 58, 49, 64, 56, 62, 71, 53, 61, 60, 105, 80, 49, 67, 62, 58, 67, 67, 38, 61, 64, 127, 82, 62, 59, 65, 89, 76, 63, 61, 56, 53, 65, 74, 49, 64, 69, 59, 66, 54, 61, 42, 61, 68, 64, 55, 71, 84, 83, 82, 68, 69, 77, 89, 59, 46, 88, 76, 75, 56, 58, 62, 62, 58, 61, 60, 77, 50, 72, 77, 70, 79, 67, 66, 57, 81, 73, 60, 55, 67, 59, 87, 89, 63, 59, 53, 82, 67, 64, 79, 74, 87, 66, 66, 76, 77, 63, 52, 60, 59, 57, 86, 59, 75, 57, 64, 120, 56, 84, 72, 101, 64, 55, 51, 77, 69, 78, 73, 87, 83, 76, 75, 66, 62, 55, 69, 75, 68, 76, 75, 53, 89, 64, 72, 53, 63, 63, 69, 73, 66, 70, 59, 59, 60, 64, 55, 68, 68, 68, 56, 79, 57, 72, 62, 54, 63, 65, 67, 57, 72, 58, 59, 54, 64, 70, 76, 53, 51, 55, 56, 64, 71, 51, 58, 58, 71, 64, 87, 56, 56, 63, 64, 74, 62, 54, 62, 80, 76, 69, 58, 68, 56, 56, 57, 61, 70, 58, 80, 90, 68, 61, 68, 56, 69, 72, 61, 71, 77, 66, 65, 53, 67, 93, 62, 82, 107, 56, 48, 54, 47, 65, 73, 59, 51, 57, 69, 75, 77, 62, 63, 89, 65, 46, 64, 60, 76, 70, 89, 62, 67, 66, 67, 70, 72, 59, 61, 100, 67, 64, 73, 74, 54, 70, 55, 54, 58, 62, 58, 79, 89, 63, 74, 54, 64, 66, 76, 60, 75, 60, 74, 85, 89, 57, 85, 63, 62, 76, 62, 58, 61, 72, 65, 76, 71, 74, 64, 71, 63, 65, 53, 74, 69, 66, 54, 62, 66, 71, 67, 61, 57, 61, 63, 71, 76, 92, 47, 72, 95, 86, 72, 67, 67, 54, 84, 53, 74, 89, 48, 59, 49, 58, 91, 64, 40, 95, 62, 55, 58, 64, 59, 60, 68, 52, 52, 57, 75, 70, 45, 100, 75, 73, 55, 59, 51, 87, 52, 85, 58, 54, 62, 52, 50, 65, 72, 72, 73, 76, 87, 72, 89, 68, 78, 54, 66, 55, 65, 56, 63, 49, 64, 70, 63, 54, 75, 62, 60, 60, 70, 71, 57, 47, 59, 54, 73, 52, 59, 63, 72, 71, 67, 55, 72, 67, 45, 59, 66, 71, 118, 49, 74, 86, 85, 59, 66, 69, 69, 61, 75, 60, 57, 87, 67, 74, 67, 89, 56, 56, 69, 70, 58, 56, 73, 71, 78, 86, 56, 58, 57, 60, 63, 75, 50, 77, 72, 55, 56, 49, 63, 64, 51, 79, 62, 57, 55, 95, 91, 70, 64, 65, 64, 76, 81, 52, 68, 62, 65, 48, 77, 86, 98, 51, 97, 82, 68, 70, 64, 74, 60, 45, 89, 63, 66, 71, 49, 56, 115, 57, 55, 66, 67, 75, 68, 57, 66, 67, 60, 69, 59, 65, 75, 84, 71, 67, 81, 67, 55, 59, 56, 74, 60, 55, 57, 63, 62, 71, 73, 66, 68, 68, 102, 86, 67, 39, 59, 86, 54, 58, 66, 56, 59, 63, 66, 63, 63, 50, 52, 59, 54, 65, 86, 57, 64, 52, 49, 63, 60, 62, 74, 65, 62, 71, 71, 70, 72, 75, 64, 62, 67, 69, 70, 63, 55, 79, 63, 78, 63, 56, 65, 69, 127, 52, 78, 77, 76, 73, 67, 72, 64, 65, 53, 61, 60, 46, 52, 62, 80, 81, 88, 65, 73, 53, 90, 72, 58, 64, 64, 60, 64, 51, 75, 70, 56, 37, 58, 105, 58, 81, 52, 53, 77, 62, 52, 68, 56, 73, 71, 52, 66, 75, 64, 77, 65, 90, 62, 95, 82, 76, 64, 60, 64, 47, 67, 51, 126, 54, 64, 55, 74, 58, 61, 96, 60, 75, 65, 61, 58, 61, 61, 83, 62, 73, 62, 52, 81, 61, 79, 71, 58, 85, 55, 75, 51, 56, 79, 62, 48, 72, 75, 54, 86, 71, 88, 60, 72, 61, 68, 61, 80, 58, 43, 79, 64, 62, 75, 63, 63, 64, 58, 59, 68, 74, 86, 76, 71, 69, 54, 69, 56, 68, 70, 55, 43, 66, 59, 84, 62, 54, 68, 62, 59, 62, 45, 57, 78, 61, 61, 64, 58, 56, 54, 75, 72, 60, 59, 78, 95, 77, 74, 62, 76, 70, 98, 60, 82, 70, 64, 60, 81, 60, 53, 70, 52, 55, 55, 71, 60, 83, 54, 74, 53, 42, 68, 48, 62, 60, 69, 50, 84, 69, 69, 58, 73, 59, 64, 50, 51, 64, 53, 64, 73, 62, 66, 59, 86, 67, 71, 67, 54, 73, 75, 73, 58, 67, 71, 78, 68, 62, 70, 77, 51, 69, 54, 60, 81, 68, 67, 55, 67, 60, 69, 69, 61, 59, 104, 51, 51, 85, 47, 87, 66, 97, 72, 44, 74, 56, 45, 67, 76, 80, 76, 95, 60, 61, 69, 84, 74, 69, 70, 58, 47, 60, 73, 55, 63, 87, 62, 72, 55, 95, 48, 81, 53, 100, 73, 91, 69, 65, 65, 82, 58, 72, 70, 105, 60, 53, 75, 97, 48, 82, 58, 66, 62, 59, 46, 61, 71, 76, 67, 45, 47, 64, 54, 66, 91, 48, 77, 57, 54, 57, 61, 79, 59, 78, 78, 57, 56, 55, 64, 39, 46, 75, 59, 68, 63, 68, 83, 57, 68, 60, 66, 68, 53, 72, 57, 64, 58, 57, 56, 79, 71, 61, 65, 68, 66, 82, 57, 71, 60, 51, 62, 85, 68, 52, 64, 66, 38, 69, 55, 72, 77, 83, 55, 63, 60, 76, 53, 65, 53, 46, 87, 83, 81, 51, 69, 45, 89, 45, 66, 48, 98, 57, 47, 57, 62, 81, 58, 86, 57, 67, 63, 55, 73, 72, 72, 101, 64, 70, 56, 57, 65, 73, 73, 62, 77, 73, 61, 88, 77, 72, 55, 65, 35, 69, 128, 52, 77, 73, 66, 61, 84, 61, 48, 72, 58, 65, 40, 67, 111, 74, 60, 64, 41, 58, 55, 70, 78, 52, 82, 113, 58, 71, 73, 63, 51, 91, 88, 97, 84, 99, 35, 62, 53, 65, 69, 64, 55, 71, 44, 68, 70, 65, 66, 68, 62, 65, 61, 54, 57, 56, 52, 46, 81, 57, 69, 87, 77, 57, 58, 67, 62, 69, 44, 62, 57, 58, 115, 68, 67, 80, 66, 81, 53, 46, 68, 46, 54, 64, 51, 57, 104, 68, 59, 84, 60, 51, 72, 38, 64, 62, 52, 62, 61, 76, 62, 77, 63, 89, 43, 101, 73, 99, 56, 80, 55, 71, 52, 92, 67, 64, 98, 60, 58, 83, 75, 67, 50, 53, 57, 80, 83, 76, 66, 56, 70, 47, 92, 57, 73, 29, 61, 105, 61, 62, 58, 51, 100, 58, 64, 92, 57, 63, 63, 65, 96, 61, 54, 59, 70, 48, 66, 119, 66, 54, 90, 110, 48, 71, 56, 87, 60, 101, 57, 117, 60, 56, 64, 81, 69, 55, 44, 49, 64, 78, 71, 69, 59, 64, 60, 67, 76, 85, 61, 64, 60, 57, 52, 83, 75, 80, 77, 52, 54, 77, 52, 71, 63, 53, 69, 47, 54, 75, 109, 70, 53, 66, 61, 64, 58, 53, 69, 55, 59, 58, 81, 74, 50, 62, 51, 62, 54, 93, 81, 57, 60, 69, 57, 54, 52, 52, 84, 56, 56, 77, 65, 51, 65, 55, 86, 83, 63, 72, 76, 70, 55, 42, 62, 56, 58, 56, 58, 57, 61, 59, 69, 73, 59, 78, 61, 61, 74, 70, 67, 50, 83, 76, 57, 96, 58, 63, 56, 79, 62, 52, 59, 73, 69, 69, 63, 59, 53, 48, 60, 63, 59, 70, 71, 56, 52, 76, 74, 67, 68, 79, 72, 71, 94, 91, 82, 60, 59, 48, 84, 77, 85, 63, 65, 56, 54, 57, 66, 64, 77, 70, 57, 51, 84, 72, 66, 72, 56, 54, 69, 48, 96, 86, 74, 57, 66, 74, 63, 67, 79, 73, 25, 45, 68, 56, 53, 51, 68, 61, 75, 55, 65, 53, 82, 65, 62, 79, 62, 66, 52, 64, 62, 81, 57, 52, 60, 79, 42, 73, 66, 60, 63, 64, 48, 75, 50, 80, 47, 62, 73, 42, 63, 68, 55, 58, 88, 57, 68, 59, 45, 81, 71, 60, 57, 73, 98, 80, 71, 52, 65, 55, 55, 94, 66, 73, 42, 60, 50, 73, 89, 52, 77, 73, 54, 74, 100, 85, 53, 63, 80, 56, 65, 71, 68, 57, 54, 57, 75, 64, 62, 80, 66, 48, 89, 60, 55, 55, 68, 80, 59, 77, 102, 62, 57, 90, 78, 76, 56, 85, 72, 64, 57, 57, 61, 93, 69, 46, 78, 50, 54, 49, 54, 66, 58, 78, 65, 62, 57, 81, 67, 72, 58, 51, 59, 91, 55, 85, 85, 61, 67, 51, 62, 64, 89, 72, 83, 71, 66, 59, 62, 67, 57, 55, 88, 47, 66, 81, 108, 58, 68, 131, 76, 55, 61, 67, 84, 50, 49, 78, 81, 43, 102, 71, 45, 88, 56, 71, 53, 67, 66, 59, 69, 71, 49, 61, 51, 55, 56, 65, 44, 66, 63, 91, 42, 82, 90, 68, 54, 49, 72, 32, 100, 67, 75, 53, 63, 63, 58, 50, 72, 74, 50, 59, 75, 65, 61, 76, 73, 76, 45, 62, 51, 72, 52, 76, 63, 63, 61, 63, 65, 44, 67, 61, 71, 57, 57, 59, 58, 66, 70, 75, 57, 94, 67, 56, 72, 58, 49, 48, 51, 64, 45, 64, 61, 50, 60, 82, 68, 69, 55, 49, 60, 66, 63, 75, 46, 42, 88, 94, 55, 67, 69, 69, 76, 61, 81, 63, 65, 43, 69, 75, 44, 63, 51, 53, 76, 64, 59, 76, 56, 52, 52, 54, 99, 64, 62, 60, 58, 59, 97, 66, 69, 59, 61, 70, 63, 70, 50, 79, 74, 79, 58, 62, 52, 63, 50, 80, 62, 68, 77, 78, 54, 71, 72, 68, 55, 93, 46, 51, 55, 74, 53, 59, 50, 64, 116, 75, 70, 58, 67, 68, 69, 65, 60, 85, 68, 50, 61, 87, 76, 56, 66, 66, 72, 85, 47, 58, 74, 67, 68, 71, 46, 84, 70, 69, 58, 55, 64, 62, 63, 67, 77, 57, 90, 68, 67, 77, 59, 41, 88, 57, 52, 42, 65, 58, 64, 58, 70, 61, 76, 59, 56, 52, 58, 66, 72, 63, 66, 79, 59, 58, 56, 55, 46, 61, 72, 58, 73, 51, 48, 53, 62, 70, 54, 63, 51, 45, 64, 75, 95, 74, 66, 64, 62, 64, 74, 84, 80, 80, 62, 64, 52, 93, 63, 60, 91, 82, 67, 62, 58, 70, 54, 75, 65, 64, 66, 66, 46, 105, 56, 66, 74, 69, 59, 56, 48, 79, 51, 46, 61, 46, 54, 46, 66, 59, 70, 57, 51, 66, 58, 72, 63, 64, 43, 69, 93, 73, 96, 71, 70, 57, 32, 60, 77, 82, 58, 57, 65, 74, 48, 57, 72, 54, 70, 91, 66, 68, 74, 56, 41, 61, 81, 70, 69, 83, 95, 47, 52, 55, 72, 79, 66, 59, 62, 79, 71, 49, 68, 80, 81, 85, 47, 82, 61, 62, 113, 81, 68, 69, 76, 82, 53, 59, 74, 47, 57, 85, 57, 71, 52, 59, 73, 74, 75, 72, 67, 87, 50, 68, 62, 93, 64, 70, 74, 80, 50, 74, 55, 99, 59, 65, 61, 67, 69, 61, 62, 86, 67, 95, 83, 50, 68, 55, 52, 56, 58, 53, 82, 59, 68, 64, 68, 93, 61, 75, 72, 52, 67, 59, 70, 73, 62, 74, 96, 81, 62, 69, 62, 54, 57, 73, 85, 73, 47, 77, 41, 80, 71, 49, 85, 69, 88, 55, 61, 63, 50, 73, 80, 49, 76, 55, 69, 97, 72, 61, 61, 76, 61, 63, 56, 73, 37, 68, 47, 68, 64, 69, 68, 73, 70, 54, 73, 69, 86, 55, 61, 71, 113, 76, 64, 66, 104, 56, 71, 55, 71, 53, 76, 75, 76, 75, 69, 67, 52, 55, 46, 94, 66, 65, 59, 61, 67, 83, 56, 69, 62, 70, 78, 51, 68, 84, 59, 59, 81, 60, 96, 65, 68, 57, 74, 28, 67, 61, 70, 62, 53, 80, 70, 68, 106, 71, 59, 80, 56, 58, 64, 95, 62, 69, 41, 103, 49, 75, 73, 75, 54, 102, 78, 66, 79, 110, 97, 72, 91, 64, 52, 71, 67, 49, 77, 62, 85, 64, 71, 57, 63, 71, 70, 64, 70, 64, 56, 70, 53, 58, 67, 56, 54, 49, 76, 88, 61, 80, 66, 82, 64, 56, 78, 49, 83, 96, 104, 64, 60, 61, 69, 60, 60, 86, 57, 100, 77, 75, 72, 67, 55, 65, 56, 51, 70, 61, 58, 61, 79, 68, 72, 75, 77, 76, 50, 65, 73, 80, 72, 71, 55, 48, 82, 78, 67, 62, 48, 68, 73, 90, 58, 73, 56, 57, 61, 48, 59, 86, 74, 69, 79, 55, 78, 72, 57, 77, 82, 103, 49, 50, 52, 57, 64, 75, 59, 72, 63, 38, 38, 56, 80, 76, 75, 69, 71, 71, 71, 107, 73, 82, 63, 78, 59, 79, 94, 71, 52, 41, 48, 85, 74, 47, 79, 63, 58, 58, 75, 54, 67, 64, 88, 59, 56, 61, 84, 76, 59, 61, 72, 70, 74, 55, 36, 76, 56, 61, 87, 89, 71, 50, 79, 72, 58, 67, 75, 69, 62, 56, 116, 62, 71, 58, 49, 76, 74, 42, 61, 54, 80, 55, 81, 31, 67, 48, 65, 66, 73, 35, 56, 59, 50, 77, 59, 88, 62, 55, 61, 61, 103, 59, 48, 69, 73, 80, 66, 75, 58, 78, 89, 62, 63, 85, 73, 58, 56, 37, 73, 50, 71, 44, 58, 55, 73, 69, 58, 72, 60, 77, 96, 92, 80, 58, 76, 91, 91, 58, 61, 42, 59, 46, 48, 56, 72, 70, 56, 63, 60, 67, 64, 60, 67, 54, 72, 68, 52, 53, 62, 47, 62, 85, 54, 69, 88, 64, 75, 70, 91, 53, 74, 62, 73, 67, 69, 52, 62, 66, 63, 78, 60, 75, 67, 49, 57, 69, 68, 46, 67, 104, 84, 63, 34, 69, 77, 72, 35, 72, 39, 109, 72, 54, 77, 46, 64, 71, 67, 54, 79, 60, 44, 50, 90, 62, 62, 37, 57, 52, 52, 48, 56, 43, 48, 71, 79, 54, 66, 89, 45, 68, 84, 56, 63, 46, 42, 72, 64, 60, 62, 80, 58, 97, 74, 66, 53, 57, 52, 69, 64, 66, 52, 83, 61, 83, 82, 52, 109, 74, 61, 65, 60, 64, 59, 66, 57, 61, 40, 58, 60, 58, 59, 58, 94, 72, 49, 68, 89, 53, 62, 48, 81, 51, 76, 56, 87, 68, 43, 47, 82, 55, 65, 60, 57, 55, 102, 64, 75, 58, 71, 71, 74, 53, 70, 64, 62, 64, 74, 42, 68, 55, 61, 53, 42, 59, 67, 43, 72, 51, 68, 64, 55, 69, 62, 61, 62, 81, 77, 69, 83, 71, 57, 71, 84, 86, 86, 70, 44, 53, 53, 65, 60, 55, 63, 69, 87, 64, 82, 60, 70, 41, 68, 73, 53, 49, 65, 80, 69, 89, 80, 70, 60, 54, 56, 89, 69, 77, 50, 59, 76, 57, 77, 129, 88, 48, 74, 77, 59, 48, 49, 64, 67, 71, 47, 73, 53, 80, 73, 63, 60, 93, 64, 39, 75, 59, 42, 57, 81, 68, 47, 65, 55, 62, 50, 62, 58, 61, 65, 55, 58, 70, 86, 75, 64, 55, 69, 60, 72, 80, 73, 81, 49, 86, 73, 53, 50, 76, 52, 62, 54, 54, 67, 61, 110, 69, 68, 47, 55, 62, 64, 47, 51, 68, 52, 82, 76, 71, 75, 46, 54, 59, 62, 60, 89, 44, 57, 62, 81, 37, 59, 75, 52, 52, 45, 71, 77, 78, 60, 56, 76, 85, 70, 69, 71, 74, 61, 72, 69, 69, 61, 54, 86, 106, 73, 57, 58, 60, 49, 49, 62, 48, 48, 55, 66, 73, 95, 75, 60, 83, 72, 66, 80, 48, 62, 67, 72, 92, 60, 47, 64, 79, 83, 70, 54, 43, 69, 44, 63, 69, 63, 46, 44, 94, 63, 42, 91, 49, 68, 66, 52, 66, 53, 71, 67, 59, 74, 66, 116, 50, 75, 67, 68, 52, 58, 81, 53, 56, 80, 60, 60, 84, 59, 69, 66, 46, 67, 66, 56, 72, 71, 57, 68, 69, 65, 96, 59, 53, 79, 59, 59, 51, 53, 79, 102, 38, 62, 85, 70, 58, 60, 60, 95, 49, 64, 47, 57, 62, 68, 79, 58, 74, 85, 56, 67, 72, 56, 52, 57, 73, 45, 45, 50, 67, 50, 77, 64, 50, 59, 44, 65, 83, 70, 69, 102, 57, 55, 91, 83, 50, 85, 50, 75, 64, 62, 51, 75, 83, 60, 79, 65, 76, 53, 60, 48, 108, 77, 56, 88, 69, 52, 65, 64, 48, 52, 79, 74, 58, 59, 65, 86, 73, 74, 70, 77, 63, 54, 54, 67, 65, 56, 53, 49, 69, 55, 69, 73, 60, 59, 54, 60, 70, 55, 77, 87, 62, 87, 78, 94, 53, 69, 52, 43, 64, 50, 59, 61, 76, 60, 74, 50, 52, 72, 59, 70, 69, 66, 61, 77, 57, 82, 60, 70, 60, 62, 70, 63, 45, 79, 69, 66, 62, 60, 100, 57, 69, 52, 59, 88, 66, 73, 53, 59, 55, 58, 53, 63, 70, 111, 69, 63, 91, 38, 78, 67, 62, 76, 65, 56, 75, 50, 64, 69, 62, 66, 105, 66, 75, 96, 80, 48, 85, 50, 85, 54, 55, 52, 97, 67, 66, 89, 90, 63, 44, 79, 81, 64, 69, 63, 77, 73, 84, 81, 65, 58, 54, 62, 55, 59, 56, 66, 53, 66, 50, 53, 70, 69, 92, 61, 56, 59, 53, 76, 62, 65, 78, 40, 107, 46, 50, 62, 56, 61, 70, 68, 110, 59, 56, 76, 58, 57, 52, 77, 63, 75, 57, 76, 57, 72, 63, 95, 63, 70, 51, 71, 86, 68, 59, 71, 66, 66, 54, 54, 48, 86, 77, 63, 81, 49, 62, 57, 63, 61, 49, 63, 82, 63, 53, 79, 67, 44, 69, 63, 62, 58, 74, 66, 49, 67, 46, 74, 95, 65, 58, 57, 58, 62, 49, 69, 83, 52, 74, 43, 53, 60, 77, 53, 75, 57, 74, 62, 52, 47, 80, 65, 62, 58, 52, 79, 79, 77, 64, 57, 88, 71, 77, 83, 86, 60, 77, 63, 66, 107, 51, 73, 88, 62, 63, 50, 75, 58, 77, 50, 97, 68, 65, 101, 60, 70, 88, 62, 52, 44, 103, 92, 65, 64, 70, 59, 60, 57, 63, 72, 66, 78, 66, 56, 54, 68, 60, 64, 62, 76, 59, 52, 74, 51, 65, 72, 64, 62, 48, 63, 80, 53, 50, 60, 72, 58, 45, 66, 59, 36, 66, 68, 68, 54, 61, 63, 61, 46, 67, 64, 90, 90, 71, 72, 59, 78, 66, 70, 67, 69, 62, 66, 68, 67, 55, 48, 76, 50, 90, 30, 72, 55, 90, 66, 79, 49, 57, 86, 63, 70, 63, 59, 71, 62, 92, 61, 65, 51, 63, 49, 54, 59, 97, 67, 87, 77, 70, 82, 76, 58, 63, 59, 87, 63, 52, 50, 52, 69, 56, 84, 70, 46, 44, 64, 61, 73, 73, 53, 62, 50, 58, 58, 115, 59, 85, 53, 62, 72, 64, 89, 73, 65, 47, 59, 79, 76, 64, 67, 47, 62, 68, 51, 63, 61, 70, 64, 57, 57, 57, 86, 61, 53, 70, 61, 69, 55, 69, 69, 51, 56, 62, 73, 79, 64, 79, 86, 78, 80, 90, 54, 51, 51, 59, 95, 60, 71, 73, 77, 77, 67, 46, 51, 69, 78, 57, 54, 71, 53, 49, 67, 74, 72, 75, 52, 81, 67, 81, 68, 73, 62, 72, 81, 56, 95, 58, 52, 65, 80, 86, 49, 74, 58, 102, 70, 68, 72, 75, 75, 80, 55, 45, 58, 51, 56, 63, 63, 60, 76, 74, 41, 65, 52, 86, 72, 85, 82, 90, 57, 89, 60, 80, 69, 45, 52, 64, 64, 75, 73, 91, 64, 55, 66, 93, 68, 67, 62, 63, 62, 61, 62, 61, 82, 60, 50, 82, 66, 80, 63, 96, 51, 60, 79, 73, 86, 52, 83, 67, 57, 61, 55, 49, 59, 62, 64, 89, 76, 68, 52, 64, 50, 48, 70, 76, 83, 73, 65, 57, 58, 43, 59, 68, 45, 120, 97, 63, 96, 93, 54, 61, 67, 59, 86, 56, 55, 62, 77, 55, 65, 51, 60, 68, 85, 75, 73, 62, 53, 67, 86, 62, 68, 108, 52, 61, 76, 54, 53, 61, 68, 97, 65, 63, 66, 63, 56, 48, 47, 64, 63, 55, 62, 63, 55, 67, 61, 77, 46, 70, 55, 61, 117, 58, 56, 64, 58, 72, 69, 61, 50, 77, 68, 71, 60, 55, 61, 70, 95, 54, 71, 60, 65, 60, 67, 61, 57, 59, 97, 65, 69, 60, 51, 62, 69, 72, 76, 55, 58, 55, 77, 60, 77, 70, 46, 86, 76, 79, 83, 52, 72, 74, 90, 55, 59, 53, 73, 54, 51, 69, 67, 65, 87, 78, 50, 68, 61, 76, 84, 68, 76, 70, 64, 80, 55, 65, 61, 51, 68, 69, 50, 62, 55, 65, 47, 51, 77, 52, 57, 81, 67, 50, 98, 60, 84, 50, 78, 46, 59, 38, 77, 90, 59, 107, 55, 91, 42, 64, 45, 71, 68, 66, 57, 66, 54, 62, 66, 114, 67, 66, 75, 77, 56, 64, 65, 72, 78, 55, 81, 54, 67, 95, 43, 58, 59, 87, 64, 65, 69, 64, 65, 80, 69, 65, 47, 68, 51, 54, 55, 66, 63, 52, 60, 70, 74, 84, 62, 92, 58, 71, 76, 54, 69, 45, 68, 78, 42, 50, 65, 69, 60, 68, 52, 66, 47, 56, 67, 52, 84, 56, 45, 65, 51, 59, 57, 73, 67, 68, 49, 86, 61, 73, 79, 52, 50, 63, 72, 71, 65, 72, 59, 73, 88, 58, 77, 47, 49, 47, 69, 68, 58, 79, 50, 68, 63, 58, 105, 60, 58, 95, 53, 92, 75, 72, 81, 63, 51, 68, 60, 44, 61, 66, 66, 53, 43, 93, 43, 68, 68, 61, 52, 61, 65, 77, 59, 69, 57, 65, 65, 61, 52, 84, 91, 65, 56, 55, 70, 69, 57, 50, 68, 76, 53, 44, 63, 61, 59, 100, 68, 63, 67, 66, 67, 59, 53, 57, 61, 55, 60, 47, 46, 57, 127, 72, 62, 61, 82, 80, 43, 82, 63, 52, 65, 82, 70, 69, 72, 67, 56, 70, 58, 69, 99, 54, 62, 67, 52, 53, 77, 56, 57, 56, 93, 66, 61, 50, 67, 57, 49, 64, 73, 72, 70, 71, 55, 62, 99, 66, 48, 61, 62, 60, 52, 67, 54, 61, 59, 69, 73, 60, 62, 65, 59, 72, 65, 54, 48, 77, 66, 69, 55, 70, 53, 50, 57, 64, 57, 67, 65, 64, 64, 75, 87, 73, 55, 67, 54, 69, 80, 64, 73, 62, 44, 69, 67, 76, 55, 53, 58, 57, 59, 89, 43, 103, 59, 57, 61, 57, 54, 55, 60, 56, 65, 52, 55, 93, 78, 58, 76, 71, 65, 54, 67, 60, 69, 61, 63, 76, 61, 60, 72, 81, 78, 91, 59, 53, 53, 51, 53, 76, 69, 52, 85, 62, 47, 60, 90, 66, 65, 60, 64, 77, 65, 58, 67, 56, 64, 60, 79, 63, 48, 80, 59, 64, 63, 65, 68, 52, 54, 50, 65, 75, 71, 45, 66, 58, 67, 78, 58, 76, 93, 53, 78, 68, 81, 64, 90, 74, 71, 61, 55, 65, 81, 64, 67, 55, 60, 89, 64, 70, 51, 67, 70, 75, 56, 78, 52, 44, 71, 58, 60, 64, 82, 58, 58, 67, 45, 84, 70, 83, 61, 74, 58, 69, 70, 67, 61, 80, 53, 57, 56, 60, 53, 87, 64, 85, 74, 63, 63, 63, 70, 54, 54, 88, 72, 75, 61, 68, 64, 67, 55, 44, 65, 59, 64, 85, 62, 72, 65, 73, 64, 59, 69, 68, 86, 75, 55, 76, 61, 73, 111, 61, 60, 87, 63, 43, 68, 68, 70, 52, 57, 56, 65, 82, 52, 67, 73, 65, 79, 102, 77, 71, 56, 50, 55, 60, 61, 59, 80, 64, 55, 63, 46, 54, 72, 98, 53, 62, 84, 66, 46, 65, 91, 58, 70, 67, 69, 65, 61, 59, 72, 85, 70, 66, 69, 67, 54, 66, 77, 58, 72, 43, 47, 79, 70, 66, 52, 59, 55, 56, 57, 72, 61, 63, 68, 62, 58, 63, 56, 62, 50, 62, 114, 61, 71, 65, 61, 66, 85, 62, 66, 54, 60, 82, 60, 54, 113, 67, 64, 65, 70, 53, 59, 59, 58, 68, 51, 108, 53, 84, 68, 67, 52, 100, 64, 63, 76, 123, 108, 56, 49, 81, 67, 64, 58, 51, 58, 64, 65, 49, 66, 78, 46, 53, 59, 65, 47, 66, 49, 30, 65, 61, 72, 48, 76, 70, 76, 56, 56, 61, 60, 75, 48, 63, 55, 57, 72, 57, 91, 65, 69, 84, 57, 60, 64, 55, 68, 89, 55, 40, 45, 80, 60, 72, 50, 67, 64, 65, 66, 74, 74, 47, 47, 79, 55, 86, 59, 68, 57, 96, 66, 61, 66, 80, 61, 63, 74, 66, 59, 72, 61, 79, 54, 54, 63, 73, 65, 55, 55, 89, 52, 71, 72, 53, 103, 67, 67, 62, 79, 70, 59, 64, 68, 58, 69, 62, 68, 69, 67, 53, 58, 61, 57, 62, 47, 72, 81, 56, 71, 99, 50, 109, 112, 53, 87, 64, 77, 74, 68, 62, 65, 62, 68, 52, 61, 56, 65, 77, 59, 53, 68, 66, 67, 61, 72, 63, 51, 62, 56, 72, 55, 68, 66, 70, 58, 59, 66, 66, 65, 78, 75, 48, 77, 47, 58, 71, 63, 55, 56, 74, 57, 68, 51, 74, 67, 63, 42, 69, 54, 74, 61, 49, 69, 52, 61, 70, 59, 73, 54, 91, 60, 65, 70, 76, 70, 80, 70, 78, 61, 63, 74, 54, 79, 65, 76, 91, 61, 82, 57, 101, 63, 65, 79, 80, 67, 60, 55, 72, 55, 63, 74, 55, 66, 58, 67, 71, 58, 63, 68, 73, 74, 67, 60, 65, 49, 81, 75, 71, 67, 67, 75, 75, 46, 72, 67, 73, 68, 70, 66, 73, 79, 62, 65, 74, 53, 70, 79, 72, 53, 53, 50, 73, 49, 86, 62, 66, 74, 67, 65, 51, 84, 48, 43, 62, 62, 75, 65, 59, 63, 76, 62, 61, 84, 65, 78, 74, 120, 56, 50, 94, 93, 72, 68, 61, 60, 68, 75, 47, 63, 100, 105, 63, 70, 33, 49, 61, 76, 56, 45, 69, 79, 60, 70, 69, 64, 64, 60, 60, 63, 52, 57, 63, 68, 51, 56, 57, 57, 74, 53, 65, 79, 40, 67, 55, 66, 77, 60, 52, 83, 70, 47, 67, 85, 54, 72, 58, 112, 67, 78, 62, 64, 81, 56, 85, 67, 56, 108, 80, 72, 64, 57, 72, 68, 91, 58, 67, 57, 71, 80, 51, 70, 64, 41, 92, 66, 55, 58, 80, 46, 63, 71, 52, 87, 61, 53, 59, 65, 51, 63, 57, 61, 47, 54, 56, 80, 53, 68, 58, 68, 94, 71, 50, 74, 58, 50, 64, 56, 76, 62, 72, 66, 50, 53, 70, 52, 75, 72, 67, 58, 53, 63, 59, 72, 64, 52, 71, 68, 92, 85, 70, 50, 59, 58, 49, 65, 41, 60, 56, 56, 54, 47, 54, 44, 55, 92, 66, 65, 91, 59, 58, 60, 52, 88, 57, 58, 79, 45, 90, 66, 51, 71, 71, 68, 65, 70, 58, 54, 74, 57, 60, 78, 120, 79, 59, 85, 62, 68, 74, 51, 70, 71, 79, 67, 74, 72, 59, 64, 68, 71, 76, 96, 56, 69, 70, 62, 65, 66, 91, 71, 60, 61, 63, 67, 63, 78, 53, 71, 68, 61, 106, 52, 108, 60, 79, 59, 58, 70, 49, 52, 62, 58, 64, 67, 72, 63, 65, 62, 84, 61, 50, 56, 57, 92, 77, 84, 73, 69, 62, 59, 79, 68, 47, 70, 35, 57, 67, 68, 82, 75, 72, 63, 63, 69, 62, 60, 94, 80, 57, 60, 58, 62, 71, 71, 57, 77, 55, 82, 57, 67, 67, 71, 66, 62, 67, 67, 74, 73, 60, 75, 71, 88, 64, 61, 56, 57, 51, 57, 66, 54, 69, 76, 56, 66, 56, 76, 84, 67, 69, 65, 54, 59, 68, 55, 75, 75, 67, 66, 60, 60, 71, 56, 71, 75, 49, 47, 97, 56, 48, 52, 54, 60, 91, 104, 62, 52, 83, 61, 90, 50, 54, 63, 69, 66, 57, 49, 72, 142, 46, 63, 58, 59, 68, 59, 58, 63, 76, 58, 62, 76, 67, 66, 58, 70, 60, 64, 67, 55, 72, 69, 75, 82, 58, 60, 115, 62, 57, 75, 57, 56, 75, 66, 81, 62, 66, 77, 52, 97, 55, 67, 66, 80, 59, 65, 102, 82, 58, 105, 61, 70, 71, 58, 107, 69, 66, 51, 78, 71, 55, 80, 75, 60, 66, 58, 78, 72, 63, 63, 70, 67, 68, 59, 73, 81, 65, 49, 97, 74, 48, 70, 65, 60, 69, 48, 45, 56, 54, 70, 77, 62, 60, 60, 80, 53, 65, 52, 69, 57, 93, 54, 57, 80, 70, 58, 59, 61, 58, 63, 63, 66, 77, 40, 54, 70, 49, 46, 57, 89, 66, 72, 56, 69, 53, 52, 58, 63, 63, 78, 71, 58, 66, 63, 58, 60, 75, 68, 57, 65, 74, 80, 80, 64, 55, 102, 68, 55, 91, 60, 71, 61, 66, 74, 64, 65, 68, 56, 60, 102, 70, 69, 61, 61, 54, 57, 65, 67, 59, 95, 58, 53, 87, 61, 74, 57, 79, 67, 42, 68, 58, 67, 38, 75, 71, 100, 66, 84, 73, 67, 84, 66, 75, 69, 73, 66, 68, 61, 57, 49, 49, 59, 73, 51, 93, 47, 59, 61, 74, 77, 87, 62, 81, 63, 58, 71, 81, 55, 50, 60, 57, 64, 106, 61, 69, 58, 47, 55, 65, 62, 69, 69, 78, 66, 65, 82, 43, 88, 51, 69, 67, 61, 62, 58, 59, 54, 96, 61, 67, 31, 55, 68, 70, 53, 66, 54, 77, 62, 65, 58, 70, 74, 53, 44, 67, 70, 75, 64, 56, 60, 74, 51, 64, 107, 63, 71, 99, 85, 62, 46, 61, 86, 65, 63, 56, 52, 63, 90, 68, 73, 61, 55, 80, 57, 67, 69, 86, 64, 67, 71, 63, 65, 77, 70, 43, 68, 56, 80, 63, 69, 65, 71, 62, 58, 89, 49, 66, 62, 73, 58, 63, 62, 88, 61, 85, 61, 53, 61, 71, 75, 113, 71, 68, 52, 65, 57, 83, 63, 52, 76, 72, 65, 59, 52, 65, 42, 60, 65, 53, 142, 70, 55, 55, 78, 65, 85, 57, 58, 64, 65, 53, 62, 51, 80, 95, 95, 76, 65, 59, 69, 59, 62, 54, 93, 124, 71, 69, 56, 68, 77, 52, 75, 124, 73, 95, 63, 79, 79, 67, 63, 56, 67, 79, 41, 52, 49, 52, 71, 60, 69, 49, 107, 59, 62, 58, 65, 56, 78, 50, 89, 87, 60, 53, 61, 47, 54, 49, 91, 67, 59, 54, 70, 77, 62, 87, 76, 67, 55, 68, 69, 78, 55, 50, 96, 104, 80, 66, 54, 60, 95, 56, 60, 57, 61, 57, 61, 66, 62, 88, 74, 77, 68, 82, 53, 64, 59, 81, 48, 84, 62, 60, 76, 54, 69, 50, 71, 66, 71, 55, 61, 69, 72, 62, 67, 65, 61, 60, 73, 53, 61, 62, 58, 53, 74, 59, 83, 80, 63, 55, 73, 64, 90, 66, 61, 76, 54, 60, 54, 51, 82, 76, 66, 77, 72, 79, 73, 112, 63, 89, 81, 75, 47, 61, 81, 58, 79, 56, 79, 61, 74, 92, 44, 58, 73, 59, 59, 58, 55, 53, 84, 67, 58, 59, 72, 46, 64, 64, 61, 84, 78, 57, 55, 97, 86, 70, 60, 69, 53, 61, 84, 76, 54, 54, 63, 78, 60, 51, 69, 80, 62, 54, 75, 48, 76, 70, 82, 78, 45, 52, 50, 63, 55, 61, 67, 70, 74, 70, 52, 73, 67, 55, 58, 71, 70, 56, 72, 60, 79, 62, 45, 77, 53, 77, 65, 72, 57, 75, 71, 63, 61, 77, 59, 56, 82, 64, 66, 52, 57, 62, 57, 56, 79, 53, 54, 77, 100, 59, 59, 55, 83, 83, 61, 83, 64, 60, 39, 60, 62, 58, 61, 51, 55, 65, 58, 69, 64, 66, 66, 70, 74, 51, 73, 79, 61, 64, 57, 85, 57, 52, 50, 67, 54, 83, 63, 80, 51, 49, 78, 104, 70, 60, 73, 75, 62, 53, 77, 71, 52, 60, 59, 65, 85, 65, 81, 61, 57, 57, 64, 72, 65, 51, 52, 51, 47, 58, 57, 78, 93, 51, 73, 75, 70, 58, 52, 48, 80, 61, 58, 63, 59, 67, 60, 76, 74, 60, 66, 52, 54, 74, 61, 62, 72, 84, 64, 73, 66, 64, 67, 53, 67, 73, 69, 69, 69, 78, 63, 64, 69, 59, 67, 65, 58, 65, 71, 76, 63, 60, 78, 54, 72, 78, 63, 70, 72, 75, 74, 60, 76, 58, 53, 72, 77, 65, 61, 92, 77, 53, 114, 74, 54, 80, 64, 61, 71, 70, 67, 56, 62, 59, 77, 60, 44, 52, 53, 54, 70, 67, 75, 57, 75, 62, 66, 66, 54, 79, 90, 66, 74, 60, 43, 58, 53, 71, 91, 60, 83, 68, 71, 56, 69, 60, 72, 63, 60, 49, 63, 65, 51, 60, 49, 60, 65, 104, 69, 65, 74, 79, 61, 83, 81, 62, 75, 70, 50, 77, 58, 51, 70, 63, 63, 76, 80, 63, 55, 48, 69, 91, 48, 43, 62, 60, 60, 87, 60, 74, 110, 77, 55, 49, 67, 56, 58, 57, 49, 67, 62, 69, 63, 77, 72, 61, 80, 79, 87, 58, 52, 59, 50, 70, 74, 57, 60, 71, 63, 60, 78, 55, 73, 70, 56, 58, 55, 85, 53, 65, 62, 59, 56, 63, 60, 68, 59, 61, 81, 67, 57, 54, 79, 89, 62, 61, 51, 64, 69, 74, 61, 71, 69, 51, 79, 53, 66, 75, 71, 81, 60, 50, 65, 86, 64, 50, 70, 79, 57, 63, 66, 95, 65, 60, 50, 79, 65, 64, 82, 58, 72, 58, 66, 69, 74, 82, 64, 74, 68, 76, 53, 71, 68, 75, 55, 66, 67, 55, 56, 59, 64, 71, 60, 65, 84, 73, 64, 82, 59, 54, 61, 60, 62, 56, 77, 54, 60, 58, 53, 46, 70, 92, 61, 65, 65, 54, 67, 70, 63, 74, 54, 58, 74, 60, 60, 67, 54, 65, 47, 48, 59, 82, 68, 56, 35, 61, 37, 71, 62, 63, 80, 59, 55, 84, 70, 76, 64, 89, 60, 79, 47, 75, 64, 69, 62, 55, 71, 51, 143, 66, 65, 61, 93, 90, 63, 91, 66, 55, 93, 64, 51, 62, 56, 58, 88, 64, 74, 51, 55, 49, 56, 67, 73, 77, 45, 66, 65, 65, 73, 75, 57, 69, 64, 64, 64, 75, 56, 41, 87, 67, 58, 66, 82, 77, 70, 90, 59, 55, 56, 74, 92, 47, 56, 79, 68, 47, 63, 75, 67, 59, 68, 75, 72, 58, 62, 72, 43, 56, 59, 76, 75, 73, 73, 75, 46, 80, 50, 77, 65, 51, 60, 54, 41, 71, 76, 75, 69, 53, 62, 60, 69, 76, 91, 61, 85, 79, 79, 51, 87, 84, 62, 72, 104, 71, 68, 77, 58, 58, 71, 59, 43, 76, 71, 49, 57, 65, 60, 51, 51, 68, 58, 62, 75, 64, 55, 83, 57, 61, 59, 57, 63, 55, 35, 44, 53, 69, 44, 72, 111, 69, 61, 45, 71, 76, 98, 75, 56, 55, 66, 67, 56, 48, 66, 57, 58, 60, 71, 67, 75, 59, 62, 82, 56, 61, 63, 58, 77, 69, 107, 75, 75, 74, 58, 71, 64, 83, 62, 72, 104, 75, 50, 58, 85, 50, 106, 106, 78, 69, 58, 76, 77, 69, 66, 72, 53, 76, 51, 60, 57, 55, 55, 74, 58, 99, 69, 100, 69, 87, 50, 103, 47, 73, 49, 78, 55, 80, 72, 100, 45, 50, 51, 113, 64, 62, 58, 58, 61, 71, 62, 88, 57, 83, 68, 64, 59, 72, 111, 61, 81, 109, 57, 45, 38, 61, 62, 84, 59, 53, 49, 64, 70, 39, 44, 67, 63, 58, 94, 81, 78, 59, 78, 58, 66, 55, 70, 99, 74, 56, 68, 73, 72, 73, 105, 53, 50, 79, 53, 63, 86, 61, 52, 65, 64, 67, 70, 82, 71, 65, 58, 67, 66, 59, 78, 80, 65, 78, 63, 76, 64, 50, 62, 63, 45, 57, 66, 79, 64, 62, 52, 76, 83, 56, 49, 63, 58, 55, 46, 63, 73, 67, 60, 59, 71, 77, 56, 56, 53, 89, 83, 113, 58, 58, 64, 64, 54, 78, 56, 61, 61, 68, 50, 35, 43, 65, 58, 52, 52, 49, 127, 73, 79, 49, 76, 65, 96, 44, 48, 59, 50, 74, 64, 47, 85, 55, 81, 53, 68, 58, 61, 60, 63, 64, 75, 119, 50, 70, 55, 78, 81, 85, 61, 96, 64, 102, 94, 54, 58, 71, 64, 72, 74, 54, 49, 63, 64, 85, 55, 58, 64, 66, 88, 56, 64, 61, 57, 55, 81, 66, 68, 84, 47, 70, 49, 81, 60, 52, 66, 50, 55, 51, 68, 50, 46, 106, 38, 65, 59, 76, 78, 60, 45, 39, 66, 86, 60, 58, 72, 63, 96, 82, 50, 81, 63, 85, 70, 59, 78, 78, 76, 49, 60, 83, 113, 60, 68, 85, 61, 99, 63, 42, 65, 61, 68, 63, 79, 77, 77, 72, 64, 70, 53, 57, 52, 61, 63, 127, 64, 60, 46, 58, 80, 67, 55, 61, 93, 53, 65, 56, 86, 58, 109, 71, 67, 77, 52, 57, 48, 60, 84, 47, 63, 59, 77, 58, 64, 123, 52, 98, 52, 115, 56, 64, 65, 70, 71, 41, 69, 93, 74, 72, 85, 75, 50, 68, 62, 53, 68, 80, 57, 57, 75, 44, 57, 65, 51, 67, 43, 56, 45, 60, 51, 73, 85, 48, 59, 88, 49, 79, 81, 78, 74, 63, 56, 57, 53, 65, 86, 84, 90, 46, 74, 77, 68, 57, 92, 61, 50, 64, 62, 65, 60, 48, 61, 64, 56, 47, 77, 40, 56, 65, 61, 59, 77, 55, 58, 75, 78, 47, 54, 49, 69, 75, 64, 61, 72, 90, 92, 76, 60, 48, 79, 63, 66, 54, 51, 72, 74, 69, 72, 73, 69, 88, 65, 81, 110, 79, 89, 81, 72, 83, 57, 93, 64, 55, 42, 55, 40, 61, 57, 71, 86, 52, 62, 58, 78, 71, 54, 54, 67, 72, 67, 75, 57, 79, 82, 87, 58, 56, 67, 66, 66, 76, 72, 69, 63, 38, 67, 60, 78, 47, 81, 48, 68, 59, 64, 70, 56, 70, 78, 55, 76, 80, 84, 75, 61, 57, 76, 63, 60, 60, 45, 54, 83, 71, 74, 89, 85, 65, 87, 88, 74, 81, 73, 56, 82, 63, 71, 69, 60, 62, 88, 44, 50, 77, 52, 76, 60, 36, 78, 66, 53, 87, 77, 69, 83, 69, 73, 52, 66, 58, 71, 82, 46, 69, 68, 67, 64, 73, 71, 89, 48, 52, 55, 74, 81, 59, 72, 49, 73, 51, 62, 41, 94, 62, 47, 61, 60, 69, 65, 70, 69, 56, 51, 52, 43, 73, 76, 60, 78, 55, 59, 56, 66, 71, 75, 65, 71, 53, 68, 68, 52, 68, 67, 42, 53, 47, 68, 65, 78, 44, 57, 56, 84, 72, 55, 57, 82, 70, 59, 49, 61, 48, 89, 70, 66, 62, 82, 46, 52, 71, 68, 61, 53, 57, 68, 66, 54, 45, 44, 58, 58, 67, 53, 65, 69, 77, 69, 63, 61, 44, 71, 88, 61, 70, 52, 63, 68, 62, 60, 91, 58, 68, 85, 63, 56, 35, 64, 68, 50, 63, 66, 57, 80, 75, 96, 75, 46, 66, 71, 76, 71, 70, 61, 73, 54, 64, 60, 88, 65, 62, 100, 67, 65, 83, 46, 61, 58, 73, 53, 72, 61, 85, 85, 62, 92, 71, 61, 70, 56, 61, 66, 62, 61, 73, 56, 69, 63, 61, 54, 78, 68, 62, 74, 56, 72, 53, 77, 95, 59, 72, 57, 59, 69, 81, 66, 82, 64, 49, 96, 50, 67, 60, 43, 65, 51, 67, 60, 69, 63, 46, 60, 91, 69, 73, 61, 84, 58, 87, 73, 47, 80, 82, 64, 38, 60, 55, 44, 60, 60, 44, 69, 105, 87, 55, 48, 60, 66, 62, 67, 65, 67, 68, 55, 55, 59, 60, 61, 80, 71, 72, 37, 86, 73, 57, 63, 64, 72, 47, 53, 42, 55, 52, 73, 67, 51, 51, 63, 72, 75, 59, 67, 55, 72, 59, 63, 50, 89, 51, 63, 72, 86, 64, 55, 65, 65, 77, 63, 61, 63, 45, 69, 96, 59, 62, 66, 62, 69, 75, 75, 50, 89, 79, 51, 86, 78, 67, 71, 65, 62, 60, 57, 56, 132, 59, 63, 70, 63, 101, 61, 93, 71, 58, 64, 69, 72, 71, 62, 65, 59, 61, 63, 65, 52, 54, 70, 62, 74, 57, 54, 73, 66, 67, 38, 71, 71, 52, 61, 43, 66, 70, 83, 57, 114, 62, 76, 58, 94, 56, 64, 60, 74, 59, 92, 88, 70, 104, 64, 91, 58, 64, 58, 69, 64, 70, 58, 112, 57, 73, 56, 48, 61, 50, 59, 83, 61, 74, 58, 56, 61, 84, 77, 63, 63, 61, 62, 70, 56, 53, 64, 61, 63, 59, 60, 57, 51, 72, 71, 78, 66, 72, 51, 71, 65, 61, 73, 73, 98, 65, 53, 69, 70, 45, 52, 63, 69, 76, 56, 56, 53, 55, 77, 59, 43, 68, 63, 72, 72, 80, 77, 55, 50, 58, 89, 57, 66, 46, 67, 57, 60, 61, 63, 65, 85, 63, 83, 63, 89, 62, 102, 77, 54, 64, 76, 61, 58, 89, 59, 46, 61, 61, 58, 56, 62, 70, 51, 68, 66, 68, 69, 74, 66, 67, 115, 56, 60, 60, 75, 63, 63, 67, 61, 79, 75, 56, 62, 77, 51, 57, 66, 89, 73, 67, 79, 70, 52, 69, 59, 68, 66, 66, 69, 63, 59, 69, 63, 62, 76, 59, 59, 65, 48, 65, 74, 76, 76, 45, 78, 81, 50, 71, 66, 48, 58, 48, 61, 63, 75, 66, 66, 49, 49, 56, 62, 98, 55, 79, 58, 68, 63, 50, 65, 65, 79, 62, 70, 68, 44, 71, 58, 52, 63, 70, 66, 48, 51, 61, 61, 58, 64, 76, 70, 82, 46, 67, 54, 65, 61, 72, 86, 51, 61, 79, 65, 81, 66, 64, 86, 59, 73, 69, 87, 56, 53, 65, 73, 54, 75, 71, 66, 78, 61, 53, 66, 65, 61, 61, 72, 93, 64, 82, 64, 68, 64, 61, 58, 51, 63, 64, 66, 71, 58, 70, 54, 83, 91, 66, 57, 40, 86, 60, 73, 53, 58, 64, 63, 56, 93, 69, 50, 79, 51, 72, 67, 122, 71, 59, 69, 66, 68, 58, 62, 70, 72, 57, 63, 56, 91, 63, 58, 68, 73, 58, 105, 85, 63, 64, 50, 71, 90, 60, 63, 55, 60, 69, 63, 55, 65, 63, 78, 72, 57, 68, 59, 66, 64, 68, 70, 132, 69, 70, 68, 56, 69, 60, 69, 83, 104, 108, 58, 68, 86, 63, 77, 60, 58, 69, 75, 65, 69, 72, 64, 55, 66, 58, 75, 74, 54, 58, 69, 50, 67, 52, 55, 66, 63, 73, 79, 56, 68, 61, 61, 60, 51, 61, 108, 78, 79, 54, 111, 61, 64, 56, 61, 90, 56, 70, 59, 69, 46, 97, 61, 77, 69, 66, 64, 58, 61, 49, 61, 54, 57, 81, 53, 70, 72, 62, 68, 59, 54, 84, 63, 100, 66, 54, 78, 75, 51, 80, 74, 61, 66, 65, 55, 82, 66, 61, 59, 62, 54, 50, 62, 58, 59, 71, 74, 79, 62, 51, 63, 61, 67, 65, 74, 61, 79, 52, 47, 65, 42, 61, 72, 59, 69, 66, 65, 74, 74, 54, 49, 120, 58, 83, 81, 83, 54, 55, 60, 63, 69, 78, 47, 72, 77, 61, 72, 61, 72, 72, 68, 54, 70, 64, 48, 58, 61, 60, 59, 69, 60, 68, 60, 46, 74, 62, 63, 73, 46, 89, 59, 57, 59, 46, 72, 74, 60, 70, 62, 84, 53, 70, 59, 73, 65, 65, 68, 63, 67, 59, 79, 71, 65, 81, 70, 69, 61, 55, 59, 60, 74, 63, 62, 59, 53, 62, 62, 78, 59, 80, 75, 54, 79, 54, 58, 70, 63, 66, 60, 59, 66, 58, 64, 82, 71, 64, 70, 69, 54, 68, 55, 50, 60, 62, 84, 61, 68, 77, 59, 70, 96, 67, 72, 67, 52, 50, 67, 56, 64, 69, 57, 73, 64, 69, 57, 81, 49, 75, 64, 65, 78, 71, 66, 55, 91, 60, 64, 73, 63, 69, 58, 77, 56, 42, 55, 48, 51, 81, 76, 88, 62, 67, 65, 82, 72, 57, 68, 53, 44, 74, 71, 77, 63, 71, 62, 61, 64, 60, 66, 52, 64, 43, 55, 79, 66, 62, 71, 61, 51, 48, 69, 109, 67, 59, 53, 59, 61, 63, 63, 54, 77, 64, 60, 74, 73, 67, 70, 70, 78, 77, 70, 62, 75, 61, 53, 65, 92, 66, 63, 64, 63, 72, 44, 74, 59, 54, 72, 70, 46, 70, 91, 79, 47, 63, 63, 60, 71, 60, 65, 49, 62, 62, 75, 100, 75, 74, 62, 71, 81, 83, 85, 75, 67, 67, 64, 70, 57, 55, 97, 74, 61, 79, 54, 60, 115, 88, 47, 59, 65, 63, 62, 62, 60, 70, 53, 49, 69, 66, 65, 49, 68, 58, 68, 71, 69, 59, 72, 62, 64, 76, 53, 93, 69, 74, 73, 53, 58, 95, 85, 65, 76, 60, 71, 56, 58, 69, 71, 74, 49, 62, 73, 46, 55, 64, 60, 60, 60, 83, 61, 78, 55, 69, 71, 69, 71, 67, 60, 62, 63, 58, 54, 65, 87, 65, 53, 81, 65, 67, 53, 49, 60, 57, 60, 61, 66, 63, 67, 74, 64, 93, 55, 46, 76, 50, 57, 59, 72, 83, 65, 62, 57, 73, 56, 85, 48, 63, 74, 78, 65, 55, 69, 62, 70, 61, 75, 59, 60, 78, 72, 90, 88, 71, 79, 70, 65, 59, 58, 59, 63, 63, 64, 83, 58, 56, 57, 89, 62, 57, 70, 64, 56, 63, 77, 51, 70, 78, 62, 59, 64, 80, 75, 66, 52, 54, 79, 59, 58, 63, 68, 81, 61, 55, 76, 50, 56, 51, 62, 41, 73, 61, 56, 71, 53, 80, 55, 83, 59, 60, 85, 52, 61, 62, 46, 67, 61, 72, 63, 65, 68, 63, 68, 57, 86, 66, 67, 54, 57, 52, 61, 60, 88, 61, 70, 56, 62, 60, 70, 66, 58, 54, 49, 64, 46, 54, 62, 61, 66, 69, 80, 72, 55, 50, 72, 66, 68, 39, 47, 61, 66, 65, 66, 58, 82, 45, 53, 71, 55, 59, 50, 65, 69, 90, 79, 66, 72, 65, 76, 54, 71, 61, 53, 80, 90, 63, 71, 86, 65, 82, 53, 76, 66, 75, 90, 64, 77, 76, 59, 58, 132, 53, 57, 59, 75, 52, 70, 89, 58, 58, 67, 65, 71, 64, 70, 91, 86, 66, 61, 72, 64, 61, 52, 58, 63, 63, 68, 88, 59, 70, 72, 54, 66, 70, 68, 66, 76, 66, 74, 107, 66, 60, 66, 55, 67, 73, 57, 93, 60, 62, 52, 55, 54, 47, 67, 94, 64, 61, 61, 67, 83, 44, 60, 42, 59, 60, 54, 90, 69, 63, 66, 60, 69, 78, 63, 63, 54, 77, 61, 99, 76, 75, 69, 68, 70, 63, 65, 64, 71, 67, 70, 62, 42, 56, 92, 80, 83, 42, 71, 76, 38, 71, 58, 59, 55, 61, 69, 63, 53, 53, 52, 70, 68, 99, 68, 55, 69, 46, 56, 68, 102, 74, 70, 59, 55, 47, 71, 83, 72, 60, 55, 80, 65, 72, 65, 87, 68, 55, 67, 71, 61, 58, 51, 76, 87, 72, 111, 83, 90, 52, 69, 68, 44, 53, 66, 62, 54, 67, 50, 54, 101, 69, 57, 54, 61, 56, 68, 66, 50, 71, 76, 59, 59, 65, 56, 55, 46, 56, 66, 63, 49, 54, 42, 58, 68, 66, 115, 98, 57, 66, 70, 68, 66, 63, 51, 72, 73, 52, 101, 63, 57, 62, 56, 67, 68, 97, 69, 112, 75, 62, 89, 82, 66, 52, 66, 42, 61, 95, 65, 101, 66, 59, 75, 106, 59, 71, 59, 54, 52, 75, 64, 66, 72, 49, 62, 66, 63, 61, 60, 39, 88, 71, 60, 64, 69, 66, 69, 69, 74, 37, 33, 65, 52, 76, 61, 62, 47, 61, 66, 91, 60, 58, 66, 53, 80, 67, 66, 89, 69, 47, 43, 54, 55, 69, 85, 58, 71, 54, 84, 52, 49, 65, 67, 87, 46, 47, 78, 88, 72, 59, 52, 55, 45, 67, 67, 69, 74, 57, 72, 73, 59, 58, 74, 63, 55, 45, 76, 61, 58, 44, 50, 68, 54, 52, 57, 93, 79, 60, 54, 66, 74, 78, 53, 65, 68, 72, 66, 70, 43, 84, 61, 97, 74, 78, 58, 60, 61, 72, 58, 30, 48, 73, 69, 41, 66, 72, 65, 50, 73, 60, 131, 58, 62, 69, 72, 62, 73, 89, 44, 55, 56, 69, 56, 64, 95, 68, 80, 69, 71, 73, 60, 55, 80, 59, 88, 97, 72, 48, 57, 56, 73, 115, 72, 99, 58, 117, 76, 87, 66, 76, 65, 62, 67, 50, 56, 54, 60, 72, 67, 61, 51, 53, 76, 67, 57, 64, 78, 50, 57, 54, 58, 73, 50, 76, 64, 84, 90, 59, 70, 46, 61, 52, 78, 75, 61, 82, 49, 54, 53, 68, 70, 36, 62, 68, 65, 83, 87, 65, 61, 81, 96, 51, 57, 71, 72, 74, 54, 83, 64, 85, 73, 46, 73, 66, 60, 84, 75, 98, 57, 86, 76, 59, 63, 68, 72, 74, 87, 63, 57, 55, 53, 92, 74, 57, 61, 83, 65, 93, 61, 73, 61, 68, 119, 82, 80, 72, 69, 72, 52, 47, 75, 62, 90, 67, 61, 101, 62, 60, 62, 56, 77, 74, 53, 69, 76, 43, 61, 90, 64, 68, 89, 115, 59, 61, 68, 70, 99, 89, 65, 78, 51, 113, 70, 49, 77, 52, 51, 74, 52, 66, 40, 45, 63, 62, 55, 45, 65, 112, 79, 85, 69, 60, 50, 59, 55, 83, 76, 75, 54, 91, 61, 60, 62, 67, 59, 72, 62, 86, 102, 70, 57, 50, 47, 64, 54, 61, 79, 65, 58, 59, 63, 60, 65, 64, 68, 69, 61, 69, 83, 56, 79, 58, 75, 76, 57, 57, 59, 73, 62, 76, 48, 59, 58, 62, 98, 68, 57, 64, 52, 61, 69, 67, 63, 70, 73, 51, 67, 75, 66, 61, 81, 57, 58, 61, 67, 65, 107, 48, 52, 60, 66, 57, 56, 100, 68, 48, 54, 80, 65, 69, 65, 66, 70, 52, 64, 48, 70, 71, 60, 69, 66, 67, 62, 67, 78, 63, 77, 77, 63, 100, 54, 61, 56, 77, 73, 57, 65, 55, 52, 93, 69, 70, 65, 60, 70, 75, 70, 53, 66, 67, 69, 68, 69, 64, 85, 62, 59, 77, 74, 46, 71, 63, 71, 69, 58, 64, 73, 55, 93, 60, 92, 53, 54, 45, 63, 73, 46, 49, 54, 66, 44, 71, 72, 68, 106, 37, 55, 65, 59, 93, 68, 48, 64, 118, 68, 65, 57, 67, 67, 77, 76, 69, 74, 70, 55, 45, 59, 57, 54, 82, 49, 73, 53, 60, 57, 58, 61, 50, 75, 66, 60, 60, 64, 62, 105, 66, 66, 60, 53, 60, 59, 62, 65, 57, 55, 63, 61, 53, 103, 65, 50, 54, 63, 50, 48, 72, 83, 68, 70, 70, 39, 61, 55, 42, 69, 66, 73, 54, 59, 45, 61, 53, 71, 44, 67, 68, 57, 47, 83, 74, 54, 53, 64, 53, 83, 58, 78, 55, 61, 59, 57, 60, 66, 65, 60, 63, 49, 68, 58, 74, 43, 62, 62, 56, 58, 68, 57, 42, 56, 69, 74, 43, 66, 53, 49, 64, 81, 61, 55, 59, 68, 90, 74, 58, 67, 66, 71, 55, 57, 60, 82, 68, 66, 69, 61, 69, 103, 39, 43, 60, 61, 72, 56, 60, 72, 55, 57, 58, 88, 49, 68, 52, 116, 76, 57, 77, 46, 62, 57, 77, 61, 78, 65, 65, 82, 58, 105, 66, 59, 66, 52, 82, 60, 67, 85, 76, 54, 88, 70, 46, 81, 62, 59, 57, 77, 49, 63, 72, 54, 91, 53, 67, 62, 68, 71, 62, 56, 56, 63, 54, 83, 61, 66, 58, 42, 68, 71, 58, 69, 51, 66, 62, 58, 103, 71, 78, 63, 65, 47, 61, 63, 72, 61, 84, 73, 75, 65, 65, 62, 65, 57, 54, 62, 72, 71, 67, 66, 46, 61, 87, 51, 63, 59, 47, 56, 72, 45, 72, 50, 58, 88, 81, 64, 70, 72, 58, 49, 68, 56, 85, 75, 59, 52, 61, 49, 56, 65, 84, 35, 61, 61, 41, 57, 74, 59, 54, 47, 73, 68, 67, 71, 61, 57, 52, 76, 67, 64, 94, 54, 73, 78, 45, 72, 57, 74, 59, 64, 78, 77, 89, 42, 59, 74, 71, 56, 73, 59, 84, 58, 76, 63, 68, 59, 63, 122, 65, 50, 62, 62, 47, 79, 55, 62, 66, 54, 61, 55, 74, 70, 55, 67, 50, 69, 60, 52, 50, 54, 87, 92, 88, 87, 83, 41, 63, 94, 57, 72, 51, 61, 80, 57, 55, 57, 88, 61, 71, 65, 55, 116, 72, 66, 67, 66, 63, 55, 65, 63, 58, 60, 51, 56, 63, 64, 85, 73, 56, 78, 80, 72, 71, 68, 74, 60, 62, 79, 79, 76, 62, 56, 71, 59, 75, 74, 61, 97, 65, 40, 52, 55, 94, 60, 67, 54, 68, 56, 92, 57, 70, 65, 50, 72, 90, 69, 59, 86, 85, 66, 75, 84, 80, 63, 60, 57, 63, 57, 67, 92, 65, 58, 62, 50, 55, 82, 49, 48, 68, 62, 47, 76, 53, 66, 53, 66, 59, 77, 68, 60, 69, 39, 83, 68, 81, 85, 61, 75, 65, 52, 56, 69, 50, 37, 84, 72, 81, 54, 66, 65, 69, 69, 52, 95, 56, 60, 68, 67, 39, 66, 70, 73, 61, 68, 65, 66, 80, 98, 63, 62, 55, 68, 106, 65, 44, 59, 63, 66, 73, 41, 82, 83, 59, 56, 51, 73, 70, 112, 41, 71, 72, 51, 55, 56, 54, 62, 53, 48, 58, 55, 74, 71, 66, 88, 78, 75, 90, 57, 104, 97, 79, 65, 85, 83, 60, 65, 81, 63, 56, 77, 90, 59, 45, 67, 71, 61, 62, 64, 82, 50, 86, 72, 70, 69, 48, 48, 71, 73, 91, 51, 60, 62, 61, 63, 59, 65, 86, 74, 53, 59, 72, 70, 67, 53, 93, 71, 90, 62, 57, 72, 46, 64, 75, 60, 100, 60, 68, 59, 54, 54, 58, 89, 81, 77, 79, 69, 71, 82, 84, 67, 57, 57, 55, 60, 79, 54, 62, 52, 57, 57, 63, 56, 68, 51, 68, 55, 57, 57, 68, 71, 73, 70, 56, 81, 51, 75, 63, 102, 51, 57, 49, 57, 60, 62, 68, 68, 78, 88, 65, 73, 85, 81, 71, 60, 71, 52, 55, 91, 67, 75, 41, 57, 59, 65, 63, 73, 73, 56, 72, 72, 61, 57, 58, 57, 61, 60, 80, 102, 67, 55, 60, 76, 69, 65, 54, 55, 87, 60, 98, 53, 67, 108, 59, 68, 58, 58, 59, 57, 62, 70, 61, 70, 103, 59, 58, 87, 57, 60, 78, 52, 71, 75, 92, 56, 58, 82, 49, 68, 61, 50, 69, 60, 63, 53, 63, 57, 53, 70, 73, 53, 68, 49, 75, 51, 44, 59, 69, 57, 55, 87, 92, 66, 58, 68, 82, 55, 88, 42, 66, 53, 59, 45, 58, 65, 59, 58, 53, 69, 70, 48, 73, 57, 65, 64, 61, 56, 80, 76, 58, 58, 63, 77, 73, 69, 78, 65, 83, 64, 79, 54, 53, 117, 81, 57, 93, 73, 79, 71, 76, 52, 72, 66, 64, 90, 63, 67, 81, 55, 63, 74, 57, 86, 73, 55, 97, 57, 61, 70, 77, 110, 52, 65, 71, 66, 107, 49, 75, 73, 74, 65, 64, 63, 55, 66, 58, 67, 69, 52, 83, 60, 54, 68, 53, 59, 121, 66, 80, 48, 68, 47, 56, 103, 52, 63, 66, 56, 75, 75, 65, 91, 64, 59, 63, 50, 75, 55, 89, 76, 58, 99, 74, 63, 59, 66, 53, 50, 43, 85, 64, 90, 48, 48, 66, 64, 53, 74, 67, 52, 83, 57, 80, 50, 50, 62, 49, 67, 66, 86, 80, 75, 58, 79, 48, 60, 73, 56, 81, 61, 67, 51, 48, 52, 73, 55, 96, 58, 68, 63, 69, 57, 67, 71, 50, 51, 67, 71, 66, 56, 71, 64, 61, 67, 86, 99, 98, 56, 68, 47, 48, 59, 67, 95, 48, 55, 51, 57, 80, 73, 75, 76, 67, 61, 59, 62, 73, 65, 96, 46, 77, 50, 60, 76, 62, 62, 76, 66, 71, 62, 51, 96, 73, 68, 66, 62, 87, 65, 61, 78, 53, 46, 83, 59, 62, 81, 61, 70, 70, 43, 84, 72, 78, 66, 56, 71, 68, 80, 68, 53, 73, 46, 63, 56, 66, 69, 78, 61, 67, 55, 64, 75, 61, 74, 58, 45, 71, 85, 59, 53, 62, 54, 65, 83, 63, 62, 93, 70, 63, 52, 65, 74, 66, 81, 58, 67, 54, 53, 86, 94, 91, 68, 65, 73, 58, 46, 67, 73, 64, 54, 61, 81, 59, 50, 50, 69, 77, 87, 40, 58, 69, 82, 89, 69, 58, 76, 73, 64, 60, 49, 75, 79, 59, 38, 72, 87, 69, 47, 77, 69, 112, 58, 61, 101, 45, 53, 78, 69, 55, 46, 63, 56, 55, 76, 80, 80, 66, 65, 87, 108, 75, 55, 62, 71, 71, 57, 59, 59, 59, 62, 42, 66, 62, 69, 67, 69, 59, 68, 63, 57, 58, 84, 52, 55, 57, 55, 81, 75, 64, 75, 57, 60, 77, 67, 59, 77, 51, 56, 48, 95, 54, 61, 45, 92, 73, 82, 82, 71, 48, 92, 73, 68, 76, 69, 78, 61, 70, 45, 63, 45, 73, 67, 64, 67, 78, 62, 55, 50, 54, 72, 46, 58, 67, 59, 55, 82, 58, 62, 64, 69, 56, 64, 81, 62, 62, 45, 52, 70, 69, 58, 69, 79, 41, 68, 50, 53, 86, 44, 125, 65, 46, 62, 53, 58, 82, 61, 66, 62, 73, 64, 75, 82, 56, 64, 66, 45, 68, 57, 74, 55, 53, 71, 67, 80, 50, 73, 56, 70, 60, 75, 42, 52, 45, 68, 61, 65, 64, 58, 99, 46, 65, 53, 67, 63, 68, 70, 66, 77, 47, 79, 65, 60, 81, 64, 51, 58, 41, 45, 44, 75, 67, 66, 73, 67, 70, 60, 60, 72, 55, 65, 66, 49, 39, 63, 67, 59, 63, 55, 70, 76, 99, 60, 46, 76, 79, 54, 59, 62, 72, 74, 94, 65, 94, 57, 58, 67, 66, 83, 75, 50, 56, 72, 65, 77, 58, 67, 59, 53, 41, 64, 72, 57, 64, 59, 62, 68, 69, 101, 65, 82, 77, 85, 61, 64, 52, 51, 57, 66, 59, 58, 64, 56, 60, 66, 60, 56, 49, 49, 69, 61, 69, 91, 73, 70, 65, 56, 60, 47, 62, 64, 86, 71, 56, 57, 70, 60, 79, 68, 74, 54, 52, 72, 61, 123, 64, 66, 53, 53, 84, 85, 68, 70, 59, 58, 83, 60, 80, 65, 82, 48, 57, 66, 54, 91, 66, 62, 67, 85, 81, 73, 74, 65, 69, 76, 57, 46, 53, 70, 64, 68, 61, 66, 82, 55, 52, 67, 58, 66, 56, 36, 51, 67, 59, 52, 81, 62, 62, 67, 68, 53, 61, 57, 59, 59, 46, 80, 60, 61, 79, 78, 71, 61, 75, 56, 71, 50, 55, 58, 57, 59, 36, 61, 75, 76, 100, 54, 74, 68, 85, 47, 69, 46, 60, 58, 81, 62, 75, 68, 42, 52, 74, 81, 58, 69, 93, 50, 74, 70, 71, 65, 68, 76, 65, 61, 90, 78, 82, 70, 55, 74, 65, 75, 45, 39, 66, 45, 49, 63, 55, 72, 63, 77, 68, 92, 52, 56, 86, 60, 81, 59, 62, 78, 67, 83, 50, 54, 52, 75, 64, 68, 69, 56, 68, 70, 67, 63, 72, 63, 79, 65, 78, 54, 71, 71, 60, 62, 43, 58, 67, 70, 64, 63, 53, 91, 70, 71, 75, 71, 93, 63, 64, 100, 57, 66, 45, 48, 65, 83, 60, 72, 60, 60, 51, 86, 55, 57, 75, 54, 49, 56, 60, 60, 76, 80, 81, 62, 79, 69, 72, 61, 88, 48, 70, 53, 48, 46, 68, 77, 98, 56, 76, 68, 79, 81, 59, 87, 86, 57, 70, 97, 52, 62, 74, 56, 60, 58, 84, 66, 66, 54, 68, 53, 68, 52, 69, 86, 63, 71, 66, 71, 58, 84, 85, 45, 68, 81, 64, 58, 73, 56, 79, 78, 109, 71, 77, 76, 47, 68, 84, 61, 79, 78, 81, 71, 72, 61, 71, 78, 92, 91, 74, 65, 46, 52, 68, 78, 72, 77, 61, 68, 75, 65, 70, 64, 65, 57, 61, 77, 97, 78, 67, 58, 50, 57, 76, 83, 88, 64, 59, 78, 53, 54, 63, 87, 71, 64, 41, 49, 65, 81, 63, 81, 67, 84, 74, 66, 72, 70, 62, 60, 61, 63, 63, 66, 67, 78, 68, 63, 56, 64, 62, 65, 65, 54, 86, 58, 45, 64, 77, 50, 56, 73, 58, 109, 49, 72, 55, 65, 68, 59, 73, 74, 71, 66, 73, 63, 76, 81, 49, 77, 55, 70, 56, 50, 53, 53, 64, 80, 119, 46, 80, 47, 50, 79, 101, 64, 49, 88, 132, 106, 51, 61, 98, 54, 67, 51, 61, 38, 65, 76, 60, 75, 64, 66, 68, 75, 80, 65, 58, 60, 78, 65, 56, 82, 69, 74, 54, 84, 72, 51, 56, 75, 68, 49, 61, 58, 60, 83, 87, 90, 60, 49, 60, 63, 65, 58, 57, 56, 83, 87, 66, 41, 59, 54, 64, 60, 52, 59, 60, 44, 73, 67, 44, 52, 70, 59, 66, 39, 73, 47, 81, 61, 64, 69, 53, 85, 79, 64, 60, 56, 77, 84, 74, 73, 79, 78, 57, 47, 59, 90, 85, 78, 62, 69, 48, 105, 53, 58, 66, 72, 70, 47, 57, 62, 57, 59, 64, 94, 94, 52, 42, 64, 60, 73, 68, 83, 64, 49, 77, 80, 104, 51, 98, 106, 47, 61, 63, 81, 63, 78, 84, 69, 79, 66, 51, 54, 59, 71, 63, 64, 69, 47, 65, 73, 75, 68, 58, 51, 70, 52, 81, 59, 77, 89, 76, 56, 54, 80, 60, 63, 80, 69, 78, 71, 71, 78, 87, 61, 65, 58, 50, 92, 58, 60, 63, 84, 52, 69, 73, 70, 64, 86, 66, 77, 67, 66, 63, 71, 84, 76, 84, 41, 45, 66, 75, 51, 56, 64, 54, 66, 45, 99, 66, 77, 78, 43, 80, 69, 54, 51, 83, 69, 56, 54, 66, 62, 56, 61, 72, 61, 67, 46, 79, 61, 65, 49, 82, 66, 59, 47, 82, 55, 82, 76, 62, 57, 106, 69, 48, 69, 55, 50, 55, 54, 63, 72, 60, 81, 56, 86, 53, 77, 67, 62, 68, 84, 77, 54, 55, 58, 58, 74, 77, 52, 72, 62, 92, 85, 49, 59, 65, 86, 62, 57, 63, 53, 72, 64, 67, 68, 56, 80, 52, 54, 62, 72, 43, 86, 85, 63, 75, 71, 63, 73, 52, 63, 72, 68, 65, 33, 87, 77, 81, 90, 52, 40, 47, 54, 52, 57, 58, 72, 66, 71, 78, 68, 50, 65, 68, 54, 84, 60, 65, 65, 65, 70, 81, 45, 94, 60, 61, 94, 76, 64, 68, 58, 83, 64, 63, 67, 70, 45, 72, 74, 57, 65, 59, 101, 54, 66, 69, 59, 74, 66, 90, 60, 61, 108, 85, 64, 53, 67, 49, 58, 64, 66, 61, 50, 78, 86, 86, 66, 51, 64, 75, 59, 67, 52, 72, 68, 72, 78, 52, 71, 47, 79, 59, 52, 49, 67, 69, 59, 61, 60, 64, 77, 61, 64, 65, 62, 79, 56, 53, 75, 74, 72, 60, 64, 107, 50, 46, 68, 47, 50, 71, 73, 53, 59, 59, 67, 53, 56, 66, 87, 63, 60, 84, 62, 51, 72, 71, 71, 63, 63, 80, 50, 61, 62, 78, 89, 64, 61, 79, 56, 78, 76, 64, 74, 60, 72, 69, 42, 61, 58, 59, 59, 105, 60, 74, 44, 72, 64, 78, 54, 52, 63, 71, 82, 57, 63, 78, 85, 133, 70, 72, 79, 61, 58, 99, 66, 56, 66, 52, 76, 90, 66, 40, 58, 50, 76, 74, 78, 87, 47, 61, 60, 69, 70, 64, 56, 56, 62, 76, 60, 57, 49, 79, 68, 62, 59, 67, 53, 88, 79, 60, 76, 59, 57, 49, 62, 58, 62, 66, 69, 60, 41, 59, 57, 40, 48, 53, 58, 93, 97, 63, 68, 63, 72, 61, 72, 82, 60, 73, 49, 86, 58, 86, 84, 55, 57, 64, 60, 54, 69, 54, 67, 73, 65, 64, 62, 69, 61, 59, 66, 58, 62, 63, 68, 92, 54, 72, 102, 66, 67, 58, 62, 73, 60, 65, 47, 44, 28, 73, 65, 64, 53, 47, 62, 61, 57, 67, 62, 49, 45, 71, 54, 71, 79, 52, 57, 52, 75, 94, 52, 73, 67, 58, 52, 91, 64, 77, 61, 58, 84, 68, 54, 70, 55, 65, 61, 68, 72, 88, 70, 56, 61, 91, 56, 76, 76, 73, 76, 61, 66, 55, 70, 62, 119, 49, 60, 53, 64, 107, 71, 83, 69, 51, 55, 73, 62, 76, 70, 71, 62, 59, 59, 85, 121, 55, 64, 68, 77, 68, 34, 66, 63, 62, 89, 60, 60, 57, 60, 48, 63, 84, 59, 74, 89, 62, 51, 57, 55, 60, 65, 50, 58, 71, 62, 59, 76, 66, 69, 101, 62, 43, 56, 58, 58, 64, 64, 104, 54, 54, 67, 82, 59, 48, 46, 42, 66, 51, 71, 69, 81, 68, 57, 61, 99, 56, 62, 75, 59, 72, 60, 55, 65, 61, 49, 89, 76, 97, 64, 68, 56, 81, 54, 72, 76, 48, 54, 51, 72, 65, 74, 83, 73, 60, 66, 52, 84, 75, 77, 77, 60, 70, 108, 65, 79, 64, 58, 54, 59, 55, 56, 57, 63, 56, 72, 73, 65, 54, 58, 51, 73, 63, 78, 86, 68, 72, 65, 57, 45, 59, 80, 63, 56, 74, 59, 53, 61, 92, 74, 68, 62, 69, 61, 55, 72, 62, 89, 62, 52, 89, 66, 58, 61, 57, 123, 46, 69, 59, 60, 61, 51, 75, 57, 74, 62, 70, 53, 69, 78, 47, 49, 72, 65, 51, 95, 49, 64, 58, 59, 67, 62, 98, 71, 53, 64, 56, 58, 76, 69, 65, 55, 53, 71, 71, 52, 91, 52, 50, 59, 95, 54, 50, 60, 76, 53, 54, 66, 75, 50, 55, 52, 45, 54, 66, 66, 102, 57, 89, 67, 67, 56, 56, 60, 63, 64, 86, 62, 75, 72, 70, 47, 81, 51, 60, 91, 66, 53, 66, 71, 83, 70, 78, 40, 114, 54, 52, 87, 62, 60, 44, 54, 61, 52, 56, 66, 81, 60, 64, 71, 54, 68, 68, 59, 58, 50, 70, 57, 68, 96, 58, 67, 92, 56, 55, 75, 62, 57, 78, 52, 83, 60, 102, 57, 71, 95, 71, 62, 67, 63, 50, 58, 76, 61, 66, 62, 74, 61, 65, 76, 70, 82, 72, 72, 51, 68, 76, 52, 62, 94, 54, 69, 72, 68, 109, 60, 78, 60, 67, 58, 64, 56, 53, 71, 89, 60, 62, 69, 59, 94, 65, 56, 52, 62, 60, 89, 66, 71, 61, 62, 67, 81, 97, 50, 56, 62, 65, 54, 61, 97, 60, 75, 51, 69, 64, 51, 67, 54, 68, 74, 113, 61, 62, 75, 63, 39, 37, 67, 67, 99, 127, 83, 58, 57, 124, 60, 64, 62, 48, 42, 69, 59, 73, 68, 67, 67, 52, 36, 76, 54, 66, 54, 62, 72, 60, 77, 59, 48, 61, 61, 67, 48, 68, 59, 51, 53, 42, 62, 67, 65, 67, 101, 62, 57, 47, 67, 89, 73, 82, 53, 115, 68, 57, 67, 50, 68, 64, 76, 70, 55, 62, 51, 144, 42, 63, 57, 54, 85, 53, 54, 55, 58, 61, 49, 66, 53, 73, 47, 86, 64, 49, 84, 96, 63, 89, 61, 46, 62, 50, 61, 74, 83, 84, 62, 57, 55, 78, 57, 63, 58, 48, 61, 65, 58, 90, 52, 51, 67, 54, 60, 47, 62, 45, 71, 57, 58, 62, 56, 57, 73, 73, 49, 135, 61, 66, 79, 70, 55, 52, 53, 80, 43, 95, 61, 98, 96, 61, 51, 65, 59, 70, 59, 50, 64, 53, 54, 53, 70, 68, 57, 62, 55, 63, 68, 48, 106, 55, 52, 52, 64, 51, 70, 38, 57, 52, 75, 62, 57, 88, 61, 74, 60, 56, 76, 50, 68, 63, 66, 54, 63, 61, 72, 50, 81, 66, 66, 70, 58, 75, 53, 110, 57, 54, 69, 72, 66, 72, 44, 66, 61, 60, 45, 61, 111, 59, 35, 87, 47, 66, 57, 90, 56, 64, 78, 57, 50, 57, 66, 59, 63, 53, 61, 46, 58, 59, 97, 57, 48, 58, 75, 79, 70, 58, 70, 104, 75, 77, 72, 68, 61, 61, 61, 72, 79, 60, 57, 63, 81, 51, 48, 62, 82, 83, 80, 55, 70, 66, 68, 75, 66, 83, 62, 57, 68, 85, 49, 83, 81, 67, 61, 70, 51, 67, 62, 75, 54, 58, 62, 72, 52, 55, 59, 70, 69, 71, 62, 71, 48, 50, 68, 55, 68, 68, 62, 55, 43, 59, 77, 64, 57, 53, 58, 106, 83, 58, 99, 47, 78, 88, 78, 56, 79, 58, 66, 78, 83, 63, 67, 68, 56, 65, 58, 66, 70, 76, 62, 58, 98, 60, 66, 65, 68, 78, 105, 63, 96, 82, 72, 83, 58, 62, 69, 82, 55, 63, 65, 57, 65, 50, 47, 52, 55, 63, 51, 121, 59, 58, 84, 76, 97, 79, 62, 62, 60, 78, 62, 56, 63, 57, 79, 71, 70, 47, 47, 56, 108, 78, 63, 61, 87, 50, 82, 58, 73, 80, 71, 90, 51, 66, 64, 54, 59, 61, 97, 70, 62, 58, 94, 47, 50, 44, 64, 76, 71, 82, 63, 62, 76, 58, 81, 64, 90, 58, 79, 51, 54, 50, 69, 56, 84, 49, 62, 54, 70, 66, 56, 50, 70, 74, 39, 71, 52, 58, 77, 64, 62, 68, 48, 70, 62, 64, 57, 71, 63, 57, 68, 58, 55, 57, 64, 61, 90, 49, 63, 63, 79, 63, 63, 88, 61, 98, 46, 45, 57, 72, 64, 48, 72, 74, 85, 49, 76, 62, 68, 108, 58, 67, 72, 67, 63, 60, 47, 49, 78, 66, 74, 58, 79, 71, 69, 68, 60, 68, 69, 51, 55, 70, 69, 53, 66, 57, 57, 79, 54, 70, 57, 40, 55, 63, 69, 81, 76, 73, 60, 70, 66, 55, 63, 56, 66, 69, 69, 67, 87, 62, 60, 49, 56, 86, 67, 84, 59, 54, 56, 61, 58, 65, 52, 55, 99, 62, 61, 63, 81, 74, 57, 78, 78, 46, 52, 44, 56, 55, 65, 72, 55, 68, 60, 60, 74, 76, 73, 53, 55, 64, 55, 56, 56, 64, 71, 60, 69, 53, 56, 66, 55, 77, 54, 79, 67, 62, 54, 58, 83, 59, 50, 62, 65, 65, 52, 63, 66, 70, 64, 50, 69, 68, 76, 65, 73, 70, 63, 69, 58, 91, 62, 71, 63, 80, 51, 60, 64, 90, 75, 56, 78, 87, 55, 54, 54, 73, 93, 55, 76, 71, 60, 62, 87, 82, 56, 47, 65, 60, 66, 62, 44, 58, 70, 58, 71, 62, 61, 60, 61, 92, 57, 66, 93, 79, 64, 60, 57, 60, 71, 47, 76, 72, 62, 64, 84, 118, 61, 56, 65, 63, 65, 59, 62, 50, 86, 58, 66, 71, 52, 66, 51, 56, 59, 55, 93, 63, 67, 54, 66, 65, 47, 58, 71, 65, 63, 62, 57, 45, 89, 71, 76, 74, 52, 76, 61, 73, 101, 63, 55, 53, 56, 65, 61, 72, 62, 89, 59, 48, 51, 79, 57, 54, 59, 63, 69, 67, 51, 51, 69, 75, 65, 59, 54, 73, 76, 53, 144, 92, 67, 74, 73, 56, 85, 60, 84, 100, 70, 63, 59, 51, 60, 66, 54, 55, 69, 67, 52, 86, 104, 69, 57, 72, 66, 57, 61, 84, 51, 58, 54, 74, 71, 59, 66, 75, 50, 65, 69, 92, 56, 55, 76, 63, 58, 68, 61, 67, 71, 65, 66, 62, 70, 66, 68, 68, 61, 69, 87, 53, 81, 83, 73, 65, 69, 50, 49, 42, 54, 61, 46, 43, 67, 71, 49, 56, 66, 59, 44, 88, 58, 72, 59, 68, 61, 96, 67, 58, 69, 56, 110, 86, 51, 79, 65, 66, 78, 48, 53, 63, 72, 65, 59, 66, 60, 71, 67, 70, 85, 49, 61, 68, 53, 66, 80, 60, 59, 13, 66, 48, 58, 89, 70, 67, 54, 42, 84, 68, 68, 71, 69, 81, 58, 94, 60, 46, 55, 48, 77, 42, 66, 64, 60, 82, 81, 70, 83, 60, 68, 62, 72, 65, 56, 71, 60, 69, 56, 70, 65, 82, 40, 64, 56, 39, 45, 75, 86, 78, 67, 93, 60, 70, 52, 76, 85, 48, 54, 89, 70, 62, 48, 43, 58, 102, 50, 69, 58, 56, 76, 61, 73, 67, 81, 60, 69, 66, 69, 74, 62, 53, 48, 76, 58, 58, 77, 68, 79, 80, 81, 74, 79, 109, 47, 68, 77, 74, 88, 64, 70, 62, 85, 72, 83, 85, 70, 75, 74, 66, 63, 66, 62, 65, 67, 68, 59, 67, 65, 65, 62, 67, 56, 66, 60, 59, 34, 96, 50, 64, 71, 58, 53, 67, 59, 67, 49, 58, 47, 59, 39, 64, 61, 72, 48, 77, 90, 68, 66, 67, 56, 77, 63, 66, 67, 73, 118, 66, 74, 68, 71, 59, 61, 106, 60, 71, 66, 69, 72, 67, 99, 64, 70, 80, 65, 50, 68, 72, 59, 82, 61, 62, 62, 71, 91, 73, 67, 81, 56, 70, 74, 88, 75, 59, 54, 64, 68, 63, 45, 62, 88, 66, 60, 71, 69, 58, 69, 47, 60, 45, 77, 69, 70, 63, 73, 70, 65, 71, 69, 71, 56, 51, 65, 58, 45, 51, 54, 72, 62, 75, 53, 70, 65, 58, 45, 64, 80, 50, 57, 68, 54, 75, 22, 63, 56, 65, 69, 60, 58, 70, 61, 67, 63, 77, 74, 60, 78, 54, 68, 49, 49, 62, 85, 53, 56, 68, 56, 61, 63, 78, 79, 67, 71, 95, 66, 54, 64, 82, 58, 69, 56, 53, 75, 62, 62, 67, 63, 47, 89, 89, 72, 58, 57, 68, 77, 111, 67, 105, 54, 54, 85, 53, 60, 59, 61, 48, 52, 51, 49, 64, 62, 56, 83, 50, 52, 68, 59, 110, 70, 90, 67, 62, 78, 67, 47, 57, 62, 89, 55, 76, 67, 54, 75, 52, 60, 70, 63, 69, 46, 81, 69, 38, 53, 87, 102, 48, 61, 76, 55, 65, 68, 63, 63, 63, 61, 81, 70, 72, 73, 59, 74, 57, 71, 63, 52, 86, 65, 58, 44, 59, 60, 61, 67, 54, 84, 66, 71, 51, 56, 70, 81, 58, 63, 48, 61, 59, 83, 76, 91, 60, 40, 85, 71, 58, 72, 67, 54, 78, 65, 54, 50, 82, 56, 61, 66, 49, 68, 48, 71, 88, 61, 68, 60, 65, 68, 55, 54, 60, 63, 76, 76, 54, 55, 46, 61, 61, 81, 61, 71, 75, 73, 58, 61, 61, 67, 68, 68, 58, 96, 61, 67, 78, 63, 71, 74, 60, 88, 65, 64, 57, 68, 61, 66, 64, 87, 55, 52, 64, 48, 81, 64, 83, 97, 66, 77, 65, 61, 92, 73, 44, 54, 82, 72, 52, 79, 63, 58, 69, 85, 65, 127, 72, 47, 58, 72, 95, 48, 86, 77, 62, 80, 87, 67, 72, 51, 64, 68, 70, 61, 66, 87, 77, 63, 65, 84, 65, 60, 65, 71, 63, 84, 64, 135, 60, 53, 78, 74, 91, 62, 62, 66, 65, 57, 80, 79, 85, 87, 75, 62, 50, 68, 54, 67, 42, 49, 50, 64, 64, 64, 61, 84, 58, 77, 43, 50, 76, 79, 49, 109, 76, 59, 60, 65, 43, 73, 65, 95, 49, 58, 56, 76, 61, 61, 83, 86, 56, 63, 75, 53, 69, 61, 56, 68, 73, 54, 63, 58, 59, 66, 63, 56, 77, 51, 81, 69, 60, 65, 75, 75, 57, 72, 39, 77, 71, 53, 119, 78, 71, 64, 61, 63, 105, 83, 68, 92, 60, 67, 60, 65, 66, 57, 50, 56, 56, 48, 56, 98, 48, 45, 57, 70, 81, 64, 57, 72, 64, 73, 63, 52, 56, 79, 88, 47, 63, 70, 61, 80, 64, 66, 63, 60, 70, 71, 61, 75, 75, 65, 86, 66, 43, 67, 62, 62, 62, 50, 95, 72, 73, 69, 59, 72, 77, 58, 68, 72, 62, 55, 70, 49, 55, 66, 76, 63, 50, 59, 62, 67, 78, 55, 60, 46, 59, 55, 66, 71, 81, 73, 77, 89, 54, 78, 74, 62, 61, 50, 52, 56, 57, 67, 78, 70, 66, 55, 62, 86, 70, 64, 95, 51, 71, 67, 81, 70, 76, 72, 101, 59, 59, 77, 72, 72, 79, 72, 64, 64, 80, 52, 66, 76, 66, 84, 50, 87, 65, 71, 94, 38, 70, 61, 64, 71, 63, 50, 77, 34, 68, 67, 53, 73, 49, 70, 67, 79, 56, 90, 60, 70, 70, 51, 57, 61, 70, 64, 60, 51, 107, 68, 64, 62, 65, 72, 68, 61, 54, 60, 70, 58, 77, 66, 85, 59, 70, 63, 61, 72, 63, 61, 59, 52, 64, 64, 67, 55, 55, 78, 61, 74, 72, 81, 71, 75, 91, 59, 93, 48, 53, 89, 58, 63, 64, 60, 57, 150, 62, 59, 67, 74, 96, 58, 98, 59, 70, 77, 61, 66, 55, 63, 58, 81, 60, 59, 52, 63, 74, 65, 56, 72, 50, 77, 50, 72, 54, 79, 68, 67, 53, 56, 57, 80, 73, 56, 51, 82, 69, 52, 50, 87, 53, 53, 68, 54, 56, 69, 93, 63, 51, 66, 74, 63, 53, 61, 80, 76, 66, 48, 55, 76, 61, 68, 69, 54, 53, 66, 84, 57, 59, 61, 86, 57, 68, 60, 63, 69, 73, 56, 74, 72, 69, 74, 68, 69, 80, 59, 79, 54, 62, 80, 55, 62, 66, 55, 50, 56, 101, 45, 60, 51, 56, 56, 74, 65, 63, 64, 57, 81, 72, 77, 81, 49, 57, 56, 56, 57, 56, 64, 68, 74, 94, 50, 50, 68, 72, 57, 66, 72, 68, 35, 103, 55, 38, 72, 66, 78, 68, 73, 80, 81, 65, 99, 68, 59, 70, 64, 62, 64, 54, 59, 70, 81, 55, 65, 45, 57, 75, 70, 55, 67, 67, 57, 59, 77, 74, 111, 53, 45, 52, 60, 58, 76, 109, 75, 56, 81, 59, 67, 77, 46, 75, 70, 79, 61, 73, 93, 82, 50, 65, 47, 65, 52, 75, 50, 62, 80, 63, 72, 81, 65, 70, 84, 48, 69, 79, 62, 74, 56, 87, 56, 88, 64, 81, 72, 55, 61, 58, 53, 107, 56, 47, 61, 67, 56, 57, 63, 60, 56, 68, 81, 62, 76, 64, 113, 64, 88, 65, 65, 131, 62, 54, 61, 71, 58, 51, 66, 51, 57, 70, 67, 78, 60, 45, 74, 69, 75, 63, 59, 63, 59, 55, 53, 52, 53, 100, 69, 87, 65, 61, 89, 65, 59, 103, 66, 57, 79, 96, 60, 66, 68, 80, 50, 91, 52, 33, 72, 56, 61, 65, 61, 71, 48, 72, 52, 46, 64, 66, 70, 75, 70, 58, 45, 57, 69, 54, 65, 66, 61, 64, 67, 68, 71, 78, 67, 74, 62, 54, 58, 62, 65, 73, 63, 69, 62, 40, 60, 114, 71, 57, 68, 75, 64, 65, 79, 60, 63, 66, 82, 53, 89, 53, 70, 53, 62, 72, 108, 61, 56, 60, 58, 71, 76, 73, 67, 69, 56, 85, 54, 56, 107, 56, 47, 71, 56, 66, 57, 50, 50, 75, 61, 116, 71, 52, 63, 53, 58, 82, 64, 58, 65, 118, 68, 56, 83, 70, 63, 64, 57, 70, 76, 77, 70, 71, 75, 68, 75, 57, 69, 63, 49, 59, 56, 57, 73, 50, 60, 55, 102, 68, 58, 56, 57, 57, 36, 71, 60, 60, 88, 68, 60, 56, 98, 66, 57, 58, 53, 64, 66, 50, 59, 89, 61, 58, 65, 77, 37, 73, 58, 68, 75, 47, 65, 111, 75, 76, 50, 53, 58, 79, 74, 71, 57, 107, 67, 73, 63, 77, 54, 74, 66, 57, 51, 61, 66, 67, 65, 92, 64, 88, 59, 53, 50, 55, 64, 70, 70, 61, 79, 69, 61, 63, 59, 57, 63, 46, 78, 63, 28, 57, 63, 58, 73, 54, 69, 59, 80, 86, 76, 79, 55, 60, 68, 113, 54, 89, 68, 75, 80, 44, 87, 58, 72, 61, 50, 84, 63, 43, 76, 85, 65, 72, 65, 49, 49, 60, 54, 60, 52, 54, 75, 56, 64, 55, 70, 65, 55, 76, 59, 54, 53, 72, 68, 63, 77, 60, 50, 84, 61, 57, 55, 59, 56, 74, 68, 69, 66, 78, 57, 63, 57, 69, 92, 56, 97, 57, 83, 73, 63, 48, 55, 55, 56, 55, 53, 79, 60, 44, 78, 82, 65, 66, 50, 74, 78, 90, 46, 47, 82, 48, 68, 59, 78, 65, 65, 66, 81, 54, 85, 64, 70, 63, 59, 74, 60, 53, 73, 64, 68, 87, 73, 67, 63, 58, 58, 60, 48, 54, 70, 79, 62, 59, 53, 53, 91, 62, 41, 52, 59, 68, 65, 56, 46, 63, 53, 62, 58, 81, 51, 71, 51, 61, 88, 88, 70, 48, 90, 57, 71, 75, 65, 66, 49, 59, 69, 49, 53, 59, 80, 48, 60, 65, 59, 88, 48, 59, 69, 60, 56, 55, 80, 59, 56, 67, 66, 55, 54, 58, 50, 63, 86, 71, 82, 59, 82, 60, 105, 63, 53, 49, 63, 65, 51, 61, 68, 64, 65, 95, 73, 75, 64, 56, 52, 72, 67, 76, 66, 73, 86, 52, 60, 69, 54, 66, 44, 61, 53, 65, 82, 47, 63, 75, 50, 65, 64, 97, 80, 65, 63, 67, 61, 83, 52, 68, 57, 92, 61, 52, 66, 56, 65, 75, 99, 50, 75, 75, 51, 102, 70, 68, 53, 66, 35, 51, 66, 64, 127, 83, 49, 66, 63, 69, 59, 54, 43, 59, 85, 61, 52, 76, 62, 75, 65, 48, 80, 73, 75, 69, 64, 47, 60, 52, 61, 75, 66, 60, 107, 64, 54, 73, 52, 61, 76, 61, 89, 71, 70, 43, 70, 72, 71, 67, 73, 69, 73, 53, 66, 89, 66, 63, 64, 68, 53, 64, 65, 88, 86, 61, 46, 72, 52, 78, 80, 66, 57, 51, 65, 62, 77, 84, 85, 63, 74, 75, 54, 59, 77, 53, 58, 51, 76, 81, 86, 71, 72, 59, 76, 57, 66, 69, 58, 50, 60, 81, 84, 67, 49, 67, 94, 61, 51, 49, 55, 66, 76, 71, 59, 75, 53, 78, 49, 64, 108, 81, 75, 80, 57, 43, 64, 78, 75, 53, 56, 90, 74, 64, 73, 87, 57, 62, 72, 65, 69, 86, 59, 90, 64, 54, 57, 70, 64, 85, 58, 48, 69, 60, 88, 60, 67, 77, 55, 69, 61, 64, 68, 67, 72, 57, 64, 75, 73, 59, 54, 76, 54, 52, 62, 82, 57, 49, 64, 67, 60, 61, 55, 54, 58, 54, 48, 58, 62, 67, 66, 55, 70, 70, 82, 52, 65, 77, 58, 64, 82, 61, 60, 80, 64, 70, 60, 74, 84, 65, 92, 80, 67, 55, 54, 70, 54, 54, 54, 70, 72, 71, 97, 87, 60, 48, 51, 80, 53, 69, 58, 58, 53, 67, 62, 46, 67, 66, 68, 66, 54, 69, 72, 57, 67, 58, 82, 87, 59, 61, 84, 67, 56, 49, 77, 72, 93, 84, 61, 86, 62, 65, 48, 80, 71, 54, 54, 60, 132, 59, 63, 66, 80, 114, 64, 86, 60, 67, 58, 82, 65, 59, 53, 62, 67, 67, 70, 64, 80, 51, 74, 77, 87, 86, 43, 83, 53, 57, 84, 69, 58, 76, 55, 53, 72, 65, 71, 42, 78, 55, 50, 65, 85, 52, 69, 85, 66, 51, 46, 73, 84, 70, 54, 68, 66, 68, 59, 69, 84, 83, 71, 47, 80, 52, 53, 76, 61, 63, 69, 39, 77, 38, 57, 63, 65, 73, 54, 53, 56, 71, 53, 60, 93, 64, 52, 66, 56, 76, 63, 58, 46, 88, 51, 82, 82, 52, 72, 40, 60, 91, 52, 57, 70, 70, 59, 61, 67, 58, 68, 65, 64, 94, 53, 77, 50, 73, 71, 50, 68, 76, 72, 74, 57, 69, 57, 86, 67, 73, 50, 74, 41, 79, 69, 77, 56, 45, 58, 61, 67, 58, 71, 62, 61, 83, 103, 66, 62, 56, 52, 64, 76, 87, 72, 60, 60, 52, 59, 57, 45, 94, 62, 58, 61, 60, 61, 62, 51, 97, 89, 80, 65, 62, 67, 72, 67, 82, 70, 55, 74, 57, 56, 73, 90, 76, 73, 73, 74, 61, 65, 74, 75, 77, 53, 69, 53, 65, 74, 33, 62, 59, 66, 71, 76, 61, 48, 87, 92, 76, 67, 54, 84, 89, 63, 82, 55, 67, 67, 74, 40, 66, 60, 124, 58, 70, 38, 63, 56, 65, 82, 34, 77, 90, 59, 69, 78, 55, 94, 57, 77, 70, 58, 105, 81, 52, 62, 76, 73, 56, 67, 60, 72, 50, 70, 62, 53, 61, 86, 55, 54, 75, 60, 61, 61, 69, 74, 50, 59, 84, 60, 89, 45, 59, 58, 87, 70, 89, 67, 66, 84, 71, 58, 69, 55, 52, 67, 85, 52, 58, 87, 64, 55, 95, 69, 35, 66, 82, 52, 53, 61, 56, 64, 65, 54, 49, 56, 61, 61, 77, 64, 55, 55, 61, 56, 61, 75, 38, 51, 56, 53, 61, 61, 61, 49, 56, 67, 62, 56, 65, 60, 83, 79, 64, 58, 64, 49, 59, 67, 57, 58, 60, 59, 70, 81, 56, 51, 71, 59, 51, 103, 78, 57, 49, 52, 74, 59, 44, 85, 70, 67, 64, 71, 56, 106, 74, 44, 64, 55, 52, 58, 43, 55, 77, 94, 89, 63, 67, 70, 53, 62, 104, 49, 83, 68, 55, 43, 71, 63, 53, 74, 46, 67, 48, 67, 57, 61, 71, 60, 59, 68, 61, 49, 59, 55, 70, 60, 57, 59, 53, 61, 49, 76, 71, 87, 65, 76, 63, 72, 57, 72, 71, 98, 73, 49, 65, 55, 65, 54, 61, 70, 74, 50, 61, 53, 69, 45, 86, 77, 82, 69, 84, 56, 71, 62, 62, 63, 101, 84, 59, 66, 78, 82, 63, 116, 58, 62, 92, 42, 89, 63, 76, 59, 63, 82, 59, 57, 68, 76, 92, 55, 80, 64, 77, 66, 74, 53, 51, 93, 74, 57, 78, 94, 71, 72, 67, 66, 71, 71, 68, 62, 56, 53, 47, 54, 56, 69, 67, 58, 52, 73, 85, 48, 64, 70, 68, 49, 103, 47, 71, 48, 92, 62, 69, 66, 83, 72, 55, 73, 99, 58, 66, 59, 51, 87, 37, 62, 53, 61, 65, 58, 72, 53, 73, 48, 71, 42, 60, 62, 76, 44, 56, 62, 46, 62, 92, 71, 65, 61, 63, 55, 69, 60, 55, 65, 50, 71, 51, 51, 57, 73, 80, 57, 78, 54, 50, 75, 56, 65, 71, 67, 60, 70, 86, 58, 73, 61, 51, 88, 60, 50, 57, 81, 55, 58, 65, 73, 54, 57, 68, 54, 56, 71, 60, 84, 73, 70, 80, 69, 84, 51, 55, 65, 71, 74, 54, 48, 70, 50, 59, 55, 84, 63, 86, 51, 63, 69, 60, 55, 54, 68, 56, 54, 61, 93, 52, 75, 47, 55, 66, 65, 70, 61, 69, 56, 71, 45, 79, 82, 53, 55, 73, 64, 61, 62, 68, 61, 53, 57, 97, 67, 63, 62, 97, 66, 73, 66, 78, 55, 61, 59, 64, 63, 70, 87, 67, 64, 81, 72, 80, 70, 42, 56, 56, 60, 72, 53, 74, 70, 56, 57, 65, 70, 72, 87, 65, 65, 46, 64, 61, 102, 103, 75, 83, 63, 56, 52, 50, 57, 71, 49, 73, 55, 59, 101, 59, 60, 62, 63, 56, 73, 62, 76, 53, 44, 70, 70, 78, 71, 54, 49, 61, 74, 89, 74, 89, 51, 49, 53, 49, 68, 58, 57, 64, 66, 75, 59, 48, 62, 77, 67, 75, 61, 50, 43, 62, 94, 113, 63, 52, 72, 83, 67, 70, 75, 86, 62, 55, 56, 83, 129, 99, 49, 49, 61, 65, 58, 57, 76, 71, 60, 50, 63, 70, 68, 67, 79, 65, 79, 52, 73, 62, 60, 46, 52, 51, 70, 77, 67, 67, 75, 53, 68, 69, 65, 54, 66, 63, 82, 58, 76, 70, 59, 49, 72, 61, 73, 49, 69, 80, 72, 89, 64, 65, 72, 68, 49, 62, 63, 71, 88, 51, 61, 70, 59, 70, 35, 65, 55, 60, 67, 87, 71, 95, 54, 68, 74, 87, 60, 79, 56, 88, 85, 61, 58, 77, 93, 47, 44, 50, 64, 75, 63, 63, 56, 53, 46, 67, 84, 70, 55, 55, 86, 46, 56, 83, 55, 60, 71, 57, 65, 81, 64, 67, 73, 63, 140, 50, 62, 55, 46, 81, 61, 62, 59, 73, 59, 79, 62, 72, 82, 97, 58, 77, 78, 64, 61, 89, 61, 55, 74, 68, 77, 74, 57, 61, 60, 72, 63, 64, 88, 75, 74, 72, 49, 57, 85, 55, 77, 46, 48, 69, 68, 96, 69, 56, 61, 71, 63, 56, 67, 86, 61, 72, 69, 67, 57, 60, 70, 57, 73, 70, 65, 70, 58, 61, 61, 59, 58, 41, 64, 65, 58, 67, 62, 32, 59, 65, 59, 51, 74, 74, 55, 75, 58, 68, 69, 94, 60, 77, 64, 72, 53, 56, 72, 58, 61, 87, 76, 66, 80, 55, 78, 65, 51, 66, 56, 53, 71, 47, 63, 80, 40, 66, 55, 59, 58, 80, 60, 60, 56, 48, 64, 48, 57, 56, 87, 71, 63, 51, 52, 71, 61, 82, 64, 112, 59, 64, 61, 74, 71, 59, 61, 88, 143, 71, 69, 58, 43, 110, 70, 106, 69, 48, 68, 77, 57, 62, 60, 64, 56, 81, 65, 65, 73, 49, 71, 64, 61, 73, 70, 62, 43, 71, 70, 84, 64, 52, 74, 48, 54, 57, 59, 67, 80, 60, 56, 55, 76, 60, 43, 66, 44, 64, 53, 64, 69, 63, 60, 69, 58, 54, 47, 60, 76, 50, 77, 50, 61, 55, 52, 73, 63, 66, 64, 61, 64, 68, 66, 73, 60, 70, 69, 49, 66, 61, 52, 65, 83, 72, 68, 51, 64, 74, 44, 107, 43, 62, 64, 59, 87, 78, 68, 68, 51, 94, 58, 57, 66, 76, 52, 59, 57, 51, 51, 64, 69, 96, 46, 74, 94, 85, 62, 78, 68, 68, 62, 49, 63, 63, 64, 76, 94, 65, 59, 44, 61, 80, 66, 63, 71, 56, 58, 61, 54, 71, 81, 62, 78, 52, 94, 73, 61, 40, 55, 72, 57, 75, 62, 74, 58, 69, 61, 78, 69, 96, 38, 71, 62, 66, 53, 54, 51, 60, 105, 53, 55, 69, 64, 58, 59, 103, 66, 66, 77, 69, 63, 75, 56, 79, 50, 59, 107, 64, 101, 103, 88, 66, 75, 64, 54, 75, 56, 58, 59, 82, 61, 49, 60, 52, 61, 49, 83, 82, 66, 50, 43, 77, 53, 61, 57, 70, 66, 66, 90, 69, 71, 116, 70, 68, 72, 64, 55, 51, 63, 54, 72, 74, 53, 46, 65, 59, 87, 62, 85, 67, 73, 134, 65, 84, 52, 64, 51, 85, 71, 53, 74, 72, 67, 67, 51, 68, 54, 52, 63, 61, 61, 77, 60, 58, 70, 52, 66, 90, 62, 93, 49, 57, 110, 63, 62, 93, 66, 70, 78, 77, 53, 58, 57, 65, 59, 88, 71, 66, 70, 41, 55, 81, 64, 55, 66, 62, 55, 67, 58, 66, 57, 65, 57, 54, 58, 49, 51, 76, 49, 70, 70, 73, 56, 76, 72, 60, 64, 61, 79, 57, 56, 65, 60, 82, 65, 61, 54, 57, 60, 94, 62, 53, 63, 70, 60, 77, 58, 46, 71, 60, 49, 57, 87, 65, 51, 66, 70, 63, 108, 56, 79, 70, 58, 74, 45, 56, 72, 102, 52, 66, 67, 80, 117, 67, 58, 72, 65, 71, 44, 78, 68, 66, 81, 121, 66, 40, 51, 61, 65, 51, 68, 67, 59, 89, 45, 61, 65, 57, 76, 65, 50, 60, 52, 58, 64, 79, 58, 55, 52, 72, 58, 75, 68, 49, 62, 60, 58, 58, 60, 57, 84, 62, 68, 69, 68, 52, 44, 70, 70, 75, 105, 71, 80, 52, 102, 69, 67, 69, 68, 95, 48, 63, 57, 59, 64, 62, 68, 61, 42, 51, 45, 64, 73, 58, 52, 129, 67, 52, 47, 72, 100, 62, 73, 75, 64, 99, 54, 75, 38, 95, 55, 80, 71, 57, 84, 60, 59, 90, 58, 76, 56, 96, 63, 63, 72, 55, 79, 67, 53, 68, 97, 66, 51, 60, 55, 53, 62, 69, 59, 52, 62, 67, 50, 66, 52, 53, 49, 55, 66, 107, 54, 59, 46, 67, 67, 108, 62, 62, 72, 89, 73, 49, 65, 90, 57, 58, 61, 66, 68, 68, 38, 69, 91, 47, 47, 64, 58, 60, 37, 66, 50, 61, 73, 58, 62, 71, 56, 58, 51, 65, 77, 77, 53, 58, 71, 50, 52, 62, 62, 71, 65, 58, 69, 56, 75, 50, 71, 78, 97, 96, 77, 78, 65, 52, 63, 47, 70, 63, 84, 56, 68, 72, 71, 70, 50, 43, 72, 65, 53, 39, 74, 80, 61, 63, 53, 57, 65, 67, 42, 60, 71, 54, 73, 68, 65, 73, 54, 82, 87, 72, 74, 71, 77, 71, 52, 56, 72, 64, 52, 58, 64, 63, 61, 56, 74, 61, 56, 73, 64, 52, 71, 64, 69, 54, 50, 55, 76, 59, 61, 61, 57, 68, 50, 64, 74, 70, 90, 59, 59, 92, 58, 65, 50, 55, 44, 48, 61, 76, 78, 64, 68, 77, 58, 58, 72, 58, 70, 76, 60, 63, 75, 48, 97, 78, 58, 63, 75, 72, 62, 53, 51, 63, 60, 66, 56, 54, 59, 74, 72, 64, 69, 58, 51, 60, 64, 47, 76, 57, 106, 78, 63, 51, 64, 49, 69, 68, 67, 81, 75, 77, 90, 53, 99, 63, 47, 58, 40, 56, 56, 60, 75, 54, 76, 69, 51, 61, 66, 60, 49, 63, 94, 74, 69, 92, 73, 60, 57, 73, 85, 55, 60, 63, 57, 64, 77, 51, 78, 75, 61, 66, 55, 52, 47, 55, 94, 74, 56, 69, 69, 85, 56, 71, 76, 80, 46, 62, 57, 62, 141, 110, 47, 59, 73, 46, 56, 58, 56, 57, 74, 61, 66, 62, 57, 64, 57, 62, 98, 62, 62, 58, 78, 60, 60, 60, 63, 59, 57, 82, 92, 56, 66, 63, 56, 64, 70, 65, 102, 61, 87, 73, 80, 53, 76, 58, 48, 57, 65, 80, 74, 92, 62, 66, 59, 78, 63, 58, 58, 59, 81, 76, 84, 63, 74, 69, 57, 62, 76, 46, 52, 67, 82, 89, 75, 70, 77, 72, 63, 53, 53, 89, 60, 41, 65, 80, 91, 84, 67, 61, 51, 49, 74, 70, 65, 62, 77, 94, 99, 59, 70, 61, 67, 49, 60, 76, 56, 54, 68, 54, 66, 62, 56, 57, 74, 64, 107, 74, 60, 58, 49, 81, 53, 54, 58, 79, 79, 72, 72, 73, 52, 75, 57, 66, 78, 66, 61, 70, 76, 89, 94, 74, 62, 67, 83, 55, 54, 78, 58, 52, 78, 75, 48, 78, 70, 90, 61, 51, 61, 64, 71, 70, 67, 74, 61, 69, 53, 58, 59, 98, 55, 88, 60, 46, 57, 64, 55, 68, 68, 63, 65, 53, 58, 72, 49, 59, 62, 57, 36, 64, 57, 58, 55, 54, 57, 44, 60, 54, 75, 56, 70, 58, 61, 54, 60, 56, 72, 107, 51, 75, 60, 55, 79, 53, 63, 61, 72, 67, 76, 65, 56, 48, 51, 67, 70, 58, 64, 62, 89, 69, 57, 79, 58, 56, 58, 63, 61, 77, 45, 65, 65, 57, 49, 59, 54, 61, 79, 68, 60, 79, 62, 79, 63, 77, 62, 68, 68, 40, 67, 74, 63, 54, 51, 56, 114, 62, 52, 78, 60, 77, 60, 72, 68, 58, 56, 75, 67, 79, 60, 49, 70, 57, 54, 53, 64, 52, 57, 63, 87, 71, 65, 67, 60, 55, 67, 88, 68, 65, 54, 58, 90, 88, 42, 64, 50, 65, 75, 63, 120, 73, 62, 59, 68, 69, 106, 110, 64, 62, 69, 57, 62, 63, 63, 105, 95, 73, 69, 102, 64, 45, 66, 59, 71, 59, 64, 77, 68, 52, 54, 94, 69, 82, 67, 74, 86, 68, 61, 59, 50, 65, 63, 81, 52, 78, 52, 51, 49, 71, 69, 59, 74, 71, 91, 75, 66, 59, 58, 56, 76, 64, 67, 91, 64, 54, 59, 70, 76, 68, 62, 64, 54, 65, 59, 57, 50, 67, 54, 54, 68, 61, 59, 55, 55, 47, 77, 56, 67, 81, 52, 69, 47, 64, 71, 61, 79, 83, 73, 91, 57, 53, 57, 70, 56, 52, 63, 45, 62, 65, 58, 68, 63, 47, 59, 60, 82, 58, 61, 57, 70, 70, 49, 64, 55, 79, 110, 50, 81, 68, 72, 68, 64, 50, 92, 69, 89, 58, 51, 57, 76, 54, 72, 83, 74, 55, 101, 74, 47, 53, 62, 63, 51, 77, 67, 53, 60, 60, 67, 51, 63, 66, 76, 79, 51, 71, 81, 91, 86, 58, 53, 74, 59, 67, 67, 55, 55, 75, 89, 89, 69, 47, 61, 72, 47, 52, 58, 74, 56, 69, 60, 66, 63, 67, 60, 55, 87, 53, 58, 50, 43, 68, 59, 51, 55, 74, 75, 51, 58, 61, 58, 61, 80, 93, 65, 69, 46, 70, 71, 65, 73, 71, 61, 70, 62, 49, 84, 86, 67, 57, 62, 74, 60, 88, 55, 49, 68, 68, 42, 61, 55, 61, 55, 61, 68, 53, 70, 51, 62, 63, 55, 70, 62, 65, 54, 49, 53, 68, 64, 84, 59, 68, 75, 62, 73, 51, 80, 67, 63, 61, 75, 63, 42, 64, 74, 59, 66, 57, 70, 94, 71, 79, 67, 65, 73, 55, 55, 104, 61, 71, 71, 58, 74, 71, 64, 74, 57, 64, 60, 78, 53, 67, 65, 73, 60, 57, 103, 62, 73, 62, 66, 98, 77, 57, 84, 58, 64, 89, 47, 69, 106, 72, 58, 59, 58, 46, 82, 61, 59, 54, 71, 121, 66, 67, 69, 71, 66, 117, 77, 105, 68, 83, 65, 73, 92, 64, 71, 73, 44, 48, 90, 65, 92, 68, 76, 66, 74, 58, 54, 54, 59, 66, 69, 67, 63, 64, 60, 59, 70, 86, 69, 60, 56, 76, 60, 50, 58, 57, 80, 57, 65, 76, 61, 70, 62, 63, 50, 63, 73, 80, 81, 98, 67, 64, 55, 77, 65, 54, 55, 70, 61, 62, 53, 53, 66, 63, 72, 74, 63, 90, 133, 45, 66, 89, 67, 72, 66, 56, 52, 68, 74, 67, 55, 58, 55, 69, 34, 51, 61, 58, 70, 64, 66, 53, 58, 70, 58, 61, 79, 79, 99, 60, 82, 67, 60, 60, 78, 75, 71, 66, 53, 59, 59, 59, 55, 62, 86, 69, 56, 51, 48, 64, 61, 123, 69, 75, 51, 71, 56, 58, 58, 57, 62, 60, 64, 66, 60, 69, 59, 72, 69, 63, 65, 51, 42, 79, 62, 65, 76, 60, 75, 59, 49, 64, 48, 69, 75, 76, 56, 59, 49, 57, 73, 65, 59, 54, 56, 66, 56, 65, 60, 53, 96, 60, 55, 86, 65, 105, 56, 62, 69, 67, 52, 61, 84, 69, 64, 72, 65, 69, 51, 63, 62, 77, 55, 65, 47, 69, 48, 82, 71, 65, 64, 71, 67, 72, 69, 51, 77, 57, 41, 59, 72, 83, 53, 80, 62, 69, 83, 86, 77, 64, 69, 84, 66, 59, 60, 50, 82, 99, 53, 54, 71, 60, 60, 58, 62, 74, 62, 67, 49, 54, 79, 74, 72, 56, 48, 55, 70, 71, 62, 71, 79, 54, 56, 60, 79, 47, 53, 51, 55, 63, 88, 52, 63, 68, 78, 60, 61, 97, 72, 70, 80, 80, 59, 72, 59, 59, 58, 64, 34, 69, 51, 63, 60, 44, 60, 66, 53, 65, 64, 78, 62, 36, 67, 68, 59, 60, 56, 48, 72, 68, 86, 117, 72, 63, 68, 105, 66, 78, 61, 66, 74, 56, 75, 58, 64, 65, 68, 48, 75, 70, 68, 54, 70, 68, 46, 76, 93, 48, 69, 50, 64, 77, 92, 69, 64, 59, 72, 66, 55, 89, 74, 65, 49, 66, 65, 57, 61, 69, 78, 65, 55, 67, 84, 107, 62, 89, 66, 73, 80, 71, 62, 83, 56, 61, 55, 61, 44, 67, 49, 106, 50, 59, 67, 52, 141, 71, 54, 63, 67, 62, 66, 89, 68, 70, 60, 53, 85, 68, 70, 66, 76, 70, 55, 53, 53, 61, 57, 48, 51, 58, 55, 120, 58, 75, 55, 55, 69, 43, 59, 60, 57, 51, 80, 54, 71, 61, 67, 54, 57, 72, 54, 49, 59, 59, 70, 95, 51, 96, 59, 79, 65, 54, 62, 53, 54, 61, 52, 52, 56, 80, 64, 73, 72, 84, 59, 75, 66, 68, 59, 64, 65, 69, 54, 70, 61, 44, 73, 65, 52, 67, 57, 67, 52, 53, 47, 77, 71, 59, 64, 56, 56, 79, 60, 71, 58, 58, 60, 69, 61, 73, 73, 71, 66, 59, 63, 78, 57, 84, 69, 63, 81, 61, 72, 60, 63, 70, 60, 93, 76, 81, 66, 84, 74, 58, 47, 61, 65, 60, 60, 58, 55, 108, 68, 70, 76, 72, 68, 67, 74, 68, 80, 50, 68, 62, 113, 67, 65, 51, 67, 65, 65, 62, 54, 68, 64, 73, 63, 72, 53, 69, 67, 61, 82, 90, 53, 110, 87, 66, 88, 71, 59, 65, 71, 81, 51, 89, 67, 58, 79, 75, 66, 52, 96, 61, 71, 67, 63, 58, 62, 60, 57, 77, 66, 57, 46, 35, 76, 96, 65, 77, 52, 76, 98, 53, 68, 59, 56, 56, 70, 62, 52, 76, 52, 54, 98, 82, 56, 53, 54, 57, 61, 49, 54, 80, 57, 68, 65, 48, 59, 70, 74, 72, 57, 57, 71, 51, 77, 45, 50, 51, 61, 49, 76, 97, 71, 66, 59, 114, 58, 64, 55, 69, 82, 66, 59, 55, 73, 75, 128, 59, 72, 51, 84, 77, 64, 76, 70, 59, 62, 73, 65, 56, 56, 65, 60, 54, 51, 56, 89, 61, 79, 71, 72, 104, 65, 79, 50, 59, 50, 61, 61, 62, 57, 68, 47, 58, 74, 104, 71, 71, 66, 64, 97, 76, 69, 77, 57, 46, 103, 94, 83, 82, 55, 104, 49, 63, 56, 69, 52, 68, 44, 65, 56, 76, 76, 77, 75, 51, 74, 68, 67, 67, 70, 55, 80, 72, 77, 47, 53, 55, 66, 73, 82, 80, 74, 49, 59, 62, 61, 98, 57, 70, 65, 58, 47, 69, 75, 53, 75, 72, 70, 52, 65, 87, 62, 85, 70, 63, 61, 65, 69, 80, 67, 64, 43, 73, 111, 59, 57, 54, 41, 62, 67, 88, 60, 56, 69, 67, 72, 51, 60, 66, 74, 85, 84, 97, 59, 60, 88, 77, 56, 67, 70, 64, 90, 72, 50, 87, 65, 47, 50, 83, 57, 64, 71, 96, 65, 48, 52, 72, 82, 65, 59, 56, 57, 63, 61, 45, 59, 49, 64, 64, 78, 101, 70, 60, 55, 56, 89, 51, 64, 64, 73, 50, 81, 70, 57, 55, 74, 67, 62, 87, 48, 69, 56, 53, 89, 59, 57, 58, 61, 67, 57, 48, 73, 51, 58, 83, 66, 70, 51, 48, 55, 74, 68, 77, 48, 104, 63, 69, 54, 79, 57, 79, 64, 50, 69, 69, 54, 61, 62, 79, 59, 75, 57, 56, 99, 61, 93, 62, 60, 41, 93, 65, 61, 79, 62, 51, 93, 75, 66, 55, 120, 85, 67, 76, 60, 61, 68, 51, 62, 77, 78, 88, 70, 70, 55, 99, 85, 61, 64, 68, 93, 105, 57, 113, 84, 59, 69, 62, 97, 64, 66, 50, 53, 105, 64, 65, 66, 59, 54, 73, 47, 55, 90, 59, 64, 70, 48, 52, 44, 75, 53, 57, 48, 61, 57, 51, 66, 47, 62, 50, 60, 56, 81, 48, 47, 74, 48, 70, 66, 55, 61, 90, 47, 75, 58, 64, 45, 75, 61, 84, 62, 60, 55, 72, 60, 68, 68, 63, 60, 45, 89, 81, 84, 53, 89, 71, 57, 62, 59, 52, 68, 58, 64, 83, 97, 59, 63, 58, 58, 71, 55, 37, 64, 58, 46, 60, 69, 48, 62, 38, 92, 69, 74, 93, 79, 61, 52, 101, 62, 65, 60, 80, 74, 68, 66, 69, 55, 69, 53, 65, 61, 53, 65, 45, 47, 64, 41, 56, 62, 50, 65, 55, 52, 63, 72, 57, 68, 61, 54, 52, 57, 48, 80, 56, 119, 54, 41, 65, 79, 50, 96, 51, 86, 94, 61, 67, 61, 66, 64, 62, 58, 59, 52, 99, 81, 77, 71, 70, 43, 70, 57, 54, 61, 76, 59, 62, 54, 101, 80, 48, 107, 68, 66, 80, 62, 38, 64, 53, 51, 77, 64, 57, 75, 69, 65, 54, 58, 61, 51, 59, 68, 65, 53, 115, 64, 47, 44, 57, 68, 59, 61, 64, 60, 73, 64, 59, 58, 78, 48, 65, 56, 89, 68, 82, 47, 62, 70, 81, 60, 62, 60, 60, 54, 119, 81, 99, 83, 68, 65, 64, 73, 65, 86, 99, 48, 55, 113, 58, 43, 69, 62, 67, 54, 45, 64, 49, 75, 49, 41, 49, 63, 63, 74, 64, 64, 49, 83, 68, 98, 76, 65, 61, 65, 55, 56, 105, 51, 54, 54, 83, 83, 62, 86, 58, 49, 53, 75, 76, 66, 65, 67, 54, 67, 63, 46, 60, 58, 54, 58, 48, 66, 52, 113, 63, 54, 57, 61, 52, 72, 49, 61, 62, 86, 62, 68, 77, 84, 96, 50, 53, 92, 60, 67, 64, 55, 65, 62, 58, 52, 71, 57, 77, 65, 71, 60, 67, 74, 67, 74, 90, 61, 69, 62, 91, 73, 68, 71, 58, 60, 57, 61, 45, 55, 74, 58, 42, 52, 75, 81, 67, 73, 71, 57, 59, 63, 70, 76, 60, 79, 77, 81, 49, 53, 71, 63, 85, 53, 64, 64, 55, 55, 71, 66, 59, 51, 47, 87, 64, 63, 58, 69, 57, 52, 88, 69, 72, 67, 49, 56, 59, 73, 53, 70, 96, 78, 57, 60, 64, 74, 50, 71, 60, 80, 93, 54, 60, 80, 76, 77, 67, 41, 97, 44, 58, 53, 74, 103, 45, 49, 52, 43, 56, 56, 81, 58, 77, 58, 68, 59, 60, 58, 57, 61, 63, 56, 70, 67, 62, 86, 67, 74, 72, 55, 80, 81, 75, 80, 90, 83, 61, 82, 69, 65, 66, 66, 97, 68, 58, 48, 55, 81, 54, 89, 68, 64, 73, 92, 96, 63, 63, 59, 44, 68, 65, 87, 79, 93, 118, 73, 56, 55, 68, 54, 52, 39, 67, 58, 98, 48, 58, 69, 55, 59, 66, 64, 52, 85, 62, 74, 86, 74, 57, 69, 79, 46, 73, 82, 66, 58, 95, 65, 70, 65, 60, 68, 47, 100, 54, 53, 55, 66, 69, 44, 51, 43, 59, 85, 52, 54, 46, 39, 91, 56, 64, 56, 68, 77, 87, 78, 68, 88, 59, 55, 50, 54, 56, 65, 73, 76, 66, 51, 72, 64, 74, 57, 48, 79, 54, 59, 82, 51, 72, 61, 75, 54, 79, 79, 59, 71, 81, 53, 53, 48, 68, 70, 95, 47, 50, 55, 48, 63, 91, 84, 53, 75, 63, 67, 66, 56, 59, 69, 63, 62, 61, 79, 81, 68, 114, 88, 61, 77, 57, 57, 56, 54, 70, 53, 91, 58, 45, 85, 61, 56, 91, 57, 104, 49, 55, 59, 53, 73, 61, 76, 78, 89, 71, 88, 57, 90, 44, 57, 66, 57, 62, 48, 58, 75, 58, 58, 59, 64, 64, 64, 55, 58, 91, 68, 63, 69, 56, 61, 52, 71, 109, 61, 65, 59, 59, 49, 67, 40, 52, 42, 72, 75, 71, 66, 58, 44, 76, 60, 104, 58, 63, 62, 56, 78, 86, 67, 91, 61, 52, 67, 85, 57, 88, 61, 46, 54, 70, 59, 53, 71, 91, 67, 57, 74, 53, 54, 83, 74, 43, 74, 76, 64, 76, 53, 64, 52, 49, 70, 68, 58, 66, 75, 67, 57, 71, 90, 61, 59, 64, 59, 66, 73, 55, 66, 51, 68, 78, 58, 62, 66, 67, 56, 52, 47, 54, 73, 98, 129, 56, 71, 81, 72, 83, 80, 76, 46, 67, 52, 91, 56, 69, 71, 55, 62, 56, 59, 94, 75, 66, 57, 57, 56, 57, 90, 45, 58, 57, 99, 67, 67, 77, 49, 64, 70, 70, 70, 67, 58, 55, 54, 63, 98, 56, 61, 84, 55, 57, 60, 68, 56, 59, 66, 81, 55, 70, 54, 61, 76, 57, 54, 53, 56, 52, 60, 57, 53, 56, 58, 52, 48, 67, 67, 67, 63, 62, 74, 68, 60, 93, 62, 77, 60, 94, 70, 42, 64, 60, 59, 56, 65, 69, 58, 64, 54, 65, 62, 64, 65, 93, 43, 55, 73, 52, 60, 65, 69, 64, 61, 74, 58, 68, 63, 69, 58, 47, 75, 111, 74, 74, 44, 74, 78, 65, 53, 61, 70, 61, 97, 53, 57, 44, 67, 67, 61, 53, 61, 72, 77, 67, 74, 56, 65, 58, 88, 60, 100, 76, 68, 63, 54, 102, 61, 59, 81, 70, 63, 68, 88, 82, 60, 50, 54, 74, 56, 89, 75, 52, 89, 76, 63, 58, 65, 75, 65, 38, 90, 74, 43, 66, 72, 58, 83, 64, 64, 51, 61, 65, 77, 70, 84, 76, 61, 68, 58, 62, 67, 44, 62, 63, 55, 45, 74, 61, 53, 99, 61, 76, 55, 63, 67, 56, 47, 89, 65, 76, 64, 81, 52, 71, 62, 58, 67, 68, 74, 74, 59, 67, 59, 62, 66, 83, 59, 64, 56, 62, 44, 60, 52, 87, 47, 71, 68, 82, 55, 103, 50, 72, 58, 73, 73, 65, 57, 79, 66, 86, 121, 58, 85, 53, 54, 56, 61, 87, 56, 54, 57, 57, 76, 76, 73, 61, 59, 58, 70, 69, 69, 47, 71, 72, 67, 69, 58, 58, 53, 86, 77, 64, 63, 74, 56, 64, 68, 76, 60, 70, 66, 70, 42, 56, 76, 78, 52, 57, 64, 69, 53, 45, 89, 81, 63, 44, 51, 60, 77, 49, 67, 74, 67, 62, 57, 43, 58, 66, 46, 58, 61, 53, 74, 58, 42, 66, 54, 61, 72, 56, 73, 77, 45, 81, 60, 55, 83, 70, 69, 62, 45, 67, 124, 67, 53, 53, 75, 64, 58, 65, 36, 62, 54, 82, 50, 48, 107, 77, 49, 65, 58, 55, 55, 59, 57, 65, 37, 97, 48, 73, 43, 54, 54, 127, 69, 63, 48, 133, 124, 62, 93, 65, 67, 57, 63, 59, 38, 72, 56, 61, 57, 61, 62, 68, 67, 54, 63, 63, 52, 68, 60, 74, 74, 52, 88, 89, 67, 73, 62, 56, 83, 57, 41, 65, 67, 64, 69, 61, 81, 37, 73, 56, 72, 82, 77, 76, 54, 98, 52, 72, 51, 69, 61, 44, 54, 65, 69, 82, 52, 98, 77, 74, 60, 79, 74, 73, 48, 74, 69, 75, 63, 69, 53, 64, 75, 52, 69, 65, 53, 53, 65, 52, 80, 47, 78, 62, 61, 80, 59, 84, 56, 51, 61, 52, 84, 51, 55, 62, 50, 80, 59, 72, 61, 68, 58, 52, 55, 56, 71, 42, 72, 39, 83, 52, 53, 62, 51, 78, 50, 111, 67, 109, 108, 42, 60, 49, 94, 97, 64, 70, 50, 65, 52, 58, 54, 54, 55, 63, 64, 49, 74, 76, 65, 49, 60, 47, 45, 57, 50, 51, 72, 65, 67, 74, 69, 82, 63, 51, 70, 60, 60, 69, 73, 60, 59, 60, 60, 63, 74, 64, 56, 60, 69, 84, 54, 55, 87, 56, 81, 58, 76, 43, 58, 62, 66, 59, 68, 91, 64, 66, 44, 67, 57, 80, 54, 61, 60, 63, 70, 50, 71, 30, 74, 82, 64, 67, 70, 66, 52, 82, 70, 55, 65, 51, 72, 49, 45, 46, 70, 75, 52, 69, 61, 59, 51, 110, 56, 78, 62, 74, 72, 48, 67, 78, 68, 81, 75, 54, 65, 74, 58, 73, 42, 60, 54, 50, 65, 83, 52, 69, 109, 60, 66, 63, 69, 60, 76, 69, 74, 69, 75, 58, 61, 65, 56, 61, 63, 78, 69, 57, 77, 51, 51, 70, 58, 71, 52, 66, 81, 71, 54, 66, 76, 82, 52, 74, 100, 57, 62, 97, 43, 61, 49, 55, 65, 86, 69, 70, 69, 96, 96, 66, 93, 60, 65, 83, 71, 74, 68, 69, 55, 75, 37, 95, 50, 59, 66, 59, 55, 64, 72, 66, 68, 68, 65, 72, 84, 78, 64, 51, 92, 62, 59, 63, 68, 83, 70, 42, 71, 66, 70, 76, 89, 66, 82, 59, 94, 78, 70, 55, 58, 54, 60, 81, 66, 56, 108, 87, 70, 64, 63, 60, 47, 77, 59, 58, 75, 59, 69, 55, 78, 68, 50, 114, 68, 54, 63, 63, 81, 64, 68, 58, 82, 65, 63, 87, 60, 49, 56, 66, 65, 63, 70, 58, 70, 49, 53, 72, 56, 74, 60, 74, 84, 60, 73, 80, 67, 97, 62, 71, 62, 95, 77, 60, 70, 59, 91, 55, 63, 57, 58, 59, 68, 61, 40, 92, 53, 78, 71, 55, 77, 69, 80, 64, 75, 79, 64, 49, 92, 52, 61, 57, 42, 66, 51, 58, 75, 53, 63, 60, 76, 79, 73, 44, 67, 87, 67, 66, 61, 54, 57, 71, 61, 53, 78, 45, 50, 57, 71, 71, 80, 129, 58, 63, 73, 62, 59, 75, 66, 75, 53, 54, 75, 67, 58, 77, 71, 53, 65, 57, 70, 71, 67, 65, 51, 63, 100, 59, 65, 67, 57, 77, 45, 85, 51, 51, 61, 63, 78, 84, 80, 108, 59, 83, 52, 56, 64, 63, 61, 69, 72, 77, 65, 65, 47, 42, 66, 81, 71, 67, 50, 75, 116, 77, 59, 72, 50, 59, 66, 67, 54, 55, 59, 61, 78, 65, 92, 72, 84, 40, 73, 72, 72, 54, 77, 56, 105, 65, 55, 65, 70, 64, 63, 68, 52, 56, 55, 67, 94, 44, 93, 54, 49, 87, 65, 84, 76, 71, 52, 62, 83, 69, 73, 67, 51, 48, 70, 87, 58, 71, 64, 69, 50, 78, 70, 60, 82, 54, 53, 61, 72, 72, 57, 65, 53, 84, 56, 124, 60, 84, 46, 65, 62, 82, 58, 75, 53, 53, 60, 56, 73, 91, 42, 81, 43, 83, 67, 79, 64, 50, 62, 39, 58, 69, 88, 62, 119, 81, 47, 57, 81, 33, 68, 91, 71, 39, 74, 62, 48, 70, 63, 63, 55, 50, 69, 70, 106, 39, 80, 68, 99, 95, 50, 86, 67, 56, 61, 53, 58, 46, 64, 71, 67, 83, 75, 78, 84, 49, 67, 53, 99, 65, 74, 80, 62, 64, 51, 68, 62, 76, 30, 89, 51, 52, 55, 49, 71, 62, 46, 134, 78, 68, 74, 77, 51, 66, 65, 75, 59, 55, 57, 61, 63, 42, 54, 67, 85, 55, 95, 77, 77, 66, 71, 71, 51, 53, 62, 83, 89, 81, 57, 77, 61, 58, 73, 68, 108, 54, 62, 64, 101, 69, 54, 60, 35, 67, 63, 75, 37, 87, 83, 49, 67, 71, 74, 59, 57, 60, 58, 59, 56, 61, 77, 54, 79, 69, 72, 58, 65, 44, 56, 62, 49, 63, 35, 49, 85, 74, 70, 49, 64, 79, 89, 66, 65, 86, 47, 72, 48, 73, 58, 57, 67, 61, 58, 57, 56, 58, 62, 67, 70, 54, 66, 87, 56, 71, 69, 56, 59, 68, 33, 85, 66, 82, 60, 70, 101, 75, 51, 55, 62, 61, 59, 109, 57, 74, 89, 82, 59, 57, 61, 72, 62, 66, 68, 66, 61, 69, 59, 66, 74, 63, 79, 86, 45, 80, 69, 78, 69, 61, 34, 92, 63, 63, 60, 96, 53, 66, 55, 52, 70, 101, 64, 73, 83, 70, 58, 61, 69, 97, 59, 68, 56, 43, 69, 49, 72, 57, 82, 63, 58, 70, 61, 111, 66, 74, 90, 51, 40, 81, 89, 51, 41, 62, 95, 46, 52, 75, 46, 52, 63, 70, 54, 71, 68, 57, 52, 60, 41, 70, 89, 109, 55, 38, 86, 55, 67, 92, 52, 49, 50, 70, 66, 69, 58, 45, 73, 60, 58, 70, 66, 61, 58, 78, 50, 83, 93, 59, 47, 47, 62, 50, 84, 54, 71, 53, 58, 65, 65, 66, 64, 55, 93, 79, 67, 67, 58, 86, 56, 55, 61, 75, 59, 70, 42, 72, 58, 107, 68, 56, 68, 80, 56, 51, 76, 66, 74, 68, 51, 56, 103, 66, 73, 48, 53, 62, 121, 53, 93, 41, 72, 46, 76, 70, 58, 60, 67, 60, 64, 50, 70, 76, 55, 53, 65, 76, 62, 54, 62, 80, 102, 95, 57, 76, 76, 63, 63, 62, 62, 92, 65, 105, 40, 58, 76, 89, 52, 75, 64, 53, 76, 72, 53, 70, 65, 68, 74, 67, 67, 57, 61, 63, 46, 69, 85, 73, 49, 69, 66, 58, 78, 56, 58, 57, 73, 65, 55, 60, 117, 67, 88, 71, 74, 50, 55, 53, 69, 40, 65, 47, 61, 57, 70, 49, 57, 74, 92, 59, 52, 51, 57, 81, 74, 89, 62, 81, 54, 89, 65, 48, 40, 72, 67, 89, 38, 70, 84, 60, 54, 57, 55, 68, 83, 54, 72, 107, 51, 59, 64, 62, 74, 80, 62, 105, 54, 43, 62, 46, 114, 100, 70, 55, 37, 91, 65, 72, 74, 61, 61, 36, 50, 90, 60, 48, 47, 84, 58, 75, 61, 74, 70, 53, 50, 129, 64, 72, 51, 85, 46, 55, 58, 96, 62, 85, 58, 111, 65, 68, 48, 61, 72, 63, 63, 56, 69, 79, 66, 74, 60, 61, 71, 66, 57, 68, 72, 44, 53, 52, 69, 81, 77, 71, 72, 62, 61, 102, 56, 53, 65, 62, 59, 51, 66, 55, 81, 48, 46, 68, 66, 67, 69, 61, 49, 51, 80, 67, 73, 88, 68, 83, 64, 77, 62, 48, 61, 41, 59, 58, 88, 50, 51, 66, 76, 61, 89, 84, 76, 77, 59, 59, 58, 89, 41, 82, 72, 68, 79, 69, 102, 64, 74, 72, 65, 74, 61, 45, 75, 71, 56, 80, 65, 61, 89, 93, 71, 68, 61, 71, 68, 44, 57, 81, 67, 58, 79, 71, 68, 87, 65, 60, 50, 73, 63, 51, 69, 57, 77, 76, 60, 79, 60, 66, 57, 50, 65, 68, 60, 65, 81, 66, 52, 65, 53, 62, 62, 56, 49, 84, 62, 70, 49, 66, 67, 67, 74, 66, 56, 45, 53, 71, 49, 63, 60, 68, 60, 64, 62, 50, 79, 63, 118, 83, 63, 77, 58, 63, 69, 57, 72, 54, 55, 57, 84, 75, 60, 60, 64, 87, 84, 56, 92, 82, 51, 52, 45, 63, 61, 61, 55, 35, 53, 61, 79, 76, 81, 53, 72, 54, 40, 62, 66, 62, 52, 47, 36, 67, 43, 53, 48, 59, 65, 95, 57, 71, 65, 109, 55, 30, 57, 44, 76, 49, 90, 65, 76, 38, 41, 62, 58, 64, 71, 49, 50, 50, 77, 84, 97, 95, 62, 90, 82, 41, 65, 52, 54, 64, 70, 48, 71, 53, 73, 54, 60, 51, 65, 63, 57, 71, 87, 63, 63, 63, 79, 67, 71, 57, 74, 54, 66, 71, 89, 44, 63, 63, 81, 73, 67, 60, 54, 78, 57, 64, 63, 50, 68, 74, 55, 61, 80, 71, 65, 74, 66, 54, 61, 64, 57, 60, 87, 110, 79, 74, 54, 71, 51, 65, 72, 63, 56, 65, 78, 65, 75, 54, 49, 56, 67, 61, 67, 61, 66, 94, 40, 73, 61, 96, 58, 75, 68, 76, 61, 60, 58, 51, 56, 58, 78, 68, 60, 71, 60, 81, 48, 62, 81, 64, 69, 63, 56, 80, 73, 58, 81, 59, 58, 65, 63, 74, 60, 55, 85, 61, 71, 80, 77, 63, 104, 92, 66, 44, 54, 44, 57, 54, 73, 83, 54, 58, 50, 66, 66, 62, 70, 54, 55, 57, 87, 63, 75, 100, 60, 69, 55, 59, 60, 62, 59, 41, 49, 68, 62, 57, 63, 61, 64, 54, 56, 59, 74, 56, 74, 78, 69, 50, 53, 58, 64, 54, 69, 53, 74, 79, 65, 48, 42, 55, 64, 57, 51, 76, 65, 78, 91, 72, 74, 63, 62, 68, 58, 52, 59, 68, 62, 75, 66, 60, 97, 89, 81, 51, 61, 49, 52, 63, 59, 50, 65, 61, 47, 50, 56, 77, 70, 62, 58, 71, 55, 72, 56, 65, 55, 62, 54, 67, 73, 62, 70, 70, 84, 50, 68, 63, 71, 58, 61, 79, 54, 88, 77, 72, 61, 68, 51, 56, 70, 56, 51, 68, 77, 63, 115, 66, 50, 62, 59, 73, 67, 103, 61, 58, 76, 76, 71, 63, 68, 62, 59, 60, 55, 61, 49, 83, 79, 71, 69, 55, 61, 81, 66, 58, 74, 69, 72, 70, 66, 84, 97, 57, 52, 73, 94, 69, 62, 61, 95, 51, 56, 61, 59, 73, 86, 51, 51, 75, 69, 76, 102, 49, 68, 71, 58, 66, 61, 118, 66, 58, 54, 52, 56, 74, 64, 72, 68, 70, 57, 60, 63, 59, 93, 90, 95, 75, 78, 79, 78, 77, 66, 67, 74, 57, 66, 95, 61, 73, 62, 53, 61, 90, 72, 62, 56, 88, 58, 52, 85, 49, 67, 71, 77, 65, 61, 67, 73, 65, 50, 70, 56, 79, 56, 59, 56, 76, 62, 82, 57, 47, 74, 95, 54, 63, 74, 67, 68, 49, 47, 62, 62, 58, 82, 51, 68, 63, 63, 48, 80, 56, 61, 62, 63, 44, 56, 57, 72, 60, 71, 50, 65, 59, 76, 65, 74, 64, 68, 72, 60, 53, 61, 79, 60, 57, 118, 70, 51, 73, 65, 75, 51, 64, 62, 71, 82, 74, 67, 76, 68, 54, 66, 86, 68, 53, 106, 44, 92, 51, 61, 73, 64, 71, 70, 62, 58, 64, 66, 59, 40, 51, 54, 80, 76, 84, 75, 93, 74, 92, 58, 114, 62, 54, 58, 45, 63, 57, 59, 75, 57, 70, 75, 64, 39, 77, 55, 90, 56, 85, 69, 59, 52, 53, 67, 66, 74, 67, 66, 61, 59, 46, 54, 49, 68, 87, 79, 48, 66, 61, 72, 64, 61, 86, 87, 66, 57, 53, 67, 61, 61, 64, 80, 111, 61, 80, 58, 73, 88, 45, 86, 43, 65, 69, 63, 56, 68, 72, 60, 69, 56, 67, 66, 77, 74, 54, 74, 79, 60, 62, 69, 75, 75, 71, 63, 64, 58, 59, 58, 74, 42, 63, 84, 82, 75, 49, 83, 69, 51, 63, 69, 60, 85, 65, 62, 63, 77, 54, 66, 57, 95, 79, 57, 58, 43, 58, 63, 52, 54, 63, 80, 67, 59, 65, 63, 61, 64, 61, 66, 77, 60, 47, 47, 74, 56, 51, 84, 64, 54, 57, 81, 73, 88, 71, 73, 80, 56, 75, 62, 55, 115, 50, 90, 80, 74, 66, 67, 50, 69, 43, 96, 114, 89, 77, 53, 71, 84, 49, 67, 97, 67, 113, 45, 51, 84, 71, 59, 58, 81, 77, 53, 75, 74, 66, 63, 58, 63, 57, 65, 59, 78, 62, 59, 80, 84, 62, 71, 61, 55, 54, 81, 60, 66, 58, 57, 60, 71, 62, 70, 72, 71, 62, 93, 51, 63, 62, 55, 105, 66, 75, 49, 55, 60, 70, 42, 55, 73, 45, 67, 74, 66, 78, 61, 55, 54, 93, 79, 74, 63, 99, 45, 50, 72, 78, 53, 70, 54, 57, 50, 72, 80, 51, 90, 60, 84, 82, 87, 54, 58, 65, 77, 71, 70, 38, 58, 64, 71, 75, 82, 55, 64, 73, 57, 54, 63, 96, 46, 82, 57, 50, 60, 45, 65, 62, 69, 73, 67, 78, 72, 53, 69, 63, 61, 120, 68, 94, 40, 50, 58, 61, 53, 49, 68, 55, 65, 79, 45, 71, 67, 80, 63, 60, 58, 45, 65, 49, 60, 73, 78, 54, 70, 47, 54, 55, 56, 58, 58, 65, 72, 64, 45, 47, 74, 65, 51, 87, 61, 66, 65, 70, 63, 50, 57, 46, 70, 63, 61, 88, 73, 58, 79, 64, 58, 49, 53, 71, 63, 66, 52, 49, 74, 91, 63, 55, 72, 53, 78, 57, 71, 73, 62, 65, 67, 90, 72, 54, 63, 81, 53, 75, 51, 79, 54, 124, 79, 47, 52, 71, 98, 61, 80, 47, 60, 72, 87, 67, 55, 76, 69, 71, 90, 56, 73, 54, 60, 58, 65, 83, 72, 97, 50, 100, 57, 73, 55, 75, 75, 63, 59, 56, 66, 58, 50, 67, 50, 73, 66, 66, 56, 70, 40, 70, 66, 63, 78, 82, 57, 69, 53, 93, 67, 61, 64, 69, 48, 49, 64, 73, 66, 79, 60, 49, 97, 54, 57, 58, 60, 57, 76, 82, 83, 58, 56, 51, 50, 71, 64, 67, 58, 77, 72, 69, 59, 80, 46, 72, 56, 70, 81, 96, 68, 66, 86, 58, 61, 52, 44, 93, 86, 67, 75, 50, 78, 67, 73, 51, 48, 60, 91, 75, 83, 63, 57, 60, 102, 73, 60, 75, 63, 89, 63, 71, 73, 75, 74, 65, 63, 80, 53, 58, 52, 54, 72, 57, 65, 59, 60, 107, 65, 53, 97, 57, 61, 65, 48, 56, 60, 82, 68, 59, 64, 71, 49, 61, 67, 80, 118, 78, 66, 79, 70, 49, 74, 65, 73, 63, 64, 45, 44, 66, 67, 59, 67, 58, 55, 54, 62, 71, 72, 47, 60, 62, 64, 81, 77, 74, 74, 52, 54, 81, 85, 65, 70, 38, 41, 81, 63, 89, 67, 78, 60, 67, 65, 58, 58, 53, 100, 42, 61, 64, 50, 72, 61, 70, 86, 63, 66, 54, 49, 41, 55, 66, 53, 71, 78, 58, 63, 54, 72, 67, 73, 61, 60, 70, 63, 63, 50, 59, 78, 56, 72, 77, 65, 79, 66, 64, 57, 68, 64, 71, 62, 52, 79, 70, 53, 112, 55, 88, 65, 79, 54, 48, 65, 61, 57, 75, 78, 84, 81, 91, 55, 80, 42, 66, 60, 52, 61, 65, 46, 47, 60, 44, 72, 59, 55, 70, 72, 64, 56, 48, 80, 68, 54, 109, 66, 74, 75, 59, 79, 50, 63, 51, 90, 64, 53, 62, 87, 62, 63, 47, 65, 50, 57, 63, 57, 52, 52, 76, 64, 40, 48, 58, 75, 53, 54, 51, 44, 95, 74, 66, 76, 65, 53, 65, 67, 67, 69, 93, 69, 70, 75, 55, 58, 65, 77, 51, 56, 74, 51, 67, 49, 50, 50, 60, 79, 67, 48, 65, 73, 55, 69, 69, 57, 64, 88, 65, 60, 48, 49, 47, 52, 59, 50, 102, 55, 75, 52, 66, 64, 58, 60, 63, 61, 67, 59, 52, 57, 59, 63, 91, 75, 93, 61, 74, 60, 62, 66, 59, 65, 43, 41, 43, 59, 73, 98, 117, 49, 67, 66, 109, 65, 82, 48, 52, 88, 53, 54, 69, 66, 83, 108, 64, 79, 64, 57, 69, 84, 54, 53, 68, 70, 74, 73, 71, 70, 57, 78, 58, 71, 81, 92, 49, 54, 78, 72, 77, 55, 44, 70, 70, 75, 55, 84, 57, 60, 45, 64, 70, 67, 52, 83, 43, 63, 63, 82, 52, 66, 54, 75, 68, 63, 85, 56, 59, 63, 94, 74, 65, 48, 72, 52, 64, 66, 82, 71, 70, 57, 66, 72, 39, 70, 99, 60, 100, 66, 75, 61, 64, 61, 59, 67, 63, 54, 67, 66, 71, 71, 64, 71, 40, 50, 108, 58, 79, 50, 66, 58, 72, 62, 61, 101, 59, 66, 46, 67, 71, 59, 74, 69, 50, 70, 70, 73, 64, 83, 63, 47, 64, 107, 43, 57, 81, 79, 54, 65, 79, 63, 58, 76, 66, 70, 72, 81, 54, 60, 90, 65, 71, 53, 69, 84, 59, 51, 63, 79, 61, 60, 70, 72, 79, 58, 50, 68, 80, 38, 76, 71, 71, 42, 62, 52, 75, 65, 61, 79, 47, 71, 77, 60, 67, 64, 76, 65, 78, 46, 96, 80, 58, 64, 61, 50, 53, 46, 75, 84, 61, 63, 58, 71, 66, 80, 54, 62, 76, 47, 96, 57, 77, 88, 75, 67, 43, 55, 60, 68, 49, 62, 71, 61, 54, 39, 72, 61, 60, 57, 93, 61, 55, 61, 49, 79, 69, 75, 54, 60, 84, 63, 61, 59, 63, 61, 68, 57, 86, 77, 63, 61, 54, 58, 67, 78, 77, 68, 81, 87, 53, 57, 55, 55, 53, 91, 52, 82, 50, 60, 90, 55, 83, 70, 65, 49, 62, 61, 66, 54, 90, 56, 94, 56, 70, 41, 72, 67, 51, 98, 79, 70, 85, 62, 64, 91, 93, 83, 84, 75, 52, 59, 98, 50, 61, 82, 64, 64, 56, 53, 53, 83, 62, 63, 56, 69, 72, 54, 62, 58, 57, 59, 65, 94, 47, 94, 53, 63, 75, 71, 80, 106, 59, 57, 67, 66, 57, 76, 59, 90, 81, 65, 46, 63, 51, 52, 90, 104, 77, 66, 65, 78, 61, 75, 62, 59, 53, 53, 50, 101, 77, 37, 42, 70, 43, 71, 78, 72, 53, 82, 56, 79, 63, 86, 50, 66, 72, 60, 61, 74, 72, 60, 53, 47, 49, 68, 76, 55, 61, 43, 61, 55, 48, 65, 68, 76, 65, 64, 94, 82, 104, 45, 55, 74, 64, 68, 63, 63, 60, 75, 70, 59, 70, 61, 48, 54, 69, 50, 64, 72, 63, 58, 47, 70, 58, 73, 60, 58, 50, 80, 63, 47, 66, 95, 60, 45, 50, 85, 51, 62, 67, 65, 66, 56, 63, 70, 70, 52, 64, 65, 77, 78, 80, 75, 61, 69, 83, 45, 94, 83, 66, 63, 76, 66, 64, 69, 33, 63, 68, 66, 58, 58, 64, 67, 64, 64, 44, 75, 45, 61, 64, 49, 71, 70, 74, 51, 66, 66, 77, 51, 84, 70, 89, 66, 79, 55, 61, 70, 52, 63, 54, 61, 63, 64, 74, 65, 54, 47, 66, 51, 58, 65, 50, 75, 65, 71, 65, 89, 56, 67, 74, 61, 126, 68, 93, 59, 41, 40, 65, 80, 75, 54, 112, 57, 52, 56, 72, 68, 64, 64, 81, 53, 64, 64, 72, 76, 65, 56, 57, 67, 64, 60, 63, 62, 58, 69, 66, 70, 65, 64, 72, 60, 73, 71, 106, 55, 64, 73, 74, 61, 44, 66, 60, 58, 62, 54, 58, 65, 68, 68, 68, 63, 43, 74, 65, 75, 54, 46, 55, 64, 63, 72, 64, 48, 59, 62, 68, 72, 59, 64, 56, 71, 80, 76, 60, 55, 109, 56, 43, 64, 89, 80, 41, 59, 62, 75, 66, 81, 81, 68, 63, 75, 65, 66, 63, 59, 69, 74, 60, 62, 53, 62, 58, 69, 80, 69, 70, 70, 73, 60, 60, 69, 51, 72, 69, 48, 63, 67, 73, 82, 66, 69, 51, 84, 73, 86, 82, 68, 62, 57, 58, 96, 56, 54, 60, 59, 44, 55, 65, 66, 78, 81, 65, 52, 51, 52, 70, 54, 61, 48, 58, 56, 70, 48, 92, 84, 54, 74, 60, 88, 72, 72, 95, 77, 70, 70, 62, 47, 57, 70, 65, 86, 88, 52, 56, 63, 55, 95, 90, 44, 68, 61, 57, 69, 69, 62, 89, 72, 47, 64, 61, 66, 69, 57, 39, 55, 48, 85, 54, 50, 79, 76, 61, 68, 65, 61, 52, 86, 41, 64, 42, 68, 57, 75, 74, 77, 60, 68, 65, 79, 60, 60, 60, 67, 21, 57, 73, 59, 61, 67, 60, 93, 66, 74, 55, 88, 73, 64, 57, 70, 63, 90, 74, 81, 37, 107, 104, 75, 51, 63, 73, 59, 49, 74, 54, 55, 75, 69, 58, 62, 54, 59, 47, 59, 64, 54, 78, 80, 39, 67, 64, 60, 47, 76, 71, 83, 58, 47, 92, 70, 65, 54, 60, 69, 66, 103, 62, 59, 70, 76, 61, 64, 56, 47, 65, 86, 80, 66, 60, 61, 75, 46, 69, 57, 53, 71, 75, 49, 71, 73, 49, 54, 78, 68, 59, 77, 32, 75, 69, 79, 60, 86, 79, 69, 60, 73, 59, 65, 75, 60, 61, 56, 62, 55, 54, 69, 77, 78, 68, 63, 49, 64, 72, 68, 110, 57, 86, 62, 49, 73, 51, 55, 52, 84, 65, 72, 81, 81, 58, 51, 55, 65, 64, 83, 64, 73, 89, 65, 59, 66, 50, 81, 52, 54, 72, 78, 88, 71, 66, 78, 80, 69, 85, 81, 107, 76, 46, 68, 71, 68, 66, 83, 68, 80, 80, 55, 45, 73, 77, 59, 68, 57, 62, 65, 69, 62, 67, 52, 50, 59, 62, 66, 51, 72, 59, 49, 62, 54, 49, 70, 55, 55, 81, 71, 68, 84, 62, 58, 68, 70, 71, 55, 54, 74, 64, 67, 50, 61, 56, 83, 77, 80, 70, 65, 67, 68, 95, 67, 56, 63, 60, 60, 50, 66, 57, 60, 57, 52, 48, 49, 57, 73, 79, 95, 81, 43, 59, 57, 64, 65, 58, 70, 55, 58, 91, 61, 63, 74, 58, 64, 90, 59, 91, 64, 63, 83, 56, 57, 64, 72, 83, 64, 59, 65, 71, 81, 74, 87, 75, 57, 80, 66, 62, 58, 76, 74, 58, 69, 75, 39, 56, 58, 80, 53, 108, 62, 62, 59, 74, 69, 69, 66, 51, 68, 69, 57, 56, 59, 62, 65, 66, 50, 65, 69, 69, 69, 73, 59, 58, 69, 97, 64, 49, 60, 53, 100, 65, 81, 69, 61, 69, 65, 56, 58, 64, 70, 65, 56, 72, 60, 63, 52, 65, 79, 50, 52, 99, 61, 72, 60, 110, 68, 63, 60, 52, 68, 60, 63, 51, 66, 64, 50, 59, 50, 89, 68, 61, 62, 56, 47, 57, 52, 65, 66, 51, 59, 75, 69, 72, 69, 67, 62, 63, 63, 78, 79, 43, 70, 70, 70, 62, 69, 55, 60, 86, 59, 77, 63, 52, 69, 83, 61, 93, 85, 75, 69, 54, 67, 57, 71, 77, 61, 56, 55, 66, 56, 69, 70, 53, 72, 67, 64, 72, 44, 67, 72, 71, 59, 54, 72, 58, 65, 73, 62, 78, 60, 62, 67, 60, 81, 65, 87, 62, 49, 74, 63, 82, 61, 65, 56, 58, 61, 65, 69, 72, 60, 53, 74, 80, 77, 79, 64, 60, 67, 62, 65, 88, 68, 61, 47, 62, 64, 69, 80, 81, 47, 80, 90, 56, 107, 73, 63, 64, 56, 67, 73, 66, 59, 49, 72, 79, 87, 54, 70, 74, 74, 69, 65, 47, 47, 64, 60, 46, 56, 68, 59, 55, 64, 84, 52, 56, 52, 85, 72, 53, 54, 58, 83, 52, 55, 80, 68, 58, 75, 69, 56, 67, 73, 72, 75, 56, 83, 66, 77, 65, 53, 55, 84, 57, 43, 74, 58, 73, 59, 61, 48, 69, 63, 76, 66, 69, 61, 53, 59, 72, 67, 58, 56, 47, 62, 73, 61, 66, 50, 96, 69, 70, 61, 61, 43, 41, 70, 64, 61, 66, 72, 63, 68, 72, 59, 41, 70, 50, 56, 73, 45, 71, 54, 62, 77, 70, 92, 65, 63, 56, 71, 51, 60, 105, 71, 67, 62, 53, 59, 73, 108, 72, 61, 62, 73, 56, 59, 66, 58, 46, 65, 72, 53, 46, 44, 67, 69, 59, 69, 73, 67, 75, 97, 63, 56, 53, 69, 63, 82, 70, 69, 58, 60, 50, 66, 66, 57, 103, 61, 66, 55, 54, 74, 61, 56, 78, 70, 55, 127, 57, 47, 70, 61, 49, 56, 63, 89, 55, 73, 55, 77, 66, 68, 65, 71, 103, 86, 46, 64, 59, 78, 66, 57, 79, 62, 60, 61, 58, 95, 56, 81, 57, 59, 75, 68, 67, 61, 71, 61, 63, 80, 86, 67, 59, 59, 33, 74, 48, 61, 65, 85, 62, 83, 75, 58, 60, 61, 69, 63, 50, 46, 60, 43, 64, 66, 58, 55, 74, 53, 65, 64, 89, 86, 63, 72, 67, 85, 56, 55, 60, 68, 58, 79, 68, 64, 58, 66, 58, 105, 70, 52, 80, 67, 116, 48, 59, 63, 64, 50, 60, 65, 67, 49, 62, 61, 71, 64, 68, 71, 60, 81, 54, 63, 59, 63, 98, 95, 73, 68, 43, 66, 55, 69, 72, 72, 65, 51, 56, 72, 57, 62, 51, 76, 62, 58, 63, 74, 46, 60, 80, 53, 121, 71, 67, 46, 78, 59, 62, 63, 70, 71, 80, 61, 81, 62, 68, 65, 54, 78, 58, 62, 79, 62, 58, 65, 66, 52, 63, 47, 68, 61, 54, 77, 59, 68, 66, 59, 56, 90, 87, 60, 63, 75, 39, 50, 55, 72, 68, 76, 56, 76, 77, 70, 53, 80, 66, 66, 73, 63, 63, 77, 69, 58, 69, 58, 62, 62, 54, 54, 62, 66, 59, 116, 64, 54, 71, 48, 64, 59, 68, 72, 43, 74, 60, 81, 73, 64, 74, 98, 67, 60, 63, 62, 61, 65, 68, 69, 84, 80, 61, 44, 75, 69, 52, 76, 80, 62, 66, 49, 67, 60, 55, 73, 62, 95, 71, 79, 62, 45, 52, 47, 69, 61, 59, 77, 63, 59, 67, 55, 61, 57, 61, 57, 67, 62, 69, 77, 49, 54, 69, 66, 70, 71, 91, 84, 86, 55, 64, 64, 56, 60, 65, 59, 92, 51, 66, 55, 63, 87, 74, 65, 93, 69, 69, 70, 52, 70, 70, 58, 51, 53, 52, 53, 73, 71, 62, 60, 70, 62, 70, 48, 59, 61, 68, 67, 102, 71, 52, 55, 56, 63, 77, 51, 62, 90, 78, 62, 58, 62, 72, 55, 59, 77, 97, 84, 67, 60, 52, 58, 66, 76, 57, 59, 74, 69, 55, 56, 55, 39, 91, 73, 61, 76, 76, 59, 63, 75, 59, 98, 66, 57, 62, 59, 66, 64, 77, 70, 63, 50, 66, 80, 78, 65, 63, 72, 91, 66, 67, 79, 111, 95, 69, 71, 77, 86, 86, 64, 79, 71, 67, 67, 63, 52, 54, 65, 99, 89, 57, 64, 64, 70, 82, 68, 46, 69, 54, 62, 82, 55, 73, 55, 104, 69, 78, 72, 64, 66, 64, 58, 71, 73, 69, 57, 61, 60, 66, 54, 62, 58, 67, 65, 53, 55, 75, 42, 75, 84, 86, 68, 61, 60, 54, 61, 73, 66, 76, 74, 67, 62, 52, 78, 67, 55, 81, 52, 86, 58, 53, 54, 79, 51, 61, 68, 89, 62, 55, 82, 59, 52, 57, 52, 64, 55, 69, 53, 59, 61, 66, 59, 62, 68, 68, 71, 53, 58, 67, 81, 85, 68, 84, 56, 54, 79, 70, 62, 57, 69, 74, 56, 60, 51, 52, 74, 81, 98, 77, 61, 62, 65, 92, 105, 66, 68, 48, 88, 63, 56, 72, 66, 59, 55, 75, 62, 75, 63, 60, 70, 56, 60, 72, 52, 52, 91, 59, 69, 63, 65, 77, 57, 74, 52, 85, 69, 62, 77, 51, 60, 48, 56, 69, 74, 69, 70, 59, 55, 57, 51, 66, 41, 81, 58, 56, 69, 60, 60, 60, 53, 70, 65, 63, 73, 92, 65, 73, 42, 58, 64, 83, 55, 91, 72, 83, 58, 51, 50, 86, 68, 66, 71, 66, 66, 112, 62, 107, 64, 68, 68, 45, 51, 68, 49, 54, 101, 58, 63, 60, 81, 62, 71, 75, 62, 60, 62, 69, 76, 58, 101, 72, 57, 65, 69, 56, 54, 50, 73, 63, 51, 79, 69, 74, 66, 61, 68, 72, 61, 66, 63, 59, 49, 61, 103, 64, 76, 89, 56, 53, 81, 53, 53, 62, 62, 79, 72, 97, 87, 63, 69, 87, 80, 47, 57, 74, 62, 56, 62, 65, 59, 48, 60, 86, 58, 47, 64, 58, 68, 64, 68, 62, 69, 81, 65, 58, 62, 51, 99, 69, 75, 53, 71, 70, 56, 83, 40, 68, 57, 53, 68, 91, 63, 58, 52, 56, 57, 56, 52, 94, 66, 43, 57, 121, 70, 60, 58, 63, 70, 63, 56, 63, 66, 60, 58, 60, 70, 59, 52, 65, 66, 53, 51, 59, 69, 71, 54, 65, 67, 78, 55, 55, 56, 68, 43, 65, 68, 104, 82, 59, 67, 53, 68, 76, 63, 51, 54, 90, 61, 51, 57, 55, 69, 69, 46, 112, 72, 53, 73, 84, 64, 67, 74, 45, 59, 67, 69, 69, 65, 48, 56, 68, 65, 48, 77, 65, 46, 71, 76, 56, 64, 67, 88, 62, 54, 85, 71, 68, 139, 63, 48, 57, 70, 50, 83, 77, 60, 60, 62, 68, 62, 63, 68, 68, 68, 65, 60, 71, 65, 62, 55, 76, 64, 73, 58, 66, 58, 62, 54, 96, 73, 79, 57, 61, 58, 49, 81, 70, 69, 88, 83, 61, 88, 70, 53, 61, 68, 64, 55, 56, 75, 56, 64, 72, 80, 65, 46, 84, 79, 97, 71, 47, 69, 66, 67, 64, 63, 73, 58, 73, 65, 73, 51, 65, 58, 67, 55, 73, 56, 54, 67, 56, 80, 65, 56, 72, 54, 108, 53, 72, 69, 53, 85, 78, 65, 74, 57, 60, 87, 68, 91, 75, 53, 74, 62, 95, 82, 55, 70, 71, 79, 63, 71, 60, 55, 50, 63, 68, 54, 59, 72, 54, 63, 49, 63, 61, 58, 52, 49, 69, 52, 56, 102, 68, 56, 62, 55, 73, 60, 53, 73, 52, 64, 52, 70, 59, 70, 63, 48, 57, 78, 49, 70, 75, 76, 69, 48, 74, 84, 65, 54, 78, 51, 73, 71, 70, 77, 61, 98, 64, 72, 56, 75, 60, 72, 53, 70, 73, 65, 75, 63, 83, 62, 64, 70, 62, 69, 66, 71, 83, 68, 92, 70, 53, 63, 65, 64, 61, 64, 55, 53, 66, 51, 84, 67, 90, 77, 73, 71, 51, 75, 55, 61, 55, 71, 56, 74, 51, 67, 63, 63, 58, 52, 53, 68, 74, 100, 69, 84, 62, 63, 59, 72, 75, 85, 64, 64, 72, 68, 70, 53, 74, 70, 77, 64, 67, 91, 77, 69, 71, 59, 56, 63, 58, 55, 63, 57, 63, 97, 87, 67, 56, 54, 82, 61, 47, 78, 62, 80, 54, 67, 51, 86, 62, 60, 66, 58, 68, 70, 73, 69, 61, 59, 56, 56, 65, 57, 79, 47, 70, 82, 69, 89, 101, 80, 60, 68, 54, 64, 64, 44, 70, 87, 47, 79, 55, 110, 67, 54, 64, 61, 105, 57, 55, 53, 54, 41, 37, 58, 64, 63, 65, 68, 54, 59, 52, 63, 57, 102, 66, 70, 65, 65, 90, 68, 80, 58, 61, 73, 59, 77, 51, 65, 64, 62, 55, 70, 76, 66, 66, 45, 60, 57, 45, 73, 61, 58, 67, 62, 122, 55, 72, 71, 124, 62, 55, 60, 55, 61, 56, 57, 66, 70, 104, 71, 47, 83, 62, 56, 109, 76, 55, 56, 69, 52, 69, 74, 72, 53, 64, 82, 51, 69, 58, 57, 71, 94, 86, 64, 52, 81, 77, 63, 60, 61, 62, 41, 52, 57, 77, 63, 56, 101, 63, 68, 71, 58, 51, 77, 50, 41, 75, 45, 67, 60, 60, 44, 60, 84, 66, 148, 71, 71, 78, 45, 76, 78, 65, 64, 51, 60, 58, 60, 47, 49, 57, 91, 52, 64, 68, 73, 60, 65, 86, 62, 91, 56, 60, 69, 81, 62, 75, 68, 69, 72, 73, 66, 74, 63, 60, 74, 65, 74, 73, 99, 51, 69, 69, 57, 63, 55, 69, 64, 64, 87, 48, 65, 69, 81, 70, 74, 85, 57, 71, 67, 66, 70, 54, 48, 93, 62, 64, 43, 51, 67, 58, 72, 62, 69, 37, 51, 73, 63, 71, 67, 53, 64, 53, 66, 67, 68, 66, 54, 73, 68, 68, 74, 55, 55, 63, 57, 56, 74, 65, 78, 70, 41, 64, 55, 61, 75, 61, 68, 98, 65, 61, 76, 55, 56, 72, 59, 46, 61, 65, 69, 63, 77, 43, 55, 60, 111, 58, 73, 60, 57, 58, 58, 54, 74, 41, 79, 58, 85, 59, 60, 74, 66, 92, 70, 57, 61, 71, 57, 73, 54, 55, 61, 50, 57, 56, 65, 78, 67, 66, 52, 71, 64, 74, 63, 54, 61, 59, 57, 46, 76, 67, 53, 72, 64, 54, 83, 79, 69, 71, 74, 56, 80, 62, 53, 70, 70, 54, 47, 69, 58, 47, 76, 51, 64, 60, 70, 58, 52, 68, 62, 57, 54, 67, 53, 60, 64, 85, 62, 71, 80, 88, 49, 70, 65, 63, 38, 86, 78, 75, 49, 59, 64, 55, 70, 84, 83, 65, 59, 76, 89, 84, 65, 38, 54, 60, 56, 70, 61, 61, 57, 73, 63, 54, 69, 44, 71, 71, 71, 99, 56, 74, 56, 64, 45, 59, 75, 72, 63, 72, 64, 83, 63, 52, 60, 61, 89, 52, 73, 64, 63, 73, 44, 69, 69, 55, 63, 83, 63, 64, 109, 89, 57, 66, 63, 64, 60, 60, 62, 68, 65, 67, 77, 68, 42, 70, 68, 59, 94, 70, 59, 65, 74, 80, 99, 58, 73, 72, 68, 76, 64, 62, 79, 53, 56, 65, 70, 61, 61, 54, 48, 64, 62, 68, 61, 56, 65, 76, 77, 80, 62, 70, 60, 84, 74, 85, 60, 75, 80, 61, 64, 68, 57, 67, 53, 69, 62, 70, 60, 63, 62, 68, 52, 62, 53, 62, 75, 50, 45, 81, 58, 76, 50, 51, 56, 92, 55, 72, 57, 58, 58, 65, 55, 72, 53, 68, 61, 68, 110, 85, 57, 67, 89, 70, 43, 88, 56, 94, 59, 61, 55, 54, 64, 73, 67, 62, 66, 58, 75, 66, 59, 44, 67, 78, 61, 75, 53, 72, 56, 71, 80, 53, 52, 73, 74, 71, 62, 60, 62, 51, 58, 62, 65, 69, 70, 71, 75, 81, 64, 48, 77, 77, 56, 65, 66, 65, 67, 76, 70, 56, 62, 67, 34, 59, 70, 78, 59, 43, 70, 54, 52, 68, 74, 52, 71, 66, 66, 76, 68, 67, 61, 74, 67, 64, 67, 59, 79, 47, 56, 68, 60, 50, 61, 50, 62, 85, 67, 59, 92, 50, 88, 65, 79, 61, 62, 54, 43, 71, 73, 70, 62, 47, 55, 64, 51, 64, 77, 83, 58, 75, 57, 66, 60, 72, 45, 80, 54, 58, 66, 63, 79, 74, 64, 61, 65, 68, 68, 62, 56, 60, 38, 65, 60, 73, 61, 63, 71, 70, 61, 66, 55, 71, 65, 65, 51, 80, 69, 56, 59, 64, 72, 74, 83, 50, 56, 47, 59, 54, 54, 86, 77, 98, 56, 82, 64, 101, 103, 87, 46, 82, 97, 66, 64, 48, 71, 72, 75, 64, 64, 71, 67, 67, 76, 69, 66, 65, 66, 60, 65, 68, 49, 57, 115, 61, 76, 71, 68, 57, 50, 81, 58, 68, 83, 62, 73, 88, 68, 57, 61, 60, 57, 86, 76, 56, 73, 53, 86, 57, 75, 60, 66, 61, 59, 73, 46, 66, 77, 82, 64, 51, 79, 74, 49, 54, 72, 59, 89, 77, 62, 113, 84, 59, 109, 73, 50, 55, 63, 54, 67, 60, 60, 59, 74, 57, 88, 71, 65, 83, 72, 76, 71, 70, 72, 80, 53, 70, 56, 86, 64, 55, 63, 52, 51, 68, 68, 55, 74, 67, 66, 68, 57, 71, 58, 77, 60, 47, 80, 55, 71, 82, 66, 74, 62, 60, 72, 46, 63, 45, 71, 68, 71, 70, 61, 69, 82, 55, 70, 60, 72, 56, 74, 64, 65, 61, 67, 65, 59, 74, 70, 40, 54, 69, 70, 55, 79, 61, 75, 73, 64, 49, 40, 55, 65, 66, 58, 69, 48, 60, 55, 75, 48, 63, 60, 61, 58, 56, 65, 74, 64, 64, 59, 76, 68, 51, 71, 67, 61, 55, 58, 46, 68, 94, 66, 70, 75, 71, 60, 58, 117, 54, 54, 62, 57, 77, 61, 62, 69, 72, 63, 55, 58, 70, 77, 57, 53, 40, 57, 57, 55, 57, 60, 64, 68, 57, 61, 80, 75, 79, 56, 74, 65, 76, 56, 64, 55, 94, 55, 59, 82, 65, 47, 57, 60, 68, 56, 45, 120, 48, 64, 60, 61, 65, 63, 63, 81, 58, 74, 67, 69, 53, 73, 72, 59, 73, 80, 67, 49, 89, 67, 61, 83, 61, 63, 57, 71, 61, 88, 52, 48, 80, 68, 56, 67, 61, 75, 83, 69, 70, 88, 90, 55, 77, 52, 59, 56, 63, 73, 48, 70, 62, 67, 65, 61, 56, 56, 52, 45, 84, 69, 65, 68, 57, 61, 61, 44, 77, 61, 66, 80, 86, 69, 57, 54, 69, 80, 54, 58, 58, 47, 65, 52, 79, 50, 46, 88, 59, 53, 70, 72, 75, 70, 117, 55, 72, 57, 74, 71, 61, 55, 72, 61, 72, 68, 63, 60, 59, 60, 62, 75, 109, 55, 68, 72, 101, 83, 82, 61, 60, 90, 74, 49, 69, 78, 67, 65, 82, 64, 48, 60, 64, 65, 58, 65, 58, 67, 60, 55, 88, 50, 117, 78, 51, 72, 94, 63, 77, 54, 80, 67, 62, 72, 78, 89, 51, 57, 67, 61, 62, 55, 81, 54, 49, 65, 37, 62, 50, 63, 56, 80, 61, 69, 72, 100, 63, 62, 79, 65, 66, 69, 67, 73, 88, 59, 58, 65, 101, 53, 63, 82, 72, 57, 53, 73, 67, 68, 85, 51, 41, 86, 65, 73, 74, 62, 72, 67, 78, 55, 49, 63, 71, 98, 51, 68, 56, 64, 66, 69, 48, 74, 69, 53, 58, 82, 71, 58, 94, 108, 70, 64, 60, 80, 68, 59, 51, 76, 62, 72, 59, 65, 50, 68, 65, 63, 71, 70, 52, 63, 76, 48, 67, 55, 98, 73, 65, 69, 74, 40, 57, 71, 63, 49, 60, 59, 76, 65, 56, 66, 70, 71, 49, 71, 61, 64, 55, 71, 53, 52, 76, 60, 55, 74, 75, 64, 85, 64, 54, 71, 72, 54, 53, 59, 77, 66, 72, 70, 73, 91, 77, 66, 78, 58, 72, 66, 52, 58, 69, 79, 76, 67, 77, 51, 69, 89, 61, 60, 57, 71, 63, 61, 58, 55, 47, 47, 44, 76, 82, 69, 64, 63, 65, 55, 60, 97, 66, 60, 67, 62, 73, 64, 62, 51, 65, 82, 68, 69, 71, 69, 68, 52, 56, 75, 67, 58, 53, 52, 52, 61, 59, 57, 68, 78, 59, 83, 89, 69, 62, 71, 77, 59, 57, 67, 72, 68, 63, 70, 68, 54, 70, 63, 69, 64, 77, 81, 68, 54, 55, 73, 86, 86, 59, 68, 94, 90, 75, 68, 66, 65, 82, 66, 55, 56, 75, 52, 102, 53, 55, 68, 54, 77, 53, 66, 60, 54, 78, 64, 93, 66, 64, 56, 45, 68, 45, 74, 57, 52, 46, 91, 75, 73, 52, 54, 48, 64, 72, 71, 72, 68, 72, 76, 82, 52, 63, 49, 58, 60, 67, 45, 62, 65, 57, 60, 59, 63, 73, 59, 64, 61, 66, 91, 77, 67, 48, 73, 97, 87, 69, 53, 79, 68, 74, 74, 49, 57, 81, 69, 61, 58, 67, 56, 67, 62, 62, 56, 61, 49, 70, 55, 63, 61, 59, 66, 70, 65, 76, 61, 57, 63, 90, 59, 57, 76, 53, 78, 75, 50, 64, 61, 67, 39, 55, 57, 47, 64, 69, 70, 64, 60, 87, 78, 75, 57, 66, 47, 64, 64, 63, 74, 51, 62, 76, 70, 53, 47, 57, 55, 61, 66, 68, 65, 61, 74, 77, 60, 50, 67, 65, 60, 73, 57, 83, 73, 91, 77, 44, 59, 72, 54, 79, 62, 57, 65, 51, 51, 67, 54, 67, 52, 54, 78, 66, 56, 46, 46, 95, 62, 57, 69, 58, 68, 70, 90, 71, 50, 56, 60, 66, 64, 95, 49, 68, 78, 66, 74, 74, 76, 54, 73, 51, 59, 46, 61, 89, 64, 50, 51, 65, 51, 59, 60, 69, 81, 68, 67, 67, 52, 69, 72, 72, 68, 49, 67, 73, 67, 67, 67, 39, 68, 75, 59, 64, 47, 91, 63, 68, 76, 65, 29, 66, 49, 63, 43, 58, 72, 61, 70, 86, 66, 70, 76, 75, 44, 57, 70, 69, 58, 81, 45, 81, 77, 68, 59, 88, 73, 72, 77, 66, 67, 63, 55, 73, 69, 75, 64, 66, 64, 72, 68, 78, 71, 59, 84, 63, 74, 87, 59, 69, 59, 104, 71, 35, 78, 70, 75, 70, 71, 65, 79, 50, 58, 58, 47, 72, 56, 75, 60, 51, 59, 57, 52, 51, 79, 51, 69, 88, 63, 80, 76, 81, 64, 80, 85, 48, 58, 67, 68, 79, 60, 62, 83, 47, 57, 66, 52, 54, 71, 58, 63, 85, 67, 65, 52, 77, 73, 72, 72, 57, 71, 67, 120, 79, 57, 76, 69, 57, 62, 81, 61, 65, 75, 63, 62, 71, 64, 57, 70, 77, 72, 48, 66, 117, 102, 82, 51, 65, 68, 64, 47, 87, 55, 74, 66, 38, 76, 58, 60, 59, 74, 70, 56, 80, 70, 82, 66, 68, 53, 73, 109, 60, 83, 66, 97, 78, 63, 64, 51, 43, 80, 67, 85, 108, 76, 67, 68, 70, 60, 60, 74, 68, 60, 47, 47, 55, 67, 58, 68, 58, 56, 56, 62, 47, 75, 74, 71, 56, 75, 52, 41, 64, 63, 44, 94, 94, 54, 96, 86, 65, 101, 64, 68, 61, 82, 42, 62, 56, 57, 45, 76, 67, 96, 67, 66, 77, 81, 70, 68, 58, 64, 111, 59, 81, 54, 86, 75, 64, 58, 80, 64, 66, 53, 64, 55, 63, 86, 68, 68, 60, 61, 71, 60, 68, 87, 66, 68, 47, 74, 56, 73, 67, 58, 63, 75, 66, 63, 51, 99, 75, 47, 78, 72, 71, 52, 53, 75, 67, 57, 71, 69, 62, 80, 37, 56, 78, 53, 46, 53, 69, 75, 64, 46, 56, 91, 52, 42, 65, 48, 59, 62, 46, 60, 67, 48, 71, 77, 80, 99, 68, 69, 79, 56, 51, 65, 60, 73, 69, 60, 61, 46, 86, 64, 38, 56, 50, 66, 70, 32, 83, 60, 60, 65, 54, 60, 49, 87, 47, 54, 81, 62, 73, 61, 82, 53, 79, 49, 71, 64, 49, 45, 51, 65, 60, 61, 58, 75, 63, 59, 40, 68, 69, 86, 62, 80, 55, 53, 91, 67, 57, 67, 50, 55, 89, 68, 58, 96, 44, 109, 52, 60, 57, 61, 83, 75, 57, 76, 44, 78, 55, 62, 74, 69, 61, 83, 53, 68, 57, 62, 58, 86, 65, 92, 72, 60, 83, 70, 67, 58, 58, 73, 48, 73, 64, 78, 76, 60, 56, 60, 51, 66, 59, 71, 74, 67, 52, 56, 67, 76, 67, 57, 56, 62, 45, 69, 58, 64, 65, 88, 74, 57, 55, 70, 58, 33, 72, 56, 37, 57, 59, 79, 61, 54, 60, 80, 83, 67, 73, 69, 73, 68, 71, 72, 71, 63, 63, 46, 53, 58, 63, 52, 62, 73, 72, 113, 59, 67, 81, 70, 117, 65, 76, 67, 62, 61, 65, 65, 47, 97, 83, 76, 58, 65, 59, 62, 60, 76, 88, 75, 62, 64, 97, 104, 45, 57, 68, 83, 76, 74, 66, 66, 61, 64, 55, 63, 52, 82, 55, 54, 43, 64, 66, 64, 71, 53, 88, 62, 100, 57, 46, 79, 72, 53, 69, 58, 58, 59, 60, 72, 63, 80, 65, 57, 73, 71, 67, 69, 68, 71, 46, 45, 50, 64, 66, 61, 65, 65, 37, 39, 51, 77, 69, 61, 65, 82, 99, 68, 78, 53, 58, 59, 51, 57, 136, 76, 68, 76, 65, 88, 49, 81, 72, 84, 57, 73, 56, 88, 78, 67, 84, 98, 64, 52, 62, 59, 77, 78, 59, 115, 61, 34, 74, 73, 65, 69, 80, 80, 60, 64, 64, 64, 75, 61, 78, 96, 73, 75, 49, 65, 49, 59, 75, 120, 69, 73, 69, 46, 57, 57, 54, 66, 72, 86, 75, 65, 78, 33, 58, 54, 80, 57, 86, 69, 46, 70, 69, 64, 64, 44, 61, 87, 70, 75, 59, 76, 67, 34, 43, 73, 56, 65, 60, 62, 82, 48, 53, 64, 58, 50, 77, 65, 45, 61, 45, 60, 69, 52, 77, 54, 54, 52, 70, 65, 52, 69, 55, 78, 72, 71, 75, 68, 62, 67, 70, 73, 74, 64, 54, 79, 64, 80, 52, 76, 47, 63, 58, 48, 69, 65, 80, 62, 99, 65, 59, 54, 66, 34, 50, 60, 74, 89, 71, 78, 80, 72, 64, 69, 61, 73, 61, 73, 62, 58, 60, 60, 58, 43, 65, 85, 63, 58, 55, 57, 59, 68, 88, 69, 57, 59, 70, 54, 98, 62, 65, 64, 60, 62, 55, 92, 84, 50, 37, 67, 39, 52, 59, 70, 84, 78, 57, 77, 80, 76, 71, 82, 73, 68, 54, 48, 88, 105, 59, 60, 67, 61, 59, 63, 59, 61, 49, 77, 90, 70, 62, 64, 52, 48, 46, 59, 61, 86, 64, 64, 95, 48, 56, 60, 61, 66, 89, 73, 76, 81, 78, 101, 88, 75, 65, 55, 70, 69, 62, 60, 74, 61, 55, 56, 60, 61, 65, 56, 69, 70, 83, 65, 64, 68, 58, 69, 71, 63, 79, 53, 66, 64, 46, 83, 74, 62, 100, 71, 79, 50, 61, 56, 85, 62, 81, 69, 58, 50, 75, 73, 49, 63, 55, 86, 71, 60, 64, 44, 68, 62, 46, 54, 76, 65, 51, 69, 64, 57, 76, 67, 51, 62, 65, 65, 65, 87, 66, 71, 83, 64, 59, 59, 55, 68, 46, 55, 62, 74, 70, 73, 77, 76, 95, 111, 79, 62, 60, 65, 84, 43, 55, 82, 63, 61, 74, 67, 74, 38, 70, 62, 60, 82, 68, 58, 61, 63, 95, 76, 70, 66, 63, 50, 73, 54, 76, 82, 94, 61, 83, 61, 69, 64, 84, 65, 61, 68, 62, 54, 65, 59, 57, 51, 84, 60, 50, 64, 64, 45, 107, 66, 93, 54, 41, 66, 83, 107, 58, 42, 65, 54, 54, 62, 88, 69, 68, 63, 62, 66, 57, 85, 56, 73, 58, 44, 140, 50, 78, 70, 67, 48, 63, 56, 65, 56, 85, 109, 57, 53, 76, 82, 45, 66, 71, 63, 58, 64, 60, 57, 48, 62, 52, 58, 67, 65, 55, 64, 72, 67, 64, 52, 61, 54, 60, 48, 76, 58, 84, 54, 63, 77, 84, 59, 89, 91, 72, 50, 59, 49, 70, 74, 53, 51, 92, 62, 83, 58, 29, 51, 54, 54, 75, 54, 57, 71, 70, 59, 51, 92, 42, 75, 68, 60, 90, 60, 57, 59, 78, 64, 55, 51, 47, 73, 60, 51, 63, 70, 58, 67, 56, 71, 57, 65, 70, 50, 48, 69, 76, 60, 47, 51, 91, 64, 60, 45, 51, 69, 70, 44, 112, 76, 59, 57, 62, 62, 80, 47, 62, 85, 75, 45, 68, 59, 64, 63, 66, 62, 51, 55, 48, 74, 62, 55, 77, 77, 56, 48, 49, 59, 94, 69, 70, 68, 73, 60, 90, 54, 110, 55, 56, 78, 65, 52, 68, 52, 58, 85, 58, 66, 85, 61, 74, 80, 83, 56, 96, 82, 79, 63, 82, 55, 52, 58, 84, 87, 61, 60, 47, 64, 63, 70, 60, 61, 55, 62, 80, 77, 70, 60, 63, 60, 70, 100, 62, 73, 60, 70, 63, 81, 51, 62, 69, 77, 68, 67, 81, 69, 59, 53, 69, 64, 71, 73, 42, 56, 50, 66, 67, 88, 88, 60, 53, 78, 59, 47, 64, 43, 60, 70, 29, 75, 40, 51, 51, 50, 68, 80, 63, 104, 109, 55, 79, 97, 57, 69, 68, 67, 68, 63, 43, 70, 78, 80, 89, 41, 53, 74, 98, 87, 78, 54, 69, 48, 68, 66, 74, 61, 92, 80, 54, 44, 96, 66, 63, 41, 52, 55, 64, 65, 56, 91, 49, 62, 67, 51, 39, 59, 75, 61, 74, 37, 52, 70, 49, 79, 59, 54, 80, 65, 48, 75, 53, 51, 74, 64, 44, 68, 59, 87, 55, 87, 70, 77, 56, 81, 66, 67, 81, 62, 55, 80, 46, 73, 63, 74, 48, 60, 70, 65, 61, 64, 64, 52, 98, 49, 68, 63, 61, 70, 56, 64, 58, 79, 73, 52, 41, 72, 53, 51, 71, 70, 55, 59, 69, 68, 72, 86, 59, 69, 70, 55, 79, 67, 75, 55, 55, 62, 67, 78, 64, 62, 51, 52, 77, 66, 61, 67, 78, 57, 68, 57, 49, 50, 66, 76, 57, 73, 55, 74, 68, 60, 85, 54, 71, 62, 72, 80, 65, 71, 53, 63, 76, 78, 90, 55, 110, 71, 48, 62, 69, 48, 64, 61, 70, 65, 77, 53, 57, 76, 65, 68, 66, 74, 84, 74, 34, 67, 28, 77, 68, 55, 60, 89, 64, 82, 56, 55, 51, 45, 77, 63, 45, 55, 62, 53, 59, 80, 53, 53, 64, 57, 52, 56, 68, 51, 83, 55, 60, 79, 44, 60, 56, 69, 74, 73, 62, 67, 65, 57, 43, 95, 43, 59, 67, 60, 65, 79, 69, 66, 56, 69, 69, 72, 76, 50, 71, 62, 71, 96, 56, 79, 71, 52, 106, 77, 58, 69, 75, 69, 57, 67, 62, 57, 61, 87, 65, 38, 76, 73, 63, 75, 115, 91, 80, 64, 69, 70, 65, 57, 58, 81, 74, 58, 49, 92, 63, 78, 71, 86, 68, 61, 57, 56, 92, 100, 45, 69, 80, 86, 68, 71, 43, 78, 63, 94, 66, 72, 40, 59, 82, 60, 77, 75, 54, 59, 56, 64, 77, 57, 122, 68, 60, 67, 143, 59, 74, 72, 53, 63, 55, 63, 75, 72, 91, 60, 56, 57, 72, 46, 63, 62, 63, 45, 78, 56, 64, 72, 57, 51, 71, 67, 64, 66, 48, 64, 72, 109, 86, 74, 51, 67, 61, 46, 71, 59, 41, 70, 53, 48, 71, 84, 77, 81, 77, 65, 73, 77, 53, 81, 50, 55, 78, 53, 67, 71, 61, 70, 43, 74, 78, 137, 59, 52, 62, 52, 79, 62, 58, 71, 67, 52, 63, 77, 76, 60, 59, 100, 73, 65, 54, 51, 51, 60, 70, 55, 88, 56, 43, 70, 52, 55, 58, 60, 71, 76, 62, 62, 56, 64, 90, 57, 57, 74, 91, 89, 80, 78, 69, 77, 64, 64, 54, 97, 64, 71, 62, 57, 78, 52, 44, 80, 103, 79, 71, 73, 51, 68, 62, 70, 71, 65, 81, 61, 72, 76, 65, 63, 86, 63, 61, 67, 82, 71, 72, 43, 71, 67, 67, 53, 77, 65, 62, 63, 74, 82, 53, 68, 56, 68, 46, 51, 62, 70, 41, 76, 54, 99, 57, 81, 60, 65, 82, 58, 70, 65, 45, 61, 72, 54, 78, 64, 84, 72, 76, 55, 57, 84, 66, 63, 50, 93, 68, 64, 79, 60, 38, 48, 51, 68, 67, 64, 80, 43, 80, 70, 65, 64, 54, 57, 76, 63, 72, 52, 43, 71, 63, 82, 54, 68, 52, 61, 78, 57, 45, 68, 77, 63, 56, 57, 61, 55, 59, 59, 63, 60, 68, 68, 57, 71, 64, 62, 98, 108, 62, 71, 61, 98, 76, 55, 71, 64, 53, 54, 58, 41, 74, 72, 60, 56, 46, 66, 69, 56, 67, 75, 72, 67, 56, 62, 55, 64, 81, 87, 67, 74, 47, 56, 88, 68, 63, 50, 69, 50, 85, 65, 58, 58, 75, 61, 71, 58, 67, 61, 51, 70, 73, 57, 52, 65, 66, 62, 64, 43, 70, 68, 49, 68, 73, 54, 60, 72, 85, 54, 80, 47, 67, 65, 61, 57, 70, 71, 66, 66, 70, 74, 63, 63, 68, 93, 64, 51, 76, 61, 81, 60, 72, 66, 62, 33, 68, 56, 72, 99, 67, 119, 71, 80, 73, 44, 57, 89, 43, 51, 91, 55, 60, 82, 80, 70, 50, 64, 66, 84, 84, 57, 47, 93, 94, 101, 68, 66, 58, 72, 57, 53, 75, 73, 75, 47, 63, 67, 64, 52, 76, 73, 77, 53, 73, 45, 53, 65, 76, 65, 61, 60, 65, 45, 82, 44, 85, 61, 79, 70, 78, 62, 65, 43, 72, 52, 58, 58, 60, 63, 44, 55, 63, 51, 60, 65, 67, 66, 67, 47, 68, 59, 72, 89, 43, 74, 92, 72, 63, 66, 54, 66, 60, 64, 72, 82, 88, 41, 75, 67, 83, 68, 52, 84, 92, 48, 61, 45, 96, 46, 56, 68, 56, 84, 94, 55, 110, 68, 49, 60, 60, 87, 81, 57, 72, 62, 61, 61, 69, 73, 61, 90, 83, 91, 56, 63, 46, 75, 56, 69, 46, 75, 84, 70, 51, 59, 58, 48, 66, 82, 70, 45, 79, 72, 63, 50, 66, 58, 53, 63, 63, 54, 80, 64, 61, 47, 62, 57, 64, 73, 60, 68, 69, 58, 72, 67, 60, 60, 68, 77, 53, 64, 52, 83, 58, 67, 67, 66, 59, 55, 82, 51, 64, 72, 70, 75, 65, 65, 98, 65, 74, 65, 59, 68, 50, 58, 45, 49, 60, 61, 69, 62, 64, 71, 63, 49, 64, 43, 43, 65, 134, 48, 70, 52, 65, 69, 53, 61, 58, 77, 52, 65, 69, 67, 59, 70, 46, 66, 56, 47, 59, 76, 62, 54, 51, 72, 61, 84, 103, 64, 73, 68, 53, 67, 60, 80, 42, 68, 72, 79, 60, 59, 71, 65, 74, 64, 63, 58, 85, 65, 46, 44, 59, 80, 50, 56, 80, 87, 68, 55, 66, 61, 69, 75, 94, 55, 67, 68, 64, 73, 107, 63, 73, 57, 65, 71, 61, 56, 52, 89, 55, 74, 58, 60, 64, 64, 52, 66, 54, 73, 65, 67, 77, 68, 57, 58, 82, 58, 53, 60, 80, 51, 57, 77, 69, 66, 72, 52, 63, 69, 56, 57, 80, 77, 63, 58, 53, 52, 45, 58, 91, 69, 63, 59, 64, 61, 58, 113, 65, 53, 63, 64, 53, 84, 76, 62, 57, 66, 50, 59, 73, 39, 51, 64, 54, 76, 58, 44, 78, 78, 66, 51, 56, 45, 53, 59, 57, 71, 71, 66, 68, 60, 66, 62, 71, 70, 87, 68, 75, 68, 55, 65, 52, 64, 71, 69, 71, 53, 90, 59, 60, 84, 60, 58, 52, 73, 57, 56, 61, 58, 65, 70, 98, 57, 66, 61, 59, 44, 53, 67, 69, 65, 47, 63, 53, 56, 58, 57, 94, 60, 66, 59, 57, 90, 79, 58, 56, 79, 52, 71, 87, 60, 66, 75, 82, 58, 66, 60, 60, 85, 60, 70, 59, 73, 54, 63, 89, 56, 65, 68, 70, 60, 65, 52, 68, 52, 45, 71, 84, 39, 77, 66, 62, 82, 66, 51, 66, 65, 56, 56, 59, 57, 67, 77, 64, 60, 62, 72, 62, 69, 71, 52, 57, 67, 58, 54, 47, 80, 71, 57, 90, 68, 63, 63, 51, 70, 52, 84, 60, 48, 52, 83, 69, 101, 43, 74, 105, 73, 69, 58, 58, 122, 53, 76, 68, 64, 82, 70, 53, 85, 47, 81, 70, 56, 65, 56, 89, 69, 90, 91, 73, 56, 65, 83, 59, 68, 42, 73, 57, 84, 54, 72, 62, 74, 68, 52, 56, 62, 74, 76, 81, 58, 57, 55, 75, 70, 68, 72, 59, 76, 65, 88, 49, 89, 64, 76, 60, 64, 64, 46, 80, 108, 67, 72, 56, 51, 71, 67, 57, 72, 83, 65, 65, 82, 80, 51, 55, 72, 59, 46, 79, 79, 84, 76, 76, 65, 66, 55, 73, 67, 113, 80, 63, 45, 79, 67, 75, 56, 55, 55, 42, 60, 149, 55, 78, 55, 58, 48, 67, 68, 59, 58, 68, 69, 65, 66, 85, 37, 52, 71, 48, 76, 62, 72, 82, 100, 56, 80, 56, 56, 30, 53, 90, 68, 52, 80, 45, 64, 69, 48, 46, 59, 55, 68, 58, 54, 46, 67, 73, 64, 122, 71, 62, 74, 67, 66, 58, 67, 67, 79, 57, 47, 67, 81, 76, 59, 78, 68, 70, 69, 34, 67, 82, 66, 74, 52, 76, 63, 63, 33, 56, 63, 58, 65, 72, 60, 54, 100, 70, 70, 64, 62, 60, 60, 70, 56, 49, 46, 55, 41, 53, 75, 66, 102, 71, 61, 59, 72, 58, 63, 62, 59, 57, 71, 60, 70, 55, 40, 62, 84, 57, 94, 68, 53, 52, 70, 114, 51, 74, 68, 63, 62, 57, 70, 54, 63, 60, 77, 70, 54, 60, 56, 72, 60, 61, 86, 57, 71, 47, 63, 92, 53, 75, 70, 65, 90, 67, 67, 64, 57, 61, 46, 78, 56, 79, 67, 77, 94, 65, 46, 53, 79, 55, 96, 61, 53, 62, 57, 56, 80, 69, 53, 95, 65, 58, 55, 80, 58, 52, 69, 60, 69, 63, 66, 57, 81, 65, 54, 67, 62, 77, 57, 81, 62, 62, 73, 61, 101, 54, 60, 66, 68, 52, 55, 86, 114, 64, 80, 68, 72, 65, 61, 61, 77, 49, 66, 50, 70, 62, 66, 61, 60, 54, 45, 102, 63, 51, 76, 56, 69, 84, 62, 92, 68, 48, 54, 75, 89, 57, 54, 65, 105, 93, 83, 64, 58, 52, 75, 50, 61, 57, 77, 69, 54, 61, 92, 62, 107, 113, 59, 63, 78, 82, 69, 53, 72, 53, 89, 46, 64, 58, 54, 76, 75, 71, 58, 65, 75, 64, 67, 61, 71, 56, 63, 46, 58, 59, 79, 69, 61, 64, 98, 55, 51, 73, 95, 60, 71, 48, 72, 63, 74, 57, 90, 81, 53, 41, 88, 48, 58, 59, 59, 62, 78, 61, 57, 50, 67, 62, 68, 50, 65, 99, 68, 109, 57, 61, 47, 70, 65, 57, 54, 69, 53, 85, 70, 63, 55, 49, 78, 80, 76, 89, 66, 71, 66, 111, 59, 85, 68, 61, 71, 65, 76, 70, 89, 66, 69, 68, 69, 63, 69, 95, 77, 66, 60, 66, 59, 57, 70, 62, 54, 61, 60, 69, 47, 54, 57, 70, 138, 72, 47, 48, 60, 51, 55, 56, 55, 58, 77, 56, 70, 60, 68, 52, 96, 73, 87, 53, 49, 59, 85, 100, 69, 47, 65, 67, 48, 58, 77, 61, 74, 62, 83, 78, 43, 73, 66, 85, 98, 72, 63, 88, 66, 104, 65, 70, 78, 57, 73, 54, 69, 73, 59, 68, 64, 64, 70, 62, 55, 61, 86, 46, 55, 49, 67, 83, 58, 94, 61, 57, 60, 92, 69, 67, 52, 36, 56, 68, 64, 61, 85, 55, 52, 48, 57, 62, 68, 60, 62, 53, 75, 58, 99, 59, 60, 80, 66, 63, 58, 75, 77, 75, 52, 81, 65, 67, 52, 60, 55, 76, 75, 67, 56, 50, 75, 51, 70, 78, 81, 68, 58, 59, 85, 54, 67, 83, 77, 94, 55, 100, 109, 73, 71, 72, 75, 57, 66, 80, 52, 70, 51, 63, 72, 64, 92, 46, 60, 61, 60, 45, 73, 57, 61, 63, 55, 43, 67, 64, 54, 74, 75, 55, 76, 73, 85, 90, 74, 94, 73, 67, 61, 64, 79, 59, 69, 73, 86, 65, 58, 53, 58, 63, 57, 61, 58, 79, 63, 74, 72, 49, 51, 73, 81, 69, 50, 82, 61, 78, 55, 53, 64, 62, 60, 85, 59, 69, 64, 50, 60, 60, 63, 64, 63, 62, 67, 68, 48, 58, 56, 78, 73, 52, 74, 64, 61, 42, 69, 66, 66, 55, 63, 71, 66, 84, 55, 70, 76, 72, 63, 46, 56, 55, 76, 65, 58, 64, 60, 63, 66, 100, 65, 48, 50, 68, 61, 88, 56, 60, 73, 61, 73, 63, 51, 80, 56, 68, 70, 40, 118, 61, 69, 113, 48, 71, 57, 50, 65, 67, 70, 68, 49, 77, 65, 58, 71, 65, 54, 62, 43, 101, 84, 76, 77, 75, 69, 65, 67, 81, 102, 55, 71, 56, 59, 59, 65, 58, 73, 46, 62, 65, 59, 67, 70, 58, 57, 85, 88, 62, 66, 56, 59, 49, 53, 57, 67, 67, 66, 49, 71, 95, 72, 54, 63, 71, 65, 79, 62, 77, 73, 51, 49, 78, 82, 70, 72, 61, 80, 71, 54, 68, 77, 69, 58, 73, 91, 70, 59, 64, 62, 56, 76, 61, 73, 82, 80, 69, 65, 72, 57, 36, 71, 55, 53, 69, 64, 63, 60, 64, 54, 76, 67, 108, 78, 74, 56, 57, 69, 76, 50, 69, 65, 110, 65, 59, 69, 100, 60, 73, 60, 74, 81, 55, 60, 54, 60, 58, 69, 91, 55, 73, 42, 68, 47, 79, 71, 59, 71, 55, 65, 59, 53, 65, 57, 41, 66, 42, 66, 76, 76, 72, 55, 47, 96, 67, 50, 71, 90, 77, 70, 59, 70, 92, 56, 73, 45, 46, 63, 68, 73, 56, 74, 73, 52, 73, 59, 58, 50, 68, 63, 61, 44, 68, 69, 79, 50, 80, 54, 44, 73, 70, 95, 74, 59, 72, 61, 39, 53, 65, 62, 66, 64, 46, 55, 52, 65, 62, 34, 59, 60, 57, 78, 52, 99, 67, 51, 63, 76, 44, 60, 77, 58, 75, 51, 57, 46, 54, 44, 49, 82, 66, 81, 75, 66, 74, 81, 73, 66, 55, 70, 90, 75, 63, 40, 61, 84, 55, 77, 72, 70, 103, 92, 67, 55, 70, 32, 50, 56, 71, 71, 62, 62, 66, 90, 62, 70, 64, 58, 65, 61, 52, 66, 89, 62, 65, 74, 64, 67, 64, 86, 62, 52, 56, 66, 42, 53, 62, 70, 67, 53, 67, 73, 70, 50, 33, 59, 56, 69, 60, 56, 40, 64, 64, 54, 59, 74, 76, 75, 79, 79, 67, 77, 60, 49, 52, 109, 61, 86, 62, 55, 56, 63, 111, 55, 74, 69, 63, 61, 69, 65, 83, 65, 44, 74, 73, 52, 46, 63, 57, 69, 58, 60, 70, 54, 54, 65, 70, 59, 100, 55, 50, 55, 73, 68, 57, 48, 122, 64, 46, 65, 74, 54, 70, 60, 82, 56, 86, 64, 68, 73, 69, 72, 60, 68, 70, 74, 66, 55, 87, 82, 83, 77, 54, 58, 93, 70, 56, 62, 65, 77, 55, 65, 90, 43, 68, 43, 71, 35, 69, 70, 47, 52, 94, 72, 118, 69, 62, 88, 74, 55, 79, 77, 64, 54, 58, 57, 80, 64, 68, 58, 63, 41, 60, 69, 64, 58, 61, 69, 66, 67, 67, 61, 72, 67, 58, 71, 66, 54, 77, 50, 96, 85, 60, 64, 52, 71, 80, 48, 69, 48, 48, 77, 68, 76, 67, 93, 91, 46, 59, 56, 66, 60, 49, 69, 47, 59, 85, 48, 82, 60, 80, 48, 63, 80, 78, 101, 61, 67, 52, 59, 65, 59, 58, 55, 60, 74, 56, 58, 65, 62, 51, 98, 59, 66, 60, 77, 55, 59, 61, 71, 58, 54, 72, 68, 53, 55, 38, 74, 67, 54, 73, 55, 43, 40, 50, 70, 69, 100, 61, 84, 67, 127, 61, 56, 81, 56, 54, 90, 54, 74, 51, 68, 70, 55, 70, 63, 66, 73, 67, 54, 74, 64, 82, 56, 65, 52, 64, 63, 74, 52, 85, 69, 64, 55, 79, 64, 64, 42, 80, 58, 60, 46, 60, 69, 70, 62, 70, 57, 78, 65, 62, 96, 77, 58, 47, 70, 58, 102, 84, 62, 76, 55, 49, 58, 54, 87, 58, 63, 63, 69, 71, 71, 75, 55, 62, 70, 85, 83, 36, 62, 59, 68, 52, 51, 74, 86, 70, 51, 63, 74, 63, 105, 69, 66, 55, 52, 68, 59, 71, 79, 73, 68, 58, 60, 68, 80, 71, 79, 60, 87, 63, 81, 59, 58, 70, 39, 70, 59, 68, 66, 71, 87, 57, 67, 84, 70, 58, 83, 50, 84, 56, 68, 81, 46, 50, 88, 44, 64, 82, 81, 61, 61, 91, 74, 59, 58, 67, 73, 82, 60, 59, 71, 51, 55, 66, 59, 62, 64, 62, 71, 48, 49, 71, 68, 82, 58, 76, 78, 60, 59, 47, 56, 76, 57, 70, 67, 54, 59, 76, 62, 56, 71, 61, 64, 49, 89, 56, 78, 63, 81, 80, 67, 55, 66, 62, 76, 61, 85, 55, 44, 84, 60, 71, 46, 71, 64, 47, 83, 97, 85, 69, 65, 62, 53, 61, 65, 66, 60, 40, 53, 69, 67, 70, 118, 76, 53, 106, 69, 58, 56, 57, 51, 56, 74, 48, 69, 64, 97, 70, 62, 38, 53, 83, 45, 60, 74, 73, 80, 32, 61, 63, 53, 72, 67, 56, 68, 61, 78, 89, 60, 68, 70, 63, 102, 80, 49, 60, 59, 68, 70, 81, 80, 75, 68, 74, 83, 75, 47, 70, 78, 59, 61, 72, 70, 63, 83, 51, 55, 46, 82, 85, 69, 80, 61, 71, 54, 33, 76, 63, 57, 48, 80, 67, 64, 72, 89, 60, 71, 70, 61, 61, 56, 53, 70, 52, 54, 67, 98, 66, 71, 96, 88, 62, 53, 63, 71, 98, 50, 73, 43, 62, 66, 48, 70, 69, 70, 71, 62, 58, 68, 73, 80, 66, 66, 41, 61, 72, 54, 59, 54, 47, 74, 80, 65, 77, 58, 53, 90, 75, 50, 59, 76, 56, 62, 70, 75, 79, 67, 76, 95, 53, 79, 58, 47, 77, 60, 53, 72, 63, 74, 66, 66, 66, 67, 56, 87, 62, 49, 66, 74, 55, 67, 70, 52, 57, 99, 53, 43, 71, 75, 61, 40, 55, 66, 75, 55, 97, 64, 49, 69, 67, 69, 72, 76, 68, 71, 67, 61, 59, 61, 72, 69, 53, 74, 77, 78, 66, 56, 73, 62, 49, 89, 53, 62, 99, 54, 60, 83, 83, 80, 71, 76, 53, 65, 64, 78, 53, 76, 60, 58, 48, 60, 77, 58, 56, 79, 56, 69, 74, 62, 64, 61, 74, 53, 83, 76, 76, 61, 71, 53, 54, 65, 77, 63, 51, 65, 51, 57, 62, 59, 70, 48, 50, 65, 60, 60, 71, 63, 60, 63, 57, 75, 44, 75, 66, 59, 53, 52, 70, 46, 65, 91, 49, 61, 40, 75, 67, 64, 78, 71, 71, 78, 72, 43, 92, 69, 80, 63, 57, 96, 63, 62, 32, 61, 78, 60, 76, 77, 41, 70, 50, 89, 44, 79, 56, 77, 66, 63, 50, 53, 53, 62, 79, 82, 66, 35, 78, 70, 64, 56, 70, 85, 67, 84, 83, 76, 55, 66, 55, 78, 55, 64, 61, 54, 69, 66, 67, 62, 51, 61, 60, 49, 45, 72, 64, 71, 54, 71, 95, 88, 61, 48, 72, 76, 54, 87, 68, 60, 101, 80, 88, 73, 78, 75, 72, 54, 62, 63, 59, 54, 80, 50, 53, 61, 63, 71, 95, 58, 61, 41, 51, 63, 79, 64, 63, 62, 100, 63, 84, 72, 60, 60, 67, 64, 49, 74, 62, 63, 59, 57, 81, 66, 82, 48, 37, 57, 71, 61, 52, 65, 76, 53, 75, 67, 44, 52, 73, 48, 58, 44, 73, 97, 58, 52, 67, 54, 46, 58, 79, 57, 47, 67, 51, 59, 61, 59, 76, 72, 57, 71, 74, 73, 65, 67, 52, 83, 42, 93, 77, 89, 56, 71, 76, 66, 52, 75, 55, 53, 68, 67, 78, 57, 73, 53, 59, 90, 56, 66, 84, 41, 88, 59, 82, 66, 57, 72, 62, 46, 55, 42, 69, 51, 67, 58, 59, 60, 63, 64, 67, 65, 66, 84, 63, 61, 52, 88, 83, 82, 60, 57, 89, 49, 80, 62, 52, 64, 63, 72, 62, 84, 62, 55, 62, 52, 47, 65, 66, 73, 75, 67, 59, 110, 103, 62, 83, 57, 50, 82, 60, 90, 53, 63, 79, 64, 89, 135, 63, 93, 42, 66, 58, 69, 65, 63, 76, 63, 72, 78, 53, 62, 53, 81, 66, 80, 81, 45, 126, 64, 63, 73, 82, 70, 72, 53, 55, 67, 63, 43, 77, 62, 63, 73, 52, 72, 51, 55, 66, 88, 74, 86, 62, 129, 86, 66, 70, 69, 53, 68, 60, 108, 42, 58, 60, 47, 69, 71, 46, 58, 90, 68, 49, 62, 96, 51, 57, 69, 57, 47, 73, 64, 82, 63, 47, 77, 59, 69, 58, 74, 72, 63, 69, 59, 72, 57, 64, 70, 66, 52, 71, 57, 120, 52, 55, 75, 65, 57, 63, 67, 54, 60, 62, 40, 87, 65, 75, 71, 59, 54, 60, 71, 51, 68, 74, 77, 82, 62, 68, 71, 64, 44, 93, 60, 51, 77, 49, 52, 71, 94, 72, 70, 66, 53, 51, 68, 81, 55, 64, 57, 115, 56, 85, 68, 81, 54, 59, 78, 82, 69, 93, 60, 103, 58, 55, 48, 76, 74, 59, 58, 52, 58, 85, 59, 85, 61, 48, 65, 79, 56, 67, 46, 56, 74, 79, 56, 84, 53, 57, 76, 47, 65, 101, 53, 54, 58, 54, 59, 70, 55, 79, 43, 77, 79, 65, 63, 66, 69, 42, 75, 78, 63, 62, 54, 67, 75, 99, 67, 58, 71, 53, 73, 71, 102, 47, 42, 72, 55, 59, 49, 58, 65, 58, 97, 56, 72, 50, 138, 75, 45, 47, 82, 70, 59, 60, 70, 64, 88, 54, 64, 82, 64, 51, 82, 66, 68, 81, 56, 63, 80, 56, 67, 71, 87, 75, 75, 52, 44, 70, 49, 51, 68, 50, 64, 72, 89, 72, 56, 55, 60, 56, 46, 88, 75, 65, 62, 59, 45, 50, 66, 81, 68, 61, 65, 81, 62, 59, 65, 54, 85, 56, 58, 61, 28, 77, 59, 51, 77, 59, 58, 65, 47, 86, 56, 94, 64, 53, 90, 58, 81, 39, 54, 59, 89, 63, 44, 54, 78, 52, 76, 81, 50, 59, 87, 51, 69, 67, 79, 47, 69, 73, 62, 55, 73, 50, 65, 49, 75, 61, 69, 71, 70, 98, 84, 73, 49, 94, 90, 46, 71, 61, 60, 66, 55, 68, 76, 59, 83, 66, 72, 63, 63, 59, 75, 92, 73, 47, 73, 63, 50, 59, 67, 82, 65, 107, 56, 56, 72, 62, 66, 63, 59, 51, 74, 69, 71, 61, 89, 98, 76, 52, 83, 71, 66, 90, 89, 56, 49, 70, 62, 66, 66, 82, 78, 105, 55, 77, 62, 73, 64, 64, 33, 63, 46, 84, 60, 54, 64, 78, 53, 61, 71, 65, 76, 63, 64, 106, 86, 57, 60, 61, 61, 59, 57, 67, 52, 65, 70, 71, 56, 82, 74, 77, 62, 69, 64, 71, 53, 89, 64, 68, 60, 66, 66, 56, 65, 61, 50, 60, 75, 66, 62, 76, 62, 74, 49, 68, 75, 56, 86, 72, 64, 56, 82, 58, 55, 59, 68, 55, 67, 59, 66, 47, 55, 42, 48, 60, 51, 73, 66, 64, 56, 72, 53, 77, 60, 49, 56, 113, 49, 63, 83, 52, 66, 79, 60, 61, 73, 38, 49, 64, 72, 61, 63, 68, 75, 63, 67, 64, 80, 67, 61, 50, 54, 71, 63, 58, 70, 58, 51, 87, 84, 56, 58, 53, 71, 52, 68, 71, 49, 48, 99, 82, 64, 59, 74, 70, 61, 76, 51, 67, 67, 69, 56, 84, 52, 74, 49, 69, 61, 40, 85, 68, 50, 68, 47, 62, 86, 56, 55, 64, 71, 73, 61, 77, 57, 68, 89, 48, 59, 60, 117, 81, 65, 73, 73, 48, 60, 56, 70, 74, 67, 68, 50, 66, 79, 59, 80, 83, 48, 53, 65, 44, 56, 55, 60, 57, 74, 69, 54, 77, 101, 57, 62, 73, 70, 59, 62, 71, 63, 65, 52, 72, 62, 68, 50, 71, 60, 59, 79, 76, 60, 46, 69, 60, 73, 55, 60, 85, 61, 64, 79, 56, 63, 66, 70, 75, 58, 73, 60, 47, 56, 67, 52, 59, 54, 75, 58, 65, 66, 69, 84, 59, 67, 54, 62, 42, 59, 60, 57, 57, 53, 51, 62, 61, 56, 76, 75, 54, 64, 58, 68, 53, 55, 92, 60, 55, 60, 50, 67, 101, 61, 60, 72, 60, 53, 58, 50, 52, 61, 56, 62, 56, 64, 65, 71, 60, 70, 104, 63, 55, 54, 45, 57, 109, 57, 60, 56, 51, 60, 60, 60, 76, 55, 69, 64, 64, 55, 81, 72, 87, 59, 72, 56, 67, 68, 71, 52, 77, 40, 60, 60, 38, 60, 66, 76, 64, 77, 67, 80, 85, 66, 43, 65, 68, 55, 95, 70, 59, 56, 52, 62, 69, 58, 85, 76, 81, 60, 74, 63, 87, 119, 80, 59, 58, 84, 56, 70, 36, 73, 63, 59, 43, 64, 66, 61, 67, 62, 60, 62, 62, 61, 61, 66, 75, 53, 65, 98, 68, 63, 68, 50, 62, 60, 64, 64, 67, 71, 59, 75, 70, 67, 69, 61, 68, 56, 82, 46, 61, 52, 70, 74, 59, 65, 63, 59, 67, 57, 62, 65, 84, 67, 46, 60, 104, 86, 75, 46, 72, 56, 76, 75, 83, 84, 84, 80, 67, 87, 97, 58, 48, 64, 73, 65, 50, 81, 64, 63, 54, 65, 63, 72, 92, 53, 62, 66, 74, 77, 39, 65, 70, 80, 80, 62, 92, 59, 96, 61, 64, 68, 80, 68, 60, 52, 71, 72, 67, 53, 57, 68, 59, 45, 74, 62, 67, 63, 80, 75, 56, 88, 62, 59, 65, 59, 79, 73, 87, 66, 52, 60, 60, 70, 70, 54, 57, 70, 50, 65, 72, 70, 65, 67, 67, 69, 66, 61, 61, 70, 78, 57, 58, 57, 82, 76, 52, 65, 72, 62, 62, 64, 57, 63, 54, 82, 65, 75, 69, 65, 63, 51, 67, 84, 73, 48, 60, 62, 55, 46, 49, 92, 59, 61, 64, 68, 60, 65, 73, 57, 69, 46, 63, 55, 62, 103, 53, 51, 48, 51, 55, 64, 64, 65, 74, 58, 57, 78, 78, 74, 78, 62, 51, 66, 72, 61, 67, 74, 68, 55, 58, 45, 113, 62, 85, 73, 58, 71, 52, 90, 69, 59, 88, 71, 63, 71, 88, 36, 46, 54, 72, 58, 61, 136, 56, 79, 56, 63, 62, 64, 51, 104, 56, 58, 66, 77, 60, 56, 58, 55, 122, 69, 65, 67, 63, 60, 50, 63, 52, 66, 58, 73, 55, 72, 71, 55, 67, 61, 65, 74, 65, 64, 70, 62, 76, 88, 112, 94, 62, 72, 68, 61, 77, 81, 69, 72, 73, 89, 60, 63, 50, 50, 58, 68, 51, 44, 61, 70, 70, 76, 59, 67, 69, 64, 53, 73, 54, 68, 93, 59, 59, 80, 49, 56, 59, 75, 46, 76, 83, 56, 64, 49, 66, 34, 70, 57, 98, 45, 127, 65, 65, 62, 70, 72, 73, 56, 57, 53, 81, 74, 71, 70, 55, 60, 52, 79, 51, 62, 60, 59, 62, 102, 90, 77, 68, 63, 49, 63, 52, 75, 57, 51, 70, 54, 61, 79, 65, 63, 61, 52, 65, 63, 64, 55, 62, 61, 119, 64, 67, 119, 103, 80, 73, 72, 82, 71, 63, 64, 112, 65, 67, 53, 59, 59, 65, 63, 67, 72, 48, 49, 58, 60, 51, 50, 65, 61, 55, 73, 55, 60, 66, 65, 47, 103, 54, 64, 57, 62, 78, 47, 55, 44, 37, 67, 78, 65, 85, 70, 52, 60, 65, 59, 67, 70, 62, 62, 62, 60, 60, 69, 58, 71, 67, 65, 61, 59, 68, 104, 65, 88, 62, 47, 98, 55, 66, 43, 55, 60, 62, 103, 48, 53, 52, 119, 70, 58, 56, 62, 69, 65, 43, 64, 67, 76, 58, 59, 58, 70, 59, 59, 71, 84, 82, 67, 70, 55, 82, 70, 69, 85, 54, 79, 73, 42, 53, 53, 57, 57, 56, 76, 58, 59, 56, 58, 57, 58, 62, 93, 66, 41, 65, 71, 66, 65, 55, 61, 67, 70, 77, 85, 70, 67, 54, 47, 59, 50, 48, 65, 73, 59, 72, 56, 67, 79, 63, 72, 82, 51, 71, 49, 64, 65, 75, 97, 66, 73, 85, 55, 58, 79, 73, 82, 71, 71, 58, 63, 65, 65, 83, 64, 52, 74, 68, 63, 71, 57, 57, 53, 52, 78, 39, 53, 56, 52, 50, 63, 70, 55, 54, 74, 64, 58, 79, 70, 59, 62, 69, 65, 57, 61, 56, 51, 63, 57, 66, 75, 61, 64, 64, 74, 67, 66, 69, 98, 69, 67, 62, 58, 66, 64, 69, 71, 59, 77, 79, 56, 62, 57, 57, 81, 63, 70, 71, 71, 73, 73, 60, 95, 41, 54, 108, 72, 60, 60, 76, 67, 62, 71, 73, 55, 99, 74, 69, 60, 74, 53, 65, 64, 56, 57, 72, 72, 77, 68, 71, 65, 64, 61, 61, 80, 52, 75, 50, 39, 63, 54, 65, 81, 73, 59, 60, 57, 49, 61, 65, 65, 85, 74, 69, 76, 65, 92, 75, 70, 53, 65, 59, 43, 73, 62, 42, 67, 77, 66, 78, 84, 73, 60, 63, 64, 114, 81, 74, 69, 67, 74, 51, 64, 74, 68, 72, 54, 64, 56, 59, 70, 73, 56, 90, 85, 65, 63, 65, 52, 53, 60, 60, 73, 48, 54, 67, 51, 66, 61, 89, 48, 62, 78, 72, 61, 59, 56, 63, 68, 61, 51, 61, 63, 79, 66, 51, 73, 59, 64, 121, 78, 67, 53, 56, 77, 69, 67, 69, 73, 61, 52, 68, 74, 62, 79, 59, 56, 59, 66, 51, 64, 67, 79, 61, 71, 67, 69, 85, 71, 82, 60, 57, 64, 61, 74, 45, 71, 54, 67, 56, 52, 60, 83, 70, 66, 66, 70, 63, 75, 71, 69, 59, 71, 61, 53, 50, 55, 59, 75, 55, 56, 72, 70, 66, 66, 49, 61, 73, 62, 64, 61, 76, 70, 70, 60, 87, 67, 60, 71, 61, 75, 29, 48, 45, 57, 75, 74, 66, 92, 95, 58, 74, 59, 61, 57, 48, 55, 68, 73, 64, 58, 66, 59, 78, 52, 86, 87, 79, 59, 81, 71, 94, 64, 63, 76, 63, 61, 64, 61, 59, 70, 73, 68, 49, 59, 46, 66, 66, 61, 49, 76, 68, 63, 53, 57, 60, 61, 69, 67, 62, 63, 63, 58, 102, 78, 80, 58, 50, 57, 58, 57, 68, 51, 64, 63, 54, 73, 66, 55, 60, 67, 58, 63, 58, 75, 47, 63, 66, 96, 70, 55, 90, 70, 50, 71, 62, 64, 62, 61, 68, 56, 67, 49, 50, 66, 63, 50, 71, 71, 107, 61, 80, 57, 66, 61, 59, 55, 83, 52, 49, 54, 79, 61, 64, 66, 67, 64, 58, 57, 60, 58, 63, 71, 57, 70, 68, 77, 55, 64, 73, 80, 61, 69, 51, 75, 78, 55, 57, 69, 56, 66, 70, 67, 48, 71, 71, 64, 64, 68, 71, 73, 60, 67, 82, 53, 82, 55, 59, 61, 65, 38, 101, 76, 86, 59, 70, 80, 80, 65, 58, 55, 68, 45, 54, 69, 61, 69, 60, 79, 73, 61, 87, 67, 67, 52, 70, 48, 54, 38, 64, 69, 71, 52, 74, 74, 54, 63, 47, 68, 62, 78, 72, 64, 65, 70, 79, 66, 55, 67, 64, 74, 63, 76, 70, 68, 67, 58, 76, 61, 68, 64, 59, 64, 63, 62, 111, 88, 74, 54, 64, 57, 55, 63, 65, 60, 86, 89, 63, 75, 86, 68, 53, 47, 65, 58, 74, 106, 66, 71, 80, 78, 70, 81, 60, 59, 71, 61, 39, 78, 50, 56, 64, 53, 62, 43, 73, 59, 70, 70, 76, 66, 70, 63, 71, 73, 70, 65, 111, 67, 72, 53, 63, 61, 64, 68, 57, 59, 65, 66, 97, 57, 56, 68, 63, 64, 45, 55, 57, 75, 57, 63, 72, 79, 57, 65, 81, 69, 51, 61, 64, 59, 61, 54, 73, 47, 53, 54, 69, 93, 74, 63, 65, 52, 97, 71, 57, 66, 66, 74, 63, 43, 52, 78, 58, 68, 64, 65, 67, 60, 53, 60, 70, 76, 55, 52, 88, 75, 55, 71, 63, 71, 71, 41, 57, 74, 54, 68, 40, 52, 58, 60, 75, 64, 50, 85, 63, 64, 67, 68, 61, 58, 54, 60, 53, 64, 53, 81, 54, 62, 62, 45, 68, 56, 65, 61, 54, 66, 66, 63, 54, 58, 66, 64, 58, 88, 64, 54, 67, 80, 81, 59, 77, 62, 51, 63, 81, 111, 62, 60, 70, 79, 54, 139, 54, 78, 63, 85, 52, 62, 56, 53, 60, 65, 68, 49, 63, 57, 61, 55, 121, 60, 60, 61, 45, 68, 53, 80, 78, 63, 56, 54, 58, 57, 67, 73, 58, 68, 77, 62, 68, 63, 57, 62, 79, 88, 60, 84, 55, 57, 58, 59, 92, 70, 66, 76, 50, 100, 67, 63, 69, 48, 66, 59, 61, 57, 65, 47, 70, 74, 58, 65, 62, 73, 64, 72, 63, 66, 80, 66, 59, 88, 68, 68, 70, 64, 64, 57, 61, 60, 69, 55, 56, 96, 57, 73, 116, 58, 125, 78, 78, 45, 62, 66, 67, 51, 59, 41, 61, 48, 60, 71, 65, 61, 59, 64, 56, 69, 64, 53, 83, 91, 59, 60, 59, 68, 57, 67, 58, 51, 59, 36, 57, 63, 73, 59, 36, 62, 63, 64, 56, 48, 37, 65, 62, 64, 123, 60, 67, 136, 56, 81, 75, 56, 85, 72, 86, 57, 77, 61, 79, 48, 68, 61, 68, 59, 56, 65, 58, 71, 62, 58, 48, 67, 74, 60, 71, 63, 49, 53, 68, 57, 60, 83, 55, 71, 72, 78, 47, 63, 66, 57, 73, 70, 70, 51, 63, 34, 40, 59, 75, 57, 63, 49, 58, 52, 59, 55, 67, 55, 64, 65, 68, 67, 65, 62, 58, 103, 55, 111, 55, 67, 91, 65, 70, 55, 56, 73, 67, 50, 68, 58, 51, 115, 52, 61, 64, 61, 71, 60, 72, 75, 48, 71, 53, 52, 78, 76, 64, 68, 55, 55, 79, 63, 68, 61, 65, 62, 61, 75, 66, 81, 55, 55, 54, 50, 58, 66, 68, 74, 58, 71, 64, 45, 64, 66, 66, 85, 79, 68, 79, 74, 52, 53, 72, 66, 61, 57, 96, 87, 73, 53, 57, 66, 52, 46, 65, 61, 71, 59, 68, 60, 63, 84, 70, 72, 56, 63, 62, 73, 81, 53, 67, 74, 59, 59, 75, 68, 59, 74, 66, 60, 45, 69, 62, 56, 99, 61, 65, 116, 106, 68, 67, 72, 62, 55, 70, 71, 62, 57, 61, 59, 59, 66, 63, 54, 57, 47, 72, 66, 64, 60, 88, 60, 71, 69, 64, 78, 65, 70, 64, 58, 53, 58, 71, 65, 59, 54, 66, 68, 66, 80, 63, 94, 88, 70, 65, 60, 70, 57, 105, 71, 54, 96, 92, 57, 57, 51, 49, 65, 76, 60, 68, 57, 114, 67, 56, 70, 68, 76, 67, 72, 87, 60, 58, 53, 61, 71, 74, 50, 73, 53, 63, 76, 76, 53, 77, 70, 73, 60, 60, 57, 62, 52, 53, 70, 98, 72, 84, 67, 60, 61, 81, 64, 74, 71, 58, 109, 69, 73, 73, 66, 41, 52, 64, 64, 77, 78, 60, 44, 51, 67, 80, 53, 71, 59, 71, 62, 64, 54, 64, 55, 63, 52, 66, 87, 63, 65, 65, 95, 102, 51, 56, 67, 65, 77, 75, 69, 80, 63, 84, 66, 65, 60, 62, 56, 61, 67, 69, 56, 81, 58, 58, 62, 64, 60, 62, 79, 66, 60, 63, 100, 48, 72, 91, 52, 78, 106, 52, 67, 67, 59, 51, 60, 80, 50, 91, 85, 71, 86, 51, 56, 65, 72, 79, 65, 77, 65, 57, 63, 62, 60, 65, 83, 55, 63, 89, 63, 61, 79, 64, 57, 57, 52, 62, 55, 58, 76, 63, 63, 59, 63, 62, 48, 62, 58, 75, 57, 64, 46, 57, 57, 57, 59, 73, 63, 59, 64, 53, 64, 73, 71, 79, 88, 58, 69, 54, 85, 70, 57, 72, 59, 71, 62, 66, 65, 79, 67, 66, 78, 63, 64, 54, 63, 61, 51, 74, 77, 61, 44, 75, 56, 61, 63, 70, 62, 77, 59, 77, 62, 76, 62, 64, 78, 70, 69, 89, 56, 58, 63, 74, 88, 66, 56, 79, 54, 67, 78, 69, 72, 46, 90, 78, 77, 70, 62, 58, 53, 60, 56, 50, 70, 63, 70, 53, 61, 58, 79, 62, 92, 64, 47, 47, 58, 50, 55, 66, 75, 57, 50, 58, 71, 82, 46, 76, 73, 73, 54, 55, 65, 52, 61, 66, 58, 69, 61, 66, 67, 66, 60, 70, 51, 69, 66, 66, 55, 53, 60, 79, 48, 67, 56, 50, 53, 67, 59, 49, 63, 57, 66, 57, 90, 61, 85, 55, 64, 62, 57, 81, 58, 59, 67, 88, 71, 55, 61, 85, 75, 58, 63, 108, 58, 58, 56, 71, 56, 60, 68, 64, 67, 66, 58, 69, 65, 63, 63, 70, 66, 63, 69, 59, 73, 110, 54, 61, 69, 56, 87, 67, 74, 67, 70, 50, 56, 76, 53, 55, 51, 83, 56, 67, 69, 60, 51, 74, 56, 65, 54, 72, 51, 57, 58, 62, 70, 73, 52, 103, 64, 72, 68, 78, 73, 67, 83, 62, 74, 65, 50, 68, 74, 57, 83, 62, 59, 56, 62, 54, 69, 64, 58, 76, 49, 63, 77, 63, 79, 71, 71, 50, 81, 53, 61, 79, 58, 76, 71, 64, 101, 62, 70, 69, 57, 71, 63, 57, 64, 54, 75, 60, 78, 73, 56, 43, 50, 59, 55, 111, 73, 64, 71, 108, 63, 64, 49, 62, 65, 72, 88, 71, 75, 54, 67, 65, 90, 67, 45, 55, 55, 68, 73, 72, 80, 66, 68, 91, 56, 60, 64, 86, 69, 67, 62, 82, 57, 91, 59, 57, 62, 56, 67, 87, 55, 53, 46, 77, 64, 71, 61, 65, 58, 66, 71, 62, 65, 64, 77, 53, 77, 74, 59, 58, 56, 66, 55, 65, 71, 57, 55, 70, 45, 63, 62, 86, 63, 67, 63, 58, 66, 60, 50, 75, 70, 37, 91, 44, 42, 75, 87, 71, 65, 60, 68, 54, 71, 71, 75, 68, 101, 73, 68, 68, 68, 65, 63, 85, 86, 67, 49, 64, 52, 46, 74, 74, 77, 73, 59, 65, 55, 73, 74, 81, 51, 73, 61, 51, 61, 78, 70, 74, 62, 50, 60, 76, 48, 72, 67, 74, 69, 65, 77, 59, 59, 69, 98, 58, 58, 46, 80, 61, 51, 63, 65, 74, 81, 72, 74, 52, 62, 69, 60, 70, 60, 52, 49, 58, 51, 49, 96, 73, 67, 79, 66, 66, 73, 67, 69, 90, 69, 50, 99, 65, 51, 53, 57, 60, 63, 80, 133, 60, 114, 65, 77, 65, 65, 53, 64, 74, 60, 82, 68, 53, 58, 56, 85, 84, 97, 54, 71, 68, 64, 61, 62, 64, 81, 62, 52, 52, 90, 68, 64, 73, 64, 62, 71, 38, 53, 80, 62, 66, 71, 128, 76, 69, 75, 61, 66, 57, 62, 55, 53, 58, 118, 47, 83, 83, 43, 56, 85, 58, 50, 60, 56, 61, 64, 75, 64, 57, 54, 70, 75, 43, 86, 55, 82, 72, 71, 55, 55, 65, 60, 63, 57, 63, 62, 80, 66, 89, 53, 77, 62, 58, 53, 140, 73, 58, 65, 62, 62, 60, 64, 54, 72, 50, 58, 80, 64, 83, 70, 64, 57, 72, 73, 60, 87, 88, 79, 66, 52, 60, 65, 66, 52, 87, 66, 56, 65, 65, 71, 52, 92, 54, 49, 59, 58, 61, 57, 68, 67, 67, 52, 124, 56, 93, 50, 48, 68, 43, 61, 77, 59, 53, 65, 50, 57, 56, 66, 64, 70, 83, 55, 50, 64, 59, 65, 100, 47, 58, 66, 48, 68, 55, 60, 63, 67, 61, 55, 84, 103, 58, 59, 63, 57, 95, 61, 63, 54, 65, 68, 55, 67, 64, 45, 92, 64, 87, 50, 69, 63, 65, 69, 76, 59, 72, 76, 71, 77, 80, 66, 52, 68, 77, 45, 52, 67, 75, 59, 114, 64, 54, 39, 77, 70, 52, 55, 54, 66, 58, 90, 63, 67, 45, 76, 60, 80, 49, 56, 80, 63, 55, 68, 69, 47, 61, 72, 59, 87, 76, 75, 55, 63, 56, 72, 77, 107, 89, 84, 55, 56, 63, 77, 58, 73, 64, 82, 75, 73, 68, 49, 61, 66, 73, 61, 81, 60, 54, 66, 56, 51, 49, 56, 65, 53, 65, 57, 72, 65, 54, 73, 71, 68, 62, 52, 79, 60, 67, 73, 47, 81, 66, 75, 74, 58, 50, 53, 75, 77, 59, 83, 60, 51, 78, 67, 47, 80, 50, 65, 55, 66, 87, 69, 60, 74, 62, 52, 70, 58, 67, 68, 62, 58, 69, 53, 61, 71, 66, 60, 55, 76, 51, 51, 68, 76, 79, 84, 74, 56, 63, 65, 56, 68, 41, 67, 91, 63, 73, 52, 51, 84, 64, 70, 64, 65, 70, 73, 69, 70, 55, 54, 49, 67, 54, 74, 66, 60, 120, 71, 73, 73, 59, 64, 78, 57, 74, 66, 58, 69, 66, 84, 66, 49, 74, 82, 79, 66, 119, 55, 74, 69, 55, 53, 66, 66, 74, 53, 84, 58, 67, 77, 54, 74, 69, 65, 67, 63, 83, 69, 57, 57, 59, 71, 70, 60, 55, 85, 85, 74, 51, 81, 58, 59, 57, 60, 55, 64, 87, 91, 59, 63, 74, 75, 115, 78, 49, 46, 68, 71, 113, 57, 63, 56, 56, 68, 75, 55, 63, 61, 70, 55, 66, 37, 58, 77, 51, 63, 56, 76, 76, 59, 70, 74, 64, 66, 59, 62, 52, 77, 55, 61, 55, 101, 64, 44, 44, 93, 68, 66, 48, 59, 63, 61, 54, 63, 63, 76, 76, 76, 64, 79, 96, 58, 65, 85, 47, 54, 81, 63, 61, 53, 62, 58, 68, 56, 70, 61, 54, 78, 56, 85, 65, 59, 42, 50, 65, 55, 88, 72, 71, 75, 68, 61, 52, 102, 73, 61, 73, 65, 64, 75, 76, 64, 59, 88, 69, 60, 64, 64, 72, 55, 100, 60, 83, 46, 78, 74, 69, 96, 67, 56, 58, 54, 57, 41, 63, 65, 64, 61, 54, 73, 55, 55, 52, 66, 66, 56, 96, 57, 65, 60, 55, 82, 68, 103, 86, 48, 56, 61, 58, 78, 71, 80, 70, 46, 61, 83, 83, 65, 64, 65, 68, 58, 59, 68, 73, 63, 60, 60, 60, 96, 77, 62, 84, 67, 61, 68, 59, 73, 58, 62, 60, 56, 55, 57, 82, 75, 74, 56, 61, 62, 61, 70, 61, 50, 64, 64, 63, 53, 69, 53, 65, 56, 56, 92, 50, 81, 47, 83, 54, 69, 63, 66, 61, 60, 70, 52, 66, 50, 63, 65, 59, 66, 70, 64, 55, 69, 76, 65, 65, 60, 60, 69, 77, 80, 68, 50, 53, 68, 45, 98, 55, 61, 65, 63, 68, 71, 60, 62, 69, 63, 85, 61, 62, 63, 49, 66, 63, 58, 49, 97, 77, 67, 63, 81, 90, 61, 68, 62, 72, 62, 91, 87, 68, 65, 80, 62, 90, 77, 77, 60, 70, 54, 118, 63, 76, 55, 53, 61, 65, 58, 70, 67, 73, 74, 64, 68, 65, 51, 61, 79, 62, 63, 48, 56, 76, 61, 82, 71, 46, 76, 35, 34, 92, 51, 70, 63, 59, 72, 54, 54, 77, 69, 54, 55, 76, 46, 75, 47, 78, 84, 82, 62, 92, 80, 53, 70, 76, 90, 56, 52, 72, 76, 52, 48, 62, 72, 74, 56, 57, 62, 45, 63, 75, 63, 43, 73, 62, 65, 76, 63, 69, 74, 81, 57, 61, 73, 56, 66, 51, 64, 56, 84, 81, 53, 64, 50, 51, 45, 61, 55, 75, 59, 70, 79, 66, 63, 64, 62, 58, 82, 57, 50, 64, 104, 65, 70, 105, 75, 73, 70, 64, 59, 57, 99, 88, 55, 52, 73, 57, 67, 72, 51, 76, 63, 51, 69, 63, 64, 54, 76, 61, 58, 58, 51, 95, 57, 75, 52, 55, 74, 74, 65, 51, 77, 82, 65, 102, 62, 48, 59, 56, 73, 62, 79, 69, 63, 61, 50, 57, 59, 97, 62, 61, 51, 67, 67, 79, 58, 54, 42, 66, 57, 61, 61, 58, 63, 76, 55, 92, 48, 78, 78, 66, 81, 58, 59, 98, 49, 59, 39, 46, 58, 75, 64, 45, 66, 58, 82, 55, 93, 74, 74, 56, 93, 84, 83, 59, 91, 51, 47, 53, 62, 68, 75, 61, 57, 71, 67, 83, 65, 69, 63, 58, 70, 74, 61, 66, 67, 62, 101, 68, 75, 58, 70, 56, 71, 69, 88, 76, 50, 64, 80, 53, 53, 71, 115, 63, 64, 54, 108, 68, 49, 61, 93, 57, 45, 67, 66, 59, 65, 73, 51, 63, 75, 54, 60, 63, 49, 56, 59, 64, 48, 67, 81, 62, 67, 77, 72, 40, 49, 66, 63, 66, 92, 67, 60, 60, 41, 67, 55, 69, 55, 99, 145, 48, 55, 60, 65, 59, 56, 73, 54, 74, 73, 82, 93, 68, 67, 68, 77, 48, 60, 47, 95, 82, 69, 50, 36, 65, 69, 71, 55, 56, 58, 65, 86, 75, 68, 55, 55, 57, 69, 80, 61, 64, 64, 76, 71, 66, 60, 56, 57, 75, 82, 59, 46, 75, 84, 60, 73, 65, 60, 74, 108, 59, 107, 60, 61, 56, 71, 67, 55, 64, 71, 63, 74, 71, 66, 72, 65, 55, 50, 51, 71, 57, 63, 76, 52, 74, 60, 63, 63, 54, 47, 59, 42, 70, 60, 111, 56, 55, 70, 70, 51, 73, 70, 56, 56, 60, 56, 68, 73, 53, 67, 69, 60, 85, 89, 68, 65, 88, 88, 77, 50, 36, 78, 49, 56, 75, 59, 67, 73, 59, 67, 81, 67, 52, 50, 59, 69, 59, 70, 66, 61, 77, 59, 118, 62, 65, 71, 58, 45, 62, 45, 93, 64, 90, 62, 59, 89, 58, 57, 67, 64, 62, 52, 61, 47, 54, 49, 82, 69, 64, 60, 112, 50, 61, 99, 66, 82, 60, 54, 79, 69, 75, 84, 64, 64, 113, 67, 65, 57, 53, 48, 68, 62, 71, 62, 43, 59, 75, 56, 105, 64, 72, 67, 69, 79, 91, 52, 74, 63, 71, 61, 72, 71, 67, 65, 55, 74, 56, 75, 60, 57, 78, 83, 58, 67, 61, 70, 70, 53, 72, 78, 65, 63, 68, 64, 66, 57, 64, 64, 73, 69, 68, 70, 68, 65, 56, 60, 56, 95, 79, 51, 56, 63, 65, 70, 71, 90, 62, 69, 68, 73, 64, 60, 79, 66, 62, 84, 51, 66, 78, 69, 75, 67, 60, 60, 87, 64, 59, 70, 74, 80, 61, 66, 52, 64, 53, 80, 53, 65, 54, 79, 60, 42, 65, 56, 66, 64, 60, 68, 65, 63, 61, 75, 49, 62, 77, 54, 78, 51, 58, 64, 60, 53, 67, 58, 72, 77, 50, 66, 63, 63, 59, 74, 79, 50, 66, 63, 61, 56, 49, 57, 79, 65, 103, 70, 82, 50, 72, 52, 51, 82, 52, 57, 54, 70, 82, 61, 62, 58, 68, 67, 70, 64, 70, 68, 62, 54, 50, 57, 67, 56, 60, 58, 70, 67, 70, 76, 54, 64, 60, 58, 72, 54, 59, 63, 74, 60, 116, 65, 66, 73, 56, 60, 59, 63, 69, 79, 68, 68, 66, 107, 77, 70, 62, 57, 71, 86, 103, 90, 61, 66, 79, 64, 54, 51, 58, 63, 109, 77, 71, 76, 71, 58, 63, 66, 64, 66, 53, 68, 69, 38, 62, 52, 96, 50, 78, 46, 41, 72, 122, 114, 68, 89, 53, 74, 54, 57, 94, 55, 55, 66, 61, 58, 79, 58, 53, 50, 69, 57, 85, 61, 53, 61, 67, 49, 59, 65, 73, 54, 59, 68, 64, 58, 70, 68, 67, 63, 102, 45, 58, 62, 78, 91, 41, 58, 69, 68, 71, 62, 58, 84, 68, 49, 66, 55, 70, 87, 58, 68, 43, 61, 72, 60, 69, 67, 84, 75, 77, 58, 58, 62, 54, 66, 64, 114, 76, 54, 61, 66, 64, 72, 74, 57, 74, 70, 86, 54, 59, 65, 63, 55, 64, 81, 70, 63, 47, 61, 77, 61, 65, 63, 67, 64, 52, 55, 84, 44, 73, 60, 70, 55, 50, 73, 58, 78, 44, 66, 57, 66, 47, 47, 66, 57, 53, 67, 64, 50, 69, 69, 62, 64, 67, 56, 70, 64, 74, 61, 71, 69, 63, 100, 53, 53, 65, 55, 68, 54, 63, 61, 66, 70, 67, 67, 82, 90, 62, 56, 65, 55, 67, 64, 77, 63, 57, 47, 62, 83, 64, 77, 50, 102, 51, 60, 56, 64, 88, 74, 65, 58, 60, 82, 83, 73, 92, 52, 57, 56, 70, 118, 41, 65, 61, 64, 73, 74, 71, 63, 67, 94, 53, 72, 49, 85, 72, 56, 48, 56, 58, 59, 53, 49, 65, 52, 85, 70, 57, 62, 77, 69, 72, 62, 54, 75, 65, 64, 56, 59, 62, 77, 67, 57, 64, 64, 68, 60, 65, 73, 58, 70, 68, 65, 68, 50, 61, 65, 57, 66, 76, 66, 68, 69, 49, 56, 69, 81, 95, 49, 81, 60, 58, 71, 71, 53, 75, 81, 82, 68, 68, 63, 66, 96, 76, 59, 56, 62, 68, 59, 53, 48, 67, 70, 114, 48, 100, 68, 59, 66, 98, 54, 63, 69, 91, 63, 61, 62, 40, 67, 77, 72, 74, 66, 71, 64, 60, 66, 70, 69, 46, 55, 58, 67, 51, 67, 70, 62, 71, 69, 77, 58, 63, 76, 45, 67, 52, 74, 49, 50, 65, 66, 61, 64, 71, 50, 84, 43, 56, 60, 80, 71, 64, 89, 76, 51, 69, 109, 62, 54, 52, 87, 61, 73, 78, 74, 61, 58, 87, 71, 72, 68, 64, 89, 60, 74, 53, 73, 70, 56, 94, 49, 58, 60, 52, 61, 77, 58, 70, 67, 70, 58, 82, 71, 86, 71, 69, 67, 67, 72, 65, 60, 52, 62, 74, 50, 52, 67, 60, 62, 75, 59, 68, 41, 59, 76, 88, 54, 59, 73, 122, 80, 61, 61, 62, 75, 83, 119, 72, 84, 41, 56, 72, 64, 71, 60, 43, 74, 53, 60, 75, 101, 48, 62, 72, 76, 64, 71, 81, 66, 77, 54, 51, 40, 40, 53, 67, 64, 54, 62, 84, 55, 57, 62, 49, 59, 71, 63, 71, 67, 58, 57, 46, 54, 57, 68, 44, 52, 77, 71, 41, 77, 77, 66, 70, 64, 77, 67, 66, 54, 68, 59, 109, 59, 81, 53, 69, 80, 45, 60, 72, 76, 73, 58, 62, 53, 59, 85, 81, 69, 67, 67, 67, 76, 73, 61, 56, 98, 46, 62, 112, 76, 64, 51, 55, 54, 72, 61, 68, 78, 54, 78, 88, 70, 73, 67, 51, 68, 66, 54, 62, 63, 53, 81, 55, 50, 84, 72, 100, 63, 61, 42, 83, 57, 58, 61, 59, 67, 69, 77, 43, 59, 60, 98, 65, 70, 52, 81, 79, 64, 66, 54, 48, 61, 63, 69, 50, 50, 56, 52, 94, 67, 78, 70, 71, 66, 57, 76, 49, 95, 66, 53, 64, 79, 62, 70, 71, 62, 40, 48, 64, 71, 55, 51, 55, 73, 77, 125, 82, 67, 48, 78, 64, 73, 47, 51, 77, 52, 61, 64, 72, 66, 70, 90, 87, 67, 58, 55, 95, 50, 55, 79, 81, 63, 72, 68, 64, 55, 53, 61, 83, 58, 56, 57, 54, 78, 68, 53, 68, 71, 92, 84, 64, 83, 50, 78, 74, 55, 75, 57, 62, 89, 54, 68, 58, 70, 64, 70, 56, 86, 62, 54, 63, 58, 77, 70, 83, 72, 77, 68, 69, 75, 66, 72, 49, 46, 62, 64, 70, 63, 63, 80, 75, 54, 66, 51, 77, 28, 70, 69, 64, 75, 122, 78, 54, 44, 68, 58, 63, 62, 59, 50, 41, 65, 47, 51, 68, 75, 56, 74, 66, 64, 61, 79, 69, 67, 75, 57, 54, 64, 66, 80, 83, 61, 68, 66, 69, 76, 58, 32, 65, 80, 55, 64, 45, 84, 47, 67, 61, 63, 118, 65, 93, 58, 81, 66, 55, 59, 67, 55, 63, 58, 70, 48, 56, 68, 73, 55, 61, 63, 64, 52, 80, 57, 79, 50, 63, 54, 63, 42, 50, 85, 62, 65, 61, 60, 41, 58, 68, 70, 65, 75, 105, 50, 54, 51, 57, 60, 76, 70, 67, 66, 72, 49, 47, 52, 70, 82, 51, 51, 56, 69, 78, 72, 71, 63, 79, 68, 66, 52, 73, 41, 73, 51, 55, 64, 105, 74, 66, 90, 50, 74, 71, 79, 69, 64, 52, 94, 63, 64, 50, 50, 92, 58, 75, 58, 70, 68, 61, 86, 58, 57, 66, 60, 71, 68, 101, 64, 56, 43, 44, 52, 52, 61, 82, 65, 67, 33, 64, 69, 60, 64, 77, 74, 59, 35, 53, 54, 50, 60, 63, 70, 61, 45, 63, 54, 70, 61, 71, 57, 56, 71, 66, 95, 60, 48, 60, 65, 55, 67, 92, 56, 78, 46, 61, 58, 71, 67, 57, 69, 68, 52, 63, 58, 109, 63, 62, 80, 65, 69, 40, 64, 65, 58, 80, 60, 43, 69, 60, 83, 80, 61, 62, 68, 119, 74, 50, 53, 63, 64, 77, 52, 57, 72, 67, 60, 57, 55, 81, 47, 58, 77, 77, 72, 63, 61, 78, 63, 64, 90, 65, 63, 71, 49, 58, 63, 62, 60, 91, 52, 64, 66, 62, 72, 72, 57, 56, 80, 67, 80, 67, 67, 69, 74, 80, 64, 64, 66, 58, 61, 57, 63, 70, 72, 53, 56, 84, 60, 81, 70, 63, 76, 54, 105, 137, 79, 72, 70, 51, 57, 66, 59, 66, 53, 94, 60, 39, 51, 75, 57, 50, 80, 64, 74, 60, 64, 75, 56, 76, 69, 79, 75, 89, 42, 69, 85, 83, 30, 70, 68, 54, 72, 72, 59, 65, 59, 63, 65, 69, 76, 108, 78, 66, 57, 60, 71, 95, 55, 76, 55, 64, 62, 63, 45, 52, 58, 75, 58, 77, 59, 59, 81, 61, 70, 68, 49, 47, 52, 64, 67, 54, 64, 55, 70, 68, 80, 79, 64, 61, 84, 69, 51, 42, 100, 64, 55, 70, 79, 64, 71, 64, 60, 70, 54, 65, 67, 67, 74, 87, 60, 76, 87, 71, 74, 77, 74, 54, 85, 50, 54, 60, 61, 77, 63, 67, 65, 53, 77, 50, 65, 64, 69, 61, 86, 92, 62, 88, 71, 72, 59, 77, 75, 93, 61, 79, 70, 58, 67, 54, 52, 70, 61, 68, 49, 64, 54, 55, 57, 74, 40, 65, 75, 91, 54, 53, 44, 77, 64, 55, 55, 63, 73, 42, 77, 74, 52, 44, 93, 57, 61, 73, 72, 58, 46, 93, 71, 55, 80, 67, 68, 101, 57, 65, 71, 66, 65, 71, 59, 41, 41, 64, 55, 71, 55, 68, 68, 46, 73, 79, 68, 57, 65, 65, 71, 68, 76, 47, 59, 74, 59, 98, 59, 74, 43, 66, 95, 71, 71, 52, 74, 60, 80, 78, 50, 72, 49, 79, 68, 62, 62, 46, 51, 55, 59, 68, 70, 59, 59, 75, 55, 105, 74, 42, 70, 60, 84, 92, 56, 66, 65, 47, 41, 68, 65, 59, 57, 59, 54, 61, 56, 65, 59, 52, 68, 52, 61, 80, 64, 69, 75, 78, 58, 70, 73, 62, 66, 61, 77, 54, 56, 78, 68, 74, 64, 100, 63, 55, 63, 61, 55, 77, 58, 57, 75, 63, 54, 49, 70, 54, 55, 61, 63, 63, 69, 54, 82, 71, 59, 84, 43, 74, 74, 66, 58, 83, 67, 56, 67, 55, 58, 43, 74, 56, 65, 82, 59, 69, 61, 51, 64, 52, 48, 77, 53, 58, 73, 95, 67, 48, 70, 66, 70, 74, 56, 89, 56, 58, 80, 66, 63, 67, 58, 54, 54, 66, 74, 73, 49, 70, 61, 72, 55, 68, 62, 80, 58, 48, 74, 91, 63, 73, 95, 75, 51, 81, 87, 58, 67, 65, 63, 69, 70, 70, 67, 78, 73, 51, 85, 57, 55, 62, 52, 63, 67, 62, 67, 62, 91, 73, 49, 95, 58, 59, 57, 57, 66, 94, 63, 61, 64, 58, 58, 66, 57, 65, 72, 61, 56, 58, 57, 81, 83, 73, 69, 58, 61, 61, 65, 45, 87, 108, 81, 74, 61, 113, 66, 52, 42, 74, 50, 59, 96, 63, 63, 73, 68, 58, 72, 64, 73, 49, 53, 66, 71, 60, 87, 57, 64, 61, 74, 63, 58, 82, 71, 51, 80, 62, 57, 77, 64, 68, 52, 72, 43, 76, 72, 63, 69, 74, 51, 79, 52, 64, 66, 76, 64, 57, 64, 55, 63, 59, 43, 73, 64, 64, 90, 44, 56, 67, 80, 65, 57, 58, 70, 83, 63, 98, 52, 79, 57, 58, 72, 52, 58, 86, 84, 80, 60, 65, 51, 74, 76, 76, 59, 58, 54, 55, 67, 79, 63, 72, 100, 74, 60, 37, 99, 59, 62, 65, 77, 51, 70, 73, 66, 66, 59, 75, 47, 63, 52, 54, 56, 64, 66, 76, 58, 71, 86, 43, 54, 48, 64, 73, 71, 67, 57, 95, 67, 84, 54, 54, 72, 87, 93, 90, 78, 65, 101, 65, 77, 71, 63, 66, 50, 62, 71, 54, 64, 63, 60, 61, 54, 69, 43, 89, 69, 75, 57, 79, 66, 71, 82, 52, 73, 74, 60, 60, 48, 72, 56, 65, 48, 74, 85, 62, 42, 55, 55, 56, 59, 71, 148, 70, 99, 63, 57, 66, 55, 73, 73, 57, 77, 78, 75, 56, 66, 66, 74, 80, 72, 52, 72, 107, 59, 71, 55, 68, 71, 59, 56, 67, 66, 70, 79, 59, 46, 61, 53, 74, 76, 71, 65, 66, 84, 123, 91, 64, 93, 45, 67, 55, 64, 55, 69, 69, 88, 58, 75, 62, 48, 58, 48, 73, 86, 51, 72, 62, 69, 55, 60, 72, 72, 69, 84, 70, 63, 66, 79, 48, 83, 62, 68, 46, 53, 52, 56, 56, 83, 37, 73, 68, 59, 70, 40, 79, 50, 112, 63, 57, 60, 76, 71, 72, 64, 57, 58, 47, 58, 77, 72, 56, 98, 69, 58, 41, 58, 53, 85, 86, 82, 92, 76, 75, 70, 54, 72, 74, 52, 79, 63, 56, 45, 64, 120, 61, 66, 77, 61, 75, 39, 66, 67, 62, 63, 123, 66, 73, 54, 61, 68, 64, 78, 74, 82, 67, 54, 54, 46, 74, 59, 52, 57, 94, 61, 77, 79, 70, 66, 75, 69, 72, 52, 71, 70, 58, 97, 65, 60, 54, 55, 72, 53, 55, 61, 54, 61, 91, 62, 57, 63, 35, 53, 66, 66, 67, 63, 65, 54, 50, 73, 76, 72, 62, 65, 97, 63, 59, 76, 68, 84, 76, 65, 74, 64, 62, 52, 55, 65, 72, 48, 86, 55, 57, 59, 55, 54, 77, 92, 59, 62, 56, 86, 59, 50, 66, 68, 74, 56, 80, 50, 69, 57, 81, 60, 63, 80, 63, 58, 77, 91, 78, 57, 77, 55, 70, 67, 56, 96, 62, 76, 47, 40, 76, 72, 48, 76, 75, 51, 55, 54, 78, 60, 71, 55, 59, 61, 68, 66, 65, 76, 77, 67, 67, 75, 59, 65, 63, 63, 55, 64, 52, 63, 41, 63, 72, 65, 78, 65, 63, 63, 64, 68, 61, 62, 62, 55, 88, 54, 95, 59, 65, 83, 56, 85, 39, 58, 72, 77, 68, 60, 51, 75, 57, 78, 78, 54, 57, 52, 46, 62, 54, 65, 56, 63, 75, 63, 55, 78, 75, 61, 56, 69, 69, 73, 57, 41, 72, 50, 63, 57, 76, 65, 70, 94, 58, 60, 56, 60, 68, 69, 76, 71, 77, 66, 48, 105, 60, 75, 81, 61, 57, 64, 82, 57, 56, 61, 80, 61, 90, 76, 42, 58, 66, 62, 78, 58, 61, 66, 61, 52, 58, 54, 58, 64, 43, 100, 61, 64, 125, 59, 79, 70, 52, 68, 60, 62, 66, 57, 103, 66, 56, 54, 60, 60, 69, 45, 51, 68, 47, 74, 59, 53, 44, 74, 67, 58, 62, 79, 50, 61, 58, 93, 62, 79, 67, 73, 54, 64, 79, 69, 64, 57, 71, 53, 125, 91, 69, 43, 44, 98, 78, 67, 78, 58, 56, 59, 61, 52, 59, 66, 84, 54, 54, 78, 69, 85, 54, 62, 81, 74, 80, 74, 76, 93, 44, 85, 66, 52, 59, 68, 69, 57, 65, 101, 88, 64, 57, 139, 57, 56, 80, 67, 69, 96, 70, 58, 71, 58, 75, 72, 68, 56, 63, 70, 49, 92, 88, 78, 69, 76, 43, 84, 59, 47, 60, 45, 68, 62, 64, 53, 56, 65, 50, 66, 63, 55, 72, 73, 89, 63, 57, 65, 69, 65, 53, 75, 84, 80, 56, 64, 66, 51, 42, 62, 50, 57, 54, 57, 52, 63, 69, 52, 91, 59, 68, 61, 54, 47, 71, 77, 68, 58, 70, 69, 68, 55, 78, 70, 61, 58, 56, 97, 57, 70, 65, 73, 70, 52, 88, 64, 62, 75, 62, 66, 83, 49, 62, 68, 67, 64, 73, 44, 65, 55, 53, 72, 58, 63, 97, 68, 62, 67, 64, 47, 61, 58, 68, 65, 63, 66, 54, 57, 88, 52, 116, 76, 61, 57, 77, 64, 59, 57, 75, 47, 70, 74, 87, 53, 87, 63, 58, 69, 55, 54, 55, 45, 41, 87, 57, 56, 52, 53, 81, 52, 65, 86, 47, 84, 71, 54, 72, 70, 98, 71, 45, 86, 72, 66, 57, 56, 65, 86, 83, 71, 98, 70, 88, 72, 56, 72, 42, 65, 41, 66, 46, 56, 58, 75, 65, 70, 61, 92, 50, 52, 57, 70, 63, 59, 60, 46, 59, 75, 84, 63, 72, 60, 63, 55, 59, 62, 55, 91, 53, 62, 56, 61, 47, 59, 68, 43, 62, 54, 121, 69, 82, 77, 96, 42, 65, 54, 76, 81, 83, 91, 89, 53, 66, 65, 85, 55, 84, 72, 62, 69, 57, 77, 63, 60, 61, 72, 66, 51, 65, 58, 55, 71, 93, 53, 78, 55, 62, 68, 81, 41, 95, 62, 56, 56, 64, 77, 60, 75, 80, 57, 70, 72, 84, 69, 78, 65, 92, 65, 55, 72, 51, 93, 64, 81, 76, 99, 71, 54, 61, 56, 54, 63, 74, 58, 44, 58, 74, 73, 79, 51, 65, 73, 67, 68, 58, 60, 69, 108, 70, 56, 75, 56, 70, 109, 69, 43, 65, 55, 58, 79, 66, 63, 63, 68, 79, 58, 60, 41, 48, 55, 61, 68, 50, 67, 57, 52, 63, 63, 62, 70, 52, 54, 81, 75, 91, 85, 76, 76, 75, 59, 60, 94, 54, 61, 89, 63, 56, 80, 88, 51, 61, 70, 55, 53, 91, 55, 64, 48, 67, 43, 60, 70, 65, 69, 67, 65, 63, 61, 95, 67, 64, 67, 90, 59, 59, 57, 76, 42, 44, 61, 53, 66, 53, 72, 70, 78, 68, 66, 69, 51, 38, 67, 64, 53, 75, 73, 66, 76, 51, 76, 60, 70, 55, 75, 59, 57, 81, 64, 64, 68, 67, 76, 53, 64, 75, 50, 87, 51, 51, 55, 66, 48, 77, 65, 71, 69, 65, 89, 55, 51, 64, 57, 83, 89, 88, 64, 69, 69, 75, 49, 67, 90, 54, 55, 57, 62, 83, 64, 69, 57, 59, 50, 72, 80, 62, 50, 58, 91, 80, 53, 84, 78, 66, 70, 67, 67, 82, 60, 78, 59, 45, 53, 62, 88, 66, 72, 47, 82, 64, 44, 60, 66, 93, 54, 60, 59, 78, 59, 69, 67, 88, 63, 55, 61, 65, 68, 42, 35, 80, 75, 78, 67, 77, 79, 47, 53, 65, 53, 63, 49, 65, 55, 62, 72, 73, 117, 72, 48, 59, 56, 58, 116, 64, 75, 60, 64, 47, 57, 54, 54, 79, 49, 69, 74, 43, 54, 60, 74, 95, 55, 74, 64, 89, 87, 59, 66, 69, 40, 59, 74, 58, 47, 58, 47, 82, 66, 58, 65, 65, 66, 54, 50, 65, 83, 67, 63, 52, 97, 50, 72, 82, 56, 82, 90, 65, 71, 73, 46, 59, 51, 53, 72, 79, 89, 67, 49, 54, 64, 57, 67, 85, 53, 69, 65, 78, 49, 54, 73, 73, 79, 53, 72, 61, 50, 60, 62, 82, 57, 79, 59, 48, 99, 58, 77, 101, 68, 139, 67, 47, 47, 56, 65, 64, 57, 56, 49, 61, 61, 57, 55, 72, 57, 69, 54, 98, 83, 51, 63, 60, 92, 82, 72, 52, 62, 62, 66, 57, 44, 59, 37, 80, 55, 66, 88, 62, 65, 57, 67, 66, 92, 82, 58, 74, 58, 115, 57, 103, 83, 71, 68, 77, 62, 53, 84, 82, 56, 87, 53, 79, 58, 62, 79, 62, 56, 97, 51, 58, 54, 59, 55, 45, 61, 43, 76, 80, 105, 44, 79, 74, 47, 56, 46, 72, 45, 48, 61, 85, 52, 54, 65, 103, 65, 57, 50, 69, 60, 44, 67, 70, 93, 62, 57, 59, 70, 45, 64, 46, 54, 58, 77, 79, 69, 85, 57, 62, 74, 64, 80, 58, 73, 99, 58, 78, 63, 49, 59, 59, 73, 62, 57, 72, 77, 69, 59, 61, 74, 83, 72, 60, 83, 58, 72, 85, 85, 67, 60, 71, 59, 83, 40, 72, 56, 80, 82, 53, 59, 77, 67, 62, 53, 52, 65, 49, 72, 65, 81, 62, 58, 57, 84, 63, 63, 80, 52, 50, 61, 59, 50, 76, 67, 62, 70, 71, 67, 65, 62, 82, 81, 34, 56, 46, 66, 64, 50, 82, 47, 56, 56, 74, 77, 59, 69, 50, 58, 73, 45, 62, 80, 87, 66, 65, 76, 67, 72, 87, 42, 67, 80, 56, 52, 52, 90, 52, 81, 92, 42, 58, 52, 95, 55, 75, 74, 61, 79, 60, 74, 78, 54, 47, 81, 58, 74, 60, 73, 72, 67, 63, 67, 82, 70, 75, 60, 64, 67, 65, 59, 78, 44, 48, 64, 39, 41, 86, 53, 75, 66, 58, 73, 77, 65, 57, 51, 71, 70, 55, 65, 96, 72, 92, 48, 61, 74, 75, 51, 80, 59, 60, 70, 54, 64, 47, 62, 85, 73, 62, 66, 32, 105, 144, 72, 65, 90, 76, 64, 52, 69, 78, 63, 108, 66, 44, 49, 63, 62, 66, 70, 69, 62, 50, 55, 78, 59, 66, 49, 64, 70, 58, 66, 43, 79, 82, 126, 76, 38, 62, 91, 73, 52, 62, 64, 77, 46, 59, 53, 75, 71, 62, 61, 72, 68, 71, 56, 56, 66, 50, 66, 56, 63, 64, 59, 74, 61, 61, 86, 60, 61, 72, 64, 100, 48, 61, 66, 81, 89, 76, 80, 51, 65, 61, 51, 71, 53, 76, 69, 67, 49, 83, 100, 66, 54, 66, 70, 47, 72, 52, 85, 66, 58, 68, 40, 56, 68, 71, 56, 59, 95, 63, 67, 67, 78, 46, 45, 65, 38, 79, 55, 80, 77, 69, 77, 59, 56, 63, 64, 78, 71, 67, 66, 86, 58, 57, 75, 71, 55, 80, 79, 95, 80, 76, 38, 66, 56, 49, 80, 70, 67, 52, 82, 62, 53, 76, 67, 59, 67, 76, 70, 48, 46, 90, 83, 57, 53, 85, 54, 56, 65, 60, 52, 60, 61, 50, 93, 67, 54, 92, 67, 63, 55, 75, 60, 49, 79, 51, 66, 95, 52, 59, 52, 58, 61, 69, 78, 58, 51, 69, 65, 60, 54, 49, 87, 46, 71, 69, 57, 64, 47, 64, 68, 53, 52, 59, 56, 51, 63, 95, 93, 60, 61, 69, 75, 56, 76, 53, 70, 57, 70, 71, 59, 78, 73, 51, 56, 63, 55, 72, 58, 66, 63, 53, 74, 101, 62, 72, 48, 65, 87, 71, 74, 65, 89, 81, 54, 56, 76, 57, 58, 67, 61, 42, 70, 55, 64, 50, 82, 55, 53, 45, 78, 76, 64, 75, 53, 47, 60, 90, 71, 64, 66, 65, 60, 71, 66, 63, 60, 68, 70, 83, 55, 72, 57, 56, 75, 48, 61, 87, 49, 53, 72, 68, 62, 64, 67, 73, 58, 61, 85, 49, 54, 49, 55, 79, 112, 102, 69, 86, 76, 68, 60, 96, 55, 60, 44, 57, 73, 47, 51, 55, 59, 71, 58, 87, 64, 62, 73, 82, 71, 57, 77, 48, 49, 58, 82, 73, 73, 63, 66, 55, 70, 67, 58, 61, 57, 57, 42, 92, 70, 57, 57, 59, 43, 70, 58, 76, 65, 56, 64, 93, 55, 69, 54, 54, 73, 70, 75, 61, 105, 68, 55, 64, 96, 64, 70, 80, 48, 68, 56, 56, 63, 60, 54, 51, 65, 81, 60, 68, 57, 65, 67, 65, 64, 74, 82, 83, 54, 73, 65, 64, 65, 69, 63, 78, 51, 52, 81, 69, 62, 70, 60, 98, 51, 54, 56, 55, 60, 57, 71, 45, 68, 61, 63, 65, 57, 73, 69, 59, 63, 72, 67, 104, 73, 75, 69, 59, 64, 61, 77, 84, 73, 55, 90, 70, 94, 76, 51, 91, 67, 89, 60, 71, 72, 60, 69, 58, 47, 69, 68, 69, 60, 76, 62, 56, 69, 51, 56, 59, 68, 75, 60, 77, 54, 106, 60, 55, 61, 75, 56, 59, 52, 71, 67, 61, 56, 54, 49, 53, 70, 49, 57, 80, 65, 70, 77, 55, 83, 55, 87, 56, 68, 80, 76, 97, 49, 79, 81, 67, 74, 75, 53, 71, 56, 90, 42, 70, 59, 70, 76, 56, 69, 47, 85, 64, 102, 75, 48, 71, 47, 82, 84, 61, 56, 66, 55, 75, 62, 65, 110, 61, 64, 72, 71, 92, 65, 57, 58, 47, 71, 62, 63, 67, 61, 64, 82, 70, 78, 57, 66, 67, 69, 68, 80, 74, 76, 54, 60, 56, 74, 83, 89, 77, 49, 69, 94, 54, 49, 60, 64, 61, 59, 71, 69, 46, 55, 64, 66, 82, 52, 48, 50, 91, 61, 76, 50, 56, 52, 64, 72, 83, 59, 66, 62, 61, 54, 32, 55, 71, 70, 63, 71, 59, 50, 51, 61, 59, 73, 82, 106, 42, 77, 60, 58, 66, 56, 58, 49, 85, 80, 87, 49, 70, 62, 62, 66, 106, 63, 57, 72, 64, 76, 53, 61, 55, 75, 56, 62, 46, 50, 66, 87, 61, 63, 53, 53, 60, 66, 63, 63, 81, 56, 95, 89, 65, 82, 53, 51, 75, 78, 69, 64, 55, 75, 73, 66, 68, 63, 50, 73, 94, 105, 72, 73, 70, 71, 51, 61, 63, 77, 73, 85, 82, 78, 58, 72, 68, 48, 76, 71, 56, 56, 56, 63, 61, 70, 55, 79, 65, 64, 53, 61, 90, 78, 114, 57, 51, 105, 66, 58, 64, 62, 49, 67, 87, 55, 65, 54, 62, 54, 54, 67, 66, 48, 69, 68, 99, 48, 85, 57, 64, 78, 75, 62, 78, 63, 46, 70, 69, 53, 67, 61, 57, 51, 69, 66, 50, 62, 69, 57, 77, 70, 121, 47, 50, 101, 109, 53, 63, 80, 66, 58, 67, 75, 79, 86, 74, 70, 52, 76, 68, 52, 80, 59, 63, 79, 66, 68, 52, 62, 81, 54, 61, 95, 63, 100, 64, 48, 82, 68, 54, 77, 65, 47, 79, 65, 64, 68, 68, 82, 48, 53, 60, 69, 62, 65, 66, 76, 62, 59, 79, 60, 63, 77, 79, 76, 84, 54, 58, 59, 67, 59, 67, 125, 62, 67, 71, 47, 77, 68, 51, 81, 73, 46, 65, 65, 45, 45, 63, 50, 62, 55, 51, 61, 82, 64, 49, 67, 52, 48, 59, 76, 53, 57, 60, 76, 78, 71, 75, 67, 63, 72, 44, 72, 76, 65, 66, 46, 74, 58, 57, 70, 43, 85, 49, 62, 66, 62, 50, 80, 80, 65, 55, 58, 72, 94, 57, 66, 62, 61, 89, 56, 48, 63, 73, 77, 63, 58, 54, 47, 79, 47, 72, 66, 75, 55, 61, 65, 60, 48, 72, 64, 59, 87, 70, 62, 91, 56, 77, 75, 59, 83, 105, 54, 55, 60, 73, 79, 57, 61, 61, 78, 104, 71, 66, 63, 99, 75, 71, 67, 47, 78, 69, 69, 67, 48, 54, 66, 55, 83, 55, 38, 67, 95, 59, 60, 65, 59, 65, 71, 63, 62, 60, 61, 63, 71, 69, 51, 75, 63, 79, 68, 76, 44, 61, 69, 48, 53, 56, 81, 63, 66, 54, 73, 82, 70, 93, 52, 57, 82, 69, 86, 49, 59, 67, 66, 55, 72, 65, 75, 87, 88, 60, 72, 66, 85, 126, 68, 53, 58, 54, 63, 54, 62, 47, 57, 101, 62, 62, 64, 87, 67, 52, 63, 64, 55, 55, 78, 67, 55, 72, 63, 84, 72, 70, 61, 50, 75, 76, 65, 73, 62, 67, 80, 55, 49, 68, 68, 69, 63, 60, 43, 66, 96, 53, 69, 69, 63, 69, 56, 56, 65, 51, 62, 71, 65, 78, 67, 67, 59, 60, 71, 75, 76, 79, 53, 83, 88, 55, 70, 55, 85, 72, 67, 57, 75, 82, 65, 61, 60, 76, 68, 50, 70, 63, 105, 50, 61, 66, 55, 59, 69, 60, 61, 100, 69, 75, 63, 66, 59, 49, 68, 66, 111, 57, 68, 47, 58, 69, 51, 48, 65, 90, 59, 82, 84, 67, 48, 56, 55, 85, 95, 65, 74, 50, 73, 74, 46, 84, 62, 65, 71, 47, 52, 76, 67, 60, 79, 45, 76, 74, 44, 77, 87, 49, 60, 67, 66, 80, 52, 70, 73, 70, 61, 73, 64, 78, 61, 85, 51, 65, 58, 62, 73, 77, 52, 67, 60, 59, 98, 68, 76, 71, 74, 72, 54, 77, 64, 73, 53, 62, 54, 95, 62, 64, 67, 76, 63, 55, 73, 70, 40, 46, 57, 62, 53, 55, 57, 42, 91, 75, 65, 85, 69, 78, 65, 75, 67, 70, 50, 75, 73, 73, 93, 49, 54, 76, 69, 50, 51, 68, 60, 70, 81, 71, 76, 66, 90, 52, 56, 68, 56, 58, 80, 64, 61, 57, 69, 94, 59, 86, 60, 59, 55, 80, 61, 75, 73, 93, 57, 75, 106, 64, 58, 68, 60, 61, 75, 56, 86, 52, 66, 67, 55, 52, 73, 77, 57, 93, 65, 66, 58, 60, 70, 73, 52, 57, 74, 56, 80, 73, 57, 72, 58, 78, 62, 70, 60, 65, 85, 74, 67, 72, 63, 75, 93, 61, 67, 45, 58, 70, 53, 81, 67, 76, 65, 50, 66, 95, 68, 79, 48, 64, 64, 89, 48, 65, 65, 55, 74, 52, 79, 69, 74, 60, 47, 71, 64, 91, 72, 49, 54, 63, 62, 57, 82, 47, 59, 53, 71, 62, 60, 58, 51, 63, 86, 68, 72, 67, 45, 62, 53, 76, 58, 79, 82, 75, 71, 57, 65, 66, 72, 71, 67, 94, 58, 52, 69, 60, 80, 56, 86, 75, 83, 72, 52, 82, 72, 62, 51, 83, 48, 73, 57, 71, 69, 52, 59, 47, 55, 55, 65, 58, 59, 61, 74, 67, 64, 64, 56, 81, 57, 86, 67, 50, 101, 69, 41, 58, 64, 54, 55, 73, 53, 63, 70, 77, 57, 65, 36, 68, 63, 57, 74, 58, 75, 68, 71, 73, 55, 57, 54, 47, 87, 68, 61, 110, 62, 73, 66, 59, 87, 72, 77, 85, 73, 79, 80, 58, 74, 75, 69, 42, 47, 64, 51, 58, 99, 76, 58, 69, 72, 59, 84, 77, 62, 60, 66, 71, 60, 43, 66, 65, 118, 78, 53, 49, 75, 79, 61, 60, 64, 104, 71, 64, 69, 65, 52, 42, 60, 63, 65, 46, 44, 76, 62, 60, 59, 53, 86, 76, 71, 70, 60, 58, 69, 59, 55, 94, 95, 83, 70, 72, 61, 48, 58, 59, 87, 67, 62, 60, 68, 64, 69, 55, 65, 60, 64, 52, 87, 64, 73, 58, 58, 80, 54, 73, 66, 64, 120, 62, 77, 57, 70, 72, 58, 46, 72, 64, 62, 55, 83, 64, 87, 58, 64, 50, 50, 62, 71, 63, 70, 55, 75, 60, 54, 57, 73, 82, 63, 53, 64, 72, 87, 58, 64, 66, 58, 62, 82, 58, 60, 63, 68, 60, 64, 74, 86, 71, 73, 63, 73, 64, 64, 57, 64, 74, 68, 96, 48, 62, 63, 54, 64, 67, 68, 60, 42, 55, 77, 70, 76, 76, 63, 58, 66, 65, 56, 69, 53, 69, 76, 77, 72, 53, 61, 61, 50, 56, 50, 59, 51, 82, 105, 49, 71, 65, 59, 64, 90, 113, 55, 53, 51, 52, 51, 59, 59, 56, 62, 54, 68, 75, 58, 50, 70, 59, 69, 61, 52, 63, 64, 49, 58, 63, 88, 86, 65, 57, 50, 67, 62, 71, 63, 63, 76, 63, 50, 87, 73, 62, 48, 65, 71, 61, 68, 52, 53, 52, 73, 78, 64, 66, 53, 54, 60, 77, 89, 76, 86, 85, 62, 86, 63, 68, 58, 55, 57, 72, 87, 71, 62, 52, 94, 67, 58, 95, 58, 102, 72, 69, 64, 61, 58, 61, 91, 60, 59, 67, 61, 33, 61, 60, 76, 59, 76, 46, 74, 64, 66, 89, 93, 71, 50, 55, 53, 51, 84, 55, 61, 52, 69, 61, 75, 79, 70, 49, 60, 59, 61, 56, 58, 60, 62, 62, 60, 109, 49, 94, 81, 120, 59, 61, 55, 85, 79, 61, 69, 86, 81, 110, 61, 63, 74, 58, 65, 104, 49, 55, 69, 56, 69, 54, 68, 76, 53, 60, 86, 58, 60, 73, 77, 68, 72, 51, 64, 68, 70, 79, 51, 58, 66, 58, 63, 75, 71, 65, 79, 58, 68, 67, 71, 76, 64, 63, 48, 58, 57, 67, 56, 57, 82, 62, 58, 72, 56, 69, 121, 66, 69, 49, 88, 90, 72, 58, 48, 49, 58, 59, 61, 70, 55, 61, 84, 66, 86, 46, 46, 54, 61, 65, 62, 66, 62, 65, 70, 76, 100, 70, 90, 57, 50, 70, 57, 60, 52, 62, 75, 52, 46, 83, 79, 52, 51, 58, 74, 94, 49, 58, 67, 79, 64, 55, 57, 83, 73, 80, 61, 67, 68, 68, 49, 74, 52, 51, 51, 60, 68, 66, 76, 46, 50, 58, 55, 85, 71, 78, 56, 45, 68, 68, 76, 65, 73, 62, 55, 54, 62, 61, 55, 64, 75, 62, 82, 53, 62, 79, 50, 69, 52, 62, 49, 53, 65, 71, 71, 70, 57, 57, 44, 104, 61, 73, 59, 65, 55, 83, 47, 54, 59, 57, 56, 59, 86, 67, 59, 68, 113, 73, 59, 63, 69, 80, 62, 80, 64, 64, 56, 52, 83, 51, 51, 77, 66, 76, 68, 76, 68, 68, 64, 69, 55, 55, 68, 65, 64, 53, 66, 69, 59, 54, 64, 76, 76, 86, 69, 55, 61, 65, 68, 49, 62, 64, 44, 55, 67, 53, 85, 59, 89, 77, 76, 61, 57, 63, 57, 78, 71, 64, 49, 61, 79, 60, 70, 80, 64, 68, 68, 67, 64, 65, 73, 58, 60, 64, 62, 56, 61, 83, 66, 57, 73, 73, 62, 71, 54, 68, 127, 61, 69, 80, 65, 57, 53, 59, 52, 70, 79, 69, 72, 85, 80, 90, 60, 44, 61, 75, 57, 56, 69, 74, 59, 73, 51, 87, 60, 68, 57, 73, 68, 86, 42, 60, 62, 62, 58, 57, 66, 75, 55, 48, 67, 66, 64, 79, 45, 66, 114, 43, 62, 68, 54, 63, 82, 57, 76, 55, 67, 68, 69, 73, 87, 100, 60, 58, 45, 69, 80, 56, 60, 84, 48, 76, 63, 60, 65, 91, 66, 74, 88, 66, 62, 53, 70, 76, 77, 54, 61, 68, 53, 74, 58, 77, 67, 66, 57, 55, 67, 78, 63, 48, 63, 73, 72, 62, 65, 65, 78, 67, 71, 78, 69, 54, 65, 71, 57, 88, 49, 69, 57, 72, 64, 57, 74, 61, 55, 68, 77, 74, 69, 56, 71, 65, 62, 48, 64, 68, 65, 66, 67, 60, 58, 65, 43, 74, 69, 129, 61, 70, 61, 66, 59, 76, 64, 63, 62, 70, 73, 72, 86, 71, 67, 48, 68, 45, 60, 67, 57, 74, 58, 66, 53, 60, 69, 62, 57, 60, 56, 68, 84, 50, 40, 64, 80, 48, 66, 56, 60, 76, 44, 38, 54, 55, 60, 68, 70, 76, 62, 78, 79, 64, 72, 68, 49, 49, 71, 79, 70, 80, 60, 75, 69, 85, 67, 52, 116, 67, 73, 72, 65, 66, 69, 56, 60, 54, 59, 81, 52, 67, 69, 80, 74, 59, 68, 63, 65, 55, 63, 68, 56, 54, 59, 60, 40, 74, 83, 62, 80, 60, 79, 64, 58, 63, 77, 65, 59, 66, 62, 82, 92, 56, 78, 60, 87, 57, 68, 62, 55, 84, 50, 55, 65, 60, 79, 52, 66, 91, 73, 106, 54, 53, 58, 49, 59, 89, 47, 109, 67, 56, 78, 50, 68, 64, 51, 64, 63, 92, 52, 45, 49, 69, 63, 71, 62, 69, 89, 61, 65, 55, 65, 78, 72, 51, 59, 66, 56, 67, 72, 80, 66, 68, 75, 67, 54, 56, 60, 69, 68, 72, 57, 63, 72, 59, 61, 75, 70, 101, 92, 71, 59, 74, 96, 62, 71, 73, 68, 83, 49, 56, 60, 75, 66, 70, 80, 60, 64, 68, 51, 58, 61, 56, 59, 75, 71, 47, 100, 76, 69, 67, 102, 71, 64, 61, 76, 63, 68, 75, 75, 67, 63, 42, 70, 56, 56, 63, 58, 60, 59, 71, 71, 62, 63, 57, 66, 68, 56, 83, 63, 64, 64, 52, 72, 66, 89, 73, 65, 67, 84, 63, 78, 92, 48, 62, 73, 80, 82, 63, 57, 60, 57, 79, 71, 60, 52, 70, 118, 55, 59, 47, 75, 83, 74, 76, 54, 67, 63, 65, 67, 98, 56, 67, 42, 66, 62, 61, 64, 52, 64, 97, 71, 59, 64, 67, 70, 87, 54, 48, 72, 66, 54, 56, 56, 68, 75, 66, 58, 53, 65, 62, 51, 53, 115, 98, 76, 64, 53, 89, 68, 63, 57, 61, 72, 66, 63, 90, 68, 61, 57, 66, 55, 57, 62, 73, 60, 70, 68, 52, 78, 87, 57, 53, 71, 58, 71, 67, 69, 68, 77, 64, 56, 55, 58, 60, 61, 65, 67, 58, 68, 66, 86, 84, 76, 67, 90, 51, 78, 59, 47, 51, 59, 67, 73, 69, 61, 69, 60, 63, 60, 60, 117, 56, 50, 53, 70, 63, 56, 64, 95, 58, 78, 61, 66, 71, 59, 76, 49, 53, 58, 64, 66, 66, 61, 50, 59, 66, 68, 57, 84, 82, 68, 84, 54, 69, 63, 64, 63, 72, 63, 68, 70, 91, 73, 77, 65, 55, 89, 65, 79, 64, 79, 63, 52, 66, 54, 62, 58, 62, 98, 42, 102, 51, 50, 62, 95, 72, 63, 53, 63, 86, 52, 64, 95, 76, 68, 57, 61, 67, 93, 76, 97, 61, 69, 55, 76, 61, 67, 62, 53, 79, 89, 69, 63, 64, 63, 69, 59, 61, 60, 62, 85, 62, 41, 75, 61, 62, 71, 69, 61, 53, 52, 80, 57, 51, 55, 68, 72, 67, 73, 69, 50, 79, 54, 52, 79, 80, 86, 79, 78, 59, 79, 57, 57, 98, 76, 65, 86, 58, 57, 64, 61, 57, 69, 95, 66, 63, 67, 66, 66, 66, 63, 77, 77, 58, 59, 64, 75, 58, 57, 57, 69, 86, 55, 62, 84, 87, 62, 79, 57, 50, 59, 53, 74, 72, 64, 61, 83, 75, 66, 62, 78, 82, 62, 59, 53, 56, 69, 60, 78, 60, 73, 130, 66, 63, 55, 55, 73, 66, 75, 57, 73, 66, 64, 61, 56, 60, 53, 57, 52, 66, 54, 76, 69, 53, 92, 59, 37, 65, 68, 63, 61, 58, 75, 55, 53, 50, 59, 60, 83, 92, 69, 79, 43, 81, 51, 62, 62, 79, 72, 89, 49, 75, 52, 74, 75, 79, 57, 60, 72, 61, 83, 94, 67, 48, 77, 49, 63, 72, 58, 67, 80, 66, 117, 72, 57, 69, 74, 56, 64, 73, 70, 77, 78, 71, 53, 66, 59, 61, 110, 56, 77, 61, 69, 64, 53, 58, 75, 70, 54, 59, 73, 73, 75, 54, 97, 55, 79, 69, 61, 70, 69, 64, 68, 81, 65, 78, 53, 70, 53, 66, 65, 72, 52, 61, 66, 66, 56, 70, 52, 81, 66, 57, 58, 58, 69, 54, 52, 60, 54, 46, 68, 59, 58, 60, 64, 92, 54, 53, 68, 85, 92, 64, 58, 56, 71, 51, 50, 67, 64, 58, 48, 61, 55, 94, 60, 43, 83, 70, 40, 69, 48, 57, 51, 58, 41, 60, 70, 49, 71, 79, 50, 84, 76, 67, 73, 57, 59, 66, 68, 54, 105, 67, 52, 66, 66, 85, 73, 82, 58, 75, 80, 56, 51, 63, 60, 65, 61, 54, 65, 46, 39, 72, 76, 50, 81, 56, 58, 61, 60, 56, 60, 72, 72, 70, 86, 90, 57, 70, 74, 50, 74, 77, 75, 64, 74, 77, 51, 78, 59, 71, 61, 63, 68, 65, 54, 46, 69, 55, 90, 49, 60, 61, 79, 116, 96, 47, 63, 55, 77, 48, 69, 51, 69, 57, 59, 68, 76, 55, 62, 62, 47, 68, 82, 91, 72, 56, 83, 99, 73, 63, 71, 68, 71, 68, 106, 73, 68, 82, 100, 63, 58, 61, 56, 73, 59, 79, 61, 64, 79, 64, 72, 61, 70, 52, 48, 69, 59, 103, 60, 55, 52, 63, 64, 56, 59, 67, 81, 86, 79, 62, 90, 53, 47, 68, 72, 86, 59, 55, 63, 77, 40, 103, 68, 56, 62, 63, 58, 73, 65, 59, 43, 58, 53, 60, 55, 71, 79, 73, 59, 72, 60, 52, 64, 93, 64, 77, 58, 76, 60, 66, 78, 71, 61, 60, 79, 48, 58, 57, 70, 62, 53, 56, 70, 79, 55, 60, 56, 61, 42, 58, 91, 46, 60, 75, 60, 57, 74, 50, 88, 72, 40, 78, 76, 43, 63, 42, 73, 63, 60, 87, 64, 72, 61, 67, 68, 57, 62, 71, 64, 67, 58, 65, 62, 96, 75, 61, 70, 79, 85, 58, 61, 72, 65, 67, 58, 68, 67, 73, 62, 57, 52, 78, 78, 64, 59, 75, 52, 83, 54, 67, 66, 89, 124, 58, 53, 71, 64, 54, 59, 102, 60, 63, 66, 58, 50, 71, 60, 55, 67, 52, 61, 61, 43, 96, 71, 57, 50, 53, 47, 53, 88, 66, 72, 79, 46, 62, 68, 64, 67, 45, 52, 68, 56, 64, 50, 56, 59, 67, 37, 59, 61, 50, 77, 54, 70, 55, 56, 79, 67, 58, 57, 72, 71, 70, 47, 63, 83, 66, 58, 45, 52, 69, 51, 80, 70, 62, 69, 63, 66, 63, 70, 63, 60, 70, 48, 70, 50, 80, 59, 81, 58, 68, 54, 72, 49, 57, 55, 40, 61, 61, 47, 65, 48, 76, 49, 56, 69, 68, 79, 94, 62, 66, 36, 73, 82, 69, 63, 58, 69, 83, 55, 65, 97, 84, 52, 50, 69, 53, 60, 62, 102, 60, 86, 47, 61, 59, 52, 71, 89, 94, 77, 65, 58, 64, 65, 57, 52, 62, 61, 57, 65, 66, 73, 65, 64, 54, 63, 54, 53, 78, 91, 79, 87, 85, 69, 95, 62, 67, 54, 59, 135, 51, 68, 83, 46, 61, 112, 61, 67, 52, 72, 55, 64, 84, 71, 70, 52, 73, 52, 71, 65, 59, 68, 82, 61, 79, 66, 74, 55, 43, 72, 46, 80, 41, 62, 68, 82, 61, 67, 67, 77, 85, 106, 76, 79, 45, 63, 55, 48, 65, 70, 70, 64, 39, 57, 46, 82, 55, 64, 64, 61, 54, 50, 73, 55, 61, 61, 74, 61, 69, 53, 53, 61, 90, 74, 54, 55, 84, 64, 100, 88, 46, 96, 63, 57, 64, 58, 42, 72, 61, 57, 66, 57, 66, 75, 53, 82, 90, 112, 56, 61, 78, 51, 52, 70, 62, 63, 64, 53, 70, 78, 65, 52, 63, 60, 97, 61, 62, 51, 55, 45, 62, 48, 78, 51, 56, 57, 62, 71, 62, 67, 94, 74, 56, 81, 59, 61, 68, 64, 49, 68, 77, 74, 71, 62, 52, 73, 60, 42, 55, 67, 66, 74, 114, 53, 51, 52, 90, 62, 62, 51, 71, 64, 84, 56, 46, 92, 48, 80, 67, 65, 75, 66, 73, 68, 73, 78, 68, 68, 79, 50, 59, 43, 71, 76, 59, 63, 74, 43, 50, 64, 64, 54, 71, 56, 63, 61, 66, 76, 70, 65, 52, 49, 67, 50, 67, 63, 48, 52, 68, 81, 70, 68, 63, 90, 87, 58, 74, 48, 67, 59, 75, 48, 58, 88, 65, 59, 64, 64, 58, 59, 79, 69, 62, 63, 69, 84, 58, 66, 57, 73, 61, 84, 55, 75, 72, 68, 72, 58, 67, 62, 59, 63, 67, 39, 55, 43, 54, 90, 56, 67, 62, 54, 87, 78, 80, 92, 58, 55, 61, 52, 88, 67, 62, 87, 63, 54, 55, 51, 50, 73, 65, 75, 63, 58, 65, 75, 67, 64, 90, 122, 57, 73, 71, 65, 52, 57, 62, 45, 71, 71, 57, 48, 80, 79, 69, 53, 72, 87, 73, 72, 55, 66, 74, 54, 57, 58, 57, 47, 40, 79, 51, 102, 41, 45, 71, 55, 62, 63, 49, 39, 54, 55, 62, 66, 71, 69, 65, 60, 70, 70, 62, 62, 59, 73, 46, 66, 91, 55, 72, 75, 73, 68, 62, 93, 52, 60, 47, 64, 63, 47, 66, 104, 62, 87, 56, 58, 65, 54, 55, 49, 61, 68, 68, 74, 60, 69, 55, 90, 85, 58, 70, 52, 58, 57, 52, 57, 62, 68, 61, 124, 63, 57, 78, 83, 53, 50, 59, 64, 68, 55, 83, 102, 67, 58, 42, 65, 72, 69, 75, 77, 57, 54, 59, 54, 122, 64, 69, 45, 39, 57, 63, 56, 77, 64, 66, 62, 81, 54, 70, 81, 58, 61, 69, 60, 65, 57, 74, 52, 53, 64, 54, 62, 61, 55, 78, 68, 61, 61, 72, 47, 76, 112, 43, 62, 61, 74, 60, 86, 84, 73, 70, 48, 54, 61, 57, 92, 66, 74, 66, 85, 76, 88, 68, 57, 71, 81, 68, 66, 57, 43, 37, 64, 56, 66, 66, 79, 58, 48, 77, 68, 62, 58, 58, 75, 52, 65, 76, 58, 67, 56, 63, 83, 70, 50, 70, 54, 70, 76, 74, 83, 61, 78, 67, 71, 64, 68, 60, 80, 72, 82, 58, 70, 68, 55, 47, 68, 58, 58, 102, 76, 59, 46, 60, 46, 63, 68, 61, 75, 57, 78, 72, 78, 70, 61, 63, 84, 78, 53, 61, 63, 55, 79, 75, 49, 57, 62, 45, 82, 114, 59, 70, 75, 57, 56, 98, 81, 79, 42, 58, 56, 72, 52, 69, 53, 70, 78, 68, 59, 69, 63, 58, 56, 82, 51, 78, 69, 54, 64, 61, 59, 97, 80, 65, 87, 52, 64, 76, 77, 84, 63, 62, 61, 87, 55, 67, 44, 70, 67, 81, 74, 58, 82, 62, 59, 64, 77, 41, 62, 69, 74, 56, 80, 73, 72, 68, 65, 73, 71, 77, 72, 47, 31, 70, 75, 60, 70, 61, 72, 71, 59, 54, 42, 54, 73, 46, 72, 78, 54, 71, 71, 72, 60, 51, 66, 91, 86, 72, 54, 64, 74, 65, 64, 71, 80, 74, 78, 84, 58, 66, 66, 55, 67, 64, 62, 77, 66, 51, 64, 68, 78, 74, 53, 68, 75, 90, 75, 64, 50, 68, 57, 111, 63, 64, 79, 75, 72, 59, 60, 71, 54, 59, 70, 59, 55, 49, 62, 58, 66, 42, 66, 54, 57, 72, 57, 71, 76, 56, 102, 81, 52, 125, 62, 82, 131, 92, 67, 72, 53, 69, 54, 67, 66, 39, 76, 54, 76, 95, 55, 56, 50, 72, 69, 66, 80, 43, 72, 72, 69, 36, 93, 83, 76, 67, 60, 81, 47, 78, 65, 79, 77, 80, 59, 48, 66, 52, 63, 105, 67, 64, 91, 70, 64, 40, 44, 65, 57, 52, 59, 50, 65, 89, 71, 79, 55, 58, 57, 50, 84, 49, 65, 67, 79, 72, 74, 59, 75, 56, 69, 75, 56, 82, 70, 107, 47, 110, 70, 100, 57, 63, 92, 67, 54, 58, 58, 59, 70, 58, 83, 73, 55, 58, 66, 68, 57, 66, 65, 47, 51, 86, 53, 46, 68, 69, 88, 99, 76, 63, 58, 67, 76, 78, 79, 78, 52, 70, 48, 63, 56, 59, 64, 97, 57, 62, 67, 94, 46, 54, 66, 54, 59, 79, 66, 83, 61, 38, 66, 67, 57, 51, 58, 74, 66, 62, 64, 112, 81, 80, 72, 66, 69, 54, 66, 77, 64, 58, 102, 48, 72, 64, 54, 70, 50, 78, 69, 76, 82, 76, 58, 55, 67, 72, 40, 91, 63, 92, 53, 57, 58, 51, 69, 68, 91, 69, 69, 64, 62, 53, 51, 54, 77, 74, 76, 77, 84, 91, 50, 78, 53, 73, 70, 60, 43, 66, 58, 72, 67, 86, 62, 65, 69, 59, 77, 73, 57, 60, 63, 59, 68, 81, 63, 102, 55, 73, 55, 58, 72, 45, 55, 42, 50, 62, 66, 92, 57, 63, 64, 66, 83, 56, 72, 56, 50, 64, 102, 60, 73, 66, 63, 62, 68, 60, 60, 61, 65, 64, 68, 72, 54, 64, 38, 94, 70, 80, 83, 53, 51, 60, 66, 64, 65, 59, 59, 57, 60, 66, 67, 68, 51, 62, 62, 57, 99, 86, 59, 72, 62, 57, 80, 54, 49, 64, 56, 46, 67, 74, 75, 80, 68, 62, 105, 92, 61, 65, 50, 59, 67, 70, 56, 58, 68, 57, 51, 74, 91, 80, 93, 45, 83, 89, 69, 56, 53, 74, 64, 53, 51, 63, 61, 63, 69, 51, 109, 62, 68, 93, 77, 52, 68, 72, 78, 57, 63, 62, 65, 62, 75, 70, 52, 99, 55, 47, 77, 51, 76, 71, 57, 60, 75, 66, 73, 71, 72, 59, 60, 56, 72, 60, 66, 55, 59, 74, 70, 112, 49, 47, 70, 81, 62, 79, 65, 43, 82, 74, 56, 53, 57, 87, 81, 75, 61, 82, 100, 78, 58, 69, 93, 67, 64, 52, 71, 61, 62, 70, 70, 56, 80, 42, 68, 76, 79, 66, 97, 65, 71, 67, 69, 82, 56, 62, 62, 70, 48, 76, 79, 103, 63, 67, 69, 45, 74, 67, 60, 44, 62, 67, 87, 55, 60, 62, 56, 80, 42, 51, 74, 65, 64, 94, 63, 79, 39, 69, 72, 65, 56, 70, 68, 69, 76, 62, 73, 41, 79, 62, 58, 70, 58, 85, 67, 72, 68, 61, 55, 55, 56, 58, 57, 87, 55, 67, 63, 50, 44, 53, 62, 51, 77, 84, 63, 75, 83, 58, 56, 78, 63, 56, 58, 83, 82, 60, 65, 51, 58, 68, 97, 75, 53, 66, 72, 74, 76, 90, 85, 78, 63, 75, 56, 49, 88, 62, 60, 55, 68, 63, 57, 71, 62, 58, 50, 63, 115, 44, 74, 50, 58, 59, 68, 62, 81, 70, 74, 89, 62, 58, 68, 62, 56, 65, 59, 70, 93, 63, 96, 55, 70, 79, 69, 81, 57, 64, 56, 54, 58, 79, 72, 62, 86, 64, 50, 65, 57, 68, 64, 60, 68, 58, 70, 34, 63, 65, 53, 62, 51, 123, 98, 51, 69, 62, 59, 64, 67, 72, 56, 64, 82, 65, 81, 52, 84, 85, 67, 67, 70, 67, 47, 61, 52, 62, 87, 62, 68, 60, 60, 91, 73, 66, 87, 70, 69, 66, 41, 47, 69, 63, 71, 63, 70, 50, 48, 65, 57, 69, 66, 68, 58, 67, 60, 75, 50, 58, 74, 74, 65, 48, 77, 59, 67, 65, 72, 42, 75, 55, 82, 68, 63, 56, 119, 63, 63, 72, 54, 68, 86, 45, 61, 55, 70, 65, 58, 49, 71, 52, 40, 66, 60, 67, 54, 70, 72, 34, 64, 46, 74, 70, 91, 83, 60, 47, 65, 52, 60, 68, 74, 66, 57, 73, 68, 57, 55, 57, 48, 51, 52, 63, 60, 60, 55, 83, 69, 113, 50, 75, 72, 59, 50, 64, 56, 66, 58, 45, 48, 73, 67, 59, 77, 46, 65, 59, 60, 68, 65, 68, 57, 67, 71, 52, 65, 58, 60, 62, 70, 54, 68, 81, 66, 65, 99, 76, 64, 57, 69, 71, 67, 58, 52, 57, 58, 48, 80, 64, 63, 76, 76, 76, 62, 84, 69, 55, 64, 66, 69, 65, 65, 56, 55, 64, 49, 79, 68, 73, 112, 58, 73, 66, 93, 62, 81, 62, 61, 56, 57, 61, 71, 57, 80, 67, 103, 74, 61, 63, 85, 63, 72, 65, 66, 62, 81, 56, 66, 69, 94, 69, 47, 68, 101, 57, 67, 54, 58, 65, 52, 59, 59, 76, 63, 52, 65, 41, 79, 65, 61, 54, 59, 57, 56, 78, 80, 49, 62, 69, 68, 75, 51, 62, 73, 95, 74, 55, 50, 64, 56, 60, 80, 110, 48, 78, 63, 58, 61, 85, 57, 88, 62, 71, 54, 68, 83, 65, 56, 65, 70, 81, 66, 58, 46, 72, 51, 77, 39, 51, 65, 63, 59, 65, 71, 80, 81, 66, 54, 57, 57, 66, 65, 84, 49, 73, 64, 66, 68, 45, 63, 68, 63, 92, 60, 56, 75, 56, 51, 65, 86, 50, 61, 72, 72, 52, 61, 58, 65, 58, 60, 68, 69, 65, 60, 77, 48, 70, 74, 59, 67, 70, 53, 67, 57, 59, 68, 54, 77, 49, 82, 59, 74, 85, 67, 57, 64, 68, 53, 69, 57, 67, 60, 64, 52, 86, 52, 91, 96, 65, 59, 85, 61, 51, 53, 68, 65, 62, 74, 69, 57, 67, 45, 79, 85, 76, 63, 50, 64, 99, 70, 59, 58, 62, 67, 97, 63, 62, 61, 74, 85, 55, 55, 64, 53, 60, 52, 67, 55, 59, 73, 74, 55, 77, 59, 79, 39, 57, 60, 61, 68, 50, 78, 84, 67, 100, 68, 75, 56, 59, 60, 60, 66, 59, 64, 74, 51, 74, 87, 56, 55, 94, 59, 64, 64, 57, 73, 59, 64, 50, 72, 71, 54, 58, 57, 67, 58, 52, 43, 67, 62, 61, 52, 71, 72, 64, 62, 58, 61, 73, 57, 90, 70, 62, 90, 97, 67, 128, 54, 68, 51, 72, 65, 77, 70, 80, 73, 59, 48, 48, 64, 86, 91, 66, 72, 52, 69, 63, 75, 68, 75, 76, 75, 67, 80, 63, 87, 63, 68, 98, 69, 65, 68, 51, 59, 68, 73, 69, 66, 54, 66, 72, 74, 70, 60, 62, 100, 55, 56, 67, 63, 67, 50, 61, 59, 44, 73, 63, 79, 70, 64, 63, 76, 66, 83, 61, 80, 63, 74, 50, 62, 67, 43, 69, 55, 64, 69, 59, 76, 70, 51, 52, 64, 63, 81, 56, 54, 91, 77, 69, 59, 60, 59, 58, 74, 76, 58, 54, 52, 93, 51, 103, 78, 57, 64, 58, 72, 74, 85, 70, 73, 68, 57, 63, 69, 76, 69, 52, 56, 65, 55, 76, 76, 68, 52, 60, 67, 84, 67, 100, 68, 50, 68, 58, 64, 80, 81, 62, 62, 73, 72, 58, 62, 70, 62, 67, 69, 108, 67, 60, 61, 59, 63, 67, 79, 63, 54, 88, 64, 78, 46, 38, 58, 90, 71, 83, 75, 57, 56, 66, 60, 62, 65, 55, 61, 58, 71, 97, 67, 70, 91, 89, 62, 74, 69, 80, 64, 50, 55, 67, 73, 68, 60, 74, 66, 44, 51, 70, 66, 69, 64, 59, 82, 67, 64, 57, 62, 51, 49, 60, 67, 52, 56, 48, 38, 51, 50, 45, 85, 58, 55, 76, 65, 74, 48, 75, 58, 54, 80, 71, 46, 78, 43, 75, 63, 39, 84, 83, 67, 68, 65, 60, 65, 81, 65, 61, 55, 59, 99, 54, 84, 81, 61, 72, 104, 97, 75, 69, 55, 61, 51, 89, 63, 51, 71, 67, 74, 56, 59, 82, 104, 88, 62, 54, 59, 57, 49, 58, 90, 55, 50, 55, 69, 58, 65, 44, 83, 55, 50, 71, 65, 58, 82, 58, 72, 59, 51, 64, 74, 87, 77, 47, 63, 105, 66, 61, 89, 50, 64, 43, 78, 60, 69, 72, 88, 70, 56, 64, 57, 57, 56, 68, 71, 63, 62, 59, 75, 84, 59, 52, 59, 68, 72, 72, 67, 69, 64, 71, 66, 67, 46, 56, 57, 52, 48, 64, 98, 63, 67, 62, 70, 55, 66, 64, 75, 66, 90, 59, 75, 79, 72, 45, 86, 99, 92, 54, 53, 73, 110, 71, 52, 83, 58, 66, 69, 132, 55, 78, 63, 88, 56, 45, 55, 64, 91, 87, 77, 63, 50, 92, 66, 66, 62, 60, 52, 52, 77, 54, 78, 51, 57, 75, 71, 83, 81, 80, 62, 84, 55, 63, 50, 69, 73, 58, 70, 68, 95, 53, 63, 70, 63, 51, 62, 45, 84, 59, 90, 86, 73, 65, 70, 75, 49, 57, 67, 64, 53, 71, 83, 75, 50, 86, 58, 48, 40, 60, 58, 80, 56, 85, 56, 82, 65, 56, 56, 50, 62, 49, 37, 72, 95, 78, 64, 84, 58, 79, 59, 73, 56, 82, 72, 46, 36, 61, 59, 60, 80, 67, 57, 77, 59, 79, 51, 79, 92, 54, 78, 71, 67, 64, 63, 68, 56, 73, 75, 114, 66, 64, 69, 83, 39, 49, 38, 72, 53, 40, 97, 76, 75, 67, 65, 92, 52, 39, 38, 71, 71, 90, 59, 55, 77, 63, 74, 55, 58, 81, 48, 80, 56, 81, 75, 49, 53, 59, 57, 83, 67, 64, 90, 49, 70, 59, 31, 70, 74, 66, 70, 54, 71, 70, 95, 65, 53, 79, 65, 70, 87, 72, 55, 77, 66, 62, 71, 65, 51, 50, 69, 69, 92, 103, 70, 72, 52, 70, 55, 71, 63, 55, 61, 67, 69, 57, 61, 58, 46, 58, 68, 56, 67, 56, 80, 44, 114, 56, 69, 55, 55, 62, 63, 71, 64, 55, 56, 80, 98, 67, 87, 59, 69, 45, 35, 93, 52, 78, 55, 91, 57, 64, 51, 66, 64, 61, 71, 81, 74, 70, 56, 76, 65, 74, 72, 68, 79, 84, 59, 58, 71, 89, 82, 65, 47, 78, 69, 105, 60, 51, 57, 65, 77, 58, 71, 80, 63, 98, 72, 74, 79, 56, 75, 58, 68, 58, 55, 127, 69, 50, 65, 64, 46, 67, 70, 51, 72, 59, 49, 52, 51, 81, 55, 77, 56, 68, 68, 61, 60, 103, 50, 57, 62, 57, 51, 67, 52, 92, 62, 79, 58, 65, 55, 57, 77, 81, 55, 64, 76, 40, 46, 91, 58, 73, 52, 74, 36, 81, 71, 60, 50, 69, 66, 66, 63, 67, 45, 65, 65, 60, 60, 58, 60, 70, 53, 59, 54, 77, 107, 64, 56, 59, 59, 59, 70, 57, 69, 73, 45, 58, 84, 71, 59, 53, 90, 58, 59, 61, 67, 52, 52, 64, 69, 94, 55, 45, 48, 64, 65, 55, 58, 67, 87, 70, 56, 71, 74, 40, 66, 57, 50, 87, 71, 42, 39, 60, 71, 57, 56, 71, 68, 53, 85, 72, 74, 48, 54, 56, 77, 92, 48, 61, 66, 51, 77, 62, 75, 72, 65, 67, 68, 69, 77, 77, 53, 58, 58, 64, 73, 76, 53, 62, 63, 72, 54, 84, 75, 57, 59, 59, 64, 66, 70, 62, 47, 50, 52, 41, 66, 60, 62, 68, 50, 53, 66, 71, 72, 59, 51, 78, 63, 61, 77, 53, 64, 79, 49, 77, 39, 63, 83, 75, 68, 65, 32, 81, 68, 61, 54, 74, 75, 67, 61, 48, 58, 45, 70, 59, 74, 59, 60, 75, 80, 80, 99, 69, 62, 57, 79, 48, 52, 74, 62, 61, 60, 68, 63, 64, 57, 62, 63, 48, 62, 65, 64, 68, 62, 77, 69, 49, 56, 65, 53, 74, 52, 68, 74, 56, 52, 78, 101, 44, 63, 100, 87, 71, 85, 61, 78, 65, 54, 66, 76, 52, 42, 60, 57, 59, 62, 75, 43, 56, 75, 90, 54, 75, 69, 64, 86, 68, 44, 63, 65, 66, 35, 64, 56, 57, 51, 62, 43, 70, 62, 71, 65, 62, 68, 68, 53, 88, 84, 118, 41, 87, 63, 72, 45, 65, 62, 63, 38, 88, 63, 83, 71, 67, 89, 56, 64, 96, 67, 56, 42, 75, 62, 64, 48, 63, 65, 71, 65, 75, 62, 59, 67, 59, 79, 70, 77, 97, 48, 75, 59, 68, 68, 66, 70, 73, 78, 98, 74, 32, 66, 62, 60, 99, 53, 65, 54, 58, 62, 57, 66, 50, 77, 58, 57, 73, 64, 76, 105, 67, 48, 63, 61, 101, 83, 73, 75, 71, 83, 65, 79, 54, 90, 62, 57, 41, 45, 79, 79, 71, 89, 50, 60, 62, 67, 60, 63, 58, 58, 62, 49, 66, 61, 69, 62, 59, 61, 56, 45, 63, 56, 62, 62, 70, 70, 68, 53, 47, 73, 68, 69, 86, 48, 71, 61, 61, 76, 61, 75, 104, 73, 99, 89, 66, 75, 64, 55, 65, 50, 51, 65, 57, 56, 71, 68, 48, 60, 69, 52, 50, 70, 68, 51, 69, 60, 52, 55, 80, 64, 76, 67, 69, 71, 44, 72, 59, 87, 53, 61, 73, 51, 56, 63, 69, 63, 61, 69, 63, 58, 46, 53, 68, 51, 95, 53, 90, 59, 66, 62, 59, 76, 69, 70, 67, 65, 93, 71, 64, 54, 47, 83, 63, 50, 93, 63, 42, 55, 51, 46, 67, 84, 66, 129, 55, 58, 82, 65, 68, 60, 71, 57, 62, 60, 65, 64, 63, 59, 51, 61, 52, 66, 61, 61, 57, 97, 80, 55, 76, 68, 83, 64, 67, 70, 91, 81, 73, 72, 54, 79, 76, 76, 61, 55, 54, 64, 58, 98, 69, 64, 56, 47, 65, 60, 85, 47, 62, 67, 66, 59, 52, 57, 81, 63, 45, 63, 53, 56, 101, 71, 72, 78, 61, 55, 59, 52, 65, 63, 67, 67, 66, 62, 44, 120, 51, 62, 52, 36, 74, 74, 68, 57, 69, 58, 49, 113, 87, 70, 80, 69, 80, 59, 49, 94, 88, 67, 67, 59, 99, 60, 73, 54, 62, 71, 72, 62, 84, 68, 91, 63, 76, 100, 71, 58, 75, 52, 64, 49, 71, 55, 55, 58, 78, 82, 50, 69, 85, 70, 61, 80, 52, 56, 72, 64, 88, 72, 60, 70, 71, 52, 96, 57, 81, 48, 49, 65, 81, 58, 93, 64, 37, 58, 81, 51, 52, 52, 71, 57, 49, 55, 70, 67, 58, 74, 70, 61, 45, 72, 90, 72, 70, 55, 62, 69, 72, 75, 60, 63, 63, 51, 51, 88, 53, 75, 73, 58, 56, 49, 60, 65, 58, 95, 71, 71, 68, 52, 69, 58, 62, 63, 69, 61, 92, 62, 80, 110, 80, 72, 112, 64, 80, 57, 92, 53, 79, 68, 99, 60, 94, 81, 59, 63, 47, 84, 56, 69, 92, 69, 63, 65, 64, 76, 45, 84, 61, 81, 71, 76, 54, 61, 81, 51, 59, 131, 68, 38, 65, 66, 64, 61, 65, 59, 83, 60, 88, 88, 82, 59, 75, 61, 36, 64, 51, 55, 63, 55, 61, 103, 101, 79, 63, 86, 63, 73, 66, 93, 50, 56, 60, 59, 84, 81, 48, 72, 67, 55, 74, 82, 53, 72, 47, 59, 63, 77, 40, 80, 47, 64, 63, 76, 65, 69, 69, 73, 63, 57, 57, 67, 72, 88, 61, 66, 72, 64, 66, 69, 67, 84, 98, 83, 63, 83, 68, 71, 90, 51, 47, 52, 58, 57, 58, 74, 57, 58, 57, 57, 53, 79, 47, 59, 71, 62, 48, 117, 66, 63, 38, 56, 83, 59, 47, 60, 61, 53, 46, 82, 55, 66, 56, 58, 86, 50, 57, 71, 63, 65, 47, 79, 53, 65, 73, 78, 65, 55, 90, 43, 82, 67, 83, 51, 67, 58, 81, 49, 54, 66, 64, 77, 70, 62, 74, 54, 63, 61, 68, 60, 61, 60, 65, 48, 77, 52, 63, 70, 52, 64, 90, 66, 74, 84, 68, 74, 51, 64, 38, 73, 84, 56, 77, 88, 66, 53, 64, 55, 56, 58, 57, 79, 53, 64, 73, 52, 54, 75, 68, 56, 72, 61, 67, 52, 97, 74, 79, 58, 94, 74, 51, 115, 79, 60, 116, 56, 70, 43, 65, 73, 65, 79, 62, 77, 75, 63, 75, 61, 46, 56, 71, 46, 70, 73, 144, 61, 51, 60, 81, 102, 58, 60, 74, 46, 89, 46, 57, 55, 62, 59, 71, 61, 117, 54, 58, 89, 62, 73, 47, 56, 76, 47, 80, 76, 100, 66, 69, 89, 109, 68, 59, 59, 57, 78, 56, 77, 101, 80, 80, 35, 53, 60, 65, 68, 49, 59, 45, 67, 85, 78, 55, 58, 45, 56, 98, 44, 54, 92, 53, 86, 65, 71, 64, 67, 75, 50, 98, 59, 43, 65, 47, 86, 69, 68, 58, 50, 66, 74, 67, 59, 67, 80, 57, 82, 68, 70, 61, 70, 59, 77, 58, 63, 57, 60, 45, 72, 54, 56, 53, 97, 49, 70, 65, 101, 59, 43, 67, 85, 75, 57, 54, 92, 94, 66, 74, 40, 74, 52, 70, 53, 60, 77, 71, 55, 61, 60, 50, 72, 76, 54, 97, 52, 69, 60, 81, 74, 75, 55, 45, 65, 57, 62, 55, 81, 63, 70, 55, 67, 53, 40, 83, 50, 73, 56, 53, 64, 63, 42, 61, 75, 77, 58, 75, 52, 69, 76, 82, 56, 42, 66, 81, 51, 54, 57, 72, 77, 65, 62, 64, 69, 89, 45, 54, 72, 60, 66, 68, 73, 64, 68, 52, 74, 44, 65, 89, 61, 54, 61, 78, 61, 62, 53, 53, 47, 81, 68, 55, 65, 79, 93, 54, 66, 48, 64, 74, 57, 48, 105, 94, 41, 69, 83, 61, 77, 63, 71, 86, 57, 43, 47, 42, 54, 69, 88, 58, 70, 63, 61, 62, 71, 78, 65, 69, 50, 67, 59, 57, 87, 48, 59, 53, 69, 62, 77, 46, 74, 93, 65, 74, 61, 56, 101, 103, 64, 71, 66, 62, 63, 35, 58, 87, 73, 95, 83, 81, 55, 83, 95, 128, 66, 47, 63, 69, 60, 54, 57, 43, 61, 64, 62, 82, 67, 79, 87, 70, 117, 65, 52, 61, 75, 60, 65, 64, 75, 88, 67, 34, 56, 56, 56, 110, 40, 52, 40, 82, 59, 57, 89, 62, 50, 52, 55, 66, 56, 44, 75, 38, 66, 55, 73, 79, 46, 108, 53, 59, 62, 56, 69, 71, 61, 72, 75, 99, 75, 56, 46, 55, 57, 86, 56, 60, 71, 62, 55, 72, 68, 71, 61, 73, 45, 37, 43, 84, 46, 48, 72, 70, 79, 89, 50, 66, 60, 85, 63, 53, 81, 53, 45, 65, 63, 45, 64, 89, 76, 79, 52, 73, 41, 84, 64, 63, 58, 59, 53, 70, 75, 57, 54, 72, 52, 79, 71, 84, 54, 69, 46, 60, 82, 66, 70, 61, 90, 58, 61, 80, 50, 79, 57, 54, 63, 78, 45, 67, 59, 55, 70, 78, 58, 52, 77, 71, 49, 46, 73, 57, 60, 87, 69, 63, 56, 94, 70, 55, 66, 65, 60, 94, 81, 49, 91, 63, 72, 44, 53, 42, 57, 65, 61, 92, 76, 65, 58, 72, 58, 72, 75, 65, 50, 64, 64, 71, 69, 71, 65, 59, 68, 72, 61, 89, 62, 76, 66, 69, 62, 82, 60, 54, 69, 69, 61, 53, 71, 43, 65, 49, 94, 95, 62, 63, 53, 43, 54, 59, 67, 71, 65, 68, 65, 62, 77, 65, 56, 59, 56, 89, 66, 31, 61, 68, 43, 40, 63, 57, 64, 54, 52, 50, 51, 74, 70, 63, 64, 72, 71, 78, 76, 84, 34, 36, 51, 65, 44, 65, 59, 58, 62, 94, 56, 77, 51, 59, 63, 70, 63, 69, 55, 66, 95, 58, 70, 39, 52, 64, 86, 54, 66, 70, 48, 55, 47, 85, 73, 86, 62, 64, 55, 73, 62, 48, 62, 60, 49, 63, 54, 64, 74, 64, 76, 80, 60, 70, 63, 55, 64, 53, 65, 62, 79, 106, 59, 86, 82, 72, 72, 64, 47, 77, 73, 68, 43, 73, 71, 80, 53, 78, 53, 47, 85, 78, 63, 49, 62, 71, 52, 63, 86, 74, 80, 59, 49, 62, 75, 47, 134, 52, 39, 97, 51, 63, 76, 75, 59, 61, 55, 66, 62, 80, 57, 33, 46, 67, 64, 56, 66, 100, 113, 51, 56, 62, 53, 54, 68, 52, 75, 55, 67, 75, 57, 61, 77, 73, 83, 72, 66, 75, 78, 63, 43, 50, 75, 59, 91, 44, 60, 83, 51, 72, 71, 73, 58, 57, 70, 76, 50, 46, 64, 80, 62, 69, 77, 82, 61, 87, 50, 64, 43, 85, 58, 60, 73, 76, 95, 100, 67, 57, 69, 55, 68, 67, 64, 64, 74, 43, 50, 69, 62, 87, 64, 81, 72, 57, 105, 48, 58, 57, 64, 78, 54, 72, 80, 69, 52, 51, 77, 66, 71, 75, 63, 67, 63, 59, 75, 54, 37, 54, 56, 42, 55, 68, 47, 61, 67, 67, 74, 103, 56, 73, 53, 62, 65, 86, 55, 65, 67, 44, 58, 54, 59, 54, 69, 63, 67, 63, 56, 65, 61, 58, 74, 65, 69, 82, 79, 85, 67, 58, 61, 48, 73, 59, 50, 48, 98, 62, 60, 57, 60, 53, 78, 37, 74, 56, 104, 88, 68, 61, 63, 73, 64, 101, 68, 56, 74, 60, 53, 68, 88, 83, 55, 63, 72, 56, 71, 85, 65, 48, 78, 69, 89, 64, 62, 54, 45, 68, 65, 57, 87, 59, 68, 72, 56, 81, 93, 57, 59, 55, 83, 73, 57, 61, 59, 54, 58, 61, 73, 98, 73, 87, 49, 72, 93, 68, 77, 62, 59, 59, 55, 50, 60, 88, 53, 57, 32, 70, 40, 85, 61, 65, 71, 66, 48, 65, 81, 59, 78, 56, 44, 88, 54, 49, 107, 60, 48, 67, 83, 57, 99, 66, 81, 51, 77, 72, 82, 69, 72, 80, 53, 55, 73, 52, 66, 60, 95, 52, 92, 73, 59, 81, 103, 47, 80, 69, 70, 81, 52, 76, 46, 57, 63, 89, 51, 58, 53, 67, 96, 65, 55, 42, 80, 76, 46, 52, 87, 74, 65, 40, 79, 62, 81, 63, 38, 87, 54, 43, 63, 54, 46, 59, 50, 95, 64, 51, 65, 86, 61, 56, 59, 57, 93, 57, 72, 70, 56, 51, 65, 70, 61, 67, 76, 91, 55, 49, 63, 55, 77, 68, 65, 91, 93, 60, 56, 98, 81, 63, 50, 72, 54, 61, 59, 60, 82, 86, 67, 80, 55, 70, 72, 97, 80, 82, 48, 54, 64, 67, 102, 60, 44, 72, 72, 56, 61, 83, 79, 46, 66, 60, 102, 54, 69, 89, 53, 82, 67, 53, 63, 86, 62, 56, 44, 117, 73, 54, 76, 59, 65, 61, 62, 59, 76, 58, 69, 55, 67, 89, 75, 46, 97, 87, 46, 77, 57, 65, 64, 66, 79, 61, 61, 58, 82, 74, 53, 93, 62, 59, 50, 60, 93, 56, 66, 45, 79, 50, 74, 64, 64, 73, 76, 69, 80, 39, 72, 83, 55, 74, 97, 51, 56, 59, 57, 72, 66, 67, 87, 65, 75, 64, 53, 61, 81, 90, 84, 61, 73, 49, 91, 82, 58, 64, 61, 75, 65, 68, 56, 68, 76, 55, 104, 46, 61, 57, 67, 64, 64, 67, 70, 64, 89, 66, 68, 80, 49, 70, 59, 66, 69, 65, 39, 67, 66, 52, 51, 79, 88, 89, 59, 66, 26, 46, 47, 59, 58, 64, 68, 61, 75, 64, 66, 64, 54, 51, 43, 43, 51, 57, 67, 81, 65, 59, 60, 70, 59, 64, 67, 78, 56, 74, 48, 75, 44, 79, 92, 80, 62, 62, 50, 49, 66, 64, 46, 82, 83, 63, 55, 62, 80, 72, 68, 47, 59, 55, 69, 42, 73, 57, 65, 58, 71, 57, 64, 69, 72, 57, 99, 66, 65, 52, 62, 65, 102, 71, 52, 55, 67, 72, 84, 69, 54, 52, 65, 75, 84, 55, 53, 90, 83, 80, 74, 84, 60, 61, 61, 50, 66, 67, 47, 110, 116, 81, 67, 75, 67, 55, 68, 58, 46, 61, 48, 67, 72, 44, 68, 61, 66, 32, 76, 69, 63, 68, 61, 60, 58, 55, 54, 55, 48, 68, 92, 58, 70, 76, 69, 91, 65, 43, 58, 68, 86, 57, 89, 67, 60, 67, 52, 52, 60, 67, 68, 67, 62, 78, 57, 63, 60, 63, 58, 80, 58, 82, 54, 93, 82, 55, 77, 54, 58, 60, 61, 87, 47, 55, 47, 72, 51, 60, 53, 56, 77, 54, 62, 65, 74, 54, 83, 63, 72, 94, 57, 68, 57, 53, 53, 54, 45, 74, 75, 82, 78, 61, 88, 55, 67, 59, 69, 53, 88, 65, 66, 71, 78, 64, 61, 63, 62, 71, 74, 84, 57, 52, 80, 85, 88, 94, 51, 75, 57, 60, 41, 64, 80, 50, 58, 72, 78, 67, 84, 84, 65, 64, 64, 63, 55, 58, 90, 97, 56, 71, 58, 63, 45, 64, 56, 75, 73, 69, 64, 69, 74, 105, 119, 58, 68, 54, 78, 77, 66, 87, 82, 71, 48, 71, 71, 74, 66, 64, 91, 52, 72, 55, 73, 41, 73, 54, 69, 85, 54, 52, 55, 45, 50, 51, 51, 67, 57, 67, 54, 79, 56, 60, 71, 73, 68, 112, 70, 91, 80, 66, 78, 75, 73, 81, 48, 59, 57, 96, 59, 98, 92, 64, 74, 94, 59, 57, 63, 66, 57, 56, 43, 110, 55, 54, 65, 62, 59, 40, 55, 46, 81, 75, 58, 111, 61, 70, 71, 76, 62, 66, 75, 62, 49, 44, 52, 76, 64, 55, 50, 60, 65, 62, 67, 58, 58, 57, 58, 57, 54, 71, 67, 63, 58, 75, 70, 67, 70, 65, 68, 89, 62, 81, 61, 48, 50, 88, 58, 57, 59, 99, 64, 49, 78, 49, 73, 63, 63, 63, 66, 81, 118, 63, 75, 81, 55, 67, 56, 74, 76, 56, 69, 56, 45, 78, 69, 56, 62, 60, 71, 73, 55, 71, 63, 61, 68, 61, 65, 112, 73, 66, 56, 72, 72, 79, 53, 141, 80, 71, 63, 96, 59, 55, 53, 57, 86, 63, 69, 47, 68, 68, 76, 67, 53, 66, 61, 111, 75, 61, 77, 60, 62, 72, 62, 119, 63, 76, 76, 64, 61, 64, 49, 75, 53, 62, 58, 61, 57, 79, 71, 70, 86, 62, 64, 54, 84, 72, 107, 58, 73, 68, 58, 50, 70, 60, 54, 68, 59, 79, 57, 64, 62, 66, 69, 55, 83, 70, 69, 68, 72, 65, 62, 65, 56, 90, 54, 53, 47, 49, 90, 56, 51, 64, 45, 63, 55, 46, 64, 58, 57, 57, 59, 60, 67, 92, 70, 55, 69, 66, 77, 59, 75, 84, 68, 65, 54, 58, 103, 83, 69, 68, 66, 60, 59, 67, 75, 65, 55, 60, 60, 68, 68, 64, 56, 60, 50, 51, 57, 55, 76, 65, 56, 51, 75, 68, 89, 87, 56, 76, 44, 68, 63, 46, 63, 74, 86, 68, 68, 48, 67, 76, 64, 65, 63, 68, 50, 77, 59, 48, 87, 79, 68, 61, 55, 80, 67, 75, 54, 58, 49, 63, 62, 56, 88, 82, 87, 78, 68, 56, 63, 75, 70, 62, 56, 79, 68, 116, 63, 71, 81, 65, 65, 114, 58, 48, 66, 63, 63, 63, 76, 53, 99, 60, 77, 54, 68, 62, 79, 61, 80, 99, 99, 46, 62, 62, 75, 49, 81, 59, 49, 46, 58, 72, 72, 53, 64, 70, 70, 80, 63, 56, 73, 78, 61, 59, 88, 58, 69, 51, 85, 65, 72, 55, 99, 67, 55, 71, 58, 46, 55, 67, 57, 75, 63, 61, 77, 68, 92, 82, 60, 57, 99, 55, 61, 53, 66, 63, 67, 64, 112, 64, 83, 58, 52, 57, 86, 62, 103, 59, 83, 59, 60, 76, 60, 68, 83, 63, 61, 66, 64, 119, 68, 62, 58, 52, 63, 57, 66, 62, 63, 61, 71, 62, 80, 53, 55, 99, 59, 69, 52, 69, 68, 63, 56, 65, 70, 69, 62, 47, 58, 55, 60, 80, 81, 71, 42, 64, 64, 62, 66, 66, 70, 67, 64, 67, 111, 75, 108, 66, 71, 46, 76, 53, 49, 63, 54, 79, 68, 56, 69, 82, 58, 69, 49, 74, 60, 58, 68, 62, 66, 65, 72, 55, 81, 66, 88, 58, 76, 67, 79, 65, 65, 38, 51, 62, 72, 71, 102, 61, 53, 68, 53, 50, 62, 70, 56, 67, 60, 52, 74, 64, 73, 68, 56, 74, 57, 64, 54, 55, 65, 74, 89, 52, 77, 67, 64, 70, 72, 67, 56, 79, 111, 72, 54, 53, 67, 63, 52, 80, 67, 47, 58, 70, 71, 59, 62, 52, 59, 73, 66, 61, 58, 62, 55, 57, 62, 67, 55, 43, 65, 63, 61, 70, 67, 52, 52, 69, 41, 74, 62, 86, 67, 81, 79, 66, 62, 86, 58, 61, 64, 70, 68, 63, 84, 63, 90, 63, 60, 143, 63, 62, 76, 55, 66, 63, 59, 51, 90, 62, 61, 88, 88, 58, 68, 71, 55, 59, 57, 67, 78, 58, 116, 47, 66, 49, 74, 62, 58, 56, 68, 54, 51, 60, 58, 87, 58, 71, 69, 102, 66, 88, 78, 67, 57, 42, 70, 67, 49, 71, 49, 53, 71, 56, 68, 49, 74, 73, 83, 58, 58, 78, 53, 71, 76, 64, 57, 85, 66, 66, 70, 58, 64, 39, 106, 55, 57, 73, 82, 79, 67, 73, 61, 88, 70, 77, 80, 102, 79, 57, 56, 58, 70, 69, 53, 64, 66, 54, 59, 49, 71, 68, 94, 63, 67, 100, 57, 62, 52, 70, 64, 71, 62, 84, 59, 58, 56, 53, 47, 72, 60, 61, 65, 81, 46, 51, 105, 68, 63, 69, 70, 55, 88, 51, 56, 88, 57, 77, 58, 67, 67, 58, 62, 68, 52, 84, 66, 81, 61, 65, 57, 60, 54, 73, 74, 55, 61, 64, 63, 54, 59, 75, 57, 69, 66, 47, 64, 46, 61, 77, 68, 70, 61, 64, 80, 66, 74, 78, 72, 79, 61, 57, 62, 61, 63, 67, 79, 48, 90, 75, 52, 63, 88, 66, 52, 45, 78, 83, 60, 73, 52, 56, 57, 63, 65, 101, 55, 65, 55, 75, 41, 68, 71, 54, 51, 59, 65, 60, 55, 57, 67, 59, 70, 46, 69, 58, 93, 55, 64, 61, 70, 79, 63, 70, 52, 57, 73, 78, 52, 72, 61, 84, 60, 75, 71, 68, 108, 77, 62, 71, 81, 71, 82, 83, 61, 56, 54, 59, 63, 56, 68, 70, 57, 80, 83, 57, 59, 72, 58, 84, 72, 61, 67, 49, 98, 73, 63, 58, 58, 76, 81, 64, 87, 45, 64, 112, 80, 54, 59, 56, 79, 64, 62, 72, 65, 70, 43, 80, 63, 61, 56, 57, 86, 57, 61, 75, 61, 111, 61, 78, 70, 57, 51, 72, 70, 46, 90, 73, 59, 53, 61, 68, 83, 96, 61, 69, 60, 63, 60, 86, 67, 59, 56, 84, 92, 66, 62, 61, 46, 58, 55, 65, 65, 103, 59, 57, 56, 64, 49, 56, 55, 73, 62, 60, 64, 61, 60, 71, 82, 83, 55, 65, 71, 71, 57, 60, 66, 60, 61, 71, 75, 73, 67, 57, 56, 63, 56, 54, 110, 69, 69, 58, 59, 59, 61, 70, 87, 48, 69, 69, 52, 67, 62, 77, 48, 73, 74, 63, 72, 62, 70, 61, 66, 58, 58, 62, 77, 46, 68, 63, 60, 58, 60, 75, 55, 75, 89, 65, 49, 54, 64, 67, 82, 67, 69, 62, 74, 63, 57, 65, 77, 59, 65, 72, 66, 70, 58, 86, 58, 65, 84, 55, 55, 54, 69, 64, 51, 61, 60, 54, 90, 71, 49, 68, 77, 69, 56, 74, 42, 70, 62, 61, 58, 64, 51, 58, 97, 64, 59, 55, 62, 63, 111, 82, 71, 56, 80, 68, 60, 51, 69, 54, 50, 66, 66, 55, 62, 70, 80, 94, 72, 57, 50, 77, 79, 67, 81, 80, 55, 71, 74, 50, 63, 60, 51, 99, 60, 68, 49, 66, 43, 55, 50, 63, 60, 56, 121, 56, 69, 59, 65, 129, 71, 115, 70, 58, 63, 65, 80, 64, 60, 55, 61, 52, 69, 76, 67, 62, 68, 40, 56, 60, 77, 85, 62, 63, 55, 75, 77, 59, 71, 49, 47, 82, 57, 65, 101, 50, 53, 59, 75, 62, 43, 76, 86, 76, 76, 80, 56, 81, 62, 107, 72, 62, 60, 54, 59, 63, 60, 78, 67, 64, 62, 75, 68, 69, 55, 63, 52, 69, 69, 64, 58, 55, 62, 71, 86, 45, 74, 57, 51, 71, 61, 56, 57, 54, 60, 62, 56, 57, 52, 62, 75, 66, 79, 56, 45, 68, 64, 57, 63, 64, 64, 59, 74, 65, 55, 76, 73, 92, 61, 60, 47, 67, 114, 71, 88, 63, 57, 89, 56, 59, 62, 72, 53, 70, 90, 69, 78, 77, 89, 46, 43, 61, 62, 61, 94, 65, 53, 57, 60, 60, 101, 53, 61, 43, 58, 74, 60, 97, 53, 55, 59, 42, 67, 66, 57, 77, 45, 47, 75, 72, 65, 43, 60, 50, 92, 52, 65, 68, 62, 76, 58, 56, 54, 51, 64, 53, 69, 72, 92, 60, 104, 92, 75, 58, 60, 67, 68, 67, 67, 46, 69, 61, 95, 71, 64, 56, 82, 85, 59, 48, 95, 53, 68, 64, 68, 38, 63, 62, 76, 100, 67, 68, 57, 50, 79, 59, 60, 109, 57, 98, 59, 72, 64, 54, 54, 76, 54, 69, 66, 66, 61, 62, 59, 63, 51, 47, 67, 60, 69, 61, 64, 58, 59, 62, 97, 64, 62, 75, 66, 57, 59, 47, 78, 102, 66, 53, 65, 85, 73, 57, 66, 72, 67, 62, 56, 74, 73, 62, 109, 55, 50, 106, 90, 59, 69, 48, 90, 65, 40, 50, 58, 70, 44, 65, 64, 52, 76, 67, 83, 59, 73, 60, 65, 67, 74, 72, 78, 62, 71, 52, 55, 53, 85, 72, 68, 57, 61, 55, 66, 75, 89, 55, 74, 62, 57, 73, 54, 64, 61, 78, 75, 64, 70, 59, 62, 80, 80, 79, 63, 62, 53, 58, 60, 60, 65, 67, 73, 67, 79, 66, 54, 72, 49, 80, 46, 61, 60, 65, 66, 83, 78, 85, 26, 74, 61, 58, 71, 56, 38, 84, 49, 67, 66, 64, 58, 58, 60, 64, 105, 57, 64, 85, 69, 54, 72, 46, 77, 71, 67, 108, 63, 47, 61, 106, 60, 74, 66, 64, 56, 56, 70, 74, 57, 55, 73, 53, 64, 64, 74, 61, 69, 56, 58, 67, 58, 54, 44, 46, 51, 56, 91, 74, 90, 53, 40, 52, 100, 57, 109, 78, 97, 84, 60, 68, 77, 72, 62, 69, 60, 77, 65, 86, 84, 62, 121, 81, 77, 79, 73, 61, 64, 98, 61, 66, 71, 69, 77, 47, 26, 64, 56, 75, 52, 56, 66, 65, 54, 61, 51, 68, 66, 68, 70, 51, 51, 74, 60, 56, 60, 60, 59, 64, 61, 62, 61, 82, 91, 69, 95, 56, 54, 65, 59, 43, 70, 57, 64, 68, 86, 109, 69, 50, 67, 65, 48, 72, 69, 58, 66, 48, 54, 108, 52, 105, 66, 61, 66, 63, 51, 51, 69, 106, 65, 64, 47, 53, 69, 66, 61, 53, 69, 56, 58, 61, 67, 57, 67, 56, 52, 83, 68, 83, 60, 63, 64, 60, 64, 77, 64, 70, 72, 68, 72, 130, 96, 66, 61, 57, 59, 73, 61, 59, 65, 65, 49, 64, 64, 67, 80, 67, 90, 60, 76, 66, 54, 66, 63, 63, 73, 63, 64, 60, 57, 63, 63, 49, 96, 64, 57, 70, 102, 72, 96, 60, 65, 63, 57, 81, 67, 49, 93, 63, 74, 53, 44, 57, 43, 59, 74, 69, 60, 64, 68, 78, 69, 74, 58, 68, 66, 68, 62, 69, 55, 78, 45, 55, 62, 61, 66, 68, 60, 81, 56, 65, 68, 66, 31, 71, 62, 70, 66, 54, 88, 51, 70, 82, 62, 63, 53, 67, 60, 79, 62, 66, 54, 69, 56, 95, 67, 69, 74, 48, 61, 51, 60, 64, 84, 53, 71, 53, 69, 56, 66, 51, 54, 64, 65, 67, 77, 52, 58, 55, 69, 70, 77, 61, 67, 65, 85, 38, 53, 42, 70, 54, 57, 54, 60, 63, 62, 85, 103, 70, 60, 76, 63, 84, 58, 62, 87, 39, 73, 80, 79, 62, 59, 82, 81, 59, 47, 59, 51, 69, 56, 64, 61, 72, 65, 56, 65, 53, 69, 61, 55, 54, 52, 62, 76, 71, 54, 76, 49, 58, 54, 71, 67, 73, 56, 71, 87, 69, 50, 64, 56, 58, 82, 69, 74, 56, 54, 66, 63, 81, 82, 74, 100, 92, 52, 53, 57, 78, 50, 53, 61, 72, 53, 73, 63, 78, 56, 75, 50, 65, 60, 61, 63, 56, 85, 63, 62, 55, 77, 55, 84, 69, 76, 62, 63, 83, 59, 65, 50, 62, 68, 68, 72, 55, 61, 55, 66, 54, 55, 54, 64, 61, 51, 50, 54, 77, 70, 88, 58, 54, 62, 72, 46, 77, 56, 71, 58, 53, 77, 65, 73, 68, 69, 93, 59, 61, 49, 61, 67, 84, 55, 56, 50, 89, 60, 57, 60, 85, 76, 67, 78, 76, 63, 68, 64, 88, 63, 54, 64, 66, 66, 75, 62, 66, 104, 59, 58, 71, 59, 69, 69, 69, 68, 79, 52, 73, 56, 65, 56, 65, 51, 61, 59, 89, 55, 75, 49, 61, 68, 55, 59, 65, 61, 50, 52, 69, 99, 50, 61, 92, 67, 78, 62, 56, 60, 52, 55, 60, 39, 64, 50, 55, 70, 55, 66, 63, 52, 67, 62, 70, 65, 65, 60, 66, 63, 63, 103, 60, 49, 61, 52, 96, 73, 72, 67, 65, 62, 65, 58, 73, 57, 66, 64, 20, 55, 74, 74, 77, 75, 69, 57, 63, 64, 52, 69, 65, 70, 69, 56, 68, 68, 58, 96, 55, 63, 111, 72, 61, 49, 62, 76, 60, 67, 62, 69, 70, 58, 62, 68, 64, 47, 66, 131, 67, 103, 61, 73, 51, 58, 67, 70, 70, 76, 51, 58, 53, 64, 74, 69, 66, 61, 69, 45, 62, 69, 72, 70, 44, 66, 71, 66, 69, 52, 74, 88, 75, 58, 63, 62, 67, 72, 59, 69, 60, 56, 48, 64, 76, 58, 66, 56, 60, 65, 75, 62, 77, 56, 72, 67, 60, 50, 54, 75, 64, 65, 75, 60, 63, 43, 85, 60, 64, 69, 68, 58, 64, 77, 75, 50, 67, 78, 45, 72, 62, 73, 56, 69, 69, 60, 47, 65, 64, 70, 50, 66, 46, 61, 82, 64, 58, 67, 65, 70, 49, 68, 69, 58, 70, 84, 48, 84, 52, 70, 75, 68, 59, 68, 61, 73, 76, 89, 64, 73, 65, 54, 50, 73, 53, 63, 68, 58, 57, 58, 65, 61, 62, 40, 64, 57, 53, 56, 46, 72, 59, 79, 78, 50, 89, 78, 80, 72, 62, 60, 74, 76, 64, 48, 68, 84, 77, 109, 79, 51, 80, 85, 72, 62, 76, 66, 54, 63, 80, 59, 67, 69, 62, 114, 78, 62, 80, 97, 51, 66, 69, 89, 72, 86, 70, 60, 75, 62, 52, 61, 99, 61, 61, 71, 68, 83, 68, 51, 71, 66, 62, 50, 77, 73, 62, 61, 54, 64, 71, 76, 60, 59, 58, 63, 82, 62, 103, 92, 76, 63, 54, 69, 46, 49, 63, 66, 42, 49, 58, 63, 69, 58, 66, 76, 79, 63, 60, 65, 67, 67, 60, 78, 51, 75, 70, 66, 53, 68, 56, 62, 63, 63, 57, 63, 61, 46, 66, 48, 67, 80, 110, 62, 77, 59, 64, 61, 51, 56, 51, 54, 53, 72, 53, 62, 60, 79, 56, 76, 60, 66, 58, 60, 69, 56, 52, 52, 69, 40, 70, 60, 85, 68, 84, 62, 65, 63, 73, 65, 61, 60, 70, 101, 83, 60, 69, 107, 48, 93, 75, 75, 43, 62, 58, 60, 61, 79, 73, 83, 82, 73, 77, 65, 62, 65, 61, 104, 70, 62, 76, 55, 64, 53, 74, 55, 63, 62, 58, 69, 73, 62, 76, 63, 58, 55, 72, 85, 43, 41, 42, 74, 62, 67, 75, 74, 58, 66, 65, 64, 72, 64, 93, 60, 67, 74, 53, 57, 68, 81, 63, 70, 56, 76, 71, 54, 69, 68, 82, 75, 71, 79, 77, 78, 64, 63, 67, 58, 51, 63, 65, 61, 53, 61, 72, 59, 65, 67, 67, 56, 61, 72, 65, 60, 48, 57, 62, 69, 86, 64, 100, 72, 73, 51, 54, 72, 59, 59, 62, 70, 51, 56, 71, 55, 70, 87, 115, 73, 61, 57, 86, 61, 63, 60, 63, 58, 87, 60, 70, 48, 57, 83, 78, 66, 67, 70, 47, 60, 59, 54, 64, 92, 55, 74, 56, 56, 76, 75, 59, 53, 64, 65, 59, 68, 65, 71, 61, 70, 82, 61, 74, 101, 64, 66, 51, 48, 73, 65, 56, 60, 70, 81, 60, 67, 85, 55, 58, 86, 69, 59, 71, 86, 70, 64, 65, 81, 65, 64, 68, 60, 67, 70, 62, 72, 79, 58, 64, 88, 64, 71, 75, 69, 50, 48, 49, 56, 76, 67, 65, 57, 77, 64, 103, 52, 70, 58, 50, 72, 79, 72, 49, 63, 65, 56, 64, 72, 52, 59, 80, 49, 97, 66, 67, 59, 74, 61, 73, 48, 103, 54, 61, 46, 124, 66, 97, 93, 50, 67, 71, 91, 59, 51, 88, 63, 63, 63, 72, 90, 76, 91, 83, 61, 79, 63, 58, 70, 67, 91, 65, 53, 57, 65, 63, 51, 74, 62, 56, 69, 64, 57, 67, 57, 64, 78, 102, 79, 56, 59, 70, 53, 74, 60, 70, 56, 83, 61, 113, 70, 64, 52, 26, 55, 51, 96, 51, 69, 70, 82, 57, 71, 49, 51, 107, 47, 61, 75, 80, 63, 90, 63, 56, 72, 71, 58, 54, 69, 51, 64, 56, 85, 58, 88, 49, 90, 50, 80, 64, 43, 58, 73, 90, 71, 62, 61, 60, 61, 59, 80, 87, 43, 57, 56, 58, 54, 87, 62, 92, 60, 86, 74, 63, 69, 65, 53, 72, 54, 54, 49, 73, 55, 61, 68, 68, 53, 67, 55, 55, 67, 99, 62, 83, 43, 58, 60, 59, 53, 110, 68, 69, 85, 68, 57, 83, 78, 116, 59, 61, 42, 75, 71, 64, 52, 70, 66, 82, 54, 64, 56, 47, 52, 66, 62, 38, 48, 65, 83, 54, 81, 65, 67, 74, 67, 54, 66, 69, 52, 53, 73, 70, 56, 90, 52, 62, 61, 53, 72, 53, 49, 61, 58, 62, 71, 90, 66, 62, 85, 72, 95, 59, 66, 50, 88, 58, 49, 60, 59, 67, 79, 75, 47, 47, 76, 78, 63, 63, 62, 65, 44, 60, 60, 56, 88, 60, 60, 55, 68, 116, 50, 59, 68, 56, 67, 64, 58, 68, 51, 67, 52, 62, 74, 81, 63, 62, 81, 60, 62, 81, 70, 68, 61, 65, 78, 56, 49, 67, 83, 84, 63, 75, 66, 54, 56, 59, 69, 59, 51, 59, 68, 83, 64, 77, 51, 67, 49, 62, 77, 68, 71, 59, 109, 69, 62, 87, 63, 56, 49, 49, 58, 92, 50, 54, 77, 59, 59, 44, 41, 64, 62, 86, 62, 53, 67, 54, 50, 62, 59, 41, 65, 62, 76, 96, 79, 62, 63, 46, 44, 61, 103, 66, 66, 62, 49, 51, 76, 55, 69, 71, 49, 67, 49, 59, 47, 71, 66, 61, 64, 67, 57, 57, 63, 59, 69, 57, 90, 107, 67, 51, 63, 63, 61, 76, 56, 58, 62, 46, 62, 98, 69, 57, 73, 82, 64, 58, 73, 72, 64, 73, 45, 97, 63, 46, 77, 59, 66, 52, 60, 80, 63, 57, 64, 70, 63, 108, 63, 106, 61, 77, 88, 60, 61, 76, 50, 67, 42, 75, 80, 69, 58, 52, 63, 54, 66, 77, 60, 86, 61, 63, 81, 65, 58, 56, 72, 64, 51, 37, 58, 70, 86, 55, 74, 51, 61, 70, 70, 49, 70, 73, 60, 74, 98, 64, 67, 113, 47, 58, 74, 60, 57, 59, 86, 94, 63, 62, 66, 44, 79, 55, 75, 70, 61, 73, 50, 42, 57, 63, 58, 63, 61, 48, 78, 75, 56, 67, 62, 66, 119, 62, 105, 67, 67, 60, 49, 58, 77, 59, 77, 75, 54, 83, 80, 64, 57, 80, 58, 61, 75, 48, 75, 73, 80, 68, 45, 66, 49, 62, 79, 67, 89, 54, 53, 61, 57, 78, 93, 57, 67, 85, 62, 59, 50, 64, 62, 72, 56, 69, 65, 58, 66, 60, 65, 58, 85, 75, 59, 45, 55, 68, 58, 54, 74, 61, 70, 75, 78, 73, 54, 66, 67, 59, 74, 95, 62, 50, 49, 64, 76, 58, 69, 54, 80, 47, 68, 60, 54, 70, 92, 74, 63, 58, 55, 57, 71, 60, 79, 77, 58, 59, 76, 56, 60, 119, 61, 46, 50, 56, 55, 73, 79, 52, 52, 82, 57, 57, 80, 57, 59, 54, 53, 51, 101, 72, 67, 53, 59, 78, 67, 75, 61, 70, 66, 74, 61, 55, 70, 59, 57, 71, 70, 51, 71, 75, 64, 70, 56, 68, 48, 68, 44, 51, 78, 92, 80, 100, 122, 65, 67, 71, 88, 62, 50, 46, 66, 55, 60, 83, 57, 61, 63, 88, 104, 61, 77, 76, 95, 61, 55, 76, 88, 56, 94, 66, 76, 89, 72, 66, 60, 131, 71, 60, 72, 42, 72, 47, 57, 71, 65, 50, 70, 68, 54, 70, 46, 58, 74, 48, 97, 67, 56, 61, 81, 93, 67, 100, 76, 74, 60, 43, 79, 66, 79, 72, 69, 70, 92, 92, 70, 68, 63, 66, 54, 57, 68, 64, 83, 75, 55, 68, 78, 55, 64, 58, 70, 62, 48, 68, 80, 71, 69, 57, 80, 63, 43, 54, 54, 61, 69, 97, 69, 44, 66, 71, 77, 61, 67, 83, 67, 65, 60, 62, 52, 61, 63, 51, 48, 64, 56, 69, 63, 46, 49, 58, 72, 72, 69, 55, 59, 67, 60, 85, 74, 73, 54, 59, 84, 62, 68, 58, 73, 59, 76, 68, 98, 70, 73, 63, 72, 52, 47, 76, 58, 70, 66, 61, 112, 76, 54, 101, 67, 68, 61, 65, 91, 59, 42, 61, 46, 62, 49, 50, 62, 85, 65, 60, 69, 65, 67, 64, 76, 65, 44, 79, 87, 79, 81, 78, 61, 68, 64, 82, 69, 82, 64, 49, 58, 64, 84, 77, 66, 69, 67, 63, 61, 82, 76, 76, 52, 67, 78, 56, 66, 100, 58, 75, 75, 70, 49, 69, 63, 66, 59, 55, 66, 61, 74, 55, 74, 60, 79, 66, 62, 62, 48, 73, 63, 65, 62, 75, 79, 64, 58, 72, 79, 64, 87, 77, 72, 66, 60, 66, 72, 62, 79, 59, 71, 56, 64, 75, 69, 60, 76, 92, 64, 63, 63, 93, 59, 58, 62, 107, 65, 71, 44, 70, 65, 57, 80, 67, 88, 60, 53, 65, 79, 50, 57, 42, 88, 90, 56, 61, 73, 55, 65, 66, 72, 57, 83, 65, 61, 71, 59, 62, 79, 62, 49, 93, 86, 53, 65, 59, 60, 60, 48, 63, 70, 57, 85, 72, 78, 68, 70, 75, 82, 71, 64, 65, 51, 52, 78, 57, 71, 68, 59, 79, 43, 58, 60, 49, 52, 93, 60, 60, 67, 63, 71, 54, 65, 53, 59, 67, 77, 83, 54, 50, 55, 67, 42, 100, 71, 64, 70, 62, 69, 61, 67, 70, 62, 46, 69, 46, 56, 36, 68, 68, 81, 73, 70, 69, 57, 68, 77, 69, 94, 91, 56, 77, 53, 105, 53, 78, 116, 70, 63, 47, 76, 61, 61, 65, 67, 46, 57, 67, 65, 70, 86, 59, 66, 51, 64, 98, 56, 67, 81, 51, 68, 58, 86, 115, 62, 64, 66, 58, 59, 52, 64, 78, 64, 66, 80, 105, 81, 72, 59, 50, 49, 50, 56, 58, 46, 95, 67, 77, 56, 80, 68, 55, 68, 68, 77, 57, 61, 55, 70, 80, 55, 64, 58, 75, 66, 48, 78, 55, 64, 65, 66, 75, 79, 48, 66, 57, 47, 61, 59, 61, 98, 64, 68, 66, 68, 77, 47, 57, 62, 53, 54, 142, 61, 59, 71, 53, 63, 86, 86, 83, 62, 67, 78, 65, 63, 87, 62, 72, 75, 83, 62, 48, 67, 67, 59, 94, 52, 65, 88, 88, 49, 61, 47, 63, 71, 53, 57, 57, 68, 98, 113, 65, 59, 69, 68, 69, 65, 101, 56, 66, 68, 58, 57, 47, 75, 84, 85, 62, 64, 61, 63, 55, 61, 67, 81, 61, 57, 56, 50, 51, 61, 76, 57, 42, 59, 73, 63, 56, 57, 68, 71, 79, 64, 64, 65, 55, 65, 87, 63, 66, 68, 100, 65, 64, 60, 65, 86, 64, 70, 56, 55, 58, 52, 61, 55, 60, 58, 63, 73, 82, 61, 57, 72, 59, 57, 60, 67, 44, 75, 79, 64, 100, 53, 48, 63, 57, 59, 56, 54, 65, 76, 54, 70, 52, 65, 77, 79, 103, 67, 63, 64, 65, 66, 62, 67, 64, 63, 84, 63, 69, 65, 51, 87, 54, 84, 54, 68, 81, 61, 59, 56, 57, 60, 48, 51, 73, 61, 63, 77, 68, 57, 50, 77, 71, 83, 55, 61, 61, 64, 80, 62, 77, 73, 69, 55, 51, 75, 73, 69, 68, 75, 68, 50, 93, 87, 53, 62, 65, 65, 47, 59, 61, 70, 63, 48, 55, 62, 58, 65, 95, 55, 75, 52, 71, 57, 80, 48, 49, 74, 60, 65, 86, 81, 44, 78, 63, 65, 55, 95, 55, 50, 54, 77, 52, 54, 52, 51, 82, 66, 72, 63, 54, 51, 63, 68, 42, 64, 59, 65, 60, 71, 61, 62, 55, 97, 95, 63, 61, 81, 73, 73, 88, 59, 79, 56, 62, 73, 68, 72, 77, 55, 63, 58, 56, 75, 71, 50, 73, 52, 68, 59, 44, 63, 67, 58, 74, 76, 46, 65, 49, 90, 62, 55, 91, 69, 91, 67, 63, 70, 69, 56, 51, 54, 43, 56, 62, 59, 59, 65, 63, 59, 52, 57, 74, 66, 101, 65, 50, 88, 87, 74, 66, 87, 50, 41, 66, 53, 70, 70, 64, 48, 55, 69, 59, 65, 59, 51, 71, 70, 55, 56, 51, 51, 104, 57, 69, 49, 57, 49, 54, 64, 127, 62, 62, 95, 65, 60, 81, 64, 69, 57, 44, 60, 88, 51, 68, 55, 59, 66, 65, 58, 70, 58, 58, 77, 50, 104, 63, 115, 53, 66, 69, 59, 77, 81, 82, 56, 57, 77, 82, 75, 82, 59, 85, 62, 58, 60, 65, 65, 70, 62, 76, 55, 59, 72, 49, 74, 71, 93, 68, 49, 55, 64, 86, 79, 75, 55, 49, 81, 55, 71, 54, 62, 67, 58, 93, 61, 62, 60, 68, 66, 50, 81, 54, 53, 47, 81, 77, 54, 77, 83, 70, 68, 71, 64, 69, 56, 74, 45, 70, 70, 97, 75, 38, 57, 76, 61, 66, 74, 59, 87, 63, 60, 59, 69, 65, 62, 72, 59, 61, 72, 58, 57, 80, 90, 60, 59, 74, 69, 69, 60, 87, 60, 50, 56, 61, 63, 64, 52, 70, 64, 79, 59, 72, 78, 75, 64, 60, 64, 60, 77, 82, 53, 63, 67, 68, 55, 65, 70, 68, 74, 64, 79, 63, 63, 53, 57, 41, 77, 59, 59, 77, 58, 63, 61, 54, 68, 57, 58, 90, 80, 78, 60, 115, 114, 81, 65, 60, 83, 55, 62, 58, 57, 64, 77, 98, 48, 69, 72, 89, 123, 67, 67, 68, 104, 51, 51, 80, 82, 69, 55, 55, 68, 86, 72, 73, 55, 56, 56, 69, 91, 57, 69, 64, 68, 66, 66, 64, 73, 75, 72, 52, 72, 65, 84, 57, 56, 59, 65, 59, 77, 73, 63, 85, 54, 92, 74, 57, 68, 56, 66, 54, 51, 61, 80, 78, 54, 69, 50, 57, 82, 71, 64, 65, 59, 76, 77, 58, 71, 58, 53, 60, 83, 59, 71, 64, 79, 73, 78, 65, 52, 45, 62, 63, 55, 67, 63, 95, 39, 48, 58, 61, 63, 81, 57, 93, 71, 78, 72, 61, 59, 54, 58, 50, 56, 67, 47, 74, 72, 52, 35, 74, 52, 57, 69, 65, 62, 70, 58, 87, 59, 75, 67, 72, 68, 65, 66, 56, 79, 78, 75, 62, 76, 65, 48, 50, 77, 48, 58, 54, 58, 47, 81, 68, 89, 87, 61, 117, 63, 58, 66, 50, 68, 60, 58, 48, 56, 43, 67, 67, 57, 90, 71, 47, 82, 67, 63, 66, 75, 66, 54, 60, 83, 63, 62, 84, 74, 72, 64, 100, 77, 64, 71, 60, 47, 60, 72, 76, 59, 55, 81, 58, 62, 75, 60, 78, 68, 50, 78, 62, 88, 72, 67, 60, 72, 60, 64, 78, 81, 77, 70, 64, 52, 73, 71, 76, 78, 73, 54, 42, 54, 61, 53, 62, 66, 49, 66, 83, 77, 59, 54, 66, 84, 73, 92, 57, 75, 56, 79, 72, 77, 66, 82, 58, 71, 54, 53, 86, 65, 52, 71, 94, 76, 74, 66, 75, 79, 65, 69, 95, 55, 87, 58, 71, 79, 45, 68, 61, 60, 66, 79, 51, 82, 64, 52, 65, 86, 93, 57, 62, 84, 50, 57, 59, 59, 66, 61, 65, 26, 50, 72, 48, 85, 81, 79, 55, 73, 76, 65, 49, 57, 73, 45, 68, 89, 63, 64, 68, 64, 56, 85, 63, 72, 50, 67, 46, 50, 76, 47, 57, 58, 64, 56, 61, 67, 57, 66, 52, 56, 83, 65, 61, 58, 95, 62, 64, 57, 71, 62, 54, 76, 75, 42, 63, 75, 103, 59, 50, 57, 58, 67, 68, 50, 67, 70, 60, 64, 63, 65, 58, 68, 55, 53, 71, 77, 55, 66, 59, 77, 61, 50, 90, 68, 78, 59, 56, 62, 108, 52, 80, 51, 73, 53, 59, 61, 53, 63, 63, 60, 64, 75, 60, 59, 75, 74, 66, 58, 74, 64, 87, 76, 66, 77, 63, 70, 64, 59, 52, 52, 67, 46, 71, 57, 54, 69, 72, 74, 56, 68, 98, 60, 62, 62, 84, 42, 66, 57, 60, 59, 72, 65, 70, 60, 85, 50, 51, 74, 65, 70, 75, 57, 62, 74, 63, 63, 47, 78, 75, 50, 63, 52, 60, 68, 72, 69, 54, 106, 55, 71, 59, 63, 63, 86, 81, 108, 78, 72, 48, 65, 65, 75, 85, 60, 60, 78, 49, 74, 53, 57, 77, 54, 73, 60, 88, 60, 52, 70, 51, 53, 80, 75, 75, 67, 45, 65, 63, 68, 59, 65, 50, 63, 56, 58, 69, 60, 58, 62, 62, 52, 75, 60, 61, 78, 76, 43, 57, 63, 65, 68, 59, 69, 100, 71, 68, 78, 78, 70, 73, 69, 99, 40, 73, 83, 47, 72, 58, 68, 57, 62, 63, 47, 55, 59, 73, 67, 46, 55, 60, 54, 62, 60, 65, 76, 66, 63, 52, 56, 56, 63, 56, 75, 68, 73, 57, 60, 40, 86, 64, 51, 53, 90, 67, 79, 61, 58, 55, 51, 58, 55, 68, 70, 64, 93, 63, 66, 66, 70, 45, 41, 63, 77, 62, 53, 85, 71, 81, 58, 59, 71, 57, 63, 67, 59, 64, 69, 74, 80, 57, 81, 63, 71, 108, 62, 59, 55, 79, 52, 53, 65, 57, 68, 60, 57, 57, 65, 72, 68, 71, 69, 67, 65, 106, 59, 58, 76, 59, 61, 52, 53, 58, 64, 66, 60, 70, 66, 74, 71, 60, 75, 58, 54, 72, 71, 74, 69, 66, 66, 67, 79, 57, 71, 61, 51, 63, 57, 62, 59, 78, 57, 65, 61, 62, 69, 62, 52, 61, 56, 67, 35, 72, 56, 65, 56, 95, 66, 72, 52, 52, 51, 55, 63, 63, 65, 67, 64, 72, 73, 58, 84, 57, 41, 57, 59, 75, 71, 56, 78, 82, 54, 44, 71, 66, 54, 69, 67, 65, 55, 72, 62, 54, 65, 79, 55, 66, 55, 67, 59, 68, 65, 93, 47, 62, 97, 71, 66, 70, 64, 68, 66, 73, 93, 54, 71, 87, 78, 46, 49, 45, 60, 85, 68, 84, 52, 49, 49, 63, 70, 53, 69, 66, 70, 55, 53, 68, 77, 56, 76, 90, 81, 72, 76, 50, 59, 73, 70, 65, 61, 56, 63, 66, 82, 54, 62, 51, 59, 59, 75, 64, 60, 89, 50, 56, 62, 67, 75, 58, 62, 83, 62, 93, 71, 63, 55, 51, 58, 51, 72, 55, 61, 76, 49, 56, 55, 69, 71, 61, 68, 97, 59, 70, 58, 61, 72, 74, 62, 115, 68, 81, 46, 72, 61, 75, 63, 65, 47, 54, 61, 75, 72, 63, 62, 63, 66, 59, 33, 61, 73, 70, 86, 62, 53, 64, 44, 63, 56, 51, 64, 50, 55, 54, 58, 77, 62, 61, 53, 93, 59, 86, 69, 52, 67, 56, 58, 65, 71, 66, 61, 69, 60, 70, 44, 60, 77, 119, 67, 50, 72, 61, 52, 48, 62, 60, 65, 75, 119, 59, 57, 67, 58, 100, 57, 72, 69, 57, 73, 61, 51, 64, 63, 52, 47, 62, 69, 61, 48, 49, 81, 64, 56, 80, 54, 89, 71, 61, 63, 70, 55, 74, 65, 54, 71, 52, 47, 46, 53, 71, 61, 46, 107, 76, 56, 41, 74, 62, 55, 82, 66, 62, 63, 92, 74, 67, 53, 64, 78, 71, 66, 55, 49, 87, 64, 76, 67, 55, 71, 80, 48, 64, 63, 72, 67, 61, 67, 63, 77, 77, 59, 68, 79, 79, 66, 59, 63, 61, 57, 66, 66, 96, 58, 72, 65, 77, 60, 73, 58, 44, 59, 47, 51, 95, 58, 58, 69, 63, 46, 54, 70, 78, 59, 59, 67, 81, 83, 56, 74, 62, 70, 58, 45, 62, 72, 71, 68, 86, 80, 58, 86, 94, 53, 59, 62, 63, 69, 54, 41, 69, 110, 64, 76, 53, 95, 97, 69, 71, 59, 59, 82, 56, 65, 58, 91, 71, 68, 79, 56, 72, 62, 61, 57, 36, 79, 54, 64, 69, 50, 49, 62, 56, 85, 100, 74, 84, 61, 68, 85, 46, 58, 68, 95, 82, 84, 85, 61, 64, 83, 104, 73, 91, 66, 59, 51, 57, 83, 58, 54, 63, 56, 83, 54, 64, 85, 85, 68, 89, 83, 61, 80, 74, 41, 119, 58, 76, 59, 75, 58, 68, 68, 104, 94, 67, 80, 60, 87, 50, 69, 71, 43, 62, 57, 50, 71, 62, 57, 56, 59, 82, 57, 56, 45, 74, 56, 67, 48, 64, 101, 60, 62, 47, 83, 64, 81, 43, 73, 52, 53, 70, 58, 59, 81, 58, 57, 62, 56, 63, 61, 64, 59, 57, 81, 63, 66, 84, 77, 59, 100, 64, 73, 68, 47, 66, 57, 74, 80, 57, 61, 54, 43, 88, 78, 97, 69, 60, 62, 100, 58, 76, 81, 73, 59, 73, 71, 63, 83, 76, 74, 69, 61, 58, 70, 58, 68, 57, 57, 78, 60, 60, 59, 64, 68, 58, 60, 55, 58, 81, 74, 74, 62, 71, 52, 49, 60, 74, 62, 85, 50, 50, 53, 64, 81, 62, 58, 63, 79, 62, 118, 60, 70, 59, 80, 63, 87, 66, 56, 73, 56, 66, 69, 65, 72, 43, 57, 42, 53, 73, 77, 76, 73, 66, 91, 68, 66, 46, 71, 75, 60, 90, 61, 67, 45, 70, 72, 48, 68, 73, 56, 60, 66, 61, 55, 50, 83, 56, 64, 57, 79, 64, 71, 57, 63, 69, 51, 61, 68, 70, 61, 89, 72, 54, 70, 73, 82, 50, 48, 46, 67, 57, 81, 58, 81, 60, 78, 82, 55, 59, 71, 47, 47, 65, 63, 60, 35, 44, 46, 67, 75, 75, 46, 82, 73, 67, 61, 109, 74, 43, 76, 68, 83, 80, 139, 52, 45, 80, 58, 49, 68, 64, 71, 60, 65, 57, 61, 69, 48, 69, 60, 55, 63, 70, 80, 62, 58, 52, 63, 56, 60, 72, 101, 85, 43, 58, 65, 49, 51, 55, 62, 68, 85, 66, 64, 95, 58, 60, 52, 58, 65, 93, 79, 66, 79, 63, 51, 116, 63, 68, 80, 103, 53, 63, 57, 64, 58, 69, 54, 110, 66, 75, 37, 62, 84, 101, 47, 68, 66, 41, 68, 54, 58, 59, 71, 84, 57, 63, 72, 44, 51, 64, 73, 61, 55, 61, 57, 69, 62, 102, 57, 68, 66, 63, 64, 50, 79, 54, 47, 65, 87, 73, 86, 56, 87, 53, 72, 63, 77, 59, 66, 73, 80, 57, 71, 77, 58, 56, 84, 56, 45, 71, 107, 80, 51, 64, 64, 64, 64, 60, 58, 54, 61, 68, 55, 92, 74, 67, 57, 79, 71, 47, 65, 50, 86, 58, 87, 66, 63, 69, 62, 77, 80, 93, 63, 70, 100, 67, 53, 60, 55, 58, 63, 56, 59, 78, 61, 49, 82, 72, 67, 76, 56, 54, 71, 73, 69, 67, 70, 55, 52, 84, 62, 72, 71, 70, 48, 70, 77, 74, 52, 61, 61, 102, 67, 70, 55, 59, 61, 55, 66, 64, 51, 73, 75, 75, 71, 51, 61, 72, 70, 57, 66, 56, 65, 58, 51, 87, 76, 55, 49, 72, 72, 62, 43, 80, 62, 61, 70, 72, 65, 97, 81, 63, 66, 52, 70, 38, 59, 67, 36, 59, 73, 57, 105, 65, 72, 61, 81, 67, 70, 67, 59, 73, 54, 68, 74, 87, 72, 61, 55, 52, 100, 74, 51, 61, 69, 60, 68, 56, 68, 63, 41, 61, 57, 62, 56, 61, 73, 80, 57, 57, 50, 84, 68, 64, 64, 67, 51, 53, 69, 46, 64, 73, 58, 57, 44, 73, 67, 94, 118, 55, 51, 54, 61, 68, 53, 75, 69, 51, 62, 60, 41, 101, 54, 56, 55, 83, 81, 62, 51, 70, 93, 43, 62, 63, 56, 55, 54, 60, 86, 59, 58, 66, 45, 63, 60, 68, 88, 65, 69, 68, 82, 67, 66, 57, 67, 60, 68, 88, 92, 67, 60, 86, 57, 83, 56, 58, 57, 67, 62, 86, 70, 55, 53, 70, 67, 59, 67, 74, 65, 65, 72, 46, 76, 64, 73, 71, 56, 64, 59, 62, 61, 54, 74, 99, 66, 62, 46, 64, 70, 69, 72, 64, 63, 60, 52, 76, 67, 63, 55, 55, 125, 45, 66, 81, 54, 52, 60, 63, 71, 68, 65, 66, 57, 76, 63, 62, 70, 66, 52, 62, 60, 42, 51, 75, 61, 67, 58, 55, 80, 76, 72, 81, 81, 63, 70, 77, 54, 32, 67, 57, 47, 61, 59, 70, 59, 72, 53, 68, 63, 52, 56, 55, 66, 65, 83, 54, 74, 60, 67, 69, 60, 69, 71, 71, 57, 66, 58, 56, 74, 62, 56, 63, 54, 64, 55, 57, 57, 63, 56, 62, 72, 102, 69, 68, 63, 81, 53, 51, 54, 74, 66, 82, 58, 37, 74, 60, 50, 59, 66, 84, 65, 60, 59, 37, 59, 66, 69, 71, 81, 71, 77, 80, 65, 76, 86, 69, 62, 63, 49, 44, 84, 87, 61, 71, 74, 44, 58, 43, 67, 72, 65, 73, 61, 59, 59, 76, 76, 75, 78, 97, 63, 60, 65, 55, 62, 55, 66, 57, 76, 53, 62, 64, 67, 62, 52, 74, 74, 61, 70, 52, 66, 59, 52, 82, 62, 65, 94, 98, 83, 78, 53, 71, 60, 61, 69, 67, 59, 54, 53, 62, 53, 68, 68, 63, 66, 47, 65, 81, 51, 62, 59, 64, 84, 58, 73, 46, 63, 68, 67, 58, 63, 41, 51, 62, 57, 75, 33, 61, 71, 50, 62, 54, 62, 48, 44, 59, 76, 73, 73, 49, 67, 70, 70, 49, 54, 66, 40, 80, 44, 53, 53, 69, 74, 57, 59, 48, 65, 69, 52, 79, 65, 65, 59, 63, 77, 58, 74, 45, 57, 51, 62, 54, 71, 58, 118, 106, 43, 68, 59, 74, 53, 66, 70, 58, 58, 74, 66, 69, 72, 85, 77, 61, 67, 70, 57, 114, 72, 73, 67, 51, 62, 76, 69, 78, 60, 66, 55, 54, 75, 59, 59, 79, 76, 61, 72, 93, 76, 59, 59, 61, 49, 58, 49, 59, 71, 59, 85, 98, 88, 74, 73, 64, 64, 64, 69, 84, 63, 71, 50, 57, 63, 62, 84, 77, 46, 62, 63, 55, 69, 63, 54, 80, 61, 55, 80, 54, 77, 68, 50, 59, 66, 60, 50, 57, 68, 60, 65, 87, 65, 85, 69, 71, 80, 79, 58, 63, 64, 66, 55, 61, 85, 66, 69, 70, 92, 71, 75, 61, 95, 90, 87, 50, 86, 60, 57, 54, 56, 57, 71, 88, 49, 106, 78, 56, 74, 51, 65, 62, 79, 60, 68, 128, 67, 60, 54, 73, 71, 93, 60, 53, 51, 50, 74, 83, 77, 58, 50, 64, 60, 55, 56, 83, 54, 78, 66, 63, 102, 65, 67, 69, 61, 79, 63, 54, 64, 68, 74, 71, 49, 59, 61, 71, 80, 52, 80, 53, 46, 77, 69, 34, 65, 61, 60, 80, 43, 72, 63, 75, 59, 94, 49, 63, 68, 60, 64, 73, 62, 70, 54, 63, 90, 57, 62, 71, 77, 67, 69, 74, 79, 50, 54, 57, 66, 54, 55, 57, 58, 61, 68, 61, 65, 64, 46, 56, 51, 53, 72, 86, 68, 75, 67, 45, 60, 51, 73, 64, 66, 60, 53, 57, 60, 73, 43, 77, 68, 46, 81, 48, 60, 66, 46, 74, 80, 70, 71, 48, 70, 58, 75, 57, 118, 55, 62, 62, 63, 66, 79, 56, 69, 84, 90, 59, 72, 68, 83, 78, 94, 72, 52, 70, 54, 64, 73, 73, 62, 61, 75, 71, 75, 61, 60, 73, 54, 84, 53, 70, 47, 76, 72, 52, 55, 56, 65, 60, 66, 57, 63, 69, 80, 66, 49, 67, 57, 58, 47, 76, 58, 54, 79, 62, 54, 77, 51, 55, 59, 75, 55, 53, 66, 60, 65, 67, 53, 51, 60, 68, 96, 84, 90, 51, 60, 71, 56, 52, 41, 63, 57, 57, 68, 73, 63, 54, 54, 66, 79, 55, 68, 67, 58, 90, 64, 92, 69, 52, 72, 61, 83, 56, 77, 81, 88, 37, 66, 68, 65, 61, 71, 62, 79, 80, 59, 75, 64, 75, 109, 57, 64, 63, 62, 34, 50, 65, 55, 72, 52, 60, 56, 52, 73, 74, 65, 71, 58, 57, 58, 55, 82, 60, 75, 108, 58, 46, 93, 62, 62, 61, 88, 47, 82, 78, 72, 72, 68, 70, 59, 71, 80, 69, 56, 79, 57, 50, 83, 63, 72, 96, 66, 83, 71, 90, 65, 61, 74, 52, 59, 70, 60, 79, 56, 61, 69, 58, 62, 55, 51, 77, 88, 61, 55, 59, 85, 49, 76, 78, 74, 74, 73, 69, 84, 56, 78, 57, 69, 71, 59, 61, 69, 61, 45, 51, 94, 71, 112, 62, 72, 79, 45, 59, 62, 54, 77, 73, 68, 76, 61, 68, 91, 68, 48, 54, 59, 74, 55, 79, 70, 79, 70, 60, 61, 61, 60, 68, 45, 64, 64, 73, 72, 66, 69, 71, 53, 65, 75, 79, 65, 71, 60, 64, 70, 53, 46, 57, 94, 65, 68, 73, 52, 70, 39, 52, 72, 67, 47, 61, 105, 64, 87, 59, 56, 75, 67, 73, 64, 85, 64, 63, 73, 67, 67, 50, 64, 57, 59, 46, 59, 51, 47, 70, 56, 65, 73, 108, 70, 73, 69, 75, 77, 60, 59, 78, 73, 64, 82, 78, 51, 58, 66, 66, 67, 57, 78, 64, 120, 73, 99, 64, 50, 51, 51, 87, 65, 69, 47, 68, 61, 60, 67, 57, 74, 68, 45, 74, 60, 63, 64, 72, 66, 66, 81, 66, 79, 80, 50, 62, 59, 52, 82, 62, 76, 82, 65, 62, 56, 65, 75, 64, 71, 88, 63, 49, 78, 67, 69, 33, 79, 74, 80, 50, 61, 50, 59, 55, 47, 69, 81, 66, 69, 55, 56, 65, 79, 100, 85, 53, 48, 44, 59, 62, 70, 68, 60, 60, 38, 64, 58, 71, 61, 58, 55, 69, 58, 53, 61, 65, 56, 57, 89, 49, 58, 68, 61, 95, 86, 61, 67, 87, 71, 71, 73, 58, 53, 73, 47, 50, 59, 59, 72, 80, 91, 74, 67, 71, 51, 60, 43, 85, 76, 54, 66, 76, 50, 65, 44, 66, 52, 68, 82, 64, 62, 55, 68, 51, 67, 60, 79, 72, 45, 81, 101, 60, 64, 60, 79, 74, 70, 75, 56, 66, 72, 58, 79, 84, 63, 84, 60, 60, 62, 68, 70, 64, 53, 70, 54, 54, 101, 68, 58, 72, 76, 55, 78, 66, 69, 73, 65, 58, 79, 67, 94, 73, 82, 67, 99, 63, 52, 68, 66, 102, 77, 69, 77, 70, 65, 76, 54, 75, 72, 60, 54, 85, 75, 87, 58, 65, 85, 75, 75, 59, 54, 65, 42, 46, 54, 65, 57, 50, 66, 62, 66, 51, 70, 51, 49, 76, 56, 75, 54, 62, 58, 63, 56, 68, 59, 66, 53, 76, 57, 67, 51, 68, 58, 63, 40, 62, 58, 91, 84, 62, 71, 101, 60, 55, 64, 53, 75, 44, 65, 92, 72, 73, 75, 69, 58, 81, 57, 54, 73, 83, 51, 110, 65, 87, 58, 55, 70, 73, 58, 75, 65, 43, 55, 69, 72, 30, 86, 50, 60, 58, 74, 50, 55, 82, 32, 70, 66, 47, 49, 73, 56, 75, 83, 79, 94, 64, 59, 70, 75, 54, 81, 67, 60, 44, 65, 81, 79, 75, 71, 70, 64, 69, 60, 55, 72, 57, 54, 65, 54, 74, 72, 62, 94, 65, 57, 71, 61, 64, 66, 48, 66, 75, 58, 59, 83, 69, 68, 70, 61, 69, 57, 68, 71, 69, 54, 51, 59, 61, 75, 73, 59, 73, 61, 60, 59, 62, 84, 57, 68, 62, 71, 51, 72, 71, 63, 42, 58, 63, 81, 54, 54, 56, 65, 71, 62, 32, 59, 66, 62, 58, 76, 80, 56, 117, 49, 55, 67, 62, 69, 42, 68, 46, 60, 69, 78, 61, 62, 60, 68, 87, 83, 65, 45, 76, 73, 62, 61, 67, 63, 63, 69, 59, 75, 64, 62, 68, 94, 84, 61, 62, 47, 53, 58, 94, 56, 51, 78, 82, 66, 61, 67, 123, 111, 69, 53, 74, 51, 70, 78, 50, 80, 60, 64, 46, 60, 56, 56, 52, 86, 56, 53, 75, 65, 65, 63, 69, 68, 65, 51, 65, 58, 85, 74, 67, 66, 87, 56, 63, 88, 60, 82, 69, 55, 61, 60, 67, 54, 62, 55, 47, 64, 61, 74, 59, 63, 51, 68, 54, 62, 79, 58, 35, 73, 67, 59, 77, 44, 58, 61, 48, 55, 73, 68, 72, 81, 69, 44, 64, 99, 77, 75, 60, 62, 92, 63, 70, 63, 58, 58, 68, 67, 55, 64, 46, 68, 84, 87, 60, 94, 86, 87, 63, 45, 48, 65, 102, 57, 87, 87, 64, 67, 98, 59, 88, 69, 56, 59, 69, 71, 62, 60, 70, 75, 70, 69, 67, 76, 58, 64, 60, 65, 64, 52, 80, 63, 85, 91, 82, 45, 69, 56, 78, 73, 49, 76, 74, 68, 86, 84, 47, 65, 53, 59, 72, 55, 41, 55, 65, 96, 97, 84, 60, 87, 103, 45, 49, 63, 65, 53, 67, 77, 61, 60, 82, 67, 67, 66, 55, 57, 46, 61, 71, 74, 75, 58, 56, 58, 68, 84, 64, 83, 71, 75, 70, 56, 60, 73, 73, 85, 65, 52, 64, 43, 99, 58, 82, 74, 61, 61, 63, 58, 99, 62, 75, 67, 57, 92, 55, 90, 44, 72, 66, 58, 63, 57, 64, 65, 59, 50, 72, 80, 49, 50, 61, 65, 67, 72, 52, 89, 62, 52, 67, 48, 78, 74, 67, 65, 81, 54, 59, 64, 71, 84, 76, 76, 85, 63, 59, 54, 70, 72, 62, 75, 42, 62, 66, 50, 55, 46, 107, 61, 63, 63, 83, 102, 70, 81, 76, 62, 72, 58, 54, 97, 61, 58, 59, 68, 55, 70, 58, 64, 58, 66, 61, 71, 45, 69, 82, 68, 40, 79, 110, 58, 75, 61, 72, 45, 46, 55, 69, 46, 72, 71, 43, 73, 65, 65, 70, 51, 60, 53, 72, 59, 89, 107, 53, 65, 45, 94, 42, 69, 82, 73, 57, 75, 79, 79, 79, 65, 64, 49, 52, 73, 91, 68, 67, 43, 74, 65, 58, 69, 66, 61, 67, 59, 76, 90, 42, 42, 84, 62, 64, 61, 58, 68, 113, 53, 71, 66, 73, 103, 70, 75, 67, 59, 85, 61, 53, 62, 65, 53, 68, 53, 74, 65, 126, 46, 64, 64, 75, 76, 65, 61, 56, 64, 107, 52, 55, 84, 62, 66, 69, 70, 64, 105, 48, 84, 73, 78, 66, 53, 63, 91, 59, 49, 51, 49, 48, 60, 67, 54, 59, 67, 61, 56, 80, 49, 88, 70, 67, 53, 64, 87, 83, 77, 60, 56, 75, 71, 48, 62, 74, 68, 81, 57, 61, 98, 45, 50, 103, 51, 66, 70, 71, 70, 79, 57, 57, 72, 64, 58, 77, 61, 61, 59, 89, 102, 79, 38, 64, 44, 45, 60, 72, 56, 43, 68, 47, 72, 60, 55, 78, 84, 65, 55, 64, 65, 58, 55, 59, 74, 71, 71, 40, 60, 56, 59, 71, 53, 64, 83, 69, 49, 66, 82, 57, 64, 87, 49, 92, 70, 45, 47, 60, 91, 66, 63, 58, 74, 53, 63, 50, 60, 64, 52, 93, 76, 61, 54, 68, 61, 74, 100, 62, 62, 66, 65, 80, 71, 77, 69, 91, 76, 50, 81, 56, 81, 75, 62, 61, 70, 57, 85, 68, 61, 65, 69, 58, 55, 65, 42, 70, 54, 58, 65, 95, 68, 58, 70, 53, 76, 52, 51, 59, 72, 51, 62, 67, 104, 56, 70, 52, 60, 71, 75, 77, 59, 77, 73, 83, 56, 78, 77, 62, 57, 46, 60, 63, 86, 53, 63, 57, 45, 70, 58, 83, 74, 63, 70, 45, 74, 59, 97, 71, 73, 64, 59, 49, 63, 79, 68, 54, 48, 67, 50, 64, 59, 44, 67, 52, 87, 54, 71, 54, 58, 75, 60, 70, 58, 50, 67, 85, 79, 46, 94, 63, 56, 65, 63, 49, 40, 63, 53, 63, 82, 57, 42, 55, 61, 57, 68, 45, 68, 65, 70, 72, 78, 62, 54, 62, 80, 92, 70, 59, 71, 101, 53, 61, 71, 55, 51, 54, 68, 61, 49, 67, 63, 61, 69, 65, 71, 54, 73, 76, 72, 56, 45, 89, 54, 113, 68, 102, 60, 77, 79, 53, 55, 57, 61, 106, 51, 77, 85, 82, 77, 61, 45, 75, 71, 43, 55, 69, 52, 52, 64, 82, 70, 59, 48, 66, 60, 99, 61, 53, 78, 60, 62, 53, 53, 55, 53, 63, 64, 89, 67, 82, 79, 93, 69, 48, 95, 71, 74, 96, 78, 51, 56, 86, 53, 58, 72, 54, 80, 59, 52, 65, 56, 73, 98, 60, 54, 62, 84, 94, 78, 50, 64, 68, 66, 66, 57, 55, 107, 66, 65, 49, 45, 75, 109, 72, 54, 82, 58, 44, 50, 68, 47, 55, 55, 61, 68, 71, 50, 60, 66, 67, 57, 85, 67, 47, 62, 69, 49, 56, 50, 49, 62, 74, 63, 102, 64, 95, 78, 71, 63, 53, 67, 60, 55, 83, 61, 91, 49, 62, 81, 68, 92, 69, 95, 62, 67, 68, 54, 93, 84, 56, 52, 52, 60, 94, 70, 79, 72, 58, 60, 59, 64, 67, 80, 65, 51, 75, 66, 80, 62, 85, 47, 59, 75, 56, 59, 57, 61, 91, 57, 55, 62, 65, 52, 58, 76, 67, 61, 69, 59, 81, 66, 73, 53, 55, 75, 66, 81, 56, 97, 78, 51, 84, 60, 73, 81, 70, 59, 72, 70, 63, 50, 80, 54, 67, 73, 63, 59, 67, 54, 63, 60, 97, 62, 61, 55, 57, 67, 75, 56, 74, 66, 54, 83, 65, 54, 60, 61, 86, 54, 81, 67, 57, 50, 66, 53, 50, 82, 64, 74, 51, 68, 69, 67, 73, 84, 54, 57, 64, 47, 56, 46, 64, 57, 70, 56, 55, 57, 62, 65, 85, 45, 67, 66, 99, 69, 77, 59, 53, 77, 69, 63, 62, 80, 74, 61, 60, 49, 70, 55, 75, 70, 82, 75, 83, 65, 49, 68, 65, 73, 67, 55, 55, 74, 54, 59, 61, 69, 60, 130, 58, 61, 85, 63, 64, 72, 84, 58, 54, 52, 62, 79, 88, 61, 68, 62, 63, 56, 50, 56, 105, 89, 61, 71, 62, 44, 79, 70, 71, 81, 64, 61, 44, 69, 70, 63, 86, 68, 59, 60, 88, 45, 73, 55, 44, 60, 45, 72, 78, 50, 73, 68, 61, 59, 78, 66, 69, 45, 64, 77, 56, 78, 64, 61, 53, 59, 69, 40, 80, 48, 60, 59, 67, 66, 81, 72, 115, 53, 117, 70, 53, 51, 56, 59, 58, 61, 59, 66, 56, 58, 68, 57, 73, 75, 98, 81, 65, 79, 82, 73, 60, 55, 61, 64, 76, 68, 58, 72, 61, 104, 64, 104, 81, 77, 66, 83, 65, 80, 37, 50, 54, 75, 63, 59, 98, 62, 83, 90, 68, 72, 74, 59, 68, 54, 58, 79, 116, 64, 54, 51, 50, 73, 75, 77, 56, 63, 71, 69, 57, 59, 59, 52, 74, 77, 68, 57, 68, 66, 50, 72, 61, 75, 55, 57, 75, 79, 62, 77, 72, 84, 46, 68, 84, 62, 60, 65, 63, 60, 78, 61, 55, 70, 71, 65, 35, 71, 56, 63, 61, 58, 71, 66, 91, 70, 76, 60, 55, 61, 76, 71, 67, 63, 80, 46, 66, 80, 64, 57, 70, 74, 58, 61, 61, 59, 66, 72, 37, 83, 54, 60, 56, 65, 57, 64, 56, 79, 72, 60, 53, 67, 70, 63, 79, 66, 79, 48, 53, 58, 57, 75, 75, 53, 79, 50, 50, 79, 71, 48, 52, 61, 83, 51, 63, 43, 68, 65, 62, 95, 72, 55, 79, 67, 61, 45, 67, 91, 59, 61, 79, 50, 64, 81, 60, 85, 73, 56, 75, 69, 65, 65, 45, 70, 75, 70, 54, 66, 45, 61, 67, 58, 52, 48, 59, 55, 69, 62, 58, 85, 71, 65, 66, 69, 63, 93, 75, 76, 68, 64, 64, 64, 64, 69, 66, 76, 71, 66, 49, 65, 67, 82, 60, 85, 48, 75, 68, 52, 62, 64, 51, 55, 63, 71, 62, 62, 69, 51, 66, 54, 61, 68, 69, 65, 78, 58, 48, 50, 88, 61, 68, 84, 65, 65, 47, 74, 71, 63, 67, 70, 76, 63, 78, 49, 91, 57, 86, 53, 103, 89, 88, 69, 58, 74, 59, 59, 66, 87, 55, 65, 92, 54, 71, 71, 47, 58, 68, 75, 61, 47, 61, 104, 58, 62, 53, 50, 38, 64, 56, 64, 61, 54, 54, 63, 79, 54, 84, 59, 53, 75, 77, 51, 83, 62, 56, 51, 118, 49, 54, 118, 57, 48, 69, 75, 63, 79, 73, 56, 61, 71, 90, 52, 79, 90, 56, 69, 78, 56, 63, 65, 74, 84, 62, 59, 97, 69, 77, 62, 74, 73, 69, 59, 83, 65, 81, 58, 66, 62, 77, 72, 68, 66, 68, 68, 70, 59, 68, 60, 67, 62, 93, 51, 75, 47, 62, 90, 57, 67, 67, 104, 63, 67, 63, 86, 46, 54, 69, 113, 55, 107, 58, 70, 68, 61, 62, 67, 71, 65, 55, 57, 63, 56, 70, 89, 48, 69, 56, 77, 64, 63, 57, 77, 74, 54, 48, 70, 95, 79, 73, 67, 56, 69, 75, 54, 57, 81, 66, 64, 60, 74, 71, 62, 69, 99, 75, 54, 66, 66, 66, 78, 55, 48, 43, 46, 63, 82, 61, 64, 64, 58, 63, 72, 55, 69, 62, 71, 53, 58, 49, 87, 57, 78, 105, 67, 70, 71, 70, 48, 67, 48, 72, 63, 53, 52, 54, 57, 50, 66, 73, 69, 48, 65, 72, 75, 65, 74, 64, 66, 46, 73, 75, 86, 76, 61, 73, 82, 65, 50, 55, 88, 63, 72, 65, 69, 88, 76, 53, 63, 86, 47, 86, 58, 61, 86, 76, 67, 51, 73, 56, 80, 65, 57, 72, 58, 54, 69, 76, 77, 72, 60, 55, 53, 63, 104, 57, 55, 66, 67, 50, 76, 60, 63, 58, 85, 87, 62, 74, 46, 75, 75, 71, 65, 73, 56, 54, 66, 57, 61, 65, 56, 67, 101, 77, 57, 47, 69, 73, 99, 69, 82, 65, 40, 53, 60, 75, 72, 71, 56, 65, 48, 50, 48, 61, 62, 40, 53, 75, 52, 65, 77, 55, 69, 53, 48, 52, 64, 81, 65, 77, 68, 55, 69, 40, 44, 61, 72, 60, 47, 79, 60, 39, 67, 51, 65, 59, 66, 39, 60, 79, 47, 57, 43, 93, 61, 65, 62, 54, 78, 65, 82, 51, 94, 90, 76, 72, 51, 52, 63, 54, 93, 71, 99, 72, 53, 63, 49, 55, 62, 70, 49, 67, 80, 69, 61, 60, 96, 50, 73, 103, 53, 65, 69, 63, 71, 66, 48, 70, 62, 70, 62, 53, 79, 47, 66, 81, 59, 55, 86, 81, 60, 58, 58, 68, 73, 67, 95, 62, 61, 62, 93, 45, 55, 57, 61, 92, 57, 74, 62, 48, 56, 67, 56, 70, 81, 61, 51, 94, 59, 77, 93, 75, 88, 64, 67, 62, 61, 39, 44, 54, 58, 59, 56, 56, 55, 74, 71, 64, 71, 49, 58, 62, 52, 74, 60, 67, 74, 70, 55, 51, 75, 80, 68, 63, 63, 55, 63, 72, 70, 68, 100, 72, 62, 103, 82, 51, 68, 74, 61, 72, 49, 63, 61, 55, 53, 68, 74, 63, 70, 72, 63, 54, 60, 58, 54, 65, 59, 80, 64, 54, 56, 65, 56, 40, 58, 62, 72, 83, 93, 70, 68, 73, 53, 69, 62, 66, 82, 76, 60, 68, 60, 32, 71, 48, 64, 56, 53, 63, 90, 82, 53, 81, 55, 58, 68, 67, 61, 67, 96, 57, 57, 78, 78, 81, 66, 56, 69, 63, 70, 58, 42, 60, 55, 56, 75, 56, 62, 69, 65, 120, 63, 80, 66, 66, 58, 63, 67, 58, 79, 75, 81, 64, 72, 78, 51, 114, 65, 43, 89, 44, 74, 65, 58, 48, 77, 73, 54, 48, 51, 91, 86, 77, 50, 65, 50, 61, 62, 64, 64, 71, 57, 60, 59, 44, 61, 45, 54, 62, 70, 79, 60, 59, 57, 75, 59, 46, 75, 61, 51, 64, 86, 54, 80, 54, 54, 67, 60, 64, 72, 98, 69, 59, 60, 59, 68, 49, 71, 98, 78, 58, 60, 72, 65, 50, 74, 60, 146, 59, 66, 60, 47, 77, 62, 76, 75, 96, 58, 60, 71, 70, 53, 68, 78, 48, 46, 56, 58, 61, 44, 54, 52, 66, 57, 57, 56, 72, 84, 67, 49, 70, 65, 63, 66, 78, 79, 69, 68, 56, 57, 74, 46, 51, 59, 52, 90, 49, 50, 38, 51, 75, 73, 55, 68, 64, 75, 64, 65, 51, 51, 81, 54, 81, 70, 89, 80, 64, 57, 40, 46, 56, 64, 72, 58, 87, 57, 102, 64, 21, 69, 79, 74, 54, 81, 78, 36, 72, 54, 68, 46, 66, 63, 85, 90, 64, 101, 68, 58, 64, 61, 68, 43, 57, 62, 71, 89, 75, 82, 74, 68, 83, 63, 55, 74, 70, 69, 61, 61, 47, 73, 65, 74, 75, 55, 77, 95, 71, 52, 77, 62, 47, 77, 90, 72, 113, 72, 66, 61, 53, 89, 73, 56, 60, 76, 81, 73, 80, 79, 60, 48, 57, 71, 63, 75, 71, 61, 64, 55, 64, 54, 69, 77, 57, 82, 52, 105, 61, 69, 54, 55, 55, 57, 43, 51, 61, 75, 75, 68, 65, 56, 58, 45, 43, 73, 50, 57, 52, 53, 63, 93, 62, 60, 74, 56, 63, 63, 80, 79, 78, 55, 54, 66, 79, 102, 45, 58, 78, 67, 75, 63, 70, 82, 62, 71, 70, 63, 57, 64, 75, 69, 54, 64, 49, 76, 55, 62, 65, 63, 55, 59, 90, 63, 59, 80, 69, 88, 49, 55, 65, 60, 71, 67, 69, 82, 69, 61, 68, 60, 91, 56, 65, 55, 69, 43, 61, 89, 66, 52, 59, 56, 81, 43, 57, 119, 50, 60, 94, 57, 57, 87, 68, 85, 60, 105, 67, 70, 59, 56, 72, 74, 98, 37, 61, 61, 64, 62, 78, 81, 74, 63, 58, 76, 44, 41, 67, 62, 71, 39, 67, 36, 71, 45, 68, 71, 52, 79, 63, 61, 56, 61, 70, 49, 55, 52, 55, 58, 75, 98, 74, 79, 80, 71, 79, 51, 64, 64, 51, 61, 70, 82, 66, 54, 78, 95, 60, 68, 74, 64, 68, 63, 76, 92, 62, 67, 62, 59, 72, 76, 48, 69, 50, 93, 74, 91, 59, 84, 65, 61, 75, 54, 69, 55, 83, 67, 70, 95, 56, 71, 57, 60, 67, 71, 77, 70, 44, 75, 93, 63, 53, 67, 49, 48, 58, 57, 63, 65, 62, 115, 80, 80, 76, 57, 75, 58, 64, 63, 60, 42, 61, 51, 78, 73, 87, 56, 61, 83, 61, 60, 84, 76, 59, 62, 117, 69, 72, 104, 52, 66, 68, 72, 72, 67, 83, 68, 63, 56, 74, 56, 68, 68, 71, 55, 69, 51, 73, 61, 59, 65, 69, 51, 58, 72, 83, 53, 103, 85, 92, 50, 46, 95, 57, 54, 60, 49, 70, 73, 88, 74, 64, 60, 78, 62, 67, 88, 71, 66, 81, 52, 62, 59, 65, 65, 66, 66, 63, 77, 58, 66, 56, 37, 66, 74, 86, 68, 53, 113, 69, 85, 82, 47, 57, 52, 64, 61, 56, 63, 58, 89, 70, 77, 54, 73, 76, 70, 67, 50, 64, 80, 63, 66, 58, 46, 66, 72, 71, 65, 52, 67, 28, 42, 73, 62, 60, 65, 45, 75, 64, 77, 72, 55, 70, 57, 54, 60, 73, 61, 72, 86, 63, 55, 66, 49, 50, 42, 59, 48, 63, 67, 47, 47, 77, 63, 76, 72, 44, 89, 67, 81, 50, 63, 65, 55, 51, 48, 89, 39, 54, 57, 64, 41, 88, 38, 64, 63, 71, 77, 53, 76, 61, 121, 54, 53, 64, 66, 80, 71, 87, 81, 86, 81, 76, 65, 54, 63, 47, 104, 51, 55, 77, 69, 66, 57, 75, 59, 65, 52, 82, 57, 88, 62, 73, 54, 56, 53, 76, 59, 59, 83, 73, 74, 75, 84, 77, 45, 53, 42, 66, 51, 69, 99, 72, 61, 75, 53, 70, 70, 94, 64, 68, 61, 59, 73, 57, 60, 63, 59, 59, 55, 56, 75, 58, 63, 61, 66, 60, 49, 80, 100, 60, 70, 85, 61, 76, 66, 48, 83, 54, 74, 66, 64, 87, 68, 49, 51, 63, 44, 72, 56, 69, 76, 67, 47, 60, 73, 64, 58, 54, 60, 59, 51, 62, 57, 68, 59, 48, 82, 57, 47, 56, 50, 58, 69, 61, 64, 75, 69, 79, 57, 66, 54, 57, 66, 43, 59, 53, 98, 50, 78, 91, 52, 42, 78, 57, 87, 63, 83, 67, 70, 67, 69, 47, 79, 55, 63, 54, 91, 63, 110, 61, 86, 62, 70, 35, 69, 60, 70, 50, 80, 67, 61, 68, 105, 75, 73, 118, 64, 56, 76, 74, 65, 45, 73, 68, 65, 91, 70, 52, 62, 49, 57, 55, 46, 67, 54, 66, 50, 38, 69, 69, 46, 66, 77, 73, 66, 74, 69, 54, 48, 62, 62, 74, 64, 81, 87, 60, 43, 53, 56, 51, 47, 72, 72, 88, 78, 83, 87, 72, 66, 75, 69, 81, 70, 65, 57, 64, 64, 47, 53, 67, 60, 54, 78, 64, 58, 34, 69, 65, 60, 57, 65, 60, 54, 97, 61, 64, 75, 46, 64, 62, 50, 101, 73, 62, 62, 65, 74, 59, 59, 79, 72, 70, 68, 99, 55, 48, 74, 57, 68, 56, 52, 70, 79, 43, 75, 113, 57, 49, 62, 63, 57, 71, 59, 73, 69, 48, 59, 40, 65, 72, 79, 59, 62, 65, 61, 62, 70, 48, 75, 50, 62, 85, 60, 63, 82, 77, 50, 60, 70, 43, 70, 45, 75, 91, 48, 71, 67, 75, 70, 71, 61, 46, 61, 51, 65, 57, 67, 64, 88, 104, 52, 51, 55, 68, 83, 59, 60, 58, 53, 58, 81, 52, 67, 68, 59, 100, 66, 79, 63, 46, 62, 43, 51, 74, 54, 75, 54, 56, 49, 82, 77, 59, 46, 76, 72, 66, 79, 60, 48, 57, 72, 59, 75, 85, 62, 66, 57, 82, 77, 72, 75, 71, 51, 61, 65, 78, 61, 64, 57, 69, 57, 74, 58, 101, 40, 66, 48, 48, 76, 48, 69, 41, 87, 65, 72, 57, 68, 85, 63, 80, 58, 49, 52, 62, 66, 84, 70, 67, 53, 58, 49, 60, 59, 47, 65, 56, 60, 85, 72, 52, 89, 83, 112, 72, 74, 65, 64, 56, 70, 41, 66, 69, 55, 63, 59, 60, 68, 76, 64, 56, 80, 63, 52, 108, 75, 80, 47, 72, 67, 68, 58, 82, 68, 66, 64, 58, 77, 60, 65, 72, 95, 65, 55, 70, 50, 65, 69, 79, 57, 50, 53, 73, 70, 69, 62, 54, 67, 66, 63, 62, 73, 57, 97, 90, 71, 68, 61, 54, 74, 61, 57, 68, 60, 57, 72, 66, 56, 117, 59, 63, 81, 48, 65, 125, 90, 84, 60, 55, 55, 78, 71, 70, 59, 75, 72, 72, 72, 73, 39, 63, 80, 81, 53, 65, 57, 78, 54, 69, 124, 59, 79, 64, 101, 75, 61, 70, 67, 77, 83, 54, 41, 60, 60, 65, 72, 59, 68, 81, 62, 51, 79, 77, 67, 73, 59, 71, 66, 54, 68, 97, 59, 78, 70, 37, 61, 83, 65, 63, 69, 78, 66, 54, 64, 57, 70, 58, 60, 48, 54, 103, 70, 61, 69, 78, 79, 53, 68, 57, 59, 59, 67, 64, 65, 71, 78, 66, 76, 54, 52, 61, 54, 51, 67, 62, 48, 73, 57, 33, 75, 82, 53, 53, 65, 63, 54, 53, 79, 55, 67, 64, 61, 93, 52, 65, 92, 53, 82, 82, 83, 48, 67, 50, 70, 69, 61, 82, 42, 65, 55, 67, 65, 76, 65, 66, 46, 72, 84, 54, 76, 64, 74, 81, 79, 66, 72, 67, 59, 75, 72, 73, 60, 78, 57, 58, 45, 64, 50, 61, 70, 70, 43, 68, 70, 85, 84, 63, 73, 66, 86, 87, 60, 58, 54, 52, 57, 43, 63, 86, 127, 54, 56, 41, 92, 104, 67, 63, 93, 47, 77, 84, 84, 55, 52, 51, 78, 48, 66, 61, 65, 52, 81, 65, 56, 72, 59, 51, 76, 66, 62, 63, 93, 82, 78, 51, 53, 69, 56, 84, 58, 59, 59, 71, 68, 56, 58, 62, 46, 62, 70, 50, 52, 47, 43, 44, 72, 67, 53, 58, 89, 70, 69, 60, 61, 62, 83, 44, 76, 53, 59, 54, 54, 50, 60, 40, 65, 57, 78, 61, 61, 61, 61, 59, 69, 52, 56, 63, 68, 48, 60, 61, 54, 48, 63, 57, 52, 75, 53, 71, 65, 117, 87, 75, 48, 68, 57, 65, 55, 64, 68, 56, 82, 58, 50, 54, 55, 83, 92, 78, 61, 66, 62, 90, 61, 46, 92, 66, 83, 67, 46, 66, 44, 86, 79, 65, 75, 67, 74, 94, 67, 57, 63, 65, 49, 48, 55, 59, 58, 100, 54, 80, 44, 63, 84, 74, 48, 52, 77, 61, 74, 75, 46, 65, 72, 68, 60, 55, 58, 80, 64, 56, 72, 89, 76, 69, 58, 92, 91, 49, 61, 57, 61, 59, 73, 75, 56, 79, 58, 56, 77, 76, 57, 56, 59, 82, 76, 66, 79, 49, 75, 54, 73, 62, 49, 60, 64, 65, 78, 38, 68, 76, 69, 62, 60, 93, 61, 53, 65, 49, 61, 70, 51, 46, 65, 55, 60, 54, 80, 62, 52, 62, 80, 57, 57, 54, 94, 60, 66, 63, 71, 94, 77, 41, 60, 76, 60, 59, 71, 86, 59, 61, 50, 73, 71, 46, 57, 61, 65, 58, 84, 53, 79, 65, 60, 77, 74, 70, 60, 56, 68, 69, 41, 89, 80, 53, 66, 94, 60, 63, 70, 70, 76, 51, 53, 69, 62, 68, 59, 60, 70, 67, 52, 62, 83, 46, 67, 73, 75, 60, 58, 49, 40, 52, 49, 56, 72, 60, 57, 78, 61, 69, 61, 94, 50, 76, 70, 57, 54, 76, 58, 66, 69, 46, 68, 69, 73, 74, 55, 49, 61, 81, 109, 55, 88, 60, 68, 73, 51, 61, 54, 85, 64, 58, 76, 60, 55, 57, 76, 55, 62, 74, 67, 63, 49, 55, 77, 57, 92, 67, 55, 73, 59, 51, 58, 58, 106, 63, 70, 66, 61, 45, 72, 67, 59, 63, 71, 58, 69, 66, 50, 86, 80, 53, 49, 69, 58, 75, 63, 62, 69, 43, 57, 62, 79, 65, 63, 65, 85, 69, 69, 72, 93, 44, 66, 67, 81, 64, 62, 57, 61, 58, 50, 77, 66, 58, 78, 83, 76, 56, 65, 59, 69, 49, 71, 79, 64, 79, 47, 75, 69, 70, 94, 66, 63, 48, 70, 55, 59, 60, 39, 73, 61, 70, 70, 65, 70, 54, 53, 82, 89, 56, 75, 64, 46, 95, 53, 70, 56, 56, 70, 66, 57, 65, 74, 60, 65, 79, 44, 67, 76, 37, 74, 83, 63, 58, 53, 66, 94, 62, 57, 64, 43, 64, 71, 57, 74, 62, 97, 67, 86, 84, 71, 88, 58, 52, 49, 76, 67, 54, 48, 70, 49, 49, 111, 57, 68, 75, 52, 60, 85, 88, 36, 76, 55, 67, 76, 48, 74, 49, 89, 58, 31, 95, 54, 45, 69, 58, 63, 53, 60, 56, 59, 81, 65, 60, 66, 68, 60, 110, 80, 79, 74, 59, 72, 95, 41, 70, 69, 67, 70, 54, 47, 61, 60, 59, 70, 63, 75, 80, 65, 63, 71, 77, 56, 56, 72, 79, 66, 76, 58, 64, 62, 64, 59, 53, 74, 65, 49, 125, 82, 54, 56, 62, 54, 47, 83, 87, 69, 92, 68, 64, 50, 55, 55, 65, 63, 142, 62, 51, 50, 61, 51, 75, 57, 57, 71, 84, 46, 77, 64, 72, 60, 75, 65, 57, 62, 69, 53, 65, 73, 64, 87, 58, 74, 72, 56, 65, 62, 50, 77, 58, 50, 62, 66, 67, 57, 74, 81, 104, 69, 53, 69, 58, 73, 43, 60, 73, 79, 69, 66, 83, 62, 40, 75, 77, 63, 68, 56, 58, 89, 40, 54, 78, 66, 55, 56, 71, 67, 66, 66, 89, 56, 61, 72, 72, 67, 63, 68, 49, 63, 54, 60, 64, 68, 72, 69, 63, 51, 71, 54, 67, 59, 63, 55, 57, 70, 78, 65, 56, 51, 66, 72, 53, 76, 59, 92, 56, 47, 68, 60, 63, 58, 52, 61, 89, 47, 58, 67, 104, 67, 81, 62, 58, 72, 68, 64, 28, 66, 56, 52, 52, 57, 63, 62, 80, 61, 30, 59, 61, 65, 50, 67, 72, 81, 45, 64, 71, 82, 74, 58, 65, 70, 91, 60, 72, 80, 71, 29, 81, 70, 49, 68, 74, 83, 71, 66, 57, 69, 72, 71, 57, 66, 70, 70, 59, 73, 72, 58, 76, 66, 76, 48, 54, 89, 65, 67, 88, 62, 56, 54, 69, 70, 72, 61, 59, 124, 63, 58, 79, 63, 49, 52, 89, 61, 57, 64, 47, 71, 67, 65, 55, 72, 76, 57, 58, 73, 74, 118, 62, 79, 63, 58, 72, 68, 51, 75, 50, 72, 68, 62, 61, 71, 131, 63, 56, 56, 60, 50, 117, 79, 47, 59, 68, 72, 61, 65, 69, 61, 64, 60, 75, 61, 77, 61, 47, 82, 101, 83, 65, 53, 65, 48, 68, 147, 61, 66, 68, 75, 73, 74, 71, 59, 83, 69, 67, 67, 59, 50, 50, 56, 63, 65, 97, 53, 56, 67, 57, 59, 75, 65, 60, 55, 67, 60, 88, 52, 58, 73, 55, 47, 63, 58, 59, 64, 43, 56, 70, 67, 52, 73, 59, 65, 59, 74, 68, 39, 61, 65, 62, 87, 51, 61, 70, 59, 52, 44, 54, 66, 78, 61, 60, 72, 45, 68, 41, 49, 61, 69, 61, 62, 62, 60, 50, 101, 63, 52, 66, 47, 67, 69, 68, 67, 75, 61, 59, 75, 84, 56, 64, 69, 63, 76, 87, 72, 60, 59, 85, 71, 69, 55, 73, 68, 64, 59, 70, 52, 57, 60, 60, 52, 66, 73, 75, 65, 52, 44, 66, 73, 61, 69, 85, 61, 59, 57, 59, 59, 60, 61, 66, 68, 64, 57, 76, 77, 54, 51, 77, 48, 70, 75, 63, 93, 56, 63, 60, 56, 74, 61, 73, 66, 75, 43, 110, 80, 65, 57, 68, 83, 94, 73, 88, 69, 55, 60, 77, 66, 80, 61, 73, 88, 56, 56, 60, 50, 63, 72, 133, 62, 89, 56, 59, 80, 56, 76, 73, 46, 100, 57, 62, 72, 68, 64, 49, 56, 66, 81, 86, 79, 78, 63, 62, 86, 68, 60, 57, 65, 55, 56, 62, 56, 66, 61, 59, 75, 52, 59, 40, 64, 64, 79, 61, 80, 54, 48, 63, 57, 59, 54, 75, 71, 93, 63, 55, 91, 45, 57, 78, 70, 64, 71, 71, 63, 65, 59, 55, 65, 73, 58, 64, 87, 65, 63, 48, 53, 110, 70, 63, 56, 61, 73, 65, 56, 80, 67, 64, 77, 52, 60, 72, 80, 65, 74, 53, 71, 47, 65, 85, 72, 88, 56, 67, 72, 58, 59, 70, 57, 79, 53, 45, 81, 75, 60, 65, 84, 68, 64, 59, 52, 79, 62, 60, 49, 134, 61, 74, 43, 85, 50, 60, 62, 61, 62, 78, 45, 66, 37, 73, 78, 53, 71, 62, 57, 68, 58, 83, 69, 65, 51, 59, 75, 74, 87, 49, 58, 73, 63, 52, 71, 79, 70, 76, 65, 61, 71, 102, 76, 61, 50, 67, 53, 76, 52, 61, 46, 54, 75, 63, 59, 58, 62, 53, 81, 65, 81, 79, 33, 57, 67, 105, 53, 68, 60, 64, 60, 52, 53, 74, 70, 72, 74, 50, 63, 77, 73, 61, 61, 56, 80, 62, 103, 67, 74, 65, 52, 92, 71, 61, 85, 73, 55, 65, 70, 72, 56, 73, 72, 57, 76, 73, 58, 55, 64, 53, 68, 64, 51, 60, 63, 47, 74, 77, 53, 65, 59, 60, 70, 66, 82, 53, 54, 76, 70, 59, 74, 61, 53, 67, 70, 82, 42, 73, 76, 73, 64, 84, 69, 102, 61, 58, 56, 67, 50, 47, 63, 60, 50, 49, 86, 66, 66, 66, 79, 69, 62, 95, 66, 80, 41, 67, 76, 65, 64, 63, 57, 54, 81, 60, 62, 65, 84, 55, 52, 80, 74, 48, 89, 79, 93, 70, 65, 58, 64, 57, 66, 61, 67, 65, 60, 73, 76, 61, 77, 67, 52, 53, 67, 63, 73, 55, 72, 61, 88, 87, 64, 81, 59, 79, 57, 59, 81, 59, 62, 64, 56, 60, 56, 74, 57, 73, 50, 60, 76, 65, 57, 63, 83, 75, 57, 56, 69, 59, 47, 64, 64, 62, 74, 56, 57, 78, 75, 72, 58, 81, 58, 60, 76, 46, 54, 67, 66, 70, 55, 61, 74, 62, 74, 66, 58, 68, 59, 59, 57, 61, 73, 58, 51, 64, 60, 34, 55, 60, 62, 78, 73, 70, 84, 66, 59, 74, 58, 66, 55, 56, 69, 58, 61, 56, 61, 58, 70, 69, 56, 100, 54, 61, 60, 65, 52, 90, 61, 67, 66, 62, 69, 64, 56, 65, 66, 75, 58, 67, 73, 68, 61, 62, 63, 95, 69, 65, 72, 52, 75, 65, 76, 51, 61, 72, 69, 79, 76, 58, 41, 59, 84, 60, 76, 55, 67, 67, 59, 70, 72, 49, 64, 83, 58, 51, 116, 68, 65, 77, 51, 55, 73, 44, 70, 71, 67, 65, 65, 64, 51, 57, 100, 71, 35, 82, 56, 70, 60, 80, 56, 58, 64, 55, 90, 57, 74, 65, 54, 64, 58, 128, 75, 78, 47, 76, 76, 52, 64, 65, 74, 62, 64, 70, 70, 66, 61, 58, 60, 59, 56, 76, 62, 63, 59, 66, 77, 45, 50, 61, 68, 76, 65, 44, 54, 44, 64, 74, 54, 45, 75, 116, 64, 57, 51, 47, 68, 58, 87, 53, 51, 87, 51, 58, 63, 76, 57, 67, 70, 139, 54, 61, 44, 73, 57, 91, 68, 94, 63, 76, 60, 102, 55, 88, 69, 68, 59, 69, 62, 72, 78, 53, 60, 73, 87, 46, 77, 64, 64, 54, 72, 65, 75, 56, 66, 59, 64, 58, 72, 94, 62, 116, 77, 61, 65, 66, 82, 62, 74, 57, 71, 58, 64, 82, 62, 53, 66, 47, 59, 54, 51, 61, 100, 52, 63, 79, 60, 73, 72, 62, 61, 57, 76, 92, 67, 66, 71, 77, 52, 80, 54, 60, 71, 84, 75, 59, 71, 98, 77, 53, 50, 54, 72, 64, 61, 78, 64, 74, 76, 63, 74, 56, 59, 63, 76, 63, 54, 61, 76, 57, 60, 57, 51, 67, 58, 79, 55, 73, 56, 64, 57, 95, 59, 74, 59, 61, 65, 68, 77, 60, 90, 55, 53, 67, 70, 49, 67, 55, 78, 59, 56, 57, 67, 73, 52, 70, 52, 55, 53, 83, 76, 61, 87, 72, 63, 76, 47, 84, 83, 43, 121, 71, 71, 49, 78, 54, 54, 72, 64, 69, 53, 57, 52, 86, 55, 68, 56, 58, 68, 88, 57, 101, 76, 47, 61, 66, 73, 61, 57, 58, 68, 69, 49, 60, 81, 72, 65, 73, 111, 52, 60, 91, 59, 70, 75, 77, 44, 60, 56, 61, 66, 60, 46, 71, 65, 76, 69, 63, 75, 65, 89, 72, 79, 53, 78, 61, 70, 64, 75, 78, 56, 56, 58, 60, 65, 86, 47, 44, 71, 64, 57, 115, 91, 86, 54, 46, 55, 70, 68, 66, 76, 57, 73, 79, 80, 60, 81, 66, 66, 82, 35, 80, 51, 85, 57, 44, 125, 68, 47, 74, 84, 77, 55, 64, 83, 73, 73, 64, 75, 61, 51, 61, 71, 68, 49, 68, 58, 52, 58, 58, 74, 61, 50, 52, 66, 66, 81, 84, 54, 59, 78, 59, 63, 70, 72, 54, 61, 49, 76, 59, 70, 56, 59, 82, 54, 89, 67, 70, 74, 72, 73, 58, 84, 68, 59, 63, 71, 49, 80, 82, 66, 75, 76, 71, 72, 66, 71, 84, 59, 53, 65, 56, 61, 77, 59, 28, 76, 56, 66, 57, 65, 52, 55, 63, 66, 66, 54, 59, 65, 95, 59, 48, 94, 82, 56, 78, 75, 55, 54, 55, 58, 54, 40, 90, 64, 57, 92, 53, 63, 61, 70, 56, 69, 66, 45, 54, 51, 71, 63, 68, 74, 60, 59, 81, 55, 45, 49, 60, 61, 79, 69, 58, 48, 74, 63, 65, 63, 61, 56, 73, 63, 60, 65, 64, 76, 70, 60, 61, 49, 55, 68, 75, 71, 58, 74, 96, 139, 65, 56, 70, 67, 69, 73, 34, 96, 65, 75, 80, 63, 43, 73, 70, 69, 89, 53, 61, 61, 55, 87, 68, 68, 59, 67, 62, 78, 65, 71, 59, 83, 86, 46, 96, 56, 74, 60, 65, 75, 64, 45, 47, 80, 65, 56, 60, 78, 63, 57, 56, 67, 56, 86, 64, 56, 55, 49, 68, 93, 71, 68, 58, 67, 69, 73, 73, 72, 85, 72, 57, 50, 87, 66, 79, 63, 76, 67, 72, 63, 64, 59, 57, 64, 65, 57, 64, 58, 69, 93, 47, 67, 63, 59, 53, 83, 71, 74, 54, 78, 98, 74, 59, 66, 79, 65, 55, 77, 58, 87, 68, 77, 76, 51, 60, 82, 72, 55, 77, 57, 70, 82, 62, 58, 47, 79, 57, 79, 61, 52, 75, 58, 93, 48, 68, 89, 67, 61, 98, 76, 74, 70, 63, 46, 81, 55, 57, 87, 105, 57, 67, 40, 64, 63, 72, 65, 56, 69, 64, 47, 64, 49, 60, 58, 72, 62, 76, 66, 71, 62, 43, 61, 77, 64, 71, 65, 61, 86, 65, 63, 59, 61, 62, 61, 65, 61, 69, 72, 65, 70, 74, 65, 71, 48, 67, 65, 71, 59, 51, 47, 58, 88, 48, 76, 62, 57, 58, 48, 68, 61, 70, 88, 62, 55, 107, 60, 71, 92, 63, 70, 54, 49, 67, 59, 76, 65, 76, 90, 59, 100, 60, 64, 64, 56, 82, 112, 70, 62, 45, 73, 101, 48, 76, 57, 88, 52, 62, 53, 93, 75, 71, 75, 75, 65, 72, 74, 64, 86, 64, 82, 89, 55, 66, 65, 86, 34, 42, 58, 75, 65, 52, 55, 54, 52, 73, 65, 44, 56, 52, 82, 50, 55, 58, 81, 68, 72, 56, 107, 59, 61, 50, 69, 59, 86, 57, 56, 75, 52, 54, 62, 70, 73, 61, 90, 50, 64, 51, 73, 68, 79, 83, 78, 65, 56, 69, 74, 66, 49, 44, 59, 69, 90, 57, 78, 73, 63, 56, 56, 67, 74, 61, 84, 65, 71, 64, 65, 49, 61, 57, 62, 69, 64, 75, 50, 53, 53, 72, 52, 71, 65, 81, 48, 74, 74, 69, 52, 60, 90, 67, 55, 70, 57, 58, 72, 65, 96, 68, 46, 68, 50, 62, 66, 79, 76, 60, 58, 58, 75, 77, 78, 77, 72, 55, 61, 64, 55, 52, 57, 56, 69, 69, 66, 49, 107, 48, 56, 54, 60, 45, 91, 83, 78, 60, 59, 68, 72, 50, 40, 57, 79, 70, 67, 78, 58, 78, 57, 85, 59, 59, 80, 64, 81, 55, 69, 68, 68, 83, 63, 71, 71, 79, 84, 46, 67, 57, 65, 67, 61, 51, 68, 65, 48, 68, 61, 70, 67, 76, 34, 75, 72, 54, 57, 52, 63, 92, 62, 65, 53, 62, 59, 77, 50, 68, 73, 89, 51, 67, 73, 59, 68, 54, 53, 74, 91, 56, 59, 63, 65, 62, 50, 54, 53, 53, 55, 58, 64, 57, 98, 57, 81, 87, 55, 60, 72, 60, 59, 81, 51, 68, 67, 108, 56, 50, 98, 54, 80, 68, 59, 68, 71, 72, 74, 81, 78, 66, 56, 55, 66, 49, 88, 79, 61, 71, 50, 47, 51, 59, 61, 60, 48, 54, 72, 65, 54, 66, 82, 60, 74, 102, 58, 82, 61, 77, 85, 67, 62, 74, 63, 73, 48, 67, 69, 65, 61, 55, 52, 55, 50, 55, 66, 47, 65, 64, 56, 62, 56, 57, 47, 63, 66, 40, 54, 76, 62, 69, 51, 46, 43, 111, 60, 53, 56, 69, 56, 50, 70, 51, 61, 87, 59, 68, 59, 71, 82, 63, 45, 132, 69, 55, 75, 59, 61, 100, 55, 76, 65, 55, 69, 96, 60, 80, 58, 57, 69, 62, 44, 88, 49, 86, 61, 93, 77, 57, 85, 53, 63, 83, 64, 50, 46, 65, 55, 52, 65, 69, 75, 78, 67, 89, 63, 77, 74, 38, 90, 82, 61, 63, 65, 75, 61, 48, 62, 45, 87, 69, 64, 47, 65, 72, 103, 60, 59, 70, 50, 79, 62, 67, 59, 63, 56, 109, 71, 75, 65, 78, 48, 59, 84, 76, 58, 62, 78, 91, 57, 85, 87, 60, 46, 60, 62, 65, 57, 60, 61, 62, 50, 60, 69, 53, 46, 62, 56, 63, 70, 73, 63, 58, 83, 67, 52, 77, 69, 83, 68, 69, 58, 73, 77, 82, 77, 60, 69, 46, 83, 65, 36, 46, 73, 64, 49, 63, 42, 61, 63, 55, 48, 69, 66, 73, 73, 59, 52, 47, 43, 52, 61, 64, 59, 56, 56, 73, 55, 90, 61, 57, 58, 52, 136, 59, 73, 65, 62, 66, 54, 48, 83, 52, 54, 68, 52, 65, 49, 56, 63, 63, 71, 73, 74, 113, 77, 62, 57, 71, 68, 76, 67, 67, 55, 81, 74, 56, 64, 66, 58, 70, 92, 56, 67, 73, 76, 59, 51, 66, 74, 60, 45, 66, 76, 72, 64, 70, 77, 60, 54, 55, 64, 67, 80, 100, 73, 77, 57, 78, 62, 71, 79, 93, 64, 51, 54, 56, 59, 94, 54, 43, 67, 40, 69, 123, 46, 72, 60, 77, 74, 79, 48, 54, 63, 65, 65, 96, 80, 72, 59, 67, 93, 90, 63, 61, 107, 90, 58, 61, 135, 75, 79, 56, 86, 56, 60, 64, 61, 78, 73, 53, 65, 71, 54, 66, 50, 64, 45, 69, 65, 27, 59, 76, 42, 57, 58, 51, 43, 82, 64, 89, 60, 52, 67, 58, 97, 68, 68, 60, 66, 70, 71, 84, 56, 52, 55, 68, 70, 55, 67, 94, 72, 65, 72, 70, 82, 51, 70, 65, 69, 83, 63, 68, 65, 80, 98, 59, 58, 69, 67, 69, 66, 52, 57, 55, 52, 110, 55, 32, 60, 52, 57, 64, 91, 66, 62, 68, 80, 69, 58, 60, 54, 87, 63, 65, 75, 69, 62, 82, 61, 53, 63, 64, 54, 55, 61, 90, 55, 52, 74, 36, 74, 55, 64, 52, 61, 81, 55, 67, 66, 86, 86, 59, 49, 67, 63, 55, 67, 57, 61, 68, 56, 59, 65, 77, 82, 62, 65, 75, 73, 54, 54, 70, 51, 54, 63, 66, 81, 68, 86, 51, 72, 72, 69, 50, 76, 55, 50, 93, 123, 57, 58, 58, 55, 66, 65, 65, 99, 70, 97, 81, 70, 45, 60, 82, 85, 90, 62, 70, 58, 56, 86, 70, 73, 69, 66, 57, 95, 66, 84, 84, 84, 80, 59, 60, 40, 62, 88, 60, 58, 74, 78, 66, 65, 54, 54, 66, 75, 58, 69, 44, 73, 64, 57, 65, 80, 46, 71, 53, 87, 62, 50, 57, 58, 67, 68, 53, 73, 56, 50, 60, 46, 61, 69, 62, 77, 45, 72, 66, 72, 72, 69, 41, 75, 66, 49, 60, 61, 65, 58, 56, 56, 77, 59, 65, 55, 63, 80, 53, 64, 104, 82, 80, 64, 71, 38, 68, 70, 75, 94, 66, 52, 67, 66, 57, 96, 68, 71, 55, 62, 61, 58, 85, 64, 59, 37, 51, 61, 64, 68, 69, 71, 90, 56, 62, 63, 62, 76, 102, 77, 77, 55, 41, 52, 67, 54, 65, 73, 109, 56, 53, 24, 63, 87, 55, 51, 53, 74, 49, 55, 63, 118, 71, 81, 65, 67, 62, 58, 81, 63, 69, 66, 71, 55, 60, 75, 56, 99, 57, 73, 76, 82, 56, 62, 64, 52, 50, 72, 71, 55, 75, 44, 64, 69, 55, 63, 55, 54, 59, 92, 65, 84, 51, 54, 53, 52, 56, 50, 66, 70, 55, 78, 63, 54, 129, 51, 68, 57, 61, 55, 63, 78, 79, 68, 82, 75, 70, 98, 59, 58, 72, 77, 62, 57, 59, 104, 80, 70, 52, 73, 82, 59, 87, 53, 59, 55, 62, 61, 85, 80, 68, 83, 68, 61, 79, 66, 79, 67, 70, 67, 72, 54, 60, 53, 79, 51, 43, 57, 78, 60, 51, 63, 53, 61, 62, 41, 47, 62, 64, 67, 68, 56, 52, 49, 79, 71, 59, 59, 58, 58, 81, 74, 36, 84, 54, 75, 77, 51, 60, 65, 62, 96, 53, 57, 41, 78, 62, 66, 60, 80, 84, 73, 66, 63, 66, 91, 51, 64, 49, 51, 60, 96, 57, 90, 75, 61, 73, 57, 69, 48, 49, 132, 54, 62, 59, 81, 66, 66, 70, 47, 73, 70, 73, 65, 61, 67, 62, 68, 47, 59, 74, 55, 73, 48, 76, 65, 68, 79, 62, 56, 63, 66, 43, 60, 57, 110, 75, 74, 75, 84, 48, 57, 76, 56, 60, 72, 68, 69, 59, 80, 58, 76, 85, 60, 73, 51, 73, 66, 51, 55, 71, 61, 70, 86, 71, 57, 63, 52, 50, 92, 80, 80, 47, 78, 64, 67, 41, 46, 49, 71, 67, 56, 69, 62, 86, 72, 56, 78, 60, 55, 70, 70, 60, 65, 59, 73, 102, 71, 104, 60, 38, 80, 56, 66, 49, 49, 52, 58, 51, 51, 61, 72, 58, 53, 59, 45, 63, 64, 70, 68, 71, 48, 53, 58, 88, 61, 55, 64, 67, 63, 60, 53, 61, 81, 73, 48, 48, 69, 46, 44, 66, 40, 73, 85, 88, 73, 60, 76, 47, 54, 65, 64, 55, 52, 58, 53, 62, 77, 60, 97, 72, 61, 64, 49, 59, 68, 68, 58, 60, 53, 93, 63, 65, 97, 74, 56, 69, 75, 63, 92, 81, 50, 63, 70, 54, 71, 64, 58, 58, 76, 76, 31, 58, 69, 53, 57, 64, 76, 77, 68, 68, 53, 77, 69, 60, 78, 60, 60, 102, 89, 80, 63, 71, 62, 56, 67, 58, 56, 57, 76, 74, 70, 57, 69, 77, 62, 81, 53, 45, 57, 74, 64, 65, 52, 58, 51, 57, 61, 81, 56, 56, 60, 91, 63, 66, 62, 66, 57, 137, 68, 67, 78, 62, 52, 33, 49, 81, 66, 87, 69, 61, 61, 76, 49, 63, 46, 144, 66, 53, 76, 70, 58, 79, 76, 66, 64, 78, 68, 69, 63, 63, 63, 98, 70, 91, 76, 94, 77, 71, 81, 63, 69, 74, 50, 51, 76, 63, 53, 47, 58, 63, 62, 87, 52, 57, 70, 40, 51, 95, 61, 57, 99, 92, 61, 50, 61, 58, 78, 54, 38, 53, 63, 62, 59, 79, 54, 62, 66, 61, 74, 51, 69, 39, 67, 43, 58, 66, 51, 52, 57, 63, 74, 74, 74, 61, 57, 43, 54, 71, 56, 64, 78, 61, 63, 72, 73, 65, 58, 71, 80, 86, 45, 83, 47, 50, 65, 65, 65, 53, 62, 50, 67, 56, 57, 40, 85, 68, 77, 41, 65, 64, 55, 62, 55, 60, 72, 61, 66, 61, 59, 60, 71, 47, 61, 61, 69, 43, 76, 103, 69, 66, 62, 63, 61, 77, 69, 59, 43, 58, 70, 64, 62, 76, 72, 48, 52, 65, 66, 75, 78, 52, 69, 58, 54, 57, 100, 52, 104, 120, 62, 97, 58, 46, 63, 55, 63, 80, 96, 72, 72, 59, 54, 66, 66, 52, 90, 54, 56, 94, 90, 89, 71, 64, 63, 74, 56, 63, 85, 60, 67, 67, 77, 66, 62, 58, 61, 50, 45, 77, 51, 61, 56, 70, 58, 48, 48, 82, 96, 63, 77, 56, 69, 51, 75, 77, 53, 67, 76, 84, 59, 87, 72, 68, 76, 68, 52, 81, 76, 55, 80, 64, 64, 87, 60, 45, 54, 55, 74, 121, 64, 98, 62, 76, 64, 69, 66, 67, 59, 78, 99, 69, 68, 93, 73, 61, 83, 75, 64, 81, 61, 52, 67, 75, 89, 69, 65, 64, 41, 59, 68, 34, 88, 57, 58, 52, 85, 88, 63, 46, 55, 80, 67, 79, 66, 87, 58, 66, 75, 61, 54, 104, 52, 78, 69, 53, 47, 78, 54, 77, 61, 57, 58, 73, 65, 78, 74, 77, 67, 67, 62, 58, 51, 78, 58, 64, 61, 91, 56, 86, 63, 64, 84, 60, 70, 57, 88, 51, 52, 52, 84, 78, 57, 73, 58, 66, 56, 55, 63, 64, 58, 91, 65, 49, 68, 69, 70, 73, 53, 62, 59, 85, 61, 62, 71, 58, 59, 44, 62, 92, 74, 76, 56, 60, 67, 54, 87, 71, 59, 64, 60, 75, 53, 54, 44, 68, 75, 69, 64, 68, 38, 49, 74, 69, 68, 69, 62, 64, 59, 61, 53, 60, 79, 51, 35, 60, 113, 39, 74, 63, 65, 52, 53, 49, 48, 118, 64, 59, 53, 80, 76, 41, 59, 86, 71, 66, 86, 84, 66, 62, 45, 53, 62, 67, 26, 50, 91, 72, 32, 77, 54, 72, 94, 62, 75, 87, 58, 53, 47, 62, 67, 117, 58, 50, 59, 50, 63, 72, 81, 57, 67, 61, 42, 49, 74, 60, 74, 63, 49, 56, 62, 69, 61, 52, 54, 81, 68, 44, 40, 65, 51, 53, 55, 67, 67, 61, 42, 55, 66, 103, 87, 57, 63, 61, 87, 59, 49, 58, 75, 54, 110, 43, 54, 61, 49, 43, 63, 68, 69, 74, 70, 64, 78, 50, 65, 65, 47, 64, 49, 67, 55, 53, 57, 61, 83, 71, 41, 58, 44, 51, 67, 66, 63, 51, 68, 121, 83, 41, 65, 55, 58, 76, 81, 63, 57, 76, 62, 87, 74, 84, 65, 56, 54, 51, 81, 60, 59, 64, 88, 45, 75, 91, 65, 87, 68, 50, 73, 66, 58, 50, 58, 56, 59, 67, 74, 90, 63, 66, 104, 58, 78, 46, 72, 105, 57, 91, 49, 74, 64, 65, 65, 59, 106, 61, 60, 72, 47, 58, 63, 56, 65, 57, 61, 67, 63, 114, 62, 59, 52, 80, 52, 96, 87, 73, 50, 39, 84, 38, 59, 69, 65, 80, 55, 66, 75, 69, 51, 63, 58, 51, 49, 95, 70, 56, 57, 56, 90, 64, 43, 77, 58, 86, 66, 60, 77, 92, 64, 67, 55, 82, 58, 57, 66, 60, 59, 61, 61, 53, 50, 57, 69, 49, 42, 62, 62, 68, 41, 65, 61, 62, 86, 57, 65, 52, 75, 63, 67, 63, 87, 69, 74, 45, 69, 73, 70, 72, 49, 57, 52, 92, 76, 65, 67, 58, 66, 44, 49, 60, 69, 53, 105, 79, 55, 67, 66, 61, 56, 55, 49, 66, 71, 55, 74, 59, 62, 67, 71, 51, 65, 65, 49, 87, 61, 91, 62, 58, 102, 68, 81, 67, 69, 63, 74, 61, 45, 55, 53, 72, 61, 66, 87, 53, 61, 72, 60, 71, 69, 115, 77, 67, 100, 61, 70, 105, 69, 69, 98, 78, 55, 61, 85, 58, 87, 80, 49, 53, 39, 59, 92, 58, 71, 72, 68, 86, 63, 75, 74, 65, 93, 60, 62, 56, 62, 78, 62, 61, 79, 72, 60, 56, 52, 45, 74, 59, 73, 79, 58, 75, 79, 63, 114, 72, 59, 63, 70, 71, 64, 62, 71, 49, 66, 64, 66, 56, 51, 65, 67, 56, 70, 65, 55, 65, 92, 63, 71, 62, 43, 62, 68, 43, 71, 51, 84, 55, 78, 51, 110, 68, 74, 64, 60, 73, 59, 57, 89, 67, 49, 35, 64, 46, 59, 45, 83, 56, 43, 84, 70, 67, 38, 48, 58, 52, 60, 59, 66, 51, 88, 68, 65, 63, 58, 70, 54, 61, 80, 61, 38, 59, 59, 62, 61, 47, 77, 95, 62, 87, 78, 89, 64, 83, 56, 65, 66, 61, 109, 73, 72, 60, 53, 74, 52, 54, 44, 61, 100, 68, 74, 62, 85, 107, 64, 59, 89, 75, 78, 62, 69, 85, 60, 78, 62, 71, 109, 60, 69, 84, 57, 70, 77, 70, 75, 54, 77, 88, 67, 86, 44, 46, 77, 50, 67, 56, 46, 32, 74, 46, 66, 62, 72, 68, 88, 54, 94, 57, 53, 70, 92, 78, 84, 71, 81, 67, 45, 74, 76, 66, 59, 84, 60, 64, 71, 58, 51, 65, 68, 66, 101, 72, 67, 57, 84, 54, 56, 81, 44, 49, 54, 66, 88, 77, 62, 71, 43, 43, 65, 95, 54, 65, 61, 79, 63, 83, 42, 91, 50, 84, 67, 72, 61, 44, 63, 48, 60, 78, 69, 72, 91, 40, 63, 41, 77, 60, 56, 57, 95, 70, 63, 72, 66, 60, 72, 60, 46, 77, 70, 72, 57, 58, 65, 66, 76, 63, 68, 52, 62, 64, 50, 71, 69, 87, 66, 83, 65, 59, 80, 41, 56, 60, 62, 74, 49, 53, 55, 57, 66, 59, 78, 60, 65, 90, 59, 74, 59, 86, 67, 70, 51, 85, 53, 81, 62, 56, 55, 61, 59, 52, 65, 57, 74, 89, 73, 72, 65, 54, 60, 59, 80, 72, 76, 62, 47, 82, 68, 67, 68, 48, 76, 84, 83, 63, 57, 44, 64, 65, 58, 41, 79, 64, 58, 56, 69, 62, 76, 56, 71, 82, 57, 66, 65, 63, 51, 60, 66, 48, 72, 53, 72, 57, 69, 68, 50, 65, 63, 83, 71, 60, 61, 66, 53, 66, 58, 42, 71, 57, 55, 49, 65, 63, 75, 60, 50, 53, 82, 63, 53, 88, 69, 61, 67, 61, 40, 55, 44, 92, 51, 67, 73, 50, 56, 53, 63, 74, 46, 68, 60, 64, 60, 55, 67, 50, 54, 51, 86, 123, 54, 76, 59, 40, 71, 58, 55, 84, 51, 79, 60, 79, 65, 58, 65, 75, 81, 52, 71, 124, 87, 67, 46, 91, 79, 85, 65, 67, 78, 74, 66, 56, 63, 54, 68, 62, 58, 49, 57, 80, 69, 46, 76, 53, 67, 83, 22, 54, 81, 66, 82, 48, 63, 65, 77, 72, 67, 57, 69, 108, 52, 65, 68, 77, 53, 57, 47, 46, 63, 62, 74, 59, 74, 57, 64, 58, 57, 41, 70, 58, 56, 96, 56, 53, 58, 68, 64, 67, 64, 49, 114, 99, 81, 70, 56, 83, 95, 69, 58, 82, 58, 75, 58, 61, 63, 70, 69, 65, 75, 59, 64, 52, 86, 69, 70, 62, 59, 106, 102, 52, 56, 83, 80, 64, 69, 114, 44, 64, 56, 45, 62, 55, 64, 84, 75, 67, 51, 46, 55, 89, 72, 72, 68, 85, 62, 60, 65, 57, 60, 66, 51, 64, 73, 84, 66, 79, 70, 63, 75, 45, 85, 63, 124, 70, 57, 46, 58, 58, 51, 75, 58, 90, 68, 56, 55, 54, 83, 69, 65, 47, 69, 61, 73, 77, 67, 64, 87, 99, 64, 67, 75, 69, 54, 67, 60, 35, 72, 57, 71, 84, 66, 63, 69, 67, 56, 58, 106, 55, 63, 60, 60, 70, 65, 70, 61, 77, 66, 76, 50, 69, 59, 48, 70, 66, 57, 52, 66, 63, 69, 57, 62, 76, 54, 61, 62, 64, 73, 72, 46, 57, 93, 52, 56, 61, 50, 78, 63, 74, 77, 64, 88, 52, 61, 67, 79, 53, 54, 58, 65, 69, 64, 72, 64, 59, 42, 52, 56, 64, 73, 55, 53, 77, 76, 47, 60, 56, 61, 52, 60, 62, 71, 96, 66, 46, 64, 70, 59, 67, 79, 52, 61, 67, 61, 67, 63, 47, 64, 71, 45, 62, 67, 64, 80, 76, 57, 48, 71, 53, 50, 95, 69, 58, 53, 47, 79, 64, 54, 56, 68, 91, 76, 61, 62, 65, 77, 68, 57, 59, 85, 58, 65, 74, 63, 70, 52, 54, 70, 51, 48, 51, 61, 53, 64, 57, 58, 62, 63, 75, 51, 64, 62, 45, 44, 86, 79, 63, 59, 73, 74, 79, 85, 68, 59, 86, 62, 98, 50, 50, 59, 70, 72, 81, 69, 56, 99, 71, 77, 68, 72, 61, 66, 60, 69, 76, 62, 69, 61, 64, 100, 64, 68, 68, 55, 106, 71, 57, 73, 68, 78, 68, 84, 68, 47, 57, 71, 78, 52, 55, 78, 57, 72, 53, 68, 110, 56, 55, 54, 90, 61, 74, 59, 67, 78, 66, 54, 57, 65, 70, 73, 52, 50, 82, 64, 54, 62, 111, 67, 55, 60, 70, 56, 76, 72, 82, 59, 65, 68, 54, 58, 99, 77, 93, 56, 65, 78, 56, 57, 74, 72, 91, 91, 54, 84, 56, 82, 58, 57, 60, 77, 87, 83, 85, 69, 56, 80, 66, 55, 76, 61, 64, 65, 82, 50, 77, 89, 71, 48, 60, 69, 44, 67, 81, 51, 72, 52, 65, 59, 66, 71, 52, 85, 69, 70, 60, 73, 71, 53, 72, 61, 61, 70, 68, 77, 54, 71, 64, 57, 55, 81, 66, 74, 64, 56, 58, 37, 60, 59, 94, 69, 61, 122, 69, 67, 53, 55, 69, 74, 59, 55, 54, 60, 82, 62, 84, 47, 68, 75, 49, 71, 50, 65, 61, 58, 78, 66, 57, 93, 60, 54, 55, 81, 59, 68, 49, 68, 64, 66, 57, 60, 70, 85, 61, 61, 66, 75, 69, 60, 121, 76, 61, 80, 65, 50, 70, 56, 59, 68, 68, 66, 50, 65, 74, 67, 61, 60, 71, 77, 67, 81, 54, 60, 81, 37, 79, 61, 83, 93, 45, 71, 75, 82, 58, 86, 84, 82, 69, 70, 73, 71, 38, 48, 57, 65, 72, 88, 37, 67, 72, 95, 62, 116, 75, 53, 83, 57, 64, 58, 62, 60, 58, 61, 57, 59, 64, 67, 66, 61, 56, 59, 66, 65, 56, 72, 66, 68, 63, 83, 50, 54, 52, 70, 56, 66, 65, 65, 84, 119, 72, 63, 61, 59, 80, 79, 54, 55, 63, 61, 82, 70, 48, 64, 64, 70, 53, 61, 66, 64, 67, 53, 65, 68, 68, 55, 53, 67, 58, 86, 86, 61, 76, 48, 64, 65, 60, 74, 62, 76, 51, 65, 56, 86, 61, 59, 68, 67, 85, 79, 77, 48, 51, 65, 68, 64, 79, 77, 73, 78, 82, 60, 68, 75, 53, 51, 74, 78, 91, 51, 43, 69, 83, 67, 70, 61, 76, 54, 61, 71, 88, 60, 63, 59, 66, 74, 60, 68, 90, 63, 55, 57, 60, 59, 59, 62, 41, 61, 73, 73, 63, 74, 74, 76, 69, 75, 56, 84, 54, 61, 57, 89, 68, 75, 50, 104, 66, 83, 65, 78, 93, 46, 59, 76, 59, 72, 77, 61, 57, 74, 94, 40, 57, 103, 75, 73, 59, 59, 60, 60, 57, 61, 76, 60, 69, 64, 59, 63, 61, 56, 72, 65, 58, 66, 71, 71, 45, 67, 92, 62, 70, 62, 74, 57, 77, 68, 80, 70, 68, 61, 66, 63, 64, 64, 59, 68, 45, 70, 69, 88, 72, 51, 74, 61, 69, 59, 88, 71, 81, 51, 72, 68, 64, 65, 72, 67, 59, 64, 68, 76, 78, 66, 81, 77, 57, 62, 30, 59, 79, 62, 63, 71, 63, 77, 50, 63, 60, 64, 57, 90, 63, 67, 66, 64, 68, 68, 69, 70, 54, 62, 86, 65, 60, 63, 64, 57, 87, 49, 61, 60, 73, 64, 65, 64, 59, 74, 62, 73, 91, 50, 72, 53, 96, 60, 50, 69, 56, 93, 70, 60, 52, 55, 67, 75, 62, 78, 45, 90, 68, 73, 76, 59, 67, 51, 64, 58, 58, 75, 76, 57, 61, 55, 60, 73, 56, 77, 75, 64, 83, 64, 62, 62, 59, 59, 76, 74, 79, 69, 64, 53, 59, 80, 70, 83, 69, 65, 74, 52, 96, 65, 65, 59, 59, 61, 94, 79, 63, 66, 98, 63, 64, 64, 61, 51, 55, 67, 67, 67, 86, 58, 84, 52, 63, 59, 67, 51, 67, 72, 72, 72, 59, 57, 68, 66, 70, 63, 58, 97, 58, 64, 86, 63, 61, 69, 66, 67, 68, 55, 64, 58, 66, 56, 56, 90, 56, 60, 54, 58, 89, 58, 53, 74, 62, 66, 82, 78, 89, 72, 53, 57, 48, 87, 57, 86, 63, 61, 51, 49, 53, 54, 73, 65, 42, 71, 58, 68, 91, 79, 57, 76, 60, 59, 61, 52, 61, 62, 71, 81, 49, 44, 57, 52, 71, 53, 90, 58, 106, 54, 69, 80, 70, 62, 54, 70, 91, 69, 41, 77, 72, 58, 72, 53, 72, 60, 60, 65, 70, 60, 110, 61, 47, 51, 75, 60, 64, 81, 66, 73, 86, 64, 85, 38, 62, 91, 82, 57, 69, 56, 93, 58, 53, 90, 67, 64, 70, 90, 68, 55, 59, 79, 56, 66, 63, 46, 58, 65, 80, 47, 93, 83, 43, 74, 92, 61, 56, 73, 74, 76, 84, 63, 71, 81, 106, 76, 63, 64, 49, 59, 60, 63, 72, 78, 64, 71, 60, 63, 73, 69, 68, 59, 68, 68, 65, 69, 64, 64, 60, 96, 51, 68, 60, 63, 59, 61, 75, 58, 59, 71, 54, 58, 43, 69, 64, 105, 55, 71, 57, 77, 94, 61, 48, 62, 55, 81, 79, 80, 43, 79, 52, 57, 84, 54, 52, 72, 61, 62, 59, 61, 79, 80, 69, 60, 55, 69, 69, 51, 58, 59, 67, 63, 66, 74, 94, 84, 62, 61, 61, 58, 71, 102, 64, 54, 55, 72, 63, 63, 53, 58, 59, 55, 61, 63, 50, 47, 68, 85, 55, 55, 54, 54, 69, 51, 61, 65, 67, 66, 65, 85, 64, 53, 66, 84, 74, 60, 63, 54, 50, 54, 64, 59, 94, 97, 61, 56, 76, 73, 67, 64, 60, 53, 61, 49, 55, 56, 54, 79, 54, 93, 61, 64, 70, 58, 50, 57, 97, 94, 51, 67, 69, 89, 61, 50, 89, 57, 77, 54, 64, 63, 73, 73, 68, 67, 61, 59, 63, 54, 68, 67, 58, 71, 68, 55, 66, 75, 57, 75, 50, 66, 65, 94, 64, 63, 78, 70, 62, 71, 62, 65, 60, 52, 86, 59, 61, 56, 55, 50, 55, 54, 73, 79, 67, 108, 68, 53, 74, 63, 54, 53, 62, 65, 101, 79, 54, 51, 67, 91, 48, 116, 91, 61, 77, 47, 78, 56, 52, 60, 66, 65, 70, 62, 78, 58, 71, 47, 50, 57, 50, 48, 60, 62, 85, 60, 72, 81, 87, 90, 68, 50, 66, 44, 50, 61, 48, 58, 79, 72, 79, 65, 65, 67, 123, 62, 66, 58, 69, 54, 79, 80, 47, 53, 95, 72, 50, 77, 73, 48, 57, 62, 89, 81, 71, 60, 68, 65, 57, 50, 60, 65, 72, 61, 66, 56, 66, 101, 59, 61, 58, 50, 61, 56, 75, 51, 52, 82, 49, 65, 64, 75, 68, 61, 55, 80, 113, 70, 61, 60, 80, 95, 56, 55, 59, 54, 51, 92, 52, 66, 58, 63, 68, 95, 64, 43, 79, 61, 74, 53, 95, 62, 73, 62, 57, 92, 64, 83, 54, 65, 39, 59, 83, 77, 56, 73, 73, 60, 81, 56, 56, 93, 95, 76, 60, 70, 55, 58, 68, 54, 59, 56, 62, 68, 79, 90, 70, 115, 68, 102, 67, 62, 61, 66, 97, 93, 61, 63, 70, 58, 52, 65, 58, 61, 64, 74, 46, 51, 62, 76, 63, 88, 57, 60, 67, 72, 65, 55, 60, 69, 45, 54, 60, 54, 54, 58, 68, 67, 104, 49, 58, 58, 82, 62, 56, 66, 70, 99, 59, 49, 80, 80, 60, 74, 72, 82, 88, 68, 77, 66, 63, 62, 52, 63, 109, 88, 51, 62, 55, 66, 57, 46, 65, 58, 85, 60, 65, 89, 76, 94, 65, 67, 74, 74, 58, 67, 66, 67, 46, 58, 58, 77, 64, 73, 50, 65, 64, 56, 78, 64, 71, 46, 62, 56, 66, 67, 56, 55, 56, 52, 55, 93, 74, 59, 69, 49, 76, 61, 73, 52, 46, 60, 61, 52, 55, 50, 62, 78, 79, 67, 54, 69, 71, 51, 64, 59, 65, 54, 70, 61, 84, 60, 70, 98, 62, 80, 78, 71, 62, 52, 69, 66, 69, 62, 53, 82, 62, 53, 110, 55, 34, 71, 75, 53, 44, 60, 79, 60, 75, 72, 111, 54, 64, 58, 62, 76, 54, 59, 69, 61, 65, 85, 73, 52, 53, 71, 55, 56, 62, 54, 67, 77, 63, 59, 65, 72, 55, 64, 71, 68, 87, 54, 58, 61, 82, 64, 48, 56, 95, 77, 65, 71, 74, 49, 67, 62, 59, 78, 77, 60, 60, 66, 70, 82, 75, 56, 61, 46, 81, 76, 66, 56, 56, 65, 61, 79, 49, 54, 84, 79, 67, 60, 67, 67, 59, 56, 108, 65, 61, 92, 46, 52, 71, 99, 43, 69, 55, 56, 48, 64, 67, 66, 50, 62, 44, 60, 63, 87, 76, 60, 50, 61, 79, 82, 58, 55, 61, 52, 61, 83, 54, 70, 61, 65, 89, 66, 48, 49, 61, 72, 74, 80, 67, 71, 59, 65, 57, 54, 67, 56, 67, 61, 71, 58, 53, 60, 78, 71, 65, 66, 87, 65, 63, 60, 57, 72, 57, 66, 68, 61, 98, 61, 56, 63, 68, 57, 60, 47, 63, 55, 57, 40, 69, 64, 99, 71, 60, 55, 59, 59, 74, 64, 122, 50, 43, 62, 47, 66, 93, 61, 95, 74, 51, 49, 121, 60, 102, 44, 53, 56, 50, 75, 48, 69, 61, 75, 63, 74, 68, 55, 66, 52, 68, 75, 71, 68, 52, 69, 58, 105, 66, 54, 61, 66, 81, 54, 62, 74, 89, 67, 71, 60, 65, 99, 63, 67, 103, 61, 54, 87, 83, 59, 70, 67, 54, 62, 51, 63, 49, 62, 72, 55, 59, 61, 72, 70, 61, 60, 60, 83, 80, 61, 58, 67, 78, 59, 62, 52, 45, 65, 62, 63, 109, 63, 67, 58, 68, 82, 55, 57, 64, 57, 60, 58, 53, 56, 48, 44, 62, 54, 74, 107, 75, 53, 61, 69, 52, 48, 41, 68, 67, 78, 59, 89, 41, 59, 41, 61, 60, 42, 100, 63, 68, 78, 83, 52, 67, 52, 48, 43, 65, 57, 79, 62, 85, 53, 75, 76, 62, 70, 57, 65, 52, 70, 65, 73, 43, 73, 62, 52, 69, 79, 66, 122, 105, 62, 64, 53, 75, 73, 48, 57, 113, 76, 70, 58, 54, 53, 77, 50, 65, 62, 65, 78, 63, 79, 78, 70, 50, 67, 64, 61, 80, 53, 62, 56, 59, 69, 75, 73, 35, 60, 62, 50, 59, 67, 69, 69, 58, 48, 61, 72, 66, 89, 48, 86, 55, 90, 70, 92, 72, 72, 68, 80, 49, 48, 71, 64, 65, 69, 49, 49, 56, 79, 52, 70, 61, 65, 76, 52, 63, 72, 44, 67, 73, 50, 76, 55, 70, 68, 59, 51, 68, 57, 74, 106, 64, 58, 69, 52, 73, 87, 61, 70, 80, 57, 63, 57, 59, 56, 64, 74, 63, 78, 85, 46, 50, 62, 69, 54, 54, 59, 126, 57, 54, 59, 70, 72, 57, 56, 67, 83, 54, 48, 56, 67, 53, 58, 74, 64, 61, 59, 59, 63, 71, 58, 61, 66, 102, 78, 52, 91, 67, 55, 56, 68, 59, 70, 64, 68, 55, 63, 72, 75, 55, 56, 50, 70, 59, 112, 59, 32, 48, 61, 57, 64, 65, 64, 66, 69, 43, 65, 102, 56, 65, 89, 71, 72, 82, 45, 77, 55, 80, 52, 57, 48, 81, 66, 52, 97, 63, 61, 42, 50, 78, 52, 48, 78, 52, 58, 60, 88, 64, 84, 57, 69, 70, 60, 96, 77, 96, 54, 57, 56, 79, 66, 68, 52, 71, 87, 56, 70, 71, 59, 72, 42, 85, 54, 69, 89, 73, 75, 60, 54, 65, 47, 55, 53, 61, 50, 97, 79, 63, 82, 62, 77, 65, 64, 67, 64, 46, 52, 68, 83, 41, 68, 122, 66, 46, 90, 48, 56, 63, 66, 49, 69, 58, 55, 53, 111, 57, 71, 55, 54, 63, 69, 127, 71, 73, 69, 63, 68, 65, 48, 57, 71, 81, 70, 71, 67, 67, 62, 53, 64, 58, 56, 52, 80, 99, 52, 49, 68, 76, 53, 94, 73, 63, 74, 64, 53, 49, 72, 71, 60, 78, 67, 55, 47, 57, 71, 73, 67, 64, 47, 48, 80, 53, 52, 70, 63, 69, 71, 65, 67, 68, 67, 53, 61, 56, 61, 61, 62, 79, 55, 63, 70, 80, 51, 39, 71, 37, 50, 65, 74, 69, 116, 71, 81, 77, 56, 89, 55, 54, 47, 67, 61, 87, 66, 74, 81, 68, 55, 56, 64, 58, 59, 67, 63, 66, 60, 62, 43, 57, 102, 54, 64, 126, 64, 70, 52, 50, 54, 77, 51, 63, 58, 40, 53, 69, 68, 73, 74, 69, 83, 68, 70, 61, 75, 119, 85, 82, 63, 69, 64, 50, 52, 60, 100, 68, 57, 51, 60, 63, 70, 54, 69, 77, 62, 50, 76, 116, 69, 71, 39, 73, 74, 59, 53, 60, 53, 78, 76, 69, 75, 74, 80, 44, 67, 70, 74, 63, 67, 55, 66, 94, 56, 64, 95, 55, 65, 72, 71, 70, 64, 69, 92, 63, 57, 48, 87, 82, 55, 74, 59, 74, 68, 70, 57, 71, 80, 56, 61, 43, 54, 50, 68, 66, 79, 78, 80, 63, 69, 68, 66, 63, 34, 50, 46, 66, 81, 45, 67, 64, 95, 61, 73, 71, 66, 55, 54, 64, 61, 63, 89, 93, 63, 58, 52, 59, 43, 60, 58, 101, 77, 68, 65, 82, 57, 72, 78, 47, 63, 74, 57, 60, 64, 74, 62, 54, 61, 52, 50, 44, 62, 61, 71, 106, 63, 67, 60, 56, 86, 60, 41, 56, 68, 60, 76, 66, 69, 60, 69, 55, 62, 60, 81, 47, 64, 61, 70, 56, 46, 109, 74, 75, 113, 50, 66, 72, 71, 60, 52, 59, 68, 57, 66, 60, 70, 58, 51, 63, 58, 83, 114, 77, 64, 56, 61, 92, 76, 56, 73, 78, 91, 75, 71, 49, 75, 72, 62, 67, 45, 74, 56, 71, 54, 66, 84, 68, 56, 58, 54, 81, 64, 78, 124, 87, 63, 69, 56, 70, 61, 66, 60, 57, 59, 71, 46, 55, 67, 73, 71, 50, 75, 61, 57, 55, 64, 67, 64, 67, 65, 67, 55, 78, 61, 39, 53, 72, 77, 57, 125, 59, 65, 57, 88, 92, 97, 42, 85, 53, 53, 40, 67, 67, 62, 76, 57, 59, 70, 77, 65, 68, 65, 67, 73, 77, 62, 79, 75, 63, 72, 53, 59, 76, 85, 55, 48, 53, 61, 72, 51, 59, 62, 94, 80, 84, 59, 84, 68, 86, 94, 78, 53, 66, 53, 75, 92, 61, 51, 54, 77, 70, 66, 71, 73, 46, 64, 69, 74, 71, 54, 56, 58, 75, 88, 54, 69, 73, 74, 63, 57, 53, 60, 56, 61, 78, 81, 72, 57, 55, 73, 78, 60, 56, 73, 60, 77, 56, 50, 94, 82, 67, 84, 45, 45, 61, 66, 77, 80, 58, 67, 69, 89, 62, 65, 64, 95, 53, 74, 58, 60, 58, 82, 55, 64, 62, 65, 101, 77, 77, 60, 69, 49, 55, 45, 60, 65, 70, 73, 75, 64, 68, 62, 63, 73, 58, 70, 78, 51, 56, 78, 74, 66, 50, 60, 62, 69, 56, 50, 91, 61, 61, 63, 74, 58, 67, 67, 68, 59, 61, 63, 74, 53, 71, 75, 58, 73, 75, 52, 57, 60, 60, 68, 63, 73, 58, 58, 74, 77, 54, 70, 65, 64, 62, 56, 61, 57, 46, 55, 60, 89, 57, 61, 69, 98, 61, 57, 86, 68, 73, 77, 53, 83, 82, 73, 80, 62, 63, 71, 55, 75, 54, 26, 72, 77, 53, 73, 53, 62, 65, 78, 70, 64, 53, 53, 61, 81, 116, 63, 49, 51, 58, 56, 70, 65, 52, 71, 78, 53, 67, 50, 58, 53, 84, 61, 86, 87, 69, 61, 61, 63, 57, 58, 63, 58, 44, 51, 51, 66, 113, 86, 66, 68, 55, 49, 67, 63, 68, 59, 56, 53, 49, 68, 105, 56, 81, 56, 64, 60, 53, 50, 71, 56, 64, 64, 74, 59, 53, 58, 73, 68, 65, 75, 79, 92, 60, 69, 75, 57, 65, 53, 80, 57, 65, 75, 45, 60, 82, 53, 51, 55, 69, 53, 86, 54, 78, 68, 55, 64, 65, 60, 44, 65, 54, 56, 55, 67, 79, 55, 50, 64, 64, 47, 39, 80, 66, 52, 77, 65, 55, 62, 49, 55, 63, 76, 63, 102, 77, 78, 108, 45, 67, 57, 56, 78, 53, 53, 44, 68, 57, 57, 44, 71, 68, 79, 64, 66, 90, 105, 56, 80, 73, 55, 55, 55, 110, 76, 61, 67, 51, 58, 58, 69, 53, 52, 63, 63, 60, 74, 63, 91, 55, 61, 49, 39, 51, 47, 76, 73, 39, 54, 80, 72, 98, 76, 52, 85, 90, 81, 79, 67, 50, 67, 52, 74, 56, 59, 75, 50, 50, 64, 55, 65, 38, 33, 81, 66, 60, 63, 83, 63, 83, 64, 65, 82, 65, 69, 81, 76, 99, 67, 74, 50, 74, 90, 56, 64, 70, 74, 58, 62, 32, 49, 56, 61, 65, 80, 48, 60, 66, 60, 60, 76, 68, 74, 75, 78, 65, 71, 71, 51, 64, 55, 103, 54, 63, 65, 74, 70, 100, 59, 89, 69, 47, 63, 68, 103, 89, 53, 66, 72, 78, 86, 81, 61, 71, 65, 65, 65, 69, 68, 68, 65, 82, 73, 46, 58, 60, 64, 86, 82, 74, 75, 53, 64, 57, 72, 51, 74, 48, 68, 54, 44, 95, 98, 52, 51, 74, 83, 62, 47, 102, 96, 68, 74, 58, 55, 61, 29, 66, 64, 55, 69, 66, 49, 72, 47, 119, 60, 69, 91, 65, 70, 53, 92, 79, 69, 61, 65, 71, 43, 46, 67, 82, 88, 49, 54, 46, 49, 51, 60, 66, 58, 57, 48, 70, 45, 68, 67, 77, 51, 65, 70, 81, 88, 69, 63, 48, 67, 57, 53, 56, 71, 84, 93, 61, 67, 86, 66, 63, 38, 74, 99, 56, 62, 78, 63, 78, 61, 73, 58, 56, 99, 75, 66, 66, 69, 56, 57, 52, 109, 56, 47, 64, 60, 63, 48, 49, 65, 78, 54, 59, 63, 53, 58, 65, 90, 60, 61, 63, 56, 64, 41, 94, 84, 51, 56, 59, 96, 66, 83, 61, 63, 72, 63, 50, 66, 82, 74, 56, 43, 57, 57, 38, 92, 58, 93, 70, 60, 47, 67, 61, 83, 74, 67, 50, 63, 81, 88, 37, 49, 50, 62, 52, 62, 72, 74, 57, 46, 49, 77, 84, 60, 73, 66, 57, 78, 52, 51, 80, 60, 83, 82, 61, 66, 85, 36, 80, 83, 53, 47, 73, 63, 114, 57, 58, 57, 55, 60, 62, 58, 46, 88, 77, 41, 63, 79, 58, 64, 53, 69, 104, 65, 58, 61, 67, 82, 58, 60, 67, 56, 105, 57, 49, 63, 50, 118, 58, 53, 85, 56, 67, 81, 62, 79, 60, 65, 81, 71, 42, 64, 108, 70, 62, 57, 92, 77, 75, 51, 53, 83, 57, 61, 62, 57, 42, 65, 79, 70, 80, 64, 40, 57, 71, 56, 61, 70, 61, 54, 102, 63, 98, 70, 41, 74, 68, 60, 65, 61, 121, 72, 58, 76, 66, 65, 74, 59, 113, 60, 75, 88, 75, 44, 62, 83, 70, 58, 69, 46, 73, 83, 75, 61, 60, 81, 65, 65, 53, 56, 63, 62, 65, 102, 53, 42, 54, 44, 45, 75, 62, 65, 50, 53, 65, 88, 56, 64, 63, 127, 68, 62, 59, 82, 85, 62, 63, 53, 70, 73, 68, 53, 61, 73, 55, 53, 67, 78, 69, 51, 83, 71, 56, 68, 64, 54, 63, 61, 74, 112, 67, 62, 85, 57, 55, 47, 47, 69, 59, 72, 65, 70, 64, 66, 79, 76, 62, 50, 50, 50, 80, 67, 82, 58, 71, 65, 47, 94, 90, 61, 81, 60, 69, 61, 51, 62, 64, 71, 61, 89, 79, 83, 65, 66, 54, 64, 107, 71, 50, 73, 61, 57, 56, 70, 59, 66, 65, 55, 63, 92, 83, 68, 61, 79, 58, 62, 58, 57, 56, 59, 63, 95, 77, 64, 74, 84, 74, 70, 79, 91, 59, 57, 88, 82, 50, 81, 68, 43, 68, 54, 62, 49, 59, 69, 71, 61, 64, 58, 49, 132, 78, 59, 48, 64, 91, 68, 64, 59, 60, 61, 57, 77, 48, 46, 80, 73, 57, 51, 63, 72, 76, 71, 66, 61, 59, 58, 69, 81, 80, 68, 80, 64, 85, 56, 72, 90, 86, 83, 64, 54, 78, 62, 62, 52, 80, 46, 87, 84, 47, 65, 63, 79, 46, 79, 57, 63, 61, 66, 53, 67, 75, 64, 74, 67, 69, 44, 106, 67, 75, 51, 91, 61, 71, 46, 93, 54, 62, 64, 54, 69, 60, 53, 57, 70, 93, 81, 86, 67, 65, 44, 69, 68, 61, 70, 34, 89, 57, 51, 71, 53, 65, 70, 68, 97, 75, 64, 82, 72, 93, 53, 53, 88, 64, 51, 52, 66, 103, 60, 70, 56, 54, 67, 67, 65, 71, 48, 61, 64, 64, 56, 55, 67, 75, 60, 51, 76, 72, 79, 55, 82, 106, 75, 67, 99, 82, 49, 44, 63, 94, 56, 64, 128, 70, 67, 56, 80, 89, 65, 66, 51, 56, 52, 58, 71, 66, 58, 57, 51, 72, 75, 54, 63, 58, 75, 70, 103, 51, 75, 64, 71, 79, 49, 78, 53, 46, 46, 48, 67, 76, 54, 80, 57, 79, 59, 108, 64, 65, 73, 63, 71, 71, 71, 71, 58, 50, 52, 77, 57, 70, 82, 75, 47, 68, 58, 48, 101, 74, 60, 91, 80, 74, 61, 102, 60, 71, 86, 71, 66, 88, 61, 40, 59, 48, 65, 55, 47, 48, 56, 62, 59, 46, 72, 121, 53, 53, 59, 59, 87, 64, 64, 76, 58, 59, 44, 59, 65, 60, 98, 74, 70, 73, 63, 55, 66, 66, 63, 53, 55, 51, 51, 78, 56, 71, 67, 66, 71, 66, 59, 63, 63, 63, 59, 71, 70, 71, 50, 63, 71, 70, 67, 59, 63, 54, 81, 52, 73, 56, 63, 57, 43, 61, 58, 63, 64, 65, 66, 55, 80, 63, 64, 67, 71, 78, 55, 62, 54, 45, 56, 56, 57, 52, 56, 80, 79, 83, 57, 87, 66, 62, 57, 48, 54, 71, 60, 69, 76, 62, 70, 59, 87, 51, 67, 75, 62, 77, 60, 63, 73, 69, 43, 62, 88, 50, 74, 91, 54, 43, 78, 66, 60, 36, 91, 52, 68, 96, 73, 64, 57, 76, 56, 75, 48, 50, 55, 56, 60, 53, 72, 68, 79, 58, 62, 59, 66, 61, 66, 65, 61, 64, 84, 72, 80, 61, 68, 72, 54, 51, 107, 67, 57, 64, 50, 48, 62, 62, 54, 62, 60, 56, 92, 89, 67, 99, 75, 76, 58, 76, 104, 75, 70, 52, 47, 58, 56, 81, 72, 65, 62, 56, 62, 52, 59, 83, 81, 51, 43, 67, 62, 62, 58, 69, 76, 78, 68, 60, 63, 70, 50, 112, 81, 60, 96, 102, 60, 84, 64, 67, 67, 61, 62, 60, 79, 59, 51, 51, 72, 99, 56, 62, 68, 49, 57, 102, 69, 96, 63, 63, 45, 57, 76, 62, 62, 47, 88, 91, 69, 61, 61, 58, 69, 62, 58, 74, 59, 67, 67, 55, 64, 52, 62, 47, 72, 70, 60, 39, 62, 53, 73, 48, 69, 89, 67, 63, 64, 59, 76, 63, 62, 53, 70, 66, 52, 84, 69, 77, 69, 79, 57, 64, 69, 67, 60, 63, 68, 47, 65, 67, 68, 63, 61, 79, 64, 47, 72, 57, 62, 88, 50, 85, 54, 50, 53, 83, 70, 56, 71, 58, 79, 80, 71, 70, 58, 88, 83, 60, 61, 59, 60, 47, 56, 70, 58, 63, 91, 75, 65, 61, 88, 65, 56, 60, 80, 71, 71, 77, 61, 44, 58, 52, 57, 50, 56, 67, 52, 74, 70, 73, 51, 66, 97, 52, 76, 66, 83, 67, 59, 79, 75, 88, 57, 81, 52, 57, 57, 98, 87, 80, 63, 66, 52, 60, 56, 63, 76, 80, 71, 58, 76, 49, 68, 79, 68, 63, 67, 64, 45, 56, 49, 105, 77, 60, 61, 51, 106, 50, 58, 58, 66, 57, 55, 63, 60, 54, 74, 50, 71, 78, 55, 68, 65, 67, 72, 70, 70, 89, 73, 64, 55, 100, 71, 50, 68, 62, 85, 48, 53, 62, 59, 56, 60, 94, 80, 57, 67, 72, 46, 69, 61, 58, 76, 67, 53, 46, 78, 76, 66, 62, 68, 63, 68, 56, 52, 67, 72, 64, 62, 99, 76, 61, 61, 77, 69, 79, 55, 62, 56, 69, 98, 61, 76, 59, 62, 59, 83, 51, 84, 49, 64, 61, 57, 64, 69, 68, 74, 73, 72, 59, 87, 38, 61, 74, 47, 53, 62, 50, 56, 86, 87, 74, 52, 58, 74, 61, 88, 73, 60, 68, 60, 105, 61, 67, 58, 85, 72, 58, 58, 44, 86, 53, 56, 73, 67, 64, 71, 68, 69, 55, 60, 63, 62, 74, 68, 59, 55, 53, 74, 34, 67, 56, 67, 64, 59, 93, 62, 60, 70, 81, 83, 63, 64, 58, 81, 62, 69, 61, 60, 120, 67, 63, 49, 72, 60, 43, 64, 69, 81, 77, 77, 54, 77, 65, 59, 56, 57, 62, 54, 63, 71, 92, 57, 65, 60, 51, 79, 85, 50, 63, 56, 55, 57, 67, 56, 98, 67, 110, 73, 68, 80, 112, 61, 57, 51, 39, 60, 72, 76, 66, 57, 60, 67, 51, 69, 71, 65, 80, 49, 79, 59, 57, 58, 77, 63, 95, 66, 63, 54, 74, 67, 62, 65, 53, 65, 68, 63, 71, 81, 53, 60, 42, 71, 66, 66, 64, 95, 73, 66, 63, 75, 92, 70, 52, 60, 58, 55, 62, 74, 62, 59, 56, 81, 67, 87, 65, 70, 70, 62, 63, 56, 76, 57, 58, 69, 69, 93, 76, 55, 80, 62, 68, 61, 62, 86, 58, 66, 63, 65, 57, 68, 95, 66, 55, 68, 61, 61, 81, 60, 71, 88, 77, 62, 94, 60, 56, 73, 68, 70, 64, 65, 45, 67, 71, 70, 54, 65, 58, 61, 60, 61, 53, 70, 101, 47, 62, 43, 71, 63, 47, 65, 65, 83, 67, 54, 60, 63, 64, 85, 64, 62, 62, 64, 50, 105, 57, 61, 54, 64, 87, 62, 62, 107, 56, 60, 71, 70, 57, 51, 61, 64, 55, 81, 96, 57, 72, 64, 50, 95, 63, 76, 67, 62, 58, 104, 58, 95, 38, 56, 93, 55, 54, 94, 73, 54, 59, 59, 55, 65, 63, 66, 77, 63, 71, 71, 59, 65, 71, 87, 67, 74, 55, 40, 63, 43, 55, 47, 54, 56, 60, 75, 84, 100, 81, 43, 71, 60, 57, 66, 79, 64, 56, 67, 96, 70, 49, 59, 67, 62, 56, 63, 73, 65, 62, 54, 80, 47, 58, 60, 54, 62, 71, 77, 77, 81, 50, 49, 55, 60, 67, 65, 71, 59, 54, 52, 63, 51, 67, 66, 117, 50, 69, 47, 67, 49, 89, 61, 61, 47, 77, 49, 58, 58, 77, 54, 68, 62, 65, 63, 76, 112, 72, 61, 75, 55, 72, 49, 49, 96, 85, 64, 57, 74, 65, 59, 56, 62, 62, 96, 61, 78, 63, 72, 59, 54, 78, 67, 66, 65, 54, 61, 54, 54, 79, 74, 68, 72, 79, 59, 54, 90, 63, 73, 63, 71, 59, 66, 64, 60, 60, 63, 65, 60, 84, 77, 69, 71, 55, 62, 54, 62, 75, 106, 79, 62, 57, 86, 60, 58, 46, 62, 68, 67, 51, 57, 68, 72, 67, 54, 65, 54, 59, 72, 57, 68, 62, 59, 71, 49, 61, 68, 125, 55, 61, 52, 102, 73, 65, 61, 63, 68, 66, 59, 67, 55, 69, 80, 64, 66, 45, 59, 58, 43, 98, 62, 55, 56, 50, 69, 56, 63, 55, 60, 66, 65, 69, 55, 117, 99, 58, 66, 55, 59, 97, 73, 76, 59, 54, 61, 85, 67, 91, 61, 51, 53, 53, 60, 79, 76, 53, 47, 64, 67, 76, 80, 36, 58, 72, 65, 52, 65, 74, 68, 67, 67, 80, 48, 66, 64, 71, 60, 68, 85, 65, 55, 56, 60, 66, 62, 74, 37, 65, 65, 55, 73, 69, 56, 37, 53, 63, 60, 59, 77, 47, 72, 56, 56, 64, 42, 55, 68, 77, 82, 94, 54, 59, 55, 48, 76, 70, 47, 55, 71, 69, 40, 76, 49, 69, 66, 54, 71, 55, 51, 55, 53, 61, 73, 59, 60, 56, 64, 55, 51, 62, 83, 82, 93, 56, 53, 64, 52, 80, 62, 70, 60, 47, 59, 62, 93, 66, 82, 74, 51, 58, 70, 57, 62, 41, 88, 84, 59, 85, 86, 87, 66, 57, 66, 63, 51, 51, 70, 90, 63, 55, 52, 72, 78, 66, 56, 80, 66, 61, 68, 73, 60, 57, 71, 66, 84, 67, 92, 62, 58, 69, 96, 53, 72, 53, 48, 69, 50, 55, 64, 68, 69, 61, 72, 48, 78, 87, 91, 71, 72, 62, 75, 58, 58, 74, 74, 48, 69, 93, 51, 67, 67, 59, 77, 59, 56, 78, 71, 78, 62, 62, 72, 60, 86, 53, 73, 70, 64, 66, 61, 58, 69, 78, 84, 78, 75, 58, 62, 49, 53, 64, 64, 73, 65, 77, 71, 66, 98, 51, 70, 75, 48, 53, 72, 74, 78, 56, 72, 74, 75, 45, 50, 82, 59, 68, 63, 68, 41, 71, 52, 81, 71, 63, 58, 59, 72, 60, 55, 66, 56, 73, 55, 59, 52, 60, 67, 61, 84, 58, 61, 72, 73, 74, 57, 82, 62, 67, 67, 66, 78, 79, 66, 40, 69, 65, 45, 95, 66, 91, 61, 66, 67, 66, 70, 64, 61, 94, 70, 64, 62, 72, 41, 51, 58, 66, 63, 110, 68, 72, 58, 58, 69, 71, 74, 60, 60, 75, 67, 59, 69, 66, 63, 71, 78, 61, 63, 62, 58, 66, 81, 75, 57, 68, 71, 93, 70, 56, 74, 65, 58, 70, 57, 53, 63, 72, 54, 75, 70, 59, 75, 61, 76, 66, 73, 85, 62, 64, 52, 65, 61, 62, 60, 73, 54, 69, 55, 69, 77, 65, 66, 67, 77, 61, 66, 70, 64, 60, 69, 100, 54, 79, 50, 49, 63, 58, 57, 59, 67, 76, 113, 83, 90, 49, 65, 78, 56, 64, 59, 63, 70, 83, 54, 89, 73, 60, 65, 49, 59, 87, 58, 60, 60, 57, 61, 47, 57, 63, 76, 72, 72, 67, 87, 76, 60, 81, 62, 55, 60, 66, 90, 71, 75, 69, 68, 46, 51, 61, 78, 53, 66, 59, 69, 63, 79, 69, 77, 59, 65, 83, 87, 52, 51, 89, 60, 83, 65, 57, 63, 74, 67, 73, 52, 63, 65, 73, 71, 68, 63, 66, 62, 62, 66, 70, 60, 62, 61, 56, 79, 75, 65, 63, 57, 59, 61, 67, 63, 70, 68, 66, 80, 69, 60, 57, 69, 69, 68, 52, 74, 48, 117, 76, 83, 72, 68, 53, 77, 70, 61, 72, 89, 68, 101, 70, 70, 70, 57, 81, 54, 78, 56, 51, 68, 53, 59, 64, 53, 59, 78, 57, 67, 74, 108, 59, 63, 78, 71, 70, 64, 73, 62, 88, 59, 65, 63, 71, 74, 68, 69, 77, 55, 79, 68, 48, 58, 74, 82, 61, 70, 68, 70, 133, 66, 60, 54, 78, 58, 95, 74, 50, 63, 89, 50, 66, 54, 63, 74, 49, 59, 45, 65, 59, 61, 60, 88, 64, 59, 61, 70, 67, 47, 65, 61, 67, 58, 69, 70, 64, 63, 41, 62, 73, 75, 60, 59, 85, 50, 67, 82, 65, 82, 68, 62, 85, 73, 68, 70, 59, 46, 69, 60, 54, 66, 71, 50, 87, 67, 67, 70, 54, 73, 65, 59, 61, 64, 57, 61, 55, 53, 61, 65, 61, 73, 64, 49, 67, 51, 49, 64, 62, 59, 49, 51, 68, 49, 61, 66, 57, 115, 70, 63, 68, 58, 55, 58, 54, 87, 71, 74, 62, 60, 68, 68, 89, 64, 85, 102, 56, 55, 73, 65, 72, 63, 60, 69, 70, 57, 73, 51, 81, 83, 68, 60, 57, 67, 57, 71, 73, 72, 68, 68, 71, 55, 68, 60, 65, 74, 61, 76, 56, 65, 71, 55, 107, 57, 86, 71, 73, 46, 46, 66, 50, 68, 60, 92, 56, 58, 65, 45, 62, 66, 63, 62, 57, 69, 69, 44, 51, 56, 58, 71, 55, 52, 50, 59, 55, 59, 65, 67, 66, 74, 55, 41, 63, 92, 43, 57, 67, 62, 75, 88, 56, 72, 52, 67, 79, 80, 73, 49, 64, 57, 69, 67, 64, 73, 73, 58, 51, 64, 60, 72, 68, 54, 68, 74, 50, 66, 86, 76, 50, 76, 69, 60, 55, 69, 89, 63, 55, 63, 74, 70, 48, 49, 57, 67, 48, 53, 69, 63, 65, 51, 60, 55, 54, 50, 80, 61, 55, 63, 66, 70, 43, 65, 91, 90, 69, 58, 64, 62, 77, 62, 106, 62, 64, 70, 69, 59, 60, 58, 52, 65, 57, 77, 45, 60, 65, 54, 146, 52, 76, 58, 71, 67, 64, 56, 63, 76, 52, 65, 60, 56, 73, 80, 74, 63, 62, 51, 63, 76, 67, 57, 65, 82, 113, 72, 65, 47, 103, 64, 60, 84, 65, 62, 51, 58, 59, 72, 72, 74, 72, 83, 68, 82, 52, 70, 73, 70, 61, 79, 74, 72, 107, 70, 61, 69, 61, 62, 67, 56, 67, 53, 79, 65, 69, 63, 69, 64, 46, 60, 59, 90, 63, 58, 60, 61, 78, 83, 61, 46, 73, 66, 68, 68, 60, 73, 65, 57, 94, 67, 59, 66, 57, 47, 67, 49, 72, 63, 70, 71, 59, 79, 60, 61, 62, 43, 65, 73, 67, 77, 61, 59, 91, 53, 74, 62, 47, 80, 58, 53, 46, 69, 68, 60, 67, 58, 56, 53, 61, 75, 50, 55, 61, 43, 96, 50, 79, 62, 98, 64, 75, 87, 59, 77, 63, 69, 53, 58, 67, 60, 57, 50, 67, 62, 71, 52, 84, 83, 61, 46, 66, 60, 85, 93, 50, 82, 54, 58, 59, 61, 109, 73, 64, 61, 71, 56, 81, 56, 59, 60, 73, 68, 63, 65, 76, 67, 59, 50, 69, 67, 76, 88, 72, 61, 61, 99, 86, 64, 50, 88, 46, 51, 59, 56, 50, 69, 82, 62, 51, 42, 78, 57, 58, 64, 79, 60, 56, 74, 71, 73, 57, 91, 64, 55, 69, 51, 92, 71, 76, 64, 42, 61, 59, 71, 74, 95, 67, 73, 53, 73, 63, 74, 65, 76, 67, 57, 89, 57, 66, 73, 45, 62, 76, 54, 57, 59, 58, 75, 63, 51, 61, 70, 50, 61, 54, 65, 76, 61, 51, 79, 96, 56, 64, 69, 61, 54, 63, 102, 68, 112, 50, 59, 61, 65, 88, 52, 67, 53, 60, 70, 60, 86, 39, 84, 78, 61, 44, 75, 71, 60, 53, 61, 47, 52, 69, 48, 111, 54, 59, 60, 52, 50, 64, 85, 60, 49, 56, 48, 44, 74, 31, 58, 31, 84, 77, 62, 111, 53, 74, 75, 57, 52, 56, 72, 82, 70, 93, 79, 59, 78, 40, 53, 50, 63, 72, 55, 72, 93, 61, 79, 62, 55, 65, 73, 51, 60, 61, 89, 51, 60, 67, 57, 69, 68, 76, 59, 71, 64, 60, 50, 60, 56, 77, 95, 63, 67, 59, 68, 76, 81, 72, 67, 93, 53, 76, 65, 61, 53, 68, 81, 73, 71, 72, 89, 80, 68, 57, 61, 48, 58, 83, 87, 65, 81, 58, 63, 66, 49, 52, 77, 73, 57, 65, 79, 60, 67, 59, 58, 60, 71, 92, 54, 51, 53, 76, 55, 77, 47, 76, 73, 65, 71, 63, 72, 80, 54, 44, 67, 49, 54, 64, 72, 71, 65, 57, 54, 66, 57, 64, 68, 77, 58, 79, 50, 72, 58, 96, 58, 63, 77, 75, 80, 115, 53, 56, 71, 60, 83, 49, 69, 65, 72, 50, 76, 34, 71, 52, 60, 60, 60, 63, 53, 130, 54, 72, 64, 82, 55, 73, 78, 74, 49, 49, 64, 68, 71, 47, 70, 47, 51, 58, 81, 63, 61, 49, 70, 65, 77, 67, 65, 82, 94, 66, 89, 61, 72, 57, 41, 63, 56, 67, 71, 73, 77, 64, 61, 72, 70, 79, 56, 68, 79, 58, 63, 68, 62, 69, 58, 58, 71, 79, 55, 55, 50, 69, 71, 46, 76, 73, 89, 66, 52, 59, 72, 82, 43, 95, 59, 63, 67, 66, 63, 55, 70, 83, 106, 61, 78, 56, 59, 73, 66, 66, 64, 55, 50, 89, 34, 58, 63, 60, 47, 65, 54, 57, 53, 80, 65, 57, 51, 79, 69, 66, 74, 74, 54, 87, 62, 81, 51, 64, 63, 67, 68, 91, 90, 75, 63, 72, 64, 63, 76, 65, 95, 63, 63, 62, 71, 66, 94, 50, 59, 61, 57, 91, 97, 61, 57, 68, 59, 84, 59, 61, 73, 87, 48, 48, 54, 59, 63, 92, 66, 67, 63, 53, 70, 55, 49, 63, 48, 48, 56, 67, 99, 88, 84, 57, 59, 92, 76, 77, 42, 44, 60, 62, 74, 82, 56, 58, 67, 66, 59, 75, 77, 75, 102, 69, 68, 47, 41, 35, 76, 70, 71, 57, 64, 81, 106, 81, 58, 61, 73, 80, 62, 81, 76, 65, 55, 63, 68, 47, 73, 68, 55, 69, 64, 82, 88, 60, 64, 42, 74, 67, 73, 89, 61, 86, 60, 57, 77, 67, 66, 49, 62, 59, 58, 46, 66, 63, 53, 71, 64, 82, 43, 69, 66, 142, 59, 85, 48, 78, 56, 111, 62, 71, 51, 111, 84, 63, 63, 59, 66, 49, 67, 55, 71, 74, 64, 64, 77, 45, 73, 76, 66, 53, 58, 54, 57, 75, 99, 50, 53, 50, 50, 62, 50, 64, 51, 79, 61, 49, 69, 65, 62, 64, 102, 54, 56, 104, 101, 64, 47, 67, 86, 61, 73, 50, 65, 70, 73, 73, 59, 88, 68, 50, 87, 78, 62, 63, 69, 72, 78, 58, 69, 69, 65, 52, 75, 64, 55, 55, 69, 62, 80, 65, 81, 51, 68, 58, 65, 63, 82, 43, 117, 83, 39, 62, 68, 59, 55, 63, 56, 82, 73, 57, 71, 81, 77, 61, 72, 55, 103, 78, 55, 78, 56, 71, 68, 43, 40, 41, 67, 78, 57, 52, 85, 69, 64, 75, 63, 70, 51, 62, 68, 47, 76, 56, 66, 66, 57, 74, 60, 74, 84, 65, 82, 53, 59, 46, 77, 95, 55, 53, 65, 52, 52, 60, 82, 50, 82, 56, 61, 60, 65, 63, 70, 71, 65, 77, 56, 76, 70, 61, 70, 47, 50, 66, 57, 63, 57, 74, 67, 55, 65, 71, 84, 58, 52, 62, 103, 59, 71, 74, 60, 82, 96, 61, 63, 58, 70, 97, 66, 67, 68, 58, 65, 56, 57, 78, 69, 58, 61, 61, 61, 53, 86, 45, 73, 77, 57, 48, 75, 58, 57, 69, 53, 71, 81, 56, 58, 107, 48, 58, 61, 58, 77, 50, 61, 35, 74, 41, 60, 64, 45, 50, 44, 76, 53, 71, 46, 93, 59, 54, 64, 63, 90, 71, 64, 72, 81, 71, 53, 61, 60, 65, 70, 93, 60, 59, 80, 69, 59, 55, 61, 78, 52, 65, 72, 64, 55, 68, 53, 151, 60, 53, 62, 78, 70, 70, 76, 75, 57, 61, 63, 59, 67, 77, 61, 65, 51, 63, 69, 60, 59, 60, 61, 75, 66, 105, 52, 93, 70, 113, 59, 56, 56, 49, 63, 53, 72, 49, 62, 48, 63, 101, 87, 49, 73, 51, 99, 72, 57, 57, 56, 65, 64, 108, 64, 52, 45, 73, 46, 57, 59, 62, 44, 75, 76, 57, 46, 72, 61, 54, 81, 58, 72, 62, 57, 71, 75, 80, 76, 88, 68, 75, 73, 59, 70, 51, 59, 81, 74, 75, 68, 51, 54, 71, 60, 61, 64, 80, 39, 63, 86, 79, 102, 69, 60, 59, 75, 56, 85, 75, 84, 65, 42, 93, 59, 97, 56, 67, 64, 79, 80, 69, 65, 63, 64, 59, 65, 67, 61, 69, 85, 62, 66, 72, 66, 103, 62, 67, 41, 76, 91, 54, 66, 76, 64, 72, 53, 71, 84, 68, 65, 61, 66, 55, 69, 66, 71, 75, 56, 38, 48, 75, 63, 89, 47, 55, 62, 51, 60, 77, 62, 106, 69, 63, 77, 61, 61, 61, 64, 62, 59, 64, 69, 73, 52, 52, 73, 61, 53, 58, 71, 68, 99, 65, 68, 54, 81, 61, 75, 38, 77, 67, 67, 53, 46, 49, 43, 51, 74, 56, 35, 67, 58, 49, 70, 71, 45, 71, 65, 73, 69, 72, 72, 60, 70, 80, 66, 52, 66, 75, 52, 56, 71, 55, 85, 76, 75, 55, 63, 58, 64, 78, 57, 53, 67, 79, 64, 68, 73, 65, 65, 58, 66, 82, 58, 68, 78, 68, 65, 62, 66, 68, 50, 55, 68, 64, 38, 59, 58, 59, 53, 64, 70, 61, 56, 51, 66, 69, 59, 73, 87, 57, 48, 61, 66, 73, 65, 52, 66, 53, 72, 62, 88, 69, 63, 61, 69, 77, 66, 59, 55, 57, 68, 74, 68, 73, 53, 104, 60, 63, 59, 77, 48, 69, 76, 61, 75, 58, 59, 72, 70, 63, 57, 85, 70, 75, 64, 82, 62, 40, 70, 76, 71, 64, 91, 78, 70, 56, 72, 77, 61, 56, 50, 76, 60, 46, 59, 62, 66, 49, 77, 63, 66, 68, 86, 56, 54, 69, 66, 52, 68, 87, 68, 54, 75, 88, 56, 65, 70, 57, 78, 47, 53, 79, 97, 70, 75, 56, 64, 65, 97, 55, 67, 75, 49, 63, 61, 81, 56, 75, 78, 65, 60, 53, 89, 66, 73, 68, 66, 81, 67, 55, 47, 51, 91, 38, 66, 62, 63, 50, 67, 62, 60, 71, 59, 76, 78, 65, 54, 74, 58, 70, 68, 60, 63, 49, 63, 72, 60, 76, 60, 47, 77, 52, 67, 71, 49, 74, 78, 62, 65, 54, 83, 61, 60, 75, 66, 67, 89, 72, 42, 85, 60, 86, 53, 61, 53, 69, 56, 57, 50, 54, 53, 121, 75, 72, 54, 57, 56, 63, 73, 63, 62, 89, 67, 77, 52, 64, 41, 42, 63, 61, 87, 115, 51, 64, 62, 45, 60, 80, 71, 67, 67, 55, 72, 51, 57, 57, 74, 78, 69, 63, 66, 62, 68, 53, 91, 64, 73, 79, 60, 82, 68, 54, 89, 66, 67, 76, 34, 60, 61, 64, 68, 67, 49, 65, 71, 56, 66, 77, 67, 101, 59, 60, 46, 81, 78, 77, 59, 63, 59, 84, 65, 83, 75, 79, 54, 48, 56, 66, 76, 76, 72, 54, 45, 87, 28, 68, 64, 75, 56, 69, 63, 52, 61, 79, 106, 61, 101, 48, 70, 60, 72, 62, 68, 55, 55, 97, 71, 75, 66, 55, 57, 64, 55, 64, 68, 66, 57, 60, 86, 48, 61, 59, 82, 74, 42, 64, 54, 66, 58, 58, 69, 77, 65, 83, 101, 92, 72, 74, 70, 65, 59, 80, 70, 52, 53, 72, 70, 89, 86, 55, 67, 71, 63, 91, 85, 75, 66, 55, 60, 86, 67, 68, 68, 76, 62, 67, 58, 62, 55, 70, 71, 58, 65, 82, 48, 74, 60, 54, 68, 72, 68, 48, 76, 85, 62, 66, 53, 63, 73, 40, 55, 63, 64, 71, 60, 75, 64, 48, 56, 79, 64, 72, 78, 68, 105, 61, 76, 53, 58, 79, 59, 87, 59, 58, 70, 59, 79, 69, 61, 68, 67, 65, 65, 57, 61, 60, 63, 55, 76, 64, 38, 46, 68, 70, 74, 72, 100, 62, 70, 76, 65, 71, 33, 56, 68, 80, 50, 68, 67, 85, 72, 50, 59, 74, 53, 58, 65, 61, 67, 61, 60, 60, 64, 63, 61, 131, 50, 67, 43, 77, 50, 86, 57, 37, 60, 111, 72, 69, 52, 65, 68, 65, 73, 59, 64, 66, 60, 56, 51, 56, 75, 53, 71, 81, 66, 55, 66, 62, 81, 73, 65, 52, 68, 68, 54, 64, 55, 64, 55, 76, 58, 64, 74, 57, 56, 62, 58, 90, 82, 57, 66, 78, 52, 72, 52, 64, 66, 84, 79, 93, 82, 64, 83, 58, 67, 70, 58, 49, 70, 74, 61, 73, 65, 58, 69, 52, 82, 62, 62, 71, 62, 60, 75, 66, 66, 52, 49, 71, 45, 56, 67, 63, 107, 80, 47, 62, 84, 54, 46, 53, 47, 68, 50, 50, 57, 79, 79, 66, 66, 63, 104, 47, 70, 67, 80, 75, 60, 64, 64, 81, 66, 58, 40, 72, 67, 66, 59, 53, 63, 67, 82, 89, 53, 48, 57, 48, 65, 68, 70, 66, 75, 56, 75, 54, 62, 57, 67, 82, 52, 107, 62, 95, 71, 59, 62, 63, 63, 60, 86, 64, 58, 67, 45, 68, 76, 63, 73, 61, 64, 64, 59, 68, 62, 66, 53, 65, 80, 61, 60, 54, 61, 57, 86, 71, 70, 47, 45, 60, 93, 70, 64, 52, 66, 64, 110, 69, 76, 63, 49, 78, 67, 75, 75, 53, 63, 47, 72, 66, 86, 75, 46, 56, 61, 74, 68, 89, 65, 72, 58, 71, 78, 91, 76, 58, 61, 58, 55, 62, 62, 70, 67, 75, 52, 86, 47, 70, 61, 55, 67, 46, 55, 76, 49, 70, 55, 54, 60, 63, 77, 80, 49, 65, 89, 59, 56, 69, 71, 83, 88, 73, 52, 61, 74, 54, 60, 116, 82, 74, 66, 78, 58, 64, 69, 80, 59, 51, 64, 77, 69, 71, 84, 161, 54, 80, 55, 74, 58, 54, 61, 68, 75, 66, 85, 57, 52, 76, 81, 69, 57, 74, 58, 90, 66, 60, 68, 57, 58, 123, 75, 57, 51, 107, 66, 77, 76, 59, 61, 49, 68, 64, 73, 73, 53, 65, 83, 58, 89, 50, 59, 46, 81, 67, 83, 80, 65, 108, 65, 57, 68, 72, 49, 81, 74, 67, 41, 81, 77, 63, 74, 65, 75, 49, 68, 67, 96, 44, 56, 59, 58, 58, 79, 80, 66, 85, 57, 62, 64, 68, 71, 83, 60, 88, 74, 53, 54, 55, 56, 85, 50, 73, 66, 79, 66, 64, 84, 52, 69, 67, 55, 54, 60, 70, 83, 68, 68, 92, 84, 77, 51, 74, 83, 53, 55, 71, 59, 61, 62, 60, 49, 59, 60, 73, 83, 68, 61, 71, 50, 100, 71, 77, 59, 82, 83, 43, 77, 56, 73, 73, 62, 55, 68, 68, 59, 60, 53, 57, 65, 66, 63, 77, 76, 54, 57, 72, 62, 79, 48, 59, 68, 61, 56, 62, 46, 88, 84, 67, 68, 65, 68, 41, 72, 52, 58, 82, 65, 50, 70, 74, 72, 82, 55, 64, 60, 69, 60, 51, 48, 57, 86, 64, 47, 66, 68, 75, 45, 54, 79, 68, 50, 69, 57, 61, 67, 55, 60, 77, 55, 59, 60, 73, 60, 60, 57, 52, 89, 75, 67, 56, 63, 69, 75, 75, 59, 66, 72, 62, 62, 64, 53, 67, 48, 73, 56, 64, 51, 62, 60, 86, 50, 88, 62, 71, 53, 55, 73, 51, 71, 66, 66, 72, 61, 102, 76, 51, 54, 56, 82, 67, 55, 61, 55, 65, 71, 73, 59, 65, 61, 82, 69, 60, 85, 61, 95, 58, 56, 57, 103, 69, 54, 77, 62, 65, 51, 68, 71, 68, 74, 75, 66, 69, 67, 53, 63, 68, 63, 77, 59, 55, 52, 76, 49, 59, 66, 68, 64, 70, 68, 58, 51, 66, 61, 59, 60, 68, 61, 89, 84, 73, 67, 73, 65, 69, 64, 72, 82, 94, 66, 81, 98, 63, 66, 67, 80, 50, 70, 56, 68, 58, 58, 74, 56, 79, 64, 67, 65, 78, 54, 84, 66, 65, 67, 54, 59, 99, 78, 70, 59, 68, 73, 59, 78, 54, 52, 62, 70, 77, 61, 73, 59, 51, 61, 61, 75, 68, 64, 76, 78, 79, 50, 58, 73, 50, 103, 81, 69, 88, 100, 73, 59, 61, 64, 55, 62, 66, 64, 60, 54, 75, 70, 99, 67, 102, 67, 62, 66, 67, 59, 62, 56, 70, 57, 61, 67, 56, 60, 87, 103, 91, 60, 96, 69, 69, 59, 62, 88, 57, 56, 59, 68, 60, 60, 78, 66, 64, 110, 71, 58, 70, 90, 59, 55, 64, 52, 85, 52, 71, 52, 108, 68, 65, 59, 58, 61, 59, 67, 65, 56, 54, 50, 67, 61, 61, 62, 68, 79, 70, 64, 51, 79, 56, 73, 62, 61, 69, 62, 69, 56, 88, 62, 71, 84, 105, 71, 80, 58, 57, 66, 55, 54, 76, 70, 55, 59, 61, 86, 74, 95, 83, 57, 59, 90, 65, 99, 62, 57, 49, 91, 65, 56, 53, 98, 50, 61, 82, 65, 76, 57, 54, 70, 66, 48, 69, 78, 64, 66, 67, 59, 66, 49, 73, 94, 54, 77, 54, 60, 65, 62, 64, 72, 58, 65, 82, 58, 55, 60, 63, 51, 78, 51, 68, 62, 57, 63, 60, 54, 63, 77, 76, 57, 65, 55, 72, 66, 50, 64, 61, 55, 70, 60, 79, 72, 52, 77, 56, 46, 54, 86, 71, 54, 52, 68, 52, 67, 91, 54, 75, 53, 74, 65, 82, 70, 61, 72, 63, 59, 90, 54, 62, 97, 68, 50, 81, 60, 65, 64, 48, 68, 67, 65, 62, 74, 74, 65, 68, 100, 80, 70, 90, 82, 57, 70, 72, 81, 58, 70, 52, 97, 61, 82, 80, 52, 73, 73, 49, 77, 52, 59, 73, 80, 62, 47, 59, 121, 69, 65, 65, 97, 68, 76, 61, 74, 65, 81, 54, 76, 51, 80, 60, 52, 72, 61, 57, 53, 56, 59, 65, 65, 55, 54, 72, 67, 63, 53, 42, 69, 74, 61, 69, 78, 69, 59, 70, 62, 72, 62, 69, 68, 70, 66, 77, 64, 119, 68, 59, 63, 65, 75, 63, 70, 62, 74, 59, 68, 73, 69, 75, 69, 67, 55, 55, 61, 74, 60, 74, 75, 63, 73, 75, 71, 66, 61, 76, 55, 67, 51, 50, 55, 48, 83, 62, 56, 70, 70, 71, 72, 81, 69, 61, 72, 73, 65, 89, 53, 83, 63, 73, 56, 68, 64, 90, 55, 84, 66, 46, 61, 55, 88, 58, 54, 79, 58, 92, 49, 79, 63, 60, 64, 77, 67, 64, 67, 56, 63, 42, 59, 70, 55, 70, 64, 62, 54, 61, 64, 53, 55, 70, 62, 58, 71, 62, 67, 71, 88, 67, 62, 81, 76, 63, 66, 62, 61, 68, 69, 47, 84, 71, 65, 78, 67, 57, 91, 55, 56, 52, 58, 54, 60, 69, 73, 62, 56, 79, 72, 54, 59, 61, 101, 54, 73, 52, 57, 82, 59, 62, 81, 54, 64, 72, 77, 80, 67, 53, 57, 68, 54, 57, 71, 51, 63, 56, 82, 79, 61, 53, 59, 72, 125, 71, 63, 73, 57, 70, 71, 67, 48, 58, 68, 54, 69, 66, 77, 78, 65, 58, 74, 60, 55, 57, 74, 82, 73, 59, 63, 90, 100, 49, 67, 67, 71, 65, 66, 64, 53, 70, 75, 80, 58, 66, 66, 66, 53, 47, 66, 56, 83, 66, 111, 61, 79, 53, 67, 71, 55, 54, 62, 65, 90, 53, 74, 65, 51, 56, 80, 57, 50, 60, 56, 61, 85, 80, 74, 74, 73, 56, 57, 82, 77, 64, 64, 72, 79, 49, 87, 77, 68, 61, 77, 63, 68, 59, 83, 69, 73, 53, 64, 61, 112, 81, 62, 60, 69, 59, 57, 79, 57, 53, 75, 63, 49, 50, 75, 82, 72, 47, 50, 62, 61, 60, 65, 67, 66, 67, 64, 87, 56, 56, 111, 48, 72, 44, 72, 74, 62, 83, 102, 56, 62, 84, 48, 76, 70, 71, 78, 76, 84, 60, 70, 71, 65, 72, 72, 69, 55, 54, 60, 76, 58, 71, 60, 68, 81, 66, 71, 68, 54, 88, 55, 65, 64, 58, 61, 67, 65, 45, 70, 70, 69, 69, 89, 60, 61, 83, 62, 65, 61, 67, 65, 61, 69, 70, 58, 62, 60, 57, 69, 67, 40, 67, 75, 54, 54, 63, 70, 81, 70, 67, 65, 69, 50, 104, 54, 75, 61, 67, 61, 50, 63, 53, 74, 58, 61, 61, 63, 51, 61, 73, 59, 63, 61, 68, 62, 63, 69, 67, 87, 54, 70, 70, 61, 61, 87, 44, 63, 59, 74, 64, 56, 69, 52, 61, 63, 62, 53, 75, 60, 55, 66, 65, 77, 72, 59, 73, 64, 41, 80, 62, 74, 60, 60, 59, 89, 90, 73, 77, 67, 56, 66, 55, 65, 68, 73, 73, 55, 77, 60, 58, 56, 60, 74, 58, 48, 107, 59, 79, 74, 82, 63, 56, 61, 47, 56, 57, 54, 62, 70, 68, 50, 72, 61, 69, 77, 73, 100, 59, 61, 79, 66, 76, 53, 85, 70, 72, 53, 87, 53, 77, 62, 61, 54, 58, 59, 52, 63, 72, 64, 56, 76, 58, 54, 70, 67, 55, 60, 54, 54, 64, 61, 57, 56, 73, 71, 56, 79, 59, 61, 59, 63, 53, 63, 68, 66, 66, 73, 58, 62, 81, 50, 64, 63, 75, 61, 66, 64, 58, 60, 94, 68, 57, 52, 55, 58, 119, 58, 59, 66, 76, 61, 68, 63, 77, 57, 58, 58, 71, 67, 55, 114, 73, 65, 66, 67, 81, 62, 63, 61, 60, 62, 58, 68, 70, 68, 60, 53, 69, 63, 75, 88, 70, 71, 69, 58, 79, 101, 54, 73, 56, 83, 68, 57, 69, 64, 63, 86, 57, 52, 50, 60, 65, 58, 67, 84, 61, 59, 70, 60, 69, 64, 55, 74, 54, 62, 74, 62, 59, 52, 67, 64, 70, 54, 55, 79, 57, 67, 60, 64, 67, 62, 102, 61, 66, 66, 60, 61, 67, 59, 54, 78, 62, 56, 68, 60, 77, 67, 47, 59, 65, 60, 69, 67, 49, 69, 48, 76, 65, 65, 71, 75, 85, 79, 60, 45, 76, 57, 78, 57, 67, 54, 54, 83, 75, 61, 57, 66, 63, 97, 59, 57, 71, 93, 71, 63, 41, 70, 55, 56, 82, 83, 91, 61, 54, 54, 95, 85, 65, 64, 73, 41, 80, 66, 46, 96, 62, 59, 63, 53, 63, 50, 50, 49, 70, 61, 63, 96, 77, 55, 73, 63, 69, 72, 58, 62, 71, 57, 72, 60, 58, 86, 66, 52, 78, 62, 76, 84, 96, 76, 61, 74, 59, 59, 60, 78, 56, 64, 54, 84, 54, 94, 72, 66, 72, 55, 56, 67, 57, 57, 70, 61, 62, 64, 72, 63, 57, 62, 61, 68, 61, 62, 64, 77, 61, 80, 100, 59, 63, 61, 74, 64, 65, 78, 103, 73, 58, 74, 64, 63, 60, 65, 75, 69, 62, 75, 61, 59, 70, 62, 68, 83, 57, 69, 60, 76, 59, 63, 57, 75, 47, 71, 53, 54, 61, 51, 67, 63, 60, 62, 71, 60, 72, 64, 73, 63, 58, 57, 68, 65, 61, 56, 64, 64, 60, 62, 52, 73, 76, 64, 57, 101, 79, 61, 80, 72, 68, 63, 74, 67, 72, 72, 61, 66, 70, 59, 53, 73, 52, 68, 61, 76, 56, 70, 46, 65, 58, 73, 58, 75, 73, 110, 64, 59, 63, 73, 75, 93, 65, 55, 56, 81, 76, 56, 63, 65, 62, 58, 68, 63, 68, 67, 86, 92, 57, 84, 55, 63, 73, 52, 72, 46, 71, 70, 68, 74, 61, 45, 59, 65, 64, 113, 42, 63, 62, 61, 68, 68, 49, 59, 60, 63, 76, 66, 59, 94, 67, 66, 63, 70, 55, 59, 59, 59, 85, 62, 109, 59, 59, 58, 68, 55, 84, 58, 72, 72, 47, 64, 51, 70, 86, 58, 60, 68, 76, 50, 54, 69, 60, 70, 69, 52, 68, 59, 65, 52, 76, 65, 64, 76, 66, 65, 67, 90, 77, 65, 61, 69, 64, 77, 71, 62, 60, 84, 64, 61, 49, 66, 61, 63, 64, 70, 61, 69, 67, 49, 73, 59, 59, 67, 83, 57, 76, 59, 59, 67, 75, 63, 66, 56, 47, 55, 55, 68, 67, 139, 45, 53, 90, 60, 55, 66, 59, 82, 73, 80, 68, 52, 67, 70, 81, 54, 51, 64, 71, 65, 65, 54, 49, 73, 65, 72, 57, 56, 60, 73, 55, 68, 71, 63, 84, 65, 60, 62, 76, 59, 52, 70, 54, 65, 50, 64, 92, 69, 61, 83, 59, 69, 129, 68, 95, 57, 75, 60, 65, 80, 59, 56, 74, 62, 69, 93, 71, 58, 56, 70, 64, 56, 60, 67, 82, 55, 61, 61, 69, 82, 57, 51, 58, 49, 59, 76, 48, 75, 65, 98, 62, 63, 60, 60, 67, 60, 60, 74, 74, 58, 58, 74, 55, 69, 70, 81, 62, 66, 59, 65, 56, 78, 61, 70, 66, 72, 54, 57, 59, 47, 80, 71, 74, 71, 62, 64, 70, 58, 68, 70, 61, 63, 62, 86, 65, 57, 101, 74, 59, 64, 80, 86, 67, 55, 63, 67, 54, 64, 72, 65, 65, 68, 66, 49, 64, 73, 77, 98, 78, 77, 60, 75, 51, 55, 48, 51, 56, 70, 77, 61, 68, 56, 58, 93, 68, 60, 74, 77, 65, 63, 60, 75, 82, 81, 65, 67, 65, 67, 65, 49, 50, 68, 68, 60, 69, 59, 87, 66, 59, 59, 78, 69, 54, 66, 56, 63, 71, 88, 62, 91, 61, 54, 76, 80, 75, 60, 73, 77, 61, 82, 67, 65, 106, 82, 64, 66, 63, 62, 63, 59, 63, 56, 92, 56, 63, 74, 95, 80, 60, 77, 60, 53, 54, 90, 61, 67, 66, 72, 67, 82, 71, 59, 71, 60, 65, 62, 54, 60, 68, 60, 67, 64, 69, 65, 62, 62, 80, 84, 70, 53, 94, 63, 60, 57, 83, 56, 68, 56, 67, 56, 53, 58, 55, 82, 55, 63, 91, 71, 67, 75, 53, 62, 72, 65, 69, 61, 65, 67, 53, 55, 60, 66, 75, 49, 52, 63, 77, 54, 61, 54, 59, 67, 53, 69, 53, 56, 53, 84, 81, 74, 47, 75, 71, 66, 59, 53, 63, 65, 54, 72, 60, 70, 63, 66, 67, 76, 62, 69, 61, 50, 65, 65, 54, 58, 53, 101, 54, 55, 65, 73, 71, 58, 55, 66, 59, 72, 85, 67, 93, 64, 72, 74, 64, 63, 72, 67, 56, 48, 68, 55, 60, 56, 49, 61, 59, 64, 65, 73, 70, 92, 66, 66, 63, 73, 88, 62, 52, 59, 63, 61, 73, 66, 65, 63, 72, 56, 52, 62, 62, 51, 55, 60, 64, 48, 114, 53, 53, 99, 63, 58, 82, 61, 59, 69, 62, 66, 49, 61, 50, 64, 63, 54, 87, 105, 61, 58, 67, 62, 58, 62, 78, 64, 62, 66, 60, 53, 70, 49, 64, 54, 67, 66, 75, 61, 67, 53, 77, 52, 59, 65, 64, 54, 61, 68, 70, 75, 61, 77, 83, 52, 75, 61, 54, 48, 63, 93, 56, 67, 58, 74, 62, 62, 74, 69, 68, 57, 51, 45, 63, 62, 54, 62, 60, 62, 67, 63, 75, 71, 71, 75, 59, 67, 55, 58, 57, 59, 65, 67, 72, 71, 69, 59, 67, 43, 52, 60, 89, 59, 69, 58, 62, 55, 92, 66, 56, 61, 63, 57, 48, 69, 59, 67, 55, 63, 66, 105, 72, 86, 62, 69, 70, 78, 57, 74, 65, 72, 68, 74, 71, 61, 64, 65, 82, 71, 83, 75, 80, 56, 60, 57, 73, 70, 77, 61, 61, 64, 78, 79, 74, 59, 59, 57, 50, 74, 66, 63, 80, 72, 45, 90, 58, 60, 75, 58, 71, 63, 61, 68, 69, 75, 86, 50, 78, 70, 68, 81, 61, 55, 56, 62, 119, 67, 79, 62, 50, 73, 52, 63, 63, 80, 82, 73, 55, 59, 83, 80, 73, 59, 73, 76, 56, 68, 66, 47, 62, 60, 71, 63, 60, 48, 59, 68, 59, 77, 60, 62, 51, 61, 90, 75, 86, 62, 49, 64, 50, 60, 66, 63, 65, 65, 61, 60, 66, 63, 66, 75, 58, 77, 130, 66, 49, 59, 53, 87, 63, 50, 64, 55, 71, 82, 52, 118, 59, 37, 92, 69, 83, 99, 62, 57, 104, 59, 72, 75, 80, 51, 63, 62, 53, 64, 55, 51, 60, 87, 53, 71, 82, 59, 65, 49, 56, 58, 53, 75, 59, 74, 74, 65, 61, 94, 41, 50, 76, 51, 68, 67, 51, 107, 69, 67, 70, 75, 40, 51, 53, 73, 51, 46, 65, 68, 94, 57, 53, 62, 76, 67, 58, 46, 67, 71, 102, 68, 69, 54, 59, 64, 84, 50, 76, 49, 75, 62, 136, 70, 84, 66, 47, 56, 97, 57, 53, 48, 67, 77, 74, 68, 65, 56, 56, 65, 82, 76, 75, 74, 70, 54, 46, 95, 52, 61, 67, 59, 68, 64, 85, 58, 76, 61, 57, 77, 63, 59, 60, 66, 88, 58, 48, 72, 56, 58, 55, 58, 74, 60, 76, 61, 77, 80, 60, 63, 64, 57, 87, 79, 55, 69, 80, 60, 78, 62, 63, 60, 65, 66, 73, 50, 81, 54, 58, 69, 72, 65, 79, 67, 57, 89, 54, 61, 71, 123, 65, 54, 62, 79, 37, 96, 78, 70, 51, 60, 70, 60, 67, 65, 80, 68, 64, 71, 46, 65, 73, 74, 55, 76, 62, 77, 68, 85, 62, 69, 75, 57, 42, 64, 66, 55, 67, 44, 56, 69, 71, 46, 63, 67, 53, 69, 54, 75, 61, 71, 60, 69, 47, 62, 48, 53, 79, 74, 77, 65, 52, 62, 68, 84, 74, 44, 53, 62, 78, 73, 66, 58, 75, 67, 59, 59, 76, 71, 88, 96, 54, 70, 94, 61, 73, 83, 50, 67, 56, 56, 87, 60, 52, 53, 97, 88, 54, 96, 67, 52, 52, 45, 60, 61, 69, 120, 88, 68, 71, 55, 60, 67, 81, 69, 120, 65, 66, 62, 66, 65, 56, 70, 62, 58, 76, 86, 61, 61, 52, 82, 79, 74, 89, 62, 58, 62, 84, 56, 65, 70, 64, 58, 56, 66, 67, 76, 55, 53, 50, 39, 45, 82, 55, 73, 82, 45, 55, 48, 66, 53, 42, 34, 92, 48, 76, 64, 86, 58, 51, 61, 87, 53, 59, 51, 70, 89, 73, 61, 74, 62, 61, 68, 84, 52, 69, 67, 61, 80, 66, 68, 73, 61, 57, 51, 64, 50, 66, 67, 63, 71, 36, 63, 60, 75, 70, 61, 64, 90, 45, 77, 43, 62, 73, 61, 59, 66, 60, 53, 62, 95, 75, 62, 49, 66, 82, 72, 80, 72, 58, 61, 59, 49, 65, 85, 71, 58, 74, 77, 44, 89, 63, 58, 55, 60, 85, 57, 113, 47, 64, 74, 79, 71, 61, 58, 69, 69, 58, 58, 75, 80, 61, 55, 59, 93, 46, 57, 76, 60, 71, 58, 60, 94, 55, 49, 70, 81, 43, 65, 107, 45, 70, 64, 66, 51, 48, 60, 64, 57, 54, 56, 76, 67, 80, 66, 56, 60, 69, 79, 60, 64, 62, 66, 65, 58, 64, 68, 50, 91, 38, 57, 62, 51, 61, 54, 51, 82, 78, 55, 65, 51, 56, 73, 96, 51, 63, 48, 67, 117, 68, 73, 61, 77, 68, 96, 67, 70, 80, 69, 45, 73, 77, 53, 75, 49, 109, 61, 71, 68, 62, 85, 72, 63, 67, 68, 64, 42, 82, 55, 63, 59, 50, 72, 55, 75, 54, 73, 75, 58, 69, 44, 54, 71, 79, 57, 86, 40, 81, 89, 59, 66, 70, 47, 69, 57, 72, 57, 57, 56, 76, 54, 45, 67, 86, 55, 67, 71, 82, 88, 93, 66, 58, 70, 59, 57, 74, 54, 47, 63, 75, 76, 65, 70, 80, 93, 82, 58, 69, 61, 56, 53, 92, 70, 95, 61, 78, 96, 71, 74, 46, 66, 46, 48, 61, 46, 88, 48, 65, 59, 67, 90, 53, 77, 59, 70, 85, 65, 65, 47, 75, 71, 74, 86, 59, 59, 47, 71, 58, 47, 62, 63, 62, 72, 85, 115, 80, 61, 70, 67, 72, 58, 64, 78, 45, 67, 51, 76, 56, 46, 74, 82, 46, 59, 53, 59, 71, 61, 51, 65, 62, 52, 56, 90, 72, 64, 63, 54, 53, 93, 85, 65, 68, 78, 67, 62, 67, 74, 58, 49, 52, 53, 77, 82, 51, 48, 80, 50, 50, 108, 60, 67, 66, 71, 69, 64, 84, 56, 61, 78, 45, 78, 90, 56, 52, 80, 79, 55, 42, 60, 56, 68, 69, 59, 65, 68, 73, 69, 72, 47, 105, 72, 78, 60, 73, 66, 63, 35, 70, 70, 68, 54, 85, 86, 80, 53, 60, 82, 68, 105, 65, 67, 66, 121, 77, 57, 58, 63, 59, 65, 60, 59, 55, 86, 66, 59, 63, 123, 67, 50, 73, 67, 75, 63, 71, 45, 62, 68, 51, 47, 102, 67, 68, 45, 78, 67, 90, 80, 64, 49, 69, 71, 81, 74, 60, 67, 77, 88, 57, 68, 74, 66, 75, 61, 73, 51, 30, 55, 54, 56, 66, 73, 69, 65, 57, 66, 63, 47, 109, 59, 70, 58, 65, 70, 69, 56, 75, 57, 49, 44, 58, 57, 68, 56, 57, 57, 83, 66, 69, 60, 107, 80, 72, 85, 99, 48, 62, 58, 61, 52, 56, 61, 65, 62, 66, 53, 44, 60, 71, 72, 60, 92, 42, 56, 58, 65, 66, 65, 92, 84, 64, 68, 67, 55, 59, 51, 79, 57, 62, 55, 63, 57, 64, 53, 53, 63, 67, 63, 60, 58, 65, 65, 46, 54, 55, 60, 58, 87, 55, 47, 70, 72, 62, 60, 92, 67, 63, 69, 52, 51, 66, 58, 44, 51, 71, 52, 71, 73, 75, 62, 49, 58, 86, 82, 51, 67, 58, 66, 63, 61, 88, 47, 72, 89, 61, 62, 72, 58, 60, 49, 64, 66, 72, 82, 60, 60, 53, 69, 63, 81, 57, 39, 116, 64, 63, 69, 63, 59, 86, 66, 69, 53, 62, 70, 53, 88, 58, 68, 53, 67, 54, 71, 77, 69, 65, 70, 64, 73, 64, 68, 61, 72, 61, 58, 81, 79, 62, 70, 55, 93, 73, 65, 94, 54, 55, 59, 68, 71, 69, 75, 63, 73, 49, 52, 67, 71, 63, 61, 31, 61, 72, 71, 84, 62, 59, 69, 97, 56, 97, 60, 61, 61, 67, 63, 65, 76, 56, 83, 52, 77, 74, 52, 64, 65, 64, 49, 65, 122, 94, 54, 56, 56, 87, 63, 57, 68, 95, 84, 64, 77, 67, 54, 70, 45, 81, 57, 49, 79, 78, 76, 84, 61, 88, 65, 58, 56, 77, 57, 57, 63, 54, 57, 53, 47, 83, 53, 81, 62, 53, 54, 80, 94, 52, 61, 57, 29, 72, 74, 45, 90, 61, 69, 53, 67, 55, 61, 73, 53, 70, 44, 90, 74, 74, 50, 73, 58, 65, 74, 54, 44, 59, 57, 85, 75, 66, 86, 58, 63, 50, 55, 57, 68, 62, 54, 49, 63, 64, 75, 64, 115, 66, 62, 37, 61, 65, 94, 64, 87, 78, 89, 80, 63, 69, 63, 59, 70, 64, 84, 55, 55, 58, 49, 76, 61, 49, 64, 82, 75, 52, 55, 93, 69, 42, 66, 86, 61, 49, 63, 44, 77, 52, 72, 54, 83, 64, 67, 59, 64, 60, 76, 52, 51, 97, 99, 67, 83, 59, 72, 77, 73, 56, 66, 56, 61, 63, 65, 58, 95, 74, 68, 46, 106, 67, 63, 63, 59, 71, 54, 66, 89, 72, 61, 59, 59, 64, 65, 48, 48, 65, 118, 51, 47, 43, 85, 70, 67, 74, 58, 61, 43, 77, 49, 46, 74, 53, 69, 66, 62, 62, 55, 39, 70, 61, 80, 51, 107, 67, 52, 67, 67, 60, 63, 69, 54, 84, 57, 61, 77, 60, 58, 83, 50, 58, 64, 64, 68, 79, 61, 64, 72, 88, 50, 79, 50, 72, 74, 57, 84, 60, 73, 62, 72, 68, 60, 58, 76, 76, 75, 61, 108, 62, 57, 81, 63, 42, 62, 68, 73, 55, 73, 72, 73, 53, 70, 73, 47, 67, 70, 72, 62, 77, 92, 66, 118, 65, 86, 53, 69, 72, 66, 83, 63, 54, 49, 73, 65, 34, 87, 55, 72, 66, 35, 69, 61, 65, 57, 81, 60, 66, 80, 52, 109, 80, 56, 47, 66, 49, 103, 84, 56, 67, 42, 60, 52, 63, 65, 55, 74, 71, 57, 65, 69, 57, 67, 71, 47, 52, 81, 67, 52, 74, 59, 49, 52, 57, 60, 60, 66, 60, 66, 65, 74, 61, 66, 59, 60, 68, 61, 52, 60, 44, 60, 71, 86, 79, 59, 56, 92, 66, 88, 90, 76, 78, 74, 59, 67, 56, 67, 63, 86, 72, 68, 66, 57, 57, 59, 63, 54, 61, 57, 64, 59, 55, 63, 56, 83, 58, 83, 59, 75, 59, 60, 107, 63, 83, 69, 55, 63, 63, 65, 68, 49, 47, 58, 63, 41, 78, 62, 66, 53, 58, 70, 105, 81, 71, 41, 80, 65, 69, 63, 44, 64, 49, 66, 66, 28, 50, 51, 68, 62, 87, 61, 61, 67, 148, 45, 65, 60, 57, 55, 47, 59, 89, 62, 46, 66, 74, 59, 65, 82, 90, 40, 64, 59, 53, 51, 85, 68, 69, 76, 69, 76, 61, 55, 67, 80, 47, 58, 62, 95, 75, 64, 49, 74, 65, 68, 52, 62, 60, 76, 63, 76, 51, 89, 50, 64, 42, 49, 52, 59, 87, 93, 69, 87, 61, 60, 64, 49, 56, 45, 68, 54, 72, 63, 61, 64, 60, 76, 77, 76, 53, 68, 76, 54, 49, 66, 58, 104, 74, 53, 57, 63, 53, 56, 64, 58, 107, 71, 59, 65, 66, 70, 69, 97, 60, 62, 74, 56, 63, 60, 57, 66, 72, 60, 71, 57, 70, 73, 88, 70, 79, 84, 93, 74, 63, 67, 52, 69, 50, 64, 55, 84, 82, 65, 50, 53, 79, 58, 60, 53, 65, 78, 60, 55, 83, 58, 104, 59, 67, 100, 82, 68, 79, 77, 78, 67, 47, 58, 76, 86, 60, 73, 66, 66, 75, 90, 89, 108, 55, 64, 64, 46, 79, 65, 83, 94, 71, 69, 59, 68, 68, 66, 57, 54, 88, 52, 56, 65, 78, 54, 82, 89, 66, 43, 50, 66, 72, 103, 54, 79, 79, 65, 67, 60, 73, 73, 71, 57, 60, 54, 51, 66, 65, 73, 78, 52, 41, 70, 66, 54, 72, 52, 48, 86, 70, 67, 73, 77, 62, 101, 59, 67, 53, 59, 41, 99, 63, 56, 66, 77, 90, 79, 58, 59, 71, 47, 82, 63, 50, 56, 76, 76, 66, 67, 83, 67, 76, 68, 81, 76, 65, 61, 56, 62, 52, 74, 89, 76, 80, 41, 62, 55, 61, 56, 56, 111, 61, 69, 70, 76, 58, 68, 73, 49, 101, 45, 67, 59, 63, 54, 63, 76, 78, 70, 63, 50, 86, 94, 49, 71, 59, 45, 80, 61, 54, 48, 50, 67, 61, 68, 65, 28, 89, 86, 67, 63, 86, 62, 74, 68, 65, 69, 70, 47, 63, 58, 60, 75, 62, 74, 59, 45, 54, 57, 73, 66, 54, 74, 62, 45, 56, 78, 63, 59, 59, 45, 50, 74, 64, 66, 59, 58, 48, 77, 80, 80, 74, 74, 68, 86, 75, 85, 70, 80, 67, 58, 89, 58, 66, 77, 70, 60, 45, 74, 90, 71, 81, 77, 58, 80, 56, 64, 65, 69, 90, 91, 67, 68, 72, 70, 60, 52, 61, 69, 100, 51, 80, 62, 61, 65, 61, 53, 79, 60, 51, 63, 52, 52, 36, 55, 70, 83, 57, 67, 63, 55, 99, 76, 71, 65, 59, 65, 49, 62, 66, 70, 81, 62, 90, 59, 85, 110, 65, 64, 76, 80, 68, 72, 59, 77, 74, 65, 107, 73, 84, 71, 70, 41, 63, 62, 86, 59, 63, 73, 56, 61, 57, 90, 66, 62, 60, 62, 57, 51, 63, 58, 63, 57, 73, 44, 129, 71, 62, 56, 60, 53, 48, 83, 79, 82, 75, 59, 59, 64, 63, 51, 74, 61, 52, 64, 77, 60, 56, 51, 50, 66, 60, 54, 59, 39, 57, 64, 67, 54, 36, 75, 86, 60, 69, 72, 73, 56, 72, 68, 59, 72, 67, 63, 74, 66, 62, 71, 82, 59, 82, 77, 84, 65, 57, 78, 31, 57, 67, 64, 58, 62, 56, 80, 65, 51, 65, 68, 50, 75, 65, 66, 67, 65, 60, 63, 63, 112, 57, 69, 96, 65, 35, 74, 50, 51, 58, 60, 55, 70, 85, 66, 67, 62, 64, 61, 61, 60, 60, 57, 55, 64, 50, 60, 73, 64, 76, 53, 66, 63, 59, 65, 74, 59, 52, 62, 57, 34, 69, 61, 59, 55, 76, 65, 60, 81, 71, 59, 59, 58, 84, 64, 71, 37, 63, 95, 72, 60, 87, 85, 72, 71, 70, 90, 60, 65, 48, 75, 57, 58, 55, 60, 86, 63, 61, 54, 52, 71, 92, 70, 65, 69, 55, 59, 67, 51, 64, 71, 89, 66, 58, 72, 51, 61, 93, 51, 61, 94, 78, 51, 57, 65, 65, 56, 55, 61, 71, 48, 50, 61, 55, 78, 47, 66, 73, 76, 66, 60, 60, 88, 92, 66, 38, 59, 63, 56, 63, 75, 67, 72, 79, 57, 39, 43, 61, 122, 75, 51, 70, 48, 88, 58, 71, 69, 58, 67, 55, 58, 55, 58, 60, 62, 81, 85, 70, 72, 57, 84, 62, 46, 88, 72, 57, 58, 132, 57, 63, 62, 62, 74, 80, 53, 63, 76, 80, 69, 59, 70, 53, 63, 81, 60, 79, 78, 78, 51, 64, 80, 68, 62, 64, 67, 87, 74, 89, 97, 68, 55, 61, 84, 59, 67, 64, 66, 60, 60, 63, 62, 56, 74, 67, 59, 65, 62, 66, 99, 62, 72, 50, 65, 110, 70, 40, 68, 63, 60, 62, 90, 56, 68, 68, 62, 44, 64, 57, 61, 54, 53, 75, 77, 87, 84, 93, 62, 62, 94, 71, 57, 61, 77, 50, 57, 81, 71, 98, 46, 83, 55, 50, 69, 73, 110, 65, 54, 74, 72, 54, 55, 58, 80, 51, 55, 57, 66, 55, 78, 77, 87, 59, 65, 67, 61, 82, 56, 99, 69, 66, 63, 48, 111, 52, 52, 57, 96, 62, 88, 72, 61, 77, 73, 65, 67, 59, 59, 68, 50, 89, 76, 59, 71, 69, 58, 50, 46, 56, 55, 59, 63, 57, 86, 60, 60, 65, 86, 76, 49, 87, 53, 57, 63, 50, 46, 59, 55, 61, 67, 73, 55, 55, 75, 66, 106, 49, 55, 60, 88, 66, 64, 73, 61, 66, 75, 82, 80, 61, 53, 65, 73, 109, 51, 62, 55, 56, 50, 72, 61, 65, 65, 48, 76, 55, 58, 55, 61, 63, 63, 52, 66, 72, 64, 60, 75, 74, 85, 50, 56, 70, 78, 53, 61, 58, 62, 100, 80, 81, 69, 66, 67, 63, 43, 87, 57, 54, 70, 81, 55, 81, 76, 62, 71, 64, 67, 69, 64, 85, 71, 54, 75, 86, 71, 72, 76, 116, 63, 65, 73, 83, 80, 77, 49, 61, 68, 65, 57, 73, 58, 67, 67, 82, 55, 57, 59, 73, 68, 63, 67, 58, 104, 67, 61, 52, 54, 108, 65, 72, 69, 100, 77, 57, 49, 69, 86, 73, 62, 66, 60, 57, 47, 64, 79, 69, 59, 62, 65, 73, 54, 58, 64, 64, 62, 70, 43, 70, 60, 58, 62, 53, 65, 63, 63, 93, 75, 59, 65, 114, 58, 53, 67, 53, 72, 58, 54, 60, 54, 48, 73, 66, 67, 66, 59, 81, 64, 58, 71, 56, 45, 69, 62, 96, 65, 46, 59, 66, 110, 68, 58, 68, 68, 50, 57, 59, 67, 61, 47, 63, 62, 57, 54, 51, 98, 69, 55, 62, 67, 78, 48, 51, 57, 66, 58, 46, 56, 61, 70, 62, 97, 84, 100, 65, 52, 65, 53, 56, 61, 75, 54, 100, 60, 57, 60, 64, 60, 67, 66, 59, 61, 71, 77, 78, 64, 66, 57, 64, 101, 82, 54, 87, 71, 60, 65, 73, 70, 65, 57, 64, 76, 78, 83, 56, 61, 75, 67, 61, 58, 47, 57, 63, 54, 52, 95, 63, 82, 47, 65, 70, 60, 84, 64, 52, 69, 63, 60, 71, 83, 48, 38, 72, 59, 57, 62, 64, 54, 53, 65, 45, 79, 77, 98, 84, 75, 70, 39, 71, 65, 58, 94, 68, 62, 53, 66, 89, 61, 67, 61, 57, 55, 47, 48, 68, 57, 55, 74, 70, 62, 47, 58, 67, 108, 65, 59, 92, 51, 65, 72, 60, 99, 92, 53, 63, 63, 73, 63, 61, 63, 94, 59, 75, 60, 68, 52, 72, 70, 50, 62, 67, 55, 68, 59, 54, 81, 80, 90, 68, 64, 73, 97, 57, 58, 65, 77, 55, 65, 62, 76, 50, 64, 106, 68, 82, 69, 89, 52, 59, 64, 78, 65, 56, 53, 119, 48, 62, 57, 62, 59, 56, 81, 53, 64, 56, 52, 68, 56, 49, 55, 54, 66, 70, 58, 56, 75, 51, 69, 60, 74, 74, 53, 98, 73, 74, 63, 50, 58, 68, 83, 58, 72, 93, 70, 68, 56, 44, 62, 43, 62, 88, 59, 71, 51, 60, 66, 75, 74, 52, 81, 61, 58, 83, 51, 55, 64, 62, 52, 58, 70, 53, 64, 62, 61, 56, 71, 86, 63, 55, 39, 73, 57, 56, 77, 67, 71, 86, 60, 63, 79, 42, 70, 53, 68, 62, 59, 49, 54, 59, 65, 66, 95, 83, 72, 61, 49, 103, 75, 68, 59, 65, 60, 65, 57, 44, 86, 73, 67, 45, 51, 61, 66, 59, 66, 59, 67, 75, 61, 56, 80, 68, 69, 58, 73, 74, 67, 81, 68, 55, 68, 64, 56, 71, 54, 91, 63, 68, 61, 65, 53, 78, 52, 37, 51, 82, 74, 53, 65, 61, 56, 56, 60, 78, 67, 95, 47, 55, 63, 66, 65, 48, 58, 57, 60, 87, 55, 123, 64, 57, 64, 54, 63, 113, 61, 57, 69, 73, 64, 28, 58, 69, 70, 93, 67, 60, 62, 52, 61, 63, 117, 74, 61, 71, 85, 67, 63, 65, 69, 68, 77, 63, 64, 71, 75, 69, 65, 73, 71, 68, 63, 67, 80, 63, 60, 75, 66, 76, 73, 76, 64, 71, 72, 68, 61, 83, 63, 58, 68, 51, 63, 56, 58, 60, 57, 59, 46, 58, 59, 79, 66, 107, 77, 58, 57, 84, 72, 48, 47, 79, 52, 63, 78, 50, 75, 67, 51, 61, 64, 75, 77, 82, 50, 82, 66, 52, 52, 80, 71, 51, 50, 60, 83, 69, 48, 45, 53, 53, 85, 63, 84, 67, 54, 39, 57, 61, 81, 66, 112, 77, 67, 98, 53, 67, 83, 71, 75, 78, 69, 42, 62, 94, 58, 63, 65, 61, 48, 84, 62, 54, 61, 49, 74, 66, 59, 67, 69, 66, 42, 65, 63, 55, 61, 63, 53, 66, 63, 48, 42, 86, 57, 70, 75, 76, 80, 55, 53, 62, 59, 50, 56, 76, 65, 80, 61, 70, 77, 80, 84, 85, 69, 54, 66, 69, 91, 54, 83, 68, 55, 52, 51, 75, 59, 87, 55, 55, 61, 65, 76, 97, 66, 45, 83, 62, 59, 56, 67, 78, 83, 75, 77, 66, 42, 53, 59, 66, 59, 71, 69, 79, 63, 58, 60, 51, 64, 61, 66, 62, 83, 69, 65, 68, 64, 69, 64, 65, 76, 73, 65, 58, 69, 79, 70, 78, 78, 44, 53, 59, 45, 68, 92, 120, 66, 72, 75, 48, 90, 67, 57, 58, 52, 54, 77, 65, 66, 67, 63, 54, 79, 64, 59, 61, 41, 80, 63, 71, 76, 65, 57, 75, 55, 85, 57, 71, 55, 96, 61, 59, 70, 60, 73, 82, 55, 74, 68, 48, 89, 77, 62, 65, 59, 82, 65, 57, 72, 57, 65, 57, 52, 70, 86, 69, 81, 52, 54, 88, 73, 70, 59, 68, 74, 73, 65, 58, 64, 69, 65, 71, 72, 67, 49, 54, 67, 42, 50, 74, 61, 65, 62, 58, 82, 87, 61, 79, 44, 73, 68, 58, 47, 50, 75, 63, 55, 47, 68, 54, 54, 46, 55, 81, 68, 54, 75, 58, 55, 61, 75, 73, 81, 86, 63, 56, 65, 53, 98, 108, 69, 67, 58, 51, 78, 80, 111, 59, 86, 66, 66, 53, 42, 69, 68, 66, 73, 52, 45, 62, 69, 62, 82, 77, 62, 68, 68, 70, 45, 61, 74, 46, 62, 62, 88, 71, 52, 55, 84, 73, 51, 65, 59, 58, 72, 70, 75, 47, 68, 61, 56, 57, 66, 60, 72, 61, 52, 58, 50, 66, 72, 55, 57, 87, 98, 53, 77, 80, 71, 71, 51, 126, 47, 63, 61, 63, 82, 58, 68, 71, 57, 73, 63, 47, 70, 86, 64, 81, 73, 47, 82, 60, 64, 61, 52, 57, 73, 78, 78, 55, 108, 64, 60, 72, 52, 69, 64, 67, 83, 58, 64, 68, 38, 67, 69, 46, 59, 52, 62, 72, 59, 61, 63, 75, 66, 82, 59, 80, 94, 74, 80, 64, 75, 100, 59, 48, 45, 45, 57, 52, 74, 58, 79, 55, 111, 61, 67, 89, 63, 93, 65, 58, 97, 64, 39, 80, 55, 71, 85, 96, 77, 54, 70, 67, 50, 54, 48, 71, 47, 65, 67, 83, 97, 64, 53, 53, 58, 62, 79, 60, 68, 68, 40, 88, 64, 74, 63, 80, 52, 66, 60, 50, 78, 82, 74, 76, 83, 109, 56, 44, 55, 100, 83, 66, 66, 70, 56, 62, 68, 76, 60, 59, 60, 67, 80, 52, 65, 62, 44, 52, 76, 56, 49, 70, 50, 64, 74, 63, 68, 74, 69, 65, 65, 61, 72, 83, 57, 45, 66, 112, 57, 74, 62, 60, 81, 60, 64, 50, 62, 59, 80, 72, 51, 89, 50, 51, 90, 60, 65, 59, 55, 67, 78, 49, 55, 53, 43, 62, 97, 66, 55, 60, 79, 56, 65, 53, 75, 59, 83, 63, 54, 62, 66, 67, 99, 99, 57, 69, 66, 72, 55, 73, 72, 70, 60, 63, 63, 66, 52, 47, 71, 84, 72, 63, 61, 54, 56, 81, 63, 70, 78, 80, 79, 59, 62, 44, 58, 51, 71, 57, 58, 58, 51, 74, 96, 87, 87, 51, 59, 64, 59, 59, 91, 83, 43, 58, 64, 61, 57, 74, 77, 100, 58, 52, 66, 67, 65, 50, 59, 54, 59, 53, 79, 56, 94, 56, 55, 74, 69, 65, 70, 59, 68, 65, 53, 50, 66, 94, 85, 60, 60, 60, 71, 54, 65, 58, 59, 63, 58, 38, 79, 92, 87, 53, 77, 47, 78, 65, 62, 60, 80, 73, 72, 67, 75, 81, 57, 68, 66, 62, 82, 66, 44, 56, 69, 67, 77, 76, 81, 48, 59, 69, 70, 65, 62, 63, 65, 70, 58, 56, 45, 71, 61, 62, 79, 75, 51, 69, 58, 95, 54, 88, 83, 83, 56, 55, 68, 70, 75, 55, 53, 62, 55, 55, 59, 97, 74, 84, 73, 85, 82, 81, 57, 61, 52, 68, 56, 65, 62, 53, 55, 115, 62, 81, 57, 79, 54, 100, 74, 68, 47, 57, 72, 70, 76, 93, 60, 80, 68, 42, 67, 57, 53, 68, 38, 83, 57, 68, 70, 39, 47, 60, 63, 66, 64, 60, 60, 69, 46, 64, 50, 69, 95, 96, 62, 71, 66, 58, 48, 67, 67, 77, 55, 66, 52, 72, 54, 60, 66, 85, 80, 76, 57, 55, 67, 76, 63, 68, 85, 68, 68, 93, 68, 79, 62, 95, 42, 72, 56, 73, 73, 85, 81, 73, 67, 83, 65, 67, 47, 54, 62, 55, 90, 49, 63, 68, 68, 66, 76, 66, 90, 62, 51, 73, 66, 61, 66, 71, 60, 62, 83, 94, 69, 61, 89, 55, 75, 72, 52, 82, 67, 32, 51, 71, 75, 55, 58, 87, 56, 76, 67, 66, 50, 66, 72, 86, 84, 62, 72, 55, 48, 55, 65, 46, 74, 60, 67, 70, 37, 90, 69, 79, 62, 74, 74, 72, 51, 61, 61, 55, 65, 52, 67, 47, 60, 53, 62, 60, 65, 64, 60, 75, 54, 54, 53, 58, 65, 94, 61, 64, 65, 71, 83, 50, 65, 98, 62, 67, 43, 60, 45, 82, 58, 60, 83, 71, 58, 95, 56, 111, 72, 73, 64, 52, 76, 51, 66, 35, 65, 70, 86, 71, 78, 67, 68, 59, 68, 50, 71, 51, 65, 66, 64, 63, 71, 90, 66, 75, 60, 76, 52, 49, 64, 56, 57, 63, 80, 56, 85, 70, 60, 50, 61, 49, 56, 52, 78, 73, 42, 57, 67, 65, 85, 70, 45, 68, 69, 68, 57, 73, 63, 86, 59, 59, 59, 50, 61, 69, 74, 69, 59, 65, 69, 65, 62, 64, 58, 66, 87, 56, 77, 83, 54, 59, 63, 57, 75, 50, 66, 64, 71, 59, 90, 69, 96, 50, 53, 58, 68, 79, 64, 59, 96, 56, 69, 62, 71, 70, 80, 69, 74, 63, 94, 77, 65, 58, 42, 103, 57, 62, 52, 54, 55, 66, 70, 70, 63, 78, 80, 70, 61, 74, 74, 76, 64, 85, 74, 48, 69, 51, 63, 74, 61, 87, 71, 61, 67, 67, 64, 64, 71, 80, 73, 59, 68, 81, 62, 73, 84, 67, 52, 66, 73, 49, 64, 82, 70, 97, 67, 69, 46, 50, 98, 70, 60, 71, 57, 63, 80, 67, 62, 73, 43, 64, 69, 56, 70, 88, 71, 53, 81, 60, 58, 62, 59, 56, 94, 68, 64, 59, 42, 54, 57, 67, 57, 74, 91, 87, 65, 67, 71, 74, 81, 67, 59, 64, 70, 62, 65, 78, 73, 46, 56, 73, 83, 59, 55, 63, 69, 53, 61, 49, 57, 58, 62, 78, 76, 71, 80, 83, 42, 69, 48, 50, 89, 101, 61, 47, 47, 57, 49, 62, 54, 58, 60, 53, 80, 46, 69, 59, 53, 85, 53, 62, 58, 70, 56, 58, 45, 98, 78, 74, 78, 37, 57, 70, 79, 55, 70, 82, 64, 61, 60, 69, 72, 81, 61, 53, 88, 70, 69, 64, 57, 64, 77, 65, 58, 59, 58, 56, 61, 70, 45, 82, 90, 61, 62, 64, 103, 70, 58, 61, 66, 31, 67, 70, 76, 45, 56, 77, 93, 50, 63, 55, 65, 78, 57, 70, 91, 48, 61, 36, 79, 74, 67, 63, 59, 82, 77, 61, 55, 57, 56, 58, 56, 72, 56, 64, 57, 67, 80, 72, 60, 61, 81, 95, 65, 55, 64, 71, 55, 57, 92, 80, 57, 70, 80, 50, 65, 60, 108, 87, 61, 66, 58, 56, 51, 64, 63, 81, 78, 60, 47, 58, 57, 67, 51, 73, 59, 54, 62, 68, 52, 54, 57, 74, 64, 77, 106, 59, 56, 99, 67, 77, 48, 57, 69, 54, 63, 69, 82, 96, 50, 56, 55, 75, 56, 90, 64, 69, 65, 60, 62, 76, 67, 72, 71, 64, 89, 53, 71, 55, 68, 55, 73, 39, 63, 64, 53, 97, 80, 63, 84, 70, 67, 48, 58, 63, 65, 82, 45, 50, 47, 61, 73, 52, 66, 75, 69, 63, 71, 57, 103, 62, 56, 66, 44, 66, 63, 70, 73, 63, 34, 61, 71, 63, 76, 71, 54, 63, 95, 65, 69, 56, 59, 66, 64, 56, 49, 64, 60, 80, 59, 60, 64, 61, 81, 74, 64, 65, 69, 63, 73, 98, 52, 45, 72, 66, 44, 50, 64, 90, 58, 59, 77, 75, 63, 71, 79, 67, 59, 59, 69, 64, 45, 78, 56, 71, 61, 91, 61, 61, 62, 57, 52, 69, 91, 56, 55, 47, 43, 54, 54, 63, 62, 62, 65, 73, 43, 60, 78, 70, 44, 70, 54, 51, 46, 73, 66, 78, 63, 122, 64, 49, 49, 47, 60, 65, 65, 68, 74, 94, 59, 77, 42, 57, 58, 75, 67, 80, 63, 70, 60, 51, 97, 61, 62, 53, 58, 68, 71, 59, 73, 54, 72, 68, 51, 82, 51, 68, 61, 53, 56, 119, 56, 68, 56, 87, 66, 75, 54, 64, 48, 62, 81, 64, 61, 72, 51, 55, 68, 78, 69, 65, 59, 52, 60, 66, 71, 63, 50, 64, 101, 65, 53, 61, 74, 80, 54, 53, 73, 70, 73, 72, 81, 52, 48, 41, 97, 48, 45, 51, 73, 81, 75, 59, 59, 65, 78, 50, 61, 85, 52, 69, 85, 79, 89, 72, 66, 90, 71, 73, 64, 91, 54, 74, 66, 67, 68, 56, 50, 97, 69, 64, 72, 43, 41, 56, 62, 64, 55, 65, 84, 67, 39, 69, 57, 69, 57, 71, 54, 54, 58, 68, 58, 116, 61, 63, 49, 63, 67, 75, 64, 54, 85, 61, 74, 68, 69, 58, 71, 57, 54, 67, 61, 66, 60, 66, 69, 57, 75, 81, 51, 82, 85, 67, 63, 69, 65, 86, 79, 70, 58, 68, 62, 53, 81, 68, 53, 53, 111, 72, 61, 74, 70, 77, 50, 55, 64, 83, 72, 79, 52, 63, 59, 55, 65, 74, 61, 59, 92, 58, 84, 59, 77, 59, 64, 41, 67, 58, 60, 87, 54, 41, 79, 88, 74, 57, 58, 57, 58, 63, 63, 47, 73, 102, 45, 57, 57, 52, 65, 80, 58, 76, 56, 72, 81, 56, 102, 68, 88, 59, 60, 93, 94, 73, 61, 73, 50, 65, 60, 55, 66, 78, 60, 93, 50, 71, 70, 56, 57, 54, 73, 60, 74, 79, 77, 99, 60, 68, 53, 58, 81, 51, 78, 66, 61, 84, 75, 65, 55, 67, 67, 50, 56, 55, 69, 56, 64, 63, 80, 63, 66, 33, 46, 57, 72, 124, 70, 68, 71, 61, 58, 56, 48, 85, 54, 65, 71, 69, 79, 53, 65, 65, 85, 66, 64, 64, 43, 48, 109, 94, 66, 61, 79, 96, 88, 70, 69, 73, 60, 58, 68, 55, 57, 70, 65, 60, 64, 70, 72, 59, 74, 72, 63, 70, 62, 75, 69, 64, 94, 76, 65, 62, 67, 74, 62, 53, 57, 58, 79, 64, 50, 61, 53, 110, 49, 54, 65, 53, 100, 63, 67, 54, 70, 61, 62, 54, 67, 53, 62, 79, 68, 68, 50, 57, 79, 59, 72, 49, 76, 57, 49, 53, 60, 70, 68, 70, 76, 56, 68, 94, 56, 103, 68, 52, 61, 70, 77, 68, 47, 78, 68, 69, 65, 87, 64, 59, 58, 55, 57, 47, 77, 74, 60, 70, 54, 47, 76, 61, 68, 80, 84, 57, 69, 47, 64, 70, 59, 127, 84, 67, 61, 68, 73, 47, 60, 71, 76, 62, 59, 52, 70, 75, 60, 53, 68, 69, 79, 69, 58, 71, 41, 60, 94, 75, 56, 62, 78, 69, 60, 55, 69, 92, 74, 54, 64, 69, 46, 63, 66, 75, 57, 65, 60, 73, 56, 60, 76, 61, 51, 76, 43, 93, 59, 57, 68, 84, 69, 63, 74, 63, 75, 70, 84, 69, 71, 67, 36, 64, 65, 79, 66, 62, 74, 82, 64, 62, 63, 64, 52, 80, 75, 67, 77, 68, 79, 79, 40, 58, 61, 67, 79, 77, 63, 76, 60, 52, 76, 65, 65, 67, 65, 59, 86, 68, 45, 63, 92, 66, 66, 68, 79, 64, 55, 66, 83, 58, 86, 81, 96, 97, 76, 77, 71, 59, 43, 71, 58, 76, 78, 116, 55, 57, 58, 72, 65, 71, 75, 65, 50, 85, 85, 67, 65, 70, 72, 82, 71, 57, 68, 57, 98, 75, 66, 83, 73, 49, 68, 57, 66, 65, 68, 61, 66, 83, 84, 62, 52, 86, 55, 56, 67, 63, 68, 83, 79, 67, 64, 75, 78, 76, 53, 70, 53, 47, 101, 72, 61, 74, 74, 105, 67, 58, 66, 98, 59, 64, 72, 56, 59, 91, 103, 60, 91, 73, 82, 62, 80, 69, 58, 88, 70, 56, 52, 65, 66, 57, 74, 41, 75, 31, 57, 75, 76, 60, 67, 54, 74, 55, 69, 64, 51, 70, 79, 63, 63, 72, 79, 81, 62, 51, 53, 61, 65, 64, 59, 52, 54, 62, 53, 62, 44, 65, 58, 83, 62, 65, 87, 55, 64, 69, 45, 63, 66, 69, 65, 59, 72, 71, 70, 65, 63, 50, 66, 66, 70, 64, 67, 72, 62, 89, 57, 101, 75, 95, 48, 50, 74, 62, 52, 56, 48, 72, 65, 60, 75, 54, 73, 79, 85, 55, 70, 63, 65, 76, 70, 59, 47, 61, 86, 55, 63, 56, 67, 52, 57, 90, 46, 51, 69, 58, 68, 65, 65, 98, 78, 62, 70, 51, 80, 60, 66, 68, 60, 95, 64, 61, 63, 50, 72, 59, 99, 61, 56, 77, 46, 75, 84, 63, 61, 48, 58, 66, 74, 59, 48, 63, 91, 70, 61, 64, 41, 88, 75, 79, 70, 68, 62, 63, 64, 80, 51, 63, 60, 64, 96, 67, 71, 71, 55, 60, 48, 62, 98, 64, 60, 65, 74, 57, 62, 59, 82, 97, 87, 72, 59, 57, 63, 52, 36, 69, 64, 61, 61, 91, 56, 55, 75, 60, 62, 47, 44, 67, 71, 94, 56, 61, 61, 59, 68, 60, 59, 58, 106, 69, 64, 52, 79, 59, 65, 58, 71, 58, 72, 54, 68, 74, 66, 59, 60, 72, 100, 44, 67, 70, 56, 63, 50, 56, 53, 56, 53, 58, 47, 59, 63, 53, 66, 70, 50, 61, 59, 90, 81, 68, 69, 71, 59, 71, 58, 55, 71, 60, 72, 66, 83, 53, 47, 49, 61, 65, 82, 62, 81, 65, 65, 67, 77, 50, 48, 63, 63, 67, 79, 82, 51, 64, 63, 54, 89, 74, 72, 54, 84, 63, 48, 52, 51, 53, 85, 74, 64, 42, 62, 56, 69, 99, 105, 60, 56, 61, 56, 72, 76, 74, 71, 78, 72, 64, 78, 72, 71, 79, 62, 90, 70, 62, 71, 65, 72, 48, 77, 56, 55, 36, 46, 54, 59, 69, 74, 60, 64, 49, 62, 59, 55, 65, 58, 64, 57, 62, 45, 62, 59, 63, 71, 65, 59, 67, 81, 46, 51, 62, 46, 96, 70, 77, 65, 58, 48, 60, 50, 53, 66, 99, 52, 77, 67, 62, 63, 68, 65, 59, 58, 55, 69, 78, 92, 47, 55, 59, 65, 48, 65, 58, 64, 52, 61, 38, 74, 54, 72, 72, 60, 64, 66, 120, 63, 68, 70, 79, 61, 65, 68, 64, 66, 74, 55, 59, 57, 60, 61, 58, 82, 78, 84, 47, 64, 67, 74, 88, 58, 63, 78, 57, 89, 72, 66, 67, 91, 55, 54, 51, 93, 62, 73, 70, 62, 57, 63, 48, 93, 68, 65, 66, 74, 69, 63, 75, 101, 63, 82, 38, 61, 63, 75, 67, 62, 73, 91, 57, 63, 90, 55, 65, 52, 54, 61, 82, 60, 101, 57, 74, 63, 83, 60, 66, 69, 81, 52, 88, 78, 56, 57, 64, 54, 66, 38, 78, 79, 68, 80, 52, 57, 70, 52, 83, 60, 117, 56, 63, 74, 44, 60, 53, 60, 56, 73, 67, 65, 77, 61, 59, 72, 57, 62, 78, 83, 47, 70, 67, 62, 59, 63, 85, 50, 52, 69, 64, 59, 51, 80, 95, 72, 49, 60, 64, 56, 57, 60, 82, 57, 96, 100, 60, 50, 52, 83, 81, 66, 62, 80, 61, 53, 86, 68, 58, 56, 62, 70, 63, 74, 48, 56, 57, 57, 58, 56, 55, 55, 81, 46, 71, 57, 62, 62, 49, 61, 75, 48, 61, 68, 67, 67, 63, 64, 43, 64, 95, 71, 72, 59, 61, 60, 63, 62, 69, 62, 70, 80, 60, 55, 66, 70, 63, 60, 68, 66, 67, 64, 53, 68, 59, 62, 100, 62, 69, 57, 66, 65, 51, 50, 50, 80, 69, 71, 73, 70, 67, 69, 128, 71, 63, 62, 53, 59, 76, 84, 58, 55, 77, 78, 67, 63, 77, 45, 57, 70, 50, 57, 70, 47, 54, 82, 49, 67, 65, 79, 54, 55, 100, 75, 80, 67, 73, 53, 69, 67, 47, 59, 88, 81, 74, 83, 54, 65, 59, 55, 68, 63, 59, 78, 55, 54, 87, 40, 61, 54, 76, 75, 58, 81, 65, 56, 90, 58, 62, 68, 60, 59, 74, 82, 67, 60, 48, 64, 90, 64, 54, 54, 84, 53, 71, 93, 61, 51, 66, 64, 78, 69, 77, 78, 76, 53, 62, 72, 74, 62, 78, 82, 64, 59, 66, 80, 59, 66, 53, 48, 61, 84, 66, 75, 70, 76, 116, 85, 55, 67, 64, 96, 70, 69, 62, 64, 65, 69, 62, 68, 54, 58, 54, 88, 54, 63, 67, 51, 85, 53, 69, 62, 65, 67, 65, 97, 74, 40, 61, 80, 68, 65, 59, 66, 60, 69, 71, 87, 68, 62, 62, 67, 71, 48, 53, 64, 71, 98, 62, 67, 62, 61, 63, 53, 113, 51, 73, 66, 80, 82, 76, 70, 60, 78, 64, 54, 56, 74, 65, 76, 65, 65, 57, 65, 58, 75, 56, 51, 61, 99, 59, 44, 61, 50, 54, 63, 61, 57, 84, 53, 64, 63, 55, 73, 76, 54, 41, 56, 63, 65, 62, 56, 59, 54, 56, 65, 75, 64, 104, 59, 61, 75, 72, 63, 55, 59, 69, 84, 68, 71, 68, 60, 62, 60, 58, 49, 58, 64, 50, 58, 60, 62, 59, 60, 65, 60, 68, 71, 59, 67, 60, 66, 58, 84, 78, 55, 59, 64, 86, 63, 57, 51, 66, 92, 66, 67, 58, 57, 66, 84, 64, 43, 62, 80, 58, 64, 75, 86, 60, 60, 71, 77, 76, 67, 61, 79, 71, 96, 90, 57, 52, 85, 51, 62, 72, 67, 66, 63, 87, 67, 67, 64, 64, 75, 68, 51, 64, 70, 65, 70, 80, 52, 86, 65, 76, 74, 68, 63, 76, 65, 68, 60, 66, 54, 78, 69, 67, 65, 69, 53, 79, 70, 71, 77, 71, 68, 67, 66, 68, 60, 63, 90, 65, 66, 70, 79, 41, 89, 46, 43, 70, 95, 65, 62, 67, 79, 66, 55, 56, 59, 59, 72, 67, 55, 99, 63, 61, 97, 57, 83, 60, 60, 64, 69, 65, 59, 44, 73, 77, 69, 70, 75, 68, 78, 59, 75, 44, 52, 82, 67, 61, 71, 52, 66, 69, 77, 61, 62, 50, 68, 46, 57, 53, 63, 78, 84, 38, 81, 51, 64, 64, 76, 65, 38, 69, 69, 59, 61, 57, 64, 43, 71, 68, 95, 50, 63, 56, 72, 56, 51, 63, 74, 59, 61, 67, 66, 70, 66, 44, 57, 64, 62, 70, 61, 85, 62, 94, 81, 104, 66, 56, 72, 64, 58, 69, 60, 49, 62, 66, 62, 61, 71, 84, 58, 68, 44, 66, 79, 62, 69, 53, 73, 57, 46, 75, 65, 68, 59, 89, 64, 75, 69, 95, 55, 53, 52, 66, 68, 99, 73, 73, 63, 69, 73, 74, 66, 54, 61, 83, 54, 97, 71, 62, 64, 54, 84, 54, 98, 62, 51, 90, 46, 64, 59, 74, 77, 57, 58, 68, 57, 68, 70, 55, 60, 88, 64, 73, 41, 67, 72, 83, 57, 65, 54, 66, 72, 76, 64, 68, 52, 54, 53, 79, 68, 63, 45, 78, 66, 61, 75, 84, 63, 73, 56, 62, 55, 61, 52, 74, 68, 73, 53, 59, 94, 65, 77, 64, 65, 57, 72, 85, 71, 48, 76, 74, 70, 62, 42, 54, 63, 67, 65, 68, 57, 53, 47, 52, 55, 63, 90, 58, 67, 55, 76, 77, 68, 58, 76, 80, 61, 57, 63, 61, 66, 59, 53, 60, 84, 53, 53, 46, 68, 60, 37, 75, 71, 62, 73, 88, 70, 64, 73, 58, 54, 52, 65, 52, 43, 75, 71, 64, 74, 74, 57, 60, 55, 52, 58, 67, 36, 59, 64, 63, 66, 54, 68, 63, 52, 71, 58, 48, 59, 47, 96, 52, 67, 60, 74, 77, 81, 68, 57, 71, 66, 67, 61, 67, 65, 66, 89, 65, 74, 53, 79, 55, 53, 59, 70, 57, 71, 64, 64, 82, 66, 61, 56, 56, 103, 63, 59, 63, 63, 74, 75, 56, 92, 56, 71, 71, 60, 70, 51, 55, 70, 61, 78, 60, 57, 57, 66, 112, 57, 74, 58, 74, 103, 62, 73, 66, 65, 81, 60, 62, 54, 63, 68, 63, 67, 74, 86, 51, 56, 89, 62, 72, 81, 64, 71, 71, 56, 111, 56, 77, 90, 66, 77, 60, 97, 60, 74, 73, 58, 85, 52, 49, 58, 76, 49, 72, 68, 57, 60, 38, 53, 70, 62, 55, 49, 54, 61, 71, 70, 62, 89, 87, 63, 55, 86, 69, 68, 70, 68, 86, 56, 51, 65, 110, 48, 59, 56, 45, 60, 64, 52, 49, 67, 87, 60, 82, 54, 61, 57, 65, 51, 55, 49, 55, 92, 52, 82, 98, 55, 53, 65, 66, 67, 73, 64, 59, 75, 69, 47, 48, 67, 57, 49, 61, 58, 84, 78, 57, 60, 59, 77, 56, 70, 69, 95, 55, 77, 51, 53, 71, 54, 87, 70, 62, 60, 62, 64, 69, 74, 57, 72, 66, 65, 83, 72, 63, 78, 63, 55, 59, 52, 59, 56, 99, 43, 83, 65, 86, 97, 56, 34, 80, 73, 68, 79, 68, 68, 66, 58, 67, 71, 117, 64, 63, 76, 53, 58, 76, 56, 60, 67, 62, 59, 87, 70, 68, 61, 66, 58, 90, 107, 70, 51, 63, 66, 52, 45, 86, 91, 56, 62, 54, 66, 71, 59, 86, 66, 84, 68, 54, 55, 87, 39, 95, 56, 111, 73, 61, 64, 57, 80, 48, 62, 89, 57, 55, 70, 81, 54, 81, 72, 73, 82, 61, 57, 88, 68, 85, 63, 64, 68, 64, 54, 61, 58, 70, 70, 48, 60, 49, 65, 59, 65, 61, 61, 54, 83, 63, 73, 64, 70, 108, 73, 65, 72, 69, 65, 64, 74, 74, 49, 70, 51, 57, 47, 70, 81, 63, 71, 38, 66, 63, 72, 68, 57, 78, 52, 89, 84, 59, 67, 70, 76, 94, 60, 68, 75, 78, 66, 65, 60, 58, 63, 107, 79, 69, 65, 54, 66, 64, 60, 54, 62, 73, 91, 56, 60, 102, 54, 56, 55, 68, 71, 57, 86, 60, 65, 59, 66, 47, 84, 65, 57, 76, 54, 66, 91, 67, 67, 68, 79, 61, 68, 69, 57, 67, 71, 55, 67, 70, 62, 63, 72, 70, 81, 69, 70, 53, 86, 69, 63, 73, 62, 80, 67, 50, 53, 82, 65, 58, 45, 57, 71, 51, 65, 65, 75, 51, 67, 109, 56, 56, 54, 57, 55, 57, 59, 71, 52, 64, 49, 69, 55, 65, 65, 78, 70, 85, 72, 78, 66, 57, 74, 66, 69, 59, 51, 53, 66, 62, 55, 68, 78, 49, 80, 61, 54, 112, 62, 76, 54, 72, 84, 44, 61, 63, 81, 61, 54, 78, 59, 55, 56, 60, 81, 61, 59, 72, 60, 66, 70, 90, 60, 71, 55, 62, 97, 66, 54, 40, 65, 66, 67, 55, 65, 77, 61, 70, 55, 71, 75, 72, 69, 60, 79, 48, 68, 105, 75, 76, 86, 73, 61, 63, 88, 80, 54, 62, 83, 60, 66, 76, 53, 63, 48, 66, 54, 84, 53, 58, 60, 58, 50, 61, 61, 56, 74, 68, 94, 66, 107, 74, 66, 63, 89, 81, 54, 61, 62, 58, 64, 68, 53, 48, 71, 64, 64, 50, 59, 67, 62, 61, 59, 46, 63, 63, 64, 71, 66, 98, 71, 67, 84, 80, 55, 71, 54, 74, 68, 62, 50, 48, 66, 73, 45, 47, 73, 62, 60, 61, 67, 49, 65, 61, 74, 50, 56, 57, 77, 71, 68, 41, 64, 56, 65, 58, 69, 45, 68, 59, 44, 38, 64, 56, 60, 74, 52, 59, 72, 86, 66, 62, 52, 64, 77, 63, 92, 54, 86, 78, 65, 61, 86, 62, 70, 59, 102, 56, 71, 106, 70, 54, 65, 70, 61, 59, 58, 74, 68, 106, 65, 63, 67, 77, 68, 70, 57, 69, 65, 75, 76, 61, 68, 69, 76, 47, 62, 58, 68, 73, 65, 53, 64, 58, 63, 50, 65, 84, 70, 62, 64, 79, 71, 63, 68, 67, 49, 72, 62, 77, 61, 53, 81, 71, 85, 72, 84, 85, 79, 64, 58, 37, 90, 53, 48, 59, 60, 79, 50, 77, 65, 65, 62, 75, 56, 63, 60, 91, 90, 48, 85, 66, 76, 65, 72, 67, 73, 69, 57, 55, 61, 66, 56, 72, 64, 90, 75, 77, 60, 69, 72, 59, 58, 61, 78, 64, 58, 55, 51, 52, 68, 75, 57, 63, 55, 66, 67, 61, 72, 90, 74, 58, 63, 65, 45, 52, 62, 45, 83, 91, 65, 74, 60, 63, 94, 55, 65, 83, 108, 68, 57, 66, 75, 59, 60, 67, 63, 59, 70, 65, 58, 55, 47, 71, 70, 93, 63, 86, 76, 91, 76, 71, 59, 109, 58, 61, 80, 61, 70, 57, 57, 68, 57, 63, 71, 66, 60, 89, 75, 40, 54, 66, 69, 65, 67, 55, 54, 63, 60, 46, 66, 74, 55, 88, 46, 67, 77, 56, 68, 58, 64, 62, 53, 55, 65, 64, 64, 60, 65, 57, 65, 99, 68, 60, 67, 59, 55, 60, 92, 73, 70, 58, 54, 64, 69, 76, 61, 56, 62, 62, 63, 50, 72, 52, 74, 71, 53, 69, 58, 73, 60, 50, 68, 57, 71, 51, 62, 48, 49, 62, 66, 75, 123, 92, 70, 58, 61, 68, 61, 64, 83, 77, 57, 83, 74, 63, 49, 62, 67, 84, 56, 65, 45, 57, 53, 61, 87, 52, 54, 56, 50, 65, 61, 60, 56, 62, 66, 82, 62, 68, 62, 79, 76, 71, 64, 64, 67, 61, 73, 56, 98, 62, 51, 62, 60, 65, 66, 60, 58, 64, 45, 58, 62, 56, 69, 73, 60, 65, 98, 58, 68, 74, 59, 60, 74, 104, 49, 58, 61, 67, 74, 50, 73, 65, 58, 76, 58, 60, 60, 74, 63, 55, 71, 59, 58, 51, 66, 76, 58, 62, 64, 72, 64, 59, 59, 68, 54, 65, 55, 58, 73, 73, 60, 55, 54, 45, 73, 62, 62, 73, 81, 60, 54, 71, 79, 54, 55, 56, 51, 61, 89, 61, 76, 67, 61, 83, 48, 67, 60, 60, 49, 75, 71, 64, 71, 53, 91, 57, 101, 81, 61, 104, 71, 75, 59, 65, 86, 64, 83, 74, 57, 84, 91, 63, 59, 52, 62, 56, 70, 62, 74, 89, 57, 74, 94, 68, 102, 66, 78, 53, 67, 75, 62, 55, 72, 65, 63, 81, 51, 49, 84, 78, 49, 64, 54, 77, 56, 48, 68, 64, 56, 99, 72, 59, 78, 77, 64, 62, 90, 64, 80, 65, 65, 84, 47, 54, 60, 62, 55, 67, 58, 77, 55, 78, 71, 77, 66, 55, 55, 58, 54, 58, 65, 55, 72, 62, 60, 78, 82, 60, 42, 66, 54, 90, 70, 64, 62, 105, 66, 57, 47, 68, 66, 70, 73, 59, 62, 65, 72, 66, 58, 50, 69, 82, 66, 66, 56, 67, 58, 73, 64, 73, 71, 68, 64, 57, 72, 79, 48, 56, 68, 72, 95, 62, 63, 58, 66, 51, 67, 84, 85, 48, 81, 61, 66, 62, 71, 61, 90, 70, 59, 47, 59, 61, 56, 57, 122, 72, 66, 52, 68, 78, 70, 49, 54, 58, 67, 74, 51, 59, 60, 90, 53, 80, 52, 59, 78, 85, 80, 78, 62, 75, 60, 54, 64, 51, 101, 63, 99, 65, 57, 64, 59, 63, 75, 103, 73, 65, 57, 58, 55, 45, 72, 63, 69, 59, 64, 73, 58, 57, 64, 66, 67, 76, 51, 91, 58, 59, 66, 57, 42, 92, 80, 68, 62, 66, 79, 61, 65, 78, 71, 67, 49, 71, 43, 69, 71, 75, 60, 127, 62, 62, 55, 69, 60, 51, 70, 59, 75, 78, 59, 76, 66, 53, 70, 73, 59, 93, 60, 53, 76, 73, 53, 48, 62, 75, 79, 59, 64, 59, 67, 74, 53, 53, 65, 89, 57, 67, 62, 62, 52, 54, 67, 67, 78, 96, 68, 68, 68, 81, 68, 56, 65, 54, 51, 68, 57, 55, 57, 64, 62, 52, 69, 71, 66, 63, 65, 61, 56, 56, 62, 59, 74, 60, 58, 87, 77, 62, 72, 57, 59, 68, 53, 54, 57, 72, 73, 125, 51, 57, 56, 53, 70, 70, 68, 45, 58, 67, 106, 81, 65, 38, 58, 62, 67, 48, 66, 77, 68, 66, 65, 67, 67, 74, 96, 67, 50, 93, 59, 59, 47, 69, 60, 80, 53, 99, 83, 67, 82, 74, 54, 54, 70, 62, 51, 64, 66, 65, 91, 39, 100, 62, 73, 61, 66, 60, 64, 59, 66, 86, 69, 72, 66, 63, 65, 72, 64, 57, 62, 55, 49, 57, 65, 82, 50, 61, 65, 60, 57, 58, 102, 55, 73, 70, 69, 52, 61, 65, 61, 56, 57, 72, 55, 66, 56, 83, 75, 68, 59, 66, 54, 60, 77, 44, 65, 70, 72, 68, 74, 73, 65, 81, 70, 56, 52, 68, 66, 71, 61, 61, 83, 82, 54, 64, 63, 82, 66, 50, 61, 54, 59, 52, 54, 71, 62, 63, 82, 63, 66, 72, 62, 72, 65, 84, 69, 58, 72, 64, 61, 73, 64, 64, 60, 70, 58, 55, 57, 67, 78, 61, 62, 95, 83, 55, 76, 54, 58, 63, 55, 117, 67, 66, 59, 59, 51, 52, 63, 63, 55, 62, 64, 94, 52, 105, 70, 64, 54, 65, 67, 60, 69, 61, 63, 65, 102, 54, 49, 64, 55, 73, 49, 48, 58, 92, 54, 31, 50, 68, 84, 123, 64, 61, 52, 57, 67, 60, 75, 74, 69, 65, 59, 71, 57, 85, 50, 77, 84, 67, 60, 76, 66, 83, 43, 65, 60, 68, 76, 68, 54, 69, 54, 58, 58, 94, 76, 75, 45, 55, 73, 67, 55, 81, 62, 56, 57, 63, 64, 61, 80, 63, 58, 63, 85, 67, 57, 77, 55, 57, 96, 40, 61, 57, 68, 58, 71, 62, 58, 87, 103, 57, 92, 62, 104, 62, 57, 71, 57, 60, 41, 54, 84, 47, 91, 115, 65, 51, 63, 57, 71, 55, 87, 50, 62, 79, 56, 76, 68, 61, 72, 71, 59, 59, 66, 58, 57, 58, 70, 70, 83, 66, 62, 62, 76, 63, 62, 70, 63, 80, 56, 63, 46, 48, 62, 52, 51, 116, 75, 68, 79, 72, 70, 94, 63, 77, 51, 56, 64, 76, 59, 63, 78, 80, 88, 69, 59, 59, 79, 59, 72, 65, 74, 65, 55, 62, 56, 70, 70, 60, 70, 78, 59, 65, 106, 37, 76, 66, 69, 62, 47, 51, 71, 62, 58, 79, 58, 78, 74, 68, 71, 62, 78, 62, 57, 73, 77, 79, 64, 65, 57, 38, 58, 55, 51, 75, 60, 68, 67, 63, 58, 89, 69, 62, 75, 58, 60, 61, 62, 59, 37, 64, 69, 60, 63, 68, 64, 53, 65, 83, 82, 52, 62, 61, 55, 62, 70, 60, 48, 63, 56, 64, 68, 78, 68, 64, 64, 66, 64, 60, 49, 52, 111, 94, 70, 87, 55, 73, 60, 88, 61, 71, 79, 76, 59, 66, 67, 63, 51, 60, 80, 62, 65, 71, 60, 79, 67, 49, 56, 56, 52, 85, 62, 100, 56, 97, 61, 83, 67, 88, 62, 62, 73, 63, 77, 89, 54, 65, 68, 74, 67, 54, 61, 51, 68, 69, 57, 74, 69, 66, 44, 58, 94, 63, 94, 76, 57, 62, 53, 76, 52, 44, 52, 51, 73, 66, 64, 66, 53, 60, 60, 55, 63, 54, 53, 61, 53, 60, 59, 63, 74, 72, 67, 75, 57, 51, 60, 54, 84, 68, 63, 62, 46, 73, 65, 67, 67, 79, 61, 68, 87, 62, 61, 61, 58, 74, 69, 71, 61, 74, 70, 67, 89, 74, 74, 74, 54, 69, 70, 62, 63, 66, 67, 49, 45, 64, 48, 81, 62, 65, 60, 68, 75, 58, 67, 60, 49, 59, 46, 58, 69, 72, 83, 59, 46, 73, 57, 60, 50, 69, 57, 59, 67, 68, 78, 50, 49, 68, 73, 62, 52, 67, 61, 62, 67, 65, 60, 52, 53, 83, 64, 79, 61, 53, 59, 60, 65, 66, 62, 61, 61, 53, 59, 51, 62, 72, 70, 62, 63, 59, 74, 55, 61, 68, 72, 78, 55, 59, 65, 42, 59, 61, 73, 71, 61, 48, 90, 99, 46, 84, 68, 65, 65, 75, 61, 73, 103, 49, 75, 62, 68, 49, 73, 67, 66, 70, 73, 106, 57, 60, 85, 64, 58, 53, 56, 56, 51, 60, 62, 74, 60, 56, 88, 65, 83, 59, 63, 79, 62, 52, 60, 57, 60, 71, 65, 72, 69, 53, 46, 59, 74, 69, 103, 69, 51, 56, 64, 58, 57, 83, 60, 61, 59, 69, 43, 76, 70, 60, 59, 60, 68, 84, 61, 67, 67, 71, 57, 119, 69, 72, 59, 52, 55, 74, 96, 69, 44, 75, 60, 75, 80, 59, 57, 88, 51, 63, 64, 58, 54, 89, 95, 64, 65, 57, 63, 63, 66, 84, 68, 45, 79, 59, 64, 64, 66, 62, 64, 66, 68, 92, 62, 67, 68, 66, 64, 60, 56, 69, 64, 75, 64, 63, 63, 69, 62, 66, 61, 57, 65, 54, 46, 52, 76, 69, 88, 66, 81, 79, 68, 64, 70, 56, 62, 60, 51, 57, 102, 56, 66, 56, 66, 56, 73, 62, 75, 75, 77, 77, 64, 53, 63, 55, 71, 68, 78, 48, 66, 55, 61, 61, 55, 49, 106, 71, 75, 60, 67, 69, 83, 54, 53, 103, 63, 76, 63, 64, 85, 63, 63, 58, 73, 55, 48, 76, 66, 69, 54, 55, 70, 72, 60, 78, 92, 66, 99, 54, 70, 73, 60, 87, 85, 129, 57, 60, 74, 61, 65, 86, 60, 61, 62, 54, 53, 72, 52, 55, 65, 57, 65, 65, 78, 51, 66, 61, 56, 54, 53, 95, 86, 53, 52, 58, 69, 59, 60, 65, 62, 59, 45, 46, 107, 59, 65, 64, 63, 120, 72, 62, 52, 62, 69, 126, 64, 58, 70, 63, 59, 65, 68, 52, 63, 34, 81, 56, 56, 62, 72, 55, 73, 54, 57, 60, 100, 71, 50, 61, 68, 57, 71, 49, 64, 60, 68, 58, 70, 66, 53, 69, 61, 43, 70, 110, 67, 57, 84, 68, 39, 54, 63, 56, 71, 79, 63, 77, 60, 55, 78, 58, 70, 61, 65, 64, 78, 54, 67, 50, 65, 83, 67, 58, 52, 90, 57, 88, 43, 41, 58, 69, 64, 56, 57, 50, 69, 126, 68, 55, 63, 68, 68, 63, 53, 50, 58, 57, 31, 61, 58, 65, 66, 62, 59, 51, 68, 68, 59, 75, 74, 52, 61, 80, 76, 101, 60, 99, 61, 59, 76, 65, 54, 77, 64, 85, 59, 63, 73, 77, 69, 54, 60, 94, 59, 66, 55, 47, 65, 67, 66, 86, 83, 57, 63, 69, 53, 64, 91, 61, 53, 81, 50, 49, 70, 60, 53, 66, 58, 72, 52, 74, 79, 96, 50, 58, 72, 53, 58, 52, 82, 57, 57, 66, 71, 86, 70, 46, 65, 55, 60, 75, 60, 61, 76, 66, 71, 74, 62, 64, 65, 61, 45, 64, 61, 75, 74, 55, 68, 63, 66, 69, 60, 82, 81, 85, 86, 70, 67, 58, 61, 70, 60, 67, 67, 65, 51, 58, 93, 62, 69, 59, 56, 52, 84, 59, 61, 76, 60, 60, 90, 70, 59, 76, 69, 76, 52, 73, 56, 74, 76, 58, 66, 64, 66, 54, 68, 81, 69, 71, 81, 77, 57, 57, 64, 57, 60, 62, 66, 69, 78, 59, 53, 64, 67, 55, 69, 43, 57, 63, 53, 39, 67, 71, 66, 57, 50, 64, 66, 92, 79, 68, 65, 63, 65, 52, 49, 80, 72, 72, 68, 52, 49, 68, 65, 53, 49, 67, 63, 49, 58, 75, 61, 71, 82, 79, 62, 87, 59, 57, 55, 48, 58, 100, 70, 58, 75, 90, 49, 62, 69, 57, 47, 58, 72, 45, 63, 71, 121, 53, 55, 75, 73, 77, 66, 81, 62, 54, 54, 67, 70, 75, 66, 59, 63, 55, 54, 65, 102, 63, 82, 60, 71, 59, 81, 51, 56, 65, 82, 56, 58, 62, 60, 64, 62, 53, 63, 62, 77, 76, 73, 71, 64, 55, 57, 67, 51, 53, 73, 61, 72, 72, 64, 45, 54, 43, 76, 60, 60, 85, 88, 62, 87, 85, 74, 70, 61, 52, 58, 95, 56, 63, 54, 57, 58, 68, 56, 60, 80, 52, 76, 58, 68, 63, 71, 74, 70, 72, 55, 59, 145, 69, 63, 62, 54, 67, 57, 68, 82, 105, 62, 64, 60, 65, 50, 71, 61, 56, 64, 66, 69, 87, 51, 52, 61, 62, 72, 66, 60, 47, 91, 52, 63, 76, 59, 52, 73, 67, 43, 70, 62, 62, 62, 74, 81, 62, 60, 53, 83, 64, 88, 46, 63, 64, 48, 62, 90, 71, 67, 57, 60, 55, 58, 73, 71, 66, 69, 62, 50, 96, 66, 54, 48, 62, 52, 73, 55, 57, 90, 55, 78, 64, 82, 56, 72, 82, 54, 59, 89, 67, 49, 61, 63, 59, 46, 50, 74, 57, 106, 93, 70, 67, 62, 87, 49, 65, 81, 52, 72, 69, 68, 75, 81, 47, 50, 55, 67, 58, 71, 76, 81, 71, 50, 78, 48, 50, 78, 102, 73, 60, 64, 102, 71, 42, 67, 54, 81, 73, 59, 54, 70, 48, 59, 54, 73, 63, 63, 72, 69, 63, 53, 67, 58, 60, 61, 77, 53, 56, 70, 72, 62, 57, 51, 63, 87, 64, 80, 59, 77, 66, 41, 68, 76, 50, 66, 67, 59, 58, 62, 92, 68, 72, 83, 76, 47, 65, 59, 58, 47, 68, 72, 71, 83, 66, 69, 55, 81, 46, 54, 64, 54, 85, 72, 61, 66, 78, 79, 63, 82, 46, 44, 59, 50, 65, 70, 70, 71, 70, 53, 71, 79, 75, 48, 57, 94, 82, 71, 51, 79, 56, 49, 57, 61, 61, 76, 59, 71, 45, 80, 121, 81, 49, 63, 63, 59, 73, 67, 73, 77, 57, 53, 77, 95, 56, 64, 55, 74, 50, 120, 56, 71, 67, 62, 57, 60, 68, 97, 57, 72, 78, 45, 53, 130, 49, 80, 56, 123, 71, 61, 72, 67, 62, 59, 129, 53, 51, 52, 62, 55, 80, 74, 66, 58, 81, 51, 62, 50, 58, 70, 56, 63, 46, 64, 67, 69, 40, 68, 68, 70, 66, 62, 68, 69, 69, 58, 68, 82, 79, 65, 64, 58, 61, 71, 65, 53, 65, 65, 79, 69, 55, 109, 63, 69, 54, 75, 67, 68, 65, 88, 66, 79, 60, 55, 86, 95, 54, 63, 82, 77, 71, 55, 56, 63, 57, 64, 71, 68, 58, 56, 57, 60, 63, 85, 99, 61, 117, 64, 67, 46, 54, 45, 68, 66, 56, 65, 56, 59, 88, 66, 76, 79, 99, 62, 61, 71, 84, 53, 83, 90, 59, 68, 58, 45, 68, 76, 98, 65, 48, 65, 54, 44, 61, 67, 58, 53, 78, 54, 79, 59, 74, 54, 60, 75, 57, 41, 87, 68, 51, 103, 62, 49, 84, 60, 54, 77, 67, 62, 66, 80, 54, 52, 57, 68, 70, 57, 81, 56, 131, 61, 46, 63, 77, 44, 51, 67, 69, 58, 61, 52, 79, 64, 84, 96, 90, 76, 55, 60, 54, 54, 66, 60, 38, 64, 67, 53, 59, 95, 84, 78, 52, 70, 72, 71, 80, 59, 53, 73, 52, 89, 57, 63, 64, 70, 53, 71, 79, 97, 57, 79, 57, 67, 76, 68, 56, 68, 56, 90, 82, 46, 100, 48, 70, 50, 79, 65, 49, 68, 61, 49, 54, 58, 70, 61, 49, 63, 82, 48, 58, 74, 67, 77, 31, 62, 63, 64, 62, 68, 65, 59, 72, 82, 84, 52, 62, 63, 59, 76, 71, 53, 55, 70, 54, 50, 63, 64, 106, 65, 52, 86, 65, 66, 37, 71, 81, 66, 59, 59, 62, 90, 76, 72, 66, 47, 68, 64, 41, 68, 49, 49, 44, 90, 66, 61, 73, 57, 58, 82, 101, 72, 90, 66, 62, 76, 72, 71, 96, 85, 63, 100, 90, 79, 65, 65, 65, 68, 85, 55, 97, 86, 68, 134, 60, 51, 49, 57, 54, 64, 60, 82, 49, 81, 65, 58, 62, 64, 67, 54, 94, 58, 53, 52, 51, 52, 78, 58, 73, 71, 47, 45, 68, 93, 55, 97, 75, 67, 57, 57, 88, 69, 45, 73, 64, 49, 68, 70, 58, 79, 73, 57, 77, 72, 65, 55, 77, 86, 60, 62, 59, 51, 51, 87, 52, 68, 82, 42, 52, 66, 61, 71, 86, 50, 45, 83, 59, 55, 67, 77, 63, 62, 68, 55, 60, 59, 86, 68, 54, 64, 58, 74, 70, 61, 94, 50, 55, 65, 67, 75, 79, 66, 58, 73, 58, 77, 40, 56, 54, 50, 64, 93, 61, 65, 61, 73, 62, 66, 77, 64, 67, 67, 69, 57, 59, 55, 65, 77, 68, 77, 69, 57, 70, 54, 63, 56, 54, 57, 76, 65, 63, 59, 63, 86, 76, 82, 49, 55, 59, 82, 53, 55, 57, 69, 59, 55, 62, 70, 63, 65, 84, 71, 59, 72, 60, 75, 61, 70, 46, 62, 130, 67, 58, 80, 54, 48, 56, 51, 53, 50, 58, 63, 30, 79, 62, 69, 54, 63, 89, 88, 52, 87, 55, 51, 56, 71, 93, 66, 70, 94, 64, 60, 73, 53, 60, 71, 71, 58, 56, 69, 65, 83, 68, 77, 68, 73, 56, 60, 59, 55, 64, 60, 67, 87, 86, 53, 75, 54, 47, 69, 58, 76, 74, 55, 57, 72, 64, 61, 55, 62, 76, 70, 66, 48, 87, 60, 67, 77, 53, 45, 63, 51, 74, 69, 55, 74, 52, 89, 45, 64, 65, 65, 65, 65, 51, 54, 84, 87, 79, 62, 63, 59, 78, 66, 72, 65, 60, 49, 90, 60, 73, 61, 63, 57, 54, 58, 68, 82, 50, 62, 57, 100, 59, 102, 47, 72, 65, 82, 59, 60, 64, 61, 72, 105, 78, 62, 56, 54, 63, 66, 79, 55, 58, 74, 50, 61, 63, 50, 54, 53, 63, 68, 78, 85, 80, 68, 54, 65, 68, 43, 58, 40, 62, 69, 64, 49, 76, 55, 80, 58, 47, 54, 72, 73, 71, 56, 74, 58, 94, 59, 65, 67, 68, 74, 86, 79, 66, 64, 69, 86, 78, 55, 52, 65, 58, 61, 73, 66, 63, 75, 59, 89, 56, 32, 65, 139, 53, 46, 64, 57, 67, 65, 60, 69, 59, 54, 46, 59, 55, 88, 69, 60, 51, 56, 69, 56, 50, 55, 16, 66, 65, 60, 58, 69, 67, 53, 75, 51, 64, 73, 76, 83, 63, 71, 68, 61, 80, 63, 79, 62, 79, 57, 62, 63, 40, 58, 94, 88, 54, 67, 69, 73, 55, 88, 63, 110, 55, 57, 59, 61, 73, 57, 75, 80, 74, 50, 76, 56, 63, 117, 70, 54, 62, 77, 59, 68, 72, 52, 56, 64, 67, 65, 55, 72, 57, 102, 75, 61, 89, 70, 87, 54, 68, 81, 58, 95, 63, 81, 86, 57, 67, 72, 49, 58, 57, 70, 43, 65, 48, 69, 76, 66, 78, 70, 73, 65, 68, 59, 61, 76, 58, 51, 69, 57, 65, 69, 64, 63, 115, 72, 92, 70, 46, 72, 64, 51, 84, 64, 58, 62, 62, 51, 70, 60, 64, 75, 55, 70, 70, 39, 81, 67, 90, 82, 48, 60, 74, 57, 72, 72, 57, 62, 85, 76, 69, 61, 80, 51, 59, 61, 78, 65, 70, 69, 52, 91, 79, 57, 83, 55, 72, 61, 65, 61, 61, 55, 51, 64, 48, 83, 62, 65, 54, 66, 67, 62, 48, 57, 71, 70, 72, 68, 73, 76, 61, 61, 70, 42, 56, 76, 63, 63, 69, 77, 58, 45, 63, 49, 80, 73, 51, 73, 60, 83, 69, 65, 83, 92, 74, 83, 68, 58, 61, 49, 55, 63, 61, 84, 43, 69, 59, 65, 54, 49, 58, 68, 73, 55, 67, 59, 55, 58, 73, 48, 62, 62, 62, 78, 83, 59, 66, 76, 64, 62, 82, 75, 59, 66, 51, 64, 67, 70, 89, 106, 48, 49, 51, 67, 57, 62, 85, 59, 62, 107, 73, 65, 55, 59, 66, 75, 47, 60, 90, 71, 64, 76, 65, 77, 67, 63, 55, 56, 67, 66, 47, 68, 78, 86, 55, 66, 110, 86, 64, 72, 52, 63, 73, 63, 62, 84, 80, 102, 96, 73, 64, 63, 61, 50, 60, 78, 49, 57, 67, 77, 60, 71, 48, 65, 64, 61, 86, 89, 59, 66, 90, 57, 79, 66, 97, 67, 71, 62, 76, 49, 53, 66, 69, 58, 55, 67, 65, 68, 71, 48, 57, 84, 62, 59, 71, 87, 66, 58, 45, 37, 71, 64, 58, 63, 58, 49, 68, 88, 48, 80, 77, 61, 55, 60, 69, 82, 86, 95, 60, 57, 69, 58, 74, 86, 65, 51, 54, 70, 59, 83, 70, 57, 76, 71, 59, 59, 42, 67, 39, 65, 58, 67, 41, 48, 67, 53, 76, 64, 66, 62, 48, 59, 75, 71, 58, 89, 79, 51, 90, 64, 58, 65, 88, 92, 65, 64, 66, 88, 75, 80, 75, 60, 58, 55, 54, 57, 62, 74, 93, 73, 81, 57, 57, 66, 92, 65, 70, 65, 113, 58, 67, 58, 69, 67, 68, 98, 62, 96, 61, 56, 78, 55, 69, 95, 58, 70, 64, 64, 61, 52, 74, 66, 74, 64, 57, 80, 58, 72, 60, 68, 91, 89, 55, 50, 71, 43, 49, 64, 42, 62, 70, 71, 55, 63, 117, 54, 73, 54, 55, 83, 49, 59, 54, 74, 68, 56, 60, 53, 82, 107, 53, 62, 65, 59, 75, 65, 59, 63, 79, 53, 58, 67, 56, 53, 111, 62, 68, 78, 71, 51, 56, 65, 60, 58, 56, 77, 70, 62, 57, 56, 60, 67, 43, 69, 69, 70, 57, 71, 65, 51, 68, 79, 69, 50, 55, 63, 79, 60, 51, 69, 106, 65, 67, 54, 57, 45, 79, 54, 73, 73, 61, 55, 67, 78, 52, 56, 89, 45, 72, 76, 54, 55, 55, 61, 59, 74, 71, 78, 59, 60, 70, 45, 58, 95, 52, 86, 73, 49, 65, 52, 90, 58, 78, 65, 78, 67, 58, 61, 80, 68, 67, 64, 50, 51, 63, 38, 45, 65, 73, 69, 70, 67, 62, 55, 57, 85, 60, 75, 63, 75, 84, 96, 50, 68, 71, 75, 98, 47, 61, 31, 68, 91, 65, 75, 44, 62, 53, 55, 71, 65, 47, 51, 64, 105, 62, 71, 57, 69, 85, 59, 60, 71, 54, 55, 75, 75, 60, 64, 70, 62, 54, 42, 70, 66, 61, 73, 59, 82, 65, 41, 66, 55, 53, 70, 62, 64, 70, 85, 68, 64, 52, 54, 41, 42, 66, 47, 61, 66, 64, 54, 64, 78, 67, 59, 58, 98, 44, 60, 64, 53, 57, 84, 68, 72, 70, 66, 58, 59, 70, 52, 58, 66, 69, 52, 108, 69, 80, 59, 73, 72, 60, 83, 72, 52, 51, 122, 57, 53, 79, 71, 53, 62, 61, 69, 66, 53, 67, 48, 94, 54, 63, 79, 54, 73, 84, 60, 73, 88, 52, 48, 75, 72, 88, 47, 61, 44, 59, 85, 59, 97, 59, 42, 56, 45, 61, 71, 55, 56, 110, 61, 52, 61, 63, 65, 111, 54, 82, 81, 58, 71, 58, 58, 66, 50, 66, 81, 75, 81, 42, 61, 92, 76, 55, 71, 65, 61, 64, 43, 76, 70, 40, 82, 93, 58, 49, 56, 80, 58, 56, 62, 66, 61, 56, 54, 66, 75, 61, 54, 68, 69, 92, 72, 47, 52, 63, 71, 46, 64, 81, 65, 90, 59, 59, 60, 56, 76, 44, 69, 45, 59, 72, 72, 85, 60, 81, 68, 66, 61, 68, 77, 61, 64, 95, 83, 27, 60, 78, 60, 58, 58, 70, 50, 54, 47, 40, 68, 50, 53, 75, 42, 65, 51, 83, 69, 62, 83, 46, 62, 81, 55, 68, 79, 48, 57, 68, 91, 129, 64, 57, 67, 69, 68, 47, 70, 71, 63, 58, 48, 59, 61, 57, 60, 70, 57, 63, 79, 50, 78, 66, 69, 69, 97, 59, 99, 58, 67, 77, 57, 57, 83, 47, 55, 72, 83, 57, 54, 67, 53, 135, 70, 58, 51, 53, 56, 65, 54, 66, 71, 65, 41, 59, 61, 72, 102, 59, 58, 57, 63, 87, 45, 67, 50, 75, 67, 53, 59, 58, 72, 68, 83, 100, 71, 64, 60, 71, 64, 72, 60, 107, 70, 65, 66, 58, 82, 70, 46, 76, 56, 80, 64, 48, 59, 51, 54, 65, 61, 53, 64, 50, 70, 53, 85, 61, 72, 53, 131, 64, 48, 64, 69, 66, 54, 60, 66, 57, 66, 69, 64, 49, 73, 68, 68, 53, 38, 89, 58, 55, 81, 46, 49, 72, 51, 61, 86, 73, 72, 62, 69, 61, 64, 70, 67, 60, 53, 69, 66, 41, 65, 61, 89, 66, 66, 54, 78, 60, 74, 73, 82, 55, 66, 48, 64, 61, 97, 73, 77, 70, 61, 61, 62, 70, 79, 94, 69, 61, 64, 80, 76, 74, 106, 51, 60, 72, 36, 70, 78, 57, 50, 47, 69, 48, 63, 59, 67, 55, 111, 52, 69, 70, 61, 60, 71, 81, 95, 64, 78, 58, 41, 71, 80, 61, 51, 73, 62, 77, 76, 59, 66, 43, 68, 73, 73, 63, 63, 52, 52, 76, 50, 64, 83, 64, 74, 69, 56, 47, 67, 49, 71, 120, 82, 86, 58, 55, 58, 93, 63, 51, 68, 70, 50, 82, 45, 71, 59, 60, 93, 61, 90, 62, 52, 80, 72, 56, 64, 54, 76, 80, 55, 70, 55, 54, 73, 84, 80, 51, 55, 67, 58, 66, 54, 49, 62, 93, 64, 63, 58, 64, 43, 60, 57, 77, 70, 42, 48, 57, 58, 69, 83, 55, 70, 66, 69, 66, 79, 64, 50, 66, 51, 50, 59, 58, 69, 86, 67, 86, 74, 70, 49, 67, 72, 78, 63, 63, 51, 101, 37, 60, 88, 46, 58, 67, 69, 74, 54, 58, 69, 79, 84, 64, 70, 96, 62, 148, 81, 72, 65, 63, 97, 74, 58, 58, 70, 62, 57, 64, 54, 88, 59, 62, 79, 75, 62, 85, 73, 45, 58, 74, 65, 62, 76, 62, 46, 79, 56, 81, 68, 55, 53, 65, 64, 58, 54, 99, 77, 71, 96, 47, 54, 68, 66, 68, 67, 79, 115, 52, 58, 81, 57, 76, 51, 60, 70, 101, 53, 80, 73, 53, 47, 61, 52, 52, 56, 70, 62, 53, 43, 44, 64, 56, 66, 97, 66, 77, 82, 53, 64, 76, 60, 79, 102, 65, 96, 99, 78, 85, 59, 61, 65, 70, 67, 61, 64, 59, 82, 52, 83, 63, 53, 63, 72, 73, 72, 67, 63, 68, 60, 79, 77, 76, 70, 72, 74, 56, 57, 70, 81, 76, 60, 81, 60, 57, 82, 51, 42, 49, 66, 62, 74, 51, 69, 78, 62, 59, 58, 59, 51, 52, 46, 55, 49, 52, 86, 69, 68, 48, 55, 65, 51, 45, 91, 59, 96, 74, 72, 93, 45, 73, 91, 83, 71, 55, 63, 49, 70, 65, 47, 51, 64, 34, 70, 31, 57, 66, 66, 91, 61, 46, 83, 52, 64, 68, 73, 56, 73, 68, 42, 78, 59, 62, 67, 84, 52, 74, 47, 67, 78, 79, 69, 73, 103, 80, 95, 62, 63, 60, 59, 57, 55, 60, 67, 71, 84, 77, 57, 69, 67, 54, 68, 74, 77, 69, 57, 127, 56, 65, 50, 86, 58, 52, 83, 56, 78, 65, 55, 56, 85, 65, 52, 44, 74, 61, 54, 76, 56, 71, 63, 66, 64, 74, 56, 71, 48, 41, 52, 98, 120, 75, 62, 74, 49, 66, 66, 68, 61, 60, 64, 68, 59, 83, 60, 73, 82, 58, 73, 58, 70, 79, 61, 59, 52, 62, 49, 75, 99, 51, 61, 71, 67, 76, 40, 54, 61, 85, 40, 73, 67, 57, 59, 117, 57, 61, 87, 54, 81, 63, 71, 57, 61, 72, 67, 61, 50, 31, 54, 78, 49, 78, 52, 63, 57, 60, 73, 45, 62, 55, 51, 68, 76, 100, 88, 71, 59, 55, 52, 89, 66, 71, 73, 42, 47, 66, 59, 59, 47, 67, 46, 57, 76, 74, 71, 82, 74, 59, 63, 55, 63, 62, 57, 71, 75, 62, 41, 53, 62, 78, 52, 39, 75, 41, 81, 67, 57, 55, 77, 102, 48, 52, 62, 52, 77, 63, 38, 93, 77, 55, 46, 74, 55, 58, 82, 60, 71, 55, 55, 65, 88, 56, 70, 56, 64, 70, 101, 66, 67, 69, 67, 59, 71, 63, 66, 78, 66, 64, 53, 63, 84, 47, 70, 66, 71, 74, 86, 78, 52, 60, 41, 65, 110, 58, 57, 83, 92, 81, 52, 65, 60, 70, 70, 59, 82, 102, 48, 66, 49, 94, 73, 59, 30, 58, 57, 62, 60, 71, 66, 58, 70, 43, 51, 55, 64, 67, 83, 51, 63, 76, 83, 73, 56, 60, 74, 54, 57, 72, 41, 46, 78, 57, 64, 71, 59, 65, 73, 65, 46, 75, 63, 59, 65, 66, 68, 51, 47, 79, 65, 61, 50, 66, 79, 91, 70, 93, 64, 113, 55, 54, 88, 48, 70, 56, 99, 57, 40, 53, 65, 56, 66, 67, 69, 87, 60, 50, 60, 97, 54, 94, 65, 84, 60, 81, 60, 52, 59, 60, 52, 88, 68, 97, 47, 81, 70, 51, 96, 50, 111, 61, 75, 58, 43, 61, 66, 56, 56, 90, 73, 74, 60, 59, 96, 99, 60, 60, 91, 56, 53, 46, 71, 81, 57, 69, 57, 65, 74, 36, 71, 93, 42, 49, 96, 75, 55, 74, 44, 64, 67, 53, 90, 93, 59, 80, 78, 64, 34, 58, 61, 62, 61, 72, 60, 70, 83, 74, 89, 72, 74, 75, 88, 43, 83, 66, 76, 65, 53, 94, 75, 63, 77, 66, 68, 59, 70, 74, 55, 79, 72, 81, 58, 54, 71, 80, 49, 67, 67, 58, 63, 74, 66, 99, 63, 40, 82, 64, 75, 56, 59, 71, 53, 71, 54, 53, 89, 51, 74, 63, 58, 48, 69, 88, 57, 39, 101, 84, 59, 81, 47, 51, 56, 55, 68, 77, 65, 123, 56, 69, 73, 89, 56, 63, 52, 67, 69, 102, 64, 73, 76, 71, 67, 57, 73, 71, 59, 60, 56, 93, 90, 52, 56, 68, 54, 64, 65, 58, 51, 85, 66, 68, 52, 60, 49, 84, 61, 56, 54, 52, 71, 63, 68, 52, 63, 45, 67, 77, 59, 73, 80, 135, 61, 70, 77, 121, 67, 75, 38, 49, 72, 71, 59, 83, 73, 49, 118, 79, 60, 62, 68, 79, 54, 68, 60, 74, 69, 75, 48, 59, 66, 94, 57, 53, 64, 62, 118, 57, 49, 69, 56, 68, 41, 71, 64, 51, 89, 72, 45, 73, 45, 77, 104, 94, 67, 55, 81, 69, 64, 91, 87, 64, 50, 68, 72, 73, 86, 61, 62, 75, 58, 121, 62, 56, 85, 64, 59, 65, 61, 83, 50, 55, 55, 65, 54, 71, 85, 82, 62, 53, 66, 71, 49, 55, 69, 67, 58, 70, 73, 77, 69, 79, 56, 47, 55, 65, 69, 91, 63, 76, 61, 66, 56, 45, 65, 80, 85, 49, 65, 62, 61, 65, 55, 51, 45, 65, 68, 56, 66, 57, 53, 62, 65, 76, 103, 75, 80, 54, 48, 72, 79, 63, 60, 58, 64, 57, 52, 87, 64, 58, 23, 62, 59, 41, 70, 54, 109, 79, 47, 77, 81, 50, 126, 53, 56, 60, 79, 60, 40, 54, 76, 96, 73, 68, 67, 78, 73, 56, 71, 63, 41, 69, 63, 77, 72, 79, 51, 74, 57, 72, 53, 87, 67, 124, 57, 48, 43, 64, 77, 77, 64, 42, 74, 55, 87, 58, 75, 52, 69, 69, 73, 79, 55, 54, 64, 70, 52, 58, 75, 66, 58, 54, 78, 67, 38, 58, 50, 88, 63, 48, 65, 87, 64, 65, 55, 101, 73, 66, 75, 76, 63, 54, 52, 74, 64, 75, 57, 82, 49, 56, 78, 60, 69, 52, 66, 77, 87, 65, 56, 66, 56, 70, 54, 72, 59, 52, 60, 78, 54, 63, 37, 57, 50, 51, 54, 62, 68, 64, 59, 48, 44, 64, 55, 74, 64, 61, 52, 66, 65, 62, 74, 80, 70, 68, 32, 57, 112, 67, 63, 72, 82, 52, 70, 86, 68, 64, 58, 54, 59, 54, 53, 67, 57, 49, 67, 60, 76, 65, 61, 66, 61, 57, 75, 69, 82, 74, 54, 56, 53, 77, 73, 53, 101, 82, 79, 47, 71, 76, 57, 55, 55, 63, 49, 67, 64, 112, 71, 59, 74, 62, 57, 70, 78, 68, 91, 52, 56, 61, 74, 58, 58, 74, 47, 84, 68, 58, 94, 70, 49, 48, 64, 69, 73, 58, 72, 61, 54, 70, 62, 61, 94, 73, 80, 54, 59, 53, 69, 69, 75, 61, 82, 60, 64, 70, 56, 52, 42, 111, 69, 48, 55, 75, 66, 45, 71, 93, 72, 72, 51, 58, 53, 55, 61, 84, 84, 64, 67, 51, 44, 44, 59, 58, 73, 88, 59, 63, 76, 51, 76, 51, 69, 71, 73, 63, 54, 59, 72, 59, 65, 63, 61, 84, 82, 95, 60, 55, 76, 69, 55, 57, 80, 73, 73, 54, 66, 69, 59, 70, 72, 49, 65, 70, 62, 66, 67, 88, 94, 79, 53, 61, 93, 62, 50, 99, 59, 45, 66, 48, 56, 55, 56, 61, 65, 96, 81, 59, 59, 55, 57, 69, 50, 50, 59, 68, 64, 41, 80, 91, 79, 66, 48, 49, 87, 64, 70, 45, 75, 55, 58, 60, 56, 41, 59, 78, 59, 66, 59, 65, 104, 52, 90, 69, 68, 100, 70, 101, 82, 96, 69, 53, 52, 89, 59, 88, 60, 77, 54, 57, 90, 72, 62, 69, 66, 80, 58, 64, 66, 61, 52, 53, 49, 80, 64, 55, 61, 54, 83, 93, 68, 65, 69, 53, 61, 89, 58, 84, 57, 60, 58, 73, 54, 60, 71, 66, 77, 71, 79, 56, 60, 66, 52, 63, 69, 86, 86, 59, 52, 51, 58, 57, 54, 67, 70, 67, 58, 65, 71, 48, 71, 69, 58, 75, 44, 73, 104, 66, 52, 64, 71, 64, 57, 73, 98, 60, 73, 60, 91, 61, 74, 59, 61, 57, 55, 83, 54, 67, 74, 59, 84, 71, 63, 69, 61, 88, 56, 51, 59, 81, 59, 73, 63, 87, 80, 79, 67, 61, 63, 69, 64, 53, 59, 54, 62, 55, 68, 64, 71, 56, 48, 58, 64, 74, 85, 61, 58, 64, 87, 60, 78, 68, 62, 70, 67, 82, 71, 85, 68, 67, 54, 61, 63, 73, 58, 68, 60, 69, 82, 77, 79, 49, 122, 65, 46, 83, 72, 74, 58, 73, 66, 75, 72, 86, 67, 89, 88, 70, 76, 113, 50, 79, 48, 58, 59, 78, 61, 63, 62, 59, 60, 77, 44, 83, 69, 70, 58, 61, 52, 60, 73, 78, 58, 61, 85, 65, 53, 48, 102, 78, 62, 51, 69, 60, 48, 38, 64, 77, 72, 61, 56, 66, 56, 49, 68, 56, 70, 113, 65, 56, 70, 65, 92, 60, 43, 85, 66, 55, 54, 62, 72, 69, 70, 72, 47, 82, 89, 40, 65, 49, 99, 74, 65, 60, 82, 70, 66, 60, 77, 68, 82, 63, 58, 87, 61, 68, 96, 68, 62, 77, 70, 41, 69, 52, 81, 41, 68, 79, 68, 73, 55, 73, 103, 56, 71, 58, 101, 44, 81, 73, 57, 66, 66, 63, 66, 47, 57, 65, 79, 54, 78, 68, 58, 49, 64, 66, 60, 71, 76, 77, 86, 53, 72, 62, 69, 62, 60, 50, 66, 55, 73, 55, 91, 61, 56, 80, 81, 65, 88, 37, 72, 71, 70, 75, 58, 61, 44, 66, 58, 55, 70, 63, 62, 65, 57, 50, 73, 78, 76, 50, 65, 97, 78, 49, 58, 65, 51, 70, 64, 70, 67, 61, 51, 75, 71, 75, 65, 77, 65, 72, 85, 56, 70, 65, 58, 67, 81, 54, 65, 62, 68, 71, 56, 78, 59, 74, 66, 93, 62, 61, 62, 69, 74, 61, 84, 74, 86, 83, 48, 76, 67, 56, 67, 68, 73, 75, 43, 69, 71, 80, 48, 62, 51, 72, 83, 87, 47, 54, 48, 60, 47, 53, 67, 54, 65, 60, 52, 56, 57, 74, 68, 74, 87, 74, 69, 99, 79, 57, 69, 60, 63, 91, 69, 44, 59, 76, 65, 80, 78, 77, 73, 68, 64, 52, 67, 64, 49, 71, 38, 71, 69, 59, 52, 51, 55, 87, 102, 64, 56, 83, 60, 65, 78, 69, 64, 58, 63, 75, 58, 55, 73, 79, 70, 55, 78, 48, 46, 73, 71, 72, 57, 50, 51, 82, 72, 48, 88, 131, 51, 54, 46, 124, 50, 65, 61, 66, 57, 59, 57, 58, 60, 67, 118, 62, 67, 70, 59, 55, 69, 47, 65, 58, 56, 64, 54, 60, 58, 69, 75, 76, 72, 50, 84, 62, 46, 63, 82, 30, 48, 69, 67, 64, 72, 104, 63, 44, 57, 70, 120, 72, 76, 62, 56, 48, 74, 39, 70, 49, 61, 65, 62, 56, 80, 87, 71, 75, 62, 99, 51, 69, 49, 65, 64, 61, 86, 75, 80, 76, 71, 51, 79, 63, 66, 78, 66, 76, 48, 59, 79, 52, 61, 66, 67, 47, 58, 59, 65, 52, 63, 50, 56, 65, 66, 82, 53, 79, 51, 40, 63, 62, 67, 68, 75, 66, 56, 66, 58, 88, 60, 59, 49, 70, 62, 69, 70, 51, 43, 72, 65, 66, 107, 73, 61, 67, 61, 45, 83, 80, 67, 63, 63, 61, 39, 48, 62, 60, 64, 58, 84, 64, 65, 68, 87, 56, 53, 81, 59, 61, 128, 53, 61, 45, 54, 73, 56, 57, 70, 72, 78, 66, 67, 74, 76, 57, 62, 68, 56, 70, 92, 60, 65, 57, 57, 75, 69, 47, 51, 70, 70, 130, 66, 49, 60, 73, 66, 65, 73, 45, 59, 70, 68, 54, 76, 58, 50, 49, 60, 60, 88, 81, 53, 77, 79, 72, 72, 69, 68, 50, 46, 111, 57, 77, 52, 92, 56, 61, 81, 75, 57, 68, 56, 79, 61, 78, 68, 82, 65, 59, 50, 63, 60, 50, 48, 82, 62, 80, 90, 46, 71, 53, 89, 46, 87, 61, 75, 67, 68, 69, 52, 47, 63, 69, 44, 55, 50, 74, 61, 80, 67, 70, 50, 67, 81, 63, 65, 69, 61, 59, 56, 73, 56, 76, 72, 54, 76, 50, 65, 74, 73, 37, 48, 60, 107, 82, 65, 66, 87, 55, 74, 78, 72, 71, 49, 64, 72, 63, 55, 53, 70, 78, 54, 78, 76, 60, 42, 53, 75, 52, 49, 73, 85, 92, 62, 58, 53, 74, 75, 76, 89, 64, 66, 48, 56, 68, 77, 66, 39, 73, 64, 54, 43, 121, 68, 61, 71, 58, 60, 54, 68, 96, 102, 74, 57, 60, 79, 58, 73, 48, 57, 58, 55, 69, 87, 66, 54, 46, 60, 66, 67, 72, 51, 71, 57, 60, 60, 66, 99, 55, 53, 54, 67, 61, 45, 44, 63, 56, 70, 84, 75, 67, 52, 61, 48, 83, 68, 51, 70, 78, 66, 60, 91, 106, 41, 61, 61, 85, 56, 75, 81, 83, 51, 58, 64, 53, 59, 54, 47, 70, 68, 84, 73, 54, 57, 64, 60, 82, 73, 68, 43, 57, 58, 59, 46, 67, 50, 59, 73, 88, 69, 95, 52, 44, 74, 62, 63, 68, 66, 35, 85, 62, 68, 63, 65, 89, 93, 46, 59, 67, 96, 62, 69, 70, 86, 76, 65, 46, 92, 50, 41, 74, 61, 52, 63, 55, 83, 51, 64, 57, 65, 70, 52, 69, 62, 57, 36, 80, 68, 66, 80, 79, 65, 63, 59, 57, 85, 74, 58, 59, 73, 64, 58, 59, 60, 69, 61, 73, 79, 54, 86, 48, 64, 56, 59, 87, 79, 69, 68, 68, 77, 112, 70, 89, 58, 87, 59, 65, 41, 96, 46, 101, 58, 80, 76, 67, 56, 67, 68, 57, 57, 82, 58, 63, 59, 70, 70, 52, 63, 84, 70, 75, 88, 47, 73, 82, 52, 49, 88, 48, 65, 93, 74, 96, 69, 61, 70, 72, 62, 49, 52, 68, 66, 48, 67, 65, 54, 68, 44, 48, 63, 67, 54, 72, 68, 45, 53, 60, 61, 83, 63, 58, 92, 59, 81, 59, 86, 65, 46, 65, 52, 76, 101, 49, 57, 98, 58, 48, 63, 82, 89, 40, 48, 67, 83, 56, 78, 82, 76, 69, 52, 61, 58, 41, 86, 56, 57, 79, 45, 57, 46, 73, 64, 66, 68, 79, 44, 76, 58, 53, 72, 87, 59, 73, 62, 44, 63, 71, 53, 73, 78, 67, 58, 58, 89, 71, 54, 73, 69, 58, 71, 82, 62, 75, 61, 52, 71, 57, 61, 62, 73, 48, 63, 75, 56, 59, 68, 51, 55, 59, 70, 61, 41, 74, 70, 61, 73, 62, 114, 55, 56, 65, 72, 68, 62, 75, 63, 69, 90, 62, 72, 76, 60, 72, 55, 64, 58, 67, 48, 44, 61, 51, 66, 60, 49, 94, 59, 51, 55, 70, 63, 67, 70, 85, 72, 73, 76, 77, 74, 66, 71, 68, 62, 63, 81, 68, 71, 62, 71, 68, 70, 62, 66, 81, 59, 67, 81, 65, 58, 54, 60, 68, 71, 128, 69, 60, 70, 75, 98, 72, 63, 64, 68, 60, 84, 71, 63, 72, 84, 77, 56, 54, 108, 36, 60, 53, 87, 68, 59, 47, 54, 65, 47, 63, 58, 83, 44, 70, 56, 74, 57, 68, 79, 56, 65, 70, 55, 69, 67, 67, 53, 81, 68, 55, 58, 65, 65, 60, 86, 54, 63, 45, 126, 63, 59, 48, 45, 68, 59, 72, 60, 72, 53, 40, 60, 53, 78, 85, 61, 47, 69, 74, 54, 62, 65, 72, 77, 65, 77, 75, 58, 64, 60, 64, 61, 66, 70, 64, 81, 67, 67, 68, 88, 66, 77, 56, 49, 66, 67, 85, 68, 90, 50, 65, 70, 45, 52, 59, 64, 55, 60, 74, 79, 58, 63, 54, 71, 109, 71, 67, 59, 62, 74, 56, 64, 73, 67, 61, 60, 47, 70, 81, 70, 54, 78, 59, 73, 55, 86, 88, 60, 80, 76, 59, 53, 92, 56, 48, 73, 83, 54, 67, 72, 103, 50, 49, 59, 49, 60, 62, 67, 62, 83, 87, 79, 63, 66, 58, 57, 61, 68, 55, 63, 72, 63, 72, 50, 49, 54, 57, 77, 93, 51, 87, 70, 56, 66, 38, 52, 72, 53, 49, 38, 59, 61, 70, 66, 74, 84, 107, 57, 110, 75, 56, 50, 70, 77, 59, 68, 51, 75, 44, 48, 56, 89, 53, 61, 67, 70, 71, 59, 63, 69, 79, 73, 79, 58, 48, 51, 74, 50, 67, 96, 74, 42, 51, 68, 77, 57, 64, 73, 50, 60, 83, 54, 60, 76, 55, 59, 54, 72, 57, 53, 54, 75, 57, 61, 59, 64, 94, 72, 78, 61, 114, 66, 61, 57, 116, 54, 63, 75, 59, 67, 68, 72, 61, 49, 63, 116, 53, 50, 63, 59, 75, 59, 67, 63, 71, 62, 68, 56, 62, 72, 59, 45, 64, 67, 62, 69, 77, 70, 64, 87, 54, 48, 79, 60, 55, 59, 85, 58, 76, 66, 58, 123, 67, 47, 47, 79, 54, 53, 65, 50, 60, 57, 64, 85, 71, 87, 89, 51, 74, 64, 121, 49, 72, 80, 74, 47, 82, 86, 83, 62, 61, 92, 50, 57, 80, 78, 67, 70, 60, 58, 41, 45, 50, 67, 76, 69, 72, 47, 50, 70, 63, 62, 65, 55, 65, 73, 64, 46, 54, 46, 64, 67, 57, 97, 57, 81, 84, 48, 79, 50, 66, 57, 56, 63, 65, 85, 52, 80, 88, 37, 73, 57, 61, 95, 53, 86, 66, 57, 63, 49, 76, 44, 56, 60, 58, 39, 57, 55, 71, 65, 68, 98, 44, 72, 70, 84, 57, 66, 94, 61, 51, 127, 51, 67, 61, 60, 59, 91, 70, 59, 57, 46, 68, 68, 61, 82, 81, 51, 69, 68, 84, 56, 67, 59, 71, 54, 68, 55, 60, 69, 82, 63, 117, 65, 60, 51, 56, 48, 63, 84, 43, 81, 79, 61, 60, 77, 55, 53, 51, 75, 53, 66, 51, 60, 55, 54, 54, 66, 50, 66, 58, 61, 71, 82, 53, 53, 87, 53, 55, 62, 74, 74, 64, 69, 76, 51, 60, 64, 71, 66, 86, 50, 50, 56, 46, 69, 67, 58, 63, 63, 70, 47, 80, 73, 56, 75, 67, 94, 63, 45, 58, 50, 53, 64, 66, 67, 72, 47, 64, 57, 74, 54, 87, 56, 68, 79, 82, 80, 42, 48, 39, 59, 78, 70, 59, 52, 83, 68, 72, 89, 97, 64, 82, 87, 62, 102, 52, 57, 49, 96, 62, 73, 60, 80, 71, 57, 82, 53, 64, 50, 64, 61, 69, 59, 59, 94, 69, 53, 59, 48, 66, 47, 62, 85, 76, 80, 77, 58, 84, 75, 67, 90, 65, 66, 52, 85, 62, 61, 56, 55, 71, 58, 67, 50, 106, 48, 52, 83, 53, 50, 65, 87, 77, 99, 64, 60, 55, 74, 65, 51, 68, 64, 97, 68, 54, 60, 76, 49, 59, 77, 59, 53, 48, 68, 52, 86, 54, 77, 65, 60, 69, 62, 63, 61, 56, 69, 43, 55, 67, 76, 62, 81, 57, 61, 55, 53, 92, 57, 63, 66, 64, 51, 71, 75, 83, 56, 56, 55, 68, 60, 42, 62, 53, 42, 57, 56, 56, 59, 58, 44, 64, 96, 94, 65, 63, 95, 73, 73, 58, 77, 54, 74, 55, 62, 76, 74, 67, 57, 65, 61, 64, 73, 84, 61, 70, 71, 40, 75, 83, 64, 70, 93, 55, 98, 75, 70, 67, 89, 67, 65, 53, 84, 86, 101, 72, 107, 55, 44, 51, 107, 54, 63, 82, 64, 66, 65, 55, 61, 63, 64, 76, 73, 68, 79, 80, 48, 46, 62, 75, 83, 42, 82, 88, 70, 60, 74, 85, 85, 55, 84, 64, 48, 51, 52, 61, 65, 45, 73, 62, 67, 60, 76, 64, 65, 62, 76, 83, 59, 67, 46, 73, 61, 121, 61, 65, 72, 109, 85, 75, 76, 71, 50, 79, 56, 97, 90, 73, 46, 60, 74, 67, 52, 88, 68, 51, 66, 72, 64, 62, 57, 107, 44, 70, 73, 64, 80, 85, 51, 51, 86, 63, 86, 68, 79, 105, 87, 58, 59, 97, 50, 49, 73, 54, 52, 69, 80, 55, 72, 64, 68, 68, 66, 71, 64, 68, 55, 67, 70, 69, 66, 77, 63, 66, 99, 57, 53, 68, 77, 60, 64, 38, 78, 56, 89, 64, 56, 51, 52, 75, 103, 91, 75, 69, 65, 38, 49, 60, 57, 60, 66, 77, 69, 54, 90, 52, 82, 41, 69, 96, 64, 62, 49, 77, 81, 43, 64, 52, 60, 80, 81, 76, 87, 102, 67, 50, 64, 62, 63, 64, 67, 68, 65, 63, 50, 75, 52, 70, 58, 59, 78, 64, 52, 76, 61, 77, 58, 36, 62, 62, 74, 48, 58, 71, 54, 78, 74, 35, 64, 77, 74, 59, 70, 58, 59, 69, 52, 70, 74, 56, 106, 70, 54, 70, 67, 57, 70, 60, 60, 60, 54, 71, 64, 58, 48, 54, 49, 76, 62, 48, 43, 57, 72, 73, 80, 53, 62, 79, 53, 53, 69, 80, 64, 75, 65, 78, 52, 62, 62, 76, 62, 69, 79, 58, 67, 63, 91, 57, 44, 52, 72, 67, 74, 62, 96, 53, 63, 75, 65, 66, 60, 62, 70, 48, 61, 89, 64, 41, 68, 60, 89, 62, 64, 87, 64, 54, 81, 65, 65, 63, 75, 63, 51, 70, 121, 53, 74, 51, 68, 62, 74, 61, 72, 63, 60, 61, 49, 92, 65, 56, 56, 54, 68, 76, 71, 79, 70, 91, 72, 59, 61, 73, 75, 61, 56, 68, 71, 47, 67, 56, 79, 74, 50, 54, 116, 46, 57, 47, 48, 61, 52, 56, 66, 53, 63, 59, 52, 57, 88, 71, 63, 47, 77, 50, 65, 53, 54, 77, 81, 64, 82, 82, 80, 63, 58, 49, 66, 96, 69, 68, 66, 79, 54, 58, 72, 56, 70, 60, 72, 65, 63, 57, 87, 82, 69, 64, 83, 78, 66, 54, 64, 54, 57, 63, 73, 48, 71, 46, 56, 109, 62, 67, 71, 64, 56, 64, 63, 40, 52, 64, 55, 61, 70, 57, 49, 73, 50, 110, 71, 69, 63, 63, 54, 71, 66, 55, 68, 69, 71, 55, 83, 76, 61, 80, 67, 64, 48, 62, 57, 51, 69, 78, 74, 64, 71, 41, 54, 57, 66, 65, 62, 63, 56, 52, 64, 74, 62, 52, 52, 83, 54, 72, 85, 74, 74, 62, 88, 81, 56, 54, 77, 52, 57, 78, 62, 74, 80, 71, 62, 69, 74, 82, 75, 114, 69, 51, 69, 61, 59, 54, 65, 61, 59, 79, 69, 56, 79, 53, 72, 73, 59, 47, 65, 75, 64, 94, 71, 51, 58, 65, 66, 61, 73, 78, 77, 66, 71, 62, 43, 65, 68, 65, 63, 63, 57, 66, 55, 65, 105, 65, 79, 70, 64, 67, 49, 66, 85, 68, 48, 90, 53, 81, 79, 63, 59, 69, 52, 65, 58, 62, 59, 93, 64, 68, 72, 50, 56, 66, 62, 67, 87, 63, 68, 76, 58, 74, 73, 58, 65, 46, 96, 54, 70, 45, 60, 59, 55, 69, 60, 74, 85, 119, 51, 59, 67, 58, 65, 76, 63, 62, 73, 69, 53, 48, 62, 86, 64, 75, 60, 73, 65, 65, 78, 78, 52, 53, 52, 58, 57, 66, 49, 43, 56, 62, 52, 46, 63, 60, 60, 84, 75, 103, 60, 45, 54, 64, 81, 65, 48, 61, 53, 60, 59, 66, 54, 68, 54, 64, 57, 53, 57, 77, 56, 53, 62, 84, 62, 54, 60, 64, 55, 66, 90, 82, 60, 88, 70, 91, 76, 88, 62, 72, 66, 53, 52, 79, 63, 60, 73, 63, 78, 62, 51, 54, 87, 65, 50, 56, 62, 56, 66, 67, 51, 58, 52, 74, 56, 63, 59, 54, 59, 70, 61, 34, 63, 58, 69, 57, 59, 52, 65, 56, 61, 59, 55, 73, 76, 51, 82, 60, 61, 59, 57, 58, 66, 56, 67, 71, 70, 48, 60, 52, 58, 70, 53, 80, 61, 55, 71, 71, 68, 95, 61, 64, 64, 78, 65, 92, 74, 89, 83, 66, 65, 77, 69, 54, 60, 56, 57, 64, 84, 57, 67, 63, 63, 44, 71, 66, 72, 51, 64, 77, 59, 53, 53, 86, 52, 62, 72, 61, 48, 58, 76, 56, 77, 82, 65, 60, 72, 77, 57, 79, 59, 54, 66, 56, 67, 82, 63, 50, 60, 89, 66, 96, 68, 65, 79, 67, 83, 67, 74, 59, 71, 58, 62, 67, 55, 64, 93, 80, 58, 53, 45, 66, 68, 78, 89, 67, 82, 73, 101, 50, 78, 54, 56, 58, 56, 63, 66, 56, 46, 79, 53, 55, 71, 60, 67, 59, 60, 68, 57, 61, 55, 61, 70, 66, 61, 75, 65, 70, 63, 49, 60, 71, 56, 55, 67, 63, 68, 67, 63, 56, 80, 60, 81, 59, 89, 81, 64, 96, 98, 60, 66, 74, 63, 61, 86, 93, 63, 67, 63, 49, 64, 63, 77, 78, 55, 59, 76, 67, 59, 58, 62, 80, 78, 60, 77, 63, 85, 78, 67, 57, 68, 67, 55, 49, 54, 50, 66, 46, 97, 83, 55, 56, 62, 91, 41, 50, 50, 65, 76, 85, 65, 61, 58, 78, 128, 67, 51, 62, 59, 65, 51, 66, 75, 117, 141, 59, 59, 51, 51, 68, 96, 72, 68, 58, 77, 59, 66, 107, 57, 56, 74, 59, 73, 52, 57, 89, 59, 72, 60, 56, 43, 82, 70, 66, 60, 62, 67, 68, 74, 60, 112, 70, 71, 77, 70, 52, 62, 60, 60, 51, 74, 86, 68, 51, 59, 61, 74, 65, 62, 49, 57, 63, 58, 55, 72, 56, 62, 55, 59, 70, 82, 47, 63, 68, 84, 51, 66, 61, 76, 70, 58, 46, 57, 73, 70, 67, 60, 63, 65, 48, 63, 73, 87, 56, 58, 76, 90, 57, 42, 63, 67, 55, 55, 83, 50, 53, 73, 59, 51, 50, 62, 67, 48, 73, 58, 91, 62, 75, 50, 44, 105, 56, 60, 77, 66, 55, 69, 68, 107, 53, 69, 55, 73, 72, 57, 97, 82, 81, 96, 69, 64, 62, 81, 70, 67, 76, 66, 78, 55, 78, 74, 68, 64, 62, 61, 73, 60, 87, 69, 72, 66, 71, 55, 69, 57, 94, 56, 102, 59, 92, 73, 65, 62, 64, 63, 55, 64, 56, 67, 98, 70, 67, 56, 69, 104, 55, 83, 60, 56, 77, 58, 49, 54, 61, 52, 59, 65, 75, 55, 58, 57, 61, 56, 72, 73, 64, 55, 60, 60, 63, 57, 57, 60, 71, 68, 70, 50, 67, 87, 74, 43, 64, 91, 59, 58, 81, 63, 69, 74, 63, 51, 62, 53, 60, 80, 66, 69, 71, 77, 60, 72, 70, 52, 55, 61, 64, 70, 62, 77, 62, 59, 90, 94, 63, 62, 51, 44, 66, 65, 64, 46, 63, 57, 49, 79, 68, 72, 57, 61, 65, 51, 64, 54, 78, 81, 69, 68, 76, 63, 55, 59, 79, 67, 58, 71, 49, 74, 81, 62, 67, 55, 64, 64, 59, 55, 74, 77, 54, 62, 49, 95, 60, 121, 57, 67, 76, 66, 76, 65, 70, 65, 85, 50, 59, 50, 55, 78, 69, 79, 56, 65, 69, 59, 57, 54, 60, 57, 60, 77, 129, 66, 51, 69, 45, 77, 57, 76, 47, 60, 60, 70, 63, 73, 66, 69, 64, 86, 43, 82, 62, 57, 57, 129, 66, 60, 72, 65, 71, 55, 57, 52, 58, 61, 71, 64, 87, 72, 59, 65, 84, 76, 61, 87, 63, 68, 50, 63, 64, 68, 53, 95, 59, 59, 50, 80, 69, 71, 73, 69, 76, 87, 57, 68, 82, 69, 66, 84, 53, 75, 50, 60, 55, 46, 66, 78, 58, 53, 54, 71, 69, 93, 65, 45, 55, 69, 78, 57, 65, 56, 95, 62, 59, 57, 64, 68, 77, 72, 87, 80, 72, 53, 60, 64, 55, 83, 66, 57, 52, 67, 64, 83, 84, 66, 61, 75, 57, 89, 74, 65, 63, 59, 78, 64, 54, 75, 59, 76, 60, 95, 90, 74, 64, 90, 76, 70, 48, 63, 53, 56, 63, 64, 65, 59, 50, 42, 64, 64, 50, 58, 63, 51, 58, 67, 50, 73, 68, 58, 83, 83, 61, 62, 86, 57, 50, 73, 51, 65, 76, 73, 74, 62, 64, 65, 63, 107, 61, 71, 62, 60, 67, 69, 73, 41, 52, 84, 97, 80, 74, 58, 41, 57, 50, 72, 68, 63, 62, 66, 69, 64, 66, 91, 76, 66, 55, 63, 57, 66, 56, 73, 58, 53, 70, 56, 70, 59, 49, 59, 31, 52, 59, 58, 62, 66, 69, 65, 83, 73, 65, 67, 70, 72, 49, 57, 56, 59, 67, 52, 81, 82, 51, 65, 81, 71, 99, 70, 80, 44, 65, 60, 74, 73, 62, 67, 56, 56, 50, 69, 57, 67, 55, 55, 55, 54, 63, 64, 62, 71, 54, 60, 73, 57, 60, 57, 67, 109, 56, 61, 56, 67, 101, 61, 71, 73, 57, 55, 60, 55, 74, 87, 58, 56, 57, 67, 75, 64, 73, 80, 71, 76, 52, 60, 61, 76, 60, 68, 57, 45, 50, 47, 70, 55, 61, 57, 83, 55, 70, 44, 70, 37, 68, 47, 72, 53, 55, 60, 68, 50, 81, 56, 70, 57, 64, 59, 64, 71, 63, 57, 59, 69, 56, 57, 66, 59, 85, 80, 54, 46, 49, 54, 74, 66, 66, 72, 58, 69, 57, 60, 54, 72, 53, 72, 61, 89, 67, 74, 62, 48, 68, 85, 60, 81, 62, 69, 62, 75, 49, 67, 61, 75, 59, 71, 68, 57, 69, 66, 98, 59, 61, 50, 80, 51, 60, 66, 64, 67, 68, 78, 86, 56, 53, 66, 54, 78, 58, 54, 65, 61, 70, 60, 69, 64, 65, 58, 73, 61, 46, 51, 47, 71, 84, 101, 55, 59, 67, 45, 75, 72, 72, 67, 56, 115, 99, 73, 63, 60, 76, 61, 72, 64, 63, 63, 69, 87, 40, 63, 60, 83, 78, 65, 59, 68, 72, 77, 49, 63, 102, 54, 46, 69, 54, 74, 56, 73, 57, 57, 87, 67, 49, 65, 69, 39, 56, 77, 121, 80, 48, 68, 56, 72, 85, 68, 55, 72, 67, 68, 65, 57, 74, 76, 71, 55, 58, 97, 65, 51, 71, 63, 41, 62, 59, 66, 61, 82, 47, 73, 58, 61, 66, 49, 70, 66, 63, 93, 68, 74, 46, 77, 68, 61, 61, 51, 63, 69, 62, 69, 60, 74, 60, 55, 61, 50, 52, 66, 67, 53, 74, 83, 65, 52, 74, 55, 79, 48, 51, 76, 86, 66, 89, 67, 65, 67, 49, 98, 69, 72, 67, 56, 64, 59, 72, 46, 68, 57, 85, 54, 95, 70, 52, 62, 68, 60, 79, 84, 58, 69, 62, 58, 48, 51, 61, 59, 56, 78, 65, 96, 64, 57, 48, 72, 81, 52, 59, 62, 64, 83, 60, 76, 75, 80, 49, 55, 56, 70, 59, 90, 54, 57, 62, 63, 41, 61, 55, 55, 60, 64, 71, 62, 88, 74, 105, 56, 66, 79, 87, 82, 55, 73, 59, 68, 61, 70, 52, 67, 69, 60, 76, 58, 67, 69, 81, 66, 59, 55, 58, 52, 64, 63, 66, 54, 64, 121, 65, 66, 63, 53, 55, 46, 71, 59, 90, 74, 79, 67, 44, 56, 56, 53, 61, 66, 63, 81, 68, 64, 61, 64, 81, 67, 57, 64, 56, 65, 66, 54, 73, 65, 72, 62, 63, 83, 52, 62, 69, 73, 58, 60, 65, 38, 52, 60, 66, 79, 47, 75, 62, 79, 61, 58, 78, 91, 62, 73, 61, 59, 83, 76, 78, 63, 57, 66, 47, 62, 50, 73, 64, 71, 76, 54, 59, 60, 56, 64, 60, 60, 82, 79, 60, 73, 80, 74, 58, 59, 45, 65, 79, 78, 53, 69, 65, 56, 62, 71, 63, 78, 61, 57, 58, 64, 64, 82, 64, 62, 98, 76, 77, 69, 43, 59, 54, 83, 60, 70, 84, 70, 67, 73, 59, 74, 62, 64, 61, 65, 69, 60, 46, 70, 58, 55, 59, 54, 78, 78, 80, 61, 87, 77, 75, 56, 77, 61, 99, 56, 62, 60, 50, 71, 67, 65, 55, 53, 45, 68, 54, 53, 63, 74, 58, 69, 49, 78, 95, 48, 78, 52, 95, 64, 84, 56, 53, 71, 56, 67, 62, 60, 84, 75, 79, 69, 72, 71, 56, 65, 72, 90, 74, 51, 65, 60, 66, 51, 59, 62, 81, 72, 68, 64, 64, 48, 59, 56, 69, 57, 57, 53, 51, 54, 64, 55, 60, 83, 50, 80, 66, 72, 79, 73, 67, 55, 55, 67, 64, 72, 52, 55, 109, 67, 50, 58, 57, 70, 85, 48, 57, 46, 52, 79, 56, 80, 70, 76, 72, 92, 47, 71, 74, 73, 56, 57, 62, 68, 47, 81, 64, 86, 50, 70, 63, 103, 75, 56, 89, 75, 56, 68, 71, 63, 61, 67, 55, 59, 72, 75, 57, 65, 48, 91, 74, 64, 47, 75, 96, 76, 82, 73, 56, 55, 104, 59, 79, 82, 85, 57, 59, 57, 61, 68, 80, 71, 50, 88, 78, 72, 67, 58, 59, 61, 83, 80, 53, 68, 37, 58, 106, 64, 103, 67, 82, 69, 45, 67, 67, 71, 79, 67, 69, 67, 66, 58, 60, 55, 48, 103, 63, 67, 70, 60, 62, 64, 68, 70, 43, 59, 61, 53, 57, 62, 71, 54, 66, 42, 61, 55, 57, 82, 63, 71, 60, 62, 77, 95, 69, 76, 64, 54, 89, 73, 62, 57, 53, 50, 63, 64, 65, 89, 54, 62, 78, 63, 57, 49, 67, 55, 58, 47, 61, 102, 65, 65, 60, 61, 63, 71, 47, 45, 54, 50, 49, 61, 73, 60, 68, 63, 86, 59, 64, 49, 64, 64, 71, 69, 65, 68, 66, 66, 82, 59, 65, 41, 70, 82, 59, 62, 63, 86, 65, 65, 61, 64, 65, 50, 83, 81, 59, 82, 52, 56, 75, 51, 68, 70, 81, 53, 66, 60, 52, 62, 111, 63, 66, 62, 63, 56, 51, 75, 78, 72, 67, 76, 62, 59, 68, 69, 73, 57, 82, 69, 64, 60, 57, 64, 82, 80, 105, 58, 76, 57, 129, 49, 82, 67, 55, 56, 55, 56, 78, 63, 54, 108, 80, 86, 67, 56, 68, 63, 58, 57, 71, 73, 52, 59, 79, 66, 63, 73, 63, 59, 71, 81, 74, 43, 71, 64, 43, 69, 58, 58, 62, 65, 81, 65, 54, 69, 57, 72, 82, 74, 65, 69, 45, 93, 58, 60, 54, 78, 58, 58, 74, 53, 62, 65, 66, 60, 71, 67, 61, 67, 62, 64, 60, 92, 64, 61, 60, 60, 52, 79, 67, 64, 81, 70, 54, 49, 94, 83, 83, 77, 100, 54, 51, 55, 56, 66, 51, 53, 64, 76, 80, 73, 54, 47, 70, 70, 93, 56, 56, 61, 86, 66, 49, 85, 77, 72, 48, 76, 66, 82, 51, 64, 54, 59, 58, 64, 121, 55, 70, 60, 56, 59, 53, 61, 73, 86, 64, 70, 72, 59, 83, 67, 114, 76, 59, 68, 65, 65, 75, 69, 77, 86, 52, 52, 67, 73, 65, 61, 50, 67, 58, 65, 54, 94, 59, 48, 68, 72, 76, 68, 54, 65, 50, 59, 46, 52, 63, 77, 86, 58, 62, 64, 61, 58, 63, 70, 77, 54, 54, 65, 58, 102, 66, 75, 58, 55, 54, 77, 53, 57, 47, 64, 57, 85, 83, 68, 67, 77, 61, 55, 59, 51, 65, 71, 68, 54, 56, 63, 52, 68, 54, 73, 59, 57, 53, 55, 57, 52, 54, 55, 83, 59, 71, 74, 64, 53, 46, 41, 91, 61, 58, 62, 64, 70, 61, 53, 82, 57, 69, 57, 70, 66, 75, 58, 61, 76, 52, 79, 70, 68, 57, 78, 63, 83, 78, 58, 62, 66, 61, 79, 59, 73, 76, 66, 110, 62, 73, 78, 64, 55, 69, 59, 73, 46, 59, 74, 67, 73, 76, 67, 59, 85, 69, 57, 78, 62, 60, 61, 79, 61, 69, 53, 59, 55, 47, 55, 50, 72, 77, 100, 52, 72, 59, 64, 65, 78, 57, 52, 73, 100, 79, 74, 51, 56, 103, 67, 78, 87, 50, 78, 57, 72, 62, 65, 60, 83, 60, 50, 74, 63, 69, 80, 65, 64, 96, 72, 63, 62, 53, 64, 60, 74, 53, 72, 89, 52, 71, 60, 70, 44, 51, 68, 110, 54, 58, 61, 57, 45, 82, 65, 62, 72, 72, 65, 88, 48, 84, 79, 70, 56, 56, 85, 77, 65, 53, 63, 52, 60, 67, 64, 56, 80, 51, 64, 83, 92, 51, 60, 82, 64, 70, 86, 73, 56, 61, 61, 69, 64, 69, 53, 59, 60, 54, 54, 56, 74, 54, 44, 65, 56, 49, 61, 75, 76, 75, 85, 94, 67, 70, 64, 60, 70, 60, 76, 63, 62, 93, 53, 67, 53, 60, 79, 60, 69, 81, 64, 76, 61, 65, 70, 64, 47, 59, 65, 77, 75, 58, 54, 48, 68, 103, 90, 68, 64, 59, 65, 63, 58, 63, 37, 58, 92, 93, 76, 47, 52, 62, 57, 103, 63, 50, 64, 73, 74, 60, 74, 55, 71, 64, 55, 65, 73, 59, 62, 74, 76, 64, 62, 56, 55, 71, 59, 72, 59, 69, 53, 69, 78, 125, 61, 67, 79, 56, 65, 70, 62, 54, 70, 56, 76, 62, 77, 53, 42, 70, 72, 64, 81, 65, 68, 47, 68, 53, 48, 75, 69, 67, 69, 71, 110, 70, 52, 59, 50, 58, 65, 75, 52, 57, 75, 75, 59, 57, 69, 56, 56, 63, 57, 75, 68, 57, 57, 65, 62, 61, 73, 55, 86, 73, 58, 65, 67, 76, 80, 47, 69, 56, 57, 60, 58, 57, 79, 69, 71, 58, 53, 68, 84, 56, 83, 60, 58, 42, 81, 61, 62, 77, 60, 71, 36, 64, 69, 58, 67, 68, 68, 54, 61, 91, 59, 54, 76, 61, 61, 59, 66, 62, 70, 55, 48, 62, 51, 83, 47, 58, 86, 59, 70, 51, 61, 65, 58, 76, 70, 73, 67, 76, 49, 50, 44, 60, 57, 61, 59, 67, 80, 69, 80, 57, 66, 77, 80, 73, 81, 62, 71, 59, 89, 68, 67, 123, 100, 49, 65, 56, 58, 62, 68, 64, 40, 54, 60, 57, 53, 75, 57, 61, 52, 92, 70, 57, 70, 87, 62, 65, 67, 77, 67, 94, 43, 57, 63, 70, 88, 69, 77, 62, 49, 44, 62, 56, 71, 47, 65, 71, 72, 56, 70, 75, 56, 71, 46, 61, 46, 49, 44, 58, 90, 57, 58, 61, 67, 52, 65, 54, 63, 55, 69, 58, 65, 66, 57, 53, 58, 63, 63, 75, 70, 52, 59, 97, 73, 52, 68, 60, 65, 70, 64, 74, 56, 55, 60, 63, 62, 48, 52, 62, 86, 61, 73, 73, 60, 70, 68, 70, 63, 63, 55, 59, 71, 65, 56, 90, 72, 83, 67, 61, 62, 73, 48, 47, 60, 50, 62, 75, 55, 68, 67, 52, 98, 70, 70, 77, 66, 42, 52, 72, 84, 62, 60, 51, 65, 56, 63, 57, 100, 83, 43, 82, 71, 64, 53, 51, 77, 61, 55, 59, 59, 76, 78, 52, 47, 61, 98, 98, 51, 73, 65, 83, 61, 75, 66, 61, 67, 107, 58, 66, 79, 78, 63, 56, 51, 54, 81, 85, 69, 70, 90, 80, 62, 68, 66, 49, 81, 59, 98, 67, 55, 45, 60, 91, 43, 96, 58, 70, 58, 57, 75, 44, 68, 72, 73, 68, 60, 47, 72, 51, 73, 64, 82, 64, 68, 61, 64, 62, 69, 79, 51, 46, 61, 60, 73, 69, 51, 56, 93, 81, 58, 69, 62, 65, 47, 58, 71, 67, 59, 80, 108, 56, 54, 54, 60, 93, 59, 67, 55, 64, 55, 71, 62, 63, 73, 55, 70, 58, 53, 64, 54, 67, 64, 57, 61, 60, 87, 71, 60, 68, 63, 58, 70, 53, 56, 83, 51, 62, 65, 48, 50, 55, 66, 65, 59, 78, 75, 50, 47, 63, 57, 58, 57, 65, 50, 67, 59, 64, 54, 72, 82, 67, 51, 71, 84, 73, 50, 52, 58, 45, 66, 92, 72, 56, 73, 64, 66, 64, 64, 54, 76, 55, 71, 69, 56, 51, 68, 107, 53, 60, 63, 77, 84, 58, 59, 79, 78, 97, 82, 56, 55, 80, 70, 49, 60, 78, 55, 66, 46, 73, 68, 82, 77, 95, 76, 53, 65, 119, 61, 71, 66, 57, 53, 71, 63, 93, 71, 58, 114, 67, 80, 51, 76, 70, 63, 60, 49, 58, 54, 56, 67, 90, 50, 53, 74, 65, 54, 67, 74, 93, 37, 70, 40, 66, 69, 41, 65, 54, 59, 66, 65, 62, 59, 63, 70, 84, 62, 60, 63, 51, 67, 64, 60, 49, 81, 64, 53, 85, 65, 60, 60, 60, 72, 63, 61, 49, 66, 60, 70, 70, 71, 62, 54, 56, 51, 50, 79, 76, 52, 64, 78, 77, 43, 75, 59, 69, 85, 73, 61, 63, 68, 78, 62, 69, 47, 64, 64, 64, 77, 62, 69, 74, 63, 93, 43, 61, 50, 77, 75, 68, 93, 53, 60, 80, 75, 80, 58, 83, 59, 55, 79, 59, 74, 98, 46, 76, 66, 66, 57, 55, 72, 68, 73, 50, 64, 93, 59, 57, 57, 105, 79, 59, 64, 51, 59, 68, 66, 71, 91, 57, 53, 52, 79, 60, 55, 57, 66, 78, 80, 65, 106, 63, 56, 48, 62, 92, 63, 73, 74, 61, 52, 55, 67, 61, 99, 79, 59, 58, 76, 60, 60, 56, 62, 78, 54, 48, 66, 77, 83, 53, 54, 53, 187, 54, 62, 85, 52, 50, 56, 73, 58, 79, 60, 66, 67, 66, 72, 37, 63, 56, 54, 64, 55, 71, 51, 68, 56, 68, 51, 76, 61, 52, 78, 66, 65, 58, 65, 65, 68, 79, 57, 59, 76, 75, 74, 46, 48, 65, 62, 66, 64, 58, 57, 76, 64, 72, 62, 69, 90, 66, 76, 59, 57, 60, 107, 59, 46, 54, 55, 50, 72, 54, 53, 67, 80, 58, 55, 45, 61, 68, 56, 53, 55, 53, 72, 75, 56, 67, 60, 77, 59, 129, 61, 67, 72, 59, 59, 70, 63, 59, 74, 62, 62, 73, 72, 55, 71, 64, 67, 59, 56, 46, 58, 62, 55, 65, 88, 69, 65, 80, 53, 59, 58, 81, 60, 63, 111, 83, 59, 60, 64, 61, 92, 60, 70, 44, 59, 65, 91, 43, 80, 46, 88, 47, 58, 50, 83, 81, 89, 57, 74, 88, 78, 53, 51, 61, 51, 68, 62, 56, 81, 75, 72, 71, 54, 76, 60, 95, 59, 117, 50, 56, 64, 71, 48, 74, 62, 50, 57, 58, 68, 73, 71, 60, 58, 73, 67, 63, 77, 85, 75, 84, 75, 59, 50, 61, 69, 61, 85, 59, 57, 40, 51, 54, 83, 70, 60, 69, 91, 68, 57, 54, 58, 67, 57, 56, 82, 71, 55, 58, 51, 66, 72, 60, 67, 74, 81, 62, 66, 60, 56, 62, 77, 87, 44, 77, 56, 111, 54, 50, 79, 98, 57, 84, 66, 97, 68, 66, 97, 55, 60, 66, 47, 59, 71, 54, 54, 65, 65, 74, 79, 98, 64, 69, 63, 68, 69, 88, 59, 58, 77, 58, 48, 60, 76, 56, 46, 63, 101, 59, 70, 54, 50, 58, 52, 99, 51, 44, 78, 72, 75, 57, 70, 83, 61, 61, 65, 56, 65, 46, 95, 59, 61, 82, 49, 60, 46, 42, 75, 49, 59, 69, 53, 65, 66, 98, 56, 70, 61, 73, 73, 62, 67, 72, 75, 56, 55, 70, 60, 49, 63, 59, 74, 58, 90, 68, 49, 52, 59, 58, 43, 70, 71, 55, 58, 63, 109, 57, 66, 52, 81, 51, 71, 55, 58, 65, 82, 82, 71, 59, 49, 108, 54, 96, 57, 60, 61, 60, 53, 46, 68, 73, 81, 57, 54, 63, 49, 43, 77, 76, 61, 54, 61, 69, 53, 77, 64, 50, 57, 63, 66, 74, 50, 58, 48, 63, 59, 57, 79, 78, 73, 53, 56, 77, 94, 53, 50, 47, 64, 73, 58, 76, 71, 56, 52, 60, 82, 63, 79, 60, 52, 66, 62, 93, 83, 67, 61, 53, 67, 89, 75, 59, 81, 64, 66, 67, 64, 86, 77, 87, 56, 58, 52, 71, 67, 47, 59, 63, 56, 66, 67, 54, 77, 54, 88, 52, 56, 82, 68, 80, 71, 50, 77, 53, 90, 63, 67, 113, 77, 70, 68, 53, 56, 55, 50, 46, 59, 46, 63, 55, 50, 70, 55, 59, 66, 72, 69, 69, 52, 70, 92, 60, 60, 70, 89, 111, 63, 61, 63, 81, 56, 55, 84, 68, 78, 66, 72, 57, 63, 79, 54, 70, 61, 46, 86, 112, 111, 73, 61, 103, 76, 56, 54, 54, 71, 63, 56, 55, 73, 74, 45, 53, 103, 51, 81, 67, 66, 77, 68, 56, 51, 49, 75, 72, 57, 93, 65, 72, 60, 65, 55, 68, 61, 49, 67, 66, 48, 85, 66, 82, 64, 76, 81, 60, 86, 65, 67, 59, 59, 61, 47, 62, 58, 72, 58, 60, 80, 44, 55, 88, 71, 39, 71, 50, 72, 53, 64, 51, 39, 52, 45, 54, 70, 60, 50, 88, 103, 73, 73, 49, 61, 68, 61, 60, 76, 48, 60, 50, 74, 63, 48, 66, 91, 62, 46, 76, 68, 64, 48, 93, 59, 66, 58, 57, 44, 65, 77, 62, 53, 62, 88, 73, 58, 47, 79, 95, 66, 81, 55, 54, 64, 88, 53, 90, 49, 82, 67, 47, 53, 60, 47, 74, 65, 74, 70, 61, 55, 61, 58, 58, 59, 43, 80, 71, 60, 57, 64, 82, 60, 80, 55, 74, 58, 68, 66, 72, 61, 68, 74, 72, 78, 42, 75, 85, 69, 37, 116, 77, 61, 67, 59, 44, 50, 66, 63, 57, 71, 67, 61, 65, 56, 56, 55, 66, 76, 60, 85, 78, 67, 51, 70, 55, 60, 61, 62, 61, 40, 67, 78, 74, 67, 67, 58, 58, 80, 100, 80, 83, 62, 65, 67, 65, 57, 57, 74, 66, 84, 56, 41, 72, 110, 72, 78, 60, 52, 64, 77, 56, 48, 69, 61, 52, 55, 49, 59, 77, 63, 55, 60, 74, 58, 73, 75, 82, 47, 45, 57, 45, 54, 64, 81, 86, 64, 54, 71, 55, 55, 73, 73, 69, 76, 65, 53, 51, 57, 74, 70, 45, 79, 49, 195, 61, 82, 67, 71, 70, 64, 69, 76, 70, 70, 88, 58, 73, 72, 55, 66, 65, 57, 90, 95, 43, 84, 56, 57, 77, 70, 68, 55, 67, 54, 52, 69, 60, 58, 87, 61, 108, 75, 71, 55, 114, 50, 53, 59, 54, 78, 62, 68, 78, 68, 75, 113, 75, 95, 49, 60, 62, 56, 57, 76, 54, 40, 56, 58, 105, 65, 62, 75, 71, 38, 69, 57, 68, 68, 60, 57, 33, 59, 45, 57, 80, 66, 75, 82, 65, 86, 81, 47, 67, 74, 44, 51, 67, 90, 45, 56, 68, 76, 62, 65, 72, 65, 72, 49, 50, 59, 60, 55, 80, 56, 66, 44, 68, 65, 61, 82, 80, 70, 58, 69, 58, 64, 56, 67, 61, 67, 68, 64, 51, 76, 70, 54, 95, 79, 67, 61, 51, 79, 67, 64, 78, 60, 55, 63, 71, 49, 49, 70, 46, 67, 101, 63, 55, 64, 58, 53, 90, 49, 61, 82, 89, 53, 77, 55, 57, 75, 93, 71, 40, 63, 70, 66, 60, 50, 52, 49, 69, 81, 72, 58, 65, 61, 114, 55, 61, 72, 59, 56, 54, 62, 62, 93, 57, 81, 50, 68, 58, 63, 72, 73, 58, 62, 55, 93, 71, 57, 56, 66, 65, 69, 68, 69, 59, 51, 64, 65, 60, 93, 79, 74, 73, 76, 74, 55, 79, 77, 68, 58, 58, 74, 68, 76, 58, 58, 52, 47, 61, 56, 69, 57, 62, 92, 68, 70, 69, 47, 79, 54, 57, 75, 78, 63, 63, 65, 64, 65, 70, 66, 48, 74, 59, 68, 60, 65, 58, 65, 77, 73, 72, 58, 78, 86, 77, 66, 37, 45, 60, 63, 75, 59, 69, 64, 44, 68, 69, 61, 77, 61, 58, 58, 78, 80, 64, 79, 58, 46, 70, 106, 67, 57, 66, 71, 50, 74, 48, 72, 92, 57, 91, 62, 58, 54, 69, 40, 42, 58, 63, 65, 67, 65, 75, 67, 66, 44, 65, 61, 67, 79, 65, 54, 71, 50, 70, 94, 82, 71, 53, 52, 75, 61, 41, 74, 54, 63, 46, 63, 69, 64, 68, 80, 65, 48, 62, 78, 62, 67, 75, 56, 66, 100, 95, 40, 51, 59, 86, 64, 82, 72, 62, 72, 53, 100, 72, 83, 60, 107, 58, 62, 60, 59, 84, 116, 61, 68, 63, 69, 59, 75, 69, 77, 63, 52, 54, 57, 66, 57, 67, 60, 78, 63, 78, 56, 98, 90, 44, 65, 62, 55, 71, 49, 60, 68, 49, 64, 62, 82, 69, 81, 81, 71, 57, 74, 86, 46, 62, 64, 47, 65, 54, 75, 55, 77, 86, 59, 61, 65, 53, 76, 72, 49, 62, 88, 59, 47, 75, 65, 62, 58, 75, 73, 65, 78, 59, 57, 72, 68, 74, 71, 61, 68, 58, 75, 56, 64, 73, 55, 67, 81, 88, 69, 87, 63, 61, 65, 87, 67, 84, 58, 76, 73, 60, 88, 64, 88, 51, 60, 83, 59, 43, 52, 59, 75, 52, 67, 66, 65, 68, 63, 48, 71, 51, 85, 77, 66, 73, 77, 61, 72, 55, 67, 63, 84, 79, 61, 63, 63, 60, 53, 110, 63, 36, 65, 68, 60, 64, 67, 52, 67, 61, 65, 66, 36, 53, 64, 54, 66, 66, 56, 59, 48, 53, 51, 52, 61, 67, 51, 66, 57, 106, 60, 80, 66, 54, 91, 68, 50, 49, 74, 64, 47, 62, 90, 58, 52, 70, 65, 69, 43, 62, 52, 57, 52, 66, 66, 59, 61, 56, 63, 64, 125, 59, 56, 64, 61, 70, 62, 61, 55, 72, 64, 63, 87, 59, 76, 57, 64, 70, 69, 55, 65, 53, 69, 61, 71, 75, 73, 76, 53, 63, 64, 62, 71, 65, 64, 49, 77, 69, 79, 77, 54, 59, 54, 81, 71, 66, 67, 64, 53, 68, 64, 53, 69, 55, 63, 76, 58, 85, 108, 61, 59, 56, 70, 82, 55, 62, 86, 84, 35, 66, 70, 72, 73, 72, 58, 64, 54, 61, 82, 54, 66, 63, 53, 93, 79, 55, 75, 67, 59, 74, 62, 69, 108, 91, 61, 71, 57, 44, 48, 79, 67, 77, 59, 54, 50, 58, 62, 78, 77, 56, 64, 64, 49, 68, 61, 58, 50, 71, 92, 69, 68, 105, 71, 52, 74, 65, 51, 53, 57, 63, 61, 69, 66, 55, 56, 58, 51, 61, 75, 73, 64, 47, 61, 47, 78, 54, 67, 93, 106, 110, 68, 61, 60, 87, 60, 46, 69, 55, 55, 50, 71, 93, 53, 93, 62, 56, 72, 59, 50, 104, 46, 62, 51, 79, 47, 53, 61, 53, 43, 77, 72, 61, 66, 73, 50, 80, 62, 59, 80, 64, 44, 67, 72, 75, 58, 57, 66, 65, 55, 81, 59, 76, 51, 63, 70, 65, 59, 59, 70, 64, 70, 87, 48, 71, 60, 59, 76, 65, 81, 72, 81, 49, 54, 70, 56, 67, 96, 57, 67, 58, 77, 69, 59, 99, 72, 72, 70, 68, 52, 67, 73, 63, 65, 65, 66, 63, 64, 56, 80, 72, 88, 50, 57, 60, 87, 97, 54, 70, 55, 77, 53, 41, 66, 48, 60, 51, 74, 63, 72, 83, 52, 61, 49, 62, 74, 65, 70, 65, 75, 83, 56, 63, 57, 47, 83, 97, 58, 72, 73, 77, 66, 85, 90, 65, 66, 103, 63, 71, 76, 64, 70, 72, 47, 69, 53, 74, 59, 69, 78, 70, 95, 67, 52, 62, 68, 73, 54, 73, 72, 65, 71, 103, 66, 107, 58, 66, 61, 60, 69, 71, 55, 83, 51, 69, 46, 73, 68, 77, 49, 60, 104, 63, 58, 63, 68, 71, 88, 86, 65, 65, 70, 52, 67, 61, 45, 55, 60, 75, 55, 57, 68, 60, 63, 45, 75, 59, 58, 63, 82, 58, 67, 49, 58, 83, 52, 62, 69, 69, 59, 56, 49, 106, 69, 59, 101, 64, 59, 76, 70, 51, 53, 49, 60, 47, 101, 78, 66, 52, 51, 54, 73, 54, 62, 49, 62, 61, 67, 50, 44, 61, 67, 69, 62, 36, 75, 73, 80, 63, 57, 70, 60, 65, 73, 71, 61, 59, 61, 65, 61, 65, 72, 70, 58, 53, 84, 61, 62, 46, 69, 69, 47, 69, 84, 62, 42, 79, 69, 57, 51, 48, 50, 74, 56, 55, 62, 77, 60, 74, 59, 59, 62, 55, 61, 62, 72, 64, 93, 72, 77, 56, 67, 72, 55, 78, 52, 71, 50, 66, 63, 67, 82, 113, 97, 77, 62, 110, 72, 70, 55, 60, 54, 68, 72, 90, 73, 69, 102, 63, 71, 65, 55, 80, 59, 60, 63, 50, 63, 58, 52, 84, 50, 77, 60, 55, 61, 80, 98, 63, 62, 58, 55, 58, 60, 56, 57, 60, 66, 74, 64, 61, 76, 43, 67, 51, 80, 38, 56, 72, 85, 66, 54, 61, 64, 48, 61, 48, 59, 88, 60, 54, 67, 56, 54, 63, 84, 63, 83, 70, 70, 48, 66, 73, 69, 76, 41, 48, 47, 57, 64, 58, 62, 85, 47, 62, 50, 65, 66, 65, 55, 63, 63, 58, 54, 62, 60, 63, 96, 76, 59, 50, 66, 67, 53, 57, 63, 83, 52, 73, 81, 74, 70, 51, 54, 67, 72, 81, 55, 48, 68, 66, 70, 96, 63, 57, 68, 66, 67, 63, 62, 76, 43, 60, 68, 52, 53, 59, 62, 105, 64, 66, 75, 74, 50, 59, 69, 55, 90, 61, 57, 68, 89, 57, 60, 58, 66, 50, 57, 38, 88, 67, 89, 58, 49, 79, 65, 77, 60, 57, 55, 54, 68, 60, 85, 58, 78, 53, 83, 74, 66, 75, 62, 63, 58, 47, 64, 70, 65, 61, 65, 59, 39, 67, 59, 67, 50, 57, 47, 81, 77, 68, 73, 85, 56, 62, 86, 51, 44, 71, 62, 61, 62, 80, 59, 63, 68, 43, 60, 51, 50, 50, 47, 75, 64, 51, 67, 68, 69, 68, 77, 50, 57, 63, 54, 68, 57, 62, 53, 54, 56, 59, 67, 92, 47, 57, 56, 63, 71, 66, 71, 71, 48, 53, 111, 54, 70, 60, 79, 63, 74, 59, 85, 66, 61, 66, 82, 66, 49, 63, 78, 67, 54, 54, 47, 59, 54, 59, 63, 57, 68, 69, 75, 62, 63, 60, 68, 38, 64, 60, 51, 67, 65, 64, 77, 67, 68, 61, 72, 41, 105, 64, 50, 74, 66, 67, 81, 69, 55, 65, 57, 51, 59, 66, 57, 68, 110, 100, 61, 60, 63, 86, 117, 73, 64, 75, 62, 69, 93, 64, 44, 53, 85, 71, 70, 46, 57, 51, 73, 60, 53, 78, 61, 60, 67, 59, 81, 64, 84, 49, 67, 68, 63, 66, 71, 80, 55, 69, 69, 113, 66, 64, 66, 63, 61, 49, 75, 80, 76, 93, 71, 78, 42, 77, 69, 55, 71, 59, 69, 71, 56, 84, 71, 73, 55, 72, 71, 59, 93, 56, 58, 70, 77, 65, 52, 110, 71, 54, 83, 63, 72, 55, 46, 71, 63, 84, 68, 70, 70, 55, 66, 63, 53, 88, 53, 75, 86, 63, 67, 108, 78, 49, 101, 45, 42, 80, 66, 60, 85, 63, 89, 87, 64, 79, 64, 71, 78, 61, 68, 66, 65, 88, 70, 79, 88, 60, 50, 71, 53, 76, 49, 70, 65, 76, 53, 93, 62, 75, 56, 74, 54, 54, 69, 62, 79, 63, 88, 41, 91, 83, 47, 63, 69, 48, 64, 103, 63, 67, 74, 65, 61, 57, 42, 54, 67, 77, 57, 66, 62, 37, 77, 48, 65, 67, 65, 57, 81, 55, 57, 68, 49, 69, 71, 64, 67, 69, 54, 76, 67, 39, 69, 76, 66, 65, 62, 76, 70, 75, 88, 60, 38, 79, 55, 44, 56, 68, 69, 40, 62, 62, 45, 69, 72, 56, 62, 57, 110, 59, 94, 42, 75, 59, 51, 41, 58, 77, 66, 69, 86, 60, 69, 81, 68, 87, 47, 49, 64, 77, 70, 74, 44, 56, 62, 95, 85, 74, 78, 67, 41, 57, 55, 52, 87, 60, 68, 71, 76, 49, 47, 55, 70, 68, 62, 71, 72, 75, 56, 56, 71, 61, 79, 82, 48, 52, 77, 75, 46, 79, 53, 66, 69, 71, 96, 63, 44, 72, 56, 59, 68, 57, 59, 68, 60, 74, 79, 58, 62, 65, 53, 90, 73, 72, 72, 48, 62, 69, 55, 55, 81, 77, 64, 57, 70, 81, 57, 65, 43, 64, 59, 40, 65, 52, 66, 70, 98, 48, 67, 74, 69, 75, 62, 44, 68, 64, 83, 78, 58, 89, 67, 52, 66, 52, 83, 75, 66, 50, 59, 67, 64, 68, 67, 58, 65, 79, 60, 66, 81, 61, 62, 62, 74, 74, 48, 84, 75, 99, 49, 75, 63, 64, 64, 59, 78, 84, 93, 81, 63, 58, 62, 61, 55, 70, 78, 48, 79, 111, 83, 62, 67, 59, 60, 44, 62, 50, 47, 88, 85, 47, 58, 54, 51, 55, 80, 46, 72, 58, 65, 75, 82, 49, 69, 60, 77, 71, 53, 59, 46, 66, 62, 61, 68, 48, 70, 57, 76, 70, 59, 65, 75, 73, 71, 47, 48, 66, 112, 70, 83, 51, 42, 70, 71, 88, 46, 37, 65, 50, 76, 75, 65, 78, 78, 75, 61, 60, 54, 67, 59, 65, 55, 67, 66, 75, 65, 56, 66, 58, 84, 54, 56, 68, 63, 80, 64, 71, 69, 49, 52, 67, 74, 49, 60, 54, 67, 75, 69, 75, 63, 69, 47, 65, 80, 61, 68, 66, 60, 74, 66, 44, 60, 63, 78, 69, 57, 79, 78, 94, 65, 66, 63, 50, 70, 73, 66, 77, 67, 86, 51, 38, 63, 63, 96, 80, 62, 74, 64, 57, 58, 58, 62, 77, 42, 58, 78, 44, 75, 47, 59, 59, 58, 79, 73, 81, 64, 54, 62, 60, 81, 85, 98, 62, 48, 59, 71, 76, 59, 62, 96, 64, 59, 54, 73, 77, 77, 56, 40, 47, 75, 60, 71, 61, 65, 69, 77, 55, 68, 59, 60, 55, 46, 68, 71, 59, 60, 70, 75, 57, 82, 79, 79, 57, 59, 54, 82, 59, 80, 49, 62, 67, 65, 58, 79, 59, 80, 64, 65, 68, 75, 48, 62, 48, 75, 53, 110, 73, 47, 53, 62, 54, 56, 80, 63, 55, 56, 60, 72, 49, 75, 74, 67, 49, 75, 53, 51, 65, 57, 53, 62, 57, 66, 48, 65, 60, 56, 68, 68, 63, 56, 92, 82, 55, 58, 60, 68, 70, 56, 78, 80, 55, 73, 66, 59, 71, 69, 56, 47, 58, 61, 72, 82, 71, 58, 97, 67, 74, 64, 48, 60, 67, 56, 66, 47, 92, 104, 68, 56, 67, 66, 78, 67, 68, 64, 48, 64, 60, 53, 62, 39, 103, 82, 54, 54, 98, 71, 69, 55, 71, 67, 68, 77, 87, 75, 82, 100, 86, 100, 62, 74, 46, 69, 63, 69, 71, 46, 75, 76, 91, 53, 62, 65, 78, 80, 48, 59, 57, 115, 61, 52, 110, 59, 50, 57, 74, 78, 53, 84, 56, 50, 79, 87, 72, 59, 77, 85, 76, 97, 71, 53, 46, 80, 58, 56, 77, 78, 43, 66, 66, 51, 52, 62, 46, 60, 52, 89, 67, 76, 70, 51, 51, 84, 46, 62, 50, 39, 49, 59, 73, 66, 91, 58, 68, 65, 71, 54, 71, 56, 54, 72, 66, 52, 69, 57, 77, 71, 68, 55, 66, 56, 88, 54, 74, 57, 84, 89, 60, 82, 58, 70, 63, 62, 64, 82, 68, 59, 61, 54, 64, 73, 70, 47, 109, 57, 66, 79, 47, 56, 99, 73, 68, 81, 74, 63, 74, 57, 95, 68, 99, 44, 59, 67, 64, 70, 71, 65, 69, 38, 61, 39, 72, 58, 75, 83, 61, 56, 88, 73, 56, 107, 56, 68, 51, 93, 86, 62, 52, 66, 54, 51, 73, 48, 71, 52, 51, 71, 59, 61, 99, 68, 55, 74, 59, 63, 58, 59, 54, 67, 62, 45, 49, 65, 69, 63, 53, 62, 74, 64, 44, 56, 60, 57, 68, 69, 66, 47, 62, 65, 60, 55, 44, 66, 77, 74, 78, 71, 55, 63, 68, 65, 82, 49, 50, 63, 61, 69, 69, 64, 76, 49, 86, 88, 49, 53, 66, 66, 80, 77, 62, 65, 84, 65, 79, 51, 57, 73, 58, 72, 56, 48, 89, 127, 53, 57, 69, 57, 65, 61, 44, 71, 97, 69, 70, 86, 62, 84, 46, 64, 63, 53, 61, 87, 67, 60, 55, 60, 58, 54, 65, 75, 50, 61, 60, 61, 95, 50, 51, 87, 62, 58, 80, 75, 70, 47, 64, 33, 77, 68, 61, 61, 90, 52, 77, 76, 55, 83, 75, 59, 78, 66, 87, 53, 59, 124, 66, 60, 54, 65, 93, 91, 31, 88, 61, 63, 62, 54, 64, 65, 78, 88, 62, 68, 71, 76, 64, 97, 59, 67, 61, 65, 60, 54, 63, 63, 67, 94, 50, 57, 60, 55, 61, 72, 62, 68, 95, 64, 127, 44, 58, 55, 63, 69, 53, 62, 67, 66, 57, 45, 82, 57, 53, 70, 65, 52, 65, 52, 74, 82, 80, 86, 66, 54, 54, 73, 51, 68, 71, 60, 63, 67, 39, 48, 47, 65, 56, 112, 62, 46, 75, 101, 69, 59, 71, 79, 62, 62, 51, 65, 45, 68, 66, 44, 87, 74, 114, 65, 61, 66, 82, 68, 44, 93, 60, 72, 66, 52, 60, 58, 86, 65, 59, 69, 79, 76, 72, 78, 57, 73, 74, 61, 69, 81, 67, 66, 59, 57, 60, 83, 57, 50, 61, 63, 68, 86, 114, 51, 71, 46, 49, 60, 78, 68, 58, 67, 73, 91, 67, 58, 63, 76, 62, 61, 79, 64, 76, 58, 77, 83, 64, 65, 131, 60, 53, 61, 65, 52, 49, 94, 67, 70, 60, 60, 66, 61, 40, 66, 63, 65, 72, 79, 74, 82, 101, 70, 53, 63, 62, 62, 60, 52, 59, 73, 103, 60, 55, 87, 51, 60, 62, 58, 68, 65, 56, 64, 85, 58, 48, 54, 72, 54, 57, 72, 59, 119, 53, 79, 73, 63, 63, 68, 76, 52, 69, 64, 81, 76, 70, 54, 71, 54, 70, 58, 57, 83, 58, 69, 73, 61, 69, 88, 70, 54, 59, 64, 62, 79, 45, 68, 67, 97, 49, 74, 47, 73, 57, 78, 65, 75, 83, 56, 76, 68, 52, 72, 54, 72, 105, 76, 59, 60, 71, 59, 45, 81, 73, 68, 64, 71, 73, 61, 70, 72, 43, 68, 71, 79, 50, 71, 64, 58, 56, 98, 54, 78, 59, 63, 84, 44, 58, 110, 62, 72, 65, 63, 46, 98, 78, 58, 67, 62, 63, 60, 57, 40, 81, 89, 57, 63, 49, 45, 63, 70, 63, 60, 80, 69, 62, 70, 66, 68, 72, 96, 71, 68, 84, 73, 56, 64, 62, 56, 57, 34, 56, 77, 42, 45, 51, 53, 46, 64, 60, 76, 82, 85, 60, 59, 65, 64, 53, 64, 48, 65, 68, 50, 63, 101, 83, 39, 67, 78, 87, 95, 75, 48, 69, 56, 101, 66, 65, 82, 57, 70, 121, 77, 60, 61, 79, 53, 61, 58, 49, 67, 81, 56, 51, 84, 52, 51, 56, 72, 64, 97, 64, 61, 67, 99, 51, 50, 65, 71, 72, 52, 66, 48, 75, 52, 51, 50, 83, 58, 65, 65, 42, 48, 62, 65, 90, 65, 50, 50, 50, 72, 71, 88, 51, 87, 51, 58, 43, 62, 73, 70, 67, 87, 57, 59, 77, 92, 56, 75, 56, 64, 58, 64, 56, 73, 68, 53, 67, 69, 55, 64, 107, 77, 64, 52, 75, 54, 83, 63, 55, 70, 66, 53, 70, 82, 52, 47, 48, 82, 68, 74, 77, 80, 50, 58, 42, 68, 62, 66, 70, 60, 73, 55, 57, 67, 52, 66, 76, 55, 59, 76, 99, 61, 104, 107, 54, 51, 95, 72, 54, 64, 64, 60, 91, 73, 60, 68, 90, 60, 65, 75, 67, 77, 60, 61, 52, 73, 60, 94, 59, 36, 55, 70, 76, 51, 78, 68, 85, 58, 63, 58, 69, 43, 63, 65, 57, 84, 58, 84, 65, 68, 49, 121, 64, 73, 72, 69, 49, 68, 66, 55, 62, 72, 56, 61, 72, 72, 52, 58, 69, 52, 53, 76, 60, 78, 61, 82, 66, 62, 76, 60, 66, 47, 59, 80, 45, 53, 58, 71, 56, 71, 71, 51, 69, 68, 57, 75, 71, 52, 88, 61, 56, 75, 73, 59, 71, 63, 73, 73, 53, 44, 65, 64, 67, 68, 52, 57, 58, 77, 59, 63, 73, 72, 72, 50, 71, 77, 55, 44, 65, 65, 66, 62, 60, 55, 46, 59, 63, 85, 79, 54, 59, 47, 73, 64, 60, 83, 59, 61, 57, 77, 72, 74, 59, 58, 66, 58, 71, 50, 65, 45, 57, 53, 60, 53, 67, 58, 89, 63, 64, 56, 55, 56, 49, 70, 68, 69, 80, 99, 61, 86, 65, 65, 86, 66, 85, 46, 59, 64, 57, 59, 80, 72, 110, 100, 78, 60, 78, 65, 50, 60, 55, 70, 84, 50, 94, 59, 47, 91, 65, 69, 45, 61, 61, 69, 62, 64, 62, 82, 58, 81, 99, 69, 58, 67, 57, 57, 74, 54, 72, 73, 58, 59, 102, 81, 59, 59, 51, 59, 78, 74, 57, 65, 76, 107, 77, 61, 69, 63, 39, 79, 52, 60, 76, 55, 58, 63, 71, 46, 70, 53, 50, 73, 67, 62, 56, 58, 71, 62, 70, 96, 49, 68, 57, 91, 64, 72, 61, 58, 65, 59, 58, 41, 64, 58, 68, 57, 70, 62, 65, 60, 53, 77, 46, 58, 67, 55, 64, 92, 65, 50, 61, 59, 62, 76, 55, 71, 61, 59, 58, 54, 72, 52, 86, 57, 54, 70, 72, 69, 69, 52, 62, 59, 64, 48, 59, 62, 61, 62, 66, 66, 77, 71, 52, 65, 67, 58, 67, 61, 77, 49, 125, 77, 57, 50, 65, 49, 52, 83, 64, 86, 46, 49, 44, 57, 70, 47, 60, 70, 78, 74, 57, 57, 59, 54, 78, 64, 74, 64, 62, 76, 58, 59, 70, 42, 54, 62, 62, 88, 80, 57, 126, 74, 62, 63, 60, 59, 74, 73, 65, 49, 62, 90, 29, 79, 62, 57, 62, 59, 50, 60, 59, 80, 62, 60, 66, 63, 68, 55, 62, 54, 53, 52, 74, 52, 61, 64, 53, 54, 63, 55, 63, 67, 62, 60, 62, 54, 69, 71, 65, 78, 68, 66, 96, 85, 61, 59, 71, 45, 50, 78, 72, 64, 81, 62, 54, 70, 86, 68, 61, 67, 53, 63, 63, 56, 67, 48, 60, 57, 70, 46, 68, 73, 82, 72, 60, 63, 78, 93, 60, 57, 50, 54, 56, 70, 67, 53, 58, 61, 61, 77, 46, 68, 73, 55, 77, 50, 69, 55, 72, 61, 64, 57, 96, 61, 53, 74, 56, 39, 49, 55, 75, 67, 76, 58, 93, 79, 53, 59, 75, 58, 45, 68, 75, 55, 47, 87, 60, 49, 53, 63, 66, 92, 68, 76, 78, 57, 53, 61, 55, 60, 60, 86, 68, 64, 56, 76, 43, 83, 58, 65, 63, 54, 54, 62, 78, 71, 68, 65, 69, 54, 71, 59, 53, 57, 64, 75, 136, 87, 108, 49, 49, 62, 58, 62, 76, 69, 57, 60, 49, 50, 66, 69, 75, 58, 79, 54, 73, 84, 69, 69, 71, 57, 64, 58, 78, 59, 74, 79, 68, 68, 64, 99, 50, 65, 54, 75, 68, 83, 66, 55, 69, 62, 65, 54, 69, 56, 68, 65, 55, 74, 58, 65, 55, 61, 74, 64, 79, 58, 69, 85, 66, 70, 48, 59, 57, 61, 65, 66, 66, 59, 47, 56, 69, 65, 79, 80, 56, 63, 64, 66, 83, 63, 78, 75, 47, 78, 86, 70, 58, 68, 68, 47, 76, 59, 80, 116, 101, 65, 64, 54, 61, 61, 72, 61, 64, 50, 50, 68, 58, 88, 69, 54, 58, 55, 59, 68, 59, 69, 60, 50, 57, 72, 90, 67, 63, 75, 61, 67, 52, 76, 48, 57, 65, 55, 48, 55, 66, 72, 69, 70, 64, 79, 61, 88, 48, 68, 56, 78, 97, 60, 72, 63, 77, 76, 77, 65, 83, 75, 56, 62, 54, 69, 70, 48, 87, 66, 74, 67, 54, 56, 61, 67, 46, 63, 57, 98, 62, 55, 87, 55, 60, 62, 60, 62, 68, 78, 81, 66, 72, 59, 62, 56, 71, 61, 56, 49, 59, 57, 53, 53, 69, 76, 97, 50, 60, 87, 72, 63, 64, 78, 63, 84, 53, 99, 74, 65, 68, 84, 56, 64, 80, 51, 58, 77, 50, 64, 62, 68, 66, 129, 85, 55, 57, 67, 61, 59, 65, 83, 81, 81, 59, 76, 53, 79, 59, 58, 66, 74, 65, 54, 66, 75, 69, 76, 81, 57, 72, 78, 78, 58, 92, 92, 56, 75, 74, 60, 54, 60, 86, 68, 50, 56, 57, 55, 56, 68, 61, 79, 54, 51, 65, 48, 84, 99, 66, 58, 64, 41, 86, 72, 62, 59, 52, 103, 71, 59, 54, 79, 63, 54, 70, 50, 65, 52, 42, 58, 51, 67, 69, 62, 54, 60, 52, 59, 56, 76, 62, 62, 63, 72, 56, 58, 66, 57, 83, 56, 68, 61, 78, 57, 75, 57, 98, 60, 64, 72, 74, 57, 65, 88, 74, 88, 79, 67, 76, 60, 84, 71, 55, 63, 83, 60, 62, 65, 83, 67, 46, 46, 88, 67, 65, 90, 84, 70, 76, 58, 87, 73, 57, 52, 58, 58, 61, 61, 64, 56, 101, 61, 58, 56, 68, 55, 64, 55, 69, 49, 74, 56, 68, 64, 67, 55, 62, 82, 66, 74, 49, 65, 75, 57, 50, 54, 49, 76, 76, 38, 52, 57, 73, 88, 71, 66, 59, 68, 58, 65, 55, 54, 62, 59, 64, 64, 62, 81, 86, 78, 53, 51, 72, 50, 57, 43, 54, 103, 61, 59, 72, 74, 45, 73, 51, 88, 66, 63, 85, 63, 79, 76, 63, 68, 52, 62, 57, 60, 86, 71, 60, 69, 73, 72, 95, 61, 76, 69, 57, 53, 100, 58, 70, 55, 87, 62, 71, 55, 56, 81, 60, 68, 59, 46, 95, 81, 54, 74, 61, 53, 73, 44, 67, 72, 52, 83, 63, 66, 48, 56, 57, 49, 98, 65, 78, 66, 68, 65, 50, 69, 78, 65, 72, 66, 70, 84, 90, 63, 70, 131, 59, 48, 58, 73, 74, 81, 63, 53, 59, 46, 55, 53, 59, 79, 59, 63, 55, 62, 70, 68, 66, 108, 57, 72, 50, 62, 61, 55, 47, 44, 74, 49, 77, 82, 65, 59, 61, 62, 53, 42, 62, 75, 68, 51, 72, 55, 57, 105, 69, 85, 64, 63, 69, 58, 66, 101, 92, 77, 57, 72, 67, 64, 84, 54, 55, 66, 63, 63, 62, 76, 85, 60, 66, 75, 64, 83, 60, 76, 53, 59, 58, 61, 86, 57, 70, 72, 56, 71, 67, 69, 82, 55, 69, 97, 56, 59, 79, 91, 56, 60, 83, 83, 73, 62, 80, 69, 69, 55, 58, 59, 61, 63, 51, 52, 68, 62, 61, 62, 60, 61, 58, 92, 100, 59, 67, 45, 81, 68, 61, 60, 97, 65, 56, 69, 61, 56, 64, 57, 94, 64, 90, 67, 96, 63, 89, 60, 57, 58, 61, 59, 74, 51, 70, 47, 64, 67, 60, 70, 54, 62, 75, 73, 58, 74, 53, 48, 49, 56, 65, 58, 89, 61, 53, 63, 59, 51, 81, 73, 65, 67, 73, 66, 57, 56, 61, 69, 56, 78, 67, 75, 53, 52, 76, 91, 49, 58, 90, 77, 73, 49, 58, 78, 56, 84, 63, 51, 61, 60, 59, 64, 65, 86, 57, 54, 59, 55, 91, 73, 59, 74, 58, 98, 69, 69, 60, 58, 53, 52, 44, 61, 73, 74, 65, 67, 48, 56, 67, 67, 55, 63, 61, 45, 51, 59, 45, 84, 53, 60, 66, 62, 52, 61, 86, 61, 74, 52, 57, 56, 65, 60, 68, 65, 63, 78, 61, 54, 76, 54, 65, 69, 67, 94, 66, 64, 79, 80, 73, 54, 73, 56, 55, 61, 59, 61, 60, 59, 86, 74, 129, 59, 69, 45, 56, 58, 59, 136, 56, 74, 59, 52, 67, 66, 58, 60, 60, 48, 53, 90, 55, 68, 63, 54, 66, 56, 87, 60, 60, 70, 52, 71, 69, 63, 45, 75, 60, 92, 44, 58, 106, 65, 84, 68, 61, 64, 66, 84, 56, 64, 59, 78, 47, 69, 76, 66, 53, 51, 76, 69, 72, 73, 62, 53, 49, 63, 69, 51, 62, 52, 59, 68, 65, 64, 67, 69, 57, 61, 65, 78, 47, 69, 61, 90, 57, 64, 39, 73, 67, 55, 54, 51, 75, 57, 65, 62, 61, 64, 81, 68, 38, 61, 103, 57, 64, 58, 88, 44, 61, 62, 79, 67, 67, 61, 62, 53, 49, 56, 49, 67, 55, 59, 80, 64, 69, 60, 56, 70, 62, 43, 59, 57, 67, 71, 71, 51, 60, 65, 67, 65, 60, 74, 65, 66, 44, 57, 88, 56, 78, 67, 73, 64, 80, 49, 58, 72, 61, 61, 61, 63, 76, 65, 74, 71, 62, 77, 63, 59, 61, 60, 64, 92, 77, 71, 59, 101, 73, 74, 65, 56, 86, 66, 71, 55, 81, 65, 50, 69, 62, 72, 56, 94, 69, 52, 69, 70, 57, 63, 54, 60, 58, 76, 52, 65, 78, 66, 64, 69, 67, 59, 52, 65, 59, 72, 71, 82, 122, 62, 104, 59, 61, 73, 59, 59, 74, 63, 69, 68, 44, 48, 67, 48, 67, 47, 48, 69, 65, 61, 69, 63, 65, 50, 61, 51, 69, 50, 78, 68, 66, 68, 63, 101, 66, 57, 100, 90, 53, 93, 61, 77, 61, 74, 71, 61, 69, 61, 64, 62, 64, 60, 59, 63, 68, 67, 89, 34, 89, 72, 57, 71, 81, 84, 78, 69, 71, 58, 70, 71, 64, 72, 49, 70, 75, 66, 61, 67, 68, 51, 53, 47, 94, 62, 81, 69, 82, 64, 58, 41, 74, 62, 45, 47, 77, 64, 77, 103, 106, 115, 61, 57, 55, 48, 73, 60, 73, 44, 56, 89, 68, 87, 62, 52, 59, 54, 87, 57, 55, 44, 53, 58, 59, 80, 58, 74, 83, 59, 61, 74, 59, 81, 62, 58, 85, 60, 51, 69, 65, 58, 55, 71, 60, 67, 68, 71, 58, 62, 69, 73, 67, 75, 51, 68, 74, 87, 41, 58, 87, 43, 60, 77, 62, 71, 44, 67, 84, 66, 71, 68, 54, 73, 56, 69, 58, 57, 67, 57, 95, 56, 75, 66, 61, 55, 68, 59, 65, 70, 48, 60, 74, 52, 58, 56, 78, 66, 66, 76, 66, 62, 67, 77, 57, 51, 63, 49, 80, 57, 60, 69, 67, 96, 55, 77, 55, 108, 61, 70, 59, 63, 56, 67, 49, 70, 72, 63, 64, 45, 57, 53, 60, 88, 80, 57, 66, 52, 73, 60, 66, 61, 62, 58, 61, 55, 78, 59, 74, 49, 66, 65, 63, 57, 80, 62, 69, 75, 79, 56, 59, 72, 102, 70, 46, 86, 57, 66, 60, 50, 49, 70, 76, 80, 57, 62, 54, 59, 62, 57, 85, 92, 80, 53, 62, 62, 67, 50, 49, 55, 66, 59, 80, 72, 61, 65, 62, 85, 68, 54, 73, 68, 62, 66, 66, 53, 61, 64, 66, 84, 53, 59, 73, 54, 67, 90, 66, 47, 63, 69, 45, 68, 62, 52, 65, 48, 50, 56, 73, 54, 47, 72, 104, 61, 71, 45, 80, 43, 93, 67, 90, 54, 65, 98, 72, 95, 70, 74, 65, 66, 85, 73, 58, 90, 70, 55, 64, 50, 56, 58, 64, 64, 62, 50, 90, 77, 63, 116, 67, 66, 122, 68, 76, 64, 53, 68, 50, 62, 79, 61, 70, 58, 77, 61, 63, 55, 65, 64, 49, 57, 64, 54, 47, 75, 74, 75, 66, 64, 63, 68, 97, 51, 69, 54, 87, 60, 55, 61, 61, 56, 73, 55, 67, 64, 77, 66, 65, 62, 65, 55, 51, 61, 68, 56, 68, 50, 69, 70, 52, 108, 62, 63, 65, 58, 68, 65, 57, 92, 70, 39, 55, 78, 63, 60, 82, 78, 63, 52, 102, 67, 62, 56, 46, 74, 67, 62, 58, 80, 62, 73, 80, 65, 64, 67, 101, 63, 73, 61, 70, 58, 115, 71, 59, 49, 91, 49, 50, 60, 58, 63, 51, 53, 60, 59, 83, 52, 63, 59, 63, 50, 89, 59, 52, 80, 60, 85, 67, 50, 64, 63, 56, 60, 113, 83, 66, 50, 62, 45, 45, 66, 93, 67, 73, 54, 49, 111, 50, 48, 56, 114, 53, 54, 66, 77, 55, 71, 71, 47, 68, 67, 68, 64, 66, 54, 63, 66, 62, 88, 49, 82, 48, 71, 51, 55, 57, 62, 48, 61, 71, 50, 61, 79, 90, 105, 46, 72, 74, 74, 59, 74, 83, 59, 55, 60, 64, 66, 56, 82, 71, 87, 55, 62, 77, 53, 52, 79, 67, 60, 40, 63, 62, 62, 61, 59, 62, 66, 71, 53, 78, 68, 80, 57, 78, 64, 79, 92, 59, 61, 57, 57, 63, 68, 74, 53, 59, 65, 73, 73, 57, 54, 66, 74, 50, 101, 53, 55, 83, 64, 67, 62, 74, 77, 49, 60, 72, 73, 67, 72, 62, 56, 52, 62, 55, 68, 72, 60, 69, 66, 51, 57, 74, 73, 61, 55, 61, 65, 70, 60, 56, 64, 71, 57, 62, 64, 93, 63, 66, 85, 68, 61, 119, 77, 88, 52, 77, 58, 60, 64, 67, 55, 62, 62, 59, 53, 70, 65, 54, 82, 61, 76, 55, 81, 64, 44, 68, 73, 64, 87, 45, 53, 83, 76, 65, 58, 91, 62, 94, 81, 51, 47, 46, 50, 44, 55, 65, 70, 73, 56, 74, 66, 64, 91, 58, 95, 75, 53, 99, 64, 61, 66, 61, 46, 58, 38, 55, 50, 67, 50, 70, 63, 57, 71, 59, 85, 33, 61, 64, 48, 60, 69, 71, 68, 53, 53, 64, 56, 60, 60, 59, 43, 73, 78, 55, 57, 54, 68, 60, 71, 52, 59, 94, 54, 51, 60, 55, 78, 68, 51, 69, 59, 55, 61, 63, 70, 58, 51, 54, 55, 67, 60, 64, 96, 58, 49, 58, 49, 74, 56, 74, 64, 66, 82, 65, 69, 64, 66, 65, 60, 76, 54, 64, 89, 63, 71, 80, 49, 52, 88, 112, 89, 61, 47, 44, 62, 73, 100, 55, 66, 39, 53, 91, 58, 52, 62, 62, 67, 67, 84, 62, 82, 48, 66, 73, 67, 56, 67, 45, 69, 57, 70, 50, 71, 60, 67, 43, 88, 59, 66, 81, 79, 82, 61, 71, 61, 74, 103, 67, 39, 72, 62, 72, 84, 59, 64, 70, 47, 83, 71, 58, 50, 55, 77, 62, 58, 67, 58, 46, 56, 70, 57, 52, 72, 64, 65, 55, 62, 104, 41, 58, 64, 55, 83, 74, 60, 56, 59, 92, 80, 56, 66, 61, 70, 75, 58, 61, 67, 55, 65, 55, 58, 78, 69, 69, 55, 103, 66, 76, 59, 60, 67, 73, 107, 61, 79, 57, 60, 66, 64, 56, 62, 56, 54, 81, 64, 67, 75, 44, 55, 56, 58, 68, 86, 65, 71, 59, 63, 59, 60, 56, 76, 64, 66, 60, 57, 70, 70, 65, 69, 49, 57, 85, 61, 91, 63, 60, 65, 72, 78, 65, 61, 69, 66, 52, 75, 56, 56, 78, 94, 72, 51, 60, 70, 60, 93, 97, 70, 60, 78, 76, 82, 68, 90, 64, 65, 64, 90, 63, 72, 56, 69, 36, 86, 75, 71, 57, 99, 57, 55, 70, 89, 64, 61, 59, 79, 58, 78, 37, 44, 62, 49, 78, 62, 80, 66, 88, 60, 79, 93, 56, 51, 54, 62, 70, 63, 58, 67, 58, 92, 85, 48, 68, 83, 77, 42, 57, 66, 58, 70, 71, 70, 49, 66, 54, 51, 46, 64, 65, 60, 80, 68, 64, 69, 48, 51, 62, 108, 59, 79, 61, 74, 65, 55, 88, 49, 61, 80, 49, 54, 70, 56, 72, 69, 71, 57, 74, 46, 63, 66, 62, 78, 71, 69, 31, 64, 63, 51, 60, 72, 94, 62, 97, 73, 70, 59, 62, 48, 73, 80, 79, 55, 61, 60, 69, 69, 67, 55, 55, 93, 40, 56, 73, 61, 88, 40, 67, 44, 67, 75, 64, 64, 58, 73, 47, 44, 54, 78, 58, 57, 58, 60, 53, 59, 113, 51, 68, 54, 75, 69, 56, 59, 78, 77, 61, 64, 51, 65, 68, 71, 58, 60, 95, 69, 49, 48, 61, 60, 48, 58, 48, 62, 59, 80, 98, 57, 53, 49, 75, 57, 77, 52, 70, 83, 74, 61, 56, 78, 61, 56, 72, 55, 67, 49, 82, 61, 53, 56, 73, 74, 63, 54, 62, 50, 67, 106, 68, 67, 63, 64, 60, 86, 72, 66, 83, 69, 75, 89, 54, 74, 64, 61, 55, 54, 51, 71, 55, 60, 86, 68, 62, 115, 91, 74, 55, 47, 87, 72, 66, 60, 70, 57, 55, 75, 48, 64, 77, 58, 66, 55, 50, 71, 54, 69, 53, 75, 76, 56, 62, 66, 57, 61, 61, 79, 61, 75, 54, 63, 59, 76, 66, 59, 66, 59, 51, 77, 51, 83, 66, 51, 69, 58, 58, 53, 49, 54, 66, 56, 107, 59, 64, 84, 49, 55, 68, 65, 66, 88, 121, 46, 57, 58, 68, 63, 55, 57, 62, 51, 60, 53, 56, 62, 73, 83, 60, 83, 71, 57, 65, 69, 65, 59, 67, 79, 67, 58, 155, 60, 64, 52, 51, 73, 44, 67, 76, 57, 47, 66, 77, 67, 67, 63, 67, 70, 85, 65, 80, 60, 51, 64, 64, 79, 67, 45, 105, 61, 82, 62, 70, 52, 60, 76, 65, 63, 57, 67, 69, 49, 50, 69, 69, 80, 60, 71, 101, 74, 58, 50, 69, 56, 65, 45, 66, 77, 78, 48, 45, 74, 92, 76, 68, 102, 60, 84, 52, 58, 66, 66, 78, 66, 63, 69, 65, 55, 53, 61, 82, 67, 55, 89, 58, 70, 55, 76, 58, 55, 65, 63, 79, 72, 71, 66, 54, 86, 55, 62, 67, 60, 75, 51, 74, 69, 79, 40, 49, 80, 63, 51, 81, 83, 51, 60, 69, 66, 65, 84, 48, 67, 72, 58, 69, 93, 64, 61, 79, 63, 77, 55, 77, 62, 79, 38, 62, 79, 78, 61, 54, 71, 49, 46, 49, 45, 63, 61, 63, 73, 66, 74, 59, 48, 58, 66, 53, 58, 45, 66, 62, 66, 62, 70, 75, 78, 65, 55, 59, 53, 80, 78, 62, 64, 102, 60, 63, 62, 91, 54, 76, 58, 64, 50, 71, 65, 56, 68, 63, 96, 56, 54, 46, 72, 56, 76, 65, 70, 63, 49, 89, 67, 84, 66, 76, 65, 63, 41, 69, 77, 93, 72, 71, 63, 66, 89, 58, 50, 87, 109, 71, 73, 57, 70, 76, 45, 96, 56, 49, 85, 53, 56, 73, 49, 58, 100, 49, 54, 60, 41, 67, 65, 56, 60, 68, 67, 84, 52, 48, 79, 74, 60, 55, 60, 75, 83, 70, 53, 58, 62, 79, 53, 64, 89, 65, 61, 60, 67, 64, 51, 45, 48, 75, 55, 98, 47, 64, 58, 53, 75, 64, 82, 61, 62, 59, 47, 58, 69, 47, 70, 63, 50, 59, 56, 78, 81, 53, 48, 49, 65, 64, 61, 58, 54, 70, 49, 59, 67, 63, 56, 63, 57, 50, 79, 81, 61, 82, 63, 55, 62, 53, 103, 66, 60, 96, 64, 51, 46, 67, 64, 86, 56, 65, 83, 64, 66, 64, 66, 73, 63, 74, 52, 52, 68, 64, 107, 53, 53, 66, 55, 72, 55, 58, 61, 65, 69, 70, 63, 71, 83, 71, 87, 56, 50, 47, 66, 49, 51, 60, 86, 67, 73, 52, 53, 81, 118, 77, 59, 63, 68, 60, 55, 70, 62, 46, 72, 76, 75, 70, 76, 64, 69, 67, 60, 74, 54, 59, 83, 64, 71, 49, 56, 61, 53, 51, 68, 73, 70, 77, 72, 86, 90, 49, 79, 51, 56, 67, 35, 63, 57, 79, 99, 58, 67, 47, 50, 66, 60, 68, 56, 78, 54, 56, 86, 70, 62, 64, 75, 68, 60, 75, 146, 59, 69, 66, 83, 59, 64, 93, 60, 60, 52, 75, 76, 52, 69, 59, 62, 53, 72, 63, 58, 57, 52, 61, 66, 55, 60, 60, 60, 44, 44, 65, 101, 49, 69, 69, 92, 76, 63, 45, 59, 48, 57, 98, 68, 80, 64, 64, 52, 83, 55, 66, 73, 47, 71, 61, 58, 84, 66, 52, 78, 76, 54, 49, 93, 95, 64, 75, 61, 77, 58, 54, 55, 74, 85, 68, 81, 47, 91, 70, 69, 50, 59, 81, 50, 56, 80, 58, 74, 57, 79, 61, 46, 63, 51, 54, 61, 57, 55, 60, 73, 56, 54, 54, 90, 70, 58, 81, 55, 73, 58, 73, 62, 60, 117, 56, 49, 62, 61, 70, 61, 64, 71, 67, 66, 91, 79, 69, 59, 64, 77, 72, 66, 65, 57, 83, 60, 57, 56, 69, 62, 53, 70, 59, 70, 93, 62, 44, 50, 48, 51, 45, 56, 55, 92, 109, 44, 49, 59, 77, 69, 68, 55, 75, 55, 72, 53, 64, 60, 68, 54, 70, 56, 50, 63, 53, 60, 92, 65, 77, 124, 57, 61, 44, 57, 60, 44, 61, 49, 81, 72, 57, 56, 71, 80, 55, 63, 78, 71, 58, 85, 51, 57, 53, 68, 50, 56, 66, 80, 76, 69, 67, 56, 65, 70, 71, 72, 47, 56, 63, 61, 80, 54, 57, 65, 58, 68, 59, 49, 65, 71, 61, 75, 65, 63, 73, 83, 58, 54, 85, 65, 50, 78, 95, 42, 58, 44, 71, 79, 48, 60, 71, 44, 46, 76, 67, 61, 76, 86, 59, 61, 59, 66, 57, 85, 64, 66, 66, 106, 62, 51, 57, 63, 65, 66, 56, 44, 59, 64, 75, 62, 68, 69, 69, 73, 86, 79, 49, 65, 65, 59, 94, 83, 62, 74, 48, 95, 60, 70, 61, 69, 72, 65, 57, 84, 91, 65, 72, 61, 85, 63, 67, 79, 50, 59, 65, 72, 74, 57, 55, 72, 55, 58, 78, 101, 67, 65, 76, 51, 67, 50, 84, 56, 65, 65, 59, 65, 70, 66, 66, 70, 75, 53, 68, 76, 72, 67, 72, 61, 61, 53, 41, 67, 62, 73, 56, 69, 98, 73, 87, 62, 60, 64, 49, 67, 60, 77, 85, 63, 68, 56, 69, 60, 60, 79, 54, 56, 64, 69, 73, 67, 75, 51, 82, 52, 58, 64, 63, 61, 62, 63, 55, 51, 43, 71, 60, 83, 55, 62, 71, 68, 99, 64, 80, 63, 76, 60, 61, 59, 117, 65, 64, 70, 65, 67, 52, 78, 74, 52, 96, 60, 92, 60, 60, 56, 61, 58, 59, 76, 51, 73, 98, 48, 69, 70, 57, 69, 51, 49, 50, 59, 61, 76, 63, 93, 60, 84, 78, 56, 70, 50, 78, 63, 48, 55, 59, 68, 62, 57, 54, 61, 68, 101, 59, 61, 73, 74, 66, 75, 63, 57, 67, 69, 60, 97, 50, 52, 51, 57, 62, 61, 72, 71, 52, 72, 64, 60, 67, 104, 99, 89, 59, 58, 65, 74, 53, 69, 48, 60, 73, 75, 66, 63, 71, 66, 54, 53, 59, 61, 66, 59, 64, 67, 47, 63, 52, 64, 64, 67, 64, 86, 64, 54, 58, 60, 61, 83, 39, 51, 62, 60, 65, 65, 64, 54, 63, 64, 63, 58, 74, 51, 46, 46, 61, 56, 123, 63, 66, 68, 62, 49, 75, 55, 72, 88, 123, 62, 61, 59, 78, 57, 63, 81, 79, 95, 57, 70, 78, 75, 69, 91, 51, 48, 48, 71, 90, 56, 72, 54, 52, 78, 74, 56, 158, 62, 60, 53, 49, 69, 61, 47, 57, 52, 71, 61, 72, 59, 69, 50, 54, 67, 90, 56, 94, 67, 52, 80, 69, 72, 74, 65, 102, 81, 59, 58, 53, 58, 55, 47, 75, 92, 38, 75, 63, 62, 71, 71, 65, 51, 57, 68, 85, 82, 67, 58, 77, 65, 57, 60, 45, 70, 88, 62, 74, 67, 69, 59, 63, 86, 60, 91, 61, 54, 70, 97, 58, 63, 62, 84, 62, 47, 56, 71, 84, 57, 54, 92, 53, 71, 56, 78, 60, 59, 68, 56, 94, 53, 71, 48, 43, 85, 77, 62, 87, 72, 65, 56, 67, 63, 81, 69, 76, 79, 60, 70, 77, 67, 75, 65, 53, 65, 71, 78, 56, 40, 54, 59, 63, 78, 57, 65, 83, 100, 40, 51, 51, 50, 84, 55, 76, 67, 72, 65, 60, 73, 64, 61, 61, 63, 75, 69, 75, 47, 51, 58, 59, 44, 75, 46, 73, 55, 77, 56, 67, 60, 46, 70, 46, 52, 51, 77, 69, 75, 74, 101, 70, 51, 99, 51, 61, 65, 81, 59, 54, 65, 60, 63, 88, 66, 54, 61, 75, 82, 50, 55, 50, 62, 73, 66, 67, 74, 61, 67, 44, 63, 95, 48, 68, 62, 60, 69, 77, 72, 76, 59, 65, 47, 77, 103, 83, 67, 55, 110, 60, 68, 49, 53, 62, 67, 92, 56, 55, 75, 59, 44, 53, 63, 55, 56, 63, 53, 65, 63, 50, 59, 59, 55, 74, 53, 97, 64, 58, 45, 72, 61, 96, 76, 77, 71, 65, 93, 51, 83, 91, 77, 50, 85, 65, 59, 69, 97, 60, 70, 45, 49, 48, 62, 76, 62, 66, 69, 67, 51, 60, 70, 71, 45, 57, 61, 62, 74, 56, 77, 95, 38, 47, 61, 67, 62, 54, 75, 72, 64, 66, 55, 65, 58, 60, 72, 62, 72, 72, 63, 73, 39, 51, 81, 71, 53, 65, 74, 56, 73, 61, 101, 74, 83, 59, 82, 66, 53, 60, 63, 70, 62, 54, 64, 59, 50, 64, 54, 73, 49, 60, 41, 63, 66, 62, 108, 59, 67, 62, 79, 57, 60, 66, 60, 77, 68, 78, 53, 56, 63, 54, 75, 64, 52, 57, 53, 63, 59, 53, 55, 72, 70, 41, 55, 58, 115, 59, 56, 56, 64, 69, 59, 70, 70, 67, 54, 56, 72, 52, 65, 78, 65, 66, 68, 59, 79, 74, 62, 70, 80, 49, 64, 81, 63, 57, 77, 70, 57, 76, 49, 87, 82, 63, 82, 67, 58, 88, 55, 61, 50, 70, 79, 52, 82, 58, 67, 76, 62, 71, 62, 52, 61, 71, 103, 74, 75, 50, 72, 45, 66, 63, 142, 46, 62, 64, 49, 70, 72, 79, 47, 89, 61, 51, 50, 50, 55, 66, 83, 62, 74, 54, 66, 58, 46, 69, 70, 62, 56, 72, 69, 62, 46, 87, 75, 78, 50, 66, 87, 77, 73, 59, 82, 55, 76, 65, 63, 63, 66, 55, 82, 53, 56, 83, 69, 54, 66, 65, 58, 60, 55, 61, 90, 68, 58, 46, 75, 77, 53, 43, 67, 66, 86, 65, 67, 73, 86, 63, 55, 77, 95, 73, 57, 68, 68, 57, 67, 54, 71, 65, 55, 69, 86, 73, 73, 77, 51, 51, 69, 64, 68, 63, 61, 55, 39, 59, 70, 82, 67, 59, 52, 49, 50, 51, 49, 72, 114, 58, 59, 94, 58, 44, 56, 65, 68, 59, 63, 89, 87, 57, 65, 55, 79, 44, 62, 67, 51, 70, 61, 46, 64, 85, 73, 58, 52, 56, 58, 52, 72, 69, 83, 69, 65, 91, 60, 72, 56, 74, 56, 65, 41, 71, 63, 79, 60, 81, 52, 66, 77, 68, 60, 47, 86, 64, 56, 59, 104, 65, 68, 61, 86, 58, 76, 60, 80, 70, 94, 54, 72, 84, 64, 60, 57, 58, 75, 68, 49, 58, 80, 89, 62, 68, 78, 70, 68, 50, 70, 96, 56, 64, 90, 73, 55, 64, 70, 71, 51, 71, 66, 51, 29, 62, 71, 85, 73, 51, 61, 44, 69, 69, 62, 75, 66, 75, 46, 59, 72, 76, 79, 65, 61, 66, 64, 58, 78, 84, 52, 74, 62, 73, 81, 66, 73, 72, 73, 57, 66, 55, 52, 80, 83, 65, 78, 70, 56, 80, 65, 84, 71, 83, 82, 60, 65, 58, 83, 73, 87, 56, 67, 66, 64, 57, 54, 61, 53, 62, 58, 113, 72, 59, 78, 63, 65, 101, 70, 68, 69, 57, 82, 56, 69, 75, 79, 55, 60, 55, 48, 59, 60, 51, 72, 62, 61, 61, 66, 60, 65, 60, 62, 80, 65, 49, 68, 67, 58, 90, 80, 63, 56, 64, 65, 71, 53, 72, 51, 56, 86, 64, 62, 52, 76, 57, 51, 50, 59, 68, 43, 84, 56, 43, 82, 94, 60, 62, 56, 61, 49, 67, 81, 76, 50, 106, 67, 73, 62, 65, 39, 56, 63, 95, 50, 61, 64, 63, 57, 63, 57, 47, 55, 69, 51, 77, 62, 64, 57, 94, 73, 90, 79, 59, 75, 56, 51, 61, 68, 61, 69, 83, 66, 58, 52, 52, 73, 87, 56, 59, 62, 75, 33, 58, 79, 62, 50, 92, 53, 61, 72, 82, 66, 44, 62, 82, 58, 53, 65, 62, 62, 65, 54, 77, 71, 85, 45, 117, 69, 77, 64, 69, 67, 68, 62, 65, 75, 75, 68, 76, 53, 61, 73, 70, 79, 63, 72, 74, 61, 57, 78, 54, 63, 63, 86, 64, 75, 52, 114, 59, 58, 73, 69, 55, 58, 70, 48, 96, 51, 64, 86, 46, 66, 61, 66, 66, 55, 93, 62, 60, 77, 59, 56, 46, 65, 67, 84, 71, 54, 50, 72, 65, 77, 87, 70, 80, 87, 80, 61, 56, 46, 83, 47, 59, 45, 64, 66, 70, 95, 57, 73, 54, 91, 43, 47, 54, 55, 51, 74, 72, 59, 44, 76, 54, 45, 76, 67, 62, 62, 51, 47, 47, 68, 76, 48, 63, 57, 53, 74, 59, 48, 68, 77, 64, 63, 56, 66, 69, 64, 62, 67, 108, 59, 76, 52, 72, 65, 51, 55, 66, 70, 47, 67, 70, 68, 61, 83, 70, 59, 57, 74, 53, 75, 72, 64, 70, 127, 52, 52, 139, 95, 46, 55, 79, 57, 60, 60, 81, 66, 57, 62, 56, 98, 48, 67, 69, 67, 85, 59, 73, 66, 101, 69, 58, 53, 78, 47, 56, 47, 55, 66, 65, 58, 76, 55, 51, 64, 72, 61, 83, 58, 67, 51, 50, 52, 63, 51, 52, 80, 53, 39, 72, 64, 75, 66, 56, 96, 45, 88, 58, 67, 57, 74, 57, 61, 72, 78, 63, 46, 76, 71, 59, 56, 56, 86, 68, 58, 67, 58, 115, 93, 55, 106, 53, 62, 50, 61, 72, 75, 60, 52, 85, 68, 56, 58, 49, 107, 84, 54, 74, 57, 63, 50, 45, 54, 85, 61, 57, 55, 67, 64, 97, 65, 66, 59, 54, 69, 63, 59, 56, 65, 58, 51, 70, 64, 59, 93, 65, 78, 54, 55, 83, 43, 66, 61, 81, 88, 81, 59, 73, 66, 41, 61, 86, 64, 81, 73, 69, 74, 46, 51, 62, 78, 64, 59, 50, 63, 72, 52, 44, 71, 53, 87, 84, 66, 60, 68, 72, 58, 56, 46, 84, 89, 116, 51, 55, 65, 81, 60, 36, 56, 63, 47, 98, 67, 59, 68, 59, 63, 71, 73, 49, 95, 59, 73, 50, 71, 62, 60, 81, 51, 96, 49, 32, 56, 72, 70, 74, 61, 58, 53, 73, 67, 55, 63, 70, 63, 53, 71, 68, 67, 66, 67, 64, 64, 92, 57, 74, 58, 68, 52, 51, 65, 54, 63, 73, 51, 53, 67, 70, 63, 45, 71, 61, 52, 77, 93, 63, 69, 78, 47, 94, 69, 67, 63, 62, 81, 72, 64, 63, 63, 73, 76, 61, 59, 71, 66, 59, 64, 52, 53, 58, 67, 84, 56, 64, 75, 51, 52, 55, 64, 74, 63, 71, 62, 50, 68, 46, 63, 58, 57, 105, 76, 67, 73, 53, 68, 59, 60, 69, 50, 63, 59, 54, 59, 61, 94, 55, 53, 63, 61, 73, 65, 54, 69, 78, 53, 88, 61, 60, 67, 73, 56, 64, 49, 62, 62, 55, 79, 65, 66, 52, 65, 106, 59, 68, 62, 63, 61, 59, 63, 58, 83, 80, 52, 61, 49, 101, 65, 66, 58, 62, 58, 51, 67, 48, 65, 65, 59, 66, 60, 66, 65, 68, 59, 78, 66, 63, 50, 64, 63, 52, 63, 72, 97, 54, 60, 63, 73, 66, 47, 70, 74, 47, 61, 61, 99, 80, 63, 51, 85, 84, 69, 55, 80, 45, 59, 64, 59, 67, 68, 67, 46, 73, 66, 51, 59, 57, 69, 63, 54, 72, 66, 74, 71, 51, 52, 56, 68, 76, 66, 53, 66, 94, 69, 64, 48, 61, 45, 73, 63, 53, 82, 65, 68, 59, 105, 68, 74, 62, 127, 57, 77, 46, 57, 60, 70, 77, 75, 84, 73, 68, 111, 78, 80, 64, 39, 67, 64, 63, 51, 72, 51, 70, 98, 65, 54, 64, 72, 67, 58, 58, 62, 82, 73, 62, 87, 71, 60, 76, 74, 64, 91, 82, 67, 75, 61, 58, 81, 84, 60, 73, 63, 75, 64, 61, 63, 72, 87, 72, 76, 90, 58, 63, 98, 52, 100, 49, 54, 56, 83, 63, 69, 58, 66, 60, 64, 65, 85, 76, 58, 58, 70, 89, 66, 55, 82, 57, 47, 63, 81, 49, 69, 48, 66, 57, 63, 59, 61, 69, 73, 66, 64, 84, 94, 63, 58, 70, 66, 67, 72, 63, 61, 65, 99, 55, 88, 75, 52, 62, 55, 63, 71, 58, 59, 69, 63, 65, 68, 62, 99, 58, 76, 72, 55, 62, 59, 61, 59, 61, 70, 69, 57, 59, 80, 64, 64, 66, 73, 51, 69, 75, 64, 64, 68, 108, 62, 56, 68, 84, 81, 58, 53, 49, 74, 61, 54, 64, 53, 63, 59, 68, 56, 69, 65, 66, 59, 84, 66, 63, 106, 65, 46, 87, 51, 66, 68, 57, 74, 61, 57, 60, 66, 62, 85, 67, 87, 42, 64, 56, 98, 57, 58, 62, 66, 54, 67, 71, 84, 40, 68, 46, 59, 65, 56, 56, 86, 60, 63, 101, 58, 74, 54, 69, 50, 74, 60, 49, 63, 69, 80, 67, 58, 64, 57, 62, 69, 61, 64, 83, 58, 51, 93, 89, 64, 54, 60, 90, 57, 70, 76, 54, 55, 59, 75, 58, 54, 56, 58, 46, 84, 70, 57, 53, 100, 79, 71, 56, 72, 73, 56, 65, 88, 54, 60, 52, 67, 53, 71, 52, 86, 79, 44, 82, 51, 93, 66, 58, 56, 58, 64, 58, 78, 59, 70, 75, 84, 75, 51, 74, 58, 77, 51, 47, 67, 75, 83, 64, 61, 48, 70, 56, 64, 91, 85, 69, 69, 61, 62, 73, 74, 80, 70, 61, 112, 70, 78, 70, 59, 55, 49, 76, 51, 58, 68, 70, 58, 62, 49, 74, 54, 61, 60, 54, 91, 54, 61, 74, 86, 58, 51, 68, 58, 72, 69, 64, 66, 95, 65, 95, 63, 75, 61, 66, 71, 67, 86, 70, 63, 70, 60, 58, 51, 61, 88, 98, 70, 81, 67, 62, 64, 72, 62, 86, 60, 51, 73, 63, 74, 73, 65, 63, 63, 56, 85, 63, 56, 61, 62, 55, 60, 87, 67, 58, 59, 89, 53, 67, 84, 59, 65, 57, 71, 55, 61, 55, 79, 58, 83, 102, 71, 70, 55, 55, 70, 73, 56, 68, 85, 56, 65, 93, 59, 59, 57, 63, 82, 95, 55, 57, 73, 64, 61, 74, 77, 67, 55, 63, 57, 74, 66, 93, 65, 60, 71, 61, 60, 43, 56, 61, 45, 49, 110, 70, 73, 61, 55, 64, 50, 61, 62, 62, 76, 43, 101, 63, 57, 59, 55, 39, 58, 61, 54, 41, 57, 46, 65, 61, 77, 62, 59, 52, 47, 51, 73, 54, 54, 66, 63, 83, 65, 86, 62, 57, 47, 61, 56, 68, 73, 58, 75, 59, 75, 54, 61, 71, 84, 60, 63, 67, 82, 52, 80, 50, 47, 70, 89, 76, 67, 62, 58, 60, 64, 49, 71, 74, 54, 69, 67, 78, 52, 55, 85, 49, 58, 104, 72, 50, 73, 55, 86, 51, 57, 88, 109, 115, 61, 85, 61, 70, 52, 57, 50, 80, 72, 73, 66, 63, 69, 46, 52, 62, 68, 59, 67, 71, 74, 76, 67, 57, 101, 89, 53, 131, 70, 66, 80, 59, 53, 75, 56, 59, 64, 47, 55, 64, 48, 56, 65, 54, 70, 95, 67, 59, 81, 52, 72, 62, 59, 90, 65, 92, 44, 71, 58, 73, 71, 72, 71, 63, 35, 55, 66, 82, 65, 72, 68, 54, 49, 58, 60, 77, 40, 58, 62, 99, 73, 72, 49, 42, 53, 60, 55, 69, 87, 68, 52, 63, 74, 52, 89, 54, 64, 62, 57, 68, 66, 53, 63, 63, 53, 60, 82, 79, 75, 65, 77, 61, 67, 54, 81, 69, 65, 73, 47, 90, 63, 81, 65, 67, 84, 58, 53, 63, 71, 62, 69, 55, 67, 60, 52, 66, 78, 57, 71, 78, 86, 54, 64, 51, 52, 68, 71, 62, 55, 57, 61, 74, 71, 58, 69, 58, 92, 73, 53, 65, 60, 93, 70, 71, 67, 86, 50, 64, 57, 63, 44, 66, 70, 55, 72, 80, 67, 55, 71, 44, 64, 55, 44, 71, 71, 54, 77, 73, 63, 62, 87, 104, 70, 63, 46, 65, 57, 74, 75, 52, 64, 97, 60, 64, 55, 77, 57, 52, 55, 63, 78, 86, 61, 55, 45, 72, 103, 54, 63, 80, 69, 69, 70, 63, 80, 49, 67, 67, 56, 83, 49, 61, 70, 66, 55, 71, 66, 60, 59, 66, 64, 60, 102, 58, 68, 78, 90, 69, 87, 77, 57, 47, 65, 90, 48, 73, 77, 62, 51, 45, 45, 61, 49, 62, 65, 56, 84, 65, 53, 58, 52, 56, 55, 55, 67, 81, 100, 57, 61, 98, 62, 71, 77, 50, 86, 61, 83, 61, 49, 57, 86, 65, 49, 93, 47, 55, 43, 45, 60, 72, 85, 56, 61, 59, 60, 65, 46, 51, 72, 60, 59, 55, 66, 85, 68, 76, 65, 46, 62, 70, 72, 71, 79, 65, 73, 64, 57, 64, 56, 49, 59, 54, 71, 70, 68, 66, 54, 71, 71, 67, 87, 46, 65, 58, 52, 59, 52, 59, 103, 51, 45, 55, 71, 70, 45, 59, 64, 67, 57, 69, 55, 66, 54, 49, 67, 60, 58, 57, 72, 43, 51, 57, 91, 54, 47, 56, 71, 74, 57, 86, 53, 81, 64, 72, 68, 75, 56, 90, 92, 84, 66, 63, 67, 77, 62, 64, 60, 72, 48, 90, 51, 61, 107, 59, 74, 61, 59, 53, 60, 63, 67, 63, 52, 71, 65, 66, 93, 55, 74, 49, 57, 59, 59, 74, 71, 60, 100, 50, 70, 70, 76, 67, 61, 79, 65, 89, 82, 81, 69, 54, 79, 61, 64, 50, 74, 61, 64, 72, 91, 72, 55, 64, 56, 76, 63, 74, 65, 59, 102, 54, 79, 78, 70, 48, 82, 56, 68, 68, 131, 71, 66, 41, 60, 73, 52, 61, 60, 72, 67, 74, 49, 60, 73, 74, 61, 72, 64, 50, 62, 66, 50, 45, 56, 68, 45, 59, 80, 41, 75, 53, 77, 60, 56, 57, 88, 77, 55, 91, 68, 51, 79, 60, 71, 91, 61, 62, 61, 83, 48, 67, 61, 57, 70, 51, 68, 63, 66, 52, 78, 58, 58, 75, 66, 81, 55, 71, 68, 65, 66, 65, 60, 52, 94, 61, 61, 59, 87, 66, 55, 65, 47, 89, 60, 42, 70, 83, 77, 64, 63, 89, 53, 65, 76, 78, 59, 64, 65, 60, 62, 80, 79, 64, 83, 60, 61, 43, 73, 63, 63, 70, 78, 69, 63, 47, 74, 71, 60, 74, 63, 82, 83, 66, 67, 67, 55, 62, 51, 55, 60, 62, 46, 64, 57, 62, 50, 72, 71, 73, 68, 83, 61, 77, 62, 68, 57, 87, 58, 78, 65, 59, 53, 55, 63, 101, 57, 62, 72, 71, 70, 46, 55, 78, 74, 58, 69, 52, 49, 52, 64, 74, 50, 51, 70, 57, 55, 62, 72, 76, 60, 76, 59, 88, 61, 64, 47, 49, 47, 65, 61, 72, 55, 75, 76, 51, 71, 54, 70, 54, 62, 70, 71, 58, 53, 61, 57, 50, 64, 58, 67, 66, 68, 59, 62, 65, 91, 59, 56, 73, 48, 53, 62, 55, 70, 85, 92, 86, 45, 60, 56, 60, 31, 57, 78, 78, 81, 59, 80, 64, 59, 74, 71, 65, 53, 76, 60, 95, 74, 59, 59, 74, 64, 68, 47, 70, 48, 72, 64, 61, 47, 58, 75, 68, 74, 68, 58, 78, 62, 77, 74, 68, 73, 63, 60, 48, 53, 62, 70, 57, 58, 67, 77, 72, 55, 83, 74, 66, 54, 76, 85, 60, 66, 67, 53, 49, 65, 67, 61, 60, 71, 78, 73, 54, 92, 49, 87, 83, 47, 78, 75, 51, 49, 65, 75, 80, 72, 70, 62, 70, 76, 45, 59, 52, 57, 58, 78, 56, 66, 64, 58, 75, 60, 56, 73, 70, 69, 58, 51, 68, 61, 63, 69, 69, 78, 60, 70, 61, 44, 65, 76, 84, 62, 69, 54, 61, 55, 62, 62, 59, 54, 73, 59, 48, 64, 55, 53, 77, 73, 82, 53, 150, 70, 58, 51, 65, 56, 84, 73, 73, 79, 71, 61, 56, 75, 57, 70, 68, 61, 65, 43, 70, 75, 70, 54, 58, 79, 73, 68, 79, 62, 76, 81, 76, 69, 62, 61, 59, 70, 72, 60, 81, 66, 67, 70, 78, 63, 75, 50, 71, 77, 70, 63, 65, 80, 50, 57, 66, 77, 58, 72, 55, 52, 69, 81, 63, 88, 69, 74, 67, 73, 57, 64, 60, 94, 64, 77, 70, 68, 60, 61, 68, 62, 72, 84, 76, 70, 63, 78, 77, 51, 61, 61, 57, 63, 71, 65, 58, 80, 43, 69, 57, 59, 69, 75, 78, 75, 55, 57, 78, 47, 63, 54, 67, 46, 72, 67, 52, 76, 60, 69, 51, 60, 77, 51, 58, 51, 65, 63, 50, 100, 59, 84, 60, 69, 66, 62, 57, 69, 80, 56, 57, 76, 75, 94, 89, 68, 63, 47, 62, 76, 60, 78, 77, 48, 91, 50, 52, 50, 78, 66, 73, 76, 61, 74, 76, 62, 84, 77, 71, 45, 57, 43, 60, 82, 64, 60, 47, 81, 76, 59, 81, 51, 71, 99, 62, 80, 75, 49, 62, 75, 71, 94, 51, 77, 110, 69, 58, 71, 92, 105, 79, 61, 64, 68, 72, 70, 65, 66, 58, 64, 69, 66, 109, 57, 73, 73, 81, 95, 71, 56, 65, 73, 54, 68, 70, 79, 62, 72, 62, 64, 65, 61, 84, 59, 68, 89, 73, 63, 60, 51, 71, 101, 59, 70, 59, 106, 77, 60, 57, 51, 52, 59, 114, 70, 80, 41, 76, 73, 77, 63, 46, 63, 65, 52, 69, 40, 78, 56, 62, 74, 90, 58, 74, 77, 75, 58, 63, 60, 52, 65, 67, 57, 70, 76, 61, 60, 66, 59, 64, 53, 52, 62, 65, 64, 73, 70, 53, 85, 60, 66, 58, 68, 71, 70, 56, 40, 66, 76, 65, 49, 63, 52, 78, 67, 58, 65, 64, 73, 79, 56, 61, 84, 59, 60, 68, 59, 68, 79, 57, 64, 84, 73, 62, 66, 58, 50, 61, 72, 67, 68, 59, 64, 68, 71, 69, 72, 84, 50, 52, 68, 68, 60, 77, 55, 56, 70, 59, 53, 67, 78, 59, 82, 67, 83, 66, 66, 70, 53, 87, 76, 68, 50, 90, 47, 52, 64, 68, 63, 46, 73, 59, 42, 70, 53, 52, 57, 64, 52, 57, 67, 91, 59, 84, 74, 61, 78, 76, 42, 56, 94, 65, 63, 47, 75, 53, 51, 81, 58, 68, 80, 81, 50, 45, 92, 85, 60, 60, 69, 75, 52, 85, 68, 63, 48, 66, 86, 52, 85, 69, 59, 68, 65, 59, 56, 64, 62, 73, 81, 58, 56, 77, 65, 78, 59, 50, 46, 62, 58, 63, 58, 62, 53, 71, 71, 68, 65, 69, 66, 65, 44, 63, 88, 69, 77, 64, 56, 80, 49, 59, 60, 46, 72, 63, 65, 56, 53, 49, 69, 72, 47, 61, 48, 82, 73, 76, 76, 66, 73, 48, 53, 53, 57, 87, 69, 70, 65, 71, 84, 65, 75, 70, 74, 65, 61, 71, 54, 76, 89, 63, 56, 70, 53, 87, 86, 78, 54, 58, 69, 56, 65, 63, 83, 42, 68, 70, 52, 65, 65, 44, 59, 63, 64, 54, 92, 58, 71, 61, 68, 61, 67, 68, 67, 66, 78, 69, 68, 94, 66, 60, 64, 70, 64, 59, 75, 47, 57, 60, 69, 63, 57, 76, 62, 52, 59, 68, 76, 60, 74, 58, 60, 65, 56, 166, 75, 76, 67, 57, 60, 55, 61, 51, 72, 64, 61, 60, 63, 70, 72, 71, 74, 64, 66, 74, 62, 69, 82, 72, 72, 69, 47, 64, 89, 69, 61, 59, 66, 79, 75, 57, 72, 52, 88, 78, 47, 70, 70, 61, 60, 68, 48, 74, 50, 54, 62, 62, 93, 63, 55, 74, 62, 56, 66, 70, 76, 61, 63, 62, 76, 86, 56, 74, 67, 67, 61, 61, 61, 77, 58, 94, 57, 51, 66, 53, 72, 67, 62, 67, 51, 73, 56, 48, 63, 85, 71, 60, 53, 58, 90, 58, 49, 64, 83, 68, 81, 54, 64, 58, 62, 54, 57, 84, 71, 53, 74, 74, 66, 79, 52, 59, 65, 62, 69, 71, 63, 56, 74, 78, 55, 90, 56, 76, 85, 83, 60, 53, 64, 62, 63, 78, 57, 65, 56, 81, 65, 51, 56, 63, 77, 66, 56, 71, 81, 70, 79, 70, 69, 105, 67, 51, 61, 70, 68, 94, 73, 77, 45, 77, 62, 82, 74, 63, 68, 67, 82, 70, 73, 63, 57, 83, 58, 53, 72, 73, 55, 63, 79, 71, 75, 64, 64, 54, 64, 49, 38, 66, 63, 60, 72, 53, 52, 66, 59, 77, 93, 70, 63, 74, 70, 45, 58, 56, 68, 71, 68, 59, 70, 65, 59, 51, 58, 64, 84, 86, 64, 54, 56, 84, 62, 50, 55, 94, 56, 58, 76, 67, 71, 76, 53, 101, 49, 71, 72, 94, 75, 60, 58, 66, 65, 48, 69, 55, 56, 64, 84, 71, 74, 55, 67, 84, 50, 69, 66, 59, 73, 50, 58, 63, 53, 60, 74, 47, 80, 64, 51, 71, 53, 60, 78, 62, 71, 63, 70, 53, 49, 63, 66, 57, 65, 46, 56, 55, 63, 76, 77, 66, 59, 63, 54, 63, 78, 49, 74, 74, 52, 59, 53, 66, 67, 72, 55, 104, 58, 72, 62, 64, 70, 84, 103, 66, 72, 63, 68, 57, 68, 72, 65, 57, 53, 61, 56, 78, 69, 52, 68, 66, 73, 41, 75, 69, 59, 69, 95, 66, 54, 48, 84, 74, 49, 71, 52, 104, 77, 70, 64, 66, 70, 59, 74, 76, 51, 49, 60, 59, 63, 83, 75, 69, 70, 110, 64, 82, 82, 77, 77, 73, 77, 58, 60, 71, 50, 60, 68, 47, 83, 84, 61, 56, 52, 66, 72, 95, 88, 81, 54, 51, 52, 67, 90, 71, 58, 59, 69, 53, 67, 33, 60, 48, 57, 47, 77, 93, 73, 44, 53, 75, 72, 55, 61, 61, 48, 72, 69, 69, 60, 61, 51, 67, 63, 72, 62, 70, 51, 61, 58, 53, 84, 54, 82, 56, 65, 76, 57, 71, 59, 60, 68, 58, 65, 59, 52, 68, 66, 82, 67, 149, 80, 55, 60, 66, 72, 78, 66, 71, 53, 44, 45, 60, 65, 73, 72, 41, 49, 64, 41, 74, 82, 74, 63, 67, 62, 72, 59, 74, 66, 61, 73, 64, 60, 88, 35, 52, 82, 90, 84, 81, 92, 60, 56, 79, 70, 60, 62, 77, 56, 81, 62, 60, 68, 51, 83, 68, 80, 66, 58, 55, 53, 87, 64, 71, 85, 73, 61, 48, 79, 78, 69, 66, 76, 49, 82, 56, 69, 62, 50, 65, 51, 79, 67, 75, 61, 50, 77, 61, 54, 65, 58, 57, 51, 50, 61, 92, 59, 53, 69, 60, 74, 86, 79, 62, 49, 74, 67, 61, 48, 73, 69, 58, 47, 81, 61, 54, 102, 59, 62, 62, 59, 61, 61, 66, 76, 77, 58, 56, 76, 60, 85, 62, 58, 58, 63, 69, 85, 76, 63, 50, 57, 43, 67, 71, 50, 75, 50, 71, 86, 59, 62, 59, 60, 80, 43, 55, 111, 61, 65, 81, 71, 58, 69, 64, 56, 71, 82, 76, 78, 78, 47, 60, 75, 62, 83, 56, 101, 54, 55, 95, 69, 69, 98, 84, 71, 62, 69, 62, 64, 67, 62, 63, 82, 82, 60, 64, 47, 61, 78, 62, 61, 72, 83, 66, 55, 39, 65, 55, 77, 40, 83, 111, 63, 76, 66, 71, 79, 81, 58, 52, 67, 71, 52, 72, 56, 64, 62, 69, 65, 57, 67, 44, 72, 41, 84, 50, 66, 60, 54, 73, 119, 57, 59, 63, 97, 77, 64, 69, 69, 59, 43, 127, 66, 87, 52, 73, 94, 74, 67, 56, 106, 64, 60, 52, 60, 94, 75, 51, 59, 101, 66, 95, 49, 61, 48, 75, 48, 63, 78, 62, 59, 79, 80, 79, 74, 82, 65, 68, 61, 67, 61, 68, 84, 61, 64, 70, 65, 59, 57, 70, 62, 64, 49, 67, 75, 100, 84, 48, 63, 87, 61, 60, 64, 61, 76, 75, 69, 88, 54, 62, 91, 55, 59, 73, 50, 55, 51, 80, 40, 74, 58, 51, 62, 57, 58, 78, 80, 71, 61, 43, 56, 68, 69, 45, 67, 79, 66, 60, 73, 77, 56, 71, 68, 69, 79, 88, 43, 51, 87, 73, 60, 57, 60, 67, 63, 66, 40, 64, 85, 49, 70, 68, 75, 68, 70, 50, 61, 79, 66, 49, 64, 73, 67, 65, 68, 70, 62, 79, 73, 57, 62, 67, 70, 46, 86, 69, 67, 92, 80, 65, 54, 66, 82, 50, 67, 66, 61, 71, 51, 94, 58, 44, 99, 81, 70, 58, 67, 71, 68, 76, 62, 58, 67, 82, 81, 58, 54, 68, 72, 63, 86, 69, 46, 74, 52, 66, 80, 56, 57, 50, 77, 66, 54, 72, 76, 61, 48, 75, 52, 59, 49, 76, 75, 56, 70, 62, 68, 56, 67, 51, 96, 69, 80, 41, 60, 80, 65, 79, 48, 56, 79, 73, 70, 54, 69, 53, 59, 73, 55, 71, 48, 71, 65, 70, 69, 69, 61, 43, 74, 81, 67, 86, 81, 71, 55, 58, 84, 59, 66, 68, 64, 55, 65, 66, 53, 64, 91, 67, 79, 64, 69, 96, 62, 96, 66, 72, 60, 63, 49, 48, 75, 63, 80, 66, 54, 78, 58, 61, 71, 58, 52, 33, 83, 61, 58, 50, 54, 56, 68, 52, 70, 66, 79, 54, 62, 83, 51, 58, 55, 85, 59, 39, 80, 59, 52, 78, 89, 60, 81, 50, 57, 48, 48, 46, 64, 77, 66, 75, 59, 72, 57, 162, 96, 66, 39, 55, 58, 82, 60, 59, 89, 56, 63, 63, 63, 55, 57, 67, 61, 67, 79, 62, 38, 84, 103, 74, 80, 60, 64, 61, 92, 75, 68, 46, 69, 66, 77, 59, 63, 65, 59, 84, 63, 73, 55, 54, 43, 60, 77, 78, 61, 42, 59, 53, 81, 69, 72, 60, 45, 66, 65, 53, 79, 65, 64, 54, 68, 59, 48, 67, 79, 66, 69, 75, 62, 92, 59, 97, 66, 38, 74, 71, 66, 78, 58, 63, 72, 70, 45, 54, 41, 74, 82, 90, 90, 58, 60, 63, 52, 55, 60, 66, 58, 69, 62, 59, 49, 64, 43, 69, 46, 62, 67, 71, 86, 66, 64, 54, 47, 67, 65, 53, 60, 62, 70, 53, 86, 57, 69, 60, 54, 108, 47, 45, 83, 69, 50, 58, 55, 68, 64, 49, 58, 44, 41, 89, 89, 71, 59, 60, 72, 77, 74, 80, 58, 105, 77, 66, 77, 46, 51, 93, 59, 60, 54, 55, 69, 65, 27, 75, 61, 59, 89, 66, 68, 62, 60, 58, 73, 67, 56, 78, 59, 66, 39, 61, 116, 65, 55, 65, 64, 74, 75, 64, 71, 76, 82, 74, 52, 71, 66, 53, 59, 68, 64, 69, 63, 70, 76, 52, 74, 65, 46, 51, 72, 69, 80, 60, 61, 70, 47, 98, 67, 59, 74, 61, 57, 70, 58, 72, 67, 62, 47, 62, 70, 72, 70, 71, 56, 77, 78, 59, 64, 66, 55, 55, 80, 68, 76, 63, 77, 60, 67, 57, 51, 58, 96, 77, 61, 72, 95, 66, 62, 71, 73, 89, 62, 72, 69, 71, 56, 83, 61, 65, 59, 68, 81, 61, 50, 78, 70, 69, 58, 61, 68, 55, 66, 104, 58, 78, 49, 56, 63, 60, 46, 62, 62, 52, 51, 60, 71, 74, 63, 56, 68, 56, 61, 63, 40, 77, 52, 60, 56, 49, 51, 76, 66, 68, 71, 84, 72, 59, 64, 59, 62, 61, 57, 54, 63, 64, 96, 64, 38, 82, 95, 67, 65, 52, 80, 90, 83, 66, 72, 55, 59, 86, 74, 54, 55, 74, 106, 59, 68, 64, 67, 62, 78, 59, 75, 55, 55, 66, 59, 78, 73, 68, 47, 54, 61, 64, 69, 52, 91, 83, 62, 67, 72, 63, 82, 70, 59, 65, 59, 60, 48, 63, 54, 50, 82, 61, 70, 77, 70, 64, 74, 55, 86, 49, 62, 86, 50, 67, 98, 46, 65, 65, 90, 63, 65, 71, 84, 81, 59, 54, 55, 58, 57, 58, 54, 93, 52, 44, 52, 67, 58, 60, 70, 61, 74, 98, 65, 82, 63, 70, 37, 72, 53, 61, 67, 68, 52, 89, 57, 55, 72, 56, 66, 79, 62, 67, 46, 67, 59, 86, 78, 56, 54, 87, 57, 82, 75, 72, 58, 68, 57, 60, 89, 55, 68, 57, 63, 57, 75, 66, 66, 57, 54, 72, 69, 96, 50, 66, 75, 91, 67, 62, 62, 58, 71, 81, 85, 67, 73, 78, 72, 63, 76, 102, 81, 57, 77, 73, 81, 53, 60, 57, 60, 70, 65, 51, 51, 84, 86, 47, 60, 66, 65, 45, 71, 51, 48, 86, 59, 56, 92, 65, 70, 56, 60, 86, 64, 51, 65, 73, 61, 60, 80, 70, 51, 68, 71, 65, 80, 83, 63, 53, 59, 61, 95, 79, 53, 68, 74, 61, 57, 77, 82, 76, 79, 57, 40, 75, 48, 57, 76, 58, 71, 80, 75, 56, 68, 56, 65, 70, 44, 63, 60, 67, 58, 76, 69, 81, 58, 65, 104, 66, 112, 99, 54, 64, 70, 70, 65, 70, 63, 69, 58, 92, 62, 78, 57, 61, 44, 61, 62, 67, 70, 62, 63, 67, 59, 65, 63, 51, 64, 61, 77, 66, 56, 65, 66, 67, 59, 77, 65, 57, 75, 66, 54, 52, 81, 73, 58, 73, 53, 52, 102, 55, 61, 58, 72, 60, 104, 62, 65, 57, 64, 64, 97, 80, 63, 63, 69, 52, 73, 67, 81, 63, 70, 74, 63, 60, 64, 53, 40, 122, 62, 74, 61, 65, 67, 53, 63, 90, 67, 54, 57, 80, 81, 65, 62, 60, 65, 64, 57, 60, 54, 63, 56, 96, 62, 57, 54, 62, 73, 81, 70, 59, 84, 78, 72, 82, 55, 61, 65, 88, 52, 71, 58, 67, 67, 68, 74, 63, 60, 54, 72, 60, 46, 51, 77, 64, 54, 97, 64, 96, 74, 56, 73, 65, 64, 71, 58, 70, 72, 60, 83, 60, 72, 61, 71, 71, 65, 52, 61, 76, 70, 58, 47, 55, 76, 71, 64, 69, 52, 60, 77, 59, 52, 61, 52, 62, 65, 68, 65, 103, 67, 57, 56, 72, 67, 80, 62, 66, 65, 54, 67, 52, 57, 61, 68, 77, 47, 69, 67, 68, 72, 54, 68, 67, 87, 59, 81, 68, 54, 66, 60, 51, 57, 48, 80, 56, 107, 60, 65, 64, 68, 67, 68, 65, 64, 68, 73, 63, 84, 65, 69, 81, 60, 49, 89, 72, 60, 84, 60, 75, 57, 61, 82, 56, 73, 60, 62, 61, 56, 70, 55, 66, 54, 96, 56, 63, 52, 88, 53, 83, 87, 57, 71, 67, 77, 60, 73, 91, 63, 54, 103, 38, 60, 78, 86, 77, 77, 52, 54, 62, 65, 115, 55, 60, 57, 75, 74, 69, 67, 66, 66, 66, 119, 49, 73, 60, 59, 79, 55, 70, 61, 65, 57, 58, 58, 81, 52, 94, 98, 80, 66, 58, 73, 79, 54, 80, 73, 99, 66, 70, 70, 52, 63, 59, 58, 101, 74, 57, 81, 57, 71, 96, 67, 66, 53, 65, 61, 70, 92, 55, 55, 64, 63, 56, 77, 61, 76, 67, 65, 47, 52, 51, 65, 66, 50, 46, 61, 60, 61, 93, 71, 55, 73, 66, 48, 59, 49, 59, 51, 75, 73, 116, 60, 75, 83, 62, 53, 73, 62, 102, 68, 54, 60, 57, 62, 65, 85, 66, 60, 79, 61, 82, 53, 72, 94, 61, 61, 61, 77, 64, 88, 56, 87, 100, 43, 72, 72, 97, 71, 67, 48, 91, 58, 73, 52, 65, 49, 54, 67, 56, 55, 55, 71, 75, 79, 52, 56, 65, 64, 70, 79, 56, 73, 74, 59, 74, 60, 60, 63, 122, 93, 70, 55, 75, 76, 61, 63, 62, 60, 52, 70, 71, 54, 75, 54, 40, 51, 67, 69, 61, 58, 51, 84, 59, 71, 59, 70, 59, 67, 63, 64, 63, 73, 71, 70, 57, 54, 57, 77, 66, 80, 62, 62, 56, 54, 63, 60, 81, 56, 45, 71, 58, 76, 73, 47, 58, 61, 61, 68, 66, 54, 93, 65, 57, 58, 58, 58, 69, 90, 62, 63, 55, 69, 74, 60, 91, 68, 65, 57, 55, 55, 56, 52, 82, 50, 56, 77, 84, 53, 66, 58, 83, 66, 55, 78, 63, 84, 56, 59, 70, 77, 64, 75, 58, 55, 56, 65, 70, 66, 59, 84, 78, 68, 65, 69, 71, 61, 59, 55, 50, 69, 67, 62, 52, 75, 96, 59, 58, 62, 61, 64, 58, 65, 59, 57, 62, 59, 50, 81, 62, 71, 58, 63, 77, 64, 45, 42, 64, 69, 44, 60, 54, 56, 77, 82, 71, 54, 71, 56, 64, 57, 63, 41, 67, 64, 70, 83, 55, 63, 60, 47, 58, 67, 82, 45, 75, 70, 70, 83, 60, 59, 83, 65, 59, 122, 52, 75, 45, 61, 52, 69, 65, 83, 65, 62, 79, 68, 63, 82, 48, 57, 86, 78, 64, 61, 77, 69, 63, 56, 67, 62, 67, 73, 76, 55, 51, 66, 57, 65, 53, 51, 64, 98, 55, 75, 80, 72, 69, 69, 72, 50, 54, 58, 68, 120, 95, 89, 76, 65, 69, 89, 79, 62, 71, 86, 50, 73, 63, 65, 62, 63, 68, 53, 60, 60, 66, 59, 78, 75, 59, 68, 57, 82, 68, 62, 66, 65, 54, 58, 64, 73, 86, 57, 62, 66, 49, 71, 77, 80, 88, 85, 51, 77, 55, 64, 74, 66, 71, 60, 59, 65, 65, 61, 42, 64, 63, 76, 64, 62, 73, 57, 59, 61, 57, 73, 52, 98, 50, 58, 46, 55, 50, 52, 71, 63, 86, 61, 82, 64, 49, 68, 68, 39, 53, 59, 50, 81, 72, 104, 63, 62, 70, 75, 72, 58, 79, 65, 64, 72, 61, 76, 48, 56, 60, 64, 80, 68, 71, 94, 70, 74, 76, 54, 58, 76, 59, 78, 52, 65, 61, 54, 62, 59, 84, 118, 64, 51, 85, 58, 69, 65, 58, 78, 76, 56, 62, 57, 78, 72, 58, 72, 47, 56, 67, 92, 69, 88, 69, 68, 80, 66, 58, 66, 59, 78, 64, 76, 63, 55, 49, 77, 54, 77, 82, 82, 69, 80, 48, 69, 56, 71, 69, 83, 78, 60, 59, 74, 71, 71, 55, 56, 58, 77, 62, 53, 66, 92, 85, 58, 74, 84, 56, 73, 49, 77, 77, 69, 67, 55, 68, 66, 103, 56, 72, 61, 55, 72, 76, 68, 57, 73, 86, 56, 71, 61, 57, 78, 71, 58, 65, 62, 63, 37, 69, 65, 52, 82, 64, 64, 46, 54, 56, 65, 59, 67, 71, 41, 65, 62, 88, 60, 54, 68, 68, 55, 103, 63, 65, 109, 61, 53, 44, 56, 57, 55, 65, 46, 72, 55, 58, 75, 74, 78, 41, 70, 45, 62, 65, 69, 56, 77, 66, 52, 54, 66, 66, 66, 55, 52, 76, 62, 88, 55, 78, 72, 58, 51, 44, 81, 61, 71, 66, 58, 62, 74, 76, 63, 69, 57, 59, 60, 63, 72, 54, 67, 50, 76, 57, 82, 62, 58, 69, 52, 63, 66, 70, 74, 67, 57, 57, 58, 83, 51, 53, 109, 77, 54, 53, 70, 93, 53, 58, 35, 72, 65, 72, 51, 64, 58, 67, 112, 59, 80, 63, 88, 54, 66, 58, 56, 65, 108, 61, 88, 68, 73, 90, 53, 60, 63, 44, 50, 58, 70, 48, 71, 78, 59, 71, 68, 46, 54, 69, 65, 55, 69, 57, 55, 83, 62, 62, 52, 66, 74, 51, 69, 83, 101, 59, 71, 59, 67, 65, 61, 65, 65, 61, 64, 105, 77, 63, 61, 44, 67, 89, 65, 75, 73, 63, 57, 73, 108, 63, 71, 58, 77, 71, 55, 59, 58, 59, 84, 52, 62, 148, 59, 56, 60, 50, 62, 72, 63, 49, 55, 46, 81, 74, 73, 79, 82, 64, 73, 63, 61, 68, 63, 86, 71, 69, 80, 60, 61, 44, 97, 89, 48, 47, 98, 65, 62, 66, 54, 65, 73, 85, 69, 70, 55, 48, 92, 57, 51, 39, 84, 60, 89, 78, 58, 63, 98, 65, 67, 87, 62, 100, 66, 58, 103, 90, 77, 70, 50, 58, 59, 52, 72, 75, 70, 56, 63, 70, 60, 60, 71, 109, 62, 43, 70, 68, 65, 55, 56, 56, 60, 73, 93, 68, 61, 53, 87, 61, 63, 69, 63, 75, 40, 86, 52, 52, 56, 82, 57, 55, 49, 60, 49, 56, 73, 55, 48, 68, 61, 59, 83, 56, 71, 72, 56, 73, 56, 76, 58, 39, 72, 55, 44, 61, 82, 63, 50, 67, 78, 54, 73, 67, 67, 62, 88, 70, 64, 62, 88, 64, 63, 66, 64, 58, 48, 64, 63, 74, 74, 68, 68, 85, 70, 74, 70, 47, 78, 59, 59, 61, 72, 68, 55, 93, 81, 53, 59, 74, 56, 69, 59, 65, 51, 47, 76, 55, 54, 56, 68, 62, 75, 49, 70, 54, 69, 61, 89, 57, 75, 52, 41, 62, 93, 42, 67, 65, 78, 70, 54, 61, 85, 70, 64, 50, 52, 53, 85, 62, 60, 62, 47, 72, 52, 69, 74, 71, 42, 68, 49, 43, 82, 67, 82, 60, 56, 75, 65, 60, 95, 66, 58, 83, 48, 86, 51, 47, 78, 73, 42, 60, 68, 76, 61, 97, 65, 77, 63, 70, 67, 51, 68, 62, 57, 49, 70, 56, 68, 64, 75, 77, 66, 73, 59, 74, 51, 66, 83, 65, 79, 55, 63, 68, 76, 63, 69, 78, 52, 52, 68, 56, 73, 76, 67, 55, 61, 61, 93, 56, 59, 69, 66, 59, 79, 64, 73, 50, 57, 77, 76, 47, 49, 57, 88, 54, 72, 75, 76, 91, 59, 60, 62, 66, 51, 65, 96, 52, 56, 76, 86, 69, 40, 58, 60, 59, 81, 96, 56, 67, 58, 68, 79, 48, 101, 83, 63, 65, 61, 77, 76, 59, 62, 65, 65, 46, 66, 77, 115, 67, 57, 82, 55, 95, 78, 74, 47, 105, 74, 63, 63, 64, 80, 81, 91, 72, 54, 76, 72, 66, 66, 71, 64, 62, 46, 68, 76, 66, 72, 76, 64, 57, 65, 58, 63, 66, 73, 58, 68, 67, 66, 60, 81, 51, 56, 52, 64, 61, 66, 52, 70, 98, 58, 59, 59, 52, 61, 93, 59, 58, 57, 58, 78, 52, 65, 71, 59, 61, 58, 61, 55, 83, 59, 51, 74, 79, 62, 73, 81, 99, 73, 80, 60, 68, 108, 59, 56, 41, 45, 66, 57, 63, 52, 64, 63, 76, 63, 46, 71, 52, 74, 56, 57, 62, 57, 69, 67, 73, 50, 66, 61, 53, 73, 83, 48, 73, 56, 53, 55, 63, 59, 62, 70, 63, 69, 69, 70, 65, 60, 73, 64, 63, 72, 54, 47, 146, 69, 70, 71, 64, 53, 71, 88, 59, 75, 77, 60, 68, 51, 79, 96, 66, 62, 80, 58, 66, 67, 50, 73, 58, 46, 50, 68, 114, 69, 64, 52, 88, 74, 58, 62, 77, 70, 46, 66, 70, 83, 39, 42, 62, 60, 57, 81, 43, 69, 63, 64, 90, 88, 80, 61, 74, 78, 59, 61, 71, 64, 64, 58, 55, 63, 55, 56, 64, 65, 58, 69, 59, 59, 51, 41, 59, 61, 58, 75, 55, 86, 56, 56, 69, 62, 86, 74, 102, 68, 51, 53, 65, 67, 63, 47, 70, 54, 62, 69, 61, 63, 63, 64, 98, 82, 46, 80, 71, 74, 66, 63, 84, 85, 74, 68, 59, 76, 81, 74, 75, 56, 66, 78, 70, 33, 71, 61, 50, 68, 60, 63, 54, 71, 59, 71, 53, 59, 73, 56, 67, 50, 93, 68, 90, 53, 81, 66, 70, 57, 54, 68, 67, 70, 75, 56, 68, 45, 60, 57, 58, 62, 58, 48, 59, 68, 68, 57, 37, 86, 56, 57, 69, 55, 82, 83, 75, 58, 73, 54, 61, 56, 50, 59, 61, 62, 63, 46, 61, 50, 57, 58, 63, 49, 53, 55, 82, 95, 66, 56, 53, 65, 43, 49, 75, 70, 65, 70, 52, 60, 57, 51, 71, 59, 57, 57, 62, 72, 86, 69, 66, 55, 55, 88, 59, 74, 46, 70, 85, 74, 66, 80, 60, 47, 73, 73, 50, 67, 62, 56, 80, 67, 55, 39, 65, 64, 87, 75, 63, 72, 81, 47, 71, 70, 79, 69, 52, 52, 69, 67, 47, 59, 50, 85, 83, 59, 67, 68, 55, 53, 57, 77, 67, 78, 59, 83, 66, 41, 59, 64, 59, 49, 60, 63, 77, 67, 62, 79, 68, 73, 58, 74, 69, 64, 78, 64, 62, 60, 67, 88, 75, 56, 65, 63, 63, 65, 71, 79, 68, 72, 98, 45, 55, 64, 45, 49, 67, 62, 62, 61, 144, 79, 48, 68, 66, 64, 72, 74, 69, 70, 62, 66, 94, 98, 51, 75, 65, 55, 46, 57, 54, 65, 79, 74, 32, 73, 67, 66, 74, 57, 60, 52, 84, 64, 92, 71, 51, 78, 62, 77, 87, 64, 66, 81, 92, 55, 60, 78, 57, 66, 73, 52, 61, 65, 68, 65, 57, 90, 74, 55, 49, 69, 56, 72, 55, 83, 62, 66, 54, 65, 76, 73, 53, 70, 65, 80, 62, 78, 67, 49, 52, 66, 50, 79, 71, 70, 73, 61, 86, 67, 77, 92, 72, 92, 52, 63, 78, 87, 72, 52, 54, 56, 70, 87, 90, 65, 64, 57, 71, 73, 58, 54, 70, 98, 77, 57, 57, 60, 82, 58, 68, 68, 60, 70, 52, 79, 57, 54, 71, 111, 60, 92, 56, 53, 53, 73, 51, 68, 71, 70, 51, 75, 76, 66, 76, 66, 75, 41, 49, 101, 63, 55, 71, 51, 60, 59, 54, 58, 60, 55, 62, 65, 49, 54, 76, 59, 70, 64, 71, 58, 64, 75, 47, 111, 96, 80, 64, 72, 61, 55, 66, 56, 62, 93, 60, 61, 81, 61, 57, 56, 77, 83, 54, 57, 108, 84, 71, 73, 68, 81, 61, 55, 60, 71, 85, 56, 62, 59, 69, 96, 38, 77, 104, 65, 77, 57, 78, 68, 59, 56, 49, 74, 59, 76, 79, 74, 59, 43, 68, 66, 63, 61, 77, 52, 73, 59, 90, 61, 68, 47, 63, 93, 57, 89, 67, 73, 65, 49, 66, 52, 55, 61, 121, 60, 63, 36, 60, 81, 86, 57, 48, 72, 53, 81, 54, 54, 62, 60, 42, 69, 82, 81, 71, 55, 79, 80, 81, 44, 70, 42, 64, 52, 76, 76, 72, 89, 59, 59, 57, 56, 49, 70, 60, 78, 73, 63, 62, 61, 52, 71, 63, 63, 57, 69, 84, 65, 49, 83, 63, 61, 66, 59, 75, 67, 59, 52, 53, 93, 70, 81, 54, 85, 55, 79, 65, 67, 54, 45, 57, 58, 76, 62, 50, 63, 63, 44, 54, 72, 52, 48, 59, 67, 78, 70, 52, 76, 86, 70, 67, 69, 68, 50, 59, 49, 65, 79, 67, 59, 67, 82, 66, 73, 52, 90, 61, 48, 91, 54, 89, 80, 62, 59, 72, 67, 60, 60, 70, 52, 53, 38, 62, 74, 66, 69, 50, 69, 79, 45, 57, 70, 100, 66, 61, 61, 72, 47, 79, 60, 56, 76, 66, 44, 59, 58, 59, 61, 67, 47, 51, 58, 76, 55, 74, 97, 64, 92, 91, 63, 71, 56, 84, 77, 64, 63, 65, 74, 62, 76, 67, 56, 67, 50, 65, 48, 59, 56, 73, 67, 64, 61, 64, 50, 66, 52, 75, 56, 65, 81, 66, 82, 62, 69, 79, 77, 68, 61, 64, 81, 66, 70, 69, 63, 67, 75, 95, 51, 84, 71, 48, 93, 61, 93, 41, 73, 71, 72, 52, 80, 60, 68, 68, 65, 89, 75, 56, 74, 68, 87, 50, 65, 50, 65, 78, 68, 79, 55, 79, 56, 59, 71, 67, 79, 44, 74, 67, 73, 90, 81, 60, 57, 72, 62, 74, 47, 51, 85, 40, 62, 82, 87, 60, 62, 54, 62, 59, 59, 46, 65, 86, 62, 54, 62, 68, 99, 52, 64, 70, 67, 74, 64, 89, 65, 58, 68, 64, 80, 87, 52, 70, 52, 92, 68, 47, 78, 71, 59, 50, 119, 48, 81, 59, 61, 72, 52, 48, 74, 64, 76, 65, 70, 58, 62, 165, 61, 61, 53, 51, 62, 63, 54, 67, 79, 80, 76, 97, 67, 58, 70, 63, 67, 53, 54, 64, 40, 59, 61, 57, 88, 62, 43, 70, 80, 62, 42, 49, 61, 78, 63, 86, 71, 77, 82, 71, 52, 44, 58, 54, 61, 53, 90, 66, 59, 43, 71, 53, 92, 76, 53, 82, 67, 70, 52, 77, 68, 72, 58, 65, 53, 72, 77, 79, 70, 79, 42, 61, 85, 75, 67, 47, 94, 67, 62, 89, 97, 60, 65, 69, 55, 74, 57, 76, 58, 66, 79, 60, 83, 69, 71, 70, 79, 59, 62, 86, 65, 67, 56, 73, 59, 56, 71, 42, 68, 66, 64, 56, 53, 73, 61, 69, 72, 84, 53, 80, 58, 76, 93, 74, 61, 70, 58, 57, 72, 68, 58, 54, 48, 59, 67, 54, 64, 65, 44, 62, 60, 73, 63, 64, 79, 60, 64, 77, 67, 68, 41, 72, 61, 82, 78, 53, 70, 82, 65, 89, 64, 77, 81, 68, 69, 80, 60, 68, 60, 62, 62, 68, 63, 88, 70, 67, 54, 60, 81, 97, 45, 69, 68, 66, 80, 57, 62, 54, 61, 65, 67, 71, 58, 62, 74, 57, 73, 62, 59, 55, 56, 72, 56, 61, 56, 133, 107, 66, 40, 54, 62, 54, 81, 62, 70, 60, 53, 69, 47, 45, 68, 59, 83, 60, 86, 73, 83, 55, 64, 69, 77, 67, 59, 72, 52, 76, 87, 59, 54, 65, 52, 62, 68, 69, 62, 72, 84, 64, 59, 52, 68, 72, 72, 73, 77, 51, 73, 71, 66, 77, 85, 51, 64, 61, 49, 62, 69, 62, 48, 63, 69, 52, 55, 70, 68, 63, 65, 55, 75, 60, 47, 77, 67, 58, 71, 60, 66, 55, 74, 66, 60, 65, 56, 59, 53, 82, 65, 62, 65, 54, 60, 76, 69, 87, 68, 99, 70, 81, 67, 67, 74, 53, 65, 61, 66, 72, 43, 53, 63, 50, 70, 77, 98, 65, 51, 69, 62, 83, 116, 52, 77, 73, 55, 65, 61, 68, 84, 57, 77, 63, 53, 50, 65, 98, 51, 63, 68, 121, 67, 72, 69, 64, 44, 82, 59, 63, 78, 57, 63, 59, 59, 108, 88, 81, 59, 106, 80, 65, 64, 60, 64, 74, 61, 87, 66, 69, 99, 83, 66, 58, 61, 64, 55, 66, 62, 59, 52, 47, 49, 66, 54, 67, 53, 61, 63, 66, 61, 59, 52, 65, 69, 77, 55, 46, 66, 68, 58, 62, 48, 74, 57, 59, 72, 60, 58, 63, 57, 64, 74, 58, 58, 64, 86, 59, 63, 51, 70, 76, 63, 56, 62, 56, 42, 79, 48, 76, 73, 57, 70, 84, 77, 80, 71, 52, 60, 55, 75, 100, 60, 88, 59, 133, 52, 51, 80, 62, 61, 84, 55, 67, 62, 56, 49, 68, 82, 73, 90, 59, 70, 43, 63, 64, 43, 56, 54, 62, 53, 60, 49, 54, 63, 93, 57, 87, 75, 74, 66, 75, 77, 64, 76, 64, 48, 64, 53, 109, 64, 58, 66, 78, 64, 86, 50, 46, 58, 57, 64, 71, 52, 80, 55, 73, 51, 66, 46, 57, 72, 59, 74, 57, 71, 53, 46, 73, 56, 79, 58, 53, 71, 61, 104, 83, 66, 61, 69, 59, 47, 61, 81, 50, 68, 59, 104, 56, 75, 74, 83, 61, 78, 69, 51, 59, 65, 57, 95, 67, 52, 58, 65, 76, 54, 65, 43, 61, 60, 72, 65, 55, 65, 62, 68, 64, 70, 54, 57, 59, 52, 48, 75, 42, 105, 67, 48, 61, 64, 58, 58, 70, 48, 49, 78, 60, 76, 56, 71, 51, 51, 63, 53, 60, 66, 67, 69, 57, 63, 63, 52, 57, 58, 68, 56, 89, 50, 63, 66, 70, 54, 78, 57, 85, 70, 65, 66, 64, 61, 73, 106, 44, 92, 91, 53, 55, 57, 59, 84, 60, 65, 104, 63, 64, 48, 59, 63, 61, 65, 66, 64, 73, 45, 63, 65, 52, 57, 91, 76, 60, 58, 70, 68, 64, 98, 69, 79, 134, 56, 37, 57, 77, 71, 62, 66, 66, 61, 53, 63, 59, 61, 50, 68, 54, 70, 42, 56, 46, 67, 68, 52, 78, 51, 64, 80, 49, 51, 66, 70, 68, 55, 63, 92, 71, 57, 75, 64, 86, 63, 63, 71, 58, 58, 63, 58, 108, 87, 45, 40, 71, 69, 52, 52, 71, 70, 84, 74, 58, 58, 51, 73, 82, 60, 59, 93, 44, 51, 120, 65, 69, 40, 51, 66, 44, 66, 52, 67, 78, 75, 69, 62, 62, 58, 48, 59, 55, 66, 72, 52, 57, 82, 62, 61, 64, 75, 72, 79, 61, 53, 73, 53, 73, 58, 91, 54, 50, 63, 64, 72, 89, 65, 63, 81, 55, 47, 64, 81, 64, 65, 54, 57, 81, 68, 66, 55, 70, 87, 67, 65, 67, 80, 73, 74, 70, 56, 53, 59, 52, 50, 58, 47, 50, 71, 65, 67, 89, 78, 55, 66, 63, 69, 68, 88, 60, 73, 70, 53, 81, 56, 54, 93, 82, 73, 73, 71, 61, 75, 69, 44, 69, 56, 94, 52, 68, 53, 90, 57, 49, 55, 62, 79, 56, 77, 77, 74, 49, 41, 48, 61, 80, 87, 53, 41, 78, 64, 46, 50, 94, 127, 43, 73, 43, 71, 58, 73, 76, 57, 64, 65, 56, 59, 50, 74, 81, 62, 49, 104, 70, 70, 63, 55, 77, 54, 69, 49, 69, 69, 80, 80, 54, 50, 53, 67, 65, 57, 60, 70, 61, 51, 72, 69, 62, 64, 58, 35, 55, 49, 79, 88, 74, 68, 48, 58, 69, 108, 64, 45, 67, 76, 65, 79, 37, 65, 71, 72, 75, 66, 75, 53, 74, 47, 48, 64, 75, 54, 53, 62, 62, 49, 72, 66, 66, 62, 87, 60, 61, 70, 72, 76, 55, 72, 63, 51, 71, 55, 74, 64, 75, 55, 54, 60, 57, 52, 80, 94, 69, 58, 58, 103, 59, 70, 50, 62, 63, 60, 55, 84, 61, 80, 78, 46, 80, 74, 55, 68, 66, 62, 74, 70, 60, 71, 52, 65, 59, 53, 66, 59, 71, 112, 71, 58, 55, 69, 66, 76, 72, 65, 74, 64, 96, 72, 59, 100, 77, 60, 74, 91, 121, 76, 89, 64, 63, 58, 96, 55, 61, 93, 79, 87, 65, 49, 63, 70, 62, 38, 51, 56, 62, 70, 54, 95, 75, 62, 100, 85, 76, 67, 67, 65, 83, 63, 73, 61, 45, 115, 64, 81, 86, 60, 80, 67, 65, 61, 92, 70, 79, 61, 39, 62, 66, 69, 54, 57, 60, 57, 59, 65, 63, 35, 62, 51, 60, 57, 72, 76, 65, 63, 68, 100, 52, 71, 74, 73, 73, 80, 54, 60, 60, 80, 61, 63, 61, 53, 66, 54, 50, 62, 65, 64, 52, 64, 89, 63, 70, 61, 77, 72, 67, 66, 67, 63, 58, 50, 60, 56, 74, 62, 75, 49, 47, 51, 62, 59, 64, 58, 54, 103, 81, 72, 57, 62, 75, 62, 78, 57, 59, 62, 72, 50, 72, 64, 70, 79, 50, 55, 68, 69, 62, 74, 68, 48, 126, 44, 98, 81, 57, 43, 63, 58, 64, 73, 52, 92, 65, 65, 60, 51, 110, 64, 78, 67, 69, 70, 70, 60, 47, 52, 60, 78, 84, 78, 43, 57, 49, 60, 64, 49, 29, 120, 72, 57, 60, 121, 63, 51, 51, 85, 61, 64, 51, 57, 61, 68, 48, 60, 82, 80, 77, 50, 66, 48, 64, 88, 104, 64, 59, 59, 72, 74, 76, 67, 56, 79, 70, 89, 62, 65, 49, 61, 60, 59, 56, 61, 54, 54, 54, 61, 66, 76, 58, 53, 56, 55, 63, 88, 89, 77, 60, 80, 66, 56, 58, 54, 68, 66, 61, 60, 73, 59, 66, 54, 70, 61, 77, 118, 74, 67, 53, 65, 81, 51, 77, 55, 66, 65, 52, 62, 75, 62, 63, 39, 64, 56, 56, 69, 96, 50, 54, 50, 67, 64, 66, 62, 74, 52, 72, 56, 82, 48, 51, 60, 40, 67, 61, 62, 83, 62, 50, 61, 86, 59, 61, 59, 90, 81, 69, 68, 83, 66, 46, 52, 48, 51, 68, 94, 60, 70, 71, 60, 76, 48, 48, 64, 63, 69, 90, 59, 71, 66, 60, 53, 65, 72, 68, 64, 56, 67, 50, 63, 75, 41, 98, 47, 91, 56, 92, 82, 63, 60, 38, 54, 62, 50, 75, 72, 51, 80, 57, 67, 85, 54, 63, 103, 139, 79, 60, 75, 53, 63, 69, 59, 63, 46, 80, 78, 80, 56, 59, 69, 79, 77, 79, 63, 99, 71, 45, 59, 65, 52, 68, 53, 69, 61, 61, 57, 72, 62, 63, 68, 60, 81, 76, 80, 80, 87, 102, 69, 58, 58, 78, 77, 66, 66, 62, 65, 69, 75, 67, 73, 71, 88, 45, 60, 53, 64, 60, 75, 87, 74, 57, 72, 74, 63, 59, 60, 85, 57, 56, 55, 78, 62, 58, 87, 73, 54, 54, 64, 73, 60, 128, 91, 58, 73, 71, 48, 58, 55, 86, 52, 60, 39, 93, 102, 76, 110, 67, 60, 66, 63, 56, 54, 70, 46, 65, 38, 61, 66, 64, 82, 80, 59, 62, 94, 66, 50, 72, 84, 94, 62, 62, 46, 57, 95, 86, 64, 49, 76, 61, 55, 64, 62, 63, 63, 67, 61, 56, 63, 69, 66, 120, 54, 83, 68, 53, 60, 60, 54, 59, 60, 67, 70, 51, 69, 56, 63, 55, 75, 59, 67, 58, 60, 54, 76, 55, 58, 58, 81, 70, 55, 51, 70, 67, 71, 52, 59, 43, 73, 59, 57, 64, 46, 72, 93, 82, 61, 55, 51, 66, 49, 80, 61, 50, 81, 84, 71, 47, 74, 77, 38, 55, 61, 68, 70, 57, 65, 84, 68, 73, 83, 61, 70, 62, 74, 61, 68, 70, 65, 44, 70, 68, 82, 57, 62, 43, 60, 59, 54, 62, 57, 47, 72, 55, 80, 66, 68, 52, 56, 57, 46, 65, 82, 59, 78, 97, 62, 80, 57, 74, 67, 63, 66, 53, 83, 87, 86, 51, 93, 47, 54, 70, 47, 50, 107, 72, 76, 79, 76, 63, 74, 50, 51, 83, 71, 64, 53, 62, 75, 59, 75, 73, 61, 77, 74, 55, 60, 52, 82, 62, 84, 71, 77, 122, 44, 60, 54, 64, 65, 47, 63, 76, 66, 55, 70, 85, 50, 51, 44, 71, 51, 78, 58, 62, 51, 52, 45, 84, 65, 54, 62, 71, 117, 52, 56, 43, 65, 65, 57, 65, 82, 52, 60, 107, 74, 64, 87, 51, 74, 59, 68, 52, 87, 69, 71, 81, 47, 72, 68, 49, 68, 77, 67, 82, 48, 70, 54, 65, 87, 47, 55, 95, 36, 96, 56, 82, 67, 64, 79, 70, 50, 56, 98, 82, 69, 72, 56, 58, 44, 51, 49, 59, 55, 64, 72, 69, 70, 57, 56, 58, 94, 62, 62, 100, 59, 77, 41, 88, 54, 64, 47, 53, 78, 50, 70, 78, 49, 56, 49, 60, 60, 61, 66, 71, 58, 75, 79, 108, 69, 49, 52, 47, 50, 57, 55, 77, 88, 66, 58, 51, 74, 65, 71, 52, 47, 62, 70, 67, 56, 50, 72, 74, 60, 57, 58, 55, 66, 54, 70, 76, 75, 55, 54, 70, 52, 55, 76, 77, 50, 64, 70, 69, 54, 70, 68, 62, 61, 75, 53, 59, 52, 52, 68, 66, 65, 63, 61, 56, 58, 47, 74, 69, 58, 70, 76, 51, 60, 51, 69, 63, 53, 69, 57, 88, 137, 101, 93, 65, 65, 63, 72, 85, 67, 56, 55, 57, 64, 48, 76, 79, 70, 67, 143, 65, 85, 61, 80, 63, 57, 65, 46, 74, 65, 64, 75, 54, 63, 62, 72, 77, 66, 68, 53, 61, 64, 53, 51, 40, 49, 61, 59, 49, 58, 84, 81, 86, 65, 70, 58, 60, 54, 65, 70, 88, 70, 69, 55, 68, 57, 81, 71, 50, 50, 78, 60, 69, 88, 63, 49, 55, 62, 65, 71, 84, 64, 50, 59, 48, 82, 62, 99, 43, 40, 67, 59, 62, 70, 82, 66, 66, 56, 66, 53, 102, 46, 72, 64, 52, 61, 64, 66, 74, 66, 63, 105, 60, 109, 66, 62, 87, 66, 72, 68, 68, 49, 60, 67, 66, 61, 50, 64, 49, 52, 51, 62, 66, 68, 72, 47, 56, 52, 85, 64, 66, 75, 52, 60, 50, 79, 54, 68, 66, 71, 38, 54, 89, 56, 63, 109, 78, 80, 47, 73, 132, 86, 70, 59, 75, 63, 78, 57, 75, 67, 63, 72, 71, 53, 61, 103, 54, 54, 48, 66, 74, 57, 64, 78, 70, 75, 59, 47, 62, 64, 67, 74, 66, 70, 57, 87, 70, 116, 57, 83, 79, 58, 53, 61, 64, 87, 47, 66, 60, 52, 51, 55, 51, 84, 56, 65, 65, 64, 53, 58, 65, 57, 109, 59, 68, 69, 77, 68, 79, 67, 57, 52, 67, 73, 62, 75, 74, 73, 57, 51, 48, 69, 67, 77, 55, 46, 64, 73, 55, 57, 79, 60, 64, 69, 66, 56, 77, 79, 78, 58, 88, 71, 56, 87, 81, 72, 65, 74, 77, 55, 55, 86, 51, 62, 74, 56, 46, 55, 91, 54, 72, 67, 59, 74, 77, 56, 79, 61, 58, 75, 81, 75, 70, 70, 73, 72, 58, 60, 79, 64, 67, 48, 72, 52, 73, 65, 56, 76, 66, 70, 63, 50, 78, 52, 79, 82, 66, 56, 64, 50, 90, 52, 61, 69, 80, 84, 83, 44, 61, 80, 47, 56, 70, 57, 63, 68, 63, 58, 50, 59, 66, 94, 66, 84, 54, 125, 71, 74, 79, 56, 67, 74, 67, 56, 82, 59, 57, 64, 60, 52, 68, 95, 58, 52, 55, 64, 56, 83, 53, 47, 61, 67, 65, 78, 53, 47, 62, 61, 42, 75, 79, 73, 55, 54, 53, 68, 75, 57, 58, 76, 95, 62, 60, 54, 69, 59, 54, 57, 113, 61, 55, 54, 55, 63, 63, 67, 49, 75, 50, 68, 61, 66, 72, 60, 55, 56, 61, 90, 85, 109, 68, 74, 61, 71, 79, 51, 65, 47, 52, 50, 69, 53, 57, 74, 52, 56, 59, 63, 62, 63, 71, 62, 71, 69, 66, 89, 60, 76, 57, 67, 60, 75, 72, 52, 81, 62, 64, 77, 58, 69, 85, 76, 67, 58, 54, 62, 70, 53, 118, 55, 71, 61, 57, 64, 66, 63, 87, 55, 106, 56, 70, 69, 59, 67, 62, 80, 57, 71, 67, 79, 63, 71, 64, 55, 77, 56, 68, 80, 59, 65, 52, 75, 56, 67, 78, 53, 59, 66, 80, 64, 70, 74, 68, 48, 52, 55, 56, 63, 90, 69, 60, 50, 103, 108, 62, 67, 128, 50, 63, 55, 57, 74, 73, 82, 79, 74, 59, 45, 95, 81, 64, 57, 71, 71, 81, 53, 65, 63, 69, 53, 79, 69, 85, 72, 53, 47, 66, 59, 57, 61, 56, 82, 74, 56, 68, 76, 62, 69, 76, 65, 60, 63, 62, 72, 56, 59, 53, 67, 62, 45, 69, 64, 75, 67, 58, 49, 55, 71, 52, 75, 64, 66, 63, 59, 67, 62, 87, 59, 75, 76, 79, 57, 53, 68, 68, 65, 45, 68, 58, 74, 72, 73, 125, 73, 61, 59, 59, 52, 61, 62, 71, 53, 55, 62, 116, 60, 56, 77, 53, 62, 61, 71, 62, 55, 78, 67, 55, 75, 62, 63, 76, 64, 66, 74, 60, 89, 61, 71, 54, 63, 50, 54, 83, 75, 47, 75, 98, 62, 61, 86, 79, 69, 73, 60, 62, 46, 72, 70, 55, 72, 74, 66, 85, 51, 64, 72, 46, 52, 65, 71, 57, 68, 69, 71, 60, 69, 58, 76, 53, 66, 72, 55, 64, 64, 63, 66, 79, 65, 68, 87, 69, 64, 77, 78, 94, 58, 66, 82, 64, 85, 59, 62, 53, 77, 77, 90, 96, 52, 64, 65, 66, 59, 58, 51, 58, 64, 53, 53, 46, 76, 54, 65, 43, 75, 46, 60, 64, 74, 82, 63, 53, 85, 74, 60, 64, 61, 60, 58, 77, 61, 69, 54, 64, 61, 65, 57, 72, 68, 94, 60, 60, 61, 59, 67, 70, 70, 51, 77, 53, 57, 59, 63, 62, 81, 56, 57, 65, 76, 58, 84, 85, 54, 82, 80, 82, 135, 60, 71, 56, 71, 61, 54, 46, 58, 60, 86, 63, 58, 74, 52, 62, 57, 68, 44, 64, 57, 63, 66, 65, 54, 65, 58, 58, 58, 56, 63, 48, 57, 61, 53, 59, 104, 61, 56, 69, 86, 50, 57, 72, 64, 61, 65, 61, 67, 56, 66, 68, 68, 57, 55, 65, 54, 67, 55, 61, 68, 57, 76, 66, 58, 51, 76, 56, 53, 74, 67, 107, 56, 77, 79, 56, 50, 84, 75, 114, 59, 49, 56, 54, 71, 61, 59, 62, 49, 74, 65, 58, 63, 63, 60, 80, 70, 59, 64, 54, 57, 68, 58, 58, 66, 71, 75, 57, 67, 102, 68, 85, 43, 61, 59, 57, 58, 47, 78, 62, 77, 59, 75, 68, 75, 64, 110, 65, 73, 69, 77, 73, 78, 72, 64, 64, 88, 55, 56, 85, 50, 54, 68, 57, 50, 88, 68, 50, 94, 67, 70, 57, 92, 47, 58, 59, 62, 89, 61, 70, 65, 75, 73, 68, 71, 57, 80, 61, 78, 56, 86, 59, 64, 62, 60, 74, 67, 56, 58, 68, 70, 70, 52, 105, 56, 64, 64, 68, 65, 44, 59, 55, 67, 61, 59, 84, 79, 56, 50, 58, 63, 60, 45, 79, 72, 75, 71, 78, 60, 76, 62, 69, 78, 58, 60, 62, 71, 77, 64, 60, 53, 48, 64, 81, 77, 57, 71, 65, 84, 61, 57, 70, 63, 64, 56, 69, 57, 95, 61, 68, 121, 83, 61, 83, 63, 78, 62, 74, 54, 69, 94, 63, 65, 70, 77, 58, 58, 59, 97, 73, 69, 70, 66, 53, 72, 72, 73, 67, 63, 72, 68, 73, 64, 51, 54, 59, 79, 58, 54, 73, 69, 62, 68, 84, 59, 55, 96, 64, 40, 77, 85, 62, 67, 68, 53, 44, 74, 67, 69, 95, 55, 66, 49, 75, 56, 61, 51, 59, 54, 78, 65, 51, 53, 61, 77, 91, 73, 83, 73, 65, 73, 67, 80, 61, 52, 74, 63, 71, 64, 52, 71, 62, 65, 61, 51, 75, 57, 52, 56, 73, 62, 47, 82, 66, 58, 57, 73, 70, 55, 66, 51, 61, 72, 54, 62, 51, 70, 55, 70, 61, 67, 56, 54, 53, 59, 72, 82, 82, 64, 57, 57, 55, 69, 69, 74, 51, 68, 60, 50, 76, 60, 64, 70, 59, 64, 71, 77, 60, 55, 55, 64, 74, 78, 65, 80, 61, 74, 56, 52, 135, 59, 57, 55, 49, 70, 85, 62, 73, 51, 53, 56, 58, 67, 62, 49, 52, 54, 64, 59, 54, 60, 63, 66, 69, 70, 73, 51, 58, 56, 59, 59, 58, 65, 65, 63, 87, 108, 65, 82, 83, 56, 66, 69, 61, 62, 53, 57, 67, 58, 61, 78, 74, 101, 77, 64, 57, 64, 71, 66, 56, 65, 50, 65, 64, 64, 66, 62, 68, 49, 77, 79, 58, 60, 86, 57, 70, 81, 65, 72, 66, 69, 65, 74, 66, 47, 66, 73, 55, 70, 61, 71, 52, 62, 56, 55, 59, 48, 58, 66, 59, 61, 83, 74, 52, 63, 53, 62, 67, 52, 68, 68, 59, 72, 54, 66, 60, 49, 54, 54, 77, 47, 59, 79, 66, 68, 53, 76, 61, 55, 56, 71, 70, 58, 86, 56, 56, 64, 68, 62, 53, 70, 51, 61, 100, 51, 44, 59, 101, 65, 53, 92, 69, 65, 59, 89, 58, 57, 54, 54, 82, 57, 56, 55, 77, 52, 66, 63, 74, 47, 62, 52, 69, 62, 50, 68, 58, 68, 60, 73, 78, 85, 58, 73, 55, 116, 62, 63, 65, 57, 55, 71, 73, 54, 78, 74, 62, 67, 81, 65, 58, 65, 63, 55, 58, 68, 70, 73, 53, 64, 49, 71, 58, 68, 53, 64, 63, 60, 62, 85, 94, 55, 61, 62, 64, 56, 58, 76, 50, 75, 78, 69, 67, 71, 67, 61, 50, 76, 83, 55, 68, 52, 62, 59, 62, 59, 71, 74, 60, 66, 50, 53, 67, 70, 49, 77, 58, 97, 47, 105, 62, 60, 62, 71, 68, 76, 60, 63, 59, 70, 66, 57, 59, 60, 71, 52, 57, 81, 61, 57, 56, 62, 72, 56, 70, 56, 58, 62, 67, 65, 55, 64, 67, 62, 58, 65, 60, 80, 65, 60, 55, 60, 77, 53, 57, 81, 61, 63, 112, 54, 62, 80, 74, 61, 56, 69, 62, 61, 71, 72, 61, 64, 92, 68, 57, 64, 56, 60, 79, 79, 56, 64, 64, 59, 61, 56, 72, 76, 61, 57, 61, 72, 55, 58, 67, 56, 63, 69, 83, 72, 74, 63, 54, 70, 72, 66, 66, 69, 78, 62, 54, 64, 91, 97, 74, 64, 137, 65, 70, 71, 67, 79, 67, 72, 58, 77, 58, 75, 93, 83, 60, 54, 57, 57, 56, 53, 68, 63, 60, 66, 55, 57, 61, 53, 57, 56, 68, 65, 67, 52, 52, 60, 82, 77, 56, 70, 69, 87, 59, 62, 68, 54, 63, 56, 45, 59, 60, 59, 68, 60, 48, 55, 51, 64, 63, 66, 53, 70, 73, 70, 66, 61, 75, 61, 60, 52, 70, 55, 67, 66, 59, 56, 67, 58, 54, 63, 59, 67, 63, 65, 78, 75, 112, 65, 69, 66, 86, 75, 69, 56, 70, 63, 55, 66, 114, 72, 57, 76, 65, 56, 56, 64, 57, 59, 77, 62, 52, 87, 69, 64, 55, 58, 60, 65, 55, 70, 55, 68, 59, 83, 62, 71, 88, 72, 64, 88, 106, 59, 56, 70, 56, 63, 64, 65, 61, 76, 58, 57, 75, 68, 70, 56, 95, 60, 63, 74, 65, 72, 72, 76, 56, 65, 58, 61, 60, 57, 56, 81, 65, 58, 67, 52, 69, 54, 75, 73, 64, 55, 60, 80, 54, 57, 58, 66, 116, 61, 80, 62, 68, 80, 70, 64, 52, 76, 46, 79, 62, 60, 67, 56, 54, 52, 63, 60, 61, 66, 65, 58, 57, 64, 54, 62, 72, 73, 57, 69, 56, 76, 75, 71, 55, 93, 69, 75, 51, 66, 65, 58, 64, 49, 62, 58, 72, 61, 64, 75, 50, 66, 55, 54, 80, 40, 62, 69, 66, 63, 60, 63, 67, 71, 78, 65, 50, 72, 63, 70, 68, 73, 81, 87, 65, 62, 48, 56, 68, 136, 72, 74, 57, 86, 65, 65, 54, 49, 61, 62, 65, 58, 92, 64, 64, 65, 62, 59, 76, 61, 86, 57, 68, 61, 69, 72, 73, 66, 74, 65, 58, 50, 62, 67, 68, 113, 54, 59, 88, 78, 61, 64, 61, 61, 63, 63, 59, 57, 62, 68, 54, 83, 65, 60, 78, 57, 67, 60, 50, 64, 53, 81, 63, 55, 59, 65, 52, 43, 64, 85, 54, 61, 65, 76, 54, 56, 58, 58, 129, 56, 58, 64, 73, 60, 66, 56, 51, 76, 69, 58, 73, 64, 67, 85, 59, 60, 66, 64, 61, 57, 62, 53, 72, 59, 64, 70, 70, 51, 123, 77, 79, 55, 60, 63, 73, 57, 50, 62, 71, 86, 64, 70, 63, 57, 67, 65, 63, 71, 47, 65, 53, 78, 48, 58, 60, 75, 73, 55, 69, 57, 64, 59, 52, 52, 86, 56, 59, 49, 71, 61, 86, 50, 47, 57, 56, 70, 86, 75, 50, 60, 82, 70, 80, 55, 63, 61, 55, 84, 62, 72, 59, 63, 46, 69, 59, 72, 70, 64, 75, 71, 73, 64, 64, 82, 56, 70, 64, 67, 66, 62, 75, 69, 64, 70, 66, 83, 49, 65, 49, 61, 61, 79, 78, 59, 60, 64, 67, 57, 63, 61, 52, 65, 73, 65, 62, 75, 81, 65, 43, 61, 61, 51, 86, 69, 74, 70, 60, 46, 60, 62, 58, 67, 51, 64, 73, 75, 92, 56, 84, 118, 96, 81, 55, 78, 65, 55, 62, 61, 68, 63, 73, 73, 67, 76, 50, 72, 65, 120, 61, 63, 79, 74, 71, 53, 63, 62, 56, 62, 73, 67, 59, 51, 60, 67, 54, 50, 82, 68, 61, 62, 56, 55, 67, 71, 74, 115, 81, 59, 69, 58, 53, 64, 60, 56, 63, 52, 59, 59, 52, 53, 59, 62, 85, 62, 61, 70, 75, 60, 79, 65, 63, 72, 65, 76, 75, 81, 61, 81, 64, 67, 68, 50, 54, 42, 58, 69, 53, 59, 56, 64, 68, 69, 56, 84, 59, 62, 56, 63, 74, 63, 63, 60, 68, 57, 59, 61, 60, 63, 50, 54, 65, 55, 69, 57, 56, 51, 73, 80, 56, 71, 51, 67, 63, 55, 65, 58, 57, 61, 68, 58, 68, 46, 71, 70, 58, 61, 55, 64, 70, 59, 58, 62, 83, 74, 63, 70, 71, 46, 61, 50, 63, 68, 62, 69, 70, 57, 66, 73, 135, 59, 58, 63, 48, 71, 78, 67, 68, 67, 62, 62, 58, 54, 61, 41, 63, 54, 64, 54, 59, 64, 50, 63, 63, 53, 74, 53, 64, 57, 61, 71, 70, 66, 66, 64, 55, 57, 58, 71, 57, 65, 58, 73, 60, 70, 91, 56, 53, 67, 61, 58, 77, 81, 59, 64, 59, 76, 62, 66, 65, 72, 53, 44, 68, 68, 69, 63, 80, 60, 56, 81, 65, 66, 76, 59, 68, 68, 64, 89, 72, 64, 59, 55, 57, 51, 64, 75, 60, 64, 69, 85, 86, 60, 57, 53, 69, 73, 61, 59, 70, 68, 48, 68, 59, 57, 47, 70, 72, 77, 73, 56, 60, 50, 69, 68, 51, 57, 61, 58, 65, 75, 69, 78, 62, 82, 63, 72, 63, 66, 82, 73, 65, 69, 70, 70, 66, 61, 53, 65, 71, 73, 60, 73, 77, 53, 56, 61, 62, 62, 78, 75, 63, 63, 57, 75, 61, 81, 58, 55, 90, 51, 51, 65, 87, 73, 74, 58, 49, 81, 66, 69, 75, 54, 68, 69, 73, 61, 61, 58, 73, 75, 75, 90, 68, 98, 61, 66, 67, 58, 48, 80, 51, 58, 69, 60, 59, 85, 51, 53, 89, 82, 65, 60, 67, 53, 57, 80, 68, 71, 72, 67, 58, 60, 65, 60, 64, 65, 63, 59, 72, 75, 57, 75, 76, 75, 58, 63, 57, 85, 75, 70, 53, 69, 72, 55, 67, 83, 77, 62, 79, 65, 70, 55, 58, 51, 86, 69, 59, 64, 71, 51, 63, 69, 45, 76, 59, 85, 61, 107, 55, 75, 66, 65, 62, 57, 60, 59, 59, 57, 63, 61, 52, 60, 64, 76, 79, 72, 55, 56, 64, 63, 60, 72, 60, 85, 58, 79, 52, 63, 56, 48, 51, 61, 58, 59, 68, 63, 69, 60, 50, 73, 84, 57, 76, 84, 79, 84, 132, 51, 71, 60, 70, 58, 59, 72, 80, 60, 78, 53, 60, 71, 69, 89, 67, 104, 56, 53, 72, 88, 59, 62, 64, 53, 56, 66, 69, 55, 59, 52, 61, 82, 66, 73, 70, 68, 63, 69, 79, 58, 79, 72, 66, 70, 54, 58, 57, 57, 57, 75, 67, 55, 104, 92, 39, 60, 138, 57, 64, 59, 59, 69, 73, 81, 60, 78, 66, 63, 79, 51, 68, 61, 118, 76, 98, 56, 59, 60, 74, 81, 72, 51, 56, 63, 75, 78, 56, 72, 59, 82, 64, 57, 71, 66, 61, 62, 74, 80, 79, 64, 61, 69, 57, 53, 83, 60, 63, 60, 60, 61, 74, 63, 55, 58, 61, 56, 60, 53, 61, 92, 69, 57, 78, 56, 59, 59, 63, 68, 78, 65, 63, 54, 63, 63, 59, 64, 62, 78, 69, 66, 72, 101, 125, 72, 65, 80, 54, 58, 45, 61, 72, 54, 66, 49, 126, 41, 68, 62, 65, 61, 59, 66, 52, 74, 51, 69, 60, 65, 54, 54, 58, 59, 61, 61, 74, 87, 60, 69, 50, 72, 60, 73, 62, 69, 54, 64, 61, 47, 58, 47, 59, 60, 69, 62, 66, 63, 62, 56, 75, 65, 77, 71, 65, 70, 75, 64, 63, 57, 54, 73, 58, 51, 56, 63, 67, 49, 63, 65, 70, 61, 67, 61, 56, 58, 71, 53, 55, 72, 69, 96, 59, 49, 71, 57, 103, 79, 52, 71, 66, 79, 55, 60, 64, 72, 62, 102, 93, 78, 51, 63, 78, 57, 57, 74, 63, 70, 68, 67, 71, 86, 66, 63, 64, 81, 71, 54, 59, 66, 68, 75, 59, 82, 62, 66, 87, 66, 58, 66, 50, 65, 62, 66, 59, 67, 57, 77, 70, 76, 54, 58, 69, 59, 62, 54, 68, 63, 67, 60, 73, 61, 62, 69, 58, 91, 72, 66, 68, 69, 75, 67, 80, 68, 65, 56, 63, 131, 58, 73, 57, 76, 70, 68, 52, 50, 58, 89, 65, 70, 81, 64, 79, 65, 40, 75, 64, 65, 55, 55, 59, 56, 62, 47, 70, 67, 91, 60, 76, 61, 62, 64, 48, 91, 58, 70, 60, 72, 61, 52, 69, 78, 70, 48, 73, 57, 67, 70, 71, 58, 79, 80, 63, 51, 57, 76, 70, 80, 67, 59, 51, 66, 68, 81, 67, 59, 60, 61, 60, 61, 59, 88, 70, 67, 58, 41, 110, 62, 68, 49, 62, 67, 64, 49, 59, 72, 62, 52, 81, 79, 70, 53, 55, 80, 63, 56, 53, 48, 59, 57, 78, 52, 60, 81, 61, 68, 80, 73, 98, 58, 60, 73, 78, 55, 72, 57, 60, 48, 45, 66, 67, 70, 57, 53, 50, 64, 62, 66, 41, 73, 60, 62, 61, 69, 55, 76, 52, 54, 83, 57, 58, 79, 79, 63, 73, 80, 55, 76, 53, 83, 56, 82, 70, 53, 71, 54, 54, 63, 59, 62, 57, 66, 61, 56, 60, 94, 52, 64, 63, 63, 66, 60, 69, 51, 56, 55, 59, 51, 77, 66, 90, 50, 59, 51, 78, 65, 61, 64, 82, 67, 71, 61, 55, 73, 68, 62, 72, 73, 52, 63, 65, 52, 57, 62, 59, 72, 83, 53, 76, 78, 73, 70, 55, 57, 61, 79, 68, 70, 52, 59, 53, 73, 65, 65, 63, 54, 48, 59, 61, 76, 82, 71, 64, 51, 97, 57, 58, 131, 50, 81, 63, 55, 69, 60, 73, 62, 70, 87, 58, 61, 70, 59, 71, 54, 62, 102, 58, 60, 72, 68, 71, 74, 57, 64, 64, 62, 66, 65, 48, 45, 68, 68, 56, 47, 55, 54, 51, 65, 72, 56, 44, 59, 54, 83, 59, 52, 63, 64, 54, 84, 63, 59, 62, 68, 59, 55, 52, 57, 60, 60, 89, 64, 58, 49, 52, 68, 88, 51, 55, 54, 67, 78, 93, 64, 79, 78, 65, 53, 68, 51, 63, 62, 62, 48, 79, 66, 67, 56, 60, 68, 54, 64, 55, 58, 56, 56, 72, 62, 67, 55, 70, 70, 65, 64, 64, 64, 51, 68, 53, 69, 48, 59, 56, 60, 48, 70, 50, 67, 71, 62, 63, 42, 87, 61, 71, 71, 58, 77, 77, 61, 63, 60, 59, 63, 76, 64, 74, 66, 57, 74, 67, 96, 60, 58, 54, 64, 62, 59, 77, 77, 59, 70, 67, 83, 59, 69, 114, 68, 79, 63, 57, 65, 70, 60, 49, 103, 68, 61, 56, 62, 62, 55, 69, 69, 60, 50, 79, 60, 63, 64, 67, 59, 68, 70, 73, 69, 59, 53, 67, 54, 66, 48, 71, 112, 63, 80, 65, 61, 55, 59, 87, 63, 83, 57, 76, 57, 54, 69, 89, 68, 77, 57, 57, 67, 56, 56, 77, 56, 66, 82, 53, 46, 60, 85, 73, 64, 61, 63, 54, 61, 49, 66, 89, 44, 60, 70, 51, 63, 61, 62, 63, 75, 75, 47, 59, 62, 80, 57, 59, 65, 68, 66, 69, 65, 80, 60, 65, 68, 82, 71, 74, 66, 57, 62, 52, 81, 64, 44, 60, 82, 39, 58, 59, 64, 76, 58, 57, 59, 51, 76, 71, 79, 56, 61, 52, 71, 59, 59, 54, 61, 85, 58, 58, 63, 105, 51, 58, 77, 64, 57, 97, 60, 81, 54, 48, 66, 77, 61, 58, 58, 56, 65, 55, 93, 98, 58, 91, 67, 61, 64, 66, 63, 55, 50, 61, 56, 69, 72, 98, 72, 86, 50, 64, 65, 52, 60, 59, 70, 92, 59, 67, 107, 59, 69, 43, 69, 42, 72, 71, 62, 107, 52, 63, 54, 77, 52, 81, 91, 53, 66, 55, 66, 93, 70, 76, 61, 75, 53, 74, 67, 78, 60, 67, 62, 58, 83, 46, 69, 90, 63, 55, 61, 64, 50, 60, 61, 117, 66, 57, 73, 46, 51, 44, 59, 53, 47, 48, 49, 38, 76, 68, 64, 53, 67, 63, 47, 43, 48, 68, 62, 66, 54, 63, 91, 92, 64, 52, 59, 67, 62, 46, 61, 73, 54, 59, 68, 71, 61, 61, 55, 57, 71, 64, 74, 53, 71, 57, 57, 53, 61, 66, 65, 51, 47, 69, 66, 64, 65, 63, 55, 56, 73, 76, 78, 67, 53, 54, 52, 50, 60, 49, 82, 68, 50, 91, 59, 74, 45, 76, 78, 59, 67, 82, 59, 65, 73, 88, 57, 55, 83, 64, 64, 64, 83, 103, 139, 72, 68, 59, 99, 61, 53, 51, 86, 66, 84, 72, 70, 68, 46, 65, 47, 58, 54, 74, 53, 60, 69, 62, 45, 69, 88, 57, 64, 72, 80, 49, 70, 97, 80, 93, 62, 145, 69, 54, 41, 68, 81, 72, 80, 61, 85, 56, 78, 84, 79, 52, 48, 56, 70, 63, 56, 43, 53, 64, 74, 82, 54, 57, 60, 56, 61, 60, 61, 57, 48, 44, 94, 87, 57, 75, 56, 65, 48, 68, 109, 65, 71, 53, 66, 72, 62, 68, 55, 55, 66, 68, 51, 83, 71, 77, 58, 64, 59, 59, 62, 66, 75, 85, 70, 76, 52, 70, 74, 51, 64, 66, 57, 65, 61, 68, 70, 55, 56, 84, 49, 76, 69, 144, 91, 73, 60, 66, 68, 63, 73, 75, 51, 89, 52, 60, 60, 71, 76, 68, 59, 56, 82, 67, 41, 84, 70, 64, 74, 65, 61, 54, 60, 101, 68, 54, 58, 50, 61, 57, 96, 58, 127, 41, 71, 58, 59, 93, 81, 47, 73, 30, 63, 79, 58, 63, 52, 55, 61, 66, 55, 75, 61, 68, 67, 56, 66, 61, 83, 48, 60, 47, 63, 57, 94, 69, 85, 73, 65, 71, 67, 70, 97, 47, 55, 50, 64, 57, 38, 67, 61, 58, 66, 51, 77, 70, 60, 78, 73, 60, 67, 55, 51, 50, 74, 68, 90, 66, 62, 55, 55, 62, 44, 67, 80, 70, 77, 52, 70, 60, 52, 63, 62, 60, 67, 62, 60, 57, 120, 47, 68, 58, 109, 67, 70, 51, 89, 60, 66, 76, 59, 64, 71, 59, 64, 63, 56, 105, 38, 91, 57, 77, 46, 57, 52, 57, 63, 75, 63, 57, 76, 66, 61, 67, 67, 62, 67, 52, 72, 84, 66, 78, 50, 76, 88, 61, 55, 59, 50, 63, 64, 63, 68, 49, 77, 59, 56, 78, 73, 78, 55, 84, 47, 59, 48, 68, 71, 55, 66, 67, 62, 69, 79, 63, 105, 102, 83, 66, 53, 58, 66, 64, 79, 79, 95, 80, 99, 71, 62, 65, 52, 69, 62, 60, 86, 49, 59, 53, 73, 54, 65, 53, 54, 82, 46, 58, 51, 41, 56, 65, 59, 57, 69, 82, 45, 64, 69, 113, 58, 55, 66, 87, 66, 74, 67, 87, 68, 69, 63, 66, 60, 59, 57, 74, 101, 88, 57, 53, 55, 52, 78, 47, 65, 69, 83, 46, 61, 57, 52, 53, 66, 74, 71, 54, 71, 100, 76, 59, 61, 66, 55, 69, 51, 65, 69, 75, 72, 44, 72, 57, 76, 65, 77, 78, 81, 59, 48, 48, 66, 68, 46, 59, 87, 62, 86, 86, 76, 54, 68, 58, 65, 66, 81, 59, 69, 82, 80, 68, 54, 67, 54, 55, 54, 69, 58, 61, 57, 68, 71, 85, 74, 61, 55, 91, 62, 62, 65, 48, 74, 74, 59, 80, 58, 82, 71, 69, 57, 51, 58, 62, 71, 67, 53, 70, 79, 55, 65, 62, 70, 41, 92, 83, 79, 66, 76, 69, 71, 57, 79, 73, 82, 61, 63, 67, 52, 46, 95, 59, 58, 128, 76, 71, 79, 81, 58, 56, 56, 50, 100, 100, 77, 66, 62, 73, 78, 67, 61, 78, 88, 60, 82, 58, 49, 56, 60, 38, 117, 107, 64, 57, 64, 78, 68, 56, 60, 65, 66, 66, 58, 80, 82, 54, 56, 72, 115, 85, 65, 65, 46, 65, 69, 61, 54, 69, 67, 73, 64, 64, 54, 53, 70, 59, 56, 57, 87, 70, 58, 63, 71, 55, 49, 49, 61, 59, 39, 61, 89, 61, 62, 53, 61, 58, 43, 67, 54, 74, 58, 57, 66, 79, 64, 54, 50, 48, 40, 72, 60, 62, 50, 76, 101, 51, 52, 62, 87, 46, 73, 66, 53, 60, 63, 103, 71, 61, 67, 54, 59, 70, 60, 53, 48, 76, 67, 58, 62, 64, 63, 41, 60, 53, 62, 49, 81, 59, 53, 63, 82, 59, 79, 63, 48, 51, 59, 59, 55, 55, 54, 66, 62, 66, 66, 68, 89, 68, 59, 48, 64, 62, 53, 70, 66, 70, 74, 54, 53, 56, 73, 78, 57, 57, 92, 68, 68, 65, 74, 69, 53, 77, 52, 63, 70, 57, 70, 66, 61, 86, 66, 56, 58, 47, 68, 73, 47, 66, 51, 75, 98, 61, 83, 57, 68, 67, 46, 81, 54, 61, 53, 74, 75, 71, 59, 68, 62, 56, 56, 63, 67, 65, 54, 73, 31, 68, 99, 63, 59, 97, 65, 68, 61, 60, 64, 76, 55, 49, 68, 63, 87, 62, 71, 73, 54, 59, 73, 65, 67, 61, 71, 54, 72, 57, 62, 55, 67, 73, 50, 62, 71, 61, 89, 67, 83, 56, 66, 58, 47, 58, 57, 50, 73, 76, 59, 48, 49, 63, 50, 57, 65, 64, 85, 58, 44, 60, 64, 80, 87, 71, 52, 63, 53, 63, 64, 55, 49, 89, 51, 90, 100, 58, 66, 92, 75, 54, 55, 64, 72, 65, 55, 58, 71, 63, 92, 63, 64, 64, 80, 57, 67, 75, 65, 74, 48, 62, 80, 79, 61, 64, 56, 65, 68, 86, 50, 86, 71, 91, 74, 72, 68, 57, 61, 56, 107, 55, 66, 69, 59, 119, 65, 62, 62, 72, 58, 82, 74, 63, 69, 82, 77, 78, 59, 59, 61, 64, 69, 59, 66, 67, 71, 66, 77, 71, 63, 68, 50, 42, 75, 61, 72, 55, 56, 60, 82, 64, 58, 67, 66, 69, 98, 86, 63, 52, 64, 69, 71, 57, 59, 68, 50, 70, 79, 59, 54, 55, 58, 63, 85, 50, 81, 60, 64, 77, 75, 72, 53, 94, 83, 58, 71, 69, 65, 80, 57, 57, 77, 83, 65, 87, 67, 61, 52, 58, 56, 66, 69, 70, 59, 70, 59, 55, 72, 66, 64, 62, 77, 64, 76, 72, 76, 68, 49, 70, 72, 55, 61, 74, 73, 67, 52, 50, 74, 72, 59, 51, 63, 75, 60, 48, 63, 91, 54, 67, 60, 69, 53, 77, 61, 64, 74, 86, 58, 77, 77, 55, 60, 60, 79, 71, 63, 61, 77, 71, 69, 99, 64, 92, 58, 87, 71, 65, 75, 56, 68, 73, 69, 61, 70, 71, 58, 63, 87, 68, 58, 62, 64, 95, 81, 65, 85, 70, 62, 74, 52, 73, 61, 63, 52, 61, 59, 59, 96, 59, 56, 52, 60, 90, 62, 65, 59, 58, 48, 55, 57, 58, 69, 57, 81, 78, 66, 90, 51, 71, 76, 125, 66, 68, 75, 57, 84, 84, 79, 72, 75, 77, 62, 83, 84, 64, 94, 103, 61, 56, 62, 73, 84, 67, 85, 78, 57, 62, 47, 57, 56, 66, 65, 57, 68, 59, 68, 67, 60, 69, 57, 61, 80, 90, 53, 66, 49, 60, 65, 60, 63, 55, 57, 63, 84, 58, 60, 62, 61, 73, 79, 66, 47, 65, 82, 72, 58, 73, 62, 75, 60, 70, 56, 57, 62, 75, 71, 67, 78, 62, 70, 72, 61, 85, 61, 70, 71, 139, 55, 51, 85, 71, 70, 67, 55, 76, 60, 67, 57, 96, 74, 86, 83, 57, 66, 60, 67, 66, 58, 73, 49, 63, 54, 64, 70, 60, 58, 67, 55, 62, 63, 51, 67, 62, 61, 89, 82, 63, 91, 70, 63, 101, 65, 52, 66, 72, 53, 71, 55, 62, 66, 58, 72, 63, 57, 77, 71, 46, 61, 64, 79, 51, 73, 49, 63, 75, 57, 55, 86, 61, 75, 70, 63, 71, 52, 62, 58, 79, 53, 59, 64, 57, 61, 61, 75, 66, 43, 58, 64, 74, 80, 53, 57, 69, 55, 76, 57, 53, 64, 92, 64, 59, 60, 53, 67, 81, 45, 67, 62, 64, 52, 61, 58, 64, 81, 80, 56, 66, 53, 59, 57, 57, 86, 66, 58, 57, 94, 76, 74, 65, 57, 55, 64, 65, 65, 63, 60, 63, 69, 60, 50, 88, 51, 65, 60, 69, 58, 65, 66, 61, 68, 70, 54, 55, 103, 70, 68, 54, 66, 66, 66, 62, 56, 75, 90, 61, 59, 53, 62, 59, 66, 60, 66, 70, 87, 56, 69, 55, 56, 57, 101, 60, 74, 61, 64, 69, 60, 62, 59, 64, 68, 74, 55, 65, 69, 63, 86, 57, 61, 76, 43, 48, 59, 62, 68, 65, 65, 75, 73, 68, 54, 68, 70, 72, 51, 73, 45, 89, 68, 70, 64, 64, 74, 68, 79, 67, 58, 69, 58, 59, 56, 63, 65, 58, 59, 71, 86, 69, 48, 70, 77, 55, 54, 76, 83, 62, 70, 79, 54, 140, 52, 65, 58, 57, 53, 43, 63, 57, 87, 74, 59, 86, 54, 105, 77, 66, 64, 96, 73, 49, 80, 48, 54, 73, 71, 69, 67, 64, 57, 51, 83, 65, 61, 53, 62, 85, 58, 64, 58, 64, 75, 51, 59, 58, 80, 54, 73, 61, 67, 56, 56, 53, 74, 116, 53, 69, 66, 71, 57, 60, 68, 62, 56, 66, 71, 80, 68, 51, 65, 68, 51, 68, 53, 71, 59, 67, 57, 65, 60, 64, 63, 71, 73, 76, 59, 65, 78, 57, 52, 58, 60, 74, 76, 56, 67, 80, 76, 68, 66, 67, 64, 79, 61, 82, 58, 64, 63, 60, 84, 52, 61, 54, 71, 58, 62, 65, 98, 85, 56, 63, 57, 49, 93, 77, 43, 63, 71, 55, 55, 83, 80, 67, 67, 61, 79, 54, 58, 87, 69, 80, 84, 61, 72, 66, 61, 77, 55, 66, 82, 59, 62, 46, 65, 74, 60, 65, 52, 94, 58, 56, 127, 84, 76, 52, 55, 60, 71, 88, 58, 55, 63, 80, 66, 65, 65, 63, 76, 63, 93, 51, 64, 66, 51, 68, 72, 67, 57, 66, 47, 66, 62, 84, 59, 67, 71, 62, 52, 45, 65, 85, 98, 54, 69, 58, 58, 71, 83, 50, 44, 70, 62, 68, 67, 63, 59, 52, 65, 61, 49, 72, 51, 65, 76, 53, 77, 60, 59, 59, 59, 66, 61, 67, 74, 75, 55, 68, 71, 69, 82, 62, 76, 63, 56, 64, 83, 71, 63, 58, 64, 59, 62, 56, 65, 66, 38, 67, 71, 64, 64, 87, 58, 83, 53, 52, 81, 71, 62, 53, 57, 58, 81, 65, 69, 64, 60, 65, 67, 82, 57, 42, 69, 59, 63, 73, 56, 73, 64, 71, 57, 60, 57, 58, 69, 59, 65, 49, 61, 54, 73, 70, 75, 47, 61, 57, 104, 64, 79, 63, 64, 61, 72, 80, 70, 47, 61, 55, 67, 69, 66, 154, 78, 75, 58, 40, 62, 66, 57, 66, 85, 62, 52, 66, 56, 63, 48, 55, 61, 60, 60, 81, 59, 67, 80, 86, 79, 54, 61, 81, 59, 70, 58, 60, 61, 68, 60, 74, 65, 57, 70, 87, 65, 67, 59, 49, 51, 64, 63, 53, 63, 76, 61, 67, 80, 46, 59, 58, 71, 75, 67, 60, 59, 67, 66, 71, 74, 72, 65, 61, 75, 65, 64, 42, 69, 70, 64, 97, 72, 64, 56, 60, 79, 85, 59, 63, 61, 55, 60, 61, 53, 78, 64, 75, 67, 66, 51, 68, 68, 70, 65, 58, 60, 65, 62, 74, 63, 57, 56, 59, 78, 72, 81, 60, 67, 75, 54, 69, 68, 66, 54, 70, 63, 54, 60, 72, 81, 58, 54, 56, 67, 65, 63, 48, 55, 71, 62, 50, 52, 56, 74, 74, 57, 64, 58, 78, 51, 80, 60, 88, 72, 62, 59, 85, 67, 50, 70, 63, 65, 56, 55, 96, 61, 78, 66, 60, 74, 54, 52, 65, 59, 67, 58, 73, 58, 59, 55, 66, 62, 64, 60, 62, 93, 57, 41, 62, 118, 57, 61, 80, 59, 66, 54, 64, 54, 76, 52, 49, 61, 75, 63, 80, 74, 53, 63, 57, 48, 38, 74, 61, 63, 60, 67, 62, 84, 84, 60, 62, 69, 66, 72, 41, 56, 69, 59, 67, 56, 61, 46, 72, 69, 58, 64, 66, 72, 51, 83, 72, 71, 71, 62, 54, 57, 67, 52, 56, 54, 61, 67, 66, 58, 66, 71, 51, 62, 68, 79, 63, 86, 86, 79, 55, 62, 59, 62, 69, 63, 61, 48, 54, 61, 54, 64, 56, 63, 54, 55, 64, 58, 54, 90, 71, 57, 67, 59, 60, 84, 59, 64, 64, 64, 61, 64, 65, 59, 64, 62, 67, 53, 61, 79, 70, 76, 47, 76, 64, 57, 58, 65, 65, 74, 77, 84, 63, 63, 72, 57, 53, 65, 89, 56, 83, 64, 65, 67, 78, 61, 61, 63, 88, 72, 70, 70, 50, 59, 60, 59, 77, 46, 78, 75, 57, 76, 57, 41, 68, 59, 71, 57, 72, 68, 52, 63, 63, 72, 67, 63, 67, 50, 59, 69, 66, 58, 120, 56, 68, 56, 124, 74, 70, 60, 58, 55, 55, 71, 74, 66, 63, 85, 83, 82, 58, 78, 47, 66, 74, 60, 58, 62, 60, 77, 64, 65, 100, 63, 78, 76, 85, 58, 63, 56, 63, 68, 62, 72, 62, 75, 58, 57, 62, 67, 61, 48, 67, 56, 69, 72, 59, 70, 54, 60, 62, 76, 69, 64, 45, 61, 54, 68, 57, 99, 86, 60, 70, 65, 70, 56, 82, 71, 66, 59, 57, 55, 69, 72, 58, 49, 55, 72, 51, 52, 75, 86, 66, 83, 73, 65, 62, 64, 77, 56, 56, 60, 71, 104, 113, 58, 60, 61, 73, 69, 51, 78, 74, 81, 55, 61, 62, 105, 70, 66, 80, 64, 88, 74, 55, 85, 69, 56, 61, 92, 78, 54, 58, 74, 62, 82, 89, 62, 63, 50, 72, 64, 87, 57, 60, 54, 64, 52, 54, 67, 68, 60, 87, 84, 76, 64, 57, 60, 40, 60, 53, 63, 59, 65, 69, 59, 72, 84, 48, 65, 67, 53, 64, 64, 68, 58, 56, 67, 73, 64, 54, 55, 51, 63, 82, 61, 82, 82, 60, 68, 57, 56, 81, 50, 65, 93, 96, 55, 63, 66, 85, 65, 60, 76, 66, 66, 61, 67, 59, 58, 71, 65, 73, 66, 57, 73, 57, 99, 56, 67, 64, 94, 62, 71, 64, 64, 82, 56, 63, 57, 63, 67, 54, 68, 64, 87, 63, 70, 77, 70, 74, 85, 69, 54, 64, 70, 90, 55, 42, 58, 67, 69, 57, 114, 51, 64, 69, 83, 57, 58, 66, 67, 62, 62, 54, 120, 52, 65, 49, 64, 77, 62, 68, 62, 56, 78, 68, 58, 64, 61, 85, 50, 79, 70, 69, 62, 46, 47, 56, 66, 58, 62, 54, 70, 77, 56, 68, 58, 72, 61, 64, 83, 67, 73, 86, 62, 49, 69, 71, 68, 55, 68, 73, 80, 75, 56, 50, 71, 64, 58, 63, 56, 67, 60, 56, 44, 55, 52, 64, 70, 74, 57, 65, 59, 78, 75, 93, 59, 56, 73, 63, 77, 79, 65, 106, 52, 59, 68, 54, 49, 65, 62, 72, 72, 86, 64, 72, 51, 53, 64, 66, 81, 66, 67, 68, 67, 59, 66, 66, 70, 61, 66, 57, 52, 135, 84, 83, 76, 62, 61, 69, 64, 77, 59, 87, 51, 56, 72, 67, 69, 68, 50, 73, 110, 58, 75, 75, 61, 78, 48, 59, 57, 81, 68, 84, 60, 78, 66, 78, 72, 80, 55, 59, 68, 58, 80, 60, 73, 62, 68, 68, 61, 64, 53, 55, 58, 76, 48, 73, 71, 67, 62, 54, 106, 62, 65, 64, 52, 84, 70, 80, 61, 59, 57, 54, 54, 57, 81, 105, 59, 54, 64, 57, 52, 73, 65, 53, 55, 71, 58, 67, 70, 76, 72, 56, 65, 49, 56, 90, 61, 71, 65, 55, 72, 77, 72, 57, 77, 108, 61, 71, 59, 75, 75, 65, 57, 73, 59, 67, 55, 70, 73, 55, 67, 62, 63, 58, 93, 94, 67, 65, 56, 83, 61, 55, 114, 67, 98, 38, 55, 53, 53, 48, 58, 60, 65, 59, 68, 83, 71, 55, 79, 58, 129, 70, 70, 73, 56, 65, 67, 81, 57, 70, 74, 65, 72, 65, 69, 55, 69, 82, 68, 52, 69, 60, 66, 61, 50, 64, 69, 78, 78, 50, 60, 63, 70, 48, 88, 72, 74, 53, 45, 64, 81, 85, 46, 59, 62, 95, 63, 60, 58, 62, 62, 71, 56, 65, 78, 64, 75, 73, 72, 61, 74, 60, 54, 71, 51, 66, 64, 40, 62, 66, 63, 58, 60, 66, 68, 54, 66, 67, 67, 51, 61, 65, 63, 80, 59, 68, 87, 48, 64, 61, 66, 65, 48, 69, 98, 49, 74, 65, 69, 62, 58, 62, 122, 58, 54, 63, 69, 71, 58, 66, 64, 70, 65, 62, 64, 67, 59, 67, 53, 71, 67, 74, 66, 69, 76, 69, 101, 64, 58, 70, 55, 53, 54, 72, 83, 62, 81, 63, 86, 50, 54, 117, 58, 82, 72, 54, 58, 67, 63, 57, 67, 95, 75, 93, 62, 60, 42, 63, 66, 61, 50, 54, 65, 70, 59, 61, 81, 51, 79, 78, 60, 56, 60, 81, 58, 65, 49, 56, 101, 65, 54, 66, 63, 46, 58, 49, 69, 68, 54, 61, 73, 69, 74, 61, 90, 48, 70, 52, 71, 66, 63, 68, 77, 54, 75, 52, 63, 73, 59, 56, 67, 53, 51, 55, 87, 70, 55, 71, 66, 57, 56, 61, 77, 51, 103, 50, 88, 80, 72, 59, 63, 87, 71, 63, 60, 66, 76, 58, 62, 58, 96, 74, 64, 69, 61, 82, 74, 78, 53, 58, 55, 65, 65, 55, 74, 55, 56, 69, 65, 73, 50, 39, 66, 51, 56, 66, 45, 61, 64, 54, 69, 66, 63, 54, 58, 71, 54, 64, 65, 98, 50, 61, 59, 57, 68, 58, 68, 67, 56, 117, 68, 54, 56, 66, 60, 75, 76, 59, 58, 75, 53, 97, 63, 78, 78, 72, 71, 82, 87, 81, 79, 64, 57, 62, 97, 50, 75, 55, 62, 63, 54, 63, 63, 81, 62, 45, 75, 57, 57, 86, 58, 81, 53, 51, 41, 66, 81, 62, 65, 53, 80, 71, 67, 65, 60, 77, 65, 69, 66, 88, 51, 70, 61, 63, 58, 70, 57, 67, 66, 51, 71, 44, 63, 51, 58, 89, 68, 98, 60, 70, 69, 65, 71, 84, 64, 69, 55, 69, 62, 37, 42, 67, 57, 89, 61, 48, 66, 82, 61, 62, 68, 76, 67, 57, 60, 73, 59, 55, 70, 58, 103, 69, 53, 60, 56, 47, 57, 74, 84, 66, 63, 51, 91, 72, 38, 79, 73, 66, 59, 56, 56, 78, 66, 72, 57, 84, 66, 64, 57, 81, 75, 78, 73, 52, 71, 113, 75, 76, 58, 58, 78, 70, 58, 96, 64, 54, 57, 61, 67, 96, 58, 52, 58, 74, 77, 62, 61, 71, 68, 71, 83, 52, 65, 63, 120, 81, 61, 70, 67, 48, 90, 74, 52, 67, 44, 71, 70, 61, 51, 56, 75, 70, 60, 74, 64, 65, 59, 45, 64, 149, 50, 62, 63, 65, 72, 59, 98, 74, 62, 56, 58, 44, 49, 77, 111, 89, 70, 115, 58, 60, 60, 70, 90, 84, 58, 56, 76, 52, 68, 80, 75, 58, 77, 62, 62, 55, 60, 60, 70, 63, 69, 93, 52, 61, 78, 59, 60, 60, 68, 55, 65, 69, 76, 46, 110, 60, 89, 61, 50, 74, 64, 62, 55, 56, 65, 58, 77, 69, 59, 70, 47, 92, 49, 68, 44, 69, 42, 58, 70, 60, 88, 66, 74, 81, 72, 70, 66, 69, 65, 69, 53, 63, 60, 62, 74, 70, 59, 73, 53, 72, 53, 78, 62, 68, 47, 56, 56, 58, 70, 61, 66, 66, 55, 68, 65, 78, 59, 70, 85, 66, 52, 55, 58, 54, 44, 52, 67, 79, 51, 63, 57, 73, 68, 71, 55, 64, 103, 53, 55, 68, 66, 50, 70, 55, 62, 59, 71, 54, 58, 54, 51, 55, 60, 85, 57, 57, 74, 74, 52, 50, 44, 102, 71, 71, 56, 60, 64, 58, 74, 68, 50, 67, 62, 50, 49, 93, 49, 66, 65, 42, 70, 60, 65, 67, 55, 62, 54, 60, 43, 62, 65, 50, 61, 57, 83, 56, 59, 61, 69, 59, 54, 56, 62, 64, 76, 63, 62, 55, 59, 69, 57, 87, 62, 69, 48, 54, 59, 50, 56, 63, 75, 56, 65, 61, 71, 56, 57, 65, 85, 68, 74, 67, 63, 70, 59, 63, 80, 51, 60, 48, 63, 67, 71, 59, 60, 62, 57, 115, 65, 67, 67, 55, 62, 84, 64, 51, 60, 69, 64, 63, 64, 80, 53, 74, 59, 74, 75, 61, 57, 70, 57, 60, 72, 62, 64, 63, 57, 75, 59, 72, 68, 59, 54, 65, 61, 103, 57, 74, 36, 58, 59, 73, 75, 64, 68, 51, 93, 64, 65, 64, 65, 55, 78, 72, 51, 71, 54, 50, 71, 69, 58, 60, 83, 50, 65, 80, 57, 54, 77, 77, 52, 52, 66, 66, 92, 93, 70, 61, 69, 51, 60, 47, 53, 60, 83, 56, 70, 57, 47, 58, 61, 60, 69, 70, 64, 75, 107, 86, 66, 66, 48, 60, 61, 74, 67, 52, 58, 72, 56, 69, 68, 82, 62, 48, 77, 53, 75, 64, 58, 55, 59, 101, 60, 61, 73, 69, 71, 87, 44, 76, 58, 58, 108, 65, 64, 64, 93, 86, 60, 64, 58, 69, 49, 83, 63, 79, 61, 72, 58, 64, 60, 60, 60, 55, 77, 50, 63, 59, 69, 86, 56, 59, 57, 59, 45, 105, 81, 50, 72, 79, 69, 61, 62, 79, 93, 68, 49, 45, 63, 82, 66, 60, 73, 65, 64, 50, 56, 86, 75, 56, 60, 82, 96, 78, 97, 62, 60, 56, 104, 60, 45, 64, 53, 66, 70, 47, 47, 54, 66, 97, 85, 61, 55, 65, 69, 74, 60, 78, 70, 62, 50, 60, 77, 70, 77, 66, 57, 62, 46, 88, 62, 68, 65, 75, 64, 75, 69, 88, 97, 74, 52, 60, 62, 80, 69, 46, 68, 57, 69, 71, 74, 89, 70, 62, 90, 74, 63, 50, 69, 69, 59, 62, 55, 71, 44, 84, 59, 51, 37, 74, 59, 68, 56, 67, 61, 79, 59, 63, 61, 72, 72, 62, 72, 58, 114, 53, 64, 56, 64, 56, 55, 84, 67, 69, 59, 57, 52, 57, 83, 58, 72, 59, 51, 67, 57, 56, 56, 50, 52, 60, 62, 65, 68, 64, 57, 57, 61, 64, 75, 81, 74, 63, 64, 66, 66, 98, 49, 52, 68, 75, 57, 77, 77, 76, 75, 65, 75, 77, 70, 80, 56, 78, 60, 75, 76, 61, 68, 65, 69, 49, 72, 61, 62, 67, 59, 120, 64, 53, 62, 63, 88, 64, 57, 66, 60, 68, 54, 67, 45, 67, 68, 80, 64, 57, 57, 100, 89, 56, 63, 59, 55, 54, 62, 78, 66, 63, 73, 66, 56, 74, 53, 44, 93, 61, 53, 73, 65, 70, 104, 91, 53, 63, 51, 52, 75, 62, 65, 51, 50, 78, 59, 88, 56, 56, 72, 66, 61, 90, 60, 51, 78, 67, 77, 85, 67, 59, 60, 49, 69, 95, 62, 76, 57, 73, 71, 65, 61, 78, 89, 54, 87, 80, 78, 59, 54, 69, 82, 54, 64, 65, 61, 48, 67, 56, 53, 52, 66, 67, 66, 51, 67, 117, 78, 67, 74, 56, 57, 55, 53, 61, 59, 65, 57, 51, 63, 70, 57, 65, 113, 68, 55, 53, 74, 59, 62, 56, 79, 64, 85, 58, 54, 60, 57, 69, 49, 84, 60, 59, 53, 57, 51, 88, 71, 56, 79, 52, 50, 60, 54, 73, 67, 63, 68, 79, 46, 64, 60, 82, 61, 73, 63, 61, 63, 67, 62, 60, 55, 53, 66, 54, 62, 64, 49, 60, 67, 56, 46, 56, 64, 47, 74, 71, 64, 50, 75, 72, 104, 72, 56, 59, 59, 56, 53, 54, 72, 71, 46, 46, 59, 71, 62, 53, 62, 89, 57, 69, 66, 68, 57, 71, 61, 96, 74, 52, 73, 70, 66, 55, 65, 43, 65, 68, 95, 89, 68, 129, 68, 57, 62, 50, 63, 82, 103, 62, 83, 53, 86, 50, 75, 70, 66, 46, 65, 54, 64, 45, 74, 88, 83, 56, 68, 56, 55, 65, 56, 68, 62, 59, 53, 67, 63, 48, 88, 68, 63, 45, 50, 60, 57, 75, 84, 44, 58, 105, 69, 69, 64, 58, 76, 59, 56, 53, 61, 77, 58, 92, 83, 44, 72, 72, 77, 82, 65, 74, 67, 59, 70, 64, 70, 76, 63, 89, 86, 57, 47, 62, 53, 75, 55, 70, 67, 109, 69, 62, 57, 75, 56, 48, 58, 57, 65, 61, 66, 62, 95, 88, 48, 65, 54, 71, 56, 64, 74, 62, 70, 64, 75, 76, 44, 80, 74, 75, 73, 58, 58, 68, 67, 82, 60, 66, 77, 70, 63, 68, 81, 65, 58, 66, 52, 50, 65, 77, 65, 65, 49, 61, 67, 71, 67, 65, 62, 50, 95, 93, 52, 59, 91, 82, 70, 69, 64, 84, 63, 83, 61, 67, 61, 79, 101, 67, 64, 78, 57, 45, 61, 57, 83, 59, 67, 53, 65, 75, 64, 64, 62, 62, 45, 73, 69, 93, 78, 76, 57, 149, 75, 45, 49, 55, 61, 63, 57, 75, 63, 51, 44, 53, 67, 72, 100, 72, 65, 111, 70, 70, 57, 58, 65, 72, 58, 68, 64, 57, 68, 95, 70, 79, 57, 61, 65, 67, 42, 72, 40, 64, 44, 100, 59, 76, 62, 73, 73, 63, 63, 43, 52, 67, 76, 60, 87, 56, 69, 76, 52, 54, 69, 63, 48, 58, 70, 63, 66, 67, 64, 57, 77, 87, 65, 71, 61, 40, 56, 60, 88, 70, 78, 55, 87, 70, 52, 36, 53, 55, 74, 65, 72, 75, 64, 62, 75, 79, 62, 84, 61, 44, 65, 73, 63, 73, 71, 55, 60, 72, 60, 62, 76, 42, 56, 58, 80, 56, 64, 78, 59, 61, 58, 55, 57, 60, 61, 62, 64, 67, 57, 53, 64, 72, 70, 86, 63, 51, 73, 63, 67, 61, 53, 86, 64, 53, 58, 67, 48, 48, 71, 51, 74, 64, 54, 74, 79, 62, 78, 92, 53, 64, 43, 109, 56, 79, 73, 53, 65, 55, 91, 76, 44, 79, 70, 60, 59, 94, 43, 56, 68, 64, 80, 61, 73, 70, 62, 58, 65, 49, 58, 75, 61, 52, 75, 65, 112, 49, 63, 75, 69, 55, 49, 61, 76, 76, 57, 63, 48, 63, 47, 61, 65, 70, 64, 57, 66, 44, 45, 51, 59, 59, 93, 62, 73, 73, 84, 66, 62, 63, 65, 74, 70, 59, 67, 55, 62, 59, 49, 47, 75, 41, 54, 56, 56, 72, 67, 66, 69, 108, 40, 51, 64, 65, 77, 82, 42, 73, 62, 71, 62, 67, 52, 57, 52, 83, 71, 50, 90, 59, 56, 63, 70, 81, 77, 70, 58, 75, 55, 67, 65, 54, 82, 62, 67, 45, 65, 54, 83, 86, 64, 50, 68, 66, 68, 54, 60, 50, 92, 74, 66, 56, 76, 66, 48, 69, 55, 60, 54, 46, 103, 67, 65, 55, 66, 61, 65, 56, 66, 53, 59, 83, 106, 56, 34, 85, 60, 70, 73, 63, 60, 55, 55, 62, 58, 54, 54, 63, 91, 63, 60, 50, 61, 58, 63, 63, 58, 68, 108, 75, 61, 60, 58, 69, 72, 65, 48, 55, 77, 92, 51, 64, 68, 49, 64, 58, 71, 57, 65, 58, 64, 67, 37, 71, 45, 78, 67, 55, 40, 61, 57, 67, 72, 66, 105, 76, 57, 77, 74, 103, 65, 73, 46, 54, 44, 46, 54, 94, 67, 73, 53, 47, 82, 88, 71, 63, 47, 69, 57, 59, 56, 58, 56, 65, 63, 73, 48, 82, 69, 60, 67, 55, 74, 50, 68, 61, 70, 68, 70, 55, 56, 54, 75, 52, 59, 56, 69, 60, 48, 61, 73, 68, 62, 60, 66, 87, 63, 56, 63, 65, 86, 58, 59, 66, 58, 53, 53, 60, 65, 56, 74, 57, 71, 42, 70, 80, 47, 62, 64, 86, 78, 79, 54, 61, 67, 61, 58, 58, 49, 55, 59, 92, 56, 71, 76, 59, 80, 55, 57, 82, 73, 84, 60, 60, 72, 67, 66, 65, 74, 58, 63, 63, 76, 58, 58, 47, 104, 91, 59, 67, 70, 67, 80, 69, 67, 63, 66, 47, 66, 57, 56, 78, 65, 64, 66, 67, 85, 82, 45, 58, 66, 68, 59, 46, 59, 50, 120, 57, 68, 58, 53, 70, 60, 79, 74, 46, 54, 49, 55, 64, 68, 68, 83, 75, 49, 62, 70, 62, 91, 78, 78, 51, 74, 45, 56, 92, 61, 73, 62, 76, 75, 77, 79, 63, 68, 68, 74, 101, 67, 44, 70, 67, 72, 81, 82, 63, 75, 50, 62, 62, 55, 56, 69, 66, 70, 73, 65, 58, 60, 60, 59, 64, 77, 52, 59, 57, 51, 117, 58, 49, 52, 59, 81, 52, 61, 86, 66, 61, 62, 73, 41, 71, 45, 67, 58, 50, 53, 93, 84, 72, 51, 73, 69, 59, 61, 61, 67, 68, 78, 61, 60, 68, 58, 54, 73, 83, 71, 78, 57, 73, 46, 81, 63, 50, 57, 73, 67, 87, 74, 90, 53, 61, 58, 69, 65, 63, 64, 46, 66, 111, 65, 62, 62, 68, 61, 64, 88, 78, 85, 51, 57, 111, 56, 77, 75, 70, 59, 65, 51, 55, 68, 59, 84, 68, 67, 57, 58, 66, 86, 63, 52, 63, 66, 64, 62, 53, 53, 68, 68, 66, 80, 55, 80, 113, 55, 56, 84, 74, 58, 57, 57, 66, 58, 66, 51, 65, 77, 55, 70, 92, 113, 54, 56, 57, 78, 77, 58, 53, 68, 57, 64, 48, 53, 65, 51, 77, 70, 57, 94, 47, 70, 74, 61, 72, 72, 50, 105, 71, 77, 57, 58, 62, 47, 63, 73, 95, 63, 74, 74, 64, 71, 95, 72, 60, 74, 77, 53, 64, 63, 60, 53, 42, 28, 70, 65, 57, 87, 44, 45, 67, 57, 73, 81, 75, 69, 58, 66, 54, 121, 86, 49, 45, 55, 49, 57, 60, 52, 79, 36, 54, 57, 67, 32, 53, 67, 80, 62, 70, 68, 60, 59, 78, 59, 91, 65, 45, 64, 54, 56, 62, 57, 55, 85, 67, 63, 109, 65, 122, 75, 93, 68, 57, 55, 41, 70, 79, 57, 58, 58, 63, 63, 48, 95, 70, 78, 66, 54, 78, 61, 108, 74, 54, 40, 63, 64, 71, 58, 71, 52, 65, 70, 74, 72, 65, 80, 76, 76, 54, 57, 57, 50, 53, 70, 73, 80, 82, 50, 66, 82, 56, 58, 66, 56, 62, 73, 69, 55, 58, 62, 99, 71, 98, 76, 59, 80, 76, 70, 60, 42, 65, 55, 75, 51, 59, 65, 57, 65, 61, 56, 71, 55, 72, 58, 60, 58, 53, 72, 66, 71, 55, 67, 68, 79, 87, 55, 46, 113, 58, 79, 68, 75, 54, 56, 78, 64, 87, 73, 59, 85, 59, 67, 62, 59, 65, 75, 83, 57, 59, 70, 83, 75, 63, 54, 65, 69, 81, 72, 55, 57, 59, 65, 106, 49, 72, 67, 70, 66, 77, 85, 69, 43, 57, 77, 64, 83, 92, 70, 88, 63, 65, 69, 58, 93, 67, 44, 54, 58, 47, 59, 63, 116, 83, 51, 66, 79, 48, 75, 96, 55, 72, 58, 65, 55, 54, 51, 79, 73, 59, 82, 65, 55, 66, 44, 56, 59, 141, 53, 69, 65, 59, 72, 66, 70, 59, 61, 61, 51, 65, 62, 56, 113, 57, 72, 113, 81, 68, 67, 54, 67, 68, 74, 62, 80, 48, 62, 74, 66, 84, 60, 48, 62, 58, 78, 67, 60, 58, 56, 87, 57, 54, 71, 61, 62, 58, 62, 57, 67, 56, 63, 84, 60, 64, 90, 73, 53, 47, 56, 68, 69, 74, 70, 70, 56, 54, 82, 54, 67, 53, 51, 49, 63, 73, 51, 84, 78, 74, 67, 82, 61, 64, 74, 67, 59, 58, 47, 75, 65, 76, 61, 83, 56, 71, 58, 62, 54, 58, 57, 72, 60, 86, 57, 73, 45, 56, 70, 57, 68, 76, 57, 74, 91, 62, 64, 92, 56, 57, 61, 59, 57, 59, 58, 51, 44, 89, 50, 64, 68, 66, 58, 88, 62, 70, 65, 63, 54, 66, 84, 47, 84, 72, 70, 59, 58, 62, 71, 53, 60, 67, 63, 76, 69, 75, 58, 65, 53, 70, 75, 109, 69, 125, 78, 68, 65, 53, 71, 62, 90, 57, 54, 52, 69, 89, 53, 75, 57, 75, 63, 55, 88, 75, 64, 54, 47, 72, 62, 64, 65, 61, 49, 52, 67, 53, 64, 67, 52, 51, 62, 62, 62, 67, 75, 53, 96, 59, 47, 69, 53, 63, 72, 95, 47, 53, 60, 78, 57, 60, 52, 56, 50, 62, 70, 67, 51, 49, 79, 56, 83, 69, 61, 71, 46, 61, 64, 56, 60, 78, 65, 65, 89, 78, 67, 55, 52, 55, 56, 65, 65, 75, 52, 61, 75, 76, 72, 59, 74, 70, 98, 65, 64, 53, 66, 48, 62, 55, 60, 75, 77, 66, 78, 64, 72, 62, 66, 75, 52, 54, 50, 55, 78, 50, 64, 79, 66, 95, 73, 59, 55, 80, 89, 69, 68, 60, 81, 82, 55, 74, 63, 62, 53, 71, 63, 54, 71, 45, 77, 63, 57, 53, 99, 75, 54, 115, 69, 72, 71, 65, 48, 60, 71, 74, 63, 61, 75, 62, 65, 63, 85, 57, 67, 69, 57, 67, 81, 69, 63, 58, 55, 59, 81, 113, 42, 62, 64, 76, 69, 74, 89, 73, 62, 79, 61, 67, 63, 53, 70, 65, 36, 74, 73, 50, 115, 69, 65, 58, 73, 65, 65, 66, 66, 50, 90, 50, 63, 52, 72, 48, 53, 52, 146, 69, 71, 65, 75, 57, 63, 64, 64, 61, 49, 55, 65, 88, 76, 58, 64, 67, 51, 67, 62, 62, 53, 43, 60, 44, 88, 57, 48, 57, 57, 67, 62, 69, 47, 45, 61, 79, 83, 57, 65, 86, 66, 56, 48, 52, 65, 83, 63, 54, 61, 74, 54, 52, 56, 64, 60, 82, 68, 55, 64, 52, 73, 57, 50, 60, 93, 56, 68, 81, 61, 77, 64, 74, 71, 62, 65, 63, 62, 72, 73, 65, 72, 60, 74, 56, 85, 61, 66, 53, 64, 58, 71, 54, 54, 75, 59, 59, 76, 68, 83, 58, 66, 93, 55, 59, 80, 81, 76, 72, 76, 89, 57, 58, 57, 63, 54, 62, 82, 61, 59, 58, 48, 79, 48, 58, 74, 47, 60, 49, 49, 61, 45, 89, 79, 55, 53, 75, 67, 64, 53, 54, 57, 87, 65, 70, 74, 57, 65, 65, 127, 53, 64, 60, 68, 71, 43, 64, 47, 74, 79, 50, 58, 65, 63, 60, 46, 52, 73, 67, 60, 60, 66, 57, 50, 67, 60, 48, 62, 68, 91, 42, 59, 58, 62, 90, 80, 81, 51, 103, 51, 78, 69, 54, 49, 53, 59, 66, 65, 53, 56, 72, 74, 81, 96, 49, 66, 64, 44, 54, 52, 75, 64, 50, 75, 70, 62, 61, 71, 61, 60, 75, 56, 71, 60, 62, 67, 44, 68, 64, 56, 60, 58, 61, 57, 56, 63, 68, 88, 72, 46, 62, 55, 91, 113, 67, 67, 59, 60, 65, 64, 85, 55, 55, 49, 63, 61, 53, 61, 64, 70, 64, 74, 56, 51, 55, 55, 97, 56, 65, 50, 66, 83, 55, 45, 44, 62, 61, 67, 73, 67, 63, 73, 57, 58, 95, 63, 54, 57, 75, 71, 65, 52, 64, 53, 66, 56, 103, 63, 80, 60, 60, 56, 53, 81, 57, 108, 41, 72, 79, 78, 63, 48, 59, 84, 86, 64, 61, 60, 69, 48, 70, 63, 69, 65, 79, 76, 67, 61, 109, 65, 63, 40, 52, 68, 68, 52, 58, 66, 74, 68, 53, 67, 50, 79, 77, 53, 78, 58, 49, 96, 64, 76, 86, 67, 47, 60, 51, 76, 54, 63, 90, 67, 74, 60, 59, 59, 56, 98, 64, 103, 71, 86, 57, 55, 71, 55, 65, 60, 64, 85, 62, 68, 62, 77, 89, 70, 75, 74, 62, 61, 61, 60, 53, 73, 60, 51, 62, 60, 66, 54, 69, 86, 76, 60, 48, 52, 58, 85, 88, 77, 51, 68, 53, 121, 61, 63, 71, 58, 63, 56, 61, 63, 70, 54, 83, 57, 63, 52, 100, 70, 54, 76, 83, 69, 74, 71, 64, 44, 99, 80, 63, 59, 72, 73, 64, 68, 42, 58, 58, 115, 47, 67, 92, 77, 48, 73, 66, 67, 58, 96, 52, 46, 63, 106, 49, 93, 58, 83, 61, 54, 67, 70, 69, 58, 62, 93, 58, 60, 63, 65, 61, 68, 69, 57, 59, 64, 79, 67, 43, 87, 58, 75, 71, 66, 64, 44, 61, 70, 55, 51, 102, 76, 83, 55, 65, 63, 65, 65, 63, 63, 45, 84, 115, 57, 63, 56, 53, 53, 69, 67, 73, 59, 56, 67, 59, 70, 66, 44, 60, 88, 62, 52, 94, 65, 64, 64, 67, 77, 98, 70, 73, 65, 66, 60, 51, 66, 74, 66, 61, 60, 61, 97, 76, 61, 65, 58, 63, 50, 52, 44, 100, 69, 68, 78, 66, 78, 70, 73, 75, 63, 61, 68, 57, 60, 56, 59, 72, 63, 51, 60, 84, 63, 91, 75, 65, 61, 59, 59, 47, 55, 72, 59, 71, 62, 69, 66, 61, 65, 52, 58, 61, 69, 64, 68, 81, 48, 62, 68, 76, 75, 76, 78, 73, 56, 66, 114, 54, 54, 70, 94, 52, 57, 54, 66, 65, 116, 68, 52, 59, 76, 58, 62, 56, 69, 60, 62, 75, 64, 53, 67, 110, 80, 54, 62, 63, 80, 64, 66, 59, 65, 53, 64, 62, 52, 51, 84, 49, 51, 106, 66, 59, 66, 71, 72, 66, 76, 65, 83, 65, 72, 94, 70, 71, 78, 66, 65, 59, 73, 64, 70, 74, 71, 77, 67, 85, 56, 70, 86, 50, 61, 50, 43, 61, 43, 48, 64, 71, 71, 62, 69, 69, 66, 61, 61, 51, 77, 57, 65, 55, 63, 68, 65, 73, 43, 57, 56, 67, 55, 56, 75, 91, 50, 53, 71, 65, 71, 48, 58, 52, 59, 83, 83, 59, 72, 60, 71, 67, 60, 85, 65, 56, 65, 96, 62, 66, 50, 59, 49, 81, 59, 56, 77, 58, 59, 58, 51, 60, 73, 64, 70, 65, 57, 61, 72, 56, 70, 52, 59, 63, 70, 52, 59, 59, 86, 82, 49, 57, 77, 61, 59, 68, 57, 70, 47, 70, 58, 59, 72, 61, 58, 59, 69, 65, 57, 69, 65, 58, 80, 106, 74, 72, 62, 129, 82, 54, 65, 52, 72, 57, 86, 63, 69, 115, 56, 64, 80, 97, 45, 65, 62, 41, 65, 57, 68, 56, 66, 72, 65, 70, 49, 72, 69, 55, 69, 53, 69, 74, 54, 75, 93, 60, 70, 78, 62, 76, 67, 63, 69, 40, 64, 62, 49, 59, 73, 68, 59, 63, 45, 68, 66, 71, 77, 56, 52, 69, 68, 62, 53, 69, 48, 77, 90, 97, 83, 62, 59, 77, 66, 74, 68, 66, 67, 69, 74, 78, 42, 69, 107, 120, 64, 74, 63, 59, 65, 63, 60, 88, 49, 83, 85, 63, 58, 60, 54, 62, 68, 65, 59, 60, 64, 54, 68, 71, 48, 74, 53, 55, 59, 64, 52, 73, 59, 53, 57, 63, 89, 69, 71, 77, 63, 59, 59, 68, 71, 77, 51, 42, 99, 71, 61, 40, 53, 67, 52, 64, 86, 71, 50, 52, 102, 63, 65, 62, 118, 102, 50, 44, 62, 109, 66, 68, 88, 66, 49, 85, 63, 63, 100, 65, 80, 49, 46, 61, 69, 58, 67, 70, 56, 73, 59, 57, 69, 41, 64, 50, 61, 53, 81, 81, 53, 60, 81, 61, 68, 57, 65, 67, 62, 73, 74, 67, 49, 101, 70, 57, 62, 54, 62, 68, 44, 56, 60, 65, 69, 59, 56, 60, 54, 56, 46, 73, 51, 58, 67, 66, 63, 75, 86, 89, 71, 65, 75, 100, 53, 65, 62, 55, 59, 114, 88, 36, 68, 69, 62, 48, 53, 58, 59, 60, 72, 63, 30, 66, 73, 64, 65, 72, 83, 62, 68, 56, 59, 50, 64, 72, 55, 58, 78, 69, 74, 53, 45, 54, 70, 71, 55, 56, 64, 49, 61, 52, 70, 70, 85, 89, 49, 72, 75, 59, 81, 52, 82, 65, 55, 60, 51, 66, 75, 54, 62, 71, 67, 47, 77, 56, 77, 71, 71, 56, 66, 53, 53, 68, 61, 60, 52, 52, 48, 60, 58, 75, 64, 55, 76, 62, 76, 60, 60, 95, 59, 82, 59, 78, 80, 65, 75, 51, 66, 64, 70, 78, 51, 66, 73, 63, 62, 122, 58, 63, 67, 54, 68, 48, 41, 56, 70, 66, 63, 104, 55, 60, 58, 97, 52, 51, 70, 78, 46, 63, 71, 63, 50, 57, 75, 59, 127, 76, 64, 77, 63, 53, 66, 70, 67, 54, 62, 57, 51, 65, 65, 61, 58, 64, 47, 73, 52, 59, 102, 91, 54, 68, 65, 63, 56, 58, 66, 68, 63, 57, 62, 73, 71, 76, 68, 53, 62, 61, 58, 57, 59, 61, 61, 67, 64, 49, 53, 74, 53, 56, 50, 83, 70, 67, 70, 76, 88, 61, 47, 86, 52, 71, 56, 62, 55, 74, 75, 88, 58, 95, 53, 67, 76, 61, 62, 74, 66, 75, 55, 69, 44, 58, 71, 64, 55, 87, 61, 94, 63, 41, 41, 55, 39, 58, 64, 69, 66, 64, 70, 75, 67, 112, 65, 67, 95, 86, 60, 53, 70, 93, 69, 59, 78, 63, 64, 57, 74, 78, 49, 46, 67, 41, 60, 51, 58, 48, 73, 60, 58, 56, 62, 58, 54, 63, 54, 84, 65, 44, 62, 79, 65, 86, 61, 81, 53, 57, 71, 52, 58, 48, 81, 86, 60, 91, 65, 37, 54, 57, 73, 77, 64, 64, 53, 61, 73, 55, 46, 79, 49, 64, 72, 69, 75, 100, 58, 54, 79, 55, 66, 61, 59, 60, 53, 58, 49, 53, 58, 44, 49, 83, 117, 69, 68, 56, 63, 56, 60, 53, 48, 44, 54, 58, 56, 51, 55, 73, 65, 69, 62, 76, 41, 79, 80, 68, 62, 52, 90, 77, 52, 70, 82, 72, 49, 55, 67, 116, 59, 60, 49, 53, 89, 67, 74, 50, 62, 52, 59, 57, 64, 69, 61, 58, 57, 48, 63, 77, 83, 56, 48, 68, 64, 45, 95, 57, 67, 69, 73, 102, 108, 66, 63, 73, 69, 77, 74, 55, 68, 81, 53, 53, 59, 62, 70, 51, 98, 64, 59, 68, 43, 61, 61, 58, 67, 101, 57, 83, 54, 48, 69, 55, 67, 64, 80, 41, 110, 98, 48, 104, 68, 76, 73, 59, 73, 70, 121, 64, 119, 53, 59, 72, 60, 77, 58, 87, 70, 72, 66, 68, 71, 46, 92, 72, 49, 68, 61, 42, 64, 67, 64, 61, 80, 56, 64, 67, 58, 48, 63, 50, 85, 64, 71, 56, 79, 105, 83, 85, 57, 70, 96, 66, 62, 69, 66, 76, 59, 44, 47, 70, 63, 61, 67, 55, 89, 66, 53, 64, 76, 92, 75, 44, 59, 66, 81, 74, 50, 41, 60, 55, 44, 63, 55, 75, 58, 80, 79, 59, 56, 80, 63, 66, 64, 82, 40, 54, 55, 92, 77, 48, 73, 56, 67, 99, 55, 56, 52, 67, 61, 65, 69, 75, 67, 65, 43, 90, 54, 66, 49, 42, 75, 60, 78, 66, 69, 49, 71, 57, 82, 46, 61, 71, 54, 59, 57, 60, 78, 64, 64, 85, 68, 85, 57, 57, 68, 93, 80, 70, 77, 147, 51, 47, 46, 53, 93, 61, 66, 66, 68, 73, 66, 68, 70, 55, 48, 50, 68, 77, 59, 61, 69, 52, 58, 46, 87, 60, 72, 55, 57, 58, 91, 61, 52, 79, 64, 70, 63, 62, 49, 58, 51, 69, 63, 59, 76, 60, 59, 61, 73, 67, 62, 50, 73, 47, 61, 69, 54, 48, 53, 75, 62, 73, 61, 64, 83, 71, 55, 93, 88, 59, 57, 63, 66, 52, 71, 81, 50, 60, 52, 36, 62, 59, 56, 70, 49, 43, 60, 45, 53, 64, 73, 73, 71, 51, 104, 64, 48, 82, 85, 57, 53, 98, 66, 59, 71, 62, 85, 64, 77, 65, 73, 57, 65, 66, 57, 54, 65, 48, 74, 50, 59, 64, 70, 59, 53, 69, 66, 62, 57, 71, 100, 60, 59, 59, 54, 81, 94, 64, 67, 80, 53, 59, 47, 51, 60, 64, 75, 51, 66, 59, 77, 67, 77, 52, 55, 64, 65, 64, 61, 84, 70, 62, 69, 39, 58, 49, 63, 47, 68, 112, 60, 63, 70, 50, 78, 52, 72, 63, 75, 51, 85, 77, 62, 61, 76, 65, 67, 83, 43, 68, 59, 83, 55, 47, 60, 67, 64, 66, 78, 57, 77, 86, 78, 62, 70, 54, 73, 72, 88, 71, 69, 78, 68, 51, 47, 67, 68, 63, 107, 57, 59, 72, 72, 57, 57, 65, 72, 66, 61, 71, 54, 75, 76, 61, 61, 73, 52, 39, 51, 75, 53, 75, 74, 96, 92, 61, 68, 54, 63, 81, 67, 64, 81, 66, 54, 49, 63, 54, 79, 44, 77, 71, 65, 55, 64, 66, 46, 60, 74, 68, 100, 57, 73, 54, 70, 67, 57, 55, 67, 67, 69, 64, 51, 58, 102, 60, 58, 48, 58, 59, 62, 66, 76, 69, 56, 66, 64, 72, 42, 78, 61, 72, 65, 55, 48, 61, 88, 64, 60, 57, 59, 69, 72, 56, 55, 67, 71, 70, 45, 63, 70, 57, 68, 122, 80, 105, 47, 51, 55, 54, 73, 87, 78, 80, 94, 64, 46, 63, 68, 69, 73, 59, 59, 85, 81, 67, 68, 60, 70, 57, 111, 65, 48, 125, 50, 67, 68, 75, 63, 83, 53, 64, 89, 61, 67, 62, 68, 65, 55, 58, 58, 52, 58, 72, 76, 87, 69, 69, 63, 56, 61, 63, 47, 72, 66, 84, 51, 65, 69, 50, 65, 87, 52, 106, 69, 87, 73, 68, 82, 65, 60, 66, 81, 76, 56, 59, 72, 75, 52, 58, 73, 57, 64, 66, 81, 58, 35, 51, 71, 45, 68, 64, 78, 83, 74, 138, 54, 54, 56, 80, 51, 100, 61, 86, 70, 66, 68, 51, 72, 50, 78, 61, 54, 57, 57, 83, 54, 62, 76, 56, 65, 97, 70, 73, 64, 88, 90, 73, 62, 54, 78, 50, 69, 56, 75, 47, 56, 55, 56, 64, 72, 66, 55, 65, 55, 75, 57, 82, 56, 64, 91, 63, 84, 73, 45, 69, 61, 68, 91, 90, 37, 84, 71, 57, 76, 69, 66, 108, 48, 60, 79, 53, 63, 70, 62, 80, 72, 48, 55, 66, 81, 73, 52, 79, 74, 37, 69, 76, 66, 78, 56, 72, 50, 137, 81, 89, 61, 82, 56, 67, 48, 89, 62, 61, 74, 61, 57, 106, 60, 69, 73, 86, 88, 63, 86, 52, 76, 61, 45, 52, 50, 60, 65, 44, 55, 48, 97, 41, 67, 96, 44, 60, 39, 75, 60, 62, 55, 56, 55, 69, 67, 34, 100, 75, 80, 63, 63, 54, 67, 77, 48, 49, 61, 73, 61, 68, 83, 50, 56, 65, 63, 51, 48, 63, 64, 81, 61, 68, 84, 56, 66, 67, 82, 66, 56, 81, 60, 55, 65, 51, 89, 70, 113, 75, 71, 71, 71, 56, 71, 74, 58, 61, 79, 62, 68, 83, 87, 56, 55, 69, 79, 63, 51, 53, 53, 63, 52, 74, 61, 43, 83, 82, 66, 76, 56, 58, 53, 61, 78, 65, 66, 54, 74, 80, 53, 47, 72, 63, 81, 72, 81, 57, 46, 93, 71, 68, 51, 87, 58, 51, 59, 50, 55, 68, 45, 45, 60, 52, 95, 69, 58, 67, 57, 73, 62, 50, 69, 83, 69, 66, 75, 50, 46, 92, 61, 53, 62, 65, 60, 88, 61, 30, 78, 42, 49, 72, 46, 47, 69, 65, 53, 61, 67, 70, 66, 78, 54, 50, 55, 79, 61, 69, 74, 49, 46, 66, 58, 61, 61, 50, 64, 64, 63, 69, 68, 79, 74, 58, 77, 53, 67, 79, 79, 73, 84, 58, 43, 50, 75, 51, 70, 58, 78, 74, 72, 62, 67, 55, 76, 58, 66, 39, 52, 97, 81, 83, 89, 49, 53, 53, 93, 53, 65, 60, 54, 73, 59, 41, 70, 57, 52, 65, 75, 87, 57, 58, 71, 43, 88, 50, 62, 43, 72, 68, 72, 47, 50, 63, 57, 59, 77, 65, 80, 80, 64, 46, 73, 66, 67, 59, 69, 59, 55, 63, 66, 69, 70, 67, 92, 70, 54, 74, 93, 39, 74, 49, 66, 69, 88, 72, 63, 75, 58, 65, 65, 72, 60, 49, 64, 65, 44, 65, 67, 51, 62, 69, 68, 47, 92, 57, 57, 56, 69, 89, 66, 68, 57, 64, 89, 49, 79, 102, 87, 60, 74, 72, 53, 38, 59, 66, 80, 80, 46, 71, 71, 73, 61, 50, 43, 58, 135, 67, 55, 61, 64, 44, 59, 70, 66, 65, 77, 70, 70, 62, 53, 51, 65, 71, 52, 52, 65, 56, 60, 65, 63, 75, 81, 66, 69, 61, 54, 53, 66, 44, 92, 60, 74, 56, 63, 93, 65, 82, 96, 52, 53, 60, 63, 67, 63, 57, 61, 62, 54, 71, 69, 66, 64, 56, 67, 54, 76, 58, 80, 48, 70, 69, 69, 65, 103, 82, 53, 56, 68, 62, 56, 76, 88, 65, 60, 54, 62, 64, 56, 56, 58, 45, 65, 83, 84, 79, 66, 97, 68, 57, 39, 63, 57, 50, 69, 66, 67, 83, 74, 55, 65, 68, 70, 48, 58, 61, 40, 68, 64, 44, 69, 56, 60, 57, 70, 62, 101, 59, 75, 49, 71, 70, 57, 73, 62, 61, 63, 76, 62, 69, 72, 66, 48, 71, 85, 78, 63, 59, 106, 55, 88, 68, 48, 53, 53, 56, 76, 74, 64, 57, 68, 76, 98, 53, 54, 70, 59, 86, 74, 60, 55, 70, 57, 68, 74, 54, 75, 60, 89, 55, 80, 55, 54, 52, 56, 100, 50, 88, 73, 72, 74, 80, 68, 66, 71, 67, 42, 54, 60, 63, 64, 51, 74, 70, 54, 80, 66, 59, 49, 69, 66, 55, 57, 51, 51, 69, 68, 83, 49, 77, 77, 51, 74, 55, 52, 69, 63, 61, 78, 57, 59, 64, 62, 53, 74, 64, 55, 58, 63, 70, 51, 61, 70, 61, 94, 76, 72, 52, 68, 64, 61, 74, 53, 53, 59, 72, 77, 61, 67, 59, 63, 64, 54, 53, 51, 74, 59, 89, 65, 62, 66, 43, 81, 57, 53, 62, 72, 66, 63, 43, 73, 69, 86, 69, 67, 63, 81, 56, 73, 67, 61, 52, 47, 54, 54, 66, 56, 63, 52, 65, 89, 79, 92, 70, 62, 53, 80, 75, 71, 87, 46, 61, 84, 57, 64, 60, 73, 76, 63, 129, 60, 58, 66, 63, 70, 65, 66, 63, 80, 60, 59, 64, 65, 57, 52, 79, 64, 106, 64, 52, 64, 58, 68, 63, 73, 68, 53, 66, 102, 64, 56, 67, 73, 77, 67, 74, 60, 64, 64, 98, 63, 54, 64, 65, 68, 62, 77, 61, 66, 64, 69, 60, 68, 67, 58, 64, 85, 63, 50, 56, 51, 66, 44, 89, 53, 76, 74, 67, 80, 74, 51, 79, 67, 54, 72, 69, 57, 70, 59, 83, 71, 57, 49, 76, 50, 53, 59, 66, 62, 66, 51, 61, 45, 78, 57, 51, 65, 71, 76, 53, 93, 49, 78, 52, 52, 44, 54, 62, 62, 68, 81, 55, 66, 62, 89, 74, 63, 66, 62, 62, 52, 71, 75, 70, 72, 66, 61, 66, 67, 69, 61, 72, 66, 74, 60, 60, 54, 59, 60, 72, 67, 62, 56, 59, 69, 89, 67, 63, 61, 61, 59, 49, 52, 113, 51, 107, 70, 52, 53, 67, 73, 49, 65, 76, 55, 53, 42, 64, 56, 74, 73, 65, 84, 63, 50, 44, 71, 58, 66, 63, 115, 75, 49, 121, 63, 62, 62, 58, 55, 67, 71, 79, 55, 58, 80, 78, 82, 57, 59, 66, 68, 63, 62, 63, 75, 95, 51, 59, 54, 68, 47, 74, 56, 61, 56, 64, 61, 56, 57, 72, 42, 70, 56, 102, 64, 48, 86, 70, 81, 75, 54, 65, 56, 81, 71, 44, 48, 60, 54, 69, 60, 53, 59, 67, 77, 83, 61, 88, 70, 72, 64, 62, 66, 72, 68, 52, 57, 71, 58, 68, 70, 70, 64, 86, 52, 65, 64, 80, 56, 68, 67, 52, 64, 48, 57, 68, 76, 55, 89, 66, 72, 122, 80, 69, 56, 83, 60, 75, 76, 64, 71, 72, 53, 63, 70, 60, 59, 54, 55, 63, 51, 54, 51, 69, 64, 52, 58, 84, 84, 56, 56, 53, 76, 97, 71, 67, 39, 63, 81, 74, 56, 61, 59, 60, 72, 69, 67, 96, 44, 66, 62, 46, 78, 79, 64, 47, 74, 65, 68, 49, 50, 73, 60, 77, 61, 65, 58, 56, 52, 54, 87, 83, 64, 161, 47, 55, 51, 62, 59, 73, 47, 83, 61, 53, 52, 74, 62, 84, 58, 68, 58, 86, 76, 60, 52, 55, 66, 59, 56, 60, 67, 64, 57, 56, 60, 69, 121, 74, 59, 76, 62, 62, 71, 60, 77, 54, 83, 74, 53, 49, 68, 53, 77, 69, 43, 59, 77, 62, 85, 77, 66, 75, 61, 49, 68, 63, 66, 68, 58, 64, 66, 75, 53, 62, 81, 56, 59, 52, 78, 72, 103, 61, 88, 48, 68, 76, 60, 56, 50, 60, 133, 52, 68, 58, 66, 75, 63, 59, 68, 67, 55, 89, 87, 63, 70, 94, 86, 58, 61, 72, 105, 54, 64, 67, 54, 62, 71, 74, 74, 51, 56, 57, 68, 81, 91, 43, 52, 64, 97, 51, 64, 72, 61, 90, 63, 56, 65, 55, 79, 48, 68, 72, 56, 56, 74, 70, 46, 53, 43, 70, 46, 55, 60, 62, 75, 59, 64, 85, 92, 90, 74, 54, 62, 69, 70, 76, 78, 101, 55, 53, 65, 63, 70, 64, 65, 45, 73, 63, 66, 71, 66, 55, 66, 42, 53, 72, 65, 70, 61, 69, 64, 59, 67, 83, 54, 86, 65, 74, 65, 74, 64, 67, 79, 61, 65, 55, 73, 73, 79, 56, 47, 68, 57, 51, 51, 74, 62, 64, 57, 58, 71, 72, 64, 75, 66, 49, 76, 69, 75, 69, 88, 57, 85, 64, 82, 47, 53, 75, 64, 70, 68, 59, 64, 84, 84, 70, 83, 70, 67, 55, 83, 56, 59, 59, 56, 67, 62, 58, 60, 55, 56, 63, 89, 73, 64, 63, 69, 65, 74, 52, 55, 61, 60, 78, 65, 68, 72, 47, 53, 61, 56, 44, 79, 81, 70, 67, 48, 82, 70, 62, 59, 76, 64, 54, 69, 66, 64, 74, 84, 87, 47, 64, 81, 61, 68, 66, 50, 92, 66, 59, 34, 61, 45, 50, 47, 54, 58, 85, 67, 61, 63, 67, 85, 57, 55, 79, 62, 83, 69, 70, 50, 62, 62, 94, 73, 75, 55, 45, 63, 46, 72, 84, 47, 64, 69, 62, 57, 79, 62, 73, 81, 58, 61, 68, 61, 75, 73, 73, 73, 52, 59, 62, 72, 64, 70, 97, 62, 56, 69, 61, 60, 50, 66, 66, 81, 62, 58, 59, 57, 54, 65, 63, 44, 72, 65, 56, 59, 62, 71, 49, 80, 57, 60, 57, 65, 60, 64, 70, 59, 71, 87, 64, 58, 64, 67, 90, 76, 75, 59, 74, 73, 64, 48, 63, 63, 59, 63, 64, 55, 62, 49, 69, 82, 56, 69, 70, 59, 59, 77, 71, 75, 75, 47, 46, 67, 72, 59, 88, 65, 86, 61, 50, 64, 68, 68, 60, 68, 75, 61, 87, 45, 67, 74, 61, 72, 63, 62, 54, 63, 63, 64, 62, 76, 57, 57, 63, 49, 46, 71, 70, 55, 71, 59, 101, 61, 79, 70, 67, 71, 73, 100, 77, 58, 95, 58, 81, 82, 63, 65, 84, 57, 57, 62, 83, 62, 73, 103, 56, 43, 48, 56, 63, 62, 65, 89, 62, 53, 65, 53, 61, 81, 60, 62, 105, 72, 63, 53, 62, 34, 90, 61, 58, 58, 58, 65, 68, 71, 58, 64, 61, 83, 58, 81, 65, 48, 61, 85, 99, 60, 58, 72, 56, 61, 57, 55, 68, 59, 63, 58, 58, 89, 64, 59, 52, 53, 67, 78, 65, 55, 67, 56, 72, 65, 68, 60, 74, 62, 104, 81, 69, 88, 65, 86, 49, 60, 71, 141, 69, 57, 75, 61, 57, 52, 60, 84, 65, 50, 80, 55, 67, 64, 60, 63, 53, 66, 79, 58, 57, 59, 57, 61, 52, 64, 59, 51, 49, 57, 65, 85, 67, 53, 61, 80, 54, 63, 55, 58, 52, 64, 54, 62, 66, 47, 47, 59, 46, 68, 60, 58, 61, 73, 60, 78, 54, 90, 57, 69, 82, 63, 59, 77, 76, 60, 58, 60, 62, 60, 66, 72, 53, 67, 116, 64, 62, 61, 55, 99, 48, 82, 65, 60, 63, 55, 120, 67, 68, 70, 73, 66, 70, 71, 64, 60, 56, 60, 86, 74, 83, 64, 111, 72, 71, 61, 70, 60, 57, 52, 51, 81, 79, 60, 64, 50, 64, 54, 67, 62, 74, 66, 63, 115, 69, 80, 56, 60, 62, 56, 56, 59, 46, 62, 97, 58, 60, 70, 57, 65, 61, 55, 62, 67, 69, 51, 75, 81, 76, 68, 81, 71, 63, 134, 82, 57, 52, 59, 84, 81, 51, 60, 79, 62, 77, 66, 65, 83, 66, 61, 62, 66, 56, 60, 51, 76, 63, 62, 79, 59, 50, 67, 71, 64, 54, 66, 48, 55, 60, 99, 85, 48, 75, 60, 78, 110, 49, 59, 71, 88, 93, 81, 67, 64, 51, 52, 95, 67, 84, 58, 75, 61, 62, 75, 63, 67, 63, 46, 74, 75, 55, 69, 74, 68, 81, 71, 55, 71, 55, 67, 61, 50, 69, 55, 60, 106, 84, 78, 66, 45, 76, 54, 56, 71, 71, 76, 72, 84, 65, 79, 69, 49, 66, 74, 48, 67, 66, 53, 51, 68, 55, 62, 76, 63, 47, 54, 58, 59, 96, 48, 60, 74, 69, 65, 66, 66, 65, 56, 74, 70, 60, 67, 68, 48, 73, 53, 63, 60, 66, 49, 68, 63, 48, 59, 58, 72, 62, 53, 59, 77, 80, 57, 58, 43, 74, 88, 61, 59, 57, 43, 87, 61, 47, 63, 83, 66, 64, 63, 80, 117, 71, 64, 70, 58, 54, 60, 52, 52, 67, 63, 61, 103, 83, 51, 83, 69, 57, 62, 62, 57, 61, 53, 60, 54, 64, 67, 92, 56, 73, 66, 63, 64, 62, 63, 68, 62, 71, 71, 58, 80, 58, 67, 55, 65, 67, 51, 83, 50, 73, 54, 55, 72, 80, 41, 44, 58, 66, 70, 59, 50, 64, 71, 71, 76, 72, 62, 89, 72, 61, 75, 60, 69, 83, 67, 61, 59, 60, 68, 73, 50, 62, 67, 60, 76, 67, 59, 60, 78, 75, 57, 62, 118, 62, 68, 68, 125, 59, 53, 52, 58, 83, 53, 56, 85, 69, 63, 59, 56, 72, 72, 58, 51, 64, 65, 57, 60, 57, 58, 45, 62, 57, 61, 62, 62, 56, 64, 88, 56, 63, 63, 59, 57, 79, 60, 55, 66, 60, 67, 58, 63, 69, 65, 62, 63, 79, 62, 53, 57, 73, 52, 60, 77, 78, 68, 65, 76, 54, 60, 69, 60, 64, 57, 60, 52, 50, 64, 56, 78, 64, 61, 60, 64, 57, 71, 59, 58, 70, 59, 59, 77, 55, 74, 53, 68, 114, 69, 94, 63, 65, 88, 60, 64, 78, 45, 69, 74, 57, 68, 62, 55, 108, 63, 55, 61, 71, 65, 80, 64, 54, 56, 59, 63, 77, 68, 52, 58, 60, 92, 62, 67, 48, 65, 82, 48, 76, 63, 65, 59, 64, 61, 68, 66, 57, 57, 72, 76, 57, 56, 64, 44, 64, 61, 55, 65, 61, 60, 59, 54, 62, 66, 62, 57, 62, 69, 61, 45, 69, 71, 93, 66, 62, 63, 88, 33, 61, 67, 61, 60, 66, 56, 64, 62, 65, 37, 54, 64, 67, 73, 66, 62, 55, 61, 44, 52, 67, 61, 60, 89, 64, 57, 65, 69, 57, 63, 66, 63, 72, 65, 69, 53, 64, 66, 72, 80, 65, 56, 54, 61, 61, 52, 59, 103, 106, 60, 70, 59, 66, 55, 57, 68, 62, 63, 95, 65, 54, 69, 62, 81, 59, 56, 65, 67, 61, 70, 59, 56, 59, 62, 74, 54, 59, 67, 106, 77, 86, 68, 93, 63, 106, 38, 80, 61, 59, 62, 60, 61, 60, 54, 63, 79, 83, 59, 95, 63, 62, 51, 47, 59, 61, 68, 63, 62, 68, 56, 57, 53, 57, 68, 65, 82, 83, 65, 60, 75, 112, 54, 53, 66, 67, 65, 63, 51, 80, 63, 68, 75, 71, 78, 65, 64, 78, 56, 64, 49, 55, 58, 63, 106, 62, 58, 79, 65, 55, 53, 56, 66, 53, 75, 52, 72, 69, 60, 84, 89, 52, 69, 55, 94, 62, 76, 70, 93, 67, 62, 64, 107, 78, 85, 57, 75, 87, 111, 58, 69, 56, 78, 48, 46, 63, 75, 101, 80, 67, 63, 63, 76, 60, 61, 57, 57, 65, 64, 68, 56, 61, 56, 98, 64, 67, 65, 68, 67, 86, 70, 52, 62, 72, 67, 53, 60, 62, 58, 62, 59, 59, 69, 73, 52, 48, 51, 53, 64, 62, 54, 65, 62, 59, 64, 64, 67, 94, 69, 81, 66, 75, 51, 53, 59, 69, 106, 70, 57, 57, 62, 65, 59, 62, 66, 87, 59, 55, 70, 74, 50, 51, 64, 60, 77, 63, 58, 75, 51, 60, 63, 81, 68, 57, 57, 76, 53, 70, 49, 67, 109, 62, 57, 65, 65, 103, 64, 72, 67, 56, 51, 63, 61, 43, 78, 85, 55, 60, 48, 41, 58, 81, 68, 65, 68, 62, 70, 68, 63, 77, 70, 89, 71, 44, 54, 54, 92, 62, 74, 68, 64, 54, 83, 85, 60, 48, 52, 65, 62, 56, 75, 72, 46, 72, 80, 74, 57, 66, 68, 50, 82, 62, 61, 72, 80, 68, 68, 66, 61, 54, 74, 69, 46, 79, 65, 61, 75, 63, 74, 46, 42, 58, 67, 52, 86, 62, 63, 46, 66, 57, 54, 77, 65, 46, 58, 47, 63, 66, 66, 65, 74, 69, 60, 88, 81, 61, 81, 69, 84, 71, 62, 53, 72, 70, 57, 49, 75, 60, 70, 59, 77, 74, 64, 59, 65, 66, 57, 59, 63, 53, 68, 78, 72, 49, 107, 75, 60, 76, 57, 57, 60, 43, 73, 59, 69, 61, 69, 74, 50, 50, 66, 77, 48, 58, 68, 81, 52, 53, 66, 43, 154, 55, 75, 73, 52, 54, 75, 65, 61, 71, 60, 52, 73, 56, 75, 63, 61, 65, 55, 74, 72, 69, 53, 80, 65, 55, 67, 66, 60, 71, 59, 65, 46, 91, 95, 53, 87, 74, 61, 73, 58, 59, 69, 73, 53, 71, 69, 48, 58, 48, 68, 69, 70, 84, 59, 58, 69, 65, 53, 60, 70, 65, 50, 58, 68, 81, 71, 55, 53, 58, 60, 59, 67, 58, 74, 49, 58, 59, 47, 74, 72, 59, 68, 60, 44, 87, 70, 50, 59, 73, 77, 69, 67, 70, 69, 68, 62, 80, 80, 60, 80, 87, 59, 62, 65, 51, 76, 67, 61, 64, 94, 63, 61, 45, 65, 62, 69, 69, 55, 79, 72, 93, 52, 60, 90, 79, 58, 57, 62, 55, 50, 74, 64, 106, 60, 74, 59, 62, 89, 55, 62, 68, 55, 75, 72, 63, 68, 43, 71, 58, 93, 97, 67, 87, 104, 64, 61, 56, 49, 69, 69, 80, 47, 52, 62, 48, 68, 59, 78, 79, 50, 93, 61, 64, 79, 60, 68, 51, 66, 66, 73, 53, 43, 68, 45, 67, 48, 75, 87, 75, 64, 57, 56, 62, 61, 63, 75, 72, 59, 73, 53, 104, 50, 85, 95, 57, 65, 56, 44, 76, 58, 51, 59, 63, 81, 60, 49, 66, 62, 65, 68, 67, 88, 58, 56, 61, 54, 60, 52, 50, 52, 61, 84, 44, 47, 62, 65, 55, 89, 54, 59, 57, 68, 69, 66, 48, 87, 57, 52, 64, 88, 43, 73, 88, 70, 60, 52, 51, 58, 60, 59, 59, 83, 58, 54, 74, 69, 64, 41, 72, 66, 60, 67, 56, 68, 72, 62, 65, 65, 61, 69, 70, 56, 84, 78, 92, 56, 87, 67, 60, 56, 60, 52, 76, 69, 49, 60, 46, 65, 50, 57, 54, 57, 57, 55, 55, 97, 76, 70, 54, 63, 65, 72, 56, 52, 75, 52, 64, 90, 48, 97, 74, 83, 85, 69, 61, 65, 42, 57, 62, 54, 54, 65, 59, 66, 58, 51, 60, 63, 53, 59, 75, 98, 42, 90, 70, 56, 116, 52, 60, 68, 47, 59, 78, 88, 66, 62, 52, 69, 55, 66, 72, 72, 52, 68, 69, 57, 40, 81, 80, 59, 55, 39, 81, 55, 114, 88, 102, 72, 69, 66, 62, 52, 92, 73, 93, 63, 75, 60, 80, 78, 67, 63, 57, 70, 74, 67, 73, 83, 61, 68, 52, 57, 74, 68, 82, 75, 56, 70, 62, 65, 67, 53, 74, 72, 66, 119, 64, 49, 62, 53, 82, 51, 81, 58, 78, 56, 54, 57, 75, 82, 59, 94, 57, 87, 67, 65, 87, 78, 66, 56, 70, 58, 61, 56, 73, 72, 73, 63, 85, 45, 56, 62, 70, 66, 58, 69, 59, 32, 53, 69, 74, 73, 69, 75, 73, 72, 62, 56, 47, 65, 60, 95, 76, 79, 63, 62, 54, 79, 57, 82, 59, 61, 61, 66, 52, 61, 65, 92, 44, 60, 62, 65, 51, 61, 80, 57, 79, 65, 43, 66, 56, 67, 69, 57, 62, 89, 63, 46, 64, 89, 69, 70, 62, 104, 63, 45, 60, 58, 60, 62, 60, 61, 59, 65, 68, 47, 72, 72, 63, 70, 82, 56, 49, 58, 61, 56, 45, 60, 52, 75, 63, 64, 103, 75, 62, 69, 78, 43, 85, 56, 63, 80, 72, 70, 66, 66, 66, 47, 84, 64, 68, 63, 69, 52, 58, 52, 65, 87, 60, 57, 50, 101, 53, 94, 74, 57, 60, 99, 71, 61, 81, 61, 78, 69, 60, 59, 68, 61, 71, 78, 114, 59, 55, 53, 68, 65, 67, 52, 62, 47, 47, 69, 53, 72, 61, 57, 61, 79, 71, 97, 95, 58, 57, 82, 59, 88, 78, 46, 64, 80, 68, 48, 76, 59, 62, 60, 77, 106, 44, 72, 75, 52, 44, 53, 65, 58, 85, 73, 62, 75, 79, 70, 46, 73, 59, 67, 64, 85, 64, 72, 70, 48, 60, 78, 51, 58, 77, 63, 53, 78, 66, 82, 111, 79, 49, 54, 96, 98, 68, 54, 66, 57, 70, 65, 76, 51, 74, 79, 74, 76, 85, 61, 63, 89, 61, 60, 54, 56, 77, 72, 60, 57, 68, 79, 58, 54, 65, 52, 55, 64, 64, 62, 56, 70, 60, 54, 53, 56, 70, 68, 71, 55, 67, 75, 66, 45, 62, 62, 75, 50, 78, 46, 70, 61, 59, 71, 61, 77, 79, 70, 83, 65, 83, 82, 73, 45, 79, 66, 70, 66, 49, 76, 52, 57, 58, 48, 65, 110, 61, 75, 64, 47, 55, 97, 71, 60, 72, 69, 63, 67, 53, 48, 59, 62, 73, 80, 72, 64, 70, 70, 53, 92, 74, 67, 51, 51, 73, 62, 55, 76, 46, 57, 88, 94, 72, 68, 73, 54, 64, 63, 62, 69, 59, 69, 58, 44, 62, 69, 61, 71, 66, 44, 68, 55, 67, 66, 48, 52, 59, 61, 55, 76, 102, 64, 60, 56, 70, 60, 62, 74, 89, 68, 52, 77, 65, 58, 60, 54, 46, 63, 35, 73, 59, 70, 44, 73, 70, 59, 74, 54, 66, 75, 67, 70, 62, 60, 61, 75, 55, 57, 69, 51, 78, 58, 69, 67, 71, 81, 61, 63, 74, 69, 59, 85, 54, 72, 53, 55, 74, 63, 68, 66, 63, 56, 71, 52, 78, 83, 71, 82, 62, 56, 60, 73, 86, 54, 82, 65, 48, 59, 56, 93, 70, 61, 66, 76, 53, 52, 55, 69, 74, 69, 61, 53, 72, 64, 55, 69, 65, 71, 62, 51, 44, 51, 62, 72, 94, 63, 67, 76, 83, 68, 59, 70, 59, 80, 63, 82, 44, 64, 73, 59, 67, 64, 64, 87, 79, 54, 72, 70, 97, 78, 71, 99, 73, 57, 60, 65, 52, 76, 85, 75, 53, 59, 73, 73, 60, 64, 67, 54, 57, 60, 55, 63, 63, 54, 92, 60, 69, 50, 52, 61, 69, 57, 56, 81, 79, 71, 58, 84, 69, 62, 53, 73, 76, 92, 73, 63, 48, 55, 79, 73, 67, 46, 75, 59, 58, 93, 60, 63, 69, 64, 60, 56, 64, 68, 84, 78, 68, 61, 56, 46, 66, 76, 84, 88, 78, 77, 70, 69, 76, 53, 64, 143, 82, 68, 53, 79, 51, 74, 62, 65, 53, 65, 69, 70, 62, 55, 52, 59, 82, 50, 73, 58, 67, 65, 43, 58, 71, 58, 76, 64, 53, 51, 65, 57, 94, 56, 65, 83, 61, 67, 54, 57, 72, 75, 71, 71, 44, 60, 58, 69, 79, 70, 55, 57, 55, 52, 59, 78, 52, 72, 59, 76, 95, 72, 57, 86, 68, 76, 62, 76, 62, 71, 65, 83, 71, 59, 72, 67, 63, 56, 47, 66, 58, 70, 60, 53, 66, 66, 125, 79, 68, 86, 53, 63, 63, 68, 67, 64, 67, 62, 80, 75, 87, 78, 108, 69, 63, 78, 44, 57, 53, 75, 67, 85, 70, 57, 61, 52, 54, 68, 46, 56, 55, 56, 81, 80, 83, 53, 65, 44, 59, 70, 71, 63, 53, 57, 103, 59, 52, 63, 59, 61, 73, 49, 68, 60, 53, 56, 75, 59, 104, 65, 75, 68, 68, 102, 63, 58, 51, 65, 68, 66, 64, 72, 68, 60, 65, 61, 59, 57, 53, 69, 68, 60, 71, 55, 55, 55, 51, 61, 91, 67, 57, 71, 82, 80, 73, 54, 62, 58, 54, 107, 62, 43, 69, 65, 66, 73, 42, 40, 59, 53, 104, 85, 76, 71, 76, 45, 67, 83, 68, 70, 59, 51, 52, 83, 62, 73, 65, 42, 77, 86, 58, 67, 49, 79, 68, 49, 61, 56, 55, 48, 54, 74, 36, 74, 70, 67, 76, 71, 76, 64, 61, 66, 67, 59, 62, 57, 64, 61, 56, 78, 58, 71, 79, 62, 63, 63, 68, 66, 80, 69, 80, 54, 55, 53, 51, 58, 49, 60, 101, 53, 65, 53, 54, 52, 73, 71, 79, 56, 68, 63, 53, 94, 73, 80, 88, 71, 77, 60, 65, 57, 71, 67, 62, 72, 62, 65, 57, 69, 44, 65, 87, 54, 63, 43, 64, 65, 65, 65, 59, 84, 84, 65, 51, 54, 69, 64, 50, 66, 67, 120, 45, 70, 58, 72, 65, 59, 77, 60, 72, 59, 65, 123, 67, 60, 64, 71, 60, 61, 62, 56, 72, 64, 61, 57, 52, 60, 94, 65, 49, 52, 56, 102, 57, 95, 74, 63, 64, 67, 63, 81, 72, 58, 73, 66, 72, 46, 64, 50, 103, 53, 54, 59, 107, 76, 65, 73, 70, 65, 60, 55, 74, 78, 68, 58, 67, 55, 74, 65, 64, 83, 58, 61, 61, 60, 75, 75, 54, 24, 68, 52, 64, 73, 55, 68, 56, 78, 71, 56, 59, 68, 53, 106, 57, 58, 75, 117, 71, 65, 65, 57, 86, 62, 66, 87, 57, 75, 65, 61, 71, 69, 54, 65, 70, 59, 65, 64, 51, 61, 64, 54, 60, 48, 56, 68, 59, 60, 96, 69, 58, 55, 51, 65, 70, 70, 73, 83, 66, 60, 64, 75, 63, 66, 59, 72, 78, 71, 83, 76, 51, 68, 78, 50, 70, 50, 64, 60, 58, 77, 69, 59, 81, 70, 66, 50, 61, 63, 65, 74, 69, 58, 58, 71, 70, 67, 70, 59, 62, 54, 66, 67, 47, 68, 68, 66, 69, 73, 71, 87, 72, 93, 54, 67, 64, 75, 55, 47, 68, 54, 80, 83, 55, 78, 72, 63, 69, 51, 65, 68, 71, 60, 84, 58, 77, 63, 63, 57, 41, 82, 62, 62, 63, 61, 115, 56, 60, 68, 68, 56, 68, 58, 53, 89, 83, 50, 82, 77, 58, 47, 75, 54, 75, 59, 74, 66, 59, 64, 68, 61, 56, 77, 57, 68, 48, 76, 61, 72, 58, 71, 87, 68, 57, 69, 85, 62, 46, 54, 54, 70, 58, 58, 76, 77, 59, 53, 88, 67, 54, 58, 79, 70, 61, 63, 59, 52, 69, 68, 34, 69, 65, 53, 63, 84, 68, 57, 58, 72, 69, 68, 60, 64, 61, 64, 61, 43, 72, 59, 71, 64, 52, 54, 69, 73, 96, 61, 61, 51, 62, 60, 64, 74, 58, 64, 95, 68, 55, 69, 57, 89, 58, 68, 71, 58, 48, 63, 53, 57, 64, 78, 61, 61, 55, 77, 79, 64, 56, 74, 78, 58, 84, 86, 73, 45, 63, 47, 63, 69, 58, 62, 47, 77, 62, 52, 64, 46, 107, 65, 66, 53, 57, 100, 47, 72, 52, 46, 85, 71, 73, 57, 73, 57, 63, 76, 53, 66, 83, 53, 43, 67, 49, 73, 58, 55, 62, 61, 62, 65, 65, 65, 54, 48, 82, 61, 66, 65, 80, 52, 59, 67, 56, 61, 53, 62, 44, 69, 46, 72, 75, 58, 71, 56, 73, 48, 78, 81, 65, 65, 66, 89, 55, 72, 49, 112, 68, 56, 69, 75, 78, 76, 61, 94, 89, 133, 54, 76, 62, 74, 49, 57, 58, 61, 80, 84, 63, 87, 79, 82, 66, 67, 82, 68, 73, 85, 54, 65, 55, 61, 72, 59, 76, 57, 64, 67, 73, 70, 81, 51, 74, 54, 65, 46, 57, 76, 85, 49, 107, 65, 70, 57, 56, 50, 64, 60, 44, 60, 74, 68, 66, 58, 67, 43, 77, 88, 60, 66, 69, 70, 77, 81, 66, 63, 81, 43, 75, 51, 67, 64, 69, 96, 105, 60, 59, 71, 54, 57, 71, 67, 53, 67, 55, 67, 62, 63, 70, 50, 62, 59, 67, 70, 61, 64, 91, 36, 55, 62, 56, 61, 74, 63, 50, 55, 85, 58, 83, 63, 64, 64, 54, 53, 73, 59, 61, 63, 73, 82, 65, 57, 98, 54, 54, 55, 70, 74, 60, 45, 55, 70, 52, 70, 60, 74, 70, 64, 52, 47, 59, 79, 56, 65, 60, 79, 58, 55, 73, 61, 47, 52, 70, 64, 57, 73, 58, 75, 76, 60, 47, 75, 65, 94, 57, 58, 88, 58, 71, 56, 82, 53, 84, 58, 55, 68, 67, 86, 79, 115, 65, 52, 53, 57, 64, 100, 117, 110, 60, 68, 77, 62, 55, 83, 64, 52, 55, 83, 104, 57, 70, 76, 61, 35, 53, 68, 73, 66, 75, 75, 61, 82, 75, 79, 61, 60, 62, 54, 61, 59, 71, 90, 60, 61, 49, 61, 62, 66, 70, 68, 69, 53, 56, 74, 85, 80, 57, 56, 47, 77, 93, 63, 62, 69, 75, 59, 76, 65, 59, 51, 79, 97, 51, 55, 81, 58, 59, 58, 59, 137, 78, 62, 76, 67, 62, 59, 65, 74, 49, 77, 63, 73, 54, 67, 52, 54, 56, 57, 67, 58, 60, 81, 76, 57, 65, 38, 68, 55, 62, 47, 54, 77, 70, 72, 65, 74, 72, 65, 57, 56, 53, 55, 72, 82, 79, 51, 56, 69, 68, 76, 64, 75, 67, 63, 57, 67, 53, 67, 70, 60, 84, 60, 79, 63, 50, 95, 63, 55, 81, 79, 63, 89, 54, 65, 53, 108, 54, 58, 60, 86, 61, 57, 61, 67, 75, 62, 113, 55, 69, 54, 44, 48, 60, 83, 76, 47, 58, 57, 57, 70, 88, 69, 65, 64, 60, 62, 79, 61, 61, 58, 52, 74, 64, 58, 32, 70, 54, 82, 67, 69, 58, 42, 73, 96, 76, 79, 50, 63, 51, 62, 66, 103, 85, 77, 76, 55, 53, 66, 60, 75, 67, 54, 67, 85, 41, 41, 117, 68, 86, 93, 68, 68, 70, 98, 88, 60, 60, 40, 65, 87, 44, 56, 74, 71, 78, 54, 58, 93, 76, 70, 71, 70, 50, 75, 48, 65, 85, 63, 79, 42, 61, 61, 77, 67, 44, 68, 67, 75, 84, 51, 46, 40, 40, 59, 68, 61, 73, 47, 79, 73, 94, 46, 85, 60, 69, 65, 68, 61, 79, 70, 74, 70, 65, 132, 81, 66, 56, 62, 86, 66, 54, 33, 64, 69, 95, 57, 58, 62, 48, 62, 57, 85, 69, 74, 73, 97, 37, 75, 63, 59, 55, 83, 66, 60, 76, 51, 65, 79, 50, 78, 76, 46, 55, 57, 81, 59, 64, 63, 67, 82, 56, 52, 69, 60, 58, 63, 50, 52, 79, 59, 64, 51, 66, 59, 55, 55, 52, 61, 80, 70, 67, 55, 65, 51, 52, 76, 61, 57, 66, 56, 53, 64, 66, 59, 49, 68, 52, 60, 53, 72, 47, 48, 49, 51, 64, 97, 74, 67, 69, 90, 96, 54, 51, 64, 61, 53, 65, 116, 78, 81, 70, 51, 64, 64, 45, 56, 56, 65, 77, 55, 40, 83, 82, 87, 81, 59, 58, 82, 58, 57, 53, 78, 76, 57, 80, 71, 103, 49, 57, 64, 59, 70, 50, 58, 82, 63, 76, 68, 62, 90, 86, 56, 51, 47, 84, 65, 95, 47, 94, 84, 76, 75, 87, 90, 60, 87, 85, 69, 60, 74, 50, 43, 57, 77, 79, 60, 78, 72, 65, 125, 54, 66, 70, 53, 61, 65, 59, 72, 56, 61, 59, 65, 68, 77, 63, 64, 71, 48, 47, 66, 50, 99, 62, 63, 61, 109, 61, 76, 41, 55, 91, 71, 67, 62, 72, 57, 54, 64, 38, 59, 68, 40, 73, 73, 66, 57, 74, 58, 65, 68, 66, 65, 45, 49, 90, 51, 72, 71, 61, 70, 71, 61, 75, 54, 56, 62, 50, 76, 55, 74, 54, 51, 69, 54, 64, 58, 85, 82, 63, 73, 48, 62, 53, 63, 61, 64, 49, 69, 64, 48, 60, 47, 62, 46, 30, 54, 73, 91, 94, 60, 69, 46, 59, 52, 58, 74, 71, 60, 67, 56, 63, 66, 49, 59, 101, 57, 85, 60, 55, 87, 62, 46, 71, 97, 80, 72, 89, 55, 77, 93, 52, 51, 68, 43, 51, 74, 69, 70, 59, 43, 87, 60, 67, 56, 79, 68, 58, 73, 72, 81, 70, 53, 69, 61, 56, 59, 80, 83, 52, 61, 75, 77, 69, 65, 68, 107, 69, 68, 72, 77, 68, 70, 63, 61, 58, 55, 57, 80, 62, 56, 61, 55, 68, 47, 58, 64, 70, 102, 77, 60, 75, 49, 84, 61, 56, 66, 55, 53, 62, 69, 97, 77, 51, 73, 97, 59, 64, 58, 68, 82, 65, 96, 51, 58, 59, 73, 58, 58, 58, 62, 57, 56, 71, 66, 51, 47, 56, 85, 58, 81, 53, 72, 82, 74, 65, 58, 49, 66, 76, 44, 44, 86, 78, 58, 73, 65, 73, 64, 63, 62, 86, 52, 90, 65, 69, 71, 78, 66, 74, 91, 64, 55, 71, 45, 70, 71, 68, 66, 68, 68, 87, 102, 83, 71, 68, 77, 83, 65, 69, 78, 66, 58, 60, 69, 78, 74, 58, 61, 59, 55, 95, 53, 73, 53, 81, 75, 64, 54, 61, 64, 62, 54, 62, 49, 57, 58, 60, 71, 70, 58, 60, 50, 73, 102, 108, 50, 53, 67, 63, 51, 72, 44, 48, 43, 70, 85, 71, 65, 67, 50, 86, 48, 51, 49, 61, 51, 63, 61, 52, 72, 63, 58, 77, 72, 52, 51, 65, 81, 63, 50, 62, 73, 93, 87, 56, 76, 81, 84, 60, 68, 65, 115, 63, 72, 55, 79, 68, 89, 63, 107, 60, 77, 52, 46, 60, 81, 75, 72, 63, 63, 83, 74, 52, 56, 66, 52, 72, 67, 54, 60, 73, 63, 62, 76, 67, 62, 58, 65, 55, 63, 61, 62, 41, 60, 56, 90, 58, 56, 57, 61, 71, 48, 80, 65, 71, 75, 57, 60, 64, 48, 50, 69, 99, 61, 72, 63, 58, 68, 59, 61, 77, 56, 72, 51, 94, 48, 54, 82, 56, 80, 59, 66, 65, 56, 68, 56, 79, 62, 74, 66, 63, 57, 58, 69, 63, 51, 59, 81, 59, 70, 77, 83, 75, 58, 68, 64, 69, 77, 77, 67, 52, 54, 51, 75, 49, 45, 68, 64, 92, 82, 93, 60, 65, 69, 68, 44, 76, 61, 113, 63, 67, 53, 54, 64, 76, 73, 73, 74, 61, 54, 69, 56, 72, 70, 80, 61, 76, 63, 67, 75, 69, 58, 81, 45, 50, 87, 73, 73, 57, 60, 65, 53, 44, 49, 57, 64, 74, 53, 80, 88, 79, 88, 48, 80, 73, 61, 57, 79, 55, 55, 65, 66, 61, 57, 49, 60, 68, 57, 58, 64, 66, 71, 55, 81, 68, 70, 61, 74, 60, 67, 68, 56, 48, 61, 85, 53, 60, 63, 56, 63, 40, 78, 56, 66, 48, 54, 93, 41, 64, 58, 60, 86, 69, 64, 60, 66, 62, 60, 63, 78, 69, 53, 62, 99, 60, 67, 53, 63, 65, 53, 63, 54, 75, 76, 57, 78, 72, 88, 67, 54, 79, 55, 70, 64, 62, 59, 55, 52, 53, 56, 83, 63, 57, 55, 67, 63, 67, 68, 62, 68, 53, 55, 62, 164, 78, 51, 58, 72, 67, 73, 64, 56, 78, 51, 71, 55, 75, 62, 53, 57, 59, 63, 63, 72, 42, 64, 65, 64, 54, 73, 47, 62, 63, 59, 63, 47, 62, 67, 58, 84, 86, 62, 73, 80, 55, 43, 76, 63, 59, 58, 56, 59, 68, 58, 61, 51, 64, 82, 58, 92, 55, 52, 60, 49, 75, 48, 61, 65, 70, 80, 57, 76, 68, 61, 55, 87, 65, 65, 67, 82, 48, 60, 53, 84, 56, 54, 62, 71, 106, 65, 102, 80, 62, 66, 60, 76, 75, 81, 76, 58, 78, 54, 55, 90, 41, 56, 88, 65, 72, 55, 73, 64, 51, 50, 65, 60, 49, 73, 74, 57, 50, 56, 87, 57, 81, 54, 67, 101, 68, 64, 67, 66, 60, 41, 53, 64, 80, 59, 77, 60, 76, 71, 52, 55, 55, 53, 76, 64, 88, 59, 92, 58, 92, 80, 57, 49, 85, 92, 75, 62, 50, 67, 56, 76, 67, 49, 61, 73, 85, 63, 59, 67, 47, 50, 40, 52, 65, 64, 55, 52, 63, 51, 56, 72, 61, 58, 71, 74, 57, 46, 61, 88, 89, 83, 72, 64, 64, 65, 69, 71, 58, 60, 75, 79, 110, 73, 64, 71, 61, 65, 62, 62, 66, 60, 60, 68, 46, 97, 56, 64, 41, 53, 75, 73, 73, 71, 67, 65, 76, 59, 43, 75, 62, 74, 50, 70, 56, 62, 68, 61, 62, 76, 70, 41, 51, 78, 78, 79, 57, 52, 61, 76, 75, 89, 67, 68, 56, 68, 73, 64, 72, 43, 74, 64, 56, 64, 60, 65, 71, 49, 67, 50, 69, 56, 59, 61, 57, 76, 61, 54, 59, 76, 75, 62, 51, 62, 60, 74, 65, 69, 77, 55, 64, 78, 70, 62, 63, 71, 61, 82, 75, 57, 49, 64, 53, 68, 67, 55, 57, 115, 59, 61, 66, 81, 47, 61, 53, 65, 67, 69, 61, 104, 72, 114, 48, 78, 50, 78, 72, 69, 89, 49, 81, 58, 77, 81, 62, 78, 67, 63, 71, 70, 64, 61, 84, 68, 69, 49, 52, 48, 108, 72, 44, 74, 64, 47, 58, 79, 88, 65, 81, 55, 39, 96, 70, 96, 69, 60, 85, 55, 89, 65, 76, 39, 59, 69, 103, 74, 89, 68, 85, 49, 40, 53, 58, 52, 64, 64, 81, 52, 70, 61, 58, 105, 49, 54, 73, 57, 58, 75, 88, 68, 65, 55, 39, 58, 67, 85, 84, 64, 67, 58, 61, 58, 57, 79, 59, 61, 82, 89, 67, 61, 76, 59, 58, 57, 70, 83, 96, 79, 69, 48, 45, 84, 48, 80, 56, 73, 66, 59, 57, 65, 65, 64, 71, 79, 67, 54, 67, 42, 67, 62, 85, 60, 66, 67, 71, 72, 57, 64, 63, 80, 50, 80, 63, 68, 59, 68, 51, 58, 45, 54, 82, 56, 64, 63, 64, 72, 63, 77, 57, 47, 53, 74, 57, 61, 48, 75, 83, 56, 55, 73, 39, 59, 54, 59, 63, 54, 88, 48, 75, 70, 59, 61, 70, 66, 60, 56, 79, 81, 68, 75, 39, 94, 61, 63, 82, 120, 60, 67, 77, 65, 87, 78, 79, 51, 67, 73, 62, 53, 73, 84, 63, 65, 65, 77, 55, 52, 63, 65, 64, 69, 51, 58, 58, 84, 116, 61, 45, 82, 53, 80, 78, 67, 71, 70, 101, 58, 68, 76, 48, 64, 81, 48, 63, 53, 66, 64, 57, 77, 78, 71, 62, 75, 58, 79, 63, 81, 56, 65, 57, 85, 75, 55, 77, 51, 57, 50, 63, 62, 61, 60, 76, 53, 80, 60, 55, 75, 71, 58, 50, 56, 72, 75, 63, 99, 48, 60, 59, 51, 63, 75, 71, 85, 79, 58, 69, 63, 64, 67, 83, 71, 52, 69, 55, 64, 76, 72, 42, 61, 77, 65, 55, 60, 67, 58, 78, 58, 49, 57, 53, 67, 52, 75, 77, 62, 88, 55, 69, 76, 77, 94, 52, 76, 71, 64, 59, 71, 52, 56, 61, 67, 55, 70, 54, 78, 112, 73, 73, 63, 78, 85, 59, 58, 54, 67, 60, 75, 54, 72, 72, 76, 49, 56, 74, 55, 79, 72, 98, 99, 58, 60, 63, 85, 60, 57, 46, 62, 61, 64, 67, 72, 56, 72, 65, 49, 71, 83, 66, 62, 58, 57, 69, 59, 78, 49, 68, 72, 50, 64, 73, 59, 56, 50, 60, 48, 81, 57, 70, 87, 62, 91, 74, 57, 74, 52, 67, 54, 72, 75, 59, 64, 61, 57, 48, 75, 70, 78, 51, 60, 55, 108, 59, 63, 69, 83, 54, 92, 48, 52, 52, 96, 59, 79, 42, 87, 58, 67, 55, 63, 57, 54, 55, 60, 48, 76, 64, 57, 54, 48, 55, 56, 59, 72, 64, 61, 83, 83, 52, 95, 80, 44, 72, 61, 67, 75, 73, 50, 75, 55, 70, 73, 57, 49, 58, 70, 90, 66, 75, 72, 63, 54, 73, 69, 65, 64, 69, 60, 71, 76, 50, 75, 71, 93, 81, 71, 62, 73, 60, 65, 77, 56, 54, 95, 42, 61, 45, 65, 51, 56, 69, 73, 63, 53, 99, 51, 75, 56, 64, 86, 60, 100, 62, 47, 55, 63, 64, 82, 66, 55, 58, 59, 73, 88, 47, 57, 65, 67, 52, 52, 58, 54, 62, 90, 57, 69, 53, 53, 58, 62, 69, 92, 64, 62, 81, 63, 65, 77, 61, 56, 59, 56, 62, 56, 61, 50, 50, 54, 99, 79, 50, 51, 53, 83, 68, 47, 56, 36, 49, 64, 81, 76, 59, 53, 55, 53, 50, 56, 66, 56, 99, 57, 67, 76, 82, 61, 58, 75, 62, 53, 68, 63, 72, 68, 52, 66, 70, 52, 52, 64, 70, 57, 53, 60, 60, 84, 58, 111, 56, 44, 55, 73, 60, 62, 66, 45, 62, 63, 63, 54, 56, 52, 58, 63, 75, 56, 61, 62, 68, 76, 99, 67, 56, 59, 82, 51, 65, 64, 67, 70, 67, 64, 66, 78, 48, 73, 64, 84, 56, 49, 70, 67, 58, 48, 82, 72, 49, 62, 90, 62, 68, 63, 73, 59, 67, 65, 69, 57, 56, 46, 59, 67, 59, 74, 52, 56, 89, 78, 81, 93, 70, 50, 47, 77, 63, 48, 57, 109, 74, 73, 60, 54, 48, 81, 57, 63, 45, 59, 92, 67, 54, 68, 73, 65, 93, 51, 60, 55, 81, 88, 75, 66, 65, 69, 59, 82, 65, 70, 56, 70, 82, 56, 41, 60, 65, 66, 78, 66, 61, 60, 59, 59, 58, 71, 61, 68, 84, 67, 63, 49, 70, 66, 62, 51, 71, 50, 62, 60, 65, 36, 51, 86, 78, 67, 78, 73, 54, 73, 68, 94, 57, 66, 99, 60, 62, 67, 59, 78, 68, 62, 53, 60, 64, 69, 70, 67, 55, 93, 60, 57, 61, 51, 65, 61, 72, 62, 86, 58, 73, 60, 59, 91, 75, 69, 73, 46, 54, 58, 59, 74, 68, 71, 55, 71, 65, 62, 59, 72, 67, 64, 59, 87, 72, 36, 64, 62, 46, 83, 59, 66, 79, 56, 92, 64, 58, 87, 55, 67, 52, 59, 93, 75, 89, 73, 72, 46, 67, 68, 76, 57, 85, 122, 77, 72, 59, 55, 53, 70, 134, 62, 56, 59, 77, 71, 40, 58, 70, 57, 62, 55, 61, 74, 53, 62, 64, 52, 70, 98, 67, 51, 70, 110, 69, 55, 64, 50, 80, 93, 62, 68, 67, 63, 51, 78, 60, 62, 70, 46, 89, 58, 85, 42, 63, 58, 42, 51, 58, 55, 56, 60, 63, 81, 62, 58, 65, 56, 66, 83, 56, 61, 67, 74, 81, 61, 61, 75, 87, 73, 60, 42, 53, 44, 66, 66, 67, 100, 51, 56, 46, 65, 63, 56, 49, 84, 47, 54, 47, 58, 51, 73, 84, 73, 59, 65, 63, 55, 60, 63, 64, 79, 71, 55, 66, 74, 41, 62, 76, 49, 55, 61, 59, 64, 50, 58, 58, 53, 63, 63, 65, 46, 60, 67, 69, 90, 72, 61, 59, 88, 58, 59, 75, 61, 70, 67, 70, 61, 57, 63, 72, 47, 59, 54, 54, 70, 58, 54, 70, 57, 50, 57, 69, 52, 104, 58, 50, 70, 86, 120, 55, 66, 61, 68, 67, 60, 103, 50, 70, 53, 83, 55, 60, 45, 67, 55, 57, 74, 57, 46, 75, 69, 71, 56, 66, 50, 91, 60, 55, 58, 67, 54, 66, 86, 84, 87, 78, 73, 65, 88, 82, 55, 54, 66, 68, 53, 65, 77, 76, 87, 70, 61, 113, 62, 54, 71, 72, 86, 79, 71, 71, 82, 77, 66, 55, 68, 59, 67, 56, 85, 57, 82, 52, 66, 55, 48, 66, 56, 68, 62, 63, 57, 82, 63, 72, 86, 69, 52, 84, 69, 56, 94, 68, 62, 58, 114, 82, 60, 47, 53, 76, 51, 52, 120, 63, 79, 59, 85, 61, 68, 55, 72, 71, 64, 60, 69, 37, 86, 72, 60, 58, 61, 88, 58, 83, 45, 67, 61, 68, 62, 68, 44, 86, 54, 63, 46, 64, 77, 79, 57, 62, 50, 54, 61, 84, 68, 63, 55, 71, 54, 99, 58, 114, 66, 42, 71, 63, 65, 67, 78, 57, 76, 59, 73, 64, 32, 62, 79, 60, 58, 48, 68, 44, 56, 62, 41, 53, 51, 70, 85, 74, 57, 50, 85, 41, 78, 53, 68, 80, 100, 67, 62, 56, 89, 40, 58, 66, 70, 74, 70, 83, 70, 78, 71, 57, 67, 58, 65, 69, 44, 85, 57, 58, 71, 69, 61, 59, 98, 69, 49, 43, 65, 123, 75, 72, 60, 46, 95, 57, 59, 53, 118, 99, 73, 56, 43, 88, 60, 82, 64, 79, 55, 70, 75, 67, 57, 57, 70, 55, 53, 73, 53, 68, 67, 66, 60, 55, 54, 91, 54, 70, 71, 70, 81, 57, 57, 69, 53, 60, 67, 59, 52, 57, 54, 73, 69, 63, 59, 75, 64, 71, 53, 52, 78, 54, 89, 59, 94, 64, 70, 84, 64, 65, 70, 50, 66, 51, 55, 54, 55, 69, 62, 68, 78, 66, 66, 78, 54, 54, 53, 86, 76, 68, 52, 60, 65, 69, 56, 48, 47, 65, 59, 101, 88, 51, 54, 30, 93, 70, 61, 73, 59, 63, 88, 80, 64, 58, 71, 57, 77, 46, 48, 114, 63, 68, 90, 73, 71, 54, 70, 48, 53, 54, 64, 63, 67, 55, 59, 58, 67, 75, 51, 68, 73, 63, 87, 84, 72, 78, 75, 51, 75, 64, 68, 76, 55, 55, 68, 47, 71, 49, 61, 62, 76, 53, 54, 63, 67, 54, 67, 69, 59, 72, 66, 44, 44, 68, 68, 62, 63, 57, 47, 75, 70, 65, 68, 75, 71, 44, 63, 51, 48, 64, 68, 77, 63, 65, 37, 60, 55, 60, 57, 48, 53, 63, 51, 56, 111, 58, 51, 60, 93, 49, 60, 67, 50, 72, 66, 79, 68, 45, 108, 48, 69, 66, 76, 63, 64, 62, 56, 74, 77, 84, 74, 54, 57, 49, 56, 66, 67, 71, 57, 61, 76, 59, 61, 79, 59, 93, 48, 71, 68, 67, 98, 65, 64, 78, 57, 57, 54, 60, 68, 103, 84, 106, 70, 88, 67, 44, 62, 57, 78, 53, 77, 51, 63, 71, 75, 39, 99, 62, 80, 55, 61, 90, 71, 69, 59, 65, 66, 69, 60, 58, 65, 48, 70, 48, 41, 55, 52, 53, 72, 70, 70, 74, 56, 58, 89, 69, 68, 61, 62, 64, 79, 68, 64, 71, 68, 46, 66, 73, 54, 63, 113, 72, 43, 67, 54, 57, 56, 74, 74, 87, 65, 60, 52, 54, 71, 66, 71, 53, 42, 52, 55, 67, 54, 63, 73, 62, 67, 81, 51, 76, 50, 73, 68, 64, 56, 50, 63, 66, 48, 46, 63, 76, 61, 52, 84, 64, 59, 44, 59, 44, 68, 72, 57, 59, 46, 58, 70, 90, 64, 67, 67, 71, 77, 61, 89, 82, 74, 40, 81, 67, 54, 57, 56, 44, 49, 90, 61, 59, 58, 64, 116, 63, 54, 68, 77, 70, 72, 67, 59, 71, 76, 53, 66, 47, 53, 58, 70, 59, 52, 52, 53, 61, 80, 85, 70, 58, 111, 56, 75, 62, 75, 75, 65, 63, 68, 70, 69, 99, 85, 54, 54, 80, 51, 68, 56, 59, 67, 62, 70, 83, 58, 54, 37, 67, 78, 71, 46, 65, 85, 60, 60, 77, 55, 68, 77, 58, 45, 74, 63, 63, 110, 34, 84, 43, 69, 90, 52, 54, 56, 46, 114, 67, 44, 77, 84, 62, 81, 38, 56, 60, 58, 67, 79, 61, 49, 67, 71, 68, 56, 73, 58, 64, 95, 70, 73, 49, 71, 62, 79, 69, 72, 65, 47, 60, 57, 55, 66, 58, 62, 58, 53, 59, 57, 62, 82, 73, 65, 52, 63, 91, 56, 64, 48, 78, 73, 62, 60, 51, 34, 67, 65, 95, 74, 46, 79, 67, 61, 48, 46, 51, 71, 70, 73, 58, 73, 69, 79, 65, 66, 66, 61, 60, 56, 53, 96, 102, 65, 87, 61, 82, 55, 37, 57, 59, 65, 55, 64, 59, 58, 61, 69, 102, 44, 65, 72, 64, 80, 53, 57, 62, 86, 74, 47, 67, 76, 69, 58, 62, 64, 64, 70, 54, 69, 75, 81, 64, 54, 78, 52, 57, 96, 58, 55, 81, 61, 78, 76, 58, 74, 41, 57, 72, 70, 65, 70, 81, 68, 82, 53, 48, 70, 65, 63, 73, 103, 80, 67, 67, 53, 58, 70, 52, 67, 55, 70, 60, 63, 59, 63, 86, 48, 79, 61, 63, 60, 48, 41, 65, 78, 76, 68, 82, 87, 62, 72, 65, 71, 71, 57, 90, 85, 64, 83, 68, 53, 70, 71, 74, 56, 103, 65, 97, 69, 73, 56, 53, 73, 48, 63, 57, 53, 77, 76, 71, 91, 114, 51, 72, 63, 78, 56, 36, 85, 43, 45, 72, 60, 54, 59, 57, 67, 74, 53, 58, 78, 76, 72, 63, 70, 69, 84, 73, 71, 45, 64, 75, 86, 75, 55, 62, 67, 64, 64, 59, 53, 56, 68, 56, 73, 51, 68, 61, 71, 53, 74, 58, 61, 51, 71, 68, 45, 56, 60, 64, 55, 67, 61, 90, 62, 86, 75, 61, 60, 66, 54, 54, 48, 70, 53, 73, 68, 66, 82, 55, 80, 91, 54, 66, 50, 62, 65, 82, 70, 62, 68, 58, 58, 73, 77, 64, 42, 55, 61, 56, 61, 83, 65, 69, 103, 80, 106, 73, 45, 58, 87, 64, 57, 85, 69, 76, 50, 75, 63, 59, 60, 62, 53, 83, 72, 46, 70, 64, 39, 77, 54, 63, 71, 47, 51, 63, 52, 52, 48, 62, 95, 69, 67, 77, 54, 52, 76, 81, 62, 81, 53, 59, 66, 83, 45, 47, 51, 74, 61, 112, 68, 71, 86, 73, 60, 55, 66, 68, 59, 80, 63, 66, 60, 64, 57, 60, 87, 63, 60, 52, 59, 49, 65, 54, 55, 72, 82, 79, 68, 72, 86, 70, 35, 76, 65, 60, 67, 66, 70, 78, 60, 54, 92, 74, 71, 73, 66, 45, 66, 75, 97, 59, 71, 74, 61, 45, 59, 86, 40, 71, 55, 75, 62, 76, 47, 60, 49, 57, 74, 81, 62, 54, 51, 85, 61, 54, 52, 64, 53, 103, 53, 78, 59, 69, 62, 50, 68, 65, 52, 58, 83, 86, 89, 47, 70, 53, 57, 88, 61, 94, 65, 61, 54, 38, 70, 63, 76, 59, 78, 76, 42, 65, 65, 70, 101, 67, 64, 67, 54, 68, 60, 72, 51, 54, 68, 58, 77, 58, 65, 69, 70, 69, 59, 60, 64, 64, 67, 63, 58, 93, 102, 68, 61, 50, 68, 46, 62, 49, 63, 74, 81, 71, 80, 77, 53, 67, 68, 89, 46, 62, 95, 60, 75, 71, 59, 55, 70, 54, 66, 152, 70, 63, 96, 55, 62, 53, 70, 67, 78, 92, 80, 70, 71, 48, 74, 53, 63, 77, 70, 53, 74, 76, 50, 60, 84, 66, 97, 71, 67, 56, 47, 64, 74, 59, 60, 97, 56, 75, 79, 51, 87, 54, 63, 60, 78, 90, 86, 68, 85, 70, 60, 67, 60, 75, 60, 75, 53, 49, 65, 59, 71, 73, 58, 60, 76, 71, 58, 58, 59, 91, 53, 66, 62, 57, 59, 82, 54, 58, 77, 99, 70, 70, 73, 57, 66, 76, 68, 69, 37, 77, 62, 80, 62, 55, 85, 58, 59, 77, 79, 81, 87, 48, 78, 95, 100, 71, 74, 61, 70, 53, 55, 64, 67, 56, 95, 51, 69, 66, 87, 111, 78, 66, 88, 49, 61, 59, 74, 67, 49, 60, 67, 73, 46, 68, 71, 62, 60, 78, 77, 67, 79, 57, 74, 54, 55, 68, 60, 60, 51, 54, 66, 88, 82, 60, 80, 54, 81, 53, 59, 53, 61, 75, 62, 53, 79, 60, 64, 69, 69, 44, 76, 71, 59, 58, 76, 55, 56, 56, 74, 73, 67, 74, 64, 67, 81, 67, 44, 38, 57, 70, 56, 71, 58, 48, 66, 78, 63, 60, 65, 95, 41, 73, 57, 51, 117, 59, 40, 55, 118, 50, 75, 65, 64, 52, 76, 95, 61, 58, 81, 66, 52, 89, 59, 50, 69, 54, 138, 67, 103, 85, 72, 74, 72, 57, 48, 59, 59, 59, 49, 48, 53, 56, 73, 97, 60, 70, 62, 78, 46, 47, 68, 71, 61, 47, 59, 77, 62, 56, 67, 115, 75, 75, 69, 77, 68, 59, 65, 53, 63, 70, 59, 51, 69, 79, 44, 55, 68, 64, 69, 68, 72, 63, 74, 66, 73, 64, 85, 68, 67, 57, 63, 59, 74, 109, 50, 86, 55, 70, 33, 62, 58, 60, 60, 80, 62, 69, 69, 65, 48, 46, 60, 69, 45, 65, 63, 77, 80, 76, 62, 56, 69, 59, 53, 81, 62, 75, 68, 52, 80, 62, 53, 68, 61, 86, 77, 59, 78, 63, 40, 77, 67, 48, 59, 69, 82, 34, 64, 98, 79, 56, 69, 59, 96, 69, 70, 48, 76, 55, 60, 81, 58, 53, 54, 53, 75, 62, 48, 59, 61, 61, 45, 56, 63, 60, 60, 63, 65, 79, 114, 69, 56, 72, 54, 53, 104, 70, 78, 69, 66, 58, 47, 82, 56, 67, 64, 63, 57, 60, 56, 62, 105, 81, 101, 62, 70, 76, 76, 88, 94, 69, 72, 47, 61, 60, 50, 60, 68, 78, 69, 81, 66, 75, 48, 69, 50, 61, 70, 59, 62, 91, 56, 67, 82, 51, 58, 71, 93, 69, 78, 65, 95, 69, 64, 67, 74, 54, 67, 62, 64, 88, 67, 69, 66, 66, 46, 49, 52, 65, 47, 57, 58, 52, 55, 69, 65, 54, 60, 99, 60, 50, 53, 49, 78, 59, 72, 76, 90, 54, 56, 62, 153, 80, 75, 77, 72, 70, 67, 51, 62, 67, 61, 64, 59, 80, 56, 59, 66, 56, 55, 82, 64, 73, 54, 73, 45, 62, 65, 59, 79, 50, 57, 70, 72, 52, 72, 61, 91, 65, 65, 62, 49, 52, 54, 54, 64, 60, 74, 57, 59, 87, 61, 65, 59, 59, 46, 63, 67, 47, 71, 53, 68, 68, 52, 61, 78, 77, 66, 59, 106, 53, 79, 55, 77, 50, 56, 75, 64, 77, 81, 66, 72, 61, 78, 66, 64, 82, 48, 105, 73, 64, 65, 56, 64, 85, 56, 64, 70, 69, 52, 61, 96, 59, 61, 56, 61, 61, 62, 68, 49, 63, 66, 47, 79, 65, 61, 47, 71, 64, 60, 54, 74, 72, 63, 56, 83, 47, 75, 61, 62, 47, 81, 93, 65, 85, 51, 74, 57, 34, 60, 51, 74, 54, 63, 59, 71, 80, 65, 57, 66, 90, 65, 56, 68, 76, 86, 98, 39, 52, 57, 61, 88, 68, 57, 58, 65, 59, 66, 50, 81, 61, 61, 75, 76, 70, 64, 61, 51, 62, 41, 50, 60, 63, 75, 56, 69, 89, 70, 54, 74, 68, 55, 58, 63, 44, 50, 63, 83, 90, 61, 75, 41, 85, 62, 59, 63, 43, 64, 69, 57, 57, 76, 76, 53, 47, 131, 77, 63, 71, 48, 78, 53, 49, 54, 91, 79, 56, 57, 56, 58, 54, 72, 72, 75, 52, 64, 59, 73, 55, 47, 64, 52, 68, 65, 63, 64, 59, 65, 72, 48, 70, 68, 65, 69, 52, 50, 47, 63, 56, 59, 79, 66, 51, 61, 59, 85, 61, 70, 59, 46, 73, 75, 54, 60, 59, 68, 68, 62, 67, 60, 58, 56, 65, 58, 68, 41, 73, 69, 71, 66, 62, 70, 71, 47, 44, 61, 55, 62, 53, 66, 41, 60, 53, 57, 58, 51, 63, 107, 75, 65, 70, 49, 62, 64, 52, 47, 56, 66, 71, 88, 58, 130, 70, 83, 54, 55, 48, 59, 42, 56, 65, 62, 55, 102, 76, 84, 61, 58, 55, 71, 47, 57, 56, 76, 101, 64, 61, 55, 103, 62, 67, 63, 92, 50, 65, 66, 73, 61, 91, 91, 62, 88, 80, 54, 78, 78, 75, 63, 70, 72, 78, 73, 50, 52, 127, 78, 63, 73, 91, 51, 60, 61, 61, 74, 26, 72, 75, 65, 59, 51, 69, 101, 55, 42, 44, 84, 62, 57, 54, 73, 77, 65, 59, 67, 66, 69, 84, 63, 66, 53, 49, 60, 60, 73, 56, 60, 63, 60, 69, 67, 42, 66, 55, 51, 43, 73, 53, 54, 56, 65, 56, 61, 60, 91, 83, 62, 71, 61, 74, 58, 74, 72, 39, 69, 69, 64, 51, 68, 57, 53, 80, 70, 63, 59, 52, 63, 81, 60, 77, 71, 67, 61, 53, 55, 64, 59, 74, 72, 90, 57, 46, 51, 77, 74, 60, 42, 60, 69, 56, 64, 53, 76, 65, 58, 70, 56, 74, 56, 55, 70, 63, 53, 55, 57, 50, 58, 71, 43, 63, 51, 54, 87, 65, 70, 53, 66, 104, 79, 75, 96, 65, 77, 71, 52, 64, 127, 77, 58, 59, 49, 72, 66, 57, 62, 66, 51, 57, 97, 75, 98, 55, 64, 70, 62, 74, 65, 63, 59, 70, 55, 63, 58, 64, 68, 91, 78, 54, 66, 50, 46, 62, 62, 67, 91, 105, 83, 65, 95, 78, 64, 57, 77, 65, 55, 63, 64, 93, 46, 63, 84, 87, 53, 62, 92, 49, 69, 66, 79, 61, 85, 101, 63, 98, 57, 58, 77, 59, 66, 62, 61, 66, 59, 76, 70, 59, 87, 86, 45, 60, 96, 62, 63, 64, 87, 59, 61, 66, 72, 79, 79, 60, 65, 88, 68, 85, 84, 70, 61, 65, 59, 60, 65, 53, 63, 95, 66, 66, 69, 76, 47, 51, 70, 83, 78, 84, 63, 75, 65, 58, 57, 58, 82, 61, 53, 91, 51, 61, 61, 56, 33, 53, 64, 48, 72, 55, 79, 55, 76, 63, 66, 81, 66, 54, 82, 92, 65, 52, 48, 74, 69, 66, 56, 68, 66, 51, 62, 66, 68, 63, 64, 75, 61, 97, 58, 83, 63, 68, 52, 88, 74, 77, 82, 59, 72, 64, 64, 56, 64, 60, 90, 64, 64, 57, 62, 68, 124, 108, 62, 56, 57, 51, 57, 56, 58, 48, 62, 72, 66, 59, 52, 54, 71, 65, 62, 49, 75, 62, 62, 64, 106, 65, 53, 60, 66, 73, 76, 74, 84, 62, 57, 71, 66, 75, 51, 61, 78, 59, 57, 62, 98, 52, 72, 63, 94, 50, 52, 66, 52, 41, 82, 48, 67, 47, 84, 60, 57, 47, 49, 49, 58, 69, 75, 63, 92, 57, 69, 59, 68, 67, 56, 66, 64, 60, 71, 59, 72, 64, 76, 41, 62, 80, 60, 74, 76, 53, 61, 75, 79, 57, 51, 57, 84, 64, 67, 85, 63, 55, 62, 80, 50, 75, 66, 52, 66, 84, 73, 64, 47, 61, 39, 47, 68, 68, 60, 67, 65, 60, 65, 63, 87, 59, 134, 58, 59, 68, 53, 59, 69, 96, 71, 97, 64, 71, 62, 77, 63, 56, 59, 53, 50, 57, 64, 52, 59, 63, 50, 59, 81, 80, 67, 65, 83, 68, 62, 69, 78, 48, 86, 56, 53, 72, 77, 56, 58, 90, 81, 59, 81, 65, 75, 53, 84, 78, 68, 60, 71, 82, 57, 69, 60, 75, 64, 69, 61, 82, 67, 65, 56, 56, 50, 65, 75, 52, 83, 65, 86, 55, 74, 70, 55, 62, 73, 61, 59, 71, 63, 49, 58, 77, 54, 68, 74, 74, 70, 76, 100, 79, 55, 59, 92, 51, 73, 55, 56, 62, 59, 51, 69, 84, 55, 63, 71, 47, 51, 57, 109, 51, 55, 61, 58, 53, 76, 69, 74, 75, 66, 71, 77, 60, 81, 49, 58, 75, 46, 50, 47, 92, 75, 77, 62, 47, 83, 57, 87, 75, 53, 52, 66, 61, 84, 60, 81, 70, 68, 55, 93, 73, 89, 58, 85, 62, 68, 100, 56, 64, 52, 64, 66, 73, 82, 62, 74, 66, 59, 71, 64, 74, 66, 50, 61, 54, 52, 116, 50, 74, 53, 104, 80, 67, 54, 74, 81, 65, 42, 61, 144, 79, 53, 61, 63, 85, 62, 60, 66, 46, 88, 75, 68, 80, 71, 58, 58, 70, 56, 54, 59, 57, 65, 78, 61, 44, 76, 61, 76, 57, 54, 65, 83, 66, 46, 68, 75, 66, 65, 48, 59, 61, 78, 70, 72, 63, 45, 80, 97, 70, 48, 63, 74, 62, 73, 59, 90, 55, 52, 58, 57, 65, 57, 79, 66, 75, 70, 72, 68, 63, 72, 52, 79, 54, 55, 74, 57, 68, 64, 79, 50, 63, 81, 73, 72, 61, 72, 78, 84, 48, 54, 58, 66, 78, 71, 83, 63, 46, 58, 60, 92, 64, 60, 75, 74, 62, 58, 71, 54, 52, 69, 52, 54, 55, 68, 62, 52, 81, 58, 52, 70, 87, 58, 47, 111, 82, 75, 62, 52, 60, 46, 60, 72, 66, 77, 66, 83, 59, 48, 59, 69, 64, 75, 51, 52, 68, 59, 94, 54, 44, 68, 75, 63, 74, 92, 60, 60, 47, 61, 75, 73, 61, 72, 74, 60, 72, 52, 59, 73, 60, 69, 71, 39, 55, 63, 54, 62, 67, 60, 61, 72, 64, 74, 45, 112, 59, 71, 57, 38, 69, 78, 67, 55, 91, 52, 78, 61, 60, 55, 66, 56, 80, 65, 67, 71, 74, 66, 61, 52, 65, 66, 63, 61, 78, 68, 63, 58, 67, 93, 65, 87, 59, 57, 52, 104, 53, 73, 52, 67, 71, 55, 67, 53, 64, 69, 44, 93, 72, 79, 66, 48, 49, 53, 85, 53, 64, 88, 79, 63, 61, 68, 64, 73, 48, 62, 65, 72, 63, 65, 53, 89, 68, 71, 76, 72, 57, 63, 58, 59, 105, 46, 53, 45, 75, 56, 71, 75, 68, 53, 74, 61, 60, 62, 73, 62, 77, 79, 71, 76, 67, 75, 67, 64, 80, 63, 68, 60, 53, 67, 51, 51, 60, 51, 66, 131, 57, 103, 64, 50, 65, 59, 83, 63, 56, 49, 77, 54, 60, 64, 95, 84, 96, 44, 60, 75, 50, 56, 44, 47, 61, 71, 105, 76, 69, 69, 65, 61, 68, 93, 51, 42, 64, 52, 72, 60, 57, 42, 103, 64, 113, 57, 58, 53, 68, 68, 71, 65, 44, 68, 45, 53, 63, 52, 60, 65, 74, 95, 61, 56, 79, 72, 68, 74, 60, 59, 73, 92, 68, 65, 92, 67, 69, 54, 81, 55, 75, 63, 74, 69, 76, 56, 54, 59, 74, 67, 60, 83, 47, 95, 66, 69, 47, 48, 58, 60, 65, 56, 65, 58, 52, 74, 57, 92, 61, 71, 59, 102, 66, 60, 65, 61, 76, 73, 48, 113, 67, 57, 61, 61, 50, 80, 66, 100, 64, 69, 63, 49, 69, 71, 74, 51, 61, 55, 76, 64, 66, 93, 60, 62, 53, 66, 63, 46, 61, 65, 55, 57, 59, 68, 68, 67, 46, 60, 52, 59, 49, 76, 65, 57, 70, 75, 91, 81, 61, 76, 66, 73, 62, 56, 64, 67, 67, 87, 77, 75, 69, 63, 50, 63, 67, 72, 80, 58, 72, 55, 51, 70, 101, 61, 72, 70, 80, 70, 68, 46, 125, 84, 65, 58, 46, 105, 63, 53, 61, 104, 52, 57, 75, 52, 39, 84, 81, 65, 78, 49, 58, 82, 78, 40, 61, 65, 59, 55, 97, 42, 47, 76, 66, 53, 63, 74, 63, 66, 97, 69, 74, 57, 63, 69, 46, 40, 53, 55, 71, 75, 49, 66, 58, 60, 80, 73, 63, 57, 77, 69, 64, 60, 62, 65, 60, 60, 58, 37, 71, 58, 62, 82, 44, 90, 74, 54, 68, 61, 62, 51, 59, 65, 62, 65, 65, 59, 57, 76, 62, 57, 76, 58, 60, 61, 65, 53, 73, 102, 66, 50, 63, 60, 80, 76, 58, 62, 69, 52, 63, 40, 59, 59, 40, 62, 71, 52, 52, 55, 63, 63, 69, 58, 54, 85, 56, 50, 80, 58, 66, 69, 79, 60, 63, 43, 74, 58, 67, 66, 131, 83, 62, 57, 59, 60, 87, 54, 57, 77, 59, 83, 57, 58, 66, 69, 118, 62, 62, 65, 82, 67, 68, 45, 99, 63, 87, 70, 75, 74, 55, 55, 60, 70, 56, 64, 46, 56, 74, 53, 96, 64, 57, 80, 110, 75, 49, 74, 54, 61, 63, 50, 61, 64, 62, 67, 74, 79, 59, 54, 50, 54, 61, 55, 51, 49, 43, 65, 52, 120, 68, 59, 82, 77, 60, 70, 70, 55, 66, 67, 97, 63, 62, 75, 64, 78, 58, 53, 98, 53, 56, 72, 53, 70, 61, 107, 54, 63, 61, 51, 62, 49, 61, 55, 61, 118, 52, 77, 56, 83, 83, 69, 79, 59, 59, 64, 66, 39, 57, 44, 61, 61, 70, 83, 66, 70, 64, 83, 67, 68, 76, 71, 60, 54, 70, 67, 65, 65, 57, 63, 72, 102, 68, 52, 65, 64, 65, 51, 95, 52, 73, 61, 70, 87, 62, 68, 59, 57, 57, 57, 55, 56, 46, 79, 42, 73, 84, 59, 69, 54, 75, 67, 48, 66, 68, 78, 67, 93, 72, 68, 67, 80, 60, 76, 52, 82, 64, 137, 66, 60, 62, 69, 68, 73, 69, 54, 94, 52, 64, 86, 74, 63, 50, 66, 77, 55, 68, 52, 80, 51, 54, 53, 48, 67, 73, 76, 66, 105, 71, 56, 62, 51, 47, 80, 104, 72, 61, 56, 74, 54, 78, 60, 67, 93, 76, 49, 71, 61, 60, 72, 75, 76, 67, 69, 64, 56, 71, 58, 65, 71, 84, 63, 62, 77, 67, 49, 50, 59, 55, 67, 74, 91, 45, 69, 57, 84, 74, 67, 47, 84, 68, 52, 54, 51, 63, 52, 62, 93, 72, 67, 62, 69, 57, 68, 61, 74, 54, 60, 42, 59, 80, 57, 57, 57, 63, 57, 61, 73, 53, 62, 60, 90, 63, 52, 73, 67, 54, 68, 85, 52, 63, 44, 52, 63, 55, 61, 71, 60, 67, 47, 49, 60, 72, 52, 70, 75, 62, 62, 73, 91, 65, 53, 43, 52, 57, 64, 47, 90, 59, 67, 58, 69, 58, 82, 64, 101, 60, 49, 61, 47, 68, 63, 75, 41, 55, 82, 56, 57, 55, 58, 62, 68, 108, 63, 65, 79, 59, 61, 128, 57, 59, 72, 97, 55, 49, 75, 64, 56, 52, 67, 69, 154, 73, 77, 62, 74, 64, 60, 50, 54, 64, 62, 56, 69, 58, 72, 61, 59, 70, 55, 61, 75, 57, 93, 70, 71, 69, 73, 76, 66, 60, 60, 66, 72, 56, 63, 66, 72, 72, 50, 62, 65, 58, 54, 70, 66, 53, 73, 83, 74, 57, 62, 87, 60, 60, 78, 52, 87, 48, 63, 70, 59, 73, 53, 79, 77, 56, 52, 65, 63, 62, 70, 57, 69, 58, 66, 48, 67, 64, 65, 87, 60, 75, 56, 60, 66, 63, 66, 78, 61, 49, 76, 60, 67, 83, 72, 49, 62, 50, 54, 52, 96, 54, 49, 61, 81, 59, 80, 98, 75, 72, 105, 67, 74, 73, 42, 59, 78, 80, 59, 77, 72, 72, 65, 57, 65, 99, 66, 69, 61, 55, 51, 68, 78, 103, 73, 84, 46, 56, 55, 54, 68, 45, 61, 57, 64, 63, 62, 81, 42, 66, 45, 70, 55, 73, 84, 57, 60, 57, 65, 60, 52, 65, 62, 71, 71, 46, 74, 76, 66, 57, 85, 69, 50, 67, 57, 63, 52, 65, 47, 59, 62, 73, 83, 70, 85, 45, 71, 62, 63, 60, 50, 86, 63, 72, 84, 59, 64, 107, 71, 80, 69, 57, 64, 50, 66, 71, 59, 64, 53, 62, 57, 60, 45, 94, 83, 63, 43, 56, 63, 80, 74, 63, 36, 95, 72, 77, 57, 57, 78, 64, 62, 48, 65, 76, 71, 67, 94, 63, 63, 55, 69, 66, 73, 64, 76, 59, 47, 54, 47, 53, 56, 87, 60, 51, 74, 56, 84, 58, 60, 72, 56, 62, 85, 48, 62, 77, 56, 82, 83, 122, 64, 45, 48, 77, 74, 43, 48, 55, 52, 66, 54, 59, 78, 68, 63, 59, 55, 65, 68, 60, 105, 58, 65, 86, 54, 53, 58, 60, 95, 68, 63, 78, 68, 81, 74, 52, 92, 60, 52, 65, 67, 76, 59, 60, 51, 56, 54, 62, 87, 85, 46, 80, 59, 57, 62, 57, 58, 78, 63, 71, 67, 85, 75, 62, 82, 73, 73, 53, 102, 47, 58, 75, 71, 45, 61, 53, 66, 108, 56, 62, 76, 61, 57, 58, 44, 63, 69, 55, 68, 88, 63, 62, 68, 51, 63, 65, 99, 60, 59, 66, 69, 59, 47, 81, 54, 58, 67, 99, 57, 67, 72, 57, 69, 67, 66, 60, 47, 62, 67, 77, 64, 69, 66, 66, 85, 56, 49, 45, 81, 69, 60, 56, 55, 65, 68, 62, 61, 56, 64, 69, 55, 58, 54, 71, 65, 59, 88, 74, 75, 64, 53, 61, 58, 76, 77, 90, 71, 60, 61, 75, 90, 50, 87, 61, 71, 68, 61, 77, 67, 78, 68, 75, 78, 64, 66, 47, 71, 83, 63, 53, 67, 61, 45, 76, 59, 60, 60, 53, 71, 63, 70, 65, 53, 69, 71, 94, 60, 67, 54, 58, 83, 93, 87, 89, 69, 55, 62, 61, 72, 57, 73, 58, 111, 83, 73, 72, 62, 62, 63, 44, 73, 95, 71, 61, 55, 60, 67, 100, 58, 68, 67, 65, 67, 64, 63, 76, 65, 84, 69, 92, 94, 79, 56, 67, 107, 50, 64, 60, 61, 65, 75, 86, 70, 54, 84, 62, 59, 69, 49, 57, 65, 86, 54, 52, 78, 64, 56, 54, 62, 51, 45, 76, 62, 116, 78, 61, 62, 70, 70, 60, 62, 70, 81, 71, 58, 50, 50, 61, 61, 60, 78, 73, 68, 81, 67, 72, 57, 62, 59, 76, 70, 53, 48, 69, 69, 52, 81, 81, 107, 58, 52, 49, 66, 73, 48, 71, 55, 59, 60, 83, 58, 42, 69, 40, 64, 55, 62, 67, 49, 80, 76, 59, 91, 76, 64, 72, 63, 54, 73, 66, 63, 50, 61, 59, 78, 103, 74, 50, 55, 68, 77, 70, 60, 47, 43, 59, 53, 74, 67, 67, 69, 81, 56, 61, 61, 65, 56, 61, 69, 60, 82, 89, 65, 119, 65, 67, 55, 67, 70, 54, 58, 85, 63, 67, 71, 66, 61, 60, 76, 52, 51, 64, 71, 103, 72, 75, 85, 99, 76, 70, 77, 53, 81, 61, 62, 62, 55, 70, 63, 44, 53, 62, 63, 73, 55, 78, 73, 73, 61, 69, 67, 62, 52, 61, 64, 62, 60, 51, 52, 62, 57, 58, 54, 67, 76, 55, 63, 56, 60, 71, 61, 86, 90, 69, 58, 69, 78, 80, 61, 55, 70, 59, 56, 118, 61, 57, 65, 54, 66, 66, 57, 89, 60, 55, 74, 74, 72, 58, 74, 96, 52, 64, 74, 66, 69, 64, 80, 85, 64, 63, 54, 59, 75, 67, 67, 63, 36, 55, 80, 50, 58, 63, 67, 61, 72, 62, 88, 66, 78, 88, 76, 36, 60, 75, 60, 53, 56, 72, 58, 54, 62, 78, 52, 67, 65, 67, 49, 94, 66, 71, 59, 57, 55, 60, 54, 63, 88, 55, 72, 68, 48, 61, 70, 74, 65, 56, 120, 59, 66, 71, 62, 57, 72, 96, 60, 73, 58, 75, 77, 67, 64, 73, 56, 69, 94, 82, 71, 56, 74, 54, 79, 81, 69, 82, 65, 94, 62, 79, 69, 73, 58, 58, 39, 65, 48, 52, 59, 82, 72, 70, 64, 61, 57, 78, 89, 76, 55, 105, 86, 53, 34, 89, 53, 54, 91, 64, 75, 64, 61, 59, 66, 73, 64, 46, 53, 53, 66, 54, 89, 68, 84, 76, 35, 63, 58, 76, 53, 47, 57, 73, 58, 59, 61, 55, 75, 74, 63, 81, 66, 39, 65, 52, 42, 62, 95, 57, 80, 52, 91, 62, 65, 48, 65, 79, 61, 47, 50, 67, 57, 59, 83, 112, 55, 55, 86, 70, 62, 80, 93, 68, 72, 63, 66, 66, 51, 66, 53, 66, 62, 65, 61, 55, 52, 69, 105, 65, 86, 78, 61, 74, 60, 56, 73, 73, 72, 50, 63, 49, 57, 63, 58, 65, 86, 41, 66, 59, 40, 71, 72, 47, 49, 61, 71, 71, 52, 58, 62, 76, 56, 60, 101, 56, 70, 48, 54, 95, 64, 57, 112, 58, 69, 53, 67, 69, 55, 64, 70, 62, 51, 62, 55, 60, 69, 53, 59, 77, 66, 61, 74, 69, 64, 119, 90, 54, 48, 137, 70, 59, 88, 77, 60, 53, 62, 62, 145, 39, 48, 59, 69, 55, 86, 52, 83, 73, 53, 72, 62, 82, 50, 48, 69, 65, 65, 54, 52, 78, 78, 51, 45, 62, 77, 55, 48, 63, 70, 79, 76, 54, 78, 57, 82, 57, 54, 49, 61, 65, 64, 69, 55, 51, 70, 47, 65, 72, 71, 61, 62, 62, 50, 59, 55, 78, 134, 44, 69, 58, 66, 53, 96, 87, 68, 66, 83, 58, 67, 70, 52, 82, 62, 74, 56, 53, 54, 76, 96, 56, 57, 49, 55, 58, 76, 120, 74, 58, 105, 54, 61, 65, 68, 88, 51, 50, 53, 60, 94, 87, 69, 67, 92, 59, 71, 71, 56, 65, 79, 65, 69, 36, 67, 51, 61, 62, 60, 44, 58, 116, 81, 59, 71, 50, 67, 57, 55, 51, 61, 63, 79, 74, 56, 87, 40, 60, 68, 60, 72, 53, 69, 69, 47, 44, 48, 75, 68, 67, 65, 143, 55, 74, 116, 50, 69, 70, 76, 63, 68, 53, 65, 53, 69, 66, 74, 111, 64, 74, 71, 56, 68, 73, 56, 52, 79, 84, 70, 73, 69, 87, 88, 62, 66, 42, 61, 61, 63, 86, 110, 61, 47, 57, 64, 93, 59, 64, 73, 75, 78, 69, 94, 102, 70, 80, 73, 106, 61, 68, 59, 52, 73, 72, 57, 60, 47, 68, 82, 78, 100, 61, 44, 80, 45, 101, 60, 66, 54, 54, 49, 68, 70, 68, 80, 62, 65, 68, 54, 57, 70, 37, 59, 83, 72, 46, 95, 53, 62, 55, 44, 64, 66, 63, 63, 94, 71, 53, 51, 75, 67, 96, 58, 65, 51, 28, 48, 89, 44, 86, 71, 69, 58, 51, 56, 54, 77, 64, 55, 53, 56, 54, 66, 39, 66, 64, 43, 89, 73, 57, 70, 65, 56, 53, 84, 64, 67, 65, 56, 57, 66, 147, 64, 60, 58, 50, 86, 44, 56, 73, 72, 78, 63, 46, 54, 47, 47, 63, 111, 76, 101, 77, 68, 64, 63, 60, 72, 68, 64, 87, 69, 49, 64, 96, 63, 43, 60, 83, 75, 59, 66, 40, 71, 62, 70, 67, 71, 64, 61, 65, 97, 51, 88, 59, 53, 67, 62, 64, 70, 73, 56, 38, 66, 50, 59, 67, 54, 56, 76, 64, 78, 69, 58, 70, 47, 58, 54, 85, 97, 101, 62, 64, 60, 74, 71, 90, 56, 66, 77, 56, 39, 65, 68, 71, 69, 58, 54, 68, 76, 65, 58, 72, 62, 67, 73, 72, 62, 76, 79, 69, 65, 52, 52, 59, 63, 63, 118, 55, 71, 75, 50, 86, 66, 75, 67, 56, 65, 65, 65, 60, 63, 53, 78, 64, 78, 63, 53, 59, 71, 66, 69, 58, 79, 76, 49, 68, 56, 104, 32, 70, 58, 49, 103, 56, 61, 59, 61, 67, 60, 50, 71, 72, 64, 61, 57, 100, 64, 49, 76, 55, 62, 61, 97, 78, 70, 63, 63, 51, 62, 82, 61, 53, 56, 49, 67, 52, 53, 77, 43, 64, 64, 75, 45, 79, 74, 55, 66, 59, 88, 91, 78, 51, 48, 55, 42, 86, 67, 75, 49, 55, 105, 70, 38, 87, 107, 34, 70, 58, 71, 63, 59, 59, 74, 51, 33, 61, 100, 68, 81, 85, 63, 67, 56, 84, 89, 46, 68, 77, 49, 79, 46, 49, 62, 62, 88, 89, 44, 55, 80, 77, 72, 74, 69, 89, 49, 61, 81, 73, 55, 60, 62, 55, 42, 62, 56, 40, 52, 70, 54, 63, 50, 52, 40, 69, 72, 73, 50, 59, 114, 83, 76, 68, 80, 69, 50, 76, 67, 67, 75, 83, 61, 49, 73, 83, 29, 66, 47, 83, 57, 97, 57, 57, 83, 40, 56, 51, 67, 62, 64, 47, 78, 76, 72, 68, 73, 68, 39, 66, 72, 69, 72, 67, 67, 77, 53, 46, 57, 69, 86, 59, 61, 76, 69, 90, 63, 74, 61, 51, 56, 56, 73, 60, 70, 111, 87, 75, 78, 90, 44, 71, 44, 49, 87, 54, 103, 51, 57, 67, 72, 54, 51, 59, 107, 84, 48, 48, 35, 61, 48, 65, 56, 95, 59, 60, 63, 58, 49, 61, 53, 61, 51, 69, 89, 60, 87, 55, 56, 61, 72, 57, 62, 67, 60, 84, 91, 64, 55, 69, 81, 59, 64, 67, 59, 56, 78, 76, 46, 61, 62, 57, 69, 48, 78, 73, 87, 85, 75, 51, 66, 65, 69, 119, 81, 92, 52, 79, 67, 60, 91, 63, 61, 55, 62, 57, 62, 57, 61, 61, 64, 66, 53, 65, 56, 56, 49, 58, 59, 58, 56, 73, 75, 63, 75, 65, 49, 78, 85, 79, 70, 57, 58, 53, 89, 77, 53, 61, 63, 67, 53, 60, 51, 38, 78, 60, 67, 56, 66, 61, 64, 78, 58, 76, 45, 87, 62, 69, 61, 49, 65, 70, 70, 58, 45, 56, 72, 61, 52, 49, 74, 64, 47, 55, 46, 65, 73, 63, 51, 81, 52, 56, 70, 55, 60, 36, 72, 74, 56, 54, 62, 51, 65, 58, 78, 89, 57, 66, 43, 47, 70, 64, 104, 91, 75, 67, 60, 60, 91, 47, 56, 78, 62, 67, 68, 82, 73, 46, 65, 68, 63, 55, 69, 59, 82, 51, 58, 79, 73, 62, 53, 53, 97, 74, 65, 52, 46, 78, 60, 52, 66, 66, 53, 98, 60, 72, 64, 60, 73, 70, 69, 60, 64, 59, 60, 51, 85, 55, 59, 82, 56, 102, 58, 74, 76, 75, 59, 69, 53, 65, 62, 64, 57, 50, 60, 76, 90, 66, 60, 71, 58, 84, 62, 60, 59, 98, 68, 46, 70, 58, 50, 63, 55, 73, 68, 52, 57, 49, 61, 47, 80, 62, 61, 92, 57, 49, 84, 52, 73, 74, 66, 71, 64, 77, 55, 72, 116, 70, 60, 94, 60, 56, 105, 92, 73, 61, 60, 70, 69, 59, 85, 67, 59, 64, 97, 59, 43, 46, 77, 73, 50, 83, 43, 58, 83, 62, 68, 54, 88, 71, 69, 74, 61, 54, 54, 60, 48, 74, 76, 62, 94, 69, 52, 74, 75, 63, 65, 49, 74, 47, 65, 60, 49, 82, 68, 77, 66, 80, 50, 68, 59, 68, 66, 91, 61, 87, 62, 72, 54, 66, 71, 75, 85, 72, 65, 81, 143, 66, 63, 82, 68, 50, 78, 62, 69, 57, 73, 61, 64, 56, 56, 53, 55, 56, 56, 52, 55, 75, 72, 82, 53, 89, 57, 68, 59, 92, 86, 61, 68, 78, 86, 63, 73, 83, 66, 50, 64, 52, 55, 60, 60, 60, 91, 64, 60, 58, 53, 64, 72, 73, 65, 47, 50, 48, 65, 65, 61, 58, 67, 75, 71, 64, 77, 48, 70, 90, 115, 74, 76, 56, 73, 77, 53, 56, 51, 57, 59, 58, 56, 80, 88, 69, 75, 116, 61, 78, 72, 68, 64, 74, 73, 74, 72, 47, 50, 79, 85, 45, 75, 73, 69, 67, 78, 92, 42, 66, 69, 73, 83, 80, 76, 61, 55, 64, 45, 63, 67, 96, 49, 69, 109, 77, 56, 54, 61, 60, 58, 105, 65, 55, 59, 65, 57, 58, 44, 55, 63, 53, 83, 47, 80, 58, 79, 95, 68, 62, 58, 66, 70, 69, 98, 96, 54, 56, 84, 53, 64, 65, 55, 63, 74, 70, 59, 70, 60, 61, 58, 80, 100, 46, 62, 84, 84, 85, 49, 60, 51, 64, 60, 73, 66, 54, 63, 50, 51, 66, 52, 60, 52, 65, 61, 34, 54, 81, 79, 70, 75, 57, 63, 50, 55, 63, 55, 69, 50, 73, 62, 61, 81, 61, 110, 59, 71, 57, 117, 54, 66, 70, 71, 60, 48, 66, 59, 105, 52, 64, 77, 48, 67, 68, 74, 64, 60, 63, 67, 69, 80, 55, 62, 82, 67, 62, 83, 64, 87, 69, 54, 55, 52, 75, 53, 56, 77, 57, 60, 63, 64, 38, 81, 71, 53, 68, 70, 68, 72, 109, 70, 56, 66, 66, 61, 57, 54, 66, 69, 70, 75, 69, 89, 54, 85, 81, 61, 77, 78, 83, 68, 77, 83, 74, 96, 50, 57, 62, 67, 73, 60, 67, 62, 61, 56, 76, 84, 60, 76, 64, 76, 76, 67, 51, 59, 72, 82, 50, 79, 63, 68, 60, 54, 58, 64, 63, 52, 64, 61, 63, 62, 73, 64, 82, 50, 62, 74, 43, 70, 63, 57, 59, 44, 63, 53, 78, 53, 68, 62, 51, 55, 78, 49, 63, 69, 66, 86, 71, 95, 80, 72, 66, 58, 63, 53, 56, 75, 106, 67, 63, 85, 42, 63, 65, 71, 47, 104, 60, 74, 75, 51, 61, 58, 42, 73, 62, 47, 57, 62, 57, 67, 50, 72, 70, 83, 64, 94, 70, 76, 71, 69, 56, 75, 59, 53, 70, 64, 56, 46, 77, 57, 91, 91, 50, 57, 64, 78, 59, 77, 58, 67, 71, 71, 59, 50, 69, 56, 53, 48, 87, 57, 64, 73, 90, 54, 64, 57, 74, 55, 53, 60, 55, 63, 74, 49, 52, 73, 53, 56, 73, 80, 72, 56, 47, 61, 66, 59, 66, 62, 65, 61, 59, 48, 61, 62, 84, 48, 66, 66, 63, 62, 64, 69, 58, 66, 60, 74, 78, 75, 53, 64, 43, 85, 52, 64, 62, 67, 83, 74, 68, 76, 66, 70, 65, 66, 49, 79, 56, 66, 47, 57, 68, 65, 61, 74, 86, 69, 62, 87, 51, 93, 61, 65, 74, 97, 73, 63, 50, 63, 61, 50, 61, 62, 61, 52, 64, 53, 60, 91, 59, 42, 111, 61, 63, 76, 81, 62, 48, 70, 68, 98, 84, 50, 76, 40, 65, 50, 65, 66, 58, 93, 68, 54, 75, 67, 58, 66, 77, 66, 73, 49, 40, 52, 61, 65, 63, 54, 52, 54, 58, 65, 57, 54, 56, 52, 72, 32, 53, 82, 78, 58, 90, 54, 64, 59, 50, 60, 52, 83, 69, 45, 91, 72, 57, 58, 65, 67, 55, 62, 82, 82, 65, 74, 105, 76, 66, 60, 66, 61, 83, 63, 59, 58, 43, 41, 77, 53, 66, 67, 65, 62, 59, 58, 72, 81, 67, 80, 72, 65, 41, 77, 67, 77, 70, 57, 68, 48, 77, 83, 91, 55, 51, 54, 63, 58, 73, 73, 55, 59, 55, 76, 75, 52, 48, 95, 73, 93, 81, 74, 79, 66, 82, 59, 78, 59, 63, 72, 48, 60, 58, 73, 57, 73, 54, 56, 77, 74, 42, 59, 64, 54, 128, 51, 64, 60, 64, 61, 34, 43, 58, 63, 66, 50, 46, 57, 55, 61, 79, 66, 53, 77, 67, 62, 57, 67, 44, 52, 66, 66, 48, 63, 68, 49, 69, 77, 52, 53, 65, 63, 66, 59, 86, 70, 83, 70, 61, 60, 49, 108, 60, 68, 73, 74, 68, 47, 51, 42, 77, 68, 68, 65, 60, 51, 50, 72, 63, 93, 42, 96, 98, 68, 58, 37, 47, 62, 82, 115, 49, 83, 49, 67, 61, 48, 66, 51, 50, 73, 108, 58, 64, 54, 51, 68, 57, 71, 58, 62, 60, 60, 70, 110, 58, 80, 66, 46, 49, 76, 57, 59, 65, 62, 61, 56, 77, 62, 71, 84, 60, 64, 72, 66, 65, 79, 55, 65, 69, 75, 70, 56, 63, 77, 65, 68, 47, 69, 72, 59, 58, 66, 44, 60, 59, 62, 65, 83, 63, 46, 67, 86, 78, 89, 90, 65, 44, 70, 64, 74, 40, 66, 83, 56, 51, 69, 79, 66, 86, 57, 68, 65, 55, 74, 58, 87, 46, 76, 62, 56, 73, 75, 51, 80, 58, 60, 64, 68, 64, 53, 74, 69, 48, 77, 104, 67, 71, 51, 56, 64, 47, 75, 63, 88, 71, 59, 67, 76, 61, 54, 70, 60, 87, 59, 64, 59, 52, 69, 60, 54, 86, 57, 51, 53, 62, 80, 73, 92, 55, 60, 75, 54, 79, 80, 54, 73, 94, 54, 40, 65, 81, 58, 55, 55, 50, 51, 58, 60, 69, 45, 65, 80, 76, 57, 81, 60, 65, 74, 41, 74, 80, 37, 80, 47, 68, 76, 55, 117, 76, 48, 74, 57, 60, 83, 107, 74, 50, 55, 60, 61, 80, 59, 52, 57, 54, 98, 61, 61, 44, 53, 71, 58, 44, 90, 60, 83, 79, 54, 90, 72, 49, 76, 74, 67, 50, 45, 49, 62, 59, 80, 60, 93, 53, 50, 73, 89, 80, 86, 66, 65, 63, 67, 56, 58, 63, 77, 49, 72, 105, 54, 47, 62, 60, 58, 95, 69, 50, 65, 66, 50, 58, 68, 67, 77, 37, 57, 66, 143, 50, 82, 59, 63, 68, 78, 62, 74, 49, 56, 65, 63, 52, 61, 50, 54, 55, 57, 54, 64, 51, 58, 54, 41, 74, 62, 67, 64, 77, 56, 66, 81, 76, 86, 69, 72, 70, 86, 59, 68, 55, 69, 71, 53, 57, 82, 48, 61, 66, 74, 39, 59, 66, 63, 57, 51, 58, 69, 65, 51, 76, 64, 90, 72, 84, 83, 57, 90, 69, 103, 42, 71, 58, 61, 54, 68, 70, 53, 66, 58, 71, 64, 63, 86, 53, 63, 126, 64, 64, 73, 68, 62, 70, 48, 56, 61, 49, 67, 57, 76, 64, 55, 71, 50, 72, 70, 85, 65, 71, 71, 86, 83, 68, 60, 60, 42, 66, 54, 56, 69, 104, 63, 59, 105, 55, 52, 58, 67, 57, 71, 91, 47, 67, 65, 69, 51, 36, 58, 55, 61, 60, 84, 60, 80, 63, 48, 56, 56, 56, 57, 66, 76, 53, 107, 79, 38, 50, 89, 54, 62, 42, 64, 61, 55, 70, 59, 84, 48, 55, 62, 60, 99, 63, 54, 85, 76, 89, 58, 63, 48, 102, 96, 58, 70, 66, 57, 67, 64, 79, 62, 73, 65, 61, 47, 79, 58, 65, 74, 73, 94, 60, 37, 62, 71, 63, 60, 72, 58, 82, 76, 48, 74, 69, 122, 77, 79, 71, 117, 62, 84, 62, 80, 65, 58, 61, 66, 82, 66, 62, 51, 59, 52, 63, 84, 57, 58, 41, 59, 76, 62, 45, 75, 78, 81, 66, 62, 62, 66, 66, 60, 55, 49, 72, 68, 45, 52, 56, 51, 66, 52, 45, 59, 68, 52, 71, 53, 72, 66, 116, 56, 56, 63, 71, 63, 65, 54, 60, 69, 57, 69, 56, 77, 48, 70, 54, 71, 68, 60, 58, 45, 47, 45, 60, 48, 56, 52, 65, 86, 52, 73, 76, 78, 58, 45, 73, 78, 63, 60, 59, 73, 83, 63, 66, 72, 59, 79, 68, 74, 66, 76, 64, 53, 61, 58, 42, 77, 51, 56, 81, 54, 71, 89, 93, 63, 71, 64, 74, 70, 58, 68, 68, 50, 50, 53, 90, 44, 68, 68, 61, 52, 57, 51, 57, 68, 73, 78, 61, 83, 54, 62, 59, 63, 57, 52, 71, 102, 102, 62, 53, 63, 71, 57, 67, 68, 64, 112, 69, 75, 65, 89, 68, 52, 44, 70, 46, 49, 61, 65, 64, 83, 54, 61, 60, 70, 58, 59, 55, 57, 80, 60, 63, 64, 76, 68, 65, 79, 46, 72, 76, 85, 83, 117, 61, 73, 83, 80, 61, 55, 81, 54, 63, 89, 58, 66, 60, 66, 51, 80, 76, 79, 50, 55, 59, 65, 84, 64, 56, 74, 58, 57, 72, 69, 62, 76, 42, 77, 65, 56, 74, 63, 80, 64, 70, 57, 51, 69, 61, 66, 58, 59, 67, 51, 51, 71, 79, 62, 72, 46, 80, 54, 71, 68, 56, 46, 59, 69, 67, 65, 69, 67, 69, 62, 56, 85, 54, 65, 75, 56, 78, 53, 70, 56, 67, 62, 45, 70, 85, 61, 57, 65, 57, 52, 62, 68, 91, 76, 74, 67, 61, 94, 64, 53, 69, 95, 68, 49, 61, 42, 89, 54, 75, 93, 77, 65, 67, 62, 80, 103, 74, 74, 106, 61, 61, 56, 44, 52, 55, 51, 66, 96, 50, 64, 59, 67, 56, 50, 64, 71, 71, 80, 58, 96, 87, 69, 78, 69, 50, 51, 70, 49, 80, 61, 49, 77, 64, 73, 54, 66, 72, 52, 69, 67, 65, 68, 64, 62, 60, 92, 73, 63, 85, 63, 66, 33, 63, 67, 57, 55, 67, 68, 82, 57, 57, 60, 58, 49, 57, 75, 66, 51, 60, 93, 78, 59, 62, 85, 59, 81, 48, 62, 58, 68, 69, 83, 60, 46, 57, 56, 71, 59, 55, 68, 75, 73, 42, 57, 82, 74, 52, 83, 66, 78, 51, 53, 89, 35, 74, 53, 79, 50, 84, 65, 82, 58, 55, 52, 65, 55, 39, 83, 87, 79, 63, 66, 51, 84, 59, 74, 50, 60, 77, 55, 85, 57, 75, 56, 65, 59, 57, 40, 75, 55, 66, 59, 56, 46, 52, 62, 58, 66, 127, 60, 79, 67, 67, 67, 56, 74, 61, 49, 61, 56, 71, 61, 54, 61, 77, 52, 68, 41, 64, 55, 59, 46, 58, 69, 56, 52, 95, 57, 57, 60, 72, 52, 58, 61, 49, 79, 66, 43, 89, 62, 74, 53, 78, 61, 70, 96, 66, 54, 56, 69, 83, 81, 72, 71, 75, 60, 60, 64, 41, 53, 61, 83, 46, 76, 55, 110, 82, 79, 60, 50, 67, 55, 70, 120, 56, 89, 65, 74, 53, 57, 61, 71, 60, 50, 92, 57, 61, 64, 84, 57, 62, 61, 60, 84, 53, 53, 57, 99, 69, 91, 58, 45, 53, 81, 67, 68, 69, 59, 73, 63, 82, 55, 43, 75, 73, 62, 65, 70, 71, 67, 84, 58, 62, 53, 68, 52, 67, 58, 35, 67, 55, 76, 52, 62, 56, 82, 57, 50, 55, 60, 63, 59, 72, 72, 51, 71, 52, 70, 62, 62, 94, 58, 50, 67, 65, 63, 62, 69, 49, 53, 102, 47, 54, 70, 55, 97, 58, 65, 57, 63, 69, 76, 95, 76, 56, 57, 60, 70, 73, 49, 60, 47, 59, 73, 59, 55, 61, 52, 101, 73, 79, 92, 62, 55, 51, 89, 62, 60, 57, 52, 78, 99, 50, 60, 80, 70, 56, 51, 78, 68, 61, 62, 68, 59, 68, 49, 99, 81, 45, 51, 56, 76, 55, 53, 71, 61, 63, 51, 52, 52, 79, 62, 51, 72, 57, 64, 69, 65, 55, 84, 51, 36, 75, 65, 57, 83, 55, 66, 89, 66, 73, 74, 67, 51, 53, 56, 70, 68, 75, 60, 70, 68, 53, 103, 56, 63, 71, 103, 40, 68, 71, 62, 60, 56, 66, 64, 50, 57, 73, 109, 66, 73, 70, 71, 67, 76, 63, 59, 45, 89, 89, 69, 47, 64, 75, 78, 80, 79, 54, 87, 55, 71, 46, 69, 77, 61, 54, 69, 74, 65, 81, 70, 67, 90, 57, 48, 62, 54, 66, 57, 56, 57, 76, 47, 31, 66, 64, 72, 57, 65, 56, 93, 71, 68, 60, 66, 67, 68, 44, 77, 70, 110, 81, 67, 63, 62, 59, 85, 77, 49, 70, 49, 36, 63, 48, 58, 61, 66, 59, 55, 61, 63, 75, 58, 65, 76, 52, 52, 58, 49, 77, 74, 60, 118, 65, 49, 71, 58, 79, 71, 67, 87, 68, 50, 52, 56, 50, 80, 63, 67, 70, 45, 58, 55, 73, 62, 56, 53, 67, 56, 82, 60, 82, 69, 48, 72, 74, 76, 76, 50, 56, 94, 79, 87, 45, 72, 46, 77, 76, 63, 78, 72, 75, 49, 60, 81, 71, 62, 97, 67, 54, 67, 55, 58, 68, 91, 77, 62, 71, 66, 47, 40, 51, 41, 69, 64, 76, 68, 68, 66, 57, 76, 73, 78, 79, 59, 86, 59, 53, 76, 76, 93, 104, 64, 78, 60, 57, 57, 47, 77, 41, 56, 64, 62, 66, 74, 79, 63, 79, 58, 62, 75, 61, 88, 84, 73, 54, 70, 71, 49, 72, 100, 53, 61, 84, 102, 62, 51, 77, 66, 40, 62, 54, 65, 58, 60, 69, 65, 64, 65, 81, 67, 55, 90, 59, 68, 66, 82, 71, 60, 61, 65, 71, 63, 58, 56, 49, 59, 64, 55, 66, 56, 79, 94, 83, 49, 60, 57, 56, 58, 60, 47, 59, 64, 59, 65, 84, 56, 71, 57, 70, 56, 70, 55, 70, 62, 59, 62, 55, 52, 52, 61, 64, 62, 54, 59, 70, 49, 84, 64, 62, 44, 52, 67, 61, 85, 49, 96, 69, 81, 63, 47, 73, 59, 76, 73, 78, 83, 67, 65, 64, 65, 51, 61, 61, 65, 51, 59, 75, 56, 63, 65, 101, 69, 85, 73, 79, 78, 67, 47, 160, 71, 43, 67, 60, 67, 44, 57, 59, 71, 47, 92, 65, 52, 61, 59, 104, 75, 62, 50, 79, 63, 68, 83, 55, 63, 57, 66, 74, 53, 67, 64, 57, 84, 63, 71, 79, 71, 71, 72, 59, 78, 47, 49, 41, 74, 78, 62, 95, 86, 49, 79, 42, 47, 96, 78, 98, 84, 73, 63, 52, 55, 48, 79, 47, 67, 58, 52, 60, 79, 64, 60, 52, 102, 61, 72, 70, 63, 60, 49, 56, 53, 74, 50, 73, 70, 71, 69, 65, 111, 73, 56, 75, 69, 68, 64, 60, 44, 79, 86, 87, 65, 59, 60, 64, 75, 56, 70, 82, 75, 45, 94, 68, 66, 48, 62, 66, 63, 76, 71, 69, 63, 52, 60, 54, 72, 50, 49, 71, 62, 57, 49, 76, 79, 53, 61, 67, 91, 72, 58, 112, 51, 54, 69, 58, 76, 63, 100, 45, 54, 48, 60, 70, 74, 78, 54, 64, 66, 64, 67, 77, 75, 68, 64, 48, 72, 61, 77, 82, 53, 49, 51, 49, 97, 75, 63, 69, 77, 65, 48, 85, 53, 56, 62, 51, 50, 59, 76, 46, 61, 60, 55, 55, 47, 68, 67, 49, 45, 42, 68, 60, 65, 72, 72, 36, 59, 56, 65, 66, 78, 44, 64, 56, 60, 62, 70, 81, 59, 64, 72, 59, 58, 75, 70, 62, 56, 66, 66, 48, 56, 68, 67, 52, 46, 81, 56, 110, 70, 58, 92, 73, 49, 60, 56, 71, 65, 64, 61, 61, 72, 61, 76, 57, 48, 72, 58, 81, 87, 51, 67, 80, 51, 59, 69, 56, 61, 63, 58, 71, 69, 80, 78, 36, 53, 66, 60, 64, 68, 63, 60, 71, 66, 71, 51, 60, 56, 75, 84, 73, 61, 58, 66, 71, 90, 70, 53, 77, 64, 54, 69, 67, 77, 67, 68, 65, 63, 65, 70, 66, 74, 70, 69, 44, 53, 65, 48, 77, 66, 143, 57, 38, 64, 89, 70, 54, 55, 67, 60, 49, 60, 67, 41, 55, 91, 59, 64, 62, 47, 49, 47, 89, 67, 67, 69, 49, 85, 57, 53, 63, 42, 54, 52, 56, 70, 88, 64, 85, 50, 68, 78, 69, 63, 53, 68, 68, 61, 83, 48, 94, 54, 72, 71, 63, 75, 56, 77, 51, 60, 93, 67, 78, 64, 65, 69, 61, 61, 76, 63, 51, 70, 58, 66, 91, 77, 42, 62, 72, 85, 57, 56, 63, 68, 60, 66, 69, 61, 51, 62, 81, 55, 55, 61, 91, 68, 69, 64, 61, 63, 64, 58, 72, 59, 51, 60, 60, 92, 68, 66, 44, 56, 56, 72, 53, 57, 78, 63, 70, 48, 52, 59, 59, 54, 82, 50, 61, 47, 80, 46, 61, 78, 55, 54, 100, 54, 65, 54, 67, 74, 79, 107, 51, 66, 76, 62, 80, 70, 46, 66, 94, 63, 73, 57, 65, 52, 75, 77, 84, 59, 51, 31, 52, 90, 66, 74, 70, 51, 37, 122, 57, 80, 64, 85, 54, 80, 64, 66, 56, 56, 91, 81, 61, 71, 99, 58, 67, 79, 69, 69, 67, 83, 67, 88, 68, 59, 52, 70, 81, 73, 55, 63, 80, 77, 60, 56, 65, 67, 68, 90, 49, 80, 61, 57, 67, 57, 60, 77, 50, 87, 69, 75, 59, 68, 64, 57, 88, 62, 80, 80, 63, 68, 54, 96, 39, 64, 69, 59, 65, 51, 118, 67, 53, 111, 72, 53, 50, 60, 60, 68, 64, 59, 67, 56, 59, 46, 75, 70, 61, 55, 56, 55, 49, 75, 52, 87, 42, 72, 83, 47, 69, 95, 69, 66, 61, 87, 57, 64, 54, 30, 83, 80, 47, 61, 102, 63, 63, 52, 59, 35, 67, 59, 59, 56, 45, 63, 46, 61, 73, 61, 85, 64, 73, 70, 62, 62, 57, 48, 73, 64, 47, 45, 78, 58, 52, 73, 40, 78, 47, 84, 68, 48, 72, 61, 60, 60, 68, 96, 49, 64, 83, 48, 63, 56, 68, 67, 67, 73, 36, 75, 56, 95, 70, 62, 61, 90, 52, 65, 44, 98, 61, 50, 64, 52, 53, 70, 56, 112, 74, 66, 80, 76, 63, 76, 109, 65, 60, 76, 88, 60, 63, 67, 44, 47, 42, 130, 51, 65, 56, 79, 79, 86, 50, 60, 59, 59, 88, 58, 98, 68, 52, 69, 85, 67, 48, 56, 59, 93, 75, 78, 63, 37, 63, 49, 77, 65, 87, 62, 65, 48, 94, 90, 68, 65, 48, 86, 58, 67, 107, 51, 92, 74, 57, 65, 61, 61, 68, 73, 60, 80, 69, 69, 67, 69, 56, 59, 74, 111, 61, 69, 63, 83, 53, 66, 57, 67, 52, 62, 72, 70, 62, 69, 50, 63, 59, 56, 72, 43, 86, 75, 75, 51, 59, 52, 67, 73, 62, 69, 61, 60, 82, 66, 67, 69, 72, 56, 57, 97, 63, 61, 73, 72, 72, 74, 55, 71, 87, 65, 56, 51, 63, 80, 57, 84, 63, 94, 49, 54, 107, 61, 54, 75, 74, 84, 55, 36, 72, 56, 74, 75, 39, 81, 52, 82, 64, 42, 73, 54, 67, 63, 59, 77, 73, 63, 148, 53, 71, 69, 71, 56, 65, 47, 63, 78, 67, 72, 70, 56, 55, 44, 57, 87, 67, 90, 77, 51, 125, 80, 61, 56, 61, 75, 77, 60, 47, 63, 55, 57, 69, 79, 62, 109, 74, 46, 56, 64, 67, 63, 60, 54, 35, 74, 106, 53, 60, 64, 48, 76, 62, 54, 59, 90, 61, 56, 88, 44, 51, 90, 68, 61, 55, 98, 94, 67, 59, 75, 66, 55, 71, 92, 57, 72, 59, 74, 45, 53, 52, 61, 55, 44, 48, 62, 63, 75, 93, 63, 79, 74, 80, 62, 41, 84, 69, 70, 56, 72, 71, 58, 63, 37, 83, 78, 73, 58, 85, 53, 70, 78, 79, 57, 70, 138, 72, 71, 98, 60, 64, 66, 60, 62, 39, 65, 43, 101, 84, 101, 64, 80, 71, 54, 48, 71, 61, 70, 46, 62, 75, 72, 72, 70, 72, 70, 65, 50, 86, 73, 75, 49, 44, 82, 60, 98, 96, 65, 68, 47, 87, 76, 50, 49, 72, 52, 78, 60, 51, 72, 63, 51, 54, 65, 61, 80, 68, 52, 59, 72, 135, 61, 72, 55, 52, 54, 51, 82, 67, 90, 58, 68, 48, 75, 63, 57, 43, 48, 74, 64, 50, 89, 56, 61, 64, 47, 63, 48, 72, 63, 62, 64, 69, 66, 62, 65, 100, 64, 65, 85, 53, 90, 77, 47, 50, 56, 72, 65, 48, 68, 101, 107, 56, 100, 61, 54, 70, 78, 65, 76, 96, 60, 42, 46, 31, 57, 71, 50, 63, 66, 71, 61, 96, 81, 47, 47, 45, 70, 71, 73, 55, 61, 52, 63, 54, 88, 58, 67, 78, 50, 97, 46, 62, 47, 64, 66, 71, 70, 86, 39, 53, 64, 63, 72, 67, 47, 73, 68, 58, 65, 45, 64, 65, 67, 74, 62, 82, 73, 59, 57, 58, 93, 81, 51, 60, 56, 72, 68, 83, 80, 64, 81, 72, 68, 61, 65, 82, 47, 60, 72, 59, 78, 57, 101, 74, 68, 57, 89, 60, 62, 80, 56, 37, 95, 72, 49, 60, 57, 61, 79, 79, 54, 44, 61, 73, 100, 67, 68, 43, 80, 102, 48, 87, 44, 68, 60, 63, 64, 60, 54, 66, 54, 75, 66, 93, 74, 52, 55, 49, 73, 62, 57, 57, 76, 79, 75, 57, 69, 57, 69, 73, 76, 53, 84, 64, 65, 66, 62, 65, 49, 54, 62, 51, 60, 69, 38, 84, 65, 49, 93, 83, 57, 69, 57, 64, 61, 51, 78, 75, 76, 67, 48, 75, 69, 76, 54, 82, 71, 81, 44, 58, 84, 67, 65, 85, 98, 70, 82, 56, 86, 58, 57, 52, 64, 60, 100, 81, 52, 69, 78, 87, 54, 94, 56, 67, 58, 56, 37, 55, 58, 56, 85, 58, 57, 102, 68, 66, 56, 73, 54, 51, 62, 57, 95, 65, 72, 69, 59, 64, 84, 74, 50, 65, 62, 65, 58, 96, 52, 77, 63, 68, 66, 47, 70, 61, 89, 56, 73, 59, 50, 74, 54, 65, 69, 62, 37, 61, 67, 49, 68, 87, 67, 81, 53, 54, 39, 74, 45, 71, 57, 60, 81, 55, 27, 67, 45, 65, 67, 55, 86, 62, 75, 51, 54, 91, 63, 68, 42, 76, 62, 67, 61, 46, 66, 67, 68, 50, 64, 71, 56, 38, 86, 70, 63, 64, 58, 63, 59, 35, 51, 75, 74, 63, 57, 72, 58, 38, 81, 58, 50, 90, 80, 64, 62, 51, 58, 51, 84, 77, 68, 64, 56, 60, 68, 104, 98, 78, 85, 72, 60, 84, 58, 78, 56, 83, 49, 60, 68, 56, 74, 48, 85, 81, 83, 62, 57, 78, 71, 69, 56, 81, 67, 74, 52, 73, 59, 77, 64, 56, 57, 60, 85, 71, 62, 66, 47, 73, 43, 69, 61, 64, 102, 65, 80, 53, 70, 57, 64, 75, 43, 77, 70, 48, 57, 99, 72, 67, 65, 71, 56, 51, 55, 48, 78, 52, 73, 72, 87, 55, 67, 62, 60, 75, 60, 69, 80, 75, 80, 55, 58, 55, 92, 53, 57, 80, 84, 55, 88, 72, 88, 48, 74, 51, 87, 62, 56, 48, 75, 71, 53, 39, 73, 54, 51, 65, 75, 65, 51, 68, 52, 79, 55, 55, 49, 71, 74, 53, 57, 62, 55, 67, 70, 56, 69, 60, 69, 59, 57, 58, 68, 50, 65, 44, 60, 108, 56, 78, 75, 86, 60, 69, 71, 45, 71, 60, 62, 60, 65, 58, 102, 64, 64, 61, 59, 61, 111, 71, 95, 69, 49, 56, 84, 65, 52, 72, 42, 69, 63, 60, 75, 47, 44, 55, 76, 93, 65, 60, 62, 62, 66, 46, 56, 65, 78, 63, 52, 93, 72, 66, 94, 57, 57, 68, 50, 38, 62, 57, 64, 66, 57, 56, 73, 66, 69, 49, 82, 64, 86, 56, 47, 69, 87, 73, 86, 86, 93, 70, 61, 86, 63, 45, 73, 49, 56, 73, 70, 55, 70, 85, 63, 113, 77, 73, 64, 64, 69, 61, 30, 75, 64, 62, 45, 59, 61, 110, 60, 48, 70, 75, 54, 70, 75, 66, 75, 65, 69, 72, 73, 70, 86, 59, 86, 83, 57, 59, 95, 87, 58, 56, 55, 73, 63, 65, 58, 65, 58, 73, 75, 54, 58, 59, 91, 42, 71, 60, 46, 60, 52, 67, 82, 54, 59, 69, 87, 58, 62, 60, 58, 55, 66, 72, 49, 69, 100, 71, 55, 56, 78, 59, 115, 49, 70, 77, 121, 53, 82, 62, 76, 65, 75, 47, 66, 91, 48, 66, 59, 57, 59, 76, 56, 74, 38, 68, 66, 62, 95, 74, 86, 53, 62, 56, 67, 51, 79, 73, 63, 49, 65, 44, 66, 61, 87, 63, 63, 53, 117, 51, 51, 82, 66, 62, 100, 68, 67, 64, 69, 55, 57, 48, 56, 96, 59, 65, 69, 55, 62, 66, 62, 56, 93, 64, 95, 65, 59, 72, 67, 77, 74, 61, 52, 65, 69, 85, 66, 59, 74, 58, 54, 58, 44, 39, 85, 37, 61, 64, 56, 62, 49, 69, 76, 59, 57, 71, 42, 65, 49, 58, 65, 58, 74, 59, 76, 67, 63, 69, 59, 64, 60, 52, 64, 53, 71, 62, 83, 83, 50, 74, 70, 56, 72, 61, 59, 107, 61, 52, 65, 64, 78, 64, 69, 54, 54, 64, 52, 53, 68, 63, 57, 65, 67, 60, 63, 66, 55, 53, 73, 66, 99, 52, 50, 82, 39, 62, 69, 84, 44, 106, 62, 68, 110, 66, 61, 67, 65, 55, 87, 55, 58, 67, 62, 71, 75, 49, 55, 51, 66, 56, 64, 58, 78, 64, 82, 68, 65, 58, 82, 69, 54, 74, 87, 74, 55, 63, 83, 57, 56, 57, 64, 71, 60, 53, 54, 50, 68, 47, 50, 63, 83, 66, 62, 61, 69, 52, 70, 62, 60, 61, 59, 83, 76, 66, 55, 66, 46, 53, 66, 52, 69, 60, 58, 48, 61, 59, 67, 60, 64, 60, 70, 62, 78, 66, 50, 61, 81, 74, 62, 89, 71, 60, 51, 69, 83, 72, 90, 96, 87, 60, 64, 61, 70, 68, 36, 83, 65, 57, 62, 50, 46, 47, 85, 83, 70, 50, 90, 81, 54, 84, 68, 94, 60, 60, 90, 63, 71, 54, 64, 58, 60, 71, 65, 52, 58, 62, 54, 61, 65, 70, 66, 66, 70, 57, 56, 75, 72, 177, 72, 54, 59, 61, 42, 62, 61, 76, 57, 61, 75, 64, 70, 75, 72, 124, 62, 55, 44, 64, 56, 56, 92, 58, 65, 88, 77, 61, 55, 70, 61, 64, 84, 58, 63, 88, 71, 48, 62, 76, 66, 56, 56, 66, 53, 71, 57, 58, 78, 75, 69, 71, 112, 72, 88, 60, 60, 68, 85, 85, 62, 74, 78, 66, 53, 68, 47, 61, 56, 60, 49, 74, 69, 60, 74, 60, 58, 62, 60, 61, 60, 65, 63, 36, 53, 67, 48, 49, 96, 80, 60, 67, 63, 76, 78, 73, 60, 122, 64, 70, 59, 68, 42, 53, 43, 71, 57, 83, 47, 35, 69, 70, 65, 80, 64, 68, 53, 70, 57, 73, 52, 51, 63, 51, 70, 80, 64, 70, 79, 56, 55, 77, 65, 75, 62, 90, 75, 54, 69, 79, 59, 80, 104, 79, 70, 48, 81, 66, 70, 68, 65, 76, 81, 76, 65, 62, 45, 60, 74, 85, 76, 69, 74, 62, 71, 63, 62, 78, 55, 60, 60, 56, 70, 49, 64, 60, 93, 77, 52, 62, 58, 65, 63, 88, 61, 59, 62, 64, 46, 54, 82, 56, 48, 70, 53, 65, 60, 64, 66, 56, 55, 81, 73, 55, 56, 59, 85, 76, 89, 70, 60, 65, 70, 41, 61, 80, 66, 61, 74, 72, 76, 43, 73, 64, 58, 68, 68, 61, 53, 56, 88, 52, 56, 78, 77, 109, 46, 74, 80, 59, 59, 54, 77, 62, 63, 51, 61, 75, 59, 62, 87, 77, 52, 59, 63, 73, 84, 65, 44, 51, 58, 56, 47, 62, 71, 47, 62, 64, 66, 128, 90, 74, 49, 66, 63, 63, 64, 59, 84, 50, 82, 65, 87, 76, 67, 56, 60, 54, 50, 60, 92, 57, 44, 75, 81, 49, 85, 60, 55, 53, 75, 54, 62, 57, 61, 43, 54, 68, 60, 69, 66, 65, 57, 39, 53, 75, 65, 122, 53, 46, 78, 54, 54, 60, 62, 57, 58, 70, 45, 45, 52, 52, 85, 102, 77, 67, 63, 59, 59, 85, 73, 59, 61, 51, 65, 57, 55, 63, 47, 58, 56, 66, 70, 75, 53, 71, 58, 55, 53, 51, 88, 56, 63, 63, 64, 83, 56, 76, 52, 95, 55, 63, 56, 59, 39, 64, 73, 87, 67, 81, 79, 97, 80, 63, 62, 74, 59, 52, 54, 70, 61, 51, 57, 46, 74, 48, 64, 75, 61, 58, 51, 75, 60, 50, 40, 62, 61, 61, 56, 57, 61, 118, 56, 68, 67, 79, 53, 59, 75, 71, 56, 60, 53, 59, 61, 52, 77, 42, 44, 58, 50, 45, 66, 54, 56, 46, 51, 77, 76, 54, 61, 77, 73, 50, 73, 67, 62, 67, 66, 42, 53, 122, 60, 74, 63, 66, 71, 66, 92, 65, 62, 63, 47, 70, 61, 46, 46, 68, 79, 47, 57, 60, 91, 68, 67, 70, 84, 68, 64, 56, 80, 55, 51, 58, 80, 56, 131, 65, 81, 57, 70, 62, 78, 61, 69, 45, 84, 67, 82, 65, 65, 65, 49, 49, 77, 49, 78, 62, 48, 59, 92, 63, 62, 54, 61, 50, 48, 61, 52, 109, 75, 49, 77, 71, 60, 62, 123, 55, 77, 55, 81, 60, 63, 46, 73, 100, 69, 81, 79, 75, 67, 71, 61, 82, 54, 67, 70, 53, 63, 72, 46, 66, 60, 66, 79, 103, 67, 44, 82, 46, 110, 48, 67, 78, 66, 50, 83, 46, 76, 53, 68, 43, 73, 88, 60, 55, 53, 66, 59, 67, 75, 55, 60, 65, 66, 64, 57, 65, 68, 54, 66, 56, 49, 73, 61, 51, 61, 46, 72, 70, 58, 85, 66, 65, 50, 60, 65, 56, 82, 64, 87, 65, 52, 72, 65, 60, 46, 84, 73, 78, 56, 71, 72, 59, 68, 42, 82, 63, 54, 50, 70, 66, 69, 44, 53, 49, 80, 76, 62, 56, 62, 70, 57, 78, 66, 66, 63, 52, 57, 68, 60, 69, 62, 63, 74, 75, 76, 65, 81, 81, 55, 63, 63, 73, 80, 51, 55, 89, 54, 85, 50, 50, 76, 76, 84, 54, 63, 77, 52, 60, 40, 87, 46, 64, 50, 53, 60, 58, 60, 103, 65, 45, 60, 58, 62, 82, 85, 86, 65, 49, 52, 72, 88, 63, 48, 59, 52, 58, 62, 70, 91, 55, 63, 56, 90, 61, 72, 72, 62, 63, 60, 60, 68, 54, 68, 57, 66, 51, 98, 82, 81, 63, 79, 47, 61, 55, 57, 73, 50, 50, 58, 56, 81, 75, 80, 58, 61, 54, 76, 95, 62, 53, 58, 60, 120, 76, 56, 53, 63, 67, 82, 63, 61, 51, 66, 55, 57, 106, 81, 48, 59, 56, 74, 74, 53, 56, 80, 66, 62, 57, 67, 64, 88, 52, 51, 57, 74, 81, 80, 57, 63, 88, 58, 61, 60, 73, 70, 59, 61, 64, 51, 68, 87, 97, 42, 69, 78, 76, 105, 65, 57, 80, 53, 54, 52, 72, 61, 75, 65, 72, 64, 65, 52, 67, 76, 53, 58, 85, 67, 50, 66, 69, 59, 62, 59, 67, 63, 61, 92, 58, 50, 93, 56, 66, 64, 57, 60, 75, 55, 52, 55, 57, 53, 53, 98, 69, 38, 37, 69, 74, 76, 76, 54, 58, 55, 114, 94, 73, 49, 54, 73, 51, 60, 61, 89, 87, 60, 57, 117, 83, 60, 61, 65, 64, 61, 45, 68, 78, 59, 72, 77, 60, 83, 48, 66, 48, 72, 58, 50, 62, 61, 81, 58, 45, 63, 60, 51, 70, 114, 113, 55, 61, 82, 67, 76, 54, 68, 53, 59, 59, 79, 47, 42, 61, 61, 64, 68, 62, 65, 67, 59, 56, 70, 85, 60, 61, 43, 67, 65, 60, 70, 49, 55, 73, 71, 72, 58, 49, 65, 68, 63, 60, 87, 78, 58, 51, 73, 65, 71, 65, 65, 67, 44, 61, 50, 63, 62, 78, 85, 71, 57, 60, 138, 72, 73, 47, 62, 54, 83, 52, 67, 81, 57, 54, 57, 69, 44, 59, 85, 93, 82, 26, 54, 57, 69, 56, 51, 55, 78, 55, 83, 83, 69, 53, 73, 79, 55, 71, 62, 108, 55, 60, 56, 57, 65, 55, 67, 94, 59, 61, 64, 48, 60, 138, 57, 58, 66, 47, 72, 74, 69, 71, 43, 66, 46, 67, 44, 62, 77, 71, 87, 63, 60, 71, 87, 57, 87, 90, 66, 95, 57, 53, 56, 61, 62, 88, 52, 64, 95, 70, 78, 66, 73, 73, 77, 65, 62, 61, 57, 78, 85, 57, 78, 142, 80, 80, 105, 72, 63, 81, 68, 62, 83, 69, 62, 72, 59, 77, 63, 55, 102, 73, 44, 51, 66, 75, 68, 87, 65, 53, 60, 89, 65, 97, 59, 83, 62, 51, 82, 79, 64, 84, 67, 80, 74, 64, 56, 50, 60, 62, 77, 102, 71, 76, 72, 71, 53, 43, 47, 56, 63, 95, 54, 124, 92, 66, 51, 43, 52, 69, 52, 77, 56, 81, 82, 70, 85, 72, 53, 68, 46, 54, 73, 56, 56, 59, 65, 52, 80, 58, 44, 66, 56, 67, 51, 99, 74, 72, 91, 74, 81, 66, 68, 54, 59, 55, 72, 44, 69, 51, 54, 54, 63, 62, 53, 111, 75, 93, 59, 76, 55, 82, 71, 56, 56, 69, 58, 80, 51, 60, 56, 82, 71, 88, 63, 69, 57, 73, 62, 65, 74, 61, 80, 58, 59, 65, 87, 50, 90, 60, 56, 60, 64, 63, 66, 66, 98, 54, 62, 54, 71, 61, 79, 46, 46, 57, 48, 55, 72, 83, 55, 63, 83, 69, 72, 105, 69, 64, 59, 57, 71, 74, 58, 81, 64, 72, 66, 64, 57, 68, 60, 62, 77, 63, 66, 52, 56, 70, 112, 64, 79, 43, 58, 52, 63, 89, 75, 81, 71, 59, 79, 59, 50, 50, 70, 61, 82, 87, 61, 67, 70, 50, 63, 63, 77, 66, 56, 83, 47, 87, 47, 59, 56, 55, 56, 68, 65, 67, 56, 63, 65, 48, 55, 62, 60, 77, 68, 53, 57, 55, 54, 78, 57, 58, 66, 57, 67, 76, 55, 66, 73, 67, 82, 90, 53, 70, 38, 63, 66, 54, 63, 65, 35, 73, 64, 68, 63, 66, 50, 58, 48, 76, 54, 46, 79, 52, 49, 69, 57, 60, 56, 54, 70, 64, 68, 104, 74, 64, 78, 56, 41, 66, 61, 71, 63, 50, 64, 80, 78, 50, 67, 60, 64, 71, 60, 66, 107, 69, 60, 80, 72, 52, 77, 67, 65, 81, 65, 46, 65, 65, 59, 114, 78, 71, 72, 64, 69, 54, 82, 47, 50, 52, 68, 55, 55, 85, 86, 63, 59, 69, 80, 71, 67, 62, 84, 82, 48, 65, 74, 58, 72, 53, 59, 82, 75, 101, 70, 59, 49, 75, 47, 57, 50, 61, 45, 65, 52, 54, 50, 75, 50, 53, 63, 68, 64, 41, 65, 61, 86, 76, 64, 60, 57, 75, 91, 75, 94, 63, 52, 63, 72, 62, 65, 65, 67, 72, 99, 110, 66, 55, 72, 73, 60, 61, 61, 92, 55, 53, 64, 68, 75, 68, 80, 50, 56, 45, 62, 55, 66, 52, 37, 62, 96, 58, 56, 65, 75, 48, 56, 65, 44, 59, 48, 58, 59, 61, 55, 55, 79, 50, 73, 62, 85, 64, 79, 58, 49, 52, 65, 59, 67, 72, 70, 67, 72, 70, 64, 54, 73, 69, 42, 66, 58, 53, 56, 82, 82, 61, 61, 66, 83, 55, 62, 59, 43, 63, 75, 67, 51, 81, 74, 73, 75, 61, 66, 43, 65, 123, 87, 65, 62, 49, 60, 53, 66, 64, 70, 74, 58, 88, 56, 59, 71, 68, 80, 52, 69, 60, 61, 64, 76, 66, 66, 61, 52, 55, 72, 96, 79, 56, 50, 68, 73, 59, 83, 65, 107, 73, 66, 57, 67, 81, 75, 63, 69, 40, 68, 63, 60, 76, 47, 67, 64, 73, 85, 89, 50, 74, 77, 65, 72, 57, 45, 68, 47, 64, 66, 61, 83, 42, 53, 94, 75, 75, 58, 45, 63, 51, 79, 91, 75, 66, 63, 55, 67, 49, 69, 67, 77, 62, 66, 82, 74, 60, 56, 57, 52, 84, 64, 46, 53, 54, 67, 61, 70, 50, 65, 76, 80, 72, 60, 63, 74, 60, 89, 73, 55, 64, 85, 46, 65, 101, 68, 64, 61, 60, 54, 52, 62, 72, 77, 48, 79, 53, 67, 109, 68, 50, 51, 49, 71, 64, 44, 72, 55, 98, 76, 65, 65, 74, 79, 66, 74, 55, 60, 51, 76, 74, 59, 45, 54, 62, 80, 57, 93, 81, 58, 69, 66, 82, 89, 55, 86, 71, 57, 60, 62, 54, 60, 86, 82, 71, 107, 73, 82, 61, 55, 52, 70, 71, 64, 55, 66, 48, 62, 83, 55, 68, 61, 59, 53, 69, 64, 66, 56, 64, 70, 71, 158, 64, 73, 78, 48, 53, 47, 61, 47, 50, 52, 69, 69, 60, 70, 57, 68, 67, 56, 73, 55, 75, 52, 85, 72, 62, 58, 82, 70, 91, 50, 64, 70, 60, 84, 72, 75, 76, 67, 65, 70, 72, 44, 90, 67, 74, 52, 83, 65, 88, 54, 68, 63, 87, 65, 68, 109, 51, 75, 68, 51, 58, 56, 79, 59, 69, 55, 48, 80, 91, 69, 69, 57, 60, 58, 67, 76, 71, 72, 74, 55, 60, 71, 64, 83, 76, 61, 64, 81, 78, 54, 55, 69, 80, 60, 62, 63, 66, 58, 49, 73, 62, 57, 53, 62, 70, 51, 51, 61, 53, 62, 53, 61, 81, 61, 61, 69, 70, 61, 66, 77, 92, 63, 56, 100, 79, 68, 58, 63, 52, 61, 83, 76, 80, 82, 35, 55, 61, 64, 58, 50, 51, 54, 76, 75, 70, 72, 119, 67, 49, 63, 72, 59, 62, 91, 67, 58, 58, 65, 68, 70, 71, 46, 51, 64, 56, 67, 56, 78, 68, 62, 61, 55, 56, 61, 105, 55, 73, 55, 68, 84, 61, 55, 53, 68, 49, 66, 60, 61, 68, 67, 61, 94, 67, 65, 67, 67, 61, 60, 102, 39, 56, 80, 71, 73, 67, 53, 84, 60, 51, 70, 73, 55, 70, 76, 58, 62, 57, 118, 80, 80, 63, 56, 63, 72, 39, 57, 53, 65, 66, 66, 60, 83, 68, 95, 66, 78, 51, 73, 70, 69, 42, 67, 58, 65, 68, 53, 65, 48, 65, 78, 74, 59, 70, 61, 67, 74, 81, 52, 65, 92, 55, 65, 82, 62, 61, 49, 65, 55, 124, 71, 53, 64, 64, 62, 57, 62, 57, 72, 50, 58, 61, 91, 65, 78, 58, 73, 80, 45, 61, 82, 65, 96, 77, 113, 53, 58, 56, 78, 57, 67, 63, 77, 55, 77, 51, 107, 55, 60, 54, 64, 96, 58, 53, 48, 81, 84, 61, 89, 94, 105, 63, 96, 54, 49, 50, 61, 52, 77, 48, 63, 40, 49, 56, 72, 54, 85, 54, 71, 52, 43, 63, 71, 71, 59, 71, 54, 134, 79, 64, 64, 66, 52, 71, 75, 79, 65, 72, 75, 57, 64, 65, 66, 69, 66, 67, 64, 104, 52, 59, 56, 57, 53, 57, 75, 71, 58, 65, 54, 62, 65, 55, 56, 85, 63, 77, 64, 64, 79, 57, 71, 53, 57, 73, 68, 58, 76, 63, 86, 52, 71, 75, 65, 61, 83, 87, 75, 55, 69, 52, 58, 91, 94, 65, 60, 56, 85, 66, 58, 59, 57, 65, 96, 56, 56, 67, 68, 62, 68, 72, 62, 82, 69, 97, 70, 55, 57, 79, 56, 65, 49, 61, 73, 75, 65, 56, 67, 77, 54, 69, 72, 66, 71, 82, 75, 65, 63, 65, 70, 72, 67, 50, 67, 64, 90, 42, 58, 57, 71, 50, 55, 65, 90, 53, 52, 58, 57, 55, 70, 51, 55, 93, 72, 58, 79, 62, 60, 54, 54, 66, 74, 60, 68, 63, 47, 57, 86, 52, 70, 67, 79, 51, 61, 80, 62, 84, 62, 57, 67, 84, 50, 67, 67, 61, 119, 68, 56, 72, 52, 63, 65, 74, 55, 60, 69, 55, 71, 74, 68, 55, 74, 54, 54, 95, 66, 46, 57, 50, 43, 65, 96, 64, 69, 81, 64, 72, 57, 52, 67, 66, 61, 58, 88, 79, 58, 54, 53, 80, 54, 67, 86, 57, 59, 81, 55, 65, 55, 91, 57, 64, 54, 59, 59, 82, 65, 66, 59, 44, 77, 54, 58, 64, 79, 51, 60, 61, 59, 36, 49, 69, 55, 71, 60, 56, 60, 49, 50, 62, 62, 72, 64, 58, 63, 72, 56, 71, 55, 61, 62, 70, 53, 80, 67, 80, 70, 62, 67, 67, 66, 59, 70, 48, 57, 56, 65, 61, 60, 75, 57, 77, 61, 72, 97, 66, 46, 88, 75, 72, 57, 58, 75, 71, 71, 69, 72, 54, 95, 48, 62, 70, 65, 79, 65, 55, 46, 56, 70, 57, 78, 70, 61, 69, 70, 85, 80, 71, 56, 47, 60, 61, 53, 55, 68, 60, 74, 65, 71, 68, 61, 63, 87, 105, 58, 58, 53, 68, 80, 60, 49, 69, 53, 57, 75, 64, 44, 67, 73, 65, 89, 70, 85, 68, 69, 62, 82, 110, 91, 58, 55, 49, 60, 61, 83, 55, 53, 52, 55, 64, 52, 56, 57, 54, 59, 68, 43, 58, 107, 60, 71, 61, 54, 66, 64, 57, 65, 91, 73, 66, 76, 52, 59, 52, 67, 59, 73, 53, 73, 70, 102, 47, 75, 65, 54, 59, 85, 42, 55, 71, 86, 56, 51, 43, 37, 59, 76, 57, 50, 76, 45, 57, 68, 49, 75, 62, 58, 59, 52, 65, 65, 55, 97, 63, 76, 73, 53, 54, 66, 57, 66, 53, 55, 72, 78, 70, 46, 58, 69, 61, 61, 49, 56, 44, 63, 45, 61, 63, 72, 69, 61, 86, 67, 61, 58, 59, 55, 74, 54, 68, 78, 50, 76, 73, 68, 51, 67, 66, 59, 62, 74, 68, 56, 64, 57, 41, 58, 74, 82, 64, 61, 64, 68, 74, 81, 77, 63, 51, 65, 53, 55, 58, 69, 90, 45, 59, 76, 44, 69, 74, 55, 57, 45, 70, 58, 58, 69, 50, 56, 56, 52, 62, 91, 81, 68, 56, 60, 63, 67, 76, 52, 60, 76, 64, 63, 59, 57, 81, 59, 36, 73, 74, 55, 72, 67, 67, 87, 58, 65, 63, 59, 70, 65, 57, 58, 56, 80, 65, 59, 75, 51, 73, 60, 69, 61, 75, 61, 65, 64, 53, 60, 60, 58, 66, 60, 77, 72, 68, 67, 69, 103, 49, 65, 74, 65, 71, 44, 49, 70, 74, 58, 78, 54, 56, 41, 54, 61, 60, 90, 55, 61, 97, 71, 55, 64, 56, 55, 73, 64, 68, 54, 76, 83, 76, 119, 62, 70, 86, 75, 84, 56, 49, 56, 70, 90, 53, 56, 53, 77, 59, 74, 67, 159, 65, 53, 65, 109, 50, 57, 54, 95, 76, 54, 55, 54, 53, 67, 66, 64, 67, 110, 62, 59, 64, 65, 58, 68, 58, 58, 52, 53, 71, 57, 95, 47, 65, 63, 104, 74, 64, 71, 71, 88, 70, 51, 61, 149, 81, 67, 58, 52, 68, 64, 60, 65, 55, 73, 48, 54, 119, 70, 50, 70, 71, 55, 69, 57, 62, 78, 59, 63, 77, 61, 56, 53, 69, 69, 75, 87, 54, 52, 79, 58, 79, 47, 54, 72, 55, 62, 52, 57, 76, 63, 97, 57, 68, 47, 58, 96, 84, 69, 61, 76, 60, 58, 55, 61, 48, 47, 62, 61, 66, 85, 49, 57, 50, 73, 55, 52, 60, 66, 48, 67, 59, 63, 73, 69, 50, 69, 64, 56, 51, 54, 102, 81, 56, 74, 61, 58, 105, 63, 55, 58, 54, 44, 65, 72, 71, 67, 63, 59, 60, 67, 67, 49, 64, 62, 69, 61, 47, 63, 81, 65, 51, 50, 58, 66, 100, 49, 52, 109, 70, 64, 61, 66, 52, 61, 92, 71, 61, 74, 69, 65, 67, 54, 60, 58, 61, 54, 55, 81, 64, 41, 59, 66, 69, 69, 74, 73, 60, 83, 37, 59, 58, 74, 65, 67, 47, 80, 59, 55, 56, 85, 66, 64, 55, 65, 64, 72, 59, 75, 91, 72, 51, 73, 74, 76, 52, 61, 61, 74, 61, 61, 68, 47, 77, 51, 51, 57, 72, 54, 71, 57, 62, 48, 70, 63, 61, 79, 68, 71, 75, 60, 62, 53, 60, 55, 61, 92, 67, 65, 67, 69, 61, 64, 106, 62, 65, 71, 50, 75, 69, 41, 81, 66, 66, 64, 80, 86, 51, 79, 63, 76, 76, 53, 69, 52, 73, 88, 117, 65, 74, 79, 57, 83, 79, 52, 49, 72, 67, 59, 81, 61, 53, 53, 66, 65, 45, 58, 45, 72, 77, 63, 50, 69, 122, 40, 49, 86, 47, 46, 66, 50, 54, 57, 66, 76, 51, 42, 59, 38, 60, 65, 84, 44, 52, 74, 64, 54, 45, 70, 106, 38, 53, 58, 50, 53, 66, 90, 58, 120, 85, 71, 53, 62, 69, 79, 85, 51, 48, 59, 54, 64, 57, 79, 108, 78, 61, 59, 76, 81, 64, 55, 66, 65, 80, 64, 65, 70, 62, 82, 68, 46, 64, 62, 59, 49, 62, 92, 63, 66, 66, 58, 95, 75, 53, 59, 85, 67, 62, 63, 60, 78, 57, 59, 55, 53, 58, 79, 70, 59, 70, 50, 47, 71, 79, 67, 81, 54, 59, 97, 74, 80, 84, 61, 99, 53, 66, 69, 69, 52, 83, 63, 55, 73, 62, 95, 71, 55, 86, 40, 45, 61, 59, 85, 64, 61, 59, 60, 49, 39, 88, 46, 66, 65, 88, 63, 130, 90, 83, 52, 70, 59, 46, 69, 78, 55, 54, 57, 66, 80, 59, 71, 54, 54, 46, 74, 78, 79, 63, 65, 67, 60, 50, 65, 53, 65, 69, 89, 61, 69, 58, 80, 65, 66, 49, 86, 74, 55, 55, 78, 58, 51, 56, 51, 65, 61, 58, 75, 57, 54, 38, 80, 64, 53, 71, 56, 67, 74, 72, 61, 69, 60, 75, 58, 79, 69, 94, 84, 77, 77, 75, 62, 68, 73, 66, 67, 77, 67, 60, 56, 72, 64, 60, 45, 63, 78, 63, 67, 43, 60, 74, 51, 73, 85, 54, 115, 58, 58, 50, 83, 68, 61, 54, 60, 81, 55, 78, 62, 53, 48, 68, 64, 68, 98, 77, 86, 66, 49, 114, 59, 66, 52, 59, 55, 54, 83, 61, 98, 73, 51, 59, 54, 61, 57, 61, 74, 50, 57, 62, 55, 67, 83, 64, 56, 69, 64, 66, 62, 62, 72, 71, 61, 74, 74, 53, 66, 55, 44, 64, 96, 63, 60, 60, 77, 69, 49, 69, 60, 47, 43, 49, 57, 57, 85, 50, 45, 72, 57, 48, 58, 71, 67, 56, 69, 62, 66, 60, 105, 53, 55, 67, 49, 82, 64, 60, 57, 58, 61, 67, 62, 52, 64, 63, 68, 59, 62, 57, 59, 72, 51, 47, 86, 55, 68, 59, 71, 58, 104, 75, 73, 69, 69, 54, 73, 84, 68, 84, 62, 45, 52, 55, 90, 78, 51, 52, 52, 45, 73, 51, 74, 61, 85, 62, 64, 56, 72, 53, 75, 86, 71, 66, 66, 116, 57, 69, 57, 50, 71, 58, 66, 66, 63, 58, 67, 80, 59, 43, 62, 64, 56, 88, 63, 57, 58, 68, 60, 76, 68, 68, 56, 61, 62, 81, 55, 76, 81, 46, 71, 55, 63, 73, 58, 62, 55, 65, 66, 65, 52, 68, 55, 82, 61, 56, 56, 54, 57, 113, 98, 48, 58, 57, 66, 83, 48, 56, 49, 62, 58, 66, 78, 56, 79, 58, 57, 58, 53, 59, 56, 56, 64, 51, 62, 60, 84, 66, 67, 76, 76, 55, 73, 58, 101, 68, 95, 57, 108, 80, 45, 77, 56, 59, 76, 62, 89, 105, 65, 58, 63, 68, 76, 71, 64, 63, 64, 57, 98, 62, 101, 54, 66, 59, 83, 60, 69, 66, 67, 63, 69, 80, 65, 86, 75, 49, 72, 74, 74, 52, 65, 46, 48, 66, 56, 62, 66, 57, 66, 62, 66, 80, 61, 76, 67, 66, 62, 53, 70, 50, 80, 67, 76, 56, 69, 61, 132, 58, 81, 76, 54, 47, 80, 66, 55, 45, 60, 49, 64, 68, 111, 42, 58, 74, 68, 62, 61, 59, 78, 63, 70, 54, 42, 69, 55, 65, 83, 68, 78, 75, 80, 78, 72, 66, 56, 65, 64, 51, 78, 76, 56, 74, 59, 62, 124, 63, 73, 68, 80, 49, 89, 80, 80, 70, 62, 77, 52, 59, 58, 83, 52, 75, 66, 49, 47, 69, 64, 67, 58, 55, 63, 71, 97, 62, 63, 68, 67, 56, 94, 64, 76, 66, 71, 81, 60, 78, 60, 73, 47, 131, 56, 83, 83, 68, 59, 66, 67, 55, 69, 70, 70, 51, 70, 65, 67, 49, 77, 48, 56, 73, 65, 78, 107, 74, 90, 56, 72, 50, 66, 58, 72, 59, 53, 55, 66, 60, 82, 78, 66, 53, 61, 51, 51, 80, 88, 81, 74, 68, 70, 59, 86, 61, 60, 58, 68, 62, 75, 68, 68, 63, 67, 72, 94, 60, 73, 60, 112, 63, 49, 61, 50, 69, 60, 65, 67, 60, 88, 50, 56, 59, 61, 57, 69, 80, 62, 62, 56, 62, 68, 40, 62, 70, 74, 99, 67, 65, 54, 74, 67, 67, 47, 60, 145, 52, 66, 80, 55, 52, 58, 63, 53, 63, 59, 58, 61, 60, 81, 64, 60, 58, 59, 67, 59, 64, 82, 48, 53, 62, 98, 63, 64, 65, 61, 49, 54, 46, 59, 58, 63, 57, 66, 55, 80, 60, 44, 72, 67, 66, 46, 68, 48, 64, 74, 57, 66, 111, 104, 63, 51, 65, 49, 62, 55, 68, 67, 59, 63, 62, 65, 60, 73, 44, 60, 52, 66, 62, 65, 57, 61, 54, 76, 40, 66, 51, 67, 80, 74, 49, 47, 39, 66, 67, 80, 68, 63, 82, 55, 70, 69, 77, 60, 57, 87, 59, 53, 56, 86, 59, 45, 89, 50, 59, 60, 72, 75, 110, 58, 61, 63, 69, 67, 85, 73, 90, 66, 69, 93, 69, 53, 59, 53, 66, 52, 54, 46, 83, 76, 44, 52, 70, 55, 61, 67, 59, 69, 78, 77, 53, 67, 61, 52, 57, 102, 69, 50, 79, 110, 49, 53, 54, 94, 57, 69, 69, 74, 70, 43, 67, 60, 58, 83, 61, 60, 62, 92, 48, 64, 66, 64, 90, 51, 71, 67, 78, 50, 60, 80, 67, 68, 54, 88, 52, 68, 61, 82, 56, 56, 66, 76, 63, 53, 64, 55, 57, 56, 48, 51, 50, 54, 65, 63, 88, 63, 46, 81, 67, 67, 52, 53, 62, 62, 84, 63, 61, 50, 57, 72, 57, 93, 52, 51, 59, 66, 60, 58, 89, 77, 68, 90, 70, 68, 68, 59, 59, 72, 65, 59, 57, 86, 72, 75, 47, 49, 71, 53, 49, 73, 76, 63, 73, 60, 57, 67, 63, 86, 70, 55, 62, 64, 55, 75, 95, 72, 52, 60, 61, 39, 60, 78, 85, 56, 53, 144, 59, 70, 66, 66, 71, 59, 69, 59, 46, 62, 61, 70, 83, 45, 78, 62, 66, 59, 63, 55, 63, 66, 61, 166, 95, 60, 82, 78, 52, 50, 113, 62, 50, 59, 59, 66, 64, 67, 72, 71, 88, 73, 63, 70, 59, 63, 78, 69, 66, 68, 85, 56, 85, 63, 64, 52, 92, 67, 54, 59, 60, 63, 67, 72, 81, 76, 56, 54, 72, 65, 40, 63, 78, 54, 57, 56, 67, 64, 57, 59, 73, 55, 62, 55, 66, 52, 50, 71, 36, 74, 50, 76, 34, 71, 82, 111, 49, 71, 108, 69, 64, 57, 73, 62, 51, 75, 69, 49, 72, 69, 65, 76, 80, 63, 69, 72, 73, 70, 60, 59, 64, 63, 60, 66, 67, 84, 78, 54, 88, 65, 61, 69, 58, 73, 58, 93, 58, 66, 55, 63, 50, 93, 52, 71, 66, 61, 66, 57, 57, 80, 90, 74, 51, 55, 55, 57, 60, 70, 41, 56, 67, 58, 75, 52, 83, 65, 50, 51, 78, 58, 68, 70, 71, 64, 68, 59, 59, 55, 51, 72, 60, 84, 63, 79, 75, 49, 63, 86, 69, 67, 64, 70, 91, 67, 56, 40, 65, 83, 47, 81, 48, 53, 54, 60, 54, 61, 66, 77, 58, 75, 61, 52, 82, 73, 55, 51, 69, 55, 63, 65, 62, 77, 53, 66, 99, 51, 50, 63, 60, 74, 47, 84, 92, 82, 35, 44, 91, 59, 53, 57, 98, 64, 93, 63, 77, 84, 63, 48, 73, 53, 76, 50, 61, 59, 63, 60, 71, 67, 69, 73, 65, 75, 70, 46, 64, 62, 56, 70, 61, 85, 69, 57, 59, 67, 60, 96, 69, 56, 64, 76, 68, 82, 57, 58, 55, 69, 63, 67, 63, 47, 67, 78, 84, 62, 60, 57, 58, 61, 76, 58, 77, 61, 78, 60, 66, 83, 54, 73, 64, 51, 53, 44, 64, 63, 61, 75, 63, 68, 85, 72, 72, 86, 53, 67, 64, 68, 86, 73, 75, 64, 58, 66, 79, 61, 56, 66, 62, 55, 56, 73, 60, 81, 74, 62, 74, 94, 63, 84, 44, 65, 46, 90, 57, 52, 59, 89, 59, 54, 61, 57, 69, 65, 45, 69, 59, 46, 64, 56, 75, 84, 74, 52, 55, 68, 56, 64, 68, 70, 83, 58, 71, 45, 109, 78, 87, 56, 137, 69, 79, 54, 94, 54, 55, 71, 67, 69, 62, 57, 88, 64, 58, 72, 62, 54, 71, 73, 55, 71, 71, 79, 58, 49, 59, 82, 57, 65, 70, 83, 56, 57, 63, 87, 59, 58, 86, 66, 52, 56, 68, 62, 53, 92, 59, 52, 72, 62, 49, 60, 63, 51, 79, 87, 73, 56, 68, 53, 64, 72, 67, 64, 72, 61, 59, 58, 60, 65, 67, 74, 71, 72, 55, 56, 83, 58, 46, 59, 67, 99, 57, 85, 54, 64, 50, 62, 57, 73, 54, 42, 58, 90, 58, 65, 75, 43, 74, 59, 72, 73, 75, 56, 55, 57, 66, 56, 60, 59, 59, 59, 61, 48, 86, 64, 58, 58, 74, 60, 64, 65, 64, 57, 65, 76, 62, 62, 70, 96, 75, 54, 65, 52, 54, 58, 50, 57, 63, 68, 42, 72, 47, 72, 43, 51, 93, 58, 55, 60, 68, 68, 47, 64, 70, 78, 62, 99, 61, 85, 57, 118, 43, 66, 66, 73, 56, 56, 58, 67, 63, 70, 58, 62, 62, 93, 58, 50, 58, 81, 59, 59, 69, 89, 67, 71, 64, 74, 53, 74, 85, 76, 49, 64, 42, 58, 78, 77, 62, 69, 66, 58, 60, 92, 62, 60, 80, 76, 69, 91, 60, 64, 63, 66, 57, 46, 65, 88, 85, 58, 71, 57, 57, 56, 67, 59, 66, 60, 64, 52, 57, 51, 79, 59, 54, 61, 60, 94, 63, 64, 44, 69, 44, 70, 70, 53, 65, 59, 102, 63, 57, 61, 58, 68, 133, 59, 77, 84, 61, 52, 72, 88, 55, 72, 71, 55, 66, 83, 69, 60, 62, 66, 47, 83, 67, 61, 75, 95, 73, 94, 84, 64, 66, 56, 57, 81, 90, 67, 58, 63, 60, 58, 73, 62, 64, 50, 60, 76, 42, 97, 54, 62, 56, 57, 54, 67, 65, 55, 61, 65, 65, 70, 68, 78, 61, 68, 60, 73, 67, 60, 54, 117, 60, 61, 67, 67, 53, 54, 76, 68, 54, 94, 74, 60, 63, 63, 59, 66, 64, 64, 52, 41, 58, 64, 69, 56, 56, 41, 89, 64, 65, 57, 67, 72, 45, 64, 61, 160, 47, 56, 83, 58, 66, 50, 63, 55, 55, 70, 62, 52, 65, 101, 52, 61, 58, 80, 62, 65, 63, 54, 53, 59, 88, 25, 66, 56, 63, 78, 60, 61, 69, 60, 56, 61, 52, 67, 57, 82, 55, 49, 56, 54, 50, 46, 63, 54, 75, 80, 67, 70, 112, 85, 65, 82, 70, 62, 66, 69, 72, 68, 65, 84, 57, 70, 64, 102, 59, 74, 56, 97, 54, 60, 74, 52, 60, 52, 65, 71, 65, 67, 84, 54, 49, 59, 64, 70, 59, 64, 72, 58, 87, 67, 64, 51, 58, 59, 61, 96, 77, 64, 72, 61, 89, 61, 78, 65, 65, 59, 51, 58, 119, 60, 45, 63, 64, 75, 60, 72, 81, 50, 70, 73, 58, 62, 56, 63, 53, 60, 53, 53, 54, 70, 64, 61, 60, 81, 54, 51, 62, 63, 51, 60, 71, 50, 77, 55, 70, 67, 58, 53, 77, 106, 77, 63, 68, 70, 57, 77, 49, 65, 53, 75, 66, 56, 60, 60, 69, 71, 62, 48, 63, 67, 94, 63, 81, 84, 58, 63, 53, 56, 58, 86, 80, 45, 78, 70, 66, 70, 38, 74, 67, 56, 64, 91, 56, 62, 62, 82, 49, 85, 46, 50, 80, 52, 54, 75, 101, 59, 82, 65, 57, 68, 56, 64, 59, 43, 80, 80, 70, 65, 55, 71, 74, 66, 92, 64, 62, 64, 60, 58, 57, 97, 64, 66, 79, 62, 62, 71, 49, 57, 78, 63, 62, 82, 51, 97, 57, 59, 73, 64, 59, 50, 86, 59, 66, 69, 65, 71, 73, 71, 65, 60, 73, 63, 70, 55, 113, 63, 63, 74, 72, 56, 86, 62, 68, 57, 59, 151, 66, 72, 66, 45, 103, 69, 61, 58, 56, 66, 55, 70, 68, 66, 96, 57, 62, 54, 51, 69, 48, 52, 60, 135, 100, 53, 97, 45, 66, 56, 107, 61, 62, 60, 74, 74, 78, 76, 65, 83, 55, 68, 71, 52, 62, 62, 44, 55, 68, 59, 59, 73, 78, 64, 59, 48, 60, 67, 54, 56, 55, 65, 55, 86, 64, 61, 65, 84, 70, 65, 59, 69, 42, 63, 75, 69, 62, 66, 56, 68, 49, 65, 58, 65, 53, 58, 70, 62, 53, 66, 70, 81, 61, 82, 67, 70, 49, 60, 98, 66, 56, 53, 57, 49, 62, 55, 90, 61, 56, 68, 58, 80, 86, 52, 80, 79, 49, 69, 55, 66, 62, 67, 63, 70, 78, 92, 49, 55, 95, 57, 84, 88, 53, 52, 54, 98, 52, 69, 63, 64, 47, 91, 60, 72, 56, 66, 62, 68, 75, 73, 86, 69, 65, 65, 64, 66, 75, 57, 69, 56, 61, 50, 72, 62, 43, 75, 53, 55, 69, 60, 55, 63, 64, 60, 50, 62, 69, 89, 60, 65, 66, 68, 43, 97, 64, 39, 56, 90, 74, 63, 49, 71, 36, 77, 67, 57, 101, 55, 60, 77, 65, 60, 63, 54, 62, 62, 49, 65, 88, 71, 76, 67, 61, 55, 72, 54, 55, 57, 53, 68, 73, 78, 56, 64, 113, 58, 70, 52, 58, 69, 60, 59, 60, 83, 55, 64, 92, 52, 46, 72, 115, 63, 90, 58, 79, 78, 61, 48, 64, 87, 53, 53, 63, 74, 75, 64, 62, 67, 87, 55, 69, 74, 54, 70, 60, 68, 45, 72, 74, 63, 54, 76, 53, 58, 57, 54, 51, 65, 73, 60, 88, 63, 69, 61, 58, 60, 48, 74, 41, 89, 59, 57, 55, 62, 58, 52, 70, 44, 75, 73, 61, 70, 80, 80, 62, 50, 62, 75, 57, 62, 75, 55, 43, 62, 54, 51, 63, 60, 80, 52, 49, 56, 61, 61, 58, 48, 89, 57, 69, 47, 62, 64, 71, 54, 62, 66, 59, 65, 62, 63, 58, 72, 49, 66, 85, 56, 69, 74, 44, 51, 61, 50, 63, 56, 68, 85, 73, 59, 66, 63, 70, 53, 56, 52, 53, 76, 76, 56, 84, 62, 79, 67, 59, 80, 54, 65, 70, 58, 74, 59, 51, 44, 73, 53, 65, 61, 131, 59, 68, 71, 63, 59, 62, 62, 64, 60, 68, 62, 93, 66, 54, 86, 61, 52, 81, 49, 71, 41, 59, 50, 53, 57, 61, 61, 78, 54, 61, 76, 70, 62, 75, 77, 54, 64, 81, 63, 47, 62, 78, 61, 65, 94, 60, 87, 63, 61, 47, 50, 57, 52, 102, 67, 52, 56, 47, 66, 74, 65, 54, 61, 90, 45, 55, 79, 52, 51, 66, 61, 70, 59, 62, 39, 71, 73, 68, 71, 67, 92, 53, 67, 60, 65, 57, 74, 56, 92, 64, 60, 66, 72, 71, 67, 61, 51, 62, 55, 79, 61, 51, 68, 44, 47, 72, 59, 58, 63, 62, 57, 60, 61, 61, 65, 67, 57, 56, 64, 67, 52, 67, 59, 81, 60, 66, 74, 75, 83, 59, 71, 68, 55, 61, 68, 64, 53, 55, 64, 73, 63, 124, 62, 67, 57, 65, 59, 58, 61, 56, 69, 57, 93, 74, 63, 62, 62, 74, 60, 65, 71, 63, 57, 72, 63, 84, 63, 60, 52, 57, 74, 91, 60, 76, 64, 73, 54, 59, 55, 63, 52, 62, 47, 81, 48, 65, 64, 66, 69, 67, 61, 77, 61, 63, 65, 56, 63, 55, 44, 54, 64, 55, 63, 89, 76, 76, 64, 51, 62, 63, 67, 68, 53, 60, 73, 93, 64, 52, 67, 83, 56, 72, 61, 63, 68, 66, 61, 79, 50, 53, 62, 82, 88, 61, 70, 82, 68, 42, 54, 60, 87, 90, 71, 57, 67, 67, 51, 70, 59, 72, 78, 66, 60, 98, 64, 78, 65, 59, 65, 59, 85, 65, 67, 77, 64, 67, 59, 67, 80, 80, 55, 79, 69, 44, 62, 56, 63, 70, 55, 52, 67, 93, 61, 60, 54, 60, 57, 85, 71, 61, 69, 128, 60, 60, 75, 56, 60, 73, 142, 66, 72, 61, 50, 63, 98, 63, 63, 64, 70, 51, 58, 60, 53, 65, 55, 64, 60, 85, 78, 61, 45, 61, 85, 67, 66, 69, 63, 70, 57, 52, 66, 55, 62, 61, 77, 49, 92, 76, 48, 56, 75, 61, 65, 89, 60, 68, 55, 58, 74, 67, 58, 80, 119, 57, 63, 65, 141, 81, 63, 81, 65, 87, 64, 58, 62, 65, 73, 73, 47, 76, 67, 66, 82, 78, 85, 66, 60, 62, 78, 68, 69, 55, 55, 66, 61, 54, 58, 52, 54, 71, 72, 54, 96, 72, 58, 82, 109, 69, 57, 55, 66, 97, 80, 63, 70, 47, 86, 78, 59, 99, 67, 50, 96, 47, 53, 61, 67, 57, 77, 72, 87, 54, 78, 64, 48, 56, 57, 58, 52, 56, 71, 57, 53, 63, 79, 62, 66, 55, 61, 39, 64, 53, 73, 88, 64, 67, 76, 58, 75, 52, 62, 50, 58, 78, 60, 50, 73, 56, 76, 67, 86, 67, 58, 90, 71, 59, 58, 52, 59, 74, 57, 78, 58, 73, 67, 61, 48, 79, 57, 57, 70, 88, 66, 58, 66, 62, 57, 77, 75, 63, 55, 70, 46, 58, 77, 67, 69, 61, 81, 59, 53, 53, 80, 63, 69, 62, 67, 62, 65, 47, 105, 70, 53, 58, 59, 70, 62, 57, 68, 80, 61, 51, 63, 73, 136, 67, 54, 94, 70, 55, 72, 67, 60, 62, 67, 56, 67, 52, 53, 51, 56, 66, 61, 66, 64, 60, 76, 70, 80, 78, 61, 57, 71, 64, 52, 53, 68, 68, 69, 59, 78, 61, 54, 66, 66, 65, 70, 59, 55, 90, 54, 57, 53, 65, 92, 44, 73, 66, 67, 91, 64, 76, 58, 98, 63, 63, 54, 75, 69, 64, 79, 66, 102, 39, 67, 68, 64, 73, 55, 63, 69, 71, 75, 64, 56, 59, 62, 69, 82, 55, 61, 78, 59, 55, 76, 55, 78, 47, 63, 62, 74, 62, 56, 75, 71, 102, 75, 58, 59, 61, 60, 69, 53, 68, 49, 84, 60, 63, 60, 79, 70, 67, 78, 59, 77, 63, 74, 54, 56, 71, 69, 49, 67, 53, 71, 59, 68, 58, 78, 54, 94, 74, 62, 74, 68, 60, 73, 104, 60, 57, 61, 64, 69, 63, 63, 46, 60, 56, 85, 64, 69, 91, 57, 55, 66, 91, 55, 72, 57, 56, 58, 62, 89, 60, 67, 60, 64, 71, 73, 65, 62, 55, 80, 64, 58, 70, 71, 75, 53, 65, 61, 51, 55, 65, 56, 61, 83, 59, 55, 53, 64, 66, 66, 53, 63, 90, 55, 85, 70, 62, 72, 82, 63, 67, 86, 64, 54, 62, 68, 66, 61, 54, 61, 58, 66, 57, 94, 58, 60, 73, 74, 63, 70, 79, 64, 66, 70, 68, 76, 68, 56, 68, 45, 69, 64, 72, 67, 93, 80, 78, 73, 60, 80, 68, 55, 69, 57, 72, 65, 53, 66, 71, 72, 55, 59, 73, 65, 103, 63, 78, 60, 61, 57, 64, 61, 76, 67, 60, 49, 60, 70, 68, 45, 66, 57, 73, 61, 44, 58, 64, 61, 53, 71, 53, 65, 59, 66, 58, 76, 65, 60, 91, 76, 68, 66, 65, 56, 68, 68, 70, 73, 60, 63, 83, 71, 59, 70, 64, 68, 42, 53, 45, 63, 65, 65, 117, 69, 54, 62, 45, 57, 70, 70, 77, 55, 54, 63, 68, 76, 65, 89, 84, 82, 64, 60, 61, 93, 55, 55, 50, 65, 70, 60, 69, 61, 90, 72, 54, 66, 89, 90, 66, 71, 71, 91, 58, 63, 81, 84, 56, 52, 73, 50, 52, 63, 70, 78, 73, 70, 112, 62, 72, 60, 70, 66, 59, 60, 56, 57, 60, 53, 62, 44, 77, 64, 69, 75, 71, 53, 56, 60, 66, 61, 78, 46, 58, 58, 65, 75, 61, 86, 60, 79, 60, 76, 76, 75, 90, 63, 48, 61, 61, 59, 56, 65, 59, 71, 65, 66, 63, 52, 68, 61, 62, 60, 72, 73, 60, 63, 66, 65, 50, 58, 63, 75, 67, 71, 64, 64, 66, 75, 65, 47, 91, 60, 57, 52, 54, 62, 78, 83, 67, 50, 70, 88, 67, 70, 82, 78, 66, 65, 63, 57, 75, 84, 66, 66, 56, 55, 52, 65, 66, 59, 58, 52, 64, 58, 61, 57, 63, 61, 56, 59, 66, 62, 58, 71, 70, 68, 81, 89, 87, 63, 80, 56, 73, 91, 59, 60, 55, 70, 67, 63, 58, 66, 60, 72, 72, 77, 69, 51, 76, 68, 55, 60, 76, 61, 67, 60, 58, 61, 54, 58, 76, 66, 86, 68, 55, 58, 60, 75, 54, 54, 69, 71, 63, 59, 81, 92, 58, 76, 94, 75, 73, 58, 51, 58, 52, 75, 94, 67, 61, 53, 58, 55, 72, 64, 74, 81, 63, 69, 53, 54, 60, 63, 49, 62, 56, 68, 63, 64, 57, 71, 69, 57, 56, 75, 61, 60, 71, 71, 68, 81, 51, 76, 51, 60, 53, 59, 73, 74, 76, 77, 102, 62, 93, 56, 55, 76, 63, 67, 53, 56, 67, 61, 59, 74, 66, 70, 62, 61, 67, 62, 57, 62, 60, 58, 72, 57, 65, 62, 42, 88, 53, 65, 65, 73, 59, 65, 77, 48, 70, 65, 42, 70, 83, 59, 60, 60, 69, 52, 72, 57, 55, 53, 63, 91, 70, 53, 64, 83, 76, 55, 67, 80, 61, 68, 58, 70, 65, 76, 63, 66, 77, 53, 79, 84, 63, 136, 55, 63, 61, 58, 64, 69, 59, 57, 65, 64, 63, 58, 67, 77, 67, 66, 66, 48, 73, 64, 54, 54, 62, 60, 77, 69, 60, 84, 106, 56, 64, 57, 57, 76, 53, 80, 83, 67, 68, 103, 73, 79, 83, 56, 76, 79, 51, 59, 76, 64, 71, 70, 67, 60, 52, 64, 71, 67, 67, 101, 70, 66, 76, 53, 65, 85, 61, 73, 61, 82, 72, 55, 61, 55, 50, 91, 60, 63, 75, 51, 81, 57, 65, 62, 68, 83, 67, 55, 59, 55, 57, 48, 117, 66, 86, 63, 56, 60, 68, 72, 70, 60, 63, 57, 78, 61, 61, 42, 74, 66, 55, 62, 81, 58, 59, 75, 70, 54, 59, 48, 61, 71, 62, 124, 60, 55, 57, 59, 58, 77, 44, 59, 75, 76, 64, 60, 61, 58, 63, 53, 61, 79, 102, 59, 61, 70, 64, 66, 62, 65, 57, 76, 73, 57, 65, 70, 60, 76, 82, 56, 69, 68, 68, 58, 48, 51, 58, 57, 81, 70, 61, 61, 80, 67, 64, 62, 68, 92, 61, 63, 64, 163, 62, 49, 62, 55, 65, 62, 66, 67, 69, 59, 57, 49, 78, 67, 65, 59, 74, 62, 57, 67, 50, 62, 65, 62, 65, 61, 60, 51, 74, 82, 74, 81, 50, 70, 48, 76, 65, 64, 71, 97, 95, 67, 64, 55, 92, 68, 91, 59, 54, 65, 110, 57, 75, 69, 59, 82, 55, 69, 69, 79, 55, 68, 69, 71, 46, 82, 73, 54, 57, 55, 42, 70, 61, 59, 67, 59, 62, 73, 56, 62, 61, 96, 61, 57, 67, 76, 88, 59, 57, 55, 58, 69, 76, 58, 73, 61, 84, 61, 56, 45, 63, 62, 67, 57, 54, 61, 69, 49, 66, 73, 73, 61, 66, 69, 81, 55, 56, 60, 65, 59, 51, 59, 53, 60, 82, 58, 63, 71, 60, 61, 110, 69, 66, 42, 69, 74, 59, 60, 53, 58, 66, 69, 70, 68, 62, 92, 76, 56, 69, 64, 53, 55, 65, 105, 63, 55, 67, 64, 63, 56, 56, 81, 53, 57, 68, 85, 55, 122, 49, 57, 67, 66, 67, 75, 69, 69, 69, 67, 50, 89, 81, 54, 65, 70, 67, 59, 71, 48, 68, 62, 79, 74, 67, 57, 64, 64, 64, 68, 62, 76, 59, 66, 65, 70, 67, 55, 60, 83, 49, 79, 51, 65, 57, 68, 54, 77, 65, 69, 66, 68, 78, 50, 59, 65, 106, 57, 63, 62, 61, 62, 113, 59, 68, 55, 71, 90, 49, 75, 59, 65, 66, 79, 78, 60, 65, 54, 68, 75, 68, 75, 65, 64, 73, 52, 63, 55, 57, 52, 54, 62, 71, 71, 57, 65, 68, 67, 65, 60, 61, 95, 73, 59, 60, 65, 68, 70, 59, 73, 64, 52, 82, 57, 79, 90, 67, 65, 62, 56, 63, 62, 63, 67, 55, 56, 77, 70, 54, 54, 64, 65, 60, 71, 85, 99, 75, 89, 67, 63, 59, 74, 82, 59, 52, 59, 59, 89, 56, 68, 60, 62, 76, 62, 77, 50, 76, 57, 50, 89, 75, 67, 84, 58, 65, 47, 75, 82, 60, 54, 53, 75, 65, 94, 51, 58, 62, 60, 60, 54, 54, 62, 59, 66, 59, 46, 60, 70, 66, 56, 66, 82, 69, 98, 90, 63, 77, 54, 73, 62, 55, 63, 99, 50, 68, 72, 84, 63, 74, 69, 57, 65, 56, 68, 51, 69, 76, 62, 68, 66, 65, 77, 61, 76, 58, 62, 62, 72, 58, 63, 63, 61, 59, 84, 62, 63, 69, 54, 71, 55, 70, 54, 70, 69, 75, 71, 74, 91, 55, 77, 64, 60, 66, 57, 66, 86, 51, 63, 65, 61, 94, 79, 89, 61, 64, 70, 66, 69, 78, 55, 75, 74, 78, 60, 57, 61, 51, 76, 64, 60, 64, 60, 64, 72, 66, 59, 74, 62, 60, 45, 71, 60, 87, 84, 58, 53, 92, 62, 57, 68, 76, 73, 53, 56, 57, 68, 55, 59, 68, 67, 61, 53, 60, 81, 68, 47, 69, 69, 79, 80, 97, 63, 53, 64, 65, 55, 63, 65, 53, 69, 59, 79, 66, 70, 58, 64, 80, 62, 68, 60, 64, 99, 69, 63, 55, 83, 87, 57, 49, 63, 121, 56, 47, 47, 102, 78, 53, 70, 59, 62, 43, 53, 72, 56, 59, 51, 67, 47, 82, 67, 56, 84, 76, 65, 99, 56, 47, 59, 58, 64, 70, 55, 65, 72, 56, 68, 92, 57, 89, 65, 66, 70, 73, 56, 61, 61, 63, 68, 66, 69, 71, 59, 62, 80, 66, 66, 69, 55, 68, 64, 110, 61, 105, 72, 62, 61, 57, 65, 73, 67, 55, 61, 79, 71, 54, 61, 89, 55, 60, 67, 50, 58, 66, 80, 76, 52, 68, 79, 64, 74, 61, 61, 58, 60, 49, 64, 58, 63, 64, 66, 54, 64, 72, 70, 77, 56, 56, 69, 81, 75, 67, 65, 74, 74, 91, 62, 53, 66, 65, 69, 85, 69, 87, 58, 60, 58, 66, 56, 67, 53, 64, 73, 62, 53, 66, 72, 68, 63, 60, 72, 58, 66, 80, 63, 89, 100, 56, 60, 77, 69, 73, 63, 60, 56, 60, 63, 64, 69, 54, 64, 66, 64, 57, 67, 64, 67, 74, 69, 62, 59, 67, 62, 58, 59, 55, 62, 67, 73, 60, 57, 60, 64, 50, 69, 63, 74, 87, 68, 68, 52, 62, 54, 53, 56, 70, 66, 111, 56, 55, 51, 55, 58, 61, 84, 75, 74, 60, 66, 64, 76, 70, 58, 44, 90, 69, 51, 67, 79, 70, 64, 67, 61, 57, 52, 73, 54, 62, 83, 73, 71, 48, 60, 74, 79, 62, 68, 65, 70, 67, 53, 57, 64, 77, 76, 58, 77, 47, 71, 83, 78, 63, 49, 54, 68, 52, 82, 64, 66, 62, 110, 66, 60, 52, 66, 59, 57, 57, 73, 54, 62, 66, 61, 65, 58, 60, 78, 53, 62, 59, 58, 63, 62, 77, 48, 56, 58, 61, 65, 62, 64, 87, 59, 65, 62, 70, 67, 66, 68, 57, 60, 62, 83, 66, 66, 61, 76, 76, 72, 60, 97, 62, 68, 63, 62, 64, 62, 62, 73, 57, 63, 67, 50, 67, 89, 61, 62, 60, 53, 65, 56, 62, 56, 56, 64, 72, 65, 53, 69, 72, 70, 65, 49, 57, 65, 56, 53, 53, 59, 62, 59, 62, 66, 86, 56, 77, 70, 64, 64, 58, 64, 62, 66, 66, 71, 99, 65, 61, 78, 78, 65, 56, 61, 63, 62, 64, 71, 65, 56, 67, 74, 114, 63, 65, 88, 73, 59, 74, 59, 51, 69, 59, 60, 62, 72, 57, 63, 71, 61, 62, 63, 62, 60, 71, 66, 90, 60, 65, 72, 73, 70, 65, 64, 65, 60, 64, 71, 65, 74, 68, 58, 53, 65, 58, 55, 54, 93, 57, 61, 59, 61, 84, 58, 65, 85, 59, 76, 56, 60, 64, 54, 81, 61, 60, 66, 56, 57, 58, 119, 68, 61, 62, 55, 60, 98, 61, 66, 65, 64, 60, 86, 61, 63, 72, 57, 57, 52, 79, 70, 65, 51, 60, 67, 61, 65, 61, 71, 59, 59, 67, 72, 74, 80, 72, 69, 70, 72, 60, 73, 59, 59, 63, 54, 81, 67, 62, 90, 83, 78, 64, 77, 68, 64, 55, 60, 59, 122, 102, 59, 85, 51, 63, 71, 60, 57, 60, 70, 67, 67, 53, 72, 63, 57, 61, 68, 58, 59, 56, 67, 63, 89, 64, 61, 66, 58, 64, 59, 72, 77, 63, 70, 58, 107, 69, 57, 56, 69, 61, 59, 59, 56, 61, 81, 102, 61, 66, 65, 61, 66, 85, 97, 58, 69, 70, 57, 63, 60, 66, 60, 79, 66, 57, 83, 56, 95, 63, 66, 61, 71, 68, 65, 59, 66, 64, 72, 66, 73, 60, 81, 61, 63, 60, 91, 69, 64, 53, 55, 54, 71, 69, 66, 66, 60, 62, 62, 56, 82, 68, 64, 72, 90, 63, 57, 87, 59, 58, 67, 61, 56, 102, 64, 69, 60, 56, 67, 64, 61, 58, 58, 59, 79, 78, 59, 64, 65, 73, 62, 83, 80, 80, 54, 66, 57, 50, 59, 49, 67, 59, 72, 61, 63, 61, 64, 86, 60, 65, 68, 59, 63, 66, 68, 64, 60, 61, 83, 61, 62, 59, 64, 67, 54, 85, 65, 53, 87, 59, 59, 65, 59, 50, 57, 83, 60, 72, 89, 57, 63, 60, 62, 61, 79, 61, 69, 65, 69, 57, 56, 70, 91, 70, 69, 62, 52, 69, 62, 64, 60, 73, 67, 67, 71, 61, 73, 64, 65, 80, 63, 71, 58, 57, 66, 64, 59, 52, 88, 56, 61, 56, 59, 60, 69, 107, 77, 59, 61, 62, 52, 60, 70, 61, 71, 68, 77, 89, 73, 64, 68, 68, 59, 75, 71, 70, 72, 63, 65, 61, 57, 62, 76, 57, 54, 81, 56, 70, 71, 59, 67, 51, 72, 60, 69, 65, 59, 61, 70, 78, 62, 69, 68, 59, 59, 64, 62, 73, 64, 54, 71, 60, 56, 58, 73, 68, 63, 57, 75, 60, 55, 58, 75, 66, 56, 80, 61, 65, 71, 59, 63, 52, 79, 59, 67, 65, 66, 86, 64, 78, 67, 74, 58, 68, 59, 49, 56, 63, 77, 64, 78, 67, 66, 54, 61, 74, 62, 56, 61, 58, 58, 69, 86, 61, 54, 70, 78, 76, 71, 65, 59, 61, 52, 60, 68, 59, 64, 72, 58, 69, 78, 55, 54, 59, 65, 58, 100, 62, 52, 82, 61, 58, 61, 66, 63, 62, 60, 98, 73, 83, 62, 60, 63, 60, 72, 113, 66, 73, 65, 66, 56, 64, 66, 92, 60, 97, 60, 55, 63, 57, 60, 62, 64, 57, 58, 60, 53, 52, 63, 58, 58, 75, 55, 58, 51, 68, 57, 60, 64, 60, 61, 54, 69, 55, 63, 60, 68, 60, 58, 64, 55, 67, 74, 55, 60, 63, 59, 56, 60, 64, 78, 95, 72, 55, 63, 56, 65, 61, 63, 77, 66, 53, 75, 61, 65, 54, 62, 54, 59, 64, 88, 62, 53, 63, 70, 59, 61, 65, 60, 61, 69, 56, 74, 63, 71, 67, 68, 57, 71, 75, 76, 55, 56, 49, 57, 60, 59, 70, 59, 58, 59, 62, 86, 74, 59, 75, 62, 77, 78, 115, 72, 73, 59, 60, 60, 65, 71, 67, 62, 61, 74, 74, 67, 62, 58, 74, 61, 77, 69, 59, 81, 59, 70, 77, 61, 57, 62, 65, 62, 97, 70, 83, 85, 69, 82, 53, 78, 60, 78, 62, 64, 66, 67, 63, 71, 65, 67, 77, 63, 83, 63, 84, 58, 77, 62, 57, 82, 60, 64, 67, 63, 68, 67, 57, 61, 63, 76, 60, 58, 70, 72, 60, 66, 61, 59, 63, 70, 73, 76, 65, 70, 53, 77, 64, 52, 68, 60, 64, 82, 105, 62, 76, 60, 66, 76, 55, 70, 46, 61, 67, 58, 80, 72, 56, 55, 74, 63, 58, 62, 65, 56, 57, 99, 65, 65, 59, 57, 57, 76, 59, 59, 60, 62, 70, 61, 67, 56, 62, 69, 63, 69, 67, 67, 69, 67, 53, 72, 59, 75, 70, 69, 69, 78, 92, 57, 63, 68, 65, 75, 60, 66, 83, 62, 65, 67, 60, 56, 54, 60, 68, 57, 55, 59, 61, 66, 77, 62, 68, 80, 66, 60, 55, 68, 58, 105, 76, 63, 98, 58, 62, 61, 63, 60, 61, 51, 57, 61, 61, 49, 66, 53, 59, 63, 64, 61, 71, 59, 74, 60, 68, 68, 64, 58, 60, 64, 61, 66, 64, 60, 77, 69, 56, 58, 69, 67, 84, 67, 71, 58, 52, 65, 90, 78, 83, 60, 70, 64, 66, 63, 57, 57, 61, 68, 71, 76, 65, 54, 55, 87, 54, 66, 66, 66, 65, 65, 51, 72, 76, 63, 68, 64, 67, 85, 62, 65, 68, 58, 56, 67, 61, 64, 59, 63, 62, 94, 60, 72, 62, 76, 58, 74, 70, 56, 65, 75, 58, 66, 75, 49, 74, 80, 64, 60, 67, 58, 56, 68, 65, 74, 58, 67, 63, 58, 68, 63, 58, 64, 58, 60, 53, 68, 64, 65, 63, 60, 64, 70, 64, 62, 61, 96, 61, 81, 60, 59, 61, 59, 60, 86, 84, 53, 66, 55, 54, 56, 90, 54, 81, 71, 66, 91, 57, 61, 64, 53, 68, 75, 59, 60, 58, 54, 73, 63, 59, 66, 60, 67, 67, 77, 58, 107, 63, 79, 68, 51, 62, 55, 64, 72, 61, 64, 57, 53, 57, 62, 62, 78, 83, 60, 71, 68, 72, 70, 86, 75, 48, 71, 73, 61, 49, 67, 87, 67, 70, 81, 61, 65, 67, 73, 63, 64, 57, 76, 64, 58, 71, 63, 62, 51, 66, 71, 64, 63, 65, 71, 57, 55, 66, 65, 69, 56, 61, 44, 63, 52, 64, 55, 46, 80, 73, 61, 57, 67, 60, 56, 66, 60, 63, 75, 92, 57, 50, 64, 79, 73, 61, 55, 52, 77, 66, 68, 59, 61, 62, 63, 83, 57, 74, 52, 67, 57, 74, 67, 52, 56, 48, 68, 54, 52, 48, 68, 65, 64, 55, 63, 54, 58, 66, 48, 73, 73, 65, 67, 55, 59, 75, 59, 68, 61, 63, 64, 71, 94, 55, 59, 73, 70, 59, 79, 67, 77, 58, 61, 53, 100, 107, 61, 56, 69, 60, 85, 81, 59, 57, 72, 80, 59, 69, 65, 57, 77, 81, 56, 58, 82, 65, 94, 66, 69, 63, 66, 85, 73, 75, 65, 71, 53, 56, 60, 67, 82, 77, 56, 63, 148, 69, 55, 65, 73, 62, 60, 73, 45, 65, 49, 65, 48, 101, 66, 70, 66, 60, 67, 63, 59, 62, 59, 64, 65, 52, 83, 52, 53, 67, 57, 70, 76, 61, 55, 59, 78, 72, 46, 69, 75, 83, 62, 61, 65, 79, 85, 133, 57, 53, 62, 52, 81, 56, 59, 60, 100, 55, 60, 51, 61, 63, 64, 53, 71, 63, 99, 64, 62, 46, 65, 55, 59, 58, 60, 82, 64, 76, 81, 65, 74, 70, 102, 78, 59, 64, 69, 86, 55, 58, 61, 65, 71, 117, 66, 53, 67, 97, 47, 64, 62, 70, 68, 51, 94, 58, 52, 74, 59, 61, 58, 61, 65, 82, 54, 78, 48, 61, 61, 72, 61, 70, 61, 60, 77, 77, 58, 58, 60, 81, 57, 64, 60, 82, 60, 57, 76, 59, 59, 52, 49, 53, 60, 60, 71, 65, 82, 67, 76, 63, 63, 67, 60, 66, 85, 60, 66, 54, 68, 55, 50, 57, 65, 91, 63, 56, 64, 59, 101, 64, 65, 55, 62, 78, 75, 60, 50, 80, 53, 63, 63, 72, 62, 64, 53, 56, 78, 59, 54, 65, 62, 69, 53, 86, 81, 56, 65, 68, 61, 72, 61, 60, 56, 55, 70, 50, 58, 59, 73, 57, 74, 84, 68, 58, 48, 62, 40, 60, 69, 56, 93, 71, 67, 64, 69, 118, 58, 61, 68, 69, 53, 130, 88, 65, 97, 56, 101, 84, 55, 59, 46, 61, 58, 90, 62, 59, 62, 53, 57, 61, 58, 66, 62, 82, 78, 52, 127, 81, 57, 76, 61, 55, 77, 59, 69, 71, 65, 52, 59, 104, 72, 60, 84, 61, 78, 47, 102, 62, 50, 66, 68, 64, 66, 79, 62, 98, 65, 63, 78, 50, 52, 58, 90, 62, 65, 65, 70, 56, 54, 65, 60, 64, 74, 76, 101, 77, 64, 55, 55, 65, 82, 73, 67, 57, 63, 47, 78, 54, 65, 66, 54, 69, 52, 67, 62, 49, 62, 57, 80, 63, 63, 74, 59, 68, 62, 58, 76, 82, 80, 56, 50, 70, 57, 66, 59, 57, 66, 70, 53, 87, 58, 62, 70, 63, 66, 63, 51, 63, 52, 56, 63, 69, 58, 84, 66, 55, 58, 49, 85, 55, 56, 62, 49, 57, 81, 63, 62, 68, 62, 73, 61, 68, 69, 84, 64, 70, 56, 64, 67, 62, 66, 58, 48, 76, 64, 53, 58, 47, 80, 64, 61, 62, 55, 50, 53, 49, 72, 63, 56, 77, 58, 61, 79, 59, 69, 54, 80, 59, 60, 65, 63, 69, 60, 62, 74, 61, 60, 58, 58, 87, 65, 77, 65, 52, 70, 58, 56, 72, 60, 85, 54, 65, 57, 62, 56, 67, 57, 61, 62, 62, 68, 63, 42, 62, 63, 50, 99, 60, 65, 66, 65, 50, 64, 55, 81, 69, 51, 54, 62, 80, 85, 60, 64, 76, 68, 58, 50, 67, 66, 72, 63, 59, 73, 77, 69, 58, 61, 58, 67, 84, 62, 54, 70, 56, 69, 51, 58, 81, 68, 53, 71, 51, 51, 64, 73, 82, 64, 48, 73, 59, 82, 60, 57, 60, 68, 59, 57, 74, 56, 97, 59, 85, 55, 60, 51, 64, 69, 71, 67, 49, 52, 62, 65, 68, 66, 81, 59, 54, 67, 71, 69, 86, 63, 71, 58, 60, 60, 75, 64, 64, 68, 69, 74, 58, 62, 75, 56, 59, 62, 68, 76, 115, 62, 58, 63, 48, 54, 42, 59, 64, 68, 61, 61, 70, 74, 59, 60, 57, 73, 71, 69, 76, 59, 80, 54, 65, 59, 61, 52, 50, 72, 65, 63, 71, 60, 61, 49, 68, 51, 61, 79, 57, 94, 81, 58, 64, 73, 52, 60, 50, 69, 57, 59, 51, 75, 67, 64, 53, 55, 55, 52, 57, 63, 79, 56, 61, 62, 64, 89, 75, 72, 75, 66, 74, 56, 58, 55, 73, 79, 78, 85, 74, 57, 61, 65, 58, 108, 61, 73, 61, 66, 75, 48, 51, 63, 65, 64, 62, 53, 61, 68, 65, 60, 65, 51, 51, 73, 112, 53, 71, 71, 63, 60, 60, 72, 59, 111, 55, 52, 54, 50, 55, 61, 60, 59, 81, 79, 51, 53, 86, 73, 60, 64, 61, 62, 93, 75, 59, 69, 53, 62, 62, 67, 65, 47, 109, 65, 73, 60, 59, 55, 99, 52, 58, 62, 106, 87, 68, 61, 59, 56, 89, 68, 60, 59, 47, 64, 70, 70, 66, 62, 76, 54, 61, 61, 65, 69, 56, 61, 71, 58, 61, 74, 64, 72, 63, 74, 57, 62, 54, 76, 60, 71, 57, 58, 52, 123, 67, 87, 64, 73, 60, 68, 58, 87, 63, 59, 75, 70, 79, 77, 61, 58, 95, 66, 66, 81, 66, 64, 54, 76, 63, 65, 74, 70, 68, 62, 61, 58, 49, 60, 79, 75, 75, 55, 57, 71, 57, 63, 62, 65, 65, 72, 55, 56, 56, 62, 55, 56, 82, 68, 68, 66, 62, 71, 87, 62, 69, 63, 60, 75, 77, 83, 74, 62, 58, 57, 67, 75, 63, 58, 64, 61, 75, 65, 57, 60, 69, 53, 62, 83, 58, 103, 62, 65, 63, 66, 73, 83, 64, 51, 65, 96, 56, 56, 54, 66, 86, 62, 70, 69, 58, 56, 67, 68, 56, 45, 55, 50, 68, 67, 106, 70, 71, 82, 67, 50, 59, 54, 49, 62, 48, 100, 61, 73, 77, 69, 55, 69, 63, 58, 73, 62, 93, 72, 72, 62, 57, 60, 62, 66, 53, 107, 68, 56, 72, 50, 54, 66, 67, 43, 58, 72, 51, 62, 59, 56, 73, 56, 68, 58, 55, 65, 82, 71, 57, 61, 50, 71, 67, 83, 52, 49, 56, 90, 77, 93, 77, 73, 52, 63, 60, 60, 62, 53, 63, 63, 68, 70, 53, 72, 70, 54, 73, 58, 69, 76, 56, 52, 65, 55, 78, 63, 61, 60, 66, 56, 63, 57, 68, 61, 61, 90, 53, 64, 71, 62, 71, 94, 67, 61, 78, 56, 59, 76, 102, 60, 58, 62, 69, 62, 54, 51, 58, 63, 62, 80, 64, 53, 76, 107, 63, 58, 67, 54, 71, 77, 59, 46, 55, 58, 120, 63, 56, 72, 77, 69, 54, 63, 79, 81, 61, 64, 74, 156, 66, 64, 54, 50, 55, 67, 65, 66, 56, 52, 62, 67, 66, 62, 63, 52, 51, 62, 63, 56, 56, 69, 59, 77, 62, 60, 72, 61, 57, 60, 82, 92, 66, 49, 55, 81, 74, 66, 67, 112, 65, 57, 63, 65, 80, 64, 127, 64, 56, 67, 59, 74, 63, 62, 60, 93, 57, 59, 65, 73, 60, 55, 62, 81, 62, 62, 56, 69, 57, 60, 76, 68, 81, 61, 58, 62, 64, 82, 71, 69, 59, 64, 65, 57, 66, 75, 70, 62, 63, 72, 58, 57, 99, 77, 64, 57, 63, 60, 59, 87, 54, 67, 61, 64, 57, 56, 71, 55, 61, 55, 60, 58, 84, 75, 95, 58, 59, 55, 57, 50, 98, 68, 65, 103, 70, 61, 55, 63, 61, 59, 86, 56, 83, 87, 69, 103, 48, 57, 57, 73, 65, 71, 62, 62, 76, 101, 72, 71, 56, 68, 69, 59, 57, 94, 72, 64, 52, 68, 64, 63, 69, 63, 94, 51, 58, 76, 72, 119, 56, 67, 60, 68, 69, 63, 54, 59, 81, 66, 60, 56, 62, 55, 65, 57, 64, 79, 70, 71, 55, 51, 64, 66, 73, 68, 67, 70, 77, 62, 59, 72, 67, 63, 64, 63, 66, 63, 63, 64, 53, 58, 56, 56, 62, 59, 61, 50, 60, 54, 59, 78, 95, 65, 68, 47, 125, 61, 53, 63, 61, 65, 94, 62, 66, 65, 57, 83, 84, 86, 65, 63, 63, 54, 86, 64, 65, 84, 58, 67, 63, 57, 63, 62, 80, 52, 55, 55, 91, 70, 63, 52, 57, 71, 61, 71, 59, 69, 91, 68, 69, 73, 57, 77, 56, 55, 61, 96, 54, 58, 65, 56, 74, 69, 54, 71, 69, 60, 46, 58, 56, 66, 61, 78, 72, 60, 64, 52, 63, 70, 79, 57, 69, 91, 50, 100, 55, 65, 57, 68, 77, 82, 78, 58, 50, 56, 64, 75, 64, 75, 65, 43, 54, 60, 77, 56, 52, 68, 59, 66, 62, 53, 62, 59, 69, 64, 63, 56, 57, 69, 60, 69, 53, 76, 59, 56, 70, 61, 61, 80, 52, 65, 61, 57, 71, 55, 57, 69, 61, 74, 57, 49, 54, 63, 68, 50, 73, 63, 77, 96, 72, 58, 69, 59, 66, 61, 87, 49, 62, 51, 75, 73, 60, 86, 81, 79, 66, 60, 61, 54, 62, 63, 64, 80, 80, 66, 62, 60, 81, 69, 45, 70, 55, 61, 74, 61, 56, 55, 64, 65, 78, 64, 70, 68, 89, 60, 47, 70, 57, 69, 64, 59, 70, 48, 60, 49, 65, 55, 56, 88, 100, 66, 63, 61, 79, 55, 62, 58, 96, 61, 81, 61, 61, 67, 74, 55, 61, 57, 60, 57, 93, 64, 56, 89, 73, 54, 59, 62, 64, 70, 60, 69, 71, 89, 62, 74, 98, 62, 59, 68, 66, 65, 54, 61, 58, 75, 53, 61, 49, 54, 58, 44, 55, 84, 65, 59, 70, 54, 80, 62, 70, 63, 66, 67, 65, 75, 51, 53, 46, 57, 50, 73, 61, 55, 54, 63, 92, 53, 57, 61, 63, 83, 74, 63, 56, 52, 57, 68, 54, 53, 85, 55, 68, 67, 56, 57, 43, 64, 69, 100, 57, 66, 63, 60, 55, 68, 64, 55, 58, 68, 72, 77, 90, 71, 93, 60, 77, 53, 75, 64, 55, 57, 67, 67, 54, 67, 61, 73, 48, 53, 67, 60, 68, 71, 58, 49, 47, 46, 56, 71, 57, 59, 57, 89, 61, 54, 67, 59, 58, 76, 71, 53, 96, 65, 56, 61, 75, 53, 69, 68, 65, 53, 55, 41, 60, 59, 63, 64, 61, 64, 58, 75, 63, 87, 75, 56, 62, 56, 61, 64, 55, 76, 60, 61, 70, 76, 66, 52, 68, 70, 63, 58, 57, 73, 54, 65, 60, 58, 73, 75, 53, 67, 73, 74, 85, 69, 47, 74, 100, 57, 70, 76, 70, 60, 50, 61, 54, 76, 51, 57, 64, 77, 58, 73, 67, 69, 66, 63, 65, 65, 50, 64, 57, 73, 56, 71, 58, 82, 77, 58, 63, 59, 57, 63, 58, 48, 63, 56, 63, 71, 42, 62, 63, 60, 59, 68, 64, 84, 56, 40, 71, 70, 65, 59, 66, 58, 45, 73, 66, 73, 56, 58, 52, 64, 61, 85, 94, 61, 75, 62, 63, 68, 88, 83, 77, 56, 88, 56, 69, 55, 61, 65, 63, 70, 71, 59, 91, 61, 53, 76, 61, 48, 68, 69, 59, 50, 65, 50, 64, 53, 54, 64, 66, 122, 62, 68, 58, 51, 71, 69, 58, 66, 85, 71, 59, 81, 70, 78, 69, 73, 66, 69, 71, 77, 77, 59, 62, 57, 66, 64, 88, 81, 55, 64, 50, 70, 63, 79, 65, 81, 56, 72, 52, 126, 56, 66, 56, 62, 63, 64, 72, 56, 77, 55, 66, 57, 62, 72, 65, 61, 61, 63, 62, 62, 62, 49, 85, 58, 61, 51, 85, 69, 49, 57, 92, 51, 79, 72, 65, 65, 48, 56, 50, 87, 52, 71, 62, 60, 63, 53, 58, 60, 66, 63, 67, 76, 61, 52, 51, 65, 80, 50, 72, 60, 54, 50, 55, 56, 63, 48, 69, 73, 53, 77, 74, 61, 57, 58, 94, 60, 56, 53, 83, 67, 56, 47, 58, 59, 58, 52, 72, 81, 81, 64, 113, 73, 61, 58, 79, 60, 62, 47, 58, 94, 88, 64, 68, 60, 58, 70, 43, 56, 60, 93, 84, 81, 86, 67, 58, 63, 71, 54, 54, 75, 57, 57, 71, 81, 68, 57, 88, 65, 62, 52, 68, 82, 61, 59, 65, 62, 50, 50, 79, 59, 89, 83, 57, 66, 67, 65, 56, 71, 57, 63, 67, 63, 94, 77, 111, 67, 57, 52, 45, 50, 60, 80, 79, 100, 63, 61, 94, 51, 68, 59, 59, 60, 72, 60, 63, 65, 50, 60, 76, 49, 64, 52, 62, 130, 74, 80, 57, 72, 65, 93, 62, 63, 53, 52, 57, 67, 61, 61, 62, 53, 62, 92, 110, 77, 62, 84, 72, 71, 62, 68, 43, 60, 74, 71, 68, 50, 59, 64, 71, 60, 56, 78, 60, 69, 64, 65, 58, 66, 70, 69, 60, 51, 73, 65, 55, 63, 79, 74, 53, 54, 71, 160, 73, 65, 67, 53, 92, 44, 64, 41, 71, 62, 60, 69, 81, 45, 70, 50, 77, 58, 57, 57, 59, 61, 66, 77, 57, 80, 68, 54, 55, 67, 61, 67, 54, 60, 61, 60, 61, 66, 74, 102, 61, 53, 65, 56, 58, 60, 111, 69, 92, 80, 86, 66, 93, 76, 55, 83, 56, 67, 68, 68, 60, 69, 69, 75, 64, 71, 47, 68, 57, 76, 55, 51, 69, 59, 60, 53, 60, 83, 65, 49, 60, 100, 52, 56, 60, 80, 85, 55, 85, 44, 55, 79, 56, 76, 71, 62, 70, 61, 48, 85, 73, 42, 73, 62, 51, 48, 67, 62, 58, 65, 71, 56, 71, 52, 84, 68, 59, 57, 64, 52, 80, 64, 63, 63, 72, 61, 59, 55, 56, 65, 66, 67, 78, 58, 69, 74, 70, 69, 49, 71, 61, 78, 48, 79, 56, 80, 68, 73, 59, 57, 67, 54, 49, 113, 68, 61, 73, 61, 61, 55, 73, 57, 70, 64, 64, 92, 56, 120, 63, 67, 62, 70, 89, 74, 71, 56, 56, 47, 60, 67, 62, 55, 65, 103, 58, 79, 53, 69, 67, 60, 77, 74, 82, 55, 63, 52, 63, 80, 79, 68, 68, 74, 73, 63, 73, 59, 57, 53, 71, 66, 71, 64, 86, 58, 69, 71, 67, 82, 61, 75, 52, 58, 64, 68, 121, 56, 56, 74, 55, 75, 89, 67, 60, 98, 69, 51, 44, 50, 58, 63, 54, 68, 121, 70, 62, 75, 54, 57, 71, 59, 65, 62, 57, 61, 59, 90, 66, 68, 51, 56, 64, 57, 59, 57, 61, 52, 62, 56, 85, 73, 58, 71, 62, 61, 45, 75, 63, 70, 62, 68, 61, 73, 45, 72, 64, 65, 84, 53, 66, 63, 55, 74, 79, 69, 61, 66, 57, 65, 55, 62, 58, 88, 54, 88, 55, 85, 67, 56, 59, 51, 68, 59, 56, 54, 63, 68, 54, 64, 64, 85, 100, 64, 58, 57, 66, 51, 55, 81, 62, 60, 88, 82, 56, 74, 82, 79, 65, 70, 64, 73, 59, 59, 64, 59, 59, 71, 55, 57, 60, 72, 58, 87, 43, 58, 84, 81, 67, 67, 49, 74, 54, 69, 59, 44, 61, 61, 60, 63, 77, 81, 97, 69, 60, 68, 89, 51, 85, 66, 41, 54, 59, 73, 72, 58, 56, 62, 76, 71, 71, 42, 52, 79, 45, 46, 54, 80, 83, 72, 56, 77, 56, 61, 56, 53, 72, 75, 67, 60, 63, 63, 86, 69, 55, 72, 61, 72, 56, 57, 73, 67, 67, 70, 65, 59, 82, 78, 55, 55, 72, 63, 84, 93, 50, 78, 58, 64, 91, 69, 77, 64, 59, 63, 76, 61, 63, 69, 61, 55, 52, 77, 57, 76, 79, 55, 84, 63, 73, 52, 59, 77, 68, 94, 61, 68, 88, 93, 72, 70, 95, 56, 55, 87, 58, 48, 61, 64, 73, 67, 75, 68, 58, 72, 53, 89, 66, 48, 62, 55, 96, 73, 54, 58, 57, 50, 79, 58, 52, 68, 69, 69, 78, 66, 59, 88, 103, 60, 75, 69, 64, 74, 54, 47, 80, 95, 65, 67, 92, 52, 77, 97, 67, 74, 74, 66, 67, 55, 56, 84, 55, 40, 77, 61, 59, 64, 65, 68, 64, 55, 74, 53, 44, 70, 121, 72, 80, 53, 51, 55, 60, 65, 66, 87, 83, 47, 50, 56, 74, 70, 61, 72, 58, 72, 64, 51, 90, 69, 73, 63, 73, 54, 56, 61, 82, 49, 63, 52, 57, 59, 79, 59, 96, 59, 55, 55, 55, 61, 55, 66, 73, 61, 62, 68, 66, 61, 56, 67, 64, 63, 93, 71, 71, 77, 70, 57, 63, 58, 63, 55, 70, 58, 66, 69, 59, 62, 54, 60, 57, 56, 61, 65, 61, 59, 62, 71, 75, 65, 75, 77, 62, 67, 60, 73, 74, 60, 42, 71, 61, 59, 54, 58, 71, 59, 56, 52, 54, 84, 47, 67, 59, 61, 59, 91, 57, 54, 57, 47, 54, 99, 64, 73, 63, 60, 92, 78, 57, 66, 101, 57, 55, 66, 61, 63, 61, 54, 62, 97, 62, 56, 80, 67, 66, 70, 67, 60, 86, 69, 68, 53, 66, 81, 69, 62, 53, 52, 64, 69, 48, 76, 57, 67, 64, 69, 57, 75, 111, 66, 64, 56, 55, 62, 68, 54, 71, 61, 102, 51, 57, 58, 53, 59, 58, 82, 58, 57, 67, 64, 68, 52, 62, 61, 60, 56, 61, 60, 67, 63, 76, 59, 56, 52, 73, 74, 65, 61, 64, 62, 66, 82, 53, 63, 71, 43, 66, 91, 66, 63, 66, 66, 65, 47, 75, 60, 66, 87, 52, 68, 64, 50, 64, 60, 47, 51, 62, 65, 59, 56, 55, 64, 60, 61, 65, 80, 68, 70, 61, 75, 66, 67, 56, 70, 66, 62, 56, 57, 84, 57, 59, 61, 61, 59, 50, 59, 75, 52, 95, 94, 82, 51, 78, 89, 53, 57, 64, 83, 75, 80, 57, 54, 86, 50, 52, 71, 52, 81, 66, 65, 66, 57, 54, 41, 84, 64, 56, 59, 62, 46, 76, 64, 57, 45, 83, 55, 70, 53, 88, 45, 71, 53, 87, 61, 64, 52, 55, 72, 69, 107, 64, 67, 64, 53, 54, 53, 55, 65, 73, 77, 53, 60, 47, 60, 57, 65, 70, 74, 77, 60, 49, 74, 58, 69, 75, 59, 60, 47, 55, 57, 57, 65, 53, 58, 66, 45, 61, 64, 83, 74, 66, 81, 66, 80, 55, 63, 118, 93, 63, 60, 68, 61, 73, 70, 70, 64, 94, 75, 54, 56, 64, 62, 90, 61, 64, 68, 56, 104, 61, 62, 58, 73, 72, 55, 40, 61, 53, 64, 77, 48, 58, 67, 71, 60, 47, 72, 115, 85, 83, 73, 57, 67, 54, 64, 63, 83, 69, 88, 52, 64, 76, 82, 67, 54, 51, 81, 50, 71, 78, 97, 54, 111, 76, 56, 79, 67, 39, 65, 71, 87, 48, 47, 72, 95, 68, 38, 72, 67, 65, 156, 64, 64, 59, 61, 68, 57, 68, 77, 58, 54, 73, 50, 53, 68, 68, 58, 70, 67, 44, 73, 46, 59, 59, 64, 83, 55, 65, 80, 59, 66, 69, 63, 42, 55, 67, 60, 58, 36, 48, 68, 79, 54, 72, 71, 69, 74, 67, 76, 75, 48, 57, 65, 59, 57, 76, 62, 76, 66, 77, 63, 61, 72, 51, 84, 58, 86, 50, 59, 53, 51, 76, 62, 74, 109, 81, 59, 82, 56, 66, 69, 65, 56, 87, 53, 47, 56, 62, 62, 67, 64, 63, 74, 55, 72, 73, 48, 71, 42, 71, 51, 76, 62, 49, 57, 65, 49, 53, 74, 62, 71, 57, 54, 59, 49, 73, 58, 63, 118, 79, 59, 88, 70, 68, 67, 68, 64, 65, 68, 72, 61, 71, 71, 77, 78, 68, 63, 84, 60, 68, 75, 65, 113, 68, 49, 47, 71, 46, 48, 56, 92, 56, 60, 50, 72, 64, 69, 69, 74, 55, 52, 62, 74, 80, 61, 79, 61, 76, 53, 70, 48, 88, 70, 79, 48, 66, 71, 82, 79, 66, 82, 62, 61, 49, 50, 56, 54, 48, 94, 75, 54, 59, 99, 74, 77, 77, 92, 52, 55, 64, 59, 52, 61, 66, 51, 62, 71, 62, 79, 44, 86, 59, 56, 70, 56, 70, 62, 72, 71, 76, 65, 73, 66, 58, 55, 70, 60, 66, 47, 59, 94, 51, 56, 78, 65, 88, 67, 80, 67, 75, 62, 62, 51, 62, 44, 53, 46, 54, 62, 71, 82, 62, 64, 68, 66, 60, 63, 82, 85, 59, 65, 81, 73, 60, 58, 48, 64, 96, 73, 74, 84, 69, 57, 53, 77, 69, 59, 52, 62, 90, 77, 74, 41, 77, 62, 58, 68, 67, 70, 74, 67, 75, 58, 72, 64, 76, 72, 47, 59, 86, 65, 69, 116, 70, 47, 58, 65, 61, 64, 62, 61, 60, 65, 85, 57, 77, 68, 66, 90, 81, 50, 61, 65, 53, 43, 53, 75, 68, 69, 58, 61, 89, 62, 75, 61, 76, 75, 55, 62, 44, 66, 55, 58, 74, 75, 52, 61, 80, 49, 62, 55, 66, 58, 59, 84, 48, 80, 62, 48, 66, 41, 61, 56, 67, 65, 66, 71, 57, 86, 61, 64, 52, 57, 68, 81, 62, 69, 53, 61, 40, 77, 84, 57, 40, 77, 53, 75, 66, 57, 55, 53, 77, 76, 57, 70, 47, 70, 54, 68, 60, 74, 56, 77, 59, 67, 64, 66, 79, 62, 113, 56, 54, 88, 73, 133, 61, 63, 47, 57, 69, 64, 56, 62, 48, 77, 83, 70, 60, 72, 50, 52, 49, 50, 98, 79, 47, 71, 66, 63, 67, 62, 43, 60, 74, 61, 77, 69, 56, 84, 62, 71, 74, 74, 58, 66, 72, 90, 83, 72, 54, 81, 76, 67, 81, 62, 69, 67, 60, 65, 55, 60, 48, 73, 50, 65, 71, 58, 85, 60, 57, 79, 94, 59, 59, 65, 96, 43, 56, 66, 61, 70, 97, 88, 50, 66, 68, 66, 49, 65, 60, 48, 79, 68, 79, 66, 52, 72, 56, 59, 56, 64, 56, 56, 57, 67, 51, 63, 78, 56, 63, 83, 62, 86, 73, 70, 59, 64, 63, 73, 70, 85, 61, 62, 52, 89, 48, 74, 95, 73, 70, 53, 65, 69, 59, 67, 44, 67, 56, 54, 60, 70, 67, 72, 64, 57, 85, 75, 55, 58, 59, 60, 63, 83, 66, 69, 61, 79, 69, 127, 44, 63, 49, 80, 54, 77, 130, 63, 62, 70, 49, 77, 61, 74, 46, 64, 67, 63, 62, 72, 72, 67, 54, 54, 48, 80, 79, 72, 85, 89, 79, 71, 61, 50, 67, 61, 51, 71, 49, 68, 69, 96, 55, 69, 72, 53, 69, 64, 66, 74, 55, 97, 50, 90, 61, 59, 51, 57, 85, 70, 58, 59, 65, 52, 50, 41, 64, 75, 68, 56, 73, 96, 76, 60, 52, 51, 59, 49, 60, 63, 55, 70, 52, 56, 65, 51, 61, 69, 74, 60, 71, 64, 57, 63, 53, 67, 59, 66, 60, 62, 88, 68, 87, 65, 69, 66, 50, 55, 75, 61, 65, 90, 65, 48, 54, 57, 53, 65, 78, 65, 63, 72, 66, 60, 44, 71, 58, 63, 72, 59, 49, 69, 72, 63, 61, 74, 58, 73, 76, 68, 77, 62, 68, 73, 63, 70, 65, 83, 63, 62, 57, 54, 77, 86, 68, 70, 54, 58, 82, 61, 52, 76, 62, 44, 52, 59, 64, 83, 59, 53, 74, 59, 47, 64, 62, 59, 65, 48, 65, 63, 62, 72, 71, 56, 68, 50, 86, 64, 50, 69, 59, 70, 88, 56, 44, 56, 56, 84, 74, 88, 55, 63, 80, 68, 67, 54, 67, 122, 77, 70, 67, 46, 79, 59, 65, 68, 58, 52, 45, 84, 65, 50, 55, 67, 84, 65, 58, 72, 59, 50, 52, 51, 66, 87, 79, 50, 60, 67, 58, 73, 67, 74, 71, 60, 65, 50, 66, 55, 57, 94, 55, 133, 77, 63, 70, 65, 55, 56, 70, 61, 69, 86, 69, 63, 60, 68, 57, 70, 59, 54, 58, 59, 71, 55, 94, 63, 58, 66, 66, 56, 64, 46, 58, 64, 60, 77, 60, 66, 88, 84, 57, 69, 59, 88, 118, 63, 58, 55, 60, 66, 86, 71, 73, 59, 67, 59, 79, 80, 57, 58, 83, 64, 66, 49, 77, 68, 58, 79, 76, 101, 58, 54, 55, 85, 68, 55, 63, 65, 57, 61, 65, 62, 70, 60, 69, 93, 66, 72, 52, 71, 67, 61, 52, 74, 64, 69, 53, 67, 74, 81, 66, 85, 66, 83, 65, 66, 70, 68, 65, 59, 75, 55, 50, 63, 64, 67, 83, 59, 53, 78, 64, 76, 80, 63, 58, 60, 70, 89, 79, 69, 63, 81, 53, 81, 46, 53, 74, 66, 79, 62, 64, 83, 67, 100, 63, 48, 72, 74, 62, 61, 48, 59, 79, 58, 57, 69, 49, 64, 63, 70, 75, 69, 91, 78, 72, 61, 54, 67, 61, 68, 45, 67, 70, 57, 49, 58, 57, 62, 86, 72, 55, 58, 60, 67, 87, 76, 97, 98, 90, 61, 78, 45, 70, 53, 53, 67, 77, 80, 55, 57, 67, 57, 57, 40, 79, 70, 54, 63, 57, 45, 66, 65, 61, 66, 58, 63, 68, 62, 65, 88, 64, 41, 54, 86, 70, 46, 64, 56, 51, 64, 55, 43, 59, 75, 61, 56, 55, 62, 47, 55, 60, 75, 56, 56, 88, 59, 69, 82, 53, 76, 65, 65, 40, 84, 54, 40, 77, 54, 54, 63, 69, 74, 75, 67, 59, 57, 53, 53, 77, 58, 82, 73, 52, 64, 79, 97, 70, 51, 78, 108, 114, 69, 50, 60, 64, 50, 67, 55, 67, 69, 57, 68, 58, 96, 72, 62, 64, 75, 53, 73, 72, 62, 69, 73, 62, 57, 61, 65, 84, 58, 79, 61, 57, 83, 78, 62, 73, 59, 76, 61, 61, 78, 81, 75, 60, 81, 82, 60, 58, 57, 79, 53, 71, 74, 62, 77, 90, 58, 80, 48, 81, 67, 68, 60, 77, 49, 66, 105, 71, 45, 67, 76, 55, 56, 72, 91, 76, 54, 73, 70, 62, 63, 89, 65, 72, 58, 77, 67, 54, 60, 75, 54, 63, 60, 67, 67, 54, 51, 84, 56, 58, 81, 41, 69, 62, 70, 70, 57, 120, 64, 63, 63, 56, 82, 50, 65, 89, 95, 97, 59, 79, 64, 42, 60, 73, 56, 81, 67, 62, 92, 69, 48, 54, 64, 73, 54, 59, 75, 87, 48, 59, 50, 79, 59, 95, 95, 62, 60, 68, 55, 64, 48, 53, 49, 63, 71, 58, 60, 68, 54, 90, 60, 63, 46, 61, 59, 43, 75, 76, 57, 62, 72, 56, 67, 71, 86, 81, 71, 54, 84, 90, 69, 59, 62, 72, 62, 63, 52, 62, 63, 64, 61, 70, 70, 78, 94, 63, 66, 56, 126, 62, 52, 55, 69, 75, 87, 62, 75, 78, 65, 64, 47, 47, 53, 65, 63, 94, 58, 78, 74, 52, 70, 68, 49, 48, 75, 78, 63, 48, 57, 47, 53, 80, 81, 59, 66, 52, 68, 69, 63, 77, 63, 81, 83, 67, 65, 59, 69, 70, 55, 58, 94, 64, 53, 82, 44, 56, 96, 58, 53, 62, 52, 68, 64, 56, 54, 61, 90, 59, 67, 68, 53, 67, 61, 115, 60, 58, 53, 67, 82, 44, 62, 65, 66, 73, 68, 54, 63, 58, 50, 81, 67, 58, 69, 63, 59, 52, 64, 52, 77, 82, 71, 52, 56, 80, 70, 50, 79, 58, 73, 47, 74, 78, 48, 47, 44, 46, 99, 66, 112, 50, 58, 40, 80, 96, 55, 71, 55, 53, 64, 82, 66, 54, 103, 77, 66, 68, 73, 94, 80, 46, 57, 87, 65, 82, 93, 65, 59, 68, 53, 58, 58, 65, 57, 59, 65, 65, 78, 80, 79, 62, 70, 72, 52, 80, 42, 69, 69, 66, 57, 64, 77, 64, 72, 66, 78, 105, 55, 62, 64, 63, 62, 64, 63, 51, 54, 62, 81, 59, 53, 73, 103, 50, 55, 76, 66, 43, 65, 60, 69, 60, 78, 104, 60, 58, 106, 83, 58, 85, 61, 68, 59, 81, 41, 49, 47, 72, 65, 58, 62, 56, 56, 63, 81, 55, 47, 74, 59, 58, 61, 53, 70, 73, 55, 88, 47, 62, 58, 55, 56, 75, 68, 48, 74, 56, 48, 50, 75, 65, 98, 94, 74, 63, 59, 51, 74, 71, 68, 65, 69, 50, 64, 74, 62, 58, 60, 65, 68, 62, 54, 62, 70, 57, 83, 63, 43, 79, 67, 79, 52, 69, 35, 47, 85, 63, 56, 82, 72, 101, 46, 53, 68, 58, 102, 82, 52, 66, 58, 61, 67, 71, 56, 68, 85, 56, 59, 74, 77, 69, 70, 57, 48, 96, 61, 74, 68, 52, 83, 50, 60, 69, 59, 72, 73, 61, 71, 73, 56, 58, 54, 41, 107, 56, 79, 76, 63, 61, 61, 76, 47, 63, 56, 112, 58, 46, 59, 55, 58, 56, 72, 41, 60, 72, 57, 80, 61, 48, 66, 52, 53, 63, 57, 82, 61, 89, 61, 84, 55, 65, 64, 50, 56, 56, 72, 88, 68, 64, 85, 68, 69, 72, 56, 69, 60, 71, 72, 71, 59, 58, 56, 61, 69, 54, 63, 123, 82, 100, 60, 86, 61, 50, 59, 57, 66, 61, 60, 56, 76, 54, 67, 48, 98, 76, 67, 56, 73, 65, 64, 51, 54, 59, 64, 54, 76, 66, 65, 70, 48, 51, 92, 51, 113, 65, 57, 49, 74, 66, 51, 63, 79, 59, 59, 60, 74, 61, 72, 95, 55, 86, 65, 60, 68, 86, 69, 55, 70, 50, 54, 63, 71, 59, 83, 61, 74, 59, 66, 64, 48, 57, 63, 76, 71, 84, 50, 72, 89, 66, 73, 92, 70, 61, 60, 66, 56, 73, 53, 69, 64, 73, 59, 71, 92, 68, 70, 119, 67, 71, 85, 61, 49, 78, 72, 62, 71, 58, 47, 70, 60, 70, 59, 61, 57, 56, 53, 59, 57, 60, 46, 62, 54, 62, 111, 73, 57, 45, 62, 56, 75, 62, 71, 57, 50, 64, 137, 58, 69, 69, 65, 58, 47, 50, 47, 49, 63, 46, 79, 56, 59, 50, 51, 59, 70, 61, 65, 69, 80, 62, 81, 68, 63, 73, 65, 74, 36, 67, 60, 79, 53, 103, 87, 37, 63, 51, 65, 60, 73, 83, 57, 55, 53, 59, 59, 74, 61, 123, 82, 85, 83, 63, 54, 64, 60, 51, 45, 57, 82, 81, 78, 63, 56, 74, 78, 49, 51, 46, 64, 59, 72, 76, 60, 51, 84, 77, 71, 70, 55, 65, 84, 49, 70, 56, 69, 70, 88, 69, 75, 73, 48, 73, 75, 84, 86, 60, 57, 65, 67, 66, 67, 67, 64, 54, 58, 77, 47, 79, 80, 65, 68, 46, 50, 83, 90, 69, 58, 68, 70, 50, 64, 89, 85, 62, 57, 65, 82, 56, 67, 56, 58, 82, 69, 67, 69, 71, 71, 58, 66, 50, 72, 55, 76, 72, 66, 65, 83, 72, 96, 48, 143, 73, 64, 68, 67, 73, 67, 50, 56, 64, 64, 73, 58, 65, 48, 56, 75, 56, 62, 103, 69, 79, 58, 60, 58, 87, 63, 123, 66, 71, 70, 81, 40, 59, 56, 86, 73, 67, 87, 58, 97, 66, 77, 66, 102, 60, 67, 45, 71, 60, 49, 56, 65, 63, 59, 68, 80, 55, 70, 71, 70, 72, 112, 54, 79, 101, 60, 62, 75, 74, 89, 77, 64, 43, 73, 52, 60, 51, 100, 58, 54, 74, 78, 34, 60, 54, 70, 86, 62, 59, 76, 55, 76, 60, 56, 47, 48, 67, 104, 53, 68, 71, 76, 61, 46, 77, 71, 53, 64, 96, 63, 39, 80, 56, 54, 49, 65, 59, 65, 56, 51, 74, 88, 54, 56, 49, 54, 52, 44, 87, 62, 53, 83, 71, 60, 78, 119, 98, 77, 69, 81, 91, 51, 54, 65, 61, 61, 64, 55, 41, 67, 80, 64, 60, 86, 73, 105, 64, 69, 68, 49, 79, 76, 70, 41, 65, 63, 55, 52, 69, 69, 80, 87, 41, 71, 62, 76, 59, 51, 54, 128, 66, 52, 90, 50, 64, 83, 55, 50, 71, 90, 74, 50, 45, 47, 66, 50, 52, 87, 59, 74, 56, 70, 71, 73, 72, 73, 57, 75, 65, 58, 90, 72, 54, 57, 54, 60, 73, 67, 60, 70, 60, 67, 53, 63, 48, 69, 52, 58, 47, 59, 51, 57, 56, 55, 85, 60, 76, 84, 59, 54, 55, 84, 57, 69, 73, 46, 58, 64, 88, 73, 65, 60, 75, 96, 115, 81, 81, 62, 72, 72, 114, 58, 48, 52, 57, 75, 64, 61, 61, 57, 69, 66, 73, 65, 67, 68, 60, 39, 79, 71, 62, 59, 59, 58, 58, 51, 67, 53, 72, 56, 64, 63, 68, 60, 56, 60, 84, 60, 61, 53, 79, 47, 69, 64, 73, 71, 70, 60, 63, 68, 58, 70, 96, 64, 80, 72, 53, 71, 56, 67, 66, 65, 61, 67, 54, 58, 46, 65, 96, 97, 74, 106, 65, 49, 48, 93, 82, 64, 75, 64, 80, 68, 49, 50, 65, 81, 82, 69, 67, 51, 58, 56, 74, 71, 134, 56, 68, 62, 70, 57, 74, 71, 80, 90, 51, 65, 45, 64, 57, 67, 77, 67, 52, 69, 53, 67, 71, 43, 79, 48, 66, 54, 47, 60, 58, 78, 52, 79, 49, 65, 72, 67, 82, 83, 61, 54, 93, 54, 82, 57, 66, 53, 48, 79, 67, 73, 59, 70, 79, 61, 82, 62, 42, 57, 65, 65, 63, 53, 62, 49, 46, 82, 58, 61, 83, 64, 74, 86, 61, 52, 48, 46, 56, 47, 60, 60, 54, 54, 50, 71, 68, 99, 70, 63, 52, 50, 64, 65, 56, 81, 64, 46, 70, 61, 62, 74, 51, 78, 58, 69, 61, 113, 62, 75, 62, 62, 53, 70, 57, 71, 62, 60, 55, 89, 59, 51, 63, 74, 89, 79, 61, 61, 52, 59, 59, 75, 73, 78, 66, 100, 55, 65, 67, 58, 55, 71, 67, 50, 59, 72, 66, 59, 56, 54, 80, 64, 54, 48, 59, 57, 44, 50, 88, 63, 59, 75, 49, 80, 60, 61, 69, 69, 45, 59, 64, 63, 78, 59, 79, 48, 57, 69, 42, 86, 55, 83, 51, 86, 45, 54, 72, 88, 68, 64, 63, 93, 62, 62, 50, 49, 56, 99, 65, 80, 62, 73, 66, 49, 69, 45, 54, 38, 65, 59, 70, 63, 55, 48, 63, 79, 33, 57, 60, 48, 67, 47, 87, 69, 95, 58, 59, 87, 63, 84, 80, 58, 84, 75, 63, 42, 54, 71, 43, 58, 70, 70, 58, 98, 71, 59, 59, 64, 61, 67, 53, 45, 44, 68, 59, 60, 56, 38, 46, 89, 99, 50, 54, 48, 50, 45, 75, 52, 64, 81, 61, 63, 79, 83, 58, 110, 65, 55, 60, 76, 62, 59, 70, 81, 67, 76, 56, 65, 49, 85, 59, 72, 89, 55, 77, 77, 73, 112, 64, 87, 61, 64, 76, 64, 72, 49, 56, 53, 67, 48, 70, 40, 71, 55, 65, 87, 82, 83, 56, 56, 72, 88, 69, 63, 104, 64, 50, 98, 58, 79, 63, 62, 49, 63, 41, 55, 62, 58, 76, 53, 53, 64, 65, 70, 74, 51, 92, 104, 54, 79, 65, 64, 51, 61, 64, 78, 66, 56, 118, 63, 63, 70, 62, 66, 60, 47, 70, 59, 78, 75, 64, 56, 61, 65, 59, 48, 83, 49, 97, 74, 49, 60, 67, 75, 62, 56, 78, 58, 60, 53, 67, 91, 57, 91, 88, 55, 55, 57, 50, 70, 54, 74, 83, 58, 80, 89, 53, 72, 77, 54, 75, 112, 73, 65, 59, 56, 89, 55, 65, 61, 56, 64, 100, 63, 57, 74, 71, 72, 72, 119, 60, 107, 70, 72, 85, 76, 66, 38, 39, 65, 61, 68, 56, 49, 82, 93, 80, 73, 63, 58, 67, 56, 70, 68, 75, 89, 53, 72, 58, 56, 53, 58, 64, 57, 52, 69, 66, 68, 82, 48, 55, 52, 51, 70, 63, 52, 78, 49, 58, 69, 68, 65, 64, 79, 75, 73, 88, 61, 53, 81, 63, 64, 74, 60, 58, 62, 70, 49, 68, 83, 79, 89, 100, 78, 54, 88, 66, 71, 64, 62, 51, 84, 73, 97, 41, 59, 72, 60, 63, 71, 66, 33, 50, 65, 61, 61, 44, 69, 64, 63, 52, 58, 62, 91, 59, 51, 54, 47, 69, 69, 55, 69, 64, 85, 56, 61, 58, 59, 66, 76, 64, 64, 49, 66, 64, 66, 58, 92, 69, 48, 64, 59, 73, 97, 68, 66, 50, 89, 60, 79, 73, 31, 57, 64, 54, 57, 72, 90, 52, 67, 63, 61, 59, 53, 80, 46, 77, 81, 64, 82, 69, 94, 88, 57, 42, 40, 65, 59, 69, 51, 60, 35, 71, 65, 68, 52, 71, 64, 68, 66, 55, 42, 49, 58, 88, 68, 87, 68, 48, 59, 74, 52, 96, 61, 120, 58, 75, 77, 53, 47, 54, 66, 59, 77, 56, 68, 59, 63, 68, 66, 72, 139, 76, 54, 61, 60, 72, 56, 52, 65, 58, 62, 55, 58, 50, 59, 67, 68, 72, 50, 58, 86, 64, 63, 67, 79, 65, 57, 70, 48, 61, 54, 71, 79, 57, 66, 63, 53, 56, 66, 72, 64, 60, 87, 53, 70, 59, 67, 65, 59, 59, 83, 58, 93, 59, 67, 85, 83, 74, 69, 65, 55, 63, 70, 56, 50, 65, 55, 62, 48, 56, 37, 63, 71, 58, 61, 70, 43, 56, 73, 50, 62, 81, 55, 83, 66, 59, 66, 68, 73, 55, 57, 56, 85, 46, 59, 56, 57, 71, 91, 67, 46, 61, 51, 64, 66, 63, 67, 55, 46, 62, 71, 68, 54, 72, 70, 59, 80, 57, 60, 57, 44, 58, 66, 61, 43, 69, 73, 86, 61, 66, 67, 45, 80, 47, 73, 47, 64, 66, 53, 63, 64, 106, 55, 73, 60, 48, 65, 77, 71, 58, 98, 44, 54, 68, 56, 65, 72, 69, 90, 57, 64, 74, 58, 61, 82, 90, 60, 63, 66, 61, 86, 56, 50, 76, 75, 62, 73, 35, 57, 83, 66, 68, 58, 71, 62, 43, 62, 77, 78, 69, 59, 63, 74, 51, 60, 74, 54, 55, 78, 62, 71, 66, 60, 77, 57, 70, 58, 45, 58, 56, 85, 51, 77, 72, 51, 59, 48, 65, 72, 69, 55, 59, 65, 60, 58, 59, 75, 65, 67, 51, 50, 61, 69, 56, 78, 63, 64, 56, 53, 63, 72, 63, 41, 74, 77, 66, 75, 75, 77, 65, 95, 51, 55, 76, 76, 52, 65, 111, 66, 95, 85, 80, 59, 84, 64, 61, 73, 65, 86, 67, 68, 61, 60, 68, 64, 62, 58, 63, 77, 58, 55, 57, 81, 66, 58, 73, 50, 67, 88, 81, 57, 50, 57, 66, 51, 69, 75, 57, 58, 67, 95, 95, 77, 49, 76, 96, 57, 59, 66, 88, 61, 71, 71, 62, 82, 85, 61, 66, 61, 72, 56, 71, 70, 64, 72, 66, 89, 60, 71, 61, 53, 46, 58, 58, 68, 55, 50, 53, 62, 71, 47, 58, 55, 68, 68, 80, 70, 70, 68, 80, 52, 61, 55, 58, 96, 77, 56, 76, 62, 78, 71, 61, 64, 62, 64, 68, 65, 49, 65, 59, 59, 91, 87, 63, 78, 81, 61, 99, 74, 91, 82, 124, 57, 50, 75, 62, 69, 75, 61, 78, 79, 65, 58, 55, 69, 72, 63, 57, 44, 54, 57, 73, 68, 45, 59, 56, 65, 97, 73, 89, 70, 85, 58, 39, 54, 56, 59, 72, 95, 61, 74, 52, 70, 61, 62, 56, 60, 69, 65, 61, 50, 69, 90, 59, 55, 53, 64, 92, 78, 51, 74, 71, 45, 58, 63, 95, 58, 45, 67, 100, 82, 83, 80, 52, 89, 53, 56, 76, 71, 54, 80, 61, 59, 59, 69, 66, 111, 87, 64, 77, 72, 53, 42, 54, 82, 53, 69, 85, 70, 110, 54, 52, 76, 55, 67, 58, 68, 42, 76, 50, 64, 79, 56, 57, 72, 59, 52, 61, 68, 72, 86, 74, 54, 69, 72, 50, 78, 78, 57, 66, 74, 64, 56, 50, 56, 51, 69, 62, 73, 76, 66, 99, 55, 54, 77, 64, 55, 63, 91, 81, 76, 59, 85, 82, 56, 73, 58, 77, 59, 84, 54, 74, 67, 95, 70, 68, 80, 66, 56, 67, 93, 105, 58, 67, 43, 67, 87, 47, 99, 78, 54, 69, 79, 58, 55, 76, 70, 70, 63, 138, 80, 87, 72, 116, 69, 65, 53, 71, 65, 76, 54, 55, 66, 56, 73, 49, 85, 67, 63, 62, 69, 58, 64, 45, 63, 61, 74, 56, 101, 63, 70, 60, 45, 66, 64, 92, 57, 64, 63, 72, 56, 43, 71, 53, 54, 52, 66, 72, 74, 53, 58, 72, 64, 58, 64, 76, 72, 60, 84, 64, 53, 72, 56, 72, 68, 87, 53, 64, 70, 60, 63, 54, 46, 62, 93, 73, 53, 61, 48, 90, 68, 63, 68, 59, 67, 74, 57, 59, 78, 97, 85, 49, 67, 65, 63, 67, 82, 66, 58, 84, 51, 84, 84, 61, 60, 76, 63, 60, 51, 65, 53, 77, 60, 56, 45, 87, 61, 65, 59, 72, 75, 54, 62, 65, 69, 56, 55, 61, 59, 64, 68, 52, 70, 70, 57, 51, 65, 58, 55, 52, 59, 63, 45, 61, 72, 64, 66, 76, 52, 56, 61, 54, 88, 70, 51, 61, 71, 60, 72, 60, 62, 70, 50, 109, 127, 68, 57, 81, 49, 68, 63, 65, 69, 68, 65, 63, 68, 72, 60, 60, 63, 47, 68, 63, 70, 62, 73, 74, 79, 57, 49, 88, 64, 57, 102, 44, 73, 74, 61, 82, 60, 109, 68, 73, 61, 91, 56, 64, 59, 63, 74, 69, 49, 74, 68, 62, 69, 63, 77, 51, 46, 67, 57, 55, 60, 57, 48, 63, 84, 61, 66, 70, 53, 76, 60, 95, 56, 65, 84, 63, 66, 68, 59, 67, 62, 50, 104, 66, 54, 68, 69, 64, 97, 57, 60, 66, 68, 74, 68, 69, 54, 91, 70, 68, 77, 77, 52, 54, 54, 66, 67, 64, 62, 102, 67, 75, 59, 112, 73, 84, 46, 59, 70, 65, 53, 70, 59, 55, 54, 102, 100, 54, 66, 49, 62, 84, 68, 67, 68, 69, 82, 60, 58, 63, 90, 55, 74, 53, 62, 49, 97, 49, 52, 62, 50, 71, 54, 69, 65, 90, 83, 58, 66, 89, 72, 45, 66, 69, 62, 69, 66, 68, 78, 64, 80, 49, 87, 58, 65, 60, 60, 54, 81, 65, 49, 43, 55, 95, 59, 70, 60, 61, 77, 73, 67, 60, 60, 61, 54, 58, 61, 78, 58, 63, 70, 70, 89, 54, 60, 50, 110, 66, 65, 66, 65, 62, 88, 54, 77, 56, 90, 64, 65, 57, 46, 59, 63, 51, 74, 46, 59, 61, 59, 55, 71, 49, 51, 63, 73, 86, 72, 51, 81, 57, 76, 69, 67, 74, 60, 61, 66, 60, 61, 40, 65, 56, 72, 58, 73, 87, 69, 49, 49, 60, 67, 60, 64, 81, 68, 92, 78, 70, 61, 61, 60, 97, 79, 144, 73, 56, 72, 87, 56, 49, 57, 65, 61, 55, 69, 55, 84, 84, 69, 59, 130, 64, 65, 76, 47, 58, 55, 67, 76, 62, 84, 55, 62, 76, 61, 91, 68, 79, 62, 78, 79, 53, 68, 85, 56, 60, 75, 58, 67, 63, 57, 60, 65, 53, 57, 50, 71, 66, 51, 53, 59, 52, 85, 53, 49, 58, 75, 72, 62, 60, 73, 70, 52, 57, 68, 90, 84, 96, 74, 56, 57, 71, 67, 49, 68, 61, 55, 86, 62, 58, 67, 71, 66, 83, 73, 61, 65, 54, 56, 72, 61, 61, 79, 70, 82, 61, 48, 61, 65, 47, 56, 66, 63, 69, 67, 76, 69, 51, 73, 70, 57, 65, 82, 63, 63, 57, 58, 64, 70, 63, 59, 57, 81, 60, 49, 56, 51, 81, 63, 72, 48, 63, 60, 63, 64, 79, 83, 78, 64, 69, 66, 63, 81, 60, 63, 59, 60, 58, 66, 79, 70, 69, 33, 71, 50, 68, 76, 48, 53, 63, 76, 79, 66, 51, 73, 57, 72, 74, 71, 48, 69, 67, 58, 71, 58, 79, 76, 77, 69, 78, 64, 61, 54, 51, 50, 71, 60, 43, 61, 96, 60, 74, 59, 73, 60, 81, 54, 73, 52, 47, 53, 63, 52, 58, 63, 54, 73, 58, 70, 60, 61, 61, 59, 56, 57, 53, 42, 78, 56, 38, 81, 69, 55, 56, 54, 58, 51, 56, 50, 67, 81, 92, 74, 47, 63, 65, 61, 66, 71, 65, 51, 65, 70, 60, 60, 89, 60, 59, 67, 49, 78, 65, 69, 64, 53, 83, 58, 71, 55, 75, 63, 63, 48, 58, 73, 85, 73, 120, 53, 94, 63, 62, 76, 84, 61, 58, 51, 76, 73, 55, 58, 72, 73, 67, 52, 68, 57, 73, 53, 65, 69, 78, 58, 69, 61, 46, 68, 51, 76, 88, 46, 54, 68, 58, 61, 44, 51, 50, 74, 59, 86, 92, 61, 69, 54, 88, 55, 70, 72, 95, 58, 55, 48, 83, 79, 84, 63, 66, 85, 81, 78, 60, 77, 67, 78, 52, 71, 57, 78, 63, 52, 66, 57, 74, 63, 75, 75, 58, 91, 59, 54, 62, 72, 66, 68, 66, 59, 56, 72, 89, 64, 81, 59, 43, 70, 65, 68, 78, 64, 55, 73, 57, 72, 77, 80, 73, 45, 62, 52, 71, 58, 109, 72, 61, 70, 73, 56, 102, 55, 60, 90, 118, 48, 64, 70, 85, 58, 76, 52, 53, 79, 77, 53, 64, 64, 61, 52, 64, 61, 70, 59, 61, 59, 76, 64, 58, 73, 59, 52, 95, 60, 66, 59, 66, 60, 60, 52, 56, 65, 54, 87, 67, 62, 52, 75, 69, 66, 45, 59, 60, 56, 73, 74, 69, 69, 70, 56, 65, 60, 66, 57, 59, 66, 58, 59, 86, 63, 38, 72, 93, 70, 72, 84, 66, 91, 64, 48, 96, 52, 50, 84, 57, 72, 46, 78, 68, 96, 82, 71, 66, 81, 110, 62, 64, 68, 61, 61, 85, 51, 100, 77, 62, 63, 60, 62, 61, 61, 57, 56, 69, 52, 57, 44, 55, 65, 68, 71, 57, 75, 65, 82, 89, 60, 50, 75, 78, 73, 64, 56, 52, 69, 84, 57, 50, 60, 112, 54, 65, 103, 66, 70, 97, 51, 69, 74, 67, 74, 57, 70, 60, 97, 62, 75, 67, 59, 52, 56, 88, 94, 72, 69, 66, 62, 83, 68, 64, 71, 66, 58, 66, 118, 82, 61, 57, 48, 43, 105, 51, 71, 73, 63, 62, 55, 65, 60, 64, 39, 63, 57, 127, 55, 78, 74, 108, 53, 73, 63, 55, 56, 63, 65, 63, 59, 73, 49, 66, 99, 68, 62, 67, 86, 65, 57, 73, 52, 54, 82, 59, 94, 55, 70, 62, 53, 78, 71, 76, 57, 62, 61, 74, 54, 59, 76, 65, 63, 60, 59, 49, 60, 67, 59, 74, 78, 51, 60, 69, 67, 65, 102, 59, 71, 68, 61, 67, 64, 87, 52, 56, 53, 67, 55, 49, 70, 57, 65, 68, 66, 60, 46, 78, 60, 68, 63, 60, 42, 63, 91, 76, 72, 89, 61, 42, 56, 44, 64, 62, 51, 66, 60, 81, 70, 77, 58, 63, 63, 52, 69, 69, 59, 86, 54, 58, 58, 62, 61, 69, 60, 56, 64, 83, 72, 80, 61, 74, 96, 55, 72, 61, 78, 49, 80, 94, 62, 57, 83, 67, 66, 63, 67, 71, 67, 54, 57, 47, 58, 53, 62, 65, 58, 65, 49, 59, 73, 58, 49, 74, 86, 77, 68, 63, 58, 58, 57, 107, 89, 51, 49, 57, 58, 72, 68, 66, 59, 59, 62, 48, 66, 72, 58, 53, 62, 63, 60, 78, 60, 75, 72, 62, 97, 57, 75, 65, 57, 53, 96, 65, 57, 65, 84, 45, 54, 99, 62, 40, 60, 57, 58, 72, 60, 54, 73, 61, 50, 49, 89, 61, 48, 51, 59, 90, 66, 50, 63, 60, 79, 65, 50, 72, 59, 43, 45, 72, 45, 61, 51, 65, 66, 57, 67, 62, 78, 63, 54, 67, 83, 96, 93, 49, 68, 69, 52, 76, 49, 70, 67, 61, 39, 76, 55, 73, 65, 85, 82, 55, 55, 74, 61, 69, 52, 74, 55, 61, 41, 99, 59, 56, 67, 85, 57, 90, 53, 62, 65, 93, 89, 44, 70, 47, 66, 97, 93, 69, 58, 63, 49, 60, 55, 70, 54, 44, 67, 50, 75, 49, 89, 62, 71, 57, 46, 78, 92, 54, 65, 90, 66, 66, 80, 67, 47, 69, 74, 74, 56, 85, 66, 45, 75, 53, 63, 62, 56, 72, 68, 88, 67, 64, 59, 72, 65, 75, 48, 78, 65, 53, 49, 52, 55, 85, 51, 78, 59, 45, 67, 49, 102, 55, 53, 51, 67, 83, 55, 70, 59, 66, 67, 63, 64, 54, 61, 61, 72, 59, 61, 102, 56, 54, 93, 59, 97, 47, 68, 60, 73, 68, 58, 61, 63, 55, 69, 71, 74, 54, 68, 67, 60, 54, 56, 61, 77, 78, 56, 69, 58, 90, 53, 62, 70, 66, 57, 63, 62, 61, 79, 61, 77, 65, 69, 66, 47, 89, 57, 45, 62, 72, 65, 76, 55, 61, 48, 69, 56, 57, 63, 74, 75, 66, 93, 143, 61, 74, 79, 55, 87, 61, 65, 48, 58, 61, 59, 57, 55, 69, 82, 52, 124, 68, 71, 62, 63, 75, 65, 78, 72, 71, 73, 61, 70, 88, 52, 136, 60, 60, 46, 74, 103, 65, 69, 84, 87, 72, 51, 60, 57, 51, 75, 63, 69, 50, 61, 59, 87, 80, 57, 49, 65, 79, 54, 45, 68, 43, 59, 55, 59, 69, 62, 83, 62, 52, 56, 80, 79, 63, 70, 70, 60, 94, 68, 77, 58, 58, 60, 66, 43, 53, 61, 80, 112, 46, 58, 52, 50, 73, 94, 71, 61, 62, 61, 97, 55, 75, 56, 68, 72, 56, 59, 71, 65, 70, 75, 99, 66, 57, 56, 57, 58, 65, 66, 67, 53, 67, 40, 69, 53, 77, 69, 59, 65, 72, 59, 71, 57, 60, 83, 63, 47, 73, 64, 65, 61, 67, 52, 64, 57, 52, 65, 42, 65, 63, 70, 65, 70, 70, 64, 48, 101, 74, 71, 88, 45, 77, 64, 62, 64, 69, 82, 53, 82, 61, 46, 59, 62, 55, 75, 56, 67, 65, 46, 76, 60, 63, 66, 68, 60, 58, 55, 56, 66, 86, 55, 78, 52, 54, 56, 69, 59, 65, 66, 58, 64, 64, 58, 57, 85, 53, 57, 64, 47, 71, 50, 69, 60, 82, 66, 86, 82, 57, 74, 46, 51, 71, 55, 62, 41, 61, 113, 56, 52, 72, 56, 62, 58, 58, 55, 56, 53, 70, 78, 75, 63, 71, 66, 96, 48, 85, 56, 80, 65, 59, 87, 57, 70, 71, 45, 52, 85, 70, 91, 85, 58, 69, 75, 53, 57, 49, 60, 52, 57, 75, 63, 74, 64, 58, 57, 68, 76, 63, 63, 49, 74, 54, 65, 74, 97, 70, 90, 51, 44, 86, 94, 66, 90, 77, 59, 57, 90, 91, 57, 67, 48, 75, 74, 63, 77, 50, 56, 67, 60, 37, 83, 63, 75, 58, 66, 64, 61, 99, 71, 57, 62, 66, 64, 49, 74, 72, 64, 78, 71, 72, 61, 64, 107, 69, 58, 61, 65, 97, 80, 88, 54, 83, 67, 52, 61, 58, 62, 56, 69, 63, 67, 63, 65, 45, 66, 74, 61, 57, 59, 73, 55, 77, 55, 62, 68, 65, 56, 64, 60, 46, 74, 51, 66, 70, 68, 69, 54, 78, 72, 62, 74, 76, 63, 62, 67, 65, 66, 71, 73, 78, 76, 82, 57, 70, 50, 46, 73, 79, 65, 47, 83, 56, 74, 73, 72, 88, 69, 62, 62, 67, 66, 71, 44, 71, 67, 49, 58, 71, 68, 62, 84, 53, 63, 80, 61, 92, 57, 67, 59, 56, 57, 60, 48, 54, 72, 64, 63, 62, 56, 63, 65, 78, 56, 42, 63, 59, 50, 79, 76, 80, 66, 69, 60, 68, 60, 71, 62, 89, 56, 56, 78, 92, 66, 51, 54, 81, 68, 54, 67, 50, 76, 64, 51, 60, 82, 78, 59, 58, 67, 61, 63, 65, 105, 119, 62, 73, 58, 60, 91, 61, 68, 70, 74, 78, 53, 68, 67, 60, 58, 62, 78, 57, 66, 62, 70, 72, 83, 72, 55, 56, 67, 65, 46, 71, 62, 63, 62, 63, 68, 67, 60, 54, 64, 67, 65, 66, 49, 81, 59, 58, 63, 67, 59, 52, 62, 60, 55, 91, 65, 58, 60, 71, 74, 72, 68, 78, 76, 54, 75, 70, 49, 61, 86, 67, 55, 60, 54, 95, 61, 67, 43, 60, 88, 68, 62, 60, 77, 61, 76, 56, 58, 63, 113, 66, 72, 61, 60, 62, 51, 71, 56, 66, 56, 51, 70, 121, 81, 83, 93, 107, 67, 50, 75, 55, 68, 50, 71, 59, 81, 62, 69, 67, 61, 62, 92, 70, 62, 57, 55, 52, 57, 61, 80, 66, 54, 59, 90, 75, 46, 82, 120, 68, 63, 58, 64, 46, 73, 80, 56, 67, 61, 76, 65, 68, 68, 62, 61, 67, 84, 60, 54, 66, 57, 75, 59, 73, 65, 59, 58, 55, 65, 59, 74, 75, 65, 74, 72, 60, 62, 62, 72, 70, 63, 89, 53, 58, 60, 60, 67, 45, 72, 96, 73, 75, 73, 65, 58, 71, 67, 57, 63, 55, 61, 87, 61, 67, 60, 58, 61, 52, 60, 70, 71, 59, 50, 88, 63, 76, 64, 61, 59, 61, 60, 59, 55, 70, 76, 51, 67, 67, 63, 71, 60, 68, 92, 54, 58, 118, 66, 89, 83, 62, 76, 58, 59, 69, 62, 66, 58, 61, 72, 80, 50, 72, 52, 55, 84, 59, 68, 60, 85, 66, 72, 60, 87, 57, 75, 68, 76, 115, 94, 82, 49, 55, 62, 65, 55, 69, 59, 52, 54, 52, 70, 78, 75, 76, 83, 56, 61, 91, 96, 62, 50, 92, 79, 66, 55, 53, 87, 62, 75, 65, 66, 54, 75, 58, 87, 85, 62, 57, 73, 63, 64, 85, 63, 63, 69, 67, 48, 58, 78, 58, 67, 56, 74, 71, 84, 55, 53, 62, 78, 63, 68, 63, 75, 57, 63, 63, 62, 72, 65, 60, 58, 69, 51, 68, 64, 89, 50, 70, 58, 52, 87, 72, 64, 54, 59, 77, 60, 54, 68, 67, 52, 77, 57, 60, 59, 80, 59, 63, 68, 60, 61, 75, 58, 67, 56, 49, 70, 87, 72, 60, 60, 79, 71, 66, 60, 52, 64, 74, 71, 79, 65, 71, 70, 63, 74, 64, 75, 39, 70, 67, 67, 58, 66, 69, 69, 56, 57, 51, 83, 56, 53, 74, 60, 42, 114, 60, 60, 59, 53, 33, 49, 55, 57, 83, 65, 77, 70, 46, 67, 54, 56, 54, 58, 73, 70, 69, 51, 61, 67, 64, 65, 52, 94, 46, 51, 63, 60, 78, 71, 46, 78, 58, 46, 55, 56, 55, 60, 75, 99, 65, 56, 50, 73, 76, 85, 67, 63, 48, 60, 54, 65, 52, 54, 61, 126, 50, 62, 99, 70, 95, 59, 76, 102, 86, 56, 71, 95, 90, 57, 50, 66, 81, 53, 87, 58, 60, 87, 57, 63, 52, 52, 67, 58, 62, 59, 77, 60, 61, 70, 57, 49, 64, 76, 58, 69, 52, 47, 72, 59, 69, 68, 67, 57, 74, 72, 53, 69, 58, 98, 80, 69, 72, 50, 74, 72, 68, 76, 106, 75, 58, 58, 97, 77, 74, 72, 62, 52, 71, 53, 61, 72, 67, 54, 59, 87, 62, 82, 54, 155, 52, 71, 65, 103, 74, 77, 66, 76, 61, 44, 81, 54, 68, 56, 96, 66, 58, 57, 55, 68, 60, 69, 74, 46, 59, 58, 67, 76, 60, 71, 61, 71, 74, 59, 56, 59, 57, 56, 51, 64, 51, 66, 61, 58, 59, 49, 59, 60, 71, 66, 84, 75, 78, 58, 68, 89, 89, 68, 51, 109, 87, 54, 77, 68, 62, 72, 55, 71, 79, 56, 54, 64, 58, 90, 61, 59, 66, 58, 58, 83, 72, 49, 76, 58, 63, 54, 66, 81, 77, 60, 68, 66, 60, 79, 68, 53, 53, 65, 50, 86, 45, 54, 72, 50, 59, 79, 59, 69, 56, 107, 41, 57, 65, 75, 71, 75, 69, 41, 80, 75, 59, 51, 53, 55, 39, 81, 73, 65, 52, 61, 66, 98, 84, 56, 71, 79, 53, 60, 50, 72, 67, 69, 94, 59, 61, 49, 51, 56, 89, 137, 57, 65, 73, 57, 62, 42, 57, 75, 65, 64, 83, 48, 81, 69, 80, 53, 63, 78, 75, 51, 68, 78, 86, 54, 104, 72, 80, 79, 46, 55, 90, 67, 29, 59, 42, 59, 58, 66, 68, 64, 81, 85, 56, 70, 73, 70, 44, 66, 69, 84, 81, 71, 102, 66, 45, 56, 66, 60, 56, 83, 82, 82, 71, 51, 60, 69, 77, 53, 72, 46, 54, 63, 48, 59, 71, 55, 93, 61, 47, 57, 58, 49, 54, 89, 52, 69, 61, 53, 70, 77, 91, 59, 63, 56, 46, 70, 62, 65, 64, 54, 54, 63, 63, 46, 76, 57, 76, 55, 56, 66, 77, 70, 125, 56, 56, 97, 74, 67, 55, 72, 72, 80, 67, 65, 58, 61, 60, 73, 52, 69, 74, 84, 53, 50, 59, 49, 72, 62, 67, 59, 63, 58, 85, 63, 49, 71, 44, 61, 69, 70, 103, 100, 60, 60, 74, 58, 68, 88, 79, 77, 53, 77, 65, 63, 46, 91, 60, 65, 64, 51, 53, 76, 44, 66, 110, 68, 57, 52, 69, 58, 68, 74, 53, 56, 82, 63, 79, 65, 61, 43, 64, 71, 57, 65, 49, 58, 83, 69, 66, 78, 51, 67, 59, 55, 58, 56, 52, 68, 60, 75, 46, 89, 72, 75, 59, 71, 70, 70, 60, 80, 72, 92, 59, 78, 78, 68, 69, 69, 91, 74, 90, 75, 74, 51, 94, 68, 68, 70, 67, 60, 74, 88, 68, 66, 82, 87, 55, 89, 72, 60, 62, 74, 60, 71, 51, 62, 57, 63, 76, 93, 65, 60, 75, 74, 61, 70, 50, 63, 52, 44, 55, 70, 54, 67, 50, 69, 38, 68, 63, 69, 70, 73, 67, 62, 61, 70, 79, 51, 80, 70, 49, 50, 85, 70, 85, 79, 58, 50, 66, 73, 96, 76, 66, 84, 86, 63, 55, 73, 80, 57, 60, 60, 51, 85, 81, 91, 59, 73, 84, 73, 58, 114, 60, 40, 66, 47, 74, 60, 66, 74, 53, 84, 70, 58, 59, 68, 50, 79, 59, 61, 81, 60, 61, 59, 49, 57, 65, 41, 58, 62, 59, 60, 61, 55, 62, 48, 59, 49, 52, 82, 72, 76, 74, 64, 61, 46, 56, 42, 47, 82, 66, 88, 51, 51, 62, 62, 59, 54, 95, 66, 52, 52, 53, 62, 39, 62, 74, 63, 64, 70, 125, 66, 80, 69, 79, 62, 52, 67, 44, 56, 71, 44, 51, 49, 70, 84, 86, 56, 60, 64, 61, 99, 71, 67, 95, 51, 66, 60, 93, 50, 61, 57, 50, 57, 59, 54, 68, 53, 53, 56, 93, 55, 78, 63, 76, 68, 44, 74, 88, 62, 80, 58, 64, 53, 67, 54, 52, 58, 63, 63, 63, 66, 81, 46, 68, 61, 57, 54, 62, 55, 57, 70, 61, 62, 63, 67, 72, 62, 62, 69, 61, 62, 76, 50, 68, 71, 59, 56, 62, 64, 50, 57, 61, 65, 69, 53, 63, 67, 49, 57, 54, 63, 57, 73, 72, 63, 81, 70, 57, 70, 65, 68, 78, 62, 83, 86, 56, 61, 57, 94, 88, 58, 69, 51, 70, 112, 72, 71, 57, 79, 77, 61, 56, 59, 51, 67, 65, 62, 75, 52, 56, 88, 55, 44, 57, 75, 54, 54, 71, 46, 79, 58, 49, 50, 67, 52, 70, 52, 77, 62, 82, 50, 54, 91, 56, 57, 59, 67, 52, 89, 55, 67, 78, 37, 60, 61, 69, 72, 51, 45, 64, 54, 90, 64, 69, 64, 54, 50, 59, 58, 71, 63, 84, 59, 66, 54, 60, 61, 71, 62, 81, 64, 40, 93, 68, 55, 70, 72, 44, 79, 82, 79, 65, 82, 77, 84, 86, 68, 63, 57, 76, 66, 80, 86, 70, 81, 81, 68, 96, 74, 52, 54, 96, 100, 61, 67, 62, 68, 54, 44, 65, 62, 52, 63, 71, 83, 61, 69, 57, 51, 80, 73, 75, 56, 55, 44, 92, 58, 64, 75, 53, 68, 57, 80, 65, 66, 50, 62, 72, 56, 66, 52, 66, 81, 54, 77, 76, 56, 54, 64, 50, 58, 56, 60, 65, 58, 59, 62, 60, 50, 73, 79, 87, 54, 96, 53, 60, 58, 69, 77, 46, 54, 79, 58, 67, 63, 52, 57, 68, 72, 56, 60, 103, 66, 72, 85, 70, 58, 94, 67, 61, 61, 75, 49, 73, 56, 59, 77, 71, 62, 57, 63, 68, 66, 64, 64, 58, 78, 56, 48, 78, 81, 64, 61, 74, 66, 52, 63, 45, 64, 64, 68, 68, 72, 82, 52, 75, 57, 57, 62, 70, 64, 65, 94, 64, 71, 56, 82, 74, 63, 71, 75, 60, 53, 51, 59, 39, 73, 55, 64, 68, 61, 59, 75, 80, 63, 50, 67, 67, 70, 48, 64, 47, 69, 54, 101, 63, 75, 55, 55, 55, 48, 52, 57, 66, 73, 68, 60, 51, 55, 48, 59, 53, 52, 63, 48, 45, 63, 62, 69, 71, 72, 60, 69, 106, 43, 63, 58, 72, 53, 60, 55, 77, 55, 57, 68, 70, 44, 67, 59, 65, 51, 66, 70, 73, 56, 48, 77, 60, 62, 64, 58, 57, 83, 64, 88, 42, 69, 56, 76, 63, 60, 61, 76, 63, 79, 91, 59, 100, 59, 76, 69, 60, 68, 82, 82, 67, 59, 83, 60, 91, 80, 59, 51, 53, 73, 18, 114, 61, 55, 64, 65, 40, 60, 64, 77, 57, 49, 36, 60, 60, 58, 68, 74, 62, 57, 73, 115, 69, 56, 56, 82, 66, 60, 41, 58, 56, 99, 54, 51, 72, 59, 72, 51, 71, 71, 53, 74, 71, 73, 62, 71, 79, 61, 56, 59, 45, 80, 64, 66, 73, 60, 61, 80, 57, 57, 112, 61, 66, 57, 55, 72, 56, 60, 96, 83, 64, 89, 67, 78, 63, 83, 62, 66, 55, 83, 71, 61, 55, 72, 65, 47, 64, 61, 80, 64, 93, 60, 55, 61, 63, 86, 73, 65, 75, 61, 50, 59, 63, 62, 62, 77, 86, 84, 84, 45, 60, 61, 79, 71, 66, 106, 65, 72, 62, 74, 112, 53, 52, 61, 72, 57, 84, 60, 56, 84, 63, 58, 60, 72, 70, 59, 61, 57, 59, 86, 52, 62, 74, 56, 69, 68, 65, 103, 38, 67, 47, 56, 60, 56, 53, 59, 67, 73, 62, 72, 87, 65, 86, 60, 44, 61, 70, 54, 73, 98, 77, 92, 119, 74, 65, 68, 68, 61, 64, 62, 69, 66, 45, 42, 51, 64, 85, 52, 89, 90, 68, 99, 71, 51, 52, 51, 48, 46, 48, 87, 62, 66, 62, 65, 63, 48, 74, 60, 49, 61, 72, 59, 50, 50, 53, 68, 48, 65, 70, 89, 57, 69, 77, 69, 115, 66, 60, 101, 55, 43, 55, 69, 81, 68, 50, 50, 72, 66, 59, 83, 64, 75, 60, 48, 69, 68, 78, 63, 52, 70, 54, 61, 70, 56, 81, 58, 92, 72, 67, 53, 78, 62, 37, 59, 65, 77, 91, 54, 73, 59, 50, 68, 69, 65, 60, 70, 82, 63, 96, 61, 82, 66, 66, 57, 75, 55, 74, 66, 61, 101, 59, 69, 61, 56, 78, 58, 64, 59, 60, 80, 64, 52, 54, 48, 63, 60, 77, 80, 59, 69, 51, 59, 66, 61, 92, 74, 77, 63, 76, 66, 57, 69, 70, 49, 59, 59, 65, 49, 62, 64, 76, 86, 52, 83, 65, 70, 75, 62, 107, 56, 69, 55, 59, 67, 62, 78, 67, 50, 77, 70, 55, 47, 53, 67, 74, 48, 66, 53, 69, 63, 63, 64, 94, 70, 70, 58, 63, 73, 66, 63, 77, 48, 55, 59, 71, 69, 95, 104, 109, 62, 60, 60, 70, 59, 102, 59, 62, 53, 67, 63, 62, 66, 50, 34, 55, 75, 51, 57, 66, 79, 66, 65, 71, 87, 111, 57, 81, 65, 71, 50, 62, 66, 58, 60, 55, 48, 60, 69, 66, 71, 48, 63, 57, 60, 62, 52, 58, 59, 56, 70, 52, 61, 46, 56, 54, 60, 110, 59, 73, 69, 67, 75, 59, 72, 57, 54, 91, 48, 55, 61, 63, 60, 66, 64, 54, 54, 48, 67, 69, 45, 55, 92, 81, 75, 75, 60, 62, 63, 39, 66, 69, 76, 57, 65, 75, 49, 56, 47, 84, 78, 66, 58, 69, 62, 64, 68, 82, 80, 64, 84, 54, 84, 68, 62, 63, 73, 60, 56, 71, 76, 68, 73, 69, 85, 103, 92, 85, 92, 64, 69, 67, 69, 50, 64, 50, 84, 54, 79, 72, 60, 72, 75, 58, 86, 83, 74, 62, 64, 76, 66, 63, 74, 71, 76, 52, 54, 64, 73, 78, 70, 52, 62, 67, 46, 51, 55, 58, 67, 84, 100, 94, 63, 60, 64, 81, 67, 57, 56, 46, 79, 62, 56, 59, 64, 95, 61, 102, 133, 57, 52, 85, 80, 58, 52, 76, 66, 63, 83, 79, 62, 65, 62, 56, 71, 75, 77, 57, 58, 64, 65, 66, 69, 60, 84, 56, 73, 55, 60, 57, 60, 107, 49, 50, 62, 64, 47, 57, 63, 61, 80, 60, 74, 66, 48, 63, 72, 69, 63, 58, 64, 91, 77, 70, 75, 72, 83, 55, 83, 66, 65, 61, 59, 70, 61, 86, 68, 71, 60, 66, 35, 57, 75, 58, 69, 77, 77, 52, 62, 87, 58, 60, 65, 61, 86, 73, 78, 69, 60, 59, 48, 68, 68, 65, 77, 60, 103, 83, 69, 109, 49, 54, 66, 49, 58, 59, 66, 52, 65, 52, 44, 68, 66, 99, 72, 51, 55, 62, 61, 60, 82, 71, 60, 65, 62, 59, 78, 59, 71, 92, 71, 61, 85, 72, 49, 70, 54, 64, 71, 70, 68, 63, 52, 66, 99, 77, 68, 65, 38, 73, 78, 79, 62, 60, 58, 77, 74, 47, 69, 67, 58, 74, 85, 60, 104, 76, 57, 74, 57, 49, 106, 79, 70, 67, 73, 67, 66, 77, 46, 58, 56, 59, 60, 74, 63, 67, 49, 70, 74, 79, 58, 74, 74, 68, 65, 44, 58, 39, 52, 53, 54, 58, 67, 86, 55, 70, 58, 71, 65, 54, 56, 45, 61, 69, 62, 71, 66, 68, 67, 60, 58, 55, 75, 49, 52, 69, 76, 71, 61, 66, 73, 72, 76, 74, 61, 53, 80, 73, 58, 85, 61, 51, 80, 76, 95, 70, 79, 53, 77, 72, 68, 69, 54, 50, 61, 56, 57, 60, 55, 54, 75, 55, 47, 60, 54, 62, 55, 80, 63, 60, 60, 77, 53, 69, 87, 49, 68, 62, 55, 60, 78, 68, 68, 65, 70, 69, 54, 91, 55, 85, 106, 51, 68, 72, 62, 51, 60, 49, 59, 79, 59, 90, 82, 54, 55, 59, 96, 54, 82, 61, 58, 63, 54, 50, 61, 58, 63, 91, 65, 80, 84, 71, 57, 51, 65, 67, 71, 107, 54, 53, 54, 65, 57, 75, 66, 69, 68, 57, 62, 65, 63, 64, 57, 55, 66, 58, 83, 73, 53, 61, 68, 50, 62, 37, 78, 72, 63, 39, 53, 84, 57, 74, 81, 70, 95, 61, 56, 71, 118, 56, 64, 74, 60, 57, 53, 70, 68, 46, 68, 88, 76, 57, 99, 73, 58, 57, 51, 46, 75, 95, 56, 97, 63, 56, 53, 72, 46, 90, 56, 64, 70, 57, 72, 100, 69, 61, 53, 65, 73, 58, 58, 57, 60, 52, 70, 60, 61, 75, 78, 61, 66, 51, 93, 70, 59, 45, 80, 89, 87, 72, 55, 53, 31, 57, 66, 95, 60, 59, 56, 76, 68, 56, 69, 73, 63, 90, 72, 51, 73, 81, 58, 54, 85, 61, 48, 53, 60, 61, 59, 50, 76, 72, 61, 61, 68, 60, 68, 58, 52, 52, 67, 68, 83, 70, 100, 60, 78, 75, 80, 78, 51, 71, 58, 66, 67, 64, 89, 79, 58, 57, 65, 68, 74, 52, 80, 68, 99, 80, 78, 78, 69, 70, 62, 69, 64, 66, 72, 76, 71, 65, 72, 65, 60, 55, 70, 75, 73, 57, 54, 61, 62, 51, 53, 60, 75, 59, 67, 66, 96, 58, 58, 63, 58, 53, 69, 57, 81, 59, 84, 64, 60, 62, 65, 55, 46, 60, 64, 65, 50, 52, 55, 63, 64, 62, 74, 64, 73, 59, 62, 63, 37, 105, 55, 67, 68, 64, 56, 63, 80, 72, 78, 52, 51, 62, 64, 111, 57, 49, 57, 63, 59, 46, 55, 59, 64, 75, 52, 57, 62, 76, 67, 56, 59, 66, 94, 72, 67, 50, 57, 58, 54, 58, 116, 52, 46, 66, 49, 52, 54, 47, 57, 63, 59, 65, 68, 57, 65, 71, 65, 61, 72, 66, 61, 50, 61, 47, 73, 47, 58, 86, 56, 56, 53, 64, 60, 94, 55, 90, 53, 47, 57, 64, 62, 93, 56, 49, 68, 60, 53, 70, 53, 65, 55, 69, 62, 77, 65, 83, 55, 60, 69, 47, 57, 72, 76, 59, 66, 59, 69, 66, 48, 63, 52, 53, 88, 61, 46, 49, 72, 54, 55, 59, 81, 52, 67, 66, 78, 55, 58, 64, 43, 69, 71, 82, 76, 71, 69, 86, 68, 67, 55, 53, 62, 70, 56, 64, 70, 53, 48, 83, 53, 105, 66, 68, 63, 65, 74, 46, 76, 53, 73, 60, 65, 64, 70, 67, 62, 54, 58, 61, 80, 65, 65, 75, 62, 68, 57, 61, 52, 72, 78, 74, 78, 54, 43, 81, 59, 63, 62, 67, 63, 63, 99, 81, 60, 77, 59, 72, 62, 52, 62, 81, 58, 46, 65, 54, 67, 68, 50, 60, 67, 44, 53, 50, 57, 63, 77, 39, 62, 60, 79, 62, 62, 55, 57, 54, 68, 83, 78, 59, 66, 61, 78, 96, 64, 62, 62, 66, 50, 85, 65, 81, 61, 83, 67, 72, 55, 45, 53, 55, 78, 40, 61, 44, 78, 80, 70, 66, 58, 56, 62, 70, 59, 94, 90, 63, 73, 62, 68, 67, 63, 135, 73, 113, 77, 77, 48, 80, 83, 67, 71, 70, 56, 76, 55, 68, 50, 59, 67, 55, 121, 68, 67, 54, 71, 58, 58, 73, 52, 74, 58, 90, 56, 54, 47, 70, 50, 69, 65, 68, 92, 59, 70, 61, 56, 66, 70, 57, 60, 61, 51, 60, 73, 81, 79, 60, 69, 75, 65, 77, 54, 73, 59, 77, 77, 63, 79, 72, 69, 53, 68, 95, 65, 65, 54, 67, 72, 46, 65, 55, 62, 64, 63, 88, 63, 61, 91, 58, 63, 85, 84, 57, 73, 36, 73, 66, 52, 39, 75, 67, 57, 79, 97, 94, 52, 71, 68, 75, 52, 82, 103, 65, 77, 54, 65, 66, 60, 61, 69, 80, 61, 81, 52, 94, 76, 60, 56, 58, 60, 92, 45, 76, 70, 54, 97, 53, 64, 75, 47, 63, 94, 54, 84, 69, 49, 56, 53, 49, 58, 59, 35, 41, 54, 69, 63, 58, 48, 63, 76, 67, 54, 73, 76, 63, 90, 110, 82, 74, 43, 69, 52, 69, 51, 60, 68, 65, 62, 46, 73, 66, 60, 73, 61, 43, 67, 59, 72, 66, 72, 73, 79, 99, 78, 54, 52, 67, 71, 52, 61, 54, 49, 63, 84, 73, 54, 111, 47, 53, 55, 94, 77, 54, 53, 68, 63, 100, 58, 52, 97, 59, 110, 67, 69, 63, 55, 105, 87, 61, 88, 65, 55, 71, 60, 59, 77, 93, 62, 81, 62, 77, 55, 84, 82, 72, 54, 54, 55, 59, 70, 81, 78, 76, 74, 61, 47, 70, 86, 64, 57, 56, 73, 54, 53, 52, 76, 66, 62, 63, 66, 89, 73, 80, 51, 58, 63, 51, 67, 66, 75, 58, 71, 70, 64, 65, 49, 66, 47, 54, 46, 61, 74, 71, 66, 69, 65, 55, 63, 90, 49, 66, 48, 94, 68, 81, 65, 45, 70, 55, 66, 62, 61, 65, 62, 49, 63, 71, 60, 42, 56, 54, 79, 79, 67, 66, 76, 56, 106, 57, 82, 63, 68, 70, 63, 54, 66, 58, 60, 61, 60, 62, 68, 57, 59, 87, 61, 87, 57, 50, 87, 61, 61, 89, 83, 53, 59, 51, 103, 74, 53, 70, 63, 50, 65, 63, 67, 100, 60, 63, 55, 71, 72, 70, 70, 48, 66, 62, 93, 55, 61, 93, 86, 59, 40, 82, 62, 65, 98, 82, 53, 63, 85, 77, 62, 55, 39, 66, 50, 132, 65, 59, 48, 69, 69, 69, 58, 68, 67, 70, 67, 60, 66, 46, 79, 54, 69, 59, 66, 58, 58, 56, 73, 52, 56, 53, 67, 48, 72, 75, 62, 67, 105, 66, 58, 62, 62, 57, 59, 65, 76, 67, 62, 67, 81, 73, 74, 72, 52, 52, 63, 67, 60, 70, 82, 53, 61, 73, 65, 87, 81, 76, 56, 61, 74, 52, 61, 78, 67, 57, 76, 51, 80, 58, 62, 62, 56, 79, 78, 79, 58, 68, 65, 104, 125, 64, 54, 62, 41, 76, 68, 49, 55, 57, 57, 62, 62, 57, 83, 59, 69, 75, 92, 49, 66, 72, 53, 62, 75, 71, 55, 59, 67, 55, 63, 72, 67, 60, 62, 69, 69, 49, 66, 72, 67, 73, 51, 54, 91, 59, 56, 66, 51, 67, 48, 58, 52, 47, 71, 52, 46, 60, 68, 70, 86, 53, 54, 78, 50, 66, 63, 58, 57, 80, 62, 47, 67, 64, 62, 70, 80, 55, 65, 62, 64, 72, 82, 76, 45, 57, 58, 63, 72, 64, 64, 82, 57, 66, 48, 70, 56, 65, 52, 54, 73, 63, 66, 59, 59, 55, 61, 59, 75, 73, 69, 55, 69, 66, 92, 109, 65, 68, 65, 56, 82, 62, 47, 83, 67, 52, 59, 61, 64, 83, 68, 61, 59, 53, 117, 86, 75, 61, 58, 57, 80, 82, 71, 70, 41, 57, 43, 87, 59, 67, 54, 75, 58, 42, 71, 54, 67, 67, 64, 56, 69, 66, 82, 83, 98, 52, 57, 62, 77, 71, 77, 63, 63, 54, 56, 60, 93, 82, 61, 57, 73, 54, 87, 52, 61, 66, 91, 61, 90, 71, 64, 68, 81, 53, 54, 62, 62, 50, 98, 61, 58, 60, 68, 71, 58, 66, 69, 63, 46, 103, 61, 100, 42, 63, 59, 69, 45, 73, 83, 86, 69, 115, 45, 72, 62, 62, 63, 72, 65, 88, 59, 60, 74, 45, 68, 63, 62, 50, 87, 83, 66, 68, 55, 77, 60, 62, 51, 84, 52, 52, 109, 121, 62, 65, 79, 80, 78, 100, 65, 63, 63, 65, 63, 68, 55, 56, 90, 54, 61, 67, 76, 79, 97, 89, 62, 60, 80, 57, 56, 64, 69, 108, 66, 60, 65, 52, 67, 65, 65, 65, 68, 55, 64, 55, 65, 68, 59, 54, 73, 76, 64, 60, 62, 63, 51, 53, 65, 83, 50, 47, 54, 50, 58, 87, 123, 90, 61, 52, 47, 66, 38, 63, 77, 45, 54, 65, 70, 89, 65, 56, 67, 73, 63, 64, 48, 53, 77, 67, 63, 55, 60, 56, 68, 82, 53, 59, 62, 47, 56, 60, 64, 59, 70, 68, 56, 73, 57, 48, 66, 63, 61, 38, 70, 49, 77, 104, 48, 62, 60, 65, 69, 41, 63, 58, 57, 49, 56, 60, 56, 71, 72, 59, 47, 59, 51, 75, 65, 60, 55, 92, 66, 47, 55, 71, 56, 65, 62, 55, 106, 86, 68, 67, 64, 61, 61, 77, 79, 69, 73, 70, 69, 71, 52, 58, 74, 66, 58, 58, 76, 65, 41, 137, 64, 79, 67, 69, 65, 55, 69, 60, 58, 58, 63, 68, 61, 64, 76, 45, 59, 64, 50, 47, 53, 48, 60, 45, 84, 76, 57, 56, 58, 60, 52, 64, 65, 66, 65, 75, 60, 70, 78, 65, 62, 76, 78, 56, 73, 61, 55, 104, 59, 62, 80, 82, 62, 56, 59, 63, 66, 52, 54, 50, 65, 67, 52, 73, 70, 53, 77, 75, 47, 48, 66, 73, 56, 71, 56, 64, 63, 60, 49, 64, 75, 67, 45, 91, 53, 34, 77, 57, 44, 70, 79, 77, 69, 55, 86, 58, 54, 67, 61, 87, 60, 66, 54, 69, 68, 67, 82, 65, 59, 65, 66, 60, 55, 70, 63, 49, 58, 58, 53, 63, 61, 121, 53, 99, 65, 56, 61, 83, 71, 63, 64, 63, 72, 66, 55, 75, 69, 60, 92, 60, 65, 87, 87, 57, 74, 51, 65, 59, 61, 70, 62, 109, 67, 58, 62, 61, 68, 69, 48, 77, 69, 50, 83, 41, 78, 58, 82, 64, 76, 42, 58, 44, 67, 91, 58, 67, 80, 67, 59, 68, 57, 78, 74, 60, 58, 59, 64, 64, 81, 65, 58, 84, 59, 62, 72, 64, 58, 81, 56, 34, 57, 64, 70, 56, 57, 42, 91, 53, 58, 54, 57, 56, 84, 67, 65, 65, 54, 75, 62, 58, 55, 93, 61, 75, 54, 69, 63, 58, 75, 53, 52, 106, 42, 62, 80, 64, 68, 55, 65, 70, 62, 71, 58, 59, 46, 48, 66, 48, 65, 105, 71, 75, 87, 78, 50, 68, 56, 53, 63, 75, 59, 54, 62, 71, 55, 38, 76, 62, 61, 63, 60, 72, 61, 70, 50, 66, 62, 50, 55, 64, 38, 61, 56, 61, 71, 70, 79, 74, 76, 81, 62, 71, 84, 49, 83, 63, 74, 59, 64, 50, 78, 65, 65, 50, 70, 56, 78, 80, 77, 80, 75, 92, 58, 51, 50, 65, 62, 54, 66, 52, 66, 62, 54, 74, 74, 75, 61, 55, 59, 66, 67, 70, 55, 72, 60, 92, 64, 74, 64, 72, 86, 57, 61, 62, 86, 104, 55, 59, 64, 93, 67, 56, 51, 51, 58, 56, 66, 76, 66, 62, 60, 70, 68, 63, 43, 83, 39, 68, 61, 64, 113, 55, 68, 54, 69, 59, 61, 79, 53, 100, 65, 61, 60, 63, 71, 61, 66, 66, 56, 79, 58, 53, 56, 50, 71, 66, 63, 54, 86, 64, 43, 55, 80, 68, 51, 52, 51, 73, 94, 52, 45, 90, 55, 92, 56, 72, 64, 50, 90, 69, 61, 85, 62, 73, 81, 46, 45, 70, 91, 57, 51, 54, 59, 69, 47, 71, 59, 47, 61, 57, 45, 96, 83, 71, 72, 57, 120, 63, 69, 56, 54, 67, 80, 59, 56, 62, 71, 57, 56, 66, 69, 57, 46, 59, 61, 72, 70, 58, 54, 49, 77, 63, 57, 71, 77, 66, 96, 65, 67, 64, 59, 70, 69, 73, 60, 82, 56, 63, 60, 61, 51, 97, 58, 47, 60, 79, 76, 78, 59, 92, 84, 49, 53, 89, 66, 54, 82, 61, 65, 81, 76, 72, 53, 90, 50, 83, 62, 73, 78, 58, 52, 61, 55, 60, 63, 78, 92, 58, 62, 67, 67, 63, 63, 69, 73, 63, 54, 63, 83, 50, 58, 55, 64, 50, 51, 83, 55, 87, 64, 52, 105, 51, 63, 94, 69, 61, 62, 64, 57, 49, 77, 45, 80, 86, 82, 50, 71, 54, 70, 59, 61, 61, 46, 48, 69, 62, 75, 67, 51, 57, 59, 70, 85, 58, 44, 62, 72, 50, 56, 64, 66, 53, 69, 56, 59, 81, 74, 56, 49, 56, 71, 120, 80, 87, 45, 68, 73, 63, 68, 54, 57, 66, 62, 71, 70, 66, 93, 58, 67, 60, 74, 67, 64, 54, 54, 50, 60, 63, 70, 66, 56, 72, 90, 61, 53, 40, 53, 82, 54, 61, 57, 77, 69, 51, 58, 60, 63, 52, 67, 58, 57, 71, 65, 51, 67, 55, 56, 45, 70, 53, 45, 59, 92, 58, 75, 49, 43, 74, 43, 59, 62, 92, 62, 66, 74, 55, 44, 57, 71, 54, 70, 80, 56, 101, 73, 82, 63, 63, 68, 71, 61, 66, 66, 75, 47, 53, 36, 57, 69, 74, 50, 47, 63, 49, 47, 85, 54, 78, 43, 70, 53, 61, 67, 74, 70, 62, 54, 83, 63, 94, 56, 60, 55, 71, 54, 64, 57, 70, 76, 62, 69, 62, 59, 63, 50, 120, 124, 64, 49, 72, 94, 70, 46, 74, 62, 74, 30, 71, 101, 79, 56, 78, 78, 91, 74, 67, 59, 60, 90, 66, 55, 77, 60, 62, 74, 76, 58, 72, 49, 60, 67, 58, 69, 48, 91, 59, 59, 84, 51, 63, 67, 67, 62, 70, 67, 70, 71, 51, 58, 50, 80, 77, 62, 63, 72, 66, 66, 53, 72, 52, 83, 85, 62, 69, 68, 83, 66, 51, 37, 61, 54, 59, 68, 68, 89, 69, 69, 62, 52, 104, 50, 81, 66, 70, 58, 62, 62, 69, 60, 47, 76, 61, 73, 61, 95, 56, 60, 64, 53, 59, 81, 57, 70, 64, 84, 64, 67, 63, 83, 67, 62, 76, 93, 67, 83, 40, 47, 65, 63, 103, 60, 79, 47, 54, 63, 56, 89, 64, 90, 53, 73, 60, 73, 72, 75, 70, 54, 72, 60, 52, 60, 61, 57, 72, 72, 60, 74, 71, 61, 62, 57, 74, 57, 61, 60, 70, 84, 64, 56, 58, 89, 60, 73, 42, 49, 51, 58, 51, 69, 78, 78, 98, 64, 54, 61, 63, 121, 64, 46, 69, 86, 67, 71, 61, 68, 49, 55, 65, 59, 90, 65, 53, 58, 67, 54, 55, 64, 64, 66, 68, 67, 123, 83, 79, 74, 92, 62, 92, 72, 67, 72, 75, 64, 60, 80, 57, 73, 85, 59, 58, 72, 63, 76, 49, 49, 57, 74, 94, 54, 53, 74, 42, 66, 70, 79, 64, 39, 113, 73, 69, 55, 74, 75, 64, 56, 72, 82, 73, 68, 60, 71, 95, 61, 84, 70, 59, 76, 55, 56, 63, 78, 91, 74, 68, 71, 59, 53, 67, 96, 73, 59, 61, 69, 76, 62, 56, 51, 56, 47, 71, 57, 97, 47, 77, 65, 88, 76, 56, 79, 73, 58, 51, 89, 52, 56, 66, 47, 67, 76, 71, 68, 66, 42, 47, 49, 72, 81, 49, 60, 85, 85, 58, 70, 54, 81, 82, 50, 49, 88, 91, 64, 58, 62, 45, 69, 61, 48, 50, 68, 49, 51, 65, 83, 49, 47, 83, 83, 59, 91, 56, 67, 68, 57, 57, 48, 46, 72, 59, 52, 62, 57, 64, 74, 65, 74, 44, 61, 70, 43, 64, 44, 60, 74, 52, 66, 70, 59, 81, 54, 55, 71, 60, 64, 70, 76, 38, 66, 51, 86, 55, 63, 53, 61, 70, 59, 83, 46, 57, 92, 69, 62, 44, 86, 61, 53, 55, 63, 69, 63, 46, 60, 59, 69, 80, 69, 106, 60, 127, 85, 64, 61, 62, 52, 51, 76, 82, 90, 58, 55, 63, 67, 73, 83, 68, 55, 54, 72, 93, 44, 61, 60, 67, 72, 55, 58, 83, 66, 50, 76, 51, 72, 55, 56, 68, 73, 55, 55, 52, 68, 54, 64, 63, 64, 57, 67, 61, 88, 75, 47, 67, 73, 63, 49, 45, 70, 85, 72, 85, 46, 54, 64, 54, 54, 69, 65, 83, 70, 48, 69, 65, 72, 45, 68, 61, 62, 75, 75, 49, 57, 59, 117, 60, 79, 55, 69, 56, 65, 67, 68, 71, 80, 85, 94, 60, 52, 74, 61, 76, 48, 65, 61, 74, 56, 54, 82, 77, 82, 69, 53, 66, 74, 61, 59, 65, 68, 50, 71, 58, 64, 53, 71, 66, 86, 61, 54, 55, 77, 57, 54, 40, 62, 51, 63, 86, 120, 58, 60, 62, 59, 78, 63, 72, 59, 65, 82, 67, 68, 74, 50, 67, 67, 73, 59, 58, 54, 62, 56, 70, 65, 63, 103, 65, 55, 67, 58, 60, 41, 85, 58, 64, 85, 91, 75, 70, 59, 81, 68, 43, 60, 63, 57, 55, 67, 62, 67, 109, 64, 54, 56, 93, 81, 57, 62, 79, 67, 70, 62, 68, 79, 67, 65, 64, 72, 53, 69, 90, 60, 73, 69, 71, 90, 57, 95, 61, 77, 49, 56, 68, 72, 89, 65, 53, 58, 91, 65, 72, 48, 47, 54, 68, 59, 64, 62, 48, 77, 92, 75, 67, 62, 98, 58, 50, 79, 64, 103, 57, 84, 63, 57, 75, 64, 76, 46, 94, 54, 60, 74, 77, 55, 79, 77, 61, 71, 49, 62, 75, 82, 62, 55, 67, 55, 67, 64, 111, 58, 49, 80, 62, 48, 58, 57, 46, 49, 77, 79, 83, 62, 86, 57, 93, 64, 68, 76, 62, 59, 84, 64, 84, 66, 81, 71, 81, 87, 60, 75, 63, 60, 55, 48, 67, 56, 55, 62, 72, 79, 102, 62, 85, 55, 80, 106, 65, 88, 67, 70, 58, 50, 79, 70, 67, 48, 68, 84, 68, 59, 67, 42, 85, 49, 64, 92, 80, 51, 73, 64, 58, 52, 67, 57, 78, 79, 49, 95, 83, 55, 83, 68, 68, 90, 50, 79, 70, 46, 55, 85, 80, 52, 69, 56, 53, 70, 56, 63, 64, 55, 59, 77, 80, 54, 57, 80, 46, 73, 62, 62, 47, 62, 70, 55, 74, 54, 59, 66, 60, 46, 75, 61, 81, 55, 68, 76, 53, 70, 90, 51, 57, 63, 88, 65, 59, 68, 59, 51, 51, 88, 63, 65, 70, 85, 54, 55, 85, 77, 78, 104, 56, 53, 76, 57, 56, 57, 67, 68, 75, 58, 51, 75, 73, 84, 46, 67, 54, 64, 68, 76, 60, 89, 42, 81, 79, 52, 78, 61, 65, 51, 71, 63, 59, 77, 61, 60, 61, 61, 64, 55, 54, 60, 78, 66, 94, 62, 68, 64, 47, 48, 91, 70, 65, 94, 74, 69, 51, 66, 66, 84, 67, 59, 63, 76, 43, 66, 52, 52, 62, 59, 62, 77, 61, 56, 67, 59, 63, 58, 58, 69, 87, 86, 60, 50, 53, 61, 64, 69, 66, 64, 72, 61, 53, 67, 56, 85, 73, 48, 67, 55, 59, 47, 59, 63, 73, 50, 54, 65, 63, 77, 69, 79, 52, 53, 100, 80, 62, 59, 74, 64, 122, 65, 91, 61, 58, 75, 56, 53, 56, 81, 59, 77, 83, 108, 86, 63, 63, 57, 63, 78, 71, 64, 61, 39, 66, 55, 46, 53, 74, 55, 71, 57, 73, 67, 70, 60, 61, 63, 55, 71, 73, 82, 69, 98, 51, 72, 68, 77, 57, 70, 65, 44, 55, 59, 65, 72, 67, 65, 70, 77, 64, 71, 78, 60, 69, 70, 58, 79, 84, 57, 82, 80, 63, 46, 77, 81, 61, 64, 123, 55, 94, 60, 48, 82, 60, 49, 75, 64, 59, 63, 55, 66, 51, 88, 64, 101, 76, 68, 80, 51, 60, 41, 69, 85, 48, 62, 66, 55, 58, 65, 89, 53, 53, 48, 47, 81, 85, 98, 88, 70, 92, 50, 42, 71, 58, 52, 62, 52, 73, 82, 50, 60, 87, 55, 72, 61, 84, 61, 51, 60, 58, 75, 52, 61, 58, 57, 57, 84, 98, 45, 66, 71, 67, 33, 60, 72, 85, 46, 57, 74, 68, 67, 67, 58, 42, 47, 56, 71, 65, 99, 80, 71, 65, 84, 45, 72, 58, 41, 93, 61, 93, 68, 60, 61, 59, 69, 57, 74, 50, 73, 70, 49, 50, 61, 57, 71, 59, 59, 76, 52, 55, 73, 61, 76, 55, 79, 68, 63, 69, 68, 98, 73, 62, 65, 52, 73, 43, 61, 52, 65, 63, 57, 62, 75, 68, 81, 45, 76, 73, 54, 72, 51, 49, 79, 62, 88, 79, 65, 57, 60, 85, 49, 51, 53, 54, 114, 75, 70, 65, 80, 92, 79, 53, 115, 67, 80, 68, 91, 75, 73, 62, 104, 61, 60, 61, 79, 83, 60, 78, 62, 61, 58, 66, 82, 79, 63, 52, 69, 45, 70, 46, 50, 49, 52, 62, 73, 36, 65, 57, 72, 40, 74, 61, 60, 80, 93, 67, 57, 64, 47, 64, 68, 76, 64, 75, 81, 70, 49, 66, 67, 69, 49, 108, 54, 62, 61, 57, 105, 70, 62, 94, 80, 75, 56, 61, 61, 57, 62, 66, 84, 70, 46, 74, 69, 57, 66, 60, 135, 109, 56, 67, 61, 61, 88, 75, 70, 88, 41, 62, 46, 80, 49, 91, 79, 54, 82, 68, 82, 87, 43, 83, 95, 72, 78, 91, 64, 61, 73, 66, 65, 61, 87, 80, 81, 52, 78, 62, 79, 76, 54, 57, 65, 82, 55, 83, 70, 67, 65, 53, 62, 64, 73, 49, 54, 61, 55, 79, 56, 77, 61, 64, 61, 84, 60, 71, 66, 66, 63, 49, 59, 69, 91, 95, 80, 54, 52, 37, 64, 52, 63, 111, 65, 59, 67, 62, 59, 73, 57, 62, 47, 85, 68, 44, 62, 62, 46, 140, 57, 64, 68, 62, 39, 60, 51, 61, 61, 86, 38, 66, 60, 50, 98, 53, 61, 65, 57, 65, 58, 58, 58, 63, 44, 61, 48, 53, 66, 53, 73, 64, 65, 71, 58, 57, 63, 95, 44, 64, 114, 60, 96, 59, 76, 51, 66, 67, 69, 72, 72, 54, 52, 61, 85, 60, 62, 61, 87, 89, 56, 76, 73, 59, 47, 48, 63, 74, 65, 78, 66, 90, 53, 72, 76, 62, 86, 56, 51, 54, 79, 71, 79, 72, 56, 61, 66, 47, 56, 96, 65, 71, 67, 73, 63, 51, 48, 87, 71, 52, 61, 67, 67, 48, 62, 63, 55, 66, 43, 61, 80, 94, 106, 64, 73, 43, 74, 57, 51, 63, 47, 78, 92, 74, 74, 85, 53, 72, 66, 66, 75, 49, 56, 74, 55, 90, 57, 52, 58, 52, 73, 64, 65, 67, 61, 52, 69, 98, 45, 63, 61, 64, 63, 53, 80, 69, 72, 81, 72, 52, 63, 61, 50, 72, 64, 59, 79, 44, 83, 35, 63, 61, 55, 63, 60, 64, 92, 76, 66, 71, 56, 87, 59, 52, 54, 57, 69, 75, 89, 74, 60, 63, 51, 88, 66, 62, 57, 68, 63, 94, 59, 52, 51, 78, 75, 62, 61, 72, 79, 64, 74, 67, 46, 71, 88, 46, 72, 91, 49, 70, 58, 65, 51, 93, 55, 104, 52, 126, 55, 60, 64, 68, 67, 78, 48, 61, 60, 68, 67, 108, 53, 63, 41, 71, 35, 77, 70, 82, 73, 68, 79, 87, 65, 77, 45, 57, 50, 57, 89, 68, 97, 103, 85, 37, 43, 74, 51, 87, 55, 59, 46, 54, 90, 75, 58, 72, 75, 40, 50, 62, 43, 59, 51, 66, 76, 105, 85, 55, 77, 43, 63, 95, 87, 62, 66, 60, 76, 82, 65, 68, 75, 71, 103, 60, 68, 102, 95, 72, 62, 59, 78, 61, 75, 58, 68, 59, 66, 53, 48, 43, 56, 44, 42, 57, 63, 73, 103, 80, 76, 82, 42, 65, 56, 61, 59, 67, 71, 82, 60, 92, 56, 66, 61, 106, 57, 66, 43, 91, 48, 74, 63, 55, 43, 64, 71, 59, 69, 88, 65, 117, 83, 49, 44, 90, 90, 54, 55, 48, 60, 53, 62, 70, 68, 45, 66, 39, 64, 50, 70, 77, 53, 56, 108, 76, 64, 63, 63, 46, 60, 51, 79, 44, 144, 70, 68, 52, 65, 65, 69, 67, 65, 66, 96, 71, 59, 119, 64, 58, 83, 67, 54, 62, 76, 78, 48, 69, 51, 58, 56, 54, 85, 63, 60, 67, 66, 60, 73, 79, 65, 71, 59, 89, 73, 52, 62, 47, 66, 66, 74, 104, 61, 70, 65, 69, 48, 42, 78, 58, 46, 71, 64, 62, 105, 62, 59, 57, 77, 76, 66, 60, 53, 63, 73, 57, 66, 43, 75, 67, 78, 60, 73, 79, 71, 51, 81, 50, 80, 72, 57, 62, 73, 58, 61, 78, 56, 48, 59, 61, 71, 51, 57, 52, 54, 64, 61, 60, 83, 63, 40, 52, 50, 68, 45, 65, 60, 102, 69, 79, 68, 75, 64, 101, 62, 82, 55, 82, 72, 59, 56, 76, 108, 59, 83, 59, 63, 62, 51, 91, 53, 49, 71, 77, 83, 60, 58, 51, 51, 70, 81, 63, 75, 57, 62, 77, 55, 73, 45, 56, 43, 58, 75, 37, 70, 78, 55, 82, 72, 84, 59, 60, 62, 81, 84, 71, 62, 44, 86, 68, 50, 69, 51, 62, 52, 38, 55, 47, 66, 63, 64, 45, 78, 66, 65, 48, 53, 57, 59, 66, 57, 74, 70, 63, 76, 74, 76, 58, 63, 55, 58, 75, 71, 78, 64, 69, 65, 66, 55, 66, 59, 62, 62, 64, 73, 57, 64, 46, 67, 73, 68, 61, 53, 92, 65, 77, 115, 55, 66, 66, 56, 70, 52, 52, 57, 51, 98, 59, 58, 51, 49, 58, 54, 87, 70, 60, 74, 60, 67, 46, 73, 63, 75, 58, 57, 58, 63, 67, 50, 59, 60, 61, 60, 56, 48, 72, 56, 67, 86, 61, 48, 52, 61, 58, 58, 57, 93, 76, 53, 69, 52, 52, 56, 58, 66, 59, 59, 50, 62, 67, 63, 67, 85, 66, 59, 76, 59, 76, 59, 57, 101, 91, 62, 59, 52, 49, 76, 58, 62, 98, 62, 68, 66, 58, 60, 61, 74, 72, 67, 66, 68, 63, 68, 101, 100, 64, 48, 62, 91, 67, 60, 48, 84, 59, 70, 55, 54, 70, 63, 55, 59, 56, 127, 74, 48, 64, 66, 77, 66, 80, 62, 52, 78, 66, 51, 59, 63, 88, 99, 69, 67, 53, 84, 73, 55, 81, 61, 68, 55, 70, 65, 65, 69, 72, 52, 58, 69, 95, 58, 67, 62, 69, 67, 57, 74, 57, 63, 67, 58, 60, 65, 123, 50, 80, 72, 75, 71, 51, 77, 62, 69, 43, 83, 63, 67, 54, 70, 68, 53, 51, 60, 82, 41, 60, 61, 81, 62, 91, 75, 85, 53, 77, 59, 54, 84, 69, 53, 52, 62, 67, 75, 55, 76, 66, 61, 51, 59, 88, 72, 51, 60, 52, 99, 68, 69, 59, 53, 53, 73, 73, 80, 76, 49, 75, 44, 45, 64, 60, 74, 72, 49, 82, 73, 52, 64, 64, 65, 68, 66, 67, 63, 63, 82, 71, 54, 61, 51, 68, 53, 62, 44, 57, 58, 47, 66, 59, 62, 60, 49, 92, 64, 83, 64, 43, 68, 58, 46, 59, 60, 53, 91, 62, 52, 60, 95, 66, 61, 71, 83, 65, 89, 55, 62, 56, 58, 40, 73, 61, 68, 96, 59, 54, 67, 70, 65, 61, 69, 64, 57, 75, 68, 53, 52, 63, 64, 63, 77, 78, 65, 57, 65, 73, 64, 43, 59, 68, 70, 66, 73, 67, 78, 86, 67, 105, 133, 67, 61, 71, 61, 67, 114, 73, 74, 72, 56, 65, 61, 62, 86, 64, 70, 65, 74, 61, 93, 56, 60, 70, 49, 67, 69, 61, 59, 63, 55, 59, 56, 144, 56, 68, 56, 54, 63, 69, 62, 103, 64, 79, 81, 72, 84, 80, 64, 55, 56, 83, 133, 57, 61, 53, 86, 63, 59, 71, 104, 57, 77, 35, 63, 57, 68, 67, 62, 58, 46, 78, 74, 63, 71, 64, 66, 54, 52, 50, 63, 65, 70, 71, 62, 63, 55, 76, 66, 63, 87, 61, 86, 59, 59, 52, 68, 69, 54, 63, 60, 67, 82, 58, 75, 59, 58, 65, 53, 53, 61, 50, 68, 64, 65, 79, 56, 48, 57, 64, 52, 58, 49, 57, 64, 56, 69, 69, 93, 69, 56, 78, 71, 53, 74, 54, 50, 62, 70, 55, 58, 63, 59, 66, 47, 67, 55, 47, 55, 59, 66, 54, 71, 61, 57, 63, 56, 58, 43, 71, 64, 58, 75, 60, 59, 61, 54, 55, 58, 72, 65, 71, 45, 64, 77, 54, 55, 63, 77, 62, 67, 73, 46, 66, 74, 53, 57, 79, 109, 56, 74, 72, 61, 59, 59, 58, 61, 61, 55, 59, 80, 70, 71, 72, 68, 58, 64, 58, 62, 59, 94, 59, 58, 63, 56, 73, 67, 79, 54, 55, 64, 70, 60, 66, 61, 72, 70, 63, 54, 83, 66, 47, 65, 86, 60, 47, 50, 60, 79, 62, 76, 73, 67, 61, 56, 47, 82, 53, 66, 136, 65, 64, 66, 47, 67, 66, 61, 77, 40, 56, 73, 75, 67, 68, 70, 81, 75, 65, 81, 64, 71, 59, 78, 84, 56, 62, 72, 58, 60, 57, 61, 70, 44, 60, 83, 49, 53, 70, 74, 67, 68, 57, 58, 63, 50, 62, 78, 62, 62, 107, 68, 55, 58, 118, 67, 58, 83, 59, 73, 65, 99, 61, 90, 56, 91, 51, 70, 74, 53, 72, 59, 107, 88, 59, 78, 48, 55, 61, 71, 59, 56, 67, 73, 91, 66, 54, 48, 65, 68, 70, 80, 57, 67, 101, 57, 52, 61, 48, 59, 74, 67, 71, 48, 75, 51, 65, 50, 67, 90, 66, 52, 49, 64, 61, 72, 65, 78, 64, 82, 67, 68, 73, 62, 67, 76, 57, 58, 68, 54, 63, 61, 56, 68, 58, 74, 62, 53, 65, 60, 64, 66, 61, 76, 70, 76, 59, 83, 83, 49, 54, 74, 74, 43, 58, 75, 60, 57, 66, 34, 46, 55, 55, 53, 70, 144, 57, 51, 57, 83, 60, 64, 73, 57, 57, 65, 52, 70, 63, 64, 63, 69, 65, 63, 54, 51, 87, 59, 72, 59, 77, 55, 61, 67, 62, 62, 73, 69, 62, 85, 67, 52, 84, 60, 63, 74, 87, 65, 73, 63, 76, 64, 65, 49, 58, 70, 64, 65, 55, 75, 58, 66, 52, 93, 66, 54, 56, 73, 59, 62, 66, 86, 85, 48, 64, 91, 71, 66, 56, 57, 84, 57, 57, 71, 54, 61, 64, 63, 82, 68, 80, 116, 68, 85, 51, 68, 73, 69, 62, 89, 65, 51, 52, 61, 57, 56, 96, 84, 59, 73, 45, 86, 77, 81, 78, 63, 57, 51, 54, 56, 58, 58, 71, 55, 64, 58, 74, 92, 66, 77, 79, 59, 72, 70, 60, 69, 70, 78, 74, 64, 92, 57, 69, 65, 85, 59, 123, 61, 61, 56, 52, 63, 63, 54, 50, 71, 59, 93, 57, 91, 57, 57, 90, 63, 64, 54, 58, 66, 78, 51, 79, 59, 64, 64, 73, 77, 71, 59, 51, 58, 70, 76, 82, 56, 68, 68, 77, 59, 80, 58, 58, 55, 59, 55, 56, 61, 64, 87, 78, 54, 82, 70, 69, 72, 83, 64, 68, 63, 67, 53, 71, 77, 66, 48, 58, 46, 51, 62, 70, 56, 62, 67, 67, 62, 70, 76, 61, 73, 72, 51, 78, 75, 67, 54, 61, 52, 82, 65, 46, 49, 54, 66, 47, 86, 59, 48, 82, 50, 51, 56, 96, 68, 67, 69, 59, 52, 51, 83, 66, 38, 75, 56, 59, 53, 63, 71, 68, 68, 48, 61, 64, 64, 82, 74, 71, 76, 65, 68, 56, 68, 65, 71, 69, 60, 56, 50, 81, 82, 65, 71, 73, 62, 66, 53, 61, 54, 69, 68, 66, 60, 49, 56, 57, 70, 74, 79, 70, 64, 69, 73, 81, 100, 64, 64, 75, 61, 58, 56, 63, 61, 60, 79, 73, 66, 71, 66, 70, 61, 53, 88, 58, 64, 81, 58, 66, 49, 53, 68, 71, 57, 62, 60, 66, 71, 73, 60, 65, 61, 73, 61, 62, 64, 61, 62, 56, 61, 56, 86, 76, 61, 61, 52, 61, 71, 74, 61, 68, 68, 74, 55, 58, 56, 60, 68, 77, 92, 55, 69, 73, 66, 66, 62, 72, 62, 63, 61, 61, 59, 69, 76, 65, 45, 68, 84, 62, 71, 63, 71, 83, 52, 68, 70, 53, 69, 88, 60, 74, 63, 54, 76, 81, 55, 64, 68, 70, 76, 64, 73, 70, 53, 70, 67, 54, 66, 55, 60, 81, 60, 56, 65, 69, 52, 65, 70, 63, 56, 58, 65, 69, 54, 60, 61, 96, 69, 74, 62, 59, 68, 64, 55, 59, 59, 104, 83, 63, 62, 88, 60, 61, 71, 63, 71, 59, 78, 75, 65, 65, 62, 61, 69, 68, 72, 103, 64, 84, 92, 66, 65, 55, 62, 64, 65, 61, 61, 66, 62, 61, 57, 55, 67, 60, 56, 65, 60, 59, 57, 58, 71, 71, 75, 58, 61, 56, 55, 95, 87, 57, 55, 55, 66, 61, 69, 49, 66, 56, 69, 64, 60, 59, 70, 71, 76, 69, 58, 59, 57, 71, 65, 59, 84, 44, 45, 75, 58, 64, 59, 74, 57, 65, 80, 88, 113, 86, 63, 57, 46, 53, 60, 65, 54, 73, 71, 63, 83, 100, 67, 90, 58, 59, 68, 57, 64, 61, 63, 66, 65, 59, 76, 63, 62, 60, 64, 59, 74, 62, 71, 60, 60, 61, 73, 75, 72, 79, 60, 59, 56, 65, 58, 65, 57, 62, 55, 61, 81, 65, 61, 61, 64, 68, 60, 63, 91, 70, 52, 63, 71, 54, 85, 57, 61, 67, 64, 61, 61, 92, 97, 55, 62, 71, 55, 57, 60, 56, 73, 63, 66, 60, 62, 61, 76, 59, 75, 60, 59, 52, 62, 57, 60, 65, 55, 70, 49, 65, 76, 64, 66, 69, 70, 69, 61, 74, 75, 68, 60, 77, 72, 69, 66, 55, 83, 62, 58, 54, 82, 81, 64, 71, 120, 58, 58, 60, 110, 66, 60, 69, 76, 51, 58, 66, 56, 73, 66, 66, 59, 62, 63, 66, 103, 88, 56, 58, 81, 58, 58, 61, 60, 58, 78, 67, 64, 60, 67, 71, 58, 83, 72, 65, 59, 57, 80, 55, 66, 64, 65, 59, 62, 63, 67, 69, 66, 58, 63, 61, 56, 74, 111, 59, 82, 69, 67, 73, 54, 76, 64, 64, 56, 64, 60, 58, 61, 64, 64, 61, 69, 63, 67, 66, 52, 66, 58, 69, 74, 65, 72, 61, 68, 74, 66, 59, 53, 60, 71, 67, 59, 69, 70, 106, 61, 64, 71, 67, 62, 61, 68, 78, 70, 53, 79, 62, 49, 60, 79, 58, 58, 71, 64, 85, 67, 65, 61, 69, 44, 80, 56, 127, 66, 75, 67, 66, 69, 65, 60, 71, 90, 70, 65, 86, 75, 106, 57, 56, 61, 58, 62, 78, 55, 58, 59, 67, 59, 64, 66, 70, 70, 56, 53, 76, 54, 63, 58, 87, 59, 62, 64, 63, 80, 69, 64, 72, 72, 64, 55, 60, 59, 62, 60, 58, 59, 65, 58, 51, 55, 63, 67, 62, 56, 66, 61, 58, 66, 78, 73, 59, 52, 70, 62, 83, 49, 67, 76, 58, 56, 60, 68, 66, 67, 71, 67, 56, 67, 76, 100, 60, 66, 59, 63, 58, 73, 53, 67, 70, 54, 62, 60, 69, 62, 70, 63, 106, 60, 55, 59, 76, 68, 64, 60, 62, 55, 55, 67, 62, 105, 52, 68, 95, 45, 64, 85, 82, 55, 66, 55, 66, 64, 59, 70, 78, 63, 91, 87, 68, 98, 78, 63, 73, 69, 69, 64, 67, 63, 71, 66, 60, 66, 56, 59, 56, 60, 67, 67, 71, 63, 100, 68, 59, 83, 68, 88, 83, 75, 42, 57, 62, 63, 60, 55, 80, 58, 66, 66, 61, 52, 54, 73, 58, 57, 58, 70, 64, 63, 58, 63, 55, 58, 87, 58, 67, 63, 59, 63, 66, 47, 55, 63, 55, 76, 57, 58, 51, 62, 67, 63, 65, 58, 56, 83, 71, 62, 73, 74, 63, 74, 57, 61, 92, 58, 57, 70, 55, 60, 60, 55, 58, 77, 61, 63, 58, 62, 73, 58, 62, 65, 65, 65, 63, 60, 67, 86, 64, 122, 75, 59, 68, 87, 64, 61, 78, 68, 65, 59, 69, 64, 66, 62, 74, 62, 91, 54, 73, 99, 93, 53, 65, 73, 86, 72, 57, 50, 58, 64, 68, 62, 73, 71, 65, 67, 56, 51, 62, 46, 63, 58, 65, 56, 62, 74, 60, 62, 82, 60, 60, 59, 63, 59, 68, 65, 50, 60, 67, 68, 50, 73, 54, 75, 76, 86, 75, 62, 51, 59, 52, 92, 58, 48, 97, 77, 83, 60, 61, 62, 60, 57, 66, 58, 76, 61, 71, 65, 66, 69, 74, 66, 64, 55, 68, 56, 59, 85, 97, 65, 57, 67, 69, 58, 60, 58, 73, 70, 57, 72, 72, 77, 56, 58, 74, 66, 56, 65, 76, 69, 65, 54, 77, 63, 61, 74, 59, 59, 67, 62, 83, 63, 63, 57, 71, 67, 53, 69, 58, 66, 51, 66, 58, 59, 53, 67, 62, 62, 65, 67, 73, 56, 77, 66, 67, 56, 71, 72, 59, 75, 63, 55, 58, 78, 64, 55, 62, 67, 56, 68, 52, 67, 58, 64, 65, 65, 69, 61, 58, 78, 52, 53, 70, 69, 65, 56, 69, 80, 66, 77, 57, 82, 63, 59, 69, 68, 59, 81, 71, 65, 70, 60, 54, 65, 71, 48, 60, 64, 61, 46, 75, 89, 87, 53, 73, 58, 57, 61, 103, 53, 62, 65, 93, 63, 67, 72, 82, 56, 60, 69, 77, 60, 54, 74, 94, 88, 76, 60, 44, 58, 69, 89, 61, 84, 44, 91, 62, 65, 83, 55, 80, 70, 37, 78, 69, 62, 41, 93, 70, 62, 57, 63, 76, 68, 68, 77, 87, 56, 66, 47, 47, 105, 63, 65, 60, 94, 62, 83, 59, 63, 79, 98, 80, 88, 54, 79, 55, 56, 57, 65, 58, 60, 62, 74, 62, 62, 68, 70, 68, 68, 75, 63, 70, 52, 58, 84, 59, 50, 53, 74, 56, 64, 50, 87, 70, 54, 72, 71, 54, 73, 79, 63, 52, 65, 72, 57, 62, 78, 55, 63, 69, 103, 34, 100, 53, 69, 72, 57, 76, 57, 52, 80, 49, 64, 52, 63, 80, 59, 81, 75, 67, 59, 116, 67, 62, 91, 65, 72, 70, 56, 63, 64, 44, 60, 58, 102, 60, 59, 86, 69, 60, 71, 68, 59, 57, 64, 68, 65, 61, 49, 47, 67, 60, 61, 77, 72, 78, 81, 59, 70, 69, 36, 46, 68, 83, 63, 76, 81, 75, 66, 56, 62, 57, 82, 50, 66, 74, 78, 50, 46, 102, 47, 68, 62, 53, 61, 85, 75, 69, 35, 66, 86, 70, 60, 56, 38, 75, 70, 64, 86, 66, 47, 81, 48, 83, 54, 49, 45, 60, 58, 105, 64, 59, 77, 67, 70, 56, 52, 61, 60, 68, 66, 62, 57, 73, 51, 41, 70, 53, 82, 49, 53, 60, 59, 48, 63, 66, 61, 53, 106, 67, 72, 76, 50, 92, 66, 36, 55, 63, 41, 117, 72, 64, 61, 60, 67, 60, 61, 57, 62, 71, 63, 58, 76, 101, 39, 74, 63, 70, 60, 98, 84, 51, 128, 81, 53, 97, 65, 66, 63, 61, 48, 57, 49, 50, 52, 55, 76, 58, 70, 86, 59, 84, 60, 74, 73, 60, 56, 80, 92, 55, 87, 56, 47, 66, 63, 85, 59, 69, 51, 61, 67, 68, 50, 75, 70, 62, 60, 54, 59, 49, 45, 71, 56, 65, 52, 64, 71, 64, 68, 68, 65, 52, 83, 81, 62, 72, 47, 78, 67, 67, 97, 64, 75, 73, 62, 76, 104, 72, 72, 77, 78, 47, 49, 81, 44, 103, 57, 64, 85, 72, 65, 69, 57, 77, 98, 61, 66, 131, 57, 71, 77, 73, 74, 38, 64, 115, 78, 75, 56, 61, 54, 73, 54, 78, 72, 52, 71, 80, 58, 47, 46, 50, 63, 52, 40, 47, 55, 62, 64, 60, 48, 63, 81, 82, 60, 60, 42, 66, 51, 62, 70, 41, 81, 84, 88, 58, 67, 63, 51, 50, 53, 78, 81, 76, 115, 69, 67, 69, 73, 68, 72, 55, 60, 56, 88, 71, 47, 56, 61, 80, 110, 54, 63, 44, 75, 70, 53, 81, 65, 55, 51, 56, 64, 66, 104, 58, 70, 42, 62, 54, 59, 66, 46, 70, 57, 62, 64, 83, 65, 71, 56, 55, 69, 80, 59, 57, 48, 79, 64, 93, 77, 51, 82, 58, 41, 66, 56, 63, 49, 60, 66, 64, 98, 62, 57, 56, 64, 48, 48, 69, 73, 69, 66, 62, 46, 73, 78, 66, 44, 91, 70, 56, 95, 70, 68, 52, 63, 64, 55, 58, 58, 69, 109, 81, 57, 39, 61, 62, 66, 76, 45, 56, 66, 62, 74, 78, 77, 48, 69, 74, 57, 78, 60, 84, 62, 66, 47, 92, 53, 70, 94, 65, 71, 55, 62, 48, 55, 77, 70, 67, 64, 81, 46, 58, 80, 69, 80, 59, 69, 58, 69, 57, 43, 65, 73, 63, 61, 69, 68, 98, 53, 60, 58, 79, 80, 48, 49, 58, 50, 64, 71, 66, 56, 60, 85, 50, 59, 97, 65, 50, 83, 43, 97, 57, 70, 63, 66, 61, 74, 73, 66, 61, 63, 75, 74, 75, 97, 76, 59, 77, 68, 52, 63, 53, 66, 68, 83, 66, 75, 61, 87, 65, 66, 62, 94, 70, 94, 54, 52, 63, 59, 50, 69, 55, 64, 64, 47, 97, 62, 83, 72, 99, 77, 82, 52, 96, 65, 57, 40, 39, 74, 78, 47, 69, 60, 55, 68, 138, 56, 56, 86, 52, 68, 75, 47, 73, 55, 97, 115, 86, 75, 99, 86, 51, 66, 69, 55, 71, 73, 51, 65, 124, 55, 74, 55, 74, 79, 73, 51, 58, 51, 44, 69, 55, 71, 77, 90, 82, 59, 50, 57, 94, 84, 48, 75, 66, 55, 79, 60, 78, 61, 66, 80, 76, 60, 62, 81, 67, 48, 55, 49, 69, 74, 55, 50, 54, 56, 54, 77, 51, 79, 60, 49, 46, 42, 28, 63, 69, 128, 58, 83, 71, 86, 43, 71, 73, 82, 75, 64, 116, 56, 59, 85, 67, 76, 59, 94, 75, 77, 71, 57, 70, 67, 59, 65, 69, 60, 68, 68, 66, 63, 47, 98, 56, 75, 58, 52, 70, 56, 47, 75, 51, 60, 89, 50, 39, 87, 97, 69, 57, 59, 60, 75, 54, 71, 63, 65, 60, 44, 48, 51, 105, 62, 51, 44, 66, 53, 66, 78, 62, 59, 65, 85, 107, 71, 64, 52, 54, 45, 58, 54, 45, 83, 75, 78, 61, 73, 66, 67, 53, 46, 63, 113, 73, 57, 87, 58, 65, 69, 54, 78, 79, 88, 48, 59, 66, 46, 58, 64, 101, 56, 66, 49, 71, 56, 55, 60, 63, 61, 111, 54, 97, 57, 55, 64, 78, 47, 76, 76, 46, 58, 48, 104, 104, 49, 58, 61, 51, 42, 64, 44, 51, 52, 60, 96, 49, 58, 53, 50, 97, 55, 53, 61, 84, 70, 40, 77, 68, 63, 92, 89, 62, 73, 64, 41, 76, 53, 86, 64, 82, 67, 62, 65, 74, 50, 64, 69, 44, 76, 67, 67, 47, 76, 71, 48, 59, 62, 55, 42, 70, 42, 89, 63, 57, 57, 106, 68, 54, 44, 48, 62, 90, 74, 66, 61, 59, 58, 43, 56, 93, 78, 70, 90, 77, 50, 40, 60, 113, 50, 62, 51, 72, 55, 60, 65, 58, 74, 74, 71, 46, 64, 60, 54, 70, 64, 81, 68, 94, 82, 49, 73, 76, 82, 65, 47, 61, 69, 74, 46, 80, 60, 65, 111, 57, 84, 41, 135, 45, 73, 58, 56, 73, 70, 70, 50, 60, 43, 67, 49, 61, 72, 81, 98, 61, 50, 79, 62, 58, 64, 73, 84, 48, 56, 75, 100, 61, 79, 68, 67, 53, 69, 79, 65, 79, 54, 65, 66, 71, 68, 56, 68, 62, 60, 47, 54, 62, 72, 86, 51, 55, 50, 38, 57, 59, 102, 56, 62, 70, 80, 62, 69, 72, 63, 102, 75, 88, 84, 66, 66, 69, 68, 67, 60, 54, 65, 59, 59, 68, 59, 61, 60, 60, 73, 83, 60, 58, 59, 59, 85, 61, 66, 61, 81, 56, 71, 72, 85, 52, 67, 77, 55, 62, 65, 73, 85, 54, 61, 59, 67, 54, 68, 66, 59, 68, 101, 77, 104, 62, 73, 72, 61, 60, 60, 66, 64, 58, 59, 64, 78, 76, 62, 75, 67, 79, 68, 58, 52, 65, 87, 79, 74, 68, 61, 62, 52, 49, 72, 81, 85, 64, 63, 73, 85, 47, 72, 55, 72, 57, 46, 60, 69, 75, 71, 41, 75, 68, 56, 74, 85, 72, 102, 79, 57, 57, 59, 59, 66, 67, 55, 65, 89, 92, 78, 60, 60, 50, 68, 68, 74, 69, 92, 61, 52, 62, 49, 61, 60, 76, 47, 67, 102, 78, 74, 62, 68, 82, 49, 59, 58, 74, 77, 82, 71, 71, 52, 64, 42, 69, 59, 74, 38, 63, 62, 112, 65, 80, 58, 54, 57, 54, 76, 64, 67, 85, 64, 53, 49, 80, 52, 61, 58, 67, 69, 51, 54, 84, 67, 42, 63, 55, 59, 67, 90, 61, 72, 65, 61, 87, 64, 57, 47, 46, 59, 109, 46, 76, 49, 67, 48, 62, 56, 63, 70, 61, 68, 54, 84, 78, 52, 68, 69, 60, 62, 70, 89, 64, 109, 65, 60, 99, 81, 64, 57, 72, 66, 53, 67, 63, 51, 57, 71, 52, 70, 77, 55, 71, 62, 93, 63, 62, 63, 60, 85, 65, 64, 62, 43, 60, 69, 69, 48, 76, 63, 69, 57, 61, 61, 79, 73, 62, 67, 78, 60, 59, 52, 65, 60, 61, 73, 77, 57, 46, 68, 68, 83, 60, 57, 68, 60, 62, 54, 60, 68, 56, 97, 62, 55, 63, 51, 69, 53, 55, 79, 64, 76, 57, 53, 79, 69, 101, 47, 78, 87, 79, 90, 66, 56, 70, 99, 69, 66, 126, 62, 61, 70, 77, 63, 56, 71, 116, 53, 64, 54, 50, 48, 74, 68, 73, 62, 74, 68, 74, 61, 77, 67, 52, 55, 68, 51, 47, 66, 68, 46, 44, 71, 66, 62, 56, 70, 62, 52, 64, 59, 50, 79, 54, 73, 56, 76, 49, 63, 51, 51, 67, 68, 68, 92, 48, 98, 61, 53, 55, 83, 64, 61, 62, 64, 75, 77, 73, 43, 76, 53, 77, 120, 66, 61, 48, 97, 76, 60, 64, 62, 51, 67, 52, 55, 58, 74, 96, 58, 64, 68, 62, 61, 55, 65, 70, 69, 55, 62, 62, 56, 82, 54, 61, 75, 88, 73, 84, 76, 87, 53, 99, 68, 39, 58, 47, 61, 73, 52, 58, 56, 88, 63, 58, 68, 58, 50, 56, 44, 59, 56, 78, 66, 50, 59, 66, 53, 90, 54, 59, 62, 87, 63, 65, 95, 40, 72, 48, 55, 59, 61, 52, 71, 61, 89, 64, 58, 62, 64, 54, 62, 86, 71, 70, 67, 59, 55, 62, 68, 65, 68, 88, 59, 57, 75, 73, 67, 75, 61, 80, 85, 60, 104, 57, 67, 67, 65, 53, 66, 70, 62, 51, 61, 62, 64, 64, 79, 62, 51, 52, 62, 70, 65, 60, 56, 56, 76, 59, 64, 67, 82, 126, 58, 39, 54, 67, 60, 61, 67, 75, 58, 65, 69, 59, 70, 65, 54, 59, 63, 68, 53, 68, 88, 60, 90, 61, 74, 50, 67, 63, 75, 67, 58, 77, 71, 61, 57, 69, 94, 63, 54, 72, 76, 65, 71, 70, 53, 62, 72, 68, 65, 45, 61, 54, 70, 62, 88, 67, 81, 51, 64, 77, 56, 65, 69, 58, 52, 70, 57, 89, 43, 59, 68, 103, 72, 59, 57, 84, 55, 67, 51, 51, 69, 65, 57, 92, 64, 56, 57, 149, 36, 41, 103, 72, 48, 72, 69, 67, 50, 94, 100, 83, 68, 94, 65, 47, 75, 72, 67, 61, 64, 63, 66, 133, 72, 66, 59, 61, 85, 67, 49, 57, 50, 52, 73, 56, 75, 76, 75, 122, 71, 65, 64, 79, 58, 67, 68, 68, 58, 93, 69, 74, 59, 73, 82, 49, 55, 78, 95, 56, 53, 80, 77, 60, 63, 65, 56, 44, 63, 68, 53, 68, 72, 56, 58, 63, 71, 63, 57, 66, 107, 73, 63, 62, 72, 52, 50, 74, 66, 58, 67, 104, 61, 63, 85, 53, 87, 58, 87, 86, 78, 75, 60, 64, 72, 47, 62, 58, 60, 72, 53, 55, 59, 55, 74, 79, 70, 57, 59, 61, 82, 51, 74, 65, 64, 71, 70, 70, 68, 93, 49, 70, 51, 62, 71, 60, 58, 60, 68, 67, 85, 57, 63, 69, 65, 56, 58, 77, 60, 79, 85, 45, 53, 66, 73, 69, 71, 67, 75, 56, 54, 71, 59, 47, 70, 62, 78, 53, 53, 61, 62, 47, 65, 75, 63, 65, 71, 68, 67, 80, 64, 56, 66, 70, 48, 48, 54, 63, 41, 52, 68, 67, 56, 68, 54, 76, 55, 66, 78, 60, 79, 105, 63, 98, 51, 58, 53, 56, 73, 64, 65, 54, 73, 50, 113, 83, 74, 48, 60, 65, 57, 66, 64, 62, 60, 56, 82, 60, 67, 68, 65, 70, 52, 51, 73, 91, 73, 58, 87, 68, 56, 59, 68, 54, 49, 70, 57, 69, 63, 87, 74, 84, 76, 64, 70, 67, 50, 67, 63, 58, 65, 63, 59, 51, 66, 65, 60, 56, 72, 50, 53, 42, 56, 93, 61, 50, 59, 70, 69, 58, 44, 68, 60, 65, 56, 66, 48, 47, 48, 60, 60, 95, 80, 66, 81, 75, 66, 57, 61, 89, 49, 60, 55, 67, 54, 64, 56, 74, 59, 49, 66, 58, 66, 56, 51, 75, 76, 49, 63, 108, 85, 61, 69, 76, 77, 55, 56, 61, 69, 87, 60, 64, 62, 75, 77, 59, 87, 59, 71, 57, 73, 63, 64, 53, 79, 54, 50, 73, 70, 65, 72, 66, 60, 92, 99, 67, 53, 76, 67, 54, 72, 85, 55, 66, 77, 52, 100, 60, 85, 66, 59, 73, 63, 69, 66, 55, 60, 65, 69, 71, 70, 59, 52, 68, 70, 66, 64, 51, 48, 54, 71, 59, 60, 52, 70, 75, 55, 64, 65, 85, 56, 87, 72, 72, 65, 123, 83, 73, 71, 68, 62, 63, 58, 100, 80, 59, 64, 59, 63, 73, 58, 71, 62, 76, 51, 57, 57, 67, 60, 65, 87, 45, 67, 55, 68, 61, 62, 42, 60, 47, 66, 64, 67, 54, 70, 77, 71, 66, 59, 70, 50, 70, 72, 63, 67, 61, 62, 81, 63, 67, 55, 55, 90, 48, 57, 54, 61, 65, 59, 77, 64, 67, 67, 62, 58, 82, 54, 71, 63, 53, 68, 70, 44, 67, 59, 55, 61, 64, 57, 78, 70, 61, 71, 61, 76, 79, 77, 54, 67, 62, 68, 51, 68, 63, 83, 60, 56, 55, 40, 62, 67, 49, 101, 88, 65, 75, 62, 59, 66, 104, 55, 57, 95, 73, 67, 56, 71, 57, 89, 72, 57, 48, 91, 67, 50, 70, 49, 52, 65, 63, 54, 51, 140, 104, 59, 68, 54, 76, 57, 61, 75, 71, 68, 65, 50, 55, 64, 79, 56, 75, 57, 91, 64, 73, 54, 105, 64, 60, 63, 66, 77, 53, 63, 60, 64, 61, 67, 60, 58, 46, 60, 64, 67, 57, 127, 58, 54, 54, 61, 66, 63, 62, 48, 62, 59, 58, 60, 51, 52, 83, 77, 62, 71, 51, 82, 80, 67, 120, 62, 78, 41, 66, 62, 61, 50, 69, 53, 67, 62, 70, 65, 61, 50, 43, 54, 55, 79, 65, 92, 82, 60, 74, 73, 59, 64, 52, 73, 56, 74, 59, 50, 54, 54, 51, 69, 96, 75, 72, 55, 97, 63, 51, 58, 46, 74, 73, 69, 72, 58, 76, 45, 61, 75, 62, 89, 71, 96, 53, 54, 65, 72, 48, 60, 45, 51, 63, 87, 51, 64, 52, 48, 82, 60, 53, 63, 59, 74, 73, 83, 92, 86, 67, 55, 50, 66, 59, 90, 71, 57, 68, 54, 67, 66, 60, 63, 76, 81, 55, 48, 67, 68, 69, 63, 48, 75, 59, 92, 66, 71, 77, 132, 70, 68, 134, 104, 60, 60, 41, 61, 63, 92, 110, 70, 57, 61, 47, 64, 63, 81, 52, 63, 72, 76, 55, 59, 82, 68, 59, 65, 54, 70, 61, 90, 44, 45, 57, 57, 72, 52, 67, 44, 73, 58, 45, 53, 58, 65, 51, 90, 76, 60, 55, 49, 62, 54, 62, 93, 62, 89, 59, 91, 54, 67, 69, 49, 72, 64, 59, 46, 70, 75, 65, 52, 58, 59, 62, 96, 82, 69, 65, 61, 84, 65, 57, 66, 59, 61, 66, 68, 57, 63, 78, 55, 66, 51, 58, 52, 48, 59, 55, 55, 71, 62, 59, 58, 51, 84, 46, 72, 63, 73, 47, 56, 63, 80, 55, 75, 65, 73, 65, 55, 50, 65, 48, 81, 69, 65, 61, 57, 60, 59, 74, 51, 76, 46, 114, 81, 52, 68, 62, 90, 78, 68, 50, 57, 58, 62, 69, 51, 52, 62, 49, 55, 44, 70, 77, 87, 68, 66, 64, 57, 63, 48, 91, 54, 57, 79, 59, 63, 70, 58, 46, 58, 70, 61, 106, 62, 46, 77, 49, 55, 92, 66, 91, 66, 58, 85, 66, 80, 55, 65, 45, 63, 52, 53, 63, 70, 64, 62, 73, 61, 66, 62, 53, 71, 65, 60, 76, 58, 61, 77, 77, 75, 90, 50, 99, 58, 57, 60, 57, 67, 72, 55, 70, 76, 61, 66, 77, 54, 63, 60, 52, 58, 78, 58, 90, 81, 68, 69, 64, 62, 51, 70, 42, 55, 71, 61, 54, 45, 82, 71, 49, 81, 51, 73, 68, 79, 66, 86, 86, 48, 68, 44, 58, 68, 78, 62, 49, 56, 85, 82, 92, 99, 65, 65, 58, 55, 61, 60, 64, 49, 61, 59, 63, 94, 52, 58, 49, 45, 56, 50, 63, 78, 62, 56, 50, 57, 51, 61, 64, 73, 64, 78, 146, 57, 51, 96, 97, 68, 50, 92, 65, 46, 62, 80, 99, 69, 89, 57, 61, 77, 69, 54, 59, 48, 56, 54, 123, 54, 70, 57, 71, 74, 65, 71, 57, 56, 75, 60, 68, 64, 70, 65, 57, 80, 42, 44, 52, 60, 56, 71, 54, 65, 64, 60, 88, 61, 56, 62, 56, 53, 79, 78, 67, 65, 48, 81, 76, 59, 48, 86, 82, 61, 61, 63, 60, 60, 69, 62, 84, 61, 56, 60, 52, 90, 67, 56, 61, 64, 63, 72, 100, 62, 46, 62, 79, 54, 87, 99, 60, 87, 57, 61, 93, 71, 82, 85, 53, 57, 62, 71, 77, 72, 68, 57, 68, 48, 51, 71, 67, 61, 60, 89, 67, 79, 68, 77, 46, 61, 92, 60, 57, 101, 78, 59, 76, 58, 74, 46, 60, 62, 38, 68, 90, 60, 57, 54, 64, 86, 46, 79, 62, 63, 53, 90, 63, 52, 60, 60, 55, 58, 60, 74, 46, 77, 71, 78, 46, 55, 52, 68, 54, 55, 63, 55, 64, 68, 43, 52, 57, 55, 69, 66, 78, 68, 67, 82, 62, 57, 52, 60, 66, 85, 55, 90, 96, 60, 52, 63, 84, 75, 62, 54, 51, 96, 88, 65, 103, 64, 56, 67, 56, 53, 66, 50, 56, 63, 69, 118, 68, 57, 60, 67, 56, 65, 73, 57, 60, 69, 72, 60, 57, 60, 67, 72, 46, 53, 58, 53, 81, 60, 62, 78, 93, 54, 63, 60, 56, 54, 83, 66, 73, 59, 71, 70, 73, 61, 76, 68, 84, 61, 64, 75, 71, 57, 62, 67, 76, 74, 60, 89, 58, 70, 55, 70, 74, 63, 74, 63, 59, 61, 61, 64, 61, 66, 53, 65, 47, 63, 63, 59, 49, 80, 65, 74, 80, 82, 70, 46, 75, 61, 63, 67, 49, 59, 64, 65, 80, 46, 59, 73, 100, 71, 44, 68, 63, 70, 45, 67, 71, 68, 68, 81, 69, 70, 56, 69, 69, 57, 48, 54, 59, 74, 72, 62, 72, 66, 71, 77, 60, 70, 89, 48, 69, 45, 58, 73, 85, 52, 61, 41, 110, 58, 43, 51, 56, 79, 46, 106, 56, 56, 67, 49, 55, 69, 96, 44, 73, 75, 53, 102, 61, 41, 67, 79, 51, 63, 78, 66, 66, 70, 55, 57, 63, 71, 72, 67, 74, 92, 45, 56, 47, 77, 63, 66, 54, 61, 72, 55, 68, 47, 56, 74, 66, 75, 72, 90, 67, 66, 45, 74, 50, 77, 51, 84, 60, 76, 99, 56, 60, 55, 66, 52, 61, 48, 69, 66, 137, 75, 53, 70, 82, 49, 64, 95, 35, 49, 48, 59, 65, 55, 60, 62, 67, 62, 50, 57, 56, 55, 72, 71, 64, 60, 59, 56, 64, 84, 41, 53, 65, 49, 80, 87, 75, 39, 59, 71, 71, 51, 60, 63, 45, 60, 47, 79, 56, 61, 84, 79, 72, 67, 57, 80, 78, 55, 59, 86, 70, 59, 66, 44, 57, 45, 70, 60, 62, 50, 61, 64, 59, 52, 60, 38, 61, 82, 72, 80, 50, 41, 79, 62, 67, 72, 62, 60, 58, 63, 69, 60, 80, 66, 64, 56, 105, 62, 60, 139, 78, 75, 78, 67, 61, 84, 73, 60, 55, 62, 72, 75, 90, 64, 70, 73, 96, 86, 64, 63, 75, 59, 68, 60, 62, 57, 70, 59, 74, 68, 68, 62, 36, 49, 67, 78, 92, 63, 95, 83, 55, 68, 72, 66, 56, 66, 55, 61, 84, 54, 54, 53, 48, 55, 68, 59, 81, 62, 54, 49, 57, 40, 43, 72, 61, 79, 59, 53, 49, 52, 58, 58, 64, 68, 54, 68, 87, 50, 71, 78, 103, 84, 60, 71, 66, 61, 54, 58, 85, 52, 62, 64, 63, 66, 61, 55, 72, 61, 71, 80, 61, 59, 76, 50, 71, 77, 72, 54, 101, 61, 71, 49, 61, 53, 58, 60, 34, 67, 52, 42, 51, 58, 83, 49, 72, 52, 115, 62, 73, 60, 73, 62, 55, 64, 73, 48, 64, 61, 65, 74, 43, 50, 118, 65, 66, 48, 84, 105, 63, 66, 61, 60, 59, 68, 60, 58, 38, 58, 43, 53, 60, 60, 52, 60, 71, 87, 53, 87, 66, 82, 59, 51, 85, 51, 64, 52, 59, 64, 74, 62, 66, 48, 60, 81, 62, 71, 93, 79, 57, 65, 60, 64, 58, 90, 62, 56, 45, 84, 63, 52, 128, 69, 58, 54, 98, 43, 70, 77, 71, 72, 56, 71, 95, 57, 89, 61, 50, 90, 67, 74, 66, 67, 94, 61, 71, 90, 68, 61, 61, 118, 32, 98, 62, 61, 65, 45, 59, 60, 62, 69, 60, 75, 59, 63, 43, 44, 70, 51, 53, 56, 65, 48, 68, 82, 46, 50, 60, 84, 61, 51, 51, 75, 64, 57, 55, 56, 72, 84, 59, 58, 78, 85, 64, 62, 81, 66, 73, 85, 65, 59, 59, 45, 61, 59, 57, 103, 54, 64, 69, 63, 50, 52, 52, 46, 60, 72, 61, 75, 49, 46, 54, 68, 60, 75, 58, 61, 70, 80, 70, 83, 52, 47, 74, 75, 68, 54, 78, 64, 61, 60, 88, 71, 68, 68, 56, 55, 53, 64, 64, 61, 85, 60, 86, 53, 69, 57, 53, 99, 79, 62, 64, 69, 77, 59, 63, 45, 66, 77, 59, 74, 72, 45, 62, 68, 65, 88, 73, 48, 63, 77, 105, 61, 74, 75, 68, 74, 61, 53, 83, 65, 74, 50, 79, 55, 46, 112, 72, 47, 80, 60, 73, 56, 56, 37, 70, 51, 89, 62, 57, 52, 79, 59, 66, 67, 64, 82, 89, 71, 50, 81, 75, 95, 78, 68, 71, 55, 41, 102, 83, 59, 59, 56, 84, 66, 76, 84, 93, 75, 93, 70, 60, 55, 58, 41, 70, 54, 76, 65, 82, 56, 75, 74, 62, 64, 54, 39, 63, 65, 43, 34, 54, 57, 50, 57, 58, 95, 61, 58, 66, 94, 67, 65, 72, 51, 90, 52, 57, 58, 79, 73, 50, 61, 57, 90, 70, 57, 57, 77, 81, 67, 65, 72, 55, 58, 67, 74, 80, 46, 82, 59, 73, 67, 65, 75, 59, 58, 69, 50, 50, 69, 53, 50, 69, 82, 67, 53, 61, 112, 68, 67, 95, 64, 45, 83, 112, 61, 66, 81, 60, 62, 40, 108, 88, 69, 86, 76, 67, 99, 82, 47, 70, 80, 63, 45, 85, 48, 55, 49, 56, 101, 42, 51, 56, 61, 60, 69, 59, 74, 60, 72, 58, 58, 53, 75, 66, 90, 89, 55, 52, 80, 47, 63, 93, 60, 58, 72, 54, 99, 68, 58, 61, 47, 52, 55, 60, 68, 66, 55, 83, 65, 43, 39, 65, 111, 76, 48, 65, 50, 53, 65, 64, 99, 52, 67, 62, 51, 67, 46, 108, 89, 93, 73, 126, 56, 92, 49, 66, 65, 51, 52, 64, 55, 48, 50, 56, 79, 55, 72, 55, 63, 50, 69, 53, 90, 49, 86, 68, 58, 73, 58, 71, 75, 68, 73, 68, 67, 75, 51, 73, 75, 86, 42, 66, 55, 48, 74, 63, 57, 63, 67, 62, 58, 46, 46, 70, 52, 49, 62, 56, 49, 74, 39, 54, 49, 67, 81, 82, 64, 67, 66, 42, 86, 48, 84, 43, 62, 58, 56, 71, 55, 90, 65, 77, 55, 39, 54, 50, 71, 68, 52, 72, 66, 52, 54, 69, 65, 65, 46, 53, 116, 57, 74, 78, 56, 35, 34, 56, 57, 92, 48, 53, 36, 66, 75, 112, 59, 56, 58, 61, 116, 62, 83, 49, 53, 93, 66, 59, 59, 69, 67, 54, 64, 92, 98, 69, 60, 82, 54, 52, 55, 71, 53, 73, 75, 59, 61, 88, 106, 59, 66, 55, 81, 58, 57, 76, 72, 78, 75, 61, 67, 64, 44, 75, 54, 54, 56, 59, 62, 56, 110, 54, 68, 57, 62, 57, 46, 70, 71, 71, 83, 70, 82, 67, 56, 77, 58, 52, 65, 70, 70, 85, 46, 59, 61, 59, 77, 66, 54, 51, 52, 80, 104, 101, 66, 79, 70, 59, 93, 72, 58, 57, 62, 81, 75, 60, 58, 47, 57, 73, 77, 48, 94, 59, 66, 72, 60, 72, 57, 66, 47, 73, 74, 68, 82, 74, 83, 67, 63, 63, 59, 67, 36, 40, 57, 83, 53, 80, 58, 59, 58, 90, 40, 58, 54, 91, 65, 77, 41, 67, 65, 83, 60, 53, 56, 73, 88, 46, 99, 86, 69, 65, 55, 80, 69, 68, 62, 72, 59, 55, 68, 56, 72, 53, 75, 76, 58, 54, 68, 51, 58, 32, 78, 64, 95, 50, 60, 67, 60, 73, 69, 48, 69, 59, 51, 60, 67, 62, 99, 62, 77, 50, 54, 69, 88, 71, 49, 60, 61, 84, 80, 76, 53, 45, 62, 56, 50, 57, 62, 48, 66, 69, 64, 81, 62, 51, 34, 64, 57, 81, 64, 91, 57, 66, 75, 64, 57, 80, 61, 80, 74, 94, 50, 90, 56, 57, 63, 114, 90, 56, 58, 60, 47, 55, 62, 64, 85, 60, 96, 69, 78, 59, 59, 73, 57, 74, 69, 121, 72, 45, 71, 81, 86, 74, 69, 62, 56, 63, 57, 69, 77, 57, 56, 51, 56, 51, 67, 87, 72, 79, 59, 63, 79, 79, 69, 55, 49, 64, 63, 84, 58, 50, 73, 99, 58, 57, 55, 62, 43, 67, 74, 57, 67, 68, 64, 44, 55, 46, 67, 45, 71, 83, 76, 70, 43, 64, 40, 60, 96, 60, 101, 62, 65, 54, 89, 70, 60, 88, 59, 57, 70, 64, 53, 104, 43, 53, 46, 57, 64, 75, 67, 59, 67, 70, 59, 59, 68, 58, 83, 61, 87, 73, 52, 90, 67, 69, 55, 85, 51, 46, 48, 69, 71, 70, 67, 53, 55, 74, 69, 55, 80, 70, 71, 68, 45, 65, 66, 65, 60, 80, 62, 48, 56, 48, 43, 51, 79, 53, 74, 62, 58, 49, 67, 56, 83, 64, 34, 72, 101, 74, 89, 42, 75, 57, 70, 73, 56, 65, 65, 100, 70, 82, 69, 57, 62, 76, 61, 59, 60, 85, 78, 68, 62, 67, 68, 63, 61, 60, 46, 52, 67, 45, 62, 54, 71, 68, 57, 74, 86, 40, 64, 70, 60, 48, 99, 114, 42, 68, 47, 60, 66, 72, 48, 69, 58, 35, 54, 62, 52, 50, 59, 72, 77, 80, 61, 67, 59, 62, 53, 63, 65, 76, 63, 56, 76, 64, 52, 56, 64, 68, 63, 63, 71, 65, 78, 52, 58, 76, 69, 52, 61, 79, 55, 62, 65, 51, 77, 63, 96, 55, 51, 72, 95, 77, 69, 41, 76, 63, 67, 65, 75, 58, 114, 52, 56, 113, 40, 85, 60, 78, 36, 85, 91, 70, 62, 47, 63, 68, 73, 69, 75, 75, 86, 57, 69, 53, 53, 103, 74, 45, 25, 59, 67, 44, 86, 79, 68, 48, 65, 104, 55, 50, 45, 56, 57, 102, 60, 89, 59, 74, 68, 36, 87, 63, 62, 76, 68, 96, 148, 69, 57, 63, 64, 60, 64, 69, 87, 62, 66, 67, 60, 58, 78, 48, 41, 90, 57, 107, 85, 83, 79, 61, 71, 73, 44, 61, 76, 64, 91, 65, 76, 75, 70, 75, 60, 68, 69, 81, 74, 49, 66, 60, 86, 98, 72, 58, 63, 51, 58, 43, 81, 57, 77, 59, 64, 82, 44, 58, 63, 52, 53, 59, 57, 73, 56, 67, 65, 54, 71, 60, 53, 60, 63, 59, 91, 54, 59, 67, 68, 51, 53, 62, 36, 125, 63, 56, 75, 68, 63, 83, 75, 57, 72, 69, 78, 72, 68, 81, 60, 59, 59, 65, 66, 60, 59, 66, 64, 58, 60, 69, 66, 61, 61, 54, 68, 68, 59, 65, 54, 57, 58, 54, 75, 68, 65, 58, 58, 68, 75, 90, 54, 62, 63, 46, 90, 76, 54, 67, 62, 66, 55, 114, 52, 62, 53, 62, 63, 77, 79, 66, 46, 86, 58, 64, 66, 72, 98, 82, 72, 61, 64, 63, 58, 83, 62, 40, 52, 74, 64, 68, 73, 83, 60, 56, 83, 65, 72, 66, 62, 52, 60, 63, 59, 63, 57, 92, 71, 69, 60, 44, 43, 109, 31, 65, 63, 77, 80, 69, 52, 56, 54, 58, 70, 67, 83, 46, 69, 57, 129, 58, 92, 76, 84, 54, 80, 58, 93, 64, 61, 56, 66, 73, 63, 48, 70, 48, 62, 85, 78, 70, 59, 53, 83, 74, 73, 55, 61, 61, 43, 64, 54, 50, 39, 60, 73, 105, 62, 55, 89, 110, 74, 66, 69, 60, 54, 86, 75, 61, 60, 58, 122, 61, 92, 64, 61, 55, 96, 75, 107, 57, 56, 76, 78, 51, 68, 58, 62, 70, 55, 73, 59, 72, 86, 53, 73, 65, 38, 84, 59, 58, 119, 108, 65, 59, 65, 69, 58, 49, 64, 50, 60, 86, 56, 75, 79, 65, 62, 74, 60, 68, 59, 57, 57, 105, 50, 49, 52, 55, 49, 83, 79, 51, 58, 78, 73, 65, 59, 44, 69, 67, 69, 78, 64, 79, 57, 74, 86, 72, 63, 69, 70, 61, 70, 65, 50, 85, 59, 78, 66, 63, 79, 83, 69, 65, 43, 64, 63, 85, 71, 75, 137, 90, 59, 63, 41, 77, 57, 83, 53, 65, 79, 80, 56, 59, 57, 56, 68, 54, 58, 53, 74, 41, 51, 52, 50, 86, 53, 102, 79, 55, 43, 55, 61, 68, 68, 64, 78, 82, 59, 73, 72, 130, 56, 59, 83, 70, 64, 51, 74, 68, 78, 74, 87, 76, 68, 63, 78, 66, 76, 73, 64, 55, 46, 67, 47, 69, 70, 62, 55, 78, 72, 56, 57, 71, 69, 82, 67, 68, 68, 69, 52, 55, 31, 75, 72, 71, 72, 50, 69, 104, 69, 45, 96, 75, 63, 77, 78, 45, 102, 53, 93, 57, 68, 63, 75, 58, 113, 66, 53, 59, 63, 61, 63, 81, 61, 64, 56, 84, 82, 74, 57, 54, 58, 43, 91, 62, 49, 70, 73, 54, 51, 58, 59, 51, 50, 88, 53, 71, 72, 54, 67, 101, 64, 57, 62, 74, 57, 62, 66, 108, 50, 42, 75, 62, 67, 48, 53, 50, 58, 75, 97, 97, 66, 84, 76, 71, 77, 50, 67, 77, 89, 55, 70, 62, 57, 56, 60, 67, 113, 75, 58, 64, 55, 61, 61, 62, 53, 79, 75, 73, 66, 45, 72, 57, 56, 89, 54, 68, 50, 70, 52, 55, 45, 61, 59, 105, 76, 84, 63, 55, 75, 56, 68, 53, 112, 79, 74, 86, 60, 69, 75, 66, 73, 79, 72, 77, 68, 67, 73, 71, 62, 88, 74, 72, 54, 61, 52, 40, 64, 57, 78, 50, 56, 75, 46, 69, 50, 88, 60, 69, 56, 67, 50, 63, 61, 83, 62, 67, 71, 76, 57, 65, 61, 71, 72, 55, 43, 68, 65, 55, 44, 57, 63, 56, 77, 90, 76, 49, 78, 60, 63, 67, 70, 57, 70, 49, 71, 59, 77, 60, 71, 76, 53, 77, 71, 69, 68, 64, 75, 47, 86, 53, 67, 77, 72, 59, 52, 72, 71, 93, 53, 55, 88, 54, 48, 69, 83, 45, 50, 51, 59, 86, 78, 55, 64, 79, 53, 75, 52, 66, 64, 59, 82, 74, 68, 71, 47, 69, 70, 56, 74, 64, 80, 83, 58, 87, 60, 56, 58, 62, 59, 95, 65, 73, 86, 51, 100, 70, 67, 86, 62, 74, 54, 47, 52, 53, 65, 58, 74, 60, 60, 65, 51, 78, 56, 70, 90, 108, 64, 83, 57, 61, 66, 51, 73, 42, 59, 69, 48, 66, 63, 65, 49, 69, 55, 61, 59, 72, 62, 67, 55, 43, 43, 60, 72, 88, 58, 48, 69, 69, 63, 59, 70, 59, 101, 83, 70, 63, 77, 75, 68, 57, 45, 67, 58, 84, 61, 97, 35, 45, 46, 67, 84, 65, 64, 53, 96, 76, 59, 64, 46, 89, 69, 72, 60, 100, 62, 73, 56, 57, 62, 63, 48, 57, 65, 69, 71, 59, 75, 67, 53, 60, 73, 65, 91, 69, 62, 46, 58, 59, 69, 57, 62, 48, 72, 60, 68, 42, 48, 78, 50, 71, 62, 73, 61, 92, 56, 56, 80, 77, 58, 72, 66, 57, 37, 59, 95, 57, 72, 63, 60, 58, 68, 72, 51, 71, 55, 58, 51, 57, 66, 74, 68, 80, 52, 55, 65, 88, 59, 62, 66, 66, 62, 63, 49, 47, 66, 66, 65, 81, 60, 44, 82, 45, 51, 84, 69, 57, 74, 77, 42, 85, 76, 69, 72, 49, 58, 73, 71, 49, 66, 86, 77, 62, 73, 82, 66, 52, 75, 69, 66, 67, 63, 56, 70, 66, 66, 53, 54, 83, 72, 51, 63, 59, 57, 56, 71, 69, 59, 52, 70, 59, 57, 60, 61, 80, 66, 76, 61, 55, 116, 55, 63, 52, 45, 55, 73, 55, 59, 76, 61, 50, 64, 62, 59, 81, 111, 74, 54, 122, 52, 57, 56, 80, 49, 81, 101, 84, 42, 67, 65, 76, 60, 51, 62, 81, 73, 64, 47, 50, 49, 102, 50, 74, 62, 60, 78, 48, 106, 64, 72, 64, 66, 59, 58, 39, 58, 72, 64, 63, 39, 78, 73, 55, 68, 55, 62, 69, 63, 72, 51, 83, 133, 57, 66, 65, 85, 58, 53, 51, 85, 67, 58, 71, 48, 71, 81, 55, 66, 58, 55, 73, 104, 80, 58, 47, 55, 99, 63, 66, 62, 68, 79, 70, 102, 55, 52, 55, 78, 58, 76, 43, 46, 78, 63, 73, 85, 66, 39, 59, 61, 64, 71, 60, 81, 82, 68, 63, 47, 59, 57, 68, 79, 64, 52, 66, 59, 69, 67, 88, 58, 72, 60, 80, 57, 52, 65, 84, 68, 70, 75, 74, 73, 71, 65, 56, 31, 91, 40, 60, 53, 59, 53, 67, 74, 96, 82, 73, 97, 70, 58, 68, 59, 55, 85, 58, 69, 58, 68, 104, 58, 62, 63, 79, 63, 72, 50, 76, 62, 72, 52, 83, 62, 59, 66, 43, 84, 99, 63, 50, 50, 60, 76, 63, 57, 104, 72, 54, 80, 51, 57, 63, 60, 64, 53, 115, 45, 65, 58, 57, 79, 68, 61, 102, 70, 76, 80, 44, 55, 74, 51, 125, 61, 63, 58, 55, 66, 64, 51, 51, 50, 61, 60, 52, 70, 64, 53, 54, 56, 69, 58, 57, 52, 81, 57, 67, 82, 63, 62, 64, 70, 65, 63, 63, 59, 103, 54, 64, 64, 46, 65, 60, 52, 71, 57, 60, 74, 55, 99, 67, 52, 59, 101, 66, 42, 63, 72, 69, 94, 63, 72, 64, 66, 52, 62, 59, 73, 92, 41, 63, 66, 53, 87, 50, 62, 69, 53, 70, 86, 64, 51, 73, 68, 52, 58, 52, 84, 49, 54, 111, 55, 73, 66, 92, 48, 62, 50, 65, 80, 70, 73, 83, 81, 93, 65, 67, 89, 71, 59, 60, 63, 66, 51, 49, 82, 68, 61, 49, 84, 59, 62, 80, 55, 64, 54, 75, 59, 63, 51, 53, 61, 79, 62, 61, 68, 64, 64, 59, 61, 69, 73, 66, 48, 53, 89, 84, 56, 76, 90, 66, 53, 51, 81, 57, 79, 80, 69, 42, 72, 51, 63, 81, 67, 67, 55, 59, 57, 57, 63, 61, 95, 52, 72, 66, 84, 84, 50, 94, 58, 49, 60, 86, 58, 50, 120, 40, 79, 60, 61, 81, 58, 78, 74, 62, 62, 88, 63, 59, 63, 61, 46, 69, 56, 50, 112, 86, 59, 78, 58, 56, 66, 53, 83, 63, 100, 81, 49, 65, 51, 46, 54, 61, 52, 57, 76, 49, 55, 57, 48, 85, 69, 102, 71, 56, 64, 69, 95, 58, 66, 80, 75, 29, 53, 81, 73, 74, 50, 49, 55, 61, 57, 80, 55, 54, 60, 61, 66, 55, 53, 60, 64, 78, 75, 73, 74, 65, 63, 52, 71, 76, 71, 54, 48, 74, 59, 77, 67, 62, 43, 64, 64, 55, 79, 51, 56, 69, 66, 65, 70, 54, 69, 91, 62, 145, 65, 55, 72, 59, 56, 70, 67, 66, 59, 58, 113, 94, 65, 61, 60, 64, 64, 61, 64, 47, 57, 63, 53, 59, 72, 78, 61, 89, 75, 50, 58, 54, 38, 71, 89, 52, 56, 90, 54, 72, 46, 79, 58, 53, 61, 79, 74, 61, 68, 80, 52, 63, 69, 57, 61, 65, 53, 60, 59, 49, 66, 46, 78, 54, 62, 67, 65, 58, 67, 70, 60, 60, 90, 57, 60, 45, 63, 56, 60, 64, 70, 79, 56, 71, 52, 66, 50, 95, 133, 76, 58, 73, 53, 58, 64, 59, 47, 71, 51, 41, 64, 76, 74, 61, 81, 53, 61, 67, 69, 59, 64, 75, 62, 67, 54, 53, 43, 98, 87, 58, 56, 64, 59, 64, 104, 74, 97, 86, 62, 65, 84, 87, 93, 61, 64, 56, 64, 66, 53, 60, 60, 101, 62, 79, 62, 76, 80, 55, 47, 62, 65, 73, 62, 76, 70, 66, 58, 98, 63, 79, 71, 93, 77, 79, 88, 62, 50, 61, 62, 66, 62, 62, 69, 61, 59, 61, 76, 69, 55, 61, 55, 50, 67, 59, 71, 57, 72, 63, 60, 59, 72, 63, 74, 58, 59, 88, 57, 66, 79, 80, 70, 74, 56, 62, 49, 52, 72, 58, 82, 65, 72, 64, 61, 68, 55, 47, 64, 80, 61, 72, 53, 65, 60, 73, 70, 99, 79, 68, 67, 61, 57, 72, 62, 78, 77, 75, 64, 68, 84, 73, 66, 106, 79, 77, 58, 69, 69, 60, 54, 59, 67, 64, 76, 60, 119, 60, 55, 69, 71, 65, 67, 72, 81, 59, 61, 99, 100, 58, 58, 59, 55, 45, 73, 55, 81, 59, 41, 63, 57, 65, 60, 55, 55, 60, 70, 78, 82, 98, 64, 60, 55, 53, 46, 65, 68, 67, 57, 63, 62, 64, 60, 64, 64, 68, 55, 53, 49, 62, 100, 55, 68, 69, 64, 71, 52, 99, 61, 57, 68, 50, 63, 51, 73, 52, 82, 84, 54, 61, 37, 60, 60, 59, 47, 57, 90, 70, 66, 91, 69, 50, 36, 66, 65, 115, 59, 50, 57, 71, 47, 57, 62, 75, 70, 82, 69, 74, 60, 100, 33, 79, 73, 87, 97, 71, 53, 68, 50, 68, 60, 57, 72, 63, 77, 56, 52, 50, 62, 67, 68, 64, 43, 56, 66, 46, 68, 61, 61, 59, 59, 65, 85, 57, 63, 55, 56, 68, 93, 69, 92, 62, 56, 78, 59, 60, 65, 72, 66, 68, 63, 51, 81, 59, 59, 71, 49, 62, 74, 76, 76, 78, 72, 66, 74, 69, 77, 58, 84, 66, 57, 77, 78, 58, 78, 78, 60, 49, 56, 70, 59, 71, 61, 66, 63, 73, 95, 103, 67, 48, 73, 75, 72, 48, 55, 59, 38, 51, 62, 79, 65, 59, 70, 63, 58, 66, 67, 64, 105, 60, 57, 66, 68, 63, 86, 84, 52, 65, 71, 68, 54, 59, 59, 60, 60, 62, 58, 74, 77, 63, 55, 62, 83, 51, 50, 62, 59, 91, 60, 50, 59, 59, 103, 50, 59, 77, 43, 58, 66, 78, 54, 66, 82, 71, 64, 50, 58, 67, 102, 46, 78, 127, 72, 76, 66, 75, 81, 63, 58, 63, 57, 66, 53, 80, 51, 54, 53, 56, 59, 66, 67, 54, 53, 63, 66, 77, 64, 58, 59, 69, 60, 66, 63, 48, 60, 51, 54, 50, 54, 74, 80, 60, 66, 50, 81, 67, 68, 59, 57, 60, 57, 70, 62, 56, 147, 56, 86, 48, 66, 72, 59, 60, 64, 58, 60, 61, 63, 67, 61, 52, 62, 60, 53, 113, 101, 45, 60, 51, 56, 104, 64, 56, 50, 54, 55, 74, 62, 56, 78, 73, 63, 68, 50, 69, 60, 68, 69, 52, 72, 51, 59, 61, 66, 55, 56, 83, 52, 57, 61, 55, 53, 74, 66, 54, 65, 59, 72, 54, 52, 51, 54, 69, 67, 50, 64, 63, 72, 64, 72, 62, 48, 59, 69, 75, 52, 78, 57, 59, 58, 91, 70, 49, 68, 57, 56, 64, 66, 67, 68, 48, 89, 63, 68, 69, 70, 65, 73, 68, 60, 43, 70, 103, 48, 55, 72, 64, 67, 60, 76, 57, 78, 64, 60, 65, 67, 66, 61, 48, 70, 94, 66, 73, 72, 84, 87, 77, 64, 67, 63, 61, 62, 101, 58, 64, 58, 53, 59, 73, 68, 65, 62, 71, 83, 74, 75, 69, 54, 61, 110, 74, 64, 43, 68, 124, 58, 53, 55, 66, 59, 87, 57, 45, 79, 59, 50, 60, 63, 61, 60, 75, 82, 70, 77, 47, 61, 67, 50, 55, 64, 54, 78, 59, 60, 64, 63, 56, 61, 149, 55, 62, 90, 78, 84, 62, 59, 77, 67, 65, 58, 62, 72, 65, 51, 74, 102, 59, 63, 72, 55, 60, 101, 59, 74, 53, 69, 58, 78, 62, 61, 77, 55, 66, 63, 52, 82, 59, 97, 88, 69, 69, 47, 60, 62, 64, 54, 69, 71, 65, 87, 50, 70, 118, 61, 69, 72, 118, 74, 56, 78, 63, 56, 51, 81, 49, 54, 73, 57, 73, 72, 70, 59, 64, 84, 56, 51, 63, 63, 62, 74, 58, 69, 70, 55, 50, 52, 63, 62, 69, 55, 67, 60, 64, 62, 126, 53, 72, 92, 72, 53, 64, 58, 71, 61, 57, 64, 55, 64, 52, 55, 84, 116, 67, 64, 75, 67, 56, 74, 66, 59, 69, 61, 70, 57, 57, 58, 57, 71, 62, 65, 62, 62, 58, 52, 76, 86, 46, 71, 62, 57, 42, 76, 89, 68, 52, 74, 46, 104, 71, 59, 67, 64, 79, 74, 56, 51, 74, 61, 62, 74, 58, 67, 89, 61, 74, 64, 60, 48, 66, 62, 63, 63, 77, 57, 100, 85, 56, 75, 83, 54, 57, 70, 73, 67, 54, 58, 73, 57, 61, 62, 71, 67, 70, 62, 58, 69, 61, 53, 56, 33, 66, 51, 65, 116, 64, 64, 55, 91, 71, 59, 72, 63, 70, 65, 71, 50, 85, 81, 59, 66, 56, 62, 58, 80, 65, 51, 75, 54, 56, 63, 61, 74, 65, 63, 62, 62, 47, 60, 50, 83, 58, 78, 73, 63, 71, 57, 78, 71, 61, 55, 68, 93, 64, 72, 99, 88, 111, 67, 60, 68, 59, 66, 66, 64, 82, 62, 60, 91, 78, 62, 62, 65, 81, 64, 59, 59, 60, 68, 49, 55, 57, 69, 87, 63, 72, 62, 68, 59, 54, 83, 65, 76, 54, 55, 63, 55, 68, 83, 62, 50, 57, 61, 59, 56, 51, 71, 73, 57, 48, 56, 59, 60, 54, 63, 60, 70, 50, 48, 80, 65, 85, 81, 56, 47, 71, 65, 67, 54, 51, 64, 82, 70, 60, 50, 67, 62, 59, 40, 77, 66, 63, 89, 67, 52, 87, 77, 59, 63, 60, 58, 55, 67, 71, 56, 66, 77, 65, 69, 55, 96, 55, 56, 49, 74, 66, 57, 68, 58, 58, 67, 67, 66, 58, 93, 56, 45, 61, 77, 62, 65, 63, 107, 66, 71, 64, 71, 49, 41, 68, 71, 83, 46, 50, 55, 73, 68, 82, 56, 80, 50, 62, 60, 64, 51, 62, 57, 51, 60, 62, 65, 102, 72, 97, 60, 68, 64, 61, 78, 61, 74, 66, 56, 65, 49, 74, 71, 65, 51, 75, 67, 49, 82, 47, 71, 70, 96, 62, 55, 74, 55, 59, 77, 63, 69, 69, 79, 59, 59, 45, 85, 69, 71, 53, 55, 71, 54, 55, 53, 87, 85, 71, 62, 72, 63, 52, 69, 50, 61, 42, 62, 82, 71, 57, 59, 60, 62, 65, 70, 59, 60, 71, 64, 64, 45, 84, 71, 48, 87, 100, 65, 79, 64, 63, 62, 64, 61, 56, 50, 69, 61, 77, 64, 90, 91, 62, 62, 82, 95, 65, 38, 56, 73, 62, 64, 69, 85, 63, 66, 61, 90, 55, 69, 86, 64, 77, 65, 62, 64, 83, 67, 96, 64, 75, 94, 58, 53, 41, 64, 82, 71, 48, 57, 62, 77, 110, 56, 85, 51, 67, 52, 58, 66, 91, 60, 118, 60, 62, 69, 75, 70, 48, 91, 79, 73, 59, 77, 85, 48, 71, 76, 64, 73, 86, 70, 67, 62, 66, 60, 64, 66, 68, 64, 74, 48, 49, 85, 71, 76, 64, 63, 62, 73, 63, 65, 103, 52, 73, 61, 75, 82, 91, 55, 67, 73, 63, 73, 53, 61, 52, 105, 81, 77, 67, 85, 50, 58, 82, 55, 89, 82, 54, 68, 65, 72, 56, 66, 65, 60, 87, 54, 60, 82, 78, 69, 58, 51, 49, 93, 68, 52, 64, 64, 48, 62, 67, 64, 66, 37, 86, 80, 57, 77, 80, 81, 75, 74, 77, 57, 66, 67, 55, 56, 55, 101, 70, 67, 76, 56, 55, 42, 57, 65, 58, 53, 65, 50, 60, 66, 54, 50, 50, 68, 60, 63, 81, 66, 79, 64, 52, 70, 44, 60, 79, 65, 58, 70, 58, 59, 58, 87, 37, 43, 83, 56, 62, 59, 52, 98, 70, 63, 68, 57, 60, 76, 63, 69, 61, 80, 54, 74, 66, 56, 62, 64, 61, 63, 59, 66, 67, 52, 72, 53, 46, 87, 59, 54, 48, 55, 47, 53, 69, 88, 60, 85, 71, 81, 67, 72, 75, 73, 49, 63, 60, 52, 63, 66, 58, 53, 89, 48, 61, 69, 75, 47, 135, 77, 49, 53, 64, 62, 63, 63, 72, 60, 69, 114, 103, 96, 54, 50, 84, 57, 54, 57, 77, 57, 49, 70, 67, 51, 65, 65, 58, 56, 66, 69, 62, 52, 107, 68, 50, 82, 51, 67, 66, 88, 74, 64, 77, 57, 67, 68, 55, 56, 63, 102, 63, 46, 53, 54, 53, 83, 62, 54, 61, 66, 57, 69, 65, 175, 51, 52, 48, 73, 67, 71, 68, 73, 66, 58, 70, 80, 66, 99, 57, 63, 52, 78, 90, 72, 72, 61, 71, 78, 96, 63, 65, 66, 66, 66, 67, 71, 67, 58, 56, 54, 62, 46, 68, 54, 68, 66, 50, 88, 38, 51, 75, 66, 60, 95, 97, 65, 72, 62, 59, 59, 42, 59, 56, 72, 53, 71, 60, 51, 63, 53, 55, 58, 77, 67, 55, 48, 53, 75, 88, 53, 91, 61, 109, 60, 62, 48, 54, 72, 67, 68, 47, 91, 60, 52, 80, 52, 51, 67, 60, 96, 82, 70, 44, 82, 80, 74, 82, 67, 51, 63, 71, 74, 69, 62, 53, 50, 60, 80, 61, 64, 53, 69, 92, 57, 54, 52, 57, 55, 55, 49, 50, 65, 66, 66, 60, 81, 68, 52, 81, 82, 93, 51, 47, 63, 69, 75, 53, 67, 53, 71, 73, 64, 70, 99, 76, 55, 63, 64, 58, 66, 88, 43, 100, 61, 55, 67, 71, 50, 84, 59, 86, 96, 62, 62, 61, 39, 61, 55, 75, 65, 71, 56, 64, 57, 45, 96, 65, 69, 50, 65, 63, 47, 67, 77, 71, 57, 105, 60, 58, 59, 45, 59, 83, 56, 54, 60, 67, 55, 70, 89, 79, 66, 52, 80, 73, 66, 68, 57, 51, 87, 55, 55, 53, 52, 73, 51, 66, 65, 44, 79, 56, 84, 58, 57, 68, 68, 67, 71, 91, 60, 57, 60, 56, 74, 40, 63, 49, 78, 73, 68, 109, 66, 58, 72, 86, 55, 84, 55, 77, 53, 63, 81, 92, 55, 110, 64, 62, 86, 71, 65, 82, 75, 68, 62, 53, 65, 90, 58, 62, 74, 57, 58, 74, 73, 77, 78, 66, 50, 96, 78, 65, 80, 51, 62, 44, 81, 78, 52, 49, 68, 64, 58, 62, 46, 69, 70, 61, 66, 90, 98, 51, 52, 69, 55, 67, 70, 55, 70, 66, 52, 63, 76, 45, 71, 72, 48, 63, 54, 48, 71, 60, 59, 52, 58, 67, 76, 47, 80, 55, 66, 60, 79, 57, 63, 43, 46, 76, 87, 57, 82, 79, 58, 58, 64, 67, 54, 50, 82, 62, 58, 68, 71, 59, 74, 58, 77, 60, 62, 61, 63, 45, 74, 81, 54, 56, 61, 48, 72, 62, 65, 53, 69, 86, 52, 54, 58, 49, 57, 60, 47, 71, 65, 73, 65, 58, 63, 59, 61, 51, 67, 52, 106, 50, 56, 52, 66, 68, 58, 79, 78, 78, 60, 56, 99, 49, 87, 109, 49, 112, 66, 75, 69, 55, 64, 71, 46, 65, 85, 58, 60, 54, 69, 74, 68, 82, 66, 62, 71, 76, 51, 81, 53, 104, 74, 49, 53, 69, 72, 67, 55, 49, 59, 72, 47, 126, 45, 76, 49, 72, 70, 63, 85, 56, 107, 69, 108, 78, 45, 63, 60, 68, 57, 89, 63, 43, 71, 60, 76, 65, 58, 46, 46, 86, 62, 72, 69, 56, 56, 46, 64, 96, 78, 67, 49, 52, 61, 61, 83, 60, 65, 71, 69, 74, 74, 77, 70, 49, 63, 62, 44, 60, 68, 54, 39, 66, 60, 70, 93, 53, 76, 59, 56, 69, 68, 77, 48, 60, 59, 58, 100, 75, 115, 46, 62, 72, 86, 81, 51, 46, 45, 64, 52, 75, 60, 63, 70, 59, 75, 54, 67, 54, 71, 62, 47, 72, 73, 61, 64, 50, 71, 96, 54, 68, 45, 53, 52, 42, 68, 49, 65, 22, 70, 80, 68, 50, 89, 60, 64, 49, 62, 70, 91, 69, 60, 40, 62, 76, 70, 121, 80, 53, 84, 66, 77, 68, 55, 71, 88, 68, 43, 62, 69, 62, 72, 63, 60, 70, 48, 49, 64, 107, 49, 71, 60, 55, 63, 64, 80, 65, 53, 60, 60, 71, 70, 52, 64, 59, 61, 50, 78, 57, 69, 50, 93, 70, 41, 65, 63, 55, 69, 80, 59, 59, 57, 64, 63, 47, 86, 53, 58, 61, 65, 63, 44, 76, 52, 109, 90, 58, 57, 71, 53, 57, 88, 73, 61, 76, 54, 73, 62, 73, 58, 43, 71, 51, 64, 68, 84, 53, 60, 54, 45, 72, 56, 60, 97, 112, 50, 57, 72, 59, 57, 71, 68, 53, 69, 54, 58, 80, 62, 78, 69, 49, 56, 92, 95, 70, 55, 56, 54, 50, 59, 56, 84, 65, 50, 80, 76, 65, 66, 58, 70, 69, 67, 55, 59, 52, 79, 75, 69, 64, 114, 56, 71, 56, 54, 71, 82, 68, 64, 54, 76, 94, 59, 78, 56, 59, 67, 57, 58, 61, 51, 103, 52, 53, 71, 45, 73, 49, 98, 69, 56, 66, 67, 66, 58, 85, 66, 70, 76, 79, 70, 50, 72, 73, 33, 57, 67, 69, 70, 63, 67, 57, 50, 77, 55, 56, 63, 53, 84, 53, 59, 112, 73, 75, 57, 70, 73, 99, 56, 68, 63, 63, 66, 68, 55, 70, 87, 53, 60, 52, 54, 73, 73, 86, 48, 73, 80, 51, 65, 55, 61, 67, 42, 61, 72, 70, 80, 59, 107, 54, 71, 69, 62, 61, 90, 67, 52, 62, 51, 52, 75, 65, 59, 38, 48, 78, 72, 60, 68, 66, 75, 62, 62, 77, 57, 66, 77, 49, 62, 61, 90, 65, 51, 82, 73, 59, 55, 51, 75, 60, 70, 53, 41, 50, 55, 43, 48, 68, 65, 67, 89, 82, 64, 91, 56, 72, 63, 49, 58, 80, 68, 61, 53, 55, 52, 55, 103, 61, 66, 82, 49, 57, 58, 55, 50, 45, 43, 76, 64, 63, 59, 57, 65, 62, 53, 45, 64, 61, 73, 71, 62, 58, 68, 52, 84, 64, 73, 77, 69, 54, 93, 65, 57, 68, 55, 64, 54, 70, 57, 62, 79, 74, 80, 65, 59, 63, 89, 53, 64, 40, 62, 57, 52, 69, 72, 72, 54, 49, 69, 61, 56, 126, 60, 63, 53, 68, 54, 72, 49, 76, 77, 67, 69, 98, 106, 58, 58, 67, 70, 46, 55, 76, 60, 52, 45, 66, 76, 40, 54, 84, 58, 67, 68, 63, 63, 114, 60, 65, 65, 55, 55, 69, 95, 60, 34, 48, 74, 76, 71, 63, 65, 56, 105, 60, 45, 65, 59, 48, 75, 49, 64, 60, 72, 62, 58, 72, 154, 66, 70, 53, 96, 71, 55, 63, 71, 71, 63, 88, 42, 78, 112, 52, 60, 51, 67, 62, 91, 66, 49, 77, 62, 75, 55, 77, 63, 66, 80, 55, 98, 57, 75, 90, 71, 68, 64, 65, 52, 69, 58, 61, 87, 67, 69, 57, 58, 75, 92, 84, 76, 58, 57, 53, 59, 46, 78, 49, 55, 59, 58, 65, 57, 45, 62, 44, 47, 76, 61, 65, 64, 64, 86, 58, 61, 106, 63, 107, 71, 54, 52, 46, 80, 70, 37, 56, 82, 47, 59, 86, 49, 54, 49, 63, 76, 63, 92, 63, 69, 73, 67, 61, 73, 66, 84, 74, 78, 55, 80, 57, 72, 53, 79, 50, 55, 61, 61, 67, 48, 46, 63, 53, 69, 65, 71, 74, 67, 83, 80, 57, 96, 40, 71, 76, 71, 66, 41, 58, 76, 51, 54, 62, 67, 60, 52, 90, 53, 63, 85, 82, 74, 53, 54, 61, 57, 80, 71, 91, 57, 58, 47, 55, 53, 74, 52, 65, 80, 65, 64, 65, 69, 44, 64, 76, 62, 79, 78, 70, 71, 75, 67, 51, 66, 70, 90, 64, 66, 60, 66, 69, 51, 107, 55, 55, 62, 63, 80, 95, 70, 61, 71, 61, 66, 52, 88, 60, 63, 54, 69, 63, 72, 56, 89, 52, 91, 53, 55, 58, 48, 78, 57, 61, 61, 55, 97, 79, 94, 54, 73, 58, 90, 57, 73, 67, 66, 53, 53, 67, 68, 64, 65, 75, 85, 59, 88, 129, 49, 57, 60, 84, 53, 54, 82, 55, 76, 86, 69, 71, 57, 110, 63, 60, 89, 76, 54, 51, 81, 57, 63, 73, 68, 82, 93, 48, 71, 57, 69, 58, 67, 58, 55, 60, 75, 35, 69, 79, 82, 51, 48, 66, 63, 64, 69, 69, 68, 64, 47, 52, 58, 52, 48, 57, 53, 79, 108, 57, 56, 78, 64, 66, 67, 56, 63, 51, 64, 49, 73, 53, 64, 94, 72, 58, 64, 55, 67, 67, 50, 63, 55, 58, 68, 71, 76, 63, 70, 59, 79, 72, 58, 57, 42, 61, 71, 75, 52, 86, 62, 53, 66, 57, 59, 59, 77, 61, 60, 76, 47, 58, 52, 55, 78, 62, 69, 47, 76, 45, 61, 83, 46, 64, 69, 51, 51, 64, 75, 72, 64, 44, 76, 57, 46, 63, 58, 66, 60, 80, 67, 61, 65, 55, 79, 68, 49, 62, 88, 55, 96, 60, 80, 56, 65, 66, 71, 63, 62, 55, 66, 84, 52, 76, 74, 87, 53, 61, 46, 66, 68, 56, 59, 70, 57, 57, 68, 75, 54, 64, 62, 87, 68, 82, 70, 56, 54, 59, 58, 72, 63, 129, 78, 66, 47, 93, 60, 58, 91, 49, 61, 58, 56, 121, 60, 84, 56, 68, 73, 79, 65, 80, 99, 69, 117, 55, 63, 69, 53, 54, 51, 85, 71, 50, 56, 53, 83, 52, 68, 67, 52, 51, 61, 70, 66, 52, 46, 55, 78, 82, 78, 63, 57, 62, 57, 66, 57, 65, 62, 57, 70, 61, 55, 75, 53, 64, 61, 70, 56, 56, 55, 66, 66, 82, 52, 67, 93, 63, 59, 55, 58, 59, 73, 87, 57, 72, 69, 73, 94, 80, 107, 48, 68, 60, 37, 69, 68, 65, 74, 71, 69, 64, 57, 56, 63, 62, 62, 61, 56, 57, 73, 54, 41, 49, 60, 50, 80, 53, 59, 44, 60, 68, 53, 66, 65, 63, 66, 72, 61, 84, 81, 83, 70, 73, 74, 59, 80, 61, 67, 80, 91, 42, 74, 61, 59, 66, 80, 109, 61, 52, 84, 58, 69, 61, 51, 74, 85, 75, 63, 66, 69, 50, 83, 52, 59, 85, 78, 64, 57, 82, 68, 52, 72, 71, 74, 62, 75, 70, 61, 59, 54, 63, 61, 47, 53, 62, 68, 51, 60, 56, 65, 64, 46, 53, 47, 66, 59, 64, 66, 42, 60, 66, 57, 49, 68, 64, 70, 77, 71, 66, 57, 66, 66, 60, 64, 102, 70, 64, 50, 55, 55, 59, 66, 71, 52, 78, 47, 57, 66, 64, 71, 51, 65, 47, 83, 83, 64, 58, 85, 94, 43, 58, 68, 59, 78, 115, 58, 83, 58, 50, 86, 65, 60, 49, 55, 56, 71, 53, 62, 78, 68, 68, 57, 105, 78, 55, 86, 75, 60, 64, 68, 49, 101, 83, 58, 66, 84, 59, 60, 65, 65, 79, 61, 66, 45, 73, 83, 53, 46, 53, 71, 62, 50, 54, 55, 66, 84, 48, 66, 60, 61, 47, 58, 65, 69, 53, 90, 79, 74, 77, 68, 123, 54, 71, 52, 58, 85, 49, 85, 86, 51, 44, 95, 66, 63, 55, 62, 66, 74, 54, 62, 83, 60, 58, 55, 51, 61, 45, 90, 53, 62, 62, 61, 89, 77, 58, 59, 54, 78, 80, 54, 132, 68, 62, 50, 69, 61, 94, 55, 51, 48, 56, 67, 68, 81, 71, 58, 50, 67, 54, 60, 94, 70, 95, 52, 85, 65, 62, 48, 54, 55, 87, 72, 42, 60, 57, 55, 51, 82, 72, 61, 52, 60, 52, 76, 64, 56, 62, 82, 56, 55, 47, 58, 68, 75, 55, 59, 64, 68, 61, 63, 100, 59, 62, 76, 75, 86, 61, 79, 65, 82, 62, 65, 44, 63, 54, 52, 74, 63, 69, 49, 69, 68, 64, 69, 46, 62, 54, 69, 59, 54, 69, 60, 89, 75, 50, 51, 49, 64, 79, 73, 70, 64, 54, 54, 62, 90, 60, 62, 80, 64, 70, 75, 58, 65, 66, 58, 68, 103, 63, 53, 54, 61, 58, 57, 40, 75, 62, 66, 75, 83, 62, 80, 68, 65, 62, 63, 63, 61, 60, 56, 38, 50, 72, 51, 58, 51, 60, 64, 67, 54, 55, 87, 57, 58, 66, 70, 52, 66, 81, 54, 44, 53, 62, 64, 47, 71, 74, 55, 66, 39, 142, 72, 45, 55, 61, 55, 69, 73, 68, 104, 67, 67, 70, 74, 56, 50, 71, 53, 60, 70, 60, 60, 49, 58, 85, 73, 59, 61, 70, 55, 65, 79, 59, 58, 110, 64, 85, 64, 63, 70, 66, 63, 68, 89, 59, 58, 72, 63, 80, 57, 66, 53, 64, 48, 64, 66, 42, 48, 79, 90, 88, 59, 84, 50, 66, 133, 55, 82, 58, 98, 84, 57, 60, 65, 70, 66, 64, 52, 73, 73, 56, 68, 52, 49, 62, 141, 94, 51, 63, 39, 83, 61, 62, 74, 58, 56, 67, 79, 59, 65, 100, 55, 55, 68, 58, 69, 69, 51, 67, 78, 85, 59, 61, 61, 80, 61, 65, 71, 58, 71, 55, 60, 63, 81, 69, 47, 60, 62, 93, 60, 71, 62, 52, 66, 99, 61, 74, 59, 54, 65, 69, 54, 70, 59, 96, 64, 70, 57, 59, 70, 57, 59, 78, 73, 50, 54, 63, 72, 54, 82, 58, 73, 53, 101, 81, 60, 88, 58, 62, 55, 60, 66, 64, 67, 62, 65, 54, 68, 78, 64, 64, 69, 58, 59, 54, 61, 68, 72, 50, 63, 49, 74, 89, 60, 63, 69, 94, 79, 65, 57, 102, 52, 53, 87, 40, 79, 65, 63, 51, 72, 35, 62, 60, 72, 84, 73, 74, 65, 60, 60, 56, 54, 62, 78, 118, 40, 64, 54, 58, 45, 60, 69, 61, 79, 71, 54, 55, 60, 53, 53, 78, 66, 64, 101, 86, 64, 65, 47, 62, 52, 60, 49, 66, 67, 74, 55, 67, 55, 79, 57, 53, 86, 67, 50, 86, 63, 46, 95, 67, 61, 54, 76, 56, 64, 77, 70, 89, 75, 51, 57, 63, 86, 58, 55, 72, 75, 67, 41, 66, 59, 82, 65, 66, 72, 65, 59, 59, 51, 60, 60, 66, 68, 67, 71, 66, 63, 55, 61, 67, 90, 75, 65, 105, 56, 55, 68, 64, 59, 62, 96, 62, 70, 44, 66, 63, 60, 99, 49, 64, 119, 69, 53, 60, 63, 67, 74, 59, 65, 70, 80, 63, 63, 46, 60, 64, 48, 45, 79, 65, 81, 43, 82, 66, 51, 79, 85, 73, 61, 62, 66, 91, 51, 72, 45, 64, 58, 46, 51, 86, 75, 68, 115, 60, 60, 78, 62, 51, 73, 70, 61, 55, 61, 62, 71, 62, 76, 63, 66, 55, 51, 55, 55, 63, 61, 59, 70, 50, 57, 65, 90, 44, 36, 72, 54, 51, 56, 60, 55, 83, 93, 64, 61, 35, 51, 79, 58, 53, 65, 58, 61, 62, 67, 68, 58, 82, 79, 51, 81, 54, 63, 66, 62, 69, 61, 74, 65, 101, 106, 55, 55, 57, 79, 87, 59, 74, 69, 54, 81, 73, 69, 55, 63, 72, 58, 70, 88, 71, 53, 67, 50, 66, 56, 62, 87, 65, 77, 105, 79, 68, 81, 61, 76, 66, 58, 77, 56, 75, 55, 44, 67, 54, 72, 60, 50, 58, 63, 61, 70, 48, 94, 54, 70, 56, 57, 71, 42, 68, 75, 62, 56, 55, 76, 65, 57, 113, 65, 52, 53, 73, 54, 60, 58, 66, 55, 72, 58, 68, 54, 73, 52, 74, 74, 65, 57, 64, 67, 55, 128, 64, 45, 62, 67, 95, 76, 54, 74, 89, 47, 56, 56, 50, 42, 59, 55, 57, 56, 66, 58, 52, 67, 49, 58, 77, 65, 64, 79, 53, 102, 83, 63, 55, 59, 68, 53, 71, 65, 95, 52, 73, 76, 71, 52, 59, 60, 64, 64, 63, 73, 66, 76, 53, 56, 46, 60, 68, 58, 100, 66, 57, 81, 57, 87, 65, 78, 61, 60, 72, 82, 81, 55, 52, 44, 71, 82, 53, 50, 73, 55, 58, 56, 43, 55, 56, 84, 82, 66, 59, 68, 64, 63, 56, 62, 63, 72, 60, 53, 50, 51, 67, 100, 64, 88, 100, 73, 121, 97, 68, 70, 63, 51, 63, 77, 63, 58, 62, 57, 75, 58, 70, 78, 98, 63, 59, 60, 67, 62, 97, 53, 69, 57, 71, 56, 67, 74, 69, 75, 49, 42, 69, 77, 67, 62, 104, 57, 76, 55, 86, 64, 70, 68, 50, 56, 79, 55, 76, 61, 55, 63, 68, 53, 55, 55, 61, 68, 48, 68, 62, 51, 57, 69, 56, 68, 53, 72, 59, 55, 70, 57, 68, 75, 63, 115, 51, 57, 68, 46, 61, 59, 47, 57, 53, 65, 58, 55, 55, 55, 66, 58, 64, 71, 52, 60, 71, 53, 62, 86, 58, 59, 66, 50, 75, 58, 55, 76, 59, 55, 54, 55, 101, 49, 66, 53, 57, 63, 59, 62, 64, 61, 52, 66, 97, 58, 62, 65, 62, 58, 65, 70, 61, 61, 71, 73, 54, 65, 71, 80, 63, 61, 61, 66, 72, 51, 56, 77, 54, 47, 62, 56, 54, 50, 57, 63, 60, 81, 76, 57, 59, 57, 54, 88, 74, 61, 55, 58, 84, 53, 72, 66, 49, 59, 54, 64, 48, 60, 59, 75, 59, 58, 57, 58, 51, 93, 59, 59, 70, 75, 89, 75, 59, 61, 53, 57, 114, 57, 69, 64, 64, 54, 60, 72, 55, 97, 75, 64, 61, 60, 108, 62, 61, 65, 61, 97, 56, 63, 78, 80, 59, 75, 66, 64, 80, 58, 59, 57, 76, 63, 69, 72, 77, 71, 63, 65, 69, 67, 121, 55, 88, 61, 79, 62, 53, 53, 54, 61, 80, 62, 77, 56, 57, 69, 56, 65, 66, 61, 70, 66, 56, 71, 77, 62, 49, 55, 51, 53, 53, 62, 63, 51, 62, 62, 56, 62, 47, 57, 75, 64, 73, 57, 72, 62, 68, 62, 64, 81, 64, 107, 60, 63, 62, 69, 55, 69, 48, 50, 50, 49, 61, 45, 66, 61, 50, 65, 58, 51, 44, 64, 83, 58, 79, 72, 57, 62, 63, 44, 58, 68, 62, 64, 88, 82, 68, 61, 81, 66, 71, 49, 71, 49, 59, 59, 62, 85, 63, 55, 74, 58, 51, 66, 72, 37, 63, 57, 87, 90, 65, 53, 76, 60, 74, 98, 54, 57, 63, 60, 54, 55, 94, 72, 58, 51, 65, 91, 68, 66, 62, 56, 63, 64, 45, 100, 62, 56, 79, 61, 69, 63, 59, 56, 59, 63, 77, 64, 61, 73, 95, 60, 66, 59, 54, 65, 63, 60, 64, 79, 70, 63, 62, 109, 55, 57, 61, 69, 52, 88, 62, 55, 70, 55, 87, 47, 48, 61, 45, 63, 59, 75, 63, 47, 91, 55, 88, 58, 71, 69, 66, 69, 55, 95, 58, 58, 109, 59, 75, 68, 60, 47, 54, 43, 60, 60, 61, 85, 64, 60, 54, 79, 51, 60, 83, 158, 65, 76, 59, 114, 57, 57, 56, 72, 57, 56, 78, 54, 85, 69, 64, 60, 57, 63, 71, 75, 97, 61, 66, 55, 72, 47, 61, 68, 75, 81, 61, 57, 55, 56, 51, 85, 75, 72, 63, 53, 74, 62, 79, 79, 57, 55, 60, 57, 78, 55, 94, 95, 56, 73, 57, 52, 49, 76, 62, 52, 59, 56, 67, 66, 63, 61, 105, 74, 69, 65, 79, 57, 73, 70, 69, 55, 66, 49, 82, 73, 92, 57, 65, 57, 72, 45, 57, 56, 61, 56, 52, 60, 71, 86, 60, 53, 64, 111, 127, 61, 79, 81, 57, 57, 65, 48, 83, 56, 50, 97, 56, 56, 48, 60, 86, 57, 66, 64, 117, 52, 65, 64, 78, 55, 63, 98, 80, 66, 59, 71, 61, 73, 56, 66, 108, 121, 47, 69, 54, 58, 51, 51, 46, 65, 69, 71, 64, 91, 49, 69, 84, 78, 61, 52, 61, 63, 63, 95, 69, 62, 56, 53, 54, 64, 52, 62, 59, 64, 64, 58, 66, 69, 74, 84, 80, 53, 86, 111, 103, 53, 65, 55, 77, 75, 66, 86, 59, 54, 67, 59, 76, 54, 66, 82, 58, 77, 64, 63, 81, 63, 67, 65, 67, 52, 54, 77, 61, 61, 52, 45, 55, 72, 55, 89, 93, 78, 64, 54, 58, 66, 55, 55, 66, 74, 75, 70, 59, 52, 62, 62, 63, 47, 75, 65, 62, 69, 71, 63, 63, 55, 54, 57, 66, 77, 58, 70, 109, 65, 71, 58, 72, 59, 71, 119, 51, 71, 52, 63, 75, 62, 63, 82, 61, 98, 61, 58, 63, 60, 61, 83, 63, 56, 57, 80, 50, 44, 61, 57, 56, 60, 60, 54, 56, 62, 55, 72, 58, 66, 60, 48, 86, 61, 53, 58, 59, 54, 63, 52, 78, 55, 59, 70, 64, 62, 57, 100, 55, 57, 56, 58, 62, 54, 67, 70, 66, 62, 64, 49, 81, 90, 70, 64, 58, 68, 64, 66, 66, 73, 61, 63, 58, 61, 81, 53, 50, 50, 43, 76, 52, 48, 69, 90, 71, 64, 86, 55, 78, 80, 88, 54, 64, 64, 50, 58, 59, 77, 69, 61, 52, 57, 60, 93, 64, 55, 62, 69, 56, 50, 67, 68, 54, 102, 71, 62, 59, 65, 58, 68, 57, 67, 60, 57, 46, 73, 71, 56, 72, 57, 54, 61, 60, 74, 83, 64, 70, 64, 70, 80, 72, 74, 55, 68, 95, 57, 53, 63, 61, 52, 89, 81, 70, 68, 63, 79, 55, 49, 58, 65, 68, 62, 64, 61, 55, 59, 54, 65, 75, 64, 81, 61, 46, 52, 55, 67, 65, 68, 63, 59, 107, 62, 65, 54, 53, 64, 60, 68, 58, 55, 73, 61, 51, 60, 55, 64, 65, 73, 66, 67, 46, 50, 56, 121, 54, 46, 62, 54, 93, 95, 67, 64, 96, 57, 55, 59, 73, 55, 77, 62, 73, 58, 54, 67, 72, 78, 60, 60, 81, 73, 76, 64, 58, 47, 57, 50, 53, 57, 65, 89, 66, 65, 62, 63, 90, 60, 61, 68, 66, 59, 69, 54, 65, 63, 64, 96, 74, 59, 70, 54, 66, 62, 102, 69, 62, 69, 69, 73, 64, 52, 59, 66, 44, 50, 62, 55, 55, 59, 78, 54, 46, 72, 59, 65, 61, 77, 64, 68, 65, 55, 46, 62, 60, 50, 50, 71, 58, 55, 69, 58, 76, 70, 77, 57, 60, 62, 71, 21, 70, 63, 82, 110, 57, 62, 55, 61, 61, 74, 63, 114, 76, 65, 91, 60, 69, 58, 92, 56, 49, 70, 66, 57, 63, 57, 88, 61, 106, 71, 73, 61, 59, 70, 62, 56, 54, 53, 54, 58, 65, 87, 74, 65, 43, 51, 62, 68, 68, 76, 69, 65, 50, 49, 103, 64, 69, 58, 64, 63, 63, 82, 71, 59, 59, 61, 66, 57, 72, 66, 61, 84, 57, 81, 62, 58, 56, 63, 58, 82, 55, 72, 64, 74, 72, 66, 62, 79, 50, 64, 57, 62, 65, 77, 57, 59, 54, 59, 71, 53, 69, 63, 57, 95, 63, 58, 50, 59, 80, 64, 53, 69, 83, 48, 58, 54, 96, 60, 76, 56, 53, 87, 52, 58, 74, 61, 66, 63, 84, 60, 63, 60, 66, 56, 65, 73, 65, 66, 92, 63, 57, 79, 60, 80, 77, 57, 63, 48, 62, 54, 64, 63, 58, 55, 54, 83, 63, 60, 63, 61, 50, 70, 65, 55, 63, 59, 64, 107, 75, 56, 55, 53, 68, 65, 61, 70, 56, 76, 71, 65, 51, 68, 45, 65, 57, 71, 45, 55, 70, 72, 74, 73, 60, 83, 62, 59, 69, 55, 88, 62, 91, 58, 68, 55, 57, 64, 57, 53, 35, 72, 60, 78, 55, 61, 70, 54, 54, 88, 56, 56, 98, 73, 56, 65, 63, 75, 64, 46, 73, 61, 64, 57, 69, 69, 81, 61, 61, 59, 63, 54, 68, 58, 133, 56, 64, 60, 81, 64, 74, 58, 61, 58, 52, 74, 67, 56, 52, 61, 55, 77, 68, 57, 66, 63, 68, 75, 98, 57, 63, 66, 48, 54, 56, 64, 65, 61, 58, 58, 66, 47, 62, 69, 64, 65, 56, 60, 63, 81, 66, 48, 77, 75, 77, 86, 69, 57, 63, 58, 51, 84, 53, 68, 49, 91, 52, 60, 76, 58, 50, 70, 69, 61, 63, 63, 71, 59, 71, 70, 55, 59, 60, 63, 52, 56, 59, 58, 60, 70, 64, 56, 75, 80, 76, 68, 61, 47, 63, 56, 37, 95, 56, 67, 57, 59, 53, 61, 79, 62, 54, 58, 72, 83, 73, 65, 77, 71, 58, 55, 58, 62, 66, 76, 81, 72, 57, 52, 85, 77, 63, 63, 55, 77, 66, 58, 56, 55, 65, 93, 64, 51, 96, 55, 62, 64, 52, 47, 56, 63, 78, 47, 56, 77, 83, 71, 53, 79, 71, 75, 53, 72, 56, 50, 68, 65, 70, 88, 54, 70, 52, 60, 51, 60, 73, 48, 53, 59, 54, 62, 63, 53, 54, 81, 63, 73, 66, 73, 94, 59, 79, 60, 76, 59, 50, 71, 68, 100, 62, 71, 105, 61, 65, 65, 57, 74, 50, 42, 63, 69, 64, 90, 70, 90, 51, 51, 75, 73, 58, 114, 61, 56, 54, 135, 68, 69, 72, 80, 51, 80, 82, 56, 78, 60, 64, 53, 65, 58, 51, 94, 102, 53, 66, 66, 60, 53, 68, 63, 69, 64, 77, 105, 60, 76, 72, 77, 67, 60, 63, 58, 77, 55, 67, 95, 56, 61, 59, 54, 90, 69, 64, 61, 56, 60, 59, 51, 72, 83, 68, 53, 65, 55, 73, 60, 60, 59, 92, 67, 78, 49, 79, 55, 73, 45, 66, 70, 67, 49, 67, 74, 63, 59, 58, 39, 63, 64, 58, 62, 48, 64, 62, 69, 60, 69, 43, 75, 56, 93, 79, 64, 58, 66, 51, 54, 66, 61, 69, 55, 50, 78, 57, 61, 105, 59, 66, 71, 68, 46, 102, 69, 56, 70, 58, 89, 50, 77, 76, 92, 65, 60, 59, 73, 61, 44, 115, 126, 59, 64, 50, 59, 71, 58, 66, 87, 61, 60, 48, 85, 42, 75, 92, 68, 63, 58, 55, 53, 70, 44, 73, 48, 68, 74, 42, 63, 61, 59, 62, 79, 55, 69, 66, 62, 68, 72, 75, 73, 65, 93, 96, 61, 66, 75, 52, 81, 62, 78, 68, 51, 68, 59, 81, 81, 95, 77, 53, 62, 47, 69, 100, 71, 70, 86, 70, 58, 51, 60, 60, 81, 48, 56, 67, 61, 66, 71, 61, 74, 51, 75, 65, 76, 71, 65, 68, 68, 71, 57, 90, 58, 61, 68, 57, 54, 77, 69, 62, 49, 67, 62, 64, 60, 72, 59, 68, 83, 58, 59, 95, 50, 62, 71, 91, 61, 72, 90, 57, 47, 55, 66, 65, 66, 64, 72, 61, 102, 59, 58, 55, 56, 74, 64, 67, 63, 62, 69, 58, 78, 72, 67, 55, 87, 47, 74, 56, 45, 65, 84, 56, 58, 72, 115, 43, 67, 56, 54, 56, 65, 60, 69, 64, 62, 63, 46, 63, 56, 38, 97, 64, 43, 66, 67, 65, 60, 75, 72, 59, 74, 55, 59, 67, 57, 51, 60, 91, 61, 77, 64, 64, 67, 50, 71, 57, 55, 66, 78, 69, 59, 66, 97, 66, 71, 71, 80, 71, 53, 93, 46, 84, 72, 87, 105, 59, 70, 57, 79, 53, 79, 78, 64, 56, 77, 60, 100, 73, 63, 53, 65, 65, 69, 66, 47, 70, 106, 76, 70, 75, 56, 76, 68, 59, 66, 59, 69, 84, 67, 47, 52, 56, 57, 86, 71, 57, 68, 66, 75, 51, 66, 52, 72, 61, 82, 76, 53, 84, 54, 63, 52, 64, 84, 85, 48, 80, 60, 51, 68, 62, 74, 69, 68, 54, 62, 71, 59, 67, 67, 54, 46, 72, 60, 73, 62, 56, 78, 67, 71, 72, 66, 105, 54, 105, 51, 62, 74, 79, 60, 54, 53, 63, 43, 74, 62, 63, 56, 69, 66, 75, 73, 62, 92, 64, 66, 52, 81, 75, 72, 66, 57, 62, 91, 52, 58, 58, 57, 52, 52, 53, 57, 63, 63, 55, 67, 53, 59, 70, 70, 62, 77, 98, 91, 59, 56, 48, 85, 83, 90, 59, 66, 49, 68, 71, 41, 68, 60, 75, 48, 67, 78, 79, 65, 61, 63, 59, 51, 75, 85, 58, 66, 54, 74, 54, 64, 73, 79, 63, 58, 62, 62, 79, 55, 63, 82, 63, 69, 63, 55, 65, 70, 54, 36, 62, 64, 56, 49, 69, 52, 71, 64, 57, 52, 67, 47, 61, 68, 63, 41, 53, 93, 47, 52, 61, 87, 73, 62, 73, 64, 72, 86, 72, 54, 74, 104, 53, 54, 58, 58, 63, 57, 99, 72, 66, 60, 51, 70, 61, 76, 77, 52, 64, 40, 82, 47, 73, 59, 79, 46, 119, 56, 76, 50, 79, 86, 58, 95, 50, 63, 72, 62, 90, 59, 102, 42, 66, 66, 57, 81, 53, 61, 49, 57, 61, 68, 69, 69, 75, 53, 61, 47, 62, 100, 61, 49, 69, 73, 66, 63, 71, 39, 71, 78, 55, 64, 65, 50, 56, 89, 52, 82, 58, 61, 59, 62, 65, 51, 59, 76, 60, 60, 61, 52, 59, 75, 71, 65, 75, 65, 74, 59, 75, 55, 56, 71, 56, 51, 44, 51, 67, 52, 66, 76, 57, 72, 53, 68, 111, 57, 96, 62, 66, 73, 68, 51, 75, 52, 65, 76, 74, 55, 65, 70, 89, 64, 66, 79, 64, 65, 93, 62, 43, 68, 61, 82, 57, 66, 74, 51, 71, 67, 65, 72, 54, 68, 62, 65, 56, 57, 60, 66, 61, 75, 47, 59, 56, 60, 61, 95, 52, 54, 43, 74, 89, 62, 59, 59, 44, 56, 91, 85, 48, 71, 54, 53, 70, 83, 64, 82, 59, 75, 76, 57, 70, 64, 50, 76, 63, 57, 84, 71, 86, 53, 56, 72, 62, 63, 60, 61, 51, 85, 66, 59, 60, 68, 56, 63, 58, 85, 59, 64, 72, 59, 76, 64, 63, 65, 65, 70, 74, 62, 59, 60, 67, 68, 57, 61, 59, 53, 73, 53, 61, 56, 107, 61, 83, 75, 84, 37, 74, 64, 68, 65, 66, 50, 73, 56, 59, 61, 69, 83, 67, 61, 90, 56, 58, 70, 84, 65, 58, 59, 63, 51, 65, 56, 74, 58, 71, 63, 97, 61, 68, 62, 50, 75, 61, 69, 42, 77, 75, 68, 58, 72, 73, 71, 60, 50, 59, 66, 58, 69, 62, 56, 53, 87, 65, 83, 75, 61, 46, 77, 59, 62, 49, 65, 64, 45, 57, 61, 76, 52, 63, 59, 62, 64, 55, 61, 64, 76, 74, 62, 72, 94, 47, 59, 68, 65, 58, 58, 68, 90, 67, 60, 59, 75, 70, 48, 58, 66, 64, 53, 73, 96, 59, 70, 82, 55, 64, 96, 65, 64, 52, 70, 76, 66, 52, 58, 74, 48, 63, 53, 66, 61, 52, 66, 72, 60, 59, 73, 80, 64, 92, 54, 46, 78, 54, 85, 65, 65, 51, 70, 71, 92, 77, 61, 80, 62, 40, 77, 48, 69, 56, 73, 76, 62, 82, 92, 54, 72, 60, 41, 62, 44, 95, 66, 65, 51, 65, 59, 68, 88, 49, 76, 49, 59, 72, 57, 66, 63, 83, 57, 68, 69, 78, 63, 59, 97, 60, 67, 71, 62, 63, 60, 57, 54, 52, 62, 67, 51, 60, 60, 73, 97, 70, 65, 92, 87, 68, 137, 64, 64, 56, 128, 58, 66, 82, 83, 52, 58, 80, 47, 83, 64, 48, 67, 57, 74, 55, 87, 78, 53, 62, 61, 68, 68, 81, 59, 62, 79, 64, 86, 70, 74, 86, 64, 61, 69, 69, 70, 66, 48, 69, 85, 63, 80, 61, 71, 84, 76, 60, 60, 56, 54, 59, 58, 49, 89, 74, 55, 72, 70, 73, 50, 44, 70, 79, 75, 67, 64, 71, 74, 69, 64, 88, 54, 64, 66, 56, 59, 61, 58, 60, 93, 70, 71, 58, 61, 80, 60, 59, 64, 53, 85, 59, 71, 51, 85, 93, 57, 69, 60, 70, 67, 71, 59, 70, 51, 64, 49, 57, 65, 74, 60, 82, 77, 58, 71, 91, 58, 61, 65, 57, 86, 51, 54, 78, 86, 56, 81, 55, 74, 69, 67, 111, 126, 40, 70, 66, 65, 72, 70, 66, 92, 48, 56, 63, 73, 67, 50, 103, 50, 62, 59, 76, 53, 65, 79, 67, 70, 62, 69, 65, 54, 54, 49, 46, 49, 63, 57, 66, 53, 62, 65, 52, 70, 51, 102, 101, 66, 56, 60, 59, 56, 76, 86, 56, 52, 69, 70, 71, 54, 96, 74, 70, 70, 54, 64, 99, 53, 59, 59, 83, 55, 73, 65, 62, 60, 48, 65, 47, 55, 68, 72, 67, 79, 71, 79, 68, 69, 53, 69, 84, 61, 77, 54, 79, 57, 48, 63, 67, 59, 67, 62, 66, 66, 58, 67, 57, 56, 60, 62, 66, 68, 54, 75, 94, 53, 70, 64, 76, 70, 62, 66, 46, 72, 55, 60, 55, 56, 65, 95, 61, 129, 65, 70, 54, 55, 65, 76, 82, 64, 47, 64, 60, 61, 48, 59, 66, 42, 69, 55, 81, 77, 53, 83, 58, 63, 55, 124, 49, 59, 56, 65, 59, 48, 66, 52, 73, 63, 59, 59, 71, 69, 73, 96, 77, 64, 52, 49, 74, 46, 50, 81, 65, 55, 55, 58, 72, 48, 71, 69, 80, 41, 64, 61, 66, 52, 65, 47, 63, 60, 65, 73, 51, 87, 75, 85, 64, 60, 69, 60, 69, 67, 87, 63, 79, 80, 81, 94, 68, 61, 71, 64, 52, 79, 50, 69, 62, 47, 71, 92, 55, 66, 63, 72, 68, 49, 69, 59, 84, 114, 51, 74, 48, 52, 54, 63, 71, 62, 52, 64, 67, 69, 62, 59, 65, 57, 79, 78, 53, 80, 46, 63, 57, 57, 73, 90, 54, 73, 57, 66, 66, 71, 71, 75, 59, 72, 66, 60, 69, 66, 62, 50, 60, 71, 55, 61, 67, 67, 59, 64, 75, 58, 62, 53, 62, 52, 72, 61, 56, 84, 59, 55, 83, 75, 91, 53, 86, 54, 56, 69, 78, 74, 58, 49, 56, 50, 65, 55, 82, 65, 70, 62, 60, 69, 60, 62, 52, 63, 59, 109, 66, 52, 52, 58, 61, 66, 70, 63, 57, 61, 59, 67, 80, 64, 67, 54, 55, 62, 65, 49, 61, 55, 68, 85, 94, 102, 57, 48, 48, 81, 84, 101, 69, 51, 58, 79, 66, 55, 62, 77, 70, 65, 58, 65, 85, 58, 68, 67, 85, 57, 44, 73, 69, 56, 62, 73, 57, 64, 88, 55, 52, 71, 63, 52, 84, 68, 64, 61, 61, 87, 60, 60, 63, 64, 67, 71, 73, 66, 49, 64, 51, 57, 65, 67, 75, 69, 79, 73, 66, 52, 54, 56, 59, 100, 75, 52, 56, 81, 63, 76, 63, 87, 65, 83, 84, 59, 75, 81, 56, 65, 63, 86, 49, 77, 73, 65, 54, 63, 62, 70, 66, 85, 75, 75, 70, 51, 63, 92, 75, 72, 76, 68, 113, 68, 75, 55, 74, 72, 58, 83, 44, 75, 61, 63, 64, 58, 97, 64, 53, 62, 53, 82, 40, 51, 73, 54, 64, 77, 60, 91, 68, 57, 60, 84, 99, 67, 62, 67, 69, 82, 51, 62, 62, 57, 48, 60, 62, 75, 71, 58, 63, 90, 56, 94, 94, 81, 49, 77, 47, 63, 97, 87, 46, 55, 72, 45, 61, 84, 77, 73, 66, 64, 61, 83, 64, 56, 119, 121, 69, 63, 57, 72, 64, 52, 48, 55, 79, 69, 56, 56, 78, 53, 53, 72, 59, 69, 49, 62, 74, 58, 41, 78, 85, 56, 80, 61, 63, 48, 99, 60, 56, 67, 68, 60, 57, 65, 79, 57, 75, 54, 63, 96, 58, 55, 78, 95, 77, 51, 48, 75, 57, 67, 75, 69, 87, 59, 62, 51, 70, 59, 62, 81, 69, 73, 57, 70, 67, 66, 62, 66, 66, 64, 62, 71, 65, 57, 50, 69, 58, 64, 55, 54, 123, 56, 45, 63, 68, 88, 63, 66, 51, 71, 96, 90, 57, 74, 45, 67, 63, 59, 53, 62, 56, 66, 70, 61, 53, 60, 70, 69, 76, 95, 56, 64, 62, 125, 90, 60, 54, 48, 62, 65, 99, 67, 55, 80, 43, 50, 67, 134, 52, 76, 101, 51, 54, 81, 109, 59, 54, 61, 90, 70, 91, 68, 59, 55, 77, 61, 66, 59, 49, 70, 64, 50, 65, 82, 51, 55, 60, 55, 59, 62, 63, 61, 31, 52, 63, 72, 72, 76, 77, 46, 61, 57, 62, 64, 85, 82, 49, 71, 54, 59, 66, 74, 58, 51, 53, 70, 54, 52, 53, 45, 61, 58, 64, 64, 77, 71, 57, 37, 73, 64, 75, 86, 73, 58, 63, 59, 73, 70, 55, 67, 68, 54, 95, 57, 53, 61, 60, 52, 64, 101, 51, 58, 96, 52, 52, 58, 76, 73, 54, 47, 48, 63, 75, 66, 123, 72, 71, 57, 52, 86, 57, 45, 57, 79, 54, 63, 56, 70, 67, 90, 57, 52, 58, 61, 75, 54, 53, 87, 54, 59, 55, 66, 67, 80, 54, 64, 60, 58, 71, 75, 58, 74, 43, 59, 81, 87, 49, 77, 66, 99, 55, 66, 70, 105, 60, 64, 48, 84, 73, 55, 71, 64, 58, 42, 105, 78, 120, 99, 67, 67, 84, 50, 85, 52, 52, 52, 48, 65, 63, 48, 65, 93, 68, 88, 66, 56, 60, 48, 110, 85, 93, 54, 86, 57, 63, 70, 58, 45, 53, 66, 65, 72, 66, 56, 69, 55, 60, 70, 66, 69, 86, 65, 52, 60, 73, 67, 53, 51, 86, 168, 81, 104, 65, 90, 72, 62, 54, 83, 78, 48, 50, 55, 71, 76, 47, 58, 66, 57, 85, 105, 64, 62, 46, 71, 56, 64, 90, 62, 69, 75, 56, 53, 53, 72, 71, 47, 67, 71, 56, 63, 67, 65, 70, 54, 60, 45, 63, 49, 80, 66, 66, 38, 74, 43, 56, 64, 61, 59, 35, 71, 75, 67, 75, 74, 62, 83, 49, 49, 54, 59, 64, 62, 58, 85, 86, 95, 72, 69, 43, 68, 70, 69, 56, 47, 69, 85, 77, 55, 60, 62, 79, 75, 61, 72, 45, 82, 60, 79, 57, 69, 54, 65, 57, 68, 101, 53, 81, 65, 73, 85, 67, 47, 53, 86, 66, 39, 51, 80, 57, 55, 58, 63, 51, 57, 95, 85, 60, 61, 62, 86, 68, 75, 75, 53, 66, 83, 46, 55, 85, 64, 79, 64, 119, 58, 55, 57, 67, 66, 103, 67, 59, 68, 75, 81, 63, 42, 63, 80, 86, 71, 58, 48, 96, 67, 104, 62, 77, 50, 86, 66, 67, 48, 56, 75, 68, 74, 57, 68, 59, 60, 80, 46, 75, 57, 66, 83, 71, 74, 82, 65, 71, 37, 78, 76, 53, 69, 86, 70, 59, 70, 63, 67, 64, 89, 52, 89, 51, 78, 64, 57, 52, 52, 67, 61, 61, 81, 61, 77, 51, 50, 75, 62, 94, 47, 100, 68, 76, 76, 45, 65, 61, 75, 83, 65, 57, 68, 54, 79, 50, 55, 71, 68, 75, 74, 62, 61, 100, 66, 59, 36, 95, 67, 75, 75, 48, 64, 67, 61, 52, 87, 124, 46, 48, 71, 74, 67, 66, 55, 56, 57, 78, 62, 53, 53, 62, 46, 55, 61, 79, 60, 82, 76, 39, 58, 63, 71, 55, 47, 53, 50, 60, 65, 69, 82, 69, 47, 57, 74, 64, 70, 54, 52, 48, 61, 56, 83, 60, 62, 74, 50, 62, 52, 57, 58, 68, 47, 65, 51, 78, 72, 57, 66, 74, 48, 46, 84, 75, 54, 59, 60, 42, 72, 55, 62, 63, 58, 74, 115, 61, 81, 72, 104, 66, 94, 63, 52, 57, 74, 64, 63, 66, 65, 71, 57, 52, 62, 54, 56, 57, 48, 58, 133, 45, 65, 58, 66, 60, 51, 51, 71, 75, 92, 61, 64, 65, 53, 57, 58, 64, 88, 65, 67, 65, 52, 74, 53, 78, 65, 86, 64, 60, 87, 43, 55, 73, 69, 33, 57, 52, 71, 64, 87, 94, 65, 63, 70, 76, 40, 75, 56, 61, 68, 84, 71, 63, 56, 62, 63, 57, 59, 91, 54, 57, 53, 59, 63, 76, 68, 91, 67, 47, 94, 69, 59, 63, 76, 77, 59, 55, 54, 68, 56, 53, 86, 76, 42, 41, 71, 64, 66, 61, 69, 51, 76, 64, 81, 58, 58, 45, 84, 60, 65, 45, 67, 61, 53, 58, 52, 42, 51, 61, 41, 82, 60, 58, 67, 60, 54, 73, 54, 67, 66, 63, 90, 77, 96, 63, 59, 68, 58, 66, 61, 68, 56, 56, 47, 38, 86, 58, 75, 105, 49, 37, 41, 58, 59, 40, 64, 53, 97, 74, 60, 65, 77, 53, 50, 66, 73, 56, 56, 44, 70, 56, 51, 42, 83, 67, 57, 64, 70, 62, 59, 70, 70, 44, 108, 60, 48, 65, 49, 67, 85, 65, 61, 61, 52, 61, 52, 70, 70, 58, 65, 51, 75, 60, 95, 62, 60, 53, 58, 65, 81, 57, 59, 55, 60, 78, 74, 58, 61, 76, 56, 73, 91, 87, 60, 72, 55, 62, 61, 66, 41, 71, 78, 52, 60, 66, 62, 50, 51, 61, 54, 43, 77, 77, 60, 64, 58, 68, 90, 67, 95, 110, 47, 66, 75, 118, 68, 62, 78, 54, 54, 55, 90, 55, 88, 57, 46, 55, 63, 81, 76, 57, 69, 57, 94, 85, 54, 74, 50, 59, 66, 60, 68, 46, 65, 58, 57, 59, 77, 71, 62, 57, 97, 71, 78, 104, 68, 75, 43, 62, 59, 73, 80, 76, 56, 68, 57, 56, 55, 50, 76, 51, 56, 98, 68, 88, 58, 63, 115, 54, 55, 59, 63, 71, 67, 88, 78, 70, 57, 57, 53, 88, 76, 104, 117, 59, 62, 65, 55, 76, 60, 61, 63, 64, 53, 100, 89, 89, 77, 74, 62, 62, 48, 39, 78, 79, 74, 48, 63, 64, 59, 61, 93, 52, 59, 45, 69, 59, 56, 62, 57, 62, 73, 101, 73, 96, 72, 55, 55, 66, 84, 68, 55, 46, 46, 58, 76, 62, 57, 61, 64, 78, 73, 77, 68, 101, 63, 72, 76, 48, 85, 77, 77, 68, 74, 52, 66, 50, 122, 50, 53, 76, 69, 114, 73, 83, 72, 53, 50, 42, 60, 57, 72, 53, 59, 68, 74, 62, 87, 63, 94, 76, 48, 62, 74, 50, 99, 117, 61, 56, 53, 64, 68, 90, 64, 75, 62, 73, 74, 63, 58, 43, 54, 96, 56, 54, 98, 96, 69, 76, 43, 75, 69, 73, 87, 54, 64, 66, 75, 73, 57, 63, 92, 48, 48, 75, 69, 60, 65, 46, 86, 105, 65, 73, 52, 59, 66, 77, 53, 60, 75, 65, 49, 77, 75, 69, 61, 54, 90, 64, 73, 69, 80, 68, 54, 58, 67, 62, 73, 53, 55, 57, 58, 53, 51, 75, 56, 68, 96, 55, 63, 75, 71, 70, 60, 60, 68, 45, 63, 54, 55, 72, 69, 61, 58, 86, 58, 73, 57, 57, 46, 58, 63, 61, 74, 60, 66, 31, 67, 67, 79, 57, 49, 62, 56, 55, 66, 58, 69, 70, 101, 46, 79, 57, 61, 35, 59, 53, 58, 80, 46, 70, 95, 61, 63, 52, 62, 63, 71, 76, 82, 74, 46, 57, 67, 75, 62, 95, 67, 52, 76, 65, 82, 57, 58, 97, 47, 80, 82, 59, 70, 75, 60, 81, 72, 64, 91, 106, 52, 60, 66, 55, 60, 62, 57, 65, 58, 76, 94, 117, 101, 51, 64, 53, 54, 66, 67, 83, 52, 65, 67, 52, 59, 73, 70, 69, 92, 59, 52, 80, 55, 52, 76, 79, 56, 84, 50, 76, 72, 75, 52, 68, 66, 49, 98, 84, 60, 68, 49, 57, 71, 70, 48, 53, 48, 68, 93, 56, 71, 73, 66, 77, 158, 64, 106, 61, 94, 75, 62, 64, 93, 54, 64, 68, 78, 58, 67, 49, 55, 53, 55, 98, 84, 66, 50, 82, 53, 66, 63, 77, 61, 71, 67, 55, 75, 69, 55, 86, 44, 50, 56, 85, 72, 37, 75, 60, 63, 69, 73, 55, 87, 133, 73, 64, 63, 59, 54, 59, 59, 58, 53, 63, 68, 73, 80, 59, 42, 55, 67, 51, 52, 66, 69, 49, 67, 65, 63, 83, 83, 93, 85, 57, 101, 59, 54, 61, 64, 60, 52, 77, 62, 49, 50, 62, 63, 61, 51, 67, 50, 60, 63, 93, 64, 84, 71, 88, 66, 67, 48, 61, 54, 69, 57, 42, 75, 45, 82, 56, 42, 46, 75, 74, 48, 52, 49, 72, 62, 58, 69, 41, 53, 60, 81, 57, 68, 63, 49, 83, 95, 58, 69, 68, 108, 90, 60, 67, 73, 61, 75, 68, 82, 87, 75, 68, 63, 60, 83, 60, 67, 99, 48, 80, 52, 32, 66, 80, 62, 46, 52, 93, 64, 66, 54, 57, 57, 52, 54, 69, 59, 58, 80, 60, 67, 57, 88, 72, 45, 73, 76, 133, 58, 60, 64, 73, 74, 146, 48, 47, 69, 59, 54, 72, 58, 56, 76, 62, 67, 50, 63, 66, 85, 61, 65, 63, 62, 71, 38, 65, 100, 62, 71, 55, 75, 61, 66, 77, 82, 77, 60, 55, 107, 51, 70, 70, 84, 45, 58, 84, 64, 51, 100, 50, 63, 69, 85, 63, 61, 60, 63, 91, 77, 70, 54, 101, 55, 59, 63, 53, 68, 97, 79, 66, 58, 63, 68, 66, 50, 111, 70, 65, 57, 80, 49, 30, 66, 46, 67, 61, 80, 56, 68, 77, 73, 54, 66, 53, 64, 69, 76, 60, 61, 80, 73, 49, 67, 49, 99, 64, 68, 68, 76, 47, 77, 56, 41, 76, 55, 47, 69, 61, 56, 78, 73, 53, 66, 47, 94, 62, 67, 56, 70, 56, 53, 59, 59, 72, 54, 47, 62, 67, 47, 69, 74, 60, 78, 47, 93, 52, 76, 80, 122, 64, 89, 79, 52, 69, 88, 43, 36, 58, 71, 75, 65, 76, 70, 64, 59, 59, 72, 67, 62, 46, 45, 75, 84, 81, 77, 60, 73, 68, 74, 78, 48, 67, 87, 68, 63, 60, 75, 54, 86, 72, 80, 58, 79, 70, 84, 64, 57, 64, 53, 88, 70, 68, 63, 68, 71, 61, 57, 51, 68, 47, 80, 60, 59, 61, 74, 74, 55, 57, 55, 49, 93, 50, 60, 70, 36, 73, 55, 68, 60, 57, 97, 67, 66, 58, 61, 78, 68, 71, 120, 65, 84, 53, 59, 56, 86, 53, 79, 72, 69, 49, 53, 71, 73, 65, 96, 76, 59, 61, 83, 79, 64, 65, 55, 80, 93, 53, 78, 50, 70, 55, 63, 57, 57, 64, 56, 53, 66, 59, 66, 65, 57, 58, 60, 81, 82, 73, 56, 48, 48, 96, 79, 77, 55, 50, 52, 56, 96, 37, 81, 84, 52, 52, 99, 59, 47, 62, 44, 73, 70, 92, 59, 87, 61, 76, 52, 52, 72, 73, 76, 61, 67, 68, 67, 59, 66, 59, 65, 64, 100, 55, 67, 71, 59, 55, 57, 41, 76, 79, 52, 56, 50, 67, 83, 51, 57, 57, 73, 55, 72, 62, 44, 74, 72, 55, 59, 62, 73, 60, 61, 49, 54, 59, 44, 43, 48, 81, 80, 94, 55, 49, 69, 59, 69, 57, 56, 84, 60, 75, 71, 50, 76, 55, 42, 55, 67, 75, 71, 95, 51, 62, 64, 64, 61, 88, 56, 74, 73, 66, 70, 60, 48, 55, 57, 73, 60, 53, 67, 67, 70, 56, 60, 70, 107, 69, 59, 73, 77, 110, 66, 71, 66, 70, 67, 50, 76, 75, 90, 69, 52, 69, 56, 91, 70, 85, 63, 63, 85, 49, 76, 73, 55, 74, 80, 87, 64, 58, 51, 64, 69, 68, 71, 52, 66, 84, 65, 71, 61, 52, 105, 63, 66, 78, 79, 85, 56, 66, 43, 62, 71, 78, 62, 63, 71, 63, 55, 68, 70, 70, 68, 63, 73, 69, 88, 65, 81, 52, 90, 56, 75, 51, 69, 83, 64, 71, 69, 49, 47, 61, 81, 82, 50, 79, 69, 57, 56, 73, 68, 70, 82, 77, 77, 41, 112, 66, 53, 94, 107, 50, 106, 67, 61, 59, 87, 56, 71, 75, 68, 56, 59, 69, 68, 72, 61, 60, 67, 69, 59, 63, 67, 77, 77, 59, 74, 50, 54, 64, 63, 66, 52, 56, 65, 78, 65, 57, 85, 67, 45, 84, 75, 83, 90, 43, 68, 73, 60, 90, 58, 71, 68, 62, 42, 56, 80, 63, 56, 58, 61, 70, 71, 72, 78, 67, 60, 53, 48, 69, 84, 57, 68, 55, 63, 53, 84, 56, 62, 73, 57, 75, 105, 75, 69, 75, 72, 87, 57, 62, 78, 59, 61, 70, 47, 64, 86, 63, 46, 56, 68, 78, 43, 64, 107, 92, 66, 55, 54, 59, 107, 57, 45, 80, 62, 64, 75, 41, 56, 80, 67, 81, 69, 62, 74, 74, 68, 78, 92, 74, 98, 70, 55, 71, 76, 67, 56, 61, 46, 71, 45, 91, 43, 44, 77, 64, 116, 57, 51, 64, 67, 61, 56, 62, 75, 60, 55, 45, 57, 81, 50, 62, 71, 42, 89, 58, 55, 63, 65, 55, 73, 93, 55, 42, 53, 60, 57, 75, 72, 50, 47, 66, 60, 69, 49, 77, 65, 73, 63, 63, 55, 55, 44, 85, 57, 66, 63, 75, 55, 87, 74, 82, 66, 57, 60, 65, 67, 83, 55, 43, 37, 39, 65, 63, 43, 69, 38, 79, 50, 59, 59, 71, 68, 73, 62, 68, 71, 66, 53, 54, 85, 54, 74, 66, 76, 61, 81, 72, 55, 71, 57, 81, 55, 75, 94, 58, 49, 63, 62, 59, 97, 65, 59, 88, 68, 63, 64, 63, 39, 64, 81, 72, 72, 87, 63, 58, 51, 53, 66, 67, 85, 38, 58, 63, 61, 59, 61, 56, 98, 66, 77, 71, 66, 65, 87, 66, 84, 55, 63, 82, 57, 65, 52, 63, 53, 87, 101, 52, 63, 46, 58, 56, 57, 84, 86, 69, 74, 65, 91, 69, 62, 63, 66, 61, 71, 56, 62, 67, 56, 82, 72, 99, 86, 57, 60, 64, 49, 60, 74, 65, 59, 71, 115, 73, 86, 42, 60, 62, 55, 49, 69, 53, 63, 52, 56, 66, 56, 46, 65, 65, 65, 83, 45, 55, 61, 61, 62, 59, 57, 53, 65, 62, 95, 53, 83, 50, 41, 93, 58, 61, 63, 70, 52, 54, 59, 98, 91, 117, 65, 88, 84, 64, 44, 72, 62, 90, 97, 86, 57, 53, 77, 78, 108, 63, 71, 88, 53, 50, 67, 67, 66, 74, 96, 63, 75, 111, 64, 63, 61, 83, 85, 71, 81, 56, 61, 71, 63, 62, 91, 67, 62, 70, 66, 67, 74, 64, 56, 72, 67, 58, 65, 52, 69, 74, 68, 64, 76, 51, 61, 86, 57, 63, 85, 78, 70, 50, 50, 60, 38, 59, 69, 48, 43, 76, 61, 80, 62, 66, 74, 59, 90, 47, 68, 72, 78, 101, 50, 53, 54, 72, 77, 60, 59, 77, 64, 113, 68, 76, 92, 63, 66, 51, 59, 59, 75, 59, 60, 60, 78, 67, 56, 59, 80, 76, 89, 64, 70, 71, 73, 48, 62, 60, 84, 61, 62, 62, 69, 61, 68, 34, 52, 58, 57, 55, 51, 56, 77, 67, 65, 48, 53, 69, 91, 71, 69, 83, 61, 74, 64, 77, 57, 64, 63, 81, 66, 59, 61, 37, 73, 95, 121, 101, 66, 71, 42, 67, 48, 90, 65, 87, 52, 93, 65, 88, 87, 56, 37, 53, 76, 61, 78, 68, 71, 68, 58, 97, 83, 60, 59, 67, 65, 46, 58, 71, 64, 67, 64, 75, 58, 57, 64, 79, 60, 50, 61, 74, 76, 71, 46, 72, 58, 68, 71, 78, 45, 52, 67, 49, 84, 78, 76, 57, 95, 48, 60, 90, 46, 50, 73, 69, 63, 74, 57, 60, 67, 100, 64, 86, 80, 83, 87, 59, 65, 62, 75, 60, 59, 68, 73, 53, 63, 65, 53, 50, 55, 67, 60, 61, 62, 49, 71, 48, 71, 77, 74, 58, 134, 52, 70, 64, 53, 68, 49, 68, 60, 59, 59, 72, 73, 51, 57, 77, 63, 67, 55, 75, 63, 65, 71, 67, 85, 68, 80, 66, 75, 88, 66, 46, 46, 59, 52, 77, 75, 87, 67, 40, 72, 67, 72, 59, 58, 54, 64, 57, 78, 85, 63, 75, 50, 79, 90, 54, 64, 82, 55, 54, 75, 53, 69, 64, 67, 64, 49, 78, 60, 41, 46, 81, 61, 77, 67, 42, 81, 64, 62, 72, 61, 60, 91, 57, 75, 64, 60, 62, 67, 49, 59, 75, 65, 98, 73, 56, 66, 76, 59, 48, 64, 58, 68, 60, 70, 50, 69, 67, 54, 64, 53, 96, 69, 71, 61, 62, 83, 55, 81, 45, 45, 53, 59, 71, 61, 80, 65, 65, 61, 73, 73, 60, 78, 64, 53, 63, 70, 58, 64, 60, 56, 58, 101, 60, 63, 71, 58, 47, 53, 67, 59, 41, 83, 57, 68, 62, 76, 62, 91, 80, 65, 77, 55, 62, 88, 76, 89, 51, 63, 68, 65, 70, 110, 100, 59, 58, 50, 45, 49, 75, 53, 65, 65, 55, 58, 55, 63, 67, 62, 45, 57, 52, 53, 55, 69, 69, 78, 38, 59, 66, 77, 66, 45, 62, 49, 76, 45, 62, 55, 62, 62, 72, 71, 38, 66, 80, 51, 73, 65, 52, 59, 60, 65, 82, 85, 61, 48, 65, 80, 80, 65, 67, 64, 64, 102, 60, 65, 65, 91, 79, 95, 69, 64, 59, 82, 73, 60, 51, 63, 72, 62, 46, 60, 59, 59, 63, 63, 51, 86, 60, 82, 104, 45, 62, 66, 52, 88, 68, 73, 70, 103, 98, 46, 64, 47, 75, 53, 89, 73, 66, 56, 52, 59, 48, 66, 44, 71, 88, 108, 50, 82, 89, 41, 51, 75, 67, 63, 66, 69, 60, 66, 56, 71, 48, 69, 58, 74, 67, 65, 53, 60, 61, 60, 48, 67, 101, 64, 54, 64, 66, 77, 66, 70, 92, 65, 40, 71, 56, 80, 61, 68, 59, 46, 70, 51, 74, 65, 75, 53, 57, 66, 73, 65, 89, 106, 88, 66, 61, 59, 83, 50, 78, 58, 79, 80, 63, 87, 66, 55, 68, 62, 91, 76, 62, 47, 73, 83, 62, 54, 60, 55, 90, 66, 72, 91, 68, 59, 55, 114, 67, 81, 57, 61, 80, 62, 60, 64, 55, 64, 68, 55, 82, 85, 73, 51, 70, 70, 93, 68, 67, 84, 57, 67, 61, 90, 50, 64, 57, 57, 69, 57, 82, 51, 62, 59, 67, 69, 50, 85, 74, 81, 91, 85, 58, 60, 54, 99, 92, 90, 93, 64, 69, 71, 56, 52, 76, 59, 49, 57, 53, 55, 64, 48, 35, 71, 52, 60, 52, 82, 59, 69, 55, 56, 80, 68, 98, 56, 76, 60, 80, 105, 74, 48, 64, 87, 55, 66, 57, 73, 65, 59, 63, 59, 71, 91, 64, 64, 72, 79, 65, 61, 74, 103, 92, 75, 65, 56, 60, 67, 72, 53, 73, 48, 81, 75, 66, 68, 76, 51, 79, 69, 67, 61, 67, 67, 59, 82, 63, 86, 78, 60, 46, 66, 59, 59, 61, 59, 72, 71, 70, 61, 65, 68, 67, 119, 57, 58, 74, 78, 54, 40, 79, 74, 61, 58, 66, 80, 71, 64, 62, 61, 64, 73, 43, 78, 70, 48, 45, 106, 106, 64, 46, 77, 56, 62, 72, 50, 69, 59, 91, 50, 54, 66, 53, 51, 72, 80, 82, 69, 63, 44, 71, 58, 60, 85, 84, 69, 52, 71, 48, 66, 48, 56, 69, 53, 102, 58, 58, 58, 53, 46, 77, 50, 62, 61, 56, 66, 53, 59, 65, 53, 58, 60, 69, 47, 58, 49, 62, 42, 75, 66, 66, 44, 85, 68, 72, 41, 74, 56, 74, 64, 78, 69, 53, 62, 57, 55, 44, 76, 73, 74, 111, 69, 74, 51, 78, 65, 64, 62, 66, 74, 83, 50, 61, 63, 74, 57, 68, 68, 65, 69, 76, 76, 44, 56, 53, 85, 84, 62, 58, 70, 67, 83, 69, 58, 65, 55, 68, 57, 76, 61, 54, 48, 97, 58, 59, 76, 56, 53, 99, 44, 62, 100, 69, 83, 73, 60, 62, 66, 53, 53, 61, 71, 56, 73, 70, 50, 66, 61, 86, 57, 64, 67, 58, 61, 60, 80, 58, 44, 74, 102, 73, 74, 62, 62, 81, 44, 42, 70, 52, 75, 46, 69, 81, 71, 70, 74, 53, 47, 72, 55, 68, 39, 62, 71, 63, 76, 73, 64, 63, 88, 60, 65, 44, 60, 67, 76, 50, 61, 70, 60, 53, 47, 102, 96, 113, 72, 66, 51, 57, 55, 64, 75, 71, 101, 60, 56, 77, 62, 58, 74, 56, 90, 82, 81, 52, 56, 58, 66, 64, 86, 58, 79, 94, 59, 63, 49, 73, 61, 66, 66, 69, 52, 55, 72, 56, 59, 70, 91, 58, 70, 78, 75, 60, 47, 95, 78, 57, 53, 61, 66, 43, 71, 72, 44, 53, 86, 72, 44, 81, 52, 75, 44, 66, 66, 91, 85, 57, 43, 51, 52, 72, 42, 68, 60, 61, 82, 65, 71, 57, 62, 80, 83, 52, 78, 68, 61, 62, 63, 76, 69, 52, 50, 101, 92, 82, 59, 62, 70, 54, 59, 63, 77, 88, 67, 63, 68, 51, 62, 59, 76, 57, 54, 57, 93, 78, 70, 54, 70, 59, 71, 68, 63, 75, 54, 78, 83, 66, 59, 69, 72, 68, 74, 54, 101, 67, 45, 68, 66, 44, 61, 48, 67, 89, 53, 82, 78, 45, 54, 59, 53, 61, 67, 69, 59, 70, 54, 55, 123, 76, 37, 78, 57, 64, 61, 87, 51, 56, 43, 72, 51, 96, 69, 53, 56, 76, 69, 89, 61, 69, 63, 63, 66, 82, 86, 67, 79, 96, 55, 56, 61, 73, 63, 61, 80, 75, 56, 62, 66, 56, 60, 57, 49, 78, 74, 63, 74, 69, 61, 51, 90, 81, 50, 64, 73, 49, 77, 72, 92, 58, 47, 54, 59, 53, 29, 49, 64, 49, 74, 71, 70, 66, 64, 108, 82, 46, 81, 106, 76, 61, 80, 55, 78, 63, 71, 54, 61, 66, 67, 76, 52, 79, 63, 51, 57, 60, 73, 53, 53, 65, 44, 65, 64, 50, 75, 84, 64, 50, 80, 59, 46, 100, 88, 67, 54, 83, 46, 64, 58, 51, 61, 46, 57, 74, 77, 65, 46, 70, 67, 45, 51, 78, 78, 71, 49, 83, 61, 49, 64, 68, 90, 82, 59, 74, 58, 59, 69, 49, 72, 48, 51, 74, 52, 91, 79, 60, 70, 68, 104, 48, 59, 73, 59, 65, 53, 72, 52, 58, 68, 70, 58, 66, 62, 51, 56, 62, 59, 81, 72, 43, 73, 81, 90, 70, 56, 49, 72, 65, 68, 60, 51, 48, 64, 69, 65, 71, 66, 114, 69, 52, 67, 67, 61, 51, 54, 60, 70, 58, 63, 51, 60, 69, 56, 60, 55, 89, 61, 53, 78, 55, 73, 34, 57, 55, 54, 53, 59, 61, 59, 75, 56, 59, 64, 74, 60, 46, 72, 65, 55, 53, 47, 58, 61, 73, 60, 63, 90, 50, 68, 71, 51, 81, 68, 54, 54, 54, 81, 66, 76, 52, 36, 79, 94, 70, 54, 108, 65, 74, 72, 52, 69, 68, 55, 70, 59, 62, 111, 86, 55, 46, 57, 51, 67, 68, 63, 63, 44, 56, 60, 78, 64, 58, 82, 58, 78, 53, 65, 50, 62, 68, 77, 45, 66, 54, 89, 63, 77, 68, 53, 69, 56, 46, 62, 77, 56, 61, 75, 76, 52, 72, 67, 67, 62, 53, 50, 74, 93, 75, 90, 72, 57, 64, 76, 62, 64, 55, 47, 67, 118, 65, 85, 69, 75, 67, 79, 42, 75, 50, 52, 89, 57, 63, 62, 48, 62, 63, 50, 59, 68, 61, 84, 58, 76, 64, 61, 70, 59, 56, 48, 69, 62, 71, 64, 53, 73, 69, 55, 73, 59, 83, 55, 68, 41, 84, 44, 77, 47, 60, 74, 77, 79, 72, 74, 58, 61, 94, 41, 67, 60, 51, 56, 58, 73, 59, 59, 47, 61, 56, 53, 89, 58, 69, 63, 60, 62, 44, 70, 63, 65, 42, 68, 60, 76, 60, 97, 56, 68, 70, 53, 68, 72, 63, 77, 86, 68, 72, 65, 53, 72, 75, 75, 58, 87, 58, 58, 60, 53, 59, 77, 82, 96, 60, 71, 66, 70, 84, 73, 80, 84, 83, 68, 49, 61, 86, 60, 67, 65, 57, 59, 77, 51, 53, 76, 74, 56, 101, 48, 47, 98, 75, 44, 75, 116, 74, 92, 61, 64, 69, 64, 68, 55, 54, 81, 57, 46, 57, 82, 55, 58, 46, 83, 100, 51, 66, 60, 54, 73, 55, 68, 62, 62, 78, 72, 46, 46, 59, 59, 70, 64, 61, 64, 55, 58, 55, 65, 64, 50, 71, 56, 66, 60, 93, 58, 70, 71, 88, 66, 90, 73, 46, 67, 77, 76, 84, 54, 66, 73, 62, 61, 62, 60, 43, 83, 47, 57, 69, 73, 68, 71, 53, 70, 86, 44, 68, 104, 74, 61, 67, 73, 81, 69, 44, 65, 74, 63, 79, 57, 83, 98, 61, 61, 60, 59, 57, 69, 76, 74, 106, 57, 89, 67, 68, 110, 62, 78, 76, 56, 67, 74, 63, 65, 76, 62, 51, 61, 53, 87, 93, 75, 43, 91, 53, 51, 60, 72, 53, 71, 64, 55, 46, 53, 65, 36, 71, 66, 56, 75, 63, 97, 49, 55, 54, 64, 60, 53, 72, 74, 72, 54, 67, 70, 83, 75, 55, 64, 69, 60, 44, 54, 53, 62, 45, 62, 99, 71, 54, 68, 57, 58, 66, 55, 71, 63, 82, 68, 63, 50, 67, 62, 84, 63, 69, 67, 55, 50, 63, 51, 56, 72, 91, 59, 66, 64, 87, 84, 92, 49, 54, 94, 55, 62, 72, 57, 67, 64, 59, 80, 61, 56, 72, 55, 63, 67, 88, 54, 64, 63, 76, 69, 56, 48, 42, 78, 83, 68, 59, 53, 57, 71, 38, 58, 80, 64, 61, 54, 101, 61, 44, 69, 74, 58, 63, 84, 51, 69, 106, 69, 55, 52, 50, 57, 72, 82, 93, 67, 80, 64, 59, 64, 57, 69, 52, 74, 49, 46, 73, 61, 45, 51, 59, 86, 60, 66, 81, 68, 68, 54, 56, 58, 67, 67, 68, 60, 63, 77, 77, 80, 49, 49, 74, 69, 57, 51, 70, 69, 88, 86, 65, 58, 72, 70, 72, 53, 54, 54, 53, 61, 66, 78, 65, 49, 76, 64, 108, 84, 69, 58, 78, 44, 61, 74, 65, 73, 58, 117, 65, 68, 71, 57, 71, 60, 65, 65, 62, 65, 55, 74, 71, 46, 79, 93, 70, 52, 62, 57, 73, 52, 74, 59, 65, 67, 57, 81, 64, 56, 66, 69, 60, 45, 74, 61, 88, 73, 91, 66, 57, 68, 96, 81, 104, 56, 63, 75, 82, 58, 57, 64, 64, 76, 67, 56, 81, 82, 75, 109, 60, 71, 59, 74, 49, 48, 65, 78, 64, 80, 73, 75, 94, 62, 66, 79, 69, 49, 53, 53, 65, 88, 55, 60, 45, 67, 63, 57, 87, 68, 81, 68, 64, 62, 75, 63, 62, 61, 62, 51, 84, 54, 81, 64, 64, 44, 52, 59, 80, 70, 59, 52, 44, 61, 75, 51, 64, 58, 61, 52, 56, 88, 60, 78, 56, 74, 58, 58, 60, 75, 88, 67, 78, 63, 61, 63, 69, 69, 58, 49, 78, 69, 97, 80, 68, 45, 68, 67, 68, 56, 80, 55, 57, 61, 55, 62, 58, 77, 76, 45, 65, 80, 54, 61, 74, 60, 65, 76, 81, 72, 82, 71, 52, 65, 68, 75, 42, 69, 66, 51, 75, 58, 69, 66, 56, 64, 53, 65, 66, 60, 55, 54, 72, 63, 70, 64, 68, 53, 78, 80, 90, 72, 65, 57, 65, 64, 72, 119, 92, 81, 49, 62, 76, 53, 58, 81, 88, 54, 35, 65, 54, 73, 57, 49, 60, 63, 51, 74, 42, 64, 49, 71, 90, 75, 71, 66, 51, 57, 65, 47, 66, 51, 40, 74, 57, 64, 38, 63, 52, 53, 70, 52, 76, 91, 59, 54, 84, 67, 73, 70, 80, 64, 60, 59, 57, 50, 72, 89, 55, 82, 55, 37, 59, 76, 48, 57, 58, 67, 43, 74, 55, 70, 96, 43, 71, 91, 88, 74, 71, 62, 58, 94, 67, 52, 51, 68, 58, 79, 62, 53, 57, 51, 70, 72, 70, 74, 63, 68, 91, 56, 81, 75, 69, 126, 61, 80, 81, 58, 64, 38, 63, 54, 59, 58, 97, 77, 56, 65, 66, 59, 72, 46, 80, 64, 54, 51, 43, 69, 82, 68, 69, 54, 82, 73, 75, 73, 61, 61, 55, 78, 62, 43, 63, 54, 63, 66, 76, 71, 45, 63, 74, 74, 84, 62, 99, 50, 62, 93, 44, 67, 56, 65, 71, 63, 70, 71, 65, 78, 54, 60, 48, 67, 67, 49, 72, 52, 67, 55, 72, 57, 67, 81, 68, 74, 64, 96, 53, 67, 57, 47, 78, 56, 57, 62, 61, 70, 130, 75, 54, 71, 50, 63, 86, 45, 69, 68, 54, 61, 74, 65, 74, 35, 60, 67, 93, 81, 71, 67, 79, 85, 82, 67, 61, 70, 62, 84, 72, 67, 56, 62, 58, 76, 64, 68, 58, 64, 83, 53, 55, 62, 61, 71, 59, 58, 60, 115, 70, 86, 69, 62, 67, 67, 75, 60, 59, 66, 69, 73, 53, 45, 46, 102, 60, 57, 64, 48, 72, 91, 65, 71, 52, 49, 77, 73, 70, 115, 64, 69, 56, 61, 58, 63, 56, 52, 50, 71, 73, 68, 68, 62, 44, 63, 54, 69, 66, 71, 57, 49, 59, 75, 59, 47, 54, 110, 48, 77, 67, 56, 84, 66, 67, 69, 101, 58, 71, 87, 62, 80, 69, 74, 64, 52, 71, 62, 61, 60, 65, 80, 50, 73, 60, 82, 52, 54, 56, 57, 74, 122, 71, 59, 85, 68, 68, 92, 55, 76, 52, 65, 65, 62, 61, 78, 62, 64, 76, 60, 94, 86, 90, 86, 54, 86, 50, 70, 66, 73, 67, 72, 51, 90, 50, 61, 64, 47, 70, 53, 57, 53, 80, 65, 79, 74, 60, 56, 84, 62, 84, 72, 55, 80, 63, 39, 65, 38, 78, 51, 50, 63, 88, 58, 52, 66, 77, 79, 49, 65, 70, 48, 91, 63, 48, 59, 69, 70, 69, 43, 57, 70, 62, 63, 64, 57, 55, 89, 70, 65, 48, 56, 80, 47, 78, 64, 57, 58, 69, 77, 55, 66, 57, 66, 54, 59, 52, 74, 69, 71, 54, 82, 57, 56, 50, 72, 49, 68, 79, 84, 104, 78, 85, 69, 43, 63, 66, 55, 47, 54, 53, 67, 66, 66, 51, 61, 54, 65, 104, 54, 54, 89, 68, 53, 62, 122, 58, 98, 65, 51, 74, 68, 65, 54, 71, 88, 68, 70, 62, 62, 59, 60, 59, 74, 88, 53, 64, 67, 70, 73, 67, 54, 46, 61, 71, 77, 46, 62, 50, 65, 64, 57, 61, 67, 69, 66, 69, 58, 66, 73, 56, 54, 85, 69, 76, 65, 77, 56, 75, 79, 71, 59, 55, 60, 56, 73, 88, 61, 61, 69, 70, 70, 45, 70, 55, 82, 73, 42, 74, 76, 72, 60, 85, 59, 70, 69, 77, 99, 41, 63, 75, 51, 77, 62, 62, 60, 72, 54, 72, 51, 56, 91, 76, 73, 58, 45, 53, 59, 67, 76, 111, 77, 59, 56, 64, 107, 68, 57, 90, 51, 54, 67, 63, 79, 76, 66, 50, 51, 72, 45, 65, 82, 61, 111, 51, 60, 54, 65, 48, 66, 67, 68, 52, 70, 55, 42, 68, 57, 80, 85, 69, 127, 57, 64, 62, 66, 58, 43, 55, 68, 60, 81, 57, 72, 99, 59, 54, 56, 72, 65, 55, 72, 55, 57, 68, 58, 99, 56, 51, 64, 65, 82, 74, 78, 65, 56, 98, 64, 67, 66, 63, 70, 78, 82, 73, 51, 41, 68, 75, 69, 53, 60, 57, 61, 87, 75, 74, 61, 79, 57, 62, 76, 52, 66, 66, 59, 57, 59, 52, 37, 70, 58, 55, 60, 46, 59, 74, 87, 61, 59, 68, 56, 53, 47, 67, 72, 52, 61, 80, 49, 62, 46, 60, 74, 74, 72, 60, 53, 73, 56, 73, 57, 63, 60, 76, 73, 41, 62, 100, 67, 63, 40, 83, 49, 56, 87, 90, 57, 62, 68, 66, 64, 64, 73, 48, 76, 63, 62, 72, 69, 55, 73, 47, 64, 64, 63, 69, 50, 38, 55, 74, 64, 55, 72, 99, 66, 56, 71, 76, 66, 68, 77, 62, 66, 67, 70, 72, 53, 93, 69, 58, 63, 73, 85, 58, 61, 63, 47, 63, 39, 52, 50, 75, 56, 55, 71, 99, 81, 55, 57, 81, 63, 80, 66, 59, 90, 69, 111, 58, 49, 61, 70, 52, 56, 74, 63, 74, 66, 70, 51, 73, 75, 72, 64, 66, 54, 61, 73, 60, 67, 64, 68, 55, 67, 82, 90, 63, 69, 69, 95, 59, 67, 67, 96, 91, 58, 72, 51, 65, 60, 111, 61, 98, 56, 67, 77, 68, 54, 55, 70, 64, 53, 65, 64, 39, 61, 68, 120, 72, 65, 52, 65, 65, 66, 61, 56, 53, 72, 67, 70, 98, 73, 57, 56, 81, 61, 52, 61, 58, 78, 82, 68, 53, 74, 69, 39, 66, 67, 79, 55, 73, 71, 84, 71, 71, 51, 64, 65, 68, 57, 70, 96, 62, 85, 81, 57, 41, 56, 62, 62, 45, 68, 71, 56, 56, 46, 59, 60, 72, 75, 72, 70, 73, 80, 70, 50, 44, 64, 90, 43, 107, 56, 85, 78, 55, 80, 54, 51, 61, 66, 102, 104, 51, 62, 73, 64, 72, 57, 78, 52, 53, 61, 79, 88, 60, 57, 49, 45, 87, 77, 68, 73, 63, 65, 70, 75, 61, 45, 64, 61, 85, 61, 82, 68, 49, 52, 65, 74, 71, 73, 66, 87, 73, 65, 59, 58, 55, 70, 78, 77, 81, 64, 69, 64, 58, 69, 66, 63, 79, 65, 62, 54, 56, 63, 53, 121, 107, 58, 67, 73, 59, 62, 59, 71, 79, 41, 53, 66, 75, 56, 89, 49, 62, 80, 79, 63, 46, 93, 51, 64, 100, 77, 68, 49, 62, 53, 64, 58, 45, 84, 64, 90, 82, 62, 41, 54, 61, 52, 65, 57, 71, 82, 76, 75, 89, 39, 47, 52, 77, 66, 56, 68, 62, 65, 74, 92, 55, 55, 58, 48, 69, 56, 68, 71, 53, 53, 72, 57, 61, 69, 81, 70, 66, 63, 66, 74, 78, 54, 40, 60, 48, 55, 72, 49, 84, 73, 72, 51, 57, 58, 52, 63, 60, 58, 64, 86, 69, 74, 64, 81, 66, 107, 62, 57, 63, 64, 68, 63, 72, 68, 64, 44, 95, 62, 63, 48, 78, 78, 67, 70, 67, 61, 71, 66, 64, 74, 52, 64, 86, 60, 86, 53, 65, 75, 65, 43, 55, 78, 58, 68, 76, 75, 54, 60, 59, 69, 73, 92, 71, 77, 91, 66, 100, 47, 43, 92, 52, 69, 70, 62, 45, 81, 61, 75, 65, 62, 61, 49, 76, 61, 64, 67, 58, 55, 70, 47, 58, 78, 73, 88, 58, 51, 70, 75, 69, 65, 59, 66, 57, 65, 68, 64, 65, 78, 122, 85, 67, 77, 75, 50, 51, 47, 69, 67, 58, 55, 60, 72, 80, 54, 49, 48, 73, 74, 43, 70, 46, 55, 64, 68, 60, 50, 54, 56, 83, 78, 66, 88, 60, 76, 57, 68, 51, 70, 65, 69, 56, 63, 81, 61, 60, 69, 61, 98, 82, 61, 61, 74, 57, 59, 80, 65, 55, 59, 52, 56, 55, 69, 67, 88, 63, 59, 48, 65, 63, 65, 49, 86, 58, 60, 66, 76, 66, 128, 68, 64, 49, 41, 52, 66, 51, 52, 63, 59, 61, 52, 62, 81, 52, 70, 80, 65, 95, 66, 55, 71, 59, 81, 72, 74, 59, 95, 57, 60, 66, 70, 73, 71, 56, 79, 81, 59, 84, 90, 59, 61, 71, 58, 62, 53, 85, 71, 62, 55, 56, 87, 67, 64, 66, 62, 64, 58, 64, 56, 52, 122, 54, 51, 86, 79, 98, 89, 62, 51, 63, 72, 73, 53, 67, 59, 77, 59, 87, 66, 56, 99, 62, 68, 54, 77, 61, 74, 63, 66, 75, 54, 57, 92, 71, 87, 77, 77, 68, 83, 80, 44, 60, 54, 74, 67, 58, 72, 77, 49, 61, 65, 70, 62, 74, 86, 57, 51, 120, 72, 82, 57, 58, 67, 61, 66, 61, 47, 60, 55, 70, 65, 42, 57, 62, 64, 73, 50, 75, 66, 71, 61, 70, 50, 57, 55, 55, 80, 58, 48, 69, 88, 113, 96, 73, 53, 61, 58, 65, 50, 83, 75, 53, 70, 71, 63, 76, 56, 67, 64, 114, 122, 57, 75, 72, 74, 55, 61, 67, 53, 66, 83, 64, 92, 48, 69, 72, 63, 55, 64, 82, 55, 70, 77, 40, 54, 66, 78, 72, 72, 70, 92, 72, 48, 60, 88, 61, 66, 68, 79, 61, 55, 88, 56, 36, 102, 53, 64, 83, 82, 67, 75, 80, 34, 67, 73, 62, 60, 64, 84, 91, 89, 68, 51, 60, 56, 64, 56, 49, 61, 72, 59, 71, 90, 42, 68, 59, 73, 82, 78, 61, 56, 51, 108, 102, 75, 58, 62, 74, 54, 62, 55, 53, 57, 54, 56, 55, 59, 59, 103, 63, 54, 63, 56, 66, 106, 73, 58, 66, 65, 46, 73, 63, 65, 56, 68, 68, 117, 50, 63, 75, 62, 95, 59, 85, 57, 48, 59, 67, 68, 66, 84, 66, 79, 45, 78, 53, 69, 65, 91, 40, 43, 91, 62, 67, 49, 67, 56, 83, 61, 67, 64, 92, 66, 46, 53, 87, 49, 54, 67, 68, 73, 53, 76, 47, 83, 50, 58, 60, 66, 58, 56, 47, 69, 59, 61, 107, 76, 69, 64, 70, 95, 66, 68, 47, 70, 59, 69, 69, 56, 63, 55, 54, 74, 59, 55, 79, 67, 74, 46, 59, 64, 39, 51, 69, 81, 62, 51, 42, 56, 53, 61, 74, 55, 67, 63, 79, 74, 63, 52, 70, 65, 73, 44, 51, 70, 78, 43, 74, 73, 56, 65, 71, 55, 66, 61, 64, 60, 40, 53, 51, 59, 103, 73, 60, 58, 75, 58, 54, 79, 48, 59, 49, 68, 59, 51, 84, 57, 58, 62, 49, 77, 52, 59, 56, 77, 69, 74, 60, 95, 57, 68, 56, 73, 69, 45, 59, 56, 107, 41, 49, 57, 68, 56, 60, 73, 73, 59, 87, 62, 53, 97, 86, 72, 82, 60, 70, 62, 67, 66, 74, 51, 85, 62, 75, 63, 62, 55, 67, 70, 60, 69, 85, 59, 77, 77, 60, 72, 67, 63, 64, 61, 61, 75, 73, 55, 61, 76, 52, 54, 80, 57, 67, 54, 75, 50, 73, 65, 63, 101, 65, 63, 57, 61, 40, 62, 52, 74, 71, 39, 73, 46, 55, 56, 55, 53, 53, 61, 73, 61, 71, 58, 76, 61, 67, 45, 60, 120, 66, 67, 60, 57, 52, 51, 59, 55, 82, 66, 67, 65, 66, 55, 41, 95, 67, 62, 81, 71, 53, 54, 80, 66, 65, 81, 95, 81, 75, 65, 71, 63, 54, 77, 57, 81, 61, 56, 55, 54, 85, 53, 114, 78, 96, 104, 101, 58, 56, 56, 69, 63, 107, 66, 62, 60, 66, 54, 64, 46, 39, 63, 67, 82, 81, 63, 72, 70, 62, 79, 74, 65, 79, 55, 66, 62, 50, 74, 60, 73, 58, 75, 60, 63, 43, 49, 67, 50, 85, 75, 68, 59, 76, 80, 45, 53, 67, 66, 62, 55, 48, 62, 71, 58, 46, 56, 62, 67, 66, 73, 66, 60, 61, 56, 45, 63, 47, 45, 88, 57, 61, 67, 87, 67, 67, 60, 58, 90, 62, 76, 66, 58, 64, 72, 65, 40, 52, 70, 74, 55, 63, 58, 67, 80, 74, 56, 73, 56, 60, 65, 58, 53, 87, 61, 65, 68, 55, 81, 54, 68, 76, 107, 48, 62, 86, 54, 77, 89, 67, 66, 60, 72, 92, 79, 84, 66, 59, 53, 53, 59, 67, 83, 73, 94, 73, 63, 78, 69, 61, 63, 58, 75, 56, 91, 44, 52, 65, 64, 68, 73, 63, 70, 54, 63, 55, 56, 68, 86, 85, 66, 58, 74, 90, 64, 97, 71, 78, 53, 121, 69, 63, 43, 54, 45, 87, 65, 54, 64, 51, 65, 72, 79, 107, 62, 41, 58, 78, 57, 78, 93, 64, 57, 64, 60, 71, 75, 77, 62, 54, 71, 60, 59, 67, 47, 62, 67, 60, 48, 61, 49, 81, 50, 53, 80, 67, 58, 75, 56, 60, 68, 61, 41, 80, 55, 49, 73, 63, 65, 57, 52, 55, 52, 104, 67, 53, 85, 69, 83, 58, 107, 73, 72, 71, 79, 54, 63, 36, 74, 50, 59, 64, 54, 80, 57, 53, 75, 63, 69, 48, 62, 53, 47, 57, 64, 45, 61, 73, 62, 52, 64, 87, 63, 84, 74, 74, 67, 70, 67, 69, 89, 53, 54, 56, 54, 61, 61, 68, 61, 52, 69, 64, 46, 90, 59, 91, 64, 50, 55, 68, 72, 62, 46, 72, 64, 69, 78, 63, 87, 46, 71, 51, 70, 102, 60, 56, 75, 59, 94, 65, 60, 40, 59, 81, 69, 70, 71, 66, 57, 67, 63, 64, 48, 49, 86, 79, 53, 63, 82, 61, 65, 59, 66, 58, 71, 73, 43, 63, 52, 53, 72, 61, 57, 72, 77, 94, 72, 87, 65, 62, 64, 73, 65, 72, 47, 46, 58, 59, 64, 53, 59, 56, 73, 59, 62, 78, 59, 61, 99, 63, 58, 71, 54, 59, 55, 62, 57, 83, 65, 77, 68, 51, 66, 55, 73, 47, 82, 62, 78, 44, 65, 62, 71, 49, 61, 62, 109, 61, 86, 65, 68, 63, 68, 55, 61, 58, 68, 56, 51, 39, 51, 58, 92, 64, 62, 61, 60, 63, 83, 48, 89, 74, 56, 54, 63, 79, 97, 70, 49, 60, 62, 53, 76, 81, 96, 50, 76, 55, 47, 56, 57, 63, 92, 59, 61, 52, 56, 53, 68, 74, 106, 77, 55, 56, 71, 67, 64, 72, 68, 59, 68, 60, 35, 79, 57, 82, 64, 65, 62, 71, 49, 70, 50, 61, 65, 73, 54, 86, 86, 52, 73, 67, 75, 46, 72, 72, 64, 57, 74, 62, 52, 47, 76, 61, 80, 56, 62, 68, 61, 62, 64, 57, 73, 82, 44, 46, 63, 73, 54, 48, 63, 54, 53, 63, 73, 52, 68, 71, 60, 60, 72, 71, 81, 62, 47, 64, 67, 81, 68, 59, 105, 83, 74, 101, 76, 61, 60, 61, 75, 52, 81, 71, 63, 61, 74, 53, 67, 56, 61, 82, 56, 82, 69, 61, 63, 62, 84, 60, 61, 57, 49, 48, 69, 46, 56, 65, 75, 47, 66, 71, 79, 66, 75, 61, 65, 65, 65, 80, 93, 52, 71, 59, 45, 68, 57, 61, 55, 73, 81, 64, 61, 63, 62, 71, 86, 65, 65, 55, 77, 88, 84, 52, 66, 65, 59, 49, 77, 78, 82, 50, 63, 78, 56, 110, 67, 80, 78, 61, 46, 108, 66, 50, 78, 62, 62, 67, 54, 55, 73, 68, 66, 45, 110, 63, 66, 68, 65, 65, 41, 47, 81, 41, 55, 64, 47, 64, 60, 63, 63, 93, 89, 72, 87, 69, 62, 78, 77, 67, 66, 51, 51, 82, 69, 74, 72, 69, 76, 52, 71, 89, 82, 72, 67, 76, 72, 71, 42, 63, 53, 74, 72, 61, 61, 73, 68, 45, 49, 60, 69, 79, 58, 57, 61, 67, 57, 67, 49, 57, 54, 55, 90, 49, 82, 72, 71, 79, 67, 54, 55, 79, 59, 71, 63, 67, 66, 53, 82, 62, 79, 53, 66, 38, 92, 55, 59, 67, 59, 57, 49, 82, 67, 58, 91, 53, 74, 47, 64, 129, 93, 76, 57, 67, 107, 61, 62, 80, 88, 65, 57, 73, 56, 76, 59, 63, 93, 70, 55, 53, 68, 59, 73, 61, 63, 83, 58, 59, 73, 52, 91, 50, 63, 74, 69, 61, 68, 58, 67, 74, 69, 59, 67, 74, 60, 62, 52, 64, 46, 67, 60, 67, 66, 58, 75, 54, 72, 85, 59, 50, 65, 53, 60, 82, 98, 67, 71, 73, 58, 54, 79, 53, 62, 67, 63, 58, 64, 62, 61, 83, 55, 76, 64, 74, 62, 64, 57, 53, 67, 71, 60, 71, 78, 59, 77, 56, 61, 60, 68, 74, 75, 69, 61, 69, 64, 63, 51, 59, 78, 45, 70, 63, 77, 79, 56, 53, 67, 70, 53, 65, 62, 64, 46, 57, 66, 62, 54, 91, 42, 72, 59, 65, 67, 62, 57, 59, 74, 58, 58, 60, 54, 66, 55, 56, 96, 70, 74, 53, 61, 53, 47, 70, 62, 67, 81, 69, 90, 79, 58, 86, 84, 67, 79, 66, 60, 54, 62, 68, 68, 62, 61, 60, 51, 53, 52, 71, 66, 64, 63, 53, 49, 63, 60, 58, 60, 70, 49, 81, 71, 72, 52, 78, 88, 47, 63, 64, 63, 77, 85, 66, 45, 57, 67, 91, 71, 64, 73, 72, 87, 58, 75, 51, 66, 68, 66, 77, 76, 77, 46, 60, 46, 48, 62, 60, 74, 61, 61, 81, 63, 64, 88, 86, 56, 63, 50, 66, 55, 45, 68, 54, 48, 154, 76, 70, 60, 65, 63, 59, 57, 59, 81, 56, 48, 54, 79, 66, 78, 61, 61, 59, 47, 52, 94, 67, 59, 70, 48, 74, 48, 90, 83, 107, 67, 63, 60, 56, 55, 120, 76, 68, 77, 57, 58, 74, 93, 65, 91, 71, 79, 70, 73, 54, 70, 61, 57, 62, 96, 69, 68, 63, 68, 76, 65, 66, 59, 60, 51, 52, 67, 58, 74, 71, 67, 57, 57, 68, 55, 67, 79, 70, 52, 73, 56, 63, 42, 65, 73, 47, 69, 88, 63, 74, 69, 72, 83, 92, 73, 56, 63, 60, 59, 78, 52, 99, 75, 73, 54, 59, 31, 63, 64, 67, 62, 80, 84, 65, 44, 86, 82, 67, 47, 53, 59, 66, 130, 72, 63, 78, 57, 55, 73, 64, 45, 67, 67, 66, 67, 61, 54, 61, 117, 54, 73, 56, 97, 63, 64, 53, 56, 75, 66, 65, 65, 54, 67, 69, 84, 72, 56, 35, 66, 60, 58, 63, 69, 75, 54, 60, 47, 61, 64, 57, 69, 70, 63, 60, 76, 65, 66, 79, 59, 68, 79, 78, 62, 57, 84, 69, 61, 48, 66, 61, 47, 64, 103, 84, 91, 57, 80, 64, 82, 59, 62, 98, 52, 55, 60, 75, 76, 61, 60, 66, 60, 54, 62, 60, 103, 72, 47, 110, 119, 68, 82, 106, 70, 61, 47, 62, 43, 67, 65, 118, 55, 61, 58, 50, 52, 55, 82, 54, 49, 55, 64, 87, 60, 52, 78, 62, 87, 62, 56, 48, 59, 70, 60, 73, 61, 96, 55, 50, 64, 80, 51, 55, 60, 72, 71, 81, 63, 80, 51, 87, 68, 106, 67, 63, 72, 62, 96, 69, 61, 56, 70, 70, 67, 56, 70, 51, 56, 73, 107, 53, 56, 58, 87, 63, 101, 82, 56, 67, 98, 85, 78, 49, 56, 72, 68, 63, 63, 59, 50, 86, 46, 57, 49, 68, 58, 59, 75, 85, 62, 105, 49, 58, 102, 65, 56, 73, 67, 46, 64, 80, 70, 74, 58, 62, 83, 68, 38, 55, 56, 69, 51, 56, 60, 60, 51, 59, 108, 71, 52, 110, 89, 75, 89, 81, 73, 68, 74, 64, 55, 67, 54, 68, 43, 65, 63, 60, 52, 73, 61, 75, 54, 68, 67, 61, 64, 46, 65, 58, 57, 57, 53, 63, 67, 51, 65, 79, 42, 56, 71, 72, 41, 77, 77, 56, 68, 50, 62, 72, 60, 62, 55, 82, 62, 65, 68, 74, 75, 39, 64, 59, 58, 91, 59, 72, 62, 48, 64, 75, 55, 69, 53, 85, 72, 74, 76, 77, 66, 64, 58, 60, 57, 72, 74, 80, 75, 60, 61, 84, 55, 72, 52, 71, 81, 66, 60, 48, 67, 83, 61, 70, 47, 69, 82, 61, 56, 63, 35, 72, 53, 80, 71, 60, 60, 46, 50, 71, 61, 65, 55, 83, 107, 65, 85, 60, 57, 59, 54, 59, 56, 42, 69, 48, 80, 57, 69, 58, 58, 90, 92, 63, 72, 64, 59, 56, 53, 52, 74, 53, 79, 65, 80, 82, 67, 72, 66, 109, 63, 75, 53, 65, 83, 60, 65, 68, 53, 83, 62, 84, 75, 53, 64, 58, 96, 67, 58, 67, 63, 50, 65, 56, 57, 56, 107, 62, 68, 74, 60, 86, 77, 66, 76, 80, 49, 50, 63, 76, 66, 84, 54, 78, 62, 68, 60, 67, 59, 59, 66, 64, 45, 47, 78, 68, 79, 60, 74, 43, 75, 56, 59, 61, 58, 63, 82, 53, 60, 83, 49, 60, 64, 75, 65, 68, 52, 54, 104, 54, 62, 52, 73, 52, 102, 57, 62, 60, 69, 64, 63, 88, 75, 64, 60, 57, 64, 60, 61, 73, 54, 62, 61, 60, 57, 64, 86, 60, 82, 64, 101, 57, 68, 59, 51, 48, 57, 65, 54, 63, 62, 50, 68, 73, 59, 52, 63, 69, 57, 67, 58, 63, 49, 59, 63, 46, 86, 66, 64, 58, 55, 70, 70, 69, 65, 72, 61, 65, 50, 66, 59, 101, 60, 52, 50, 60, 56, 43, 65, 52, 65, 62, 83, 56, 62, 56, 68, 74, 53, 69, 95, 73, 46, 57, 80, 75, 56, 57, 57, 58, 67, 69, 63, 50, 59, 52, 74, 99, 122, 63, 83, 70, 86, 60, 91, 53, 62, 64, 61, 65, 73, 54, 60, 63, 65, 71, 62, 62, 42, 66, 50, 83, 74, 71, 67, 57, 47, 79, 62, 56, 70, 61, 59, 64, 52, 71, 64, 73, 50, 73, 75, 53, 53, 52, 65, 73, 61, 60, 72, 50, 70, 63, 72, 54, 83, 55, 58, 49, 53, 58, 73, 56, 58, 62, 76, 66, 50, 75, 72, 95, 57, 75, 53, 61, 58, 58, 51, 78, 65, 65, 68, 61, 58, 68, 78, 72, 81, 78, 73, 58, 74, 63, 56, 73, 66, 71, 67, 78, 54, 90, 98, 48, 73, 85, 71, 65, 80, 64, 66, 54, 72, 68, 64, 65, 73, 78, 67, 69, 48, 58, 68, 89, 88, 62, 91, 58, 90, 59, 72, 72, 71, 51, 69, 86, 56, 77, 63, 77, 81, 54, 62, 58, 90, 72, 65, 61, 73, 63, 54, 77, 86, 76, 74, 80, 62, 51, 59, 65, 54, 75, 72, 68, 54, 59, 68, 84, 53, 62, 66, 70, 56, 66, 65, 56, 65, 72, 66, 88, 66, 80, 79, 70, 74, 72, 58, 58, 94, 40, 78, 64, 51, 68, 63, 61, 61, 53, 54, 66, 71, 53, 75, 94, 65, 67, 59, 86, 53, 64, 62, 62, 74, 51, 66, 77, 72, 58, 51, 76, 78, 66, 58, 68, 67, 66, 69, 61, 52, 65, 58, 69, 95, 79, 55, 102, 68, 73, 69, 48, 61, 63, 80, 79, 47, 85, 71, 82, 58, 53, 77, 62, 50, 54, 66, 86, 63, 59, 84, 59, 74, 72, 58, 67, 47, 69, 56, 58, 60, 70, 49, 73, 56, 88, 61, 83, 64, 62, 62, 60, 62, 61, 58, 67, 56, 85, 68, 57, 63, 80, 73, 123, 72, 60, 34, 67, 60, 66, 61, 60, 68, 82, 93, 79, 87, 71, 51, 57, 45, 74, 65, 55, 69, 98, 81, 70, 70, 61, 81, 54, 47, 57, 57, 64, 59, 55, 87, 52, 55, 114, 83, 61, 56, 62, 63, 56, 63, 68, 69, 67, 47, 81, 83, 70, 61, 55, 67, 74, 50, 74, 80, 76, 53, 51, 56, 78, 70, 85, 71, 115, 58, 63, 65, 56, 69, 93, 60, 63, 60, 78, 58, 79, 74, 81, 56, 78, 41, 57, 44, 51, 57, 58, 61, 51, 79, 88, 49, 84, 75, 67, 85, 63, 69, 55, 59, 63, 74, 59, 67, 52, 101, 59, 60, 76, 63, 64, 64, 72, 67, 75, 41, 60, 74, 64, 57, 59, 64, 67, 47, 78, 58, 66, 71, 100, 51, 41, 48, 61, 62, 55, 48, 60, 53, 68, 57, 90, 73, 87, 66, 78, 71, 96, 65, 66, 57, 67, 73, 46, 62, 75, 48, 62, 84, 68, 69, 47, 51, 74, 57, 46, 74, 67, 70, 66, 64, 81, 65, 68, 53, 76, 71, 61, 73, 61, 63, 62, 69, 82, 73, 72, 46, 57, 57, 67, 85, 63, 59, 61, 74, 51, 56, 57, 64, 52, 57, 57, 63, 72, 54, 86, 66, 83, 63, 74, 55, 92, 90, 58, 70, 69, 75, 75, 57, 58, 82, 66, 96, 87, 44, 60, 56, 56, 76, 77, 57, 53, 58, 84, 55, 41, 67, 103, 66, 54, 70, 52, 68, 53, 70, 63, 57, 67, 58, 49, 62, 75, 79, 124, 131, 66, 47, 64, 57, 61, 58, 48, 58, 92, 56, 114, 68, 41, 52, 56, 76, 42, 58, 54, 58, 57, 58, 77, 64, 52, 65, 66, 77, 64, 66, 59, 69, 61, 54, 67, 78, 96, 63, 60, 65, 75, 99, 67, 64, 97, 65, 60, 66, 89, 58, 60, 72, 83, 103, 58, 73, 44, 101, 82, 70, 70, 70, 58, 64, 69, 82, 65, 59, 63, 61, 58, 52, 63, 57, 57, 92, 77, 59, 67, 91, 58, 75, 63, 52, 75, 95, 99, 69, 58, 63, 83, 57, 83, 67, 56, 102, 53, 59, 102, 51, 89, 56, 65, 70, 75, 78, 73, 71, 69, 69, 82, 111, 56, 70, 77, 56, 78, 78, 60, 68, 49, 74, 71, 94, 62, 53, 69, 77, 85, 54, 77, 64, 72, 105, 54, 54, 63, 64, 56, 66, 67, 56, 54, 65, 59, 51, 69, 72, 50, 51, 52, 73, 42, 64, 63, 64, 78, 71, 61, 65, 54, 60, 67, 61, 43, 96, 55, 58, 70, 69, 79, 44, 69, 91, 61, 66, 66, 54, 58, 62, 50, 50, 60, 62, 73, 57, 77, 58, 60, 71, 85, 58, 78, 80, 58, 50, 79, 49, 45, 51, 33, 56, 100, 60, 67, 61, 74, 57, 58, 64, 57, 93, 78, 102, 72, 74, 59, 76, 64, 59, 44, 89, 59, 67, 63, 54, 47, 48, 80, 52, 65, 54, 72, 55, 85, 60, 56, 95, 69, 65, 83, 79, 56, 73, 93, 63, 55, 67, 55, 83, 71, 141, 66, 66, 69, 53, 65, 55, 53, 74, 55, 58, 52, 62, 56, 52, 70, 55, 66, 49, 62, 75, 72, 64, 61, 64, 45, 65, 52, 104, 59, 63, 67, 69, 50, 56, 44, 57, 88, 46, 83, 84, 73, 61, 86, 62, 59, 58, 52, 63, 67, 54, 71, 65, 59, 61, 62, 62, 53, 71, 58, 55, 49, 93, 64, 86, 62, 66, 66, 87, 82, 56, 65, 57, 60, 57, 62, 50, 82, 64, 55, 64, 64, 46, 60, 66, 56, 69, 64, 54, 62, 58, 61, 66, 55, 61, 78, 93, 82, 61, 74, 68, 59, 71, 55, 68, 69, 62, 102, 68, 60, 71, 68, 67, 66, 86, 62, 63, 56, 45, 43, 64, 77, 52, 62, 101, 62, 84, 60, 70, 61, 64, 59, 62, 68, 61, 57, 103, 76, 66, 66, 66, 63, 55, 54, 56, 64, 71, 59, 72, 67, 79, 51, 56, 55, 70, 79, 70, 55, 64, 60, 68, 78, 64, 48, 71, 64, 71, 53, 44, 63, 56, 48, 73, 75, 77, 45, 61, 72, 56, 59, 76, 61, 62, 58, 67, 88, 62, 51, 61, 63, 67, 54, 46, 59, 82, 60, 69, 90, 104, 51, 51, 70, 70, 59, 65, 55, 68, 67, 60, 74, 72, 66, 55, 66, 67, 53, 63, 42, 62, 69, 55, 93, 73, 58, 79, 70, 56, 48, 75, 61, 74, 54, 68, 59, 83, 65, 60, 51, 75, 63, 61, 66, 57, 62, 76, 88, 72, 63, 55, 60, 73, 86, 68, 84, 44, 51, 66, 59, 45, 73, 70, 66, 52, 57, 64, 58, 79, 72, 51, 61, 56, 81, 66, 82, 66, 53, 48, 66, 50, 53, 85, 59, 60, 57, 64, 60, 74, 60, 67, 54, 57, 71, 47, 59, 68, 51, 56, 63, 51, 73, 54, 72, 59, 69, 63, 52, 72, 46, 65, 56, 56, 68, 55, 35, 54, 63, 85, 65, 71, 50, 57, 79, 72, 54, 63, 69, 69, 63, 62, 61, 60, 56, 66, 59, 76, 78, 65, 55, 57, 64, 61, 79, 71, 68, 63, 64, 55, 72, 69, 64, 74, 59, 75, 62, 75, 71, 47, 65, 90, 59, 53, 54, 64, 61, 61, 65, 67, 67, 62, 52, 62, 64, 87, 62, 57, 57, 75, 70, 81, 111, 62, 66, 83, 59, 56, 66, 76, 63, 63, 64, 55, 62, 61, 114, 68, 64, 58, 70, 63, 89, 59, 58, 55, 71, 79, 62, 66, 60, 69, 53, 62, 65, 66, 42, 55, 63, 53, 104, 84, 63, 76, 65, 96, 44, 54, 50, 68, 61, 73, 87, 64, 60, 68, 79, 56, 56, 81, 60, 64, 77, 62, 82, 52, 61, 69, 61, 75, 85, 61, 60, 61, 64, 62, 49, 57, 88, 52, 75, 66, 62, 68, 44, 59, 44, 87, 98, 67, 64, 46, 80, 46, 53, 54, 54, 64, 105, 79, 61, 71, 78, 55, 61, 56, 61, 75, 62, 67, 75, 77, 67, 73, 51, 55, 76, 54, 52, 58, 60, 52, 55, 73, 75, 64, 84, 82, 60, 56, 62, 62, 63, 61, 66, 70, 69, 57, 82, 57, 66, 63, 56, 57, 65, 83, 106, 71, 57, 93, 54, 63, 64, 46, 63, 55, 46, 67, 63, 66, 60, 83, 65, 57, 68, 47, 70, 71, 78, 61, 69, 56, 84, 87, 64, 60, 65, 77, 51, 69, 60, 60, 77, 101, 70, 62, 68, 52, 60, 53, 107, 69, 63, 54, 66, 53, 65, 74, 60, 76, 68, 56, 83, 73, 80, 58, 110, 49, 67, 58, 70, 76, 82, 58, 69, 56, 54, 71, 65, 52, 47, 85, 67, 52, 55, 64, 59, 56, 55, 57, 63, 61, 68, 68, 56, 64, 51, 71, 61, 59, 60, 66, 72, 69, 54, 67, 53, 78, 69, 49, 76, 57, 56, 53, 65, 68, 55, 88, 54, 57, 75, 62, 76, 69, 67, 65, 81, 45, 64, 62, 75, 51, 91, 60, 125, 65, 67, 54, 65, 62, 59, 64, 65, 56, 54, 92, 70, 69, 61, 61, 59, 62, 63, 54, 43, 75, 54, 90, 70, 62, 58, 105, 56, 55, 64, 64, 141, 81, 84, 82, 70, 65, 80, 60, 119, 58, 38, 66, 68, 52, 57, 77, 67, 71, 100, 74, 108, 65, 57, 65, 62, 88, 89, 63, 74, 62, 76, 58, 50, 56, 82, 59, 71, 74, 72, 59, 79, 71, 70, 64, 64, 67, 61, 74, 66, 59, 79, 54, 56, 72, 60, 78, 54, 69, 97, 70, 73, 52, 58, 62, 113, 58, 50, 67, 53, 61, 54, 67, 41, 69, 60, 74, 58, 53, 79, 53, 63, 109, 77, 74, 49, 108, 98, 76, 115, 60, 64, 85, 96, 56, 37, 51, 66, 60, 49, 83, 101, 65, 89, 59, 57, 52, 61, 61, 73, 47, 77, 57, 81, 58, 47, 69, 62, 91, 65, 57, 67, 68, 69, 76, 75, 71, 55, 73, 59, 72, 55, 69, 73, 59, 98, 46, 56, 67, 73, 77, 55, 64, 59, 88, 82, 60, 49, 84, 66, 60, 67, 50, 60, 75, 69, 61, 58, 49, 75, 59, 75, 61, 68, 83, 74, 65, 50, 56, 67, 63, 56, 44, 48, 64, 47, 45, 95, 102, 91, 67, 95, 63, 65, 63, 50, 88, 64, 110, 84, 70, 84, 49, 63, 53, 54, 65, 48, 88, 62, 89, 85, 105, 63, 67, 60, 66, 56, 82, 59, 75, 58, 72, 87, 72, 81, 70, 93, 64, 58, 72, 89, 71, 64, 88, 61, 53, 71, 54, 70, 59, 56, 55, 66, 51, 53, 44, 64, 62, 81, 46, 51, 69, 72, 70, 65, 97, 61, 38, 62, 75, 59, 56, 48, 86, 66, 63, 58, 73, 86, 67, 55, 50, 68, 72, 55, 61, 77, 51, 82, 51, 60, 54, 66, 71, 77, 66, 51, 66, 61, 66, 59, 61, 60, 67, 71, 63, 64, 78, 49, 47, 80, 63, 48, 59, 48, 56, 92, 69, 75, 53, 73, 47, 57, 78, 58, 61, 64, 56, 75, 79, 103, 95, 62, 78, 50, 54, 49, 85, 63, 60, 66, 70, 75, 83, 62, 67, 50, 69, 70, 66, 90, 39, 52, 57, 60, 70, 61, 78, 62, 51, 69, 86, 77, 59, 48, 108, 73, 60, 53, 70, 66, 68, 58, 72, 60, 58, 66, 63, 68, 73, 54, 66, 71, 57, 60, 57, 86, 62, 66, 46, 80, 121, 69, 56, 76, 55, 50, 77, 103, 62, 52, 89, 82, 62, 70, 52, 75, 62, 63, 56, 59, 68, 68, 55, 67, 101, 69, 63, 54, 52, 62, 49, 76, 73, 50, 67, 65, 68, 81, 85, 80, 57, 51, 65, 67, 60, 52, 67, 75, 59, 53, 75, 61, 76, 62, 73, 54, 55, 60, 50, 48, 76, 77, 47, 60, 55, 77, 53, 64, 59, 59, 56, 40, 59, 62, 56, 70, 54, 48, 69, 82, 52, 56, 66, 45, 79, 64, 70, 50, 45, 58, 61, 40, 64, 64, 67, 65, 65, 37, 56, 55, 48, 70, 45, 68, 73, 65, 66, 43, 80, 71, 69, 77, 52, 49, 56, 54, 74, 88, 52, 50, 65, 78, 69, 59, 60, 57, 54, 54, 63, 57, 66, 64, 78, 65, 64, 56, 69, 69, 58, 56, 70, 54, 81, 63, 60, 97, 61, 61, 63, 75, 53, 72, 98, 91, 83, 79, 47, 60, 75, 67, 48, 61, 59, 52, 65, 56, 53, 77, 76, 53, 75, 94, 71, 56, 52, 62, 62, 53, 58, 81, 67, 78, 49, 71, 59, 52, 70, 52, 75, 74, 50, 70, 48, 50, 86, 72, 49, 68, 48, 58, 73, 63, 64, 60, 58, 63, 58, 84, 53, 51, 75, 64, 61, 53, 60, 47, 48, 56, 73, 54, 41, 60, 70, 65, 48, 70, 78, 50, 72, 85, 59, 51, 62, 51, 47, 50, 82, 52, 56, 57, 84, 64, 69, 51, 78, 41, 32, 72, 83, 61, 129, 69, 65, 56, 64, 56, 53, 59, 65, 61, 82, 79, 50, 68, 65, 64, 44, 59, 47, 75, 45, 47, 99, 66, 60, 62, 58, 91, 61, 57, 43, 102, 67, 55, 57, 70, 60, 61, 71, 71, 124, 64, 57, 56, 58, 148, 81, 50, 66, 85, 80, 70, 98, 71, 73, 72, 78, 62, 82, 54, 48, 62, 54, 86, 71, 72, 102, 59, 60, 58, 63, 63, 105, 54, 59, 79, 60, 61, 42, 54, 75, 71, 75, 66, 112, 72, 41, 75, 53, 63, 56, 50, 54, 50, 113, 79, 67, 47, 61, 51, 63, 70, 60, 58, 68, 60, 56, 101, 60, 67, 68, 63, 54, 70, 45, 62, 65, 53, 65, 46, 65, 61, 79, 64, 50, 73, 107, 63, 67, 72, 79, 60, 54, 61, 96, 59, 52, 63, 28, 63, 58, 46, 52, 51, 50, 69, 75, 87, 70, 55, 71, 48, 85, 53, 63, 65, 85, 73, 87, 50, 60, 56, 56, 74, 74, 58, 69, 66, 72, 51, 56, 94, 72, 53, 48, 73, 78, 62, 53, 41, 65, 79, 100, 63, 79, 60, 70, 80, 52, 73, 47, 73, 83, 71, 59, 47, 63, 57, 72, 60, 57, 64, 56, 63, 70, 79, 103, 91, 75, 64, 46, 64, 67, 75, 76, 52, 53, 65, 81, 81, 55, 59, 60, 60, 85, 45, 52, 58, 62, 87, 47, 66, 49, 62, 56, 87, 68, 58, 46, 69, 79, 76, 57, 64, 55, 58, 90, 53, 85, 74, 51, 60, 69, 61, 60, 62, 52, 79, 83, 54, 77, 68, 55, 78, 53, 73, 60, 52, 64, 56, 78, 78, 70, 92, 54, 72, 70, 82, 56, 78, 67, 48, 58, 50, 59, 71, 61, 85, 55, 55, 74, 77, 59, 43, 49, 68, 42, 77, 73, 73, 69, 82, 50, 77, 38, 63, 59, 68, 75, 60, 58, 71, 50, 82, 59, 64, 58, 49, 87, 69, 64, 53, 54, 54, 51, 60, 54, 61, 40, 127, 54, 73, 56, 78, 58, 63, 69, 52, 63, 61, 99, 75, 58, 75, 73, 46, 64, 75, 61, 56, 63, 54, 60, 54, 52, 72, 50, 65, 62, 63, 56, 55, 108, 38, 38, 49, 73, 98, 58, 53, 51, 65, 63, 82, 76, 62, 80, 37, 65, 57, 57, 71, 49, 55, 41, 57, 64, 77, 61, 67, 51, 42, 61, 117, 62, 68, 71, 61, 64, 69, 97, 74, 94, 55, 59, 63, 67, 56, 49, 59, 73, 59, 61, 101, 54, 67, 89, 61, 61, 52, 63, 74, 63, 54, 74, 66, 73, 51, 93, 72, 61, 63, 51, 66, 49, 83, 51, 55, 64, 55, 79, 60, 51, 80, 70, 47, 73, 65, 64, 56, 75, 62, 67, 49, 99, 62, 80, 75, 49, 61, 78, 69, 54, 47, 63, 74, 62, 88, 57, 64, 74, 69, 102, 71, 56, 113, 54, 59, 80, 65, 79, 79, 53, 73, 59, 81, 79, 67, 69, 69, 70, 100, 86, 68, 57, 57, 71, 64, 97, 70, 62, 67, 58, 58, 64, 97, 63, 60, 67, 75, 62, 66, 43, 54, 63, 88, 58, 57, 81, 60, 62, 59, 74, 81, 63, 56, 43, 68, 80, 54, 74, 53, 58, 41, 50, 82, 45, 66, 70, 71, 64, 61, 72, 67, 65, 90, 64, 69, 75, 65, 86, 53, 69, 53, 94, 59, 63, 65, 78, 63, 63, 60, 67, 69, 78, 52, 65, 60, 60, 82, 55, 60, 66, 73, 81, 58, 69, 54, 60, 72, 68, 66, 95, 75, 79, 56, 45, 68, 62, 52, 63, 75, 79, 49, 63, 59, 56, 76, 67, 92, 92, 42, 62, 71, 65, 58, 63, 73, 74, 81, 65, 54, 70, 60, 74, 69, 65, 53, 69, 74, 71, 68, 55, 68, 55, 73, 128, 64, 55, 103, 55, 72, 72, 59, 51, 61, 58, 62, 50, 57, 56, 67, 109, 66, 64, 50, 47, 53, 62, 53, 67, 51, 58, 59, 64, 84, 45, 95, 74, 56, 51, 57, 68, 73, 132, 62, 72, 58, 58, 54, 49, 76, 66, 74, 58, 50, 58, 91, 63, 58, 76, 66, 66, 80, 59, 98, 51, 57, 60, 83, 51, 63, 55, 52, 77, 110, 57, 70, 47, 73, 69, 71, 50, 83, 65, 58, 132, 63, 64, 50, 68, 76, 66, 87, 66, 69, 58, 63, 54, 55, 71, 65, 51, 76, 70, 64, 60, 52, 51, 59, 65, 65, 106, 64, 68, 44, 57, 64, 53, 60, 70, 65, 55, 63, 66, 76, 86, 66, 52, 68, 69, 54, 63, 54, 74, 74, 64, 66, 52, 45, 75, 72, 79, 53, 57, 75, 52, 70, 86, 55, 90, 70, 66, 91, 64, 59, 50, 68, 63, 59, 61, 59, 66, 61, 59, 60, 80, 59, 64, 68, 56, 68, 66, 51, 69, 59, 57, 64, 49, 59, 108, 64, 90, 57, 58, 50, 60, 56, 66, 55, 58, 88, 67, 60, 65, 71, 66, 57, 113, 67, 94, 84, 62, 42, 61, 63, 55, 61, 82, 77, 70, 56, 73, 55, 67, 61, 61, 44, 93, 55, 59, 65, 45, 73, 71, 54, 46, 64, 69, 52, 76, 74, 70, 52, 65, 60, 67, 74, 102, 87, 94, 49, 68, 56, 52, 56, 67, 58, 79, 59, 51, 54, 59, 67, 72, 57, 56, 66, 63, 52, 62, 68, 64, 55, 55, 72, 58, 60, 52, 66, 84, 80, 59, 69, 63, 46, 60, 72, 57, 53, 70, 61, 55, 58, 63, 73, 51, 65, 75, 66, 57, 35, 64, 62, 70, 67, 76, 71, 64, 56, 59, 44, 75, 55, 82, 57, 51, 64, 79, 49, 54, 100, 62, 70, 55, 64, 61, 62, 62, 73, 67, 62, 56, 66, 63, 59, 51, 61, 32, 67, 67, 71, 69, 67, 81, 77, 67, 67, 94, 48, 63, 53, 56, 80, 51, 68, 56, 45, 50, 67, 53, 75, 64, 74, 35, 56, 56, 55, 61, 110, 71, 62, 59, 54, 68, 49, 57, 66, 46, 79, 53, 52, 67, 47, 69, 69, 75, 61, 58, 71, 108, 70, 60, 74, 53, 55, 53, 48, 78, 48, 58, 59, 69, 70, 87, 58, 49, 55, 67, 57, 104, 74, 83, 57, 99, 53, 54, 55, 42, 63, 46, 51, 80, 63, 86, 106, 42, 50, 47, 58, 61, 52, 64, 68, 76, 68, 64, 74, 49, 63, 73, 68, 61, 48, 86, 101, 74, 75, 62, 64, 58, 74, 87, 61, 100, 78, 54, 86, 70, 106, 74, 69, 76, 73, 59, 69, 58, 73, 63, 83, 76, 77, 81, 49, 84, 66, 53, 60, 63, 72, 55, 67, 59, 56, 62, 69, 77, 57, 64, 63, 70, 61, 51, 60, 61, 52, 58, 50, 60, 48, 52, 84, 53, 54, 61, 100, 92, 51, 68, 74, 74, 68, 62, 60, 54, 42, 62, 64, 56, 74, 69, 54, 55, 66, 64, 60, 63, 61, 44, 67, 65, 114, 82, 62, 56, 76, 95, 65, 75, 72, 96, 65, 71, 47, 68, 46, 66, 46, 57, 60, 49, 61, 65, 70, 54, 61, 62, 71, 60, 62, 98, 79, 66, 64, 52, 68, 52, 59, 111, 55, 64, 89, 62, 50, 68, 64, 41, 91, 53, 75, 75, 72, 78, 65, 63, 64, 80, 46, 52, 69, 76, 105, 67, 52, 65, 60, 42, 59, 54, 65, 55, 58, 73, 60, 59, 45, 80, 69, 50, 110, 83, 59, 112, 62, 63, 61, 61, 55, 52, 62, 66, 69, 78, 68, 58, 51, 71, 52, 137, 58, 78, 80, 62, 65, 55, 47, 57, 57, 53, 67, 73, 77, 55, 58, 81, 93, 81, 81, 59, 54, 68, 55, 79, 57, 59, 75, 48, 67, 69, 61, 92, 74, 56, 61, 63, 64, 77, 70, 73, 63, 52, 54, 56, 58, 61, 52, 75, 129, 72, 51, 70, 68, 60, 64, 50, 44, 53, 60, 71, 61, 72, 43, 56, 73, 66, 61, 76, 72, 66, 67, 64, 85, 61, 67, 86, 88, 63, 73, 68, 113, 46, 101, 79, 66, 79, 57, 56, 47, 45, 61, 65, 56, 78, 56, 58, 57, 78, 56, 70, 66, 62, 80, 88, 62, 118, 52, 61, 75, 53, 60, 54, 62, 67, 69, 47, 81, 67, 60, 53, 41, 58, 73, 82, 94, 76, 66, 61, 61, 89, 58, 52, 52, 58, 69, 62, 91, 81, 63, 54, 55, 51, 53, 72, 61, 53, 50, 79, 53, 45, 61, 80, 84, 58, 58, 53, 69, 48, 45, 55, 92, 67, 70, 45, 75, 122, 79, 71, 59, 74, 63, 52, 59, 57, 73, 55, 46, 85, 72, 81, 80, 64, 76, 109, 82, 76, 60, 80, 69, 49, 57, 75, 66, 48, 58, 71, 64, 72, 59, 54, 50, 59, 59, 66, 60, 64, 63, 51, 62, 82, 61, 61, 67, 83, 56, 46, 66, 43, 50, 58, 60, 84, 91, 61, 52, 62, 86, 67, 85, 58, 63, 58, 48, 48, 78, 69, 52, 63, 57, 64, 66, 83, 54, 72, 81, 96, 62, 94, 66, 71, 69, 63, 60, 54, 60, 61, 52, 79, 68, 48, 54, 61, 61, 55, 54, 101, 59, 64, 76, 62, 74, 47, 63, 64, 69, 60, 64, 51, 64, 50, 52, 66, 57, 56, 72, 51, 59, 62, 52, 59, 112, 70, 59, 63, 92, 66, 65, 63, 52, 50, 78, 74, 82, 62, 84, 86, 73, 70, 78, 71, 81, 68, 57, 87, 63, 67, 56, 98, 77, 69, 55, 61, 89, 83, 63, 60, 58, 70, 61, 59, 56, 69, 84, 58, 67, 128, 66, 59, 55, 56, 59, 63, 55, 63, 99, 53, 68, 74, 69, 67, 55, 69, 56, 35, 63, 70, 41, 74, 50, 83, 66, 67, 83, 42, 80, 86, 49, 60, 55, 76, 69, 54, 63, 60, 70, 64, 50, 66, 54, 65, 65, 58, 76, 88, 66, 72, 64, 69, 113, 72, 64, 57, 78, 56, 60, 52, 101, 53, 73, 67, 68, 81, 86, 67, 72, 68, 64, 65, 82, 78, 62, 77, 84, 60, 63, 65, 81, 60, 59, 55, 76, 83, 45, 55, 72, 83, 78, 67, 69, 70, 66, 56, 58, 75, 71, 71, 67, 54, 47, 102, 60, 62, 58, 73, 46, 68, 53, 57, 55, 82, 68, 68, 57, 55, 60, 58, 75, 94, 58, 54, 59, 58, 49, 60, 60, 116, 61, 101, 71, 60, 42, 55, 65, 66, 84, 97, 60, 90, 54, 57, 58, 69, 60, 53, 72, 62, 54, 66, 50, 49, 49, 79, 53, 55, 47, 59, 67, 77, 67, 60, 67, 65, 63, 54, 67, 80, 52, 70, 57, 81, 88, 53, 52, 57, 68, 104, 63, 80, 87, 56, 58, 48, 55, 58, 64, 57, 51, 63, 75, 62, 43, 68, 78, 66, 64, 60, 51, 58, 50, 59, 63, 56, 65, 45, 96, 73, 56, 110, 58, 52, 63, 61, 56, 92, 74, 69, 65, 65, 80, 82, 49, 69, 53, 58, 49, 54, 55, 82, 62, 67, 72, 81, 62, 62, 61, 57, 72, 51, 58, 77, 86, 76, 47, 52, 56, 135, 63, 66, 69, 52, 61, 46, 69, 71, 62, 72, 60, 67, 71, 74, 62, 70, 64, 70, 55, 74, 71, 55, 50, 70, 98, 86, 54, 109, 46, 74, 62, 64, 54, 57, 61, 64, 66, 65, 48, 59, 70, 58, 57, 55, 50, 39, 69, 81, 62, 66, 39, 72, 65, 72, 54, 51, 91, 92, 89, 88, 61, 84, 64, 59, 75, 70, 69, 62, 66, 71, 38, 50, 50, 56, 67, 58, 83, 68, 75, 59, 65, 77, 67, 61, 63, 59, 59, 74, 55, 57, 67, 99, 71, 74, 64, 58, 111, 61, 51, 58, 47, 58, 71, 73, 80, 68, 58, 46, 59, 85, 84, 82, 60, 68, 58, 61, 68, 63, 54, 69, 66, 53, 59, 66, 75, 66, 47, 69, 56, 59, 92, 54, 84, 60, 79, 68, 80, 73, 67, 57, 59, 61, 61, 53, 56, 70, 68, 82, 58, 80, 58, 71, 57, 52, 63, 55, 67, 103, 63, 49, 93, 61, 70, 51, 77, 75, 66, 85, 64, 61, 82, 63, 62, 54, 68, 44, 66, 57, 66, 55, 89, 58, 45, 55, 93, 54, 69, 57, 53, 60, 64, 60, 57, 51, 70, 62, 61, 77, 49, 54, 62, 94, 41, 47, 64, 55, 58, 67, 86, 84, 86, 66, 62, 92, 71, 56, 72, 64, 47, 59, 67, 70, 58, 64, 54, 69, 78, 64, 65, 50, 63, 56, 50, 64, 65, 70, 51, 50, 99, 54, 52, 81, 52, 52, 68, 58, 56, 49, 67, 54, 69, 59, 71, 76, 65, 62, 70, 56, 58, 70, 54, 57, 70, 90, 65, 60, 68, 89, 97, 67, 86, 67, 59, 76, 61, 55, 58, 55, 53, 66, 90, 57, 77, 68, 82, 56, 58, 68, 67, 77, 67, 50, 59, 62, 54, 80, 81, 57, 66, 73, 69, 51, 58, 50, 52, 60, 59, 68, 57, 69, 63, 59, 67, 43, 98, 89, 59, 68, 78, 49, 63, 52, 63, 59, 48, 75, 66, 58, 71, 71, 92, 53, 97, 68, 67, 58, 53, 67, 56, 61, 115, 75, 58, 63, 52, 95, 52, 50, 63, 95, 97, 64, 65, 61, 62, 70, 53, 106, 66, 56, 79, 65, 58, 47, 73, 54, 57, 46, 59, 67, 70, 57, 60, 69, 69, 76, 68, 83, 70, 41, 64, 83, 59, 64, 60, 62, 61, 41, 55, 76, 64, 66, 82, 71, 51, 59, 33, 58, 75, 45, 83, 52, 61, 59, 46, 76, 53, 62, 43, 53, 51, 51, 73, 45, 109, 48, 79, 75, 77, 60, 64, 87, 53, 69, 60, 52, 65, 65, 76, 66, 63, 68, 64, 49, 61, 70, 52, 82, 63, 69, 82, 84, 60, 48, 59, 50, 66, 94, 52, 69, 48, 58, 60, 90, 63, 61, 65, 50, 70, 67, 60, 56, 70, 45, 53, 79, 66, 68, 64, 66, 69, 74, 71, 95, 61, 61, 52, 63, 44, 54, 67, 79, 50, 65, 75, 43, 63, 64, 78, 58, 70, 65, 68, 82, 89, 58, 53, 64, 67, 46, 58, 60, 62, 61, 55, 68, 53, 80, 63, 57, 67, 66, 66, 59, 59, 63, 45, 68, 113, 36, 87, 59, 52, 43, 72, 66, 67, 70, 53, 57, 53, 67, 78, 54, 79, 106, 54, 75, 76, 76, 61, 50, 69, 91, 63, 56, 64, 51, 70, 71, 57, 80, 51, 79, 43, 72, 72, 60, 43, 98, 63, 54, 91, 71, 61, 43, 74, 48, 65, 72, 52, 54, 57, 57, 93, 65, 74, 73, 67, 74, 60, 61, 49, 56, 43, 95, 43, 66, 71, 67, 52, 54, 57, 61, 68, 64, 82, 96, 60, 74, 69, 61, 58, 124, 68, 58, 60, 72, 61, 56, 67, 67, 55, 90, 57, 51, 53, 58, 87, 60, 63, 68, 66, 66, 70, 62, 59, 65, 66, 59, 52, 58, 42, 57, 51, 64, 78, 52, 74, 64, 53, 69, 59, 72, 50, 66, 66, 59, 61, 58, 75, 69, 51, 79, 79, 64, 58, 52, 48, 57, 98, 61, 63, 52, 44, 76, 55, 53, 57, 61, 71, 65, 62, 58, 63, 59, 58, 87, 58, 59, 84, 63, 57, 101, 60, 54, 54, 84, 69, 66, 60, 73, 54, 67, 83, 74, 59, 83, 61, 54, 71, 77, 71, 118, 52, 64, 57, 68, 81, 60, 53, 60, 80, 51, 73, 58, 72, 62, 63, 67, 59, 50, 66, 68, 48, 58, 71, 50, 89, 70, 57, 76, 56, 67, 68, 62, 71, 49, 58, 61, 64, 82, 50, 53, 57, 62, 74, 39, 58, 85, 57, 52, 63, 57, 64, 90, 81, 51, 64, 67, 64, 71, 62, 62, 89, 68, 70, 65, 71, 57, 64, 51, 53, 147, 60, 60, 53, 80, 59, 54, 67, 91, 97, 61, 87, 61, 57, 72, 60, 85, 62, 59, 61, 65, 64, 87, 80, 67, 56, 71, 72, 68, 54, 61, 42, 56, 102, 55, 67, 65, 77, 69, 58, 83, 80, 59, 48, 72, 56, 67, 79, 104, 67, 85, 57, 65, 102, 80, 73, 61, 85, 58, 57, 64, 40, 54, 69, 70, 67, 74, 96, 61, 74, 58, 67, 62, 45, 67, 62, 55, 69, 50, 61, 65, 68, 67, 78, 71, 75, 60, 56, 40, 52, 67, 64, 117, 86, 57, 64, 73, 51, 48, 71, 61, 62, 66, 77, 75, 94, 51, 52, 45, 45, 67, 59, 64, 39, 70, 87, 43, 73, 60, 75, 66, 52, 61, 56, 66, 72, 50, 64, 50, 48, 133, 64, 54, 73, 56, 61, 47, 69, 59, 59, 67, 65, 81, 66, 88, 82, 61, 72, 74, 66, 68, 62, 70, 71, 60, 43, 96, 41, 51, 83, 54, 59, 64, 57, 51, 68, 64, 68, 52, 62, 84, 59, 68, 71, 62, 49, 49, 95, 59, 55, 104, 64, 52, 66, 60, 69, 66, 58, 54, 64, 56, 59, 71, 69, 79, 80, 62, 46, 65, 62, 62, 56, 64, 66, 61, 60, 61, 68, 55, 84, 40, 56, 51, 62, 102, 65, 62, 58, 87, 56, 38, 62, 60, 70, 67, 60, 80, 72, 72, 94, 77, 63, 79, 55, 72, 54, 62, 52, 78, 72, 56, 51, 69, 57, 84, 72, 68, 66, 54, 80, 115, 43, 55, 72, 62, 54, 56, 52, 73, 74, 71, 68, 49, 70, 57, 50, 72, 64, 95, 64, 55, 62, 47, 77, 70, 81, 78, 57, 122, 71, 48, 54, 52, 61, 78, 65, 61, 48, 72, 72, 53, 65, 65, 50, 60, 63, 58, 77, 90, 82, 61, 99, 61, 72, 61, 46, 77, 70, 92, 70, 73, 59, 88, 75, 52, 50, 57, 64, 68, 66, 47, 63, 56, 53, 63, 53, 61, 80, 68, 75, 66, 61, 80, 62, 50, 54, 52, 86, 56, 59, 65, 75, 81, 67, 58, 54, 55, 57, 47, 53, 52, 66, 63, 61, 39, 74, 62, 68, 71, 42, 90, 57, 68, 58, 58, 66, 68, 51, 48, 81, 68, 47, 59, 65, 78, 73, 54, 75, 73, 59, 46, 64, 60, 72, 62, 59, 49, 89, 64, 61, 71, 81, 58, 83, 69, 57, 70, 63, 71, 52, 85, 54, 59, 64, 55, 80, 59, 58, 75, 50, 50, 52, 66, 58, 59, 67, 82, 82, 54, 66, 60, 77, 60, 63, 58, 53, 79, 52, 71, 87, 73, 50, 78, 68, 70, 44, 64, 64, 52, 68, 60, 80, 88, 81, 58, 74, 90, 59, 54, 53, 83, 46, 57, 64, 61, 79, 66, 54, 58, 71, 59, 75, 55, 64, 78, 56, 54, 64, 76, 49, 77, 65, 59, 58, 65, 59, 54, 60, 52, 63, 83, 70, 90, 69, 56, 72, 57, 81, 68, 59, 42, 53, 67, 59, 55, 60, 71, 60, 59, 75, 68, 70, 47, 60, 88, 57, 58, 88, 51, 61, 92, 68, 70, 65, 94, 66, 65, 73, 64, 106, 51, 63, 69, 69, 63, 58, 55, 64, 57, 68, 68, 64, 67, 80, 48, 64, 64, 74, 60, 62, 79, 62, 48, 53, 74, 60, 67, 61, 57, 87, 49, 83, 64, 84, 67, 42, 50, 47, 46, 58, 72, 69, 54, 68, 61, 48, 77, 46, 84, 72, 60, 63, 68, 71, 56, 41, 63, 44, 64, 73, 69, 95, 56, 63, 80, 81, 65, 70, 60, 72, 57, 137, 80, 79, 63, 53, 66, 71, 61, 52, 117, 76, 61, 78, 82, 67, 62, 44, 86, 64, 61, 53, 61, 90, 59, 50, 72, 69, 54, 64, 66, 69, 61, 65, 64, 47, 58, 65, 50, 65, 39, 86, 76, 77, 66, 60, 53, 85, 61, 81, 63, 48, 59, 68, 58, 68, 58, 43, 71, 57, 60, 95, 62, 56, 70, 65, 60, 52, 63, 61, 49, 43, 63, 57, 50, 104, 58, 76, 60, 89, 63, 59, 84, 62, 69, 50, 71, 60, 78, 61, 56, 61, 93, 59, 54, 44, 53, 76, 104, 61, 57, 60, 82, 58, 72, 54, 44, 60, 68, 52, 67, 61, 76, 53, 119, 77, 49, 77, 63, 74, 83, 74, 57, 75, 101, 63, 54, 62, 53, 71, 91, 73, 59, 80, 79, 63, 75, 64, 57, 72, 49, 73, 75, 60, 46, 74, 48, 88, 82, 44, 66, 62, 73, 62, 50, 111, 60, 73, 76, 55, 56, 73, 52, 57, 58, 73, 83, 78, 67, 78, 74, 60, 67, 55, 96, 83, 60, 58, 86, 97, 60, 77, 56, 69, 89, 57, 56, 63, 79, 65, 71, 92, 63, 85, 70, 52, 103, 70, 51, 78, 53, 73, 63, 50, 75, 79, 72, 68, 69, 69, 64, 52, 72, 77, 77, 58, 72, 44, 62, 88, 96, 67, 76, 83, 90, 24, 66, 59, 61, 53, 71, 62, 64, 61, 47, 72, 72, 64, 60, 60, 79, 61, 70, 47, 59, 61, 87, 64, 54, 59, 72, 70, 59, 63, 62, 63, 75, 62, 89, 82, 52, 90, 65, 55, 104, 81, 55, 59, 88, 61, 62, 72, 65, 65, 57, 60, 82, 52, 46, 55, 46, 55, 73, 50, 59, 99, 70, 71, 57, 89, 57, 77, 68, 63, 59, 86, 65, 59, 58, 73, 80, 74, 68, 76, 89, 52, 52, 64, 57, 65, 55, 79, 57, 70, 52, 58, 75, 47, 68, 52, 78, 102, 59, 75, 62, 29, 58, 67, 70, 65, 51, 79, 55, 65, 57, 65, 73, 67, 69, 65, 60, 69, 55, 82, 51, 72, 79, 80, 97, 55, 97, 67, 56, 61, 52, 61, 71, 60, 68, 58, 65, 52, 59, 65, 87, 63, 60, 41, 62, 53, 61, 61, 47, 73, 68, 54, 49, 39, 71, 83, 55, 77, 54, 51, 56, 55, 73, 59, 56, 108, 50, 50, 68, 62, 64, 69, 86, 69, 56, 57, 73, 86, 56, 55, 70, 72, 69, 83, 74, 72, 72, 49, 77, 66, 60, 53, 93, 72, 50, 77, 76, 52, 72, 54, 66, 54, 62, 47, 60, 71, 58, 51, 77, 48, 110, 54, 68, 61, 70, 63, 78, 62, 81, 60, 52, 72, 69, 72, 51, 49, 68, 59, 48, 63, 42, 48, 107, 69, 75, 59, 68, 72, 65, 69, 89, 57, 57, 110, 64, 64, 67, 69, 59, 50, 88, 62, 49, 62, 68, 71, 64, 50, 65, 62, 61, 73, 58, 108, 66, 59, 62, 100, 48, 90, 48, 88, 69, 63, 62, 74, 68, 79, 69, 82, 52, 63, 59, 70, 64, 56, 77, 81, 63, 65, 54, 80, 83, 84, 68, 57, 57, 39, 85, 72, 63, 45, 50, 62, 70, 57, 80, 55, 100, 46, 52, 54, 58, 49, 72, 106, 56, 89, 56, 73, 73, 79, 57, 51, 68, 64, 61, 60, 66, 67, 52, 92, 44, 72, 52, 39, 57, 52, 67, 73, 124, 57, 88, 63, 65, 58, 77, 75, 67, 74, 85, 62, 51, 51, 71, 141, 73, 64, 57, 53, 71, 79, 45, 64, 86, 73, 60, 54, 68, 54, 64, 74, 75, 56, 61, 63, 65, 45, 58, 71, 70, 47, 70, 65, 53, 65, 50, 72, 64, 67, 64, 67, 75, 78, 50, 73, 56, 57, 72, 72, 52, 58, 64, 55, 95, 64, 60, 55, 71, 69, 52, 56, 68, 64, 74, 55, 58, 52, 52, 77, 72, 69, 75, 58, 71, 59, 49, 58, 62, 48, 75, 59, 52, 80, 79, 44, 80, 76, 66, 71, 65, 69, 72, 53, 73, 50, 67, 55, 56, 53, 65, 64, 66, 59, 92, 89, 63, 55, 72, 71, 130, 60, 42, 78, 57, 57, 62, 75, 60, 99, 71, 69, 62, 68, 66, 62, 64, 53, 95, 59, 53, 56, 49, 55, 69, 90, 74, 48, 137, 68, 61, 59, 77, 46, 73, 74, 51, 47, 63, 67, 59, 59, 42, 36, 71, 62, 74, 93, 109, 109, 48, 70, 60, 71, 65, 63, 59, 48, 100, 54, 33, 59, 103, 46, 52, 52, 62, 45, 62, 62, 74, 59, 68, 65, 44, 33, 52, 72, 54, 70, 45, 53, 80, 71, 59, 82, 75, 76, 69, 71, 95, 67, 67, 56, 68, 78, 70, 82, 74, 73, 65, 71, 78, 66, 77, 64, 80, 59, 72, 61, 93, 60, 52, 56, 64, 69, 61, 58, 64, 81, 90, 60, 67, 56, 65, 80, 80, 59, 90, 63, 60, 61, 74, 83, 45, 57, 52, 85, 64, 55, 60, 66, 67, 60, 72, 55, 80, 53, 76, 90, 63, 88, 49, 70, 69, 67, 48, 64, 93, 58, 63, 83, 60, 49, 79, 63, 57, 77, 94, 62, 71, 65, 77, 67, 55, 58, 76, 59, 54, 79, 72, 68, 67, 71, 49, 112, 52, 61, 62, 58, 52, 83, 49, 54, 54, 62, 82, 72, 66, 59, 101, 55, 85, 64, 69, 69, 76, 67, 51, 49, 62, 53, 78, 61, 75, 90, 55, 67, 94, 82, 90, 62, 67, 57, 75, 43, 60, 59, 71, 57, 45, 76, 82, 64, 45, 48, 60, 91, 55, 72, 83, 108, 82, 73, 76, 48, 75, 59, 49, 71, 56, 63, 57, 50, 70, 108, 70, 89, 59, 50, 66, 62, 58, 46, 110, 48, 65, 64, 60, 122, 51, 75, 62, 48, 76, 69, 47, 96, 52, 57, 75, 63, 49, 78, 55, 62, 59, 42, 63, 71, 65, 64, 46, 47, 66, 56, 98, 47, 78, 60, 43, 44, 57, 71, 63, 55, 76, 73, 60, 66, 56, 79, 46, 70, 53, 76, 74, 55, 47, 87, 69, 60, 63, 47, 63, 89, 60, 53, 78, 80, 49, 73, 65, 100, 70, 60, 52, 50, 65, 50, 56, 69, 71, 62, 79, 65, 60, 60, 64, 44, 96, 64, 55, 50, 58, 43, 59, 82, 67, 74, 52, 79, 65, 80, 52, 65, 65, 72, 63, 51, 61, 69, 66, 41, 73, 60, 61, 59, 68, 59, 55, 69, 58, 59, 81, 65, 63, 59, 58, 75, 77, 77, 72, 69, 64, 52, 61, 79, 52, 41, 75, 75, 66, 52, 46, 88, 97, 62, 65, 68, 54, 86, 44, 58, 63, 73, 75, 62, 61, 54, 64, 50, 76, 49, 61, 58, 54, 66, 49, 68, 61, 65, 55, 49, 33, 58, 81, 51, 111, 42, 60, 72, 92, 51, 65, 45, 58, 54, 70, 52, 80, 58, 45, 75, 71, 73, 47, 44, 50, 80, 79, 82, 90, 70, 107, 70, 78, 61, 72, 59, 69, 76, 67, 54, 64, 51, 59, 75, 64, 62, 53, 63, 56, 45, 64, 62, 48, 83, 60, 68, 63, 77, 63, 94, 64, 129, 51, 78, 74, 61, 84, 71, 54, 56, 56, 68, 53, 52, 90, 74, 57, 70, 46, 77, 58, 100, 62, 62, 74, 66, 41, 69, 65, 51, 58, 80, 46, 57, 64, 51, 57, 66, 67, 35, 59, 71, 88, 53, 83, 56, 65, 49, 88, 62, 90, 69, 62, 42, 46, 65, 57, 64, 57, 85, 65, 103, 47, 71, 50, 63, 99, 71, 71, 73, 58, 58, 70, 46, 57, 68, 60, 70, 65, 67, 55, 66, 60, 65, 59, 48, 74, 50, 66, 126, 51, 72, 99, 46, 57, 73, 68, 73, 78, 60, 62, 72, 73, 53, 55, 58, 64, 38, 74, 88, 112, 62, 50, 56, 66, 65, 66, 61, 78, 61, 72, 56, 60, 58, 96, 91, 93, 76, 67, 70, 77, 72, 63, 64, 62, 61, 66, 74, 63, 63, 51, 80, 78, 56, 64, 56, 71, 59, 70, 51, 49, 69, 75, 47, 59, 51, 74, 67, 74, 56, 48, 86, 57, 60, 60, 85, 59, 43, 73, 62, 58, 59, 41, 86, 53, 67, 59, 87, 64, 69, 53, 69, 46, 45, 53, 65, 86, 90, 51, 66, 70, 65, 36, 58, 74, 66, 57, 59, 83, 57, 75, 60, 65, 44, 91, 73, 51, 46, 68, 79, 73, 61, 66, 55, 64, 74, 67, 69, 59, 61, 43, 56, 85, 67, 54, 60, 58, 68, 75, 53, 85, 81, 47, 58, 58, 52, 59, 75, 51, 82, 66, 52, 55, 61, 74, 63, 67, 69, 67, 65, 84, 42, 72, 64, 56, 56, 78, 53, 57, 75, 58, 47, 99, 74, 62, 78, 59, 47, 69, 58, 58, 66, 67, 75, 62, 66, 51, 61, 79, 63, 102, 51, 58, 61, 56, 57, 50, 70, 91, 87, 35, 61, 79, 64, 54, 82, 64, 64, 56, 65, 69, 63, 94, 62, 60, 60, 44, 78, 88, 63, 82, 54, 36, 51, 67, 78, 65, 122, 83, 58, 36, 67, 55, 54, 88, 59, 64, 56, 65, 74, 70, 52, 50, 87, 57, 70, 84, 82, 93, 75, 72, 64, 54, 60, 62, 57, 58, 72, 58, 66, 52, 59, 89, 55, 67, 51, 70, 91, 58, 77, 56, 74, 70, 71, 83, 57, 63, 60, 81, 58, 58, 51, 52, 76, 72, 61, 58, 66, 67, 59, 97, 51, 47, 80, 48, 102, 72, 78, 74, 96, 69, 63, 67, 68, 90, 60, 56, 58, 68, 68, 84, 55, 49, 78, 51, 48, 90, 69, 71, 68, 117, 51, 64, 70, 86, 63, 84, 59, 55, 49, 73, 52, 66, 76, 78, 86, 56, 75, 79, 66, 69, 58, 49, 73, 85, 58, 55, 55, 47, 106, 58, 63, 61, 59, 72, 62, 52, 44, 65, 57, 72, 58, 63, 68, 92, 54, 51, 51, 57, 71, 94, 68, 78, 65, 60, 62, 57, 51, 47, 58, 52, 47, 61, 75, 62, 76, 57, 63, 66, 65, 55, 57, 71, 47, 56, 50, 57, 55, 70, 50, 48, 64, 64, 71, 80, 54, 82, 65, 48, 73, 45, 50, 79, 66, 72, 57, 63, 60, 62, 88, 60, 55, 39, 68, 67, 63, 61, 61, 57, 69, 73, 68, 76, 57, 66, 51, 74, 56, 69, 54, 142, 94, 57, 56, 80, 74, 59, 69, 92, 62, 69, 71, 78, 72, 41, 67, 61, 55, 86, 50, 82, 84, 51, 76, 55, 55, 56, 49, 111, 69, 95, 62, 97, 84, 52, 55, 67, 56, 87, 62, 59, 59, 55, 50, 60, 60, 70, 80, 81, 105, 72, 95, 56, 54, 59, 62, 53, 62, 90, 76, 78, 65, 114, 58, 39, 62, 69, 64, 62, 65, 58, 60, 70, 48, 65, 58, 52, 73, 63, 63, 64, 58, 58, 47, 55, 65, 69, 67, 36, 64, 97, 88, 82, 36, 78, 60, 75, 46, 92, 49, 51, 54, 63, 53, 79, 66, 77, 69, 69, 79, 58, 111, 41, 69, 75, 73, 62, 70, 54, 66, 54, 60, 65, 64, 57, 81, 38, 81, 119, 63, 60, 57, 58, 75, 52, 57, 70, 77, 71, 50, 58, 62, 71, 58, 62, 68, 60, 68, 73, 59, 68, 88, 50, 55, 58, 65, 67, 51, 100, 60, 80, 66, 64, 58, 89, 55, 80, 117, 42, 58, 80, 80, 53, 66, 44, 67, 66, 83, 51, 83, 56, 92, 79, 59, 65, 48, 68, 60, 73, 62, 45, 63, 60, 65, 66, 76, 88, 51, 65, 65, 93, 57, 74, 92, 64, 58, 67, 58, 68, 66, 64, 88, 67, 64, 74, 61, 49, 63, 95, 74, 57, 58, 75, 70, 83, 74, 65, 62, 56, 61, 62, 58, 99, 47, 66, 53, 75, 83, 59, 68, 82, 80, 80, 65, 47, 62, 59, 77, 67, 51, 62, 73, 63, 85, 52, 67, 49, 87, 54, 47, 70, 68, 66, 72, 97, 55, 45, 59, 73, 126, 76, 90, 63, 66, 51, 79, 54, 71, 68, 55, 78, 61, 62, 68, 71, 62, 66, 57, 53, 80, 51, 55, 57, 50, 52, 67, 91, 48, 77, 67, 56, 53, 66, 81, 53, 50, 59, 54, 65, 49, 53, 91, 57, 80, 51, 73, 40, 63, 65, 59, 69, 57, 51, 53, 63, 56, 65, 68, 68, 92, 72, 76, 78, 56, 62, 51, 73, 53, 61, 62, 61, 82, 69, 60, 68, 50, 73, 56, 58, 70, 94, 62, 68, 52, 53, 58, 74, 50, 43, 62, 46, 70, 67, 72, 60, 65, 63, 67, 56, 51, 72, 79, 66, 64, 66, 56, 68, 48, 59, 71, 60, 103, 68, 74, 53, 68, 45, 72, 63, 79, 88, 65, 66, 78, 61, 74, 71, 69, 58, 78, 66, 81, 70, 47, 70, 68, 68, 69, 76, 70, 67, 78, 53, 70, 69, 79, 75, 56, 61, 69, 63, 56, 74, 57, 46, 55, 77, 75, 63, 62, 66, 54, 60, 52, 58, 54, 67, 56, 136, 68, 78, 63, 83, 56, 59, 60, 71, 71, 56, 56, 88, 56, 68, 67, 100, 79, 42, 67, 54, 69, 54, 94, 62, 69, 102, 72, 67, 62, 68, 71, 86, 56, 53, 75, 69, 57, 50, 49, 58, 52, 69, 58, 58, 65, 69, 72, 66, 98, 72, 64, 59, 63, 55, 44, 60, 112, 54, 67, 68, 63, 70, 62, 69, 71, 60, 70, 70, 76, 63, 90, 63, 56, 46, 69, 74, 59, 56, 61, 65, 77, 50, 66, 64, 63, 74, 82, 62, 50, 72, 56, 75, 67, 61, 54, 54, 70, 89, 63, 60, 65, 54, 57, 54, 53, 94, 71, 59, 55, 70, 50, 82, 61, 84, 69, 58, 81, 41, 70, 72, 80, 112, 59, 75, 69, 62, 75, 74, 62, 59, 67, 64, 76, 63, 57, 61, 85, 64, 49, 69, 51, 49, 73, 60, 59, 64, 68, 99, 45, 57, 61, 72, 68, 42, 53, 76, 58, 72, 67, 34, 65, 54, 56, 54, 50, 111, 58, 65, 58, 64, 51, 55, 86, 47, 86, 72, 52, 58, 57, 59, 79, 65, 67, 72, 59, 52, 90, 61, 62, 53, 66, 71, 43, 50, 53, 55, 77, 66, 48, 70, 58, 70, 53, 53, 64, 62, 67, 69, 44, 65, 60, 71, 56, 61, 60, 56, 46, 60, 65, 58, 57, 82, 48, 76, 60, 62, 51, 49, 69, 45, 64, 39, 63, 87, 70, 64, 61, 43, 67, 62, 53, 71, 72, 65, 80, 75, 68, 89, 63, 73, 64, 57, 63, 55, 57, 62, 50, 54, 57, 98, 50, 63, 31, 70, 55, 83, 80, 74, 75, 56, 81, 55, 64, 60, 63, 60, 53, 71, 90, 54, 77, 58, 59, 82, 57, 85, 64, 57, 53, 55, 50, 59, 75, 81, 54, 59, 57, 68, 56, 61, 75, 75, 72, 70, 58, 69, 71, 62, 65, 79, 60, 57, 61, 52, 63, 64, 52, 105, 59, 49, 56, 65, 53, 77, 67, 64, 63, 61, 57, 76, 53, 63, 61, 100, 75, 119, 67, 64, 54, 60, 63, 57, 57, 95, 109, 48, 63, 55, 61, 55, 69, 79, 61, 61, 60, 44, 63, 86, 82, 74, 72, 73, 61, 57, 86, 82, 61, 60, 72, 64, 53, 69, 99, 50, 68, 51, 79, 67, 59, 68, 68, 50, 72, 54, 76, 54, 71, 60, 107, 60, 65, 70, 81, 73, 72, 62, 71, 60, 66, 59, 62, 78, 58, 53, 75, 63, 58, 64, 71, 65, 58, 60, 66, 59, 77, 65, 70, 38, 72, 61, 73, 66, 76, 55, 52, 71, 50, 41, 67, 69, 74, 57, 72, 66, 47, 77, 53, 50, 51, 82, 80, 63, 69, 78, 68, 87, 64, 62, 79, 65, 54, 86, 62, 68, 52, 44, 76, 55, 60, 61, 67, 50, 59, 66, 45, 135, 52, 64, 63, 65, 52, 66, 58, 45, 57, 74, 51, 69, 65, 54, 109, 66, 75, 74, 69, 60, 68, 64, 62, 68, 67, 73, 78, 62, 105, 59, 61, 71, 66, 58, 61, 67, 66, 68, 66, 60, 78, 70, 69, 92, 51, 59, 54, 36, 67, 90, 68, 70, 53, 56, 73, 54, 53, 51, 48, 63, 50, 69, 54, 74, 53, 53, 68, 54, 61, 57, 54, 52, 73, 63, 63, 44, 63, 60, 50, 53, 58, 75, 56, 61, 59, 75, 60, 65, 109, 87, 61, 85, 66, 66, 63, 50, 73, 64, 85, 43, 70, 47, 56, 72, 62, 74, 83, 63, 59, 61, 77, 78, 65, 62, 57, 77, 54, 63, 80, 141, 59, 52, 50, 63, 63, 57, 73, 94, 57, 56, 99, 58, 64, 56, 66, 61, 53, 62, 47, 79, 86, 64, 63, 73, 53, 70, 50, 113, 53, 59, 58, 75, 61, 70, 61, 54, 72, 54, 63, 54, 69, 30, 44, 62, 79, 44, 73, 56, 89, 71, 97, 72, 70, 68, 64, 57, 60, 120, 51, 71, 64, 103, 58, 56, 72, 57, 57, 64, 65, 53, 78, 60, 91, 61, 71, 80, 63, 59, 80, 55, 56, 57, 64, 59, 72, 65, 65, 66, 57, 55, 75, 86, 65, 44, 49, 67, 69, 93, 77, 73, 66, 58, 65, 53, 70, 83, 63, 56, 68, 70, 91, 78, 55, 65, 69, 60, 74, 64, 63, 69, 79, 67, 76, 72, 52, 76, 91, 69, 79, 60, 66, 58, 82, 63, 72, 57, 61, 84, 63, 69, 42, 68, 74, 56, 77, 62, 68, 66, 88, 54, 57, 59, 48, 83, 89, 66, 46, 53, 63, 78, 76, 65, 76, 67, 56, 68, 82, 69, 42, 76, 61, 47, 51, 69, 57, 40, 52, 71, 57, 63, 73, 64, 63, 59, 66, 52, 79, 54, 65, 61, 70, 66, 86, 74, 61, 60, 65, 78, 41, 62, 54, 61, 82, 64, 63, 67, 74, 65, 83, 51, 71, 69, 55, 84, 61, 48, 55, 65, 53, 88, 50, 64, 58, 52, 80, 55, 71, 68, 63, 59, 66, 61, 59, 69, 66, 65, 71, 68, 68, 67, 83, 68, 45, 60, 61, 79, 54, 54, 52, 66, 62, 64, 68, 55, 62, 66, 112, 64, 50, 60, 57, 46, 74, 112, 57, 62, 65, 87, 127, 65, 86, 50, 61, 71, 49, 54, 57, 56, 60, 101, 57, 53, 61, 67, 83, 89, 63, 88, 52, 58, 67, 51, 65, 67, 57, 100, 93, 65, 59, 73, 64, 82, 63, 72, 59, 63, 61, 52, 85, 68, 66, 60, 54, 74, 55, 55, 59, 61, 79, 73, 62, 61, 78, 54, 39, 60, 44, 73, 60, 60, 71, 86, 72, 66, 58, 59, 59, 81, 79, 65, 89, 48, 80, 63, 71, 78, 50, 60, 96, 71, 62, 64, 69, 58, 53, 55, 64, 57, 60, 50, 61, 85, 71, 70, 82, 69, 58, 55, 82, 67, 67, 67, 47, 51, 54, 51, 54, 89, 59, 78, 69, 67, 60, 66, 67, 57, 49, 86, 59, 66, 115, 58, 70, 71, 63, 56, 70, 61, 60, 57, 71, 57, 62, 58, 56, 70, 55, 76, 59, 49, 79, 47, 58, 48, 51, 65, 63, 61, 70, 67, 66, 77, 53, 62, 81, 67, 54, 64, 85, 68, 48, 51, 85, 53, 76, 66, 71, 93, 93, 81, 70, 54, 43, 60, 82, 74, 75, 79, 71, 59, 57, 69, 61, 50, 59, 71, 51, 81, 59, 61, 44, 60, 62, 92, 68, 73, 58, 43, 65, 98, 63, 66, 63, 75, 61, 81, 55, 61, 65, 66, 77, 60, 61, 58, 75, 59, 61, 69, 40, 62, 65, 54, 63, 57, 59, 82, 92, 57, 61, 58, 53, 65, 65, 51, 52, 66, 100, 77, 84, 56, 62, 60, 65, 72, 63, 64, 67, 62, 55, 85, 90, 55, 56, 46, 134, 57, 77, 74, 72, 48, 64, 70, 68, 42, 57, 76, 47, 62, 63, 65, 53, 65, 60, 66, 71, 74, 70, 59, 64, 60, 73, 83, 26, 78, 91, 52, 58, 62, 50, 56, 59, 57, 70, 65, 49, 66, 81, 61, 69, 55, 52, 61, 78, 46, 72, 54, 52, 63, 60, 53, 54, 50, 76, 62, 56, 50, 58, 44, 59, 90, 63, 55, 58, 45, 60, 68, 65, 73, 60, 74, 75, 55, 78, 83, 66, 67, 89, 55, 57, 47, 56, 57, 68, 54, 62, 58, 56, 71, 79, 80, 69, 70, 42, 65, 66, 58, 65, 69, 58, 68, 74, 58, 67, 80, 43, 54, 65, 63, 66, 65, 58, 52, 69, 62, 50, 56, 56, 63, 59, 65, 68, 56, 62, 74, 94, 90, 74, 57, 40, 87, 84, 66, 55, 88, 57, 57, 71, 68, 59, 59, 56, 57, 52, 65, 61, 73, 62, 61, 67, 83, 69, 66, 54, 70, 57, 47, 59, 70, 59, 68, 70, 77, 64, 71, 62, 48, 65, 64, 82, 75, 59, 61, 73, 75, 55, 78, 78, 80, 71, 43, 45, 62, 70, 55, 83, 99, 68, 64, 57, 71, 86, 70, 58, 78, 71, 51, 80, 59, 67, 73, 73, 80, 45, 61, 46, 63, 57, 67, 78, 60, 67, 69, 55, 67, 61, 59, 69, 57, 52, 77, 52, 67, 82, 52, 69, 63, 70, 37, 52, 77, 64, 66, 59, 60, 51, 69, 53, 75, 56, 80, 68, 54, 69, 101, 58, 67, 70, 74, 69, 50, 74, 63, 75, 48, 68, 54, 64, 57, 57, 60, 61, 60, 70, 57, 53, 78, 67, 71, 57, 58, 58, 67, 75, 73, 56, 46, 74, 61, 57, 61, 62, 70, 64, 70, 48, 73, 56, 55, 45, 60, 61, 77, 55, 84, 71, 58, 133, 85, 66, 61, 68, 105, 86, 66, 89, 65, 66, 82, 59, 66, 66, 65, 61, 58, 68, 58, 50, 68, 60, 61, 77, 62, 61, 65, 65, 65, 78, 97, 52, 56, 59, 58, 67, 57, 70, 96, 72, 60, 65, 65, 59, 50, 76, 82, 60, 62, 74, 64, 68, 61, 85, 100, 66, 54, 51, 75, 68, 61, 60, 84, 54, 55, 62, 50, 65, 59, 70, 63, 70, 51, 49, 56, 81, 109, 56, 80, 64, 90, 41, 87, 72, 58, 64, 88, 53, 57, 93, 63, 80, 57, 69, 77, 81, 86, 60, 57, 46, 72, 59, 69, 62, 54, 99, 49, 73, 56, 57, 70, 69, 52, 68, 78, 52, 66, 58, 54, 71, 62, 50, 74, 72, 56, 67, 103, 65, 55, 46, 69, 63, 86, 104, 71, 61, 66, 62, 62, 70, 70, 71, 65, 57, 65, 54, 60, 75, 75, 67, 57, 68, 56, 60, 74, 74, 79, 76, 50, 59, 67, 64, 86, 77, 90, 77, 63, 52, 68, 66, 56, 54, 54, 81, 53, 86, 46, 64, 71, 69, 67, 60, 64, 63, 55, 64, 64, 50, 64, 60, 78, 64, 69, 62, 71, 63, 134, 90, 74, 81, 59, 59, 70, 54, 72, 76, 87, 76, 84, 56, 63, 49, 62, 105, 68, 77, 53, 76, 54, 74, 68, 75, 52, 81, 97, 48, 64, 77, 65, 71, 58, 62, 73, 68, 63, 80, 61, 90, 65, 77, 61, 55, 76, 48, 69, 67, 65, 62, 60, 53, 57, 72, 68, 44, 124, 60, 47, 53, 110, 72, 70, 68, 60, 56, 63, 72, 51, 73, 66, 63, 54, 66, 72, 62, 57, 48, 75, 61, 56, 67, 59, 79, 53, 52, 68, 62, 61, 52, 94, 68, 64, 59, 74, 69, 66, 76, 73, 60, 72, 63, 44, 63, 81, 57, 64, 69, 60, 57, 71, 42, 59, 61, 72, 46, 49, 63, 61, 56, 64, 76, 53, 74, 72, 95, 73, 78, 75, 61, 59, 91, 79, 79, 58, 71, 69, 70, 64, 58, 49, 57, 56, 87, 80, 55, 70, 113, 56, 67, 49, 62, 74, 84, 55, 65, 78, 58, 76, 87, 68, 85, 74, 61, 54, 61, 57, 59, 62, 66, 58, 69, 81, 64, 53, 62, 69, 57, 64, 58, 55, 50, 54, 70, 63, 50, 60, 59, 69, 74, 65, 63, 81, 67, 53, 103, 45, 56, 74, 71, 76, 79, 66, 70, 79, 59, 68, 69, 60, 80, 57, 59, 75, 55, 68, 55, 57, 58, 92, 65, 73, 71, 54, 59, 70, 53, 75, 58, 58, 77, 55, 81, 88, 82, 55, 74, 52, 88, 55, 68, 63, 42, 56, 61, 65, 64, 72, 65, 53, 56, 73, 96, 73, 68, 56, 91, 92, 68, 58, 56, 56, 74, 120, 73, 58, 85, 72, 123, 53, 72, 48, 60, 75, 63, 67, 62, 46, 64, 91, 61, 52, 84, 54, 68, 66, 65, 99, 48, 69, 48, 37, 51, 74, 83, 103, 106, 59, 79, 61, 42, 56, 63, 76, 63, 63, 56, 60, 59, 68, 75, 56, 61, 76, 70, 65, 63, 60, 100, 58, 53, 59, 66, 81, 46, 68, 56, 58, 69, 68, 80, 52, 86, 86, 67, 47, 65, 57, 50, 57, 89, 70, 59, 70, 67, 64, 65, 65, 89, 69, 65, 63, 60, 64, 56, 54, 65, 76, 58, 60, 69, 89, 62, 55, 92, 76, 103, 40, 65, 58, 84, 58, 93, 72, 61, 66, 41, 94, 73, 98, 58, 71, 66, 58, 59, 73, 73, 108, 79, 67, 99, 59, 66, 68, 56, 62, 54, 56, 63, 68, 66, 81, 63, 47, 70, 68, 66, 62, 48, 53, 64, 60, 69, 51, 80, 76, 75, 59, 105, 65, 70, 67, 51, 62, 93, 68, 58, 59, 61, 69, 38, 84, 71, 57, 52, 75, 61, 88, 88, 67, 62, 49, 60, 56, 98, 65, 70, 69, 50, 53, 99, 64, 67, 74, 57, 91, 51, 57, 73, 75, 54, 69, 57, 62, 73, 76, 46, 55, 60, 82, 64, 71, 69, 83, 65, 59, 61, 66, 67, 85, 61, 46, 64, 64, 60, 54, 53, 64, 78, 59, 41, 82, 45, 59, 67, 57, 63, 56, 66, 61, 64, 62, 72, 62, 50, 65, 51, 60, 66, 46, 58, 48, 69, 82, 59, 51, 80, 71, 68, 58, 64, 72, 36, 58, 115, 101, 58, 82, 55, 61, 62, 77, 63, 54, 68, 81, 53, 65, 84, 63, 51, 84, 56, 56, 77, 84, 44, 56, 50, 62, 62, 102, 55, 56, 85, 59, 68, 67, 64, 65, 52, 51, 59, 66, 45, 65, 75, 59, 82, 34, 63, 56, 77, 65, 66, 73, 69, 56, 98, 61, 62, 54, 75, 44, 61, 68, 69, 41, 59, 47, 66, 68, 71, 57, 65, 59, 53, 91, 56, 76, 60, 55, 93, 67, 83, 56, 60, 59, 65, 46, 46, 65, 67, 52, 66, 68, 58, 63, 77, 67, 63, 69, 66, 60, 66, 104, 48, 52, 58, 65, 69, 70, 64, 51, 58, 66, 70, 50, 50, 46, 64, 95, 60, 58, 77, 30, 71, 55, 71, 85, 52, 61, 57, 82, 74, 76, 72, 69, 91, 46, 73, 70, 65, 56, 84, 60, 68, 79, 59, 56, 83, 76, 49, 59, 67, 81, 80, 76, 54, 54, 76, 63, 54, 63, 50, 65, 52, 77, 61, 75, 68, 73, 68, 49, 69, 64, 65, 69, 81, 63, 63, 73, 64, 63, 60, 39, 45, 49, 67, 71, 87, 63, 62, 39, 77, 69, 51, 58, 47, 59, 78, 57, 63, 66, 75, 69, 78, 74, 77, 58, 63, 84, 82, 62, 63, 56, 64, 44, 47, 75, 64, 81, 71, 71, 59, 56, 50, 65, 55, 54, 42, 44, 57, 77, 52, 74, 64, 96, 44, 52, 74, 68, 56, 61, 47, 81, 65, 70, 63, 50, 49, 60, 79, 99, 56, 59, 59, 64, 81, 62, 103, 59, 104, 70, 63, 47, 50, 50, 63, 60, 67, 53, 61, 67, 53, 67, 68, 68, 50, 55, 53, 86, 63, 60, 67, 119, 58, 61, 70, 75, 51, 73, 69, 51, 98, 82, 51, 62, 51, 64, 64, 43, 58, 80, 55, 73, 90, 73, 65, 55, 72, 66, 67, 62, 66, 62, 104, 58, 68, 58, 58, 70, 68, 68, 68, 69, 77, 59, 51, 60, 56, 72, 50, 58, 57, 68, 81, 58, 57, 96, 46, 76, 41, 64, 54, 73, 83, 59, 64, 64, 63, 70, 74, 103, 58, 88, 63, 51, 69, 59, 77, 104, 40, 61, 66, 56, 65, 72, 69, 56, 58, 53, 50, 64, 69, 53, 83, 65, 80, 76, 51, 75, 77, 107, 59, 88, 85, 80, 51, 71, 65, 68, 55, 84, 66, 73, 98, 69, 91, 66, 70, 85, 62, 73, 61, 69, 65, 70, 62, 54, 78, 52, 94, 46, 57, 73, 61, 89, 56, 69, 56, 49, 52, 77, 58, 62, 77, 65, 49, 60, 71, 80, 59, 103, 64, 77, 59, 69, 58, 80, 56, 52, 54, 67, 53, 70, 64, 57, 67, 59, 65, 56, 50, 78, 68, 64, 59, 34, 53, 48, 64, 56, 82, 86, 66, 62, 57, 65, 63, 79, 66, 70, 64, 51, 60, 62, 74, 94, 66, 77, 51, 51, 83, 50, 101, 61, 80, 84, 67, 68, 55, 61, 60, 72, 65, 68, 61, 77, 49, 52, 76, 48, 57, 123, 101, 55, 75, 72, 74, 66, 58, 67, 68, 63, 109, 49, 66, 59, 54, 62, 85, 82, 68, 67, 57, 60, 88, 62, 81, 67, 59, 120, 71, 77, 87, 52, 69, 62, 68, 68, 53, 58, 105, 69, 53, 73, 64, 64, 54, 59, 48, 82, 81, 58, 65, 57, 85, 65, 65, 103, 66, 129, 50, 45, 72, 105, 55, 43, 52, 77, 60, 63, 52, 63, 64, 60, 72, 102, 68, 98, 55, 57, 90, 59, 73, 51, 70, 58, 66, 71, 64, 58, 86, 61, 86, 83, 55, 55, 57, 73, 77, 64, 62, 44, 58, 54, 48, 54, 57, 63, 56, 56, 49, 54, 50, 71, 75, 65, 68, 57, 49, 41, 66, 58, 55, 71, 46, 84, 65, 79, 56, 65, 52, 42, 61, 64, 114, 74, 54, 57, 65, 77, 74, 54, 84, 74, 63, 69, 91, 40, 60, 52, 79, 53, 68, 56, 51, 94, 67, 55, 56, 69, 79, 67, 61, 60, 92, 67, 59, 49, 55, 68, 86, 84, 53, 78, 76, 59, 49, 49, 48, 65, 43, 66, 51, 64, 59, 57, 77, 60, 85, 46, 71, 69, 62, 57, 63, 74, 54, 56, 56, 59, 43, 87, 68, 66, 68, 60, 54, 56, 85, 69, 75, 52, 79, 49, 69, 69, 73, 57, 65, 58, 53, 99, 66, 47, 47, 71, 59, 59, 53, 62, 62, 51, 60, 49, 94, 45, 77, 54, 63, 76, 72, 72, 67, 98, 71, 68, 48, 79, 75, 55, 57, 53, 56, 73, 56, 80, 73, 64, 87, 55, 52, 63, 61, 60, 63, 105, 81, 51, 85, 61, 105, 70, 91, 59, 62, 65, 47, 63, 56, 55, 56, 62, 65, 68, 68, 56, 93, 77, 55, 56, 60, 55, 38, 60, 51, 54, 76, 89, 90, 62, 52, 65, 57, 58, 59, 81, 48, 65, 72, 64, 67, 60, 73, 59, 65, 50, 75, 52, 52, 81, 99, 97, 61, 105, 58, 79, 52, 50, 82, 90, 88, 87, 57, 88, 61, 52, 85, 55, 71, 62, 60, 81, 100, 65, 88, 59, 63, 69, 57, 52, 70, 75, 76, 49, 59, 105, 57, 63, 69, 68, 73, 77, 52, 65, 63, 39, 73, 67, 58, 74, 59, 70, 90, 58, 102, 52, 60, 71, 51, 59, 61, 67, 82, 61, 48, 59, 57, 72, 59, 76, 51, 67, 79, 49, 33, 54, 83, 55, 68, 80, 62, 62, 80, 77, 79, 55, 81, 82, 62, 74, 73, 75, 67, 40, 49, 51, 60, 82, 88, 65, 71, 74, 59, 95, 52, 61, 69, 56, 46, 54, 74, 55, 60, 64, 70, 54, 75, 67, 75, 86, 58, 76, 50, 60, 62, 83, 71, 68, 65, 60, 66, 60, 71, 95, 69, 103, 77, 87, 51, 65, 65, 92, 65, 56, 64, 71, 63, 59, 53, 57, 66, 57, 71, 71, 52, 64, 80, 58, 52, 47, 51, 58, 70, 44, 77, 86, 55, 56, 57, 71, 95, 55, 51, 86, 62, 77, 52, 62, 79, 75, 67, 56, 64, 55, 77, 41, 69, 55, 59, 52, 59, 48, 65, 70, 65, 73, 73, 54, 49, 55, 84, 61, 58, 66, 58, 66, 140, 68, 72, 85, 46, 80, 51, 56, 52, 40, 42, 94, 58, 65, 68, 54, 70, 109, 52, 84, 68, 65, 49, 77, 67, 56, 59, 107, 79, 73, 44, 59, 91, 59, 62, 64, 88, 66, 72, 58, 48, 50, 71, 94, 60, 57, 54, 48, 66, 69, 72, 62, 44, 77, 68, 52, 74, 60, 46, 73, 66, 68, 92, 55, 49, 59, 57, 32, 63, 66, 75, 51, 71, 83, 82, 88, 90, 63, 80, 84, 82, 60, 55, 51, 54, 60, 65, 48, 53, 69, 73, 78, 76, 72, 96, 65, 58, 63, 60, 51, 113, 68, 78, 57, 68, 57, 67, 60, 50, 55, 72, 61, 54, 62, 64, 55, 72, 68, 59, 56, 58, 66, 60, 68, 43, 94, 50, 61, 46, 56, 80, 84, 54, 67, 71, 106, 59, 70, 46, 62, 51, 78, 61, 69, 71, 81, 46, 54, 69, 39, 82, 48, 58, 51, 72, 58, 38, 62, 53, 86, 67, 70, 58, 64, 56, 59, 58, 50, 39, 54, 68, 76, 54, 71, 56, 69, 62, 74, 53, 56, 71, 69, 53, 60, 66, 55, 80, 60, 53, 70, 83, 74, 60, 81, 75, 50, 91, 74, 71, 66, 51, 72, 80, 72, 91, 50, 81, 67, 92, 56, 55, 97, 56, 55, 48, 72, 79, 67, 49, 65, 62, 75, 79, 60, 67, 95, 55, 55, 53, 60, 53, 90, 63, 88, 60, 54, 60, 40, 72, 57, 61, 70, 60, 64, 76, 86, 65, 58, 70, 97, 67, 48, 53, 51, 85, 67, 85, 84, 70, 51, 61, 61, 62, 60, 61, 52, 57, 53, 62, 46, 89, 71, 55, 58, 66, 62, 56, 56, 56, 62, 53, 49, 88, 69, 88, 72, 76, 71, 51, 67, 80, 61, 81, 59, 58, 65, 70, 111, 70, 80, 46, 76, 113, 61, 53, 55, 71, 62, 69, 61, 63, 57, 115, 40, 64, 60, 77, 59, 51, 76, 52, 70, 61, 70, 64, 83, 75, 74, 74, 61, 63, 77, 70, 78, 52, 65, 51, 80, 65, 56, 92, 84, 53, 66, 65, 71, 67, 66, 72, 77, 57, 79, 66, 65, 69, 72, 40, 102, 79, 55, 79, 66, 68, 61, 63, 61, 60, 72, 65, 54, 57, 48, 79, 65, 57, 66, 63, 47, 66, 141, 61, 49, 90, 79, 48, 63, 69, 50, 51, 54, 53, 64, 84, 70, 90, 67, 79, 59, 51, 51, 59, 68, 63, 65, 57, 46, 62, 65, 87, 59, 44, 47, 54, 86, 59, 50, 58, 55, 53, 48, 72, 52, 62, 66, 66, 55, 75, 61, 72, 84, 73, 64, 54, 52, 43, 83, 76, 50, 66, 73, 44, 54, 54, 87, 106, 68, 84, 68, 74, 65, 59, 55, 43, 55, 71, 56, 59, 50, 52, 54, 47, 74, 55, 65, 73, 76, 54, 46, 50, 58, 57, 63, 55, 84, 55, 46, 75, 59, 76, 93, 57, 54, 74, 71, 63, 78, 52, 56, 58, 62, 50, 59, 60, 43, 70, 62, 62, 52, 47, 80, 51, 76, 42, 64, 60, 53, 61, 98, 58, 63, 69, 51, 68, 105, 60, 73, 65, 45, 63, 44, 79, 41, 57, 68, 57, 71, 78, 125, 86, 82, 77, 63, 57, 58, 70, 48, 59, 64, 131, 70, 80, 66, 76, 52, 45, 74, 75, 74, 54, 61, 75, 55, 52, 48, 67, 69, 69, 129, 49, 63, 63, 101, 53, 97, 62, 67, 70, 83, 51, 90, 72, 62, 78, 50, 73, 90, 73, 64, 81, 54, 71, 83, 63, 58, 73, 69, 74, 45, 42, 56, 82, 97, 50, 63, 72, 58, 71, 58, 64, 59, 54, 63, 59, 57, 61, 73, 70, 71, 51, 37, 58, 68, 47, 62, 73, 65, 68, 79, 57, 59, 80, 89, 44, 81, 45, 74, 67, 56, 71, 53, 55, 62, 91, 65, 63, 56, 58, 79, 43, 66, 59, 52, 54, 55, 79, 72, 73, 105, 63, 69, 90, 73, 44, 73, 61, 46, 79, 66, 51, 81, 67, 50, 90, 74, 59, 67, 84, 72, 79, 100, 84, 71, 72, 54, 73, 63, 96, 58, 70, 58, 62, 64, 74, 54, 70, 68, 62, 60, 64, 59, 65, 64, 76, 70, 58, 69, 43, 66, 59, 66, 65, 56, 58, 50, 41, 32, 69, 68, 87, 57, 73, 59, 74, 59, 93, 50, 60, 82, 56, 110, 61, 82, 66, 68, 56, 64, 75, 80, 55, 63, 60, 75, 90, 47, 76, 66, 75, 65, 77, 72, 69, 59, 52, 70, 59, 109, 86, 95, 70, 62, 70, 47, 108, 77, 75, 59, 82, 64, 44, 66, 48, 73, 60, 109, 67, 60, 52, 49, 115, 70, 70, 78, 38, 72, 67, 58, 58, 63, 68, 79, 56, 42, 64, 43, 71, 80, 66, 81, 66, 67, 74, 64, 63, 73, 60, 108, 103, 65, 78, 51, 56, 46, 46, 65, 68, 66, 75, 73, 58, 59, 86, 39, 56, 76, 74, 55, 80, 63, 109, 59, 58, 81, 72, 70, 50, 54, 72, 60, 59, 62, 64, 61, 71, 57, 58, 59, 82, 57, 70, 43, 76, 48, 67, 65, 60, 53, 38, 40, 69, 82, 83, 57, 65, 59, 38, 75, 85, 79, 75, 61, 63, 63, 70, 74, 51, 63, 52, 63, 68, 65, 56, 52, 80, 55, 59, 65, 64, 67, 66, 65, 70, 74, 59, 65, 61, 51, 89, 74, 41, 63, 60, 63, 46, 51, 71, 81, 86, 60, 66, 40, 87, 47, 46, 53, 82, 74, 59, 64, 71, 65, 61, 59, 62, 87, 64, 60, 61, 56, 56, 64, 52, 55, 54, 58, 78, 72, 59, 74, 69, 52, 85, 63, 60, 76, 53, 76, 71, 99, 67, 75, 58, 59, 62, 55, 69, 71, 61, 89, 68, 44, 71, 56, 53, 106, 95, 80, 70, 70, 73, 62, 49, 53, 52, 59, 54, 69, 59, 59, 42, 89, 64, 83, 62, 93, 63, 53, 56, 45, 65, 59, 61, 66, 58, 69, 59, 75, 48, 75, 73, 72, 55, 85, 56, 78, 53, 67, 52, 68, 63, 73, 52, 63, 76, 56, 62, 69, 58, 49, 97, 58, 64, 70, 68, 58, 54, 70, 40, 62, 78, 61, 52, 67, 57, 79, 93, 59, 59, 71, 71, 54, 72, 82, 71, 52, 56, 70, 74, 62, 60, 75, 69, 101, 65, 74, 76, 84, 48, 51, 87, 58, 64, 69, 54, 73, 80, 57, 64, 43, 65, 39, 82, 89, 57, 72, 54, 63, 98, 77, 60, 66, 73, 63, 68, 68, 61, 46, 78, 67, 75, 77, 67, 70, 64, 72, 59, 78, 54, 36, 56, 58, 70, 66, 63, 59, 56, 64, 64, 105, 85, 82, 81, 56, 93, 65, 71, 67, 46, 76, 31, 46, 47, 74, 69, 82, 78, 112, 50, 51, 64, 69, 72, 68, 69, 73, 97, 80, 67, 74, 68, 52, 78, 50, 65, 54, 36, 59, 62, 56, 76, 68, 56, 59, 62, 77, 61, 63, 47, 69, 57, 61, 55, 65, 52, 51, 84, 98, 41, 77, 50, 89, 78, 81, 55, 70, 71, 77, 65, 53, 44, 59, 85, 61, 69, 56, 38, 56, 90, 58, 65, 94, 66, 68, 56, 86, 61, 56, 74, 81, 73, 71, 55, 41, 66, 67, 55, 63, 77, 79, 95, 46, 70, 77, 60, 72, 60, 67, 64, 58, 68, 51, 73, 57, 62, 80, 69, 57, 42, 54, 66, 48, 64, 62, 70, 74, 54, 78, 89, 67, 102, 59, 76, 53, 68, 68, 60, 77, 63, 67, 82, 84, 65, 79, 65, 88, 56, 86, 78, 61, 65, 72, 53, 78, 60, 50, 62, 96, 70, 67, 55, 43, 69, 75, 64, 61, 39, 60, 67, 66, 69, 58, 60, 58, 57, 83, 62, 55, 63, 62, 65, 65, 74, 79, 94, 72, 50, 75, 72, 57, 55, 80, 68, 43, 51, 61, 65, 71, 68, 56, 73, 60, 75, 65, 49, 50, 53, 67, 63, 75, 68, 61, 55, 68, 81, 61, 43, 52, 46, 55, 67, 42, 59, 55, 68, 49, 94, 69, 96, 69, 66, 48, 64, 65, 75, 82, 71, 64, 66, 64, 59, 42, 74, 50, 55, 63, 60, 77, 79, 55, 62, 82, 46, 43, 69, 66, 67, 70, 54, 88, 53, 69, 72, 75, 64, 45, 62, 79, 62, 70, 72, 72, 67, 71, 74, 74, 62, 73, 90, 61, 95, 62, 76, 75, 62, 66, 94, 68, 50, 52, 65, 58, 50, 71, 56, 50, 45, 49, 72, 56, 68, 79, 65, 63, 59, 114, 58, 77, 93, 70, 61, 64, 60, 63, 57, 97, 70, 74, 65, 75, 102, 72, 80, 69, 58, 81, 47, 69, 60, 78, 56, 43, 42, 59, 101, 58, 54, 66, 54, 58, 59, 64, 64, 62, 57, 79, 74, 73, 82, 71, 76, 37, 76, 76, 68, 70, 54, 53, 62, 60, 63, 68, 65, 79, 59, 64, 56, 56, 54, 66, 65, 66, 60, 59, 68, 52, 53, 64, 61, 63, 48, 75, 68, 69, 82, 78, 65, 67, 57, 65, 60, 46, 60, 67, 69, 52, 40, 53, 72, 60, 67, 59, 69, 55, 74, 65, 64, 58, 56, 66, 77, 59, 62, 50, 58, 63, 56, 63, 69, 70, 62, 73, 47, 52, 72, 114, 75, 75, 87, 61, 66, 62, 66, 56, 51, 58, 32, 64, 60, 68, 57, 56, 72, 74, 53, 61, 54, 53, 94, 68, 53, 78, 75, 110, 76, 80, 96, 69, 51, 68, 55, 92, 59, 82, 76, 74, 53, 64, 69, 55, 51, 85, 62, 73, 60, 58, 81, 56, 55, 65, 52, 66, 84, 118, 72, 50, 76, 98, 63, 60, 66, 61, 93, 69, 59, 76, 54, 80, 57, 41, 56, 67, 53, 67, 89, 48, 53, 68, 41, 53, 87, 91, 55, 75, 42, 56, 63, 60, 57, 54, 53, 58, 77, 55, 80, 68, 54, 45, 60, 67, 61, 73, 66, 56, 57, 68, 105, 58, 89, 60, 79, 48, 76, 78, 47, 77, 57, 67, 81, 60, 87, 87, 63, 67, 78, 67, 56, 72, 100, 73, 67, 67, 53, 68, 76, 62, 60, 59, 46, 85, 68, 50, 80, 63, 67, 62, 80, 68, 61, 73, 69, 64, 68, 118, 63, 56, 56, 63, 84, 63, 69, 53, 82, 63, 59, 62, 54, 66, 60, 76, 60, 76, 62, 77, 60, 79, 70, 47, 65, 52, 99, 59, 94, 47, 48, 69, 73, 69, 53, 78, 61, 58, 33, 42, 50, 50, 50, 59, 65, 46, 58, 68, 68, 52, 79, 75, 50, 53, 46, 61, 83, 68, 51, 81, 56, 108, 105, 64, 51, 69, 79, 42, 88, 85, 76, 68, 71, 62, 66, 63, 52, 58, 98, 54, 64, 89, 85, 67, 68, 71, 45, 57, 76, 58, 64, 74, 69, 71, 70, 70, 94, 63, 89, 54, 71, 68, 49, 75, 60, 98, 61, 52, 67, 56, 135, 57, 88, 61, 50, 79, 76, 99, 80, 60, 56, 71, 65, 64, 63, 34, 65, 78, 59, 71, 47, 76, 55, 59, 68, 62, 57, 107, 52, 65, 64, 47, 59, 57, 55, 50, 61, 57, 66, 60, 70, 70, 56, 59, 55, 60, 90, 43, 64, 68, 106, 57, 51, 68, 61, 65, 66, 64, 52, 59, 64, 44, 74, 59, 38, 59, 67, 62, 68, 85, 50, 48, 79, 63, 66, 73, 44, 37, 49, 60, 71, 82, 65, 69, 70, 66, 55, 53, 47, 50, 69, 71, 50, 77, 44, 72, 63, 56, 55, 72, 64, 58, 51, 58, 84, 49, 59, 60, 68, 75, 48, 93, 56, 79, 69, 47, 61, 74, 59, 74, 84, 64, 63, 65, 67, 61, 37, 59, 68, 66, 75, 55, 55, 58, 58, 46, 50, 82, 46, 57, 78, 44, 59, 67, 71, 58, 59, 63, 73, 76, 63, 39, 75, 60, 82, 49, 63, 58, 53, 74, 77, 71, 60, 54, 62, 63, 62, 70, 51, 76, 59, 55, 51, 68, 49, 64, 34, 75, 58, 75, 80, 70, 83, 59, 61, 38, 78, 85, 64, 76, 39, 60, 49, 77, 60, 43, 68, 79, 65, 59, 57, 81, 61, 80, 57, 88, 61, 71, 42, 74, 53, 67, 66, 64, 62, 77, 67, 83, 32, 53, 94, 55, 61, 78, 64, 61, 68, 61, 56, 47, 60, 82, 45, 60, 48, 53, 70, 77, 60, 81, 90, 48, 96, 69, 74, 56, 70, 55, 54, 48, 52, 90, 62, 68, 59, 58, 113, 74, 66, 55, 59, 64, 69, 69, 75, 72, 64, 62, 74, 100, 97, 71, 57, 86, 67, 54, 75, 86, 81, 60, 64, 58, 55, 72, 86, 60, 73, 66, 68, 49, 66, 77, 60, 56, 68, 73, 57, 74, 60, 60, 55, 82, 61, 66, 65, 64, 65, 38, 90, 56, 70, 63, 61, 82, 66, 91, 64, 54, 62, 64, 43, 96, 38, 67, 82, 63, 60, 59, 90, 72, 47, 49, 89, 64, 70, 123, 88, 63, 71, 59, 61, 60, 59, 64, 64, 59, 72, 74, 48, 88, 84, 79, 37, 47, 75, 61, 68, 67, 71, 49, 64, 45, 62, 71, 57, 72, 97, 56, 58, 45, 68, 73, 53, 70, 60, 71, 58, 66, 63, 48, 38, 72, 41, 72, 36, 61, 48, 94, 57, 62, 57, 74, 66, 69, 63, 67, 60, 75, 93, 52, 59, 53, 60, 72, 34, 55, 67, 75, 62, 71, 55, 77, 66, 62, 61, 75, 60, 76, 61, 54, 47, 74, 62, 75, 70, 78, 70, 70, 54, 82, 65, 44, 56, 85, 53, 59, 57, 61, 47, 55, 73, 57, 67, 52, 59, 58, 68, 66, 71, 51, 58, 91, 88, 76, 62, 73, 97, 81, 74, 65, 80, 62, 59, 64, 60, 86, 60, 81, 66, 91, 79, 82, 87, 58, 87, 98, 59, 45, 77, 73, 66, 64, 53, 59, 62, 76, 61, 70, 55, 85, 63, 63, 62, 48, 77, 68, 51, 53, 66, 61, 70, 63, 63, 61, 83, 77, 68, 58, 54, 53, 52, 64, 49, 74, 76, 76, 56, 57, 61, 63, 72, 56, 53, 45, 60, 62, 66, 51, 72, 56, 43, 86, 65, 84, 82, 75, 67, 34, 77, 47, 84, 78, 71, 90, 65, 58, 56, 64, 63, 57, 66, 63, 56, 96, 61, 61, 69, 66, 110, 48, 80, 68, 58, 67, 61, 49, 42, 56, 57, 94, 75, 65, 51, 70, 48, 61, 65, 70, 91, 55, 51, 56, 79, 61, 59, 50, 60, 46, 75, 88, 53, 61, 93, 87, 64, 62, 62, 57, 67, 58, 71, 61, 70, 65, 64, 66, 59, 53, 99, 63, 86, 49, 114, 98, 70, 69, 64, 69, 59, 64, 56, 54, 72, 61, 62, 88, 40, 70, 93, 49, 66, 70, 52, 48, 103, 119, 73, 64, 84, 76, 74, 64, 62, 74, 61, 86, 41, 53, 66, 50, 83, 66, 79, 71, 93, 45, 60, 64, 51, 55, 65, 45, 78, 61, 107, 60, 88, 79, 61, 96, 53, 44, 55, 46, 71, 101, 67, 50, 66, 54, 74, 87, 88, 50, 58, 82, 84, 80, 57, 60, 61, 62, 51, 59, 92, 66, 62, 54, 51, 75, 75, 50, 53, 43, 53, 53, 57, 88, 74, 68, 43, 50, 42, 60, 72, 91, 61, 65, 54, 59, 51, 108, 87, 69, 102, 51, 65, 60, 69, 118, 83, 64, 48, 47, 100, 81, 57, 58, 88, 91, 60, 61, 60, 64, 59, 67, 79, 64, 69, 51, 54, 53, 60, 75, 46, 143, 87, 61, 87, 56, 42, 63, 80, 44, 53, 55, 68, 73, 61, 69, 57, 62, 92, 67, 59, 45, 75, 56, 78, 54, 63, 60, 79, 122, 62, 62, 60, 65, 84, 44, 65, 83, 66, 47, 109, 85, 46, 79, 49, 71, 66, 82, 65, 49, 73, 75, 45, 66, 62, 67, 58, 66, 61, 106, 57, 50, 62, 78, 51, 55, 72, 57, 60, 55, 60, 57, 81, 80, 83, 61, 68, 67, 50, 60, 52, 57, 47, 85, 60, 71, 74, 81, 69, 69, 84, 100, 58, 52, 56, 67, 59, 59, 59, 76, 65, 51, 72, 59, 51, 53, 65, 63, 59, 54, 54, 111, 109, 59, 46, 78, 52, 55, 65, 74, 50, 66, 55, 54, 67, 53, 62, 69, 64, 62, 53, 56, 64, 55, 87, 59, 60, 62, 76, 93, 59, 70, 57, 63, 65, 54, 87, 57, 57, 48, 56, 64, 69, 58, 61, 64, 52, 56, 63, 47, 61, 63, 60, 57, 59, 57, 56, 73, 77, 48, 52, 63, 55, 55, 107, 88, 69, 67, 55, 76, 70, 82, 66, 54, 68, 65, 53, 66, 75, 50, 65, 47, 66, 72, 82, 86, 76, 86, 60, 67, 53, 65, 58, 70, 48, 60, 63, 59, 111, 62, 92, 60, 49, 69, 62, 73, 49, 57, 53, 70, 67, 108, 71, 82, 54, 64, 73, 62, 77, 93, 49, 53, 70, 74, 78, 114, 62, 64, 67, 71, 58, 96, 76, 78, 79, 57, 53, 54, 59, 55, 51, 44, 60, 80, 65, 69, 82, 72, 104, 48, 62, 98, 61, 65, 63, 131, 59, 58, 66, 64, 138, 49, 86, 70, 66, 75, 60, 57, 57, 63, 61, 53, 73, 64, 55, 63, 69, 72, 57, 97, 57, 79, 53, 60, 68, 72, 80, 109, 44, 49, 66, 54, 55, 71, 60, 58, 48, 62, 58, 58, 54, 76, 54, 68, 66, 65, 46, 60, 59, 69, 83, 64, 40, 84, 44, 67, 52, 47, 59, 63, 51, 57, 88, 61, 42, 61, 65, 57, 64, 60, 59, 67, 81, 82, 34, 60, 52, 63, 42, 65, 77, 50, 72, 75, 65, 83, 74, 52, 55, 56, 57, 59, 58, 65, 59, 59, 67, 60, 68, 67, 76, 63, 67, 60, 64, 70, 70, 62, 44, 94, 53, 104, 81, 69, 89, 49, 62, 76, 52, 50, 60, 71, 79, 67, 70, 88, 74, 72, 82, 51, 79, 76, 68, 55, 70, 68, 44, 60, 68, 69, 76, 61, 84, 73, 61, 45, 79, 67, 74, 62, 40, 70, 61, 45, 76, 61, 61, 54, 69, 68, 75, 56, 66, 91, 71, 63, 67, 62, 72, 113, 93, 62, 50, 60, 68, 65, 64, 56, 81, 92, 52, 55, 49, 50, 45, 45, 54, 58, 67, 59, 78, 72, 58, 75, 67, 98, 52, 50, 66, 47, 74, 55, 65, 93, 75, 69, 74, 60, 59, 66, 80, 65, 64, 55, 77, 56, 61, 56, 89, 41, 64, 81, 61, 64, 54, 72, 94, 67, 75, 58, 58, 78, 57, 68, 63, 64, 87, 62, 62, 65, 93, 67, 78, 56, 61, 76, 81, 51, 62, 67, 53, 80, 70, 62, 59, 51, 80, 63, 61, 70, 73, 56, 73, 75, 84, 57, 79, 75, 50, 59, 62, 66, 61, 58, 54, 74, 73, 72, 60, 60, 72, 68, 63, 71, 65, 54, 61, 63, 42, 71, 57, 47, 50, 59, 49, 58, 60, 65, 119, 54, 71, 68, 63, 61, 59, 58, 56, 65, 73, 37, 75, 51, 67, 56, 50, 60, 57, 71, 54, 47, 65, 75, 57, 69, 65, 69, 83, 64, 38, 74, 73, 71, 67, 65, 82, 85, 59, 66, 68, 69, 68, 75, 62, 66, 61, 39, 71, 71, 61, 84, 87, 86, 71, 53, 73, 59, 82, 72, 58, 55, 94, 67, 52, 56, 63, 57, 82, 72, 53, 67, 53, 50, 52, 68, 63, 72, 55, 47, 73, 63, 70, 60, 73, 62, 67, 72, 43, 88, 57, 56, 35, 58, 76, 75, 57, 66, 75, 63, 62, 54, 58, 60, 74, 75, 54, 65, 53, 82, 59, 41, 59, 61, 64, 63, 62, 67, 57, 53, 58, 66, 50, 67, 55, 65, 59, 88, 49, 66, 70, 72, 91, 67, 49, 59, 88, 70, 52, 76, 65, 53, 70, 60, 83, 82, 69, 56, 80, 73, 65, 56, 61, 52, 62, 66, 52, 67, 41, 56, 127, 51, 68, 58, 51, 52, 70, 54, 61, 62, 62, 59, 62, 73, 48, 66, 60, 73, 52, 73, 67, 57, 67, 75, 68, 66, 90, 79, 68, 81, 51, 66, 49, 81, 54, 87, 50, 61, 63, 70, 70, 51, 49, 57, 57, 60, 57, 74, 60, 65, 52, 79, 51, 87, 71, 80, 34, 77, 62, 63, 62, 61, 66, 64, 50, 52, 68, 72, 54, 93, 71, 74, 74, 51, 40, 45, 78, 71, 63, 66, 74, 76, 55, 51, 78, 70, 88, 45, 61, 67, 72, 52, 70, 56, 54, 104, 60, 84, 91, 85, 124, 54, 70, 43, 74, 98, 68, 78, 50, 70, 96, 74, 63, 72, 63, 55, 58, 55, 79, 60, 85, 70, 47, 62, 54, 91, 49, 70, 82, 61, 97, 62, 57, 53, 84, 79, 64, 77, 49, 63, 87, 76, 69, 65, 54, 57, 64, 100, 40, 52, 118, 53, 71, 61, 56, 125, 71, 80, 64, 54, 64, 81, 57, 85, 58, 56, 49, 64, 69, 59, 58, 75, 87, 51, 62, 55, 69, 84, 60, 91, 80, 92, 66, 48, 72, 65, 68, 73, 57, 68, 86, 46, 75, 71, 82, 59, 60, 54, 56, 49, 38, 40, 62, 57, 54, 54, 96, 53, 71, 52, 50, 65, 64, 47, 64, 47, 47, 94, 52, 53, 66, 73, 73, 109, 54, 70, 68, 80, 67, 75, 77, 70, 52, 66, 74, 67, 75, 66, 52, 66, 66, 63, 69, 66, 52, 59, 65, 52, 42, 52, 47, 52, 60, 71, 56, 58, 63, 97, 77, 63, 61, 76, 68, 56, 60, 50, 58, 76, 59, 60, 81, 57, 54, 65, 75, 50, 134, 61, 53, 62, 61, 85, 63, 73, 51, 76, 62, 65, 53, 81, 59, 80, 72, 67, 56, 97, 51, 139, 93, 69, 81, 67, 78, 79, 60, 82, 70, 63, 61, 56, 56, 64, 56, 53, 74, 71, 73, 53, 74, 65, 75, 47, 61, 71, 78, 104, 80, 62, 73, 79, 64, 53, 55, 56, 59, 50, 75, 56, 67, 67, 42, 74, 49, 58, 69, 70, 74, 59, 93, 50, 67, 54, 84, 67, 72, 112, 54, 83, 59, 114, 65, 93, 67, 51, 52, 60, 54, 63, 41, 71, 70, 106, 57, 75, 72, 63, 55, 53, 59, 57, 45, 52, 65, 55, 62, 67, 81, 68, 86, 85, 49, 60, 54, 55, 62, 62, 70, 57, 56, 52, 70, 78, 68, 73, 53, 62, 50, 58, 68, 59, 67, 65, 76, 52, 62, 66, 63, 61, 73, 73, 60, 57, 70, 42, 50, 75, 55, 68, 54, 70, 70, 55, 62, 52, 33, 56, 63, 65, 62, 70, 65, 68, 58, 62, 59, 62, 71, 67, 57, 60, 63, 64, 45, 55, 67, 76, 68, 62, 77, 65, 63, 57, 56, 73, 70, 48, 52, 53, 94, 64, 69, 84, 64, 64, 60, 71, 66, 56, 79, 65, 54, 75, 68, 66, 62, 56, 53, 68, 94, 73, 53, 75, 56, 53, 59, 91, 66, 42, 81, 60, 46, 77, 63, 62, 65, 69, 64, 77, 52, 55, 65, 59, 90, 60, 66, 70, 53, 82, 43, 100, 86, 74, 70, 62, 55, 55, 67, 73, 104, 55, 56, 84, 58, 59, 60, 52, 82, 85, 52, 64, 69, 62, 55, 117, 69, 59, 68, 69, 82, 72, 91, 47, 79, 74, 63, 61, 83, 64, 59, 67, 57, 97, 51, 73, 77, 61, 141, 52, 76, 86, 69, 68, 61, 75, 74, 68, 65, 80, 74, 58, 58, 49, 56, 51, 54, 73, 58, 58, 59, 58, 66, 60, 56, 69, 87, 83, 62, 71, 61, 82, 58, 58, 51, 56, 54, 54, 69, 52, 72, 61, 44, 64, 54, 68, 76, 76, 80, 58, 61, 71, 73, 66, 45, 71, 68, 54, 75, 69, 72, 64, 61, 51, 47, 50, 73, 62, 44, 73, 55, 73, 58, 61, 54, 53, 56, 62, 48, 80, 48, 61, 72, 50, 69, 64, 80, 68, 60, 47, 66, 139, 56, 63, 60, 66, 81, 58, 80, 55, 57, 55, 54, 69, 70, 80, 64, 79, 59, 108, 63, 100, 57, 69, 48, 85, 45, 82, 62, 63, 59, 62, 58, 88, 66, 56, 60, 87, 62, 57, 48, 58, 69, 62, 93, 51, 53, 52, 64, 58, 81, 54, 66, 57, 67, 63, 56, 55, 63, 60, 77, 67, 49, 53, 75, 50, 67, 56, 63, 66, 67, 52, 67, 97, 47, 75, 52, 101, 67, 60, 60, 84, 51, 56, 86, 93, 60, 68, 49, 50, 43, 59, 55, 75, 82, 84, 60, 50, 80, 112, 62, 111, 62, 54, 70, 56, 66, 55, 55, 61, 80, 69, 62, 98, 66, 72, 64, 54, 72, 51, 56, 61, 54, 60, 79, 72, 57, 67, 47, 64, 49, 65, 62, 82, 74, 62, 61, 61, 67, 79, 77, 72, 57, 59, 72, 55, 73, 82, 101, 69, 80, 62, 75, 92, 76, 54, 64, 59, 59, 55, 67, 68, 75, 47, 110, 59, 70, 83, 57, 51, 105, 57, 71, 56, 62, 106, 72, 95, 73, 51, 63, 104, 72, 67, 50, 93, 53, 61, 62, 69, 77, 80, 89, 84, 58, 73, 40, 70, 51, 59, 66, 53, 61, 65, 61, 56, 63, 70, 56, 81, 59, 54, 60, 49, 81, 53, 78, 66, 61, 52, 62, 63, 67, 50, 57, 72, 73, 56, 62, 83, 55, 67, 73, 66, 61, 72, 57, 78, 73, 61, 41, 70, 64, 117, 84, 62, 68, 56, 54, 74, 70, 52, 41, 77, 50, 81, 78, 73, 81, 67, 76, 47, 54, 48, 54, 75, 58, 69, 59, 51, 68, 55, 51, 65, 48, 67, 55, 61, 75, 75, 61, 51, 75, 64, 65, 77, 68, 58, 81, 60, 54, 75, 50, 64, 57, 73, 60, 60, 60, 80, 64, 55, 57, 72, 50, 46, 70, 59, 68, 52, 72, 62, 62, 64, 83, 75, 59, 68, 58, 62, 65, 65, 72, 62, 61, 76, 51, 97, 86, 37, 71, 59, 65, 56, 65, 54, 56, 48, 56, 46, 60, 67, 53, 68, 59, 77, 52, 57, 46, 82, 103, 52, 57, 56, 53, 46, 52, 62, 62, 94, 86, 78, 78, 44, 67, 53, 55, 63, 80, 75, 70, 75, 76, 64, 62, 72, 60, 89, 63, 52, 103, 91, 49, 70, 62, 56, 73, 64, 62, 98, 52, 72, 70, 60, 68, 62, 51, 78, 54, 61, 69, 53, 54, 68, 104, 108, 55, 63, 52, 73, 59, 65, 52, 73, 69, 68, 57, 105, 58, 55, 73, 64, 69, 62, 81, 46, 66, 74, 53, 55, 58, 57, 65, 56, 51, 65, 65, 54, 54, 52, 81, 53, 73, 60, 55, 101, 39, 46, 55, 75, 73, 57, 57, 74, 59, 74, 56, 51, 62, 49, 78, 88, 67, 59, 62, 68, 103, 65, 70, 68, 54, 55, 57, 68, 52, 54, 50, 63, 72, 54, 56, 54, 51, 66, 72, 56, 63, 63, 63, 65, 71, 70, 63, 56, 65, 60, 70, 64, 53, 57, 72, 64, 70, 70, 59, 74, 54, 63, 108, 74, 50, 67, 66, 61, 63, 85, 78, 53, 57, 58, 45, 94, 58, 57, 77, 58, 71, 78, 56, 53, 62, 62, 58, 61, 73, 59, 121, 62, 67, 72, 66, 61, 84, 124, 72, 53, 100, 50, 47, 61, 63, 56, 80, 85, 59, 90, 41, 96, 76, 51, 60, 79, 51, 69, 53, 51, 59, 48, 58, 69, 83, 50, 108, 54, 56, 60, 70, 98, 52, 37, 66, 54, 55, 83, 57, 62, 70, 60, 63, 53, 68, 97, 54, 79, 71, 70, 63, 58, 61, 71, 40, 58, 56, 64, 55, 57, 53, 80, 55, 75, 61, 64, 53, 63, 70, 75, 57, 76, 61, 54, 63, 68, 80, 64, 55, 68, 63, 46, 79, 87, 60, 94, 80, 71, 71, 55, 83, 57, 72, 37, 84, 60, 77, 67, 72, 60, 54, 77, 74, 60, 52, 58, 76, 61, 76, 61, 54, 89, 71, 46, 76, 70, 76, 114, 114, 62, 79, 61, 71, 58, 75, 68, 53, 68, 78, 44, 63, 59, 64, 67, 59, 86, 58, 70, 67, 71, 91, 64, 67, 54, 76, 124, 77, 55, 79, 56, 50, 61, 55, 79, 64, 66, 74, 86, 59, 82, 56, 85, 66, 50, 74, 47, 41, 60, 85, 58, 60, 73, 77, 100, 66, 114, 66, 77, 69, 105, 66, 64, 51, 63, 53, 62, 74, 67, 76, 72, 67, 35, 74, 63, 79, 60, 88, 66, 75, 57, 49, 63, 77, 66, 56, 62, 73, 105, 89, 59, 66, 75, 59, 76, 61, 78, 57, 58, 62, 73, 57, 74, 65, 73, 41, 69, 48, 76, 74, 64, 66, 68, 70, 57, 84, 69, 55, 88, 79, 59, 91, 76, 73, 120, 81, 76, 92, 50, 73, 68, 65, 63, 68, 81, 55, 77, 59, 55, 72, 53, 56, 73, 55, 88, 60, 64, 73, 57, 68, 54, 68, 64, 84, 57, 65, 79, 76, 82, 51, 55, 84, 82, 74, 77, 46, 70, 41, 96, 68, 77, 65, 84, 50, 53, 88, 62, 71, 49, 58, 50, 55, 64, 85, 62, 62, 55, 56, 68, 96, 58, 77, 57, 63, 53, 79, 40, 61, 66, 74, 55, 109, 53, 70, 84, 62, 48, 67, 54, 51, 72, 62, 66, 52, 89, 60, 70, 58, 89, 86, 95, 64, 60, 55, 82, 65, 81, 52, 50, 67, 75, 57, 63, 72, 46, 87, 49, 74, 60, 77, 66, 65, 70, 66, 86, 68, 66, 68, 55, 53, 63, 61, 56, 70, 68, 107, 53, 68, 75, 75, 62, 56, 121, 57, 61, 64, 52, 122, 64, 75, 55, 66, 82, 82, 69, 58, 73, 55, 55, 64, 72, 69, 76, 91, 77, 73, 72, 64, 94, 80, 58, 48, 60, 69, 121, 52, 66, 55, 53, 55, 58, 59, 59, 61, 69, 58, 49, 76, 74, 86, 50, 53, 61, 46, 56, 48, 74, 58, 76, 64, 71, 65, 69, 81, 48, 61, 63, 58, 54, 79, 50, 68, 59, 56, 69, 64, 65, 72, 48, 64, 52, 56, 52, 59, 56, 57, 55, 55, 62, 69, 81, 64, 47, 58, 72, 76, 56, 67, 61, 61, 55, 82, 61, 57, 51, 53, 52, 67, 64, 96, 65, 43, 66, 63, 90, 52, 60, 64, 54, 58, 63, 128, 32, 60, 104, 74, 93, 75, 57, 60, 63, 70, 54, 79, 62, 76, 50, 57, 49, 64, 59, 55, 53, 116, 76, 64, 64, 46, 54, 62, 67, 63, 62, 59, 71, 76, 67, 93, 65, 65, 53, 51, 66, 68, 68, 54, 79, 66, 73, 55, 72, 57, 73, 62, 66, 54, 81, 60, 65, 69, 30, 71, 61, 57, 83, 68, 57, 62, 59, 76, 69, 77, 45, 78, 62, 68, 65, 66, 43, 67, 58, 57, 71, 63, 75, 44, 74, 60, 89, 75, 45, 69, 42, 58, 71, 47, 63, 45, 56, 44, 72, 50, 61, 68, 74, 66, 57, 58, 64, 52, 90, 55, 59, 50, 67, 68, 43, 41, 49, 70, 75, 66, 76, 58, 65, 52, 66, 71, 60, 69, 60, 72, 73, 53, 48, 69, 71, 51, 82, 65, 57, 78, 82, 136, 67, 71, 83, 68, 104, 66, 65, 63, 68, 70, 80, 81, 79, 64, 73, 62, 74, 57, 80, 38, 81, 50, 60, 79, 55, 57, 98, 89, 74, 90, 55, 69, 73, 74, 45, 65, 57, 63, 91, 64, 86, 50, 71, 64, 70, 70, 66, 63, 51, 78, 64, 75, 71, 55, 51, 71, 58, 81, 61, 83, 77, 54, 47, 55, 72, 59, 79, 59, 63, 77, 65, 77, 51, 73, 77, 104, 63, 48, 79, 50, 50, 74, 48, 74, 63, 55, 69, 60, 62, 87, 82, 83, 55, 69, 50, 84, 65, 62, 78, 82, 81, 85, 61, 61, 68, 62, 90, 55, 63, 86, 71, 62, 51, 65, 52, 63, 50, 34, 62, 63, 76, 61, 57, 77, 53, 69, 84, 79, 70, 66, 77, 45, 59, 56, 55, 61, 71, 71, 56, 59, 67, 70, 70, 79, 61, 79, 70, 55, 70, 63, 60, 64, 64, 67, 100, 60, 56, 64, 68, 73, 53, 60, 69, 60, 86, 71, 88, 72, 76, 67, 57, 86, 81, 69, 40, 47, 60, 62, 55, 56, 59, 81, 52, 60, 63, 50, 71, 68, 46, 68, 61, 65, 60, 71, 55, 56, 60, 59, 50, 52, 79, 80, 54, 68, 47, 49, 66, 47, 50, 58, 62, 56, 69, 55, 55, 87, 69, 67, 49, 58, 90, 101, 79, 45, 77, 60, 61, 54, 50, 72, 65, 65, 72, 47, 53, 90, 72, 49, 64, 55, 81, 72, 79, 79, 64, 62, 75, 66, 59, 79, 72, 46, 59, 54, 53, 76, 72, 96, 62, 59, 65, 69, 85, 57, 63, 48, 64, 99, 65, 53, 76, 56, 88, 56, 68, 69, 44, 69, 79, 51, 63, 70, 56, 70, 65, 85, 61, 71, 99, 56, 60, 63, 56, 59, 61, 64, 65, 71, 64, 57, 59, 125, 82, 73, 73, 46, 53, 63, 55, 69, 66, 71, 51, 48, 55, 61, 78, 74, 63, 85, 62, 101, 69, 74, 119, 79, 77, 59, 61, 85, 77, 73, 75, 58, 72, 56, 81, 62, 68, 35, 59, 65, 90, 88, 62, 59, 61, 74, 75, 52, 53, 104, 59, 49, 75, 102, 79, 81, 49, 52, 53, 64, 55, 51, 81, 50, 88, 48, 62, 59, 63, 62, 83, 64, 62, 81, 64, 77, 67, 64, 67, 50, 79, 69, 57, 64, 65, 75, 81, 75, 58, 67, 67, 88, 46, 63, 75, 84, 56, 59, 74, 73, 59, 58, 49, 73, 51, 88, 65, 79, 75, 47, 62, 61, 62, 55, 50, 62, 54, 73, 70, 51, 79, 47, 92, 52, 69, 54, 76, 78, 72, 77, 51, 76, 57, 33, 57, 54, 66, 76, 73, 56, 97, 38, 67, 52, 74, 54, 71, 59, 47, 59, 55, 49, 52, 95, 75, 72, 118, 49, 83, 65, 51, 84, 62, 67, 33, 89, 60, 72, 58, 88, 57, 87, 54, 99, 68, 89, 60, 57, 46, 80, 63, 57, 59, 61, 65, 69, 62, 62, 80, 65, 70, 40, 53, 47, 43, 70, 93, 50, 80, 80, 77, 61, 42, 57, 77, 64, 57, 51, 60, 66, 68, 75, 73, 96, 58, 76, 77, 73, 73, 72, 83, 63, 53, 65, 66, 73, 65, 61, 59, 56, 67, 56, 54, 52, 55, 32, 79, 81, 65, 75, 70, 76, 75, 62, 70, 68, 52, 62, 63, 56, 39, 56, 72, 73, 116, 70, 63, 48, 106, 57, 79, 58, 50, 52, 79, 61, 60, 64, 63, 55, 65, 62, 60, 67, 63, 96, 79, 63, 77, 57, 62, 57, 80, 67, 73, 53, 90, 36, 91, 55, 51, 63, 62, 57, 95, 63, 66, 43, 54, 65, 95, 61, 76, 61, 61, 61, 84, 63, 59, 48, 80, 67, 69, 84, 40, 38, 67, 78, 54, 43, 65, 71, 99, 74, 91, 41, 55, 64, 65, 50, 68, 58, 62, 82, 70, 63, 53, 63, 70, 64, 39, 64, 61, 65, 63, 54, 89, 58, 69, 61, 64, 50, 57, 64, 63, 73, 51, 74, 82, 59, 86, 67, 76, 93, 64, 76, 52, 65, 72, 62, 79, 64, 76, 41, 79, 44, 70, 60, 63, 61, 51, 78, 58, 57, 48, 69, 55, 75, 56, 69, 60, 62, 66, 63, 82, 59, 44, 68, 61, 86, 64, 56, 77, 70, 79, 43, 58, 44, 77, 76, 61, 71, 68, 48, 78, 59, 96, 59, 93, 60, 46, 64, 69, 79, 66, 61, 54, 57, 75, 74, 49, 69, 67, 75, 61, 65, 86, 52, 57, 56, 61, 62, 80, 63, 62, 56, 63, 44, 69, 58, 50, 77, 67, 86, 50, 66, 64, 71, 63, 55, 143, 70, 68, 56, 59, 130, 71, 79, 60, 55, 68, 70, 65, 69, 45, 78, 61, 86, 72, 76, 58, 75, 53, 37, 59, 63, 87, 46, 57, 69, 51, 61, 91, 70, 62, 58, 63, 63, 48, 68, 76, 71, 50, 52, 80, 79, 52, 55, 57, 74, 81, 74, 57, 66, 59, 67, 66, 81, 65, 51, 58, 80, 56, 68, 61, 54, 57, 101, 61, 60, 64, 56, 60, 77, 72, 78, 73, 39, 86, 68, 70, 57, 73, 60, 68, 52, 85, 54, 54, 57, 49, 66, 54, 63, 90, 61, 72, 61, 70, 67, 67, 61, 59, 60, 73, 76, 56, 54, 57, 54, 69, 70, 70, 74, 58, 49, 62, 91, 82, 54, 63, 52, 71, 71, 76, 82, 61, 70, 70, 75, 48, 97, 56, 69, 65, 66, 75, 55, 65, 48, 64, 57, 58, 70, 76, 75, 70, 59, 73, 61, 68, 59, 60, 66, 66, 81, 92, 49, 71, 57, 54, 66, 72, 54, 80, 58, 56, 64, 69, 64, 72, 46, 55, 89, 107, 61, 75, 61, 51, 70, 52, 63, 47, 61, 57, 58, 59, 65, 48, 72, 85, 92, 83, 49, 78, 66, 52, 64, 66, 65, 77, 67, 75, 61, 67, 54, 81, 103, 77, 64, 104, 44, 48, 71, 59, 71, 60, 55, 68, 81, 56, 65, 54, 56, 73, 54, 64, 56, 79, 52, 74, 70, 49, 65, 75, 54, 58, 64, 56, 61, 54, 61, 61, 50, 61, 59, 64, 49, 53, 50, 85, 46, 54, 61, 45, 72, 74, 60, 47, 69, 66, 99, 47, 58, 59, 79, 90, 74, 62, 65, 58, 75, 93, 49, 71, 68, 48, 69, 92, 71, 47, 41, 105, 57, 49, 59, 51, 76, 69, 38, 42, 104, 56, 56, 58, 50, 61, 73, 60, 70, 75, 53, 70, 76, 69, 58, 74, 60, 53, 91, 63, 68, 50, 62, 75, 62, 49, 54, 74, 54, 67, 66, 35, 54, 61, 59, 80, 76, 77, 41, 55, 46, 54, 65, 73, 62, 46, 88, 66, 59, 92, 80, 58, 42, 58, 49, 68, 68, 66, 49, 65, 77, 51, 56, 59, 69, 113, 66, 74, 56, 74, 71, 68, 88, 46, 68, 67, 60, 63, 85, 55, 76, 62, 37, 69, 72, 56, 52, 46, 74, 72, 56, 67, 86, 67, 66, 52, 68, 75, 53, 50, 90, 93, 59, 67, 60, 53, 64, 52, 51, 63, 51, 64, 55, 69, 75, 57, 73, 77, 58, 74, 67, 63, 72, 59, 70, 90, 81, 50, 66, 75, 59, 52, 65, 60, 52, 78, 71, 76, 48, 97, 63, 43, 94, 54, 96, 71, 74, 71, 70, 55, 72, 58, 45, 54, 64, 86, 80, 62, 84, 56, 86, 66, 63, 42, 73, 66, 71, 57, 54, 59, 54, 35, 86, 56, 97, 62, 72, 42, 77, 63, 57, 80, 53, 63, 69, 58, 60, 79, 70, 73, 60, 57, 60, 79, 45, 96, 55, 59, 58, 35, 61, 56, 91, 60, 69, 66, 71, 68, 68, 51, 74, 62, 67, 80, 68, 85, 63, 62, 55, 94, 75, 59, 83, 73, 33, 52, 45, 51, 79, 41, 60, 50, 66, 53, 66, 61, 90, 48, 78, 63, 61, 67, 51, 74, 50, 63, 63, 68, 64, 59, 95, 66, 81, 70, 42, 54, 69, 74, 45, 63, 59, 58, 55, 51, 70, 67, 69, 133, 76, 67, 55, 65, 108, 77, 72, 46, 57, 60, 75, 64, 82, 65, 36, 43, 58, 65, 70, 73, 51, 51, 79, 47, 58, 73, 70, 105, 70, 53, 64, 59, 45, 102, 56, 84, 65, 91, 70, 90, 65, 80, 61, 61, 63, 81, 56, 77, 57, 70, 65, 101, 63, 62, 84, 70, 62, 60, 38, 80, 61, 74, 47, 65, 55, 54, 66, 73, 56, 59, 57, 60, 68, 59, 67, 58, 57, 45, 70, 57, 71, 91, 68, 73, 62, 63, 64, 59, 58, 62, 104, 82, 78, 67, 45, 97, 95, 60, 76, 68, 65, 86, 58, 78, 48, 52, 65, 88, 71, 46, 104, 76, 72, 53, 68, 71, 53, 57, 56, 68, 60, 67, 62, 71, 75, 60, 57, 69, 59, 62, 57, 60, 76, 51, 63, 68, 74, 60, 82, 70, 60, 62, 55, 56, 55, 99, 66, 66, 46, 57, 53, 54, 91, 62, 44, 56, 64, 83, 84, 64, 84, 74, 80, 66, 76, 71, 78, 43, 62, 70, 67, 53, 60, 86, 62, 67, 76, 56, 73, 58, 79, 56, 70, 59, 46, 55, 66, 81, 76, 57, 66, 70, 63, 71, 50, 71, 69, 74, 67, 75, 49, 116, 51, 71, 79, 57, 51, 68, 61, 63, 64, 53, 103, 104, 59, 74, 77, 71, 101, 47, 55, 82, 75, 58, 50, 59, 82, 75, 56, 92, 63, 63, 82, 69, 78, 55, 75, 74, 64, 71, 74, 56, 68, 72, 52, 53, 66, 92, 79, 43, 55, 45, 89, 75, 76, 64, 53, 60, 61, 114, 57, 114, 32, 83, 79, 60, 45, 58, 44, 61, 61, 49, 43, 50, 72, 56, 64, 53, 52, 69, 76, 71, 71, 49, 70, 58, 73, 87, 73, 57, 55, 88, 57, 61, 68, 69, 53, 70, 67, 72, 55, 73, 63, 46, 53, 82, 64, 78, 54, 75, 66, 76, 82, 56, 76, 56, 81, 78, 79, 54, 64, 59, 68, 55, 50, 49, 73, 49, 53, 87, 76, 68, 75, 48, 80, 55, 65, 62, 101, 61, 65, 51, 70, 54, 64, 69, 53, 59, 56, 81, 58, 72, 64, 71, 66, 58, 58, 67, 76, 73, 52, 59, 62, 62, 59, 76, 93, 52, 83, 63, 58, 49, 61, 58, 57, 53, 58, 71, 54, 55, 65, 60, 72, 55, 63, 41, 66, 54, 42, 62, 77, 63, 59, 59, 61, 76, 54, 61, 68, 71, 45, 77, 57, 69, 88, 69, 62, 65, 49, 66, 64, 50, 39, 88, 81, 76, 60, 84, 77, 68, 58, 69, 56, 101, 50, 81, 91, 44, 54, 62, 60, 59, 63, 76, 62, 48, 86, 74, 60, 73, 80, 90, 63, 56, 95, 61, 70, 39, 45, 47, 51, 61, 59, 68, 63, 54, 71, 72, 93, 46, 65, 60, 77, 63, 61, 160, 84, 87, 58, 52, 138, 56, 77, 67, 59, 70, 68, 56, 83, 60, 66, 47, 75, 78, 66, 65, 64, 37, 44, 58, 79, 85, 89, 52, 62, 44, 54, 104, 82, 62, 80, 64, 53, 48, 60, 81, 93, 49, 59, 66, 77, 64, 67, 60, 52, 62, 73, 53, 76, 54, 58, 74, 77, 50, 58, 64, 86, 38, 70, 61, 68, 72, 78, 64, 54, 61, 72, 59, 59, 63, 62, 57, 69, 56, 63, 56, 75, 52, 59, 64, 60, 81, 54, 49, 66, 68, 48, 67, 71, 61, 55, 51, 70, 49, 67, 78, 58, 70, 63, 58, 50, 61, 63, 48, 59, 69, 57, 88, 56, 84, 60, 71, 77, 59, 69, 76, 61, 71, 49, 74, 75, 60, 66, 68, 77, 62, 66, 81, 52, 72, 77, 48, 66, 50, 69, 68, 53, 64, 58, 76, 67, 67, 48, 73, 61, 56, 81, 52, 82, 77, 101, 50, 68, 71, 65, 75, 68, 66, 53, 77, 62, 59, 65, 55, 63, 56, 49, 72, 81, 110, 61, 67, 55, 76, 78, 58, 57, 59, 58, 64, 71, 80, 49, 43, 61, 86, 57, 66, 54, 67, 52, 62, 57, 52, 50, 92, 74, 53, 69, 71, 49, 81, 76, 58, 74, 83, 60, 42, 62, 64, 79, 72, 69, 44, 62, 55, 63, 61, 77, 97, 74, 56, 69, 67, 69, 66, 102, 70, 57, 52, 55, 49, 77, 73, 41, 66, 79, 71, 56, 67, 79, 66, 67, 46, 64, 88, 56, 72, 66, 76, 68, 66, 80, 77, 81, 91, 93, 73, 73, 79, 65, 63, 57, 61, 47, 61, 83, 71, 69, 53, 79, 68, 47, 67, 57, 88, 71, 65, 54, 52, 82, 70, 72, 56, 48, 41, 78, 62, 76, 64, 53, 99, 67, 69, 70, 63, 67, 59, 80, 68, 59, 91, 74, 64, 79, 52, 105, 56, 61, 50, 70, 79, 44, 81, 101, 55, 67, 89, 68, 72, 64, 84, 72, 74, 87, 65, 69, 67, 83, 60, 69, 59, 61, 79, 69, 123, 71, 43, 61, 59, 60, 49, 73, 67, 58, 78, 38, 68, 69, 56, 83, 95, 73, 83, 56, 52, 39, 71, 74, 53, 59, 63, 61, 49, 60, 53, 71, 71, 48, 49, 69, 74, 51, 69, 79, 67, 69, 54, 70, 77, 69, 61, 76, 57, 60, 62, 54, 49, 56, 84, 92, 81, 73, 53, 81, 63, 69, 94, 56, 66, 58, 89, 61, 72, 64, 58, 63, 57, 63, 58, 69, 79, 64, 52, 62, 64, 46, 48, 60, 87, 50, 69, 67, 81, 60, 69, 79, 79, 76, 75, 40, 45, 76, 37, 83, 66, 69, 54, 70, 52, 52, 56, 69, 53, 79, 81, 97, 52, 77, 54, 44, 73, 62, 72, 52, 59, 107, 66, 69, 53, 61, 65, 74, 56, 73, 65, 55, 70, 54, 55, 63, 61, 68, 72, 59, 48, 76, 39, 51, 56, 30, 80, 67, 60, 69, 41, 51, 78, 89, 42, 52, 62, 77, 80, 97, 53, 62, 60, 41, 65, 67, 66, 73, 67, 71, 93, 59, 62, 65, 72, 56, 67, 74, 72, 99, 74, 54, 62, 61, 67, 81, 60, 58, 56, 43, 63, 54, 51, 120, 89, 58, 70, 60, 71, 52, 50, 61, 51, 39, 68, 68, 48, 67, 60, 61, 75, 61, 73, 47, 51, 67, 67, 81, 89, 81, 76, 52, 66, 100, 87, 75, 52, 72, 47, 77, 72, 61, 66, 57, 67, 65, 71, 54, 75, 61, 48, 60, 56, 60, 66, 62, 75, 70, 67, 62, 63, 40, 52, 49, 77, 50, 68, 61, 88, 65, 73, 80, 72, 64, 73, 61, 56, 61, 68, 76, 68, 55, 57, 86, 69, 44, 60, 40, 117, 67, 59, 70, 66, 66, 99, 93, 98, 54, 56, 51, 68, 71, 46, 74, 71, 59, 63, 81, 59, 60, 109, 61, 67, 75, 55, 70, 69, 76, 63, 57, 58, 60, 79, 54, 67, 87, 65, 58, 68, 74, 75, 71, 60, 63, 68, 61, 86, 82, 60, 79, 62, 67, 88, 61, 57, 42, 78, 51, 68, 57, 88, 71, 94, 70, 73, 50, 76, 67, 48, 67, 81, 70, 73, 56, 69, 62, 52, 62, 60, 55, 52, 52, 52, 61, 91, 62, 63, 61, 57, 55, 72, 66, 72, 53, 68, 58, 48, 65, 57, 79, 63, 63, 70, 56, 56, 66, 93, 55, 49, 58, 74, 64, 62, 92, 80, 62, 58, 66, 65, 39, 80, 57, 84, 63, 50, 82, 69, 57, 54, 72, 61, 74, 54, 69, 71, 66, 74, 62, 57, 62, 114, 55, 58, 58, 59, 74, 51, 67, 67, 62, 57, 56, 79, 66, 56, 68, 75, 88, 71, 59, 73, 68, 50, 73, 60, 75, 75, 80, 98, 79, 64, 61, 84, 56, 61, 51, 48, 41, 102, 50, 77, 55, 51, 49, 60, 55, 66, 59, 75, 93, 62, 75, 57, 93, 55, 55, 66, 70, 125, 49, 85, 75, 116, 75, 58, 87, 58, 66, 64, 58, 67, 66, 58, 72, 59, 69, 60, 51, 81, 59, 57, 62, 66, 54, 85, 43, 62, 46, 56, 58, 62, 60, 73, 45, 77, 73, 44, 116, 75, 66, 76, 49, 106, 51, 83, 49, 66, 62, 53, 57, 108, 55, 52, 55, 61, 70, 63, 79, 76, 52, 69, 59, 49, 66, 61, 68, 121, 58, 81, 98, 68, 63, 66, 92, 62, 53, 76, 65, 69, 78, 65, 74, 51, 56, 64, 56, 81, 61, 68, 83, 71, 78, 75, 56, 73, 68, 62, 55, 72, 74, 61, 77, 70, 77, 79, 82, 56, 83, 80, 60, 74, 53, 63, 92, 69, 66, 62, 88, 81, 85, 67, 62, 51, 66, 60, 60, 49, 70, 56, 57, 63, 103, 48, 66, 44, 67, 47, 61, 68, 59, 64, 58, 61, 85, 56, 60, 40, 74, 61, 44, 71, 50, 71, 63, 77, 49, 75, 53, 88, 54, 81, 62, 102, 57, 54, 56, 81, 62, 56, 57, 71, 75, 78, 66, 58, 73, 53, 75, 61, 60, 63, 67, 75, 55, 61, 45, 67, 59, 67, 82, 66, 52, 61, 52, 53, 49, 68, 88, 46, 49, 57, 75, 76, 69, 124, 60, 56, 63, 59, 136, 56, 67, 59, 66, 84, 51, 64, 70, 50, 73, 52, 54, 72, 80, 84, 55, 76, 61, 94, 74, 95, 43, 64, 67, 61, 56, 115, 80, 66, 73, 68, 54, 66, 48, 53, 78, 74, 71, 53, 64, 76, 76, 58, 50, 75, 71, 58, 102, 57, 51, 67, 73, 58, 62, 69, 69, 73, 58, 78, 55, 44, 80, 61, 60, 61, 73, 71, 71, 63, 70, 55, 58, 64, 61, 60, 60, 84, 72, 51, 52, 57, 53, 51, 47, 51, 63, 56, 68, 58, 56, 60, 79, 81, 61, 62, 87, 57, 60, 52, 80, 56, 80, 43, 69, 55, 73, 105, 69, 69, 56, 60, 58, 53, 116, 89, 64, 87, 63, 82, 51, 73, 87, 51, 44, 55, 71, 59, 54, 52, 81, 70, 81, 54, 41, 68, 91, 49, 85, 61, 60, 55, 72, 49, 44, 88, 73, 60, 66, 50, 69, 69, 51, 86, 74, 46, 56, 44, 48, 54, 68, 54, 63, 83, 60, 80, 68, 49, 37, 97, 87, 73, 52, 45, 75, 58, 83, 67, 56, 71, 65, 64, 57, 53, 61, 75, 56, 66, 55, 72, 45, 64, 92, 64, 82, 71, 72, 74, 52, 64, 68, 69, 75, 65, 61, 64, 63, 64, 61, 60, 71, 67, 74, 55, 63, 69, 63, 47, 85, 60, 53, 42, 61, 81, 59, 44, 79, 61, 40, 51, 62, 59, 52, 73, 69, 51, 64, 53, 57, 51, 67, 69, 67, 47, 54, 87, 90, 58, 81, 66, 80, 46, 45, 67, 56, 61, 136, 64, 64, 92, 86, 72, 59, 64, 48, 57, 67, 60, 87, 79, 57, 62, 66, 81, 65, 82, 53, 82, 61, 47, 54, 63, 70, 72, 102, 55, 94, 60, 79, 72, 38, 44, 65, 64, 68, 64, 49, 72, 75, 82, 84, 68, 54, 55, 81, 52, 74, 67, 75, 46, 52, 80, 60, 55, 61, 88, 62, 82, 71, 58, 71, 76, 63, 89, 74, 45, 80, 55, 96, 68, 69, 78, 90, 62, 101, 82, 78, 53, 55, 60, 44, 81, 50, 59, 53, 66, 61, 105, 48, 58, 60, 76, 96, 78, 74, 59, 56, 85, 85, 51, 56, 63, 73, 93, 91, 50, 71, 52, 41, 68, 55, 72, 54, 60, 63, 65, 56, 70, 59, 52, 47, 81, 60, 87, 68, 76, 64, 88, 42, 53, 54, 65, 56, 69, 68, 62, 58, 87, 60, 62, 69, 68, 81, 53, 64, 67, 53, 41, 57, 54, 51, 98, 58, 56, 75, 71, 83, 51, 66, 84, 48, 95, 79, 73, 71, 67, 66, 67, 90, 64, 88, 51, 52, 64, 63, 67, 76, 93, 76, 51, 71, 71, 82, 46, 52, 58, 59, 64, 65, 70, 70, 66, 69, 52, 68, 56, 72, 73, 76, 59, 73, 60, 60, 46, 68, 74, 66, 62, 48, 70, 46, 46, 68, 82, 53, 90, 62, 56, 69, 77, 53, 57, 50, 54, 46, 72, 62, 76, 89, 107, 72, 57, 64, 48, 67, 46, 72, 79, 46, 66, 74, 59, 56, 57, 64, 71, 64, 75, 67, 54, 67, 58, 66, 68, 78, 63, 79, 61, 64, 80, 61, 47, 63, 75, 92, 61, 64, 54, 67, 76, 53, 63, 64, 69, 66, 54, 62, 76, 62, 68, 68, 58, 75, 59, 61, 85, 69, 88, 64, 72, 77, 62, 77, 90, 96, 90, 58, 46, 88, 64, 65, 64, 62, 80, 69, 48, 74, 60, 78, 65, 53, 59, 58, 67, 49, 62, 55, 84, 91, 58, 65, 106, 77, 64, 39, 51, 65, 83, 55, 89, 74, 93, 73, 76, 56, 70, 44, 74, 63, 76, 65, 67, 72, 58, 65, 83, 49, 56, 89, 66, 58, 83, 89, 84, 102, 60, 57, 63, 81, 72, 60, 71, 47, 77, 60, 74, 74, 55, 68, 68, 65, 76, 71, 46, 93, 99, 62, 67, 62, 75, 66, 66, 70, 75, 75, 63, 76, 69, 49, 66, 77, 72, 64, 76, 81, 78, 50, 83, 80, 71, 61, 70, 56, 57, 71, 60, 71, 58, 73, 84, 68, 72, 53, 82, 80, 68, 75, 62, 61, 59, 56, 63, 54, 77, 69, 107, 55, 63, 50, 56, 70, 77, 40, 69, 47, 66, 62, 56, 60, 112, 55, 59, 48, 73, 54, 64, 75, 51, 62, 66, 60, 63, 82, 49, 83, 90, 80, 65, 61, 48, 62, 64, 67, 63, 81, 91, 62, 76, 58, 70, 62, 64, 66, 73, 67, 35, 58, 66, 61, 67, 65, 79, 49, 56, 64, 64, 59, 48, 55, 83, 69, 67, 59, 61, 58, 109, 55, 80, 66, 71, 66, 52, 63, 66, 63, 61, 95, 79, 71, 64, 62, 62, 99, 67, 81, 66, 68, 56, 87, 74, 40, 57, 54, 80, 75, 40, 52, 69, 87, 44, 63, 58, 50, 57, 60, 89, 66, 55, 45, 60, 59, 82, 68, 65, 85, 56, 74, 69, 68, 53, 73, 83, 63, 98, 65, 68, 70, 82, 65, 70, 84, 63, 44, 50, 57, 80, 67, 71, 71, 76, 61, 69, 59, 73, 74, 56, 73, 49, 58, 72, 73, 74, 70, 52, 57, 96, 88, 49, 66, 60, 52, 64, 126, 72, 56, 87, 52, 102, 57, 100, 92, 61, 57, 54, 55, 56, 56, 77, 65, 88, 80, 72, 85, 66, 58, 73, 66, 66, 49, 68, 75, 77, 72, 78, 88, 68, 72, 79, 70, 63, 74, 61, 64, 73, 63, 66, 52, 54, 70, 51, 73, 68, 51, 80, 75, 53, 101, 69, 55, 64, 90, 49, 50, 81, 70, 45, 84, 72, 54, 114, 81, 66, 85, 84, 52, 66, 61, 63, 60, 73, 55, 55, 67, 56, 70, 69, 70, 51, 51, 58, 46, 49, 67, 61, 53, 56, 76, 65, 46, 72, 54, 67, 63, 45, 60, 67, 65, 67, 89, 50, 53, 49, 65, 63, 42, 65, 55, 81, 56, 72, 53, 59, 61, 59, 70, 72, 79, 85, 69, 44, 65, 58, 73, 67, 64, 53, 72, 78, 64, 53, 69, 50, 110, 61, 57, 59, 78, 72, 82, 46, 61, 65, 62, 58, 53, 48, 71, 70, 61, 99, 114, 75, 90, 50, 59, 68, 57, 63, 44, 116, 64, 66, 66, 42, 132, 62, 62, 59, 60, 64, 63, 100, 96, 86, 66, 76, 48, 58, 65, 58, 61, 48, 77, 90, 80, 54, 59, 51, 65, 57, 54, 106, 72, 65, 69, 50, 46, 52, 59, 89, 72, 57, 50, 64, 82, 84, 66, 73, 40, 56, 33, 70, 106, 49, 84, 64, 59, 66, 69, 64, 65, 71, 55, 65, 58, 68, 75, 41, 67, 66, 78, 55, 63, 77, 50, 65, 51, 61, 57, 51, 83, 65, 63, 45, 47, 80, 84, 63, 66, 45, 64, 69, 71, 52, 63, 60, 52, 40, 69, 52, 56, 61, 46, 64, 73, 56, 64, 55, 46, 48, 60, 61, 56, 91, 67, 61, 98, 42, 53, 85, 59, 56, 40, 57, 68, 61, 91, 74, 61, 54, 68, 59, 59, 68, 57, 61, 62, 79, 61, 62, 59, 80, 61, 69, 68, 69, 68, 47, 72, 52, 90, 57, 67, 56, 94, 63, 50, 76, 55, 58, 54, 72, 73, 67, 69, 89, 74, 58, 47, 71, 48, 81, 66, 110, 78, 48, 60, 73, 65, 74, 63, 89, 57, 71, 65, 64, 44, 71, 46, 87, 69, 96, 69, 58, 80, 68, 58, 60, 64, 63, 86, 67, 59, 68, 71, 88, 90, 63, 60, 93, 63, 63, 60, 67, 63, 59, 51, 41, 70, 60, 46, 84, 94, 76, 58, 61, 46, 73, 63, 55, 77, 80, 43, 54, 69, 57, 53, 45, 64, 65, 54, 59, 51, 66, 56, 59, 56, 76, 55, 79, 90, 70, 78, 53, 86, 60, 78, 78, 63, 43, 102, 63, 62, 75, 62, 70, 61, 66, 56, 68, 59, 55, 73, 60, 60, 73, 71, 106, 46, 81, 51, 68, 65, 50, 72, 79, 53, 69, 39, 66, 89, 57, 77, 49, 55, 137, 51, 65, 66, 56, 79, 53, 70, 41, 83, 65, 62, 62, 77, 64, 76, 61, 62, 49, 62, 79, 54, 71, 93, 84, 75, 110, 59, 62, 45, 61, 57, 82, 60, 60, 72, 59, 59, 65, 68, 87, 57, 51, 88, 107, 89, 60, 62, 52, 67, 52, 52, 63, 56, 64, 61, 71, 59, 70, 76, 101, 55, 68, 48, 57, 50, 86, 83, 65, 45, 69, 73, 72, 57, 75, 63, 53, 67, 55, 61, 78, 70, 62, 65, 72, 85, 60, 71, 64, 66, 66, 55, 71, 65, 63, 73, 73, 61, 72, 68, 88, 70, 68, 63, 59, 49, 73, 68, 51, 75, 63, 68, 68, 35, 41, 51, 64, 63, 41, 67, 73, 65, 58, 86, 74, 57, 80, 68, 69, 63, 73, 67, 65, 73, 66, 61, 86, 66, 71, 67, 51, 67, 56, 63, 74, 49, 46, 68, 64, 70, 84, 59, 59, 74, 66, 69, 72, 67, 60, 59, 80, 70, 72, 59, 42, 61, 52, 92, 56, 81, 66, 70, 55, 55, 80, 56, 67, 62, 66, 78, 79, 52, 61, 60, 86, 57, 57, 31, 47, 64, 75, 34, 49, 57, 68, 67, 77, 63, 92, 68, 45, 59, 66, 83, 54, 68, 82, 77, 57, 57, 90, 69, 66, 57, 101, 57, 53, 72, 93, 62, 52, 83, 57, 91, 62, 57, 71, 55, 69, 65, 59, 77, 60, 54, 59, 43, 83, 104, 65, 55, 44, 61, 72, 61, 85, 60, 46, 66, 69, 65, 58, 99, 72, 75, 57, 61, 74, 69, 55, 56, 63, 70, 110, 88, 57, 51, 54, 87, 56, 62, 70, 87, 77, 78, 43, 67, 61, 54, 80, 64, 70, 59, 73, 55, 57, 47, 70, 61, 52, 63, 71, 66, 83, 37, 55, 56, 74, 55, 81, 44, 75, 69, 97, 72, 51, 75, 52, 79, 60, 57, 73, 63, 62, 63, 118, 52, 65, 66, 69, 74, 59, 115, 105, 80, 55, 67, 51, 54, 66, 55, 72, 50, 62, 65, 70, 64, 54, 82, 58, 56, 51, 65, 53, 56, 115, 53, 64, 66, 64, 84, 73, 57, 64, 55, 63, 57, 58, 75, 65, 71, 66, 64, 79, 75, 89, 65, 89, 53, 67, 67, 79, 57, 52, 50, 66, 77, 72, 45, 48, 52, 97, 59, 81, 57, 108, 58, 63, 80, 108, 50, 44, 70, 88, 75, 81, 75, 68, 54, 70, 74, 64, 69, 60, 52, 47, 46, 42, 69, 87, 35, 57, 57, 47, 61, 46, 74, 65, 56, 82, 63, 60, 85, 59, 81, 92, 59, 61, 38, 59, 53, 67, 73, 64, 43, 48, 65, 53, 48, 87, 75, 62, 76, 57, 74, 57, 94, 79, 64, 83, 60, 84, 68, 53, 52, 61, 60, 74, 55, 57, 54, 100, 51, 73, 54, 136, 18, 67, 57, 49, 65, 58, 52, 77, 47, 63, 45, 79, 67, 49, 67, 60, 89, 54, 61, 84, 90, 54, 87, 68, 60, 70, 54, 105, 95, 59, 68, 63, 65, 72, 67, 67, 38, 86, 94, 67, 52, 63, 76, 64, 52, 68, 74, 61, 75, 56, 53, 50, 93, 84, 67, 72, 72, 136, 60, 62, 53, 120, 76, 76, 72, 68, 60, 68, 63, 65, 62, 72, 97, 54, 65, 63, 76, 74, 66, 63, 61, 75, 75, 81, 65, 71, 54, 64, 76, 50, 67, 72, 70, 83, 47, 59, 111, 82, 53, 96, 57, 70, 64, 85, 74, 69, 83, 73, 49, 37, 48, 64, 61, 79, 68, 46, 48, 57, 71, 56, 65, 67, 78, 63, 62, 117, 60, 85, 74, 73, 79, 57, 84, 63, 61, 64, 61, 55, 87, 58, 65, 63, 59, 59, 54, 77, 66, 52, 94, 51, 78, 77, 56, 69, 71, 57, 50, 62, 72, 72, 83, 66, 65, 76, 69, 54, 46, 75, 64, 62, 57, 64, 63, 55, 68, 54, 70, 83, 70, 71, 78, 43, 68, 62, 69, 65, 50, 57, 77, 63, 51, 85, 56, 48, 59, 69, 81, 65, 56, 71, 58, 60, 96, 68, 63, 35, 68, 63, 46, 54, 75, 73, 59, 81, 48, 77, 70, 55, 49, 47, 60, 83, 52, 58, 52, 54, 71, 63, 55, 67, 84, 91, 65, 54, 67, 46, 83, 65, 48, 54, 55, 63, 44, 74, 71, 84, 59, 59, 59, 72, 61, 54, 53, 53, 60, 75, 107, 70, 70, 62, 66, 54, 61, 114, 65, 61, 55, 61, 136, 69, 60, 69, 81, 65, 63, 54, 78, 59, 74, 82, 57, 66, 77, 82, 62, 81, 74, 90, 76, 63, 50, 70, 53, 62, 65, 110, 60, 70, 72, 56, 57, 61, 61, 72, 83, 67, 58, 44, 70, 63, 65, 73, 70, 75, 74, 66, 67, 51, 93, 67, 56, 63, 81, 54, 71, 63, 56, 61, 77, 69, 82, 45, 76, 51, 96, 64, 76, 59, 74, 67, 85, 79, 61, 59, 76, 66, 78, 65, 69, 86, 77, 54, 56, 35, 48, 74, 62, 57, 53, 53, 57, 71, 46, 52, 67, 50, 65, 49, 73, 66, 81, 67, 55, 66, 74, 63, 57, 65, 42, 67, 62, 46, 45, 44, 64, 68, 78, 58, 80, 74, 90, 74, 64, 55, 80, 52, 53, 69, 76, 70, 89, 69, 50, 71, 66, 46, 60, 71, 60, 65, 78, 58, 52, 63, 52, 56, 52, 59, 80, 65, 70, 64, 69, 62, 65, 57, 68, 76, 66, 57, 73, 83, 61, 94, 53, 45, 50, 92, 65, 85, 69, 51, 65, 51, 76, 92, 66, 71, 56, 49, 65, 74, 54, 89, 67, 53, 75, 68, 61, 67, 66, 57, 61, 60, 66, 59, 62, 58, 54, 84, 81, 65, 66, 45, 48, 71, 82, 70, 68, 65, 57, 53, 65, 48, 69, 67, 51, 57, 62, 58, 55, 76, 67, 82, 65, 75, 57, 52, 56, 68, 62, 59, 56, 64, 68, 54, 59, 58, 61, 68, 64, 55, 67, 70, 85, 50, 68, 71, 69, 54, 48, 85, 72, 64, 95, 54, 67, 63, 66, 75, 68, 82, 54, 54, 64, 61, 69, 61, 61, 69, 67, 101, 62, 60, 71, 61, 50, 59, 48, 68, 65, 51, 74, 69, 97, 65, 74, 61, 64, 52, 86, 71, 65, 64, 46, 80, 83, 84, 78, 46, 79, 65, 89, 61, 74, 63, 47, 84, 75, 59, 71, 76, 87, 65, 70, 58, 62, 42, 61, 72, 83, 80, 56, 63, 68, 75, 52, 72, 66, 76, 57, 61, 96, 89, 77, 71, 68, 58, 36, 58, 58, 67, 51, 54, 77, 73, 66, 68, 56, 67, 80, 75, 65, 66, 49, 81, 70, 71, 74, 70, 79, 58, 91, 66, 47, 56, 67, 52, 75, 54, 64, 72, 66, 67, 66, 56, 69, 79, 58, 64, 59, 65, 61, 61, 75, 56, 58, 64, 62, 68, 66, 65, 58, 79, 63, 86, 72, 67, 62, 70, 72, 60, 62, 63, 51, 51, 69, 52, 76, 87, 70, 58, 76, 78, 63, 63, 78, 77, 49, 93, 84, 84, 57, 80, 72, 62, 70, 58, 81, 69, 82, 65, 62, 61, 71, 52, 71, 61, 53, 77, 58, 61, 65, 42, 69, 71, 47, 46, 57, 74, 62, 64, 49, 61, 66, 65, 82, 67, 86, 58, 73, 50, 65, 57, 47, 81, 63, 68, 64, 40, 80, 61, 60, 90, 62, 61, 64, 44, 48, 65, 73, 55, 54, 57, 80, 89, 87, 121, 42, 48, 66, 77, 54, 50, 64, 95, 61, 62, 77, 62, 42, 75, 80, 72, 74, 48, 66, 46, 66, 71, 52, 58, 59, 56, 70, 68, 60, 82, 53, 66, 59, 62, 74, 69, 49, 49, 37, 81, 71, 48, 67, 74, 62, 87, 80, 74, 70, 63, 81, 47, 69, 74, 74, 48, 50, 68, 57, 56, 49, 71, 62, 120, 51, 72, 66, 68, 82, 73, 48, 59, 52, 72, 58, 58, 52, 42, 63, 79, 70, 61, 58, 83, 59, 63, 72, 76, 51, 72, 69, 104, 59, 57, 49, 72, 52, 60, 53, 91, 79, 73, 63, 100, 60, 68, 62, 82, 51, 77, 73, 69, 37, 68, 57, 90, 54, 61, 85, 73, 77, 80, 104, 75, 57, 56, 55, 70, 47, 60, 59, 63, 54, 52, 65, 57, 52, 64, 47, 79, 52, 67, 55, 72, 78, 78, 53, 54, 73, 49, 47, 52, 83, 54, 95, 64, 70, 56, 57, 48, 93, 69, 65, 67, 80, 84, 52, 57, 52, 76, 63, 55, 63, 73, 62, 66, 47, 49, 49, 73, 59, 81, 86, 88, 64, 88, 62, 56, 79, 74, 65, 64, 61, 79, 62, 102, 56, 65, 71, 67, 67, 60, 65, 69, 53, 57, 70, 57, 50, 83, 41, 54, 65, 59, 64, 73, 77, 54, 64, 60, 78, 67, 73, 75, 85, 73, 61, 77, 62, 40, 68, 92, 49, 59, 50, 66, 61, 52, 62, 67, 66, 70, 72, 46, 70, 49, 66, 69, 57, 49, 64, 54, 70, 58, 62, 67, 60, 65, 77, 52, 66, 75, 65, 75, 49, 135, 54, 52, 66, 52, 46, 59, 61, 76, 63, 65, 51, 73, 61, 74, 90, 58, 108, 57, 58, 81, 63, 67, 74, 55, 70, 85, 55, 94, 81, 51, 73, 46, 53, 74, 58, 73, 67, 57, 74, 58, 59, 65, 77, 74, 58, 67, 59, 70, 54, 58, 75, 63, 66, 101, 51, 55, 63, 72, 74, 76, 71, 119, 51, 54, 53, 46, 79, 61, 66, 70, 84, 70, 57, 56, 66, 58, 71, 65, 64, 57, 69, 64, 65, 56, 94, 77, 56, 60, 57, 85, 64, 67, 76, 75, 65, 58, 95, 72, 70, 65, 62, 59, 58, 76, 83, 58, 58, 63, 71, 57, 97, 70, 47, 67, 66, 58, 61, 58, 65, 73, 49, 55, 62, 64, 50, 80, 70, 72, 74, 66, 75, 62, 82, 55, 74, 50, 67, 72, 59, 70, 63, 54, 68, 64, 62, 84, 58, 63, 90, 73, 82, 78, 51, 65, 57, 63, 53, 72, 68, 64, 108, 56, 64, 74, 60, 70, 81, 87, 58, 68, 56, 61, 75, 47, 60, 78, 80, 94, 67, 86, 68, 56, 52, 75, 77, 71, 65, 59, 93, 59, 91, 65, 42, 92, 68, 73, 90, 50, 54, 61, 54, 52, 48, 60, 59, 63, 63, 67, 73, 64, 72, 77, 60, 65, 77, 71, 72, 67, 65, 56, 50, 60, 67, 70, 57, 72, 45, 71, 50, 50, 54, 73, 64, 59, 63, 62, 68, 57, 81, 112, 70, 64, 69, 62, 54, 59, 57, 63, 64, 51, 82, 65, 55, 73, 84, 66, 99, 72, 69, 75, 66, 59, 71, 88, 68, 50, 54, 54, 137, 121, 56, 66, 66, 65, 60, 59, 71, 50, 57, 74, 56, 55, 62, 58, 58, 94, 70, 55, 59, 53, 62, 78, 63, 68, 71, 83, 56, 58, 73, 75, 61, 46, 52, 59, 68, 64, 63, 61, 44, 57, 59, 62, 49, 70, 66, 47, 54, 52, 65, 61, 53, 49, 63, 50, 62, 65, 58, 70, 86, 56, 54, 59, 52, 73, 54, 59, 62, 53, 86, 63, 85, 71, 67, 55, 55, 58, 76, 52, 78, 71, 70, 66, 70, 75, 107, 74, 67, 65, 72, 63, 90, 57, 68, 68, 69, 55, 75, 68, 70, 79, 68, 61, 65, 63, 84, 74, 61, 59, 61, 78, 68, 51, 92, 67, 63, 63, 67, 60, 60, 59, 70, 58, 63, 50, 57, 68, 67, 59, 77, 72, 67, 81, 58, 86, 89, 49, 54, 71, 51, 63, 94, 54, 74, 66, 45, 64, 44, 56, 54, 55, 84, 57, 61, 78, 48, 79, 69, 60, 60, 71, 63, 64, 51, 67, 43, 55, 60, 55, 65, 77, 60, 73, 83, 72, 69, 83, 70, 57, 49, 56, 64, 67, 60, 50, 62, 54, 85, 60, 56, 59, 63, 58, 85, 63, 55, 86, 59, 52, 55, 68, 41, 101, 81, 66, 61, 53, 72, 67, 60, 70, 88, 76, 63, 65, 72, 69, 43, 62, 53, 55, 53, 44, 64, 66, 121, 57, 80, 58, 55, 71, 65, 75, 47, 68, 69, 66, 56, 64, 105, 81, 70, 66, 58, 53, 66, 96, 82, 80, 61, 71, 58, 64, 67, 63, 97, 51, 73, 55, 67, 59, 52, 79, 53, 89, 96, 76, 47, 56, 63, 90, 86, 99, 77, 60, 57, 71, 56, 61, 53, 64, 60, 103, 73, 66, 139, 73, 70, 80, 67, 65, 84, 61, 48, 66, 51, 54, 93, 68, 68, 68, 60, 53, 53, 62, 59, 71, 84, 57, 72, 57, 80, 67, 42, 54, 66, 78, 55, 54, 71, 75, 63, 59, 52, 58, 112, 65, 58, 67, 59, 86, 72, 64, 142, 84, 64, 59, 82, 68, 108, 53, 56, 67, 52, 73, 80, 73, 63, 76, 70, 69, 58, 72, 69, 79, 48, 73, 79, 67, 66, 60, 81, 58, 82, 57, 94, 100, 58, 72, 63, 45, 56, 48, 58, 49, 86, 59, 69, 63, 60, 71, 70, 65, 71, 50, 75, 69, 65, 65, 50, 65, 78, 58, 57, 53, 50, 54, 63, 72, 57, 70, 80, 61, 63, 64, 52, 52, 70, 62, 60, 72, 58, 52, 53, 75, 53, 67, 55, 54, 62, 66, 77, 52, 85, 47, 50, 53, 62, 80, 97, 57, 69, 76, 71, 89, 57, 63, 43, 68, 66, 61, 52, 75, 87, 71, 62, 57, 54, 63, 75, 67, 60, 69, 61, 51, 88, 54, 60, 63, 54, 58, 53, 61, 95, 71, 58, 76, 82, 51, 62, 60, 57, 61, 62, 81, 60, 65, 67, 58, 62, 49, 62, 65, 68, 60, 59, 82, 76, 100, 68, 71, 67, 72, 56, 53, 40, 66, 70, 56, 60, 77, 47, 70, 54, 88, 67, 51, 57, 70, 68, 62, 62, 59, 45, 65, 92, 55, 58, 56, 50, 65, 68, 59, 49, 76, 59, 65, 55, 42, 61, 70, 50, 79, 70, 70, 56, 54, 62, 56, 54, 70, 66, 91, 62, 62, 79, 63, 60, 54, 46, 68, 82, 44, 66, 82, 56, 81, 61, 62, 75, 66, 45, 71, 61, 59, 56, 60, 69, 57, 74, 61, 72, 62, 66, 53, 73, 63, 69, 67, 72, 78, 61, 54, 50, 66, 73, 55, 79, 51, 88, 57, 49, 70, 62, 48, 67, 83, 61, 71, 50, 55, 57, 69, 71, 83, 57, 77, 53, 57, 70, 70, 92, 87, 63, 62, 64, 71, 49, 69, 36, 50, 69, 56, 57, 55, 73, 54, 68, 66, 62, 68, 69, 70, 72, 92, 53, 71, 84, 75, 59, 61, 64, 65, 70, 83, 72, 47, 62, 56, 68, 59, 63, 74, 63, 69, 56, 59, 39, 94, 68, 74, 66, 56, 67, 65, 47, 66, 54, 66, 67, 57, 65, 58, 78, 45, 61, 61, 69, 75, 55, 83, 66, 64, 65, 98, 71, 54, 67, 54, 76, 54, 61, 51, 55, 65, 64, 62, 73, 78, 88, 56, 59, 66, 76, 52, 66, 59, 73, 53, 58, 55, 80, 63, 71, 60, 61, 51, 61, 78, 74, 73, 54, 55, 63, 81, 71, 76, 48, 99, 55, 77, 74, 63, 85, 54, 90, 82, 74, 62, 77, 66, 41, 80, 58, 59, 60, 65, 55, 49, 67, 73, 64, 63, 57, 118, 92, 49, 69, 53, 45, 64, 58, 79, 61, 70, 17, 72, 53, 63, 59, 65, 82, 58, 69, 66, 64, 51, 104, 68, 53, 65, 52, 71, 61, 47, 72, 79, 69, 59, 83, 75, 40, 85, 85, 49, 65, 69, 71, 54, 53, 56, 60, 69, 56, 50, 92, 79, 76, 64, 83, 61, 81, 81, 53, 72, 58, 104, 56, 67, 64, 47, 55, 78, 61, 58, 73, 51, 72, 65, 61, 78, 68, 64, 44, 50, 56, 65, 74, 63, 58, 77, 49, 55, 67, 91, 83, 72, 52, 50, 64, 61, 69, 77, 56, 58, 66, 71, 60, 81, 64, 70, 49, 65, 102, 59, 73, 56, 64, 80, 65, 70, 64, 62, 78, 72, 87, 85, 58, 60, 61, 94, 57, 89, 70, 64, 82, 66, 82, 64, 73, 57, 77, 69, 82, 51, 68, 74, 75, 66, 50, 89, 61, 55, 57, 64, 55, 74, 45, 66, 76, 60, 56, 88, 42, 72, 105, 74, 76, 62, 87, 54, 84, 97, 44, 63, 77, 76, 49, 69, 50, 59, 55, 61, 72, 63, 64, 62, 57, 61, 71, 61, 56, 67, 61, 55, 56, 61, 58, 68, 75, 62, 63, 69, 72, 77, 55, 47, 44, 43, 81, 65, 67, 75, 59, 64, 84, 85, 72, 87, 55, 56, 53, 67, 61, 62, 56, 109, 73, 64, 59, 77, 74, 65, 54, 54, 61, 52, 48, 55, 79, 47, 55, 57, 74, 90, 51, 78, 54, 48, 53, 60, 49, 70, 50, 61, 62, 50, 51, 67, 84, 67, 80, 45, 59, 74, 55, 72, 59, 138, 73, 48, 61, 61, 147, 123, 64, 64, 63, 74, 54, 63, 53, 55, 48, 75, 71, 70, 69, 59, 61, 68, 63, 65, 66, 65, 65, 58, 62, 69, 54, 75, 70, 65, 56, 68, 75, 43, 62, 66, 53, 67, 65, 53, 73, 66, 57, 55, 64, 55, 62, 56, 61, 98, 62, 55, 54, 48, 57, 72, 77, 56, 57, 71, 67, 50, 78, 77, 43, 58, 79, 69, 65, 66, 87, 49, 33, 61, 69, 55, 57, 55, 64, 64, 76, 67, 69, 56, 67, 92, 75, 47, 78, 66, 58, 59, 69, 54, 52, 56, 74, 77, 62, 68, 69, 59, 58, 44, 55, 67, 84, 84, 69, 113, 59, 72, 60, 69, 77, 63, 63, 89, 69, 83, 59, 60, 61, 63, 57, 92, 72, 55, 49, 69, 62, 76, 36, 80, 57, 88, 90, 58, 77, 67, 63, 80, 97, 41, 58, 50, 58, 52, 57, 61, 68, 48, 98, 57, 56, 69, 46, 57, 59, 70, 69, 63, 59, 46, 54, 65, 69, 71, 61, 103, 48, 61, 58, 95, 67, 66, 65, 76, 64, 67, 66, 66, 64, 55, 53, 43, 69, 73, 52, 53, 63, 65, 57, 68, 82, 54, 58, 84, 56, 86, 73, 68, 100, 90, 63, 88, 58, 65, 57, 65, 73, 57, 67, 68, 69, 66, 51, 70, 70, 66, 59, 46, 60, 44, 68, 43, 132, 50, 79, 51, 49, 55, 62, 64, 38, 59, 58, 82, 67, 66, 99, 66, 65, 60, 61, 63, 76, 88, 110, 84, 61, 67, 44, 66, 62, 74, 98, 86, 74, 64, 61, 52, 55, 52, 94, 73, 85, 52, 45, 52, 69, 67, 65, 85, 64, 64, 49, 65, 68, 63, 59, 59, 94, 66, 87, 93, 105, 64, 56, 53, 65, 73, 58, 62, 50, 58, 62, 60, 87, 59, 55, 59, 64, 61, 56, 54, 70, 44, 115, 73, 65, 52, 71, 68, 57, 56, 55, 100, 57, 60, 61, 77, 69, 44, 89, 63, 106, 51, 91, 60, 64, 82, 56, 55, 114, 54, 45, 61, 91, 40, 86, 67, 66, 70, 66, 65, 64, 65, 67, 86, 88, 64, 43, 55, 47, 68, 54, 108, 65, 58, 67, 44, 92, 66, 78, 73, 104, 99, 62, 69, 43, 74, 66, 53, 52, 50, 85, 72, 60, 65, 72, 65, 54, 79, 67, 53, 62, 56, 58, 67, 84, 56, 69, 46, 68, 60, 81, 62, 65, 79, 64, 53, 67, 63, 63, 66, 60, 51, 50, 70, 64, 72, 59, 84, 80, 57, 62, 75, 59, 66, 71, 71, 76, 70, 78, 78, 50, 59, 73, 65, 93, 64, 49, 58, 67, 74, 42, 58, 63, 61, 61, 57, 52, 72, 49, 63, 62, 49, 65, 52, 68, 71, 60, 81, 56, 63, 74, 63, 93, 55, 68, 64, 65, 62, 80, 69, 57, 54, 54, 67, 75, 64, 50, 68, 65, 70, 72, 55, 81, 65, 58, 67, 66, 54, 60, 62, 55, 98, 63, 93, 49, 56, 70, 53, 96, 65, 75, 73, 57, 57, 55, 67, 49, 63, 66, 66, 79, 51, 55, 82, 72, 65, 64, 48, 69, 54, 73, 71, 68, 69, 64, 54, 76, 61, 48, 57, 59, 66, 70, 64, 49, 46, 88, 91, 58, 65, 61, 56, 90, 57, 44, 51, 68, 97, 60, 62, 57, 63, 65, 73, 72, 53, 79, 67, 73, 90, 45, 72, 54, 66, 82, 65, 62, 83, 52, 80, 54, 67, 67, 59, 56, 60, 61, 56, 50, 75, 76, 68, 81, 76, 60, 69, 68, 63, 60, 67, 59, 59, 50, 58, 71, 59, 54, 63, 56, 73, 56, 59, 56, 62, 61, 53, 64, 63, 71, 40, 47, 78, 70, 56, 82, 74, 100, 73, 97, 58, 67, 56, 55, 68, 43, 77, 69, 59, 50, 73, 53, 49, 69, 69, 56, 80, 61, 43, 65, 84, 57, 60, 83, 80, 63, 59, 100, 65, 51, 108, 52, 57, 72, 56, 96, 56, 64, 102, 55, 69, 71, 50, 55, 73, 41, 79, 71, 53, 57, 56, 70, 49, 56, 70, 68, 65, 69, 55, 67, 73, 46, 66, 52, 61, 57, 102, 44, 59, 74, 90, 54, 69, 49, 71, 68, 63, 64, 61, 60, 69, 60, 65, 57, 90, 80, 44, 65, 57, 68, 63, 71, 83, 55, 79, 81, 67, 44, 62, 89, 78, 51, 66, 48, 78, 77, 104, 57, 53, 82, 66, 53, 99, 68, 67, 67, 80, 52, 58, 101, 52, 61, 70, 46, 53, 57, 58, 73, 62, 53, 48, 57, 50, 67, 73, 44, 64, 57, 54, 57, 99, 76, 93, 69, 72, 62, 56, 64, 59, 69, 80, 100, 51, 71, 61, 61, 67, 77, 74, 65, 52, 85, 66, 100, 63, 74, 67, 69, 60, 65, 53, 46, 61, 70, 54, 74, 82, 74, 70, 74, 70, 66, 75, 86, 70, 54, 60, 86, 73, 64, 67, 80, 59, 71, 65, 68, 69, 84, 89, 47, 77, 63, 61, 62, 52, 67, 52, 38, 82, 67, 68, 87, 58, 44, 54, 69, 55, 60, 81, 62, 68, 64, 39, 68, 86, 83, 73, 65, 60, 65, 60, 37, 67, 79, 71, 71, 60, 118, 82, 94, 49, 65, 54, 70, 79, 57, 68, 60, 55, 61, 66, 79, 68, 95, 61, 75, 75, 56, 47, 73, 62, 52, 59, 59, 69, 82, 61, 61, 61, 63, 65, 65, 67, 74, 81, 70, 74, 75, 61, 59, 57, 64, 76, 46, 66, 62, 53, 71, 64, 77, 64, 68, 72, 102, 55, 63, 70, 43, 88, 47, 64, 52, 103, 53, 56, 70, 66, 54, 81, 80, 50, 66, 76, 64, 58, 61, 58, 62, 58, 69, 60, 52, 70, 74, 72, 54, 61, 69, 69, 68, 60, 56, 67, 76, 60, 53, 74, 59, 59, 70, 46, 60, 61, 62, 89, 70, 68, 63, 67, 100, 76, 75, 70, 54, 60, 82, 79, 58, 75, 54, 86, 64, 73, 59, 68, 44, 59, 70, 70, 57, 68, 75, 76, 78, 75, 117, 49, 69, 65, 74, 55, 76, 66, 72, 60, 62, 81, 65, 53, 56, 69, 71, 77, 70, 77, 51, 54, 72, 48, 74, 65, 56, 58, 76, 84, 70, 67, 68, 58, 57, 48, 53, 55, 71, 50, 76, 50, 52, 56, 48, 65, 90, 60, 51, 50, 81, 65, 77, 62, 76, 59, 52, 63, 83, 55, 62, 54, 71, 82, 67, 84, 62, 65, 59, 70, 53, 78, 54, 71, 84, 48, 81, 73, 52, 44, 52, 38, 53, 62, 60, 65, 68, 59, 57, 55, 61, 55, 75, 58, 58, 53, 46, 69, 63, 63, 52, 52, 135, 67, 74, 66, 128, 78, 64, 59, 89, 58, 72, 71, 56, 81, 93, 63, 70, 68, 37, 75, 81, 61, 67, 58, 48, 146, 53, 63, 73, 51, 52, 43, 75, 84, 59, 54, 85, 64, 47, 61, 62, 76, 63, 70, 55, 72, 57, 81, 68, 63, 48, 45, 76, 59, 52, 55, 92, 68, 58, 68, 72, 59, 85, 59, 99, 89, 41, 60, 53, 85, 59, 49, 54, 53, 76, 67, 62, 70, 166, 43, 63, 59, 52, 55, 65, 113, 61, 60, 60, 57, 59, 41, 59, 65, 69, 79, 41, 86, 59, 78, 76, 86, 46, 78, 70, 62, 48, 47, 72, 67, 59, 83, 57, 67, 60, 72, 56, 90, 52, 67, 52, 49, 97, 42, 61, 62, 65, 64, 69, 66, 88, 114, 57, 65, 56, 80, 55, 56, 61, 64, 58, 53, 64, 56, 61, 80, 56, 63, 65, 62, 64, 59, 114, 64, 48, 62, 81, 49, 62, 60, 76, 72, 64, 71, 56, 72, 60, 91, 57, 76, 68, 72, 63, 66, 75, 64, 74, 54, 51, 72, 65, 82, 90, 82, 69, 80, 51, 62, 62, 65, 58, 57, 71, 50, 85, 60, 55, 68, 57, 70, 60, 75, 61, 57, 70, 53, 61, 75, 46, 61, 65, 68, 63, 62, 60, 42, 74, 56, 58, 61, 77, 53, 89, 48, 65, 59, 69, 74, 85, 57, 88, 66, 77, 83, 60, 63, 59, 68, 114, 64, 61, 77, 58, 72, 57, 71, 37, 55, 81, 55, 65, 41, 62, 53, 88, 71, 59, 52, 56, 62, 71, 64, 73, 54, 67, 60, 62, 57, 62, 69, 54, 62, 66, 46, 78, 62, 59, 58, 59, 70, 92, 55, 46, 80, 49, 79, 68, 56, 56, 58, 95, 60, 51, 65, 100, 80, 80, 48, 56, 63, 69, 64, 61, 59, 66, 56, 68, 52, 65, 63, 53, 59, 70, 63, 76, 76, 81, 50, 56, 68, 51, 75, 62, 70, 97, 99, 47, 65, 87, 28, 55, 74, 76, 57, 85, 85, 55, 83, 46, 64, 69, 68, 52, 63, 80, 68, 76, 84, 63, 51, 72, 82, 49, 56, 57, 55, 69, 78, 51, 54, 49, 77, 58, 55, 70, 49, 51, 75, 74, 55, 60, 48, 81, 51, 76, 99, 54, 56, 63, 54, 60, 68, 57, 58, 84, 69, 53, 77, 67, 60, 84, 90, 119, 59, 56, 48, 66, 62, 62, 69, 67, 69, 55, 54, 76, 65, 98, 78, 66, 70, 75, 69, 54, 52, 70, 77, 94, 66, 54, 71, 78, 58, 70, 52, 59, 74, 67, 67, 50, 82, 54, 59, 61, 58, 65, 60, 69, 78, 71, 65, 56, 69, 75, 71, 62, 69, 73, 65, 59, 65, 60, 81, 80, 51, 42, 61, 47, 64, 80, 79, 65, 68, 50, 61, 64, 59, 74, 76, 54, 59, 110, 56, 102, 80, 81, 93, 60, 103, 87, 66, 68, 65, 56, 68, 79, 55, 68, 51, 63, 56, 54, 66, 69, 55, 40, 53, 65, 64, 60, 71, 65, 73, 67, 77, 113, 58, 69, 57, 56, 65, 57, 62, 59, 53, 56, 58, 55, 59, 79, 56, 62, 77, 65, 51, 51, 84, 81, 64, 75, 87, 73, 76, 58, 73, 77, 66, 57, 69, 87, 60, 54, 59, 67, 50, 65, 71, 86, 58, 81, 56, 68, 92, 88, 52, 57, 52, 59, 80, 71, 66, 63, 64, 75, 71, 47, 62, 55, 67, 56, 70, 77, 67, 62, 71, 62, 77, 71, 66, 64, 67, 75, 57, 98, 47, 45, 60, 46, 61, 58, 66, 65, 57, 72, 61, 60, 46, 59, 39, 65, 50, 86, 69, 54, 31, 50, 71, 60, 59, 67, 66, 98, 61, 62, 65, 93, 90, 74, 99, 55, 66, 70, 88, 70, 56, 84, 45, 62, 57, 67, 92, 61, 84, 71, 76, 66, 57, 67, 57, 77, 72, 58, 93, 68, 49, 66, 144, 73, 62, 65, 53, 55, 53, 38, 70, 98, 68, 74, 65, 67, 68, 55, 71, 57, 71, 87, 78, 59, 51, 62, 65, 75, 103, 64, 58, 62, 42, 82, 53, 71, 54, 79, 66, 61, 54, 62, 74, 63, 78, 57, 63, 65, 78, 54, 73, 77, 66, 51, 65, 63, 74, 66, 58, 78, 44, 74, 64, 69, 65, 62, 68, 44, 55, 79, 51, 72, 43, 46, 56, 35, 79, 52, 69, 101, 50, 88, 63, 80, 52, 79, 68, 68, 53, 57, 74, 90, 61, 77, 71, 31, 48, 83, 68, 77, 78, 60, 62, 68, 69, 56, 67, 50, 82, 50, 59, 70, 55, 70, 66, 43, 68, 87, 54, 61, 56, 54, 70, 75, 65, 80, 49, 86, 71, 69, 48, 52, 62, 65, 76, 58, 59, 59, 65, 59, 44, 90, 86, 101, 62, 50, 64, 62, 76, 71, 63, 55, 63, 66, 71, 61, 56, 100, 66, 77, 62, 79, 57, 70, 70, 56, 69, 70, 62, 71, 62, 78, 59, 55, 57, 57, 67, 64, 72, 73, 73, 56, 54, 57, 64, 69, 69, 60, 68, 47, 55, 81, 51, 49, 72, 55, 69, 54, 63, 73, 52, 47, 59, 70, 46, 47, 88, 64, 59, 41, 63, 83, 50, 60, 54, 74, 62, 71, 63, 76, 56, 60, 87, 72, 57, 51, 77, 73, 58, 69, 60, 72, 61, 69, 70, 64, 62, 54, 56, 53, 49, 77, 56, 43, 46, 48, 64, 60, 80, 54, 53, 58, 52, 60, 77, 74, 59, 64, 50, 94, 83, 61, 57, 68, 66, 71, 65, 76, 58, 81, 50, 69, 67, 57, 67, 52, 72, 78, 87, 91, 90, 49, 69, 78, 67, 54, 60, 64, 65, 63, 86, 72, 73, 60, 75, 62, 55, 52, 93, 54, 69, 73, 34, 56, 68, 62, 68, 62, 88, 59, 80, 81, 71, 59, 74, 77, 63, 51, 64, 48, 66, 61, 66, 72, 57, 93, 71, 65, 66, 70, 69, 69, 64, 55, 59, 36, 54, 50, 64, 61, 56, 33, 74, 56, 65, 61, 83, 65, 73, 34, 58, 64, 62, 54, 72, 62, 61, 58, 74, 64, 60, 60, 58, 89, 91, 90, 59, 90, 74, 72, 57, 64, 50, 56, 82, 68, 56, 66, 33, 63, 57, 104, 64, 57, 53, 164, 55, 75, 69, 52, 74, 58, 56, 63, 63, 65, 63, 88, 84, 55, 58, 82, 49, 60, 64, 74, 126, 53, 58, 76, 58, 53, 73, 44, 67, 73, 52, 56, 68, 72, 70, 57, 76, 66, 49, 66, 74, 68, 53, 68, 51, 55, 55, 75, 59, 62, 72, 91, 39, 62, 67, 62, 68, 91, 49, 65, 88, 54, 55, 80, 89, 78, 77, 55, 64, 51, 92, 67, 58, 167, 69, 57, 62, 56, 63, 49, 127, 54, 52, 61, 75, 74, 61, 61, 54, 56, 57, 60, 70, 71, 60, 80, 61, 41, 68, 82, 60, 41, 72, 72, 69, 57, 61, 64, 74, 71, 55, 76, 58, 62, 55, 90, 74, 87, 86, 67, 55, 45, 69, 65, 69, 110, 115, 60, 53, 71, 73, 68, 51, 61, 80, 54, 70, 59, 54, 56, 75, 60, 60, 64, 47, 49, 63, 131, 63, 69, 62, 86, 66, 84, 92, 69, 110, 58, 74, 46, 54, 66, 61, 70, 69, 66, 63, 58, 61, 56, 58, 61, 67, 61, 58, 68, 77, 61, 37, 68, 57, 49, 72, 67, 57, 60, 60, 67, 58, 57, 53, 56, 46, 58, 100, 79, 78, 46, 53, 59, 68, 79, 79, 66, 55, 53, 68, 67, 72, 65, 73, 65, 40, 55, 62, 57, 65, 64, 63, 55, 87, 74, 64, 97, 53, 64, 54, 83, 75, 55, 44, 90, 58, 99, 60, 64, 80, 66, 62, 62, 65, 70, 57, 79, 54, 97, 52, 53, 59, 54, 61, 87, 59, 70, 57, 52, 41, 60, 51, 96, 69, 66, 95, 64, 63, 68, 56, 62, 50, 68, 56, 52, 72, 53, 43, 83, 74, 59, 48, 70, 83, 60, 52, 76, 92, 105, 71, 60, 75, 106, 69, 91, 66, 58, 102, 56, 64, 57, 53, 65, 70, 63, 58, 48, 64, 63, 46, 74, 43, 50, 39, 64, 72, 83, 56, 54, 62, 81, 90, 57, 82, 45, 83, 106, 53, 45, 69, 81, 52, 59, 49, 60, 49, 67, 63, 77, 65, 53, 56, 70, 66, 67, 79, 64, 71, 50, 61, 58, 63, 58, 60, 35, 71, 62, 56, 53, 82, 52, 57, 67, 82, 74, 92, 64, 65, 84, 51, 67, 57, 84, 73, 57, 61, 63, 56, 58, 70, 76, 60, 91, 68, 64, 63, 49, 53, 82, 96, 103, 77, 63, 53, 85, 57, 80, 52, 86, 67, 73, 60, 57, 81, 52, 55, 61, 59, 62, 45, 73, 52, 60, 59, 77, 55, 43, 58, 61, 40, 60, 50, 47, 61, 70, 69, 84, 63, 58, 60, 66, 52, 67, 62, 73, 78, 74, 68, 47, 74, 72, 60, 56, 57, 76, 55, 61, 53, 64, 73, 88, 53, 63, 78, 67, 75, 57, 64, 60, 52, 55, 48, 60, 62, 81, 75, 51, 65, 73, 76, 76, 84, 67, 82, 78, 110, 85, 69, 63, 52, 54, 46, 50, 60, 72, 51, 56, 80, 67, 70, 47, 45, 55, 57, 78, 53, 58, 84, 63, 70, 88, 58, 114, 62, 91, 47, 61, 59, 47, 55, 54, 50, 73, 74, 55, 61, 88, 52, 56, 61, 66, 66, 94, 62, 66, 69, 85, 73, 65, 59, 57, 72, 44, 63, 63, 49, 57, 56, 58, 67, 89, 69, 74, 88, 68, 58, 60, 51, 58, 51, 57, 46, 58, 63, 64, 60, 50, 66, 48, 73, 63, 71, 71, 54, 63, 65, 50, 55, 82, 84, 40, 52, 58, 51, 48, 43, 73, 63, 61, 65, 102, 58, 70, 59, 87, 59, 67, 42, 78, 56, 60, 59, 64, 54, 57, 69, 51, 59, 84, 60, 54, 56, 59, 55, 64, 62, 77, 49, 86, 79, 48, 74, 90, 79, 63, 79, 70, 76, 59, 56, 69, 54, 58, 65, 61, 62, 70, 81, 58, 100, 76, 52, 79, 61, 65, 68, 62, 87, 64, 75, 75, 79, 74, 126, 46, 47, 69, 56, 81, 67, 52, 79, 72, 93, 75, 56, 55, 63, 65, 70, 67, 61, 79, 55, 49, 79, 75, 68, 109, 107, 61, 58, 65, 52, 47, 59, 56, 60, 91, 69, 64, 58, 70, 71, 49, 49, 66, 83, 57, 68, 60, 49, 56, 53, 55, 49, 44, 70, 86, 69, 62, 64, 58, 80, 57, 72, 87, 41, 56, 55, 45, 33, 69, 52, 77, 65, 70, 73, 54, 78, 92, 60, 95, 59, 83, 58, 67, 59, 68, 70, 54, 80, 70, 63, 86, 64, 47, 57, 80, 67, 59, 47, 79, 71, 71, 95, 55, 55, 90, 65, 58, 71, 77, 58, 63, 61, 69, 61, 54, 59, 57, 55, 82, 54, 62, 70, 67, 55, 70, 62, 78, 74, 54, 58, 60, 66, 86, 55, 76, 45, 64, 64, 45, 85, 60, 59, 78, 73, 65, 64, 58, 57, 54, 60, 101, 59, 58, 72, 53, 48, 63, 64, 93, 74, 53, 60, 48, 63, 54, 59, 66, 97, 66, 66, 57, 53, 118, 62, 58, 59, 70, 60, 102, 57, 66, 58, 62, 60, 61, 71, 58, 104, 58, 56, 71, 114, 64, 84, 58, 62, 69, 63, 55, 56, 63, 58, 57, 51, 49, 64, 63, 58, 59, 46, 69, 56, 70, 63, 55, 78, 63, 68, 74, 65, 66, 80, 63, 62, 58, 63, 116, 54, 74, 49, 72, 72, 57, 57, 69, 67, 64, 66, 105, 70, 89, 64, 88, 76, 70, 66, 65, 57, 52, 53, 79, 68, 58, 62, 56, 92, 70, 73, 61, 90, 60, 69, 62, 87, 54, 67, 72, 66, 41, 54, 78, 64, 57, 71, 61, 58, 59, 57, 57, 70, 82, 83, 64, 70, 55, 70, 62, 70, 68, 68, 57, 51, 58, 65, 61, 70, 109, 62, 137, 83, 54, 82, 66, 74, 55, 101, 77, 64, 51, 92, 130, 66, 53, 66, 77, 78, 54, 55, 52, 77, 80, 57, 58, 55, 73, 84, 49, 76, 60, 56, 66, 58, 59, 61, 65, 86, 72, 88, 61, 81, 80, 76, 56, 50, 71, 70, 59, 63, 62, 52, 72, 64, 94, 60, 69, 67, 66, 71, 60, 60, 77, 66, 76, 56, 67, 63, 45, 63, 50, 50, 96, 71, 57, 57, 73, 63, 71, 56, 65, 59, 61, 81, 78, 63, 80, 58, 51, 65, 62, 60, 65, 60, 55, 47, 59, 50, 72, 56, 67, 60, 62, 62, 73, 71, 63, 57, 78, 59, 62, 62, 58, 72, 83, 55, 110, 61, 80, 83, 58, 50, 69, 61, 53, 58, 58, 55, 59, 57, 63, 62, 64, 64, 82, 72, 84, 56, 52, 63, 67, 53, 76, 76, 74, 63, 72, 64, 61, 56, 58, 65, 68, 67, 76, 71, 71, 48, 67, 51, 68, 88, 44, 79, 59, 51, 105, 69, 62, 61, 92, 59, 60, 56, 64, 74, 69, 43, 52, 59, 66, 81, 63, 56, 70, 55, 79, 69, 103, 62, 62, 54, 65, 59, 62, 64, 78, 51, 68, 46, 55, 85, 60, 76, 58, 106, 71, 46, 66, 75, 71, 63, 51, 57, 86, 55, 56, 54, 79, 63, 70, 81, 72, 75, 60, 71, 61, 76, 68, 68, 104, 63, 69, 56, 75, 75, 58, 84, 66, 61, 54, 68, 63, 41, 64, 65, 52, 64, 58, 77, 53, 56, 59, 78, 87, 51, 62, 54, 52, 61, 95, 62, 73, 75, 50, 57, 57, 67, 57, 89, 82, 67, 70, 70, 56, 60, 47, 54, 56, 91, 58, 65, 56, 63, 67, 99, 72, 55, 63, 60, 66, 64, 71, 67, 64, 81, 57, 57, 115, 50, 51, 60, 65, 59, 59, 60, 85, 74, 52, 70, 56, 65, 78, 53, 61, 57, 64, 58, 56, 56, 59, 59, 59, 80, 68, 50, 80, 54, 72, 86, 77, 53, 64, 65, 55, 90, 66, 60, 75, 70, 63, 47, 54, 52, 60, 83, 88, 120, 79, 58, 65, 65, 67, 60, 66, 69, 65, 57, 61, 60, 63, 53, 88, 55, 47, 60, 73, 54, 69, 84, 94, 63, 56, 64, 77, 67, 47, 59, 51, 66, 62, 60, 58, 63, 58, 62, 63, 66, 56, 50, 58, 67, 85, 64, 61, 68, 67, 74, 68, 76, 59, 67, 66, 53, 67, 61, 60, 74, 80, 69, 65, 64, 49, 65, 60, 74, 67, 61, 67, 68, 95, 73, 87, 77, 91, 64, 61, 58, 62, 55, 59, 58, 70, 81, 58, 67, 59, 68, 60, 62, 68, 49, 90, 49, 43, 56, 70, 53, 61, 62, 58, 67, 54, 62, 43, 89, 63, 63, 84, 65, 61, 57, 54, 73, 59, 64, 81, 64, 84, 81, 53, 60, 47, 57, 55, 49, 50, 57, 66, 77, 59, 44, 50, 61, 80, 61, 65, 45, 62, 57, 67, 67, 71, 72, 74, 60, 47, 58, 59, 78, 63, 94, 56, 67, 59, 49, 62, 58, 69, 70, 58, 73, 99, 66, 59, 50, 58, 104, 66, 92, 58, 52, 62, 64, 74, 58, 42, 72, 61, 67, 70, 51, 68, 69, 48, 56, 69, 72, 63, 46, 63, 67, 87, 56, 69, 52, 61, 67, 55, 60, 56, 68, 69, 55, 65, 59, 61, 43, 50, 54, 62, 59, 61, 58, 108, 84, 60, 60, 55, 52, 63, 55, 52, 62, 55, 60, 78, 59, 57, 55, 110, 69, 72, 51, 54, 55, 69, 71, 75, 69, 60, 63, 60, 73, 76, 50, 65, 55, 97, 55, 85, 61, 65, 73, 60, 56, 55, 74, 56, 91, 50, 62, 47, 69, 58, 62, 98, 57, 58, 80, 64, 82, 77, 58, 65, 78, 68, 70, 52, 68, 62, 56, 75, 58, 67, 60, 62, 67, 60, 61, 69, 54, 49, 93, 61, 53, 60, 68, 65, 58, 72, 81, 53, 75, 62, 71, 64, 50, 78, 65, 52, 61, 75, 65, 72, 73, 62, 84, 65, 61, 47, 76, 89, 72, 63, 65, 50, 76, 62, 67, 65, 102, 65, 70, 63, 62, 79, 84, 62, 62, 61, 57, 61, 64, 82, 66, 65, 110, 75, 79, 52, 61, 79, 73, 48, 72, 59, 67, 68, 64, 64, 135, 61, 58, 59, 57, 53, 75, 63, 76, 65, 59, 67, 59, 71, 60, 80, 54, 75, 61, 66, 48, 69, 56, 103, 48, 58, 60, 54, 106, 77, 83, 67, 75, 74, 66, 126, 46, 68, 61, 67, 70, 61, 65, 62, 95, 68, 67, 65, 70, 63, 75, 65, 64, 53, 84, 57, 93, 42, 56, 54, 78, 60, 75, 66, 61, 88, 63, 68, 87, 65, 58, 70, 55, 80, 70, 60, 58, 61, 56, 44, 60, 60, 64, 46, 67, 59, 58, 48, 57, 71, 52, 77, 60, 66, 62, 50, 56, 56, 56, 65, 57, 56, 58, 53, 84, 78, 69, 85, 67, 68, 69, 59, 87, 68, 81, 67, 43, 60, 51, 69, 72, 86, 71, 62, 66, 60, 67, 64, 63, 73, 55, 52, 71, 56, 62, 73, 64, 59, 82, 61, 56, 59, 68, 62, 90, 54, 85, 72, 64, 65, 53, 49, 65, 50, 99, 63, 74, 79, 57, 65, 61, 73, 63, 77, 60, 84, 77, 64, 73, 82, 49, 64, 71, 94, 59, 69, 47, 59, 56, 52, 65, 74, 95, 49, 70, 51, 78, 98, 61, 53, 69, 56, 54, 66, 64, 60, 58, 62, 85, 68, 61, 58, 74, 59, 61, 66, 99, 59, 57, 60, 51, 58, 67, 80, 67, 80, 53, 64, 67, 56, 52, 63, 77, 57, 70, 56, 62, 53, 52, 59, 52, 62, 69, 72, 57, 73, 68, 74, 59, 60, 62, 59, 65, 71, 56, 74, 52, 60, 69, 68, 67, 63, 88, 52, 85, 63, 79, 52, 85, 72, 54, 56, 53, 69, 61, 65, 83, 69, 61, 53, 91, 44, 61, 61, 56, 60, 86, 72, 63, 63, 79, 69, 68, 70, 68, 78, 58, 58, 56, 58, 56, 50, 66, 66, 62, 72, 75, 49, 84, 63, 66, 69, 50, 72, 57, 55, 61, 62, 58, 61, 71, 80, 99, 122, 55, 70, 84, 65, 64, 56, 116, 56, 59, 64, 69, 121, 77, 85, 57, 52, 80, 55, 87, 56, 71, 46, 58, 73, 61, 58, 66, 53, 55, 64, 43, 82, 75, 54, 73, 56, 68, 66, 54, 49, 56, 57, 63, 65, 54, 62, 61, 58, 63, 57, 85, 61, 52, 82, 58, 87, 59, 55, 61, 69, 69, 70, 52, 63, 56, 56, 59, 64, 61, 61, 62, 61, 53, 63, 68, 86, 60, 74, 61, 63, 60, 65, 55, 65, 63, 59, 54, 71, 72, 77, 72, 51, 61, 66, 67, 51, 64, 57, 70, 65, 73, 71, 63, 62, 54, 80, 66, 78, 61, 53, 84, 86, 71, 77, 76, 55, 54, 63, 63, 54, 59, 68, 58, 56, 76, 73, 62, 62, 69, 60, 55, 61, 56, 47, 69, 84, 76, 61, 78, 69, 55, 57, 57, 68, 65, 79, 70, 48, 76, 54, 66, 59, 58, 80, 61, 78, 56, 120, 51, 84, 64, 49, 57, 63, 54, 64, 65, 60, 57, 67, 49, 65, 47, 53, 85, 58, 51, 49, 58, 69, 65, 66, 56, 61, 68, 60, 67, 54, 44, 54, 79, 61, 63, 58, 56, 71, 53, 59, 55, 52, 55, 56, 64, 79, 114, 67, 31, 57, 66, 71, 75, 55, 63, 108, 67, 74, 74, 66, 66, 42, 58, 56, 64, 59, 89, 65, 61, 73, 68, 65, 60, 71, 52, 79, 55, 62, 68, 87, 61, 59, 66, 66, 67, 71, 52, 57, 62, 56, 103, 70, 75, 67, 80, 96, 53, 55, 56, 69, 69, 64, 49, 62, 60, 63, 58, 59, 77, 56, 54, 105, 54, 64, 73, 72, 68, 99, 65, 59, 74, 63, 59, 57, 61, 82, 87, 82, 53, 83, 78, 61, 62, 55, 63, 63, 102, 71, 61, 104, 53, 59, 62, 62, 58, 62, 68, 63, 59, 70, 65, 57, 67, 57, 62, 64, 57, 58, 63, 58, 73, 82, 59, 56, 61, 66, 62, 64, 69, 55, 66, 87, 50, 70, 66, 57, 77, 70, 54, 69, 63, 52, 53, 60, 58, 57, 61, 70, 101, 68, 67, 64, 72, 58, 67, 67, 37, 60, 50, 79, 61, 47, 65, 78, 51, 61, 62, 62, 55, 55, 73, 64, 66, 62, 60, 69, 55, 76, 55, 128, 61, 55, 50, 66, 69, 56, 74, 61, 57, 73, 64, 64, 56, 81, 59, 74, 84, 76, 73, 90, 52, 64, 67, 77, 64, 46, 71, 68, 58, 79, 49, 48, 55, 53, 59, 49, 57, 73, 74, 63, 62, 86, 61, 62, 52, 76, 66, 56, 72, 69, 60, 61, 59, 56, 62, 65, 79, 58, 79, 61, 57, 57, 58, 83, 71, 61, 71, 55, 65, 56, 51, 56, 85, 67, 74, 66, 67, 74, 59, 77, 85, 61, 61, 62, 63, 63, 66, 49, 71, 67, 51, 79, 64, 55, 80, 63, 72, 56, 63, 63, 59, 71, 51, 40, 67, 62, 68, 53, 53, 57, 61, 65, 64, 64, 82, 66, 57, 82, 72, 62, 56, 55, 59, 65, 90, 60, 70, 60, 64, 65, 55, 68, 60, 86, 62, 60, 71, 48, 108, 59, 55, 53, 75, 70, 61, 53, 69, 46, 57, 79, 62, 62, 60, 66, 83, 63, 67, 79, 60, 68, 77, 56, 67, 74, 62, 61, 74, 58, 61, 83, 53, 76, 60, 99, 59, 66, 67, 68, 54, 69, 58, 54, 65, 70, 55, 70, 108, 63, 72, 85, 72, 59, 42, 66, 67, 57, 77, 66, 63, 55, 63, 88, 89, 61, 73, 62, 61, 68, 66, 87, 76, 51, 59, 54, 78, 65, 55, 61, 65, 75, 60, 96, 64, 53, 68, 68, 59, 53, 70, 66, 75, 67, 57, 57, 60, 62, 59, 78, 64, 64, 55, 72, 86, 69, 64, 58, 65, 75, 82, 55, 69, 63, 58, 84, 83, 89, 61, 61, 83, 58, 71, 53, 68, 95, 49, 72, 61, 60, 67, 64, 52, 67, 62, 60, 75, 78, 68, 82, 68, 60, 62, 51, 59, 93, 83, 77, 74, 64, 55, 63, 66, 63, 80, 76, 72, 62, 70, 53, 65, 64, 66, 66, 61, 57, 58, 78, 62, 77, 65, 55, 62, 64, 69, 57, 73, 85, 69, 60, 90, 70, 60, 65, 66, 61, 61, 70, 46, 63, 69, 65, 70, 50, 124, 62, 58, 53, 70, 57, 59, 66, 91, 65, 84, 76, 57, 65, 57, 65, 62, 56, 56, 71, 62, 82, 65, 67, 57, 85, 59, 74, 92, 55, 64, 62, 61, 73, 57, 124, 57, 67, 63, 76, 58, 63, 74, 60, 80, 66, 67, 74, 64, 68, 63, 66, 69, 66, 63, 66, 90, 50, 61, 71, 53, 55, 80, 56, 82, 61, 62, 81, 99, 67, 48, 59, 52, 75, 75, 50, 75, 61, 67, 70, 68, 62, 56, 52, 86, 66, 58, 66, 59, 64, 72, 60, 61, 81, 54, 45, 69, 62, 60, 60, 61, 74, 58, 67, 86, 60, 62, 121, 77, 45, 74, 66, 66, 64, 73, 47, 70, 61, 58, 90, 58, 55, 62, 60, 58, 66, 62, 77, 77, 67, 52, 64, 72, 77, 66, 53, 65, 58, 70, 54, 51, 63, 52, 56, 75, 61, 48, 67, 51, 63, 66, 79, 66, 49, 96, 71, 62, 76, 70, 49, 70, 66, 53, 60, 66, 49, 54, 50, 77, 70, 55, 78, 60, 53, 60, 64, 91, 75, 66, 69, 66, 69, 65, 57, 55, 60, 54, 63, 64, 57, 78, 67, 56, 61, 76, 56, 65, 53, 74, 62, 52, 68, 68, 71, 57, 53, 65, 78, 87, 58, 94, 74, 66, 67, 45, 76, 70, 65, 62, 72, 61, 64, 64, 60, 55, 61, 59, 69, 75, 52, 92, 59, 68, 59, 56, 61, 55, 60, 74, 73, 57, 62, 61, 65, 63, 53, 69, 62, 61, 67, 62, 53, 61, 72, 57, 50, 61, 100, 63, 62, 61, 77, 63, 63, 101, 58, 67, 63, 79, 61, 78, 75, 75, 62, 86, 71, 51, 61, 60, 55, 52, 66, 61, 69, 54, 60, 68, 53, 113, 49, 80, 51, 73, 48, 70, 73, 61, 66, 69, 82, 55, 57, 52, 50, 59, 80, 78, 65, 58, 82, 68, 60, 64, 74, 60, 48, 60, 47, 48, 58, 68, 56, 62, 55, 56, 55, 52, 72, 81, 56, 62, 53, 53, 60, 76, 57, 67, 58, 55, 73, 48, 69, 60, 94, 82, 79, 58, 65, 54, 38, 63, 46, 66, 60, 71, 98, 61, 51, 64, 91, 72, 55, 60, 48, 54, 79, 62, 44, 55, 56, 60, 64, 83, 78, 54, 69, 59, 52, 50, 73, 49, 61, 71, 54, 72, 84, 86, 72, 60, 54, 82, 76, 78, 95, 60, 71, 82, 36, 57, 98, 54, 60, 71, 66, 58, 59, 69, 88, 55, 73, 41, 63, 58, 84, 66, 50, 67, 70, 54, 59, 61, 61, 79, 82, 64, 77, 74, 53, 73, 54, 61, 60, 73, 61, 58, 60, 101, 48, 47, 51, 49, 91, 53, 49, 53, 78, 69, 72, 64, 60, 77, 68, 64, 67, 65, 53, 67, 63, 58, 45, 56, 73, 60, 62, 73, 92, 75, 71, 60, 60, 50, 59, 41, 53, 83, 86, 91, 57, 74, 79, 64, 60, 42, 60, 50, 75, 75, 73, 88, 76, 84, 71, 63, 54, 68, 70, 68, 74, 63, 59, 68, 74, 53, 97, 49, 49, 63, 63, 54, 54, 61, 80, 49, 57, 62, 76, 56, 65, 60, 73, 64, 71, 57, 76, 55, 63, 54, 61, 70, 69, 64, 58, 58, 71, 43, 63, 73, 70, 55, 63, 48, 58, 45, 61, 69, 60, 101, 62, 85, 70, 72, 61, 69, 54, 82, 81, 93, 77, 77, 49, 63, 158, 74, 67, 62, 69, 71, 79, 62, 43, 48, 60, 49, 64, 74, 66, 77, 53, 38, 80, 70, 52, 45, 61, 70, 83, 55, 59, 58, 83, 59, 100, 68, 65, 59, 52, 79, 47, 50, 67, 70, 88, 64, 87, 53, 70, 71, 84, 53, 64, 74, 76, 65, 38, 72, 57, 80, 59, 55, 61, 73, 60, 59, 46, 56, 52, 159, 70, 46, 71, 63, 63, 72, 68, 72, 47, 43, 59, 76, 79, 75, 70, 83, 126, 53, 68, 66, 67, 50, 64, 83, 52, 90, 79, 100, 50, 61, 48, 73, 39, 67, 89, 57, 62, 75, 62, 52, 72, 50, 57, 78, 53, 70, 55, 65, 71, 65, 73, 78, 47, 56, 52, 59, 57, 58, 48, 64, 54, 71, 61, 51, 75, 71, 71, 82, 78, 66, 76, 88, 76, 73, 63, 71, 90, 71, 58, 63, 74, 84, 74, 64, 55, 67, 78, 60, 62, 71, 67, 85, 75, 78, 74, 70, 84, 79, 77, 127, 62, 75, 69, 63, 52, 38, 65, 66, 87, 63, 60, 61, 96, 49, 58, 70, 42, 56, 73, 67, 66, 62, 59, 71, 68, 50, 58, 49, 79, 56, 73, 48, 60, 66, 68, 62, 84, 66, 55, 60, 75, 68, 82, 55, 90, 78, 63, 60, 51, 90, 63, 92, 57, 71, 60, 57, 98, 143, 62, 62, 63, 78, 64, 58, 42, 56, 69, 63, 45, 71, 64, 95, 72, 45, 72, 50, 56, 55, 70, 62, 60, 53, 67, 52, 71, 59, 84, 64, 63, 64, 65, 61, 60, 79, 58, 58, 72, 69, 60, 57, 62, 84, 68, 48, 70, 68, 60, 74, 40, 65, 67, 77, 65, 56, 58, 62, 80, 71, 67, 53, 105, 61, 48, 62, 60, 77, 61, 56, 44, 56, 61, 60, 150, 96, 81, 68, 94, 62, 64, 63, 64, 45, 50, 50, 76, 62, 61, 76, 63, 74, 62, 61, 71, 61, 70, 64, 87, 85, 69, 91, 53, 49, 73, 63, 119, 60, 51, 55, 47, 88, 50, 57, 51, 66, 59, 71, 82, 84, 52, 82, 61, 86, 55, 68, 71, 54, 64, 55, 57, 68, 76, 58, 58, 66, 92, 56, 54, 85, 73, 61, 86, 79, 55, 71, 45, 98, 93, 55, 72, 60, 54, 61, 64, 75, 56, 62, 75, 49, 61, 56, 66, 73, 72, 74, 76, 49, 67, 62, 62, 54, 68, 60, 59, 63, 71, 61, 53, 90, 63, 78, 80, 59, 52, 36, 80, 66, 66, 56, 48, 122, 69, 107, 79, 57, 84, 45, 81, 68, 56, 89, 60, 78, 74, 81, 71, 71, 69, 67, 83, 77, 56, 72, 64, 49, 53, 85, 80, 49, 59, 62, 67, 94, 84, 52, 55, 77, 63, 73, 79, 60, 56, 86, 66, 56, 70, 86, 71, 89, 53, 58, 86, 55, 52, 62, 73, 46, 68, 48, 74, 75, 67, 59, 70, 63, 71, 82, 73, 77, 60, 53, 65, 77, 68, 66, 72, 62, 76, 65, 69, 92, 61, 56, 49, 77, 110, 80, 52, 47, 50, 93, 67, 124, 60, 78, 65, 56, 56, 83, 66, 72, 80, 81, 74, 68, 52, 70, 62, 53, 51, 84, 74, 75, 43, 91, 57, 58, 60, 77, 71, 65, 70, 101, 72, 77, 60, 70, 63, 65, 77, 56, 81, 68, 53, 75, 53, 61, 68, 57, 66, 58, 61, 59, 53, 51, 91, 56, 67, 80, 47, 76, 67, 61, 65, 67, 61, 69, 78, 63, 77, 68, 77, 63, 69, 101, 71, 66, 57, 63, 67, 52, 62, 83, 46, 72, 50, 56, 64, 74, 53, 67, 44, 55, 64, 61, 54, 68, 57, 42, 73, 70, 56, 67, 67, 74, 108, 73, 47, 58, 76, 62, 55, 95, 63, 71, 74, 53, 60, 56, 93, 57, 43, 56, 50, 53, 76, 56, 81, 54, 60, 99, 54, 85, 62, 107, 49, 65, 68, 72, 58, 49, 61, 56, 72, 61, 62, 44, 52, 60, 60, 52, 35, 78, 67, 66, 56, 69, 57, 43, 64, 63, 54, 63, 98, 82, 69, 60, 62, 69, 75, 56, 72, 66, 65, 78, 62, 60, 93, 51, 65, 59, 71, 47, 60, 56, 94, 61, 71, 120, 84, 73, 51, 53, 44, 89, 48, 71, 63, 52, 65, 68, 87, 63, 63, 52, 46, 79, 73, 85, 54, 83, 50, 64, 79, 42, 84, 77, 54, 56, 65, 43, 52, 44, 76, 55, 89, 64, 62, 85, 54, 91, 44, 92, 59, 61, 64, 51, 48, 73, 79, 74, 67, 79, 43, 66, 72, 78, 46, 85, 67, 72, 59, 56, 76, 59, 56, 68, 43, 47, 67, 77, 61, 45, 53, 84, 100, 63, 65, 78, 71, 43, 69, 59, 64, 63, 55, 64, 78, 60, 100, 62, 55, 64, 70, 55, 47, 83, 51, 52, 81, 60, 64, 65, 68, 71, 59, 53, 108, 64, 58, 53, 70, 51, 84, 82, 90, 59, 58, 62, 77, 67, 57, 89, 70, 55, 54, 67, 56, 78, 91, 63, 54, 86, 75, 114, 65, 86, 57, 80, 71, 66, 41, 47, 79, 71, 57, 65, 45, 80, 75, 59, 78, 58, 51, 106, 55, 73, 63, 52, 74, 58, 53, 65, 61, 79, 47, 81, 69, 71, 59, 92, 66, 65, 93, 50, 57, 67, 65, 88, 47, 58, 80, 65, 60, 63, 31, 74, 66, 91, 86, 75, 70, 60, 46, 73, 51, 67, 52, 82, 49, 65, 64, 78, 72, 54, 64, 58, 67, 75, 71, 63, 57, 77, 78, 81, 57, 82, 103, 46, 63, 58, 65, 61, 53, 48, 51, 36, 61, 92, 81, 51, 89, 79, 88, 66, 62, 55, 48, 67, 78, 53, 54, 61, 95, 88, 63, 73, 62, 71, 70, 66, 85, 80, 57, 82, 57, 75, 91, 85, 72, 79, 53, 40, 64, 56, 81, 99, 77, 52, 56, 75, 74, 86, 66, 64, 58, 59, 64, 63, 51, 50, 62, 49, 89, 59, 66, 72, 62, 54, 52, 66, 48, 50, 59, 64, 59, 73, 48, 59, 55, 54, 46, 67, 66, 84, 59, 66, 55, 47, 77, 68, 54, 57, 62, 51, 66, 79, 56, 58, 46, 69, 52, 64, 65, 53, 62, 69, 70, 110, 96, 156, 47, 64, 103, 79, 50, 76, 54, 96, 62, 97, 68, 70, 66, 54, 67, 81, 58, 60, 50, 37, 72, 66, 106, 65, 62, 41, 52, 97, 115, 52, 76, 61, 60, 51, 54, 76, 63, 57, 51, 75, 49, 56, 51, 55, 75, 71, 56, 76, 59, 75, 80, 75, 63, 66, 62, 56, 92, 64, 72, 54, 68, 77, 68, 120, 60, 79, 73, 58, 51, 52, 58, 87, 72, 46, 67, 77, 56, 60, 75, 73, 80, 67, 62, 93, 83, 47, 68, 102, 79, 59, 73, 96, 62, 58, 49, 70, 60, 81, 53, 65, 52, 48, 71, 47, 64, 73, 65, 60, 81, 77, 77, 67, 45, 61, 67, 108, 47, 69, 57, 87, 69, 56, 63, 55, 54, 97, 76, 55, 91, 56, 77, 71, 56, 67, 91, 54, 66, 62, 63, 74, 56, 68, 66, 43, 57, 75, 108, 47, 59, 56, 73, 44, 58, 71, 68, 52, 72, 73, 66, 39, 63, 60, 70, 107, 57, 77, 53, 59, 57, 42, 86, 56, 55, 56, 78, 59, 57, 47, 55, 49, 74, 48, 86, 59, 60, 69, 71, 55, 70, 55, 57, 61, 127, 59, 84, 53, 71, 59, 64, 87, 74, 63, 67, 60, 79, 96, 59, 70, 70, 73, 61, 69, 77, 80, 84, 66, 56, 50, 61, 65, 78, 97, 65, 58, 63, 60, 80, 53, 50, 40, 74, 45, 72, 63, 80, 73, 51, 59, 70, 87, 55, 72, 71, 58, 65, 63, 79, 58, 66, 59, 66, 70, 65, 74, 65, 45, 71, 52, 78, 64, 76, 62, 59, 85, 62, 70, 73, 64, 62, 93, 60, 74, 51, 44, 43, 56, 56, 68, 75, 63, 54, 87, 51, 72, 85, 66, 59, 52, 58, 58, 69, 73, 62, 69, 51, 63, 73, 47, 46, 53, 70, 77, 45, 67, 59, 75, 49, 92, 62, 54, 46, 60, 55, 78, 56, 57, 74, 63, 70, 64, 77, 53, 62, 58, 105, 70, 71, 90, 62, 41, 61, 76, 50, 35, 65, 78, 91, 57, 56, 63, 40, 60, 68, 54, 75, 63, 64, 52, 54, 90, 44, 48, 65, 57, 35, 150, 71, 38, 50, 48, 63, 57, 99, 71, 60, 72, 64, 72, 56, 68, 57, 60, 54, 66, 65, 61, 68, 76, 63, 96, 61, 58, 69, 88, 57, 53, 58, 41, 88, 72, 66, 78, 66, 47, 87, 54, 84, 67, 42, 50, 84, 78, 70, 69, 52, 86, 36, 58, 61, 59, 61, 53, 67, 97, 51, 75, 66, 87, 47, 49, 66, 73, 60, 64, 62, 73, 53, 60, 55, 58, 57, 58, 75, 50, 77, 77, 57, 55, 92, 65, 63, 68, 75, 61, 65, 75, 66, 70, 55, 62, 66, 105, 76, 81, 62, 68, 65, 50, 64, 55, 85, 74, 68, 58, 56, 78, 59, 43, 64, 50, 48, 70, 62, 72, 48, 63, 83, 87, 60, 79, 70, 54, 64, 57, 76, 66, 56, 85, 65, 40, 46, 75, 68, 56, 68, 64, 58, 52, 69, 66, 51, 71, 72, 75, 59, 61, 47, 82, 72, 84, 62, 50, 60, 56, 66, 69, 80, 66, 40, 76, 57, 99, 58, 54, 61, 67, 61, 102, 67, 70, 97, 54, 65, 79, 45, 121, 54, 68, 81, 90, 67, 53, 61, 42, 68, 64, 46, 47, 75, 95, 92, 51, 62, 70, 84, 77, 45, 71, 61, 74, 77, 49, 54, 44, 87, 82, 60, 48, 64, 53, 66, 72, 88, 62, 62, 73, 49, 80, 59, 52, 63, 68, 70, 53, 64, 56, 71, 73, 80, 50, 52, 50, 63, 63, 73, 56, 75, 54, 49, 56, 67, 67, 71, 54, 44, 91, 51, 69, 52, 59, 60, 57, 98, 57, 51, 35, 65, 54, 54, 78, 72, 48, 56, 53, 67, 63, 69, 57, 60, 46, 64, 63, 102, 55, 46, 56, 66, 94, 73, 81, 61, 70, 54, 44, 56, 48, 58, 60, 88, 55, 73, 57, 48, 54, 68, 75, 59, 60, 50, 102, 68, 65, 44, 57, 75, 50, 51, 69, 52, 118, 45, 75, 75, 66, 59, 62, 82, 56, 67, 70, 51, 52, 72, 69, 65, 48, 40, 71, 63, 59, 73, 83, 52, 45, 67, 42, 51, 55, 63, 78, 56, 67, 58, 54, 60, 54, 53, 59, 69, 56, 101, 67, 68, 70, 59, 77, 36, 66, 101, 60, 55, 66, 58, 55, 64, 82, 71, 85, 54, 64, 81, 65, 53, 77, 65, 73, 78, 55, 75, 62, 57, 59, 55, 46, 64, 74, 52, 103, 45, 81, 84, 115, 55, 68, 57, 65, 82, 72, 70, 74, 70, 67, 77, 53, 76, 36, 77, 58, 75, 62, 76, 39, 83, 60, 77, 85, 69, 79, 48, 59, 81, 48, 68, 58, 70, 59, 64, 43, 43, 74, 64, 47, 83, 62, 63, 77, 62, 93, 62, 59, 62, 60, 52, 58, 55, 62, 47, 63, 79, 61, 79, 63, 105, 76, 55, 76, 90, 58, 61, 82, 52, 65, 72, 64, 66, 69, 50, 75, 67, 67, 79, 47, 57, 57, 56, 65, 71, 63, 49, 64, 61, 61, 53, 83, 65, 59, 69, 65, 57, 66, 62, 68, 62, 60, 43, 46, 67, 98, 61, 54, 110, 77, 93, 72, 64, 49, 94, 59, 80, 59, 56, 50, 63, 61, 72, 97, 67, 64, 72, 60, 56, 97, 40, 66, 43, 48, 83, 72, 64, 54, 61, 74, 72, 65, 65, 51, 52, 91, 62, 62, 57, 48, 61, 55, 66, 65, 62, 68, 86, 59, 56, 78, 50, 77, 72, 63, 57, 56, 59, 55, 51, 77, 75, 68, 57, 69, 125, 97, 75, 62, 60, 56, 63, 64, 66, 68, 58, 66, 64, 61, 65, 57, 70, 80, 61, 81, 44, 77, 50, 66, 85, 60, 65, 51, 68, 56, 75, 54, 83, 77, 64, 53, 62, 96, 67, 54, 88, 64, 50, 55, 58, 55, 34, 72, 60, 58, 74, 53, 57, 68, 60, 60, 57, 65, 63, 49, 59, 76, 65, 51, 66, 63, 49, 62, 66, 49, 57, 77, 83, 60, 80, 59, 69, 85, 54, 59, 67, 75, 45, 63, 62, 71, 61, 70, 45, 81, 45, 71, 74, 65, 66, 74, 168, 71, 71, 64, 48, 78, 74, 88, 64, 52, 47, 55, 55, 51, 54, 101, 63, 72, 62, 63, 55, 66, 66, 63, 97, 70, 73, 63, 97, 88, 76, 64, 63, 44, 53, 95, 58, 57, 77, 61, 84, 46, 77, 69, 62, 58, 94, 45, 71, 87, 72, 70, 61, 60, 60, 65, 65, 73, 68, 53, 55, 46, 40, 64, 68, 147, 34, 62, 57, 55, 69, 69, 60, 72, 86, 62, 67, 64, 50, 61, 56, 82, 86, 69, 58, 96, 64, 72, 63, 70, 59, 81, 65, 61, 51, 56, 60, 74, 34, 54, 63, 52, 59, 85, 57, 65, 63, 62, 61, 82, 49, 66, 51, 33, 69, 124, 68, 51, 67, 78, 60, 64, 60, 72, 63, 53, 73, 79, 88, 48, 83, 66, 49, 103, 53, 65, 101, 82, 48, 55, 63, 66, 66, 82, 79, 78, 48, 52, 57, 59, 66, 72, 79, 59, 51, 61, 59, 38, 44, 99, 67, 47, 61, 54, 67, 132, 64, 54, 84, 60, 54, 62, 54, 84, 70, 66, 59, 71, 78, 56, 86, 67, 56, 77, 80, 64, 66, 76, 99, 61, 50, 60, 56, 44, 79, 93, 66, 63, 64, 67, 77, 54, 71, 71, 60, 63, 48, 62, 69, 66, 72, 84, 53, 71, 58, 70, 63, 78, 59, 62, 51, 69, 38, 135, 55, 64, 42, 60, 113, 77, 74, 75, 68, 45, 45, 69, 42, 49, 65, 84, 48, 59, 49, 64, 71, 42, 70, 110, 75, 64, 76, 63, 57, 66, 53, 58, 55, 82, 67, 56, 59, 58, 88, 62, 69, 82, 58, 90, 68, 70, 63, 73, 59, 48, 69, 69, 63, 84, 58, 56, 50, 64, 56, 60, 60, 34, 79, 41, 59, 61, 57, 74, 76, 103, 63, 56, 64, 73, 128, 47, 76, 57, 139, 57, 74, 32, 57, 50, 68, 53, 40, 59, 72, 74, 61, 124, 66, 74, 66, 81, 58, 65, 62, 68, 62, 69, 91, 63, 74, 88, 105, 48, 74, 36, 54, 75, 60, 53, 79, 81, 64, 83, 69, 63, 66, 61, 76, 48, 74, 60, 88, 60, 76, 47, 83, 45, 69, 56, 50, 62, 66, 60, 44, 86, 64, 28, 77, 72, 73, 62, 69, 75, 100, 64, 59, 61, 58, 59, 70, 51, 78, 81, 45, 75, 64, 77, 66, 47, 81, 56, 52, 56, 49, 71, 53, 74, 75, 58, 50, 59, 47, 67, 88, 68, 67, 71, 75, 78, 70, 83, 69, 59, 54, 58, 67, 122, 43, 86, 78, 72, 62, 44, 65, 64, 61, 87, 62, 49, 73, 50, 70, 75, 67, 81, 72, 107, 73, 58, 65, 65, 59, 86, 52, 80, 60, 84, 83, 68, 72, 77, 57, 58, 68, 63, 69, 73, 62, 60, 79, 59, 84, 46, 63, 54, 50, 72, 76, 46, 82, 53, 70, 63, 69, 51, 87, 71, 56, 94, 92, 67, 64, 78, 57, 81, 40, 66, 64, 90, 48, 85, 95, 74, 83, 62, 55, 38, 70, 55, 72, 59, 82, 56, 73, 67, 78, 69, 68, 102, 58, 81, 53, 65, 78, 58, 59, 77, 57, 55, 58, 72, 91, 66, 50, 67, 72, 70, 58, 81, 79, 64, 79, 70, 65, 71, 50, 61, 55, 73, 54, 66, 81, 74, 55, 76, 68, 58, 68, 65, 63, 77, 66, 68, 82, 55, 55, 50, 65, 70, 57, 60, 68, 54, 63, 80, 52, 59, 68, 55, 73, 54, 76, 62, 61, 59, 56, 63, 60, 60, 74, 92, 54, 81, 63, 62, 68, 63, 64, 77, 70, 60, 75, 51, 68, 77, 53, 63, 55, 58, 66, 73, 77, 81, 86, 63, 100, 76, 60, 64, 69, 56, 50, 71, 61, 68, 67, 77, 65, 72, 64, 58, 57, 71, 82, 77, 82, 59, 66, 63, 73, 71, 71, 66, 52, 64, 64, 68, 69, 69, 65, 89, 77, 70, 60, 60, 58, 60, 55, 61, 56, 63, 50, 77, 73, 87, 78, 58, 83, 55, 62, 64, 64, 86, 69, 61, 75, 59, 55, 56, 52, 99, 74, 73, 61, 69, 62, 53, 53, 67, 56, 67, 64, 62, 60, 75, 58, 53, 68, 55, 58, 71, 64, 62, 71, 131, 52, 58, 67, 71, 74, 74, 62, 63, 55, 59, 61, 62, 77, 91, 66, 74, 65, 57, 81, 73, 43, 62, 54, 66, 47, 55, 69, 65, 61, 63, 66, 62, 57, 74, 63, 62, 68, 43, 59, 54, 56, 57, 73, 69, 66, 62, 56, 67, 72, 61, 69, 65, 64, 61, 60, 59, 50, 58, 79, 57, 84, 49, 57, 53, 56, 62, 60, 74, 59, 51, 75, 48, 61, 62, 56, 91, 66, 76, 54, 80, 66, 56, 73, 55, 62, 52, 72, 54, 77, 55, 75, 75, 61, 65, 61, 61, 64, 59, 58, 71, 64, 58, 52, 50, 62, 50, 56, 91, 49, 64, 73, 71, 66, 58, 72, 55, 64, 75, 58, 58, 45, 78, 56, 78, 71, 64, 84, 61, 60, 53, 65, 60, 57, 82, 55, 125, 65, 67, 83, 57, 55, 62, 58, 81, 70, 60, 72, 53, 68, 61, 67, 53, 73, 58, 59, 135, 55, 71, 60, 84, 61, 63, 67, 70, 60, 64, 58, 65, 68, 56, 58, 64, 59, 48, 59, 54, 74, 70, 66, 69, 55, 69, 62, 64, 62, 67, 61, 60, 70, 63, 96, 68, 63, 59, 98, 53, 74, 58, 69, 55, 53, 59, 66, 72, 60, 72, 59, 70, 63, 65, 56, 62, 58, 73, 65, 56, 55, 59, 56, 54, 70, 60, 61, 76, 72, 56, 58, 61, 65, 60, 90, 84, 63, 52, 79, 70, 51, 89, 77, 70, 77, 57, 108, 63, 68, 78, 89, 85, 62, 60, 63, 60, 54, 61, 79, 60, 61, 56, 64, 57, 83, 56, 71, 52, 59, 57, 58, 86, 66, 45, 90, 76, 69, 77, 56, 54, 57, 54, 73, 60, 80, 67, 57, 81, 68, 59, 61, 81, 73, 73, 72, 62, 63, 70, 73, 56, 88, 62, 62, 62, 66, 56, 67, 76, 70, 59, 65, 58, 78, 59, 69, 64, 55, 71, 54, 66, 67, 60, 61, 53, 87, 67, 77, 60, 53, 67, 57, 73, 70, 63, 93, 151, 63, 61, 54, 63, 61, 68, 80, 82, 57, 69, 59, 67, 59, 54, 55, 80, 66, 71, 56, 71, 64, 79, 57, 53, 68, 66, 68, 70, 69, 86, 65, 59, 65, 63, 60, 49, 60, 63, 69, 96, 69, 60, 49, 45, 74, 75, 64, 61, 64, 81, 82, 110, 60, 58, 55, 60, 76, 60, 64, 56, 61, 67, 58, 105, 61, 74, 54, 57, 68, 73, 66, 71, 58, 57, 52, 64, 51, 67, 74, 57, 73, 63, 55, 57, 50, 59, 72, 77, 70, 79, 101, 62, 66, 55, 62, 61, 56, 51, 62, 79, 57, 66, 69, 78, 63, 84, 59, 64, 82, 71, 68, 94, 59, 60, 72, 120, 73, 68, 64, 86, 61, 60, 62, 56, 54, 69, 63, 81, 71, 84, 58, 68, 63, 67, 68, 107, 94, 61, 76, 90, 59, 68, 68, 62, 58, 60, 65, 71, 64, 47, 57, 72, 59, 59, 85, 82, 60, 71, 50, 48, 70, 57, 70, 109, 74, 71, 53, 65, 58, 74, 85, 59, 71, 60, 57, 89, 60, 65, 69, 96, 69, 65, 78, 55, 75, 100, 50, 58, 68, 65, 59, 60, 87, 66, 62, 63, 70, 69, 105, 51, 67, 58, 61, 61, 62, 73, 95, 75, 95, 58, 76, 57, 60, 80, 69, 60, 57, 65, 63, 63, 70, 63, 58, 68, 62, 70, 57, 68, 73, 80, 59, 64, 63, 52, 60, 81, 66, 50, 82, 45, 57, 70, 61, 57, 65, 64, 87, 61, 69, 60, 58, 54, 60, 106, 44, 75, 81, 103, 73, 58, 63, 65, 56, 68, 84, 87, 54, 75, 70, 63, 66, 70, 56, 54, 68, 67, 60, 61, 66, 64, 49, 52, 74, 57, 76, 58, 54, 64, 91, 60, 63, 64, 61, 63, 70, 75, 85, 63, 59, 61, 62, 87, 67, 63, 61, 59, 63, 63, 53, 58, 100, 60, 93, 45, 64, 59, 58, 70, 57, 67, 51, 61, 67, 65, 59, 81, 69, 58, 72, 49, 50, 65, 71, 80, 57, 61, 75, 94, 57, 82, 68, 43, 76, 56, 64, 72, 60, 67, 66, 60, 57, 65, 68, 64, 65, 57, 62, 57, 73, 51, 51, 55, 70, 56, 76, 87, 71, 58, 51, 62, 52, 58, 57, 52, 55, 78, 61, 91, 68, 60, 55, 62, 53, 70, 88, 61, 52, 68, 80, 65, 72, 75, 60, 66, 91, 56, 71, 59, 55, 73, 90, 66, 57, 78, 64, 63, 75, 84, 72, 57, 67, 77, 50, 69, 68, 55, 81, 68, 64, 85, 53, 63, 60, 57, 59, 62, 70, 66, 60, 65, 77, 69, 68, 55, 55, 61, 71, 64, 58, 60, 59, 50, 54, 55, 76, 67, 58, 68, 62, 76, 58, 57, 75, 50, 66, 59, 70, 53, 65, 71, 63, 65, 49, 63, 56, 53, 64, 63, 73, 75, 58, 62, 62, 57, 60, 64, 74, 68, 82, 61, 61, 74, 74, 65, 66, 61, 96, 79, 55, 63, 72, 54, 57, 56, 60, 78, 71, 65, 60, 66, 67, 57, 58, 66, 66, 59, 49, 66, 62, 72, 56, 60, 72, 56, 65, 54, 67, 59, 71, 64, 57, 74, 72, 56, 60, 67, 67, 56, 68, 61, 54, 64, 97, 78, 55, 72, 51, 87, 65, 46, 57, 99, 72, 51, 58, 93, 49, 59, 54, 68, 57, 69, 54, 77, 57, 63, 69, 75, 56, 68, 56, 60, 74, 69, 59, 67, 66, 71, 51, 81, 67, 61, 58, 62, 61, 45, 59, 85, 81, 78, 66, 74, 56, 74, 82, 74, 62, 57, 65, 82, 50, 83, 67, 80, 62, 55, 60, 91, 56, 59, 79, 60, 49, 57, 67, 68, 57, 72, 91, 64, 69, 68, 65, 68, 77, 63, 73, 52, 57, 56, 62, 80, 60, 72, 64, 69, 70, 67, 59, 64, 60, 62, 48, 67, 68, 58, 73, 57, 51, 54, 59, 65, 52, 79, 61, 53, 62, 81, 75, 65, 55, 79, 52, 73, 69, 61, 56, 55, 58, 87, 62, 80, 96, 54, 60, 71, 78, 81, 69, 69, 64, 63, 71, 63, 97, 54, 74, 41, 67, 60, 68, 74, 58, 63, 61, 78, 67, 64, 80, 49, 59, 154, 70, 58, 68, 69, 61, 63, 65, 62, 61, 65, 64, 68, 61, 70, 53, 77, 63, 71, 80, 70, 60, 57, 86, 77, 53, 58, 66, 59, 63, 64, 61, 55, 61, 45, 76, 63, 65, 64, 49, 86, 82, 73, 67, 93, 62, 61, 61, 63, 54, 62, 63, 62, 56, 65, 76, 57, 58, 61, 76, 73, 69, 78, 70, 67, 61, 58, 55, 57, 63, 67, 66, 54, 52, 72, 52, 112, 73, 67, 58, 73, 49, 56, 56, 61, 71, 59, 90, 69, 79, 49, 70, 84, 76, 67, 60, 62, 60, 57, 90, 62, 56, 66, 57, 61, 78, 61, 72, 83, 71, 58, 54, 57, 63, 52, 60, 58, 57, 77, 54, 75, 89, 64, 69, 89, 58, 79, 68, 66, 62, 81, 84, 83, 59, 64, 58, 141, 93, 74, 72, 57, 70, 53, 67, 46, 57, 70, 68, 49, 59, 46, 58, 87, 109, 60, 64, 114, 67, 56, 57, 67, 65, 64, 60, 70, 55, 57, 60, 43, 67, 54, 65, 75, 55, 62, 46, 56, 61, 62, 68, 63, 55, 70, 85, 53, 81, 56, 63, 70, 60, 72, 66, 73, 68, 55, 69, 50, 67, 75, 76, 71, 83, 61, 78, 99, 81, 66, 55, 59, 61, 75, 65, 81, 64, 61, 55, 86, 67, 57, 82, 67, 80, 61, 57, 107, 92, 56, 57, 61, 72, 66, 61, 55, 70, 70, 75, 69, 76, 94, 58, 68, 78, 62, 81, 66, 73, 82, 49, 80, 55, 69, 73, 55, 58, 64, 82, 64, 66, 58, 63, 75, 82, 53, 61, 52, 59, 73, 70, 83, 54, 56, 74, 86, 70, 83, 70, 68, 56, 65, 59, 67, 87, 77, 47, 59, 68, 55, 47, 74, 71, 58, 46, 67, 61, 54, 58, 52, 102, 64, 72, 71, 53, 51, 81, 63, 43, 52, 69, 79, 67, 62, 58, 50, 86, 62, 56, 53, 66, 98, 54, 61, 62, 56, 81, 63, 48, 61, 63, 45, 74, 73, 88, 149, 67, 69, 62, 100, 56, 60, 58, 71, 44, 67, 57, 67, 61, 87, 67, 60, 72, 53, 60, 61, 54, 53, 58, 59, 64, 77, 60, 51, 53, 56, 55, 59, 59, 65, 65, 54, 67, 65, 73, 70, 74, 62, 60, 63, 67, 73, 67, 51, 68, 50, 73, 62, 60, 72, 60, 66, 58, 71, 66, 56, 60, 64, 72, 73, 60, 79, 76, 64, 76, 76, 66, 56, 68, 90, 54, 60, 79, 57, 89, 63, 65, 65, 58, 67, 61, 80, 71, 83, 60, 60, 63, 67, 68, 63, 58, 57, 67, 83, 73, 68, 60, 54, 58, 57, 49, 89, 65, 58, 92, 61, 85, 106, 57, 102, 56, 85, 55, 82, 79, 55, 59, 53, 61, 59, 56, 81, 58, 65, 55, 79, 78, 81, 63, 72, 64, 75, 53, 56, 77, 56, 70, 56, 57, 53, 58, 48, 57, 68, 64, 63, 60, 60, 58, 70, 50, 78, 56, 65, 58, 59, 76, 59, 65, 66, 72, 82, 85, 77, 77, 87, 57, 55, 81, 51, 76, 45, 53, 60, 52, 58, 78, 52, 82, 57, 60, 68, 73, 59, 68, 64, 72, 59, 54, 51, 57, 87, 69, 50, 127, 69, 65, 66, 70, 59, 90, 56, 75, 62, 78, 81, 57, 55, 66, 76, 51, 65, 60, 59, 66, 54, 54, 55, 55, 62, 64, 81, 69, 67, 54, 110, 65, 56, 56, 58, 53, 52, 62, 49, 62, 53, 75, 58, 57, 76, 70, 59, 71, 75, 59, 55, 49, 79, 61, 74, 60, 57, 65, 75, 64, 77, 60, 60, 63, 69, 61, 81, 72, 50, 61, 64, 53, 63, 61, 64, 66, 78, 49, 72, 86, 63, 74, 58, 120, 53, 70, 61, 69, 54, 49, 58, 48, 56, 69, 71, 57, 65, 79, 54, 66, 81, 55, 74, 50, 58, 65, 60, 95, 89, 56, 69, 93, 60, 51, 62, 89, 80, 69, 41, 59, 50, 63, 69, 60, 52, 49, 72, 103, 74, 65, 59, 53, 62, 75, 68, 58, 64, 85, 68, 60, 68, 58, 63, 86, 68, 67, 49, 60, 62, 52, 65, 49, 65, 86, 63, 62, 74, 78, 94, 55, 77, 57, 63, 90, 62, 68, 66, 77, 53, 65, 62, 48, 70, 67, 73, 49, 62, 56, 66, 70, 60, 54, 67, 62, 63, 64, 102, 59, 59, 75, 70, 62, 69, 64, 69, 56, 60, 75, 63, 70, 47, 52, 69, 60, 82, 49, 57, 75, 61, 68, 60, 54, 92, 67, 58, 77, 61, 65, 91, 58, 80, 70, 83, 50, 63, 57, 77, 75, 78, 57, 64, 71, 68, 55, 65, 51, 60, 45, 68, 63, 70, 74, 61, 60, 55, 58, 73, 62, 60, 66, 67, 66, 66, 118, 74, 53, 65, 61, 67, 59, 61, 62, 67, 71, 59, 62, 53, 70, 74, 67, 69, 58, 49, 64, 65, 56, 59, 72, 56, 50, 62, 62, 63, 65, 71, 66, 65, 100, 76, 68, 91, 59, 75, 60, 60, 56, 68, 73, 67, 97, 58, 84, 55, 73, 72, 56, 61, 62, 49, 57, 79, 67, 49, 50, 71, 57, 86, 55, 51, 52, 73, 58, 72, 88, 53, 56, 64, 61, 57, 48, 64, 61, 70, 77, 82, 59, 93, 58, 75, 50, 60, 49, 96, 54, 50, 73, 61, 54, 68, 69, 61, 56, 67, 54, 66, 57, 66, 51, 63, 89, 72, 58, 55, 53, 52, 64, 41, 64, 64, 61, 55, 76, 74, 52, 64, 50, 64, 50, 69, 60, 58, 84, 64, 61, 63, 58, 81, 64, 64, 63, 67, 68, 74, 52, 67, 73, 57, 60, 48, 116, 75, 101, 61, 47, 48, 46, 75, 39, 38, 53, 61, 67, 58, 83, 82, 46, 68, 68, 62, 61, 53, 69, 42, 44, 59, 56, 76, 62, 56, 74, 68, 70, 84, 85, 41, 54, 62, 67, 57, 60, 83, 53, 73, 71, 68, 57, 53, 51, 54, 62, 65, 70, 49, 84, 60, 82, 77, 72, 73, 68, 64, 51, 66, 86, 99, 49, 77, 48, 64, 57, 85, 60, 90, 82, 57, 71, 72, 63, 54, 59, 43, 93, 62, 48, 80, 49, 77, 64, 62, 62, 65, 33, 107, 63, 56, 55, 61, 71, 68, 77, 56, 62, 46, 68, 72, 82, 58, 68, 59, 66, 58, 87, 53, 54, 63, 51, 73, 68, 73, 90, 61, 57, 44, 54, 53, 82, 76, 73, 85, 38, 45, 70, 95, 96, 86, 58, 59, 72, 55, 54, 66, 63, 50, 62, 59, 68, 74, 62, 72, 82, 158, 85, 75, 62, 98, 60, 65, 97, 61, 72, 72, 76, 64, 77, 75, 105, 62, 62, 61, 81, 56, 71, 59, 81, 52, 49, 89, 58, 70, 55, 50, 60, 54, 69, 57, 63, 62, 53, 80, 65, 71, 58, 55, 62, 63, 69, 75, 56, 70, 65, 71, 111, 52, 45, 72, 93, 51, 124, 75, 93, 57, 86, 83, 89, 58, 55, 70, 48, 62, 63, 53, 67, 39, 91, 48, 51, 87, 58, 85, 52, 66, 80, 48, 67, 60, 66, 61, 114, 58, 70, 72, 82, 71, 102, 43, 61, 62, 81, 58, 71, 67, 66, 71, 75, 49, 70, 52, 66, 64, 55, 47, 64, 43, 91, 54, 57, 62, 80, 57, 72, 68, 65, 57, 70, 50, 75, 49, 54, 74, 63, 70, 54, 69, 73, 80, 60, 47, 66, 55, 66, 73, 54, 61, 88, 64, 88, 54, 58, 72, 52, 77, 53, 59, 64, 33, 70, 71, 78, 69, 76, 54, 49, 57, 54, 59, 70, 81, 55, 54, 63, 61, 46, 54, 81, 65, 65, 50, 75, 86, 57, 56, 52, 57, 59, 56, 65, 67, 50, 93, 45, 78, 80, 65, 43, 44, 70, 56, 63, 74, 58, 75, 66, 50, 54, 63, 50, 68, 56, 87, 58, 57, 60, 65, 78, 55, 63, 41, 66, 90, 51, 72, 55, 67, 68, 66, 69, 62, 90, 62, 70, 49, 67, 56, 72, 62, 73, 49, 80, 48, 35, 64, 69, 66, 60, 64, 73, 59, 57, 60, 44, 61, 68, 57, 58, 65, 67, 53, 58, 58, 75, 84, 66, 69, 48, 54, 53, 74, 68, 52, 40, 54, 80, 56, 140, 88, 89, 63, 80, 61, 38, 57, 62, 63, 51, 54, 78, 64, 49, 67, 82, 95, 70, 70, 57, 70, 60, 65, 71, 81, 56, 63, 56, 72, 106, 70, 79, 55, 73, 85, 63, 58, 74, 65, 106, 62, 65, 68, 77, 58, 70, 70, 46, 68, 76, 62, 59, 58, 63, 61, 43, 51, 61, 52, 67, 78, 47, 48, 46, 113, 64, 61, 72, 63, 65, 79, 74, 67, 62, 75, 64, 54, 55, 62, 70, 77, 63, 55, 65, 121, 54, 60, 65, 68, 57, 54, 97, 68, 80, 65, 70, 59, 69, 58, 60, 55, 67, 72, 63, 70, 58, 81, 59, 46, 58, 61, 67, 60, 64, 65, 67, 93, 66, 69, 72, 57, 72, 39, 73, 73, 46, 75, 75, 63, 65, 81, 91, 74, 80, 58, 61, 69, 70, 63, 80, 58, 72, 64, 73, 74, 59, 55, 54, 61, 66, 55, 54, 62, 60, 59, 79, 65, 55, 70, 57, 51, 64, 56, 87, 144, 54, 60, 79, 62, 63, 83, 58, 67, 123, 62, 53, 60, 55, 51, 75, 88, 50, 75, 82, 66, 74, 71, 59, 82, 51, 69, 50, 89, 92, 72, 61, 64, 53, 47, 79, 67, 73, 79, 59, 73, 74, 66, 68, 70, 98, 46, 60, 68, 62, 66, 55, 91, 47, 53, 52, 59, 62, 111, 59, 65, 63, 85, 87, 59, 54, 69, 64, 69, 64, 62, 49, 67, 71, 76, 61, 56, 57, 48, 42, 53, 67, 66, 70, 56, 81, 62, 65, 70, 79, 57, 54, 47, 55, 72, 91, 68, 59, 53, 71, 74, 82, 77, 65, 86, 59, 64, 69, 87, 61, 39, 62, 66, 77, 58, 73, 42, 57, 53, 63, 61, 108, 52, 68, 68, 74, 65, 67, 56, 56, 80, 63, 61, 103, 80, 81, 55, 103, 72, 79, 77, 68, 44, 58, 66, 62, 90, 71, 65, 55, 78, 56, 72, 54, 63, 53, 74, 73, 83, 50, 67, 55, 46, 59, 59, 76, 65, 61, 63, 65, 113, 74, 64, 68, 65, 70, 46, 51, 76, 53, 59, 78, 51, 70, 50, 75, 58, 90, 62, 62, 76, 68, 104, 59, 52, 76, 60, 55, 56, 83, 52, 53, 63, 51, 80, 59, 85, 83, 74, 33, 61, 74, 77, 75, 52, 75, 59, 56, 64, 51, 58, 59, 64, 60, 61, 71, 76, 70, 69, 49, 73, 56, 59, 57, 64, 60, 58, 69, 84, 81, 57, 89, 75, 63, 68, 65, 51, 64, 64, 87, 108, 50, 82, 94, 49, 52, 67, 57, 70, 48, 53, 79, 66, 84, 48, 49, 102, 64, 86, 67, 58, 64, 71, 78, 57, 146, 69, 91, 75, 60, 67, 95, 56, 63, 50, 45, 76, 62, 52, 68, 63, 63, 54, 72, 45, 62, 47, 91, 56, 55, 77, 61, 58, 83, 74, 60, 61, 55, 63, 64, 55, 66, 101, 64, 80, 89, 65, 49, 65, 61, 67, 63, 71, 75, 59, 56, 77, 83, 58, 48, 58, 58, 56, 74, 71, 64, 42, 49, 67, 55, 69, 74, 84, 44, 58, 60, 85, 64, 55, 72, 57, 73, 59, 83, 46, 88, 88, 61, 57, 82, 80, 61, 75, 62, 90, 79, 55, 91, 84, 42, 78, 83, 92, 65, 58, 67, 80, 56, 63, 52, 54, 70, 78, 54, 92, 50, 87, 80, 66, 80, 45, 57, 67, 64, 57, 50, 57, 87, 63, 53, 82, 76, 75, 64, 82, 53, 69, 88, 53, 51, 58, 51, 63, 60, 60, 53, 57, 58, 60, 44, 58, 65, 45, 62, 53, 44, 65, 73, 73, 50, 60, 58, 90, 74, 78, 115, 75, 59, 41, 72, 62, 63, 68, 69, 60, 55, 75, 58, 52, 67, 63, 63, 82, 61, 61, 58, 66, 70, 62, 58, 66, 65, 68, 66, 75, 61, 47, 66, 76, 90, 74, 71, 59, 58, 109, 72, 71, 81, 68, 74, 52, 52, 71, 51, 74, 44, 61, 79, 79, 55, 66, 57, 64, 58, 52, 76, 84, 44, 60, 79, 46, 59, 44, 57, 56, 56, 70, 59, 85, 68, 47, 77, 63, 62, 85, 66, 78, 89, 54, 75, 67, 81, 65, 69, 51, 69, 59, 75, 94, 69, 76, 49, 82, 32, 67, 62, 55, 53, 59, 71, 81, 74, 50, 55, 58, 59, 61, 80, 73, 62, 54, 69, 62, 71, 60, 67, 81, 61, 58, 70, 71, 56, 117, 60, 73, 57, 77, 47, 45, 100, 89, 63, 77, 69, 64, 69, 68, 50, 43, 51, 68, 48, 46, 54, 76, 60, 119, 59, 58, 61, 52, 66, 62, 99, 58, 53, 55, 106, 59, 48, 69, 52, 53, 46, 55, 54, 84, 81, 72, 79, 51, 72, 64, 53, 88, 62, 62, 42, 52, 48, 46, 63, 78, 56, 83, 70, 75, 64, 50, 66, 57, 79, 57, 60, 85, 53, 54, 81, 40, 59, 50, 45, 58, 77, 67, 81, 54, 44, 60, 60, 50, 47, 61, 115, 57, 71, 70, 101, 87, 59, 68, 55, 65, 76, 73, 79, 47, 62, 74, 54, 66, 73, 82, 59, 46, 82, 81, 56, 81, 63, 66, 74, 58, 56, 53, 57, 60, 68, 113, 69, 69, 74, 43, 70, 60, 43, 93, 67, 68, 83, 82, 43, 56, 66, 35, 92, 79, 54, 56, 69, 58, 68, 55, 61, 57, 103, 93, 56, 47, 68, 59, 55, 75, 68, 81, 50, 68, 79, 55, 71, 82, 68, 59, 65, 71, 47, 84, 81, 56, 95, 82, 64, 78, 97, 59, 68, 55, 54, 95, 65, 80, 62, 59, 67, 58, 65, 42, 60, 65, 90, 44, 68, 69, 102, 73, 56, 56, 53, 62, 47, 67, 63, 63, 44, 88, 56, 80, 67, 63, 61, 68, 53, 76, 50, 47, 83, 67, 70, 69, 67, 73, 68, 62, 75, 68, 68, 77, 53, 78, 82, 64, 80, 74, 54, 74, 61, 48, 53, 63, 79, 54, 37, 70, 75, 64, 61, 61, 92, 57, 86, 94, 66, 56, 56, 69, 70, 54, 68, 74, 57, 58, 77, 61, 57, 65, 51, 57, 63, 68, 73, 78, 49, 94, 79, 110, 59, 52, 45, 70, 65, 78, 73, 49, 60, 42, 66, 45, 45, 92, 141, 105, 68, 30, 54, 63, 72, 55, 66, 75, 73, 67, 63, 61, 57, 71, 68, 85, 33, 48, 59, 79, 75, 61, 82, 77, 57, 71, 94, 64, 122, 75, 64, 44, 85, 54, 60, 58, 105, 62, 86, 56, 39, 76, 56, 59, 78, 71, 74, 71, 50, 63, 71, 61, 68, 51, 56, 63, 54, 61, 91, 60, 61, 78, 50, 145, 52, 60, 50, 57, 60, 60, 70, 69, 82, 61, 54, 69, 71, 68, 77, 81, 82, 55, 79, 119, 69, 56, 51, 67, 51, 58, 65, 81, 56, 53, 53, 61, 52, 59, 68, 72, 54, 55, 66, 52, 68, 92, 50, 69, 56, 90, 65, 50, 98, 75, 89, 63, 68, 51, 59, 59, 78, 82, 56, 75, 62, 85, 52, 57, 70, 46, 44, 73, 56, 51, 58, 87, 57, 59, 66, 69, 92, 99, 65, 79, 80, 64, 67, 67, 59, 79, 58, 61, 56, 60, 70, 82, 74, 108, 52, 66, 71, 75, 80, 125, 55, 71, 75, 80, 45, 46, 70, 60, 88, 71, 59, 71, 63, 53, 65, 71, 66, 66, 65, 66, 59, 56, 70, 53, 60, 55, 69, 54, 93, 81, 62, 60, 70, 64, 72, 61, 70, 73, 58, 63, 91, 77, 51, 80, 47, 63, 72, 70, 49, 78, 61, 110, 63, 56, 75, 72, 79, 146, 79, 58, 60, 43, 77, 59, 85, 54, 79, 54, 68, 71, 66, 74, 59, 64, 61, 64, 67, 59, 86, 60, 61, 74, 74, 68, 66, 76, 70, 64, 71, 49, 64, 63, 74, 65, 72, 52, 58, 68, 71, 55, 69, 94, 29, 60, 62, 74, 51, 58, 71, 66, 58, 99, 61, 77, 68, 57, 82, 63, 73, 62, 111, 87, 68, 63, 51, 59, 71, 52, 42, 54, 50, 53, 98, 104, 82, 70, 72, 48, 90, 88, 63, 70, 61, 77, 85, 99, 81, 63, 61, 88, 58, 56, 86, 88, 43, 51, 86, 82, 103, 73, 82, 65, 83, 49, 91, 48, 61, 45, 62, 109, 76, 58, 42, 70, 66, 53, 67, 63, 86, 56, 65, 85, 74, 60, 80, 86, 59, 68, 53, 67, 93, 114, 60, 59, 99, 66, 67, 101, 51, 57, 72, 72, 82, 70, 64, 60, 66, 41, 56, 77, 60, 61, 92, 59, 80, 66, 61, 56, 61, 66, 68, 53, 59, 57, 80, 51, 59, 60, 43, 50, 69, 63, 62, 76, 64, 54, 62, 75, 54, 89, 56, 60, 49, 60, 71, 52, 49, 50, 60, 121, 69, 104, 58, 52, 74, 52, 78, 71, 70, 84, 48, 45, 61, 70, 59, 85, 63, 74, 49, 57, 75, 71, 79, 66, 61, 53, 96, 61, 57, 53, 60, 52, 79, 60, 59, 60, 48, 70, 89, 35, 74, 75, 77, 45, 54, 59, 75, 82, 56, 74, 65, 83, 46, 71, 55, 56, 51, 43, 70, 65, 59, 94, 56, 62, 52, 91, 56, 75, 77, 52, 75, 100, 59, 62, 83, 57, 71, 61, 56, 67, 41, 63, 64, 68, 56, 68, 52, 61, 61, 62, 60, 64, 56, 59, 58, 68, 63, 76, 68, 39, 79, 67, 83, 73, 50, 58, 74, 55, 65, 74, 66, 62, 54, 82, 93, 61, 68, 65, 65, 69, 58, 63, 56, 71, 49, 68, 80, 55, 84, 66, 89, 62, 69, 48, 57, 75, 45, 52, 86, 77, 48, 58, 71, 73, 72, 63, 51, 83, 76, 47, 93, 82, 82, 75, 58, 56, 44, 86, 56, 60, 62, 67, 70, 74, 46, 71, 67, 55, 66, 64, 83, 67, 62, 71, 69, 64, 70, 61, 53, 56, 57, 76, 60, 73, 65, 65, 54, 70, 55, 68, 104, 63, 61, 58, 58, 73, 68, 72, 64, 67, 71, 62, 65, 77, 70, 59, 65, 71, 72, 81, 84, 55, 55, 81, 61, 71, 63, 77, 49, 82, 64, 79, 69, 59, 97, 79, 58, 55, 49, 82, 64, 62, 69, 117, 50, 83, 59, 49, 64, 51, 55, 56, 62, 60, 59, 63, 64, 70, 76, 51, 58, 71, 56, 52, 67, 68, 63, 68, 60, 72, 73, 79, 60, 60, 75, 45, 57, 65, 68, 60, 57, 63, 61, 56, 54, 57, 58, 147, 66, 51, 69, 69, 51, 71, 69, 70, 56, 70, 59, 60, 50, 60, 75, 58, 61, 64, 77, 72, 71, 63, 86, 70, 65, 70, 64, 83, 82, 76, 68, 70, 57, 48, 59, 54, 71, 52, 66, 64, 77, 95, 51, 72, 64, 69, 66, 64, 60, 62, 61, 57, 64, 52, 60, 67, 53, 53, 62, 52, 55, 64, 62, 79, 66, 64, 54, 69, 75, 55, 56, 64, 72, 62, 63, 62, 57, 73, 64, 80, 63, 56, 65, 53, 71, 52, 59, 61, 61, 64, 87, 69, 58, 64, 58, 59, 63, 57, 64, 66, 110, 60, 62, 58, 65, 58, 60, 57, 65, 59, 61, 69, 54, 63, 51, 65, 64, 87, 52, 62, 62, 55, 56, 72, 57, 68, 59, 56, 59, 54, 102, 55, 53, 61, 66, 128, 87, 53, 65, 62, 77, 70, 65, 60, 61, 63, 61, 68, 56, 63, 60, 68, 81, 68, 55, 100, 71, 67, 85, 71, 62, 67, 78, 73, 60, 51, 62, 76, 60, 63, 72, 62, 60, 62, 67, 64, 62, 82, 72, 59, 57, 58, 58, 55, 59, 63, 69, 58, 83, 83, 68, 60, 66, 72, 65, 62, 58, 64, 67, 61, 76, 71, 57, 58, 92, 61, 57, 82, 64, 84, 85, 57, 96, 67, 62, 75, 66, 78, 91, 61, 65, 59, 65, 96, 80, 60, 74, 75, 67, 58, 53, 79, 57, 61, 76, 50, 65, 63, 47, 60, 67, 73, 66, 59, 67, 51, 75, 53, 64, 49, 67, 51, 63, 72, 78, 55, 68, 57, 59, 60, 77, 72, 69, 55, 67, 58, 55, 82, 68, 71, 81, 79, 80, 71, 90, 50, 69, 91, 58, 47, 71, 54, 64, 60, 55, 74, 60, 74, 70, 53, 78, 61, 71, 83, 60, 52, 57, 48, 59, 83, 73, 72, 51, 54, 66, 59, 64, 57, 106, 58, 67, 58, 68, 56, 77, 71, 91, 104, 75, 65, 65, 60, 60, 85, 81, 64, 70, 78, 80, 85, 76, 118, 65, 75, 59, 99, 56, 59, 56, 63, 56, 92, 63, 62, 61, 61, 72, 66, 63, 65, 51, 60, 75, 79, 55, 62, 59, 75, 82, 54, 75, 71, 55, 60, 67, 69, 59, 56, 64, 65, 89, 55, 70, 56, 61, 67, 90, 77, 62, 62, 53, 75, 58, 83, 67, 72, 52, 78, 61, 65, 67, 71, 71, 41, 50, 66, 63, 50, 56, 60, 61, 56, 64, 54, 54, 57, 75, 77, 77, 54, 115, 59, 62, 61, 67, 99, 57, 57, 89, 71, 108, 76, 72, 69, 54, 65, 72, 53, 66, 65, 57, 71, 79, 86, 78, 60, 53, 83, 70, 48, 83, 79, 63, 72, 56, 74, 45, 61, 67, 76, 73, 54, 59, 57, 59, 60, 55, 79, 95, 79, 46, 57, 60, 58, 60, 71, 68, 80, 57, 62, 67, 89, 68, 99, 70, 46, 72, 63, 99, 67, 76, 57, 65, 61, 65, 57, 58, 74, 65, 62, 51, 57, 52, 80, 68, 89, 65, 49, 60, 62, 65, 82, 61, 71, 52, 73, 75, 76, 81, 53, 84, 67, 66, 60, 66, 68, 79, 64, 66, 69, 75, 60, 93, 50, 49, 62, 61, 67, 67, 63, 87, 66, 80, 56, 65, 71, 59, 58, 76, 79, 67, 50, 62, 75, 56, 94, 63, 61, 50, 60, 69, 76, 60, 62, 60, 68, 61, 92, 60, 55, 67, 51, 60, 80, 72, 59, 67, 56, 62, 55, 59, 61, 53, 57, 57, 51, 68, 55, 57, 58, 68, 89, 53, 115, 84, 65, 56, 72, 71, 68, 72, 47, 63, 59, 66, 61, 89, 100, 90, 61, 64, 58, 53, 66, 62, 83, 64, 64, 66, 59, 67, 63, 76, 81, 78, 61, 66, 49, 74, 79, 56, 81, 80, 68, 65, 60, 75, 63, 87, 63, 57, 59, 69, 54, 68, 66, 59, 61, 71, 78, 50, 83, 63, 73, 56, 65, 64, 63, 69, 68, 64, 71, 63, 66, 50, 58, 49, 53, 69, 70, 56, 60, 64, 64, 71, 82, 65, 66, 52, 58, 90, 66, 63, 61, 52, 59, 73, 55, 92, 68, 51, 58, 70, 71, 52, 62, 99, 64, 54, 61, 89, 98, 65, 63, 61, 58, 73, 58, 58, 59, 55, 98, 68, 57, 60, 51, 61, 68, 71, 59, 61, 57, 48, 80, 56, 69, 64, 70, 58, 53, 55, 64, 60, 54, 57, 55, 67, 68, 83, 101, 48, 53, 90, 66, 73, 58, 61, 57, 59, 55, 57, 54, 62, 59, 63, 64, 64, 56, 55, 63, 63, 65, 60, 82, 53, 71, 66, 72, 71, 61, 89, 59, 91, 70, 110, 68, 60, 58, 64, 43, 57, 65, 67, 70, 59, 70, 70, 50, 59, 58, 66, 81, 55, 70, 80, 54, 68, 71, 72, 58, 55, 65, 63, 84, 62, 63, 53, 65, 62, 62, 67, 55, 58, 90, 74, 97, 68, 57, 53, 60, 66, 68, 62, 57, 98, 57, 69, 65, 71, 67, 56, 59, 61, 62, 66, 65, 70, 48, 65, 55, 76, 71, 55, 62, 77, 52, 65, 55, 72, 64, 70, 53, 77, 54, 64, 60, 61, 69, 73, 54, 67, 75, 60, 63, 86, 49, 54, 76, 62, 86, 54, 66, 64, 73, 66, 106, 64, 57, 64, 94, 61, 67, 75, 64, 64, 63, 73, 54, 66, 60, 67, 59, 77, 61, 75, 65, 64, 68, 55, 73, 75, 63, 68, 69, 61, 54, 60, 73, 67, 74, 57, 76, 65, 58, 57, 53, 61, 71, 74, 52, 81, 52, 96, 53, 100, 66, 60, 71, 58, 55, 94, 61, 64, 97, 57, 64, 52, 62, 59, 75, 80, 68, 87, 55, 56, 65, 104, 83, 67, 56, 65, 66, 80, 52, 56, 76, 51, 80, 79, 54, 66, 80, 59, 56, 45, 49, 58, 65, 58, 66, 74, 65, 62, 53, 69, 103, 62, 72, 48, 85, 81, 66, 73, 57, 61, 83, 51, 70, 67, 76, 58, 68, 73, 51, 67, 47, 60, 64, 50, 58, 99, 74, 79, 88, 108, 78, 76, 45, 44, 84, 57, 117, 57, 88, 58, 53, 74, 39, 66, 97, 61, 44, 58, 56, 72, 58, 49, 69, 67, 58, 74, 60, 66, 104, 50, 59, 63, 58, 73, 76, 66, 61, 60, 60, 63, 57, 76, 46, 68, 74, 54, 57, 74, 55, 79, 51, 57, 70, 80, 65, 58, 64, 59, 68, 62, 65, 53, 60, 71, 53, 71, 49, 75, 55, 79, 85, 61, 55, 77, 76, 74, 87, 56, 62, 67, 66, 61, 63, 51, 67, 86, 100, 58, 62, 53, 69, 64, 63, 43, 54, 63, 56, 75, 60, 65, 54, 68, 49, 62, 56, 41, 58, 78, 82, 63, 63, 73, 67, 78, 49, 49, 67, 48, 55, 82, 69, 57, 58, 49, 50, 59, 71, 74, 68, 56, 52, 74, 55, 71, 58, 46, 72, 80, 49, 55, 51, 110, 86, 54, 91, 81, 79, 73, 47, 60, 74, 56, 69, 100, 51, 52, 73, 63, 53, 70, 83, 68, 83, 67, 93, 75, 57, 56, 52, 64, 56, 73, 56, 64, 43, 83, 52, 64, 65, 53, 55, 68, 58, 53, 102, 49, 62, 81, 81, 68, 65, 61, 58, 57, 90, 48, 91, 68, 76, 69, 53, 60, 71, 89, 51, 61, 87, 65, 52, 60, 70, 75, 94, 51, 75, 53, 56, 52, 74, 62, 53, 50, 61, 52, 56, 75, 68, 84, 72, 51, 57, 80, 73, 99, 65, 44, 68, 66, 84, 64, 67, 37, 70, 56, 74, 78, 44, 84, 48, 56, 63, 66, 65, 66, 66, 57, 53, 56, 66, 92, 69, 81, 55, 91, 64, 69, 82, 66, 54, 56, 54, 56, 54, 47, 58, 56, 50, 53, 49, 47, 59, 61, 84, 61, 72, 81, 38, 71, 40, 107, 59, 59, 55, 52, 82, 41, 69, 52, 67, 41, 97, 89, 80, 55, 79, 72, 54, 52, 63, 76, 58, 52, 71, 49, 41, 51, 75, 58, 77, 59, 75, 63, 80, 54, 63, 59, 82, 58, 68, 86, 63, 75, 66, 59, 59, 79, 56, 61, 52, 50, 65, 51, 74, 65, 82, 85, 80, 73, 52, 64, 53, 61, 60, 47, 58, 46, 71, 117, 63, 84, 152, 62, 61, 48, 123, 60, 57, 67, 58, 57, 88, 44, 77, 70, 45, 43, 99, 67, 52, 58, 48, 59, 85, 71, 72, 73, 53, 65, 66, 75, 66, 54, 69, 70, 59, 58, 57, 60, 55, 88, 99, 72, 65, 75, 53, 68, 59, 81, 49, 60, 70, 52, 79, 43, 64, 54, 73, 63, 70, 70, 70, 89, 77, 59, 101, 75, 68, 69, 55, 47, 56, 53, 68, 59, 56, 53, 65, 78, 70, 73, 56, 74, 50, 69, 107, 55, 56, 89, 78, 68, 57, 57, 63, 63, 66, 73, 81, 49, 54, 75, 69, 77, 70, 59, 48, 56, 84, 58, 70, 81, 89, 54, 70, 74, 50, 68, 98, 78, 52, 62, 49, 60, 71, 47, 74, 53, 46, 60, 90, 83, 58, 97, 71, 72, 63, 84, 57, 57, 109, 42, 81, 68, 113, 61, 62, 63, 69, 66, 62, 56, 63, 92, 65, 72, 57, 103, 73, 61, 77, 60, 64, 88, 67, 76, 83, 67, 88, 86, 74, 87, 58, 57, 123, 94, 67, 53, 65, 69, 75, 65, 64, 59, 64, 54, 76, 84, 56, 52, 65, 62, 67, 75, 46, 89, 47, 57, 76, 97, 69, 54, 73, 71, 62, 55, 69, 70, 43, 50, 63, 79, 99, 54, 54, 76, 73, 60, 55, 76, 55, 49, 68, 74, 106, 59, 64, 66, 97, 64, 64, 90, 112, 70, 57, 73, 50, 61, 58, 63, 52, 61, 56, 50, 78, 74, 64, 63, 69, 62, 61, 67, 91, 59, 64, 69, 53, 46, 62, 68, 71, 68, 67, 70, 48, 81, 71, 48, 117, 56, 53, 58, 48, 59, 47, 60, 55, 55, 83, 78, 71, 62, 73, 55, 45, 74, 63, 69, 58, 67, 64, 62, 64, 49, 54, 90, 57, 62, 75, 110, 71, 64, 54, 48, 56, 60, 64, 55, 75, 57, 105, 49, 66, 67, 82, 72, 61, 60, 60, 53, 62, 78, 58, 42, 63, 54, 52, 60, 101, 57, 64, 61, 57, 56, 59, 66, 75, 57, 62, 60, 73, 49, 66, 68, 103, 69, 77, 63, 41, 103, 52, 69, 66, 72, 58, 68, 58, 55, 44, 61, 62, 74, 70, 65, 53, 44, 55, 90, 67, 58, 54, 70, 70, 71, 60, 57, 47, 97, 86, 56, 74, 49, 59, 70, 89, 91, 65, 73, 40, 73, 63, 86, 72, 57, 64, 53, 52, 71, 62, 92, 66, 48, 49, 66, 83, 72, 70, 68, 50, 45, 68, 66, 55, 68, 57, 84, 117, 69, 64, 76, 52, 72, 76, 61, 68, 57, 56, 76, 66, 71, 60, 62, 60, 54, 64, 53, 76, 70, 56, 58, 63, 74, 53, 63, 54, 56, 69, 75, 107, 54, 82, 58, 52, 145, 71, 60, 56, 65, 54, 72, 55, 55, 51, 87, 59, 47, 65, 49, 67, 74, 50, 71, 61, 54, 63, 53, 55, 82, 71, 54, 64, 67, 100, 60, 56, 94, 65, 51, 74, 66, 83, 80, 45, 64, 49, 57, 62, 55, 74, 55, 75, 86, 67, 79, 37, 65, 53, 65, 62, 67, 63, 58, 52, 52, 62, 65, 59, 60, 77, 83, 59, 71, 54, 58, 66, 57, 51, 56, 55, 53, 66, 54, 58, 54, 52, 50, 54, 80, 63, 55, 91, 53, 55, 58, 60, 74, 51, 70, 61, 56, 68, 60, 55, 70, 69, 56, 54, 59, 56, 66, 81, 67, 59, 54, 59, 72, 58, 57, 67, 59, 40, 60, 55, 66, 53, 60, 70, 61, 63, 59, 55, 32, 59, 54, 64, 77, 77, 119, 35, 109, 68, 67, 47, 55, 80, 73, 78, 122, 62, 141, 56, 101, 64, 58, 87, 46, 75, 52, 56, 58, 78, 68, 57, 76, 70, 63, 55, 70, 58, 73, 102, 60, 63, 56, 75, 64, 51, 62, 71, 55, 57, 57, 55, 80, 85, 54, 55, 80, 64, 63, 68, 59, 59, 68, 85, 60, 57, 52, 69, 49, 56, 79, 103, 50, 59, 62, 52, 79, 56, 74, 60, 74, 72, 101, 72, 64, 59, 79, 76, 56, 74, 57, 62, 65, 112, 49, 58, 58, 61, 62, 58, 49, 100, 52, 82, 57, 66, 72, 58, 64, 130, 59, 96, 66, 52, 108, 67, 53, 69, 76, 59, 61, 82, 74, 68, 54, 71, 73, 51, 67, 75, 62, 61, 56, 56, 55, 55, 69, 79, 69, 63, 66, 59, 61, 84, 41, 59, 49, 42, 89, 47, 60, 59, 77, 47, 81, 68, 69, 35, 52, 63, 49, 75, 68, 73, 86, 84, 52, 111, 94, 86, 103, 58, 42, 72, 66, 50, 58, 54, 47, 70, 54, 72, 61, 60, 57, 69, 67, 56, 93, 53, 97, 80, 75, 101, 63, 74, 71, 80, 59, 72, 78, 62, 84, 48, 58, 56, 77, 83, 49, 59, 53, 64, 62, 65, 73, 52, 67, 60, 73, 74, 63, 42, 62, 72, 67, 78, 135, 71, 73, 46, 72, 81, 76, 64, 71, 50, 61, 63, 80, 73, 55, 60, 34, 47, 69, 61, 86, 58, 65, 63, 66, 91, 51, 58, 60, 83, 73, 79, 73, 44, 85, 73, 51, 67, 50, 73, 89, 72, 110, 73, 69, 101, 76, 67, 83, 55, 68, 53, 83, 50, 72, 43, 69, 77, 94, 52, 72, 70, 59, 82, 51, 59, 72, 53, 81, 58, 70, 84, 118, 53, 77, 63, 75, 52, 61, 66, 57, 65, 62, 86, 63, 70, 60, 97, 68, 60, 47, 67, 31, 80, 70, 52, 100, 72, 90, 58, 59, 56, 75, 71, 46, 75, 29, 78, 81, 58, 63, 60, 98, 58, 78, 66, 69, 72, 52, 90, 47, 86, 51, 61, 62, 63, 54, 68, 69, 56, 90, 78, 81, 54, 64, 51, 82, 50, 45, 86, 62, 64, 40, 78, 63, 83, 49, 51, 63, 73, 53, 51, 62, 112, 58, 72, 65, 66, 58, 52, 78, 71, 53, 82, 75, 73, 75, 80, 54, 63, 97, 45, 58, 63, 77, 65, 59, 54, 76, 63, 64, 57, 57, 61, 69, 58, 118, 57, 67, 72, 66, 74, 66, 85, 63, 68, 79, 50, 78, 50, 61, 54, 72, 77, 52, 87, 69, 51, 60, 69, 65, 61, 71, 58, 53, 48, 57, 67, 78, 59, 83, 84, 67, 69, 71, 53, 69, 46, 77, 47, 56, 66, 47, 50, 87, 46, 70, 64, 58, 58, 63, 63, 64, 63, 65, 129, 64, 47, 60, 63, 79, 47, 63, 58, 64, 53, 68, 74, 60, 55, 65, 68, 79, 80, 93, 59, 73, 81, 54, 49, 56, 64, 71, 57, 87, 83, 78, 71, 39, 58, 69, 52, 78, 54, 81, 64, 55, 60, 74, 50, 60, 61, 65, 69, 41, 67, 51, 74, 70, 57, 69, 69, 73, 70, 74, 64, 56, 83, 55, 74, 58, 54, 51, 76, 80, 60, 63, 73, 64, 64, 67, 54, 63, 57, 61, 84, 60, 71, 70, 74, 51, 47, 123, 77, 71, 54, 87, 77, 61, 52, 60, 59, 51, 64, 72, 62, 63, 57, 62, 51, 63, 60, 70, 81, 41, 45, 60, 83, 60, 57, 65, 53, 50, 51, 84, 47, 52, 83, 60, 88, 79, 62, 57, 72, 64, 64, 84, 49, 60, 69, 78, 69, 51, 60, 67, 54, 72, 60, 80, 73, 68, 57, 64, 57, 47, 88, 40, 51, 97, 71, 75, 84, 65, 69, 85, 94, 60, 57, 47, 56, 54, 115, 79, 57, 74, 79, 65, 74, 67, 60, 82, 77, 36, 60, 58, 64, 49, 60, 50, 70, 89, 64, 38, 56, 75, 68, 103, 91, 60, 57, 46, 55, 50, 67, 62, 70, 73, 63, 74, 65, 56, 62, 62, 67, 56, 65, 77, 66, 51, 44, 70, 74, 69, 61, 61, 68, 70, 93, 81, 45, 59, 54, 56, 64, 65, 59, 69, 81, 56, 70, 69, 58, 50, 63, 69, 75, 87, 51, 80, 89, 61, 87, 60, 58, 58, 37, 78, 96, 76, 92, 77, 61, 68, 64, 69, 65, 74, 85, 85, 52, 51, 91, 77, 68, 65, 67, 53, 96, 55, 78, 72, 39, 76, 55, 64, 62, 56, 48, 76, 66, 61, 35, 66, 74, 74, 41, 53, 78, 53, 79, 60, 74, 63, 58, 52, 93, 53, 66, 82, 60, 50, 74, 47, 54, 75, 72, 67, 67, 52, 62, 75, 84, 59, 56, 52, 60, 58, 62, 66, 53, 54, 47, 125, 52, 79, 52, 67, 80, 68, 63, 61, 51, 61, 79, 63, 78, 82, 46, 87, 64, 82, 66, 72, 57, 54, 59, 60, 61, 73, 53, 49, 57, 62, 52, 60, 99, 70, 56, 72, 79, 70, 57, 86, 53, 56, 81, 68, 59, 59, 57, 66, 35, 56, 64, 62, 58, 64, 77, 56, 78, 68, 81, 82, 55, 66, 73, 53, 54, 106, 84, 79, 95, 75, 50, 50, 59, 75, 80, 61, 62, 46, 80, 66, 96, 52, 84, 76, 67, 72, 44, 96, 64, 54, 62, 72, 62, 47, 53, 48, 61, 61, 62, 70, 64, 41, 65, 78, 67, 45, 58, 84, 48, 56, 69, 68, 85, 64, 41, 89, 54, 54, 57, 65, 89, 44, 86, 38, 70, 82, 58, 66, 85, 58, 85, 67, 53, 52, 69, 59, 53, 56, 89, 63, 74, 71, 57, 68, 53, 61, 61, 62, 71, 73, 80, 65, 67, 71, 56, 89, 48, 51, 163, 89, 60, 81, 54, 60, 85, 51, 68, 65, 65, 51, 47, 42, 57, 49, 60, 49, 69, 67, 51, 70, 53, 62, 75, 43, 80, 69, 85, 79, 52, 75, 71, 80, 70, 64, 64, 84, 58, 63, 52, 55, 86, 65, 73, 57, 62, 59, 84, 71, 90, 65, 58, 65, 65, 51, 63, 50, 98, 61, 81, 64, 56, 63, 71, 58, 84, 112, 69, 54, 70, 60, 46, 74, 63, 62, 52, 49, 60, 68, 38, 52, 53, 71, 92, 61, 58, 56, 58, 53, 85, 86, 59, 71, 105, 82, 49, 54, 49, 64, 60, 62, 57, 59, 57, 56, 51, 129, 64, 62, 61, 66, 50, 71, 63, 73, 52, 80, 67, 76, 64, 54, 63, 66, 73, 62, 64, 62, 59, 83, 83, 58, 54, 115, 73, 73, 85, 49, 93, 49, 65, 63, 78, 99, 54, 79, 64, 62, 68, 58, 73, 68, 60, 63, 112, 103, 75, 58, 55, 86, 57, 90, 68, 59, 106, 69, 67, 63, 93, 63, 77, 66, 64, 73, 71, 57, 54, 87, 58, 65, 51, 61, 64, 58, 65, 59, 52, 54, 84, 76, 73, 52, 54, 65, 79, 63, 59, 54, 79, 64, 77, 52, 57, 69, 47, 69, 60, 80, 67, 75, 63, 63, 63, 62, 60, 54, 65, 91, 54, 65, 60, 85, 77, 76, 59, 55, 60, 84, 69, 56, 38, 52, 59, 99, 56, 65, 61, 98, 72, 92, 59, 44, 71, 65, 50, 61, 59, 56, 129, 63, 84, 77, 67, 67, 70, 83, 68, 91, 56, 72, 82, 74, 57, 43, 65, 73, 50, 48, 50, 51, 53, 78, 71, 65, 68, 53, 51, 71, 68, 58, 70, 47, 69, 102, 60, 58, 62, 34, 77, 112, 74, 94, 90, 74, 62, 58, 75, 56, 70, 97, 69, 44, 56, 70, 72, 70, 77, 85, 75, 65, 79, 90, 46, 47, 66, 47, 59, 54, 74, 101, 59, 61, 67, 73, 60, 50, 57, 62, 74, 72, 70, 57, 68, 60, 55, 67, 58, 62, 70, 56, 55, 60, 75, 110, 63, 70, 65, 65, 71, 70, 70, 64, 55, 69, 73, 64, 62, 69, 79, 44, 62, 54, 52, 62, 63, 54, 69, 61, 96, 70, 78, 64, 58, 55, 58, 92, 67, 121, 51, 62, 70, 70, 91, 50, 71, 64, 55, 59, 51, 49, 57, 63, 50, 64, 46, 49, 108, 55, 56, 82, 61, 61, 75, 48, 65, 65, 93, 81, 89, 61, 72, 48, 85, 60, 67, 55, 58, 57, 54, 56, 75, 81, 62, 56, 58, 44, 95, 63, 54, 72, 79, 59, 73, 66, 72, 65, 45, 62, 90, 80, 65, 85, 64, 81, 71, 118, 61, 73, 53, 51, 64, 55, 43, 66, 86, 56, 51, 72, 61, 58, 57, 39, 50, 53, 60, 64, 53, 83, 63, 75, 108, 62, 62, 56, 68, 52, 69, 73, 58, 63, 56, 70, 74, 84, 65, 65, 63, 78, 63, 58, 59, 68, 61, 51, 63, 59, 58, 54, 53, 49, 54, 70, 69, 58, 46, 65, 61, 69, 78, 64, 62, 47, 67, 57, 78, 55, 74, 74, 68, 59, 95, 53, 61, 58, 84, 72, 72, 55, 59, 84, 90, 25, 70, 47, 40, 49, 90, 81, 61, 60, 58, 73, 68, 53, 82, 63, 95, 69, 58, 56, 73, 66, 66, 52, 55, 104, 65, 62, 55, 63, 46, 69, 61, 74, 68, 60, 72, 56, 61, 91, 57, 75, 55, 47, 55, 66, 57, 41, 78, 44, 63, 57, 65, 72, 48, 62, 61, 44, 66, 65, 38, 58, 84, 61, 66, 77, 85, 63, 46, 59, 64, 53, 87, 48, 47, 62, 49, 87, 59, 63, 82, 56, 46, 66, 77, 68, 76, 93, 82, 64, 46, 73, 56, 65, 66, 62, 59, 64, 56, 58, 71, 93, 87, 73, 63, 67, 51, 61, 83, 84, 45, 56, 52, 106, 65, 128, 72, 64, 63, 50, 69, 64, 64, 53, 59, 82, 43, 70, 51, 85, 74, 64, 65, 53, 52, 62, 59, 84, 55, 59, 60, 60, 70, 70, 62, 77, 84, 29, 69, 77, 62, 87, 65, 48, 63, 70, 76, 75, 77, 65, 38, 62, 40, 69, 64, 63, 62, 71, 58, 102, 72, 74, 81, 53, 77, 63, 55, 81, 81, 77, 58, 63, 51, 51, 56, 91, 50, 57, 70, 91, 71, 53, 51, 77, 70, 61, 68, 63, 63, 55, 109, 54, 67, 52, 58, 72, 68, 55, 87, 71, 86, 61, 108, 80, 65, 68, 61, 54, 54, 69, 64, 69, 64, 72, 59, 50, 65, 84, 50, 60, 80, 82, 60, 39, 62, 87, 79, 73, 62, 84, 53, 57, 62, 57, 59, 68, 60, 46, 70, 62, 70, 69, 54, 54, 67, 66, 64, 55, 45, 57, 69, 49, 64, 57, 53, 52, 74, 125, 40, 79, 67, 79, 56, 71, 59, 79, 55, 57, 59, 60, 65, 89, 73, 87, 41, 79, 45, 61, 67, 69, 72, 68, 49, 41, 65, 60, 63, 53, 56, 104, 109, 71, 57, 69, 57, 55, 75, 52, 50, 75, 49, 69, 44, 88, 93, 72, 71, 76, 59, 74, 69, 88, 64, 37, 49, 65, 69, 62, 65, 82, 53, 65, 76, 63, 66, 44, 55, 73, 70, 77, 71, 85, 61, 63, 57, 60, 57, 78, 71, 66, 65, 65, 75, 57, 34, 72, 54, 76, 53, 97, 105, 83, 76, 55, 61, 55, 59, 53, 76, 73, 104, 44, 68, 66, 70, 58, 70, 64, 66, 71, 65, 61, 52, 53, 56, 105, 51, 59, 82, 48, 80, 52, 72, 60, 63, 80, 61, 58, 50, 79, 100, 63, 90, 67, 51, 74, 69, 65, 85, 51, 58, 65, 63, 76, 92, 60, 66, 68, 57, 48, 87, 62, 61, 71, 40, 55, 74, 59, 48, 58, 50, 68, 58, 66, 73, 78, 57, 85, 67, 61, 53, 41, 73, 69, 74, 73, 63, 53, 62, 96, 69, 47, 51, 77, 63, 57, 52, 40, 58, 52, 75, 62, 53, 67, 55, 65, 59, 80, 62, 65, 67, 55, 43, 77, 47, 69, 46, 63, 57, 63, 55, 56, 75, 71, 79, 48, 125, 52, 81, 79, 61, 89, 46, 76, 71, 71, 64, 52, 74, 75, 64, 56, 67, 58, 49, 59, 81, 83, 56, 70, 46, 73, 61, 68, 104, 78, 63, 54, 70, 82, 69, 74, 60, 79, 77, 61, 70, 62, 69, 65, 54, 62, 66, 81, 42, 38, 64, 69, 68, 62, 58, 39, 113, 88, 54, 56, 69, 66, 85, 47, 63, 43, 59, 57, 62, 65, 64, 62, 65, 61, 56, 100, 56, 61, 72, 62, 59, 63, 60, 50, 58, 71, 70, 81, 71, 58, 53, 71, 79, 73, 64, 68, 64, 62, 58, 41, 64, 71, 132, 75, 75, 62, 75, 66, 72, 90, 63, 55, 68, 60, 72, 90, 68, 80, 96, 52, 51, 49, 63, 40, 105, 61, 93, 75, 64, 64, 69, 43, 70, 59, 63, 35, 61, 37, 59, 64, 60, 65, 68, 72, 66, 64, 61, 67, 72, 73, 74, 43, 48, 58, 93, 77, 57, 56, 55, 48, 73, 55, 57, 84, 79, 47, 59, 66, 62, 58, 59, 75, 65, 75, 55, 57, 63, 69, 74, 42, 57, 70, 59, 56, 80, 59, 63, 45, 59, 66, 55, 43, 82, 79, 61, 57, 47, 77, 58, 52, 103, 76, 57, 62, 67, 58, 69, 50, 79, 68, 62, 62, 70, 57, 88, 65, 57, 69, 51, 41, 54, 75, 80, 71, 89, 65, 56, 55, 56, 50, 47, 55, 94, 79, 61, 54, 60, 68, 53, 62, 83, 118, 57, 55, 65, 55, 61, 91, 61, 99, 73, 84, 62, 65, 68, 74, 82, 66, 63, 114, 54, 51, 67, 75, 68, 63, 54, 53, 67, 53, 63, 50, 48, 56, 44, 87, 65, 63, 61, 67, 87, 66, 58, 60, 60, 66, 45, 57, 51, 61, 62, 87, 62, 71, 48, 53, 88, 68, 62, 90, 89, 62, 58, 71, 69, 67, 70, 59, 89, 47, 67, 68, 58, 72, 56, 107, 68, 61, 72, 65, 64, 62, 63, 73, 72, 63, 64, 46, 63, 77, 98, 72, 66, 50, 60, 81, 52, 64, 59, 60, 67, 89, 57, 56, 82, 54, 71, 64, 47, 53, 80, 83, 65, 63, 71, 72, 65, 76, 67, 60, 69, 59, 71, 62, 65, 57, 53, 71, 71, 43, 75, 72, 71, 40, 78, 70, 66, 68, 65, 63, 75, 59, 68, 104, 62, 57, 57, 58, 43, 60, 63, 81, 88, 60, 53, 66, 55, 64, 64, 64, 64, 64, 120, 77, 86, 60, 64, 61, 73, 61, 73, 52, 94, 47, 83, 55, 71, 56, 59, 52, 54, 57, 60, 51, 58, 71, 68, 71, 67, 69, 89, 59, 73, 72, 76, 59, 75, 78, 47, 46, 94, 69, 46, 67, 81, 55, 60, 61, 89, 56, 65, 52, 76, 76, 50, 91, 73, 86, 60, 83, 58, 58, 77, 56, 62, 55, 53, 56, 62, 59, 63, 45, 66, 77, 57, 50, 76, 73, 49, 73, 56, 53, 73, 68, 59, 69, 62, 65, 69, 58, 58, 76, 52, 58, 62, 53, 61, 70, 72, 46, 67, 65, 69, 67, 59, 70, 77, 67, 69, 51, 56, 71, 70, 52, 70, 76, 66, 54, 57, 54, 49, 74, 72, 53, 69, 58, 53, 57, 135, 44, 61, 72, 59, 79, 55, 64, 65, 59, 66, 75, 73, 54, 98, 49, 66, 81, 66, 80, 67, 53, 61, 54, 87, 51, 54, 77, 57, 66, 70, 58, 62, 75, 83, 66, 69, 55, 47, 54, 57, 66, 58, 64, 47, 55, 84, 58, 74, 66, 60, 63, 81, 92, 50, 65, 76, 70, 74, 58, 75, 79, 96, 118, 49, 59, 69, 48, 70, 54, 95, 84, 60, 58, 55, 72, 69, 61, 62, 48, 57, 60, 52, 84, 62, 86, 67, 67, 70, 59, 51, 55, 60, 58, 59, 49, 59, 39, 72, 61, 63, 77, 73, 67, 64, 77, 70, 59, 54, 59, 66, 64, 102, 61, 54, 67, 90, 64, 60, 77, 56, 72, 64, 49, 65, 99, 65, 60, 93, 71, 74, 67, 63, 70, 62, 63, 59, 93, 40, 66, 70, 51, 60, 84, 58, 54, 84, 54, 56, 59, 53, 58, 45, 61, 71, 43, 58, 61, 61, 68, 69, 63, 69, 77, 68, 61, 51, 86, 53, 76, 67, 84, 73, 69, 69, 65, 78, 79, 67, 69, 68, 74, 64, 60, 78, 62, 51, 58, 54, 51, 79, 55, 67, 77, 66, 61, 92, 55, 72, 68, 49, 62, 51, 55, 67, 65, 70, 53, 72, 70, 130, 62, 69, 62, 54, 56, 42, 56, 79, 52, 81, 67, 45, 83, 66, 56, 74, 55, 71, 84, 50, 58, 67, 62, 66, 35, 57, 65, 84, 56, 59, 48, 58, 39, 77, 65, 91, 75, 83, 77, 79, 49, 72, 61, 64, 84, 66, 75, 84, 58, 63, 81, 74, 59, 76, 68, 67, 65, 61, 47, 77, 73, 62, 67, 53, 53, 60, 57, 69, 62, 63, 76, 57, 74, 57, 78, 136, 58, 71, 64, 52, 97, 63, 63, 47, 63, 64, 51, 54, 76, 62, 58, 59, 80, 67, 62, 81, 76, 62, 62, 50, 98, 63, 50, 76, 56, 65, 64, 64, 60, 67, 80, 45, 50, 86, 63, 183, 58, 71, 50, 75, 76, 61, 65, 64, 73, 56, 50, 67, 66, 64, 36, 97, 52, 67, 60, 51, 58, 61, 70, 62, 53, 58, 60, 53, 57, 47, 47, 88, 75, 67, 90, 71, 78, 112, 115, 61, 59, 61, 106, 88, 67, 64, 54, 57, 61, 72, 65, 72, 63, 66, 76, 92, 57, 52, 68, 69, 93, 74, 69, 58, 73, 55, 67, 34, 44, 74, 80, 54, 82, 73, 62, 80, 72, 77, 61, 72, 53, 46, 62, 62, 46, 77, 60, 58, 84, 45, 93, 50, 33, 75, 83, 58, 64, 69, 54, 54, 64, 58, 70, 50, 71, 54, 46, 67, 73, 65, 63, 76, 73, 61, 65, 71, 55, 78, 58, 57, 93, 78, 54, 63, 70, 35, 71, 64, 62, 48, 59, 47, 50, 78, 73, 58, 61, 60, 73, 94, 62, 80, 76, 77, 115, 73, 49, 72, 65, 52, 53, 53, 81, 69, 82, 57, 70, 56, 77, 84, 53, 67, 59, 64, 72, 78, 53, 67, 85, 132, 68, 73, 50, 88, 64, 70, 57, 61, 46, 67, 62, 62, 41, 65, 70, 61, 54, 65, 57, 72, 81, 66, 103, 58, 64, 64, 77, 49, 93, 86, 67, 87, 69, 53, 64, 58, 57, 72, 67, 53, 77, 80, 60, 57, 74, 63, 70, 64, 51, 62, 64, 54, 60, 45, 60, 107, 69, 57, 47, 68, 31, 79, 73, 62, 59, 66, 51, 59, 61, 71, 58, 73, 58, 58, 53, 72, 90, 68, 77, 53, 49, 70, 58, 73, 53, 62, 65, 70, 62, 71, 80, 60, 76, 48, 67, 64, 60, 50, 62, 73, 89, 67, 77, 76, 61, 54, 69, 68, 95, 63, 68, 69, 53, 45, 61, 58, 67, 64, 73, 55, 64, 64, 107, 72, 63, 99, 52, 78, 58, 57, 62, 75, 67, 69, 69, 58, 60, 71, 72, 63, 74, 49, 56, 38, 77, 55, 66, 53, 72, 65, 68, 61, 65, 88, 56, 96, 50, 66, 48, 58, 69, 74, 58, 58, 64, 48, 65, 76, 100, 64, 66, 57, 44, 64, 68, 57, 88, 58, 54, 62, 74, 63, 71, 75, 108, 75, 60, 60, 65, 117, 51, 68, 97, 54, 58, 82, 67, 35, 81, 35, 63, 67, 79, 80, 52, 67, 67, 96, 86, 53, 44, 60, 62, 56, 46, 63, 54, 66, 62, 49, 77, 73, 94, 71, 62, 53, 58, 70, 54, 68, 72, 51, 61, 65, 72, 87, 76, 66, 93, 74, 86, 69, 108, 60, 65, 68, 61, 73, 47, 42, 49, 62, 45, 73, 56, 56, 60, 66, 59, 66, 43, 48, 82, 69, 50, 60, 69, 89, 48, 69, 59, 76, 73, 87, 51, 65, 67, 68, 50, 57, 72, 68, 58, 56, 76, 50, 81, 60, 49, 72, 51, 65, 63, 69, 69, 92, 57, 55, 121, 84, 67, 55, 64, 64, 61, 59, 69, 67, 62, 47, 48, 71, 65, 76, 44, 80, 86, 53, 75, 52, 127, 55, 74, 50, 80, 68, 60, 71, 77, 95, 53, 70, 59, 57, 81, 77, 66, 70, 63, 57, 129, 84, 60, 57, 45, 76, 59, 51, 78, 61, 143, 64, 60, 53, 47, 104, 76, 74, 57, 72, 78, 66, 64, 66, 58, 55, 66, 61, 45, 67, 51, 73, 68, 66, 82, 63, 80, 50, 60, 61, 67, 66, 65, 120, 62, 61, 73, 63, 79, 72, 71, 71, 67, 88, 98, 112, 60, 44, 61, 59, 54, 77, 74, 63, 58, 75, 53, 56, 70, 76, 62, 54, 66, 63, 80, 62, 57, 79, 56, 83, 78, 66, 69, 63, 67, 54, 40, 62, 69, 61, 59, 68, 44, 61, 65, 93, 56, 48, 29, 56, 60, 50, 69, 71, 72, 74, 68, 70, 61, 53, 97, 66, 48, 51, 60, 64, 68, 49, 68, 60, 63, 56, 55, 66, 86, 74, 60, 66, 55, 67, 70, 56, 73, 41, 69, 71, 85, 85, 63, 68, 95, 76, 51, 61, 47, 54, 94, 62, 78, 107, 73, 103, 66, 49, 67, 55, 56, 57, 70, 83, 64, 84, 58, 51, 50, 55, 66, 63, 61, 67, 82, 71, 49, 65, 91, 60, 70, 47, 69, 46, 56, 66, 73, 106, 60, 59, 94, 59, 75, 70, 62, 82, 68, 65, 73, 75, 74, 64, 80, 52, 61, 76, 62, 60, 84, 82, 74, 63, 63, 60, 52, 93, 81, 57, 67, 57, 64, 65, 65, 46, 82, 105, 47, 86, 89, 63, 84, 76, 59, 65, 73, 101, 73, 68, 56, 44, 73, 69, 60, 60, 85, 106, 79, 47, 64, 61, 56, 45, 53, 60, 46, 64, 79, 50, 62, 53, 57, 58, 92, 47, 78, 55, 86, 58, 50, 85, 64, 75, 59, 44, 67, 62, 80, 97, 62, 71, 67, 70, 78, 52, 73, 69, 57, 63, 67, 74, 49, 69, 57, 58, 63, 50, 68, 86, 55, 53, 53, 58, 69, 57, 66, 56, 83, 60, 53, 57, 102, 45, 63, 51, 48, 123, 79, 82, 87, 65, 50, 74, 60, 60, 65, 44, 129, 73, 52, 55, 44, 62, 79, 60, 65, 101, 65, 72, 62, 58, 156, 49, 49, 49, 47, 56, 50, 65, 60, 67, 71, 59, 66, 85, 73, 65, 47, 69, 48, 55, 61, 64, 66, 70, 72, 50, 72, 45, 47, 46, 50, 77, 83, 59, 66, 53, 78, 45, 66, 57, 81, 66, 60, 89, 62, 57, 67, 69, 54, 58, 62, 64, 66, 68, 62, 94, 101, 100, 67, 53, 66, 62, 61, 62, 51, 67, 56, 44, 109, 62, 67, 61, 54, 44, 75, 65, 45, 70, 68, 64, 73, 80, 50, 51, 54, 66, 72, 60, 68, 70, 58, 57, 82, 63, 66, 63, 66, 81, 62, 61, 58, 68, 37, 63, 81, 60, 73, 46, 45, 67, 52, 61, 55, 73, 63, 124, 68, 60, 78, 74, 74, 64, 58, 81, 61, 74, 52, 64, 58, 75, 45, 57, 66, 64, 50, 63, 96, 73, 72, 60, 54, 48, 53, 45, 64, 64, 63, 81, 55, 80, 64, 79, 61, 62, 69, 78, 76, 78, 75, 50, 123, 67, 86, 50, 62, 87, 74, 58, 30, 28, 65, 80, 60, 76, 79, 77, 77, 74, 76, 53, 67, 60, 58, 58, 64, 71, 78, 49, 60, 53, 48, 48, 59, 58, 56, 79, 56, 70, 58, 59, 88, 65, 68, 60, 70, 57, 63, 57, 73, 63, 67, 41, 69, 61, 54, 94, 72, 52, 51, 57, 58, 58, 90, 62, 50, 52, 45, 55, 86, 77, 69, 60, 73, 59, 80, 54, 73, 49, 63, 43, 43, 50, 51, 65, 82, 50, 64, 63, 71, 91, 54, 60, 57, 65, 53, 50, 53, 47, 63, 61, 65, 48, 73, 74, 79, 50, 72, 56, 69, 59, 58, 77, 65, 69, 75, 74, 67, 83, 76, 59, 65, 53, 54, 72, 100, 62, 75, 56, 68, 93, 62, 56, 73, 51, 59, 68, 80, 54, 59, 55, 54, 52, 73, 79, 69, 51, 56, 68, 60, 74, 98, 75, 72, 69, 52, 78, 63, 67, 98, 59, 68, 60, 63, 62, 59, 79, 58, 72, 47, 54, 50, 50, 78, 53, 66, 67, 74, 72, 71, 49, 63, 57, 60, 50, 73, 52, 52, 68, 56, 62, 81, 68, 88, 74, 49, 97, 36, 63, 72, 72, 49, 51, 78, 69, 59, 78, 78, 76, 78, 62, 81, 54, 71, 93, 60, 75, 56, 65, 60, 81, 89, 68, 47, 63, 58, 132, 49, 53, 78, 66, 55, 75, 61, 56, 67, 46, 68, 55, 59, 64, 57, 64, 37, 58, 97, 45, 55, 75, 59, 83, 85, 56, 60, 100, 68, 77, 49, 69, 68, 42, 63, 56, 53, 52, 79, 54, 62, 83, 54, 66, 79, 84, 78, 62, 60, 90, 64, 63, 67, 104, 66, 69, 66, 53, 77, 71, 64, 72, 101, 55, 55, 103, 54, 74, 74, 92, 72, 58, 54, 53, 60, 92, 60, 54, 80, 64, 66, 55, 66, 80, 65, 71, 47, 82, 55, 85, 63, 95, 72, 75, 80, 52, 47, 73, 80, 81, 60, 61, 70, 48, 94, 46, 55, 82, 65, 75, 66, 82, 89, 62, 65, 68, 82, 66, 94, 57, 51, 59, 63, 63, 69, 62, 51, 88, 66, 89, 62, 77, 72, 72, 78, 56, 45, 49, 73, 53, 65, 66, 47, 65, 59, 57, 91, 72, 58, 83, 73, 74, 75, 58, 76, 70, 82, 92, 56, 65, 48, 66, 64, 82, 99, 54, 76, 54, 62, 61, 50, 75, 54, 65, 58, 45, 66, 54, 61, 58, 76, 44, 69, 75, 77, 82, 64, 58, 62, 93, 45, 63, 48, 47, 70, 60, 59, 55, 97, 60, 70, 59, 80, 72, 111, 79, 51, 68, 79, 45, 71, 64, 56, 61, 56, 90, 90, 65, 58, 100, 54, 50, 55, 67, 73, 81, 52, 67, 83, 74, 64, 50, 63, 62, 128, 70, 62, 78, 66, 64, 79, 87, 77, 73, 63, 73, 57, 64, 100, 69, 50, 95, 69, 81, 61, 64, 63, 73, 80, 69, 80, 65, 53, 96, 52, 48, 61, 56, 75, 73, 69, 60, 47, 69, 55, 66, 84, 110, 68, 86, 71, 108, 80, 74, 61, 60, 61, 76, 57, 62, 77, 80, 61, 78, 60, 81, 64, 59, 71, 85, 50, 85, 104, 64, 52, 76, 73, 59, 79, 84, 54, 53, 56, 58, 62, 48, 50, 85, 72, 60, 57, 52, 56, 59, 67, 61, 64, 57, 90, 75, 72, 69, 57, 51, 52, 62, 70, 63, 48, 77, 74, 51, 61, 72, 78, 58, 70, 86, 62, 57, 41, 60, 68, 57, 51, 52, 66, 117, 112, 68, 63, 67, 86, 62, 60, 66, 52, 93, 75, 51, 62, 75, 86, 72, 64, 47, 49, 47, 55, 74, 70, 63, 66, 102, 82, 63, 50, 44, 83, 47, 64, 50, 87, 60, 60, 76, 82, 73, 99, 93, 55, 54, 69, 63, 53, 70, 71, 70, 74, 73, 68, 60, 66, 67, 68, 60, 62, 63, 76, 77, 64, 72, 64, 60, 96, 69, 79, 81, 54, 42, 56, 59, 64, 56, 63, 59, 72, 97, 65, 63, 70, 68, 60, 63, 64, 39, 65, 52, 63, 63, 91, 67, 69, 150, 57, 63, 52, 73, 58, 68, 59, 50, 59, 78, 56, 39, 97, 52, 51, 54, 55, 54, 130, 68, 65, 62, 54, 58, 78, 54, 49, 64, 65, 65, 72, 40, 69, 55, 69, 70, 64, 59, 64, 64, 63, 68, 56, 72, 57, 60, 47, 100, 55, 67, 61, 46, 53, 70, 80, 80, 52, 60, 63, 67, 90, 69, 41, 50, 55, 55, 47, 77, 55, 75, 88, 84, 70, 62, 63, 74, 45, 67, 62, 49, 70, 66, 69, 56, 70, 81, 60, 87, 52, 59, 52, 54, 63, 76, 67, 64, 66, 82, 55, 45, 51, 91, 73, 38, 46, 56, 75, 60, 73, 89, 81, 50, 52, 64, 47, 51, 60, 67, 99, 69, 83, 57, 72, 48, 40, 73, 63, 50, 74, 56, 75, 63, 81, 72, 72, 61, 47, 36, 74, 66, 85, 56, 85, 56, 85, 46, 64, 55, 55, 78, 60, 52, 74, 76, 81, 59, 52, 55, 58, 58, 63, 54, 65, 60, 67, 65, 56, 76, 66, 68, 63, 53, 58, 71, 56, 115, 57, 62, 49, 74, 59, 57, 61, 94, 76, 64, 59, 63, 58, 69, 61, 52, 73, 51, 50, 57, 70, 82, 61, 45, 65, 70, 45, 52, 72, 41, 48, 59, 66, 61, 74, 64, 76, 68, 46, 78, 63, 83, 54, 54, 63, 78, 88, 66, 85, 60, 65, 96, 60, 56, 60, 52, 63, 100, 47, 77, 71, 75, 60, 108, 61, 104, 56, 84, 63, 107, 49, 44, 67, 59, 52, 61, 86, 52, 60, 54, 77, 56, 71, 51, 50, 44, 79, 80, 79, 74, 63, 80, 68, 131, 62, 59, 83, 61, 67, 47, 67, 46, 72, 61, 65, 63, 52, 71, 69, 79, 79, 60, 66, 45, 85, 66, 59, 66, 68, 52, 52, 77, 73, 82, 65, 56, 65, 80, 78, 62, 70, 85, 62, 62, 66, 75, 60, 64, 98, 61, 65, 74, 37, 58, 51, 68, 57, 80, 64, 73, 57, 53, 60, 87, 58, 49, 58, 54, 63, 51, 84, 66, 83, 68, 75, 79, 61, 44, 64, 54, 60, 58, 74, 62, 56, 59, 62, 59, 58, 61, 63, 55, 77, 79, 57, 60, 73, 61, 63, 76, 73, 65, 58, 62, 46, 64, 52, 63, 57, 87, 59, 55, 60, 58, 66, 46, 53, 48, 75, 49, 39, 54, 67, 71, 81, 53, 55, 75, 58, 53, 69, 44, 70, 78, 66, 67, 56, 65, 50, 58, 59, 60, 70, 69, 60, 59, 67, 65, 97, 93, 65, 45, 49, 62, 81, 58, 49, 60, 57, 51, 56, 53, 65, 46, 64, 47, 58, 46, 68, 79, 51, 62, 50, 80, 74, 65, 79, 48, 50, 62, 81, 57, 63, 96, 63, 69, 57, 51, 81, 60, 82, 88, 42, 52, 80, 73, 88, 65, 56, 62, 45, 62, 45, 77, 66, 63, 55, 59, 82, 71, 55, 50, 69, 55, 50, 68, 70, 62, 59, 109, 69, 122, 68, 92, 46, 83, 55, 117, 54, 48, 60, 77, 77, 71, 61, 80, 94, 135, 61, 70, 61, 64, 64, 84, 43, 45, 71, 56, 85, 72, 61, 64, 76, 66, 57, 63, 94, 65, 51, 59, 62, 89, 69, 46, 75, 70, 68, 65, 85, 50, 50, 63, 73, 80, 56, 71, 52, 63, 62, 57, 76, 76, 74, 75, 53, 90, 63, 63, 61, 55, 67, 54, 56, 73, 75, 56, 78, 58, 62, 54, 74, 59, 61, 53, 75, 82, 98, 131, 87, 70, 74, 42, 171, 80, 65, 45, 49, 57, 68, 80, 71, 45, 52, 61, 64, 74, 47, 79, 59, 54, 40, 62, 44, 73, 61, 58, 74, 58, 55, 77, 61, 69, 88, 61, 64, 62, 67, 55, 84, 55, 83, 45, 58, 59, 67, 59, 64, 70, 69, 81, 51, 57, 74, 76, 60, 58, 94, 61, 67, 51, 79, 60, 71, 85, 52, 69, 65, 48, 67, 69, 67, 62, 48, 43, 76, 54, 57, 72, 46, 90, 75, 58, 67, 76, 79, 60, 72, 83, 73, 60, 83, 60, 74, 41, 60, 55, 59, 46, 62, 71, 58, 58, 60, 49, 60, 51, 64, 67, 65, 71, 53, 63, 62, 87, 78, 63, 79, 187, 54, 75, 49, 55, 55, 106, 66, 72, 66, 66, 62, 48, 64, 50, 58, 60, 60, 66, 61, 70, 68, 58, 63, 82, 75, 57, 75, 60, 56, 89, 65, 60, 55, 74, 86, 88, 69, 49, 93, 67, 73, 58, 85, 60, 60, 82, 64, 71, 53, 65, 52, 56, 52, 67, 74, 65, 68, 54, 61, 81, 49, 60, 34, 66, 59, 58, 59, 73, 62, 58, 54, 67, 58, 61, 60, 55, 49, 68, 69, 57, 77, 73, 55, 61, 88, 52, 71, 68, 74, 53, 60, 80, 58, 56, 89, 52, 76, 46, 69, 106, 64, 65, 93, 68, 74, 60, 67, 62, 51, 47, 54, 49, 71, 85, 51, 57, 66, 60, 63, 52, 84, 125, 146, 51, 59, 71, 48, 64, 77, 60, 59, 56, 68, 62, 81, 48, 54, 73, 66, 58, 68, 55, 55, 63, 52, 57, 57, 67, 50, 50, 52, 53, 60, 72, 65, 53, 77, 65, 67, 91, 59, 60, 85, 69, 67, 80, 79, 84, 55, 89, 92, 67, 66, 97, 83, 68, 62, 30, 74, 46, 67, 58, 62, 66, 53, 48, 44, 60, 61, 56, 56, 81, 54, 39, 57, 95, 63, 56, 77, 49, 79, 90, 121, 75, 58, 66, 63, 55, 59, 56, 56, 47, 93, 50, 49, 86, 91, 77, 48, 57, 69, 48, 59, 67, 68, 62, 65, 100, 66, 52, 59, 55, 92, 53, 64, 57, 71, 58, 101, 77, 39, 52, 62, 67, 71, 59, 59, 85, 85, 65, 85, 49, 53, 72, 60, 65, 106, 56, 64, 58, 58, 58, 50, 50, 64, 61, 65, 65, 65, 52, 69, 61, 79, 77, 54, 67, 77, 62, 58, 52, 58, 79, 82, 76, 55, 75, 64, 54, 70, 59, 61, 80, 91, 58, 48, 78, 59, 64, 67, 51, 61, 70, 58, 75, 61, 60, 71, 52, 61, 68, 60, 40, 54, 65, 81, 69, 58, 55, 72, 64, 64, 62, 58, 59, 51, 59, 62, 48, 81, 55, 63, 58, 59, 66, 72, 55, 70, 56, 59, 72, 60, 56, 55, 71, 57, 74, 61, 54, 67, 82, 95, 74, 56, 85, 55, 55, 59, 53, 149, 57, 55, 67, 62, 46, 59, 57, 62, 62, 56, 59, 55, 72, 66, 60, 62, 61, 70, 51, 50, 58, 64, 87, 45, 52, 111, 94, 46, 59, 57, 72, 51, 77, 65, 48, 66, 66, 42, 52, 59, 67, 58, 68, 61, 57, 62, 59, 59, 53, 61, 56, 70, 61, 60, 106, 73, 54, 63, 68, 80, 46, 54, 59, 57, 64, 59, 95, 89, 71, 65, 65, 79, 77, 79, 45, 63, 58, 69, 54, 58, 53, 63, 51, 45, 52, 59, 62, 68, 72, 83, 57, 64, 54, 75, 66, 63, 58, 69, 76, 61, 71, 60, 59, 51, 80, 68, 67, 61, 70, 54, 74, 58, 86, 60, 57, 70, 74, 61, 57, 64, 58, 63, 69, 68, 58, 49, 65, 59, 48, 52, 50, 72, 41, 65, 51, 69, 76, 61, 68, 78, 68, 48, 81, 58, 53, 81, 64, 58, 65, 53, 67, 65, 80, 64, 54, 68, 55, 96, 60, 67, 57, 120, 123, 52, 56, 54, 67, 56, 68, 77, 66, 68, 48, 54, 92, 71, 62, 60, 63, 64, 68, 59, 82, 48, 81, 53, 66, 60, 66, 99, 59, 57, 62, 48, 81, 59, 39, 57, 50, 38, 60, 66, 83, 51, 66, 70, 65, 58, 79, 66, 47, 58, 53, 83, 68, 51, 73, 50, 42, 56, 128, 65, 63, 74, 93, 96, 61, 45, 55, 64, 54, 46, 91, 59, 58, 61, 69, 69, 88, 94, 70, 43, 73, 63, 56, 57, 73, 61, 67, 58, 65, 47, 55, 49, 86, 64, 106, 106, 54, 87, 59, 69, 52, 45, 70, 101, 59, 72, 81, 66, 66, 71, 81, 88, 71, 63, 108, 62, 60, 62, 78, 64, 66, 66, 41, 62, 67, 55, 54, 51, 58, 41, 52, 55, 78, 48, 63, 70, 66, 63, 55, 59, 71, 58, 53, 43, 66, 63, 57, 67, 63, 81, 60, 49, 94, 124, 68, 90, 54, 70, 59, 75, 82, 63, 54, 57, 68, 113, 85, 58, 54, 67, 65, 64, 55, 71, 70, 53, 72, 55, 54, 52, 62, 75, 61, 50, 76, 83, 71, 70, 78, 83, 56, 40, 53, 45, 59, 59, 56, 72, 57, 50, 54, 68, 94, 65, 76, 99, 75, 44, 78, 66, 66, 65, 72, 56, 72, 80, 62, 62, 55, 57, 67, 71, 68, 84, 59, 70, 57, 51, 97, 53, 55, 91, 99, 51, 62, 56, 62, 66, 55, 78, 51, 82, 55, 64, 63, 57, 67, 45, 63, 59, 63, 53, 70, 96, 53, 64, 55, 71, 73, 49, 48, 64, 84, 112, 44, 66, 58, 75, 60, 69, 54, 76, 61, 72, 76, 80, 52, 51, 47, 102, 59, 78, 58, 80, 83, 55, 50, 82, 62, 59, 75, 87, 60, 66, 58, 63, 58, 123, 84, 60, 41, 73, 61, 68, 77, 61, 60, 52, 62, 75, 63, 154, 60, 92, 55, 55, 57, 62, 73, 61, 101, 71, 72, 61, 58, 63, 67, 61, 89, 62, 48, 46, 59, 53, 80, 55, 70, 56, 76, 74, 50, 60, 79, 60, 74, 61, 58, 60, 57, 64, 80, 72, 53, 71, 71, 79, 66, 56, 55, 68, 75, 69, 78, 63, 67, 58, 64, 38, 66, 38, 65, 70, 56, 61, 79, 54, 68, 84, 54, 65, 66, 47, 70, 57, 68, 50, 92, 81, 61, 62, 43, 75, 56, 71, 52, 70, 64, 69, 87, 65, 73, 56, 60, 55, 97, 64, 58, 62, 71, 61, 67, 53, 67, 66, 79, 59, 53, 121, 68, 67, 54, 58, 53, 65, 51, 53, 64, 56, 57, 57, 65, 86, 90, 82, 48, 95, 49, 53, 68, 88, 70, 73, 59, 61, 56, 65, 55, 52, 75, 73, 72, 67, 64, 83, 66, 65, 80, 72, 64, 88, 62, 69, 75, 80, 80, 82, 54, 69, 60, 52, 59, 51, 58, 56, 69, 58, 75, 91, 77, 52, 60, 61, 64, 72, 68, 53, 37, 53, 74, 54, 80, 65, 61, 75, 66, 47, 55, 69, 92, 63, 59, 71, 60, 49, 66, 67, 60, 67, 75, 60, 67, 75, 64, 72, 59, 92, 83, 66, 53, 47, 65, 59, 54, 74, 101, 81, 60, 54, 61, 66, 46, 58, 71, 73, 57, 63, 63, 77, 69, 94, 63, 65, 73, 65, 72, 78, 71, 65, 77, 62, 70, 53, 59, 63, 51, 71, 65, 68, 70, 69, 61, 76, 98, 72, 77, 86, 118, 59, 64, 55, 55, 51, 85, 82, 56, 112, 53, 63, 61, 54, 57, 65, 62, 52, 55, 50, 111, 92, 72, 61, 71, 63, 64, 61, 70, 49, 57, 57, 59, 68, 52, 48, 56, 68, 66, 73, 55, 48, 79, 76, 56, 70, 53, 64, 70, 63, 69, 59, 66, 69, 61, 54, 52, 70, 53, 143, 49, 58, 60, 57, 78, 91, 63, 59, 71, 83, 68, 98, 66, 63, 86, 50, 59, 105, 54, 59, 67, 74, 78, 99, 64, 53, 57, 45, 49, 95, 53, 65, 64, 54, 58, 48, 68, 66, 53, 70, 86, 64, 50, 47, 63, 67, 68, 84, 75, 65, 86, 64, 50, 65, 83, 62, 70, 61, 59, 47, 54, 49, 50, 58, 54, 60, 66, 62, 73, 63, 66, 63, 62, 73, 65, 59, 56, 63, 65, 59, 49, 69, 69, 57, 66, 57, 52, 61, 61, 80, 56, 63, 59, 77, 71, 79, 74, 77, 44, 64, 56, 66, 51, 57, 60, 64, 64, 70, 72, 38, 56, 90, 55, 85, 60, 68, 62, 85, 56, 74, 73, 54, 54, 66, 141, 54, 63, 99, 55, 56, 53, 72, 68, 70, 53, 67, 63, 54, 66, 61, 46, 63, 85, 56, 82, 70, 68, 77, 83, 81, 58, 69, 110, 57, 62, 40, 60, 74, 124, 64, 56, 64, 68, 60, 53, 47, 61, 66, 64, 54, 94, 81, 64, 81, 52, 57, 63, 61, 61, 65, 59, 73, 59, 57, 69, 45, 73, 56, 59, 74, 73, 88, 54, 78, 82, 56, 74, 88, 61, 63, 50, 77, 66, 62, 66, 76, 57, 54, 72, 51, 82, 45, 62, 55, 59, 64, 81, 74, 91, 67, 71, 76, 67, 53, 71, 65, 48, 76, 78, 113, 75, 36, 68, 55, 60, 111, 64, 76, 65, 60, 100, 48, 71, 71, 65, 83, 57, 70, 42, 67, 89, 66, 75, 66, 64, 80, 81, 62, 96, 34, 76, 93, 83, 60, 52, 55, 70, 66, 67, 53, 58, 50, 91, 75, 54, 74, 75, 49, 78, 47, 70, 61, 74, 59, 54, 60, 58, 64, 60, 66, 116, 49, 54, 64, 91, 56, 66, 71, 63, 52, 76, 79, 72, 95, 74, 56, 61, 63, 89, 72, 56, 57, 56, 69, 60, 69, 56, 64, 52, 63, 55, 62, 60, 48, 55, 74, 72, 76, 48, 47, 65, 72, 58, 75, 91, 61, 72, 59, 88, 56, 52, 67, 71, 46, 57, 63, 94, 70, 69, 70, 63, 66, 105, 58, 91, 69, 53, 60, 55, 46, 69, 66, 58, 63, 58, 52, 77, 52, 60, 71, 78, 51, 73, 67, 91, 58, 51, 66, 104, 54, 69, 54, 59, 63, 58, 61, 62, 64, 70, 55, 54, 72, 54, 72, 78, 54, 63, 61, 137, 62, 53, 90, 66, 80, 86, 69, 80, 93, 61, 61, 67, 58, 66, 50, 59, 55, 77, 48, 83, 56, 65, 71, 64, 70, 74, 128, 88, 79, 64, 43, 69, 61, 58, 63, 63, 46, 61, 67, 66, 65, 63, 54, 67, 68, 82, 67, 62, 73, 60, 61, 63, 50, 64, 85, 52, 59, 84, 69, 67, 62, 44, 60, 62, 78, 54, 61, 52, 55, 42, 69, 89, 55, 63, 64, 60, 56, 55, 65, 65, 94, 42, 72, 88, 51, 67, 56, 54, 59, 55, 65, 51, 57, 65, 61, 62, 82, 67, 70, 78, 76, 68, 60, 63, 57, 52, 54, 79, 75, 67, 69, 78, 51, 60, 68, 53, 38, 70, 69, 71, 51, 78, 67, 63, 61, 64, 48, 62, 58, 53, 69, 54, 54, 66, 87, 59, 58, 59, 53, 60, 97, 61, 57, 57, 83, 54, 64, 76, 71, 69, 56, 81, 61, 75, 64, 71, 67, 74, 61, 55, 60, 56, 61, 81, 50, 101, 90, 83, 46, 72, 71, 61, 54, 71, 70, 62, 69, 55, 49, 60, 74, 63, 47, 91, 60, 82, 63, 60, 64, 78, 65, 80, 69, 70, 55, 59, 50, 66, 48, 50, 72, 66, 62, 62, 77, 63, 72, 71, 74, 67, 69, 62, 55, 58, 58, 68, 61, 72, 64, 57, 130, 65, 89, 76, 67, 71, 43, 67, 78, 60, 68, 102, 97, 60, 70, 72, 70, 48, 71, 61, 74, 46, 50, 60, 57, 68, 60, 58, 62, 54, 61, 82, 51, 56, 55, 55, 53, 71, 53, 57, 59, 113, 56, 65, 65, 71, 58, 60, 76, 72, 74, 58, 59, 50, 80, 85, 69, 65, 26, 55, 40, 65, 66, 66, 80, 67, 53, 71, 59, 64, 47, 48, 58, 66, 73, 60, 58, 60, 63, 51, 46, 95, 56, 69, 66, 95, 61, 58, 70, 60, 121, 64, 45, 64, 77, 58, 82, 86, 54, 88, 54, 76, 91, 60, 70, 78, 63, 50, 58, 58, 64, 63, 55, 57, 52, 64, 80, 66, 83, 79, 63, 75, 57, 77, 60, 54, 64, 67, 54, 77, 74, 75, 64, 77, 79, 68, 62, 81, 78, 72, 64, 57, 54, 67, 98, 124, 69, 58, 55, 62, 69, 73, 58, 64, 59, 55, 67, 53, 68, 78, 68, 74, 59, 66, 59, 91, 55, 68, 79, 89, 63, 69, 64, 62, 68, 61, 65, 71, 71, 62, 77, 58, 65, 79, 70, 67, 64, 69, 62, 72, 58, 55, 90, 63, 62, 56, 82, 71, 56, 58, 52, 62, 68, 63, 100, 63, 54, 71, 64, 61, 63, 56, 53, 78, 76, 72, 65, 65, 60, 80, 40, 71, 47, 62, 71, 63, 62, 88, 74, 79, 64, 45, 70, 58, 55, 120, 60, 65, 36, 72, 64, 53, 87, 84, 46, 71, 66, 70, 64, 59, 76, 59, 89, 69, 73, 81, 70, 51, 55, 71, 63, 64, 46, 66, 53, 56, 48, 58, 53, 63, 89, 85, 57, 72, 66, 67, 67, 80, 53, 65, 93, 96, 55, 79, 57, 60, 65, 66, 50, 69, 45, 59, 46, 47, 60, 62, 70, 81, 54, 55, 53, 60, 60, 79, 69, 60, 81, 64, 73, 103, 81, 61, 65, 54, 67, 55, 60, 69, 107, 59, 75, 62, 87, 72, 75, 66, 56, 51, 68, 58, 59, 53, 54, 66, 60, 62, 63, 65, 68, 47, 70, 64, 53, 62, 68, 45, 55, 55, 55, 47, 72, 57, 60, 62, 85, 64, 61, 62, 63, 69, 61, 72, 54, 62, 56, 75, 68, 66, 59, 64, 59, 81, 52, 72, 68, 65, 72, 61, 65, 68, 61, 75, 58, 49, 100, 67, 66, 60, 67, 49, 63, 78, 63, 56, 87, 124, 58, 60, 54, 81, 73, 68, 81, 49, 105, 56, 51, 63, 59, 58, 55, 68, 59, 66, 60, 56, 80, 62, 59, 74, 91, 64, 47, 56, 63, 61, 63, 70, 80, 58, 57, 58, 68, 70, 63, 50, 54, 57, 75, 61, 52, 60, 72, 55, 55, 75, 59, 63, 63, 140, 87, 63, 58, 65, 57, 64, 51, 65, 52, 108, 63, 55, 85, 82, 62, 71, 61, 72, 90, 57, 72, 65, 59, 61, 67, 70, 61, 43, 51, 57, 51, 58, 51, 43, 80, 54, 46, 67, 64, 64, 66, 54, 58, 69, 76, 108, 90, 59, 107, 54, 52, 75, 97, 56, 97, 39, 61, 85, 46, 68, 70, 72, 68, 57, 75, 70, 50, 55, 64, 56, 68, 54, 50, 83, 58, 57, 58, 66, 58, 132, 77, 85, 56, 88, 60, 71, 72, 69, 67, 66, 43, 57, 73, 70, 81, 57, 58, 65, 48, 53, 70, 69, 92, 66, 73, 75, 73, 54, 66, 78, 70, 59, 57, 62, 69, 51, 58, 64, 70, 59, 74, 52, 43, 65, 49, 90, 70, 57, 61, 56, 53, 67, 56, 65, 69, 69, 117, 62, 54, 56, 59, 83, 59, 44, 53, 59, 39, 61, 48, 60, 60, 99, 77, 69, 93, 57, 77, 66, 68, 65, 65, 73, 64, 65, 54, 68, 51, 59, 54, 71, 62, 59, 46, 64, 57, 70, 76, 62, 56, 78, 68, 74, 59, 83, 70, 65, 60, 59, 46, 53, 115, 71, 42, 71, 67, 88, 79, 61, 62, 53, 68, 59, 73, 65, 60, 75, 59, 61, 71, 54, 90, 47, 87, 80, 53, 67, 77, 122, 57, 56, 64, 80, 77, 59, 66, 58, 66, 62, 63, 84, 50, 73, 82, 79, 53, 81, 62, 77, 57, 108, 67, 59, 72, 52, 70, 110, 57, 70, 86, 62, 55, 77, 60, 75, 60, 63, 55, 76, 45, 88, 62, 58, 84, 82, 55, 89, 48, 53, 79, 55, 55, 55, 47, 73, 69, 50, 68, 73, 51, 62, 61, 50, 72, 51, 60, 72, 57, 54, 58, 80, 72, 73, 74, 73, 55, 84, 52, 59, 58, 48, 55, 95, 72, 61, 128, 59, 61, 84, 64, 68, 64, 41, 58, 81, 77, 48, 64, 69, 61, 63, 69, 45, 74, 66, 71, 64, 64, 51, 67, 79, 68, 68, 64, 51, 59, 53, 59, 57, 63, 74, 92, 73, 101, 59, 79, 59, 44, 86, 71, 51, 64, 62, 61, 141, 59, 83, 49, 99, 65, 62, 50, 68, 78, 62, 55, 55, 67, 64, 71, 65, 50, 57, 55, 56, 60, 96, 76, 64, 68, 75, 62, 61, 66, 69, 56, 64, 64, 44, 58, 53, 67, 94, 63, 59, 55, 78, 65, 64, 54, 72, 51, 62, 67, 51, 63, 91, 56, 57, 66, 71, 59, 64, 77, 67, 57, 52, 64, 58, 57, 57, 54, 76, 59, 51, 64, 63, 49, 58, 54, 74, 66, 60, 53, 74, 99, 62, 63, 77, 62, 64, 64, 54, 73, 65, 71, 61, 69, 61, 96, 53, 50, 61, 60, 50, 84, 54, 76, 69, 79, 63, 75, 61, 53, 65, 67, 79, 73, 45, 54, 55, 62, 68, 52, 64, 59, 50, 58, 66, 63, 58, 83, 61, 61, 57, 78, 57, 52, 52, 70, 64, 87, 53, 56, 62, 44, 68, 90, 75, 63, 57, 69, 57, 50, 43, 61, 56, 74, 51, 74, 119, 55, 63, 69, 64, 52, 66, 56, 66, 57, 60, 63, 82, 75, 77, 78, 53, 55, 62, 78, 59, 101, 67, 60, 70, 60, 59, 51, 105, 53, 79, 69, 67, 77, 57, 68, 79, 64, 57, 72, 71, 75, 67, 52, 67, 43, 69, 66, 69, 68, 52, 59, 56, 54, 73, 81, 55, 54, 74, 75, 57, 71, 58, 68, 56, 43, 68, 63, 87, 83, 66, 57, 51, 64, 71, 66, 86, 91, 45, 75, 87, 62, 60, 68, 55, 78, 71, 58, 58, 64, 73, 63, 54, 65, 79, 57, 51, 50, 83, 85, 51, 57, 61, 49, 62, 72, 119, 62, 76, 61, 60, 71, 67, 56, 57, 63, 50, 68, 70, 42, 59, 61, 62, 79, 50, 80, 62, 67, 68, 72, 57, 52, 75, 90, 56, 65, 51, 63, 69, 81, 57, 72, 61, 81, 57, 54, 58, 81, 77, 58, 82, 61, 77, 68, 66, 72, 80, 70, 70, 65, 64, 76, 72, 54, 60, 64, 50, 60, 56, 54, 62, 57, 64, 70, 81, 66, 55, 52, 70, 58, 57, 54, 59, 86, 69, 59, 58, 84, 46, 66, 72, 61, 64, 64, 61, 70, 75, 53, 58, 74, 66, 55, 54, 57, 55, 57, 70, 65, 55, 109, 91, 79, 62, 70, 58, 64, 65, 69, 77, 73, 46, 62, 62, 69, 65, 93, 58, 70, 56, 59, 69, 101, 86, 51, 99, 67, 60, 51, 59, 70, 60, 73, 57, 66, 75, 67, 46, 53, 63, 66, 58, 52, 79, 63, 63, 71, 68, 55, 49, 57, 68, 63, 78, 58, 47, 67, 76, 55, 74, 61, 72, 59, 71, 57, 69, 63, 58, 68, 90, 66, 82, 67, 62, 58, 71, 61, 72, 102, 52, 49, 50, 71, 67, 60, 59, 60, 44, 73, 71, 63, 52, 81, 57, 68, 75, 73, 69, 83, 52, 81, 62, 91, 54, 62, 75, 88, 93, 88, 57, 51, 63, 60, 54, 62, 62, 87, 52, 53, 87, 60, 64, 86, 67, 62, 84, 75, 64, 58, 64, 54, 59, 72, 44, 67, 57, 55, 105, 64, 59, 66, 58, 73, 66, 81, 73, 53, 55, 74, 85, 72, 71, 77, 72, 86, 90, 75, 68, 66, 62, 64, 76, 61, 62, 76, 50, 54, 66, 64, 71, 42, 46, 93, 83, 59, 128, 99, 63, 79, 80, 60, 69, 65, 76, 78, 57, 49, 60, 71, 68, 67, 56, 72, 50, 53, 70, 73, 86, 85, 54, 64, 79, 68, 73, 61, 68, 60, 76, 82, 53, 71, 54, 75, 51, 64, 72, 50, 57, 59, 40, 82, 84, 55, 66, 65, 81, 52, 67, 51, 54, 76, 76, 63, 62, 46, 93, 64, 63, 39, 66, 63, 61, 44, 64, 61, 71, 68, 67, 68, 37, 71, 84, 72, 61, 58, 48, 57, 52, 55, 53, 58, 61, 47, 51, 93, 70, 52, 52, 58, 50, 60, 57, 65, 63, 73, 57, 66, 80, 69, 73, 76, 99, 39, 64, 51, 52, 67, 57, 58, 57, 67, 64, 78, 56, 53, 63, 54, 58, 79, 64, 66, 77, 48, 64, 53, 57, 75, 65, 77, 53, 61, 64, 60, 54, 63, 68, 55, 52, 92, 54, 45, 60, 62, 73, 46, 68, 72, 62, 55, 64, 72, 32, 65, 67, 72, 80, 77, 75, 53, 61, 66, 58, 56, 70, 89, 60, 58, 91, 59, 60, 71, 57, 56, 44, 74, 60, 73, 71, 63, 86, 77, 51, 42, 60, 65, 61, 85, 70, 59, 58, 52, 60, 54, 68, 65, 51, 115, 74, 62, 78, 67, 61, 53, 71, 52, 68, 64, 65, 73, 56, 69, 74, 95, 54, 73, 54, 51, 64, 69, 58, 85, 65, 57, 61, 51, 83, 67, 50, 57, 59, 75, 73, 59, 52, 86, 147, 48, 52, 60, 61, 56, 54, 71, 63, 92, 70, 72, 46, 82, 75, 72, 87, 51, 60, 58, 65, 54, 107, 48, 51, 76, 74, 55, 68, 75, 72, 80, 54, 73, 71, 48, 60, 72, 58, 62, 73, 55, 53, 53, 45, 75, 62, 59, 62, 66, 65, 72, 73, 65, 79, 47, 59, 70, 78, 85, 59, 55, 79, 39, 70, 66, 63, 59, 75, 49, 61, 44, 57, 62, 102, 79, 51, 71, 64, 70, 72, 71, 53, 72, 63, 67, 66, 49, 55, 58, 79, 59, 73, 97, 56, 54, 63, 49, 71, 89, 70, 64, 49, 62, 69, 52, 69, 75, 96, 70, 76, 55, 128, 70, 54, 42, 81, 59, 65, 48, 65, 100, 91, 66, 78, 92, 44, 66, 60, 71, 74, 70, 64, 77, 87, 47, 67, 72, 59, 55, 66, 95, 68, 76, 55, 51, 46, 37, 68, 58, 69, 75, 61, 40, 49, 62, 55, 59, 85, 56, 74, 44, 62, 76, 56, 73, 60, 62, 63, 67, 62, 61, 55, 49, 72, 49, 56, 61, 55, 98, 64, 56, 60, 100, 65, 66, 60, 52, 65, 56, 78, 80, 64, 69, 81, 67, 65, 70, 59, 80, 57, 39, 76, 68, 58, 77, 57, 111, 72, 75, 50, 64, 58, 69, 57, 72, 73, 62, 70, 77, 56, 80, 76, 54, 61, 49, 63, 66, 63, 57, 79, 61, 58, 63, 96, 64, 62, 52, 63, 64, 61, 59, 77, 56, 45, 78, 76, 52, 65, 61, 56, 59, 59, 72, 60, 49, 53, 88, 64, 41, 57, 72, 62, 57, 70, 55, 77, 69, 58, 50, 57, 63, 65, 57, 60, 66, 77, 59, 68, 80, 55, 76, 57, 45, 74, 60, 63, 108, 53, 67, 73, 60, 78, 72, 71, 64, 33, 75, 47, 53, 48, 45, 62, 55, 62, 63, 83, 51, 57, 124, 75, 117, 69, 71, 79, 58, 58, 98, 79, 63, 67, 51, 71, 63, 62, 105, 61, 77, 77, 40, 63, 68, 86, 67, 69, 69, 70, 44, 82, 55, 91, 83, 53, 78, 67, 61, 55, 68, 61, 71, 63, 55, 71, 61, 52, 54, 87, 69, 83, 55, 57, 97, 53, 60, 58, 78, 67, 52, 63, 74, 54, 66, 67, 42, 54, 67, 63, 80, 60, 60, 52, 63, 60, 60, 72, 74, 55, 53, 71, 77, 53, 56, 77, 53, 65, 70, 78, 44, 74, 77, 58, 40, 78, 65, 56, 61, 48, 47, 60, 54, 67, 71, 82, 51, 59, 107, 67, 52, 63, 108, 66, 66, 61, 76, 55, 74, 64, 56, 72, 57, 60, 74, 72, 58, 91, 68, 58, 62, 62, 69, 50, 60, 72, 69, 86, 73, 62, 63, 75, 78, 88, 99, 51, 85, 86, 47, 68, 113, 72, 72, 51, 61, 61, 57, 72, 69, 60, 85, 79, 71, 65, 59, 89, 46, 66, 77, 52, 67, 81, 88, 82, 51, 72, 53, 60, 58, 73, 39, 71, 49, 73, 45, 57, 58, 62, 57, 53, 81, 105, 54, 71, 55, 57, 70, 51, 56, 72, 61, 52, 83, 59, 63, 83, 52, 74, 52, 66, 68, 62, 96, 76, 64, 44, 73, 57, 74, 74, 78, 49, 66, 72, 78, 53, 57, 75, 67, 45, 64, 64, 70, 78, 91, 54, 67, 44, 52, 58, 57, 71, 62, 61, 83, 51, 57, 51, 56, 61, 61, 71, 62, 70, 56, 88, 83, 70, 52, 56, 56, 67, 56, 61, 88, 89, 92, 57, 74, 87, 40, 59, 51, 60, 72, 61, 98, 64, 81, 64, 101, 71, 63, 65, 96, 64, 54, 46, 71, 54, 66, 53, 57, 80, 57, 51, 48, 72, 89, 54, 74, 72, 76, 57, 118, 58, 72, 57, 51, 81, 97, 82, 62, 71, 74, 53, 80, 76, 71, 49, 94, 47, 114, 70, 63, 49, 53, 91, 75, 85, 53, 73, 74, 51, 62, 66, 64, 60, 71, 81, 47, 37, 35, 72, 58, 77, 53, 58, 65, 73, 73, 38, 44, 65, 65, 68, 49, 76, 62, 51, 52, 68, 85, 71, 66, 79, 52, 71, 52, 92, 55, 74, 58, 67, 57, 57, 60, 48, 48, 49, 69, 61, 57, 47, 51, 76, 66, 55, 92, 48, 84, 78, 76, 53, 68, 84, 74, 61, 57, 67, 52, 92, 64, 53, 110, 68, 70, 70, 55, 111, 67, 47, 57, 55, 50, 58, 67, 53, 62, 53, 55, 52, 73, 71, 63, 75, 62, 85, 59, 52, 86, 82, 60, 57, 61, 88, 67, 45, 81, 56, 51, 63, 83, 56, 71, 55, 43, 60, 60, 76, 51, 51, 38, 73, 61, 61, 59, 88, 63, 63, 72, 68, 63, 58, 49, 60, 57, 53, 70, 71, 62, 67, 46, 69, 64, 114, 64, 82, 63, 56, 62, 91, 67, 53, 45, 50, 56, 38, 66, 65, 97, 57, 78, 69, 42, 54, 104, 63, 57, 85, 77, 44, 73, 86, 59, 75, 77, 53, 52, 56, 53, 50, 61, 64, 59, 63, 54, 37, 80, 52, 75, 81, 76, 71, 85, 57, 76, 54, 63, 46, 67, 40, 67, 52, 54, 62, 88, 54, 57, 68, 57, 47, 69, 57, 74, 54, 63, 71, 67, 78, 55, 59, 65, 48, 54, 62, 80, 52, 72, 78, 67, 78, 59, 76, 48, 80, 72, 53, 79, 61, 43, 54, 69, 56, 60, 54, 66, 49, 41, 67, 66, 101, 77, 69, 57, 41, 72, 65, 77, 55, 61, 64, 53, 76, 64, 88, 52, 71, 72, 83, 46, 50, 126, 69, 50, 92, 59, 84, 64, 87, 101, 60, 58, 95, 61, 50, 65, 59, 65, 55, 69, 52, 68, 68, 64, 70, 61, 71, 70, 63, 53, 88, 63, 51, 53, 107, 71, 60, 67, 71, 67, 77, 71, 61, 54, 60, 55, 59, 66, 57, 80, 56, 78, 70, 54, 50, 46, 55, 63, 53, 49, 57, 52, 82, 103, 59, 58, 59, 78, 92, 74, 63, 93, 50, 61, 50, 53, 45, 62, 106, 80, 67, 66, 70, 91, 64, 49, 75, 64, 82, 44, 82, 72, 88, 75, 53, 70, 84, 51, 63, 54, 57, 80, 77, 77, 59, 87, 60, 73, 58, 102, 47, 72, 87, 83, 74, 109, 44, 67, 63, 65, 68, 62, 59, 66, 49, 54, 58, 49, 78, 74, 49, 45, 68, 67, 65, 72, 65, 116, 56, 66, 72, 61, 46, 64, 78, 65, 67, 58, 50, 58, 85, 84, 57, 70, 53, 60, 72, 74, 74, 71, 55, 62, 62, 58, 65, 65, 58, 65, 72, 66, 74, 62, 68, 66, 75, 44, 68, 66, 101, 67, 69, 58, 57, 57, 52, 82, 72, 63, 71, 60, 80, 83, 82, 45, 91, 61, 64, 71, 53, 57, 84, 67, 73, 64, 62, 64, 94, 64, 55, 83, 58, 58, 49, 83, 62, 55, 56, 64, 81, 55, 80, 54, 55, 72, 59, 59, 55, 76, 60, 69, 61, 100, 47, 72, 87, 53, 58, 67, 74, 82, 77, 71, 60, 85, 63, 64, 58, 58, 78, 45, 75, 78, 72, 71, 77, 64, 60, 77, 61, 79, 68, 51, 50, 60, 56, 52, 76, 98, 57, 78, 44, 72, 82, 76, 101, 52, 63, 69, 58, 70, 65, 62, 63, 69, 56, 67, 72, 51, 73, 54, 40, 50, 71, 60, 62, 71, 61, 72, 78, 36, 91, 56, 43, 58, 81, 59, 52, 57, 75, 43, 60, 65, 53, 54, 85, 85, 76, 63, 57, 62, 57, 60, 59, 67, 66, 51, 66, 98, 46, 58, 81, 77, 73, 50, 68, 60, 80, 50, 56, 45, 61, 60, 62, 82, 61, 76, 47, 54, 68, 63, 53, 23, 52, 75, 69, 69, 80, 72, 65, 72, 73, 53, 78, 86, 79, 133, 62, 105, 100, 107, 59, 100, 51, 55, 57, 68, 59, 50, 67, 61, 68, 74, 121, 64, 62, 87, 65, 61, 68, 67, 71, 70, 96, 57, 69, 68, 77, 84, 79, 69, 75, 65, 50, 56, 70, 61, 48, 60, 64, 80, 61, 69, 73, 68, 67, 53, 37, 59, 79, 73, 62, 53, 65, 60, 60, 69, 64, 58, 61, 58, 79, 81, 62, 57, 56, 65, 69, 64, 58, 74, 65, 52, 85, 81, 70, 44, 54, 55, 61, 74, 57, 81, 69, 52, 66, 50, 76, 78, 53, 152, 61, 51, 49, 72, 54, 50, 52, 58, 76, 65, 48, 87, 95, 58, 67, 57, 87, 58, 64, 75, 83, 60, 62, 71, 58, 78, 54, 65, 44, 58, 63, 100, 73, 59, 48, 76, 64, 81, 57, 54, 64, 70, 61, 77, 74, 61, 82, 69, 66, 96, 64, 53, 52, 55, 66, 78, 57, 69, 66, 66, 59, 75, 59, 46, 73, 60, 82, 108, 95, 63, 66, 71, 70, 64, 62, 68, 54, 48, 85, 51, 69, 90, 74, 91, 49, 61, 56, 64, 74, 53, 43, 70, 52, 61, 67, 53, 100, 77, 81, 52, 59, 59, 50, 71, 68, 79, 54, 56, 62, 49, 47, 110, 70, 95, 67, 51, 65, 54, 72, 56, 59, 136, 61, 64, 78, 100, 58, 76, 52, 76, 77, 97, 56, 73, 84, 71, 84, 60, 70, 57, 74, 71, 59, 70, 72, 62, 53, 66, 54, 47, 88, 64, 94, 59, 50, 62, 52, 65, 73, 66, 56, 79, 61, 60, 50, 48, 89, 62, 68, 60, 70, 65, 70, 61, 63, 70, 37, 64, 74, 69, 69, 61, 78, 70, 55, 52, 80, 49, 60, 72, 73, 33, 72, 83, 73, 72, 66, 59, 53, 64, 78, 85, 63, 81, 73, 67, 69, 55, 74, 58, 62, 69, 59, 92, 64, 58, 62, 90, 44, 56, 73, 57, 62, 67, 68, 44, 83, 72, 38, 85, 68, 60, 60, 76, 73, 54, 65, 71, 48, 53, 74, 59, 79, 56, 106, 53, 66, 90, 65, 62, 68, 75, 68, 59, 67, 61, 62, 69, 110, 57, 71, 51, 77, 68, 84, 49, 84, 47, 62, 60, 37, 74, 64, 69, 62, 48, 68, 63, 67, 56, 60, 68, 48, 89, 65, 51, 58, 63, 68, 70, 82, 72, 58, 60, 50, 65, 60, 63, 84, 55, 155, 58, 60, 60, 67, 47, 73, 51, 75, 58, 68, 71, 74, 44, 57, 60, 68, 93, 50, 53, 64, 51, 50, 53, 76, 61, 72, 57, 50, 65, 78, 80, 59, 71, 59, 66, 77, 80, 81, 83, 68, 77, 57, 52, 61, 65, 64, 73, 82, 100, 65, 49, 78, 82, 69, 58, 53, 63, 84, 68, 65, 79, 59, 68, 103, 76, 54, 87, 77, 108, 58, 65, 66, 111, 57, 102, 69, 58, 68, 66, 73, 68, 64, 57, 51, 61, 53, 85, 57, 56, 51, 69, 60, 57, 81, 63, 67, 40, 63, 67, 48, 60, 45, 62, 76, 45, 89, 62, 65, 61, 82, 87, 60, 82, 66, 91, 62, 49, 66, 63, 74, 51, 101, 49, 68, 62, 59, 42, 69, 77, 60, 62, 76, 75, 61, 55, 70, 90, 73, 53, 53, 42, 73, 71, 76, 43, 58, 74, 65, 61, 57, 70, 54, 55, 44, 79, 41, 46, 64, 78, 58, 67, 49, 59, 48, 103, 73, 64, 50, 49, 48, 76, 63, 49, 67, 54, 60, 59, 54, 60, 65, 64, 50, 60, 67, 78, 52, 60, 57, 57, 69, 102, 79, 86, 67, 57, 79, 75, 51, 50, 58, 90, 103, 76, 95, 60, 54, 54, 63, 62, 61, 70, 58, 57, 54, 62, 73, 59, 77, 79, 62, 56, 60, 70, 81, 59, 67, 58, 51, 47, 58, 56, 52, 49, 60, 69, 63, 66, 64, 60, 60, 92, 69, 59, 63, 112, 59, 62, 93, 72, 48, 63, 53, 73, 56, 67, 52, 47, 88, 55, 73, 57, 60, 64, 64, 65, 38, 38, 76, 75, 55, 77, 83, 48, 65, 50, 85, 46, 48, 54, 51, 74, 86, 59, 68, 81, 65, 73, 101, 50, 49, 52, 83, 57, 62, 86, 64, 64, 90, 56, 49, 113, 62, 81, 64, 158, 60, 63, 73, 58, 60, 90, 64, 68, 54, 56, 68, 76, 62, 64, 51, 57, 70, 65, 84, 54, 122, 76, 64, 90, 57, 53, 63, 73, 63, 72, 74, 62, 71, 55, 64, 61, 53, 55, 68, 47, 63, 75, 61, 65, 69, 49, 79, 35, 47, 48, 100, 53, 54, 63, 83, 69, 62, 69, 65, 73, 59, 62, 66, 84, 48, 72, 60, 57, 53, 58, 65, 55, 72, 82, 97, 61, 53, 67, 49, 96, 73, 55, 65, 107, 57, 63, 84, 57, 63, 75, 43, 51, 74, 61, 54, 97, 75, 88, 57, 66, 53, 46, 89, 66, 73, 58, 59, 69, 66, 61, 54, 56, 61, 49, 59, 60, 74, 73, 65, 72, 56, 70, 51, 67, 92, 64, 59, 96, 67, 58, 44, 83, 60, 67, 50, 79, 71, 69, 58, 54, 65, 59, 70, 76, 69, 55, 45, 41, 117, 61, 59, 80, 59, 48, 70, 80, 53, 65, 56, 52, 66, 79, 60, 57, 57, 39, 77, 37, 63, 60, 94, 54, 56, 60, 54, 55, 81, 70, 52, 71, 42, 81, 92, 75, 58, 88, 71, 69, 71, 46, 60, 63, 59, 70, 85, 90, 83, 81, 61, 69, 70, 96, 61, 76, 66, 64, 82, 54, 65, 55, 72, 72, 109, 91, 61, 47, 75, 76, 101, 65, 81, 86, 63, 73, 81, 53, 47, 66, 50, 56, 55, 68, 66, 55, 58, 72, 55, 65, 49, 60, 55, 53, 81, 66, 65, 53, 68, 77, 63, 87, 58, 63, 61, 116, 58, 84, 80, 65, 62, 70, 62, 45, 61, 57, 92, 41, 75, 40, 58, 61, 69, 66, 46, 61, 71, 49, 70, 76, 62, 62, 73, 58, 73, 70, 78, 47, 80, 56, 69, 58, 76, 97, 68, 71, 80, 63, 60, 62, 50, 97, 58, 83, 48, 56, 69, 78, 65, 78, 63, 72, 103, 53, 69, 62, 82, 47, 60, 113, 68, 82, 45, 93, 66, 74, 65, 77, 64, 80, 64, 77, 64, 60, 77, 68, 57, 60, 52, 62, 77, 78, 81, 98, 52, 50, 68, 61, 101, 58, 63, 63, 57, 49, 58, 73, 59, 84, 64, 76, 92, 52, 74, 59, 45, 64, 67, 55, 73, 64, 72, 45, 113, 61, 90, 82, 36, 45, 88, 65, 77, 64, 59, 75, 68, 68, 40, 60, 50, 65, 75, 63, 55, 82, 99, 67, 28, 72, 72, 68, 81, 86, 61, 77, 64, 60, 56, 47, 51, 70, 64, 58, 70, 56, 61, 99, 79, 100, 73, 56, 69, 70, 52, 47, 60, 63, 38, 85, 57, 82, 58, 78, 62, 77, 80, 73, 56, 53, 75, 78, 58, 77, 67, 54, 63, 76, 43, 58, 48, 58, 59, 69, 50, 40, 54, 71, 31, 62, 73, 84, 72, 87, 76, 69, 68, 37, 73, 74, 68, 69, 65, 97, 73, 55, 71, 65, 64, 59, 72, 80, 52, 63, 59, 60, 53, 64, 60, 71, 72, 73, 69, 70, 53, 51, 53, 68, 84, 75, 69, 61, 64, 68, 86, 55, 68, 64, 59, 50, 58, 70, 50, 63, 62, 77, 51, 52, 47, 65, 86, 66, 53, 49, 31, 81, 55, 84, 58, 76, 88, 60, 60, 81, 72, 64, 57, 68, 76, 70, 54, 60, 63, 49, 68, 97, 64, 40, 59, 76, 57, 59, 60, 129, 71, 82, 59, 61, 60, 60, 65, 61, 49, 87, 59, 57, 58, 86, 57, 78, 78, 106, 81, 65, 63, 98, 71, 54, 46, 76, 83, 80, 82, 66, 62, 83, 55, 76, 79, 65, 54, 63, 64, 88, 68, 89, 65, 54, 70, 50, 56, 48, 74, 85, 49, 76, 64, 89, 89, 64, 63, 65, 64, 71, 69, 53, 60, 64, 85, 52, 57, 64, 62, 54, 62, 88, 62, 49, 66, 65, 70, 129, 58, 107, 76, 155, 63, 89, 69, 57, 78, 47, 50, 66, 61, 49, 57, 71, 112, 58, 49, 58, 54, 62, 62, 46, 66, 37, 79, 60, 69, 53, 76, 59, 77, 77, 60, 58, 53, 54, 59, 94, 58, 68, 62, 57, 58, 68, 52, 68, 77, 58, 90, 65, 56, 54, 67, 69, 64, 80, 75, 47, 68, 75, 66, 57, 62, 56, 57, 66, 54, 67, 38, 44, 58, 47, 65, 77, 69, 43, 73, 58, 88, 101, 74, 56, 46, 69, 68, 88, 60, 78, 82, 59, 43, 69, 53, 49, 72, 75, 121, 71, 51, 84, 51, 52, 74, 64, 54, 90, 38, 63, 61, 68, 60, 52, 68, 71, 63, 57, 71, 71, 45, 69, 44, 48, 87, 63, 58, 80, 97, 83, 44, 64, 69, 70, 85, 97, 72, 74, 82, 48, 67, 65, 63, 51, 60, 79, 63, 92, 84, 36, 63, 64, 53, 74, 92, 62, 78, 57, 55, 53, 56, 36, 55, 54, 63, 31, 78, 68, 57, 62, 45, 72, 59, 62, 54, 83, 87, 75, 51, 61, 67, 82, 46, 66, 71, 71, 70, 65, 67, 55, 50, 90, 81, 73, 51, 58, 65, 61, 43, 84, 53, 58, 57, 76, 78, 78, 58, 64, 71, 71, 73, 62, 72, 75, 67, 55, 54, 67, 91, 60, 89, 47, 69, 76, 69, 46, 85, 63, 78, 90, 112, 41, 79, 56, 90, 51, 71, 67, 43, 35, 78, 56, 82, 66, 82, 44, 59, 77, 51, 58, 84, 70, 61, 84, 80, 58, 68, 54, 57, 61, 111, 64, 78, 95, 45, 71, 103, 85, 57, 70, 87, 43, 65, 59, 64, 89, 55, 43, 66, 52, 65, 60, 40, 54, 81, 57, 50, 53, 66, 90, 68, 81, 90, 43, 60, 75, 62, 78, 66, 59, 91, 63, 67, 64, 71, 45, 116, 54, 62, 79, 70, 88, 60, 51, 105, 64, 52, 58, 54, 72, 45, 73, 54, 65, 60, 75, 54, 63, 80, 41, 93, 97, 68, 57, 48, 74, 83, 79, 61, 37, 69, 58, 74, 46, 85, 68, 52, 44, 74, 108, 47, 82, 52, 55, 81, 49, 93, 43, 51, 67, 78, 80, 78, 57, 58, 47, 65, 53, 66, 79, 107, 61, 71, 79, 70, 93, 72, 70, 61, 62, 69, 51, 61, 59, 68, 74, 62, 85, 65, 68, 58, 85, 82, 48, 60, 63, 46, 54, 68, 70, 55, 59, 65, 69, 85, 75, 47, 96, 44, 58, 55, 52, 97, 74, 78, 54, 57, 64, 48, 54, 84, 62, 56, 60, 58, 56, 63, 67, 55, 56, 75, 82, 57, 63, 61, 57, 62, 46, 64, 68, 70, 72, 64, 62, 49, 60, 85, 90, 74, 47, 71, 86, 81, 48, 92, 83, 96, 47, 76, 53, 81, 107, 61, 50, 73, 58, 55, 68, 54, 62, 56, 64, 46, 57, 56, 67, 62, 60, 88, 57, 79, 79, 89, 60, 76, 62, 50, 48, 74, 57, 65, 69, 85, 64, 117, 80, 74, 84, 50, 61, 84, 52, 107, 63, 56, 59, 68, 67, 83, 46, 65, 46, 61, 66, 55, 72, 46, 45, 106, 71, 47, 63, 75, 66, 49, 75, 72, 80, 70, 47, 68, 62, 59, 66, 71, 65, 56, 67, 54, 63, 69, 64, 58, 73, 77, 84, 57, 66, 68, 72, 57, 77, 66, 72, 65, 50, 67, 95, 75, 92, 62, 73, 46, 60, 57, 62, 55, 71, 62, 52, 69, 60, 58, 66, 66, 85, 65, 74, 57, 61, 52, 65, 89, 71, 58, 74, 79, 50, 55, 59, 66, 73, 57, 73, 59, 54, 59, 69, 78, 57, 71, 52, 51, 72, 47, 64, 79, 71, 66, 57, 58, 57, 48, 51, 60, 46, 69, 55, 65, 63, 82, 68, 54, 65, 52, 115, 67, 56, 72, 77, 56, 65, 52, 79, 66, 75, 47, 44, 55, 57, 41, 80, 34, 75, 91, 73, 70, 63, 59, 61, 44, 77, 68, 77, 69, 65, 95, 50, 47, 58, 61, 58, 77, 70, 71, 78, 75, 81, 48, 67, 85, 62, 66, 81, 79, 46, 59, 90, 72, 68, 81, 62, 65, 64, 64, 54, 115, 45, 67, 56, 59, 57, 61, 61, 101, 54, 51, 57, 59, 75, 64, 71, 78, 63, 61, 46, 67, 81, 75, 63, 81, 50, 32, 44, 50, 63, 55, 58, 57, 61, 56, 63, 67, 56, 70, 47, 67, 62, 38, 67, 66, 78, 62, 46, 73, 47, 81, 73, 80, 71, 66, 51, 72, 34, 76, 70, 63, 67, 65, 55, 67, 75, 48, 39, 70, 56, 82, 65, 59, 39, 75, 60, 71, 65, 79, 77, 91, 138, 79, 65, 68, 67, 74, 93, 77, 75, 62, 50, 92, 76, 43, 55, 71, 85, 100, 67, 88, 53, 61, 71, 74, 66, 74, 54, 62, 71, 71, 57, 57, 61, 57, 72, 69, 60, 76, 74, 84, 59, 67, 40, 73, 58, 94, 109, 61, 67, 81, 81, 66, 68, 60, 70, 56, 75, 65, 86, 117, 69, 71, 82, 60, 59, 76, 53, 70, 63, 82, 76, 62, 68, 73, 130, 58, 59, 51, 60, 41, 66, 63, 43, 54, 69, 67, 48, 55, 41, 55, 83, 66, 63, 53, 62, 56, 50, 68, 57, 85, 57, 131, 85, 54, 50, 54, 84, 48, 41, 52, 48, 71, 52, 69, 61, 72, 74, 67, 81, 83, 51, 88, 83, 73, 38, 49, 79, 47, 78, 56, 45, 63, 58, 61, 66, 59, 53, 86, 73, 72, 85, 53, 44, 79, 66, 48, 54, 50, 65, 73, 73, 70, 66, 58, 76, 56, 65, 44, 70, 53, 70, 53, 80, 62, 63, 49, 57, 77, 89, 92, 39, 76, 55, 77, 49, 91, 87, 69, 43, 85, 63, 74, 75, 53, 61, 66, 67, 78, 88, 79, 60, 74, 65, 45, 44, 60, 58, 66, 75, 65, 52, 87, 91, 57, 58, 81, 37, 51, 44, 68, 88, 57, 50, 61, 44, 65, 90, 73, 57, 64, 87, 56, 66, 71, 62, 70, 50, 43, 64, 58, 76, 54, 61, 65, 99, 74, 62, 77, 47, 52, 78, 70, 80, 71, 65, 67, 62, 67, 73, 54, 62, 58, 58, 75, 75, 70, 95, 70, 65, 56, 64, 56, 55, 65, 75, 48, 60, 57, 63, 89, 58, 51, 66, 76, 49, 77, 45, 82, 90, 102, 59, 50, 72, 49, 55, 54, 65, 47, 57, 58, 79, 100, 77, 67, 67, 74, 58, 72, 67, 64, 56, 98, 58, 59, 57, 34, 65, 63, 56, 80, 107, 64, 53, 72, 96, 66, 65, 49, 63, 67, 86, 106, 49, 74, 78, 85, 62, 75, 52, 58, 60, 52, 66, 62, 80, 89, 88, 65, 52, 95, 76, 66, 72, 93, 80, 74, 83, 50, 73, 76, 78, 58, 46, 44, 56, 74, 51, 108, 52, 63, 53, 66, 62, 67, 75, 80, 115, 65, 82, 71, 64, 81, 82, 65, 60, 56, 49, 57, 70, 79, 76, 117, 68, 58, 82, 49, 60, 75, 69, 68, 51, 72, 48, 87, 70, 54, 50, 77, 64, 93, 49, 58, 48, 55, 57, 66, 60, 55, 74, 61, 65, 70, 66, 75, 58, 82, 68, 80, 71, 51, 53, 53, 58, 55, 64, 67, 60, 68, 71, 58, 52, 68, 77, 63, 67, 62, 57, 67, 74, 69, 90, 115, 62, 65, 51, 54, 77, 42, 51, 54, 78, 50, 87, 68, 46, 89, 60, 81, 62, 82, 66, 61, 70, 49, 61, 62, 62, 100, 47, 62, 68, 168, 67, 84, 50, 67, 60, 97, 46, 79, 57, 67, 73, 27, 51, 50, 78, 54, 55, 67, 69, 72, 61, 57, 48, 76, 72, 67, 47, 66, 54, 55, 63, 68, 105, 49, 52, 64, 59, 71, 59, 73, 68, 69, 76, 50, 69, 61, 59, 71, 49, 59, 56, 61, 43, 41, 74, 74, 69, 66, 66, 78, 72, 51, 56, 63, 59, 78, 53, 53, 54, 49, 59, 61, 59, 63, 47, 59, 56, 58, 62, 53, 60, 47, 79, 78, 57, 67, 71, 104, 55, 78, 59, 55, 54, 100, 88, 52, 47, 80, 59, 65, 64, 62, 44, 78, 59, 51, 77, 67, 54, 77, 54, 84, 70, 56, 54, 78, 80, 65, 62, 74, 55, 64, 46, 70, 139, 64, 61, 64, 65, 62, 62, 61, 55, 64, 67, 64, 61, 62, 52, 81, 53, 70, 47, 95, 46, 37, 64, 85, 64, 57, 72, 63, 64, 80, 64, 47, 107, 83, 73, 104, 61, 69, 32, 109, 78, 82, 49, 96, 56, 69, 86, 56, 63, 51, 82, 51, 73, 60, 81, 66, 63, 58, 74, 51, 72, 66, 72, 46, 54, 63, 61, 82, 69, 88, 58, 54, 50, 62, 56, 68, 59, 58, 83, 67, 70, 54, 65, 78, 61, 72, 51, 73, 64, 106, 69, 72, 85, 78, 87, 77, 68, 80, 61, 82, 52, 60, 54, 66, 92, 102, 72, 64, 85, 44, 86, 56, 56, 55, 82, 72, 64, 75, 70, 68, 55, 74, 62, 75, 58, 81, 55, 40, 74, 62, 103, 78, 71, 80, 71, 76, 72, 57, 52, 52, 81, 42, 65, 69, 71, 71, 73, 58, 108, 57, 52, 46, 64, 74, 58, 56, 81, 38, 57, 58, 70, 63, 57, 45, 59, 101, 64, 73, 114, 63, 53, 69, 91, 82, 70, 71, 54, 76, 60, 57, 67, 57, 69, 68, 63, 59, 70, 46, 63, 92, 101, 66, 60, 57, 86, 68, 54, 70, 87, 37, 59, 74, 43, 61, 67, 54, 59, 80, 62, 79, 41, 64, 54, 64, 70, 54, 49, 86, 68, 52, 69, 76, 55, 57, 68, 68, 56, 56, 71, 58, 60, 62, 70, 73, 61, 93, 67, 73, 57, 67, 54, 80, 55, 39, 65, 103, 81, 70, 78, 91, 77, 60, 65, 53, 60, 72, 52, 48, 53, 57, 54, 74, 60, 62, 45, 52, 53, 74, 69, 66, 61, 55, 86, 89, 61, 67, 62, 107, 45, 68, 102, 52, 58, 77, 55, 64, 77, 95, 60, 55, 65, 82, 122, 59, 78, 63, 69, 80, 60, 51, 98, 54, 64, 61, 34, 62, 85, 51, 70, 86, 58, 58, 67, 57, 79, 64, 68, 76, 68, 81, 72, 80, 53, 69, 77, 71, 123, 52, 70, 62, 58, 59, 57, 60, 58, 61, 74, 64, 106, 57, 71, 57, 67, 57, 52, 74, 68, 76, 58, 68, 57, 88, 68, 100, 51, 55, 86, 76, 57, 63, 53, 80, 55, 74, 52, 65, 99, 66, 51, 62, 45, 67, 90, 72, 73, 85, 77, 81, 57, 59, 49, 61, 50, 54, 62, 58, 38, 74, 56, 58, 48, 57, 45, 73, 70, 87, 84, 64, 71, 55, 110, 69, 68, 45, 66, 69, 55, 60, 71, 63, 48, 78, 51, 60, 42, 48, 52, 81, 45, 61, 59, 58, 54, 127, 80, 49, 51, 57, 66, 53, 46, 123, 58, 54, 56, 66, 56, 60, 50, 75, 65, 67, 63, 72, 33, 46, 60, 74, 52, 70, 72, 62, 54, 58, 58, 57, 57, 41, 118, 75, 82, 62, 54, 76, 59, 45, 47, 105, 57, 86, 69, 60, 89, 62, 53, 52, 54, 71, 62, 48, 60, 77, 55, 69, 59, 69, 45, 73, 90, 79, 63, 54, 86, 112, 61, 55, 84, 42, 61, 79, 65, 63, 56, 81, 44, 61, 63, 62, 58, 58, 66, 42, 53, 67, 87, 82, 58, 50, 66, 66, 85, 60, 62, 58, 54, 75, 76, 48, 60, 57, 75, 67, 76, 60, 67, 64, 44, 62, 67, 51, 52, 64, 87, 75, 54, 69, 60, 55, 73, 54, 80, 64, 77, 70, 94, 55, 48, 73, 78, 73, 79, 71, 55, 51, 64, 61, 58, 59, 67, 56, 62, 73, 62, 65, 58, 74, 61, 57, 55, 53, 82, 59, 85, 61, 58, 49, 63, 55, 61, 77, 87, 71, 65, 65, 70, 72, 55, 60, 66, 50, 62, 71, 77, 51, 57, 60, 45, 64, 79, 54, 72, 51, 52, 54, 67, 68, 75, 67, 48, 56, 79, 57, 112, 62, 67, 69, 60, 46, 60, 61, 51, 66, 57, 63, 85, 50, 79, 70, 43, 66, 63, 68, 59, 59, 71, 115, 72, 93, 55, 64, 55, 81, 84, 51, 61, 58, 62, 92, 61, 61, 55, 76, 103, 60, 61, 56, 47, 53, 80, 64, 57, 40, 168, 68, 63, 76, 52, 62, 69, 60, 62, 47, 58, 64, 67, 69, 68, 90, 83, 91, 58, 84, 54, 62, 61, 71, 70, 71, 79, 67, 81, 67, 176, 74, 85, 76, 36, 59, 69, 54, 52, 63, 45, 50, 65, 68, 73, 51, 66, 50, 102, 87, 111, 76, 47, 48, 61, 67, 49, 48, 70, 59, 73, 67, 63, 64, 69, 66, 54, 51, 67, 56, 48, 76, 60, 82, 87, 76, 48, 76, 76, 56, 54, 61, 62, 93, 50, 66, 68, 55, 60, 67, 59, 54, 125, 69, 62, 41, 57, 40, 64, 71, 44, 60, 57, 81, 65, 56, 73, 71, 64, 68, 40, 86, 62, 55, 59, 59, 71, 70, 75, 61, 67, 56, 66, 56, 57, 84, 62, 89, 42, 47, 100, 61, 44, 84, 52, 77, 54, 71, 54, 60, 63, 82, 62, 58, 68, 93, 72, 73, 54, 59, 91, 45, 71, 43, 95, 78, 64, 85, 77, 64, 74, 80, 54, 46, 80, 75, 45, 69, 56, 71, 51, 74, 60, 49, 73, 59, 83, 61, 84, 72, 55, 49, 70, 73, 67, 76, 68, 52, 60, 54, 75, 66, 51, 89, 51, 57, 79, 46, 74, 64, 77, 61, 65, 58, 88, 50, 55, 68, 48, 64, 108, 72, 71, 81, 56, 92, 67, 96, 53, 40, 55, 60, 62, 71, 69, 83, 46, 69, 65, 64, 69, 65, 50, 102, 50, 46, 65, 68, 65, 72, 54, 73, 61, 73, 53, 48, 83, 70, 67, 61, 57, 65, 59, 74, 57, 57, 75, 49, 64, 129, 56, 75, 75, 108, 56, 56, 92, 128, 69, 69, 61, 56, 76, 68, 51, 76, 97, 87, 63, 70, 75, 72, 59, 44, 47, 64, 72, 70, 83, 74, 65, 56, 57, 59, 61, 72, 44, 61, 63, 57, 70, 72, 75, 57, 63, 68, 80, 83, 68, 68, 97, 54, 73, 56, 59, 48, 72, 86, 71, 60, 61, 81, 80, 57, 63, 67, 53, 65, 58, 58, 47, 62, 69, 64, 64, 72, 59, 65, 27, 91, 44, 38, 62, 88, 51, 64, 57, 66, 63, 58, 74, 80, 66, 58, 74, 78, 71, 72, 118, 64, 66, 54, 52, 83, 52, 55, 66, 54, 47, 77, 45, 89, 53, 55, 55, 130, 69, 46, 71, 72, 70, 58, 66, 52, 61, 64, 72, 61, 62, 73, 51, 79, 54, 67, 42, 49, 59, 66, 63, 78, 57, 42, 110, 55, 62, 80, 63, 71, 77, 61, 60, 75, 49, 89, 59, 61, 104, 67, 54, 58, 35, 64, 71, 71, 72, 91, 83, 85, 60, 81, 64, 61, 70, 76, 73, 44, 76, 88, 46, 57, 63, 90, 80, 60, 84, 57, 84, 53, 57, 51, 49, 84, 68, 75, 59, 54, 57, 58, 70, 55, 62, 79, 50, 64, 68, 49, 57, 58, 49, 52, 98, 101, 61, 78, 37, 70, 78, 80, 80, 49, 71, 92, 65, 59, 60, 64, 71, 58, 57, 77, 51, 60, 57, 49, 65, 60, 40, 76, 80, 88, 66, 62, 58, 43, 59, 57, 97, 49, 46, 80, 57, 55, 87, 66, 61, 51, 67, 92, 84, 69, 57, 66, 63, 69, 68, 59, 81, 64, 57, 61, 62, 70, 70, 102, 78, 72, 74, 65, 71, 59, 59, 73, 49, 93, 77, 41, 90, 83, 70, 72, 64, 77, 70, 60, 64, 62, 39, 68, 52, 30, 79, 50, 53, 64, 72, 73, 68, 59, 80, 59, 73, 75, 41, 86, 49, 63, 43, 41, 65, 95, 79, 74, 66, 87, 67, 39, 50, 42, 54, 70, 75, 85, 59, 64, 67, 54, 68, 58, 61, 76, 61, 81, 80, 60, 46, 61, 70, 60, 71, 69, 53, 69, 61, 71, 59, 104, 56, 43, 66, 55, 56, 67, 96, 66, 57, 79, 80, 59, 77, 76, 70, 59, 66, 55, 58, 83, 117, 71, 64, 52, 61, 54, 78, 100, 91, 67, 61, 61, 67, 78, 64, 58, 64, 47, 61, 70, 41, 58, 50, 61, 76, 66, 54, 46, 65, 61, 72, 57, 69, 46, 51, 63, 64, 50, 66, 54, 63, 55, 64, 58, 75, 55, 61, 52, 68, 58, 69, 62, 60, 59, 77, 47, 80, 61, 56, 75, 105, 56, 72, 45, 47, 60, 85, 61, 72, 73, 55, 65, 96, 65, 59, 70, 72, 72, 86, 62, 56, 69, 61, 47, 57, 91, 74, 47, 51, 51, 56, 55, 58, 50, 50, 42, 70, 68, 59, 91, 74, 97, 46, 75, 58, 72, 60, 77, 60, 60, 73, 69, 57, 47, 81, 64, 68, 51, 55, 57, 77, 61, 65, 48, 61, 68, 59, 69, 41, 63, 78, 79, 56, 47, 69, 102, 59, 47, 64, 66, 86, 57, 84, 78, 83, 77, 61, 70, 71, 47, 48, 69, 101, 75, 54, 77, 65, 75, 77, 77, 63, 48, 39, 68, 64, 43, 73, 43, 69, 78, 65, 77, 70, 69, 87, 72, 70, 63, 64, 84, 89, 82, 61, 83, 67, 48, 63, 60, 46, 54, 59, 62, 52, 56, 56, 57, 64, 56, 58, 76, 66, 75, 76, 71, 50, 69, 76, 54, 62, 73, 82, 60, 65, 77, 113, 60, 67, 76, 65, 64, 94, 85, 58, 60, 81, 56, 62, 66, 62, 71, 64, 51, 98, 60, 80, 77, 57, 97, 57, 54, 61, 60, 85, 76, 47, 41, 52, 57, 57, 62, 51, 54, 69, 48, 81, 53, 74, 54, 67, 55, 60, 43, 65, 72, 72, 41, 70, 66, 56, 78, 59, 59, 82, 69, 93, 63, 91, 56, 61, 66, 45, 63, 68, 83, 63, 81, 59, 57, 45, 52, 69, 58, 62, 51, 66, 77, 81, 49, 47, 73, 67, 82, 64, 68, 78, 59, 62, 74, 69, 65, 76, 69, 71, 69, 113, 68, 44, 65, 59, 49, 57, 78, 59, 38, 71, 77, 66, 51, 46, 44, 56, 56, 99, 66, 45, 60, 71, 165, 67, 66, 49, 95, 48, 55, 51, 46, 64, 122, 52, 51, 77, 73, 51, 77, 50, 68, 65, 56, 55, 71, 62, 92, 60, 78, 67, 65, 50, 73, 53, 61, 78, 67, 47, 67, 72, 60, 64, 64, 67, 52, 59, 60, 66, 62, 62, 67, 80, 48, 72, 54, 64, 115, 85, 74, 78, 70, 62, 77, 73, 48, 72, 29, 53, 61, 64, 64, 54, 53, 97, 51, 71, 74, 64, 60, 100, 101, 69, 59, 78, 74, 64, 85, 53, 82, 61, 55, 69, 51, 60, 73, 52, 58, 72, 68, 59, 62, 68, 60, 54, 50, 60, 65, 82, 87, 48, 52, 74, 67, 62, 113, 60, 69, 93, 77, 97, 82, 56, 64, 68, 75, 79, 52, 78, 63, 97, 84, 72, 72, 61, 65, 79, 70, 68, 63, 81, 67, 86, 50, 101, 84, 81, 57, 57, 64, 65, 81, 81, 85, 68, 85, 53, 48, 52, 82, 72, 58, 47, 68, 67, 91, 49, 64, 76, 57, 93, 47, 70, 68, 47, 83, 59, 138, 73, 93, 59, 98, 61, 43, 79, 55, 81, 74, 35, 70, 77, 82, 53, 83, 56, 65, 55, 65, 64, 49, 59, 62, 60, 50, 66, 80, 52, 82, 64, 61, 54, 50, 72, 75, 76, 89, 65, 56, 75, 35, 67, 92, 39, 48, 61, 66, 64, 87, 77, 69, 48, 85, 39, 68, 43, 68, 50, 49, 48, 59, 101, 80, 83, 99, 57, 56, 66, 45, 49, 53, 57, 103, 50, 45, 64, 54, 77, 76, 65, 54, 42, 63, 84, 66, 42, 55, 64, 66, 35, 53, 85, 81, 71, 72, 59, 58, 58, 50, 62, 50, 52, 66, 65, 58, 73, 63, 56, 71, 47, 64, 55, 60, 54, 84, 69, 73, 55, 85, 47, 80, 69, 67, 65, 47, 55, 93, 86, 74, 49, 60, 61, 53, 67, 74, 81, 46, 66, 55, 73, 71, 67, 61, 88, 64, 55, 99, 39, 51, 73, 66, 48, 53, 80, 54, 44, 33, 48, 61, 69, 71, 98, 82, 71, 38, 56, 43, 55, 76, 93, 61, 69, 79, 49, 85, 65, 66, 47, 61, 60, 60, 73, 56, 79, 64, 61, 65, 68, 47, 89, 83, 68, 102, 52, 65, 54, 50, 58, 55, 53, 86, 70, 60, 51, 63, 97, 68, 65, 66, 61, 43, 59, 60, 64, 79, 71, 88, 68, 63, 78, 58, 98, 70, 74, 62, 70, 104, 106, 72, 105, 75, 61, 57, 52, 50, 62, 52, 44, 71, 61, 88, 56, 65, 66, 66, 75, 73, 64, 85, 44, 69, 58, 79, 83, 96, 53, 76, 73, 58, 68, 67, 62, 62, 66, 44, 55, 72, 54, 65, 69, 81, 59, 48, 70, 82, 62, 61, 65, 64, 88, 97, 55, 51, 49, 65, 74, 80, 66, 86, 68, 88, 62, 72, 60, 46, 50, 94, 91, 60, 60, 66, 63, 48, 76, 68, 111, 62, 60, 58, 49, 43, 59, 55, 57, 48, 59, 65, 55, 59, 60, 51, 48, 59, 66, 75, 67, 57, 54, 62, 49, 74, 71, 98, 67, 98, 71, 43, 73, 63, 42, 72, 98, 70, 62, 78, 82, 77, 86, 92, 65, 70, 79, 104, 51, 62, 59, 65, 73, 55, 61, 53, 84, 62, 99, 63, 60, 77, 69, 77, 68, 65, 107, 57, 78, 66, 74, 64, 53, 52, 67, 62, 60, 71, 87, 98, 55, 89, 66, 72, 81, 57, 63, 87, 47, 42, 45, 53, 74, 47, 79, 72, 74, 55, 55, 72, 68, 67, 56, 63, 61, 60, 82, 80, 59, 81, 80, 104, 92, 69, 46, 54, 76, 67, 80, 55, 56, 73, 83, 88, 51, 75, 60, 76, 46, 67, 74, 53, 59, 69, 75, 65, 119, 42, 67, 49, 68, 62, 59, 65, 80, 61, 67, 64, 135, 70, 54, 62, 66, 74, 43, 90, 77, 61, 65, 68, 81, 46, 56, 77, 71, 61, 92, 78, 73, 62, 55, 105, 55, 45, 62, 83, 67, 47, 49, 75, 64, 51, 85, 68, 64, 99, 68, 62, 94, 82, 83, 83, 63, 63, 80, 80, 62, 80, 62, 56, 33, 89, 79, 96, 61, 79, 50, 58, 56, 65, 66, 60, 49, 64, 56, 65, 52, 66, 78, 54, 47, 57, 67, 89, 88, 54, 58, 91, 54, 68, 43, 92, 51, 59, 45, 87, 77, 83, 73, 55, 52, 53, 54, 65, 90, 63, 42, 80, 50, 86, 84, 84, 49, 50, 56, 38, 83, 67, 84, 82, 72, 55, 93, 37, 64, 103, 60, 63, 58, 66, 77, 49, 73, 81, 62, 67, 74, 60, 75, 63, 44, 45, 91, 67, 75, 47, 70, 80, 74, 73, 40, 65, 63, 64, 38, 81, 68, 49, 76, 69, 56, 83, 46, 54, 56, 65, 60, 53, 65, 73, 56, 48, 93, 75, 57, 75, 65, 89, 81, 60, 51, 63, 66, 57, 64, 62, 71, 66, 61, 49, 79, 67, 87, 51, 85, 106, 64, 72, 50, 67, 110, 69, 63, 64, 69, 97, 87, 65, 64, 77, 78, 59, 65, 87, 73, 75, 71, 97, 96, 41, 54, 82, 78, 61, 70, 67, 60, 84, 70, 54, 86, 103, 76, 58, 78, 62, 57, 65, 69, 90, 41, 65, 66, 79, 50, 60, 58, 67, 81, 85, 34, 67, 83, 81, 51, 89, 66, 60, 59, 71, 67, 59, 69, 53, 67, 55, 55, 55, 61, 54, 71, 54, 74, 70, 54, 61, 69, 67, 72, 83, 52, 61, 73, 68, 56, 44, 36, 52, 62, 78, 54, 69, 73, 52, 94, 56, 71, 75, 66, 42, 92, 59, 71, 61, 49, 57, 99, 64, 53, 72, 56, 50, 77, 67, 62, 82, 65, 58, 70, 73, 78, 67, 119, 68, 71, 89, 48, 65, 33, 69, 52, 67, 66, 49, 60, 68, 48, 97, 78, 85, 57, 57, 61, 69, 53, 73, 61, 69, 71, 68, 82, 51, 81, 45, 71, 50, 86, 66, 65, 63, 58, 76, 82, 56, 60, 59, 65, 67, 42, 39, 109, 76, 71, 72, 58, 71, 65, 53, 65, 57, 43, 66, 64, 66, 53, 69, 38, 62, 82, 75, 57, 64, 65, 55, 70, 75, 65, 62, 93, 68, 65, 67, 67, 54, 93, 40, 51, 63, 59, 110, 65, 53, 74, 49, 61, 64, 90, 44, 68, 102, 69, 68, 65, 44, 65, 71, 47, 64, 90, 50, 74, 79, 58, 68, 53, 41, 63, 81, 53, 68, 106, 55, 43, 66, 58, 64, 68, 75, 73, 66, 31, 71, 52, 65, 77, 69, 66, 52, 87, 55, 61, 65, 93, 69, 90, 60, 74, 58, 61, 53, 86, 89, 62, 53, 59, 73, 71, 67, 75, 59, 92, 54, 57, 67, 73, 96, 44, 71, 48, 70, 55, 103, 60, 44, 51, 53, 57, 80, 96, 77, 65, 54, 85, 65, 71, 65, 52, 87, 53, 77, 84, 92, 75, 44, 70, 62, 58, 69, 47, 55, 89, 64, 87, 95, 73, 57, 49, 73, 61, 89, 94, 46, 36, 101, 67, 62, 54, 53, 69, 56, 59, 48, 68, 67, 47, 69, 69, 71, 71, 82, 77, 100, 104, 75, 72, 57, 94, 59, 25, 67, 75, 52, 80, 75, 63, 60, 78, 77, 63, 56, 66, 60, 69, 72, 74, 59, 56, 59, 70, 66, 96, 38, 74, 62, 50, 54, 49, 70, 71, 49, 52, 79, 69, 77, 47, 66, 75, 52, 59, 67, 55, 58, 63, 73, 87, 61, 67, 81, 65, 83, 124, 66, 80, 72, 50, 61, 61, 73, 48, 112, 49, 71, 79, 56, 70, 72, 57, 56, 64, 53, 75, 59, 55, 57, 67, 57, 44, 50, 42, 91, 59, 61, 52, 59, 50, 53, 62, 56, 60, 59, 66, 54, 77, 80, 72, 56, 83, 49, 69, 57, 59, 60, 83, 59, 51, 53, 93, 56, 52, 79, 64, 58, 77, 51, 49, 54, 54, 49, 47, 66, 61, 86, 59, 67, 97, 77, 47, 85, 64, 50, 92, 98, 53, 81, 62, 67, 64, 87, 67, 49, 63, 96, 86, 72, 69, 42, 52, 67, 70, 68, 71, 52, 61, 79, 56, 68, 66, 56, 73, 49, 70, 66, 113, 66, 89, 39, 65, 63, 65, 45, 57, 52, 68, 63, 69, 52, 91, 76, 70, 77, 74, 73, 76, 78, 57, 69, 59, 63, 60, 73, 90, 45, 49, 99, 123, 64, 92, 66, 68, 65, 70, 68, 80, 58, 74, 75, 75, 45, 30, 58, 56, 72, 64, 47, 67, 70, 48, 46, 51, 67, 73, 78, 42, 66, 74, 60, 93, 49, 73, 63, 56, 75, 56, 51, 77, 68, 94, 72, 78, 65, 59, 74, 65, 71, 69, 62, 55, 67, 78, 57, 75, 77, 61, 38, 107, 87, 62, 55, 96, 73, 56, 72, 42, 61, 62, 89, 103, 48, 50, 95, 68, 65, 60, 54, 73, 101, 61, 63, 58, 79, 70, 58, 69, 64, 66, 53, 95, 55, 93, 45, 52, 59, 78, 82, 70, 82, 69, 76, 71, 71, 66, 78, 56, 58, 57, 83, 71, 56, 55, 72, 65, 76, 64, 49, 66, 71, 64, 63, 61, 56, 63, 54, 59, 75, 85, 61, 101, 73, 58, 55, 68, 51, 72, 104, 68, 66, 76, 62, 58, 67, 71, 68, 150, 63, 53, 53, 43, 78, 68, 86, 72, 38, 73, 70, 61, 50, 49, 88, 68, 67, 100, 107, 70, 67, 76, 55, 63, 53, 50, 60, 57, 74, 56, 50, 89, 65, 53, 56, 57, 74, 52, 68, 53, 39, 59, 95, 53, 72, 73, 65, 85, 67, 63, 56, 82, 136, 66, 70, 77, 71, 61, 69, 35, 68, 70, 46, 56, 56, 44, 82, 65, 77, 62, 60, 57, 47, 50, 62, 58, 90, 60, 52, 65, 53, 56, 55, 71, 64, 53, 77, 68, 87, 49, 42, 46, 60, 56, 90, 55, 58, 52, 79, 54, 46, 50, 59, 66, 69, 54, 67, 61, 66, 69, 73, 81, 61, 55, 53, 70, 76, 78, 57, 80, 58, 66, 65, 72, 72, 69, 59, 97, 71, 69, 76, 75, 68, 61, 76, 52, 72, 67, 61, 50, 71, 61, 80, 65, 75, 89, 60, 42, 55, 65, 62, 74, 44, 52, 59, 57, 55, 69, 60, 79, 68, 49, 61, 57, 61, 67, 59, 55, 82, 54, 69, 81, 69, 58, 110, 81, 60, 64, 49, 80, 73, 81, 55, 68, 71, 83, 67, 70, 57, 34, 63, 73, 49, 50, 50, 82, 74, 63, 54, 64, 74, 67, 64, 67, 65, 66, 79, 58, 76, 79, 60, 64, 65, 83, 77, 71, 54, 56, 67, 52, 70, 68, 86, 72, 65, 72, 48, 59, 61, 59, 63, 73, 47, 54, 93, 54, 49, 89, 61, 58, 57, 60, 83, 57, 58, 72, 68, 69, 78, 65, 59, 79, 55, 65, 48, 63, 81, 82, 85, 61, 66, 52, 61, 63, 66, 55, 98, 72, 53, 63, 55, 63, 55, 47, 73, 67, 74, 66, 100, 55, 63, 56, 54, 46, 75, 61, 60, 47, 65, 57, 58, 29, 73, 57, 62, 77, 55, 59, 56, 63, 55, 60, 88, 56, 64, 61, 61, 69, 70, 73, 64, 88, 59, 45, 68, 57, 73, 84, 64, 52, 66, 51, 64, 60, 62, 67, 74, 59, 73, 67, 106, 68, 79, 55, 66, 56, 67, 91, 91, 53, 55, 71, 67, 68, 82, 69, 69, 73, 63, 74, 82, 97, 65, 61, 78, 86, 71, 78, 68, 83, 64, 64, 54, 64, 54, 78, 64, 45, 61, 67, 57, 64, 56, 92, 80, 146, 53, 70, 62, 69, 68, 74, 76, 69, 67, 64, 72, 81, 64, 135, 105, 65, 56, 74, 79, 58, 72, 68, 64, 74, 45, 52, 63, 62, 70, 66, 54, 55, 57, 54, 69, 66, 61, 67, 74, 45, 87, 93, 67, 54, 61, 74, 62, 90, 55, 63, 64, 62, 65, 51, 87, 40, 59, 80, 64, 83, 59, 51, 57, 77, 54, 73, 73, 50, 86, 72, 59, 72, 58, 48, 65, 81, 63, 60, 59, 59, 56, 65, 55, 83, 45, 51, 69, 78, 62, 69, 38, 93, 84, 77, 42, 70, 56, 54, 70, 74, 105, 60, 71, 57, 59, 72, 57, 65, 55, 44, 89, 68, 60, 84, 66, 58, 88, 100, 71, 54, 71, 71, 72, 64, 69, 48, 73, 74, 87, 57, 96, 64, 56, 87, 61, 67, 68, 72, 65, 78, 58, 58, 73, 74, 79, 67, 64, 83, 63, 73, 91, 64, 67, 65, 62, 84, 57, 43, 71, 58, 60, 67, 53, 77, 53, 75, 55, 108, 86, 56, 63, 102, 64, 96, 59, 63, 63, 92, 64, 52, 47, 56, 64, 56, 50, 51, 60, 45, 56, 48, 54, 55, 55, 74, 52, 58, 61, 43, 52, 51, 47, 72, 51, 85, 68, 71, 53, 57, 53, 57, 70, 80, 98, 71, 75, 85, 52, 71, 79, 48, 81, 65, 72, 58, 60, 77, 67, 82, 64, 87, 53, 43, 67, 63, 79, 69, 73, 82, 59, 58, 59, 68, 54, 64, 74, 65, 70, 64, 58, 80, 68, 44, 46, 72, 52, 55, 54, 64, 67, 95, 66, 84, 68, 57, 55, 63, 93, 83, 133, 64, 85, 50, 54, 69, 84, 72, 67, 71, 68, 54, 66, 60, 118, 82, 78, 58, 62, 59, 71, 63, 54, 84, 99, 44, 67, 64, 59, 71, 72, 106, 63, 41, 64, 62, 78, 57, 79, 69, 77, 27, 87, 76, 50, 69, 63, 74, 67, 50, 54, 82, 53, 68, 51, 74, 81, 75, 75, 70, 67, 59, 66, 47, 78, 59, 64, 35, 74, 63, 80, 99, 53, 60, 67, 66, 54, 59, 68, 55, 39, 57, 85, 79, 63, 81, 78, 68, 78, 62, 50, 85, 66, 63, 65, 69, 63, 76, 61, 53, 81, 89, 60, 58, 45, 76, 58, 105, 65, 59, 62, 68, 126, 60, 75, 59, 64, 57, 75, 58, 92, 56, 68, 48, 64, 72, 65, 46, 76, 81, 41, 78, 34, 68, 67, 55, 66, 83, 59, 57, 51, 77, 68, 55, 46, 44, 81, 69, 53, 68, 53, 71, 78, 63, 45, 99, 43, 51, 100, 74, 65, 51, 68, 57, 60, 56, 75, 70, 63, 66, 56, 66, 68, 70, 100, 57, 60, 86, 50, 66, 56, 59, 69, 67, 79, 57, 72, 49, 71, 46, 71, 50, 86, 67, 72, 76, 60, 86, 61, 71, 72, 84, 80, 52, 73, 59, 57, 37, 91, 72, 47, 85, 81, 50, 48, 125, 63, 75, 52, 66, 87, 64, 73, 68, 57, 67, 59, 78, 71, 80, 88, 53, 33, 88, 69, 59, 54, 41, 113, 58, 49, 70, 70, 63, 61, 80, 76, 89, 63, 52, 42, 68, 55, 89, 91, 64, 76, 58, 74, 56, 72, 67, 67, 56, 62, 76, 89, 69, 78, 58, 131, 51, 90, 72, 67, 69, 78, 64, 57, 48, 51, 59, 69, 54, 55, 65, 50, 71, 44, 54, 77, 79, 63, 65, 54, 85, 52, 68, 52, 56, 77, 99, 77, 73, 63, 73, 79, 57, 45, 57, 67, 70, 50, 59, 57, 55, 63, 83, 77, 47, 53, 69, 52, 74, 46, 57, 60, 81, 73, 60, 55, 54, 105, 56, 47, 62, 41, 54, 71, 47, 57, 60, 74, 65, 67, 60, 68, 93, 77, 77, 55, 86, 77, 52, 62, 70, 43, 69, 66, 73, 74, 72, 62, 71, 53, 55, 42, 66, 61, 102, 59, 52, 75, 85, 64, 47, 38, 58, 78, 91, 65, 72, 74, 74, 50, 76, 72, 74, 48, 65, 69, 59, 75, 53, 81, 71, 53, 64, 60, 49, 79, 60, 51, 49, 74, 50, 69, 70, 87, 86, 47, 68, 37, 83, 65, 62, 60, 60, 58, 68, 64, 98, 97, 77, 70, 52, 84, 63, 50, 76, 62, 58, 63, 80, 55, 46, 58, 62, 69, 61, 47, 92, 62, 72, 58, 50, 34, 110, 89, 51, 57, 57, 61, 89, 61, 56, 64, 56, 67, 51, 51, 56, 93, 69, 57, 60, 82, 62, 54, 66, 56, 44, 45, 49, 53, 58, 83, 64, 75, 56, 69, 45, 66, 43, 62, 84, 76, 55, 52, 101, 51, 96, 54, 51, 89, 84, 55, 69, 53, 50, 77, 107, 87, 60, 57, 68, 63, 88, 64, 64, 59, 42, 76, 78, 70, 62, 42, 58, 57, 50, 63, 64, 60, 47, 60, 54, 58, 71, 76, 71, 73, 54, 69, 73, 52, 83, 66, 125, 81, 56, 65, 62, 73, 70, 62, 96, 90, 61, 125, 63, 47, 60, 63, 59, 90, 57, 68, 60, 46, 49, 65, 77, 73, 86, 71, 78, 60, 70, 72, 61, 46, 67, 78, 52, 73, 71, 76, 51, 74, 71, 73, 53, 56, 51, 42, 56, 50, 75, 57, 79, 67, 67, 78, 49, 45, 59, 67, 91, 64, 79, 45, 34, 69, 56, 42, 66, 77, 56, 71, 53, 61, 71, 64, 54, 42, 68, 78, 95, 59, 57, 71, 64, 72, 77, 62, 53, 81, 83, 87, 77, 46, 65, 64, 88, 68, 68, 47, 51, 68, 92, 65, 55, 41, 64, 56, 71, 80, 68, 53, 60, 54, 67, 72, 54, 45, 80, 59, 52, 58, 77, 80, 64, 50, 65, 83, 67, 64, 52, 96, 51, 36, 48, 69, 81, 83, 76, 48, 38, 63, 84, 74, 58, 56, 78, 57, 68, 62, 62, 64, 90, 69, 57, 78, 63, 71, 70, 45, 104, 53, 48, 65, 73, 51, 58, 55, 70, 74, 64, 66, 58, 98, 74, 67, 60, 46, 73, 71, 49, 69, 83, 56, 58, 73, 66, 55, 65, 62, 85, 78, 59, 57, 57, 67, 44, 68, 77, 70, 68, 42, 76, 76, 68, 55, 57, 55, 64, 70, 61, 87, 64, 87, 96, 54, 55, 73, 86, 44, 61, 49, 57, 53, 55, 83, 62, 45, 72, 101, 69, 54, 40, 60, 64, 54, 71, 72, 73, 60, 70, 62, 79, 79, 84, 66, 93, 68, 65, 52, 86, 68, 52, 40, 76, 63, 57, 50, 78, 72, 70, 69, 76, 49, 80, 68, 58, 57, 80, 65, 60, 96, 88, 59, 75, 35, 68, 67, 88, 92, 59, 66, 85, 68, 79, 64, 85, 48, 114, 61, 93, 78, 77, 62, 68, 53, 58, 64, 63, 45, 60, 54, 36, 68, 89, 50, 52, 95, 83, 84, 77, 77, 107, 91, 45, 58, 48, 47, 52, 59, 63, 59, 53, 57, 68, 70, 81, 42, 69, 82, 52, 79, 66, 87, 69, 82, 90, 89, 65, 65, 70, 44, 65, 68, 76, 84, 59, 77, 61, 51, 67, 73, 66, 59, 48, 62, 63, 64, 63, 70, 80, 88, 44, 74, 65, 54, 61, 112, 50, 60, 57, 73, 50, 53, 47, 57, 64, 115, 44, 78, 93, 56, 81, 72, 80, 54, 42, 62, 56, 68, 52, 62, 49, 71, 70, 70, 56, 83, 57, 87, 73, 55, 71, 59, 79, 79, 69, 63, 59, 40, 45, 100, 91, 75, 67, 68, 59, 70, 67, 48, 74, 74, 74, 57, 74, 66, 68, 50, 78, 60, 69, 46, 69, 62, 37, 33, 50, 58, 88, 53, 86, 58, 58, 66, 111, 59, 49, 48, 60, 43, 49, 55, 80, 78, 89, 51, 60, 66, 67, 43, 61, 67, 51, 66, 38, 87, 64, 63, 62, 69, 55, 81, 75, 69, 75, 57, 45, 67, 57, 64, 61, 71, 62, 98, 77, 68, 28, 45, 60, 67, 127, 53, 94, 80, 85, 74, 53, 71, 70, 59, 71, 44, 69, 44, 61, 70, 67, 68, 96, 71, 86, 48, 48, 62, 56, 74, 75, 64, 116, 62, 69, 55, 79, 57, 70, 47, 67, 61, 63, 58, 69, 49, 50, 76, 90, 81, 101, 63, 62, 84, 81, 88, 55, 52, 74, 94, 56, 60, 49, 50, 69, 79, 44, 61, 45, 57, 55, 77, 68, 96, 57, 84, 51, 65, 85, 28, 58, 76, 68, 52, 52, 67, 62, 76, 63, 73, 86, 56, 40, 42, 40, 62, 55, 52, 79, 63, 59, 62, 60, 78, 56, 93, 72, 67, 88, 80, 65, 60, 60, 96, 69, 54, 62, 114, 63, 88, 53, 88, 84, 79, 54, 57, 86, 64, 74, 67, 77, 58, 77, 58, 72, 59, 94, 68, 65, 66, 67, 61, 61, 59, 86, 80, 61, 61, 53, 67, 58, 62, 72, 73, 62, 63, 68, 63, 70, 57, 75, 75, 109, 50, 70, 56, 87, 38, 96, 50, 67, 130, 60, 52, 58, 66, 56, 70, 60, 50, 62, 54, 56, 80, 89, 61, 61, 63, 65, 79, 61, 78, 58, 59, 74, 86, 70, 67, 82, 58, 52, 61, 53, 66, 95, 80, 69, 32, 61, 55, 69, 67, 69, 67, 108, 67, 79, 55, 62, 60, 71, 47, 55, 59, 70, 56, 39, 63, 72, 85, 39, 73, 52, 70, 66, 55, 53, 62, 69, 82, 59, 55, 63, 81, 102, 115, 54, 71, 54, 54, 108, 74, 98, 71, 43, 44, 66, 62, 60, 57, 64, 56, 61, 54, 55, 89, 42, 69, 72, 41, 80, 73, 64, 64, 67, 73, 66, 62, 82, 108, 81, 55, 80, 72, 77, 64, 73, 56, 69, 66, 50, 65, 72, 57, 72, 92, 53, 75, 65, 76, 65, 68, 59, 67, 35, 78, 57, 75, 61, 73, 71, 56, 71, 52, 88, 47, 80, 71, 37, 79, 63, 81, 74, 81, 67, 50, 75, 85, 74, 62, 71, 86, 58, 93, 60, 59, 56, 78, 64, 82, 64, 68, 72, 88, 65, 75, 62, 85, 69, 124, 46, 85, 50, 65, 46, 72, 76, 79, 42, 75, 72, 70, 58, 45, 68, 47, 63, 65, 93, 55, 64, 52, 65, 66, 107, 80, 75, 90, 44, 52, 68, 68, 117, 96, 86, 113, 57, 52, 52, 66, 78, 58, 81, 64, 53, 70, 71, 42, 50, 69, 54, 59, 75, 71, 52, 73, 43, 62, 42, 70, 66, 63, 57, 57, 79, 60, 59, 47, 64, 48, 52, 93, 70, 51, 89, 74, 59, 47, 63, 72, 68, 64, 47, 52, 66, 64, 48, 84, 70, 65, 53, 131, 89, 64, 53, 65, 77, 77, 48, 65, 86, 45, 79, 57, 60, 54, 66, 65, 53, 47, 74, 61, 89, 77, 42, 74, 59, 73, 33, 78, 68, 64, 63, 66, 61, 58, 51, 67, 52, 82, 59, 74, 65, 67, 56, 65, 66, 78, 82, 60, 61, 66, 67, 68, 69, 64, 52, 48, 47, 57, 40, 82, 68, 64, 99, 103, 53, 56, 63, 81, 66, 51, 128, 57, 72, 72, 59, 89, 52, 69, 59, 55, 74, 59, 66, 43, 61, 59, 78, 77, 70, 53, 57, 84, 151, 67, 52, 51, 58, 90, 136, 77, 75, 63, 58, 49, 72, 62, 65, 56, 78, 91, 87, 53, 65, 63, 57, 69, 59, 72, 62, 66, 55, 81, 76, 109, 67, 46, 58, 75, 67, 72, 95, 76, 60, 81, 54, 58, 70, 68, 48, 82, 59, 67, 27, 77, 60, 82, 68, 61, 54, 73, 57, 67, 75, 75, 94, 74, 55, 38, 79, 61, 49, 69, 64, 72, 67, 76, 82, 48, 72, 69, 82, 54, 35, 57, 88, 41, 56, 40, 58, 65, 67, 75, 57, 70, 61, 60, 54, 58, 84, 51, 65, 71, 83, 69, 67, 79, 47, 53, 99, 43, 66, 82, 53, 80, 85, 55, 74, 80, 55, 58, 65, 52, 62, 61, 63, 54, 60, 52, 83, 55, 59, 60, 63, 59, 68, 62, 75, 62, 58, 59, 85, 87, 76, 67, 125, 69, 30, 93, 82, 49, 50, 60, 66, 51, 35, 70, 58, 47, 72, 80, 62, 50, 67, 49, 87, 69, 60, 83, 67, 51, 69, 62, 79, 72, 69, 68, 37, 72, 59, 76, 46, 59, 55, 50, 46, 66, 79, 84, 72, 76, 92, 57, 100, 92, 64, 106, 64, 86, 80, 74, 64, 70, 70, 62, 63, 64, 73, 73, 95, 57, 89, 118, 69, 60, 54, 74, 107, 71, 69, 67, 56, 58, 52, 25, 56, 60, 73, 54, 57, 60, 75, 52, 63, 88, 69, 49, 74, 57, 77, 82, 60, 59, 76, 57, 43, 85, 91, 64, 59, 54, 67, 71, 72, 51, 71, 68, 78, 49, 58, 61, 57, 61, 36, 72, 54, 69, 91, 60, 51, 65, 56, 74, 46, 66, 67, 50, 64, 88, 83, 58, 96, 60, 93, 63, 61, 46, 72, 58, 58, 42, 81, 79, 43, 61, 54, 69, 81, 56, 69, 89, 57, 63, 67, 83, 64, 78, 64, 79, 55, 54, 50, 57, 53, 55, 70, 58, 86, 67, 64, 69, 76, 61, 53, 56, 67, 89, 61, 56, 43, 60, 64, 46, 67, 46, 49, 62, 52, 54, 85, 60, 74, 67, 76, 70, 57, 54, 44, 54, 59, 66, 70, 63, 86, 53, 78, 44, 68, 100, 73, 70, 61, 62, 81, 62, 50, 81, 78, 53, 63, 72, 56, 49, 60, 71, 61, 63, 61, 64, 51, 28, 89, 70, 68, 60, 47, 63, 51, 58, 59, 51, 66, 77, 69, 56, 49, 54, 83, 57, 65, 65, 68, 67, 50, 66, 102, 76, 62, 50, 59, 58, 72, 44, 96, 42, 84, 77, 49, 72, 105, 69, 127, 75, 55, 48, 53, 48, 38, 81, 72, 58, 66, 77, 80, 49, 73, 79, 41, 77, 45, 54, 72, 78, 75, 51, 75, 70, 50, 38, 67, 68, 59, 59, 52, 43, 77, 99, 75, 52, 84, 56, 93, 57, 52, 80, 70, 58, 33, 57, 85, 60, 55, 42, 46, 54, 93, 68, 88, 141, 68, 44, 58, 84, 66, 64, 75, 69, 63, 74, 61, 60, 82, 104, 72, 70, 49, 52, 68, 67, 67, 101, 92, 49, 73, 74, 67, 63, 63, 33, 58, 69, 80, 67, 70, 41, 64, 51, 77, 58, 46, 62, 40, 52, 84, 52, 49, 76, 91, 59, 65, 86, 55, 56, 85, 64, 63, 66, 65, 52, 78, 66, 58, 64, 96, 48, 60, 58, 67, 51, 66, 48, 80, 78, 57, 72, 61, 67, 74, 59, 67, 58, 78, 79, 68, 34, 68, 82, 47, 59, 50, 76, 63, 45, 56, 54, 66, 83, 68, 76, 60, 54, 69, 69, 70, 145, 51, 55, 55, 56, 66, 50, 71, 68, 59, 57, 75, 54, 81, 70, 53, 56, 57, 66, 53, 58, 78, 58, 62, 64, 73, 66, 50, 62, 62, 71, 92, 76, 59, 68, 71, 62, 99, 63, 40, 47, 57, 69, 52, 70, 62, 73, 50, 69, 57, 50, 78, 52, 57, 49, 66, 70, 51, 46, 48, 73, 69, 76, 68, 86, 46, 55, 61, 91, 77, 66, 65, 65, 70, 62, 77, 59, 73, 44, 91, 51, 54, 65, 69, 53, 97, 53, 56, 72, 63, 48, 50, 78, 48, 68, 51, 81, 61, 45, 55, 51, 64, 49, 59, 57, 59, 68, 58, 92, 49, 77, 66, 57, 74, 63, 63, 80, 82, 74, 64, 57, 59, 64, 58, 62, 50, 83, 54, 57, 76, 84, 58, 74, 52, 53, 60, 88, 68, 107, 64, 43, 64, 66, 53, 61, 53, 71, 81, 61, 56, 64, 62, 60, 62, 50, 57, 72, 64, 87, 52, 62, 62, 56, 69, 69, 55, 53, 69, 85, 73, 76, 45, 64, 83, 61, 70, 64, 78, 78, 63, 48, 75, 64, 57, 82, 62, 71, 82, 77, 62, 64, 65, 56, 63, 67, 82, 60, 55, 73, 34, 119, 89, 46, 49, 65, 90, 56, 72, 56, 82, 105, 64, 59, 67, 87, 64, 112, 61, 59, 56, 63, 53, 68, 61, 58, 47, 55, 65, 67, 64, 68, 67, 82, 51, 57, 83, 53, 78, 55, 64, 78, 65, 48, 75, 65, 54, 59, 58, 80, 64, 63, 79, 57, 63, 75, 52, 68, 106, 54, 61, 74, 59, 56, 97, 87, 58, 90, 65, 95, 66, 55, 63, 41, 80, 86, 70, 82, 55, 76, 38, 55, 60, 58, 69, 64, 68, 35, 77, 77, 58, 64, 67, 61, 57, 77, 54, 70, 68, 67, 66, 42, 58, 57, 69, 55, 92, 58, 63, 63, 59, 66, 64, 65, 87, 53, 60, 52, 68, 86, 55, 72, 34, 82, 75, 69, 82, 61, 61, 65, 84, 73, 58, 57, 57, 82, 70, 97, 53, 43, 71, 59, 76, 57, 65, 116, 54, 81, 58, 80, 70, 64, 67, 63, 124, 77, 100, 65, 46, 56, 69, 63, 70, 74, 60, 50, 53, 64, 55, 76, 59, 60, 62, 67, 56, 74, 88, 76, 90, 81, 58, 70, 69, 58, 65, 57, 61, 51, 39, 69, 55, 56, 59, 51, 62, 82, 75, 73, 66, 69, 54, 71, 81, 67, 64, 75, 65, 54, 60, 53, 54, 54, 56, 53, 78, 72, 62, 54, 43, 48, 50, 62, 62, 58, 69, 69, 79, 59, 69, 64, 55, 65, 57, 73, 78, 68, 74, 63, 38, 48, 72, 50, 74, 68, 61, 56, 62, 74, 39, 57, 52, 47, 65, 49, 56, 62, 64, 57, 73, 64, 104, 62, 48, 67, 50, 65, 75, 82, 76, 45, 57, 65, 88, 81, 90, 76, 60, 49, 63, 68, 86, 81, 56, 69, 40, 45, 63, 51, 51, 33, 81, 66, 59, 52, 70, 63, 47, 83, 59, 58, 59, 80, 60, 107, 69, 46, 64, 67, 65, 54, 54, 186, 49, 65, 79, 57, 80, 51, 72, 55, 70, 68, 58, 63, 43, 56, 76, 52, 73, 65, 87, 53, 63, 68, 53, 70, 62, 72, 91, 61, 57, 44, 58, 49, 56, 55, 81, 50, 63, 71, 88, 57, 98, 82, 62, 76, 62, 55, 65, 66, 55, 97, 75, 51, 75, 60, 63, 58, 46, 76, 53, 51, 64, 48, 79, 64, 66, 61, 93, 60, 76, 67, 65, 39, 46, 76, 47, 69, 87, 72, 65, 46, 69, 55, 47, 46, 65, 99, 78, 62, 77, 65, 86, 51, 40, 65, 77, 57, 79, 50, 65, 64, 55, 63, 48, 51, 80, 42, 62, 65, 69, 63, 70, 57, 60, 67, 80, 47, 58, 79, 74, 78, 62, 71, 71, 65, 64, 72, 66, 57, 81, 75, 87, 65, 54, 86, 85, 69, 160, 80, 45, 66, 60, 104, 72, 72, 74, 71, 60, 64, 110, 56, 57, 47, 61, 55, 65, 74, 63, 56, 67, 76, 47, 70, 95, 50, 70, 54, 58, 64, 70, 81, 59, 45, 65, 75, 66, 57, 61, 82, 54, 57, 64, 58, 78, 69, 61, 64, 67, 141, 53, 58, 51, 57, 57, 59, 65, 70, 74, 68, 38, 52, 75, 52, 66, 55, 53, 62, 62, 77, 93, 87, 77, 53, 64, 71, 116, 63, 60, 53, 70, 61, 59, 66, 53, 87, 61, 62, 62, 77, 83, 65, 63, 81, 68, 77, 52, 50, 59, 73, 151, 56, 63, 55, 68, 62, 88, 71, 84, 101, 43, 48, 59, 100, 68, 55, 80, 75, 65, 75, 51, 69, 84, 44, 50, 41, 59, 50, 70, 66, 62, 84, 59, 61, 55, 66, 62, 55, 66, 71, 68, 56, 126, 68, 60, 74, 50, 64, 72, 54, 58, 70, 79, 69, 58, 71, 95, 62, 66, 103, 46, 67, 71, 80, 73, 55, 58, 68, 64, 75, 62, 62, 67, 64, 64, 76, 155, 73, 72, 52, 68, 69, 52, 72, 48, 56, 64, 86, 47, 77, 68, 88, 70, 65, 68, 55, 61, 47, 107, 45, 53, 56, 73, 65, 80, 53, 52, 61, 60, 51, 58, 58, 53, 65, 69, 56, 112, 46, 66, 74, 66, 60, 73, 76, 103, 62, 53, 64, 68, 42, 78, 76, 56, 67, 64, 74, 64, 50, 59, 48, 65, 53, 109, 60, 59, 64, 78, 56, 56, 91, 82, 35, 55, 54, 64, 54, 53, 52, 76, 71, 77, 44, 51, 79, 55, 93, 67, 45, 55, 65, 93, 82, 64, 61, 77, 59, 68, 62, 84, 55, 68, 51, 97, 63, 77, 61, 75, 67, 87, 66, 67, 61, 50, 68, 70, 66, 50, 60, 76, 83, 74, 49, 80, 53, 55, 66, 47, 86, 83, 54, 47, 72, 63, 62, 59, 69, 67, 39, 59, 72, 53, 76, 49, 58, 61, 78, 72, 70, 53, 60, 74, 76, 79, 71, 70, 58, 62, 60, 60, 55, 90, 101, 67, 86, 77, 81, 67, 74, 51, 58, 68, 46, 62, 60, 73, 71, 52, 49, 66, 96, 56, 64, 81, 84, 47, 53, 70, 74, 63, 56, 57, 68, 59, 75, 62, 75, 59, 66, 59, 59, 63, 59, 69, 70, 71, 61, 95, 49, 70, 63, 82, 67, 58, 73, 95, 38, 78, 59, 71, 70, 51, 54, 59, 50, 61, 80, 47, 48, 100, 65, 70, 58, 48, 80, 71, 77, 73, 104, 65, 79, 104, 70, 66, 65, 55, 70, 58, 61, 72, 39, 55, 80, 51, 48, 75, 60, 66, 80, 45, 64, 56, 74, 59, 68, 60, 49, 74, 45, 80, 100, 72, 61, 52, 57, 56, 47, 60, 57, 77, 55, 59, 94, 61, 85, 68, 76, 71, 63, 62, 56, 85, 52, 90, 153, 53, 56, 64, 72, 69, 65, 83, 60, 51, 60, 54, 71, 55, 62, 66, 60, 113, 54, 59, 55, 78, 67, 50, 67, 62, 67, 60, 50, 64, 63, 65, 53, 66, 80, 45, 62, 62, 58, 69, 66, 83, 49, 57, 77, 73, 53, 50, 79, 61, 74, 79, 68, 92, 44, 75, 61, 59, 53, 94, 80, 85, 95, 74, 43, 56, 60, 77, 59, 57, 59, 88, 60, 60, 47, 64, 67, 63, 50, 66, 80, 56, 64, 65, 68, 45, 55, 62, 53, 50, 70, 69, 55, 55, 57, 71, 48, 71, 53, 67, 60, 91, 71, 74, 65, 84, 72, 88, 55, 58, 83, 89, 84, 76, 57, 65, 68, 73, 49, 59, 70, 66, 71, 61, 52, 60, 109, 87, 62, 76, 61, 66, 82, 58, 57, 86, 76, 61, 66, 62, 58, 71, 73, 75, 84, 75, 49, 60, 53, 56, 52, 99, 56, 58, 67, 68, 72, 69, 52, 65, 64, 79, 71, 48, 74, 65, 81, 56, 41, 67, 83, 80, 53, 76, 142, 73, 59, 54, 75, 54, 76, 55, 61, 57, 93, 65, 65, 53, 42, 74, 80, 60, 73, 78, 58, 57, 162, 63, 87, 61, 59, 69, 58, 57, 56, 59, 52, 46, 63, 65, 99, 71, 63, 80, 57, 65, 55, 66, 55, 78, 45, 53, 107, 61, 74, 38, 104, 88, 48, 53, 49, 47, 58, 84, 92, 60, 70, 58, 66, 68, 78, 54, 106, 111, 62, 57, 49, 78, 56, 50, 75, 74, 90, 52, 69, 70, 71, 119, 70, 63, 58, 61, 72, 77, 57, 47, 53, 64, 80, 67, 62, 75, 55, 68, 69, 58, 57, 73, 54, 72, 73, 62, 80, 85, 58, 65, 61, 72, 52, 66, 57, 60, 69, 66, 65, 73, 81, 56, 66, 55, 53, 90, 73, 60, 59, 55, 49, 69, 80, 60, 61, 55, 61, 61, 71, 69, 78, 84, 71, 57, 52, 46, 73, 64, 63, 73, 71, 66, 55, 67, 59, 57, 77, 58, 72, 57, 75, 56, 49, 65, 62, 68, 54, 65, 68, 61, 44, 79, 53, 91, 88, 61, 66, 65, 74, 72, 73, 59, 98, 77, 68, 58, 101, 59, 59, 50, 50, 62, 52, 85, 68, 64, 73, 49, 48, 76, 89, 55, 65, 68, 70, 72, 41, 70, 75, 54, 66, 63, 64, 74, 38, 57, 39, 54, 68, 74, 62, 65, 58, 72, 58, 76, 49, 56, 68, 78, 64, 53, 76, 68, 78, 54, 75, 55, 60, 79, 54, 50, 91, 65, 56, 60, 82, 67, 74, 65, 54, 61, 57, 61, 74, 53, 64, 54, 72, 57, 57, 56, 46, 76, 66, 43, 59, 81, 52, 61, 70, 52, 54, 65, 55, 77, 51, 92, 66, 76, 75, 81, 71, 80, 60, 85, 71, 69, 76, 68, 56, 62, 64, 72, 98, 69, 75, 50, 85, 46, 81, 80, 47, 70, 49, 51, 47, 61, 58, 57, 48, 70, 98, 66, 53, 62, 69, 81, 55, 56, 62, 68, 37, 54, 67, 54, 74, 72, 62, 63, 40, 66, 70, 76, 69, 50, 88, 89, 62, 52, 66, 76, 79, 60, 69, 45, 84, 67, 60, 85, 64, 50, 47, 68, 63, 59, 61, 58, 48, 62, 78, 77, 46, 47, 65, 66, 62, 67, 64, 95, 62, 59, 46, 70, 63, 80, 62, 64, 97, 70, 93, 45, 55, 92, 71, 73, 68, 80, 66, 63, 73, 70, 52, 84, 70, 58, 66, 65, 66, 49, 69, 54, 50, 66, 55, 55, 72, 80, 66, 59, 52, 53, 71, 59, 79, 43, 71, 51, 80, 94, 79, 39, 60, 76, 55, 88, 71, 54, 55, 56, 72, 52, 75, 67, 81, 51, 54, 55, 54, 90, 60, 49, 41, 66, 65, 84, 74, 78, 52, 105, 83, 52, 76, 66, 62, 49, 90, 66, 53, 73, 56, 86, 68, 69, 78, 101, 56, 62, 66, 69, 60, 61, 121, 73, 59, 65, 68, 53, 55, 69, 63, 49, 64, 58, 63, 65, 73, 104, 66, 68, 68, 60, 53, 46, 74, 52, 99, 72, 70, 95, 58, 51, 67, 70, 53, 69, 80, 58, 62, 81, 56, 60, 73, 55, 47, 76, 62, 60, 80, 88, 65, 58, 72, 78, 54, 56, 74, 79, 81, 74, 83, 44, 69, 56, 53, 81, 68, 69, 54, 56, 70, 58, 77, 60, 44, 79, 72, 53, 62, 90, 70, 68, 50, 54, 75, 101, 94, 99, 64, 63, 59, 55, 43, 57, 62, 51, 79, 71, 66, 54, 55, 74, 87, 66, 54, 67, 49, 70, 73, 74, 70, 44, 76, 68, 53, 56, 81, 67, 53, 78, 69, 74, 83, 53, 53, 61, 60, 46, 71, 71, 69, 58, 70, 51, 81, 58, 49, 64, 74, 113, 94, 107, 61, 82, 87, 65, 67, 80, 68, 67, 46, 65, 66, 81, 81, 74, 75, 64, 49, 59, 74, 56, 63, 80, 77, 62, 67, 86, 65, 95, 69, 74, 61, 76, 62, 50, 69, 69, 56, 64, 54, 66, 54, 67, 54, 67, 64, 85, 79, 70, 59, 81, 65, 55, 80, 81, 59, 92, 55, 80, 52, 67, 52, 89, 71, 121, 64, 78, 55, 65, 58, 68, 70, 66, 107, 59, 56, 83, 58, 65, 56, 71, 64, 69, 62, 44, 74, 53, 92, 67, 65, 71, 72, 56, 55, 67, 35, 71, 59, 94, 60, 57, 57, 58, 60, 85, 69, 80, 62, 85, 78, 79, 79, 52, 83, 67, 46, 75, 46, 71, 53, 56, 74, 59, 91, 60, 98, 66, 53, 86, 52, 70, 74, 56, 86, 65, 60, 126, 82, 78, 80, 81, 70, 82, 77, 56, 69, 72, 63, 75, 60, 58, 66, 73, 70, 64, 77, 58, 42, 56, 64, 68, 73, 78, 87, 70, 56, 73, 46, 59, 74, 47, 69, 53, 47, 73, 73, 53, 94, 70, 46, 80, 40, 58, 93, 108, 64, 55, 81, 61, 76, 58, 107, 67, 79, 37, 60, 56, 73, 60, 48, 51, 78, 69, 74, 54, 72, 50, 87, 47, 84, 62, 58, 119, 63, 81, 69, 62, 76, 52, 71, 51, 62, 66, 77, 36, 106, 68, 56, 67, 68, 45, 45, 52, 70, 94, 83, 62, 72, 52, 77, 59, 95, 61, 65, 30, 122, 57, 50, 85, 57, 62, 63, 57, 51, 62, 72, 56, 56, 74, 68, 82, 56, 73, 130, 50, 72, 60, 66, 79, 67, 61, 71, 56, 63, 44, 64, 77, 86, 87, 88, 54, 56, 87, 69, 59, 121, 74, 60, 50, 47, 66, 66, 67, 39, 43, 67, 68, 62, 96, 48, 52, 47, 42, 68, 62, 81, 47, 43, 74, 56, 73, 60, 43, 61, 64, 68, 55, 69, 56, 55, 70, 53, 60, 89, 58, 63, 80, 48, 38, 51, 57, 69, 71, 44, 59, 62, 56, 64, 81, 67, 72, 88, 62, 84, 95, 71, 61, 62, 69, 55, 68, 49, 42, 55, 105, 61, 51, 81, 54, 57, 48, 101, 55, 82, 68, 91, 63, 65, 73, 51, 67, 63, 48, 77, 48, 50, 66, 78, 45, 63, 99, 57, 55, 71, 38, 51, 58, 58, 59, 90, 76, 49, 57, 72, 58, 60, 88, 71, 65, 67, 99, 52, 71, 81, 75, 67, 84, 82, 53, 83, 72, 46, 47, 64, 54, 53, 68, 65, 56, 63, 64, 85, 49, 65, 44, 61, 52, 78, 29, 52, 76, 73, 63, 68, 77, 65, 51, 46, 63, 51, 79, 60, 69, 65, 66, 63, 44, 63, 66, 63, 53, 53, 66, 58, 73, 72, 69, 52, 50, 58, 56, 43, 80, 59, 45, 78, 59, 51, 46, 44, 67, 66, 62, 51, 46, 57, 77, 56, 64, 71, 69, 72, 62, 91, 59, 84, 81, 48, 61, 96, 65, 30, 58, 65, 89, 53, 118, 81, 38, 66, 61, 67, 79, 77, 60, 50, 58, 58, 47, 67, 59, 59, 56, 66, 55, 62, 69, 70, 55, 62, 99, 47, 60, 81, 64, 66, 59, 82, 54, 61, 75, 93, 56, 64, 66, 55, 104, 57, 55, 50, 48, 58, 101, 73, 59, 65, 59, 66, 68, 92, 54, 64, 56, 85, 61, 77, 75, 86, 63, 53, 59, 62, 80, 61, 60, 62, 68, 71, 122, 33, 51, 88, 68, 76, 40, 67, 49, 64, 51, 55, 100, 54, 64, 53, 73, 58, 87, 59, 67, 65, 72, 95, 63, 60, 71, 84, 106, 45, 87, 53, 61, 48, 66, 50, 47, 87, 60, 56, 65, 53, 47, 58, 50, 97, 54, 55, 83, 61, 48, 106, 63, 75, 116, 90, 65, 78, 63, 59, 68, 61, 58, 114, 49, 54, 88, 79, 47, 50, 85, 83, 63, 59, 50, 88, 43, 67, 57, 45, 78, 65, 57, 67, 62, 48, 76, 43, 108, 53, 71, 81, 75, 54, 58, 95, 82, 95, 44, 36, 55, 56, 55, 56, 64, 70, 70, 85, 67, 111, 60, 47, 52, 56, 83, 51, 40, 87, 57, 90, 57, 67, 81, 56, 59, 89, 61, 85, 68, 68, 73, 41, 63, 88, 63, 51, 83, 70, 69, 90, 67, 50, 72, 35, 77, 71, 70, 48, 62, 51, 58, 75, 81, 64, 101, 68, 71, 68, 73, 64, 44, 65, 79, 43, 56, 83, 40, 94, 61, 56, 74, 54, 67, 65, 64, 108, 54, 74, 64, 67, 63, 66, 76, 67, 43, 60, 99, 53, 70, 70, 71, 65, 85, 58, 64, 51, 67, 53, 69, 55, 102, 60, 65, 61, 68, 52, 44, 63, 73, 53, 61, 72, 69, 66, 95, 63, 88, 43, 57, 86, 53, 65, 54, 47, 69, 69, 99, 69, 60, 66, 49, 84, 62, 59, 56, 57, 42, 78, 59, 49, 45, 60, 68, 53, 61, 72, 89, 49, 45, 76, 61, 72, 49, 41, 44, 78, 70, 77, 77, 67, 51, 68, 81, 62, 99, 95, 98, 63, 66, 77, 59, 63, 67, 54, 79, 53, 64, 78, 68, 54, 68, 73, 109, 69, 57, 63, 60, 42, 64, 57, 51, 45, 70, 80, 69, 76, 66, 55, 69, 46, 58, 70, 63, 63, 43, 40, 59, 76, 75, 67, 68, 44, 74, 76, 55, 80, 82, 79, 66, 61, 74, 65, 69, 73, 66, 82, 66, 77, 88, 63, 61, 65, 74, 69, 59, 66, 59, 63, 71, 57, 52, 64, 56, 68, 59, 55, 50, 88, 66, 82, 59, 82, 72, 44, 59, 55, 62, 83, 66, 68, 65, 80, 54, 75, 56, 50, 65, 96, 66, 60, 60, 54, 80, 69, 59, 59, 46, 66, 74, 80, 79, 85, 93, 65, 58, 62, 63, 84, 65, 66, 40, 39, 64, 60, 48, 53, 53, 70, 59, 94, 77, 88, 58, 93, 67, 63, 73, 68, 50, 76, 106, 71, 59, 86, 38, 72, 45, 68, 58, 53, 54, 61, 100, 61, 94, 75, 38, 86, 66, 73, 64, 63, 50, 66, 64, 65, 75, 56, 98, 74, 69, 81, 94, 56, 55, 66, 70, 51, 85, 50, 62, 77, 75, 51, 67, 58, 63, 74, 64, 86, 87, 50, 60, 81, 100, 36, 60, 66, 54, 54, 70, 84, 79, 57, 60, 70, 67, 39, 87, 63, 62, 73, 78, 98, 64, 60, 59, 73, 50, 67, 48, 58, 74, 53, 50, 84, 75, 55, 80, 57, 63, 71, 82, 62, 88, 85, 68, 58, 66, 59, 47, 46, 63, 61, 43, 65, 46, 82, 73, 51, 69, 87, 63, 47, 58, 55, 81, 64, 75, 61, 79, 91, 52, 58, 55, 61, 50, 83, 62, 53, 46, 86, 69, 89, 78, 63, 49, 55, 50, 69, 65, 46, 94, 40, 70, 79, 71, 51, 74, 86, 62, 57, 67, 53, 58, 62, 77, 59, 90, 63, 55, 97, 62, 68, 61, 58, 73, 68, 86, 48, 90, 76, 47, 58, 74, 69, 71, 35, 64, 88, 61, 51, 64, 49, 72, 81, 57, 54, 48, 56, 51, 56, 60, 60, 55, 72, 51, 88, 52, 67, 72, 52, 74, 56, 69, 78, 65, 48, 61, 49, 68, 54, 55, 57, 59, 54, 44, 62, 65, 79, 73, 49, 59, 75, 59, 77, 68, 69, 72, 52, 57, 71, 68, 108, 70, 72, 58, 62, 39, 82, 38, 59, 70, 64, 71, 61, 86, 41, 69, 70, 51, 105, 71, 69, 58, 83, 93, 62, 62, 66, 52, 38, 66, 79, 59, 107, 68, 71, 55, 64, 116, 86, 66, 73, 66, 98, 47, 54, 46, 57, 47, 74, 55, 80, 72, 68, 97, 90, 36, 95, 53, 72, 68, 84, 81, 59, 67, 39, 76, 59, 47, 54, 74, 57, 45, 64, 46, 91, 63, 88, 66, 66, 67, 75, 71, 86, 73, 77, 87, 53, 86, 59, 51, 59, 63, 75, 49, 89, 81, 55, 77, 66, 63, 54, 59, 52, 70, 65, 59, 69, 78, 45, 50, 75, 37, 73, 32, 89, 57, 107, 96, 72, 59, 52, 50, 78, 68, 51, 66, 63, 73, 59, 76, 73, 65, 66, 63, 69, 66, 73, 39, 60, 52, 73, 53, 83, 46, 71, 70, 50, 63, 69, 48, 82, 45, 67, 73, 49, 87, 71, 71, 68, 42, 51, 50, 62, 86, 82, 50, 90, 44, 77, 65, 88, 74, 76, 48, 43, 50, 73, 90, 75, 53, 82, 62, 67, 66, 83, 89, 54, 65, 50, 66, 61, 75, 61, 48, 61, 56, 54, 51, 58, 61, 66, 48, 87, 56, 54, 50, 66, 59, 59, 91, 58, 57, 126, 79, 66, 41, 47, 65, 63, 77, 52, 56, 48, 93, 64, 64, 70, 75, 55, 63, 54, 60, 64, 73, 68, 60, 81, 78, 73, 90, 78, 46, 59, 55, 75, 56, 63, 58, 64, 72, 44, 70, 44, 73, 71, 72, 58, 59, 66, 73, 71, 97, 59, 55, 59, 71, 57, 43, 82, 65, 53, 69, 59, 69, 109, 142, 67, 77, 103, 66, 64, 97, 69, 57, 98, 53, 56, 53, 57, 58, 67, 55, 52, 48, 59, 58, 91, 60, 61, 54, 67, 82, 80, 77, 58, 73, 53, 61, 76, 53, 46, 72, 58, 56, 51, 72, 45, 67, 60, 90, 56, 58, 71, 68, 76, 74, 97, 51, 67, 83, 68, 57, 51, 92, 59, 58, 76, 81, 52, 72, 83, 51, 59, 58, 86, 74, 72, 57, 54, 78, 57, 95, 71, 54, 47, 70, 54, 79, 63, 51, 62, 54, 53, 55, 75, 65, 73, 56, 73, 89, 68, 62, 57, 81, 42, 65, 45, 52, 87, 72, 62, 69, 104, 65, 50, 57, 62, 70, 52, 61, 69, 63, 58, 56, 40, 73, 61, 40, 52, 56, 58, 83, 55, 33, 93, 84, 42, 70, 61, 81, 64, 94, 68, 67, 57, 54, 73, 71, 98, 40, 59, 69, 66, 75, 56, 66, 35, 39, 41, 58, 70, 50, 41, 52, 70, 82, 64, 62, 69, 72, 70, 64, 108, 87, 71, 53, 51, 48, 68, 77, 50, 59, 86, 57, 75, 43, 66, 51, 53, 43, 61, 45, 66, 72, 65, 82, 77, 60, 84, 76, 68, 105, 91, 56, 65, 64, 75, 64, 112, 54, 65, 68, 78, 45, 64, 50, 69, 109, 81, 97, 56, 36, 83, 52, 66, 86, 65, 54, 79, 97, 58, 85, 59, 34, 93, 75, 61, 66, 57, 52, 70, 68, 79, 50, 67, 55, 72, 65, 40, 62, 40, 62, 63, 66, 53, 68, 71, 97, 42, 128, 73, 90, 60, 49, 57, 53, 104, 72, 75, 72, 65, 43, 35, 58, 48, 64, 50, 59, 47, 49, 59, 76, 55, 52, 62, 59, 87, 50, 64, 39, 51, 59, 66, 58, 47, 59, 75, 49, 43, 93, 83, 72, 70, 51, 67, 63, 75, 69, 56, 57, 63, 67, 107, 45, 67, 54, 80, 69, 74, 70, 58, 66, 53, 82, 58, 61, 66, 55, 96, 58, 70, 43, 83, 66, 61, 70, 74, 67, 64, 57, 72, 60, 66, 57, 41, 51, 87, 48, 88, 62, 54, 75, 45, 35, 57, 62, 80, 43, 68, 55, 65, 72, 73, 64, 56, 71, 73, 65, 83, 68, 76, 76, 88, 56, 65, 67, 64, 75, 53, 56, 61, 70, 44, 74, 85, 64, 53, 126, 56, 64, 49, 63, 66, 37, 59, 73, 60, 60, 64, 88, 60, 69, 44, 88, 105, 77, 51, 59, 60, 75, 58, 64, 97, 59, 76, 115, 58, 72, 50, 73, 46, 54, 78, 88, 53, 46, 77, 55, 59, 93, 40, 75, 81, 66, 87, 50, 57, 65, 73, 52, 62, 63, 62, 45, 52, 56, 60, 62, 73, 83, 54, 90, 73, 104, 68, 97, 65, 63, 69, 79, 82, 73, 47, 62, 66, 50, 47, 96, 73, 81, 50, 69, 92, 48, 56, 87, 65, 71, 70, 66, 41, 57, 66, 54, 70, 63, 51, 57, 64, 70, 67, 74, 75, 54, 58, 72, 67, 49, 75, 55, 64, 49, 86, 68, 75, 68, 82, 80, 58, 69, 48, 68, 45, 62, 84, 47, 66, 58, 90, 58, 65, 81, 56, 59, 88, 42, 56, 50, 55, 90, 51, 66, 45, 54, 50, 75, 80, 71, 78, 63, 104, 52, 62, 66, 63, 50, 73, 54, 50, 65, 67, 37, 94, 57, 130, 75, 68, 84, 57, 54, 58, 78, 94, 84, 58, 89, 67, 84, 100, 57, 51, 84, 54, 62, 95, 55, 54, 79, 57, 97, 65, 73, 63, 76, 68, 61, 61, 71, 69, 64, 62, 93, 59, 59, 150, 54, 66, 68, 74, 84, 45, 69, 56, 82, 38, 60, 56, 40, 104, 62, 94, 87, 67, 61, 50, 74, 46, 53, 48, 59, 49, 40, 62, 53, 69, 49, 64, 63, 63, 88, 76, 58, 65, 74, 87, 64, 49, 71, 49, 56, 72, 53, 46, 76, 94, 86, 77, 70, 56, 66, 76, 110, 58, 58, 51, 73, 69, 61, 61, 59, 70, 55, 47, 62, 63, 89, 49, 58, 77, 76, 66, 62, 54, 66, 98, 64, 56, 65, 80, 54, 71, 72, 56, 52, 56, 40, 62, 78, 89, 70, 65, 36, 75, 74, 79, 54, 71, 50, 81, 39, 54, 65, 66, 66, 59, 77, 76, 82, 67, 63, 56, 60, 92, 78, 69, 44, 56, 57, 63, 54, 64, 58, 61, 62, 49, 57, 66, 44, 89, 61, 67, 120, 79, 74, 72, 72, 70, 62, 49, 71, 56, 71, 86, 51, 64, 48, 60, 83, 71, 61, 85, 68, 58, 55, 77, 82, 63, 68, 120, 86, 57, 94, 68, 60, 57, 65, 56, 79, 78, 83, 62, 69, 50, 57, 43, 63, 71, 75, 85, 74, 50, 60, 59, 49, 75, 37, 94, 79, 64, 59, 37, 66, 87, 84, 49, 82, 64, 67, 83, 85, 71, 64, 67, 63, 47, 59, 60, 56, 55, 61, 55, 44, 57, 66, 76, 58, 80, 77, 71, 65, 68, 63, 77, 81, 86, 54, 69, 89, 60, 74, 65, 80, 82, 66, 70, 72, 75, 59, 46, 63, 57, 47, 69, 58, 63, 63, 46, 70, 74, 79, 62, 64, 61, 76, 66, 49, 86, 61, 60, 55, 68, 73, 95, 106, 55, 53, 62, 61, 87, 50, 79, 76, 72, 62, 54, 61, 55, 48, 62, 62, 106, 65, 66, 57, 101, 49, 56, 76, 56, 114, 65, 134, 96, 51, 54, 54, 50, 61, 70, 65, 49, 53, 39, 69, 71, 82, 40, 88, 104, 82, 107, 75, 63, 78, 63, 83, 51, 57, 62, 95, 83, 65, 73, 52, 57, 63, 64, 72, 87, 56, 74, 56, 51, 74, 56, 70, 83, 75, 69, 65, 56, 53, 53, 57, 64, 66, 78, 76, 59, 62, 73, 85, 54, 39, 75, 62, 75, 68, 62, 70, 77, 49, 60, 66, 69, 70, 51, 60, 53, 61, 62, 61, 77, 76, 69, 53, 73, 72, 52, 71, 69, 65, 66, 63, 55, 61, 119, 53, 76, 57, 63, 72, 82, 71, 59, 77, 60, 52, 50, 52, 56, 80, 54, 62, 56, 94, 67, 65, 62, 53, 54, 60, 101, 72, 69, 49, 63, 66, 54, 73, 53, 68, 57, 64, 68, 62, 76, 87, 62, 79, 39, 79, 57, 58, 55, 84, 61, 46, 74, 79, 69, 85, 64, 68, 58, 58, 50, 69, 69, 59, 59, 63, 54, 67, 128, 48, 57, 54, 50, 77, 59, 83, 62, 73, 63, 80, 76, 55, 58, 52, 68, 79, 51, 103, 53, 66, 57, 66, 56, 91, 76, 41, 166, 63, 48, 55, 61, 60, 89, 57, 62, 64, 46, 63, 59, 57, 75, 76, 45, 52, 60, 133, 54, 49, 71, 77, 86, 67, 59, 57, 66, 85, 62, 46, 53, 71, 51, 72, 69, 56, 54, 87, 62, 64, 61, 54, 43, 56, 54, 52, 75, 63, 74, 72, 70, 57, 72, 45, 65, 70, 52, 76, 63, 71, 55, 47, 84, 57, 68, 54, 57, 64, 108, 76, 82, 55, 60, 64, 140, 50, 90, 68, 55, 67, 55, 54, 70, 63, 59, 50, 84, 74, 48, 51, 56, 71, 58, 66, 63, 61, 77, 57, 66, 72, 48, 91, 86, 59, 48, 62, 69, 75, 81, 71, 52, 65, 61, 35, 74, 50, 67, 83, 72, 41, 77, 70, 40, 39, 55, 71, 60, 71, 54, 85, 70, 79, 68, 68, 61, 54, 62, 55, 54, 61, 87, 63, 76, 56, 61, 61, 56, 57, 67, 68, 58, 63, 52, 89, 55, 60, 74, 55, 54, 51, 87, 62, 69, 54, 68, 60, 65, 59, 49, 72, 73, 60, 54, 73, 67, 60, 50, 77, 85, 72, 74, 58, 57, 74, 50, 49, 71, 46, 78, 43, 59, 59, 66, 62, 65, 70, 64, 64, 61, 72, 77, 76, 58, 87, 55, 108, 66, 66, 74, 63, 71, 62, 40, 87, 105, 80, 53, 79, 61, 59, 64, 72, 93, 60, 64, 59, 61, 69, 57, 62, 72, 89, 51, 62, 59, 62, 56, 57, 76, 70, 86, 54, 65, 80, 48, 63, 71, 77, 55, 49, 66, 72, 41, 77, 60, 68, 35, 71, 81, 78, 60, 73, 68, 59, 65, 63, 57, 68, 76, 72, 58, 70, 52, 54, 56, 70, 54, 69, 67, 48, 59, 68, 71, 85, 87, 60, 49, 72, 55, 49, 81, 68, 87, 73, 62, 70, 70, 66, 71, 75, 57, 99, 76, 78, 44, 56, 80, 76, 64, 63, 84, 69, 84, 64, 38, 57, 64, 66, 48, 71, 72, 52, 59, 62, 53, 59, 71, 66, 68, 53, 62, 55, 72, 69, 59, 81, 68, 86, 62, 54, 101, 62, 91, 99, 65, 94, 64, 86, 70, 87, 50, 62, 51, 60, 69, 44, 69, 81, 79, 81, 68, 48, 73, 74, 82, 85, 63, 57, 45, 82, 68, 64, 68, 68, 82, 65, 62, 82, 79, 68, 58, 68, 53, 67, 66, 48, 55, 101, 61, 85, 62, 57, 69, 50, 51, 65, 60, 63, 56, 80, 62, 63, 50, 61, 82, 92, 58, 63, 57, 54, 43, 76, 98, 57, 79, 66, 55, 63, 63, 62, 61, 67, 47, 77, 74, 60, 57, 74, 50, 69, 75, 77, 88, 46, 65, 62, 69, 59, 58, 78, 123, 62, 79, 46, 61, 113, 76, 51, 89, 79, 49, 69, 61, 55, 61, 88, 83, 52, 65, 89, 81, 95, 61, 60, 65, 84, 66, 66, 61, 74, 76, 58, 73, 75, 66, 68, 59, 75, 44, 68, 59, 65, 44, 54, 127, 69, 97, 66, 58, 89, 58, 72, 104, 57, 63, 71, 45, 81, 64, 57, 42, 100, 129, 56, 53, 67, 67, 68, 109, 74, 67, 86, 57, 64, 71, 59, 53, 55, 53, 67, 64, 105, 43, 67, 72, 57, 65, 66, 40, 68, 70, 62, 76, 53, 64, 55, 65, 89, 51, 64, 63, 71, 56, 68, 52, 82, 62, 68, 66, 57, 78, 51, 62, 63, 53, 47, 75, 46, 76, 45, 47, 84, 63, 69, 66, 58, 52, 82, 61, 70, 77, 105, 103, 60, 57, 55, 54, 159, 56, 57, 64, 69, 47, 48, 102, 63, 79, 63, 49, 60, 75, 32, 74, 65, 71, 71, 77, 64, 44, 68, 71, 76, 66, 71, 51, 73, 67, 52, 58, 101, 61, 88, 55, 80, 128, 71, 50, 64, 58, 80, 49, 64, 62, 54, 66, 79, 64, 81, 68, 77, 68, 45, 71, 58, 71, 79, 82, 44, 47, 47, 72, 69, 69, 42, 62, 60, 56, 42, 37, 73, 73, 79, 59, 56, 94, 77, 52, 43, 78, 58, 55, 54, 83, 69, 90, 70, 68, 84, 55, 53, 65, 64, 53, 65, 69, 101, 61, 75, 69, 70, 105, 38, 59, 82, 60, 59, 99, 52, 65, 67, 64, 67, 69, 88, 69, 56, 58, 52, 59, 78, 57, 52, 76, 66, 62, 63, 66, 71, 67, 80, 99, 56, 50, 81, 55, 95, 45, 76, 62, 104, 54, 59, 72, 73, 86, 62, 67, 62, 55, 82, 64, 70, 76, 53, 66, 75, 63, 80, 58, 70, 87, 80, 54, 82, 49, 66, 51, 63, 45, 61, 55, 52, 53, 58, 49, 55, 60, 38, 80, 82, 74, 67, 94, 71, 59, 43, 73, 54, 64, 93, 69, 100, 49, 63, 66, 50, 81, 69, 61, 49, 76, 77, 89, 73, 82, 82, 60, 65, 95, 54, 48, 50, 64, 105, 54, 79, 60, 64, 126, 65, 65, 88, 68, 83, 60, 42, 113, 53, 47, 53, 60, 49, 55, 43, 64, 67, 64, 77, 59, 64, 57, 79, 62, 56, 80, 58, 72, 81, 57, 65, 71, 83, 65, 98, 63, 48, 64, 80, 57, 64, 56, 117, 74, 62, 91, 83, 65, 75, 65, 78, 54, 81, 93, 83, 75, 59, 73, 60, 56, 57, 71, 61, 57, 85, 76, 51, 71, 64, 49, 67, 70, 82, 43, 50, 50, 69, 59, 69, 58, 83, 60, 60, 73, 94, 65, 59, 74, 71, 61, 51, 44, 56, 86, 45, 87, 94, 70, 70, 63, 63, 56, 58, 56, 61, 77, 71, 60, 77, 97, 61, 50, 58, 51, 70, 58, 78, 80, 64, 60, 55, 94, 42, 48, 72, 51, 84, 62, 54, 62, 86, 57, 71, 53, 68, 68, 39, 97, 64, 72, 70, 34, 73, 61, 57, 84, 48, 58, 56, 47, 66, 69, 73, 51, 57, 51, 70, 65, 91, 84, 80, 54, 60, 56, 64, 55, 52, 54, 85, 54, 68, 118, 49, 51, 86, 63, 87, 44, 66, 51, 107, 82, 81, 110, 61, 39, 66, 64, 48, 67, 54, 54, 65, 69, 68, 98, 62, 81, 46, 65, 63, 56, 91, 61, 71, 64, 71, 69, 51, 67, 96, 56, 63, 67, 69, 46, 70, 74, 95, 51, 71, 69, 75, 63, 48, 69, 37, 67, 76, 79, 62, 52, 59, 57, 75, 63, 38, 65, 80, 64, 52, 84, 52, 53, 68, 89, 79, 61, 75, 81, 62, 70, 76, 55, 67, 70, 86, 58, 64, 51, 53, 61, 46, 56, 67, 68, 77, 79, 43, 51, 66, 47, 50, 40, 62, 47, 55, 52, 80, 72, 93, 58, 80, 88, 35, 64, 73, 52, 57, 89, 49, 60, 65, 96, 70, 48, 54, 46, 61, 54, 59, 60, 61, 45, 75, 56, 60, 56, 84, 43, 94, 49, 54, 83, 79, 67, 52, 73, 82, 54, 74, 61, 60, 66, 82, 73, 75, 69, 47, 49, 66, 49, 78, 67, 53, 60, 97, 66, 51, 70, 63, 74, 73, 98, 109, 90, 58, 48, 51, 71, 42, 82, 69, 49, 84, 50, 83, 59, 40, 101, 69, 61, 68, 68, 104, 73, 62, 54, 67, 60, 63, 83, 50, 35, 54, 69, 106, 80, 66, 58, 43, 83, 65, 71, 60, 91, 44, 79, 64, 63, 80, 62, 81, 60, 70, 35, 60, 53, 47, 77, 72, 41, 64, 57, 67, 79, 66, 65, 48, 51, 73, 76, 48, 82, 79, 41, 57, 55, 86, 60, 100, 82, 68, 38, 57, 47, 61, 51, 62, 54, 65, 53, 76, 67, 103, 64, 46, 56, 50, 47, 67, 67, 61, 81, 54, 83, 75, 65, 57, 92, 74, 83, 80, 83, 55, 80, 85, 86, 51, 64, 51, 106, 96, 68, 57, 40, 76, 74, 92, 81, 49, 32, 51, 57, 70, 60, 71, 54, 80, 38, 50, 60, 64, 55, 55, 38, 52, 42, 66, 58, 79, 73, 63, 83, 67, 62, 61, 65, 64, 93, 96, 76, 71, 59, 64, 43, 66, 60, 48, 51, 80, 73, 70, 59, 63, 49, 85, 69, 52, 64, 89, 75, 77, 72, 90, 52, 69, 58, 51, 82, 68, 75, 43, 75, 63, 52, 63, 58, 44, 62, 80, 64, 50, 67, 64, 92, 73, 72, 65, 64, 44, 53, 73, 61, 53, 57, 56, 64, 82, 33, 60, 60, 58, 43, 67, 88, 68, 79, 44, 52, 40, 58, 74, 59, 57, 43, 47, 60, 49, 87, 62, 49, 39, 92, 56, 60, 79, 64, 56, 58, 44, 75, 52, 69, 58, 42, 68, 66, 58, 84, 58, 71, 60, 65, 89, 84, 88, 101, 83, 66, 44, 39, 66, 85, 63, 106, 83, 66, 92, 100, 70, 63, 58, 109, 75, 46, 76, 66, 55, 75, 83, 55, 75, 55, 60, 71, 59, 69, 40, 64, 63, 80, 48, 80, 62, 54, 87, 58, 74, 67, 45, 58, 74, 65, 89, 53, 51, 54, 64, 59, 70, 56, 43, 62, 51, 55, 59, 61, 78, 82, 62, 83, 83, 58, 75, 58, 86, 72, 60, 95, 49, 74, 73, 63, 91, 56, 59, 44, 60, 64, 60, 63, 32, 62, 54, 52, 64, 75, 51, 72, 68, 71, 66, 95, 50, 79, 68, 64, 60, 55, 74, 31, 72, 80, 66, 50, 62, 64, 57, 54, 52, 53, 113, 85, 52, 55, 74, 79, 61, 40, 50, 56, 88, 65, 71, 71, 67, 82, 55, 60, 70, 68, 84, 87, 58, 50, 58, 59, 67, 62, 61, 58, 48, 66, 68, 64, 135, 65, 64, 61, 61, 89, 54, 77, 116, 72, 70, 61, 71, 70, 55, 56, 121, 61, 56, 123, 89, 71, 51, 64, 88, 66, 51, 60, 42, 71, 44, 77, 58, 44, 62, 97, 72, 107, 91, 81, 71, 59, 78, 71, 73, 84, 68, 81, 59, 46, 59, 48, 87, 51, 89, 84, 50, 91, 70, 52, 67, 70, 82, 89, 65, 98, 34, 69, 63, 56, 60, 66, 59, 94, 76, 71, 55, 60, 57, 56, 73, 66, 76, 54, 48, 50, 68, 61, 76, 71, 64, 59, 113, 58, 74, 94, 52, 73, 79, 62, 47, 75, 49, 48, 54, 69, 54, 74, 78, 78, 58, 57, 75, 61, 81, 38, 64, 51, 66, 82, 72, 55, 81, 79, 52, 72, 72, 77, 32, 61, 44, 46, 70, 67, 47, 74, 44, 72, 51, 49, 82, 59, 67, 59, 88, 53, 54, 78, 53, 62, 61, 66, 63, 102, 79, 58, 67, 82, 64, 66, 71, 66, 52, 63, 45, 59, 60, 74, 72, 65, 74, 45, 72, 72, 52, 65, 55, 126, 92, 64, 83, 64, 62, 73, 63, 57, 63, 64, 71, 55, 79, 61, 86, 66, 46, 42, 55, 50, 62, 64, 62, 66, 57, 59, 35, 74, 56, 77, 64, 67, 55, 51, 71, 90, 62, 61, 43, 54, 87, 56, 75, 65, 52, 71, 52, 80, 42, 56, 57, 64, 48, 78, 57, 69, 47, 47, 64, 49, 53, 53, 84, 82, 66, 68, 44, 102, 58, 59, 53, 63, 38, 52, 103, 53, 63, 69, 60, 82, 57, 77, 87, 70, 74, 56, 72, 51, 64, 50, 50, 56, 59, 68, 70, 74, 73, 65, 42, 69, 57, 61, 85, 56, 64, 87, 59, 82, 78, 48, 65, 49, 56, 77, 69, 47, 67, 61, 38, 48, 57, 79, 65, 85, 42, 60, 53, 62, 73, 69, 51, 38, 85, 51, 66, 56, 72, 65, 56, 59, 66, 65, 68, 68, 76, 78, 80, 57, 92, 64, 66, 89, 95, 97, 57, 69, 55, 47, 52, 66, 73, 73, 67, 60, 72, 56, 61, 61, 37, 46, 75, 63, 54, 64, 84, 64, 53, 60, 81, 86, 67, 77, 63, 68, 58, 43, 58, 61, 56, 51, 60, 70, 66, 67, 26, 82, 54, 63, 47, 76, 64, 50, 64, 66, 77, 80, 54, 70, 63, 58, 98, 60, 61, 67, 76, 64, 40, 55, 62, 43, 56, 75, 67, 46, 77, 91, 70, 44, 50, 75, 56, 62, 103, 52, 58, 53, 53, 48, 65, 50, 50, 44, 76, 74, 47, 82, 71, 58, 52, 73, 86, 51, 59, 61, 59, 63, 70, 57, 86, 63, 53, 66, 63, 61, 57, 46, 57, 54, 56, 88, 65, 76, 62, 84, 69, 93, 45, 43, 52, 63, 54, 88, 55, 97, 81, 86, 46, 66, 75, 156, 113, 62, 57, 52, 85, 78, 76, 122, 70, 61, 60, 51, 59, 68, 51, 49, 61, 56, 56, 92, 67, 74, 76, 72, 73, 114, 60, 64, 76, 88, 73, 65, 55, 66, 78, 77, 88, 57, 60, 59, 83, 72, 68, 76, 61, 66, 77, 47, 59, 62, 61, 63, 71, 54, 67, 59, 51, 58, 63, 99, 80, 60, 53, 63, 66, 45, 46, 55, 58, 79, 70, 45, 58, 72, 60, 63, 57, 79, 97, 104, 48, 57, 68, 59, 39, 44, 62, 52, 71, 66, 67, 58, 62, 90, 80, 52, 54, 50, 58, 55, 68, 116, 78, 64, 61, 61, 53, 73, 75, 72, 58, 55, 46, 68, 73, 74, 61, 63, 48, 82, 57, 57, 57, 59, 58, 49, 60, 61, 60, 104, 51, 56, 65, 69, 69, 67, 69, 62, 77, 79, 56, 66, 49, 52, 54, 109, 57, 68, 63, 69, 67, 62, 60, 59, 66, 58, 55, 67, 69, 103, 52, 70, 50, 104, 47, 66, 77, 68, 44, 60, 58, 36, 63, 82, 130, 55, 88, 75, 69, 56, 58, 50, 65, 63, 79, 95, 62, 82, 69, 60, 83, 62, 94, 92, 56, 80, 61, 63, 61, 73, 66, 79, 53, 52, 78, 71, 58, 89, 78, 50, 52, 74, 59, 64, 79, 75, 51, 45, 100, 92, 77, 26, 66, 83, 59, 63, 55, 96, 66, 69, 69, 56, 73, 78, 41, 55, 54, 66, 68, 82, 77, 54, 58, 68, 61, 74, 77, 58, 92, 63, 61, 74, 58, 78, 76, 51, 47, 68, 88, 63, 59, 60, 77, 61, 60, 85, 61, 68, 84, 128, 56, 74, 81, 56, 58, 90, 70, 74, 71, 61, 103, 78, 67, 69, 70, 88, 85, 96, 79, 52, 74, 75, 43, 75, 93, 64, 73, 80, 61, 47, 78, 62, 60, 83, 61, 73, 102, 70, 44, 77, 50, 71, 62, 75, 48, 57, 80, 80, 60, 64, 51, 78, 63, 72, 55, 69, 69, 46, 55, 48, 96, 69, 56, 68, 79, 93, 83, 68, 54, 87, 58, 62, 85, 68, 65, 45, 72, 47, 67, 75, 52, 61, 61, 51, 89, 58, 55, 52, 60, 63, 62, 56, 55, 66, 71, 91, 59, 66, 73, 72, 63, 82, 41, 109, 80, 81, 60, 62, 69, 56, 84, 63, 53, 61, 80, 62, 61, 95, 72, 51, 65, 67, 78, 94, 66, 72, 173, 71, 51, 48, 82, 68, 78, 49, 155, 62, 73, 73, 65, 74, 73, 68, 61, 57, 66, 71, 68, 114, 58, 55, 95, 62, 72, 72, 64, 70, 93, 57, 54, 70, 90, 72, 101, 61, 56, 65, 62, 46, 80, 73, 56, 83, 66, 55, 53, 50, 44, 53, 30, 64, 80, 77, 50, 49, 52, 92, 54, 55, 82, 46, 62, 64, 65, 44, 55, 57, 62, 71, 53, 81, 88, 65, 70, 77, 64, 54, 96, 54, 64, 53, 97, 106, 66, 77, 45, 40, 72, 105, 67, 97, 50, 63, 78, 77, 74, 46, 63, 74, 46, 44, 59, 82, 64, 56, 57, 62, 58, 66, 50, 59, 59, 75, 72, 52, 50, 67, 39, 63, 47, 60, 37, 55, 57, 53, 63, 38, 56, 54, 41, 84, 62, 70, 131, 85, 67, 75, 80, 51, 68, 61, 69, 76, 73, 62, 76, 73, 53, 65, 76, 56, 54, 61, 50, 49, 75, 50, 81, 96, 72, 62, 72, 59, 67, 87, 84, 76, 75, 60, 76, 83, 77, 53, 108, 52, 65, 67, 74, 98, 49, 55, 46, 87, 61, 47, 77, 75, 67, 74, 51, 67, 59, 66, 87, 52, 75, 63, 150, 63, 66, 79, 58, 60, 72, 101, 58, 57, 63, 64, 55, 96, 52, 71, 62, 110, 79, 62, 69, 65, 47, 72, 63, 67, 56, 124, 75, 62, 57, 63, 60, 70, 44, 61, 56, 52, 83, 82, 60, 60, 41, 44, 53, 67, 63, 94, 46, 66, 60, 63, 72, 43, 87, 60, 76, 53, 67, 57, 55, 56, 79, 73, 66, 58, 71, 65, 71, 80, 51, 74, 57, 60, 53, 61, 58, 65, 61, 69, 54, 86, 63, 49, 62, 58, 75, 64, 83, 69, 82, 83, 54, 52, 58, 69, 47, 71, 68, 53, 63, 79, 74, 62, 88, 49, 65, 61, 79, 51, 83, 62, 64, 66, 77, 69, 81, 68, 52, 56, 78, 57, 46, 87, 63, 63, 78, 71, 69, 71, 75, 50, 49, 67, 89, 69, 71, 63, 51, 55, 60, 50, 69, 47, 87, 56, 81, 58, 78, 107, 41, 63, 68, 59, 82, 129, 88, 80, 62, 59, 52, 58, 70, 63, 88, 58, 64, 70, 61, 63, 71, 69, 57, 68, 49, 57, 89, 46, 82, 73, 60, 66, 71, 53, 61, 42, 108, 79, 53, 67, 73, 65, 58, 77, 44, 55, 101, 56, 46, 57, 58, 53, 62, 58, 62, 80, 60, 58, 48, 68, 58, 79, 66, 58, 54, 95, 57, 68, 75, 57, 64, 65, 66, 53, 54, 54, 64, 70, 62, 62, 78, 71, 65, 67, 57, 57, 64, 68, 63, 69, 111, 71, 56, 56, 66, 85, 94, 68, 66, 68, 56, 71, 62, 46, 63, 117, 53, 45, 53, 76, 48, 47, 70, 81, 55, 142, 83, 65, 65, 60, 48, 79, 55, 66, 48, 57, 53, 75, 61, 64, 68, 59, 80, 52, 77, 96, 57, 76, 57, 65, 58, 69, 70, 69, 62, 51, 66, 61, 63, 63, 73, 52, 70, 58, 65, 84, 87, 73, 59, 45, 62, 70, 64, 65, 66, 74, 62, 57, 79, 60, 53, 64, 55, 69, 58, 60, 51, 53, 69, 51, 62, 92, 67, 63, 68, 82, 56, 89, 91, 46, 78, 74, 65, 46, 67, 80, 72, 62, 75, 54, 184, 78, 67, 53, 48, 43, 55, 49, 44, 63, 57, 67, 67, 48, 72, 72, 63, 59, 63, 86, 96, 60, 88, 97, 68, 75, 61, 54, 65, 39, 40, 88, 52, 36, 53, 79, 88, 54, 62, 67, 57, 68, 73, 72, 110, 56, 86, 68, 91, 79, 53, 63, 62, 49, 67, 54, 54, 72, 72, 82, 82, 66, 83, 88, 73, 60, 46, 75, 53, 62, 51, 64, 56, 64, 62, 89, 88, 68, 49, 68, 72, 84, 61, 65, 52, 47, 50, 62, 64, 49, 56, 54, 63, 71, 75, 65, 64, 58, 65, 48, 55, 57, 55, 87, 83, 64, 48, 137, 79, 50, 62, 60, 49, 67, 75, 77, 62, 60, 66, 64, 65, 61, 78, 57, 62, 43, 63, 78, 63, 79, 70, 40, 68, 69, 67, 66, 74, 57, 84, 70, 72, 94, 42, 60, 62, 56, 60, 80, 59, 74, 57, 73, 71, 55, 69, 59, 76, 70, 83, 50, 55, 72, 88, 67, 93, 52, 69, 60, 62, 44, 61, 61, 66, 78, 61, 72, 72, 42, 67, 76, 82, 69, 60, 63, 73, 63, 49, 61, 75, 97, 67, 55, 48, 62, 53, 62, 72, 72, 57, 99, 58, 49, 83, 59, 64, 45, 63, 78, 51, 72, 48, 50, 70, 66, 41, 69, 56, 64, 68, 52, 55, 68, 44, 62, 67, 58, 81, 56, 74, 81, 81, 63, 42, 43, 59, 66, 47, 60, 62, 64, 70, 68, 75, 67, 59, 59, 61, 81, 61, 54, 53, 56, 71, 50, 61, 62, 74, 58, 66, 48, 64, 64, 42, 71, 64, 74, 60, 74, 72, 53, 43, 58, 53, 63, 69, 78, 36, 67, 53, 75, 73, 73, 63, 45, 65, 63, 86, 74, 60, 47, 69, 72, 67, 55, 77, 43, 88, 59, 100, 92, 56, 77, 75, 59, 77, 62, 66, 48, 58, 68, 44, 51, 60, 83, 55, 59, 72, 59, 46, 83, 33, 73, 67, 50, 53, 55, 54, 47, 62, 66, 66, 59, 80, 61, 88, 66, 40, 69, 54, 69, 67, 66, 58, 51, 61, 49, 56, 73, 58, 77, 55, 57, 87, 84, 74, 57, 80, 60, 61, 64, 64, 56, 66, 66, 159, 55, 91, 61, 64, 49, 65, 83, 49, 69, 91, 72, 65, 85, 64, 60, 63, 79, 55, 59, 53, 59, 63, 49, 65, 64, 47, 80, 63, 55, 66, 62, 81, 73, 32, 88, 63, 52, 61, 55, 62, 45, 59, 47, 57, 88, 70, 70, 48, 57, 55, 55, 51, 62, 57, 66, 66, 54, 83, 76, 57, 55, 82, 66, 63, 69, 60, 90, 67, 57, 60, 83, 61, 54, 64, 57, 70, 86, 55, 67, 52, 82, 57, 88, 88, 55, 67, 66, 57, 69, 58, 58, 61, 73, 60, 52, 77, 97, 94, 61, 55, 54, 70, 60, 64, 52, 55, 74, 71, 62, 71, 62, 60, 62, 56, 42, 50, 128, 88, 80, 99, 85, 59, 49, 67, 47, 81, 71, 58, 68, 97, 48, 64, 78, 95, 55, 80, 59, 87, 42, 60, 78, 89, 84, 40, 62, 53, 75, 66, 50, 71, 77, 63, 69, 79, 56, 81, 68, 89, 67, 57, 51, 74, 70, 55, 69, 63, 54, 66, 46, 60, 93, 79, 65, 78, 55, 62, 66, 62, 59, 85, 71, 54, 69, 46, 60, 69, 42, 49, 78, 62, 67, 82, 59, 81, 70, 79, 60, 86, 51, 58, 78, 57, 61, 62, 78, 89, 47, 70, 50, 54, 66, 50, 69, 71, 133, 88, 53, 55, 65, 62, 52, 61, 71, 53, 79, 79, 57, 61, 150, 72, 67, 129, 63, 59, 50, 59, 94, 56, 88, 63, 61, 57, 71, 67, 89, 78, 72, 65, 59, 53, 61, 69, 51, 58, 91, 63, 78, 60, 50, 52, 71, 64, 48, 55, 54, 40, 71, 74, 110, 64, 63, 105, 63, 93, 67, 71, 62, 74, 66, 72, 87, 54, 62, 76, 49, 44, 83, 49, 70, 61, 52, 65, 63, 78, 50, 70, 50, 86, 66, 61, 66, 50, 72, 47, 71, 91, 72, 81, 55, 71, 67, 65, 51, 71, 70, 54, 84, 96, 80, 58, 55, 78, 63, 64, 56, 65, 54, 84, 68, 70, 71, 77, 62, 70, 54, 71, 97, 47, 52, 74, 50, 59, 73, 65, 61, 42, 74, 50, 65, 71, 55, 78, 35, 60, 54, 66, 122, 62, 58, 82, 56, 37, 63, 57, 50, 73, 62, 55, 48, 69, 63, 83, 69, 52, 46, 63, 65, 40, 57, 63, 72, 69, 67, 56, 59, 71, 55, 49, 68, 70, 90, 74, 55, 62, 63, 66, 55, 66, 63, 74, 83, 45, 55, 60, 39, 68, 83, 80, 68, 73, 72, 58, 60, 72, 73, 72, 62, 60, 64, 78, 69, 46, 44, 51, 52, 79, 81, 37, 69, 81, 67, 67, 89, 51, 63, 68, 55, 78, 38, 94, 56, 54, 53, 55, 65, 71, 40, 45, 63, 51, 70, 66, 57, 66, 66, 85, 82, 72, 96, 66, 47, 82, 50, 65, 138, 59, 76, 63, 51, 70, 55, 67, 45, 66, 60, 56, 73, 50, 84, 84, 48, 60, 73, 58, 66, 81, 58, 59, 55, 62, 77, 72, 44, 71, 50, 103, 69, 62, 89, 58, 73, 55, 76, 67, 89, 79, 82, 68, 87, 50, 52, 63, 59, 51, 60, 76, 60, 55, 49, 63, 52, 64, 80, 52, 108, 46, 67, 90, 50, 62, 65, 87, 68, 70, 69, 79, 52, 41, 52, 47, 66, 57, 61, 60, 87, 57, 81, 62, 72, 93, 61, 68, 68, 64, 80, 83, 64, 54, 74, 51, 65, 51, 32, 54, 75, 62, 50, 60, 68, 68, 72, 82, 95, 69, 132, 95, 53, 68, 58, 72, 59, 70, 74, 44, 74, 55, 50, 98, 51, 53, 69, 59, 54, 66, 61, 68, 71, 67, 83, 73, 55, 53, 45, 63, 66, 53, 56, 52, 44, 69, 51, 68, 59, 62, 57, 116, 82, 98, 59, 76, 61, 76, 57, 68, 61, 61, 46, 80, 74, 70, 68, 78, 79, 56, 65, 52, 50, 83, 58, 57, 98, 63, 65, 62, 57, 53, 98, 64, 44, 64, 70, 57, 63, 58, 51, 52, 47, 62, 52, 207, 79, 92, 61, 55, 77, 65, 68, 63, 75, 84, 115, 69, 67, 63, 79, 50, 65, 51, 118, 82, 66, 65, 65, 63, 83, 59, 64, 83, 54, 61, 71, 46, 53, 70, 72, 52, 51, 59, 44, 68, 52, 81, 61, 103, 58, 80, 47, 80, 58, 67, 53, 71, 65, 71, 49, 41, 81, 89, 55, 70, 47, 53, 56, 74, 62, 65, 62, 62, 56, 65, 69, 58, 60, 81, 110, 65, 73, 57, 65, 66, 67, 76, 66, 70, 49, 51, 53, 58, 56, 55, 53, 61, 66, 54, 62, 59, 67, 70, 57, 76, 63, 77, 54, 57, 56, 42, 121, 56, 88, 65, 48, 41, 55, 68, 75, 58, 62, 78, 57, 63, 51, 71, 85, 67, 45, 66, 64, 65, 44, 86, 42, 59, 87, 53, 36, 81, 62, 51, 48, 58, 125, 64, 61, 65, 50, 50, 82, 60, 56, 66, 52, 62, 55, 61, 59, 76, 77, 71, 53, 67, 58, 81, 54, 98, 89, 68, 67, 49, 45, 77, 71, 68, 88, 68, 61, 84, 70, 80, 67, 87, 60, 43, 70, 76, 81, 74, 55, 62, 91, 64, 65, 81, 50, 62, 47, 48, 85, 77, 93, 54, 48, 68, 58, 65, 70, 51, 62, 68, 85, 63, 59, 63, 58, 71, 77, 53, 49, 75, 59, 65, 67, 54, 57, 59, 79, 74, 60, 58, 64, 67, 83, 66, 52, 62, 65, 41, 49, 100, 54, 64, 76, 66, 62, 57, 66, 47, 71, 52, 89, 84, 50, 58, 52, 72, 76, 59, 74, 67, 49, 59, 48, 58, 68, 56, 77, 50, 93, 60, 59, 50, 61, 61, 50, 66, 67, 85, 55, 73, 62, 64, 52, 81, 75, 77, 63, 67, 71, 68, 52, 54, 74, 52, 59, 56, 68, 100, 61, 81, 114, 53, 70, 67, 79, 107, 51, 51, 91, 45, 72, 85, 55, 58, 56, 66, 67, 82, 88, 35, 52, 43, 66, 67, 59, 41, 68, 43, 45, 50, 81, 48, 65, 62, 54, 63, 47, 50, 66, 73, 43, 65, 72, 71, 65, 63, 55, 45, 69, 45, 85, 45, 53, 105, 87, 59, 89, 64, 47, 53, 58, 52, 68, 63, 54, 104, 67, 91, 55, 46, 52, 55, 64, 33, 73, 88, 52, 71, 76, 74, 48, 80, 70, 61, 79, 63, 85, 74, 57, 82, 56, 53, 43, 53, 54, 43, 51, 71, 59, 48, 76, 69, 57, 80, 59, 49, 69, 55, 52, 68, 70, 40, 58, 59, 49, 47, 31, 79, 65, 79, 71, 80, 64, 95, 58, 71, 53, 60, 53, 69, 61, 61, 65, 64, 41, 46, 75, 49, 61, 55, 51, 48, 63, 60, 57, 74, 89, 68, 56, 108, 67, 83, 62, 77, 53, 70, 63, 44, 63, 65, 43, 58, 86, 96, 53, 64, 50, 67, 57, 77, 67, 69, 75, 73, 103, 79, 53, 57, 68, 62, 75, 71, 113, 102, 77, 60, 81, 54, 90, 71, 58, 67, 47, 53, 86, 98, 61, 66, 64, 84, 58, 70, 41, 96, 61, 76, 70, 59, 83, 29, 38, 68, 83, 56, 71, 62, 67, 76, 43, 74, 44, 51, 61, 97, 71, 74, 64, 54, 77, 64, 79, 45, 55, 41, 56, 66, 79, 92, 47, 54, 71, 60, 86, 64, 53, 51, 60, 44, 66, 73, 67, 74, 55, 77, 87, 55, 55, 88, 64, 75, 108, 57, 64, 108, 68, 70, 74, 36, 54, 68, 67, 92, 49, 52, 50, 58, 61, 51, 67, 70, 108, 92, 57, 69, 74, 82, 52, 55, 66, 45, 62, 59, 57, 67, 186, 77, 75, 86, 51, 59, 61, 56, 101, 66, 85, 69, 73, 56, 71, 55, 74, 71, 86, 47, 57, 65, 67, 72, 36, 54, 55, 52, 109, 61, 46, 55, 55, 57, 52, 42, 51, 55, 73, 78, 99, 46, 53, 77, 64, 65, 43, 77, 51, 71, 185, 67, 69, 76, 59, 68, 50, 69, 105, 73, 89, 77, 58, 62, 43, 69, 86, 57, 51, 75, 73, 77, 76, 72, 47, 65, 59, 55, 91, 86, 48, 92, 66, 46, 54, 56, 63, 57, 77, 108, 81, 76, 72, 54, 63, 53, 71, 70, 48, 69, 77, 81, 56, 68, 81, 85, 67, 64, 88, 55, 59, 85, 63, 72, 66, 55, 62, 54, 76, 107, 74, 76, 58, 61, 57, 80, 51, 59, 71, 64, 65, 70, 61, 59, 62, 58, 74, 56, 71, 62, 63, 59, 61, 61, 61, 63, 52, 54, 70, 64, 87, 71, 52, 67, 61, 60, 56, 48, 55, 87, 56, 52, 60, 73, 56, 79, 66, 69, 83, 64, 63, 53, 68, 66, 78, 62, 61, 106, 69, 70, 60, 68, 68, 71, 80, 60, 62, 84, 87, 55, 57, 53, 58, 59, 52, 59, 57, 70, 61, 64, 70, 69, 113, 67, 56, 136, 60, 58, 63, 78, 79, 66, 48, 47, 61, 65, 89, 58, 59, 60, 71, 55, 70, 54, 54, 51, 60, 58, 69, 61, 64, 74, 69, 64, 71, 65, 57, 59, 77, 57, 81, 91, 75, 81, 68, 71, 47, 71, 68, 62, 90, 81, 65, 68, 53, 54, 60, 48, 67, 72, 60, 82, 66, 79, 59, 110, 56, 64, 82, 69, 62, 52, 67, 55, 60, 82, 77, 68, 53, 69, 62, 69, 65, 63, 50, 50, 65, 66, 56, 73, 52, 63, 73, 61, 60, 24, 62, 79, 70, 53, 56, 71, 97, 76, 61, 86, 64, 103, 62, 61, 64, 96, 119, 56, 60, 72, 76, 68, 60, 70, 61, 80, 61, 73, 50, 62, 55, 58, 60, 53, 87, 46, 73, 66, 44, 78, 51, 63, 73, 49, 64, 59, 52, 78, 81, 69, 95, 55, 94, 58, 49, 81, 62, 74, 117, 96, 64, 61, 73, 57, 66, 59, 57, 63, 66, 61, 53, 51, 33, 95, 97, 60, 52, 68, 71, 78, 56, 55, 79, 59, 90, 71, 60, 82, 76, 63, 58, 66, 71, 63, 70, 53, 72, 58, 56, 67, 48, 63, 63, 57, 59, 77, 67, 78, 49, 58, 50, 71, 58, 55, 48, 68, 63, 56, 38, 74, 59, 66, 68, 58, 63, 70, 68, 57, 66, 57, 63, 76, 61, 59, 57, 61, 45, 74, 49, 80, 58, 72, 65, 58, 68, 62, 53, 60, 57, 55, 64, 62, 48, 77, 83, 69, 57, 66, 54, 71, 79, 119, 60, 42, 69, 52, 76, 60, 54, 28, 77, 70, 70, 86, 75, 60, 66, 48, 52, 56, 77, 52, 66, 80, 64, 55, 56, 56, 57, 52, 57, 70, 97, 82, 60, 62, 64, 74, 63, 83, 56, 70, 55, 69, 60, 53, 66, 68, 59, 85, 66, 76, 66, 55, 63, 66, 66, 55, 87, 70, 63, 80, 72, 82, 57, 75, 75, 61, 63, 77, 55, 44, 71, 62, 69, 78, 59, 70, 62, 62, 65, 86, 53, 47, 65, 65, 58, 85, 71, 73, 80, 64, 60, 62, 77, 63, 69, 62, 54, 95, 56, 51, 64, 61, 98, 46, 72, 62, 60, 71, 68, 69, 64, 74, 64, 83, 73, 60, 61, 61, 48, 64, 67, 53, 71, 65, 56, 121, 68, 48, 59, 60, 45, 66, 57, 68, 40, 84, 61, 61, 62, 61, 68, 61, 74, 57, 92, 78, 67, 58, 52, 62, 61, 60, 79, 67, 53, 90, 64, 79, 85, 56, 64, 66, 55, 73, 70, 64, 61, 59, 87, 64, 93, 67, 67, 61, 50, 54, 59, 62, 48, 70, 55, 66, 61, 71, 52, 68, 78, 49, 50, 64, 46, 80, 53, 66, 61, 63, 59, 47, 63, 48, 57, 53, 57, 58, 56, 47, 79, 65, 76, 71, 78, 69, 75, 59, 86, 75, 63, 58, 54, 66, 59, 51, 57, 61, 44, 66, 67, 54, 54, 58, 60, 65, 75, 77, 59, 60, 56, 76, 69, 60, 62, 57, 56, 59, 68, 53, 70, 50, 67, 53, 37, 65, 76, 76, 57, 52, 47, 55, 77, 56, 69, 58, 53, 63, 75, 59, 63, 63, 78, 61, 66, 63, 58, 75, 75, 79, 91, 84, 51, 64, 64, 53, 65, 58, 58, 62, 65, 69, 61, 42, 61, 60, 52, 89, 56, 69, 67, 71, 54, 71, 73, 67, 61, 116, 54, 64, 68, 84, 62, 76, 88, 60, 69, 68, 87, 78, 67, 54, 73, 86, 74, 59, 71, 69, 78, 58, 63, 53, 52, 81, 74, 70, 67, 115, 55, 53, 47, 60, 50, 61, 71, 60, 69, 57, 74, 67, 66, 61, 68, 79, 79, 109, 58, 53, 73, 75, 55, 75, 54, 65, 69, 55, 62, 61, 66, 78, 66, 89, 78, 72, 51, 45, 52, 71, 57, 72, 67, 63, 65, 70, 78, 60, 59, 63, 56, 68, 64, 88, 64, 73, 61, 68, 73, 65, 60, 87, 54, 72, 56, 74, 76, 74, 64, 54, 65, 71, 73, 50, 71, 59, 64, 85, 83, 59, 57, 53, 69, 60, 64, 48, 54, 77, 68, 82, 57, 67, 81, 106, 63, 82, 68, 73, 80, 80, 56, 58, 70, 110, 57, 46, 61, 58, 61, 78, 58, 71, 63, 77, 56, 56, 53, 68, 74, 89, 67, 64, 69, 96, 68, 55, 67, 68, 60, 74, 76, 67, 79, 59, 66, 52, 44, 61, 69, 95, 65, 53, 71, 54, 63, 72, 54, 68, 57, 74, 56, 50, 57, 77, 62, 53, 73, 81, 68, 66, 65, 58, 56, 78, 62, 63, 57, 82, 73, 54, 57, 64, 68, 55, 93, 65, 54, 72, 83, 58, 71, 72, 57, 77, 48, 73, 93, 56, 70, 59, 67, 46, 69, 77, 87, 61, 77, 83, 52, 82, 68, 36, 52, 67, 59, 62, 54, 58, 58, 66, 57, 87, 63, 56, 49, 74, 72, 77, 67, 119, 57, 62, 64, 81, 76, 63, 56, 59, 103, 66, 61, 71, 52, 59, 59, 63, 48, 63, 70, 60, 86, 82, 81, 52, 80, 64, 51, 58, 59, 62, 66, 63, 89, 65, 77, 104, 64, 68, 60, 67, 117, 76, 91, 57, 71, 49, 54, 58, 74, 62, 67, 62, 68, 64, 53, 66, 69, 60, 69, 64, 55, 54, 85, 66, 65, 69, 61, 49, 58, 60, 102, 70, 62, 59, 60, 74, 69, 68, 68, 73, 72, 60, 76, 82, 65, 59, 64, 68, 62, 55, 64, 64, 72, 54, 59, 59, 73, 55, 62, 84, 53, 86, 44, 50, 75, 63, 62, 49, 51, 51, 66, 74, 61, 85, 81, 59, 84, 43, 64, 46, 108, 53, 67, 52, 66, 92, 69, 70, 64, 67, 62, 77, 86, 62, 76, 95, 67, 92, 73, 58, 71, 65, 61, 87, 75, 72, 97, 59, 64, 51, 50, 83, 79, 46, 49, 63, 62, 63, 60, 116, 79, 55, 61, 75, 55, 57, 85, 87, 72, 73, 66, 58, 80, 68, 61, 52, 100, 54, 72, 60, 77, 53, 59, 90, 51, 57, 48, 74, 54, 46, 45, 70, 73, 86, 60, 45, 59, 68, 69, 64, 55, 68, 67, 63, 53, 50, 73, 69, 72, 64, 59, 49, 72, 57, 75, 63, 53, 51, 82, 70, 52, 69, 67, 91, 58, 64, 60, 60, 47, 62, 80, 72, 85, 55, 73, 52, 56, 45, 67, 72, 67, 70, 83, 77, 57, 58, 66, 63, 64, 80, 77, 64, 90, 60, 73, 40, 64, 53, 68, 57, 86, 77, 69, 63, 72, 94, 64, 53, 61, 97, 64, 60, 56, 56, 59, 72, 85, 75, 83, 66, 55, 75, 89, 66, 57, 99, 65, 56, 71, 87, 71, 113, 86, 59, 78, 55, 65, 42, 64, 89, 63, 72, 69, 58, 70, 66, 71, 59, 63, 64, 36, 83, 65, 65, 77, 86, 63, 60, 65, 70, 72, 51, 44, 61, 80, 58, 61, 71, 55, 63, 84, 80, 57, 60, 56, 61, 69, 65, 91, 75, 56, 70, 91, 53, 54, 52, 64, 80, 71, 71, 61, 62, 62, 60, 67, 44, 64, 48, 52, 58, 83, 65, 39, 54, 40, 64, 91, 58, 55, 79, 90, 52, 81, 61, 63, 60, 71, 69, 68, 76, 63, 75, 58, 57, 57, 57, 65, 58, 71, 59, 47, 43, 70, 59, 65, 58, 51, 65, 56, 69, 54, 51, 77, 63, 59, 93, 60, 58, 66, 73, 69, 42, 66, 90, 47, 56, 70, 83, 54, 52, 75, 61, 78, 65, 93, 69, 54, 66, 60, 62, 42, 61, 62, 96, 71, 63, 54, 58, 70, 75, 64, 50, 55, 64, 82, 58, 55, 57, 58, 59, 62, 80, 67, 64, 54, 67, 56, 48, 93, 61, 67, 65, 61, 71, 70, 55, 54, 73, 67, 104, 66, 54, 64, 56, 72, 63, 70, 81, 86, 60, 69, 52, 65, 80, 57, 54, 69, 71, 61, 107, 67, 74, 60, 50, 62, 43, 85, 58, 59, 51, 66, 66, 60, 57, 84, 44, 45, 67, 69, 58, 64, 50, 67, 66, 57, 52, 112, 120, 89, 74, 44, 61, 58, 73, 96, 67, 74, 60, 78, 71, 60, 56, 61, 59, 73, 97, 60, 60, 55, 55, 96, 81, 73, 58, 79, 53, 54, 58, 55, 69, 51, 49, 39, 55, 47, 68, 54, 50, 59, 69, 49, 79, 77, 71, 94, 98, 55, 63, 57, 73, 49, 60, 70, 73, 78, 53, 57, 64, 66, 60, 64, 71, 64, 49, 64, 76, 50, 59, 68, 78, 98, 52, 55, 80, 77, 44, 67, 78, 79, 59, 74, 77, 79, 62, 104, 62, 68, 60, 80, 74, 49, 69, 50, 71, 73, 54, 54, 61, 61, 57, 76, 68, 65, 63, 36, 65, 61, 88, 71, 66, 46, 51, 61, 64, 68, 56, 93, 56, 71, 65, 60, 79, 73, 66, 63, 80, 57, 124, 57, 55, 53, 63, 70, 62, 73, 46, 63, 67, 78, 57, 60, 89, 63, 58, 81, 66, 59, 58, 59, 97, 63, 65, 84, 54, 74, 61, 52, 45, 69, 44, 58, 71, 51, 58, 73, 47, 76, 70, 55, 88, 71, 64, 104, 63, 65, 47, 67, 44, 33, 81, 72, 67, 61, 76, 38, 62, 55, 60, 74, 81, 80, 76, 75, 49, 44, 59, 73, 50, 57, 62, 45, 76, 94, 59, 72, 54, 73, 62, 66, 73, 57, 65, 85, 69, 57, 65, 59, 79, 58, 81, 46, 56, 63, 78, 71, 54, 70, 49, 63, 72, 72, 63, 61, 63, 44, 65, 63, 55, 58, 83, 53, 65, 45, 98, 76, 61, 70, 82, 70, 70, 63, 54, 86, 65, 39, 59, 63, 96, 86, 69, 64, 54, 56, 59, 66, 57, 68, 90, 66, 113, 75, 76, 61, 51, 56, 66, 61, 55, 57, 58, 94, 74, 71, 88, 45, 58, 96, 54, 81, 59, 51, 64, 57, 39, 64, 60, 56, 75, 73, 55, 47, 70, 36, 81, 63, 64, 47, 71, 47, 81, 56, 67, 69, 79, 73, 106, 64, 70, 57, 74, 62, 63, 93, 75, 52, 75, 51, 70, 97, 65, 75, 49, 62, 57, 63, 71, 94, 83, 60, 64, 64, 51, 46, 91, 67, 66, 64, 95, 84, 54, 53, 57, 58, 64, 91, 58, 52, 71, 59, 66, 62, 67, 62, 64, 72, 99, 73, 63, 45, 68, 113, 55, 57, 60, 99, 112, 63, 75, 87, 68, 49, 62, 70, 60, 74, 73, 65, 62, 59, 64, 88, 82, 65, 75, 91, 67, 71, 45, 72, 54, 76, 51, 82, 66, 57, 81, 60, 88, 65, 68, 77, 69, 65, 70, 53, 86, 62, 72, 82, 74, 68, 48, 70, 60, 57, 50, 46, 57, 77, 69, 72, 66, 68, 77, 71, 39, 53, 83, 60, 56, 65, 52, 62, 67, 67, 40, 61, 57, 88, 47, 52, 58, 48, 63, 61, 59, 75, 108, 63, 102, 75, 82, 64, 58, 62, 49, 107, 66, 49, 60, 93, 84, 66, 78, 64, 82, 70, 60, 48, 53, 55, 61, 62, 68, 75, 65, 63, 63, 58, 76, 51, 58, 77, 66, 60, 77, 57, 63, 53, 75, 56, 79, 79, 74, 74, 64, 59, 59, 64, 73, 71, 84, 69, 48, 50, 54, 75, 63, 89, 48, 61, 55, 66, 71, 62, 90, 88, 63, 69, 70, 67, 60, 68, 87, 60, 74, 65, 43, 123, 78, 78, 87, 65, 62, 58, 93, 58, 55, 53, 58, 72, 60, 84, 46, 54, 79, 68, 66, 73, 79, 64, 77, 73, 67, 70, 55, 106, 61, 52, 64, 75, 58, 57, 52, 53, 71, 45, 72, 53, 134, 57, 56, 97, 85, 65, 82, 84, 68, 60, 60, 77, 47, 70, 54, 72, 68, 60, 58, 54, 77, 79, 83, 58, 71, 112, 86, 64, 58, 87, 68, 54, 57, 63, 76, 74, 64, 67, 52, 66, 70, 59, 88, 61, 57, 63, 83, 53, 90, 64, 83, 34, 63, 63, 62, 59, 65, 132, 92, 90, 64, 59, 89, 60, 72, 59, 42, 51, 90, 118, 60, 45, 60, 55, 84, 81, 90, 69, 88, 66, 55, 79, 55, 73, 79, 75, 65, 84, 53, 97, 92, 88, 91, 47, 65, 64, 68, 56, 68, 56, 69, 57, 49, 114, 79, 83, 67, 59, 58, 31, 106, 56, 61, 81, 48, 57, 50, 48, 65, 47, 78, 83, 34, 77, 45, 79, 53, 74, 55, 69, 63, 39, 59, 54, 57, 62, 57, 61, 86, 66, 58, 70, 70, 65, 53, 51, 90, 44, 66, 46, 96, 80, 65, 68, 65, 72, 52, 56, 61, 39, 58, 62, 72, 80, 54, 49, 71, 62, 67, 63, 63, 48, 78, 60, 80, 78, 90, 53, 62, 52, 71, 83, 52, 65, 68, 78, 56, 66, 79, 52, 57, 72, 62, 94, 64, 91, 67, 69, 101, 62, 56, 62, 89, 69, 77, 74, 61, 73, 57, 73, 67, 84, 77, 61, 62, 43, 94, 61, 74, 51, 57, 55, 43, 57, 65, 69, 76, 74, 68, 72, 57, 74, 55, 60, 66, 87, 57, 62, 81, 67, 53, 53, 64, 75, 64, 65, 65, 80, 70, 82, 43, 63, 56, 67, 63, 48, 68, 74, 84, 65, 59, 61, 75, 63, 69, 45, 52, 56, 66, 53, 64, 55, 95, 104, 60, 60, 51, 70, 56, 65, 51, 82, 96, 68, 84, 103, 147, 66, 76, 63, 42, 81, 60, 64, 56, 58, 52, 66, 76, 51, 53, 59, 70, 66, 71, 57, 63, 65, 45, 46, 56, 55, 62, 55, 77, 70, 49, 76, 85, 49, 40, 57, 70, 62, 49, 98, 65, 46, 65, 68, 65, 49, 59, 56, 63, 49, 65, 60, 76, 96, 67, 50, 66, 48, 70, 58, 41, 104, 67, 58, 56, 67, 80, 71, 62, 57, 64, 58, 58, 78, 64, 47, 73, 50, 58, 48, 58, 58, 68, 81, 65, 57, 75, 63, 83, 64, 54, 64, 47, 75, 52, 69, 65, 89, 65, 65, 52, 82, 59, 71, 87, 57, 65, 85, 57, 84, 90, 36, 80, 52, 60, 49, 57, 82, 53, 61, 65, 65, 70, 86, 131, 69, 77, 83, 50, 42, 54, 78, 63, 69, 68, 64, 91, 69, 74, 51, 85, 81, 59, 67, 68, 52, 46, 58, 71, 73, 70, 75, 65, 70, 67, 74, 58, 74, 69, 62, 57, 57, 84, 96, 69, 74, 75, 73, 60, 53, 56, 81, 77, 60, 85, 53, 55, 50, 81, 84, 45, 69, 75, 65, 76, 66, 67, 82, 104, 122, 62, 58, 63, 49, 46, 66, 67, 69, 63, 59, 40, 56, 59, 82, 59, 62, 55, 92, 72, 57, 85, 60, 51, 76, 83, 55, 73, 62, 61, 73, 55, 77, 61, 61, 65, 67, 71, 32, 66, 82, 67, 71, 74, 67, 79, 46, 54, 58, 66, 51, 81, 66, 60, 49, 56, 63, 67, 56, 69, 40, 75, 48, 45, 67, 107, 89, 56, 49, 58, 74, 65, 62, 65, 69, 62, 63, 123, 57, 84, 75, 59, 53, 42, 46, 44, 70, 69, 95, 54, 49, 64, 62, 64, 59, 70, 56, 45, 76, 77, 66, 54, 61, 81, 52, 101, 67, 61, 72, 57, 62, 88, 77, 88, 67, 66, 45, 61, 34, 62, 52, 53, 50, 58, 80, 89, 115, 54, 55, 75, 71, 50, 89, 103, 84, 64, 68, 70, 43, 54, 54, 52, 86, 77, 79, 56, 66, 50, 100, 69, 46, 73, 59, 51, 46, 47, 46, 51, 72, 67, 73, 50, 77, 44, 49, 87, 82, 58, 57, 38, 111, 91, 73, 56, 72, 61, 76, 63, 63, 57, 85, 47, 58, 92, 91, 44, 50, 80, 85, 66, 46, 65, 58, 55, 37, 66, 78, 68, 71, 64, 63, 43, 72, 66, 92, 94, 62, 55, 75, 64, 79, 50, 59, 61, 49, 53, 87, 87, 83, 65, 82, 63, 69, 73, 95, 65, 50, 79, 116, 62, 69, 74, 46, 51, 58, 72, 70, 52, 60, 85, 49, 60, 94, 95, 64, 69, 79, 54, 62, 73, 67, 64, 78, 63, 56, 80, 68, 57, 46, 71, 75, 80, 60, 81, 99, 72, 82, 47, 59, 81, 68, 80, 68, 43, 68, 56, 95, 115, 65, 64, 55, 54, 61, 64, 90, 64, 74, 75, 93, 59, 69, 70, 77, 54, 60, 56, 68, 68, 50, 63, 56, 76, 48, 46, 52, 50, 40, 76, 114, 59, 53, 50, 74, 61, 62, 71, 74, 63, 100, 66, 46, 54, 64, 55, 50, 58, 60, 55, 71, 85, 53, 70, 68, 67, 61, 56, 66, 52, 52, 68, 53, 79, 63, 54, 90, 94, 50, 63, 71, 58, 59, 101, 92, 85, 63, 100, 55, 77, 53, 46, 61, 55, 74, 54, 60, 78, 56, 104, 71, 80, 48, 67, 73, 72, 81, 74, 65, 52, 67, 59, 79, 102, 58, 61, 41, 58, 74, 71, 64, 49, 49, 91, 90, 69, 70, 54, 99, 76, 71, 59, 71, 87, 102, 70, 56, 92, 58, 71, 76, 69, 82, 46, 67, 58, 74, 92, 51, 41, 68, 79, 63, 88, 63, 65, 70, 56, 42, 66, 45, 65, 55, 55, 90, 70, 58, 66, 74, 97, 60, 65, 93, 65, 58, 72, 69, 92, 74, 66, 66, 75, 77, 91, 61, 60, 94, 54, 62, 63, 64, 79, 71, 64, 80, 85, 74, 67, 64, 43, 73, 66, 75, 65, 62, 76, 50, 45, 52, 64, 66, 81, 67, 51, 44, 90, 78, 78, 64, 79, 66, 58, 40, 68, 53, 71, 55, 62, 69, 67, 76, 64, 71, 88, 61, 67, 42, 56, 133, 60, 64, 78, 88, 77, 68, 65, 113, 81, 73, 65, 79, 55, 92, 60, 67, 80, 62, 50, 46, 57, 73, 82, 46, 55, 94, 50, 67, 86, 82, 51, 56, 47, 61, 69, 79, 89, 60, 47, 57, 40, 58, 83, 57, 62, 62, 83, 62, 49, 56, 48, 83, 34, 68, 80, 78, 63, 52, 103, 67, 72, 62, 73, 68, 52, 60, 98, 41, 47, 59, 61, 67, 92, 55, 32, 74, 64, 51, 79, 72, 40, 60, 89, 75, 62, 59, 65, 85, 55, 62, 74, 68, 92, 49, 55, 64, 60, 79, 71, 67, 79, 100, 64, 74, 67, 54, 72, 64, 56, 70, 60, 68, 41, 50, 55, 75, 71, 66, 68, 60, 56, 75, 72, 59, 39, 76, 92, 46, 86, 49, 64, 98, 86, 55, 67, 101, 65, 71, 54, 64, 56, 68, 51, 56, 56, 59, 65, 78, 42, 91, 78, 68, 32, 59, 64, 101, 67, 66, 64, 68, 68, 67, 66, 69, 70, 54, 63, 71, 77, 38, 59, 73, 78, 69, 70, 44, 55, 42, 79, 65, 63, 75, 79, 78, 67, 78, 66, 56, 60, 51, 86, 67, 70, 57, 54, 72, 68, 72, 56, 65, 50, 59, 55, 49, 49, 75, 65, 62, 77, 63, 69, 49, 58, 73, 85, 73, 59, 58, 51, 69, 96, 82, 71, 56, 54, 60, 56, 44, 68, 79, 75, 60, 71, 61, 57, 56, 69, 52, 81, 64, 75, 96, 62, 51, 92, 88, 68, 66, 56, 61, 57, 78, 62, 62, 84, 65, 62, 57, 76, 45, 83, 70, 50, 44, 51, 55, 79, 50, 72, 53, 49, 56, 80, 59, 84, 79, 61, 61, 67, 68, 41, 51, 67, 77, 65, 57, 58, 67, 41, 68, 72, 70, 84, 77, 56, 67, 64, 76, 74, 56, 77, 82, 68, 83, 47, 60, 54, 53, 63, 108, 71, 61, 66, 81, 79, 77, 65, 70, 66, 67, 85, 56, 110, 51, 67, 73, 67, 44, 62, 45, 84, 95, 39, 81, 79, 57, 65, 115, 69, 68, 56, 61, 67, 68, 64, 75, 51, 68, 62, 86, 61, 57, 57, 72, 57, 83, 94, 77, 65, 74, 56, 80, 63, 84, 80, 100, 62, 78, 59, 46, 55, 94, 85, 47, 70, 57, 97, 57, 73, 52, 85, 67, 59, 44, 34, 51, 87, 72, 72, 55, 63, 71, 52, 56, 84, 54, 40, 65, 93, 62, 79, 71, 61, 54, 61, 83, 88, 73, 70, 72, 77, 72, 83, 69, 71, 60, 82, 78, 47, 79, 58, 52, 87, 64, 60, 56, 58, 55, 58, 45, 94, 54, 92, 65, 88, 81, 57, 60, 49, 67, 58, 98, 51, 81, 69, 65, 60, 61, 54, 60, 62, 67, 71, 76, 129, 59, 62, 47, 66, 81, 58, 62, 75, 73, 95, 105, 39, 57, 91, 69, 76, 65, 83, 79, 70, 54, 70, 57, 47, 60, 67, 67, 93, 45, 27, 54, 66, 67, 84, 53, 79, 58, 62, 90, 42, 64, 68, 57, 73, 75, 72, 59, 66, 73, 43, 73, 62, 90, 66, 71, 84, 48, 58, 58, 49, 50, 72, 89, 83, 68, 61, 64, 51, 58, 64, 49, 77, 47, 58, 71, 61, 80, 83, 95, 55, 82, 68, 55, 60, 84, 68, 56, 84, 74, 61, 77, 57, 89, 33, 61, 75, 65, 60, 69, 122, 59, 55, 63, 49, 85, 61, 84, 36, 53, 56, 45, 65, 77, 70, 59, 46, 71, 61, 81, 45, 33, 79, 86, 99, 127, 70, 80, 93, 59, 72, 86, 51, 39, 59, 61, 70, 43, 49, 58, 93, 60, 53, 75, 64, 50, 67, 48, 76, 48, 43, 77, 48, 70, 59, 65, 61, 62, 57, 58, 75, 42, 73, 86, 63, 75, 79, 59, 50, 62, 58, 69, 68, 60, 55, 60, 73, 94, 53, 57, 58, 58, 92, 71, 55, 65, 57, 64, 48, 68, 59, 63, 68, 84, 65, 50, 53, 75, 60, 66, 67, 78, 36, 62, 64, 70, 78, 69, 73, 68, 77, 85, 58, 59, 60, 63, 51, 60, 47, 53, 101, 61, 66, 66, 51, 49, 38, 74, 62, 79, 76, 77, 54, 68, 62, 77, 57, 150, 75, 49, 60, 58, 48, 59, 71, 94, 54, 64, 69, 76, 45, 77, 55, 79, 65, 55, 81, 88, 92, 105, 53, 71, 41, 66, 82, 64, 70, 71, 69, 83, 64, 75, 58, 77, 63, 72, 54, 54, 57, 55, 53, 62, 75, 68, 59, 59, 55, 66, 70, 88, 89, 49, 127, 58, 57, 64, 67, 74, 70, 67, 63, 67, 64, 51, 78, 77, 70, 66, 61, 62, 50, 84, 54, 58, 65, 67, 49, 96, 45, 73, 109, 60, 79, 70, 96, 74, 57, 60, 82, 82, 57, 63, 82, 74, 78, 59, 46, 67, 58, 38, 100, 59, 63, 59, 74, 64, 61, 65, 64, 48, 47, 53, 70, 73, 60, 88, 61, 98, 62, 81, 62, 63, 72, 74, 48, 75, 59, 65, 77, 52, 56, 63, 75, 64, 63, 88, 68, 53, 87, 65, 72, 54, 67, 57, 36, 101, 53, 43, 88, 66, 57, 87, 71, 67, 66, 76, 78, 69, 51, 93, 49, 75, 50, 77, 99, 61, 56, 59, 64, 58, 63, 54, 77, 60, 60, 67, 85, 76, 44, 69, 91, 64, 37, 55, 52, 37, 61, 70, 50, 64, 85, 45, 53, 61, 115, 49, 52, 79, 44, 64, 48, 81, 97, 73, 78, 67, 66, 73, 85, 53, 60, 56, 63, 78, 56, 66, 90, 60, 89, 82, 73, 96, 65, 54, 44, 65, 49, 77, 62, 66, 60, 67, 81, 35, 81, 59, 62, 45, 84, 56, 67, 62, 62, 53, 67, 68, 64, 74, 62, 52, 52, 45, 56, 66, 64, 69, 112, 104, 52, 60, 60, 84, 73, 84, 58, 82, 67, 68, 80, 91, 108, 40, 60, 84, 91, 53, 66, 45, 46, 38, 84, 68, 67, 52, 79, 70, 82, 61, 85, 61, 94, 70, 58, 49, 82, 42, 46, 95, 57, 117, 83, 80, 77, 85, 85, 82, 93, 60, 46, 48, 74, 80, 63, 62, 68, 74, 57, 68, 106, 61, 53, 65, 62, 53, 98, 52, 69, 71, 57, 63, 54, 70, 74, 55, 47, 145, 59, 88, 48, 90, 67, 57, 65, 65, 80, 68, 35, 63, 78, 75, 73, 51, 46, 86, 66, 48, 52, 68, 74, 56, 63, 102, 41, 80, 69, 74, 79, 78, 46, 66, 66, 69, 66, 72, 58, 68, 74, 74, 55, 50, 55, 58, 78, 63, 65, 57, 71, 52, 74, 89, 81, 48, 71, 74, 53, 63, 52, 64, 66, 71, 51, 89, 64, 76, 66, 49, 71, 71, 88, 42, 67, 59, 48, 74, 49, 42, 59, 78, 54, 68, 95, 61, 60, 52, 67, 59, 84, 59, 67, 61, 73, 47, 66, 43, 63, 73, 62, 72, 72, 72, 83, 63, 48, 65, 46, 71, 81, 62, 62, 54, 59, 42, 79, 74, 58, 88, 63, 56, 60, 60, 46, 70, 59, 65, 53, 68, 69, 97, 77, 64, 46, 87, 54, 62, 62, 56, 60, 64, 49, 67, 76, 68, 57, 71, 53, 71, 70, 90, 56, 62, 50, 83, 66, 72, 66, 54, 78, 57, 93, 61, 46, 67, 76, 70, 130, 58, 71, 92, 81, 94, 69, 62, 61, 53, 43, 60, 56, 59, 69, 57, 83, 54, 64, 55, 60, 79, 52, 77, 82, 78, 57, 69, 60, 48, 103, 58, 52, 66, 83, 88, 72, 55, 64, 58, 49, 60, 65, 47, 55, 54, 72, 75, 59, 90, 58, 70, 61, 67, 109, 70, 64, 66, 80, 71, 60, 55, 108, 58, 109, 55, 76, 73, 59, 75, 101, 57, 56, 44, 76, 59, 120, 75, 73, 73, 124, 72, 60, 59, 90, 66, 71, 69, 48, 75, 80, 87, 58, 50, 77, 51, 81, 72, 71, 61, 52, 62, 69, 58, 97, 75, 60, 58, 65, 81, 65, 64, 58, 54, 69, 60, 56, 42, 59, 83, 47, 71, 87, 47, 63, 83, 61, 63, 69, 72, 52, 66, 49, 69, 62, 66, 47, 57, 48, 84, 57, 72, 72, 70, 67, 67, 83, 82, 67, 89, 73, 59, 62, 73, 44, 50, 68, 64, 56, 75, 55, 57, 68, 53, 77, 122, 50, 61, 45, 64, 77, 86, 57, 61, 49, 64, 82, 70, 50, 64, 65, 45, 47, 71, 64, 52, 62, 76, 55, 70, 73, 85, 51, 59, 58, 67, 58, 48, 61, 57, 68, 72, 58, 74, 66, 74, 64, 56, 51, 50, 67, 49, 72, 40, 66, 62, 55, 55, 54, 55, 72, 78, 60, 68, 56, 57, 47, 45, 87, 72, 63, 73, 58, 52, 56, 57, 50, 78, 75, 53, 108, 71, 83, 71, 79, 69, 62, 55, 50, 78, 76, 65, 77, 80, 63, 66, 85, 49, 57, 68, 53, 125, 67, 91, 67, 58, 48, 64, 60, 111, 65, 75, 60, 48, 68, 45, 62, 52, 51, 65, 70, 52, 56, 50, 44, 79, 66, 78, 80, 67, 40, 66, 79, 57, 66, 60, 53, 66, 72, 64, 67, 49, 51, 57, 66, 53, 54, 46, 55, 101, 76, 78, 88, 53, 47, 53, 90, 71, 75, 61, 52, 63, 67, 65, 63, 67, 42, 60, 41, 72, 55, 63, 97, 58, 65, 53, 77, 65, 71, 54, 71, 65, 62, 55, 53, 69, 63, 56, 62, 66, 49, 60, 72, 83, 96, 57, 69, 86, 52, 52, 67, 49, 67, 85, 118, 54, 76, 65, 65, 69, 74, 94, 77, 70, 56, 55, 65, 58, 49, 89, 91, 80, 58, 72, 61, 60, 76, 83, 63, 84, 76, 92, 55, 63, 63, 55, 53, 56, 50, 51, 55, 95, 66, 62, 68, 67, 77, 84, 67, 66, 66, 59, 54, 120, 73, 59, 63, 56, 72, 60, 66, 57, 73, 64, 59, 57, 58, 73, 91, 65, 70, 75, 54, 62, 51, 65, 56, 67, 50, 71, 58, 56, 64, 57, 67, 67, 48, 60, 62, 55, 63, 79, 92, 50, 111, 47, 71, 74, 67, 36, 99, 85, 59, 56, 66, 49, 63, 45, 72, 58, 59, 57, 59, 57, 74, 55, 60, 73, 73, 59, 55, 75, 62, 62, 53, 64, 75, 76, 49, 79, 81, 91, 63, 83, 73, 73, 51, 83, 48, 86, 59, 62, 65, 119, 82, 57, 77, 52, 70, 82, 76, 70, 47, 49, 85, 77, 95, 69, 60, 78, 58, 65, 64, 64, 51, 52, 79, 47, 61, 88, 59, 49, 102, 77, 58, 68, 58, 52, 50, 63, 76, 69, 66, 71, 59, 105, 52, 57, 51, 52, 60, 61, 103, 114, 62, 56, 62, 90, 55, 82, 56, 83, 58, 53, 67, 70, 69, 46, 80, 74, 68, 43, 61, 69, 65, 109, 71, 56, 56, 63, 82, 57, 66, 66, 54, 101, 64, 46, 65, 73, 65, 68, 63, 55, 64, 61, 64, 68, 86, 53, 60, 60, 60, 88, 85, 89, 63, 62, 72, 58, 70, 61, 70, 67, 67, 104, 81, 63, 87, 55, 77, 85, 83, 84, 62, 61, 67, 91, 55, 47, 61, 69, 61, 62, 71, 59, 60, 77, 68, 59, 68, 54, 60, 46, 70, 74, 49, 60, 61, 71, 50, 61, 49, 99, 63, 70, 54, 59, 76, 94, 82, 42, 61, 73, 52, 61, 59, 66, 64, 33, 61, 80, 74, 50, 58, 69, 56, 69, 45, 73, 71, 51, 58, 79, 64, 44, 73, 65, 60, 59, 56, 62, 70, 77, 65, 94, 59, 70, 57, 64, 61, 95, 58, 74, 55, 53, 71, 97, 51, 54, 67, 70, 61, 53, 79, 74, 58, 63, 69, 57, 66, 59, 75, 78, 64, 55, 66, 67, 63, 79, 63, 109, 63, 65, 70, 55, 51, 61, 47, 63, 79, 53, 54, 188, 80, 66, 78, 48, 65, 57, 67, 64, 53, 54, 115, 56, 67, 68, 43, 64, 75, 69, 59, 57, 53, 61, 52, 58, 67, 81, 60, 128, 48, 58, 65, 52, 62, 65, 59, 51, 53, 58, 66, 65, 58, 67, 43, 53, 57, 63, 84, 58, 81, 65, 62, 122, 77, 77, 74, 58, 63, 60, 79, 45, 52, 63, 80, 46, 56, 69, 69, 65, 64, 52, 90, 86, 48, 64, 114, 69, 53, 47, 81, 100, 74, 67, 56, 55, 55, 47, 55, 86, 70, 62, 59, 58, 55, 64, 61, 115, 74, 68, 68, 74, 95, 66, 59, 70, 65, 63, 69, 51, 63, 53, 53, 75, 92, 64, 66, 93, 60, 65, 81, 47, 79, 66, 59, 57, 67, 78, 95, 77, 69, 72, 57, 82, 59, 90, 53, 55, 54, 74, 44, 70, 69, 65, 70, 67, 83, 58, 56, 67, 70, 72, 61, 68, 52, 46, 61, 49, 39, 69, 48, 41, 74, 53, 83, 71, 120, 84, 53, 102, 60, 102, 55, 59, 63, 64, 63, 73, 62, 67, 50, 85, 60, 48, 57, 45, 64, 88, 59, 51, 49, 76, 66, 58, 95, 86, 62, 58, 84, 71, 61, 67, 69, 59, 60, 79, 61, 66, 59, 55, 51, 75, 53, 61, 77, 64, 67, 75, 65, 91, 76, 65, 68, 78, 61, 86, 67, 76, 83, 63, 67, 49, 73, 57, 64, 48, 68, 53, 63, 47, 55, 73, 54, 61, 59, 66, 83, 65, 80, 42, 69, 96, 67, 63, 59, 69, 62, 59, 75, 54, 63, 55, 56, 62, 55, 88, 70, 71, 53, 50, 87, 61, 70, 78, 75, 52, 78, 52, 76, 61, 57, 64, 120, 89, 74, 51, 45, 56, 50, 60, 67, 65, 45, 68, 64, 63, 73, 63, 60, 55, 68, 77, 63, 77, 61, 62, 63, 55, 57, 75, 55, 57, 69, 67, 67, 61, 50, 73, 75, 59, 73, 71, 56, 70, 71, 96, 60, 45, 49, 67, 57, 65, 71, 48, 51, 53, 55, 83, 93, 68, 65, 82, 53, 71, 62, 86, 51, 72, 69, 61, 66, 76, 59, 67, 79, 60, 59, 57, 126, 74, 81, 64, 79, 61, 51, 50, 73, 63, 66, 76, 60, 62, 172, 69, 65, 100, 49, 70, 64, 38, 57, 53, 74, 61, 56, 75, 118, 57, 51, 62, 56, 88, 105, 62, 96, 65, 61, 73, 65, 58, 64, 112, 63, 97, 59, 60, 91, 52, 98, 60, 69, 62, 69, 81, 112, 45, 49, 65, 69, 56, 63, 74, 62, 56, 69, 56, 82, 49, 44, 72, 78, 76, 70, 66, 45, 70, 53, 59, 68, 84, 70, 79, 67, 61, 64, 50, 90, 76, 64, 45, 64, 53, 61, 59, 65, 65, 65, 66, 36, 67, 63, 61, 68, 61, 79, 59, 59, 73, 66, 60, 73, 59, 49, 67, 68, 60, 54, 47, 51, 70, 74, 60, 56, 81, 64, 63, 57, 69, 61, 61, 69, 78, 70, 61, 65, 62, 58, 79, 62, 68, 41, 63, 57, 115, 71, 63, 61, 57, 50, 82, 100, 80, 47, 60, 59, 70, 75, 99, 58, 71, 56, 54, 94, 53, 87, 82, 68, 63, 77, 63, 67, 78, 67, 68, 70, 57, 57, 46, 61, 69, 94, 78, 78, 58, 66, 77, 46, 67, 51, 52, 73, 128, 42, 49, 66, 62, 55, 74, 127, 55, 82, 60, 64, 70, 62, 61, 45, 66, 93, 40, 63, 91, 47, 78, 68, 68, 85, 65, 53, 66, 83, 56, 61, 73, 44, 61, 77, 56, 54, 78, 76, 58, 60, 62, 67, 80, 136, 62, 76, 69, 66, 61, 50, 78, 48, 61, 60, 69, 44, 73, 83, 80, 71, 62, 64, 71, 77, 67, 66, 67, 54, 84, 56, 54, 104, 56, 68, 41, 63, 70, 68, 77, 63, 66, 82, 64, 72, 59, 44, 50, 61, 75, 53, 118, 52, 59, 58, 60, 78, 64, 62, 55, 61, 61, 67, 79, 84, 69, 73, 83, 76, 42, 63, 65, 59, 57, 54, 97, 64, 49, 57, 65, 50, 62, 85, 105, 60, 52, 46, 66, 70, 66, 89, 69, 51, 73, 67, 67, 67, 54, 57, 84, 52, 72, 50, 68, 79, 71, 74, 75, 64, 65, 58, 69, 59, 62, 66, 71, 61, 62, 86, 49, 43, 86, 73, 57, 75, 71, 67, 76, 73, 131, 60, 73, 59, 53, 70, 42, 52, 55, 60, 71, 61, 54, 128, 49, 72, 78, 80, 39, 45, 71, 34, 51, 58, 60, 47, 75, 63, 61, 73, 58, 76, 103, 69, 60, 54, 62, 57, 60, 46, 79, 69, 68, 67, 70, 56, 64, 55, 58, 55, 72, 35, 56, 79, 55, 66, 48, 100, 53, 56, 76, 73, 53, 58, 72, 54, 78, 50, 57, 78, 75, 65, 52, 74, 66, 61, 55, 65, 64, 94, 59, 51, 60, 68, 56, 51, 55, 57, 72, 57, 51, 58, 58, 63, 79, 62, 54, 49, 63, 51, 63, 29, 58, 69, 61, 56, 67, 55, 43, 76, 61, 66, 80, 45, 75, 52, 84, 71, 64, 66, 52, 40, 53, 91, 76, 69, 62, 73, 64, 60, 55, 68, 62, 59, 45, 55, 84, 54, 61, 56, 41, 68, 67, 63, 78, 80, 64, 71, 75, 60, 64, 59, 58, 59, 69, 48, 87, 70, 57, 65, 53, 58, 61, 64, 58, 103, 63, 56, 55, 77, 62, 61, 76, 49, 61, 46, 65, 68, 79, 89, 70, 69, 77, 69, 65, 57, 64, 66, 62, 59, 67, 70, 82, 71, 68, 47, 53, 61, 107, 52, 56, 56, 53, 60, 59, 76, 61, 72, 61, 71, 59, 78, 64, 69, 54, 40, 63, 64, 54, 50, 88, 76, 68, 56, 68, 59, 62, 63, 76, 55, 49, 70, 57, 75, 60, 72, 78, 50, 72, 56, 84, 55, 72, 59, 53, 41, 56, 45, 61, 63, 71, 88, 51, 68, 63, 64, 71, 64, 51, 76, 72, 66, 71, 76, 64, 60, 61, 69, 39, 114, 55, 144, 67, 85, 96, 37, 55, 93, 84, 58, 96, 63, 51, 33, 59, 86, 65, 76, 68, 82, 63, 46, 79, 72, 50, 94, 69, 74, 72, 82, 70, 76, 55, 106, 90, 56, 64, 64, 75, 56, 59, 61, 76, 58, 70, 120, 61, 76, 50, 50, 75, 45, 76, 82, 56, 59, 52, 76, 36, 68, 80, 54, 58, 75, 61, 57, 74, 58, 60, 64, 48, 59, 57, 82, 67, 66, 46, 74, 46, 51, 71, 58, 68, 102, 58, 75, 57, 59, 99, 59, 46, 45, 68, 77, 71, 49, 90, 56, 60, 68, 53, 51, 64, 52, 76, 54, 64, 73, 65, 47, 48, 72, 63, 63, 69, 75, 46, 63, 91, 56, 67, 52, 54, 49, 54, 51, 54, 123, 55, 67, 71, 51, 55, 60, 64, 44, 82, 71, 65, 57, 112, 68, 59, 65, 48, 55, 80, 86, 71, 54, 38, 58, 92, 45, 88, 60, 68, 54, 58, 59, 73, 99, 61, 92, 60, 69, 114, 42, 61, 79, 61, 89, 57, 83, 86, 64, 46, 89, 62, 52, 45, 56, 68, 72, 56, 64, 62, 57, 73, 58, 65, 52, 47, 55, 64, 73, 69, 67, 57, 133, 69, 86, 83, 54, 52, 69, 53, 58, 123, 59, 72, 67, 59, 55, 46, 48, 71, 56, 51, 62, 60, 62, 69, 72, 88, 71, 57, 43, 121, 80, 67, 56, 58, 57, 80, 51, 93, 71, 74, 56, 62, 54, 76, 54, 36, 57, 69, 69, 61, 66, 64, 57, 71, 61, 68, 48, 58, 83, 57, 38, 69, 100, 60, 69, 78, 61, 56, 77, 87, 77, 64, 59, 83, 64, 61, 64, 55, 61, 47, 86, 44, 55, 65, 71, 64, 65, 51, 85, 52, 57, 70, 58, 88, 105, 58, 62, 59, 55, 81, 145, 55, 71, 57, 61, 101, 59, 64, 78, 81, 75, 116, 59, 64, 58, 68, 72, 54, 59, 50, 54, 56, 79, 53, 53, 67, 60, 49, 65, 60, 62, 74, 70, 69, 58, 48, 51, 56, 66, 70, 58, 67, 83, 66, 100, 77, 70, 47, 80, 58, 51, 59, 73, 68, 52, 64, 63, 69, 61, 61, 60, 75, 51, 100, 58, 70, 67, 65, 60, 57, 71, 43, 53, 79, 60, 79, 86, 90, 73, 101, 66, 67, 59, 87, 71, 46, 75, 98, 105, 63, 84, 61, 56, 61, 53, 54, 56, 61, 63, 76, 69, 66, 64, 65, 77, 52, 64, 72, 59, 89, 59, 54, 52, 79, 58, 74, 73, 91, 56, 66, 82, 59, 58, 67, 51, 73, 59, 58, 52, 73, 64, 64, 57, 83, 61, 65, 77, 53, 65, 64, 69, 63, 78, 77, 58, 73, 55, 68, 62, 54, 77, 60, 43, 50, 66, 61, 65, 80, 76, 50, 55, 58, 69, 59, 106, 85, 59, 79, 58, 57, 60, 62, 69, 91, 43, 63, 54, 57, 70, 62, 39, 73, 70, 54, 62, 67, 63, 85, 83, 67, 69, 71, 91, 68, 57, 102, 103, 67, 91, 68, 65, 87, 53, 70, 52, 87, 44, 89, 65, 73, 59, 57, 47, 61, 67, 114, 62, 75, 49, 59, 77, 49, 66, 76, 59, 52, 54, 66, 67, 67, 50, 70, 67, 53, 129, 57, 51, 59, 60, 65, 63, 43, 124, 67, 69, 55, 78, 99, 54, 46, 56, 51, 61, 59, 67, 175, 56, 70, 62, 54, 92, 67, 69, 49, 62, 75, 68, 68, 71, 88, 78, 76, 73, 54, 52, 54, 55, 91, 55, 38, 36, 60, 90, 52, 64, 63, 57, 81, 59, 84, 66, 62, 78, 70, 79, 98, 74, 75, 55, 58, 57, 65, 48, 54, 65, 75, 42, 44, 50, 60, 57, 94, 50, 74, 78, 72, 74, 55, 67, 71, 55, 63, 65, 55, 56, 52, 54, 45, 55, 62, 80, 59, 64, 76, 56, 47, 71, 72, 56, 55, 70, 74, 41, 53, 50, 66, 66, 47, 55, 70, 65, 43, 60, 58, 35, 64, 87, 82, 54, 61, 54, 50, 62, 61, 59, 68, 68, 59, 63, 51, 47, 49, 63, 50, 60, 62, 72, 42, 81, 63, 55, 61, 76, 49, 64, 51, 48, 64, 56, 85, 69, 54, 67, 40, 56, 55, 108, 71, 59, 69, 55, 72, 55, 69, 77, 67, 60, 57, 53, 62, 53, 70, 71, 69, 63, 57, 63, 41, 77, 55, 66, 66, 61, 57, 67, 124, 68, 85, 59, 76, 58, 58, 70, 59, 64, 82, 56, 46, 76, 61, 59, 87, 37, 52, 67, 63, 64, 59, 63, 52, 71, 67, 53, 118, 49, 70, 66, 67, 53, 54, 62, 102, 59, 104, 63, 60, 61, 65, 70, 58, 60, 72, 63, 61, 63, 66, 64, 61, 63, 63, 55, 60, 92, 58, 72, 47, 68, 57, 64, 70, 107, 43, 73, 51, 88, 76, 82, 58, 64, 62, 67, 47, 69, 36, 100, 92, 86, 68, 73, 72, 62, 103, 85, 95, 74, 69, 48, 67, 62, 47, 78, 60, 60, 71, 67, 80, 68, 50, 56, 65, 57, 51, 54, 75, 68, 72, 65, 73, 59, 67, 57, 77, 80, 55, 66, 65, 60, 66, 68, 53, 82, 61, 72, 62, 86, 65, 52, 78, 79, 58, 52, 60, 63, 50, 60, 55, 67, 56, 83, 55, 66, 108, 67, 47, 58, 56, 86, 66, 42, 60, 92, 56, 59, 66, 65, 56, 57, 66, 68, 54, 101, 79, 74, 55, 72, 64, 77, 73, 62, 53, 70, 97, 55, 68, 67, 70, 95, 74, 56, 65, 86, 89, 55, 53, 54, 49, 104, 71, 71, 81, 71, 75, 57, 52, 67, 47, 81, 60, 64, 59, 58, 78, 77, 64, 72, 52, 71, 59, 67, 70, 61, 75, 59, 92, 64, 66, 51, 49, 64, 60, 66, 85, 74, 62, 50, 73, 49, 64, 78, 71, 66, 36, 53, 55, 83, 71, 117, 79, 77, 61, 67, 64, 70, 64, 71, 73, 78, 58, 58, 67, 59, 55, 76, 76, 63, 43, 70, 64, 73, 51, 55, 108, 62, 63, 71, 66, 72, 59, 70, 62, 55, 64, 61, 73, 52, 65, 58, 64, 52, 50, 81, 30, 58, 71, 70, 71, 57, 73, 50, 55, 46, 68, 62, 59, 92, 58, 58, 52, 63, 56, 36, 51, 59, 82, 73, 85, 79, 69, 69, 59, 67, 64, 62, 67, 109, 70, 108, 61, 53, 69, 58, 46, 56, 68, 88, 63, 47, 88, 96, 49, 103, 72, 60, 59, 59, 63, 46, 65, 64, 63, 58, 81, 61, 63, 72, 71, 54, 68, 70, 82, 43, 52, 58, 63, 63, 55, 106, 77, 79, 99, 59, 86, 60, 93, 58, 66, 65, 71, 46, 62, 53, 62, 62, 56, 61, 59, 83, 74, 58, 75, 59, 64, 66, 65, 66, 35, 71, 97, 75, 48, 69, 52, 78, 77, 143, 58, 65, 74, 85, 56, 73, 72, 76, 59, 86, 65, 64, 57, 68, 58, 63, 54, 81, 66, 68, 51, 70, 66, 63, 62, 60, 53, 66, 43, 42, 86, 75, 55, 77, 63, 60, 52, 61, 60, 80, 54, 79, 58, 61, 73, 64, 89, 51, 58, 84, 69, 78, 68, 57, 32, 54, 57, 45, 53, 67, 64, 129, 64, 73, 68, 64, 99, 77, 63, 91, 57, 70, 68, 58, 64, 77, 64, 65, 73, 84, 75, 72, 65, 62, 66, 81, 50, 117, 87, 77, 85, 60, 58, 107, 55, 59, 75, 57, 52, 73, 66, 58, 63, 78, 46, 106, 70, 65, 77, 68, 67, 63, 62, 62, 87, 109, 67, 69, 100, 68, 70, 70, 59, 65, 76, 69, 40, 81, 56, 52, 80, 72, 63, 52, 54, 62, 70, 79, 55, 58, 69, 55, 62, 97, 71, 63, 55, 56, 80, 78, 53, 65, 58, 69, 64, 68, 46, 65, 75, 87, 74, 54, 52, 73, 57, 70, 56, 81, 60, 55, 69, 79, 76, 94, 70, 90, 51, 81, 59, 71, 63, 68, 50, 71, 67, 74, 75, 67, 83, 59, 63, 70, 91, 74, 47, 83, 40, 68, 86, 75, 51, 51, 61, 70, 52, 55, 65, 64, 73, 56, 52, 83, 61, 58, 58, 67, 66, 76, 63, 50, 49, 73, 47, 64, 70, 55, 60, 47, 105, 68, 61, 65, 86, 76, 53, 75, 44, 74, 56, 71, 44, 64, 72, 64, 76, 105, 78, 56, 64, 75, 80, 69, 51, 77, 195, 60, 61, 66, 101, 73, 62, 68, 60, 48, 62, 55, 78, 66, 37, 75, 101, 65, 73, 60, 59, 53, 89, 57, 62, 84, 50, 58, 88, 63, 81, 65, 57, 57, 47, 72, 73, 76, 54, 65, 61, 56, 56, 79, 112, 80, 86, 52, 68, 73, 83, 61, 54, 63, 72, 71, 73, 80, 46, 62, 110, 57, 58, 99, 54, 56, 57, 58, 102, 60, 55, 64, 58, 56, 73, 50, 55, 59, 44, 72, 74, 67, 64, 65, 50, 45, 57, 64, 66, 70, 43, 60, 61, 86, 59, 92, 54, 87, 40, 57, 58, 44, 80, 95, 90, 129, 96, 61, 49, 70, 48, 63, 83, 45, 61, 67, 48, 79, 78, 40, 78, 83, 68, 108, 64, 74, 58, 69, 35, 73, 63, 101, 71, 45, 53, 53, 77, 74, 71, 91, 65, 53, 72, 59, 106, 63, 75, 46, 78, 46, 70, 61, 60, 38, 54, 61, 72, 62, 49, 67, 73, 79, 61, 65, 50, 58, 84, 85, 72, 70, 44, 52, 72, 71, 45, 54, 49, 63, 64, 58, 72, 114, 75, 66, 57, 75, 52, 62, 87, 74, 89, 74, 73, 67, 67, 81, 68, 71, 62, 43, 58, 72, 107, 74, 63, 52, 59, 82, 98, 107, 66, 70, 52, 62, 72, 52, 124, 60, 66, 58, 58, 86, 64, 54, 41, 76, 106, 47, 69, 54, 63, 78, 62, 62, 64, 56, 57, 58, 52, 60, 66, 66, 58, 67, 60, 50, 74, 41, 68, 52, 77, 71, 46, 53, 62, 45, 60, 94, 90, 63, 68, 49, 68, 54, 54, 62, 73, 47, 58, 76, 54, 40, 62, 74, 54, 72, 49, 57, 70, 48, 75, 66, 103, 60, 67, 70, 52, 84, 62, 56, 51, 68, 60, 66, 67, 67, 58, 61, 141, 80, 47, 67, 55, 47, 75, 71, 63, 47, 56, 85, 62, 74, 66, 54, 66, 61, 57, 54, 79, 44, 66, 99, 66, 66, 60, 53, 67, 51, 64, 61, 61, 51, 43, 66, 59, 41, 60, 56, 75, 59, 64, 72, 79, 66, 74, 58, 59, 52, 71, 67, 60, 91, 66, 79, 46, 67, 88, 63, 65, 49, 77, 61, 58, 96, 66, 67, 46, 91, 87, 50, 79, 69, 54, 60, 61, 62, 67, 58, 70, 78, 51, 47, 74, 75, 50, 75, 93, 42, 79, 100, 62, 49, 51, 39, 60, 91, 51, 79, 73, 84, 63, 54, 85, 51, 68, 65, 57, 55, 83, 77, 49, 60, 43, 83, 86, 58, 57, 50, 68, 66, 62, 73, 70, 71, 64, 60, 72, 69, 57, 69, 68, 78, 62, 65, 46, 77, 67, 66, 59, 91, 64, 58, 49, 76, 81, 61, 66, 79, 65, 56, 59, 70, 61, 79, 57, 64, 64, 76, 57, 77, 53, 55, 72, 51, 70, 60, 74, 41, 120, 93, 60, 58, 45, 79, 69, 56, 91, 79, 91, 78, 71, 85, 68, 116, 60, 64, 64, 66, 47, 75, 64, 43, 50, 47, 64, 46, 72, 49, 62, 71, 70, 49, 74, 86, 59, 70, 84, 59, 85, 58, 65, 60, 60, 57, 63, 95, 58, 56, 54, 62, 68, 87, 54, 92, 53, 47, 69, 58, 73, 58, 83, 83, 67, 64, 60, 50, 70, 76, 76, 64, 56, 69, 53, 83, 104, 57, 64, 52, 54, 70, 73, 82, 70, 59, 66, 66, 69, 102, 78, 62, 59, 91, 72, 82, 59, 67, 72, 72, 79, 87, 50, 22, 60, 63, 87, 56, 54, 46, 75, 80, 62, 62, 58, 43, 44, 50, 50, 66, 91, 65, 71, 62, 63, 91, 56, 68, 74, 54, 77, 75, 63, 65, 77, 75, 55, 60, 58, 56, 65, 102, 82, 105, 68, 71, 54, 72, 53, 70, 84, 57, 92, 45, 68, 52, 52, 48, 52, 58, 60, 53, 96, 82, 46, 81, 66, 71, 66, 72, 70, 61, 64, 64, 59, 48, 71, 72, 72, 73, 74, 68, 56, 63, 65, 65, 64, 60, 82, 63, 88, 83, 84, 54, 41, 77, 92, 56, 55, 67, 72, 57, 50, 66, 40, 59, 50, 53, 78, 71, 59, 81, 86, 44, 81, 92, 62, 67, 71, 82, 69, 68, 84, 60, 50, 69, 78, 60, 58, 63, 118, 74, 63, 62, 55, 85, 61, 67, 48, 85, 53, 89, 40, 52, 63, 70, 88, 71, 88, 66, 89, 70, 60, 42, 50, 63, 74, 65, 77, 80, 52, 66, 65, 74, 80, 59, 58, 63, 64, 59, 82, 74, 51, 53, 66, 52, 72, 40, 90, 73, 70, 58, 65, 59, 53, 49, 52, 136, 90, 48, 54, 75, 77, 68, 51, 83, 72, 58, 67, 50, 47, 63, 72, 71, 69, 75, 92, 54, 73, 44, 87, 77, 71, 109, 58, 53, 44, 72, 75, 64, 79, 63, 63, 41, 70, 65, 74, 70, 56, 64, 57, 57, 77, 87, 59, 59, 57, 57, 62, 37, 53, 101, 66, 99, 46, 62, 65, 93, 71, 59, 53, 90, 84, 70, 55, 53, 45, 73, 68, 73, 68, 48, 57, 65, 66, 54, 85, 87, 41, 90, 48, 67, 55, 93, 85, 76, 61, 67, 88, 99, 60, 69, 55, 67, 61, 93, 116, 49, 47, 58, 63, 64, 64, 93, 60, 68, 63, 56, 66, 68, 55, 75, 82, 78, 106, 82, 51, 58, 68, 78, 56, 62, 55, 59, 73, 66, 61, 76, 70, 54, 76, 62, 47, 63, 75, 66, 42, 63, 56, 50, 60, 56, 69, 86, 73, 111, 59, 112, 47, 51, 76, 71, 63, 94, 68, 67, 71, 85, 59, 77, 82, 58, 58, 55, 60, 69, 47, 71, 69, 74, 53, 60, 89, 81, 110, 66, 73, 68, 69, 67, 61, 77, 47, 61, 60, 57, 64, 87, 78, 55, 101, 53, 58, 106, 47, 55, 90, 62, 61, 52, 87, 120, 75, 75, 71, 60, 64, 56, 65, 67, 81, 72, 59, 71, 52, 48, 63, 78, 70, 52, 64, 84, 60, 105, 51, 57, 72, 68, 56, 54, 59, 64, 50, 75, 36, 63, 58, 43, 55, 71, 56, 72, 64, 53, 50, 64, 60, 52, 59, 50, 69, 64, 57, 67, 53, 54, 70, 80, 91, 87, 61, 55, 83, 67, 58, 71, 46, 73, 60, 59, 56, 80, 46, 78, 62, 61, 78, 39, 72, 95, 60, 54, 85, 77, 56, 52, 54, 82, 47, 45, 38, 41, 63, 72, 51, 59, 42, 52, 74, 52, 79, 76, 73, 122, 84, 88, 74, 100, 50, 61, 29, 44, 69, 89, 58, 73, 64, 88, 58, 59, 72, 71, 70, 64, 58, 61, 41, 71, 61, 54, 67, 109, 36, 50, 60, 75, 84, 58, 66, 71, 53, 58, 68, 49, 56, 54, 92, 78, 48, 75, 40, 77, 74, 53, 64, 56, 67, 77, 79, 53, 39, 80, 69, 63, 77, 43, 40, 52, 62, 74, 68, 54, 76, 56, 60, 56, 47, 61, 61, 47, 71, 115, 63, 58, 76, 63, 63, 91, 83, 44, 58, 57, 66, 62, 100, 43, 82, 88, 61, 63, 68, 74, 74, 86, 89, 58, 75, 68, 47, 53, 63, 56, 66, 60, 51, 74, 45, 82, 69, 69, 60, 71, 42, 63, 54, 62, 68, 49, 58, 49, 62, 60, 69, 74, 65, 52, 73, 64, 100, 45, 73, 59, 60, 82, 91, 79, 75, 79, 56, 70, 58, 89, 64, 62, 50, 65, 69, 91, 50, 59, 52, 67, 82, 63, 52, 66, 62, 54, 57, 49, 63, 66, 63, 82, 60, 66, 54, 56, 62, 62, 75, 56, 89, 61, 68, 57, 62, 58, 35, 72, 72, 71, 73, 122, 84, 59, 48, 40, 76, 68, 64, 87, 37, 70, 49, 53, 77, 46, 89, 78, 73, 69, 72, 85, 66, 54, 56, 107, 74, 71, 118, 53, 54, 68, 65, 61, 70, 68, 58, 53, 66, 86, 116, 58, 51, 51, 60, 66, 66, 76, 59, 119, 55, 54, 70, 65, 59, 60, 48, 69, 79, 54, 66, 32, 72, 64, 50, 62, 55, 73, 79, 52, 77, 52, 43, 66, 61, 52, 55, 65, 64, 81, 39, 67, 79, 90, 68, 55, 76, 58, 49, 65, 45, 62, 63, 60, 63, 58, 126, 50, 79, 55, 56, 57, 58, 57, 49, 46, 133, 76, 64, 56, 60, 84, 102, 75, 75, 61, 54, 63, 53, 45, 68, 73, 70, 44, 67, 50, 72, 57, 66, 80, 56, 72, 60, 62, 72, 54, 94, 52, 75, 61, 69, 81, 45, 69, 64, 57, 61, 79, 64, 54, 71, 62, 69, 58, 47, 44, 49, 71, 75, 53, 59, 42, 56, 62, 56, 72, 85, 91, 55, 55, 69, 54, 43, 59, 63, 72, 71, 71, 75, 63, 61, 53, 59, 63, 59, 41, 67, 80, 61, 64, 97, 73, 68, 67, 54, 54, 96, 63, 56, 86, 57, 62, 79, 46, 52, 62, 80, 67, 71, 82, 74, 59, 69, 73, 69, 59, 68, 90, 61, 70, 70, 101, 57, 68, 79, 61, 68, 68, 70, 42, 65, 46, 65, 75, 71, 63, 68, 67, 60, 48, 83, 62, 65, 96, 44, 55, 72, 64, 91, 66, 68, 66, 62, 77, 80, 66, 160, 37, 57, 68, 51, 52, 46, 73, 68, 73, 59, 77, 62, 50, 78, 50, 62, 61, 65, 60, 95, 63, 68, 57, 58, 58, 49, 48, 64, 54, 61, 57, 103, 90, 46, 66, 73, 58, 55, 74, 38, 56, 59, 65, 67, 68, 69, 75, 65, 93, 56, 60, 41, 57, 70, 62, 65, 65, 70, 43, 55, 60, 79, 55, 74, 69, 76, 47, 91, 41, 75, 104, 54, 59, 70, 54, 68, 75, 62, 29, 72, 76, 88, 50, 49, 99, 56, 77, 78, 53, 55, 47, 80, 70, 68, 64, 59, 75, 50, 82, 55, 126, 68, 76, 42, 51, 75, 68, 62, 65, 110, 63, 59, 51, 71, 50, 52, 59, 53, 62, 104, 45, 64, 56, 57, 84, 74, 55, 70, 85, 67, 61, 72, 49, 67, 63, 71, 84, 96, 72, 94, 64, 66, 57, 85, 71, 73, 63, 67, 101, 69, 93, 70, 76, 83, 86, 72, 72, 80, 82, 71, 60, 115, 66, 63, 68, 41, 78, 59, 65, 39, 53, 52, 63, 59, 46, 76, 87, 60, 69, 68, 77, 69, 58, 46, 56, 52, 78, 58, 86, 40, 60, 59, 37, 62, 52, 87, 81, 56, 66, 76, 54, 89, 53, 68, 56, 75, 66, 69, 58, 58, 76, 73, 80, 58, 74, 62, 65, 71, 54, 59, 57, 58, 189, 73, 47, 50, 65, 81, 48, 50, 60, 39, 58, 70, 57, 79, 67, 61, 63, 58, 57, 53, 90, 62, 58, 81, 52, 80, 59, 58, 36, 65, 59, 86, 64, 64, 60, 79, 61, 73, 61, 91, 59, 107, 95, 56, 62, 85, 48, 67, 98, 70, 44, 67, 85, 58, 56, 57, 75, 86, 83, 87, 83, 71, 116, 90, 57, 83, 78, 70, 64, 73, 59, 72, 97, 72, 81, 51, 66, 64, 49, 40, 78, 68, 44, 67, 68, 97, 60, 78, 69, 58, 101, 55, 76, 63, 47, 76, 61, 58, 75, 86, 50, 49, 105, 66, 76, 58, 93, 65, 97, 40, 54, 59, 39, 42, 88, 62, 72, 51, 64, 78, 52, 63, 73, 42, 50, 58, 60, 66, 73, 77, 52, 78, 73, 59, 47, 61, 39, 96, 86, 71, 73, 57, 42, 47, 96, 48, 87, 55, 47, 83, 41, 44, 46, 51, 70, 83, 81, 80, 90, 68, 72, 65, 62, 65, 84, 58, 64, 97, 59, 62, 67, 68, 50, 48, 65, 88, 61, 54, 43, 67, 72, 37, 44, 66, 61, 56, 69, 76, 59, 66, 66, 71, 62, 53, 72, 91, 84, 63, 68, 80, 47, 118, 67, 111, 54, 61, 64, 51, 71, 65, 64, 63, 122, 60, 57, 75, 54, 79, 70, 58, 63, 75, 67, 67, 51, 77, 47, 42, 74, 54, 68, 69, 73, 56, 64, 62, 60, 47, 55, 79, 65, 65, 47, 35, 68, 114, 122, 68, 88, 52, 57, 66, 75, 60, 47, 45, 66, 46, 59, 50, 59, 47, 57, 66, 86, 72, 50, 51, 75, 72, 61, 90, 74, 55, 59, 50, 57, 49, 63, 65, 53, 37, 59, 82, 57, 42, 83, 82, 98, 57, 92, 66, 101, 60, 38, 59, 64, 51, 66, 61, 48, 57, 51, 57, 52, 64, 43, 72, 97, 58, 51, 62, 89, 59, 68, 44, 102, 59, 60, 72, 50, 53, 48, 66, 61, 76, 56, 88, 75, 43, 51, 51, 76, 51, 58, 47, 106, 103, 92, 60, 62, 103, 62, 89, 48, 53, 69, 67, 63, 58, 53, 64, 52, 41, 82, 59, 53, 59, 59, 65, 68, 52, 56, 76, 62, 102, 63, 61, 24, 72, 78, 61, 44, 93, 85, 76, 86, 83, 68, 57, 78, 47, 72, 100, 58, 33, 64, 63, 65, 71, 70, 83, 57, 78, 82, 67, 48, 72, 87, 47, 81, 69, 50, 56, 74, 57, 58, 61, 55, 68, 54, 75, 58, 69, 69, 77, 72, 121, 73, 67, 75, 55, 60, 78, 66, 89, 51, 44, 73, 88, 52, 58, 63, 81, 65, 58, 71, 72, 65, 77, 54, 64, 80, 82, 76, 117, 87, 89, 58, 49, 92, 95, 84, 79, 53, 79, 85, 62, 55, 70, 81, 56, 100, 65, 59, 56, 84, 52, 65, 50, 58, 100, 60, 70, 70, 50, 75, 57, 63, 73, 39, 60, 62, 60, 54, 78, 62, 86, 68, 79, 71, 68, 54, 80, 56, 42, 81, 51, 91, 93, 61, 63, 55, 62, 49, 57, 124, 73, 54, 56, 74, 84, 94, 70, 67, 53, 58, 63, 53, 53, 62, 47, 84, 87, 61, 65, 52, 45, 61, 46, 61, 70, 72, 68, 76, 69, 57, 88, 56, 72, 60, 34, 67, 45, 52, 56, 74, 34, 60, 77, 73, 73, 89, 68, 65, 81, 53, 57, 98, 56, 74, 58, 80, 78, 45, 56, 59, 51, 73, 57, 61, 52, 77, 46, 78, 54, 60, 59, 69, 47, 104, 58, 57, 70, 69, 66, 77, 45, 66, 51, 64, 67, 73, 54, 127, 68, 69, 52, 69, 75, 68, 63, 54, 71, 71, 57, 81, 69, 67, 62, 63, 58, 67, 67, 58, 63, 47, 64, 149, 61, 64, 67, 57, 81, 32, 61, 99, 77, 51, 79, 68, 78, 56, 48, 56, 52, 68, 80, 74, 61, 48, 58, 72, 61, 59, 67, 60, 71, 69, 49, 55, 77, 43, 101, 61, 56, 52, 193, 81, 77, 79, 71, 86, 89, 71, 61, 62, 62, 77, 62, 55, 55, 60, 78, 72, 65, 51, 72, 69, 89, 59, 28, 58, 80, 51, 61, 61, 98, 95, 56, 74, 82, 64, 80, 46, 67, 101, 76, 76, 48, 58, 55, 69, 59, 90, 68, 77, 59, 73, 74, 65, 78, 63, 83, 62, 45, 59, 54, 81, 57, 68, 42, 65, 74, 82, 96, 53, 78, 36, 53, 60, 74, 63, 51, 73, 76, 54, 57, 74, 53, 56, 66, 68, 58, 53, 56, 68, 88, 53, 71, 52, 65, 66, 44, 101, 63, 69, 46, 70, 58, 52, 48, 66, 67, 61, 60, 66, 54, 58, 54, 66, 38, 50, 68, 60, 51, 83, 49, 89, 63, 51, 78, 67, 71, 54, 51, 56, 53, 69, 73, 73, 48, 61, 78, 42, 61, 58, 53, 59, 90, 66, 123, 56, 60, 59, 44, 71, 70, 63, 53, 51, 81, 90, 77, 61, 63, 65, 77, 44, 78, 43, 58, 71, 65, 68, 81, 53, 63, 66, 75, 94, 70, 86, 76, 61, 60, 81, 56, 68, 93, 80, 50, 70, 90, 71, 82, 60, 69, 104, 55, 55, 79, 61, 79, 83, 63, 82, 63, 54, 72, 85, 52, 83, 42, 66, 60, 59, 57, 48, 71, 66, 64, 117, 74, 90, 73, 57, 64, 61, 75, 73, 63, 43, 87, 39, 68, 65, 78, 74, 57, 57, 31, 72, 53, 68, 62, 49, 67, 59, 80, 72, 56, 55, 75, 64, 52, 64, 74, 51, 48, 71, 69, 60, 47, 60, 81, 69, 72, 45, 54, 62, 78, 63, 69, 150, 82, 75, 61, 45, 95, 55, 53, 81, 106, 68, 51, 66, 59, 83, 56, 47, 52, 58, 76, 76, 60, 40, 83, 65, 63, 70, 90, 58, 50, 57, 62, 66, 76, 61, 103, 54, 49, 75, 52, 66, 54, 50, 80, 58, 54, 78, 24, 38, 52, 108, 55, 56, 58, 77, 59, 86, 48, 58, 42, 48, 34, 82, 69, 111, 68, 51, 74, 54, 60, 59, 88, 61, 53, 60, 69, 42, 58, 69, 53, 62, 57, 76, 71, 80, 54, 74, 55, 51, 89, 66, 74, 73, 52, 77, 55, 58, 88, 96, 65, 77, 55, 84, 44, 55, 59, 50, 69, 67, 81, 62, 79, 59, 69, 74, 82, 55, 66, 111, 59, 76, 66, 48, 56, 60, 83, 54, 73, 44, 92, 49, 70, 61, 80, 77, 67, 55, 52, 66, 51, 60, 87, 78, 93, 68, 113, 55, 75, 58, 43, 65, 52, 86, 94, 39, 94, 64, 60, 71, 57, 67, 54, 64, 58, 53, 68, 58, 62, 69, 86, 60, 75, 51, 74, 65, 59, 56, 53, 64, 49, 74, 46, 54, 60, 65, 96, 86, 88, 49, 69, 81, 41, 108, 58, 74, 80, 62, 50, 84, 55, 63, 72, 110, 44, 52, 53, 76, 51, 67, 65, 50, 70, 78, 40, 85, 76, 61, 74, 56, 60, 75, 62, 69, 72, 50, 82, 48, 34, 79, 57, 77, 59, 74, 75, 56, 68, 92, 49, 39, 72, 55, 62, 55, 93, 58, 60, 64, 53, 88, 66, 46, 57, 54, 79, 101, 69, 56, 97, 51, 63, 72, 71, 74, 48, 95, 70, 66, 54, 77, 75, 41, 84, 56, 61, 67, 81, 81, 43, 70, 73, 57, 72, 55, 59, 73, 45, 60, 80, 68, 52, 100, 66, 61, 80, 59, 63, 67, 57, 89, 65, 82, 71, 60, 61, 68, 70, 88, 88, 68, 62, 52, 76, 68, 40, 41, 65, 43, 69, 61, 77, 57, 101, 75, 68, 72, 42, 69, 60, 66, 61, 59, 67, 76, 84, 66, 66, 74, 38, 49, 71, 38, 73, 63, 60, 92, 81, 149, 62, 76, 55, 64, 85, 71, 69, 70, 72, 41, 66, 128, 50, 60, 56, 48, 73, 211, 74, 73, 76, 67, 65, 73, 50, 47, 42, 70, 69, 68, 63, 56, 80, 54, 73, 60, 72, 71, 45, 81, 53, 63, 68, 81, 62, 65, 78, 72, 76, 65, 76, 59, 53, 85, 50, 74, 63, 44, 73, 91, 57, 80, 39, 81, 71, 72, 88, 75, 58, 68, 73, 75, 67, 60, 33, 92, 46, 66, 98, 75, 89, 53, 49, 83, 58, 70, 64, 49, 73, 60, 77, 55, 49, 82, 46, 80, 57, 63, 73, 61, 67, 43, 68, 57, 60, 74, 74, 64, 64, 46, 56, 50, 69, 73, 55, 42, 78, 72, 52, 54, 68, 62, 57, 68, 59, 67, 76, 58, 52, 60, 72, 53, 50, 88, 70, 61, 55, 87, 52, 57, 61, 82, 65, 67, 56, 64, 57, 49, 93, 84, 76, 65, 84, 58, 64, 84, 62, 79, 89, 55, 57, 84, 76, 71, 79, 61, 65, 88, 57, 54, 67, 81, 68, 59, 67, 67, 125, 90, 72, 59, 63, 74, 64, 81, 90, 46, 51, 66, 65, 74, 64, 54, 105, 62, 62, 90, 60, 61, 69, 49, 58, 51, 80, 52, 76, 73, 56, 83, 59, 100, 66, 82, 62, 61, 54, 108, 53, 73, 42, 52, 65, 56, 75, 59, 59, 77, 107, 77, 74, 63, 56, 70, 67, 97, 65, 77, 82, 58, 68, 77, 119, 86, 73, 55, 69, 60, 70, 62, 54, 49, 48, 49, 76, 46, 54, 47, 63, 66, 78, 66, 63, 61, 78, 65, 67, 67, 86, 57, 80, 59, 55, 65, 61, 56, 69, 65, 81, 56, 66, 82, 44, 65, 51, 59, 83, 68, 71, 61, 46, 51, 60, 56, 56, 54, 51, 84, 84, 55, 72, 61, 57, 58, 32, 66, 55, 61, 64, 59, 49, 80, 70, 68, 81, 66, 62, 78, 64, 85, 63, 76, 47, 71, 66, 78, 75, 78, 48, 89, 69, 56, 76, 55, 65, 90, 61, 52, 69, 50, 144, 86, 59, 75, 66, 62, 68, 44, 69, 76, 77, 68, 60, 71, 63, 90, 87, 77, 63, 60, 66, 52, 77, 68, 66, 78, 50, 81, 41, 58, 54, 77, 56, 51, 97, 65, 71, 74, 94, 55, 69, 58, 54, 67, 65, 60, 77, 70, 72, 52, 80, 59, 66, 53, 59, 80, 64, 31, 69, 58, 59, 74, 57, 78, 69, 74, 60, 86, 49, 70, 64, 63, 66, 65, 57, 112, 74, 51, 59, 73, 74, 50, 58, 62, 59, 63, 67, 59, 101, 65, 65, 61, 74, 83, 57, 57, 82, 45, 65, 54, 85, 87, 82, 74, 71, 68, 40, 63, 55, 41, 61, 53, 49, 71, 75, 74, 52, 54, 30, 67, 53, 68, 82, 65, 76, 58, 59, 85, 65, 71, 63, 51, 56, 60, 68, 66, 74, 56, 82, 45, 52, 76, 52, 55, 60, 57, 75, 74, 48, 62, 52, 53, 59, 53, 59, 69, 65, 48, 86, 64, 49, 82, 58, 56, 52, 66, 58, 58, 70, 66, 64, 71, 49, 62, 81, 59, 64, 65, 69, 68, 50, 69, 80, 66, 61, 63, 65, 57, 69, 65, 55, 78, 62, 77, 67, 67, 48, 57, 79, 69, 57, 43, 57, 67, 60, 54, 99, 67, 54, 51, 73, 63, 83, 75, 70, 56, 112, 66, 63, 62, 57, 71, 77, 53, 57, 67, 76, 93, 102, 61, 50, 52, 65, 81, 66, 63, 68, 53, 49, 71, 71, 55, 48, 51, 70, 74, 52, 66, 87, 71, 47, 68, 56, 61, 55, 69, 74, 60, 52, 66, 85, 70, 88, 55, 44, 88, 77, 56, 62, 76, 68, 69, 68, 53, 63, 60, 72, 58, 62, 67, 65, 80, 52, 71, 81, 69, 74, 69, 83, 67, 55, 63, 65, 43, 72, 49, 66, 46, 67, 63, 49, 69, 66, 53, 69, 69, 67, 61, 62, 82, 53, 67, 73, 51, 63, 56, 73, 58, 62, 70, 72, 55, 71, 47, 52, 75, 69, 72, 40, 94, 88, 54, 58, 65, 69, 61, 54, 92, 79, 92, 66, 72, 56, 64, 44, 52, 38, 59, 56, 61, 58, 64, 67, 62, 77, 73, 49, 70, 73, 81, 62, 67, 59, 44, 74, 60, 70, 60, 65, 74, 61, 68, 61, 47, 76, 55, 57, 72, 49, 58, 71, 81, 78, 46, 65, 65, 63, 80, 60, 55, 76, 64, 80, 65, 61, 52, 66, 45, 86, 57, 77, 57, 71, 86, 57, 62, 66, 68, 88, 64, 94, 69, 44, 57, 81, 95, 85, 80, 66, 57, 71, 65, 94, 56, 69, 78, 62, 50, 74, 54, 67, 77, 67, 51, 76, 33, 70, 92, 80, 72, 73, 65, 54, 76, 88, 78, 49, 50, 104, 70, 80, 73, 54, 59, 73, 48, 75, 103, 49, 59, 72, 65, 64, 86, 89, 63, 68, 77, 47, 72, 51, 68, 54, 41, 54, 63, 96, 54, 75, 68, 51, 60, 64, 87, 135, 66, 47, 48, 73, 85, 56, 52, 56, 69, 73, 65, 72, 56, 60, 85, 77, 65, 81, 136, 54, 69, 67, 61, 33, 68, 46, 75, 86, 52, 69, 62, 47, 48, 77, 47, 83, 121, 49, 55, 59, 71, 69, 66, 75, 77, 62, 72, 57, 143, 63, 69, 71, 79, 76, 62, 41, 58, 65, 45, 55, 60, 91, 56, 62, 48, 70, 77, 52, 71, 75, 62, 88, 64, 69, 55, 60, 77, 65, 56, 56, 79, 48, 71, 50, 57, 60, 59, 72, 63, 73, 59, 56, 73, 65, 69, 85, 61, 67, 35, 75, 72, 59, 66, 52, 29, 63, 99, 51, 83, 81, 66, 59, 63, 65, 69, 37, 73, 74, 70, 55, 61, 60, 72, 69, 84, 41, 41, 70, 61, 57, 61, 86, 68, 96, 43, 59, 56, 66, 72, 61, 60, 80, 55, 68, 62, 80, 57, 67, 80, 63, 52, 77, 91, 57, 51, 67, 70, 68, 79, 58, 72, 58, 76, 69, 55, 71, 57, 47, 74, 79, 65, 50, 63, 70, 60, 67, 51, 93, 79, 68, 66, 61, 72, 61, 67, 75, 74, 59, 65, 70, 54, 60, 62, 76, 65, 57, 72, 74, 52, 71, 64, 65, 42, 81, 73, 59, 49, 67, 76, 64, 58, 90, 77, 50, 57, 69, 66, 76, 60, 69, 75, 53, 69, 49, 56, 63, 71, 58, 53, 75, 84, 56, 66, 60, 66, 61, 74, 43, 57, 45, 60, 52, 81, 66, 67, 118, 57, 65, 65, 67, 92, 64, 59, 53, 78, 57, 68, 60, 58, 67, 58, 65, 54, 54, 55, 89, 51, 57, 57, 46, 75, 75, 70, 64, 62, 84, 49, 60, 80, 57, 61, 73, 97, 70, 93, 73, 61, 63, 60, 50, 80, 61, 52, 55, 67, 61, 63, 59, 56, 61, 62, 56, 63, 64, 58, 66, 68, 57, 100, 53, 61, 96, 65, 59, 71, 68, 73, 65, 64, 52, 51, 56, 56, 60, 52, 62, 63, 61, 53, 77, 62, 67, 68, 71, 76, 53, 58, 62, 57, 70, 65, 80, 87, 71, 54, 63, 77, 50, 68, 47, 53, 86, 49, 51, 63, 60, 52, 61, 83, 70, 80, 76, 50, 54, 62, 78, 59, 62, 63, 63, 52, 68, 56, 54, 52, 49, 75, 62, 72, 62, 63, 47, 50, 63, 59, 53, 61, 73, 53, 48, 63, 63, 57, 70, 78, 67, 79, 100, 52, 76, 54, 49, 59, 63, 68, 82, 67, 78, 50, 77, 51, 62, 79, 51, 57, 127, 78, 46, 54, 47, 45, 89, 56, 56, 69, 53, 82, 114, 75, 57, 68, 60, 63, 61, 70, 78, 60, 54, 50, 63, 72, 60, 56, 58, 83, 57, 81, 59, 68, 55, 62, 57, 69, 88, 72, 63, 65, 83, 69, 73, 58, 88, 54, 64, 54, 83, 65, 69, 61, 57, 56, 63, 68, 56, 60, 67, 69, 60, 74, 49, 70, 70, 78, 62, 50, 88, 62, 58, 42, 69, 81, 68, 102, 80, 69, 76, 73, 64, 70, 95, 59, 59, 64, 73, 63, 58, 78, 70, 64, 81, 70, 68, 47, 81, 63, 54, 99, 93, 68, 63, 56, 64, 59, 72, 81, 47, 105, 53, 74, 75, 69, 71, 91, 60, 88, 70, 57, 63, 75, 67, 74, 57, 62, 61, 54, 62, 61, 68, 62, 50, 59, 74, 64, 78, 61, 62, 65, 51, 78, 66, 52, 72, 66, 65, 65, 55, 54, 48, 71, 65, 84, 69, 65, 53, 64, 66, 48, 76, 67, 79, 67, 56, 67, 80, 69, 63, 57, 69, 79, 63, 60, 57, 57, 73, 86, 70, 74, 71, 60, 54, 75, 60, 71, 54, 68, 59, 71, 70, 77, 47, 75, 56, 50, 63, 66, 59, 43, 68, 57, 73, 62, 65, 64, 72, 61, 59, 66, 68, 78, 50, 62, 64, 54, 59, 75, 50, 66, 82, 84, 83, 61, 60, 53, 64, 49, 59, 52, 63, 73, 72, 62, 60, 80, 66, 63, 69, 64, 69, 78, 66, 62, 77, 61, 64, 67, 66, 76, 59, 56, 66, 74, 72, 49, 64, 70, 71, 49, 56, 56, 74, 80, 71, 60, 59, 61, 64, 55, 68, 69, 61, 95, 60, 69, 62, 55, 62, 64, 57, 83, 65, 81, 65, 69, 55, 54, 66, 54, 92, 59, 63, 55, 64, 56, 59, 61, 50, 47, 66, 79, 59, 43, 67, 75, 72, 52, 77, 52, 68, 92, 56, 64, 50, 55, 61, 65, 63, 54, 57, 61, 122, 58, 54, 65, 60, 68, 87, 60, 59, 54, 60, 99, 52, 73, 72, 79, 65, 68, 59, 82, 94, 69, 52, 67, 71, 78, 59, 59, 68, 76, 69, 75, 80, 77, 74, 90, 65, 78, 87, 64, 68, 85, 59, 93, 47, 57, 58, 65, 84, 72, 56, 76, 61, 51, 59, 39, 58, 57, 57, 71, 69, 63, 67, 69, 105, 83, 62, 65, 62, 62, 71, 66, 65, 62, 45, 56, 41, 58, 73, 73, 77, 63, 64, 62, 57, 54, 75, 40, 69, 70, 43, 65, 60, 61, 56, 69, 58, 66, 67, 55, 49, 78, 54, 57, 66, 46, 60, 89, 64, 81, 55, 55, 57, 55, 41, 65, 71, 69, 49, 80, 58, 51, 61, 96, 65, 82, 52, 61, 52, 65, 63, 68, 51, 56, 71, 90, 66, 66, 64, 70, 80, 57, 61, 67, 59, 61, 49, 62, 68, 70, 83, 91, 68, 57, 43, 63, 100, 68, 54, 68, 61, 67, 89, 65, 82, 54, 70, 58, 60, 67, 55, 47, 57, 61, 39, 62, 69, 63, 42, 79, 59, 76, 103, 57, 75, 68, 56, 52, 78, 50, 83, 109, 87, 58, 64, 85, 86, 38, 66, 71, 53, 55, 55, 66, 79, 66, 80, 85, 59, 61, 57, 57, 78, 65, 66, 57, 59, 67, 80, 67, 41, 51, 49, 52, 55, 49, 64, 70, 63, 79, 58, 60, 52, 67, 78, 83, 56, 59, 66, 52, 56, 66, 56, 65, 52, 79, 60, 69, 51, 52, 70, 52, 80, 91, 83, 102, 76, 50, 77, 44, 53, 72, 47, 58, 67, 59, 72, 64, 58, 99, 84, 58, 55, 56, 111, 62, 93, 78, 52, 62, 52, 75, 65, 76, 70, 98, 75, 73, 57, 55, 72, 67, 47, 100, 54, 72, 83, 62, 66, 58, 63, 70, 48, 54, 47, 86, 63, 62, 54, 75, 69, 67, 59, 62, 81, 84, 62, 57, 75, 60, 68, 60, 81, 64, 59, 67, 52, 130, 63, 55, 51, 85, 78, 69, 79, 68, 62, 89, 55, 82, 61, 79, 77, 69, 58, 61, 82, 69, 66, 85, 69, 55, 63, 61, 46, 63, 60, 67, 92, 72, 64, 40, 76, 68, 62, 91, 79, 57, 53, 64, 61, 70, 85, 73, 59, 58, 73, 72, 75, 71, 79, 68, 84, 89, 89, 65, 58, 57, 45, 64, 74, 64, 52, 78, 61, 56, 64, 66, 48, 39, 76, 74, 59, 60, 79, 78, 66, 40, 68, 75, 69, 63, 61, 70, 76, 62, 53, 79, 63, 62, 58, 65, 72, 77, 80, 75, 73, 59, 78, 54, 62, 61, 60, 58, 60, 58, 64, 59, 65, 62, 67, 92, 75, 145, 69, 79, 56, 68, 48, 70, 69, 79, 60, 51, 59, 60, 56, 58, 61, 66, 64, 60, 66, 65, 51, 42, 97, 57, 52, 54, 79, 54, 63, 71, 52, 68, 59, 64, 63, 88, 59, 55, 66, 63, 56, 57, 61, 94, 65, 62, 75, 66, 65, 71, 57, 61, 65, 51, 56, 68, 67, 99, 70, 84, 51, 50, 55, 78, 63, 63, 68, 74, 69, 62, 84, 57, 60, 56, 58, 63, 63, 55, 86, 62, 69, 49, 67, 84, 62, 77, 80, 65, 80, 57, 88, 67, 79, 75, 62, 59, 66, 59, 114, 66, 75, 45, 67, 94, 50, 53, 42, 68, 69, 67, 88, 72, 71, 74, 64, 59, 59, 58, 89, 60, 63, 40, 72, 69, 58, 83, 70, 96, 73, 69, 70, 82, 61, 66, 109, 73, 61, 97, 75, 61, 70, 78, 69, 67, 81, 86, 64, 86, 60, 58, 62, 53, 60, 56, 75, 71, 90, 60, 72, 60, 67, 54, 55, 55, 79, 69, 54, 80, 73, 42, 69, 59, 72, 65, 67, 93, 57, 61, 61, 50, 108, 66, 68, 60, 60, 61, 63, 79, 77, 59, 71, 59, 70, 55, 62, 77, 112, 68, 70, 78, 62, 56, 58, 61, 39, 124, 60, 59, 77, 71, 70, 100, 60, 60, 46, 72, 57, 55, 69, 57, 72, 55, 63, 45, 59, 64, 61, 50, 62, 49, 57, 138, 55, 53, 85, 79, 58, 69, 57, 70, 65, 67, 69, 65, 51, 70, 79, 67, 84, 97, 83, 43, 57, 61, 70, 57, 57, 68, 40, 56, 72, 54, 61, 48, 70, 96, 93, 69, 72, 68, 79, 65, 55, 68, 64, 76, 60, 57, 55, 58, 56, 59, 69, 96, 63, 77, 63, 84, 58, 61, 63, 66, 67, 59, 59, 53, 96, 60, 64, 72, 53, 54, 51, 70, 80, 53, 69, 59, 56, 65, 49, 47, 55, 79, 61, 55, 55, 71, 74, 47, 72, 56, 67, 91, 51, 61, 80, 44, 76, 62, 46, 52, 66, 61, 78, 73, 79, 97, 38, 73, 60, 62, 73, 75, 59, 66, 65, 84, 109, 75, 47, 55, 50, 61, 53, 65, 52, 69, 65, 103, 70, 84, 57, 70, 58, 69, 69, 54, 66, 63, 83, 57, 67, 59, 70, 55, 64, 78, 74, 76, 53, 60, 55, 57, 60, 90, 89, 52, 73, 57, 67, 67, 71, 63, 58, 62, 59, 85, 55, 59, 63, 68, 56, 63, 67, 85, 51, 73, 51, 55, 61, 61, 78, 67, 66, 57, 55, 89, 55, 68, 70, 70, 65, 66, 96, 74, 61, 70, 64, 68, 60, 71, 60, 102, 92, 91, 60, 65, 75, 48, 61, 48, 54, 69, 66, 69, 84, 69, 59, 46, 68, 85, 66, 55, 92, 80, 76, 72, 66, 54, 55, 57, 59, 64, 65, 69, 68, 53, 51, 51, 48, 75, 72, 67, 37, 57, 73, 53, 60, 68, 61, 55, 83, 78, 68, 54, 58, 63, 63, 58, 66, 61, 65, 66, 69, 60, 90, 52, 60, 77, 70, 58, 55, 56, 46, 63, 69, 66, 75, 58, 74, 54, 63, 94, 58, 70, 59, 50, 55, 67, 77, 58, 84, 65, 61, 52, 64, 70, 69, 54, 54, 59, 69, 61, 61, 57, 69, 53, 57, 58, 101, 72, 66, 76, 113, 55, 64, 61, 65, 67, 61, 112, 77, 71, 78, 59, 69, 82, 75, 78, 41, 73, 58, 71, 76, 57, 69, 33, 63, 60, 58, 58, 54, 70, 65, 68, 75, 69, 54, 53, 87, 57, 52, 63, 62, 81, 69, 70, 86, 68, 67, 68, 57, 63, 57, 64, 79, 71, 64, 72, 60, 48, 78, 85, 66, 64, 70, 65, 82, 66, 78, 44, 52, 56, 72, 60, 71, 52, 68, 65, 51, 42, 52, 69, 62, 65, 53, 65, 94, 66, 70, 55, 73, 47, 45, 88, 60, 68, 62, 47, 83, 79, 60, 64, 61, 75, 62, 72, 63, 65, 68, 69, 71, 56, 85, 64, 88, 80, 61, 63, 70, 68, 117, 45, 87, 84, 70, 87, 61, 53, 46, 67, 74, 54, 79, 60, 58, 46, 70, 55, 73, 71, 59, 75, 75, 73, 72, 76, 53, 41, 53, 71, 63, 41, 81, 69, 62, 55, 45, 61, 54, 51, 61, 84, 75, 66, 87, 52, 51, 57, 64, 50, 57, 71, 84, 61, 82, 65, 57, 63, 53, 67, 54, 60, 82, 89, 60, 59, 56, 71, 67, 62, 59, 62, 63, 63, 64, 67, 52, 50, 66, 51, 70, 93, 98, 45, 66, 64, 55, 73, 53, 54, 66, 51, 73, 59, 61, 62, 55, 73, 69, 63, 58, 72, 59, 64, 73, 81, 66, 62, 68, 53, 37, 64, 71, 74, 57, 70, 49, 66, 60, 62, 74, 76, 61, 76, 70, 49, 101, 65, 65, 68, 62, 83, 61, 73, 67, 82, 100, 60, 64, 82, 59, 73, 68, 58, 56, 63, 69, 88, 65, 84, 60, 63, 62, 54, 68, 56, 79, 58, 55, 37, 61, 44, 57, 55, 97, 66, 55, 70, 82, 74, 72, 54, 57, 72, 69, 70, 52, 79, 81, 88, 78, 72, 65, 52, 49, 68, 58, 56, 57, 79, 58, 48, 65, 75, 62, 80, 75, 53, 73, 51, 64, 65, 54, 74, 55, 111, 59, 67, 56, 59, 55, 87, 65, 86, 68, 78, 55, 78, 63, 75, 108, 68, 67, 76, 66, 51, 58, 53, 55, 66, 61, 77, 66, 81, 45, 68, 47, 68, 76, 86, 67, 60, 53, 56, 41, 74, 63, 65, 61, 70, 70, 60, 43, 46, 60, 55, 60, 76, 50, 95, 61, 54, 66, 61, 73, 77, 52, 65, 59, 75, 54, 64, 70, 48, 64, 72, 76, 61, 71, 65, 59, 89, 61, 80, 56, 65, 47, 69, 55, 56, 49, 46, 65, 66, 88, 68, 44, 73, 52, 54, 86, 74, 61, 68, 48, 75, 60, 62, 53, 77, 65, 58, 67, 54, 62, 53, 89, 57, 52, 62, 53, 63, 59, 61, 70, 72, 71, 122, 78, 71, 53, 81, 47, 58, 43, 85, 61, 70, 86, 90, 67, 76, 35, 71, 50, 70, 65, 70, 56, 58, 48, 62, 63, 67, 59, 62, 60, 40, 61, 66, 46, 69, 122, 59, 78, 68, 63, 53, 78, 56, 75, 63, 53, 74, 87, 58, 44, 63, 70, 46, 39, 59, 84, 63, 73, 89, 72, 67, 50, 88, 38, 58, 88, 64, 67, 51, 58, 61, 54, 69, 50, 53, 57, 75, 70, 73, 57, 56, 53, 56, 96, 69, 89, 81, 50, 68, 55, 52, 62, 62, 89, 56, 84, 65, 65, 30, 64, 46, 48, 49, 55, 58, 49, 58, 60, 86, 48, 77, 54, 67, 63, 62, 67, 47, 68, 62, 72, 58, 59, 74, 54, 63, 82, 53, 58, 68, 63, 61, 75, 77, 61, 77, 101, 72, 50, 42, 58, 70, 56, 109, 85, 87, 96, 58, 47, 65, 62, 77, 63, 59, 90, 72, 43, 76, 87, 38, 36, 53, 43, 65, 65, 64, 56, 73, 49, 58, 68, 76, 72, 60, 83, 66, 81, 34, 74, 60, 62, 55, 59, 68, 53, 83, 74, 50, 65, 58, 71, 52, 68, 60, 71, 74, 62, 30, 59, 56, 66, 75, 71, 45, 64, 69, 52, 67, 85, 68, 64, 66, 46, 62, 48, 63, 76, 59, 75, 93, 79, 53, 66, 52, 66, 75, 69, 64, 41, 62, 63, 58, 60, 64, 54, 97, 77, 52, 51, 78, 58, 74, 49, 67, 66, 57, 89, 81, 70, 70, 49, 61, 73, 64, 79, 42, 91, 57, 89, 66, 63, 69, 63, 64, 109, 62, 74, 101, 46, 64, 59, 66, 55, 56, 56, 73, 73, 73, 68, 73, 52, 65, 79, 60, 43, 77, 67, 96, 74, 73, 84, 52, 50, 79, 80, 54, 58, 54, 64, 61, 49, 65, 60, 38, 66, 114, 146, 62, 66, 71, 72, 48, 88, 81, 55, 80, 70, 42, 56, 62, 73, 71, 65, 70, 52, 58, 59, 56, 78, 64, 56, 42, 78, 63, 60, 63, 60, 76, 103, 89, 76, 44, 77, 56, 59, 72, 48, 80, 64, 112, 52, 51, 72, 74, 53, 108, 70, 55, 89, 97, 75, 53, 42, 63, 70, 66, 62, 64, 62, 57, 74, 75, 65, 58, 52, 66, 71, 63, 92, 68, 55, 63, 60, 63, 63, 60, 70, 61, 144, 75, 60, 97, 67, 48, 49, 86, 80, 75, 65, 63, 80, 52, 68, 81, 56, 76, 69, 59, 62, 71, 66, 77, 52, 67, 74, 67, 46, 53, 52, 75, 54, 62, 71, 51, 74, 40, 59, 47, 61, 74, 79, 103, 41, 70, 59, 84, 75, 64, 59, 69, 64, 52, 63, 68, 94, 70, 76, 89, 78, 75, 53, 93, 57, 77, 71, 62, 85, 50, 69, 52, 62, 58, 56, 65, 65, 68, 58, 54, 137, 80, 51, 75, 61, 48, 57, 69, 63, 44, 60, 54, 107, 71, 66, 69, 52, 79, 63, 63, 76, 48, 57, 78, 68, 81, 57, 66, 66, 42, 62, 54, 54, 61, 96, 69, 100, 79, 87, 66, 71, 59, 64, 89, 59, 71, 91, 55, 52, 87, 79, 43, 65, 60, 57, 53, 60, 69, 63, 74, 93, 78, 57, 58, 54, 52, 55, 64, 58, 68, 59, 78, 76, 66, 75, 63, 59, 52, 69, 82, 59, 32, 56, 101, 90, 58, 58, 51, 65, 66, 53, 71, 40, 76, 53, 73, 48, 54, 91, 63, 50, 61, 48, 71, 46, 73, 65, 63, 60, 60, 110, 53, 85, 72, 58, 52, 58, 58, 60, 57, 62, 73, 80, 74, 71, 62, 50, 61, 86, 53, 85, 65, 73, 61, 54, 65, 58, 58, 63, 55, 112, 51, 78, 59, 67, 72, 46, 73, 64, 76, 41, 62, 65, 73, 56, 43, 64, 60, 94, 53, 57, 39, 64, 89, 55, 66, 39, 53, 65, 70, 51, 68, 60, 64, 76, 61, 50, 52, 49, 80, 80, 71, 44, 47, 68, 72, 59, 50, 60, 78, 58, 71, 70, 67, 62, 62, 73, 71, 39, 42, 65, 73, 60, 62, 89, 136, 62, 65, 60, 62, 62, 42, 57, 72, 75, 61, 54, 57, 69, 55, 69, 55, 76, 69, 46, 77, 70, 59, 44, 53, 62, 54, 61, 80, 56, 59, 80, 59, 71, 75, 60, 85, 71, 47, 86, 65, 63, 36, 75, 90, 50, 86, 64, 81, 69, 69, 63, 64, 56, 56, 84, 98, 70, 45, 44, 89, 61, 67, 86, 76, 59, 80, 54, 53, 79, 86, 73, 76, 55, 59, 73, 66, 55, 65, 68, 76, 50, 97, 64, 57, 69, 73, 59, 91, 60, 105, 69, 77, 42, 81, 63, 57, 79, 91, 66, 54, 50, 50, 59, 43, 62, 71, 58, 65, 78, 65, 64, 63, 64, 55, 85, 79, 74, 53, 70, 59, 60, 85, 61, 37, 37, 88, 64, 64, 66, 55, 68, 72, 76, 46, 67, 65, 57, 64, 63, 54, 92, 61, 59, 58, 67, 97, 75, 70, 43, 69, 59, 77, 81, 59, 51, 100, 73, 68, 65, 74, 53, 58, 64, 64, 58, 81, 64, 98, 51, 54, 66, 44, 60, 51, 51, 58, 122, 57, 50, 82, 68, 51, 63, 93, 82, 76, 60, 80, 65, 81, 62, 73, 60, 57, 73, 67, 57, 56, 95, 74, 56, 49, 67, 47, 86, 62, 66, 53, 66, 85, 58, 56, 49, 62, 45, 66, 68, 60, 82, 51, 83, 34, 54, 63, 59, 46, 67, 47, 56, 102, 62, 86, 84, 69, 63, 69, 94, 87, 64, 59, 89, 77, 92, 60, 82, 68, 64, 87, 59, 89, 61, 60, 66, 67, 58, 79, 79, 60, 77, 80, 91, 55, 58, 73, 74, 77, 78, 68, 60, 54, 83, 68, 60, 62, 52, 58, 57, 73, 139, 72, 77, 61, 48, 86, 53, 73, 64, 87, 62, 75, 74, 66, 55, 78, 66, 99, 71, 66, 44, 76, 58, 59, 62, 98, 71, 81, 73, 95, 46, 55, 78, 60, 58, 65, 57, 58, 75, 65, 66, 108, 70, 77, 49, 55, 46, 72, 64, 57, 56, 42, 72, 66, 65, 55, 80, 47, 66, 49, 70, 67, 74, 54, 59, 75, 80, 67, 69, 89, 72, 64, 64, 108, 67, 56, 52, 50, 75, 74, 73, 94, 60, 39, 67, 46, 66, 67, 59, 61, 98, 79, 53, 66, 64, 58, 57, 79, 52, 47, 73, 54, 58, 56, 76, 56, 47, 66, 88, 49, 61, 67, 50, 81, 56, 77, 55, 82, 77, 75, 93, 64, 72, 61, 72, 50, 89, 83, 52, 65, 84, 58, 55, 68, 53, 63, 51, 92, 56, 65, 71, 74, 105, 87, 65, 61, 113, 64, 57, 60, 57, 51, 68, 82, 52, 64, 47, 59, 77, 57, 73, 77, 52, 64, 60, 50, 65, 39, 71, 50, 53, 55, 61, 44, 83, 72, 97, 63, 55, 106, 66, 81, 51, 69, 45, 79, 77, 56, 74, 64, 92, 64, 59, 84, 53, 68, 65, 66, 81, 97, 75, 61, 58, 79, 64, 83, 68, 51, 55, 69, 62, 67, 52, 64, 91, 52, 67, 73, 58, 40, 70, 73, 46, 64, 55, 72, 65, 69, 97, 58, 67, 51, 67, 80, 58, 47, 72, 63, 60, 62, 54, 78, 55, 68, 48, 63, 125, 102, 58, 48, 65, 76, 56, 57, 53, 72, 57, 58, 63, 59, 68, 50, 63, 48, 80, 45, 58, 67, 38, 72, 50, 52, 51, 57, 65, 57, 81, 64, 49, 45, 61, 71, 56, 73, 121, 91, 69, 87, 68, 52, 62, 46, 47, 67, 57, 65, 67, 60, 74, 80, 51, 48, 54, 55, 60, 56, 61, 53, 84, 47, 68, 46, 60, 75, 46, 73, 61, 51, 67, 63, 55, 66, 68, 71, 111, 57, 82, 73, 71, 59, 66, 67, 53, 60, 69, 67, 88, 71, 70, 76, 60, 69, 61, 48, 65, 58, 53, 61, 66, 70, 46, 71, 52, 60, 64, 49, 79, 70, 71, 80, 37, 61, 87, 67, 69, 75, 71, 67, 61, 58, 52, 48, 60, 75, 63, 50, 64, 95, 63, 63, 55, 55, 71, 44, 63, 73, 73, 64, 62, 59, 56, 67, 55, 62, 53, 106, 50, 62, 76, 63, 74, 41, 55, 50, 65, 46, 67, 55, 84, 65, 61, 62, 88, 75, 79, 85, 68, 42, 68, 66, 72, 61, 80, 59, 76, 75, 69, 66, 67, 74, 66, 57, 60, 62, 65, 60, 62, 74, 44, 84, 57, 48, 52, 67, 85, 51, 74, 76, 93, 62, 62, 60, 61, 103, 59, 56, 63, 58, 75, 69, 58, 70, 91, 73, 73, 72, 70, 58, 106, 48, 60, 66, 56, 57, 59, 82, 66, 54, 69, 45, 62, 68, 65, 42, 61, 49, 62, 60, 69, 69, 96, 70, 38, 68, 65, 95, 65, 38, 58, 60, 80, 67, 67, 95, 51, 75, 40, 61, 68, 78, 83, 64, 62, 74, 53, 60, 42, 54, 54, 72, 98, 60, 68, 71, 58, 66, 79, 71, 74, 82, 73, 65, 83, 74, 56, 56, 63, 118, 86, 66, 61, 52, 78, 47, 147, 74, 59, 53, 84, 71, 76, 63, 63, 63, 61, 51, 47, 77, 59, 56, 54, 63, 49, 52, 43, 61, 71, 67, 62, 64, 62, 103, 59, 83, 62, 68, 60, 62, 53, 71, 92, 66, 56, 66, 74, 67, 124, 51, 84, 71, 61, 66, 79, 62, 62, 60, 83, 70, 57, 96, 84, 58, 99, 62, 64, 70, 59, 46, 60, 79, 56, 85, 67, 60, 67, 90, 71, 38, 69, 54, 54, 64, 61, 61, 60, 56, 65, 80, 67, 47, 63, 74, 52, 58, 42, 49, 69, 68, 69, 99, 67, 69, 61, 59, 65, 58, 64, 56, 61, 58, 59, 86, 68, 78, 60, 54, 64, 39, 63, 54, 64, 67, 61, 69, 62, 69, 73, 58, 79, 78, 63, 49, 73, 65, 63, 58, 63, 47, 79, 73, 60, 87, 69, 61, 49, 49, 76, 87, 76, 56, 75, 77, 52, 42, 56, 77, 77, 71, 63, 42, 55, 73, 72, 62, 85, 65, 66, 52, 59, 63, 49, 53, 69, 75, 71, 73, 57, 63, 73, 71, 56, 56, 59, 93, 69, 64, 52, 64, 59, 53, 89, 65, 76, 65, 63, 78, 67, 68, 64, 63, 80, 50, 64, 61, 86, 53, 50, 75, 63, 52, 61, 61, 60, 51, 70, 63, 62, 44, 69, 59, 56, 58, 51, 48, 74, 64, 107, 64, 69, 56, 49, 49, 69, 109, 93, 58, 70, 56, 83, 54, 52, 70, 94, 81, 70, 82, 77, 72, 64, 62, 57, 49, 56, 80, 71, 56, 49, 59, 78, 80, 70, 65, 142, 74, 51, 51, 144, 57, 72, 84, 72, 85, 55, 58, 62, 58, 60, 79, 59, 64, 67, 63, 47, 56, 88, 45, 64, 61, 50, 89, 62, 75, 66, 73, 59, 57, 60, 78, 66, 109, 58, 70, 95, 50, 47, 58, 68, 57, 52, 40, 36, 64, 77, 54, 43, 71, 62, 68, 56, 99, 45, 51, 81, 60, 75, 55, 45, 100, 78, 45, 48, 97, 91, 58, 55, 60, 80, 56, 45, 58, 48, 41, 38, 68, 69, 66, 71, 66, 56, 75, 77, 57, 59, 47, 53, 55, 83, 55, 49, 71, 88, 78, 65, 52, 59, 55, 69, 66, 55, 75, 62, 57, 62, 53, 60, 62, 71, 71, 58, 56, 123, 93, 58, 43, 54, 65, 73, 56, 88, 65, 51, 58, 67, 66, 69, 53, 60, 92, 55, 60, 73, 70, 70, 47, 60, 63, 60, 81, 61, 92, 76, 54, 59, 87, 67, 58, 72, 72, 63, 66, 68, 63, 71, 74, 79, 82, 55, 58, 121, 82, 72, 72, 65, 63, 60, 72, 57, 70, 115, 66, 64, 62, 50, 74, 63, 71, 68, 68, 51, 59, 62, 58, 109, 87, 72, 66, 71, 55, 72, 54, 71, 64, 59, 42, 74, 50, 73, 111, 49, 61, 84, 75, 55, 72, 57, 51, 58, 58, 63, 60, 52, 58, 54, 71, 70, 61, 76, 69, 64, 74, 47, 51, 60, 66, 57, 79, 41, 69, 57, 85, 73, 83, 68, 68, 73, 96, 50, 81, 58, 59, 74, 64, 83, 61, 70, 55, 51, 61, 84, 51, 71, 77, 81, 89, 73, 90, 49, 48, 63, 89, 66, 68, 71, 76, 69, 78, 73, 61, 71, 80, 44, 59, 66, 98, 63, 66, 73, 60, 70, 53, 58, 63, 65, 63, 128, 51, 62, 67, 68, 70, 77, 62, 54, 51, 46, 72, 56, 46, 64, 71, 59, 218, 74, 80, 68, 88, 124, 72, 65, 56, 59, 54, 66, 64, 78, 85, 52, 43, 70, 49, 53, 82, 84, 56, 66, 40, 68, 66, 60, 53, 57, 95, 60, 105, 58, 57, 57, 59, 63, 57, 37, 57, 151, 70, 54, 70, 73, 46, 48, 74, 61, 61, 66, 72, 54, 39, 58, 134, 64, 55, 85, 68, 53, 74, 66, 54, 72, 52, 96, 71, 67, 97, 69, 61, 61, 67, 56, 68, 65, 72, 70, 69, 45, 76, 53, 72, 86, 81, 99, 58, 86, 59, 72, 84, 65, 90, 74, 39, 60, 75, 55, 78, 50, 64, 55, 67, 52, 88, 64, 62, 67, 47, 50, 59, 67, 80, 56, 71, 75, 65, 78, 88, 60, 61, 94, 62, 52, 48, 72, 56, 97, 63, 69, 54, 49, 62, 77, 59, 86, 49, 81, 64, 61, 56, 51, 69, 50, 84, 71, 72, 64, 75, 53, 50, 63, 57, 62, 63, 91, 47, 53, 72, 73, 56, 60, 70, 48, 77, 71, 73, 58, 40, 61, 66, 74, 69, 65, 61, 70, 61, 70, 93, 50, 67, 48, 68, 63, 47, 86, 61, 91, 55, 83, 122, 41, 72, 85, 91, 50, 69, 57, 63, 44, 47, 94, 67, 67, 70, 78, 68, 68, 52, 60, 66, 87, 65, 87, 67, 59, 81, 67, 64, 80, 71, 58, 63, 58, 75, 70, 96, 63, 55, 64, 80, 66, 65, 83, 74, 66, 57, 52, 52, 59, 88, 36, 59, 81, 62, 71, 62, 85, 50, 68, 82, 40, 49, 53, 55, 63, 49, 56, 94, 63, 67, 77, 71, 53, 77, 67, 64, 75, 51, 46, 49, 65, 80, 60, 60, 58, 62, 89, 46, 43, 57, 64, 72, 58, 59, 102, 58, 67, 71, 127, 54, 61, 94, 62, 50, 52, 53, 50, 82, 76, 76, 76, 89, 50, 59, 59, 82, 61, 66, 60, 60, 66, 77, 67, 34, 73, 37, 91, 53, 75, 79, 73, 62, 61, 51, 69, 62, 42, 49, 59, 62, 79, 99, 54, 51, 61, 85, 84, 58, 63, 75, 58, 68, 71, 66, 71, 67, 60, 102, 49, 78, 60, 66, 72, 59, 73, 70, 84, 64, 67, 52, 89, 61, 62, 74, 53, 54, 55, 73, 56, 52, 81, 99, 68, 77, 59, 84, 92, 69, 52, 61, 85, 49, 62, 69, 69, 74, 81, 60, 70, 43, 50, 77, 80, 63, 68, 54, 60, 58, 66, 49, 67, 86, 76, 66, 73, 71, 55, 81, 84, 39, 46, 71, 56, 43, 70, 69, 76, 57, 77, 67, 57, 62, 53, 54, 60, 63, 71, 62, 68, 76, 80, 64, 54, 75, 72, 61, 51, 79, 51, 78, 56, 55, 59, 68, 58, 64, 102, 66, 80, 49, 57, 66, 71, 76, 64, 82, 42, 63, 60, 63, 50, 71, 69, 39, 77, 90, 56, 90, 49, 48, 69, 89, 62, 62, 59, 70, 76, 96, 50, 61, 87, 69, 80, 57, 75, 50, 86, 68, 60, 77, 67, 116, 73, 60, 85, 50, 62, 61, 70, 87, 82, 62, 71, 56, 63, 50, 61, 58, 70, 71, 91, 48, 56, 88, 48, 61, 72, 72, 53, 44, 74, 57, 48, 91, 71, 68, 60, 52, 75, 74, 64, 55, 71, 55, 56, 66, 55, 94, 54, 33, 70, 82, 68, 66, 46, 48, 63, 52, 59, 50, 64, 71, 60, 53, 62, 71, 55, 54, 83, 59, 67, 85, 84, 62, 57, 67, 63, 92, 62, 87, 51, 50, 56, 59, 69, 57, 59, 49, 50, 46, 94, 46, 60, 96, 75, 83, 57, 63, 68, 70, 60, 47, 78, 70, 60, 42, 62, 49, 69, 66, 60, 63, 66, 82, 77, 63, 58, 67, 59, 48, 56, 73, 61, 47, 48, 55, 61, 92, 95, 61, 81, 62, 61, 35, 111, 71, 58, 47, 78, 82, 54, 60, 60, 77, 66, 70, 56, 62, 73, 57, 72, 57, 55, 65, 65, 111, 100, 72, 82, 64, 70, 60, 71, 62, 53, 77, 69, 81, 91, 53, 42, 71, 56, 51, 61, 85, 81, 73, 57, 109, 58, 77, 44, 64, 61, 83, 70, 48, 80, 53, 70, 56, 35, 67, 63, 71, 64, 75, 75, 60, 50, 67, 49, 66, 61, 50, 52, 83, 49, 47, 37, 63, 82, 44, 85, 52, 81, 71, 96, 72, 31, 104, 90, 41, 68, 79, 74, 73, 78, 49, 57, 82, 67, 57, 68, 64, 63, 64, 63, 52, 48, 69, 77, 93, 91, 64, 75, 67, 65, 83, 56, 102, 73, 68, 81, 69, 50, 56, 70, 69, 62, 65, 64, 70, 45, 56, 56, 56, 58, 60, 82, 72, 62, 67, 56, 46, 56, 62, 56, 53, 91, 69, 60, 57, 66, 63, 59, 68, 83, 55, 63, 56, 64, 61, 54, 63, 58, 58, 59, 67, 50, 73, 51, 87, 63, 77, 75, 86, 65, 66, 82, 46, 61, 59, 52, 61, 65, 78, 59, 89, 60, 68, 67, 50, 65, 70, 81, 60, 68, 49, 61, 77, 67, 67, 44, 70, 64, 68, 55, 58, 67, 133, 55, 51, 65, 48, 61, 61, 64, 69, 72, 44, 52, 57, 37, 81, 69, 82, 67, 65, 137, 53, 47, 71, 86, 61, 50, 52, 70, 52, 70, 64, 53, 69, 79, 81, 52, 45, 53, 48, 64, 62, 85, 58, 61, 75, 46, 50, 61, 97, 67, 72, 69, 71, 87, 69, 62, 64, 49, 42, 92, 52, 73, 101, 61, 52, 56, 58, 100, 78, 54, 67, 41, 81, 59, 77, 67, 55, 57, 69, 50, 59, 73, 68, 59, 63, 37, 48, 64, 60, 43, 36, 82, 79, 66, 70, 55, 70, 59, 74, 49, 89, 85, 58, 82, 77, 53, 73, 62, 86, 57, 65, 77, 62, 62, 75, 55, 69, 54, 55, 50, 58, 63, 73, 63, 56, 68, 68, 65, 63, 55, 88, 64, 60, 88, 70, 43, 56, 63, 68, 82, 78, 53, 82, 76, 66, 82, 74, 101, 63, 70, 86, 64, 46, 60, 42, 65, 55, 55, 81, 56, 80, 69, 65, 54, 67, 61, 58, 60, 67, 71, 73, 85, 82, 65, 96, 42, 81, 67, 93, 102, 54, 56, 58, 65, 79, 69, 65, 55, 49, 54, 53, 55, 68, 55, 60, 60, 58, 74, 54, 84, 49, 85, 67, 59, 45, 61, 71, 74, 63, 62, 80, 87, 75, 101, 64, 61, 49, 58, 57, 86, 62, 73, 58, 85, 74, 42, 64, 62, 86, 52, 66, 107, 49, 53, 61, 44, 45, 51, 90, 61, 53, 64, 66, 51, 68, 64, 73, 53, 74, 73, 50, 88, 41, 54, 88, 73, 52, 62, 58, 77, 61, 74, 77, 50, 77, 82, 66, 62, 80, 73, 54, 59, 57, 67, 82, 70, 54, 37, 82, 67, 79, 48, 64, 50, 91, 66, 50, 78, 59, 44, 77, 65, 58, 70, 50, 70, 54, 70, 55, 47, 76, 54, 52, 80, 90, 75, 47, 81, 72, 60, 75, 64, 62, 105, 61, 58, 74, 63, 107, 78, 65, 57, 42, 53, 57, 81, 72, 91, 35, 51, 61, 87, 64, 68, 58, 63, 71, 49, 55, 62, 95, 58, 57, 68, 65, 51, 59, 67, 75, 59, 80, 59, 60, 63, 61, 60, 38, 67, 53, 45, 64, 81, 75, 66, 52, 65, 57, 45, 55, 63, 86, 62, 56, 63, 76, 53, 80, 60, 60, 66, 77, 56, 94, 70, 67, 72, 54, 52, 71, 63, 60, 61, 50, 71, 56, 75, 58, 59, 49, 76, 61, 72, 56, 64, 85, 60, 43, 55, 85, 83, 46, 72, 67, 69, 53, 51, 54, 67, 122, 56, 46, 72, 82, 58, 52, 61, 48, 70, 54, 54, 46, 59, 49, 59, 65, 76, 69, 81, 71, 55, 61, 50, 71, 83, 56, 63, 70, 71, 63, 64, 76, 59, 84, 70, 79, 70, 72, 70, 53, 53, 48, 62, 71, 63, 63, 61, 66, 52, 45, 72, 67, 58, 53, 71, 65, 69, 73, 59, 69, 61, 81, 167, 53, 68, 55, 68, 62, 69, 53, 57, 70, 62, 63, 80, 73, 75, 74, 63, 74, 72, 65, 68, 74, 68, 45, 116, 48, 73, 70, 77, 74, 62, 67, 79, 68, 62, 60, 63, 55, 51, 68, 73, 66, 59, 85, 76, 61, 88, 99, 85, 75, 54, 95, 67, 71, 89, 66, 50, 39, 64, 76, 77, 72, 54, 45, 74, 47, 110, 54, 124, 73, 69, 74, 80, 60, 63, 68, 88, 82, 48, 72, 52, 59, 115, 88, 56, 63, 96, 62, 103, 75, 47, 58, 70, 48, 57, 54, 53, 57, 71, 88, 47, 59, 58, 54, 72, 47, 62, 52, 86, 76, 57, 62, 64, 110, 64, 78, 66, 46, 64, 45, 77, 55, 57, 65, 59, 69, 85, 82, 69, 60, 80, 59, 72, 87, 65, 84, 67, 55, 48, 58, 51, 72, 61, 60, 80, 63, 72, 93, 59, 79, 83, 61, 57, 70, 50, 55, 75, 60, 63, 74, 74, 49, 84, 79, 52, 65, 69, 57, 62, 53, 55, 63, 63, 47, 79, 61, 49, 66, 53, 66, 63, 60, 63, 62, 45, 49, 72, 47, 64, 78, 78, 59, 59, 74, 40, 59, 81, 56, 86, 50, 49, 103, 73, 95, 83, 64, 67, 49, 54, 65, 48, 133, 66, 80, 74, 81, 56, 57, 60, 76, 56, 82, 96, 61, 67, 116, 88, 49, 57, 67, 66, 68, 72, 74, 74, 120, 75, 54, 72, 80, 83, 65, 71, 48, 63, 99, 56, 51, 81, 59, 62, 56, 71, 72, 59, 66, 88, 67, 49, 60, 77, 47, 63, 62, 86, 87, 62, 62, 54, 85, 80, 68, 90, 69, 79, 68, 87, 60, 53, 63, 73, 64, 73, 76, 54, 92, 58, 56, 64, 58, 55, 46, 61, 55, 95, 72, 65, 84, 54, 52, 63, 87, 122, 82, 64, 55, 41, 53, 62, 71, 67, 58, 75, 32, 53, 96, 62, 59, 63, 56, 64, 58, 71, 82, 73, 70, 53, 68, 69, 85, 79, 59, 75, 64, 71, 72, 76, 83, 81, 71, 57, 72, 63, 58, 49, 65, 82, 56, 76, 89, 63, 60, 118, 53, 65, 65, 65, 65, 42, 51, 44, 51, 72, 38, 52, 64, 46, 110, 71, 75, 73, 71, 36, 73, 72, 62, 69, 45, 62, 45, 74, 73, 51, 57, 56, 52, 63, 55, 84, 65, 54, 46, 62, 64, 61, 70, 45, 96, 65, 59, 99, 65, 59, 67, 73, 72, 72, 81, 62, 96, 80, 78, 62, 54, 53, 65, 70, 63, 72, 46, 96, 79, 45, 100, 50, 70, 67, 64, 53, 76, 62, 51, 58, 66, 79, 70, 57, 71, 52, 72, 82, 42, 66, 53, 61, 68, 89, 46, 79, 65, 66, 113, 53, 61, 73, 81, 105, 66, 71, 93, 79, 54, 83, 64, 60, 81, 69, 83, 55, 54, 39, 68, 60, 55, 53, 64, 87, 57, 67, 68, 60, 51, 98, 49, 76, 55, 50, 67, 46, 66, 68, 57, 55, 79, 64, 49, 72, 66, 61, 62, 78, 55, 75, 73, 64, 60, 38, 85, 76, 87, 75, 90, 100, 43, 55, 69, 106, 58, 62, 47, 57, 85, 56, 70, 74, 40, 76, 34, 58, 70, 62, 51, 62, 74, 70, 71, 65, 58, 60, 66, 51, 61, 66, 71, 42, 68, 68, 58, 59, 69, 41, 106, 67, 79, 65, 80, 77, 60, 69, 59, 56, 88, 84, 54, 48, 59, 66, 55, 67, 77, 57, 61, 64, 69, 89, 35, 58, 73, 62, 69, 75, 52, 43, 85, 84, 64, 66, 84, 50, 74, 59, 85, 48, 73, 62, 59, 55, 93, 53, 74, 44, 48, 53, 75, 96, 58, 54, 45, 46, 57, 95, 60, 68, 65, 81, 62, 56, 50, 66, 53, 63, 71, 59, 55, 63, 68, 51, 61, 56, 66, 64, 66, 64, 51, 68, 35, 55, 60, 52, 56, 64, 46, 71, 86, 54, 50, 83, 46, 64, 58, 61, 60, 87, 70, 83, 49, 53, 69, 72, 82, 52, 56, 49, 72, 63, 60, 43, 63, 95, 63, 73, 79, 60, 85, 54, 62, 76, 66, 36, 51, 66, 81, 66, 70, 48, 48, 59, 53, 63, 61, 53, 69, 56, 74, 63, 58, 68, 80, 59, 58, 59, 65, 57, 57, 72, 50, 69, 51, 56, 71, 57, 66, 68, 77, 57, 55, 72, 66, 61, 44, 85, 70, 92, 44, 70, 76, 38, 88, 53, 52, 58, 68, 57, 85, 63, 72, 57, 58, 65, 81, 65, 75, 69, 58, 62, 57, 65, 65, 52, 44, 70, 125, 55, 76, 57, 70, 75, 41, 72, 90, 62, 67, 78, 57, 48, 66, 82, 85, 92, 59, 58, 64, 99, 65, 53, 54, 83, 56, 66, 63, 85, 48, 51, 76, 75, 114, 61, 66, 68, 59, 75, 54, 107, 54, 71, 66, 66, 60, 52, 50, 46, 68, 83, 51, 100, 73, 124, 41, 54, 64, 54, 71, 85, 53, 40, 65, 66, 70, 85, 65, 61, 59, 59, 67, 86, 68, 79, 65, 55, 57, 73, 46, 70, 66, 68, 79, 83, 82, 64, 96, 85, 80, 67, 64, 52, 73, 75, 68, 73, 55, 49, 68, 77, 42, 67, 93, 101, 65, 59, 58, 56, 66, 62, 79, 81, 61, 79, 67, 68, 54, 65, 84, 65, 59, 118, 81, 87, 61, 66, 68, 56, 64, 109, 66, 60, 74, 56, 50, 102, 51, 48, 80, 67, 49, 60, 81, 60, 63, 88, 59, 54, 71, 62, 91, 75, 53, 74, 107, 55, 56, 72, 64, 68, 64, 61, 63, 72, 80, 58, 72, 68, 65, 60, 55, 103, 78, 73, 57, 51, 58, 42, 73, 66, 61, 50, 64, 92, 66, 72, 65, 63, 110, 73, 60, 66, 55, 75, 48, 59, 63, 123, 39, 60, 56, 59, 75, 60, 79, 123, 58, 64, 62, 57, 68, 52, 93, 52, 58, 40, 56, 97, 63, 71, 57, 104, 80, 63, 67, 42, 62, 48, 65, 63, 59, 48, 79, 57, 90, 65, 60, 60, 46, 68, 60, 78, 72, 47, 84, 49, 56, 50, 72, 52, 90, 51, 62, 70, 75, 70, 51, 55, 66, 59, 73, 68, 57, 61, 54, 69, 65, 75, 59, 56, 70, 51, 58, 53, 79, 51, 69, 87, 95, 74, 89, 52, 58, 64, 39, 100, 65, 55, 56, 76, 60, 60, 54, 62, 62, 75, 74, 27, 51, 84, 49, 73, 55, 60, 63, 55, 52, 53, 63, 78, 86, 38, 53, 50, 61, 53, 62, 58, 63, 57, 69, 67, 77, 58, 84, 78, 65, 77, 70, 64, 48, 83, 68, 50, 77, 79, 60, 54, 108, 61, 68, 55, 89, 39, 68, 64, 98, 71, 71, 70, 74, 91, 71, 60, 55, 67, 69, 54, 71, 71, 59, 87, 47, 68, 56, 58, 73, 64, 65, 104, 71, 68, 64, 52, 82, 76, 63, 58, 54, 83, 67, 63, 71, 65, 45, 75, 72, 69, 74, 27, 62, 60, 66, 75, 61, 74, 47, 63, 51, 55, 52, 61, 67, 44, 70, 65, 67, 52, 65, 72, 53, 78, 71, 43, 62, 77, 61, 100, 57, 74, 70, 68, 50, 60, 71, 73, 52, 52, 95, 65, 96, 88, 57, 73, 75, 97, 59, 65, 58, 60, 56, 59, 70, 80, 59, 68, 52, 93, 72, 54, 69, 91, 55, 53, 53, 68, 62, 73, 73, 108, 66, 63, 66, 71, 85, 58, 80, 76, 58, 65, 47, 67, 52, 124, 74, 74, 72, 54, 58, 65, 65, 64, 60, 58, 88, 78, 55, 72, 63, 55, 49, 50, 76, 54, 72, 76, 64, 97, 73, 54, 56, 59, 53, 51, 57, 53, 68, 69, 77, 61, 55, 54, 77, 48, 81, 73, 49, 75, 61, 41, 64, 63, 65, 68, 45, 52, 52, 58, 54, 62, 58, 89, 67, 42, 56, 60, 46, 66, 85, 60, 66, 72, 54, 57, 78, 51, 54, 67, 48, 74, 50, 69, 65, 89, 74, 64, 54, 50, 57, 41, 54, 41, 65, 48, 86, 74, 49, 57, 79, 48, 62, 68, 64, 63, 51, 60, 77, 62, 66, 77, 61, 50, 30, 68, 62, 60, 73, 56, 58, 48, 97, 73, 42, 56, 37, 36, 65, 58, 53, 38, 65, 90, 50, 78, 64, 51, 71, 57, 71, 50, 78, 59, 55, 73, 66, 82, 67, 76, 50, 62, 60, 62, 66, 51, 84, 64, 58, 57, 81, 136, 76, 62, 73, 72, 71, 51, 81, 57, 64, 82, 54, 75, 62, 92, 69, 86, 55, 56, 54, 65, 59, 67, 43, 62, 74, 57, 67, 76, 55, 59, 80, 45, 79, 97, 55, 55, 59, 92, 43, 67, 56, 62, 58, 86, 73, 86, 63, 75, 57, 69, 62, 60, 55, 62, 101, 74, 43, 86, 49, 57, 64, 56, 95, 61, 86, 89, 57, 75, 58, 73, 54, 80, 74, 64, 100, 66, 79, 68, 64, 87, 84, 65, 85, 52, 54, 43, 50, 109, 116, 52, 60, 55, 52, 64, 62, 59, 67, 92, 58, 73, 62, 87, 84, 63, 60, 79, 55, 76, 61, 66, 60, 54, 59, 62, 56, 67, 59, 67, 63, 70, 54, 69, 73, 56, 58, 47, 67, 53, 60, 55, 64, 47, 40, 52, 42, 56, 88, 70, 70, 73, 65, 78, 69, 80, 65, 71, 77, 84, 72, 77, 53, 72, 48, 50, 65, 43, 60, 55, 65, 77, 76, 80, 63, 67, 68, 68, 78, 68, 51, 119, 75, 70, 57, 52, 65, 70, 62, 45, 70, 75, 84, 63, 110, 70, 61, 46, 52, 64, 53, 56, 45, 109, 49, 64, 55, 85, 52, 62, 46, 64, 69, 57, 61, 81, 58, 81, 69, 47, 61, 58, 76, 77, 69, 51, 80, 64, 67, 78, 75, 59, 61, 83, 43, 63, 59, 82, 78, 69, 65, 66, 54, 58, 62, 50, 89, 60, 61, 58, 87, 72, 55, 61, 74, 64, 64, 70, 63, 72, 62, 73, 67, 64, 90, 67, 55, 72, 84, 52, 75, 95, 77, 63, 107, 57, 83, 72, 48, 42, 61, 51, 71, 58, 76, 59, 77, 56, 64, 65, 54, 59, 57, 90, 73, 65, 67, 65, 64, 67, 43, 64, 45, 64, 65, 68, 79, 54, 63, 73, 68, 56, 53, 53, 54, 63, 84, 58, 59, 87, 58, 74, 59, 62, 73, 50, 76, 61, 64, 50, 96, 43, 73, 58, 60, 73, 80, 74, 54, 87, 75, 60, 67, 58, 70, 68, 62, 46, 51, 67, 103, 51, 80, 76, 120, 62, 70, 48, 60, 44, 50, 88, 59, 51, 53, 61, 64, 70, 83, 75, 89, 61, 94, 45, 57, 64, 61, 81, 71, 67, 43, 56, 68, 65, 74, 67, 64, 56, 61, 75, 50, 51, 67, 59, 60, 76, 45, 80, 60, 54, 57, 69, 65, 89, 64, 56, 69, 66, 63, 76, 56, 70, 64, 60, 70, 67, 61, 73, 72, 79, 60, 105, 55, 66, 71, 61, 57, 51, 87, 50, 81, 76, 62, 76, 49, 59, 92, 74, 75, 48, 70, 63, 68, 74, 75, 83, 61, 96, 82, 53, 53, 84, 62, 76, 72, 78, 64, 60, 83, 71, 86, 70, 60, 54, 56, 73, 74, 54, 62, 84, 57, 81, 59, 66, 67, 58, 53, 70, 72, 57, 55, 68, 51, 62, 63, 50, 71, 62, 64, 61, 60, 72, 73, 76, 69, 50, 85, 70, 59, 49, 63, 54, 49, 56, 55, 66, 52, 53, 66, 47, 82, 81, 70, 60, 49, 46, 79, 90, 68, 63, 45, 61, 55, 72, 77, 80, 45, 56, 64, 68, 93, 69, 38, 55, 64, 50, 52, 63, 65, 71, 65, 60, 52, 98, 55, 61, 44, 83, 70, 106, 66, 92, 58, 57, 60, 67, 56, 59, 47, 89, 74, 64, 47, 67, 72, 68, 66, 87, 72, 87, 67, 105, 60, 56, 67, 57, 48, 55, 76, 56, 61, 88, 78, 96, 72, 82, 48, 73, 59, 42, 70, 83, 82, 68, 47, 75, 67, 70, 53, 56, 59, 54, 73, 65, 50, 69, 69, 71, 66, 75, 63, 77, 65, 106, 56, 72, 73, 64, 81, 106, 71, 52, 66, 110, 62, 46, 66, 66, 51, 59, 74, 65, 59, 63, 70, 52, 68, 61, 47, 59, 83, 72, 64, 59, 74, 61, 57, 63, 72, 63, 101, 71, 57, 67, 74, 52, 45, 74, 68, 107, 57, 60, 51, 64, 54, 65, 65, 49, 81, 48, 77, 57, 52, 57, 73, 72, 84, 62, 57, 51, 61, 60, 61, 64, 68, 72, 70, 55, 44, 88, 98, 62, 69, 94, 47, 74, 56, 61, 65, 74, 129, 55, 60, 67, 69, 79, 62, 50, 96, 57, 56, 64, 109, 76, 63, 43, 59, 69, 75, 72, 49, 69, 55, 54, 51, 51, 58, 53, 86, 66, 49, 80, 57, 58, 65, 70, 68, 59, 63, 56, 68, 54, 70, 85, 56, 69, 74, 57, 60, 71, 65, 49, 53, 70, 66, 58, 58, 57, 81, 56, 86, 74, 74, 54, 61, 41, 49, 79, 95, 47, 60, 58, 60, 80, 60, 62, 54, 55, 53, 72, 59, 70, 67, 63, 67, 63, 65, 74, 51, 63, 71, 67, 63, 76, 103, 60, 89, 65, 68, 55, 45, 90, 62, 65, 66, 59, 69, 62, 52, 61, 74, 70, 62, 55, 61, 84, 51, 77, 65, 76, 71, 47, 74, 51, 60, 65, 50, 54, 71, 52, 83, 61, 49, 49, 48, 68, 53, 61, 71, 83, 46, 88, 51, 60, 53, 49, 48, 48, 73, 61, 67, 67, 78, 77, 69, 86, 69, 54, 55, 59, 58, 51, 72, 48, 63, 69, 74, 62, 62, 50, 64, 106, 52, 63, 62, 85, 67, 51, 78, 52, 83, 66, 63, 56, 57, 62, 61, 47, 74, 63, 63, 53, 83, 80, 74, 72, 66, 58, 59, 63, 72, 73, 71, 70, 44, 73, 83, 53, 80, 85, 61, 55, 92, 80, 73, 61, 58, 64, 66, 73, 51, 73, 54, 58, 66, 54, 66, 68, 58, 72, 64, 55, 72, 77, 75, 60, 69, 123, 83, 74, 75, 45, 89, 70, 52, 74, 44, 42, 62, 54, 61, 67, 54, 53, 64, 62, 80, 57, 66, 60, 54, 65, 62, 94, 48, 72, 68, 50, 72, 42, 47, 72, 75, 68, 86, 73, 72, 56, 89, 52, 61, 46, 60, 76, 63, 67, 67, 58, 70, 49, 69, 81, 66, 62, 65, 61, 56, 53, 87, 56, 63, 52, 50, 57, 55, 59, 53, 55, 66, 62, 55, 54, 78, 73, 60, 70, 69, 78, 74, 86, 72, 67, 65, 54, 52, 57, 57, 61, 53, 59, 58, 54, 75, 67, 74, 60, 58, 64, 61, 71, 68, 67, 67, 45, 61, 73, 104, 51, 60, 55, 46, 73, 61, 61, 79, 65, 63, 83, 131, 63, 62, 55, 56, 50, 54, 82, 45, 99, 63, 51, 68, 53, 82, 69, 75, 70, 57, 78, 97, 70, 71, 69, 59, 68, 54, 47, 57, 54, 55, 83, 73, 66, 69, 68, 58, 60, 57, 66, 54, 78, 75, 55, 48, 69, 85, 54, 54, 63, 65, 63, 52, 62, 63, 46, 80, 75, 56, 81, 70, 64, 62, 59, 57, 55, 56, 63, 95, 61, 67, 77, 62, 59, 85, 69, 130, 74, 62, 63, 56, 50, 62, 70, 51, 61, 77, 67, 70, 77, 62, 106, 55, 54, 77, 84, 67, 69, 61, 70, 54, 64, 54, 80, 106, 63, 70, 62, 69, 67, 53, 74, 73, 55, 75, 80, 65, 55, 46, 50, 60, 72, 106, 64, 65, 124, 57, 48, 66, 58, 53, 93, 77, 59, 58, 49, 75, 55, 64, 70, 53, 55, 64, 75, 52, 45, 82, 55, 70, 52, 68, 59, 54, 46, 92, 46, 42, 70, 67, 65, 106, 54, 69, 77, 56, 43, 78, 66, 48, 65, 57, 68, 61, 70, 64, 49, 96, 65, 48, 81, 65, 72, 79, 57, 67, 69, 63, 58, 53, 82, 46, 96, 86, 49, 71, 107, 79, 60, 53, 137, 58, 60, 71, 60, 56, 78, 67, 57, 94, 140, 72, 60, 82, 67, 48, 48, 72, 81, 66, 63, 58, 66, 78, 76, 57, 94, 65, 66, 70, 69, 63, 59, 61, 50, 49, 42, 53, 67, 56, 57, 65, 86, 53, 100, 64, 67, 70, 89, 51, 61, 74, 58, 105, 70, 79, 117, 59, 76, 61, 48, 62, 51, 96, 60, 59, 56, 60, 78, 80, 69, 55, 75, 66, 66, 78, 63, 102, 87, 54, 64, 68, 51, 74, 58, 60, 62, 58, 78, 60, 61, 103, 61, 53, 73, 60, 61, 74, 54, 55, 53, 72, 75, 80, 77, 51, 51, 59, 50, 72, 59, 70, 103, 53, 55, 60, 70, 51, 57, 51, 54, 64, 56, 86, 75, 55, 83, 85, 76, 48, 70, 49, 63, 68, 60, 52, 63, 73, 69, 66, 73, 55, 70, 66, 68, 64, 84, 65, 79, 93, 53, 57, 49, 50, 69, 54, 50, 58, 96, 78, 68, 59, 80, 56, 67, 73, 43, 54, 56, 63, 69, 53, 57, 70, 62, 70, 58, 74, 69, 85, 68, 67, 53, 58, 80, 60, 63, 57, 66, 73, 63, 49, 54, 68, 72, 56, 71, 66, 69, 61, 51, 62, 60, 58, 68, 79, 47, 65, 66, 66, 54, 70, 60, 42, 61, 69, 67, 83, 76, 59, 61, 62, 77, 64, 68, 53, 60, 94, 60, 57, 69, 73, 52, 60, 44, 82, 55, 59, 73, 117, 59, 65, 65, 62, 50, 77, 65, 49, 54, 70, 42, 58, 69, 54, 52, 56, 61, 63, 70, 62, 59, 66, 55, 57, 72, 76, 67, 46, 63, 65, 62, 58, 55, 53, 49, 105, 61, 65, 80, 71, 83, 75, 68, 63, 61, 90, 50, 49, 71, 131, 65, 87, 60, 66, 61, 66, 65, 65, 80, 95, 101, 69, 70, 59, 59, 79, 59, 53, 63, 54, 56, 60, 55, 88, 62, 58, 61, 70, 65, 38, 82, 117, 72, 61, 59, 61, 67, 58, 58, 77, 64, 98, 72, 59, 62, 59, 53, 59, 70, 79, 60, 81, 54, 61, 74, 62, 69, 105, 64, 59, 67, 74, 34, 90, 68, 69, 69, 87, 68, 49, 61, 86, 62, 54, 65, 58, 68, 61, 112, 66, 73, 74, 76, 57, 91, 52, 88, 59, 65, 53, 80, 50, 64, 59, 54, 56, 59, 48, 56, 111, 50, 81, 63, 73, 78, 74, 60, 71, 56, 68, 68, 90, 71, 88, 65, 78, 64, 44, 48, 64, 58, 89, 53, 67, 67, 66, 77, 108, 79, 63, 56, 85, 53, 62, 82, 59, 51, 66, 65, 67, 106, 53, 59, 61, 79, 52, 62, 57, 65, 63, 58, 49, 68, 46, 62, 62, 89, 64, 61, 80, 92, 65, 88, 55, 53, 69, 71, 68, 65, 72, 60, 46, 66, 53, 48, 72, 73, 51, 74, 55, 61, 143, 86, 51, 61, 61, 65, 48, 54, 68, 66, 70, 104, 81, 62, 72, 53, 63, 56, 80, 63, 60, 55, 55, 63, 77, 58, 59, 58, 77, 49, 59, 72, 62, 60, 53, 95, 57, 59, 53, 94, 66, 124, 78, 81, 56, 61, 47, 74, 59, 48, 50, 77, 83, 55, 69, 72, 58, 60, 80, 56, 60, 57, 56, 77, 54, 63, 70, 61, 86, 69, 79, 53, 73, 61, 76, 94, 67, 70, 68, 53, 79, 65, 55, 62, 60, 46, 65, 73, 88, 69, 58, 68, 66, 61, 69, 64, 53, 83, 70, 86, 62, 58, 61, 69, 59, 77, 66, 73, 65, 54, 66, 85, 52, 73, 70, 70, 107, 61, 49, 62, 70, 54, 87, 68, 54, 63, 73, 76, 61, 66, 61, 80, 64, 62, 51, 79, 64, 56, 61, 46, 60, 83, 53, 97, 73, 72, 58, 51, 44, 80, 67, 56, 138, 61, 71, 63, 91, 102, 47, 57, 61, 58, 59, 94, 46, 71, 55, 60, 86, 60, 65, 76, 55, 50, 53, 77, 65, 67, 58, 43, 45, 53, 60, 69, 60, 61, 84, 78, 85, 56, 61, 50, 72, 54, 74, 57, 69, 43, 64, 58, 71, 42, 55, 73, 82, 79, 58, 63, 74, 61, 67, 87, 65, 93, 64, 66, 70, 57, 78, 71, 62, 53, 60, 51, 63, 68, 62, 59, 64, 71, 102, 60, 63, 61, 65, 51, 84, 64, 61, 72, 79, 62, 71, 61, 47, 72, 101, 72, 85, 55, 46, 73, 53, 67, 61, 78, 68, 88, 68, 70, 64, 55, 62, 50, 63, 65, 70, 52, 79, 64, 71, 73, 58, 83, 64, 61, 41, 44, 66, 84, 59, 73, 53, 46, 72, 62, 60, 52, 55, 67, 46, 57, 62, 53, 57, 53, 51, 59, 85, 58, 53, 49, 87, 78, 81, 57, 63, 58, 66, 85, 70, 65, 50, 62, 58, 72, 67, 69, 66, 63, 54, 56, 79, 63, 54, 55, 38, 58, 57, 72, 61, 62, 58, 71, 79, 73, 60, 103, 56, 58, 67, 76, 93, 71, 71, 59, 57, 62, 55, 70, 48, 70, 52, 81, 49, 49, 54, 53, 45, 88, 63, 69, 63, 53, 56, 60, 68, 72, 58, 55, 45, 70, 61, 62, 70, 57, 67, 65, 59, 77, 76, 63, 70, 51, 55, 61, 74, 70, 55, 80, 69, 72, 74, 56, 66, 62, 70, 64, 46, 60, 62, 62, 62, 65, 71, 64, 82, 39, 56, 53, 78, 59, 67, 53, 55, 109, 58, 60, 82, 63, 65, 51, 57, 60, 90, 57, 80, 84, 54, 78, 74, 54, 73, 78, 61, 56, 63, 90, 61, 81, 64, 60, 59, 62, 59, 59, 43, 86, 83, 49, 75, 55, 56, 55, 101, 60, 52, 47, 64, 67, 63, 75, 79, 63, 79, 56, 59, 109, 50, 67, 69, 59, 55, 71, 61, 71, 63, 70, 59, 51, 49, 62, 60, 57, 49, 51, 58, 55, 62, 56, 94, 67, 77, 58, 86, 117, 94, 55, 63, 66, 71, 63, 50, 62, 69, 76, 63, 68, 63, 77, 65, 65, 74, 62, 80, 54, 49, 71, 71, 69, 69, 59, 63, 66, 53, 64, 64, 62, 72, 74, 71, 69, 78, 57, 56, 60, 59, 49, 47, 47, 53, 79, 74, 71, 84, 76, 97, 58, 63, 36, 66, 78, 72, 64, 66, 64, 67, 70, 74, 131, 55, 59, 61, 68, 93, 72, 88, 52, 128, 64, 73, 58, 67, 78, 59, 62, 58, 67, 56, 78, 56, 54, 61, 57, 68, 52, 63, 75, 55, 60, 100, 78, 74, 90, 74, 64, 79, 67, 68, 51, 59, 59, 58, 56, 58, 90, 83, 47, 62, 65, 51, 73, 66, 70, 58, 60, 52, 67, 70, 60, 75, 68, 63, 56, 68, 81, 53, 60, 72, 57, 60, 78, 74, 47, 64, 60, 67, 65, 76, 72, 58, 97, 44, 52, 78, 50, 52, 56, 70, 59, 57, 77, 68, 50, 60, 63, 74, 76, 80, 80, 63, 59, 75, 57, 36, 69, 72, 47, 46, 62, 61, 56, 73, 59, 76, 97, 59, 70, 74, 47, 64, 76, 52, 79, 108, 53, 52, 65, 70, 65, 70, 60, 82, 84, 62, 52, 53, 51, 61, 57, 75, 62, 56, 48, 60, 137, 69, 77, 81, 58, 70, 53, 75, 90, 55, 69, 99, 65, 68, 91, 66, 67, 60, 59, 56, 72, 65, 71, 71, 49, 62, 72, 55, 68, 59, 58, 70, 75, 60, 85, 70, 93, 64, 91, 67, 81, 62, 78, 62, 52, 58, 61, 54, 62, 55, 61, 73, 60, 66, 75, 57, 56, 52, 91, 70, 71, 74, 64, 63, 63, 59, 44, 40, 77, 72, 51, 90, 82, 54, 59, 74, 64, 64, 47, 66, 57, 56, 53, 52, 77, 70, 61, 56, 58, 84, 59, 63, 65, 69, 73, 63, 60, 60, 60, 56, 75, 64, 66, 63, 78, 94, 57, 55, 63, 93, 49, 83, 47, 67, 64, 67, 50, 59, 45, 49, 61, 75, 49, 91, 92, 64, 64, 72, 82, 69, 68, 53, 54, 63, 74, 40, 69, 70, 74, 73, 70, 60, 78, 58, 58, 73, 67, 70, 68, 92, 51, 66, 73, 51, 48, 48, 42, 66, 54, 62, 74, 66, 65, 55, 50, 61, 46, 64, 67, 47, 72, 58, 52, 71, 68, 71, 69, 37, 68, 39, 69, 79, 60, 86, 81, 58, 68, 68, 100, 101, 66, 48, 61, 76, 63, 51, 45, 72, 76, 49, 74, 98, 52, 57, 72, 54, 64, 56, 69, 86, 71, 53, 60, 68, 56, 68, 76, 124, 67, 67, 45, 75, 61, 72, 46, 86, 60, 85, 40, 56, 63, 50, 56, 66, 67, 53, 81, 54, 49, 71, 100, 56, 84, 59, 79, 54, 63, 71, 90, 52, 70, 80, 67, 56, 81, 74, 66, 56, 57, 62, 66, 74, 65, 48, 69, 56, 77, 72, 57, 62, 58, 54, 120, 92, 84, 72, 57, 112, 63, 63, 68, 72, 70, 61, 58, 49, 70, 61, 68, 75, 66, 71, 68, 58, 71, 76, 60, 71, 40, 90, 52, 56, 73, 52, 50, 60, 81, 44, 81, 65, 61, 63, 63, 79, 61, 48, 80, 64, 82, 56, 56, 74, 59, 46, 70, 84, 80, 58, 65, 54, 62, 89, 88, 58, 77, 61, 72, 75, 61, 66, 52, 60, 54, 75, 57, 66, 53, 53, 52, 55, 82, 60, 66, 62, 57, 58, 73, 61, 70, 62, 67, 87, 60, 68, 54, 70, 59, 66, 62, 67, 66, 69, 109, 72, 71, 49, 72, 64, 62, 67, 96, 50, 58, 77, 76, 56, 69, 126, 68, 63, 58, 56, 65, 59, 75, 65, 58, 58, 54, 76, 61, 48, 79, 68, 64, 86, 55, 60, 83, 51, 68, 98, 65, 46, 69, 70, 65, 69, 57, 60, 60, 60, 69, 59, 55, 89, 63, 72, 40, 67, 68, 80, 74, 78, 67, 64, 51, 70, 62, 39, 66, 65, 90, 65, 55, 48, 79, 54, 60, 70, 55, 88, 57, 32, 74, 64, 76, 73, 69, 65, 79, 66, 54, 64, 101, 55, 61, 69, 64, 62, 80, 85, 67, 65, 57, 77, 73, 88, 66, 55, 59, 64, 60, 65, 64, 68, 61, 71, 73, 75, 81, 60, 63, 52, 73, 71, 47, 74, 60, 70, 74, 78, 55, 58, 51, 83, 72, 78, 82, 63, 79, 59, 57, 53, 83, 60, 76, 84, 88, 57, 53, 94, 63, 56, 69, 52, 78, 63, 69, 107, 59, 56, 61, 62, 74, 80, 61, 77, 45, 63, 84, 53, 68, 57, 48, 57, 51, 76, 84, 113, 64, 53, 58, 59, 68, 60, 60, 64, 68, 57, 52, 55, 75, 64, 59, 64, 56, 69, 57, 71, 87, 65, 68, 64, 87, 69, 45, 60, 53, 61, 68, 65, 69, 60, 77, 58, 70, 62, 58, 51, 49, 59, 80, 66, 63, 100, 68, 72, 49, 53, 59, 65, 69, 68, 49, 57, 61, 85, 69, 45, 54, 58, 60, 67, 55, 61, 80, 69, 162, 68, 59, 46, 84, 77, 50, 88, 49, 63, 55, 45, 64, 61, 59, 57, 65, 60, 57, 66, 74, 62, 50, 63, 57, 74, 78, 46, 62, 69, 59, 84, 74, 88, 63, 59, 62, 73, 52, 81, 61, 71, 68, 104, 53, 63, 60, 82, 74, 58, 89, 62, 88, 69, 66, 48, 54, 63, 63, 71, 61, 54, 55, 73, 59, 74, 90, 75, 98, 77, 78, 91, 55, 60, 79, 82, 60, 64, 69, 63, 28, 58, 79, 64, 58, 50, 60, 56, 46, 57, 42, 56, 71, 98, 56, 68, 53, 87, 75, 48, 69, 98, 57, 62, 64, 85, 41, 67, 70, 68, 75, 60, 61, 65, 55, 61, 47, 56, 62, 64, 64, 73, 52, 74, 75, 116, 57, 43, 27, 67, 65, 75, 57, 89, 55, 62, 52, 75, 100, 79, 55, 43, 51, 53, 57, 77, 67, 69, 97, 93, 64, 75, 52, 60, 74, 89, 61, 60, 71, 45, 86, 76, 63, 55, 75, 57, 67, 85, 63, 65, 53, 66, 60, 75, 82, 48, 61, 69, 55, 49, 87, 51, 64, 46, 68, 67, 68, 44, 61, 79, 69, 54, 59, 62, 64, 44, 62, 88, 65, 82, 71, 81, 68, 53, 52, 71, 46, 62, 77, 59, 47, 71, 69, 91, 64, 62, 54, 56, 61, 52, 61, 46, 67, 42, 48, 62, 64, 59, 71, 67, 63, 66, 68, 60, 68, 68, 60, 80, 72, 70, 58, 51, 75, 96, 65, 63, 51, 55, 85, 60, 58, 72, 74, 66, 44, 74, 59, 80, 50, 71, 84, 71, 65, 76, 86, 59, 58, 86, 57, 66, 58, 67, 55, 59, 67, 54, 69, 55, 48, 72, 52, 73, 58, 57, 72, 56, 73, 56, 72, 69, 50, 77, 73, 63, 73, 75, 77, 65, 72, 65, 56, 62, 71, 74, 69, 62, 56, 58, 57, 42, 63, 69, 66, 52, 55, 50, 93, 53, 54, 66, 59, 89, 60, 54, 58, 83, 43, 64, 79, 72, 70, 90, 65, 61, 65, 76, 61, 83, 55, 78, 84, 89, 89, 62, 75, 58, 25, 60, 61, 62, 56, 69, 54, 55, 59, 83, 61, 80, 60, 60, 55, 67, 70, 74, 57, 53, 57, 80, 58, 69, 52, 70, 61, 55, 63, 68, 56, 72, 55, 56, 58, 48, 67, 54, 61, 65, 80, 82, 73, 70, 76, 76, 68, 56, 58, 72, 95, 63, 65, 61, 62, 42, 78, 82, 67, 53, 51, 65, 57, 67, 65, 59, 60, 55, 58, 55, 61, 63, 109, 43, 59, 45, 54, 72, 59, 71, 72, 52, 35, 73, 47, 78, 61, 65, 67, 57, 53, 88, 60, 69, 89, 64, 62, 64, 42, 56, 63, 98, 50, 80, 65, 67, 64, 56, 59, 73, 46, 63, 70, 60, 54, 67, 68, 77, 73, 54, 56, 61, 77, 108, 42, 76, 52, 55, 85, 42, 69, 55, 62, 64, 58, 57, 83, 81, 63, 75, 74, 57, 54, 95, 61, 82, 68, 37, 63, 71, 67, 76, 69, 46, 65, 75, 150, 78, 45, 75, 66, 61, 58, 74, 82, 68, 78, 56, 71, 64, 87, 65, 49, 41, 60, 63, 63, 53, 67, 52, 69, 34, 39, 67, 50, 84, 88, 94, 77, 56, 74, 51, 49, 79, 58, 57, 112, 57, 89, 71, 87, 48, 59, 69, 92, 105, 71, 86, 101, 49, 63, 55, 63, 62, 66, 56, 54, 76, 93, 97, 55, 83, 72, 55, 77, 81, 66, 58, 63, 87, 57, 74, 86, 49, 67, 75, 85, 62, 51, 124, 49, 73, 85, 81, 70, 65, 80, 108, 51, 84, 45, 118, 71, 59, 77, 68, 54, 86, 59, 66, 49, 60, 76, 68, 51, 53, 62, 65, 57, 46, 57, 64, 85, 55, 123, 50, 57, 58, 67, 61, 50, 103, 62, 56, 72, 61, 81, 63, 39, 48, 63, 67, 59, 74, 125, 58, 60, 63, 57, 67, 63, 48, 64, 61, 59, 67, 63, 70, 89, 89, 123, 57, 61, 59, 68, 62, 72, 98, 58, 79, 81, 59, 84, 80, 66, 53, 54, 67, 92, 63, 63, 76, 70, 89, 57, 69, 113, 49, 68, 60, 85, 53, 72, 47, 79, 75, 54, 59, 80, 91, 76, 77, 57, 63, 62, 57, 76, 66, 52, 45, 41, 73, 65, 84, 44, 84, 89, 71, 44, 53, 56, 74, 46, 85, 81, 90, 77, 58, 86, 76, 52, 69, 74, 59, 74, 79, 104, 57, 76, 61, 67, 91, 56, 62, 64, 40, 56, 55, 54, 57, 68, 72, 69, 53, 48, 46, 62, 64, 65, 50, 51, 70, 60, 83, 75, 82, 62, 57, 60, 81, 36, 63, 79, 103, 42, 65, 48, 64, 65, 92, 48, 46, 72, 62, 78, 73, 58, 49, 87, 83, 76, 58, 78, 80, 38, 61, 56, 60, 67, 88, 60, 44, 87, 69, 74, 71, 50, 65, 45, 45, 85, 50, 73, 44, 65, 53, 71, 54, 44, 83, 60, 66, 66, 54, 61, 69, 67, 75, 76, 67, 71, 94, 48, 48, 57, 59, 49, 74, 58, 66, 61, 44, 49, 60, 68, 33, 63, 44, 67, 59, 59, 60, 68, 60, 97, 69, 72, 49, 74, 83, 44, 59, 57, 72, 94, 56, 48, 59, 73, 59, 81, 60, 60, 56, 54, 56, 81, 61, 71, 46, 62, 64, 89, 65, 61, 54, 56, 66, 50, 40, 74, 43, 70, 64, 79, 42, 92, 84, 72, 70, 49, 47, 52, 88, 65, 66, 69, 56, 66, 59, 114, 65, 72, 61, 99, 76, 67, 101, 62, 73, 39, 72, 72, 102, 76, 56, 77, 83, 49, 74, 57, 67, 39, 42, 101, 114, 47, 63, 58, 65, 39, 50, 62, 82, 59, 71, 57, 74, 87, 64, 68, 83, 51, 50, 64, 65, 61, 79, 82, 67, 68, 83, 58, 46, 38, 85, 60, 57, 59, 78, 56, 57, 64, 62, 94, 51, 79, 47, 50, 47, 67, 65, 63, 38, 75, 37, 77, 64, 71, 60, 45, 70, 88, 65, 81, 89, 24, 69, 73, 45, 46, 70, 53, 47, 77, 51, 91, 54, 69, 92, 70, 90, 52, 76, 69, 42, 64, 53, 57, 85, 76, 83, 55, 73, 116, 52, 71, 60, 47, 65, 53, 72, 53, 64, 62, 77, 58, 64, 88, 52, 137, 52, 91, 96, 64, 72, 48, 46, 76, 64, 87, 41, 60, 67, 67, 63, 60, 55, 61, 82, 67, 59, 71, 62, 78, 64, 60, 84, 60, 51, 51, 53, 80, 55, 57, 99, 79, 84, 67, 55, 54, 72, 44, 60, 49, 68, 51, 55, 51, 73, 62, 73, 57, 44, 46, 51, 53, 133, 61, 66, 70, 67, 58, 55, 67, 38, 72, 63, 85, 43, 62, 52, 130, 79, 60, 76, 56, 61, 61, 67, 45, 68, 92, 79, 43, 56, 82, 79, 73, 66, 73, 47, 72, 70, 88, 64, 68, 58, 71, 86, 42, 82, 87, 112, 67, 83, 56, 40, 65, 55, 49, 38, 82, 59, 53, 52, 77, 83, 98, 61, 65, 58, 55, 50, 68, 64, 61, 66, 84, 72, 74, 55, 53, 63, 75, 67, 73, 97, 91, 73, 71, 52, 61, 63, 49, 69, 58, 63, 92, 79, 73, 57, 47, 95, 60, 73, 56, 62, 83, 57, 79, 52, 88, 66, 61, 74, 52, 65, 51, 85, 68, 86, 60, 64, 63, 79, 55, 72, 98, 66, 57, 45, 91, 74, 72, 64, 69, 55, 86, 63, 61, 41, 82, 65, 54, 97, 70, 72, 80, 69, 59, 46, 65, 53, 57, 47, 50, 58, 58, 73, 43, 61, 44, 52, 83, 54, 61, 60, 115, 61, 63, 76, 61, 75, 66, 46, 71, 44, 70, 52, 65, 41, 57, 44, 54, 63, 52, 58, 59, 62, 82, 69, 80, 60, 53, 79, 68, 76, 65, 68, 70, 71, 73, 92, 46, 73, 66, 58, 77, 45, 75, 55, 53, 83, 60, 101, 59, 96, 86, 73, 87, 57, 59, 64, 49, 55, 65, 73, 63, 85, 48, 43, 55, 60, 71, 56, 74, 40, 53, 51, 37, 43, 48, 60, 46, 70, 71, 84, 53, 107, 48, 46, 76, 55, 71, 65, 84, 81, 83, 53, 70, 70, 49, 45, 52, 77, 61, 77, 52, 92, 89, 102, 66, 67, 53, 53, 48, 53, 108, 26, 51, 54, 60, 84, 60, 70, 64, 47, 46, 62, 72, 55, 86, 61, 53, 38, 66, 70, 79, 47, 52, 62, 54, 38, 112, 39, 60, 55, 62, 58, 62, 75, 35, 71, 82, 76, 63, 69, 59, 78, 64, 52, 81, 76, 62, 78, 46, 61, 83, 53, 63, 84, 49, 48, 53, 60, 77, 86, 47, 92, 50, 63, 85, 67, 66, 68, 48, 53, 82, 97, 47, 66, 46, 55, 46, 53, 52, 57, 46, 80, 51, 71, 69, 83, 64, 55, 103, 86, 50, 59, 70, 73, 69, 62, 97, 102, 72, 80, 55, 71, 63, 57, 58, 65, 62, 74, 78, 61, 66, 59, 60, 54, 56, 90, 70, 51, 73, 73, 68, 65, 69, 130, 47, 53, 60, 68, 86, 40, 97, 81, 61, 56, 76, 94, 63, 82, 56, 70, 72, 66, 61, 56, 89, 122, 52, 59, 78, 49, 70, 68, 63, 51, 53, 56, 57, 80, 53, 62, 60, 70, 67, 75, 75, 60, 56, 70, 55, 70, 92, 73, 89, 78, 101, 72, 54, 81, 73, 62, 71, 53, 71, 67, 56, 51, 47, 56, 57, 61, 57, 56, 98, 86, 42, 64, 61, 63, 84, 70, 44, 58, 72, 65, 63, 96, 54, 83, 52, 72, 76, 71, 50, 95, 60, 92, 72, 69, 93, 53, 50, 67, 82, 67, 73, 64, 63, 76, 57, 117, 65, 74, 55, 74, 80, 59, 60, 59, 57, 62, 52, 52, 70, 72, 67, 72, 67, 80, 93, 74, 42, 54, 62, 77, 50, 79, 101, 59, 50, 59, 66, 44, 75, 71, 55, 46, 87, 85, 41, 49, 66, 77, 86, 74, 65, 44, 56, 80, 51, 78, 66, 91, 79, 69, 55, 53, 83, 99, 143, 52, 60, 71, 68, 79, 70, 50, 45, 72, 44, 62, 62, 38, 93, 58, 59, 47, 50, 60, 87, 53, 69, 84, 63, 43, 59, 27, 65, 91, 50, 80, 53, 55, 65, 85, 53, 53, 60, 75, 70, 60, 63, 72, 53, 54, 90, 91, 51, 55, 74, 36, 40, 92, 65, 59, 82, 70, 59, 68, 64, 53, 71, 71, 45, 67, 66, 78, 85, 90, 15, 55, 60, 48, 84, 85, 52, 68, 71, 113, 71, 77, 61, 72, 70, 48, 55, 75, 76, 73, 78, 57, 85, 92, 49, 89, 42, 69, 60, 75, 56, 62, 102, 106, 59, 55, 53, 69, 58, 125, 59, 78, 67, 71, 70, 55, 96, 77, 80, 82, 92, 47, 82, 65, 66, 144, 76, 74, 52, 52, 56, 69, 76, 80, 53, 65, 50, 63, 79, 62, 89, 76, 75, 68, 78, 103, 37, 85, 69, 59, 67, 61, 44, 81, 40, 48, 76, 50, 45, 62, 66, 45, 52, 70, 66, 71, 69, 68, 62, 59, 91, 81, 79, 75, 45, 66, 60, 63, 121, 59, 47, 95, 77, 78, 104, 92, 58, 46, 85, 77, 72, 39, 62, 128, 45, 52, 69, 78, 72, 64, 48, 48, 61, 52, 65, 75, 66, 57, 96, 60, 102, 57, 60, 74, 58, 71, 58, 48, 73, 74, 59, 72, 39, 58, 93, 67, 51, 50, 50, 54, 35, 89, 59, 49, 67, 89, 76, 77, 51, 62, 72, 34, 56, 47, 55, 82, 34, 57, 70, 72, 65, 58, 101, 105, 65, 62, 115, 72, 61, 123, 62, 54, 94, 42, 67, 71, 85, 46, 49, 69, 63, 59, 81, 57, 58, 74, 69, 59, 54, 85, 76, 79, 50, 105, 75, 69, 81, 45, 57, 60, 52, 65, 94, 57, 83, 45, 99, 70, 104, 76, 104, 40, 66, 69, 69, 59, 57, 51, 73, 69, 68, 71, 67, 76, 45, 64, 70, 80, 73, 64, 74, 72, 88, 90, 60, 63, 86, 62, 48, 70, 79, 56, 87, 70, 95, 69, 56, 60, 51, 83, 65, 81, 59, 74, 49, 81, 70, 60, 66, 67, 65, 66, 79, 64, 88, 64, 75, 87, 49, 58, 79, 69, 101, 65, 51, 79, 53, 69, 76, 64, 65, 75, 39, 56, 81, 52, 48, 88, 38, 48, 60, 73, 47, 74, 55, 62, 71, 74, 62, 127, 77, 49, 63, 69, 85, 49, 78, 88, 58, 85, 80, 58, 60, 75, 60, 108, 84, 120, 66, 51, 132, 72, 62, 65, 67, 93, 65, 43, 83, 41, 68, 36, 74, 93, 54, 48, 54, 64, 110, 52, 85, 70, 88, 51, 61, 56, 47, 40, 62, 54, 50, 49, 63, 96, 76, 70, 55, 64, 81, 65, 61, 53, 46, 58, 69, 43, 66, 63, 50, 61, 66, 66, 105, 54, 51, 63, 62, 83, 69, 47, 74, 61, 59, 60, 68, 69, 41, 100, 64, 59, 58, 59, 59, 59, 38, 74, 85, 69, 63, 54, 60, 56, 73, 60, 65, 62, 48, 82, 55, 65, 67, 75, 85, 65, 50, 87, 67, 66, 61, 83, 78, 32, 62, 71, 57, 44, 75, 50, 82, 65, 85, 59, 62, 101, 75, 66, 66, 62, 65, 43, 49, 50, 46, 77, 60, 57, 43, 47, 68, 79, 84, 67, 106, 52, 71, 67, 55, 71, 74, 76, 52, 86, 49, 65, 76, 67, 59, 61, 43, 75, 55, 62, 81, 48, 51, 54, 58, 84, 76, 50, 70, 56, 71, 57, 66, 62, 78, 72, 72, 52, 49, 56, 49, 77, 56, 62, 54, 68, 88, 61, 44, 66, 59, 130, 69, 61, 49, 71, 63, 52, 35, 67, 56, 79, 94, 64, 33, 76, 61, 81, 61, 63, 76, 81, 63, 74, 104, 64, 89, 69, 63, 69, 59, 43, 73, 59, 81, 54, 84, 44, 41, 68, 43, 65, 70, 67, 41, 75, 51, 38, 62, 66, 68, 81, 60, 54, 70, 75, 95, 91, 40, 65, 43, 67, 58, 59, 47, 38, 69, 60, 69, 76, 61, 57, 50, 63, 82, 62, 55, 74, 51, 53, 65, 58, 65, 71, 69, 84, 62, 62, 75, 53, 62, 70, 106, 61, 73, 46, 39, 58, 57, 80, 89, 60, 54, 41, 59, 48, 80, 68, 60, 51, 53, 44, 63, 55, 56, 57, 78, 48, 57, 59, 120, 53, 54, 39, 41, 56, 75, 64, 60, 57, 51, 56, 66, 60, 92, 59, 65, 51, 66, 86, 70, 53, 59, 99, 59, 52, 74, 65, 40, 61, 63, 48, 64, 52, 79, 76, 54, 55, 56, 63, 95, 46, 46, 60, 83, 65, 58, 86, 125, 78, 53, 59, 55, 60, 65, 23, 48, 98, 64, 45, 65, 45, 63, 49, 62, 38, 77, 96, 58, 78, 26, 66, 50, 51, 47, 69, 56, 68, 121, 53, 94, 71, 56, 88, 97, 50, 55, 89, 87, 80, 61, 96, 77, 41, 78, 68, 55, 74, 39, 53, 51, 54, 58, 80, 70, 55, 51, 66, 47, 51, 48, 85, 74, 70, 78, 66, 43, 83, 70, 68, 87, 51, 50, 57, 74, 52, 152, 55, 47, 106, 69, 66, 71, 87, 63, 82, 54, 54, 57, 77, 64, 67, 70, 74, 58, 47, 55, 48, 59, 57, 78, 56, 56, 67, 53, 60, 62, 63, 40, 53, 73, 88, 68, 65, 53, 65, 60, 59, 58, 71, 69, 57, 52, 58, 58, 71, 61, 63, 64, 69, 66, 58, 55, 38, 73, 59, 106, 47, 74, 58, 70, 65, 53, 69, 72, 67, 65, 139, 69, 84, 73, 64, 83, 69, 34, 60, 49, 58, 57, 60, 76, 83, 62, 54, 61, 60, 47, 58, 64, 72, 58, 64, 59, 48, 65, 49, 72, 84, 55, 73, 95, 40, 68, 55, 56, 64, 55, 75, 71, 52, 61, 75, 68, 44, 55, 57, 72, 54, 66, 95, 84, 57, 75, 57, 85, 91, 48, 56, 75, 49, 61, 43, 68, 58, 67, 79, 60, 64, 87, 58, 54, 60, 61, 42, 65, 95, 59, 70, 56, 61, 76, 67, 57, 76, 71, 52, 87, 73, 61, 77, 65, 46, 80, 53, 61, 68, 92, 65, 66, 78, 65, 64, 53, 78, 100, 62, 55, 88, 45, 68, 70, 55, 67, 61, 65, 84, 87, 69, 52, 55, 55, 68, 70, 69, 96, 53, 50, 71, 77, 59, 47, 61, 49, 76, 83, 95, 65, 69, 59, 69, 65, 59, 63, 79, 63, 86, 64, 54, 50, 57, 89, 67, 64, 54, 84, 68, 66, 73, 70, 69, 59, 93, 79, 63, 62, 86, 92, 58, 38, 48, 42, 57, 82, 43, 61, 86, 60, 62, 59, 71, 48, 51, 66, 66, 63, 104, 74, 60, 66, 67, 52, 45, 91, 66, 53, 78, 70, 59, 67, 68, 77, 61, 49, 57, 69, 127, 80, 85, 56, 69, 29, 69, 76, 45, 47, 65, 74, 35, 63, 66, 71, 54, 63, 54, 74, 81, 61, 62, 37, 60, 64, 76, 47, 50, 77, 58, 42, 57, 68, 79, 51, 57, 73, 72, 54, 103, 80, 78, 86, 75, 39, 72, 73, 54, 65, 52, 65, 83, 70, 69, 44, 82, 71, 89, 53, 61, 74, 69, 55, 51, 65, 70, 133, 74, 61, 69, 82, 75, 52, 75, 68, 62, 49, 68, 63, 61, 76, 116, 68, 65, 61, 77, 65, 64, 76, 56, 64, 99, 52, 65, 81, 56, 55, 69, 104, 68, 86, 63, 79, 80, 61, 65, 66, 50, 70, 60, 53, 94, 59, 68, 55, 72, 69, 73, 63, 65, 68, 55, 65, 82, 79, 125, 68, 70, 53, 82, 70, 79, 71, 52, 59, 49, 58, 62, 59, 118, 70, 56, 56, 55, 72, 78, 76, 82, 73, 65, 61, 69, 74, 53, 61, 71, 80, 69, 58, 52, 77, 80, 76, 58, 54, 75, 78, 83, 106, 59, 53, 73, 78, 63, 61, 75, 62, 67, 31, 84, 69, 48, 54, 72, 50, 60, 52, 62, 120, 52, 71, 55, 68, 73, 71, 55, 73, 68, 85, 94, 54, 60, 99, 69, 57, 64, 77, 60, 76, 64, 54, 75, 57, 65, 63, 64, 84, 83, 49, 61, 73, 60, 60, 66, 77, 55, 62, 82, 71, 64, 62, 56, 76, 57, 75, 67, 61, 72, 57, 57, 45, 55, 52, 58, 89, 78, 83, 61, 70, 57, 72, 62, 54, 68, 60, 76, 56, 69, 64, 69, 71, 59, 61, 103, 62, 71, 51, 60, 81, 65, 57, 73, 64, 63, 72, 49, 76, 59, 73, 60, 56, 52, 98, 76, 80, 71, 54, 75, 61, 58, 61, 60, 67, 63, 71, 49, 60, 74, 73, 76, 79, 53, 50, 65, 72, 72, 48, 77, 42, 68, 61, 78, 66, 87, 72, 46, 53, 55, 83, 71, 60, 69, 64, 61, 61, 82, 60, 74, 53, 69, 67, 67, 60, 47, 72, 61, 55, 58, 55, 49, 77, 71, 78, 55, 72, 76, 43, 47, 108, 66, 61, 79, 59, 70, 66, 53, 85, 62, 59, 68, 59, 86, 69, 48, 57, 68, 53, 50, 63, 50, 41, 63, 85, 54, 65, 49, 60, 97, 65, 48, 53, 44, 58, 93, 78, 65, 80, 75, 88, 62, 68, 44, 69, 80, 47, 71, 70, 61, 62, 110, 66, 70, 62, 63, 65, 57, 72, 74, 63, 90, 79, 83, 61, 62, 53, 59, 57, 67, 67, 67, 59, 59, 60, 72, 72, 62, 73, 54, 51, 43, 64, 57, 74, 52, 58, 63, 54, 67, 70, 53, 62, 61, 55, 54, 67, 68, 71, 55, 53, 62, 74, 71, 65, 51, 94, 101, 58, 52, 65, 44, 53, 61, 71, 77, 52, 46, 56, 57, 64, 77, 67, 77, 87, 63, 56, 76, 55, 54, 55, 73, 87, 67, 59, 56, 80, 92, 67, 50, 61, 60, 63, 63, 68, 54, 69, 79, 65, 67, 46, 59, 54, 48, 62, 78, 83, 66, 63, 92, 68, 64, 83, 74, 73, 70, 58, 71, 44, 104, 76, 61, 57, 54, 100, 77, 55, 52, 53, 69, 46, 58, 66, 44, 57, 73, 45, 62, 43, 70, 67, 64, 74, 66, 59, 79, 59, 61, 62, 71, 63, 45, 66, 57, 68, 70, 77, 64, 56, 38, 70, 38, 55, 107, 68, 59, 64, 61, 73, 66, 63, 76, 56, 69, 80, 55, 76, 59, 47, 67, 73, 69, 69, 78, 82, 83, 82, 63, 77, 51, 72, 55, 85, 62, 53, 69, 77, 61, 65, 98, 81, 72, 65, 39, 54, 67, 78, 59, 43, 94, 65, 88, 66, 57, 61, 60, 59, 57, 51, 64, 45, 59, 58, 72, 59, 67, 52, 63, 51, 72, 65, 55, 68, 64, 57, 137, 53, 53, 52, 52, 74, 50, 75, 86, 72, 56, 57, 62, 72, 69, 58, 55, 65, 61, 60, 59, 54, 69, 104, 69, 55, 69, 44, 94, 65, 68, 96, 52, 60, 49, 87, 69, 73, 82, 60, 78, 62, 46, 72, 85, 71, 62, 69, 95, 97, 88, 76, 104, 68, 73, 66, 68, 62, 59, 133, 70, 66, 75, 57, 58, 61, 66, 75, 56, 73, 83, 85, 72, 63, 59, 48, 63, 67, 57, 40, 61, 70, 43, 64, 65, 60, 54, 74, 63, 54, 60, 48, 65, 62, 86, 92, 84, 67, 50, 65, 58, 51, 81, 69, 61, 61, 55, 62, 58, 55, 62, 74, 48, 42, 59, 84, 97, 67, 74, 77, 70, 77, 64, 59, 64, 54, 78, 81, 61, 94, 84, 58, 72, 65, 83, 63, 68, 69, 47, 63, 86, 67, 58, 62, 79, 81, 103, 71, 46, 62, 71, 57, 71, 76, 106, 88, 70, 62, 66, 52, 59, 44, 101, 82, 92, 68, 63, 69, 87, 77, 47, 75, 40, 98, 68, 68, 71, 61, 78, 111, 54, 55, 132, 42, 61, 62, 54, 60, 77, 55, 61, 68, 61, 88, 63, 94, 58, 77, 49, 54, 63, 57, 47, 57, 44, 60, 59, 64, 67, 67, 83, 44, 59, 61, 67, 81, 52, 55, 91, 67, 54, 39, 66, 65, 76, 68, 65, 98, 82, 60, 40, 55, 46, 65, 80, 67, 69, 57, 65, 54, 68, 72, 56, 43, 68, 55, 65, 60, 62, 46, 65, 60, 55, 71, 65, 47, 77, 59, 61, 71, 79, 58, 52, 72, 67, 44, 63, 61, 49, 49, 67, 56, 92, 56, 65, 61, 58, 55, 69, 64, 48, 60, 65, 68, 99, 65, 61, 48, 73, 84, 62, 59, 62, 68, 66, 63, 65, 59, 61, 84, 58, 51, 78, 66, 73, 66, 80, 92, 61, 57, 61, 76, 62, 62, 47, 58, 46, 67, 79, 52, 87, 68, 63, 56, 73, 65, 40, 51, 100, 54, 78, 65, 103, 56, 67, 63, 53, 80, 60, 72, 56, 51, 67, 43, 62, 83, 78, 64, 80, 63, 52, 58, 49, 50, 62, 77, 56, 74, 47, 57, 54, 64, 80, 77, 88, 81, 53, 63, 57, 46, 57, 55, 61, 72, 75, 54, 45, 87, 66, 60, 71, 61, 132, 66, 61, 72, 70, 82, 77, 70, 71, 69, 59, 84, 68, 76, 62, 57, 62, 71, 71, 63, 68, 70, 70, 70, 53, 67, 55, 75, 53, 69, 41, 59, 70, 56, 62, 85, 53, 56, 72, 74, 51, 72, 64, 60, 74, 89, 69, 68, 77, 77, 76, 82, 88, 36, 62, 44, 60, 53, 67, 54, 92, 72, 66, 62, 49, 55, 68, 65, 55, 55, 55, 61, 70, 49, 39, 54, 54, 63, 50, 73, 70, 53, 73, 76, 61, 63, 60, 65, 69, 73, 64, 72, 87, 55, 62, 74, 57, 66, 60, 58, 81, 60, 61, 65, 50, 72, 54, 70, 66, 86, 76, 79, 70, 58, 52, 58, 58, 64, 54, 61, 89, 53, 71, 56, 52, 65, 70, 82, 66, 68, 71, 58, 77, 66, 95, 63, 63, 74, 95, 63, 74, 36, 71, 61, 63, 70, 58, 58, 76, 75, 75, 71, 89, 61, 75, 84, 64, 58, 67, 58, 50, 64, 95, 56, 47, 66, 71, 58, 59, 49, 54, 60, 70, 59, 53, 84, 65, 72, 64, 65, 53, 68, 59, 52, 59, 59, 61, 41, 67, 41, 52, 51, 67, 67, 46, 80, 66, 82, 58, 72, 58, 67, 69, 48, 59, 76, 61, 74, 54, 72, 60, 69, 65, 53, 59, 66, 62, 53, 60, 71, 46, 77, 53, 83, 66, 42, 90, 46, 72, 58, 68, 58, 78, 81, 63, 49, 87, 74, 87, 66, 55, 68, 46, 77, 57, 53, 45, 72, 64, 56, 49, 55, 74, 82, 53, 63, 80, 65, 84, 86, 59, 62, 56, 55, 67, 66, 57, 85, 55, 57, 73, 51, 65, 65, 58, 62, 60, 57, 55, 75, 49, 62, 58, 61, 71, 79, 75, 60, 46, 66, 54, 68, 92, 68, 54, 61, 41, 68, 62, 56, 78, 61, 57, 78, 72, 64, 50, 58, 87, 76, 66, 63, 62, 49, 60, 59, 65, 63, 94, 82, 66, 50, 68, 45, 66, 65, 66, 60, 72, 57, 76, 45, 68, 64, 58, 75, 84, 42, 66, 77, 62, 56, 44, 53, 95, 51, 75, 62, 67, 77, 83, 61, 69, 64, 53, 64, 89, 62, 84, 69, 79, 67, 66, 61, 60, 58, 65, 48, 61, 55, 51, 61, 52, 77, 72, 75, 72, 112, 69, 53, 76, 65, 60, 62, 83, 59, 64, 73, 56, 69, 50, 50, 70, 75, 67, 74, 60, 72, 82, 40, 42, 73, 51, 52, 50, 56, 60, 55, 84, 71, 59, 45, 67, 61, 59, 78, 54, 70, 90, 65, 60, 63, 63, 81, 55, 80, 75, 63, 64, 65, 53, 86, 78, 56, 60, 58, 71, 57, 57, 51, 84, 55, 73, 68, 65, 67, 48, 70, 75, 65, 63, 59, 61, 60, 73, 63, 45, 58, 60, 66, 69, 68, 48, 72, 84, 61, 59, 55, 70, 67, 52, 66, 65, 69, 75, 58, 56, 88, 43, 71, 74, 62, 63, 51, 61, 59, 70, 87, 56, 65, 79, 61, 69, 57, 72, 65, 89, 64, 53, 75, 65, 59, 50, 110, 78, 71, 67, 58, 70, 89, 51, 74, 64, 76, 74, 69, 52, 60, 66, 100, 58, 54, 66, 40, 73, 71, 68, 41, 48, 58, 80, 67, 91, 55, 55, 74, 63, 58, 58, 60, 102, 55, 74, 67, 58, 52, 65, 65, 63, 63, 67, 42, 65, 58, 72, 59, 61, 47, 59, 57, 66, 77, 59, 61, 58, 66, 92, 49, 66, 62, 64, 134, 66, 67, 63, 60, 85, 61, 49, 71, 52, 78, 53, 83, 71, 55, 70, 56, 97, 78, 95, 86, 64, 53, 60, 72, 89, 160, 66, 68, 57, 83, 83, 108, 60, 78, 86, 65, 51, 56, 69, 63, 65, 71, 68, 70, 84, 50, 52, 55, 68, 64, 64, 66, 62, 75, 51, 64, 107, 56, 72, 69, 64, 66, 80, 51, 65, 56, 48, 67, 56, 64, 95, 54, 61, 55, 64, 55, 74, 50, 62, 63, 63, 65, 65, 74, 69, 54, 70, 51, 93, 54, 68, 62, 67, 59, 56, 66, 73, 55, 65, 83, 56, 64, 59, 57, 52, 77, 58, 78, 64, 60, 51, 64, 80, 81, 67, 61, 56, 60, 91, 93, 55, 53, 70, 49, 51, 56, 66, 49, 58, 57, 56, 59, 59, 43, 76, 56, 71, 93, 107, 44, 70, 58, 68, 62, 67, 77, 50, 60, 77, 46, 58, 48, 55, 68, 59, 82, 75, 62, 68, 60, 94, 77, 72, 81, 48, 71, 62, 52, 45, 51, 88, 78, 96, 57, 55, 62, 57, 64, 63, 52, 51, 72, 37, 53, 53, 69, 75, 76, 70, 51, 59, 64, 63, 69, 73, 99, 52, 74, 48, 69, 64, 68, 62, 92, 62, 40, 65, 64, 72, 49, 87, 92, 49, 57, 56, 76, 53, 71, 75, 80, 81, 69, 79, 56, 61, 95, 64, 79, 72, 80, 83, 80, 72, 60, 53, 64, 55, 66, 75, 53, 75, 57, 59, 76, 57, 112, 82, 59, 64, 78, 57, 100, 75, 58, 64, 68, 67, 78, 53, 77, 61, 55, 55, 64, 68, 74, 46, 53, 63, 67, 99, 73, 65, 51, 56, 54, 89, 57, 69, 53, 55, 76, 43, 64, 61, 77, 64, 88, 47, 60, 42, 72, 54, 53, 68, 55, 61, 76, 86, 59, 72, 65, 64, 52, 56, 69, 120, 79, 57, 108, 64, 59, 68, 50, 79, 61, 47, 68, 70, 65, 55, 51, 47, 77, 72, 52, 51, 47, 51, 54, 67, 63, 50, 76, 65, 63, 53, 62, 58, 60, 109, 58, 95, 75, 68, 69, 84, 50, 61, 116, 66, 97, 64, 57, 86, 64, 57, 60, 52, 109, 70, 81, 68, 63, 52, 48, 70, 76, 77, 55, 58, 56, 45, 72, 67, 67, 55, 53, 59, 53, 57, 63, 65, 60, 73, 38, 81, 60, 72, 76, 66, 82, 63, 56, 82, 64, 130, 60, 74, 72, 51, 54, 70, 51, 71, 54, 58, 46, 58, 53, 60, 59, 67, 65, 73, 70, 56, 70, 61, 46, 48, 57, 54, 83, 56, 60, 67, 53, 83, 116, 65, 60, 82, 93, 89, 58, 48, 79, 53, 68, 74, 55, 100, 82, 56, 80, 72, 47, 67, 94, 41, 60, 66, 72, 62, 57, 59, 56, 46, 66, 60, 52, 56, 60, 91, 75, 59, 53, 71, 55, 51, 75, 48, 49, 59, 59, 58, 69, 52, 58, 67, 78, 69, 68, 72, 55, 80, 59, 67, 51, 65, 59, 118, 68, 50, 69, 64, 65, 66, 85, 62, 87, 74, 44, 83, 70, 61, 51, 97, 62, 70, 68, 91, 55, 56, 68, 84, 73, 54, 54, 79, 86, 149, 80, 74, 51, 62, 83, 64, 43, 79, 78, 49, 95, 66, 78, 67, 62, 56, 61, 71, 58, 65, 50, 78, 58, 83, 53, 53, 70, 53, 73, 55, 42, 67, 52, 60, 60, 53, 80, 66, 59, 52, 53, 51, 98, 58, 72, 71, 59, 76, 64, 83, 59, 62, 69, 82, 88, 69, 84, 83, 78, 52, 54, 56, 70, 45, 56, 64, 51, 44, 53, 68, 67, 53, 47, 65, 64, 74, 66, 47, 71, 109, 84, 69, 55, 69, 65, 94, 43, 72, 67, 65, 79, 77, 55, 65, 69, 61, 53, 71, 52, 120, 64, 59, 56, 55, 55, 50, 84, 61, 87, 62, 66, 47, 90, 46, 54, 69, 60, 60, 70, 70, 56, 60, 55, 59, 82, 55, 80, 60, 52, 89, 82, 63, 79, 67, 53, 60, 67, 72, 50, 91, 56, 65, 88, 77, 60, 61, 83, 89, 62, 61, 61, 57, 137, 79, 62, 57, 71, 69, 68, 55, 55, 63, 56, 79, 68, 71, 66, 65, 53, 52, 67, 118, 62, 69, 33, 50, 50, 115, 62, 61, 60, 67, 63, 66, 47, 62, 63, 100, 68, 56, 57, 44, 54, 60, 55, 55, 80, 63, 64, 60, 61, 62, 52, 69, 66, 62, 86, 71, 49, 86, 66, 55, 56, 61, 74, 48, 56, 75, 74, 63, 52, 56, 63, 56, 114, 65, 57, 45, 43, 64, 68, 75, 66, 62, 58, 66, 68, 56, 60, 54, 61, 67, 74, 78, 60, 72, 44, 59, 97, 74, 61, 120, 87, 103, 63, 57, 58, 73, 73, 61, 67, 59, 56, 88, 43, 60, 38, 59, 58, 70, 100, 84, 73, 45, 75, 62, 76, 55, 48, 61, 50, 53, 65, 80, 65, 73, 71, 53, 43, 53, 53, 62, 79, 67, 49, 56, 55, 51, 33, 51, 71, 49, 72, 64, 67, 62, 46, 74, 62, 69, 60, 64, 63, 66, 80, 63, 68, 50, 55, 113, 65, 51, 65, 64, 53, 116, 76, 63, 113, 61, 51, 60, 40, 150, 61, 80, 54, 40, 53, 53, 50, 87, 69, 49, 84, 57, 61, 70, 99, 59, 82, 63, 66, 66, 60, 70, 85, 64, 70, 68, 75, 67, 70, 55, 35, 31, 65, 80, 52, 47, 71, 62, 60, 78, 53, 47, 63, 53, 126, 88, 50, 59, 57, 68, 66, 87, 88, 47, 72, 60, 63, 65, 56, 55, 71, 83, 76, 59, 68, 70, 74, 62, 85, 58, 66, 78, 72, 47, 66, 53, 66, 46, 49, 60, 43, 39, 71, 87, 80, 48, 44, 30, 69, 61, 83, 68, 89, 59, 57, 98, 68, 51, 86, 47, 50, 45, 66, 63, 58, 75, 63, 59, 47, 51, 50, 54, 54, 61, 77, 55, 101, 88, 65, 68, 55, 67, 62, 89, 54, 90, 70, 36, 50, 73, 75, 52, 72, 57, 50, 66, 46, 99, 61, 56, 63, 67, 75, 62, 52, 55, 61, 71, 59, 75, 67, 86, 95, 91, 74, 78, 60, 71, 78, 57, 62, 61, 70, 66, 73, 53, 111, 69, 72, 44, 39, 38, 84, 76, 90, 40, 86, 69, 54, 59, 69, 59, 54, 88, 40, 76, 62, 48, 68, 59, 74, 72, 71, 61, 70, 83, 54, 73, 86, 61, 70, 97, 68, 75, 81, 62, 51, 65, 51, 56, 63, 111, 67, 66, 62, 73, 77, 110, 86, 65, 59, 52, 77, 68, 75, 47, 53, 66, 77, 54, 64, 57, 55, 56, 56, 104, 56, 74, 73, 51, 46, 79, 52, 43, 64, 94, 58, 81, 61, 60, 63, 80, 83, 67, 89, 52, 52, 74, 68, 43, 67, 41, 65, 71, 59, 60, 63, 51, 64, 69, 59, 93, 45, 60, 53, 63, 68, 74, 51, 53, 54, 79, 66, 48, 59, 62, 78, 51, 72, 75, 56, 47, 60, 117, 53, 83, 59, 54, 67, 108, 53, 92, 64, 59, 70, 62, 87, 53, 61, 70, 60, 70, 66, 66, 40, 67, 55, 76, 68, 66, 83, 81, 67, 59, 56, 51, 73, 57, 64, 35, 51, 52, 64, 43, 51, 61, 65, 136, 66, 79, 73, 88, 73, 41, 65, 72, 56, 90, 71, 63, 36, 64, 91, 107, 84, 68, 67, 58, 66, 68, 61, 52, 76, 72, 64, 73, 62, 84, 52, 77, 64, 70, 61, 50, 56, 91, 62, 64, 75, 61, 89, 49, 76, 79, 56, 63, 61, 49, 57, 65, 59, 50, 70, 77, 102, 99, 63, 95, 64, 60, 96, 68, 55, 85, 88, 53, 77, 87, 69, 85, 102, 74, 64, 71, 68, 63, 70, 47, 57, 73, 136, 65, 66, 93, 96, 76, 61, 54, 78, 57, 62, 105, 74, 71, 70, 84, 80, 66, 55, 57, 73, 73, 52, 109, 34, 51, 36, 69, 72, 67, 80, 89, 53, 63, 70, 69, 56, 58, 69, 113, 73, 56, 41, 60, 90, 54, 50, 44, 116, 67, 60, 55, 94, 113, 63, 50, 69, 52, 74, 64, 65, 78, 48, 65, 64, 65, 69, 56, 57, 53, 56, 71, 73, 75, 95, 76, 61, 45, 95, 67, 60, 59, 78, 72, 88, 61, 71, 67, 67, 70, 69, 69, 43, 57, 60, 104, 62, 66, 89, 55, 78, 73, 65, 59, 71, 84, 55, 58, 71, 49, 54, 64, 82, 79, 49, 51, 66, 56, 57, 67, 62, 86, 57, 66, 90, 50, 55, 57, 68, 88, 65, 73, 85, 59, 48, 67, 106, 60, 54, 76, 95, 55, 78, 61, 53, 53, 57, 64, 70, 59, 65, 64, 51, 57, 59, 65, 74, 44, 55, 54, 67, 72, 51, 57, 61, 39, 75, 58, 62, 55, 64, 72, 54, 65, 50, 52, 61, 64, 68, 88, 60, 52, 53, 83, 40, 60, 88, 73, 70, 66, 89, 57, 58, 107, 79, 56, 52, 50, 100, 73, 52, 58, 44, 71, 57, 56, 84, 52, 84, 42, 67, 60, 48, 62, 51, 56, 67, 65, 62, 57, 48, 54, 47, 79, 65, 93, 76, 63, 71, 59, 93, 71, 58, 85, 76, 82, 79, 42, 74, 46, 77, 55, 95, 54, 56, 51, 58, 74, 41, 63, 74, 70, 44, 85, 119, 52, 65, 63, 78, 62, 61, 88, 67, 55, 116, 87, 56, 70, 65, 95, 39, 60, 59, 61, 85, 70, 63, 69, 45, 55, 54, 70, 63, 52, 54, 89, 51, 53, 67, 86, 48, 82, 36, 50, 74, 59, 59, 68, 108, 93, 64, 69, 56, 56, 68, 61, 76, 66, 45, 75, 53, 67, 59, 69, 152, 58, 60, 53, 61, 56, 60, 61, 71, 64, 57, 54, 70, 50, 60, 76, 80, 65, 73, 48, 53, 64, 73, 91, 66, 73, 61, 81, 46, 75, 74, 50, 86, 91, 65, 61, 58, 76, 66, 56, 58, 61, 76, 71, 54, 92, 63, 61, 85, 60, 85, 81, 56, 52, 46, 57, 93, 69, 49, 75, 56, 53, 54, 53, 67, 67, 71, 68, 50, 69, 65, 69, 47, 87, 76, 56, 61, 86, 55, 50, 95, 58, 56, 46, 44, 63, 58, 59, 89, 79, 54, 78, 78, 62, 83, 64, 60, 62, 55, 55, 45, 56, 78, 56, 69, 85, 68, 86, 77, 57, 53, 70, 57, 56, 48, 44, 104, 45, 100, 79, 39, 67, 65, 71, 56, 41, 54, 67, 46, 48, 76, 76, 56, 64, 51, 53, 53, 56, 71, 79, 56, 68, 53, 58, 52, 74, 66, 73, 82, 67, 61, 60, 57, 95, 66, 50, 56, 63, 50, 50, 81, 45, 78, 62, 70, 60, 57, 55, 63, 49, 59, 84, 70, 85, 41, 59, 64, 50, 56, 76, 57, 64, 65, 53, 71, 45, 50, 59, 44, 59, 48, 141, 55, 75, 57, 73, 45, 100, 58, 39, 59, 62, 57, 63, 70, 89, 65, 28, 65, 72, 88, 58, 52, 55, 64, 56, 67, 52, 51, 73, 79, 56, 100, 81, 133, 55, 45, 78, 68, 49, 42, 99, 54, 49, 67, 70, 46, 66, 64, 56, 51, 56, 65, 54, 63, 80, 92, 58, 79, 51, 90, 35, 53, 69, 106, 41, 63, 68, 80, 63, 59, 50, 52, 65, 78, 69, 66, 58, 53, 66, 61, 46, 70, 65, 44, 84, 58, 64, 55, 67, 61, 42, 75, 43, 92, 81, 72, 71, 74, 57, 85, 66, 62, 84, 70, 47, 70, 62, 96, 54, 90, 88, 57, 62, 85, 77, 63, 92, 52, 51, 69, 60, 57, 122, 63, 72, 67, 78, 81, 50, 56, 76, 62, 56, 66, 68, 71, 42, 83, 101, 49, 54, 66, 91, 67, 64, 59, 45, 63, 56, 64, 59, 87, 77, 68, 62, 70, 45, 69, 84, 52, 42, 65, 66, 72, 68, 55, 107, 83, 71, 40, 45, 53, 76, 55, 67, 71, 69, 67, 65, 92, 75, 60, 70, 71, 75, 131, 84, 164, 50, 62, 57, 46, 45, 66, 67, 44, 62, 77, 46, 70, 53, 93, 43, 82, 81, 57, 81, 62, 53, 64, 65, 66, 78, 44, 82, 71, 64, 42, 40, 78, 65, 101, 93, 50, 32, 89, 59, 70, 89, 64, 61, 64, 70, 71, 64, 42, 57, 57, 52, 55, 68, 39, 92, 51, 63, 69, 68, 65, 63, 71, 50, 92, 90, 62, 64, 41, 54, 53, 74, 70, 68, 59, 58, 71, 54, 66, 63, 51, 90, 101, 53, 93, 64, 78, 58, 59, 74, 89, 89, 35, 65, 84, 85, 48, 60, 54, 65, 63, 56, 60, 53, 62, 50, 115, 72, 62, 65, 65, 51, 63, 45, 57, 64, 100, 73, 94, 63, 70, 73, 47, 70, 57, 68, 80, 65, 57, 53, 64, 63, 69, 77, 64, 101, 63, 64, 61, 67, 59, 92, 70, 74, 67, 51, 64, 65, 78, 62, 70, 71, 53, 46, 55, 77, 69, 42, 56, 74, 78, 84, 57, 87, 72, 69, 45, 67, 57, 61, 52, 46, 86, 61, 83, 48, 69, 79, 66, 59, 67, 71, 71, 67, 52, 75, 42, 71, 82, 71, 64, 65, 60, 57, 37, 54, 41, 78, 60, 112, 56, 85, 61, 52, 75, 55, 60, 60, 82, 48, 74, 51, 56, 74, 68, 74, 52, 46, 80, 36, 70, 65, 80, 67, 80, 81, 61, 58, 61, 70, 68, 64, 71, 63, 61, 66, 80, 67, 82, 97, 72, 98, 79, 74, 76, 60, 48, 63, 72, 94, 54, 83, 65, 81, 53, 55, 56, 61, 53, 63, 77, 42, 78, 98, 73, 59, 61, 70, 53, 93, 98, 72, 72, 74, 56, 116, 60, 55, 97, 65, 47, 42, 83, 58, 90, 68, 76, 82, 85, 76, 67, 69, 73, 71, 61, 60, 60, 66, 57, 66, 52, 94, 65, 63, 70, 61, 64, 81, 47, 54, 75, 57, 47, 45, 61, 72, 58, 55, 59, 94, 67, 59, 71, 52, 85, 54, 45, 59, 64, 34, 72, 100, 65, 89, 71, 88, 109, 76, 56, 57, 54, 72, 59, 67, 56, 72, 74, 66, 62, 77, 85, 41, 61, 57, 67, 55, 69, 71, 61, 73, 57, 50, 73, 57, 69, 95, 44, 63, 77, 78, 97, 64, 38, 55, 50, 53, 89, 60, 54, 109, 67, 69, 67, 55, 120, 57, 78, 51, 80, 69, 65, 53, 67, 59, 64, 77, 68, 64, 62, 60, 94, 88, 69, 75, 57, 75, 65, 83, 63, 71, 77, 70, 49, 86, 72, 151, 58, 62, 83, 57, 58, 57, 73, 55, 57, 78, 52, 58, 65, 53, 63, 77, 81, 62, 55, 61, 47, 83, 67, 52, 55, 53, 72, 76, 49, 78, 57, 70, 73, 60, 68, 65, 81, 79, 53, 79, 77, 55, 76, 57, 69, 56, 80, 68, 85, 59, 67, 46, 58, 61, 56, 66, 58, 48, 60, 66, 46, 64, 88, 59, 59, 69, 52, 58, 58, 47, 53, 52, 45, 81, 72, 100, 86, 64, 81, 66, 67, 54, 56, 67, 53, 75, 64, 92, 58, 54, 70, 63, 65, 53, 79, 65, 73, 55, 67, 68, 55, 69, 70, 73, 47, 46, 61, 57, 60, 105, 85, 62, 42, 48, 48, 73, 130, 55, 56, 66, 72, 54, 77, 94, 73, 55, 43, 51, 77, 97, 67, 88, 45, 75, 56, 88, 46, 55, 67, 85, 59, 101, 49, 77, 69, 70, 72, 70, 59, 61, 55, 59, 47, 53, 68, 66, 57, 73, 90, 85, 51, 60, 66, 58, 73, 67, 54, 56, 27, 68, 73, 90, 78, 43, 46, 71, 47, 70, 62, 58, 90, 66, 65, 95, 62, 48, 65, 68, 50, 41, 101, 52, 50, 60, 51, 77, 53, 72, 57, 51, 59, 85, 67, 57, 67, 90, 59, 66, 57, 76, 47, 77, 73, 54, 70, 70, 53, 59, 66, 60, 73, 69, 54, 66, 73, 68, 62, 47, 58, 55, 69, 66, 70, 65, 62, 63, 51, 76, 55, 72, 88, 41, 57, 87, 71, 53, 72, 60, 60, 67, 86, 77, 57, 50, 96, 62, 75, 83, 45, 63, 70, 37, 66, 67, 47, 69, 85, 75, 69, 59, 68, 68, 66, 97, 69, 65, 71, 44, 82, 64, 67, 71, 105, 63, 94, 64, 91, 59, 58, 66, 63, 42, 61, 49, 60, 73, 55, 65, 81, 71, 54, 69, 64, 76, 50, 57, 61, 66, 56, 66, 61, 53, 43, 49, 70, 52, 84, 58, 57, 65, 68, 63, 58, 104, 57, 51, 50, 64, 56, 78, 75, 38, 61, 58, 52, 78, 51, 66, 66, 53, 67, 68, 94, 40, 55, 55, 46, 75, 39, 63, 68, 65, 61, 52, 71, 66, 65, 52, 53, 79, 58, 68, 53, 80, 65, 55, 64, 63, 74, 63, 67, 70, 66, 60, 68, 82, 72, 73, 68, 76, 53, 58, 56, 45, 81, 55, 63, 60, 61, 55, 60, 64, 72, 46, 63, 62, 67, 76, 69, 79, 79, 70, 77, 116, 65, 31, 48, 68, 80, 62, 65, 65, 65, 59, 83, 79, 64, 49, 56, 71, 67, 88, 71, 42, 60, 65, 76, 59, 83, 59, 61, 56, 69, 69, 62, 74, 47, 66, 68, 60, 92, 72, 59, 66, 51, 99, 68, 74, 55, 53, 80, 43, 36, 66, 77, 86, 68, 47, 60, 51, 52, 71, 69, 77, 78, 65, 59, 63, 80, 75, 65, 63, 68, 64, 54, 52, 49, 63, 47, 63, 70, 117, 58, 42, 64, 61, 55, 51, 71, 61, 45, 64, 50, 39, 80, 79, 58, 51, 85, 72, 69, 60, 66, 61, 75, 58, 44, 64, 87, 82, 68, 67, 87, 58, 84, 54, 53, 83, 59, 64, 56, 65, 66, 63, 82, 66, 48, 80, 97, 55, 71, 92, 67, 75, 79, 63, 73, 70, 54, 58, 96, 58, 65, 42, 62, 56, 49, 64, 74, 90, 86, 71, 42, 66, 63, 100, 58, 55, 59, 90, 39, 56, 57, 75, 63, 63, 69, 64, 90, 54, 69, 58, 65, 63, 63, 89, 85, 62, 51, 59, 117, 111, 59, 53, 69, 134, 60, 48, 39, 78, 101, 45, 72, 46, 60, 81, 52, 65, 85, 82, 66, 56, 63, 83, 91, 56, 99, 71, 67, 73, 66, 80, 58, 119, 70, 67, 64, 64, 57, 57, 59, 47, 102, 68, 70, 86, 68, 60, 60, 51, 63, 57, 61, 57, 80, 69, 66, 62, 66, 74, 86, 44, 77, 86, 50, 68, 75, 60, 56, 200, 69, 58, 57, 49, 60, 50, 65, 47, 63, 58, 75, 68, 61, 57, 58, 51, 60, 61, 66, 64, 76, 73, 68, 43, 89, 65, 69, 69, 73, 65, 68, 62, 76, 59, 59, 65, 64, 70, 53, 96, 59, 72, 70, 67, 62, 67, 73, 44, 42, 54, 66, 61, 72, 62, 77, 88, 74, 113, 66, 78, 58, 69, 51, 60, 86, 49, 62, 59, 54, 77, 55, 56, 97, 39, 48, 46, 85, 80, 65, 78, 71, 69, 63, 54, 85, 69, 81, 57, 75, 82, 55, 86, 55, 58, 63, 60, 53, 71, 62, 76, 50, 46, 69, 78, 94, 58, 73, 61, 55, 70, 87, 68, 79, 86, 68, 63, 82, 84, 69, 88, 73, 76, 59, 72, 96, 55, 53, 84, 61, 61, 68, 94, 56, 67, 65, 77, 66, 53, 59, 41, 49, 62, 92, 70, 69, 69, 55, 63, 56, 55, 75, 42, 64, 72, 48, 94, 58, 68, 49, 45, 83, 66, 52, 77, 64, 54, 66, 72, 72, 65, 48, 72, 64, 72, 64, 44, 73, 63, 45, 51, 45, 75, 83, 93, 60, 56, 68, 52, 72, 49, 59, 65, 63, 61, 64, 61, 61, 65, 55, 80, 77, 68, 40, 63, 58, 77, 62, 53, 109, 59, 61, 58, 82, 59, 125, 68, 63, 70, 81, 64, 74, 53, 62, 61, 64, 75, 67, 90, 69, 70, 68, 79, 65, 49, 63, 88, 66, 72, 74, 64, 74, 68, 68, 70, 60, 65, 66, 66, 58, 67, 118, 50, 65, 53, 57, 59, 76, 53, 56, 64, 63, 58, 64, 65, 65, 81, 54, 43, 66, 58, 58, 69, 62, 63, 80, 67, 57, 61, 94, 71, 66, 153, 58, 50, 59, 46, 67, 67, 53, 71, 80, 69, 49, 71, 87, 64, 65, 48, 47, 70, 67, 76, 72, 70, 67, 70, 61, 81, 62, 57, 76, 67, 62, 54, 69, 72, 65, 78, 47, 71, 76, 61, 47, 59, 57, 79, 75, 55, 85, 66, 61, 60, 50, 55, 59, 56, 68, 75, 69, 63, 64, 58, 65, 71, 57, 50, 53, 68, 64, 79, 57, 61, 49, 78, 72, 64, 67, 78, 61, 50, 66, 75, 63, 67, 94, 71, 68, 53, 65, 51, 64, 64, 56, 72, 63, 49, 66, 64, 68, 71, 66, 65, 55, 70, 71, 57, 62, 65, 66, 61, 57, 66, 64, 53, 46, 57, 57, 59, 80, 54, 103, 75, 50, 57, 56, 69, 108, 74, 58, 64, 68, 59, 62, 55, 87, 69, 55, 51, 59, 78, 54, 53, 81, 84, 66, 73, 54, 77, 68, 63, 69, 68, 66, 54, 75, 58, 73, 56, 91, 61, 66, 63, 75, 67, 54, 72, 74, 55, 61, 55, 72, 59, 58, 58, 73, 75, 58, 50, 69, 44, 56, 67, 136, 52, 89, 72, 56, 83, 61, 74, 89, 65, 70, 42, 42, 51, 54, 61, 66, 72, 79, 73, 74, 55, 66, 86, 68, 53, 74, 58, 56, 65, 62, 69, 85, 52, 46, 79, 70, 79, 60, 62, 70, 70, 65, 56, 57, 64, 81, 74, 66, 56, 55, 61, 61, 70, 93, 62, 57, 66, 60, 65, 64, 63, 66, 88, 68, 72, 68, 67, 58, 78, 62, 61, 56, 72, 59, 80, 62, 61, 63, 80, 66, 70, 62, 68, 74, 64, 72, 55, 69, 54, 68, 56, 69, 58, 57, 71, 55, 76, 62, 60, 51, 55, 82, 69, 60, 61, 61, 60, 67, 94, 67, 58, 91, 51, 57, 64, 74, 61, 68, 50, 67, 72, 70, 60, 63, 86, 62, 82, 65, 58, 77, 73, 47, 59, 78, 47, 56, 80, 76, 56, 69, 62, 64, 54, 56, 68, 68, 108, 70, 80, 66, 55, 54, 69, 60, 65, 66, 66, 62, 60, 63, 72, 72, 68, 78, 61, 59, 52, 60, 66, 63, 55, 63, 62, 66, 75, 62, 72, 64, 70, 61, 69, 68, 79, 71, 73, 63, 55, 69, 54, 60, 68, 35, 56, 66, 80, 73, 71, 61, 62, 72, 67, 67, 61, 54, 60, 67, 54, 62, 76, 62, 79, 67, 72, 71, 89, 66, 55, 51, 61, 69, 70, 71, 54, 66, 73, 67, 71, 68, 56, 60, 58, 52, 64, 87, 89, 79, 54, 59, 60, 63, 46, 72, 64, 104, 59, 94, 57, 55, 81, 68, 68, 55, 65, 59, 77, 59, 79, 75, 57, 69, 52, 125, 50, 101, 41, 63, 63, 69, 56, 69, 80, 74, 59, 65, 68, 56, 57, 51, 60, 76, 68, 63, 79, 62, 93, 56, 72, 59, 57, 57, 75, 74, 62, 63, 69, 68, 79, 58, 50, 59, 70, 52, 67, 58, 68, 57, 66, 58, 57, 68, 61, 66, 73, 83, 77, 76, 56, 63, 68, 58, 71, 59, 64, 63, 68, 50, 66, 64, 77, 71, 60, 54, 56, 58, 67, 63, 68, 53, 55, 61, 54, 70, 67, 95, 70, 69, 57, 74, 71, 74, 86, 62, 145, 51, 65, 63, 72, 67, 75, 77, 64, 64, 61, 74, 69, 62, 67, 81, 69, 58, 76, 71, 58, 82, 44, 60, 65, 57, 66, 68, 54, 61, 67, 90, 75, 64, 58, 57, 54, 49, 62, 58, 65, 83, 51, 61, 61, 60, 76, 51, 81, 59, 68, 67, 49, 65, 64, 65, 62, 66, 75, 66, 44, 67, 62, 65, 88, 53, 69, 81, 60, 61, 54, 56, 71, 72, 60, 67, 87, 54, 57, 63, 62, 68, 57, 87, 55, 62, 65, 66, 64, 46, 55, 76, 52, 65, 65, 61, 49, 66, 101, 65, 53, 56, 55, 71, 62, 56, 102, 86, 60, 80, 63, 58, 65, 56, 54, 76, 52, 60, 68, 55, 58, 59, 103, 62, 67, 61, 59, 67, 60, 64, 66, 51, 47, 70, 52, 69, 70, 57, 49, 62, 59, 57, 68, 70, 74, 55, 85, 63, 84, 72, 66, 56, 58, 63, 52, 87, 58, 60, 69, 75, 56, 75, 71, 68, 71, 57, 54, 78, 58, 68, 64, 64, 62, 59, 65, 77, 61, 83, 62, 102, 60, 65, 63, 63, 56, 52, 70, 66, 62, 59, 52, 68, 62, 87, 51, 58, 71, 55, 57, 57, 50, 52, 52, 91, 63, 59, 69, 57, 61, 71, 64, 47, 69, 54, 68, 72, 57, 71, 70, 83, 59, 69, 54, 48, 68, 62, 64, 50, 58, 78, 58, 66, 68, 67, 53, 62, 60, 59, 80, 61, 59, 55, 53, 50, 66, 63, 71, 71, 69, 67, 76, 52, 69, 59, 55, 53, 56, 60, 65, 54, 58, 68, 63, 50, 58, 72, 45, 125, 56, 70, 47, 56, 83, 73, 61, 61, 56, 67, 60, 73, 61, 58, 65, 64, 57, 62, 75, 65, 57, 87, 42, 72, 81, 52, 43, 66, 69, 69, 55, 43, 82, 62, 61, 100, 47, 80, 67, 74, 61, 58, 109, 85, 91, 70, 68, 59, 63, 52, 70, 66, 72, 52, 73, 64, 56, 75, 52, 60, 67, 64, 69, 56, 53, 67, 111, 71, 70, 71, 86, 60, 89, 89, 63, 60, 42, 55, 65, 65, 69, 63, 73, 64, 60, 68, 75, 58, 94, 45, 85, 56, 73, 42, 68, 63, 78, 78, 78, 66, 73, 65, 64, 67, 56, 76, 73, 66, 72, 62, 61, 57, 61, 46, 72, 60, 81, 100, 74, 98, 64, 55, 64, 72, 74, 67, 68, 67, 74, 89, 79, 51, 75, 57, 67, 69, 68, 52, 56, 50, 79, 69, 48, 70, 75, 61, 71, 52, 53, 81, 64, 66, 83, 79, 57, 78, 66, 60, 60, 57, 96, 77, 75, 91, 48, 72, 97, 82, 50, 71, 61, 55, 74, 62, 50, 61, 62, 81, 78, 77, 48, 60, 44, 44, 78, 49, 62, 57, 85, 69, 66, 144, 64, 53, 62, 77, 61, 76, 77, 64, 69, 54, 56, 52, 64, 82, 55, 84, 64, 60, 77, 92, 58, 75, 68, 80, 105, 48, 76, 96, 50, 58, 148, 49, 61, 66, 78, 63, 82, 50, 55, 71, 62, 65, 52, 85, 73, 73, 62, 71, 74, 64, 71, 62, 61, 59, 56, 72, 75, 87, 62, 70, 77, 48, 52, 51, 92, 71, 64, 68, 65, 138, 67, 70, 79, 77, 64, 50, 52, 58, 64, 76, 55, 57, 60, 66, 58, 58, 55, 52, 57, 72, 76, 69, 55, 69, 65, 74, 46, 59, 50, 53, 71, 60, 52, 60, 68, 54, 55, 63, 43, 61, 93, 64, 80, 117, 73, 58, 76, 67, 53, 61, 53, 66, 54, 64, 77, 47, 65, 69, 77, 73, 60, 82, 65, 63, 60, 69, 40, 65, 67, 50, 76, 50, 62, 56, 65, 68, 64, 61, 62, 85, 55, 69, 59, 67, 92, 66, 59, 62, 61, 57, 58, 52, 62, 69, 80, 72, 86, 45, 96, 60, 55, 65, 101, 92, 62, 70, 69, 78, 73, 72, 59, 81, 57, 54, 76, 92, 61, 68, 57, 67, 73, 68, 59, 50, 59, 58, 60, 44, 73, 83, 63, 48, 60, 55, 68, 81, 53, 57, 44, 65, 57, 116, 67, 60, 72, 48, 73, 71, 65, 61, 79, 73, 52, 47, 65, 62, 55, 66, 88, 66, 69, 73, 57, 76, 66, 58, 68, 76, 79, 57, 81, 93, 53, 80, 59, 70, 64, 85, 75, 66, 60, 73, 65, 58, 60, 49, 72, 71, 66, 58, 59, 73, 58, 57, 77, 62, 57, 79, 69, 69, 69, 66, 53, 58, 61, 82, 48, 59, 56, 63, 56, 60, 58, 74, 59, 59, 87, 73, 66, 56, 57, 71, 65, 56, 78, 59, 48, 70, 70, 51, 88, 73, 52, 67, 77, 72, 34, 72, 50, 58, 74, 94, 87, 54, 61, 46, 55, 77, 46, 48, 69, 74, 97, 78, 67, 62, 69, 32, 71, 63, 64, 50, 55, 64, 67, 42, 91, 68, 59, 80, 46, 63, 58, 77, 58, 63, 53, 70, 52, 55, 54, 62, 90, 63, 65, 64, 67, 61, 142, 67, 61, 58, 54, 70, 61, 57, 48, 56, 63, 49, 62, 71, 65, 60, 54, 60, 65, 54, 51, 74, 51, 54, 73, 74, 74, 75, 72, 76, 42, 74, 57, 80, 61, 53, 95, 62, 64, 55, 75, 64, 52, 53, 73, 89, 58, 66, 83, 60, 54, 61, 82, 60, 52, 54, 65, 63, 68, 77, 66, 65, 43, 67, 65, 42, 75, 78, 69, 93, 63, 69, 61, 57, 89, 58, 75, 66, 76, 64, 53, 59, 79, 80, 68, 51, 78, 78, 73, 68, 86, 47, 74, 49, 66, 54, 57, 103, 69, 86, 69, 49, 65, 68, 53, 81, 70, 63, 68, 63, 74, 70, 63, 57, 43, 83, 67, 50, 63, 68, 65, 62, 59, 52, 51, 48, 58, 61, 68, 73, 91, 58, 62, 59, 58, 63, 72, 85, 66, 59, 110, 82, 59, 68, 77, 57, 66, 56, 76, 82, 59, 61, 70, 58, 66, 54, 56, 63, 42, 55, 58, 58, 97, 65, 70, 59, 68, 62, 43, 61, 67, 55, 64, 67, 68, 70, 66, 57, 71, 60, 67, 55, 72, 52, 59, 91, 75, 68, 48, 72, 74, 53, 60, 62, 60, 52, 73, 90, 52, 47, 55, 111, 39, 73, 107, 73, 109, 51, 81, 69, 71, 53, 52, 68, 75, 52, 56, 65, 62, 48, 68, 80, 53, 42, 102, 60, 43, 71, 68, 49, 64, 62, 72, 71, 77, 58, 65, 79, 66, 80, 58, 74, 68, 87, 61, 97, 70, 69, 43, 76, 84, 63, 65, 55, 77, 58, 44, 63, 47, 54, 66, 54, 57, 52, 91, 49, 66, 63, 67, 90, 64, 56, 105, 68, 47, 63, 53, 55, 58, 58, 58, 99, 83, 83, 81, 65, 79, 52, 76, 61, 57, 51, 68, 59, 63, 47, 74, 60, 53, 41, 66, 65, 74, 45, 66, 61, 64, 66, 64, 58, 58, 72, 117, 57, 71, 71, 84, 61, 76, 56, 57, 53, 72, 39, 59, 61, 73, 57, 71, 69, 67, 75, 60, 54, 69, 53, 64, 58, 70, 55, 77, 47, 74, 70, 52, 81, 64, 57, 60, 65, 61, 94, 61, 65, 105, 62, 54, 69, 72, 54, 73, 68, 67, 45, 95, 39, 64, 84, 87, 53, 69, 67, 60, 63, 83, 75, 61, 65, 58, 73, 85, 72, 75, 73, 54, 81, 68, 70, 51, 47, 70, 95, 61, 64, 51, 58, 63, 48, 80, 76, 78, 68, 54, 57, 40, 62, 67, 72, 75, 78, 67, 66, 48, 63, 46, 71, 82, 60, 60, 80, 69, 77, 67, 51, 69, 88, 58, 84, 82, 70, 51, 59, 67, 65, 55, 55, 74, 68, 35, 67, 59, 72, 63, 57, 69, 71, 75, 73, 76, 56, 62, 65, 44, 88, 85, 62, 62, 48, 87, 63, 60, 62, 55, 83, 73, 46, 60, 74, 79, 56, 59, 61, 114, 114, 62, 65, 75, 66, 89, 58, 61, 65, 48, 69, 74, 63, 73, 61, 45, 63, 108, 65, 66, 69, 61, 61, 53, 78, 61, 55, 75, 53, 72, 73, 68, 69, 74, 86, 74, 62, 69, 62, 80, 69, 36, 74, 54, 68, 84, 64, 54, 58, 42, 81, 55, 77, 47, 85, 82, 65, 69, 54, 80, 66, 60, 71, 67, 44, 88, 46, 52, 75, 58, 65, 54, 55, 69, 76, 67, 126, 59, 69, 61, 55, 77, 55, 80, 31, 57, 45, 76, 62, 63, 85, 41, 65, 91, 67, 55, 49, 40, 73, 63, 80, 69, 57, 60, 52, 74, 55, 76, 60, 99, 65, 69, 60, 77, 61, 77, 93, 51, 62, 60, 67, 62, 67, 72, 60, 59, 52, 62, 88, 62, 91, 110, 47, 64, 55, 34, 75, 56, 62, 79, 75, 62, 56, 80, 77, 40, 62, 66, 54, 104, 77, 70, 70, 66, 56, 109, 66, 78, 66, 58, 55, 55, 80, 85, 61, 65, 108, 61, 74, 65, 66, 40, 76, 66, 64, 47, 60, 73, 68, 52, 57, 67, 54, 39, 86, 69, 49, 63, 72, 72, 98, 74, 33, 38, 46, 54, 58, 86, 63, 113, 66, 73, 70, 80, 61, 64, 63, 77, 58, 49, 54, 56, 50, 45, 49, 60, 63, 75, 61, 66, 65, 65, 61, 66, 70, 50, 51, 73, 47, 63, 62, 78, 84, 70, 67, 53, 67, 73, 62, 73, 53, 43, 62, 76, 74, 57, 77, 42, 81, 66, 67, 63, 74, 56, 65, 108, 75, 52, 68, 36, 41, 68, 61, 65, 73, 99, 68, 49, 58, 61, 59, 61, 67, 72, 75, 94, 58, 65, 67, 57, 60, 57, 63, 67, 64, 126, 56, 48, 35, 112, 52, 48, 81, 90, 50, 82, 51, 108, 57, 53, 85, 73, 76, 72, 106, 49, 66, 64, 56, 77, 57, 78, 59, 71, 65, 63, 67, 85, 73, 63, 70, 74, 53, 81, 55, 72, 55, 84, 66, 80, 71, 64, 50, 62, 66, 50, 77, 82, 56, 71, 96, 53, 63, 57, 68, 57, 76, 64, 74, 61, 58, 64, 70, 64, 62, 71, 31, 68, 62, 59, 82, 63, 57, 65, 53, 48, 52, 80, 63, 60, 78, 81, 53, 56, 65, 57, 65, 74, 75, 69, 61, 68, 68, 60, 56, 64, 76, 104, 42, 59, 79, 50, 66, 48, 56, 87, 80, 79, 50, 77, 63, 64, 87, 77, 75, 42, 71, 83, 64, 101, 71, 69, 70, 73, 83, 62, 103, 73, 62, 65, 66, 61, 69, 55, 75, 100, 52, 87, 59, 72, 72, 58, 54, 63, 82, 84, 56, 65, 64, 45, 45, 53, 66, 55, 100, 49, 60, 72, 74, 85, 54, 66, 54, 49, 60, 68, 54, 73, 56, 72, 70, 50, 59, 76, 74, 58, 64, 57, 63, 80, 47, 58, 74, 59, 63, 74, 58, 45, 53, 75, 53, 62, 44, 49, 93, 44, 57, 60, 70, 60, 80, 38, 132, 86, 46, 75, 58, 88, 90, 75, 66, 65, 59, 57, 60, 80, 62, 67, 127, 55, 58, 53, 65, 69, 75, 51, 71, 69, 61, 59, 50, 79, 75, 60, 65, 94, 70, 76, 71, 76, 140, 64, 74, 63, 75, 66, 65, 57, 58, 69, 49, 78, 47, 73, 76, 61, 66, 43, 66, 52, 61, 75, 71, 52, 97, 50, 60, 65, 70, 48, 70, 87, 67, 42, 47, 59, 72, 72, 72, 52, 77, 41, 55, 60, 77, 60, 59, 79, 75, 75, 50, 59, 66, 75, 54, 50, 49, 64, 72, 72, 41, 57, 73, 58, 73, 75, 75, 83, 74, 85, 57, 91, 56, 61, 59, 71, 72, 94, 75, 66, 75, 67, 69, 80, 69, 68, 61, 73, 41, 85, 68, 70, 81, 55, 60, 55, 59, 55, 58, 61, 47, 63, 73, 55, 77, 72, 90, 80, 71, 54, 45, 98, 51, 51, 88, 56, 59, 56, 98, 48, 74, 67, 92, 66, 61, 63, 52, 48, 47, 101, 70, 82, 80, 71, 55, 74, 61, 57, 67, 72, 73, 64, 51, 70, 89, 39, 60, 76, 74, 65, 62, 47, 74, 61, 66, 53, 73, 56, 56, 31, 49, 49, 61, 65, 84, 90, 69, 88, 82, 66, 79, 48, 76, 53, 78, 51, 51, 69, 90, 62, 76, 67, 82, 68, 130, 85, 35, 72, 60, 71, 73, 60, 59, 74, 60, 83, 85, 52, 67, 81, 58, 71, 72, 58, 60, 79, 64, 85, 56, 137, 54, 69, 66, 71, 63, 60, 81, 44, 75, 54, 58, 92, 64, 54, 75, 50, 68, 62, 45, 65, 65, 74, 61, 59, 62, 66, 68, 67, 79, 48, 86, 53, 64, 127, 61, 99, 52, 56, 37, 61, 70, 49, 49, 85, 71, 59, 90, 86, 72, 70, 62, 56, 39, 59, 60, 61, 52, 52, 68, 53, 72, 70, 62, 68, 62, 77, 65, 58, 66, 78, 68, 54, 59, 65, 67, 100, 72, 100, 50, 80, 61, 73, 58, 74, 50, 63, 71, 44, 49, 58, 63, 103, 100, 60, 86, 68, 83, 100, 47, 106, 57, 87, 82, 61, 50, 75, 79, 57, 49, 79, 82, 67, 56, 60, 49, 73, 55, 64, 46, 70, 40, 65, 57, 72, 47, 79, 70, 73, 53, 72, 47, 71, 82, 59, 71, 81, 87, 60, 69, 57, 45, 49, 70, 43, 58, 54, 63, 74, 63, 56, 72, 70, 51, 67, 66, 40, 41, 51, 85, 75, 44, 63, 61, 117, 59, 69, 80, 49, 92, 100, 67, 60, 92, 82, 51, 55, 49, 92, 62, 79, 63, 49, 82, 51, 84, 54, 61, 73, 92, 98, 76, 64, 50, 61, 49, 57, 76, 79, 47, 70, 66, 85, 86, 56, 56, 47, 65, 62, 58, 74, 56, 56, 52, 57, 59, 63, 64, 53, 52, 62, 59, 49, 44, 58, 65, 77, 60, 74, 47, 65, 75, 68, 55, 75, 72, 53, 84, 66, 82, 93, 58, 65, 55, 80, 65, 58, 63, 78, 53, 61, 71, 51, 65, 47, 99, 58, 65, 51, 43, 71, 127, 73, 58, 52, 57, 65, 52, 83, 35, 65, 57, 62, 62, 51, 46, 75, 57, 49, 89, 64, 75, 67, 110, 95, 61, 48, 106, 63, 56, 130, 38, 61, 62, 82, 84, 64, 60, 44, 66, 52, 65, 62, 46, 95, 59, 57, 53, 54, 46, 56, 70, 58, 51, 41, 55, 58, 59, 62, 58, 66, 57, 53, 60, 61, 68, 70, 50, 90, 73, 69, 58, 69, 64, 57, 62, 60, 47, 95, 73, 78, 53, 71, 61, 51, 73, 53, 90, 82, 64, 92, 74, 70, 86, 57, 62, 58, 72, 55, 75, 94, 111, 48, 54, 75, 52, 52, 45, 60, 87, 79, 59, 68, 59, 109, 50, 72, 67, 49, 81, 57, 38, 71, 54, 89, 57, 46, 77, 64, 79, 75, 64, 59, 82, 66, 67, 88, 57, 79, 69, 74, 87, 67, 46, 88, 62, 126, 59, 57, 57, 80, 65, 69, 55, 32, 44, 62, 63, 56, 85, 86, 57, 51, 70, 66, 62, 64, 74, 53, 73, 72, 59, 76, 63, 102, 52, 81, 75, 78, 79, 48, 70, 92, 46, 77, 78, 69, 55, 71, 74, 53, 51, 66, 61, 72, 104, 77, 73, 59, 83, 56, 56, 69, 74, 84, 86, 68, 81, 58, 85, 80, 68, 50, 59, 73, 51, 66, 77, 74, 51, 43, 88, 81, 50, 52, 68, 83, 65, 47, 40, 60, 69, 52, 66, 55, 67, 56, 65, 63, 75, 71, 73, 96, 66, 81, 45, 83, 79, 81, 49, 56, 60, 76, 66, 31, 74, 83, 77, 96, 72, 77, 86, 56, 58, 62, 91, 66, 65, 64, 52, 75, 53, 58, 42, 39, 88, 74, 51, 65, 54, 59, 59, 49, 65, 79, 57, 139, 33, 61, 65, 64, 109, 76, 49, 83, 47, 98, 51, 66, 71, 49, 69, 73, 66, 68, 64, 67, 73, 50, 56, 63, 61, 66, 106, 68, 52, 92, 100, 89, 69, 54, 48, 56, 52, 62, 71, 44, 51, 56, 60, 64, 72, 74, 66, 79, 52, 54, 29, 77, 53, 66, 60, 57, 65, 61, 82, 67, 82, 68, 44, 79, 60, 71, 51, 64, 64, 69, 68, 65, 80, 81, 63, 60, 39, 72, 34, 73, 67, 60, 75, 91, 52, 72, 63, 61, 74, 37, 51, 76, 49, 39, 40, 54, 90, 60, 65, 60, 73, 48, 87, 93, 69, 51, 27, 57, 48, 75, 55, 45, 64, 44, 44, 31, 57, 134, 85, 56, 42, 81, 64, 38, 82, 60, 62, 80, 65, 57, 73, 41, 69, 51, 70, 74, 64, 63, 84, 57, 54, 86, 58, 58, 70, 74, 81, 56, 74, 79, 74, 72, 68, 65, 68, 79, 57, 67, 59, 93, 75, 63, 54, 90, 80, 57, 65, 50, 90, 60, 63, 65, 83, 70, 48, 68, 70, 61, 63, 58, 67, 61, 46, 64, 56, 39, 91, 65, 68, 51, 56, 83, 45, 61, 55, 53, 63, 59, 50, 47, 72, 61, 120, 44, 89, 92, 61, 54, 63, 92, 63, 81, 61, 63, 84, 65, 49, 79, 68, 84, 67, 58, 47, 76, 68, 57, 45, 82, 87, 84, 55, 40, 60, 49, 80, 63, 66, 66, 67, 60, 53, 81, 87, 66, 56, 90, 42, 43, 60, 51, 68, 50, 62, 55, 58, 76, 73, 70, 59, 50, 50, 62, 82, 50, 76, 62, 65, 74, 98, 53, 85, 76, 58, 62, 65, 55, 88, 65, 65, 70, 92, 48, 66, 78, 70, 118, 68, 73, 52, 46, 64, 92, 75, 49, 66, 67, 76, 55, 74, 55, 73, 85, 64, 71, 70, 78, 49, 84, 65, 57, 75, 42, 46, 61, 72, 42, 46, 52, 71, 59, 88, 96, 57, 61, 75, 54, 63, 77, 78, 55, 77, 125, 80, 106, 70, 52, 54, 49, 58, 67, 66, 81, 66, 69, 51, 54, 61, 121, 64, 54, 61, 51, 82, 111, 60, 87, 70, 60, 71, 58, 57, 104, 43, 68, 45, 50, 42, 63, 72, 62, 58, 58, 72, 61, 69, 67, 60, 68, 69, 65, 68, 74, 48, 59, 64, 75, 53, 78, 52, 41, 65, 77, 65, 70, 55, 75, 64, 74, 49, 94, 66, 63, 118, 81, 64, 73, 64, 61, 56, 69, 49, 84, 69, 54, 70, 83, 93, 89, 73, 66, 54, 62, 58, 72, 67, 85, 61, 68, 51, 79, 56, 69, 76, 53, 55, 48, 88, 72, 64, 62, 79, 43, 64, 80, 53, 69, 71, 86, 64, 60, 63, 56, 91, 61, 64, 73, 80, 79, 53, 62, 82, 75, 59, 62, 87, 97, 58, 80, 87, 74, 74, 68, 55, 62, 74, 56, 89, 79, 62, 65, 65, 76, 58, 88, 69, 58, 56, 61, 69, 76, 68, 60, 63, 65, 52, 79, 69, 55, 50, 42, 73, 120, 59, 77, 85, 58, 59, 46, 41, 64, 68, 81, 48, 57, 67, 81, 59, 59, 69, 63, 58, 69, 77, 67, 63, 64, 75, 59, 52, 88, 77, 50, 61, 57, 68, 65, 35, 76, 69, 62, 70, 59, 82, 80, 76, 71, 70, 65, 60, 63, 59, 65, 42, 49, 49, 65, 69, 60, 56, 56, 88, 110, 74, 48, 53, 73, 48, 67, 55, 74, 73, 55, 50, 60, 62, 54, 67, 72, 51, 51, 67, 64, 67, 70, 40, 76, 55, 66, 74, 37, 70, 75, 63, 43, 58, 43, 36, 93, 52, 119, 70, 79, 49, 76, 61, 102, 61, 68, 54, 75, 63, 45, 60, 80, 43, 65, 47, 74, 74, 52, 75, 54, 61, 42, 66, 45, 58, 53, 59, 60, 50, 59, 83, 51, 85, 68, 48, 59, 49, 64, 80, 85, 53, 76, 96, 56, 95, 65, 123, 109, 90, 58, 56, 86, 48, 62, 69, 47, 89, 72, 29, 105, 79, 76, 57, 92, 54, 49, 65, 95, 68, 51, 64, 85, 69, 68, 80, 68, 87, 72, 72, 76, 57, 70, 68, 57, 113, 42, 72, 48, 58, 59, 45, 49, 68, 54, 65, 69, 44, 73, 59, 91, 138, 82, 67, 81, 94, 50, 94, 51, 35, 52, 49, 52, 55, 58, 75, 60, 46, 37, 62, 62, 57, 45, 84, 82, 79, 66, 83, 104, 77, 69, 82, 59, 43, 53, 70, 62, 53, 88, 56, 59, 97, 48, 56, 65, 68, 72, 64, 63, 53, 76, 62, 83, 152, 66, 69, 55, 48, 87, 58, 78, 59, 48, 74, 47, 66, 55, 56, 64, 65, 83, 62, 53, 41, 52, 82, 50, 64, 75, 59, 45, 69, 69, 71, 89, 50, 78, 68, 85, 57, 70, 63, 73, 72, 103, 42, 66, 107, 92, 85, 69, 58, 67, 54, 38, 69, 86, 72, 51, 69, 64, 58, 44, 52, 80, 61, 113, 110, 70, 56, 73, 80, 49, 66, 92, 83, 54, 83, 51, 76, 51, 45, 47, 95, 76, 67, 58, 82, 44, 47, 62, 72, 70, 53, 71, 72, 54, 50, 89, 53, 56, 161, 58, 80, 57, 80, 61, 44, 62, 66, 77, 46, 87, 70, 78, 59, 84, 62, 63, 80, 51, 63, 68, 52, 97, 51, 64, 76, 57, 55, 73, 58, 68, 70, 79, 78, 64, 94, 45, 61, 60, 62, 71, 94, 68, 89, 74, 95, 54, 63, 55, 59, 100, 48, 80, 68, 64, 60, 79, 60, 102, 66, 56, 59, 62, 99, 64, 119, 63, 61, 77, 54, 71, 65, 68, 72, 46, 47, 71, 45, 78, 79, 70, 73, 63, 55, 98, 73, 56, 62, 47, 63, 62, 49, 70, 66, 89, 88, 46, 48, 65, 59, 54, 155, 53, 60, 60, 65, 83, 57, 42, 48, 67, 59, 79, 75, 71, 72, 43, 58, 63, 57, 57, 65, 53, 59, 94, 63, 74, 71, 66, 53, 52, 76, 59, 72, 75, 45, 72, 79, 62, 50, 63, 69, 89, 65, 62, 76, 86, 62, 54, 71, 41, 50, 47, 67, 86, 61, 82, 75, 59, 66, 78, 58, 58, 53, 57, 70, 72, 71, 55, 44, 59, 57, 58, 57, 77, 62, 72, 68, 60, 54, 68, 80, 59, 70, 45, 69, 79, 84, 75, 72, 79, 68, 60, 81, 67, 57, 55, 53, 65, 64, 69, 57, 90, 65, 58, 75, 58, 69, 68, 79, 67, 65, 98, 81, 76, 72, 72, 67, 63, 44, 78, 56, 71, 50, 72, 61, 71, 65, 66, 76, 70, 65, 57, 59, 62, 49, 69, 48, 85, 74, 60, 55, 34, 76, 65, 52, 67, 62, 50, 40, 84, 51, 72, 66, 84, 84, 62, 59, 54, 65, 76, 68, 64, 54, 53, 59, 69, 86, 76, 63, 91, 46, 110, 67, 65, 69, 61, 75, 59, 58, 58, 65, 52, 73, 69, 57, 55, 54, 59, 86, 67, 71, 88, 59, 60, 73, 53, 63, 70, 58, 56, 66, 62, 54, 49, 89, 67, 67, 64, 56, 80, 64, 51, 58, 81, 78, 93, 54, 44, 65, 61, 80, 80, 55, 60, 66, 63, 54, 61, 86, 57, 74, 70, 71, 75, 57, 53, 59, 70, 74, 63, 145, 64, 80, 58, 57, 49, 75, 66, 92, 59, 61, 66, 43, 48, 71, 64, 60, 74, 51, 69, 61, 51, 46, 112, 61, 81, 84, 58, 66, 68, 83, 59, 89, 52, 89, 76, 106, 64, 58, 58, 80, 61, 151, 54, 66, 69, 57, 42, 61, 48, 60, 59, 80, 45, 57, 64, 70, 52, 95, 81, 63, 54, 57, 60, 58, 49, 55, 76, 54, 61, 69, 72, 52, 52, 66, 76, 63, 53, 55, 72, 70, 72, 56, 59, 64, 77, 60, 56, 53, 74, 85, 57, 61, 65, 59, 60, 73, 78, 68, 68, 76, 66, 66, 63, 50, 48, 63, 76, 63, 65, 51, 72, 60, 55, 78, 80, 69, 45, 67, 72, 54, 56, 82, 68, 87, 113, 55, 58, 52, 81, 53, 68, 74, 49, 68, 56, 85, 104, 45, 58, 63, 73, 65, 78, 69, 57, 67, 70, 63, 66, 69, 59, 60, 64, 86, 53, 50, 55, 50, 28, 51, 57, 70, 68, 55, 53, 43, 91, 69, 65, 62, 72, 70, 57, 51, 62, 72, 74, 70, 75, 70, 47, 72, 48, 58, 89, 65, 47, 68, 68, 79, 65, 70, 76, 80, 78, 70, 57, 75, 68, 72, 68, 51, 69, 43, 65, 32, 66, 64, 48, 63, 69, 53, 49, 56, 72, 78, 57, 74, 84, 85, 63, 62, 56, 78, 45, 53, 74, 65, 54, 70, 76, 72, 117, 61, 57, 63, 23, 62, 94, 66, 68, 56, 63, 58, 71, 70, 71, 64, 73, 59, 64, 43, 61, 82, 79, 79, 78, 71, 69, 64, 64, 98, 69, 74, 62, 81, 78, 67, 64, 50, 76, 56, 62, 39, 90, 74, 52, 53, 65, 63, 86, 48, 60, 47, 68, 64, 105, 47, 52, 57, 52, 62, 87, 55, 47, 68, 61, 106, 81, 55, 67, 73, 69, 51, 114, 53, 84, 58, 78, 65, 55, 62, 61, 54, 68, 52, 68, 50, 66, 68, 69, 55, 86, 86, 60, 43, 78, 63, 72, 68, 53, 64, 79, 62, 60, 107, 38, 91, 62, 66, 85, 57, 60, 59, 70, 65, 44, 59, 81, 53, 68, 89, 104, 53, 80, 55, 66, 82, 65, 61, 44, 74, 56, 69, 53, 66, 59, 79, 64, 54, 62, 97, 65, 48, 59, 58, 62, 78, 94, 70, 74, 120, 58, 60, 56, 58, 52, 55, 70, 45, 59, 66, 64, 70, 73, 59, 64, 53, 53, 70, 60, 59, 47, 56, 60, 63, 52, 50, 67, 81, 106, 77, 81, 69, 64, 60, 66, 65, 86, 71, 64, 61, 68, 80, 59, 75, 37, 77, 83, 111, 83, 52, 54, 116, 87, 83, 53, 44, 50, 80, 122, 72, 67, 70, 68, 72, 89, 58, 46, 82, 70, 60, 77, 67, 84, 81, 64, 53, 77, 70, 59, 63, 78, 57, 54, 58, 71, 73, 57, 80, 64, 69, 145, 80, 56, 58, 68, 55, 68, 38, 68, 43, 77, 53, 66, 66, 64, 48, 60, 84, 79, 52, 77, 50, 62, 48, 48, 70, 72, 66, 55, 73, 69, 75, 81, 73, 79, 37, 67, 64, 76, 50, 74, 47, 74, 56, 63, 58, 94, 61, 68, 73, 78, 54, 64, 75, 72, 70, 67, 58, 59, 63, 68, 64, 65, 57, 59, 63, 68, 54, 69, 58, 61, 69, 76, 48, 59, 53, 63, 65, 72, 67, 45, 89, 60, 63, 78, 99, 107, 62, 71, 64, 79, 116, 61, 82, 70, 51, 57, 58, 80, 73, 57, 49, 83, 58, 63, 75, 65, 57, 57, 59, 78, 87, 46, 73, 80, 58, 62, 84, 110, 44, 47, 59, 74, 57, 76, 65, 72, 73, 58, 58, 57, 71, 57, 71, 59, 59, 67, 61, 57, 46, 83, 64, 120, 72, 66, 69, 80, 68, 57, 51, 61, 52, 93, 123, 86, 69, 76, 50, 56, 51, 63, 76, 63, 85, 58, 43, 116, 47, 79, 43, 104, 56, 52, 57, 75, 65, 67, 73, 80, 58, 69, 76, 64, 69, 74, 81, 56, 87, 71, 85, 75, 60, 79, 77, 75, 55, 85, 65, 58, 78, 68, 68, 68, 79, 56, 67, 80, 57, 94, 70, 43, 65, 84, 58, 50, 63, 86, 66, 53, 45, 64, 63, 58, 62, 64, 69, 74, 66, 57, 65, 63, 64, 82, 55, 53, 64, 68, 95, 66, 80, 55, 78, 56, 59, 73, 66, 51, 87, 72, 61, 77, 56, 67, 73, 68, 107, 76, 55, 60, 67, 65, 54, 61, 68, 71, 42, 53, 65, 83, 69, 63, 56, 106, 61, 60, 60, 58, 64, 40, 73, 64, 68, 76, 62, 71, 76, 63, 70, 54, 73, 52, 57, 75, 68, 48, 61, 66, 73, 57, 134, 74, 55, 83, 87, 69, 63, 50, 62, 63, 78, 74, 61, 79, 67, 50, 98, 71, 68, 68, 56, 61, 62, 67, 45, 57, 75, 46, 64, 69, 85, 69, 144, 75, 81, 57, 66, 54, 45, 66, 54, 53, 68, 78, 64, 72, 67, 54, 56, 69, 64, 57, 75, 68, 84, 102, 86, 71, 55, 68, 55, 62, 53, 70, 91, 72, 70, 62, 60, 65, 122, 55, 70, 44, 75, 46, 77, 72, 74, 58, 55, 65, 47, 89, 61, 80, 79, 87, 95, 62, 88, 95, 76, 68, 83, 56, 49, 57, 66, 70, 80, 71, 50, 93, 72, 63, 55, 65, 55, 69, 66, 62, 63, 59, 63, 65, 49, 69, 70, 73, 68, 83, 68, 96, 60, 71, 58, 65, 65, 53, 82, 57, 78, 57, 62, 52, 68, 67, 52, 53, 55, 76, 62, 62, 91, 76, 64, 48, 70, 64, 66, 65, 104, 91, 87, 66, 62, 45, 85, 46, 53, 69, 71, 72, 68, 65, 50, 62, 83, 59, 71, 59, 68, 65, 67, 60, 76, 55, 56, 51, 116, 57, 51, 73, 56, 58, 81, 70, 80, 76, 83, 88, 72, 55, 49, 71, 64, 77, 62, 78, 66, 76, 79, 70, 54, 61, 70, 50, 53, 59, 64, 77, 67, 63, 62, 88, 65, 65, 75, 67, 59, 56, 59, 66, 68, 51, 89, 60, 67, 62, 52, 71, 58, 70, 59, 59, 62, 52, 51, 49, 67, 57, 61, 64, 71, 52, 66, 80, 75, 66, 66, 69, 62, 63, 69, 68, 81, 56, 116, 46, 76, 66, 48, 55, 56, 66, 69, 77, 61, 55, 50, 54, 62, 60, 59, 68, 60, 63, 59, 63, 65, 66, 61, 73, 57, 52, 71, 59, 86, 76, 69, 66, 65, 75, 70, 62, 61, 66, 65, 58, 58, 59, 46, 68, 51, 62, 80, 58, 70, 80, 55, 63, 68, 91, 84, 59, 61, 68, 61, 53, 71, 64, 67, 65, 54, 73, 56, 82, 59, 61, 72, 67, 55, 59, 79, 69, 72, 55, 59, 60, 69, 54, 72, 64, 55, 69, 81, 73, 61, 73, 80, 69, 72, 51, 57, 55, 48, 55, 53, 59, 74, 76, 63, 90, 78, 50, 56, 63, 74, 67, 64, 72, 73, 68, 52, 61, 68, 51, 74, 95, 74, 65, 61, 62, 65, 48, 61, 58, 44, 78, 58, 68, 53, 63, 66, 59, 68, 57, 122, 46, 65, 68, 54, 91, 69, 53, 78, 53, 65, 70, 60, 54, 61, 60, 64, 70, 65, 54, 61, 84, 55, 76, 65, 59, 75, 52, 76, 74, 67, 54, 55, 62, 63, 73, 71, 51, 67, 88, 93, 54, 71, 53, 60, 69, 61, 85, 63, 64, 62, 83, 55, 60, 79, 76, 59, 66, 75, 73, 63, 79, 61, 75, 69, 75, 72, 60, 78, 65, 50, 63, 92, 49, 64, 80, 58, 65, 74, 67, 60, 52, 64, 53, 44, 61, 70, 73, 77, 67, 59, 74, 59, 97, 69, 65, 64, 45, 75, 61, 81, 50, 64, 58, 57, 58, 64, 69, 61, 62, 76, 62, 62, 75, 58, 51, 88, 57, 43, 66, 51, 59, 46, 58, 69, 65, 77, 60, 76, 46, 78, 66, 57, 81, 64, 41, 88, 61, 62, 61, 75, 62, 57, 128, 66, 62, 70, 57, 67, 75, 78, 34, 57, 69, 71, 68, 84, 46, 42, 82, 44, 64, 122, 73, 49, 75, 64, 71, 61, 49, 62, 77, 71, 76, 50, 83, 67, 50, 56, 58, 66, 71, 49, 98, 64, 72, 56, 49, 58, 102, 79, 91, 53, 55, 68, 51, 55, 62, 80, 63, 143, 81, 57, 60, 57, 63, 77, 83, 65, 76, 59, 47, 59, 63, 53, 67, 68, 65, 70, 71, 77, 55, 70, 101, 78, 80, 104, 83, 60, 65, 62, 59, 44, 59, 80, 56, 55, 71, 98, 76, 63, 73, 82, 52, 59, 57, 76, 66, 59, 60, 72, 67, 55, 57, 87, 64, 46, 55, 84, 62, 60, 61, 70, 73, 62, 51, 92, 53, 58, 96, 44, 53, 63, 70, 66, 59, 72, 70, 59, 59, 76, 60, 69, 69, 96, 76, 72, 67, 51, 71, 59, 55, 75, 65, 55, 66, 75, 68, 61, 44, 79, 70, 58, 63, 91, 70, 71, 70, 61, 65, 66, 54, 72, 94, 64, 69, 59, 68, 53, 64, 62, 89, 55, 66, 68, 79, 58, 65, 57, 62, 78, 81, 57, 95, 67, 80, 83, 50, 67, 55, 74, 76, 68, 79, 72, 62, 81, 75, 56, 64, 72, 80, 44, 50, 50, 64, 61, 69, 57, 57, 61, 55, 68, 58, 58, 60, 66, 54, 57, 74, 68, 55, 77, 61, 68, 70, 81, 77, 69, 65, 69, 80, 79, 53, 61, 71, 55, 72, 55, 62, 50, 56, 59, 79, 70, 55, 57, 59, 64, 59, 72, 67, 61, 62, 93, 54, 69, 66, 70, 62, 55, 55, 68, 72, 71, 59, 56, 59, 56, 45, 53, 65, 64, 84, 55, 67, 66, 73, 66, 68, 60, 117, 65, 58, 63, 57, 50, 82, 52, 67, 64, 69, 67, 76, 63, 57, 49, 51, 61, 41, 52, 59, 81, 66, 68, 63, 56, 88, 64, 42, 76, 62, 61, 61, 52, 47, 60, 63, 74, 79, 62, 70, 61, 59, 40, 51, 59, 58, 49, 75, 64, 68, 60, 62, 77, 66, 60, 59, 57, 46, 55, 58, 67, 54, 81, 69, 76, 61, 61, 58, 102, 63, 82, 70, 52, 57, 98, 71, 73, 77, 75, 63, 64, 53, 51, 82, 46, 58, 60, 67, 64, 78, 95, 39, 58, 70, 78, 69, 71, 75, 42, 71, 41, 145, 48, 58, 74, 46, 61, 73, 62, 45, 55, 69, 60, 67, 61, 93, 54, 65, 55, 79, 76, 61, 60, 59, 58, 77, 61, 52, 43, 73, 63, 66, 69, 58, 43, 71, 61, 71, 60, 45, 71, 68, 84, 67, 61, 49, 56, 60, 63, 96, 86, 63, 62, 62, 70, 73, 75, 58, 46, 32, 46, 89, 62, 76, 52, 79, 55, 57, 63, 72, 56, 72, 68, 59, 70, 57, 79, 59, 63, 42, 57, 48, 52, 78, 103, 63, 65, 75, 62, 58, 73, 71, 52, 53, 69, 68, 71, 68, 50, 65, 78, 51, 61, 66, 48, 59, 63, 59, 69, 48, 56, 93, 58, 39, 41, 83, 74, 55, 47, 58, 72, 62, 81, 78, 63, 51, 80, 49, 48, 59, 79, 70, 58, 73, 65, 54, 76, 64, 71, 66, 57, 59, 69, 79, 59, 69, 50, 107, 47, 61, 78, 68, 73, 64, 51, 59, 82, 64, 66, 69, 48, 97, 91, 52, 54, 59, 55, 71, 55, 35, 57, 56, 80, 68, 62, 69, 74, 47, 75, 52, 60, 62, 70, 61, 82, 82, 65, 71, 57, 72, 62, 61, 47, 61, 61, 71, 60, 59, 62, 62, 64, 65, 47, 81, 79, 54, 58, 93, 57, 53, 76, 76, 56, 58, 57, 57, 97, 69, 78, 62, 62, 67, 65, 64, 65, 61, 65, 64, 70, 61, 74, 69, 60, 49, 52, 52, 93, 67, 64, 95, 36, 47, 53, 58, 71, 78, 119, 59, 55, 72, 57, 63, 70, 111, 77, 65, 51, 74, 55, 77, 65, 62, 61, 46, 64, 69, 62, 69, 52, 50, 80, 68, 54, 78, 55, 59, 87, 60, 116, 67, 84, 76, 64, 83, 60, 66, 65, 48, 64, 64, 62, 72, 86, 82, 68, 65, 54, 61, 62, 66, 68, 58, 73, 73, 55, 63, 52, 81, 67, 57, 75, 82, 105, 59, 54, 73, 59, 58, 61, 108, 56, 61, 61, 58, 83, 49, 94, 77, 72, 62, 50, 51, 57, 89, 58, 55, 59, 86, 56, 57, 76, 49, 70, 69, 89, 45, 120, 58, 72, 60, 69, 58, 62, 75, 74, 55, 70, 64, 59, 63, 68, 73, 70, 95, 71, 60, 49, 66, 53, 96, 58, 52, 55, 78, 52, 67, 60, 54, 58, 124, 70, 75, 69, 73, 62, 58, 62, 72, 73, 53, 50, 60, 50, 60, 58, 64, 61, 78, 69, 75, 70, 75, 72, 76, 63, 38, 57, 116, 52, 50, 117, 73, 52, 72, 59, 50, 50, 57, 76, 55, 50, 66, 67, 57, 91, 44, 69, 55, 60, 56, 76, 60, 59, 67, 49, 40, 86, 70, 44, 74, 52, 92, 64, 86, 50, 73, 84, 77, 67, 108, 68, 55, 63, 72, 78, 62, 81, 59, 69, 70, 73, 49, 71, 77, 69, 58, 60, 54, 64, 56, 82, 85, 62, 37, 47, 91, 50, 48, 46, 71, 62, 74, 52, 34, 57, 61, 68, 86, 89, 69, 75, 79, 70, 78, 54, 63, 103, 78, 53, 54, 64, 61, 68, 39, 63, 63, 56, 52, 115, 80, 81, 73, 86, 52, 61, 63, 73, 57, 45, 52, 60, 56, 66, 78, 63, 96, 61, 66, 52, 48, 46, 66, 59, 57, 97, 65, 56, 64, 91, 57, 60, 56, 46, 65, 64, 60, 57, 58, 61, 77, 59, 46, 62, 61, 71, 60, 50, 64, 52, 80, 49, 56, 68, 51, 64, 55, 73, 95, 51, 74, 60, 70, 68, 84, 54, 71, 58, 52, 83, 66, 65, 34, 55, 81, 76, 87, 53, 90, 71, 78, 52, 80, 51, 80, 55, 89, 70, 60, 69, 49, 91, 77, 69, 76, 50, 56, 62, 77, 57, 65, 80, 62, 61, 67, 57, 66, 66, 74, 64, 89, 43, 53, 64, 63, 73, 59, 73, 97, 58, 59, 48, 54, 45, 118, 63, 76, 61, 79, 47, 70, 66, 88, 66, 99, 65, 82, 48, 71, 77, 70, 72, 45, 56, 50, 68, 46, 150, 42, 62, 71, 60, 62, 72, 59, 55, 76, 46, 48, 79, 82, 51, 77, 75, 44, 73, 54, 72, 64, 69, 62, 62, 58, 89, 55, 68, 53, 46, 109, 67, 100, 65, 70, 49, 48, 72, 45, 70, 59, 67, 53, 64, 67, 94, 89, 65, 51, 54, 61, 56, 66, 53, 63, 72, 68, 74, 77, 66, 55, 63, 62, 63, 83, 68, 59, 85, 88, 85, 63, 81, 63, 39, 95, 48, 76, 60, 38, 116, 58, 60, 62, 61, 51, 52, 71, 54, 63, 66, 84, 59, 63, 51, 66, 64, 70, 61, 79, 49, 98, 58, 64, 80, 71, 83, 68, 50, 55, 55, 62, 75, 58, 57, 72, 66, 52, 54, 54, 61, 61, 82, 63, 48, 63, 68, 31, 48, 59, 81, 118, 90, 63, 49, 60, 65, 61, 91, 65, 43, 74, 72, 86, 63, 66, 83, 70, 50, 90, 59, 54, 68, 63, 73, 81, 49, 42, 59, 52, 66, 67, 80, 82, 64, 86, 56, 56, 53, 61, 75, 59, 53, 77, 68, 58, 52, 99, 65, 67, 57, 79, 47, 70, 79, 72, 91, 69, 74, 74, 54, 58, 73, 72, 68, 60, 81, 99, 59, 61, 64, 78, 64, 52, 45, 53, 76, 69, 80, 70, 50, 71, 49, 138, 62, 47, 51, 48, 74, 57, 60, 56, 73, 49, 63, 59, 79, 79, 57, 53, 67, 79, 65, 59, 59, 67, 74, 77, 76, 67, 74, 69, 83, 49, 59, 73, 65, 81, 109, 119, 66, 62, 90, 50, 68, 59, 74, 69, 59, 65, 81, 69, 65, 45, 70, 58, 50, 46, 56, 77, 62, 69, 72, 72, 70, 68, 76, 46, 56, 49, 50, 61, 80, 68, 62, 54, 79, 59, 72, 52, 72, 83, 58, 79, 38, 72, 67, 84, 50, 62, 60, 52, 74, 57, 86, 67, 70, 83, 70, 57, 72, 83, 33, 70, 45, 95, 115, 51, 57, 60, 65, 66, 47, 57, 95, 90, 72, 79, 56, 56, 59, 65, 57, 79, 42, 55, 69, 59, 60, 70, 47, 95, 68, 55, 66, 78, 69, 58, 56, 49, 58, 101, 55, 71, 39, 106, 61, 70, 84, 62, 56, 106, 71, 90, 70, 42, 66, 86, 48, 52, 97, 87, 69, 79, 57, 71, 70, 45, 77, 51, 67, 96, 38, 41, 70, 67, 54, 55, 54, 66, 58, 54, 66, 66, 76, 57, 102, 69, 75, 63, 59, 76, 66, 156, 73, 64, 60, 63, 64, 49, 51, 61, 79, 52, 59, 62, 92, 74, 71, 90, 61, 48, 62, 58, 71, 109, 76, 96, 63, 79, 62, 77, 55, 112, 61, 49, 58, 69, 60, 58, 58, 64, 65, 52, 69, 49, 47, 58, 60, 64, 61, 57, 69, 61, 61, 60, 93, 64, 68, 65, 55, 57, 67, 49, 58, 58, 80, 56, 69, 72, 52, 76, 64, 85, 102, 69, 66, 70, 63, 59, 75, 72, 66, 64, 48, 88, 60, 66, 53, 68, 52, 69, 72, 72, 62, 50, 68, 59, 64, 43, 53, 57, 54, 69, 53, 62, 42, 72, 63, 53, 81, 74, 63, 44, 67, 66, 94, 94, 99, 51, 51, 73, 75, 83, 91, 50, 102, 50, 67, 64, 65, 68, 49, 57, 66, 69, 71, 91, 58, 75, 60, 40, 60, 59, 74, 56, 58, 62, 71, 92, 47, 58, 64, 64, 65, 91, 47, 60, 99, 73, 62, 62, 116, 76, 74, 88, 62, 58, 55, 55, 59, 66, 77, 47, 79, 75, 77, 52, 52, 66, 70, 55, 80, 80, 67, 68, 58, 89, 59, 68, 60, 64, 76, 77, 59, 83, 67, 74, 74, 46, 59, 81, 74, 53, 63, 94, 88, 66, 75, 55, 82, 72, 53, 53, 73, 72, 110, 52, 88, 45, 51, 73, 48, 56, 82, 91, 66, 51, 60, 45, 71, 45, 76, 97, 63, 64, 58, 82, 86, 56, 66, 60, 65, 73, 60, 63, 69, 46, 74, 66, 58, 81, 64, 71, 58, 55, 68, 75, 50, 103, 65, 64, 44, 57, 69, 61, 53, 66, 72, 62, 63, 71, 66, 45, 67, 84, 56, 100, 82, 68, 43, 76, 60, 61, 64, 75, 57, 61, 70, 62, 55, 63, 50, 84, 41, 56, 55, 55, 68, 84, 73, 55, 66, 70, 83, 45, 76, 63, 62, 73, 73, 66, 80, 94, 79, 68, 51, 47, 63, 91, 69, 62, 40, 43, 57, 54, 78, 81, 59, 51, 56, 61, 74, 59, 53, 61, 61, 57, 45, 39, 73, 65, 71, 86, 67, 38, 50, 54, 73, 52, 60, 79, 80, 60, 71, 66, 41, 69, 41, 65, 69, 60, 68, 62, 80, 70, 57, 56, 71, 61, 93, 88, 68, 67, 62, 54, 48, 66, 56, 55, 69, 78, 57, 60, 63, 61, 50, 78, 70, 63, 69, 71, 74, 96, 63, 72, 47, 49, 64, 56, 75, 62, 55, 63, 70, 52, 61, 61, 47, 72, 55, 57, 77, 74, 55, 72, 78, 71, 66, 61, 55, 60, 52, 61, 63, 73, 65, 85, 57, 48, 59, 81, 67, 76, 56, 61, 68, 66, 70, 88, 81, 46, 109, 56, 66, 98, 58, 74, 65, 71, 53, 47, 77, 76, 45, 66, 54, 56, 66, 76, 42, 90, 95, 61, 58, 105, 63, 63, 83, 65, 66, 55, 45, 59, 80, 49, 74, 64, 58, 64, 59, 71, 96, 84, 53, 56, 67, 67, 84, 67, 58, 63, 61, 53, 68, 74, 64, 75, 49, 73, 50, 71, 78, 49, 68, 46, 53, 89, 44, 59, 103, 93, 56, 53, 53, 76, 72, 61, 62, 65, 66, 87, 59, 66, 104, 69, 61, 92, 78, 63, 75, 77, 80, 46, 99, 53, 97, 54, 41, 75, 55, 71, 66, 76, 54, 65, 78, 59, 69, 42, 71, 69, 46, 60, 52, 65, 80, 81, 57, 74, 60, 76, 74, 75, 50, 63, 60, 65, 54, 56, 94, 59, 72, 70, 52, 59, 55, 78, 54, 70, 93, 72, 67, 55, 54, 63, 74, 79, 55, 112, 73, 88, 59, 55, 80, 75, 59, 64, 68, 58, 76, 62, 53, 67, 92, 65, 73, 72, 73, 82, 59, 63, 72, 58, 70, 94, 66, 60, 62, 56, 60, 50, 58, 62, 62, 52, 78, 72, 50, 52, 38, 139, 67, 53, 44, 67, 48, 45, 59, 63, 54, 79, 66, 64, 49, 62, 72, 48, 50, 62, 56, 65, 62, 57, 51, 57, 54, 68, 84, 62, 83, 59, 59, 85, 71, 58, 59, 86, 68, 46, 52, 76, 62, 66, 73, 55, 85, 65, 62, 83, 66, 76, 90, 72, 88, 58, 54, 54, 66, 42, 106, 50, 74, 70, 58, 85, 63, 62, 69, 51, 57, 67, 40, 58, 37, 69, 58, 64, 54, 60, 56, 70, 106, 69, 104, 100, 82, 61, 71, 53, 61, 78, 58, 76, 70, 52, 76, 60, 51, 65, 56, 91, 46, 84, 57, 42, 64, 75, 67, 66, 65, 90, 81, 52, 68, 46, 66, 59, 56, 53, 74, 63, 65, 48, 48, 52, 57, 81, 67, 56, 62, 60, 59, 57, 63, 68, 65, 53, 62, 72, 61, 110, 75, 64, 69, 66, 56, 54, 58, 54, 68, 64, 56, 83, 43, 43, 73, 59, 69, 92, 53, 59, 68, 63, 47, 72, 57, 67, 63, 61, 77, 65, 55, 91, 76, 69, 55, 80, 59, 74, 49, 62, 46, 54, 56, 56, 122, 67, 77, 42, 74, 69, 47, 61, 57, 53, 80, 58, 69, 78, 55, 67, 82, 55, 81, 48, 73, 64, 71, 76, 55, 77, 63, 60, 59, 61, 66, 66, 75, 83, 57, 56, 64, 61, 59, 62, 56, 67, 56, 82, 65, 64, 61, 82, 82, 77, 69, 67, 56, 55, 66, 57, 82, 43, 58, 65, 87, 62, 59, 64, 53, 59, 49, 77, 72, 46, 62, 76, 81, 86, 61, 73, 50, 78, 72, 56, 69, 42, 63, 52, 66, 69, 64, 58, 62, 69, 77, 45, 56, 49, 95, 57, 52, 59, 50, 58, 59, 65, 56, 73, 57, 66, 80, 73, 57, 66, 79, 81, 54, 83, 47, 78, 52, 48, 61, 63, 68, 59, 67, 55, 70, 64, 66, 77, 66, 75, 61, 66, 55, 61, 50, 59, 107, 60, 84, 60, 73, 78, 67, 45, 59, 73, 40, 66, 70, 54, 109, 43, 53, 69, 42, 57, 73, 71, 70, 71, 63, 63, 55, 74, 69, 64, 65, 54, 69, 43, 62, 64, 76, 96, 57, 70, 54, 62, 75, 56, 51, 53, 57, 55, 87, 43, 61, 45, 71, 53, 66, 72, 69, 87, 50, 71, 54, 72, 59, 85, 62, 86, 85, 102, 69, 55, 59, 65, 54, 59, 55, 63, 93, 61, 51, 74, 49, 62, 57, 74, 81, 61, 46, 59, 51, 114, 98, 59, 52, 57, 69, 65, 70, 56, 66, 42, 46, 41, 49, 75, 65, 66, 66, 78, 84, 75, 79, 61, 79, 65, 72, 61, 77, 82, 102, 73, 56, 89, 73, 57, 66, 73, 60, 76, 48, 66, 67, 71, 83, 62, 64, 84, 59, 63, 87, 86, 72, 87, 60, 62, 59, 65, 63, 86, 66, 81, 79, 61, 72, 57, 77, 55, 54, 46, 55, 66, 87, 50, 69, 57, 45, 55, 76, 61, 56, 78, 69, 57, 59, 60, 76, 57, 68, 85, 63, 72, 58, 62, 78, 67, 64, 62, 55, 54, 71, 84, 66, 74, 49, 47, 57, 56, 70, 76, 54, 51, 52, 84, 49, 53, 84, 69, 69, 50, 62, 85, 88, 53, 70, 59, 56, 72, 74, 88, 47, 64, 46, 79, 64, 37, 74, 68, 47, 68, 75, 64, 66, 47, 58, 60, 86, 60, 85, 61, 62, 93, 61, 79, 75, 73, 64, 63, 76, 53, 48, 43, 55, 48, 47, 66, 49, 71, 66, 69, 74, 55, 72, 81, 57, 61, 76, 32, 69, 73, 86, 67, 64, 69, 45, 53, 53, 73, 77, 62, 76, 50, 85, 72, 55, 68, 74, 75, 66, 58, 81, 74, 73, 50, 84, 50, 88, 50, 57, 65, 73, 48, 72, 58, 66, 59, 78, 70, 81, 40, 63, 64, 47, 79, 57, 88, 59, 44, 164, 74, 76, 53, 48, 71, 78, 63, 59, 50, 57, 53, 60, 57, 84, 64, 55, 73, 61, 55, 74, 46, 90, 55, 69, 73, 59, 62, 59, 64, 46, 43, 57, 70, 65, 67, 120, 60, 65, 53, 50, 46, 59, 66, 68, 73, 61, 59, 69, 81, 73, 75, 82, 72, 73, 78, 61, 89, 46, 55, 77, 66, 81, 73, 68, 83, 65, 96, 59, 69, 62, 59, 60, 55, 63, 43, 91, 38, 43, 65, 61, 46, 51, 67, 82, 57, 45, 67, 116, 96, 71, 68, 61, 101, 54, 66, 45, 69, 69, 73, 77, 50, 79, 78, 92, 58, 62, 52, 84, 86, 65, 58, 48, 56, 46, 67, 64, 55, 43, 62, 39, 61, 52, 57, 59, 63, 56, 48, 44, 70, 70, 75, 62, 54, 68, 65, 65, 50, 87, 95, 41, 63, 68, 64, 70, 72, 57, 62, 91, 52, 82, 74, 57, 53, 57, 64, 69, 137, 112, 86, 75, 79, 58, 72, 65, 53, 81, 72, 60, 66, 47, 53, 58, 69, 62, 87, 59, 59, 33, 55, 60, 67, 59, 74, 78, 142, 41, 69, 43, 64, 63, 65, 72, 71, 76, 52, 56, 60, 55, 61, 79, 66, 65, 54, 80, 61, 69, 56, 55, 65, 55, 97, 69, 54, 88, 81, 48, 61, 53, 62, 81, 74, 49, 67, 57, 71, 44, 85, 55, 55, 66, 68, 71, 74, 67, 70, 63, 84, 36, 53, 48, 62, 93, 80, 61, 44, 73, 64, 61, 52, 72, 82, 47, 71, 49, 58, 88, 81, 59, 82, 57, 55, 70, 57, 50, 54, 54, 57, 73, 71, 66, 80, 95, 75, 52, 58, 45, 71, 66, 42, 51, 53, 57, 61, 62, 75, 43, 66, 66, 73, 43, 84, 46, 70, 62, 71, 62, 47, 60, 59, 57, 53, 69, 68, 45, 55, 48, 54, 64, 73, 60, 73, 59, 51, 52, 77, 69, 84, 68, 96, 64, 59, 76, 48, 62, 84, 72, 77, 56, 65, 59, 64, 55, 48, 65, 47, 56, 71, 64, 75, 57, 81, 49, 59, 59, 66, 63, 87, 68, 52, 70, 82, 87, 55, 60, 57, 80, 96, 73, 58, 81, 53, 76, 77, 58, 126, 73, 68, 76, 67, 67, 76, 80, 56, 93, 81, 55, 58, 76, 76, 61, 82, 84, 54, 57, 70, 67, 70, 70, 59, 55, 58, 67, 72, 82, 57, 75, 74, 71, 50, 59, 58, 62, 58, 63, 78, 137, 38, 65, 60, 60, 93, 48, 67, 73, 58, 78, 68, 72, 73, 60, 57, 79, 73, 64, 50, 114, 90, 75, 58, 75, 57, 90, 94, 78, 62, 69, 69, 83, 72, 77, 111, 74, 68, 65, 68, 63, 50, 78, 69, 57, 85, 58, 50, 65, 101, 75, 51, 65, 48, 72, 47, 71, 59, 63, 76, 74, 61, 44, 57, 57, 68, 60, 73, 71, 62, 64, 54, 78, 40, 59, 86, 60, 56, 51, 77, 60, 91, 86, 71, 67, 58, 66, 69, 76, 41, 76, 72, 58, 65, 66, 61, 39, 57, 56, 60, 71, 59, 62, 69, 71, 58, 69, 59, 68, 60, 54, 66, 62, 136, 71, 78, 56, 58, 56, 70, 76, 67, 59, 79, 50, 48, 68, 61, 57, 60, 64, 58, 69, 76, 41, 97, 71, 65, 79, 65, 60, 46, 39, 45, 50, 74, 82, 68, 79, 73, 68, 64, 80, 47, 50, 92, 60, 72, 59, 77, 86, 67, 45, 64, 76, 75, 56, 59, 70, 98, 66, 65, 45, 63, 69, 43, 49, 78, 90, 79, 81, 71, 65, 58, 68, 62, 38, 89, 39, 83, 90, 64, 57, 97, 67, 34, 67, 78, 95, 65, 55, 46, 56, 58, 85, 70, 74, 60, 81, 54, 46, 94, 43, 65, 67, 64, 67, 63, 68, 55, 77, 49, 80, 51, 92, 70, 76, 70, 89, 67, 90, 54, 75, 67, 79, 87, 73, 39, 65, 78, 69, 58, 43, 63, 81, 76, 58, 73, 71, 73, 50, 82, 52, 58, 83, 69, 55, 69, 72, 62, 51, 73, 116, 79, 86, 90, 46, 56, 84, 57, 44, 94, 76, 50, 52, 59, 53, 59, 73, 90, 54, 55, 98, 50, 67, 83, 57, 61, 50, 96, 59, 77, 74, 65, 61, 69, 80, 54, 70, 35, 72, 57, 55, 56, 69, 80, 54, 63, 64, 86, 49, 50, 95, 62, 65, 72, 59, 49, 69, 90, 79, 58, 74, 58, 98, 79, 38, 68, 44, 81, 95, 76, 56, 74, 58, 100, 68, 53, 45, 72, 68, 71, 76, 74, 74, 98, 88, 83, 44, 74, 71, 59, 64, 59, 66, 113, 69, 51, 56, 71, 64, 98, 53, 55, 72, 72, 83, 68, 57, 100, 70, 56, 61, 57, 62, 73, 87, 73, 56, 56, 65, 63, 54, 64, 55, 71, 89, 68, 82, 55, 64, 56, 72, 57, 71, 53, 62, 77, 60, 77, 59, 66, 62, 79, 64, 63, 74, 66, 64, 70, 51, 51, 67, 69, 93, 70, 53, 88, 64, 69, 92, 61, 62, 64, 46, 50, 79, 55, 76, 80, 88, 52, 68, 60, 77, 75, 73, 48, 87, 50, 43, 62, 67, 48, 93, 74, 71, 58, 67, 60, 61, 47, 56, 59, 82, 39, 65, 49, 72, 48, 62, 59, 47, 67, 82, 72, 90, 79, 53, 61, 106, 64, 56, 69, 70, 55, 65, 94, 135, 75, 52, 71, 46, 84, 83, 72, 57, 57, 62, 77, 47, 62, 48, 95, 46, 54, 54, 51, 85, 53, 69, 128, 57, 65, 56, 68, 51, 54, 45, 51, 72, 51, 68, 80, 85, 56, 83, 98, 97, 84, 59, 64, 75, 56, 93, 96, 55, 56, 100, 59, 41, 67, 68, 85, 67, 49, 73, 65, 50, 68, 73, 55, 76, 66, 96, 81, 73, 83, 51, 100, 68, 64, 69, 60, 72, 64, 61, 61, 56, 51, 81, 40, 52, 98, 59, 66, 57, 86, 75, 59, 64, 65, 55, 50, 68, 46, 39, 68, 59, 74, 62, 62, 61, 72, 55, 70, 68, 38, 50, 73, 70, 71, 52, 74, 56, 68, 69, 75, 54, 63, 80, 69, 52, 101, 76, 55, 71, 45, 57, 53, 50, 72, 79, 86, 115, 70, 72, 61, 64, 94, 82, 88, 62, 54, 110, 55, 83, 69, 84, 41, 75, 84, 58, 60, 82, 55, 91, 66, 49, 69, 73, 60, 138, 73, 65, 65, 68, 66, 74, 62, 62, 99, 82, 63, 73, 64, 86, 79, 59, 75, 63, 56, 72, 58, 53, 49, 67, 91, 77, 82, 71, 64, 49, 72, 48, 69, 50, 61, 56, 77, 84, 56, 56, 56, 90, 58, 62, 94, 74, 58, 40, 103, 69, 73, 64, 74, 69, 46, 46, 49, 78, 76, 48, 52, 70, 48, 65, 62, 61, 65, 55, 60, 65, 39, 63, 83, 54, 55, 56, 62, 61, 59, 35, 84, 58, 79, 50, 67, 105, 63, 54, 63, 61, 68, 61, 67, 79, 78, 71, 50, 64, 62, 70, 60, 80, 75, 83, 73, 62, 49, 94, 46, 62, 54, 42, 56, 95, 67, 84, 69, 53, 55, 42, 70, 74, 55, 58, 40, 62, 64, 82, 62, 72, 57, 70, 57, 82, 62, 50, 40, 49, 85, 53, 84, 64, 67, 63, 103, 55, 49, 70, 56, 62, 84, 66, 54, 69, 59, 48, 88, 68, 49, 59, 105, 73, 43, 51, 81, 51, 101, 64, 52, 69, 87, 67, 65, 91, 62, 78, 49, 71, 49, 68, 65, 56, 60, 48, 44, 74, 55, 85, 51, 49, 46, 58, 65, 42, 76, 69, 55, 65, 60, 69, 55, 71, 56, 53, 48, 54, 78, 57, 52, 62, 63, 62, 63, 74, 73, 48, 89, 69, 56, 73, 53, 60, 72, 69, 59, 102, 79, 52, 64, 72, 49, 63, 109, 73, 62, 48, 61, 73, 79, 61, 67, 43, 78, 49, 65, 45, 54, 56, 53, 61, 46, 71, 82, 48, 60, 71, 94, 63, 55, 71, 53, 92, 65, 59, 93, 81, 54, 62, 71, 96, 66, 95, 61, 62, 42, 73, 98, 66, 92, 73, 70, 69, 72, 69, 52, 107, 56, 74, 65, 69, 51, 78, 53, 75, 54, 69, 68, 43, 58, 64, 53, 83, 63, 58, 46, 64, 57, 98, 55, 46, 54, 58, 139, 62, 62, 43, 54, 46, 50, 88, 66, 78, 61, 74, 58, 75, 66, 70, 68, 58, 53, 59, 74, 40, 58, 74, 58, 59, 56, 39, 59, 97, 72, 50, 57, 52, 76, 75, 69, 54, 51, 92, 64, 73, 61, 67, 61, 65, 67, 55, 53, 72, 52, 66, 79, 117, 62, 52, 55, 48, 71, 63, 63, 57, 48, 84, 72, 50, 53, 46, 63, 80, 81, 50, 76, 59, 71, 60, 61, 65, 68, 86, 58, 59, 80, 65, 71, 73, 76, 64, 58, 79, 72, 57, 59, 53, 67, 54, 68, 82, 85, 63, 47, 69, 80, 60, 43, 89, 67, 80, 53, 61, 59, 64, 89, 50, 76, 65, 67, 78, 48, 58, 82, 54, 63, 88, 63, 77, 71, 62, 60, 67, 82, 68, 68, 74, 62, 71, 108, 69, 69, 71, 69, 55, 59, 78, 53, 60, 84, 73, 57, 61, 71, 54, 66, 59, 51, 72, 52, 47, 58, 131, 76, 53, 80, 63, 51, 63, 87, 65, 92, 59, 53, 62, 66, 57, 60, 74, 101, 66, 84, 61, 66, 73, 61, 79, 86, 63, 66, 76, 52, 89, 95, 66, 61, 65, 56, 47, 37, 85, 79, 54, 60, 52, 62, 64, 56, 65, 37, 53, 59, 65, 73, 59, 71, 70, 68, 60, 74, 77, 61, 82, 62, 50, 76, 59, 61, 65, 63, 75, 78, 68, 72, 61, 70, 51, 69, 76, 144, 82, 73, 80, 72, 65, 54, 43, 94, 47, 41, 61, 66, 64, 67, 63, 67, 83, 68, 66, 55, 104, 99, 52, 55, 63, 74, 57, 89, 124, 68, 58, 51, 119, 59, 56, 112, 74, 69, 94, 61, 67, 51, 79, 35, 73, 95, 92, 67, 46, 110, 56, 55, 66, 57, 122, 60, 53, 59, 71, 74, 77, 51, 67, 44, 62, 75, 57, 66, 47, 67, 60, 52, 66, 55, 69, 64, 69, 59, 72, 79, 83, 78, 78, 75, 39, 85, 71, 79, 69, 63, 56, 48, 60, 68, 66, 95, 64, 60, 78, 54, 86, 54, 67, 55, 80, 55, 55, 62, 89, 74, 81, 65, 59, 61, 78, 71, 80, 71, 41, 60, 61, 93, 39, 58, 88, 53, 72, 57, 54, 74, 67, 70, 58, 69, 77, 58, 72, 61, 44, 68, 57, 53, 76, 55, 41, 71, 69, 49, 46, 65, 71, 59, 101, 67, 70, 76, 55, 51, 54, 57, 63, 57, 62, 60, 85, 58, 64, 64, 54, 54, 74, 93, 63, 72, 51, 47, 61, 53, 96, 47, 52, 106, 61, 64, 76, 78, 55, 69, 58, 51, 69, 56, 81, 71, 68, 47, 44, 77, 80, 59, 67, 60, 62, 64, 57, 57, 81, 75, 65, 55, 47, 80, 71, 61, 71, 38, 71, 66, 66, 58, 69, 43, 74, 70, 64, 85, 59, 101, 55, 69, 70, 46, 63, 70, 120, 121, 113, 48, 63, 46, 59, 82, 49, 46, 82, 64, 86, 54, 75, 63, 65, 77, 68, 60, 76, 61, 70, 48, 49, 63, 75, 82, 73, 104, 58, 94, 55, 72, 58, 61, 84, 50, 80, 86, 77, 76, 36, 85, 42, 58, 65, 67, 69, 62, 69, 71, 71, 89, 71, 50, 59, 77, 56, 95, 60, 65, 50, 80, 80, 69, 82, 60, 46, 57, 56, 55, 53, 62, 56, 66, 68, 78, 78, 58, 63, 76, 58, 41, 81, 68, 73, 55, 73, 38, 75, 71, 78, 76, 71, 56, 51, 45, 71, 68, 62, 72, 83, 79, 88, 74, 58, 78, 71, 46, 65, 81, 51, 56, 93, 45, 65, 74, 65, 51, 59, 58, 92, 38, 50, 62, 73, 52, 44, 81, 61, 60, 63, 54, 75, 48, 74, 72, 75, 67, 77, 57, 55, 59, 64, 63, 68, 89, 77, 55, 78, 63, 74, 72, 79, 88, 70, 64, 68, 63, 66, 47, 68, 62, 69, 63, 48, 87, 73, 63, 64, 73, 39, 65, 73, 66, 64, 69, 64, 61, 65, 93, 59, 40, 59, 80, 70, 47, 82, 78, 63, 100, 80, 67, 107, 72, 79, 60, 92, 75, 58, 75, 70, 76, 66, 53, 58, 46, 45, 56, 55, 67, 55, 44, 90, 78, 105, 82, 74, 79, 64, 47, 66, 48, 87, 60, 61, 102, 100, 62, 55, 121, 97, 99, 78, 64, 54, 49, 59, 50, 89, 40, 77, 98, 70, 65, 98, 62, 66, 44, 95, 75, 44, 80, 53, 63, 53, 64, 56, 54, 66, 68, 63, 41, 50, 72, 84, 61, 73, 88, 72, 51, 84, 66, 47, 59, 46, 83, 59, 41, 67, 80, 67, 89, 69, 44, 72, 94, 58, 71, 48, 79, 93, 74, 46, 74, 70, 65, 96, 68, 71, 79, 68, 57, 59, 73, 55, 68, 59, 52, 53, 48, 51, 51, 41, 70, 61, 57, 87, 41, 63, 59, 50, 55, 74, 53, 88, 51, 50, 62, 60, 50, 46, 66, 43, 82, 60, 62, 86, 65, 62, 82, 78, 51, 55, 63, 56, 75, 73, 60, 97, 71, 63, 57, 76, 55, 103, 69, 38, 70, 79, 87, 55, 59, 55, 112, 58, 55, 45, 51, 61, 47, 59, 106, 44, 57, 99, 67, 67, 58, 62, 49, 60, 50, 59, 84, 58, 55, 84, 105, 69, 53, 38, 56, 82, 53, 67, 49, 65, 61, 64, 64, 65, 57, 57, 80, 58, 35, 81, 49, 69, 70, 49, 62, 79, 82, 72, 70, 137, 79, 68, 67, 70, 57, 78, 65, 75, 67, 74, 77, 60, 57, 64, 101, 54, 84, 69, 56, 62, 71, 54, 72, 60, 91, 47, 64, 76, 101, 51, 71, 60, 64, 66, 76, 61, 119, 55, 63, 66, 59, 54, 56, 83, 80, 94, 53, 74, 52, 94, 74, 70, 73, 68, 43, 81, 64, 53, 85, 68, 67, 44, 44, 93, 62, 63, 59, 67, 55, 42, 61, 59, 60, 95, 75, 57, 88, 53, 42, 48, 61, 63, 39, 49, 78, 77, 64, 101, 44, 71, 41, 88, 58, 57, 78, 53, 77, 63, 65, 88, 64, 62, 60, 72, 45, 50, 80, 67, 106, 39, 49, 76, 76, 54, 67, 100, 60, 43, 66, 54, 62, 51, 77, 77, 69, 74, 67, 51, 73, 76, 75, 59, 70, 94, 57, 60, 54, 76, 55, 52, 58, 73, 64, 43, 65, 68, 45, 93, 58, 60, 77, 75, 52, 80, 54, 59, 36, 58, 49, 72, 91, 46, 40, 53, 70, 62, 89, 84, 64, 82, 63, 57, 66, 92, 72, 81, 75, 77, 62, 60, 78, 68, 73, 62, 98, 56, 62, 81, 58, 60, 76, 52, 71, 60, 62, 85, 62, 63, 56, 49, 65, 66, 61, 112, 48, 58, 96, 61, 78, 58, 60, 64, 51, 73, 58, 72, 58, 74, 69, 52, 72, 43, 50, 87, 41, 54, 78, 73, 80, 49, 65, 52, 58, 70, 51, 60, 42, 74, 60, 58, 67, 74, 75, 71, 72, 51, 70, 75, 76, 82, 61, 53, 50, 64, 103, 58, 61, 46, 60, 75, 93, 58, 26, 79, 55, 66, 69, 78, 78, 58, 68, 47, 58, 37, 85, 49, 92, 62, 86, 71, 54, 99, 66, 81, 46, 70, 50, 74, 52, 58, 60, 44, 71, 41, 68, 45, 51, 44, 70, 76, 85, 70, 54, 49, 67, 84, 61, 88, 89, 67, 72, 56, 64, 61, 59, 60, 49, 41, 61, 55, 79, 57, 49, 78, 68, 63, 54, 72, 69, 43, 83, 68, 81, 65, 52, 74, 70, 38, 62, 58, 82, 91, 66, 60, 56, 76, 80, 46, 78, 71, 89, 66, 61, 86, 35, 77, 41, 97, 75, 58, 55, 66, 74, 41, 89, 85, 55, 102, 60, 44, 83, 113, 45, 75, 86, 76, 52, 42, 84, 68, 71, 64, 68, 99, 57, 58, 60, 46, 54, 88, 75, 68, 59, 71, 76, 60, 75, 56, 93, 76, 79, 112, 47, 68, 83, 57, 62, 108, 66, 64, 65, 68, 48, 60, 45, 51, 51, 70, 71, 70, 31, 83, 66, 57, 75, 71, 89, 49, 57, 62, 52, 58, 31, 90, 66, 77, 64, 71, 64, 71, 45, 91, 68, 83, 34, 102, 65, 69, 71, 60, 85, 58, 52, 66, 58, 87, 56, 54, 81, 70, 65, 102, 67, 63, 60, 116, 40, 50, 83, 70, 72, 66, 77, 66, 54, 74, 66, 82, 81, 72, 74, 77, 48, 46, 70, 55, 87, 70, 74, 80, 44, 65, 94, 74, 70, 66, 62, 68, 52, 80, 65, 54, 68, 60, 63, 83, 53, 73, 76, 77, 49, 70, 57, 80, 62, 61, 39, 70, 55, 66, 65, 71, 72, 70, 84, 47, 52, 58, 66, 49, 63, 77, 59, 77, 53, 62, 72, 94, 75, 70, 99, 69, 75, 89, 67, 52, 81, 69, 50, 69, 73, 95, 86, 76, 69, 55, 83, 45, 69, 61, 81, 34, 53, 83, 62, 92, 85, 70, 50, 67, 47, 59, 69, 66, 40, 66, 60, 56, 72, 94, 62, 80, 92, 79, 63, 56, 66, 94, 67, 57, 85, 51, 76, 64, 64, 77, 67, 54, 46, 56, 60, 52, 55, 97, 49, 50, 73, 49, 124, 67, 65, 73, 76, 76, 86, 97, 52, 106, 85, 62, 66, 52, 108, 79, 46, 89, 93, 77, 53, 74, 63, 75, 49, 41, 38, 104, 82, 56, 69, 63, 73, 47, 91, 58, 75, 74, 69, 17, 46, 54, 44, 63, 82, 52, 61, 80, 79, 64, 69, 38, 67, 57, 71, 76, 53, 93, 67, 59, 49, 36, 114, 99, 97, 66, 60, 82, 35, 70, 68, 53, 62, 87, 73, 90, 49, 56, 54, 71, 69, 57, 76, 75, 47, 73, 46, 88, 69, 55, 64, 53, 61, 80, 53, 68, 92, 45, 77, 60, 71, 47, 84, 100, 42, 50, 114, 71, 60, 56, 77, 65, 44, 80, 58, 69, 80, 67, 76, 39, 57, 63, 99, 34, 47, 77, 73, 59, 77, 71, 75, 64, 70, 60, 54, 65, 91, 45, 61, 63, 56, 36, 77, 81, 32, 54, 65, 57, 86, 89, 49, 68, 55, 41, 84, 74, 68, 68, 51, 86, 57, 36, 74, 62, 71, 62, 54, 65, 58, 48, 61, 71, 100, 65, 52, 61, 67, 68, 63, 51, 43, 63, 64, 56, 44, 49, 63, 63, 56, 61, 68, 73, 72, 72, 51, 49, 69, 90, 62, 28, 57, 76, 70, 72, 40, 60, 70, 65, 73, 59, 62, 59, 70, 70, 61, 70, 56, 79, 97, 48, 58, 58, 51, 81, 55, 53, 51, 62, 60, 45, 62, 92, 84, 95, 89, 71, 68, 65, 61, 75, 61, 58, 49, 78, 57, 71, 69, 53, 77, 57, 43, 83, 60, 51, 60, 55, 78, 60, 69, 44, 47, 55, 59, 89, 70, 55, 63, 71, 54, 56, 55, 66, 55, 64, 63, 66, 81, 56, 43, 64, 70, 68, 83, 71, 70, 87, 75, 70, 63, 77, 85, 56, 79, 67, 60, 103, 72, 73, 59, 74, 71, 82, 46, 57, 64, 73, 61, 45, 91, 76, 78, 52, 56, 59, 73, 75, 59, 57, 74, 65, 77, 111, 46, 97, 62, 87, 74, 52, 86, 66, 50, 80, 60, 57, 42, 89, 47, 81, 45, 47, 63, 119, 53, 91, 38, 79, 53, 68, 84, 61, 73, 69, 45, 67, 81, 79, 71, 38, 50, 72, 78, 74, 56, 76, 48, 44, 83, 105, 77, 56, 66, 69, 69, 62, 70, 53, 57, 55, 54, 87, 62, 78, 89, 74, 96, 68, 61, 58, 55, 59, 70, 64, 64, 60, 62, 66, 64, 40, 64, 83, 73, 49, 60, 61, 56, 79, 73, 51, 95, 65, 67, 35, 88, 51, 77, 80, 74, 96, 79, 77, 65, 62, 76, 72, 79, 56, 68, 83, 52, 83, 40, 50, 66, 76, 41, 53, 90, 73, 50, 79, 60, 54, 43, 71, 49, 61, 52, 54, 77, 80, 36, 50, 44, 52, 53, 47, 71, 79, 73, 56, 58, 68, 78, 63, 67, 52, 48, 54, 91, 45, 59, 43, 66, 66, 66, 66, 62, 93, 49, 31, 73, 62, 70, 80, 52, 80, 97, 64, 84, 74, 56, 74, 69, 64, 80, 42, 44, 58, 57, 53, 58, 70, 68, 75, 77, 48, 51, 48, 70, 59, 85, 56, 36, 74, 69, 83, 64, 91, 59, 62, 61, 69, 71, 72, 43, 78, 63, 68, 76, 70, 43, 57, 60, 43, 55, 46, 94, 78, 66, 77, 86, 74, 71, 69, 57, 52, 63, 55, 73, 53, 35, 62, 86, 75, 40, 51, 80, 40, 58, 86, 74, 73, 85, 92, 49, 86, 78, 62, 53, 59, 90, 109, 73, 59, 80, 87, 77, 65, 41, 79, 68, 59, 69, 54, 47, 49, 56, 58, 53, 135, 66, 92, 88, 55, 96, 69, 56, 61, 59, 53, 69, 64, 105, 52, 68, 43, 48, 90, 47, 65, 58, 48, 64, 64, 57, 68, 69, 44, 54, 61, 90, 64, 47, 59, 56, 43, 61, 45, 54, 46, 77, 63, 76, 74, 65, 58, 78, 38, 76, 71, 70, 94, 40, 76, 73, 73, 58, 83, 63, 102, 38, 76, 98, 59, 86, 81, 46, 59, 43, 71, 67, 75, 40, 71, 65, 61, 79, 59, 68, 76, 59, 91, 106, 57, 52, 39, 59, 76, 58, 65, 42, 75, 62, 59, 76, 69, 65, 65, 43, 52, 81, 108, 121, 71, 67, 79, 60, 63, 72, 86, 65, 73, 69, 53, 78, 73, 73, 66, 87, 35, 61, 54, 70, 67, 52, 77, 51, 52, 59, 62, 70, 128, 54, 86, 69, 72, 70, 67, 64, 64, 79, 48, 53, 47, 70, 55, 65, 60, 54, 90, 69, 80, 45, 59, 52, 77, 39, 62, 76, 76, 49, 58, 82, 41, 80, 66, 47, 49, 54, 104, 35, 86, 64, 85, 100, 91, 30, 50, 45, 59, 59, 60, 82, 75, 112, 125, 51, 59, 62, 56, 46, 71, 60, 69, 50, 51, 41, 65, 87, 67, 104, 94, 66, 73, 57, 71, 58, 61, 84, 51, 64, 106, 60, 51, 59, 56, 56, 47, 63, 63, 61, 73, 56, 56, 45, 64, 83, 82, 67, 63, 68, 73, 59, 74, 64, 40, 59, 38, 77, 58, 64, 56, 72, 87, 64, 74, 54, 75, 56, 119, 43, 93, 72, 71, 44, 72, 53, 69, 66, 74, 70, 37, 54, 67, 55, 62, 53, 88, 92, 49, 63, 60, 56, 104, 92, 72, 70, 86, 66, 82, 79, 78, 59, 91, 45, 61, 77, 58, 75, 54, 101, 100, 58, 46, 80, 64, 54, 66, 66, 64, 60, 90, 57, 67, 43, 75, 52, 72, 59, 57, 26, 59, 79, 74, 58, 126, 79, 113, 71, 70, 49, 62, 59, 87, 48, 53, 83, 55, 61, 69, 48, 77, 81, 45, 57, 65, 62, 70, 57, 74, 60, 64, 43, 99, 65, 69, 67, 44, 72, 86, 54, 68, 55, 55, 61, 115, 77, 88, 35, 88, 60, 63, 64, 113, 63, 81, 68, 84, 46, 81, 60, 72, 76, 81, 62, 44, 64, 55, 47, 65, 72, 43, 55, 47, 58, 98, 46, 53, 67, 48, 55, 56, 40, 71, 54, 78, 45, 79, 77, 75, 67, 75, 73, 81, 65, 49, 86, 76, 65, 46, 83, 46, 53, 53, 42, 72, 61, 61, 85, 56, 76, 48, 57, 79, 47, 63, 65, 61, 52, 56, 63, 60, 51, 43, 59, 63, 70, 78, 79, 67, 70, 76, 84, 58, 75, 73, 48, 64, 73, 56, 83, 67, 60, 55, 57, 63, 65, 75, 62, 61, 70, 72, 55, 94, 88, 56, 68, 73, 55, 75, 54, 68, 64, 73, 67, 66, 81, 54, 65, 58, 55, 53, 59, 54, 77, 71, 52, 60, 74, 72, 53, 72, 74, 90, 62, 55, 58, 68, 91, 72, 55, 98, 55, 74, 74, 76, 53, 68, 65, 73, 75, 63, 56, 74, 59, 61, 79, 67, 83, 52, 69, 74, 67, 51, 47, 62, 56, 54, 48, 63, 59, 51, 64, 71, 67, 57, 73, 81, 60, 59, 63, 60, 42, 60, 77, 57, 81, 62, 67, 64, 75, 65, 65, 75, 61, 72, 76, 46, 69, 54, 58, 60, 62, 55, 48, 60, 36, 84, 68, 59, 72, 52, 68, 59, 47, 85, 77, 53, 40, 66, 49, 45, 49, 95, 85, 70, 49, 78, 58, 59, 59, 66, 70, 61, 80, 74, 55, 56, 58, 68, 56, 71, 60, 71, 73, 59, 65, 70, 97, 45, 108, 59, 50, 37, 70, 56, 68, 64, 66, 78, 68, 55, 53, 59, 42, 111, 49, 53, 59, 53, 53, 78, 68, 73, 57, 64, 60, 96, 67, 52, 68, 44, 75, 65, 51, 57, 75, 164, 58, 35, 66, 58, 68, 56, 66, 71, 57, 64, 56, 66, 72, 53, 50, 48, 53, 80, 111, 80, 57, 71, 62, 60, 52, 50, 68, 56, 62, 56, 82, 60, 72, 68, 57, 130, 63, 79, 52, 75, 68, 64, 87, 82, 64, 74, 61, 58, 70, 49, 71, 57, 97, 59, 69, 65, 55, 74, 56, 63, 67, 87, 43, 75, 61, 69, 87, 43, 69, 83, 67, 79, 76, 60, 57, 60, 75, 56, 71, 61, 55, 66, 71, 65, 84, 57, 95, 44, 98, 75, 88, 68, 96, 70, 86, 87, 86, 62, 56, 45, 62, 48, 62, 48, 59, 85, 79, 104, 77, 86, 58, 59, 68, 65, 65, 69, 56, 65, 44, 70, 59, 55, 51, 71, 77, 60, 85, 68, 73, 62, 75, 50, 71, 55, 61, 65, 92, 64, 98, 55, 73, 72, 50, 43, 83, 44, 62, 72, 52, 61, 57, 82, 62, 77, 64, 57, 93, 88, 69, 49, 60, 75, 65, 59, 55, 55, 48, 46, 77, 65, 51, 53, 62, 71, 43, 44, 54, 69, 63, 71, 65, 63, 50, 55, 55, 49, 54, 64, 58, 57, 42, 60, 61, 90, 51, 76, 56, 63, 69, 55, 73, 55, 53, 49, 67, 86, 71, 62, 78, 65, 59, 66, 56, 61, 67, 69, 51, 86, 72, 74, 66, 59, 60, 50, 49, 51, 67, 67, 88, 90, 72, 63, 73, 63, 66, 62, 100, 65, 69, 62, 52, 67, 42, 62, 55, 66, 72, 100, 64, 54, 50, 51, 34, 70, 96, 64, 60, 53, 67, 56, 61, 68, 69, 54, 56, 61, 73, 57, 50, 54, 88, 75, 61, 74, 95, 67, 50, 94, 76, 58, 74, 68, 45, 89, 59, 54, 53, 70, 52, 57, 80, 73, 60, 53, 50, 77, 82, 71, 54, 58, 74, 43, 65, 72, 86, 74, 43, 63, 76, 74, 56, 59, 64, 59, 46, 45, 68, 70, 68, 76, 64, 67, 82, 62, 62, 58, 65, 82, 61, 70, 68, 51, 41, 83, 53, 46, 57, 59, 64, 66, 48, 53, 69, 76, 72, 69, 57, 66, 60, 53, 64, 89, 62, 54, 53, 80, 86, 64, 43, 58, 75, 48, 59, 52, 73, 66, 69, 67, 92, 59, 73, 69, 56, 58, 70, 59, 57, 66, 49, 70, 63, 71, 67, 61, 77, 45, 52, 111, 64, 62, 54, 52, 54, 55, 53, 70, 69, 73, 70, 78, 80, 74, 76, 63, 67, 73, 90, 70, 68, 67, 71, 69, 48, 78, 56, 61, 67, 70, 53, 64, 65, 69, 51, 51, 62, 79, 141, 62, 61, 63, 41, 53, 61, 69, 69, 71, 69, 73, 57, 117, 73, 72, 61, 64, 55, 50, 61, 62, 86, 66, 66, 77, 67, 51, 75, 76, 70, 66, 40, 72, 80, 82, 61, 64, 55, 71, 45, 68, 54, 46, 67, 69, 49, 58, 85, 73, 56, 86, 54, 86, 93, 64, 54, 90, 135, 62, 57, 62, 56, 69, 48, 66, 53, 58, 73, 46, 80, 60, 75, 66, 57, 66, 72, 77, 59, 62, 43, 47, 106, 43, 51, 76, 63, 55, 46, 60, 99, 53, 54, 65, 58, 59, 68, 59, 79, 61, 76, 52, 83, 77, 67, 53, 57, 68, 69, 61, 48, 47, 52, 67, 64, 62, 60, 59, 53, 81, 59, 67, 63, 80, 48, 43, 59, 67, 69, 45, 78, 56, 74, 66, 82, 47, 45, 53, 55, 85, 54, 84, 102, 43, 62, 75, 64, 55, 70, 49, 77, 61, 103, 65, 82, 65, 72, 63, 56, 76, 62, 67, 68, 97, 51, 73, 73, 52, 66, 83, 67, 56, 77, 58, 59, 49, 66, 63, 63, 55, 78, 63, 71, 66, 101, 64, 56, 63, 77, 64, 74, 50, 91, 64, 60, 52, 62, 49, 80, 44, 76, 65, 46, 80, 65, 60, 77, 131, 76, 83, 73, 77, 54, 74, 59, 52, 62, 75, 76, 57, 65, 61, 92, 84, 77, 61, 76, 104, 58, 60, 80, 36, 52, 73, 73, 64, 64, 78, 81, 54, 62, 96, 68, 63, 66, 56, 96, 56, 45, 69, 56, 63, 85, 60, 51, 60, 90, 74, 62, 74, 76, 65, 63, 63, 62, 74, 91, 57, 55, 57, 68, 70, 74, 75, 122, 65, 74, 60, 61, 63, 58, 58, 78, 63, 93, 82, 68, 62, 93, 52, 75, 53, 64, 63, 62, 58, 67, 62, 129, 68, 59, 58, 67, 71, 54, 50, 73, 68, 70, 66, 63, 62, 59, 40, 123, 58, 56, 71, 71, 55, 79, 79, 74, 59, 91, 78, 69, 58, 72, 70, 66, 40, 70, 52, 89, 68, 49, 65, 55, 66, 72, 65, 61, 67, 65, 46, 61, 77, 70, 54, 69, 58, 87, 73, 60, 54, 68, 62, 118, 63, 45, 79, 51, 72, 83, 46, 58, 59, 49, 63, 58, 61, 47, 47, 50, 64, 59, 62, 72, 70, 55, 63, 57, 50, 59, 108, 71, 65, 62, 71, 61, 54, 56, 102, 65, 60, 97, 62, 54, 76, 62, 79, 66, 52, 49, 56, 59, 70, 60, 82, 58, 59, 62, 71, 57, 67, 55, 82, 70, 43, 68, 75, 71, 57, 76, 60, 72, 62, 77, 56, 50, 70, 64, 58, 68, 81, 57, 56, 36, 73, 93, 67, 59, 79, 88, 67, 60, 58, 72, 70, 53, 70, 54, 69, 56, 60, 60, 64, 54, 110, 53, 61, 85, 78, 93, 60, 66, 71, 70, 57, 68, 80, 36, 56, 62, 83, 42, 69, 71, 65, 61, 52, 55, 67, 58, 61, 71, 75, 78, 51, 62, 68, 61, 75, 53, 62, 54, 78, 99, 67, 69, 78, 65, 62, 89, 60, 57, 53, 74, 54, 65, 63, 59, 64, 56, 54, 73, 62, 65, 72, 73, 59, 86, 60, 61, 56, 54, 55, 50, 55, 71, 58, 69, 54, 61, 55, 52, 58, 83, 62, 67, 69, 55, 50, 77, 80, 70, 65, 88, 63, 71, 71, 75, 118, 63, 75, 74, 61, 51, 45, 71, 82, 51, 61, 61, 82, 61, 59, 58, 75, 56, 59, 56, 45, 63, 50, 56, 67, 65, 45, 51, 64, 53, 59, 80, 57, 98, 56, 58, 63, 65, 85, 62, 64, 60, 55, 66, 69, 86, 58, 68, 62, 50, 63, 40, 51, 73, 62, 74, 92, 102, 55, 63, 67, 54, 70, 88, 55, 63, 61, 57, 53, 73, 62, 66, 57, 61, 59, 63, 61, 66, 60, 61, 117, 70, 82, 63, 99, 71, 71, 68, 79, 75, 68, 68, 74, 63, 58, 69, 76, 63, 60, 68, 62, 59, 71, 43, 59, 60, 44, 66, 70, 68, 61, 69, 74, 73, 66, 51, 61, 64, 54, 61, 61, 75, 54, 71, 53, 49, 47, 70, 60, 63, 66, 82, 50, 88, 58, 51, 55, 48, 90, 66, 45, 68, 76, 67, 54, 59, 78, 67, 51, 66, 70, 62, 60, 60, 66, 69, 71, 54, 53, 57, 81, 62, 58, 68, 63, 65, 65, 57, 68, 64, 67, 60, 56, 67, 58, 66, 63, 68, 62, 69, 70, 68, 62, 70, 64, 61, 100, 53, 61, 54, 57, 63, 67, 40, 71, 60, 71, 50, 50, 69, 57, 52, 71, 75, 63, 77, 74, 75, 67, 67, 50, 64, 69, 69, 54, 55, 70, 65, 64, 53, 57, 67, 61, 83, 74, 69, 73, 61, 69, 67, 59, 76, 57, 49, 54, 59, 59, 57, 77, 59, 68, 55, 61, 56, 56, 65, 66, 48, 65, 59, 86, 65, 57, 59, 54, 57, 61, 54, 68, 62, 56, 75, 79, 128, 85, 40, 53, 77, 54, 107, 57, 72, 65, 65, 87, 49, 80, 54, 66, 57, 63, 64, 46, 60, 81, 60, 60, 62, 71, 67, 61, 61, 81, 64, 55, 81, 48, 57, 64, 56, 67, 55, 64, 59, 57, 83, 84, 58, 94, 57, 66, 59, 66, 66, 64, 55, 90, 57, 47, 62, 92, 63, 68, 57, 60, 84, 86, 53, 80, 70, 79, 63, 49, 65, 47, 69, 115, 59, 123, 83, 70, 57, 65, 59, 63, 62, 57, 70, 55, 54, 49, 84, 54, 73, 42, 57, 58, 45, 75, 71, 60, 105, 77, 77, 66, 72, 67, 77, 61, 76, 50, 67, 65, 65, 72, 63, 57, 63, 58, 96, 46, 73, 56, 57, 79, 82, 61, 58, 65, 57, 56, 43, 83, 89, 50, 60, 72, 69, 90, 59, 78, 59, 66, 58, 67, 61, 67, 69, 75, 65, 70, 48, 60, 56, 64, 86, 53, 67, 59, 69, 62, 60, 65, 75, 49, 71, 64, 72, 71, 65, 59, 56, 86, 67, 72, 85, 56, 122, 61, 93, 85, 58, 58, 62, 60, 59, 67, 54, 61, 69, 57, 65, 62, 69, 69, 80, 87, 39, 69, 82, 42, 74, 63, 54, 67, 64, 60, 87, 67, 74, 78, 65, 68, 61, 54, 69, 86, 75, 57, 55, 51, 81, 49, 63, 69, 64, 68, 95, 56, 57, 71, 78, 51, 85, 56, 64, 54, 81, 79, 63, 59, 63, 50, 57, 59, 66, 49, 57, 81, 85, 66, 58, 72, 72, 60, 61, 45, 69, 57, 67, 56, 61, 56, 52, 68, 68, 69, 82, 77, 61, 62, 104, 79, 61, 46, 73, 65, 69, 66, 55, 68, 67, 48, 66, 48, 63, 66, 70, 58, 64, 67, 68, 46, 69, 46, 62, 68, 57, 55, 65, 69, 55, 63, 72, 66, 59, 59, 73, 66, 77, 59, 51, 49, 63, 59, 54, 54, 65, 70, 68, 76, 67, 65, 78, 75, 80, 96, 64, 63, 65, 66, 55, 50, 61, 69, 60, 56, 62, 73, 128, 102, 64, 60, 70, 56, 70, 54, 66, 76, 96, 63, 55, 70, 82, 60, 67, 125, 57, 72, 68, 60, 92, 65, 71, 71, 67, 67, 63, 51, 42, 69, 44, 58, 66, 80, 56, 83, 74, 69, 57, 65, 62, 71, 102, 77, 68, 51, 63, 59, 63, 58, 58, 57, 103, 57, 98, 66, 67, 49, 61, 54, 98, 67, 77, 80, 80, 75, 60, 58, 64, 59, 133, 68, 69, 50, 54, 53, 63, 63, 55, 64, 75, 67, 60, 66, 77, 93, 73, 68, 63, 64, 60, 84, 61, 90, 80, 60, 67, 64, 59, 58, 83, 64, 57, 57, 59, 60, 67, 56, 59, 86, 73, 52, 70, 56, 76, 75, 61, 62, 68, 61, 64, 76, 65, 66, 63, 81, 62, 53, 60, 55, 58, 65, 78, 58, 73, 80, 77, 88, 57, 66, 83, 54, 63, 65, 65, 48, 67, 72, 56, 63, 85, 59, 47, 51, 55, 93, 67, 59, 67, 60, 72, 62, 102, 69, 66, 79, 59, 64, 82, 55, 71, 88, 54, 56, 62, 72, 48, 62, 66, 62, 66, 68, 65, 61, 91, 59, 59, 51, 61, 48, 62, 59, 70, 67, 54, 69, 75, 122, 56, 64, 63, 59, 64, 69, 71, 75, 70, 62, 91, 64, 75, 92, 73, 62, 48, 59, 57, 63, 66, 78, 68, 56, 69, 94, 60, 51, 55, 71, 68, 71, 62, 91, 60, 58, 56, 49, 59, 60, 60, 93, 64, 63, 97, 64, 70, 75, 53, 54, 49, 119, 63, 52, 61, 74, 59, 64, 63, 55, 79, 68, 74, 66, 89, 76, 61, 61, 76, 68, 53, 89, 61, 53, 65, 44, 65, 95, 55, 57, 53, 58, 50, 60, 88, 56, 72, 86, 42, 62, 62, 51, 55, 58, 76, 59, 53, 66, 65, 56, 62, 44, 76, 69, 51, 62, 62, 84, 78, 45, 62, 69, 61, 79, 52, 107, 58, 63, 53, 83, 57, 54, 64, 53, 62, 49, 70, 65, 53, 71, 58, 57, 113, 57, 71, 41, 60, 65, 54, 78, 66, 77, 71, 61, 76, 61, 70, 41, 90, 93, 56, 73, 51, 58, 66, 69, 75, 68, 59, 78, 82, 43, 62, 74, 70, 85, 53, 66, 49, 122, 60, 68, 71, 71, 41, 55, 58, 61, 53, 56, 54, 70, 75, 93, 73, 64, 54, 70, 71, 57, 78, 84, 72, 72, 60, 59, 72, 59, 58, 45, 67, 98, 84, 57, 42, 58, 66, 77, 48, 65, 47, 38, 75, 69, 64, 54, 74, 71, 59, 76, 77, 71, 48, 51, 66, 67, 65, 65, 55, 79, 61, 58, 71, 101, 85, 53, 64, 64, 52, 47, 70, 58, 68, 54, 65, 66, 66, 53, 64, 76, 59, 62, 68, 67, 64, 46, 47, 80, 63, 74, 43, 62, 76, 50, 90, 95, 51, 53, 49, 73, 59, 52, 82, 53, 72, 55, 69, 80, 79, 93, 81, 89, 54, 60, 68, 69, 75, 38, 62, 71, 66, 52, 69, 62, 44, 53, 89, 63, 61, 72, 69, 69, 59, 53, 66, 74, 58, 50, 50, 75, 66, 85, 71, 55, 61, 73, 40, 63, 57, 63, 84, 71, 59, 64, 100, 92, 72, 56, 40, 72, 42, 62, 86, 85, 57, 76, 65, 79, 46, 75, 73, 76, 84, 85, 48, 80, 58, 63, 71, 43, 49, 75, 58, 96, 49, 64, 57, 58, 57, 79, 49, 48, 44, 81, 45, 42, 62, 89, 46, 85, 67, 48, 132, 72, 70, 70, 74, 71, 84, 60, 51, 65, 94, 94, 55, 60, 65, 69, 96, 48, 63, 83, 59, 94, 61, 55, 88, 59, 56, 57, 67, 75, 61, 63, 74, 51, 63, 58, 58, 51, 68, 76, 83, 72, 47, 60, 61, 64, 58, 53, 68, 64, 56, 54, 54, 67, 53, 96, 71, 78, 71, 58, 68, 88, 75, 116, 73, 48, 73, 51, 84, 101, 63, 63, 61, 54, 53, 41, 71, 71, 61, 60, 72, 50, 53, 71, 67, 72, 58, 71, 77, 70, 56, 66, 58, 67, 55, 65, 66, 61, 72, 65, 74, 67, 63, 78, 65, 73, 51, 67, 64, 50, 76, 71, 73, 54, 71, 45, 79, 79, 65, 74, 56, 59, 91, 91, 71, 68, 43, 71, 72, 51, 96, 70, 54, 54, 64, 102, 79, 46, 58, 53, 54, 71, 57, 65, 52, 57, 66, 57, 67, 81, 57, 69, 54, 60, 43, 76, 60, 65, 67, 57, 131, 66, 76, 50, 62, 70, 101, 51, 88, 60, 63, 104, 74, 45, 71, 73, 78, 45, 54, 49, 57, 81, 76, 65, 39, 82, 61, 54, 48, 67, 65, 71, 81, 87, 63, 52, 65, 79, 51, 93, 70, 69, 57, 39, 88, 57, 63, 43, 74, 62, 64, 57, 52, 95, 56, 43, 65, 52, 52, 75, 48, 67, 58, 58, 77, 59, 67, 71, 55, 74, 53, 82, 86, 60, 45, 79, 50, 66, 74, 64, 61, 48, 62, 55, 66, 70, 68, 72, 101, 86, 75, 70, 79, 66, 58, 66, 79, 91, 74, 54, 51, 60, 76, 71, 66, 57, 67, 57, 71, 71, 54, 60, 51, 49, 58, 69, 76, 60, 52, 63, 46, 52, 65, 74, 52, 66, 66, 54, 94, 58, 81, 77, 52, 97, 73, 56, 107, 56, 77, 73, 83, 68, 59, 68, 66, 58, 73, 56, 102, 69, 63, 82, 77, 72, 85, 51, 58, 34, 57, 43, 57, 59, 62, 66, 77, 48, 68, 61, 73, 63, 95, 56, 61, 97, 48, 90, 59, 69, 52, 54, 57, 66, 58, 49, 44, 64, 65, 64, 72, 69, 89, 67, 35, 80, 62, 68, 81, 54, 65, 67, 64, 98, 57, 57, 93, 51, 75, 52, 77, 95, 73, 46, 74, 65, 112, 64, 44, 70, 53, 64, 65, 54, 73, 56, 54, 67, 77, 76, 68, 45, 60, 41, 69, 60, 68, 63, 69, 58, 45, 52, 71, 66, 66, 63, 59, 61, 60, 47, 60, 56, 59, 71, 71, 80, 61, 61, 60, 65, 74, 75, 54, 50, 76, 62, 95, 41, 58, 72, 60, 57, 52, 62, 70, 65, 67, 76, 74, 66, 63, 61, 69, 55, 57, 63, 59, 87, 81, 65, 50, 56, 62, 63, 54, 51, 42, 66, 73, 71, 52, 63, 95, 56, 61, 57, 49, 69, 96, 54, 54, 58, 78, 74, 45, 78, 54, 75, 58, 70, 45, 62, 62, 59, 75, 57, 72, 61, 95, 64, 51, 74, 60, 62, 58, 76, 91, 71, 55, 66, 79, 65, 40, 69, 68, 59, 74, 122, 68, 67, 46, 57, 67, 66, 59, 83, 47, 75, 72, 62, 77, 93, 69, 60, 49, 52, 64, 64, 71, 70, 56, 66, 55, 60, 66, 68, 53, 53, 56, 72, 77, 79, 73, 61, 49, 47, 42, 79, 71, 52, 85, 57, 90, 69, 56, 50, 63, 54, 56, 71, 65, 68, 57, 55, 117, 109, 90, 65, 68, 57, 64, 69, 84, 64, 62, 81, 83, 59, 63, 69, 76, 66, 52, 59, 73, 51, 70, 82, 83, 66, 62, 69, 53, 71, 50, 47, 53, 58, 49, 58, 58, 75, 77, 74, 47, 72, 73, 58, 73, 59, 71, 80, 73, 72, 61, 77, 87, 60, 46, 84, 76, 64, 49, 60, 54, 70, 61, 74, 69, 60, 90, 77, 58, 68, 89, 53, 79, 98, 102, 61, 49, 88, 68, 71, 68, 71, 83, 70, 51, 50, 42, 77, 56, 58, 64, 46, 74, 155, 71, 62, 47, 65, 64, 66, 49, 71, 58, 53, 65, 53, 53, 69, 67, 68, 63, 74, 77, 71, 51, 71, 75, 55, 67, 82, 56, 80, 67, 83, 61, 63, 72, 46, 71, 67, 109, 85, 56, 81, 71, 53, 65, 87, 67, 67, 77, 70, 67, 55, 63, 53, 75, 60, 89, 52, 69, 81, 55, 73, 73, 63, 66, 49, 54, 80, 54, 76, 56, 57, 67, 54, 59, 81, 57, 62, 90, 80, 48, 60, 114, 59, 66, 63, 91, 45, 53, 94, 67, 73, 54, 58, 48, 84, 55, 61, 57, 52, 81, 63, 54, 68, 49, 69, 71, 57, 61, 82, 65, 63, 72, 80, 66, 65, 43, 60, 56, 90, 60, 47, 47, 79, 65, 64, 73, 55, 82, 64, 76, 59, 39, 101, 41, 106, 69, 70, 59, 53, 58, 68, 70, 76, 52, 75, 67, 55, 60, 44, 51, 90, 56, 53, 75, 77, 70, 86, 72, 68, 68, 62, 88, 75, 80, 44, 69, 81, 61, 76, 50, 76, 55, 75, 82, 87, 61, 51, 48, 58, 63, 53, 71, 61, 56, 64, 43, 52, 69, 56, 66, 47, 58, 54, 70, 86, 64, 45, 72, 74, 89, 69, 44, 83, 50, 54, 66, 97, 64, 61, 59, 63, 73, 54, 71, 55, 57, 51, 79, 51, 65, 51, 49, 59, 63, 72, 65, 58, 52, 71, 61, 73, 72, 96, 59, 86, 72, 66, 46, 57, 55, 78, 75, 70, 60, 59, 58, 82, 63, 47, 79, 64, 61, 64, 57, 85, 65, 65, 48, 57, 52, 53, 74, 53, 69, 59, 78, 71, 54, 52, 47, 75, 73, 73, 53, 77, 69, 77, 55, 62, 76, 55, 47, 51, 68, 68, 65, 68, 64, 106, 47, 76, 43, 96, 70, 68, 52, 63, 45, 57, 45, 73, 51, 59, 87, 60, 60, 146, 46, 46, 69, 55, 85, 73, 63, 68, 60, 77, 66, 69, 64, 52, 58, 72, 64, 91, 66, 66, 71, 53, 73, 49, 84, 52, 77, 68, 51, 70, 123, 58, 80, 54, 50, 57, 63, 58, 67, 60, 59, 63, 59, 56, 63, 44, 64, 65, 62, 94, 67, 67, 56, 73, 66, 66, 68, 67, 63, 75, 81, 45, 53, 50, 81, 66, 70, 58, 66, 82, 69, 70, 78, 55, 88, 81, 63, 71, 63, 79, 61, 53, 60, 86, 70, 53, 65, 70, 58, 71, 96, 60, 50, 62, 58, 61, 50, 99, 66, 54, 94, 65, 111, 67, 52, 49, 53, 66, 66, 51, 93, 56, 36, 72, 54, 63, 59, 68, 73, 72, 66, 51, 82, 63, 102, 58, 68, 64, 50, 63, 64, 70, 50, 74, 53, 77, 81, 80, 55, 78, 55, 56, 68, 65, 63, 57, 67, 66, 63, 61, 54, 42, 75, 38, 48, 79, 80, 68, 75, 46, 57, 60, 75, 66, 54, 78, 88, 71, 58, 55, 52, 97, 67, 54, 44, 48, 60, 72, 58, 77, 98, 60, 65, 61, 56, 70, 61, 68, 52, 70, 67, 76, 53, 89, 79, 54, 78, 52, 75, 62, 77, 58, 54, 91, 62, 65, 58, 50, 58, 53, 45, 61, 58, 64, 50, 73, 76, 76, 78, 55, 78, 71, 63, 77, 88, 52, 89, 63, 71, 55, 50, 64, 65, 58, 60, 60, 65, 93, 73, 63, 55, 78, 61, 60, 80, 68, 76, 73, 78, 68, 64, 71, 64, 109, 70, 75, 77, 65, 80, 72, 50, 57, 72, 49, 50, 58, 70, 59, 68, 61, 52, 64, 58, 47, 52, 59, 70, 81, 55, 61, 57, 62, 110, 55, 92, 71, 66, 52, 75, 84, 59, 61, 81, 44, 59, 61, 60, 64, 85, 61, 51, 63, 68, 70, 105, 74, 49, 67, 51, 67, 82, 80, 69, 77, 66, 82, 63, 60, 62, 54, 89, 59, 59, 83, 56, 61, 80, 45, 74, 65, 56, 61, 42, 62, 78, 49, 78, 49, 58, 71, 55, 82, 63, 55, 65, 81, 68, 84, 108, 79, 62, 59, 126, 44, 64, 60, 52, 64, 51, 53, 77, 99, 59, 70, 71, 60, 70, 56, 67, 105, 45, 77, 77, 54, 55, 51, 51, 35, 82, 69, 69, 73, 60, 68, 71, 63, 71, 75, 68, 79, 48, 58, 53, 57, 67, 48, 52, 73, 62, 79, 68, 66, 55, 66, 61, 74, 98, 63, 65, 67, 64, 72, 49, 40, 53, 57, 61, 87, 69, 55, 78, 60, 54, 68, 80, 73, 66, 84, 71, 102, 78, 52, 71, 100, 53, 67, 51, 52, 88, 72, 69, 64, 74, 70, 67, 59, 99, 78, 82, 74, 73, 56, 68, 53, 39, 65, 63, 72, 65, 88, 59, 56, 76, 48, 64, 58, 85, 69, 73, 53, 63, 94, 73, 72, 52, 59, 62, 48, 58, 111, 61, 46, 59, 52, 38, 60, 80, 59, 67, 62, 66, 60, 62, 62, 91, 92, 64, 87, 48, 64, 50, 66, 84, 72, 32, 53, 69, 83, 57, 55, 44, 66, 56, 101, 113, 124, 59, 66, 78, 58, 67, 57, 67, 61, 45, 57, 61, 78, 85, 38, 67, 75, 74, 80, 53, 69, 62, 56, 57, 59, 71, 63, 72, 45, 66, 60, 72, 69, 55, 93, 72, 64, 88, 50, 50, 66, 65, 69, 68, 71, 83, 67, 53, 73, 74, 71, 83, 56, 115, 60, 68, 82, 72, 46, 52, 82, 80, 54, 76, 74, 71, 51, 51, 57, 49, 58, 46, 58, 70, 62, 53, 43, 68, 70, 69, 63, 50, 67, 62, 101, 64, 88, 54, 71, 63, 41, 66, 68, 83, 86, 83, 61, 65, 66, 63, 55, 59, 65, 60, 70, 66, 51, 63, 65, 53, 54, 42, 66, 57, 93, 68, 64, 61, 46, 73, 67, 70, 53, 87, 64, 61, 56, 36, 77, 53, 68, 54, 65, 75, 70, 131, 86, 56, 71, 50, 68, 64, 74, 75, 50, 59, 62, 46, 54, 65, 99, 58, 49, 51, 75, 49, 95, 57, 60, 52, 66, 65, 62, 92, 54, 73, 49, 58, 71, 60, 48, 88, 89, 65, 69, 73, 63, 62, 59, 46, 55, 67, 85, 65, 84, 47, 66, 66, 57, 60, 73, 67, 104, 68, 65, 78, 52, 55, 61, 61, 54, 45, 57, 59, 53, 54, 80, 67, 62, 69, 69, 51, 84, 66, 66, 75, 63, 57, 90, 68, 69, 70, 108, 76, 76, 89, 59, 61, 58, 82, 73, 57, 80, 47, 58, 89, 73, 51, 62, 60, 72, 112, 50, 85, 57, 51, 62, 100, 94, 58, 73, 84, 94, 50, 160, 80, 68, 44, 73, 50, 68, 82, 44, 73, 105, 63, 73, 63, 88, 63, 77, 63, 64, 58, 55, 45, 59, 50, 69, 75, 82, 65, 71, 50, 77, 83, 59, 65, 78, 87, 66, 60, 52, 57, 50, 59, 92, 85, 76, 45, 67, 74, 67, 82, 70, 143, 59, 67, 106, 58, 46, 60, 90, 76, 72, 66, 67, 41, 57, 55, 54, 71, 57, 59, 101, 84, 51, 48, 66, 64, 77, 86, 46, 58, 55, 57, 48, 64, 58, 63, 78, 70, 67, 50, 67, 64, 66, 75, 62, 66, 74, 67, 78, 79, 67, 64, 80, 62, 76, 71, 71, 74, 82, 53, 60, 71, 66, 76, 85, 83, 62, 73, 78, 61, 65, 65, 97, 72, 70, 63, 85, 112, 72, 55, 67, 54, 80, 62, 67, 52, 64, 70, 73, 60, 69, 73, 65, 71, 53, 84, 69, 64, 53, 69, 64, 60, 74, 55, 56, 66, 59, 58, 57, 59, 61, 57, 49, 60, 64, 81, 67, 60, 61, 47, 51, 52, 68, 67, 86, 46, 69, 78, 56, 112, 91, 49, 49, 70, 84, 55, 79, 64, 70, 72, 65, 63, 58, 80, 69, 59, 66, 68, 54, 63, 78, 70, 44, 84, 70, 57, 49, 54, 71, 59, 67, 61, 58, 54, 54, 70, 88, 67, 95, 94, 80, 73, 85, 71, 77, 62, 62, 74, 46, 99, 66, 101, 79, 76, 65, 49, 77, 61, 73, 64, 52, 58, 60, 71, 85, 68, 65, 51, 67, 61, 58, 73, 55, 43, 28, 72, 64, 72, 51, 55, 58, 59, 58, 69, 76, 64, 104, 78, 72, 55, 73, 47, 59, 86, 94, 67, 65, 69, 81, 70, 74, 51, 69, 73, 65, 57, 84, 66, 78, 49, 73, 74, 66, 72, 80, 45, 56, 83, 82, 57, 73, 52, 65, 67, 56, 72, 76, 62, 58, 52, 57, 84, 59, 66, 73, 77, 72, 75, 71, 71, 49, 55, 72, 55, 48, 52, 67, 79, 90, 77, 83, 64, 46, 67, 59, 57, 84, 62, 80, 62, 64, 94, 52, 73, 76, 87, 75, 70, 73, 64, 61, 98, 73, 68, 70, 55, 62, 58, 52, 69, 50, 81, 68, 62, 85, 70, 54, 67, 64, 58, 70, 40, 77, 40, 65, 77, 50, 46, 62, 80, 71, 59, 43, 67, 75, 49, 76, 49, 66, 64, 75, 58, 45, 81, 86, 84, 65, 69, 89, 76, 63, 71, 60, 74, 60, 61, 81, 68, 57, 61, 63, 53, 60, 89, 84, 49, 95, 62, 60, 62, 69, 63, 58, 86, 48, 61, 60, 51, 70, 47, 52, 42, 67, 63, 74, 72, 83, 40, 60, 69, 53, 55, 55, 63, 51, 81, 65, 83, 70, 70, 70, 68, 67, 68, 104, 49, 76, 66, 69, 63, 93, 62, 45, 51, 93, 89, 56, 56, 56, 71, 86, 84, 78, 50, 55, 62, 67, 75, 46, 98, 68, 53, 61, 60, 67, 61, 59, 55, 62, 67, 42, 87, 97, 87, 65, 56, 54, 54, 67, 58, 56, 66, 77, 97, 66, 52, 86, 68, 75, 55, 67, 76, 49, 52, 34, 66, 90, 63, 78, 75, 58, 55, 59, 72, 56, 88, 58, 55, 70, 64, 40, 62, 70, 93, 66, 65, 52, 75, 57, 80, 70, 75, 64, 71, 53, 63, 67, 68, 70, 65, 47, 68, 37, 73, 63, 84, 58, 58, 52, 48, 55, 85, 61, 71, 51, 62, 68, 54, 77, 77, 68, 54, 55, 55, 82, 77, 103, 62, 70, 58, 68, 47, 82, 61, 77, 50, 66, 68, 74, 88, 61, 68, 83, 84, 56, 42, 66, 67, 50, 61, 92, 64, 49, 26, 55, 72, 52, 75, 36, 76, 58, 72, 100, 61, 90, 61, 77, 47, 54, 59, 58, 52, 68, 66, 72, 42, 89, 68, 72, 60, 92, 64, 52, 106, 79, 94, 54, 60, 53, 57, 114, 67, 75, 48, 80, 59, 78, 77, 68, 53, 103, 58, 68, 39, 82, 73, 77, 59, 46, 51, 67, 68, 53, 45, 110, 73, 83, 61, 47, 42, 56, 52, 44, 66, 79, 65, 82, 83, 42, 82, 59, 68, 95, 63, 73, 59, 53, 57, 56, 71, 70, 71, 107, 74, 65, 81, 51, 62, 70, 58, 63, 60, 63, 55, 60, 58, 54, 62, 71, 69, 73, 64, 74, 65, 77, 46, 60, 49, 61, 59, 55, 61, 71, 54, 64, 77, 64, 59, 66, 63, 80, 77, 72, 93, 61, 60, 67, 63, 49, 59, 63, 64, 56, 58, 60, 78, 50, 73, 53, 87, 75, 78, 64, 78, 60, 62, 92, 61, 58, 62, 55, 53, 69, 59, 71, 120, 78, 56, 76, 66, 93, 64, 76, 64, 78, 55, 96, 63, 81, 75, 86, 80, 51, 61, 70, 69, 53, 114, 54, 55, 90, 64, 43, 60, 90, 47, 68, 73, 76, 76, 95, 80, 120, 73, 45, 48, 80, 70, 72, 80, 74, 68, 75, 76, 69, 89, 64, 56, 155, 62, 75, 49, 65, 52, 94, 45, 56, 42, 72, 73, 72, 54, 74, 83, 54, 43, 82, 76, 62, 61, 82, 78, 61, 70, 73, 36, 81, 58, 68, 51, 96, 53, 116, 69, 61, 60, 84, 85, 70, 67, 48, 84, 89, 62, 55, 64, 65, 99, 58, 46, 75, 62, 49, 71, 69, 68, 56, 65, 61, 140, 38, 66, 91, 84, 52, 58, 70, 57, 40, 50, 61, 53, 58, 55, 51, 84, 71, 52, 49, 86, 46, 59, 77, 69, 60, 61, 89, 59, 63, 68, 54, 65, 90, 62, 59, 53, 69, 68, 57, 61, 78, 62, 73, 62, 60, 50, 65, 62, 65, 68, 63, 67, 70, 62, 68, 60, 64, 49, 97, 81, 69, 74, 56, 74, 63, 60, 58, 49, 62, 52, 88, 58, 65, 71, 81, 79, 56, 55, 70, 69, 61, 77, 82, 48, 91, 91, 84, 87, 56, 86, 75, 80, 53, 62, 71, 65, 80, 64, 54, 50, 74, 58, 49, 76, 80, 74, 49, 55, 58, 61, 59, 75, 54, 66, 58, 69, 77, 63, 68, 65, 69, 57, 70, 42, 63, 65, 67, 49, 58, 69, 76, 83, 72, 60, 68, 50, 64, 81, 58, 54, 55, 57, 95, 81, 70, 91, 64, 52, 68, 55, 79, 84, 50, 61, 44, 62, 52, 69, 78, 43, 57, 45, 99, 77, 34, 91, 45, 69, 85, 71, 60, 65, 41, 60, 58, 55, 110, 37, 89, 51, 60, 55, 49, 70, 54, 76, 63, 56, 63, 50, 64, 50, 62, 107, 74, 77, 66, 69, 60, 71, 61, 61, 86, 64, 59, 66, 86, 53, 69, 70, 98, 91, 54, 63, 50, 39, 67, 50, 55, 41, 55, 54, 41, 90, 61, 54, 93, 59, 68, 87, 53, 60, 53, 71, 69, 130, 65, 47, 81, 60, 52, 84, 102, 58, 90, 69, 73, 60, 74, 71, 60, 83, 63, 103, 72, 90, 71, 70, 59, 91, 67, 57, 56, 64, 61, 61, 61, 58, 68, 44, 82, 53, 85, 69, 47, 75, 74, 52, 81, 91, 70, 71, 67, 62, 77, 51, 68, 54, 79, 70, 70, 75, 45, 64, 70, 60, 85, 75, 69, 57, 72, 86, 82, 76, 67, 68, 63, 82, 54, 68, 102, 107, 67, 87, 60, 74, 71, 38, 66, 67, 71, 57, 120, 59, 78, 67, 75, 60, 74, 56, 71, 65, 86, 90, 67, 54, 71, 117, 68, 71, 56, 54, 73, 54, 48, 64, 58, 64, 57, 60, 75, 66, 57, 70, 75, 55, 57, 50, 63, 90, 57, 69, 108, 64, 62, 76, 87, 51, 66, 49, 97, 66, 68, 94, 63, 50, 53, 81, 68, 113, 53, 79, 78, 60, 46, 58, 64, 61, 67, 67, 66, 58, 59, 81, 50, 41, 49, 42, 59, 58, 59, 54, 75, 63, 63, 71, 75, 56, 70, 55, 76, 103, 51, 74, 54, 96, 49, 33, 54, 76, 71, 67, 57, 53, 57, 66, 73, 39, 74, 96, 72, 88, 77, 71, 94, 78, 85, 66, 62, 51, 52, 71, 59, 86, 75, 54, 67, 57, 71, 58, 57, 57, 62, 64, 68, 89, 76, 59, 45, 41, 61, 83, 56, 73, 78, 49, 70, 63, 59, 73, 50, 58, 59, 48, 85, 55, 39, 94, 55, 68, 91, 62, 69, 54, 63, 61, 49, 72, 67, 66, 81, 61, 72, 71, 71, 53, 44, 70, 71, 62, 66, 93, 116, 65, 40, 66, 72, 56, 93, 73, 40, 69, 86, 59, 56, 74, 71, 86, 66, 41, 57, 53, 61, 48, 75, 78, 58, 83, 71, 45, 78, 62, 67, 40, 57, 58, 72, 106, 70, 79, 64, 55, 64, 61, 47, 97, 53, 105, 55, 100, 63, 60, 59, 84, 70, 39, 64, 62, 48, 57, 84, 86, 71, 46, 68, 43, 81, 85, 44, 40, 59, 59, 44, 62, 61, 79, 36, 67, 72, 51, 78, 73, 54, 52, 68, 75, 57, 50, 52, 42, 59, 78, 64, 67, 69, 60, 73, 77, 67, 40, 84, 61, 39, 55, 46, 51, 61, 53, 64, 53, 58, 74, 56, 79, 81, 52, 65, 45, 70, 55, 48, 63, 56, 78, 39, 87, 69, 71, 68, 63, 50, 55, 81, 57, 54, 62, 76, 64, 64, 83, 95, 63, 64, 120, 54, 87, 82, 83, 72, 60, 77, 52, 60, 71, 70, 61, 77, 43, 43, 62, 78, 87, 64, 63, 69, 53, 59, 85, 56, 75, 65, 46, 72, 81, 94, 55, 84, 62, 41, 67, 86, 82, 73, 64, 85, 56, 117, 76, 54, 64, 59, 83, 55, 113, 76, 36, 91, 54, 66, 93, 74, 80, 72, 59, 103, 53, 108, 54, 61, 62, 75, 70, 78, 71, 99, 55, 51, 71, 88, 68, 83, 62, 68, 69, 72, 83, 59, 50, 51, 59, 58, 46, 56, 80, 51, 40, 78, 78, 68, 64, 65, 66, 82, 57, 126, 63, 58, 76, 98, 56, 39, 85, 44, 54, 64, 66, 55, 85, 73, 81, 63, 61, 71, 67, 67, 75, 62, 94, 75, 92, 57, 66, 71, 71, 71, 75, 52, 53, 77, 79, 62, 50, 42, 56, 48, 64, 96, 41, 68, 66, 50, 70, 55, 69, 60, 54, 95, 73, 82, 67, 53, 42, 69, 58, 47, 81, 54, 97, 62, 47, 74, 56, 73, 62, 56, 69, 59, 58, 76, 60, 69, 58, 55, 82, 64, 67, 56, 73, 66, 70, 52, 79, 82, 96, 75, 81, 61, 29, 60, 57, 63, 64, 69, 79, 45, 65, 64, 78, 47, 85, 61, 70, 88, 88, 62, 58, 50, 59, 39, 60, 70, 76, 58, 63, 79, 56, 70, 97, 108, 77, 66, 79, 66, 77, 63, 68, 61, 46, 56, 58, 60, 50, 77, 61, 53, 55, 78, 62, 59, 48, 42, 61, 60, 52, 67, 55, 60, 75, 58, 67, 82, 58, 70, 47, 57, 62, 54, 66, 58, 75, 67, 73, 53, 41, 72, 54, 49, 51, 77, 57, 95, 85, 53, 61, 76, 33, 74, 76, 53, 80, 46, 66, 53, 74, 62, 90, 51, 58, 89, 71, 81, 79, 59, 74, 78, 54, 77, 46, 63, 43, 78, 66, 90, 74, 50, 71, 81, 56, 55, 86, 85, 46, 70, 85, 64, 59, 55, 46, 122, 78, 71, 65, 68, 74, 55, 98, 38, 48, 70, 95, 67, 82, 71, 66, 58, 91, 71, 98, 48, 56, 65, 76, 82, 50, 63, 53, 71, 70, 64, 51, 59, 71, 77, 72, 78, 67, 46, 56, 48, 73, 95, 44, 68, 68, 54, 69, 42, 60, 46, 62, 89, 116, 66, 73, 55, 49, 54, 51, 65, 40, 51, 63, 82, 81, 66, 61, 72, 64, 83, 99, 60, 78, 64, 80, 62, 78, 62, 53, 60, 47, 43, 77, 98, 55, 67, 49, 68, 76, 69, 68, 58, 49, 72, 69, 58, 60, 59, 53, 59, 51, 100, 55, 55, 67, 64, 94, 71, 56, 75, 52, 59, 46, 51, 33, 57, 108, 58, 75, 68, 58, 77, 75, 64, 68, 102, 75, 58, 81, 94, 84, 63, 58, 57, 90, 57, 70, 65, 64, 52, 57, 82, 75, 48, 74, 52, 105, 48, 35, 73, 74, 60, 64, 79, 71, 76, 72, 52, 60, 60, 62, 72, 97, 65, 64, 66, 59, 63, 71, 72, 73, 73, 72, 75, 60, 71, 136, 52, 49, 87, 57, 48, 46, 90, 51, 68, 69, 55, 67, 66, 65, 61, 88, 50, 81, 65, 59, 51, 56, 48, 65, 49, 76, 64, 66, 56, 79, 55, 67, 78, 77, 73, 53, 69, 69, 64, 60, 70, 91, 89, 61, 68, 70, 75, 51, 60, 70, 72, 55, 67, 50, 48, 73, 63, 48, 97, 90, 51, 62, 57, 61, 69, 63, 73, 63, 53, 41, 80, 61, 139, 73, 38, 58, 69, 101, 71, 69, 65, 57, 67, 47, 82, 76, 80, 71, 71, 51, 50, 50, 72, 86, 56, 48, 45, 60, 73, 55, 55, 71, 55, 66, 57, 67, 56, 62, 49, 70, 74, 75, 59, 73, 63, 63, 69, 57, 75, 74, 74, 64, 64, 49, 68, 59, 56, 80, 43, 52, 69, 72, 56, 60, 101, 84, 55, 62, 39, 63, 52, 48, 53, 56, 93, 47, 71, 73, 77, 61, 74, 81, 58, 63, 37, 57, 58, 78, 73, 78, 57, 85, 54, 49, 57, 58, 73, 71, 95, 56, 51, 59, 68, 49, 47, 55, 70, 61, 45, 54, 62, 87, 49, 61, 74, 50, 52, 71, 66, 61, 38, 103, 78, 87, 64, 69, 54, 83, 88, 50, 63, 72, 47, 62, 71, 104, 77, 73, 94, 95, 63, 56, 86, 68, 108, 56, 54, 71, 46, 61, 81, 94, 78, 58, 110, 102, 60, 73, 57, 53, 68, 44, 67, 70, 92, 71, 74, 67, 53, 78, 69, 50, 47, 86, 77, 73, 61, 60, 48, 79, 66, 78, 55, 74, 83, 45, 53, 80, 64, 73, 52, 60, 68, 71, 71, 95, 57, 49, 62, 56, 59, 49, 95, 50, 75, 60, 51, 62, 54, 56, 70, 61, 59, 56, 64, 78, 54, 59, 64, 51, 71, 63, 85, 89, 71, 62, 90, 48, 79, 61, 53, 49, 69, 58, 63, 69, 63, 64, 76, 75, 58, 42, 66, 54, 67, 86, 90, 64, 55, 66, 42, 74, 37, 54, 52, 52, 70, 51, 67, 57, 77, 67, 54, 67, 54, 63, 58, 89, 61, 65, 116, 74, 63, 68, 70, 86, 58, 83, 66, 70, 58, 69, 56, 70, 78, 61, 72, 58, 49, 54, 73, 83, 71, 48, 47, 81, 88, 74, 51, 82, 63, 66, 72, 57, 52, 84, 89, 75, 68, 49, 75, 72, 54, 69, 40, 56, 62, 49, 68, 44, 63, 56, 51, 79, 72, 67, 82, 72, 103, 62, 77, 68, 57, 71, 43, 72, 46, 62, 78, 63, 48, 65, 71, 47, 65, 65, 57, 67, 69, 48, 45, 60, 80, 73, 49, 64, 75, 94, 72, 71, 57, 68, 91, 73, 81, 54, 57, 101, 71, 61, 61, 64, 60, 105, 68, 64, 78, 72, 59, 50, 69, 50, 73, 66, 79, 89, 78, 95, 57, 59, 73, 50, 56, 67, 60, 64, 57, 46, 60, 42, 76, 72, 59, 70, 61, 54, 76, 84, 51, 51, 71, 50, 68, 60, 61, 56, 75, 91, 69, 69, 87, 91, 98, 73, 62, 73, 62, 78, 58, 47, 62, 54, 104, 89, 59, 52, 69, 51, 67, 59, 73, 54, 63, 60, 56, 54, 109, 67, 78, 62, 60, 42, 65, 58, 85, 65, 62, 87, 98, 61, 63, 65, 60, 58, 62, 50, 58, 69, 71, 66, 49, 63, 60, 60, 63, 74, 53, 68, 42, 54, 63, 84, 56, 72, 66, 95, 71, 63, 67, 55, 49, 57, 58, 74, 37, 74, 59, 55, 112, 51, 65, 61, 70, 76, 43, 70, 80, 58, 58, 62, 50, 55, 46, 79, 76, 66, 109, 63, 63, 70, 78, 66, 57, 48, 42, 38, 63, 62, 65, 64, 82, 60, 59, 60, 65, 52, 61, 53, 72, 55, 53, 53, 46, 72, 59, 41, 53, 51, 67, 87, 82, 81, 67, 55, 78, 50, 83, 73, 35, 55, 80, 59, 88, 46, 64, 67, 56, 47, 61, 60, 63, 88, 54, 69, 54, 47, 55, 68, 72, 72, 50, 73, 118, 64, 67, 58, 93, 54, 56, 65, 70, 51, 67, 67, 47, 63, 78, 75, 76, 50, 52, 63, 74, 58, 66, 53, 81, 76, 77, 53, 65, 69, 83, 72, 79, 61, 62, 58, 66, 46, 48, 90, 62, 59, 86, 101, 48, 58, 80, 55, 67, 63, 72, 99, 67, 57, 111, 66, 42, 54, 49, 73, 66, 66, 106, 118, 78, 61, 66, 86, 47, 62, 51, 31, 76, 62, 61, 64, 60, 104, 74, 94, 38, 52, 73, 79, 84, 67, 68, 66, 50, 67, 81, 76, 51, 89, 58, 72, 70, 73, 99, 52, 82, 58, 96, 71, 57, 70, 53, 88, 61, 60, 63, 83, 56, 71, 60, 70, 49, 80, 86, 54, 79, 61, 56, 64, 64, 63, 54, 52, 45, 66, 89, 73, 53, 101, 74, 64, 52, 57, 82, 56, 67, 64, 87, 65, 50, 71, 48, 62, 67, 65, 62, 55, 55, 88, 85, 64, 99, 59, 46, 69, 76, 72, 65, 54, 48, 66, 65, 52, 67, 66, 69, 68, 81, 68, 56, 48, 94, 76, 66, 65, 105, 52, 50, 71, 62, 53, 67, 53, 100, 72, 66, 48, 48, 62, 68, 42, 74, 58, 56, 38, 50, 68, 76, 65, 85, 72, 69, 63, 57, 63, 89, 63, 67, 52, 81, 69, 69, 81, 70, 51, 57, 58, 73, 67, 58, 52, 62, 73, 40, 78, 76, 81, 40, 86, 130, 55, 66, 89, 47, 65, 72, 76, 67, 77, 78, 62, 70, 49, 76, 58, 83, 97, 65, 53, 68, 58, 58, 49, 96, 57, 87, 46, 63, 55, 60, 59, 76, 81, 73, 74, 58, 52, 78, 57, 63, 76, 54, 83, 45, 78, 67, 77, 76, 121, 65, 135, 66, 66, 76, 54, 66, 58, 78, 43, 82, 69, 57, 78, 65, 60, 65, 58, 101, 93, 75, 59, 73, 91, 58, 70, 75, 61, 68, 62, 80, 46, 60, 44, 72, 78, 76, 89, 87, 66, 82, 63, 57, 87, 70, 84, 63, 68, 68, 64, 67, 74, 52, 74, 96, 69, 76, 67, 63, 54, 50, 72, 83, 71, 74, 77, 48, 56, 52, 77, 64, 48, 56, 72, 92, 46, 60, 78, 67, 53, 54, 55, 49, 51, 62, 82, 69, 72, 58, 82, 99, 85, 63, 72, 55, 59, 47, 72, 62, 73, 52, 69, 60, 56, 74, 75, 68, 59, 79, 89, 80, 55, 73, 86, 72, 61, 53, 62, 78, 61, 53, 59, 58, 53, 54, 49, 58, 56, 92, 56, 70, 64, 66, 49, 65, 89, 70, 81, 62, 56, 72, 51, 54, 67, 97, 66, 92, 92, 82, 72, 73, 53, 75, 77, 61, 57, 58, 88, 53, 56, 50, 78, 64, 68, 53, 67, 70, 50, 71, 52, 56, 53, 93, 53, 56, 69, 82, 82, 54, 75, 53, 67, 59, 73, 65, 63, 46, 67, 72, 70, 98, 59, 43, 69, 70, 55, 54, 67, 78, 81, 59, 67, 123, 67, 98, 49, 53, 69, 106, 70, 73, 63, 55, 77, 70, 59, 48, 68, 63, 79, 76, 70, 56, 48, 59, 51, 61, 66, 60, 77, 89, 72, 59, 41, 51, 109, 55, 49, 72, 55, 62, 73, 59, 64, 60, 61, 50, 49, 64, 50, 66, 57, 55, 63, 65, 41, 58, 81, 63, 60, 67, 57, 54, 64, 46, 80, 46, 77, 68, 73, 81, 60, 58, 93, 55, 81, 81, 54, 64, 62, 59, 64, 65, 63, 56, 81, 72, 80, 70, 102, 67, 80, 69, 61, 67, 62, 77, 49, 70, 63, 67, 77, 37, 50, 70, 60, 87, 61, 57, 60, 61, 71, 65, 57, 50, 61, 89, 59, 69, 53, 44, 70, 105, 55, 47, 72, 59, 89, 58, 72, 97, 154, 70, 107, 54, 63, 81, 87, 54, 62, 62, 77, 67, 95, 50, 107, 93, 45, 90, 69, 57, 84, 67, 94, 57, 48, 79, 80, 80, 69, 55, 86, 84, 58, 58, 50, 76, 74, 74, 53, 97, 83, 69, 56, 33, 60, 105, 54, 70, 61, 64, 60, 32, 89, 57, 69, 79, 56, 64, 32, 62, 59, 87, 115, 41, 86, 77, 55, 59, 89, 58, 48, 63, 51, 69, 50, 65, 80, 62, 56, 59, 60, 75, 57, 78, 66, 59, 51, 61, 48, 86, 49, 47, 61, 59, 62, 65, 64, 68, 54, 62, 44, 57, 60, 80, 80, 65, 75, 88, 53, 73, 68, 94, 45, 53, 59, 47, 48, 75, 98, 53, 61, 64, 74, 78, 50, 79, 96, 70, 66, 62, 75, 79, 74, 78, 81, 60, 61, 59, 66, 53, 49, 77, 47, 121, 91, 75, 63, 76, 63, 59, 51, 46, 60, 65, 77, 67, 52, 63, 63, 46, 76, 61, 68, 49, 61, 73, 77, 59, 76, 53, 64, 54, 55, 68, 56, 50, 74, 72, 88, 43, 85, 64, 51, 54, 49, 62, 40, 53, 58, 77, 68, 92, 55, 44, 53, 52, 56, 67, 71, 65, 71, 56, 58, 69, 62, 76, 75, 68, 60, 66, 57, 74, 77, 51, 64, 89, 47, 82, 59, 52, 66, 57, 59, 75, 80, 51, 69, 60, 48, 56, 68, 84, 83, 57, 51, 58, 70, 68, 71, 53, 77, 68, 49, 57, 50, 95, 77, 59, 80, 85, 62, 55, 61, 77, 70, 61, 71, 48, 62, 56, 69, 78, 56, 70, 44, 51, 56, 59, 67, 78, 52, 72, 114, 73, 52, 61, 71, 50, 62, 80, 50, 109, 40, 79, 105, 100, 64, 66, 60, 83, 52, 45, 91, 41, 71, 53, 62, 64, 71, 66, 76, 103, 51, 79, 76, 57, 54, 56, 80, 88, 84, 78, 63, 60, 65, 41, 54, 62, 55, 90, 52, 57, 75, 68, 59, 70, 56, 48, 68, 49, 81, 66, 66, 40, 51, 70, 76, 58, 74, 54, 61, 43, 43, 52, 53, 66, 60, 59, 60, 65, 49, 75, 54, 67, 61, 63, 58, 57, 69, 47, 71, 65, 59, 103, 92, 79, 47, 59, 74, 72, 85, 68, 61, 89, 61, 60, 44, 65, 73, 65, 92, 82, 70, 87, 47, 53, 40, 60, 67, 71, 65, 71, 35, 80, 48, 65, 106, 51, 65, 66, 58, 82, 50, 95, 46, 75, 69, 72, 56, 44, 50, 78, 75, 69, 56, 79, 112, 50, 77, 53, 61, 62, 103, 85, 66, 81, 80, 67, 75, 62, 53, 78, 52, 74, 77, 59, 67, 74, 68, 90, 80, 58, 52, 54, 43, 69, 55, 62, 58, 77, 79, 42, 79, 51, 72, 69, 63, 83, 67, 58, 78, 51, 53, 79, 78, 53, 48, 57, 63, 51, 67, 53, 45, 65, 60, 71, 55, 53, 54, 54, 75, 96, 76, 62, 59, 52, 64, 46, 56, 46, 63, 58, 47, 72, 73, 44, 49, 48, 110, 86, 56, 51, 70, 56, 66, 86, 77, 51, 57, 56, 67, 104, 62, 70, 58, 52, 81, 80, 51, 69, 51, 97, 78, 68, 83, 58, 67, 66, 80, 93, 76, 77, 63, 86, 52, 88, 72, 77, 80, 83, 60, 48, 85, 42, 62, 62, 58, 74, 99, 63, 69, 50, 59, 58, 78, 69, 67, 60, 55, 74, 57, 72, 70, 28, 55, 34, 74, 125, 50, 44, 55, 49, 67, 37, 51, 56, 53, 70, 68, 39, 56, 72, 56, 70, 69, 61, 43, 70, 65, 45, 45, 56, 56, 51, 68, 70, 67, 82, 49, 67, 65, 57, 102, 77, 73, 102, 77, 52, 55, 55, 67, 53, 51, 69, 71, 76, 62, 75, 69, 54, 90, 50, 77, 58, 90, 83, 53, 65, 45, 76, 59, 70, 80, 113, 50, 80, 63, 61, 68, 55, 74, 68, 77, 103, 64, 43, 38, 105, 62, 67, 78, 80, 68, 70, 54, 56, 65, 78, 60, 102, 67, 64, 57, 59, 80, 63, 43, 74, 56, 50, 53, 75, 58, 52, 59, 42, 65, 76, 93, 56, 68, 57, 77, 84, 56, 74, 67, 77, 59, 89, 145, 58, 61, 45, 56, 59, 75, 52, 66, 76, 61, 73, 59, 69, 83, 53, 70, 61, 53, 51, 64, 59, 77, 59, 72, 82, 66, 58, 48, 66, 55, 94, 84, 64, 50, 55, 59, 51, 62, 70, 78, 62, 63, 47, 42, 85, 70, 61, 107, 89, 72, 32, 50, 60, 54, 66, 61, 69, 71, 61, 67, 67, 60, 72, 71, 53, 73, 85, 61, 50, 93, 75, 69, 82, 84, 47, 53, 58, 114, 84, 134, 63, 84, 44, 77, 60, 56, 55, 46, 68, 75, 66, 51, 61, 72, 73, 69, 79, 78, 77, 44, 46, 55, 45, 58, 65, 63, 43, 62, 61, 52, 131, 76, 72, 92, 67, 75, 57, 76, 60, 61, 75, 49, 61, 64, 74, 72, 53, 58, 95, 46, 80, 47, 56, 65, 50, 73, 74, 53, 60, 76, 82, 72, 58, 72, 65, 53, 90, 42, 54, 76, 75, 72, 88, 65, 66, 62, 54, 64, 66, 74, 64, 69, 85, 39, 48, 51, 99, 79, 62, 63, 96, 98, 55, 70, 59, 45, 89, 63, 48, 94, 60, 93, 45, 80, 55, 80, 60, 69, 68, 60, 53, 111, 79, 66, 68, 58, 44, 60, 70, 58, 110, 44, 54, 81, 51, 71, 52, 58, 99, 100, 41, 59, 71, 83, 37, 74, 83, 53, 55, 75, 133, 57, 58, 70, 62, 52, 39, 62, 80, 55, 54, 64, 55, 76, 47, 82, 86, 51, 81, 83, 63, 71, 61, 60, 41, 72, 66, 38, 73, 104, 51, 59, 70, 71, 97, 34, 54, 54, 49, 70, 49, 68, 62, 59, 56, 57, 67, 58, 47, 60, 66, 58, 57, 48, 58, 58, 63, 59, 66, 58, 52, 80, 59, 48, 48, 66, 47, 40, 55, 56, 48, 64, 35, 93, 46, 73, 81, 63, 46, 84, 44, 42, 61, 88, 83, 84, 64, 67, 59, 72, 69, 67, 67, 45, 129, 64, 64, 71, 51, 65, 69, 70, 39, 49, 81, 53, 52, 67, 54, 46, 60, 56, 74, 66, 74, 57, 81, 52, 41, 50, 56, 54, 85, 62, 58, 61, 59, 93, 40, 52, 48, 79, 64, 74, 41, 77, 55, 61, 71, 68, 75, 87, 62, 79, 88, 59, 58, 56, 84, 69, 69, 70, 55, 57, 56, 49, 50, 65, 56, 120, 104, 72, 51, 52, 58, 62, 60, 56, 81, 77, 66, 44, 85, 60, 58, 65, 92, 59, 74, 67, 82, 77, 72, 59, 70, 68, 76, 64, 74, 85, 57, 55, 68, 72, 77, 63, 56, 84, 43, 113, 45, 65, 55, 62, 58, 51, 49, 97, 103, 76, 60, 68, 73, 54, 78, 93, 115, 75, 70, 87, 65, 85, 57, 69, 73, 65, 58, 48, 109, 68, 67, 64, 34, 56, 43, 82, 77, 69, 65, 66, 61, 61, 75, 69, 84, 58, 64, 83, 71, 63, 72, 88, 60, 58, 64, 60, 59, 78, 59, 60, 86, 54, 60, 60, 56, 67, 79, 62, 74, 59, 58, 81, 83, 76, 60, 63, 68, 69, 57, 54, 63, 36, 111, 81, 72, 55, 46, 76, 83, 66, 88, 63, 46, 76, 63, 57, 62, 87, 55, 104, 48, 81, 60, 88, 64, 53, 69, 34, 80, 76, 96, 60, 47, 60, 67, 58, 87, 80, 56, 72, 63, 35, 91, 65, 63, 59, 61, 54, 54, 73, 71, 55, 68, 72, 47, 73, 59, 81, 58, 64, 45, 57, 74, 53, 69, 65, 88, 74, 76, 60, 50, 65, 83, 97, 91, 53, 58, 74, 75, 88, 115, 46, 68, 54, 88, 65, 86, 38, 56, 62, 57, 65, 41, 113, 76, 70, 51, 59, 61, 45, 55, 64, 82, 45, 65, 77, 66, 60, 122, 58, 66, 58, 84, 67, 81, 99, 54, 99, 57, 73, 42, 57, 75, 103, 53, 44, 87, 54, 65, 99, 47, 59, 73, 88, 86, 80, 61, 50, 65, 57, 102, 67, 63, 58, 60, 61, 54, 70, 73, 60, 67, 93, 65, 54, 81, 56, 63, 63, 82, 73, 80, 36, 57, 62, 65, 55, 48, 68, 47, 61, 83, 66, 90, 65, 51, 61, 70, 78, 60, 48, 53, 35, 51, 55, 64, 75, 73, 37, 63, 108, 85, 82, 40, 58, 82, 57, 68, 66, 58, 57, 53, 53, 73, 54, 68, 102, 71, 82, 62, 30, 53, 54, 60, 52, 63, 74, 59, 58, 84, 75, 78, 51, 84, 69, 78, 53, 50, 72, 71, 79, 60, 68, 63, 109, 66, 112, 106, 62, 59, 32, 64, 100, 50, 59, 67, 64, 69, 57, 48, 70, 58, 81, 61, 60, 48, 43, 66, 55, 48, 47, 64, 63, 34, 54, 64, 70, 32, 67, 68, 72, 58, 79, 63, 81, 70, 78, 42, 64, 59, 79, 91, 76, 66, 70, 66, 80, 55, 66, 37, 59, 46, 108, 90, 47, 67, 36, 78, 63, 64, 52, 88, 42, 68, 65, 64, 68, 52, 55, 63, 89, 64, 73, 91, 28, 46, 95, 48, 46, 42, 65, 61, 71, 54, 58, 33, 133, 78, 59, 38, 59, 71, 43, 79, 78, 88, 55, 78, 57, 63, 63, 69, 81, 41, 45, 71, 78, 71, 67, 64, 114, 76, 64, 61, 90, 76, 80, 46, 110, 53, 47, 59, 46, 76, 53, 65, 48, 78, 45, 56, 73, 89, 44, 62, 73, 58, 54, 77, 50, 64, 66, 55, 69, 49, 63, 46, 49, 56, 60, 71, 70, 43, 74, 57, 64, 55, 64, 66, 42, 56, 42, 43, 62, 47, 87, 76, 52, 79, 52, 116, 50, 49, 51, 85, 110, 65, 68, 50, 64, 55, 43, 75, 63, 74, 60, 69, 65, 77, 51, 74, 49, 73, 55, 54, 102, 101, 84, 72, 60, 70, 95, 94, 60, 60, 52, 70, 71, 85, 64, 43, 60, 55, 42, 69, 65, 82, 56, 33, 74, 66, 68, 70, 86, 57, 82, 76, 57, 86, 46, 82, 57, 66, 62, 51, 68, 51, 74, 84, 48, 102, 78, 51, 69, 43, 38, 96, 94, 52, 69, 55, 58, 59, 76, 64, 60, 71, 73, 57, 41, 73, 78, 80, 46, 86, 84, 83, 64, 36, 66, 75, 62, 56, 51, 55, 103, 122, 59, 60, 65, 75, 65, 47, 64, 79, 91, 57, 62, 119, 61, 73, 69, 53, 95, 78, 55, 71, 79, 76, 64, 83, 81, 95, 59, 56, 53, 74, 57, 60, 57, 65, 76, 65, 80, 83, 74, 70, 85, 73, 38, 64, 72, 70, 50, 80, 66, 66, 81, 85, 57, 75, 60, 73, 75, 62, 93, 43, 54, 144, 79, 58, 50, 80, 44, 60, 68, 69, 71, 51, 70, 66, 80, 73, 61, 59, 56, 65, 70, 50, 41, 46, 83, 68, 76, 96, 49, 74, 77, 65, 73, 105, 82, 57, 61, 61, 79, 57, 70, 67, 70, 33, 68, 53, 59, 62, 84, 52, 71, 57, 67, 62, 75, 63, 62, 77, 52, 78, 69, 63, 62, 79, 52, 66, 102, 67, 55, 62, 59, 64, 57, 77, 66, 70, 74, 55, 61, 62, 67, 83, 83, 64, 59, 67, 63, 57, 58, 59, 67, 77, 58, 99, 96, 62, 62, 69, 69, 88, 91, 68, 65, 49, 56, 72, 64, 68, 61, 82, 64, 58, 58, 60, 40, 65, 46, 57, 68, 71, 91, 60, 49, 49, 63, 60, 64, 40, 49, 99, 77, 64, 55, 50, 75, 124, 43, 71, 61, 62, 59, 51, 84, 68, 51, 51, 114, 57, 63, 66, 61, 70, 66, 51, 69, 69, 53, 56, 45, 55, 80, 63, 96, 64, 77, 52, 66, 61, 62, 37, 58, 53, 57, 73, 58, 56, 66, 60, 59, 59, 63, 56, 61, 60, 58, 81, 66, 62, 60, 47, 61, 62, 71, 51, 68, 49, 49, 82, 58, 80, 61, 64, 57, 40, 78, 62, 74, 63, 53, 71, 62, 62, 59, 60, 65, 43, 86, 71, 83, 87, 83, 53, 59, 94, 63, 69, 56, 93, 51, 60, 57, 67, 49, 67, 67, 64, 57, 68, 94, 40, 70, 54, 60, 71, 88, 79, 90, 60, 52, 62, 57, 57, 82, 88, 77, 59, 62, 70, 48, 54, 65, 54, 56, 57, 55, 88, 71, 57, 56, 64, 54, 78, 65, 48, 135, 80, 76, 56, 62, 52, 69, 68, 62, 68, 68, 55, 71, 70, 68, 59, 55, 63, 71, 68, 54, 50, 64, 71, 74, 41, 61, 46, 69, 63, 54, 63, 42, 83, 56, 48, 58, 58, 73, 53, 57, 58, 72, 68, 76, 71, 59, 70, 74, 55, 57, 74, 65, 65, 66, 67, 55, 74, 55, 66, 55, 71, 54, 60, 57, 66, 63, 58, 64, 68, 55, 94, 70, 79, 64, 65, 54, 60, 75, 88, 77, 56, 59, 101, 48, 63, 74, 58, 80, 76, 71, 59, 59, 68, 72, 66, 71, 60, 74, 85, 61, 73, 54, 75, 63, 81, 54, 52, 58, 35, 66, 58, 77, 79, 57, 67, 53, 52, 66, 59, 78, 56, 60, 50, 60, 51, 67, 80, 68, 59, 65, 75, 52, 56, 54, 81, 64, 63, 84, 88, 62, 61, 67, 61, 61, 61, 55, 66, 60, 42, 70, 69, 68, 66, 96, 68, 55, 70, 75, 98, 98, 75, 41, 76, 73, 76, 71, 61, 45, 53, 61, 82, 54, 78, 44, 64, 53, 71, 61, 62, 60, 60, 58, 82, 67, 61, 70, 71, 68, 74, 62, 58, 74, 52, 64, 80, 79, 64, 71, 58, 46, 57, 53, 69, 70, 51, 76, 100, 76, 82, 64, 70, 101, 61, 73, 59, 46, 52, 59, 56, 69, 59, 70, 63, 65, 53, 56, 64, 57, 63, 55, 85, 66, 57, 60, 72, 56, 63, 60, 62, 65, 75, 76, 63, 85, 50, 57, 61, 61, 60, 65, 54, 62, 67, 61, 62, 53, 83, 68, 71, 63, 58, 61, 57, 68, 67, 69, 53, 64, 79, 59, 64, 48, 106, 67, 84, 56, 85, 66, 68, 56, 43, 49, 62, 73, 56, 68, 53, 61, 63, 53, 67, 41, 57, 56, 62, 62, 61, 35, 69, 56, 81, 64, 62, 80, 54, 71, 77, 52, 58, 57, 87, 68, 60, 53, 98, 70, 73, 65, 60, 83, 61, 60, 111, 61, 61, 66, 86, 65, 73, 55, 70, 67, 64, 64, 65, 54, 60, 63, 60, 59, 69, 63, 57, 59, 62, 61, 68, 70, 68, 83, 76, 73, 78, 51, 119, 55, 59, 170, 69, 49, 67, 68, 53, 79, 45, 62, 62, 61, 62, 67, 72, 51, 62, 59, 71, 67, 63, 58, 86, 62, 59, 70, 78, 54, 65, 73, 74, 70, 59, 78, 64, 89, 61, 67, 61, 75, 76, 67, 59, 61, 62, 53, 65, 52, 53, 57, 77, 69, 52, 59, 48, 104, 60, 61, 60, 63, 68, 64, 65, 71, 50, 46, 62, 79, 53, 58, 67, 94, 61, 68, 69, 66, 64, 66, 67, 112, 70, 108, 65, 77, 75, 59, 70, 63, 65, 52, 71, 62, 114, 68, 66, 70, 54, 61, 57, 102, 51, 78, 53, 52, 78, 64, 67, 51, 97, 51, 53, 65, 73, 53, 67, 72, 55, 65, 51, 62, 68, 69, 71, 64, 77, 67, 40, 62, 66, 52, 80, 58, 56, 50, 82, 51, 46, 67, 66, 52, 82, 66, 54, 54, 76, 54, 64, 99, 77, 64, 57, 105, 66, 98, 73, 82, 63, 106, 61, 54, 67, 84, 63, 69, 81, 51, 83, 51, 63, 49, 65, 72, 64, 115, 58, 73, 82, 74, 89, 65, 61, 57, 64, 147, 55, 97, 41, 86, 48, 66, 86, 64, 48, 72, 63, 51, 56, 89, 51, 69, 52, 68, 59, 59, 94, 76, 48, 68, 59, 67, 58, 72, 60, 75, 65, 64, 63, 88, 62, 56, 68, 48, 81, 84, 62, 56, 53, 52, 63, 63, 63, 58, 62, 53, 60, 71, 61, 51, 47, 85, 83, 89, 45, 62, 64, 87, 55, 63, 69, 59, 60, 53, 70, 74, 60, 68, 73, 62, 89, 66, 72, 70, 62, 79, 58, 61, 88, 63, 86, 70, 84, 59, 76, 56, 70, 61, 73, 75, 64, 61, 49, 63, 84, 56, 64, 62, 71, 76, 82, 68, 71, 85, 58, 76, 55, 61, 77, 56, 68, 71, 75, 57, 80, 55, 89, 48, 79, 49, 58, 61, 71, 59, 73, 71, 73, 74, 100, 59, 70, 58, 49, 59, 66, 55, 78, 60, 60, 54, 55, 69, 61, 55, 66, 86, 72, 59, 55, 75, 128, 76, 50, 66, 69, 52, 69, 52, 83, 64, 86, 81, 63, 88, 60, 80, 59, 78, 50, 57, 65, 67, 52, 69, 52, 88, 49, 88, 70, 63, 69, 84, 65, 61, 40, 59, 71, 71, 75, 50, 72, 90, 67, 64, 56, 78, 66, 75, 70, 70, 61, 56, 62, 63, 56, 60, 74, 56, 67, 69, 64, 64, 70, 52, 56, 88, 89, 58, 56, 71, 62, 60, 69, 47, 74, 60, 82, 72, 69, 66, 55, 77, 74, 87, 51, 64, 69, 73, 64, 74, 68, 60, 58, 46, 65, 89, 60, 66, 60, 38, 60, 78, 64, 62, 64, 66, 55, 72, 57, 46, 60, 71, 42, 53, 57, 64, 66, 60, 75, 67, 77, 73, 61, 75, 47, 62, 70, 67, 47, 57, 68, 76, 48, 72, 74, 67, 55, 76, 67, 79, 57, 81, 52, 62, 60, 56, 64, 60, 80, 79, 70, 72, 80, 58, 73, 74, 73, 62, 85, 68, 72, 66, 91, 95, 56, 53, 79, 75, 50, 59, 64, 68, 80, 103, 52, 83, 57, 63, 66, 71, 50, 56, 60, 76, 57, 65, 66, 65, 67, 58, 73, 56, 47, 76, 56, 62, 66, 86, 73, 96, 55, 52, 44, 97, 59, 56, 65, 52, 65, 69, 77, 86, 86, 59, 54, 71, 68, 53, 55, 81, 51, 63, 57, 72, 47, 58, 73, 81, 68, 67, 69, 55, 78, 53, 64, 73, 73, 87, 57, 76, 54, 44, 61, 55, 74, 69, 71, 91, 58, 41, 61, 69, 58, 60, 60, 52, 76, 69, 61, 69, 110, 67, 56, 78, 71, 100, 57, 57, 73, 64, 63, 52, 38, 64, 52, 83, 49, 66, 72, 90, 67, 65, 62, 61, 61, 58, 46, 55, 65, 59, 85, 52, 90, 59, 53, 75, 54, 72, 69, 63, 85, 58, 54, 61, 60, 65, 117, 63, 46, 51, 75, 67, 61, 71, 70, 61, 68, 71, 68, 47, 58, 54, 57, 63, 65, 69, 59, 77, 71, 63, 58, 89, 65, 66, 63, 59, 74, 59, 60, 57, 60, 61, 63, 62, 63, 60, 59, 70, 70, 68, 79, 53, 60, 69, 57, 56, 43, 86, 63, 56, 170, 78, 68, 96, 80, 55, 72, 64, 71, 61, 137, 55, 91, 60, 76, 72, 106, 55, 57, 64, 47, 59, 60, 73, 76, 64, 69, 59, 174, 60, 59, 69, 76, 83, 56, 64, 61, 77, 65, 72, 68, 60, 80, 65, 61, 66, 53, 57, 58, 67, 51, 51, 87, 68, 65, 59, 54, 103, 64, 46, 50, 72, 65, 79, 72, 61, 68, 58, 51, 58, 68, 67, 56, 78, 44, 75, 51, 61, 87, 72, 62, 57, 67, 71, 84, 56, 69, 58, 89, 52, 67, 63, 73, 55, 65, 76, 86, 57, 74, 65, 69, 49, 53, 84, 51, 67, 65, 64, 64, 70, 71, 49, 57, 62, 60, 77, 59, 62, 66, 78, 70, 77, 68, 65, 75, 57, 71, 91, 65, 68, 67, 73, 79, 52, 76, 72, 52, 63, 52, 56, 63, 69, 81, 76, 72, 64, 82, 68, 60, 66, 62, 99, 67, 82, 70, 58, 66, 75, 77, 58, 69, 69, 50, 61, 67, 62, 62, 65, 68, 61, 45, 71, 79, 61, 73, 67, 42, 72, 72, 66, 60, 72, 55, 77, 80, 53, 77, 71, 53, 73, 67, 53, 56, 65, 70, 65, 68, 44, 61, 61, 53, 59, 92, 52, 67, 92, 48, 61, 48, 66, 77, 75, 38, 58, 57, 74, 67, 79, 83, 62, 66, 50, 58, 52, 64, 74, 82, 75, 63, 71, 65, 66, 64, 77, 69, 54, 67, 48, 110, 59, 72, 69, 51, 63, 70, 48, 59, 63, 71, 50, 64, 57, 56, 51, 56, 66, 74, 62, 59, 61, 74, 115, 63, 92, 90, 71, 68, 68, 61, 71, 62, 80, 84, 55, 65, 74, 54, 60, 88, 72, 72, 63, 52, 66, 67, 65, 56, 63, 54, 72, 61, 57, 65, 99, 64, 60, 66, 70, 65, 57, 74, 54, 64, 81, 57, 60, 47, 61, 58, 55, 56, 48, 67, 73, 61, 68, 66, 77, 63, 66, 84, 64, 53, 75, 69, 98, 61, 62, 43, 60, 65, 65, 68, 73, 52, 61, 69, 67, 50, 51, 60, 85, 61, 57, 69, 67, 103, 59, 77, 68, 66, 58, 49, 77, 70, 60, 67, 60, 84, 90, 75, 91, 42, 119, 73, 83, 87, 77, 72, 67, 60, 69, 53, 71, 63, 70, 60, 54, 73, 57, 70, 60, 62, 57, 72, 59, 76, 68, 77, 55, 68, 63, 63, 58, 53, 87, 62, 60, 77, 66, 50, 54, 118, 57, 69, 82, 58, 56, 65, 90, 61, 72, 85, 58, 65, 69, 61, 63, 55, 61, 70, 76, 61, 71, 56, 80, 54, 64, 85, 87, 69, 63, 71, 65, 74, 51, 61, 55, 69, 81, 69, 86, 60, 80, 57, 66, 64, 65, 63, 80, 79, 54, 43, 62, 64, 72, 71, 63, 55, 66, 54, 70, 68, 70, 74, 57, 59, 65, 66, 60, 71, 68, 74, 72, 68, 65, 54, 70, 51, 62, 78, 67, 70, 55, 73, 57, 78, 59, 63, 66, 60, 66, 55, 95, 60, 75, 58, 95, 44, 69, 58, 65, 60, 62, 58, 90, 57, 43, 61, 48, 75, 57, 49, 74, 54, 55, 53, 60, 54, 77, 51, 74, 84, 64, 37, 102, 80, 57, 71, 62, 64, 53, 50, 79, 65, 74, 80, 64, 58, 63, 86, 41, 67, 78, 79, 60, 74, 74, 49, 66, 79, 60, 58, 52, 56, 63, 49, 61, 62, 68, 56, 72, 68, 84, 65, 65, 39, 55, 81, 73, 91, 59, 54, 55, 65, 63, 72, 60, 60, 51, 50, 50, 70, 72, 56, 55, 59, 93, 62, 70, 51, 64, 60, 51, 63, 56, 71, 74, 76, 68, 58, 65, 79, 76, 51, 69, 61, 59, 65, 65, 78, 57, 50, 74, 57, 75, 64, 82, 57, 75, 76, 60, 66, 48, 53, 51, 66, 81, 78, 63, 71, 55, 67, 51, 57, 61, 59, 58, 71, 70, 58, 51, 54, 58, 70, 53, 72, 73, 111, 59, 46, 64, 63, 58, 82, 55, 52, 64, 38, 65, 46, 84, 83, 53, 64, 64, 62, 70, 56, 45, 59, 62, 72, 57, 73, 55, 77, 82, 69, 65, 83, 59, 62, 62, 60, 72, 61, 64, 75, 87, 72, 82, 94, 48, 71, 38, 62, 71, 90, 60, 57, 59, 73, 63, 88, 57, 51, 57, 53, 57, 68, 70, 67, 72, 64, 58, 69, 65, 50, 55, 72, 53, 74, 48, 73, 44, 74, 73, 58, 75, 68, 65, 47, 63, 78, 68, 79, 51, 53, 63, 48, 45, 56, 45, 71, 57, 78, 70, 70, 62, 75, 56, 68, 63, 64, 75, 74, 83, 53, 62, 57, 52, 67, 54, 61, 55, 58, 38, 50, 60, 67, 50, 62, 78, 57, 67, 64, 60, 68, 65, 64, 62, 67, 70, 83, 43, 58, 57, 65, 72, 89, 55, 76, 44, 58, 73, 37, 58, 66, 94, 63, 58, 54, 71, 117, 42, 76, 75, 72, 61, 85, 47, 53, 65, 76, 58, 70, 57, 67, 65, 59, 57, 74, 67, 62, 60, 81, 78, 69, 54, 37, 79, 58, 82, 72, 77, 58, 62, 51, 68, 160, 71, 79, 56, 53, 78, 59, 54, 59, 100, 60, 68, 40, 70, 60, 57, 67, 76, 56, 69, 81, 49, 70, 81, 63, 61, 55, 89, 78, 90, 89, 55, 72, 64, 106, 76, 53, 70, 68, 63, 62, 68, 54, 67, 70, 56, 71, 63, 57, 54, 78, 74, 71, 55, 59, 73, 81, 98, 63, 73, 66, 99, 68, 81, 52, 61, 85, 44, 52, 65, 54, 73, 53, 72, 46, 56, 67, 59, 50, 43, 53, 73, 59, 48, 57, 60, 54, 45, 66, 64, 60, 54, 53, 51, 77, 41, 88, 53, 58, 70, 65, 76, 63, 62, 59, 39, 64, 64, 61, 82, 72, 72, 62, 69, 80, 62, 82, 62, 69, 62, 109, 69, 67, 71, 61, 69, 63, 52, 66, 49, 66, 94, 68, 70, 71, 62, 70, 61, 43, 90, 43, 47, 63, 67, 84, 68, 52, 68, 58, 95, 53, 48, 54, 68, 56, 67, 69, 56, 58, 66, 94, 60, 54, 58, 52, 57, 69, 66, 41, 50, 70, 71, 69, 87, 62, 45, 78, 67, 61, 47, 65, 81, 68, 49, 68, 55, 66, 72, 76, 73, 57, 78, 89, 62, 66, 61, 55, 71, 55, 65, 68, 67, 68, 80, 55, 55, 61, 57, 51, 64, 67, 51, 55, 56, 81, 65, 54, 61, 63, 93, 59, 71, 50, 60, 63, 55, 85, 114, 63, 66, 80, 101, 61, 61, 65, 52, 61, 54, 64, 65, 64, 56, 74, 59, 80, 81, 60, 59, 61, 42, 88, 83, 57, 66, 86, 60, 68, 62, 61, 67, 47, 51, 51, 72, 66, 73, 59, 79, 113, 64, 70, 42, 57, 48, 50, 62, 47, 67, 67, 51, 68, 51, 38, 69, 54, 60, 65, 61, 63, 67, 62, 52, 60, 89, 66, 73, 51, 57, 55, 60, 64, 56, 82, 63, 107, 65, 58, 92, 62, 68, 75, 89, 51, 52, 40, 69, 80, 62, 71, 76, 111, 83, 54, 50, 62, 62, 68, 72, 53, 202, 46, 59, 50, 87, 79, 59, 56, 75, 74, 79, 68, 60, 54, 55, 60, 103, 71, 76, 86, 51, 90, 63, 60, 59, 63, 66, 59, 62, 89, 61, 72, 56, 64, 60, 74, 56, 59, 59, 66, 52, 64, 90, 102, 52, 72, 64, 61, 55, 66, 68, 99, 63, 61, 56, 85, 115, 81, 57, 69, 65, 67, 66, 47, 59, 55, 72, 59, 59, 55, 56, 64, 85, 65, 55, 65, 62, 52, 51, 49, 62, 56, 59, 64, 51, 67, 61, 46, 68, 58, 60, 43, 63, 72, 70, 68, 73, 53, 95, 72, 72, 60, 49, 66, 71, 76, 82, 75, 69, 68, 58, 57, 56, 73, 93, 40, 98, 58, 101, 57, 74, 69, 57, 68, 54, 52, 78, 99, 61, 86, 56, 52, 73, 73, 72, 60, 82, 53, 58, 74, 59, 61, 98, 73, 66, 59, 51, 59, 56, 79, 90, 94, 154, 55, 82, 88, 79, 67, 77, 58, 58, 103, 55, 78, 75, 50, 67, 58, 65, 60, 75, 48, 56, 70, 86, 83, 84, 83, 57, 56, 67, 69, 60, 60, 67, 67, 77, 70, 73, 59, 88, 74, 52, 72, 68, 57, 74, 69, 62, 105, 57, 61, 80, 103, 60, 57, 54, 64, 80, 59, 54, 95, 65, 54, 84, 57, 64, 69, 96, 82, 56, 75, 61, 65, 144, 72, 71, 61, 56, 63, 48, 48, 72, 53, 53, 58, 91, 67, 55, 71, 68, 54, 62, 63, 60, 63, 135, 67, 83, 61, 90, 72, 49, 65, 70, 67, 66, 61, 78, 56, 63, 68, 63, 51, 79, 64, 88, 58, 62, 47, 59, 72, 91, 78, 76, 61, 67, 51, 69, 75, 79, 74, 73, 68, 52, 60, 49, 49, 65, 61, 56, 72, 66, 69, 41, 46, 55, 46, 59, 70, 60, 60, 69, 56, 61, 56, 60, 84, 47, 70, 71, 58, 61, 81, 56, 56, 62, 61, 53, 58, 74, 96, 69, 57, 67, 68, 58, 59, 66, 84, 47, 58, 71, 66, 65, 62, 71, 65, 52, 69, 65, 61, 47, 58, 54, 53, 75, 63, 80, 66, 58, 58, 54, 81, 74, 74, 67, 70, 77, 84, 56, 70, 59, 55, 65, 70, 66, 48, 70, 56, 49, 53, 60, 90, 49, 78, 59, 64, 72, 53, 48, 66, 94, 67, 84, 59, 75, 54, 79, 66, 72, 48, 79, 52, 97, 53, 54, 79, 46, 67, 71, 108, 59, 55, 71, 64, 68, 70, 72, 63, 71, 72, 77, 65, 90, 69, 50, 73, 88, 57, 69, 65, 50, 60, 38, 63, 55, 61, 81, 68, 66, 76, 57, 88, 77, 66, 78, 73, 68, 54, 65, 64, 64, 57, 78, 58, 75, 62, 106, 70, 62, 58, 77, 52, 76, 60, 72, 69, 87, 54, 78, 71, 60, 81, 67, 79, 91, 57, 52, 57, 62, 63, 67, 77, 79, 96, 40, 66, 64, 67, 61, 64, 87, 59, 52, 70, 55, 67, 64, 48, 106, 67, 89, 51, 69, 59, 75, 65, 65, 70, 56, 64, 77, 68, 39, 87, 59, 72, 56, 83, 56, 77, 91, 71, 76, 56, 64, 53, 69, 69, 49, 45, 61, 47, 71, 58, 66, 96, 43, 55, 67, 63, 117, 61, 50, 58, 58, 87, 73, 81, 57, 48, 95, 55, 59, 62, 80, 64, 57, 98, 55, 64, 61, 56, 50, 70, 105, 64, 95, 62, 72, 95, 54, 78, 77, 67, 83, 60, 85, 54, 63, 65, 73, 50, 55, 58, 54, 54, 65, 70, 93, 64, 67, 57, 88, 64, 88, 57, 53, 96, 70, 60, 44, 46, 44, 72, 49, 73, 74, 59, 60, 60, 55, 48, 56, 59, 61, 75, 66, 48, 53, 76, 62, 45, 75, 55, 56, 79, 68, 83, 56, 69, 49, 73, 58, 57, 63, 57, 39, 53, 77, 52, 82, 59, 62, 64, 60, 67, 32, 83, 84, 60, 52, 82, 64, 74, 91, 61, 51, 64, 65, 59, 54, 83, 60, 59, 58, 56, 58, 65, 67, 47, 69, 79, 77, 67, 148, 70, 68, 74, 93, 64, 67, 78, 75, 89, 58, 73, 41, 81, 90, 66, 64, 49, 77, 54, 79, 70, 59, 58, 76, 53, 46, 76, 101, 49, 52, 45, 72, 81, 77, 44, 66, 85, 90, 58, 91, 80, 57, 71, 73, 61, 66, 51, 78, 59, 59, 58, 65, 63, 55, 71, 72, 67, 75, 61, 91, 56, 64, 87, 68, 70, 51, 77, 80, 62, 48, 56, 47, 50, 68, 50, 73, 57, 71, 68, 49, 73, 58, 72, 65, 57, 66, 80, 45, 60, 62, 61, 77, 74, 52, 58, 64, 77, 75, 55, 71, 80, 60, 79, 64, 79, 67, 76, 96, 79, 71, 79, 70, 46, 69, 57, 65, 82, 57, 61, 81, 73, 73, 59, 71, 74, 71, 45, 76, 70, 87, 91, 64, 42, 89, 47, 72, 41, 61, 50, 62, 57, 69, 75, 39, 63, 77, 63, 66, 75, 44, 63, 85, 52, 55, 48, 59, 86, 74, 65, 94, 72, 45, 60, 57, 49, 82, 70, 59, 84, 72, 87, 50, 68, 54, 66, 66, 61, 84, 75, 65, 76, 71, 66, 65, 66, 50, 77, 60, 63, 73, 61, 61, 45, 75, 65, 67, 48, 58, 63, 50, 39, 71, 55, 98, 62, 69, 88, 56, 72, 82, 62, 57, 86, 96, 43, 61, 62, 49, 76, 65, 54, 78, 70, 70, 77, 41, 64, 91, 91, 65, 61, 57, 90, 53, 79, 83, 67, 37, 53, 56, 73, 55, 69, 47, 68, 80, 46, 69, 51, 69, 74, 42, 65, 61, 62, 73, 75, 58, 53, 42, 52, 71, 61, 131, 49, 64, 65, 51, 63, 50, 52, 73, 51, 71, 68, 74, 59, 66, 61, 67, 42, 54, 57, 85, 74, 67, 59, 79, 49, 71, 69, 86, 61, 85, 65, 62, 61, 57, 61, 58, 88, 76, 71, 66, 64, 85, 80, 64, 64, 54, 64, 94, 57, 77, 91, 66, 81, 71, 61, 84, 74, 76, 83, 75, 44, 58, 69, 66, 56, 53, 71, 68, 89, 61, 67, 61, 62, 55, 54, 74, 47, 65, 72, 71, 63, 86, 62, 48, 60, 57, 81, 65, 68, 64, 64, 70, 64, 69, 46, 62, 64, 64, 67, 51, 82, 77, 92, 66, 60, 85, 59, 79, 46, 66, 77, 62, 56, 68, 73, 73, 76, 66, 71, 53, 71, 104, 56, 62, 62, 57, 50, 60, 79, 73, 62, 37, 55, 55, 76, 64, 70, 50, 45, 58, 58, 78, 64, 73, 55, 57, 113, 65, 87, 62, 57, 42, 74, 60, 56, 71, 60, 96, 72, 110, 59, 66, 64, 73, 86, 54, 43, 56, 80, 49, 71, 86, 73, 55, 55, 70, 79, 83, 69, 64, 80, 53, 63, 55, 67, 81, 77, 62, 56, 54, 68, 65, 57, 84, 68, 59, 75, 61, 53, 51, 59, 66, 67, 53, 64, 62, 88, 58, 60, 80, 57, 53, 65, 51, 50, 66, 68, 87, 70, 65, 60, 79, 69, 69, 59, 64, 58, 115, 56, 54, 63, 51, 62, 64, 61, 48, 71, 62, 72, 59, 50, 69, 68, 64, 72, 99, 47, 78, 84, 57, 92, 73, 75, 49, 76, 90, 60, 51, 67, 62, 63, 58, 92, 46, 79, 82, 57, 61, 68, 66, 54, 54, 59, 72, 76, 57, 106, 59, 79, 104, 85, 61, 60, 78, 79, 41, 81, 63, 68, 54, 48, 64, 46, 52, 60, 51, 97, 59, 58, 90, 78, 65, 38, 54, 59, 55, 47, 61, 42, 51, 65, 59, 69, 73, 62, 63, 68, 78, 60, 68, 48, 78, 63, 65, 55, 80, 76, 59, 76, 71, 99, 66, 68, 67, 62, 77, 57, 65, 69, 65, 56, 54, 81, 51, 59, 110, 54, 76, 104, 56, 62, 64, 62, 53, 64, 50, 50, 48, 79, 56, 69, 63, 49, 74, 64, 49, 78, 96, 78, 83, 45, 75, 46, 56, 62, 67, 64, 53, 68, 55, 82, 64, 80, 62, 67, 69, 56, 73, 60, 76, 62, 64, 70, 55, 92, 62, 73, 52, 50, 57, 55, 53, 57, 81, 74, 64, 69, 61, 64, 40, 60, 72, 66, 62, 93, 73, 64, 112, 93, 66, 59, 66, 77, 53, 57, 102, 93, 71, 42, 51, 56, 42, 47, 53, 73, 67, 51, 81, 56, 71, 52, 53, 56, 73, 60, 78, 62, 87, 92, 70, 82, 45, 67, 64, 66, 64, 85, 51, 72, 61, 102, 46, 90, 71, 64, 76, 48, 52, 60, 54, 85, 47, 67, 80, 56, 72, 84, 59, 62, 74, 75, 64, 56, 59, 59, 53, 34, 57, 72, 52, 63, 67, 65, 57, 70, 77, 49, 61, 56, 59, 95, 51, 51, 45, 70, 61, 79, 48, 52, 68, 71, 37, 83, 66, 54, 67, 89, 63, 52, 64, 64, 58, 57, 97, 69, 68, 71, 63, 56, 71, 38, 53, 61, 70, 86, 42, 59, 55, 73, 68, 55, 66, 52, 60, 73, 52, 55, 57, 76, 55, 55, 42, 74, 66, 58, 60, 67, 58, 80, 75, 57, 62, 83, 57, 50, 57, 62, 46, 56, 81, 79, 74, 58, 73, 77, 48, 72, 73, 83, 75, 59, 72, 85, 83, 48, 111, 71, 56, 63, 82, 50, 72, 58, 60, 55, 66, 88, 51, 51, 52, 83, 80, 51, 63, 62, 84, 63, 76, 70, 88, 68, 46, 76, 41, 42, 84, 87, 55, 64, 80, 63, 65, 42, 81, 98, 78, 74, 50, 50, 103, 62, 69, 67, 59, 72, 80, 58, 60, 56, 51, 74, 59, 84, 76, 59, 72, 79, 56, 50, 86, 81, 81, 82, 58, 100, 76, 76, 68, 70, 56, 78, 76, 62, 68, 49, 69, 56, 50, 100, 51, 86, 71, 51, 30, 60, 82, 52, 74, 56, 97, 72, 54, 67, 61, 75, 55, 60, 67, 54, 33, 63, 62, 53, 52, 57, 67, 64, 78, 62, 71, 61, 77, 80, 82, 96, 93, 64, 53, 71, 79, 66, 67, 100, 65, 42, 82, 67, 53, 59, 81, 83, 71, 59, 85, 89, 50, 49, 53, 80, 65, 59, 63, 75, 51, 66, 58, 99, 63, 70, 42, 78, 58, 60, 73, 63, 63, 63, 63, 52, 58, 57, 68, 81, 56, 69, 67, 53, 74, 27, 83, 76, 37, 74, 66, 64, 52, 62, 62, 66, 64, 73, 61, 77, 72, 63, 66, 57, 60, 76, 50, 55, 72, 62, 68, 71, 71, 47, 63, 86, 71, 55, 58, 79, 35, 82, 61, 59, 64, 54, 97, 161, 61, 66, 69, 82, 65, 73, 64, 79, 53, 56, 64, 77, 56, 58, 66, 36, 38, 75, 77, 68, 85, 64, 71, 29, 42, 69, 66, 64, 53, 99, 51, 70, 52, 67, 72, 45, 81, 62, 46, 60, 64, 92, 58, 84, 75, 75, 65, 64, 76, 64, 49, 121, 61, 49, 70, 82, 69, 69, 75, 68, 63, 78, 116, 77, 63, 63, 45, 63, 56, 88, 91, 56, 56, 52, 53, 49, 66, 54, 46, 84, 88, 64, 67, 73, 52, 77, 81, 60, 66, 97, 68, 58, 92, 82, 83, 67, 89, 59, 63, 97, 114, 57, 68, 54, 70, 53, 51, 52, 54, 68, 57, 59, 49, 83, 58, 83, 51, 58, 58, 73, 49, 67, 72, 62, 60, 68, 62, 62, 66, 58, 65, 56, 60, 58, 55, 59, 65, 110, 56, 50, 69, 66, 56, 65, 72, 71, 58, 57, 90, 78, 67, 87, 57, 90, 70, 66, 50, 74, 61, 79, 41, 60, 91, 59, 53, 106, 85, 63, 81, 55, 63, 72, 64, 52, 63, 71, 60, 84, 63, 45, 78, 72, 70, 74, 54, 59, 68, 76, 71, 45, 65, 67, 59, 56, 61, 56, 38, 68, 80, 63, 52, 63, 87, 87, 60, 67, 76, 49, 51, 48, 85, 57, 68, 58, 55, 64, 59, 69, 90, 61, 53, 62, 77, 50, 63, 75, 63, 82, 84, 61, 54, 41, 57, 63, 84, 73, 62, 72, 59, 89, 55, 55, 69, 59, 55, 63, 52, 60, 85, 66, 59, 57, 54, 81, 56, 71, 58, 61, 67, 73, 54, 62, 63, 75, 61, 56, 68, 41, 70, 69, 74, 65, 80, 52, 70, 83, 62, 53, 82, 63, 55, 61, 87, 79, 57, 49, 48, 62, 41, 64, 94, 75, 53, 69, 69, 62, 60, 50, 81, 82, 61, 65, 62, 63, 58, 40, 54, 41, 39, 54, 63, 72, 61, 55, 69, 54, 76, 68, 58, 119, 55, 57, 83, 56, 78, 69, 67, 49, 71, 60, 50, 69, 64, 66, 54, 76, 66, 72, 63, 116, 66, 54, 58, 54, 126, 41, 64, 72, 55, 80, 47, 76, 81, 54, 49, 62, 66, 77, 58, 71, 77, 65, 74, 54, 78, 69, 46, 60, 76, 68, 60, 64, 70, 52, 62, 93, 63, 72, 76, 59, 96, 71, 70, 72, 67, 112, 53, 85, 70, 41, 72, 79, 70, 82, 65, 74, 71, 56, 63, 91, 66, 55, 64, 53, 87, 74, 75, 58, 64, 69, 72, 47, 64, 74, 73, 63, 87, 75, 57, 68, 100, 76, 73, 51, 56, 56, 67, 80, 93, 59, 54, 59, 79, 49, 54, 72, 84, 52, 81, 76, 46, 72, 62, 92, 64, 79, 53, 61, 77, 72, 71, 64, 52, 68, 49, 88, 45, 79, 91, 49, 86, 50, 74, 68, 61, 71, 43, 79, 61, 73, 68, 76, 66, 50, 58, 59, 66, 80, 71, 58, 71, 36, 60, 62, 66, 69, 59, 80, 52, 62, 61, 64, 66, 60, 53, 67, 66, 81, 58, 53, 97, 75, 57, 68, 75, 54, 48, 53, 74, 48, 84, 56, 50, 72, 52, 62, 71, 76, 73, 77, 82, 60, 85, 63, 90, 63, 69, 88, 57, 55, 53, 103, 77, 73, 64, 109, 76, 70, 86, 66, 80, 63, 60, 49, 61, 56, 107, 51, 69, 59, 82, 58, 53, 51, 66, 64, 52, 75, 53, 66, 61, 79, 60, 63, 51, 65, 62, 49, 71, 83, 52, 75, 76, 62, 73, 80, 59, 50, 85, 64, 64, 77, 67, 50, 62, 72, 71, 61, 65, 54, 65, 59, 47, 77, 84, 75, 88, 91, 69, 64, 76, 61, 92, 58, 62, 74, 59, 65, 45, 55, 79, 76, 63, 86, 60, 54, 74, 71, 71, 47, 71, 62, 67, 58, 87, 73, 68, 46, 66, 95, 113, 60, 61, 55, 107, 60, 44, 68, 87, 51, 70, 59, 75, 65, 64, 55, 84, 45, 80, 75, 77, 64, 70, 71, 72, 70, 78, 71, 43, 64, 55, 61, 67, 78, 55, 60, 62, 67, 60, 65, 46, 57, 48, 86, 58, 83, 71, 60, 68, 50, 59, 58, 69, 79, 92, 64, 75, 80, 58, 59, 70, 62, 85, 80, 87, 60, 67, 74, 80, 67, 63, 68, 65, 72, 69, 57, 68, 72, 84, 61, 61, 63, 73, 76, 58, 39, 71, 50, 83, 80, 64, 67, 61, 81, 69, 64, 40, 54, 64, 55, 46, 78, 82, 67, 67, 65, 65, 84, 33, 64, 60, 62, 83, 55, 64, 61, 64, 53, 68, 42, 68, 64, 89, 64, 77, 71, 58, 58, 57, 57, 116, 46, 71, 54, 51, 66, 35, 50, 65, 76, 59, 66, 47, 73, 93, 62, 57, 73, 70, 67, 75, 48, 60, 71, 48, 63, 67, 51, 69, 61, 64, 75, 59, 65, 45, 56, 74, 64, 65, 62, 43, 61, 105, 90, 62, 55, 68, 56, 81, 63, 71, 58, 58, 61, 78, 54, 50, 59, 61, 50, 45, 71, 71, 45, 42, 68, 87, 65, 66, 55, 60, 64, 60, 54, 62, 92, 122, 49, 76, 52, 54, 89, 75, 75, 63, 69, 63, 62, 74, 63, 72, 64, 86, 95, 46, 67, 66, 64, 52, 71, 52, 86, 81, 52, 48, 57, 45, 50, 62, 74, 81, 73, 43, 62, 46, 89, 103, 60, 65, 60, 72, 60, 61, 80, 72, 66, 50, 79, 47, 63, 65, 53, 77, 67, 47, 63, 43, 64, 90, 66, 60, 48, 97, 55, 60, 69, 66, 60, 68, 71, 45, 62, 113, 71, 51, 60, 64, 80, 84, 53, 64, 65, 72, 76, 68, 40, 63, 59, 61, 59, 56, 50, 35, 62, 80, 55, 56, 70, 63, 64, 67, 88, 57, 68, 63, 60, 63, 52, 58, 71, 67, 57, 60, 39, 55, 69, 83, 71, 67, 59, 67, 51, 53, 44, 75, 65, 67, 64, 41, 45, 55, 66, 52, 66, 69, 61, 68, 64, 64, 91, 69, 52, 60, 61, 76, 62, 45, 56, 62, 63, 93, 59, 71, 91, 60, 64, 85, 60, 69, 98, 73, 72, 68, 62, 70, 76, 94, 85, 75, 76, 66, 74, 65, 59, 53, 65, 71, 70, 58, 57, 70, 56, 62, 59, 59, 54, 86, 73, 66, 73, 68, 58, 78, 74, 76, 99, 51, 60, 51, 76, 94, 68, 80, 49, 72, 67, 61, 71, 72, 63, 52, 75, 48, 80, 39, 67, 66, 97, 59, 63, 60, 62, 67, 64, 68, 94, 51, 70, 44, 59, 54, 69, 86, 58, 88, 84, 83, 63, 68, 70, 83, 70, 59, 105, 53, 65, 51, 66, 89, 70, 62, 58, 60, 62, 58, 68, 77, 63, 56, 52, 57, 57, 66, 62, 80, 69, 72, 70, 48, 76, 101, 61, 77, 66, 56, 58, 68, 56, 49, 62, 68, 60, 69, 81, 70, 69, 59, 111, 45, 55, 100, 64, 83, 82, 61, 54, 43, 74, 49, 60, 69, 58, 62, 67, 59, 98, 66, 57, 69, 75, 88, 65, 62, 73, 48, 64, 64, 57, 72, 50, 65, 52, 47, 84, 65, 55, 70, 65, 60, 67, 46, 54, 58, 59, 70, 64, 63, 76, 61, 51, 53, 60, 53, 76, 76, 59, 46, 83, 100, 77, 69, 80, 72, 66, 61, 65, 63, 81, 64, 58, 70, 54, 52, 59, 51, 120, 85, 61, 49, 58, 66, 94, 49, 64, 63, 62, 68, 70, 63, 71, 93, 68, 60, 54, 48, 49, 58, 60, 69, 56, 69, 76, 71, 57, 81, 54, 70, 62, 69, 63, 76, 47, 52, 67, 46, 73, 58, 82, 68, 57, 54, 67, 57, 58, 63, 70, 57, 69, 75, 72, 75, 84, 53, 49, 59, 48, 63, 74, 58, 76, 78, 64, 57, 77, 47, 53, 71, 57, 50, 62, 93, 84, 52, 86, 66, 117, 57, 55, 52, 69, 60, 49, 61, 43, 71, 89, 77, 67, 73, 56, 46, 59, 86, 57, 62, 58, 76, 75, 67, 55, 50, 62, 61, 57, 67, 55, 113, 63, 59, 73, 57, 67, 59, 71, 68, 68, 71, 75, 73, 52, 69, 55, 54, 59, 74, 69, 55, 89, 69, 53, 49, 63, 67, 72, 74, 69, 59, 47, 68, 56, 73, 74, 57, 65, 38, 60, 62, 81, 104, 55, 78, 58, 66, 105, 52, 64, 68, 65, 79, 63, 47, 62, 64, 60, 78, 73, 49, 70, 83, 90, 60, 63, 73, 65, 87, 72, 48, 60, 58, 54, 64, 63, 60, 55, 57, 57, 52, 65, 70, 47, 59, 62, 66, 50, 59, 54, 62, 66, 48, 92, 70, 53, 60, 66, 66, 54, 86, 78, 58, 67, 58, 62, 64, 60, 75, 69, 63, 58, 68, 59, 66, 55, 69, 96, 39, 75, 69, 53, 76, 60, 48, 79, 52, 77, 44, 67, 75, 91, 57, 59, 59, 66, 77, 77, 65, 76, 63, 81, 40, 81, 60, 57, 49, 73, 90, 53, 50, 63, 67, 52, 49, 58, 73, 68, 68, 61, 51, 63, 70, 85, 81, 52, 68, 103, 52, 79, 69, 68, 50, 52, 77, 70, 58, 77, 46, 50, 69, 51, 51, 63, 52, 60, 62, 53, 72, 56, 55, 46, 54, 68, 61, 69, 56, 69, 65, 73, 60, 59, 60, 86, 46, 67, 78, 50, 51, 44, 68, 63, 74, 83, 54, 62, 70, 69, 57, 63, 77, 62, 67, 45, 56, 78, 51, 44, 78, 67, 73, 92, 78, 67, 79, 49, 55, 53, 87, 62, 67, 43, 49, 61, 80, 68, 73, 58, 75, 35, 56, 71, 69, 65, 71, 62, 64, 76, 74, 74, 49, 46, 73, 70, 60, 49, 72, 84, 73, 65, 58, 75, 65, 86, 75, 91, 71, 114, 65, 98, 77, 50, 55, 64, 54, 62, 56, 42, 50, 72, 70, 76, 62, 64, 59, 56, 58, 46, 69, 60, 56, 72, 79, 55, 75, 71, 65, 77, 65, 66, 63, 57, 63, 64, 55, 33, 46, 92, 45, 88, 47, 72, 68, 65, 51, 129, 51, 87, 75, 48, 67, 75, 63, 70, 41, 89, 102, 73, 58, 68, 56, 60, 69, 57, 56, 82, 64, 77, 77, 85, 65, 81, 67, 68, 72, 51, 75, 67, 46, 31, 56, 84, 81, 94, 64, 76, 64, 70, 59, 77, 61, 68, 82, 60, 61, 62, 100, 59, 49, 75, 53, 65, 56, 64, 76, 92, 67, 60, 57, 67, 82, 62, 45, 58, 74, 75, 59, 66, 60, 64, 58, 105, 70, 75, 82, 69, 61, 43, 99, 84, 62, 96, 66, 74, 54, 65, 75, 52, 62, 66, 63, 44, 44, 78, 87, 58, 51, 69, 62, 84, 51, 76, 57, 75, 71, 53, 84, 46, 67, 86, 81, 60, 71, 52, 59, 55, 49, 61, 74, 66, 63, 56, 63, 76, 57, 71, 62, 59, 86, 39, 66, 82, 51, 59, 62, 45, 77, 65, 79, 41, 55, 68, 68, 51, 50, 62, 71, 86, 45, 60, 67, 77, 71, 75, 51, 56, 47, 99, 70, 73, 81, 83, 67, 58, 69, 64, 68, 61, 110, 83, 53, 68, 42, 78, 86, 56, 54, 59, 66, 73, 74, 80, 67, 81, 82, 55, 70, 107, 84, 60, 55, 53, 74, 62, 59, 69, 79, 76, 71, 73, 48, 64, 55, 78, 68, 59, 57, 66, 71, 47, 134, 52, 67, 102, 43, 64, 84, 63, 57, 70, 62, 69, 75, 59, 53, 70, 56, 72, 71, 75, 54, 60, 41, 59, 52, 57, 67, 72, 41, 52, 66, 87, 56, 63, 63, 38, 72, 75, 76, 78, 113, 68, 45, 63, 69, 66, 61, 59, 71, 51, 61, 41, 68, 75, 75, 87, 93, 83, 79, 82, 64, 64, 59, 100, 86, 57, 67, 68, 51, 54, 64, 76, 59, 73, 39, 109, 62, 67, 51, 54, 60, 70, 64, 76, 71, 70, 62, 93, 53, 79, 55, 72, 61, 80, 74, 59, 62, 78, 86, 66, 75, 56, 49, 59, 74, 67, 55, 63, 53, 57, 83, 45, 77, 50, 63, 68, 51, 51, 72, 75, 62, 57, 59, 63, 61, 75, 60, 56, 48, 78, 64, 61, 51, 158, 67, 104, 45, 69, 55, 71, 49, 67, 63, 62, 67, 54, 64, 57, 70, 70, 46, 79, 49, 58, 42, 84, 52, 50, 71, 68, 64, 52, 89, 60, 83, 61, 49, 61, 58, 79, 58, 62, 65, 73, 54, 58, 52, 57, 61, 61, 68, 66, 64, 89, 68, 59, 61, 60, 55, 64, 62, 76, 74, 66, 39, 55, 60, 56, 71, 64, 55, 49, 66, 52, 72, 92, 54, 68, 67, 67, 72, 60, 54, 47, 74, 46, 76, 42, 63, 53, 69, 47, 77, 79, 62, 82, 60, 81, 76, 58, 51, 67, 64, 71, 66, 79, 53, 92, 54, 69, 65, 98, 62, 60, 55, 95, 63, 45, 53, 52, 65, 82, 71, 69, 74, 68, 94, 55, 61, 95, 77, 80, 70, 60, 52, 52, 60, 62, 60, 57, 65, 57, 82, 57, 79, 93, 53, 54, 104, 54, 68, 79, 72, 41, 55, 75, 68, 68, 70, 55, 70, 55, 61, 78, 45, 62, 57, 69, 62, 45, 52, 66, 73, 64, 57, 76, 81, 76, 71, 47, 67, 68, 66, 66, 69, 78, 64, 65, 108, 98, 56, 79, 55, 42, 67, 57, 60, 79, 74, 57, 51, 58, 68, 60, 56, 55, 65, 74, 61, 67, 63, 72, 46, 53, 57, 66, 72, 65, 71, 54, 57, 61, 68, 63, 63, 70, 62, 54, 77, 54, 70, 65, 69, 58, 64, 57, 107, 62, 79, 65, 78, 53, 69, 49, 68, 59, 63, 60, 59, 78, 84, 61, 76, 81, 107, 82, 110, 65, 64, 65, 49, 172, 49, 57, 60, 73, 94, 68, 77, 65, 50, 61, 68, 59, 55, 82, 66, 50, 62, 81, 62, 45, 58, 66, 74, 76, 80, 103, 62, 61, 78, 56, 69, 78, 68, 53, 61, 48, 75, 86, 56, 49, 70, 58, 52, 54, 73, 76, 78, 111, 69, 55, 67, 51, 76, 83, 53, 64, 56, 67, 57, 102, 79, 83, 75, 52, 81, 76, 54, 67, 55, 65, 56, 67, 59, 81, 55, 62, 53, 65, 64, 106, 45, 58, 39, 69, 108, 57, 64, 64, 60, 60, 69, 52, 56, 68, 52, 52, 58, 46, 91, 66, 61, 76, 61, 59, 76, 65, 63, 43, 66, 86, 56, 98, 44, 60, 48, 53, 59, 41, 61, 89, 89, 60, 85, 47, 54, 51, 66, 64, 63, 72, 84, 65, 80, 112, 48, 46, 49, 55, 57, 72, 69, 63, 39, 46, 81, 52, 61, 54, 70, 62, 51, 47, 62, 67, 69, 65, 71, 83, 54, 72, 65, 69, 56, 55, 55, 59, 89, 56, 86, 85, 67, 64, 72, 77, 73, 62, 67, 65, 74, 87, 56, 63, 95, 72, 73, 58, 62, 61, 47, 71, 58, 75, 51, 55, 58, 56, 65, 66, 65, 56, 91, 48, 48, 84, 50, 52, 51, 60, 64, 78, 58, 89, 56, 79, 86, 69, 49, 56, 63, 68, 85, 59, 68, 64, 51, 51, 54, 62, 59, 57, 45, 50, 84, 71, 84, 79, 79, 62, 78, 86, 78, 75, 72, 68, 65, 60, 45, 39, 69, 51, 61, 57, 60, 54, 91, 90, 70, 74, 52, 136, 75, 61, 67, 58, 59, 63, 53, 77, 67, 70, 66, 47, 61, 55, 46, 62, 75, 83, 61, 64, 48, 50, 64, 42, 62, 86, 66, 76, 87, 56, 51, 62, 68, 60, 59, 66, 70, 61, 57, 149, 95, 52, 45, 57, 60, 70, 51, 54, 63, 53, 66, 54, 88, 72, 88, 51, 77, 45, 79, 74, 78, 55, 90, 58, 92, 70, 68, 84, 54, 59, 49, 67, 68, 55, 91, 77, 83, 106, 72, 50, 85, 68, 66, 79, 61, 54, 65, 71, 120, 63, 52, 49, 45, 41, 42, 65, 56, 63, 53, 69, 40, 64, 57, 67, 68, 60, 84, 61, 39, 50, 53, 70, 61, 93, 59, 74, 58, 56, 62, 47, 88, 57, 63, 46, 66, 60, 57, 62, 63, 63, 64, 82, 63, 46, 103, 72, 65, 67, 58, 62, 54, 71, 66, 53, 53, 66, 81, 61, 52, 57, 59, 81, 70, 85, 59, 64, 61, 68, 64, 62, 56, 76, 63, 52, 61, 68, 76, 88, 44, 67, 76, 66, 77, 54, 71, 49, 66, 76, 72, 67, 78, 71, 73, 47, 72, 55, 51, 63, 48, 54, 58, 74, 95, 69, 54, 67, 58, 69, 90, 59, 88, 53, 72, 65, 83, 63, 88, 50, 58, 70, 55, 68, 91, 62, 46, 60, 50, 69, 73, 57, 57, 42, 59, 60, 61, 54, 52, 61, 75, 70, 57, 99, 54, 54, 53, 87, 65, 83, 77, 64, 66, 69, 90, 60, 55, 54, 50, 56, 58, 94, 66, 66, 67, 109, 62, 65, 61, 59, 63, 45, 59, 69, 58, 56, 67, 72, 64, 64, 67, 73, 59, 65, 109, 97, 87, 66, 60, 75, 46, 58, 62, 64, 74, 70, 83, 59, 52, 71, 82, 65, 72, 64, 71, 55, 59, 59, 76, 75, 72, 72, 60, 75, 71, 98, 50, 74, 77, 78, 60, 64, 49, 53, 69, 45, 50, 66, 70, 55, 51, 68, 64, 57, 69, 53, 62, 79, 56, 51, 105, 59, 65, 69, 88, 63, 65, 67, 50, 55, 88, 41, 84, 87, 70, 87, 66, 55, 83, 64, 49, 61, 55, 58, 70, 65, 69, 61, 69, 48, 63, 70, 81, 63, 36, 74, 73, 58, 47, 66, 52, 71, 58, 87, 42, 75, 64, 43, 66, 61, 55, 109, 45, 71, 80, 74, 47, 65, 64, 55, 55, 54, 63, 59, 69, 101, 63, 55, 66, 84, 61, 54, 58, 71, 75, 56, 49, 105, 71, 76, 55, 78, 52, 59, 78, 76, 73, 75, 72, 67, 78, 76, 60, 79, 62, 69, 67, 54, 92, 76, 62, 52, 70, 60, 64, 64, 50, 51, 71, 60, 48, 65, 62, 71, 59, 65, 63, 58, 58, 69, 48, 56, 86, 66, 64, 52, 65, 68, 63, 111, 121, 81, 41, 67, 48, 79, 54, 61, 65, 64, 54, 56, 97, 103, 63, 66, 49, 70, 61, 44, 55, 98, 67, 79, 65, 62, 76, 71, 55, 62, 53, 51, 83, 71, 76, 69, 62, 96, 61, 51, 61, 59, 68, 57, 35, 50, 66, 64, 61, 87, 75, 64, 68, 71, 74, 58, 50, 67, 59, 64, 57, 73, 53, 65, 57, 82, 53, 42, 99, 56, 58, 51, 82, 78, 56, 57, 91, 117, 56, 64, 55, 52, 63, 73, 52, 54, 68, 49, 76, 50, 62, 66, 73, 78, 79, 72, 56, 78, 63, 72, 80, 57, 49, 58, 75, 112, 79, 71, 68, 69, 64, 63, 50, 72, 67, 57, 62, 84, 56, 68, 66, 67, 59, 64, 95, 57, 62, 71, 71, 67, 49, 93, 86, 62, 42, 67, 59, 86, 48, 54, 86, 58, 39, 71, 62, 82, 80, 95, 60, 78, 76, 70, 59, 64, 62, 76, 94, 64, 53, 51, 50, 73, 49, 71, 38, 70, 69, 77, 50, 66, 67, 78, 68, 46, 63, 74, 58, 51, 77, 68, 80, 60, 58, 57, 51, 54, 50, 47, 75, 62, 73, 97, 58, 59, 75, 85, 67, 58, 63, 57, 81, 53, 75, 67, 63, 59, 92, 61, 67, 52, 68, 52, 53, 71, 59, 48, 57, 47, 56, 71, 70, 89, 50, 50, 68, 62, 62, 75, 52, 66, 83, 76, 37, 56, 51, 80, 57, 44, 70, 68, 64, 52, 77, 81, 66, 48, 72, 57, 58, 82, 75, 51, 58, 56, 52, 69, 56, 56, 49, 72, 43, 64, 36, 57, 74, 65, 60, 65, 56, 116, 61, 52, 67, 68, 44, 68, 50, 52, 59, 48, 127, 77, 84, 55, 66, 49, 55, 58, 57, 109, 46, 69, 81, 59, 37, 71, 64, 69, 64, 62, 85, 79, 92, 64, 81, 87, 53, 82, 59, 71, 67, 77, 57, 49, 64, 99, 66, 70, 70, 78, 61, 58, 73, 78, 64, 58, 111, 66, 83, 59, 50, 56, 76, 51, 70, 74, 56, 46, 101, 65, 74, 57, 60, 69, 68, 59, 64, 64, 62, 77, 61, 55, 75, 63, 82, 62, 66, 64, 79, 60, 57, 84, 94, 64, 55, 47, 53, 55, 62, 48, 71, 111, 43, 42, 87, 66, 92, 83, 64, 53, 79, 71, 74, 99, 59, 57, 55, 59, 62, 70, 65, 65, 73, 73, 62, 54, 57, 76, 68, 92, 65, 58, 61, 55, 77, 66, 70, 66, 74, 78, 68, 62, 76, 78, 57, 65, 54, 82, 89, 58, 73, 48, 51, 72, 55, 53, 59, 61, 81, 69, 68, 51, 62, 49, 66, 56, 48, 54, 61, 51, 49, 127, 86, 89, 70, 67, 73, 54, 77, 45, 90, 55, 58, 58, 52, 83, 69, 65, 80, 98, 103, 75, 60, 65, 87, 58, 66, 75, 63, 59, 51, 62, 52, 86, 53, 53, 89, 51, 60, 73, 59, 72, 58, 54, 78, 63, 62, 130, 91, 65, 98, 72, 64, 106, 70, 81, 64, 70, 71, 48, 69, 56, 66, 74, 42, 63, 62, 70, 62, 74, 53, 86, 53, 76, 71, 55, 69, 56, 60, 51, 56, 54, 65, 93, 75, 74, 70, 45, 58, 60, 68, 85, 59, 83, 57, 84, 37, 73, 73, 50, 55, 54, 88, 62, 55, 83, 112, 55, 60, 71, 42, 89, 63, 64, 94, 56, 75, 59, 98, 53, 48, 105, 64, 46, 71, 63, 47, 73, 80, 71, 63, 71, 68, 57, 58, 70, 41, 71, 45, 82, 55, 50, 54, 46, 42, 59, 53, 68, 69, 62, 62, 70, 49, 92, 76, 73, 60, 48, 71, 68, 58, 65, 70, 74, 81, 51, 62, 66, 73, 58, 46, 53, 80, 106, 105, 60, 59, 63, 53, 57, 88, 71, 57, 80, 72, 66, 57, 60, 92, 48, 53, 47, 59, 67, 63, 65, 53, 88, 68, 82, 72, 65, 110, 67, 58, 56, 67, 53, 70, 109, 66, 83, 69, 67, 61, 82, 70, 64, 66, 58, 91, 50, 53, 52, 51, 48, 52, 79, 87, 53, 64, 84, 55, 64, 67, 68, 64, 90, 62, 60, 71, 62, 58, 82, 95, 79, 66, 72, 64, 72, 46, 52, 62, 67, 89, 67, 94, 60, 49, 59, 63, 65, 62, 64, 83, 31, 55, 71, 68, 54, 46, 72, 74, 77, 65, 56, 48, 72, 97, 65, 67, 86, 41, 45, 72, 63, 81, 69, 85, 70, 66, 49, 70, 58, 91, 30, 60, 62, 51, 69, 71, 83, 53, 84, 58, 52, 55, 58, 32, 70, 62, 77, 63, 64, 72, 45, 60, 50, 75, 88, 57, 55, 76, 51, 48, 63, 73, 85, 68, 64, 79, 68, 80, 64, 74, 63, 74, 62, 64, 66, 66, 55, 60, 51, 89, 76, 68, 51, 70, 70, 70, 78, 71, 50, 48, 58, 68, 87, 80, 50, 41, 39, 42, 58, 62, 65, 78, 72, 70, 54, 64, 61, 64, 49, 71, 47, 57, 62, 68, 67, 51, 102, 67, 69, 63, 48, 69, 60, 57, 72, 53, 67, 54, 69, 51, 58, 54, 56, 54, 69, 50, 66, 67, 55, 82, 87, 152, 62, 52, 59, 65, 81, 55, 53, 80, 56, 61, 61, 70, 72, 58, 60, 97, 53, 47, 46, 54, 104, 75, 73, 66, 52, 53, 67, 49, 72, 58, 60, 69, 72, 74, 62, 74, 67, 69, 88, 57, 63, 55, 68, 68, 61, 68, 56, 55, 44, 84, 60, 83, 54, 54, 58, 57, 57, 91, 81, 81, 60, 76, 61, 83, 81, 54, 74, 92, 56, 69, 69, 58, 54, 61, 56, 71, 63, 68, 73, 54, 56, 72, 69, 76, 71, 82, 57, 51, 57, 75, 76, 61, 58, 60, 93, 65, 73, 51, 77, 120, 70, 81, 63, 60, 57, 73, 128, 66, 76, 71, 88, 44, 65, 51, 64, 54, 77, 62, 58, 62, 98, 59, 54, 54, 67, 49, 85, 47, 61, 59, 59, 72, 82, 56, 72, 49, 59, 97, 106, 55, 52, 65, 61, 45, 63, 57, 80, 64, 135, 60, 60, 57, 75, 84, 71, 59, 72, 53, 62, 75, 59, 67, 69, 93, 59, 64, 78, 62, 73, 66, 62, 74, 60, 61, 41, 77, 81, 52, 86, 65, 76, 69, 58, 53, 47, 64, 55, 53, 44, 62, 85, 69, 66, 84, 63, 60, 40, 94, 72, 65, 49, 62, 56, 62, 74, 49, 75, 89, 60, 62, 47, 90, 104, 62, 108, 54, 51, 51, 48, 78, 59, 67, 55, 63, 74, 54, 52, 111, 56, 74, 44, 59, 59, 61, 55, 60, 64, 72, 70, 50, 50, 60, 98, 72, 53, 113, 60, 55, 75, 80, 78, 57, 82, 74, 78, 52, 69, 65, 63, 73, 73, 73, 56, 58, 57, 52, 84, 63, 62, 69, 54, 82, 51, 54, 69, 54, 73, 75, 65, 64, 61, 52, 87, 70, 57, 82, 66, 65, 67, 56, 75, 63, 56, 59, 84, 62, 81, 62, 57, 67, 52, 93, 67, 67, 49, 79, 65, 64, 80, 83, 66, 53, 70, 77, 61, 41, 53, 80, 98, 71, 64, 74, 62, 65, 78, 45, 48, 39, 82, 59, 63, 70, 85, 60, 63, 59, 52, 41, 78, 42, 52, 55, 68, 64, 70, 47, 72, 73, 62, 64, 68, 87, 75, 42, 74, 87, 54, 70, 86, 75, 49, 73, 62, 69, 64, 63, 52, 72, 92, 77, 57, 77, 66, 58, 82, 91, 73, 91, 71, 65, 72, 58, 65, 64, 73, 69, 46, 66, 75, 51, 65, 65, 45, 53, 74, 61, 56, 83, 67, 55, 48, 71, 59, 73, 65, 64, 67, 88, 74, 91, 86, 51, 74, 59, 71, 83, 51, 61, 71, 61, 85, 84, 57, 60, 67, 68, 64, 61, 49, 58, 54, 62, 60, 79, 68, 49, 68, 51, 55, 68, 63, 86, 97, 88, 75, 70, 78, 60, 72, 55, 80, 51, 67, 50, 61, 67, 52, 123, 65, 74, 51, 77, 53, 52, 65, 61, 120, 42, 56, 68, 81, 62, 72, 58, 56, 69, 56, 55, 42, 49, 61, 52, 92, 54, 84, 59, 55, 73, 90, 75, 54, 79, 105, 61, 51, 46, 72, 73, 58, 61, 54, 74, 68, 94, 89, 83, 79, 72, 73, 62, 48, 102, 66, 92, 63, 51, 63, 63, 65, 60, 70, 46, 51, 77, 80, 67, 73, 80, 53, 75, 70, 73, 80, 90, 65, 43, 72, 53, 55, 50, 68, 69, 67, 72, 43, 67, 75, 41, 87, 71, 69, 58, 73, 83, 68, 87, 64, 73, 60, 101, 63, 79, 70, 64, 60, 66, 63, 80, 58, 64, 58, 51, 63, 59, 68, 66, 51, 69, 62, 58, 63, 59, 62, 92, 63, 63, 60, 48, 67, 49, 65, 73, 72, 69, 77, 68, 48, 63, 65, 67, 101, 66, 53, 57, 48, 86, 69, 70, 71, 53, 54, 53, 48, 65, 66, 57, 75, 90, 125, 67, 53, 63, 52, 68, 60, 66, 71, 81, 60, 70, 64, 78, 59, 61, 84, 75, 89, 89, 58, 81, 72, 68, 57, 84, 57, 65, 72, 48, 74, 55, 62, 67, 80, 72, 55, 85, 67, 61, 72, 57, 54, 65, 62, 65, 76, 73, 56, 62, 62, 54, 86, 66, 64, 62, 61, 61, 58, 51, 52, 78, 60, 58, 88, 79, 64, 68, 60, 65, 69, 62, 52, 66, 55, 55, 67, 59, 62, 71, 53, 65, 69, 59, 80, 46, 64, 62, 83, 69, 66, 69, 65, 47, 78, 52, 70, 68, 60, 66, 48, 79, 63, 69, 89, 98, 65, 60, 65, 52, 77, 67, 86, 94, 63, 44, 66, 88, 61, 52, 92, 65, 85, 46, 100, 45, 52, 56, 60, 74, 52, 103, 64, 54, 55, 66, 67, 54, 66, 55, 52, 43, 70, 58, 44, 65, 66, 74, 78, 54, 98, 70, 84, 103, 66, 59, 68, 72, 61, 58, 58, 72, 80, 76, 66, 63, 57, 67, 67, 71, 30, 69, 61, 56, 48, 65, 57, 58, 53, 52, 64, 56, 89, 49, 66, 62, 60, 90, 64, 71, 64, 57, 54, 41, 63, 62, 59, 82, 44, 72, 86, 91, 63, 54, 53, 64, 61, 49, 91, 74, 69, 87, 58, 57, 50, 71, 55, 65, 73, 75, 58, 53, 42, 59, 81, 67, 78, 96, 70, 64, 81, 62, 48, 65, 86, 67, 96, 87, 55, 63, 59, 68, 91, 54, 60, 53, 62, 53, 66, 51, 39, 49, 66, 44, 50, 84, 58, 63, 59, 61, 68, 50, 63, 70, 53, 69, 50, 70, 82, 62, 59, 75, 65, 69, 61, 58, 42, 56, 50, 73, 73, 43, 59, 54, 75, 55, 68, 50, 60, 92, 48, 63, 74, 85, 74, 41, 57, 58, 55, 79, 59, 77, 77, 69, 65, 42, 42, 64, 81, 87, 75, 51, 62, 59, 66, 80, 88, 61, 66, 62, 47, 95, 58, 64, 56, 58, 77, 51, 47, 86, 61, 76, 88, 54, 53, 64, 53, 77, 58, 70, 54, 62, 57, 80, 59, 55, 52, 48, 92, 48, 96, 64, 80, 66, 71, 78, 52, 57, 59, 58, 60, 71, 59, 60, 55, 55, 80, 62, 56, 74, 82, 79, 58, 64, 82, 57, 57, 55, 82, 62, 72, 56, 91, 55, 62, 72, 53, 47, 62, 43, 83, 69, 74, 45, 76, 64, 59, 61, 53, 75, 63, 51, 63, 77, 76, 142, 79, 50, 60, 44, 69, 57, 48, 77, 59, 66, 63, 54, 80, 75, 53, 61, 44, 68, 88, 82, 115, 68, 86, 84, 62, 54, 57, 57, 51, 78, 51, 57, 59, 60, 82, 67, 65, 56, 62, 73, 66, 63, 73, 74, 76, 60, 63, 67, 57, 71, 72, 51, 67, 65, 71, 42, 78, 47, 79, 66, 68, 58, 70, 51, 97, 63, 70, 62, 53, 66, 58, 76, 61, 67, 88, 65, 46, 78, 62, 56, 59, 50, 65, 93, 94, 74, 52, 56, 83, 78, 60, 73, 55, 77, 95, 60, 79, 66, 83, 71, 69, 74, 43, 58, 69, 51, 84, 71, 69, 71, 80, 71, 67, 63, 79, 54, 69, 61, 55, 69, 59, 53, 67, 63, 77, 81, 73, 67, 43, 53, 58, 53, 56, 64, 65, 59, 69, 89, 105, 65, 48, 45, 86, 56, 89, 64, 64, 72, 111, 58, 67, 79, 63, 68, 85, 49, 79, 67, 74, 90, 61, 68, 58, 131, 50, 67, 74, 73, 79, 63, 56, 60, 61, 36, 75, 79, 104, 68, 72, 69, 50, 58, 65, 48, 76, 47, 63, 75, 62, 64, 56, 62, 58, 87, 84, 56, 61, 55, 59, 94, 60, 57, 64, 54, 52, 53, 80, 82, 63, 61, 62, 73, 79, 81, 76, 68, 63, 56, 97, 42, 69, 58, 90, 64, 48, 64, 53, 78, 70, 67, 63, 76, 46, 61, 57, 44, 64, 70, 70, 44, 76, 75, 63, 67, 66, 53, 65, 58, 56, 74, 61, 59, 48, 76, 57, 62, 67, 57, 62, 69, 128, 65, 60, 63, 75, 110, 64, 76, 58, 62, 45, 54, 65, 74, 73, 42, 42, 90, 69, 61, 67, 59, 50, 65, 54, 57, 59, 68, 64, 54, 121, 43, 65, 63, 64, 75, 67, 72, 59, 79, 86, 58, 87, 68, 64, 80, 81, 57, 65, 68, 65, 61, 44, 51, 70, 70, 58, 46, 98, 67, 54, 55, 63, 57, 47, 75, 54, 51, 71, 86, 73, 44, 49, 83, 76, 90, 73, 61, 58, 56, 59, 92, 96, 60, 83, 90, 73, 54, 54, 74, 61, 51, 63, 51, 54, 67, 62, 61, 66, 69, 73, 59, 68, 68, 100, 60, 60, 65, 65, 56, 57, 56, 57, 42, 56, 73, 65, 62, 62, 69, 62, 59, 59, 61, 57, 81, 74, 66, 57, 60, 54, 57, 78, 64, 61, 74, 62, 77, 72, 72, 70, 58, 61, 65, 87, 65, 58, 61, 60, 72, 48, 63, 71, 75, 66, 65, 68, 67, 65, 88, 65, 64, 48, 72, 50, 60, 66, 57, 59, 72, 59, 98, 63, 71, 58, 52, 68, 71, 57, 105, 98, 62, 99, 75, 59, 52, 63, 73, 46, 51, 70, 57, 80, 65, 65, 66, 99, 72, 73, 64, 55, 54, 96, 55, 64, 66, 72, 58, 49, 73, 57, 75, 62, 72, 71, 52, 62, 56, 68, 54, 68, 64, 55, 67, 48, 65, 80, 63, 78, 72, 70, 104, 66, 88, 61, 55, 67, 65, 78, 80, 61, 70, 50, 91, 61, 60, 62, 59, 71, 57, 59, 58, 74, 99, 56, 90, 54, 65, 55, 56, 77, 76, 59, 86, 51, 57, 72, 62, 67, 82, 66, 45, 63, 53, 80, 77, 65, 78, 70, 64, 61, 65, 82, 54, 60, 104, 57, 61, 49, 57, 62, 64, 62, 74, 57, 72, 65, 63, 65, 66, 62, 81, 50, 64, 59, 76, 60, 62, 85, 73, 58, 79, 53, 64, 61, 82, 62, 62, 50, 61, 72, 54, 72, 61, 67, 60, 70, 60, 68, 52, 73, 80, 58, 53, 81, 49, 76, 68, 67, 68, 49, 55, 67, 54, 57, 52, 79, 65, 61, 65, 60, 61, 60, 58, 67, 48, 62, 57, 67, 63, 62, 54, 56, 61, 69, 61, 54, 81, 85, 65, 63, 94, 92, 53, 85, 52, 49, 60, 69, 64, 57, 69, 80, 94, 57, 58, 74, 65, 75, 71, 66, 58, 54, 61, 83, 52, 62, 61, 77, 59, 58, 70, 76, 64, 61, 96, 63, 60, 64, 57, 57, 61, 57, 56, 78, 64, 81, 78, 73, 59, 121, 83, 79, 63, 58, 67, 67, 75, 60, 61, 53, 55, 52, 52, 64, 64, 73, 63, 67, 51, 70, 49, 58, 57, 64, 50, 82, 71, 69, 70, 55, 59, 71, 68, 81, 67, 57, 77, 46, 63, 41, 68, 91, 67, 63, 67, 71, 55, 48, 73, 71, 88, 71, 53, 42, 64, 75, 52, 59, 64, 61, 71, 68, 73, 63, 59, 55, 71, 78, 66, 85, 100, 75, 57, 50, 63, 75, 64, 57, 82, 74, 67, 54, 66, 67, 70, 65, 62, 66, 59, 55, 44, 66, 70, 65, 69, 70, 63, 92, 81, 54, 60, 56, 59, 83, 70, 79, 57, 63, 77, 61, 48, 56, 60, 68, 82, 65, 62, 60, 71, 70, 61, 70, 64, 68, 65, 72, 70, 72, 56, 68, 94, 75, 63, 59, 51, 75, 61, 61, 70, 71, 58, 51, 74, 67, 55, 66, 60, 58, 64, 46, 65, 55, 64, 60, 123, 81, 62, 81, 49, 78, 59, 60, 50, 71, 80, 86, 59, 70, 125, 73, 38, 66, 74, 68, 82, 78, 64, 71, 49, 81, 52, 76, 87, 114, 59, 58, 54, 74, 67, 59, 102, 74, 67, 63, 88, 79, 52, 72, 69, 63, 57, 115, 55, 45, 52, 67, 64, 71, 57, 67, 59, 85, 109, 83, 49, 56, 67, 55, 64, 56, 105, 60, 83, 78, 55, 77, 62, 71, 73, 57, 58, 90, 62, 62, 67, 70, 79, 68, 58, 59, 50, 58, 60, 66, 45, 51, 58, 69, 65, 55, 71, 52, 66, 77, 70, 50, 81, 54, 47, 63, 69, 79, 81, 57, 59, 63, 64, 72, 63, 74, 57, 77, 49, 61, 62, 65, 75, 75, 46, 63, 59, 54, 68, 58, 54, 69, 101, 60, 66, 79, 68, 75, 73, 77, 66, 62, 80, 90, 49, 75, 55, 62, 94, 66, 65, 67, 79, 67, 75, 63, 80, 67, 62, 58, 56, 69, 75, 59, 64, 54, 57, 56, 67, 64, 58, 83, 51, 63, 83, 65, 67, 83, 73, 66, 62, 60, 66, 74, 56, 54, 60, 79, 62, 80, 52, 57, 65, 70, 54, 68, 54, 57, 65, 63, 62, 61, 62, 63, 62, 65, 62, 42, 56, 52, 53, 47, 64, 53, 60, 71, 76, 62, 51, 70, 70, 69, 62, 61, 55, 65, 64, 71, 105, 51, 68, 61, 70, 59, 63, 76, 69, 60, 64, 85, 41, 88, 79, 60, 84, 68, 66, 70, 66, 59, 60, 60, 36, 65, 54, 110, 73, 82, 60, 61, 67, 64, 48, 63, 50, 60, 63, 68, 45, 66, 70, 75, 63, 54, 76, 64, 66, 66, 78, 49, 52, 82, 61, 64, 68, 87, 63, 76, 51, 56, 74, 61, 67, 61, 49, 60, 66, 48, 61, 67, 64, 67, 63, 70, 61, 93, 62, 83, 46, 159, 51, 70, 64, 67, 52, 60, 60, 70, 67, 52, 83, 63, 67, 57, 95, 61, 68, 59, 59, 60, 45, 52, 109, 67, 73, 57, 66, 67, 59, 63, 56, 67, 43, 88, 92, 68, 52, 57, 81, 57, 63, 68, 82, 57, 50, 64, 77, 74, 58, 49, 55, 56, 118, 83, 55, 66, 52, 88, 99, 59, 46, 64, 57, 76, 68, 61, 93, 52, 77, 70, 77, 81, 73, 53, 63, 60, 64, 64, 79, 75, 64, 62, 52, 62, 91, 49, 48, 42, 80, 66, 68, 45, 77, 78, 64, 62, 53, 51, 72, 69, 78, 60, 89, 61, 64, 79, 67, 55, 77, 61, 63, 60, 71, 76, 51, 55, 60, 53, 54, 71, 54, 67, 52, 72, 60, 64, 69, 88, 61, 80, 85, 56, 51, 55, 95, 69, 88, 66, 49, 58, 57, 52, 58, 84, 82, 68, 59, 66, 54, 73, 55, 69, 74, 67, 65, 80, 53, 51, 60, 54, 56, 42, 69, 60, 69, 83, 62, 67, 85, 89, 67, 59, 52, 69, 62, 62, 65, 81, 79, 56, 66, 76, 64, 61, 66, 57, 72, 77, 58, 72, 87, 57, 60, 61, 115, 64, 82, 76, 58, 60, 52, 60, 85, 54, 63, 71, 61, 66, 68, 61, 71, 67, 39, 64, 85, 67, 58, 48, 95, 61, 75, 85, 66, 61, 49, 58, 75, 57, 63, 71, 60, 76, 96, 61, 69, 74, 66, 66, 44, 51, 63, 48, 74, 53, 66, 55, 64, 71, 51, 51, 53, 58, 83, 57, 62, 83, 53, 51, 60, 106, 53, 81, 71, 70, 48, 73, 61, 63, 87, 55, 74, 44, 104, 70, 65, 65, 85, 58, 54, 31, 54, 65, 62, 73, 75, 62, 55, 60, 77, 58, 59, 57, 120, 56, 64, 72, 82, 41, 82, 87, 55, 59, 53, 55, 62, 71, 68, 45, 74, 70, 112, 79, 72, 65, 65, 63, 78, 69, 55, 76, 100, 63, 57, 54, 62, 63, 57, 59, 63, 90, 57, 81, 62, 77, 75, 84, 80, 58, 65, 72, 66, 51, 66, 65, 64, 67, 63, 89, 41, 69, 50, 102, 68, 41, 58, 107, 65, 55, 67, 78, 67, 50, 62, 63, 71, 66, 88, 55, 45, 64, 71, 54, 143, 66, 75, 55, 78, 69, 52, 73, 61, 63, 46, 57, 87, 74, 80, 64, 71, 67, 45, 78, 62, 49, 76, 66, 54, 42, 43, 58, 57, 73, 78, 85, 64, 73, 61, 61, 64, 59, 96, 67, 65, 58, 59, 68, 68, 77, 54, 72, 55, 49, 62, 68, 71, 60, 71, 48, 70, 67, 51, 47, 52, 61, 79, 57, 92, 80, 59, 61, 56, 80, 79, 76, 54, 62, 57, 61, 60, 56, 69, 67, 73, 60, 66, 59, 51, 62, 60, 63, 57, 60, 39, 61, 89, 58, 86, 60, 66, 62, 60, 60, 53, 51, 64, 65, 69, 58, 64, 81, 66, 62, 51, 69, 52, 54, 57, 60, 58, 62, 70, 68, 55, 53, 90, 53, 66, 49, 69, 55, 74, 60, 61, 69, 77, 45, 88, 54, 46, 83, 61, 48, 75, 62, 50, 55, 60, 63, 46, 82, 58, 82, 102, 65, 76, 76, 61, 66, 79, 70, 55, 77, 57, 65, 67, 72, 56, 94, 69, 59, 70, 66, 49, 57, 71, 44, 58, 64, 59, 63, 71, 63, 64, 63, 92, 81, 53, 60, 63, 46, 83, 53, 57, 99, 95, 67, 73, 67, 80, 47, 52, 72, 68, 56, 74, 66, 60, 76, 65, 53, 64, 59, 79, 101, 34, 69, 80, 41, 78, 54, 106, 67, 54, 38, 73, 74, 67, 94, 63, 59, 54, 55, 71, 56, 64, 92, 73, 72, 71, 62, 60, 80, 51, 80, 47, 63, 61, 45, 58, 85, 62, 60, 49, 75, 67, 61, 68, 45, 129, 40, 46, 120, 56, 80, 60, 61, 61, 57, 60, 69, 60, 78, 60, 71, 61, 67, 69, 62, 77, 86, 73, 91, 53, 60, 61, 56, 76, 56, 61, 50, 52, 79, 53, 53, 54, 82, 55, 50, 66, 67, 79, 70, 63, 51, 74, 75, 65, 67, 59, 63, 62, 70, 60, 94, 61, 55, 48, 70, 63, 53, 112, 76, 57, 42, 78, 112, 49, 53, 76, 62, 72, 86, 70, 75, 84, 57, 59, 53, 75, 58, 49, 53, 58, 54, 49, 59, 53, 65, 44, 80, 50, 76, 92, 62, 55, 69, 76, 68, 59, 65, 62, 88, 76, 57, 64, 61, 64, 69, 81, 64, 70, 52, 67, 60, 70, 54, 86, 56, 60, 115, 62, 75, 75, 56, 46, 56, 79, 59, 51, 64, 58, 87, 63, 62, 52, 68, 60, 36, 66, 52, 64, 51, 69, 67, 54, 58, 67, 63, 103, 48, 56, 57, 52, 65, 67, 54, 67, 68, 82, 55, 75, 88, 95, 57, 52, 69, 51, 109, 54, 91, 57, 69, 64, 72, 52, 67, 75, 66, 67, 88, 64, 94, 79, 58, 57, 63, 67, 46, 62, 57, 33, 72, 48, 50, 63, 60, 82, 53, 74, 52, 77, 83, 62, 69, 59, 53, 56, 61, 72, 83, 63, 47, 64, 55, 46, 53, 66, 54, 75, 62, 70, 64, 44, 71, 54, 87, 81, 56, 64, 59, 59, 43, 60, 62, 76, 71, 78, 59, 77, 47, 53, 59, 65, 58, 76, 93, 57, 69, 43, 80, 85, 38, 57, 49, 56, 70, 55, 61, 82, 57, 52, 74, 59, 61, 65, 31, 67, 55, 59, 62, 55, 60, 77, 66, 61, 73, 75, 65, 56, 75, 62, 57, 71, 56, 59, 82, 66, 60, 83, 66, 78, 61, 58, 71, 90, 66, 76, 82, 55, 59, 56, 104, 58, 74, 92, 73, 55, 69, 56, 65, 65, 55, 48, 103, 76, 54, 67, 44, 77, 50, 73, 79, 54, 63, 65, 78, 62, 84, 60, 67, 62, 63, 74, 58, 76, 57, 63, 79, 53, 89, 97, 62, 69, 69, 60, 62, 69, 64, 46, 62, 66, 58, 53, 41, 57, 54, 74, 85, 73, 62, 45, 46, 52, 88, 88, 60, 60, 104, 54, 52, 118, 48, 57, 50, 82, 57, 46, 56, 64, 90, 69, 55, 71, 74, 51, 61, 72, 64, 69, 51, 72, 88, 108, 51, 86, 109, 55, 88, 53, 67, 62, 62, 40, 55, 66, 64, 58, 75, 67, 62, 73, 50, 110, 63, 41, 44, 62, 56, 111, 60, 52, 121, 72, 55, 64, 56, 62, 66, 67, 50, 47, 66, 78, 49, 77, 53, 84, 51, 77, 56, 54, 55, 47, 58, 49, 59, 51, 90, 64, 56, 70, 85, 64, 48, 70, 49, 57, 51, 41, 85, 55, 69, 65, 69, 53, 62, 70, 62, 49, 69, 59, 60, 58, 53, 81, 49, 48, 61, 60, 65, 48, 53, 53, 48, 59, 68, 52, 75, 67, 57, 78, 65, 92, 72, 71, 52, 60, 74, 50, 55, 65, 57, 47, 63, 52, 55, 77, 56, 83, 58, 59, 47, 68, 76, 55, 60, 78, 89, 124, 65, 59, 79, 57, 83, 56, 91, 47, 91, 50, 69, 59, 53, 93, 55, 60, 61, 68, 53, 52, 121, 65, 68, 65, 67, 56, 57, 86, 72, 56, 35, 72, 80, 71, 63, 95, 88, 60, 58, 75, 79, 59, 59, 24, 89, 53, 78, 53, 89, 59, 57, 76, 75, 54, 45, 79, 96, 93, 69, 65, 72, 66, 97, 68, 58, 43, 91, 75, 64, 45, 70, 81, 70, 89, 46, 63, 64, 49, 50, 70, 61, 55, 72, 116, 48, 56, 120, 62, 93, 53, 75, 80, 75, 63, 70, 66, 63, 73, 49, 80, 63, 53, 47, 57, 59, 72, 52, 81, 72, 61, 52, 77, 76, 81, 62, 76, 61, 60, 76, 50, 75, 63, 66, 74, 54, 49, 81, 61, 83, 101, 74, 74, 47, 54, 60, 60, 70, 66, 83, 45, 64, 70, 82, 70, 88, 66, 49, 68, 72, 47, 63, 73, 48, 61, 90, 69, 71, 58, 75, 56, 65, 90, 86, 71, 87, 66, 73, 40, 86, 87, 62, 56, 58, 65, 72, 59, 56, 80, 79, 63, 58, 51, 76, 43, 51, 57, 52, 70, 62, 73, 50, 74, 56, 62, 62, 69, 45, 97, 71, 62, 88, 91, 65, 69, 56, 76, 67, 55, 54, 71, 74, 137, 63, 63, 59, 71, 46, 66, 67, 67, 125, 70, 66, 57, 62, 68, 35, 57, 60, 56, 63, 62, 61, 63, 57, 56, 84, 74, 95, 65, 62, 59, 63, 46, 67, 95, 51, 63, 58, 57, 58, 39, 59, 56, 79, 71, 59, 92, 94, 64, 61, 45, 60, 65, 83, 58, 54, 104, 52, 47, 52, 73, 79, 53, 52, 61, 65, 52, 71, 68, 73, 67, 63, 76, 72, 61, 60, 79, 64, 74, 60, 62, 70, 46, 57, 66, 66, 63, 57, 70, 81, 59, 56, 76, 98, 64, 63, 71, 55, 91, 56, 66, 58, 107, 79, 96, 56, 56, 56, 37, 58, 73, 72, 52, 61, 58, 65, 58, 82, 57, 76, 68, 58, 67, 52, 64, 46, 55, 51, 66, 87, 58, 48, 46, 72, 70, 95, 50, 61, 72, 47, 72, 64, 54, 112, 49, 51, 77, 66, 82, 52, 55, 68, 70, 69, 91, 56, 73, 50, 68, 90, 105, 115, 64, 65, 59, 64, 62, 64, 57, 71, 71, 54, 64, 51, 62, 70, 67, 48, 73, 54, 76, 61, 100, 54, 74, 61, 73, 64, 63, 81, 66, 63, 47, 68, 75, 57, 81, 88, 76, 67, 52, 76, 43, 60, 82, 51, 70, 64, 56, 57, 54, 42, 62, 65, 59, 71, 52, 67, 60, 36, 44, 57, 60, 64, 65, 60, 56, 70, 58, 52, 66, 63, 78, 49, 47, 50, 70, 73, 41, 70, 63, 63, 55, 67, 74, 58, 56, 46, 47, 65, 89, 98, 61, 75, 43, 70, 66, 65, 66, 47, 67, 69, 59, 73, 48, 78, 97, 54, 60, 78, 67, 66, 52, 68, 68, 45, 63, 68, 75, 76, 59, 95, 63, 70, 52, 113, 64, 73, 94, 63, 45, 71, 99, 47, 67, 58, 64, 84, 53, 89, 84, 44, 77, 58, 68, 64, 63, 78, 67, 58, 47, 40, 60, 62, 106, 70, 56, 81, 64, 72, 76, 64, 66, 77, 49, 68, 70, 94, 43, 53, 70, 74, 66, 61, 47, 52, 43, 53, 111, 49, 70, 66, 71, 76, 71, 62, 58, 58, 81, 68, 69, 77, 66, 58, 59, 72, 80, 58, 81, 82, 59, 77, 73, 75, 54, 60, 68, 73, 84, 67, 63, 53, 57, 59, 65, 63, 62, 71, 59, 56, 78, 60, 54, 56, 103, 51, 109, 82, 71, 49, 59, 63, 48, 47, 86, 74, 46, 46, 62, 55, 63, 50, 56, 46, 57, 64, 46, 73, 44, 60, 52, 61, 70, 52, 60, 69, 67, 62, 55, 92, 88, 58, 66, 80, 60, 58, 72, 66, 76, 64, 59, 67, 95, 75, 73, 72, 54, 65, 61, 74, 47, 62, 46, 50, 69, 89, 67, 47, 79, 60, 86, 57, 61, 74, 54, 75, 78, 72, 51, 50, 111, 97, 58, 75, 49, 63, 73, 61, 46, 65, 68, 69, 63, 67, 56, 77, 56, 63, 63, 58, 70, 67, 105, 80, 51, 56, 77, 78, 58, 59, 70, 62, 64, 71, 55, 60, 64, 73, 87, 67, 55, 38, 63, 76, 110, 57, 58, 65, 49, 89, 62, 61, 65, 62, 75, 54, 58, 50, 42, 86, 70, 64, 107, 65, 62, 80, 106, 104, 66, 68, 59, 80, 74, 38, 64, 102, 53, 60, 56, 91, 63, 78, 70, 80, 64, 86, 64, 56, 62, 55, 66, 78, 69, 43, 56, 79, 60, 70, 66, 55, 75, 62, 60, 54, 50, 101, 99, 83, 90, 66, 51, 58, 77, 75, 64, 64, 43, 67, 70, 81, 39, 72, 55, 32, 56, 48, 62, 100, 57, 77, 54, 65, 56, 60, 74, 48, 70, 67, 74, 63, 59, 68, 77, 50, 50, 80, 52, 53, 60, 62, 103, 68, 54, 38, 62, 54, 64, 67, 61, 54, 64, 71, 71, 45, 71, 84, 78, 46, 50, 56, 62, 95, 58, 48, 99, 47, 51, 65, 45, 55, 71, 69, 56, 74, 71, 60, 65, 61, 51, 88, 79, 81, 53, 62, 62, 53, 45, 70, 62, 63, 66, 105, 71, 55, 70, 89, 87, 62, 69, 58, 79, 64, 69, 58, 83, 59, 66, 80, 63, 80, 69, 81, 63, 81, 65, 50, 77, 92, 61, 82, 64, 81, 71, 89, 56, 47, 58, 52, 38, 73, 72, 60, 56, 67, 104, 58, 76, 60, 64, 75, 77, 72, 58, 52, 56, 67, 45, 68, 90, 66, 69, 73, 70, 49, 87, 66, 68, 69, 62, 38, 114, 62, 61, 84, 107, 56, 53, 53, 59, 60, 63, 60, 58, 91, 35, 79, 63, 74, 77, 85, 89, 54, 60, 65, 67, 33, 53, 65, 75, 57, 69, 64, 73, 65, 64, 53, 84, 60, 67, 76, 118, 75, 71, 58, 71, 65, 57, 109, 48, 63, 53, 87, 57, 47, 52, 46, 79, 60, 74, 59, 65, 57, 65, 70, 70, 55, 43, 55, 78, 65, 56, 48, 66, 56, 69, 48, 58, 77, 83, 63, 68, 55, 75, 68, 66, 60, 60, 66, 66, 70, 52, 52, 48, 74, 60, 61, 59, 76, 109, 60, 71, 75, 62, 113, 71, 71, 59, 59, 77, 61, 60, 56, 66, 48, 61, 80, 75, 43, 50, 63, 64, 96, 69, 75, 65, 55, 51, 62, 64, 53, 68, 63, 75, 52, 91, 76, 62, 52, 95, 61, 54, 62, 41, 52, 49, 45, 61, 66, 52, 70, 82, 46, 81, 69, 53, 70, 69, 53, 61, 73, 55, 45, 55, 61, 75, 58, 65, 94, 62, 70, 62, 63, 64, 53, 58, 60, 76, 48, 65, 74, 49, 59, 62, 78, 48, 54, 61, 66, 81, 55, 75, 72, 70, 77, 71, 56, 55, 54, 62, 60, 69, 58, 96, 77, 82, 65, 49, 56, 105, 88, 72, 73, 62, 67, 57, 58, 78, 60, 49, 107, 46, 60, 72, 75, 57, 53, 54, 62, 59, 78, 57, 73, 68, 83, 45, 58, 57, 64, 56, 67, 61, 65, 57, 52, 68, 55, 79, 82, 56, 64, 62, 61, 74, 69, 78, 69, 57, 53, 51, 79, 56, 67, 56, 63, 125, 56, 54, 81, 66, 64, 60, 66, 67, 65, 60, 50, 63, 61, 70, 48, 86, 72, 58, 103, 123, 58, 68, 74, 48, 70, 56, 68, 72, 73, 57, 77, 53, 72, 72, 70, 72, 56, 72, 62, 58, 56, 64, 100, 66, 83, 69, 79, 48, 67, 60, 47, 68, 53, 77, 55, 64, 51, 60, 55, 44, 65, 61, 62, 57, 66, 60, 59, 65, 72, 76, 76, 57, 77, 77, 53, 54, 58, 62, 53, 61, 65, 77, 93, 60, 52, 69, 60, 51, 64, 68, 68, 70, 63, 64, 44, 76, 116, 53, 49, 47, 77, 74, 72, 70, 67, 68, 70, 62, 79, 71, 75, 55, 79, 76, 63, 59, 67, 59, 66, 56, 61, 40, 98, 67, 60, 77, 85, 62, 48, 66, 43, 49, 50, 64, 51, 116, 61, 103, 73, 64, 56, 146, 48, 58, 81, 64, 81, 58, 78, 65, 64, 106, 49, 83, 62, 59, 73, 85, 133, 57, 58, 57, 51, 162, 61, 54, 79, 57, 68, 69, 50, 69, 64, 89, 88, 46, 141, 45, 60, 74, 59, 105, 54, 65, 74, 61, 52, 69, 57, 73, 60, 69, 88, 69, 71, 53, 49, 55, 59, 64, 76, 55, 55, 65, 50, 67, 71, 61, 53, 59, 53, 77, 60, 60, 55, 80, 56, 51, 52, 57, 74, 62, 57, 63, 66, 54, 51, 65, 46, 68, 62, 63, 85, 53, 60, 56, 75, 65, 72, 87, 71, 66, 71, 69, 68, 86, 97, 77, 70, 55, 50, 52, 104, 66, 47, 65, 71, 72, 60, 64, 64, 72, 98, 76, 92, 40, 48, 66, 56, 57, 75, 59, 58, 75, 72, 75, 55, 65, 65, 50, 66, 77, 56, 101, 55, 37, 51, 65, 60, 92, 60, 52, 60, 89, 67, 59, 54, 58, 65, 62, 59, 65, 72, 47, 57, 65, 97, 66, 60, 56, 71, 74, 62, 82, 66, 52, 62, 57, 67, 62, 71, 56, 62, 71, 71, 76, 64, 67, 46, 59, 73, 48, 60, 58, 63, 68, 64, 70, 57, 71, 86, 66, 68, 67, 70, 59, 47, 66, 61, 52, 57, 70, 53, 53, 69, 53, 69, 67, 69, 67, 73, 74, 61, 101, 43, 58, 65, 62, 92, 54, 75, 46, 99, 45, 58, 77, 59, 61, 54, 76, 71, 76, 67, 56, 66, 58, 59, 66, 45, 87, 49, 59, 68, 66, 70, 76, 68, 154, 51, 69, 59, 59, 65, 59, 73, 63, 71, 61, 70, 70, 49, 73, 64, 61, 68, 77, 71, 74, 70, 67, 49, 68, 85, 62, 55, 61, 82, 58, 55, 68, 70, 62, 61, 72, 52, 47, 66, 54, 96, 61, 55, 52, 73, 70, 62, 61, 60, 56, 78, 54, 57, 85, 52, 61, 56, 75, 61, 103, 75, 60, 55, 67, 134, 64, 50, 64, 76, 69, 60, 63, 69, 69, 64, 52, 67, 55, 61, 49, 54, 71, 68, 54, 74, 61, 68, 62, 73, 69, 66, 59, 82, 68, 58, 76, 57, 76, 89, 76, 46, 49, 58, 100, 68, 82, 61, 68, 80, 69, 61, 63, 59, 56, 61, 63, 99, 75, 75, 71, 79, 65, 59, 55, 70, 75, 75, 57, 50, 83, 67, 79, 71, 114, 61, 54, 104, 80, 101, 73, 76, 66, 54, 54, 57, 66, 70, 59, 81, 61, 52, 64, 67, 69, 94, 82, 61, 50, 48, 61, 74, 56, 65, 66, 50, 56, 54, 56, 35, 53, 54, 48, 85, 61, 59, 48, 69, 89, 83, 66, 63, 64, 57, 57, 62, 51, 97, 59, 87, 66, 65, 60, 76, 63, 107, 73, 63, 62, 60, 53, 55, 60, 71, 59, 61, 56, 57, 57, 67, 58, 79, 47, 52, 98, 60, 48, 56, 62, 55, 55, 58, 68, 58, 50, 61, 65, 50, 62, 45, 79, 87, 60, 53, 63, 85, 59, 55, 83, 55, 70, 76, 70, 67, 68, 72, 64, 65, 54, 63, 61, 48, 58, 62, 56, 66, 69, 73, 80, 64, 50, 68, 73, 49, 57, 59, 65, 51, 81, 42, 46, 60, 44, 52, 61, 73, 37, 62, 75, 60, 59, 109, 63, 124, 51, 72, 75, 81, 73, 64, 73, 77, 59, 53, 64, 64, 77, 71, 95, 62, 50, 65, 52, 55, 56, 80, 65, 56, 66, 61, 102, 54, 81, 88, 86, 69, 48, 71, 85, 58, 64, 54, 78, 63, 77, 74, 86, 65, 76, 74, 92, 64, 70, 69, 87, 60, 64, 63, 66, 71, 68, 52, 76, 79, 95, 47, 59, 63, 69, 69, 89, 63, 52, 60, 53, 59, 70, 55, 55, 56, 73, 67, 54, 75, 79, 53, 76, 55, 117, 112, 69, 57, 73, 35, 174, 43, 65, 76, 67, 61, 39, 38, 63, 53, 55, 107, 68, 73, 38, 69, 65, 67, 55, 64, 72, 56, 47, 63, 64, 44, 58, 60, 85, 58, 69, 69, 54, 48, 73, 56, 103, 47, 40, 59, 53, 61, 79, 46, 99, 73, 82, 58, 40, 46, 60, 73, 48, 37, 52, 55, 63, 55, 71, 48, 68, 71, 65, 80, 47, 57, 51, 59, 76, 61, 106, 43, 77, 79, 59, 89, 68, 103, 63, 66, 68, 42, 32, 61, 42, 63, 53, 64, 76, 77, 58, 74, 52, 66, 76, 75, 78, 69, 39, 83, 54, 61, 53, 52, 71, 86, 60, 54, 82, 96, 49, 43, 68, 65, 49, 64, 95, 46, 78, 73, 107, 58, 52, 62, 48, 79, 86, 55, 63, 62, 66, 31, 70, 71, 71, 59, 51, 52, 60, 72, 48, 72, 53, 49, 90, 51, 103, 45, 70, 61, 67, 75, 55, 78, 69, 86, 61, 31, 52, 61, 58, 66, 69, 89, 75, 69, 62, 40, 80, 88, 61, 69, 41, 50, 64, 77, 57, 59, 63, 55, 57, 63, 67, 92, 57, 67, 60, 57, 74, 47, 98, 79, 73, 51, 49, 48, 85, 67, 73, 65, 81, 107, 78, 58, 88, 117, 39, 69, 55, 53, 66, 65, 74, 65, 64, 67, 102, 50, 66, 61, 48, 96, 59, 29, 69, 62, 69, 57, 84, 62, 55, 55, 48, 106, 60, 35, 63, 59, 63, 102, 71, 62, 66, 57, 43, 62, 95, 91, 68, 82, 67, 86, 81, 72, 49, 71, 74, 57, 46, 55, 50, 44, 67, 51, 59, 81, 77, 54, 80, 34, 42, 70, 84, 45, 74, 54, 43, 61, 76, 54, 50, 55, 78, 68, 68, 65, 51, 55, 62, 72, 65, 73, 64, 81, 35, 118, 62, 71, 55, 84, 73, 50, 55, 60, 56, 63, 60, 75, 64, 61, 49, 102, 63, 79, 94, 73, 50, 58, 72, 92, 74, 62, 50, 52, 63, 73, 71, 57, 51, 71, 73, 60, 85, 55, 58, 47, 48, 61, 65, 82, 64, 61, 69, 75, 73, 69, 73, 52, 99, 83, 62, 60, 50, 79, 64, 73, 106, 80, 75, 69, 88, 57, 40, 61, 69, 45, 67, 75, 90, 67, 50, 70, 82, 60, 44, 57, 68, 90, 55, 61, 65, 73, 55, 48, 76, 92, 95, 66, 76, 51, 34, 65, 75, 57, 56, 71, 59, 59, 67, 83, 57, 87, 59, 49, 62, 58, 71, 89, 52, 88, 63, 38, 61, 82, 65, 57, 39, 76, 39, 38, 72, 31, 62, 71, 57, 90, 127, 67, 58, 53, 95, 63, 77, 54, 71, 63, 86, 61, 49, 62, 52, 99, 62, 69, 46, 62, 48, 54, 72, 65, 58, 54, 39, 64, 47, 67, 71, 67, 59, 121, 56, 63, 75, 66, 70, 67, 66, 70, 66, 115, 72, 61, 78, 59, 55, 71, 52, 79, 68, 70, 70, 62, 64, 66, 44, 73, 86, 71, 74, 48, 81, 53, 55, 47, 50, 56, 63, 40, 56, 47, 41, 53, 76, 55, 54, 62, 68, 81, 49, 93, 44, 83, 81, 103, 71, 54, 91, 65, 88, 45, 54, 67, 82, 52, 58, 72, 83, 58, 74, 60, 72, 75, 74, 77, 73, 71, 42, 66, 45, 71, 74, 62, 58, 76, 94, 74, 61, 68, 102, 41, 70, 96, 42, 78, 65, 64, 76, 66, 60, 78, 64, 55, 56, 114, 63, 41, 93, 84, 72, 66, 54, 57, 63, 58, 46, 65, 58, 106, 69, 67, 56, 65, 67, 52, 66, 58, 64, 62, 74, 70, 77, 75, 47, 43, 67, 83, 99, 58, 79, 53, 43, 83, 58, 68, 118, 65, 57, 96, 52, 53, 51, 47, 88, 55, 61, 67, 54, 76, 68, 70, 58, 53, 50, 61, 55, 80, 61, 50, 60, 73, 154, 55, 73, 87, 56, 61, 75, 50, 77, 60, 110, 63, 91, 90, 62, 48, 82, 51, 87, 43, 68, 49, 68, 72, 70, 66, 48, 45, 57, 49, 68, 78, 84, 61, 57, 71, 64, 49, 46, 52, 65, 68, 72, 76, 41, 63, 51, 54, 72, 67, 70, 119, 61, 58, 47, 60, 65, 60, 44, 60, 49, 83, 70, 73, 59, 55, 93, 60, 78, 74, 76, 73, 62, 87, 87, 68, 51, 46, 67, 65, 79, 62, 50, 52, 99, 45, 67, 74, 84, 69, 54, 59, 60, 91, 73, 54, 55, 53, 86, 60, 50, 61, 34, 79, 62, 65, 85, 62, 64, 43, 63, 61, 51, 50, 72, 74, 55, 61, 62, 68, 104, 66, 76, 92, 78, 74, 55, 73, 60, 45, 118, 75, 59, 74, 117, 55, 76, 52, 54, 68, 71, 79, 78, 66, 100, 79, 45, 57, 78, 65, 104, 63, 66, 53, 82, 75, 117, 53, 61, 63, 52, 83, 73, 69, 54, 83, 81, 67, 52, 80, 63, 111, 55, 50, 44, 77, 50, 75, 72, 89, 87, 54, 69, 53, 48, 58, 90, 63, 85, 61, 75, 76, 75, 86, 59, 72, 54, 62, 72, 74, 46, 58, 49, 52, 38, 55, 57, 44, 86, 39, 101, 95, 62, 88, 54, 55, 64, 75, 50, 51, 60, 75, 59, 59, 73, 80, 94, 55, 48, 75, 60, 66, 68, 101, 42, 85, 60, 66, 55, 112, 60, 59, 75, 59, 55, 74, 69, 72, 48, 85, 57, 61, 45, 64, 69, 35, 57, 71, 49, 54, 67, 57, 48, 73, 51, 75, 58, 57, 60, 74, 82, 70, 50, 94, 53, 65, 85, 61, 57, 82, 61, 64, 48, 86, 85, 58, 56, 82, 65, 62, 52, 54, 50, 69, 69, 62, 69, 123, 94, 49, 76, 84, 77, 69, 47, 56, 71, 68, 60, 61, 56, 81, 72, 89, 75, 50, 67, 48, 45, 63, 63, 59, 57, 54, 69, 73, 60, 56, 64, 87, 78, 68, 66, 67, 57, 73, 31, 64, 63, 67, 77, 59, 61, 93, 59, 80, 93, 58, 68, 62, 93, 46, 73, 64, 62, 45, 84, 46, 47, 98, 37, 50, 83, 51, 65, 61, 67, 67, 38, 47, 67, 63, 77, 66, 50, 62, 67, 71, 57, 81, 76, 62, 64, 55, 61, 70, 53, 57, 60, 62, 64, 41, 58, 40, 55, 91, 65, 77, 69, 53, 55, 52, 51, 76, 58, 50, 78, 65, 73, 76, 63, 64, 58, 50, 73, 70, 70, 67, 147, 74, 55, 71, 65, 67, 57, 67, 69, 73, 76, 58, 126, 72, 52, 71, 60, 71, 76, 74, 87, 71, 72, 60, 58, 82, 79, 55, 65, 65, 82, 88, 73, 60, 78, 80, 74, 55, 58, 39, 57, 60, 54, 65, 77, 46, 46, 46, 66, 66, 57, 62, 54, 59, 63, 64, 53, 66, 64, 64, 55, 94, 49, 83, 66, 67, 66, 58, 61, 54, 96, 35, 77, 56, 71, 61, 60, 58, 79, 46, 49, 88, 56, 52, 67, 53, 81, 81, 74, 62, 89, 69, 40, 44, 67, 59, 65, 90, 78, 54, 73, 79, 68, 69, 51, 88, 70, 84, 41, 56, 79, 67, 51, 60, 60, 69, 50, 63, 93, 59, 47, 88, 72, 89, 71, 62, 59, 62, 83, 69, 64, 54, 75, 62, 65, 57, 72, 69, 74, 55, 73, 39, 56, 98, 48, 39, 59, 59, 72, 60, 55, 62, 63, 94, 60, 70, 73, 56, 83, 48, 60, 106, 60, 78, 81, 92, 63, 65, 93, 69, 84, 53, 63, 41, 98, 77, 74, 53, 62, 72, 67, 62, 60, 45, 92, 56, 53, 85, 76, 67, 74, 42, 43, 49, 72, 49, 54, 48, 81, 81, 82, 73, 65, 62, 72, 77, 44, 60, 72, 77, 39, 74, 51, 77, 53, 86, 40, 58, 80, 43, 82, 59, 41, 75, 59, 43, 71, 80, 71, 65, 49, 65, 69, 52, 56, 87, 60, 73, 56, 39, 70, 62, 86, 70, 60, 68, 27, 47, 68, 69, 71, 74, 66, 70, 40, 57, 68, 46, 53, 63, 58, 50, 68, 43, 51, 55, 74, 63, 59, 41, 42, 47, 69, 55, 111, 57, 52, 58, 47, 60, 63, 54, 68, 42, 84, 66, 67, 77, 74, 104, 70, 56, 78, 60, 69, 70, 69, 57, 83, 72, 80, 49, 49, 59, 62, 67, 84, 100, 63, 48, 48, 79, 80, 91, 63, 50, 66, 89, 93, 113, 68, 46, 46, 75, 57, 61, 46, 62, 71, 81, 72, 60, 50, 91, 65, 76, 49, 69, 38, 71, 90, 40, 56, 119, 72, 64, 67, 54, 51, 62, 56, 51, 86, 65, 47, 73, 82, 78, 87, 72, 70, 71, 59, 43, 55, 59, 66, 88, 55, 56, 66, 86, 87, 54, 76, 61, 53, 66, 81, 86, 46, 66, 40, 83, 51, 95, 69, 70, 44, 79, 76, 52, 64, 75, 75, 76, 84, 56, 33, 65, 78, 59, 60, 43, 63, 59, 63, 61, 55, 68, 86, 38, 55, 59, 68, 66, 67, 91, 44, 66, 86, 67, 64, 98, 73, 60, 65, 63, 87, 97, 62, 61, 50, 104, 74, 66, 77, 70, 77, 59, 96, 45, 74, 52, 64, 59, 86, 53, 49, 62, 75, 112, 71, 56, 78, 62, 63, 45, 90, 64, 53, 89, 84, 57, 72, 47, 155, 52, 48, 57, 53, 72, 67, 58, 58, 62, 77, 54, 59, 83, 81, 45, 39, 69, 54, 74, 65, 95, 70, 56, 62, 67, 77, 62, 64, 69, 68, 59, 65, 51, 56, 59, 82, 53, 87, 89, 61, 74, 70, 39, 59, 60, 78, 76, 60, 75, 71, 81, 59, 65, 62, 48, 70, 86, 105, 81, 39, 63, 79, 78, 58, 63, 67, 49, 75, 43, 36, 103, 50, 63, 69, 107, 82, 64, 65, 78, 78, 39, 46, 58, 44, 56, 76, 63, 76, 82, 51, 81, 65, 70, 67, 81, 43, 55, 49, 60, 62, 70, 73, 86, 90, 70, 76, 51, 49, 82, 88, 65, 80, 78, 55, 83, 78, 98, 37, 75, 75, 77, 83, 78, 55, 86, 100, 56, 62, 72, 28, 69, 78, 64, 57, 93, 71, 67, 44, 67, 67, 52, 68, 98, 97, 61, 67, 70, 79, 70, 60, 68, 64, 74, 60, 61, 67, 65, 75, 110, 96, 68, 69, 79, 58, 93, 60, 60, 77, 72, 77, 79, 105, 53, 93, 64, 103, 59, 87, 68, 77, 62, 64, 69, 66, 69, 57, 63, 70, 76, 69, 62, 58, 86, 79, 61, 54, 86, 48, 71, 44, 73, 64, 80, 43, 63, 61, 70, 46, 54, 70, 59, 71, 76, 72, 62, 45, 72, 67, 81, 66, 68, 63, 52, 67, 71, 52, 77, 74, 72, 60, 65, 81, 65, 59, 62, 55, 66, 53, 68, 60, 63, 57, 78, 76, 67, 55, 72, 87, 66, 85, 57, 61, 49, 73, 84, 66, 75, 66, 74, 66, 61, 68, 91, 83, 58, 90, 59, 87, 39, 95, 58, 48, 73, 60, 65, 64, 51, 68, 52, 85, 74, 89, 74, 59, 63, 69, 44, 65, 89, 96, 64, 48, 70, 84, 59, 92, 48, 53, 73, 77, 56, 74, 45, 71, 59, 60, 39, 99, 76, 64, 83, 64, 65, 52, 67, 68, 63, 65, 135, 57, 62, 54, 70, 89, 72, 58, 88, 63, 60, 81, 63, 62, 53, 50, 59, 71, 68, 61, 102, 62, 126, 76, 79, 55, 78, 54, 83, 65, 57, 57, 83, 57, 45, 42, 72, 66, 31, 58, 51, 73, 47, 56, 47, 56, 80, 55, 64, 74, 80, 49, 61, 56, 84, 63, 60, 104, 59, 74, 63, 78, 36, 47, 52, 63, 77, 64, 62, 77, 76, 70, 62, 44, 61, 66, 63, 62, 60, 65, 99, 70, 66, 51, 93, 52, 89, 86, 40, 77, 44, 75, 49, 73, 91, 80, 59, 68, 36, 59, 47, 88, 68, 100, 60, 46, 60, 80, 86, 64, 46, 105, 84, 66, 68, 56, 99, 57, 59, 46, 54, 64, 84, 81, 63, 49, 65, 61, 76, 56, 60, 60, 48, 127, 53, 55, 56, 64, 68, 62, 63, 69, 77, 52, 53, 62, 67, 66, 60, 44, 73, 45, 72, 59, 67, 57, 65, 41, 62, 90, 77, 52, 78, 62, 84, 74, 65, 69, 54, 54, 71, 70, 61, 78, 50, 53, 72, 88, 54, 80, 63, 55, 74, 33, 79, 69, 54, 74, 51, 111, 68, 70, 73, 47, 57, 66, 61, 73, 40, 53, 49, 89, 69, 62, 83, 71, 89, 79, 74, 63, 62, 62, 63, 71, 60, 59, 67, 73, 63, 78, 53, 72, 64, 70, 78, 89, 47, 71, 50, 69, 53, 55, 48, 48, 70, 56, 86, 68, 75, 90, 74, 54, 65, 62, 50, 81, 71, 72, 79, 81, 60, 59, 58, 68, 53, 82, 86, 143, 79, 58, 57, 74, 79, 42, 59, 68, 47, 70, 80, 76, 90, 65, 63, 72, 69, 66, 72, 67, 63, 47, 59, 42, 56, 63, 52, 54, 70, 58, 82, 87, 62, 63, 56, 57, 64, 44, 91, 46, 65, 78, 68, 60, 74, 95, 75, 71, 72, 60, 59, 59, 79, 59, 79, 63, 84, 52, 68, 65, 55, 70, 77, 80, 63, 67, 61, 58, 64, 68, 58, 67, 53, 79, 56, 70, 54, 53, 86, 59, 50, 51, 61, 62, 52, 68, 67, 39, 67, 54, 68, 67, 52, 79, 83, 53, 87, 79, 49, 57, 112, 87, 64, 79, 99, 58, 61, 79, 64, 65, 49, 79, 70, 73, 79, 91, 54, 59, 73, 59, 87, 60, 57, 79, 77, 67, 55, 70, 56, 56, 58, 63, 78, 61, 56, 38, 99, 75, 68, 48, 68, 65, 68, 61, 56, 87, 104, 67, 68, 84, 65, 78, 58, 53, 55, 52, 65, 69, 57, 77, 71, 85, 48, 90, 92, 54, 62, 55, 41, 48, 52, 67, 52, 84, 59, 63, 49, 81, 55, 43, 55, 82, 52, 56, 84, 82, 59, 71, 101, 47, 61, 65, 64, 59, 56, 62, 61, 46, 92, 46, 61, 75, 56, 57, 66, 64, 77, 59, 68, 72, 58, 58, 86, 68, 58, 52, 70, 62, 75, 65, 27, 100, 61, 66, 65, 78, 69, 80, 59, 96, 60, 83, 53, 52, 74, 94, 53, 72, 51, 64, 84, 73, 67, 48, 53, 64, 76, 48, 48, 68, 74, 46, 78, 85, 46, 66, 76, 68, 71, 57, 46, 81, 69, 61, 84, 60, 57, 51, 56, 45, 66, 84, 54, 82, 57, 77, 57, 57, 80, 84, 45, 67, 66, 60, 65, 60, 57, 53, 84, 53, 50, 61, 70, 52, 58, 65, 61, 66, 81, 68, 61, 62, 58, 65, 59, 103, 47, 75, 58, 54, 67, 53, 59, 60, 67, 51, 66, 63, 83, 51, 62, 62, 54, 62, 57, 46, 36, 67, 77, 65, 31, 77, 59, 67, 43, 64, 73, 78, 76, 76, 74, 82, 60, 97, 60, 48, 78, 68, 55, 69, 57, 65, 69, 49, 56, 56, 85, 52, 66, 83, 62, 70, 76, 52, 56, 59, 68, 67, 65, 74, 66, 53, 69, 58, 48, 93, 90, 61, 69, 64, 53, 73, 67, 69, 58, 37, 59, 55, 77, 59, 67, 70, 66, 73, 68, 62, 60, 81, 40, 50, 79, 56, 43, 64, 52, 68, 73, 80, 68, 61, 48, 56, 57, 79, 61, 53, 54, 81, 85, 61, 61, 75, 60, 94, 83, 70, 47, 67, 51, 75, 87, 57, 97, 74, 59, 56, 68, 60, 59, 71, 41, 61, 69, 66, 76, 63, 65, 73, 51, 63, 56, 46, 81, 78, 52, 68, 64, 65, 67, 73, 70, 62, 61, 48, 86, 56, 59, 59, 59, 77, 51, 59, 67, 53, 43, 95, 55, 55, 104, 41, 64, 51, 70, 61, 60, 74, 82, 75, 69, 63, 57, 53, 84, 67, 60, 74, 86, 50, 71, 64, 88, 65, 79, 59, 58, 68, 56, 56, 74, 74, 72, 75, 51, 87, 61, 67, 83, 76, 60, 94, 60, 64, 70, 76, 75, 50, 59, 63, 51, 55, 65, 46, 64, 55, 49, 56, 74, 67, 100, 57, 66, 89, 92, 85, 72, 41, 63, 61, 67, 64, 53, 66, 49, 64, 81, 82, 62, 78, 83, 52, 75, 67, 87, 71, 87, 73, 67, 69, 56, 73, 69, 64, 76, 72, 71, 40, 56, 79, 53, 77, 56, 73, 96, 76, 55, 56, 71, 72, 75, 65, 49, 203, 67, 49, 50, 71, 78, 82, 72, 57, 66, 64, 68, 92, 78, 90, 43, 64, 66, 65, 73, 60, 52, 62, 66, 61, 45, 60, 71, 73, 66, 70, 67, 65, 68, 50, 71, 52, 91, 44, 49, 99, 64, 62, 63, 71, 59, 62, 69, 68, 89, 63, 88, 87, 56, 99, 66, 69, 73, 53, 66, 27, 69, 54, 54, 68, 59, 80, 62, 58, 87, 77, 71, 57, 71, 55, 65, 49, 40, 57, 61, 67, 64, 67, 81, 67, 72, 62, 82, 72, 47, 57, 61, 74, 59, 60, 107, 47, 59, 56, 47, 70, 63, 74, 59, 68, 76, 71, 76, 55, 60, 66, 54, 68, 66, 60, 47, 70, 76, 63, 50, 57, 54, 65, 66, 79, 55, 82, 88, 65, 39, 55, 63, 68, 77, 57, 60, 97, 86, 53, 51, 67, 96, 59, 39, 50, 58, 85, 49, 38, 78, 45, 68, 74, 62, 64, 77, 52, 49, 69, 70, 59, 57, 63, 74, 48, 84, 56, 78, 63, 63, 84, 78, 72, 72, 81, 65, 67, 73, 53, 81, 73, 73, 113, 66, 49, 65, 75, 88, 66, 59, 67, 88, 71, 89, 74, 69, 67, 66, 71, 75, 69, 58, 66, 105, 56, 63, 57, 93, 87, 71, 71, 67, 58, 65, 61, 54, 73, 71, 63, 61, 73, 67, 69, 64, 68, 86, 79, 59, 48, 69, 72, 62, 56, 92, 81, 51, 51, 41, 52, 62, 67, 64, 62, 71, 102, 50, 75, 48, 53, 68, 62, 91, 54, 47, 68, 81, 69, 48, 48, 83, 63, 67, 73, 64, 72, 59, 70, 76, 76, 81, 62, 55, 82, 43, 77, 57, 77, 73, 71, 54, 44, 46, 38, 62, 61, 68, 66, 58, 60, 58, 49, 86, 53, 46, 67, 65, 41, 58, 62, 64, 75, 49, 60, 57, 62, 72, 60, 53, 82, 66, 45, 55, 73, 70, 92, 61, 64, 55, 77, 50, 60, 83, 56, 46, 55, 80, 67, 59, 65, 59, 55, 88, 79, 71, 59, 64, 69, 67, 66, 68, 58, 54, 45, 59, 67, 71, 84, 49, 54, 77, 71, 58, 47, 76, 64, 44, 72, 74, 65, 75, 83, 62, 77, 66, 51, 74, 63, 49, 60, 59, 62, 71, 56, 78, 72, 52, 67, 54, 108, 70, 57, 60, 71, 67, 41, 55, 77, 51, 66, 83, 64, 51, 68, 64, 55, 62, 70, 57, 86, 69, 62, 54, 57, 56, 62, 62, 66, 71, 66, 65, 58, 89, 71, 78, 56, 59, 65, 76, 55, 53, 56, 67, 57, 52, 57, 49, 106, 88, 60, 62, 88, 55, 74, 60, 66, 56, 57, 48, 68, 68, 70, 62, 102, 61, 61, 110, 58, 65, 54, 47, 70, 65, 43, 43, 63, 86, 64, 89, 35, 94, 55, 64, 65, 82, 61, 67, 53, 70, 65, 64, 110, 51, 51, 72, 58, 65, 46, 92, 58, 64, 75, 58, 63, 78, 75, 57, 68, 54, 68, 79, 57, 61, 66, 60, 51, 49, 74, 66, 34, 84, 63, 63, 57, 63, 49, 89, 65, 64, 74, 53, 58, 64, 78, 67, 76, 50, 68, 50, 49, 74, 64, 67, 60, 50, 92, 69, 51, 72, 66, 54, 67, 71, 91, 124, 52, 70, 50, 76, 62, 51, 88, 58, 58, 63, 66, 60, 68, 60, 85, 57, 53, 66, 45, 67, 54, 45, 58, 62, 64, 76, 56, 66, 83, 55, 51, 73, 66, 71, 70, 60, 46, 56, 80, 57, 71, 79, 81, 61, 46, 45, 47, 46, 72, 59, 70, 72, 86, 65, 68, 76, 69, 64, 57, 68, 50, 46, 58, 71, 70, 76, 82, 66, 55, 54, 71, 56, 71, 70, 71, 47, 75, 66, 57, 75, 88, 80, 42, 57, 81, 46, 60, 72, 61, 92, 86, 54, 63, 70, 67, 75, 65, 53, 59, 66, 65, 59, 97, 82, 96, 99, 73, 81, 76, 99, 55, 80, 60, 64, 50, 59, 43, 57, 76, 61, 63, 52, 82, 48, 50, 56, 62, 79, 81, 41, 51, 95, 50, 58, 61, 66, 48, 70, 47, 70, 55, 59, 60, 59, 75, 48, 51, 79, 42, 73, 64, 88, 40, 57, 62, 55, 84, 58, 55, 62, 78, 66, 70, 68, 61, 58, 58, 64, 83, 65, 85, 56, 72, 70, 74, 71, 68, 73, 74, 72, 43, 67, 40, 59, 73, 59, 60, 68, 67, 64, 40, 72, 99, 84, 84, 86, 51, 45, 67, 63, 87, 66, 52, 86, 77, 62, 56, 71, 63, 71, 63, 91, 71, 108, 81, 67, 57, 47, 48, 61, 66, 63, 68, 60, 51, 55, 67, 48, 65, 54, 70, 58, 61, 86, 65, 72, 66, 56, 81, 58, 61, 71, 57, 74, 57, 83, 50, 77, 79, 47, 66, 54, 51, 80, 55, 76, 65, 65, 44, 49, 66, 54, 114, 99, 59, 57, 63, 67, 113, 72, 89, 59, 41, 49, 49, 60, 60, 55, 56, 65, 82, 70, 70, 54, 50, 60, 50, 53, 73, 74, 178, 57, 61, 51, 45, 48, 76, 64, 72, 63, 66, 47, 68, 51, 56, 55, 73, 59, 71, 76, 79, 49, 61, 59, 64, 78, 64, 49, 66, 67, 124, 41, 91, 64, 51, 77, 56, 64, 55, 65, 69, 109, 65, 43, 65, 59, 48, 81, 66, 60, 56, 58, 78, 60, 61, 64, 83, 66, 83, 38, 61, 56, 74, 53, 62, 51, 81, 70, 52, 46, 67, 55, 70, 67, 75, 59, 66, 62, 61, 51, 68, 69, 49, 68, 80, 82, 67, 79, 52, 57, 79, 65, 62, 61, 76, 69, 87, 66, 50, 55, 87, 57, 84, 47, 69, 113, 74, 55, 67, 63, 71, 70, 65, 77, 59, 61, 68, 38, 52, 60, 54, 76, 73, 89, 64, 50, 55, 53, 68, 48, 76, 71, 43, 49, 92, 64, 57, 57, 75, 49, 52, 40, 53, 62, 52, 90, 65, 77, 57, 65, 61, 60, 85, 65, 67, 65, 54, 66, 69, 96, 66, 78, 51, 67, 61, 66, 95, 76, 62, 43, 51, 70, 76, 100, 77, 60, 46, 92, 63, 51, 91, 56, 73, 91, 39, 77, 35, 68, 50, 101, 56, 59, 62, 61, 58, 87, 57, 57, 65, 70, 101, 66, 51, 66, 81, 87, 63, 62, 65, 53, 72, 76, 48, 70, 85, 106, 63, 72, 46, 79, 66, 110, 55, 50, 47, 56, 101, 60, 131, 63, 78, 69, 93, 58, 65, 65, 68, 59, 73, 71, 56, 59, 82, 78, 56, 58, 45, 74, 63, 104, 112, 77, 48, 38, 73, 68, 78, 59, 52, 67, 54, 76, 89, 66, 66, 62, 90, 69, 56, 80, 72, 60, 53, 89, 62, 61, 63, 56, 89, 54, 88, 60, 87, 65, 64, 91, 63, 79, 68, 42, 57, 49, 72, 88, 62, 114, 55, 54, 67, 63, 57, 71, 83, 62, 51, 45, 74, 57, 65, 58, 86, 63, 64, 60, 56, 72, 60, 56, 57, 73, 71, 73, 89, 44, 100, 79, 100, 69, 49, 67, 75, 52, 87, 77, 83, 48, 67, 83, 69, 72, 61, 83, 65, 92, 62, 67, 76, 129, 51, 62, 58, 67, 65, 70, 98, 80, 111, 80, 81, 54, 57, 65, 56, 65, 66, 72, 66, 93, 65, 58, 69, 55, 62, 65, 67, 91, 83, 93, 55, 58, 95, 71, 61, 72, 51, 61, 57, 76, 46, 55, 90, 45, 62, 72, 64, 103, 78, 73, 59, 54, 66, 82, 74, 63, 63, 62, 51, 51, 87, 66, 54, 106, 60, 52, 72, 56, 59, 64, 99, 80, 61, 63, 49, 62, 63, 129, 71, 65, 62, 73, 67, 75, 60, 61, 73, 58, 57, 48, 52, 70, 73, 84, 60, 72, 40, 108, 60, 54, 54, 36, 43, 57, 74, 63, 67, 69, 70, 42, 53, 61, 58, 94, 64, 68, 55, 99, 63, 62, 75, 72, 73, 58, 63, 74, 67, 60, 63, 64, 48, 58, 64, 53, 75, 94, 85, 50, 73, 78, 61, 67, 66, 116, 74, 46, 73, 78, 57, 52, 56, 44, 76, 60, 73, 102, 58, 82, 64, 54, 56, 81, 66, 68, 55, 67, 70, 72, 77, 53, 69, 74, 68, 63, 51, 43, 72, 53, 62, 81, 79, 76, 82, 57, 61, 71, 76, 83, 66, 62, 60, 61, 88, 67, 47, 83, 72, 67, 69, 64, 59, 69, 72, 78, 73, 54, 55, 58, 54, 56, 58, 53, 74, 65, 61, 55, 72, 40, 64, 83, 69, 72, 63, 121, 44, 50, 88, 87, 83, 59, 64, 72, 53, 72, 79, 58, 82, 72, 50, 48, 103, 46, 79, 69, 56, 55, 63, 59, 55, 74, 50, 74, 51, 78, 71, 61, 93, 78, 67, 67, 55, 45, 65, 79, 56, 75, 81, 84, 63, 76, 63, 64, 79, 55, 67, 43, 50, 77, 54, 57, 71, 80, 42, 65, 66, 74, 69, 102, 77, 65, 65, 67, 63, 53, 74, 71, 78, 62, 66, 95, 66, 60, 75, 53, 55, 72, 56, 63, 103, 56, 48, 74, 53, 77, 45, 50, 53, 88, 47, 71, 69, 68, 78, 71, 70, 53, 87, 46, 56, 51, 61, 37, 60, 72, 71, 59, 67, 68, 75, 80, 53, 82, 60, 56, 53, 65, 51, 83, 92, 56, 49, 72, 68, 65, 110, 50, 85, 52, 65, 37, 76, 61, 33, 50, 69, 46, 55, 59, 81, 50, 66, 62, 51, 67, 78, 49, 54, 86, 62, 72, 123, 66, 79, 83, 61, 68, 44, 43, 78, 54, 98, 56, 52, 58, 57, 63, 68, 54, 79, 78, 44, 58, 55, 73, 76, 58, 54, 69, 59, 46, 57, 49, 72, 61, 133, 84, 73, 112, 81, 50, 49, 56, 49, 71, 72, 60, 57, 69, 62, 61, 80, 68, 42, 73, 93, 33, 37, 54, 57, 74, 43, 69, 52, 50, 63, 54, 74, 66, 71, 58, 84, 70, 53, 55, 70, 68, 59, 36, 52, 80, 85, 60, 61, 32, 77, 61, 62, 63, 72, 78, 55, 79, 57, 82, 47, 54, 90, 50, 77, 70, 57, 40, 59, 52, 79, 82, 97, 42, 53, 100, 62, 72, 92, 67, 83, 59, 63, 65, 61, 64, 59, 60, 53, 68, 48, 67, 73, 50, 58, 71, 44, 58, 58, 67, 48, 61, 46, 92, 53, 64, 56, 53, 105, 89, 72, 69, 57, 63, 50, 86, 56, 58, 100, 66, 73, 51, 74, 56, 72, 78, 62, 55, 68, 122, 41, 71, 76, 43, 58, 88, 49, 44, 52, 83, 87, 58, 55, 53, 55, 57, 55, 57, 69, 112, 76, 86, 72, 55, 59, 62, 32, 50, 77, 57, 83, 57, 56, 70, 62, 93, 64, 65, 56, 55, 72, 86, 50, 62, 52, 63, 59, 107, 59, 87, 62, 68, 47, 67, 66, 61, 103, 86, 64, 68, 55, 55, 64, 92, 67, 73, 81, 60, 69, 85, 53, 39, 71, 57, 70, 98, 56, 65, 60, 61, 84, 56, 76, 52, 63, 87, 55, 78, 97, 69, 60, 37, 76, 62, 58, 80, 65, 79, 50, 72, 58, 79, 89, 74, 54, 54, 55, 71, 68, 52, 70, 68, 49, 61, 65, 68, 89, 68, 54, 65, 86, 65, 71, 66, 66, 65, 54, 66, 59, 95, 63, 45, 63, 63, 46, 56, 53, 65, 84, 44, 127, 58, 83, 64, 65, 51, 78, 81, 60, 58, 86, 81, 65, 57, 58, 65, 49, 65, 53, 75, 75, 65, 66, 53, 67, 78, 36, 51, 92, 46, 50, 63, 75, 59, 67, 72, 69, 66, 64, 64, 63, 55, 53, 57, 73, 116, 77, 71, 49, 59, 61, 58, 59, 63, 84, 61, 88, 69, 55, 43, 49, 86, 68, 57, 72, 105, 75, 63, 81, 58, 84, 49, 49, 39, 59, 37, 48, 78, 63, 79, 54, 64, 59, 86, 60, 61, 73, 56, 72, 82, 49, 51, 63, 61, 71, 65, 71, 61, 57, 49, 56, 77, 64, 82, 77, 62, 70, 53, 69, 53, 51, 51, 87, 57, 63, 55, 63, 72, 48, 66, 53, 62, 55, 69, 35, 55, 74, 62, 57, 67, 56, 52, 69, 67, 53, 59, 66, 64, 53, 136, 53, 59, 61, 57, 53, 49, 65, 62, 83, 51, 68, 89, 69, 51, 72, 55, 56, 72, 55, 61, 57, 98, 67, 59, 76, 100, 48, 60, 109, 87, 73, 54, 65, 64, 112, 75, 78, 95, 86, 92, 57, 88, 52, 139, 55, 55, 63, 71, 62, 86, 68, 44, 58, 76, 53, 69, 76, 45, 53, 72, 63, 54, 75, 61, 108, 46, 67, 69, 51, 56, 61, 78, 95, 58, 91, 97, 54, 78, 64, 49, 62, 77, 97, 66, 57, 71, 57, 90, 75, 85, 77, 62, 45, 65, 75, 66, 77, 57, 88, 60, 80, 63, 65, 63, 51, 81, 53, 89, 59, 64, 63, 61, 56, 50, 65, 59, 43, 51, 90, 59, 61, 66, 70, 86, 64, 97, 64, 66, 59, 76, 60, 52, 105, 60, 77, 78, 69, 71, 77, 53, 92, 53, 58, 61, 89, 56, 121, 64, 51, 68, 76, 77, 85, 63, 64, 53, 59, 60, 52, 71, 84, 52, 87, 45, 65, 46, 79, 61, 62, 51, 73, 46, 81, 50, 61, 94, 65, 64, 71, 55, 56, 53, 73, 55, 63, 44, 48, 91, 60, 49, 83, 71, 49, 127, 106, 80, 79, 62, 71, 75, 51, 71, 73, 59, 52, 115, 47, 59, 70, 90, 76, 58, 78, 72, 57, 52, 55, 53, 65, 63, 61, 46, 65, 53, 67, 65, 95, 53, 71, 59, 77, 49, 76, 60, 44, 49, 52, 101, 70, 83, 74, 63, 95, 93, 52, 57, 57, 69, 59, 71, 58, 68, 84, 95, 57, 65, 56, 98, 78, 70, 44, 78, 62, 77, 79, 67, 75, 80, 68, 65, 55, 43, 61, 66, 73, 63, 58, 50, 69, 53, 46, 68, 52, 60, 62, 63, 68, 91, 67, 62, 71, 61, 82, 68, 68, 71, 50, 65, 61, 79, 66, 80, 74, 63, 87, 63, 117, 39, 69, 56, 58, 55, 74, 47, 62, 77, 39, 70, 60, 106, 68, 107, 67, 65, 64, 56, 94, 73, 77, 65, 66, 77, 98, 50, 95, 59, 70, 70, 65, 95, 51, 87, 86, 68, 51, 95, 64, 52, 53, 59, 50, 47, 60, 74, 48, 80, 56, 65, 104, 77, 51, 74, 86, 75, 86, 55, 70, 73, 65, 76, 33, 57, 66, 141, 61, 81, 87, 45, 72, 82, 64, 45, 83, 53, 50, 59, 54, 63, 54, 82, 57, 50, 81, 65, 46, 50, 72, 57, 75, 59, 62, 103, 66, 46, 72, 66, 66, 77, 68, 57, 75, 59, 92, 60, 70, 44, 82, 80, 71, 55, 64, 73, 52, 61, 92, 68, 60, 75, 53, 44, 68, 53, 78, 50, 50, 76, 84, 69, 67, 56, 77, 61, 73, 76, 62, 79, 56, 64, 58, 73, 74, 81, 47, 35, 60, 55, 64, 65, 57, 56, 53, 100, 60, 86, 86, 56, 90, 67, 68, 69, 67, 55, 54, 79, 67, 45, 77, 60, 88, 59, 48, 58, 57, 61, 64, 49, 43, 66, 65, 61, 45, 80, 69, 55, 51, 70, 64, 53, 79, 89, 51, 58, 49, 74, 70, 66, 77, 64, 56, 74, 72, 48, 74, 56, 37, 49, 55, 47, 73, 85, 59, 70, 75, 54, 64, 43, 62, 66, 70, 53, 70, 67, 59, 75, 60, 92, 52, 52, 66, 76, 63, 70, 68, 56, 61, 67, 56, 64, 68, 135, 65, 59, 78, 53, 56, 58, 59, 78, 67, 67, 85, 62, 53, 49, 50, 59, 33, 64, 62, 66, 68, 48, 85, 60, 52, 90, 48, 66, 74, 70, 115, 60, 62, 48, 82, 67, 60, 78, 46, 60, 63, 61, 73, 58, 78, 38, 65, 94, 52, 78, 54, 52, 54, 81, 69, 62, 80, 58, 62, 82, 73, 56, 57, 49, 65, 67, 97, 68, 53, 60, 56, 57, 54, 69, 75, 82, 67, 71, 61, 50, 61, 60, 71, 97, 65, 72, 74, 66, 59, 52, 65, 63, 57, 83, 83, 67, 67, 72, 56, 63, 67, 54, 56, 40, 47, 53, 63, 72, 48, 74, 43, 52, 59, 53, 66, 91, 53, 58, 79, 72, 62, 60, 61, 62, 74, 59, 72, 158, 63, 71, 71, 68, 75, 60, 64, 79, 62, 78, 71, 71, 46, 62, 68, 78, 75, 73, 76, 63, 99, 52, 78, 93, 68, 63, 89, 53, 65, 48, 55, 87, 74, 51, 71, 63, 58, 79, 54, 60, 65, 58, 63, 84, 52, 71, 52, 74, 76, 61, 59, 51, 73, 56, 81, 68, 58, 87, 74, 94, 68, 59, 60, 82, 60, 47, 104, 56, 64, 71, 79, 46, 53, 69, 60, 86, 65, 60, 120, 45, 35, 112, 75, 84, 59, 68, 80, 64, 58, 69, 96, 59, 95, 52, 60, 66, 56, 67, 86, 79, 86, 60, 45, 73, 76, 46, 71, 81, 55, 76, 41, 88, 59, 55, 58, 64, 69, 67, 63, 72, 65, 67, 47, 61, 69, 66, 52, 64, 74, 68, 66, 67, 83, 71, 54, 66, 71, 60, 81, 43, 70, 52, 86, 57, 48, 76, 73, 69, 71, 52, 59, 105, 54, 65, 40, 71, 79, 75, 70, 67, 59, 55, 50, 77, 96, 106, 60, 72, 58, 51, 51, 98, 82, 91, 70, 80, 82, 70, 61, 98, 69, 61, 62, 76, 90, 76, 64, 59, 88, 52, 75, 58, 78, 67, 63, 70, 82, 60, 65, 86, 67, 53, 51, 58, 55, 59, 77, 74, 75, 54, 83, 85, 49, 69, 56, 60, 117, 68, 57, 72, 66, 68, 69, 50, 79, 55, 60, 64, 59, 58, 92, 57, 60, 69, 65, 82, 63, 64, 74, 70, 71, 66, 78, 54, 77, 67, 61, 72, 69, 58, 51, 56, 80, 69, 79, 74, 44, 71, 65, 55, 50, 74, 59, 75, 48, 75, 71, 62, 76, 91, 40, 68, 54, 69, 59, 56, 59, 65, 74, 67, 66, 73, 89, 68, 44, 68, 87, 57, 78, 57, 91, 55, 89, 57, 64, 50, 61, 54, 61, 78, 55, 43, 74, 72, 72, 62, 84, 53, 71, 68, 62, 66, 41, 79, 61, 81, 80, 69, 72, 93, 51, 81, 60, 55, 62, 61, 57, 61, 90, 59, 103, 68, 67, 67, 65, 61, 60, 77, 47, 65, 73, 49, 67, 84, 53, 45, 66, 60, 57, 73, 73, 80, 75, 84, 70, 85, 75, 64, 59, 57, 66, 68, 69, 79, 57, 56, 59, 59, 69, 69, 60, 80, 58, 57, 68, 61, 62, 68, 50, 46, 81, 65, 58, 63, 99, 66, 72, 84, 61, 56, 66, 89, 48, 74, 69, 84, 78, 63, 50, 80, 59, 67, 76, 72, 56, 71, 75, 83, 57, 86, 61, 70, 50, 69, 47, 73, 61, 51, 103, 42, 73, 67, 66, 51, 64, 50, 49, 55, 60, 58, 74, 62, 56, 50, 64, 42, 55, 53, 47, 78, 63, 67, 59, 55, 79, 69, 76, 65, 71, 100, 54, 64, 71, 38, 88, 71, 64, 43, 77, 52, 53, 52, 73, 71, 59, 50, 60, 75, 54, 65, 50, 76, 37, 64, 59, 60, 46, 52, 78, 90, 50, 69, 81, 80, 70, 53, 53, 36, 60, 56, 51, 67, 83, 92, 73, 58, 66, 60, 61, 79, 55, 65, 61, 75, 58, 80, 97, 40, 63, 53, 77, 60, 81, 75, 64, 82, 79, 75, 77, 55, 92, 61, 64, 88, 71, 61, 64, 73, 71, 70, 75, 54, 70, 48, 57, 57, 44, 43, 43, 62, 55, 52, 42, 78, 74, 77, 67, 50, 67, 56, 49, 71, 63, 55, 61, 58, 59, 62, 58, 117, 41, 49, 62, 65, 87, 97, 61, 60, 75, 61, 63, 76, 90, 67, 36, 56, 99, 62, 57, 84, 79, 55, 62, 52, 54, 49, 47, 74, 70, 58, 55, 71, 45, 59, 80, 53, 68, 58, 81, 92, 50, 151, 64, 61, 67, 59, 69, 64, 62, 78, 58, 78, 33, 59, 90, 55, 85, 61, 67, 47, 54, 60, 73, 88, 84, 69, 86, 67, 57, 82, 71, 36, 64, 39, 78, 57, 64, 58, 58, 81, 73, 66, 47, 90, 66, 52, 63, 88, 85, 61, 81, 53, 56, 46, 51, 64, 48, 62, 74, 68, 65, 74, 64, 99, 70, 47, 102, 57, 59, 74, 55, 64, 67, 65, 68, 50, 74, 68, 49, 54, 107, 74, 59, 68, 83, 44, 66, 58, 84, 71, 65, 62, 48, 70, 57, 62, 56, 58, 82, 47, 69, 63, 64, 56, 88, 58, 62, 69, 53, 60, 56, 82, 73, 53, 73, 71, 89, 80, 73, 74, 46, 81, 49, 60, 71, 65, 80, 64, 54, 53, 67, 70, 73, 68, 54, 52, 54, 95, 58, 69, 56, 64, 59, 59, 60, 60, 100, 77, 96, 77, 71, 46, 70, 102, 61, 64, 49, 71, 57, 76, 56, 67, 71, 104, 54, 64, 47, 117, 66, 57, 62, 65, 72, 75, 80, 79, 50, 62, 57, 66, 84, 63, 51, 63, 69, 61, 57, 69, 98, 54, 65, 66, 49, 63, 85, 60, 76, 70, 68, 60, 89, 57, 61, 61, 55, 71, 68, 45, 56, 68, 58, 77, 57, 74, 57, 90, 64, 60, 47, 65, 67, 58, 54, 69, 51, 63, 58, 68, 81, 68, 53, 72, 54, 66, 58, 62, 58, 54, 78, 62, 102, 63, 59, 60, 92, 92, 66, 61, 74, 81, 56, 67, 67, 53, 74, 42, 79, 54, 76, 58, 57, 52, 60, 61, 65, 60, 46, 64, 38, 57, 63, 61, 59, 60, 77, 56, 74, 77, 61, 65, 67, 56, 52, 57, 67, 58, 53, 63, 59, 63, 59, 81, 59, 54, 66, 87, 67, 54, 91, 60, 60, 53, 49, 44, 66, 75, 70, 63, 54, 65, 57, 64, 62, 73, 45, 50, 65, 85, 90, 58, 65, 71, 52, 81, 86, 64, 58, 55, 60, 60, 62, 58, 75, 62, 55, 59, 59, 59, 80, 77, 84, 70, 55, 68, 54, 89, 55, 62, 65, 73, 76, 69, 47, 63, 59, 73, 68, 58, 56, 66, 67, 73, 51, 62, 46, 65, 73, 74, 62, 57, 63, 69, 66, 65, 68, 51, 64, 63, 65, 53, 68, 51, 62, 51, 60, 61, 75, 55, 47, 56, 74, 67, 59, 55, 66, 65, 61, 77, 64, 64, 56, 66, 62, 59, 84, 72, 62, 60, 62, 62, 48, 83, 58, 67, 82, 59, 74, 56, 73, 66, 77, 63, 73, 146, 75, 64, 54, 56, 79, 77, 53, 74, 80, 49, 73, 59, 73, 85, 60, 60, 50, 64, 63, 47, 85, 63, 73, 65, 63, 75, 57, 58, 58, 66, 69, 58, 68, 65, 61, 59, 58, 68, 56, 70, 61, 64, 61, 41, 61, 90, 58, 59, 65, 57, 67, 83, 73, 68, 67, 67, 65, 65, 57, 65, 67, 74, 74, 60, 65, 49, 73, 74, 73, 69, 64, 55, 55, 76, 49, 97, 60, 58, 99, 78, 73, 81, 71, 58, 74, 60, 68, 72, 65, 65, 73, 71, 69, 71, 50, 60, 66, 77, 58, 54, 56, 66, 57, 68, 63, 61, 59, 52, 63, 63, 66, 50, 61, 56, 54, 90, 74, 62, 46, 49, 151, 65, 78, 57, 57, 66, 63, 76, 55, 59, 69, 72, 79, 71, 79, 66, 64, 64, 62, 63, 98, 48, 67, 73, 59, 77, 63, 65, 57, 50, 85, 51, 64, 80, 55, 55, 64, 105, 78, 69, 59, 62, 65, 65, 104, 69, 64, 70, 63, 63, 91, 93, 80, 69, 71, 58, 62, 60, 62, 76, 87, 64, 88, 60, 63, 54, 58, 57, 66, 75, 68, 69, 75, 57, 67, 59, 49, 66, 63, 59, 68, 51, 54, 63, 74, 57, 63, 94, 60, 64, 49, 71, 71, 63, 67, 70, 82, 54, 68, 86, 62, 66, 61, 74, 70, 58, 66, 60, 67, 70, 71, 66, 53, 58, 53, 58, 80, 60, 60, 70, 74, 58, 49, 75, 74, 62, 63, 62, 63, 64, 70, 90, 65, 52, 57, 56, 76, 72, 57, 73, 53, 57, 56, 63, 59, 84, 68, 56, 56, 87, 56, 59, 76, 57, 60, 70, 57, 55, 57, 71, 68, 70, 85, 66, 57, 57, 56, 61, 68, 58, 92, 54, 75, 65, 68, 63, 59, 63, 71, 59, 61, 81, 55, 65, 65, 70, 60, 54, 54, 69, 59, 71, 59, 96, 63, 88, 78, 58, 63, 79, 66, 58, 57, 61, 67, 61, 54, 69, 61, 67, 72, 83, 76, 55, 69, 73, 75, 70, 69, 54, 67, 80, 100, 55, 72, 58, 58, 71, 70, 59, 61, 72, 79, 67, 62, 66, 58, 114, 58, 45, 55, 57, 65, 65, 91, 78, 65, 66, 55, 63, 70, 64, 69, 58, 55, 64, 69, 64, 57, 57, 69, 75, 62, 63, 76, 62, 66, 88, 47, 65, 60, 69, 67, 64, 69, 71, 73, 56, 71, 62, 61, 65, 77, 68, 58, 65, 56, 64, 72, 58, 64, 56, 64, 77, 57, 71, 59, 77, 55, 85, 66, 52, 68, 58, 62, 52, 48, 76, 56, 54, 60, 66, 74, 84, 66, 58, 62, 71, 52, 65, 59, 54, 73, 75, 69, 61, 68, 51, 59, 93, 44, 82, 55, 62, 124, 55, 64, 84, 63, 57, 60, 67, 75, 60, 51, 78, 76, 53, 67, 72, 60, 59, 64, 61, 70, 69, 67, 62, 67, 70, 59, 48, 73, 49, 61, 76, 83, 55, 54, 53, 64, 72, 51, 70, 66, 63, 49, 51, 49, 46, 70, 61, 59, 59, 76, 61, 105, 58, 68, 74, 69, 60, 70, 79, 54, 51, 63, 65, 51, 66, 61, 58, 58, 75, 64, 62, 71, 57, 84, 73, 81, 53, 70, 71, 60, 65, 55, 71, 54, 59, 61, 59, 62, 66, 56, 56, 111, 83, 57, 71, 61, 73, 55, 66, 96, 54, 65, 62, 60, 42, 70, 67, 60, 60, 66, 67, 75, 61, 70, 58, 59, 58, 74, 54, 53, 76, 61, 79, 75, 63, 55, 56, 56, 61, 62, 76, 45, 78, 52, 65, 58, 77, 69, 72, 96, 61, 56, 59, 51, 62, 49, 120, 64, 62, 65, 62, 70, 61, 61, 63, 77, 62, 65, 51, 78, 53, 75, 77, 58, 57, 89, 59, 58, 68, 64, 96, 57, 67, 75, 63, 48, 63, 80, 72, 47, 66, 71, 50, 59, 68, 74, 64, 65, 76, 62, 56, 63, 61, 85, 71, 63, 70, 65, 63, 54, 63, 59, 55, 74, 50, 60, 70, 56, 64, 60, 60, 87, 65, 59, 51, 59, 73, 64, 64, 74, 79, 49, 54, 59, 57, 58, 81, 58, 48, 77, 66, 63, 65, 75, 60, 83, 52, 96, 61, 75, 58, 64, 68, 48, 58, 73, 87, 79, 59, 69, 65, 59, 73, 86, 68, 68, 99, 52, 62, 73, 98, 61, 70, 93, 62, 66, 87, 64, 71, 55, 64, 69, 69, 67, 52, 71, 69, 56, 58, 66, 62, 61, 57, 52, 55, 61, 75, 115, 58, 56, 73, 85, 63, 62, 65, 53, 74, 52, 66, 58, 70, 64, 84, 54, 78, 68, 52, 88, 61, 95, 56, 69, 50, 63, 62, 55, 55, 82, 52, 64, 99, 84, 72, 76, 77, 62, 56, 65, 68, 74, 79, 64, 64, 67, 58, 77, 67, 79, 83, 60, 50, 69, 49, 61, 70, 57, 62, 59, 63, 59, 72, 56, 60, 83, 63, 84, 72, 72, 75, 70, 66, 54, 46, 72, 54, 57, 71, 59, 79, 94, 72, 57, 76, 51, 72, 59, 73, 82, 77, 72, 106, 48, 37, 36, 67, 97, 49, 65, 86, 66, 58, 61, 61, 81, 81, 99, 86, 111, 61, 71, 79, 95, 71, 47, 70, 51, 105, 71, 86, 76, 59, 59, 39, 45, 77, 74, 106, 66, 68, 43, 50, 45, 40, 37, 88, 61, 75, 63, 59, 59, 46, 43, 72, 57, 67, 75, 66, 64, 63, 54, 66, 64, 51, 64, 80, 65, 65, 46, 56, 54, 63, 81, 51, 46, 60, 124, 61, 62, 61, 52, 54, 80, 87, 51, 67, 69, 69, 101, 101, 59, 85, 59, 78, 70, 54, 63, 45, 73, 63, 77, 86, 61, 65, 74, 62, 60, 93, 64, 89, 78, 82, 75, 54, 71, 81, 59, 62, 75, 66, 74, 71, 44, 97, 58, 87, 47, 65, 61, 104, 65, 87, 47, 67, 51, 78, 103, 60, 44, 53, 51, 62, 56, 155, 68, 61, 90, 59, 75, 162, 120, 68, 62, 40, 41, 56, 43, 74, 59, 54, 67, 79, 73, 64, 76, 84, 64, 91, 64, 73, 36, 76, 45, 60, 72, 70, 38, 61, 63, 67, 56, 45, 71, 104, 77, 90, 64, 43, 74, 52, 68, 107, 49, 64, 62, 55, 51, 46, 64, 75, 55, 65, 54, 65, 50, 57, 79, 65, 63, 39, 47, 59, 46, 51, 61, 64, 67, 59, 102, 76, 78, 54, 46, 71, 73, 108, 66, 76, 65, 62, 72, 65, 49, 77, 73, 74, 41, 61, 60, 51, 55, 72, 55, 47, 63, 101, 68, 71, 72, 68, 79, 64, 52, 73, 57, 70, 58, 49, 67, 69, 91, 86, 74, 92, 96, 59, 97, 76, 61, 71, 72, 130, 48, 57, 66, 64, 59, 50, 54, 83, 63, 65, 37, 74, 87, 41, 70, 62, 57, 53, 69, 95, 50, 20, 74, 49, 72, 70, 62, 80, 54, 37, 51, 66, 64, 64, 84, 49, 70, 65, 55, 66, 48, 58, 57, 65, 63, 61, 70, 74, 46, 43, 47, 56, 83, 69, 56, 48, 84, 72, 51, 63, 71, 43, 73, 69, 46, 72, 71, 79, 50, 93, 75, 61, 61, 75, 61, 90, 42, 52, 64, 71, 53, 54, 54, 55, 46, 55, 82, 106, 49, 84, 104, 63, 66, 106, 93, 66, 65, 85, 65, 106, 63, 100, 72, 54, 64, 50, 63, 92, 63, 101, 79, 84, 80, 57, 68, 57, 70, 65, 72, 54, 71, 52, 66, 50, 72, 72, 64, 42, 66, 71, 44, 126, 43, 81, 79, 52, 67, 56, 97, 58, 54, 52, 65, 55, 65, 95, 64, 93, 98, 99, 78, 58, 54, 54, 51, 73, 77, 137, 69, 58, 50, 56, 69, 64, 57, 74, 84, 52, 60, 55, 73, 78, 64, 62, 63, 75, 47, 60, 65, 69, 49, 97, 54, 53, 67, 49, 60, 66, 79, 52, 52, 69, 66, 55, 78, 61, 54, 109, 75, 69, 63, 52, 65, 74, 57, 78, 51, 78, 74, 72, 72, 74, 106, 52, 52, 26, 67, 120, 55, 72, 60, 84, 66, 65, 63, 109, 120, 78, 60, 71, 35, 67, 63, 59, 80, 60, 56, 64, 41, 62, 50, 61, 62, 66, 55, 75, 75, 69, 54, 55, 59, 84, 77, 57, 56, 66, 95, 72, 53, 66, 62, 67, 62, 65, 70, 62, 70, 72, 89, 74, 89, 69, 46, 55, 52, 86, 65, 48, 92, 48, 72, 67, 44, 58, 50, 53, 59, 41, 72, 64, 61, 74, 95, 79, 87, 55, 97, 53, 64, 88, 77, 67, 53, 34, 62, 82, 58, 77, 70, 64, 52, 41, 66, 58, 76, 51, 72, 54, 57, 70, 54, 45, 49, 61, 62, 73, 50, 90, 58, 56, 69, 75, 93, 68, 64, 56, 73, 58, 61, 50, 68, 49, 93, 63, 56, 68, 47, 136, 50, 42, 97, 110, 69, 92, 42, 87, 54, 73, 87, 64, 49, 71, 50, 68, 64, 74, 67, 49, 66, 68, 42, 56, 75, 55, 45, 48, 59, 96, 94, 47, 40, 74, 62, 67, 54, 65, 70, 59, 70, 78, 44, 99, 76, 58, 68, 48, 49, 67, 85, 48, 73, 58, 55, 56, 71, 54, 61, 82, 83, 75, 61, 52, 76, 52, 68, 92, 73, 85, 60, 40, 66, 50, 52, 66, 55, 43, 68, 75, 73, 51, 76, 48, 73, 73, 63, 82, 64, 80, 72, 66, 62, 86, 45, 55, 72, 57, 87, 27, 66, 84, 59, 66, 51, 66, 73, 72, 48, 68, 37, 74, 50, 45, 66, 56, 54, 88, 60, 43, 62, 69, 74, 72, 63, 54, 57, 64, 49, 78, 63, 52, 81, 85, 69, 66, 73, 61, 57, 58, 62, 61, 59, 70, 69, 62, 76, 73, 68, 43, 54, 62, 59, 66, 53, 54, 73, 63, 78, 65, 70, 99, 67, 79, 74, 113, 99, 52, 46, 67, 55, 67, 66, 107, 55, 34, 76, 72, 56, 85, 66, 65, 67, 76, 65, 62, 64, 127, 42, 86, 41, 77, 43, 49, 94, 67, 61, 83, 63, 58, 68, 56, 89, 68, 94, 43, 56, 57, 50, 62, 53, 47, 122, 93, 113, 76, 59, 79, 38, 65, 49, 71, 60, 50, 85, 85, 89, 69, 69, 91, 84, 54, 67, 97, 56, 89, 81, 55, 46, 74, 40, 66, 65, 77, 59, 62, 57, 73, 81, 60, 68, 71, 51, 63, 96, 57, 52, 65, 79, 64, 65, 57, 53, 65, 62, 88, 36, 56, 45, 46, 67, 68, 68, 49, 42, 90, 60, 76, 73, 103, 62, 78, 77, 44, 64, 56, 82, 79, 45, 60, 77, 60, 53, 55, 39, 63, 54, 60, 53, 53, 66, 60, 44, 52, 66, 89, 57, 65, 78, 50, 45, 69, 99, 54, 78, 60, 75, 66, 78, 86, 77, 70, 59, 65, 64, 62, 101, 83, 61, 69, 64, 84, 76, 84, 73, 86, 68, 53, 96, 81, 65, 62, 58, 40, 51, 80, 93, 54, 55, 66, 72, 51, 46, 54, 67, 84, 137, 56, 77, 53, 63, 79, 60, 64, 90, 37, 66, 68, 53, 98, 70, 63, 68, 69, 56, 61, 76, 127, 54, 75, 75, 77, 56, 57, 56, 92, 61, 66, 58, 68, 57, 68, 72, 61, 53, 77, 60, 70, 51, 76, 63, 134, 61, 57, 72, 77, 62, 77, 78, 51, 78, 57, 49, 52, 152, 69, 69, 74, 120, 85, 60, 53, 68, 74, 74, 73, 65, 64, 67, 58, 71, 52, 52, 56, 66, 59, 66, 68, 70, 54, 73, 61, 63, 61, 66, 62, 72, 56, 58, 79, 64, 60, 69, 75, 61, 91, 45, 51, 54, 58, 62, 109, 59, 59, 57, 91, 66, 75, 69, 62, 57, 89, 64, 55, 57, 76, 54, 54, 68, 63, 74, 74, 57, 55, 56, 62, 59, 69, 74, 79, 46, 69, 69, 67, 73, 59, 66, 57, 68, 68, 93, 63, 46, 49, 67, 73, 57, 58, 90, 70, 51, 79, 77, 83, 54, 56, 53, 57, 58, 53, 60, 95, 76, 61, 69, 71, 55, 53, 69, 61, 50, 77, 72, 53, 78, 65, 72, 65, 62, 66, 95, 58, 78, 66, 49, 65, 65, 63, 64, 76, 63, 57, 74, 74, 60, 60, 64, 67, 65, 70, 53, 74, 70, 51, 46, 65, 98, 58, 56, 69, 64, 92, 55, 78, 56, 54, 67, 74, 84, 51, 58, 62, 71, 70, 79, 60, 69, 82, 62, 63, 52, 63, 84, 117, 59, 55, 58, 68, 89, 61, 68, 85, 74, 49, 56, 60, 69, 79, 60, 64, 60, 61, 52, 56, 71, 71, 80, 54, 94, 73, 74, 67, 56, 82, 53, 71, 64, 68, 81, 69, 60, 52, 61, 60, 64, 71, 70, 43, 57, 67, 71, 58, 78, 54, 65, 68, 71, 57, 72, 52, 65, 62, 65, 87, 85, 58, 68, 67, 67, 67, 58, 78, 57, 83, 43, 62, 68, 78, 61, 55, 67, 54, 83, 72, 64, 73, 60, 60, 67, 71, 93, 56, 67, 113, 57, 60, 72, 62, 69, 76, 55, 63, 83, 57, 65, 55, 57, 59, 66, 71, 69, 51, 83, 93, 67, 55, 53, 56, 78, 82, 60, 57, 66, 45, 52, 97, 74, 47, 89, 73, 56, 82, 57, 58, 48, 40, 72, 60, 70, 80, 61, 67, 71, 65, 89, 65, 67, 71, 77, 64, 49, 67, 71, 54, 64, 63, 65, 69, 62, 58, 70, 43, 65, 77, 64, 69, 65, 69, 80, 61, 63, 76, 60, 75, 57, 69, 61, 68, 57, 59, 68, 71, 58, 74, 104, 59, 71, 67, 65, 69, 62, 97, 89, 87, 64, 69, 37, 57, 58, 76, 58, 63, 63, 72, 59, 52, 86, 45, 63, 55, 100, 79, 70, 58, 63, 54, 57, 80, 80, 56, 79, 65, 77, 81, 49, 52, 47, 77, 58, 77, 75, 62, 53, 77, 89, 84, 63, 56, 53, 67, 64, 60, 58, 70, 59, 53, 57, 59, 66, 61, 59, 84, 65, 53, 63, 69, 67, 62, 75, 106, 57, 62, 61, 48, 62, 88, 71, 62, 58, 60, 63, 66, 81, 66, 79, 45, 63, 68, 61, 34, 70, 69, 70, 36, 67, 74, 69, 81, 58, 70, 60, 61, 72, 75, 79, 57, 67, 56, 68, 60, 58, 56, 56, 67, 72, 79, 74, 69, 59, 62, 57, 64, 84, 52, 59, 81, 67, 59, 50, 59, 70, 89, 61, 97, 46, 80, 77, 56, 66, 61, 54, 54, 49, 58, 67, 52, 53, 62, 54, 60, 53, 69, 79, 69, 75, 91, 74, 65, 62, 59, 76, 67, 61, 59, 66, 79, 77, 49, 93, 87, 67, 68, 57, 65, 67, 52, 68, 77, 53, 71, 56, 74, 54, 49, 53, 76, 57, 59, 67, 56, 68, 67, 61, 64, 57, 74, 69, 60, 64, 78, 69, 56, 69, 62, 63, 55, 60, 62, 75, 86, 63, 65, 48, 79, 60, 56, 51, 67, 67, 62, 76, 71, 62, 43, 57, 79, 61, 57, 97, 71, 77, 80, 62, 72, 68, 54, 60, 48, 91, 61, 94, 107, 55, 56, 66, 68, 72, 56, 86, 50, 59, 61, 59, 89, 59, 110, 60, 56, 74, 65, 66, 51, 64, 84, 45, 86, 58, 57, 69, 62, 58, 74, 51, 70, 65, 71, 82, 58, 67, 83, 56, 74, 53, 60, 61, 52, 63, 63, 78, 60, 68, 70, 69, 48, 75, 58, 54, 64, 60, 66, 67, 66, 64, 65, 67, 71, 69, 59, 51, 71, 57, 76, 67, 63, 60, 61, 54, 53, 62, 49, 94, 74, 69, 66, 49, 61, 70, 60, 73, 80, 62, 59, 72, 61, 71, 79, 62, 89, 66, 70, 69, 57, 59, 67, 111, 58, 64, 73, 68, 59, 58, 59, 55, 55, 63, 67, 73, 59, 49, 71, 43, 66, 70, 42, 62, 50, 78, 69, 84, 49, 81, 81, 55, 70, 50, 63, 51, 46, 62, 64, 72, 53, 75, 69, 120, 61, 61, 56, 66, 62, 51, 88, 61, 60, 71, 60, 67, 57, 55, 44, 59, 86, 92, 74, 57, 51, 83, 67, 53, 65, 57, 67, 57, 62, 59, 97, 48, 60, 69, 52, 54, 66, 61, 73, 63, 55, 64, 60, 90, 57, 79, 77, 53, 62, 79, 73, 81, 68, 59, 76, 49, 67, 59, 71, 65, 63, 66, 61, 52, 57, 81, 53, 61, 77, 59, 61, 58, 57, 65, 72, 53, 87, 67, 52, 60, 66, 62, 56, 69, 70, 120, 51, 66, 52, 68, 69, 65, 74, 48, 56, 66, 51, 71, 63, 93, 53, 71, 62, 73, 46, 70, 80, 46, 52, 64, 75, 63, 54, 83, 61, 78, 59, 70, 67, 54, 73, 64, 89, 78, 57, 44, 49, 46, 47, 53, 68, 86, 67, 68, 64, 63, 51, 72, 62, 63, 130, 54, 50, 54, 73, 52, 58, 96, 60, 107, 65, 58, 66, 53, 73, 78, 63, 57, 56, 76, 53, 77, 66, 56, 57, 51, 61, 90, 70, 66, 66, 108, 69, 87, 59, 99, 56, 74, 60, 82, 57, 57, 62, 66, 51, 52, 83, 58, 59, 66, 71, 53, 58, 84, 66, 50, 50, 89, 55, 79, 69, 64, 83, 76, 57, 72, 71, 71, 84, 55, 68, 100, 68, 73, 58, 42, 59, 63, 56, 66, 67, 69, 72, 64, 78, 73, 46, 52, 69, 48, 48, 72, 78, 70, 70, 53, 76, 65, 83, 36, 109, 53, 72, 57, 83, 39, 61, 64, 54, 82, 65, 56, 77, 62, 60, 68, 55, 29, 73, 65, 67, 52, 76, 53, 69, 56, 71, 44, 65, 62, 57, 97, 57, 79, 70, 54, 62, 91, 61, 64, 61, 90, 49, 72, 59, 48, 51, 72, 86, 69, 110, 77, 67, 97, 52, 66, 84, 50, 52, 71, 78, 67, 57, 93, 55, 62, 63, 70, 65, 65, 63, 50, 47, 55, 53, 76, 119, 63, 98, 82, 55, 66, 64, 61, 58, 58, 98, 80, 63, 75, 72, 55, 75, 58, 65, 73, 44, 91, 76, 84, 82, 57, 70, 77, 53, 67, 58, 54, 63, 43, 53, 42, 68, 71, 76, 64, 63, 59, 63, 61, 87, 78, 60, 63, 68, 75, 47, 59, 69, 65, 71, 66, 69, 57, 73, 73, 56, 63, 58, 70, 88, 52, 94, 53, 66, 66, 104, 56, 76, 61, 84, 64, 59, 75, 65, 52, 58, 57, 87, 65, 57, 66, 51, 61, 73, 68, 53, 69, 76, 55, 50, 71, 61, 89, 56, 90, 60, 64, 59, 84, 61, 45, 67, 54, 75, 62, 61, 77, 60, 59, 65, 56, 76, 95, 65, 71, 67, 81, 78, 56, 88, 67, 54, 75, 75, 76, 77, 60, 77, 61, 31, 71, 67, 72, 70, 53, 52, 88, 65, 52, 72, 79, 49, 88, 52, 66, 71, 65, 57, 78, 73, 62, 56, 72, 67, 86, 64, 71, 52, 71, 80, 65, 70, 69, 73, 46, 76, 72, 46, 56, 59, 53, 74, 79, 79, 73, 61, 70, 67, 60, 70, 68, 55, 58, 68, 83, 56, 61, 75, 58, 89, 64, 70, 95, 92, 54, 80, 47, 63, 56, 75, 74, 55, 51, 77, 49, 64, 53, 69, 58, 57, 37, 82, 68, 68, 73, 108, 79, 55, 65, 54, 67, 78, 85, 70, 64, 58, 59, 65, 64, 65, 78, 61, 69, 81, 43, 64, 55, 67, 53, 84, 66, 98, 57, 81, 44, 60, 64, 78, 75, 83, 62, 76, 73, 69, 74, 54, 76, 48, 69, 68, 57, 58, 59, 61, 68, 77, 63, 88, 74, 46, 70, 109, 67, 59, 54, 73, 53, 54, 63, 77, 68, 53, 83, 47, 50, 81, 67, 146, 108, 72, 69, 54, 72, 133, 46, 83, 61, 55, 60, 68, 68, 49, 61, 64, 107, 69, 68, 65, 64, 54, 75, 80, 81, 60, 45, 78, 43, 62, 49, 74, 93, 74, 55, 46, 80, 56, 55, 55, 75, 58, 63, 70, 41, 63, 80, 54, 70, 81, 65, 65, 63, 68, 56, 61, 64, 64, 72, 57, 66, 77, 57, 62, 42, 102, 65, 60, 65, 49, 57, 75, 72, 61, 113, 63, 47, 49, 59, 70, 51, 70, 68, 37, 64, 70, 67, 64, 55, 58, 53, 54, 79, 57, 47, 74, 67, 69, 69, 71, 71, 62, 59, 59, 90, 82, 47, 69, 70, 82, 59, 56, 105, 81, 46, 55, 79, 103, 58, 65, 63, 44, 80, 67, 81, 62, 63, 71, 77, 61, 78, 51, 49, 64, 109, 59, 82, 57, 105, 70, 64, 49, 68, 75, 83, 53, 108, 50, 110, 56, 52, 54, 85, 83, 92, 68, 47, 61, 58, 98, 74, 94, 65, 86, 57, 73, 56, 69, 58, 47, 65, 67, 56, 51, 63, 69, 57, 56, 69, 83, 60, 62, 68, 66, 62, 57, 85, 51, 80, 70, 69, 58, 59, 70, 57, 69, 76, 59, 80, 60, 63, 43, 47, 74, 67, 70, 52, 66, 71, 53, 56, 87, 77, 84, 83, 58, 59, 54, 50, 71, 105, 60, 51, 64, 50, 66, 80, 57, 66, 67, 61, 78, 41, 66, 71, 39, 50, 42, 46, 61, 76, 60, 73, 75, 58, 67, 56, 62, 78, 63, 59, 76, 74, 73, 62, 80, 52, 50, 56, 57, 59, 50, 39, 46, 82, 53, 60, 78, 94, 67, 55, 55, 75, 47, 56, 47, 62, 61, 75, 73, 60, 70, 57, 56, 81, 73, 62, 50, 94, 55, 54, 95, 65, 57, 50, 56, 36, 58, 64, 119, 53, 77, 48, 63, 51, 91, 53, 36, 47, 59, 91, 85, 72, 55, 61, 65, 70, 63, 67, 75, 59, 54, 66, 83, 65, 66, 66, 56, 96, 50, 57, 73, 60, 67, 82, 91, 54, 64, 59, 49, 58, 79, 60, 61, 66, 68, 63, 59, 58, 69, 62, 68, 52, 74, 63, 60, 63, 60, 46, 53, 117, 106, 118, 64, 62, 102, 68, 71, 74, 61, 55, 59, 63, 70, 59, 59, 76, 59, 54, 47, 52, 58, 81, 64, 62, 60, 57, 71, 78, 39, 51, 59, 59, 59, 77, 103, 86, 69, 67, 74, 56, 65, 51, 65, 54, 53, 59, 98, 41, 57, 81, 57, 82, 55, 62, 46, 55, 62, 34, 75, 77, 74, 64, 84, 81, 53, 52, 56, 54, 84, 72, 60, 63, 73, 70, 39, 56, 67, 67, 51, 73, 61, 90, 62, 59, 63, 54, 67, 50, 58, 71, 50, 67, 75, 76, 56, 54, 53, 60, 86, 46, 64, 74, 66, 70, 62, 49, 59, 77, 42, 66, 75, 64, 56, 50, 70, 72, 53, 65, 57, 38, 90, 57, 71, 55, 38, 74, 57, 67, 71, 67, 59, 54, 66, 75, 62, 64, 68, 88, 65, 75, 120, 72, 72, 74, 62, 58, 49, 57, 80, 66, 52, 63, 61, 75, 73, 55, 68, 53, 63, 63, 45, 64, 54, 43, 74, 29, 101, 76, 56, 55, 69, 67, 70, 70, 74, 62, 40, 50, 95, 71, 83, 53, 72, 61, 74, 116, 49, 61, 114, 68, 59, 53, 52, 41, 78, 64, 58, 51, 54, 78, 56, 70, 83, 67, 54, 72, 61, 142, 67, 83, 67, 69, 65, 54, 53, 53, 69, 80, 44, 63, 67, 43, 67, 60, 76, 66, 55, 73, 61, 65, 57, 83, 74, 86, 82, 82, 64, 51, 73, 69, 48, 63, 72, 48, 59, 74, 68, 83, 49, 57, 56, 74, 51, 83, 41, 63, 46, 62, 89, 55, 66, 56, 54, 98, 55, 89, 62, 37, 65, 58, 60, 42, 62, 60, 76, 73, 71, 60, 54, 69, 52, 65, 72, 80, 66, 47, 59, 53, 64, 70, 62, 56, 59, 73, 40, 68, 72, 53, 69, 77, 61, 68, 63, 72, 61, 51, 66, 66, 71, 82, 52, 66, 67, 54, 66, 73, 39, 66, 64, 59, 48, 66, 71, 57, 52, 62, 70, 112, 60, 71, 44, 47, 55, 55, 91, 75, 46, 74, 63, 74, 50, 56, 76, 48, 81, 67, 57, 61, 56, 45, 71, 66, 51, 69, 43, 67, 88, 61, 69, 67, 67, 81, 70, 59, 75, 62, 43, 55, 97, 50, 68, 68, 79, 69, 83, 75, 66, 41, 73, 69, 71, 53, 67, 60, 67, 66, 75, 93, 73, 63, 79, 60, 68, 69, 72, 55, 111, 51, 66, 78, 46, 67, 91, 55, 84, 51, 55, 52, 54, 54, 70, 84, 66, 56, 70, 64, 68, 74, 70, 67, 59, 91, 43, 70, 130, 83, 76, 79, 46, 56, 57, 74, 64, 50, 92, 64, 59, 65, 61, 62, 68, 76, 55, 46, 62, 47, 67, 57, 80, 110, 51, 81, 62, 45, 65, 67, 63, 41, 52, 68, 104, 61, 61, 59, 64, 66, 49, 93, 59, 50, 91, 55, 65, 69, 75, 61, 40, 53, 67, 79, 60, 79, 70, 56, 81, 71, 57, 73, 67, 86, 59, 84, 80, 55, 70, 79, 95, 63, 58, 66, 94, 56, 46, 65, 53, 68, 61, 57, 71, 84, 65, 46, 56, 85, 55, 79, 57, 63, 76, 85, 55, 55, 48, 65, 73, 60, 50, 59, 56, 64, 63, 47, 75, 61, 52, 100, 72, 76, 113, 70, 69, 56, 53, 61, 59, 69, 74, 66, 75, 72, 60, 59, 62, 81, 78, 81, 54, 62, 63, 49, 66, 63, 78, 63, 70, 59, 66, 94, 73, 69, 57, 105, 71, 60, 47, 66, 57, 61, 73, 62, 90, 55, 54, 53, 70, 86, 44, 88, 54, 58, 51, 77, 63, 62, 70, 76, 60, 78, 44, 98, 41, 59, 70, 82, 82, 56, 62, 47, 53, 61, 67, 60, 73, 63, 53, 75, 77, 54, 53, 63, 53, 67, 71, 85, 58, 111, 58, 63, 67, 53, 49, 63, 65, 62, 59, 63, 63, 61, 77, 57, 50, 135, 33, 74, 65, 71, 59, 63, 51, 75, 60, 73, 73, 52, 76, 75, 67, 42, 59, 58, 62, 56, 47, 74, 87, 76, 50, 60, 55, 52, 46, 61, 71, 59, 76, 76, 66, 83, 66, 70, 59, 64, 60, 58, 65, 62, 122, 87, 78, 68, 81, 65, 62, 65, 50, 57, 70, 51, 66, 66, 57, 88, 55, 85, 61, 58, 83, 69, 49, 68, 56, 77, 52, 58, 90, 57, 50, 49, 63, 48, 82, 39, 65, 75, 60, 79, 48, 56, 49, 74, 71, 64, 63, 56, 74, 56, 76, 69, 87, 88, 72, 70, 52, 68, 76, 70, 55, 68, 44, 63, 42, 78, 51, 67, 62, 82, 65, 56, 48, 69, 61, 60, 114, 74, 52, 62, 63, 78, 77, 62, 56, 76, 44, 62, 60, 74, 121, 59, 76, 72, 66, 67, 59, 80, 65, 100, 88, 66, 75, 60, 57, 56, 49, 62, 74, 60, 41, 75, 73, 68, 59, 70, 59, 84, 44, 60, 59, 86, 65, 59, 53, 62, 66, 58, 47, 77, 65, 40, 67, 42, 52, 82, 86, 60, 64, 92, 66, 62, 73, 61, 48, 56, 58, 54, 62, 72, 82, 53, 75, 63, 53, 77, 51, 50, 69, 50, 60, 111, 68, 66, 54, 56, 69, 65, 75, 71, 86, 59, 52, 60, 73, 68, 57, 50, 46, 60, 52, 69, 87, 64, 66, 101, 93, 89, 75, 66, 60, 47, 71, 68, 76, 88, 74, 64, 69, 84, 55, 64, 61, 63, 64, 72, 56, 67, 77, 60, 51, 59, 94, 76, 45, 52, 62, 50, 56, 47, 100, 69, 80, 63, 57, 65, 52, 80, 60, 66, 61, 64, 89, 59, 63, 73, 52, 59, 51, 70, 60, 54, 59, 52, 59, 73, 111, 64, 59, 69, 68, 58, 58, 69, 64, 53, 53, 55, 67, 87, 74, 64, 71, 67, 56, 68, 53, 63, 73, 81, 61, 60, 82, 80, 89, 86, 79, 86, 70, 63, 67, 54, 67, 56, 62, 55, 59, 58, 67, 85, 67, 77, 67, 63, 62, 72, 56, 63, 73, 58, 71, 69, 71, 57, 51, 51, 79, 77, 59, 69, 81, 89, 69, 62, 92, 67, 51, 69, 56, 61, 57, 80, 64, 134, 82, 74, 54, 82, 57, 64, 61, 63, 68, 61, 92, 63, 68, 67, 58, 59, 73, 66, 64, 59, 61, 61, 82, 83, 75, 50, 56, 67, 69, 72, 51, 61, 63, 55, 63, 50, 80, 51, 77, 57, 52, 72, 47, 72, 60, 67, 52, 63, 65, 64, 42, 77, 51, 96, 62, 62, 77, 59, 59, 67, 50, 82, 89, 58, 97, 70, 88, 62, 45, 117, 63, 72, 53, 77, 65, 54, 56, 69, 79, 67, 67, 57, 66, 62, 84, 75, 59, 77, 63, 69, 48, 60, 83, 61, 64, 66, 58, 59, 76, 66, 55, 69, 57, 100, 65, 64, 63, 76, 75, 59, 62, 72, 73, 62, 49, 45, 68, 81, 58, 68, 54, 78, 47, 70, 80, 56, 64, 69, 68, 61, 66, 78, 54, 66, 81, 48, 52, 75, 73, 41, 64, 66, 66, 62, 60, 48, 65, 63, 54, 75, 58, 66, 94, 58, 67, 68, 55, 59, 57, 78, 77, 71, 84, 77, 53, 52, 66, 70, 54, 40, 92, 81, 52, 65, 71, 53, 84, 75, 62, 54, 59, 65, 79, 75, 48, 80, 64, 60, 74, 39, 88, 60, 71, 55, 81, 58, 58, 71, 93, 88, 75, 65, 67, 63, 81, 59, 77, 64, 43, 48, 67, 61, 51, 53, 74, 58, 68, 61, 69, 51, 55, 76, 60, 55, 53, 60, 90, 48, 87, 63, 121, 58, 84, 55, 75, 65, 49, 69, 59, 65, 72, 81, 66, 70, 54, 60, 66, 66, 76, 67, 68, 64, 47, 63, 58, 64, 55, 90, 63, 73, 88, 67, 38, 47, 31, 134, 77, 55, 54, 69, 87, 52, 58, 72, 74, 62, 59, 73, 59, 65, 71, 92, 72, 90, 68, 81, 65, 69, 99, 69, 85, 82, 68, 60, 54, 70, 56, 71, 65, 59, 78, 70, 41, 66, 60, 63, 43, 57, 68, 60, 60, 65, 64, 65, 54, 62, 76, 69, 70, 56, 58, 49, 69, 91, 68, 52, 56, 66, 102, 72, 60, 73, 47, 84, 95, 54, 70, 54, 67, 100, 57, 59, 54, 66, 73, 44, 52, 65, 68, 84, 65, 66, 69, 70, 57, 82, 51, 62, 67, 70, 65, 60, 59, 63, 70, 62, 52, 58, 73, 68, 91, 47, 91, 59, 44, 81, 65, 61, 52, 51, 59, 66, 66, 50, 55, 71, 67, 61, 60, 45, 72, 34, 87, 46, 72, 55, 62, 47, 95, 56, 71, 62, 65, 58, 55, 54, 76, 56, 56, 43, 83, 58, 69, 78, 79, 84, 93, 54, 73, 50, 81, 76, 85, 56, 94, 71, 68, 54, 73, 124, 54, 86, 92, 58, 121, 60, 74, 69, 71, 84, 53, 52, 44, 62, 67, 46, 81, 57, 59, 93, 61, 55, 107, 59, 56, 84, 57, 75, 77, 69, 85, 110, 38, 52, 57, 76, 73, 61, 62, 59, 58, 51, 60, 78, 48, 59, 65, 55, 59, 62, 59, 70, 74, 59, 53, 71, 73, 76, 41, 65, 60, 51, 103, 71, 64, 72, 57, 73, 63, 48, 78, 85, 71, 58, 65, 82, 58, 60, 65, 48, 71, 59, 63, 82, 105, 61, 70, 63, 56, 65, 77, 56, 101, 62, 54, 65, 62, 73, 71, 58, 71, 52, 48, 47, 60, 76, 75, 86, 56, 129, 60, 63, 71, 58, 44, 89, 81, 62, 59, 58, 65, 54, 62, 48, 67, 75, 45, 64, 67, 91, 67, 56, 68, 36, 83, 52, 51, 77, 83, 76, 43, 62, 82, 64, 68, 80, 30, 57, 63, 69, 92, 70, 51, 80, 107, 77, 63, 52, 67, 65, 48, 56, 68, 52, 53, 65, 60, 68, 98, 55, 54, 91, 80, 87, 56, 57, 68, 56, 71, 60, 94, 53, 50, 69, 64, 49, 83, 56, 60, 67, 76, 68, 142, 77, 63, 71, 54, 59, 47, 117, 64, 66, 53, 32, 43, 65, 66, 53, 62, 86, 72, 57, 56, 45, 67, 40, 50, 68, 65, 68, 59, 86, 87, 53, 58, 67, 58, 70, 47, 65, 57, 66, 69, 73, 59, 67, 52, 51, 47, 56, 42, 70, 64, 63, 83, 55, 42, 52, 79, 75, 54, 52, 52, 83, 67, 64, 63, 72, 58, 65, 74, 56, 78, 58, 50, 46, 58, 61, 60, 58, 84, 58, 58, 59, 76, 40, 55, 61, 71, 56, 86, 43, 55, 116, 49, 58, 75, 75, 53, 54, 74, 63, 60, 65, 60, 60, 55, 61, 55, 64, 52, 63, 69, 60, 68, 53, 64, 63, 73, 86, 65, 52, 63, 64, 58, 91, 63, 65, 79, 75, 60, 52, 33, 74, 64, 62, 74, 75, 51, 84, 70, 63, 55, 79, 83, 89, 78, 53, 73, 57, 69, 53, 62, 63, 76, 50, 69, 68, 70, 51, 60, 72, 49, 95, 72, 72, 64, 62, 53, 57, 85, 61, 49, 57, 58, 62, 77, 50, 62, 127, 68, 85, 75, 77, 57, 107, 86, 41, 58, 92, 55, 66, 59, 61, 67, 77, 57, 63, 56, 60, 46, 63, 55, 55, 79, 67, 70, 122, 99, 68, 74, 71, 57, 81, 62, 67, 51, 64, 71, 39, 68, 61, 62, 72, 48, 58, 49, 62, 84, 59, 70, 74, 68, 72, 57, 62, 57, 72, 78, 48, 71, 112, 69, 75, 120, 62, 69, 56, 55, 62, 76, 44, 63, 61, 63, 78, 60, 59, 47, 67, 52, 64, 68, 58, 79, 83, 97, 69, 61, 65, 59, 66, 63, 54, 55, 64, 95, 58, 60, 62, 74, 85, 61, 70, 54, 52, 109, 66, 57, 61, 60, 67, 82, 78, 79, 99, 58, 81, 50, 63, 83, 53, 58, 57, 48, 77, 49, 98, 70, 71, 63, 57, 76, 76, 64, 74, 87, 69, 59, 80, 64, 73, 58, 55, 61, 86, 77, 68, 87, 61, 54, 84, 57, 50, 57, 69, 56, 52, 54, 90, 69, 84, 75, 83, 59, 55, 109, 53, 74, 70, 43, 51, 71, 83, 84, 57, 89, 61, 74, 61, 63, 54, 68, 70, 66, 55, 53, 58, 57, 89, 101, 58, 98, 96, 50, 84, 65, 69, 45, 67, 52, 49, 49, 87, 54, 90, 74, 74, 66, 65, 55, 50, 78, 67, 66, 64, 55, 71, 88, 69, 71, 52, 66, 67, 87, 58, 51, 51, 51, 72, 52, 56, 72, 111, 84, 43, 61, 55, 71, 57, 62, 65, 65, 63, 109, 78, 84, 65, 66, 60, 57, 60, 91, 50, 74, 61, 72, 49, 66, 61, 79, 43, 61, 53, 51, 57, 56, 68, 58, 55, 67, 50, 54, 64, 60, 67, 68, 65, 66, 67, 51, 50, 54, 55, 67, 65, 78, 55, 63, 66, 97, 57, 62, 83, 79, 71, 54, 60, 59, 71, 64, 69, 101, 54, 66, 72, 69, 73, 91, 62, 68, 82, 81, 88, 62, 75, 52, 61, 56, 78, 64, 58, 52, 46, 59, 71, 71, 66, 61, 60, 62, 46, 46, 75, 69, 62, 56, 49, 61, 92, 65, 76, 73, 60, 61, 50, 70, 66, 62, 58, 40, 55, 64, 72, 43, 102, 56, 90, 77, 73, 50, 90, 67, 50, 57, 75, 70, 55, 42, 65, 70, 72, 56, 83, 71, 35, 67, 75, 78, 71, 66, 83, 57, 56, 66, 73, 89, 55, 62, 68, 55, 84, 61, 66, 62, 38, 76, 48, 67, 65, 46, 46, 64, 46, 61, 59, 51, 79, 54, 62, 80, 53, 63, 74, 58, 46, 75, 73, 100, 75, 72, 70, 50, 66, 82, 74, 46, 67, 82, 42, 70, 50, 110, 89, 61, 72, 64, 72, 59, 54, 72, 62, 57, 44, 71, 60, 57, 55, 55, 60, 73, 57, 36, 56, 58, 63, 64, 58, 120, 74, 66, 51, 57, 52, 64, 62, 70, 69, 73, 65, 81, 89, 153, 70, 58, 63, 51, 68, 74, 60, 122, 49, 67, 64, 61, 70, 74, 70, 78, 126, 50, 67, 73, 68, 45, 70, 82, 64, 53, 66, 51, 68, 82, 86, 81, 66, 52, 84, 62, 76, 51, 69, 94, 76, 45, 66, 49, 56, 101, 68, 73, 73, 59, 76, 104, 77, 63, 52, 52, 69, 70, 70, 56, 71, 72, 47, 86, 114, 59, 60, 60, 61, 54, 61, 83, 91, 80, 62, 48, 137, 65, 60, 54, 50, 96, 64, 61, 49, 82, 70, 60, 90, 49, 59, 78, 71, 57, 71, 57, 52, 48, 42, 73, 67, 65, 150, 70, 85, 78, 66, 52, 72, 49, 86, 85, 76, 64, 136, 72, 59, 83, 67, 55, 64, 54, 62, 74, 65, 62, 74, 62, 43, 85, 86, 60, 80, 64, 42, 82, 77, 61, 78, 60, 55, 59, 60, 51, 92, 52, 89, 79, 94, 62, 76, 55, 48, 56, 84, 44, 76, 64, 68, 85, 67, 56, 75, 71, 67, 62, 46, 87, 72, 75, 90, 54, 65, 56, 78, 72, 70, 65, 97, 56, 51, 71, 82, 71, 68, 65, 49, 81, 70, 61, 36, 60, 74, 50, 61, 57, 63, 61, 126, 75, 64, 58, 60, 68, 66, 58, 51, 60, 50, 54, 67, 103, 69, 79, 75, 79, 80, 79, 75, 44, 80, 73, 69, 61, 54, 52, 64, 55, 56, 75, 54, 50, 73, 78, 84, 75, 80, 62, 97, 54, 57, 96, 64, 58, 62, 39, 82, 76, 66, 53, 88, 74, 53, 66, 67, 84, 82, 48, 80, 51, 78, 81, 73, 80, 53, 64, 41, 61, 57, 54, 56, 41, 60, 53, 48, 77, 67, 59, 58, 60, 83, 115, 38, 53, 71, 113, 49, 75, 73, 56, 62, 45, 67, 53, 60, 50, 43, 64, 96, 51, 58, 49, 63, 80, 53, 55, 125, 72, 85, 40, 78, 80, 84, 56, 58, 82, 38, 57, 70, 75, 64, 77, 58, 114, 83, 66, 66, 72, 60, 60, 73, 50, 59, 68, 53, 75, 50, 71, 71, 81, 70, 70, 78, 58, 58, 57, 94, 37, 82, 82, 52, 79, 65, 58, 56, 78, 66, 65, 76, 66, 62, 80, 64, 50, 62, 55, 53, 55, 121, 100, 74, 71, 77, 59, 65, 75, 44, 70, 53, 69, 79, 65, 62, 54, 60, 94, 67, 64, 99, 59, 56, 96, 81, 74, 64, 60, 65, 63, 59, 66, 53, 75, 55, 86, 100, 59, 56, 58, 74, 78, 57, 53, 70, 88, 70, 78, 43, 79, 64, 64, 64, 30, 60, 77, 60, 71, 45, 79, 62, 67, 59, 61, 54, 77, 59, 69, 44, 32, 69, 50, 66, 68, 73, 61, 68, 84, 68, 43, 46, 58, 74, 69, 63, 57, 76, 80, 85, 63, 78, 42, 55, 63, 55, 71, 67, 64, 73, 59, 74, 71, 69, 84, 74, 64, 86, 79, 75, 83, 62, 55, 82, 65, 73, 48, 73, 56, 53, 55, 49, 72, 56, 62, 59, 77, 61, 73, 58, 47, 57, 53, 68, 46, 83, 80, 51, 60, 51, 70, 43, 55, 50, 75, 63, 101, 71, 63, 75, 62, 54, 73, 54, 65, 60, 104, 46, 49, 60, 101, 49, 74, 52, 43, 106, 66, 69, 62, 76, 73, 65, 74, 59, 61, 55, 89, 53, 71, 60, 69, 86, 57, 44, 64, 67, 49, 98, 54, 48, 73, 53, 76, 55, 68, 79, 57, 51, 46, 51, 56, 74, 61, 79, 38, 52, 57, 81, 58, 57, 52, 65, 77, 196, 54, 58, 89, 60, 71, 82, 70, 63, 71, 48, 69, 58, 56, 45, 44, 75, 59, 60, 61, 82, 47, 85, 72, 64, 59, 59, 65, 75, 64, 52, 49, 50, 82, 65, 66, 61, 125, 62, 85, 72, 63, 77, 51, 81, 68, 72, 55, 78, 80, 61, 71, 63, 60, 55, 76, 84, 85, 64, 79, 82, 56, 69, 66, 62, 77, 70, 70, 39, 42, 54, 73, 50, 58, 71, 66, 66, 67, 59, 68, 57, 82, 61, 56, 70, 70, 67, 75, 62, 72, 57, 52, 69, 65, 63, 76, 60, 87, 60, 112, 63, 57, 63, 59, 92, 70, 48, 74, 75, 88, 99, 84, 66, 49, 67, 54, 105, 54, 68, 48, 43, 61, 45, 58, 40, 71, 62, 61, 112, 67, 81, 59, 48, 71, 53, 67, 80, 63, 67, 86, 52, 62, 64, 76, 59, 43, 47, 85, 69, 82, 65, 59, 63, 56, 80, 71, 49, 60, 69, 87, 58, 70, 66, 61, 47, 71, 44, 63, 48, 78, 84, 91, 70, 81, 55, 60, 68, 59, 67, 45, 61, 72, 51, 73, 59, 78, 48, 51, 95, 77, 88, 73, 43, 66, 32, 55, 54, 47, 81, 42, 80, 72, 62, 53, 141, 114, 58, 85, 40, 77, 77, 45, 52, 65, 59, 60, 88, 52, 46, 64, 70, 105, 81, 70, 56, 65, 70, 50, 55, 73, 61, 68, 94, 73, 59, 56, 72, 77, 76, 63, 58, 71, 79, 90, 65, 54, 66, 57, 58, 48, 57, 65, 88, 84, 75, 64, 59, 68, 51, 51, 65, 54, 65, 70, 65, 87, 93, 80, 52, 48, 50, 89, 78, 76, 73, 65, 51, 55, 80, 88, 79, 47, 31, 67, 52, 64, 66, 74, 61, 58, 82, 69, 64, 75, 76, 52, 75, 71, 50, 63, 62, 93, 57, 63, 56, 45, 75, 63, 68, 73, 73, 64, 57, 128, 68, 74, 54, 60, 83, 67, 70, 79, 69, 74, 45, 104, 55, 64, 73, 55, 49, 56, 98, 52, 72, 91, 56, 57, 52, 80, 49, 57, 66, 72, 54, 59, 63, 62, 51, 74, 53, 58, 54, 72, 100, 73, 81, 82, 90, 57, 67, 75, 75, 61, 55, 72, 55, 63, 66, 60, 82, 76, 68, 64, 64, 82, 78, 63, 58, 57, 62, 51, 59, 56, 53, 80, 80, 65, 58, 65, 94, 66, 59, 121, 87, 88, 56, 50, 55, 74, 64, 68, 82, 55, 64, 74, 88, 53, 49, 53, 92, 70, 67, 80, 68, 51, 64, 62, 65, 108, 72, 53, 61, 66, 74, 48, 57, 56, 55, 57, 57, 57, 73, 68, 56, 89, 72, 81, 57, 89, 60, 57, 54, 73, 70, 61, 72, 52, 35, 84, 50, 54, 72, 64, 58, 69, 70, 71, 69, 45, 59, 58, 81, 97, 77, 72, 52, 58, 49, 49, 90, 73, 64, 59, 73, 67, 73, 54, 44, 64, 69, 70, 67, 54, 66, 48, 76, 62, 57, 87, 74, 78, 48, 57, 65, 68, 45, 92, 51, 72, 75, 66, 56, 55, 75, 54, 71, 57, 72, 69, 55, 51, 88, 70, 68, 62, 59, 60, 83, 75, 47, 53, 62, 55, 52, 68, 74, 53, 64, 72, 72, 61, 82, 57, 77, 66, 55, 63, 69, 67, 54, 85, 68, 86, 60, 78, 69, 59, 57, 65, 69, 60, 74, 63, 65, 62, 55, 66, 75, 55, 67, 56, 59, 58, 68, 161, 64, 43, 61, 77, 65, 69, 57, 58, 51, 81, 62, 72, 75, 69, 57, 50, 63, 55, 70, 56, 68, 52, 68, 53, 62, 65, 93, 52, 67, 90, 68, 75, 84, 66, 60, 89, 48, 59, 57, 66, 63, 63, 65, 73, 69, 39, 49, 75, 59, 63, 52, 69, 62, 68, 77, 55, 56, 76, 65, 69, 71, 70, 78, 61, 59, 54, 65, 75, 66, 70, 60, 58, 77, 51, 100, 57, 64, 62, 63, 61, 64, 53, 57, 76, 76, 87, 57, 76, 60, 76, 62, 84, 63, 51, 56, 58, 52, 68, 64, 83, 58, 56, 52, 67, 55, 68, 71, 64, 58, 77, 69, 70, 77, 56, 67, 62, 69, 62, 60, 65, 98, 71, 65, 59, 69, 71, 86, 64, 60, 82, 69, 69, 64, 67, 61, 82, 69, 64, 66, 69, 64, 69, 64, 69, 55, 75, 62, 65, 56, 47, 65, 72, 72, 78, 64, 60, 64, 58, 60, 56, 61, 58, 74, 76, 58, 75, 79, 52, 83, 82, 72, 57, 66, 69, 77, 69, 80, 54, 63, 58, 61, 61, 61, 62, 68, 59, 59, 79, 56, 68, 66, 69, 72, 50, 63, 109, 68, 70, 57, 66, 73, 56, 69, 63, 55, 67, 73, 50, 65, 64, 78, 57, 57, 59, 56, 68, 63, 69, 55, 65, 55, 67, 134, 68, 56, 91, 59, 56, 63, 65, 48, 49, 97, 76, 68, 85, 67, 80, 53, 35, 60, 82, 63, 74, 64, 71, 67, 54, 70, 66, 64, 65, 82, 63, 69, 53, 59, 68, 57, 69, 71, 76, 64, 71, 65, 52, 67, 63, 60, 75, 55, 60, 61, 81, 63, 69, 66, 129, 67, 73, 57, 95, 76, 55, 100, 66, 68, 66, 64, 61, 73, 74, 76, 57, 61, 74, 79, 58, 74, 63, 52, 70, 72, 77, 66, 60, 71, 75, 71, 62, 77, 68, 79, 69, 59, 54, 67, 54, 77, 61, 52, 66, 72, 69, 58, 69, 55, 56, 57, 72, 60, 67, 46, 68, 60, 65, 68, 60, 59, 70, 78, 97, 57, 66, 61, 53, 69, 67, 68, 73, 58, 61, 59, 44, 77, 65, 65, 59, 93, 64, 55, 56, 59, 56, 59, 63, 77, 65, 63, 63, 80, 70, 62, 62, 63, 65, 73, 67, 58, 88, 65, 84, 89, 72, 69, 65, 66, 76, 60, 83, 63, 71, 63, 50, 70, 72, 59, 80, 74, 61, 59, 36, 63, 67, 106, 63, 58, 60, 54, 69, 60, 61, 79, 52, 57, 64, 66, 101, 64, 79, 62, 59, 71, 46, 68, 66, 94, 58, 66, 89, 70, 58, 60, 113, 72, 59, 61, 62, 50, 69, 68, 62, 66, 72, 79, 58, 60, 62, 58, 56, 69, 55, 59, 44, 77, 46, 63, 43, 78, 109, 69, 61, 60, 58, 55, 51, 55, 90, 82, 57, 73, 64, 53, 101, 60, 49, 99, 68, 64, 65, 68, 75, 59, 65, 55, 56, 72, 56, 63, 69, 63, 68, 55, 69, 51, 64, 84, 55, 85, 63, 73, 85, 63, 62, 73, 63, 54, 82, 64, 65, 66, 52, 58, 53, 74, 73, 54, 48, 68, 71, 56, 63, 68, 59, 55, 89, 71, 61, 59, 62, 55, 64, 68, 27, 69, 78, 58, 62, 67, 70, 58, 60, 65, 56, 72, 61, 92, 53, 53, 58, 46, 46, 80, 63, 53, 46, 55, 56, 63, 68, 57, 88, 74, 56, 66, 57, 62, 62, 86, 61, 85, 54, 47, 48, 65, 63, 63, 66, 53, 53, 54, 58, 65, 64, 61, 88, 66, 65, 69, 84, 81, 58, 60, 77, 55, 87, 81, 74, 68, 63, 51, 66, 65, 66, 56, 55, 70, 58, 56, 51, 96, 77, 50, 79, 100, 99, 59, 90, 73, 73, 54, 63, 63, 67, 67, 34, 66, 60, 64, 71, 59, 75, 57, 63, 70, 59, 62, 64, 57, 63, 66, 76, 65, 57, 59, 53, 82, 66, 69, 58, 52, 58, 64, 72, 56, 108, 77, 70, 67, 66, 52, 51, 65, 84, 61, 98, 68, 66, 49, 90, 57, 60, 69, 61, 63, 57, 66, 67, 61, 62, 60, 77, 56, 56, 81, 67, 76, 71, 55, 62, 42, 61, 67, 156, 60, 55, 83, 92, 74, 57, 76, 52, 52, 68, 50, 63, 88, 57, 75, 69, 83, 60, 55, 67, 62, 63, 69, 56, 54, 63, 59, 59, 80, 76, 54, 71, 54, 69, 59, 63, 77, 80, 64, 64, 66, 61, 53, 64, 72, 77, 70, 57, 69, 59, 59, 56, 59, 50, 84, 77, 64, 79, 53, 60, 65, 71, 58, 67, 71, 65, 46, 67, 59, 60, 59, 60, 68, 61, 75, 69, 57, 73, 62, 70, 58, 53, 59, 64, 70, 61, 45, 72, 76, 55, 53, 44, 62, 61, 102, 55, 84, 63, 68, 50, 72, 59, 62, 76, 54, 60, 59, 82, 123, 72, 59, 63, 60, 50, 55, 61, 50, 54, 65, 64, 54, 69, 53, 65, 53, 61, 54, 65, 72, 52, 60, 59, 59, 65, 84, 70, 61, 59, 58, 64, 64, 57, 81, 63, 68, 49, 65, 64, 68, 57, 63, 61, 60, 48, 76, 72, 62, 48, 72, 69, 56, 72, 66, 67, 64, 64, 51, 68, 60, 69, 71, 64, 60, 56, 52, 57, 61, 66, 60, 51, 47, 78, 63, 58, 55, 60, 63, 43, 70, 72, 55, 107, 58, 72, 67, 88, 104, 59, 57, 74, 59, 64, 65, 55, 71, 54, 69, 48, 61, 71, 95, 68, 76, 63, 88, 62, 69, 68, 76, 52, 52, 57, 66, 60, 62, 53, 65, 59, 63, 59, 70, 75, 62, 59, 60, 62, 67, 49, 63, 82, 74, 72, 68, 51, 72, 63, 63, 63, 64, 65, 56, 61, 59, 59, 65, 74, 55, 58, 72, 59, 61, 60, 56, 55, 81, 62, 80, 57, 58, 62, 69, 81, 97, 60, 62, 46, 65, 60, 77, 58, 69, 56, 58, 65, 97, 51, 60, 73, 61, 65, 67, 74, 61, 59, 54, 86, 70, 69, 82, 72, 48, 76, 45, 63, 58, 73, 71, 54, 60, 62, 54, 44, 71, 56, 65, 60, 78, 60, 51, 61, 60, 52, 69, 95, 82, 63, 67, 56, 42, 79, 61, 57, 77, 58, 58, 64, 64, 60, 67, 50, 60, 77, 53, 84, 72, 78, 71, 73, 96, 61, 58, 70, 77, 63, 76, 66, 60, 58, 57, 68, 79, 45, 77, 51, 76, 72, 82, 78, 67, 79, 78, 72, 71, 49, 64, 61, 67, 60, 73, 59, 72, 90, 61, 56, 90, 81, 67, 57, 60, 81, 70, 74, 62, 65, 67, 61, 82, 77, 37, 45, 56, 70, 72, 70, 61, 71, 69, 78, 61, 83, 64, 47, 59, 74, 63, 80, 53, 57, 58, 62, 73, 70, 67, 84, 48, 58, 48, 62, 59, 57, 77, 69, 69, 54, 62, 53, 68, 57, 107, 69, 68, 59, 59, 59, 45, 68, 58, 62, 53, 68, 68, 69, 46, 114, 60, 44, 71, 63, 64, 75, 76, 69, 68, 56, 79, 74, 75, 52, 62, 87, 63, 58, 73, 54, 59, 60, 65, 68, 57, 65, 63, 66, 63, 49, 65, 62, 65, 74, 78, 52, 70, 85, 88, 77, 82, 81, 58, 74, 62, 74, 66, 67, 58, 75, 70, 68, 57, 52, 74, 62, 57, 55, 56, 73, 82, 75, 67, 65, 65, 68, 58, 49, 67, 57, 90, 62, 70, 76, 58, 75, 57, 70, 68, 62, 74, 54, 65, 56, 69, 58, 60, 58, 75, 56, 53, 79, 52, 59, 81, 59, 45, 73, 79, 89, 87, 54, 74, 80, 51, 78, 65, 54, 76, 81, 64, 65, 48, 59, 60, 64, 68, 84, 65, 69, 80, 55, 46, 76, 74, 61, 88, 72, 107, 58, 67, 64, 92, 48, 82, 61, 67, 77, 74, 69, 77, 57, 48, 65, 60, 75, 55, 84, 51, 87, 64, 48, 55, 70, 57, 52, 61, 62, 52, 78, 55, 57, 60, 62, 51, 51, 44, 61, 90, 62, 71, 65, 61, 68, 58, 62, 82, 88, 65, 78, 53, 67, 64, 80, 60, 44, 64, 101, 55, 67, 53, 68, 49, 84, 54, 72, 95, 51, 88, 68, 81, 45, 68, 43, 73, 62, 65, 45, 67, 106, 46, 63, 53, 69, 71, 60, 75, 68, 48, 55, 52, 54, 64, 55, 63, 65, 60, 66, 51, 66, 52, 52, 54, 63, 70, 78, 58, 82, 53, 60, 55, 65, 62, 66, 70, 81, 36, 65, 61, 72, 50, 59, 67, 90, 55, 66, 66, 60, 64, 77, 46, 62, 57, 72, 76, 54, 62, 61, 64, 74, 68, 81, 79, 66, 65, 97, 58, 73, 59, 73, 53, 72, 101, 64, 77, 67, 72, 65, 72, 72, 60, 77, 52, 68, 54, 93, 64, 81, 66, 50, 60, 63, 55, 49, 80, 64, 91, 67, 73, 66, 64, 63, 70, 55, 84, 63, 55, 88, 56, 65, 63, 62, 65, 70, 72, 57, 55, 69, 65, 61, 70, 50, 50, 67, 63, 76, 54, 59, 65, 34, 54, 73, 56, 81, 76, 75, 78, 62, 63, 60, 61, 65, 53, 106, 57, 71, 71, 59, 66, 70, 78, 68, 59, 71, 71, 61, 63, 57, 69, 49, 54, 73, 57, 64, 75, 66, 63, 58, 55, 67, 54, 69, 71, 70, 65, 51, 66, 73, 74, 64, 35, 97, 64, 80, 77, 85, 128, 57, 54, 71, 60, 62, 49, 61, 66, 49, 74, 67, 52, 64, 67, 65, 74, 75, 87, 59, 69, 58, 65, 51, 67, 64, 80, 63, 71, 48, 52, 64, 82, 80, 59, 52, 70, 50, 65, 63, 64, 60, 62, 68, 53, 68, 53, 65, 66, 55, 44, 87, 58, 54, 61, 51, 78, 67, 85, 65, 53, 60, 106, 58, 58, 66, 82, 71, 62, 59, 77, 61, 68, 53, 48, 68, 67, 62, 81, 62, 96, 70, 48, 71, 70, 67, 74, 62, 65, 66, 58, 76, 51, 63, 55, 78, 56, 117, 68, 66, 58, 60, 53, 76, 66, 68, 56, 60, 60, 55, 45, 55, 60, 78, 64, 61, 65, 83, 58, 67, 82, 84, 62, 53, 55, 80, 50, 63, 78, 43, 65, 67, 62, 69, 60, 64, 49, 67, 65, 66, 76, 55, 48, 70, 60, 60, 70, 51, 83, 48, 84, 83, 64, 72, 79, 58, 78, 43, 66, 59, 84, 75, 50, 73, 64, 83, 70, 70, 59, 60, 82, 67, 60, 67, 98, 65, 54, 71, 68, 79, 54, 62, 103, 66, 70, 57, 72, 49, 65, 69, 64, 64, 43, 34, 69, 63, 83, 48, 73, 75, 46, 68, 69, 77, 85, 77, 63, 65, 73, 54, 59, 63, 58, 50, 49, 49, 58, 46, 59, 64, 55, 81, 36, 67, 67, 44, 65, 57, 40, 47, 51, 57, 84, 57, 63, 56, 69, 50, 106, 72, 89, 71, 54, 60, 105, 80, 112, 46, 50, 53, 69, 46, 54, 49, 62, 81, 51, 98, 63, 66, 86, 52, 77, 74, 54, 88, 55, 75, 62, 50, 89, 61, 67, 74, 60, 118, 70, 70, 54, 66, 61, 50, 72, 62, 67, 80, 56, 83, 60, 67, 59, 53, 65, 56, 55, 66, 70, 64, 77, 101, 58, 61, 61, 59, 65, 52, 54, 79, 60, 66, 79, 57, 60, 77, 91, 92, 71, 74, 49, 60, 67, 61, 76, 64, 59, 57, 61, 57, 92, 54, 60, 53, 58, 76, 83, 74, 62, 73, 66, 53, 80, 84, 67, 57, 78, 91, 113, 68, 70, 65, 89, 46, 69, 69, 67, 49, 82, 78, 50, 71, 84, 88, 48, 62, 81, 50, 71, 77, 68, 91, 69, 152, 52, 60, 101, 50, 73, 46, 63, 59, 53, 64, 77, 59, 50, 50, 66, 85, 55, 63, 55, 67, 56, 66, 55, 67, 70, 62, 70, 91, 49, 65, 48, 67, 65, 59, 65, 56, 67, 62, 55, 63, 75, 66, 64, 64, 100, 82, 71, 44, 62, 73, 59, 59, 79, 65, 49, 93, 60, 58, 71, 65, 42, 89, 62, 56, 86, 53, 60, 61, 105, 76, 73, 55, 35, 60, 58, 82, 59, 52, 60, 40, 59, 66, 49, 56, 53, 65, 57, 86, 92, 83, 76, 74, 58, 94, 64, 85, 64, 100, 80, 50, 38, 71, 82, 55, 50, 85, 76, 68, 62, 71, 43, 71, 61, 40, 37, 70, 56, 74, 96, 78, 76, 52, 90, 97, 56, 70, 59, 55, 62, 92, 62, 63, 79, 39, 50, 51, 59, 71, 50, 47, 45, 56, 75, 49, 66, 62, 74, 51, 53, 65, 73, 56, 73, 54, 82, 83, 71, 112, 69, 75, 90, 79, 61, 64, 63, 45, 78, 51, 75, 46, 72, 53, 54, 57, 64, 61, 52, 75, 45, 99, 66, 90, 56, 62, 95, 86, 54, 75, 91, 50, 45, 54, 80, 69, 53, 89, 52, 47, 48, 74, 46, 70, 58, 73, 68, 60, 61, 70, 53, 65, 57, 72, 96, 62, 68, 57, 53, 57, 61, 58, 62, 39, 57, 79, 65, 70, 65, 66, 75, 81, 45, 70, 58, 94, 73, 64, 63, 45, 90, 57, 71, 68, 75, 65, 71, 49, 94, 104, 48, 58, 62, 68, 64, 79, 53, 68, 79, 53, 60, 49, 57, 76, 77, 66, 59, 67, 65, 56, 92, 73, 72, 54, 47, 71, 116, 56, 61, 53, 62, 73, 49, 72, 46, 68, 54, 72, 54, 64, 62, 67, 65, 74, 81, 51, 72, 62, 77, 55, 75, 57, 54, 85, 52, 60, 78, 46, 68, 46, 58, 61, 51, 51, 57, 64, 60, 43, 23, 95, 77, 95, 76, 75, 77, 61, 64, 57, 59, 85, 46, 87, 78, 87, 67, 111, 52, 70, 78, 71, 63, 66, 88, 76, 66, 60, 62, 73, 63, 64, 52, 53, 101, 51, 91, 72, 55, 71, 50, 43, 100, 56, 91, 70, 68, 45, 71, 57, 66, 61, 82, 84, 65, 64, 90, 46, 52, 69, 42, 81, 40, 71, 61, 53, 34, 96, 89, 44, 56, 67, 85, 47, 90, 51, 112, 60, 77, 65, 62, 48, 94, 60, 88, 67, 75, 61, 60, 61, 52, 61, 76, 69, 71, 74, 56, 46, 61, 70, 46, 76, 53, 57, 59, 63, 80, 75, 48, 66, 73, 76, 85, 41, 62, 51, 83, 108, 79, 80, 47, 130, 56, 99, 42, 79, 61, 102, 65, 109, 43, 81, 65, 87, 76, 51, 55, 76, 81, 66, 69, 68, 75, 73, 59, 114, 74, 64, 61, 91, 97, 54, 55, 63, 78, 54, 79, 95, 58, 55, 57, 73, 62, 76, 81, 57, 77, 59, 66, 50, 65, 66, 51, 66, 61, 67, 61, 60, 44, 71, 43, 57, 66, 49, 51, 76, 59, 73, 43, 47, 61, 70, 40, 87, 64, 54, 49, 60, 65, 63, 72, 68, 74, 59, 77, 91, 47, 62, 57, 70, 71, 57, 98, 69, 44, 42, 66, 45, 51, 56, 77, 78, 74, 68, 48, 52, 85, 64, 69, 70, 51, 57, 80, 58, 36, 79, 100, 92, 56, 53, 52, 45, 57, 96, 48, 63, 69, 61, 83, 48, 56, 49, 48, 56, 68, 41, 58, 52, 108, 58, 64, 67, 56, 57, 39, 66, 68, 59, 66, 137, 66, 102, 58, 63, 54, 46, 70, 78, 67, 58, 58, 56, 69, 80, 71, 58, 88, 53, 36, 62, 78, 66, 64, 63, 85, 83, 63, 65, 80, 39, 71, 61, 45, 70, 50, 50, 58, 62, 79, 66, 67, 53, 64, 83, 55, 66, 54, 84, 93, 87, 81, 65, 51, 86, 57, 67, 59, 54, 51, 73, 66, 47, 57, 85, 93, 68, 102, 44, 62, 65, 63, 56, 73, 61, 53, 76, 55, 56, 75, 81, 50, 99, 70, 37, 46, 75, 66, 47, 64, 87, 36, 58, 73, 102, 49, 55, 74, 54, 75, 47, 45, 59, 76, 86, 60, 53, 80, 56, 88, 49, 54, 56, 61, 72, 79, 68, 58, 57, 46, 100, 68, 38, 67, 68, 48, 62, 69, 54, 63, 78, 71, 63, 82, 75, 61, 122, 48, 52, 79, 48, 64, 56, 58, 63, 60, 49, 64, 71, 52, 69, 84, 65, 69, 82, 105, 49, 54, 103, 54, 81, 79, 45, 60, 96, 70, 74, 68, 50, 97, 58, 84, 65, 74, 57, 56, 87, 63, 89, 33, 92, 64, 57, 76, 58, 51, 72, 48, 125, 45, 60, 77, 71, 92, 65, 70, 73, 72, 74, 73, 63, 53, 59, 50, 54, 90, 77, 57, 59, 57, 75, 64, 79, 69, 66, 56, 47, 66, 89, 91, 63, 111, 54, 62, 95, 60, 62, 85, 33, 71, 77, 57, 55, 52, 69, 73, 129, 75, 57, 79, 66, 56, 72, 72, 56, 75, 180, 66, 84, 100, 44, 63, 65, 71, 61, 42, 62, 82, 56, 69, 70, 62, 40, 86, 43, 48, 64, 129, 65, 41, 50, 116, 54, 45, 65, 65, 66, 75, 45, 62, 62, 77, 53, 37, 39, 65, 88, 76, 53, 62, 53, 57, 59, 56, 53, 82, 68, 52, 64, 85, 29, 44, 55, 90, 70, 50, 79, 71, 90, 72, 55, 77, 64, 58, 67, 83, 53, 66, 77, 62, 80, 75, 80, 53, 43, 47, 66, 57, 59, 71, 60, 71, 43, 44, 48, 57, 57, 59, 92, 88, 70, 46, 61, 96, 50, 74, 44, 68, 61, 87, 73, 65, 73, 41, 58, 68, 83, 73, 77, 75, 116, 71, 26, 74, 58, 59, 78, 56, 54, 79, 100, 52, 78, 66, 59, 62, 59, 97, 58, 61, 51, 68, 76, 57, 66, 82, 85, 81, 86, 97, 75, 64, 130, 94, 106, 60, 61, 57, 74, 76, 81, 56, 123, 59, 85, 75, 53, 99, 68, 75, 59, 47, 51, 54, 54, 57, 63, 63, 76, 94, 64, 77, 56, 57, 79, 70, 52, 51, 68, 74, 76, 70, 70, 55, 69, 41, 69, 46, 73, 47, 46, 44, 51, 78, 87, 45, 47, 73, 61, 82, 49, 65, 79, 79, 65, 49, 63, 34, 81, 53, 66, 56, 66, 62, 37, 59, 72, 74, 63, 74, 109, 102, 87, 79, 71, 49, 54, 59, 74, 56, 40, 74, 84, 53, 65, 69, 63, 58, 93, 55, 97, 53, 54, 51, 77, 72, 58, 90, 49, 66, 84, 52, 77, 76, 62, 55, 99, 74, 95, 64, 52, 69, 66, 86, 59, 90, 57, 63, 82, 62, 93, 79, 58, 97, 65, 68, 75, 58, 62, 89, 67, 86, 43, 54, 55, 64, 43, 88, 117, 61, 73, 71, 63, 52, 48, 67, 53, 38, 80, 98, 63, 46, 77, 53, 53, 57, 76, 61, 51, 84, 61, 61, 54, 60, 65, 74, 75, 75, 59, 86, 65, 61, 62, 70, 69, 67, 70, 59, 64, 68, 58, 145, 61, 67, 72, 47, 59, 76, 56, 62, 58, 63, 71, 54, 62, 76, 49, 53, 57, 68, 65, 61, 49, 51, 56, 50, 68, 54, 102, 93, 90, 68, 75, 97, 92, 56, 56, 71, 53, 61, 53, 66, 73, 45, 60, 95, 66, 81, 68, 66, 57, 83, 96, 51, 111, 72, 50, 70, 43, 86, 87, 80, 53, 68, 83, 53, 64, 71, 65, 58, 55, 65, 59, 57, 103, 42, 37, 67, 72, 92, 72, 60, 63, 83, 60, 73, 59, 53, 66, 57, 63, 49, 61, 50, 80, 67, 56, 68, 69, 84, 89, 59, 66, 79, 62, 50, 80, 79, 80, 72, 77, 59, 52, 77, 63, 71, 57, 65, 58, 82, 65, 62, 51, 80, 77, 59, 78, 79, 53, 47, 79, 100, 111, 65, 74, 58, 63, 59, 92, 81, 73, 45, 58, 77, 57, 86, 62, 59, 67, 43, 68, 76, 72, 54, 54, 59, 51, 64, 51, 48, 68, 61, 65, 69, 59, 57, 87, 75, 59, 62, 78, 59, 59, 80, 59, 84, 78, 63, 60, 66, 109, 44, 62, 71, 55, 68, 66, 73, 61, 84, 57, 79, 70, 49, 66, 62, 83, 53, 75, 52, 77, 55, 51, 58, 100, 70, 45, 46, 130, 72, 64, 89, 75, 52, 70, 100, 63, 72, 65, 86, 62, 91, 71, 51, 63, 68, 55, 55, 45, 50, 39, 65, 64, 64, 65, 86, 63, 93, 32, 72, 56, 96, 65, 61, 70, 54, 82, 84, 70, 71, 74, 91, 58, 66, 58, 73, 61, 52, 63, 57, 71, 85, 74, 71, 62, 60, 59, 86, 59, 67, 63, 55, 46, 70, 83, 52, 70, 47, 53, 64, 53, 61, 93, 67, 66, 66, 50, 62, 74, 52, 122, 76, 70, 61, 72, 69, 59, 41, 72, 57, 43, 58, 52, 80, 72, 82, 61, 63, 52, 69, 55, 104, 48, 66, 84, 65, 54, 65, 73, 55, 72, 81, 58, 77, 84, 84, 64, 63, 58, 76, 62, 119, 53, 64, 50, 62, 85, 42, 68, 73, 69, 58, 51, 60, 58, 73, 54, 55, 73, 83, 65, 55, 39, 71, 67, 93, 74, 63, 52, 61, 47, 66, 91, 60, 79, 49, 50, 73, 63, 68, 83, 66, 57, 78, 75, 68, 59, 90, 61, 66, 51, 58, 63, 50, 70, 71, 48, 73, 63, 56, 60, 76, 52, 72, 57, 62, 68, 100, 57, 54, 53, 109, 55, 86, 69, 57, 74, 68, 75, 55, 66, 116, 47, 70, 79, 50, 44, 60, 56, 59, 50, 58, 50, 67, 77, 62, 61, 53, 104, 69, 72, 89, 48, 63, 41, 53, 61, 67, 47, 69, 85, 59, 74, 120, 43, 74, 79, 60, 43, 56, 69, 76, 93, 67, 58, 64, 53, 50, 57, 57, 70, 43, 61, 80, 58, 62, 43, 53, 83, 56, 89, 51, 60, 65, 78, 103, 56, 84, 53, 69, 51, 79, 89, 60, 99, 55, 58, 56, 73, 87, 75, 37, 87, 52, 46, 74, 52, 51, 71, 54, 65, 53, 55, 70, 52, 71, 43, 53, 60, 57, 71, 45, 97, 62, 55, 55, 84, 56, 60, 80, 45, 51, 85, 91, 43, 74, 71, 114, 82, 67, 79, 42, 55, 64, 51, 47, 79, 78, 69, 71, 73, 61, 79, 60, 57, 55, 78, 67, 60, 69, 49, 61, 50, 59, 84, 67, 45, 75, 65, 84, 117, 55, 63, 58, 75, 82, 121, 54, 108, 71, 35, 99, 51, 77, 62, 92, 85, 56, 72, 60, 52, 68, 61, 84, 110, 63, 64, 63, 56, 72, 47, 66, 53, 78, 71, 67, 51, 91, 65, 54, 62, 50, 66, 55, 76, 71, 93, 59, 67, 54, 75, 68, 54, 53, 53, 84, 92, 86, 70, 74, 69, 57, 61, 62, 71, 76, 80, 69, 49, 56, 93, 61, 52, 70, 74, 68, 63, 55, 55, 42, 87, 64, 72, 71, 71, 75, 53, 61, 61, 55, 59, 59, 81, 49, 74, 68, 77, 62, 79, 90, 57, 51, 69, 74, 71, 47, 64, 69, 51, 64, 61, 88, 58, 50, 67, 59, 79, 87, 86, 68, 53, 70, 42, 62, 53, 55, 78, 71, 60, 67, 73, 37, 63, 68, 83, 72, 67, 84, 50, 39, 60, 60, 51, 73, 80, 70, 52, 59, 54, 69, 44, 70, 69, 63, 61, 63, 95, 72, 65, 45, 55, 75, 63, 61, 66, 60, 60, 68, 54, 70, 59, 70, 60, 79, 43, 101, 55, 55, 53, 69, 76, 72, 69, 73, 72, 62, 76, 62, 76, 74, 72, 63, 97, 61, 57, 67, 73, 58, 57, 59, 65, 71, 70, 93, 80, 79, 64, 45, 58, 65, 43, 55, 63, 50, 75, 59, 66, 73, 70, 62, 63, 57, 70, 86, 74, 76, 68, 56, 45, 71, 51, 67, 72, 48, 51, 55, 62, 67, 57, 98, 63, 57, 70, 54, 73, 62, 55, 49, 60, 70, 79, 62, 78, 53, 62, 73, 46, 96, 100, 43, 53, 51, 122, 65, 64, 87, 64, 79, 94, 66, 49, 79, 62, 85, 75, 56, 56, 50, 74, 71, 59, 53, 116, 78, 55, 69, 61, 66, 66, 70, 42, 106, 93, 63, 57, 60, 52, 67, 61, 76, 77, 84, 53, 50, 73, 45, 81, 41, 90, 53, 58, 84, 53, 65, 40, 59, 64, 68, 61, 49, 53, 76, 60, 48, 66, 69, 57, 102, 60, 59, 60, 61, 59, 46, 65, 52, 69, 78, 69, 63, 86, 63, 46, 67, 98, 75, 44, 73, 50, 66, 68, 57, 64, 62, 78, 79, 73, 77, 58, 63, 54, 56, 51, 67, 76, 57, 59, 54, 68, 103, 88, 54, 65, 73, 58, 67, 64, 63, 60, 45, 65, 75, 74, 55, 77, 62, 71, 65, 61, 71, 78, 69, 78, 45, 56, 37, 49, 92, 85, 63, 88, 72, 108, 70, 95, 64, 71, 62, 84, 46, 66, 82, 82, 74, 79, 65, 50, 75, 81, 88, 64, 59, 141, 68, 77, 92, 65, 92, 63, 68, 65, 59, 65, 72, 46, 93, 45, 91, 69, 62, 48, 61, 61, 60, 64, 47, 61, 49, 78, 59, 74, 66, 87, 94, 57, 77, 70, 66, 53, 69, 58, 61, 52, 69, 62, 108, 62, 48, 67, 84, 70, 63, 64, 73, 63, 60, 78, 56, 61, 75, 54, 49, 51, 51, 60, 52, 76, 72, 70, 50, 55, 54, 54, 39, 55, 83, 62, 59, 64, 77, 79, 62, 69, 65, 84, 63, 93, 78, 76, 102, 44, 84, 63, 69, 74, 64, 74, 68, 42, 48, 83, 81, 68, 42, 63, 48, 73, 71, 69, 68, 70, 75, 49, 60, 52, 83, 43, 56, 88, 68, 59, 75, 65, 88, 52, 66, 67, 64, 50, 54, 64, 51, 68, 66, 63, 57, 56, 57, 66, 95, 73, 63, 61, 54, 68, 87, 49, 59, 53, 58, 80, 72, 78, 67, 65, 56, 67, 71, 60, 68, 40, 55, 45, 94, 63, 66, 69, 62, 84, 61, 46, 66, 76, 69, 73, 59, 80, 62, 62, 79, 60, 46, 85, 71, 74, 54, 40, 88, 50, 111, 71, 89, 66, 67, 77, 58, 63, 72, 69, 70, 85, 62, 61, 70, 68, 68, 69, 59, 53, 72, 53, 48, 49, 65, 111, 58, 73, 63, 69, 62, 71, 43, 55, 91, 56, 81, 40, 61, 72, 56, 55, 70, 61, 61, 84, 64, 53, 79, 65, 53, 74, 53, 75, 51, 53, 67, 69, 68, 77, 63, 78, 56, 96, 53, 66, 69, 69, 59, 67, 54, 49, 57, 61, 38, 52, 70, 64, 60, 61, 57, 63, 75, 60, 59, 73, 88, 83, 62, 57, 66, 61, 67, 65, 50, 74, 76, 40, 73, 46, 61, 47, 44, 72, 54, 62, 121, 60, 51, 67, 74, 69, 47, 47, 85, 90, 52, 69, 65, 70, 52, 59, 50, 72, 77, 66, 47, 66, 40, 93, 61, 88, 69, 55, 64, 58, 69, 68, 67, 74, 72, 57, 78, 61, 56, 57, 115, 49, 59, 97, 71, 60, 79, 53, 53, 85, 60, 73, 58, 76, 74, 80, 81, 85, 66, 69, 72, 54, 67, 61, 73, 77, 70, 44, 67, 67, 69, 67, 71, 85, 26, 100, 59, 67, 86, 59, 49, 47, 62, 92, 147, 76, 52, 83, 51, 64, 71, 59, 64, 75, 64, 54, 69, 59, 54, 60, 49, 71, 46, 75, 78, 109, 47, 78, 68, 64, 86, 71, 73, 69, 78, 48, 84, 73, 49, 63, 81, 64, 49, 73, 54, 64, 79, 68, 73, 65, 60, 73, 96, 56, 68, 57, 76, 57, 65, 72, 86, 54, 62, 57, 63, 92, 67, 78, 79, 65, 58, 59, 62, 71, 67, 98, 47, 82, 53, 73, 55, 72, 69, 77, 57, 53, 71, 38, 89, 69, 67, 77, 79, 67, 65, 67, 56, 75, 53, 74, 65, 64, 69, 73, 79, 56, 54, 84, 74, 83, 79, 61, 109, 79, 88, 53, 64, 64, 61, 61, 40, 66, 86, 66, 47, 67, 57, 86, 63, 62, 76, 55, 69, 61, 73, 56, 63, 52, 69, 46, 59, 55, 56, 74, 68, 59, 82, 60, 65, 90, 53, 80, 73, 63, 58, 68, 72, 49, 83, 68, 50, 57, 58, 64, 55, 58, 63, 26, 67, 79, 52, 81, 68, 61, 56, 66, 54, 88, 99, 78, 62, 47, 72, 58, 56, 125, 94, 82, 64, 81, 62, 76, 79, 64, 71, 47, 74, 65, 51, 84, 70, 79, 70, 66, 48, 53, 80, 76, 47, 73, 59, 54, 62, 46, 91, 68, 77, 67, 73, 55, 54, 64, 66, 42, 66, 50, 68, 65, 48, 89, 73, 57, 72, 50, 58, 53, 65, 74, 80, 64, 67, 70, 61, 53, 63, 61, 73, 75, 59, 94, 71, 99, 100, 65, 58, 76, 84, 60, 69, 57, 51, 61, 55, 63, 57, 60, 63, 72, 61, 52, 68, 52, 89, 85, 52, 58, 64, 82, 74, 53, 60, 71, 69, 69, 88, 64, 88, 59, 53, 77, 63, 70, 51, 60, 52, 49, 66, 73, 58, 56, 46, 70, 81, 72, 68, 79, 55, 64, 76, 60, 69, 71, 42, 74, 81, 56, 74, 49, 57, 67, 72, 54, 50, 67, 80, 65, 70, 92, 62, 49, 59, 52, 78, 74, 84, 95, 75, 77, 79, 42, 52, 38, 55, 66, 56, 59, 65, 75, 41, 59, 70, 49, 59, 61, 62, 70, 81, 56, 54, 81, 57, 78, 75, 58, 44, 41, 51, 84, 73, 57, 72, 60, 74, 73, 78, 74, 53, 61, 75, 46, 80, 65, 68, 64, 68, 90, 44, 73, 66, 76, 68, 61, 64, 87, 70, 57, 50, 67, 87, 94, 73, 66, 80, 74, 91, 67, 73, 57, 63, 51, 52, 66, 76, 40, 56, 54, 50, 57, 60, 67, 53, 85, 55, 84, 48, 47, 78, 80, 30, 82, 51, 62, 69, 76, 79, 52, 69, 46, 82, 64, 57, 75, 66, 57, 70, 70, 71, 51, 69, 88, 79, 46, 54, 73, 59, 68, 72, 47, 43, 48, 46, 56, 60, 66, 71, 64, 61, 62, 59, 51, 47, 63, 63, 85, 84, 54, 45, 56, 48, 46, 70, 79, 63, 74, 81, 77, 61, 110, 49, 74, 58, 79, 83, 56, 70, 50, 79, 62, 66, 81, 60, 70, 85, 71, 85, 65, 93, 74, 67, 58, 59, 84, 63, 78, 70, 73, 77, 71, 74, 55, 64, 66, 70, 95, 68, 87, 61, 64, 48, 88, 87, 40, 49, 55, 52, 56, 55, 77, 64, 62, 46, 65, 83, 83, 48, 68, 79, 54, 57, 72, 82, 64, 45, 57, 79, 70, 55, 55, 51, 65, 42, 79, 52, 78, 81, 51, 70, 70, 59, 85, 56, 52, 69, 60, 76, 61, 60, 53, 56, 80, 59, 67, 78, 65, 70, 29, 52, 119, 63, 84, 63, 63, 69, 71, 58, 80, 43, 56, 48, 79, 53, 56, 63, 130, 57, 73, 61, 79, 71, 61, 71, 50, 53, 76, 72, 77, 60, 55, 58, 80, 97, 47, 85, 60, 73, 48, 89, 90, 68, 67, 67, 78, 61, 54, 60, 64, 36, 84, 80, 59, 69, 74, 65, 54, 80, 86, 51, 66, 71, 54, 71, 67, 74, 79, 101, 54, 73, 55, 64, 60, 48, 59, 73, 129, 67, 71, 69, 49, 99, 69, 58, 63, 73, 70, 81, 58, 41, 62, 63, 72, 74, 63, 95, 74, 74, 70, 71, 64, 82, 75, 43, 64, 51, 64, 98, 48, 55, 71, 51, 79, 42, 64, 52, 69, 70, 69, 54, 61, 59, 74, 63, 68, 59, 54, 56, 63, 74, 57, 68, 71, 70, 80, 61, 89, 63, 81, 55, 62, 64, 90, 53, 90, 93, 40, 56, 68, 102, 57, 113, 51, 77, 46, 76, 57, 63, 77, 71, 54, 100, 50, 56, 68, 81, 57, 109, 94, 77, 51, 73, 71, 85, 61, 70, 67, 48, 63, 61, 124, 47, 48, 65, 62, 106, 64, 58, 66, 42, 65, 82, 65, 80, 66, 63, 46, 52, 63, 75, 67, 52, 49, 93, 62, 62, 61, 62, 74, 67, 78, 76, 52, 82, 67, 53, 50, 54, 60, 79, 52, 74, 54, 62, 65, 53, 73, 85, 43, 72, 69, 77, 74, 103, 67, 64, 73, 88, 66, 79, 64, 71, 57, 61, 74, 47, 54, 59, 57, 83, 67, 87, 72, 66, 43, 77, 59, 56, 77, 37, 97, 59, 72, 75, 69, 58, 58, 39, 68, 67, 57, 79, 75, 78, 42, 67, 158, 59, 76, 62, 48, 61, 74, 78, 53, 83, 57, 66, 55, 60, 66, 61, 74, 73, 100, 66, 66, 84, 53, 58, 86, 44, 53, 59, 56, 73, 84, 72, 78, 57, 69, 58, 83, 53, 127, 57, 51, 77, 53, 55, 47, 57, 63, 72, 57, 61, 71, 64, 68, 49, 63, 63, 58, 59, 56, 67, 66, 79, 57, 65, 58, 68, 55, 85, 64, 57, 55, 52, 58, 50, 68, 84, 71, 64, 64, 49, 68, 142, 57, 63, 60, 67, 72, 74, 55, 67, 59, 70, 47, 69, 67, 81, 47, 56, 54, 75, 73, 67, 90, 63, 87, 72, 99, 59, 64, 52, 49, 56, 64, 67, 67, 51, 81, 49, 57, 72, 51, 91, 61, 65, 70, 75, 72, 58, 53, 69, 59, 68, 94, 58, 48, 62, 64, 46, 56, 74, 41, 72, 65, 46, 71, 62, 64, 65, 59, 54, 48, 58, 45, 55, 84, 41, 86, 84, 82, 45, 71, 65, 53, 55, 77, 69, 69, 77, 60, 49, 64, 68, 66, 77, 55, 42, 57, 58, 54, 72, 74, 61, 66, 25, 77, 66, 77, 77, 90, 69, 66, 101, 108, 48, 54, 77, 65, 82, 56, 52, 101, 85, 59, 63, 55, 45, 81, 66, 62, 50, 70, 52, 43, 77, 43, 72, 91, 55, 65, 53, 57, 89, 63, 67, 57, 70, 71, 65, 58, 44, 75, 77, 64, 54, 74, 70, 100, 47, 56, 68, 102, 64, 64, 106, 64, 69, 52, 66, 42, 62, 99, 87, 66, 68, 73, 66, 38, 63, 67, 53, 78, 74, 64, 62, 47, 78, 70, 52, 79, 78, 79, 53, 67, 95, 69, 74, 81, 59, 60, 60, 69, 61, 48, 79, 59, 63, 73, 58, 64, 67, 66, 54, 53, 64, 45, 91, 52, 63, 72, 67, 52, 52, 81, 64, 72, 47, 69, 67, 52, 56, 63, 64, 61, 93, 72, 61, 58, 67, 61, 68, 66, 65, 60, 68, 55, 75, 78, 71, 44, 76, 71, 68, 85, 48, 77, 54, 63, 83, 51, 83, 56, 67, 80, 71, 69, 55, 80, 89, 81, 62, 60, 51, 78, 75, 77, 57, 56, 106, 131, 116, 56, 51, 73, 44, 58, 64, 67, 62, 76, 57, 67, 73, 72, 57, 68, 54, 54, 68, 95, 55, 54, 76, 66, 64, 84, 60, 68, 74, 74, 51, 53, 74, 68, 56, 64, 79, 65, 55, 70, 63, 83, 59, 74, 57, 58, 41, 52, 50, 61, 61, 86, 49, 66, 65, 62, 60, 84, 74, 51, 59, 49, 56, 56, 50, 45, 60, 58, 67, 45, 48, 77, 57, 64, 94, 89, 45, 61, 57, 65, 93, 50, 81, 63, 38, 82, 121, 65, 61, 53, 49, 96, 58, 58, 64, 69, 69, 66, 62, 60, 67, 93, 52, 66, 64, 52, 69, 59, 54, 70, 62, 49, 90, 75, 79, 75, 72, 71, 49, 80, 77, 56, 48, 80, 55, 58, 69, 67, 73, 86, 87, 66, 67, 66, 68, 57, 65, 75, 67, 59, 81, 60, 94, 78, 49, 60, 52, 53, 64, 106, 67, 65, 104, 65, 62, 52, 71, 61, 57, 50, 66, 88, 70, 73, 71, 68, 81, 80, 54, 65, 57, 64, 61, 88, 64, 59, 72, 47, 62, 51, 92, 67, 52, 62, 59, 63, 42, 90, 81, 60, 74, 109, 78, 75, 78, 50, 43, 35, 46, 63, 62, 84, 55, 81, 81, 72, 62, 57, 79, 48, 69, 48, 59, 59, 50, 63, 61, 95, 58, 72, 54, 60, 60, 67, 53, 58, 65, 65, 64, 70, 34, 71, 90, 39, 91, 94, 63, 85, 58, 87, 66, 63, 51, 60, 67, 56, 71, 81, 62, 63, 87, 61, 68, 58, 76, 63, 68, 67, 58, 85, 64, 60, 67, 75, 54, 55, 61, 68, 80, 58, 40, 65, 55, 61, 55, 61, 57, 65, 64, 60, 69, 47, 58, 63, 61, 50, 66, 54, 53, 102, 62, 79, 50, 86, 49, 70, 64, 55, 74, 60, 47, 62, 86, 63, 90, 55, 89, 42, 56, 60, 54, 47, 59, 118, 47, 52, 57, 52, 52, 51, 86, 60, 49, 64, 71, 58, 67, 62, 61, 71, 66, 64, 93, 63, 99, 73, 82, 78, 95, 55, 46, 63, 67, 52, 56, 77, 63, 59, 55, 78, 66, 46, 62, 49, 72, 51, 64, 84, 60, 74, 60, 39, 65, 54, 57, 70, 92, 58, 64, 87, 68, 67, 70, 49, 55, 56, 97, 63, 58, 72, 67, 57, 58, 52, 90, 73, 67, 44, 70, 124, 57, 88, 49, 89, 53, 57, 66, 77, 102, 57, 76, 57, 43, 51, 60, 99, 74, 80, 62, 83, 31, 78, 63, 57, 56, 56, 61, 55, 63, 54, 44, 48, 50, 58, 53, 68, 52, 99, 76, 71, 51, 86, 74, 61, 81, 66, 70, 113, 42, 55, 64, 69, 91, 47, 94, 66, 61, 67, 56, 61, 54, 52, 75, 57, 68, 35, 78, 92, 62, 58, 57, 69, 69, 80, 57, 77, 62, 61, 52, 61, 69, 54, 82, 72, 64, 42, 62, 81, 66, 67, 51, 57, 57, 70, 53, 106, 70, 77, 80, 69, 91, 44, 59, 44, 62, 53, 55, 58, 84, 57, 65, 78, 90, 146, 69, 61, 78, 60, 65, 52, 66, 55, 62, 71, 78, 69, 40, 49, 77, 68, 76, 72, 85, 62, 48, 47, 79, 62, 66, 86, 72, 72, 68, 51, 64, 65, 64, 82, 54, 84, 68, 71, 106, 93, 81, 56, 76, 76, 52, 63, 78, 63, 58, 58, 51, 70, 50, 97, 83, 63, 49, 63, 58, 57, 38, 57, 66, 86, 45, 46, 69, 32, 37, 46, 47, 59, 52, 72, 48, 71, 43, 64, 68, 66, 73, 66, 61, 54, 60, 87, 63, 72, 75, 75, 68, 53, 60, 59, 54, 53, 62, 76, 48, 73, 59, 69, 54, 60, 74, 62, 89, 120, 51, 79, 54, 53, 73, 52, 75, 52, 51, 73, 75, 38, 96, 49, 59, 46, 61, 142, 64, 58, 84, 61, 70, 51, 74, 66, 70, 56, 90, 92, 57, 68, 64, 57, 50, 50, 70, 56, 69, 68, 57, 65, 95, 60, 99, 60, 50, 58, 57, 56, 59, 49, 60, 76, 57, 72, 59, 59, 57, 56, 64, 62, 80, 54, 72, 84, 49, 72, 58, 56, 45, 61, 48, 74, 48, 95, 56, 50, 59, 52, 69, 55, 58, 51, 72, 70, 63, 79, 68, 68, 55, 51, 65, 56, 58, 73, 85, 74, 64, 62, 49, 65, 55, 76, 83, 50, 97, 82, 84, 62, 49, 20, 56, 38, 57, 74, 61, 44, 81, 68, 88, 62, 66, 47, 49, 65, 68, 52, 60, 91, 53, 92, 46, 68, 60, 38, 59, 51, 57, 76, 61, 68, 83, 71, 39, 76, 52, 74, 71, 63, 61, 69, 62, 45, 68, 87, 54, 85, 63, 59, 90, 42, 68, 60, 79, 62, 63, 54, 61, 98, 97, 55, 60, 63, 73, 69, 57, 53, 46, 53, 51, 102, 79, 70, 62, 80, 47, 51, 57, 56, 71, 48, 62, 82, 65, 57, 44, 62, 64, 62, 68, 60, 79, 75, 73, 97, 61, 94, 76, 71, 57, 60, 76, 58, 44, 52, 64, 77, 57, 53, 109, 66, 52, 46, 66, 73, 51, 67, 63, 60, 53, 57, 73, 63, 79, 85, 65, 58, 127, 67, 38, 51, 79, 51, 87, 70, 65, 50, 75, 60, 72, 82, 50, 59, 65, 64, 65, 47, 82, 72, 72, 54, 107, 59, 71, 93, 36, 52, 37, 55, 44, 83, 57, 74, 53, 52, 78, 86, 71, 49, 56, 60, 49, 79, 51, 64, 67, 56, 52, 35, 60, 43, 92, 65, 53, 63, 64, 75, 58, 77, 54, 68, 63, 77, 58, 74, 78, 55, 41, 61, 67, 50, 66, 55, 74, 45, 60, 79, 68, 60, 67, 58, 52, 65, 68, 73, 50, 83, 72, 70, 67, 84, 57, 57, 148, 91, 63, 43, 58, 76, 101, 105, 52, 58, 60, 57, 58, 71, 68, 65, 58, 101, 74, 83, 53, 77, 50, 83, 53, 79, 51, 59, 69, 37, 36, 45, 67, 77, 61, 85, 68, 52, 52, 57, 50, 95, 68, 57, 49, 64, 71, 43, 44, 63, 78, 65, 61, 61, 53, 86, 103, 74, 69, 85, 68, 63, 62, 69, 70, 81, 85, 69, 92, 61, 76, 48, 112, 66, 49, 114, 55, 119, 53, 59, 61, 52, 79, 61, 42, 55, 54, 61, 70, 65, 79, 50, 50, 80, 67, 48, 55, 69, 80, 54, 45, 79, 86, 92, 57, 36, 68, 42, 54, 74, 59, 58, 49, 75, 48, 45, 80, 57, 44, 48, 73, 55, 66, 72, 68, 89, 70, 78, 83, 68, 52, 69, 58, 86, 76, 55, 52, 54, 75, 70, 51, 50, 79, 55, 68, 82, 90, 66, 57, 88, 45, 49, 71, 51, 64, 50, 71, 64, 53, 69, 81, 70, 64, 61, 36, 66, 73, 64, 75, 70, 54, 59, 74, 71, 71, 81, 66, 64, 73, 71, 56, 54, 71, 62, 57, 77, 54, 54, 73, 72, 65, 82, 60, 96, 61, 61, 61, 110, 124, 54, 69, 60, 67, 56, 55, 40, 56, 63, 87, 61, 90, 49, 40, 61, 65, 93, 88, 66, 62, 79, 55, 74, 76, 43, 72, 76, 60, 61, 46, 66, 59, 92, 45, 87, 76, 77, 71, 54, 52, 64, 69, 75, 100, 49, 67, 63, 77, 84, 62, 70, 80, 46, 62, 77, 78, 78, 50, 78, 64, 49, 46, 40, 63, 97, 69, 47, 53, 59, 63, 74, 70, 56, 71, 67, 59, 80, 84, 42, 73, 67, 115, 65, 93, 60, 51, 46, 70, 64, 54, 69, 126, 90, 53, 70, 55, 92, 66, 62, 70, 62, 59, 58, 62, 49, 47, 64, 72, 59, 75, 114, 84, 52, 59, 106, 62, 67, 42, 84, 69, 51, 55, 58, 69, 55, 83, 62, 68, 64, 64, 55, 74, 44, 44, 75, 56, 59, 64, 85, 54, 54, 59, 46, 94, 64, 95, 78, 67, 64, 96, 83, 78, 73, 77, 61, 73, 94, 64, 63, 65, 65, 145, 64, 81, 91, 63, 53, 49, 51, 64, 63, 68, 56, 67, 61, 63, 41, 66, 74, 37, 123, 82, 71, 53, 79, 71, 52, 51, 66, 71, 49, 74, 67, 54, 56, 71, 82, 86, 86, 93, 66, 40, 59, 77, 65, 71, 55, 72, 75, 91, 53, 67, 71, 69, 63, 76, 61, 67, 74, 55, 59, 46, 74, 54, 58, 65, 68, 73, 71, 65, 76, 55, 77, 88, 76, 68, 62, 44, 63, 45, 89, 53, 50, 53, 48, 50, 70, 46, 60, 74, 59, 78, 57, 82, 106, 54, 76, 78, 54, 63, 115, 55, 72, 56, 68, 84, 60, 56, 62, 63, 49, 54, 61, 78, 72, 68, 65, 60, 62, 69, 62, 106, 53, 62, 67, 66, 72, 79, 79, 81, 66, 100, 43, 54, 77, 72, 76, 57, 85, 52, 62, 42, 68, 101, 106, 47, 54, 75, 72, 69, 58, 70, 66, 56, 70, 90, 51, 67, 34, 47, 55, 93, 79, 93, 40, 67, 71, 63, 62, 73, 69, 86, 98, 75, 55, 49, 47, 60, 74, 102, 56, 57, 78, 86, 64, 98, 50, 62, 69, 60, 61, 87, 65, 64, 74, 51, 60, 63, 65, 85, 75, 62, 107, 32, 83, 67, 49, 55, 66, 53, 74, 50, 75, 53, 61, 45, 40, 107, 89, 60, 41, 50, 60, 105, 62, 64, 73, 75, 74, 53, 61, 55, 68, 65, 72, 58, 57, 77, 65, 57, 54, 66, 72, 99, 64, 57, 67, 51, 44, 97, 99, 48, 56, 63, 91, 45, 76, 63, 110, 61, 73, 93, 62, 68, 85, 97, 47, 65, 46, 62, 71, 73, 70, 57, 65, 104, 61, 96, 78, 65, 54, 56, 92, 77, 72, 46, 113, 60, 46, 84, 75, 67, 60, 44, 98, 51, 41, 86, 57, 117, 60, 70, 59, 63, 79, 62, 53, 68, 97, 50, 53, 77, 78, 63, 62, 61, 75, 87, 68, 51, 74, 58, 54, 77, 58, 56, 70, 52, 84, 60, 76, 55, 69, 81, 54, 84, 58, 62, 60, 72, 71, 54, 62, 107, 64, 59, 59, 71, 72, 62, 86, 47, 88, 58, 110, 79, 54, 57, 77, 64, 55, 59, 53, 62, 63, 69, 64, 76, 50, 45, 79, 65, 51, 58, 74, 54, 73, 68, 69, 59, 97, 59, 56, 55, 95, 62, 40, 49, 59, 56, 62, 62, 77, 75, 48, 61, 63, 58, 73, 49, 59, 114, 75, 49, 52, 56, 53, 71, 43, 49, 51, 63, 47, 51, 85, 75, 70, 64, 94, 94, 52, 70, 61, 66, 61, 75, 87, 83, 63, 76, 72, 73, 52, 66, 90, 84, 69, 85, 67, 55, 55, 53, 63, 72, 45, 59, 64, 57, 72, 62, 54, 69, 46, 67, 59, 78, 81, 74, 75, 55, 62, 73, 53, 61, 47, 69, 60, 72, 51, 122, 95, 55, 69, 55, 56, 54, 81, 67, 79, 45, 67, 53, 61, 61, 64, 48, 142, 61, 46, 66, 75, 49, 66, 62, 86, 64, 70, 58, 52, 92, 99, 46, 68, 75, 87, 88, 39, 56, 60, 43, 47, 63, 44, 86, 70, 45, 61, 82, 101, 78, 43, 69, 109, 54, 65, 73, 64, 64, 52, 67, 51, 59, 81, 47, 58, 62, 100, 45, 60, 91, 57, 70, 67, 86, 61, 72, 79, 53, 46, 68, 82, 73, 71, 61, 60, 47, 57, 52, 64, 60, 87, 115, 51, 63, 46, 68, 59, 64, 72, 56, 60, 92, 62, 60, 89, 56, 81, 60, 76, 94, 76, 90, 84, 63, 83, 46, 53, 63, 54, 70, 59, 66, 39, 87, 97, 68, 57, 47, 54, 43, 71, 102, 60, 60, 56, 65, 48, 42, 70, 77, 72, 52, 57, 64, 86, 78, 47, 68, 58, 55, 50, 56, 67, 72, 73, 51, 79, 53, 81, 62, 51, 51, 77, 47, 88, 67, 46, 51, 58, 63, 51, 54, 64, 69, 110, 33, 51, 69, 57, 54, 64, 57, 42, 78, 69, 64, 64, 53, 58, 52, 97, 31, 53, 59, 67, 49, 97, 77, 97, 54, 66, 55, 87, 58, 54, 61, 59, 57, 67, 67, 81, 58, 52, 72, 66, 50, 65, 97, 72, 97, 53, 65, 55, 76, 38, 44, 44, 89, 62, 48, 60, 95, 69, 68, 51, 77, 63, 58, 69, 99, 63, 60, 77, 59, 80, 71, 59, 78, 61, 77, 72, 55, 57, 53, 53, 64, 106, 63, 51, 92, 63, 89, 84, 57, 60, 44, 60, 58, 63, 52, 69, 66, 58, 58, 77, 54, 68, 38, 63, 95, 59, 60, 83, 102, 88, 47, 66, 87, 51, 105, 86, 67, 94, 64, 104, 61, 61, 71, 66, 72, 63, 61, 71, 63, 64, 52, 62, 40, 58, 77, 40, 55, 54, 110, 72, 52, 76, 82, 75, 68, 61, 51, 86, 63, 74, 68, 62, 63, 72, 68, 62, 60, 49, 55, 61, 75, 85, 72, 67, 128, 54, 61, 75, 67, 45, 51, 45, 62, 75, 57, 58, 69, 41, 72, 74, 76, 67, 84, 87, 81, 50, 62, 82, 65, 103, 52, 51, 79, 62, 54, 64, 61, 73, 75, 45, 75, 63, 51, 92, 98, 79, 34, 57, 81, 140, 53, 50, 52, 85, 91, 48, 71, 49, 80, 66, 54, 73, 68, 63, 112, 51, 116, 67, 70, 50, 72, 76, 70, 86, 99, 71, 79, 74, 72, 91, 71, 62, 69, 34, 72, 67, 64, 64, 34, 77, 76, 69, 84, 60, 49, 51, 76, 78, 55, 79, 63, 69, 67, 63, 56, 72, 63, 58, 57, 94, 76, 66, 61, 64, 47, 72, 65, 50, 46, 52, 51, 67, 84, 96, 56, 85, 59, 52, 82, 74, 70, 49, 78, 70, 64, 38, 86, 59, 68, 55, 60, 53, 63, 54, 82, 42, 85, 52, 52, 52, 98, 64, 62, 99, 69, 59, 62, 56, 65, 56, 61, 68, 80, 81, 68, 59, 58, 60, 63, 56, 69, 76, 69, 57, 49, 40, 68, 53, 71, 38, 61, 48, 46, 66, 70, 70, 80, 78, 61, 96, 50, 48, 65, 57, 75, 53, 57, 80, 68, 63, 59, 54, 67, 57, 57, 60, 67, 65, 67, 60, 54, 57, 45, 49, 68, 65, 107, 81, 51, 71, 40, 73, 67, 61, 88, 75, 66, 74, 66, 60, 79, 60, 86, 47, 61, 64, 79, 68, 62, 69, 80, 91, 64, 59, 66, 100, 56, 65, 58, 62, 63, 64, 69, 57, 62, 76, 48, 66, 61, 60, 42, 82, 59, 55, 55, 71, 74, 62, 118, 97, 67, 69, 68, 52, 62, 59, 49, 50, 57, 84, 61, 34, 77, 87, 62, 51, 62, 65, 54, 36, 77, 46, 59, 85, 59, 77, 86, 81, 66, 54, 58, 56, 64, 53, 32, 68, 87, 52, 59, 46, 51, 88, 46, 62, 43, 52, 61, 96, 66, 51, 85, 55, 66, 58, 55, 56, 82, 60, 59, 87, 85, 61, 77, 74, 73, 63, 67, 82, 90, 87, 90, 75, 75, 79, 62, 45, 76, 70, 33, 63, 54, 56, 65, 76, 73, 48, 70, 48, 50, 43, 74, 67, 63, 60, 55, 83, 46, 57, 64, 65, 64, 60, 73, 59, 56, 93, 52, 44, 85, 76, 69, 46, 108, 54, 65, 59, 97, 74, 49, 61, 64, 54, 71, 71, 68, 68, 81, 60, 55, 81, 75, 51, 71, 66, 50, 45, 81, 58, 112, 67, 52, 79, 67, 76, 63, 59, 69, 66, 52, 61, 53, 83, 53, 65, 59, 89, 57, 85, 53, 66, 82, 68, 60, 70, 68, 79, 80, 77, 56, 59, 76, 48, 67, 65, 73, 77, 79, 54, 59, 59, 60, 71, 83, 64, 56, 53, 69, 63, 63, 73, 54, 62, 53, 63, 47, 70, 64, 79, 66, 93, 52, 78, 53, 84, 74, 91, 71, 191, 51, 73, 77, 68, 85, 49, 105, 60, 65, 66, 68, 75, 59, 61, 77, 64, 60, 64, 59, 58, 64, 58, 57, 62, 60, 66, 61, 67, 55, 63, 69, 62, 54, 82, 48, 54, 81, 63, 55, 78, 78, 57, 51, 52, 57, 57, 63, 62, 61, 81, 90, 67, 71, 69, 64, 64, 113, 51, 87, 63, 70, 65, 67, 63, 48, 53, 76, 85, 75, 56, 47, 62, 89, 56, 67, 40, 65, 71, 58, 74, 52, 62, 76, 60, 50, 60, 74, 49, 77, 52, 72, 54, 59, 78, 70, 78, 69, 61, 56, 69, 65, 49, 70, 58, 39, 93, 91, 58, 88, 42, 38, 45, 41, 60, 79, 72, 57, 58, 64, 59, 75, 84, 59, 41, 48, 66, 77, 64, 55, 58, 47, 73, 60, 72, 98, 69, 65, 48, 59, 70, 49, 55, 74, 63, 66, 58, 83, 39, 54, 60, 72, 71, 61, 67, 73, 88, 74, 50, 65, 65, 73, 58, 65, 74, 83, 62, 66, 76, 48, 60, 107, 68, 80, 66, 65, 62, 80, 69, 63, 68, 62, 42, 58, 75, 60, 58, 70, 51, 65, 54, 52, 51, 67, 64, 70, 65, 80, 68, 65, 43, 73, 64, 74, 77, 77, 67, 51, 66, 63, 64, 56, 69, 48, 71, 67, 70, 71, 78, 66, 57, 51, 63, 55, 69, 90, 51, 56, 50, 80, 68, 49, 51, 54, 81, 52, 70, 71, 65, 68, 75, 48, 58, 62, 81, 65, 79, 55, 64, 77, 75, 113, 77, 70, 60, 64, 52, 48, 54, 75, 66, 60, 59, 73, 68, 76, 70, 73, 65, 66, 72, 64, 51, 61, 73, 70, 54, 75, 68, 66, 65, 78, 73, 64, 61, 78, 81, 58, 64, 81, 51, 88, 78, 82, 72, 60, 65, 77, 59, 59, 75, 58, 46, 51, 63, 55, 62, 67, 49, 60, 58, 56, 60, 54, 70, 108, 65, 62, 55, 79, 94, 86, 112, 57, 50, 54, 75, 64, 64, 86, 63, 71, 74, 81, 58, 61, 62, 63, 78, 67, 82, 62, 68, 58, 55, 66, 67, 67, 47, 59, 61, 71, 57, 69, 70, 58, 94, 68, 86, 84, 59, 131, 67, 61, 57, 77, 74, 59, 46, 86, 63, 68, 91, 63, 77, 95, 51, 79, 78, 60, 68, 67, 69, 52, 60, 57, 65, 56, 67, 79, 58, 44, 86, 64, 56, 53, 58, 49, 77, 72, 62, 60, 57, 51, 56, 66, 47, 68, 71, 54, 57, 69, 88, 63, 49, 69, 104, 50, 81, 60, 65, 59, 76, 79, 86, 72, 61, 68, 118, 62, 61, 66, 87, 57, 71, 68, 79, 67, 76, 73, 107, 54, 64, 71, 60, 55, 66, 69, 66, 43, 87, 65, 80, 67, 43, 69, 76, 83, 48, 55, 49, 78, 59, 58, 63, 61, 51, 59, 69, 72, 56, 53, 39, 80, 57, 50, 70, 85, 55, 60, 80, 68, 62, 80, 85, 79, 56, 62, 60, 48, 63, 102, 64, 59, 68, 58, 69, 56, 49, 47, 67, 63, 74, 83, 70, 67, 55, 83, 54, 65, 53, 60, 52, 86, 61, 58, 57, 74, 57, 67, 65, 65, 53, 81, 62, 62, 68, 73, 57, 50, 60, 55, 56, 65, 75, 63, 55, 77, 56, 81, 53, 74, 73, 74, 65, 71, 61, 50, 64, 54, 81, 78, 62, 60, 78, 74, 69, 59, 65, 73, 59, 76, 66, 54, 62, 45, 74, 67, 68, 53, 73, 84, 61, 68, 74, 65, 63, 78, 60, 72, 49, 68, 46, 72, 61, 62, 58, 86, 87, 73, 44, 76, 68, 64, 63, 81, 82, 59, 71, 71, 76, 73, 58, 69, 126, 45, 47, 47, 57, 59, 57, 88, 53, 75, 82, 42, 68, 90, 65, 56, 94, 79, 59, 73, 54, 70, 66, 44, 68, 84, 55, 49, 73, 73, 66, 53, 62, 64, 57, 83, 65, 69, 62, 68, 80, 62, 59, 99, 72, 47, 81, 61, 62, 63, 71, 48, 60, 72, 61, 50, 70, 48, 74, 73, 59, 59, 59, 58, 59, 84, 75, 59, 42, 70, 61, 79, 71, 65, 54, 56, 84, 74, 95, 66, 40, 70, 49, 49, 53, 85, 55, 49, 74, 59, 75, 58, 52, 87, 66, 112, 66, 93, 68, 61, 76, 63, 57, 61, 86, 58, 67, 82, 69, 68, 72, 53, 76, 89, 65, 68, 67, 76, 62, 60, 75, 61, 59, 67, 66, 65, 138, 67, 77, 74, 54, 62, 60, 82, 81, 67, 44, 75, 45, 81, 77, 58, 61, 73, 71, 56, 52, 76, 56, 54, 80, 48, 51, 57, 35, 48, 55, 53, 53, 96, 60, 58, 90, 54, 96, 70, 65, 67, 90, 59, 74, 63, 58, 74, 63, 79, 55, 75, 69, 70, 62, 56, 63, 73, 89, 58, 66, 73, 59, 69, 80, 64, 63, 56, 71, 59, 76, 68, 56, 68, 70, 78, 53, 63, 71, 53, 47, 84, 55, 70, 71, 70, 54, 77, 59, 92, 53, 62, 77, 94, 65, 72, 91, 74, 60, 78, 63, 60, 63, 72, 82, 55, 57, 69, 71, 65, 82, 62, 67, 59, 40, 52, 104, 65, 66, 66, 69, 84, 85, 70, 62, 65, 64, 65, 78, 81, 61, 63, 88, 58, 71, 58, 62, 71, 64, 65, 90, 60, 53, 77, 74, 77, 89, 73, 67, 43, 49, 56, 71, 65, 51, 61, 65, 58, 74, 71, 50, 62, 66, 70, 95, 83, 65, 86, 75, 54, 50, 74, 89, 71, 76, 67, 61, 54, 66, 61, 55, 55, 66, 83, 69, 61, 72, 72, 106, 109, 64, 76, 132, 70, 71, 83, 74, 91, 57, 71, 64, 57, 60, 65, 69, 96, 107, 52, 58, 104, 56, 81, 49, 57, 66, 50, 57, 79, 76, 76, 70, 59, 83, 43, 81, 60, 46, 51, 58, 56, 39, 73, 62, 56, 69, 80, 55, 55, 56, 88, 65, 71, 67, 70, 92, 72, 72, 65, 62, 57, 100, 53, 71, 63, 101, 73, 48, 71, 53, 73, 58, 95, 66, 78, 64, 73, 67, 67, 51, 97, 91, 68, 67, 68, 63, 67, 69, 60, 75, 57, 49, 54, 74, 66, 87, 72, 74, 61, 55, 49, 72, 59, 62, 56, 70, 68, 49, 76, 65, 74, 68, 53, 63, 61, 140, 79, 56, 67, 48, 90, 61, 49, 66, 61, 60, 50, 47, 80, 68, 48, 75, 47, 63, 56, 72, 77, 65, 70, 82, 57, 68, 51, 61, 63, 58, 88, 59, 76, 44, 56, 71, 61, 43, 39, 77, 66, 86, 72, 90, 65, 79, 72, 45, 66, 59, 51, 68, 57, 75, 79, 64, 64, 68, 50, 66, 75, 54, 91, 53, 70, 51, 63, 53, 46, 88, 56, 63, 75, 92, 53, 63, 84, 74, 73, 63, 78, 45, 64, 51, 65, 74, 48, 49, 57, 56, 53, 71, 75, 66, 52, 67, 82, 52, 67, 67, 61, 92, 63, 42, 69, 58, 79, 74, 83, 69, 53, 81, 73, 52, 81, 53, 51, 69, 41, 51, 51, 57, 53, 58, 67, 49, 72, 68, 96, 76, 53, 55, 66, 72, 63, 71, 65, 49, 52, 57, 49, 70, 59, 63, 79, 63, 69, 83, 66, 90, 71, 46, 84, 48, 71, 82, 40, 77, 69, 60, 53, 72, 59, 64, 59, 60, 60, 70, 76, 55, 63, 52, 73, 105, 76, 80, 75, 52, 52, 54, 66, 62, 57, 79, 65, 54, 55, 72, 62, 63, 58, 70, 75, 76, 69, 88, 80, 66, 57, 55, 65, 65, 66, 56, 58, 53, 53, 60, 60, 58, 86, 62, 72, 70, 78, 87, 112, 66, 55, 63, 63, 50, 59, 41, 68, 57, 87, 84, 58, 64, 50, 54, 53, 75, 72, 77, 66, 61, 55, 84, 53, 66, 88, 66, 71, 78, 40, 62, 44, 72, 65, 56, 81, 54, 67, 52, 75, 50, 61, 70, 61, 60, 67, 56, 69, 149, 76, 62, 49, 87, 66, 72, 59, 70, 71, 69, 57, 59, 76, 63, 55, 63, 71, 81, 55, 58, 56, 62, 73, 51, 83, 53, 80, 68, 69, 55, 71, 48, 68, 53, 71, 69, 75, 70, 63, 69, 51, 53, 57, 59, 58, 67, 48, 88, 68, 64, 63, 62, 65, 59, 45, 66, 55, 84, 73, 68, 59, 67, 57, 70, 81, 63, 70, 52, 45, 78, 44, 90, 58, 67, 89, 62, 72, 72, 59, 70, 65, 59, 75, 55, 81, 74, 65, 115, 67, 61, 89, 57, 57, 61, 67, 68, 144, 65, 64, 48, 45, 71, 66, 36, 71, 68, 38, 75, 73, 59, 83, 61, 66, 64, 74, 52, 60, 55, 86, 84, 64, 80, 78, 60, 63, 71, 67, 95, 48, 58, 64, 66, 44, 47, 40, 50, 59, 62, 44, 69, 66, 47, 71, 82, 63, 61, 53, 72, 58, 42, 62, 78, 74, 71, 60, 70, 55, 55, 73, 74, 75, 76, 73, 54, 49, 68, 62, 61, 60, 68, 51, 62, 69, 78, 44, 57, 53, 51, 86, 37, 67, 49, 71, 72, 74, 48, 64, 59, 57, 109, 53, 76, 60, 67, 64, 45, 72, 62, 52, 69, 97, 62, 76, 51, 63, 76, 52, 74, 55, 58, 84, 76, 67, 64, 84, 55, 62, 76, 73, 64, 56, 58, 75, 95, 73, 65, 58, 66, 66, 78, 75, 55, 98, 51, 56, 77, 70, 75, 98, 45, 53, 58, 64, 75, 72, 85, 72, 61, 51, 56, 74, 51, 64, 56, 90, 41, 68, 69, 58, 69, 71, 77, 49, 86, 60, 71, 50, 51, 68, 47, 76, 71, 71, 62, 72, 46, 47, 54, 65, 59, 51, 62, 71, 55, 78, 69, 72, 60, 68, 56, 59, 71, 50, 58, 61, 66, 58, 68, 49, 53, 55, 59, 64, 62, 60, 106, 47, 56, 80, 58, 80, 89, 76, 65, 56, 55, 67, 60, 62, 53, 58, 70, 71, 69, 71, 82, 44, 79, 73, 60, 57, 50, 71, 54, 80, 48, 79, 88, 63, 67, 70, 63, 53, 51, 50, 74, 111, 66, 63, 63, 55, 49, 66, 42, 50, 71, 53, 72, 99, 63, 74, 66, 48, 53, 52, 93, 52, 81, 53, 77, 53, 64, 81, 44, 65, 63, 85, 71, 61, 71, 51, 57, 58, 68, 109, 71, 63, 27, 60, 76, 78, 78, 93, 68, 71, 54, 67, 82, 55, 69, 93, 79, 71, 70, 88, 80, 54, 56, 79, 66, 78, 52, 56, 66, 80, 78, 67, 59, 47, 76, 74, 55, 39, 61, 48, 49, 57, 54, 58, 91, 88, 53, 60, 62, 48, 63, 58, 84, 62, 77, 57, 60, 89, 68, 53, 98, 75, 64, 80, 62, 80, 71, 71, 67, 45, 55, 54, 70, 70, 57, 69, 61, 42, 61, 69, 65, 45, 60, 66, 50, 62, 75, 55, 70, 63, 60, 67, 75, 52, 96, 93, 53, 48, 61, 46, 73, 65, 48, 51, 76, 92, 64, 61, 52, 73, 74, 67, 77, 96, 72, 83, 80, 52, 67, 54, 67, 92, 74, 66, 70, 49, 65, 81, 98, 94, 58, 65, 47, 96, 54, 42, 84, 68, 55, 58, 65, 102, 53, 71, 75, 55, 67, 68, 51, 38, 62, 86, 66, 82, 76, 53, 68, 103, 60, 53, 44, 77, 74, 60, 76, 72, 61, 67, 71, 46, 52, 53, 66, 55, 67, 57, 62, 58, 54, 68, 70, 68, 76, 114, 63, 41, 104, 53, 47, 75, 51, 79, 97, 70, 77, 70, 49, 64, 58, 85, 91, 64, 58, 71, 58, 79, 71, 77, 73, 74, 46, 75, 54, 77, 43, 57, 60, 71, 57, 52, 71, 82, 70, 56, 49, 60, 107, 48, 81, 48, 67, 66, 77, 85, 72, 43, 60, 64, 68, 58, 75, 85, 62, 48, 66, 59, 68, 68, 64, 61, 53, 55, 66, 107, 50, 83, 76, 81, 59, 71, 68, 65, 65, 71, 72, 59, 60, 92, 93, 67, 66, 55, 53, 66, 59, 88, 53, 124, 59, 61, 46, 64, 93, 57, 84, 67, 69, 64, 74, 59, 70, 60, 61, 57, 36, 78, 61, 56, 60, 168, 53, 75, 100, 106, 97, 89, 78, 56, 75, 52, 68, 91, 64, 94, 54, 60, 70, 68, 74, 57, 83, 58, 73, 61, 55, 58, 61, 58, 81, 64, 78, 72, 74, 70, 79, 66, 58, 107, 73, 65, 61, 67, 70, 60, 67, 65, 49, 59, 64, 45, 56, 64, 93, 59, 71, 61, 76, 55, 65, 68, 94, 68, 62, 74, 49, 66, 38, 62, 59, 68, 71, 65, 54, 79, 76, 67, 54, 82, 78, 76, 86, 68, 69, 77, 45, 68, 64, 66, 62, 66, 60, 62, 66, 59, 66, 73, 67, 69, 80, 62, 64, 61, 62, 60, 77, 69, 54, 65, 59, 67, 50, 71, 56, 55, 61, 55, 65, 57, 54, 66, 55, 59, 60, 97, 68, 61, 61, 65, 47, 59, 62, 48, 66, 60, 58, 59, 57, 48, 87, 63, 56, 67, 58, 50, 76, 68, 50, 52, 54, 62, 68, 47, 84, 62, 50, 75, 45, 60, 61, 60, 63, 106, 60, 65, 59, 62, 72, 57, 51, 69, 60, 65, 62, 63, 73, 60, 49, 73, 63, 73, 72, 66, 72, 56, 69, 77, 57, 69, 54, 59, 60, 78, 58, 60, 68, 61, 63, 64, 66, 78, 61, 84, 78, 58, 67, 83, 74, 78, 58, 70, 66, 60, 76, 76, 135, 54, 84, 64, 52, 71, 84, 69, 79, 63, 56, 81, 71, 68, 76, 58, 64, 72, 105, 62, 60, 46, 63, 55, 75, 91, 81, 131, 63, 55, 62, 77, 95, 61, 52, 54, 63, 64, 58, 67, 62, 94, 55, 58, 57, 50, 48, 54, 70, 70, 65, 63, 94, 59, 51, 62, 64, 76, 58, 66, 72, 55, 56, 76, 62, 60, 59, 61, 48, 58, 68, 65, 48, 69, 70, 61, 62, 64, 76, 75, 55, 64, 60, 69, 75, 62, 63, 61, 61, 63, 64, 60, 72, 53, 55, 74, 53, 59, 67, 61, 54, 72, 70, 52, 60, 59, 71, 77, 71, 55, 85, 69, 68, 51, 72, 54, 70, 60, 57, 56, 62, 75, 63, 57, 61, 63, 63, 53, 74, 68, 52, 72, 70, 63, 67, 65, 50, 67, 58, 80, 62, 73, 63, 68, 61, 49, 70, 61, 68, 58, 61, 64, 67, 59, 71, 81, 64, 64, 55, 71, 80, 58, 54, 66, 62, 76, 56, 55, 51, 62, 58, 64, 59, 53, 79, 59, 74, 66, 64, 89, 65, 62, 50, 39, 61, 58, 47, 67, 91, 59, 56, 74, 57, 81, 64, 69, 70, 61, 76, 77, 66, 59, 54, 59, 56, 70, 56, 55, 49, 63, 84, 61, 72, 56, 57, 74, 52, 77, 64, 42, 154, 70, 64, 48, 78, 77, 65, 61, 63, 81, 77, 60, 51, 66, 79, 67, 62, 79, 118, 56, 73, 63, 64, 72, 52, 71, 59, 81, 93, 57, 92, 62, 62, 80, 50, 67, 54, 94, 47, 58, 53, 54, 64, 58, 61, 49, 81, 65, 78, 88, 88, 50, 74, 58, 74, 52, 62, 72, 56, 77, 57, 73, 49, 56, 73, 52, 75, 66, 65, 47, 61, 55, 45, 62, 66, 73, 70, 68, 81, 40, 60, 66, 79, 64, 63, 66, 59, 68, 63, 59, 57, 60, 75, 52, 52, 58, 66, 78, 58, 70, 63, 60, 86, 52, 71, 39, 57, 67, 61, 70, 63, 45, 73, 64, 59, 63, 56, 58, 56, 63, 55, 71, 75, 51, 88, 110, 89, 71, 93, 67, 68, 105, 59, 92, 72, 66, 66, 81, 74, 64, 65, 70, 59, 54, 65, 73, 69, 66, 67, 98, 58, 77, 139, 58, 61, 60, 59, 69, 64, 73, 66, 54, 59, 51, 61, 65, 79, 63, 68, 71, 59, 66, 65, 52, 54, 61, 78, 63, 84, 68, 73, 45, 80, 73, 122, 73, 66, 73, 76, 71, 81, 47, 59, 64, 57, 52, 92, 59, 64, 68, 55, 61, 60, 57, 61, 67, 53, 109, 78, 53, 69, 51, 61, 59, 62, 57, 57, 44, 59, 69, 87, 55, 58, 73, 62, 74, 77, 55, 60, 86, 57, 69, 56, 62, 59, 73, 70, 92, 57, 40, 53, 68, 61, 58, 71, 62, 68, 53, 68, 74, 121, 58, 68, 68, 74, 67, 59, 119, 53, 61, 65, 62, 65, 54, 62, 63, 75, 51, 67, 73, 60, 46, 63, 63, 54, 63, 54, 53, 66, 59, 60, 73, 58, 72, 67, 74, 68, 67, 53, 62, 66, 64, 84, 62, 44, 78, 55, 68, 68, 73, 65, 74, 67, 61, 61, 57, 72, 66, 59, 66, 148, 72, 69, 68, 62, 76, 79, 59, 66, 57, 63, 53, 64, 47, 62, 59, 72, 74, 56, 65, 62, 72, 58, 71, 64, 67, 88, 60, 60, 57, 73, 47, 60, 58, 64, 79, 67, 69, 60, 114, 78, 57, 62, 60, 60, 56, 77, 74, 74, 63, 57, 55, 68, 59, 83, 72, 58, 80, 66, 49, 53, 58, 60, 49, 59, 84, 48, 72, 67, 72, 68, 70, 81, 73, 72, 44, 51, 52, 57, 90, 70, 47, 64, 53, 71, 67, 60, 61, 58, 64, 41, 75, 70, 77, 85, 81, 64, 100, 54, 61, 89, 72, 65, 83, 68, 59, 69, 98, 74, 69, 85, 73, 61, 64, 67, 71, 64, 90, 64, 61, 94, 64, 61, 57, 62, 90, 61, 74, 71, 47, 70, 62, 72, 71, 62, 59, 67, 61, 60, 51, 59, 75, 69, 57, 57, 55, 75, 68, 61, 56, 41, 67, 71, 57, 61, 90, 57, 52, 63, 75, 54, 61, 64, 69, 48, 64, 75, 44, 57, 64, 86, 77, 58, 71, 52, 57, 44, 62, 76, 57, 68, 44, 40, 49, 56, 59, 79, 86, 54, 65, 66, 66, 61, 76, 58, 68, 73, 64, 69, 66, 69, 62, 53, 85, 61, 57, 76, 68, 77, 65, 58, 63, 59, 59, 63, 54, 61, 72, 55, 78, 62, 60, 61, 63, 78, 94, 61, 58, 53, 63, 63, 64, 57, 63, 61, 67, 56, 33, 74, 55, 59, 79, 65, 62, 56, 42, 70, 51, 66, 62, 55, 68, 72, 57, 78, 69, 56, 87, 65, 84, 59, 56, 59, 53, 77, 54, 61, 56, 59, 79, 78, 69, 53, 45, 67, 52, 61, 68, 78, 52, 93, 45, 46, 65, 58, 85, 47, 51, 85, 101, 58, 58, 57, 68, 87, 55, 57, 66, 71, 62, 65, 70, 60, 60, 64, 53, 77, 76, 62, 65, 61, 65, 62, 44, 69, 75, 60, 85, 70, 82, 59, 63, 106, 56, 67, 63, 47, 69, 60, 100, 67, 102, 65, 74, 72, 52, 73, 85, 75, 64, 51, 70, 60, 56, 60, 63, 52, 77, 69, 74, 79, 60, 52, 59, 63, 59, 77, 67, 71, 52, 83, 75, 60, 72, 61, 59, 61, 95, 64, 51, 58, 81, 64, 62, 74, 50, 89, 62, 43, 62, 66, 49, 54, 92, 75, 47, 66, 76, 71, 68, 59, 64, 51, 54, 77, 55, 56, 75, 68, 48, 70, 72, 67, 76, 61, 75, 63, 53, 63, 62, 43, 60, 59, 58, 94, 60, 68, 84, 77, 66, 87, 67, 73, 76, 70, 63, 47, 71, 58, 61, 75, 64, 59, 59, 47, 79, 53, 83, 69, 42, 82, 75, 75, 73, 61, 60, 59, 67, 65, 59, 60, 80, 65, 73, 80, 66, 74, 53, 59, 59, 50, 65, 66, 60, 71, 61, 49, 55, 56, 53, 61, 61, 62, 42, 66, 62, 55, 101, 76, 55, 49, 46, 77, 55, 69, 51, 68, 51, 79, 41, 74, 66, 158, 40, 66, 52, 61, 56, 148, 73, 59, 52, 61, 64, 74, 82, 45, 71, 62, 60, 76, 82, 81, 63, 73, 52, 70, 71, 65, 105, 63, 69, 60, 88, 77, 62, 64, 60, 73, 56, 44, 75, 72, 43, 49, 56, 63, 61, 76, 70, 58, 58, 67, 59, 77, 76, 69, 63, 69, 74, 74, 45, 48, 73, 89, 50, 83, 61, 47, 54, 42, 74, 79, 76, 72, 64, 67, 77, 66, 53, 82, 55, 73, 83, 59, 57, 28, 61, 55, 49, 57, 52, 60, 68, 61, 82, 54, 82, 71, 84, 47, 58, 57, 70, 80, 49, 55, 65, 53, 68, 56, 91, 53, 102, 51, 59, 50, 64, 72, 60, 67, 78, 61, 52, 59, 58, 69, 73, 64, 68, 73, 54, 68, 62, 52, 75, 78, 66, 65, 89, 58, 61, 62, 57, 64, 57, 64, 54, 71, 69, 63, 52, 64, 63, 52, 92, 63, 55, 68, 74, 83, 69, 51, 75, 51, 35, 67, 51, 45, 75, 66, 53, 73, 58, 56, 84, 62, 48, 60, 61, 78, 80, 44, 67, 63, 60, 62, 59, 67, 68, 67, 68, 64, 76, 100, 68, 49, 69, 68, 43, 65, 101, 65, 53, 74, 68, 60, 73, 58, 53, 55, 68, 74, 51, 62, 69, 58, 44, 75, 75, 58, 70, 59, 72, 64, 100, 61, 51, 46, 57, 98, 63, 57, 73, 65, 55, 69, 53, 56, 75, 47, 65, 66, 64, 66, 78, 57, 65, 61, 71, 75, 98, 75, 54, 50, 51, 86, 63, 66, 54, 81, 77, 111, 46, 54, 56, 68, 57, 66, 71, 71, 68, 50, 65, 52, 54, 53, 32, 60, 58, 65, 70, 58, 64, 57, 70, 75, 115, 59, 63, 69, 62, 77, 47, 75, 60, 56, 60, 61, 57, 46, 56, 48, 57, 60, 93, 73, 50, 72, 52, 56, 54, 71, 84, 60, 64, 76, 52, 73, 78, 65, 66, 65, 70, 81, 59, 133, 57, 72, 61, 55, 70, 55, 78, 97, 61, 54, 59, 78, 74, 66, 74, 93, 71, 75, 112, 96, 59, 48, 75, 60, 83, 63, 53, 70, 75, 80, 77, 89, 60, 58, 80, 78, 63, 84, 66, 81, 54, 62, 58, 57, 85, 81, 60, 79, 67, 54, 49, 68, 68, 76, 67, 61, 75, 61, 76, 61, 86, 61, 68, 130, 65, 54, 59, 62, 80, 66, 66, 66, 59, 53, 55, 107, 65, 62, 65, 57, 59, 68, 89, 55, 55, 69, 52, 62, 40, 59, 65, 57, 69, 73, 75, 55, 67, 112, 59, 52, 69, 52, 58, 53, 70, 66, 51, 68, 69, 51, 75, 59, 57, 59, 61, 68, 58, 49, 57, 61, 60, 50, 103, 71, 54, 88, 82, 58, 60, 47, 92, 66, 71, 44, 75, 70, 72, 75, 54, 43, 61, 64, 86, 65, 65, 56, 67, 89, 65, 38, 64, 84, 70, 79, 71, 34, 61, 64, 49, 59, 55, 78, 69, 92, 69, 56, 75, 64, 51, 81, 60, 65, 75, 65, 57, 57, 58, 48, 60, 63, 89, 72, 55, 88, 80, 51, 71, 90, 51, 55, 102, 74, 79, 65, 81, 71, 55, 54, 52, 51, 73, 51, 49, 75, 60, 106, 46, 86, 56, 97, 58, 58, 65, 74, 82, 67, 65, 75, 66, 41, 59, 76, 68, 54, 54, 68, 62, 79, 80, 67, 66, 52, 63, 64, 87, 66, 59, 47, 68, 59, 58, 73, 64, 59, 71, 57, 65, 93, 71, 69, 74, 59, 77, 57, 79, 64, 75, 71, 63, 64, 67, 62, 74, 51, 78, 61, 60, 67, 51, 62, 84, 56, 67, 98, 53, 101, 58, 56, 52, 60, 82, 59, 77, 65, 99, 46, 61, 94, 61, 43, 62, 81, 70, 58, 65, 68, 68, 58, 60, 63, 64, 58, 89, 74, 66, 59, 68, 76, 67, 64, 47, 50, 68, 61, 56, 62, 57, 64, 44, 94, 50, 51, 58, 49, 73, 64, 138, 51, 57, 53, 51, 65, 64, 62, 78, 60, 71, 80, 66, 55, 56, 64, 55, 61, 58, 79, 61, 48, 61, 53, 56, 68, 73, 89, 70, 64, 78, 76, 48, 56, 59, 73, 65, 76, 52, 76, 64, 43, 77, 72, 84, 69, 92, 68, 66, 74, 60, 48, 67, 57, 72, 93, 77, 100, 48, 65, 64, 58, 56, 107, 56, 63, 51, 62, 52, 60, 57, 60, 61, 56, 91, 52, 63, 57, 72, 59, 57, 60, 66, 71, 56, 66, 66, 45, 58, 72, 84, 65, 69, 60, 53, 58, 51, 52, 69, 80, 72, 71, 83, 69, 72, 57, 53, 45, 73, 66, 57, 62, 76, 46, 43, 69, 49, 70, 46, 62, 89, 67, 52, 66, 52, 87, 98, 54, 74, 50, 106, 53, 43, 59, 56, 79, 55, 96, 45, 93, 62, 49, 47, 66, 50, 48, 82, 71, 50, 83, 110, 79, 91, 81, 35, 70, 68, 76, 60, 111, 73, 69, 41, 68, 62, 78, 77, 51, 68, 64, 64, 104, 50, 75, 78, 52, 63, 60, 100, 62, 59, 51, 74, 105, 90, 51, 78, 68, 127, 70, 101, 79, 56, 61, 71, 68, 66, 66, 57, 61, 72, 58, 65, 67, 61, 68, 61, 102, 58, 71, 47, 73, 75, 63, 55, 65, 70, 57, 66, 53, 47, 66, 81, 70, 44, 42, 91, 67, 74, 79, 63, 62, 80, 68, 86, 61, 67, 82, 75, 75, 77, 54, 53, 51, 67, 66, 63, 73, 73, 79, 59, 79, 54, 72, 85, 66, 49, 52, 61, 93, 62, 66, 72, 73, 73, 48, 68, 44, 44, 64, 64, 53, 56, 48, 73, 68, 112, 100, 65, 65, 54, 81, 70, 60, 56, 56, 92, 46, 68, 65, 49, 89, 60, 51, 57, 60, 66, 56, 76, 58, 61, 51, 76, 54, 59, 67, 75, 46, 64, 57, 66, 68, 50, 57, 49, 66, 67, 57, 47, 68, 63, 137, 47, 74, 81, 57, 70, 64, 70, 87, 45, 56, 68, 63, 74, 46, 71, 59, 46, 47, 55, 126, 61, 88, 76, 52, 88, 36, 52, 75, 48, 69, 55, 66, 80, 59, 63, 70, 78, 81, 68, 59, 57, 65, 66, 66, 67, 83, 58, 70, 64, 78, 56, 52, 65, 37, 56, 73, 55, 77, 74, 67, 65, 51, 63, 45, 66, 80, 81, 54, 61, 74, 61, 56, 87, 55, 54, 74, 72, 57, 68, 60, 65, 69, 61, 66, 83, 55, 59, 63, 62, 71, 108, 64, 80, 52, 59, 63, 49, 78, 52, 54, 55, 77, 57, 112, 108, 46, 60, 35, 57, 61, 66, 54, 78, 77, 62, 62, 67, 72, 69, 58, 61, 87, 81, 43, 75, 77, 54, 48, 80, 73, 79, 54, 67, 75, 89, 50, 97, 64, 85, 71, 77, 49, 56, 66, 46, 58, 51, 108, 43, 61, 58, 53, 56, 60, 44, 77, 68, 52, 59, 53, 61, 64, 80, 71, 63, 56, 72, 81, 85, 76, 63, 66, 68, 121, 62, 62, 53, 46, 48, 29, 70, 84, 94, 52, 59, 66, 74, 60, 50, 54, 57, 67, 60, 82, 85, 85, 49, 69, 53, 61, 55, 48, 54, 58, 57, 60, 72, 86, 102, 67, 37, 61, 54, 70, 65, 85, 60, 115, 77, 54, 38, 55, 91, 63, 58, 99, 70, 47, 74, 56, 62, 53, 66, 74, 70, 56, 71, 51, 93, 77, 56, 62, 57, 74, 109, 55, 60, 76, 55, 65, 54, 95, 52, 58, 69, 46, 57, 50, 113, 62, 63, 66, 48, 63, 63, 94, 74, 66, 109, 78, 58, 173, 51, 59, 54, 60, 57, 74, 65, 93, 48, 52, 57, 41, 53, 61, 79, 66, 51, 45, 55, 64, 77, 70, 70, 67, 80, 46, 58, 68, 84, 112, 82, 50, 35, 51, 45, 80, 75, 43, 56, 53, 61, 50, 70, 75, 74, 66, 73, 57, 89, 53, 50, 50, 40, 98, 68, 72, 48, 44, 76, 80, 118, 53, 54, 48, 55, 40, 66, 92, 65, 67, 60, 69, 64, 47, 57, 51, 64, 71, 60, 56, 54, 69, 61, 52, 54, 87, 72, 48, 60, 60, 58, 61, 61, 54, 62, 67, 56, 79, 67, 77, 58, 78, 71, 67, 100, 101, 40, 47, 72, 67, 48, 60, 50, 63, 61, 86, 73, 67, 90, 53, 80, 71, 80, 58, 58, 67, 76, 53, 57, 69, 61, 68, 65, 71, 68, 64, 80, 52, 56, 63, 54, 65, 45, 42, 85, 90, 59, 62, 51, 62, 94, 75, 52, 66, 106, 49, 47, 76, 53, 51, 48, 68, 79, 98, 56, 59, 71, 76, 78, 64, 78, 70, 49, 53, 80, 55, 57, 55, 53, 46, 30, 57, 51, 81, 57, 59, 51, 50, 53, 38, 71, 47, 54, 62, 92, 68, 63, 94, 82, 49, 87, 54, 66, 69, 78, 84, 49, 72, 51, 60, 48, 52, 73, 64, 40, 89, 60, 68, 91, 63, 50, 82, 52, 51, 88, 111, 79, 71, 63, 58, 72, 56, 57, 61, 71, 69, 59, 59, 156, 73, 62, 77, 65, 77, 68, 70, 97, 67, 51, 90, 42, 72, 61, 56, 84, 47, 61, 50, 44, 58, 65, 48, 97, 67, 51, 57, 36, 87, 85, 60, 109, 58, 75, 43, 75, 68, 55, 60, 65, 62, 64, 67, 71, 120, 63, 51, 94, 59, 60, 71, 54, 118, 58, 60, 56, 56, 74, 62, 63, 65, 85, 111, 74, 58, 118, 68, 53, 90, 64, 71, 43, 69, 65, 57, 67, 58, 96, 68, 66, 61, 50, 66, 51, 76, 54, 76, 60, 79, 63, 66, 66, 85, 62, 118, 40, 73, 57, 79, 80, 49, 55, 86, 63, 60, 66, 50, 74, 61, 65, 69, 59, 86, 70, 67, 60, 97, 68, 67, 60, 66, 68, 30, 72, 72, 57, 58, 59, 66, 44, 71, 51, 52, 79, 53, 57, 62, 44, 78, 54, 56, 62, 54, 65, 54, 72, 62, 63, 70, 66, 56, 54, 78, 73, 72, 69, 78, 68, 83, 68, 77, 59, 64, 62, 54, 87, 61, 67, 53, 75, 49, 42, 67, 62, 73, 55, 85, 67, 55, 80, 81, 78, 62, 46, 56, 55, 65, 90, 77, 86, 78, 80, 66, 51, 88, 92, 57, 78, 77, 63, 66, 63, 47, 45, 56, 77, 91, 74, 69, 54, 57, 70, 77, 71, 102, 59, 51, 89, 56, 53, 79, 63, 65, 55, 65, 71, 46, 99, 77, 56, 43, 69, 57, 88, 76, 71, 120, 68, 84, 68, 77, 64, 82, 64, 47, 52, 62, 68, 67, 60, 67, 62, 67, 86, 59, 56, 101, 62, 86, 71, 43, 47, 65, 60, 81, 62, 68, 53, 59, 56, 56, 89, 50, 95, 40, 77, 62, 53, 62, 69, 70, 81, 100, 72, 59, 56, 39, 54, 69, 73, 67, 68, 61, 83, 55, 61, 69, 56, 61, 72, 66, 55, 68, 58, 49, 65, 62, 67, 52, 66, 77, 59, 66, 64, 47, 83, 85, 68, 85, 61, 60, 95, 59, 62, 58, 73, 73, 84, 71, 84, 61, 69, 72, 47, 55, 66, 72, 57, 62, 74, 54, 113, 82, 56, 39, 71, 57, 55, 58, 73, 53, 63, 75, 56, 68, 60, 68, 77, 67, 87, 70, 63, 61, 54, 73, 81, 64, 89, 61, 71, 58, 57, 71, 48, 89, 48, 75, 81, 60, 82, 56, 65, 65, 40, 78, 49, 97, 69, 55, 45, 74, 46, 64, 66, 68, 72, 99, 83, 69, 77, 82, 75, 62, 79, 58, 135, 65, 64, 60, 73, 68, 67, 80, 70, 69, 73, 64, 100, 52, 62, 59, 56, 156, 63, 48, 80, 36, 61, 60, 71, 51, 66, 67, 51, 84, 57, 52, 63, 62, 69, 79, 55, 56, 69, 61, 87, 54, 52, 67, 53, 83, 90, 70, 64, 61, 61, 64, 76, 45, 61, 46, 54, 68, 73, 65, 90, 57, 77, 61, 68, 72, 58, 54, 69, 75, 71, 78, 56, 70, 81, 53, 55, 70, 56, 67, 59, 52, 70, 56, 70, 70, 91, 54, 60, 63, 62, 78, 59, 84, 48, 45, 53, 82, 58, 65, 46, 66, 39, 69, 46, 89, 57, 47, 78, 53, 53, 61, 70, 60, 59, 53, 65, 62, 57, 72, 87, 50, 131, 107, 70, 59, 73, 84, 52, 54, 65, 80, 64, 52, 64, 61, 63, 71, 74, 60, 90, 86, 59, 47, 68, 82, 50, 42, 58, 73, 43, 66, 69, 65, 47, 42, 43, 65, 67, 61, 63, 49, 66, 77, 65, 82, 60, 60, 75, 71, 76, 68, 84, 75, 71, 68, 69, 41, 78, 81, 42, 44, 70, 110, 102, 70, 67, 88, 67, 58, 98, 61, 73, 83, 67, 45, 50, 73, 49, 60, 71, 61, 69, 58, 65, 64, 51, 101, 74, 82, 62, 106, 79, 60, 69, 77, 52, 60, 64, 112, 87, 61, 56, 58, 87, 81, 69, 91, 66, 67, 70, 89, 80, 68, 80, 67, 57, 81, 77, 55, 66, 64, 58, 73, 51, 72, 68, 105, 87, 78, 60, 68, 58, 68, 58, 95, 74, 56, 76, 61, 53, 68, 53, 45, 70, 62, 64, 74, 74, 80, 72, 63, 63, 69, 74, 54, 70, 65, 67, 50, 67, 141, 66, 59, 62, 50, 68, 58, 53, 57, 74, 76, 56, 52, 54, 69, 42, 64, 44, 81, 62, 62, 150, 78, 70, 52, 54, 54, 79, 62, 77, 55, 77, 79, 56, 134, 50, 59, 78, 69, 89, 80, 87, 73, 51, 70, 69, 69, 89, 48, 65, 51, 49, 83, 90, 93, 55, 48, 54, 95, 65, 78, 76, 65, 50, 61, 58, 54, 72, 57, 54, 66, 58, 74, 67, 70, 82, 57, 61, 85, 61, 60, 44, 56, 51, 72, 51, 71, 73, 76, 71, 54, 72, 67, 61, 55, 79, 61, 79, 86, 49, 56, 63, 66, 63, 89, 57, 105, 52, 59, 63, 64, 56, 39, 43, 73, 82, 72, 55, 83, 71, 60, 52, 73, 61, 76, 72, 80, 59, 62, 84, 64, 59, 73, 66, 60, 49, 66, 67, 57, 54, 82, 68, 66, 47, 60, 84, 80, 60, 50, 49, 59, 53, 59, 47, 72, 64, 45, 70, 77, 50, 62, 93, 60, 70, 71, 69, 83, 53, 56, 53, 88, 96, 57, 59, 60, 100, 62, 61, 48, 70, 71, 57, 78, 56, 50, 42, 80, 49, 62, 64, 59, 58, 61, 71, 52, 72, 118, 68, 54, 60, 59, 72, 78, 97, 55, 76, 61, 67, 66, 68, 56, 54, 58, 64, 80, 73, 53, 57, 52, 77, 54, 50, 62, 52, 76, 62, 57, 75, 64, 95, 63, 56, 44, 73, 55, 53, 75, 70, 54, 77, 59, 70, 63, 60, 70, 93, 80, 49, 45, 54, 97, 52, 62, 48, 80, 66, 102, 85, 77, 46, 82, 59, 72, 63, 50, 66, 85, 140, 60, 62, 53, 56, 62, 62, 72, 50, 82, 55, 69, 69, 121, 56, 69, 60, 68, 57, 75, 79, 69, 92, 52, 60, 49, 56, 51, 72, 79, 96, 46, 85, 83, 66, 53, 78, 62, 43, 59, 56, 56, 73, 72, 63, 51, 58, 53, 66, 74, 60, 75, 77, 87, 55, 60, 82, 72, 56, 60, 69, 78, 85, 56, 54, 68, 60, 63, 76, 52, 77, 61, 69, 61, 73, 82, 65, 81, 85, 85, 58, 84, 76, 78, 59, 59, 63, 60, 48, 76, 52, 66, 43, 64, 66, 79, 83, 74, 48, 78, 51, 56, 75, 65, 61, 95, 87, 64, 56, 69, 84, 63, 56, 45, 48, 79, 59, 49, 80, 77, 52, 47, 66, 69, 45, 65, 58, 72, 111, 54, 51, 80, 72, 78, 64, 67, 106, 48, 67, 43, 55, 61, 77, 57, 53, 71, 70, 54, 70, 63, 73, 68, 55, 58, 65, 76, 62, 95, 42, 74, 55, 91, 59, 59, 68, 67, 65, 87, 82, 51, 97, 62, 73, 81, 68, 58, 68, 60, 66, 61, 60, 26, 72, 46, 78, 56, 59, 46, 51, 56, 58, 39, 50, 54, 67, 66, 55, 78, 79, 63, 61, 67, 82, 81, 81, 65, 51, 70, 57, 53, 65, 67, 42, 72, 78, 79, 68, 90, 80, 57, 62, 61, 51, 55, 56, 93, 48, 60, 63, 71, 58, 95, 64, 76, 63, 89, 74, 58, 51, 73, 69, 99, 42, 64, 54, 66, 55, 55, 63, 94, 62, 49, 66, 71, 78, 92, 58, 66, 77, 59, 65, 61, 79, 65, 57, 57, 59, 59, 42, 68, 87, 57, 59, 48, 63, 69, 66, 80, 68, 43, 65, 69, 69, 50, 113, 60, 73, 46, 68, 57, 40, 77, 65, 68, 64, 89, 58, 58, 74, 62, 71, 62, 73, 49, 62, 62, 64, 83, 65, 60, 80, 65, 54, 61, 70, 73, 51, 50, 69, 75, 57, 43, 85, 53, 67, 74, 56, 51, 59, 53, 74, 58, 61, 73, 70, 63, 72, 67, 56, 41, 67, 60, 61, 59, 63, 97, 65, 79, 64, 67, 82, 48, 54, 55, 66, 71, 77, 61, 60, 42, 73, 80, 74, 59, 69, 86, 45, 71, 101, 81, 73, 54, 50, 42, 50, 64, 63, 56, 49, 79, 64, 77, 51, 58, 60, 52, 65, 66, 75, 51, 78, 67, 65, 61, 66, 61, 82, 85, 49, 57, 56, 68, 83, 70, 50, 56, 56, 69, 83, 60, 55, 66, 45, 67, 62, 91, 71, 60, 34, 74, 68, 81, 82, 62, 64, 88, 79, 67, 100, 90, 68, 67, 49, 59, 51, 76, 58, 141, 61, 40, 65, 56, 69, 71, 59, 94, 70, 53, 60, 69, 72, 57, 66, 56, 82, 85, 80, 53, 60, 46, 66, 53, 47, 68, 68, 65, 72, 67, 52, 69, 66, 89, 67, 71, 59, 71, 89, 69, 71, 78, 67, 68, 67, 66, 75, 67, 62, 71, 47, 73, 63, 68, 70, 52, 55, 89, 66, 42, 82, 79, 68, 60, 62, 57, 70, 58, 69, 53, 68, 47, 65, 62, 68, 73, 61, 79, 50, 65, 80, 70, 69, 73, 65, 71, 81, 76, 39, 69, 75, 67, 76, 59, 54, 83, 82, 64, 58, 56, 113, 53, 62, 57, 55, 71, 50, 53, 62, 64, 93, 79, 51, 85, 65, 61, 74, 61, 36, 61, 68, 67, 68, 61, 48, 54, 106, 74, 55, 52, 65, 80, 68, 80, 59, 78, 84, 56, 67, 59, 51, 71, 56, 72, 62, 59, 65, 88, 99, 67, 93, 81, 61, 48, 71, 78, 69, 69, 64, 94, 82, 85, 60, 52, 73, 61, 70, 59, 70, 73, 51, 55, 78, 49, 60, 35, 51, 76, 71, 76, 52, 58, 82, 62, 111, 56, 59, 60, 82, 62, 44, 83, 54, 78, 70, 90, 71, 68, 71, 67, 82, 74, 61, 59, 64, 50, 60, 65, 77, 93, 55, 54, 38, 60, 87, 69, 80, 81, 56, 85, 64, 62, 60, 56, 62, 66, 54, 43, 65, 48, 75, 46, 52, 41, 74, 63, 67, 68, 51, 51, 54, 51, 72, 61, 76, 53, 80, 76, 59, 42, 53, 45, 71, 71, 69, 61, 62, 73, 52, 50, 68, 46, 77, 60, 74, 58, 52, 80, 58, 74, 57, 55, 51, 65, 46, 62, 64, 80, 65, 82, 62, 88, 62, 82, 86, 66, 80, 50, 63, 51, 63, 83, 61, 67, 60, 74, 53, 91, 51, 105, 70, 64, 65, 74, 60, 146, 91, 61, 73, 47, 41, 71, 70, 63, 84, 52, 70, 57, 75, 79, 55, 69, 71, 78, 86, 65, 53, 104, 67, 72, 80, 58, 83, 77, 68, 58, 76, 72, 60, 77, 75, 35, 73, 81, 62, 50, 70, 74, 63, 52, 71, 59, 57, 62, 50, 77, 64, 44, 52, 75, 56, 46, 69, 68, 59, 102, 66, 51, 71, 69, 53, 95, 74, 72, 91, 68, 67, 81, 67, 58, 95, 42, 72, 91, 73, 57, 57, 64, 78, 59, 77, 63, 70, 45, 57, 34, 57, 71, 72, 80, 58, 57, 38, 77, 78, 59, 86, 72, 50, 78, 63, 91, 62, 45, 63, 103, 58, 58, 75, 61, 53, 45, 55, 64, 91, 68, 75, 54, 47, 68, 63, 65, 60, 69, 64, 37, 53, 78, 135, 71, 64, 48, 60, 54, 73, 75, 61, 60, 118, 55, 68, 90, 58, 62, 27, 69, 43, 55, 70, 81, 76, 72, 87, 60, 98, 74, 66, 69, 71, 51, 63, 63, 85, 78, 86, 46, 52, 77, 61, 74, 54, 51, 66, 88, 63, 75, 41, 64, 66, 75, 63, 88, 64, 66, 74, 43, 51, 56, 44, 62, 87, 100, 54, 71, 45, 78, 95, 94, 66, 69, 52, 54, 52, 103, 81, 60, 65, 50, 103, 63, 106, 83, 80, 85, 66, 50, 77, 68, 52, 75, 37, 58, 99, 59, 63, 47, 65, 63, 60, 51, 55, 103, 60, 57, 66, 50, 75, 61, 67, 64, 67, 71, 48, 74, 69, 62, 112, 60, 57, 47, 53, 74, 55, 67, 82, 59, 63, 61, 99, 64, 54, 73, 53, 74, 65, 75, 50, 38, 70, 69, 60, 66, 58, 49, 68, 61, 73, 61, 70, 60, 57, 71, 64, 65, 89, 70, 59, 64, 75, 69, 55, 59, 39, 56, 55, 58, 71, 51, 77, 73, 67, 56, 48, 58, 84, 70, 66, 72, 59, 77, 48, 60, 64, 69, 59, 58, 57, 58, 58, 48, 50, 86, 59, 76, 65, 82, 52, 65, 74, 111, 67, 97, 73, 58, 69, 122, 56, 52, 53, 57, 65, 47, 67, 67, 63, 60, 57, 53, 53, 68, 79, 89, 62, 56, 50, 57, 46, 77, 54, 60, 57, 61, 75, 67, 65, 59, 67, 58, 66, 64, 73, 111, 56, 89, 73, 63, 55, 75, 76, 70, 78, 72, 52, 102, 69, 56, 80, 56, 58, 54, 74, 48, 72, 71, 61, 71, 76, 52, 55, 74, 41, 62, 56, 68, 72, 94, 53, 49, 161, 98, 60, 68, 79, 68, 75, 61, 73, 35, 48, 72, 89, 65, 75, 64, 56, 76, 58, 54, 72, 43, 62, 71, 95, 91, 73, 44, 59, 64, 51, 57, 80, 55, 71, 65, 72, 57, 64, 50, 58, 35, 85, 75, 55, 72, 57, 70, 63, 57, 91, 57, 50, 49, 50, 55, 55, 57, 63, 47, 69, 46, 54, 67, 59, 71, 63, 52, 75, 74, 62, 62, 73, 75, 62, 53, 72, 73, 72, 73, 53, 83, 67, 59, 67, 73, 63, 68, 65, 106, 45, 63, 86, 57, 52, 46, 40, 57, 74, 69, 87, 62, 80, 36, 36, 63, 93, 77, 52, 72, 61, 52, 133, 59, 86, 46, 55, 73, 74, 73, 43, 83, 63, 88, 61, 59, 70, 69, 77, 66, 80, 120, 40, 88, 63, 71, 49, 68, 66, 86, 52, 71, 67, 57, 85, 62, 81, 85, 66, 57, 77, 59, 51, 84, 68, 56, 49, 60, 64, 79, 64, 84, 44, 65, 69, 39, 67, 55, 76, 93, 55, 53, 73, 72, 81, 75, 74, 72, 100, 89, 78, 59, 53, 69, 53, 73, 62, 51, 74, 78, 58, 42, 117, 61, 64, 58, 75, 58, 50, 71, 69, 62, 77, 66, 40, 67, 76, 64, 52, 84, 60, 46, 55, 60, 56, 86, 46, 73, 66, 73, 60, 64, 74, 53, 65, 68, 73, 58, 67, 56, 65, 58, 89, 66, 111, 58, 86, 70, 80, 53, 60, 55, 64, 49, 60, 69, 64, 53, 58, 60, 45, 55, 57, 46, 63, 88, 61, 93, 67, 37, 62, 49, 72, 80, 79, 91, 67, 62, 54, 69, 85, 79, 56, 54, 85, 59, 79, 79, 79, 51, 60, 58, 60, 75, 90, 55, 77, 67, 61, 54, 68, 51, 66, 52, 57, 72, 64, 59, 63, 52, 79, 74, 61, 67, 70, 69, 71, 50, 65, 79, 52, 68, 53, 57, 53, 80, 160, 45, 71, 59, 92, 65, 86, 67, 67, 73, 55, 50, 65, 59, 74, 76, 93, 52, 66, 67, 33, 54, 69, 87, 57, 75, 67, 43, 76, 61, 64, 67, 68, 80, 70, 68, 103, 84, 62, 63, 45, 68, 60, 63, 60, 64, 62, 78, 76, 43, 66, 75, 75, 56, 59, 80, 88, 50, 63, 66, 52, 79, 65, 59, 90, 61, 45, 57, 69, 83, 83, 53, 68, 73, 58, 61, 59, 75, 45, 60, 81, 84, 44, 40, 63, 84, 78, 80, 49, 23, 62, 68, 81, 56, 81, 70, 59, 67, 48, 26, 66, 63, 60, 85, 48, 64, 78, 91, 54, 67, 68, 62, 47, 62, 68, 88, 74, 73, 61, 47, 59, 87, 65, 59, 72, 88, 75, 72, 71, 60, 77, 74, 48, 67, 59, 57, 79, 75, 67, 62, 46, 54, 64, 59, 92, 86, 62, 88, 69, 103, 42, 68, 47, 58, 62, 59, 59, 66, 62, 55, 57, 56, 51, 59, 65, 74, 69, 60, 60, 64, 76, 74, 60, 51, 88, 56, 81, 58, 69, 45, 65, 80, 60, 104, 68, 76, 64, 82, 73, 69, 52, 79, 96, 71, 53, 95, 74, 64, 68, 82, 56, 61, 52, 59, 60, 85, 87, 59, 68, 91, 67, 79, 53, 66, 58, 48, 43, 40, 77, 76, 86, 68, 75, 61, 85, 46, 78, 71, 63, 52, 58, 47, 62, 41, 118, 69, 50, 69, 69, 48, 75, 67, 49, 75, 62, 59, 72, 91, 67, 58, 67, 62, 64, 69, 52, 80, 49, 53, 58, 67, 65, 57, 84, 47, 51, 62, 63, 70, 60, 79, 66, 53, 43, 89, 59, 65, 67, 69, 81, 82, 77, 87, 70, 55, 61, 70, 68, 65, 61, 77, 74, 75, 48, 63, 54, 60, 76, 41, 70, 56, 64, 49, 70, 69, 47, 49, 47, 67, 46, 46, 51, 59, 60, 65, 52, 63, 82, 65, 92, 70, 74, 63, 54, 54, 70, 62, 47, 84, 68, 68, 64, 72, 78, 72, 68, 58, 65, 48, 52, 66, 79, 70, 53, 64, 80, 55, 61, 46, 42, 95, 53, 53, 80, 63, 48, 110, 59, 63, 133, 58, 96, 50, 75, 61, 34, 61, 55, 107, 87, 101, 69, 57, 73, 73, 85, 73, 71, 60, 46, 59, 109, 55, 57, 90, 65, 79, 62, 57, 60, 52, 59, 49, 52, 57, 61, 68, 59, 56, 50, 67, 51, 55, 99, 75, 74, 96, 79, 91, 64, 64, 59, 60, 68, 71, 53, 48, 73, 49, 55, 75, 57, 51, 59, 69, 69, 89, 67, 43, 85, 49, 75, 77, 72, 58, 43, 81, 72, 86, 67, 51, 68, 73, 77, 101, 84, 68, 70, 55, 61, 62, 71, 42, 81, 65, 86, 74, 47, 62, 62, 65, 64, 68, 70, 60, 57, 53, 81, 57, 67, 53, 88, 53, 65, 64, 70, 59, 171, 66, 51, 60, 74, 66, 66, 62, 66, 57, 69, 48, 57, 58, 55, 52, 68, 47, 59, 46, 74, 34, 72, 49, 47, 60, 76, 58, 94, 41, 56, 55, 81, 104, 90, 73, 41, 76, 63, 59, 67, 51, 74, 112, 64, 65, 135, 69, 66, 36, 55, 78, 52, 72, 46, 46, 63, 65, 68, 65, 62, 97, 71, 69, 65, 87, 49, 44, 49, 69, 65, 79, 67, 56, 74, 75, 54, 61, 69, 54, 61, 71, 58, 56, 74, 53, 63, 66, 71, 85, 66, 44, 44, 50, 66, 62, 60, 57, 53, 77, 67, 68, 72, 59, 65, 47, 73, 70, 52, 56, 77, 56, 74, 83, 80, 48, 57, 83, 86, 97, 33, 70, 56, 57, 52, 63, 66, 64, 64, 71, 90, 54, 60, 49, 59, 42, 59, 80, 81, 57, 78, 55, 69, 43, 77, 59, 57, 77, 71, 60, 48, 48, 66, 209, 50, 95, 97, 76, 57, 61, 66, 69, 62, 73, 61, 61, 48, 62, 74, 60, 47, 45, 79, 68, 59, 76, 64, 59, 75, 79, 58, 81, 56, 64, 51, 66, 72, 51, 93, 88, 64, 64, 65, 79, 71, 109, 57, 66, 47, 84, 64, 71, 68, 66, 52, 74, 45, 36, 51, 92, 81, 66, 60, 79, 80, 57, 85, 75, 57, 88, 72, 68, 47, 81, 79, 54, 87, 83, 61, 72, 86, 86, 86, 59, 44, 52, 66, 42, 68, 58, 53, 65, 59, 48, 71, 51, 74, 65, 78, 49, 66, 53, 67, 68, 77, 53, 63, 73, 67, 53, 55, 67, 72, 48, 57, 47, 59, 92, 78, 64, 81, 62, 61, 59, 104, 68, 62, 50, 67, 56, 70, 66, 71, 64, 55, 71, 62, 75, 96, 59, 62, 55, 77, 63, 60, 74, 60, 63, 63, 71, 70, 69, 64, 58, 49, 96, 72, 74, 72, 66, 68, 50, 63, 65, 106, 69, 64, 41, 83, 68, 93, 61, 43, 49, 53, 78, 62, 89, 70, 54, 29, 47, 64, 71, 46, 68, 59, 52, 59, 71, 70, 72, 91, 63, 70, 56, 88, 71, 66, 73, 64, 73, 59, 49, 61, 83, 64, 66, 67, 54, 70, 97, 74, 75, 54, 55, 83, 62, 78, 79, 54, 100, 69, 72, 58, 61, 57, 99, 148, 92, 80, 74, 60, 71, 82, 55, 78, 61, 70, 87, 56, 88, 77, 74, 46, 62, 51, 52, 44, 70, 78, 82, 59, 49, 53, 62, 57, 62, 92, 63, 76, 83, 53, 68, 85, 44, 64, 63, 65, 71, 65, 70, 54, 57, 45, 57, 49, 34, 68, 77, 56, 63, 65, 59, 50, 78, 89, 43, 61, 59, 94, 49, 67, 65, 52, 82, 76, 59, 77, 95, 69, 86, 81, 104, 57, 49, 47, 38, 90, 67, 103, 87, 80, 69, 78, 80, 55, 54, 70, 50, 75, 63, 81, 104, 67, 79, 71, 53, 50, 64, 77, 72, 65, 95, 52, 48, 57, 78, 46, 60, 74, 45, 79, 58, 65, 53, 78, 54, 88, 74, 76, 48, 88, 64, 46, 55, 62, 111, 83, 61, 67, 46, 61, 58, 60, 60, 47, 65, 73, 61, 77, 60, 72, 54, 52, 79, 88, 43, 75, 69, 56, 76, 88, 69, 69, 62, 51, 63, 121, 58, 60, 51, 82, 82, 54, 61, 68, 50, 63, 124, 48, 95, 82, 54, 54, 73, 57, 51, 72, 60, 72, 56, 61, 53, 75, 61, 69, 78, 66, 68, 44, 61, 56, 65, 60, 42, 77, 48, 35, 56, 74, 81, 97, 79, 50, 71, 76, 76, 59, 88, 70, 53, 58, 72, 86, 67, 89, 91, 62, 88, 59, 108, 64, 53, 46, 52, 73, 69, 60, 64, 49, 95, 71, 68, 84, 66, 73, 89, 31, 63, 55, 66, 62, 64, 51, 77, 89, 72, 54, 66, 81, 40, 56, 62, 50, 57, 73, 74, 74, 68, 53, 84, 80, 55, 46, 65, 50, 68, 67, 39, 51, 65, 49, 85, 68, 89, 61, 55, 73, 60, 60, 89, 61, 103, 45, 53, 53, 54, 46, 91, 65, 65, 63, 56, 88, 58, 68, 90, 70, 58, 85, 76, 54, 78, 67, 78, 63, 75, 76, 70, 53, 30, 50, 66, 59, 111, 82, 63, 87, 51, 58, 70, 99, 57, 74, 63, 69, 30, 71, 57, 65, 61, 84, 73, 59, 56, 73, 64, 75, 88, 61, 50, 58, 70, 59, 101, 66, 63, 48, 99, 58, 64, 43, 93, 62, 53, 70, 71, 51, 61, 56, 44, 64, 73, 44, 66, 53, 59, 49, 48, 73, 65, 59, 88, 65, 84, 59, 59, 62, 65, 73, 63, 63, 70, 92, 51, 39, 72, 63, 72, 67, 61, 138, 73, 70, 64, 71, 56, 60, 51, 82, 65, 70, 62, 56, 74, 40, 61, 62, 70, 37, 58, 56, 150, 65, 67, 57, 50, 98, 57, 48, 64, 58, 54, 71, 86, 63, 103, 51, 68, 52, 49, 79, 42, 58, 66, 53, 66, 68, 58, 91, 64, 45, 56, 77, 50, 75, 60, 54, 65, 68, 64, 45, 131, 75, 57, 64, 70, 89, 80, 67, 58, 55, 46, 44, 77, 60, 60, 83, 58, 93, 82, 67, 59, 90, 56, 58, 70, 66, 68, 71, 54, 82, 78, 79, 86, 66, 77, 74, 62, 81, 67, 48, 63, 80, 61, 46, 45, 62, 68, 78, 51, 65, 56, 51, 51, 70, 76, 74, 75, 49, 63, 85, 91, 64, 71, 56, 70, 85, 69, 52, 42, 68, 78, 60, 82, 36, 65, 68, 57, 62, 50, 53, 53, 69, 43, 60, 66, 53, 69, 50, 47, 83, 60, 62, 57, 52, 98, 69, 58, 73, 47, 65, 44, 108, 71, 50, 65, 84, 72, 65, 43, 76, 73, 59, 55, 45, 93, 41, 56, 88, 73, 58, 75, 56, 58, 50, 82, 64, 78, 53, 106, 82, 108, 59, 66, 54, 64, 98, 56, 70, 77, 72, 77, 69, 49, 76, 75, 46, 40, 39, 55, 108, 56, 35, 55, 67, 51, 62, 61, 68, 123, 49, 78, 59, 54, 62, 95, 57, 68, 60, 73, 45, 65, 92, 60, 56, 61, 55, 42, 63, 65, 64, 70, 57, 63, 49, 71, 75, 44, 90, 66, 51, 44, 63, 52, 60, 92, 102, 70, 57, 57, 74, 65, 101, 77, 63, 61, 57, 83, 68, 60, 70, 75, 115, 60, 60, 57, 84, 76, 81, 92, 55, 59, 55, 70, 66, 55, 87, 70, 66, 63, 61, 60, 60, 68, 53, 50, 54, 52, 74, 57, 70, 77, 60, 52, 60, 76, 65, 72, 69, 54, 53, 66, 81, 83, 89, 65, 92, 76, 54, 50, 65, 71, 60, 65, 66, 61, 63, 100, 40, 53, 47, 50, 61, 60, 80, 67, 62, 107, 50, 68, 62, 60, 72, 52, 69, 58, 80, 60, 46, 76, 61, 59, 75, 76, 76, 66, 74, 54, 80, 54, 56, 65, 70, 64, 86, 69, 65, 77, 45, 48, 60, 59, 53, 70, 73, 52, 80, 74, 87, 57, 74, 62, 107, 59, 63, 67, 56, 58, 57, 114, 76, 55, 72, 69, 54, 47, 74, 70, 73, 61, 65, 57, 63, 84, 67, 55, 69, 67, 66, 88, 49, 64, 57, 50, 76, 67, 109, 85, 77, 66, 78, 76, 79, 54, 61, 58, 59, 32, 61, 43, 54, 57, 94, 90, 76, 75, 57, 65, 69, 61, 66, 51, 54, 55, 64, 76, 59, 60, 52, 81, 52, 53, 40, 65, 71, 69, 57, 102, 70, 90, 73, 67, 62, 55, 70, 50, 61, 54, 56, 52, 57, 61, 86, 94, 52, 81, 98, 58, 77, 68, 71, 52, 67, 65, 59, 63, 68, 45, 56, 79, 100, 59, 46, 65, 79, 60, 63, 41, 76, 78, 102, 81, 55, 76, 79, 66, 77, 55, 79, 46, 99, 83, 106, 53, 68, 71, 71, 45, 47, 50, 66, 50, 55, 75, 69, 76, 72, 72, 51, 49, 44, 71, 53, 68, 77, 88, 37, 79, 62, 58, 68, 66, 49, 53, 67, 55, 41, 45, 59, 70, 88, 57, 93, 75, 99, 47, 71, 72, 58, 79, 73, 86, 73, 77, 75, 53, 71, 83, 86, 58, 53, 69, 67, 55, 57, 79, 55, 59, 73, 51, 83, 66, 62, 63, 69, 93, 69, 79, 75, 107, 116, 48, 57, 77, 88, 52, 61, 64, 74, 73, 40, 51, 42, 75, 71, 54, 63, 57, 97, 71, 63, 42, 65, 67, 69, 60, 77, 71, 56, 71, 75, 68, 58, 45, 80, 75, 66, 51, 78, 49, 47, 67, 67, 37, 71, 75, 50, 86, 59, 80, 71, 67, 64, 51, 81, 64, 69, 67, 68, 76, 77, 58, 131, 49, 69, 52, 64, 73, 93, 52, 70, 53, 73, 64, 61, 70, 63, 53, 60, 69, 57, 59, 54, 50, 43, 63, 74, 42, 73, 74, 71, 46, 58, 49, 98, 55, 64, 45, 53, 41, 64, 60, 66, 47, 91, 80, 64, 47, 54, 56, 32, 77, 65, 65, 65, 60, 97, 56, 69, 87, 58, 61, 46, 74, 74, 85, 65, 66, 77, 71, 62, 80, 89, 95, 54, 59, 63, 64, 83, 62, 76, 58, 77, 59, 54, 70, 65, 81, 75, 70, 54, 63, 83, 97, 67, 60, 60, 65, 56, 70, 72, 68, 75, 108, 57, 55, 68, 90, 52, 70, 59, 64, 53, 60, 77, 60, 67, 67, 74, 81, 69, 57, 60, 69, 68, 48, 57, 57, 73, 74, 57, 70, 60, 66, 56, 75, 57, 51, 90, 58, 58, 53, 62, 85, 51, 64, 72, 47, 53, 70, 68, 55, 46, 63, 94, 60, 56, 64, 64, 57, 56, 71, 77, 89, 61, 69, 56, 47, 57, 92, 72, 70, 67, 70, 67, 68, 59, 84, 53, 55, 89, 66, 69, 78, 53, 83, 101, 67, 64, 59, 39, 62, 43, 57, 54, 52, 77, 64, 84, 102, 63, 56, 64, 70, 55, 55, 61, 65, 68, 65, 60, 111, 59, 69, 88, 77, 48, 74, 70, 109, 68, 65, 77, 45, 90, 53, 52, 92, 87, 70, 70, 60, 63, 54, 55, 64, 74, 95, 53, 56, 64, 56, 75, 73, 62, 61, 50, 61, 86, 55, 48, 59, 63, 57, 68, 55, 66, 67, 64, 59, 72, 52, 44, 69, 82, 83, 54, 62, 86, 73, 62, 57, 51, 53, 52, 68, 64, 106, 61, 65, 72, 51, 103, 49, 49, 84, 104, 62, 71, 57, 60, 86, 69, 64, 66, 63, 50, 67, 74, 64, 69, 92, 55, 77, 65, 65, 62, 53, 59, 68, 66, 57, 72, 50, 124, 92, 66, 51, 60, 64, 65, 55, 77, 112, 51, 53, 94, 85, 45, 60, 70, 59, 71, 59, 61, 78, 57, 53, 54, 68, 69, 111, 68, 81, 44, 56, 62, 50, 52, 80, 53, 70, 59, 71, 52, 49, 63, 108, 70, 68, 56, 70, 65, 62, 60, 102, 64, 55, 75, 97, 66, 56, 68, 60, 70, 65, 31, 60, 73, 78, 58, 55, 55, 56, 62, 122, 55, 52, 45, 62, 62, 75, 56, 60, 61, 51, 55, 51, 64, 61, 50, 61, 61, 56, 52, 46, 67, 63, 89, 56, 63, 86, 69, 69, 68, 95, 75, 74, 47, 57, 70, 78, 52, 56, 63, 82, 52, 87, 77, 67, 70, 59, 48, 59, 113, 63, 68, 55, 58, 51, 37, 62, 70, 76, 68, 69, 51, 56, 56, 46, 47, 83, 66, 65, 65, 76, 58, 71, 46, 65, 55, 61, 72, 52, 59, 87, 77, 83, 61, 65, 60, 61, 64, 90, 61, 56, 45, 61, 72, 51, 106, 43, 53, 73, 56, 51, 56, 61, 86, 80, 45, 67, 52, 72, 55, 64, 69, 73, 82, 65, 83, 67, 58, 76, 59, 63, 46, 64, 63, 65, 60, 54, 53, 52, 95, 104, 77, 42, 64, 72, 53, 77, 54, 79, 46, 49, 47, 46, 65, 59, 57, 64, 72, 55, 87, 81, 69, 57, 63, 63, 62, 46, 67, 50, 65, 63, 43, 64, 67, 54, 83, 110, 69, 66, 59, 37, 129, 58, 73, 77, 72, 61, 75, 66, 49, 81, 55, 62, 59, 76, 61, 79, 66, 55, 56, 48, 55, 82, 78, 78, 50, 67, 45, 53, 74, 73, 49, 68, 56, 76, 79, 49, 46, 58, 90, 63, 67, 87, 74, 55, 73, 58, 36, 69, 71, 58, 58, 55, 71, 71, 65, 81, 70, 48, 90, 57, 41, 45, 57, 56, 62, 51, 52, 66, 70, 64, 79, 46, 55, 77, 68, 56, 61, 83, 48, 58, 54, 68, 59, 68, 53, 44, 62, 50, 74, 57, 65, 72, 73, 56, 69, 65, 67, 67, 71, 55, 108, 53, 95, 75, 72, 63, 64, 60, 77, 53, 51, 69, 68, 55, 61, 72, 77, 52, 60, 65, 66, 60, 72, 65, 84, 57, 56, 78, 74, 69, 47, 57, 59, 66, 70, 68, 93, 51, 59, 68, 57, 77, 55, 59, 53, 49, 78, 53, 77, 56, 61, 68, 72, 63, 52, 97, 65, 56, 69, 61, 65, 89, 68, 73, 49, 83, 85, 52, 52, 50, 70, 66, 72, 78, 69, 68, 68, 68, 73, 97, 46, 64, 61, 73, 95, 79, 54, 68, 66, 45, 53, 57, 57, 58, 55, 54, 89, 79, 57, 122, 66, 56, 79, 54, 76, 57, 63, 70, 103, 80, 69, 60, 34, 56, 55, 56, 79, 61, 57, 70, 80, 88, 65, 50, 64, 51, 83, 50, 81, 77, 89, 68, 57, 66, 55, 79, 61, 76, 85, 61, 81, 71, 63, 59, 59, 57, 55, 83, 59, 63, 96, 60, 53, 81, 74, 83, 70, 53, 94, 60, 87, 43, 57, 72, 87, 59, 60, 61, 140, 46, 72, 49, 65, 60, 65, 60, 53, 70, 55, 76, 57, 56, 66, 53, 79, 48, 65, 54, 67, 51, 72, 42, 63, 63, 88, 98, 79, 58, 53, 81, 59, 62, 50, 54, 47, 53, 80, 56, 64, 55, 62, 73, 59, 96, 47, 70, 67, 61, 92, 80, 75, 58, 71, 80, 88, 72, 71, 59, 63, 82, 61, 56, 71, 65, 86, 64, 49, 68, 76, 51, 81, 71, 64, 64, 52, 61, 75, 58, 97, 46, 59, 65, 80, 78, 71, 54, 51, 50, 75, 78, 103, 68, 75, 48, 74, 63, 64, 67, 66, 103, 58, 73, 67, 56, 50, 52, 64, 53, 56, 72, 61, 72, 78, 56, 59, 75, 64, 70, 89, 58, 88, 81, 77, 61, 81, 77, 60, 59, 69, 75, 66, 72, 56, 69, 41, 80, 71, 85, 65, 56, 63, 67, 89, 47, 90, 71, 83, 65, 69, 47, 89, 63, 57, 60, 66, 73, 63, 68, 82, 69, 80, 67, 74, 65, 66, 56, 53, 64, 61, 56, 64, 54, 69, 65, 50, 59, 43, 79, 80, 59, 61, 70, 63, 65, 69, 104, 69, 58, 62, 42, 98, 65, 96, 55, 60, 62, 62, 48, 77, 52, 71, 71, 82, 61, 54, 67, 55, 47, 84, 53, 75, 50, 63, 67, 64, 65, 69, 72, 55, 75, 70, 65, 54, 105, 60, 44, 51, 54, 91, 54, 54, 61, 60, 53, 33, 71, 67, 75, 60, 66, 53, 75, 84, 65, 72, 101, 63, 57, 60, 83, 62, 69, 87, 47, 56, 74, 69, 62, 52, 109, 58, 42, 58, 68, 64, 82, 68, 59, 61, 60, 71, 60, 55, 54, 66, 81, 49, 52, 60, 49, 84, 71, 44, 60, 65, 86, 75, 57, 55, 66, 53, 85, 48, 69, 102, 76, 70, 70, 56, 87, 70, 76, 63, 61, 55, 52, 36, 66, 76, 79, 73, 75, 62, 55, 72, 79, 66, 75, 80, 54, 61, 59, 69, 73, 78, 66, 68, 65, 58, 57, 59, 58, 89, 64, 55, 55, 49, 110, 60, 73, 81, 106, 92, 79, 83, 67, 67, 49, 69, 47, 56, 71, 80, 83, 63, 62, 58, 85, 71, 52, 56, 60, 79, 75, 103, 45, 54, 56, 71, 70, 59, 41, 79, 43, 74, 69, 57, 72, 66, 61, 86, 97, 63, 55, 73, 83, 57, 66, 61, 61, 67, 60, 70, 56, 42, 55, 77, 42, 78, 51, 50, 64, 55, 66, 113, 42, 59, 46, 65, 54, 68, 56, 50, 56, 52, 64, 75, 60, 89, 71, 65, 72, 57, 65, 50, 53, 14, 58, 65, 82, 127, 42, 57, 54, 101, 63, 68, 53, 58, 57, 59, 46, 64, 76, 65, 62, 51, 54, 35, 79, 53, 69, 76, 68, 65, 79, 72, 64, 64, 69, 37, 50, 64, 62, 64, 60, 57, 68, 59, 58, 55, 70, 55, 95, 71, 64, 55, 70, 96, 72, 68, 56, 72, 93, 43, 82, 82, 52, 60, 62, 78, 58, 56, 75, 56, 113, 37, 69, 50, 74, 71, 61, 72, 74, 56, 59, 71, 74, 69, 70, 43, 56, 57, 52, 61, 68, 70, 48, 43, 58, 52, 72, 76, 55, 63, 96, 40, 88, 58, 75, 52, 80, 54, 73, 68, 91, 63, 65, 50, 67, 72, 51, 50, 58, 53, 52, 64, 35, 81, 47, 52, 54, 72, 83, 84, 59, 67, 57, 76, 79, 47, 66, 42, 74, 51, 52, 70, 66, 49, 71, 64, 60, 60, 43, 62, 56, 70, 64, 67, 67, 69, 67, 63, 82, 98, 53, 70, 52, 71, 70, 82, 67, 53, 67, 114, 67, 65, 89, 61, 78, 64, 59, 52, 47, 54, 93, 65, 61, 68, 48, 115, 68, 83, 38, 56, 97, 48, 76, 60, 64, 69, 63, 67, 88, 82, 55, 64, 83, 69, 67, 78, 57, 72, 81, 75, 57, 62, 56, 65, 81, 124, 78, 51, 66, 65, 73, 78, 67, 53, 57, 70, 65, 65, 62, 65, 45, 60, 76, 79, 49, 63, 52, 51, 73, 63, 60, 63, 58, 54, 47, 103, 74, 78, 56, 64, 60, 54, 41, 70, 50, 66, 61, 83, 65, 60, 49, 57, 75, 99, 57, 68, 67, 70, 59, 52, 64, 82, 42, 73, 58, 89, 64, 57, 81, 56, 54, 87, 44, 71, 81, 67, 66, 66, 87, 83, 73, 65, 77, 64, 72, 65, 51, 73, 57, 42, 85, 59, 65, 84, 59, 72, 56, 82, 122, 78, 45, 79, 80, 45, 58, 63, 79, 53, 69, 68, 64, 81, 71, 62, 47, 49, 63, 58, 73, 67, 76, 52, 51, 72, 88, 63, 63, 35, 77, 55, 52, 59, 58, 59, 49, 58, 66, 51, 82, 50, 58, 60, 95, 57, 65, 58, 48, 51, 62, 83, 73, 81, 62, 63, 36, 70, 49, 79, 75, 65, 73, 52, 79, 72, 54, 62, 78, 88, 72, 80, 65, 59, 41, 66, 120, 76, 74, 67, 53, 62, 61, 48, 58, 61, 85, 52, 75, 93, 69, 64, 49, 43, 49, 56, 51, 78, 52, 71, 67, 58, 60, 68, 86, 54, 52, 49, 93, 67, 86, 73, 51, 58, 73, 47, 60, 60, 87, 77, 43, 60, 79, 70, 52, 86, 47, 62, 58, 77, 51, 49, 68, 70, 57, 53, 55, 71, 73, 53, 80, 61, 67, 45, 64, 56, 74, 84, 35, 77, 110, 65, 87, 71, 63, 76, 57, 70, 82, 55, 65, 73, 68, 69, 72, 55, 47, 80, 74, 78, 49, 56, 75, 111, 48, 46, 58, 52, 46, 50, 106, 68, 79, 42, 73, 77, 50, 66, 85, 59, 61, 56, 63, 87, 74, 66, 82, 71, 61, 53, 51, 81, 67, 47, 67, 50, 44, 68, 40, 77, 106, 64, 93, 66, 94, 58, 78, 55, 62, 70, 65, 64, 51, 74, 65, 77, 53, 84, 57, 60, 67, 51, 75, 55, 101, 77, 71, 73, 49, 50, 86, 63, 75, 135, 97, 69, 90, 71, 85, 87, 84, 79, 61, 59, 55, 75, 80, 83, 84, 76, 66, 58, 37, 58, 53, 46, 59, 74, 44, 60, 75, 72, 66, 65, 55, 68, 58, 77, 69, 66, 81, 70, 66, 75, 70, 48, 66, 67, 80, 51, 65, 102, 70, 51, 61, 70, 52, 124, 78, 64, 55, 72, 108, 53, 85, 75, 110, 74, 78, 61, 63, 54, 41, 71, 97, 67, 62, 66, 90, 55, 83, 48, 59, 71, 72, 50, 78, 59, 82, 69, 71, 58, 109, 60, 103, 69, 75, 115, 77, 55, 68, 66, 87, 52, 86, 45, 52, 64, 54, 58, 56, 72, 58, 72, 61, 60, 58, 79, 60, 80, 56, 84, 98, 59, 52, 127, 90, 61, 62, 48, 68, 92, 68, 69, 54, 80, 75, 52, 53, 90, 55, 68, 52, 53, 49, 58, 75, 44, 48, 75, 62, 56, 69, 46, 41, 60, 50, 58, 60, 52, 57, 69, 70, 77, 67, 52, 50, 59, 106, 55, 78, 127, 77, 88, 60, 40, 90, 55, 74, 67, 73, 65, 70, 70, 61, 68, 70, 65, 65, 58, 84, 91, 55, 53, 58, 44, 62, 53, 48, 60, 52, 60, 80, 73, 54, 38, 75, 55, 67, 77, 74, 47, 37, 71, 66, 95, 99, 99, 57, 54, 77, 52, 51, 64, 61, 69, 68, 89, 63, 65, 91, 86, 54, 70, 73, 52, 75, 61, 70, 60, 50, 54, 79, 64, 71, 70, 43, 72, 45, 67, 58, 60, 98, 57, 54, 62, 93, 83, 51, 79, 76, 59, 78, 83, 57, 47, 62, 69, 78, 52, 63, 68, 66, 77, 63, 67, 68, 47, 47, 70, 70, 75, 70, 70, 75, 84, 58, 50, 66, 64, 82, 75, 53, 80, 65, 52, 50, 55, 54, 81, 58, 59, 79, 78, 113, 59, 57, 93, 62, 59, 70, 75, 72, 70, 95, 45, 63, 58, 59, 65, 66, 65, 50, 46, 42, 75, 69, 69, 107, 40, 50, 62, 67, 64, 53, 66, 59, 56, 74, 45, 70, 83, 63, 79, 78, 72, 49, 66, 68, 67, 85, 58, 68, 81, 66, 56, 92, 64, 74, 64, 79, 70, 84, 56, 54, 60, 53, 85, 63, 69, 57, 45, 85, 68, 55, 68, 84, 92, 59, 65, 51, 67, 67, 65, 63, 65, 71, 56, 62, 73, 63, 68, 54, 77, 67, 81, 75, 66, 60, 55, 71, 88, 60, 88, 144, 64, 69, 69, 76, 53, 76, 40, 67, 68, 55, 74, 77, 61, 59, 59, 44, 75, 53, 66, 62, 57, 64, 46, 59, 69, 92, 73, 65, 93, 86, 51, 71, 45, 59, 63, 66, 66, 63, 76, 57, 53, 79, 54, 62, 54, 74, 65, 44, 71, 60, 79, 72, 52, 72, 57, 65, 52, 63, 69, 38, 81, 54, 120, 70, 61, 76, 84, 51, 66, 71, 56, 64, 67, 66, 63, 64, 41, 63, 72, 58, 79, 39, 39, 50, 50, 75, 59, 71, 64, 94, 80, 49, 53, 57, 61, 61, 68, 62, 74, 94, 68, 83, 83, 64, 63, 56, 43, 53, 55, 66, 48, 56, 69, 62, 55, 88, 117, 44, 58, 86, 45, 66, 99, 50, 66, 62, 94, 76, 51, 85, 45, 52, 49, 61, 70, 51, 73, 78, 66, 67, 66, 73, 63, 85, 46, 46, 63, 51, 83, 95, 52, 93, 83, 90, 63, 68, 31, 46, 58, 83, 52, 56, 77, 49, 57, 65, 61, 69, 71, 66, 64, 61, 79, 71, 57, 76, 75, 71, 47, 57, 64, 84, 83, 47, 57, 78, 55, 78, 62, 53, 60, 78, 57, 97, 58, 63, 67, 54, 70, 71, 36, 79, 92, 88, 43, 68, 86, 73, 57, 63, 64, 56, 55, 60, 60, 47, 76, 59, 48, 68, 55, 57, 56, 49, 45, 50, 67, 68, 48, 31, 65, 54, 104, 85, 59, 60, 70, 73, 54, 67, 73, 67, 68, 77, 68, 63, 59, 54, 86, 49, 86, 96, 61, 56, 83, 87, 58, 72, 77, 77, 70, 62, 46, 70, 82, 69, 58, 72, 62, 74, 56, 65, 54, 86, 81, 53, 69, 50, 72, 69, 55, 57, 52, 66, 79, 58, 80, 71, 70, 61, 70, 64, 51, 44, 55, 75, 60, 90, 79, 59, 73, 67, 43, 74, 55, 55, 58, 53, 54, 60, 87, 87, 68, 83, 61, 52, 65, 67, 79, 76, 69, 55, 89, 59, 53, 78, 54, 56, 54, 53, 68, 67, 60, 63, 73, 89, 62, 57, 73, 102, 68, 91, 84, 55, 102, 83, 37, 82, 56, 75, 50, 62, 90, 61, 80, 57, 59, 96, 64, 32, 52, 53, 61, 57, 53, 44, 44, 61, 81, 62, 56, 39, 61, 60, 70, 58, 50, 72, 79, 53, 97, 72, 38, 54, 57, 78, 56, 85, 80, 44, 91, 73, 61, 50, 47, 70, 45, 61, 69, 95, 64, 52, 74, 87, 76, 54, 60, 73, 69, 84, 102, 65, 59, 47, 53, 78, 68, 83, 71, 64, 69, 63, 85, 44, 49, 77, 40, 59, 71, 51, 56, 64, 49, 53, 70, 68, 86, 69, 79, 49, 80, 49, 69, 72, 66, 106, 72, 73, 66, 61, 73, 66, 63, 70, 56, 61, 69, 66, 76, 61, 61, 69, 69, 74, 85, 75, 52, 64, 56, 61, 72, 68, 52, 70, 63, 50, 58, 69, 46, 63, 104, 70, 64, 63, 63, 95, 52, 66, 53, 81, 96, 55, 52, 73, 48, 72, 54, 96, 85, 68, 67, 56, 79, 49, 59, 83, 61, 61, 83, 42, 56, 40, 92, 68, 55, 56, 85, 54, 54, 107, 76, 56, 74, 29, 69, 81, 63, 55, 73, 65, 73, 89, 45, 90, 50, 78, 84, 93, 73, 71, 86, 59, 70, 76, 68, 46, 77, 47, 79, 62, 60, 50, 53, 53, 86, 92, 60, 60, 69, 56, 57, 84, 59, 82, 55, 47, 94, 50, 86, 74, 76, 48, 88, 71, 63, 72, 51, 76, 67, 77, 73, 72, 75, 45, 88, 116, 40, 60, 56, 65, 52, 62, 78, 95, 84, 64, 51, 87, 49, 91, 54, 58, 76, 50, 68, 51, 58, 50, 52, 76, 39, 71, 55, 81, 85, 76, 71, 56, 76, 69, 78, 65, 64, 58, 80, 47, 81, 73, 44, 73, 65, 75, 44, 53, 83, 41, 70, 54, 62, 60, 67, 71, 63, 68, 74, 70, 74, 55, 66, 60, 73, 79, 54, 77, 64, 85, 56, 57, 61, 61, 87, 88, 80, 69, 65, 78, 56, 51, 63, 57, 68, 64, 65, 56, 88, 60, 73, 54, 63, 60, 71, 63, 87, 72, 101, 66, 71, 75, 48, 58, 85, 58, 59, 48, 76, 59, 57, 63, 82, 60, 56, 54, 66, 75, 83, 83, 46, 61, 56, 57, 70, 63, 54, 71, 78, 70, 59, 76, 64, 63, 47, 71, 53, 53, 93, 65, 70, 46, 67, 87, 59, 66, 66, 66, 77, 57, 66, 76, 57, 57, 64, 67, 85, 77, 68, 71, 88, 56, 49, 67, 54, 76, 70, 54, 76, 59, 58, 63, 46, 74, 73, 40, 67, 58, 44, 60, 50, 70, 56, 88, 63, 82, 62, 50, 85, 57, 75, 74, 50, 52, 75, 62, 58, 71, 43, 59, 64, 54, 76, 60, 83, 72, 64, 80, 83, 58, 48, 57, 58, 52, 74, 45, 62, 73, 59, 69, 52, 50, 86, 47, 50, 68, 79, 65, 65, 57, 103, 67, 81, 53, 77, 79, 65, 46, 63, 53, 93, 62, 79, 66, 84, 65, 76, 61, 70, 72, 90, 75, 67, 44, 72, 71, 74, 67, 53, 45, 77, 74, 57, 150, 62, 60, 53, 67, 68, 61, 63, 98, 62, 61, 54, 71, 66, 70, 68, 73, 56, 67, 57, 58, 90, 68, 68, 53, 83, 60, 91, 63, 83, 72, 56, 54, 50, 78, 47, 62, 47, 69, 60, 75, 80, 56, 65, 70, 68, 52, 57, 68, 74, 60, 76, 35, 60, 56, 84, 36, 70, 53, 83, 85, 58, 53, 99, 102, 77, 68, 49, 67, 68, 65, 52, 52, 49, 69, 59, 76, 67, 71, 67, 63, 57, 43, 64, 59, 61, 59, 52, 101, 54, 68, 58, 58, 58, 58, 58, 74, 59, 97, 61, 43, 95, 54, 65, 78, 59, 70, 76, 72, 61, 70, 60, 69, 85, 71, 63, 65, 85, 61, 64, 82, 90, 57, 75, 53, 68, 74, 50, 92, 83, 69, 55, 57, 67, 78, 69, 67, 69, 46, 78, 58, 71, 59, 74, 65, 51, 84, 63, 48, 65, 64, 61, 73, 72, 53, 78, 71, 72, 61, 104, 52, 79, 53, 60, 84, 59, 54, 73, 65, 68, 139, 50, 89, 64, 70, 63, 55, 50, 59, 59, 74, 73, 77, 68, 47, 53, 64, 71, 68, 76, 63, 54, 58, 56, 62, 55, 72, 70, 62, 70, 47, 60, 56, 95, 68, 78, 67, 75, 68, 53, 80, 65, 65, 43, 69, 49, 50, 67, 68, 74, 42, 56, 64, 45, 66, 59, 66, 66, 83, 59, 53, 66, 73, 59, 48, 63, 58, 70, 66, 69, 72, 67, 62, 64, 71, 67, 47, 70, 73, 60, 64, 58, 85, 55, 76, 56, 71, 60, 64, 59, 68, 68, 83, 97, 57, 73, 64, 62, 67, 57, 62, 50, 72, 63, 80, 69, 68, 70, 67, 70, 65, 71, 57, 52, 74, 60, 76, 50, 59, 57, 49, 55, 70, 62, 60, 44, 64, 57, 67, 65, 78, 93, 73, 55, 65, 64, 60, 66, 56, 73, 59, 56, 59, 51, 47, 45, 99, 58, 47, 71, 82, 84, 72, 71, 68, 76, 73, 83, 68, 60, 43, 65, 60, 76, 86, 62, 55, 82, 58, 74, 58, 68, 54, 64, 62, 61, 90, 69, 68, 53, 56, 60, 60, 61, 62, 86, 69, 78, 64, 60, 80, 63, 75, 76, 57, 53, 79, 56, 61, 61, 51, 48, 59, 68, 54, 53, 65, 65, 87, 58, 73, 110, 51, 58, 55, 67, 65, 56, 67, 70, 68, 70, 65, 166, 76, 79, 65, 70, 60, 75, 58, 103, 84, 67, 55, 67, 82, 71, 62, 57, 60, 37, 62, 62, 136, 50, 66, 73, 60, 67, 68, 62, 59, 77, 81, 58, 89, 75, 74, 55, 69, 63, 64, 56, 42, 75, 51, 66, 66, 40, 54, 83, 53, 51, 66, 78, 52, 93, 86, 53, 56, 68, 58, 74, 77, 65, 79, 59, 84, 63, 82, 58, 47, 60, 68, 58, 64, 77, 49, 66, 76, 49, 82, 46, 50, 64, 53, 64, 68, 59, 68, 72, 75, 87, 54, 68, 71, 50, 57, 79, 65, 81, 53, 65, 68, 113, 74, 53, 67, 54, 55, 56, 68, 55, 77, 77, 60, 89, 58, 55, 37, 78, 65, 71, 91, 72, 71, 74, 61, 39, 59, 62, 52, 56, 71, 60, 98, 68, 49, 63, 72, 83, 62, 71, 65, 69, 74, 44, 62, 71, 74, 55, 69, 78, 67, 60, 60, 84, 53, 75, 55, 66, 54, 67, 66, 105, 62, 64, 81, 57, 61, 58, 48, 70, 57, 81, 64, 68, 71, 53, 57, 63, 68, 72, 71, 66, 66, 45, 56, 57, 76, 60, 72, 75, 115, 64, 79, 77, 71, 73, 76, 76, 67, 101, 57, 40, 51, 80, 65, 85, 68, 49, 60, 115, 59, 85, 80, 57, 48, 67, 59, 78, 77, 53, 59, 59, 76, 60, 56, 70, 70, 64, 74, 78, 64, 80, 68, 45, 63, 60, 74, 59, 65, 38, 64, 67, 51, 53, 66, 61, 74, 108, 68, 69, 51, 67, 52, 66, 72, 110, 63, 57, 80, 83, 52, 52, 61, 51, 83, 65, 46, 73, 59, 66, 58, 174, 62, 72, 51, 100, 82, 86, 68, 61, 57, 63, 57, 72, 54, 91, 67, 65, 73, 48, 77, 77, 50, 44, 64, 60, 81, 81, 85, 78, 75, 57, 64, 58, 61, 75, 49, 71, 70, 61, 66, 73, 67, 73, 77, 97, 57, 55, 66, 59, 68, 72, 84, 72, 65, 73, 60, 68, 59, 62, 63, 63, 54, 90, 57, 44, 117, 58, 56, 73, 51, 56, 63, 68, 58, 69, 57, 68, 61, 53, 72, 87, 83, 51, 57, 64, 72, 67, 57, 51, 73, 58, 63, 78, 62, 71, 83, 68, 64, 66, 63, 72, 54, 69, 69, 74, 79, 76, 47, 62, 57, 71, 63, 75, 70, 66, 67, 66, 61, 56, 44, 62, 47, 52, 62, 63, 59, 58, 76, 51, 52, 65, 67, 57, 66, 54, 68, 73, 65, 71, 57, 62, 62, 76, 60, 114, 52, 79, 67, 42, 53, 67, 55, 67, 73, 70, 61, 54, 52, 71, 41, 67, 46, 62, 96, 68, 77, 58, 51, 69, 67, 76, 56, 65, 53, 68, 70, 72, 67, 76, 55, 70, 82, 72, 81, 60, 72, 74, 58, 56, 59, 55, 60, 62, 52, 69, 59, 66, 65, 72, 60, 58, 69, 64, 68, 106, 64, 84, 74, 64, 64, 71, 56, 53, 54, 59, 68, 57, 54, 70, 56, 56, 73, 68, 75, 60, 88, 69, 58, 77, 99, 57, 64, 80, 83, 81, 50, 59, 50, 80, 69, 108, 73, 67, 51, 59, 66, 46, 58, 62, 56, 50, 74, 88, 58, 53, 71, 68, 67, 71, 73, 73, 70, 62, 107, 60, 81, 58, 54, 58, 54, 94, 60, 67, 70, 74, 55, 53, 53, 68, 75, 58, 78, 63, 44, 70, 72, 70, 70, 54, 65, 63, 56, 54, 57, 57, 80, 60, 66, 48, 59, 65, 64, 60, 69, 62, 82, 65, 45, 54, 65, 49, 85, 66, 100, 71, 60, 54, 82, 114, 46, 51, 56, 88, 62, 61, 54, 96, 74, 64, 62, 49, 62, 64, 58, 71, 44, 61, 46, 66, 56, 70, 70, 68, 58, 49, 61, 82, 53, 76, 84, 55, 51, 73, 59, 73, 60, 93, 80, 63, 44, 70, 71, 61, 70, 73, 77, 60, 64, 68, 66, 74, 89, 68, 51, 57, 57, 61, 87, 51, 67, 109, 54, 59, 49, 74, 101, 91, 57, 77, 61, 59, 62, 74, 55, 60, 71, 54, 61, 60, 52, 55, 55, 77, 72, 34, 52, 79, 63, 85, 78, 59, 54, 73, 50, 71, 65, 71, 81, 55, 53, 67, 62, 62, 85, 64, 44, 53, 64, 73, 78, 71, 73, 66, 62, 75, 40, 76, 72, 56, 56, 61, 61, 75, 61, 72, 91, 63, 63, 74, 57, 59, 62, 59, 65, 60, 65, 69, 67, 77, 107, 106, 124, 50, 63, 56, 100, 68, 86, 38, 56, 71, 57, 65, 72, 46, 56, 80, 62, 75, 79, 73, 57, 92, 71, 103, 58, 90, 78, 63, 72, 68, 50, 68, 75, 88, 57, 109, 57, 37, 53, 57, 62, 67, 35, 51, 76, 58, 71, 55, 73, 95, 59, 73, 46, 65, 93, 74, 95, 68, 58, 59, 64, 67, 84, 63, 85, 71, 81, 66, 76, 60, 49, 47, 76, 60, 68, 64, 105, 57, 61, 40, 43, 59, 54, 59, 62, 58, 51, 64, 72, 56, 58, 105, 44, 79, 61, 65, 58, 54, 40, 64, 68, 81, 74, 76, 64, 73, 54, 61, 55, 78, 59, 46, 54, 66, 82, 44, 64, 64, 35, 81, 69, 63, 47, 61, 66, 64, 63, 134, 55, 76, 66, 53, 67, 76, 61, 87, 61, 71, 85, 58, 81, 68, 73, 58, 67, 91, 71, 49, 69, 54, 55, 68, 48, 63, 55, 60, 71, 66, 65, 69, 61, 56, 67, 69, 59, 65, 76, 52, 65, 79, 64, 62, 75, 76, 84, 57, 54, 51, 67, 111, 57, 56, 86, 40, 70, 60, 59, 121, 66, 52, 51, 51, 75, 69, 91, 55, 49, 55, 59, 64, 57, 62, 56, 52, 56, 57, 68, 53, 47, 64, 53, 93, 44, 92, 63, 55, 53, 53, 72, 66, 72, 41, 92, 58, 63, 56, 59, 69, 55, 80, 61, 77, 63, 84, 71, 74, 73, 64, 73, 48, 72, 75, 47, 58, 67, 58, 65, 139, 52, 52, 52, 98, 75, 53, 80, 62, 66, 55, 59, 52, 54, 62, 59, 68, 87, 84, 74, 95, 103, 67, 63, 80, 85, 71, 80, 75, 69, 83, 61, 58, 86, 63, 75, 61, 73, 62, 72, 75, 109, 78, 76, 92, 42, 61, 75, 53, 81, 50, 66, 60, 76, 77, 73, 64, 94, 59, 65, 79, 66, 62, 61, 51, 54, 51, 76, 63, 32, 89, 81, 63, 68, 47, 44, 74, 55, 58, 60, 64, 61, 60, 58, 76, 69, 46, 57, 60, 54, 57, 59, 66, 60, 91, 63, 64, 85, 58, 58, 64, 54, 79, 60, 64, 62, 65, 66, 53, 57, 80, 53, 59, 46, 73, 56, 86, 55, 68, 57, 76, 84, 72, 53, 51, 81, 62, 79, 58, 65, 54, 95, 65, 67, 60, 72, 75, 57, 70, 57, 51, 73, 57, 64, 83, 60, 78, 48, 58, 66, 75, 66, 59, 62, 75, 53, 68, 60, 63, 39, 117, 67, 59, 74, 51, 87, 50, 60, 63, 144, 68, 74, 66, 47, 53, 91, 84, 75, 56, 49, 50, 72, 53, 70, 63, 62, 58, 59, 66, 50, 50, 65, 62, 58, 78, 69, 60, 65, 65, 56, 64, 86, 60, 69, 71, 66, 93, 67, 73, 81, 53, 66, 43, 64, 68, 91, 61, 53, 75, 139, 56, 98, 71, 54, 80, 67, 32, 48, 62, 54, 68, 71, 67, 63, 47, 64, 63, 57, 55, 70, 71, 79, 56, 111, 84, 49, 63, 50, 58, 47, 57, 61, 56, 82, 67, 71, 98, 64, 78, 96, 63, 63, 69, 70, 58, 56, 73, 88, 49, 71, 75, 68, 62, 100, 58, 50, 56, 44, 68, 71, 63, 72, 59, 68, 75, 70, 62, 64, 65, 76, 61, 71, 62, 83, 63, 60, 76, 66, 57, 67, 55, 87, 61, 53, 52, 54, 62, 53, 59, 57, 57, 102, 56, 59, 58, 68, 54, 109, 81, 67, 51, 64, 55, 52, 57, 69, 71, 82, 67, 70, 55, 86, 56, 64, 66, 67, 53, 66, 60, 82, 67, 89, 73, 78, 37, 77, 72, 53, 62, 73, 85, 51, 64, 70, 54, 65, 54, 54, 68, 52, 60, 63, 69, 63, 53, 82, 83, 90, 58, 78, 66, 66, 55, 54, 63, 52, 79, 90, 56, 64, 87, 62, 63, 76, 55, 57, 56, 67, 60, 59, 54, 61, 65, 50, 44, 75, 54, 47, 75, 82, 68, 73, 58, 77, 57, 58, 58, 51, 53, 65, 64, 80, 59, 57, 68, 67, 46, 62, 64, 70, 71, 52, 63, 60, 70, 59, 69, 55, 85, 75, 71, 58, 93, 73, 78, 63, 70, 59, 57, 61, 59, 59, 68, 80, 69, 114, 77, 52, 67, 58, 76, 50, 48, 64, 60, 58, 52, 76, 82, 59, 76, 64, 59, 65, 72, 72, 59, 54, 48, 80, 63, 67, 82, 79, 83, 74, 49, 71, 75, 60, 67, 47, 61, 70, 67, 59, 58, 76, 50, 92, 51, 71, 73, 55, 71, 93, 59, 61, 101, 62, 78, 52, 95, 82, 56, 60, 71, 39, 59, 77, 81, 79, 63, 59, 48, 61, 61, 70, 151, 72, 59, 61, 54, 54, 57, 59, 57, 62, 49, 54, 87, 72, 62, 61, 94, 56, 56, 58, 49, 38, 55, 68, 63, 89, 52, 55, 54, 57, 46, 75, 73, 51, 71, 52, 94, 85, 72, 62, 62, 61, 57, 52, 87, 76, 65, 76, 59, 155, 59, 43, 52, 92, 48, 70, 80, 58, 89, 47, 56, 59, 83, 117, 63, 88, 52, 65, 47, 64, 56, 67, 74, 62, 51, 79, 58, 73, 63, 74, 66, 79, 69, 55, 77, 64, 58, 72, 56, 60, 56, 87, 35, 67, 55, 53, 59, 52, 58, 55, 52, 54, 57, 64, 57, 52, 67, 77, 50, 61, 62, 52, 51, 55, 68, 50, 74, 45, 57, 66, 71, 57, 70, 65, 76, 82, 84, 64, 69, 45, 82, 39, 55, 69, 59, 52, 85, 88, 68, 61, 75, 49, 65, 51, 78, 57, 57, 60, 56, 63, 51, 98, 44, 68, 67, 80, 62, 62, 63, 65, 61, 56, 93, 65, 50, 40, 71, 61, 63, 86, 74, 58, 75, 65, 59, 58, 61, 57, 65, 57, 55, 66, 96, 65, 66, 46, 75, 66, 73, 62, 123, 68, 62, 65, 60, 50, 71, 55, 60, 51, 113, 70, 86, 85, 73, 73, 53, 65, 66, 59, 66, 79, 80, 66, 58, 53, 76, 66, 71, 92, 79, 60, 80, 61, 51, 97, 85, 60, 73, 80, 72, 106, 51, 39, 90, 80, 87, 66, 70, 70, 68, 58, 75, 59, 45, 63, 73, 65, 104, 54, 55, 102, 66, 58, 67, 79, 48, 42, 82, 46, 68, 62, 65, 57, 56, 53, 78, 67, 40, 66, 122, 78, 48, 72, 75, 66, 80, 64, 79, 63, 52, 70, 77, 93, 68, 63, 84, 83, 68, 78, 91, 62, 66, 84, 57, 76, 67, 51, 63, 54, 62, 64, 61, 95, 104, 70, 56, 55, 71, 68, 79, 63, 55, 56, 68, 91, 53, 80, 63, 59, 100, 95, 68, 79, 83, 51, 80, 42, 79, 50, 63, 61, 131, 72, 51, 88, 45, 38, 68, 43, 58, 63, 55, 65, 87, 53, 56, 57, 64, 63, 59, 54, 65, 43, 62, 74, 67, 93, 61, 40, 42, 45, 80, 46, 51, 57, 110, 91, 74, 54, 64, 71, 72, 61, 57, 70, 53, 56, 75, 60, 64, 63, 68, 49, 62, 55, 118, 66, 55, 49, 67, 53, 49, 52, 73, 76, 51, 59, 83, 51, 56, 69, 63, 58, 57, 68, 80, 58, 141, 44, 83, 73, 58, 66, 53, 79, 80, 68, 70, 68, 49, 70, 72, 64, 75, 55, 70, 64, 67, 43, 70, 34, 72, 58, 55, 55, 65, 52, 59, 72, 60, 53, 60, 51, 70, 57, 59, 96, 70, 83, 42, 86, 39, 58, 61, 88, 80, 69, 67, 66, 65, 58, 66, 83, 79, 64, 65, 49, 70, 65, 66, 100, 56, 56, 93, 64, 67, 71, 64, 105, 62, 81, 72, 68, 73, 68, 72, 46, 56, 49, 56, 64, 64, 65, 88, 59, 66, 95, 52, 61, 63, 90, 68, 102, 44, 55, 58, 66, 67, 78, 76, 62, 78, 59, 100, 73, 59, 58, 70, 63, 57, 64, 48, 122, 52, 57, 61, 61, 62, 53, 80, 71, 74, 57, 63, 48, 59, 74, 64, 56, 62, 75, 56, 50, 56, 50, 85, 65, 55, 73, 55, 59, 69, 65, 69, 76, 57, 63, 58, 55, 71, 109, 43, 61, 71, 63, 67, 67, 49, 45, 89, 58, 64, 57, 90, 50, 93, 68, 65, 60, 90, 35, 70, 50, 50, 85, 38, 69, 68, 63, 75, 81, 76, 72, 44, 61, 59, 72, 52, 76, 60, 138, 80, 48, 69, 64, 62, 96, 115, 81, 60, 85, 67, 52, 68, 62, 65, 67, 87, 62, 59, 48, 47, 56, 71, 55, 56, 62, 72, 60, 75, 58, 58, 52, 70, 60, 61, 84, 62, 38, 55, 50, 55, 70, 67, 84, 58, 60, 59, 77, 69, 65, 74, 71, 52, 78, 70, 52, 79, 51, 81, 63, 57, 57, 92, 64, 70, 68, 62, 80, 76, 82, 58, 66, 51, 48, 47, 96, 66, 51, 77, 80, 41, 66, 55, 70, 64, 63, 62, 47, 50, 58, 64, 56, 61, 80, 66, 73, 62, 91, 56, 83, 61, 53, 59, 62, 48, 69, 51, 89, 67, 90, 91, 63, 63, 70, 60, 58, 74, 94, 54, 77, 60, 156, 60, 68, 57, 37, 71, 60, 105, 79, 65, 55, 56, 65, 80, 55, 56, 65, 72, 46, 66, 67, 55, 53, 58, 61, 42, 50, 55, 80, 58, 56, 46, 61, 54, 54, 58, 63, 67, 54, 72, 51, 60, 68, 58, 57, 68, 78, 60, 100, 85, 87, 54, 39, 52, 65, 51, 65, 62, 72, 54, 111, 58, 71, 54, 52, 71, 74, 51, 54, 52, 105, 70, 64, 67, 96, 58, 60, 94, 81, 66, 54, 72, 55, 70, 69, 60, 65, 143, 55, 51, 75, 100, 74, 56, 90, 60, 65, 81, 54, 79, 76, 79, 53, 61, 87, 61, 68, 69, 42, 79, 94, 71, 80, 75, 62, 85, 61, 59, 62, 62, 71, 51, 87, 67, 65, 84, 49, 45, 55, 81, 82, 91, 83, 70, 78, 48, 59, 57, 55, 70, 51, 60, 65, 54, 57, 65, 57, 86, 74, 43, 92, 86, 59, 70, 54, 78, 63, 59, 67, 68, 58, 61, 72, 66, 75, 50, 73, 67, 40, 52, 110, 65, 81, 59, 62, 50, 106, 84, 72, 55, 78, 78, 67, 49, 51, 67, 52, 50, 51, 51, 69, 56, 54, 54, 56, 82, 77, 61, 73, 53, 73, 73, 54, 45, 72, 52, 56, 66, 71, 59, 60, 62, 88, 69, 53, 76, 63, 63, 66, 32, 56, 82, 117, 81, 76, 54, 77, 52, 66, 69, 66, 86, 78, 52, 54, 60, 64, 45, 53, 62, 73, 59, 63, 73, 64, 57, 62, 66, 55, 63, 60, 64, 54, 64, 59, 65, 63, 68, 70, 65, 53, 53, 72, 101, 75, 49, 67, 52, 73, 73, 58, 60, 70, 58, 35, 92, 44, 50, 80, 52, 74, 89, 44, 81, 79, 51, 89, 62, 44, 71, 59, 85, 81, 76, 53, 55, 60, 68, 60, 52, 72, 94, 77, 55, 63, 56, 81, 59, 63, 75, 55, 77, 66, 56, 73, 69, 78, 61, 55, 68, 58, 68, 61, 72, 91, 40, 61, 65, 79, 64, 72, 49, 71, 95, 59, 54, 63, 131, 60, 52, 106, 67, 65, 88, 62, 55, 59, 66, 63, 87, 50, 91, 67, 82, 66, 60, 87, 64, 61, 76, 79, 47, 55, 80, 64, 61, 63, 58, 63, 64, 37, 72, 68, 60, 70, 44, 61, 60, 84, 73, 76, 77, 53, 65, 62, 68, 85, 56, 48, 59, 46, 58, 53, 62, 73, 85, 68, 58, 36, 67, 62, 65, 83, 70, 66, 72, 60, 63, 45, 50, 72, 78, 55, 78, 65, 66, 54, 70, 55, 45, 71, 90, 59, 70, 84, 65, 63, 46, 57, 67, 73, 79, 102, 94, 84, 47, 70, 59, 53, 63, 55, 63, 71, 68, 67, 34, 57, 54, 78, 46, 60, 60, 85, 69, 64, 86, 61, 54, 86, 65, 56, 67, 66, 49, 99, 93, 71, 75, 153, 42, 68, 82, 68, 77, 74, 69, 47, 68, 69, 81, 46, 69, 75, 78, 106, 70, 68, 76, 76, 78, 96, 78, 54, 64, 62, 62, 48, 61, 66, 59, 47, 82, 55, 86, 67, 61, 54, 76, 66, 58, 62, 70, 73, 56, 71, 71, 65, 58, 110, 48, 66, 69, 55, 74, 57, 65, 34, 60, 77, 61, 62, 60, 37, 63, 66, 69, 104, 52, 68, 99, 46, 84, 81, 68, 84, 66, 65, 58, 82, 82, 49, 44, 60, 66, 66, 58, 68, 54, 53, 68, 74, 57, 71, 62, 59, 59, 84, 73, 110, 60, 58, 109, 62, 71, 60, 39, 70, 51, 63, 64, 111, 63, 76, 57, 52, 78, 71, 67, 110, 47, 38, 66, 64, 58, 55, 62, 54, 63, 59, 65, 55, 64, 61, 45, 63, 70, 55, 57, 57, 77, 64, 63, 61, 67, 83, 60, 63, 64, 60, 49, 56, 73, 77, 67, 76, 74, 38, 58, 80, 67, 63, 86, 55, 80, 60, 55, 59, 56, 57, 49, 72, 51, 58, 61, 61, 71, 66, 75, 82, 73, 56, 55, 75, 56, 72, 62, 56, 114, 52, 72, 60, 65, 53, 50, 70, 46, 83, 65, 63, 80, 60, 54, 76, 101, 104, 43, 79, 73, 58, 61, 99, 82, 55, 46, 45, 50, 71, 54, 79, 56, 55, 60, 51, 68, 58, 78, 65, 83, 52, 65, 74, 50, 67, 53, 81, 43, 77, 54, 68, 57, 99, 51, 68, 75, 56, 69, 50, 70, 52, 66, 79, 71, 48, 54, 63, 73, 69, 55, 60, 74, 56, 65, 69, 54, 63, 70, 67, 81, 60, 76, 78, 74, 53, 61, 57, 69, 67, 63, 67, 69, 60, 56, 43, 46, 57, 63, 64, 76, 65, 53, 66, 56, 69, 65, 159, 43, 56, 69, 41, 50, 63, 58, 95, 67, 107, 46, 62, 88, 61, 61, 75, 70, 66, 69, 58, 67, 98, 77, 60, 76, 74, 28, 66, 69, 55, 65, 47, 48, 82, 77, 57, 48, 64, 60, 65, 67, 68, 80, 84, 59, 53, 75, 59, 82, 74, 65, 70, 66, 57, 60, 65, 56, 74, 75, 74, 61, 69, 46, 52, 72, 43, 86, 66, 75, 86, 67, 113, 56, 62, 63, 68, 73, 72, 70, 50, 58, 56, 70, 48, 56, 82, 54, 104, 78, 66, 65, 84, 66, 45, 69, 53, 88, 62, 53, 102, 54, 70, 65, 57, 78, 90, 86, 73, 67, 91, 67, 56, 83, 68, 45, 51, 83, 63, 63, 63, 53, 68, 63, 60, 51, 57, 71, 56, 44, 93, 50, 66, 55, 88, 81, 60, 65, 62, 55, 82, 51, 60, 47, 96, 50, 65, 65, 46, 94, 71, 75, 99, 61, 99, 63, 78, 62, 108, 53, 46, 64, 64, 63, 61, 52, 64, 76, 62, 58, 55, 85, 76, 54, 85, 64, 57, 45, 64, 79, 82, 55, 86, 82, 60, 48, 34, 82, 72, 78, 72, 54, 51, 81, 124, 103, 86, 50, 58, 88, 52, 75, 66, 65, 66, 42, 49, 56, 75, 52, 83, 55, 62, 62, 63, 75, 56, 72, 57, 68, 67, 63, 69, 56, 44, 76, 61, 64, 85, 62, 69, 79, 64, 70, 66, 85, 76, 78, 75, 93, 70, 53, 53, 66, 71, 84, 73, 65, 53, 70, 68, 85, 64, 68, 56, 43, 49, 74, 78, 54, 60, 62, 68, 52, 73, 73, 69, 167, 62, 48, 64, 66, 58, 80, 59, 64, 49, 73, 80, 42, 55, 72, 84, 67, 37, 88, 59, 49, 66, 70, 54, 48, 61, 58, 82, 52, 84, 55, 63, 81, 67, 74, 74, 70, 74, 68, 74, 67, 69, 92, 66, 70, 56, 33, 79, 66, 95, 72, 52, 76, 66, 65, 61, 49, 68, 75, 47, 67, 63, 82, 69, 51, 55, 61, 59, 71, 62, 56, 68, 56, 63, 47, 71, 66, 60, 63, 64, 160, 66, 66, 65, 65, 64, 62, 39, 58, 53, 58, 75, 45, 75, 80, 75, 67, 64, 65, 50, 81, 58, 63, 72, 58, 59, 71, 66, 49, 70, 55, 62, 57, 82, 48, 65, 58, 56, 68, 142, 68, 64, 79, 55, 57, 59, 69, 85, 72, 65, 56, 64, 60, 66, 77, 54, 64, 35, 71, 77, 87, 43, 52, 69, 95, 47, 56, 54, 51, 77, 68, 73, 57, 51, 56, 71, 83, 72, 54, 53, 77, 79, 82, 58, 51, 66, 83, 63, 57, 82, 61, 71, 64, 70, 79, 81, 55, 101, 33, 54, 66, 67, 56, 53, 37, 52, 58, 68, 59, 59, 83, 71, 74, 57, 43, 68, 60, 73, 79, 63, 61, 70, 68, 56, 81, 80, 62, 53, 72, 62, 49, 66, 77, 87, 67, 57, 76, 54, 55, 143, 65, 59, 69, 77, 73, 83, 62, 58, 57, 62, 74, 58, 50, 76, 68, 50, 72, 62, 46, 63, 106, 51, 54, 61, 63, 72, 63, 49, 74, 56, 84, 65, 72, 94, 52, 63, 57, 67, 43, 63, 67, 63, 41, 80, 63, 54, 52, 46, 71, 70, 50, 78, 72, 64, 80, 58, 58, 104, 61, 59, 55, 56, 91, 56, 74, 66, 87, 66, 76, 72, 69, 51, 66, 91, 66, 59, 70, 84, 75, 73, 88, 56, 60, 44, 105, 64, 62, 65, 84, 77, 48, 95, 72, 59, 57, 60, 43, 61, 49, 82, 87, 73, 63, 65, 52, 90, 75, 59, 88, 47, 54, 64, 76, 62, 53, 85, 57, 52, 88, 73, 72, 75, 80, 60, 66, 70, 75, 66, 92, 55, 73, 82, 58, 65, 61, 82, 79, 74, 60, 62, 73, 78, 44, 65, 69, 67, 51, 53, 68, 78, 88, 64, 46, 72, 61, 55, 63, 92, 52, 83, 68, 59, 49, 48, 46, 64, 43, 61, 73, 65, 63, 77, 90, 65, 70, 52, 30, 76, 49, 83, 54, 65, 71, 76, 62, 69, 38, 51, 72, 53, 72, 46, 62, 45, 96, 63, 62, 59, 63, 69, 82, 57, 61, 57, 48, 53, 80, 70, 54, 68, 77, 59, 95, 58, 70, 83, 48, 57, 58, 69, 68, 90, 64, 68, 65, 60, 62, 74, 72, 73, 67, 54, 55, 66, 47, 57, 66, 49, 76, 83, 40, 67, 64, 47, 92, 82, 71, 64, 50, 85, 72, 87, 61, 74, 52, 56, 88, 55, 84, 78, 55, 69, 59, 98, 58, 78, 61, 53, 127, 51, 79, 51, 71, 14, 67, 86, 52, 61, 54, 67, 90, 78, 71, 68, 64, 59, 67, 75, 55, 67, 60, 47, 61, 45, 64, 100, 67, 60, 50, 61, 53, 47, 54, 47, 59, 85, 62, 77, 70, 140, 58, 66, 84, 87, 83, 54, 69, 72, 46, 51, 119, 69, 61, 60, 66, 53, 43, 69, 71, 65, 57, 76, 70, 67, 60, 60, 85, 78, 81, 53, 52, 72, 83, 70, 66, 68, 70, 88, 76, 81, 57, 59, 66, 67, 49, 74, 57, 60, 64, 71, 64, 93, 57, 87, 65, 56, 99, 47, 51, 57, 74, 61, 59, 57, 67, 63, 44, 57, 67, 64, 42, 81, 57, 82, 63, 57, 68, 66, 61, 61, 67, 77, 55, 70, 62, 58, 83, 81, 60, 81, 90, 62, 74, 67, 75, 77, 79, 74, 52, 71, 86, 59, 63, 80, 63, 64, 62, 58, 57, 92, 71, 78, 63, 65, 63, 56, 55, 59, 78, 38, 74, 69, 79, 62, 71, 67, 74, 56, 32, 65, 77, 83, 62, 82, 51, 61, 103, 41, 64, 63, 62, 60, 58, 67, 50, 73, 66, 85, 63, 78, 64, 62, 47, 53, 64, 79, 54, 85, 52, 61, 103, 47, 70, 77, 66, 78, 77, 60, 49, 51, 112, 69, 43, 66, 64, 50, 48, 68, 66, 65, 57, 57, 73, 51, 56, 65, 54, 74, 57, 70, 60, 78, 66, 73, 52, 49, 74, 77, 80, 64, 58, 70, 49, 47, 69, 78, 76, 71, 61, 93, 68, 67, 67, 66, 55, 62, 70, 65, 48, 88, 71, 71, 72, 73, 57, 68, 56, 66, 60, 57, 59, 81, 71, 47, 71, 72, 63, 162, 61, 72, 63, 71, 48, 63, 70, 79, 59, 73, 63, 57, 77, 48, 52, 38, 91, 68, 52, 63, 50, 64, 39, 66, 62, 64, 69, 66, 64, 57, 77, 57, 64, 75, 49, 100, 69, 74, 56, 45, 61, 60, 76, 67, 61, 67, 66, 81, 65, 85, 74, 79, 78, 56, 87, 54, 101, 44, 85, 43, 77, 60, 66, 60, 58, 61, 102, 52, 87, 72, 89, 85, 67, 66, 62, 97, 43, 73, 63, 42, 71, 53, 79, 69, 46, 60, 77, 110, 78, 76, 55, 43, 77, 52, 75, 54, 68, 71, 76, 47, 65, 66, 70, 48, 56, 60, 54, 71, 73, 69, 79, 55, 72, 71, 59, 81, 47, 41, 45, 69, 77, 54, 58, 71, 67, 38, 66, 66, 71, 53, 74, 72, 58, 52, 78, 65, 72, 78, 75, 78, 61, 74, 49, 82, 82, 60, 59, 87, 52, 80, 79, 68, 62, 51, 55, 58, 134, 109, 69, 49, 84, 54, 73, 66, 62, 66, 80, 47, 54, 62, 52, 53, 74, 44, 99, 73, 41, 62, 66, 71, 65, 72, 53, 61, 165, 60, 83, 59, 54, 51, 60, 62, 53, 67, 79, 69, 59, 55, 63, 49, 68, 68, 73, 75, 52, 86, 56, 64, 74, 62, 43, 64, 55, 78, 59, 64, 49, 67, 53, 72, 54, 51, 77, 77, 78, 37, 73, 79, 67, 89, 53, 69, 83, 72, 78, 52, 82, 50, 36, 56, 87, 77, 65, 65, 58, 78, 56, 70, 68, 68, 79, 44, 67, 62, 56, 92, 75, 82, 76, 53, 44, 64, 81, 65, 43, 71, 47, 90, 65, 78, 53, 72, 67, 69, 69, 58, 66, 61, 57, 75, 87, 58, 62, 60, 90, 66, 66, 57, 62, 54, 70, 60, 76, 57, 60, 59, 68, 70, 75, 37, 56, 50, 60, 63, 73, 60, 77, 84, 63, 71, 81, 46, 45, 63, 71, 76, 64, 59, 95, 56, 60, 62, 58, 53, 77, 52, 58, 58, 46, 55, 66, 60, 43, 43, 71, 46, 83, 77, 52, 81, 57, 72, 68, 72, 58, 54, 71, 72, 63, 78, 92, 102, 54, 46, 38, 55, 97, 77, 69, 60, 68, 59, 70, 57, 114, 60, 52, 62, 55, 64, 60, 82, 62, 77, 83, 59, 64, 59, 71, 60, 75, 84, 61, 60, 71, 77, 52, 79, 76, 72, 65, 71, 54, 72, 60, 57, 49, 61, 60, 61, 76, 41, 73, 47, 62, 139, 61, 52, 46, 63, 82, 51, 69, 64, 56, 75, 64, 64, 65, 64, 72, 69, 73, 52, 51, 73, 93, 63, 60, 75, 67, 58, 84, 57, 68, 54, 67, 69, 79, 68, 71, 41, 59, 60, 88, 52, 53, 86, 68, 65, 63, 66, 50, 55, 123, 80, 49, 58, 50, 58, 68, 47, 48, 60, 94, 78, 85, 75, 63, 76, 70, 72, 65, 62, 60, 67, 74, 84, 59, 56, 88, 64, 50, 57, 70, 69, 80, 72, 64, 50, 86, 61, 63, 68, 68, 69, 73, 48, 96, 90, 60, 55, 70, 68, 51, 50, 59, 54, 64, 92, 70, 58, 56, 73, 55, 77, 55, 69, 158, 57, 51, 58, 70, 57, 63, 69, 59, 76, 63, 63, 65, 99, 72, 70, 84, 55, 55, 54, 60, 53, 71, 86, 52, 65, 72, 59, 55, 78, 55, 56, 55, 67, 49, 74, 55, 65, 70, 59, 48, 69, 91, 67, 58, 54, 66, 65, 63, 55, 70, 87, 46, 63, 56, 57, 80, 66, 63, 54, 84, 72, 61, 62, 71, 59, 73, 66, 64, 80, 63, 58, 69, 72, 78, 43, 68, 94, 72, 54, 53, 49, 52, 35, 85, 102, 62, 58, 57, 62, 47, 98, 55, 76, 67, 89, 58, 55, 85, 73, 57, 55, 70, 69, 68, 50, 57, 70, 54, 64, 53, 84, 83, 75, 79, 82, 59, 73, 76, 67, 79, 59, 82, 79, 74, 65, 83, 52, 78, 57, 66, 88, 77, 81, 90, 66, 60, 64, 62, 44, 65, 68, 42, 55, 56, 69, 57, 60, 75, 120, 64, 68, 77, 77, 38, 87, 49, 65, 80, 77, 57, 79, 54, 68, 72, 67, 50, 67, 61, 90, 58, 63, 58, 60, 66, 72, 90, 83, 69, 57, 79, 61, 76, 64, 78, 72, 58, 47, 55, 53, 49, 56, 106, 74, 63, 61, 96, 53, 85, 53, 57, 88, 49, 68, 61, 81, 94, 46, 56, 74, 75, 86, 60, 57, 62, 53, 66, 86, 63, 62, 64, 51, 83, 63, 64, 55, 62, 53, 68, 63, 66, 82, 86, 54, 93, 60, 74, 67, 74, 54, 66, 71, 100, 77, 70, 58, 59, 50, 104, 71, 80, 72, 68, 60, 64, 50, 91, 69, 62, 76, 64, 71, 64, 48, 71, 66, 61, 58, 71, 72, 74, 58, 48, 72, 64, 74, 61, 59, 63, 71, 60, 84, 66, 58, 66, 47, 49, 60, 57, 76, 66, 48, 80, 47, 61, 61, 61, 64, 77, 65, 46, 74, 70, 53, 86, 61, 55, 63, 64, 81, 55, 43, 64, 80, 62, 68, 91, 46, 75, 67, 70, 58, 67, 65, 60, 72, 52, 81, 90, 64, 93, 51, 72, 58, 62, 62, 64, 64, 98, 62, 53, 79, 63, 80, 48, 69, 72, 67, 61, 63, 59, 45, 60, 68, 85, 74, 55, 50, 62, 52, 56, 55, 69, 51, 69, 116, 49, 67, 39, 67, 65, 125, 79, 57, 31, 46, 66, 82, 49, 54, 60, 58, 56, 67, 80, 53, 53, 79, 58, 57, 60, 58, 68, 68, 70, 51, 84, 63, 74, 50, 55, 60, 63, 68, 72, 56, 71, 76, 52, 72, 72, 57, 57, 59, 81, 75, 99, 64, 65, 83, 33, 58, 54, 54, 68, 85, 88, 76, 58, 61, 71, 73, 72, 53, 73, 52, 69, 79, 57, 67, 63, 65, 56, 60, 101, 74, 75, 67, 73, 73, 69, 64, 51, 45, 58, 63, 106, 72, 62, 66, 65, 58, 89, 52, 55, 78, 65, 85, 86, 54, 57, 65, 62, 70, 60, 65, 102, 82, 64, 73, 65, 88, 52, 55, 65, 107, 95, 58, 63, 62, 57, 54, 66, 72, 49, 71, 71, 75, 46, 72, 55, 54, 58, 75, 63, 61, 59, 63, 73, 71, 77, 53, 81, 72, 57, 70, 70, 66, 55, 47, 69, 39, 67, 63, 56, 62, 57, 54, 56, 66, 87, 62, 72, 47, 58, 48, 72, 131, 58, 90, 48, 59, 72, 59, 59, 64, 75, 55, 64, 66, 71, 66, 48, 49, 77, 71, 47, 75, 80, 57, 59, 91, 59, 51, 90, 58, 55, 55, 65, 67, 50, 83, 55, 70, 126, 60, 67, 60, 65, 114, 90, 66, 65, 65, 57, 51, 63, 41, 101, 66, 62, 54, 52, 68, 51, 69, 84, 70, 55, 58, 71, 54, 66, 58, 59, 77, 74, 57, 72, 82, 52, 72, 60, 59, 61, 82, 62, 66, 51, 81, 63, 64, 52, 53, 60, 66, 48, 69, 66, 70, 53, 64, 54, 61, 70, 70, 67, 56, 67, 57, 59, 65, 70, 50, 69, 58, 56, 58, 64, 65, 58, 76, 60, 84, 35, 57, 51, 54, 69, 56, 81, 52, 51, 69, 67, 76, 47, 66, 60, 57, 57, 62, 63, 58, 54, 51, 67, 67, 61, 57, 62, 76, 58, 68, 54, 69, 56, 53, 66, 66, 72, 59, 65, 63, 56, 65, 60, 62, 54, 71, 69, 63, 73, 129, 58, 54, 79, 70, 73, 57, 56, 56, 77, 60, 71, 47, 53, 57, 64, 71, 61, 59, 57, 63, 84, 75, 60, 61, 74, 72, 65, 63, 79, 68, 64, 90, 35, 75, 91, 70, 57, 59, 63, 76, 73, 57, 58, 75, 67, 66, 61, 70, 44, 62, 90, 64, 64, 74, 57, 53, 58, 72, 69, 50, 57, 60, 66, 88, 67, 79, 45, 90, 72, 67, 54, 104, 61, 88, 60, 70, 68, 54, 70, 55, 52, 63, 72, 47, 56, 90, 76, 82, 51, 72, 59, 67, 99, 74, 62, 48, 103, 81, 57, 86, 75, 74, 61, 83, 57, 53, 101, 45, 80, 59, 59, 61, 53, 72, 80, 72, 78, 55, 70, 65, 64, 63, 52, 60, 63, 58, 73, 54, 51, 50, 55, 51, 64, 51, 53, 62, 88, 93, 69, 59, 60, 65, 84, 64, 61, 70, 56, 60, 68, 51, 83, 65, 57, 87, 57, 68, 64, 45, 57, 64, 63, 83, 73, 69, 66, 53, 68, 54, 68, 57, 60, 73, 67, 58, 81, 62, 58, 60, 70, 103, 71, 55, 64, 61, 78, 69, 60, 60, 80, 74, 58, 45, 92, 72, 50, 64, 67, 59, 67, 53, 43, 68, 69, 60, 76, 60, 104, 66, 70, 69, 65, 69, 74, 66, 65, 97, 52, 77, 77, 65, 48, 60, 75, 77, 77, 61, 120, 65, 56, 51, 66, 66, 65, 65, 65, 54, 84, 66, 40, 60, 49, 60, 51, 59, 72, 80, 61, 127, 51, 72, 69, 52, 58, 80, 86, 71, 65, 78, 39, 58, 60, 56, 74, 71, 55, 66, 65, 65, 75, 169, 56, 77, 129, 56, 58, 61, 69, 58, 51, 58, 62, 65, 63, 66, 74, 54, 55, 57, 58, 47, 69, 65, 66, 60, 65, 57, 55, 93, 66, 65, 87, 71, 80, 57, 69, 59, 94, 57, 58, 61, 66, 64, 76, 62, 58, 58, 59, 61, 56, 72, 54, 73, 53, 64, 47, 54, 70, 73, 107, 65, 51, 54, 65, 78, 63, 53, 69, 65, 67, 65, 71, 71, 54, 53, 44, 72, 63, 89, 64, 61, 59, 76, 64, 62, 58, 95, 66, 96, 61, 47, 71, 71, 76, 70, 73, 56, 58, 69, 57, 72, 50, 66, 65, 81, 68, 81, 53, 65, 79, 81, 69, 78, 58, 61, 75, 60, 73, 81, 66, 52, 80, 71, 64, 62, 64, 57, 47, 62, 57, 84, 48, 62, 46, 76, 52, 73, 75, 74, 69, 69, 71, 54, 55, 66, 57, 68, 58, 61, 90, 85, 104, 49, 84, 77, 55, 53, 74, 74, 51, 52, 76, 64, 79, 64, 71, 54, 56, 63, 72, 65, 61, 41, 65, 35, 56, 61, 69, 65, 43, 58, 77, 61, 71, 68, 72, 67, 76, 55, 148, 51, 63, 61, 62, 54, 61, 58, 59, 142, 66, 81, 73, 56, 74, 49, 48, 68, 121, 60, 69, 79, 71, 75, 58, 76, 71, 61, 104, 55, 77, 60, 69, 78, 60, 64, 65, 79, 59, 49, 54, 59, 86, 66, 59, 70, 85, 61, 61, 64, 54, 53, 55, 63, 73, 83, 52, 57, 62, 93, 68, 45, 97, 62, 49, 94, 63, 50, 75, 65, 82, 61, 65, 55, 69, 61, 56, 50, 58, 66, 89, 63, 70, 59, 72, 89, 65, 58, 67, 53, 63, 77, 62, 54, 65, 54, 58, 55, 60, 42, 64, 71, 59, 62, 65, 59, 58, 58, 62, 58, 77, 69, 62, 59, 74, 71, 79, 92, 84, 61, 44, 79, 80, 57, 47, 54, 78, 54, 64, 60, 41, 70, 50, 43, 71, 72, 63, 74, 51, 98, 50, 50, 62, 57, 42, 45, 55, 66, 62, 57, 78, 75, 66, 75, 72, 60, 71, 69, 53, 65, 67, 67, 65, 59, 42, 63, 106, 73, 56, 42, 66, 58, 80, 80, 71, 73, 64, 67, 65, 68, 65, 63, 68, 62, 70, 73, 58, 76, 109, 52, 74, 52, 82, 117, 74, 55, 66, 71, 70, 61, 52, 65, 93, 66, 76, 60, 53, 59, 51, 70, 53, 90, 61, 71, 51, 69, 59, 54, 67, 58, 73, 64, 45, 59, 70, 85, 58, 55, 109, 54, 63, 53, 69, 89, 70, 72, 74, 51, 62, 65, 81, 76, 52, 65, 67, 81, 60, 60, 87, 66, 56, 77, 58, 52, 70, 93, 63, 64, 46, 92, 52, 85, 85, 58, 82, 54, 63, 75, 69, 82, 67, 68, 93, 69, 68, 84, 70, 52, 53, 80, 65, 53, 59, 56, 72, 56, 78, 46, 61, 77, 62, 58, 58, 49, 46, 57, 77, 105, 66, 88, 60, 45, 71, 67, 55, 78, 55, 65, 103, 76, 75, 76, 70, 68, 88, 54, 69, 63, 74, 60, 47, 65, 67, 77, 60, 69, 68, 73, 50, 74, 69, 69, 68, 62, 72, 90, 82, 51, 81, 41, 55, 59, 52, 52, 76, 58, 67, 53, 95, 56, 65, 95, 79, 89, 64, 50, 51, 54, 47, 72, 55, 67, 68, 74, 87, 42, 66, 81, 49, 79, 67, 82, 62, 55, 89, 71, 61, 47, 52, 96, 55, 49, 71, 63, 59, 72, 107, 64, 59, 51, 60, 72, 52, 57, 70, 58, 50, 64, 57, 132, 58, 81, 73, 57, 68, 56, 66, 73, 53, 58, 65, 45, 69, 86, 70, 69, 72, 64, 75, 60, 57, 53, 63, 48, 54, 78, 69, 64, 73, 61, 59, 49, 88, 64, 57, 76, 75, 51, 71, 55, 75, 68, 55, 68, 57, 57, 69, 65, 88, 46, 66, 58, 52, 74, 50, 72, 54, 83, 70, 53, 56, 52, 76, 78, 65, 50, 68, 62, 49, 52, 62, 64, 52, 47, 99, 67, 74, 55, 65, 59, 52, 56, 71, 54, 54, 77, 57, 43, 50, 62, 61, 43, 92, 65, 39, 58, 51, 54, 82, 53, 37, 67, 59, 76, 71, 73, 71, 64, 93, 57, 59, 83, 61, 61, 46, 64, 45, 86, 32, 49, 78, 81, 61, 52, 44, 60, 56, 75, 71, 56, 64, 66, 64, 67, 76, 67, 75, 68, 63, 67, 53, 57, 77, 79, 68, 93, 52, 57, 60, 63, 59, 59, 55, 55, 53, 53, 87, 60, 47, 88, 61, 49, 72, 58, 57, 92, 62, 47, 56, 84, 68, 62, 90, 76, 63, 53, 79, 82, 58, 78, 69, 65, 43, 67, 62, 91, 48, 60, 43, 70, 52, 68, 84, 50, 56, 65, 73, 69, 72, 67, 79, 60, 58, 51, 49, 54, 61, 70, 51, 65, 61, 80, 52, 77, 69, 93, 73, 73, 151, 65, 52, 82, 61, 51, 55, 49, 87, 57, 56, 75, 77, 78, 82, 58, 78, 85, 55, 62, 57, 69, 69, 72, 54, 91, 106, 59, 80, 53, 48, 66, 67, 73, 58, 72, 62, 66, 62, 52, 49, 42, 57, 72, 81, 44, 65, 54, 62, 96, 61, 75, 64, 71, 62, 77, 63, 59, 47, 55, 68, 57, 63, 62, 81, 56, 47, 72, 68, 63, 60, 63, 81, 47, 87, 58, 87, 58, 78, 54, 56, 47, 85, 70, 65, 70, 66, 38, 72, 77, 66, 74, 59, 50, 57, 64, 88, 75, 56, 65, 77, 62, 65, 72, 47, 50, 51, 85, 56, 70, 64, 64, 62, 64, 56, 42, 44, 88, 60, 56, 75, 72, 84, 61, 64, 69, 63, 88, 56, 74, 55, 70, 76, 71, 54, 49, 59, 80, 65, 63, 58, 47, 72, 61, 74, 56, 77, 55, 68, 56, 74, 60, 64, 52, 78, 59, 51, 63, 67, 62, 83, 74, 55, 61, 64, 73, 73, 59, 82, 63, 55, 52, 68, 66, 63, 56, 46, 79, 57, 69, 56, 64, 75, 64, 54, 78, 54, 43, 62, 65, 85, 78, 62, 46, 53, 50, 64, 65, 78, 60, 73, 92, 93, 43, 65, 65, 63, 59, 73, 44, 70, 72, 59, 97, 68, 92, 59, 62, 106, 51, 47, 71, 65, 53, 85, 57, 62, 68, 55, 60, 79, 55, 58, 62, 51, 35, 58, 76, 66, 70, 63, 53, 115, 115, 54, 73, 61, 66, 72, 65, 93, 66, 74, 47, 52, 56, 54, 61, 56, 82, 79, 74, 76, 59, 77, 63, 74, 72, 53, 65, 53, 62, 71, 53, 62, 52, 81, 52, 70, 50, 69, 61, 49, 76, 62, 65, 68, 75, 64, 63, 62, 54, 61, 60, 85, 52, 66, 70, 66, 63, 59, 76, 110, 56, 61, 79, 60, 64, 63, 64, 79, 52, 87, 56, 69, 63, 67, 67, 61, 73, 69, 87, 45, 89, 67, 79, 77, 72, 59, 67, 77, 55, 67, 57, 66, 81, 52, 142, 68, 78, 86, 72, 76, 68, 72, 69, 65, 47, 49, 54, 70, 61, 65, 66, 58, 71, 59, 60, 31, 72, 65, 98, 54, 50, 70, 76, 59, 69, 83, 89, 63, 91, 74, 65, 65, 56, 78, 80, 69, 64, 62, 63, 45, 67, 73, 64, 51, 63, 53, 61, 72, 71, 52, 69, 53, 55, 77, 65, 50, 83, 76, 64, 65, 68, 58, 50, 65, 93, 89, 53, 95, 102, 62, 68, 46, 52, 66, 63, 52, 57, 56, 71, 73, 58, 63, 65, 66, 69, 77, 62, 59, 76, 56, 88, 77, 60, 59, 68, 77, 75, 52, 83, 77, 52, 52, 62, 50, 98, 52, 65, 71, 72, 60, 72, 94, 76, 76, 78, 61, 72, 83, 70, 80, 58, 67, 49, 52, 53, 70, 75, 68, 56, 64, 86, 63, 73, 99, 74, 164, 56, 64, 74, 76, 60, 47, 68, 68, 50, 60, 67, 67, 65, 83, 67, 76, 83, 44, 67, 53, 64, 91, 49, 48, 60, 72, 59, 69, 64, 70, 71, 57, 67, 54, 87, 70, 65, 61, 60, 57, 53, 67, 57, 57, 51, 66, 59, 85, 74, 73, 89, 66, 78, 54, 74, 68, 56, 58, 61, 61, 74, 77, 70, 60, 59, 73, 66, 61, 60, 49, 55, 63, 70, 67, 59, 63, 77, 71, 70, 63, 64, 62, 56, 63, 71, 73, 64, 67, 57, 59, 72, 70, 57, 117, 69, 61, 43, 83, 57, 60, 53, 71, 63, 86, 69, 64, 77, 56, 45, 50, 53, 54, 86, 65, 56, 134, 56, 50, 63, 79, 125, 86, 84, 83, 62, 60, 83, 69, 68, 72, 82, 59, 45, 62, 50, 58, 74, 40, 59, 54, 61, 75, 70, 77, 59, 71, 63, 60, 70, 54, 62, 80, 90, 58, 61, 87, 76, 57, 67, 70, 62, 72, 62, 57, 61, 63, 65, 67, 91, 54, 70, 68, 45, 62, 90, 53, 95, 58, 88, 52, 60, 71, 84, 61, 105, 58, 66, 50, 87, 95, 82, 91, 55, 62, 67, 66, 81, 78, 75, 70, 78, 45, 72, 66, 39, 60, 71, 53, 59, 62, 60, 62, 60, 92, 56, 73, 50, 54, 50, 60, 71, 77, 71, 77, 70, 52, 72, 46, 68, 56, 53, 52, 63, 48, 50, 92, 78, 73, 66, 77, 80, 81, 60, 69, 69, 61, 69, 84, 63, 63, 53, 71, 85, 59, 76, 67, 62, 67, 72, 72, 58, 111, 81, 51, 40, 53, 57, 76, 73, 57, 47, 82, 46, 60, 64, 67, 52, 39, 72, 78, 108, 57, 64, 36, 57, 80, 64, 69, 70, 64, 57, 60, 53, 68, 68, 57, 47, 84, 69, 60, 68, 64, 57, 68, 64, 63, 70, 83, 52, 52, 54, 62, 75, 74, 59, 98, 64, 61, 70, 50, 78, 62, 71, 59, 71, 63, 92, 82, 47, 62, 41, 48, 77, 71, 61, 55, 75, 59, 66, 58, 88, 88, 45, 62, 73, 91, 77, 66, 57, 62, 59, 77, 79, 64, 77, 106, 63, 84, 61, 75, 61, 58, 42, 66, 58, 58, 58, 69, 62, 57, 76, 69, 69, 93, 52, 76, 43, 49, 76, 79, 74, 56, 63, 71, 94, 58, 73, 45, 60, 64, 60, 53, 60, 68, 52, 64, 86, 54, 42, 73, 78, 89, 50, 76, 63, 59, 56, 66, 64, 46, 63, 54, 63, 61, 46, 49, 52, 46, 47, 79, 60, 61, 41, 67, 78, 41, 71, 74, 87, 58, 66, 48, 73, 66, 82, 63, 77, 69, 72, 68, 55, 52, 66, 59, 65, 52, 81, 77, 68, 61, 67, 57, 61, 51, 82, 77, 58, 54, 60, 55, 54, 59, 69, 57, 90, 96, 63, 61, 70, 68, 70, 75, 63, 71, 52, 52, 64, 40, 60, 60, 80, 51, 66, 93, 54, 56, 62, 82, 53, 83, 74, 79, 73, 75, 62, 74, 68, 69, 51, 95, 76, 57, 52, 71, 74, 80, 64, 54, 55, 57, 65, 71, 83, 50, 66, 53, 61, 64, 64, 54, 45, 57, 77, 64, 51, 56, 62, 60, 84, 65, 69, 69, 62, 55, 51, 51, 62, 54, 60, 58, 78, 47, 88, 98, 67, 132, 62, 63, 63, 60, 64, 72, 69, 88, 44, 73, 82, 65, 61, 93, 61, 67, 84, 60, 64, 54, 54, 73, 66, 53, 79, 96, 76, 59, 60, 65, 65, 78, 61, 57, 66, 59, 75, 64, 66, 62, 46, 68, 64, 63, 64, 44, 53, 63, 89, 65, 84, 51, 73, 52, 78, 67, 80, 67, 52, 40, 61, 63, 72, 63, 45, 63, 66, 60, 61, 70, 60, 78, 66, 63, 66, 76, 77, 62, 65, 62, 66, 79, 59, 68, 77, 68, 50, 67, 73, 63, 49, 57, 80, 62, 53, 94, 70, 68, 60, 52, 62, 72, 52, 63, 63, 52, 70, 48, 61, 60, 56, 68, 45, 57, 56, 76, 67, 61, 61, 47, 64, 80, 47, 72, 50, 69, 60, 68, 70, 85, 68, 64, 65, 53, 45, 64, 64, 80, 73, 55, 53, 69, 76, 81, 75, 81, 64, 61, 69, 61, 37, 82, 70, 67, 73, 110, 63, 66, 72, 54, 61, 69, 78, 67, 74, 80, 66, 69, 74, 55, 53, 73, 64, 58, 55, 75, 74, 59, 53, 78, 110, 63, 66, 59, 65, 61, 84, 54, 59, 56, 81, 78, 75, 58, 55, 54, 68, 68, 56, 60, 78, 84, 59, 58, 47, 72, 61, 60, 63, 62, 50, 50, 66, 80, 73, 73, 60, 105, 66, 58, 71, 62, 77, 65, 71, 57, 64, 76, 62, 84, 50, 56, 67, 55, 106, 67, 88, 69, 73, 51, 63, 62, 132, 60, 54, 45, 53, 65, 58, 65, 61, 78, 57, 43, 69, 64, 53, 67, 87, 64, 52, 108, 56, 91, 48, 74, 76, 80, 50, 49, 60, 85, 56, 61, 82, 75, 59, 77, 56, 85, 58, 58, 61, 44, 60, 83, 58, 62, 36, 92, 59, 66, 64, 66, 61, 110, 65, 60, 69, 51, 69, 76, 66, 67, 59, 82, 67, 62, 62, 66, 73, 63, 65, 62, 57, 64, 73, 62, 54, 60, 93, 57, 76, 67, 60, 73, 80, 92, 64, 101, 65, 54, 50, 62, 64, 54, 76, 66, 57, 131, 76, 60, 66, 66, 68, 74, 71, 57, 94, 61, 64, 74, 64, 64, 61, 75, 59, 56, 60, 79, 75, 78, 66, 75, 65, 63, 46, 60, 99, 71, 69, 65, 60, 56, 60, 88, 71, 66, 56, 57, 59, 82, 53, 84, 65, 64, 55, 58, 74, 53, 68, 64, 47, 71, 57, 48, 59, 60, 62, 86, 56, 66, 66, 89, 59, 63, 86, 63, 56, 74, 93, 59, 54, 65, 71, 59, 82, 59, 67, 63, 68, 70, 61, 73, 64, 84, 70, 50, 64, 64, 60, 62, 90, 76, 48, 67, 69, 76, 82, 71, 76, 63, 168, 74, 70, 74, 67, 85, 55, 73, 66, 67, 78, 76, 65, 79, 55, 63, 63, 65, 66, 41, 73, 61, 71, 73, 61, 43, 45, 59, 77, 57, 108, 81, 49, 68, 60, 66, 82, 60, 40, 71, 67, 60, 62, 61, 63, 62, 75, 61, 72, 73, 54, 56, 52, 56, 45, 80, 49, 85, 62, 35, 64, 54, 74, 77, 74, 60, 105, 54, 53, 75, 74, 55, 88, 57, 73, 58, 43, 65, 62, 66, 70, 41, 80, 70, 78, 81, 76, 76, 61, 58, 96, 56, 76, 55, 58, 78, 68, 77, 74, 62, 65, 55, 73, 73, 80, 66, 78, 37, 77, 86, 41, 62, 73, 53, 67, 83, 61, 80, 70, 57, 79, 62, 73, 77, 58, 100, 58, 86, 40, 66, 95, 51, 90, 49, 67, 61, 48, 67, 62, 47, 48, 62, 69, 65, 49, 74, 59, 81, 71, 82, 71, 71, 65, 77, 66, 65, 177, 58, 38, 59, 68, 67, 52, 40, 40, 39, 72, 51, 68, 50, 77, 51, 56, 74, 43, 45, 61, 79, 52, 103, 57, 53, 41, 96, 56, 69, 65, 48, 81, 67, 52, 61, 57, 53, 53, 88, 55, 61, 55, 62, 52, 53, 72, 55, 51, 85, 53, 95, 104, 57, 83, 44, 79, 85, 73, 69, 63, 81, 74, 85, 89, 46, 63, 99, 64, 52, 69, 88, 75, 64, 76, 85, 61, 46, 65, 60, 58, 48, 61, 48, 65, 62, 77, 81, 37, 72, 60, 51, 46, 66, 64, 73, 51, 75, 64, 73, 60, 79, 88, 35, 62, 69, 61, 57, 73, 68, 60, 61, 62, 55, 88, 78, 65, 84, 55, 95, 57, 88, 59, 77, 65, 68, 76, 61, 66, 37, 82, 61, 70, 69, 63, 62, 57, 62, 54, 53, 55, 77, 81, 59, 42, 68, 65, 65, 75, 63, 76, 124, 68, 69, 78, 61, 78, 71, 87, 86, 51, 62, 61, 49, 43, 56, 59, 54, 57, 63, 64, 63, 64, 79, 62, 58, 73, 69, 51, 66, 65, 77, 53, 56, 69, 80, 51, 85, 61, 66, 77, 57, 78, 68, 59, 59, 55, 99, 63, 66, 62, 46, 47, 67, 55, 80, 76, 85, 85, 69, 74, 77, 71, 70, 48, 58, 70, 49, 53, 55, 71, 62, 60, 69, 70, 51, 57, 73, 90, 66, 48, 49, 56, 73, 54, 65, 67, 71, 65, 68, 83, 67, 82, 103, 63, 52, 57, 75, 81, 69, 82, 67, 61, 65, 48, 98, 59, 70, 66, 61, 69, 49, 71, 63, 69, 70, 59, 119, 86, 61, 72, 48, 72, 65, 76, 62, 49, 61, 52, 50, 68, 74, 40, 63, 41, 72, 63, 75, 59, 71, 61, 63, 68, 60, 62, 63, 104, 59, 58, 36, 41, 50, 71, 62, 82, 59, 51, 60, 48, 82, 48, 59, 60, 54, 64, 72, 73, 81, 85, 88, 70, 61, 64, 43, 73, 78, 73, 58, 74, 55, 59, 81, 82, 62, 67, 67, 83, 59, 66, 62, 83, 48, 104, 101, 78, 79, 47, 55, 42, 70, 89, 65, 57, 44, 67, 78, 88, 41, 47, 73, 77, 89, 62, 51, 52, 66, 74, 100, 43, 68, 80, 63, 71, 48, 57, 63, 58, 67, 50, 60, 44, 58, 88, 69, 70, 75, 69, 139, 109, 61, 56, 48, 70, 54, 66, 46, 68, 59, 57, 37, 90, 72, 59, 72, 57, 54, 49, 60, 67, 49, 70, 91, 62, 51, 64, 61, 64, 79, 53, 61, 82, 68, 68, 80, 57, 42, 61, 59, 48, 96, 53, 57, 64, 59, 76, 62, 52, 71, 81, 63, 58, 83, 59, 69, 66, 62, 68, 60, 73, 78, 94, 70, 67, 79, 64, 96, 98, 55, 56, 61, 56, 69, 79, 59, 43, 59, 71, 49, 68, 80, 65, 45, 62, 47, 79, 55, 59, 61, 76, 59, 74, 82, 60, 72, 72, 91, 57, 85, 89, 80, 91, 62, 154, 74, 69, 69, 99, 58, 66, 78, 66, 64, 47, 63, 78, 53, 62, 74, 65, 56, 69, 71, 71, 78, 51, 69, 66, 75, 71, 78, 84, 53, 53, 67, 66, 57, 67, 54, 63, 83, 65, 61, 104, 46, 70, 62, 67, 45, 44, 84, 49, 74, 68, 75, 57, 64, 79, 66, 64, 67, 89, 60, 65, 85, 58, 90, 41, 82, 63, 59, 61, 49, 59, 78, 59, 64, 54, 77, 89, 88, 112, 63, 64, 73, 91, 69, 66, 72, 68, 56, 50, 63, 61, 58, 56, 56, 85, 89, 59, 78, 96, 64, 70, 52, 56, 57, 60, 58, 60, 54, 61, 56, 97, 88, 80, 66, 55, 52, 71, 42, 68, 59, 64, 73, 54, 72, 56, 65, 62, 57, 67, 60, 54, 102, 53, 61, 80, 43, 52, 88, 62, 74, 62, 92, 76, 55, 60, 91, 58, 66, 88, 67, 61, 61, 82, 58, 64, 76, 69, 61, 68, 73, 51, 66, 65, 56, 85, 40, 85, 59, 48, 53, 44, 48, 73, 45, 56, 59, 56, 59, 65, 58, 59, 62, 50, 143, 56, 96, 88, 89, 75, 56, 77, 61, 75, 71, 63, 52, 61, 88, 64, 96, 55, 70, 76, 58, 69, 130, 70, 62, 70, 67, 55, 80, 46, 53, 74, 71, 73, 78, 79, 147, 77, 62, 49, 38, 65, 73, 90, 53, 63, 91, 53, 50, 75, 67, 70, 73, 62, 56, 51, 63, 61, 54, 89, 58, 65, 86, 116, 63, 42, 64, 59, 62, 41, 60, 49, 55, 64, 48, 54, 83, 69, 31, 67, 55, 61, 53, 58, 38, 68, 41, 68, 67, 74, 65, 55, 62, 68, 48, 54, 68, 56, 56, 73, 74, 57, 45, 87, 55, 65, 52, 72, 71, 65, 56, 104, 53, 103, 64, 67, 40, 62, 67, 94, 50, 66, 92, 65, 60, 90, 59, 71, 72, 132, 80, 66, 49, 60, 53, 54, 57, 83, 64, 48, 77, 78, 47, 46, 52, 59, 87, 30, 50, 68, 73, 67, 52, 53, 82, 36, 87, 73, 19, 62, 49, 73, 69, 56, 64, 66, 80, 57, 91, 62, 56, 56, 78, 121, 49, 67, 71, 98, 69, 88, 41, 58, 62, 60, 64, 61, 44, 81, 55, 46, 69, 59, 63, 62, 81, 52, 68, 54, 50, 70, 57, 60, 54, 61, 57, 69, 46, 68, 68, 59, 63, 65, 83, 71, 52, 113, 58, 66, 73, 61, 64, 76, 51, 84, 85, 49, 69, 96, 64, 51, 52, 63, 61, 58, 62, 57, 56, 113, 51, 50, 70, 89, 48, 84, 62, 56, 62, 48, 53, 50, 87, 72, 54, 67, 62, 59, 49, 47, 50, 63, 68, 86, 75, 70, 68, 45, 66, 52, 73, 58, 48, 67, 61, 47, 69, 107, 94, 60, 64, 81, 51, 49, 56, 65, 66, 51, 61, 54, 76, 81, 77, 60, 62, 55, 84, 69, 78, 57, 77, 65, 56, 50, 52, 109, 47, 54, 53, 70, 57, 57, 65, 73, 72, 60, 49, 51, 84, 62, 56, 65, 75, 72, 48, 98, 58, 67, 64, 77, 78, 66, 60, 88, 74, 74, 63, 98, 151, 61, 58, 75, 58, 94, 65, 110, 64, 58, 64, 58, 59, 41, 56, 55, 68, 75, 78, 59, 87, 51, 86, 64, 112, 62, 67, 59, 60, 84, 88, 43, 49, 58, 54, 86, 58, 58, 76, 53, 69, 77, 66, 62, 41, 80, 51, 50, 58, 57, 58, 66, 66, 70, 36, 46, 54, 72, 66, 55, 54, 42, 55, 60, 60, 72, 57, 64, 78, 58, 60, 64, 60, 33, 76, 52, 80, 55, 71, 63, 47, 53, 67, 74, 68, 61, 62, 80, 57, 83, 67, 75, 59, 74, 72, 76, 66, 52, 54, 52, 59, 55, 80, 75, 47, 39, 72, 59, 59, 80, 71, 56, 71, 50, 61, 61, 69, 63, 62, 80, 94, 58, 80, 66, 76, 51, 50, 68, 47, 63, 62, 45, 92, 77, 66, 66, 70, 64, 70, 90, 72, 59, 58, 60, 43, 71, 73, 84, 74, 64, 78, 64, 59, 64, 72, 86, 60, 72, 41, 80, 61, 73, 70, 58, 57, 54, 60, 87, 75, 59, 68, 72, 68, 69, 50, 64, 57, 85, 73, 59, 86, 56, 36, 59, 103, 80, 62, 93, 55, 61, 54, 69, 66, 67, 64, 60, 50, 87, 62, 51, 66, 51, 59, 80, 72, 61, 50, 68, 60, 55, 50, 57, 68, 57, 74, 58, 51, 74, 70, 63, 63, 55, 108, 78, 49, 58, 89, 87, 78, 80, 54, 75, 50, 60, 62, 54, 61, 46, 69, 63, 63, 49, 61, 55, 70, 60, 66, 51, 57, 68, 34, 64, 66, 53, 67, 47, 56, 149, 74, 62, 46, 79, 73, 62, 104, 61, 57, 57, 73, 68, 79, 63, 121, 75, 62, 67, 34, 76, 71, 55, 87, 70, 52, 67, 116, 67, 61, 60, 47, 62, 73, 59, 53, 87, 70, 65, 64, 78, 81, 70, 71, 64, 51, 55, 49, 79, 84, 53, 56, 84, 79, 44, 64, 71, 64, 73, 53, 75, 92, 47, 62, 43, 65, 61, 86, 66, 59, 62, 57, 98, 58, 65, 51, 61, 56, 95, 117, 66, 76, 80, 59, 53, 47, 71, 77, 52, 73, 64, 81, 49, 60, 54, 56, 67, 48, 73, 70, 59, 79, 66, 132, 73, 81, 64, 47, 64, 89, 53, 55, 78, 72, 53, 67, 70, 70, 85, 43, 46, 54, 67, 56, 58, 68, 70, 58, 68, 67, 107, 62, 47, 57, 63, 73, 62, 52, 65, 51, 49, 51, 40, 56, 54, 61, 47, 69, 61, 62, 67, 54, 66, 58, 56, 46, 63, 83, 68, 63, 74, 78, 67, 66, 95, 47, 69, 50, 66, 53, 65, 46, 61, 56, 59, 59, 73, 80, 47, 57, 52, 57, 57, 65, 66, 64, 62, 63, 86, 62, 65, 59, 95, 75, 48, 72, 54, 102, 43, 72, 62, 56, 73, 76, 55, 71, 47, 84, 66, 86, 50, 76, 63, 84, 71, 61, 89, 63, 67, 63, 83, 77, 66, 71, 49, 82, 77, 84, 66, 57, 39, 55, 58, 33, 65, 80, 83, 43, 58, 62, 85, 69, 51, 67, 62, 78, 73, 65, 51, 65, 61, 53, 62, 53, 47, 64, 74, 57, 58, 60, 57, 76, 85, 50, 63, 55, 62, 68, 59, 53, 61, 88, 52, 53, 59, 61, 100, 58, 51, 70, 52, 81, 67, 51, 67, 62, 108, 124, 47, 84, 57, 62, 70, 73, 52, 65, 57, 78, 42, 83, 66, 59, 69, 51, 56, 63, 45, 63, 67, 67, 106, 67, 68, 71, 70, 69, 57, 76, 55, 86, 56, 46, 70, 99, 62, 55, 74, 65, 62, 60, 98, 74, 40, 61, 65, 74, 85, 56, 41, 65, 69, 66, 71, 65, 57, 51, 55, 72, 57, 59, 62, 72, 87, 57, 40, 63, 42, 92, 58, 64, 68, 63, 44, 53, 56, 87, 43, 64, 61, 67, 72, 47, 63, 57, 84, 92, 74, 84, 90, 84, 54, 75, 68, 46, 55, 84, 65, 55, 63, 57, 90, 53, 50, 62, 42, 61, 70, 65, 67, 68, 59, 71, 58, 70, 44, 75, 72, 54, 49, 66, 79, 123, 49, 73, 69, 74, 90, 57, 52, 67, 65, 60, 61, 82, 65, 68, 65, 66, 66, 73, 50, 73, 72, 76, 72, 65, 52, 81, 76, 59, 81, 76, 66, 69, 69, 63, 68, 45, 51, 60, 63, 61, 66, 69, 67, 75, 99, 47, 72, 122, 90, 75, 61, 62, 55, 63, 56, 71, 65, 57, 72, 67, 41, 44, 73, 49, 56, 72, 70, 69, 75, 74, 81, 116, 48, 66, 57, 79, 69, 69, 58, 60, 62, 40, 64, 47, 49, 107, 60, 68, 46, 87, 75, 62, 78, 61, 65, 58, 80, 49, 55, 82, 62, 85, 64, 80, 80, 53, 67, 99, 68, 56, 92, 83, 78, 66, 75, 37, 41, 50, 50, 46, 80, 41, 56, 57, 63, 50, 75, 63, 64, 64, 52, 88, 36, 68, 76, 63, 71, 69, 59, 62, 67, 83, 73, 66, 58, 59, 50, 52, 64, 75, 59, 50, 56, 76, 57, 66, 74, 56, 50, 55, 57, 46, 123, 59, 58, 60, 74, 67, 66, 69, 59, 58, 76, 47, 75, 59, 58, 62, 63, 84, 56, 67, 51, 79, 81, 74, 52, 79, 57, 54, 66, 57, 68, 66, 54, 61, 58, 66, 44, 50, 71, 70, 46, 79, 63, 46, 72, 33, 66, 52, 84, 60, 81, 48, 51, 77, 101, 57, 58, 80, 74, 52, 48, 82, 66, 64, 60, 63, 58, 74, 100, 65, 50, 62, 67, 81, 62, 76, 95, 82, 52, 61, 45, 57, 49, 99, 33, 50, 51, 37, 76, 63, 77, 137, 53, 69, 66, 72, 66, 91, 80, 86, 50, 66, 76, 69, 63, 42, 69, 71, 58, 58, 78, 66, 86, 91, 110, 80, 52, 105, 60, 67, 81, 63, 50, 64, 68, 74, 72, 52, 92, 96, 54, 68, 59, 56, 60, 68, 55, 55, 110, 137, 42, 65, 57, 67, 68, 73, 61, 75, 48, 86, 65, 72, 70, 60, 73, 66, 76, 61, 66, 55, 55, 89, 60, 56, 67, 53, 74, 72, 78, 68, 75, 65, 69, 82, 76, 82, 66, 55, 68, 75, 80, 80, 74, 56, 42, 81, 83, 81, 51, 70, 64, 71, 95, 56, 54, 45, 51, 51, 72, 53, 49, 111, 71, 68, 79, 78, 65, 68, 61, 50, 91, 54, 44, 62, 49, 55, 60, 64, 46, 67, 71, 73, 58, 55, 57, 57, 50, 72, 66, 78, 93, 50, 59, 69, 39, 51, 70, 74, 78, 60, 74, 56, 59, 50, 55, 78, 55, 97, 79, 74, 81, 60, 61, 64, 73, 66, 57, 66, 82, 53, 91, 65, 71, 72, 80, 84, 61, 49, 87, 50, 56, 114, 99, 71, 74, 74, 75, 93, 67, 82, 80, 83, 111, 79, 80, 63, 76, 71, 75, 82, 89, 50, 58, 62, 67, 72, 79, 89, 44, 69, 77, 76, 73, 48, 59, 57, 69, 80, 62, 71, 42, 48, 45, 68, 65, 59, 77, 95, 66, 61, 68, 63, 61, 48, 82, 63, 55, 66, 55, 76, 50, 106, 67, 50, 51, 74, 60, 58, 58, 74, 55, 44, 59, 55, 65, 54, 52, 61, 48, 76, 59, 70, 74, 101, 65, 54, 60, 67, 45, 69, 66, 54, 45, 66, 54, 66, 51, 62, 42, 72, 71, 87, 63, 72, 64, 52, 69, 58, 71, 61, 65, 65, 68, 76, 61, 80, 60, 64, 63, 50, 56, 53, 82, 62, 73, 54, 64, 67, 58, 59, 56, 78, 55, 60, 54, 77, 52, 71, 61, 64, 68, 61, 51, 95, 53, 64, 58, 51, 70, 64, 42, 54, 60, 61, 80, 56, 65, 92, 61, 78, 78, 65, 41, 59, 65, 61, 57, 62, 71, 62, 71, 54, 62, 74, 80, 87, 64, 68, 57, 56, 62, 47, 85, 60, 60, 58, 67, 73, 65, 85, 53, 70, 45, 92, 73, 43, 134, 70, 56, 43, 81, 80, 68, 64, 67, 49, 55, 63, 62, 80, 60, 72, 46, 51, 49, 67, 68, 77, 58, 71, 80, 55, 70, 60, 57, 62, 63, 73, 64, 58, 52, 70, 75, 63, 44, 65, 83, 56, 73, 30, 63, 68, 59, 44, 90, 91, 73, 76, 63, 53, 101, 55, 71, 96, 50, 66, 65, 51, 61, 44, 65, 101, 83, 62, 66, 69, 57, 67, 56, 75, 69, 63, 61, 67, 41, 56, 58, 74, 94, 80, 84, 100, 70, 64, 53, 66, 71, 67, 54, 50, 71, 78, 59, 74, 50, 69, 74, 63, 63, 59, 55, 51, 84, 82, 92, 63, 64, 65, 38, 58, 66, 50, 66, 53, 93, 57, 77, 47, 72, 63, 48, 47, 70, 68, 44, 58, 73, 95, 65, 94, 59, 67, 46, 49, 69, 83, 65, 61, 59, 67, 44, 54, 54, 105, 53, 55, 79, 75, 55, 55, 79, 65, 69, 64, 40, 52, 67, 54, 55, 76, 56, 65, 67, 65, 58, 70, 91, 74, 88, 70, 79, 59, 45, 56, 71, 87, 66, 75, 57, 70, 77, 68, 63, 67, 58, 53, 60, 90, 74, 54, 84, 75, 73, 43, 68, 82, 75, 61, 55, 63, 44, 56, 73, 63, 88, 68, 78, 68, 80, 109, 63, 60, 57, 51, 57, 69, 77, 76, 64, 59, 56, 66, 50, 70, 66, 62, 50, 73, 77, 61, 47, 88, 74, 76, 79, 56, 68, 69, 63, 57, 112, 50, 68, 68, 58, 47, 49, 67, 52, 85, 67, 69, 74, 49, 81, 51, 74, 105, 64, 61, 67, 63, 76, 54, 66, 69, 49, 61, 85, 54, 70, 43, 60, 58, 72, 82, 51, 52, 47, 76, 57, 95, 65, 73, 66, 62, 47, 84, 67, 48, 56, 89, 84, 64, 73, 62, 102, 56, 54, 118, 66, 67, 60, 72, 85, 64, 72, 71, 73, 65, 61, 84, 68, 53, 78, 98, 83, 36, 63, 77, 95, 92, 50, 78, 55, 63, 66, 80, 81, 93, 63, 60, 74, 63, 87, 68, 66, 52, 51, 59, 47, 49, 59, 72, 42, 67, 55, 70, 60, 72, 42, 44, 63, 59, 47, 78, 70, 75, 63, 69, 58, 50, 127, 88, 70, 69, 55, 95, 120, 75, 85, 56, 65, 50, 42, 69, 79, 57, 71, 70, 62, 51, 78, 67, 67, 70, 63, 72, 76, 65, 72, 65, 61, 37, 76, 61, 85, 63, 66, 63, 75, 62, 53, 83, 61, 62, 56, 48, 44, 85, 71, 59, 60, 61, 67, 60, 65, 71, 93, 62, 72, 62, 62, 57, 58, 90, 64, 59, 67, 68, 87, 70, 74, 78, 57, 65, 63, 64, 74, 62, 60, 49, 53, 55, 74, 93, 58, 82, 72, 64, 75, 89, 92, 90, 56, 56, 52, 73, 56, 65, 77, 69, 72, 72, 71, 49, 73, 75, 59, 54, 63, 65, 86, 67, 72, 64, 39, 61, 79, 78, 76, 70, 73, 66, 54, 36, 64, 56, 54, 57, 74, 71, 61, 79, 60, 74, 56, 64, 70, 64, 73, 88, 63, 65, 59, 70, 57, 68, 44, 102, 46, 76, 66, 64, 80, 77, 58, 53, 44, 49, 71, 74, 66, 74, 65, 61, 86, 67, 38, 74, 69, 74, 49, 73, 73, 61, 61, 77, 50, 47, 71, 51, 65, 51, 43, 56, 68, 62, 86, 74, 69, 63, 84, 67, 61, 53, 51, 64, 65, 56, 69, 102, 63, 64, 57, 45, 52, 80, 82, 72, 61, 95, 63, 54, 84, 76, 68, 46, 58, 66, 71, 52, 65, 58, 49, 78, 70, 59, 73, 51, 53, 78, 59, 57, 75, 57, 72, 63, 74, 59, 67, 71, 61, 61, 82, 94, 59, 63, 62, 50, 61, 65, 50, 64, 55, 46, 67, 69, 68, 71, 121, 72, 54, 60, 62, 66, 54, 59, 83, 77, 73, 66, 44, 56, 46, 76, 77, 55, 68, 91, 73, 68, 87, 69, 61, 56, 111, 75, 65, 57, 52, 78, 85, 61, 82, 81, 45, 69, 73, 39, 51, 82, 39, 69, 58, 59, 53, 66, 64, 63, 42, 70, 65, 62, 70, 60, 84, 91, 67, 62, 52, 40, 79, 59, 54, 51, 80, 69, 53, 35, 93, 75, 64, 70, 71, 82, 79, 59, 65, 84, 51, 71, 66, 43, 64, 60, 58, 75, 69, 66, 78, 88, 59, 72, 79, 58, 71, 52, 60, 68, 54, 108, 84, 74, 60, 68, 70, 89, 80, 61, 50, 61, 65, 87, 57, 76, 93, 93, 55, 75, 79, 55, 67, 65, 60, 51, 46, 63, 81, 49, 57, 60, 116, 100, 65, 75, 65, 55, 52, 65, 50, 57, 95, 47, 58, 57, 72, 95, 55, 68, 65, 70, 56, 70, 62, 75, 60, 62, 56, 73, 61, 64, 51, 89, 81, 69, 74, 68, 59, 65, 57, 91, 64, 55, 89, 67, 73, 60, 43, 85, 56, 102, 55, 89, 50, 65, 66, 50, 64, 68, 57, 59, 59, 58, 73, 62, 79, 95, 59, 62, 52, 57, 53, 53, 63, 59, 81, 71, 79, 71, 48, 67, 74, 58, 57, 49, 91, 61, 86, 79, 58, 74, 71, 73, 57, 58, 67, 47, 56, 42, 66, 102, 71, 79, 75, 59, 52, 74, 51, 48, 75, 72, 75, 62, 57, 63, 68, 49, 78, 77, 63, 79, 62, 69, 54, 88, 69, 54, 70, 64, 71, 70, 58, 78, 53, 132, 64, 68, 56, 69, 68, 65, 70, 71, 52, 63, 56, 57, 61, 67, 74, 46, 50, 54, 88, 76, 65, 91, 75, 61, 73, 79, 46, 60, 65, 70, 48, 43, 64, 60, 56, 57, 71, 64, 76, 56, 58, 63, 71, 70, 60, 28, 59, 68, 68, 80, 80, 61, 72, 63, 68, 76, 59, 73, 76, 70, 79, 50, 62, 63, 51, 67, 70, 88, 64, 58, 57, 57, 70, 76, 60, 52, 62, 63, 71, 85, 59, 50, 52, 74, 65, 51, 55, 61, 58, 78, 81, 45, 69, 68, 52, 83, 55, 62, 65, 78, 54, 77, 69, 52, 53, 35, 59, 51, 57, 60, 62, 59, 67, 81, 65, 75, 52, 66, 82, 51, 74, 72, 62, 65, 63, 65, 75, 55, 69, 69, 53, 71, 45, 56, 93, 80, 67, 57, 92, 69, 67, 63, 56, 78, 82, 68, 62, 65, 70, 70, 97, 56, 63, 79, 86, 62, 46, 65, 98, 68, 60, 46, 53, 74, 54, 60, 79, 54, 82, 58, 78, 84, 67, 61, 64, 61, 60, 80, 80, 62, 58, 54, 83, 56, 76, 52, 78, 63, 75, 54, 74, 58, 57, 82, 110, 49, 84, 75, 50, 57, 56, 66, 82, 67, 72, 73, 61, 82, 56, 59, 49, 57, 73, 54, 60, 65, 144, 73, 67, 58, 62, 64, 66, 56, 49, 81, 61, 81, 52, 76, 71, 65, 73, 51, 87, 58, 56, 54, 68, 40, 108, 88, 50, 59, 73, 41, 75, 55, 50, 60, 74, 64, 62, 62, 73, 70, 67, 50, 72, 61, 71, 76, 64, 60, 72, 82, 50, 81, 54, 62, 55, 52, 54, 76, 70, 58, 35, 62, 67, 77, 70, 68, 61, 53, 49, 76, 92, 66, 51, 58, 51, 74, 58, 51, 58, 63, 68, 101, 54, 52, 70, 66, 61, 88, 56, 59, 58, 89, 65, 59, 58, 53, 64, 89, 64, 59, 58, 62, 73, 83, 86, 63, 59, 71, 54, 64, 74, 72, 84, 64, 93, 53, 49, 61, 55, 52, 54, 69, 52, 77, 51, 39, 58, 41, 45, 68, 69, 131, 59, 68, 59, 68, 81, 94, 62, 63, 65, 69, 69, 60, 74, 41, 48, 64, 70, 38, 74, 66, 57, 79, 70, 56, 64, 96, 46, 69, 46, 53, 92, 74, 49, 45, 55, 72, 43, 68, 68, 55, 45, 90, 67, 52, 85, 54, 78, 104, 48, 76, 52, 74, 68, 69, 54, 86, 62, 43, 86, 48, 83, 74, 83, 59, 48, 53, 57, 50, 60, 84, 55, 67, 61, 79, 58, 50, 91, 63, 67, 62, 70, 116, 69, 55, 71, 48, 80, 63, 65, 97, 70, 83, 84, 56, 105, 88, 57, 65, 51, 59, 34, 71, 64, 69, 75, 83, 65, 66, 53, 61, 75, 74, 77, 67, 55, 55, 44, 54, 78, 73, 51, 56, 55, 86, 77, 59, 70, 62, 56, 59, 58, 59, 65, 58, 62, 66, 59, 63, 64, 73, 69, 84, 83, 44, 69, 46, 52, 64, 60, 59, 63, 60, 93, 99, 65, 67, 77, 65, 128, 73, 54, 80, 67, 70, 63, 71, 56, 52, 63, 68, 44, 62, 53, 62, 59, 60, 57, 98, 74, 69, 72, 62, 51, 34, 74, 62, 87, 84, 69, 70, 62, 81, 51, 74, 56, 88, 50, 64, 67, 70, 91, 59, 59, 109, 61, 83, 61, 69, 78, 62, 74, 89, 55, 77, 53, 88, 77, 77, 58, 70, 93, 59, 55, 67, 62, 67, 118, 54, 67, 76, 62, 44, 65, 65, 66, 60, 61, 76, 56, 74, 65, 56, 62, 70, 63, 68, 119, 67, 51, 69, 87, 80, 79, 62, 68, 43, 71, 76, 54, 78, 65, 73, 81, 70, 76, 47, 54, 61, 98, 79, 64, 60, 72, 58, 59, 45, 49, 64, 57, 79, 74, 74, 87, 61, 61, 67, 62, 74, 60, 87, 52, 97, 74, 53, 57, 79, 52, 58, 72, 63, 65, 79, 59, 73, 63, 78, 78, 46, 70, 95, 82, 60, 48, 59, 75, 54, 75, 65, 69, 51, 49, 48, 69, 64, 62, 60, 61, 88, 52, 58, 65, 68, 61, 52, 74, 57, 75, 58, 69, 64, 58, 68, 51, 58, 82, 91, 67, 66, 88, 65, 58, 100, 57, 62, 64, 54, 64, 73, 73, 60, 61, 74, 62, 70, 79, 70, 55, 63, 65, 71, 54, 82, 65, 55, 70, 53, 69, 60, 83, 66, 48, 52, 79, 70, 67, 58, 49, 57, 56, 57, 56, 71, 97, 78, 83, 70, 75, 61, 63, 63, 64, 87, 54, 66, 57, 71, 62, 53, 71, 64, 73, 68, 66, 60, 61, 81, 66, 68, 63, 44, 78, 62, 75, 71, 62, 58, 54, 63, 55, 66, 53, 68, 97, 119, 60, 42, 77, 55, 77, 44, 72, 95, 89, 60, 51, 54, 62, 46, 69, 68, 64, 98, 48, 75, 65, 67, 56, 61, 76, 70, 56, 60, 78, 67, 54, 57, 86, 83, 56, 83, 55, 47, 59, 47, 67, 83, 85, 112, 64, 65, 90, 90, 42, 80, 73, 95, 64, 71, 77, 62, 70, 47, 75, 87, 55, 51, 62, 58, 58, 61, 60, 64, 41, 64, 60, 66, 77, 70, 66, 60, 63, 67, 57, 78, 68, 71, 66, 65, 80, 43, 78, 53, 68, 60, 58, 60, 62, 82, 54, 90, 83, 114, 73, 62, 67, 51, 66, 62, 62, 55, 68, 56, 62, 85, 52, 81, 59, 80, 52, 51, 57, 95, 67, 91, 43, 58, 67, 60, 54, 79, 48, 68, 48, 52, 75, 59, 72, 59, 86, 77, 45, 66, 113, 67, 64, 61, 34, 69, 98, 56, 67, 56, 75, 62, 93, 61, 68, 62, 64, 50, 76, 56, 66, 71, 73, 64, 65, 55, 71, 82, 52, 63, 84, 66, 57, 83, 68, 60, 56, 51, 60, 65, 63, 48, 66, 104, 64, 57, 76, 79, 53, 62, 58, 64, 55, 83, 65, 60, 65, 77, 50, 56, 60, 57, 71, 52, 75, 109, 65, 80, 60, 58, 61, 58, 58, 65, 46, 69, 67, 70, 80, 56, 48, 83, 73, 63, 59, 58, 61, 69, 74, 61, 60, 54, 64, 85, 62, 91, 65, 66, 86, 57, 77, 87, 57, 50, 79, 61, 68, 55, 52, 60, 63, 76, 55, 76, 72, 54, 53, 62, 72, 66, 82, 55, 59, 62, 51, 63, 60, 53, 67, 72, 54, 69, 62, 54, 72, 63, 60, 46, 77, 58, 62, 72, 60, 92, 55, 51, 62, 58, 76, 56, 53, 66, 102, 71, 63, 55, 63, 71, 52, 82, 68, 36, 59, 58, 83, 92, 60, 69, 97, 58, 85, 157, 63, 78, 47, 67, 56, 74, 44, 84, 59, 45, 61, 55, 103, 50, 54, 64, 51, 66, 60, 58, 55, 63, 58, 60, 56, 56, 48, 64, 68, 64, 72, 70, 61, 51, 80, 56, 61, 42, 55, 53, 77, 64, 59, 69, 52, 72, 62, 69, 78, 59, 63, 63, 65, 62, 91, 67, 94, 55, 67, 82, 60, 45, 60, 69, 49, 69, 76, 55, 69, 73, 60, 108, 67, 69, 49, 105, 66, 72, 68, 65, 57, 61, 50, 69, 63, 57, 54, 55, 69, 77, 55, 78, 56, 78, 73, 57, 73, 64, 74, 87, 52, 72, 70, 52, 59, 64, 53, 63, 56, 57, 69, 86, 81, 58, 87, 62, 88, 51, 51, 83, 67, 53, 50, 57, 60, 70, 55, 57, 63, 69, 65, 37, 56, 86, 66, 72, 53, 56, 81, 64, 60, 61, 52, 70, 65, 54, 79, 120, 64, 58, 72, 73, 63, 52, 65, 55, 77, 69, 94, 88, 73, 67, 80, 73, 62, 65, 72, 77, 73, 77, 63, 56, 70, 65, 57, 63, 78, 68, 73, 64, 65, 66, 81, 68, 67, 67, 80, 59, 72, 55, 67, 47, 47, 62, 59, 68, 71, 80, 46, 42, 48, 60, 63, 46, 70, 107, 69, 50, 64, 68, 53, 73, 58, 88, 73, 51, 55, 62, 59, 73, 50, 66, 55, 54, 68, 61, 55, 79, 61, 58, 48, 65, 75, 54, 85, 82, 65, 70, 35, 73, 57, 82, 64, 78, 80, 85, 54, 63, 63, 81, 85, 58, 62, 66, 57, 61, 58, 103, 60, 41, 48, 48, 68, 60, 34, 55, 58, 77, 69, 57, 63, 83, 60, 63, 76, 76, 66, 74, 73, 60, 57, 70, 58, 68, 39, 64, 87, 55, 58, 88, 60, 54, 55, 66, 68, 66, 50, 69, 84, 61, 59, 68, 59, 73, 70, 39, 70, 59, 40, 67, 39, 63, 54, 87, 76, 57, 60, 77, 62, 63, 60, 87, 74, 69, 55, 60, 69, 56, 63, 77, 57, 90, 56, 71, 68, 47, 63, 51, 67, 60, 58, 52, 37, 69, 48, 65, 54, 58, 85, 60, 61, 57, 56, 60, 70, 82, 61, 61, 62, 59, 83, 54, 62, 66, 58, 74, 85, 55, 68, 65, 51, 84, 88, 91, 82, 46, 61, 80, 75, 79, 67, 60, 54, 76, 72, 61, 45, 51, 52, 75, 63, 40, 53, 140, 79, 52, 68, 66, 56, 62, 74, 61, 69, 57, 73, 51, 51, 49, 105, 67, 64, 63, 47, 36, 89, 47, 46, 51, 59, 106, 66, 71, 53, 74, 64, 74, 45, 68, 60, 78, 55, 64, 54, 81, 82, 70, 51, 55, 55, 102, 56, 47, 60, 59, 91, 67, 66, 103, 72, 77, 50, 55, 58, 56, 57, 79, 60, 60, 69, 70, 73, 84, 63, 55, 61, 60, 60, 69, 77, 52, 52, 71, 53, 126, 86, 69, 45, 79, 60, 87, 62, 72, 99, 59, 55, 68, 61, 73, 60, 46, 84, 57, 68, 67, 49, 58, 58, 46, 65, 83, 68, 67, 70, 75, 73, 71, 68, 62, 80, 71, 81, 81, 68, 68, 76, 80, 60, 75, 53, 63, 58, 60, 61, 65, 68, 46, 65, 51, 69, 59, 72, 60, 57, 44, 61, 59, 84, 65, 67, 95, 62, 67, 47, 70, 64, 65, 64, 54, 75, 61, 60, 53, 73, 55, 75, 60, 75, 86, 84, 93, 75, 65, 72, 68, 58, 56, 86, 67, 129, 57, 53, 56, 71, 54, 68, 56, 64, 86, 50, 49, 57, 88, 63, 57, 79, 85, 56, 69, 79, 59, 64, 80, 109, 68, 87, 81, 64, 60, 49, 71, 58, 68, 69, 84, 46, 68, 68, 58, 61, 61, 58, 80, 71, 80, 81, 61, 77, 62, 67, 61, 61, 65, 53, 102, 58, 73, 76, 63, 53, 59, 73, 73, 48, 85, 63, 56, 57, 84, 52, 87, 89, 94, 55, 72, 56, 57, 66, 75, 56, 62, 56, 46, 55, 83, 75, 88, 59, 60, 63, 48, 60, 68, 67, 81, 100, 96, 79, 61, 46, 66, 57, 55, 78, 69, 52, 81, 65, 81, 86, 66, 44, 68, 53, 64, 66, 133, 74, 83, 102, 56, 74, 48, 74, 82, 88, 91, 67, 81, 72, 61, 62, 65, 51, 42, 71, 89, 66, 76, 79, 77, 75, 76, 94, 56, 93, 64, 42, 60, 53, 59, 62, 68, 59, 71, 59, 54, 56, 69, 73, 57, 59, 92, 54, 51, 62, 91, 44, 75, 61, 76, 67, 58, 72, 78, 77, 65, 49, 77, 65, 65, 46, 68, 56, 76, 50, 65, 61, 105, 56, 52, 69, 66, 78, 58, 82, 67, 60, 68, 73, 52, 92, 65, 67, 57, 64, 83, 54, 58, 68, 55, 64, 73, 71, 63, 70, 75, 88, 63, 77, 53, 75, 72, 69, 56, 69, 96, 73, 73, 51, 62, 73, 67, 58, 65, 84, 75, 61, 83, 61, 86, 68, 65, 58, 72, 63, 74, 59, 62, 64, 62, 53, 62, 60, 66, 69, 70, 58, 74, 84, 72, 84, 83, 65, 61, 63, 64, 70, 64, 66, 63, 69, 54, 53, 73, 55, 54, 67, 57, 63, 61, 64, 48, 82, 68, 65, 68, 56, 70, 72, 64, 60, 75, 43, 56, 77, 56, 70, 30, 73, 61, 68, 66, 55, 74, 73, 92, 74, 61, 65, 57, 60, 69, 82, 69, 66, 66, 69, 62, 58, 63, 62, 76, 71, 53, 74, 59, 49, 63, 110, 69, 64, 53, 75, 58, 55, 53, 94, 75, 65, 55, 70, 44, 58, 55, 68, 56, 65, 71, 58, 84, 52, 51, 65, 68, 73, 65, 63, 71, 106, 72, 65, 44, 54, 63, 67, 73, 50, 80, 51, 54, 78, 54, 61, 56, 67, 132, 62, 57, 78, 59, 70, 61, 46, 62, 62, 63, 64, 80, 74, 64, 58, 69, 70, 57, 73, 69, 60, 67, 59, 59, 70, 63, 40, 59, 70, 55, 73, 66, 65, 55, 58, 79, 73, 92, 61, 93, 77, 62, 79, 64, 59, 47, 50, 52, 45, 57, 62, 56, 73, 78, 106, 62, 69, 64, 84, 55, 55, 57, 62, 68, 64, 58, 72, 64, 69, 55, 60, 67, 55, 71, 61, 69, 52, 54, 68, 44, 67, 55, 71, 52, 71, 66, 69, 63, 66, 60, 66, 57, 59, 68, 59, 68, 63, 84, 90, 67, 58, 57, 75, 73, 66, 81, 50, 88, 55, 66, 68, 65, 71, 56, 71, 66, 89, 57, 66, 63, 70, 65, 85, 55, 59, 62, 59, 58, 143, 70, 45, 67, 64, 59, 60, 57, 52, 58, 48, 63, 72, 57, 66, 99, 85, 62, 43, 77, 89, 72, 72, 57, 65, 79, 54, 64, 74, 60, 56, 70, 63, 70, 47, 61, 52, 61, 64, 82, 76, 40, 64, 70, 54, 68, 63, 78, 56, 59, 80, 60, 68, 59, 66, 78, 64, 85, 69, 58, 54, 88, 52, 69, 50, 57, 63, 108, 61, 64, 74, 57, 84, 41, 64, 81, 61, 63, 57, 69, 67, 80, 65, 56, 81, 66, 52, 62, 77, 107, 62, 90, 76, 52, 71, 71, 75, 65, 59, 86, 58, 64, 61, 61, 73, 66, 83, 61, 58, 59, 71, 82, 76, 67, 58, 60, 65, 57, 64, 65, 68, 63, 62, 78, 63, 50, 66, 85, 65, 55, 69, 55, 80, 56, 69, 61, 54, 59, 60, 49, 70, 66, 63, 72, 75, 50, 50, 75, 50, 60, 56, 65, 68, 68, 56, 68, 62, 58, 51, 53, 53, 63, 57, 66, 64, 56, 48, 55, 66, 66, 58, 78, 80, 67, 63, 58, 69, 64, 63, 56, 71, 63, 90, 64, 68, 71, 71, 61, 77, 75, 66, 66, 59, 67, 66, 48, 66, 57, 60, 66, 75, 69, 79, 60, 106, 88, 65, 67, 51, 64, 76, 49, 54, 54, 72, 79, 90, 65, 58, 76, 75, 63, 54, 61, 58, 57, 116, 82, 58, 66, 69, 83, 57, 51, 80, 54, 90, 66, 57, 58, 33, 68, 48, 45, 66, 68, 51, 66, 59, 64, 64, 56, 66, 64, 69, 71, 74, 61, 55, 81, 77, 34, 59, 72, 53, 66, 67, 66, 73, 63, 47, 69, 68, 64, 51, 82, 80, 55, 52, 56, 47, 85, 57, 53, 71, 48, 52, 60, 77, 65, 64, 50, 52, 62, 68, 61, 82, 76, 68, 66, 56, 57, 61, 86, 77, 55, 60, 60, 64, 61, 58, 52, 55, 63, 62, 48, 66, 63, 58, 42, 69, 62, 56, 65, 69, 55, 60, 72, 53, 70, 90, 62, 70, 52, 59, 70, 54, 77, 54, 59, 85, 72, 53, 77, 47, 75, 69, 77, 63, 66, 61, 73, 59, 65, 56, 60, 68, 96, 66, 46, 55, 64, 65, 77, 63, 114, 58, 109, 71, 58, 51, 63, 74, 69, 71, 59, 64, 45, 62, 69, 66, 46, 83, 110, 54, 61, 68, 87, 53, 90, 54, 56, 75, 58, 57, 60, 62, 69, 48, 57, 46, 60, 48, 67, 60, 63, 71, 73, 99, 68, 55, 75, 80, 50, 71, 57, 63, 69, 76, 82, 67, 87, 78, 56, 76, 99, 65, 54, 58, 53, 68, 48, 54, 79, 89, 50, 70, 63, 80, 63, 61, 80, 87, 48, 73, 63, 65, 94, 62, 48, 77, 66, 41, 59, 68, 56, 73, 54, 72, 82, 62, 68, 44, 64, 73, 73, 62, 64, 56, 183, 51, 65, 68, 58, 44, 54, 49, 63, 61, 51, 68, 86, 49, 52, 72, 64, 74, 52, 66, 93, 77, 64, 58, 53, 70, 65, 67, 63, 68, 58, 82, 92, 60, 60, 56, 82, 74, 64, 64, 64, 62, 65, 66, 42, 67, 81, 66, 73, 50, 63, 52, 69, 71, 40, 51, 59, 68, 61, 64, 70, 75, 65, 54, 72, 75, 59, 70, 56, 73, 66, 68, 53, 65, 67, 61, 68, 73, 61, 52, 60, 64, 84, 87, 59, 86, 51, 49, 68, 50, 51, 53, 56, 78, 57, 51, 63, 63, 52, 47, 54, 66, 61, 77, 61, 107, 55, 74, 79, 60, 70, 92, 55, 82, 65, 66, 58, 67, 69, 67, 62, 44, 65, 62, 56, 60, 55, 76, 55, 83, 43, 65, 60, 48, 55, 64, 53, 67, 81, 79, 66, 71, 80, 56, 59, 64, 63, 77, 62, 76, 76, 62, 67, 66, 79, 47, 60, 69, 76, 56, 76, 64, 66, 86, 56, 58, 68, 51, 75, 60, 68, 62, 64, 71, 78, 78, 54, 72, 62, 50, 73, 82, 57, 74, 38, 58, 90, 59, 61, 70, 50, 74, 88, 68, 81, 67, 55, 99, 64, 55, 85, 53, 57, 71, 66, 57, 75, 85, 68, 70, 73, 49, 51, 60, 65, 59, 65, 122, 69, 82, 67, 63, 79, 65, 63, 70, 62, 57, 63, 76, 71, 54, 62, 80, 67, 59, 70, 58, 54, 47, 67, 70, 58, 74, 68, 75, 70, 76, 55, 59, 60, 64, 59, 61, 52, 56, 54, 65, 44, 57, 63, 59, 53, 34, 49, 36, 54, 76, 88, 50, 67, 50, 53, 77, 57, 80, 61, 66, 67, 63, 61, 96, 76, 57, 61, 52, 71, 73, 116, 60, 60, 51, 90, 67, 66, 43, 73, 96, 108, 54, 70, 40, 74, 66, 51, 89, 74, 58, 78, 73, 63, 41, 55, 60, 75, 52, 88, 46, 56, 48, 63, 52, 67, 64, 49, 57, 44, 71, 66, 67, 77, 61, 64, 81, 62, 63, 56, 77, 77, 58, 70, 49, 59, 82, 66, 67, 72, 66, 59, 58, 67, 61, 57, 67, 71, 79, 65, 49, 68, 74, 88, 62, 69, 126, 76, 56, 76, 75, 67, 77, 76, 64, 49, 64, 60, 47, 56, 73, 67, 53, 68, 49, 72, 52, 50, 72, 49, 57, 52, 53, 103, 67, 69, 74, 74, 34, 54, 47, 68, 65, 60, 75, 75, 54, 62, 64, 70, 77, 57, 85, 105, 74, 67, 57, 56, 63, 62, 63, 85, 78, 69, 52, 40, 64, 74, 69, 71, 88, 60, 51, 44, 45, 77, 82, 98, 54, 53, 80, 56, 83, 58, 57, 75, 84, 65, 53, 57, 70, 78, 59, 63, 53, 57, 54, 69, 66, 58, 61, 85, 57, 38, 56, 61, 79, 87, 38, 52, 51, 97, 65, 64, 123, 73, 68, 67, 73, 72, 59, 73, 86, 66, 69, 42, 50, 77, 62, 77, 63, 70, 53, 46, 49, 66, 47, 48, 68, 73, 59, 63, 44, 51, 55, 40, 94, 60, 52, 51, 55, 107, 50, 54, 64, 59, 67, 54, 60, 61, 75, 107, 65, 48, 60, 80, 70, 70, 58, 68, 60, 63, 71, 67, 108, 62, 64, 67, 73, 61, 68, 59, 65, 51, 66, 62, 57, 46, 47, 83, 71, 50, 73, 62, 107, 64, 74, 58, 59, 47, 53, 48, 59, 67, 65, 73, 58, 57, 59, 76, 98, 63, 77, 81, 39, 56, 48, 54, 44, 64, 80, 61, 54, 67, 51, 77, 66, 47, 63, 64, 65, 51, 52, 60, 57, 54, 62, 75, 59, 92, 65, 54, 60, 74, 58, 90, 55, 76, 53, 63, 53, 71, 57, 71, 60, 55, 72, 48, 66, 96, 73, 56, 65, 50, 52, 77, 50, 70, 40, 54, 31, 72, 69, 67, 50, 55, 58, 47, 70, 65, 91, 78, 64, 63, 95, 93, 53, 74, 65, 67, 54, 78, 72, 68, 61, 51, 75, 70, 58, 69, 60, 74, 71, 76, 51, 45, 39, 69, 50, 44, 76, 55, 64, 71, 76, 57, 70, 59, 52, 75, 61, 87, 76, 69, 67, 46, 102, 70, 70, 75, 81, 80, 83, 75, 60, 61, 66, 65, 68, 76, 90, 70, 60, 50, 65, 61, 83, 66, 58, 44, 67, 44, 50, 72, 82, 65, 49, 73, 60, 81, 65, 54, 54, 56, 70, 65, 53, 121, 58, 65, 101, 52, 46, 67, 63, 77, 67, 86, 83, 66, 64, 68, 66, 74, 62, 43, 86, 58, 63, 78, 76, 88, 73, 93, 53, 60, 97, 77, 61, 68, 51, 48, 73, 75, 51, 52, 53, 81, 63, 116, 72, 61, 67, 55, 85, 99, 63, 98, 77, 46, 52, 39, 55, 113, 54, 94, 84, 69, 87, 62, 74, 65, 42, 56, 81, 45, 58, 105, 64, 60, 57, 58, 63, 57, 46, 49, 59, 61, 53, 53, 49, 71, 46, 59, 94, 66, 78, 96, 66, 57, 65, 58, 68, 43, 61, 66, 61, 69, 49, 54, 70, 56, 80, 59, 63, 47, 60, 50, 68, 62, 64, 66, 84, 60, 78, 59, 54, 57, 61, 63, 50, 64, 86, 58, 47, 64, 67, 47, 68, 69, 120, 85, 55, 55, 53, 59, 69, 60, 53, 70, 96, 45, 68, 68, 70, 56, 52, 57, 58, 86, 93, 57, 65, 34, 64, 54, 54, 70, 54, 70, 47, 171, 67, 60, 73, 62, 50, 53, 66, 70, 51, 64, 59, 61, 60, 63, 64, 37, 57, 131, 57, 66, 64, 59, 76, 63, 59, 61, 78, 56, 48, 40, 70, 66, 75, 49, 61, 55, 72, 48, 55, 60, 62, 61, 59, 67, 63, 70, 79, 68, 48, 108, 148, 77, 57, 56, 55, 70, 39, 57, 58, 59, 61, 62, 61, 41, 77, 53, 56, 85, 74, 57, 69, 94, 85, 66, 95, 70, 50, 65, 54, 111, 114, 46, 75, 58, 48, 54, 50, 77, 50, 69, 79, 58, 64, 46, 68, 46, 60, 74, 56, 85, 75, 64, 66, 91, 93, 81, 81, 71, 64, 98, 75, 95, 53, 65, 66, 67, 70, 71, 69, 62, 55, 77, 59, 76, 58, 50, 72, 105, 47, 74, 92, 55, 65, 74, 54, 62, 32, 64, 57, 47, 59, 63, 74, 69, 71, 43, 63, 63, 60, 55, 57, 87, 59, 34, 54, 60, 54, 56, 49, 81, 62, 63, 70, 70, 141, 48, 75, 70, 66, 58, 48, 65, 72, 88, 85, 61, 73, 69, 59, 71, 62, 72, 76, 121, 75, 81, 66, 76, 80, 66, 59, 63, 78, 51, 155, 67, 50, 68, 64, 74, 82, 72, 49, 81, 71, 58, 57, 57, 63, 51, 74, 69, 68, 78, 103, 70, 107, 58, 55, 54, 64, 61, 68, 62, 83, 47, 76, 73, 63, 61, 63, 93, 74, 81, 75, 55, 71, 67, 118, 68, 50, 49, 70, 46, 62, 54, 57, 63, 64, 55, 73, 66, 54, 68, 63, 55, 57, 70, 65, 50, 54, 79, 36, 61, 71, 61, 81, 66, 58, 67, 62, 99, 63, 82, 56, 72, 65, 64, 47, 58, 57, 98, 74, 94, 143, 143, 65, 53, 63, 67, 48, 77, 71, 60, 77, 108, 64, 68, 82, 67, 63, 93, 57, 72, 72, 65, 103, 72, 93, 111, 57, 64, 56, 56, 50, 99, 51, 78, 73, 52, 46, 54, 72, 50, 61, 74, 82, 89, 78, 41, 69, 62, 80, 73, 65, 68, 54, 50, 64, 79, 64, 74, 62, 74, 69, 76, 62, 58, 49, 29, 82, 58, 62, 80, 59, 54, 56, 64, 50, 44, 106, 63, 90, 59, 67, 50, 50, 77, 54, 68, 50, 40, 70, 84, 66, 84, 52, 55, 32, 56, 74, 46, 51, 67, 56, 72, 74, 68, 62, 68, 53, 57, 44, 53, 56, 58, 60, 80, 56, 56, 83, 62, 57, 65, 60, 74, 71, 57, 61, 62, 65, 68, 50, 50, 73, 63, 69, 66, 56, 67, 87, 64, 59, 57, 41, 50, 66, 59, 63, 77, 88, 60, 76, 54, 56, 79, 58, 89, 43, 71, 70, 57, 66, 77, 60, 58, 71, 52, 43, 60, 66, 66, 63, 53, 78, 60, 79, 90, 58, 61, 66, 37, 66, 66, 54, 64, 67, 61, 53, 60, 55, 58, 60, 50, 49, 71, 63, 81, 47, 50, 52, 53, 34, 65, 49, 67, 62, 78, 67, 82, 55, 62, 50, 59, 77, 94, 65, 69, 68, 65, 56, 54, 73, 44, 50, 85, 71, 77, 54, 60, 53, 80, 69, 64, 48, 63, 69, 45, 71, 104, 66, 55, 64, 51, 76, 71, 53, 81, 50, 145, 89, 67, 57, 61, 43, 65, 65, 51, 90, 68, 70, 64, 66, 64, 59, 79, 62, 67, 67, 58, 44, 60, 62, 65, 60, 50, 34, 68, 50, 49, 84, 49, 54, 57, 68, 115, 56, 94, 62, 74, 48, 67, 53, 81, 88, 68, 50, 60, 92, 84, 101, 63, 158, 74, 41, 56, 55, 82, 88, 73, 66, 54, 63, 78, 62, 58, 59, 64, 76, 57, 65, 53, 62, 49, 60, 56, 48, 61, 69, 94, 70, 71, 62, 73, 49, 57, 59, 54, 42, 59, 48, 58, 56, 65, 64, 94, 63, 77, 60, 61, 54, 54, 80, 45, 69, 66, 53, 70, 65, 63, 60, 61, 39, 113, 67, 80, 104, 67, 77, 56, 61, 67, 63, 76, 48, 64, 65, 56, 57, 63, 127, 61, 54, 73, 52, 79, 67, 52, 81, 61, 50, 53, 88, 64, 70, 106, 65, 45, 71, 69, 90, 56, 42, 56, 66, 58, 75, 110, 84, 61, 89, 44, 67, 63, 79, 56, 78, 59, 80, 70, 62, 66, 66, 61, 64, 67, 66, 78, 55, 72, 62, 64, 59, 45, 50, 57, 57, 60, 56, 68, 57, 55, 83, 72, 77, 53, 61, 84, 63, 77, 66, 62, 59, 64, 59, 107, 65, 72, 58, 73, 85, 69, 79, 63, 61, 53, 78, 45, 47, 64, 108, 50, 64, 44, 68, 61, 42, 66, 55, 65, 65, 57, 42, 53, 53, 63, 65, 69, 58, 75, 59, 60, 53, 56, 58, 67, 69, 58, 55, 70, 57, 68, 75, 49, 52, 57, 52, 56, 77, 58, 89, 60, 70, 51, 63, 73, 61, 53, 56, 72, 68, 72, 49, 52, 78, 72, 54, 64, 53, 55, 63, 72, 105, 118, 70, 99, 56, 64, 83, 64, 65, 90, 58, 54, 53, 65, 67, 53, 112, 47, 64, 48, 66, 92, 83, 61, 55, 62, 53, 82, 48, 75, 96, 57, 76, 53, 62, 87, 68, 78, 69, 45, 65, 87, 84, 69, 65, 88, 84, 57, 62, 65, 78, 76, 72, 81, 59, 77, 52, 66, 59, 49, 52, 70, 67, 81, 57, 53, 70, 92, 62, 74, 64, 77, 67, 58, 60, 62, 37, 65, 60, 59, 71, 86, 33, 58, 86, 61, 78, 64, 63, 49, 89, 62, 66, 69, 76, 87, 78, 65, 54, 57, 75, 84, 80, 55, 55, 60, 65, 120, 61, 60, 70, 66, 57, 60, 62, 45, 62, 75, 63, 73, 57, 71, 75, 66, 48, 73, 92, 42, 70, 53, 64, 51, 65, 69, 52, 89, 61, 64, 65, 50, 68, 55, 63, 65, 53, 51, 81, 66, 55, 85, 52, 55, 42, 62, 51, 60, 69, 64, 68, 59, 83, 63, 61, 64, 83, 60, 53, 69, 75, 83, 72, 69, 77, 68, 73, 67, 54, 68, 61, 67, 40, 76, 57, 56, 90, 45, 48, 61, 69, 63, 60, 67, 72, 99, 71, 68, 71, 55, 66, 59, 66, 75, 47, 70, 88, 62, 64, 55, 64, 75, 74, 53, 77, 62, 49, 60, 65, 64, 51, 66, 59, 56, 50, 63, 64, 71, 82, 63, 79, 97, 57, 86, 61, 59, 68, 58, 112, 60, 107, 54, 59, 43, 81, 51, 64, 60, 72, 73, 83, 72, 83, 56, 55, 57, 64, 56, 69, 53, 83, 64, 67, 53, 67, 66, 69, 61, 72, 66, 72, 77, 65, 65, 78, 128, 178, 72, 69, 66, 71, 61, 53, 57, 91, 62, 119, 65, 67, 85, 51, 59, 58, 54, 58, 68, 61, 68, 79, 66, 49, 93, 62, 56, 77, 87, 53, 57, 52, 77, 71, 63, 70, 75, 63, 55, 66, 100, 63, 63, 65, 62, 57, 58, 73, 67, 61, 68, 63, 47, 62, 50, 62, 66, 57, 67, 73, 100, 65, 69, 77, 74, 68, 51, 91, 70, 73, 53, 82, 63, 74, 51, 60, 56, 68, 48, 62, 78, 68, 56, 57, 53, 85, 68, 73, 84, 76, 85, 62, 53, 65, 69, 77, 52, 73, 69, 60, 59, 58, 58, 67, 84, 56, 53, 65, 55, 72, 55, 66, 70, 81, 63, 67, 60, 59, 47, 64, 59, 65, 66, 99, 58, 64, 73, 58, 52, 73, 53, 83, 62, 67, 60, 67, 84, 70, 52, 41, 46, 64, 65, 73, 53, 65, 59, 58, 85, 71, 62, 59, 74, 51, 60, 54, 67, 42, 68, 65, 73, 42, 54, 57, 92, 66, 49, 44, 64, 52, 58, 50, 65, 71, 66, 69, 123, 60, 50, 67, 75, 60, 95, 55, 76, 59, 91, 68, 78, 60, 58, 52, 59, 65, 92, 81, 65, 91, 65, 66, 60, 67, 67, 61, 78, 70, 61, 58, 50, 53, 53, 34, 48, 66, 51, 54, 60, 44, 65, 67, 71, 79, 49, 64, 65, 49, 54, 90, 50, 51, 63, 54, 77, 54, 64, 67, 68, 60, 56, 55, 57, 92, 57, 81, 70, 78, 49, 44, 67, 47, 56, 54, 82, 63, 58, 66, 63, 63, 76, 70, 64, 70, 88, 63, 66, 69, 50, 96, 57, 76, 68, 68, 46, 64, 67, 61, 66, 73, 54, 70, 75, 77, 81, 74, 62, 67, 70, 75, 79, 55, 83, 75, 50, 66, 77, 77, 57, 61, 69, 74, 76, 52, 56, 97, 68, 68, 53, 49, 77, 55, 73, 57, 56, 65, 49, 52, 62, 64, 87, 58, 63, 74, 83, 95, 65, 69, 71, 86, 60, 60, 67, 51, 78, 60, 61, 66, 59, 56, 118, 72, 58, 59, 52, 58, 58, 80, 56, 59, 55, 65, 65, 61, 59, 61, 75, 56, 60, 53, 73, 57, 55, 47, 75, 69, 50, 59, 69, 84, 63, 66, 59, 85, 87, 74, 64, 67, 65, 74, 68, 81, 70, 80, 55, 70, 74, 90, 68, 69, 90, 60, 68, 78, 63, 45, 58, 58, 91, 69, 94, 92, 65, 69, 58, 82, 53, 63, 74, 47, 53, 67, 60, 58, 58, 51, 65, 68, 68, 73, 65, 67, 59, 78, 63, 85, 48, 60, 34, 65, 55, 56, 88, 76, 82, 45, 69, 87, 63, 72, 81, 93, 63, 92, 56, 70, 65, 82, 64, 64, 109, 56, 69, 39, 73, 60, 70, 46, 90, 67, 92, 65, 65, 51, 58, 82, 78, 96, 59, 64, 64, 61, 58, 107, 80, 64, 84, 51, 56, 69, 73, 71, 73, 67, 31, 67, 70, 71, 54, 46, 72, 82, 56, 58, 74, 67, 60, 71, 57, 60, 34, 70, 73, 80, 68, 50, 70, 37, 51, 47, 72, 70, 65, 55, 77, 66, 55, 68, 67, 73, 67, 75, 61, 72, 60, 92, 54, 60, 59, 77, 91, 85, 77, 70, 66, 61, 57, 54, 67, 66, 71, 53, 70, 67, 90, 76, 58, 86, 94, 68, 64, 51, 78, 74, 48, 59, 64, 64, 60, 70, 66, 74, 77, 46, 88, 56, 76, 68, 70, 59, 68, 71, 94, 62, 91, 70, 100, 51, 66, 71, 79, 55, 45, 69, 75, 79, 64, 58, 82, 69, 62, 77, 75, 55, 44, 59, 76, 72, 64, 43, 50, 77, 66, 48, 53, 61, 72, 63, 82, 69, 67, 58, 58, 46, 52, 64, 70, 52, 65, 60, 61, 69, 55, 89, 68, 48, 69, 61, 118, 77, 59, 75, 69, 54, 74, 68, 66, 50, 59, 70, 93, 85, 92, 63, 61, 42, 56, 70, 65, 76, 67, 72, 58, 60, 60, 60, 57, 52, 52, 61, 69, 89, 72, 62, 63, 61, 76, 64, 53, 75, 57, 67, 51, 64, 52, 53, 59, 86, 62, 76, 73, 58, 55, 51, 43, 44, 44, 72, 63, 63, 66, 84, 63, 66, 64, 58, 74, 62, 48, 69, 80, 71, 68, 51, 85, 65, 44, 53, 61, 65, 57, 54, 74, 43, 77, 59, 62, 84, 62, 66, 60, 47, 79, 56, 74, 57, 57, 61, 75, 51, 54, 56, 66, 52, 55, 67, 62, 81, 48, 52, 57, 67, 70, 63, 68, 41, 67, 62, 57, 60, 78, 65, 61, 68, 72, 73, 58, 76, 59, 78, 98, 68, 69, 75, 68, 69, 50, 58, 55, 53, 66, 66, 75, 62, 68, 58, 70, 91, 77, 66, 72, 73, 68, 65, 50, 81, 71, 75, 41, 48, 57, 53, 77, 99, 97, 56, 69, 59, 72, 56, 85, 70, 58, 53, 72, 81, 53, 76, 66, 60, 62, 97, 74, 75, 68, 66, 80, 62, 61, 60, 62, 67, 77, 56, 65, 63, 68, 80, 73, 62, 68, 56, 62, 70, 56, 68, 49, 66, 65, 110, 90, 65, 71, 64, 62, 70, 59, 72, 61, 66, 69, 85, 81, 58, 91, 80, 67, 78, 74, 56, 62, 56, 74, 77, 50, 58, 55, 49, 61, 73, 50, 60, 51, 56, 61, 51, 52, 57, 68, 66, 52, 73, 60, 67, 58, 54, 79, 60, 37, 60, 82, 63, 63, 54, 85, 59, 72, 65, 60, 66, 35, 59, 55, 88, 69, 47, 64, 50, 82, 73, 73, 56, 63, 56, 66, 56, 70, 88, 60, 63, 55, 57, 69, 55, 56, 52, 65, 79, 48, 66, 68, 76, 67, 81, 61, 51, 64, 62, 66, 75, 57, 34, 70, 71, 75, 102, 113, 70, 50, 87, 82, 47, 59, 59, 72, 74, 65, 59, 67, 72, 63, 56, 42, 69, 70, 59, 55, 52, 61, 55, 86, 57, 97, 77, 76, 64, 70, 92, 66, 60, 69, 52, 59, 60, 88, 75, 56, 96, 78, 53, 67, 58, 73, 49, 81, 66, 70, 111, 90, 44, 51, 51, 82, 66, 56, 132, 70, 59, 71, 68, 70, 63, 94, 72, 46, 55, 54, 93, 55, 51, 68, 45, 83, 85, 65, 72, 78, 45, 57, 83, 71, 84, 46, 63, 66, 73, 63, 77, 71, 67, 74, 42, 49, 52, 84, 53, 60, 57, 55, 61, 76, 45, 58, 53, 61, 49, 64, 67, 61, 87, 51, 90, 69, 58, 60, 47, 64, 49, 72, 66, 42, 73, 60, 76, 62, 83, 63, 66, 69, 55, 65, 68, 62, 56, 45, 60, 60, 66, 51, 60, 66, 73, 65, 66, 53, 83, 73, 68, 83, 101, 53, 61, 91, 61, 72, 59, 49, 60, 70, 72, 76, 58, 68, 79, 71, 80, 47, 80, 84, 61, 75, 58, 70, 73, 54, 63, 57, 65, 57, 72, 54, 143, 81, 81, 60, 52, 55, 29, 63, 78, 63, 65, 77, 56, 54, 58, 68, 99, 51, 62, 58, 52, 79, 56, 45, 46, 56, 91, 55, 60, 69, 68, 58, 68, 60, 56, 61, 66, 93, 68, 78, 32, 62, 64, 70, 51, 64, 53, 78, 103, 78, 53, 66, 49, 48, 55, 61, 62, 74, 66, 51, 71, 53, 73, 73, 60, 61, 63, 50, 94, 79, 59, 65, 88, 104, 60, 48, 71, 50, 65, 61, 59, 82, 54, 58, 51, 82, 57, 76, 69, 59, 50, 75, 63, 70, 120, 79, 58, 37, 73, 77, 63, 62, 90, 64, 50, 77, 56, 86, 64, 72, 65, 74, 56, 76, 65, 74, 56, 76, 61, 72, 76, 73, 67, 55, 59, 93, 66, 91, 48, 99, 56, 60, 79, 69, 73, 77, 115, 64, 67, 75, 60, 70, 71, 54, 68, 56, 59, 58, 72, 91, 94, 58, 75, 64, 50, 73, 52, 54, 64, 49, 59, 47, 43, 49, 55, 61, 76, 83, 65, 65, 74, 64, 56, 66, 56, 42, 66, 58, 61, 49, 61, 90, 75, 48, 54, 70, 63, 63, 71, 67, 48, 55, 62, 75, 56, 58, 57, 76, 55, 56, 48, 86, 78, 74, 65, 86, 92, 67, 66, 61, 85, 60, 63, 75, 56, 59, 34, 72, 39, 59, 99, 59, 65, 57, 93, 54, 67, 71, 69, 39, 61, 54, 72, 90, 58, 68, 63, 59, 62, 56, 68, 97, 67, 73, 60, 66, 76, 70, 60, 97, 49, 71, 62, 64, 72, 61, 66, 62, 56, 62, 47, 57, 61, 65, 58, 45, 65, 64, 61, 66, 55, 56, 54, 76, 83, 80, 55, 53, 63, 51, 67, 72, 64, 125, 59, 84, 53, 47, 62, 73, 71, 69, 52, 73, 66, 81, 82, 66, 68, 55, 101, 67, 71, 49, 76, 71, 67, 65, 70, 51, 55, 58, 55, 51, 74, 66, 60, 71, 57, 61, 57, 69, 59, 62, 79, 65, 52, 65, 97, 58, 70, 71, 76, 75, 45, 53, 61, 65, 72, 75, 68, 64, 75, 101, 60, 67, 65, 70, 80, 53, 58, 108, 66, 65, 64, 70, 88, 69, 61, 48, 65, 46, 89, 77, 49, 62, 69, 53, 75, 67, 78, 66, 65, 68, 125, 84, 61, 57, 76, 95, 50, 65, 66, 63, 73, 57, 59, 75, 70, 70, 67, 56, 74, 46, 64, 74, 54, 51, 54, 69, 48, 94, 61, 56, 67, 57, 76, 56, 56, 75, 68, 64, 81, 81, 71, 80, 73, 55, 54, 68, 76, 70, 76, 66, 63, 55, 77, 58, 113, 70, 60, 67, 60, 48, 63, 70, 57, 79, 67, 56, 62, 56, 65, 46, 56, 49, 66, 81, 64, 56, 64, 55, 73, 61, 60, 65, 61, 81, 47, 68, 67, 62, 69, 115, 61, 54, 56, 58, 75, 60, 56, 68, 58, 73, 58, 65, 60, 46, 65, 62, 77, 68, 58, 86, 63, 56, 37, 65, 71, 80, 68, 57, 62, 59, 53, 76, 70, 63, 72, 84, 49, 56, 79, 54, 60, 61, 83, 65, 100, 66, 59, 92, 44, 51, 40, 68, 49, 78, 62, 98, 74, 79, 58, 71, 85, 73, 65, 42, 61, 57, 61, 57, 64, 85, 80, 65, 67, 81, 85, 68, 56, 56, 60, 87, 62, 58, 63, 81, 74, 67, 69, 60, 60, 72, 49, 66, 56, 60, 51, 66, 55, 70, 54, 57, 68, 62, 69, 72, 49, 65, 70, 81, 50, 82, 66, 61, 57, 95, 65, 62, 61, 75, 54, 83, 65, 61, 46, 67, 83, 61, 69, 124, 58, 56, 72, 80, 62, 57, 60, 67, 54, 69, 130, 70, 81, 78, 66, 77, 66, 56, 69, 59, 58, 71, 68, 89, 58, 72, 65, 66, 62, 72, 74, 77, 64, 67, 63, 44, 69, 66, 59, 69, 72, 62, 84, 66, 65, 102, 60, 55, 65, 60, 98, 63, 69, 46, 63, 68, 71, 62, 64, 61, 58, 64, 72, 59, 72, 59, 71, 54, 78, 74, 95, 55, 62, 64, 71, 70, 56, 59, 68, 85, 104, 107, 63, 51, 74, 52, 66, 66, 59, 66, 76, 63, 85, 58, 77, 48, 60, 76, 68, 80, 65, 67, 58, 83, 80, 68, 72, 74, 67, 58, 59, 58, 72, 49, 55, 60, 54, 45, 72, 55, 104, 61, 52, 63, 58, 65, 69, 59, 86, 61, 64, 75, 68, 63, 69, 60, 69, 65, 76, 74, 60, 82, 52, 62, 59, 49, 68, 77, 50, 51, 73, 124, 122, 75, 78, 68, 64, 61, 52, 56, 60, 60, 65, 55, 69, 65, 63, 65, 79, 66, 71, 77, 66, 68, 69, 76, 48, 81, 54, 47, 63, 90, 51, 49, 58, 78, 59, 93, 67, 64, 62, 83, 67, 54, 74, 60, 118, 61, 76, 58, 70, 54, 67, 65, 57, 77, 50, 67, 72, 53, 62, 75, 57, 56, 59, 58, 67, 55, 63, 66, 59, 53, 76, 66, 54, 60, 60, 67, 58, 66, 80, 71, 63, 63, 75, 67, 71, 66, 63, 64, 58, 61, 55, 67, 74, 61, 64, 63, 63, 62, 70, 54, 61, 67, 68, 76, 55, 79, 84, 73, 94, 62, 68, 82, 73, 53, 61, 61, 64, 78, 68, 65, 64, 67, 62, 65, 50, 58, 134, 120, 59, 60, 52, 84, 78, 46, 60, 65, 66, 77, 66, 43, 84, 61, 68, 72, 119, 55, 48, 61, 86, 63, 89, 62, 62, 58, 63, 53, 53, 53, 66, 74, 55, 48, 79, 70, 75, 65, 76, 81, 70, 66, 72, 73, 70, 48, 54, 83, 69, 64, 71, 52, 58, 137, 46, 94, 68, 66, 63, 51, 56, 79, 72, 67, 99, 74, 62, 62, 50, 65, 73, 70, 47, 55, 55, 68, 68, 45, 58, 69, 55, 62, 60, 51, 47, 59, 61, 48, 78, 55, 55, 52, 70, 49, 91, 63, 57, 62, 75, 52, 77, 63, 70, 67, 66, 67, 58, 65, 60, 60, 54, 80, 61, 58, 74, 62, 73, 67, 60, 66, 72, 57, 65, 74, 66, 55, 68, 65, 82, 51, 66, 54, 69, 43, 52, 67, 52, 46, 72, 71, 71, 65, 59, 73, 74, 68, 55, 56, 57, 53, 68, 58, 59, 56, 65, 92, 57, 60, 81, 56, 81, 59, 61, 80, 51, 63, 68, 64, 45, 63, 50, 93, 60, 36, 70, 75, 50, 70, 69, 63, 61, 54, 68, 75, 62, 59, 70, 84, 60, 79, 59, 76, 55, 60, 83, 57, 71, 65, 64, 71, 60, 64, 76, 87, 61, 69, 53, 76, 55, 67, 44, 52, 88, 95, 66, 93, 63, 140, 60, 68, 121, 65, 59, 64, 67, 64, 105, 53, 57, 68, 60, 78, 65, 67, 80, 69, 70, 74, 56, 66, 70, 108, 57, 69, 63, 84, 65, 63, 60, 67, 64, 74, 51, 90, 68, 75, 59, 63, 56, 62, 75, 69, 61, 53, 61, 52, 107, 58, 62, 65, 72, 81, 65, 57, 68, 59, 53, 95, 57, 58, 62, 41, 65, 69, 66, 57, 72, 58, 67, 58, 58, 63, 59, 49, 64, 63, 70, 54, 46, 55, 61, 57, 57, 66, 61, 61, 67, 48, 69, 76, 67, 64, 63, 63, 74, 53, 64, 52, 63, 65, 81, 59, 74, 70, 60, 94, 60, 74, 69, 109, 70, 65, 57, 59, 48, 67, 57, 59, 59, 45, 52, 59, 60, 60, 90, 70, 54, 76, 76, 45, 69, 53, 73, 76, 64, 57, 57, 64, 47, 110, 75, 64, 64, 70, 60, 88, 63, 67, 54, 89, 54, 65, 71, 56, 100, 72, 69, 61, 56, 66, 57, 46, 57, 73, 57, 110, 76, 85, 79, 62, 45, 56, 61, 77, 71, 57, 73, 64, 70, 57, 51, 59, 56, 68, 78, 72, 48, 37, 53, 58, 75, 68, 83, 60, 71, 50, 65, 63, 54, 71, 63, 63, 52, 47, 63, 54, 72, 67, 59, 51, 57, 72, 67, 80, 57, 80, 71, 54, 48, 70, 101, 45, 69, 86, 58, 96, 70, 76, 68, 67, 67, 70, 80, 55, 72, 68, 71, 60, 84, 75, 69, 64, 80, 97, 65, 69, 83, 79, 47, 62, 69, 81, 69, 80, 98, 49, 65, 45, 75, 55, 71, 55, 46, 53, 63, 58, 73, 63, 75, 50, 46, 52, 63, 61, 58, 56, 52, 75, 83, 56, 67, 74, 71, 63, 50, 84, 56, 84, 85, 83, 62, 150, 63, 60, 63, 48, 61, 67, 42, 67, 50, 92, 66, 59, 54, 85, 62, 62, 73, 74, 50, 53, 63, 63, 53, 52, 47, 68, 52, 46, 58, 60, 64, 86, 85, 62, 54, 68, 63, 58, 77, 72, 71, 62, 78, 74, 60, 71, 65, 67, 60, 71, 66, 113, 81, 73, 95, 56, 60, 61, 66, 58, 90, 55, 65, 46, 57, 60, 57, 66, 88, 99, 57, 52, 126, 53, 61, 70, 60, 70, 79, 78, 78, 74, 48, 74, 56, 66, 49, 42, 65, 66, 77, 58, 64, 56, 50, 74, 59, 75, 57, 72, 66, 64, 51, 64, 66, 49, 64, 74, 62, 83, 53, 57, 52, 66, 78, 65, 61, 84, 58, 57, 53, 57, 45, 60, 72, 83, 57, 57, 78, 92, 51, 57, 52, 63, 52, 69, 86, 68, 66, 63, 38, 88, 63, 58, 75, 92, 67, 72, 56, 74, 47, 62, 58, 62, 59, 60, 68, 66, 81, 49, 69, 67, 62, 64, 45, 62, 77, 66, 60, 86, 77, 96, 87, 58, 72, 82, 67, 60, 61, 59, 58, 83, 59, 66, 81, 54, 92, 57, 81, 65, 50, 75, 60, 51, 76, 86, 57, 73, 46, 48, 60, 51, 75, 64, 68, 72, 68, 55, 69, 78, 64, 73, 73, 71, 63, 54, 62, 58, 55, 69, 71, 84, 65, 91, 59, 62, 59, 43, 67, 59, 61, 69, 56, 45, 51, 73, 74, 107, 53, 74, 60, 60, 54, 67, 89, 58, 74, 67, 73, 79, 70, 51, 60, 65, 59, 68, 60, 72, 65, 54, 96, 66, 52, 71, 54, 51, 61, 47, 52, 67, 64, 57, 52, 72, 45, 52, 58, 55, 63, 55, 64, 61, 53, 43, 89, 71, 70, 91, 77, 64, 57, 56, 61, 76, 81, 83, 70, 58, 70, 70, 56, 72, 72, 61, 68, 61, 57, 56, 65, 61, 79, 64, 53, 68, 59, 78, 78, 78, 55, 59, 49, 67, 53, 75, 52, 61, 56, 62, 57, 80, 52, 64, 67, 54, 51, 67, 50, 70, 57, 65, 67, 68, 66, 72, 64, 54, 56, 76, 129, 71, 74, 53, 54, 62, 66, 75, 97, 53, 64, 65, 104, 62, 69, 73, 49, 69, 69, 74, 71, 82, 85, 53, 88, 70, 54, 62, 52, 78, 64, 42, 84, 69, 77, 65, 75, 65, 70, 61, 45, 59, 62, 64, 53, 85, 46, 43, 46, 72, 72, 89, 69, 71, 63, 56, 51, 83, 66, 88, 55, 58, 93, 91, 65, 64, 54, 55, 92, 63, 59, 79, 54, 81, 58, 57, 54, 47, 53, 65, 74, 55, 60, 52, 81, 70, 66, 54, 82, 64, 43, 57, 116, 55, 59, 80, 76, 72, 63, 87, 82, 45, 58, 54, 66, 69, 75, 77, 56, 80, 66, 63, 50, 56, 54, 75, 57, 63, 124, 62, 71, 57, 61, 72, 83, 80, 52, 79, 63, 73, 103, 69, 67, 41, 47, 54, 69, 59, 58, 84, 56, 69, 39, 48, 68, 72, 72, 64, 50, 81, 61, 52, 58, 69, 58, 96, 78, 79, 61, 85, 72, 70, 60, 55, 73, 52, 82, 67, 56, 98, 74, 53, 72, 71, 91, 54, 67, 59, 56, 53, 69, 66, 47, 85, 51, 75, 64, 82, 54, 63, 85, 51, 60, 70, 63, 75, 66, 66, 63, 70, 59, 84, 59, 57, 57, 77, 57, 61, 58, 73, 75, 61, 74, 64, 61, 69, 75, 68, 84, 41, 71, 70, 72, 76, 73, 64, 67, 50, 71, 62, 66, 39, 52, 69, 61, 52, 59, 71, 74, 73, 53, 72, 64, 73, 86, 68, 78, 54, 63, 65, 59, 63, 57, 67, 64, 56, 53, 50, 42, 70, 57, 69, 62, 43, 53, 83, 84, 57, 67, 52, 43, 66, 83, 81, 66, 54, 44, 48, 87, 69, 51, 71, 65, 65, 53, 79, 43, 66, 64, 66, 64, 62, 67, 76, 65, 76, 65, 69, 68, 57, 98, 59, 59, 68, 84, 54, 60, 70, 82, 68, 52, 68, 61, 58, 60, 77, 92, 77, 94, 66, 55, 68, 80, 54, 60, 74, 86, 60, 63, 43, 70, 100, 47, 65, 64, 70, 76, 55, 79, 79, 60, 57, 69, 74, 64, 94, 74, 84, 63, 74, 52, 60, 51, 77, 50, 61, 58, 77, 87, 66, 57, 74, 73, 54, 59, 66, 52, 79, 74, 64, 59, 57, 87, 71, 87, 75, 63, 49, 90, 61, 77, 67, 87, 74, 57, 105, 58, 64, 60, 61, 69, 79, 56, 59, 77, 76, 50, 69, 54, 69, 85, 87, 54, 52, 58, 60, 64, 76, 77, 93, 69, 67, 49, 55, 74, 64, 48, 49, 57, 53, 61, 68, 57, 82, 71, 69, 77, 81, 70, 77, 70, 74, 67, 68, 53, 43, 54, 54, 84, 46, 62, 52, 60, 56, 61, 59, 58, 60, 51, 61, 59, 58, 57, 58, 62, 73, 52, 63, 54, 60, 74, 71, 58, 46, 74, 59, 86, 67, 60, 99, 47, 73, 89, 55, 64, 73, 64, 73, 56, 77, 69, 59, 71, 69, 82, 74, 47, 80, 68, 75, 76, 72, 57, 65, 49, 63, 58, 46, 89, 127, 67, 50, 67, 69, 67, 74, 62, 56, 65, 59, 77, 60, 51, 71, 86, 89, 59, 69, 56, 49, 50, 87, 91, 58, 60, 79, 60, 76, 74, 68, 67, 75, 61, 76, 60, 79, 85, 85, 52, 57, 69, 53, 79, 59, 53, 46, 71, 74, 56, 59, 100, 57, 70, 104, 70, 28, 88, 65, 48, 70, 77, 74, 78, 59, 57, 62, 64, 71, 67, 54, 75, 71, 62, 70, 80, 72, 75, 67, 67, 117, 114, 51, 60, 52, 51, 60, 51, 47, 55, 47, 73, 57, 62, 72, 68, 76, 79, 71, 73, 69, 60, 76, 79, 67, 48, 46, 76, 54, 56, 40, 64, 50, 50, 52, 59, 65, 54, 71, 131, 43, 54, 69, 67, 72, 49, 49, 81, 57, 71, 54, 62, 84, 60, 49, 46, 62, 60, 56, 62, 50, 90, 68, 67, 59, 60, 82, 41, 39, 41, 52, 76, 56, 50, 62, 62, 37, 62, 62, 70, 72, 62, 66, 97, 67, 48, 42, 64, 72, 70, 55, 49, 67, 57, 41, 91, 51, 69, 77, 61, 56, 44, 60, 72, 72, 84, 71, 67, 62, 73, 62, 67, 88, 35, 49, 87, 50, 65, 68, 62, 47, 82, 80, 69, 75, 79, 75, 63, 62, 53, 38, 57, 63, 43, 55, 69, 71, 68, 71, 68, 57, 67, 53, 57, 57, 51, 72, 45, 72, 72, 59, 91, 79, 64, 59, 62, 83, 58, 58, 42, 55, 71, 53, 46, 66, 67, 84, 60, 54, 68, 74, 56, 65, 53, 65, 64, 39, 43, 62, 66, 63, 66, 57, 50, 64, 149, 58, 78, 72, 64, 45, 54, 64, 43, 73, 69, 63, 75, 97, 132, 63, 30, 64, 74, 57, 86, 39, 99, 59, 61, 72, 66, 69, 81, 61, 46, 63, 61, 73, 49, 61, 42, 39, 73, 40, 63, 79, 78, 69, 59, 80, 56, 63, 81, 82, 65, 129, 76, 49, 58, 71, 65, 56, 63, 61, 46, 58, 92, 53, 59, 119, 36, 55, 84, 61, 88, 49, 64, 65, 63, 70, 71, 64, 96, 67, 57, 66, 74, 68, 54, 59, 96, 46, 77, 51, 77, 58, 68, 66, 72, 57, 67, 104, 56, 74, 86, 63, 67, 35, 60, 56, 78, 61, 46, 55, 62, 50, 78, 70, 68, 84, 69, 61, 64, 73, 52, 61, 74, 95, 74, 65, 48, 62, 60, 90, 80, 63, 88, 63, 69, 63, 63, 60, 60, 77, 56, 88, 66, 44, 63, 51, 69, 96, 69, 60, 59, 68, 80, 53, 78, 55, 60, 95, 62, 51, 61, 60, 89, 72, 61, 67, 80, 90, 53, 62, 59, 60, 69, 55, 41, 67, 60, 52, 76, 52, 69, 50, 78, 83, 62, 79, 78, 68, 58, 58, 51, 72, 85, 56, 54, 43, 90, 77, 102, 83, 50, 109, 144, 49, 66, 60, 54, 52, 79, 70, 74, 58, 63, 47, 43, 70, 89, 63, 67, 48, 69, 75, 36, 54, 49, 73, 60, 58, 53, 88, 87, 60, 59, 61, 42, 57, 60, 55, 50, 54, 58, 76, 47, 63, 75, 68, 73, 57, 89, 84, 106, 70, 74, 49, 73, 80, 79, 55, 74, 52, 87, 52, 50, 79, 65, 74, 69, 45, 64, 77, 71, 69, 58, 61, 57, 82, 52, 76, 58, 96, 88, 77, 54, 85, 62, 70, 62, 65, 48, 75, 60, 67, 58, 62, 80, 65, 84, 70, 79, 79, 45, 65, 44, 79, 65, 81, 65, 60, 62, 79, 58, 76, 59, 77, 68, 79, 66, 70, 48, 72, 52, 88, 83, 70, 83, 86, 76, 73, 64, 68, 62, 73, 42, 84, 57, 53, 71, 75, 63, 58, 48, 70, 42, 96, 87, 58, 60, 49, 71, 74, 76, 56, 103, 60, 64, 58, 72, 64, 93, 72, 68, 48, 68, 113, 53, 77, 67, 58, 55, 64, 68, 67, 55, 72, 44, 59, 65, 59, 58, 67, 55, 78, 56, 74, 65, 38, 76, 57, 58, 76, 81, 72, 58, 44, 96, 75, 71, 74, 83, 68, 71, 92, 46, 65, 56, 83, 66, 65, 59, 78, 61, 81, 64, 54, 47, 87, 74, 47, 62, 49, 64, 83, 61, 69, 85, 59, 62, 70, 41, 36, 70, 75, 76, 78, 60, 54, 43, 64, 71, 75, 69, 53, 67, 71, 47, 64, 79, 81, 53, 63, 52, 97, 54, 65, 77, 74, 62, 50, 61, 61, 65, 74, 47, 86, 61, 55, 78, 68, 78, 58, 53, 41, 68, 63, 50, 47, 54, 65, 61, 56, 53, 55, 80, 101, 62, 53, 49, 55, 50, 63, 67, 50, 62, 41, 56, 58, 56, 50, 41, 60, 42, 75, 63, 34, 58, 47, 89, 92, 74, 73, 57, 72, 43, 45, 79, 84, 80, 64, 84, 56, 47, 80, 65, 59, 60, 88, 78, 50, 65, 62, 85, 66, 54, 81, 64, 87, 47, 73, 41, 69, 91, 48, 68, 111, 55, 55, 57, 88, 57, 49, 64, 63, 65, 64, 58, 63, 63, 67, 75, 68, 78, 41, 67, 78, 66, 108, 44, 62, 63, 63, 64, 61, 70, 86, 48, 88, 46, 81, 65, 58, 62, 74, 44, 76, 58, 75, 62, 70, 65, 120, 66, 48, 52, 62, 58, 59, 55, 26, 46, 66, 57, 70, 59, 76, 54, 54, 54, 65, 62, 51, 65, 77, 78, 46, 63, 66, 79, 84, 68, 93, 49, 42, 75, 60, 61, 83, 55, 69, 98, 68, 56, 71, 68, 61, 43, 47, 77, 87, 54, 64, 67, 57, 62, 64, 79, 62, 54, 57, 69, 67, 64, 106, 78, 54, 88, 45, 59, 42, 65, 72, 50, 72, 59, 35, 85, 52, 62, 60, 74, 56, 61, 65, 55, 73, 52, 58, 69, 53, 60, 72, 49, 61, 71, 57, 85, 55, 75, 66, 57, 82, 44, 48, 75, 64, 50, 69, 101, 73, 69, 84, 53, 54, 70, 58, 68, 83, 66, 95, 65, 141, 81, 64, 69, 36, 84, 71, 75, 60, 70, 78, 81, 57, 94, 70, 61, 84, 57, 66, 87, 60, 47, 51, 49, 78, 66, 60, 77, 49, 49, 65, 78, 96, 86, 70, 66, 72, 64, 70, 67, 65, 61, 58, 83, 143, 67, 72, 75, 75, 55, 87, 67, 94, 43, 48, 72, 81, 73, 58, 65, 88, 77, 97, 50, 51, 46, 111, 83, 46, 44, 40, 70, 75, 60, 80, 47, 57, 55, 76, 99, 80, 61, 51, 63, 60, 70, 85, 90, 140, 66, 64, 45, 58, 58, 82, 52, 61, 68, 63, 63, 63, 77, 56, 70, 66, 69, 57, 77, 42, 81, 60, 70, 60, 70, 47, 62, 79, 71, 62, 59, 79, 72, 77, 63, 71, 89, 59, 64, 60, 99, 55, 53, 94, 64, 57, 54, 58, 73, 62, 53, 65, 47, 58, 74, 59, 68, 73, 71, 64, 68, 97, 59, 83, 55, 58, 64, 62, 70, 63, 59, 69, 73, 68, 72, 64, 79, 63, 51, 59, 59, 55, 54, 64, 58, 75, 61, 76, 73, 63, 60, 76, 56, 57, 58, 82, 92, 55, 65, 86, 64, 57, 74, 66, 64, 82, 66, 54, 55, 61, 59, 61, 68, 79, 65, 46, 64, 62, 79, 45, 52, 64, 62, 81, 86, 66, 64, 75, 56, 82, 71, 72, 88, 52, 68, 86, 53, 65, 74, 65, 80, 102, 77, 74, 73, 51, 68, 65, 77, 63, 62, 73, 70, 76, 70, 64, 59, 109, 66, 67, 60, 66, 68, 62, 63, 50, 64, 47, 56, 59, 58, 47, 68, 64, 57, 86, 56, 59, 66, 57, 53, 61, 58, 55, 72, 70, 60, 79, 53, 96, 62, 54, 59, 77, 61, 63, 100, 75, 68, 79, 72, 55, 55, 46, 68, 63, 43, 60, 58, 72, 118, 73, 81, 59, 62, 87, 66, 53, 52, 144, 66, 51, 62, 57, 73, 65, 60, 68, 58, 71, 60, 62, 85, 60, 97, 81, 86, 65, 63, 56, 60, 56, 73, 63, 61, 87, 81, 54, 53, 64, 59, 55, 73, 66, 64, 91, 98, 55, 64, 107, 45, 47, 84, 74, 68, 64, 56, 74, 113, 57, 61, 62, 63, 72, 68, 65, 64, 95, 59, 86, 77, 63, 78, 61, 69, 64, 73, 56, 62, 73, 121, 55, 61, 62, 56, 70, 57, 58, 37, 106, 63, 90, 83, 59, 60, 50, 75, 62, 48, 79, 69, 65, 57, 38, 64, 57, 54, 58, 93, 65, 58, 74, 54, 61, 65, 60, 71, 55, 57, 73, 48, 61, 67, 60, 56, 74, 73, 63, 87, 57, 75, 55, 80, 56, 67, 68, 75, 56, 62, 74, 76, 63, 78, 75, 69, 60, 83, 60, 70, 56, 79, 78, 58, 64, 63, 57, 58, 57, 63, 62, 78, 63, 54, 55, 72, 84, 57, 57, 60, 64, 63, 44, 70, 61, 68, 62, 43, 50, 71, 64, 55, 51, 73, 69, 63, 68, 65, 74, 71, 51, 45, 73, 54, 55, 67, 81, 80, 59, 68, 64, 54, 86, 65, 72, 53, 91, 63, 63, 56, 77, 58, 70, 71, 70, 66, 56, 84, 58, 66, 57, 53, 125, 83, 54, 66, 51, 78, 56, 45, 69, 60, 54, 62, 65, 56, 60, 96, 82, 76, 42, 55, 69, 66, 68, 66, 64, 69, 53, 54, 63, 68, 53, 45, 45, 90, 95, 60, 74, 66, 73, 66, 55, 74, 54, 73, 89, 72, 61, 68, 69, 58, 49, 67, 61, 86, 71, 46, 53, 63, 75, 79, 66, 46, 67, 66, 61, 54, 63, 78, 59, 69, 60, 70, 61, 63, 59, 58, 52, 79, 80, 107, 51, 69, 70, 50, 78, 64, 60, 47, 74, 68, 62, 72, 87, 51, 55, 69, 59, 62, 65, 63, 59, 42, 64, 57, 51, 79, 73, 70, 66, 61, 64, 57, 50, 42, 66, 75, 58, 64, 49, 53, 67, 59, 46, 61, 66, 99, 40, 71, 61, 51, 62, 77, 54, 72, 44, 62, 57, 86, 58, 80, 58, 68, 81, 68, 50, 68, 57, 66, 50, 53, 45, 59, 67, 54, 65, 53, 58, 65, 62, 57, 76, 51, 57, 82, 46, 78, 54, 55, 70, 81, 61, 66, 72, 51, 57, 65, 53, 67, 56, 64, 60, 53, 88, 63, 54, 61, 91, 83, 59, 65, 73, 63, 82, 63, 67, 59, 73, 50, 84, 86, 63, 67, 54, 56, 57, 65, 57, 70, 69, 72, 75, 56, 64, 119, 62, 52, 66, 58, 54, 57, 59, 50, 61, 59, 55, 60, 61, 75, 74, 67, 77, 63, 62, 56, 72, 73, 60, 139, 72, 84, 84, 54, 65, 72, 60, 110, 63, 61, 59, 73, 63, 57, 59, 68, 51, 76, 60, 94, 65, 95, 83, 65, 61, 65, 65, 56, 94, 68, 98, 84, 63, 54, 62, 69, 80, 60, 69, 53, 83, 88, 66, 59, 68, 64, 62, 70, 70, 46, 70, 75, 94, 55, 45, 76, 57, 53, 63, 58, 53, 79, 65, 80, 66, 61, 70, 76, 73, 71, 87, 44, 79, 57, 80, 67, 71, 68, 46, 64, 72, 56, 67, 62, 73, 62, 61, 56, 86, 76, 60, 61, 54, 73, 36, 93, 73, 65, 64, 88, 68, 68, 74, 79, 71, 53, 55, 58, 74, 61, 59, 60, 48, 66, 52, 81, 69, 68, 62, 54, 57, 60, 69, 80, 54, 62, 66, 68, 68, 75, 84, 61, 66, 115, 63, 70, 80, 58, 70, 71, 53, 59, 59, 69, 77, 50, 70, 81, 61, 78, 68, 67, 55, 73, 62, 60, 55, 65, 75, 76, 77, 55, 73, 57, 74, 78, 68, 69, 76, 64, 54, 61, 80, 59, 75, 54, 48, 70, 58, 79, 75, 108, 64, 64, 60, 49, 65, 74, 70, 77, 55, 34, 56, 73, 74, 73, 58, 70, 46, 59, 58, 98, 126, 87, 56, 75, 64, 66, 34, 69, 64, 62, 89, 50, 78, 59, 62, 65, 62, 82, 56, 69, 68, 66, 77, 76, 82, 52, 122, 60, 92, 63, 76, 62, 53, 64, 97, 64, 56, 61, 111, 61, 63, 61, 80, 60, 61, 70, 77, 83, 75, 77, 55, 63, 66, 67, 59, 60, 66, 56, 82, 71, 53, 68, 59, 53, 60, 76, 85, 60, 64, 63, 60, 61, 59, 55, 75, 61, 71, 58, 85, 57, 65, 48, 71, 64, 83, 59, 76, 65, 54, 84, 64, 61, 63, 68, 69, 74, 68, 64, 74, 52, 53, 64, 48, 69, 86, 70, 67, 85, 67, 62, 63, 67, 88, 71, 69, 61, 74, 47, 54, 66, 68, 59, 64, 54, 90, 63, 64, 61, 79, 65, 67, 63, 71, 62, 66, 63, 47, 45, 76, 58, 78, 62, 62, 58, 59, 63, 58, 50, 53, 69, 55, 70, 61, 86, 66, 64, 94, 56, 67, 65, 49, 68, 77, 48, 58, 81, 49, 116, 59, 86, 62, 74, 45, 62, 68, 84, 67, 46, 68, 61, 74, 72, 55, 58, 88, 67, 77, 57, 68, 57, 73, 82, 56, 72, 62, 79, 53, 52, 56, 62, 65, 72, 117, 88, 54, 70, 74, 91, 66, 65, 64, 81, 50, 58, 38, 64, 67, 76, 68, 72, 95, 61, 58, 60, 62, 73, 67, 65, 58, 66, 65, 38, 58, 59, 48, 68, 71, 46, 59, 59, 72, 68, 78, 68, 59, 64, 51, 64, 50, 48, 70, 77, 53, 63, 57, 50, 80, 56, 33, 70, 73, 51, 58, 60, 73, 78, 62, 74, 63, 67, 52, 67, 60, 61, 53, 81, 93, 86, 77, 73, 64, 82, 65, 60, 81, 63, 63, 93, 60, 46, 45, 58, 68, 94, 50, 73, 98, 61, 46, 63, 51, 66, 53, 70, 69, 77, 78, 50, 82, 49, 61, 63, 40, 57, 88, 55, 56, 52, 71, 80, 66, 72, 85, 51, 69, 62, 48, 52, 83, 79, 42, 70, 72, 63, 84, 60, 49, 55, 50, 82, 53, 61, 77, 55, 69, 44, 55, 72, 56, 71, 72, 71, 37, 91, 72, 56, 74, 102, 46, 55, 54, 63, 59, 51, 73, 71, 64, 72, 51, 74, 53, 65, 79, 67, 48, 62, 77, 82, 76, 65, 50, 81, 67, 89, 56, 55, 96, 60, 81, 73, 66, 70, 60, 68, 92, 85, 93, 65, 75, 101, 57, 83, 36, 59, 80, 65, 62, 78, 60, 51, 49, 56, 77, 62, 74, 79, 57, 69, 55, 55, 62, 87, 63, 65, 55, 87, 90, 70, 75, 53, 60, 67, 65, 91, 61, 53, 57, 75, 58, 38, 68, 66, 62, 69, 62, 61, 82, 65, 113, 47, 83, 69, 67, 74, 45, 78, 45, 72, 64, 38, 74, 52, 95, 83, 76, 60, 75, 85, 58, 76, 62, 91, 71, 46, 61, 67, 69, 54, 60, 63, 86, 70, 78, 85, 66, 64, 49, 64, 74, 69, 59, 45, 52, 68, 36, 101, 60, 59, 73, 57, 73, 62, 74, 74, 37, 91, 69, 52, 77, 79, 65, 46, 80, 77, 71, 65, 54, 53, 94, 37, 54, 61, 58, 49, 64, 55, 79, 66, 44, 58, 56, 76, 50, 72, 59, 71, 62, 45, 70, 59, 62, 72, 49, 34, 66, 66, 60, 64, 67, 85, 99, 100, 59, 50, 52, 42, 72, 51, 53, 69, 117, 64, 52, 75, 68, 59, 57, 106, 94, 87, 108, 74, 71, 57, 61, 55, 106, 55, 77, 81, 86, 54, 47, 91, 80, 167, 56, 74, 58, 46, 75, 66, 63, 59, 51, 71, 50, 87, 72, 66, 46, 53, 57, 100, 70, 59, 70, 58, 55, 53, 57, 57, 104, 86, 77, 63, 80, 48, 63, 74, 47, 63, 34, 65, 76, 64, 56, 88, 60, 88, 93, 66, 72, 78, 67, 55, 71, 54, 64, 64, 90, 61, 69, 66, 57, 59, 45, 64, 82, 81, 68, 151, 71, 62, 61, 103, 52, 43, 88, 54, 65, 67, 108, 69, 86, 41, 60, 71, 73, 87, 75, 56, 60, 50, 49, 58, 102, 78, 43, 83, 67, 80, 85, 61, 60, 69, 59, 79, 51, 85, 60, 91, 48, 55, 61, 62, 66, 74, 103, 49, 61, 58, 49, 45, 60, 58, 49, 56, 52, 76, 51, 89, 60, 63, 60, 57, 59, 60, 63, 69, 121, 82, 90, 48, 55, 63, 53, 69, 69, 35, 112, 93, 61, 78, 108, 60, 65, 70, 46, 63, 84, 82, 51, 101, 50, 63, 77, 69, 69, 83, 80, 71, 69, 58, 68, 63, 68, 60, 87, 86, 125, 57, 63, 66, 62, 66, 63, 91, 71, 71, 49, 72, 75, 71, 74, 71, 65, 58, 68, 79, 66, 73, 97, 60, 73, 51, 61, 70, 54, 83, 64, 67, 63, 54, 56, 56, 62, 42, 28, 45, 68, 39, 76, 75, 58, 52, 49, 76, 43, 59, 71, 48, 61, 50, 42, 53, 85, 89, 49, 61, 52, 67, 68, 73, 51, 82, 85, 73, 65, 58, 61, 50, 100, 55, 40, 58, 78, 83, 62, 81, 52, 71, 63, 48, 73, 51, 83, 83, 61, 57, 50, 68, 48, 55, 75, 70, 55, 66, 75, 49, 70, 52, 85, 60, 70, 57, 59, 78, 55, 64, 82, 55, 56, 80, 76, 52, 70, 63, 63, 86, 46, 49, 57, 56, 64, 54, 77, 60, 76, 46, 89, 55, 65, 95, 48, 68, 54, 131, 58, 58, 66, 96, 68, 66, 61, 71, 59, 73, 54, 83, 69, 56, 53, 55, 72, 73, 48, 75, 84, 62, 67, 58, 73, 49, 52, 64, 36, 51, 93, 68, 54, 56, 105, 74, 61, 77, 76, 57, 59, 71, 70, 57, 78, 88, 68, 70, 68, 63, 60, 59, 82, 50, 46, 56, 51, 52, 62, 36, 70, 79, 56, 61, 52, 46, 85, 40, 55, 51, 85, 80, 43, 56, 69, 88, 64, 55, 58, 57, 48, 90, 80, 73, 69, 61, 74, 89, 85, 81, 66, 68, 60, 60, 47, 56, 59, 95, 88, 76, 75, 46, 62, 49, 62, 67, 54, 79, 62, 68, 65, 47, 59, 44, 81, 86, 68, 58, 61, 71, 55, 83, 50, 91, 81, 95, 54, 61, 108, 64, 59, 63, 60, 57, 40, 65, 68, 66, 75, 59, 57, 69, 62, 55, 58, 72, 55, 66, 57, 84, 87, 45, 52, 64, 78, 50, 64, 42, 73, 61, 76, 59, 46, 30, 79, 47, 50, 93, 48, 70, 43, 64, 55, 75, 74, 70, 85, 77, 47, 68, 72, 78, 89, 64, 134, 73, 62, 51, 77, 80, 62, 56, 61, 90, 70, 59, 54, 54, 58, 44, 88, 39, 70, 84, 48, 81, 48, 72, 56, 48, 71, 49, 79, 70, 91, 71, 73, 52, 46, 55, 66, 71, 60, 52, 54, 43, 55, 99, 78, 78, 74, 91, 57, 60, 74, 64, 70, 70, 60, 57, 74, 62, 64, 60, 71, 50, 60, 53, 59, 56, 71, 47, 64, 66, 86, 53, 67, 79, 53, 78, 83, 73, 68, 66, 51, 48, 59, 75, 50, 80, 68, 81, 91, 48, 58, 37, 68, 71, 76, 90, 71, 75, 54, 53, 78, 57, 48, 47, 73, 49, 58, 58, 67, 99, 50, 76, 62, 50, 66, 36, 78, 87, 77, 58, 52, 60, 79, 71, 71, 58, 60, 61, 65, 67, 45, 65, 41, 31, 52, 58, 71, 81, 44, 55, 51, 61, 79, 76, 74, 79, 75, 65, 48, 66, 61, 53, 89, 95, 67, 69, 50, 67, 87, 57, 76, 77, 81, 59, 88, 39, 56, 68, 81, 48, 59, 61, 67, 74, 58, 61, 55, 75, 72, 61, 58, 48, 76, 57, 60, 56, 85, 73, 65, 55, 61, 54, 82, 55, 68, 60, 78, 41, 59, 43, 69, 71, 54, 44, 66, 70, 61, 49, 101, 44, 74, 71, 47, 66, 67, 45, 76, 60, 100, 71, 83, 68, 69, 73, 50, 43, 84, 40, 66, 78, 75, 52, 67, 61, 70, 60, 40, 97, 73, 84, 63, 53, 60, 75, 54, 86, 92, 74, 88, 61, 49, 98, 66, 67, 83, 82, 72, 57, 69, 56, 68, 77, 38, 76, 77, 55, 77, 65, 83, 96, 59, 113, 64, 77, 83, 75, 64, 82, 52, 72, 82, 48, 37, 65, 57, 62, 76, 61, 58, 85, 75, 69, 66, 58, 62, 90, 60, 64, 53, 113, 53, 104, 69, 71, 36, 79, 78, 37, 96, 50, 51, 62, 47, 49, 46, 56, 67, 71, 64, 57, 67, 69, 71, 88, 61, 81, 49, 80, 87, 71, 73, 67, 63, 48, 74, 54, 73, 66, 79, 79, 51, 65, 94, 48, 80, 51, 86, 59, 71, 91, 60, 65, 59, 72, 87, 57, 69, 67, 52, 71, 49, 76, 60, 65, 66, 67, 63, 92, 58, 53, 46, 78, 53, 58, 74, 59, 70, 68, 56, 73, 63, 43, 121, 67, 69, 63, 69, 56, 73, 85, 100, 62, 55, 47, 53, 57, 70, 42, 66, 96, 58, 59, 64, 75, 51, 83, 57, 70, 30, 83, 35, 65, 85, 78, 81, 60, 79, 72, 72, 46, 64, 69, 45, 50, 65, 74, 69, 49, 51, 65, 57, 67, 69, 99, 71, 63, 77, 76, 63, 84, 61, 65, 54, 40, 71, 56, 40, 74, 48, 76, 68, 74, 36, 99, 57, 68, 65, 51, 48, 85, 80, 51, 62, 63, 53, 77, 90, 55, 94, 51, 86, 69, 50, 77, 59, 63, 70, 77, 69, 58, 74, 91, 52, 63, 65, 49, 54, 52, 64, 62, 39, 95, 57, 57, 60, 84, 45, 57, 70, 67, 49, 62, 87, 50, 72, 52, 48, 50, 104, 88, 118, 60, 97, 52, 64, 68, 146, 59, 103, 61, 81, 75, 110, 57, 66, 73, 48, 158, 57, 60, 84, 75, 84, 63, 60, 68, 81, 56, 87, 85, 70, 65, 55, 41, 74, 97, 104, 63, 74, 51, 74, 56, 55, 63, 46, 53, 64, 62, 88, 58, 43, 54, 61, 46, 51, 89, 96, 59, 58, 59, 57, 64, 69, 70, 74, 72, 55, 58, 67, 70, 66, 66, 50, 45, 57, 45, 78, 46, 56, 50, 71, 63, 75, 156, 90, 62, 54, 102, 52, 45, 82, 70, 73, 66, 81, 59, 44, 55, 57, 62, 53, 98, 63, 81, 80, 84, 58, 61, 67, 63, 61, 61, 80, 80, 82, 62, 57, 86, 73, 92, 56, 73, 65, 72, 56, 66, 68, 107, 60, 79, 65, 82, 62, 60, 53, 57, 74, 86, 57, 57, 64, 51, 69, 68, 63, 83, 77, 62, 73, 74, 58, 72, 140, 88, 58, 62, 50, 60, 65, 68, 105, 96, 69, 71, 26, 71, 62, 70, 65, 72, 49, 65, 68, 47, 39, 149, 70, 53, 69, 73, 105, 85, 59, 87, 58, 62, 121, 51, 73, 85, 45, 86, 96, 38, 54, 63, 61, 49, 85, 63, 49, 62, 80, 69, 58, 68, 41, 53, 54, 58, 71, 51, 63, 51, 64, 52, 55, 64, 64, 49, 67, 84, 55, 63, 52, 82, 53, 66, 70, 47, 56, 66, 72, 45, 81, 56, 66, 65, 68, 92, 36, 55, 87, 71, 55, 75, 57, 73, 50, 103, 72, 53, 79, 70, 53, 62, 48, 66, 95, 67, 43, 61, 50, 40, 93, 60, 60, 74, 61, 67, 87, 84, 38, 81, 65, 65, 81, 56, 63, 62, 50, 65, 41, 63, 69, 71, 64, 63, 41, 55, 72, 54, 70, 62, 70, 65, 86, 55, 78, 91, 48, 81, 62, 48, 55, 60, 88, 60, 53, 73, 60, 82, 61, 50, 45, 77, 79, 47, 55, 82, 88, 48, 44, 70, 54, 78, 57, 50, 72, 58, 63, 77, 59, 77, 66, 76, 63, 87, 60, 50, 63, 66, 63, 74, 73, 61, 74, 61, 68, 72, 69, 40, 83, 59, 82, 47, 65, 90, 67, 47, 84, 60, 57, 75, 76, 65, 53, 58, 52, 85, 58, 65, 63, 71, 50, 52, 58, 84, 71, 69, 62, 46, 102, 76, 66, 49, 59, 75, 73, 85, 64, 80, 66, 64, 86, 57, 63, 71, 76, 59, 64, 54, 76, 95, 82, 62, 71, 41, 52, 56, 49, 82, 59, 73, 82, 69, 78, 72, 60, 69, 68, 67, 81, 67, 57, 65, 86, 51, 82, 63, 49, 65, 42, 52, 46, 74, 78, 71, 70, 93, 73, 59, 69, 81, 69, 78, 85, 73, 58, 63, 72, 85, 64, 95, 54, 110, 61, 53, 102, 74, 79, 99, 77, 57, 42, 64, 79, 86, 45, 78, 49, 61, 52, 64, 60, 59, 62, 55, 52, 43, 97, 56, 41, 43, 48, 58, 72, 50, 61, 76, 60, 59, 83, 60, 68, 56, 43, 74, 50, 76, 46, 57, 71, 65, 65, 116, 90, 78, 64, 63, 70, 67, 65, 66, 144, 72, 65, 65, 75, 53, 69, 106, 62, 88, 82, 52, 71, 64, 72, 56, 62, 76, 67, 70, 76, 64, 47, 57, 51, 54, 71, 61, 60, 67, 48, 58, 95, 67, 58, 56, 73, 98, 59, 56, 60, 64, 54, 77, 70, 57, 94, 73, 40, 61, 47, 98, 58, 74, 48, 50, 55, 65, 57, 68, 63, 71, 82, 75, 42, 47, 53, 66, 61, 70, 90, 40, 67, 93, 66, 55, 49, 70, 72, 61, 52, 52, 63, 72, 56, 67, 96, 77, 49, 40, 91, 77, 64, 61, 59, 88, 61, 44, 50, 78, 69, 70, 61, 63, 60, 73, 53, 72, 60, 76, 86, 64, 63, 39, 83, 41, 61, 75, 76, 81, 94, 61, 94, 59, 97, 91, 90, 63, 43, 52, 88, 81, 49, 55, 56, 71, 50, 66, 88, 70, 64, 70, 73, 59, 83, 72, 67, 46, 58, 61, 86, 42, 81, 80, 72, 70, 72, 88, 65, 62, 61, 63, 50, 67, 65, 62, 64, 57, 70, 38, 62, 90, 86, 99, 108, 79, 51, 56, 64, 71, 57, 45, 64, 65, 71, 62, 57, 81, 63, 51, 80, 94, 63, 69, 65, 71, 61, 75, 55, 36, 63, 69, 53, 52, 47, 64, 40, 136, 69, 55, 96, 74, 47, 67, 39, 53, 57, 57, 81, 45, 44, 71, 103, 69, 68, 60, 51, 61, 53, 40, 51, 49, 48, 49, 69, 68, 64, 90, 53, 71, 51, 68, 70, 69, 51, 42, 57, 64, 83, 67, 81, 71, 53, 64, 46, 61, 78, 62, 60, 48, 76, 54, 71, 74, 61, 56, 53, 21, 97, 47, 71, 71, 89, 56, 56, 94, 79, 73, 65, 82, 46, 52, 85, 88, 60, 70, 87, 60, 67, 63, 62, 61, 59, 42, 47, 64, 53, 86, 83, 96, 44, 75, 118, 86, 71, 49, 61, 64, 68, 75, 74, 61, 55, 99, 76, 58, 77, 53, 74, 77, 60, 82, 52, 43, 77, 56, 91, 57, 61, 54, 65, 54, 64, 68, 105, 72, 59, 72, 63, 49, 57, 46, 65, 103, 49, 39, 72, 56, 70, 80, 70, 48, 53, 65, 61, 69, 81, 61, 72, 62, 85, 82, 71, 58, 46, 47, 74, 56, 101, 65, 53, 49, 65, 61, 78, 57, 77, 60, 37, 80, 62, 55, 84, 65, 65, 60, 80, 96, 91, 79, 62, 45, 63, 49, 57, 92, 68, 56, 57, 59, 53, 60, 57, 72, 60, 52, 48, 64, 73, 60, 71, 83, 103, 55, 72, 86, 85, 77, 76, 52, 82, 65, 85, 60, 38, 64, 54, 67, 72, 79, 63, 42, 81, 72, 77, 46, 62, 65, 50, 60, 108, 58, 85, 58, 48, 61, 57, 56, 72, 61, 90, 107, 47, 121, 70, 60, 56, 60, 66, 94, 61, 64, 80, 89, 59, 76, 82, 64, 66, 81, 89, 57, 51, 77, 44, 60, 72, 76, 60, 75, 72, 54, 59, 85, 65, 29, 64, 58, 46, 65, 60, 49, 50, 60, 46, 78, 57, 177, 139, 54, 57, 50, 89, 66, 74, 85, 61, 50, 50, 59, 42, 61, 51, 81, 45, 64, 74, 73, 77, 79, 78, 70, 62, 115, 71, 61, 51, 75, 89, 62, 69, 70, 74, 78, 53, 60, 71, 71, 67, 51, 92, 71, 73, 53, 77, 34, 64, 60, 42, 53, 56, 65, 72, 64, 65, 65, 53, 91, 68, 83, 77, 62, 53, 53, 68, 51, 77, 78, 68, 58, 52, 58, 68, 64, 50, 57, 63, 48, 51, 46, 62, 61, 55, 87, 40, 60, 62, 70, 62, 46, 81, 90, 88, 65, 60, 61, 46, 65, 67, 38, 32, 67, 47, 39, 60, 61, 53, 86, 58, 48, 65, 75, 39, 95, 49, 61, 50, 49, 65, 62, 53, 59, 47, 60, 53, 47, 70, 60, 42, 84, 69, 83, 85, 85, 53, 53, 67, 55, 69, 50, 57, 56, 59, 83, 64, 69, 42, 70, 53, 54, 83, 80, 53, 50, 48, 61, 75, 80, 56, 54, 68, 48, 43, 65, 57, 65, 44, 58, 46, 87, 45, 67, 126, 41, 68, 92, 70, 73, 63, 77, 86, 66, 57, 118, 60, 70, 63, 43, 65, 52, 109, 61, 58, 81, 101, 51, 55, 51, 65, 71, 90, 54, 87, 38, 40, 88, 89, 37, 78, 80, 42, 73, 50, 63, 50, 70, 94, 75, 59, 61, 74, 67, 80, 60, 72, 58, 63, 66, 83, 60, 98, 82, 54, 67, 50, 59, 56, 94, 61, 46, 75, 78, 62, 81, 58, 64, 79, 41, 47, 62, 66, 96, 77, 66, 71, 75, 54, 49, 65, 43, 80, 55, 65, 81, 73, 60, 70, 107, 52, 55, 63, 59, 83, 80, 53, 58, 62, 51, 72, 64, 59, 55, 74, 62, 102, 42, 97, 39, 60, 87, 59, 69, 81, 59, 63, 85, 63, 61, 68, 54, 76, 105, 60, 63, 110, 51, 83, 53, 56, 83, 67, 72, 42, 74, 91, 52, 75, 59, 43, 94, 78, 65, 39, 83, 98, 27, 66, 61, 79, 79, 34, 49, 71, 86, 61, 58, 61, 72, 68, 58, 58, 74, 55, 83, 78, 41, 56, 69, 54, 57, 50, 35, 69, 53, 55, 49, 64, 62, 67, 69, 60, 53, 69, 105, 43, 64, 51, 67, 55, 77, 57, 90, 95, 75, 36, 95, 59, 81, 79, 58, 60, 63, 57, 62, 64, 91, 65, 59, 55, 70, 69, 69, 75, 61, 162, 84, 77, 60, 56, 52, 57, 73, 130, 86, 64, 62, 81, 73, 62, 59, 87, 52, 76, 58, 77, 95, 68, 49, 92, 46, 52, 67, 75, 122, 53, 52, 43, 52, 56, 83, 111, 67, 49, 71, 68, 43, 84, 72, 51, 79, 73, 63, 48, 76, 55, 57, 85, 57, 78, 77, 55, 68, 58, 114, 55, 22, 64, 65, 76, 87, 40, 107, 46, 59, 34, 47, 59, 91, 73, 61, 52, 73, 60, 48, 95, 37, 73, 76, 86, 70, 55, 61, 70, 55, 60, 78, 86, 77, 60, 75, 66, 82, 66, 62, 64, 52, 79, 66, 55, 98, 68, 59, 69, 39, 67, 69, 76, 69, 78, 71, 50, 65, 50, 79, 54, 58, 61, 51, 64, 54, 70, 59, 65, 51, 55, 92, 75, 62, 61, 71, 82, 80, 70, 50, 80, 53, 64, 74, 51, 59, 67, 49, 55, 68, 71, 54, 111, 75, 61, 56, 51, 57, 76, 35, 61, 110, 63, 66, 96, 55, 36, 93, 81, 60, 72, 56, 80, 73, 58, 71, 51, 55, 69, 69, 75, 77, 83, 54, 50, 80, 71, 58, 79, 100, 69, 82, 70, 54, 66, 70, 68, 73, 49, 83, 165, 64, 55, 40, 68, 59, 71, 82, 61, 73, 84, 83, 70, 58, 62, 49, 67, 74, 69, 62, 67, 57, 58, 67, 58, 75, 35, 105, 67, 63, 56, 78, 60, 60, 61, 60, 69, 80, 56, 107, 54, 106, 57, 58, 80, 81, 52, 63, 57, 52, 73, 94, 76, 86, 68, 88, 83, 55, 59, 59, 70, 69, 58, 63, 43, 54, 41, 54, 74, 70, 63, 57, 55, 65, 51, 74, 82, 62, 81, 83, 53, 74, 49, 100, 86, 74, 63, 58, 56, 78, 73, 93, 101, 46, 73, 75, 72, 70, 66, 54, 56, 74, 71, 62, 61, 52, 58, 63, 62, 59, 61, 63, 70, 60, 66, 62, 57, 84, 61, 91, 86, 57, 45, 56, 53, 61, 71, 59, 74, 52, 57, 62, 79, 51, 60, 65, 62, 77, 65, 73, 64, 57, 63, 74, 61, 52, 67, 62, 40, 110, 64, 76, 82, 70, 83, 50, 84, 61, 61, 68, 74, 42, 78, 77, 75, 63, 74, 63, 86, 52, 109, 53, 54, 78, 61, 48, 54, 51, 63, 93, 67, 68, 75, 70, 76, 67, 129, 85, 52, 90, 64, 61, 66, 89, 72, 63, 77, 64, 42, 65, 71, 64, 69, 55, 68, 60, 71, 68, 57, 65, 37, 61, 83, 42, 60, 68, 81, 62, 69, 54, 101, 54, 64, 58, 25, 97, 63, 98, 60, 76, 73, 72, 72, 86, 75, 93, 50, 56, 65, 74, 69, 63, 44, 75, 66, 64, 55, 60, 58, 64, 68, 51, 109, 61, 64, 70, 80, 61, 71, 66, 56, 43, 52, 84, 61, 47, 68, 69, 69, 59, 74, 59, 78, 58, 81, 77, 66, 79, 59, 69, 59, 61, 57, 63, 64, 72, 127, 65, 97, 46, 61, 71, 34, 53, 56, 70, 74, 59, 81, 47, 84, 53, 74, 52, 65, 59, 50, 104, 68, 79, 70, 79, 85, 67, 67, 69, 78, 38, 80, 44, 57, 33, 77, 73, 59, 62, 60, 57, 61, 68, 52, 68, 78, 66, 69, 57, 81, 55, 65, 65, 68, 69, 49, 85, 64, 47, 56, 58, 115, 64, 58, 65, 48, 57, 69, 101, 73, 73, 72, 58, 81, 72, 57, 94, 64, 67, 60, 78, 63, 57, 71, 69, 69, 67, 114, 55, 59, 96, 72, 53, 62, 41, 97, 59, 44, 70, 95, 62, 39, 71, 76, 75, 52, 40, 71, 56, 76, 50, 58, 51, 62, 63, 63, 68, 58, 90, 52, 42, 47, 120, 53, 62, 63, 65, 59, 82, 83, 69, 68, 69, 67, 52, 54, 71, 51, 52, 62, 74, 81, 43, 53, 96, 70, 50, 60, 72, 54, 57, 56, 67, 66, 54, 56, 60, 71, 57, 72, 102, 74, 61, 65, 71, 43, 54, 79, 35, 46, 111, 96, 62, 68, 48, 57, 72, 42, 46, 35, 64, 69, 44, 62, 79, 71, 74, 58, 53, 122, 64, 44, 87, 49, 56, 73, 50, 61, 69, 60, 80, 62, 81, 73, 53, 65, 54, 86, 50, 71, 64, 62, 79, 49, 106, 76, 59, 67, 72, 63, 94, 62, 88, 63, 60, 78, 92, 72, 44, 61, 61, 40, 72, 91, 91, 52, 40, 84, 66, 69, 56, 58, 103, 59, 53, 63, 66, 72, 53, 48, 57, 54, 63, 66, 69, 56, 82, 95, 43, 61, 93, 57, 54, 72, 71, 76, 63, 61, 77, 88, 74, 62, 58, 81, 65, 50, 66, 60, 98, 64, 44, 58, 51, 52, 67, 73, 85, 61, 85, 68, 74, 75, 83, 43, 49, 48, 60, 54, 73, 49, 63, 54, 87, 63, 49, 66, 82, 84, 59, 83, 55, 73, 44, 60, 45, 71, 54, 68, 109, 71, 59, 76, 51, 46, 74, 63, 81, 62, 99, 63, 100, 50, 63, 72, 50, 49, 62, 63, 70, 50, 35, 58, 74, 79, 94, 66, 38, 58, 49, 71, 63, 81, 60, 60, 65, 90, 61, 58, 53, 58, 41, 65, 69, 37, 65, 64, 103, 54, 70, 60, 65, 70, 57, 58, 44, 69, 51, 53, 80, 63, 61, 57, 74, 53, 75, 54, 71, 84, 82, 69, 47, 60, 64, 65, 60, 52, 87, 47, 75, 81, 46, 76, 58, 50, 147, 53, 78, 102, 55, 82, 37, 55, 37, 55, 72, 49, 62, 56, 105, 72, 45, 86, 86, 42, 91, 86, 95, 55, 64, 85, 73, 61, 69, 61, 56, 105, 78, 62, 63, 43, 85, 60, 58, 80, 92, 61, 123, 67, 70, 72, 80, 60, 51, 60, 63, 62, 56, 73, 53, 52, 75, 69, 48, 91, 55, 85, 58, 62, 71, 48, 75, 59, 57, 56, 74, 62, 81, 63, 60, 81, 71, 56, 41, 61, 81, 70, 56, 55, 50, 70, 97, 85, 63, 77, 59, 48, 97, 45, 74, 109, 75, 58, 45, 90, 60, 104, 58, 68, 74, 81, 128, 52, 49, 57, 54, 82, 57, 56, 46, 145, 62, 69, 71, 60, 52, 62, 51, 37, 84, 64, 74, 66, 83, 50, 78, 58, 55, 62, 68, 59, 67, 67, 88, 56, 52, 81, 70, 81, 52, 41, 56, 66, 53, 46, 71, 66, 134, 59, 44, 56, 73, 53, 54, 65, 62, 67, 68, 55, 52, 74, 75, 89, 128, 45, 54, 61, 80, 78, 102, 94, 59, 70, 60, 83, 48, 66, 60, 62, 57, 71, 65, 61, 45, 69, 78, 77, 54, 67, 89, 50, 69, 53, 70, 70, 57, 63, 75, 48, 65, 73, 93, 68, 74, 60, 60, 80, 63, 64, 67, 54, 55, 68, 61, 45, 35, 61, 44, 72, 66, 49, 69, 93, 87, 95, 86, 85, 85, 57, 63, 65, 48, 57, 73, 69, 64, 53, 66, 69, 61, 116, 107, 68, 53, 55, 56, 78, 71, 71, 62, 76, 61, 70, 49, 81, 55, 44, 57, 76, 67, 58, 111, 50, 65, 93, 74, 72, 62, 57, 86, 61, 63, 38, 66, 54, 92, 55, 78, 61, 59, 46, 64, 80, 59, 52, 50, 60, 63, 91, 61, 63, 51, 67, 68, 67, 74, 68, 74, 64, 53, 77, 67, 95, 71, 61, 71, 68, 67, 74, 58, 66, 68, 54, 56, 56, 73, 66, 82, 49, 62, 83, 81, 59, 78, 77, 62, 72, 56, 69, 57, 52, 58, 67, 56, 55, 78, 75, 60, 45, 73, 68, 67, 46, 54, 56, 90, 64, 77, 103, 66, 76, 47, 85, 53, 78, 37, 62, 54, 62, 54, 66, 51, 62, 63, 70, 84, 77, 64, 48, 42, 73, 57, 60, 58, 69, 96, 81, 68, 68, 87, 56, 44, 52, 51, 55, 71, 57, 56, 65, 49, 83, 52, 53, 50, 67, 84, 82, 79, 70, 64, 74, 60, 58, 75, 114, 56, 71, 66, 42, 89, 45, 65, 64, 55, 69, 64, 59, 53, 61, 74, 39, 87, 68, 52, 61, 103, 62, 66, 97, 52, 73, 48, 53, 85, 56, 63, 84, 68, 61, 45, 82, 61, 89, 42, 82, 79, 65, 76, 86, 59, 70, 56, 63, 95, 54, 61, 59, 80, 93, 52, 69, 69, 55, 50, 52, 76, 67, 75, 81, 58, 84, 66, 75, 66, 57, 83, 67, 94, 43, 67, 89, 57, 73, 102, 86, 70, 100, 53, 58, 32, 61, 80, 55, 67, 73, 87, 62, 57, 82, 53, 33, 88, 47, 54, 69, 86, 84, 79, 49, 63, 60, 82, 82, 75, 65, 63, 80, 55, 92, 77, 48, 65, 63, 50, 62, 70, 60, 65, 114, 55, 54, 48, 57, 41, 91, 73, 73, 43, 76, 71, 58, 73, 99, 78, 73, 68, 51, 69, 66, 81, 80, 48, 58, 59, 65, 51, 54, 64, 70, 59, 60, 45, 54, 61, 56, 43, 67, 79, 98, 69, 52, 45, 92, 66, 78, 65, 71, 72, 68, 88, 41, 79, 56, 92, 46, 67, 76, 62, 60, 73, 68, 58, 57, 85, 52, 65, 71, 86, 55, 79, 65, 76, 51, 53, 62, 67, 97, 63, 99, 60, 61, 57, 56, 76, 84, 64, 64, 66, 73, 48, 60, 67, 68, 72, 71, 59, 64, 83, 76, 48, 69, 46, 57, 52, 29, 82, 55, 65, 60, 66, 61, 52, 93, 54, 54, 74, 63, 51, 71, 82, 61, 66, 53, 42, 49, 55, 84, 59, 50, 87, 55, 63, 72, 45, 83, 64, 50, 61, 80, 63, 68, 79, 77, 63, 65, 74, 76, 53, 63, 79, 71, 55, 76, 54, 68, 55, 71, 62, 62, 60, 81, 37, 32, 59, 33, 56, 70, 53, 80, 75, 76, 71, 67, 50, 58, 68, 58, 61, 87, 44, 65, 55, 72, 62, 64, 55, 42, 75, 75, 67, 66, 60, 45, 49, 68, 51, 70, 67, 72, 48, 52, 72, 58, 56, 67, 64, 53, 58, 64, 61, 58, 67, 64, 53, 50, 99, 69, 51, 67, 81, 55, 116, 62, 36, 91, 89, 68, 66, 64, 57, 70, 75, 77, 88, 78, 52, 67, 70, 63, 70, 59, 57, 56, 56, 44, 49, 92, 70, 60, 57, 54, 63, 60, 68, 122, 66, 66, 41, 56, 48, 56, 94, 62, 41, 59, 86, 146, 84, 64, 68, 56, 62, 47, 47, 79, 69, 61, 36, 93, 71, 40, 53, 63, 73, 66, 70, 100, 53, 47, 71, 57, 54, 92, 57, 61, 72, 42, 79, 77, 69, 57, 59, 50, 65, 49, 48, 70, 54, 48, 88, 80, 52, 66, 60, 47, 55, 65, 42, 68, 65, 54, 59, 82, 78, 58, 64, 69, 62, 58, 81, 89, 81, 39, 48, 81, 69, 63, 78, 64, 90, 70, 51, 60, 34, 86, 59, 79, 52, 71, 112, 47, 36, 50, 100, 55, 53, 80, 59, 49, 82, 48, 81, 80, 58, 82, 59, 95, 56, 79, 78, 91, 78, 64, 46, 89, 54, 64, 102, 55, 80, 59, 80, 90, 49, 63, 142, 53, 64, 75, 92, 72, 60, 85, 107, 74, 65, 57, 41, 47, 49, 72, 74, 86, 65, 100, 60, 65, 79, 66, 75, 73, 50, 44, 36, 79, 59, 82, 66, 83, 60, 64, 80, 52, 52, 48, 43, 57, 73, 63, 57, 90, 89, 72, 85, 93, 64, 52, 42, 70, 67, 47, 81, 75, 62, 58, 76, 61, 59, 75, 69, 53, 72, 67, 39, 66, 86, 75, 80, 50, 51, 56, 120, 66, 54, 50, 60, 74, 74, 71, 82, 54, 74, 71, 51, 78, 51, 118, 78, 48, 80, 78, 65, 54, 49, 51, 65, 74, 50, 70, 91, 67, 68, 59, 76, 44, 74, 66, 55, 68, 60, 93, 58, 76, 67, 41, 54, 79, 49, 57, 75, 62, 77, 63, 57, 57, 72, 78, 52, 76, 67, 84, 90, 71, 53, 81, 63, 73, 61, 56, 74, 51, 55, 73, 45, 67, 44, 61, 55, 68, 97, 58, 89, 64, 78, 82, 68, 85, 58, 51, 53, 72, 39, 75, 70, 58, 73, 61, 53, 76, 59, 37, 84, 33, 104, 53, 63, 75, 56, 53, 69, 91, 62, 36, 77, 81, 107, 68, 52, 51, 53, 58, 73, 67, 50, 46, 68, 60, 80, 60, 89, 62, 59, 62, 56, 49, 83, 82, 59, 60, 81, 63, 71, 67, 89, 50, 54, 96, 91, 62, 40, 68, 56, 91, 69, 43, 53, 65, 59, 32, 90, 74, 61, 80, 83, 64, 54, 70, 61, 50, 62, 53, 94, 60, 50, 100, 43, 79, 44, 52, 66, 100, 62, 61, 70, 71, 72, 72, 46, 52, 55, 66, 64, 82, 60, 64, 63, 49, 81, 74, 108, 94, 79, 67, 114, 46, 90, 58, 57, 76, 63, 47, 62, 73, 90, 93, 40, 61, 112, 64, 65, 65, 68, 56, 101, 54, 78, 73, 86, 64, 68, 49, 73, 71, 61, 71, 79, 79, 53, 61, 45, 57, 58, 64, 62, 64, 52, 84, 58, 70, 52, 99, 94, 76, 90, 56, 51, 67, 55, 68, 73, 77, 76, 81, 56, 66, 56, 55, 91, 75, 76, 78, 77, 62, 54, 49, 44, 76, 73, 81, 63, 49, 68, 78, 74, 51, 64, 55, 74, 85, 86, 77, 81, 55, 56, 62, 45, 81, 52, 90, 55, 96, 56, 51, 53, 96, 64, 54, 67, 47, 59, 65, 62, 114, 43, 57, 76, 56, 52, 64, 59, 92, 43, 81, 76, 125, 55, 73, 45, 68, 63, 90, 73, 63, 49, 47, 70, 66, 97, 78, 58, 68, 76, 76, 84, 68, 40, 83, 89, 47, 45, 74, 63, 38, 70, 69, 47, 89, 80, 47, 142, 72, 77, 84, 93, 64, 73, 46, 97, 72, 48, 85, 64, 63, 93, 79, 78, 92, 75, 61, 66, 62, 65, 61, 61, 64, 61, 65, 48, 53, 77, 51, 52, 73, 63, 62, 71, 54, 60, 45, 53, 74, 65, 59, 59, 66, 60, 58, 72, 62, 62, 59, 65, 83, 77, 64, 60, 70, 70, 81, 60, 71, 60, 62, 60, 65, 80, 58, 84, 54, 80, 66, 63, 54, 73, 55, 83, 73, 55, 99, 52, 54, 71, 66, 72, 84, 53, 56, 65, 53, 87, 74, 65, 49, 64, 93, 53, 89, 57, 74, 66, 74, 63, 45, 65, 65, 54, 60, 105, 62, 52, 56, 65, 63, 54, 75, 66, 55, 77, 83, 63, 55, 53, 51, 54, 64, 66, 61, 54, 51, 91, 96, 62, 53, 82, 65, 83, 74, 57, 69, 69, 103, 78, 92, 60, 61, 103, 80, 70, 58, 79, 77, 76, 61, 74, 76, 75, 56, 73, 46, 67, 66, 71, 53, 66, 104, 58, 75, 50, 49, 98, 76, 53, 89, 57, 61, 50, 38, 64, 65, 43, 92, 81, 79, 62, 84, 71, 68, 66, 51, 92, 44, 83, 49, 67, 101, 63, 64, 70, 66, 69, 68, 55, 77, 65, 103, 109, 74, 69, 65, 56, 57, 61, 48, 62, 62, 75, 68, 73, 74, 64, 69, 59, 77, 47, 83, 51, 51, 78, 71, 68, 63, 54, 58, 62, 99, 113, 72, 55, 80, 54, 50, 73, 73, 73, 51, 59, 56, 80, 71, 73, 72, 74, 59, 50, 65, 55, 65, 58, 85, 73, 126, 79, 43, 105, 68, 55, 48, 37, 53, 65, 55, 46, 62, 60, 56, 78, 75, 81, 72, 60, 84, 60, 52, 56, 64, 58, 71, 39, 63, 59, 76, 43, 61, 56, 56, 63, 56, 79, 54, 84, 59, 81, 100, 51, 53, 85, 70, 51, 73, 54, 53, 56, 67, 83, 54, 52, 66, 78, 57, 63, 48, 68, 73, 72, 72, 57, 81, 61, 62, 55, 62, 41, 65, 58, 56, 58, 72, 39, 77, 46, 63, 63, 62, 75, 64, 62, 68, 91, 51, 55, 86, 57, 63, 61, 69, 60, 73, 162, 100, 56, 62, 63, 56, 63, 88, 53, 80, 102, 91, 71, 64, 58, 63, 64, 59, 45, 77, 51, 64, 84, 66, 74, 80, 108, 71, 54, 71, 43, 58, 68, 64, 55, 82, 71, 67, 77, 70, 55, 102, 119, 59, 62, 72, 53, 51, 84, 51, 60, 73, 56, 75, 73, 72, 55, 54, 67, 62, 53, 72, 59, 80, 51, 57, 53, 77, 59, 65, 101, 61, 63, 63, 61, 78, 60, 72, 51, 77, 68, 63, 77, 68, 54, 53, 63, 52, 69, 63, 58, 57, 79, 111, 56, 70, 142, 50, 73, 61, 55, 39, 76, 91, 62, 82, 53, 40, 59, 52, 56, 71, 47, 67, 51, 60, 58, 70, 51, 76, 59, 62, 66, 48, 61, 48, 55, 67, 69, 66, 55, 55, 75, 68, 66, 59, 80, 92, 73, 72, 65, 57, 62, 55, 56, 60, 81, 44, 80, 67, 35, 64, 49, 69, 52, 40, 65, 67, 54, 56, 48, 42, 81, 59, 61, 63, 70, 84, 71, 65, 63, 65, 65, 63, 91, 63, 61, 73, 80, 75, 68, 58, 68, 65, 98, 69, 53, 64, 57, 49, 73, 68, 58, 69, 73, 60, 64, 55, 75, 75, 49, 60, 57, 67, 64, 76, 83, 55, 52, 55, 68, 66, 49, 68, 60, 77, 57, 66, 66, 79, 76, 68, 60, 73, 59, 75, 74, 73, 46, 62, 72, 62, 47, 49, 57, 65, 61, 84, 42, 64, 60, 68, 61, 57, 59, 72, 39, 58, 59, 66, 50, 82, 73, 56, 52, 45, 76, 80, 74, 68, 74, 76, 78, 76, 91, 70, 69, 60, 56, 57, 58, 65, 49, 61, 45, 57, 98, 62, 62, 70, 53, 89, 63, 63, 56, 64, 67, 55, 52, 78, 42, 68, 46, 61, 50, 74, 104, 59, 71, 84, 86, 92, 75, 59, 68, 55, 61, 64, 59, 72, 48, 77, 74, 62, 74, 60, 72, 63, 47, 60, 75, 74, 59, 53, 79, 67, 75, 67, 58, 71, 65, 67, 78, 82, 60, 69, 87, 52, 101, 71, 91, 70, 66, 73, 65, 70, 51, 58, 79, 76, 51, 62, 73, 45, 80, 70, 68, 65, 58, 69, 62, 65, 49, 42, 71, 58, 90, 65, 59, 88, 45, 59, 63, 73, 42, 86, 53, 57, 58, 75, 66, 65, 80, 74, 96, 51, 71, 53, 52, 70, 90, 45, 54, 61, 92, 83, 102, 49, 56, 102, 73, 98, 54, 69, 91, 62, 57, 83, 75, 60, 101, 68, 66, 49, 62, 75, 69, 53, 81, 80, 54, 55, 98, 59, 63, 39, 39, 59, 42, 112, 59, 47, 53, 71, 54, 80, 72, 84, 59, 46, 78, 72, 78, 51, 72, 66, 74, 75, 53, 80, 62, 50, 57, 89, 62, 70, 67, 64, 64, 61, 72, 66, 91, 69, 65, 81, 65, 52, 58, 59, 59, 72, 95, 82, 78, 102, 58, 55, 64, 66, 76, 78, 56, 49, 71, 59, 63, 50, 62, 74, 53, 63, 62, 56, 80, 73, 62, 77, 81, 56, 76, 66, 57, 50, 62, 73, 71, 57, 52, 52, 76, 72, 92, 75, 67, 65, 43, 60, 66, 68, 63, 68, 59, 52, 60, 68, 49, 69, 65, 47, 70, 79, 62, 48, 70, 69, 72, 77, 78, 55, 72, 71, 74, 66, 61, 70, 65, 72, 53, 47, 63, 66, 61, 77, 83, 65, 71, 70, 62, 71, 54, 50, 62, 49, 69, 64, 57, 66, 63, 64, 65, 80, 67, 74, 51, 56, 54, 70, 72, 65, 66, 66, 112, 57, 88, 61, 58, 79, 102, 81, 97, 46, 66, 73, 77, 63, 62, 72, 66, 112, 117, 62, 66, 66, 68, 61, 112, 58, 61, 74, 63, 61, 65, 63, 73, 60, 81, 63, 54, 73, 61, 56, 66, 69, 67, 87, 86, 50, 50, 68, 62, 82, 56, 69, 41, 80, 68, 59, 63, 67, 72, 63, 74, 75, 44, 73, 85, 59, 61, 53, 64, 55, 50, 66, 63, 41, 67, 84, 49, 79, 55, 56, 60, 76, 59, 59, 61, 85, 59, 75, 90, 60, 69, 70, 54, 183, 66, 56, 58, 52, 82, 61, 79, 46, 62, 70, 54, 76, 66, 79, 67, 74, 89, 46, 43, 50, 42, 56, 51, 54, 59, 57, 54, 64, 72, 123, 52, 68, 63, 68, 58, 64, 96, 57, 72, 70, 66, 57, 55, 79, 64, 69, 80, 69, 53, 49, 61, 67, 70, 77, 62, 70, 63, 68, 52, 64, 46, 71, 63, 75, 67, 68, 55, 60, 61, 124, 57, 58, 59, 87, 60, 80, 99, 60, 63, 68, 61, 68, 55, 58, 67, 70, 53, 52, 60, 49, 50, 61, 70, 70, 54, 54, 74, 48, 61, 61, 85, 65, 70, 57, 56, 62, 51, 60, 61, 65, 66, 50, 49, 74, 69, 74, 82, 65, 79, 55, 67, 72, 66, 103, 69, 67, 54, 83, 72, 58, 87, 60, 76, 59, 80, 56, 64, 59, 58, 72, 78, 61, 66, 47, 67, 63, 61, 55, 56, 175, 79, 62, 70, 57, 75, 100, 60, 63, 59, 86, 45, 61, 61, 88, 57, 75, 67, 69, 65, 64, 65, 89, 64, 72, 63, 62, 75, 61, 61, 53, 70, 71, 61, 54, 65, 67, 54, 58, 57, 56, 54, 75, 55, 70, 62, 52, 55, 56, 66, 73, 57, 58, 56, 97, 83, 60, 58, 72, 66, 58, 68, 61, 75, 53, 102, 70, 95, 57, 57, 54, 61, 64, 66, 62, 80, 67, 65, 67, 41, 53, 59, 82, 61, 57, 61, 61, 72, 80, 66, 63, 62, 65, 124, 79, 71, 79, 39, 66, 75, 58, 57, 54, 65, 61, 55, 63, 58, 77, 51, 54, 81, 95, 63, 57, 55, 79, 66, 75, 55, 67, 66, 54, 56, 66, 60, 66, 56, 63, 51, 62, 62, 90, 51, 56, 66, 55, 55, 71, 64, 64, 61, 65, 59, 66, 59, 64, 68, 53, 59, 67, 62, 71, 74, 65, 62, 61, 78, 65, 55, 64, 54, 52, 64, 75, 65, 70, 72, 56, 70, 67, 75, 51, 66, 58, 66, 57, 61, 96, 47, 56, 64, 64, 58, 58, 60, 56, 78, 71, 71, 49, 60, 62, 89, 70, 60, 58, 57, 55, 58, 61, 76, 55, 54, 83, 67, 92, 67, 72, 59, 61, 56, 65, 71, 64, 72, 66, 60, 62, 55, 76, 68, 64, 70, 63, 64, 75, 66, 70, 94, 66, 63, 66, 59, 67, 56, 67, 64, 69, 57, 88, 64, 64, 45, 66, 60, 63, 62, 61, 67, 69, 91, 82, 67, 63, 66, 70, 69, 57, 60, 58, 60, 55, 60, 62, 48, 56, 60, 65, 64, 58, 59, 55, 54, 62, 72, 61, 64, 63, 61, 57, 67, 59, 61, 57, 69, 60, 64, 56, 73, 54, 68, 91, 55, 76, 65, 58, 72, 73, 57, 90, 62, 57, 87, 62, 85, 58, 58, 73, 81, 58, 60, 63, 53, 50, 71, 93, 72, 83, 68, 59, 64, 59, 78, 88, 61, 65, 60, 56, 59, 73, 65, 80, 64, 81, 66, 59, 58, 49, 62, 61, 73, 64, 52, 52, 55, 57, 70, 59, 54, 56, 69, 80, 64, 85, 56, 52, 58, 115, 61, 71, 99, 69, 63, 84, 58, 62, 68, 59, 56, 73, 66, 76, 61, 73, 94, 71, 57, 67, 69, 50, 73, 57, 60, 47, 59, 75, 52, 60, 60, 88, 153, 66, 82, 45, 82, 69, 66, 80, 83, 59, 52, 65, 71, 88, 64, 90, 55, 67, 68, 65, 63, 76, 81, 85, 58, 111, 56, 98, 65, 62, 69, 67, 66, 80, 73, 54, 80, 70, 79, 72, 67, 68, 74, 73, 63, 62, 63, 51, 79, 74, 59, 74, 55, 66, 63, 70, 64, 62, 51, 65, 73, 77, 71, 71, 68, 61, 57, 62, 63, 73, 73, 59, 72, 55, 61, 64, 62, 61, 72, 118, 58, 51, 50, 66, 55, 53, 67, 79, 59, 61, 63, 37, 54, 68, 61, 60, 74, 67, 68, 84, 83, 82, 69, 70, 80, 47, 60, 65, 55, 78, 57, 61, 70, 58, 61, 91, 75, 77, 60, 76, 61, 55, 57, 63, 68, 52, 83, 66, 51, 64, 58, 78, 60, 114, 58, 56, 61, 55, 68, 52, 55, 52, 52, 64, 64, 71, 75, 58, 65, 57, 63, 59, 65, 67, 49, 68, 66, 87, 62, 58, 64, 69, 58, 71, 60, 50, 80, 76, 67, 72, 54, 62, 53, 78, 65, 64, 57, 49, 59, 65, 53, 69, 63, 51, 68, 53, 62, 76, 65, 61, 60, 70, 67, 67, 68, 104, 51, 71, 52, 67, 50, 64, 77, 71, 57, 69, 58, 62, 63, 52, 93, 68, 62, 58, 65, 70, 70, 57, 64, 81, 58, 58, 57, 64, 59, 68, 51, 80, 70, 62, 53, 59, 54, 75, 56, 100, 64, 58, 56, 65, 57, 83, 55, 67, 63, 66, 81, 60, 60, 70, 84, 71, 60, 57, 62, 56, 63, 60, 67, 71, 52, 71, 71, 121, 71, 54, 67, 90, 65, 58, 60, 59, 61, 78, 59, 57, 58, 63, 72, 73, 96, 57, 71, 61, 56, 80, 61, 54, 65, 58, 59, 64, 67, 54, 63, 60, 65, 52, 66, 61, 64, 87, 60, 79, 70, 65, 68, 81, 80, 68, 58, 67, 67, 76, 62, 78, 57, 72, 50, 99, 63, 76, 63, 67, 65, 54, 88, 82, 63, 61, 55, 55, 58, 72, 64, 75, 74, 48, 57, 56, 55, 58, 55, 54, 55, 49, 63, 47, 54, 83, 70, 58, 58, 66, 69, 59, 74, 61, 62, 67, 59, 70, 60, 68, 65, 85, 61, 60, 59, 51, 64, 53, 54, 67, 65, 73, 52, 59, 68, 70, 80, 55, 61, 71, 65, 61, 65, 103, 54, 63, 61, 65, 54, 63, 73, 61, 67, 67, 61, 60, 59, 60, 66, 53, 60, 65, 61, 96, 64, 72, 66, 61, 63, 50, 67, 53, 63, 69, 65, 74, 72, 104, 55, 59, 73, 71, 71, 95, 70, 65, 96, 61, 59, 49, 57, 55, 70, 65, 58, 67, 63, 59, 77, 56, 61, 52, 57, 58, 61, 72, 89, 51, 54, 61, 82, 56, 73, 88, 73, 68, 54, 62, 61, 67, 60, 72, 75, 61, 69, 64, 65, 66, 82, 59, 70, 61, 120, 55, 61, 57, 56, 62, 70, 54, 59, 60, 49, 82, 65, 66, 59, 60, 68, 71, 64, 54, 127, 58, 72, 62, 55, 59, 70, 60, 115, 64, 58, 56, 60, 52, 76, 48, 59, 59, 84, 96, 53, 56, 61, 53, 63, 59, 61, 53, 58, 57, 101, 53, 58, 72, 67, 67, 59, 62, 53, 71, 73, 58, 64, 77, 66, 60, 59, 67, 71, 52, 62, 56, 68, 76, 50, 80, 77, 105, 61, 68, 66, 60, 54, 69, 69, 83, 71, 56, 59, 62, 71, 58, 62, 66, 59, 66, 62, 64, 75, 59, 56, 77, 48, 51, 60, 60, 58, 68, 44, 66, 90, 51, 55, 79, 94, 59, 62, 111, 65, 57, 64, 67, 66, 59, 63, 73, 80, 68, 83, 57, 72, 64, 58, 67, 55, 65, 66, 81, 86, 59, 52, 64, 78, 70, 62, 63, 68, 55, 72, 55, 74, 68, 72, 57, 62, 74, 50, 60, 56, 57, 68, 90, 75, 69, 74, 72, 58, 61, 80, 65, 61, 60, 57, 61, 65, 64, 66, 65, 72, 69, 59, 46, 69, 76, 71, 71, 84, 62, 60, 77, 64, 64, 60, 54, 58, 45, 56, 85, 33, 73, 68, 71, 68, 61, 58, 58, 65, 53, 61, 69, 66, 62, 69, 62, 50, 45, 66, 77, 73, 51, 71, 53, 80, 48, 72, 63, 65, 63, 67, 57, 68, 45, 59, 59, 61, 57, 76, 74, 63, 60, 60, 60, 110, 69, 67, 59, 66, 46, 71, 65, 81, 74, 62, 56, 55, 74, 62, 60, 69, 59, 63, 74, 58, 73, 72, 51, 50, 92, 53, 65, 65, 54, 63, 66, 76, 40, 61, 56, 81, 60, 62, 80, 63, 63, 62, 60, 70, 62, 63, 78, 56, 70, 59, 81, 64, 56, 85, 55, 96, 62, 67, 61, 73, 60, 54, 75, 75, 98, 49, 57, 55, 61, 64, 63, 64, 50, 60, 60, 59, 70, 74, 68, 70, 55, 88, 64, 64, 62, 72, 105, 62, 58, 85, 49, 60, 76, 67, 68, 53, 71, 62, 77, 56, 55, 88, 65, 71, 61, 61, 65, 55, 74, 85, 56, 57, 61, 62, 77, 69, 64, 57, 73, 55, 62, 57, 78, 74, 68, 70, 64, 56, 55, 70, 90, 77, 61, 61, 77, 69, 64, 65, 62, 59, 60, 64, 61, 62, 64, 57, 76, 58, 73, 62, 109, 76, 69, 69, 68, 56, 66, 49, 53, 61, 59, 77, 68, 58, 93, 71, 69, 62, 66, 57, 57, 62, 51, 60, 54, 59, 61, 58, 51, 68, 61, 57, 77, 56, 61, 56, 71, 57, 61, 125, 71, 62, 58, 56, 52, 55, 79, 60, 61, 68, 52, 52, 80, 76, 71, 69, 55, 63, 70, 63, 67, 60, 64, 72, 68, 58, 58, 69, 58, 65, 69, 66, 88, 60, 70, 62, 64, 66, 75, 54, 48, 51, 63, 55, 96, 73, 58, 55, 80, 72, 59, 60, 65, 67, 82, 71, 58, 64, 67, 63, 65, 49, 74, 61, 60, 73, 73, 62, 63, 51, 63, 66, 74, 51, 49, 80, 84, 60, 73, 72, 53, 71, 69, 61, 70, 77, 42, 66, 66, 74, 75, 65, 62, 68, 52, 58, 72, 64, 62, 91, 64, 63, 63, 60, 64, 65, 69, 68, 68, 76, 64, 67, 68, 61, 61, 70, 79, 62, 69, 54, 53, 61, 58, 56, 71, 65, 72, 63, 56, 109, 61, 57, 59, 64, 65, 70, 61, 130, 70, 52, 60, 69, 61, 69, 62, 72, 60, 63, 52, 58, 79, 72, 74, 73, 64, 49, 65, 60, 71, 47, 71, 71, 68, 50, 69, 69, 63, 63, 56, 53, 79, 60, 59, 57, 63, 65, 59, 57, 60, 72, 67, 72, 61, 55, 83, 72, 66, 64, 63, 60, 57, 68, 60, 66, 73, 68, 60, 55, 78, 65, 60, 72, 58, 77, 100, 69, 71, 65, 58, 67, 54, 60, 49, 75, 64, 58, 71, 60, 72, 56, 79, 76, 76, 52, 93, 54, 57, 64, 96, 71, 74, 61, 62, 54, 73, 66, 67, 88, 63, 67, 62, 67, 64, 62, 56, 63, 53, 58, 68, 87, 70, 69, 55, 54, 66, 119, 48, 54, 68, 87, 49, 53, 71, 68, 74, 51, 61, 56, 65, 56, 67, 76, 65, 60, 66, 60, 75, 85, 74, 58, 64, 51, 59, 61, 62, 69, 68, 64, 58, 59, 70, 58, 92, 47, 89, 62, 63, 56, 51, 62, 60, 113, 61, 62, 60, 61, 58, 54, 58, 77, 56, 64, 57, 47, 64, 71, 110, 64, 63, 70, 63, 53, 63, 53, 100, 111, 64, 74, 66, 68, 55, 59, 68, 65, 61, 61, 79, 80, 57, 68, 97, 68, 52, 60, 59, 60, 61, 66, 71, 59, 62, 63, 65, 63, 87, 55, 93, 68, 52, 69, 67, 55, 74, 59, 60, 61, 66, 58, 65, 61, 70, 63, 60, 68, 58, 70, 59, 63, 52, 63, 70, 66, 72, 66, 61, 50, 66, 62, 57, 59, 58, 60, 56, 69, 62, 80, 62, 60, 51, 71, 63, 39, 80, 58, 64, 58, 61, 84, 56, 68, 70, 69, 69, 63, 126, 66, 61, 67, 59, 50, 67, 64, 87, 63, 61, 67, 52, 68, 76, 65, 62, 54, 77, 62, 70, 60, 69, 55, 74, 70, 62, 71, 69, 72, 60, 118, 56, 59, 57, 59, 64, 53, 64, 61, 66, 69, 69, 55, 50, 67, 53, 68, 66, 64, 61, 50, 56, 63, 66, 67, 75, 82, 65, 70, 84, 64, 53, 90, 68, 63, 81, 70, 68, 63, 66, 82, 57, 68, 49, 65, 67, 75, 56, 54, 66, 54, 57, 70, 68, 63, 80, 60, 71, 71, 78, 58, 104, 143, 72, 56, 64, 59, 57, 70, 82, 61, 62, 67, 74, 66, 57, 127, 67, 65, 69, 49, 65, 54, 72, 60, 72, 75, 58, 68, 65, 51, 68, 59, 70, 63, 61, 57, 67, 59, 66, 65, 55, 111, 81, 58, 60, 69, 106, 65, 46, 73, 62, 63, 73, 53, 70, 54, 65, 55, 75, 69, 50, 88, 61, 63, 64, 63, 69, 58, 85, 68, 67, 49, 71, 67, 60, 58, 64, 57, 75, 60, 93, 77, 65, 52, 59, 60, 101, 57, 58, 74, 58, 72, 59, 58, 61, 61, 117, 91, 56, 65, 63, 82, 67, 74, 61, 70, 55, 74, 123, 96, 62, 68, 99, 62, 69, 77, 55, 61, 84, 71, 81, 60, 49, 64, 52, 53, 58, 72, 85, 60, 62, 48, 70, 65, 58, 56, 44, 64, 65, 68, 53, 86, 67, 64, 70, 59, 104, 55, 77, 84, 61, 58, 44, 71, 70, 69, 65, 49, 44, 68, 57, 82, 63, 57, 70, 49, 75, 60, 91, 100, 58, 72, 69, 61, 72, 74, 40, 79, 53, 82, 88, 58, 35, 68, 76, 86, 65, 69, 48, 84, 56, 98, 72, 59, 90, 58, 60, 59, 68, 146, 62, 54, 74, 64, 72, 58, 49, 93, 67, 50, 79, 69, 104, 74, 64, 66, 51, 67, 67, 70, 72, 73, 63, 60, 74, 57, 62, 67, 62, 92, 91, 37, 59, 54, 76, 76, 51, 62, 86, 63, 73, 83, 81, 70, 69, 79, 79, 53, 69, 86, 61, 80, 63, 52, 44, 74, 75, 53, 80, 76, 55, 67, 78, 51, 87, 67, 52, 62, 48, 70, 53, 73, 70, 52, 61, 44, 67, 71, 57, 80, 82, 74, 93, 50, 64, 90, 50, 46, 101, 109, 65, 72, 69, 94, 65, 50, 67, 63, 55, 57, 60, 70, 58, 86, 66, 77, 83, 67, 49, 72, 43, 70, 63, 58, 53, 74, 42, 78, 69, 53, 75, 78, 55, 57, 81, 68, 51, 73, 68, 66, 38, 52, 83, 42, 79, 61, 70, 125, 80, 60, 72, 41, 53, 66, 61, 76, 85, 68, 67, 77, 83, 53, 78, 76, 74, 57, 78, 58, 45, 86, 74, 59, 70, 65, 68, 94, 85, 58, 63, 58, 75, 67, 61, 61, 60, 64, 52, 80, 53, 52, 32, 48, 57, 49, 63, 65, 72, 48, 68, 54, 61, 58, 82, 60, 81, 57, 58, 53, 70, 70, 65, 65, 54, 58, 74, 60, 47, 60, 66, 39, 58, 81, 82, 58, 61, 52, 62, 56, 104, 72, 73, 71, 45, 95, 62, 81, 76, 63, 70, 68, 61, 61, 77, 40, 51, 55, 65, 52, 66, 64, 57, 66, 62, 61, 59, 61, 54, 69, 51, 67, 57, 61, 55, 48, 55, 79, 75, 64, 56, 44, 58, 61, 79, 62, 66, 86, 49, 69, 63, 50, 76, 65, 67, 71, 51, 106, 55, 70, 41, 68, 61, 61, 58, 61, 67, 59, 72, 63, 82, 60, 52, 79, 82, 80, 71, 46, 73, 89, 70, 55, 79, 62, 69, 64, 62, 60, 63, 57, 55, 76, 66, 85, 58, 50, 65, 69, 97, 82, 90, 67, 65, 71, 40, 70, 61, 66, 65, 64, 96, 60, 54, 65, 72, 67, 76, 57, 92, 50, 68, 46, 58, 64, 58, 67, 57, 70, 66, 77, 59, 89, 58, 76, 73, 75, 64, 63, 65, 56, 83, 109, 64, 65, 56, 71, 69, 58, 45, 53, 66, 89, 60, 52, 68, 69, 77, 46, 76, 61, 54, 55, 75, 74, 68, 66, 80, 59, 58, 64, 83, 102, 74, 87, 80, 67, 57, 69, 49, 64, 59, 65, 70, 52, 54, 66, 52, 63, 52, 59, 88, 58, 89, 53, 65, 83, 56, 70, 85, 95, 60, 53, 101, 70, 58, 56, 50, 47, 74, 74, 71, 74, 74, 86, 84, 70, 54, 83, 87, 75, 68, 84, 55, 120, 68, 43, 45, 90, 55, 58, 66, 89, 90, 104, 56, 46, 63, 53, 43, 62, 84, 68, 66, 63, 54, 48, 54, 83, 67, 59, 56, 44, 81, 60, 57, 64, 83, 38, 55, 59, 50, 55, 58, 79, 56, 64, 96, 45, 59, 109, 59, 72, 71, 54, 81, 69, 66, 53, 55, 90, 51, 52, 58, 55, 57, 47, 79, 51, 46, 75, 74, 74, 60, 76, 53, 88, 58, 76, 83, 75, 73, 35, 47, 49, 57, 67, 49, 59, 81, 49, 66, 63, 87, 71, 77, 77, 74, 75, 62, 70, 65, 71, 51, 80, 76, 72, 64, 94, 75, 53, 59, 64, 70, 57, 71, 68, 64, 53, 70, 62, 66, 57, 52, 55, 72, 51, 82, 86, 49, 53, 103, 61, 72, 42, 50, 88, 60, 66, 73, 61, 62, 47, 80, 46, 72, 68, 68, 67, 65, 61, 71, 57, 47, 72, 59, 95, 44, 80, 58, 121, 71, 58, 37, 69, 55, 57, 59, 112, 58, 68, 70, 72, 75, 64, 71, 48, 52, 81, 76, 42, 63, 61, 74, 59, 54, 83, 78, 74, 52, 85, 83, 48, 99, 74, 75, 60, 96, 83, 42, 63, 41, 54, 69, 68, 61, 64, 52, 42, 65, 80, 65, 54, 88, 60, 69, 91, 54, 67, 57, 61, 77, 66, 81, 80, 54, 58, 65, 59, 49, 65, 52, 51, 83, 69, 78, 52, 75, 44, 58, 62, 57, 77, 61, 83, 99, 54, 68, 53, 51, 57, 67, 55, 66, 71, 60, 65, 79, 58, 63, 70, 85, 70, 89, 74, 65, 64, 86, 68, 52, 81, 86, 41, 78, 69, 49, 57, 50, 98, 86, 49, 53, 124, 83, 64, 106, 78, 76, 71, 47, 59, 58, 46, 58, 63, 52, 38, 56, 56, 54, 53, 51, 78, 66, 84, 74, 73, 78, 65, 57, 62, 50, 75, 62, 55, 72, 53, 46, 57, 57, 60, 73, 70, 102, 70, 61, 60, 66, 73, 71, 64, 65, 81, 71, 69, 50, 69, 66, 45, 54, 66, 79, 75, 44, 59, 74, 78, 43, 72, 60, 70, 58, 51, 61, 71, 94, 60, 64, 49, 62, 77, 68, 88, 63, 87, 94, 66, 63, 58, 63, 58, 58, 61, 44, 62, 59, 64, 66, 68, 49, 75, 59, 45, 45, 64, 54, 64, 46, 74, 78, 60, 51, 71, 90, 88, 63, 51, 77, 58, 67, 69, 63, 42, 63, 86, 67, 61, 69, 65, 56, 104, 73, 67, 51, 63, 67, 77, 94, 61, 63, 62, 70, 47, 42, 94, 66, 48, 61, 51, 41, 38, 60, 80, 63, 54, 54, 82, 61, 85, 38, 84, 49, 55, 67, 59, 59, 65, 60, 72, 61, 97, 46, 79, 62, 90, 58, 59, 77, 47, 60, 72, 112, 56, 90, 73, 41, 64, 47, 56, 65, 63, 65, 43, 50, 67, 84, 59, 73, 41, 73, 51, 62, 70, 66, 52, 72, 53, 55, 81, 46, 57, 59, 55, 65, 111, 64, 48, 78, 62, 59, 56, 84, 59, 60, 62, 45, 77, 68, 52, 73, 57, 69, 90, 59, 58, 38, 56, 64, 92, 69, 75, 90, 85, 86, 73, 66, 83, 67, 61, 39, 62, 82, 57, 56, 76, 72, 63, 67, 49, 57, 72, 58, 80, 96, 140, 59, 72, 82, 67, 101, 57, 69, 61, 57, 83, 61, 68, 80, 58, 86, 51, 57, 70, 86, 52, 48, 66, 71, 65, 71, 56, 45, 64, 57, 66, 60, 53, 68, 57, 54, 54, 53, 72, 52, 52, 74, 86, 46, 36, 57, 56, 55, 59, 77, 84, 54, 66, 74, 58, 60, 53, 51, 88, 69, 68, 52, 78, 71, 60, 66, 67, 42, 118, 82, 45, 67, 51, 72, 51, 125, 55, 104, 123, 71, 68, 65, 93, 69, 63, 78, 50, 78, 68, 51, 71, 83, 56, 64, 74, 60, 77, 75, 68, 43, 50, 58, 50, 66, 59, 57, 65, 52, 74, 122, 45, 61, 45, 42, 61, 82, 55, 81, 68, 63, 51, 52, 64, 59, 82, 63, 67, 87, 57, 48, 57, 70, 77, 80, 62, 84, 70, 81, 70, 71, 66, 51, 58, 57, 90, 59, 76, 44, 65, 70, 69, 53, 73, 67, 58, 48, 76, 129, 65, 49, 62, 54, 52, 66, 66, 60, 63, 60, 56, 84, 110, 52, 86, 48, 62, 88, 60, 67, 64, 63, 64, 76, 58, 51, 97, 69, 62, 57, 72, 71, 63, 78, 51, 60, 83, 66, 49, 61, 41, 80, 88, 63, 49, 36, 58, 41, 65, 76, 64, 70, 81, 60, 61, 63, 69, 59, 49, 96, 52, 60, 84, 54, 88, 63, 46, 62, 60, 59, 45, 71, 83, 57, 61, 57, 94, 66, 71, 74, 127, 51, 51, 57, 97, 56, 78, 54, 63, 46, 52, 48, 69, 76, 72, 60, 51, 77, 53, 50, 67, 56, 67, 77, 58, 77, 56, 63, 66, 80, 40, 58, 59, 55, 74, 65, 93, 75, 67, 66, 60, 57, 57, 142, 70, 58, 60, 110, 67, 46, 51, 49, 63, 53, 101, 109, 83, 96, 56, 60, 71, 86, 53, 55, 85, 50, 59, 56, 84, 77, 69, 58, 64, 77, 72, 61, 48, 60, 61, 59, 62, 61, 63, 59, 61, 57, 64, 80, 67, 69, 63, 66, 63, 64, 59, 61, 64, 84, 128, 44, 57, 68, 58, 74, 75, 65, 72, 65, 83, 62, 67, 60, 43, 74, 51, 68, 43, 73, 63, 70, 60, 65, 76, 66, 64, 64, 71, 103, 68, 73, 65, 50, 56, 60, 58, 71, 56, 77, 57, 52, 69, 55, 69, 70, 38, 67, 69, 59, 68, 71, 49, 71, 69, 75, 57, 71, 52, 44, 59, 72, 69, 59, 58, 63, 76, 61, 54, 58, 73, 61, 67, 68, 74, 64, 65, 60, 66, 63, 66, 62, 87, 52, 64, 76, 45, 62, 55, 68, 95, 69, 54, 49, 96, 58, 71, 73, 59, 75, 97, 50, 85, 46, 75, 70, 80, 83, 57, 63, 54, 53, 54, 80, 93, 78, 105, 59, 60, 70, 56, 61, 60, 69, 66, 76, 55, 43, 60, 70, 69, 64, 55, 79, 59, 69, 55, 93, 63, 57, 62, 102, 53, 74, 57, 81, 67, 82, 36, 57, 53, 55, 61, 56, 66, 65, 55, 50, 63, 72, 58, 59, 66, 58, 67, 65, 52, 64, 82, 74, 70, 61, 47, 88, 55, 61, 86, 63, 60, 55, 93, 69, 50, 70, 72, 73, 55, 71, 48, 50, 47, 87, 74, 60, 63, 48, 69, 53, 76, 43, 62, 81, 54, 62, 55, 52, 111, 50, 69, 50, 83, 57, 45, 65, 68, 59, 58, 75, 62, 57, 55, 73, 111, 109, 63, 64, 81, 45, 72, 69, 59, 69, 59, 61, 46, 53, 78, 61, 60, 58, 67, 53, 120, 61, 57, 59, 61, 64, 51, 67, 63, 104, 41, 63, 69, 54, 57, 62, 52, 66, 75, 40, 52, 78, 70, 62, 50, 49, 67, 52, 63, 42, 55, 60, 67, 57, 76, 59, 72, 71, 53, 45, 48, 57, 76, 60, 54, 58, 44, 57, 47, 57, 61, 68, 56, 57, 67, 109, 53, 58, 63, 53, 64, 77, 59, 77, 69, 51, 34, 109, 50, 60, 55, 74, 64, 67, 54, 49, 54, 58, 69, 62, 85, 64, 101, 47, 63, 56, 43, 49, 61, 56, 62, 56, 72, 72, 92, 64, 70, 65, 73, 67, 55, 65, 43, 56, 63, 85, 79, 83, 53, 60, 70, 59, 66, 65, 64, 59, 79, 70, 65, 70, 72, 74, 77, 125, 110, 80, 66, 56, 65, 70, 52, 64, 64, 82, 55, 58, 66, 57, 72, 64, 53, 80, 54, 77, 76, 72, 70, 56, 95, 54, 86, 38, 49, 53, 69, 59, 60, 56, 69, 57, 64, 45, 66, 58, 51, 65, 73, 57, 80, 62, 65, 72, 83, 64, 70, 56, 45, 76, 50, 57, 60, 55, 56, 74, 76, 106, 66, 73, 50, 52, 62, 66, 82, 88, 62, 53, 72, 50, 128, 47, 51, 87, 73, 56, 44, 68, 94, 84, 55, 63, 80, 59, 46, 74, 82, 76, 87, 52, 74, 58, 62, 59, 53, 46, 46, 65, 63, 55, 65, 62, 53, 66, 70, 69, 44, 88, 53, 54, 58, 56, 69, 66, 77, 78, 56, 50, 61, 58, 77, 48, 65, 56, 78, 74, 73, 56, 82, 113, 53, 53, 49, 61, 79, 72, 80, 53, 50, 90, 66, 83, 75, 73, 52, 76, 69, 69, 57, 65, 63, 67, 78, 57, 82, 56, 52, 75, 93, 76, 62, 61, 56, 55, 48, 68, 98, 57, 54, 44, 68, 62, 79, 84, 59, 79, 74, 67, 73, 56, 62, 63, 67, 76, 58, 57, 64, 51, 65, 67, 77, 67, 59, 53, 57, 60, 73, 50, 49, 62, 42, 59, 68, 68, 45, 59, 64, 48, 50, 57, 97, 58, 74, 47, 58, 51, 60, 47, 57, 93, 57, 56, 84, 76, 81, 54, 64, 72, 66, 87, 60, 67, 76, 64, 53, 100, 66, 65, 45, 78, 77, 69, 118, 56, 79, 68, 55, 86, 64, 79, 60, 117, 70, 68, 51, 94, 57, 69, 86, 56, 75, 51, 90, 53, 85, 63, 59, 74, 59, 54, 50, 70, 70, 57, 61, 58, 61, 61, 66, 68, 59, 69, 62, 55, 93, 99, 93, 37, 61, 73, 51, 58, 79, 41, 60, 61, 48, 57, 86, 88, 57, 61, 56, 60, 63, 93, 93, 72, 67, 76, 52, 68, 72, 58, 62, 55, 89, 58, 66, 93, 81, 94, 74, 62, 58, 70, 46, 92, 72, 70, 73, 62, 52, 53, 60, 63, 76, 56, 82, 84, 46, 63, 58, 62, 62, 54, 83, 93, 55, 72, 56, 78, 87, 68, 81, 55, 69, 69, 70, 57, 92, 57, 95, 75, 67, 69, 73, 51, 54, 94, 55, 43, 68, 87, 68, 74, 60, 63, 72, 56, 58, 72, 75, 56, 75, 81, 65, 92, 56, 75, 57, 64, 56, 56, 54, 96, 67, 81, 53, 59, 65, 58, 66, 67, 101, 52, 54, 74, 54, 77, 84, 81, 75, 66, 57, 106, 53, 53, 68, 63, 69, 61, 62, 87, 71, 47, 57, 71, 42, 75, 56, 113, 76, 57, 60, 63, 49, 67, 55, 47, 67, 46, 49, 67, 60, 73, 94, 58, 42, 85, 77, 52, 65, 48, 49, 86, 52, 112, 113, 57, 79, 79, 67, 61, 83, 66, 36, 55, 57, 84, 72, 54, 87, 54, 58, 58, 76, 73, 58, 66, 56, 69, 53, 88, 52, 51, 105, 68, 71, 60, 51, 46, 71, 72, 49, 59, 57, 67, 73, 70, 51, 63, 69, 62, 62, 56, 83, 64, 53, 87, 68, 41, 62, 75, 35, 78, 51, 57, 65, 56, 60, 44, 36, 71, 44, 41, 107, 63, 57, 83, 77, 73, 78, 49, 49, 72, 52, 95, 75, 44, 95, 70, 54, 67, 61, 73, 44, 59, 136, 74, 55, 63, 88, 48, 59, 59, 82, 55, 85, 85, 63, 73, 72, 51, 64, 79, 55, 72, 44, 38, 55, 58, 75, 98, 63, 45, 121, 51, 56, 94, 107, 73, 71, 95, 81, 54, 66, 98, 72, 115, 75, 65, 71, 55, 35, 96, 54, 52, 59, 61, 60, 61, 57, 62, 49, 75, 64, 36, 55, 85, 59, 77, 59, 76, 59, 63, 61, 70, 70, 61, 50, 43, 56, 63, 78, 60, 56, 53, 55, 50, 61, 83, 63, 98, 62, 74, 73, 78, 85, 27, 63, 59, 53, 45, 40, 31, 41, 74, 75, 73, 54, 49, 72, 74, 49, 59, 90, 82, 46, 55, 52, 55, 62, 63, 60, 78, 66, 42, 53, 51, 80, 70, 79, 113, 92, 67, 96, 103, 115, 78, 70, 68, 71, 65, 69, 44, 78, 53, 52, 101, 64, 75, 65, 73, 90, 93, 90, 95, 63, 59, 42, 58, 84, 73, 49, 79, 67, 59, 46, 95, 70, 64, 53, 98, 36, 81, 81, 73, 68, 57, 53, 56, 55, 55, 61, 60, 56, 58, 58, 66, 65, 75, 52, 64, 69, 56, 58, 66, 68, 37, 62, 63, 62, 58, 73, 71, 79, 55, 70, 81, 46, 78, 75, 76, 54, 51, 62, 95, 58, 59, 82, 69, 72, 55, 116, 64, 76, 37, 58, 74, 74, 68, 71, 50, 56, 88, 75, 61, 47, 73, 93, 84, 79, 75, 63, 61, 51, 65, 95, 52, 65, 53, 30, 60, 66, 81, 58, 47, 59, 86, 59, 74, 68, 62, 75, 99, 79, 76, 55, 56, 72, 54, 75, 61, 60, 53, 70, 61, 61, 61, 75, 64, 85, 88, 58, 65, 68, 49, 59, 43, 69, 57, 44, 51, 47, 88, 57, 60, 56, 111, 63, 58, 61, 42, 58, 54, 83, 66, 56, 57, 63, 46, 53, 49, 60, 46, 70, 99, 75, 62, 56, 45, 50, 58, 66, 54, 56, 46, 52, 81, 52, 59, 51, 77, 64, 82, 55, 66, 63, 85, 71, 59, 110, 56, 60, 63, 49, 62, 81, 49, 57, 75, 60, 83, 87, 86, 69, 41, 79, 67, 61, 48, 35, 57, 56, 55, 49, 68, 86, 45, 54, 109, 58, 61, 90, 72, 67, 69, 69, 72, 61, 92, 96, 60, 68, 65, 72, 56, 76, 91, 52, 68, 48, 65, 72, 89, 77, 81, 57, 49, 49, 63, 48, 46, 87, 67, 56, 60, 47, 62, 43, 83, 66, 63, 69, 60, 50, 75, 53, 85, 55, 55, 83, 61, 54, 43, 51, 46, 50, 79, 53, 89, 44, 92, 90, 78, 59, 64, 73, 66, 90, 55, 69, 66, 77, 74, 58, 59, 86, 50, 70, 68, 52, 52, 68, 43, 60, 60, 72, 89, 58, 43, 69, 67, 60, 83, 74, 64, 47, 66, 58, 74, 53, 80, 74, 77, 63, 66, 53, 60, 65, 68, 101, 52, 65, 57, 63, 63, 74, 60, 72, 71, 69, 58, 57, 77, 47, 59, 75, 82, 49, 55, 52, 80, 80, 71, 107, 67, 64, 115, 65, 83, 50, 70, 56, 59, 50, 63, 71, 71, 61, 88, 52, 79, 48, 66, 48, 57, 88, 114, 51, 83, 77, 75, 60, 62, 54, 70, 87, 55, 66, 56, 62, 67, 50, 54, 54, 90, 36, 75, 45, 64, 68, 74, 44, 56, 84, 80, 62, 66, 104, 77, 58, 62, 61, 79, 79, 60, 62, 51, 79, 76, 85, 63, 54, 68, 73, 135, 90, 60, 67, 84, 69, 52, 36, 90, 71, 43, 41, 61, 51, 83, 69, 66, 71, 74, 56, 75, 68, 65, 71, 57, 66, 47, 45, 81, 65, 71, 71, 59, 73, 57, 72, 69, 70, 71, 44, 39, 66, 50, 42, 69, 67, 61, 68, 66, 126, 68, 68, 74, 66, 58, 53, 53, 77, 57, 94, 59, 48, 64, 63, 98, 74, 62, 101, 66, 80, 59, 56, 46, 77, 50, 47, 65, 84, 58, 61, 58, 60, 62, 64, 55, 61, 59, 71, 77, 58, 81, 87, 64, 52, 49, 75, 65, 53, 43, 61, 56, 70, 75, 54, 66, 67, 57, 63, 38, 89, 62, 45, 86, 73, 95, 68, 57, 141, 89, 63, 69, 54, 57, 69, 53, 52, 69, 57, 74, 59, 60, 72, 51, 62, 66, 66, 51, 51, 48, 61, 56, 67, 64, 82, 82, 92, 70, 58, 54, 49, 64, 61, 54, 65, 62, 88, 42, 69, 61, 59, 57, 41, 58, 57, 80, 65, 49, 100, 58, 56, 62, 72, 80, 73, 75, 71, 62, 70, 77, 62, 55, 65, 62, 66, 78, 61, 56, 72, 82, 92, 66, 60, 54, 56, 54, 60, 68, 74, 101, 63, 86, 64, 61, 78, 58, 69, 61, 72, 68, 75, 56, 99, 65, 65, 71, 59, 74, 66, 61, 63, 76, 55, 70, 56, 63, 63, 58, 75, 66, 75, 84, 59, 55, 35, 61, 67, 71, 61, 58, 59, 57, 59, 66, 50, 76, 83, 58, 83, 61, 63, 68, 62, 63, 84, 72, 61, 62, 62, 77, 74, 73, 71, 64, 68, 87, 63, 70, 69, 63, 78, 34, 78, 57, 57, 60, 80, 47, 59, 72, 65, 73, 52, 84, 68, 71, 69, 72, 71, 94, 61, 61, 59, 59, 73, 79, 69, 71, 57, 75, 67, 62, 61, 60, 68, 64, 64, 56, 61, 66, 65, 59, 45, 71, 60, 73, 69, 62, 60, 75, 68, 46, 58, 92, 63, 71, 68, 50, 67, 56, 52, 78, 66, 70, 44, 62, 60, 44, 62, 66, 62, 48, 58, 68, 67, 50, 60, 72, 80, 60, 58, 86, 63, 58, 41, 86, 59, 57, 55, 56, 57, 61, 83, 71, 63, 44, 62, 47, 64, 75, 71, 73, 68, 58, 71, 39, 54, 75, 56, 76, 74, 49, 67, 72, 62, 51, 64, 77, 117, 79, 72, 49, 60, 78, 70, 73, 55, 49, 61, 56, 70, 59, 60, 69, 68, 64, 82, 70, 53, 51, 57, 95, 133, 79, 54, 75, 64, 78, 74, 92, 64, 76, 72, 57, 71, 61, 47, 73, 83, 65, 56, 68, 58, 54, 55, 69, 75, 68, 56, 64, 64, 73, 51, 122, 76, 80, 54, 71, 59, 66, 65, 71, 40, 68, 44, 61, 77, 69, 65, 90, 73, 71, 47, 41, 65, 61, 39, 65, 73, 64, 71, 77, 114, 120, 137, 59, 70, 64, 64, 65, 58, 64, 74, 64, 62, 49, 74, 63, 47, 67, 64, 64, 60, 66, 63, 72, 76, 77, 52, 66, 61, 70, 52, 89, 83, 106, 68, 63, 80, 66, 92, 52, 63, 60, 66, 69, 46, 76, 61, 50, 65, 54, 58, 81, 62, 74, 52, 48, 62, 41, 55, 70, 57, 63, 63, 64, 58, 74, 62, 59, 66, 78, 82, 54, 52, 63, 63, 73, 78, 59, 92, 59, 79, 55, 64, 66, 50, 58, 51, 113, 52, 68, 71, 58, 53, 82, 76, 74, 52, 75, 54, 81, 56, 61, 92, 67, 39, 72, 64, 60, 66, 65, 60, 77, 63, 89, 58, 56, 53, 59, 62, 61, 61, 71, 72, 92, 74, 67, 72, 63, 64, 62, 88, 66, 76, 75, 87, 59, 48, 71, 59, 65, 67, 76, 70, 92, 80, 81, 100, 62, 72, 70, 58, 79, 57, 102, 53, 59, 59, 64, 62, 66, 70, 73, 58, 68, 61, 83, 114, 92, 67, 79, 48, 57, 63, 66, 52, 99, 65, 63, 79, 45, 71, 43, 79, 75, 52, 74, 70, 59, 59, 67, 73, 56, 51, 65, 52, 54, 68, 59, 72, 61, 69, 50, 61, 72, 73, 66, 61, 66, 71, 63, 56, 63, 52, 64, 58, 73, 80, 69, 60, 83, 60, 62, 54, 62, 71, 43, 62, 90, 47, 65, 50, 49, 63, 74, 70, 63, 46, 60, 59, 64, 71, 82, 62, 64, 54, 85, 68, 77, 63, 71, 58, 70, 47, 63, 76, 83, 69, 64, 95, 61, 63, 53, 57, 64, 66, 69, 69, 85, 49, 65, 70, 88, 68, 62, 65, 48, 54, 63, 71, 60, 75, 68, 74, 61, 59, 65, 79, 60, 57, 73, 65, 65, 66, 78, 85, 56, 67, 66, 100, 65, 66, 71, 59, 55, 66, 66, 68, 58, 60, 91, 90, 58, 63, 78, 55, 65, 42, 67, 71, 60, 52, 58, 81, 70, 59, 47, 56, 71, 61, 87, 69, 61, 85, 63, 63, 58, 65, 62, 54, 64, 58, 59, 62, 66, 70, 76, 61, 62, 81, 70, 67, 75, 57, 65, 64, 55, 65, 67, 68, 91, 39, 56, 79, 71, 67, 51, 79, 70, 55, 80, 51, 74, 78, 81, 73, 68, 69, 63, 77, 63, 48, 68, 50, 87, 52, 63, 63, 66, 62, 76, 174, 71, 77, 90, 50, 68, 61, 59, 72, 52, 83, 61, 73, 76, 77, 67, 55, 71, 71, 99, 74, 52, 64, 77, 51, 50, 65, 70, 95, 76, 72, 76, 111, 61, 78, 57, 67, 76, 73, 56, 61, 52, 76, 69, 43, 62, 68, 66, 77, 86, 52, 70, 41, 68, 82, 68, 63, 68, 84, 89, 46, 97, 68, 64, 52, 60, 71, 56, 68, 66, 81, 78, 49, 57, 68, 62, 70, 69, 61, 88, 57, 64, 64, 84, 75, 61, 48, 120, 53, 72, 76, 69, 57, 62, 52, 59, 62, 63, 50, 45, 53, 62, 56, 73, 67, 67, 64, 61, 41, 74, 69, 68, 56, 84, 72, 46, 72, 56, 53, 83, 60, 66, 50, 55, 72, 61, 55, 56, 52, 80, 74, 62, 84, 59, 62, 61, 60, 72, 54, 65, 75, 97, 118, 50, 71, 81, 64, 63, 50, 80, 66, 56, 57, 69, 77, 67, 60, 59, 77, 77, 91, 63, 121, 50, 57, 55, 71, 69, 61, 45, 54, 56, 85, 57, 67, 80, 82, 69, 82, 57, 85, 72, 79, 74, 54, 66, 73, 72, 77, 80, 67, 57, 53, 76, 48, 67, 57, 73, 70, 62, 61, 67, 70, 60, 63, 41, 57, 77, 70, 66, 92, 55, 69, 43, 57, 52, 55, 60, 74, 65, 63, 67, 64, 63, 65, 57, 70, 59, 71, 58, 61, 67, 66, 64, 53, 46, 65, 57, 53, 97, 67, 67, 60, 56, 52, 57, 86, 69, 40, 80, 52, 66, 68, 66, 78, 65, 58, 83, 57, 72, 66, 73, 78, 70, 63, 61, 87, 79, 58, 91, 68, 44, 56, 65, 55, 50, 63, 80, 61, 75, 58, 55, 67, 83, 71, 64, 56, 115, 60, 71, 55, 85, 71, 53, 73, 100, 75, 85, 55, 74, 56, 57, 67, 82, 79, 83, 58, 49, 60, 64, 83, 67, 64, 59, 61, 34, 49, 67, 56, 72, 76, 75, 35, 52, 56, 55, 82, 65, 62, 55, 89, 55, 61, 71, 62, 55, 67, 67, 63, 54, 63, 60, 69, 44, 78, 68, 72, 73, 59, 49, 91, 58, 58, 59, 102, 61, 64, 51, 70, 76, 50, 84, 41, 49, 65, 60, 74, 89, 79, 59, 72, 61, 88, 51, 70, 59, 59, 88, 68, 94, 61, 66, 68, 60, 54, 53, 65, 69, 78, 62, 64, 80, 84, 91, 58, 58, 59, 56, 74, 90, 63, 57, 89, 75, 56, 60, 59, 63, 63, 63, 78, 61, 66, 55, 86, 43, 72, 62, 68, 50, 46, 73, 70, 64, 55, 64, 44, 59, 65, 47, 110, 72, 56, 102, 57, 67, 74, 70, 54, 63, 50, 61, 73, 57, 59, 62, 49, 53, 55, 68, 60, 63, 59, 44, 65, 88, 75, 74, 59, 67, 74, 63, 72, 56, 64, 59, 92, 51, 57, 74, 77, 75, 72, 75, 57, 74, 53, 58, 60, 56, 100, 72, 46, 58, 60, 67, 73, 63, 60, 65, 49, 45, 69, 57, 76, 42, 60, 42, 75, 71, 76, 128, 59, 72, 65, 51, 64, 59, 42, 84, 49, 60, 72, 70, 51, 74, 65, 72, 48, 75, 96, 57, 62, 52, 65, 67, 62, 56, 66, 63, 68, 78, 60, 55, 67, 57, 63, 80, 55, 89, 76, 55, 57, 79, 38, 46, 69, 66, 45, 65, 70, 53, 84, 47, 65, 56, 59, 82, 148, 65, 52, 68, 70, 48, 58, 63, 67, 68, 76, 61, 62, 50, 70, 68, 68, 46, 53, 57, 47, 84, 70, 57, 67, 67, 69, 77, 58, 44, 69, 61, 75, 73, 55, 60, 61, 71, 78, 60, 70, 78, 63, 63, 68, 68, 75, 68, 63, 54, 132, 59, 77, 53, 56, 60, 110, 64, 70, 66, 65, 61, 77, 55, 58, 69, 67, 70, 56, 74, 68, 63, 70, 77, 57, 54, 104, 63, 71, 72, 63, 50, 67, 66, 62, 71, 59, 53, 60, 60, 71, 59, 48, 65, 59, 79, 43, 61, 73, 61, 60, 48, 79, 55, 78, 70, 58, 46, 77, 69, 89, 76, 52, 52, 70, 54, 67, 52, 52, 74, 63, 126, 75, 87, 71, 65, 64, 54, 56, 56, 60, 68, 88, 63, 50, 75, 54, 91, 50, 64, 70, 49, 84, 62, 73, 55, 61, 52, 65, 66, 76, 87, 70, 89, 85, 67, 53, 99, 69, 64, 65, 60, 65, 65, 52, 54, 68, 62, 107, 68, 63, 72, 71, 64, 59, 51, 62, 52, 57, 56, 43, 65, 56, 95, 51, 50, 49, 57, 49, 66, 56, 74, 54, 81, 75, 47, 68, 61, 73, 66, 74, 62, 52, 51, 51, 68, 72, 56, 51, 59, 62, 55, 76, 63, 59, 69, 63, 111, 55, 66, 75, 71, 59, 56, 54, 90, 74, 58, 74, 60, 67, 53, 47, 53, 73, 73, 73, 36, 68, 49, 51, 60, 62, 72, 67, 69, 70, 62, 63, 72, 61, 50, 67, 73, 69, 40, 57, 71, 64, 64, 85, 53, 89, 68, 59, 94, 80, 70, 61, 70, 61, 81, 59, 57, 83, 57, 89, 53, 58, 64, 53, 66, 84, 57, 55, 52, 64, 65, 65, 76, 85, 89, 56, 62, 68, 61, 59, 70, 53, 56, 90, 59, 53, 41, 78, 45, 65, 44, 80, 57, 62, 77, 76, 64, 99, 74, 76, 50, 92, 68, 89, 79, 61, 78, 62, 77, 52, 66, 72, 68, 90, 82, 69, 55, 82, 44, 73, 57, 59, 72, 52, 53, 80, 63, 71, 86, 49, 65, 68, 59, 76, 71, 65, 57, 69, 70, 67, 52, 45, 64, 56, 97, 63, 72, 71, 65, 74, 68, 76, 61, 71, 57, 72, 56, 68, 96, 62, 65, 84, 69, 75, 87, 71, 50, 62, 82, 63, 64, 73, 84, 42, 63, 58, 82, 56, 63, 47, 61, 56, 66, 61, 77, 58, 60, 61, 63, 70, 75, 57, 60, 57, 62, 67, 56, 52, 89, 93, 76, 47, 69, 75, 54, 73, 48, 74, 66, 72, 52, 62, 68, 58, 71, 65, 51, 69, 66, 67, 49, 61, 67, 61, 32, 70, 59, 58, 64, 52, 62, 53, 53, 71, 80, 63, 69, 64, 113, 65, 49, 68, 57, 61, 54, 73, 58, 83, 62, 100, 80, 50, 32, 47, 93, 80, 77, 58, 71, 54, 54, 85, 52, 73, 43, 68, 88, 63, 75, 64, 58, 92, 128, 66, 50, 63, 69, 67, 62, 54, 69, 70, 74, 81, 49, 61, 66, 60, 65, 67, 98, 87, 77, 73, 67, 109, 59, 66, 75, 70, 47, 59, 65, 54, 65, 59, 50, 57, 49, 65, 59, 57, 45, 65, 81, 64, 45, 53, 77, 71, 53, 49, 78, 52, 62, 60, 58, 70, 112, 61, 79, 61, 75, 61, 70, 42, 65, 74, 86, 52, 71, 56, 44, 58, 82, 54, 55, 61, 68, 97, 85, 45, 106, 68, 44, 62, 61, 68, 67, 60, 52, 64, 47, 64, 53, 58, 91, 73, 67, 66, 76, 76, 70, 86, 60, 80, 80, 77, 55, 54, 63, 63, 105, 42, 66, 123, 66, 64, 62, 45, 53, 61, 53, 72, 48, 73, 42, 58, 56, 52, 62, 68, 68, 73, 69, 59, 63, 49, 71, 85, 65, 57, 68, 65, 70, 80, 48, 75, 73, 46, 79, 68, 57, 59, 100, 76, 53, 64, 57, 59, 82, 55, 106, 66, 48, 54, 68, 57, 60, 63, 64, 60, 61, 82, 61, 71, 61, 56, 69, 61, 85, 74, 67, 71, 78, 62, 61, 54, 56, 116, 59, 61, 47, 61, 76, 80, 51, 60, 75, 62, 73, 62, 79, 69, 67, 57, 61, 68, 46, 71, 62, 75, 87, 72, 71, 75, 66, 54, 69, 77, 65, 74, 100, 59, 38, 92, 78, 58, 66, 113, 56, 53, 84, 73, 49, 69, 44, 52, 76, 62, 62, 68, 64, 103, 100, 50, 109, 59, 61, 47, 61, 54, 68, 80, 84, 59, 108, 78, 58, 69, 56, 68, 42, 65, 64, 58, 58, 70, 69, 47, 77, 86, 52, 87, 55, 61, 47, 61, 118, 66, 76, 56, 69, 61, 74, 49, 76, 51, 63, 118, 64, 85, 70, 67, 43, 56, 40, 64, 62, 57, 59, 67, 46, 74, 111, 64, 113, 71, 65, 79, 60, 64, 33, 81, 67, 65, 65, 95, 109, 81, 37, 53, 80, 54, 66, 50, 48, 78, 72, 56, 61, 52, 97, 61, 77, 60, 74, 59, 55, 74, 59, 80, 54, 59, 97, 49, 58, 82, 74, 61, 68, 60, 50, 54, 58, 62, 64, 67, 68, 74, 61, 61, 67, 65, 58, 63, 84, 48, 59, 96, 49, 75, 95, 67, 60, 69, 46, 66, 90, 102, 97, 70, 81, 66, 94, 65, 77, 80, 82, 64, 104, 48, 87, 64, 68, 56, 61, 69, 53, 85, 76, 52, 55, 77, 62, 75, 57, 131, 119, 59, 62, 74, 92, 61, 56, 67, 67, 87, 58, 70, 74, 62, 69, 56, 63, 103, 83, 49, 62, 66, 56, 132, 67, 73, 69, 94, 61, 85, 61, 60, 59, 69, 112, 50, 57, 72, 76, 69, 63, 67, 61, 68, 66, 68, 56, 86, 59, 66, 45, 72, 64, 42, 88, 48, 71, 56, 87, 60, 63, 65, 67, 79, 64, 74, 88, 66, 66, 45, 53, 61, 43, 82, 61, 50, 51, 67, 63, 60, 56, 53, 97, 63, 61, 68, 71, 57, 61, 51, 59, 60, 75, 60, 85, 75, 64, 63, 70, 53, 55, 49, 54, 61, 59, 68, 58, 62, 59, 71, 64, 56, 79, 56, 47, 59, 66, 57, 52, 56, 62, 71, 57, 87, 44, 53, 68, 62, 114, 63, 69, 48, 79, 81, 63, 68, 52, 58, 48, 59, 69, 85, 61, 53, 59, 56, 60, 76, 78, 72, 65, 52, 61, 61, 55, 85, 65, 58, 69, 77, 46, 57, 60, 59, 58, 65, 49, 60, 50, 94, 69, 49, 85, 44, 65, 61, 73, 54, 70, 62, 63, 64, 58, 52, 51, 69, 67, 72, 60, 49, 64, 54, 68, 73, 62, 58, 56, 64, 59, 49, 55, 62, 80, 88, 55, 55, 61, 67, 84, 58, 59, 94, 140, 63, 65, 67, 57, 70, 76, 50, 64, 61, 100, 77, 43, 57, 64, 62, 100, 56, 62, 139, 73, 69, 61, 47, 62, 75, 59, 83, 55, 66, 60, 45, 64, 92, 59, 55, 58, 69, 83, 62, 73, 75, 72, 82, 53, 71, 69, 78, 62, 49, 68, 42, 88, 73, 60, 54, 55, 68, 63, 64, 81, 68, 54, 58, 60, 62, 48, 61, 53, 53, 57, 48, 73, 72, 59, 88, 95, 58, 57, 52, 54, 79, 57, 50, 84, 74, 53, 60, 68, 60, 58, 50, 90, 61, 61, 65, 57, 55, 71, 67, 69, 81, 51, 63, 55, 57, 61, 75, 44, 55, 69, 56, 56, 71, 45, 73, 56, 63, 51, 55, 75, 63, 66, 57, 73, 57, 71, 115, 70, 76, 56, 52, 116, 64, 69, 50, 81, 68, 70, 73, 72, 63, 57, 65, 75, 49, 63, 64, 89, 84, 47, 74, 85, 58, 54, 36, 46, 66, 60, 50, 69, 66, 60, 53, 78, 49, 121, 59, 58, 57, 59, 66, 67, 60, 62, 63, 73, 55, 75, 65, 62, 66, 43, 106, 41, 91, 55, 94, 86, 71, 63, 48, 62, 65, 54, 61, 72, 52, 75, 65, 82, 60, 49, 62, 56, 59, 60, 67, 82, 64, 102, 96, 71, 118, 86, 57, 61, 73, 34, 56, 79, 82, 62, 67, 59, 58, 65, 54, 74, 77, 59, 71, 56, 44, 69, 57, 58, 59, 49, 64, 72, 53, 59, 56, 52, 90, 54, 56, 92, 66, 59, 63, 58, 64, 51, 65, 74, 46, 75, 32, 66, 60, 59, 71, 53, 60, 48, 87, 71, 56, 57, 72, 75, 63, 60, 57, 63, 68, 74, 73, 67, 64, 44, 62, 58, 74, 65, 62, 54, 69, 54, 80, 68, 66, 76, 53, 82, 74, 58, 47, 62, 55, 82, 63, 64, 60, 55, 55, 47, 52, 68, 38, 51, 71, 71, 66, 69, 50, 92, 97, 59, 61, 106, 58, 67, 51, 62, 69, 64, 66, 64, 80, 47, 58, 60, 60, 55, 71, 78, 51, 53, 52, 89, 65, 76, 67, 66, 55, 60, 64, 59, 54, 52, 72, 49, 64, 53, 63, 56, 75, 65, 66, 60, 64, 65, 66, 60, 62, 76, 70, 59, 69, 53, 67, 81, 90, 64, 133, 73, 41, 73, 73, 61, 58, 51, 54, 59, 70, 58, 81, 49, 55, 56, 62, 62, 67, 50, 58, 73, 145, 64, 61, 52, 73, 58, 63, 76, 66, 43, 70, 82, 75, 53, 76, 95, 46, 89, 65, 46, 68, 58, 55, 79, 57, 56, 61, 69, 57, 41, 77, 79, 58, 68, 53, 60, 61, 65, 72, 97, 62, 96, 53, 69, 100, 54, 62, 56, 76, 81, 86, 97, 97, 54, 54, 55, 58, 80, 73, 70, 58, 51, 54, 61, 63, 59, 67, 56, 77, 58, 104, 59, 58, 62, 56, 87, 67, 49, 62, 68, 64, 51, 56, 65, 67, 56, 80, 116, 71, 56, 60, 46, 66, 53, 61, 55, 61, 55, 61, 55, 65, 71, 38, 75, 101, 73, 59, 54, 72, 82, 40, 69, 60, 50, 62, 52, 65, 44, 69, 61, 69, 73, 69, 68, 83, 64, 59, 56, 76, 67, 46, 65, 57, 67, 78, 65, 59, 65, 60, 72, 66, 62, 75, 70, 81, 91, 72, 60, 64, 88, 103, 53, 59, 54, 77, 60, 63, 56, 62, 54, 91, 61, 67, 90, 51, 80, 63, 62, 61, 59, 58, 57, 117, 76, 60, 48, 59, 55, 76, 74, 70, 73, 44, 58, 56, 59, 73, 63, 56, 69, 65, 78, 66, 93, 57, 76, 49, 45, 67, 73, 53, 69, 74, 67, 65, 61, 75, 65, 67, 63, 67, 85, 71, 64, 60, 65, 53, 81, 55, 62, 54, 68, 59, 71, 61, 53, 52, 64, 51, 100, 56, 120, 55, 68, 72, 50, 72, 51, 38, 58, 49, 56, 66, 51, 56, 100, 64, 63, 51, 68, 47, 62, 65, 61, 73, 53, 43, 61, 69, 70, 57, 69, 74, 65, 75, 53, 60, 54, 64, 61, 53, 58, 59, 69, 92, 45, 70, 67, 97, 97, 88, 77, 73, 74, 82, 58, 53, 58, 84, 66, 53, 57, 56, 63, 65, 57, 71, 93, 65, 65, 67, 66, 58, 62, 61, 62, 106, 57, 62, 62, 83, 52, 63, 60, 64, 66, 70, 72, 60, 61, 51, 65, 95, 69, 79, 65, 59, 69, 67, 56, 61, 55, 91, 64, 62, 66, 62, 58, 58, 59, 76, 62, 79, 62, 53, 82, 64, 54, 65, 70, 59, 57, 64, 59, 70, 89, 57, 71, 57, 74, 75, 80, 51, 61, 59, 62, 41, 54, 57, 88, 50, 100, 44, 81, 67, 75, 57, 122, 56, 72, 59, 76, 61, 60, 84, 70, 65, 81, 58, 54, 66, 70, 93, 58, 45, 60, 73, 79, 64, 57, 83, 80, 69, 63, 65, 46, 58, 80, 47, 66, 66, 56, 73, 73, 87, 63, 50, 88, 87, 75, 41, 65, 44, 50, 68, 70, 64, 58, 55, 66, 60, 96, 78, 49, 71, 82, 59, 45, 42, 61, 63, 74, 75, 49, 54, 56, 56, 76, 62, 49, 76, 65, 54, 59, 69, 62, 52, 64, 87, 49, 64, 73, 65, 74, 101, 50, 64, 66, 59, 64, 58, 98, 68, 70, 66, 53, 67, 53, 68, 72, 50, 59, 61, 64, 63, 69, 81, 57, 87, 58, 64, 56, 69, 56, 56, 75, 55, 62, 63, 69, 54, 36, 51, 58, 54, 59, 41, 75, 77, 69, 69, 54, 62, 65, 58, 62, 63, 61, 73, 71, 40, 72, 122, 80, 73, 78, 60, 65, 57, 56, 70, 64, 97, 63, 62, 52, 94, 55, 64, 62, 63, 99, 63, 68, 62, 77, 56, 70, 69, 54, 55, 63, 54, 123, 66, 72, 64, 67, 55, 55, 68, 61, 72, 62, 69, 57, 58, 64, 53, 67, 52, 78, 65, 101, 55, 54, 54, 63, 83, 63, 61, 60, 72, 85, 67, 93, 62, 65, 64, 72, 91, 68, 43, 84, 67, 51, 115, 57, 88, 48, 66, 70, 51, 79, 50, 47, 44, 98, 79, 54, 78, 62, 56, 54, 61, 73, 75, 72, 85, 60, 47, 68, 61, 61, 67, 34, 62, 104, 50, 67, 49, 57, 70, 35, 59, 71, 44, 71, 44, 52, 53, 62, 56, 59, 107, 69, 64, 86, 70, 51, 54, 50, 109, 62, 58, 70, 66, 46, 65, 56, 68, 89, 61, 48, 64, 81, 66, 88, 69, 63, 66, 81, 78, 40, 103, 69, 80, 71, 50, 53, 72, 69, 55, 79, 64, 75, 60, 67, 63, 91, 58, 46, 55, 63, 57, 59, 61, 53, 56, 54, 60, 50, 61, 59, 66, 55, 63, 71, 35, 94, 65, 57, 68, 60, 52, 60, 71, 79, 74, 62, 69, 53, 56, 69, 73, 64, 60, 79, 54, 65, 51, 83, 77, 57, 70, 52, 72, 52, 56, 64, 55, 66, 77, 52, 51, 65, 56, 75, 76, 92, 79, 66, 57, 64, 57, 73, 67, 105, 66, 55, 61, 66, 48, 83, 56, 62, 76, 51, 83, 67, 50, 65, 59, 57, 69, 77, 66, 84, 68, 76, 52, 48, 58, 61, 72, 50, 59, 62, 77, 71, 69, 70, 56, 69, 57, 69, 59, 66, 60, 65, 58, 75, 50, 54, 48, 59, 65, 53, 57, 55, 90, 63, 76, 82, 53, 79, 52, 58, 115, 68, 54, 64, 69, 70, 89, 50, 56, 68, 72, 72, 57, 66, 85, 86, 71, 74, 68, 80, 64, 59, 38, 89, 76, 60, 56, 73, 75, 51, 71, 65, 82, 58, 78, 68, 43, 77, 83, 54, 50, 60, 57, 68, 64, 55, 62, 51, 64, 67, 69, 55, 59, 63, 47, 60, 72, 56, 69, 48, 64, 62, 62, 67, 79, 48, 57, 56, 69, 63, 60, 60, 120, 79, 78, 59, 59, 75, 76, 54, 57, 71, 59, 58, 51, 73, 62, 60, 68, 47, 55, 74, 74, 60, 69, 50, 78, 85, 63, 82, 53, 58, 60, 45, 67, 79, 75, 56, 58, 58, 69, 76, 46, 58, 58, 63, 62, 59, 61, 64, 53, 59, 70, 59, 91, 51, 61, 116, 49, 67, 76, 101, 74, 61, 140, 79, 51, 107, 55, 57, 44, 58, 58, 36, 69, 77, 46, 57, 57, 58, 80, 53, 73, 94, 65, 78, 70, 57, 68, 65, 60, 68, 54, 93, 61, 61, 98, 76, 73, 74, 60, 73, 70, 74, 66, 62, 65, 89, 69, 82, 81, 73, 72, 54, 74, 66, 55, 83, 63, 58, 60, 58, 60, 46, 69, 60, 73, 79, 56, 66, 71, 74, 68, 68, 59, 53, 68, 49, 74, 58, 67, 77, 73, 102, 51, 63, 56, 114, 81, 53, 53, 58, 55, 81, 57, 129, 63, 61, 48, 83, 59, 49, 65, 43, 66, 69, 57, 63, 60, 70, 55, 52, 68, 86, 58, 65, 79, 74, 66, 64, 75, 64, 41, 69, 57, 77, 64, 76, 59, 72, 68, 72, 64, 50, 57, 46, 57, 41, 58, 69, 54, 63, 71, 50, 60, 55, 85, 75, 63, 60, 62, 44, 67, 61, 59, 55, 48, 86, 77, 62, 38, 66, 78, 85, 84, 61, 61, 65, 52, 57, 62, 67, 68, 62, 72, 72, 62, 80, 73, 74, 59, 51, 43, 87, 67, 56, 74, 71, 64, 53, 60, 53, 69, 59, 64, 64, 56, 60, 82, 58, 55, 91, 61, 50, 67, 56, 63, 70, 47, 54, 58, 60, 63, 61, 58, 66, 63, 56, 75, 82, 66, 51, 43, 51, 76, 43, 92, 122, 66, 62, 74, 68, 74, 60, 58, 61, 71, 68, 51, 66, 52, 67, 64, 62, 80, 52, 64, 66, 94, 57, 71, 57, 64, 63, 60, 76, 62, 74, 62, 63, 62, 109, 57, 52, 53, 45, 64, 72, 67, 59, 58, 62, 59, 58, 58, 44, 62, 67, 55, 71, 75, 84, 69, 54, 68, 71, 65, 106, 62, 48, 83, 70, 66, 65, 65, 80, 63, 43, 66, 74, 59, 64, 68, 64, 66, 49, 84, 112, 87, 99, 74, 45, 61, 73, 52, 49, 56, 80, 70, 70, 61, 76, 64, 71, 47, 100, 58, 88, 52, 103, 55, 52, 71, 45, 74, 69, 54, 47, 59, 70, 89, 56, 61, 77, 61, 100, 76, 93, 65, 72, 39, 45, 70, 72, 139, 85, 82, 57, 61, 71, 69, 64, 88, 60, 41, 58, 60, 52, 71, 79, 65, 69, 64, 72, 88, 79, 62, 68, 53, 54, 59, 50, 82, 55, 66, 69, 102, 53, 54, 55, 57, 70, 56, 61, 50, 54, 116, 73, 63, 46, 54, 53, 65, 69, 52, 74, 80, 63, 61, 46, 68, 72, 61, 65, 60, 69, 58, 65, 82, 59, 74, 59, 62, 48, 55, 58, 66, 76, 75, 48, 70, 74, 48, 113, 71, 89, 63, 64, 70, 85, 67, 41, 59, 52, 79, 72, 62, 58, 61, 80, 76, 50, 69, 102, 57, 73, 73, 63, 53, 46, 59, 51, 73, 61, 75, 61, 65, 56, 75, 55, 60, 62, 68, 82, 85, 64, 63, 63, 76, 78, 70, 75, 81, 62, 56, 60, 130, 59, 62, 70, 97, 41, 66, 63, 65, 60, 50, 63, 74, 57, 57, 106, 87, 62, 71, 59, 68, 61, 63, 66, 71, 60, 108, 46, 68, 54, 73, 72, 56, 63, 54, 67, 62, 57, 66, 65, 64, 66, 71, 91, 72, 65, 58, 110, 58, 71, 68, 79, 37, 42, 55, 71, 62, 81, 94, 48, 53, 61, 68, 54, 67, 61, 75, 44, 53, 75, 65, 57, 67, 47, 52, 65, 72, 57, 72, 59, 62, 55, 71, 60, 74, 45, 44, 79, 77, 86, 76, 77, 63, 70, 60, 90, 55, 30, 62, 83, 58, 67, 57, 92, 67, 62, 53, 76, 70, 53, 63, 45, 58, 49, 54, 94, 63, 63, 77, 76, 57, 80, 66, 74, 62, 62, 70, 56, 67, 86, 37, 51, 116, 59, 64, 63, 70, 94, 61, 74, 66, 58, 53, 66, 51, 85, 90, 69, 64, 86, 58, 50, 72, 48, 35, 66, 43, 77, 62, 53, 77, 86, 67, 64, 92, 91, 62, 93, 62, 75, 83, 76, 44, 54, 66, 59, 87, 50, 74, 72, 61, 63, 60, 76, 68, 54, 56, 81, 59, 48, 80, 81, 67, 78, 65, 73, 54, 101, 73, 84, 49, 85, 91, 59, 74, 52, 70, 70, 67, 56, 74, 88, 94, 69, 64, 61, 50, 64, 57, 80, 59, 70, 84, 62, 64, 56, 83, 76, 63, 78, 77, 79, 69, 67, 56, 65, 60, 69, 56, 83, 75, 62, 56, 48, 46, 55, 70, 70, 77, 68, 58, 51, 53, 80, 82, 94, 67, 80, 58, 64, 57, 56, 53, 54, 68, 78, 84, 63, 64, 59, 72, 98, 67, 64, 60, 79, 80, 86, 41, 55, 65, 55, 65, 50, 58, 76, 64, 62, 74, 63, 114, 67, 53, 60, 56, 61, 60, 69, 73, 95, 68, 62, 64, 70, 71, 45, 46, 64, 69, 63, 66, 61, 86, 55, 71, 63, 60, 63, 66, 65, 63, 71, 68, 69, 51, 64, 70, 52, 69, 70, 76, 61, 65, 72, 94, 69, 71, 55, 59, 58, 52, 52, 59, 72, 113, 47, 71, 73, 61, 47, 82, 71, 80, 53, 45, 64, 46, 68, 70, 71, 62, 66, 68, 84, 66, 67, 63, 50, 61, 46, 70, 71, 54, 57, 53, 67, 77, 60, 51, 58, 74, 74, 57, 73, 62, 61, 51, 78, 48, 58, 74, 66, 32, 89, 59, 52, 60, 44, 73, 54, 64, 48, 92, 47, 63, 70, 61, 53, 38, 61, 54, 60, 77, 100, 68, 60, 106, 65, 64, 65, 55, 121, 51, 68, 82, 64, 50, 58, 74, 68, 57, 55, 51, 83, 67, 66, 59, 69, 51, 57, 71, 77, 67, 62, 89, 77, 81, 76, 104, 54, 57, 59, 65, 53, 97, 151, 61, 69, 79, 85, 72, 80, 69, 97, 72, 64, 60, 85, 67, 65, 78, 65, 55, 63, 77, 97, 70, 67, 80, 55, 52, 57, 58, 70, 71, 57, 47, 112, 66, 69, 108, 71, 45, 100, 108, 125, 76, 75, 83, 59, 64, 84, 62, 64, 64, 61, 75, 73, 50, 72, 56, 50, 54, 59, 72, 63, 59, 65, 37, 90, 54, 72, 69, 49, 64, 70, 80, 58, 54, 61, 46, 74, 116, 64, 50, 81, 51, 51, 70, 58, 62, 66, 53, 67, 76, 68, 99, 75, 83, 77, 94, 106, 89, 66, 54, 68, 104, 58, 58, 66, 86, 63, 73, 65, 49, 80, 57, 64, 66, 78, 87, 51, 62, 66, 51, 67, 47, 57, 61, 68, 70, 64, 101, 75, 90, 96, 62, 59, 46, 66, 65, 30, 65, 62, 61, 84, 56, 62, 67, 65, 79, 57, 62, 70, 63, 74, 93, 69, 59, 78, 55, 73, 43, 72, 84, 68, 68, 56, 107, 54, 54, 71, 55, 71, 108, 74, 126, 41, 57, 41, 73, 68, 71, 62, 67, 84, 61, 82, 52, 51, 77, 59, 66, 68, 58, 58, 58, 57, 63, 53, 96, 81, 76, 64, 51, 76, 81, 103, 63, 56, 65, 36, 91, 44, 48, 70, 60, 75, 83, 49, 70, 56, 58, 73, 65, 80, 53, 112, 45, 79, 57, 102, 65, 53, 58, 62, 64, 55, 34, 52, 57, 70, 67, 59, 62, 75, 73, 64, 74, 67, 58, 60, 57, 99, 54, 54, 62, 91, 64, 93, 47, 61, 85, 76, 65, 66, 60, 60, 95, 46, 55, 88, 54, 65, 73, 84, 70, 61, 57, 85, 46, 57, 51, 59, 79, 52, 51, 61, 120, 72, 79, 75, 41, 45, 62, 88, 75, 53, 60, 70, 114, 59, 66, 69, 61, 79, 67, 62, 71, 73, 49, 72, 63, 77, 59, 62, 70, 55, 114, 54, 59, 49, 50, 66, 66, 61, 42, 78, 58, 69, 79, 80, 76, 45, 57, 57, 58, 51, 58, 46, 83, 57, 73, 77, 74, 50, 59, 56, 59, 61, 51, 57, 68, 60, 54, 76, 56, 35, 59, 72, 68, 63, 60, 61, 77, 53, 60, 79, 53, 65, 58, 62, 67, 71, 55, 70, 56, 92, 58, 73, 71, 67, 57, 92, 81, 82, 66, 71, 63, 45, 72, 65, 50, 48, 79, 82, 59, 62, 51, 57, 42, 69, 65, 65, 53, 54, 60, 53, 63, 63, 72, 56, 62, 63, 58, 56, 48, 48, 60, 57, 64, 79, 78, 53, 51, 115, 71, 52, 76, 60, 63, 62, 65, 72, 81, 62, 62, 74, 42, 61, 42, 53, 41, 76, 54, 111, 69, 109, 70, 71, 60, 74, 75, 71, 69, 60, 72, 75, 105, 58, 73, 64, 85, 69, 59, 66, 53, 63, 45, 59, 78, 61, 48, 52, 63, 74, 62, 70, 68, 51, 50, 46, 83, 50, 51, 51, 76, 46, 72, 52, 67, 79, 68, 62, 76, 51, 59, 79, 47, 74, 60, 86, 69, 69, 70, 59, 68, 79, 62, 62, 61, 77, 57, 55, 81, 67, 56, 65, 61, 75, 64, 87, 59, 64, 53, 82, 64, 62, 79, 63, 33, 70, 66, 59, 62, 62, 71, 70, 61, 63, 45, 50, 83, 54, 80, 51, 69, 77, 52, 70, 74, 58, 73, 73, 67, 73, 54, 67, 71, 56, 66, 78, 43, 71, 57, 54, 60, 63, 68, 66, 43, 60, 106, 52, 75, 75, 60, 50, 45, 69, 49, 45, 92, 57, 75, 59, 77, 61, 49, 69, 53, 81, 76, 103, 92, 58, 78, 56, 66, 75, 56, 62, 76, 77, 85, 49, 49, 67, 71, 66, 64, 70, 58, 56, 69, 86, 47, 54, 93, 73, 65, 67, 103, 54, 89, 68, 67, 56, 73, 74, 57, 46, 49, 61, 49, 53, 59, 75, 70, 57, 67, 89, 50, 44, 58, 66, 50, 73, 78, 64, 68, 89, 74, 55, 71, 61, 66, 53, 59, 99, 51, 46, 56, 66, 59, 55, 62, 55, 54, 52, 70, 64, 65, 77, 57, 63, 70, 75, 68, 73, 76, 59, 65, 78, 48, 77, 63, 79, 49, 102, 69, 76, 71, 61, 79, 58, 47, 81, 66, 84, 86, 66, 64, 66, 57, 69, 54, 67, 64, 99, 81, 50, 66, 55, 63, 80, 61, 59, 46, 60, 62, 55, 60, 75, 70, 70, 91, 71, 64, 58, 45, 60, 74, 63, 45, 112, 53, 106, 59, 66, 73, 70, 53, 94, 67, 78, 51, 69, 59, 54, 67, 76, 46, 72, 67, 59, 55, 64, 77, 93, 68, 63, 61, 61, 104, 64, 71, 71, 74, 88, 61, 115, 61, 53, 63, 73, 52, 57, 64, 57, 85, 67, 63, 62, 63, 71, 64, 55, 55, 36, 72, 62, 52, 75, 64, 63, 84, 72, 78, 69, 61, 54, 69, 50, 70, 74, 66, 51, 61, 61, 61, 62, 65, 57, 80, 52, 74, 60, 55, 71, 42, 65, 92, 57, 66, 84, 61, 81, 62, 63, 57, 62, 69, 52, 90, 74, 80, 52, 85, 58, 69, 69, 60, 45, 59, 68, 70, 69, 55, 72, 64, 64, 64, 55, 67, 55, 58, 59, 42, 69, 52, 71, 70, 68, 52, 90, 68, 60, 44, 62, 66, 62, 68, 53, 53, 61, 76, 51, 77, 90, 58, 156, 58, 49, 50, 56, 60, 54, 62, 63, 80, 63, 73, 47, 51, 71, 61, 52, 74, 50, 66, 74, 81, 69, 73, 42, 61, 77, 43, 60, 52, 128, 69, 52, 68, 71, 63, 68, 71, 59, 53, 60, 63, 45, 62, 71, 78, 70, 69, 74, 66, 66, 64, 57, 49, 55, 62, 66, 107, 81, 73, 66, 70, 66, 70, 54, 63, 74, 53, 65, 70, 79, 63, 65, 55, 48, 72, 82, 65, 62, 76, 68, 56, 72, 66, 66, 67, 36, 47, 57, 90, 64, 68, 65, 46, 75, 88, 120, 67, 63, 73, 53, 63, 63, 79, 65, 70, 76, 63, 55, 57, 76, 55, 65, 51, 48, 63, 83, 76, 56, 105, 61, 58, 74, 58, 84, 77, 94, 79, 62, 81, 67, 46, 58, 106, 70, 33, 65, 61, 48, 75, 66, 117, 112, 80, 87, 51, 46, 60, 69, 49, 54, 75, 55, 119, 41, 75, 70, 57, 66, 63, 62, 51, 82, 69, 72, 67, 70, 56, 84, 48, 54, 64, 67, 50, 58, 81, 69, 58, 46, 77, 63, 88, 63, 58, 67, 43, 69, 52, 58, 44, 78, 68, 57, 72, 64, 64, 82, 65, 76, 74, 54, 75, 69, 64, 93, 66, 52, 52, 53, 64, 64, 80, 69, 71, 60, 62, 64, 62, 70, 56, 69, 60, 58, 53, 54, 70, 75, 77, 70, 68, 88, 90, 47, 53, 62, 83, 49, 60, 84, 51, 89, 57, 54, 77, 78, 45, 61, 55, 61, 53, 47, 77, 57, 51, 63, 98, 79, 61, 53, 67, 55, 70, 133, 71, 68, 69, 71, 57, 95, 70, 66, 63, 47, 62, 62, 80, 50, 90, 62, 51, 66, 45, 66, 55, 67, 78, 46, 64, 51, 52, 78, 66, 58, 46, 66, 75, 64, 97, 71, 54, 56, 59, 64, 74, 65, 76, 77, 57, 46, 63, 59, 90, 56, 59, 99, 70, 60, 67, 47, 43, 106, 66, 58, 54, 68, 53, 95, 66, 91, 90, 69, 55, 59, 75, 83, 59, 83, 63, 59, 101, 81, 51, 67, 69, 56, 62, 59, 58, 63, 56, 65, 56, 45, 62, 67, 76, 64, 89, 70, 53, 93, 58, 76, 59, 60, 65, 61, 88, 72, 74, 67, 56, 45, 69, 55, 63, 51, 63, 72, 70, 58, 55, 65, 68, 74, 66, 66, 53, 74, 90, 67, 56, 53, 92, 66, 79, 58, 90, 82, 57, 79, 50, 76, 49, 71, 41, 71, 58, 78, 83, 63, 68, 45, 50, 70, 75, 73, 52, 47, 59, 63, 94, 77, 54, 65, 67, 72, 64, 74, 76, 65, 64, 77, 74, 57, 67, 67, 65, 64, 57, 62, 116, 60, 59, 57, 63, 52, 69, 62, 66, 66, 55, 64, 63, 68, 57, 53, 73, 57, 72, 98, 54, 60, 89, 50, 68, 59, 38, 65, 69, 72, 66, 61, 51, 86, 63, 62, 61, 68, 53, 57, 53, 55, 89, 57, 86, 104, 56, 62, 73, 35, 63, 57, 74, 55, 71, 87, 65, 73, 55, 68, 64, 70, 49, 76, 68, 70, 58, 71, 78, 57, 46, 55, 89, 64, 66, 48, 65, 41, 81, 55, 54, 61, 90, 75, 49, 68, 45, 84, 60, 58, 91, 72, 48, 43, 63, 59, 58, 60, 52, 64, 50, 65, 74, 63, 68, 37, 75, 68, 64, 83, 63, 67, 47, 74, 88, 55, 67, 94, 73, 56, 64, 64, 64, 64, 63, 51, 85, 78, 58, 75, 40, 112, 66, 70, 53, 51, 77, 70, 77, 63, 71, 73, 68, 94, 107, 56, 66, 78, 74, 67, 42, 90, 80, 70, 58, 65, 59, 87, 43, 68, 55, 62, 54, 49, 65, 69, 56, 51, 73, 56, 72, 47, 71, 61, 73, 69, 61, 61, 56, 73, 61, 77, 64, 63, 84, 70, 49, 57, 54, 61, 137, 70, 69, 74, 59, 71, 51, 55, 63, 62, 70, 62, 65, 55, 80, 56, 62, 106, 56, 119, 55, 56, 47, 63, 57, 54, 49, 41, 70, 64, 67, 57, 55, 71, 61, 73, 66, 74, 73, 76, 70, 51, 69, 68, 65, 61, 75, 56, 91, 56, 74, 83, 51, 59, 74, 59, 72, 92, 69, 72, 80, 58, 54, 59, 61, 67, 52, 81, 69, 74, 83, 68, 49, 68, 82, 64, 51, 92, 54, 99, 63, 47, 77, 76, 79, 70, 63, 65, 57, 51, 65, 50, 78, 56, 63, 70, 65, 46, 54, 44, 41, 102, 70, 93, 99, 74, 75, 63, 66, 67, 70, 82, 69, 49, 60, 99, 53, 37, 63, 61, 73, 85, 59, 59, 66, 95, 70, 62, 58, 68, 160, 35, 55, 77, 60, 74, 48, 70, 75, 57, 56, 69, 62, 85, 85, 68, 74, 52, 80, 67, 109, 49, 70, 106, 43, 54, 69, 75, 106, 86, 86, 62, 55, 51, 71, 70, 54, 53, 99, 56, 50, 74, 58, 95, 84, 77, 71, 73, 101, 70, 68, 73, 88, 67, 78, 65, 67, 80, 83, 52, 84, 69, 53, 47, 85, 68, 69, 43, 103, 73, 47, 78, 40, 41, 79, 66, 56, 60, 74, 52, 49, 54, 70, 44, 68, 82, 61, 51, 60, 58, 68, 43, 65, 63, 77, 89, 58, 45, 56, 76, 74, 55, 39, 70, 96, 116, 75, 47, 63, 65, 55, 55, 56, 79, 70, 54, 70, 56, 65, 95, 59, 75, 67, 128, 47, 83, 59, 59, 67, 57, 61, 107, 62, 66, 65, 63, 62, 54, 64, 48, 62, 46, 75, 67, 119, 92, 55, 68, 65, 67, 57, 78, 52, 61, 63, 66, 71, 66, 53, 100, 60, 74, 62, 66, 77, 64, 79, 61, 67, 57, 71, 60, 63, 55, 51, 66, 69, 48, 44, 52, 64, 38, 61, 92, 47, 59, 40, 71, 78, 80, 79, 59, 62, 71, 54, 94, 94, 60, 74, 58, 57, 46, 127, 76, 70, 85, 77, 48, 75, 46, 72, 72, 62, 52, 78, 54, 95, 61, 74, 58, 63, 85, 69, 58, 85, 62, 68, 74, 73, 75, 63, 92, 63, 79, 91, 61, 58, 54, 41, 47, 79, 53, 53, 65, 56, 73, 57, 90, 47, 66, 62, 53, 56, 61, 89, 51, 81, 58, 92, 69, 87, 94, 73, 62, 130, 54, 60, 59, 97, 57, 76, 64, 54, 66, 69, 58, 56, 72, 56, 45, 72, 58, 124, 35, 62, 50, 44, 108, 64, 59, 54, 63, 57, 50, 50, 51, 91, 44, 111, 96, 51, 83, 49, 50, 41, 65, 51, 58, 56, 52, 62, 58, 80, 60, 41, 55, 51, 78, 77, 39, 41, 37, 97, 57, 58, 64, 70, 73, 91, 71, 66, 41, 83, 55, 54, 53, 37, 58, 67, 64, 62, 46, 74, 118, 74, 97, 68, 42, 81, 86, 70, 89, 67, 63, 92, 113, 67, 26, 72, 57, 75, 55, 58, 59, 70, 64, 52, 75, 61, 57, 57, 73, 53, 64, 64, 50, 53, 81, 55, 66, 68, 40, 51, 49, 82, 59, 69, 65, 91, 69, 53, 42, 83, 57, 58, 71, 68, 46, 64, 49, 81, 56, 88, 76, 63, 81, 76, 68, 70, 69, 59, 40, 60, 74, 78, 52, 45, 75, 85, 51, 53, 98, 41, 77, 68, 77, 69, 106, 62, 66, 59, 68, 51, 55, 41, 48, 48, 77, 51, 122, 69, 61, 80, 85, 62, 59, 71, 93, 65, 71, 64, 62, 60, 63, 53, 55, 71, 70, 54, 55, 74, 61, 76, 49, 116, 61, 59, 93, 136, 66, 62, 71, 60, 77, 67, 72, 71, 58, 76, 64, 60, 53, 54, 89, 60, 48, 65, 51, 68, 68, 68, 69, 99, 69, 59, 65, 61, 63, 58, 66, 91, 73, 65, 63, 68, 64, 76, 79, 65, 62, 73, 47, 85, 44, 43, 64, 66, 60, 47, 52, 47, 87, 65, 63, 57, 55, 82, 49, 73, 45, 57, 107, 67, 55, 77, 44, 59, 58, 67, 65, 56, 54, 66, 60, 105, 70, 48, 60, 71, 81, 72, 127, 80, 78, 104, 71, 53, 60, 67, 49, 51, 90, 52, 101, 67, 57, 62, 92, 62, 67, 65, 66, 47, 58, 57, 74, 49, 57, 41, 52, 89, 80, 53, 47, 60, 60, 55, 64, 60, 69, 72, 63, 72, 50, 65, 68, 63, 70, 72, 66, 54, 89, 82, 53, 76, 70, 77, 60, 58, 84, 56, 70, 71, 67, 56, 80, 50, 63, 78, 66, 74, 67, 40, 44, 55, 67, 97, 52, 62, 48, 65, 44, 59, 79, 69, 67, 83, 71, 58, 57, 71, 71, 51, 96, 62, 66, 69, 69, 53, 63, 50, 56, 36, 33, 85, 57, 71, 53, 60, 100, 84, 60, 68, 70, 57, 70, 44, 97, 71, 77, 49, 71, 65, 73, 63, 57, 77, 53, 56, 89, 52, 79, 57, 84, 57, 69, 70, 65, 63, 40, 96, 84, 53, 60, 65, 69, 53, 66, 67, 68, 53, 67, 67, 65, 76, 92, 55, 57, 85, 67, 55, 64, 66, 77, 82, 69, 78, 91, 62, 69, 57, 63, 66, 63, 74, 48, 54, 93, 61, 38, 69, 71, 64, 63, 58, 57, 70, 63, 89, 69, 57, 96, 76, 51, 66, 65, 70, 64, 53, 90, 66, 70, 87, 40, 119, 65, 66, 34, 95, 72, 52, 69, 64, 51, 64, 78, 93, 83, 74, 41, 47, 66, 73, 97, 77, 64, 67, 37, 37, 59, 78, 78, 65, 59, 78, 65, 77, 81, 56, 53, 61, 55, 88, 77, 53, 66, 85, 63, 57, 64, 44, 68, 38, 63, 61, 55, 70, 50, 55, 83, 85, 76, 66, 40, 59, 123, 72, 63, 65, 72, 57, 53, 59, 69, 65, 58, 93, 52, 70, 69, 53, 42, 58, 83, 45, 72, 50, 83, 40, 57, 39, 94, 48, 71, 54, 51, 63, 92, 60, 68, 53, 70, 44, 88, 38, 61, 68, 62, 61, 56, 58, 62, 80, 76, 76, 80, 50, 52, 51, 78, 55, 87, 95, 78, 83, 58, 75, 77, 59, 50, 58, 64, 66, 75, 56, 96, 92, 83, 62, 68, 68, 59, 68, 83, 56, 70, 75, 62, 58, 58, 70, 76, 54, 69, 63, 61, 38, 72, 83, 54, 59, 82, 65, 50, 58, 67, 57, 56, 64, 70, 55, 63, 80, 78, 61, 64, 48, 46, 73, 91, 57, 87, 71, 72, 62, 54, 50, 89, 113, 63, 67, 67, 56, 58, 50, 42, 74, 78, 103, 89, 58, 52, 65, 51, 73, 50, 73, 81, 77, 57, 71, 64, 74, 62, 67, 76, 62, 73, 81, 64, 60, 50, 65, 68, 95, 66, 70, 64, 62, 65, 83, 64, 60, 79, 53, 48, 40, 76, 66, 79, 60, 72, 61, 51, 77, 58, 66, 72, 63, 61, 62, 57, 60, 61, 62, 54, 90, 85, 44, 62, 58, 57, 89, 70, 69, 77, 64, 52, 57, 74, 71, 66, 51, 62, 67, 57, 57, 52, 79, 56, 74, 89, 82, 52, 61, 96, 76, 70, 77, 61, 57, 53, 54, 70, 77, 34, 78, 80, 70, 60, 59, 56, 83, 62, 47, 59, 58, 133, 91, 75, 47, 48, 79, 99, 60, 81, 63, 79, 67, 85, 67, 65, 79, 99, 61, 51, 65, 105, 72, 74, 60, 59, 47, 73, 66, 80, 62, 55, 78, 76, 57, 59, 60, 73, 66, 77, 75, 69, 60, 60, 58, 78, 45, 70, 79, 61, 61, 65, 62, 71, 63, 28, 71, 81, 47, 78, 87, 57, 62, 63, 51, 72, 58, 46, 64, 66, 125, 62, 52, 124, 83, 40, 69, 76, 59, 64, 67, 79, 54, 89, 64, 60, 81, 52, 78, 66, 48, 63, 69, 79, 64, 57, 46, 60, 50, 71, 81, 65, 59, 55, 98, 62, 51, 63, 73, 61, 71, 55, 50, 62, 85, 52, 53, 49, 65, 66, 82, 56, 77, 36, 60, 70, 64, 57, 55, 72, 73, 64, 84, 56, 69, 75, 71, 63, 50, 54, 80, 45, 59, 45, 65, 65, 54, 52, 71, 40, 61, 60, 96, 60, 51, 50, 71, 62, 74, 58, 74, 74, 73, 58, 59, 109, 65, 56, 40, 62, 72, 64, 51, 51, 62, 68, 64, 63, 72, 58, 34, 54, 57, 66, 69, 55, 70, 57, 55, 70, 83, 53, 59, 87, 47, 66, 66, 58, 47, 48, 45, 93, 59, 69, 65, 44, 64, 70, 101, 67, 65, 70, 91, 91, 79, 65, 63, 98, 55, 74, 55, 34, 98, 61, 50, 52, 56, 54, 60, 74, 69, 95, 52, 57, 66, 61, 82, 57, 62, 69, 75, 48, 49, 80, 49, 68, 53, 54, 81, 61, 66, 67, 64, 64, 62, 59, 88, 94, 54, 85, 50, 52, 41, 66, 64, 65, 59, 64, 62, 105, 61, 54, 74, 49, 75, 59, 86, 54, 50, 45, 78, 87, 83, 62, 54, 71, 71, 66, 101, 68, 105, 79, 52, 63, 73, 72, 76, 47, 78, 55, 65, 76, 85, 64, 63, 54, 84, 69, 64, 55, 46, 59, 84, 51, 62, 68, 69, 80, 64, 72, 71, 57, 65, 83, 67, 71, 70, 130, 64, 68, 41, 71, 76, 70, 81, 61, 49, 88, 69, 63, 56, 61, 52, 63, 66, 92, 60, 71, 66, 61, 59, 80, 51, 72, 85, 50, 81, 54, 65, 81, 87, 76, 75, 56, 72, 65, 51, 59, 72, 71, 63, 63, 99, 61, 86, 59, 96, 78, 43, 44, 54, 61, 78, 62, 44, 57, 49, 94, 73, 66, 48, 79, 56, 80, 66, 61, 42, 30, 60, 60, 63, 72, 70, 68, 84, 65, 46, 64, 49, 64, 77, 80, 74, 53, 87, 74, 73, 91, 48, 65, 66, 90, 62, 53, 64, 79, 71, 62, 69, 74, 69, 77, 71, 58, 41, 67, 60, 56, 133, 56, 46, 50, 70, 73, 56, 56, 131, 77, 52, 67, 72, 66, 63, 66, 58, 90, 76, 52, 67, 81, 77, 60, 82, 86, 57, 70, 57, 113, 90, 62, 72, 43, 51, 67, 88, 70, 82, 63, 63, 54, 53, 54, 46, 134, 82, 45, 74, 79, 49, 74, 57, 67, 81, 68, 73, 74, 63, 52, 79, 68, 64, 51, 55, 67, 84, 62, 49, 71, 68, 96, 59, 78, 52, 95, 55, 52, 82, 56, 48, 77, 42, 86, 60, 83, 60, 55, 47, 80, 65, 142, 73, 44, 74, 56, 60, 61, 58, 80, 79, 61, 47, 77, 93, 64, 61, 52, 50, 58, 105, 75, 69, 102, 54, 61, 65, 54, 58, 60, 57, 52, 59, 52, 61, 88, 90, 52, 95, 59, 70, 70, 49, 47, 72, 59, 76, 84, 49, 53, 70, 87, 48, 63, 67, 63, 68, 72, 90, 63, 71, 68, 47, 54, 72, 61, 86, 61, 70, 65, 75, 87, 59, 97, 63, 76, 88, 55, 58, 113, 54, 71, 115, 61, 70, 80, 63, 56, 55, 63, 81, 56, 69, 64, 65, 58, 73, 89, 59, 58, 51, 72, 49, 54, 66, 60, 56, 81, 71, 65, 60, 51, 48, 50, 45, 50, 87, 58, 72, 52, 69, 82, 67, 59, 78, 72, 62, 50, 80, 62, 45, 51, 57, 74, 44, 74, 63, 49, 69, 80, 73, 69, 65, 65, 76, 84, 61, 65, 61, 87, 45, 54, 67, 85, 70, 65, 79, 81, 62, 64, 61, 74, 56, 72, 56, 66, 67, 53, 58, 78, 58, 90, 58, 55, 44, 73, 42, 84, 57, 58, 58, 85, 74, 46, 66, 72, 63, 60, 78, 53, 71, 58, 66, 61, 68, 57, 53, 51, 56, 60, 57, 65, 54, 76, 83, 37, 64, 52, 54, 47, 74, 72, 54, 54, 67, 71, 75, 84, 59, 60, 98, 70, 63, 60, 72, 64, 77, 68, 66, 53, 60, 73, 63, 45, 63, 61, 74, 98, 75, 79, 61, 62, 70, 59, 78, 68, 53, 63, 60, 66, 68, 58, 54, 87, 59, 57, 56, 51, 68, 63, 85, 51, 51, 52, 74, 58, 76, 66, 89, 65, 42, 115, 66, 66, 54, 91, 50, 40, 54, 75, 72, 62, 72, 58, 58, 75, 86, 74, 78, 95, 95, 54, 56, 54, 73, 91, 70, 84, 59, 64, 63, 50, 73, 62, 72, 63, 68, 63, 73, 67, 75, 81, 73, 40, 70, 72, 74, 72, 65, 98, 54, 57, 50, 74, 74, 67, 57, 54, 94, 66, 75, 71, 71, 62, 49, 66, 66, 62, 87, 44, 72, 82, 46, 81, 62, 68, 57, 71, 63, 49, 52, 72, 56, 49, 49, 61, 68, 56, 53, 67, 45, 60, 37, 65, 52, 62, 49, 62, 100, 81, 72, 71, 87, 62, 68, 81, 77, 77, 61, 77, 58, 80, 81, 66, 71, 66, 66, 71, 52, 70, 64, 63, 45, 94, 88, 61, 58, 42, 60, 48, 58, 110, 67, 71, 67, 61, 56, 96, 92, 57, 92, 64, 49, 78, 71, 80, 73, 79, 60, 50, 78, 58, 59, 56, 75, 94, 71, 65, 97, 68, 67, 47, 56, 60, 106, 116, 56, 66, 60, 63, 58, 64, 71, 56, 44, 61, 55, 83, 69, 60, 55, 81, 95, 66, 81, 55, 69, 74, 57, 97, 59, 63, 72, 70, 62, 50, 48, 57, 63, 96, 53, 63, 55, 51, 84, 36, 59, 55, 51, 59, 70, 65, 57, 65, 33, 66, 56, 61, 121, 132, 63, 52, 50, 70, 63, 58, 52, 46, 48, 73, 46, 105, 87, 96, 64, 80, 58, 64, 47, 63, 63, 88, 74, 53, 62, 69, 60, 79, 60, 53, 68, 59, 75, 49, 47, 59, 77, 42, 80, 85, 69, 52, 55, 107, 45, 75, 68, 55, 79, 61, 54, 58, 71, 59, 127, 69, 58, 81, 73, 69, 74, 66, 73, 60, 55, 50, 64, 53, 44, 71, 50, 59, 80, 88, 91, 60, 109, 54, 61, 56, 60, 79, 73, 39, 66, 74, 65, 56, 59, 54, 71, 60, 51, 61, 93, 51, 61, 52, 66, 84, 63, 65, 85, 54, 55, 58, 112, 63, 59, 59, 61, 61, 65, 53, 56, 69, 48, 49, 47, 67, 63, 45, 56, 74, 54, 80, 54, 73, 66, 47, 67, 61, 81, 60, 65, 78, 54, 59, 64, 57, 74, 84, 71, 42, 69, 52, 45, 45, 71, 60, 65, 68, 82, 71, 76, 60, 97, 67, 60, 82, 58, 64, 73, 58, 84, 59, 73, 61, 70, 66, 50, 80, 80, 92, 67, 127, 50, 59, 74, 67, 64, 74, 69, 70, 67, 73, 65, 54, 82, 64, 61, 67, 91, 54, 55, 67, 42, 68, 55, 58, 48, 53, 60, 68, 93, 58, 112, 53, 65, 85, 49, 107, 61, 77, 56, 24, 96, 49, 68, 80, 52, 119, 50, 58, 79, 56, 70, 89, 97, 68, 59, 46, 47, 106, 65, 88, 88, 36, 62, 71, 64, 58, 64, 64, 61, 63, 56, 82, 60, 81, 67, 80, 84, 82, 60, 55, 75, 69, 68, 50, 49, 56, 60, 90, 59, 129, 62, 62, 50, 117, 52, 51, 76, 67, 54, 68, 73, 154, 88, 54, 54, 72, 76, 70, 58, 65, 66, 60, 70, 51, 79, 76, 73, 78, 76, 74, 123, 54, 53, 64, 66, 56, 65, 54, 52, 56, 52, 56, 62, 72, 57, 59, 48, 89, 68, 124, 59, 65, 106, 89, 68, 58, 71, 72, 85, 77, 58, 66, 63, 64, 55, 52, 59, 72, 54, 43, 56, 52, 53, 52, 80, 77, 44, 50, 66, 63, 66, 69, 108, 81, 59, 57, 69, 77, 64, 64, 69, 64, 53, 60, 85, 61, 58, 49, 49, 80, 82, 97, 75, 55, 63, 51, 80, 81, 102, 79, 49, 52, 84, 66, 52, 79, 81, 84, 57, 60, 69, 53, 63, 65, 96, 66, 60, 59, 56, 51, 46, 52, 61, 64, 61, 55, 60, 96, 72, 68, 58, 61, 77, 59, 60, 80, 49, 67, 62, 63, 46, 78, 57, 65, 65, 53, 75, 78, 45, 52, 39, 60, 40, 58, 72, 67, 67, 65, 76, 83, 84, 41, 69, 76, 76, 95, 62, 64, 47, 68, 63, 61, 57, 52, 67, 59, 63, 66, 58, 112, 51, 47, 64, 52, 77, 61, 59, 55, 101, 90, 62, 70, 63, 64, 49, 49, 83, 61, 77, 54, 65, 61, 75, 71, 55, 81, 97, 84, 65, 60, 68, 74, 76, 74, 77, 68, 63, 54, 86, 63, 58, 65, 58, 60, 45, 58, 83, 58, 68, 74, 67, 73, 53, 73, 54, 71, 66, 75, 50, 78, 74, 89, 74, 76, 56, 59, 52, 68, 79, 61, 54, 81, 53, 95, 61, 56, 57, 65, 58, 84, 48, 80, 65, 41, 65, 66, 46, 51, 61, 61, 58, 63, 84, 64, 101, 57, 71, 37, 78, 77, 88, 73, 52, 59, 46, 65, 43, 65, 57, 47, 63, 63, 69, 51, 78, 66, 53, 54, 71, 65, 75, 80, 58, 51, 78, 63, 63, 82, 106, 55, 74, 52, 71, 67, 58, 67, 58, 72, 67, 48, 66, 59, 67, 47, 50, 69, 107, 52, 53, 79, 65, 85, 65, 68, 120, 62, 59, 74, 61, 75, 67, 64, 89, 56, 62, 54, 66, 56, 57, 48, 67, 77, 82, 73, 62, 49, 58, 93, 71, 81, 65, 56, 69, 58, 72, 55, 81, 76, 70, 60, 58, 56, 104, 56, 89, 38, 109, 57, 76, 65, 52, 63, 97, 61, 50, 44, 77, 65, 70, 68, 90, 82, 47, 99, 54, 61, 56, 74, 62, 98, 72, 61, 86, 126, 69, 62, 52, 59, 49, 64, 84, 63, 72, 49, 77, 98, 71, 85, 51, 71, 48, 86, 62, 53, 44, 67, 66, 62, 89, 62, 85, 48, 64, 67, 39, 58, 49, 54, 60, 76, 63, 81, 71, 60, 67, 71, 47, 56, 65, 74, 61, 105, 68, 62, 98, 64, 56, 78, 71, 69, 92, 80, 77, 54, 76, 70, 47, 66, 81, 80, 66, 55, 68, 51, 84, 54, 72, 72, 53, 70, 49, 78, 67, 62, 65, 71, 60, 47, 78, 52, 50, 54, 57, 71, 69, 85, 53, 46, 72, 60, 63, 75, 70, 55, 69, 76, 65, 56, 45, 65, 46, 44, 70, 54, 70, 90, 52, 55, 117, 56, 60, 52, 51, 48, 51, 66, 60, 57, 60, 76, 48, 61, 58, 60, 55, 62, 65, 59, 61, 53, 88, 79, 61, 63, 51, 56, 62, 71, 67, 68, 61, 63, 59, 48, 63, 54, 60, 52, 61, 48, 59, 35, 65, 46, 61, 50, 56, 82, 89, 79, 68, 56, 66, 81, 62, 62, 62, 63, 76, 63, 53, 55, 81, 55, 65, 59, 67, 69, 60, 93, 61, 74, 86, 83, 70, 59, 70, 58, 52, 67, 65, 64, 85, 56, 64, 56, 45, 50, 76, 80, 51, 72, 42, 79, 64, 54, 54, 65, 51, 64, 81, 119, 63, 77, 60, 53, 50, 61, 76, 78, 80, 55, 58, 67, 72, 62, 67, 66, 56, 46, 54, 72, 56, 104, 48, 47, 51, 64, 58, 62, 54, 44, 84, 50, 68, 65, 61, 64, 79, 65, 71, 66, 76, 55, 69, 60, 78, 53, 55, 63, 86, 61, 58, 67, 50, 52, 60, 57, 51, 72, 58, 108, 99, 56, 63, 79, 49, 80, 95, 51, 62, 69, 113, 67, 55, 62, 67, 49, 53, 57, 67, 79, 79, 70, 97, 70, 57, 62, 67, 68, 97, 66, 81, 77, 52, 55, 55, 52, 67, 91, 66, 62, 60, 66, 58, 57, 98, 69, 56, 72, 81, 74, 80, 67, 78, 37, 67, 55, 71, 57, 63, 55, 58, 65, 53, 67, 50, 62, 55, 77, 71, 79, 56, 49, 67, 53, 71, 58, 58, 60, 59, 63, 72, 80, 59, 59, 49, 95, 49, 86, 85, 57, 62, 65, 65, 60, 69, 61, 87, 76, 75, 76, 63, 56, 61, 58, 64, 50, 53, 69, 79, 58, 68, 63, 61, 87, 61, 64, 64, 73, 63, 59, 52, 70, 83, 60, 71, 58, 51, 110, 71, 66, 87, 74, 55, 56, 71, 57, 63, 65, 59, 45, 58, 53, 64, 61, 53, 64, 70, 78, 85, 51, 76, 58, 73, 60, 81, 117, 59, 50, 49, 67, 61, 60, 63, 71, 88, 63, 68, 74, 116, 55, 62, 62, 76, 61, 68, 59, 52, 60, 76, 58, 77, 49, 74, 71, 78, 70, 69, 60, 50, 96, 62, 48, 69, 58, 78, 61, 63, 60, 58, 76, 67, 75, 93, 62, 92, 84, 82, 89, 49, 62, 53, 62, 69, 81, 43, 64, 71, 58, 77, 61, 65, 59, 52, 55, 65, 68, 65, 66, 105, 58, 92, 44, 117, 74, 48, 57, 75, 64, 44, 74, 55, 73, 65, 74, 77, 53, 64, 73, 58, 47, 63, 81, 66, 57, 59, 54, 61, 59, 72, 52, 72, 55, 95, 74, 50, 59, 70, 53, 59, 54, 76, 53, 66, 65, 68, 84, 56, 52, 65, 80, 56, 48, 64, 46, 61, 65, 61, 66, 62, 67, 57, 61, 51, 81, 61, 76, 47, 49, 59, 67, 71, 66, 62, 54, 66, 52, 65, 65, 60, 79, 78, 67, 72, 78, 59, 59, 62, 64, 89, 60, 62, 65, 64, 55, 66, 61, 55, 45, 43, 62, 76, 85, 72, 55, 72, 86, 49, 76, 69, 74, 76, 75, 54, 99, 54, 80, 82, 57, 64, 82, 76, 68, 71, 72, 77, 58, 80, 65, 72, 62, 72, 71, 53, 85, 54, 72, 63, 69, 63, 66, 62, 66, 59, 64, 91, 59, 69, 66, 57, 83, 67, 66, 65, 48, 70, 65, 57, 59, 56, 58, 69, 55, 61, 63, 64, 60, 59, 74, 54, 47, 72, 112, 45, 65, 54, 86, 61, 83, 114, 98, 68, 58, 44, 59, 67, 54, 64, 54, 69, 74, 65, 72, 70, 59, 139, 55, 69, 103, 73, 85, 64, 60, 63, 83, 93, 50, 91, 86, 62, 64, 64, 101, 59, 71, 46, 64, 64, 57, 36, 80, 71, 46, 70, 45, 59, 69, 80, 48, 81, 52, 84, 58, 68, 59, 57, 57, 66, 50, 72, 51, 76, 53, 44, 47, 91, 60, 61, 63, 72, 58, 56, 71, 51, 50, 66, 58, 59, 52, 62, 78, 57, 46, 91, 81, 86, 56, 52, 60, 63, 58, 75, 76, 76, 89, 62, 63, 50, 53, 62, 70, 80, 72, 65, 82, 72, 115, 65, 62, 65, 47, 65, 52, 73, 66, 65, 74, 50, 67, 72, 60, 84, 53, 63, 68, 73, 86, 50, 81, 77, 52, 48, 49, 61, 61, 51, 62, 55, 90, 49, 62, 68, 68, 70, 51, 59, 42, 67, 65, 48, 57, 52, 72, 95, 63, 66, 64, 61, 88, 76, 60, 61, 70, 61, 59, 61, 67, 71, 56, 57, 64, 55, 45, 113, 71, 60, 68, 85, 61, 55, 90, 67, 73, 43, 60, 79, 87, 64, 68, 56, 61, 63, 75, 60, 62, 49, 62, 44, 67, 51, 100, 87, 78, 65, 88, 68, 58, 63, 58, 63, 59, 81, 74, 59, 66, 58, 58, 62, 79, 73, 70, 57, 83, 89, 68, 58, 59, 52, 71, 80, 48, 64, 56, 69, 83, 63, 63, 48, 46, 61, 43, 61, 65, 57, 53, 75, 59, 57, 70, 56, 83, 46, 50, 69, 43, 50, 68, 54, 52, 61, 93, 64, 127, 51, 78, 53, 59, 68, 68, 82, 69, 77, 65, 49, 74, 64, 112, 66, 52, 83, 67, 63, 54, 58, 66, 83, 71, 92, 56, 69, 58, 62, 65, 61, 65, 68, 63, 56, 74, 72, 92, 73, 120, 57, 67, 72, 56, 52, 55, 51, 86, 94, 72, 54, 60, 54, 58, 53, 59, 64, 66, 63, 64, 55, 65, 72, 62, 60, 68, 82, 75, 58, 59, 51, 77, 69, 58, 70, 64, 61, 68, 66, 70, 64, 71, 56, 62, 63, 58, 53, 60, 60, 105, 55, 78, 61, 46, 59, 62, 69, 62, 64, 57, 61, 66, 53, 58, 65, 76, 51, 60, 78, 71, 69, 78, 76, 58, 61, 56, 78, 43, 91, 69, 66, 56, 77, 88, 71, 53, 60, 65, 55, 68, 63, 58, 61, 45, 108, 57, 64, 75, 59, 57, 54, 65, 93, 95, 53, 76, 63, 53, 65, 73, 61, 61, 75, 58, 112, 53, 53, 55, 62, 62, 68, 63, 54, 67, 60, 44, 60, 64, 91, 58, 62, 72, 68, 50, 76, 64, 94, 131, 94, 63, 66, 66, 74, 50, 63, 60, 90, 73, 45, 62, 53, 64, 76, 48, 75, 74, 76, 65, 68, 82, 57, 52, 71, 88, 82, 90, 73, 95, 70, 56, 46, 71, 49, 66, 77, 79, 45, 72, 67, 73, 60, 44, 74, 56, 71, 65, 60, 67, 84, 57, 54, 56, 52, 57, 61, 88, 54, 58, 54, 78, 60, 103, 60, 64, 85, 59, 55, 59, 80, 66, 58, 50, 66, 71, 60, 68, 62, 57, 75, 73, 70, 52, 86, 57, 119, 74, 91, 69, 85, 147, 58, 77, 56, 71, 54, 56, 67, 61, 74, 87, 89, 50, 64, 50, 58, 52, 51, 68, 82, 42, 63, 53, 62, 64, 49, 67, 48, 67, 51, 68, 101, 101, 60, 59, 55, 72, 63, 77, 80, 78, 56, 67, 68, 57, 88, 48, 122, 100, 55, 69, 57, 67, 70, 74, 68, 57, 57, 105, 96, 51, 50, 67, 56, 91, 80, 116, 59, 55, 65, 67, 57, 77, 111, 68, 45, 58, 66, 65, 48, 65, 109, 42, 76, 67, 73, 67, 67, 55, 53, 52, 58, 43, 39, 62, 63, 52, 40, 50, 54, 66, 77, 60, 64, 51, 107, 74, 71, 54, 91, 70, 65, 68, 53, 58, 70, 94, 70, 63, 70, 87, 69, 114, 73, 54, 67, 92, 53, 63, 65, 109, 68, 68, 48, 67, 58, 53, 100, 45, 56, 83, 53, 57, 84, 55, 50, 47, 72, 51, 57, 56, 83, 60, 41, 36, 70, 83, 46, 53, 63, 56, 58, 80, 69, 54, 45, 62, 70, 69, 65, 79, 53, 82, 59, 89, 72, 60, 70, 71, 79, 64, 69, 47, 80, 49, 58, 72, 84, 50, 68, 68, 67, 74, 60, 52, 70, 45, 76, 53, 50, 78, 95, 63, 77, 56, 88, 76, 70, 79, 71, 59, 60, 53, 82, 63, 64, 53, 70, 61, 76, 72, 65, 81, 82, 60, 45, 75, 85, 66, 47, 63, 51, 63, 66, 56, 44, 52, 62, 57, 52, 58, 52, 56, 88, 40, 62, 62, 57, 69, 73, 60, 55, 63, 82, 26, 64, 56, 48, 85, 74, 81, 90, 67, 86, 67, 82, 76, 75, 55, 75, 59, 51, 73, 62, 60, 66, 44, 42, 55, 71, 66, 66, 48, 68, 68, 59, 78, 64, 59, 59, 61, 55, 64, 79, 83, 69, 52, 97, 66, 83, 58, 104, 70, 66, 78, 63, 44, 78, 74, 67, 65, 50, 68, 60, 90, 57, 63, 68, 69, 161, 64, 75, 73, 72, 77, 80, 62, 60, 56, 60, 71, 74, 57, 64, 61, 71, 92, 44, 82, 65, 56, 55, 66, 53, 89, 47, 65, 61, 60, 68, 64, 79, 64, 70, 90, 51, 67, 48, 67, 82, 62, 62, 54, 58, 56, 68, 79, 49, 67, 63, 83, 57, 51, 70, 80, 49, 57, 46, 61, 60, 75, 57, 84, 68, 50, 69, 65, 79, 71, 63, 81, 61, 66, 57, 78, 69, 78, 51, 84, 61, 89, 47, 55, 83, 67, 80, 82, 78, 66, 66, 44, 72, 47, 64, 38, 58, 69, 61, 62, 54, 40, 43, 72, 78, 47, 68, 53, 89, 50, 74, 55, 56, 70, 54, 67, 49, 85, 41, 73, 57, 44, 64, 91, 76, 53, 68, 96, 77, 57, 65, 66, 79, 82, 70, 89, 48, 59, 49, 73, 71, 61, 79, 74, 46, 50, 83, 53, 57, 65, 49, 52, 48, 73, 48, 53, 80, 63, 77, 58, 78, 99, 90, 77, 63, 62, 49, 70, 66, 93, 48, 74, 68, 41, 61, 85, 49, 45, 78, 48, 69, 63, 74, 72, 72, 73, 59, 41, 73, 48, 64, 75, 72, 43, 88, 60, 46, 71, 77, 105, 63, 47, 71, 68, 65, 73, 56, 66, 41, 99, 47, 39, 46, 76, 54, 56, 42, 87, 52, 43, 58, 55, 97, 71, 56, 55, 50, 67, 53, 56, 66, 60, 70, 84, 60, 46, 61, 49, 65, 59, 56, 72, 97, 55, 81, 72, 63, 61, 71, 71, 47, 63, 43, 62, 60, 50, 83, 61, 84, 57, 84, 46, 57, 67, 61, 63, 60, 67, 64, 68, 47, 83, 87, 59, 67, 61, 42, 69, 47, 70, 88, 48, 65, 59, 136, 90, 76, 59, 57, 75, 53, 67, 79, 62, 53, 53, 48, 77, 49, 73, 47, 81, 69, 70, 79, 62, 52, 56, 67, 60, 67, 50, 48, 64, 38, 57, 68, 64, 53, 52, 80, 52, 97, 58, 47, 64, 56, 94, 76, 80, 72, 94, 48, 43, 65, 68, 69, 63, 53, 70, 66, 114, 53, 72, 49, 87, 85, 86, 49, 104, 67, 41, 84, 62, 71, 82, 68, 99, 58, 91, 65, 62, 70, 56, 66, 66, 67, 36, 78, 66, 50, 69, 66, 61, 146, 59, 53, 60, 73, 52, 77, 81, 68, 78, 76, 73, 71, 58, 70, 63, 70, 85, 58, 62, 79, 65, 68, 70, 56, 77, 84, 65, 66, 61, 68, 60, 77, 72, 63, 56, 61, 65, 70, 61, 41, 59, 74, 57, 69, 77, 65, 53, 57, 62, 59, 54, 87, 82, 67, 45, 68, 64, 60, 82, 89, 64, 47, 50, 64, 60, 61, 47, 50, 69, 65, 57, 64, 56, 73, 57, 70, 86, 56, 75, 85, 96, 84, 68, 49, 47, 82, 97, 126, 60, 74, 80, 59, 85, 47, 75, 56, 57, 66, 70, 57, 43, 57, 72, 86, 62, 58, 75, 50, 56, 49, 70, 62, 73, 66, 77, 64, 116, 66, 75, 58, 64, 57, 74, 80, 71, 72, 89, 58, 77, 67, 60, 55, 91, 90, 64, 69, 67, 68, 59, 66, 81, 64, 63, 75, 61, 86, 80, 69, 85, 61, 84, 52, 60, 57, 77, 68, 82, 77, 67, 85, 62, 46, 69, 65, 59, 90, 68, 59, 75, 55, 74, 58, 50, 32, 104, 69, 49, 73, 99, 67, 61, 65, 77, 71, 61, 89, 69, 76, 70, 55, 71, 55, 63, 68, 81, 52, 71, 100, 83, 56, 96, 57, 51, 45, 75, 60, 52, 77, 58, 69, 52, 74, 62, 74, 87, 60, 80, 62, 79, 61, 55, 78, 46, 52, 61, 44, 54, 94, 61, 47, 95, 62, 60, 63, 64, 69, 67, 78, 57, 59, 66, 76, 61, 57, 70, 66, 65, 73, 87, 35, 47, 79, 55, 58, 46, 79, 56, 48, 67, 38, 64, 78, 100, 67, 65, 79, 71, 59, 55, 35, 74, 52, 53, 61, 65, 67, 45, 60, 129, 61, 87, 80, 42, 97, 62, 67, 101, 74, 50, 60, 68, 61, 50, 81, 42, 79, 59, 67, 82, 44, 65, 54, 65, 78, 90, 58, 71, 49, 49, 82, 63, 59, 62, 53, 61, 48, 61, 69, 104, 59, 68, 69, 58, 118, 51, 58, 79, 39, 80, 69, 58, 60, 63, 58, 67, 70, 65, 71, 47, 69, 71, 67, 70, 52, 73, 50, 60, 75, 71, 48, 53, 70, 81, 107, 80, 67, 67, 68, 54, 79, 41, 64, 73, 60, 88, 74, 49, 71, 69, 105, 47, 71, 99, 57, 109, 41, 65, 81, 66, 78, 72, 81, 56, 57, 61, 62, 60, 63, 60, 55, 75, 57, 54, 55, 83, 67, 67, 69, 71, 61, 44, 61, 74, 57, 77, 67, 43, 80, 82, 53, 82, 53, 74, 69, 72, 74, 63, 89, 54, 57, 82, 101, 60, 63, 55, 61, 65, 75, 61, 78, 52, 60, 63, 74, 78, 60, 80, 72, 75, 57, 60, 50, 62, 90, 50, 73, 54, 54, 88, 57, 75, 66, 60, 98, 42, 63, 64, 49, 70, 70, 67, 59, 82, 56, 69, 60, 76, 68, 73, 101, 58, 64, 46, 87, 48, 79, 38, 52, 79, 64, 85, 115, 53, 57, 50, 77, 61, 60, 50, 61, 59, 64, 61, 67, 72, 55, 108, 75, 73, 119, 67, 74, 80, 71, 65, 66, 48, 78, 58, 85, 70, 61, 67, 80, 69, 53, 60, 55, 85, 55, 66, 63, 55, 65, 76, 67, 52, 64, 68, 69, 57, 59, 59, 55, 50, 67, 58, 69, 77, 53, 63, 83, 59, 72, 77, 63, 62, 48, 64, 70, 52, 84, 49, 57, 59, 57, 51, 49, 59, 116, 61, 30, 64, 70, 75, 76, 76, 68, 53, 50, 49, 58, 57, 66, 55, 92, 119, 51, 60, 49, 131, 89, 46, 76, 40, 81, 49, 48, 78, 69, 64, 61, 58, 35, 48, 69, 54, 108, 67, 67, 70, 77, 50, 105, 76, 45, 69, 61, 60, 104, 53, 48, 75, 75, 56, 66, 88, 48, 63, 73, 60, 53, 46, 57, 98, 59, 76, 69, 71, 56, 72, 65, 71, 56, 51, 58, 86, 48, 95, 76, 74, 74, 57, 63, 77, 88, 68, 64, 60, 57, 58, 62, 74, 72, 50, 60, 72, 65, 87, 79, 59, 47, 100, 89, 54, 69, 63, 79, 65, 71, 86, 39, 42, 73, 67, 59, 51, 65, 88, 54, 49, 62, 60, 44, 85, 54, 61, 72, 52, 56, 78, 70, 67, 85, 39, 57, 69, 57, 44, 89, 64, 48, 41, 67, 48, 75, 67, 60, 56, 73, 69, 50, 51, 75, 78, 97, 56, 59, 42, 60, 44, 71, 53, 63, 68, 97, 86, 67, 48, 64, 48, 78, 121, 64, 57, 83, 87, 65, 58, 78, 56, 69, 75, 63, 79, 61, 58, 72, 56, 79, 70, 67, 57, 57, 62, 64, 48, 64, 73, 69, 53, 80, 59, 73, 60, 59, 60, 38, 64, 69, 74, 59, 61, 60, 74, 63, 62, 55, 72, 55, 86, 65, 53, 81, 67, 59, 65, 71, 60, 61, 50, 59, 70, 86, 67, 67, 77, 78, 52, 69, 84, 57, 71, 88, 123, 32, 45, 68, 76, 70, 62, 70, 56, 73, 67, 90, 101, 46, 50, 55, 46, 62, 74, 64, 59, 62, 41, 72, 62, 64, 72, 78, 68, 71, 67, 41, 69, 51, 72, 59, 61, 87, 59, 55, 66, 88, 54, 59, 48, 67, 62, 64, 68, 73, 41, 104, 64, 60, 139, 86, 67, 76, 62, 73, 83, 53, 66, 120, 60, 53, 42, 64, 57, 49, 72, 49, 63, 57, 60, 52, 53, 60, 70, 92, 65, 50, 60, 55, 64, 68, 75, 62, 77, 46, 74, 46, 63, 77, 44, 56, 47, 102, 51, 61, 50, 66, 74, 66, 67, 62, 72, 59, 68, 104, 104, 75, 64, 71, 46, 56, 54, 95, 50, 60, 47, 60, 70, 43, 80, 62, 59, 87, 46, 46, 52, 56, 73, 79, 62, 67, 55, 85, 52, 81, 62, 56, 57, 61, 63, 92, 77, 60, 65, 55, 52, 55, 67, 69, 46, 61, 56, 48, 58, 46, 56, 53, 74, 93, 51, 86, 80, 100, 69, 82, 88, 69, 71, 54, 50, 79, 66, 73, 56, 56, 73, 68, 77, 54, 42, 64, 77, 53, 71, 52, 66, 56, 64, 60, 71, 73, 54, 59, 89, 67, 88, 63, 48, 48, 85, 60, 61, 74, 57, 74, 58, 73, 34, 53, 79, 66, 60, 47, 70, 50, 80, 63, 50, 58, 72, 60, 83, 46, 76, 77, 71, 70, 97, 84, 64, 70, 43, 53, 85, 91, 93, 47, 64, 65, 74, 79, 41, 58, 53, 52, 62, 77, 57, 67, 50, 63, 62, 91, 58, 66, 59, 60, 86, 56, 90, 76, 71, 58, 85, 71, 58, 68, 62, 57, 71, 64, 78, 56, 61, 58, 59, 76, 100, 81, 45, 72, 51, 51, 53, 63, 97, 76, 53, 60, 66, 59, 55, 62, 66, 63, 59, 49, 52, 88, 64, 62, 70, 50, 46, 68, 63, 54, 109, 64, 67, 71, 48, 76, 59, 60, 51, 51, 60, 57, 67, 66, 67, 99, 89, 66, 58, 58, 41, 82, 72, 70, 64, 75, 73, 70, 52, 68, 77, 66, 61, 60, 58, 85, 54, 58, 69, 76, 58, 69, 56, 64, 67, 71, 58, 59, 73, 53, 55, 71, 70, 70, 75, 65, 59, 57, 56, 54, 62, 54, 59, 61, 49, 84, 43, 59, 58, 40, 55, 56, 50, 62, 85, 67, 52, 47, 86, 62, 71, 67, 54, 65, 84, 54, 68, 67, 89, 112, 67, 77, 98, 70, 52, 75, 68, 69, 136, 40, 64, 57, 53, 93, 67, 76, 53, 73, 73, 60, 113, 55, 49, 76, 43, 59, 54, 48, 70, 76, 95, 41, 63, 75, 80, 50, 47, 51, 54, 77, 99, 49, 49, 52, 62, 60, 72, 68, 44, 68, 38, 68, 64, 59, 58, 83, 52, 47, 65, 50, 68, 46, 89, 55, 106, 64, 96, 58, 48, 98, 55, 58, 63, 71, 64, 49, 82, 55, 64, 99, 60, 102, 74, 56, 67, 51, 87, 83, 72, 76, 62, 54, 67, 67, 70, 93, 70, 59, 67, 73, 59, 70, 50, 69, 80, 57, 58, 77, 59, 51, 70, 56, 72, 59, 65, 81, 70, 67, 63, 79, 79, 69, 65, 75, 52, 72, 83, 48, 90, 61, 98, 61, 50, 58, 85, 62, 84, 50, 64, 55, 68, 64, 69, 48, 49, 61, 57, 51, 70, 58, 57, 77, 74, 58, 61, 89, 64, 56, 53, 68, 73, 65, 60, 61, 66, 54, 71, 73, 58, 70, 47, 68, 72, 67, 63, 49, 53, 59, 61, 75, 88, 54, 71, 66, 58, 73, 61, 61, 65, 61, 51, 54, 67, 65, 69, 43, 57, 73, 60, 77, 69, 70, 60, 61, 43, 51, 63, 63, 66, 52, 69, 62, 91, 62, 60, 65, 59, 65, 57, 61, 73, 61, 73, 55, 56, 63, 60, 165, 76, 85, 66, 67, 66, 69, 53, 56, 59, 66, 57, 66, 77, 67, 98, 65, 67, 63, 57, 63, 57, 72, 75, 57, 60, 62, 70, 67, 58, 59, 79, 68, 99, 58, 68, 62, 80, 63, 74, 92, 51, 78, 72, 60, 56, 41, 82, 131, 67, 62, 63, 62, 86, 57, 62, 72, 58, 78, 50, 102, 73, 67, 68, 51, 59, 63, 59, 58, 67, 73, 71, 69, 75, 61, 58, 56, 51, 71, 76, 65, 54, 62, 57, 54, 44, 66, 71, 56, 57, 62, 54, 65, 75, 66, 50, 81, 77, 58, 60, 54, 59, 67, 66, 49, 63, 53, 64, 61, 64, 81, 69, 61, 68, 87, 65, 68, 73, 49, 65, 50, 59, 79, 75, 54, 76, 63, 81, 55, 55, 58, 60, 74, 68, 64, 58, 55, 47, 73, 63, 67, 77, 64, 58, 52, 71, 66, 57, 64, 62, 71, 77, 92, 80, 62, 58, 59, 71, 70, 62, 59, 77, 68, 67, 80, 65, 65, 73, 51, 60, 67, 78, 65, 75, 71, 63, 69, 51, 60, 58, 64, 50, 71, 65, 83, 65, 60, 52, 67, 54, 63, 59, 59, 74, 59, 80, 67, 59, 65, 49, 63, 67, 71, 71, 64, 81, 80, 74, 57, 79, 65, 72, 96, 75, 108, 79, 57, 76, 94, 86, 67, 67, 59, 90, 76, 64, 49, 68, 57, 59, 75, 73, 85, 54, 53, 47, 67, 58, 77, 69, 71, 64, 48, 63, 80, 49, 49, 76, 90, 74, 53, 58, 50, 62, 52, 75, 67, 68, 50, 66, 68, 63, 72, 83, 84, 45, 59, 87, 56, 42, 64, 96, 51, 54, 60, 61, 52, 58, 61, 62, 56, 59, 71, 46, 64, 62, 76, 85, 83, 57, 76, 69, 63, 59, 60, 66, 63, 108, 61, 75, 78, 69, 91, 46, 58, 76, 68, 80, 71, 67, 59, 60, 65, 88, 65, 70, 82, 65, 63, 69, 63, 81, 56, 71, 41, 89, 63, 62, 71, 63, 69, 78, 59, 69, 57, 70, 73, 88, 66, 58, 68, 82, 59, 71, 71, 60, 65, 53, 66, 69, 57, 51, 63, 62, 60, 53, 70, 74, 69, 63, 63, 51, 57, 68, 52, 64, 53, 56, 61, 62, 64, 58, 70, 60, 55, 59, 63, 75, 61, 54, 65, 72, 55, 77, 73, 71, 66, 78, 81, 60, 70, 60, 71, 63, 80, 66, 59, 58, 61, 63, 56, 42, 80, 55, 67, 55, 70, 54, 77, 65, 79, 76, 53, 68, 70, 77, 107, 71, 48, 77, 44, 82, 63, 55, 77, 59, 62, 82, 63, 66, 90, 69, 76, 80, 72, 48, 56, 59, 47, 60, 55, 90, 87, 53, 56, 55, 55, 54, 133, 52, 101, 63, 65, 53, 68, 68, 56, 53, 68, 66, 53, 61, 75, 54, 65, 58, 60, 48, 61, 70, 78, 112, 70, 67, 66, 91, 54, 62, 58, 79, 64, 59, 53, 70, 73, 65, 66, 55, 67, 77, 56, 65, 68, 57, 81, 73, 56, 49, 68, 77, 58, 57, 81, 67, 76, 70, 51, 55, 70, 66, 72, 71, 80, 92, 66, 54, 65, 79, 56, 61, 73, 57, 63, 59, 54, 54, 63, 57, 69, 58, 65, 53, 73, 53, 63, 58, 62, 76, 79, 56, 69, 63, 62, 55, 74, 73, 82, 84, 70, 79, 50, 85, 73, 51, 65, 68, 57, 60, 73, 55, 39, 69, 92, 62, 55, 114, 49, 62, 47, 54, 67, 67, 68, 74, 57, 76, 64, 71, 48, 56, 46, 59, 117, 69, 38, 53, 62, 74, 63, 44, 62, 70, 59, 65, 62, 56, 62, 69, 68, 58, 68, 149, 62, 61, 56, 72, 61, 44, 66, 50, 96, 63, 60, 86, 75, 55, 80, 98, 57, 54, 58, 72, 53, 46, 79, 66, 66, 66, 67, 62, 55, 45, 66, 54, 78, 50, 56, 55, 64, 62, 83, 64, 74, 44, 79, 52, 74, 51, 58, 57, 104, 62, 64, 70, 82, 69, 75, 70, 61, 65, 73, 60, 70, 76, 49, 73, 59, 68, 78, 70, 56, 60, 64, 48, 63, 60, 63, 66, 70, 55, 53, 65, 57, 74, 53, 69, 61, 70, 62, 55, 64, 56, 63, 58, 54, 61, 65, 58, 52, 106, 76, 53, 104, 62, 66, 58, 61, 80, 56, 73, 65, 66, 73, 54, 71, 80, 99, 60, 64, 58, 67, 79, 44, 57, 65, 77, 78, 84, 54, 73, 75, 59, 71, 55, 69, 59, 67, 57, 51, 52, 75, 52, 64, 50, 60, 56, 57, 68, 73, 58, 58, 61, 65, 65, 61, 61, 66, 49, 152, 59, 62, 42, 71, 74, 59, 66, 91, 55, 69, 49, 62, 57, 71, 72, 46, 67, 67, 64, 85, 67, 54, 91, 47, 64, 55, 61, 70, 65, 73, 61, 55, 84, 67, 48, 81, 53, 61, 54, 69, 96, 57, 63, 63, 110, 46, 73, 60, 73, 59, 91, 50, 78, 73, 99, 52, 61, 65, 53, 65, 53, 60, 57, 64, 67, 74, 98, 63, 70, 63, 58, 76, 56, 76, 49, 63, 47, 69, 69, 50, 67, 49, 76, 65, 70, 92, 60, 56, 81, 64, 70, 59, 71, 54, 116, 64, 60, 68, 55, 66, 64, 65, 55, 63, 70, 59, 57, 59, 101, 46, 61, 78, 93, 68, 84, 90, 108, 75, 99, 55, 83, 55, 109, 75, 61, 74, 65, 63, 60, 90, 90, 71, 69, 53, 87, 59, 70, 63, 63, 57, 78, 68, 87, 58, 50, 50, 80, 50, 74, 58, 64, 61, 66, 68, 60, 59, 92, 61, 47, 90, 66, 60, 69, 58, 69, 81, 66, 61, 57, 69, 85, 71, 73, 59, 54, 51, 66, 61, 51, 58, 71, 80, 81, 159, 52, 61, 70, 63, 72, 56, 61, 72, 103, 52, 52, 61, 51, 70, 67, 115, 85, 62, 58, 63, 55, 61, 71, 61, 73, 45, 73, 97, 92, 59, 50, 77, 67, 62, 56, 94, 57, 66, 99, 57, 58, 71, 72, 85, 83, 88, 58, 63, 85, 48, 63, 62, 74, 52, 84, 81, 51, 71, 52, 67, 65, 59, 83, 75, 81, 74, 40, 83, 54, 77, 66, 67, 57, 49, 67, 49, 68, 61, 59, 66, 64, 54, 47, 58, 64, 81, 63, 56, 61, 58, 62, 66, 52, 49, 68, 74, 70, 77, 65, 55, 74, 78, 76, 62, 56, 50, 68, 79, 60, 78, 70, 66, 66, 50, 67, 80, 62, 55, 80, 85, 50, 71, 157, 54, 83, 70, 68, 41, 144, 81, 88, 46, 81, 78, 51, 86, 59, 74, 87, 70, 55, 79, 85, 61, 77, 61, 67, 64, 65, 71, 110, 62, 51, 69, 45, 73, 66, 90, 53, 64, 69, 54, 52, 62, 59, 59, 70, 60, 51, 60, 61, 57, 66, 74, 72, 57, 66, 57, 76, 67, 55, 62, 73, 56, 75, 49, 68, 66, 76, 67, 79, 70, 63, 90, 70, 50, 74, 77, 80, 48, 72, 61, 62, 60, 71, 61, 62, 68, 66, 63, 59, 62, 69, 57, 60, 63, 62, 59, 62, 59, 58, 116, 80, 55, 58, 52, 67, 68, 79, 61, 55, 84, 52, 75, 81, 69, 60, 71, 66, 63, 83, 54, 68, 74, 76, 75, 69, 59, 72, 48, 72, 62, 56, 73, 55, 65, 54, 69, 64, 73, 102, 48, 51, 70, 52, 68, 61, 86, 45, 78, 68, 76, 63, 73, 81, 65, 60, 50, 45, 61, 52, 67, 67, 71, 47, 64, 76, 52, 69, 71, 52, 66, 72, 55, 62, 77, 47, 59, 63, 55, 108, 60, 64, 63, 58, 58, 79, 67, 54, 37, 65, 59, 54, 81, 66, 53, 62, 54, 52, 56, 76, 67, 46, 73, 59, 56, 63, 69, 66, 56, 58, 61, 66, 62, 87, 80, 71, 72, 62, 57, 55, 76, 89, 64, 43, 79, 41, 66, 56, 57, 57, 57, 53, 67, 52, 56, 69, 73, 62, 60, 53, 68, 65, 61, 49, 48, 59, 65, 67, 63, 72, 47, 65, 49, 59, 69, 58, 67, 61, 79, 62, 77, 61, 66, 59, 65, 64, 58, 66, 68, 74, 60, 73, 49, 62, 65, 56, 58, 56, 65, 66, 56, 78, 69, 62, 66, 47, 73, 62, 54, 53, 60, 63, 47, 77, 56, 63, 58, 69, 67, 63, 57, 56, 69, 79, 48, 58, 52, 54, 73, 85, 83, 65, 50, 63, 64, 71, 97, 71, 45, 76, 70, 74, 59, 56, 65, 72, 76, 74, 87, 56, 77, 69, 65, 56, 56, 74, 60, 71, 63, 56, 47, 73, 60, 54, 53, 53, 55, 70, 93, 62, 63, 55, 88, 54, 65, 57, 60, 74, 105, 58, 55, 66, 42, 55, 65, 71, 56, 72, 120, 78, 61, 56, 72, 79, 52, 68, 66, 58, 55, 67, 55, 53, 90, 56, 70, 64, 49, 71, 52, 53, 63, 60, 50, 72, 55, 59, 47, 92, 146, 70, 60, 61, 58, 51, 43, 90, 58, 75, 67, 59, 71, 78, 52, 86, 65, 92, 66, 60, 67, 95, 65, 62, 66, 111, 82, 61, 59, 55, 55, 62, 62, 56, 50, 92, 100, 76, 63, 79, 85, 60, 76, 58, 90, 52, 52, 60, 63, 61, 57, 77, 52, 71, 49, 62, 50, 66, 61, 61, 74, 49, 35, 49, 45, 70, 56, 66, 61, 87, 57, 69, 91, 81, 78, 68, 60, 55, 85, 96, 74, 55, 68, 62, 67, 77, 67, 63, 85, 82, 52, 61, 79, 60, 74, 58, 63, 67, 59, 47, 74, 48, 59, 97, 59, 59, 77, 61, 68, 48, 67, 58, 49, 60, 57, 53, 67, 70, 50, 68, 56, 62, 67, 78, 76, 63, 79, 68, 44, 73, 62, 49, 60, 100, 58, 66, 56, 63, 54, 51, 62, 65, 65, 61, 69, 61, 62, 74, 63, 64, 54, 64, 61, 66, 52, 54, 60, 73, 81, 62, 66, 63, 61, 91, 66, 48, 69, 71, 65, 84, 59, 77, 92, 53, 62, 48, 68, 78, 69, 69, 68, 83, 62, 74, 79, 57, 50, 89, 58, 53, 49, 69, 45, 72, 68, 66, 59, 60, 46, 86, 63, 46, 72, 68, 66, 80, 55, 68, 79, 89, 87, 60, 55, 55, 58, 67, 63, 65, 63, 48, 52, 70, 59, 65, 56, 60, 53, 67, 76, 74, 60, 58, 51, 71, 65, 86, 47, 56, 67, 60, 63, 86, 80, 63, 56, 63, 76, 55, 70, 77, 72, 77, 64, 61, 57, 62, 54, 57, 58, 81, 51, 57, 44, 81, 76, 159, 68, 96, 51, 69, 59, 52, 65, 59, 74, 53, 67, 81, 60, 60, 79, 62, 73, 69, 44, 72, 62, 81, 57, 59, 80, 79, 59, 83, 60, 55, 46, 55, 65, 60, 46, 98, 61, 61, 52, 64, 87, 64, 72, 88, 57, 72, 75, 74, 69, 58, 79, 65, 63, 38, 65, 63, 52, 54, 59, 70, 77, 116, 55, 46, 62, 43, 55, 54, 75, 83, 67, 62, 52, 69, 62, 75, 70, 101, 62, 53, 58, 64, 65, 47, 53, 65, 66, 47, 67, 44, 56, 56, 73, 78, 74, 70, 61, 46, 54, 70, 47, 62, 81, 61, 71, 66, 51, 49, 65, 98, 73, 71, 74, 84, 36, 113, 62, 101, 63, 60, 66, 89, 76, 58, 54, 61, 65, 92, 54, 55, 70, 65, 58, 75, 69, 62, 76, 68, 57, 56, 62, 96, 68, 71, 53, 65, 61, 52, 86, 58, 67, 53, 67, 72, 66, 53, 64, 60, 81, 88, 49, 81, 52, 58, 72, 64, 65, 61, 61, 60, 83, 77, 69, 93, 59, 65, 55, 67, 58, 104, 63, 70, 59, 54, 52, 109, 67, 58, 77, 61, 51, 98, 57, 63, 65, 39, 80, 44, 74, 67, 89, 76, 73, 60, 67, 51, 62, 68, 63, 60, 113, 51, 75, 86, 56, 63, 67, 63, 66, 64, 87, 47, 66, 74, 50, 70, 65, 57, 86, 71, 52, 68, 55, 59, 59, 60, 75, 54, 105, 74, 64, 71, 68, 62, 55, 78, 63, 64, 68, 71, 73, 66, 75, 54, 52, 67, 62, 69, 89, 69, 77, 55, 55, 91, 63, 58, 53, 58, 61, 80, 68, 85, 72, 52, 59, 47, 73, 80, 66, 47, 57, 72, 63, 109, 75, 75, 66, 71, 64, 65, 66, 57, 54, 56, 79, 56, 69, 63, 61, 57, 87, 74, 89, 56, 78, 64, 55, 50, 70, 65, 106, 70, 60, 67, 64, 60, 92, 66, 70, 77, 48, 68, 50, 69, 63, 51, 47, 75, 97, 49, 54, 69, 52, 84, 61, 65, 53, 80, 65, 83, 82, 66, 49, 121, 63, 93, 61, 112, 51, 89, 52, 50, 57, 53, 69, 57, 101, 58, 61, 88, 54, 76, 57, 60, 148, 67, 62, 64, 54, 55, 72, 71, 67, 58, 53, 50, 70, 66, 53, 42, 59, 54, 51, 43, 37, 82, 63, 72, 51, 66, 66, 57, 63, 95, 72, 70, 61, 44, 71, 76, 56, 112, 73, 60, 59, 74, 58, 78, 110, 70, 86, 65, 70, 73, 55, 62, 45, 53, 69, 65, 73, 65, 38, 56, 90, 68, 81, 61, 88, 65, 63, 52, 55, 54, 44, 65, 61, 63, 75, 54, 57, 76, 65, 76, 104, 57, 54, 63, 78, 77, 73, 58, 68, 60, 62, 70, 66, 52, 50, 61, 74, 63, 75, 74, 69, 72, 59, 80, 90, 115, 74, 82, 54, 73, 56, 72, 56, 47, 57, 69, 60, 58, 83, 55, 74, 73, 63, 60, 77, 65, 63, 53, 62, 97, 57, 61, 65, 65, 78, 38, 71, 70, 53, 52, 61, 68, 81, 70, 69, 56, 54, 50, 65, 53, 55, 52, 72, 65, 59, 57, 66, 70, 82, 57, 58, 57, 40, 61, 68, 66, 72, 47, 70, 57, 61, 76, 52, 71, 65, 69, 55, 54, 65, 55, 74, 73, 69, 66, 52, 55, 61, 65, 72, 54, 76, 59, 45, 49, 108, 59, 72, 58, 56, 65, 56, 90, 99, 53, 67, 57, 60, 69, 57, 60, 77, 57, 27, 87, 69, 53, 45, 62, 53, 55, 45, 57, 58, 69, 60, 60, 93, 65, 80, 54, 79, 59, 68, 51, 44, 67, 78, 87, 81, 63, 70, 71, 58, 59, 70, 75, 67, 49, 69, 57, 95, 75, 45, 63, 66, 60, 90, 52, 62, 66, 57, 45, 63, 78, 66, 57, 55, 47, 80, 63, 70, 55, 47, 56, 66, 95, 74, 48, 62, 59, 62, 55, 100, 54, 63, 111, 67, 63, 60, 70, 61, 86, 71, 49, 49, 99, 63, 55, 134, 72, 50, 71, 62, 77, 72, 69, 76, 60, 55, 75, 63, 74, 58, 73, 52, 92, 86, 84, 98, 49, 49, 70, 80, 76, 50, 66, 63, 82, 82, 66, 60, 73, 63, 57, 62, 70, 51, 76, 53, 52, 64, 51, 75, 53, 70, 66, 109, 56, 68, 45, 56, 79, 62, 60, 65, 68, 58, 50, 58, 57, 57, 70, 58, 58, 66, 50, 69, 59, 81, 57, 88, 48, 50, 67, 70, 65, 79, 81, 107, 51, 90, 64, 68, 77, 58, 46, 68, 42, 100, 67, 69, 54, 46, 61, 56, 53, 66, 61, 57, 46, 59, 79, 85, 53, 71, 88, 63, 62, 76, 91, 56, 60, 55, 41, 69, 67, 74, 65, 68, 49, 50, 62, 57, 46, 64, 73, 68, 83, 74, 92, 62, 72, 60, 63, 95, 60, 51, 59, 68, 45, 62, 60, 77, 69, 56, 57, 70, 35, 76, 85, 58, 71, 48, 78, 62, 60, 62, 65, 62, 83, 112, 97, 62, 57, 70, 73, 56, 81, 82, 94, 57, 60, 66, 72, 59, 58, 70, 64, 63, 60, 56, 44, 65, 63, 69, 51, 75, 55, 68, 67, 59, 41, 88, 51, 62, 54, 36, 64, 64, 75, 67, 80, 64, 50, 50, 99, 90, 79, 61, 55, 44, 66, 47, 56, 61, 72, 62, 49, 76, 88, 100, 73, 69, 61, 62, 63, 66, 49, 59, 57, 94, 151, 91, 37, 78, 58, 59, 83, 87, 61, 49, 75, 55, 63, 89, 60, 66, 55, 88, 56, 71, 89, 75, 64, 52, 66, 61, 95, 65, 67, 73, 122, 75, 107, 66, 47, 54, 92, 61, 89, 65, 80, 55, 52, 57, 89, 55, 59, 59, 95, 61, 57, 66, 77, 108, 53, 52, 62, 62, 44, 69, 73, 68, 67, 65, 61, 79, 55, 79, 69, 50, 76, 64, 63, 53, 72, 83, 64, 60, 90, 81, 64, 81, 97, 66, 71, 60, 58, 64, 42, 83, 57, 76, 64, 54, 67, 54, 39, 97, 50, 104, 67, 48, 54, 56, 63, 86, 65, 74, 54, 59, 64, 78, 59, 56, 73, 58, 65, 57, 56, 55, 58, 57, 61, 47, 62, 44, 63, 58, 114, 93, 50, 80, 64, 82, 58, 53, 64, 60, 57, 50, 56, 83, 54, 55, 74, 69, 92, 35, 57, 82, 49, 70, 73, 76, 46, 56, 55, 55, 60, 68, 69, 59, 65, 49, 58, 65, 59, 116, 63, 63, 60, 72, 66, 78, 65, 90, 67, 65, 52, 63, 75, 83, 71, 57, 45, 74, 55, 51, 53, 81, 65, 66, 67, 59, 45, 63, 70, 78, 70, 70, 59, 94, 82, 75, 50, 71, 64, 47, 50, 47, 68, 64, 62, 75, 78, 55, 73, 78, 64, 49, 40, 82, 72, 71, 79, 64, 62, 52, 49, 82, 55, 110, 67, 101, 69, 68, 73, 66, 67, 88, 92, 127, 54, 60, 49, 73, 73, 71, 70, 85, 77, 84, 51, 104, 78, 79, 78, 54, 57, 69, 53, 64, 78, 61, 87, 61, 70, 43, 55, 44, 74, 58, 63, 51, 71, 62, 61, 57, 59, 48, 75, 60, 71, 80, 94, 53, 49, 54, 65, 90, 59, 62, 77, 55, 59, 49, 59, 86, 52, 76, 66, 80, 68, 53, 82, 56, 56, 111, 58, 59, 77, 65, 65, 65, 51, 84, 55, 46, 76, 66, 47, 67, 90, 63, 59, 76, 95, 55, 44, 43, 83, 88, 62, 49, 68, 62, 54, 69, 53, 76, 79, 62, 57, 62, 62, 70, 61, 79, 71, 43, 65, 62, 50, 57, 68, 68, 73, 83, 63, 50, 55, 82, 84, 59, 87, 103, 71, 72, 54, 52, 70, 64, 80, 62, 64, 56, 60, 102, 50, 67, 48, 117, 62, 87, 62, 67, 60, 68, 63, 57, 60, 65, 76, 52, 79, 79, 70, 67, 102, 70, 59, 52, 70, 73, 43, 52, 63, 60, 73, 75, 62, 81, 75, 48, 84, 82, 85, 64, 99, 72, 78, 76, 61, 66, 65, 91, 71, 79, 46, 65, 85, 35, 86, 69, 75, 89, 63, 41, 68, 63, 87, 72, 65, 67, 52, 73, 48, 51, 36, 51, 82, 61, 78, 64, 74, 60, 69, 65, 70, 60, 88, 61, 82, 64, 66, 71, 75, 44, 63, 68, 63, 47, 50, 70, 87, 59, 60, 96, 118, 68, 64, 78, 57, 58, 43, 58, 37, 67, 59, 75, 65, 60, 32, 74, 57, 60, 58, 51, 45, 67, 95, 55, 59, 36, 48, 50, 61, 58, 86, 51, 62, 58, 42, 67, 75, 62, 54, 60, 52, 71, 60, 74, 70, 65, 50, 113, 96, 80, 63, 69, 69, 72, 54, 45, 60, 50, 60, 76, 62, 63, 57, 61, 61, 71, 64, 47, 60, 73, 43, 52, 72, 68, 82, 67, 76, 78, 77, 59, 44, 56, 86, 55, 48, 61, 67, 75, 73, 66, 55, 95, 55, 84, 100, 71, 62, 58, 58, 76, 70, 56, 84, 70, 54, 64, 89, 67, 56, 61, 71, 90, 61, 56, 65, 60, 67, 79, 69, 74, 54, 65, 60, 28, 56, 46, 47, 65, 62, 52, 43, 79, 45, 69, 49, 74, 90, 85, 61, 59, 107, 87, 66, 67, 61, 71, 80, 51, 84, 78, 76, 63, 70, 72, 59, 47, 44, 73, 56, 65, 67, 60, 89, 81, 56, 103, 49, 74, 65, 81, 57, 105, 57, 80, 57, 102, 71, 60, 68, 67, 91, 65, 57, 59, 90, 63, 58, 57, 58, 70, 53, 55, 52, 51, 58, 79, 86, 30, 60, 56, 78, 82, 46, 61, 80, 83, 68, 58, 68, 62, 91, 55, 60, 41, 64, 65, 52, 61, 72, 62, 78, 59, 60, 68, 68, 64, 90, 80, 65, 77, 76, 62, 87, 50, 66, 67, 61, 49, 76, 84, 51, 47, 58, 68, 103, 81, 68, 56, 74, 68, 70, 70, 65, 91, 53, 69, 77, 59, 61, 52, 85, 71, 59, 54, 84, 79, 70, 67, 69, 50, 56, 78, 54, 60, 49, 68, 63, 53, 71, 73, 52, 64, 86, 42, 58, 78, 64, 56, 53, 87, 79, 51, 61, 78, 70, 60, 61, 48, 72, 57, 89, 77, 64, 60, 81, 61, 61, 49, 68, 79, 69, 74, 57, 79, 65, 44, 56, 46, 75, 79, 75, 51, 71, 62, 67, 49, 49, 76, 68, 81, 49, 59, 62, 93, 66, 48, 46, 58, 76, 72, 62, 67, 70, 62, 62, 74, 93, 59, 90, 55, 69, 56, 52, 78, 55, 59, 64, 87, 77, 65, 82, 60, 70, 68, 70, 58, 57, 83, 53, 80, 54, 77, 41, 73, 31, 85, 64, 41, 55, 72, 54, 111, 63, 77, 79, 54, 111, 58, 71, 60, 58, 115, 54, 60, 66, 76, 70, 35, 66, 76, 70, 81, 65, 62, 50, 67, 98, 59, 51, 45, 74, 60, 66, 71, 63, 60, 50, 53, 60, 74, 83, 51, 69, 61, 64, 47, 71, 58, 59, 74, 53, 73, 70, 77, 54, 91, 70, 52, 92, 62, 69, 48, 59, 66, 50, 60, 43, 51, 68, 88, 56, 71, 74, 54, 69, 86, 63, 79, 76, 62, 70, 97, 57, 68, 66, 72, 71, 103, 62, 61, 45, 53, 55, 63, 64, 86, 79, 60, 49, 108, 40, 58, 69, 75, 80, 57, 49, 68, 46, 67, 45, 82, 74, 79, 67, 70, 69, 57, 61, 65, 51, 35, 67, 50, 66, 65, 80, 71, 58, 46, 91, 75, 53, 86, 69, 119, 68, 67, 67, 61, 89, 57, 56, 38, 59, 71, 51, 92, 100, 66, 86, 59, 111, 83, 62, 56, 73, 60, 47, 59, 60, 35, 68, 62, 36, 79, 59, 99, 64, 70, 65, 72, 69, 77, 51, 68, 61, 44, 52, 77, 81, 78, 92, 60, 41, 58, 48, 65, 76, 57, 56, 95, 69, 114, 75, 74, 56, 69, 68, 70, 83, 88, 74, 66, 57, 72, 41, 76, 72, 65, 58, 43, 63, 78, 61, 97, 46, 49, 74, 87, 72, 62, 74, 86, 47, 64, 72, 50, 74, 50, 58, 43, 53, 54, 62, 41, 69, 73, 55, 70, 63, 66, 37, 72, 52, 71, 54, 77, 68, 67, 77, 73, 72, 91, 70, 72, 57, 52, 74, 73, 73, 67, 68, 57, 79, 75, 63, 51, 67, 54, 73, 64, 84, 58, 100, 93, 63, 58, 56, 104, 62, 52, 58, 63, 109, 77, 49, 49, 170, 89, 62, 71, 65, 57, 55, 68, 94, 64, 77, 61, 49, 70, 66, 57, 110, 51, 69, 68, 64, 76, 79, 50, 60, 49, 68, 71, 77, 92, 65, 64, 78, 50, 53, 74, 39, 86, 68, 62, 57, 78, 68, 63, 64, 83, 60, 63, 61, 40, 51, 73, 98, 156, 62, 58, 74, 85, 88, 42, 64, 47, 53, 62, 83, 57, 46, 63, 73, 65, 64, 66, 73, 48, 62, 65, 73, 69, 57, 46, 77, 59, 83, 63, 65, 39, 69, 69, 65, 72, 74, 79, 90, 56, 49, 67, 61, 61, 55, 38, 75, 64, 76, 71, 58, 62, 79, 28, 71, 52, 49, 49, 65, 52, 103, 86, 85, 73, 70, 62, 65, 59, 65, 96, 71, 50, 66, 84, 57, 93, 122, 103, 76, 89, 65, 57, 84, 93, 53, 64, 51, 69, 50, 74, 98, 64, 51, 44, 74, 61, 80, 67, 51, 56, 104, 72, 53, 74, 66, 40, 48, 55, 47, 79, 57, 98, 57, 80, 67, 69, 71, 43, 74, 73, 98, 47, 75, 56, 44, 63, 72, 99, 75, 78, 78, 59, 52, 54, 74, 46, 61, 69, 60, 55, 66, 56, 66, 82, 70, 84, 91, 52, 73, 77, 52, 39, 88, 65, 60, 41, 65, 49, 55, 59, 76, 74, 76, 73, 75, 82, 72, 64, 61, 59, 72, 77, 60, 62, 73, 54, 57, 79, 71, 69, 28, 78, 78, 58, 80, 62, 65, 66, 73, 73, 67, 71, 67, 78, 74, 86, 58, 60, 72, 80, 72, 73, 58, 55, 71, 59, 59, 50, 66, 66, 127, 42, 66, 71, 66, 55, 71, 76, 62, 63, 67, 108, 54, 53, 76, 81, 63, 52, 51, 68, 76, 77, 85, 68, 70, 58, 60, 59, 78, 56, 65, 67, 71, 82, 103, 90, 72, 50, 55, 58, 90, 60, 53, 63, 51, 61, 73, 62, 66, 49, 74, 72, 66, 53, 67, 60, 74, 66, 53, 55, 69, 89, 91, 59, 77, 78, 54, 55, 51, 88, 53, 54, 63, 94, 68, 64, 71, 74, 66, 60, 87, 66, 64, 61, 57, 67, 66, 66, 83, 50, 63, 71, 58, 59, 78, 65, 105, 57, 62, 72, 86, 77, 54, 96, 56, 62, 63, 69, 51, 94, 70, 59, 78, 78, 67, 52, 59, 73, 69, 63, 55, 70, 72, 56, 53, 78, 56, 64, 60, 66, 66, 100, 52, 51, 49, 54, 53, 67, 71, 66, 49, 70, 71, 74, 64, 78, 44, 71, 73, 60, 79, 87, 63, 63, 99, 59, 62, 46, 69, 74, 60, 62, 49, 61, 47, 83, 74, 60, 69, 75, 72, 70, 40, 80, 66, 64, 63, 53, 71, 72, 71, 85, 94, 62, 64, 80, 63, 55, 47, 59, 61, 57, 72, 65, 57, 61, 44, 54, 61, 81, 58, 57, 93, 68, 76, 55, 69, 52, 80, 61, 43, 79, 52, 55, 81, 62, 51, 49, 63, 60, 60, 77, 70, 65, 50, 61, 46, 71, 72, 63, 35, 56, 49, 65, 78, 51, 68, 67, 68, 74, 74, 64, 57, 74, 57, 68, 80, 57, 72, 66, 47, 55, 87, 46, 45, 66, 51, 65, 110, 65, 70, 55, 49, 73, 62, 81, 48, 53, 46, 82, 76, 81, 39, 62, 52, 63, 50, 60, 57, 60, 46, 63, 51, 56, 66, 78, 55, 51, 70, 46, 54, 69, 49, 69, 74, 59, 95, 38, 84, 74, 50, 63, 74, 102, 60, 55, 70, 88, 71, 58, 67, 59, 55, 83, 72, 66, 62, 65, 51, 68, 50, 75, 54, 61, 66, 53, 55, 58, 55, 73, 53, 50, 60, 96, 72, 56, 42, 83, 65, 59, 67, 54, 53, 73, 70, 74, 96, 62, 87, 76, 78, 76, 72, 76, 66, 56, 89, 58, 85, 61, 69, 67, 55, 57, 78, 71, 87, 86, 84, 69, 98, 54, 71, 66, 55, 49, 88, 60, 62, 61, 64, 79, 31, 59, 66, 72, 95, 74, 68, 60, 73, 72, 63, 47, 77, 92, 79, 61, 78, 54, 63, 64, 60, 48, 74, 63, 57, 65, 65, 69, 54, 72, 53, 61, 79, 61, 60, 67, 61, 69, 56, 63, 59, 56, 70, 75, 57, 43, 69, 77, 62, 75, 59, 73, 62, 86, 55, 39, 81, 57, 84, 63, 73, 104, 59, 79, 65, 57, 56, 51, 78, 53, 83, 48, 57, 56, 45, 68, 86, 47, 60, 71, 64, 60, 66, 53, 44, 63, 66, 87, 55, 97, 52, 52, 68, 40, 50, 63, 72, 63, 69, 54, 71, 64, 60, 62, 63, 86, 55, 54, 60, 58, 56, 41, 55, 69, 62, 48, 50, 56, 71, 72, 71, 66, 53, 66, 58, 76, 53, 59, 67, 97, 86, 137, 76, 90, 62, 70, 55, 71, 53, 60, 85, 127, 72, 60, 85, 53, 71, 65, 83, 77, 68, 67, 60, 49, 58, 67, 72, 76, 45, 62, 78, 63, 71, 57, 81, 44, 66, 63, 72, 68, 85, 56, 67, 41, 65, 72, 49, 56, 93, 56, 45, 135, 76, 44, 141, 75, 47, 56, 68, 60, 55, 54, 56, 54, 69, 83, 49, 63, 50, 68, 69, 58, 74, 52, 65, 83, 82, 68, 63, 71, 73, 88, 76, 57, 65, 66, 69, 62, 98, 60, 76, 76, 59, 67, 53, 60, 64, 75, 61, 67, 56, 70, 72, 69, 56, 58, 50, 64, 53, 47, 44, 46, 60, 82, 72, 51, 91, 41, 79, 60, 50, 64, 61, 59, 109, 73, 65, 74, 62, 56, 64, 95, 74, 61, 89, 58, 59, 60, 60, 73, 78, 64, 50, 55, 65, 56, 72, 71, 48, 89, 57, 89, 83, 94, 49, 75, 62, 49, 68, 73, 61, 68, 63, 56, 70, 75, 65, 66, 67, 59, 107, 59, 54, 59, 65, 65, 66, 65, 42, 74, 72, 74, 87, 52, 70, 61, 62, 67, 64, 52, 66, 57, 54, 77, 74, 70, 61, 61, 88, 51, 63, 71, 57, 71, 53, 64, 63, 71, 71, 71, 61, 71, 54, 70, 39, 65, 49, 119, 46, 70, 58, 47, 64, 61, 73, 76, 71, 63, 53, 82, 59, 75, 71, 64, 53, 100, 66, 75, 90, 67, 68, 78, 51, 83, 71, 59, 78, 51, 64, 51, 62, 52, 87, 90, 66, 90, 71, 61, 88, 55, 67, 63, 72, 59, 72, 54, 51, 72, 72, 72, 68, 72, 60, 64, 76, 67, 65, 75, 80, 53, 49, 56, 55, 49, 55, 65, 68, 61, 70, 53, 87, 70, 91, 62, 142, 57, 69, 58, 110, 51, 74, 66, 60, 76, 61, 61, 58, 61, 68, 73, 30, 144, 97, 78, 71, 86, 62, 63, 50, 75, 68, 56, 53, 84, 83, 74, 61, 42, 74, 68, 126, 31, 64, 72, 79, 78, 62, 68, 60, 52, 51, 68, 61, 58, 67, 79, 74, 46, 97, 57, 65, 56, 49, 55, 42, 41, 69, 42, 56, 58, 47, 58, 63, 69, 69, 50, 70, 98, 76, 62, 50, 56, 53, 60, 53, 94, 50, 57, 64, 53, 59, 87, 62, 70, 71, 55, 51, 47, 91, 75, 80, 48, 55, 47, 61, 81, 81, 56, 61, 84, 73, 56, 68, 70, 56, 58, 87, 59, 43, 42, 61, 68, 91, 62, 55, 59, 63, 79, 103, 56, 77, 55, 45, 71, 56, 80, 71, 69, 66, 62, 59, 92, 78, 74, 85, 63, 98, 48, 52, 82, 55, 59, 55, 68, 41, 57, 60, 58, 61, 61, 44, 57, 70, 59, 69, 85, 81, 74, 59, 75, 56, 76, 107, 62, 59, 63, 61, 83, 71, 73, 78, 54, 56, 69, 82, 75, 66, 71, 65, 94, 57, 82, 60, 63, 69, 71, 71, 63, 70, 57, 70, 74, 84, 56, 40, 57, 62, 85, 72, 75, 66, 63, 46, 52, 58, 84, 74, 75, 60, 66, 65, 65, 55, 49, 62, 77, 45, 74, 93, 58, 51, 57, 74, 73, 59, 95, 60, 55, 63, 71, 60, 64, 57, 52, 51, 68, 63, 67, 73, 54, 69, 65, 88, 98, 49, 55, 78, 41, 77, 73, 54, 51, 72, 49, 60, 63, 79, 57, 69, 70, 94, 62, 68, 46, 62, 60, 57, 71, 55, 54, 56, 56, 56, 71, 60, 65, 65, 68, 44, 70, 59, 69, 53, 57, 113, 81, 107, 66, 72, 77, 57, 82, 71, 63, 41, 65, 94, 63, 67, 46, 58, 33, 56, 59, 57, 54, 67, 78, 54, 73, 70, 60, 70, 73, 46, 63, 90, 56, 64, 59, 56, 63, 72, 78, 64, 59, 58, 62, 50, 76, 69, 69, 65, 69, 74, 86, 76, 66, 56, 51, 73, 76, 67, 76, 52, 57, 65, 68, 80, 52, 36, 108, 65, 68, 87, 57, 64, 59, 56, 67, 85, 51, 65, 85, 53, 46, 80, 52, 60, 61, 57, 64, 132, 44, 69, 66, 66, 60, 52, 55, 62, 71, 57, 64, 64, 63, 57, 97, 60, 78, 51, 62, 64, 66, 88, 72, 74, 79, 60, 68, 62, 62, 61, 63, 56, 66, 88, 82, 71, 81, 61, 61, 59, 53, 51, 40, 66, 56, 57, 59, 77, 48, 53, 53, 67, 90, 70, 54, 148, 60, 58, 57, 77, 74, 97, 65, 57, 53, 91, 73, 41, 49, 71, 45, 58, 75, 74, 103, 49, 56, 76, 71, 78, 65, 68, 69, 47, 73, 72, 69, 56, 98, 63, 65, 63, 57, 72, 62, 60, 47, 81, 66, 42, 47, 69, 85, 48, 76, 57, 56, 50, 53, 59, 47, 71, 50, 79, 61, 77, 51, 73, 66, 72, 73, 64, 51, 57, 77, 75, 49, 55, 62, 47, 56, 65, 56, 64, 35, 43, 95, 59, 67, 90, 56, 64, 64, 47, 57, 92, 63, 70, 59, 81, 78, 63, 66, 57, 61, 47, 70, 69, 80, 50, 62, 69, 48, 68, 52, 61, 108, 87, 91, 63, 61, 65, 79, 53, 51, 100, 85, 51, 72, 44, 60, 67, 66, 73, 54, 68, 51, 83, 74, 69, 60, 70, 60, 56, 63, 64, 60, 80, 48, 67, 76, 85, 58, 73, 66, 58, 63, 70, 81, 70, 50, 49, 59, 65, 71, 74, 82, 51, 68, 57, 59, 79, 63, 52, 56, 45, 75, 65, 70, 59, 65, 73, 62, 74, 60, 52, 49, 39, 74, 44, 81, 63, 113, 57, 54, 67, 65, 59, 75, 93, 83, 85, 73, 71, 55, 60, 60, 61, 56, 54, 74, 61, 68, 56, 57, 61, 68, 48, 68, 48, 60, 63, 60, 73, 53, 52, 42, 54, 64, 81, 57, 60, 55, 54, 72, 82, 67, 72, 53, 68, 70, 55, 61, 63, 68, 49, 98, 76, 60, 60, 82, 71, 48, 59, 57, 37, 57, 141, 65, 52, 68, 55, 53, 68, 83, 85, 53, 57, 53, 82, 67, 84, 66, 59, 65, 74, 58, 73, 90, 68, 72, 65, 60, 44, 65, 92, 54, 64, 68, 57, 63, 78, 100, 59, 61, 48, 70, 97, 71, 39, 63, 57, 93, 76, 53, 60, 77, 60, 68, 70, 86, 65, 51, 90, 62, 53, 55, 67, 63, 49, 71, 51, 64, 59, 70, 47, 82, 70, 74, 42, 52, 62, 40, 41, 64, 63, 76, 58, 65, 91, 55, 51, 68, 56, 68, 76, 63, 83, 96, 134, 49, 56, 61, 62, 64, 60, 58, 70, 64, 80, 58, 62, 75, 61, 68, 78, 58, 69, 47, 50, 49, 46, 75, 69, 62, 60, 71, 76, 62, 69, 81, 101, 38, 89, 81, 66, 75, 75, 57, 73, 104, 77, 70, 89, 79, 54, 69, 67, 90, 50, 51, 51, 69, 53, 64, 71, 53, 85, 59, 61, 51, 63, 62, 60, 73, 72, 62, 56, 74, 49, 56, 86, 58, 106, 59, 56, 58, 69, 77, 89, 64, 45, 49, 57, 94, 59, 53, 63, 88, 69, 63, 59, 62, 55, 56, 51, 54, 76, 73, 74, 42, 65, 70, 55, 65, 52, 86, 68, 59, 72, 58, 56, 89, 64, 49, 54, 72, 56, 70, 58, 54, 60, 62, 64, 74, 64, 65, 121, 73, 77, 57, 65, 62, 87, 69, 112, 67, 80, 76, 77, 61, 54, 43, 54, 89, 64, 63, 74, 48, 68, 73, 64, 73, 72, 60, 56, 68, 57, 79, 52, 62, 60, 52, 61, 71, 59, 74, 95, 68, 64, 61, 100, 59, 95, 59, 113, 61, 95, 59, 59, 63, 45, 59, 57, 65, 44, 38, 53, 69, 59, 50, 54, 51, 71, 64, 55, 56, 69, 48, 59, 57, 80, 68, 95, 98, 104, 76, 53, 65, 69, 51, 72, 54, 101, 67, 73, 65, 77, 67, 56, 53, 90, 56, 66, 59, 56, 65, 55, 64, 52, 48, 75, 90, 75, 74, 59, 60, 51, 60, 76, 64, 69, 67, 57, 81, 76, 90, 66, 86, 51, 61, 83, 76, 65, 69, 118, 83, 62, 55, 83, 47, 28, 69, 67, 74, 86, 77, 155, 55, 57, 57, 64, 64, 67, 76, 61, 77, 64, 59, 58, 56, 65, 72, 78, 70, 52, 66, 59, 48, 50, 68, 60, 58, 66, 57, 103, 48, 72, 61, 60, 71, 75, 66, 48, 61, 60, 47, 71, 61, 56, 69, 53, 55, 74, 55, 70, 55, 51, 60, 84, 50, 63, 52, 91, 53, 43, 47, 57, 54, 54, 72, 64, 81, 90, 66, 55, 63, 76, 67, 52, 56, 62, 41, 55, 98, 41, 61, 54, 54, 71, 69, 66, 54, 72, 65, 69, 73, 53, 56, 89, 44, 80, 64, 66, 72, 77, 72, 72, 56, 96, 63, 69, 134, 75, 65, 65, 55, 67, 64, 60, 46, 57, 90, 51, 58, 104, 59, 51, 63, 51, 69, 67, 57, 64, 79, 44, 63, 48, 83, 47, 70, 82, 66, 52, 71, 47, 86, 97, 58, 34, 76, 52, 68, 66, 47, 57, 62, 56, 82, 80, 65, 53, 79, 70, 45, 52, 67, 71, 59, 56, 70, 43, 80, 59, 87, 58, 112, 99, 51, 91, 63, 58, 56, 61, 84, 121, 53, 89, 64, 66, 65, 102, 94, 72, 57, 57, 66, 84, 67, 70, 73, 83, 49, 62, 65, 52, 77, 68, 48, 66, 58, 52, 52, 60, 89, 54, 46, 100, 101, 45, 57, 61, 59, 76, 65, 60, 59, 65, 62, 61, 43, 86, 76, 43, 58, 69, 62, 84, 63, 53, 57, 64, 75, 66, 36, 82, 62, 92, 55, 43, 66, 57, 59, 78, 92, 67, 78, 65, 82, 53, 62, 77, 63, 62, 71, 72, 48, 58, 68, 52, 87, 83, 78, 75, 69, 52, 58, 75, 66, 64, 56, 143, 65, 72, 71, 50, 85, 90, 60, 61, 62, 70, 81, 53, 64, 61, 65, 78, 106, 76, 79, 85, 82, 44, 64, 70, 81, 50, 59, 90, 66, 66, 72, 75, 69, 49, 102, 45, 61, 79, 88, 79, 93, 67, 61, 61, 64, 55, 64, 58, 49, 53, 56, 68, 64, 73, 82, 94, 71, 43, 72, 61, 72, 88, 76, 71, 49, 92, 65, 69, 53, 57, 78, 97, 61, 71, 65, 65, 55, 47, 60, 54, 55, 43, 65, 98, 68, 53, 67, 58, 55, 64, 104, 62, 69, 91, 84, 74, 52, 43, 54, 67, 60, 61, 77, 49, 59, 72, 83, 59, 69, 66, 59, 57, 66, 68, 75, 82, 78, 38, 77, 58, 56, 47, 56, 127, 60, 68, 59, 57, 69, 56, 92, 70, 96, 44, 34, 56, 63, 86, 54, 57, 84, 67, 73, 68, 56, 52, 66, 86, 68, 94, 69, 52, 65, 40, 59, 72, 60, 51, 51, 68, 49, 45, 71, 96, 76, 68, 75, 60, 55, 75, 58, 53, 69, 89, 40, 68, 50, 86, 63, 68, 57, 60, 76, 79, 90, 60, 70, 44, 43, 81, 57, 55, 94, 56, 48, 50, 55, 85, 91, 52, 58, 51, 79, 73, 67, 62, 48, 66, 48, 65, 55, 59, 65, 69, 68, 89, 59, 63, 75, 66, 72, 70, 65, 83, 80, 53, 46, 47, 49, 80, 68, 79, 73, 69, 56, 25, 99, 75, 57, 111, 61, 72, 61, 63, 62, 42, 81, 79, 55, 73, 47, 63, 46, 74, 57, 63, 76, 76, 79, 101, 66, 70, 86, 64, 48, 66, 44, 81, 68, 62, 75, 61, 77, 52, 44, 87, 42, 52, 77, 72, 44, 53, 43, 57, 89, 61, 50, 70, 66, 75, 56, 50, 85, 77, 66, 56, 39, 72, 142, 65, 109, 108, 55, 85, 77, 56, 84, 75, 89, 61, 72, 52, 75, 66, 44, 71, 60, 67, 54, 65, 66, 66, 48, 94, 39, 107, 65, 60, 57, 70, 50, 53, 60, 56, 61, 57, 53, 77, 58, 60, 38, 62, 69, 65, 71, 68, 82, 71, 60, 76, 65, 61, 56, 76, 54, 67, 67, 56, 51, 59, 67, 52, 55, 66, 46, 65, 70, 136, 115, 66, 71, 42, 79, 70, 62, 54, 77, 61, 87, 40, 63, 56, 55, 74, 58, 60, 52, 70, 93, 79, 65, 61, 71, 69, 108, 72, 59, 51, 51, 64, 50, 52, 73, 39, 71, 60, 65, 101, 96, 39, 54, 71, 77, 65, 74, 73, 50, 59, 57, 49, 46, 80, 83, 45, 62, 44, 90, 65, 55, 59, 73, 57, 48, 81, 80, 40, 57, 60, 60, 43, 51, 66, 71, 55, 50, 68, 76, 64, 42, 66, 42, 80, 82, 39, 58, 51, 67, 90, 69, 67, 62, 35, 54, 69, 72, 67, 62, 76, 71, 66, 58, 73, 54, 71, 69, 69, 68, 62, 72, 69, 75, 74, 58, 64, 57, 122, 76, 83, 71, 53, 84, 66, 62, 57, 71, 53, 64, 86, 77, 102, 87, 82, 67, 89, 56, 52, 74, 68, 66, 90, 100, 68, 57, 67, 63, 66, 90, 56, 59, 80, 49, 85, 63, 59, 72, 46, 65, 65, 71, 78, 95, 63, 66, 93, 79, 64, 76, 85, 89, 75, 50, 69, 55, 57, 45, 66, 72, 82, 56, 69, 109, 81, 72, 58, 83, 63, 65, 54, 49, 63, 77, 71, 62, 59, 51, 67, 73, 60, 92, 63, 95, 48, 69, 64, 80, 73, 53, 40, 57, 49, 65, 69, 56, 68, 65, 72, 52, 72, 71, 62, 78, 62, 60, 117, 75, 62, 48, 66, 54, 69, 65, 51, 75, 54, 81, 75, 81, 49, 60, 82, 48, 45, 71, 59, 71, 72, 101, 57, 75, 57, 73, 34, 62, 52, 53, 56, 71, 63, 49, 47, 79, 66, 61, 74, 56, 69, 68, 58, 69, 62, 67, 105, 57, 44, 65, 63, 67, 63, 53, 56, 53, 72, 60, 72, 65, 86, 112, 66, 91, 75, 72, 69, 68, 62, 96, 93, 53, 58, 62, 38, 66, 53, 108, 75, 94, 54, 41, 55, 61, 61, 60, 71, 71, 81, 60, 63, 69, 76, 53, 56, 79, 72, 79, 63, 52, 52, 48, 59, 47, 44, 101, 58, 73, 63, 59, 75, 91, 88, 94, 66, 75, 63, 62, 50, 56, 45, 83, 46, 52, 88, 87, 71, 67, 64, 54, 55, 77, 100, 97, 70, 78, 83, 77, 93, 80, 51, 50, 80, 88, 50, 56, 60, 57, 51, 77, 53, 64, 79, 72, 68, 51, 53, 43, 48, 55, 62, 73, 61, 63, 95, 63, 87, 60, 63, 48, 53, 64, 56, 77, 67, 58, 57, 55, 52, 93, 64, 42, 73, 59, 70, 95, 95, 53, 71, 35, 60, 40, 85, 69, 69, 81, 51, 103, 78, 79, 57, 59, 54, 48, 49, 75, 63, 52, 61, 65, 83, 39, 57, 57, 62, 49, 87, 45, 57, 84, 67, 60, 71, 92, 66, 70, 63, 63, 68, 46, 84, 70, 79, 66, 62, 79, 61, 67, 52, 58, 65, 63, 43, 68, 54, 69, 78, 61, 62, 55, 113, 83, 55, 69, 57, 71, 70, 96, 50, 105, 90, 54, 77, 51, 41, 107, 66, 75, 59, 57, 85, 57, 62, 66, 55, 82, 97, 50, 77, 57, 69, 56, 73, 64, 66, 53, 62, 85, 79, 41, 62, 71, 59, 81, 79, 51, 66, 95, 68, 67, 85, 139, 37, 64, 65, 78, 70, 68, 49, 72, 66, 61, 70, 42, 48, 72, 68, 59, 71, 58, 108, 56, 71, 56, 76, 72, 65, 70, 65, 40, 70, 88, 47, 47, 88, 53, 76, 62, 77, 67, 73, 55, 57, 101, 67, 54, 68, 58, 53, 52, 73, 86, 72, 48, 48, 55, 64, 65, 94, 96, 69, 60, 65, 62, 60, 54, 53, 43, 46, 71, 67, 51, 64, 74, 61, 70, 81, 95, 56, 49, 72, 60, 48, 60, 52, 97, 47, 75, 57, 58, 75, 77, 63, 54, 62, 60, 52, 52, 57, 73, 62, 46, 77, 60, 64, 71, 80, 67, 51, 64, 53, 61, 68, 48, 57, 56, 55, 70, 67, 61, 69, 65, 66, 83, 101, 44, 61, 48, 64, 61, 63, 67, 61, 68, 55, 53, 64, 80, 44, 74, 56, 63, 45, 52, 123, 40, 58, 70, 54, 74, 71, 58, 72, 82, 49, 56, 79, 73, 81, 62, 68, 109, 79, 112, 54, 66, 62, 61, 55, 53, 51, 60, 52, 67, 58, 75, 51, 58, 50, 72, 105, 53, 60, 45, 63, 74, 57, 55, 92, 49, 65, 69, 56, 62, 82, 69, 92, 79, 91, 66, 61, 62, 64, 62, 142, 60, 48, 92, 61, 64, 67, 58, 38, 64, 68, 66, 55, 40, 56, 68, 49, 44, 48, 73, 50, 65, 83, 54, 49, 43, 145, 47, 69, 67, 60, 105, 52, 72, 52, 62, 57, 52, 63, 59, 117, 82, 63, 58, 55, 61, 65, 52, 44, 43, 82, 51, 54, 76, 65, 56, 56, 79, 78, 78, 70, 79, 61, 48, 45, 74, 77, 48, 104, 54, 56, 54, 53, 77, 76, 71, 83, 85, 83, 57, 51, 81, 81, 51, 50, 65, 71, 43, 87, 84, 55, 76, 61, 66, 50, 83, 59, 91, 61, 55, 54, 80, 57, 59, 53, 74, 106, 89, 72, 83, 55, 57, 55, 136, 62, 88, 56, 50, 74, 64, 97, 66, 62, 67, 64, 60, 41, 57, 66, 63, 56, 70, 63, 60, 64, 57, 52, 67, 48, 54, 62, 82, 41, 95, 78, 84, 76, 67, 91, 55, 76, 75, 66, 51, 53, 67, 84, 57, 57, 62, 53, 62, 89, 47, 57, 93, 58, 73, 54, 67, 59, 67, 71, 113, 74, 89, 69, 48, 59, 98, 71, 76, 60, 75, 89, 74, 71, 67, 56, 90, 45, 59, 48, 63, 54, 48, 49, 59, 122, 70, 58, 53, 54, 50, 54, 62, 90, 53, 66, 59, 61, 25, 120, 55, 57, 54, 62, 71, 101, 70, 79, 52, 75, 72, 155, 61, 56, 70, 72, 69, 86, 72, 63, 65, 50, 55, 62, 47, 57, 72, 51, 53, 59, 65, 73, 54, 63, 51, 77, 85, 69, 87, 57, 78, 43, 59, 37, 61, 92, 62, 65, 68, 72, 52, 52, 67, 72, 60, 88, 68, 66, 64, 59, 56, 74, 38, 99, 70, 58, 68, 88, 46, 64, 76, 65, 62, 126, 54, 75, 48, 55, 60, 113, 59, 54, 64, 53, 61, 73, 76, 52, 69, 47, 63, 55, 49, 67, 58, 50, 53, 58, 40, 91, 64, 78, 60, 44, 64, 74, 65, 78, 75, 83, 98, 52, 65, 80, 50, 60, 72, 64, 73, 53, 53, 106, 75, 50, 69, 64, 78, 66, 57, 60, 63, 65, 59, 106, 69, 88, 92, 128, 62, 86, 67, 67, 58, 67, 55, 66, 51, 70, 53, 47, 63, 59, 69, 107, 59, 70, 80, 63, 77, 45, 45, 55, 66, 63, 83, 57, 76, 64, 129, 52, 79, 44, 86, 51, 66, 50, 46, 51, 66, 51, 42, 82, 60, 72, 49, 69, 64, 67, 39, 45, 57, 63, 84, 68, 83, 49, 70, 70, 95, 56, 73, 57, 54, 92, 69, 64, 36, 93, 73, 82, 62, 50, 83, 50, 77, 88, 46, 53, 117, 90, 63, 68, 70, 88, 58, 75, 65, 86, 58, 56, 64, 73, 55, 67, 46, 119, 56, 79, 100, 80, 66, 51, 53, 69, 75, 67, 58, 54, 66, 47, 46, 58, 76, 66, 84, 66, 55, 73, 48, 57, 54, 64, 78, 58, 50, 65, 68, 86, 65, 34, 74, 83, 80, 64, 70, 48, 66, 75, 51, 70, 81, 50, 60, 65, 73, 55, 89, 60, 91, 62, 63, 71, 67, 60, 86, 66, 76, 82, 68, 60, 66, 70, 65, 71, 42, 58, 47, 82, 48, 85, 54, 67, 56, 45, 85, 68, 84, 103, 80, 62, 51, 59, 53, 56, 57, 54, 56, 41, 58, 54, 55, 85, 53, 72, 66, 50, 59, 85, 62, 43, 62, 51, 82, 72, 65, 48, 77, 64, 55, 87, 54, 59, 50, 54, 55, 69, 69, 68, 71, 62, 54, 102, 113, 63, 67, 67, 65, 58, 63, 77, 55, 59, 69, 54, 87, 88, 64, 50, 60, 89, 104, 59, 46, 46, 64, 67, 77, 61, 77, 55, 83, 54, 80, 50, 58, 37, 86, 39, 59, 45, 54, 65, 60, 75, 74, 49, 72, 51, 74, 91, 97, 54, 79, 61, 79, 64, 60, 58, 116, 73, 53, 63, 71, 66, 78, 51, 87, 60, 128, 58, 57, 50, 75, 78, 58, 85, 58, 84, 58, 62, 69, 67, 57, 49, 74, 80, 58, 84, 53, 67, 72, 41, 80, 87, 63, 89, 38, 78, 82, 44, 77, 60, 55, 67, 56, 56, 77, 72, 88, 62, 63, 56, 42, 63, 55, 58, 59, 88, 61, 74, 50, 75, 79, 55, 50, 64, 60, 84, 58, 94, 74, 56, 74, 104, 65, 89, 83, 61, 50, 63, 78, 60, 72, 79, 54, 59, 66, 60, 47, 58, 51, 55, 51, 53, 78, 54, 112, 75, 53, 57, 84, 43, 51, 52, 60, 58, 47, 67, 56, 67, 68, 61, 52, 62, 41, 55, 53, 58, 73, 60, 57, 40, 70, 53, 52, 67, 50, 76, 55, 71, 46, 61, 57, 44, 61, 84, 64, 53, 95, 48, 41, 58, 49, 49, 93, 65, 86, 52, 71, 60, 67, 62, 78, 70, 87, 62, 68, 56, 102, 68, 123, 65, 83, 53, 56, 71, 55, 125, 76, 55, 54, 86, 47, 71, 71, 64, 56, 100, 59, 59, 47, 53, 55, 52, 59, 90, 117, 87, 65, 67, 58, 105, 58, 60, 55, 84, 78, 66, 81, 57, 46, 50, 62, 61, 46, 63, 50, 64, 60, 64, 63, 70, 25, 106, 73, 57, 55, 67, 75, 72, 48, 59, 75, 51, 55, 96, 55, 60, 67, 74, 80, 56, 74, 76, 64, 73, 73, 68, 76, 63, 66, 80, 97, 73, 37, 52, 83, 65, 61, 52, 114, 68, 51, 84, 75, 113, 62, 75, 68, 75, 57, 65, 66, 57, 73, 79, 49, 62, 69, 66, 44, 72, 68, 78, 68, 67, 84, 57, 64, 86, 65, 64, 68, 69, 48, 77, 61, 65, 77, 58, 45, 67, 53, 55, 78, 62, 52, 59, 73, 73, 61, 76, 69, 80, 59, 67, 70, 51, 76, 67, 62, 55, 84, 50, 44, 50, 74, 70, 68, 52, 75, 62, 48, 93, 80, 53, 91, 61, 68, 82, 67, 82, 63, 61, 52, 65, 44, 53, 52, 62, 54, 58, 85, 56, 56, 51, 71, 101, 92, 73, 50, 52, 47, 48, 59, 114, 62, 67, 72, 76, 63, 62, 57, 47, 65, 70, 75, 70, 64, 69, 65, 73, 80, 71, 69, 74, 55, 66, 52, 65, 70, 90, 61, 71, 54, 62, 78, 81, 65, 65, 70, 50, 71, 60, 81, 94, 53, 62, 101, 116, 67, 64, 65, 62, 81, 66, 62, 67, 69, 57, 64, 47, 58, 62, 81, 66, 70, 54, 56, 57, 87, 77, 50, 75, 80, 47, 58, 53, 77, 58, 58, 59, 79, 53, 67, 60, 51, 59, 59, 74, 65, 60, 71, 79, 66, 50, 74, 74, 55, 54, 67, 38, 81, 59, 68, 70, 61, 66, 78, 85, 53, 75, 87, 53, 79, 64, 60, 78, 66, 56, 58, 81, 69, 82, 60, 66, 71, 62, 54, 65, 58, 63, 61, 78, 61, 60, 60, 43, 58, 55, 77, 37, 73, 53, 61, 76, 62, 59, 39, 66, 106, 61, 46, 69, 64, 59, 76, 82, 60, 63, 49, 74, 56, 69, 61, 72, 76, 72, 80, 80, 51, 75, 76, 41, 78, 42, 84, 58, 73, 50, 75, 77, 83, 61, 54, 75, 68, 57, 91, 74, 113, 80, 70, 105, 64, 58, 47, 78, 55, 78, 55, 83, 64, 57, 79, 51, 62, 74, 64, 73, 57, 65, 65, 70, 55, 50, 71, 53, 97, 86, 56, 91, 88, 57, 70, 69, 69, 62, 56, 64, 59, 60, 101, 75, 86, 70, 68, 48, 62, 42, 74, 56, 65, 53, 104, 57, 79, 55, 49, 72, 48, 48, 72, 55, 77, 61, 68, 85, 69, 71, 81, 76, 66, 61, 45, 68, 80, 52, 76, 44, 69, 65, 51, 80, 68, 75, 104, 74, 71, 67, 77, 42, 51, 71, 51, 79, 59, 52, 73, 60, 92, 73, 47, 64, 65, 62, 83, 87, 73, 76, 76, 62, 65, 74, 75, 57, 66, 66, 37, 64, 85, 58, 94, 52, 89, 66, 54, 74, 81, 61, 58, 56, 83, 52, 65, 64, 56, 62, 47, 56, 58, 52, 72, 76, 61, 67, 68, 58, 59, 60, 67, 66, 73, 55, 49, 51, 76, 53, 65, 91, 76, 79, 72, 95, 57, 51, 73, 42, 50, 79, 55, 115, 63, 43, 77, 70, 62, 63, 77, 65, 77, 89, 69, 83, 51, 72, 52, 94, 46, 52, 70, 76, 67, 56, 76, 100, 68, 59, 48, 47, 75, 72, 83, 45, 52, 59, 72, 52, 53, 42, 48, 70, 71, 70, 53, 84, 46, 84, 52, 43, 82, 68, 61, 60, 59, 69, 73, 52, 76, 80, 68, 78, 77, 65, 90, 69, 84, 49, 57, 63, 87, 65, 53, 61, 101, 52, 45, 77, 72, 46, 51, 54, 75, 57, 69, 64, 45, 68, 59, 55, 66, 88, 95, 68, 56, 65, 71, 50, 79, 74, 55, 65, 66, 74, 60, 67, 73, 67, 78, 66, 47, 85, 72, 78, 53, 64, 57, 73, 50, 70, 82, 75, 87, 67, 61, 58, 40, 64, 59, 63, 45, 66, 67, 43, 66, 74, 63, 67, 49, 82, 49, 64, 111, 53, 56, 61, 55, 58, 68, 87, 60, 76, 64, 73, 64, 77, 73, 99, 60, 59, 46, 65, 91, 43, 60, 61, 66, 67, 57, 61, 83, 53, 58, 68, 43, 73, 58, 77, 50, 45, 66, 66, 77, 49, 61, 55, 65, 73, 88, 66, 58, 78, 51, 73, 56, 56, 67, 66, 53, 130, 48, 69, 70, 55, 72, 74, 64, 71, 46, 84, 68, 70, 66, 73, 58, 74, 81, 96, 68, 69, 78, 70, 74, 63, 63, 72, 55, 73, 54, 70, 96, 57, 64, 59, 69, 55, 79, 48, 86, 56, 97, 92, 61, 63, 92, 73, 101, 64, 78, 91, 61, 56, 82, 61, 49, 56, 53, 64, 49, 64, 63, 61, 73, 64, 53, 57, 48, 63, 68, 63, 71, 79, 100, 62, 65, 68, 54, 67, 45, 74, 77, 68, 63, 60, 64, 43, 71, 52, 71, 71, 51, 103, 62, 75, 52, 55, 75, 54, 97, 86, 68, 69, 67, 82, 51, 48, 98, 72, 52, 50, 77, 71, 67, 74, 71, 53, 59, 58, 79, 65, 63, 50, 64, 61, 75, 58, 60, 84, 54, 77, 76, 53, 67, 72, 77, 68, 60, 69, 40, 43, 41, 72, 79, 64, 76, 89, 59, 76, 78, 62, 72, 67, 81, 56, 65, 60, 61, 65, 68, 50, 58, 53, 45, 72, 75, 53, 64, 50, 68, 42, 59, 47, 67, 57, 51, 61, 55, 71, 54, 132, 71, 77, 81, 58, 73, 62, 60, 60, 62, 62, 68, 42, 71, 65, 75, 46, 56, 53, 71, 61, 72, 73, 64, 58, 88, 66, 76, 62, 75, 84, 77, 63, 50, 83, 61, 45, 70, 45, 73, 70, 60, 69, 59, 61, 73, 75, 58, 85, 54, 71, 64, 67, 70, 87, 64, 61, 87, 59, 57, 76, 71, 59, 72, 68, 58, 69, 74, 41, 48, 57, 75, 69, 48, 79, 50, 71, 55, 61, 55, 60, 39, 70, 79, 76, 52, 60, 64, 93, 54, 59, 47, 58, 80, 42, 62, 49, 66, 63, 84, 62, 79, 64, 71, 83, 84, 74, 76, 85, 60, 50, 59, 74, 51, 82, 60, 69, 52, 75, 63, 71, 56, 57, 73, 48, 55, 60, 69, 64, 71, 71, 63, 67, 79, 56, 62, 64, 67, 62, 59, 60, 58, 71, 56, 89, 67, 70, 73, 51, 72, 73, 61, 69, 64, 83, 55, 53, 86, 67, 54, 54, 60, 77, 69, 59, 98, 68, 56, 53, 48, 86, 67, 60, 48, 67, 63, 69, 67, 102, 60, 63, 52, 56, 61, 63, 59, 78, 62, 49, 65, 39, 65, 62, 77, 61, 52, 69, 56, 52, 59, 78, 68, 71, 50, 82, 62, 48, 51, 58, 68, 60, 78, 53, 61, 61, 60, 93, 58, 61, 51, 61, 70, 53, 84, 51, 76, 58, 87, 58, 73, 61, 63, 57, 58, 57, 64, 61, 78, 49, 49, 59, 56, 69, 77, 64, 63, 66, 61, 72, 72, 80, 50, 69, 74, 82, 54, 95, 51, 93, 76, 72, 62, 63, 71, 58, 139, 59, 88, 56, 75, 80, 60, 66, 74, 62, 57, 62, 57, 72, 69, 64, 34, 74, 60, 60, 85, 60, 60, 63, 48, 111, 80, 53, 63, 63, 58, 47, 59, 62, 62, 59, 62, 63, 69, 121, 78, 69, 56, 68, 59, 54, 96, 70, 60, 57, 59, 56, 74, 58, 54, 157, 54, 58, 51, 58, 52, 56, 55, 58, 70, 48, 60, 61, 70, 66, 65, 72, 68, 74, 58, 73, 67, 70, 75, 97, 66, 96, 60, 56, 57, 75, 56, 75, 65, 64, 66, 71, 77, 46, 61, 81, 61, 62, 68, 79, 70, 129, 51, 63, 62, 56, 77, 67, 61, 71, 34, 74, 53, 53, 94, 57, 65, 61, 65, 83, 67, 73, 71, 53, 71, 33, 63, 54, 65, 80, 63, 62, 54, 77, 50, 66, 72, 57, 88, 61, 58, 74, 73, 57, 58, 38, 88, 80, 67, 73, 72, 52, 71, 71, 57, 55, 141, 68, 73, 61, 58, 67, 75, 63, 69, 61, 94, 68, 44, 47, 58, 50, 59, 56, 53, 89, 62, 54, 50, 55, 63, 58, 68, 75, 83, 42, 62, 56, 62, 79, 75, 51, 62, 57, 62, 69, 73, 59, 59, 70, 55, 73, 72, 54, 66, 62, 89, 68, 90, 70, 57, 71, 63, 75, 59, 55, 54, 55, 61, 50, 64, 75, 48, 55, 64, 97, 76, 64, 72, 53, 64, 88, 75, 63, 57, 61, 75, 62, 114, 46, 56, 56, 56, 70, 74, 71, 63, 75, 56, 65, 66, 58, 59, 62, 75, 101, 75, 78, 68, 98, 63, 83, 53, 69, 52, 51, 135, 30, 68, 68, 59, 63, 57, 68, 71, 67, 44, 71, 75, 58, 57, 77, 58, 71, 67, 44, 58, 53, 85, 53, 58, 69, 55, 77, 50, 63, 53, 52, 79, 66, 61, 64, 45, 78, 58, 77, 59, 65, 41, 48, 63, 63, 96, 87, 75, 74, 57, 86, 72, 87, 66, 65, 53, 77, 81, 75, 61, 62, 73, 55, 71, 102, 63, 80, 82, 71, 56, 98, 68, 55, 66, 55, 57, 59, 53, 86, 125, 63, 97, 61, 62, 64, 52, 60, 92, 93, 66, 66, 75, 72, 64, 65, 68, 68, 80, 69, 52, 68, 62, 69, 57, 55, 46, 63, 61, 47, 66, 56, 69, 63, 68, 58, 59, 67, 65, 64, 65, 59, 60, 65, 69, 63, 56, 56, 74, 58, 77, 76, 107, 58, 74, 27, 50, 69, 68, 47, 89, 58, 80, 60, 82, 55, 52, 49, 61, 48, 65, 73, 68, 59, 51, 68, 54, 56, 59, 52, 64, 62, 60, 68, 68, 63, 84, 70, 62, 79, 65, 65, 53, 59, 62, 57, 72, 95, 66, 57, 56, 74, 85, 41, 55, 74, 62, 54, 102, 60, 62, 58, 64, 74, 45, 73, 98, 78, 69, 75, 65, 50, 50, 52, 56, 71, 61, 52, 47, 63, 47, 72, 77, 51, 42, 57, 66, 70, 59, 65, 52, 78, 55, 69, 52, 68, 95, 72, 89, 69, 54, 58, 55, 61, 94, 87, 58, 63, 76, 77, 60, 92, 58, 137, 69, 63, 57, 53, 74, 65, 72, 70, 59, 49, 59, 68, 68, 56, 65, 58, 77, 59, 60, 44, 53, 79, 71, 58, 86, 49, 79, 65, 51, 49, 61, 63, 59, 58, 71, 60, 84, 50, 68, 57, 72, 72, 51, 83, 51, 51, 119, 68, 56, 61, 46, 64, 53, 57, 56, 50, 62, 84, 69, 82, 68, 50, 64, 72, 75, 87, 62, 65, 81, 84, 58, 51, 52, 90, 99, 65, 62, 61, 79, 68, 69, 53, 54, 37, 76, 68, 68, 60, 66, 67, 51, 44, 64, 87, 120, 54, 42, 67, 64, 70, 33, 52, 76, 51, 59, 61, 79, 69, 65, 44, 58, 58, 56, 63, 62, 60, 64, 62, 65, 61, 81, 60, 52, 51, 80, 65, 61, 69, 58, 54, 50, 60, 54, 79, 98, 127, 69, 69, 66, 69, 62, 82, 65, 69, 93, 59, 78, 55, 65, 67, 63, 83, 55, 62, 72, 55, 55, 60, 67, 39, 77, 43, 61, 59, 54, 60, 61, 70, 62, 53, 58, 63, 69, 69, 59, 61, 82, 58, 56, 66, 79, 58, 46, 74, 59, 58, 50, 62, 50, 58, 70, 71, 53, 55, 60, 58, 60, 67, 55, 71, 54, 49, 69, 78, 107, 68, 40, 71, 59, 71, 59, 59, 77, 56, 63, 72, 65, 118, 74, 65, 79, 61, 88, 81, 55, 68, 76, 82, 58, 52, 61, 54, 61, 72, 59, 84, 65, 64, 72, 60, 63, 76, 57, 52, 74, 66, 108, 77, 47, 53, 50, 50, 53, 75, 80, 80, 63, 73, 62, 63, 91, 62, 77, 58, 60, 65, 70, 67, 61, 54, 82, 70, 64, 74, 71, 54, 61, 57, 73, 77, 63, 65, 89, 58, 53, 57, 52, 54, 64, 68, 110, 60, 67, 60, 80, 62, 53, 85, 77, 60, 76, 51, 61, 66, 61, 56, 58, 53, 54, 57, 71, 54, 60, 55, 65, 75, 52, 58, 64, 54, 104, 62, 67, 77, 57, 66, 58, 73, 60, 63, 69, 56, 82, 64, 51, 96, 74, 61, 58, 45, 80, 59, 61, 87, 56, 65, 49, 66, 71, 84, 64, 77, 57, 59, 40, 85, 64, 51, 61, 64, 62, 68, 61, 78, 54, 67, 59, 71, 59, 71, 73, 77, 50, 82, 101, 85, 67, 54, 57, 49, 62, 71, 66, 59, 66, 58, 70, 52, 75, 46, 62, 38, 94, 79, 72, 71, 57, 67, 65, 54, 116, 61, 77, 71, 61, 76, 79, 70, 85, 65, 50, 52, 56, 55, 100, 66, 79, 69, 60, 68, 66, 47, 55, 62, 67, 101, 48, 79, 70, 66, 62, 57, 77, 64, 66, 45, 60, 50, 95, 48, 63, 77, 72, 76, 64, 58, 49, 73, 70, 46, 55, 64, 57, 70, 56, 57, 72, 74, 49, 75, 66, 56, 66, 76, 65, 63, 58, 75, 88, 66, 87, 89, 82, 72, 53, 58, 61, 54, 58, 56, 74, 70, 67, 62, 69, 59, 52, 68, 79, 113, 83, 65, 49, 69, 70, 54, 60, 67, 63, 61, 61, 55, 53, 66, 51, 64, 54, 61, 71, 41, 87, 63, 64, 78, 81, 45, 59, 43, 55, 85, 68, 58, 67, 93, 67, 62, 57, 59, 74, 88, 69, 66, 62, 52, 58, 69, 86, 110, 69, 57, 51, 60, 65, 61, 65, 56, 69, 56, 64, 58, 55, 68, 44, 76, 43, 56, 61, 69, 70, 71, 59, 67, 70, 48, 51, 102, 63, 56, 63, 60, 56, 79, 47, 51, 67, 56, 70, 52, 86, 43, 67, 50, 48, 82, 59, 67, 63, 66, 51, 73, 70, 62, 63, 93, 55, 69, 52, 62, 67, 60, 77, 55, 72, 62, 75, 57, 75, 76, 61, 60, 68, 71, 70, 53, 53, 70, 62, 56, 86, 48, 66, 78, 70, 79, 36, 61, 71, 57, 86, 66, 73, 71, 50, 63, 64, 74, 77, 57, 72, 85, 69, 50, 79, 55, 65, 58, 61, 44, 70, 62, 48, 59, 60, 98, 83, 50, 75, 54, 73, 58, 105, 70, 62, 59, 50, 106, 67, 65, 83, 47, 54, 74, 65, 71, 77, 85, 62, 68, 66, 60, 111, 72, 45, 57, 62, 55, 81, 63, 63, 58, 63, 73, 72, 66, 52, 59, 57, 51, 71, 63, 32, 60, 59, 51, 79, 87, 57, 51, 79, 59, 80, 75, 57, 61, 91, 64, 40, 76, 67, 57, 87, 52, 49, 79, 67, 56, 62, 73, 47, 77, 75, 70, 65, 57, 64, 66, 43, 74, 83, 68, 60, 98, 61, 47, 71, 78, 49, 57, 75, 70, 71, 64, 58, 67, 66, 128, 44, 67, 102, 51, 66, 71, 56, 67, 66, 71, 61, 51, 79, 55, 53, 55, 43, 66, 85, 66, 96, 60, 78, 59, 67, 73, 82, 56, 67, 62, 61, 64, 72, 56, 73, 56, 67, 71, 49, 82, 52, 64, 67, 71, 68, 91, 55, 54, 57, 50, 77, 66, 43, 64, 54, 60, 52, 70, 99, 83, 58, 67, 59, 59, 62, 103, 87, 63, 76, 62, 68, 79, 61, 73, 50, 55, 56, 69, 55, 65, 67, 69, 83, 75, 61, 68, 87, 58, 62, 57, 56, 85, 58, 61, 45, 75, 77, 69, 66, 60, 81, 73, 60, 78, 56, 44, 60, 61, 41, 64, 73, 66, 72, 89, 54, 54, 87, 61, 31, 83, 66, 52, 77, 66, 74, 63, 63, 59, 71, 77, 56, 94, 65, 47, 97, 59, 46, 55, 58, 77, 79, 65, 60, 51, 50, 56, 93, 61, 71, 65, 52, 77, 54, 75, 83, 78, 70, 57, 62, 57, 65, 69, 58, 54, 78, 53, 69, 61, 58, 57, 48, 73, 68, 67, 63, 44, 65, 59, 78, 68, 59, 68, 76, 66, 74, 65, 74, 89, 57, 50, 59, 60, 75, 67, 102, 59, 52, 64, 63, 65, 119, 72, 71, 78, 68, 76, 61, 75, 60, 58, 59, 89, 51, 66, 71, 128, 56, 62, 69, 53, 88, 82, 68, 60, 71, 53, 69, 68, 57, 44, 97, 53, 76, 68, 79, 60, 60, 71, 83, 55, 70, 72, 66, 78, 84, 50, 60, 60, 94, 78, 65, 58, 91, 59, 60, 114, 75, 60, 67, 56, 68, 50, 63, 65, 71, 71, 63, 42, 67, 55, 49, 66, 70, 61, 63, 83, 66, 46, 58, 80, 69, 60, 54, 54, 68, 44, 69, 63, 59, 47, 72, 45, 76, 58, 94, 59, 69, 56, 79, 64, 80, 65, 54, 70, 65, 88, 70, 44, 107, 94, 69, 73, 62, 68, 76, 59, 59, 58, 92, 63, 75, 95, 60, 58, 58, 55, 55, 53, 54, 56, 46, 71, 77, 63, 60, 49, 74, 100, 74, 30, 69, 61, 66, 76, 55, 60, 48, 63, 109, 42, 79, 78, 59, 64, 56, 93, 55, 56, 67, 57, 75, 59, 60, 67, 74, 35, 56, 68, 67, 62, 54, 94, 49, 77, 57, 112, 52, 66, 65, 50, 61, 65, 86, 72, 54, 71, 58, 62, 56, 76, 52, 58, 55, 87, 69, 69, 55, 84, 59, 73, 61, 64, 57, 83, 40, 68, 73, 81, 63, 62, 62, 58, 66, 77, 67, 75, 68, 61, 76, 57, 60, 73, 60, 62, 53, 93, 79, 44, 57, 69, 60, 83, 62, 52, 95, 69, 74, 53, 80, 56, 133, 94, 48, 57, 67, 80, 61, 78, 64, 50, 53, 57, 63, 62, 61, 75, 76, 97, 54, 61, 63, 59, 62, 81, 109, 58, 49, 71, 56, 53, 81, 68, 64, 55, 59, 56, 80, 85, 67, 54, 50, 72, 49, 68, 48, 65, 55, 98, 70, 64, 92, 82, 66, 67, 70, 66, 46, 61, 74, 82, 62, 61, 100, 87, 62, 58, 70, 62, 64, 53, 43, 54, 90, 73, 59, 70, 66, 75, 85, 88, 40, 71, 42, 64, 74, 82, 57, 47, 66, 60, 46, 60, 68, 86, 67, 54, 53, 75, 54, 67, 59, 65, 99, 79, 54, 70, 65, 71, 63, 71, 76, 90, 64, 66, 69, 73, 78, 95, 69, 62, 59, 69, 71, 63, 74, 53, 76, 63, 78, 56, 69, 71, 103, 69, 87, 63, 68, 63, 63, 63, 65, 55, 53, 63, 54, 65, 49, 51, 57, 74, 48, 68, 135, 74, 75, 84, 72, 58, 58, 57, 78, 55, 52, 67, 64, 61, 60, 58, 95, 42, 66, 57, 76, 77, 57, 81, 59, 65, 61, 81, 58, 73, 87, 56, 52, 81, 50, 91, 60, 63, 59, 58, 77, 54, 64, 57, 74, 56, 64, 53, 83, 67, 95, 67, 59, 70, 68, 61, 58, 60, 69, 60, 84, 68, 61, 56, 60, 62, 76, 56, 88, 68, 64, 66, 75, 66, 80, 48, 61, 62, 68, 66, 55, 66, 76, 53, 55, 55, 64, 70, 55, 67, 79, 62, 70, 60, 66, 81, 52, 59, 53, 71, 72, 74, 81, 58, 56, 74, 53, 67, 58, 62, 56, 63, 72, 67, 88, 64, 60, 78, 54, 70, 76, 57, 61, 62, 68, 90, 55, 70, 76, 67, 53, 63, 58, 75, 56, 63, 68, 52, 79, 60, 67, 61, 56, 56, 56, 63, 61, 82, 63, 57, 51, 87, 118, 58, 89, 73, 43, 112, 61, 62, 59, 74, 50, 62, 66, 80, 70, 94, 58, 53, 73, 53, 78, 67, 83, 66, 67, 77, 67, 61, 63, 48, 70, 64, 39, 78, 57, 67, 73, 69, 81, 80, 101, 58, 53, 62, 70, 61, 62, 67, 44, 55, 63, 66, 60, 46, 77, 63, 79, 48, 72, 56, 75, 55, 57, 86, 50, 47, 66, 43, 62, 81, 71, 52, 61, 52, 60, 79, 61, 73, 67, 75, 82, 72, 53, 62, 70, 112, 61, 79, 62, 74, 68, 57, 59, 72, 63, 58, 49, 61, 50, 53, 76, 65, 60, 58, 57, 51, 61, 64, 62, 79, 71, 77, 37, 56, 59, 73, 63, 69, 69, 85, 72, 50, 76, 54, 57, 72, 77, 131, 72, 48, 59, 71, 49, 67, 79, 77, 69, 82, 65, 92, 57, 63, 99, 50, 70, 56, 59, 73, 59, 76, 52, 56, 66, 63, 72, 59, 71, 61, 53, 51, 90, 50, 53, 43, 83, 111, 77, 99, 58, 70, 50, 74, 59, 52, 77, 62, 74, 66, 77, 57, 54, 40, 58, 67, 99, 55, 41, 57, 48, 74, 64, 59, 62, 69, 75, 67, 58, 69, 67, 61, 109, 53, 67, 61, 81, 73, 69, 77, 75, 68, 55, 53, 62, 101, 58, 51, 49, 77, 61, 57, 75, 55, 69, 44, 68, 68, 51, 50, 71, 79, 72, 57, 41, 59, 60, 52, 73, 60, 62, 68, 95, 61, 66, 57, 130, 80, 60, 60, 68, 72, 69, 81, 50, 77, 79, 66, 54, 66, 82, 55, 56, 70, 61, 82, 67, 58, 57, 76, 91, 76, 60, 74, 75, 54, 117, 66, 57, 54, 44, 64, 74, 58, 90, 55, 57, 64, 81, 87, 71, 50, 62, 45, 46, 47, 62, 75, 52, 97, 76, 56, 60, 71, 46, 62, 76, 108, 56, 71, 53, 63, 90, 64, 62, 46, 55, 76, 62, 64, 59, 70, 75, 61, 58, 50, 63, 71, 71, 53, 56, 82, 75, 62, 70, 70, 75, 58, 65, 74, 63, 62, 53, 67, 64, 53, 66, 62, 74, 74, 66, 53, 66, 56, 69, 76, 55, 66, 72, 89, 65, 78, 58, 92, 59, 62, 59, 63, 74, 43, 63, 92, 52, 67, 82, 56, 63, 96, 73, 57, 57, 57, 70, 54, 78, 95, 67, 118, 126, 54, 59, 50, 51, 48, 56, 58, 68, 55, 53, 52, 58, 63, 80, 87, 71, 65, 61, 95, 39, 79, 60, 64, 72, 65, 78, 75, 54, 51, 66, 43, 70, 77, 78, 72, 103, 80, 78, 82, 46, 53, 50, 61, 45, 72, 70, 54, 72, 75, 108, 82, 91, 58, 67, 48, 75, 85, 62, 103, 69, 60, 54, 75, 74, 55, 75, 86, 80, 54, 71, 66, 81, 70, 64, 72, 55, 60, 83, 66, 63, 79, 66, 64, 67, 65, 71, 60, 61, 53, 63, 106, 56, 66, 61, 80, 74, 76, 68, 74, 64, 61, 38, 53, 84, 61, 66, 71, 61, 57, 52, 67, 57, 58, 57, 71, 74, 61, 55, 55, 59, 57, 64, 54, 72, 56, 66, 76, 74, 71, 78, 58, 66, 85, 65, 91, 67, 62, 76, 62, 99, 73, 62, 57, 68, 74, 91, 52, 70, 68, 58, 59, 50, 75, 85, 66, 66, 80, 66, 67, 78, 54, 59, 54, 86, 57, 63, 77, 67, 53, 44, 70, 59, 57, 72, 93, 57, 54, 45, 61, 76, 75, 68, 72, 72, 69, 78, 67, 72, 66, 61, 60, 55, 60, 62, 71, 82, 61, 38, 55, 75, 55, 65, 71, 52, 78, 51, 108, 73, 50, 66, 72, 60, 62, 109, 51, 76, 50, 46, 62, 63, 68, 61, 75, 58, 52, 61, 72, 59, 73, 64, 56, 50, 37, 50, 63, 70, 60, 67, 83, 52, 59, 58, 78, 53, 68, 65, 47, 69, 55, 61, 54, 74, 49, 64, 119, 55, 64, 43, 66, 56, 62, 72, 67, 107, 66, 58, 68, 70, 79, 55, 60, 81, 41, 59, 62, 74, 45, 43, 56, 65, 78, 50, 65, 76, 58, 88, 68, 76, 58, 61, 62, 69, 71, 61, 102, 65, 122, 48, 64, 53, 66, 54, 73, 53, 77, 75, 67, 71, 71, 75, 76, 71, 59, 57, 50, 63, 69, 56, 64, 73, 40, 85, 58, 72, 72, 59, 52, 58, 46, 70, 54, 65, 59, 71, 74, 56, 62, 57, 58, 58, 44, 41, 57, 79, 58, 56, 65, 61, 63, 68, 59, 85, 92, 76, 63, 65, 71, 80, 50, 66, 70, 63, 50, 90, 93, 86, 57, 107, 74, 75, 65, 55, 63, 61, 71, 58, 52, 60, 76, 67, 74, 57, 84, 60, 76, 61, 146, 62, 54, 59, 68, 74, 59, 61, 79, 63, 74, 60, 65, 71, 62, 76, 88, 53, 60, 66, 58, 120, 58, 59, 60, 52, 65, 59, 67, 164, 113, 67, 64, 66, 60, 48, 51, 54, 91, 80, 54, 78, 64, 60, 47, 50, 51, 62, 68, 66, 87, 57, 54, 46, 65, 45, 56, 60, 71, 65, 55, 70, 56, 55, 44, 113, 53, 68, 64, 42, 57, 57, 120, 46, 62, 53, 59, 76, 53, 42, 56, 53, 62, 56, 62, 57, 59, 51, 105, 33, 64, 46, 56, 53, 50, 74, 55, 76, 66, 95, 63, 60, 101, 87, 67, 62, 62, 80, 54, 59, 67, 76, 67, 64, 67, 70, 107, 72, 92, 66, 64, 64, 58, 59, 94, 58, 63, 76, 59, 61, 49, 58, 48, 70, 50, 44, 63, 59, 64, 54, 66, 70, 77, 58, 63, 68, 78, 63, 56, 53, 69, 60, 68, 57, 60, 47, 52, 65, 83, 59, 71, 90, 64, 69, 60, 65, 79, 87, 73, 70, 69, 61, 59, 74, 61, 66, 83, 80, 53, 59, 64, 63, 56, 64, 63, 58, 79, 62, 78, 77, 77, 66, 68, 56, 57, 56, 68, 67, 74, 77, 58, 71, 91, 79, 60, 60, 64, 85, 83, 69, 52, 71, 82, 73, 56, 62, 60, 69, 71, 50, 62, 56, 63, 52, 78, 85, 57, 47, 67, 69, 68, 75, 64, 70, 73, 60, 57, 99, 149, 59, 64, 130, 62, 69, 69, 50, 79, 63, 58, 77, 63, 80, 62, 110, 98, 55, 64, 68, 68, 77, 64, 57, 76, 71, 64, 52, 60, 71, 65, 79, 52, 63, 54, 72, 82, 48, 84, 52, 128, 62, 45, 70, 67, 116, 79, 72, 50, 60, 67, 79, 60, 64, 70, 41, 70, 68, 29, 56, 93, 64, 60, 50, 75, 56, 62, 58, 74, 73, 66, 61, 64, 88, 67, 68, 64, 58, 64, 58, 65, 83, 53, 61, 94, 69, 105, 67, 78, 74, 65, 66, 63, 94, 81, 66, 57, 70, 43, 63, 82, 75, 61, 68, 78, 72, 56, 64, 57, 77, 67, 68, 65, 62, 66, 70, 58, 60, 52, 64, 57, 68, 83, 86, 49, 64, 40, 51, 106, 79, 97, 61, 69, 90, 66, 63, 64, 83, 47, 74, 45, 55, 69, 64, 60, 87, 63, 72, 45, 60, 72, 54, 65, 71, 58, 66, 67, 59, 50, 69, 83, 69, 73, 66, 76, 80, 59, 74, 81, 61, 72, 65, 61, 74, 133, 58, 56, 77, 79, 51, 63, 58, 71, 80, 46, 71, 94, 64, 100, 58, 55, 53, 51, 71, 60, 50, 60, 57, 52, 71, 56, 68, 64, 56, 52, 65, 54, 87, 60, 82, 56, 69, 70, 90, 74, 61, 61, 63, 64, 38, 64, 50, 54, 82, 61, 67, 61, 70, 56, 47, 48, 72, 54, 71, 55, 54, 124, 61, 74, 68, 59, 55, 76, 66, 73, 57, 71, 57, 47, 56, 63, 60, 67, 50, 62, 65, 66, 63, 58, 52, 64, 61, 81, 65, 51, 63, 56, 49, 66, 71, 77, 61, 62, 60, 59, 53, 56, 84, 70, 82, 64, 54, 54, 49, 67, 69, 65, 65, 46, 52, 46, 74, 67, 81, 53, 56, 78, 81, 82, 56, 52, 64, 54, 67, 67, 66, 67, 60, 68, 67, 57, 72, 55, 60, 61, 55, 60, 126, 67, 59, 53, 64, 76, 63, 62, 54, 51, 63, 64, 63, 53, 56, 67, 68, 43, 52, 56, 65, 73, 55, 88, 66, 54, 69, 68, 60, 47, 56, 56, 73, 72, 68, 94, 58, 59, 62, 65, 62, 66, 61, 67, 61, 61, 112, 66, 71, 67, 56, 70, 57, 53, 74, 69, 75, 60, 56, 60, 71, 48, 57, 57, 77, 72, 69, 43, 53, 78, 40, 46, 84, 62, 60, 55, 51, 56, 69, 68, 44, 58, 86, 50, 74, 55, 69, 49, 68, 65, 49, 66, 67, 73, 69, 46, 57, 69, 60, 62, 64, 42, 45, 54, 63, 55, 112, 79, 56, 52, 77, 81, 47, 53, 55, 65, 66, 62, 65, 63, 64, 63, 48, 66, 63, 58, 71, 59, 66, 72, 65, 51, 49, 60, 56, 70, 55, 76, 36, 75, 65, 115, 60, 71, 50, 66, 50, 88, 61, 57, 61, 69, 55, 64, 57, 52, 41, 72, 69, 64, 77, 79, 94, 64, 50, 57, 54, 87, 66, 73, 68, 74, 60, 63, 83, 62, 56, 73, 66, 74, 61, 62, 54, 78, 48, 51, 62, 64, 72, 66, 55, 57, 66, 68, 75, 64, 50, 59, 65, 58, 69, 84, 51, 56, 64, 56, 57, 65, 55, 59, 56, 84, 61, 64, 62, 79, 53, 73, 64, 85, 59, 59, 56, 63, 62, 62, 81, 65, 57, 72, 47, 69, 70, 76, 60, 68, 66, 63, 53, 76, 77, 59, 61, 74, 55, 100, 65, 52, 70, 139, 66, 77, 60, 66, 97, 47, 46, 62, 62, 60, 80, 86, 74, 73, 62, 66, 62, 67, 68, 109, 69, 59, 65, 49, 63, 51, 73, 61, 59, 61, 58, 67, 57, 65, 58, 67, 51, 60, 72, 96, 76, 57, 85, 68, 53, 58, 142, 64, 55, 44, 93, 55, 70, 85, 59, 46, 65, 49, 121, 78, 62, 55, 66, 58, 122, 64, 56, 58, 50, 62, 71, 57, 64, 63, 67, 64, 84, 69, 74, 48, 69, 69, 73, 70, 66, 62, 63, 99, 67, 76, 86, 73, 60, 63, 73, 55, 69, 67, 79, 70, 87, 64, 63, 64, 50, 63, 67, 64, 69, 64, 61, 57, 56, 67, 63, 62, 54, 57, 70, 60, 54, 79, 68, 60, 77, 56, 69, 47, 61, 56, 52, 58, 42, 64, 39, 75, 57, 74, 75, 69, 62, 72, 63, 100, 63, 64, 57, 58, 59, 60, 56, 70, 70, 52, 45, 57, 152, 68, 71, 41, 60, 89, 66, 74, 50, 63, 69, 64, 66, 44, 40, 58, 54, 112, 62, 52, 55, 95, 67, 59, 78, 62, 55, 71, 62, 61, 55, 70, 71, 78, 58, 62, 57, 60, 63, 74, 69, 49, 54, 51, 77, 67, 57, 63, 77, 73, 67, 61, 56, 77, 62, 98, 60, 75, 65, 64, 67, 52, 73, 59, 67, 36, 55, 59, 72, 66, 68, 68, 70, 78, 93, 66, 58, 59, 57, 57, 57, 67, 68, 69, 119, 64, 66, 70, 52, 47, 61, 69, 56, 69, 52, 56, 59, 59, 64, 63, 60, 78, 53, 58, 71, 63, 58, 82, 60, 69, 117, 74, 62, 60, 68, 81, 75, 50, 45, 68, 56, 51, 69, 91, 71, 64, 61, 70, 64, 65, 45, 95, 69, 59, 80, 67, 64, 49, 77, 63, 52, 99, 72, 54, 65, 53, 60, 59, 61, 53, 53, 67, 53, 67, 53, 56, 74, 61, 63, 60, 86, 63, 62, 57, 47, 67, 74, 57, 61, 60, 65, 60, 71, 59, 67, 52, 60, 89, 67, 85, 70, 78, 67, 57, 62, 73, 61, 60, 73, 112, 59, 61, 53, 58, 56, 60, 82, 69, 70, 81, 62, 82, 83, 77, 65, 65, 58, 57, 73, 51, 62, 70, 71, 48, 55, 57, 59, 67, 60, 78, 62, 88, 85, 85, 59, 55, 69, 58, 63, 73, 67, 47, 54, 50, 73, 70, 88, 64, 68, 67, 84, 85, 65, 63, 66, 64, 50, 84, 48, 57, 61, 54, 75, 70, 73, 94, 68, 54, 77, 77, 59, 62, 68, 69, 71, 71, 93, 71, 68, 54, 95, 86, 67, 78, 67, 85, 66, 57, 52, 77, 105, 64, 70, 61, 85, 67, 76, 79, 95, 82, 46, 65, 56, 75, 88, 57, 44, 47, 56, 51, 66, 57, 74, 77, 42, 71, 62, 61, 66, 53, 91, 50, 62, 65, 66, 66, 51, 73, 79, 48, 72, 76, 65, 57, 67, 68, 55, 51, 59, 71, 61, 61, 53, 54, 61, 62, 64, 54, 72, 73, 51, 104, 58, 67, 68, 75, 62, 72, 60, 62, 60, 67, 83, 50, 71, 73, 73, 57, 72, 56, 65, 71, 65, 71, 67, 71, 69, 40, 61, 37, 65, 50, 89, 50, 64, 82, 45, 65, 62, 60, 80, 63, 55, 69, 55, 82, 65, 65, 59, 58, 65, 58, 83, 67, 55, 69, 78, 68, 80, 61, 91, 59, 53, 61, 66, 64, 64, 53, 61, 72, 52, 100, 60, 104, 121, 87, 72, 46, 73, 63, 36, 61, 50, 57, 66, 53, 48, 69, 48, 67, 69, 61, 70, 51, 65, 50, 57, 73, 80, 67, 50, 75, 76, 56, 43, 87, 55, 69, 89, 63, 77, 84, 73, 77, 53, 50, 74, 53, 65, 53, 48, 69, 44, 68, 68, 59, 66, 66, 69, 63, 66, 89, 60, 79, 58, 68, 56, 66, 63, 56, 49, 84, 75, 78, 55, 90, 69, 71, 67, 62, 104, 65, 74, 58, 58, 81, 61, 66, 84, 79, 85, 57, 50, 59, 40, 71, 88, 58, 46, 66, 53, 74, 51, 70, 54, 64, 61, 62, 67, 75, 49, 53, 77, 53, 60, 92, 75, 80, 67, 79, 69, 88, 61, 69, 76, 57, 103, 58, 58, 52, 63, 60, 49, 69, 79, 49, 56, 71, 88, 81, 54, 66, 80, 67, 53, 87, 88, 56, 54, 63, 63, 81, 59, 59, 61, 65, 64, 52, 86, 60, 61, 79, 51, 40, 73, 52, 81, 57, 58, 58, 70, 70, 66, 72, 76, 60, 39, 63, 48, 58, 104, 60, 43, 75, 65, 44, 98, 86, 59, 75, 62, 57, 67, 73, 81, 57, 64, 87, 76, 47, 60, 63, 110, 55, 44, 55, 59, 65, 60, 53, 57, 71, 59, 87, 75, 63, 116, 49, 69, 67, 48, 48, 60, 41, 108, 85, 86, 70, 55, 89, 70, 62, 66, 53, 96, 48, 75, 80, 106, 73, 50, 57, 59, 73, 69, 82, 65, 61, 49, 74, 60, 64, 73, 42, 59, 43, 67, 67, 114, 80, 71, 65, 57, 56, 61, 75, 49, 48, 57, 67, 45, 67, 80, 66, 70, 88, 63, 62, 91, 57, 60, 62, 76, 73, 40, 56, 65, 65, 62, 100, 60, 65, 60, 95, 47, 50, 70, 35, 88, 75, 71, 42, 83, 47, 67, 77, 46, 44, 84, 54, 61, 69, 55, 70, 71, 61, 72, 73, 64, 72, 68, 72, 51, 72, 123, 58, 57, 71, 69, 58, 71, 66, 70, 83, 86, 49, 54, 76, 63, 80, 45, 63, 64, 77, 56, 64, 71, 58, 65, 52, 62, 61, 82, 70, 74, 63, 72, 50, 85, 64, 68, 64, 67, 69, 48, 73, 78, 81, 78, 60, 56, 80, 62, 58, 73, 44, 62, 59, 90, 80, 63, 52, 59, 100, 56, 56, 66, 68, 41, 74, 65, 42, 60, 58, 82, 85, 62, 76, 59, 48, 63, 62, 77, 66, 63, 79, 52, 67, 80, 62, 62, 61, 61, 43, 58, 71, 54, 59, 82, 51, 84, 94, 74, 42, 77, 57, 78, 62, 63, 52, 59, 54, 87, 71, 81, 70, 69, 65, 61, 68, 54, 59, 63, 52, 78, 41, 57, 82, 60, 74, 47, 53, 56, 47, 101, 44, 45, 76, 70, 53, 81, 70, 59, 80, 54, 66, 62, 43, 70, 93, 76, 72, 70, 48, 103, 68, 48, 77, 110, 85, 82, 50, 47, 65, 61, 60, 44, 59, 67, 58, 85, 56, 96, 51, 75, 61, 71, 65, 72, 81, 52, 54, 45, 58, 103, 74, 49, 57, 42, 52, 61, 64, 88, 54, 53, 56, 69, 42, 91, 92, 65, 66, 89, 91, 75, 96, 85, 71, 73, 72, 44, 66, 52, 73, 81, 84, 52, 56, 71, 66, 58, 78, 83, 69, 72, 68, 72, 68, 72, 44, 80, 67, 77, 61, 42, 94, 75, 47, 51, 61, 59, 59, 52, 70, 81, 78, 81, 49, 84, 67, 66, 67, 63, 63, 57, 57, 77, 66, 87, 50, 68, 66, 67, 61, 64, 66, 87, 61, 47, 73, 82, 63, 65, 75, 61, 60, 59, 51, 78, 78, 61, 62, 61, 51, 81, 64, 63, 89, 50, 93, 58, 67, 77, 47, 79, 57, 68, 66, 71, 75, 74, 69, 61, 55, 65, 83, 64, 66, 69, 72, 57, 45, 48, 106, 76, 60, 72, 58, 63, 58, 73, 90, 50, 64, 55, 81, 72, 64, 103, 80, 36, 99, 68, 49, 68, 57, 44, 87, 61, 63, 80, 81, 107, 56, 76, 71, 80, 60, 62, 57, 82, 57, 89, 57, 70, 74, 55, 66, 54, 73, 64, 60, 96, 54, 65, 59, 79, 91, 66, 109, 70, 57, 63, 58, 64, 68, 80, 75, 53, 74, 70, 110, 78, 56, 84, 91, 59, 62, 43, 83, 65, 63, 76, 61, 57, 45, 73, 72, 52, 60, 70, 74, 81, 91, 53, 49, 62, 81, 83, 83, 81, 66, 63, 60, 64, 76, 50, 84, 61, 58, 92, 55, 65, 39, 71, 83, 63, 68, 51, 56, 61, 45, 81, 54, 69, 58, 99, 83, 50, 78, 71, 58, 75, 63, 69, 59, 74, 65, 51, 77, 69, 55, 52, 49, 82, 60, 67, 61, 64, 67, 48, 59, 68, 51, 67, 71, 72, 96, 80, 92, 79, 80, 54, 59, 66, 81, 63, 66, 67, 65, 59, 50, 64, 73, 54, 61, 79, 72, 76, 67, 63, 57, 61, 72, 75, 81, 65, 51, 47, 62, 66, 70, 59, 50, 52, 77, 72, 83, 43, 70, 81, 54, 60, 67, 79, 81, 61, 61, 57, 62, 64, 65, 73, 72, 88, 67, 49, 26, 46, 58, 59, 58, 112, 45, 85, 86, 60, 74, 63, 82, 72, 113, 63, 61, 75, 89, 69, 47, 56, 59, 59, 55, 70, 87, 58, 70, 59, 59, 61, 47, 63, 63, 68, 70, 128, 49, 80, 64, 71, 97, 70, 68, 69, 73, 101, 56, 60, 67, 38, 61, 120, 75, 63, 80, 53, 52, 53, 77, 54, 44, 68, 53, 61, 70, 62, 60, 60, 83, 68, 79, 56, 61, 65, 61, 50, 68, 75, 70, 85, 61, 89, 51, 58, 59, 78, 67, 79, 66, 74, 66, 66, 70, 70, 57, 92, 67, 65, 65, 70, 77, 73, 57, 62, 134, 66, 54, 96, 66, 73, 53, 65, 53, 73, 62, 72, 59, 57, 68, 88, 89, 70, 76, 73, 72, 67, 66, 41, 55, 59, 53, 57, 59, 49, 65, 63, 65, 43, 71, 63, 79, 61, 61, 84, 76, 59, 84, 69, 62, 56, 70, 70, 62, 104, 79, 71, 66, 85, 45, 49, 38, 47, 54, 52, 72, 81, 62, 64, 73, 53, 109, 88, 58, 51, 69, 94, 56, 51, 82, 56, 68, 59, 80, 68, 66, 75, 56, 48, 83, 58, 54, 79, 64, 61, 69, 70, 72, 60, 62, 68, 60, 73, 63, 73, 62, 67, 69, 81, 77, 55, 65, 63, 93, 62, 70, 64, 86, 71, 48, 81, 74, 48, 76, 76, 83, 57, 43, 55, 73, 56, 56, 62, 55, 74, 81, 96, 66, 98, 72, 78, 83, 52, 77, 91, 67, 70, 53, 57, 68, 56, 56, 48, 79, 64, 94, 59, 68, 55, 55, 59, 53, 60, 47, 67, 60, 93, 83, 45, 60, 73, 51, 65, 69, 73, 58, 69, 59, 57, 63, 59, 59, 66, 92, 64, 50, 73, 61, 67, 76, 75, 60, 57, 56, 67, 72, 59, 94, 72, 65, 82, 60, 66, 73, 95, 65, 89, 56, 60, 68, 54, 31, 78, 62, 77, 44, 51, 49, 60, 111, 68, 74, 64, 51, 59, 62, 41, 64, 101, 116, 48, 51, 64, 59, 60, 58, 63, 83, 57, 78, 33, 80, 72, 64, 48, 48, 95, 74, 50, 59, 48, 57, 88, 40, 84, 70, 62, 41, 78, 44, 67, 58, 46, 57, 67, 65, 124, 61, 84, 58, 57, 59, 82, 60, 68, 74, 76, 61, 66, 67, 55, 50, 83, 70, 74, 55, 64, 66, 97, 92, 64, 97, 70, 76, 67, 50, 51, 66, 76, 63, 68, 105, 56, 82, 90, 59, 62, 87, 54, 55, 69, 69, 69, 73, 64, 68, 57, 70, 67, 65, 57, 57, 63, 50, 51, 75, 59, 63, 68, 66, 74, 54, 69, 65, 77, 52, 63, 75, 56, 70, 70, 98, 85, 65, 73, 67, 72, 58, 59, 49, 75, 73, 79, 75, 61, 41, 48, 60, 48, 89, 58, 75, 72, 83, 79, 66, 50, 54, 68, 90, 67, 70, 87, 50, 59, 61, 60, 74, 57, 59, 51, 50, 47, 76, 66, 75, 59, 72, 50, 66, 76, 60, 57, 66, 43, 52, 66, 61, 62, 62, 60, 64, 57, 58, 102, 77, 51, 58, 67, 76, 57, 60, 50, 72, 72, 107, 51, 70, 82, 62, 62, 71, 66, 44, 85, 37, 67, 62, 61, 74, 85, 106, 72, 78, 89, 58, 87, 74, 44, 66, 45, 92, 61, 47, 70, 51, 73, 57, 58, 71, 61, 70, 69, 73, 66, 60, 62, 56, 63, 59, 68, 77, 61, 54, 54, 61, 57, 57, 72, 65, 61, 60, 58, 66, 54, 61, 75, 87, 28, 72, 74, 54, 78, 61, 63, 74, 72, 67, 57, 43, 77, 95, 40, 90, 81, 58, 53, 52, 66, 79, 76, 61, 57, 91, 61, 72, 63, 57, 84, 80, 70, 49, 82, 57, 109, 67, 75, 64, 69, 84, 83, 62, 52, 59, 82, 74, 75, 67, 53, 71, 55, 60, 55, 68, 75, 68, 53, 65, 76, 61, 74, 51, 64, 65, 82, 63, 54, 54, 69, 48, 61, 65, 56, 68, 66, 70, 75, 69, 53, 61, 61, 76, 96, 57, 59, 72, 63, 51, 72, 82, 65, 70, 66, 61, 74, 49, 78, 60, 71, 42, 58, 66, 56, 68, 48, 77, 66, 68, 57, 78, 68, 57, 83, 67, 56, 52, 76, 67, 62, 57, 57, 59, 85, 60, 55, 78, 57, 64, 51, 69, 81, 66, 68, 75, 54, 56, 50, 71, 70, 64, 42, 59, 61, 60, 53, 53, 54, 61, 70, 67, 72, 58, 59, 54, 50, 59, 82, 47, 56, 86, 66, 65, 66, 72, 57, 69, 50, 68, 79, 59, 56, 85, 85, 74, 73, 46, 54, 63, 84, 65, 61, 82, 59, 65, 55, 90, 60, 84, 93, 86, 51, 70, 86, 58, 55, 70, 59, 56, 73, 66, 72, 66, 58, 64, 64, 73, 73, 70, 59, 69, 65, 65, 81, 78, 63, 65, 56, 62, 53, 61, 81, 71, 61, 83, 58, 73, 71, 58, 55, 49, 61, 41, 48, 79, 77, 101, 52, 51, 63, 63, 45, 61, 52, 87, 63, 53, 56, 61, 72, 69, 64, 74, 70, 52, 75, 70, 74, 56, 64, 69, 45, 57, 71, 61, 57, 72, 83, 42, 46, 56, 51, 89, 65, 61, 53, 64, 61, 73, 76, 71, 53, 64, 68, 55, 47, 81, 92, 49, 93, 63, 70, 61, 52, 65, 52, 56, 79, 62, 68, 92, 83, 33, 69, 82, 76, 70, 67, 69, 70, 59, 54, 69, 71, 80, 71, 45, 71, 52, 60, 85, 67, 78, 82, 69, 81, 49, 69, 58, 68, 60, 65, 84, 66, 76, 72, 67, 58, 106, 47, 72, 43, 65, 68, 65, 56, 103, 36, 86, 91, 87, 75, 62, 75, 59, 64, 55, 78, 84, 73, 101, 57, 72, 39, 87, 78, 82, 56, 65, 56, 64, 68, 35, 60, 56, 59, 96, 59, 85, 55, 72, 73, 72, 125, 60, 80, 71, 68, 47, 54, 85, 78, 51, 67, 77, 81, 73, 67, 68, 65, 64, 41, 66, 58, 64, 66, 62, 49, 51, 57, 80, 57, 70, 82, 50, 53, 84, 52, 64, 71, 92, 55, 69, 69, 93, 46, 66, 57, 115, 62, 68, 68, 44, 66, 62, 74, 73, 61, 83, 81, 52, 47, 44, 72, 44, 51, 66, 95, 63, 86, 74, 67, 74, 64, 68, 66, 64, 65, 85, 61, 56, 66, 44, 71, 69, 92, 66, 93, 42, 71, 56, 67, 56, 78, 81, 72, 70, 63, 57, 55, 70, 53, 60, 66, 78, 49, 86, 61, 67, 79, 54, 58, 61, 132, 52, 61, 67, 63, 54, 66, 42, 50, 72, 61, 88, 54, 65, 43, 75, 60, 66, 65, 85, 50, 51, 57, 81, 44, 95, 59, 66, 50, 54, 55, 58, 60, 47, 58, 45, 51, 82, 77, 62, 71, 47, 61, 80, 59, 85, 78, 66, 56, 59, 65, 60, 55, 76, 54, 49, 57, 77, 43, 72, 61, 75, 42, 84, 70, 64, 67, 58, 74, 60, 45, 86, 55, 94, 70, 60, 57, 82, 71, 56, 81, 66, 49, 97, 55, 87, 48, 97, 69, 69, 71, 90, 97, 58, 56, 49, 74, 60, 77, 41, 58, 69, 55, 71, 65, 68, 60, 47, 71, 60, 65, 50, 66, 82, 64, 56, 61, 57, 70, 44, 50, 66, 57, 50, 51, 55, 60, 73, 98, 89, 69, 46, 65, 95, 68, 48, 46, 50, 66, 57, 45, 50, 48, 52, 99, 70, 52, 71, 64, 57, 73, 53, 70, 63, 61, 63, 65, 58, 67, 72, 54, 49, 63, 47, 75, 53, 83, 55, 54, 99, 63, 51, 51, 54, 47, 64, 72, 67, 47, 76, 62, 59, 51, 58, 55, 71, 47, 55, 74, 109, 46, 62, 88, 89, 84, 68, 63, 68, 32, 86, 54, 65, 60, 80, 54, 141, 82, 65, 64, 63, 53, 101, 94, 61, 64, 56, 67, 58, 91, 86, 87, 78, 79, 59, 60, 57, 54, 79, 97, 60, 47, 103, 86, 59, 64, 61, 67, 68, 78, 56, 74, 68, 60, 56, 67, 71, 69, 57, 68, 58, 42, 68, 66, 60, 57, 71, 65, 51, 60, 69, 75, 54, 70, 59, 54, 61, 50, 60, 62, 41, 68, 73, 48, 55, 53, 64, 59, 61, 76, 53, 94, 73, 62, 70, 61, 71, 66, 58, 48, 69, 69, 60, 61, 57, 45, 49, 64, 66, 70, 69, 79, 64, 67, 60, 70, 64, 69, 55, 52, 87, 54, 56, 98, 45, 75, 40, 66, 52, 68, 57, 59, 87, 57, 59, 74, 90, 75, 111, 68, 48, 106, 82, 55, 72, 71, 63, 81, 59, 70, 67, 56, 57, 88, 52, 55, 111, 63, 65, 79, 69, 66, 74, 64, 114, 53, 65, 98, 81, 64, 73, 91, 58, 102, 64, 72, 58, 64, 63, 63, 83, 53, 50, 71, 64, 70, 66, 64, 81, 59, 62, 55, 81, 70, 63, 37, 79, 72, 83, 63, 80, 74, 43, 130, 61, 62, 75, 70, 55, 50, 49, 87, 53, 62, 67, 57, 120, 56, 51, 71, 57, 74, 74, 64, 66, 66, 74, 97, 67, 65, 42, 73, 58, 63, 63, 70, 73, 66, 52, 53, 60, 61, 63, 80, 66, 52, 66, 65, 38, 55, 80, 67, 80, 98, 55, 73, 51, 61, 72, 46, 87, 85, 97, 60, 61, 79, 66, 74, 75, 43, 61, 54, 68, 64, 73, 56, 51, 62, 55, 69, 62, 66, 77, 70, 83, 59, 41, 85, 65, 61, 91, 61, 82, 95, 58, 72, 51, 54, 60, 51, 60, 57, 61, 104, 70, 45, 56, 70, 67, 62, 53, 69, 54, 63, 49, 64, 71, 65, 55, 54, 50, 70, 52, 54, 84, 63, 94, 91, 49, 85, 56, 49, 43, 69, 58, 94, 61, 67, 47, 51, 82, 35, 75, 58, 54, 74, 43, 66, 66, 79, 67, 71, 65, 82, 48, 50, 76, 76, 46, 74, 80, 62, 55, 73, 129, 56, 57, 59, 52, 57, 75, 64, 72, 66, 57, 68, 68, 67, 67, 58, 68, 76, 49, 56, 76, 47, 52, 59, 62, 48, 73, 69, 67, 91, 38, 132, 59, 45, 58, 64, 60, 51, 83, 69, 55, 58, 60, 47, 51, 67, 52, 83, 49, 70, 83, 59, 91, 57, 55, 56, 87, 65, 53, 67, 63, 88, 54, 64, 63, 74, 59, 59, 62, 89, 66, 55, 37, 76, 76, 38, 59, 67, 51, 69, 55, 64, 68, 57, 52, 52, 56, 51, 104, 55, 48, 56, 58, 56, 110, 61, 59, 68, 58, 56, 74, 46, 69, 66, 64, 70, 57, 59, 49, 58, 65, 68, 54, 74, 58, 62, 71, 73, 57, 53, 60, 63, 60, 74, 54, 50, 66, 100, 58, 73, 47, 69, 52, 77, 63, 58, 72, 66, 50, 49, 60, 48, 61, 77, 75, 79, 53, 52, 75, 86, 92, 98, 55, 64, 50, 105, 64, 64, 67, 74, 59, 62, 86, 66, 76, 55, 62, 67, 64, 70, 71, 49, 92, 73, 71, 59, 58, 61, 46, 70, 53, 73, 78, 69, 67, 53, 61, 94, 60, 93, 57, 52, 57, 58, 88, 54, 63, 64, 60, 62, 78, 44, 71, 56, 68, 75, 72, 64, 74, 58, 62, 64, 57, 69, 93, 62, 63, 51, 66, 67, 57, 108, 61, 53, 66, 90, 50, 58, 83, 67, 58, 61, 67, 54, 76, 66, 76, 95, 73, 76, 54, 51, 64, 71, 61, 87, 54, 58, 57, 71, 61, 51, 61, 70, 69, 83, 144, 58, 51, 68, 98, 71, 59, 81, 55, 77, 56, 53, 59, 81, 55, 78, 61, 50, 58, 73, 65, 55, 58, 56, 90, 101, 59, 80, 59, 51, 70, 68, 59, 68, 91, 45, 57, 69, 84, 50, 66, 71, 99, 69, 94, 56, 45, 63, 37, 87, 63, 54, 57, 70, 56, 78, 90, 73, 59, 77, 74, 80, 52, 53, 49, 78, 54, 71, 122, 63, 66, 76, 68, 48, 45, 48, 99, 69, 49, 61, 66, 57, 81, 54, 70, 60, 46, 52, 52, 67, 55, 60, 67, 61, 61, 64, 76, 45, 71, 49, 66, 85, 60, 97, 49, 71, 66, 52, 72, 55, 72, 84, 67, 72, 78, 62, 61, 65, 69, 59, 63, 60, 87, 73, 55, 73, 60, 88, 119, 53, 44, 52, 69, 60, 73, 68, 65, 65, 82, 73, 66, 61, 71, 88, 46, 83, 77, 67, 73, 77, 54, 42, 64, 54, 90, 70, 51, 77, 46, 61, 70, 70, 66, 76, 53, 75, 51, 81, 165, 83, 61, 66, 58, 69, 57, 78, 47, 60, 57, 99, 51, 56, 61, 73, 51, 75, 73, 79, 65, 56, 76, 78, 60, 80, 72, 78, 51, 55, 70, 55, 57, 54, 77, 59, 74, 69, 85, 78, 56, 49, 59, 68, 66, 84, 72, 69, 64, 79, 56, 59, 80, 61, 84, 82, 56, 72, 72, 83, 92, 52, 63, 57, 76, 53, 88, 60, 72, 54, 59, 78, 88, 67, 111, 68, 63, 61, 62, 126, 65, 54, 94, 71, 68, 44, 63, 72, 64, 67, 79, 58, 51, 66, 69, 65, 63, 62, 61, 73, 71, 66, 39, 60, 63, 61, 55, 96, 69, 41, 64, 53, 56, 67, 56, 82, 67, 86, 59, 79, 86, 47, 57, 73, 51, 60, 67, 79, 44, 71, 81, 55, 78, 50, 62, 59, 93, 60, 86, 50, 132, 66, 66, 52, 58, 59, 65, 100, 84, 63, 101, 50, 81, 63, 57, 54, 58, 59, 74, 63, 64, 66, 72, 73, 67, 81, 71, 56, 55, 67, 73, 59, 86, 70, 53, 67, 61, 64, 51, 64, 67, 66, 67, 55, 68, 58, 65, 68, 66, 119, 56, 56, 75, 64, 70, 76, 63, 70, 66, 75, 75, 64, 73, 71, 110, 52, 65, 60, 50, 66, 55, 63, 94, 106, 59, 97, 51, 63, 103, 61, 63, 77, 62, 56, 46, 78, 68, 92, 67, 57, 72, 74, 85, 59, 68, 59, 63, 43, 40, 62, 67, 65, 81, 68, 43, 61, 68, 81, 94, 101, 46, 63, 81, 65, 86, 60, 71, 55, 63, 59, 66, 56, 71, 70, 69, 64, 66, 79, 55, 59, 68, 44, 52, 50, 69, 71, 57, 90, 51, 70, 82, 58, 61, 57, 76, 102, 72, 57, 70, 66, 66, 59, 58, 47, 58, 62, 67, 58, 62, 74, 67, 82, 71, 49, 74, 56, 78, 58, 70, 109, 55, 55, 60, 54, 60, 85, 64, 47, 76, 76, 69, 62, 48, 67, 52, 80, 48, 64, 75, 74, 64, 46, 67, 65, 82, 59, 72, 67, 80, 66, 62, 60, 69, 64, 83, 60, 93, 65, 77, 73, 93, 41, 52, 53, 50, 52, 75, 42, 57, 57, 62, 53, 34, 52, 66, 72, 51, 67, 67, 71, 41, 57, 61, 75, 76, 53, 65, 52, 69, 54, 66, 63, 61, 60, 68, 87, 71, 67, 61, 80, 51, 45, 68, 90, 71, 57, 65, 86, 57, 82, 66, 53, 63, 67, 64, 51, 45, 63, 72, 61, 56, 77, 50, 81, 56, 60, 78, 72, 62, 55, 48, 73, 60, 72, 61, 73, 53, 68, 70, 73, 64, 65, 77, 40, 83, 84, 51, 54, 57, 49, 54, 61, 54, 68, 61, 54, 59, 43, 87, 67, 65, 72, 69, 60, 56, 65, 67, 72, 68, 63, 69, 73, 72, 68, 54, 54, 95, 63, 55, 46, 66, 52, 63, 56, 66, 49, 65, 59, 49, 64, 78, 43, 70, 53, 58, 68, 69, 74, 55, 61, 86, 70, 61, 58, 48, 85, 78, 66, 89, 77, 64, 96, 56, 67, 65, 75, 50, 65, 62, 48, 88, 60, 86, 65, 66, 56, 59, 86, 46, 61, 63, 67, 80, 69, 49, 87, 63, 34, 67, 73, 51, 70, 50, 45, 62, 66, 82, 76, 46, 60, 96, 59, 67, 53, 60, 56, 89, 68, 83, 73, 59, 52, 106, 59, 63, 64, 46, 52, 56, 86, 80, 64, 51, 53, 52, 72, 57, 50, 63, 112, 62, 74, 48, 43, 81, 56, 70, 55, 74, 52, 66, 152, 67, 66, 69, 64, 60, 114, 70, 73, 62, 67, 49, 57, 53, 53, 70, 64, 73, 60, 50, 62, 74, 75, 77, 81, 59, 77, 64, 77, 58, 56, 52, 52, 54, 56, 56, 78, 71, 67, 64, 50, 63, 76, 65, 87, 31, 65, 57, 72, 69, 79, 58, 52, 54, 56, 66, 59, 40, 58, 55, 55, 66, 73, 50, 69, 76, 62, 114, 63, 66, 66, 45, 61, 53, 133, 61, 60, 95, 57, 45, 44, 54, 79, 72, 58, 67, 57, 63, 66, 69, 95, 76, 68, 51, 64, 70, 48, 50, 61, 54, 71, 79, 72, 65, 60, 55, 69, 47, 69, 78, 28, 48, 65, 70, 36, 67, 67, 59, 65, 87, 105, 57, 61, 93, 53, 55, 45, 47, 65, 63, 57, 69, 60, 51, 50, 52, 72, 85, 69, 52, 67, 54, 50, 69, 44, 64, 68, 60, 49, 61, 69, 68, 62, 75, 113, 68, 66, 72, 65, 61, 58, 58, 71, 70, 50, 75, 53, 53, 72, 81, 75, 60, 56, 64, 93, 58, 64, 38, 52, 62, 69, 69, 75, 66, 56, 93, 39, 56, 62, 57, 59, 109, 75, 55, 60, 90, 59, 57, 77, 47, 60, 60, 55, 71, 62, 56, 55, 102, 68, 80, 59, 67, 60, 56, 56, 80, 64, 54, 56, 69, 58, 58, 88, 66, 41, 78, 79, 55, 60, 52, 41, 79, 54, 85, 67, 71, 61, 67, 72, 76, 93, 44, 60, 67, 67, 61, 79, 70, 85, 52, 62, 58, 50, 53, 63, 72, 64, 47, 36, 77, 83, 85, 68, 41, 68, 61, 74, 74, 47, 54, 72, 60, 71, 48, 44, 75, 61, 59, 56, 50, 68, 70, 58, 67, 61, 59, 91, 90, 62, 64, 54, 63, 58, 72, 76, 60, 63, 40, 55, 128, 55, 84, 54, 72, 89, 50, 63, 61, 60, 61, 66, 64, 79, 56, 78, 59, 72, 51, 69, 77, 44, 58, 92, 72, 67, 53, 71, 113, 55, 87, 63, 52, 75, 64, 56, 88, 67, 107, 54, 56, 67, 53, 76, 63, 53, 67, 64, 46, 64, 75, 45, 57, 70, 61, 61, 83, 48, 61, 62, 67, 45, 55, 66, 65, 54, 71, 65, 75, 102, 66, 59, 118, 47, 71, 34, 43, 76, 55, 56, 50, 71, 79, 65, 80, 66, 102, 66, 69, 57, 51, 68, 60, 65, 63, 95, 77, 53, 43, 49, 65, 72, 57, 67, 42, 49, 54, 102, 130, 59, 64, 95, 102, 89, 60, 96, 41, 58, 64, 52, 58, 91, 34, 53, 54, 53, 64, 76, 65, 57, 75, 70, 72, 46, 75, 64, 61, 93, 47, 85, 54, 110, 67, 102, 61, 75, 45, 66, 61, 121, 59, 66, 74, 67, 70, 54, 74, 59, 62, 72, 57, 61, 93, 61, 51, 45, 72, 47, 82, 60, 53, 63, 68, 75, 62, 60, 92, 81, 56, 71, 58, 58, 60, 73, 51, 82, 43, 52, 83, 54, 57, 51, 74, 44, 49, 49, 60, 53, 55, 61, 61, 58, 51, 60, 64, 103, 50, 66, 66, 74, 74, 66, 67, 72, 87, 76, 67, 55, 49, 58, 71, 60, 83, 47, 58, 78, 49, 73, 60, 51, 67, 59, 80, 66, 70, 67, 57, 57, 105, 77, 55, 81, 51, 48, 68, 59, 70, 105, 53, 64, 69, 74, 47, 44, 75, 69, 94, 78, 61, 87, 52, 44, 62, 59, 53, 59, 57, 67, 81, 64, 54, 72, 50, 79, 56, 47, 69, 64, 80, 58, 57, 51, 51, 76, 80, 65, 83, 48, 49, 60, 54, 64, 87, 39, 50, 50, 80, 57, 62, 69, 62, 76, 51, 109, 58, 66, 58, 71, 84, 61, 69, 61, 72, 102, 55, 75, 58, 59, 58, 51, 57, 59, 74, 65, 68, 54, 72, 70, 65, 65, 76, 54, 64, 69, 54, 91, 58, 61, 70, 57, 58, 64, 90, 84, 79, 62, 53, 64, 52, 54, 67, 64, 98, 66, 71, 61, 57, 78, 57, 81, 63, 57, 64, 42, 77, 70, 52, 86, 70, 63, 59, 80, 54, 51, 62, 80, 61, 69, 61, 58, 64, 76, 62, 72, 58, 55, 65, 60, 55, 59, 80, 59, 72, 57, 54, 57, 60, 55, 69, 80, 101, 75, 63, 64, 69, 67, 46, 61, 55, 68, 70, 81, 69, 58, 48, 51, 72, 151, 79, 51, 61, 52, 76, 75, 59, 71, 71, 51, 64, 66, 55, 66, 62, 61, 60, 56, 46, 58, 64, 75, 66, 71, 79, 60, 85, 68, 81, 51, 78, 58, 59, 72, 69, 61, 56, 78, 81, 50, 61, 75, 58, 55, 51, 51, 52, 73, 70, 73, 67, 76, 64, 58, 61, 68, 67, 63, 49, 52, 57, 60, 57, 44, 76, 61, 53, 93, 59, 112, 81, 56, 56, 69, 73, 73, 79, 77, 62, 74, 60, 66, 67, 65, 70, 66, 60, 61, 68, 50, 75, 57, 75, 62, 62, 67, 60, 68, 52, 61, 73, 80, 81, 60, 100, 51, 48, 81, 67, 50, 85, 70, 56, 64, 62, 77, 71, 42, 68, 64, 57, 60, 62, 68, 60, 60, 67, 59, 56, 48, 53, 68, 62, 61, 77, 83, 62, 62, 81, 43, 62, 78, 83, 76, 69, 72, 65, 59, 57, 59, 75, 48, 89, 67, 47, 67, 69, 69, 58, 60, 67, 70, 73, 59, 67, 42, 52, 50, 60, 72, 63, 67, 59, 81, 58, 52, 65, 49, 62, 62, 66, 80, 104, 66, 72, 75, 61, 68, 58, 64, 80, 58, 55, 57, 73, 58, 59, 61, 58, 52, 61, 67, 61, 78, 51, 56, 64, 57, 67, 61, 71, 64, 59, 64, 52, 69, 67, 56, 78, 58, 65, 50, 77, 61, 63, 86, 62, 80, 74, 60, 60, 64, 47, 80, 79, 68, 53, 66, 54, 71, 59, 83, 69, 54, 71, 73, 52, 82, 63, 66, 59, 64, 80, 89, 63, 60, 42, 50, 55, 62, 63, 67, 83, 58, 75, 50, 96, 68, 64, 70, 61, 44, 55, 68, 70, 65, 46, 101, 59, 69, 70, 68, 51, 46, 94, 72, 83, 76, 42, 78, 49, 50, 58, 59, 80, 70, 54, 57, 105, 71, 63, 54, 82, 47, 57, 65, 81, 70, 97, 57, 73, 70, 73, 58, 72, 71, 59, 60, 54, 65, 59, 62, 62, 99, 76, 55, 66, 62, 60, 70, 63, 68, 64, 74, 62, 56, 54, 80, 79, 68, 67, 75, 67, 61, 67, 46, 58, 79, 91, 58, 71, 51, 48, 56, 76, 72, 47, 58, 57, 65, 65, 88, 64, 63, 68, 73, 49, 63, 52, 59, 81, 71, 42, 56, 68, 50, 85, 54, 56, 53, 62, 63, 67, 39, 58, 51, 57, 122, 85, 56, 51, 64, 72, 55, 75, 65, 65, 70, 47, 77, 70, 62, 64, 74, 60, 47, 54, 69, 61, 72, 67, 61, 106, 56, 58, 73, 70, 64, 93, 52, 57, 70, 71, 88, 57, 44, 59, 47, 56, 65, 60, 61, 71, 63, 67, 44, 60, 63, 70, 68, 75, 84, 69, 63, 58, 55, 95, 76, 70, 65, 69, 57, 63, 65, 95, 48, 49, 49, 57, 68, 59, 83, 71, 86, 53, 46, 68, 58, 79, 62, 76, 57, 88, 62, 86, 70, 74, 54, 48, 73, 55, 69, 79, 64, 55, 59, 75, 93, 69, 64, 61, 56, 67, 69, 86, 59, 63, 56, 60, 68, 71, 59, 70, 74, 74, 61, 61, 50, 62, 60, 60, 124, 50, 89, 94, 98, 74, 80, 82, 58, 32, 70, 65, 66, 61, 59, 58, 86, 56, 77, 69, 55, 58, 49, 78, 62, 65, 58, 70, 66, 70, 70, 72, 61, 54, 65, 74, 69, 61, 75, 53, 66, 90, 61, 66, 39, 55, 61, 95, 69, 62, 65, 74, 58, 63, 41, 57, 48, 66, 61, 71, 66, 56, 67, 74, 66, 88, 63, 87, 51, 67, 56, 69, 45, 61, 48, 57, 90, 65, 87, 58, 51, 59, 63, 69, 58, 51, 89, 61, 75, 71, 57, 62, 67, 79, 59, 70, 75, 56, 79, 60, 60, 69, 53, 57, 55, 71, 65, 58, 68, 82, 64, 67, 53, 58, 64, 89, 74, 74, 57, 68, 44, 81, 82, 59, 55, 89, 78, 43, 70, 49, 81, 65, 96, 51, 55, 65, 77, 72, 67, 111, 52, 64, 74, 65, 82, 68, 66, 59, 68, 86, 49, 68, 75, 72, 65, 54, 58, 54, 76, 70, 72, 74, 71, 56, 89, 60, 64, 122, 68, 53, 104, 62, 76, 74, 81, 62, 62, 51, 94, 60, 62, 88, 68, 67, 86, 83, 80, 76, 68, 75, 49, 65, 66, 64, 88, 83, 79, 66, 77, 47, 58, 51, 92, 60, 79, 56, 56, 61, 74, 63, 59, 86, 64, 52, 131, 64, 63, 65, 73, 67, 61, 68, 67, 63, 47, 58, 58, 80, 78, 82, 68, 53, 61, 81, 46, 47, 61, 88, 62, 54, 98, 55, 96, 71, 43, 54, 65, 56, 63, 67, 89, 67, 64, 66, 79, 62, 100, 68, 78, 39, 72, 56, 52, 68, 54, 67, 67, 109, 56, 56, 56, 54, 60, 66, 68, 55, 106, 74, 53, 59, 91, 80, 76, 39, 64, 80, 59, 58, 68, 56, 80, 78, 52, 61, 51, 43, 58, 52, 62, 68, 48, 60, 71, 70, 52, 66, 51, 80, 64, 45, 70, 90, 70, 74, 73, 63, 57, 55, 120, 54, 71, 72, 91, 89, 44, 59, 70, 81, 52, 77, 79, 72, 61, 81, 44, 74, 72, 97, 62, 76, 64, 75, 68, 70, 55, 49, 75, 69, 66, 64, 64, 68, 68, 55, 81, 48, 61, 70, 49, 55, 73, 60, 66, 87, 41, 74, 70, 65, 65, 64, 79, 59, 123, 53, 69, 81, 61, 53, 63, 49, 80, 53, 75, 41, 54, 51, 46, 65, 70, 62, 66, 77, 61, 91, 67, 54, 62, 43, 79, 64, 59, 47, 55, 117, 94, 78, 74, 81, 76, 77, 77, 83, 47, 71, 78, 77, 93, 58, 60, 55, 59, 68, 49, 62, 51, 52, 65, 97, 57, 42, 68, 55, 71, 57, 56, 69, 69, 81, 69, 64, 74, 51, 84, 62, 81, 65, 90, 43, 62, 77, 58, 90, 64, 65, 38, 61, 58, 68, 62, 47, 69, 58, 67, 52, 80, 69, 67, 51, 72, 64, 50, 57, 67, 81, 65, 67, 57, 89, 63, 71, 58, 68, 70, 87, 71, 50, 55, 94, 83, 47, 34, 74, 57, 70, 50, 50, 102, 60, 67, 57, 69, 67, 68, 48, 46, 67, 55, 39, 72, 76, 56, 44, 96, 70, 85, 54, 66, 71, 66, 74, 52, 72, 73, 69, 59, 49, 49, 80, 50, 75, 56, 54, 76, 58, 95, 69, 78, 63, 46, 55, 83, 65, 71, 70, 56, 59, 75, 51, 86, 68, 57, 68, 69, 62, 59, 48, 64, 62, 64, 70, 53, 48, 50, 64, 106, 66, 58, 59, 63, 50, 56, 68, 67, 68, 45, 79, 69, 72, 65, 64, 75, 56, 92, 73, 52, 107, 86, 40, 60, 92, 73, 74, 59, 52, 73, 66, 45, 52, 55, 81, 54, 62, 52, 79, 66, 68, 62, 57, 68, 78, 71, 53, 67, 64, 69, 86, 76, 73, 79, 98, 79, 63, 80, 67, 55, 51, 64, 55, 51, 64, 101, 60, 65, 76, 58, 66, 51, 57, 118, 68, 64, 54, 76, 78, 59, 72, 83, 54, 53, 71, 80, 76, 52, 55, 62, 69, 73, 64, 61, 71, 64, 63, 54, 70, 61, 55, 32, 66, 54, 61, 79, 67, 75, 62, 60, 72, 68, 59, 67, 57, 75, 48, 65, 44, 47, 63, 78, 47, 50, 68, 45, 72, 68, 56, 67, 75, 57, 106, 49, 51, 59, 59, 59, 60, 56, 84, 79, 55, 67, 47, 78, 87, 54, 59, 82, 69, 49, 43, 69, 61, 66, 52, 68, 65, 48, 57, 69, 52, 58, 59, 65, 70, 70, 63, 47, 125, 51, 61, 56, 72, 72, 82, 72, 80, 60, 47, 72, 89, 79, 59, 46, 77, 66, 70, 63, 71, 46, 68, 68, 89, 86, 61, 58, 87, 59, 95, 107, 64, 69, 67, 46, 55, 63, 69, 45, 52, 69, 57, 34, 94, 59, 69, 81, 51, 100, 64, 66, 71, 81, 75, 68, 73, 50, 60, 62, 56, 62, 53, 69, 75, 59, 53, 74, 50, 64, 55, 66, 74, 100, 52, 70, 51, 58, 70, 59, 71, 61, 66, 46, 52, 67, 60, 68, 80, 54, 55, 62, 79, 90, 65, 63, 74, 59, 58, 58, 63, 53, 50, 76, 75, 64, 61, 55, 69, 77, 61, 56, 61, 73, 82, 75, 59, 57, 74, 43, 74, 76, 81, 65, 63, 42, 77, 106, 45, 57, 76, 52, 59, 64, 78, 76, 57, 49, 62, 57, 54, 74, 84, 55, 79, 70, 74, 65, 61, 67, 64, 58, 73, 41, 51, 53, 42, 73, 62, 99, 85, 72, 82, 80, 62, 58, 73, 70, 100, 42, 73, 51, 55, 91, 55, 59, 61, 71, 88, 68, 70, 74, 79, 54, 71, 61, 62, 66, 84, 95, 89, 61, 50, 52, 57, 59, 58, 68, 69, 72, 53, 60, 75, 58, 62, 68, 82, 50, 65, 94, 65, 69, 66, 53, 80, 58, 52, 64, 58, 79, 58, 74, 70, 61, 51, 72, 69, 76, 49, 53, 46, 72, 87, 65, 57, 64, 51, 50, 59, 58, 74, 64, 66, 64, 71, 48, 57, 56, 52, 51, 67, 77, 61, 61, 65, 64, 61, 73, 96, 79, 64, 89, 69, 76, 79, 51, 65, 66, 76, 59, 54, 59, 65, 54, 53, 75, 77, 42, 85, 44, 82, 60, 56, 64, 59, 76, 54, 70, 96, 77, 66, 80, 57, 51, 53, 74, 67, 67, 48, 60, 62, 52, 57, 72, 58, 69, 82, 54, 66, 68, 69, 75, 74, 69, 45, 74, 46, 69, 72, 57, 87, 56, 64, 85, 54, 68, 68, 56, 53, 80, 76, 76, 50, 64, 61, 75, 73, 62, 58, 71, 55, 86, 59, 57, 55, 96, 59, 69, 71, 68, 78, 65, 75, 75, 53, 74, 49, 57, 90, 64, 73, 65, 68, 67, 66, 78, 48, 64, 70, 55, 65, 68, 66, 103, 41, 49, 63, 48, 66, 66, 53, 53, 53, 49, 77, 79, 65, 64, 69, 68, 54, 77, 59, 62, 67, 41, 50, 61, 63, 64, 63, 70, 111, 79, 67, 77, 59, 59, 92, 87, 78, 73, 77, 64, 82, 66, 92, 68, 111, 66, 52, 53, 71, 75, 77, 90, 74, 55, 69, 55, 70, 77, 59, 82, 48, 51, 76, 53, 88, 91, 81, 48, 45, 83, 67, 47, 67, 67, 56, 68, 57, 77, 71, 62, 69, 50, 73, 77, 72, 100, 71, 61, 71, 100, 70, 54, 50, 37, 71, 73, 76, 50, 85, 60, 46, 104, 99, 60, 46, 64, 58, 70, 64, 75, 75, 49, 58, 47, 50, 79, 69, 58, 45, 66, 74, 78, 74, 61, 60, 66, 39, 81, 52, 79, 39, 68, 67, 57, 62, 60, 67, 75, 63, 76, 60, 122, 54, 85, 53, 69, 54, 89, 82, 86, 48, 78, 88, 43, 62, 60, 97, 68, 82, 85, 70, 63, 63, 49, 62, 87, 78, 68, 88, 60, 57, 55, 44, 69, 91, 53, 64, 52, 50, 71, 46, 57, 74, 71, 115, 51, 85, 61, 60, 50, 76, 78, 60, 55, 51, 53, 67, 56, 50, 67, 62, 99, 50, 68, 62, 55, 70, 64, 62, 65, 70, 70, 80, 56, 65, 53, 72, 48, 87, 51, 69, 65, 63, 67, 65, 87, 54, 52, 58, 51, 61, 59, 61, 73, 50, 67, 55, 51, 50, 56, 55, 53, 48, 63, 47, 74, 61, 69, 26, 66, 73, 61, 86, 68, 64, 71, 34, 92, 65, 78, 72, 66, 79, 92, 51, 51, 69, 73, 58, 59, 69, 89, 57, 70, 67, 65, 71, 77, 48, 73, 44, 73, 43, 70, 67, 53, 70, 64, 67, 89, 56, 56, 55, 168, 59, 77, 62, 75, 56, 40, 68, 55, 63, 56, 61, 55, 66, 58, 72, 64, 60, 50, 62, 54, 64, 84, 39, 66, 82, 59, 97, 57, 68, 54, 58, 67, 73, 46, 64, 85, 70, 69, 72, 121, 84, 78, 75, 68, 66, 60, 61, 61, 54, 43, 46, 47, 61, 76, 69, 94, 65, 60, 69, 54, 84, 111, 61, 58, 65, 74, 82, 52, 73, 75, 63, 81, 59, 103, 44, 72, 46, 60, 108, 68, 50, 61, 63, 74, 78, 65, 61, 88, 112, 88, 57, 51, 73, 80, 75, 65, 89, 82, 71, 112, 121, 83, 69, 77, 50, 69, 71, 39, 69, 81, 63, 62, 52, 57, 68, 68, 56, 66, 85, 85, 66, 63, 64, 52, 83, 89, 58, 84, 56, 59, 47, 107, 68, 61, 73, 49, 54, 67, 58, 65, 57, 55, 52, 60, 41, 72, 64, 73, 81, 68, 66, 57, 114, 70, 67, 59, 72, 49, 58, 94, 109, 103, 68, 67, 55, 71, 79, 65, 56, 55, 52, 64, 88, 73, 89, 50, 72, 55, 73, 45, 64, 76, 89, 64, 67, 56, 66, 51, 47, 52, 56, 59, 62, 67, 57, 58, 61, 62, 45, 71, 50, 73, 89, 89, 63, 52, 70, 46, 49, 55, 65, 41, 62, 56, 45, 57, 78, 74, 58, 57, 62, 62, 129, 64, 61, 63, 68, 89, 60, 66, 66, 65, 72, 64, 85, 57, 71, 65, 52, 56, 48, 50, 62, 61, 57, 67, 122, 60, 91, 67, 65, 54, 51, 61, 88, 63, 74, 60, 63, 56, 38, 72, 87, 67, 82, 65, 87, 48, 56, 96, 83, 36, 70, 67, 75, 77, 48, 87, 90, 42, 47, 96, 71, 66, 100, 66, 58, 66, 53, 70, 82, 87, 66, 73, 69, 52, 40, 81, 81, 59, 54, 54, 60, 72, 67, 61, 56, 79, 49, 79, 50, 55, 73, 83, 52, 57, 68, 67, 75, 65, 62, 69, 66, 64, 38, 83, 59, 72, 60, 65, 67, 35, 56, 77, 79, 82, 75, 57, 61, 62, 80, 57, 65, 67, 64, 56, 43, 62, 50, 73, 76, 50, 65, 72, 61, 77, 54, 49, 59, 69, 52, 56, 48, 80, 64, 54, 60, 55, 59, 76, 89, 69, 46, 67, 73, 54, 49, 65, 66, 74, 78, 57, 55, 54, 102, 72, 61, 116, 113, 39, 60, 64, 83, 70, 57, 77, 45, 121, 56, 52, 51, 56, 60, 67, 73, 71, 79, 80, 55, 49, 55, 79, 66, 59, 72, 66, 59, 56, 68, 55, 72, 47, 56, 58, 40, 59, 86, 70, 62, 58, 58, 51, 54, 58, 58, 44, 57, 65, 52, 86, 113, 60, 57, 59, 82, 67, 69, 81, 46, 69, 62, 69, 71, 57, 73, 77, 86, 69, 55, 66, 75, 67, 92, 56, 61, 65, 44, 50, 65, 83, 64, 75, 68, 68, 70, 72, 96, 55, 63, 72, 71, 78, 56, 79, 61, 59, 52, 67, 55, 58, 50, 156, 96, 69, 100, 74, 73, 59, 68, 73, 80, 65, 54, 59, 67, 71, 67, 86, 71, 57, 65, 52, 67, 84, 46, 75, 62, 64, 63, 47, 63, 56, 66, 51, 99, 78, 50, 99, 70, 92, 54, 92, 52, 77, 84, 72, 84, 62, 77, 45, 55, 67, 58, 68, 40, 70, 74, 76, 82, 78, 36, 80, 60, 77, 77, 60, 72, 64, 70, 80, 128, 59, 68, 92, 52, 66, 56, 65, 58, 48, 54, 52, 54, 74, 52, 61, 74, 68, 109, 88, 68, 57, 60, 70, 59, 72, 95, 81, 50, 57, 44, 52, 84, 62, 66, 88, 59, 50, 53, 64, 72, 51, 62, 65, 60, 59, 51, 54, 72, 77, 61, 77, 80, 58, 56, 71, 46, 62, 55, 67, 63, 53, 48, 73, 85, 83, 49, 49, 66, 48, 70, 63, 75, 60, 76, 68, 70, 68, 51, 81, 65, 49, 78, 78, 52, 53, 56, 65, 55, 63, 69, 73, 67, 82, 59, 84, 73, 57, 61, 46, 54, 68, 96, 61, 67, 82, 53, 43, 65, 44, 76, 109, 52, 72, 54, 73, 50, 57, 57, 94, 76, 62, 52, 70, 51, 65, 60, 73, 70, 73, 62, 45, 60, 51, 55, 75, 86, 64, 62, 70, 58, 59, 58, 65, 60, 66, 49, 63, 80, 66, 70, 76, 58, 76, 74, 46, 86, 52, 60, 64, 62, 42, 64, 68, 63, 77, 56, 49, 50, 47, 68, 60, 84, 56, 51, 41, 54, 73, 69, 69, 75, 64, 60, 60, 74, 62, 58, 51, 84, 58, 38, 47, 72, 69, 71, 64, 87, 60, 79, 51, 66, 48, 63, 54, 91, 66, 76, 77, 81, 59, 67, 82, 116, 66, 69, 51, 55, 63, 92, 66, 62, 52, 63, 58, 59, 50, 74, 69, 65, 52, 67, 101, 73, 53, 76, 76, 52, 63, 71, 63, 67, 79, 73, 75, 61, 58, 64, 39, 75, 67, 57, 68, 55, 54, 68, 77, 67, 87, 62, 69, 53, 85, 55, 65, 77, 81, 59, 65, 59, 53, 59, 42, 47, 66, 59, 64, 49, 57, 68, 59, 66, 73, 50, 69, 56, 63, 77, 66, 59, 86, 78, 68, 45, 85, 64, 85, 39, 67, 63, 59, 100, 70, 82, 64, 55, 61, 83, 45, 74, 73, 50, 74, 71, 52, 63, 69, 62, 63, 52, 47, 62, 57, 78, 82, 68, 74, 50, 44, 57, 110, 47, 69, 46, 64, 46, 76, 76, 81, 67, 89, 44, 57, 71, 65, 116, 78, 59, 78, 85, 111, 71, 66, 44, 76, 66, 52, 77, 118, 63, 79, 81, 63, 64, 82, 85, 72, 54, 88, 66, 66, 57, 84, 57, 47, 73, 72, 43, 98, 48, 53, 114, 42, 67, 54, 81, 64, 51, 64, 55, 66, 54, 54, 58, 69, 63, 43, 65, 55, 57, 53, 66, 71, 77, 76, 50, 62, 54, 67, 79, 65, 70, 59, 64, 55, 41, 58, 64, 109, 47, 88, 59, 46, 83, 106, 87, 85, 34, 63, 66, 73, 64, 74, 74, 44, 79, 75, 93, 92, 66, 49, 70, 40, 69, 55, 59, 72, 84, 96, 42, 64, 109, 45, 60, 91, 87, 109, 52, 46, 65, 61, 70, 65, 78, 55, 42, 70, 58, 71, 53, 101, 62, 61, 53, 76, 68, 61, 73, 53, 44, 67, 86, 56, 56, 72, 49, 73, 56, 66, 73, 63, 43, 64, 50, 81, 42, 89, 72, 46, 74, 184, 74, 65, 35, 90, 71, 56, 79, 71, 36, 71, 66, 82, 93, 90, 52, 58, 61, 73, 76, 80, 57, 73, 107, 98, 74, 40, 57, 71, 42, 56, 88, 71, 55, 50, 61, 48, 77, 63, 51, 53, 82, 73, 69, 55, 68, 76, 62, 61, 82, 37, 59, 102, 48, 65, 57, 69, 41, 80, 58, 74, 55, 61, 65, 50, 56, 73, 59, 42, 55, 62, 61, 47, 48, 43, 55, 80, 27, 55, 86, 77, 45, 37, 61, 67, 47, 76, 52, 45, 80, 44, 60, 43, 69, 57, 61, 81, 57, 80, 40, 46, 60, 63, 77, 53, 34, 63, 63, 71, 53, 55, 74, 74, 67, 54, 54, 69, 57, 43, 44, 66, 56, 53, 47, 59, 52, 62, 99, 79, 90, 75, 58, 46, 76, 67, 108, 48, 83, 74, 67, 76, 95, 41, 54, 56, 79, 82, 63, 53, 57, 44, 91, 60, 71, 106, 86, 76, 56, 70, 43, 71, 79, 47, 40, 46, 48, 61, 76, 86, 67, 75, 70, 66, 99, 57, 52, 80, 64, 28, 55, 42, 68, 68, 80, 69, 60, 51, 57, 72, 57, 81, 52, 66, 112, 50, 62, 67, 80, 71, 66, 69, 43, 36, 41, 56, 54, 56, 53, 61, 55, 76, 73, 74, 85, 59, 54, 66, 57, 90, 83, 69, 77, 70, 49, 53, 51, 60, 53, 71, 47, 72, 79, 100, 58, 70, 71, 48, 80, 44, 49, 89, 94, 124, 58, 64, 85, 68, 55, 62, 49, 33, 58, 58, 82, 52, 73, 68, 48, 66, 83, 69, 85, 60, 117, 54, 70, 85, 72, 52, 47, 44, 61, 67, 61, 55, 83, 49, 85, 46, 52, 66, 55, 63, 65, 51, 56, 51, 55, 64, 60, 45, 71, 57, 68, 87, 65, 72, 42, 50, 75, 66, 68, 39, 70, 62, 83, 91, 63, 83, 53, 82, 54, 53, 63, 77, 59, 65, 70, 96, 37, 31, 52, 85, 67, 50, 88, 65, 86, 56, 60, 58, 50, 97, 46, 63, 45, 64, 50, 57, 60, 39, 60, 84, 61, 71, 48, 77, 88, 70, 70, 53, 83, 58, 59, 79, 106, 38, 53, 67, 92, 69, 107, 92, 78, 58, 71, 60, 113, 76, 58, 77, 68, 75, 61, 55, 79, 49, 66, 41, 34, 76, 81, 60, 89, 54, 79, 76, 75, 44, 44, 79, 76, 63, 66, 75, 67, 71, 109, 60, 53, 65, 78, 67, 61, 94, 77, 65, 52, 61, 70, 75, 61, 68, 71, 103, 96, 71, 76, 60, 55, 66, 82, 77, 60, 65, 78, 105, 55, 81, 47, 65, 64, 58, 71, 37, 57, 63, 84, 68, 106, 60, 68, 96, 57, 46, 58, 39, 50, 80, 69, 94, 73, 49, 73, 94, 57, 59, 49, 85, 61, 39, 55, 55, 76, 74, 70, 88, 77, 42, 66, 86, 100, 67, 100, 60, 52, 48, 61, 83, 70, 47, 67, 21, 60, 59, 49, 68, 60, 73, 56, 85, 48, 50, 78, 72, 55, 62, 68, 46, 73, 75, 66, 80, 76, 51, 70, 55, 93, 88, 68, 54, 66, 58, 38, 44, 52, 55, 93, 70, 39, 65, 57, 77, 68, 101, 52, 58, 80, 43, 50, 70, 72, 38, 45, 60, 81, 55, 80, 69, 76, 74, 56, 48, 69, 58, 62, 87, 79, 66, 85, 57, 74, 52, 109, 66, 101, 73, 90, 64, 53, 115, 64, 58, 81, 53, 65, 51, 51, 60, 70, 99, 86, 89, 56, 47, 42, 64, 73, 60, 60, 51, 39, 57, 89, 73, 63, 46, 64, 67, 72, 43, 51, 51, 106, 44, 42, 88, 103, 25, 94, 58, 64, 73, 74, 70, 65, 79, 98, 86, 34, 78, 99, 53, 67, 50, 78, 75, 60, 68, 66, 94, 45, 43, 69, 81, 87, 45, 59, 79, 57, 37, 68, 81, 58, 77, 38, 61, 65, 105, 56, 33, 64, 65, 56, 68, 44, 45, 48, 33, 66, 43, 85, 83, 55, 108, 68, 56, 73, 49, 75, 80, 58, 58, 49, 101, 58, 55, 53, 85, 56, 48, 46, 83, 58, 47, 63, 42, 65, 72, 89, 70, 68, 82, 51, 56, 61, 70, 80, 71, 81, 81, 61, 71, 56, 66, 46, 81, 64, 48, 64, 77, 67, 60, 55, 109, 61, 58, 65, 58, 79, 56, 18, 50, 62, 77, 45, 64, 171, 89, 68, 80, 62, 52, 54, 56, 51, 67, 71, 50, 54, 69, 76, 51, 46, 64, 76, 72, 74, 77, 55, 82, 52, 50, 70, 58, 52, 50, 59, 104, 77, 90, 49, 65, 73, 76, 56, 78, 41, 64, 52, 79, 61, 42, 59, 54, 51, 72, 61, 48, 71, 61, 71, 57, 74, 58, 92, 85, 52, 88, 75, 45, 47, 52, 67, 57, 49, 98, 73, 99, 81, 72, 58, 65, 73, 64, 73, 89, 51, 73, 56, 65, 48, 46, 87, 54, 69, 86, 97, 61, 64, 70, 98, 54, 68, 86, 90, 56, 69, 51, 98, 59, 61, 72, 65, 57, 69, 59, 74, 87, 61, 75, 50, 62, 78, 61, 63, 68, 64, 75, 60, 64, 69, 57, 52, 65, 61, 65, 67, 63, 64, 95, 70, 70, 70, 60, 59, 73, 52, 59, 95, 75, 97, 55, 62, 52, 74, 87, 69, 88, 70, 49, 76, 69, 41, 77, 87, 48, 83, 58, 42, 40, 94, 70, 61, 42, 97, 125, 70, 75, 54, 62, 63, 72, 71, 73, 37, 94, 54, 56, 73, 55, 62, 73, 77, 62, 61, 65, 88, 91, 59, 80, 94, 67, 54, 46, 56, 67, 68, 50, 59, 68, 57, 49, 91, 80, 53, 75, 80, 77, 101, 66, 65, 86, 44, 75, 69, 54, 51, 86, 83, 49, 86, 62, 69, 76, 59, 36, 75, 54, 64, 58, 48, 58, 84, 56, 65, 93, 56, 96, 71, 74, 85, 54, 64, 50, 31, 83, 62, 77, 59, 65, 58, 96, 59, 63, 52, 76, 89, 54, 68, 88, 63, 76, 71, 52, 75, 58, 49, 57, 79, 62, 70, 104, 62, 63, 74, 52, 79, 67, 69, 84, 44, 80, 85, 69, 65, 84, 56, 80, 87, 35, 37, 60, 88, 67, 54, 67, 54, 73, 50, 59, 67, 77, 75, 108, 59, 115, 57, 67, 74, 70, 46, 52, 55, 90, 80, 61, 106, 81, 70, 54, 75, 65, 59, 70, 67, 65, 73, 55, 78, 81, 62, 70, 55, 60, 43, 45, 62, 61, 58, 112, 78, 50, 69, 60, 56, 111, 74, 52, 62, 51, 58, 81, 82, 69, 73, 90, 45, 72, 58, 47, 64, 58, 52, 103, 72, 76, 57, 58, 62, 77, 88, 57, 48, 47, 88, 53, 44, 70, 48, 65, 55, 55, 93, 65, 72, 73, 57, 69, 67, 53, 64, 61, 88, 52, 79, 93, 94, 48, 91, 83, 59, 57, 75, 51, 54, 53, 49, 62, 48, 80, 48, 94, 45, 59, 67, 75, 65, 54, 93, 62, 71, 74, 84, 70, 75, 75, 75, 63, 69, 61, 64, 72, 64, 68, 59, 77, 61, 55, 54, 57, 65, 79, 82, 60, 75, 49, 93, 55, 65, 112, 64, 66, 53, 51, 69, 58, 96, 45, 59, 74, 65, 49, 81, 63, 45, 50, 87, 66, 69, 80, 83, 58, 62, 65, 69, 76, 67, 42, 56, 65, 63, 67, 88, 72, 64, 64, 59, 94, 67, 68, 73, 71, 80, 66, 70, 103, 60, 91, 53, 64, 54, 89, 64, 69, 95, 61, 65, 49, 59, 68, 66, 62, 66, 77, 68, 61, 148, 90, 44, 49, 64, 50, 56, 94, 63, 69, 78, 104, 56, 59, 74, 119, 81, 61, 72, 103, 96, 70, 84, 70, 71, 57, 61, 52, 48, 72, 68, 66, 63, 59, 59, 58, 92, 62, 60, 67, 66, 69, 63, 47, 43, 66, 85, 55, 70, 60, 66, 77, 62, 69, 61, 95, 58, 70, 59, 52, 51, 79, 62, 70, 90, 55, 49, 54, 65, 74, 45, 49, 75, 67, 66, 60, 66, 61, 54, 63, 48, 95, 63, 53, 35, 55, 38, 77, 88, 44, 45, 65, 86, 52, 55, 79, 71, 59, 52, 55, 63, 53, 54, 91, 54, 82, 59, 61, 60, 64, 64, 74, 51, 70, 71, 86, 66, 59, 65, 62, 56, 64, 51, 63, 77, 73, 60, 60, 87, 62, 57, 89, 89, 71, 62, 58, 89, 61, 68, 57, 38, 49, 48, 60, 79, 73, 58, 80, 57, 65, 58, 64, 74, 59, 50, 65, 50, 61, 60, 60, 71, 78, 60, 73, 68, 75, 69, 84, 39, 52, 63, 58, 55, 90, 59, 55, 37, 79, 76, 80, 71, 58, 49, 51, 59, 63, 67, 64, 67, 79, 61, 62, 57, 63, 78, 70, 71, 73, 73, 51, 51, 45, 79, 57, 59, 46, 82, 63, 48, 48, 45, 52, 71, 65, 53, 43, 83, 58, 57, 67, 44, 49, 66, 45, 76, 91, 55, 77, 98, 59, 71, 34, 64, 68, 71, 59, 74, 65, 78, 57, 66, 47, 63, 63, 83, 71, 83, 79, 47, 44, 75, 65, 62, 68, 73, 47, 36, 117, 70, 48, 55, 55, 59, 51, 73, 88, 52, 57, 58, 90, 54, 73, 107, 74, 68, 75, 70, 93, 61, 70, 75, 37, 66, 76, 82, 41, 55, 60, 58, 59, 55, 68, 71, 60, 72, 76, 61, 47, 65, 61, 108, 60, 60, 63, 68, 62, 77, 65, 66, 62, 74, 68, 58, 76, 86, 90, 61, 54, 73, 35, 67, 43, 81, 63, 69, 51, 76, 68, 78, 60, 77, 57, 58, 62, 69, 74, 66, 60, 75, 56, 84, 63, 52, 79, 64, 69, 61, 54, 69, 57, 42, 51, 74, 78, 62, 57, 60, 73, 65, 54, 56, 69, 90, 64, 64, 76, 63, 61, 52, 60, 65, 64, 46, 57, 58, 53, 82, 70, 79, 62, 69, 55, 38, 38, 74, 86, 44, 61, 67, 73, 85, 55, 107, 63, 74, 85, 56, 60, 77, 85, 62, 67, 57, 51, 50, 60, 66, 60, 43, 71, 65, 58, 42, 69, 68, 66, 101, 36, 61, 79, 54, 92, 55, 61, 64, 56, 68, 50, 65, 67, 86, 84, 68, 69, 67, 58, 80, 55, 71, 60, 90, 54, 75, 99, 60, 50, 62, 76, 57, 65, 76, 68, 62, 79, 74, 50, 74, 67, 45, 78, 66, 106, 56, 60, 59, 70, 67, 71, 83, 85, 67, 79, 68, 53, 53, 69, 76, 64, 54, 63, 52, 76, 59, 67, 67, 59, 63, 63, 69, 71, 83, 63, 72, 69, 58, 46, 76, 71, 49, 74, 43, 89, 78, 61, 92, 79, 46, 50, 68, 156, 103, 57, 62, 63, 55, 66, 54, 73, 91, 71, 55, 58, 61, 53, 55, 71, 80, 56, 69, 63, 76, 58, 58, 123, 68, 46, 70, 85, 58, 71, 86, 87, 50, 88, 61, 68, 62, 76, 51, 75, 82, 88, 87, 54, 72, 39, 61, 41, 63, 51, 68, 78, 76, 72, 62, 59, 74, 68, 59, 56, 51, 45, 94, 69, 68, 61, 81, 79, 73, 61, 68, 62, 76, 48, 67, 75, 56, 56, 58, 56, 51, 74, 67, 66, 65, 62, 64, 51, 63, 57, 53, 69, 73, 75, 55, 84, 92, 55, 46, 61, 66, 89, 57, 71, 77, 110, 59, 78, 59, 60, 85, 58, 64, 65, 56, 48, 65, 94, 66, 82, 66, 45, 80, 78, 54, 93, 58, 45, 37, 56, 66, 65, 67, 56, 72, 53, 58, 57, 61, 69, 73, 63, 59, 56, 69, 55, 72, 52, 55, 57, 63, 80, 62, 59, 67, 64, 73, 80, 55, 82, 52, 62, 62, 71, 80, 59, 66, 70, 57, 90, 61, 50, 67, 68, 63, 76, 76, 66, 81, 55, 91, 53, 55, 61, 64, 74, 79, 79, 64, 63, 59, 55, 46, 72, 56, 87, 82, 50, 65, 63, 64, 68, 50, 48, 52, 41, 62, 63, 70, 57, 62, 70, 57, 106, 60, 67, 76, 64, 66, 62, 52, 65, 69, 56, 53, 86, 59, 64, 70, 74, 59, 56, 77, 99, 118, 64, 61, 49, 63, 70, 68, 68, 70, 74, 59, 67, 60, 74, 73, 68, 65, 56, 65, 66, 59, 63, 49, 53, 72, 69, 53, 64, 58, 59, 57, 57, 62, 85, 76, 68, 67, 41, 59, 65, 68, 65, 58, 60, 68, 72, 46, 50, 103, 62, 57, 50, 60, 61, 80, 111, 63, 67, 60, 51, 56, 73, 60, 74, 60, 62, 84, 56, 58, 60, 87, 65, 55, 59, 54, 49, 53, 66, 52, 65, 49, 69, 72, 70, 69, 57, 73, 56, 64, 66, 99, 86, 60, 62, 62, 61, 56, 44, 73, 55, 66, 67, 51, 45, 57, 62, 60, 55, 71, 70, 72, 103, 53, 112, 80, 62, 55, 62, 55, 69, 75, 71, 70, 56, 70, 63, 62, 49, 61, 66, 60, 67, 103, 57, 65, 78, 66, 85, 78, 63, 63, 73, 58, 64, 70, 56, 70, 51, 55, 76, 58, 56, 58, 54, 67, 69, 55, 59, 44, 81, 66, 82, 58, 75, 57, 39, 70, 66, 88, 83, 69, 64, 78, 70, 57, 61, 64, 89, 79, 59, 53, 48, 53, 51, 86, 67, 57, 53, 67, 55, 62, 77, 60, 76, 52, 67, 66, 82, 55, 60, 59, 76, 63, 87, 60, 51, 55, 50, 62, 64, 55, 60, 56, 61, 68, 51, 62, 53, 59, 71, 67, 45, 58, 64, 87, 72, 80, 65, 64, 68, 68, 79, 73, 51, 88, 66, 74, 55, 54, 92, 81, 82, 65, 66, 65, 60, 57, 47, 60, 67, 71, 56, 70, 65, 69, 78, 52, 85, 65, 62, 73, 61, 70, 59, 66, 68, 54, 72, 70, 59, 63, 52, 62, 61, 80, 79, 36, 52, 80, 71, 53, 61, 65, 60, 66, 64, 75, 75, 52, 62, 57, 53, 72, 78, 54, 55, 68, 72, 47, 48, 58, 63, 71, 67, 82, 65, 64, 55, 68, 49, 70, 75, 69, 66, 57, 62, 68, 55, 95, 111, 60, 53, 63, 71, 58, 72, 66, 58, 55, 60, 61, 50, 74, 57, 66, 63, 62, 65, 56, 57, 72, 64, 68, 73, 61, 75, 64, 127, 62, 70, 77, 69, 64, 56, 66, 56, 58, 60, 61, 47, 64, 63, 78, 77, 79, 61, 70, 69, 56, 46, 53, 73, 60, 59, 55, 65, 89, 75, 69, 84, 139, 61, 64, 53, 120, 64, 67, 67, 66, 64, 57, 83, 53, 67, 62, 54, 69, 75, 69, 51, 67, 90, 57, 57, 82, 73, 69, 113, 59, 79, 104, 66, 67, 84, 55, 75, 100, 94, 64, 73, 70, 55, 74, 85, 70, 60, 72, 80, 67, 59, 57, 63, 40, 63, 82, 74, 52, 66, 66, 68, 56, 65, 78, 70, 95, 61, 54, 66, 81, 70, 90, 70, 62, 62, 57, 54, 77, 65, 67, 61, 69, 51, 65, 59, 87, 69, 53, 74, 127, 60, 67, 69, 74, 73, 59, 71, 82, 66, 54, 54, 57, 59, 62, 68, 68, 55, 54, 52, 43, 53, 68, 68, 67, 71, 58, 60, 40, 59, 66, 50, 67, 58, 76, 56, 75, 62, 69, 68, 88, 58, 54, 58, 66, 56, 56, 60, 47, 56, 46, 52, 56, 104, 46, 53, 77, 67, 63, 56, 83, 62, 61, 53, 61, 56, 65, 50, 52, 73, 70, 92, 57, 54, 81, 63, 46, 60, 82, 67, 61, 55, 73, 71, 101, 82, 79, 70, 51, 53, 63, 67, 67, 91, 59, 44, 78, 91, 64, 54, 72, 61, 58, 61, 46, 73, 62, 58, 53, 72, 65, 63, 57, 63, 74, 82, 101, 68, 69, 109, 75, 63, 75, 45, 62, 58, 95, 74, 45, 74, 67, 49, 74, 59, 74, 62, 86, 66, 52, 66, 69, 56, 96, 70, 76, 57, 64, 50, 63, 69, 69, 84, 57, 53, 65, 62, 69, 99, 64, 66, 69, 66, 44, 59, 53, 66, 72, 61, 67, 80, 67, 78, 72, 62, 59, 77, 72, 76, 53, 62, 89, 62, 69, 71, 88, 74, 72, 59, 54, 50, 66, 76, 78, 60, 62, 50, 60, 82, 69, 61, 66, 51, 81, 66, 50, 54, 61, 70, 62, 75, 64, 56, 61, 74, 60, 94, 62, 62, 60, 57, 52, 62, 49, 57, 61, 60, 67, 49, 66, 68, 86, 50, 64, 43, 84, 62, 55, 77, 60, 55, 60, 45, 69, 64, 68, 55, 71, 67, 53, 62, 68, 63, 58, 70, 79, 53, 95, 88, 74, 53, 64, 63, 62, 61, 66, 65, 65, 60, 57, 64, 51, 58, 69, 54, 68, 58, 147, 71, 75, 68, 46, 63, 65, 69, 58, 67, 80, 91, 62, 74, 52, 61, 85, 71, 64, 60, 44, 48, 93, 61, 56, 56, 52, 75, 54, 69, 82, 62, 63, 82, 47, 58, 56, 57, 62, 53, 66, 63, 60, 69, 73, 65, 62, 78, 63, 60, 64, 57, 65, 87, 77, 57, 59, 66, 61, 73, 54, 102, 59, 71, 63, 86, 65, 57, 69, 45, 70, 69, 111, 79, 50, 56, 52, 64, 78, 65, 72, 58, 158, 57, 58, 59, 60, 94, 46, 53, 60, 59, 84, 76, 76, 53, 75, 57, 49, 77, 53, 86, 66, 86, 60, 53, 62, 68, 63, 81, 74, 54, 55, 60, 55, 83, 61, 70, 68, 46, 63, 71, 55, 79, 68, 62, 43, 65, 81, 95, 68, 68, 72, 64, 55, 108, 62, 64, 76, 63, 76, 55, 78, 66, 57, 62, 47, 63, 51, 70, 45, 61, 75, 60, 52, 84, 63, 51, 84, 93, 47, 63, 49, 75, 48, 51, 87, 55, 58, 81, 79, 64, 76, 59, 60, 57, 66, 62, 99, 68, 85, 44, 63, 63, 96, 83, 64, 54, 55, 61, 67, 62, 75, 44, 68, 68, 90, 62, 67, 67, 67, 57, 61, 54, 90, 70, 57, 59, 45, 63, 65, 71, 62, 46, 66, 58, 68, 66, 58, 121, 73, 75, 133, 58, 71, 83, 75, 68, 53, 74, 64, 80, 70, 87, 60, 67, 88, 78, 54, 48, 71, 90, 64, 52, 64, 66, 74, 53, 77, 80, 56, 57, 72, 64, 86, 60, 79, 75, 44, 54, 60, 66, 68, 71, 64, 48, 78, 64, 65, 59, 47, 68, 57, 68, 66, 64, 61, 59, 61, 58, 52, 54, 91, 51, 65, 54, 61, 82, 83, 75, 56, 51, 62, 84, 53, 82, 82, 59, 88, 66, 51, 62, 79, 46, 58, 64, 85, 58, 53, 81, 54, 32, 53, 38, 54, 53, 44, 59, 68, 62, 68, 78, 61, 65, 58, 62, 58, 78, 50, 67, 80, 64, 73, 76, 62, 50, 66, 56, 65, 56, 61, 74, 86, 59, 62, 50, 62, 67, 96, 76, 52, 111, 72, 56, 47, 87, 61, 64, 53, 58, 70, 72, 63, 57, 69, 49, 42, 72, 51, 48, 94, 58, 63, 57, 77, 66, 38, 58, 72, 86, 69, 62, 61, 88, 75, 67, 63, 61, 33, 61, 73, 60, 47, 83, 76, 83, 54, 49, 58, 63, 84, 62, 58, 98, 67, 70, 75, 74, 40, 55, 64, 69, 57, 60, 81, 57, 96, 104, 60, 75, 33, 58, 70, 87, 60, 103, 99, 66, 53, 80, 59, 72, 59, 51, 48, 40, 70, 50, 61, 106, 63, 58, 73, 61, 48, 70, 52, 65, 65, 80, 60, 59, 66, 35, 55, 57, 62, 63, 50, 64, 62, 49, 95, 53, 51, 47, 76, 72, 72, 60, 59, 78, 74, 56, 70, 72, 74, 68, 68, 60, 43, 69, 70, 61, 66, 66, 94, 70, 80, 48, 59, 95, 119, 81, 50, 91, 69, 44, 99, 56, 57, 57, 84, 60, 68, 71, 64, 74, 59, 74, 74, 59, 85, 65, 99, 55, 52, 49, 56, 52, 68, 62, 73, 63, 95, 54, 59, 105, 68, 45, 43, 84, 63, 72, 65, 99, 68, 62, 100, 52, 55, 65, 45, 99, 53, 66, 84, 53, 57, 64, 108, 66, 69, 60, 72, 73, 65, 35, 72, 58, 77, 84, 48, 64, 51, 82, 54, 74, 80, 61, 47, 47, 69, 79, 47, 56, 52, 87, 59, 71, 75, 42, 48, 52, 76, 54, 46, 105, 101, 124, 79, 39, 72, 71, 59, 68, 106, 50, 49, 61, 65, 59, 82, 55, 54, 76, 71, 59, 78, 73, 57, 43, 58, 75, 60, 66, 53, 97, 42, 86, 59, 72, 58, 69, 49, 64, 72, 74, 61, 45, 61, 63, 79, 72, 68, 57, 64, 51, 70, 81, 57, 62, 61, 78, 76, 72, 79, 89, 75, 68, 67, 34, 69, 47, 76, 69, 68, 74, 88, 62, 74, 62, 42, 84, 54, 63, 58, 70, 62, 65, 73, 71, 50, 56, 73, 59, 51, 66, 80, 55, 71, 62, 85, 56, 57, 64, 75, 94, 53, 78, 107, 58, 75, 76, 66, 61, 61, 72, 58, 70, 96, 66, 72, 70, 85, 77, 43, 61, 68, 94, 55, 74, 70, 58, 68, 71, 55, 64, 45, 64, 38, 61, 65, 54, 75, 64, 62, 67, 60, 45, 57, 63, 77, 42, 61, 58, 47, 66, 78, 56, 54, 82, 117, 45, 83, 73, 61, 77, 51, 61, 66, 58, 60, 53, 72, 74, 63, 67, 62, 67, 54, 63, 88, 88, 55, 87, 73, 69, 82, 76, 81, 71, 45, 68, 80, 58, 89, 60, 74, 52, 94, 39, 43, 65, 60, 61, 79, 94, 70, 92, 50, 47, 53, 64, 81, 68, 62, 70, 53, 66, 85, 69, 65, 91, 96, 38, 65, 56, 52, 60, 85, 78, 39, 81, 77, 57, 66, 86, 73, 50, 63, 80, 58, 52, 53, 62, 31, 66, 71, 77, 55, 63, 71, 64, 63, 59, 52, 71, 62, 72, 70, 72, 42, 68, 82, 76, 77, 68, 53, 76, 84, 57, 59, 55, 79, 53, 55, 80, 54, 54, 63, 54, 58, 58, 69, 57, 64, 61, 53, 93, 27, 67, 69, 70, 62, 61, 57, 43, 72, 48, 59, 111, 77, 62, 49, 87, 68, 51, 57, 81, 72, 100, 82, 40, 87, 48, 62, 43, 65, 59, 57, 84, 78, 50, 137, 84, 78, 57, 72, 83, 57, 56, 82, 75, 87, 79, 54, 48, 72, 75, 79, 62, 52, 75, 57, 64, 54, 82, 110, 80, 63, 87, 78, 46, 97, 75, 84, 62, 61, 66, 74, 91, 43, 73, 72, 81, 47, 65, 46, 80, 54, 73, 76, 85, 76, 86, 48, 74, 69, 89, 68, 77, 62, 56, 64, 65, 52, 71, 52, 37, 82, 84, 49, 49, 50, 61, 69, 70, 85, 90, 63, 70, 72, 65, 52, 44, 64, 66, 75, 50, 93, 65, 55, 82, 68, 86, 68, 68, 78, 61, 58, 71, 71, 73, 70, 65, 56, 78, 71, 61, 122, 78, 64, 76, 56, 46, 51, 52, 64, 62, 50, 83, 57, 52, 51, 71, 60, 54, 78, 65, 59, 49, 65, 78, 55, 70, 86, 69, 69, 46, 43, 90, 39, 62, 75, 59, 58, 46, 48, 69, 72, 32, 84, 64, 47, 65, 63, 74, 84, 62, 70, 54, 66, 89, 44, 64, 43, 61, 55, 67, 75, 59, 80, 59, 70, 54, 89, 59, 48, 49, 82, 43, 70, 57, 95, 45, 64, 80, 52, 56, 55, 46, 95, 95, 56, 70, 65, 62, 81, 90, 74, 74, 79, 52, 73, 83, 58, 63, 57, 84, 77, 85, 72, 92, 85, 57, 72, 71, 74, 45, 63, 53, 62, 83, 53, 58, 63, 51, 82, 54, 65, 57, 84, 48, 51, 87, 45, 74, 69, 107, 64, 77, 48, 59, 62, 37, 82, 42, 67, 54, 78, 70, 53, 62, 73, 72, 46, 37, 93, 62, 62, 63, 71, 85, 66, 57, 82, 76, 54, 68, 65, 72, 50, 61, 53, 50, 57, 51, 55, 54, 50, 81, 61, 71, 69, 67, 76, 59, 77, 76, 57, 71, 93, 97, 64, 64, 45, 77, 58, 74, 99, 65, 62, 85, 53, 76, 67, 72, 60, 79, 65, 82, 56, 94, 65, 84, 62, 47, 67, 48, 76, 66, 47, 57, 57, 68, 65, 65, 52, 66, 50, 46, 50, 58, 90, 59, 86, 54, 65, 88, 67, 80, 63, 57, 47, 71, 51, 45, 65, 61, 72, 45, 52, 71, 64, 64, 73, 51, 56, 67, 91, 59, 50, 55, 74, 60, 80, 71, 59, 83, 86, 70, 71, 88, 59, 59, 96, 42, 46, 107, 59, 41, 58, 69, 67, 58, 58, 100, 82, 48, 119, 68, 77, 71, 58, 67, 65, 62, 81, 64, 55, 59, 53, 54, 52, 78, 65, 48, 57, 56, 61, 62, 56, 72, 60, 64, 81, 40, 63, 58, 81, 70, 85, 98, 46, 88, 53, 60, 60, 54, 47, 59, 63, 75, 69, 89, 43, 92, 45, 62, 67, 58, 67, 56, 50, 76, 66, 67, 65, 78, 71, 99, 45, 38, 71, 65, 62, 43, 59, 46, 68, 62, 57, 70, 67, 66, 74, 58, 62, 55, 74, 56, 83, 121, 84, 50, 88, 67, 76, 70, 64, 68, 86, 64, 80, 65, 55, 57, 52, 66, 54, 88, 63, 48, 61, 62, 52, 72, 73, 52, 71, 64, 64, 76, 48, 60, 64, 69, 76, 45, 67, 58, 50, 58, 56, 67, 60, 73, 59, 66, 58, 74, 74, 78, 68, 58, 53, 71, 79, 86, 61, 71, 56, 92, 67, 57, 65, 76, 73, 73, 58, 103, 75, 51, 56, 97, 73, 60, 52, 61, 59, 64, 54, 66, 50, 54, 75, 77, 55, 71, 65, 57, 56, 60, 69, 60, 53, 71, 77, 58, 81, 63, 50, 89, 55, 82, 65, 55, 69, 135, 72, 72, 54, 71, 60, 56, 43, 71, 62, 68, 79, 66, 63, 71, 81, 108, 53, 60, 73, 49, 44, 60, 69, 93, 72, 54, 85, 75, 57, 64, 85, 81, 59, 47, 85, 96, 37, 66, 76, 69, 74, 73, 67, 54, 63, 77, 69, 91, 54, 57, 79, 76, 82, 58, 62, 41, 61, 62, 40, 121, 70, 65, 66, 56, 43, 62, 53, 59, 61, 88, 36, 78, 73, 53, 70, 61, 48, 50, 102, 67, 84, 47, 64, 71, 55, 36, 80, 44, 69, 64, 48, 50, 55, 56, 57, 60, 57, 55, 70, 103, 57, 67, 47, 68, 48, 64, 101, 93, 72, 52, 79, 60, 77, 54, 51, 83, 63, 70, 75, 57, 72, 68, 65, 74, 59, 45, 65, 59, 73, 58, 84, 53, 56, 74, 72, 64, 53, 52, 57, 84, 76, 70, 64, 83, 82, 75, 50, 90, 56, 61, 94, 79, 79, 65, 73, 71, 61, 76, 57, 63, 85, 54, 70, 52, 65, 55, 63, 48, 62, 58, 82, 88, 65, 61, 47, 56, 83, 57, 65, 75, 86, 84, 122, 59, 46, 78, 65, 50, 120, 53, 66, 63, 60, 71, 66, 54, 69, 82, 64, 59, 33, 75, 58, 81, 58, 60, 83, 48, 71, 73, 68, 59, 62, 57, 53, 56, 104, 86, 64, 54, 47, 54, 76, 59, 91, 57, 60, 65, 60, 64, 57, 58, 48, 39, 64, 78, 79, 62, 65, 69, 63, 62, 104, 46, 71, 76, 69, 41, 51, 74, 68, 87, 65, 77, 72, 71, 57, 81, 75, 87, 75, 61, 61, 62, 56, 50, 47, 83, 46, 59, 54, 79, 61, 65, 58, 65, 49, 69, 68, 81, 56, 67, 67, 53, 44, 79, 98, 47, 42, 54, 61, 46, 67, 67, 54, 59, 50, 79, 79, 68, 76, 67, 71, 51, 57, 98, 56, 73, 68, 83, 48, 93, 67, 53, 44, 63, 65, 86, 81, 48, 57, 70, 75, 76, 58, 81, 56, 55, 48, 73, 84, 85, 117, 83, 59, 53, 71, 54, 76, 104, 61, 93, 59, 51, 55, 57, 60, 56, 86, 56, 46, 72, 67, 65, 92, 64, 64, 77, 51, 60, 64, 78, 50, 85, 66, 59, 42, 65, 52, 77, 53, 70, 47, 54, 54, 95, 83, 56, 74, 52, 91, 50, 58, 98, 71, 55, 45, 71, 73, 108, 59, 64, 122, 66, 67, 67, 53, 68, 48, 55, 63, 78, 114, 63, 71, 61, 59, 68, 68, 84, 48, 66, 68, 82, 57, 50, 49, 62, 43, 64, 50, 61, 64, 63, 64, 63, 58, 79, 64, 71, 93, 78, 81, 54, 38, 97, 59, 50, 78, 91, 69, 50, 85, 42, 76, 49, 45, 61, 71, 60, 63, 84, 77, 60, 63, 65, 69, 58, 78, 77, 82, 71, 76, 59, 75, 72, 70, 72, 65, 36, 76, 101, 71, 58, 79, 54, 75, 55, 73, 57, 101, 76, 73, 75, 62, 53, 68, 66, 91, 52, 45, 53, 57, 62, 56, 95, 74, 43, 60, 59, 51, 56, 68, 65, 67, 53, 74, 70, 82, 60, 53, 56, 142, 63, 70, 54, 53, 46, 59, 126, 51, 61, 67, 63, 70, 65, 67, 66, 94, 65, 79, 60, 110, 52, 57, 50, 84, 83, 58, 42, 62, 44, 86, 61, 70, 79, 66, 77, 61, 46, 149, 106, 62, 69, 73, 59, 81, 56, 71, 55, 82, 69, 52, 62, 70, 139, 64, 45, 75, 67, 71, 49, 94, 83, 75, 96, 93, 73, 101, 48, 59, 61, 63, 66, 66, 58, 72, 42, 89, 62, 67, 73, 73, 99, 76, 54, 73, 66, 67, 68, 54, 38, 77, 57, 42, 75, 48, 87, 59, 65, 67, 67, 55, 75, 53, 64, 77, 42, 68, 80, 92, 52, 76, 80, 73, 51, 63, 70, 60, 59, 87, 78, 57, 53, 80, 54, 79, 57, 82, 50, 73, 72, 85, 63, 133, 65, 64, 55, 42, 58, 86, 60, 59, 64, 65, 68, 97, 90, 52, 57, 99, 82, 54, 83, 59, 72, 107, 51, 73, 62, 49, 46, 68, 74, 53, 46, 43, 79, 99, 60, 65, 78, 85, 60, 98, 57, 70, 47, 81, 94, 73, 54, 62, 63, 73, 36, 78, 64, 55, 56, 110, 70, 76, 82, 69, 59, 102, 59, 61, 57, 101, 62, 47, 89, 64, 63, 76, 77, 58, 53, 64, 61, 63, 70, 71, 53, 55, 59, 43, 64, 65, 84, 69, 65, 43, 75, 84, 66, 84, 40, 63, 70, 55, 71, 53, 78, 43, 83, 45, 63, 88, 65, 77, 65, 44, 58, 71, 64, 72, 82, 84, 76, 79, 67, 60, 76, 88, 74, 72, 57, 61, 47, 72, 72, 69, 44, 58, 47, 87, 45, 70, 66, 68, 39, 63, 39, 44, 70, 78, 63, 101, 51, 81, 72, 62, 50, 75, 68, 106, 148, 60, 51, 51, 69, 69, 79, 77, 69, 65, 68, 53, 67, 58, 50, 73, 82, 71, 61, 47, 88, 95, 71, 67, 64, 55, 64, 48, 81, 74, 70, 57, 61, 66, 54, 79, 83, 85, 50, 104, 65, 78, 89, 56, 70, 75, 53, 48, 76, 110, 57, 69, 66, 57, 61, 41, 68, 83, 62, 44, 65, 101, 70, 92, 49, 50, 48, 43, 55, 62, 61, 76, 68, 59, 78, 59, 70, 67, 60, 46, 69, 40, 66, 77, 72, 43, 77, 64, 53, 67, 69, 65, 71, 83, 81, 75, 38, 76, 73, 95, 69, 62, 68, 62, 62, 65, 56, 58, 59, 70, 71, 57, 63, 72, 44, 47, 106, 81, 80, 56, 39, 73, 53, 74, 59, 95, 55, 60, 58, 69, 73, 59, 59, 76, 85, 54, 53, 74, 81, 51, 60, 66, 50, 53, 58, 49, 66, 69, 75, 68, 69, 53, 84, 72, 54, 58, 45, 75, 79, 56, 45, 57, 59, 51, 68, 78, 68, 78, 51, 61, 68, 55, 40, 88, 55, 83, 93, 84, 89, 39, 30, 63, 69, 64, 92, 51, 83, 53, 67, 79, 74, 68, 71, 62, 87, 62, 67, 67, 71, 38, 68, 60, 51, 68, 92, 63, 91, 51, 74, 105, 73, 81, 53, 76, 46, 43, 37, 65, 50, 44, 72, 74, 54, 65, 54, 87, 59, 62, 86, 70, 75, 67, 78, 69, 61, 67, 68, 63, 74, 53, 79, 52, 71, 65, 62, 72, 63, 60, 62, 66, 58, 91, 50, 49, 54, 65, 66, 71, 47, 68, 70, 140, 68, 68, 68, 70, 70, 43, 63, 71, 83, 51, 72, 42, 91, 77, 56, 65, 68, 64, 46, 65, 61, 89, 57, 78, 42, 46, 48, 73, 71, 40, 61, 60, 63, 62, 82, 67, 64, 75, 75, 79, 73, 69, 59, 63, 63, 55, 89, 39, 59, 72, 67, 45, 67, 73, 83, 64, 90, 43, 71, 73, 75, 49, 68, 61, 67, 72, 69, 98, 94, 65, 78, 61, 64, 52, 66, 59, 62, 50, 70, 61, 93, 53, 84, 44, 82, 121, 67, 96, 81, 71, 70, 85, 66, 79, 87, 51, 90, 76, 65, 66, 68, 68, 67, 72, 40, 69, 55, 74, 71, 52, 68, 70, 56, 88, 71, 83, 64, 79, 73, 53, 80, 75, 46, 66, 68, 60, 65, 55, 58, 67, 71, 66, 47, 74, 84, 68, 47, 30, 64, 50, 61, 59, 51, 71, 73, 61, 37, 63, 88, 68, 59, 56, 61, 56, 94, 75, 80, 49, 55, 64, 63, 66, 78, 58, 58, 62, 54, 65, 38, 53, 78, 26, 73, 74, 69, 48, 56, 70, 72, 98, 45, 83, 68, 69, 88, 63, 89, 72, 81, 52, 70, 66, 42, 63, 73, 57, 74, 67, 55, 62, 66, 64, 68, 75, 73, 47, 75, 85, 68, 59, 58, 65, 85, 69, 61, 59, 69, 63, 76, 52, 71, 65, 61, 90, 54, 51, 68, 89, 56, 42, 101, 76, 73, 73, 60, 61, 44, 60, 95, 61, 52, 60, 72, 55, 136, 88, 78, 63, 50, 59, 68, 69, 52, 73, 75, 78, 65, 67, 59, 61, 66, 59, 69, 55, 63, 65, 82, 42, 56, 95, 67, 70, 38, 46, 67, 60, 55, 86, 70, 64, 54, 42, 65, 57, 77, 68, 59, 53, 73, 52, 56, 68, 57, 92, 58, 125, 71, 68, 62, 49, 66, 62, 77, 55, 74, 49, 49, 58, 76, 82, 70, 65, 58, 58, 77, 77, 60, 45, 59, 44, 59, 71, 46, 74, 83, 68, 59, 112, 62, 96, 82, 80, 44, 54, 55, 46, 63, 61, 116, 57, 63, 63, 65, 56, 97, 57, 100, 65, 56, 45, 96, 60, 59, 54, 74, 54, 52, 47, 48, 120, 47, 81, 65, 71, 56, 59, 54, 114, 58, 52, 60, 54, 63, 70, 55, 71, 50, 73, 69, 47, 64, 67, 52, 60, 86, 63, 48, 62, 70, 66, 43, 42, 67, 85, 52, 114, 72, 56, 81, 65, 82, 61, 62, 57, 58, 61, 70, 71, 78, 65, 45, 96, 123, 79, 37, 71, 61, 53, 70, 44, 88, 68, 61, 77, 67, 58, 82, 75, 65, 79, 81, 44, 64, 60, 67, 78, 74, 64, 119, 38, 66, 81, 86, 61, 61, 56, 92, 66, 66, 40, 55, 60, 70, 52, 37, 72, 132, 65, 65, 60, 58, 79, 79, 66, 74, 70, 44, 57, 66, 74, 59, 73, 75, 55, 54, 80, 79, 81, 55, 51, 40, 42, 76, 87, 50, 75, 58, 69, 107, 63, 79, 55, 71, 46, 63, 63, 56, 70, 67, 95, 69, 71, 85, 56, 63, 48, 62, 76, 96, 77, 87, 77, 77, 68, 70, 61, 66, 52, 59, 55, 69, 76, 83, 49, 86, 58, 62, 65, 80, 59, 61, 63, 46, 57, 60, 85, 87, 49, 45, 38, 81, 61, 54, 81, 50, 57, 62, 78, 63, 64, 67, 70, 66, 52, 76, 71, 71, 79, 57, 51, 87, 68, 125, 83, 48, 46, 61, 55, 80, 62, 85, 49, 73, 55, 72, 51, 66, 82, 55, 60, 70, 60, 53, 65, 79, 51, 107, 70, 73, 81, 68, 73, 72, 46, 39, 55, 58, 67, 49, 56, 115, 88, 55, 82, 60, 61, 53, 98, 60, 71, 79, 48, 54, 69, 62, 69, 71, 91, 83, 48, 46, 63, 64, 45, 70, 48, 52, 56, 111, 62, 40, 70, 68, 57, 34, 52, 44, 61, 80, 86, 76, 69, 78, 67, 65, 46, 87, 77, 55, 58, 53, 57, 47, 64, 67, 42, 62, 45, 75, 84, 62, 83, 40, 95, 56, 84, 65, 65, 67, 76, 68, 71, 69, 71, 54, 119, 76, 56, 95, 60, 50, 74, 92, 63, 72, 57, 34, 79, 105, 98, 66, 49, 67, 38, 84, 50, 66, 48, 92, 87, 75, 64, 63, 58, 64, 61, 47, 64, 74, 76, 54, 58, 65, 61, 59, 75, 71, 61, 72, 54, 63, 64, 76, 85, 50, 54, 49, 59, 57, 59, 68, 116, 51, 75, 53, 87, 91, 80, 72, 63, 71, 51, 56, 53, 49, 66, 63, 56, 45, 57, 76, 52, 59, 57, 67, 61, 63, 84, 85, 56, 57, 55, 107, 76, 57, 76, 64, 72, 69, 67, 50, 73, 45, 69, 77, 72, 65, 56, 66, 72, 52, 65, 75, 69, 55, 83, 69, 53, 73, 63, 63, 49, 56, 58, 60, 75, 67, 72, 64, 58, 61, 70, 66, 97, 52, 50, 58, 48, 59, 63, 54, 54, 60, 80, 62, 56, 56, 48, 60, 55, 57, 44, 46, 63, 63, 73, 86, 58, 68, 60, 54, 86, 82, 72, 62, 64, 68, 70, 66, 67, 68, 54, 66, 64, 102, 74, 66, 61, 71, 57, 64, 64, 78, 54, 99, 88, 60, 53, 62, 55, 69, 94, 59, 58, 38, 74, 74, 48, 55, 40, 82, 61, 55, 86, 52, 67, 51, 80, 57, 60, 56, 47, 68, 78, 66, 58, 63, 50, 53, 67, 57, 67, 89, 49, 75, 65, 78, 60, 62, 71, 63, 57, 65, 100, 62, 70, 69, 74, 63, 72, 77, 58, 52, 78, 73, 68, 57, 64, 50, 53, 45, 59, 59, 67, 69, 54, 92, 75, 69, 77, 54, 63, 85, 90, 73, 50, 55, 82, 64, 65, 51, 53, 76, 64, 56, 57, 48, 58, 67, 48, 64, 61, 86, 75, 65, 95, 76, 67, 67, 53, 41, 62, 68, 44, 60, 61, 65, 68, 93, 79, 59, 54, 56, 47, 48, 50, 54, 57, 75, 58, 42, 60, 104, 76, 56, 70, 76, 69, 56, 76, 66, 90, 61, 72, 83, 53, 85, 63, 52, 57, 65, 75, 71, 51, 58, 54, 71, 59, 71, 68, 86, 65, 72, 84, 86, 52, 71, 48, 63, 78, 75, 65, 57, 64, 59, 48, 67, 63, 88, 85, 61, 85, 46, 90, 72, 56, 61, 35, 70, 63, 65, 69, 107, 115, 62, 69, 70, 51, 67, 61, 84, 56, 60, 58, 62, 57, 57, 51, 67, 57, 92, 57, 65, 64, 59, 46, 47, 67, 53, 51, 82, 101, 87, 63, 72, 68, 42, 59, 84, 70, 52, 66, 67, 58, 71, 61, 86, 61, 70, 66, 56, 63, 59, 75, 60, 55, 74, 63, 61, 62, 60, 77, 67, 60, 57, 54, 63, 60, 61, 37, 58, 40, 42, 84, 67, 63, 69, 73, 84, 78, 64, 57, 69, 58, 59, 59, 69, 68, 68, 74, 64, 63, 44, 59, 72, 64, 61, 69, 73, 46, 61, 50, 76, 70, 66, 65, 81, 78, 61, 60, 70, 60, 52, 61, 58, 69, 53, 60, 59, 47, 48, 59, 63, 80, 60, 67, 52, 67, 57, 72, 73, 59, 71, 58, 54, 55, 64, 52, 62, 78, 66, 53, 71, 69, 45, 75, 79, 85, 64, 61, 62, 85, 66, 61, 81, 46, 58, 72, 74, 52, 52, 81, 61, 67, 49, 72, 63, 65, 65, 86, 64, 57, 82, 62, 65, 69, 71, 54, 74, 70, 86, 57, 58, 70, 78, 51, 51, 61, 72, 58, 59, 75, 62, 62, 88, 92, 66, 63, 62, 53, 107, 88, 55, 72, 74, 68, 54, 69, 55, 51, 71, 60, 40, 59, 69, 45, 75, 48, 66, 74, 61, 54, 54, 59, 52, 58, 64, 54, 67, 51, 75, 73, 69, 70, 58, 45, 66, 65, 61, 62, 117, 67, 71, 59, 60, 69, 45, 53, 72, 64, 68, 65, 61, 74, 103, 58, 85, 74, 59, 74, 80, 79, 94, 68, 81, 91, 61, 72, 73, 44, 66, 66, 100, 65, 53, 76, 72, 103, 69, 56, 75, 58, 75, 61, 65, 59, 72, 64, 73, 66, 67, 57, 66, 63, 48, 71, 86, 60, 55, 91, 57, 69, 82, 65, 57, 50, 57, 72, 64, 60, 68, 72, 68, 78, 64, 62, 65, 47, 69, 63, 88, 73, 65, 69, 53, 49, 63, 57, 88, 50, 67, 55, 88, 51, 66, 62, 79, 51, 100, 59, 57, 50, 63, 62, 71, 95, 67, 61, 62, 57, 76, 60, 61, 69, 89, 66, 72, 66, 69, 80, 45, 74, 84, 79, 76, 60, 88, 83, 79, 79, 63, 51, 56, 60, 61, 48, 59, 47, 53, 59, 65, 45, 57, 83, 92, 62, 57, 57, 57, 36, 78, 68, 82, 66, 56, 81, 58, 97, 73, 83, 73, 61, 57, 55, 64, 63, 49, 111, 62, 55, 64, 120, 62, 94, 58, 84, 69, 54, 66, 46, 71, 81, 98, 87, 68, 62, 68, 101, 55, 62, 49, 55, 71, 118, 69, 51, 77, 74, 77, 59, 78, 64, 86, 111, 51, 61, 120, 57, 87, 57, 62, 57, 52, 84, 64, 59, 76, 68, 52, 65, 68, 70, 44, 70, 47, 82, 56, 58, 99, 54, 82, 59, 66, 63, 49, 46, 52, 57, 63, 59, 67, 66, 57, 51, 55, 91, 69, 123, 83, 50, 54, 58, 78, 59, 69, 45, 85, 49, 62, 57, 60, 55, 82, 54, 71, 60, 74, 53, 50, 74, 66, 59, 67, 54, 65, 66, 141, 71, 70, 69, 49, 68, 70, 49, 67, 82, 67, 72, 54, 63, 65, 58, 54, 53, 82, 61, 45, 61, 62, 69, 56, 54, 85, 70, 69, 65, 62, 71, 71, 49, 90, 56, 65, 64, 82, 89, 56, 59, 70, 64, 77, 48, 61, 66, 65, 89, 68, 55, 59, 59, 54, 59, 61, 63, 84, 63, 69, 69, 54, 77, 65, 54, 54, 60, 64, 64, 70, 57, 91, 68, 71, 45, 59, 53, 56, 67, 74, 72, 63, 57, 69, 60, 63, 52, 69, 63, 101, 63, 65, 57, 61, 54, 53, 45, 56, 59, 78, 80, 61, 63, 118, 62, 65, 63, 60, 54, 67, 62, 68, 108, 56, 63, 67, 83, 57, 79, 61, 59, 64, 58, 65, 77, 58, 71, 57, 69, 83, 60, 56, 83, 63, 62, 76, 58, 67, 60, 69, 73, 45, 54, 67, 62, 89, 63, 67, 83, 67, 62, 66, 51, 60, 82, 79, 40, 64, 67, 78, 63, 60, 66, 68, 69, 80, 50, 69, 75, 57, 67, 63, 50, 69, 65, 58, 87, 52, 50, 49, 79, 70, 67, 82, 55, 61, 40, 45, 82, 57, 79, 49, 54, 60, 75, 65, 46, 60, 64, 65, 64, 70, 74, 46, 91, 43, 65, 53, 81, 65, 58, 88, 70, 65, 64, 63, 54, 35, 47, 57, 48, 83, 68, 69, 44, 59, 69, 79, 78, 77, 72, 77, 70, 98, 62, 62, 58, 43, 86, 69, 60, 72, 42, 55, 64, 77, 67, 44, 53, 51, 77, 57, 56, 43, 69, 61, 69, 94, 50, 50, 74, 68, 67, 54, 86, 65, 63, 62, 60, 85, 76, 67, 68, 68, 74, 77, 41, 96, 55, 91, 54, 61, 85, 81, 62, 71, 46, 48, 69, 66, 78, 69, 57, 60, 69, 52, 74, 64, 81, 65, 51, 51, 56, 62, 59, 75, 65, 47, 71, 53, 57, 46, 59, 67, 76, 40, 65, 73, 58, 72, 86, 68, 63, 132, 59, 77, 62, 65, 46, 75, 58, 52, 59, 80, 62, 56, 64, 88, 49, 68, 46, 61, 79, 76, 106, 70, 40, 92, 41, 75, 62, 64, 98, 81, 68, 71, 104, 65, 66, 67, 87, 74, 93, 59, 76, 52, 40, 64, 50, 50, 59, 65, 83, 55, 44, 45, 53, 88, 68, 53, 77, 72, 77, 73, 80, 61, 59, 72, 74, 63, 58, 88, 78, 83, 60, 59, 49, 63, 60, 121, 68, 71, 64, 60, 69, 73, 55, 45, 57, 51, 114, 69, 72, 57, 56, 74, 50, 74, 73, 77, 82, 60, 76, 84, 79, 58, 51, 76, 65, 61, 69, 85, 73, 60, 62, 49, 45, 67, 62, 71, 54, 71, 54, 53, 64, 71, 56, 86, 60, 50, 86, 45, 54, 67, 59, 87, 95, 61, 82, 75, 66, 68, 50, 62, 67, 52, 93, 91, 59, 45, 63, 53, 66, 80, 59, 45, 67, 81, 57, 64, 75, 104, 64, 62, 80, 64, 46, 61, 94, 74, 63, 57, 42, 55, 76, 58, 83, 59, 79, 67, 81, 54, 84, 75, 62, 57, 86, 84, 80, 76, 50, 75, 62, 65, 56, 75, 69, 80, 71, 55, 87, 61, 53, 64, 49, 65, 51, 53, 82, 70, 83, 78, 69, 61, 105, 68, 52, 55, 43, 73, 34, 66, 54, 67, 72, 57, 56, 67, 61, 67, 47, 70, 58, 59, 58, 69, 66, 59, 81, 94, 57, 60, 138, 57, 89, 69, 50, 71, 67, 78, 62, 53, 60, 74, 58, 69, 44, 60, 76, 59, 89, 85, 71, 54, 51, 51, 49, 39, 80, 43, 80, 72, 66, 36, 46, 59, 69, 67, 42, 58, 95, 49, 52, 61, 76, 47, 60, 72, 81, 65, 55, 96, 43, 78, 75, 63, 64, 51, 70, 55, 63, 55, 44, 98, 71, 57, 55, 56, 85, 95, 59, 79, 74, 79, 82, 61, 58, 77, 70, 77, 70, 76, 60, 73, 70, 81, 57, 80, 70, 62, 65, 92, 71, 69, 60, 94, 77, 50, 49, 86, 57, 82, 54, 73, 64, 77, 58, 49, 79, 63, 68, 54, 89, 75, 60, 56, 53, 55, 48, 65, 68, 65, 54, 48, 55, 50, 70, 51, 63, 60, 76, 58, 75, 56, 74, 67, 53, 31, 70, 71, 66, 64, 81, 48, 76, 74, 90, 75, 70, 89, 56, 54, 79, 48, 68, 77, 51, 59, 70, 83, 51, 75, 58, 84, 78, 55, 69, 79, 64, 67, 83, 67, 79, 51, 49, 76, 51, 47, 87, 60, 44, 64, 56, 63, 67, 68, 80, 67, 51, 90, 53, 87, 51, 59, 100, 60, 68, 60, 65, 60, 55, 51, 70, 67, 61, 66, 50, 56, 63, 89, 65, 77, 55, 77, 53, 88, 92, 69, 66, 64, 89, 44, 69, 78, 87, 59, 75, 73, 70, 56, 52, 63, 89, 77, 53, 89, 65, 40, 52, 70, 61, 51, 65, 76, 76, 71, 57, 44, 53, 48, 70, 53, 85, 49, 82, 44, 74, 67, 79, 54, 70, 54, 66, 64, 62, 69, 64, 53, 57, 61, 109, 100, 60, 67, 63, 50, 58, 65, 94, 47, 55, 59, 72, 64, 72, 85, 63, 82, 63, 58, 48, 62, 104, 61, 71, 57, 46, 54, 48, 85, 63, 52, 55, 68, 74, 78, 66, 73, 81, 56, 76, 126, 42, 77, 89, 69, 56, 54, 49, 58, 89, 70, 64, 81, 47, 68, 44, 59, 54, 69, 65, 59, 80, 84, 75, 63, 72, 58, 88, 79, 44, 73, 59, 58, 59, 95, 67, 66, 89, 87, 58, 72, 61, 91, 107, 151, 37, 77, 65, 78, 94, 65, 71, 66, 85, 77, 60, 59, 81, 64, 63, 72, 106, 61, 56, 63, 52, 72, 76, 56, 87, 57, 55, 39, 92, 66, 57, 72, 75, 49, 41, 70, 49, 70, 55, 66, 93, 61, 65, 49, 118, 49, 54, 80, 68, 66, 61, 57, 60, 66, 61, 70, 66, 53, 62, 63, 84, 87, 79, 65, 70, 83, 86, 55, 67, 55, 64, 56, 66, 52, 67, 64, 52, 70, 82, 79, 96, 67, 45, 49, 56, 58, 71, 63, 59, 67, 66, 52, 64, 84, 55, 112, 50, 69, 51, 61, 73, 56, 55, 55, 69, 56, 78, 71, 69, 71, 67, 44, 55, 59, 71, 92, 60, 68, 88, 65, 44, 50, 52, 68, 49, 75, 66, 63, 81, 52, 54, 112, 56, 60, 68, 73, 72, 70, 77, 46, 78, 53, 64, 70, 85, 49, 65, 73, 77, 35, 49, 44, 65, 77, 58, 59, 65, 87, 78, 53, 45, 77, 50, 58, 53, 86, 73, 76, 37, 48, 52, 52, 58, 67, 52, 88, 103, 107, 48, 57, 66, 58, 69, 50, 66, 65, 68, 76, 76, 81, 68, 77, 57, 67, 70, 57, 88, 51, 74, 53, 61, 64, 70, 59, 64, 55, 71, 89, 60, 70, 57, 55, 38, 68, 63, 82, 68, 63, 68, 92, 53, 55, 77, 57, 40, 80, 80, 49, 76, 65, 79, 63, 47, 97, 60, 53, 95, 60, 77, 70, 76, 47, 60, 67, 90, 87, 63, 60, 64, 79, 66, 76, 53, 89, 76, 72, 76, 88, 86, 53, 67, 95, 42, 72, 85, 50, 68, 28, 67, 66, 83, 77, 72, 64, 81, 55, 62, 55, 63, 65, 45, 61, 57, 85, 101, 55, 47, 56, 73, 59, 60, 72, 59, 64, 61, 59, 55, 61, 74, 48, 62, 77, 60, 46, 57, 51, 54, 88, 65, 71, 80, 55, 74, 57, 67, 59, 65, 45, 59, 66, 47, 50, 53, 57, 53, 78, 73, 45, 56, 86, 95, 60, 127, 67, 88, 69, 66, 82, 60, 85, 52, 51, 52, 55, 79, 40, 54, 99, 46, 67, 73, 72, 74, 45, 50, 88, 69, 61, 72, 63, 48, 55, 53, 77, 51, 78, 70, 58, 69, 116, 56, 68, 57, 87, 59, 56, 59, 76, 52, 55, 60, 67, 75, 51, 78, 58, 82, 63, 98, 63, 35, 76, 86, 71, 63, 63, 88, 57, 42, 99, 52, 64, 49, 60, 58, 79, 76, 51, 65, 81, 54, 71, 57, 122, 97, 71, 67, 71, 69, 53, 52, 86, 60, 48, 63, 73, 74, 65, 52, 86, 65, 42, 50, 60, 77, 50, 44, 75, 63, 77, 59, 56, 57, 60, 61, 52, 57, 75, 67, 72, 57, 55, 60, 68, 72, 76, 99, 62, 92, 59, 53, 57, 82, 74, 104, 69, 34, 50, 57, 63, 56, 72, 58, 48, 69, 56, 68, 64, 73, 48, 53, 63, 69, 63, 50, 58, 49, 65, 71, 85, 57, 60, 58, 66, 86, 72, 49, 67, 69, 79, 42, 52, 63, 66, 63, 52, 77, 68, 49, 60, 75, 66, 78, 55, 58, 76, 57, 49, 72, 48, 66, 69, 103, 71, 50, 45, 46, 48, 69, 73, 92, 88, 65, 65, 77, 57, 101, 81, 71, 75, 55, 59, 67, 78, 76, 56, 75, 74, 68, 69, 59, 84, 63, 102, 66, 63, 69, 55, 97, 53, 60, 45, 71, 83, 85, 69, 71, 50, 53, 69, 61, 65, 65, 55, 70, 76, 91, 55, 73, 62, 64, 52, 65, 56, 47, 43, 50, 70, 44, 59, 83, 62, 115, 62, 82, 46, 69, 73, 91, 52, 82, 79, 64, 71, 87, 58, 62, 86, 56, 56, 62, 52, 74, 94, 52, 70, 91, 56, 82, 68, 49, 78, 114, 63, 64, 53, 62, 58, 48, 73, 60, 57, 53, 99, 63, 51, 95, 57, 64, 72, 76, 89, 69, 72, 63, 63, 34, 67, 63, 46, 80, 56, 68, 45, 51, 67, 74, 88, 55, 64, 58, 72, 69, 64, 54, 57, 63, 67, 61, 61, 76, 82, 60, 116, 57, 65, 56, 69, 58, 48, 65, 55, 88, 77, 66, 58, 77, 73, 36, 84, 60, 61, 65, 75, 40, 78, 57, 77, 68, 66, 60, 53, 49, 41, 84, 56, 53, 65, 79, 56, 44, 58, 72, 67, 93, 48, 71, 62, 47, 77, 53, 70, 77, 64, 73, 109, 48, 62, 65, 54, 57, 51, 63, 51, 61, 64, 58, 71, 42, 61, 63, 49, 62, 69, 56, 34, 58, 84, 53, 53, 88, 71, 63, 51, 69, 53, 68, 58, 74, 78, 72, 74, 69, 47, 59, 55, 54, 46, 71, 74, 50, 51, 56, 81, 57, 82, 54, 49, 63, 58, 71, 65, 123, 48, 64, 60, 41, 70, 67, 41, 68, 72, 49, 57, 65, 69, 60, 63, 58, 59, 83, 44, 90, 63, 50, 59, 53, 61, 77, 89, 84, 72, 68, 67, 63, 53, 61, 97, 66, 52, 74, 66, 60, 67, 63, 103, 62, 59, 46, 74, 67, 110, 47, 67, 63, 62, 61, 46, 66, 82, 64, 58, 49, 111, 67, 51, 83, 57, 40, 60, 58, 84, 83, 60, 58, 46, 71, 97, 114, 76, 60, 59, 79, 55, 67, 56, 86, 65, 43, 90, 67, 65, 56, 42, 76, 96, 55, 95, 113, 47, 67, 51, 86, 50, 56, 64, 54, 72, 57, 56, 55, 66, 92, 68, 59, 65, 49, 53, 54, 45, 70, 61, 101, 87, 59, 63, 64, 71, 75, 59, 62, 76, 57, 73, 30, 66, 91, 39, 64, 65, 75, 57, 58, 57, 74, 66, 69, 75, 67, 85, 69, 69, 63, 58, 79, 63, 71, 44, 77, 80, 56, 74, 45, 57, 47, 61, 65, 69, 65, 73, 53, 62, 63, 65, 82, 59, 58, 55, 55, 46, 98, 48, 60, 64, 102, 54, 53, 69, 63, 29, 61, 53, 38, 70, 67, 99, 77, 71, 83, 57, 59, 78, 76, 50, 69, 77, 62, 109, 60, 62, 58, 41, 100, 73, 76, 61, 66, 88, 70, 56, 50, 69, 55, 56, 53, 82, 45, 73, 43, 66, 105, 96, 83, 66, 50, 66, 52, 57, 97, 53, 65, 78, 48, 58, 77, 46, 97, 60, 65, 64, 72, 75, 61, 45, 76, 53, 64, 50, 67, 59, 86, 58, 82, 60, 69, 54, 70, 37, 131, 60, 78, 74, 52, 38, 59, 61, 63, 51, 93, 54, 57, 75, 77, 74, 71, 56, 45, 69, 77, 69, 55, 71, 54, 62, 79, 92, 56, 61, 44, 67, 69, 56, 53, 75, 68, 88, 50, 61, 69, 46, 73, 56, 66, 57, 92, 76, 72, 90, 63, 64, 55, 81, 64, 41, 63, 46, 48, 65, 58, 150, 53, 76, 59, 51, 55, 70, 55, 64, 60, 60, 64, 67, 40, 38, 70, 67, 79, 61, 86, 47, 69, 141, 93, 58, 71, 51, 76, 68, 60, 68, 78, 53, 129, 77, 61, 52, 53, 49, 54, 96, 66, 63, 59, 75, 103, 70, 61, 44, 60, 57, 89, 60, 68, 48, 69, 62, 55, 54, 57, 70, 66, 60, 94, 65, 47, 53, 55, 56, 93, 65, 70, 62, 84, 59, 60, 70, 44, 54, 79, 58, 55, 82, 66, 86, 70, 51, 67, 55, 56, 114, 60, 70, 66, 52, 49, 101, 65, 69, 59, 82, 97, 71, 65, 88, 61, 78, 64, 56, 70, 54, 67, 88, 62, 90, 71, 42, 48, 74, 58, 65, 58, 74, 68, 60, 57, 69, 79, 82, 39, 64, 85, 54, 85, 87, 48, 55, 73, 56, 64, 52, 61, 51, 61, 57, 64, 67, 71, 39, 64, 44, 52, 91, 60, 75, 68, 49, 47, 56, 72, 59, 76, 53, 83, 40, 61, 95, 61, 69, 72, 57, 61, 66, 81, 56, 47, 56, 98, 51, 71, 100, 72, 60, 62, 46, 77, 41, 75, 57, 69, 50, 51, 53, 75, 72, 78, 87, 55, 58, 67, 53, 68, 46, 78, 63, 65, 62, 80, 50, 60, 63, 73, 52, 117, 58, 80, 53, 53, 78, 68, 61, 40, 63, 86, 71, 71, 72, 42, 61, 70, 62, 51, 59, 79, 69, 61, 61, 62, 39, 83, 125, 56, 82, 38, 65, 70, 106, 56, 66, 62, 52, 52, 94, 51, 56, 86, 71, 56, 79, 73, 64, 60, 38, 57, 66, 68, 49, 58, 64, 75, 58, 63, 54, 53, 64, 60, 56, 61, 92, 59, 63, 91, 50, 116, 64, 70, 56, 59, 50, 61, 40, 79, 58, 66, 73, 89, 41, 100, 99, 78, 91, 67, 75, 66, 61, 43, 56, 76, 59, 73, 42, 58, 61, 70, 53, 84, 74, 55, 59, 78, 57, 47, 51, 59, 53, 52, 40, 52, 34, 66, 65, 88, 52, 54, 47, 54, 57, 57, 71, 59, 63, 66, 74, 62, 51, 50, 67, 52, 62, 80, 79, 64, 101, 53, 78, 54, 56, 75, 58, 79, 54, 57, 50, 57, 79, 51, 72, 108, 66, 73, 117, 73, 59, 106, 54, 75, 50, 52, 80, 66, 64, 54, 91, 50, 97, 75, 84, 76, 32, 89, 59, 55, 79, 100, 76, 71, 61, 28, 59, 65, 51, 60, 92, 86, 55, 47, 71, 52, 71, 64, 91, 63, 60, 51, 55, 61, 79, 70, 61, 72, 76, 57, 80, 47, 55, 51, 53, 60, 54, 91, 70, 63, 69, 58, 59, 59, 63, 58, 69, 67, 52, 43, 67, 72, 82, 53, 68, 92, 63, 67, 65, 50, 76, 73, 57, 42, 85, 63, 51, 106, 82, 76, 54, 43, 61, 72, 77, 49, 97, 56, 65, 59, 53, 56, 56, 63, 73, 82, 46, 81, 98, 61, 56, 83, 48, 91, 55, 78, 39, 45, 62, 76, 80, 70, 54, 52, 60, 66, 56, 56, 64, 68, 52, 94, 82, 77, 80, 94, 61, 54, 48, 58, 98, 63, 66, 53, 61, 51, 93, 65, 87, 70, 62, 57, 47, 75, 138, 54, 54, 70, 58, 53, 87, 70, 59, 38, 79, 81, 53, 59, 47, 93, 70, 56, 74, 81, 57, 47, 83, 58, 86, 63, 64, 87, 86, 80, 51, 77, 77, 63, 53, 71, 59, 69, 38, 49, 62, 98, 57, 46, 76, 67, 76, 68, 55, 54, 64, 82, 95, 52, 72, 105, 52, 50, 88, 62, 79, 65, 40, 58, 59, 62, 58, 53, 60, 73, 87, 154, 59, 52, 71, 71, 55, 108, 60, 73, 100, 49, 75, 71, 44, 99, 68, 55, 61, 43, 55, 73, 61, 52, 108, 67, 104, 72, 79, 58, 65, 48, 68, 62, 59, 78, 59, 78, 80, 79, 57, 70, 35, 68, 63, 53, 79, 70, 63, 110, 62, 62, 61, 47, 62, 70, 76, 52, 67, 65, 61, 59, 65, 62, 59, 62, 72, 79, 64, 53, 54, 46, 61, 82, 68, 56, 63, 84, 46, 81, 53, 64, 70, 110, 63, 46, 76, 58, 81, 46, 65, 38, 68, 59, 55, 107, 67, 53, 67, 58, 56, 81, 62, 55, 63, 53, 47, 75, 56, 55, 54, 66, 52, 53, 80, 67, 98, 62, 67, 53, 57, 51, 50, 78, 68, 57, 79, 60, 46, 91, 70, 61, 87, 57, 65, 71, 73, 110, 64, 78, 62, 85, 61, 79, 85, 72, 64, 60, 71, 65, 58, 51, 70, 94, 72, 61, 78, 65, 76, 70, 50, 69, 73, 69, 66, 51, 59, 62, 66, 68, 60, 71, 71, 57, 61, 55, 82, 60, 78, 57, 63, 67, 47, 55, 56, 63, 52, 64, 59, 93, 49, 90, 67, 79, 87, 69, 54, 53, 73, 50, 66, 81, 59, 45, 75, 63, 69, 62, 54, 77, 63, 141, 56, 72, 85, 57, 66, 71, 57, 48, 53, 103, 85, 62, 99, 61, 41, 81, 57, 60, 58, 64, 55, 47, 66, 71, 59, 70, 57, 59, 59, 60, 65, 67, 58, 61, 63, 118, 50, 77, 72, 54, 60, 62, 98, 62, 63, 56, 55, 94, 58, 86, 85, 57, 70, 62, 79, 64, 94, 65, 76, 54, 97, 107, 58, 64, 55, 74, 69, 97, 66, 63, 94, 61, 62, 66, 78, 50, 69, 71, 73, 94, 76, 59, 49, 60, 58, 87, 87, 59, 67, 66, 62, 64, 65, 50, 62, 81, 50, 59, 80, 69, 66, 73, 77, 75, 64, 66, 49, 44, 51, 61, 54, 96, 65, 55, 37, 89, 62, 109, 39, 79, 79, 82, 77, 51, 70, 58, 100, 55, 78, 73, 78, 51, 88, 54, 63, 62, 50, 90, 60, 69, 66, 58, 67, 117, 65, 111, 82, 46, 57, 61, 50, 71, 59, 56, 56, 33, 57, 73, 40, 50, 61, 38, 59, 84, 48, 47, 68, 56, 45, 71, 108, 68, 70, 52, 73, 60, 67, 53, 95, 72, 73, 29, 47, 78, 63, 57, 59, 69, 56, 56, 63, 79, 89, 60, 53, 46, 53, 70, 56, 64, 66, 43, 62, 82, 52, 63, 51, 74, 60, 55, 45, 57, 67, 44, 82, 75, 71, 67, 53, 60, 79, 97, 43, 49, 49, 54, 59, 65, 71, 95, 57, 69, 69, 47, 51, 65, 58, 66, 111, 81, 61, 50, 90, 62, 59, 79, 64, 57, 98, 65, 69, 74, 74, 63, 61, 58, 59, 59, 57, 58, 69, 91, 61, 66, 58, 74, 54, 67, 57, 41, 94, 94, 78, 49, 76, 61, 44, 81, 66, 84, 35, 54, 68, 72, 75, 59, 73, 57, 88, 62, 51, 64, 67, 50, 43, 60, 69, 80, 54, 65, 61, 83, 95, 50, 67, 45, 55, 67, 59, 81, 69, 73, 42, 73, 71, 42, 47, 82, 60, 38, 73, 57, 65, 74, 75, 82, 66, 86, 69, 58, 50, 55, 54, 51, 77, 60, 66, 70, 69, 58, 54, 67, 73, 66, 69, 75, 63, 54, 54, 69, 82, 68, 40, 66, 74, 71, 77, 53, 60, 68, 49, 73, 46, 37, 66, 54, 78, 68, 62, 53, 34, 75, 56, 52, 58, 57, 66, 67, 85, 80, 79, 87, 57, 59, 64, 66, 48, 75, 103, 54, 67, 66, 67, 75, 85, 56, 103, 44, 44, 81, 84, 59, 77, 59, 52, 54, 71, 60, 54, 69, 83, 75, 53, 65, 59, 84, 73, 53, 51, 63, 78, 64, 65, 67, 71, 63, 69, 65, 65, 65, 96, 56, 53, 63, 72, 54, 74, 78, 59, 45, 55, 46, 59, 77, 59, 75, 62, 57, 54, 72, 75, 59, 65, 54, 77, 54, 94, 60, 78, 57, 66, 47, 56, 52, 77, 58, 48, 70, 54, 50, 58, 51, 60, 74, 61, 46, 52, 53, 84, 60, 69, 60, 70, 77, 73, 47, 61, 64, 74, 66, 65, 67, 72, 59, 62, 68, 64, 61, 52, 68, 72, 54, 53, 45, 56, 60, 69, 55, 100, 68, 70, 58, 53, 85, 89, 106, 66, 58, 64, 73, 57, 56, 58, 76, 48, 76, 65, 49, 53, 64, 78, 61, 56, 93, 66, 57, 63, 59, 82, 83, 79, 53, 57, 54, 72, 72, 45, 70, 60, 57, 57, 58, 59, 75, 54, 51, 56, 64, 74, 55, 76, 67, 72, 61, 56, 56, 68, 52, 77, 71, 79, 68, 47, 50, 63, 61, 52, 73, 42, 71, 60, 69, 63, 60, 84, 91, 54, 60, 163, 82, 65, 105, 72, 57, 54, 62, 67, 51, 54, 48, 87, 60, 66, 56, 58, 64, 73, 70, 55, 60, 53, 67, 69, 61, 88, 52, 65, 63, 47, 79, 60, 68, 48, 70, 69, 48, 58, 63, 66, 52, 68, 67, 60, 66, 63, 56, 58, 89, 60, 67, 70, 80, 60, 65, 122, 127, 62, 85, 77, 75, 64, 70, 59, 72, 68, 52, 70, 41, 61, 52, 81, 49, 58, 77, 80, 62, 39, 59, 89, 58, 66, 59, 52, 64, 64, 67, 94, 62, 40, 69, 67, 62, 60, 72, 62, 58, 60, 140, 105, 42, 55, 46, 57, 63, 68, 59, 56, 81, 67, 58, 51, 80, 66, 75, 63, 62, 60, 77, 71, 63, 69, 69, 66, 67, 78, 45, 61, 52, 59, 54, 48, 76, 62, 60, 69, 66, 51, 43, 50, 61, 63, 65, 64, 66, 55, 68, 66, 74, 76, 73, 57, 63, 82, 63, 65, 65, 73, 78, 69, 59, 66, 56, 48, 71, 76, 55, 65, 63, 65, 61, 62, 74, 72, 59, 65, 82, 65, 56, 82, 60, 67, 64, 60, 55, 61, 52, 66, 66, 55, 51, 69, 79, 70, 60, 62, 76, 104, 154, 48, 60, 45, 62, 59, 60, 62, 58, 67, 98, 65, 78, 58, 70, 78, 59, 59, 60, 44, 72, 56, 80, 91, 63, 68, 69, 66, 62, 53, 89, 60, 47, 84, 53, 98, 74, 102, 69, 57, 71, 72, 65, 57, 59, 64, 63, 70, 48, 61, 52, 103, 60, 62, 57, 56, 64, 57, 92, 68, 66, 66, 66, 82, 59, 84, 81, 56, 71, 69, 75, 69, 62, 63, 72, 68, 69, 69, 53, 64, 68, 78, 66, 72, 61, 74, 66, 77, 51, 74, 64, 54, 83, 55, 51, 66, 63, 66, 82, 71, 53, 59, 136, 50, 65, 62, 74, 68, 68, 54, 57, 88, 66, 75, 58, 68, 53, 61, 61, 60, 89, 71, 58, 76, 56, 67, 62, 71, 56, 84, 60, 58, 66, 67, 57, 48, 70, 69, 66, 76, 86, 77, 161, 78, 45, 74, 45, 47, 69, 52, 54, 54, 56, 72, 72, 47, 68, 67, 63, 70, 58, 67, 90, 77, 69, 54, 68, 61, 63, 51, 57, 71, 65, 61, 68, 68, 72, 60, 56, 56, 74, 66, 61, 83, 104, 64, 71, 56, 76, 58, 88, 64, 110, 56, 59, 49, 66, 61, 57, 67, 53, 66, 73, 47, 76, 81, 78, 48, 50, 58, 54, 58, 63, 54, 69, 73, 51, 72, 58, 72, 54, 62, 76, 47, 58, 48, 72, 58, 57, 63, 62, 80, 62, 65, 73, 54, 59, 81, 52, 82, 66, 57, 72, 47, 61, 56, 68, 59, 91, 62, 70, 73, 85, 65, 70, 66, 70, 67, 65, 74, 67, 55, 76, 65, 66, 63, 51, 67, 68, 104, 69, 72, 59, 77, 91, 60, 91, 63, 50, 67, 65, 64, 63, 70, 72, 53, 89, 54, 50, 66, 60, 76, 46, 81, 44, 105, 69, 97, 58, 62, 56, 63, 123, 66, 68, 66, 73, 66, 63, 68, 84, 55, 62, 82, 75, 67, 90, 61, 67, 42, 62, 45, 102, 60, 65, 79, 85, 67, 64, 64, 57, 79, 52, 61, 69, 59, 60, 93, 66, 65, 56, 67, 74, 63, 66, 55, 64, 48, 74, 80, 66, 104, 64, 74, 57, 95, 61, 79, 61, 61, 62, 63, 66, 71, 69, 69, 75, 67, 60, 78, 62, 61, 110, 55, 64, 66, 40, 76, 52, 66, 50, 65, 72, 61, 96, 42, 56, 88, 61, 55, 71, 75, 59, 70, 62, 86, 79, 54, 63, 71, 51, 67, 52, 67, 54, 95, 65, 73, 50, 75, 40, 47, 72, 74, 59, 74, 61, 75, 63, 59, 75, 64, 68, 49, 55, 79, 56, 52, 49, 55, 67, 67, 57, 60, 54, 93, 70, 60, 56, 54, 71, 50, 97, 63, 56, 67, 67, 70, 88, 68, 67, 66, 83, 46, 49, 73, 62, 66, 68, 56, 58, 62, 61, 49, 56, 71, 63, 92, 61, 60, 68, 63, 84, 56, 56, 55, 80, 54, 65, 62, 61, 70, 69, 81, 54, 68, 58, 90, 53, 79, 61, 61, 56, 65, 63, 71, 54, 62, 63, 57, 94, 76, 78, 67, 85, 59, 60, 58, 122, 67, 71, 59, 89, 85, 69, 59, 67, 64, 74, 68, 85, 51, 65, 75, 92, 62, 79, 84, 69, 64, 70, 74, 67, 52, 58, 60, 54, 59, 53, 86, 72, 67, 57, 67, 59, 52, 57, 50, 58, 65, 65, 52, 63, 59, 68, 54, 62, 66, 80, 64, 51, 58, 96, 66, 55, 82, 65, 51, 60, 63, 44, 69, 71, 70, 130, 62, 71, 57, 67, 54, 62, 58, 108, 70, 96, 65, 69, 72, 89, 122, 61, 67, 48, 54, 48, 67, 49, 66, 58, 70, 68, 67, 61, 69, 91, 82, 84, 68, 58, 52, 101, 79, 50, 76, 56, 74, 75, 59, 77, 60, 81, 61, 63, 54, 99, 112, 68, 77, 62, 128, 82, 66, 62, 59, 59, 57, 86, 54, 48, 58, 75, 51, 67, 54, 63, 79, 73, 105, 62, 62, 59, 75, 52, 59, 96, 67, 66, 51, 61, 58, 49, 68, 50, 56, 61, 62, 55, 83, 52, 50, 61, 38, 72, 68, 55, 61, 86, 56, 67, 68, 87, 75, 52, 52, 67, 64, 55, 46, 61, 71, 63, 59, 68, 77, 62, 71, 62, 69, 50, 64, 77, 49, 91, 58, 62, 79, 68, 54, 62, 61, 90, 60, 52, 69, 59, 53, 40, 87, 93, 68, 85, 80, 60, 55, 55, 60, 69, 53, 74, 49, 67, 84, 59, 54, 51, 81, 91, 72, 73, 67, 65, 69, 61, 59, 104, 52, 60, 65, 58, 64, 54, 73, 65, 70, 107, 67, 73, 61, 82, 49, 68, 50, 67, 71, 43, 39, 56, 79, 59, 57, 70, 70, 65, 59, 65, 60, 70, 66, 63, 35, 71, 59, 41, 66, 75, 63, 64, 88, 51, 91, 36, 73, 75, 79, 91, 65, 60, 65, 47, 65, 53, 49, 75, 58, 58, 60, 64, 59, 93, 94, 79, 57, 49, 60, 56, 86, 61, 54, 97, 69, 46, 77, 64, 75, 74, 57, 60, 76, 63, 73, 45, 55, 51, 70, 57, 54, 68, 67, 55, 56, 64, 55, 52, 85, 78, 67, 76, 66, 50, 67, 51, 59, 52, 60, 68, 60, 77, 70, 59, 93, 59, 79, 50, 70, 104, 55, 67, 67, 69, 85, 53, 54, 69, 78, 66, 57, 61, 68, 53, 46, 61, 50, 56, 75, 54, 64, 89, 59, 59, 67, 66, 61, 54, 61, 70, 52, 58, 76, 59, 62, 80, 65, 62, 75, 52, 91, 57, 87, 68, 59, 47, 60, 58, 44, 60, 82, 47, 77, 62, 64, 53, 81, 68, 62, 70, 71, 55, 54, 58, 58, 62, 99, 67, 72, 59, 80, 58, 55, 58, 81, 58, 67, 56, 70, 71, 65, 76, 86, 78, 57, 85, 61, 43, 65, 58, 77, 48, 49, 58, 68, 90, 61, 63, 59, 60, 56, 61, 78, 55, 95, 104, 43, 62, 62, 74, 80, 75, 56, 42, 61, 70, 70, 65, 50, 69, 61, 66, 44, 67, 67, 62, 66, 83, 79, 68, 44, 62, 69, 75, 83, 39, 67, 70, 73, 68, 61, 46, 64, 72, 117, 93, 61, 60, 60, 60, 50, 58, 60, 81, 61, 85, 63, 72, 61, 51, 51, 71, 57, 59, 90, 55, 72, 72, 74, 51, 63, 57, 66, 66, 62, 80, 41, 68, 66, 69, 50, 88, 55, 78, 60, 65, 73, 60, 56, 69, 87, 62, 55, 62, 65, 60, 66, 73, 61, 56, 87, 59, 49, 83, 60, 65, 57, 59, 90, 87, 87, 79, 65, 46, 56, 81, 45, 58, 70, 67, 73, 64, 50, 56, 65, 71, 64, 57, 48, 69, 39, 73, 79, 65, 62, 78, 56, 55, 63, 61, 63, 45, 59, 62, 64, 59, 57, 77, 59, 71, 65, 92, 74, 71, 71, 48, 71, 56, 58, 54, 107, 56, 62, 61, 56, 58, 79, 58, 85, 55, 47, 60, 56, 127, 58, 54, 87, 75, 54, 76, 116, 58, 93, 68, 58, 81, 88, 65, 62, 67, 60, 60, 80, 65, 94, 64, 127, 62, 87, 78, 74, 81, 74, 71, 63, 60, 71, 70, 64, 63, 64, 76, 73, 64, 54, 65, 62, 73, 46, 82, 40, 71, 55, 56, 50, 70, 55, 65, 54, 82, 48, 89, 66, 67, 67, 57, 67, 55, 48, 65, 47, 50, 70, 62, 59, 67, 84, 62, 69, 73, 96, 69, 58, 74, 53, 58, 49, 58, 45, 70, 56, 70, 56, 47, 70, 58, 90, 59, 45, 63, 50, 58, 50, 66, 68, 83, 75, 61, 80, 60, 81, 90, 78, 85, 66, 67, 73, 65, 51, 62, 63, 56, 50, 64, 53, 70, 57, 108, 73, 87, 64, 55, 73, 63, 103, 59, 61, 74, 71, 69, 81, 75, 60, 51, 53, 47, 40, 57, 66, 66, 57, 87, 70, 71, 43, 61, 64, 70, 86, 51, 78, 80, 78, 51, 58, 64, 94, 64, 62, 111, 69, 58, 90, 76, 80, 76, 61, 78, 70, 91, 62, 71, 61, 47, 104, 61, 52, 55, 86, 48, 92, 71, 84, 81, 53, 67, 66, 67, 56, 60, 67, 62, 60, 43, 52, 47, 55, 67, 61, 90, 75, 105, 74, 65, 68, 66, 55, 45, 60, 53, 65, 52, 30, 101, 63, 62, 66, 51, 98, 78, 51, 64, 97, 81, 67, 79, 62, 54, 62, 77, 73, 48, 49, 70, 60, 69, 41, 73, 61, 81, 62, 89, 49, 60, 47, 46, 66, 70, 63, 81, 75, 85, 78, 72, 53, 58, 67, 53, 55, 66, 56, 50, 76, 62, 51, 61, 96, 142, 58, 55, 67, 66, 104, 74, 51, 67, 70, 52, 67, 82, 64, 54, 66, 53, 56, 58, 72, 69, 98, 114, 43, 61, 70, 82, 72, 51, 58, 54, 63, 59, 60, 57, 60, 60, 75, 58, 56, 76, 57, 98, 56, 79, 62, 73, 84, 64, 62, 54, 56, 53, 70, 69, 71, 67, 62, 63, 75, 67, 62, 59, 63, 63, 50, 67, 79, 65, 61, 85, 61, 56, 64, 62, 61, 63, 56, 52, 61, 72, 51, 43, 55, 72, 72, 151, 76, 51, 47, 71, 66, 72, 74, 69, 70, 59, 70, 62, 109, 65, 81, 84, 66, 52, 67, 71, 71, 99, 66, 59, 51, 41, 49, 58, 55, 78, 73, 77, 78, 70, 63, 69, 48, 81, 54, 74, 54, 57, 83, 66, 79, 70, 82, 83, 52, 90, 53, 81, 65, 109, 66, 86, 64, 79, 40, 76, 66, 60, 54, 77, 91, 81, 57, 71, 55, 50, 46, 67, 72, 49, 53, 58, 86, 78, 45, 67, 91, 59, 52, 89, 67, 55, 54, 74, 57, 69, 82, 69, 57, 62, 78, 51, 62, 94, 88, 67, 81, 74, 60, 39, 80, 68, 53, 62, 67, 69, 66, 63, 45, 55, 100, 68, 48, 71, 63, 60, 70, 75, 78, 52, 62, 73, 56, 77, 83, 53, 70, 62, 67, 89, 54, 75, 74, 105, 62, 69, 55, 64, 58, 69, 66, 76, 67, 68, 95, 52, 50, 51, 50, 69, 54, 61, 68, 64, 66, 61, 68, 79, 72, 82, 76, 59, 58, 57, 80, 46, 94, 77, 60, 95, 138, 62, 48, 83, 59, 102, 85, 72, 49, 100, 77, 63, 73, 61, 51, 64, 74, 91, 40, 83, 76, 73, 58, 66, 87, 64, 80, 51, 47, 66, 92, 63, 68, 104, 57, 53, 74, 52, 72, 68, 69, 80, 99, 64, 80, 67, 61, 123, 68, 69, 61, 52, 63, 50, 54, 60, 77, 60, 61, 72, 74, 86, 53, 59, 58, 64, 63, 75, 75, 61, 61, 72, 78, 76, 52, 35, 66, 75, 74, 74, 60, 97, 103, 108, 55, 57, 72, 46, 51, 74, 56, 57, 67, 77, 70, 49, 99, 52, 66, 42, 60, 66, 54, 96, 44, 78, 57, 94, 64, 60, 49, 60, 87, 84, 45, 92, 73, 50, 68, 68, 55, 87, 63, 83, 90, 61, 62, 91, 68, 71, 61, 55, 60, 81, 72, 45, 69, 84, 65, 71, 56, 43, 60, 61, 68, 56, 56, 49, 61, 74, 43, 70, 66, 55, 50, 48, 60, 72, 68, 82, 47, 77, 62, 72, 54, 66, 62, 79, 58, 53, 76, 43, 78, 74, 64, 50, 114, 71, 65, 55, 81, 56, 65, 87, 69, 75, 55, 69, 76, 62, 64, 82, 92, 61, 56, 83, 80, 92, 69, 64, 69, 59, 57, 68, 68, 73, 72, 61, 100, 74, 66, 79, 67, 50, 56, 67, 59, 57, 73, 68, 97, 50, 76, 59, 70, 69, 77, 62, 105, 64, 93, 62, 66, 77, 75, 50, 67, 54, 69, 59, 60, 75, 49, 51, 63, 59, 74, 56, 64, 46, 55, 108, 69, 81, 54, 44, 54, 59, 60, 72, 66, 78, 51, 76, 74, 65, 69, 48, 66, 68, 55, 68, 75, 72, 76, 59, 57, 70, 65, 78, 48, 70, 92, 74, 67, 85, 70, 70, 48, 63, 68, 57, 67, 98, 64, 76, 84, 70, 73, 59, 77, 77, 74, 58, 60, 58, 67, 53, 48, 78, 63, 76, 60, 95, 75, 70, 58, 82, 73, 71, 87, 76, 50, 70, 52, 57, 62, 53, 70, 59, 61, 63, 70, 55, 81, 72, 50, 54, 77, 69, 64, 34, 52, 50, 64, 59, 76, 50, 57, 82, 37, 45, 82, 59, 64, 83, 75, 54, 87, 73, 77, 59, 84, 96, 75, 59, 64, 48, 93, 61, 74, 65, 70, 64, 38, 74, 78, 59, 54, 98, 49, 68, 62, 66, 73, 61, 79, 42, 67, 78, 69, 69, 72, 45, 64, 60, 55, 59, 78, 91, 65, 66, 90, 80, 66, 27, 54, 76, 52, 65, 70, 54, 63, 54, 115, 70, 54, 62, 62, 68, 52, 98, 47, 45, 63, 60, 85, 62, 61, 55, 67, 69, 59, 77, 68, 75, 56, 52, 55, 62, 81, 37, 75, 86, 93, 61, 76, 68, 70, 55, 75, 59, 57, 33, 74, 65, 55, 52, 57, 83, 74, 55, 55, 62, 50, 59, 60, 65, 86, 65, 62, 60, 74, 83, 61, 53, 53, 92, 56, 62, 74, 55, 68, 83, 107, 90, 61, 64, 106, 60, 72, 77, 52, 57, 36, 67, 91, 68, 60, 56, 40, 72, 58, 62, 55, 87, 66, 71, 54, 79, 49, 89, 65, 58, 65, 87, 68, 64, 67, 71, 70, 60, 66, 43, 84, 136, 58, 69, 54, 66, 58, 57, 66, 34, 72, 57, 80, 73, 63, 69, 69, 32, 79, 61, 54, 74, 53, 57, 57, 65, 60, 50, 67, 63, 79, 80, 59, 55, 63, 96, 66, 53, 83, 58, 67, 48, 50, 128, 52, 67, 64, 50, 50, 74, 84, 68, 49, 75, 81, 63, 42, 78, 70, 70, 89, 83, 48, 71, 42, 62, 63, 62, 59, 115, 64, 72, 52, 50, 68, 38, 105, 77, 74, 50, 88, 68, 52, 63, 68, 73, 71, 72, 61, 69, 63, 58, 50, 58, 89, 70, 88, 70, 57, 63, 58, 51, 65, 54, 72, 72, 61, 51, 56, 72, 71, 64, 80, 69, 92, 52, 74, 66, 71, 64, 46, 58, 76, 57, 84, 53, 62, 70, 59, 112, 65, 69, 63, 69, 76, 58, 67, 73, 74, 47, 35, 53, 80, 65, 70, 42, 76, 84, 73, 68, 60, 94, 66, 75, 130, 76, 46, 47, 73, 60, 68, 83, 78, 61, 72, 62, 76, 77, 66, 53, 85, 58, 78, 75, 61, 62, 82, 59, 51, 70, 58, 68, 96, 93, 61, 41, 73, 53, 67, 75, 69, 88, 55, 90, 51, 91, 64, 57, 72, 59, 72, 51, 82, 74, 47, 142, 80, 76, 55, 51, 63, 54, 69, 71, 74, 62, 73, 71, 52, 60, 66, 86, 66, 55, 72, 58, 65, 59, 71, 44, 79, 59, 96, 72, 95, 115, 93, 79, 52, 50, 51, 48, 93, 59, 70, 63, 58, 71, 98, 60, 68, 60, 73, 63, 38, 92, 73, 58, 61, 66, 64, 73, 41, 71, 76, 66, 69, 108, 77, 65, 57, 78, 64, 56, 48, 44, 52, 67, 65, 82, 70, 78, 53, 75, 71, 46, 60, 72, 52, 66, 63, 93, 74, 48, 85, 51, 49, 51, 54, 69, 51, 62, 64, 50, 50, 58, 49, 63, 74, 65, 33, 92, 61, 65, 80, 59, 62, 51, 107, 66, 67, 81, 93, 84, 63, 39, 59, 56, 66, 67, 69, 74, 85, 57, 93, 57, 94, 67, 88, 59, 58, 51, 88, 62, 72, 85, 80, 67, 49, 70, 56, 50, 46, 51, 56, 52, 48, 67, 46, 59, 49, 60, 57, 103, 62, 54, 71, 67, 70, 70, 57, 53, 48, 73, 93, 63, 86, 72, 85, 51, 72, 92, 60, 78, 59, 74, 72, 59, 75, 54, 72, 68, 63, 75, 92, 50, 64, 52, 53, 48, 80, 59, 75, 54, 65, 68, 68, 78, 61, 69, 57, 65, 75, 40, 77, 69, 59, 52, 61, 63, 61, 61, 62, 75, 79, 56, 61, 62, 86, 67, 56, 56, 55, 91, 51, 57, 73, 88, 92, 65, 100, 64, 72, 82, 53, 61, 69, 47, 39, 46, 57, 60, 71, 60, 61, 48, 69, 59, 48, 78, 47, 60, 57, 62, 91, 50, 66, 54, 55, 54, 77, 40, 70, 57, 59, 55, 75, 63, 52, 48, 60, 69, 91, 45, 53, 61, 49, 81, 56, 65, 84, 60, 90, 81, 63, 63, 68, 59, 52, 46, 45, 64, 74, 102, 61, 51, 75, 56, 53, 57, 71, 42, 59, 62, 55, 64, 57, 109, 62, 63, 56, 49, 50, 48, 67, 67, 69, 77, 85, 92, 81, 52, 44, 40, 67, 67, 55, 55, 77, 59, 57, 62, 62, 65, 90, 46, 91, 70, 57, 81, 66, 68, 60, 27, 88, 50, 96, 62, 72, 69, 64, 109, 70, 71, 66, 56, 93, 69, 68, 65, 63, 83, 66, 63, 49, 72, 68, 38, 53, 50, 103, 60, 49, 93, 64, 73, 67, 76, 62, 68, 86, 64, 49, 62, 68, 58, 75, 52, 59, 58, 57, 58, 64, 73, 73, 66, 54, 65, 61, 67, 52, 109, 54, 68, 43, 95, 59, 67, 66, 96, 62, 66, 77, 55, 63, 59, 68, 61, 84, 74, 63, 61, 78, 79, 68, 56, 79, 42, 68, 61, 59, 46, 58, 56, 67, 94, 80, 53, 77, 72, 109, 59, 70, 56, 60, 64, 38, 56, 65, 83, 53, 72, 63, 58, 72, 68, 59, 81, 60, 71, 54, 52, 56, 66, 67, 85, 68, 87, 30, 69, 51, 62, 54, 102, 58, 73, 69, 74, 66, 52, 65, 95, 75, 109, 65, 73, 53, 64, 66, 66, 83, 83, 40, 60, 70, 48, 72, 76, 82, 64, 70, 56, 55, 57, 61, 43, 58, 65, 42, 64, 90, 75, 62, 57, 70, 79, 50, 59, 64, 66, 94, 55, 72, 59, 51, 70, 58, 41, 70, 51, 67, 63, 61, 60, 65, 56, 66, 59, 75, 73, 73, 74, 93, 57, 73, 51, 68, 64, 58, 67, 69, 65, 79, 80, 62, 52, 87, 64, 51, 52, 61, 68, 71, 66, 73, 60, 55, 53, 72, 54, 69, 71, 65, 55, 68, 93, 47, 88, 74, 58, 71, 93, 74, 78, 59, 73, 64, 77, 84, 66, 79, 52, 48, 63, 62, 60, 41, 67, 53, 58, 70, 49, 54, 68, 42, 34, 59, 65, 63, 59, 67, 78, 57, 64, 66, 109, 67, 77, 69, 49, 57, 55, 80, 57, 77, 56, 73, 51, 67, 88, 93, 69, 86, 50, 56, 103, 64, 40, 53, 44, 63, 46, 88, 48, 70, 48, 74, 67, 109, 64, 72, 57, 54, 58, 79, 73, 60, 74, 68, 55, 69, 65, 82, 55, 68, 57, 51, 55, 80, 59, 46, 58, 50, 53, 72, 54, 53, 86, 71, 77, 61, 65, 87, 61, 61, 62, 71, 102, 63, 59, 71, 72, 63, 67, 65, 98, 67, 53, 61, 64, 45, 59, 90, 44, 106, 67, 59, 62, 63, 64, 57, 59, 42, 76, 59, 99, 73, 62, 65, 75, 64, 53, 59, 63, 73, 67, 53, 69, 60, 62, 72, 83, 61, 51, 68, 54, 68, 54, 48, 49, 86, 88, 64, 58, 55, 57, 44, 48, 58, 81, 64, 55, 70, 73, 62, 55, 66, 73, 65, 57, 54, 64, 55, 47, 63, 51, 77, 58, 66, 45, 52, 60, 53, 63, 87, 43, 79, 53, 105, 67, 61, 69, 56, 60, 49, 41, 71, 41, 48, 60, 58, 61, 84, 73, 45, 60, 82, 49, 58, 100, 64, 60, 91, 70, 109, 71, 82, 64, 69, 60, 73, 56, 74, 57, 55, 60, 61, 72, 51, 63, 61, 67, 76, 59, 65, 72, 80, 43, 82, 64, 64, 66, 55, 54, 51, 53, 58, 64, 58, 65, 59, 54, 58, 47, 60, 81, 72, 72, 75, 116, 62, 64, 92, 52, 71, 60, 64, 53, 47, 71, 58, 50, 80, 51, 52, 53, 79, 64, 60, 75, 99, 95, 97, 66, 53, 75, 61, 82, 70, 47, 53, 48, 57, 80, 47, 79, 50, 64, 65, 115, 63, 67, 62, 56, 54, 57, 59, 67, 63, 63, 77, 80, 63, 63, 65, 49, 46, 65, 53, 63, 48, 58, 67, 61, 56, 55, 72, 50, 70, 63, 49, 57, 64, 73, 67, 57, 117, 106, 48, 70, 67, 64, 76, 64, 69, 67, 64, 80, 56, 61, 71, 73, 55, 81, 63, 78, 59, 95, 64, 90, 59, 41, 60, 60, 53, 89, 98, 58, 78, 63, 111, 63, 67, 57, 54, 66, 56, 47, 81, 77, 63, 68, 56, 58, 61, 67, 75, 74, 49, 71, 53, 66, 72, 70, 66, 83, 86, 52, 54, 70, 62, 47, 70, 57, 87, 79, 70, 52, 68, 48, 59, 63, 101, 89, 66, 82, 42, 62, 72, 73, 60, 55, 56, 76, 64, 73, 76, 76, 51, 115, 113, 70, 48, 62, 72, 74, 44, 71, 75, 63, 65, 47, 62, 58, 67, 60, 52, 93, 71, 63, 58, 57, 63, 59, 72, 67, 109, 88, 44, 84, 64, 57, 55, 65, 62, 65, 65, 62, 65, 53, 44, 76, 49, 56, 65, 59, 71, 85, 56, 46, 50, 53, 62, 49, 73, 66, 62, 57, 51, 71, 86, 123, 71, 50, 73, 58, 57, 47, 50, 66, 72, 70, 70, 64, 60, 90, 54, 47, 62, 88, 61, 66, 60, 56, 63, 100, 77, 55, 62, 56, 46, 60, 57, 62, 52, 81, 64, 79, 85, 61, 76, 50, 68, 58, 80, 54, 51, 61, 68, 59, 80, 50, 83, 59, 59, 45, 57, 56, 58, 91, 74, 58, 58, 58, 51, 75, 101, 67, 70, 48, 106, 51, 72, 54, 88, 78, 71, 57, 54, 53, 79, 63, 64, 72, 87, 78, 50, 56, 63, 58, 113, 54, 65, 58, 78, 83, 58, 62, 60, 78, 62, 69, 61, 77, 55, 80, 61, 65, 69, 52, 81, 65, 54, 80, 63, 63, 58, 41, 157, 72, 59, 63, 71, 67, 67, 42, 59, 62, 65, 65, 62, 106, 50, 74, 67, 57, 61, 54, 87, 61, 58, 65, 55, 44, 64, 67, 56, 81, 76, 60, 86, 76, 68, 62, 80, 53, 39, 66, 53, 64, 94, 66, 71, 72, 57, 73, 65, 70, 73, 53, 67, 79, 70, 90, 94, 67, 54, 58, 52, 59, 134, 73, 94, 60, 74, 59, 69, 59, 49, 55, 48, 75, 74, 57, 79, 70, 46, 48, 52, 61, 47, 82, 40, 64, 57, 72, 51, 65, 59, 61, 53, 62, 57, 46, 93, 86, 72, 62, 100, 46, 53, 50, 54, 61, 51, 96, 59, 62, 48, 62, 66, 82, 65, 72, 70, 69, 64, 59, 65, 65, 60, 74, 82, 61, 63, 65, 87, 73, 59, 63, 63, 66, 66, 69, 65, 63, 53, 58, 79, 58, 65, 67, 60, 60, 74, 47, 60, 67, 67, 65, 58, 61, 78, 78, 57, 56, 52, 48, 66, 69, 50, 62, 61, 91, 70, 114, 56, 61, 60, 86, 63, 73, 73, 63, 64, 64, 64, 60, 56, 72, 77, 70, 45, 60, 77, 62, 63, 54, 60, 66, 60, 58, 67, 85, 72, 71, 52, 71, 104, 62, 60, 72, 91, 59, 62, 78, 55, 57, 61, 74, 54, 59, 69, 44, 63, 62, 66, 69, 83, 64, 57, 64, 54, 90, 90, 69, 81, 52, 88, 58, 82, 55, 49, 64, 56, 67, 68, 59, 60, 103, 72, 93, 57, 69, 72, 83, 60, 90, 75, 72, 63, 55, 60, 56, 55, 63, 72, 67, 65, 75, 59, 67, 59, 72, 60, 39, 49, 90, 66, 61, 77, 108, 69, 86, 60, 51, 72, 64, 46, 61, 60, 71, 65, 51, 65, 66, 65, 77, 65, 72, 46, 45, 56, 59, 51, 62, 56, 95, 56, 48, 55, 67, 64, 65, 48, 58, 67, 62, 59, 74, 89, 58, 56, 83, 60, 72, 63, 95, 52, 53, 72, 45, 60, 65, 54, 45, 59, 67, 60, 67, 84, 56, 68, 43, 73, 79, 58, 66, 50, 42, 59, 52, 60, 50, 60, 55, 63, 51, 54, 60, 70, 76, 58, 59, 66, 61, 95, 67, 47, 72, 70, 58, 77, 56, 62, 74, 66, 63, 62, 115, 50, 59, 60, 58, 84, 50, 57, 78, 48, 67, 68, 65, 59, 61, 36, 87, 92, 71, 64, 66, 83, 73, 66, 63, 69, 90, 69, 63, 60, 63, 59, 46, 66, 52, 50, 50, 72, 62, 65, 69, 64, 65, 53, 60, 65, 69, 68, 59, 69, 63, 79, 56, 49, 81, 58, 68, 75, 64, 62, 64, 70, 56, 68, 74, 61, 67, 70, 60, 68, 72, 60, 58, 67, 66, 71, 64, 58, 66, 68, 75, 41, 65, 69, 47, 79, 61, 54, 57, 61, 49, 84, 90, 53, 58, 55, 52, 61, 75, 63, 45, 46, 65, 72, 62, 67, 61, 67, 55, 74, 61, 78, 63, 41, 57, 96, 55, 61, 68, 60, 59, 62, 66, 74, 58, 62, 78, 97, 87, 68, 60, 63, 70, 82, 48, 69, 61, 68, 60, 64, 71, 61, 56, 59, 76, 80, 70, 78, 63, 68, 49, 130, 66, 64, 117, 70, 77, 51, 56, 51, 52, 76, 69, 71, 82, 61, 51, 48, 57, 92, 72, 61, 59, 75, 47, 63, 65, 59, 81, 54, 64, 76, 50, 67, 65, 61, 69, 71, 56, 73, 60, 71, 75, 53, 67, 44, 84, 59, 63, 87, 92, 74, 67, 66, 67, 59, 96, 70, 62, 56, 66, 67, 45, 60, 64, 73, 90, 75, 48, 59, 62, 66, 55, 52, 51, 77, 61, 77, 58, 57, 55, 78, 71, 64, 61, 60, 64, 72, 86, 73, 67, 56, 57, 76, 49, 84, 50, 72, 46, 54, 71, 67, 72, 49, 69, 63, 44, 89, 76, 65, 75, 66, 68, 66, 63, 56, 67, 59, 67, 55, 104, 61, 73, 86, 74, 85, 57, 77, 65, 54, 53, 79, 62, 62, 66, 56, 64, 55, 75, 137, 61, 74, 73, 55, 65, 61, 58, 64, 71, 65, 57, 70, 88, 48, 72, 54, 57, 61, 66, 53, 62, 57, 90, 59, 66, 75, 56, 74, 69, 105, 58, 61, 121, 62, 72, 70, 67, 53, 66, 69, 69, 61, 46, 64, 70, 47, 62, 77, 71, 49, 60, 64, 57, 56, 65, 71, 69, 65, 58, 80, 49, 55, 81, 88, 61, 78, 54, 81, 40, 91, 56, 89, 75, 59, 69, 72, 56, 74, 69, 103, 58, 61, 58, 53, 43, 56, 53, 53, 53, 52, 85, 45, 103, 62, 56, 61, 67, 58, 93, 64, 62, 79, 83, 63, 63, 62, 59, 60, 60, 54, 47, 57, 85, 94, 57, 99, 68, 188, 67, 55, 56, 77, 62, 69, 63, 69, 41, 60, 61, 63, 48, 70, 67, 67, 56, 77, 65, 57, 69, 63, 126, 106, 66, 67, 74, 64, 66, 49, 49, 74, 67, 61, 71, 61, 103, 72, 57, 68, 46, 62, 58, 63, 70, 113, 57, 71, 60, 61, 57, 70, 52, 41, 40, 60, 60, 64, 54, 56, 79, 69, 66, 59, 47, 62, 53, 65, 73, 55, 49, 81, 75, 61, 74, 57, 59, 68, 65, 50, 64, 78, 77, 71, 66, 109, 64, 68, 53, 61, 54, 74, 96, 64, 65, 59, 76, 66, 72, 54, 57, 81, 58, 53, 58, 65, 67, 83, 54, 67, 54, 73, 66, 54, 74, 64, 54, 82, 67, 71, 49, 70, 79, 71, 59, 59, 61, 57, 55, 67, 47, 68, 78, 60, 53, 68, 70, 63, 59, 59, 71, 85, 82, 65, 80, 90, 71, 55, 70, 54, 52, 67, 51, 71, 62, 68, 55, 51, 133, 51, 48, 69, 69, 59, 69, 58, 95, 62, 64, 57, 74, 77, 69, 62, 67, 58, 63, 73, 76, 89, 63, 91, 71, 64, 63, 64, 53, 70, 98, 94, 63, 50, 53, 78, 73, 60, 69, 60, 45, 64, 61, 55, 65, 61, 59, 60, 67, 62, 68, 76, 66, 64, 63, 66, 76, 55, 68, 62, 65, 57, 58, 66, 68, 64, 50, 38, 57, 58, 66, 42, 60, 76, 40, 49, 75, 50, 55, 68, 70, 58, 59, 72, 59, 65, 62, 44, 58, 65, 61, 68, 93, 151, 75, 52, 55, 53, 54, 70, 73, 51, 53, 82, 86, 58, 64, 124, 65, 57, 62, 73, 48, 59, 51, 79, 59, 54, 62, 58, 53, 52, 66, 69, 60, 78, 51, 65, 66, 70, 94, 74, 69, 124, 83, 77, 64, 68, 63, 71, 58, 85, 68, 62, 84, 90, 82, 76, 49, 66, 51, 47, 77, 79, 80, 55, 68, 54, 63, 69, 40, 67, 95, 44, 73, 62, 70, 53, 57, 75, 63, 95, 81, 87, 56, 70, 66, 51, 108, 61, 66, 73, 63, 60, 57, 49, 73, 92, 92, 106, 64, 71, 66, 65, 55, 62, 55, 88, 38, 57, 84, 83, 57, 62, 102, 67, 33, 90, 51, 63, 68, 69, 67, 45, 61, 101, 81, 73, 77, 63, 65, 55, 81, 66, 53, 53, 77, 87, 59, 56, 54, 118, 59, 78, 50, 54, 65, 70, 72, 61, 33, 65, 58, 83, 72, 64, 52, 72, 102, 86, 61, 52, 42, 60, 58, 54, 73, 58, 76, 62, 43, 52, 57, 68, 49, 55, 52, 83, 68, 91, 57, 73, 74, 59, 70, 45, 57, 58, 68, 44, 73, 49, 77, 53, 55, 80, 61, 44, 67, 59, 100, 79, 40, 50, 69, 43, 71, 45, 67, 61, 57, 64, 63, 70, 56, 105, 47, 86, 63, 52, 78, 55, 50, 90, 57, 38, 53, 62, 54, 77, 74, 136, 76, 45, 45, 65, 62, 116, 36, 81, 61, 50, 82, 72, 69, 67, 54, 69, 54, 75, 59, 94, 72, 48, 85, 105, 78, 71, 60, 67, 47, 57, 57, 66, 52, 67, 65, 104, 73, 56, 102, 73, 53, 69, 83, 60, 66, 70, 60, 72, 53, 56, 61, 84, 78, 57, 58, 61, 35, 55, 78, 63, 66, 47, 79, 68, 84, 95, 79, 61, 63, 74, 73, 65, 78, 73, 61, 58, 46, 80, 61, 55, 59, 42, 32, 110, 74, 56, 55, 51, 75, 65, 49, 74, 72, 105, 83, 98, 64, 75, 71, 55, 50, 60, 42, 101, 75, 62, 50, 64, 71, 71, 61, 52, 90, 49, 71, 78, 71, 64, 48, 85, 41, 52, 63, 69, 68, 50, 58, 41, 57, 97, 50, 58, 49, 60, 85, 43, 68, 54, 67, 98, 69, 63, 68, 48, 53, 64, 84, 69, 67, 52, 59, 61, 55, 63, 74, 62, 88, 88, 87, 101, 48, 57, 52, 69, 60, 71, 69, 125, 62, 61, 66, 54, 62, 48, 73, 53, 51, 54, 57, 53, 71, 75, 80, 74, 65, 58, 56, 65, 74, 85, 85, 69, 65, 87, 69, 64, 79, 63, 53, 62, 95, 65, 46, 63, 58, 65, 68, 75, 83, 79, 60, 63, 56, 95, 73, 64, 55, 62, 81, 84, 68, 54, 53, 65, 61, 53, 74, 78, 95, 70, 78, 68, 52, 55, 64, 63, 92, 52, 64, 61, 51, 57, 93, 68, 62, 52, 71, 72, 59, 70, 83, 59, 57, 46, 68, 66, 54, 71, 69, 79, 64, 78, 68, 52, 75, 70, 60, 78, 71, 80, 65, 54, 56, 83, 72, 38, 60, 61, 88, 57, 65, 61, 76, 48, 71, 101, 48, 80, 41, 56, 55, 55, 84, 64, 71, 62, 69, 57, 60, 38, 63, 64, 68, 84, 58, 58, 75, 66, 82, 76, 80, 72, 44, 59, 61, 73, 60, 55, 72, 80, 51, 80, 52, 69, 54, 57, 67, 55, 74, 64, 43, 52, 63, 84, 49, 52, 73, 80, 41, 64, 53, 73, 73, 53, 83, 63, 61, 67, 64, 84, 77, 57, 94, 49, 62, 60, 59, 53, 71, 58, 68, 71, 52, 53, 62, 57, 84, 47, 68, 63, 54, 58, 103, 104, 58, 65, 79, 74, 76, 52, 37, 58, 64, 62, 47, 93, 87, 58, 81, 62, 45, 50, 53, 68, 66, 55, 80, 82, 70, 68, 72, 99, 83, 81, 110, 50, 57, 81, 87, 72, 49, 49, 43, 65, 75, 69, 97, 62, 89, 72, 49, 46, 57, 48, 85, 42, 51, 48, 67, 86, 72, 89, 75, 67, 57, 55, 41, 67, 96, 67, 56, 72, 40, 45, 70, 58, 77, 76, 63, 82, 132, 57, 75, 46, 65, 69, 69, 65, 66, 91, 54, 56, 94, 78, 67, 61, 71, 59, 63, 81, 63, 69, 61, 81, 81, 57, 53, 89, 75, 66, 83, 82, 57, 76, 65, 90, 83, 53, 65, 52, 64, 62, 69, 90, 36, 64, 70, 82, 67, 52, 88, 68, 48, 66, 57, 65, 34, 55, 71, 57, 69, 53, 48, 65, 52, 70, 95, 72, 61, 79, 81, 90, 60, 57, 90, 47, 44, 42, 67, 53, 48, 59, 55, 67, 65, 81, 59, 71, 46, 55, 70, 68, 44, 48, 59, 62, 65, 70, 66, 72, 58, 64, 76, 36, 68, 83, 59, 79, 58, 62, 65, 53, 92, 82, 62, 64, 47, 52, 50, 66, 53, 72, 68, 63, 68, 74, 47, 67, 78, 59, 61, 41, 105, 61, 63, 88, 73, 66, 83, 78, 64, 114, 94, 86, 54, 57, 87, 76, 65, 66, 81, 67, 67, 57, 70, 55, 53, 50, 58, 49, 63, 60, 94, 52, 67, 41, 78, 102, 67, 58, 111, 62, 76, 64, 77, 77, 43, 41, 76, 63, 57, 77, 47, 62, 81, 55, 47, 91, 82, 56, 52, 68, 66, 75, 81, 43, 59, 73, 72, 63, 72, 46, 47, 57, 62, 44, 52, 58, 70, 80, 67, 53, 67, 84, 46, 68, 59, 73, 74, 55, 51, 71, 53, 95, 80, 73, 46, 102, 84, 65, 63, 86, 83, 60, 87, 76, 65, 46, 85, 56, 61, 53, 84, 64, 96, 57, 58, 68, 52, 62, 53, 54, 73, 37, 68, 59, 65, 56, 49, 63, 61, 53, 56, 64, 62, 69, 76, 73, 65, 38, 64, 64, 64, 60, 71, 84, 64, 68, 69, 49, 82, 72, 77, 54, 82, 56, 73, 73, 70, 63, 67, 55, 68, 73, 75, 50, 56, 70, 67, 66, 65, 61, 63, 54, 64, 67, 64, 91, 87, 51, 61, 55, 66, 83, 59, 79, 44, 57, 87, 106, 89, 91, 82, 69, 55, 56, 74, 72, 88, 54, 58, 60, 68, 73, 71, 51, 62, 68, 56, 35, 53, 53, 93, 65, 54, 40, 112, 56, 67, 84, 71, 58, 54, 66, 54, 73, 31, 49, 47, 53, 53, 64, 65, 63, 55, 74, 50, 71, 60, 81, 62, 59, 86, 57, 55, 72, 148, 72, 92, 48, 66, 68, 49, 74, 61, 62, 75, 50, 65, 56, 70, 67, 54, 72, 76, 77, 112, 77, 55, 66, 65, 48, 76, 58, 58, 83, 53, 58, 95, 55, 57, 55, 56, 58, 69, 64, 71, 65, 67, 76, 44, 79, 38, 67, 43, 66, 53, 85, 55, 50, 68, 51, 59, 72, 73, 76, 62, 59, 93, 63, 68, 65, 54, 58, 59, 90, 63, 59, 79, 85, 49, 65, 63, 63, 70, 51, 68, 53, 43, 70, 159, 91, 63, 62, 69, 84, 55, 47, 53, 81, 49, 64, 115, 64, 46, 43, 58, 44, 63, 60, 55, 68, 56, 89, 63, 60, 61, 56, 69, 52, 81, 63, 67, 59, 85, 66, 84, 81, 75, 88, 55, 72, 79, 43, 38, 63, 88, 58, 69, 74, 65, 81, 79, 66, 52, 49, 97, 79, 68, 75, 43, 66, 50, 72, 61, 66, 65, 53, 71, 96, 65, 46, 64, 69, 61, 65, 63, 103, 68, 80, 52, 48, 74, 75, 71, 68, 59, 45, 91, 65, 70, 43, 48, 56, 69, 57, 84, 82, 86, 67, 60, 38, 59, 74, 65, 63, 79, 80, 65, 51, 73, 77, 66, 46, 70, 61, 65, 63, 90, 53, 47, 67, 72, 76, 45, 51, 96, 86, 83, 78, 52, 80, 71, 56, 71, 79, 107, 71, 50, 57, 66, 48, 38, 52, 24, 52, 56, 85, 60, 63, 83, 81, 84, 45, 68, 88, 90, 63, 37, 48, 56, 83, 96, 67, 67, 82, 73, 55, 68, 55, 57, 67, 69, 114, 72, 67, 61, 68, 67, 54, 45, 65, 78, 59, 69, 60, 65, 39, 53, 47, 83, 69, 62, 44, 78, 80, 64, 78, 59, 49, 92, 51, 35, 32, 102, 68, 85, 68, 50, 64, 54, 48, 57, 64, 69, 98, 63, 46, 75, 70, 70, 38, 56, 89, 40, 67, 80, 47, 56, 88, 58, 67, 61, 68, 57, 57, 56, 62, 85, 52, 92, 78, 93, 65, 74, 59, 62, 56, 74, 48, 47, 80, 86, 58, 58, 95, 70, 58, 44, 68, 66, 45, 64, 80, 65, 71, 58, 63, 60, 73, 66, 62, 65, 56, 84, 72, 69, 67, 63, 59, 84, 57, 68, 78, 63, 87, 72, 88, 67, 73, 66, 104, 90, 76, 85, 80, 72, 90, 82, 77, 70, 62, 83, 75, 88, 60, 67, 56, 66, 69, 63, 55, 74, 91, 80, 38, 61, 97, 74, 82, 67, 51, 68, 61, 57, 58, 94, 65, 79, 73, 62, 63, 67, 84, 59, 48, 84, 63, 69, 49, 115, 75, 82, 79, 56, 55, 54, 50, 62, 70, 62, 55, 45, 74, 50, 81, 79, 56, 80, 68, 50, 83, 66, 64, 48, 64, 69, 65, 61, 64, 87, 78, 55, 108, 58, 53, 44, 64, 62, 83, 86, 67, 54, 61, 58, 92, 81, 56, 49, 77, 41, 46, 32, 52, 48, 108, 70, 64, 38, 67, 66, 68, 64, 48, 65, 79, 60, 53, 89, 97, 73, 62, 59, 59, 67, 52, 68, 70, 55, 92, 57, 42, 81, 50, 62, 68, 64, 35, 87, 75, 55, 77, 74, 53, 47, 48, 90, 59, 82, 71, 79, 53, 106, 64, 45, 72, 67, 65, 81, 30, 68, 67, 32, 57, 41, 53, 77, 53, 59, 66, 65, 75, 83, 34, 71, 79, 105, 70, 52, 63, 38, 61, 78, 73, 77, 76, 46, 56, 71, 67, 72, 60, 72, 52, 80, 68, 65, 76, 50, 52, 70, 40, 105, 75, 94, 64, 50, 73, 72, 81, 66, 63, 83, 66, 67, 79, 66, 92, 63, 88, 54, 73, 57, 68, 57, 74, 102, 49, 59, 91, 76, 58, 75, 44, 75, 66, 58, 85, 41, 65, 57, 50, 53, 51, 97, 75, 83, 51, 57, 87, 77, 61, 70, 65, 46, 107, 50, 56, 51, 49, 55, 48, 64, 63, 74, 73, 50, 65, 76, 66, 52, 56, 57, 74, 58, 64, 67, 54, 64, 62, 69, 89, 73, 51, 47, 70, 74, 62, 71, 63, 64, 69, 50, 72, 79, 78, 95, 55, 72, 58, 74, 79, 59, 50, 71, 46, 80, 75, 59, 54, 68, 76, 75, 76, 50, 51, 59, 57, 62, 63, 59, 63, 60, 64, 47, 71, 66, 54, 76, 89, 69, 34, 63, 64, 59, 88, 68, 54, 51, 69, 53, 74, 70, 77, 71, 61, 63, 66, 71, 81, 77, 72, 85, 82, 82, 57, 62, 43, 59, 42, 50, 42, 80, 54, 60, 50, 57, 60, 75, 74, 53, 64, 78, 68, 75, 78, 82, 87, 55, 81, 63, 68, 71, 58, 65, 47, 58, 73, 105, 52, 61, 70, 44, 102, 60, 71, 74, 51, 78, 55, 66, 119, 67, 55, 88, 68, 74, 44, 58, 57, 82, 64, 71, 83, 87, 66, 81, 51, 58, 71, 76, 65, 60, 58, 81, 70, 67, 66, 80, 68, 59, 66, 93, 34, 90, 77, 57, 45, 47, 51, 74, 58, 79, 60, 61, 71, 55, 100, 59, 73, 64, 51, 69, 61, 69, 51, 60, 79, 72, 65, 82, 72, 50, 61, 69, 89, 69, 61, 64, 63, 80, 79, 57, 81, 53, 71, 71, 113, 42, 48, 65, 50, 84, 65, 63, 64, 57, 86, 87, 108, 68, 68, 77, 64, 62, 82, 62, 89, 55, 64, 53, 89, 68, 42, 62, 59, 92, 74, 79, 77, 63, 60, 86, 49, 83, 106, 91, 60, 102, 66, 57, 61, 70, 57, 78, 75, 56, 63, 53, 58, 47, 47, 50, 54, 56, 109, 94, 47, 65, 68, 69, 75, 59, 45, 59, 77, 56, 54, 50, 59, 45, 61, 39, 53, 51, 41, 99, 56, 64, 73, 61, 76, 58, 85, 60, 39, 47, 81, 59, 62, 61, 49, 60, 62, 70, 54, 75, 54, 51, 72, 61, 66, 69, 60, 79, 68, 69, 53, 82, 88, 74, 79, 88, 64, 60, 50, 50, 64, 112, 52, 62, 65, 61, 63, 60, 50, 63, 84, 80, 73, 84, 100, 72, 99, 65, 64, 56, 72, 59, 73, 69, 69, 94, 74, 57, 53, 52, 38, 92, 63, 58, 80, 65, 94, 91, 90, 70, 58, 66, 68, 73, 76, 75, 81, 52, 83, 47, 91, 93, 82, 59, 55, 56, 61, 88, 57, 76, 64, 56, 64, 71, 82, 62, 79, 90, 66, 68, 108, 59, 62, 61, 61, 73, 52, 116, 68, 70, 57, 48, 82, 64, 61, 62, 55, 69, 87, 57, 66, 67, 65, 47, 55, 78, 92, 52, 75, 79, 69, 76, 78, 58, 47, 50, 59, 54, 62, 95, 80, 65, 70, 59, 83, 46, 103, 46, 86, 70, 38, 59, 75, 57, 67, 58, 69, 47, 54, 43, 57, 50, 81, 70, 66, 85, 73, 55, 72, 51, 63, 68, 53, 53, 35, 55, 75, 69, 57, 64, 89, 52, 74, 59, 51, 59, 63, 59, 97, 54, 82, 52, 66, 77, 69, 72, 66, 50, 72, 68, 78, 52, 63, 49, 92, 52, 56, 58, 59, 49, 61, 64, 83, 63, 88, 54, 60, 57, 65, 78, 69, 62, 58, 52, 55, 47, 80, 77, 54, 94, 58, 69, 68, 53, 73, 76, 69, 80, 61, 61, 82, 58, 48, 60, 71, 61, 66, 74, 83, 61, 59, 93, 89, 55, 45, 51, 70, 63, 61, 61, 57, 66, 47, 110, 58, 58, 91, 49, 62, 77, 61, 66, 85, 56, 85, 64, 54, 63, 66, 71, 50, 50, 73, 80, 60, 61, 75, 64, 48, 76, 59, 58, 75, 66, 72, 63, 43, 53, 66, 65, 70, 81, 59, 51, 71, 59, 50, 68, 69, 55, 55, 66, 70, 64, 83, 83, 76, 55, 53, 68, 71, 61, 67, 60, 64, 67, 64, 54, 59, 75, 69, 60, 53, 81, 51, 57, 63, 98, 57, 77, 66, 71, 68, 62, 61, 56, 77, 66, 76, 61, 62, 73, 96, 64, 84, 67, 57, 61, 54, 101, 70, 58, 74, 79, 54, 54, 53, 72, 55, 63, 51, 46, 55, 65, 68, 64, 75, 58, 59, 51, 61, 80, 89, 58, 68, 67, 48, 60, 60, 60, 72, 74, 59, 56, 82, 65, 70, 82, 71, 57, 63, 65, 62, 46, 69, 64, 58, 60, 62, 53, 54, 78, 66, 81, 77, 59, 61, 76, 62, 49, 88, 67, 47, 59, 87, 67, 77, 78, 68, 70, 59, 60, 69, 55, 64, 87, 48, 56, 66, 55, 57, 94, 55, 72, 64, 64, 60, 64, 91, 50, 54, 55, 53, 52, 63, 75, 74, 49, 66, 62, 57, 66, 58, 69, 81, 79, 57, 69, 74, 65, 82, 70, 61, 49, 69, 64, 76, 116, 52, 60, 67, 53, 56, 70, 56, 90, 50, 116, 80, 72, 62, 67, 62, 57, 50, 62, 52, 46, 63, 64, 46, 78, 64, 53, 55, 43, 86, 56, 84, 65, 64, 57, 43, 58, 45, 49, 89, 53, 71, 55, 29, 70, 60, 83, 150, 63, 72, 81, 58, 61, 108, 51, 80, 51, 111, 51, 96, 62, 71, 53, 45, 87, 64, 82, 55, 63, 73, 112, 73, 57, 84, 75, 48, 52, 61, 74, 78, 63, 79, 98, 66, 57, 86, 56, 64, 94, 67, 54, 67, 101, 55, 64, 69, 61, 72, 65, 72, 93, 63, 73, 57, 77, 62, 55, 71, 61, 59, 80, 65, 53, 88, 73, 54, 98, 58, 49, 63, 76, 54, 80, 112, 66, 61, 55, 56, 77, 63, 81, 83, 55, 72, 51, 48, 77, 55, 79, 66, 61, 63, 87, 51, 75, 68, 59, 48, 65, 69, 83, 80, 64, 85, 73, 62, 80, 64, 76, 65, 53, 66, 70, 65, 54, 58, 50, 69, 43, 56, 87, 77, 44, 60, 57, 41, 54, 58, 48, 52, 73, 78, 58, 64, 78, 81, 60, 72, 76, 68, 65, 52, 51, 57, 59, 55, 96, 58, 69, 106, 62, 55, 53, 66, 40, 92, 52, 57, 64, 76, 65, 78, 57, 62, 60, 50, 66, 57, 46, 54, 69, 47, 48, 70, 65, 88, 52, 63, 69, 54, 100, 69, 74, 56, 66, 50, 69, 59, 59, 59, 63, 62, 85, 72, 52, 78, 61, 56, 52, 47, 56, 70, 67, 51, 65, 56, 70, 67, 75, 89, 59, 54, 60, 72, 57, 60, 80, 69, 70, 57, 71, 66, 103, 58, 75, 62, 65, 60, 61, 67, 81, 49, 79, 41, 75, 59, 72, 77, 49, 86, 72, 51, 55, 65, 44, 98, 54, 55, 74, 65, 47, 66, 53, 55, 48, 56, 83, 62, 59, 62, 54, 57, 70, 51, 70, 90, 63, 58, 96, 68, 59, 88, 70, 73, 60, 59, 80, 52, 66, 91, 49, 46, 58, 54, 81, 77, 61, 78, 62, 75, 69, 86, 62, 77, 65, 58, 65, 63, 63, 85, 69, 69, 59, 49, 53, 53, 70, 76, 72, 60, 60, 46, 54, 73, 59, 57, 75, 73, 54, 56, 69, 62, 62, 68, 51, 61, 63, 77, 56, 52, 64, 71, 48, 78, 65, 49, 63, 69, 69, 66, 54, 69, 65, 57, 72, 70, 90, 51, 61, 87, 60, 83, 59, 63, 77, 52, 75, 57, 60, 70, 66, 76, 63, 58, 67, 52, 67, 65, 69, 65, 46, 60, 63, 49, 79, 89, 65, 71, 52, 79, 61, 67, 53, 85, 68, 64, 82, 40, 63, 99, 55, 49, 65, 75, 67, 70, 60, 66, 52, 88, 62, 56, 56, 75, 95, 80, 69, 57, 90, 69, 74, 56, 61, 69, 78, 67, 73, 70, 65, 79, 69, 77, 54, 100, 96, 66, 68, 76, 65, 87, 57, 101, 50, 43, 55, 63, 112, 71, 41, 68, 69, 60, 75, 80, 99, 63, 74, 57, 70, 60, 71, 60, 66, 67, 109, 64, 66, 68, 58, 78, 62, 77, 82, 61, 79, 64, 54, 58, 72, 75, 66, 66, 74, 59, 66, 75, 80, 67, 58, 55, 62, 53, 66, 58, 65, 52, 54, 55, 73, 43, 68, 54, 56, 74, 60, 76, 71, 79, 67, 84, 67, 64, 65, 75, 57, 50, 64, 51, 68, 66, 44, 55, 58, 66, 67, 51, 62, 66, 67, 65, 64, 75, 64, 74, 59, 83, 60, 63, 68, 61, 79, 59, 86, 63, 58, 63, 62, 56, 46, 52, 53, 68, 67, 57, 87, 60, 40, 65, 81, 56, 79, 51, 64, 61, 82, 59, 70, 75, 53, 27, 77, 66, 59, 85, 56, 40, 66, 74, 63, 69, 99, 67, 64, 65, 56, 58, 75, 68, 92, 72, 54, 87, 47, 67, 68, 53, 79, 60, 72, 75, 43, 76, 61, 153, 82, 68, 67, 51, 64, 58, 92, 70, 78, 69, 77, 80, 96, 58, 71, 76, 74, 57, 79, 61, 63, 58, 73, 59, 76, 53, 67, 59, 68, 54, 70, 46, 118, 51, 57, 80, 63, 52, 91, 57, 70, 67, 67, 73, 127, 69, 56, 66, 52, 50, 74, 62, 77, 57, 64, 54, 68, 62, 51, 77, 60, 90, 71, 71, 60, 62, 63, 86, 65, 91, 58, 80, 68, 77, 58, 57, 75, 50, 76, 66, 115, 62, 49, 66, 66, 75, 69, 76, 56, 60, 64, 55, 65, 58, 68, 68, 60, 80, 56, 55, 69, 119, 66, 87, 73, 73, 51, 71, 85, 70, 77, 54, 64, 56, 59, 96, 60, 91, 72, 69, 54, 59, 63, 73, 66, 44, 57, 51, 71, 54, 68, 55, 81, 68, 47, 77, 70, 60, 70, 49, 81, 78, 56, 68, 59, 49, 57, 85, 55, 45, 72, 67, 55, 51, 62, 63, 63, 69, 68, 71, 67, 64, 58, 75, 63, 62, 66, 65, 65, 68, 64, 70, 64, 68, 51, 57, 56, 70, 55, 50, 40, 57, 63, 68, 83, 47, 68, 53, 67, 79, 91, 56, 71, 64, 108, 54, 73, 55, 58, 70, 53, 68, 70, 50, 81, 53, 67, 73, 52, 71, 66, 70, 72, 87, 68, 53, 60, 57, 55, 53, 45, 73, 62, 62, 53, 68, 80, 65, 73, 66, 52, 45, 86, 55, 56, 78, 50, 43, 65, 58, 40, 70, 67, 54, 60, 125, 53, 67, 57, 70, 56, 80, 48, 96, 54, 68, 56, 79, 81, 50, 54, 59, 57, 58, 119, 50, 50, 58, 81, 56, 73, 55, 54, 78, 72, 62, 69, 90, 66, 57, 60, 61, 60, 52, 90, 59, 71, 46, 82, 53, 38, 57, 71, 55, 67, 64, 60, 45, 55, 69, 57, 91, 57, 56, 75, 50, 83, 62, 41, 56, 86, 61, 94, 64, 62, 90, 55, 48, 61, 59, 52, 62, 70, 46, 102, 91, 88, 53, 54, 74, 78, 54, 38, 63, 83, 44, 40, 63, 67, 66, 69, 70, 59, 76, 67, 61, 60, 63, 68, 58, 60, 54, 64, 59, 51, 52, 60, 45, 52, 69, 62, 66, 56, 83, 69, 70, 69, 69, 87, 57, 61, 81, 83, 52, 58, 54, 71, 67, 69, 91, 69, 79, 55, 83, 77, 81, 57, 60, 115, 76, 66, 53, 65, 51, 82, 56, 66, 77, 63, 55, 79, 39, 64, 49, 70, 68, 68, 74, 55, 79, 58, 60, 57, 87, 26, 65, 66, 81, 86, 51, 71, 59, 74, 70, 77, 58, 97, 56, 68, 56, 57, 55, 84, 108, 61, 57, 62, 73, 66, 89, 56, 57, 61, 81, 76, 66, 75, 85, 82, 74, 71, 116, 47, 88, 89, 73, 71, 61, 50, 65, 62, 73, 64, 74, 50, 51, 65, 61, 118, 73, 77, 52, 92, 61, 69, 74, 58, 89, 69, 61, 50, 64, 62, 71, 74, 55, 82, 60, 66, 64, 93, 59, 56, 88, 69, 72, 66, 60, 63, 65, 59, 57, 125, 64, 69, 63, 54, 66, 72, 63, 68, 58, 58, 66, 71, 67, 87, 75, 48, 54, 63, 84, 74, 41, 63, 49, 49, 61, 59, 70, 67, 53, 62, 59, 63, 56, 70, 61, 58, 55, 62, 54, 62, 60, 66, 100, 71, 71, 66, 43, 60, 62, 69, 66, 76, 71, 70, 74, 50, 70, 78, 65, 62, 56, 52, 40, 55, 46, 52, 58, 86, 60, 50, 69, 60, 93, 56, 66, 68, 64, 35, 65, 70, 59, 88, 64, 65, 59, 67, 77, 54, 66, 83, 74, 61, 79, 78, 68, 73, 56, 52, 51, 82, 50, 94, 77, 79, 68, 63, 112, 39, 58, 85, 62, 77, 59, 69, 62, 68, 58, 69, 59, 73, 62, 74, 176, 45, 44, 72, 63, 60, 49, 68, 44, 51, 55, 52, 67, 57, 77, 51, 55, 45, 44, 110, 63, 73, 52, 76, 69, 74, 70, 60, 67, 48, 54, 75, 57, 65, 79, 55, 90, 55, 63, 47, 72, 50, 61, 54, 69, 54, 75, 54, 92, 53, 79, 50, 71, 92, 66, 52, 65, 45, 31, 45, 57, 55, 102, 64, 53, 91, 100, 90, 46, 61, 67, 88, 68, 54, 58, 57, 72, 63, 56, 66, 51, 52, 94, 57, 69, 81, 77, 68, 56, 90, 55, 49, 72, 48, 67, 78, 49, 61, 76, 59, 70, 68, 56, 71, 61, 45, 69, 66, 82, 137, 76, 62, 79, 58, 52, 60, 43, 62, 78, 78, 46, 67, 54, 100, 66, 86, 76, 67, 93, 79, 112, 61, 72, 74, 79, 55, 51, 141, 56, 65, 88, 82, 57, 72, 69, 79, 58, 93, 67, 51, 57, 65, 59, 61, 65, 65, 69, 57, 56, 75, 48, 71, 61, 54, 40, 57, 59, 80, 59, 54, 58, 57, 54, 84, 54, 63, 57, 86, 77, 55, 51, 63, 73, 59, 67, 63, 58, 75, 126, 76, 50, 59, 59, 56, 70, 47, 85, 52, 55, 64, 61, 53, 63, 50, 88, 49, 72, 70, 77, 67, 75, 60, 41, 77, 65, 49, 101, 62, 81, 59, 51, 55, 108, 65, 70, 60, 78, 47, 50, 57, 62, 87, 62, 64, 46, 61, 66, 89, 57, 159, 65, 62, 71, 80, 65, 51, 63, 116, 89, 54, 74, 64, 60, 102, 66, 53, 58, 63, 71, 71, 61, 74, 63, 66, 65, 53, 104, 70, 60, 65, 73, 52, 78, 60, 58, 69, 71, 68, 63, 66, 62, 94, 54, 65, 59, 70, 69, 67, 63, 81, 47, 118, 54, 56, 70, 56, 66, 93, 75, 70, 65, 65, 91, 64, 65, 67, 47, 63, 73, 73, 63, 76, 68, 58, 74, 80, 74, 75, 79, 61, 72, 68, 61, 51, 93, 66, 58, 53, 45, 78, 75, 52, 54, 64, 60, 65, 63, 49, 41, 56, 62, 81, 70, 49, 68, 49, 80, 53, 66, 43, 60, 61, 65, 85, 72, 70, 79, 64, 50, 69, 66, 54, 79, 82, 64, 101, 63, 59, 65, 95, 71, 58, 53, 73, 54, 59, 40, 61, 65, 67, 68, 79, 42, 63, 64, 113, 60, 68, 66, 50, 84, 76, 61, 68, 56, 47, 71, 56, 81, 65, 71, 49, 65, 64, 75, 72, 75, 66, 61, 71, 68, 55, 77, 60, 56, 74, 71, 73, 81, 51, 68, 42, 64, 62, 58, 53, 62, 72, 74, 64, 76, 42, 69, 62, 64, 68, 66, 97, 76, 75, 66, 69, 62, 67, 84, 70, 66, 55, 45, 77, 41, 64, 49, 60, 52, 65, 54, 67, 68, 47, 59, 57, 58, 73, 68, 80, 81, 59, 58, 69, 104, 56, 65, 59, 64, 80, 57, 81, 57, 61, 53, 61, 47, 53, 55, 62, 60, 59, 73, 72, 62, 76, 57, 71, 104, 49, 68, 58, 60, 76, 88, 70, 58, 62, 55, 74, 46, 74, 55, 46, 57, 55, 63, 45, 53, 62, 73, 82, 65, 76, 61, 57, 63, 77, 55, 62, 88, 60, 63, 57, 101, 56, 62, 55, 79, 62, 70, 61, 49, 66, 64, 69, 88, 51, 58, 86, 61, 57, 65, 59, 63, 74, 57, 62, 55, 51, 62, 77, 70, 65, 62, 59, 77, 62, 72, 52, 70, 46, 64, 104, 83, 50, 56, 47, 68, 63, 48, 62, 90, 53, 75, 71, 71, 58, 73, 56, 53, 61, 60, 79, 55, 70, 63, 58, 91, 52, 66, 80, 88, 52, 56, 59, 59, 57, 68, 63, 73, 63, 60, 70, 47, 74, 66, 49, 48, 63, 141, 48, 61, 60, 48, 69, 46, 55, 112, 56, 63, 69, 65, 60, 71, 64, 67, 73, 66, 64, 58, 63, 57, 91, 60, 61, 74, 58, 66, 73, 81, 65, 48, 48, 69, 62, 72, 60, 87, 79, 63, 60, 51, 89, 65, 61, 64, 71, 73, 79, 68, 81, 62, 64, 82, 69, 60, 56, 60, 53, 80, 50, 58, 96, 88, 65, 68, 57, 61, 60, 54, 52, 91, 72, 65, 76, 63, 63, 53, 57, 79, 68, 68, 53, 57, 71, 60, 43, 57, 56, 56, 82, 62, 66, 101, 66, 69, 78, 58, 52, 97, 60, 59, 64, 55, 70, 67, 54, 81, 55, 79, 65, 70, 73, 65, 55, 62, 67, 100, 69, 67, 61, 51, 58, 76, 62, 63, 80, 67, 53, 29, 67, 58, 56, 73, 56, 64, 75, 77, 49, 88, 60, 78, 78, 68, 69, 57, 60, 60, 60, 72, 51, 62, 52, 63, 65, 63, 70, 68, 52, 68, 54, 57, 77, 62, 64, 69, 66, 81, 79, 74, 51, 72, 61, 82, 54, 73, 78, 76, 68, 66, 62, 62, 69, 67, 77, 57, 60, 59, 56, 66, 73, 52, 84, 75, 66, 82, 62, 116, 71, 62, 59, 70, 56, 58, 53, 64, 52, 74, 65, 40, 87, 69, 61, 52, 63, 45, 128, 85, 58, 51, 67, 67, 56, 62, 73, 80, 99, 88, 34, 71, 82, 83, 53, 71, 93, 65, 42, 50, 82, 77, 72, 54, 67, 52, 95, 51, 55, 57, 62, 74, 65, 71, 62, 52, 79, 88, 56, 84, 60, 63, 63, 61, 120, 93, 64, 63, 67, 58, 49, 81, 73, 94, 79, 47, 76, 66, 62, 62, 66, 62, 90, 74, 88, 81, 77, 69, 60, 60, 58, 64, 60, 78, 59, 82, 66, 53, 63, 51, 67, 63, 79, 58, 61, 61, 52, 60, 50, 76, 64, 82, 77, 56, 66, 80, 65, 63, 70, 59, 58, 65, 48, 68, 48, 82, 70, 69, 66, 45, 80, 60, 51, 67, 61, 84, 49, 53, 53, 66, 61, 70, 56, 69, 69, 72, 61, 52, 78, 62, 60, 67, 62, 61, 63, 71, 57, 62, 73, 68, 50, 68, 57, 66, 50, 69, 55, 82, 57, 58, 93, 110, 86, 86, 65, 58, 58, 68, 56, 67, 77, 64, 61, 54, 66, 47, 91, 66, 56, 60, 52, 61, 71, 55, 79, 60, 98, 56, 94, 59, 42, 65, 68, 83, 65, 66, 89, 63, 67, 58, 49, 57, 59, 78, 59, 74, 57, 77, 60, 60, 52, 75, 65, 54, 88, 60, 54, 60, 60, 62, 67, 60, 69, 64, 65, 62, 51, 63, 70, 47, 56, 65, 60, 63, 69, 65, 95, 55, 73, 58, 67, 79, 78, 67, 55, 63, 65, 59, 56, 60, 60, 68, 108, 89, 73, 54, 55, 72, 68, 91, 67, 81, 64, 54, 71, 68, 38, 56, 84, 68, 78, 78, 75, 55, 64, 66, 49, 60, 68, 52, 61, 57, 86, 65, 65, 88, 71, 49, 63, 89, 65, 67, 58, 59, 77, 53, 44, 56, 61, 65, 66, 60, 56, 55, 72, 94, 66, 66, 75, 70, 81, 76, 63, 54, 64, 58, 52, 114, 69, 67, 74, 58, 59, 64, 63, 47, 70, 82, 91, 64, 52, 58, 80, 60, 65, 56, 120, 79, 73, 59, 59, 65, 63, 71, 75, 52, 68, 75, 110, 74, 61, 72, 63, 72, 92, 58, 59, 54, 67, 54, 59, 61, 51, 42, 59, 61, 76, 84, 69, 67, 71, 66, 65, 54, 66, 57, 51, 60, 59, 56, 70, 59, 68, 87, 64, 64, 57, 89, 57, 64, 62, 54, 71, 84, 66, 67, 81, 70, 60, 61, 68, 51, 78, 54, 55, 46, 64, 58, 69, 81, 58, 64, 88, 61, 66, 62, 74, 135, 73, 68, 61, 61, 70, 61, 60, 98, 50, 65, 51, 56, 64, 58, 51, 61, 76, 44, 53, 52, 75, 64, 50, 61, 93, 63, 137, 74, 54, 78, 70, 42, 50, 54, 87, 80, 81, 70, 67, 68, 61, 46, 77, 63, 43, 61, 91, 79, 91, 61, 64, 60, 46, 66, 59, 70, 63, 66, 65, 61, 57, 60, 56, 55, 55, 66, 52, 61, 83, 71, 86, 87, 69, 74, 81, 59, 73, 58, 64, 65, 68, 69, 61, 59, 74, 77, 99, 97, 44, 63, 56, 106, 64, 70, 56, 55, 79, 60, 73, 70, 64, 79, 58, 64, 66, 89, 62, 68, 92, 56, 63, 66, 75, 59, 59, 69, 75, 57, 47, 69, 83, 70, 66, 67, 83, 55, 74, 58, 63, 73, 68, 95, 60, 62, 45, 60, 59, 105, 78, 65, 67, 70, 70, 66, 56, 62, 57, 57, 87, 59, 70, 80, 51, 78, 56, 58, 65, 52, 59, 88, 58, 56, 71, 70, 60, 71, 73, 54, 68, 70, 69, 74, 55, 86, 75, 66, 61, 59, 71, 57, 52, 46, 66, 68, 63, 40, 86, 56, 67, 66, 60, 67, 64, 66, 71, 57, 58, 74, 76, 55, 52, 59, 69, 60, 53, 69, 64, 65, 59, 82, 78, 62, 64, 66, 66, 61, 57, 61, 90, 37, 69, 61, 67, 67, 66, 48, 45, 64, 53, 64, 57, 64, 57, 56, 49, 59, 105, 62, 80, 66, 86, 70, 69, 49, 64, 59, 61, 73, 78, 45, 57, 81, 55, 60, 57, 54, 92, 58, 61, 102, 58, 78, 76, 82, 53, 65, 61, 51, 92, 88, 60, 65, 86, 79, 75, 63, 73, 56, 77, 45, 67, 59, 79, 60, 46, 84, 70, 83, 67, 132, 42, 74, 54, 65, 51, 64, 69, 60, 55, 53, 71, 58, 60, 62, 80, 66, 55, 68, 59, 72, 59, 54, 56, 70, 81, 65, 73, 56, 71, 44, 58, 49, 70, 47, 65, 51, 56, 65, 67, 59, 67, 88, 69, 57, 69, 59, 71, 68, 50, 69, 67, 54, 77, 67, 43, 57, 58, 66, 62, 64, 72, 90, 85, 74, 55, 90, 95, 57, 43, 91, 66, 48, 51, 67, 65, 55, 49, 59, 107, 53, 66, 102, 95, 88, 49, 61, 60, 95, 79, 75, 79, 88, 70, 83, 72, 68, 63, 83, 57, 87, 64, 66, 61, 58, 51, 50, 45, 117, 55, 68, 68, 43, 41, 53, 58, 58, 48, 66, 86, 71, 68, 42, 50, 55, 79, 56, 67, 59, 126, 68, 66, 111, 74, 54, 73, 57, 71, 65, 78, 67, 65, 55, 66, 63, 38, 68, 52, 84, 59, 82, 62, 61, 55, 68, 78, 59, 49, 62, 59, 71, 63, 47, 55, 79, 69, 78, 55, 58, 69, 58, 85, 71, 69, 57, 66, 76, 92, 71, 56, 58, 65, 64, 71, 73, 71, 53, 64, 68, 56, 65, 72, 113, 57, 56, 74, 74, 64, 74, 57, 56, 66, 56, 47, 61, 55, 76, 58, 71, 99, 77, 58, 93, 57, 62, 52, 90, 56, 80, 64, 74, 75, 60, 61, 81, 81, 68, 65, 63, 63, 69, 70, 79, 64, 45, 61, 72, 54, 42, 61, 128, 60, 58, 57, 70, 69, 49, 58, 58, 81, 64, 66, 68, 53, 56, 56, 80, 80, 64, 71, 60, 50, 82, 61, 54, 73, 67, 60, 66, 48, 67, 92, 83, 74, 63, 65, 59, 57, 75, 83, 78, 60, 67, 81, 56, 57, 61, 65, 42, 74, 50, 101, 61, 48, 104, 68, 46, 44, 127, 66, 54, 48, 72, 53, 55, 60, 53, 58, 71, 56, 61, 59, 56, 52, 58, 123, 62, 84, 59, 58, 99, 75, 78, 72, 56, 86, 67, 60, 87, 77, 87, 83, 63, 55, 38, 61, 74, 93, 48, 78, 79, 61, 69, 65, 66, 59, 60, 67, 71, 67, 76, 59, 60, 78, 55, 84, 100, 59, 105, 58, 59, 73, 68, 63, 53, 57, 73, 77, 79, 59, 82, 67, 56, 55, 61, 75, 54, 85, 67, 61, 63, 80, 75, 71, 55, 54, 65, 68, 60, 67, 55, 63, 70, 56, 54, 55, 60, 66, 67, 70, 55, 58, 83, 93, 57, 63, 45, 65, 53, 136, 55, 55, 56, 54, 63, 73, 62, 84, 48, 76, 73, 61, 56, 61, 54, 62, 54, 61, 56, 49, 60, 64, 94, 63, 65, 80, 102, 73, 52, 47, 43, 71, 72, 76, 47, 64, 69, 48, 74, 69, 59, 60, 64, 58, 80, 70, 60, 59, 62, 63, 55, 64, 52, 77, 62, 70, 77, 74, 48, 57, 56, 74, 51, 73, 74, 57, 60, 78, 70, 73, 76, 84, 41, 46, 63, 88, 57, 59, 63, 56, 84, 61, 70, 83, 53, 129, 63, 70, 54, 60, 71, 62, 93, 62, 68, 59, 65, 129, 62, 54, 58, 62, 50, 62, 45, 77, 64, 54, 70, 50, 51, 55, 67, 112, 40, 66, 64, 61, 56, 63, 79, 59, 88, 62, 36, 68, 49, 59, 64, 80, 63, 85, 46, 86, 56, 70, 79, 63, 68, 63, 79, 71, 67, 74, 48, 54, 67, 51, 64, 53, 84, 53, 83, 84, 84, 67, 64, 79, 54, 59, 71, 55, 71, 57, 53, 62, 62, 69, 54, 53, 51, 73, 54, 64, 53, 48, 69, 69, 73, 62, 61, 92, 71, 52, 60, 55, 58, 134, 77, 64, 45, 65, 78, 63, 60, 64, 68, 37, 63, 55, 70, 65, 63, 70, 72, 66, 60, 66, 59, 58, 74, 66, 75, 65, 80, 46, 49, 92, 55, 63, 64, 64, 77, 59, 67, 74, 81, 63, 56, 58, 58, 92, 56, 60, 64, 65, 81, 83, 67, 114, 64, 54, 74, 90, 77, 60, 74, 46, 53, 56, 56, 55, 66, 37, 82, 81, 58, 97, 67, 55, 81, 69, 76, 55, 58, 71, 66, 68, 71, 76, 53, 61, 71, 53, 64, 70, 67, 60, 41, 95, 74, 89, 62, 69, 64, 64, 72, 65, 69, 79, 57, 85, 67, 52, 81, 46, 60, 49, 64, 65, 58, 61, 63, 70, 57, 57, 88, 74, 75, 58, 47, 54, 55, 82, 76, 59, 67, 67, 59, 83, 132, 77, 63, 67, 66, 62, 84, 66, 57, 69, 69, 79, 90, 51, 56, 61, 64, 64, 58, 58, 82, 80, 80, 55, 57, 37, 62, 52, 83, 56, 60, 64, 71, 82, 90, 81, 47, 76, 55, 64, 63, 44, 53, 51, 72, 62, 61, 65, 95, 59, 79, 68, 61, 54, 57, 80, 43, 39, 57, 52, 55, 79, 84, 58, 58, 100, 53, 70, 46, 84, 71, 50, 62, 77, 47, 69, 72, 67, 94, 44, 66, 65, 67, 65, 59, 59, 57, 57, 82, 60, 54, 81, 63, 68, 56, 67, 64, 69, 53, 102, 55, 90, 57, 71, 61, 85, 64, 39, 58, 50, 52, 60, 53, 91, 76, 81, 56, 106, 60, 83, 74, 59, 55, 66, 57, 67, 77, 71, 59, 77, 97, 45, 46, 46, 65, 61, 58, 76, 84, 62, 77, 67, 52, 59, 59, 53, 65, 58, 63, 75, 60, 72, 63, 81, 66, 52, 61, 70, 63, 78, 104, 61, 61, 138, 60, 57, 60, 48, 58, 77, 65, 67, 59, 57, 71, 51, 58, 59, 52, 56, 81, 61, 56, 62, 77, 68, 79, 55, 90, 55, 32, 76, 52, 54, 55, 45, 67, 90, 65, 47, 90, 47, 56, 41, 52, 78, 83, 60, 71, 55, 66, 85, 45, 74, 59, 61, 58, 91, 51, 58, 68, 58, 62, 63, 63, 110, 54, 56, 60, 104, 57, 59, 63, 68, 63, 67, 64, 84, 79, 63, 78, 58, 89, 71, 62, 55, 84, 59, 67, 71, 58, 56, 54, 54, 79, 62, 84, 65, 83, 52, 67, 56, 64, 62, 51, 50, 71, 88, 40, 55, 36, 61, 61, 78, 48, 47, 78, 81, 63, 73, 45, 71, 95, 66, 77, 63, 62, 60, 43, 62, 49, 47, 65, 66, 87, 67, 69, 75, 46, 61, 83, 122, 84, 55, 55, 58, 88, 84, 51, 52, 60, 56, 60, 63, 91, 50, 48, 62, 60, 61, 48, 63, 64, 69, 64, 48, 57, 19, 44, 51, 56, 61, 68, 73, 85, 64, 64, 65, 48, 72, 89, 41, 68, 75, 61, 65, 56, 52, 81, 52, 77, 86, 74, 58, 89, 70, 66, 72, 60, 69, 65, 57, 51, 53, 75, 54, 73, 41, 52, 75, 64, 52, 70, 51, 63, 83, 55, 85, 62, 46, 56, 67, 63, 55, 74, 47, 62, 96, 82, 67, 62, 63, 77, 45, 65, 61, 76, 54, 55, 74, 62, 80, 97, 52, 41, 45, 63, 63, 80, 74, 83, 68, 56, 84, 70, 51, 55, 79, 55, 62, 52, 104, 58, 73, 62, 60, 69, 110, 78, 55, 66, 48, 52, 65, 64, 70, 68, 72, 85, 59, 67, 57, 52, 69, 54, 68, 58, 89, 93, 59, 62, 71, 67, 56, 73, 66, 65, 68, 46, 64, 50, 47, 67, 93, 45, 61, 70, 69, 35, 58, 69, 100, 60, 55, 66, 45, 60, 82, 83, 99, 51, 57, 76, 58, 70, 59, 55, 52, 65, 51, 62, 71, 91, 75, 49, 61, 69, 58, 59, 90, 53, 47, 43, 77, 64, 65, 53, 64, 53, 72, 50, 74, 50, 73, 52, 72, 77, 87, 56, 61, 78, 52, 60, 68, 63, 64, 103, 50, 56, 58, 75, 91, 52, 67, 136, 67, 44, 92, 59, 75, 51, 83, 61, 52, 55, 59, 83, 59, 61, 61, 93, 56, 55, 63, 67, 68, 57, 55, 77, 62, 47, 95, 79, 47, 78, 86, 78, 53, 81, 75, 63, 68, 66, 70, 66, 67, 54, 68, 61, 54, 76, 69, 59, 57, 60, 44, 60, 66, 67, 60, 69, 42, 72, 41, 68, 74, 59, 71, 81, 52, 72, 55, 42, 59, 68, 66, 64, 62, 73, 87, 69, 66, 74, 52, 110, 80, 101, 63, 33, 70, 63, 72, 71, 100, 68, 67, 89, 66, 72, 65, 47, 95, 68, 73, 76, 68, 52, 68, 75, 104, 60, 51, 66, 68, 65, 52, 50, 69, 60, 53, 82, 60, 44, 73, 119, 51, 78, 59, 59, 45, 64, 105, 82, 67, 67, 64, 74, 54, 61, 98, 63, 69, 62, 38, 80, 71, 67, 70, 54, 62, 70, 55, 70, 102, 56, 85, 76, 64, 101, 51, 66, 42, 49, 86, 71, 77, 60, 78, 63, 44, 64, 51, 72, 45, 58, 51, 54, 52, 66, 84, 65, 58, 81, 72, 55, 56, 63, 65, 55, 79, 65, 77, 63, 54, 57, 57, 51, 61, 119, 69, 68, 49, 53, 62, 55, 78, 63, 52, 88, 60, 51, 54, 94, 55, 76, 50, 58, 54, 44, 70, 70, 44, 79, 51, 52, 53, 93, 69, 59, 66, 70, 49, 68, 63, 75, 69, 82, 65, 56, 46, 62, 69, 59, 84, 70, 91, 56, 61, 72, 73, 65, 56, 61, 55, 64, 62, 76, 72, 67, 72, 51, 76, 59, 78, 68, 60, 56, 59, 54, 58, 52, 72, 53, 57, 50, 72, 63, 82, 92, 73, 47, 48, 68, 94, 59, 69, 56, 63, 54, 54, 75, 63, 61, 55, 41, 62, 117, 104, 59, 54, 68, 52, 52, 65, 56, 81, 92, 76, 51, 65, 64, 54, 68, 123, 69, 58, 69, 61, 60, 74, 61, 63, 78, 65, 57, 59, 75, 62, 68, 69, 64, 106, 61, 52, 96, 76, 64, 62, 58, 62, 71, 42, 51, 89, 113, 41, 64, 66, 43, 57, 72, 75, 70, 68, 72, 69, 68, 63, 48, 52, 56, 63, 77, 79, 60, 67, 68, 61, 82, 79, 66, 72, 58, 55, 70, 68, 47, 56, 53, 62, 82, 51, 114, 52, 65, 57, 71, 58, 93, 74, 65, 54, 71, 66, 55, 53, 62, 100, 74, 80, 70, 68, 55, 100, 58, 61, 64, 49, 62, 79, 72, 43, 64, 70, 68, 113, 88, 41, 67, 90, 83, 65, 58, 54, 77, 43, 60, 82, 47, 71, 91, 78, 77, 66, 92, 57, 69, 60, 72, 63, 41, 65, 55, 68, 76, 55, 63, 70, 61, 62, 49, 64, 40, 48, 50, 57, 61, 61, 65, 61, 66, 47, 70, 58, 63, 131, 65, 66, 55, 44, 77, 61, 76, 62, 75, 54, 64, 74, 64, 63, 73, 101, 54, 62, 76, 65, 47, 146, 64, 87, 79, 48, 85, 56, 73, 59, 71, 113, 65, 74, 102, 72, 79, 59, 55, 43, 58, 55, 60, 79, 92, 57, 52, 70, 64, 66, 54, 108, 57, 70, 58, 56, 40, 70, 125, 66, 65, 62, 49, 74, 54, 55, 54, 75, 60, 67, 42, 57, 54, 68, 78, 98, 64, 72, 51, 45, 50, 70, 90, 103, 66, 45, 68, 54, 58, 55, 75, 45, 51, 46, 52, 47, 56, 66, 52, 52, 73, 52, 63, 55, 118, 82, 85, 57, 84, 57, 67, 56, 69, 71, 61, 54, 57, 66, 94, 60, 61, 47, 51, 72, 49, 67, 71, 61, 85, 71, 64, 59, 65, 55, 69, 78, 66, 64, 58, 58, 72, 57, 75, 59, 52, 75, 95, 75, 78, 55, 59, 66, 53, 64, 65, 77, 61, 54, 94, 61, 72, 77, 128, 59, 47, 66, 48, 60, 63, 52, 65, 59, 65, 73, 53, 78, 74, 45, 71, 92, 67, 48, 54, 66, 58, 70, 60, 54, 63, 55, 64, 71, 59, 67, 72, 75, 42, 125, 65, 55, 62, 86, 65, 82, 65, 65, 66, 71, 80, 60, 74, 54, 68, 63, 54, 62, 65, 67, 57, 54, 48, 69, 69, 59, 79, 45, 57, 71, 66, 61, 82, 71, 87, 64, 66, 56, 100, 49, 68, 74, 70, 71, 52, 57, 71, 79, 54, 79, 58, 80, 57, 66, 65, 78, 72, 51, 67, 51, 76, 62, 71, 62, 68, 87, 114, 65, 46, 83, 83, 63, 68, 70, 74, 55, 75, 58, 78, 66, 49, 50, 82, 68, 71, 80, 78, 91, 69, 41, 64, 63, 73, 56, 78, 43, 35, 70, 60, 55, 88, 57, 50, 91, 75, 53, 52, 55, 69, 47, 59, 55, 70, 64, 47, 90, 61, 82, 55, 48, 66, 72, 95, 60, 92, 68, 44, 41, 96, 43, 110, 60, 66, 48, 72, 121, 82, 59, 51, 64, 68, 54, 65, 42, 85, 81, 73, 68, 74, 80, 71, 68, 123, 62, 64, 55, 76, 79, 74, 86, 64, 42, 48, 92, 74, 60, 70, 67, 56, 60, 47, 83, 100, 77, 52, 82, 79, 66, 53, 40, 45, 50, 65, 71, 49, 71, 34, 38, 116, 46, 67, 57, 67, 64, 65, 56, 81, 41, 61, 69, 61, 62, 73, 85, 58, 75, 57, 100, 57, 68, 74, 48, 59, 58, 127, 93, 43, 90, 88, 71, 73, 54, 65, 50, 54, 59, 67, 48, 63, 52, 80, 62, 55, 46, 58, 59, 92, 68, 91, 27, 42, 104, 59, 52, 55, 68, 83, 48, 67, 44, 51, 76, 49, 99, 64, 81, 74, 66, 81, 74, 57, 58, 44, 51, 70, 77, 65, 85, 85, 75, 62, 56, 105, 72, 59, 71, 58, 59, 47, 70, 62, 65, 65, 65, 63, 95, 74, 70, 83, 102, 69, 64, 45, 64, 68, 76, 49, 70, 84, 57, 86, 56, 52, 48, 64, 73, 98, 51, 42, 92, 77, 63, 63, 81, 53, 99, 50, 67, 52, 51, 73, 55, 63, 99, 69, 64, 88, 58, 86, 56, 40, 46, 69, 72, 55, 54, 72, 71, 70, 73, 56, 61, 47, 129, 84, 50, 47, 52, 72, 93, 76, 78, 91, 50, 76, 55, 52, 68, 79, 64, 71, 73, 61, 68, 63, 76, 57, 71, 62, 47, 69, 83, 79, 105, 67, 65, 57, 66, 95, 74, 67, 54, 62, 67, 49, 43, 53, 81, 65, 101, 76, 57, 69, 56, 86, 78, 64, 63, 39, 52, 47, 77, 52, 46, 61, 61, 60, 52, 42, 69, 70, 51, 69, 63, 85, 50, 57, 72, 64, 106, 71, 75, 52, 60, 55, 70, 76, 57, 67, 75, 80, 76, 82, 54, 54, 71, 56, 73, 53, 93, 86, 48, 58, 50, 72, 66, 90, 53, 118, 47, 67, 71, 53, 65, 73, 61, 46, 64, 39, 58, 53, 68, 35, 51, 43, 69, 69, 59, 82, 59, 83, 49, 51, 55, 65, 44, 75, 56, 47, 68, 97, 107, 89, 82, 56, 62, 70, 67, 77, 85, 51, 73, 83, 69, 50, 62, 49, 76, 60, 73, 62, 52, 57, 60, 48, 84, 60, 80, 57, 111, 70, 59, 62, 108, 61, 62, 52, 66, 60, 53, 61, 52, 56, 76, 38, 72, 74, 76, 110, 61, 53, 39, 69, 92, 58, 58, 72, 68, 52, 62, 52, 69, 57, 42, 110, 61, 64, 73, 73, 41, 82, 84, 59, 68, 62, 59, 51, 71, 125, 73, 78, 62, 70, 59, 105, 48, 50, 49, 63, 85, 70, 76, 39, 43, 84, 60, 64, 42, 64, 76, 83, 53, 56, 59, 56, 65, 42, 61, 51, 55, 62, 63, 106, 57, 83, 48, 60, 56, 70, 58, 60, 60, 66, 63, 64, 63, 80, 70, 66, 82, 39, 71, 84, 43, 70, 51, 91, 54, 58, 53, 58, 52, 57, 78, 106, 81, 80, 48, 39, 60, 71, 74, 65, 70, 55, 37, 47, 78, 71, 67, 45, 57, 93, 77, 75, 41, 55, 46, 63, 87, 78, 73, 55, 61, 76, 54, 63, 63, 53, 61, 88, 49, 56, 43, 64, 57, 60, 78, 66, 56, 73, 44, 74, 49, 76, 50, 49, 57, 78, 55, 45, 67, 95, 64, 47, 49, 82, 54, 58, 87, 62, 68, 83, 58, 53, 58, 53, 68, 52, 37, 67, 74, 70, 68, 63, 92, 52, 106, 93, 64, 69, 63, 60, 63, 56, 73, 58, 73, 64, 87, 54, 68, 58, 73, 70, 69, 88, 49, 49, 54, 60, 54, 53, 60, 68, 43, 48, 61, 70, 35, 64, 64, 64, 55, 72, 58, 78, 65, 66, 78, 57, 75, 110, 62, 57, 44, 68, 78, 84, 75, 91, 76, 57, 79, 66, 78, 57, 82, 60, 84, 58, 64, 44, 61, 50, 103, 86, 63, 73, 62, 66, 95, 42, 83, 45, 76, 45, 76, 71, 95, 70, 47, 71, 62, 83, 77, 43, 83, 81, 75, 62, 39, 52, 39, 74, 43, 66, 50, 35, 68, 73, 65, 59, 64, 51, 72, 79, 81, 61, 47, 84, 71, 83, 56, 66, 73, 61, 70, 85, 83, 54, 49, 59, 127, 73, 54, 70, 100, 59, 67, 69, 62, 38, 57, 103, 58, 47, 78, 76, 73, 79, 48, 62, 50, 110, 63, 50, 60, 69, 49, 64, 51, 55, 89, 54, 41, 71, 84, 59, 48, 82, 99, 70, 63, 92, 88, 54, 69, 56, 56, 88, 81, 77, 61, 80, 59, 86, 39, 58, 94, 57, 82, 97, 63, 66, 70, 44, 54, 124, 85, 63, 71, 61, 61, 67, 75, 47, 84, 91, 86, 69, 105, 68, 53, 73, 58, 51, 79, 55, 75, 62, 81, 101, 83, 49, 89, 74, 48, 67, 51, 45, 68, 66, 38, 69, 60, 99, 54, 99, 68, 153, 64, 58, 57, 53, 75, 59, 54, 65, 80, 57, 67, 89, 51, 54, 66, 66, 62, 62, 51, 74, 59, 67, 112, 47, 55, 68, 53, 57, 47, 67, 70, 58, 57, 66, 80, 50, 79, 102, 82, 60, 81, 54, 82, 134, 62, 45, 70, 67, 53, 36, 76, 53, 40, 48, 58, 73, 61, 87, 65, 56, 57, 62, 78, 78, 64, 50, 64, 91, 51, 78, 94, 60, 62, 57, 94, 59, 70, 70, 69, 62, 46, 61, 84, 35, 71, 81, 59, 45, 92, 61, 68, 53, 80, 62, 54, 51, 44, 120, 70, 68, 35, 52, 79, 57, 74, 67, 72, 50, 92, 86, 99, 63, 99, 77, 70, 84, 71, 69, 71, 65, 62, 50, 81, 26, 51, 63, 85, 68, 58, 81, 57, 63, 71, 60, 82, 107, 53, 49, 69, 82, 57, 82, 43, 80, 56, 111, 50, 42, 80, 78, 94, 67, 78, 67, 78, 64, 62, 57, 62, 58, 42, 59, 64, 56, 44, 58, 58, 58, 54, 62, 54, 66, 72, 75, 71, 83, 62, 52, 53, 66, 49, 62, 73, 68, 68, 53, 58, 87, 59, 59, 63, 77, 73, 81, 107, 66, 57, 74, 63, 103, 56, 62, 51, 74, 69, 61, 57, 74, 58, 61, 72, 85, 62, 70, 56, 74, 68, 57, 57, 52, 45, 52, 63, 64, 64, 62, 65, 80, 65, 51, 124, 90, 65, 67, 49, 71, 54, 82, 66, 58, 69, 79, 55, 52, 62, 62, 81, 84, 74, 65, 62, 74, 77, 50, 64, 51, 60, 52, 51, 76, 84, 94, 88, 59, 60, 53, 62, 67, 64, 52, 61, 58, 63, 106, 65, 53, 56, 65, 73, 53, 63, 67, 57, 67, 62, 77, 60, 68, 76, 53, 107, 53, 57, 61, 46, 55, 49, 70, 59, 76, 72, 54, 64, 63, 66, 59, 61, 54, 59, 68, 66, 81, 59, 55, 57, 70, 84, 82, 100, 68, 56, 50, 68, 56, 70, 82, 63, 68, 64, 58, 54, 59, 70, 54, 63, 68, 64, 69, 67, 64, 69, 58, 67, 59, 58, 47, 59, 64, 55, 81, 63, 49, 71, 78, 82, 59, 94, 64, 58, 76, 55, 149, 78, 73, 69, 61, 59, 69, 61, 59, 65, 76, 98, 60, 61, 53, 67, 57, 76, 55, 64, 62, 63, 64, 46, 70, 72, 71, 65, 69, 62, 69, 82, 64, 62, 67, 109, 62, 54, 57, 71, 57, 87, 68, 59, 68, 55, 61, 67, 62, 69, 60, 55, 67, 58, 70, 71, 57, 59, 48, 60, 66, 46, 73, 52, 61, 66, 70, 72, 48, 66, 56, 67, 58, 66, 71, 69, 66, 63, 69, 79, 41, 64, 71, 72, 76, 68, 61, 68, 66, 99, 76, 62, 64, 69, 75, 67, 59, 58, 54, 67, 83, 63, 56, 92, 61, 67, 57, 60, 65, 56, 69, 61, 76, 73, 61, 61, 84, 54, 78, 79, 68, 50, 66, 59, 128, 65, 61, 49, 70, 79, 51, 62, 56, 68, 72, 74, 64, 70, 59, 64, 55, 69, 59, 83, 57, 70, 91, 56, 92, 66, 57, 97, 71, 68, 53, 60, 62, 48, 77, 57, 52, 64, 107, 54, 75, 90, 59, 101, 56, 79, 87, 60, 78, 63, 62, 81, 73, 58, 58, 52, 39, 61, 60, 59, 59, 77, 67, 66, 62, 57, 45, 57, 67, 52, 69, 69, 50, 56, 72, 55, 59, 60, 88, 65, 60, 68, 68, 41, 60, 69, 65, 68, 62, 67, 68, 71, 55, 61, 61, 71, 65, 62, 66, 54, 55, 68, 87, 74, 75, 69, 80, 60, 74, 75, 53, 52, 60, 60, 58, 59, 52, 78, 61, 60, 56, 73, 62, 69, 69, 68, 70, 53, 78, 59, 59, 76, 64, 81, 50, 66, 58, 66, 44, 58, 69, 69, 57, 97, 65, 54, 63, 72, 88, 61, 55, 60, 81, 71, 57, 54, 58, 63, 58, 68, 56, 56, 70, 60, 63, 54, 51, 67, 69, 69, 67, 67, 62, 45, 65, 58, 70, 61, 57, 65, 59, 62, 75, 66, 95, 103, 77, 71, 73, 51, 57, 60, 66, 89, 67, 59, 60, 83, 80, 64, 59, 63, 81, 58, 56, 54, 67, 76, 57, 57, 76, 67, 64, 58, 63, 60, 57, 56, 54, 62, 50, 62, 71, 57, 64, 64, 66, 48, 70, 66, 82, 57, 69, 75, 43, 69, 55, 59, 45, 56, 56, 65, 59, 65, 71, 58, 83, 61, 49, 59, 60, 74, 55, 67, 59, 63, 58, 63, 69, 48, 60, 63, 63, 47, 90, 66, 60, 70, 89, 76, 76, 67, 53, 54, 77, 68, 63, 47, 77, 67, 58, 70, 64, 62, 70, 67, 67, 81, 55, 59, 69, 63, 57, 64, 106, 59, 66, 97, 46, 60, 72, 63, 58, 75, 60, 53, 61, 63, 63, 76, 89, 56, 76, 61, 71, 64, 57, 67, 70, 70, 62, 70, 63, 72, 63, 56, 75, 64, 62, 55, 62, 57, 71, 63, 84, 56, 48, 69, 66, 85, 63, 70, 70, 65, 50, 59, 65, 64, 65, 82, 62, 60, 60, 115, 70, 61, 77, 56, 65, 55, 109, 75, 113, 74, 68, 84, 60, 69, 62, 61, 72, 57, 64, 69, 84, 61, 59, 79, 59, 63, 76, 65, 70, 67, 60, 58, 64, 103, 61, 73, 43, 66, 73, 75, 68, 76, 71, 75, 59, 65, 61, 69, 53, 56, 55, 50, 66, 56, 62, 68, 62, 56, 75, 71, 72, 72, 79, 53, 103, 54, 60, 59, 66, 73, 46, 58, 52, 56, 68, 51, 74, 84, 91, 57, 61, 83, 101, 61, 59, 65, 58, 64, 68, 67, 111, 49, 117, 64, 71, 57, 61, 87, 55, 65, 57, 55, 66, 65, 69, 83, 84, 60, 81, 59, 73, 62, 65, 47, 81, 49, 95, 58, 105, 54, 69, 57, 65, 66, 88, 66, 63, 65, 62, 81, 60, 54, 64, 60, 107, 49, 64, 83, 66, 55, 70, 66, 49, 58, 70, 59, 66, 88, 62, 67, 83, 69, 76, 87, 69, 64, 80, 73, 66, 58, 60, 69, 75, 64, 90, 55, 56, 91, 60, 72, 56, 52, 75, 74, 63, 61, 72, 70, 56, 64, 53, 85, 60, 92, 58, 51, 84, 57, 102, 65, 54, 62, 49, 60, 52, 64, 56, 76, 71, 57, 60, 78, 58, 60, 58, 81, 60, 57, 52, 64, 55, 62, 69, 62, 71, 71, 68, 70, 64, 68, 68, 66, 56, 84, 56, 53, 68, 63, 56, 62, 83, 62, 60, 64, 70, 75, 63, 60, 56, 62, 62, 64, 56, 70, 75, 59, 58, 68, 55, 75, 58, 55, 65, 53, 62, 63, 67, 61, 59, 106, 62, 59, 46, 55, 55, 70, 63, 57, 67, 52, 111, 63, 70, 67, 62, 66, 66, 66, 64, 77, 69, 80, 60, 54, 81, 62, 65, 61, 97, 61, 75, 69, 65, 66, 68, 52, 57, 57, 56, 87, 62, 55, 67, 61, 59, 76, 65, 62, 52, 58, 51, 69, 69, 73, 84, 51, 81, 67, 76, 49, 57, 63, 96, 68, 68, 78, 56, 72, 54, 55, 49, 72, 60, 68, 63, 88, 92, 61, 61, 60, 86, 63, 54, 64, 63, 56, 71, 68, 60, 82, 104, 75, 55, 54, 65, 75, 61, 85, 65, 66, 72, 57, 57, 52, 52, 95, 64, 63, 44, 66, 61, 67, 49, 60, 67, 64, 60, 48, 66, 44, 113, 55, 64, 59, 74, 81, 61, 65, 50, 82, 82, 59, 58, 67, 57, 47, 74, 63, 69, 64, 69, 68, 102, 82, 67, 41, 90, 61, 91, 48, 54, 69, 53, 67, 61, 58, 66, 78, 73, 90, 92, 65, 76, 64, 79, 56, 62, 43, 60, 61, 66, 45, 89, 48, 61, 85, 64, 58, 46, 74, 43, 54, 71, 57, 104, 77, 57, 56, 55, 53, 80, 65, 63, 61, 55, 89, 70, 68, 68, 55, 67, 58, 60, 100, 68, 67, 73, 95, 46, 81, 51, 70, 45, 56, 42, 58, 67, 54, 65, 61, 64, 63, 72, 58, 84, 56, 79, 75, 90, 46, 53, 63, 50, 76, 88, 72, 52, 69, 70, 71, 80, 59, 59, 70, 66, 43, 68, 70, 60, 58, 59, 76, 84, 73, 66, 65, 55, 45, 53, 57, 48, 67, 68, 82, 68, 72, 95, 68, 66, 68, 82, 79, 58, 59, 95, 64, 73, 68, 58, 74, 55, 74, 62, 64, 63, 79, 57, 108, 64, 67, 75, 55, 70, 58, 55, 59, 81, 55, 58, 45, 62, 63, 69, 81, 85, 60, 67, 59, 84, 86, 60, 64, 65, 80, 112, 71, 91, 110, 76, 74, 73, 88, 104, 47, 75, 58, 59, 64, 45, 67, 57, 55, 67, 56, 64, 45, 85, 59, 66, 95, 72, 54, 51, 58, 56, 65, 54, 63, 62, 32, 69, 41, 41, 59, 75, 70, 48, 69, 54, 66, 77, 60, 43, 64, 57, 68, 49, 67, 51, 44, 55, 65, 76, 62, 62, 46, 79, 58, 59, 56, 62, 66, 54, 64, 47, 75, 70, 75, 74, 69, 53, 58, 59, 57, 70, 68, 75, 78, 58, 69, 71, 79, 59, 71, 64, 60, 62, 50, 48, 62, 71, 92, 72, 55, 65, 62, 70, 75, 74, 63, 43, 53, 64, 76, 64, 67, 55, 67, 63, 57, 68, 72, 80, 86, 58, 59, 58, 64, 67, 65, 59, 63, 84, 80, 50, 86, 59, 67, 56, 63, 72, 91, 77, 70, 80, 50, 87, 47, 61, 56, 92, 72, 67, 61, 44, 59, 52, 64, 99, 67, 44, 63, 75, 75, 66, 96, 66, 97, 60, 33, 51, 60, 61, 68, 57, 44, 64, 41, 67, 76, 59, 65, 51, 58, 49, 70, 64, 111, 68, 51, 83, 57, 51, 60, 60, 59, 63, 65, 64, 62, 79, 55, 73, 60, 62, 62, 62, 53, 52, 61, 78, 65, 47, 54, 49, 88, 62, 62, 74, 73, 62, 46, 65, 35, 89, 46, 73, 82, 68, 76, 54, 67, 60, 62, 75, 58, 58, 56, 47, 52, 61, 61, 53, 60, 56, 61, 44, 60, 63, 67, 77, 73, 63, 68, 86, 52, 54, 58, 58, 60, 60, 48, 73, 55, 59, 68, 60, 59, 44, 59, 68, 64, 59, 60, 55, 79, 64, 43, 57, 54, 132, 78, 73, 62, 90, 54, 55, 65, 64, 68, 67, 67, 79, 73, 56, 56, 66, 54, 63, 61, 69, 61, 48, 48, 64, 109, 89, 55, 52, 71, 101, 70, 64, 63, 62, 77, 94, 57, 42, 62, 55, 57, 56, 142, 93, 59, 40, 56, 77, 64, 75, 52, 65, 79, 47, 43, 54, 51, 67, 68, 60, 49, 57, 73, 53, 74, 68, 58, 35, 40, 77, 71, 43, 59, 74, 42, 72, 60, 74, 74, 64, 59, 58, 63, 52, 118, 65, 62, 59, 54, 60, 85, 59, 79, 65, 94, 53, 81, 34, 78, 41, 74, 57, 68, 52, 77, 65, 50, 80, 74, 56, 70, 66, 88, 62, 73, 66, 62, 71, 73, 87, 83, 47, 72, 92, 70, 104, 70, 29, 52, 58, 55, 67, 65, 72, 58, 64, 64, 63, 71, 78, 69, 59, 64, 57, 64, 56, 66, 54, 64, 64, 76, 71, 73, 83, 98, 67, 68, 71, 70, 73, 72, 66, 96, 75, 59, 55, 69, 86, 58, 76, 54, 59, 71, 56, 59, 61, 87, 80, 66, 80, 38, 74, 70, 61, 59, 76, 75, 66, 65, 64, 51, 56, 55, 62, 93, 59, 74, 101, 64, 71, 59, 55, 99, 66, 78, 66, 64, 89, 81, 63, 58, 106, 58, 48, 72, 49, 61, 64, 55, 64, 81, 77, 62, 71, 52, 56, 71, 62, 56, 71, 74, 54, 54, 76, 63, 128, 74, 75, 69, 60, 65, 53, 57, 62, 80, 48, 52, 74, 60, 60, 53, 68, 75, 39, 74, 61, 97, 55, 63, 84, 44, 64, 75, 60, 61, 59, 82, 61, 62, 44, 85, 57, 90, 73, 57, 61, 58, 46, 57, 60, 114, 68, 57, 88, 62, 67, 63, 84, 152, 50, 57, 73, 59, 76, 49, 60, 63, 41, 55, 56, 77, 76, 66, 69, 77, 71, 46, 76, 91, 78, 76, 58, 103, 55, 79, 61, 85, 54, 56, 55, 62, 51, 88, 83, 52, 51, 62, 53, 81, 48, 60, 56, 48, 55, 79, 46, 59, 73, 69, 70, 64, 55, 60, 63, 53, 61, 57, 54, 53, 51, 55, 83, 77, 65, 64, 73, 54, 70, 68, 58, 67, 68, 58, 56, 62, 73, 54, 73, 70, 78, 68, 86, 76, 67, 83, 68, 83, 69, 61, 56, 72, 81, 75, 69, 51, 75, 63, 72, 83, 64, 73, 63, 68, 65, 73, 82, 52, 45, 63, 78, 72, 61, 62, 65, 78, 57, 53, 82, 58, 54, 89, 87, 63, 46, 61, 70, 103, 61, 69, 102, 59, 65, 80, 77, 80, 59, 67, 64, 51, 46, 78, 62, 90, 71, 61, 74, 77, 60, 40, 64, 51, 68, 70, 82, 57, 49, 62, 65, 71, 60, 80, 68, 50, 54, 70, 71, 55, 56, 80, 77, 63, 39, 55, 46, 73, 67, 99, 68, 69, 93, 75, 57, 58, 66, 50, 100, 82, 112, 50, 52, 62, 67, 62, 80, 70, 89, 63, 59, 57, 47, 55, 61, 78, 67, 60, 71, 71, 88, 53, 52, 58, 62, 53, 64, 94, 54, 53, 66, 62, 55, 128, 88, 63, 76, 56, 78, 68, 58, 62, 84, 52, 99, 77, 53, 61, 50, 82, 94, 64, 58, 58, 70, 77, 72, 62, 66, 64, 69, 57, 64, 58, 68, 57, 87, 63, 66, 61, 66, 48, 54, 74, 59, 59, 33, 47, 61, 59, 62, 69, 69, 57, 75, 61, 72, 81, 63, 34, 50, 67, 78, 68, 53, 67, 79, 54, 56, 75, 71, 58, 91, 56, 55, 60, 57, 94, 67, 65, 84, 66, 68, 51, 62, 93, 42, 55, 63, 62, 60, 56, 39, 113, 62, 89, 68, 56, 67, 70, 61, 58, 37, 58, 58, 73, 66, 70, 44, 53, 59, 100, 64, 52, 66, 55, 60, 47, 66, 54, 80, 65, 51, 62, 56, 61, 79, 65, 62, 63, 76, 48, 51, 55, 45, 68, 70, 69, 61, 41, 64, 78, 53, 70, 60, 69, 94, 51, 59, 61, 67, 70, 96, 86, 53, 82, 51, 62, 58, 68, 63, 59, 69, 66, 67, 63, 46, 64, 64, 74, 59, 76, 70, 56, 105, 62, 59, 73, 57, 57, 83, 66, 59, 60, 51, 55, 88, 63, 49, 54, 61, 67, 61, 79, 67, 75, 64, 43, 58, 44, 81, 76, 71, 51, 57, 56, 73, 48, 42, 82, 124, 53, 66, 67, 56, 61, 59, 87, 71, 60, 60, 60, 60, 60, 54, 71, 72, 63, 45, 100, 100, 85, 101, 69, 65, 80, 61, 57, 66, 60, 62, 83, 70, 59, 48, 56, 57, 60, 66, 61, 59, 80, 39, 45, 75, 87, 61, 88, 56, 45, 50, 59, 66, 63, 71, 53, 59, 59, 62, 60, 82, 74, 74, 64, 40, 75, 88, 96, 70, 58, 62, 69, 58, 63, 78, 70, 51, 71, 56, 104, 100, 66, 74, 53, 57, 67, 100, 56, 62, 75, 66, 57, 72, 88, 64, 56, 106, 63, 71, 84, 60, 52, 68, 48, 51, 81, 65, 53, 60, 68, 71, 63, 103, 58, 70, 61, 63, 56, 80, 69, 82, 53, 59, 73, 71, 86, 70, 52, 59, 54, 43, 81, 54, 77, 70, 76, 72, 58, 59, 57, 88, 54, 75, 75, 56, 52, 51, 68, 95, 85, 60, 80, 81, 60, 100, 73, 63, 61, 68, 54, 65, 78, 68, 58, 78, 65, 59, 74, 46, 59, 49, 52, 61, 83, 69, 42, 70, 63, 50, 57, 60, 58, 77, 99, 51, 58, 70, 92, 66, 72, 64, 60, 65, 57, 56, 91, 54, 57, 66, 101, 60, 62, 68, 35, 63, 80, 74, 66, 80, 56, 90, 74, 62, 60, 71, 66, 56, 42, 69, 65, 109, 66, 56, 61, 65, 64, 52, 81, 38, 69, 58, 54, 68, 64, 64, 72, 60, 93, 67, 51, 55, 57, 59, 57, 60, 46, 48, 92, 55, 79, 58, 53, 84, 58, 57, 49, 42, 52, 78, 75, 64, 59, 69, 55, 65, 89, 72, 52, 83, 73, 65, 74, 69, 80, 69, 51, 49, 48, 55, 62, 68, 61, 40, 71, 53, 77, 62, 62, 56, 69, 77, 62, 64, 54, 53, 73, 74, 70, 50, 68, 54, 86, 56, 58, 82, 77, 50, 47, 81, 71, 78, 62, 50, 65, 71, 50, 88, 68, 50, 65, 80, 57, 84, 68, 63, 63, 65, 36, 71, 64, 75, 68, 54, 59, 69, 54, 71, 69, 53, 76, 66, 55, 81, 54, 71, 63, 69, 63, 69, 73, 58, 52, 78, 62, 55, 56, 63, 88, 70, 110, 78, 55, 54, 78, 57, 60, 85, 66, 60, 65, 72, 64, 58, 62, 81, 52, 55, 125, 52, 81, 49, 96, 99, 62, 59, 81, 91, 71, 68, 97, 57, 61, 56, 56, 62, 88, 63, 82, 62, 63, 51, 114, 54, 68, 95, 49, 79, 63, 45, 63, 70, 83, 47, 77, 80, 96, 64, 49, 69, 52, 72, 65, 73, 47, 59, 55, 77, 66, 47, 84, 133, 79, 54, 78, 65, 68, 89, 59, 63, 62, 50, 42, 67, 47, 58, 59, 59, 56, 89, 42, 64, 53, 55, 75, 78, 43, 61, 61, 63, 79, 72, 88, 53, 57, 57, 52, 55, 41, 59, 58, 95, 59, 52, 72, 54, 38, 61, 58, 84, 49, 83, 86, 65, 56, 50, 83, 50, 79, 56, 59, 64, 67, 59, 63, 56, 64, 56, 49, 53, 79, 56, 66, 59, 58, 74, 91, 66, 55, 60, 58, 70, 82, 52, 54, 78, 64, 62, 70, 52, 69, 52, 114, 94, 55, 65, 63, 76, 59, 77, 72, 60, 61, 50, 60, 58, 64, 53, 72, 65, 51, 64, 65, 65, 63, 48, 73, 61, 70, 69, 78, 51, 69, 53, 70, 52, 57, 58, 83, 53, 57, 53, 54, 83, 71, 75, 79, 76, 58, 54, 40, 45, 77, 57, 78, 62, 49, 52, 68, 62, 67, 83, 79, 75, 59, 68, 80, 67, 68, 51, 105, 63, 62, 47, 106, 65, 62, 52, 76, 79, 63, 56, 76, 64, 77, 72, 66, 71, 61, 68, 66, 66, 52, 69, 50, 62, 60, 69, 74, 127, 56, 67, 82, 49, 57, 58, 60, 62, 52, 57, 83, 66, 72, 89, 81, 70, 55, 60, 63, 62, 74, 67, 44, 59, 58, 71, 74, 72, 61, 61, 63, 74, 85, 80, 114, 71, 70, 91, 68, 84, 41, 67, 48, 51, 69, 55, 63, 54, 81, 54, 48, 56, 59, 109, 78, 66, 76, 79, 67, 69, 57, 61, 57, 69, 104, 69, 89, 54, 71, 63, 60, 58, 79, 61, 67, 78, 75, 50, 61, 45, 69, 65, 62, 56, 54, 58, 72, 71, 92, 63, 52, 53, 65, 54, 68, 45, 62, 57, 87, 57, 38, 58, 59, 53, 91, 61, 119, 60, 60, 68, 43, 46, 49, 62, 79, 74, 102, 61, 43, 68, 50, 73, 65, 60, 66, 70, 71, 80, 74, 64, 65, 70, 53, 67, 89, 52, 66, 105, 67, 61, 81, 56, 62, 86, 66, 45, 54, 58, 58, 58, 102, 65, 94, 58, 61, 78, 58, 56, 58, 60, 68, 55, 65, 93, 57, 65, 67, 50, 54, 74, 85, 54, 74, 61, 65, 69, 74, 50, 53, 41, 55, 82, 63, 68, 67, 61, 99, 69, 58, 48, 58, 55, 64, 88, 55, 78, 87, 71, 82, 67, 83, 65, 65, 119, 79, 50, 55, 59, 53, 68, 66, 55, 53, 60, 57, 61, 47, 80, 65, 52, 75, 67, 51, 83, 73, 68, 63, 67, 69, 55, 86, 77, 58, 56, 69, 78, 69, 61, 51, 65, 70, 87, 90, 58, 79, 69, 69, 57, 64, 52, 42, 84, 54, 50, 76, 47, 80, 57, 79, 50, 78, 58, 58, 51, 77, 64, 70, 78, 77, 52, 98, 71, 54, 77, 109, 76, 62, 46, 70, 63, 45, 63, 68, 82, 72, 71, 75, 52, 48, 66, 75, 71, 84, 112, 74, 61, 61, 80, 69, 68, 91, 72, 68, 54, 52, 58, 70, 63, 64, 58, 61, 52, 60, 62, 70, 68, 90, 57, 50, 65, 61, 64, 67, 70, 71, 66, 80, 79, 57, 61, 89, 73, 59, 45, 51, 67, 68, 61, 60, 66, 58, 56, 63, 93, 71, 51, 66, 54, 93, 81, 76, 65, 46, 71, 85, 73, 66, 65, 52, 91, 74, 74, 62, 71, 79, 58, 45, 73, 60, 68, 82, 73, 44, 51, 59, 51, 92, 48, 79, 68, 59, 92, 67, 64, 56, 82, 66, 46, 57, 75, 57, 70, 61, 60, 66, 66, 62, 85, 58, 82, 61, 65, 62, 62, 66, 59, 53, 71, 77, 55, 87, 71, 55, 54, 72, 60, 76, 101, 91, 59, 70, 48, 45, 91, 76, 49, 51, 75, 54, 108, 59, 58, 66, 65, 61, 91, 65, 92, 61, 99, 65, 99, 69, 62, 60, 61, 72, 61, 57, 68, 65, 44, 59, 63, 65, 72, 62, 68, 95, 51, 57, 59, 82, 64, 61, 53, 57, 48, 63, 64, 78, 50, 70, 49, 61, 73, 63, 57, 53, 73, 77, 74, 64, 56, 64, 53, 59, 66, 70, 68, 56, 73, 52, 60, 111, 95, 61, 81, 62, 55, 61, 44, 54, 67, 54, 62, 63, 77, 66, 73, 78, 70, 86, 48, 57, 64, 51, 65, 63, 58, 48, 55, 58, 69, 72, 70, 99, 68, 104, 68, 92, 48, 83, 54, 41, 62, 60, 65, 60, 75, 62, 80, 79, 64, 62, 57, 77, 82, 57, 54, 96, 52, 69, 82, 56, 59, 63, 46, 79, 44, 75, 46, 71, 71, 60, 69, 57, 99, 64, 84, 71, 46, 54, 73, 61, 71, 73, 55, 61, 66, 52, 67, 58, 58, 62, 58, 47, 43, 69, 93, 75, 93, 56, 53, 58, 66, 105, 59, 93, 57, 76, 74, 73, 60, 61, 59, 73, 73, 59, 66, 70, 61, 99, 71, 35, 78, 76, 53, 59, 61, 59, 79, 64, 65, 47, 63, 85, 60, 68, 57, 57, 68, 66, 72, 70, 73, 51, 80, 56, 61, 81, 59, 78, 47, 59, 51, 91, 73, 61, 57, 49, 54, 70, 94, 64, 82, 70, 66, 58, 76, 78, 73, 54, 59, 63, 56, 62, 78, 50, 61, 54, 62, 59, 59, 68, 68, 62, 49, 55, 60, 63, 79, 46, 67, 75, 92, 41, 59, 75, 79, 58, 68, 59, 63, 62, 69, 66, 42, 94, 52, 57, 75, 57, 57, 69, 75, 62, 49, 55, 55, 60, 48, 50, 62, 51, 72, 67, 68, 81, 46, 89, 52, 56, 59, 77, 51, 73, 56, 52, 62, 46, 63, 63, 58, 74, 61, 75, 63, 63, 91, 52, 57, 51, 67, 88, 62, 43, 57, 71, 81, 78, 60, 66, 73, 78, 75, 66, 70, 64, 79, 74, 58, 74, 60, 71, 70, 72, 46, 58, 61, 61, 65, 79, 83, 67, 78, 58, 71, 81, 57, 50, 55, 60, 79, 86, 86, 60, 67, 74, 60, 71, 58, 53, 54, 60, 78, 128, 43, 94, 61, 68, 69, 100, 49, 88, 69, 73, 75, 77, 95, 45, 75, 62, 61, 26, 70, 63, 67, 63, 58, 57, 50, 45, 59, 71, 56, 36, 54, 84, 56, 110, 54, 61, 75, 69, 83, 71, 51, 74, 96, 79, 49, 74, 60, 51, 92, 62, 53, 55, 55, 72, 76, 74, 49, 57, 60, 66, 69, 54, 52, 69, 57, 67, 67, 47, 90, 76, 64, 69, 70, 63, 92, 51, 71, 39, 64, 67, 80, 67, 50, 80, 72, 81, 71, 55, 58, 67, 93, 69, 59, 85, 34, 71, 64, 107, 59, 56, 86, 57, 90, 75, 61, 52, 67, 51, 54, 64, 63, 93, 113, 65, 50, 69, 67, 54, 86, 71, 56, 51, 69, 44, 64, 61, 66, 64, 48, 69, 51, 71, 53, 78, 55, 46, 43, 68, 57, 40, 62, 54, 79, 60, 40, 71, 89, 63, 82, 59, 99, 60, 64, 89, 95, 60, 55, 65, 55, 68, 44, 46, 52, 63, 92, 60, 57, 65, 49, 57, 52, 87, 62, 122, 73, 59, 76, 68, 64, 50, 34, 59, 57, 68, 71, 71, 63, 67, 74, 41, 57, 55, 82, 68, 84, 74, 60, 45, 58, 68, 73, 83, 68, 71, 60, 76, 79, 62, 104, 42, 82, 98, 88, 60, 65, 81, 72, 90, 56, 55, 48, 51, 73, 58, 73, 72, 63, 51, 73, 58, 66, 71, 85, 68, 74, 58, 64, 80, 67, 44, 59, 77, 52, 100, 59, 43, 64, 48, 65, 48, 77, 75, 55, 62, 63, 52, 65, 59, 55, 52, 93, 49, 51, 79, 63, 61, 58, 54, 65, 45, 68, 36, 86, 57, 61, 59, 90, 57, 50, 55, 69, 57, 93, 59, 50, 41, 98, 60, 61, 66, 50, 52, 60, 67, 41, 63, 72, 50, 45, 71, 72, 55, 72, 56, 55, 62, 85, 46, 49, 65, 60, 58, 78, 71, 56, 58, 75, 67, 59, 72, 59, 91, 57, 51, 58, 74, 63, 65, 60, 74, 81, 71, 92, 58, 83, 61, 67, 86, 55, 67, 51, 59, 61, 59, 57, 64, 69, 59, 94, 69, 73, 104, 62, 79, 80, 61, 62, 71, 65, 45, 34, 66, 49, 48, 61, 52, 55, 153, 58, 55, 52, 54, 47, 60, 68, 72, 62, 50, 63, 67, 59, 63, 59, 80, 63, 89, 74, 60, 69, 59, 56, 61, 60, 97, 69, 58, 59, 59, 70, 69, 54, 75, 59, 42, 50, 83, 55, 46, 63, 78, 64, 64, 74, 81, 58, 71, 57, 89, 56, 75, 61, 70, 54, 68, 58, 90, 78, 62, 64, 58, 58, 117, 64, 81, 67, 76, 69, 79, 59, 62, 74, 80, 65, 53, 67, 74, 72, 86, 83, 80, 76, 47, 75, 68, 68, 59, 59, 55, 76, 56, 85, 61, 68, 53, 69, 49, 50, 61, 73, 59, 68, 56, 62, 50, 46, 65, 68, 57, 40, 47, 64, 77, 57, 70, 62, 80, 78, 68, 58, 67, 79, 56, 58, 64, 58, 68, 66, 63, 54, 73, 68, 73, 65, 65, 71, 54, 70, 53, 78, 79, 66, 60, 60, 68, 69, 63, 67, 73, 56, 85, 62, 61, 86, 81, 77, 80, 95, 59, 73, 49, 60, 68, 96, 56, 49, 61, 65, 61, 79, 67, 56, 53, 54, 85, 78, 55, 50, 66, 65, 55, 56, 65, 62, 72, 117, 58, 68, 77, 71, 69, 48, 51, 56, 66, 63, 69, 80, 79, 56, 81, 70, 59, 57, 69, 47, 58, 62, 62, 46, 55, 62, 58, 66, 58, 74, 59, 71, 52, 75, 46, 59, 72, 54, 61, 76, 72, 65, 62, 61, 75, 58, 74, 59, 50, 56, 36, 65, 89, 79, 76, 64, 66, 66, 123, 81, 69, 63, 49, 72, 52, 56, 69, 60, 53, 72, 60, 73, 60, 68, 68, 64, 88, 65, 56, 66, 53, 43, 62, 49, 62, 46, 56, 63, 71, 63, 80, 73, 71, 49, 64, 48, 76, 70, 57, 65, 85, 88, 46, 59, 65, 90, 57, 90, 47, 49, 87, 68, 58, 64, 71, 69, 92, 56, 72, 68, 45, 49, 52, 73, 60, 40, 63, 58, 81, 93, 59, 53, 58, 75, 77, 53, 73, 58, 74, 64, 55, 71, 67, 46, 52, 69, 71, 83, 72, 67, 60, 41, 58, 76, 61, 40, 48, 64, 107, 45, 62, 76, 85, 49, 83, 58, 55, 58, 59, 72, 61, 68, 72, 70, 74, 46, 65, 55, 74, 48, 56, 61, 72, 66, 64, 69, 67, 71, 80, 57, 81, 61, 73, 56, 63, 47, 62, 58, 67, 71, 77, 55, 78, 73, 90, 79, 44, 75, 78, 90, 71, 65, 68, 63, 56, 50, 95, 77, 58, 49, 73, 69, 75, 74, 63, 81, 72, 62, 48, 58, 85, 49, 65, 83, 62, 67, 42, 52, 70, 56, 61, 50, 75, 76, 95, 74, 72, 50, 75, 59, 65, 51, 54, 47, 73, 65, 71, 77, 70, 60, 45, 58, 52, 83, 52, 58, 58, 115, 69, 46, 57, 121, 63, 79, 57, 64, 66, 62, 79, 62, 68, 92, 75, 59, 84, 71, 46, 54, 58, 128, 111, 72, 119, 83, 53, 69, 66, 69, 78, 52, 46, 73, 65, 86, 55, 81, 57, 51, 51, 65, 72, 54, 59, 62, 54, 255, 75, 70, 60, 60, 58, 69, 58, 52, 72, 70, 47, 78, 106, 69, 60, 62, 71, 82, 59, 59, 44, 61, 83, 56, 72, 65, 70, 56, 70, 58, 63, 62, 68, 83, 54, 68, 68, 76, 68, 86, 62, 53, 54, 39, 83, 82, 63, 62, 49, 62, 69, 58, 59, 70, 69, 61, 60, 66, 83, 66, 53, 68, 42, 52, 55, 72, 69, 86, 62, 66, 51, 58, 71, 66, 85, 56, 63, 73, 55, 56, 66, 70, 56, 85, 77, 109, 72, 66, 58, 69, 59, 85, 58, 102, 63, 69, 75, 67, 59, 73, 52, 141, 62, 60, 50, 77, 72, 54, 74, 70, 84, 86, 67, 66, 51, 55, 52, 66, 55, 60, 59, 69, 66, 50, 59, 65, 54, 46, 90, 56, 51, 63, 70, 43, 65, 82, 62, 67, 92, 56, 59, 118, 69, 63, 68, 49, 62, 139, 52, 49, 65, 56, 55, 66, 56, 53, 61, 62, 86, 60, 51, 94, 54, 61, 64, 53, 60, 71, 55, 118, 73, 52, 67, 75, 112, 94, 53, 49, 57, 42, 68, 61, 52, 59, 70, 51, 36, 68, 62, 81, 66, 44, 77, 58, 62, 69, 57, 47, 64, 59, 63, 71, 50, 67, 61, 51, 72, 44, 63, 87, 64, 59, 68, 59, 67, 76, 72, 62, 58, 102, 88, 70, 43, 74, 61, 63, 71, 94, 71, 109, 70, 58, 71, 73, 69, 65, 59, 73, 57, 88, 67, 58, 62, 75, 58, 71, 91, 60, 44, 70, 54, 46, 51, 83, 58, 67, 61, 105, 65, 113, 63, 104, 81, 58, 69, 104, 80, 81, 54, 60, 46, 60, 49, 61, 60, 75, 74, 70, 77, 73, 55, 64, 83, 50, 71, 54, 107, 49, 57, 109, 56, 57, 38, 56, 54, 60, 63, 47, 64, 99, 97, 72, 90, 59, 68, 64, 56, 104, 64, 55, 65, 76, 41, 64, 61, 70, 63, 88, 69, 76, 88, 60, 68, 89, 104, 71, 77, 63, 63, 57, 80, 58, 71, 49, 65, 40, 72, 60, 65, 59, 34, 63, 66, 60, 43, 72, 75, 64, 53, 52, 67, 93, 51, 72, 163, 51, 64, 67, 78, 59, 68, 65, 66, 55, 62, 73, 92, 90, 38, 39, 71, 56, 69, 72, 74, 63, 68, 65, 64, 64, 65, 60, 69, 69, 60, 52, 69, 51, 65, 76, 78, 59, 57, 55, 64, 61, 54, 53, 72, 56, 69, 56, 70, 71, 73, 76, 60, 73, 62, 49, 93, 77, 59, 56, 59, 56, 69, 72, 56, 88, 72, 78, 67, 67, 44, 45, 62, 56, 75, 53, 58, 54, 80, 60, 71, 54, 79, 72, 75, 48, 43, 57, 62, 66, 74, 62, 70, 66, 79, 60, 56, 65, 58, 103, 69, 47, 79, 86, 55, 46, 91, 65, 73, 61, 79, 67, 61, 57, 72, 73, 63, 60, 65, 55, 58, 61, 61, 72, 72, 64, 84, 58, 75, 71, 48, 78, 56, 58, 73, 70, 49, 55, 58, 67, 54, 57, 72, 69, 111, 44, 78, 90, 57, 48, 70, 76, 66, 70, 61, 78, 71, 70, 81, 55, 47, 84, 69, 47, 55, 78, 47, 58, 78, 62, 72, 95, 63, 63, 71, 42, 56, 50, 38, 64, 67, 52, 72, 68, 69, 73, 58, 43, 56, 56, 86, 76, 71, 61, 70, 84, 68, 53, 60, 82, 82, 70, 66, 50, 80, 66, 64, 48, 85, 55, 68, 74, 70, 62, 65, 78, 58, 52, 70, 94, 60, 64, 52, 71, 58, 51, 53, 63, 58, 60, 47, 51, 83, 65, 48, 77, 89, 48, 69, 56, 67, 66, 66, 56, 47, 57, 69, 63, 65, 49, 81, 52, 65, 75, 73, 58, 65, 47, 59, 63, 53, 86, 59, 65, 75, 60, 50, 99, 81, 60, 68, 57, 54, 58, 67, 65, 70, 78, 75, 62, 62, 76, 58, 58, 47, 78, 48, 100, 65, 61, 68, 73, 61, 54, 60, 67, 64, 65, 81, 88, 48, 75, 54, 59, 63, 71, 64, 71, 62, 46, 62, 70, 55, 71, 94, 52, 92, 59, 69, 86, 62, 64, 53, 64, 76, 64, 60, 68, 66, 60, 74, 74, 96, 67, 73, 76, 82, 67, 63, 56, 53, 73, 77, 93, 54, 69, 67, 53, 60, 53, 77, 65, 59, 56, 52, 72, 62, 61, 53, 63, 74, 50, 55, 56, 93, 103, 70, 76, 53, 69, 66, 82, 66, 56, 58, 82, 54, 90, 55, 52, 57, 60, 61, 70, 60, 51, 72, 83, 66, 59, 59, 58, 66, 56, 45, 94, 78, 61, 66, 59, 61, 59, 64, 67, 51, 58, 67, 39, 67, 72, 90, 69, 64, 66, 60, 84, 110, 49, 66, 52, 66, 74, 59, 59, 65, 81, 69, 65, 76, 58, 63, 80, 61, 57, 75, 59, 82, 63, 60, 64, 64, 64, 59, 50, 76, 55, 67, 76, 67, 73, 61, 99, 66, 70, 49, 64, 58, 53, 60, 69, 68, 64, 60, 39, 79, 72, 62, 69, 87, 70, 70, 74, 73, 57, 56, 89, 51, 59, 63, 65, 71, 85, 53, 89, 58, 63, 46, 74, 59, 65, 62, 70, 131, 60, 48, 62, 48, 69, 59, 71, 56, 57, 87, 72, 67, 98, 70, 83, 68, 72, 57, 49, 67, 60, 70, 90, 57, 63, 59, 68, 61, 68, 65, 54, 63, 64, 65, 102, 87, 54, 56, 57, 61, 56, 59, 66, 88, 60, 60, 55, 65, 56, 74, 67, 69, 57, 65, 66, 67, 63, 52, 57, 62, 93, 60, 73, 49, 107, 75, 82, 92, 70, 75, 66, 71, 64, 59, 52, 44, 77, 54, 58, 60, 64, 48, 59, 60, 79, 62, 84, 62, 55, 76, 73, 62, 59, 61, 50, 52, 106, 60, 66, 69, 85, 76, 58, 50, 54, 60, 54, 62, 51, 61, 69, 99, 73, 54, 67, 61, 64, 63, 52, 66, 63, 58, 55, 46, 66, 55, 60, 75, 82, 42, 74, 65, 64, 98, 65, 62, 60, 61, 63, 100, 57, 64, 71, 65, 62, 72, 79, 59, 75, 92, 77, 74, 105, 61, 64, 57, 53, 106, 65, 50, 73, 53, 56, 54, 99, 95, 63, 72, 61, 76, 98, 71, 66, 55, 52, 115, 80, 48, 74, 77, 60, 59, 60, 52, 60, 89, 49, 44, 94, 65, 74, 78, 71, 69, 78, 68, 50, 66, 59, 65, 62, 69, 70, 87, 58, 72, 71, 72, 62, 43, 53, 58, 60, 54, 68, 51, 110, 62, 82, 81, 59, 61, 67, 85, 59, 70, 79, 66, 70, 65, 56, 81, 49, 52, 63, 54, 69, 71, 73, 64, 73, 60, 70, 76, 63, 69, 59, 62, 67, 73, 48, 58, 78, 66, 51, 64, 54, 78, 69, 58, 64, 61, 79, 85, 92, 59, 107, 75, 67, 63, 47, 54, 78, 56, 53, 50, 89, 71, 67, 64, 63, 58, 56, 68, 63, 53, 62, 59, 73, 79, 67, 54, 68, 77, 56, 60, 53, 54, 60, 79, 70, 71, 65, 53, 44, 52, 68, 52, 58, 76, 48, 58, 65, 95, 59, 60, 90, 68, 55, 57, 88, 74, 51, 65, 63, 57, 76, 69, 72, 54, 90, 63, 80, 63, 62, 56, 55, 65, 75, 82, 86, 55, 68, 72, 90, 73, 70, 55, 70, 56, 51, 64, 60, 63, 56, 85, 66, 92, 56, 52, 66, 151, 82, 63, 63, 86, 50, 87, 67, 89, 58, 52, 65, 38, 47, 97, 66, 73, 72, 56, 59, 58, 77, 73, 68, 73, 52, 93, 59, 58, 44, 104, 83, 62, 75, 96, 59, 91, 55, 61, 58, 66, 52, 57, 60, 57, 49, 53, 60, 60, 61, 73, 64, 66, 60, 53, 67, 63, 49, 76, 58, 92, 45, 47, 53, 58, 57, 67, 57, 58, 76, 160, 66, 55, 76, 64, 69, 61, 62, 87, 54, 73, 71, 55, 62, 50, 65, 66, 51, 44, 55, 68, 51, 61, 62, 71, 99, 53, 69, 87, 62, 70, 52, 65, 58, 59, 61, 49, 86, 84, 57, 66, 65, 57, 66, 60, 62, 58, 55, 52, 51, 61, 48, 59, 70, 70, 54, 67, 87, 52, 68, 68, 98, 53, 56, 61, 82, 62, 62, 56, 43, 99, 85, 70, 60, 63, 86, 99, 59, 76, 85, 54, 57, 59, 57, 73, 54, 63, 49, 65, 62, 91, 66, 76, 52, 51, 57, 104, 111, 72, 99, 69, 53, 52, 55, 56, 63, 63, 68, 63, 68, 103, 48, 82, 55, 88, 73, 77, 119, 62, 74, 60, 29, 75, 61, 50, 65, 54, 76, 88, 47, 51, 71, 62, 72, 78, 58, 74, 92, 42, 55, 72, 85, 69, 89, 76, 62, 63, 64, 61, 80, 56, 60, 66, 72, 60, 54, 67, 67, 64, 56, 86, 61, 53, 63, 70, 54, 73, 68, 66, 61, 76, 75, 61, 69, 48, 67, 82, 60, 67, 77, 58, 107, 53, 54, 62, 71, 59, 63, 105, 88, 99, 52, 69, 64, 49, 68, 64, 56, 84, 56, 66, 93, 65, 48, 55, 58, 57, 87, 48, 48, 59, 73, 69, 73, 73, 64, 66, 55, 65, 58, 84, 57, 70, 61, 66, 48, 48, 69, 54, 68, 45, 64, 86, 68, 55, 72, 59, 49, 45, 60, 59, 90, 68, 75, 55, 58, 41, 65, 90, 61, 55, 53, 66, 106, 57, 67, 64, 73, 63, 52, 72, 65, 54, 69, 61, 78, 64, 70, 57, 62, 68, 56, 59, 50, 72, 41, 79, 64, 67, 80, 60, 55, 58, 66, 46, 52, 128, 71, 43, 55, 66, 61, 57, 48, 77, 51, 72, 76, 62, 59, 60, 54, 62, 70, 37, 45, 77, 61, 68, 55, 65, 57, 63, 59, 54, 89, 70, 65, 61, 66, 59, 53, 74, 51, 49, 52, 116, 91, 75, 64, 72, 60, 76, 62, 59, 84, 68, 70, 76, 59, 55, 77, 55, 67, 112, 54, 57, 74, 90, 41, 74, 64, 81, 50, 84, 78, 58, 94, 67, 58, 94, 45, 70, 47, 75, 98, 57, 73, 53, 43, 66, 82, 49, 63, 58, 77, 62, 43, 49, 57, 57, 46, 49, 88, 94, 60, 124, 51, 85, 62, 73, 85, 38, 57, 55, 54, 77, 60, 67, 72, 53, 64, 55, 76, 54, 60, 59, 89, 72, 108, 58, 81, 88, 79, 70, 78, 59, 84, 71, 57, 80, 57, 66, 63, 52, 49, 55, 66, 48, 51, 79, 61, 81, 72, 46, 45, 42, 64, 60, 70, 62, 45, 64, 99, 72, 74, 59, 45, 86, 94, 86, 55, 80, 81, 62, 92, 55, 62, 37, 86, 54, 53, 82, 60, 82, 61, 88, 66, 58, 61, 55, 47, 78, 84, 60, 64, 63, 70, 80, 62, 41, 88, 55, 74, 84, 45, 45, 65, 62, 58, 93, 59, 84, 78, 76, 66, 82, 62, 74, 69, 76, 56, 67, 40, 65, 69, 68, 74, 51, 75, 72, 60, 77, 38, 73, 44, 61, 68, 62, 69, 64, 59, 75, 47, 62, 56, 63, 51, 73, 68, 59, 59, 54, 70, 46, 81, 63, 77, 71, 82, 54, 71, 87, 104, 47, 70, 80, 59, 64, 79, 46, 76, 49, 67, 75, 95, 78, 52, 45, 69, 70, 90, 57, 59, 61, 50, 60, 64, 48, 66, 44, 64, 81, 63, 45, 54, 63, 79, 56, 60, 68, 57, 70, 65, 67, 76, 62, 41, 60, 51, 105, 68, 43, 55, 61, 59, 78, 67, 74, 56, 54, 46, 74, 80, 62, 66, 63, 66, 66, 69, 50, 89, 64, 77, 54, 69, 82, 56, 89, 57, 58, 54, 53, 89, 65, 82, 85, 74, 75, 67, 56, 60, 84, 67, 77, 57, 58, 56, 85, 69, 73, 50, 92, 52, 61, 84, 80, 67, 61, 50, 58, 69, 58, 47, 58, 59, 55, 68, 121, 63, 66, 69, 69, 52, 54, 55, 82, 48, 60, 45, 45, 81, 80, 58, 92, 63, 73, 63, 57, 60, 115, 50, 63, 49, 50, 50, 59, 77, 79, 83, 50, 95, 73, 71, 30, 75, 91, 77, 58, 55, 102, 81, 52, 54, 72, 87, 79, 96, 85, 81, 66, 62, 54, 41, 60, 63, 64, 77, 73, 62, 60, 62, 76, 58, 63, 82, 58, 111, 54, 47, 50, 73, 62, 48, 47, 112, 24, 53, 50, 61, 84, 119, 85, 57, 82, 57, 75, 67, 79, 70, 78, 45, 54, 50, 110, 65, 62, 89, 57, 97, 92, 56, 55, 100, 34, 67, 64, 57, 106, 66, 69, 75, 78, 54, 69, 56, 64, 75, 53, 58, 73, 47, 68, 80, 72, 78, 69, 65, 51, 76, 74, 50, 86, 57, 75, 71, 83, 60, 64, 79, 63, 71, 69, 56, 67, 134, 73, 73, 70, 60, 70, 96, 84, 88, 58, 64, 99, 75, 64, 71, 68, 62, 51, 62, 63, 53, 73, 62, 60, 49, 61, 79, 103, 65, 75, 65, 53, 64, 126, 58, 49, 56, 49, 47, 49, 70, 62, 76, 55, 65, 57, 56, 47, 66, 54, 52, 58, 57, 57, 81, 56, 72, 82, 54, 79, 62, 61, 43, 59, 71, 65, 83, 64, 54, 52, 59, 72, 102, 55, 67, 78, 81, 74, 82, 59, 56, 48, 72, 86, 84, 64, 60, 85, 51, 48, 51, 64, 124, 68, 57, 52, 51, 58, 93, 49, 59, 83, 92, 61, 51, 46, 85, 49, 76, 48, 78, 63, 50, 70, 63, 57, 64, 63, 91, 51, 36, 76, 37, 61, 68, 58, 84, 56, 65, 56, 51, 64, 48, 70, 116, 90, 61, 79, 87, 75, 59, 90, 72, 51, 63, 48, 60, 50, 58, 81, 71, 66, 93, 95, 29, 51, 52, 70, 57, 53, 84, 52, 77, 64, 99, 59, 54, 79, 82, 42, 52, 49, 79, 69, 76, 86, 80, 65, 58, 59, 58, 83, 59, 68, 93, 60, 61, 92, 60, 50, 60, 43, 70, 47, 59, 49, 65, 55, 50, 76, 87, 50, 51, 72, 66, 51, 47, 59, 70, 77, 43, 60, 71, 50, 75, 69, 73, 57, 77, 70, 69, 83, 53, 71, 97, 105, 111, 69, 64, 91, 59, 81, 64, 68, 74, 63, 56, 44, 74, 72, 54, 48, 68, 56, 56, 65, 83, 70, 65, 58, 71, 72, 64, 73, 105, 72, 42, 55, 56, 48, 74, 61, 55, 82, 71, 64, 67, 60, 98, 66, 112, 103, 58, 85, 48, 66, 59, 56, 58, 69, 66, 58, 60, 59, 54, 58, 74, 70, 66, 70, 65, 66, 63, 67, 74, 61, 73, 66, 56, 85, 58, 63, 110, 48, 82, 64, 61, 101, 47, 49, 76, 59, 64, 62, 53, 80, 65, 56, 64, 79, 52, 75, 77, 64, 60, 67, 74, 57, 71, 68, 63, 69, 73, 63, 51, 56, 107, 66, 67, 72, 44, 61, 56, 69, 66, 56, 66, 85, 53, 62, 103, 85, 59, 70, 41, 92, 61, 85, 51, 70, 65, 64, 63, 72, 53, 69, 71, 76, 42, 75, 72, 80, 47, 70, 36, 51, 71, 80, 48, 62, 61, 69, 68, 53, 59, 50, 67, 59, 84, 55, 68, 58, 50, 53, 73, 84, 61, 58, 67, 61, 87, 53, 72, 44, 50, 69, 62, 38, 60, 52, 58, 72, 52, 63, 73, 54, 47, 65, 81, 58, 78, 52, 69, 92, 76, 78, 55, 99, 63, 77, 62, 43, 61, 60, 67, 68, 50, 87, 69, 74, 43, 82, 66, 92, 89, 60, 73, 67, 64, 57, 81, 41, 77, 87, 58, 71, 37, 66, 59, 83, 70, 91, 73, 83, 69, 43, 69, 55, 81, 48, 71, 73, 59, 48, 55, 79, 82, 68, 61, 68, 67, 55, 56, 52, 110, 60, 46, 72, 69, 68, 69, 63, 72, 57, 124, 59, 65, 59, 61, 48, 63, 64, 81, 70, 71, 50, 61, 60, 62, 70, 55, 53, 64, 96, 57, 53, 58, 75, 58, 54, 57, 77, 55, 83, 81, 57, 79, 87, 52, 66, 67, 43, 57, 55, 63, 79, 77, 60, 90, 67, 70, 81, 45, 70, 98, 69, 60, 72, 69, 77, 60, 66, 64, 53, 104, 42, 70, 53, 70, 76, 65, 62, 51, 74, 62, 67, 67, 59, 81, 72, 64, 63, 61, 55, 66, 75, 63, 57, 54, 59, 94, 59, 55, 68, 70, 53, 97, 63, 66, 62, 85, 55, 58, 53, 40, 62, 79, 48, 53, 45, 47, 64, 135, 75, 50, 62, 68, 75, 67, 67, 69, 62, 56, 57, 79, 89, 48, 73, 62, 53, 61, 71, 60, 70, 35, 66, 55, 61, 61, 63, 83, 52, 63, 64, 53, 58, 59, 74, 76, 60, 59, 68, 76, 39, 71, 63, 86, 79, 83, 55, 68, 87, 113, 59, 64, 177, 46, 74, 70, 66, 58, 66, 59, 73, 71, 62, 68, 60, 68, 93, 64, 78, 76, 58, 68, 54, 63, 64, 96, 65, 49, 63, 76, 62, 72, 51, 52, 58, 80, 68, 51, 60, 59, 58, 63, 68, 55, 74, 64, 73, 80, 59, 74, 76, 134, 63, 84, 54, 89, 55, 65, 77, 59, 50, 69, 60, 66, 72, 53, 74, 77, 57, 59, 67, 75, 65, 90, 73, 65, 66, 68, 80, 67, 79, 87, 70, 63, 63, 55, 77, 56, 55, 74, 75, 109, 93, 91, 121, 61, 58, 74, 85, 75, 62, 72, 69, 63, 55, 55, 68, 52, 65, 41, 78, 54, 59, 73, 76, 58, 57, 58, 50, 47, 69, 59, 95, 58, 66, 83, 54, 83, 63, 82, 46, 88, 59, 48, 69, 81, 79, 70, 103, 67, 72, 55, 70, 71, 53, 56, 66, 63, 58, 87, 59, 68, 79, 59, 76, 59, 41, 64, 56, 58, 49, 60, 55, 48, 59, 74, 63, 87, 58, 63, 64, 73, 84, 78, 56, 78, 53, 48, 58, 61, 67, 49, 76, 58, 77, 63, 160, 68, 73, 59, 79, 82, 66, 83, 90, 61, 50, 57, 56, 67, 56, 54, 63, 60, 78, 60, 74, 47, 71, 47, 58, 61, 56, 60, 60, 60, 80, 59, 57, 88, 48, 52, 60, 58, 61, 83, 56, 84, 56, 102, 76, 94, 62, 51, 84, 56, 79, 66, 41, 47, 57, 85, 61, 93, 80, 82, 56, 66, 49, 57, 64, 94, 70, 60, 50, 57, 50, 57, 50, 63, 67, 61, 66, 47, 58, 53, 69, 53, 68, 121, 79, 49, 63, 66, 66, 54, 79, 48, 59, 68, 53, 83, 71, 61, 53, 68, 76, 65, 126, 66, 70, 68, 72, 55, 64, 66, 83, 85, 88, 94, 67, 76, 72, 67, 14, 53, 53, 73, 48, 93, 85, 61, 57, 70, 61, 55, 77, 60, 77, 64, 71, 67, 44, 58, 62, 88, 58, 51, 63, 50, 63, 58, 71, 59, 56, 61, 56, 53, 43, 79, 66, 72, 57, 58, 74, 72, 80, 48, 72, 56, 59, 76, 59, 50, 48, 73, 77, 53, 58, 88, 82, 72, 79, 46, 59, 60, 58, 67, 57, 59, 72, 60, 49, 69, 61, 59, 66, 70, 79, 40, 43, 70, 72, 49, 48, 58, 43, 75, 82, 42, 60, 76, 62, 63, 65, 52, 46, 75, 70, 70, 58, 59, 69, 79, 66, 68, 77, 61, 79, 59, 58, 56, 78, 65, 54, 66, 47, 54, 82, 68, 38, 58, 62, 75, 62, 69, 62, 66, 57, 61, 49, 113, 69, 99, 68, 100, 103, 59, 49, 59, 57, 86, 94, 72, 49, 55, 62, 49, 58, 58, 73, 59, 60, 67, 61, 59, 73, 68, 72, 58, 68, 55, 52, 79, 50, 51, 55, 59, 72, 67, 77, 56, 67, 68, 54, 60, 44, 62, 62, 77, 73, 70, 45, 51, 53, 68, 70, 88, 124, 41, 100, 89, 70, 57, 69, 62, 84, 48, 55, 59, 97, 53, 92, 51, 57, 81, 74, 61, 79, 54, 63, 37, 58, 75, 55, 79, 50, 52, 59, 47, 36, 55, 57, 64, 50, 80, 58, 91, 55, 90, 44, 75, 63, 49, 78, 66, 64, 53, 131, 56, 68, 72, 68, 69, 51, 66, 74, 71, 64, 50, 74, 66, 50, 50, 58, 64, 65, 76, 60, 70, 59, 63, 56, 69, 55, 52, 52, 63, 67, 62, 72, 58, 55, 75, 55, 65, 66, 57, 54, 61, 76, 77, 79, 72, 59, 56, 63, 52, 55, 59, 68, 55, 63, 81, 70, 68, 64, 82, 68, 68, 63, 113, 61, 69, 52, 55, 95, 70, 43, 66, 64, 59, 62, 57, 57, 77, 31, 61, 61, 77, 57, 51, 69, 52, 52, 62, 63, 68, 52, 57, 72, 53, 57, 73, 82, 53, 106, 73, 71, 71, 55, 70, 56, 63, 79, 70, 60, 61, 68, 68, 61, 98, 60, 67, 70, 76, 65, 59, 60, 53, 79, 53, 64, 69, 69, 42, 74, 61, 62, 50, 27, 69, 65, 51, 80, 52, 60, 63, 63, 64, 76, 67, 60, 48, 86, 77, 87, 83, 71, 73, 45, 82, 57, 56, 96, 59, 70, 60, 69, 56, 79, 57, 61, 70, 61, 68, 80, 70, 47, 74, 90, 58, 56, 73, 72, 55, 73, 64, 66, 67, 58, 44, 81, 79, 88, 59, 114, 90, 81, 58, 109, 58, 79, 117, 63, 60, 54, 67, 73, 92, 50, 56, 53, 81, 40, 132, 79, 51, 52, 88, 44, 64, 82, 68, 60, 71, 83, 51, 83, 65, 71, 116, 60, 59, 81, 34, 57, 48, 77, 62, 59, 68, 61, 70, 74, 54, 92, 58, 70, 46, 93, 59, 59, 79, 55, 76, 69, 80, 78, 52, 92, 82, 71, 69, 71, 74, 52, 69, 41, 51, 60, 61, 67, 66, 65, 62, 64, 53, 70, 67, 53, 103, 48, 62, 73, 54, 50, 56, 58, 71, 81, 60, 73, 75, 61, 65, 70, 83, 51, 64, 62, 53, 45, 82, 51, 86, 57, 53, 79, 72, 84, 67, 60, 128, 42, 54, 65, 70, 66, 37, 58, 98, 60, 55, 59, 63, 73, 46, 67, 66, 53, 65, 75, 68, 82, 81, 72, 65, 36, 67, 61, 72, 70, 72, 59, 71, 62, 61, 55, 51, 74, 56, 61, 85, 71, 61, 67, 76, 70, 42, 87, 86, 96, 54, 58, 81, 65, 64, 70, 48, 116, 72, 63, 62, 67, 64, 62, 69, 26, 67, 59, 55, 63, 65, 74, 86, 59, 52, 62, 46, 65, 67, 61, 63, 65, 85, 67, 67, 76, 67, 54, 65, 62, 62, 63, 67, 54, 64, 67, 80, 85, 61, 72, 55, 67, 62, 70, 48, 64, 55, 59, 64, 62, 56, 57, 82, 51, 62, 83, 56, 53, 47, 59, 77, 45, 50, 53, 70, 105, 84, 60, 91, 48, 65, 67, 65, 52, 48, 56, 46, 61, 64, 78, 72, 74, 70, 58, 81, 62, 45, 45, 68, 60, 51, 52, 72, 51, 71, 76, 61, 53, 83, 55, 57, 87, 68, 60, 74, 74, 77, 70, 72, 61, 60, 73, 72, 59, 69, 54, 64, 56, 60, 52, 62, 70, 49, 45, 60, 46, 66, 51, 59, 49, 70, 64, 74, 74, 77, 58, 43, 95, 92, 93, 53, 83, 48, 68, 52, 64, 62, 45, 58, 51, 56, 77, 62, 44, 38, 65, 73, 83, 58, 46, 58, 88, 57, 65, 62, 69, 63, 41, 63, 49, 76, 57, 62, 71, 60, 98, 55, 83, 78, 63, 95, 82, 78, 46, 65, 61, 62, 80, 66, 62, 50, 73, 58, 69, 57, 55, 64, 85, 87, 65, 53, 79, 76, 47, 71, 131, 81, 52, 49, 87, 78, 57, 79, 56, 68, 124, 78, 64, 69, 45, 65, 69, 73, 74, 44, 59, 62, 50, 57, 51, 101, 68, 68, 53, 52, 61, 120, 39, 53, 65, 67, 74, 77, 102, 47, 68, 62, 78, 80, 36, 51, 74, 67, 58, 60, 53, 53, 66, 49, 74, 60, 80, 87, 68, 62, 66, 54, 57, 71, 54, 71, 61, 63, 62, 65, 68, 49, 64, 97, 63, 50, 70, 86, 87, 73, 61, 74, 71, 56, 72, 72, 63, 80, 62, 61, 90, 48, 50, 56, 56, 73, 57, 68, 71, 70, 57, 50, 75, 58, 41, 64, 70, 66, 69, 88, 75, 58, 89, 73, 48, 51, 67, 82, 47, 56, 89, 56, 55, 78, 70, 54, 43, 101, 89, 60, 54, 79, 92, 79, 103, 61, 83, 88, 72, 64, 53, 77, 64, 56, 48, 52, 123, 72, 72, 65, 71, 54, 60, 52, 65, 50, 65, 84, 70, 68, 65, 79, 123, 67, 85, 66, 81, 63, 64, 130, 67, 56, 70, 54, 57, 52, 52, 78, 83, 85, 44, 65, 62, 58, 71, 67, 68, 60, 81, 85, 56, 74, 72, 80, 67, 63, 92, 82, 56, 67, 57, 70, 82, 61, 87, 58, 43, 66, 50, 51, 79, 59, 82, 61, 65, 70, 53, 35, 68, 57, 90, 60, 122, 69, 54, 55, 74, 75, 59, 71, 52, 50, 73, 73, 46, 56, 55, 55, 85, 79, 56, 77, 59, 62, 48, 73, 39, 68, 77, 68, 54, 80, 58, 54, 67, 63, 67, 54, 80, 71, 78, 66, 75, 55, 62, 53, 73, 91, 77, 39, 74, 76, 68, 51, 52, 67, 59, 109, 53, 55, 59, 68, 76, 58, 86, 94, 70, 53, 54, 79, 56, 69, 59, 77, 65, 81, 71, 52, 76, 69, 91, 70, 61, 58, 67, 41, 82, 66, 41, 101, 71, 57, 69, 71, 74, 40, 68, 58, 65, 57, 59, 68, 68, 74, 67, 126, 51, 65, 51, 70, 56, 60, 72, 62, 71, 74, 81, 43, 87, 66, 75, 57, 67, 64, 46, 70, 50, 52, 64, 75, 48, 55, 49, 74, 57, 56, 59, 58, 74, 82, 64, 76, 95, 97, 61, 58, 51, 72, 50, 78, 65, 77, 42, 65, 86, 74, 63, 86, 54, 67, 44, 49, 64, 93, 57, 115, 62, 66, 60, 72, 45, 99, 65, 67, 99, 50, 68, 69, 64, 106, 76, 70, 72, 72, 84, 42, 69, 49, 87, 70, 79, 61, 60, 42, 80, 64, 52, 71, 61, 76, 49, 59, 50, 68, 53, 55, 53, 69, 72, 54, 58, 60, 59, 63, 60, 57, 55, 54, 56, 49, 71, 46, 52, 84, 57, 54, 67, 59, 58, 66, 51, 73, 66, 126, 98, 77, 62, 55, 50, 63, 66, 54, 72, 78, 51, 61, 65, 72, 63, 52, 63, 65, 68, 44, 80, 49, 70, 55, 61, 74, 72, 63, 76, 70, 67, 61, 60, 59, 65, 62, 52, 62, 64, 54, 68, 96, 66, 47, 66, 67, 73, 58, 52, 72, 70, 70, 90, 58, 80, 75, 80, 80, 112, 53, 63, 66, 63, 58, 47, 77, 78, 60, 58, 65, 78, 103, 55, 50, 99, 55, 55, 87, 71, 107, 37, 111, 92, 47, 47, 50, 50, 60, 81, 70, 69, 49, 81, 60, 53, 62, 126, 90, 71, 50, 76, 79, 91, 63, 65, 57, 68, 56, 50, 63, 63, 98, 54, 66, 56, 60, 58, 62, 46, 157, 63, 48, 71, 57, 64, 56, 53, 57, 80, 47, 65, 72, 62, 57, 45, 90, 49, 76, 77, 55, 65, 46, 77, 80, 60, 63, 76, 59, 56, 47, 61, 66, 88, 50, 137, 107, 53, 86, 56, 68, 58, 67, 117, 53, 41, 74, 58, 59, 73, 60, 81, 60, 58, 70, 82, 105, 67, 58, 69, 50, 57, 49, 89, 57, 68, 77, 107, 62, 56, 40, 45, 55, 70, 84, 54, 60, 66, 71, 51, 55, 64, 60, 68, 63, 66, 39, 49, 60, 43, 49, 74, 62, 58, 51, 64, 58, 65, 50, 53, 84, 60, 82, 61, 63, 64, 56, 57, 56, 49, 82, 72, 77, 59, 65, 67, 51, 68, 48, 112, 73, 78, 63, 98, 69, 112, 53, 60, 56, 61, 43, 54, 62, 61, 65, 47, 45, 58, 80, 55, 77, 54, 83, 58, 60, 65, 51, 63, 66, 93, 43, 76, 69, 77, 43, 53, 54, 38, 53, 74, 57, 58, 63, 57, 65, 84, 94, 46, 52, 72, 80, 74, 82, 96, 46, 65, 43, 46, 69, 87, 90, 77, 73, 68, 50, 90, 72, 67, 37, 94, 61, 59, 67, 66, 75, 75, 54, 98, 50, 85, 78, 69, 64, 67, 89, 67, 51, 60, 86, 69, 61, 85, 70, 85, 63, 72, 75, 44, 74, 63, 55, 84, 48, 72, 52, 42, 70, 40, 73, 60, 66, 83, 64, 54, 55, 84, 84, 73, 54, 87, 77, 55, 53, 57, 62, 58, 88, 74, 48, 81, 65, 77, 39, 43, 55, 69, 68, 76, 75, 94, 58, 57, 65, 77, 74, 75, 53, 66, 60, 55, 75, 55, 48, 86, 63, 66, 73, 55, 50, 70, 51, 58, 70, 81, 59, 120, 55, 48, 62, 59, 62, 71, 68, 88, 72, 59, 74, 100, 90, 59, 48, 62, 69, 95, 61, 83, 82, 69, 62, 85, 60, 53, 56, 72, 85, 51, 51, 36, 69, 65, 73, 69, 103, 57, 70, 69, 56, 57, 80, 73, 51, 78, 59, 63, 75, 65, 56, 63, 58, 62, 65, 53, 65, 61, 77, 84, 47, 71, 80, 56, 91, 41, 64, 62, 64, 76, 62, 77, 59, 64, 66, 89, 57, 81, 56, 59, 56, 64, 80, 87, 80, 63, 66, 69, 74, 73, 95, 56, 53, 71, 58, 92, 82, 64, 64, 76, 59, 45, 61, 62, 46, 56, 45, 82, 111, 77, 64, 71, 55, 61, 63, 64, 41, 46, 63, 62, 73, 74, 62, 75, 58, 75, 62, 51, 73, 61, 116, 57, 71, 59, 71, 56, 64, 45, 59, 75, 92, 68, 77, 60, 63, 70, 86, 60, 119, 47, 68, 51, 87, 71, 52, 97, 49, 80, 39, 61, 66, 64, 40, 50, 71, 58, 42, 45, 54, 79, 73, 81, 57, 64, 48, 58, 79, 62, 48, 75, 70, 84, 56, 52, 69, 75, 69, 71, 52, 87, 72, 73, 33, 63, 56, 119, 106, 55, 69, 74, 73, 85, 36, 90, 57, 78, 58, 61, 51, 64, 83, 47, 61, 62, 70, 62, 78, 49, 102, 61, 73, 59, 85, 40, 56, 53, 53, 76, 63, 69, 80, 64, 38, 55, 60, 57, 66, 70, 68, 75, 71, 70, 80, 53, 69, 61, 89, 59, 66, 73, 50, 61, 78, 55, 44, 68, 92, 52, 66, 57, 49, 148, 79, 58, 77, 66, 53, 70, 54, 71, 82, 59, 71, 50, 76, 81, 125, 59, 58, 52, 61, 73, 92, 75, 87, 60, 48, 80, 46, 60, 76, 46, 68, 63, 68, 78, 61, 86, 69, 49, 93, 52, 70, 51, 62, 68, 106, 84, 72, 60, 53, 71, 68, 83, 64, 57, 65, 88, 65, 67, 73, 67, 89, 68, 92, 78, 55, 61, 62, 61, 68, 50, 86, 65, 82, 64, 78, 61, 50, 58, 58, 43, 50, 78, 68, 80, 65, 72, 76, 64, 51, 51, 87, 63, 67, 45, 67, 62, 66, 43, 49, 69, 72, 59, 40, 63, 98, 53, 79, 68, 81, 45, 49, 71, 69, 59, 64, 82, 57, 70, 79, 88, 100, 41, 90, 54, 84, 62, 62, 55, 61, 50, 66, 66, 35, 68, 90, 54, 49, 79, 92, 79, 50, 69, 54, 51, 57, 64, 70, 52, 65, 64, 77, 93, 71, 92, 63, 69, 40, 81, 49, 68, 53, 84, 66, 54, 58, 85, 48, 65, 52, 47, 75, 66, 55, 58, 65, 56, 82, 57, 46, 56, 68, 70, 54, 51, 68, 63, 68, 62, 64, 35, 75, 75, 58, 60, 71, 63, 63, 64, 58, 76, 76, 50, 72, 62, 64, 64, 82, 80, 63, 66, 73, 54, 51, 51, 71, 49, 55, 81, 68, 73, 47, 71, 95, 52, 69, 93, 57, 53, 62, 90, 96, 44, 77, 65, 62, 56, 58, 56, 60, 74, 59, 58, 66, 59, 68, 59, 56, 55, 52, 77, 66, 57, 74, 50, 105, 64, 72, 67, 67, 78, 64, 88, 83, 63, 65, 78, 51, 68, 62, 73, 60, 41, 69, 70, 71, 43, 75, 76, 62, 82, 81, 43, 85, 73, 66, 96, 54, 52, 88, 78, 65, 56, 76, 60, 45, 96, 60, 57, 53, 74, 72, 47, 57, 49, 108, 72, 63, 95, 71, 47, 67, 67, 73, 78, 54, 56, 95, 30, 61, 57, 63, 59, 84, 44, 65, 69, 88, 63, 56, 46, 59, 59, 53, 59, 71, 63, 82, 77, 57, 56, 71, 59, 60, 60, 61, 75, 67, 111, 50, 56, 73, 68, 53, 55, 67, 51, 33, 57, 91, 64, 78, 63, 53, 62, 63, 96, 50, 63, 71, 68, 58, 43, 67, 72, 86, 63, 55, 54, 76, 67, 67, 63, 69, 55, 48, 49, 61, 67, 59, 85, 53, 63, 87, 65, 61, 45, 77, 67, 62, 54, 57, 86, 78, 50, 53, 73, 56, 57, 86, 54, 82, 58, 65, 64, 73, 67, 61, 52, 70, 77, 61, 73, 73, 67, 49, 40, 65, 59, 62, 83, 81, 50, 49, 59, 60, 85, 80, 55, 81, 80, 74, 99, 61, 50, 60, 88, 59, 60, 47, 73, 60, 65, 73, 62, 93, 89, 52, 85, 77, 60, 43, 83, 91, 79, 58, 53, 55, 54, 51, 57, 61, 91, 67, 55, 65, 51, 38, 59, 60, 68, 79, 75, 55, 54, 93, 80, 53, 57, 63, 46, 67, 56, 71, 64, 64, 73, 66, 56, 61, 51, 74, 61, 53, 113, 65, 65, 44, 91, 55, 44, 124, 57, 59, 74, 50, 85, 74, 74, 74, 80, 92, 83, 77, 102, 63, 65, 93, 77, 80, 72, 72, 67, 65, 69, 75, 76, 62, 91, 63, 53, 51, 76, 56, 90, 65, 43, 58, 43, 50, 73, 64, 80, 58, 61, 61, 67, 53, 59, 59, 60, 70, 61, 68, 71, 44, 72, 58, 45, 59, 62, 67, 54, 82, 57, 81, 41, 100, 79, 52, 66, 75, 54, 70, 58, 64, 63, 60, 54, 43, 90, 83, 68, 64, 49, 48, 80, 71, 54, 66, 49, 57, 55, 52, 65, 85, 67, 78, 61, 74, 66, 70, 56, 52, 105, 45, 66, 81, 83, 72, 68, 41, 57, 62, 38, 97, 82, 85, 54, 59, 39, 88, 51, 65, 59, 49, 77, 52, 60, 54, 64, 79, 58, 71, 95, 70, 72, 38, 68, 81, 74, 67, 57, 81, 61, 67, 64, 79, 58, 60, 104, 63, 94, 58, 63, 80, 81, 67, 41, 70, 81, 82, 59, 101, 56, 71, 55, 101, 52, 71, 83, 85, 50, 83, 71, 44, 65, 74, 64, 84, 59, 44, 55, 81, 57, 72, 50, 63, 61, 60, 58, 82, 53, 66, 57, 44, 73, 90, 70, 82, 41, 63, 81, 61, 56, 80, 76, 54, 62, 60, 58, 85, 55, 89, 79, 72, 67, 70, 52, 52, 43, 72, 53, 67, 38, 100, 59, 59, 61, 87, 59, 71, 62, 72, 65, 82, 73, 60, 74, 49, 57, 61, 70, 89, 53, 68, 53, 67, 73, 67, 67, 73, 68, 53, 75, 65, 106, 61, 62, 62, 62, 72, 55, 52, 64, 63, 61, 60, 68, 72, 59, 82, 59, 70, 59, 102, 53, 47, 80, 58, 55, 78, 66, 75, 72, 80, 94, 57, 54, 64, 71, 85, 80, 65, 62, 45, 59, 85, 64, 58, 144, 73, 62, 56, 81, 73, 77, 75, 50, 64, 65, 68, 72, 82, 56, 74, 52, 74, 55, 66, 55, 69, 57, 72, 93, 63, 73, 59, 59, 62, 77, 68, 62, 63, 67, 66, 61, 53, 79, 119, 78, 61, 62, 61, 50, 60, 76, 62, 79, 94, 81, 55, 47, 80, 75, 62, 87, 77, 63, 66, 67, 62, 56, 58, 58, 88, 56, 63, 59, 96, 57, 55, 60, 66, 60, 67, 50, 69, 76, 45, 67, 60, 59, 55, 68, 78, 63, 85, 66, 61, 78, 73, 76, 125, 62, 55, 54, 61, 65, 56, 52, 56, 51, 63, 73, 57, 67, 91, 60, 65, 81, 71, 63, 67, 57, 89, 80, 54, 74, 70, 76, 79, 85, 68, 68, 57, 70, 65, 97, 61, 80, 54, 75, 81, 87, 56, 65, 63, 79, 56, 57, 68, 50, 29, 73, 56, 63, 45, 85, 78, 59, 67, 59, 80, 75, 35, 57, 56, 72, 79, 82, 59, 79, 49, 73, 62, 69, 99, 46, 80, 69, 90, 96, 57, 90, 67, 68, 63, 59, 53, 69, 70, 72, 76, 75, 62, 49, 60, 65, 57, 66, 70, 37, 65, 77, 78, 60, 61, 68, 72, 76, 72, 46, 74, 39, 67, 78, 79, 67, 54, 69, 69, 58, 52, 60, 66, 65, 66, 84, 73, 44, 43, 47, 78, 64, 64, 69, 57, 61, 58, 60, 67, 64, 69, 61, 68, 56, 64, 59, 53, 56, 77, 54, 50, 62, 63, 71, 75, 59, 71, 76, 58, 68, 47, 48, 74, 71, 58, 35, 67, 69, 65, 69, 63, 70, 69, 70, 54, 81, 48, 64, 126, 71, 28, 50, 64, 73, 121, 57, 58, 50, 55, 66, 64, 45, 54, 65, 75, 91, 72, 72, 53, 41, 83, 72, 73, 65, 59, 66, 42, 57, 117, 66, 78, 61, 81, 52, 66, 58, 63, 74, 54, 63, 75, 78, 67, 61, 67, 80, 58, 73, 59, 67, 51, 77, 54, 71, 72, 61, 60, 65, 54, 56, 97, 53, 66, 56, 63, 41, 65, 61, 80, 69, 55, 85, 78, 64, 58, 67, 63, 45, 44, 49, 81, 59, 65, 63, 89, 61, 64, 61, 58, 65, 51, 60, 66, 71, 73, 56, 88, 69, 65, 51, 66, 56, 66, 55, 50, 56, 81, 49, 52, 59, 66, 48, 54, 69, 65, 73, 71, 71, 63, 59, 35, 58, 66, 59, 78, 80, 62, 73, 53, 66, 52, 83, 52, 58, 81, 67, 65, 55, 60, 74, 92, 68, 89, 79, 67, 56, 64, 89, 48, 56, 76, 55, 77, 55, 65, 62, 58, 72, 72, 61, 75, 69, 62, 58, 59, 58, 67, 56, 73, 59, 72, 72, 64, 59, 72, 67, 54, 48, 61, 58, 42, 69, 58, 79, 60, 75, 66, 64, 57, 60, 68, 73, 99, 56, 56, 77, 59, 51, 72, 92, 57, 72, 52, 74, 64, 61, 94, 63, 75, 77, 60, 54, 77, 51, 63, 63, 73, 64, 63, 59, 55, 59, 69, 55, 73, 65, 70, 54, 72, 50, 79, 57, 59, 62, 67, 56, 63, 67, 68, 76, 60, 59, 63, 78, 65, 61, 61, 88, 54, 118, 85, 67, 57, 47, 74, 52, 53, 79, 50, 76, 71, 100, 69, 62, 80, 54, 64, 81, 60, 56, 55, 101, 58, 56, 50, 52, 49, 62, 64, 56, 56, 51, 60, 115, 60, 50, 88, 73, 81, 71, 53, 65, 81, 60, 53, 70, 68, 73, 82, 72, 50, 96, 58, 69, 58, 80, 52, 70, 69, 57, 52, 45, 56, 70, 59, 86, 62, 61, 65, 58, 91, 65, 54, 66, 84, 51, 53, 67, 68, 56, 83, 60, 64, 65, 27, 65, 58, 67, 53, 73, 75, 109, 54, 56, 74, 87, 65, 70, 65, 57, 58, 44, 64, 51, 69, 56, 44, 70, 75, 67, 77, 71, 58, 69, 57, 86, 66, 50, 64, 57, 57, 74, 76, 73, 43, 59, 68, 53, 97, 63, 60, 52, 77, 61, 62, 76, 98, 71, 55, 66, 63, 60, 68, 63, 74, 67, 65, 59, 60, 53, 45, 60, 65, 60, 64, 66, 58, 78, 62, 59, 68, 62, 93, 74, 56, 60, 61, 59, 64, 78, 61, 72, 56, 69, 68, 69, 56, 69, 78, 64, 57, 45, 78, 69, 64, 61, 75, 65, 61, 79, 56, 73, 71, 66, 58, 84, 61, 63, 60, 57, 42, 54, 87, 74, 60, 69, 66, 66, 46, 89, 65, 51, 57, 58, 60, 67, 62, 78, 81, 55, 61, 80, 60, 67, 70, 54, 68, 54, 59, 80, 54, 135, 68, 76, 62, 85, 63, 72, 81, 114, 75, 90, 65, 147, 57, 68, 66, 70, 68, 60, 58, 45, 74, 69, 63, 72, 62, 53, 74, 76, 71, 55, 66, 75, 73, 67, 72, 42, 46, 79, 81, 56, 61, 77, 60, 77, 61, 59, 50, 61, 59, 61, 69, 61, 68, 62, 77, 66, 76, 51, 66, 59, 64, 78, 60, 63, 66, 44, 53, 56, 73, 82, 53, 47, 79, 64, 64, 90, 73, 54, 48, 58, 63, 72, 76, 68, 54, 64, 65, 72, 48, 54, 71, 59, 56, 74, 67, 77, 64, 70, 79, 57, 67, 74, 73, 78, 41, 84, 42, 54, 69, 72, 65, 63, 61, 72, 67, 79, 67, 45, 55, 63, 83, 71, 42, 55, 64, 100, 71, 69, 66, 69, 56, 60, 59, 58, 53, 63, 49, 94, 91, 52, 76, 51, 67, 76, 59, 55, 79, 83, 60, 109, 49, 60, 46, 54, 52, 73, 74, 50, 54, 70, 62, 89, 66, 78, 63, 80, 76, 65, 87, 49, 89, 50, 52, 69, 67, 47, 76, 62, 71, 67, 48, 73, 60, 61, 55, 70, 68, 61, 78, 46, 46, 67, 67, 69, 60, 61, 74, 71, 44, 78, 92, 57, 74, 58, 76, 65, 85, 111, 37, 96, 38, 51, 94, 73, 60, 61, 67, 51, 83, 79, 137, 75, 77, 83, 61, 45, 64, 96, 53, 60, 65, 73, 82, 56, 35, 60, 95, 54, 52, 72, 40, 74, 67, 58, 60, 67, 56, 41, 74, 49, 67, 90, 67, 60, 79, 64, 69, 96, 39, 90, 64, 29, 63, 53, 60, 75, 72, 91, 45, 61, 68, 74, 55, 54, 109, 63, 53, 58, 92, 105, 51, 39, 82, 101, 77, 76, 77, 92, 66, 44, 55, 77, 48, 51, 64, 51, 99, 65, 60, 52, 47, 62, 61, 78, 71, 54, 87, 48, 91, 72, 90, 71, 65, 79, 82, 55, 87, 119, 121, 92, 39, 56, 68, 52, 82, 64, 60, 84, 76, 69, 47, 53, 69, 70, 57, 44, 68, 35, 83, 65, 85, 76, 81, 63, 54, 58, 82, 109, 67, 67, 73, 75, 64, 46, 81, 88, 61, 46, 84, 50, 89, 62, 114, 56, 95, 73, 70, 79, 47, 64, 51, 60, 63, 56, 67, 61, 64, 101, 70, 55, 57, 96, 62, 58, 97, 47, 97, 43, 48, 67, 57, 60, 59, 81, 71, 61, 54, 84, 75, 88, 62, 45, 53, 68, 103, 80, 67, 55, 91, 80, 52, 88, 74, 51, 56, 46, 65, 81, 75, 82, 70, 48, 49, 74, 84, 44, 55, 77, 71, 73, 41, 74, 75, 51, 89, 70, 64, 94, 58, 53, 105, 43, 40, 47, 67, 72, 54, 65, 54, 53, 86, 82, 44, 66, 49, 102, 55, 83, 69, 51, 72, 66, 65, 61, 50, 72, 65, 59, 87, 55, 58, 75, 44, 60, 55, 48, 76, 82, 120, 111, 51, 60, 83, 69, 41, 79, 110, 90, 81, 59, 53, 61, 58, 80, 90, 44, 84, 57, 77, 47, 62, 70, 59, 61, 77, 68, 66, 72, 65, 62, 84, 99, 63, 69, 64, 38, 68, 86, 72, 59, 72, 73, 56, 86, 79, 74, 87, 68, 61, 76, 51, 101, 59, 64, 56, 69, 86, 64, 51, 74, 69, 66, 59, 58, 53, 68, 77, 81, 59, 56, 61, 69, 70, 62, 75, 62, 71, 72, 72, 82, 56, 59, 77, 106, 65, 55, 56, 67, 39, 55, 74, 75, 81, 56, 74, 57, 69, 57, 67, 81, 63, 70, 98, 46, 55, 63, 69, 65, 86, 56, 73, 53, 68, 67, 56, 67, 40, 64, 60, 59, 74, 72, 46, 74, 56, 58, 94, 54, 63, 84, 56, 67, 49, 85, 58, 57, 68, 66, 97, 52, 65, 84, 58, 89, 56, 99, 56, 105, 83, 67, 78, 73, 64, 76, 90, 82, 74, 66, 60, 60, 63, 55, 80, 45, 66, 65, 52, 80, 97, 69, 34, 69, 70, 40, 71, 57, 64, 54, 84, 58, 91, 75, 65, 63, 41, 62, 76, 78, 74, 54, 70, 48, 70, 55, 73, 73, 66, 82, 73, 57, 54, 48, 78, 52, 46, 81, 73, 81, 78, 98, 62, 75, 102, 83, 83, 56, 64, 62, 62, 75, 83, 102, 54, 91, 69, 64, 71, 76, 135, 81, 62, 81, 71, 60, 44, 65, 43, 53, 60, 62, 75, 62, 77, 98, 81, 55, 74, 57, 52, 57, 65, 83, 68, 76, 80, 59, 62, 87, 60, 40, 56, 77, 62, 100, 52, 74, 55, 46, 74, 60, 60, 77, 80, 57, 99, 51, 53, 92, 56, 86, 76, 65, 70, 58, 75, 47, 64, 96, 77, 56, 30, 70, 48, 82, 78, 64, 51, 66, 43, 86, 62, 49, 62, 54, 55, 69, 72, 59, 46, 76, 45, 47, 62, 50, 70, 62, 89, 62, 54, 43, 52, 65, 49, 66, 49, 92, 54, 45, 68, 82, 27, 59, 72, 69, 73, 34, 66, 58, 57, 55, 40, 71, 50, 77, 79, 51, 67, 85, 43, 55, 62, 57, 83, 58, 124, 64, 58, 70, 58, 58, 71, 62, 97, 79, 56, 76, 70, 54, 60, 112, 75, 44, 54, 31, 66, 93, 64, 63, 53, 76, 89, 55, 76, 84, 50, 66, 88, 44, 46, 47, 55, 58, 53, 70, 45, 37, 59, 75, 41, 54, 54, 77, 63, 77, 82, 64, 75, 75, 66, 42, 70, 49, 50, 72, 57, 100, 71, 59, 54, 64, 89, 68, 69, 60, 77, 78, 90, 73, 79, 86, 83, 60, 58, 79, 50, 51, 88, 67, 65, 61, 52, 65, 54, 43, 64, 87, 73, 48, 68, 66, 42, 86, 83, 128, 84, 55, 82, 59, 44, 59, 65, 50, 87, 86, 81, 78, 70, 48, 57, 65, 86, 81, 54, 57, 41, 67, 44, 85, 63, 53, 54, 66, 67, 47, 41, 60, 42, 42, 39, 75, 100, 56, 40, 71, 66, 105, 85, 50, 67, 58, 70, 55, 84, 58, 67, 84, 72, 61, 56, 59, 67, 52, 75, 60, 60, 69, 78, 53, 64, 67, 75, 93, 59, 64, 100, 78, 70, 67, 94, 72, 59, 93, 97, 63, 69, 77, 59, 60, 48, 80, 62, 81, 75, 41, 51, 66, 40, 56, 53, 105, 80, 63, 69, 51, 64, 69, 60, 63, 97, 41, 58, 67, 76, 91, 60, 51, 55, 62, 81, 51, 56, 69, 64, 82, 67, 53, 74, 64, 56, 70, 45, 56, 106, 78, 41, 60, 69, 74, 83, 43, 103, 61, 60, 96, 71, 61, 68, 88, 61, 61, 28, 65, 62, 68, 54, 51, 52, 61, 57, 41, 67, 87, 83, 65, 60, 58, 56, 64, 40, 81, 72, 79, 55, 69, 36, 69, 64, 70, 46, 75, 68, 61, 67, 62, 69, 75, 101, 59, 60, 72, 63, 68, 109, 67, 64, 43, 53, 77, 63, 80, 68, 47, 82, 40, 64, 34, 46, 56, 67, 62, 59, 75, 74, 89, 57, 44, 59, 67, 75, 69, 74, 71, 56, 56, 55, 50, 60, 42, 57, 51, 61, 71, 59, 60, 53, 43, 48, 57, 79, 61, 77, 47, 59, 62, 61, 73, 45, 66, 75, 63, 51, 88, 77, 70, 72, 71, 97, 53, 72, 62, 47, 56, 35, 55, 60, 81, 67, 63, 35, 61, 72, 51, 67, 70, 62, 66, 68, 58, 56, 74, 85, 73, 67, 69, 61, 42, 69, 56, 60, 54, 119, 58, 59, 54, 63, 61, 60, 76, 39, 60, 76, 67, 90, 62, 53, 51, 66, 98, 61, 78, 82, 71, 61, 51, 65, 53, 74, 70, 47, 96, 74, 37, 61, 61, 183, 80, 73, 60, 80, 62, 65, 81, 68, 72, 60, 86, 70, 64, 52, 78, 60, 38, 52, 69, 42, 54, 66, 64, 71, 49, 68, 70, 61, 67, 100, 60, 59, 66, 77, 70, 70, 80, 51, 69, 82, 64, 75, 54, 53, 71, 70, 58, 87, 69, 53, 76, 69, 69, 82, 90, 66, 96, 70, 52, 76, 67, 88, 57, 46, 66, 77, 61, 74, 70, 66, 70, 55, 84, 65, 100, 56, 50, 43, 64, 63, 51, 79, 72, 89, 43, 53, 58, 67, 86, 58, 75, 66, 45, 52, 73, 59, 60, 78, 87, 71, 81, 70, 77, 52, 111, 106, 60, 67, 54, 95, 48, 56, 38, 52, 43, 51, 54, 59, 62, 67, 60, 84, 81, 83, 57, 57, 71, 81, 74, 76, 78, 58, 62, 87, 65, 43, 55, 75, 53, 53, 64, 47, 49, 72, 65, 41, 71, 48, 47, 65, 54, 74, 66, 41, 75, 59, 75, 45, 60, 69, 51, 83, 63, 65, 78, 79, 55, 86, 49, 81, 80, 111, 57, 71, 57, 75, 61, 46, 54, 72, 61, 73, 73, 87, 59, 72, 63, 66, 85, 73, 60, 66, 50, 49, 82, 44, 85, 59, 66, 79, 69, 62, 59, 65, 62, 59, 53, 56, 79, 78, 61, 63, 41, 82, 78, 69, 61, 63, 68, 52, 77, 84, 73, 76, 54, 53, 117, 98, 119, 75, 60, 73, 57, 73, 46, 51, 51, 61, 43, 70, 89, 80, 55, 52, 66, 67, 49, 88, 77, 70, 70, 57, 49, 59, 78, 64, 36, 82, 37, 64, 73, 74, 59, 63, 76, 60, 93, 63, 60, 61, 52, 97, 55, 60, 70, 55, 69, 74, 76, 70, 80, 62, 57, 56, 53, 57, 56, 44, 88, 46, 51, 61, 84, 60, 78, 76, 69, 73, 55, 88, 110, 70, 53, 49, 64, 70, 89, 39, 44, 63, 70, 77, 53, 73, 82, 54, 65, 66, 61, 66, 72, 65, 90, 43, 67, 64, 60, 66, 70, 84, 40, 53, 54, 59, 77, 83, 42, 64, 94, 52, 90, 62, 51, 58, 72, 71, 83, 68, 79, 51, 60, 73, 70, 57, 84, 67, 63, 77, 76, 48, 83, 52, 76, 53, 59, 54, 52, 57, 41, 82, 79, 78, 60, 70, 77, 54, 66, 71, 69, 54, 85, 65, 58, 66, 78, 69, 71, 57, 67, 60, 93, 61, 74, 57, 55, 65, 77, 45, 63, 71, 55, 79, 61, 73, 62, 78, 74, 54, 61, 70, 73, 112, 70, 63, 84, 62, 90, 84, 62, 56, 92, 54, 62, 62, 67, 63, 65, 47, 62, 53, 82, 62, 66, 75, 76, 65, 60, 80, 47, 62, 64, 82, 59, 68, 66, 66, 59, 58, 67, 50, 60, 57, 31, 72, 61, 69, 67, 63, 65, 64, 68, 60, 72, 66, 86, 59, 51, 62, 94, 60, 47, 65, 59, 70, 65, 55, 88, 59, 85, 64, 70, 70, 50, 49, 86, 57, 67, 77, 47, 64, 36, 73, 76, 66, 83, 58, 69, 74, 70, 86, 57, 52, 47, 61, 45, 87, 62, 57, 75, 83, 55, 66, 74, 59, 61, 76, 54, 68, 65, 97, 51, 54, 81, 61, 67, 64, 84, 93, 87, 58, 64, 54, 67, 65, 49, 94, 59, 50, 56, 46, 80, 70, 83, 71, 54, 62, 66, 72, 75, 64, 70, 151, 69, 53, 57, 65, 57, 56, 49, 75, 57, 73, 48, 60, 41, 69, 78, 65, 74, 56, 73, 52, 70, 65, 70, 84, 44, 88, 62, 67, 66, 79, 74, 54, 57, 56, 73, 71, 60, 118, 50, 66, 43, 80, 66, 57, 53, 61, 64, 65, 60, 90, 72, 88, 64, 71, 61, 56, 62, 70, 81, 53, 71, 40, 62, 73, 65, 49, 87, 64, 58, 65, 74, 84, 62, 45, 66, 80, 43, 62, 71, 57, 54, 70, 67, 71, 75, 100, 88, 60, 50, 109, 47, 80, 102, 57, 55, 77, 84, 64, 56, 74, 74, 55, 73, 77, 88, 54, 58, 56, 59, 53, 65, 54, 58, 54, 80, 71, 58, 45, 63, 62, 83, 59, 63, 69, 60, 67, 62, 54, 97, 69, 78, 68, 68, 82, 50, 52, 72, 69, 54, 59, 71, 46, 69, 45, 71, 90, 67, 64, 79, 80, 73, 50, 49, 53, 58, 67, 59, 71, 41, 91, 61, 87, 82, 64, 64, 31, 71, 61, 49, 62, 57, 39, 59, 88, 59, 62, 50, 37, 53, 63, 65, 83, 68, 65, 54, 47, 56, 49, 53, 72, 63, 69, 65, 67, 74, 89, 66, 44, 55, 73, 67, 46, 65, 62, 56, 47, 73, 61, 81, 51, 84, 82, 35, 79, 69, 47, 54, 86, 62, 71, 56, 67, 72, 77, 64, 85, 43, 75, 69, 54, 51, 74, 68, 60, 76, 68, 55, 79, 82, 77, 86, 54, 61, 45, 74, 64, 50, 70, 51, 67, 90, 82, 65, 48, 73, 47, 90, 100, 63, 60, 77, 87, 63, 114, 59, 63, 75, 70, 47, 58, 55, 44, 122, 69, 67, 49, 46, 38, 82, 69, 57, 66, 63, 80, 56, 41, 75, 57, 64, 64, 71, 60, 77, 72, 70, 69, 71, 82, 77, 59, 85, 52, 93, 45, 53, 78, 67, 83, 85, 76, 37, 54, 43, 81, 58, 72, 64, 66, 53, 71, 73, 58, 62, 70, 80, 74, 71, 68, 65, 82, 48, 83, 56, 87, 61, 79, 52, 59, 59, 78, 76, 54, 75, 69, 56, 53, 92, 71, 55, 57, 40, 58, 72, 62, 67, 51, 61, 61, 68, 57, 62, 59, 83, 68, 77, 75, 48, 85, 84, 64, 53, 88, 56, 73, 54, 67, 55, 50, 64, 81, 94, 64, 78, 55, 50, 76, 53, 80, 51, 78, 125, 56, 70, 54, 72, 52, 41, 76, 60, 73, 88, 71, 49, 52, 40, 72, 69, 47, 52, 78, 79, 62, 89, 65, 56, 36, 74, 78, 68, 44, 68, 70, 56, 78, 112, 65, 64, 73, 60, 61, 43, 96, 102, 78, 72, 42, 57, 50, 63, 65, 61, 94, 60, 65, 79, 56, 68, 75, 65, 70, 80, 59, 52, 76, 55, 70, 60, 90, 75, 60, 52, 67, 55, 53, 77, 55, 68, 80, 66, 63, 57, 67, 47, 57, 147, 74, 69, 50, 69, 56, 43, 67, 60, 51, 57, 75, 64, 62, 44, 58, 69, 62, 54, 98, 65, 26, 109, 51, 68, 70, 50, 86, 68, 79, 88, 89, 57, 64, 51, 94, 71, 71, 61, 67, 67, 75, 68, 78, 79, 58, 62, 71, 60, 70, 63, 79, 58, 57, 68, 78, 37, 74, 94, 105, 51, 74, 80, 82, 70, 58, 56, 65, 86, 56, 73, 76, 73, 59, 46, 57, 63, 61, 76, 62, 51, 48, 71, 84, 59, 38, 34, 68, 64, 76, 72, 73, 98, 70, 65, 52, 67, 53, 55, 80, 61, 87, 54, 62, 72, 64, 77, 51, 46, 71, 71, 35, 65, 89, 49, 68, 60, 75, 55, 63, 50, 74, 54, 77, 96, 58, 64, 85, 68, 67, 79, 52, 57, 60, 69, 37, 59, 52, 52, 63, 65, 44, 71, 74, 63, 64, 50, 58, 115, 56, 58, 57, 56, 57, 67, 59, 65, 54, 56, 88, 69, 70, 79, 59, 53, 59, 97, 89, 40, 58, 64, 62, 79, 73, 46, 75, 65, 67, 87, 75, 62, 54, 63, 63, 52, 47, 62, 68, 62, 43, 61, 67, 62, 67, 69, 55, 62, 89, 55, 49, 46, 76, 65, 55, 121, 66, 65, 64, 50, 57, 63, 50, 58, 51, 42, 45, 68, 54, 51, 58, 89, 58, 59, 74, 67, 76, 67, 64, 67, 56, 59, 65, 83, 85, 103, 79, 57, 57, 70, 83, 54, 49, 70, 80, 56, 79, 53, 158, 72, 67, 67, 57, 66, 45, 58, 73, 49, 71, 76, 57, 91, 59, 71, 54, 51, 61, 50, 64, 66, 72, 62, 54, 71, 59, 68, 71, 60, 44, 84, 61, 84, 62, 74, 59, 68, 80, 54, 56, 67, 57, 77, 113, 56, 48, 68, 42, 101, 60, 52, 58, 78, 61, 65, 92, 67, 49, 48, 81, 55, 71, 67, 63, 69, 71, 62, 71, 70, 57, 68, 77, 93, 60, 49, 69, 58, 64, 72, 68, 44, 69, 56, 58, 54, 78, 51, 115, 46, 56, 79, 93, 45, 69, 52, 70, 103, 91, 76, 56, 32, 63, 53, 50, 101, 96, 64, 41, 43, 80, 66, 70, 77, 56, 46, 70, 87, 68, 41, 48, 71, 63, 52, 69, 58, 51, 70, 77, 64, 82, 67, 55, 92, 57, 98, 87, 69, 63, 59, 72, 64, 57, 75, 66, 47, 64, 59, 60, 54, 60, 71, 77, 70, 71, 69, 66, 86, 69, 59, 53, 72, 84, 49, 54, 73, 71, 44, 62, 55, 77, 66, 62, 64, 69, 79, 67, 53, 53, 67, 56, 85, 62, 75, 75, 45, 65, 66, 45, 53, 51, 70, 61, 60, 59, 58, 68, 39, 59, 50, 80, 71, 88, 56, 106, 119, 77, 48, 78, 55, 76, 75, 60, 50, 52, 59, 76, 57, 64, 95, 36, 66, 68, 58, 67, 58, 76, 72, 61, 71, 78, 59, 56, 71, 64, 51, 39, 71, 72, 64, 68, 52, 42, 62, 63, 61, 63, 55, 76, 59, 73, 54, 66, 61, 71, 72, 82, 56, 62, 64, 73, 66, 55, 95, 61, 81, 65, 62, 77, 68, 54, 94, 60, 87, 59, 60, 58, 67, 70, 56, 62, 53, 64, 80, 80, 83, 90, 57, 61, 80, 58, 77, 82, 59, 51, 59, 59, 62, 77, 47, 79, 72, 59, 73, 40, 68, 61, 71, 67, 69, 47, 71, 98, 57, 69, 58, 65, 78, 74, 55, 67, 77, 75, 53, 65, 62, 76, 78, 56, 53, 53, 74, 77, 55, 69, 65, 60, 41, 54, 57, 80, 82, 81, 83, 62, 56, 88, 65, 56, 68, 67, 58, 66, 75, 42, 46, 83, 68, 71, 38, 62, 79, 63, 47, 64, 50, 65, 84, 66, 50, 42, 55, 60, 73, 72, 64, 52, 70, 86, 53, 53, 73, 64, 68, 74, 49, 66, 54, 73, 65, 89, 52, 58, 84, 59, 45, 81, 69, 72, 67, 56, 59, 79, 61, 63, 88, 78, 73, 62, 78, 52, 65, 61, 99, 65, 91, 66, 71, 78, 76, 49, 75, 60, 52, 60, 62, 66, 45, 64, 121, 66, 84, 68, 63, 77, 68, 53, 87, 63, 57, 49, 64, 50, 58, 71, 68, 49, 64, 75, 73, 69, 75, 52, 76, 58, 62, 43, 73, 73, 76, 56, 53, 78, 80, 66, 59, 85, 67, 45, 76, 57, 86, 77, 72, 81, 56, 80, 56, 68, 47, 57, 61, 44, 80, 65, 81, 68, 56, 51, 63, 70, 107, 56, 76, 76, 64, 68, 41, 65, 39, 69, 42, 60, 67, 100, 77, 107, 60, 75, 58, 79, 87, 80, 73, 76, 49, 54, 66, 55, 53, 67, 66, 61, 48, 62, 87, 92, 77, 83, 68, 51, 90, 67, 71, 58, 76, 61, 53, 84, 65, 68, 73, 49, 82, 59, 92, 89, 62, 77, 71, 67, 66, 68, 60, 49, 33, 70, 48, 66, 63, 63, 52, 63, 61, 85, 66, 68, 77, 80, 53, 55, 70, 50, 70, 166, 54, 62, 65, 60, 60, 55, 92, 66, 62, 59, 85, 84, 83, 85, 71, 77, 40, 90, 58, 72, 49, 56, 72, 69, 60, 61, 64, 78, 72, 93, 79, 76, 53, 66, 79, 51, 66, 117, 56, 63, 76, 95, 61, 76, 87, 86, 57, 63, 60, 66, 64, 67, 62, 79, 44, 56, 75, 79, 35, 72, 59, 69, 57, 70, 95, 65, 67, 50, 75, 59, 54, 70, 54, 86, 78, 75, 54, 53, 46, 63, 76, 79, 60, 70, 60, 47, 77, 47, 78, 73, 69, 66, 59, 59, 63, 64, 68, 69, 74, 76, 59, 54, 46, 95, 91, 37, 85, 65, 75, 62, 76, 74, 74, 71, 54, 74, 79, 65, 54, 78, 67, 50, 45, 87, 81, 96, 110, 64, 76, 68, 90, 63, 38, 70, 52, 85, 84, 60, 57, 53, 69, 63, 91, 48, 68, 61, 50, 65, 69, 58, 75, 69, 66, 56, 58, 60, 52, 78, 72, 48, 68, 85, 50, 60, 69, 66, 63, 43, 67, 67, 102, 56, 67, 53, 56, 58, 61, 74, 59, 67, 72, 58, 78, 56, 61, 70, 71, 76, 64, 49, 43, 65, 59, 57, 67, 67, 59, 61, 56, 61, 70, 46, 79, 65, 85, 70, 57, 57, 71, 72, 70, 61, 53, 72, 81, 46, 89, 58, 53, 61, 69, 43, 48, 60, 90, 66, 46, 55, 57, 74, 61, 71, 63, 76, 68, 57, 82, 86, 75, 70, 54, 82, 74, 69, 49, 79, 60, 75, 63, 64, 60, 73, 81, 69, 65, 70, 60, 49, 44, 66, 85, 65, 67, 67, 77, 72, 54, 57, 71, 81, 54, 85, 84, 59, 68, 78, 49, 69, 112, 71, 43, 66, 62, 74, 63, 58, 80, 110, 66, 71, 66, 71, 59, 60, 55, 67, 58, 75, 39, 66, 87, 63, 125, 59, 70, 63, 67, 52, 81, 62, 61, 58, 36, 70, 55, 55, 72, 83, 65, 73, 76, 73, 51, 46, 62, 63, 70, 68, 68, 59, 67, 73, 89, 95, 112, 72, 71, 54, 47, 93, 67, 36, 87, 59, 89, 51, 58, 75, 37, 66, 47, 56, 50, 69, 63, 67, 60, 62, 50, 57, 66, 59, 70, 61, 62, 61, 52, 54, 103, 43, 100, 67, 55, 102, 67, 51, 64, 61, 68, 73, 73, 78, 53, 57, 54, 69, 47, 50, 115, 44, 56, 98, 59, 77, 63, 56, 61, 45, 56, 69, 61, 113, 63, 71, 55, 61, 71, 41, 60, 95, 79, 57, 44, 71, 59, 55, 74, 60, 80, 45, 40, 86, 72, 77, 91, 96, 76, 69, 45, 100, 49, 63, 55, 90, 44, 67, 74, 76, 67, 71, 47, 62, 63, 73, 97, 51, 77, 53, 68, 76, 58, 72, 65, 52, 90, 66, 57, 61, 64, 61, 67, 62, 63, 61, 51, 54, 54, 59, 88, 50, 64, 74, 67, 67, 63, 62, 102, 45, 64, 64, 47, 57, 59, 72, 63, 99, 71, 53, 64, 68, 70, 57, 61, 104, 60, 54, 77, 67, 56, 70, 56, 62, 92, 57, 71, 58, 49, 88, 63, 56, 75, 87, 85, 54, 63, 68, 75, 70, 76, 70, 52, 80, 89, 57, 57, 99, 62, 71, 43, 69, 70, 81, 64, 93, 123, 53, 76, 81, 57, 64, 57, 58, 120, 72, 70, 82, 72, 65, 52, 65, 70, 66, 58, 104, 55, 68, 58, 64, 59, 72, 68, 46, 49, 58, 76, 51, 50, 52, 58, 72, 63, 80, 79, 66, 69, 97, 55, 45, 62, 83, 61, 58, 52, 58, 41, 84, 101, 63, 62, 73, 73, 49, 63, 74, 65, 61, 87, 48, 64, 64, 70, 86, 72, 56, 61, 40, 60, 52, 58, 78, 61, 59, 70, 68, 79, 57, 52, 51, 61, 68, 72, 66, 74, 48, 75, 72, 58, 79, 73, 60, 61, 75, 71, 62, 53, 63, 71, 69, 67, 67, 53, 76, 54, 45, 63, 48, 60, 69, 58, 68, 53, 66, 63, 60, 84, 47, 69, 85, 64, 56, 93, 62, 115, 55, 61, 70, 63, 61, 73, 64, 68, 43, 62, 72, 78, 80, 43, 72, 67, 73, 61, 51, 69, 36, 66, 175, 69, 64, 83, 61, 54, 74, 59, 63, 66, 59, 71, 73, 60, 74, 67, 83, 86, 65, 63, 64, 53, 69, 70, 56, 84, 79, 74, 80, 68, 57, 54, 51, 47, 75, 54, 80, 60, 62, 61, 55, 71, 54, 51, 48, 64, 71, 62, 68, 58, 82, 46, 60, 57, 73, 65, 62, 62, 77, 84, 49, 55, 74, 57, 35, 118, 58, 70, 86, 71, 74, 65, 60, 66, 80, 55, 50, 74, 78, 102, 58, 62, 79, 60, 65, 92, 60, 88, 61, 74, 65, 75, 61, 59, 92, 82, 63, 70, 64, 76, 65, 52, 70, 105, 58, 63, 54, 42, 86, 48, 67, 61, 74, 56, 45, 52, 94, 79, 57, 57, 67, 54, 59, 63, 59, 87, 61, 69, 65, 70, 88, 39, 50, 62, 68, 70, 69, 52, 50, 49, 87, 73, 73, 56, 73, 57, 65, 80, 46, 66, 53, 61, 75, 60, 57, 44, 56, 35, 75, 68, 48, 75, 67, 67, 52, 72, 65, 64, 67, 85, 64, 65, 64, 55, 56, 65, 68, 67, 55, 63, 75, 48, 49, 94, 43, 68, 68, 60, 48, 76, 79, 71, 52, 57, 75, 50, 58, 72, 60, 58, 62, 61, 59, 49, 58, 49, 78, 60, 62, 69, 70, 65, 38, 67, 74, 85, 56, 75, 52, 68, 72, 63, 74, 47, 72, 86, 89, 52, 39, 57, 73, 66, 74, 40, 60, 64, 67, 68, 69, 54, 69, 69, 67, 94, 63, 81, 77, 66, 65, 89, 60, 73, 71, 74, 72, 85, 94, 70, 70, 51, 53, 62, 68, 56, 48, 69, 52, 63, 55, 62, 64, 56, 48, 61, 66, 62, 46, 73, 87, 58, 51, 75, 77, 71, 60, 53, 67, 58, 48, 43, 54, 75, 42, 70, 93, 46, 49, 69, 66, 87, 72, 68, 81, 70, 81, 71, 64, 59, 59, 52, 60, 54, 54, 64, 62, 65, 70, 72, 59, 70, 60, 83, 47, 68, 75, 57, 66, 73, 72, 67, 65, 51, 65, 24, 72, 77, 46, 96, 59, 61, 84, 60, 88, 49, 63, 60, 82, 58, 69, 74, 63, 57, 75, 83, 64, 59, 74, 59, 84, 64, 84, 56, 66, 55, 41, 88, 75, 106, 56, 61, 67, 79, 61, 67, 56, 36, 52, 63, 68, 64, 61, 34, 97, 54, 58, 55, 61, 84, 44, 88, 51, 67, 57, 66, 64, 60, 82, 81, 63, 44, 78, 68, 115, 70, 39, 58, 50, 72, 72, 95, 50, 71, 44, 58, 83, 69, 56, 65, 77, 59, 59, 80, 60, 105, 55, 59, 78, 59, 57, 69, 81, 44, 65, 76, 71, 76, 121, 60, 69, 63, 83, 79, 56, 76, 58, 69, 42, 55, 62, 68, 53, 64, 58, 82, 55, 44, 77, 68, 70, 54, 85, 75, 76, 110, 66, 78, 80, 52, 60, 54, 60, 63, 74, 85, 84, 111, 73, 58, 64, 42, 69, 79, 72, 111, 58, 75, 83, 66, 60, 62, 69, 71, 55, 39, 65, 69, 69, 62, 45, 58, 71, 90, 67, 85, 88, 69, 61, 70, 48, 85, 68, 51, 122, 51, 87, 62, 65, 81, 53, 59, 51, 54, 46, 63, 58, 53, 53, 67, 72, 81, 71, 42, 50, 56, 82, 80, 86, 67, 70, 59, 54, 66, 71, 75, 69, 63, 71, 60, 68, 58, 62, 49, 64, 70, 80, 68, 75, 57, 60, 68, 58, 107, 67, 99, 62, 50, 69, 62, 98, 66, 85, 75, 76, 63, 68, 52, 65, 81, 55, 59, 84, 74, 74, 92, 65, 67, 69, 56, 78, 55, 64, 60, 89, 57, 45, 62, 63, 79, 66, 52, 60, 65, 53, 69, 54, 61, 69, 56, 73, 75, 52, 61, 47, 82, 59, 76, 51, 59, 56, 61, 75, 72, 74, 44, 63, 60, 66, 78, 68, 71, 42, 72, 64, 66, 77, 58, 61, 70, 55, 88, 46, 69, 60, 62, 60, 55, 54, 64, 91, 56, 81, 63, 54, 72, 55, 57, 66, 73, 90, 65, 54, 65, 67, 45, 67, 33, 74, 99, 63, 51, 74, 58, 71, 74, 64, 63, 44, 118, 57, 70, 66, 75, 79, 84, 75, 51, 91, 85, 59, 125, 82, 86, 70, 50, 61, 82, 63, 61, 72, 59, 64, 88, 66, 68, 56, 101, 53, 75, 58, 69, 64, 57, 66, 48, 63, 73, 49, 68, 83, 84, 58, 66, 56, 70, 59, 52, 114, 61, 56, 58, 67, 49, 76, 71, 75, 72, 60, 73, 76, 71, 71, 64, 68, 55, 73, 58, 89, 53, 61, 73, 48, 81, 61, 79, 43, 60, 58, 57, 60, 58, 81, 60, 91, 71, 38, 79, 55, 59, 61, 62, 79, 63, 132, 92, 58, 106, 76, 59, 79, 71, 61, 66, 52, 58, 46, 78, 82, 55, 47, 59, 59, 58, 55, 50, 54, 74, 75, 61, 70, 62, 65, 58, 45, 85, 56, 75, 65, 75, 53, 64, 56, 80, 73, 44, 65, 52, 70, 62, 51, 86, 65, 59, 85, 84, 71, 57, 49, 57, 74, 78, 67, 65, 63, 63, 76, 107, 58, 47, 72, 57, 65, 57, 85, 94, 60, 65, 61, 69, 58, 44, 58, 90, 65, 63, 79, 51, 70, 83, 48, 52, 86, 62, 66, 68, 82, 54, 57, 59, 66, 60, 96, 69, 46, 69, 71, 41, 65, 108, 80, 79, 45, 64, 47, 53, 47, 85, 50, 60, 67, 58, 56, 60, 64, 70, 75, 61, 67, 55, 50, 60, 49, 53, 53, 67, 53, 59, 71, 96, 60, 64, 65, 66, 68, 48, 103, 64, 76, 87, 88, 53, 58, 50, 45, 61, 55, 78, 75, 88, 45, 52, 76, 57, 64, 77, 73, 43, 80, 60, 52, 42, 52, 77, 65, 75, 104, 88, 48, 57, 61, 51, 94, 52, 64, 53, 81, 66, 70, 83, 69, 43, 52, 95, 52, 66, 50, 71, 45, 64, 59, 64, 77, 66, 77, 48, 52, 81, 77, 59, 72, 105, 64, 56, 63, 55, 43, 81, 60, 68, 72, 64, 45, 84, 62, 58, 59, 55, 66, 60, 60, 82, 70, 55, 53, 74, 60, 61, 70, 70, 48, 66, 73, 49, 53, 71, 58, 60, 122, 83, 57, 62, 58, 47, 67, 75, 61, 70, 62, 58, 51, 56, 48, 81, 66, 60, 78, 60, 51, 63, 71, 72, 74, 114, 72, 77, 81, 67, 55, 55, 52, 50, 61, 70, 90, 78, 66, 70, 74, 73, 46, 64, 74, 71, 76, 70, 66, 74, 55, 69, 47, 67, 69, 59, 61, 64, 78, 74, 68, 105, 72, 58, 70, 55, 59, 66, 57, 64, 48, 62, 86, 120, 66, 68, 65, 69, 74, 84, 67, 58, 77, 57, 67, 56, 70, 61, 75, 62, 60, 49, 71, 45, 71, 71, 61, 58, 43, 102, 67, 68, 51, 119, 64, 72, 77, 54, 68, 64, 74, 65, 71, 73, 55, 74, 65, 60, 68, 84, 135, 68, 78, 61, 72, 74, 54, 65, 50, 57, 67, 52, 65, 54, 55, 61, 73, 59, 59, 62, 89, 45, 59, 60, 69, 79, 66, 72, 63, 48, 76, 66, 82, 64, 91, 52, 65, 52, 69, 56, 57, 62, 60, 57, 64, 68, 65, 46, 85, 73, 58, 42, 66, 70, 56, 35, 52, 65, 63, 85, 57, 62, 52, 97, 65, 47, 68, 51, 67, 69, 90, 76, 52, 64, 78, 63, 74, 56, 63, 79, 59, 69, 61, 80, 100, 86, 79, 73, 50, 47, 73, 59, 49, 73, 73, 72, 55, 69, 75, 82, 63, 58, 67, 60, 54, 63, 69, 67, 48, 62, 81, 53, 53, 64, 50, 67, 78, 51, 62, 58, 62, 54, 79, 65, 49, 52, 64, 54, 60, 57, 79, 72, 83, 59, 49, 67, 51, 109, 47, 63, 70, 54, 63, 62, 51, 67, 51, 71, 66, 80, 76, 63, 112, 103, 62, 83, 68, 74, 101, 72, 63, 64, 74, 66, 49, 54, 99, 55, 78, 126, 56, 64, 99, 88, 78, 65, 56, 89, 45, 65, 56, 42, 66, 69, 55, 55, 58, 91, 72, 84, 85, 60, 57, 113, 69, 71, 84, 67, 62, 64, 52, 61, 52, 63, 91, 56, 57, 57, 65, 66, 56, 50, 57, 74, 66, 45, 69, 54, 66, 46, 63, 60, 64, 63, 64, 52, 70, 58, 61, 63, 83, 69, 55, 65, 60, 56, 48, 75, 62, 83, 72, 87, 66, 50, 119, 75, 63, 62, 45, 65, 56, 64, 61, 64, 63, 61, 51, 56, 55, 64, 67, 48, 63, 83, 93, 85, 86, 75, 59, 67, 93, 61, 77, 59, 66, 58, 54, 50, 63, 75, 41, 64, 58, 76, 60, 93, 52, 84, 92, 57, 63, 55, 65, 63, 70, 85, 80, 75, 60, 58, 57, 85, 55, 59, 66, 51, 49, 60, 61, 65, 57, 48, 86, 60, 57, 73, 86, 64, 65, 49, 57, 81, 79, 64, 75, 43, 85, 59, 71, 71, 76, 50, 65, 72, 65, 55, 51, 67, 78, 58, 65, 62, 58, 60, 83, 52, 56, 90, 53, 55, 60, 71, 64, 60, 74, 58, 69, 61, 67, 41, 82, 57, 68, 53, 63, 68, 58, 62, 48, 45, 60, 59, 71, 62, 83, 63, 72, 45, 53, 62, 50, 73, 66, 64, 101, 54, 58, 58, 57, 57, 62, 138, 61, 76, 55, 73, 64, 57, 49, 88, 57, 61, 63, 78, 47, 54, 51, 67, 62, 105, 40, 54, 56, 66, 58, 47, 73, 104, 57, 63, 66, 58, 44, 96, 72, 53, 81, 53, 49, 67, 80, 55, 92, 88, 53, 68, 49, 59, 55, 61, 70, 58, 72, 69, 65, 54, 48, 77, 73, 73, 53, 61, 65, 53, 72, 71, 93, 62, 47, 71, 68, 58, 72, 54, 58, 99, 57, 63, 74, 60, 50, 66, 66, 81, 77, 99, 75, 52, 63, 76, 105, 94, 71, 55, 55, 85, 69, 54, 111, 63, 54, 70, 65, 84, 75, 70, 51, 50, 71, 59, 47, 73, 53, 87, 90, 49, 78, 65, 97, 68, 56, 71, 86, 97, 52, 68, 64, 37, 69, 37, 70, 72, 61, 77, 38, 63, 57, 57, 77, 57, 66, 78, 117, 82, 73, 48, 80, 68, 75, 65, 80, 64, 55, 53, 88, 65, 69, 70, 61, 42, 52, 56, 60, 56, 80, 68, 153, 66, 90, 35, 88, 65, 65, 64, 66, 74, 52, 83, 54, 70, 62, 76, 61, 64, 101, 58, 75, 75, 65, 72, 88, 63, 70, 67, 65, 74, 46, 78, 65, 69, 76, 70, 100, 71, 60, 73, 53, 82, 62, 57, 57, 64, 82, 75, 53, 64, 53, 70, 54, 67, 63, 50, 51, 59, 82, 76, 85, 54, 73, 68, 61, 79, 55, 64, 73, 81, 82, 59, 45, 62, 54, 71, 80, 40, 62, 48, 92, 81, 49, 47, 60, 72, 47, 60, 57, 40, 68, 52, 71, 74, 77, 107, 72, 62, 73, 64, 59, 63, 47, 61, 52, 65, 51, 60, 70, 48, 64, 81, 105, 79, 75, 53, 80, 53, 95, 96, 71, 67, 61, 65, 37, 92, 69, 67, 66, 42, 77, 53, 70, 74, 75, 78, 59, 69, 71, 63, 43, 75, 72, 61, 91, 66, 79, 48, 61, 57, 67, 80, 52, 71, 70, 90, 56, 71, 112, 51, 81, 82, 66, 60, 79, 83, 58, 78, 69, 55, 57, 61, 54, 54, 54, 69, 53, 58, 80, 65, 52, 57, 67, 56, 83, 72, 35, 56, 51, 74, 53, 73, 65, 62, 74, 55, 62, 73, 79, 69, 63, 85, 51, 52, 65, 70, 53, 80, 60, 68, 60, 68, 56, 50, 48, 70, 59, 62, 52, 86, 63, 41, 41, 55, 90, 56, 71, 62, 84, 55, 65, 85, 77, 56, 56, 64, 61, 64, 73, 62, 54, 87, 66, 88, 77, 97, 57, 66, 56, 67, 50, 77, 39, 52, 54, 51, 48, 73, 103, 70, 65, 77, 54, 63, 55, 71, 66, 50, 74, 65, 70, 66, 50, 62, 80, 49, 48, 73, 62, 61, 63, 62, 113, 56, 58, 78, 80, 48, 62, 76, 61, 43, 60, 72, 72, 56, 65, 64, 69, 51, 76, 71, 77, 42, 58, 69, 68, 85, 83, 81, 63, 65, 91, 59, 85, 90, 80, 63, 52, 65, 90, 83, 91, 100, 41, 75, 69, 68, 57, 69, 60, 42, 73, 71, 89, 63, 44, 67, 58, 67, 63, 79, 71, 62, 63, 47, 31, 46, 49, 71, 68, 64, 68, 62, 43, 44, 62, 56, 75, 87, 55, 56, 71, 62, 55, 63, 56, 80, 59, 56, 59, 70, 45, 56, 92, 71, 63, 121, 43, 70, 77, 49, 71, 96, 58, 53, 87, 59, 71, 76, 61, 47, 71, 54, 73, 80, 84, 60, 75, 93, 59, 54, 62, 77, 67, 52, 53, 74, 70, 60, 53, 74, 70, 85, 90, 43, 64, 49, 95, 48, 88, 40, 66, 66, 63, 66, 85, 58, 75, 69, 63, 62, 55, 85, 55, 70, 71, 39, 55, 52, 86, 78, 78, 47, 49, 88, 52, 54, 79, 63, 61, 68, 69, 69, 56, 76, 70, 60, 66, 55, 68, 74, 58, 78, 68, 60, 75, 68, 83, 58, 57, 78, 69, 56, 86, 76, 73, 54, 71, 74, 69, 61, 75, 61, 69, 55, 60, 70, 80, 77, 75, 63, 67, 68, 70, 65, 57, 67, 75, 65, 61, 44, 61, 63, 86, 46, 68, 70, 52, 64, 50, 35, 58, 78, 59, 76, 68, 68, 59, 77, 54, 67, 76, 64, 69, 52, 51, 77, 55, 96, 76, 55, 47, 56, 56, 66, 49, 75, 87, 73, 50, 56, 51, 60, 51, 45, 54, 64, 68, 74, 68, 68, 47, 56, 65, 78, 65, 83, 72, 63, 75, 88, 49, 80, 49, 66, 44, 75, 83, 84, 57, 53, 73, 76, 90, 67, 66, 78, 81, 79, 61, 93, 74, 87, 70, 51, 60, 72, 58, 84, 54, 45, 62, 65, 87, 65, 59, 67, 60, 40, 44, 68, 51, 67, 60, 70, 90, 70, 22, 76, 56, 79, 59, 68, 47, 87, 75, 61, 49, 45, 55, 74, 36, 47, 70, 74, 87, 70, 76, 75, 60, 73, 84, 41, 83, 85, 102, 53, 77, 75, 48, 60, 66, 54, 50, 74, 69, 61, 89, 61, 59, 37, 74, 65, 62, 73, 77, 43, 64, 54, 67, 72, 72, 51, 44, 60, 68, 71, 79, 69, 52, 64, 55, 74, 59, 58, 36, 71, 55, 91, 52, 86, 96, 60, 72, 61, 77, 42, 67, 53, 45, 57, 69, 44, 72, 52, 54, 45, 75, 41, 61, 61, 62, 68, 67, 51, 71, 66, 75, 55, 58, 62, 46, 82, 57, 70, 52, 56, 58, 89, 84, 63, 61, 58, 45, 59, 98, 90, 72, 64, 65, 68, 69, 78, 84, 65, 86, 69, 61, 54, 56, 69, 73, 48, 62, 82, 87, 71, 67, 51, 73, 66, 65, 55, 63, 63, 90, 66, 73, 108, 59, 56, 70, 51, 90, 76, 66, 71, 74, 55, 62, 86, 26, 63, 61, 72, 38, 53, 66, 73, 82, 57, 73, 79, 43, 45, 81, 104, 78, 81, 54, 59, 72, 76, 75, 63, 31, 62, 72, 80, 60, 96, 77, 42, 69, 78, 82, 78, 50, 69, 62, 56, 63, 47, 59, 63, 77, 61, 74, 70, 54, 95, 63, 43, 55, 81, 96, 58, 54, 50, 79, 63, 85, 69, 34, 81, 44, 49, 55, 53, 78, 64, 52, 65, 55, 47, 70, 74, 80, 66, 71, 55, 71, 72, 68, 63, 60, 58, 59, 80, 94, 75, 48, 56, 46, 73, 49, 56, 52, 65, 60, 62, 75, 48, 62, 68, 64, 60, 57, 41, 59, 49, 60, 57, 61, 57, 75, 70, 61, 72, 75, 64, 73, 68, 71, 62, 71, 72, 48, 55, 68, 49, 83, 76, 75, 50, 89, 62, 60, 47, 43, 79, 59, 65, 71, 58, 88, 78, 84, 51, 57, 54, 62, 46, 51, 69, 54, 57, 157, 53, 79, 40, 70, 66, 47, 71, 71, 72, 67, 56, 58, 50, 62, 52, 53, 68, 69, 67, 85, 63, 64, 73, 62, 54, 61, 72, 106, 73, 61, 138, 81, 43, 48, 72, 80, 68, 70, 62, 60, 67, 57, 58, 52, 70, 61, 71, 66, 81, 61, 98, 38, 35, 63, 78, 77, 61, 71, 62, 62, 65, 54, 54, 65, 103, 79, 70, 72, 55, 104, 99, 49, 54, 61, 68, 69, 72, 63, 61, 62, 61, 55, 58, 40, 75, 61, 53, 73, 48, 65, 59, 69, 60, 68, 71, 71, 54, 71, 68, 59, 72, 43, 52, 63, 61, 55, 52, 60, 86, 62, 73, 90, 68, 99, 89, 56, 62, 65, 53, 55, 66, 68, 72, 62, 47, 99, 46, 83, 83, 69, 76, 59, 51, 61, 70, 92, 55, 76, 63, 62, 104, 61, 61, 66, 62, 51, 89, 36, 61, 93, 61, 65, 58, 59, 79, 72, 78, 65, 56, 80, 62, 55, 75, 84, 70, 54, 54, 74, 57, 50, 57, 72, 97, 48, 84, 77, 73, 83, 77, 76, 92, 73, 70, 47, 108, 66, 57, 55, 100, 67, 72, 67, 66, 52, 72, 58, 81, 56, 64, 90, 68, 82, 61, 84, 52, 55, 65, 66, 49, 50, 55, 130, 57, 80, 71, 70, 56, 73, 63, 48, 56, 51, 72, 57, 59, 73, 65, 61, 64, 72, 50, 74, 48, 55, 87, 64, 82, 62, 70, 59, 88, 78, 78, 92, 71, 102, 80, 91, 73, 60, 71, 40, 62, 72, 68, 73, 60, 72, 65, 75, 82, 66, 54, 84, 75, 75, 52, 47, 65, 45, 64, 68, 51, 60, 64, 96, 52, 50, 61, 86, 80, 57, 67, 47, 69, 59, 68, 77, 73, 62, 72, 62, 67, 68, 68, 63, 55, 64, 70, 68, 61, 63, 60, 68, 55, 63, 61, 56, 82, 74, 69, 52, 92, 60, 60, 75, 94, 72, 48, 53, 55, 70, 65, 62, 73, 58, 63, 57, 61, 61, 65, 48, 56, 54, 87, 19, 85, 50, 64, 59, 70, 66, 62, 47, 83, 63, 44, 75, 64, 54, 65, 68, 63, 58, 50, 64, 64, 62, 115, 56, 81, 56, 55, 52, 62, 64, 62, 32, 55, 65, 59, 61, 50, 79, 76, 71, 84, 54, 65, 59, 62, 70, 58, 57, 57, 80, 57, 75, 73, 73, 53, 50, 63, 73, 115, 56, 57, 55, 62, 54, 79, 48, 53, 99, 64, 65, 77, 47, 65, 53, 33, 63, 80, 55, 54, 65, 67, 66, 60, 76, 76, 40, 78, 62, 65, 112, 81, 79, 69, 43, 68, 77, 67, 67, 91, 45, 67, 78, 67, 46, 62, 59, 97, 43, 57, 87, 57, 55, 74, 51, 86, 59, 56, 43, 61, 98, 57, 61, 70, 74, 62, 59, 62, 61, 63, 61, 66, 74, 65, 86, 46, 49, 54, 72, 66, 74, 70, 53, 70, 59, 50, 57, 55, 35, 67, 82, 70, 69, 82, 48, 65, 59, 70, 63, 64, 78, 84, 65, 76, 56, 58, 70, 60, 59, 45, 62, 79, 71, 44, 72, 60, 56, 69, 55, 75, 76, 74, 63, 47, 75, 72, 88, 64, 77, 91, 63, 55, 77, 73, 77, 76, 55, 70, 64, 54, 78, 69, 52, 72, 48, 52, 61, 41, 49, 63, 65, 54, 57, 51, 73, 48, 49, 62, 66, 73, 94, 60, 56, 48, 77, 74, 58, 110, 48, 106, 66, 59, 67, 89, 55, 60, 60, 55, 64, 63, 64, 71, 77, 61, 72, 47, 61, 107, 67, 71, 82, 72, 47, 58, 66, 96, 78, 66, 52, 91, 74, 65, 70, 56, 85, 65, 77, 50, 52, 54, 46, 60, 66, 58, 65, 80, 63, 74, 66, 62, 71, 61, 49, 58, 72, 59, 50, 85, 51, 70, 54, 79, 72, 77, 53, 91, 56, 67, 71, 73, 53, 65, 62, 62, 40, 63, 84, 47, 83, 59, 70, 66, 66, 44, 58, 64, 64, 66, 50, 65, 54, 73, 51, 49, 32, 63, 66, 81, 109, 78, 60, 81, 71, 61, 58, 91, 51, 63, 70, 96, 62, 56, 63, 53, 37, 49, 73, 65, 60, 49, 60, 83, 112, 67, 48, 55, 43, 59, 64, 60, 51, 49, 67, 58, 60, 83, 55, 88, 67, 61, 66, 82, 63, 72, 80, 47, 52, 64, 59, 79, 49, 61, 64, 75, 91, 69, 60, 77, 66, 55, 91, 70, 51, 62, 49, 70, 77, 90, 72, 64, 69, 65, 55, 84, 59, 67, 66, 45, 82, 80, 67, 50, 44, 70, 59, 56, 76, 63, 50, 64, 80, 68, 89, 73, 56, 80, 53, 78, 71, 80, 63, 52, 83, 75, 61, 50, 61, 57, 72, 73, 63, 59, 66, 60, 62, 88, 66, 59, 78, 75, 66, 60, 66, 52, 64, 93, 66, 107, 64, 63, 54, 58, 65, 74, 46, 63, 66, 56, 63, 91, 72, 55, 62, 48, 48, 26, 82, 67, 62, 53, 63, 82, 63, 69, 47, 49, 79, 89, 83, 59, 64, 93, 70, 46, 58, 88, 168, 51, 63, 80, 74, 81, 73, 57, 63, 49, 64, 73, 67, 70, 56, 56, 56, 73, 81, 57, 72, 50, 81, 73, 57, 66, 44, 67, 72, 57, 57, 66, 98, 69, 51, 61, 81, 48, 61, 66, 82, 70, 57, 71, 77, 77, 61, 58, 68, 54, 56, 59, 74, 64, 67, 69, 60, 85, 52, 63, 69, 57, 53, 77, 63, 65, 72, 57, 72, 63, 73, 64, 62, 71, 82, 49, 84, 74, 61, 64, 63, 63, 63, 71, 54, 67, 78, 73, 61, 79, 62, 71, 58, 124, 85, 58, 40, 81, 70, 78, 72, 74, 63, 53, 61, 66, 58, 83, 64, 53, 54, 80, 67, 71, 49, 74, 79, 90, 63, 55, 88, 76, 62, 85, 64, 45, 60, 48, 73, 53, 85, 86, 47, 77, 51, 57, 58, 59, 63, 79, 55, 64, 66, 103, 62, 60, 42, 60, 59, 67, 59, 54, 63, 50, 59, 59, 55, 54, 50, 74, 62, 66, 78, 51, 79, 67, 46, 46, 70, 49, 56, 67, 101, 59, 66, 75, 63, 100, 66, 59, 45, 74, 60, 82, 67, 83, 88, 75, 70, 46, 104, 70, 64, 82, 62, 96, 60, 62, 102, 113, 65, 77, 69, 60, 109, 81, 53, 66, 62, 76, 53, 60, 52, 59, 50, 57, 70, 73, 53, 73, 69, 66, 67, 57, 86, 82, 52, 65, 75, 66, 94, 80, 68, 66, 72, 73, 67, 50, 69, 47, 62, 62, 66, 63, 70, 51, 61, 59, 103, 69, 48, 58, 62, 101, 55, 57, 64, 64, 61, 63, 59, 56, 53, 93, 70, 63, 77, 58, 69, 52, 61, 56, 59, 110, 56, 56, 72, 75, 58, 85, 60, 84, 50, 58, 76, 63, 92, 65, 68, 60, 56, 81, 58, 66, 51, 56, 52, 72, 63, 52, 61, 63, 68, 47, 58, 75, 58, 75, 71, 48, 81, 82, 62, 79, 75, 65, 72, 63, 54, 67, 70, 50, 67, 60, 61, 87, 58, 69, 77, 70, 65, 83, 77, 72, 80, 69, 63, 58, 63, 52, 67, 60, 83, 68, 48, 45, 51, 103, 67, 63, 76, 91, 64, 66, 50, 80, 77, 57, 57, 59, 64, 75, 49, 82, 69, 51, 57, 73, 64, 92, 73, 76, 62, 69, 60, 83, 50, 88, 63, 89, 54, 72, 62, 71, 45, 74, 60, 65, 75, 62, 74, 69, 59, 66, 64, 81, 73, 82, 68, 44, 67, 57, 77, 67, 60, 51, 47, 55, 66, 54, 65, 76, 44, 62, 78, 57, 67, 65, 46, 54, 69, 68, 54, 58, 70, 65, 54, 83, 72, 54, 69, 131, 64, 118, 69, 64, 62, 78, 55, 55, 63, 66, 64, 59, 58, 62, 57, 58, 74, 55, 70, 63, 76, 54, 65, 54, 52, 52, 52, 48, 72, 86, 54, 66, 63, 57, 65, 73, 70, 85, 63, 70, 48, 55, 58, 58, 66, 42, 111, 54, 59, 40, 73, 69, 57, 64, 59, 70, 70, 62, 66, 65, 52, 83, 77, 61, 58, 55, 57, 65, 55, 71, 66, 64, 41, 59, 63, 86, 58, 60, 65, 68, 95, 79, 73, 82, 78, 62, 71, 58, 57, 66, 72, 61, 82, 46, 61, 58, 39, 51, 66, 61, 43, 91, 62, 55, 52, 73, 54, 67, 87, 73, 55, 75, 47, 59, 59, 77, 73, 78, 60, 75, 63, 55, 58, 75, 77, 56, 79, 72, 57, 69, 57, 100, 62, 50, 100, 57, 62, 54, 62, 61, 51, 63, 57, 71, 84, 59, 53, 100, 62, 75, 82, 77, 55, 59, 54, 73, 76, 57, 62, 62, 63, 65, 40, 74, 61, 87, 59, 62, 78, 64, 65, 78, 68, 75, 59, 56, 51, 68, 61, 54, 55, 66, 108, 63, 71, 57, 54, 57, 71, 69, 73, 65, 72, 52, 45, 69, 77, 93, 70, 41, 64, 59, 61, 62, 52, 68, 42, 70, 52, 72, 100, 55, 81, 80, 44, 58, 55, 82, 48, 55, 90, 55, 68, 82, 74, 65, 61, 60, 54, 80, 80, 91, 69, 57, 57, 41, 66, 65, 66, 63, 54, 73, 81, 58, 68, 61, 65, 88, 60, 57, 58, 62, 58, 64, 75, 44, 46, 61, 66, 58, 77, 61, 76, 61, 66, 59, 67, 62, 65, 61, 60, 55, 66, 55, 68, 47, 68, 74, 53, 73, 70, 53, 59, 62, 63, 62, 65, 55, 50, 95, 63, 99, 57, 61, 63, 77, 59, 76, 58, 54, 57, 63, 80, 55, 79, 57, 73, 40, 63, 59, 60, 76, 54, 92, 64, 55, 47, 106, 64, 55, 61, 108, 78, 117, 56, 45, 66, 68, 67, 67, 83, 63, 54, 71, 78, 67, 52, 68, 80, 50, 118, 86, 64, 80, 61, 71, 52, 54, 44, 58, 69, 64, 47, 64, 54, 73, 57, 53, 43, 70, 54, 68, 54, 55, 62, 55, 56, 68, 82, 85, 73, 67, 80, 68, 63, 53, 97, 58, 69, 53, 63, 64, 55, 68, 64, 65, 54, 73, 77, 63, 51, 77, 57, 75, 67, 67, 59, 57, 66, 67, 60, 60, 65, 51, 61, 53, 74, 61, 64, 81, 36, 65, 80, 86, 80, 65, 52, 59, 73, 60, 66, 75, 51, 51, 58, 56, 58, 62, 80, 62, 62, 56, 56, 74, 57, 55, 61, 61, 65, 66, 58, 74, 85, 59, 69, 62, 56, 64, 83, 82, 58, 67, 52, 64, 80, 52, 65, 74, 102, 53, 59, 99, 65, 54, 106, 75, 45, 55, 77, 60, 70, 71, 59, 80, 68, 52, 56, 71, 62, 70, 51, 71, 71, 56, 80, 74, 70, 55, 58, 57, 66, 64, 61, 76, 55, 82, 83, 64, 82, 69, 63, 82, 113, 68, 73, 57, 76, 61, 56, 65, 57, 62, 66, 66, 58, 71, 72, 73, 64, 58, 61, 51, 52, 53, 56, 65, 67, 56, 84, 62, 51, 68, 57, 70, 53, 64, 97, 62, 54, 91, 52, 77, 60, 86, 61, 59, 58, 44, 112, 62, 70, 72, 62, 71, 54, 64, 69, 70, 62, 64, 83, 62, 66, 75, 69, 66, 65, 55, 47, 84, 98, 66, 60, 59, 73, 71, 68, 52, 50, 49, 98, 49, 68, 92, 80, 52, 72, 52, 58, 50, 55, 65, 74, 69, 71, 69, 76, 60, 62, 102, 75, 74, 68, 67, 61, 68, 58, 51, 68, 88, 68, 70, 68, 64, 83, 68, 62, 77, 56, 64, 56, 86, 61, 58, 69, 71, 62, 95, 60, 100, 68, 72, 71, 38, 60, 80, 57, 72, 59, 67, 75, 63, 70, 59, 66, 69, 51, 81, 46, 68, 48, 48, 64, 59, 54, 47, 55, 60, 53, 64, 51, 61, 58, 73, 64, 69, 54, 73, 47, 55, 65, 65, 54, 59, 53, 61, 98, 75, 64, 52, 75, 49, 80, 62, 55, 57, 64, 65, 53, 68, 51, 73, 57, 87, 66, 53, 74, 64, 78, 45, 64, 64, 55, 60, 59, 61, 78, 71, 80, 55, 66, 50, 58, 59, 68, 63, 67, 77, 88, 50, 78, 76, 72, 69, 82, 50, 77, 56, 77, 73, 34, 51, 59, 70, 58, 75, 69, 74, 77, 63, 71, 79, 63, 95, 76, 61, 58, 104, 58, 69, 43, 61, 45, 70, 56, 84, 77, 62, 62, 74, 60, 47, 54, 60, 53, 73, 56, 53, 118, 60, 65, 33, 83, 68, 107, 62, 82, 58, 55, 77, 68, 99, 52, 67, 45, 90, 47, 104, 47, 57, 63, 59, 59, 79, 49, 65, 52, 60, 52, 62, 53, 83, 58, 70, 63, 79, 113, 82, 90, 82, 75, 93, 76, 60, 61, 96, 58, 55, 54, 101, 77, 47, 116, 70, 61, 74, 37, 50, 59, 89, 37, 98, 54, 49, 53, 71, 71, 70, 51, 55, 128, 64, 47, 73, 78, 80, 71, 77, 68, 74, 98, 79, 54, 47, 61, 54, 68, 49, 111, 68, 80, 53, 64, 94, 59, 74, 68, 61, 53, 90, 99, 50, 75, 65, 139, 52, 69, 75, 49, 46, 54, 50, 76, 83, 76, 44, 65, 48, 70, 62, 64, 38, 73, 86, 39, 64, 50, 49, 119, 46, 68, 62, 83, 67, 46, 58, 94, 72, 52, 76, 65, 49, 70, 73, 65, 76, 73, 55, 70, 81, 89, 108, 62, 52, 66, 56, 51, 63, 75, 56, 45, 54, 66, 67, 60, 61, 70, 50, 71, 55, 68, 58, 50, 58, 76, 68, 64, 50, 53, 60, 60, 102, 72, 68, 70, 56, 54, 78, 101, 43, 54, 56, 42, 50, 63, 53, 67, 73, 46, 76, 47, 61, 65, 72, 54, 109, 50, 73, 61, 84, 116, 66, 48, 126, 61, 53, 66, 91, 58, 86, 54, 41, 60, 65, 56, 50, 34, 73, 84, 71, 68, 86, 66, 53, 60, 66, 61, 57, 75, 63, 70, 66, 54, 49, 60, 72, 74, 66, 55, 107, 44, 100, 49, 54, 63, 44, 86, 41, 75, 79, 75, 60, 49, 31, 80, 65, 74, 63, 61, 69, 40, 62, 66, 60, 68, 52, 79, 73, 64, 76, 74, 60, 63, 56, 90, 96, 68, 63, 65, 53, 93, 67, 107, 81, 101, 65, 60, 69, 54, 50, 51, 69, 51, 72, 71, 74, 97, 57, 57, 77, 64, 54, 56, 88, 57, 72, 61, 53, 66, 77, 103, 68, 34, 47, 55, 81, 93, 106, 66, 62, 89, 68, 54, 69, 62, 43, 76, 55, 90, 46, 69, 114, 59, 69, 50, 57, 65, 64, 68, 78, 59, 91, 75, 109, 96, 87, 65, 60, 70, 48, 70, 66, 50, 75, 62, 59, 78, 80, 35, 53, 70, 85, 64, 62, 56, 77, 75, 53, 57, 80, 46, 71, 55, 57, 59, 73, 56, 59, 47, 49, 99, 60, 75, 86, 44, 78, 80, 92, 63, 72, 56, 62, 43, 67, 64, 54, 70, 54, 67, 45, 88, 59, 63, 59, 56, 39, 68, 81, 65, 47, 80, 37, 109, 73, 73, 69, 50, 84, 92, 60, 62, 89, 72, 68, 78, 46, 59, 52, 98, 73, 78, 60, 53, 65, 68, 39, 94, 61, 58, 45, 75, 59, 68, 77, 69, 54, 66, 64, 69, 74, 74, 53, 59, 88, 72, 84, 98, 75, 70, 129, 129, 40, 41, 75, 58, 55, 81, 71, 88, 69, 50, 68, 48, 66, 35, 44, 106, 82, 63, 58, 48, 62, 84, 78, 35, 49, 77, 76, 77, 56, 55, 68, 45, 39, 38, 66, 66, 84, 71, 66, 59, 60, 61, 68, 44, 30, 101, 83, 56, 85, 54, 53, 42, 64, 71, 59, 50, 57, 38, 61, 82, 69, 59, 65, 49, 69, 57, 63, 79, 89, 47, 47, 99, 76, 107, 96, 88, 89, 53, 46, 63, 64, 63, 53, 51, 68, 66, 38, 47, 39, 72, 54, 91, 105, 62, 111, 52, 66, 74, 57, 87, 52, 50, 46, 49, 52, 80, 84, 87, 64, 44, 57, 64, 61, 61, 66, 49, 99, 68, 85, 62, 44, 74, 66, 69, 84, 90, 43, 49, 39, 79, 58, 82, 47, 51, 72, 66, 72, 128, 43, 58, 63, 76, 71, 57, 46, 64, 79, 55, 77, 50, 63, 61, 147, 59, 50, 59, 69, 40, 55, 51, 57, 69, 105, 76, 51, 53, 64, 50, 47, 68, 63, 72, 69, 64, 42, 61, 47, 67, 69, 92, 50, 52, 29, 74, 40, 68, 68, 76, 57, 71, 50, 47, 74, 91, 69, 67, 65, 60, 58, 68, 72, 62, 59, 62, 51, 49, 80, 52, 86, 53, 61, 69, 61, 53, 50, 49, 68, 96, 90, 41, 72, 82, 56, 82, 82, 59, 104, 48, 55, 53, 91, 58, 38, 61, 52, 57, 50, 73, 62, 54, 81, 68, 64, 88, 79, 62, 46, 43, 72, 65, 66, 76, 56, 46, 60, 71, 72, 48, 52, 113, 66, 64, 57, 71, 68, 89, 43, 60, 99, 63, 72, 55, 45, 79, 62, 108, 77, 44, 85, 61, 47, 79, 67, 76, 56, 32, 42, 72, 71, 48, 69, 78, 74, 73, 67, 65, 55, 74, 70, 56, 71, 57, 80, 58, 67, 70, 27, 86, 53, 37, 54, 52, 29, 79, 35, 44, 69, 71, 58, 84, 90, 58, 66, 42, 41, 52, 57, 47, 45, 84, 61, 54, 64, 101, 76, 63, 60, 52, 47, 79, 80, 54, 62, 66, 56, 59, 60, 68, 53, 105, 56, 71, 75, 69, 54, 39, 66, 61, 66, 49, 48, 74, 82, 87, 60, 68, 95, 44, 69, 79, 45, 64, 107, 52, 92, 90, 66, 94, 62, 45, 84, 133, 63, 47, 61, 75, 53, 67, 55, 61, 84, 78, 72, 48, 50, 63, 70, 79, 52, 59, 65, 61, 55, 83, 62, 68, 77, 61, 68, 33, 91, 53, 72, 59, 68, 51, 67, 64, 70, 93, 82, 81, 66, 75, 72, 71, 54, 57, 69, 66, 93, 76, 59, 55, 56, 80, 54, 51, 64, 59, 132, 51, 102, 69, 80, 61, 51, 66, 54, 52, 47, 47, 78, 114, 59, 58, 48, 47, 55, 51, 54, 64, 68, 42, 50, 81, 71, 67, 61, 50, 66, 58, 60, 60, 68, 77, 70, 72, 58, 35, 68, 49, 71, 61, 53, 75, 53, 66, 73, 79, 51, 67, 29, 66, 77, 65, 70, 69, 63, 57, 96, 33, 47, 67, 59, 63, 75, 45, 68, 55, 85, 67, 60, 80, 54, 54, 87, 58, 74, 68, 65, 54, 51, 52, 54, 74, 52, 55, 70, 77, 57, 58, 65, 66, 96, 51, 48, 63, 58, 79, 55, 72, 61, 54, 99, 58, 62, 64, 42, 82, 59, 59, 68, 56, 62, 75, 74, 53, 70, 79, 70, 95, 59, 59, 132, 56, 71, 67, 44, 61, 35, 63, 74, 97, 86, 59, 56, 68, 49, 53, 72, 65, 70, 62, 76, 68, 62, 64, 40, 85, 59, 68, 76, 64, 55, 62, 55, 50, 36, 48, 73, 62, 68, 51, 65, 66, 68, 104, 100, 55, 49, 95, 75, 54, 58, 50, 76, 50, 50, 70, 61, 97, 89, 45, 78, 57, 59, 78, 55, 57, 50, 59, 70, 57, 63, 68, 61, 58, 77, 52, 71, 55, 56, 88, 84, 51, 64, 65, 46, 71, 62, 62, 61, 49, 69, 67, 117, 73, 66, 52, 69, 57, 75, 45, 63, 85, 50, 74, 63, 65, 57, 69, 64, 53, 58, 51, 77, 56, 57, 59, 61, 48, 71, 63, 62, 66, 58, 72, 88, 50, 63, 61, 78, 49, 72, 48, 83, 51, 62, 57, 71, 60, 77, 85, 54, 59, 58, 63, 60, 50, 66, 45, 68, 57, 48, 41, 84, 67, 68, 53, 73, 56, 40, 87, 81, 75, 55, 73, 62, 53, 72, 65, 58, 55, 72, 57, 73, 69, 101, 93, 82, 81, 49, 68, 42, 63, 89, 64, 49, 53, 112, 62, 74, 52, 60, 57, 75, 60, 97, 29, 61, 69, 111, 67, 53, 56, 60, 94, 64, 65, 54, 52, 61, 79, 62, 68, 73, 135, 120, 71, 77, 57, 71, 70, 50, 63, 49, 63, 83, 76, 68, 65, 61, 51, 63, 86, 75, 82, 51, 43, 78, 74, 54, 62, 53, 62, 80, 54, 65, 60, 74, 56, 62, 58, 49, 59, 79, 63, 57, 78, 84, 83, 63, 47, 56, 72, 51, 50, 43, 84, 72, 71, 94, 78, 62, 85, 70, 52, 69, 64, 81, 49, 59, 87, 62, 80, 57, 78, 67, 69, 75, 59, 70, 69, 71, 112, 69, 82, 79, 64, 51, 51, 64, 43, 73, 58, 57, 60, 58, 69, 51, 86, 60, 69, 62, 71, 62, 68, 87, 104, 80, 53, 62, 64, 63, 55, 68, 54, 73, 91, 55, 98, 65, 52, 71, 59, 51, 61, 50, 61, 70, 55, 54, 89, 64, 61, 57, 62, 47, 60, 86, 61, 60, 72, 108, 57, 79, 67, 64, 54, 90, 52, 59, 53, 49, 67, 72, 63, 74, 70, 92, 44, 74, 74, 102, 86, 60, 67, 63, 63, 65, 72, 64, 45, 67, 65, 65, 46, 61, 78, 62, 70, 71, 62, 53, 68, 84, 71, 65, 73, 85, 43, 71, 72, 67, 66, 69, 64, 44, 104, 62, 62, 54, 67, 69, 47, 45, 54, 57, 48, 66, 64, 67, 49, 69, 96, 74, 61, 64, 73, 55, 61, 81, 85, 49, 64, 63, 54, 56, 86, 47, 89, 69, 63, 63, 73, 64, 48, 61, 47, 54, 64, 63, 60, 60, 81, 63, 58, 54, 60, 79, 84, 67, 58, 68, 83, 90, 48, 61, 54, 79, 95, 65, 67, 71, 63, 74, 65, 65, 78, 64, 56, 55, 61, 90, 51, 74, 53, 62, 71, 53, 60, 78, 53, 67, 60, 63, 55, 74, 63, 86, 55, 137, 98, 64, 61, 56, 72, 64, 71, 53, 66, 77, 56, 58, 79, 65, 86, 76, 65, 76, 40, 55, 46, 69, 49, 43, 93, 78, 56, 70, 73, 75, 64, 51, 83, 70, 82, 70, 67, 76, 70, 51, 62, 64, 71, 66, 52, 130, 61, 84, 54, 83, 62, 58, 83, 57, 61, 47, 60, 102, 57, 59, 59, 58, 62, 63, 62, 67, 70, 109, 49, 53, 101, 56, 59, 57, 72, 76, 54, 62, 61, 58, 68, 65, 50, 56, 76, 67, 68, 80, 58, 69, 58, 51, 63, 52, 72, 49, 70, 58, 52, 65, 75, 48, 121, 51, 55, 81, 71, 52, 54, 60, 70, 68, 46, 66, 56, 67, 84, 102, 56, 59, 65, 70, 46, 44, 51, 51, 62, 122, 62, 66, 52, 64, 93, 47, 55, 67, 73, 65, 37, 50, 57, 75, 75, 76, 57, 47, 67, 95, 60, 57, 63, 71, 50, 63, 74, 51, 65, 90, 87, 85, 81, 127, 71, 73, 64, 52, 62, 40, 83, 60, 83, 69, 59, 67, 101, 73, 43, 69, 53, 63, 64, 72, 72, 66, 64, 61, 69, 75, 72, 57, 76, 56, 53, 65, 87, 66, 59, 79, 64, 62, 72, 63, 96, 73, 53, 54, 55, 65, 59, 72, 71, 70, 69, 71, 42, 60, 63, 49, 56, 69, 106, 58, 63, 50, 58, 69, 57, 55, 90, 116, 102, 62, 101, 56, 59, 52, 57, 75, 75, 76, 54, 83, 68, 54, 61, 60, 57, 57, 58, 55, 55, 65, 61, 68, 65, 42, 71, 59, 73, 93, 55, 57, 60, 57, 68, 65, 49, 76, 83, 74, 65, 71, 68, 89, 55, 91, 63, 52, 57, 56, 61, 63, 61, 86, 56, 51, 75, 65, 66, 61, 57, 70, 85, 89, 60, 61, 73, 57, 59, 63, 65, 125, 52, 54, 60, 71, 59, 56, 76, 80, 63, 64, 77, 66, 83, 55, 58, 54, 43, 66, 61, 63, 81, 100, 72, 72, 69, 66, 43, 77, 63, 107, 61, 64, 69, 74, 70, 50, 56, 46, 59, 63, 60, 89, 62, 61, 71, 65, 59, 46, 76, 52, 63, 72, 58, 50, 65, 71, 81, 54, 72, 51, 57, 53, 51, 106, 69, 58, 60, 66, 76, 111, 74, 61, 56, 65, 75, 54, 71, 57, 66, 72, 54, 61, 44, 49, 90, 67, 63, 55, 46, 84, 69, 60, 67, 74, 106, 74, 66, 57, 69, 86, 51, 39, 67, 78, 66, 50, 69, 56, 55, 100, 69, 70, 61, 44, 70, 63, 91, 74, 70, 50, 81, 80, 78, 78, 50, 65, 65, 76, 46, 66, 58, 54, 62, 82, 68, 62, 46, 58, 60, 62, 45, 63, 63, 65, 64, 76, 69, 68, 52, 65, 120, 45, 88, 65, 106, 68, 63, 80, 59, 65, 67, 52, 58, 87, 64, 55, 85, 64, 56, 57, 67, 81, 60, 58, 60, 52, 61, 125, 55, 81, 61, 71, 57, 61, 57, 68, 116, 58, 69, 67, 62, 54, 90, 57, 56, 76, 60, 53, 76, 52, 50, 104, 60, 60, 45, 71, 58, 51, 53, 55, 66, 71, 65, 71, 69, 81, 62, 62, 78, 52, 60, 68, 52, 73, 60, 55, 59, 59, 68, 69, 51, 77, 61, 66, 63, 72, 57, 90, 49, 68, 67, 58, 46, 67, 72, 59, 68, 65, 94, 57, 55, 69, 81, 66, 56, 65, 65, 72, 60, 87, 49, 94, 106, 45, 50, 56, 56, 62, 67, 74, 66, 67, 92, 86, 69, 66, 81, 68, 55, 52, 75, 63, 65, 71, 85, 66, 62, 80, 49, 63, 52, 54, 53, 79, 73, 77, 69, 67, 59, 65, 61, 64, 73, 79, 109, 58, 51, 73, 80, 55, 55, 81, 62, 62, 68, 76, 58, 79, 64, 66, 58, 60, 72, 62, 69, 53, 62, 70, 55, 67, 55, 65, 79, 52, 59, 60, 63, 60, 62, 84, 56, 58, 61, 70, 74, 65, 57, 81, 90, 66, 61, 60, 101, 43, 59, 54, 61, 55, 76, 60, 58, 58, 84, 62, 51, 71, 58, 58, 64, 62, 67, 61, 42, 57, 60, 60, 114, 46, 59, 51, 51, 66, 70, 45, 68, 117, 67, 55, 60, 49, 62, 61, 62, 65, 54, 66, 63, 88, 56, 63, 55, 127, 65, 73, 63, 53, 66, 67, 72, 67, 70, 90, 76, 61, 65, 74, 55, 66, 81, 74, 53, 80, 55, 56, 50, 89, 59, 68, 64, 72, 79, 52, 53, 72, 65, 66, 53, 69, 88, 56, 53, 76, 54, 50, 85, 61, 72, 60, 57, 54, 66, 58, 54, 60, 57, 64, 48, 68, 70, 55, 67, 52, 62, 49, 62, 125, 64, 59, 57, 74, 46, 66, 65, 68, 58, 79, 68, 84, 66, 90, 50, 52, 66, 63, 49, 61, 58, 78, 61, 61, 53, 61, 62, 65, 76, 54, 63, 58, 77, 62, 58, 72, 64, 83, 45, 69, 70, 83, 78, 76, 85, 58, 70, 67, 55, 66, 68, 70, 68, 57, 53, 55, 60, 68, 57, 53, 68, 71, 53, 65, 67, 60, 60, 60, 53, 63, 65, 69, 71, 49, 66, 81, 56, 66, 57, 68, 61, 49, 53, 46, 71, 62, 53, 56, 40, 66, 65, 59, 52, 63, 71, 77, 59, 66, 65, 80, 65, 69, 84, 70, 71, 67, 57, 48, 68, 57, 59, 78, 88, 61, 55, 67, 55, 57, 66, 55, 63, 55, 64, 67, 60, 68, 71, 61, 79, 65, 65, 69, 57, 64, 60, 69, 76, 61, 58, 68, 57, 52, 86, 66, 51, 70, 82, 60, 52, 77, 72, 79, 65, 57, 60, 82, 61, 65, 81, 76, 76, 61, 66, 63, 94, 123, 63, 59, 65, 86, 56, 73, 64, 61, 62, 72, 84, 58, 79, 80, 52, 89, 98, 60, 79, 59, 64, 67, 52, 71, 55, 62, 80, 62, 74, 52, 87, 68, 60, 52, 50, 47, 77, 65, 60, 66, 60, 57, 65, 59, 105, 64, 70, 75, 70, 62, 58, 63, 72, 65, 77, 63, 76, 54, 86, 67, 60, 74, 75, 76, 56, 58, 64, 57, 55, 46, 54, 79, 61, 74, 67, 68, 55, 55, 58, 75, 53, 77, 66, 52, 57, 63, 61, 61, 49, 62, 87, 60, 73, 71, 77, 58, 81, 58, 56, 75, 29, 53, 95, 54, 62, 66, 52, 68, 52, 60, 68, 70, 56, 73, 75, 51, 52, 49, 58, 66, 60, 65, 62, 68, 52, 76, 52, 69, 49, 60, 80, 72, 59, 61, 60, 64, 84, 67, 111, 59, 65, 59, 65, 60, 56, 78, 69, 48, 69, 47, 63, 114, 100, 67, 76, 86, 79, 66, 52, 80, 69, 66, 48, 60, 51, 64, 64, 64, 63, 57, 81, 62, 68, 52, 66, 52, 88, 74, 68, 88, 53, 72, 67, 86, 73, 66, 68, 68, 66, 63, 63, 73, 86, 90, 52, 63, 50, 61, 72, 55, 61, 76, 79, 78, 70, 76, 58, 100, 61, 62, 111, 47, 73, 69, 103, 87, 55, 67, 72, 47, 57, 55, 83, 64, 64, 62, 57, 61, 55, 62, 65, 63, 67, 80, 61, 62, 61, 59, 53, 56, 59, 65, 70, 64, 56, 60, 66, 76, 70, 54, 65, 98, 64, 64, 80, 63, 58, 60, 73, 60, 65, 65, 57, 98, 58, 46, 35, 71, 60, 63, 62, 74, 79, 71, 73, 74, 43, 72, 65, 60, 63, 92, 65, 93, 58, 60, 71, 66, 62, 51, 72, 60, 66, 56, 63, 64, 66, 62, 77, 48, 71, 77, 66, 61, 74, 70, 57, 90, 76, 65, 56, 73, 58, 60, 64, 59, 55, 74, 82, 59, 51, 62, 53, 53, 49, 85, 64, 69, 65, 68, 63, 75, 73, 64, 53, 64, 120, 84, 54, 71, 77, 78, 81, 81, 60, 67, 69, 71, 58, 57, 72, 71, 62, 102, 56, 67, 59, 92, 50, 67, 50, 57, 56, 66, 49, 85, 60, 52, 67, 62, 51, 72, 57, 87, 67, 68, 60, 64, 86, 58, 61, 55, 56, 75, 65, 57, 62, 63, 64, 62, 69, 76, 56, 59, 70, 60, 67, 66, 76, 61, 55, 76, 53, 68, 65, 75, 59, 62, 84, 96, 61, 61, 62, 73, 60, 52, 56, 77, 65, 61, 60, 61, 69, 60, 65, 64, 63, 52, 79, 83, 61, 95, 67, 65, 68, 50, 54, 58, 75, 72, 62, 82, 57, 80, 64, 61, 53, 85, 67, 75, 59, 65, 65, 63, 58, 64, 76, 67, 51, 60, 70, 80, 46, 94, 50, 63, 56, 62, 67, 101, 51, 50, 59, 62, 58, 65, 58, 77, 58, 65, 72, 57, 57, 105, 69, 63, 80, 52, 64, 65, 67, 64, 54, 53, 52, 60, 69, 52, 66, 63, 68, 60, 79, 48, 58, 77, 70, 74, 57, 58, 74, 52, 49, 49, 72, 59, 67, 48, 92, 56, 62, 69, 84, 69, 68, 59, 93, 52, 62, 56, 63, 58, 61, 68, 60, 68, 53, 58, 88, 72, 53, 68, 46, 56, 68, 66, 55, 63, 80, 58, 60, 68, 58, 92, 61, 70, 110, 62, 67, 63, 83, 89, 57, 79, 56, 67, 63, 104, 54, 67, 54, 50, 75, 53, 55, 65, 67, 35, 57, 37, 39, 74, 60, 91, 72, 100, 61, 61, 53, 53, 50, 74, 46, 69, 81, 45, 64, 57, 74, 54, 47, 44, 125, 53, 50, 76, 65, 101, 123, 72, 55, 57, 82, 70, 60, 105, 59, 53, 60, 45, 70, 66, 79, 43, 57, 69, 52, 60, 65, 53, 57, 59, 62, 76, 62, 91, 47, 82, 73, 69, 68, 73, 78, 91, 66, 81, 73, 58, 39, 59, 75, 49, 57, 79, 78, 80, 58, 75, 53, 54, 60, 63, 72, 61, 80, 53, 66, 76, 108, 76, 57, 66, 53, 65, 69, 50, 54, 48, 66, 56, 67, 91, 63, 106, 53, 69, 89, 51, 49, 40, 74, 63, 49, 69, 70, 49, 73, 59, 77, 94, 58, 80, 80, 117, 73, 65, 67, 54, 71, 79, 67, 76, 53, 65, 72, 55, 72, 55, 107, 45, 62, 49, 78, 48, 44, 72, 75, 87, 71, 73, 104, 89, 126, 58, 40, 79, 74, 85, 64, 75, 77, 63, 90, 61, 99, 54, 50, 62, 53, 63, 99, 75, 90, 49, 73, 52, 66, 91, 45, 51, 42, 55, 47, 63, 61, 62, 76, 64, 67, 69, 42, 51, 92, 46, 56, 59, 56, 55, 72, 59, 57, 52, 70, 59, 71, 47, 43, 63, 55, 66, 97, 60, 93, 74, 63, 57, 51, 57, 59, 63, 59, 59, 56, 62, 73, 62, 80, 50, 59, 76, 50, 72, 80, 81, 45, 53, 56, 75, 71, 81, 65, 68, 57, 86, 55, 61, 74, 41, 66, 55, 83, 72, 67, 72, 90, 57, 80, 54, 76, 47, 65, 60, 113, 56, 50, 73, 53, 63, 55, 71, 62, 91, 50, 60, 56, 45, 58, 76, 86, 56, 67, 70, 100, 52, 60, 74, 72, 46, 119, 80, 55, 72, 56, 82, 57, 82, 72, 91, 77, 47, 55, 45, 79, 54, 89, 69, 89, 62, 85, 66, 47, 66, 83, 58, 46, 62, 61, 58, 75, 63, 74, 59, 68, 62, 37, 45, 55, 58, 65, 62, 71, 85, 65, 73, 60, 56, 51, 56, 67, 64, 66, 59, 64, 75, 72, 46, 71, 59, 53, 50, 59, 53, 90, 47, 64, 56, 43, 61, 75, 68, 74, 62, 102, 75, 63, 117, 60, 61, 90, 62, 76, 60, 102, 58, 75, 59, 74, 61, 88, 56, 76, 57, 85, 63, 142, 66, 87, 72, 86, 51, 49, 62, 61, 49, 60, 98, 65, 115, 52, 37, 90, 65, 91, 92, 53, 84, 64, 55, 47, 70, 58, 72, 65, 68, 59, 67, 61, 65, 67, 68, 72, 55, 63, 100, 53, 54, 64, 40, 91, 60, 57, 64, 60, 52, 103, 69, 40, 66, 52, 39, 79, 61, 75, 94, 111, 42, 35, 68, 83, 56, 83, 114, 57, 57, 56, 70, 67, 69, 88, 64, 50, 79, 66, 89, 64, 64, 109, 59, 82, 64, 67, 66, 55, 38, 46, 65, 72, 82, 62, 62, 70, 59, 74, 58, 67, 75, 69, 71, 74, 53, 42, 54, 70, 59, 93, 70, 65, 53, 77, 82, 57, 63, 57, 58, 58, 74, 84, 79, 64, 50, 106, 109, 57, 53, 56, 72, 63, 44, 56, 52, 82, 59, 63, 61, 60, 71, 51, 65, 106, 91, 66, 50, 92, 55, 75, 52, 60, 66, 59, 53, 65, 104, 57, 48, 57, 63, 56, 61, 72, 68, 56, 56, 74, 54, 91, 56, 55, 48, 54, 65, 54, 54, 95, 43, 71, 75, 93, 58, 71, 28, 65, 52, 71, 64, 68, 73, 66, 72, 56, 65, 83, 87, 57, 69, 66, 96, 84, 73, 78, 81, 68, 88, 63, 46, 60, 58, 54, 62, 70, 72, 73, 66, 66, 36, 72, 67, 61, 65, 55, 69, 61, 87, 57, 71, 70, 48, 42, 70, 65, 75, 86, 57, 49, 95, 54, 46, 48, 56, 63, 58, 64, 46, 97, 75, 33, 63, 81, 68, 54, 56, 54, 58, 47, 79, 68, 73, 58, 67, 59, 46, 94, 56, 47, 44, 45, 73, 70, 108, 66, 61, 93, 67, 82, 62, 57, 57, 54, 51, 71, 73, 68, 69, 61, 46, 58, 62, 75, 79, 58, 53, 89, 56, 67, 54, 63, 51, 88, 74, 91, 59, 63, 57, 83, 65, 57, 57, 73, 78, 66, 66, 58, 58, 59, 51, 62, 60, 64, 67, 53, 50, 56, 59, 83, 60, 47, 83, 73, 65, 70, 70, 54, 59, 69, 54, 67, 76, 53, 56, 90, 63, 96, 61, 76, 82, 60, 65, 47, 68, 70, 56, 43, 66, 68, 59, 73, 75, 46, 60, 84, 74, 77, 72, 71, 49, 54, 103, 64, 75, 61, 52, 58, 66, 63, 62, 64, 62, 62, 79, 69, 53, 56, 78, 79, 49, 65, 40, 89, 77, 51, 36, 66, 47, 70, 49, 63, 59, 67, 60, 52, 59, 49, 55, 56, 81, 54, 73, 60, 59, 65, 82, 65, 77, 65, 45, 71, 42, 94, 56, 50, 53, 65, 56, 58, 82, 82, 61, 94, 31, 109, 58, 79, 39, 64, 71, 87, 66, 45, 66, 46, 53, 59, 82, 62, 57, 69, 59, 57, 53, 85, 59, 46, 57, 83, 45, 126, 64, 63, 57, 59, 74, 57, 60, 44, 72, 56, 51, 45, 57, 97, 66, 124, 62, 58, 87, 58, 74, 26, 69, 68, 74, 68, 76, 157, 75, 53, 81, 36, 65, 70, 33, 52, 67, 88, 58, 115, 69, 54, 69, 52, 84, 47, 51, 72, 57, 52, 56, 95, 56, 64, 65, 84, 68, 47, 54, 69, 66, 48, 55, 48, 59, 85, 52, 68, 62, 90, 63, 55, 84, 50, 62, 46, 79, 47, 70, 91, 81, 67, 49, 51, 83, 50, 47, 74, 63, 75, 65, 49, 62, 56, 73, 115, 75, 50, 69, 86, 74, 54, 59, 81, 65, 70, 66, 76, 70, 87, 72, 75, 57, 68, 72, 89, 80, 53, 72, 69, 75, 62, 70, 78, 85, 69, 66, 62, 47, 72, 78, 69, 58, 61, 85, 81, 62, 51, 54, 102, 73, 63, 84, 61, 69, 64, 71, 77, 54, 75, 95, 64, 50, 72, 70, 72, 72, 46, 52, 66, 48, 59, 65, 46, 52, 66, 88, 72, 63, 52, 56, 54, 72, 56, 35, 76, 61, 65, 60, 48, 80, 52, 52, 67, 58, 79, 58, 71, 46, 78, 79, 74, 81, 90, 69, 44, 49, 67, 83, 56, 80, 42, 67, 76, 51, 81, 79, 73, 67, 79, 69, 70, 69, 51, 52, 46, 62, 66, 57, 77, 64, 85, 55, 60, 79, 50, 46, 67, 70, 163, 44, 75, 81, 45, 66, 65, 46, 84, 56, 69, 70, 68, 60, 64, 62, 56, 65, 74, 58, 40, 65, 63, 43, 69, 60, 57, 57, 58, 51, 61, 59, 86, 70, 76, 55, 75, 55, 61, 82, 76, 61, 84, 104, 70, 67, 67, 83, 55, 59, 64, 77, 53, 68, 78, 81, 88, 76, 71, 48, 48, 56, 56, 59, 87, 67, 61, 72, 54, 58, 62, 63, 61, 71, 69, 56, 46, 112, 50, 66, 72, 48, 56, 51, 55, 53, 61, 70, 56, 49, 70, 86, 63, 71, 53, 70, 53, 87, 49, 93, 70, 93, 87, 81, 71, 59, 61, 67, 60, 50, 95, 72, 58, 49, 80, 73, 48, 78, 66, 54, 57, 72, 55, 40, 66, 59, 59, 67, 73, 72, 60, 55, 67, 46, 60, 57, 65, 56, 46, 70, 64, 50, 64, 59, 64, 56, 57, 57, 57, 70, 68, 68, 48, 65, 56, 54, 58, 78, 72, 114, 48, 64, 67, 65, 74, 67, 70, 49, 56, 52, 57, 55, 70, 53, 71, 55, 60, 87, 78, 86, 75, 70, 69, 51, 53, 61, 54, 56, 57, 70, 46, 67, 55, 34, 68, 41, 89, 75, 93, 67, 66, 76, 69, 63, 60, 65, 73, 64, 60, 58, 59, 50, 62, 81, 58, 74, 85, 45, 73, 58, 91, 55, 61, 63, 51, 33, 61, 60, 72, 64, 56, 47, 61, 65, 81, 78, 62, 64, 60, 66, 64, 60, 59, 69, 60, 63, 64, 48, 70, 60, 81, 81, 61, 114, 48, 58, 54, 70, 59, 69, 75, 71, 51, 94, 90, 49, 52, 60, 61, 52, 93, 60, 65, 64, 44, 67, 70, 71, 50, 64, 55, 89, 64, 69, 45, 90, 51, 65, 62, 71, 67, 80, 63, 37, 57, 57, 106, 83, 60, 27, 147, 53, 70, 52, 79, 61, 88, 87, 81, 64, 71, 64, 113, 83, 59, 70, 54, 75, 54, 45, 54, 73, 61, 90, 75, 67, 64, 61, 43, 83, 71, 46, 68, 60, 57, 60, 65, 59, 46, 47, 94, 77, 80, 55, 71, 66, 61, 59, 79, 59, 79, 47, 67, 88, 40, 58, 93, 55, 53, 65, 77, 74, 54, 59, 59, 49, 68, 46, 75, 70, 71, 47, 67, 48, 73, 76, 72, 78, 68, 92, 86, 60, 67, 57, 63, 72, 54, 57, 70, 52, 61, 39, 69, 57, 54, 78, 68, 65, 34, 68, 80, 60, 38, 51, 67, 73, 59, 68, 51, 57, 54, 57, 56, 50, 63, 69, 82, 59, 74, 64, 69, 53, 50, 60, 64, 63, 57, 54, 60, 76, 73, 64, 54, 52, 73, 66, 73, 83, 52, 93, 74, 53, 72, 52, 47, 57, 57, 50, 94, 83, 53, 55, 51, 63, 56, 56, 76, 69, 104, 62, 55, 52, 70, 76, 78, 70, 88, 58, 59, 80, 64, 69, 47, 62, 63, 46, 58, 41, 91, 74, 75, 63, 55, 81, 65, 63, 79, 102, 64, 60, 52, 54, 58, 60, 49, 67, 65, 74, 48, 72, 49, 68, 96, 65, 100, 48, 55, 71, 91, 49, 41, 51, 68, 63, 60, 80, 83, 63, 53, 64, 102, 81, 51, 60, 40, 67, 76, 56, 67, 46, 71, 68, 74, 71, 84, 54, 49, 51, 64, 50, 63, 70, 79, 57, 74, 66, 67, 64, 63, 74, 65, 57, 57, 52, 99, 65, 56, 62, 41, 53, 72, 74, 73, 68, 76, 55, 56, 61, 63, 73, 69, 53, 73, 52, 87, 58, 52, 73, 52, 90, 82, 55, 73, 58, 68, 59, 55, 53, 49, 57, 56, 60, 53, 62, 80, 65, 74, 75, 64, 57, 103, 63, 65, 84, 46, 70, 76, 53, 66, 66, 76, 44, 59, 67, 71, 51, 79, 43, 68, 75, 58, 63, 76, 70, 58, 55, 91, 70, 68, 59, 68, 62, 56, 52, 68, 60, 96, 77, 90, 91, 101, 53, 47, 65, 57, 66, 107, 71, 74, 53, 52, 50, 54, 81, 90, 59, 54, 62, 79, 56, 76, 65, 80, 78, 64, 63, 87, 62, 45, 67, 75, 51, 83, 47, 53, 62, 67, 57, 77, 67, 56, 61, 61, 78, 113, 46, 46, 37, 57, 77, 60, 63, 63, 78, 114, 41, 76, 74, 78, 60, 33, 83, 89, 91, 63, 66, 44, 52, 54, 53, 68, 78, 45, 69, 78, 75, 65, 38, 55, 151, 38, 53, 55, 59, 57, 74, 64, 72, 29, 71, 49, 56, 70, 49, 60, 71, 78, 83, 82, 63, 81, 44, 55, 52, 47, 71, 43, 81, 66, 69, 75, 75, 69, 73, 113, 106, 54, 61, 62, 75, 78, 54, 89, 48, 66, 53, 76, 60, 58, 71, 65, 101, 49, 69, 85, 55, 75, 59, 49, 77, 67, 68, 72, 63, 47, 66, 82, 63, 71, 48, 55, 80, 57, 70, 54, 61, 75, 57, 55, 59, 69, 75, 48, 70, 51, 78, 86, 78, 102, 53, 72, 80, 67, 94, 74, 59, 64, 78, 47, 48, 70, 67, 80, 61, 54, 105, 69, 50, 58, 46, 63, 75, 89, 81, 56, 63, 134, 61, 58, 58, 142, 88, 92, 53, 49, 60, 66, 49, 78, 82, 102, 54, 66, 53, 69, 94, 75, 65, 86, 55, 65, 71, 55, 65, 69, 70, 72, 64, 61, 61, 63, 51, 68, 74, 80, 55, 66, 59, 50, 74, 72, 65, 77, 75, 71, 66, 50, 71, 89, 66, 67, 60, 72, 55, 57, 89, 54, 81, 70, 91, 46, 67, 94, 52, 67, 59, 62, 74, 84, 51, 60, 103, 54, 55, 79, 44, 59, 64, 77, 73, 58, 68, 57, 94, 74, 54, 62, 68, 87, 65, 61, 56, 102, 78, 113, 54, 57, 52, 71, 52, 58, 78, 70, 67, 46, 72, 57, 86, 57, 95, 52, 68, 50, 85, 56, 49, 74, 61, 50, 90, 85, 61, 57, 54, 74, 65, 71, 42, 75, 70, 79, 80, 63, 68, 71, 80, 53, 77, 66, 38, 49, 57, 67, 81, 73, 107, 125, 51, 88, 98, 47, 52, 44, 51, 48, 48, 79, 62, 66, 54, 56, 57, 87, 70, 69, 70, 44, 82, 80, 81, 78, 68, 64, 48, 48, 46, 56, 67, 52, 102, 53, 65, 68, 62, 57, 77, 78, 79, 61, 112, 60, 43, 84, 73, 83, 56, 71, 56, 55, 77, 64, 43, 69, 79, 44, 85, 58, 87, 58, 66, 59, 87, 47, 84, 48, 62, 94, 67, 71, 68, 49, 91, 71, 70, 49, 39, 50, 67, 66, 51, 40, 53, 55, 49, 80, 93, 60, 68, 70, 61, 49, 68, 56, 84, 78, 59, 67, 62, 40, 97, 51, 71, 77, 66, 67, 83, 59, 83, 57, 49, 73, 60, 74, 107, 84, 82, 58, 81, 58, 76, 58, 65, 56, 68, 50, 53, 53, 83, 70, 79, 91, 71, 54, 78, 70, 74, 132, 66, 68, 52, 73, 49, 97, 66, 78, 91, 51, 91, 96, 52, 46, 57, 58, 53, 61, 50, 58, 38, 66, 91, 45, 53, 58, 50, 68, 63, 95, 60, 48, 43, 69, 64, 68, 67, 51, 71, 103, 52, 79, 56, 64, 68, 69, 58, 62, 67, 54, 59, 45, 88, 89, 73, 45, 50, 84, 57, 87, 60, 65, 59, 100, 80, 58, 112, 60, 60, 65, 40, 68, 50, 68, 53, 81, 75, 68, 83, 65, 110, 55, 84, 76, 50, 36, 75, 58, 81, 52, 71, 65, 65, 84, 87, 75, 56, 82, 57, 68, 66, 65, 57, 59, 65, 84, 62, 70, 56, 73, 57, 51, 58, 51, 68, 61, 67, 66, 74, 56, 72, 58, 72, 67, 48, 61, 57, 63, 70, 68, 71, 57, 74, 80, 49, 53, 53, 56, 53, 68, 80, 91, 82, 81, 50, 67, 85, 65, 79, 69, 65, 62, 76, 83, 59, 55, 66, 52, 87, 54, 56, 69, 57, 72, 54, 68, 54, 49, 72, 64, 53, 91, 75, 70, 64, 70, 74, 75, 57, 70, 52, 77, 64, 61, 42, 65, 53, 69, 59, 95, 64, 82, 54, 60, 58, 71, 44, 73, 85, 50, 49, 79, 75, 51, 81, 55, 61, 73, 61, 109, 53, 69, 61, 50, 51, 73, 86, 60, 61, 55, 77, 52, 82, 84, 90, 76, 98, 81, 62, 68, 101, 72, 65, 67, 68, 65, 55, 100, 70, 64, 58, 43, 80, 51, 69, 54, 81, 48, 61, 51, 89, 67, 61, 54, 50, 54, 46, 55, 67, 58, 52, 53, 59, 76, 51, 65, 59, 55, 78, 66, 68, 61, 52, 67, 81, 59, 74, 50, 69, 52, 63, 42, 51, 43, 65, 54, 66, 63, 69, 61, 65, 51, 45, 51, 61, 59, 66, 41, 74, 66, 67, 89, 79, 72, 72, 79, 66, 83, 65, 60, 53, 72, 82, 83, 51, 80, 50, 73, 51, 40, 43, 56, 62, 86, 73, 51, 61, 67, 85, 72, 83, 55, 96, 57, 64, 57, 64, 55, 78, 61, 72, 77, 78, 45, 68, 78, 67, 48, 74, 79, 64, 49, 49, 91, 70, 62, 78, 56, 71, 47, 60, 63, 60, 64, 57, 83, 66, 68, 51, 74, 56, 82, 63, 78, 55, 98, 74, 72, 66, 65, 36, 73, 54, 115, 53, 68, 59, 74, 81, 58, 54, 55, 57, 56, 73, 39, 80, 64, 65, 74, 53, 76, 71, 60, 72, 47, 67, 76, 64, 55, 81, 71, 66, 51, 71, 53, 63, 39, 65, 69, 62, 78, 71, 49, 63, 75, 55, 87, 56, 55, 42, 65, 61, 59, 50, 111, 73, 55, 67, 68, 52, 54, 75, 67, 96, 79, 68, 70, 80, 57, 52, 53, 55, 57, 74, 64, 61, 51, 73, 63, 70, 90, 92, 47, 90, 68, 62, 99, 51, 55, 87, 55, 50, 71, 71, 76, 67, 72, 60, 89, 48, 74, 82, 69, 71, 75, 79, 50, 61, 43, 84, 67, 51, 77, 74, 63, 66, 59, 77, 53, 43, 61, 75, 67, 66, 69, 64, 66, 51, 75, 71, 64, 66, 68, 70, 51, 69, 54, 40, 69, 47, 76, 64, 63, 94, 61, 67, 83, 75, 69, 54, 70, 62, 73, 60, 79, 70, 73, 60, 83, 76, 84, 51, 84, 77, 77, 84, 68, 81, 69, 63, 62, 49, 84, 60, 83, 71, 69, 101, 64, 78, 46, 84, 77, 73, 65, 60, 71, 70, 73, 55, 71, 64, 69, 51, 44, 57, 95, 67, 81, 77, 72, 62, 68, 53, 72, 94, 66, 66, 55, 58, 64, 69, 52, 53, 50, 76, 51, 67, 68, 65, 60, 93, 60, 76, 83, 74, 57, 72, 83, 50, 45, 88, 47, 71, 57, 80, 55, 86, 56, 52, 59, 69, 62, 54, 65, 77, 84, 68, 92, 75, 63, 63, 68, 58, 58, 64, 55, 39, 53, 65, 74, 74, 44, 101, 76, 70, 69, 77, 56, 59, 64, 65, 80, 58, 61, 45, 63, 63, 73, 100, 84, 59, 89, 86, 96, 67, 52, 83, 55, 63, 95, 85, 57, 68, 79, 62, 72, 60, 56, 48, 39, 60, 70, 85, 74, 54, 56, 61, 93, 77, 56, 91, 91, 62, 71, 53, 60, 68, 70, 65, 64, 79, 48, 60, 58, 56, 39, 57, 63, 64, 56, 71, 76, 76, 58, 70, 69, 46, 107, 60, 80, 69, 78, 64, 59, 74, 59, 62, 43, 53, 61, 65, 84, 71, 90, 57, 64, 79, 51, 57, 67, 78, 67, 72, 75, 63, 66, 49, 64, 80, 66, 61, 57, 58, 53, 52, 44, 66, 73, 96, 73, 76, 69, 62, 75, 58, 83, 78, 67, 72, 63, 72, 54, 61, 75, 39, 76, 59, 50, 56, 57, 98, 62, 52, 49, 57, 84, 66, 63, 83, 69, 87, 44, 67, 65, 57, 49, 73, 60, 55, 62, 84, 50, 53, 53, 73, 65, 66, 54, 74, 63, 63, 50, 58, 77, 69, 69, 71, 63, 84, 72, 70, 60, 73, 61, 85, 84, 77, 67, 62, 68, 61, 53, 67, 77, 62, 75, 85, 69, 74, 50, 58, 59, 56, 112, 73, 46, 55, 63, 63, 70, 74, 77, 65, 84, 54, 57, 59, 72, 57, 59, 41, 68, 57, 64, 36, 77, 61, 87, 69, 62, 60, 54, 84, 60, 50, 64, 80, 81, 61, 88, 41, 62, 56, 62, 86, 60, 62, 51, 59, 70, 56, 65, 56, 62, 76, 69, 95, 74, 131, 66, 66, 67, 55, 70, 70, 85, 65, 54, 62, 60, 59, 58, 98, 54, 66, 70, 45, 53, 91, 59, 56, 72, 77, 56, 59, 82, 75, 70, 53, 69, 63, 77, 73, 77, 67, 101, 59, 63, 75, 53, 70, 61, 69, 57, 65, 68, 63, 61, 63, 69, 50, 80, 86, 63, 51, 74, 74, 87, 56, 68, 81, 59, 60, 81, 56, 70, 82, 64, 70, 79, 60, 68, 91, 44, 55, 69, 73, 50, 64, 47, 63, 73, 75, 87, 47, 88, 75, 69, 53, 63, 52, 29, 65, 54, 58, 50, 67, 57, 58, 64, 86, 53, 59, 58, 102, 96, 95, 53, 48, 92, 68, 44, 83, 48, 66, 58, 76, 68, 51, 52, 68, 63, 87, 68, 95, 65, 57, 54, 65, 54, 109, 66, 61, 72, 56, 101, 71, 59, 68, 76, 69, 68, 46, 75, 64, 66, 75, 65, 61, 69, 62, 50, 47, 54, 49, 80, 67, 84, 65, 83, 78, 73, 55, 78, 91, 55, 78, 58, 94, 64, 64, 59, 57, 61, 93, 78, 60, 34, 72, 33, 86, 72, 53, 74, 56, 54, 66, 63, 62, 93, 48, 62, 72, 45, 77, 68, 57, 74, 103, 85, 59, 56, 77, 49, 60, 57, 81, 49, 67, 52, 100, 52, 49, 58, 56, 68, 59, 79, 83, 50, 81, 79, 74, 72, 69, 72, 57, 61, 67, 58, 73, 58, 62, 64, 57, 73, 50, 47, 74, 86, 68, 52, 57, 94, 78, 53, 65, 53, 67, 57, 86, 62, 68, 58, 52, 63, 92, 82, 103, 49, 64, 64, 74, 38, 39, 67, 81, 81, 49, 57, 61, 73, 82, 51, 77, 54, 65, 101, 65, 62, 66, 47, 42, 61, 60, 56, 79, 39, 56, 53, 61, 82, 83, 60, 100, 48, 72, 49, 58, 77, 54, 70, 75, 72, 65, 73, 79, 55, 68, 62, 51, 63, 54, 44, 79, 73, 65, 45, 62, 77, 82, 55, 82, 55, 80, 67, 64, 54, 101, 57, 78, 81, 48, 54, 70, 72, 56, 87, 52, 67, 54, 49, 84, 91, 49, 57, 67, 63, 81, 67, 64, 39, 54, 127, 91, 62, 73, 78, 99, 69, 58, 71, 65, 61, 54, 48, 78, 63, 63, 67, 51, 97, 78, 59, 57, 69, 80, 71, 89, 81, 97, 60, 58, 51, 76, 73, 55, 56, 70, 43, 72, 83, 61, 64, 95, 66, 64, 73, 76, 67, 57, 68, 37, 39, 49, 71, 73, 52, 66, 58, 67, 80, 45, 53, 68, 53, 81, 97, 61, 53, 76, 59, 60, 60, 42, 88, 66, 84, 67, 66, 58, 68, 72, 58, 69, 86, 63, 46, 54, 87, 60, 57, 69, 104, 71, 76, 67, 58, 64, 62, 58, 86, 115, 50, 37, 67, 61, 68, 50, 63, 85, 55, 38, 43, 63, 61, 66, 63, 50, 60, 59, 75, 89, 76, 68, 71, 67, 71, 57, 63, 65, 51, 53, 96, 72, 66, 50, 79, 66, 59, 56, 99, 78, 94, 75, 45, 47, 44, 69, 48, 50, 93, 50, 84, 63, 51, 35, 70, 44, 89, 68, 69, 51, 68, 55, 59, 85, 88, 70, 62, 65, 71, 62, 48, 138, 51, 92, 61, 68, 67, 62, 62, 70, 68, 46, 87, 60, 51, 50, 67, 77, 72, 77, 48, 72, 60, 44, 49, 63, 53, 42, 67, 73, 82, 78, 62, 60, 62, 75, 61, 68, 78, 71, 95, 62, 76, 67, 64, 46, 52, 71, 71, 52, 80, 63, 55, 67, 85, 64, 104, 75, 41, 67, 60, 59, 42, 54, 60, 72, 45, 83, 70, 52, 66, 47, 64, 71, 56, 41, 74, 58, 54, 57, 64, 38, 95, 75, 81, 47, 73, 47, 59, 63, 90, 36, 71, 79, 52, 35, 72, 65, 60, 57, 53, 58, 59, 62, 89, 50, 62, 75, 40, 82, 56, 66, 72, 61, 75, 101, 63, 54, 64, 65, 88, 56, 55, 112, 49, 54, 64, 68, 57, 58, 52, 53, 97, 64, 112, 63, 68, 44, 99, 75, 104, 85, 102, 69, 81, 43, 60, 83, 60, 69, 75, 67, 77, 60, 56, 71, 69, 60, 68, 53, 66, 36, 83, 48, 62, 51, 71, 60, 67, 61, 59, 61, 75, 46, 70, 59, 69, 70, 61, 65, 93, 74, 59, 68, 62, 93, 63, 46, 63, 49, 61, 41, 48, 60, 41, 48, 107, 67, 69, 56, 55, 133, 58, 63, 59, 63, 86, 64, 75, 61, 68, 58, 62, 57, 71, 77, 70, 57, 62, 69, 68, 77, 63, 55, 74, 66, 50, 67, 79, 65, 50, 68, 80, 83, 76, 74, 57, 65, 78, 69, 61, 78, 78, 54, 72, 69, 57, 68, 64, 60, 62, 54, 71, 98, 95, 72, 63, 58, 64, 87, 77, 61, 74, 71, 74, 49, 76, 47, 105, 37, 43, 59, 58, 63, 83, 64, 68, 54, 71, 64, 48, 58, 100, 67, 67, 60, 89, 94, 69, 79, 55, 48, 77, 84, 72, 62, 68, 57, 54, 72, 55, 46, 61, 74, 65, 85, 60, 34, 80, 49, 66, 80, 85, 56, 79, 58, 81, 61, 79, 54, 50, 41, 80, 72, 69, 63, 53, 51, 74, 78, 69, 59, 64, 68, 53, 51, 65, 72, 77, 66, 47, 67, 53, 69, 64, 75, 61, 68, 79, 71, 80, 50, 66, 73, 54, 62, 55, 54, 54, 45, 74, 61, 72, 51, 81, 59, 64, 77, 78, 61, 80, 46, 63, 63, 53, 48, 50, 52, 109, 53, 70, 71, 59, 55, 58, 75, 56, 55, 41, 75, 70, 88, 82, 94, 52, 53, 81, 73, 85, 63, 64, 57, 94, 67, 49, 80, 69, 81, 55, 65, 66, 61, 74, 83, 63, 67, 70, 90, 76, 75, 96, 50, 48, 64, 64, 77, 53, 59, 58, 53, 56, 58, 82, 92, 113, 58, 53, 106, 87, 54, 45, 52, 83, 58, 63, 78, 61, 54, 84, 65, 70, 76, 66, 59, 42, 68, 51, 82, 69, 50, 49, 52, 87, 61, 69, 102, 60, 45, 48, 43, 79, 80, 58, 93, 70, 57, 56, 63, 64, 48, 57, 77, 84, 67, 98, 67, 88, 66, 46, 70, 68, 83, 113, 80, 97, 48, 58, 103, 67, 90, 38, 62, 62, 72, 78, 53, 57, 68, 68, 74, 98, 69, 75, 75, 72, 69, 47, 60, 57, 65, 57, 59, 74, 117, 58, 68, 70, 52, 76, 55, 55, 69, 52, 80, 46, 78, 82, 75, 38, 68, 86, 49, 46, 44, 62, 78, 57, 78, 45, 56, 59, 111, 94, 37, 78, 80, 38, 55, 52, 66, 51, 73, 48, 59, 81, 70, 66, 77, 78, 58, 55, 84, 60, 49, 55, 44, 83, 83, 66, 49, 82, 91, 52, 61, 114, 72, 63, 57, 75, 51, 75, 62, 80, 45, 90, 53, 66, 65, 41, 62, 59, 65, 68, 95, 81, 47, 123, 58, 132, 93, 53, 73, 62, 102, 60, 53, 47, 70, 63, 100, 77, 78, 71, 54, 39, 50, 66, 59, 63, 51, 75, 70, 63, 60, 67, 62, 75, 67, 89, 77, 39, 55, 48, 81, 77, 57, 54, 63, 69, 73, 66, 80, 26, 55, 84, 66, 48, 50, 82, 49, 52, 59, 108, 60, 60, 51, 84, 88, 56, 41, 71, 78, 61, 56, 61, 80, 63, 54, 72, 68, 70, 39, 46, 66, 50, 63, 77, 56, 58, 80, 75, 70, 51, 66, 59, 57, 76, 77, 70, 74, 92, 64, 72, 76, 33, 111, 67, 52, 74, 66, 59, 79, 81, 52, 57, 69, 77, 81, 50, 88, 67, 56, 55, 53, 60, 92, 58, 44, 59, 63, 40, 119, 75, 64, 72, 62, 74, 45, 60, 58, 56, 91, 73, 63, 72, 92, 94, 60, 45, 60, 71, 54, 52, 42, 49, 52, 53, 62, 102, 83, 50, 76, 56, 58, 67, 80, 39, 68, 54, 46, 67, 53, 66, 56, 59, 49, 74, 55, 88, 72, 63, 68, 96, 88, 108, 49, 57, 73, 82, 94, 74, 93, 40, 77, 76, 58, 31, 72, 45, 53, 112, 62, 66, 68, 56, 61, 59, 100, 66, 67, 55, 66, 70, 67, 78, 45, 40, 47, 56, 48, 44, 64, 53, 40, 53, 64, 58, 47, 57, 63, 53, 71, 88, 61, 87, 79, 92, 45, 85, 92, 73, 55, 76, 94, 65, 58, 83, 69, 106, 59, 78, 74, 86, 65, 52, 86, 60, 61, 87, 60, 64, 54, 80, 65, 50, 41, 69, 102, 45, 56, 58, 59, 57, 86, 62, 78, 42, 86, 79, 82, 80, 62, 57, 46, 65, 67, 77, 63, 67, 87, 61, 44, 57, 46, 87, 44, 77, 69, 37, 52, 56, 71, 58, 50, 87, 69, 62, 64, 42, 29, 53, 59, 78, 60, 105, 65, 79, 58, 97, 42, 54, 70, 64, 67, 66, 75, 55, 118, 77, 59, 60, 54, 68, 65, 65, 60, 79, 67, 74, 61, 69, 98, 106, 62, 57, 45, 101, 38, 60, 61, 68, 86, 68, 76, 56, 79, 57, 59, 82, 75, 111, 44, 71, 35, 61, 35, 61, 19, 65, 67, 60, 85, 52, 46, 56, 54, 78, 87, 64, 106, 68, 64, 60, 56, 49, 86, 54, 70, 108, 55, 82, 90, 125, 68, 52, 40, 99, 60, 29, 94, 66, 74, 50, 55, 56, 58, 59, 78, 77, 60, 67, 67, 48, 94, 78, 76, 64, 55, 38, 67, 66, 68, 97, 54, 92, 74, 44, 53, 42, 50, 67, 62, 69, 120, 66, 61, 61, 67, 68, 49, 73, 64, 64, 58, 47, 91, 47, 70, 71, 74, 62, 77, 55, 61, 50, 78, 54, 80, 73, 68, 46, 49, 78, 50, 99, 80, 53, 78, 49, 91, 82, 100, 125, 38, 75, 68, 57, 80, 104, 82, 58, 61, 80, 74, 48, 58, 100, 90, 70, 60, 75, 61, 96, 82, 60, 48, 53, 68, 57, 52, 70, 83, 62, 94, 39, 75, 67, 61, 77, 54, 91, 69, 61, 50, 65, 58, 70, 79, 57, 65, 50, 80, 49, 49, 51, 80, 74, 84, 52, 55, 45, 85, 50, 72, 67, 48, 52, 69, 60, 47, 64, 84, 93, 72, 54, 87, 74, 67, 70, 64, 81, 60, 60, 55, 78, 79, 110, 65, 68, 90, 52, 60, 44, 71, 66, 75, 48, 30, 68, 47, 65, 54, 79, 65, 46, 80, 50, 95, 42, 84, 64, 64, 67, 70, 60, 74, 64, 79, 71, 68, 62, 77, 60, 75, 43, 54, 58, 71, 71, 98, 89, 70, 55, 54, 70, 64, 48, 63, 85, 41, 29, 61, 40, 45, 87, 87, 58, 70, 60, 63, 75, 66, 62, 68, 75, 96, 81, 66, 48, 65, 81, 67, 67, 43, 69, 83, 59, 68, 68, 66, 65, 90, 72, 70, 89, 56, 41, 50, 93, 57, 64, 56, 83, 74, 44, 103, 52, 64, 65, 51, 54, 50, 65, 66, 44, 60, 62, 56, 79, 72, 68, 69, 85, 71, 68, 65, 56, 96, 73, 58, 71, 87, 66, 53, 80, 61, 77, 85, 84, 52, 80, 58, 38, 78, 63, 64, 70, 57, 69, 64, 46, 40, 70, 48, 56, 51, 53, 80, 70, 59, 71, 71, 73, 84, 80, 60, 80, 60, 52, 49, 66, 84, 69, 78, 67, 55, 68, 74, 56, 62, 61, 77, 79, 59, 85, 88, 88, 76, 65, 102, 55, 53, 109, 73, 75, 80, 92, 72, 58, 58, 62, 48, 80, 71, 77, 50, 63, 53, 62, 54, 63, 30, 61, 77, 58, 54, 65, 65, 75, 57, 48, 55, 53, 47, 57, 79, 47, 50, 69, 49, 86, 53, 67, 69, 72, 58, 67, 79, 89, 69, 68, 62, 50, 65, 64, 54, 70, 78, 60, 55, 41, 68, 56, 54, 42, 90, 54, 51, 67, 42, 89, 54, 83, 48, 71, 52, 78, 56, 79, 71, 75, 91, 82, 70, 54, 62, 67, 71, 58, 62, 90, 70, 43, 46, 59, 57, 77, 58, 72, 51, 50, 53, 67, 56, 72, 70, 67, 53, 68, 59, 75, 95, 71, 77, 36, 40, 84, 50, 72, 58, 43, 70, 55, 77, 63, 94, 73, 59, 45, 58, 46, 61, 71, 59, 70, 44, 55, 79, 48, 66, 55, 81, 68, 51, 64, 61, 47, 49, 53, 67, 75, 102, 73, 82, 68, 81, 58, 64, 77, 74, 71, 64, 54, 69, 73, 55, 65, 79, 62, 52, 102, 59, 103, 44, 51, 40, 41, 46, 69, 64, 44, 59, 79, 72, 48, 57, 74, 68, 61, 67, 53, 64, 71, 86, 66, 58, 80, 50, 52, 66, 68, 60, 76, 70, 61, 56, 58, 56, 104, 60, 83, 72, 44, 52, 62, 65, 63, 91, 62, 130, 76, 71, 61, 75, 67, 90, 43, 58, 80, 69, 81, 97, 75, 55, 59, 79, 69, 81, 56, 62, 43, 70, 77, 59, 84, 57, 79, 50, 79, 65, 109, 73, 70, 54, 75, 68, 54, 62, 64, 51, 52, 83, 61, 89, 69, 63, 74, 82, 78, 54, 98, 44, 63, 72, 54, 83, 79, 52, 63, 71, 62, 60, 58, 57, 63, 72, 51, 59, 59, 73, 68, 70, 68, 52, 53, 79, 74, 74, 70, 65, 75, 56, 62, 50, 59, 84, 62, 98, 72, 74, 44, 55, 62, 46, 60, 91, 54, 64, 65, 91, 45, 68, 65, 73, 45, 72, 64, 75, 106, 54, 80, 69, 60, 81, 80, 63, 57, 74, 65, 74, 63, 57, 79, 63, 76, 68, 59, 113, 38, 50, 91, 54, 54, 54, 60, 72, 95, 82, 54, 54, 62, 88, 51, 61, 56, 60, 59, 52, 68, 70, 63, 71, 51, 64, 73, 60, 48, 80, 47, 65, 54, 99, 56, 86, 61, 57, 80, 42, 90, 63, 68, 55, 45, 66, 89, 53, 65, 55, 55, 49, 57, 70, 69, 82, 59, 78, 79, 54, 73, 83, 61, 68, 64, 83, 104, 59, 56, 69, 62, 62, 61, 81, 71, 59, 75, 59, 59, 72, 74, 48, 66, 58, 80, 57, 61, 62, 81, 70, 50, 46, 51, 61, 67, 76, 54, 67, 53, 40, 71, 62, 68, 56, 57, 82, 58, 64, 58, 57, 58, 61, 62, 80, 70, 65, 55, 70, 90, 48, 72, 82, 100, 75, 55, 60, 55, 66, 69, 61, 86, 87, 92, 88, 59, 62, 47, 81, 57, 72, 65, 54, 72, 111, 93, 69, 77, 84, 64, 52, 58, 72, 62, 69, 48, 68, 45, 66, 50, 61, 47, 68, 59, 67, 59, 69, 64, 80, 56, 89, 51, 56, 72, 79, 60, 49, 71, 58, 60, 63, 66, 34, 93, 63, 71, 58, 66, 61, 60, 79, 51, 74, 57, 68, 50, 56, 63, 66, 63, 58, 60, 51, 68, 80, 57, 92, 57, 67, 63, 80, 57, 95, 59, 52, 89, 103, 57, 49, 55, 65, 64, 67, 68, 55, 74, 43, 78, 86, 70, 35, 77, 54, 75, 91, 74, 69, 59, 86, 108, 70, 59, 72, 55, 45, 52, 95, 66, 80, 56, 70, 65, 75, 53, 76, 75, 77, 73, 70, 68, 52, 60, 66, 51, 89, 59, 50, 64, 63, 70, 54, 61, 44, 78, 33, 54, 63, 49, 73, 63, 51, 118, 60, 77, 47, 98, 70, 74, 59, 56, 51, 39, 46, 54, 51, 83, 46, 72, 55, 68, 70, 68, 58, 72, 75, 73, 66, 117, 55, 66, 58, 78, 69, 57, 65, 46, 72, 59, 58, 43, 112, 52, 59, 50, 79, 89, 39, 46, 75, 64, 72, 97, 68, 74, 56, 62, 60, 53, 65, 63, 68, 79, 65, 37, 53, 69, 46, 98, 52, 79, 57, 91, 80, 57, 50, 51, 46, 63, 68, 61, 55, 56, 60, 85, 30, 92, 51, 67, 63, 65, 62, 47, 64, 75, 59, 53, 69, 91, 82, 57, 61, 72, 98, 74, 61, 97, 87, 76, 62, 71, 62, 75, 61, 39, 57, 78, 48, 60, 93, 89, 34, 90, 40, 56, 68, 111, 61, 51, 64, 56, 73, 68, 73, 75, 60, 51, 49, 41, 49, 66, 85, 38, 86, 74, 51, 47, 70, 44, 43, 67, 68, 47, 51, 76, 47, 67, 60, 45, 51, 55, 107, 51, 92, 65, 56, 78, 52, 56, 83, 56, 60, 61, 65, 57, 65, 80, 64, 51, 111, 85, 63, 71, 61, 60, 52, 60, 59, 75, 86, 64, 80, 124, 82, 70, 50, 57, 89, 68, 72, 49, 70, 58, 97, 54, 62, 70, 82, 67, 54, 60, 59, 78, 61, 58, 87, 64, 66, 61, 65, 68, 66, 57, 57, 70, 65, 72, 85, 34, 94, 67, 55, 60, 78, 49, 70, 45, 72, 59, 89, 46, 64, 80, 72, 42, 69, 55, 75, 92, 52, 54, 60, 52, 72, 66, 74, 64, 44, 37, 76, 69, 54, 71, 97, 88, 61, 84, 57, 80, 58, 79, 59, 73, 67, 98, 65, 92, 84, 67, 74, 65, 76, 70, 68, 57, 100, 60, 77, 42, 64, 107, 48, 72, 81, 63, 40, 62, 55, 57, 56, 83, 77, 59, 42, 46, 85, 64, 54, 81, 79, 57, 69, 62, 44, 66, 83, 78, 68, 61, 57, 66, 58, 83, 74, 68, 78, 69, 64, 38, 83, 84, 69, 67, 59, 70, 77, 54, 74, 65, 96, 85, 56, 50, 71, 74, 49, 60, 57, 89, 50, 57, 71, 83, 66, 58, 74, 64, 89, 65, 65, 56, 69, 65, 48, 68, 81, 61, 66, 39, 65, 86, 90, 67, 49, 65, 60, 59, 83, 101, 61, 58, 74, 59, 35, 62, 70, 52, 77, 71, 91, 88, 68, 78, 77, 51, 57, 69, 58, 54, 46, 76, 103, 55, 66, 69, 64, 61, 45, 120, 60, 56, 116, 64, 36, 68, 88, 53, 50, 75, 72, 49, 69, 53, 67, 104, 32, 71, 66, 84, 59, 79, 59, 48, 67, 72, 80, 56, 80, 56, 54, 79, 64, 64, 93, 122, 63, 70, 65, 66, 52, 79, 50, 69, 84, 40, 64, 76, 75, 59, 59, 69, 70, 90, 64, 60, 79, 71, 90, 59, 40, 75, 94, 86, 73, 59, 59, 71, 55, 62, 64, 61, 56, 54, 70, 63, 59, 64, 55, 58, 79, 57, 61, 77, 80, 48, 62, 63, 58, 38, 57, 38, 58, 53, 50, 92, 53, 69, 52, 59, 58, 50, 62, 60, 73, 74, 61, 52, 58, 57, 68, 65, 48, 71, 66, 48, 87, 59, 66, 61, 66, 113, 67, 79, 61, 66, 63, 57, 56, 72, 61, 63, 47, 52, 60, 75, 70, 64, 141, 69, 42, 57, 62, 65, 66, 60, 70, 40, 54, 57, 48, 84, 53, 62, 65, 45, 62, 77, 61, 50, 82, 71, 52, 52, 61, 67, 61, 60, 46, 61, 68, 46, 87, 58, 62, 46, 56, 78, 72, 77, 69, 67, 74, 78, 65, 66, 54, 76, 62, 64, 59, 55, 75, 44, 52, 55, 84, 68, 77, 68, 90, 78, 58, 65, 65, 71, 59, 62, 45, 74, 75, 59, 56, 69, 61, 61, 62, 64, 51, 65, 41, 82, 63, 59, 75, 67, 85, 65, 81, 74, 73, 74, 67, 87, 80, 68, 61, 51, 65, 52, 66, 56, 40, 63, 82, 53, 55, 52, 70, 56, 69, 37, 56, 68, 59, 86, 49, 88, 89, 42, 60, 98, 66, 55, 55, 54, 56, 67, 60, 45, 62, 44, 80, 78, 42, 68, 57, 48, 57, 78, 48, 108, 83, 74, 46, 73, 74, 62, 49, 88, 81, 57, 81, 48, 93, 56, 38, 95, 50, 60, 79, 56, 72, 67, 89, 66, 81, 63, 53, 59, 82, 65, 65, 76, 78, 62, 57, 69, 65, 43, 72, 63, 57, 72, 71, 88, 62, 57, 92, 61, 63, 75, 57, 65, 67, 98, 71, 72, 58, 63, 78, 78, 53, 54, 56, 51, 60, 84, 62, 62, 55, 53, 43, 68, 69, 82, 81, 51, 90, 68, 48, 57, 42, 76, 75, 60, 49, 79, 64, 55, 66, 77, 64, 66, 46, 101, 72, 54, 80, 58, 59, 65, 44, 58, 49, 55, 45, 86, 88, 74, 53, 53, 71, 62, 58, 48, 59, 67, 97, 49, 51, 71, 70, 64, 67, 74, 60, 60, 101, 51, 74, 54, 77, 69, 56, 68, 83, 75, 52, 62, 49, 67, 59, 84, 63, 97, 58, 106, 37, 56, 63, 75, 76, 48, 48, 57, 70, 56, 84, 78, 40, 85, 55, 51, 64, 74, 61, 71, 56, 63, 61, 60, 52, 65, 73, 74, 83, 66, 50, 51, 51, 88, 73, 69, 58, 66, 83, 71, 41, 46, 76, 50, 61, 88, 60, 67, 37, 33, 51, 51, 89, 74, 74, 66, 58, 75, 75, 80, 101, 46, 49, 58, 68, 68, 73, 63, 69, 76, 65, 68, 71, 62, 48, 100, 52, 70, 65, 60, 61, 69, 55, 60, 44, 47, 60, 71, 64, 58, 74, 100, 71, 67, 63, 53, 65, 66, 64, 90, 49, 69, 69, 66, 78, 64, 68, 42, 57, 58, 58, 60, 55, 59, 62, 103, 86, 63, 87, 53, 71, 75, 49, 66, 70, 89, 93, 62, 53, 57, 57, 55, 63, 61, 75, 42, 90, 75, 39, 40, 87, 55, 56, 70, 37, 47, 71, 57, 89, 64, 67, 111, 55, 61, 47, 62, 75, 70, 70, 66, 59, 53, 59, 67, 74, 91, 67, 53, 82, 40, 43, 72, 97, 43, 56, 46, 67, 57, 73, 61, 69, 69, 76, 71, 70, 59, 60, 67, 67, 56, 113, 99, 39, 59, 60, 52, 61, 43, 72, 61, 52, 67, 58, 76, 56, 94, 70, 72, 71, 66, 75, 54, 57, 81, 54, 84, 59, 49, 62, 68, 65, 53, 143, 79, 58, 51, 90, 60, 62, 56, 53, 64, 55, 55, 53, 98, 85, 66, 70, 60, 57, 52, 70, 92, 87, 54, 82, 66, 78, 46, 68, 51, 71, 69, 60, 65, 58, 67, 60, 78, 44, 66, 78, 76, 64, 73, 49, 104, 58, 86, 94, 93, 67, 46, 56, 70, 60, 51, 61, 63, 67, 70, 64, 85, 63, 62, 61, 69, 64, 61, 47, 73, 89, 45, 56, 58, 92, 112, 75, 78, 71, 72, 69, 51, 83, 50, 44, 97, 48, 66, 70, 73, 72, 53, 69, 72, 65, 83, 54, 88, 53, 75, 60, 58, 69, 65, 94, 67, 79, 51, 63, 50, 72, 73, 86, 63, 65, 82, 104, 76, 71, 58, 81, 54, 52, 71, 63, 50, 60, 60, 74, 62, 96, 63, 111, 67, 51, 79, 63, 75, 52, 68, 53, 84, 104, 53, 55, 58, 59, 75, 62, 73, 63, 79, 51, 62, 60, 62, 59, 62, 83, 86, 73, 92, 57, 61, 61, 55, 56, 61, 91, 50, 50, 87, 57, 71, 71, 67, 56, 64, 67, 85, 73, 65, 62, 64, 53, 50, 56, 56, 96, 55, 58, 49, 47, 46, 67, 74, 95, 57, 43, 71, 69, 88, 79, 61, 78, 67, 81, 47, 84, 68, 64, 54, 72, 63, 87, 65, 113, 52, 66, 52, 49, 81, 58, 70, 63, 51, 68, 75, 62, 44, 92, 83, 53, 58, 63, 75, 75, 87, 64, 55, 62, 59, 75, 88, 55, 62, 65, 121, 72, 60, 60, 58, 58, 62, 79, 63, 69, 75, 64, 70, 59, 84, 57, 67, 48, 79, 51, 98, 60, 61, 57, 65, 64, 103, 63, 67, 51, 66, 53, 53, 52, 74, 60, 41, 68, 64, 76, 70, 49, 74, 56, 55, 90, 74, 54, 72, 53, 60, 69, 85, 67, 92, 68, 65, 58, 98, 49, 73, 51, 68, 67, 91, 59, 68, 53, 84, 49, 52, 43, 66, 50, 68, 58, 52, 59, 80, 75, 90, 76, 48, 74, 65, 72, 72, 62, 57, 67, 62, 71, 78, 52, 57, 69, 72, 72, 46, 77, 56, 50, 73, 75, 47, 66, 59, 66, 79, 44, 100, 56, 60, 63, 72, 81, 73, 57, 65, 78, 63, 87, 60, 63, 60, 87, 59, 60, 99, 53, 85, 54, 59, 61, 73, 44, 59, 93, 54, 63, 66, 68, 77, 59, 75, 59, 88, 62, 59, 45, 80, 81, 49, 65, 76, 48, 68, 45, 62, 70, 72, 63, 75, 55, 92, 74, 59, 84, 67, 65, 29, 106, 66, 69, 92, 51, 65, 57, 81, 70, 54, 59, 65, 63, 70, 67, 75, 87, 91, 68, 45, 55, 72, 64, 67, 62, 76, 46, 64, 51, 64, 62, 83, 53, 56, 78, 78, 52, 55, 62, 50, 92, 65, 25, 64, 38, 59, 57, 74, 83, 103, 64, 71, 55, 48, 61, 51, 65, 93, 53, 64, 60, 76, 71, 74, 70, 35, 85, 46, 90, 55, 76, 48, 64, 60, 100, 62, 57, 38, 56, 50, 80, 73, 55, 54, 78, 69, 55, 65, 62, 35, 56, 33, 79, 96, 102, 68, 46, 65, 41, 56, 59, 74, 74, 72, 65, 85, 79, 69, 70, 80, 52, 50, 75, 43, 56, 76, 62, 58, 54, 79, 64, 41, 55, 89, 50, 55, 73, 64, 55, 60, 65, 64, 69, 51, 91, 60, 80, 77, 89, 63, 65, 69, 75, 55, 102, 88, 42, 45, 52, 83, 44, 76, 63, 76, 55, 76, 54, 114, 59, 66, 65, 67, 77, 73, 74, 81, 65, 67, 80, 41, 67, 62, 76, 67, 71, 65, 58, 60, 93, 75, 52, 42, 55, 66, 62, 74, 71, 83, 95, 56, 57, 41, 57, 85, 62, 65, 91, 68, 55, 76, 78, 74, 54, 74, 58, 58, 59, 76, 71, 58, 63, 42, 62, 93, 95, 79, 45, 62, 46, 61, 61, 74, 62, 64, 81, 56, 62, 76, 70, 110, 54, 62, 66, 57, 69, 68, 70, 67, 108, 57, 60, 64, 59, 71, 56, 62, 64, 37, 90, 64, 60, 74, 67, 58, 60, 44, 58, 80, 68, 62, 74, 59, 67, 83, 52, 77, 59, 85, 63, 50, 63, 63, 71, 79, 65, 75, 67, 77, 71, 56, 81, 83, 62, 59, 79, 73, 59, 40, 69, 61, 86, 53, 58, 102, 38, 91, 66, 59, 69, 64, 76, 51, 92, 105, 58, 77, 56, 100, 69, 77, 68, 64, 74, 78, 67, 57, 47, 63, 56, 63, 61, 63, 65, 80, 121, 86, 61, 61, 90, 89, 70, 49, 61, 57, 60, 54, 47, 74, 49, 57, 72, 52, 63, 58, 58, 53, 66, 95, 78, 69, 56, 60, 48, 56, 59, 81, 58, 62, 60, 59, 63, 58, 69, 68, 53, 70, 67, 58, 52, 70, 51, 42, 68, 67, 41, 92, 58, 82, 77, 74, 64, 51, 64, 63, 82, 58, 60, 88, 65, 79, 67, 69, 64, 48, 58, 60, 57, 68, 56, 86, 68, 62, 50, 68, 51, 61, 65, 71, 45, 69, 65, 53, 46, 49, 60, 56, 49, 53, 68, 57, 55, 63, 74, 64, 68, 38, 68, 73, 65, 58, 78, 75, 82, 75, 76, 70, 74, 52, 81, 109, 69, 78, 54, 69, 86, 71, 69, 59, 52, 64, 76, 69, 75, 40, 66, 68, 76, 61, 89, 58, 62, 119, 65, 67, 80, 89, 69, 84, 55, 63, 75, 51, 60, 39, 50, 59, 59, 53, 70, 67, 73, 50, 69, 51, 110, 66, 58, 56, 89, 77, 72, 73, 88, 62, 80, 62, 60, 74, 92, 91, 51, 78, 76, 61, 82, 59, 107, 60, 60, 55, 44, 83, 68, 69, 65, 73, 62, 59, 56, 62, 61, 73, 74, 76, 61, 61, 81, 59, 56, 88, 66, 53, 65, 59, 73, 54, 66, 78, 56, 112, 46, 96, 72, 58, 60, 72, 53, 94, 81, 62, 70, 71, 40, 103, 48, 73, 103, 62, 73, 69, 94, 53, 63, 70, 52, 84, 69, 62, 74, 41, 76, 38, 66, 70, 76, 88, 63, 82, 65, 63, 63, 96, 103, 77, 77, 87, 79, 78, 64, 44, 59, 66, 75, 55, 56, 52, 67, 62, 49, 64, 67, 67, 63, 54, 41, 52, 57, 64, 44, 77, 68, 86, 77, 39, 54, 66, 66, 44, 76, 50, 82, 58, 62, 74, 61, 68, 53, 62, 65, 67, 43, 57, 82, 82, 77, 67, 79, 52, 63, 68, 47, 46, 56, 59, 67, 58, 70, 69, 70, 65, 57, 77, 56, 69, 75, 47, 61, 56, 60, 59, 52, 97, 47, 101, 73, 78, 60, 71, 69, 50, 97, 58, 61, 69, 92, 58, 73, 71, 59, 55, 48, 68, 76, 89, 63, 75, 50, 65, 71, 39, 58, 24, 44, 82, 64, 53, 77, 67, 73, 83, 61, 92, 60, 82, 77, 85, 65, 48, 66, 71, 57, 88, 54, 58, 53, 59, 50, 53, 59, 53, 56, 52, 53, 67, 80, 58, 83, 58, 82, 61, 79, 71, 55, 58, 126, 51, 46, 76, 64, 63, 63, 73, 84, 50, 48, 58, 56, 114, 58, 85, 61, 52, 68, 48, 55, 82, 102, 48, 62, 66, 62, 55, 68, 54, 37, 88, 59, 55, 71, 70, 56, 51, 60, 57, 49, 65, 58, 79, 76, 62, 79, 38, 62, 53, 75, 76, 111, 66, 89, 60, 48, 57, 82, 89, 61, 62, 41, 65, 74, 60, 76, 56, 63, 87, 73, 56, 72, 60, 56, 75, 96, 55, 89, 74, 52, 67, 76, 73, 77, 73, 78, 60, 61, 63, 70, 55, 73, 90, 45, 59, 56, 74, 53, 67, 76, 54, 52, 108, 88, 60, 56, 57, 68, 67, 58, 69, 108, 48, 88, 50, 73, 52, 68, 84, 47, 55, 50, 70, 84, 68, 67, 45, 70, 85, 65, 90, 89, 97, 82, 45, 75, 63, 58, 55, 70, 69, 83, 76, 73, 54, 67, 89, 63, 88, 38, 68, 47, 83, 45, 53, 51, 55, 52, 66, 62, 77, 77, 38, 77, 58, 70, 54, 71, 65, 80, 79, 62, 114, 63, 51, 51, 95, 60, 69, 57, 69, 43, 73, 74, 59, 78, 56, 70, 61, 76, 76, 70, 59, 94, 68, 75, 65, 53, 73, 56, 77, 52, 76, 68, 52, 58, 94, 76, 68, 67, 53, 46, 62, 69, 69, 54, 123, 57, 53, 79, 72, 81, 71, 65, 44, 109, 68, 66, 55, 50, 50, 65, 93, 60, 66, 60, 70, 57, 75, 85, 58, 59, 59, 78, 54, 56, 69, 52, 72, 68, 141, 60, 67, 51, 69, 50, 74, 49, 52, 80, 69, 113, 56, 60, 70, 80, 83, 77, 52, 78, 70, 58, 83, 68, 56, 50, 76, 40, 47, 68, 67, 63, 69, 93, 67, 51, 52, 57, 80, 58, 66, 57, 86, 59, 67, 71, 60, 65, 65, 61, 90, 56, 55, 66, 91, 82, 85, 51, 66, 48, 74, 72, 86, 81, 80, 73, 71, 58, 69, 48, 46, 55, 77, 66, 65, 94, 70, 63, 76, 60, 64, 41, 70, 91, 67, 47, 39, 45, 75, 42, 67, 80, 51, 66, 56, 76, 85, 92, 68, 86, 51, 64, 57, 72, 70, 66, 46, 68, 65, 74, 72, 54, 55, 73, 47, 69, 70, 66, 95, 53, 72, 60, 62, 72, 79, 83, 55, 50, 60, 57, 76, 88, 72, 120, 54, 62, 72, 67, 75, 49, 79, 73, 72, 49, 88, 75, 73, 72, 78, 54, 57, 72, 57, 71, 47, 80, 43, 107, 66, 49, 61, 51, 78, 61, 69, 69, 66, 78, 94, 77, 63, 56, 47, 97, 57, 65, 60, 55, 55, 70, 77, 44, 62, 56, 74, 71, 78, 76, 47, 45, 74, 48, 48, 62, 71, 35, 79, 70, 64, 51, 70, 70, 54, 84, 81, 68, 57, 66, 42, 58, 87, 78, 69, 62, 77, 102, 69, 62, 89, 43, 76, 62, 65, 44, 57, 58, 59, 63, 82, 64, 60, 59, 58, 59, 44, 71, 72, 106, 56, 51, 80, 54, 62, 56, 68, 61, 61, 75, 55, 61, 57, 70, 77, 81, 71, 75, 62, 52, 80, 69, 64, 68, 61, 56, 49, 54, 74, 74, 57, 43, 64, 102, 70, 65, 48, 80, 49, 54, 61, 57, 52, 53, 66, 82, 59, 83, 103, 69, 62, 49, 69, 52, 63, 61, 72, 46, 61, 54, 77, 54, 39, 54, 47, 59, 77, 62, 64, 66, 70, 52, 67, 60, 85, 99, 83, 79, 54, 77, 85, 49, 59, 71, 80, 65, 77, 62, 48, 71, 47, 71, 45, 67, 93, 62, 81, 66, 47, 66, 60, 73, 67, 61, 79, 64, 73, 80, 62, 47, 51, 63, 55, 55, 59, 117, 62, 53, 53, 41, 78, 77, 52, 81, 51, 88, 55, 64, 52, 70, 54, 66, 57, 73, 65, 71, 70, 51, 89, 48, 108, 104, 69, 69, 76, 71, 56, 64, 49, 72, 86, 53, 62, 59, 38, 59, 50, 95, 50, 61, 61, 41, 73, 70, 65, 67, 67, 60, 71, 75, 83, 81, 54, 72, 72, 61, 48, 44, 64, 73, 62, 59, 58, 49, 54, 72, 68, 73, 79, 68, 70, 80, 68, 61, 48, 66, 68, 47, 57, 68, 57, 55, 84, 50, 94, 55, 51, 57, 50, 52, 68, 67, 57, 70, 71, 63, 57, 61, 67, 66, 58, 70, 63, 52, 53, 85, 96, 55, 82, 72, 65, 61, 57, 55, 73, 76, 60, 86, 47, 67, 45, 76, 92, 67, 63, 53, 92, 52, 51, 50, 47, 80, 81, 74, 46, 55, 66, 116, 68, 56, 130, 56, 60, 55, 57, 60, 88, 96, 47, 61, 77, 63, 67, 48, 70, 71, 58, 86, 71, 54, 72, 61, 47, 52, 55, 57, 107, 69, 68, 46, 67, 66, 64, 65, 53, 64, 71, 66, 59, 67, 71, 65, 76, 58, 42, 112, 59, 47, 63, 51, 73, 126, 62, 72, 63, 51, 63, 64, 79, 85, 60, 38, 70, 62, 55, 50, 52, 67, 49, 86, 62, 65, 66, 71, 64, 60, 57, 66, 66, 63, 76, 72, 69, 65, 47, 56, 46, 68, 61, 51, 72, 52, 41, 65, 67, 45, 91, 66, 64, 63, 55, 61, 38, 63, 80, 71, 54, 46, 74, 59, 108, 56, 76, 76, 79, 47, 86, 61, 57, 53, 56, 54, 63, 59, 82, 68, 63, 109, 76, 85, 46, 53, 58, 83, 66, 72, 76, 47, 65, 56, 103, 52, 68, 82, 58, 58, 52, 71, 61, 65, 70, 66, 86, 99, 76, 64, 46, 82, 71, 72, 57, 60, 67, 61, 59, 52, 102, 54, 49, 53, 60, 85, 75, 70, 58, 57, 28, 65, 59, 63, 78, 57, 58, 71, 66, 52, 66, 74, 45, 93, 71, 69, 51, 59, 76, 57, 55, 87, 72, 54, 90, 56, 63, 48, 80, 55, 73, 61, 72, 80, 64, 66, 53, 47, 59, 68, 66, 59, 95, 77, 79, 69, 52, 82, 56, 80, 90, 49, 58, 64, 57, 90, 54, 67, 54, 76, 108, 131, 81, 79, 83, 65, 50, 82, 113, 69, 81, 67, 59, 46, 44, 59, 55, 74, 54, 75, 64, 47, 44, 53, 48, 59, 62, 58, 60, 70, 69, 67, 71, 61, 74, 69, 74, 73, 62, 63, 48, 66, 61, 53, 68, 51, 67, 83, 71, 70, 67, 67, 58, 76, 63, 58, 89, 62, 54, 55, 72, 93, 93, 71, 65, 70, 69, 53, 74, 79, 71, 82, 55, 76, 57, 66, 65, 49, 74, 76, 74, 82, 70, 58, 52, 79, 71, 54, 57, 71, 106, 93, 69, 79, 67, 72, 63, 82, 56, 60, 57, 79, 51, 59, 76, 62, 49, 92, 66, 66, 67, 56, 66, 100, 67, 73, 56, 60, 61, 60, 76, 64, 67, 49, 65, 59, 62, 65, 32, 55, 59, 88, 64, 62, 66, 83, 67, 56, 63, 67, 56, 57, 77, 99, 82, 70, 59, 57, 54, 81, 65, 56, 58, 61, 56, 82, 52, 65, 81, 112, 72, 64, 60, 73, 38, 57, 55, 71, 87, 76, 93, 57, 64, 75, 63, 57, 45, 68, 60, 67, 107, 58, 82, 49, 40, 89, 101, 77, 82, 65, 65, 63, 66, 70, 66, 57, 61, 80, 76, 75, 65, 59, 60, 69, 93, 112, 72, 102, 63, 55, 79, 41, 79, 78, 62, 73, 87, 44, 51, 74, 44, 59, 101, 56, 62, 55, 78, 56, 118, 127, 58, 66, 63, 70, 64, 69, 57, 52, 76, 92, 71, 66, 76, 64, 41, 53, 68, 67, 66, 44, 71, 43, 49, 64, 72, 43, 66, 71, 85, 105, 78, 70, 99, 74, 71, 112, 49, 63, 59, 45, 55, 70, 46, 72, 62, 75, 88, 74, 53, 87, 96, 41, 45, 62, 50, 81, 71, 65, 65, 58, 45, 54, 63, 80, 60, 55, 61, 52, 62, 73, 52, 62, 73, 74, 52, 57, 57, 60, 65, 54, 67, 59, 87, 66, 44, 86, 81, 48, 78, 55, 50, 47, 67, 89, 66, 58, 65, 56, 85, 75, 75, 47, 40, 74, 63, 61, 67, 66, 71, 77, 44, 65, 70, 64, 56, 50, 102, 41, 56, 60, 86, 63, 51, 62, 81, 46, 74, 87, 71, 71, 61, 93, 64, 57, 64, 43, 64, 55, 70, 50, 60, 72, 83, 77, 81, 93, 131, 59, 62, 75, 52, 60, 81, 77, 50, 79, 70, 48, 78, 92, 57, 47, 109, 78, 82, 71, 62, 81, 53, 70, 63, 80, 69, 53, 68, 66, 65, 42, 43, 93, 72, 54, 66, 66, 62, 105, 70, 89, 79, 63, 80, 56, 55, 60, 71, 55, 55, 67, 52, 74, 68, 65, 68, 61, 69, 67, 79, 62, 69, 52, 56, 65, 82, 78, 45, 72, 84, 72, 74, 59, 56, 80, 63, 87, 64, 73, 72, 65, 63, 70, 58, 83, 63, 68, 69, 50, 57, 82, 53, 75, 73, 100, 58, 65, 55, 71, 88, 65, 64, 76, 67, 62, 72, 70, 59, 55, 53, 49, 52, 58, 100, 100, 62, 53, 79, 57, 57, 65, 83, 77, 56, 83, 76, 76, 65, 60, 63, 86, 72, 77, 64, 59, 67, 55, 52, 50, 52, 69, 59, 47, 70, 81, 72, 71, 56, 71, 83, 79, 48, 55, 58, 59, 65, 53, 67, 34, 91, 51, 56, 59, 103, 66, 45, 76, 57, 89, 81, 92, 78, 54, 64, 69, 62, 71, 72, 67, 57, 61, 95, 75, 72, 73, 64, 41, 79, 69, 73, 62, 82, 63, 62, 69, 62, 84, 59, 82, 43, 69, 82, 63, 61, 62, 71, 62, 55, 72, 84, 66, 50, 50, 80, 56, 66, 49, 56, 60, 68, 58, 77, 91, 50, 47, 60, 79, 87, 47, 54, 84, 55, 68, 64, 63, 72, 75, 92, 83, 57, 74, 80, 90, 57, 57, 68, 69, 61, 58, 80, 60, 67, 94, 68, 82, 66, 74, 72, 63, 88, 56, 98, 50, 86, 58, 60, 50, 53, 62, 79, 88, 47, 66, 57, 53, 83, 86, 69, 49, 65, 71, 69, 71, 61, 99, 68, 70, 97, 52, 71, 71, 44, 57, 48, 48, 72, 78, 60, 84, 64, 56, 56, 72, 82, 67, 62, 68, 60, 65, 61, 58, 53, 51, 56, 64, 58, 69, 70, 83, 87, 77, 70, 74, 70, 48, 65, 73, 72, 73, 104, 43, 60, 41, 60, 80, 39, 56, 70, 69, 49, 67, 72, 57, 89, 80, 74, 83, 88, 67, 69, 71, 67, 77, 70, 67, 74, 68, 63, 74, 66, 71, 49, 58, 67, 68, 51, 87, 63, 56, 58, 39, 60, 69, 87, 73, 51, 68, 41, 53, 76, 67, 55, 80, 87, 71, 45, 75, 39, 66, 46, 41, 52, 69, 96, 43, 42, 63, 76, 57, 83, 63, 115, 72, 66, 49, 60, 60, 59, 110, 74, 79, 52, 50, 86, 63, 47, 99, 54, 85, 51, 64, 43, 59, 99, 68, 74, 71, 66, 59, 71, 60, 54, 102, 50, 56, 51, 68, 95, 71, 67, 56, 64, 48, 63, 68, 62, 51, 55, 69, 50, 48, 57, 50, 70, 59, 67, 48, 71, 84, 60, 59, 71, 64, 69, 63, 62, 65, 62, 48, 65, 62, 69, 68, 73, 50, 60, 58, 62, 68, 66, 76, 71, 65, 55, 48, 62, 76, 68, 70, 70, 69, 64, 66, 48, 74, 37, 81, 50, 58, 61, 85, 61, 76, 67, 61, 84, 65, 75, 63, 50, 64, 54, 45, 51, 70, 59, 62, 33, 65, 51, 67, 74, 45, 60, 63, 45, 57, 64, 66, 73, 75, 62, 82, 67, 57, 42, 71, 76, 79, 60, 56, 64, 69, 52, 56, 53, 89, 60, 57, 54, 90, 66, 79, 64, 60, 67, 81, 74, 69, 55, 57, 86, 66, 61, 63, 67, 69, 68, 65, 51, 83, 68, 65, 66, 48, 63, 57, 61, 74, 51, 52, 75, 63, 58, 64, 55, 69, 67, 67, 74, 61, 70, 43, 70, 55, 71, 68, 74, 64, 89, 66, 63, 71, 32, 58, 77, 76, 65, 59, 58, 98, 56, 63, 58, 54, 49, 103, 57, 77, 60, 58, 58, 55, 70, 77, 44, 53, 54, 91, 62, 66, 108, 68, 74, 61, 71, 68, 51, 68, 155, 58, 82, 74, 100, 59, 81, 75, 76, 71, 56, 64, 78, 71, 50, 77, 53, 85, 63, 58, 89, 67, 63, 55, 63, 56, 82, 62, 72, 71, 55, 79, 62, 80, 64, 66, 73, 72, 54, 88, 63, 83, 65, 80, 41, 67, 66, 103, 58, 68, 74, 57, 74, 84, 62, 65, 45, 56, 85, 69, 61, 54, 71, 66, 62, 73, 100, 55, 73, 81, 67, 93, 62, 47, 50, 79, 74, 61, 59, 61, 61, 61, 82, 74, 65, 68, 55, 70, 53, 52, 41, 65, 82, 61, 60, 62, 55, 78, 44, 64, 75, 116, 52, 54, 90, 64, 65, 64, 83, 52, 84, 52, 66, 68, 68, 57, 66, 59, 56, 60, 73, 56, 52, 67, 48, 102, 47, 65, 54, 47, 55, 72, 53, 70, 57, 55, 54, 94, 77, 61, 66, 62, 52, 62, 84, 54, 72, 64, 63, 84, 68, 86, 62, 66, 75, 70, 61, 61, 57, 77, 63, 54, 65, 58, 64, 67, 75, 69, 70, 60, 43, 53, 65, 84, 88, 61, 79, 61, 49, 48, 79, 52, 73, 64, 60, 64, 69, 51, 56, 69, 69, 46, 72, 78, 70, 59, 82, 106, 74, 80, 78, 77, 96, 72, 69, 54, 80, 78, 63, 45, 66, 66, 61, 74, 62, 98, 40, 65, 80, 84, 61, 58, 70, 58, 77, 56, 67, 60, 71, 82, 76, 57, 71, 56, 78, 63, 55, 82, 56, 54, 60, 76, 72, 66, 66, 70, 64, 70, 64, 58, 49, 70, 66, 73, 71, 60, 66, 62, 50, 69, 80, 80, 62, 74, 61, 88, 69, 50, 63, 67, 48, 67, 59, 72, 70, 67, 54, 62, 53, 64, 55, 82, 51, 62, 68, 41, 71, 51, 54, 67, 70, 73, 49, 79, 68, 60, 57, 53, 54, 56, 67, 69, 58, 67, 60, 52, 71, 77, 65, 42, 53, 70, 57, 85, 63, 63, 64, 58, 92, 75, 46, 65, 59, 64, 81, 78, 73, 52, 60, 121, 68, 117, 55, 70, 63, 70, 59, 50, 53, 74, 62, 76, 117, 51, 59, 91, 62, 73, 53, 59, 59, 62, 84, 58, 52, 88, 48, 92, 62, 84, 63, 51, 55, 70, 57, 68, 76, 71, 67, 62, 60, 75, 48, 61, 68, 65, 51, 75, 73, 56, 46, 78, 60, 52, 57, 70, 76, 81, 65, 78, 55, 56, 75, 65, 79, 65, 84, 64, 78, 46, 71, 52, 38, 61, 37, 77, 57, 66, 62, 83, 66, 34, 58, 57, 64, 66, 56, 92, 72, 67, 62, 57, 73, 107, 68, 82, 78, 67, 69, 73, 63, 67, 70, 69, 66, 53, 45, 68, 60, 49, 63, 57, 63, 61, 89, 57, 79, 52, 66, 57, 82, 59, 65, 71, 58, 80, 66, 73, 56, 72, 66, 58, 62, 74, 87, 57, 79, 62, 54, 92, 61, 74, 75, 40, 54, 55, 65, 85, 74, 80, 61, 62, 47, 94, 71, 59, 62, 67, 80, 56, 67, 59, 70, 54, 70, 70, 44, 49, 88, 94, 53, 70, 67, 62, 78, 48, 81, 77, 62, 67, 63, 76, 60, 54, 55, 68, 61, 67, 69, 74, 70, 65, 58, 56, 61, 64, 60, 51, 70, 53, 77, 58, 64, 49, 77, 70, 64, 55, 64, 55, 68, 44, 62, 59, 70, 64, 69, 66, 73, 67, 56, 84, 59, 70, 75, 81, 66, 65, 66, 64, 59, 62, 48, 62, 79, 58, 74, 48, 74, 55, 68, 58, 58, 81, 65, 70, 76, 62, 58, 70, 64, 96, 64, 91, 84, 60, 73, 63, 57, 57, 86, 51, 85, 90, 72, 71, 53, 50, 70, 80, 69, 39, 58, 57, 66, 73, 56, 82, 60, 58, 48, 65, 77, 53, 53, 97, 58, 62, 66, 67, 55, 63, 91, 97, 63, 51, 65, 84, 73, 69, 75, 56, 74, 71, 60, 90, 65, 115, 57, 62, 88, 72, 69, 63, 92, 56, 92, 34, 70, 55, 69, 65, 62, 42, 57, 69, 49, 76, 54, 56, 66, 57, 92, 50, 62, 66, 79, 75, 60, 98, 70, 57, 84, 57, 53, 65, 52, 66, 106, 50, 64, 68, 68, 100, 54, 45, 52, 62, 77, 73, 51, 84, 54, 65, 81, 56, 63, 66, 47, 55, 61, 79, 48, 74, 71, 76, 70, 57, 71, 58, 69, 60, 73, 84, 88, 60, 73, 57, 56, 87, 61, 43, 50, 69, 53, 59, 67, 48, 98, 58, 65, 78, 88, 53, 60, 59, 73, 75, 58, 76, 73, 76, 81, 54, 57, 66, 59, 71, 68, 57, 54, 63, 67, 59, 68, 63, 61, 52, 59, 63, 52, 70, 59, 48, 78, 56, 64, 77, 68, 67, 48, 69, 35, 69, 48, 44, 53, 60, 97, 56, 48, 59, 83, 70, 76, 72, 105, 44, 53, 49, 69, 57, 58, 107, 64, 82, 57, 65, 84, 87, 59, 114, 66, 83, 53, 74, 61, 77, 101, 60, 57, 62, 66, 57, 79, 52, 60, 109, 61, 67, 42, 65, 67, 62, 52, 46, 47, 60, 66, 52, 68, 47, 54, 66, 46, 68, 56, 58, 68, 54, 71, 38, 66, 68, 55, 57, 64, 76, 72, 61, 73, 63, 71, 62, 75, 68, 76, 72, 64, 71, 60, 58, 78, 71, 69, 72, 68, 64, 48, 75, 44, 71, 67, 85, 80, 66, 89, 39, 78, 61, 56, 60, 38, 66, 67, 68, 60, 71, 59, 49, 57, 49, 74, 68, 51, 65, 65, 54, 55, 56, 59, 61, 59, 59, 52, 59, 61, 56, 65, 56, 51, 67, 65, 76, 70, 79, 75, 66, 64, 56, 45, 68, 53, 59, 68, 74, 65, 61, 66, 51, 47, 69, 57, 56, 69, 82, 52, 44, 72, 54, 60, 75, 56, 61, 59, 62, 86, 64, 45, 65, 67, 69, 95, 58, 47, 72, 72, 52, 66, 47, 73, 78, 64, 80, 36, 79, 67, 61, 63, 68, 68, 54, 93, 76, 66, 53, 63, 58, 58, 66, 71, 65, 59, 56, 88, 67, 58, 62, 115, 77, 71, 71, 74, 82, 56, 80, 68, 65, 48, 51, 62, 105, 68, 70, 45, 68, 60, 53, 61, 81, 52, 71, 63, 76, 63, 68, 101, 61, 72, 57, 85, 64, 74, 63, 158, 61, 85, 77, 102, 59, 53, 86, 71, 58, 61, 65, 64, 63, 46, 54, 64, 81, 58, 56, 86, 71, 55, 63, 61, 49, 90, 47, 79, 58, 50, 67, 60, 99, 68, 76, 58, 57, 47, 96, 62, 59, 77, 75, 37, 57, 80, 109, 51, 78, 76, 53, 77, 82, 72, 65, 69, 71, 71, 58, 66, 63, 65, 65, 47, 86, 104, 52, 68, 49, 70, 105, 63, 52, 45, 82, 57, 63, 59, 82, 73, 66, 65, 72, 59, 66, 71, 57, 64, 68, 54, 57, 56, 74, 75, 70, 61, 80, 56, 52, 68, 117, 61, 52, 67, 54, 76, 58, 68, 57, 76, 65, 63, 53, 66, 60, 101, 54, 53, 61, 57, 54, 47, 58, 56, 86, 64, 63, 57, 63, 50, 80, 65, 87, 79, 60, 62, 88, 68, 56, 79, 80, 50, 55, 85, 60, 70, 68, 76, 78, 76, 87, 77, 68, 82, 70, 52, 69, 73, 81, 58, 71, 68, 68, 64, 69, 75, 67, 53, 69, 65, 64, 61, 65, 83, 53, 60, 69, 53, 60, 93, 64, 103, 69, 59, 58, 76, 55, 51, 77, 64, 60, 64, 61, 48, 50, 77, 100, 84, 71, 53, 74, 89, 53, 51, 60, 61, 58, 67, 49, 75, 72, 62, 48, 45, 66, 42, 53, 71, 80, 54, 62, 49, 69, 67, 60, 61, 69, 63, 67, 60, 73, 62, 43, 74, 73, 55, 79, 67, 72, 61, 69, 80, 76, 68, 75, 46, 74, 61, 60, 65, 60, 71, 62, 88, 61, 67, 70, 64, 61, 62, 75, 66, 84, 57, 101, 56, 49, 60, 70, 60, 63, 57, 59, 65, 57, 61, 68, 59, 59, 66, 64, 66, 56, 51, 45, 81, 61, 61, 62, 70, 72, 58, 64, 63, 83, 52, 66, 45, 56, 64, 50, 47, 73, 63, 52, 55, 67, 45, 55, 74, 64, 69, 87, 77, 61, 65, 59, 72, 63, 51, 53, 60, 70, 79, 100, 62, 77, 70, 136, 73, 137, 61, 76, 62, 67, 67, 46, 58, 78, 60, 74, 108, 55, 59, 65, 63, 69, 55, 60, 46, 77, 70, 63, 73, 89, 62, 77, 63, 100, 34, 57, 44, 70, 63, 78, 74, 81, 86, 57, 50, 72, 60, 94, 62, 61, 65, 64, 64, 72, 74, 86, 71, 46, 64, 65, 80, 88, 56, 77, 78, 57, 66, 65, 69, 90, 88, 70, 68, 65, 64, 70, 62, 78, 64, 46, 74, 60, 49, 81, 64, 52, 54, 67, 67, 69, 66, 54, 61, 57, 64, 63, 63, 74, 56, 74, 95, 70, 94, 69, 59, 56, 67, 67, 62, 71, 62, 47, 82, 60, 72, 64, 51, 69, 71, 52, 70, 53, 53, 62, 65, 57, 61, 60, 70, 69, 78, 72, 91, 68, 64, 54, 61, 55, 57, 55, 78, 70, 59, 65, 67, 63, 80, 67, 54, 68, 62, 64, 59, 67, 97, 82, 91, 70, 60, 67, 68, 75, 74, 49, 57, 48, 59, 62, 94, 85, 65, 71, 37, 66, 62, 49, 65, 65, 71, 76, 71, 64, 71, 61, 80, 71, 63, 65, 78, 60, 64, 61, 70, 60, 62, 82, 48, 71, 69, 63, 84, 67, 64, 64, 58, 67, 53, 69, 76, 64, 71, 53, 123, 69, 51, 62, 61, 58, 63, 74, 67, 93, 56, 56, 64, 78, 50, 73, 66, 69, 53, 73, 57, 61, 63, 71, 64, 55, 70, 56, 68, 67, 63, 67, 73, 52, 73, 61, 67, 64, 66, 64, 61, 99, 81, 55, 61, 74, 75, 73, 68, 50, 49, 75, 68, 62, 79, 68, 65, 64, 73, 92, 66, 64, 73, 45, 60, 65, 69, 63, 118, 56, 66, 65, 46, 54, 62, 70, 120, 69, 54, 61, 71, 70, 61, 85, 70, 60, 63, 70, 70, 59, 56, 76, 70, 55, 53, 77, 82, 71, 58, 56, 51, 63, 68, 71, 73, 75, 60, 67, 64, 66, 59, 86, 59, 70, 66, 73, 49, 55, 70, 50, 60, 57, 66, 51, 55, 59, 56, 60, 77, 58, 74, 64, 65, 65, 57, 63, 65, 74, 63, 86, 61, 56, 58, 70, 59, 78, 77, 71, 58, 65, 88, 61, 57, 93, 78, 63, 52, 58, 92, 66, 71, 73, 67, 57, 68, 60, 57, 74, 88, 59, 60, 117, 69, 53, 72, 65, 58, 55, 81, 67, 85, 69, 51, 64, 59, 64, 65, 63, 71, 73, 65, 73, 73, 60, 52, 74, 76, 71, 57, 76, 54, 57, 63, 69, 68, 69, 62, 70, 85, 51, 62, 57, 62, 43, 78, 61, 62, 62, 67, 47, 56, 56, 58, 72, 65, 48, 65, 56, 70, 67, 61, 68, 49, 43, 61, 64, 79, 82, 54, 66, 53, 74, 64, 67, 70, 69, 67, 88, 66, 64, 55, 65, 54, 61, 76, 77, 63, 47, 68, 82, 50, 62, 79, 70, 90, 69, 58, 55, 60, 62, 57, 57, 76, 57, 79, 68, 57, 83, 46, 58, 63, 67, 55, 59, 57, 58, 61, 64, 59, 55, 61, 68, 56, 69, 65, 62, 68, 68, 86, 67, 59, 70, 66, 72, 86, 66, 60, 68, 63, 67, 77, 57, 56, 62, 68, 68, 62, 63, 70, 52, 64, 61, 75, 64, 59, 67, 64, 129, 70, 75, 67, 61, 54, 64, 63, 80, 72, 66, 58, 60, 66, 68, 66, 60, 57, 50, 66, 58, 67, 65, 63, 76, 58, 65, 64, 65, 65, 71, 60, 66, 64, 73, 84, 57, 65, 70, 57, 58, 66, 65, 59, 65, 68, 59, 56, 71, 55, 62, 59, 62, 98, 87, 87, 54, 76, 72, 65, 62, 57, 64, 57, 71, 58, 57, 71, 59, 62, 66, 102, 65, 76, 68, 51, 64, 57, 49, 52, 64, 58, 80, 67, 69, 45, 54, 55, 72, 78, 59, 56, 72, 60, 66, 64, 64, 100, 56, 69, 49, 73, 49, 65, 53, 83, 70, 61, 76, 61, 72, 84, 54, 53, 57, 50, 52, 73, 71, 86, 56, 59, 63, 56, 67, 66, 95, 76, 72, 55, 47, 93, 92, 66, 59, 53, 68, 70, 63, 65, 60, 78, 69, 62, 60, 55, 67, 60, 64, 72, 54, 67, 53, 74, 56, 64, 77, 73, 67, 63, 74, 53, 59, 65, 63, 53, 63, 62, 59, 42, 65, 55, 59, 52, 55, 62, 72, 63, 55, 57, 58, 72, 87, 68, 64, 55, 77, 59, 60, 65, 53, 60, 79, 63, 69, 62, 81, 60, 57, 54, 45, 61, 75, 74, 63, 87, 73, 45, 76, 87, 66, 58, 67, 80, 51, 62, 71, 56, 85, 66, 78, 67, 61, 57, 73, 57, 56, 55, 80, 61, 75, 64, 66, 75, 47, 74, 81, 79, 60, 65, 61, 63, 68, 61, 59, 58, 72, 68, 85, 122, 53, 51, 84, 67, 73, 75, 70, 69, 64, 77, 61, 46, 71, 54, 83, 59, 78, 61, 63, 56, 63, 70, 55, 63, 64, 59, 37, 59, 90, 68, 68, 53, 58, 49, 55, 69, 65, 98, 69, 59, 52, 46, 64, 64, 56, 69, 62, 65, 97, 62, 50, 42, 67, 54, 63, 71, 66, 79, 75, 54, 60, 63, 68, 54, 63, 71, 103, 67, 61, 67, 52, 52, 64, 72, 59, 89, 77, 59, 66, 58, 82, 70, 57, 71, 64, 75, 91, 63, 84, 62, 86, 65, 51, 66, 74, 53, 82, 60, 63, 58, 54, 70, 74, 56, 78, 60, 66, 50, 64, 49, 64, 65, 85, 60, 63, 63, 70, 59, 67, 50, 60, 82, 75, 61, 58, 59, 69, 73, 60, 64, 63, 66, 79, 49, 66, 70, 63, 61, 64, 91, 80, 53, 52, 61, 74, 57, 62, 65, 68, 78, 73, 54, 80, 99, 56, 68, 71, 68, 58, 55, 70, 60, 55, 64, 54, 55, 57, 59, 69, 62, 60, 55, 84, 67, 62, 56, 82, 50, 57, 69, 57, 78, 62, 66, 66, 84, 57, 58, 61, 84, 63, 59, 56, 66, 69, 50, 58, 92, 60, 63, 74, 54, 50, 73, 56, 68, 62, 76, 64, 57, 58, 81, 66, 68, 66, 59, 59, 56, 58, 59, 62, 76, 67, 87, 64, 61, 64, 55, 67, 62, 73, 68, 69, 65, 52, 60, 61, 80, 60, 54, 60, 63, 60, 68, 64, 131, 70, 61, 65, 82, 63, 54, 69, 57, 67, 71, 65, 64, 57, 83, 68, 52, 68, 71, 62, 79, 81, 81, 69, 66, 56, 68, 68, 68, 67, 60, 63, 86, 165, 76, 51, 50, 53, 71, 100, 52, 67, 55, 70, 67, 61, 85, 66, 62, 64, 62, 63, 60, 60, 59, 77, 60, 58, 66, 61, 59, 65, 58, 62, 55, 64, 74, 55, 78, 59, 61, 73, 63, 63, 56, 55, 51, 55, 81, 64, 61, 69, 69, 45, 62, 64, 51, 88, 68, 90, 51, 70, 62, 79, 53, 61, 70, 84, 44, 62, 63, 79, 62, 56, 51, 48, 70, 49, 55, 55, 72, 93, 71, 89, 77, 72, 48, 80, 62, 41, 61, 91, 54, 60, 74, 82, 67, 97, 94, 82, 89, 63, 74, 52, 71, 44, 90, 61, 82, 68, 90, 77, 50, 75, 61, 51, 49, 51, 54, 31, 73, 56, 84, 58, 54, 86, 67, 49, 51, 74, 58, 68, 76, 71, 53, 75, 80, 95, 57, 77, 98, 82, 80, 100, 48, 52, 75, 66, 61, 70, 70, 54, 59, 73, 57, 54, 36, 57, 53, 62, 67, 129, 61, 59, 75, 71, 71, 88, 81, 76, 72, 65, 64, 62, 98, 74, 69, 70, 70, 80, 69, 61, 60, 55, 51, 58, 81, 44, 81, 60, 84, 81, 74, 57, 68, 65, 93, 58, 56, 84, 49, 71, 53, 70, 62, 66, 72, 66, 40, 98, 63, 35, 77, 133, 50, 48, 53, 70, 65, 57, 85, 61, 63, 55, 88, 72, 60, 73, 63, 64, 77, 61, 63, 58, 64, 82, 54, 73, 62, 81, 50, 84, 44, 56, 54, 65, 38, 68, 67, 67, 70, 65, 97, 55, 52, 89, 66, 62, 62, 60, 65, 75, 81, 52, 74, 45, 68, 76, 60, 54, 32, 64, 102, 57, 49, 61, 40, 56, 42, 79, 53, 79, 45, 65, 50, 55, 71, 50, 63, 62, 52, 89, 41, 35, 36, 67, 73, 72, 59, 45, 53, 79, 93, 50, 90, 58, 41, 62, 50, 54, 64, 68, 89, 76, 68, 74, 98, 72, 58, 45, 56, 60, 48, 57, 70, 51, 71, 62, 102, 79, 55, 58, 90, 66, 73, 81, 70, 89, 50, 50, 53, 64, 62, 79, 49, 51, 66, 54, 88, 79, 58, 63, 39, 56, 49, 115, 70, 75, 68, 69, 67, 66, 102, 55, 74, 63, 83, 67, 72, 68, 102, 66, 54, 100, 91, 78, 55, 53, 135, 63, 54, 74, 45, 73, 69, 66, 93, 50, 51, 62, 74, 65, 39, 33, 51, 62, 52, 79, 84, 52, 54, 54, 65, 63, 64, 72, 107, 69, 56, 58, 59, 50, 71, 96, 48, 64, 54, 66, 77, 63, 98, 60, 92, 89, 52, 39, 77, 72, 58, 53, 61, 84, 61, 123, 58, 61, 84, 70, 75, 63, 48, 73, 95, 87, 73, 72, 56, 66, 72, 70, 62, 80, 71, 78, 52, 62, 52, 67, 70, 56, 85, 58, 136, 77, 77, 66, 61, 54, 59, 92, 79, 82, 86, 80, 93, 58, 74, 60, 85, 46, 93, 60, 38, 44, 61, 62, 78, 51, 64, 77, 65, 32, 67, 64, 59, 54, 60, 67, 79, 62, 83, 78, 44, 48, 48, 51, 77, 51, 59, 41, 70, 77, 64, 75, 76, 69, 58, 90, 78, 62, 69, 63, 71, 75, 74, 66, 61, 63, 78, 67, 33, 53, 42, 68, 74, 53, 56, 84, 63, 44, 53, 66, 80, 83, 90, 99, 78, 64, 63, 60, 63, 62, 60, 51, 91, 62, 55, 66, 75, 52, 58, 58, 64, 50, 74, 37, 68, 86, 88, 58, 47, 61, 54, 60, 91, 48, 80, 63, 63, 66, 53, 57, 72, 55, 65, 51, 69, 76, 43, 47, 87, 54, 76, 45, 54, 59, 77, 64, 63, 71, 63, 76, 74, 80, 65, 52, 78, 60, 73, 59, 67, 96, 106, 60, 33, 86, 68, 82, 53, 76, 64, 60, 74, 65, 59, 52, 51, 59, 59, 89, 60, 60, 106, 59, 63, 79, 80, 46, 66, 49, 88, 80, 63, 61, 67, 60, 85, 75, 69, 77, 72, 49, 55, 70, 70, 50, 67, 87, 31, 73, 53, 66, 54, 50, 90, 57, 58, 80, 61, 49, 54, 64, 65, 59, 66, 69, 58, 65, 61, 63, 59, 71, 36, 71, 79, 78, 74, 57, 98, 68, 83, 67, 50, 75, 88, 67, 52, 86, 82, 55, 61, 50, 61, 58, 92, 80, 56, 59, 54, 66, 61, 85, 73, 78, 84, 56, 90, 91, 49, 70, 45, 74, 69, 70, 63, 56, 71, 81, 62, 68, 69, 79, 105, 69, 56, 62, 62, 65, 64, 65, 71, 88, 73, 59, 67, 63, 52, 52, 80, 50, 126, 61, 91, 44, 69, 52, 56, 84, 80, 77, 76, 56, 74, 62, 90, 62, 52, 52, 56, 70, 59, 78, 76, 55, 42, 70, 51, 123, 82, 90, 57, 53, 66, 97, 48, 59, 78, 58, 92, 73, 59, 127, 65, 52, 62, 58, 85, 57, 48, 41, 70, 46, 106, 41, 87, 67, 74, 72, 71, 64, 53, 65, 83, 71, 82, 54, 45, 79, 71, 51, 76, 51, 75, 52, 72, 50, 37, 88, 99, 70, 57, 62, 73, 72, 37, 63, 64, 50, 84, 75, 47, 49, 98, 73, 69, 105, 47, 68, 79, 74, 54, 53, 63, 48, 62, 65, 90, 53, 73, 49, 90, 92, 55, 58, 54, 54, 68, 74, 115, 56, 53, 87, 67, 51, 67, 63, 92, 64, 75, 57, 69, 70, 66, 75, 75, 57, 96, 84, 72, 70, 58, 80, 67, 57, 88, 52, 62, 59, 62, 67, 80, 42, 99, 56, 57, 76, 60, 63, 88, 81, 97, 75, 60, 51, 85, 66, 70, 69, 71, 71, 50, 60, 75, 65, 35, 81, 57, 79, 92, 59, 71, 77, 52, 61, 96, 64, 32, 57, 88, 60, 50, 53, 49, 79, 84, 51, 52, 61, 58, 41, 63, 78, 95, 47, 58, 71, 49, 72, 56, 72, 109, 58, 59, 68, 77, 59, 58, 70, 72, 57, 70, 88, 62, 58, 42, 61, 82, 120, 56, 58, 43, 68, 72, 57, 67, 62, 61, 116, 40, 41, 82, 66, 56, 52, 54, 63, 51, 59, 98, 69, 89, 98, 76, 51, 69, 96, 77, 77, 68, 62, 67, 69, 68, 60, 57, 53, 57, 65, 67, 80, 76, 59, 72, 31, 62, 119, 53, 75, 58, 64, 21, 93, 73, 76, 61, 90, 59, 75, 72, 71, 61, 66, 55, 85, 47, 60, 67, 74, 74, 47, 88, 62, 66, 71, 91, 52, 64, 64, 50, 68, 60, 71, 53, 64, 68, 81, 76, 53, 77, 87, 48, 60, 59, 82, 109, 70, 48, 67, 78, 74, 58, 85, 69, 54, 59, 76, 69, 73, 57, 66, 142, 57, 60, 72, 71, 54, 66, 61, 70, 76, 55, 56, 67, 76, 33, 66, 45, 90, 90, 69, 37, 73, 62, 73, 67, 58, 105, 48, 46, 65, 100, 78, 56, 54, 88, 52, 73, 75, 56, 80, 79, 62, 48, 62, 72, 51, 49, 68, 68, 50, 73, 59, 61, 49, 57, 58, 72, 68, 46, 53, 51, 79, 68, 58, 63, 62, 62, 56, 70, 90, 51, 57, 57, 42, 70, 50, 64, 67, 64, 61, 74, 43, 51, 75, 70, 89, 61, 78, 84, 68, 65, 67, 56, 76, 74, 56, 71, 50, 64, 42, 77, 54, 102, 99, 72, 68, 81, 74, 75, 100, 58, 45, 75, 48, 51, 65, 76, 74, 62, 68, 60, 49, 50, 63, 53, 58, 57, 68, 58, 51, 66, 49, 53, 77, 60, 64, 68, 70, 43, 70, 63, 53, 44, 62, 74, 63, 54, 65, 63, 65, 72, 52, 48, 71, 61, 84, 49, 59, 111, 168, 49, 95, 46, 73, 56, 62, 72, 48, 56, 44, 66, 61, 58, 52, 44, 66, 53, 77, 73, 55, 48, 42, 71, 54, 53, 62, 69, 58, 57, 67, 64, 62, 64, 75, 68, 57, 89, 51, 50, 68, 52, 64, 55, 51, 57, 147, 72, 74, 39, 63, 69, 81, 47, 64, 72, 105, 77, 67, 60, 74, 63, 56, 74, 72, 75, 63, 49, 72, 97, 62, 60, 100, 60, 68, 61, 67, 67, 61, 86, 77, 70, 89, 73, 41, 94, 67, 66, 60, 62, 46, 50, 60, 69, 69, 76, 58, 70, 68, 56, 53, 73, 123, 88, 66, 54, 49, 59, 65, 58, 84, 68, 78, 61, 62, 67, 127, 66, 68, 57, 60, 75, 52, 86, 62, 51, 47, 60, 61, 54, 88, 63, 73, 64, 87, 73, 68, 59, 54, 75, 71, 89, 74, 63, 63, 64, 62, 62, 53, 77, 65, 55, 69, 111, 53, 47, 57, 64, 63, 71, 90, 77, 67, 70, 61, 77, 52, 60, 60, 60, 80, 64, 59, 46, 56, 61, 72, 50, 90, 72, 45, 72, 48, 53, 64, 59, 48, 56, 98, 55, 65, 83, 57, 49, 87, 70, 61, 70, 64, 51, 70, 62, 51, 72, 59, 65, 91, 68, 54, 75, 58, 124, 81, 59, 80, 60, 103, 59, 56, 60, 91, 69, 50, 53, 57, 80, 65, 65, 67, 56, 60, 66, 82, 58, 95, 58, 46, 72, 89, 55, 70, 58, 65, 53, 74, 42, 73, 79, 79, 102, 63, 89, 65, 69, 52, 95, 72, 55, 55, 65, 67, 71, 43, 61, 63, 50, 63, 65, 59, 63, 67, 121, 55, 43, 77, 69, 59, 76, 53, 58, 62, 59, 59, 62, 56, 73, 62, 55, 57, 59, 63, 41, 55, 61, 54, 69, 73, 58, 54, 80, 56, 70, 51, 112, 73, 59, 60, 62, 62, 75, 53, 86, 61, 70, 52, 63, 48, 60, 75, 65, 68, 75, 102, 48, 66, 55, 52, 47, 66, 71, 60, 64, 68, 59, 66, 59, 52, 56, 58, 64, 48, 57, 71, 65, 65, 56, 69, 65, 65, 58, 61, 87, 84, 82, 68, 49, 53, 74, 59, 73, 50, 79, 80, 72, 56, 65, 64, 74, 71, 40, 97, 67, 92, 55, 69, 70, 74, 61, 77, 69, 71, 66, 84, 60, 63, 53, 53, 75, 55, 53, 82, 62, 64, 70, 60, 58, 67, 55, 66, 60, 89, 67, 45, 63, 92, 58, 46, 56, 56, 58, 78, 55, 76, 88, 67, 71, 66, 86, 75, 71, 50, 72, 53, 43, 76, 47, 74, 67, 61, 70, 90, 47, 70, 54, 84, 34, 59, 39, 58, 62, 52, 65, 67, 51, 72, 70, 56, 79, 57, 62, 61, 77, 84, 64, 47, 58, 59, 72, 49, 56, 52, 80, 56, 51, 75, 60, 64, 52, 66, 45, 59, 47, 64, 78, 43, 69, 62, 79, 43, 61, 87, 54, 57, 70, 48, 77, 51, 71, 57, 109, 65, 63, 74, 70, 66, 58, 101, 55, 59, 61, 67, 61, 79, 69, 85, 54, 48, 69, 44, 64, 55, 62, 54, 71, 119, 84, 61, 75, 59, 66, 91, 69, 67, 48, 48, 69, 73, 49, 77, 63, 62, 65, 88, 48, 66, 58, 65, 73, 71, 61, 67, 55, 61, 62, 73, 58, 90, 51, 64, 51, 89, 55, 75, 59, 62, 63, 71, 64, 88, 59, 73, 72, 56, 80, 42, 62, 100, 57, 64, 65, 87, 96, 65, 53, 49, 53, 59, 47, 60, 51, 58, 73, 60, 63, 72, 62, 64, 84, 68, 74, 60, 47, 78, 99, 47, 74, 85, 73, 69, 54, 63, 67, 123, 73, 57, 60, 62, 61, 73, 91, 49, 70, 72, 72, 59, 60, 67, 57, 68, 82, 74, 71, 58, 60, 57, 46, 64, 48, 103, 54, 55, 71, 46, 66, 83, 98, 74, 50, 68, 62, 67, 105, 63, 75, 69, 54, 60, 62, 101, 66, 33, 79, 55, 67, 86, 72, 68, 37, 68, 83, 56, 85, 51, 64, 62, 68, 86, 81, 69, 71, 67, 49, 61, 46, 72, 83, 59, 58, 78, 55, 67, 57, 112, 63, 71, 62, 78, 64, 86, 90, 47, 60, 71, 80, 74, 78, 68, 66, 41, 75, 70, 50, 50, 58, 73, 73, 90, 87, 68, 69, 84, 50, 82, 62, 65, 57, 49, 56, 112, 53, 90, 67, 62, 59, 84, 61, 67, 70, 113, 59, 60, 57, 83, 66, 60, 80, 42, 50, 61, 46, 68, 49, 65, 47, 70, 78, 59, 117, 70, 83, 57, 82, 118, 55, 80, 67, 47, 62, 70, 69, 54, 104, 71, 50, 74, 84, 61, 61, 72, 53, 50, 68, 47, 59, 55, 59, 73, 67, 55, 76, 65, 59, 79, 75, 45, 59, 49, 63, 62, 86, 43, 45, 102, 52, 61, 67, 57, 79, 68, 46, 80, 87, 76, 59, 71, 49, 47, 73, 70, 71, 47, 60, 71, 55, 49, 58, 57, 73, 68, 46, 75, 53, 83, 61, 51, 52, 73, 71, 82, 73, 77, 48, 64, 55, 56, 74, 51, 39, 54, 118, 56, 70, 104, 75, 73, 82, 57, 89, 66, 70, 69, 67, 71, 63, 63, 57, 96, 61, 71, 37, 63, 61, 48, 54, 63, 66, 105, 54, 63, 73, 49, 77, 71, 80, 52, 83, 57, 79, 65, 69, 65, 72, 68, 133, 83, 59, 67, 69, 64, 51, 71, 62, 63, 73, 53, 54, 62, 77, 49, 60, 57, 61, 61, 61, 52, 49, 70, 53, 58, 51, 75, 48, 78, 68, 45, 53, 63, 57, 72, 70, 67, 102, 59, 59, 68, 87, 75, 77, 56, 70, 89, 60, 72, 64, 60, 74, 75, 65, 58, 68, 82, 55, 52, 82, 77, 41, 87, 73, 86, 65, 69, 68, 56, 75, 63, 32, 57, 50, 67, 69, 72, 52, 68, 56, 71, 60, 79, 61, 69, 63, 67, 44, 47, 66, 54, 56, 69, 71, 92, 66, 68, 88, 72, 47, 74, 80, 65, 61, 61, 64, 50, 64, 59, 61, 61, 93, 76, 37, 55, 54, 87, 61, 79, 78, 33, 62, 51, 59, 63, 70, 59, 98, 78, 60, 64, 68, 64, 54, 70, 60, 75, 64, 65, 54, 76, 66, 43, 58, 41, 79, 78, 67, 55, 63, 58, 73, 47, 94, 55, 78, 107, 78, 47, 46, 52, 96, 67, 61, 36, 61, 55, 69, 77, 57, 67, 76, 62, 62, 42, 73, 82, 50, 60, 73, 48, 59, 67, 50, 55, 55, 63, 64, 40, 60, 79, 64, 58, 102, 82, 106, 69, 46, 87, 55, 65, 80, 65, 52, 61, 50, 50, 53, 60, 74, 55, 83, 63, 73, 60, 66, 71, 82, 74, 60, 47, 69, 80, 62, 65, 53, 57, 81, 73, 65, 71, 64, 74, 58, 76, 63, 69, 90, 79, 39, 50, 57, 87, 57, 63, 60, 64, 74, 72, 77, 116, 82, 50, 64, 55, 87, 73, 78, 70, 71, 63, 72, 58, 90, 77, 60, 55, 78, 65, 109, 64, 70, 78, 78, 57, 62, 75, 66, 67, 68, 84, 69, 109, 35, 61, 71, 86, 66, 96, 105, 90, 62, 70, 63, 52, 82, 72, 52, 56, 73, 69, 65, 86, 69, 71, 50, 48, 64, 68, 71, 72, 54, 58, 68, 56, 55, 67, 67, 63, 68, 74, 82, 79, 69, 56, 60, 60, 52, 62, 32, 97, 60, 61, 93, 63, 81, 65, 56, 71, 61, 66, 58, 61, 82, 49, 72, 66, 86, 79, 59, 42, 40, 54, 68, 72, 61, 62, 56, 58, 133, 66, 60, 78, 74, 41, 61, 70, 65, 86, 53, 80, 68, 59, 57, 46, 62, 81, 88, 76, 57, 69, 60, 67, 67, 69, 82, 71, 78, 73, 72, 59, 69, 51, 71, 65, 55, 83, 83, 68, 62, 48, 61, 60, 59, 45, 67, 59, 64, 80, 63, 91, 53, 59, 93, 56, 66, 58, 71, 101, 79, 76, 85, 76, 52, 47, 52, 63, 69, 56, 78, 80, 68, 55, 108, 53, 56, 67, 57, 48, 71, 72, 77, 75, 48, 52, 35, 47, 48, 77, 63, 84, 67, 54, 61, 58, 63, 66, 71, 47, 56, 54, 50, 56, 54, 58, 75, 65, 80, 52, 55, 71, 81, 66, 42, 73, 76, 47, 72, 69, 60, 71, 74, 58, 90, 76, 51, 56, 90, 70, 53, 41, 49, 55, 65, 62, 81, 71, 66, 64, 49, 58, 73, 81, 54, 62, 59, 69, 77, 71, 52, 68, 41, 54, 66, 39, 53, 32, 76, 58, 67, 73, 45, 87, 52, 59, 70, 52, 77, 60, 43, 68, 52, 74, 63, 93, 74, 68, 36, 55, 85, 63, 64, 72, 63, 103, 73, 75, 47, 70, 73, 98, 72, 63, 84, 71, 65, 96, 51, 42, 68, 60, 54, 73, 61, 67, 70, 68, 59, 48, 57, 49, 60, 170, 80, 59, 66, 70, 48, 56, 52, 70, 50, 57, 64, 68, 73, 59, 34, 57, 87, 60, 63, 53, 64, 58, 82, 62, 71, 59, 85, 61, 60, 72, 61, 57, 55, 57, 50, 57, 72, 60, 72, 59, 81, 81, 57, 72, 91, 59, 88, 52, 68, 65, 63, 79, 69, 60, 69, 73, 61, 71, 74, 71, 81, 73, 85, 60, 83, 65, 44, 79, 61, 66, 111, 67, 77, 57, 87, 60, 86, 52, 51, 66, 43, 75, 67, 55, 63, 76, 58, 71, 72, 54, 65, 62, 67, 81, 92, 71, 79, 53, 57, 48, 61, 61, 44, 74, 66, 56, 73, 58, 73, 67, 52, 68, 47, 65, 51, 78, 64, 58, 54, 50, 93, 57, 89, 67, 70, 68, 51, 70, 87, 52, 74, 78, 74, 76, 51, 62, 65, 77, 58, 63, 59, 53, 78, 95, 67, 58, 98, 63, 84, 62, 63, 75, 59, 48, 50, 70, 61, 73, 81, 85, 54, 62, 91, 81, 53, 66, 59, 84, 68, 62, 44, 51, 45, 45, 68, 54, 67, 50, 80, 65, 66, 61, 106, 50, 74, 75, 52, 70, 61, 66, 54, 61, 57, 85, 83, 77, 74, 56, 87, 95, 54, 65, 64, 66, 65, 63, 64, 64, 74, 69, 83, 56, 93, 66, 79, 55, 75, 97, 71, 68, 81, 74, 88, 73, 60, 65, 62, 53, 81, 66, 75, 77, 45, 60, 66, 55, 75, 55, 56, 53, 41, 60, 60, 57, 78, 52, 61, 85, 74, 82, 95, 54, 53, 72, 51, 56, 49, 54, 56, 68, 81, 60, 34, 77, 88, 63, 57, 35, 47, 55, 95, 50, 70, 74, 66, 62, 47, 66, 71, 81, 94, 103, 69, 66, 51, 42, 87, 68, 79, 54, 74, 67, 48, 81, 87, 62, 80, 39, 91, 48, 67, 63, 60, 82, 49, 66, 56, 72, 86, 57, 62, 66, 68, 109, 63, 68, 72, 71, 62, 77, 50, 65, 88, 68, 52, 48, 64, 87, 71, 61, 52, 61, 72, 61, 60, 51, 49, 60, 68, 77, 73, 95, 64, 58, 85, 54, 65, 49, 77, 71, 67, 69, 62, 56, 56, 50, 68, 55, 53, 56, 71, 50, 66, 60, 65, 76, 85, 53, 66, 61, 81, 91, 60, 69, 56, 63, 65, 49, 79, 78, 73, 51, 83, 74, 65, 66, 70, 51, 71, 81, 76, 67, 87, 79, 70, 46, 53, 66, 76, 53, 65, 61, 97, 78, 71, 79, 59, 85, 62, 47, 65, 64, 62, 48, 62, 71, 85, 70, 56, 84, 71, 90, 61, 52, 56, 52, 140, 108, 81, 100, 74, 81, 60, 45, 84, 114, 59, 56, 55, 93, 61, 71, 59, 61, 67, 82, 92, 66, 89, 92, 48, 63, 52, 60, 66, 56, 74, 59, 62, 63, 44, 72, 86, 41, 114, 63, 61, 79, 54, 57, 53, 143, 80, 83, 98, 62, 48, 42, 79, 55, 87, 65, 50, 68, 79, 61, 60, 66, 42, 68, 59, 82, 73, 84, 70, 64, 103, 46, 58, 57, 63, 85, 55, 57, 57, 53, 82, 69, 54, 60, 91, 53, 70, 59, 56, 53, 52, 98, 63, 70, 41, 98, 53, 70, 86, 47, 82, 71, 73, 69, 49, 56, 76, 62, 62, 57, 62, 80, 79, 56, 69, 105, 95, 74, 71, 61, 80, 65, 59, 63, 83, 60, 56, 73, 58, 52, 65, 87, 90, 41, 49, 48, 69, 68, 48, 82, 68, 50, 64, 68, 60, 82, 79, 49, 55, 75, 58, 71, 67, 57, 63, 73, 53, 57, 51, 57, 72, 51, 96, 54, 68, 81, 87, 90, 81, 55, 66, 61, 65, 62, 65, 55, 60, 76, 56, 68, 49, 57, 74, 58, 46, 72, 46, 42, 63, 48, 82, 53, 139, 58, 79, 64, 84, 85, 65, 53, 57, 53, 63, 75, 59, 79, 56, 62, 48, 64, 58, 69, 66, 89, 58, 60, 52, 58, 71, 81, 59, 72, 94, 68, 51, 53, 69, 44, 53, 42, 79, 63, 73, 57, 75, 60, 75, 56, 50, 74, 77, 86, 108, 69, 68, 49, 82, 89, 69, 47, 78, 73, 48, 38, 56, 53, 50, 58, 49, 52, 73, 84, 78, 120, 56, 72, 49, 69, 95, 57, 73, 52, 60, 49, 57, 67, 75, 71, 58, 62, 73, 49, 79, 73, 76, 52, 78, 71, 67, 43, 86, 53, 65, 63, 72, 64, 71, 58, 94, 122, 84, 77, 71, 40, 59, 58, 65, 79, 42, 81, 68, 54, 76, 71, 101, 109, 71, 60, 64, 69, 93, 55, 64, 45, 71, 55, 127, 66, 80, 72, 69, 56, 50, 59, 74, 100, 63, 60, 75, 60, 73, 68, 71, 95, 60, 45, 60, 53, 55, 53, 59, 51, 87, 77, 88, 60, 51, 71, 66, 73, 69, 127, 58, 90, 66, 72, 68, 55, 74, 41, 62, 49, 52, 55, 80, 79, 63, 64, 70, 61, 92, 77, 68, 91, 68, 52, 103, 66, 110, 78, 60, 54, 56, 74, 61, 63, 61, 44, 81, 74, 61, 57, 94, 62, 53, 56, 78, 94, 63, 109, 75, 49, 60, 101, 44, 105, 57, 78, 70, 47, 69, 95, 56, 55, 58, 50, 44, 71, 69, 63, 97, 41, 97, 51, 62, 48, 53, 54, 58, 59, 49, 53, 52, 51, 66, 83, 84, 52, 81, 59, 66, 70, 63, 81, 46, 59, 65, 68, 50, 63, 61, 56, 69, 65, 87, 76, 43, 50, 104, 64, 63, 74, 85, 78, 63, 49, 66, 52, 58, 62, 67, 49, 54, 57, 63, 54, 63, 53, 57, 59, 51, 44, 59, 70, 58, 60, 116, 53, 94, 80, 57, 60, 65, 73, 79, 89, 38, 81, 27, 58, 68, 63, 68, 65, 59, 71, 53, 55, 61, 61, 108, 64, 68, 58, 49, 53, 54, 71, 73, 61, 87, 59, 73, 57, 84, 56, 64, 71, 50, 61, 78, 75, 66, 61, 64, 64, 68, 69, 80, 53, 70, 43, 47, 98, 52, 108, 52, 61, 89, 48, 66, 61, 58, 45, 108, 57, 76, 86, 72, 68, 44, 56, 63, 70, 71, 67, 63, 51, 144, 45, 67, 48, 40, 85, 54, 54, 94, 58, 45, 84, 57, 68, 53, 46, 51, 62, 99, 76, 76, 94, 64, 63, 65, 52, 84, 55, 48, 77, 97, 60, 59, 68, 63, 54, 69, 67, 60, 56, 76, 57, 63, 80, 76, 91, 61, 53, 120, 50, 51, 56, 36, 56, 88, 64, 75, 73, 56, 65, 42, 66, 60, 64, 125, 51, 59, 50, 64, 38, 78, 39, 69, 49, 64, 49, 61, 61, 71, 68, 63, 87, 57, 91, 57, 58, 56, 54, 60, 69, 55, 83, 63, 71, 63, 66, 47, 70, 61, 44, 111, 82, 65, 83, 69, 44, 50, 72, 77, 44, 66, 66, 58, 42, 54, 67, 86, 84, 59, 52, 76, 53, 60, 74, 52, 70, 67, 53, 58, 80, 81, 70, 55, 52, 66, 71, 51, 74, 52, 58, 67, 47, 47, 78, 73, 94, 63, 40, 64, 51, 72, 54, 43, 56, 72, 64, 70, 59, 74, 44, 58, 95, 39, 58, 70, 60, 52, 59, 67, 79, 46, 87, 54, 70, 78, 79, 75, 64, 61, 62, 69, 74, 76, 58, 126, 71, 47, 56, 62, 43, 97, 59, 66, 76, 28, 58, 79, 52, 56, 43, 64, 80, 49, 47, 86, 59, 64, 50, 66, 70, 64, 69, 72, 43, 40, 48, 67, 51, 64, 75, 80, 62, 82, 34, 62, 57, 52, 44, 47, 72, 73, 59, 65, 72, 82, 59, 64, 54, 58, 59, 77, 92, 49, 62, 65, 52, 40, 65, 43, 76, 55, 70, 59, 81, 66, 63, 72, 56, 62, 55, 62, 89, 73, 89, 56, 47, 42, 86, 80, 71, 73, 78, 76, 54, 55, 42, 101, 43, 63, 75, 52, 70, 49, 55, 54, 66, 115, 63, 71, 70, 50, 55, 111, 64, 40, 77, 62, 70, 91, 64, 50, 70, 79, 74, 53, 61, 71, 63, 89, 66, 72, 67, 58, 55, 53, 103, 68, 51, 53, 79, 71, 75, 104, 81, 75, 42, 62, 60, 68, 31, 121, 63, 83, 110, 71, 51, 73, 55, 66, 41, 70, 70, 61, 51, 58, 50, 58, 48, 81, 67, 53, 69, 49, 59, 73, 47, 45, 82, 79, 54, 83, 58, 47, 61, 55, 43, 80, 88, 81, 93, 63, 95, 62, 49, 59, 69, 73, 52, 67, 67, 66, 48, 63, 61, 55, 70, 105, 61, 80, 64, 70, 59, 42, 61, 42, 50, 75, 62, 57, 73, 52, 92, 74, 52, 47, 50, 74, 57, 73, 69, 50, 60, 70, 86, 45, 80, 83, 72, 79, 72, 58, 71, 71, 75, 66, 68, 66, 74, 60, 49, 52, 50, 77, 69, 72, 87, 75, 52, 49, 54, 69, 64, 74, 74, 62, 69, 58, 75, 94, 120, 64, 64, 73, 75, 55, 68, 75, 56, 74, 66, 49, 41, 48, 70, 54, 63, 78, 62, 65, 65, 48, 76, 64, 62, 97, 63, 101, 53, 55, 59, 76, 49, 54, 53, 69, 62, 66, 64, 61, 55, 50, 62, 58, 57, 73, 80, 70, 95, 58, 61, 62, 51, 88, 81, 62, 44, 65, 57, 78, 68, 85, 67, 76, 44, 63, 62, 74, 67, 61, 71, 79, 54, 64, 75, 59, 72, 63, 64, 65, 46, 78, 47, 66, 66, 53, 94, 61, 61, 68, 67, 139, 54, 59, 62, 71, 56, 58, 60, 55, 68, 57, 71, 58, 58, 62, 45, 57, 69, 80, 58, 84, 72, 55, 129, 62, 69, 99, 51, 73, 70, 64, 104, 58, 62, 65, 57, 55, 68, 64, 64, 60, 62, 86, 64, 76, 66, 44, 53, 71, 59, 87, 103, 80, 78, 58, 66, 58, 56, 62, 73, 80, 71, 61, 48, 63, 51, 78, 44, 53, 53, 73, 56, 58, 78, 57, 58, 73, 75, 59, 71, 51, 54, 69, 71, 75, 72, 71, 58, 65, 62, 77, 75, 68, 58, 55, 61, 53, 59, 58, 48, 96, 70, 63, 81, 106, 58, 71, 82, 58, 77, 53, 62, 60, 82, 61, 65, 45, 84, 54, 68, 61, 67, 87, 66, 78, 61, 82, 88, 53, 56, 85, 66, 66, 70, 59, 48, 62, 54, 64, 61, 59, 95, 59, 65, 55, 59, 64, 79, 63, 64, 49, 61, 65, 96, 69, 73, 64, 48, 86, 62, 66, 83, 85, 56, 67, 72, 68, 65, 94, 67, 57, 63, 60, 64, 59, 61, 60, 60, 63, 70, 67, 64, 56, 85, 68, 58, 56, 79, 75, 44, 53, 67, 61, 50, 69, 44, 101, 101, 69, 61, 60, 82, 51, 57, 68, 68, 71, 62, 63, 56, 48, 67, 80, 69, 77, 61, 60, 54, 59, 61, 51, 65, 56, 64, 81, 65, 66, 61, 57, 113, 63, 50, 50, 60, 67, 56, 84, 69, 65, 77, 64, 72, 63, 63, 57, 66, 63, 70, 58, 59, 66, 63, 72, 88, 61, 67, 82, 57, 63, 64, 77, 64, 56, 76, 72, 63, 59, 62, 59, 61, 58, 70, 58, 67, 52, 57, 69, 66, 76, 109, 87, 73, 64, 69, 74, 121, 73, 84, 52, 61, 45, 67, 83, 70, 71, 59, 71, 87, 54, 84, 67, 62, 67, 56, 65, 54, 58, 82, 74, 100, 50, 60, 60, 57, 56, 80, 50, 51, 66, 32, 58, 71, 68, 51, 68, 88, 55, 53, 65, 70, 61, 73, 53, 68, 60, 57, 67, 61, 49, 67, 59, 148, 77, 83, 141, 56, 70, 55, 50, 66, 71, 71, 72, 75, 74, 59, 72, 67, 72, 76, 75, 65, 74, 70, 92, 51, 63, 74, 56, 39, 67, 63, 79, 53, 55, 60, 60, 85, 61, 66, 61, 56, 76, 59, 72, 51, 50, 42, 57, 63, 57, 70, 69, 66, 52, 60, 81, 60, 75, 58, 63, 78, 54, 54, 141, 61, 60, 62, 60, 66, 66, 58, 66, 63, 61, 64, 41, 60, 74, 57, 67, 76, 65, 61, 56, 69, 63, 64, 84, 71, 62, 65, 50, 60, 85, 73, 75, 71, 71, 77, 80, 72, 66, 95, 47, 68, 61, 65, 62, 72, 67, 66, 75, 59, 70, 53, 66, 48, 55, 61, 97, 52, 88, 69, 60, 62, 67, 66, 78, 65, 56, 56, 76, 43, 73, 69, 61, 61, 75, 66, 62, 67, 55, 63, 84, 55, 72, 58, 70, 67, 53, 70, 59, 69, 48, 61, 80, 63, 66, 68, 62, 70, 69, 53, 48, 57, 49, 58, 61, 50, 83, 61, 59, 64, 59, 51, 60, 65, 72, 57, 64, 68, 53, 111, 71, 144, 67, 61, 66, 52, 58, 79, 56, 56, 67, 76, 69, 64, 72, 78, 52, 62, 70, 53, 61, 60, 67, 69, 58, 91, 57, 66, 69, 76, 67, 62, 58, 56, 56, 74, 83, 50, 57, 57, 62, 69, 63, 81, 57, 48, 41, 56, 72, 42, 75, 62, 63, 64, 55, 70, 65, 68, 101, 76, 60, 68, 70, 70, 76, 65, 62, 53, 69, 75, 56, 59, 75, 67, 64, 104, 55, 58, 66, 54, 55, 78, 63, 64, 40, 51, 54, 105, 56, 66, 64, 70, 50, 52, 62, 55, 78, 44, 66, 59, 67, 63, 56, 65, 77, 70, 56, 63, 70, 41, 74, 55, 71, 91, 59, 66, 76, 61, 56, 62, 59, 65, 62, 68, 98, 54, 71, 53, 74, 68, 68, 74, 64, 58, 104, 62, 63, 65, 61, 62, 83, 54, 68, 46, 66, 57, 60, 59, 72, 81, 46, 56, 67, 64, 96, 53, 55, 62, 89, 64, 56, 60, 67, 60, 63, 66, 73, 64, 63, 82, 93, 71, 50, 41, 81, 93, 72, 95, 77, 68, 70, 85, 88, 71, 61, 60, 57, 53, 57, 61, 48, 56, 65, 88, 76, 56, 66, 72, 53, 60, 61, 95, 63, 51, 58, 67, 72, 62, 71, 58, 70, 47, 60, 54, 60, 68, 58, 64, 45, 55, 63, 54, 87, 73, 85, 68, 58, 78, 68, 56, 52, 56, 91, 58, 55, 50, 53, 62, 57, 61, 71, 49, 60, 75, 57, 78, 71, 56, 54, 60, 49, 57, 42, 68, 69, 60, 66, 66, 60, 75, 71, 58, 74, 73, 57, 97, 73, 74, 60, 65, 59, 57, 113, 63, 76, 41, 86, 87, 53, 53, 57, 62, 60, 79, 63, 71, 76, 62, 65, 58, 62, 55, 62, 75, 52, 73, 86, 56, 92, 42, 62, 68, 67, 80, 72, 51, 53, 59, 64, 85, 62, 63, 90, 66, 65, 65, 75, 64, 116, 50, 80, 48, 65, 74, 61, 64, 67, 64, 96, 57, 73, 67, 58, 67, 49, 83, 62, 52, 81, 75, 69, 66, 83, 67, 54, 59, 84, 71, 54, 69, 75, 75, 94, 95, 71, 90, 108, 58, 105, 50, 80, 72, 36, 39, 59, 63, 59, 68, 72, 61, 74, 63, 59, 90, 54, 77, 63, 76, 57, 62, 53, 61, 84, 61, 64, 65, 65, 57, 62, 70, 56, 62, 69, 63, 76, 67, 101, 61, 31, 61, 69, 53, 102, 71, 68, 58, 70, 68, 76, 46, 65, 75, 47, 61, 97, 69, 64, 55, 69, 84, 72, 58, 81, 51, 91, 56, 57, 70, 81, 52, 62, 57, 56, 61, 77, 66, 61, 40, 75, 57, 52, 59, 90, 58, 73, 72, 64, 45, 67, 86, 70, 65, 120, 65, 104, 48, 62, 52, 70, 58, 65, 71, 100, 67, 81, 74, 47, 72, 53, 57, 69, 58, 116, 73, 60, 54, 56, 67, 61, 63, 66, 60, 87, 72, 71, 56, 57, 89, 58, 58, 77, 46, 69, 48, 72, 44, 61, 70, 63, 70, 55, 71, 69, 71, 65, 67, 57, 61, 77, 64, 69, 91, 43, 61, 65, 62, 49, 67, 75, 69, 62, 88, 64, 78, 66, 59, 77, 60, 56, 71, 64, 58, 80, 70, 60, 51, 76, 56, 51, 59, 58, 77, 51, 74, 51, 59, 60, 46, 57, 55, 56, 52, 79, 61, 57, 54, 62, 68, 62, 56, 121, 58, 52, 76, 69, 107, 75, 55, 72, 61, 62, 73, 47, 92, 49, 74, 75, 58, 64, 65, 67, 63, 73, 65, 52, 54, 67, 55, 58, 50, 86, 66, 74, 80, 83, 71, 54, 62, 69, 60, 70, 97, 63, 66, 74, 99, 62, 57, 68, 58, 65, 70, 71, 47, 65, 68, 62, 49, 73, 67, 67, 69, 53, 73, 53, 75, 52, 80, 60, 104, 71, 65, 59, 68, 67, 83, 69, 72, 52, 64, 35, 59, 58, 69, 67, 53, 58, 64, 77, 62, 62, 55, 84, 45, 56, 73, 56, 52, 87, 65, 64, 85, 62, 57, 57, 125, 53, 55, 72, 72, 85, 145, 68, 72, 68, 54, 55, 67, 70, 55, 48, 74, 58, 82, 83, 77, 72, 55, 59, 53, 66, 74, 61, 57, 58, 66, 104, 57, 63, 66, 65, 61, 81, 73, 57, 84, 84, 39, 57, 76, 78, 56, 56, 60, 55, 53, 71, 62, 66, 47, 63, 50, 61, 33, 53, 51, 88, 70, 65, 72, 62, 67, 65, 63, 77, 80, 64, 68, 57, 70, 72, 77, 79, 45, 60, 64, 58, 62, 50, 69, 40, 56, 64, 69, 57, 44, 69, 58, 56, 59, 60, 67, 67, 58, 73, 83, 62, 78, 58, 61, 47, 67, 63, 82, 57, 58, 60, 82, 79, 58, 58, 72, 70, 52, 72, 64, 64, 70, 61, 58, 49, 59, 67, 56, 98, 46, 69, 65, 63, 59, 68, 61, 45, 68, 55, 77, 65, 70, 53, 54, 65, 55, 48, 58, 93, 72, 57, 62, 56, 90, 75, 45, 73, 65, 75, 63, 46, 66, 92, 65, 64, 68, 53, 62, 69, 71, 73, 85, 91, 56, 94, 75, 67, 80, 74, 54, 81, 71, 80, 51, 68, 65, 41, 59, 36, 59, 56, 55, 73, 66, 58, 63, 58, 69, 60, 39, 73, 60, 59, 55, 85, 58, 58, 97, 78, 58, 54, 43, 54, 37, 46, 69, 87, 53, 55, 69, 78, 67, 54, 77, 61, 62, 55, 57, 54, 50, 62, 62, 56, 56, 69, 62, 90, 73, 62, 52, 70, 61, 46, 50, 57, 78, 48, 63, 69, 62, 51, 63, 56, 42, 69, 70, 105, 61, 76, 59, 66, 58, 47, 68, 39, 63, 55, 46, 67, 72, 75, 73, 65, 81, 75, 66, 76, 63, 63, 55, 62, 71, 77, 73, 59, 74, 67, 60, 70, 56, 77, 66, 51, 56, 81, 59, 127, 58, 88, 59, 57, 54, 77, 53, 70, 41, 77, 71, 45, 70, 85, 38, 42, 58, 42, 74, 90, 63, 68, 65, 77, 59, 63, 57, 64, 71, 50, 52, 75, 101, 66, 61, 77, 62, 57, 67, 98, 65, 63, 89, 43, 83, 59, 61, 60, 54, 79, 60, 67, 52, 61, 55, 67, 55, 64, 63, 51, 77, 54, 52, 68, 71, 77, 56, 80, 64, 55, 66, 68, 55, 62, 73, 72, 55, 27, 67, 85, 80, 81, 65, 113, 83, 66, 93, 75, 55, 53, 54, 136, 64, 46, 66, 61, 90, 72, 70, 65, 65, 60, 69, 53, 101, 77, 54, 70, 46, 60, 52, 66, 95, 86, 82, 86, 69, 80, 80, 57, 47, 92, 83, 46, 62, 39, 67, 55, 48, 73, 68, 83, 81, 67, 69, 49, 74, 87, 62, 60, 37, 64, 55, 62, 67, 61, 68, 56, 62, 69, 66, 64, 55, 75, 96, 66, 68, 70, 63, 66, 73, 81, 50, 67, 81, 61, 49, 58, 64, 55, 59, 74, 55, 83, 66, 55, 50, 58, 63, 62, 71, 58, 44, 51, 56, 77, 73, 47, 56, 138, 66, 67, 49, 55, 77, 49, 69, 77, 71, 39, 80, 88, 58, 58, 74, 70, 80, 65, 62, 54, 59, 57, 59, 41, 56, 97, 61, 59, 80, 56, 46, 78, 62, 81, 46, 71, 62, 71, 78, 57, 67, 67, 70, 51, 65, 74, 88, 81, 102, 80, 102, 63, 89, 97, 65, 63, 68, 50, 64, 84, 56, 68, 67, 93, 81, 70, 68, 76, 66, 77, 58, 65, 77, 66, 71, 64, 60, 75, 63, 51, 61, 70, 74, 73, 61, 55, 58, 64, 56, 51, 58, 68, 62, 53, 75, 66, 59, 66, 69, 75, 67, 54, 71, 53, 61, 52, 74, 63, 45, 63, 77, 51, 60, 54, 77, 65, 47, 61, 50, 57, 91, 71, 85, 67, 55, 63, 69, 79, 62, 68, 77, 54, 71, 57, 45, 56, 78, 105, 69, 63, 56, 65, 87, 71, 65, 60, 58, 90, 63, 66, 45, 58, 47, 67, 84, 59, 98, 68, 47, 77, 54, 68, 68, 71, 82, 85, 57, 63, 72, 69, 56, 47, 68, 66, 58, 65, 49, 62, 59, 56, 51, 47, 74, 69, 66, 41, 64, 76, 43, 98, 72, 72, 57, 82, 88, 86, 72, 54, 61, 60, 82, 64, 64, 72, 80, 69, 88, 82, 59, 39, 68, 74, 53, 101, 57, 56, 61, 58, 64, 69, 168, 62, 53, 77, 84, 60, 89, 69, 59, 49, 46, 58, 70, 55, 54, 59, 71, 57, 96, 81, 62, 65, 76, 63, 73, 47, 79, 58, 75, 84, 49, 66, 54, 55, 49, 132, 56, 57, 87, 57, 74, 56, 62, 55, 76, 84, 49, 70, 92, 92, 68, 62, 76, 69, 52, 48, 68, 74, 62, 91, 64, 75, 70, 62, 61, 65, 66, 50, 74, 42, 62, 82, 72, 71, 57, 86, 79, 67, 70, 98, 73, 70, 73, 61, 66, 75, 62, 65, 68, 75, 63, 78, 65, 70, 62, 68, 71, 60, 74, 64, 50, 72, 48, 66, 61, 45, 44, 82, 58, 69, 61, 53, 36, 50, 64, 51, 66, 58, 67, 82, 74, 67, 75, 53, 58, 59, 58, 61, 77, 67, 65, 81, 58, 56, 68, 65, 52, 66, 62, 53, 84, 58, 69, 52, 62, 57, 64, 89, 78, 81, 68, 54, 49, 34, 62, 80, 60, 49, 90, 67, 62, 77, 47, 69, 76, 62, 75, 84, 48, 64, 54, 66, 55, 53, 59, 66, 78, 56, 55, 59, 88, 77, 47, 50, 63, 69, 51, 73, 90, 57, 69, 70, 66, 65, 59, 48, 63, 66, 46, 90, 81, 70, 55, 98, 71, 91, 71, 75, 66, 60, 90, 77, 63, 70, 60, 56, 63, 59, 64, 53, 65, 64, 75, 70, 65, 73, 67, 81, 93, 52, 78, 76, 65, 76, 46, 60, 60, 44, 58, 70, 108, 45, 82, 39, 52, 102, 48, 47, 65, 60, 60, 60, 98, 73, 69, 55, 75, 66, 88, 92, 67, 73, 57, 67, 78, 72, 66, 48, 62, 89, 48, 60, 59, 60, 50, 69, 63, 91, 56, 89, 57, 58, 57, 91, 77, 55, 77, 85, 65, 58, 84, 100, 70, 58, 52, 72, 55, 47, 94, 109, 99, 88, 67, 69, 48, 71, 71, 62, 64, 55, 113, 65, 50, 76, 53, 83, 61, 44, 76, 69, 65, 59, 58, 57, 61, 52, 53, 65, 74, 116, 64, 82, 70, 59, 54, 44, 69, 54, 51, 59, 91, 55, 88, 55, 70, 57, 53, 49, 85, 72, 68, 50, 69, 63, 62, 57, 63, 56, 60, 66, 87, 65, 41, 71, 65, 58, 55, 80, 72, 49, 59, 64, 78, 71, 59, 56, 71, 60, 72, 56, 61, 72, 102, 72, 72, 41, 62, 53, 74, 57, 98, 84, 78, 78, 68, 93, 60, 96, 59, 48, 57, 67, 58, 46, 63, 43, 62, 51, 58, 56, 71, 96, 64, 67, 50, 51, 63, 53, 76, 36, 60, 68, 56, 73, 61, 121, 70, 57, 72, 69, 56, 71, 54, 60, 69, 76, 67, 76, 50, 50, 63, 86, 54, 64, 63, 58, 30, 87, 48, 69, 83, 64, 67, 85, 61, 63, 73, 49, 91, 75, 55, 91, 61, 68, 76, 59, 61, 53, 88, 88, 67, 59, 57, 67, 51, 49, 47, 97, 49, 63, 67, 57, 73, 58, 43, 71, 64, 62, 54, 61, 50, 155, 73, 58, 67, 45, 57, 60, 80, 66, 73, 57, 73, 87, 62, 60, 73, 62, 51, 40, 56, 61, 65, 52, 77, 62, 73, 83, 66, 53, 52, 58, 58, 67, 46, 80, 57, 131, 58, 97, 69, 48, 44, 70, 83, 89, 70, 85, 67, 87, 57, 78, 82, 65, 92, 55, 55, 77, 70, 79, 56, 53, 50, 56, 39, 66, 76, 64, 57, 55, 63, 72, 80, 70, 120, 55, 62, 66, 72, 66, 72, 73, 53, 70, 98, 81, 68, 53, 82, 68, 65, 81, 63, 56, 68, 66, 85, 56, 68, 61, 59, 79, 49, 79, 58, 68, 49, 64, 67, 68, 56, 86, 61, 88, 55, 75, 63, 59, 67, 70, 43, 78, 57, 58, 33, 56, 64, 54, 60, 69, 62, 72, 54, 55, 67, 70, 55, 53, 53, 63, 52, 93, 56, 74, 60, 71, 58, 90, 51, 69, 53, 67, 70, 74, 87, 59, 50, 69, 80, 103, 52, 71, 57, 60, 49, 47, 70, 67, 62, 75, 62, 51, 65, 64, 57, 58, 84, 46, 72, 71, 74, 67, 60, 61, 46, 77, 81, 64, 64, 59, 78, 92, 59, 71, 79, 45, 63, 71, 52, 78, 93, 77, 73, 59, 72, 84, 120, 56, 123, 85, 54, 62, 57, 74, 63, 80, 52, 67, 85, 60, 63, 54, 65, 66, 61, 50, 72, 61, 64, 127, 63, 52, 63, 54, 79, 67, 57, 100, 65, 62, 79, 78, 53, 54, 61, 69, 49, 61, 67, 64, 43, 75, 61, 66, 78, 68, 61, 71, 60, 61, 77, 117, 69, 92, 75, 92, 80, 73, 51, 47, 56, 81, 55, 70, 61, 53, 57, 51, 80, 57, 77, 57, 60, 49, 61, 66, 60, 50, 63, 80, 44, 51, 62, 75, 99, 61, 93, 77, 78, 54, 96, 66, 61, 53, 101, 95, 59, 56, 52, 74, 77, 54, 66, 66, 70, 75, 65, 73, 57, 75, 62, 69, 68, 77, 71, 82, 63, 42, 55, 57, 71, 79, 73, 70, 57, 83, 61, 81, 79, 61, 41, 67, 43, 56, 48, 84, 55, 84, 57, 71, 67, 53, 96, 62, 58, 86, 69, 76, 60, 102, 56, 79, 107, 69, 53, 69, 76, 80, 72, 62, 55, 111, 83, 63, 47, 49, 41, 88, 47, 63, 60, 61, 53, 64, 46, 60, 76, 66, 65, 78, 88, 64, 56, 72, 72, 45, 81, 65, 35, 50, 83, 53, 75, 53, 75, 86, 58, 57, 62, 64, 41, 91, 64, 88, 53, 64, 56, 54, 72, 69, 67, 73, 60, 38, 42, 51, 51, 62, 50, 74, 60, 74, 50, 76, 59, 65, 87, 57, 63, 48, 47, 59, 60, 85, 45, 53, 40, 52, 62, 96, 67, 74, 50, 74, 54, 54, 69, 53, 47, 72, 64, 55, 57, 60, 55, 82, 89, 80, 74, 88, 50, 47, 80, 91, 63, 68, 67, 70, 64, 43, 73, 77, 81, 66, 47, 106, 50, 70, 61, 60, 74, 86, 59, 81, 63, 68, 78, 93, 84, 73, 56, 53, 97, 57, 42, 60, 54, 50, 74, 56, 56, 54, 49, 50, 80, 60, 62, 77, 77, 70, 42, 80, 71, 85, 65, 71, 100, 59, 64, 50, 47, 60, 87, 55, 49, 57, 85, 60, 85, 52, 82, 58, 58, 61, 56, 46, 55, 61, 59, 77, 64, 68, 77, 62, 74, 50, 53, 62, 60, 62, 71, 66, 56, 58, 58, 95, 71, 61, 67, 88, 60, 84, 54, 65, 56, 89, 49, 63, 50, 73, 60, 80, 61, 81, 51, 65, 60, 80, 65, 55, 56, 47, 84, 59, 59, 68, 50, 49, 67, 52, 48, 56, 55, 82, 90, 66, 71, 67, 63, 62, 84, 40, 62, 102, 70, 68, 132, 73, 68, 61, 85, 47, 58, 67, 75, 54, 67, 78, 67, 58, 77, 58, 62, 63, 165, 93, 63, 53, 65, 56, 69, 84, 61, 61, 69, 70, 58, 59, 62, 61, 83, 70, 62, 53, 76, 71, 56, 65, 53, 78, 57, 55, 61, 63, 56, 62, 59, 82, 67, 50, 77, 80, 67, 55, 81, 49, 47, 47, 65, 59, 67, 74, 63, 58, 51, 64, 71, 49, 62, 68, 75, 54, 69, 79, 81, 62, 70, 54, 52, 64, 74, 56, 102, 59, 75, 67, 49, 54, 64, 101, 51, 75, 58, 82, 79, 105, 67, 50, 51, 64, 54, 56, 73, 48, 79, 68, 52, 52, 72, 70, 89, 55, 66, 65, 73, 57, 60, 52, 76, 57, 67, 55, 60, 51, 53, 30, 66, 62, 52, 89, 64, 46, 75, 100, 75, 85, 57, 68, 72, 63, 45, 64, 64, 60, 108, 55, 62, 66, 90, 61, 53, 87, 64, 69, 68, 79, 50, 76, 66, 55, 61, 67, 51, 53, 51, 71, 77, 67, 65, 45, 83, 56, 60, 62, 59, 96, 56, 74, 59, 48, 43, 65, 55, 65, 77, 63, 93, 63, 75, 54, 66, 60, 68, 47, 62, 54, 75, 66, 72, 59, 64, 81, 67, 48, 69, 83, 69, 73, 56, 64, 76, 64, 56, 52, 48, 64, 60, 56, 53, 73, 70, 72, 58, 50, 85, 26, 71, 81, 53, 67, 97, 83, 68, 75, 69, 60, 99, 57, 43, 94, 101, 62, 85, 84, 62, 76, 69, 54, 46, 53, 60, 76, 61, 64, 78, 117, 75, 96, 58, 58, 50, 49, 77, 63, 66, 70, 53, 89, 52, 46, 64, 77, 50, 84, 71, 49, 66, 75, 82, 70, 64, 59, 85, 59, 62, 65, 57, 67, 46, 69, 78, 72, 64, 50, 56, 54, 83, 59, 78, 74, 66, 58, 55, 55, 50, 79, 47, 101, 64, 78, 56, 123, 53, 47, 63, 63, 75, 61, 51, 66, 46, 54, 60, 52, 49, 63, 66, 52, 59, 75, 59, 64, 61, 62, 63, 57, 67, 73, 60, 63, 69, 69, 58, 70, 54, 94, 75, 69, 77, 54, 62, 91, 54, 53, 67, 57, 53, 55, 87, 66, 61, 66, 47, 110, 66, 67, 60, 52, 59, 67, 67, 69, 63, 64, 58, 79, 53, 65, 54, 67, 64, 53, 72, 77, 53, 76, 53, 61, 64, 70, 52, 76, 79, 63, 69, 83, 52, 49, 50, 69, 151, 68, 59, 51, 73, 63, 77, 72, 55, 59, 59, 65, 72, 62, 74, 53, 46, 60, 65, 65, 66, 54, 78, 68, 60, 66, 65, 36, 78, 68, 94, 46, 78, 62, 59, 43, 47, 54, 60, 103, 67, 73, 51, 63, 62, 68, 62, 74, 46, 57, 66, 61, 52, 68, 74, 62, 60, 84, 62, 63, 70, 72, 91, 48, 55, 76, 56, 60, 66, 52, 71, 90, 54, 48, 58, 66, 57, 70, 73, 33, 76, 53, 75, 63, 57, 58, 87, 74, 72, 73, 58, 75, 57, 127, 68, 75, 75, 66, 68, 63, 66, 68, 61, 41, 70, 53, 73, 89, 65, 62, 87, 83, 68, 73, 55, 51, 69, 81, 87, 70, 55, 64, 75, 62, 57, 57, 71, 48, 50, 80, 68, 53, 57, 56, 57, 68, 41, 53, 56, 55, 50, 72, 79, 53, 83, 52, 52, 75, 64, 53, 50, 44, 57, 67, 61, 59, 75, 74, 72, 56, 87, 78, 72, 55, 60, 62, 68, 55, 51, 57, 63, 64, 69, 50, 52, 89, 54, 60, 72, 72, 64, 101, 88, 45, 85, 48, 67, 49, 63, 64, 54, 61, 63, 52, 71, 63, 60, 69, 66, 72, 66, 127, 58, 56, 60, 60, 68, 57, 66, 68, 73, 57, 68, 67, 55, 84, 82, 42, 45, 54, 55, 53, 64, 58, 70, 59, 83, 95, 80, 56, 80, 71, 76, 68, 56, 63, 50, 56, 56, 60, 69, 82, 78, 60, 73, 64, 62, 71, 46, 50, 51, 71, 61, 71, 65, 66, 65, 69, 106, 70, 64, 59, 47, 59, 64, 53, 72, 94, 65, 61, 52, 71, 58, 57, 70, 58, 53, 62, 58, 57, 57, 67, 70, 63, 51, 42, 46, 95, 61, 54, 78, 71, 84, 70, 68, 52, 81, 61, 64, 63, 50, 71, 57, 65, 51, 49, 152, 53, 109, 47, 53, 50, 61, 54, 69, 67, 66, 57, 50, 68, 53, 55, 73, 54, 68, 43, 60, 61, 63, 35, 58, 51, 67, 60, 78, 49, 85, 53, 60, 38, 75, 45, 81, 74, 60, 30, 61, 63, 65, 77, 62, 81, 60, 70, 54, 70, 77, 61, 76, 69, 70, 59, 65, 85, 58, 63, 60, 64, 51, 71, 71, 72, 54, 59, 64, 72, 60, 84, 80, 62, 68, 74, 48, 55, 53, 46, 56, 96, 55, 61, 62, 55, 56, 49, 83, 75, 68, 71, 70, 55, 70, 69, 78, 101, 50, 143, 67, 54, 71, 72, 150, 56, 66, 63, 56, 84, 40, 62, 64, 60, 57, 88, 64, 64, 51, 48, 47, 51, 59, 52, 63, 62, 70, 51, 53, 69, 45, 81, 68, 55, 77, 64, 72, 61, 55, 66, 61, 58, 73, 49, 90, 71, 65, 82, 66, 52, 52, 85, 64, 70, 60, 58, 51, 62, 69, 49, 73, 56, 63, 79, 57, 56, 56, 51, 90, 52, 82, 86, 73, 57, 69, 60, 54, 71, 92, 69, 79, 103, 60, 92, 46, 67, 54, 105, 98, 50, 43, 68, 65, 52, 55, 66, 54, 65, 71, 60, 39, 67, 44, 56, 69, 50, 54, 38, 79, 59, 73, 67, 89, 73, 60, 89, 69, 53, 61, 71, 57, 54, 58, 47, 43, 75, 70, 71, 85, 61, 67, 82, 66, 57, 64, 84, 83, 58, 77, 62, 82, 54, 58, 75, 76, 64, 44, 68, 49, 62, 55, 36, 69, 73, 48, 39, 51, 70, 57, 53, 58, 59, 74, 83, 76, 115, 54, 78, 62, 72, 57, 59, 86, 90, 44, 59, 44, 37, 86, 82, 81, 69, 75, 54, 80, 80, 71, 61, 67, 57, 50, 68, 62, 59, 64, 57, 86, 62, 62, 62, 51, 68, 60, 54, 55, 66, 59, 56, 68, 78, 69, 68, 76, 72, 54, 68, 50, 62, 60, 63, 87, 77, 61, 111, 59, 61, 50, 72, 59, 69, 58, 54, 58, 67, 62, 63, 72, 56, 67, 73, 54, 58, 62, 63, 71, 53, 58, 95, 89, 53, 71, 44, 70, 79, 47, 88, 87, 83, 55, 50, 68, 63, 66, 75, 55, 55, 59, 56, 62, 62, 94, 63, 55, 73, 58, 58, 61, 77, 77, 43, 57, 67, 62, 60, 66, 70, 67, 61, 65, 115, 63, 37, 70, 64, 66, 61, 59, 61, 96, 68, 68, 67, 59, 73, 82, 51, 47, 72, 64, 59, 58, 83, 63, 62, 58, 73, 77, 57, 27, 67, 67, 78, 64, 59, 62, 61, 62, 57, 68, 65, 66, 60, 53, 60, 54, 81, 80, 59, 57, 66, 55, 81, 58, 67, 49, 66, 59, 60, 74, 68, 78, 63, 91, 51, 63, 64, 52, 70, 91, 68, 77, 61, 70, 47, 80, 64, 80, 88, 54, 56, 78, 72, 90, 68, 73, 79, 94, 71, 50, 101, 60, 61, 40, 87, 62, 57, 54, 64, 80, 88, 64, 61, 61, 64, 54, 87, 66, 76, 55, 54, 46, 60, 75, 68, 62, 81, 64, 45, 66, 70, 76, 47, 86, 72, 57, 63, 77, 82, 53, 89, 60, 53, 52, 58, 66, 43, 68, 78, 57, 70, 66, 63, 65, 55, 57, 65, 51, 60, 75, 106, 58, 74, 66, 65, 54, 77, 61, 54, 68, 56, 82, 60, 64, 60, 73, 52, 57, 56, 47, 77, 62, 66, 60, 57, 70, 66, 93, 69, 82, 52, 55, 48, 64, 58, 73, 69, 63, 64, 58, 111, 59, 58, 59, 87, 62, 91, 62, 66, 67, 71, 63, 58, 81, 52, 76, 44, 91, 57, 79, 67, 64, 61, 53, 63, 64, 61, 41, 97, 63, 72, 55, 55, 64, 54, 57, 65, 66, 53, 61, 69, 71, 47, 57, 68, 56, 99, 43, 74, 86, 84, 58, 74, 61, 69, 77, 88, 87, 72, 87, 67, 77, 73, 63, 62, 73, 58, 69, 72, 62, 66, 61, 63, 52, 88, 63, 49, 51, 60, 62, 60, 78, 60, 63, 62, 91, 67, 75, 61, 101, 82, 45, 54, 51, 77, 72, 63, 63, 82, 58, 77, 56, 72, 64, 54, 64, 73, 58, 58, 51, 55, 56, 54, 63, 98, 66, 54, 60, 60, 69, 62, 54, 52, 71, 61, 56, 63, 61, 63, 53, 53, 64, 69, 55, 50, 68, 56, 66, 62, 56, 81, 57, 61, 57, 62, 46, 43, 75, 58, 73, 60, 79, 67, 69, 52, 53, 60, 59, 73, 64, 63, 55, 56, 84, 55, 59, 38, 64, 90, 69, 64, 56, 57, 51, 74, 92, 60, 62, 62, 68, 57, 45, 65, 78, 89, 76, 103, 67, 56, 54, 63, 83, 77, 50, 60, 61, 50, 63, 92, 73, 50, 60, 65, 70, 73, 60, 81, 65, 132, 56, 58, 53, 34, 96, 68, 55, 78, 55, 49, 67, 39, 61, 81, 70, 67, 61, 54, 57, 68, 60, 52, 72, 66, 72, 58, 55, 62, 81, 55, 51, 56, 68, 67, 75, 86, 62, 58, 75, 65, 67, 63, 79, 53, 59, 50, 66, 79, 69, 65, 56, 76, 53, 48, 82, 84, 61, 75, 61, 72, 57, 56, 71, 83, 40, 49, 59, 53, 86, 64, 53, 52, 41, 82, 73, 62, 87, 69, 57, 56, 56, 78, 66, 56, 71, 42, 56, 53, 63, 90, 70, 58, 54, 63, 86, 60, 60, 64, 83, 72, 52, 65, 92, 58, 53, 81, 51, 70, 55, 65, 58, 67, 64, 62, 77, 64, 71, 73, 51, 60, 55, 67, 65, 51, 63, 62, 76, 51, 50, 57, 77, 62, 71, 61, 64, 95, 67, 64, 66, 77, 57, 66, 52, 64, 78, 49, 85, 50, 70, 70, 78, 64, 85, 60, 52, 58, 105, 64, 61, 80, 62, 57, 72, 61, 62, 80, 67, 58, 69, 71, 108, 60, 48, 74, 72, 80, 65, 62, 62, 56, 51, 46, 71, 64, 54, 53, 60, 64, 83, 84, 68, 70, 63, 50, 71, 54, 59, 54, 57, 71, 56, 59, 78, 78, 57, 54, 70, 60, 60, 62, 75, 79, 54, 58, 57, 58, 69, 58, 77, 72, 69, 85, 62, 63, 65, 55, 77, 75, 73, 60, 66, 70, 70, 56, 73, 70, 44, 70, 60, 74, 67, 67, 81, 69, 68, 60, 57, 84, 65, 63, 59, 65, 73, 53, 71, 61, 63, 78, 57, 43, 80, 58, 59, 51, 42, 64, 74, 66, 105, 66, 85, 63, 61, 74, 80, 57, 69, 56, 73, 83, 60, 53, 67, 54, 53, 64, 55, 85, 56, 65, 53, 71, 67, 61, 62, 67, 63, 63, 64, 56, 59, 103, 62, 50, 81, 59, 62, 113, 60, 61, 57, 65, 66, 45, 49, 50, 80, 49, 50, 73, 71, 51, 73, 76, 92, 61, 62, 69, 67, 73, 68, 79, 65, 55, 72, 65, 106, 67, 82, 68, 58, 68, 58, 64, 54, 67, 68, 76, 72, 57, 64, 69, 81, 73, 61, 80, 50, 51, 141, 56, 42, 62, 56, 64, 81, 56, 58, 70, 66, 70, 44, 62, 67, 59, 54, 64, 57, 46, 59, 75, 61, 62, 75, 56, 64, 58, 82, 68, 125, 87, 72, 86, 69, 63, 53, 70, 57, 54, 75, 58, 57, 62, 75, 101, 60, 55, 61, 56, 54, 63, 59, 79, 75, 61, 59, 54, 71, 55, 56, 59, 73, 69, 68, 59, 53, 65, 73, 45, 53, 71, 65, 65, 50, 53, 38, 72, 43, 111, 63, 42, 60, 73, 74, 72, 85, 47, 65, 83, 57, 74, 68, 65, 59, 69, 62, 67, 53, 56, 77, 51, 70, 83, 73, 74, 67, 62, 47, 57, 86, 70, 56, 61, 70, 64, 61, 64, 70, 63, 50, 69, 58, 68, 58, 68, 56, 70, 69, 68, 64, 67, 79, 68, 81, 103, 50, 68, 55, 57, 72, 63, 68, 67, 62, 81, 56, 61, 78, 79, 83, 63, 57, 62, 81, 61, 73, 58, 73, 55, 70, 63, 67, 83, 89, 54, 58, 65, 70, 58, 44, 65, 90, 74, 76, 72, 98, 41, 99, 60, 63, 56, 38, 47, 80, 77, 71, 78, 54, 71, 98, 42, 50, 62, 75, 47, 46, 53, 71, 72, 55, 76, 72, 71, 77, 80, 88, 54, 132, 63, 50, 109, 43, 52, 59, 54, 46, 72, 55, 73, 75, 54, 51, 66, 40, 73, 83, 67, 71, 66, 64, 55, 99, 88, 78, 77, 78, 81, 78, 44, 63, 69, 89, 75, 76, 47, 70, 66, 55, 40, 80, 68, 62, 63, 74, 52, 61, 67, 66, 80, 47, 43, 37, 77, 59, 59, 52, 64, 109, 80, 66, 83, 66, 55, 97, 65, 56, 70, 55, 76, 87, 43, 86, 74, 101, 69, 74, 62, 64, 66, 59, 61, 70, 70, 64, 55, 65, 58, 51, 68, 76, 48, 56, 92, 65, 75, 67, 54, 66, 64, 66, 76, 42, 55, 64, 82, 59, 114, 49, 46, 51, 56, 66, 59, 64, 78, 74, 87, 68, 86, 55, 66, 82, 56, 84, 64, 61, 53, 63, 63, 83, 77, 48, 70, 65, 36, 68, 65, 84, 67, 68, 54, 62, 53, 71, 71, 69, 74, 63, 75, 60, 45, 70, 56, 67, 50, 51, 55, 74, 73, 84, 65, 75, 45, 73, 61, 70, 62, 51, 50, 45, 82, 79, 68, 74, 53, 67, 86, 69, 57, 46, 56, 70, 53, 65, 53, 72, 47, 49, 53, 66, 62, 94, 54, 85, 55, 82, 73, 88, 51, 60, 60, 57, 64, 75, 69, 73, 69, 62, 70, 60, 69, 77, 36, 89, 40, 76, 82, 49, 74, 41, 62, 73, 54, 52, 60, 73, 55, 66, 84, 44, 64, 58, 67, 52, 119, 63, 47, 80, 64, 72, 68, 74, 90, 64, 79, 62, 56, 49, 68, 69, 73, 68, 64, 80, 63, 80, 76, 49, 47, 56, 81, 64, 73, 73, 89, 40, 74, 76, 79, 80, 51, 56, 84, 52, 145, 105, 86, 57, 66, 66, 49, 67, 65, 74, 80, 98, 43, 63, 73, 71, 72, 79, 61, 65, 28, 60, 71, 71, 81, 67, 97, 58, 91, 50, 49, 83, 66, 67, 61, 64, 48, 75, 35, 61, 62, 71, 63, 62, 43, 70, 64, 64, 52, 51, 63, 73, 56, 43, 90, 91, 47, 50, 75, 79, 38, 55, 68, 47, 43, 70, 69, 74, 72, 59, 62, 92, 48, 69, 57, 73, 114, 75, 45, 57, 48, 55, 59, 63, 63, 49, 70, 61, 66, 42, 49, 74, 75, 64, 90, 77, 70, 54, 56, 82, 49, 82, 74, 72, 75, 60, 50, 78, 69, 54, 58, 48, 53, 57, 64, 104, 66, 40, 75, 75, 62, 45, 65, 58, 56, 62, 76, 53, 86, 74, 62, 65, 84, 65, 55, 61, 96, 77, 67, 68, 62, 68, 72, 78, 60, 44, 28, 66, 69, 76, 71, 80, 60, 63, 59, 67, 62, 82, 68, 66, 59, 44, 63, 53, 65, 85, 79, 69, 95, 67, 48, 53, 68, 68, 97, 56, 70, 83, 63, 63, 54, 72, 55, 63, 94, 65, 73, 70, 55, 54, 52, 74, 67, 69, 61, 45, 44, 56, 71, 70, 66, 55, 70, 90, 72, 53, 60, 58, 70, 61, 63, 83, 81, 50, 63, 51, 58, 76, 79, 74, 73, 74, 48, 76, 75, 89, 80, 59, 53, 63, 96, 55, 114, 74, 67, 95, 51, 74, 78, 92, 90, 69, 65, 71, 32, 65, 77, 122, 36, 64, 54, 112, 40, 87, 61, 24, 83, 70, 74, 68, 76, 61, 80, 89, 97, 47, 40, 58, 44, 85, 52, 49, 72, 71, 66, 48, 65, 67, 70, 64, 68, 86, 45, 77, 73, 68, 81, 54, 58, 66, 75, 62, 53, 81, 60, 53, 58, 64, 73, 58, 50, 71, 64, 69, 64, 61, 54, 71, 43, 55, 59, 74, 100, 71, 48, 78, 71, 102, 46, 89, 73, 55, 57, 51, 80, 40, 35, 54, 48, 73, 96, 68, 96, 66, 117, 80, 70, 62, 124, 48, 71, 43, 79, 54, 64, 63, 53, 89, 65, 94, 65, 72, 79, 69, 67, 94, 57, 61, 50, 54, 69, 72, 53, 126, 64, 69, 77, 70, 64, 87, 72, 64, 85, 71, 53, 67, 79, 53, 64, 55, 111, 68, 49, 63, 86, 60, 72, 72, 64, 68, 85, 71, 42, 52, 86, 64, 65, 108, 57, 82, 120, 63, 50, 89, 66, 58, 62, 59, 67, 67, 87, 44, 55, 48, 65, 84, 40, 72, 88, 56, 71, 50, 56, 68, 63, 77, 102, 62, 57, 54, 73, 59, 65, 61, 52, 60, 59, 49, 59, 57, 44, 33, 84, 55, 102, 51, 98, 85, 76, 57, 106, 65, 66, 58, 77, 38, 45, 46, 77, 73, 113, 53, 58, 70, 60, 71, 69, 73, 51, 61, 93, 62, 55, 67, 46, 56, 90, 79, 62, 56, 59, 95, 62, 60, 56, 72, 93, 62, 47, 61, 62, 85, 61, 62, 71, 38, 107, 69, 90, 69, 73, 52, 67, 59, 60, 87, 58, 65, 59, 51, 57, 55, 56, 79, 59, 45, 65, 73, 57, 71, 77, 61, 68, 48, 77, 75, 63, 68, 63, 53, 61, 57, 59, 57, 69, 45, 59, 75, 70, 58, 69, 86, 77, 73, 46, 61, 67, 50, 75, 75, 87, 82, 70, 45, 68, 84, 110, 55, 57, 66, 72, 77, 80, 63, 46, 63, 69, 46, 118, 53, 63, 59, 86, 47, 58, 62, 61, 71, 87, 83, 62, 70, 68, 79, 70, 78, 64, 47, 49, 76, 94, 62, 68, 73, 78, 69, 67, 61, 56, 117, 69, 43, 70, 68, 51, 46, 93, 41, 56, 72, 66, 57, 77, 70, 68, 61, 51, 55, 46, 72, 82, 57, 48, 53, 73, 74, 87, 60, 64, 80, 59, 87, 74, 73, 76, 67, 53, 67, 61, 64, 72, 52, 71, 50, 66, 66, 79, 48, 69, 59, 39, 69, 72, 64, 47, 53, 58, 74, 59, 76, 52, 81, 70, 58, 53, 61, 87, 76, 60, 57, 93, 68, 56, 48, 66, 77, 93, 50, 52, 58, 54, 57, 46, 57, 48, 73, 73, 86, 73, 67, 65, 60, 73, 99, 54, 75, 74, 53, 47, 54, 96, 71, 67, 57, 53, 53, 50, 91, 51, 65, 54, 35, 69, 51, 86, 64, 57, 57, 47, 87, 54, 74, 50, 66, 113, 133, 60, 65, 56, 75, 52, 108, 54, 69, 55, 79, 87, 67, 35, 70, 78, 44, 89, 64, 56, 127, 61, 47, 56, 81, 54, 55, 51, 67, 54, 71, 65, 51, 74, 76, 70, 48, 52, 61, 65, 60, 54, 70, 60, 69, 75, 70, 60, 89, 78, 67, 57, 58, 78, 52, 76, 91, 78, 64, 71, 68, 64, 60, 47, 57, 61, 67, 65, 79, 58, 60, 66, 61, 83, 63, 68, 71, 98, 76, 61, 69, 71, 53, 77, 63, 56, 71, 51, 52, 64, 90, 71, 71, 65, 70, 69, 77, 57, 56, 52, 58, 70, 61, 66, 60, 66, 56, 71, 63, 100, 56, 66, 71, 61, 66, 75, 61, 48, 63, 57, 70, 63, 73, 118, 106, 73, 120, 53, 68, 61, 66, 56, 84, 107, 71, 68, 76, 58, 54, 59, 47, 64, 74, 80, 51, 50, 73, 99, 60, 66, 57, 58, 45, 58, 59, 57, 77, 64, 59, 51, 55, 81, 60, 68, 75, 64, 98, 62, 62, 68, 64, 51, 75, 71, 48, 94, 63, 59, 74, 50, 79, 64, 57, 61, 50, 96, 50, 80, 66, 75, 57, 52, 73, 66, 60, 62, 59, 78, 54, 51, 55, 60, 63, 62, 70, 59, 48, 87, 59, 91, 86, 70, 70, 72, 59, 74, 73, 82, 75, 62, 71, 60, 58, 51, 53, 65, 80, 54, 70, 61, 78, 75, 88, 63, 85, 85, 74, 69, 49, 83, 50, 59, 54, 72, 51, 99, 69, 68, 74, 58, 113, 59, 75, 79, 59, 56, 59, 84, 69, 78, 67, 64, 55, 57, 80, 108, 53, 69, 47, 72, 65, 53, 58, 63, 59, 55, 68, 70, 63, 56, 64, 62, 87, 72, 78, 61, 87, 68, 66, 50, 58, 67, 51, 84, 61, 41, 69, 83, 56, 68, 48, 72, 78, 48, 72, 79, 65, 62, 73, 73, 78, 55, 73, 65, 34, 83, 31, 63, 53, 73, 66, 59, 67, 54, 57, 47, 73, 75, 58, 58, 30, 59, 55, 54, 67, 91, 81, 74, 62, 64, 66, 59, 53, 57, 69, 65, 58, 62, 54, 66, 71, 45, 75, 86, 70, 74, 55, 65, 56, 61, 69, 55, 73, 69, 49, 64, 73, 43, 68, 53, 67, 48, 51, 67, 62, 51, 86, 46, 71, 68, 88, 85, 74, 69, 61, 69, 57, 58, 53, 59, 47, 53, 84, 44, 57, 79, 55, 74, 56, 68, 116, 62, 103, 70, 47, 54, 55, 69, 62, 99, 61, 75, 68, 79, 72, 75, 60, 80, 50, 70, 51, 66, 63, 59, 74, 92, 69, 68, 62, 64, 118, 44, 56, 77, 56, 46, 72, 69, 60, 58, 103, 72, 66, 74, 53, 59, 36, 63, 71, 63, 56, 72, 81, 80, 65, 49, 76, 65, 54, 49, 63, 76, 72, 115, 56, 63, 49, 64, 70, 45, 54, 61, 42, 75, 64, 59, 84, 58, 58, 55, 57, 60, 74, 69, 59, 54, 59, 63, 67, 64, 80, 58, 73, 40, 65, 95, 94, 59, 85, 76, 64, 104, 56, 53, 73, 64, 56, 83, 56, 49, 70, 68, 77, 73, 57, 74, 67, 70, 53, 58, 58, 68, 56, 61, 61, 52, 57, 46, 59, 61, 65, 78, 82, 60, 54, 70, 69, 62, 65, 77, 62, 70, 68, 84, 64, 53, 59, 62, 62, 61, 53, 39, 65, 51, 63, 65, 48, 80, 77, 76, 72, 73, 91, 50, 62, 57, 63, 69, 40, 62, 80, 57, 83, 64, 63, 100, 80, 74, 67, 62, 82, 72, 91, 47, 66, 70, 67, 63, 64, 52, 81, 102, 55, 59, 54, 86, 60, 54, 51, 80, 67, 89, 68, 57, 61, 62, 66, 67, 61, 74, 71, 68, 80, 86, 58, 52, 41, 64, 48, 49, 43, 67, 46, 63, 64, 51, 57, 59, 70, 65, 80, 81, 59, 43, 68, 42, 63, 71, 64, 55, 56, 59, 70, 65, 55, 53, 64, 71, 59, 65, 53, 58, 106, 129, 60, 41, 71, 57, 58, 63, 66, 57, 55, 74, 62, 69, 78, 61, 61, 66, 47, 70, 59, 41, 80, 48, 67, 137, 69, 78, 65, 68, 78, 65, 59, 72, 39, 86, 75, 54, 49, 49, 78, 62, 52, 63, 65, 64, 57, 68, 50, 78, 71, 63, 57, 59, 58, 77, 70, 62, 73, 53, 67, 57, 87, 78, 92, 50, 43, 65, 65, 98, 78, 77, 81, 57, 57, 59, 64, 52, 50, 72, 63, 77, 64, 73, 98, 71, 64, 58, 53, 71, 49, 45, 40, 62, 47, 58, 68, 70, 55, 64, 67, 78, 57, 63, 68, 67, 56, 57, 66, 42, 69, 73, 60, 70, 80, 70, 62, 79, 66, 63, 69, 78, 66, 73, 65, 93, 74, 62, 68, 58, 72, 51, 64, 95, 64, 68, 59, 62, 70, 85, 64, 56, 55, 62, 52, 49, 84, 68, 57, 55, 55, 86, 91, 54, 77, 46, 66, 55, 70, 60, 76, 67, 67, 60, 62, 87, 60, 72, 74, 76, 76, 53, 58, 70, 39, 69, 75, 49, 61, 59, 45, 45, 76, 65, 59, 62, 65, 55, 50, 63, 82, 68, 57, 54, 69, 46, 59, 56, 78, 66, 71, 58, 60, 57, 70, 54, 62, 59, 69, 89, 68, 72, 68, 68, 51, 59, 59, 59, 63, 69, 63, 67, 67, 63, 61, 44, 72, 87, 73, 55, 59, 61, 76, 54, 71, 124, 60, 51, 56, 62, 58, 94, 99, 62, 71, 92, 61, 79, 69, 79, 54, 56, 67, 53, 58, 51, 64, 55, 52, 79, 63, 66, 63, 73, 49, 73, 69, 73, 74, 96, 63, 63, 90, 52, 51, 53, 75, 66, 73, 83, 76, 83, 67, 51, 74, 55, 63, 71, 59, 78, 66, 75, 66, 82, 75, 92, 67, 67, 85, 53, 63, 52, 50, 60, 78, 61, 52, 64, 64, 62, 68, 81, 58, 179, 72, 66, 63, 54, 89, 63, 52, 53, 54, 81, 76, 77, 60, 67, 55, 65, 65, 54, 86, 69, 73, 56, 64, 67, 90, 65, 52, 59, 80, 69, 54, 56, 65, 72, 49, 53, 37, 49, 61, 65, 63, 61, 44, 51, 58, 41, 67, 77, 86, 120, 73, 65, 63, 72, 58, 71, 61, 57, 67, 52, 67, 56, 63, 89, 51, 67, 57, 46, 61, 61, 64, 55, 67, 56, 73, 77, 76, 51, 63, 68, 83, 73, 57, 69, 70, 102, 48, 45, 67, 46, 65, 48, 65, 58, 49, 48, 57, 54, 61, 74, 74, 80, 46, 67, 64, 54, 61, 66, 67, 64, 69, 99, 124, 67, 63, 48, 46, 79, 50, 82, 59, 64, 46, 72, 81, 38, 69, 51, 109, 39, 80, 100, 104, 55, 54, 67, 50, 77, 58, 54, 66, 60, 58, 62, 58, 78, 64, 75, 64, 51, 56, 61, 48, 59, 74, 57, 71, 61, 69, 72, 60, 69, 41, 59, 60, 76, 94, 55, 62, 51, 66, 57, 67, 71, 59, 51, 83, 74, 60, 101, 67, 44, 44, 71, 69, 52, 70, 58, 80, 75, 80, 71, 66, 69, 50, 56, 94, 70, 61, 53, 44, 62, 79, 65, 73, 64, 57, 58, 73, 48, 62, 57, 85, 69, 45, 78, 83, 63, 84, 65, 156, 56, 68, 49, 73, 45, 72, 80, 59, 63, 71, 65, 51, 68, 84, 66, 59, 51, 69, 87, 55, 53, 92, 82, 51, 90, 77, 64, 41, 56, 82, 63, 71, 75, 55, 86, 119, 74, 75, 56, 75, 59, 69, 59, 73, 69, 76, 66, 73, 74, 55, 44, 98, 53, 71, 68, 63, 69, 67, 56, 60, 65, 74, 65, 63, 63, 81, 39, 66, 73, 54, 78, 58, 87, 62, 57, 83, 62, 67, 77, 75, 55, 71, 69, 70, 59, 60, 63, 58, 44, 88, 66, 55, 53, 53, 75, 70, 73, 73, 74, 64, 70, 68, 76, 63, 50, 78, 85, 47, 63, 73, 48, 55, 73, 82, 65, 71, 59, 73, 55, 59, 60, 55, 82, 63, 73, 62, 84, 62, 45, 75, 75, 58, 73, 55, 62, 78, 67, 83, 47, 58, 69, 41, 102, 64, 49, 61, 70, 53, 35, 51, 67, 80, 49, 59, 60, 61, 65, 61, 75, 83, 73, 68, 52, 71, 88, 65, 63, 54, 59, 80, 58, 65, 56, 63, 67, 72, 65, 68, 63, 50, 76, 68, 60, 61, 77, 55, 46, 45, 79, 70, 60, 40, 76, 67, 57, 37, 57, 48, 80, 71, 71, 62, 50, 87, 43, 60, 37, 59, 92, 36, 61, 32, 62, 64, 73, 92, 56, 55, 77, 65, 55, 78, 84, 57, 43, 66, 60, 72, 62, 65, 67, 55, 70, 68, 56, 39, 59, 79, 72, 57, 68, 55, 84, 42, 53, 51, 66, 64, 41, 83, 60, 66, 59, 48, 72, 42, 83, 97, 67, 62, 56, 81, 48, 72, 63, 93, 61, 80, 69, 43, 63, 51, 45, 74, 72, 51, 50, 65, 59, 47, 63, 62, 62, 62, 63, 74, 50, 67, 58, 57, 73, 169, 52, 73, 53, 50, 98, 57, 69, 68, 58, 83, 69, 57, 66, 54, 72, 44, 57, 56, 66, 62, 61, 71, 68, 51, 93, 81, 77, 62, 107, 83, 51, 106, 57, 65, 66, 72, 61, 46, 68, 63, 71, 92, 44, 58, 84, 75, 55, 82, 62, 50, 47, 92, 57, 62, 66, 56, 59, 53, 72, 79, 62, 72, 67, 104, 68, 65, 58, 72, 67, 63, 58, 58, 66, 64, 82, 67, 50, 61, 73, 58, 56, 58, 62, 75, 64, 89, 67, 81, 56, 53, 57, 45, 71, 71, 81, 41, 90, 60, 76, 74, 74, 124, 58, 53, 85, 61, 48, 80, 62, 88, 56, 58, 65, 71, 76, 83, 79, 54, 49, 84, 65, 56, 87, 46, 54, 52, 54, 55, 77, 62, 62, 68, 90, 85, 57, 71, 62, 73, 101, 50, 68, 52, 100, 81, 49, 60, 55, 54, 54, 88, 72, 84, 57, 68, 69, 82, 78, 74, 56, 65, 94, 65, 69, 49, 76, 46, 50, 63, 53, 82, 57, 73, 72, 80, 82, 70, 78, 61, 53, 49, 40, 70, 46, 42, 79, 61, 115, 67, 41, 38, 59, 62, 58, 83, 92, 57, 64, 56, 59, 66, 64, 50, 67, 69, 68, 57, 69, 55, 53, 66, 62, 60, 59, 71, 51, 79, 78, 57, 62, 69, 62, 71, 76, 84, 68, 95, 93, 63, 70, 136, 52, 86, 71, 72, 44, 69, 72, 72, 61, 65, 72, 70, 59, 53, 84, 58, 69, 59, 68, 88, 68, 88, 33, 52, 66, 66, 76, 63, 62, 75, 63, 69, 79, 69, 71, 60, 43, 69, 43, 65, 53, 71, 76, 69, 67, 55, 113, 45, 69, 77, 55, 56, 40, 23, 93, 62, 60, 70, 69, 67, 67, 94, 69, 63, 45, 59, 85, 61, 72, 69, 68, 66, 62, 77, 51, 75, 54, 76, 50, 51, 62, 76, 58, 51, 53, 52, 77, 73, 63, 87, 72, 69, 86, 65, 48, 73, 68, 65, 71, 66, 62, 67, 55, 86, 90, 59, 51, 80, 60, 40, 96, 94, 50, 54, 59, 61, 62, 72, 71, 55, 49, 67, 71, 60, 59, 59, 47, 46, 58, 70, 57, 70, 62, 88, 84, 58, 51, 66, 59, 75, 59, 94, 67, 56, 71, 64, 81, 66, 61, 73, 111, 56, 55, 71, 71, 74, 58, 57, 126, 80, 69, 55, 56, 105, 73, 78, 77, 90, 70, 59, 90, 58, 71, 79, 54, 63, 54, 59, 72, 57, 61, 34, 82, 76, 58, 55, 49, 59, 63, 51, 78, 71, 58, 56, 47, 48, 52, 82, 77, 63, 51, 60, 69, 49, 37, 88, 76, 55, 52, 55, 63, 80, 103, 82, 74, 113, 54, 66, 78, 53, 51, 48, 55, 60, 80, 76, 86, 56, 58, 101, 68, 68, 75, 74, 81, 54, 61, 64, 67, 67, 78, 36, 55, 59, 86, 54, 48, 48, 69, 91, 51, 61, 68, 67, 65, 59, 71, 52, 52, 78, 69, 76, 63, 47, 65, 73, 93, 64, 80, 71, 88, 51, 42, 71, 47, 60, 45, 72, 93, 71, 54, 38, 83, 70, 94, 62, 54, 38, 53, 64, 55, 82, 48, 72, 64, 59, 86, 48, 74, 104, 72, 67, 81, 73, 90, 60, 88, 70, 75, 69, 94, 87, 89, 79, 58, 54, 61, 93, 77, 71, 60, 62, 149, 58, 79, 59, 66, 93, 61, 45, 54, 49, 65, 60, 96, 69, 90, 73, 52, 48, 58, 93, 106, 54, 70, 64, 59, 94, 60, 88, 43, 66, 83, 93, 51, 61, 61, 66, 57, 48, 67, 53, 57, 64, 56, 75, 83, 85, 50, 55, 59, 59, 63, 53, 69, 73, 64, 70, 65, 68, 67, 61, 55, 53, 67, 105, 62, 55, 42, 59, 59, 66, 61, 64, 82, 71, 49, 68, 64, 66, 58, 71, 56, 73, 50, 82, 73, 86, 69, 51, 59, 64, 74, 79, 81, 43, 50, 70, 64, 75, 68, 63, 111, 60, 53, 52, 59, 63, 72, 67, 75, 71, 63, 81, 43, 55, 68, 63, 69, 55, 65, 63, 55, 77, 67, 48, 56, 70, 63, 54, 68, 82, 65, 98, 73, 55, 57, 69, 123, 75, 62, 72, 61, 87, 62, 54, 77, 58, 83, 68, 51, 47, 63, 45, 80, 63, 67, 87, 72, 87, 48, 67, 37, 80, 59, 62, 83, 70, 58, 81, 64, 55, 74, 128, 69, 70, 47, 65, 75, 52, 88, 60, 51, 59, 78, 63, 50, 63, 61, 58, 47, 74, 48, 77, 81, 54, 56, 79, 52, 59, 40, 63, 65, 70, 64, 62, 83, 76, 79, 69, 70, 63, 59, 53, 44, 71, 91, 67, 99, 63, 60, 61, 64, 71, 76, 57, 61, 67, 99, 54, 76, 110, 49, 87, 64, 94, 65, 69, 45, 54, 85, 72, 71, 48, 48, 61, 49, 71, 84, 76, 52, 67, 91, 67, 60, 58, 60, 56, 53, 66, 65, 72, 57, 58, 53, 59, 54, 66, 84, 66, 87, 61, 65, 63, 50, 83, 64, 73, 75, 69, 57, 86, 67, 71, 70, 124, 65, 64, 66, 58, 58, 60, 91, 56, 76, 83, 68, 61, 72, 51, 58, 62, 68, 65, 69, 69, 71, 49, 56, 72, 63, 87, 69, 42, 57, 55, 70, 78, 63, 59, 63, 56, 67, 48, 83, 108, 69, 64, 33, 53, 66, 45, 63, 67, 54, 54, 64, 59, 80, 61, 107, 41, 75, 69, 58, 59, 54, 76, 93, 73, 63, 73, 66, 62, 75, 76, 55, 58, 68, 55, 64, 67, 54, 45, 61, 60, 67, 74, 61, 75, 61, 76, 81, 56, 71, 151, 90, 52, 60, 64, 46, 48, 77, 78, 70, 96, 65, 65, 62, 37, 74, 64, 41, 41, 58, 73, 91, 60, 74, 74, 65, 90, 55, 67, 72, 62, 54, 62, 59, 64, 92, 69, 63, 63, 47, 89, 83, 89, 72, 56, 100, 94, 61, 64, 55, 57, 76, 81, 54, 76, 69, 68, 53, 51, 75, 74, 74, 62, 72, 72, 64, 68, 69, 57, 49, 60, 74, 61, 52, 81, 49, 55, 61, 63, 53, 55, 88, 77, 65, 50, 61, 66, 63, 55, 75, 45, 69, 56, 89, 82, 40, 54, 57, 48, 62, 65, 76, 79, 83, 64, 63, 87, 52, 70, 47, 62, 68, 65, 56, 59, 59, 56, 61, 67, 61, 70, 60, 117, 56, 67, 74, 79, 63, 63, 57, 59, 86, 65, 73, 54, 65, 77, 66, 73, 77, 102, 74, 66, 64, 62, 76, 43, 91, 82, 58, 48, 73, 63, 64, 73, 90, 58, 91, 42, 60, 77, 80, 59, 29, 63, 55, 58, 30, 53, 61, 66, 90, 65, 74, 64, 47, 52, 65, 52, 72, 50, 62, 56, 59, 61, 51, 67, 100, 63, 59, 59, 56, 59, 111, 57, 79, 58, 73, 66, 69, 52, 83, 77, 65, 51, 78, 75, 64, 51, 58, 42, 66, 107, 61, 56, 75, 83, 71, 50, 62, 64, 72, 61, 47, 62, 65, 94, 70, 67, 50, 85, 96, 41, 99, 55, 70, 55, 96, 55, 57, 68, 79, 69, 63, 64, 51, 74, 70, 33, 61, 63, 56, 77, 85, 85, 68, 52, 63, 52, 80, 68, 43, 53, 48, 48, 47, 71, 75, 70, 116, 52, 58, 74, 86, 82, 70, 74, 76, 50, 91, 54, 74, 47, 76, 81, 51, 51, 76, 71, 68, 74, 83, 75, 66, 80, 47, 79, 77, 62, 70, 60, 74, 89, 65, 89, 63, 77, 70, 59, 60, 90, 63, 62, 60, 63, 66, 65, 67, 61, 63, 36, 60, 98, 75, 62, 62, 67, 90, 71, 67, 57, 45, 64, 52, 66, 78, 73, 47, 68, 60, 68, 82, 47, 60, 58, 74, 60, 60, 49, 54, 44, 58, 66, 56, 66, 58, 46, 64, 70, 67, 81, 72, 72, 57, 36, 69, 68, 78, 57, 52, 77, 60, 51, 62, 59, 69, 56, 60, 79, 62, 65, 62, 58, 58, 70, 71, 49, 60, 57, 52, 52, 62, 57, 64, 73, 60, 60, 48, 43, 68, 64, 64, 77, 68, 72, 58, 56, 52, 57, 75, 80, 64, 61, 65, 68, 66, 97, 35, 70, 91, 57, 64, 54, 72, 44, 70, 51, 66, 51, 103, 60, 60, 61, 57, 58, 79, 62, 56, 40, 68, 82, 59, 76, 53, 59, 74, 69, 134, 68, 65, 68, 62, 50, 95, 54, 67, 69, 114, 48, 52, 66, 54, 58, 72, 74, 69, 69, 59, 63, 58, 59, 57, 56, 103, 47, 54, 69, 70, 65, 69, 79, 64, 74, 53, 50, 72, 66, 56, 55, 60, 90, 72, 99, 57, 63, 69, 46, 57, 61, 52, 72, 64, 56, 65, 70, 46, 91, 107, 71, 51, 55, 98, 47, 75, 48, 64, 72, 62, 73, 65, 60, 69, 71, 52, 63, 66, 63, 44, 56, 78, 53, 63, 67, 63, 84, 68, 64, 60, 61, 71, 61, 70, 59, 74, 71, 47, 54, 54, 84, 61, 59, 73, 89, 50, 48, 82, 57, 63, 66, 68, 51, 93, 57, 59, 62, 60, 63, 54, 66, 69, 57, 51, 55, 59, 56, 58, 68, 52, 79, 53, 67, 72, 66, 70, 113, 42, 76, 83, 47, 53, 47, 67, 52, 106, 90, 54, 96, 73, 65, 80, 49, 63, 39, 78, 87, 74, 49, 96, 49, 62, 76, 97, 65, 70, 67, 64, 98, 67, 75, 63, 64, 57, 86, 56, 51, 68, 64, 56, 44, 95, 81, 48, 48, 72, 68, 67, 78, 63, 63, 56, 51, 60, 68, 72, 74, 73, 55, 67, 104, 70, 60, 50, 55, 60, 51, 80, 66, 80, 64, 67, 65, 74, 63, 57, 72, 66, 53, 71, 47, 71, 55, 80, 64, 52, 59, 44, 58, 61, 67, 66, 70, 61, 65, 44, 66, 76, 63, 51, 78, 91, 69, 56, 47, 53, 49, 75, 68, 74, 52, 75, 68, 57, 65, 81, 84, 56, 66, 67, 61, 67, 70, 56, 72, 83, 51, 47, 62, 61, 85, 65, 67, 57, 51, 75, 64, 54, 51, 78, 51, 67, 70, 93, 63, 70, 71, 71, 61, 44, 65, 77, 50, 78, 64, 96, 43, 73, 47, 69, 65, 82, 58, 75, 67, 74, 73, 67, 54, 53, 41, 58, 64, 60, 34, 74, 46, 63, 66, 80, 73, 88, 68, 68, 62, 75, 39, 75, 81, 68, 61, 34, 56, 79, 51, 72, 53, 60, 72, 61, 65, 54, 59, 59, 90, 63, 69, 50, 66, 60, 60, 55, 50, 69, 57, 63, 56, 55, 75, 60, 64, 79, 71, 60, 70, 63, 55, 67, 51, 54, 78, 56, 64, 60, 75, 61, 65, 44, 67, 66, 54, 68, 55, 27, 66, 77, 79, 63, 53, 60, 66, 66, 70, 78, 64, 71, 52, 57, 58, 73, 64, 67, 84, 57, 62, 82, 66, 59, 61, 54, 51, 65, 55, 72, 58, 50, 54, 71, 65, 58, 74, 65, 52, 47, 38, 82, 52, 51, 66, 93, 61, 49, 100, 64, 98, 73, 75, 61, 62, 60, 95, 99, 59, 59, 74, 93, 80, 62, 45, 41, 53, 53, 66, 65, 70, 40, 54, 73, 86, 109, 48, 39, 57, 67, 60, 69, 52, 66, 53, 62, 105, 68, 79, 46, 79, 68, 60, 83, 82, 62, 64, 79, 75, 81, 82, 61, 58, 76, 83, 63, 30, 66, 58, 92, 53, 59, 73, 98, 60, 83, 69, 77, 57, 78, 67, 86, 78, 63, 60, 103, 68, 65, 81, 70, 80, 62, 63, 59, 77, 72, 63, 64, 82, 67, 46, 67, 68, 73, 60, 70, 42, 55, 67, 82, 66, 68, 67, 104, 44, 85, 65, 68, 45, 86, 62, 61, 58, 65, 48, 42, 74, 81, 89, 69, 86, 62, 92, 43, 70, 64, 65, 41, 67, 53, 62, 59, 60, 57, 58, 45, 84, 77, 100, 69, 64, 58, 60, 75, 48, 55, 61, 77, 64, 55, 78, 85, 82, 47, 68, 56, 60, 67, 67, 79, 55, 54, 69, 89, 104, 53, 54, 77, 70, 70, 63, 70, 53, 69, 50, 71, 46, 46, 85, 68, 71, 59, 62, 59, 52, 52, 46, 79, 71, 69, 57, 95, 75, 72, 58, 62, 54, 61, 68, 48, 65, 49, 49, 92, 72, 76, 91, 64, 57, 81, 71, 77, 55, 81, 81, 55, 72, 112, 61, 73, 46, 69, 77, 69, 68, 64, 75, 43, 42, 81, 52, 64, 69, 64, 44, 51, 85, 52, 56, 55, 66, 89, 58, 50, 74, 71, 57, 71, 32, 76, 88, 60, 92, 57, 61, 63, 107, 63, 63, 56, 75, 65, 89, 76, 53, 71, 58, 68, 56, 63, 56, 72, 61, 78, 86, 67, 56, 73, 79, 83, 76, 74, 57, 47, 84, 55, 47, 56, 66, 34, 82, 56, 46, 55, 58, 57, 61, 61, 58, 60, 109, 61, 75, 42, 47, 65, 55, 58, 88, 62, 56, 77, 76, 68, 58, 74, 50, 60, 72, 68, 50, 51, 54, 59, 69, 74, 67, 70, 61, 59, 61, 61, 72, 102, 64, 72, 59, 60, 54, 69, 85, 60, 63, 66, 59, 58, 66, 74, 59, 107, 60, 65, 68, 61, 82, 65, 64, 58, 62, 54, 65, 62, 87, 75, 78, 67, 55, 67, 59, 65, 75, 73, 51, 67, 66, 65, 72, 63, 121, 55, 104, 96, 101, 75, 58, 78, 56, 55, 49, 46, 52, 66, 87, 73, 63, 68, 101, 60, 80, 69, 61, 47, 56, 70, 45, 83, 76, 53, 50, 59, 85, 80, 72, 102, 57, 68, 58, 71, 66, 60, 67, 53, 47, 61, 42, 65, 65, 70, 71, 79, 70, 64, 100, 71, 69, 63, 66, 71, 75, 51, 68, 71, 56, 81, 88, 67, 73, 47, 58, 58, 72, 54, 73, 69, 80, 60, 68, 59, 49, 82, 65, 59, 61, 66, 45, 75, 62, 67, 75, 57, 57, 102, 128, 38, 70, 70, 60, 64, 44, 57, 47, 67, 62, 78, 73, 75, 61, 42, 60, 50, 51, 61, 77, 50, 71, 67, 57, 53, 75, 60, 64, 62, 62, 75, 47, 83, 52, 74, 90, 76, 69, 68, 91, 75, 89, 75, 54, 62, 82, 53, 61, 57, 69, 57, 63, 55, 71, 66, 54, 50, 57, 97, 72, 58, 61, 73, 52, 62, 72, 47, 124, 70, 56, 61, 66, 55, 58, 71, 58, 59, 57, 61, 45, 58, 52, 66, 60, 71, 65, 74, 59, 61, 77, 51, 53, 54, 65, 54, 50, 79, 52, 52, 63, 68, 67, 69, 49, 63, 92, 56, 81, 55, 80, 70, 77, 78, 76, 66, 84, 55, 66, 57, 65, 88, 100, 80, 80, 64, 42, 105, 56, 48, 81, 65, 79, 65, 47, 59, 71, 62, 42, 45, 81, 66, 58, 59, 79, 58, 73, 78, 63, 65, 63, 103, 61, 71, 77, 72, 56, 67, 74, 63, 71, 85, 70, 58, 71, 74, 63, 73, 64, 45, 106, 78, 64, 61, 82, 78, 56, 71, 100, 58, 52, 49, 66, 83, 62, 60, 73, 69, 61, 59, 68, 57, 51, 65, 54, 68, 75, 105, 73, 61, 55, 70, 48, 71, 64, 70, 57, 83, 60, 92, 51, 49, 76, 52, 81, 66, 57, 53, 52, 68, 89, 67, 59, 76, 43, 35, 79, 80, 68, 63, 68, 51, 67, 65, 87, 82, 40, 59, 75, 63, 70, 98, 86, 75, 57, 86, 63, 69, 73, 74, 66, 76, 64, 65, 67, 84, 64, 55, 52, 75, 53, 68, 69, 54, 74, 66, 103, 48, 66, 60, 59, 55, 61, 54, 62, 55, 52, 67, 63, 84, 45, 63, 58, 64, 72, 69, 44, 51, 57, 59, 95, 65, 47, 78, 75, 46, 61, 66, 67, 65, 79, 121, 74, 57, 53, 79, 73, 70, 65, 70, 69, 74, 58, 50, 62, 77, 69, 55, 76, 87, 71, 52, 61, 59, 69, 81, 65, 71, 75, 64, 52, 59, 57, 113, 77, 60, 61, 53, 54, 68, 59, 59, 69, 55, 59, 57, 65, 59, 75, 66, 33, 48, 72, 53, 53, 45, 74, 69, 65, 66, 76, 54, 60, 58, 89, 87, 46, 81, 46, 55, 67, 98, 58, 66, 100, 57, 63, 51, 60, 61, 61, 68, 58, 90, 57, 59, 74, 79, 66, 53, 65, 70, 53, 57, 76, 41, 84, 80, 56, 51, 57, 61, 63, 98, 48, 55, 51, 81, 54, 60, 76, 53, 60, 66, 54, 95, 59, 72, 55, 57, 93, 51, 102, 62, 56, 65, 67, 49, 60, 68, 52, 86, 63, 59, 38, 72, 50, 86, 59, 63, 62, 76, 66, 46, 66, 59, 77, 60, 53, 70, 45, 67, 55, 58, 71, 59, 47, 87, 71, 91, 70, 74, 61, 52, 66, 59, 62, 74, 77, 52, 81, 83, 73, 70, 54, 60, 87, 60, 94, 83, 56, 70, 75, 63, 71, 45, 60, 77, 89, 58, 54, 53, 38, 88, 54, 63, 59, 57, 48, 69, 48, 58, 73, 104, 77, 64, 57, 52, 63, 76, 61, 52, 66, 56, 102, 70, 75, 68, 59, 61, 74, 74, 67, 69, 62, 81, 57, 70, 58, 67, 97, 60, 42, 101, 72, 67, 76, 58, 44, 130, 82, 46, 59, 53, 77, 46, 73, 49, 81, 65, 54, 58, 66, 61, 62, 70, 74, 73, 61, 65, 71, 60, 101, 93, 76, 60, 64, 57, 68, 67, 60, 72, 54, 72, 45, 56, 105, 92, 58, 51, 77, 83, 63, 79, 71, 63, 65, 52, 74, 58, 68, 66, 79, 53, 74, 53, 77, 90, 70, 54, 71, 58, 59, 80, 56, 65, 42, 47, 81, 52, 53, 60, 51, 53, 55, 87, 49, 69, 68, 47, 47, 47, 99, 49, 39, 72, 72, 82, 68, 75, 71, 61, 80, 68, 50, 68, 67, 52, 61, 57, 67, 53, 54, 49, 60, 70, 73, 72, 73, 70, 67, 70, 55, 45, 60, 69, 64, 74, 67, 57, 78, 64, 58, 41, 60, 71, 57, 62, 58, 120, 77, 71, 65, 62, 56, 126, 45, 73, 47, 115, 66, 67, 63, 84, 59, 58, 79, 68, 54, 51, 60, 78, 83, 80, 59, 77, 75, 55, 58, 50, 65, 40, 57, 63, 107, 50, 46, 85, 43, 43, 98, 59, 56, 66, 69, 64, 72, 67, 56, 55, 54, 55, 79, 52, 64, 51, 56, 61, 51, 61, 71, 71, 64, 61, 70, 52, 78, 69, 51, 65, 80, 54, 37, 80, 99, 88, 58, 52, 52, 61, 75, 66, 49, 70, 62, 48, 74, 92, 61, 55, 60, 64, 76, 66, 70, 62, 76, 70, 78, 61, 75, 74, 54, 39, 58, 54, 64, 62, 91, 66, 72, 49, 43, 78, 60, 58, 73, 69, 59, 61, 56, 63, 68, 47, 73, 76, 49, 63, 61, 55, 74, 55, 78, 46, 73, 48, 64, 56, 62, 98, 68, 59, 78, 83, 66, 59, 71, 85, 61, 51, 68, 71, 51, 74, 47, 66, 48, 63, 110, 69, 69, 73, 55, 65, 75, 64, 74, 62, 65, 58, 75, 66, 56, 84, 54, 79, 59, 82, 41, 61, 52, 67, 107, 57, 43, 65, 55, 73, 57, 73, 56, 48, 57, 55, 80, 52, 76, 70, 62, 70, 48, 83, 69, 59, 57, 63, 62, 55, 58, 61, 61, 37, 60, 74, 81, 81, 84, 49, 76, 60, 88, 56, 49, 55, 114, 88, 63, 68, 72, 67, 37, 67, 100, 72, 79, 66, 96, 62, 64, 141, 80, 82, 50, 65, 62, 71, 81, 101, 62, 82, 82, 101, 80, 85, 70, 67, 64, 55, 64, 86, 80, 47, 55, 71, 70, 41, 68, 101, 59, 62, 51, 52, 56, 91, 52, 64, 55, 65, 92, 45, 72, 61, 52, 71, 77, 70, 62, 57, 78, 79, 65, 64, 60, 61, 116, 78, 53, 81, 68, 98, 52, 69, 90, 52, 70, 68, 62, 57, 48, 79, 58, 57, 98, 48, 64, 99, 66, 69, 77, 64, 59, 61, 74, 59, 55, 79, 52, 74, 87, 63, 71, 41, 68, 49, 59, 68, 64, 53, 47, 65, 69, 55, 65, 69, 50, 71, 59, 55, 110, 45, 63, 76, 74, 71, 87, 89, 70, 63, 54, 57, 79, 45, 70, 53, 69, 82, 57, 53, 57, 72, 81, 53, 55, 68, 71, 71, 67, 70, 67, 50, 68, 70, 74, 68, 61, 62, 66, 75, 51, 44, 66, 53, 78, 44, 47, 52, 84, 66, 73, 62, 67, 103, 71, 59, 51, 61, 72, 78, 56, 54, 100, 67, 68, 80, 56, 52, 55, 55, 60, 70, 60, 76, 70, 71, 58, 72, 49, 81, 131, 55, 56, 58, 67, 80, 74, 66, 63, 64, 73, 77, 84, 55, 48, 89, 92, 65, 74, 77, 62, 53, 57, 62, 54, 43, 34, 86, 59, 82, 61, 86, 104, 65, 79, 72, 60, 72, 84, 60, 49, 47, 53, 60, 66, 54, 72, 68, 58, 80, 66, 55, 70, 77, 98, 63, 49, 61, 70, 56, 61, 68, 62, 63, 59, 64, 63, 49, 49, 96, 61, 97, 85, 86, 63, 69, 42, 118, 62, 60, 51, 67, 68, 114, 66, 60, 65, 68, 67, 63, 60, 63, 57, 61, 68, 93, 39, 61, 54, 51, 61, 58, 53, 52, 59, 67, 71, 55, 77, 62, 77, 54, 51, 63, 67, 46, 56, 62, 78, 89, 61, 50, 46, 92, 50, 56, 57, 71, 55, 58, 72, 60, 61, 67, 68, 56, 62, 86, 80, 41, 59, 54, 61, 60, 70, 63, 75, 37, 62, 67, 48, 106, 66, 70, 66, 46, 61, 40, 65, 76, 106, 43, 70, 63, 44, 65, 54, 53, 72, 49, 71, 74, 74, 66, 75, 70, 88, 60, 125, 70, 68, 65, 48, 60, 50, 65, 95, 73, 93, 58, 105, 60, 51, 50, 51, 67, 44, 77, 62, 47, 81, 55, 78, 48, 80, 62, 50, 45, 53, 74, 65, 78, 57, 63, 67, 59, 50, 65, 48, 55, 53, 80, 86, 67, 87, 44, 72, 81, 61, 93, 60, 87, 64, 66, 94, 50, 79, 61, 60, 66, 64, 74, 54, 74, 75, 63, 63, 54, 71, 67, 51, 56, 67, 48, 61, 63, 57, 64, 80, 74, 55, 49, 68, 67, 69, 66, 68, 51, 66, 53, 60, 49, 52, 73, 57, 61, 65, 61, 61, 62, 76, 59, 43, 78, 63, 64, 90, 38, 67, 79, 58, 55, 102, 62, 61, 68, 61, 56, 44, 69, 75, 68, 65, 76, 74, 83, 77, 59, 53, 64, 65, 57, 65, 62, 55, 89, 54, 70, 68, 66, 46, 82, 73, 79, 48, 51, 65, 91, 64, 85, 73, 91, 58, 71, 58, 54, 70, 65, 71, 77, 61, 69, 32, 65, 68, 59, 58, 74, 60, 61, 45, 69, 55, 65, 56, 46, 55, 62, 58, 58, 69, 54, 49, 80, 63, 78, 75, 51, 51, 51, 68, 52, 65, 57, 77, 63, 55, 56, 60, 64, 69, 57, 63, 71, 57, 58, 55, 69, 67, 63, 68, 66, 67, 67, 50, 67, 90, 53, 82, 62, 59, 40, 75, 59, 82, 73, 55, 79, 80, 51, 56, 62, 61, 68, 91, 54, 73, 68, 45, 45, 66, 68, 73, 51, 55, 47, 72, 52, 87, 79, 75, 69, 69, 55, 54, 66, 58, 61, 35, 72, 55, 55, 64, 58, 59, 65, 55, 58, 90, 80, 60, 81, 64, 90, 55, 56, 53, 70, 70, 55, 52, 67, 62, 72, 61, 63, 63, 84, 46, 52, 57, 76, 66, 54, 92, 44, 76, 49, 70, 58, 77, 68, 67, 61, 46, 95, 46, 58, 82, 43, 56, 58, 64, 82, 81, 70, 59, 68, 51, 74, 80, 54, 51, 124, 89, 56, 40, 62, 67, 86, 65, 47, 62, 69, 53, 100, 65, 61, 54, 61, 58, 79, 80, 75, 61, 82, 62, 72, 95, 66, 40, 78, 63, 64, 53, 62, 50, 60, 66, 69, 75, 105, 73, 64, 72, 66, 62, 85, 66, 72, 59, 66, 56, 121, 47, 71, 70, 65, 78, 63, 91, 78, 80, 62, 73, 62, 83, 58, 49, 50, 81, 69, 54, 55, 60, 72, 66, 68, 60, 63, 65, 79, 63, 95, 76, 66, 46, 71, 44, 59, 59, 51, 63, 60, 83, 66, 99, 63, 53, 59, 63, 64, 71, 52, 55, 65, 68, 61, 69, 65, 67, 45, 62, 58, 81, 76, 84, 78, 60, 76, 80, 70, 61, 48, 72, 57, 70, 80, 86, 67, 73, 53, 46, 65, 73, 69, 75, 68, 58, 66, 67, 86, 88, 66, 60, 55, 82, 69, 68, 77, 71, 73, 59, 63, 74, 64, 85, 57, 43, 71, 90, 71, 47, 67, 83, 50, 64, 73, 74, 70, 69, 65, 63, 63, 59, 54, 46, 63, 62, 59, 55, 67, 77, 56, 65, 84, 64, 75, 66, 52, 64, 49, 69, 58, 61, 119, 75, 62, 68, 55, 71, 52, 76, 67, 67, 50, 72, 58, 72, 54, 70, 60, 42, 70, 65, 58, 80, 67, 51, 64, 55, 61, 72, 59, 62, 61, 75, 57, 58, 57, 72, 74, 54, 80, 56, 62, 74, 69, 85, 58, 66, 61, 62, 62, 71, 69, 47, 55, 65, 61, 71, 61, 62, 75, 77, 71, 67, 93, 70, 62, 50, 66, 58, 88, 65, 67, 64, 73, 80, 64, 63, 77, 63, 67, 56, 59, 72, 55, 129, 62, 87, 73, 52, 68, 91, 74, 67, 69, 67, 87, 73, 82, 62, 79, 44, 70, 74, 65, 67, 87, 51, 49, 66, 67, 71, 55, 58, 81, 75, 38, 68, 64, 59, 65, 64, 66, 64, 69, 58, 49, 53, 68, 56, 70, 57, 60, 63, 91, 54, 69, 74, 52, 61, 70, 47, 68, 60, 69, 80, 50, 59, 97, 74, 46, 70, 87, 66, 75, 95, 69, 57, 62, 74, 64, 79, 42, 92, 64, 70, 80, 86, 64, 69, 62, 61, 90, 65, 76, 74, 63, 91, 67, 87, 55, 59, 68, 78, 48, 68, 61, 60, 51, 73, 53, 69, 59, 77, 62, 77, 67, 48, 125, 55, 60, 75, 78, 59, 49, 59, 66, 68, 52, 55, 73, 51, 68, 74, 75, 56, 74, 82, 67, 50, 70, 79, 65, 63, 60, 52, 59, 60, 86, 72, 69, 54, 59, 53, 56, 91, 68, 62, 71, 78, 59, 84, 65, 80, 53, 73, 65, 65, 53, 72, 66, 64, 58, 85, 65, 69, 53, 135, 74, 50, 58, 58, 71, 63, 73, 77, 65, 70, 48, 77, 82, 74, 71, 61, 62, 51, 63, 64, 57, 64, 63, 58, 64, 65, 72, 51, 56, 64, 52, 65, 62, 58, 58, 97, 69, 74, 70, 72, 58, 75, 58, 69, 57, 69, 68, 73, 77, 67, 53, 57, 63, 63, 59, 66, 39, 56, 120, 67, 64, 69, 64, 68, 75, 72, 78, 135, 86, 60, 67, 85, 67, 73, 55, 71, 90, 60, 61, 72, 74, 57, 62, 61, 62, 62, 59, 56, 56, 64, 64, 66, 55, 70, 58, 66, 65, 54, 68, 66, 41, 69, 56, 75, 63, 86, 59, 78, 44, 63, 72, 74, 80, 78, 59, 58, 71, 65, 53, 65, 66, 98, 63, 63, 51, 47, 64, 56, 95, 96, 65, 82, 71, 50, 52, 67, 87, 63, 57, 95, 66, 59, 86, 59, 67, 76, 97, 57, 62, 74, 102, 65, 59, 60, 43, 51, 49, 65, 43, 77, 69, 96, 50, 74, 78, 73, 65, 64, 63, 39, 58, 73, 69, 57, 64, 62, 68, 50, 63, 61, 43, 60, 64, 60, 56, 59, 75, 62, 66, 80, 77, 104, 55, 63, 66, 74, 68, 58, 57, 62, 54, 57, 60, 74, 66, 49, 75, 56, 97, 68, 60, 68, 43, 75, 79, 54, 60, 78, 65, 84, 75, 72, 64, 72, 71, 73, 72, 58, 91, 82, 51, 63, 52, 48, 76, 74, 65, 60, 50, 70, 99, 90, 68, 65, 68, 63, 85, 94, 58, 84, 86, 74, 68, 75, 49, 73, 82, 67, 80, 51, 62, 69, 52, 64, 75, 68, 52, 61, 55, 62, 53, 61, 71, 67, 42, 83, 38, 68, 55, 42, 62, 70, 59, 67, 67, 60, 48, 64, 59, 103, 52, 86, 74, 60, 99, 68, 68, 45, 73, 59, 102, 68, 60, 63, 61, 64, 69, 62, 53, 50, 55, 66, 66, 56, 54, 75, 55, 65, 56, 76, 46, 67, 47, 53, 71, 86, 77, 67, 64, 70, 48, 51, 62, 58, 59, 57, 52, 71, 72, 50, 87, 69, 90, 63, 55, 62, 58, 74, 72, 69, 81, 61, 56, 69, 75, 76, 131, 68, 42, 61, 76, 52, 48, 63, 45, 30, 66, 77, 66, 55, 72, 58, 66, 66, 44, 55, 66, 66, 47, 65, 58, 55, 66, 65, 78, 49, 56, 64, 95, 79, 59, 73, 72, 87, 73, 52, 54, 60, 83, 65, 60, 71, 67, 41, 61, 56, 58, 65, 71, 58, 94, 91, 99, 82, 57, 73, 58, 68, 53, 76, 68, 59, 64, 47, 65, 41, 60, 49, 72, 75, 66, 88, 69, 75, 87, 53, 52, 76, 72, 60, 55, 60, 74, 70, 77, 66, 56, 87, 49, 72, 62, 69, 57, 61, 68, 51, 74, 98, 55, 67, 49, 72, 63, 52, 64, 81, 81, 89, 53, 66, 57, 59, 42, 60, 61, 66, 69, 72, 60, 60, 84, 78, 62, 45, 91, 67, 109, 85, 64, 73, 84, 92, 71, 58, 46, 60, 52, 124, 72, 65, 83, 59, 94, 54, 59, 147, 67, 64, 58, 68, 86, 52, 71, 56, 70, 58, 83, 71, 54, 39, 80, 70, 63, 64, 100, 160, 62, 43, 57, 65, 85, 70, 62, 62, 58, 79, 61, 54, 50, 60, 79, 38, 55, 88, 56, 77, 65, 64, 70, 88, 54, 49, 56, 63, 68, 55, 57, 90, 100, 74, 69, 79, 89, 59, 57, 73, 63, 50, 66, 62, 71, 87, 87, 55, 75, 63, 55, 59, 70, 51, 72, 63, 65, 67, 55, 70, 53, 72, 59, 57, 66, 51, 76, 69, 74, 53, 77, 52, 76, 63, 63, 67, 42, 71, 67, 54, 51, 62, 69, 67, 51, 71, 66, 70, 73, 84, 88, 69, 62, 70, 86, 53, 63, 65, 63, 60, 74, 46, 75, 65, 64, 69, 69, 69, 73, 58, 67, 64, 76, 57, 73, 58, 56, 78, 84, 68, 56, 65, 58, 58, 92, 48, 64, 46, 82, 63, 101, 55, 49, 66, 75, 72, 68, 64, 60, 86, 74, 65, 61, 63, 73, 69, 63, 60, 44, 80, 45, 54, 76, 68, 69, 59, 72, 58, 52, 55, 65, 67, 62, 65, 43, 58, 62, 73, 55, 74, 53, 28, 91, 49, 66, 69, 78, 48, 67, 48, 56, 63, 53, 50, 75, 46, 92, 65, 58, 74, 76, 72, 70, 51, 78, 64, 78, 55, 54, 70, 46, 95, 44, 55, 53, 60, 70, 77, 62, 51, 57, 73, 51, 65, 64, 58, 70, 52, 57, 72, 52, 49, 61, 70, 71, 71, 85, 59, 57, 80, 68, 109, 75, 77, 44, 137, 63, 53, 55, 67, 44, 58, 60, 48, 59, 70, 61, 63, 65, 62, 81, 70, 61, 66, 46, 79, 64, 50, 92, 56, 82, 45, 78, 65, 110, 87, 58, 77, 79, 62, 71, 60, 65, 55, 52, 65, 56, 74, 65, 55, 52, 59, 70, 70, 62, 53, 70, 70, 69, 54, 62, 71, 75, 91, 70, 62, 58, 76, 75, 62, 55, 69, 78, 61, 95, 58, 55, 61, 54, 77, 59, 67, 67, 115, 59, 57, 72, 58, 51, 60, 78, 61, 70, 74, 53, 61, 58, 90, 79, 58, 83, 53, 61, 71, 94, 63, 71, 62, 54, 79, 65, 57, 59, 59, 65, 74, 87, 59, 48, 49, 74, 62, 71, 101, 52, 62, 58, 84, 55, 62, 83, 88, 72, 72, 65, 76, 80, 53, 66, 57, 64, 79, 48, 79, 70, 66, 62, 58, 52, 59, 54, 48, 83, 66, 59, 67, 67, 65, 68, 58, 64, 61, 65, 87, 79, 68, 68, 92, 118, 46, 69, 72, 63, 73, 72, 61, 55, 72, 80, 56, 69, 70, 67, 58, 65, 73, 62, 68, 82, 61, 126, 53, 67, 46, 41, 66, 88, 65, 65, 48, 86, 81, 57, 63, 60, 71, 103, 43, 60, 70, 66, 57, 78, 63, 49, 52, 76, 70, 71, 79, 88, 64, 63, 58, 63, 45, 49, 57, 54, 57, 64, 74, 59, 73, 101, 55, 69, 72, 88, 50, 71, 77, 63, 65, 49, 80, 71, 71, 78, 96, 54, 61, 62, 47, 52, 99, 56, 61, 56, 69, 61, 52, 50, 77, 66, 101, 41, 81, 58, 89, 60, 77, 52, 72, 97, 62, 53, 73, 72, 76, 68, 61, 73, 59, 62, 79, 71, 62, 74, 132, 45, 82, 78, 53, 66, 72, 54, 63, 100, 74, 48, 52, 58, 57, 62, 58, 49, 70, 48, 70, 65, 89, 79, 72, 49, 79, 48, 60, 48, 90, 49, 31, 54, 57, 74, 60, 66, 85, 75, 67, 61, 69, 60, 60, 98, 65, 56, 62, 70, 54, 70, 73, 44, 63, 54, 55, 102, 52, 62, 69, 63, 59, 72, 54, 65, 46, 51, 79, 81, 74, 61, 55, 88, 48, 55, 95, 55, 65, 83, 50, 103, 83, 71, 100, 63, 63, 103, 67, 58, 74, 62, 68, 67, 55, 68, 48, 61, 67, 56, 45, 66, 54, 63, 51, 52, 65, 75, 58, 70, 105, 65, 59, 75, 56, 74, 76, 66, 63, 48, 69, 61, 77, 71, 53, 62, 67, 48, 58, 59, 63, 64, 77, 96, 58, 60, 61, 66, 62, 43, 96, 124, 73, 135, 49, 87, 62, 47, 72, 57, 71, 73, 53, 51, 80, 98, 56, 62, 62, 71, 53, 80, 70, 68, 63, 70, 69, 63, 69, 52, 76, 67, 52, 69, 59, 71, 66, 57, 53, 69, 63, 48, 85, 69, 69, 63, 60, 61, 70, 68, 110, 51, 128, 59, 61, 60, 56, 54, 60, 61, 52, 54, 61, 89, 65, 67, 57, 64, 64, 53, 77, 50, 64, 64, 73, 60, 46, 52, 52, 70, 65, 52, 54, 62, 58, 42, 59, 62, 66, 67, 86, 58, 70, 58, 60, 69, 66, 50, 66, 73, 70, 71, 58, 86, 74, 73, 107, 51, 57, 58, 75, 63, 51, 67, 64, 61, 81, 74, 59, 66, 81, 54, 76, 72, 99, 63, 46, 56, 67, 65, 60, 39, 57, 49, 60, 43, 74, 61, 78, 64, 70, 61, 85, 51, 57, 68, 52, 71, 78, 86, 80, 57, 54, 83, 96, 107, 61, 50, 73, 60, 64, 69, 66, 79, 54, 63, 73, 39, 23, 57, 57, 68, 58, 56, 59, 65, 91, 59, 47, 70, 88, 71, 60, 55, 62, 53, 61, 63, 47, 40, 58, 61, 67, 43, 55, 74, 76, 77, 61, 96, 46, 57, 60, 46, 76, 41, 65, 59, 75, 42, 72, 71, 64, 50, 74, 79, 65, 55, 78, 75, 45, 70, 61, 57, 76, 64, 52, 79, 79, 79, 68, 68, 57, 60, 55, 137, 54, 64, 65, 71, 71, 58, 59, 85, 78, 52, 75, 57, 87, 74, 47, 70, 51, 71, 73, 56, 62, 52, 60, 59, 78, 97, 76, 74, 63, 59, 98, 44, 80, 62, 43, 62, 67, 64, 71, 50, 61, 65, 58, 84, 73, 70, 67, 69, 71, 54, 64, 55, 75, 78, 71, 70, 53, 64, 61, 75, 69, 77, 61, 81, 42, 73, 70, 70, 60, 55, 64, 71, 62, 108, 72, 63, 49, 66, 69, 58, 79, 74, 47, 81, 76, 43, 61, 47, 59, 47, 69, 78, 56, 73, 60, 73, 60, 66, 68, 50, 40, 68, 110, 61, 81, 78, 68, 56, 69, 63, 42, 70, 56, 82, 62, 58, 57, 68, 70, 62, 65, 73, 57, 76, 53, 66, 66, 81, 70, 86, 71, 77, 75, 52, 50, 73, 67, 82, 96, 90, 40, 62, 51, 64, 68, 48, 56, 58, 83, 77, 65, 30, 57, 56, 61, 83, 64, 44, 68, 52, 61, 61, 52, 59, 49, 56, 79, 67, 75, 60, 67, 55, 68, 48, 66, 48, 57, 48, 68, 59, 62, 53, 64, 63, 50, 57, 52, 55, 59, 101, 59, 64, 69, 62, 46, 65, 83, 76, 59, 88, 91, 62, 71, 78, 62, 49, 67, 73, 64, 134, 77, 47, 60, 67, 58, 70, 82, 95, 74, 48, 72, 102, 61, 56, 76, 62, 67, 60, 81, 59, 62, 101, 69, 51, 80, 60, 83, 78, 66, 56, 88, 52, 72, 95, 56, 65, 58, 62, 61, 101, 99, 75, 50, 57, 68, 60, 84, 76, 51, 53, 67, 67, 82, 66, 52, 65, 67, 55, 60, 48, 86, 54, 77, 56, 76, 71, 82, 57, 58, 60, 50, 117, 66, 86, 54, 60, 60, 63, 66, 63, 60, 79, 66, 65, 62, 64, 73, 61, 56, 48, 78, 62, 69, 50, 78, 71, 71, 60, 71, 67, 79, 61, 60, 62, 48, 72, 60, 73, 63, 55, 68, 68, 80, 50, 71, 59, 63, 69, 62, 66, 88, 62, 69, 61, 49, 48, 80, 62, 66, 51, 65, 69, 42, 50, 56, 83, 56, 46, 66, 54, 64, 77, 74, 57, 78, 58, 71, 49, 76, 56, 61, 66, 53, 87, 65, 52, 66, 73, 53, 59, 83, 52, 47, 52, 47, 69, 60, 43, 55, 50, 73, 61, 94, 67, 58, 67, 58, 69, 66, 72, 54, 86, 55, 61, 69, 82, 62, 80, 55, 76, 64, 73, 49, 70, 74, 59, 81, 55, 66, 77, 61, 81, 62, 49, 58, 63, 65, 87, 66, 60, 56, 87, 67, 50, 54, 58, 50, 57, 90, 64, 47, 63, 66, 56, 57, 53, 65, 55, 68, 60, 67, 74, 67, 63, 96, 82, 49, 68, 62, 58, 71, 74, 53, 60, 57, 83, 85, 55, 63, 59, 63, 64, 56, 82, 74, 61, 58, 57, 62, 66, 64, 63, 61, 61, 70, 80, 73, 66, 49, 104, 78, 59, 59, 37, 68, 74, 51, 69, 56, 48, 86, 49, 57, 100, 89, 52, 68, 46, 77, 60, 77, 55, 87, 55, 54, 64, 64, 90, 55, 72, 73, 76, 54, 71, 103, 48, 78, 61, 71, 40, 58, 68, 60, 93, 55, 64, 63, 70, 73, 65, 67, 56, 52, 73, 56, 64, 93, 58, 78, 61, 57, 76, 41, 65, 58, 82, 62, 70, 61, 74, 63, 63, 65, 77, 57, 43, 62, 61, 74, 53, 72, 63, 60, 62, 55, 64, 98, 67, 67, 55, 58, 68, 62, 65, 55, 79, 61, 74, 72, 56, 77, 102, 64, 87, 52, 70, 59, 67, 60, 67, 72, 80, 54, 79, 47, 52, 63, 62, 82, 56, 60, 55, 66, 76, 64, 63, 50, 52, 83, 46, 76, 64, 88, 74, 64, 61, 96, 57, 62, 62, 59, 63, 92, 65, 57, 77, 67, 66, 37, 53, 63, 48, 68, 64, 64, 99, 69, 60, 74, 72, 88, 72, 137, 61, 70, 55, 73, 66, 60, 73, 67, 78, 89, 62, 61, 64, 57, 85, 97, 54, 64, 96, 47, 78, 73, 62, 75, 67, 76, 50, 62, 56, 61, 83, 65, 47, 60, 76, 141, 48, 68, 59, 57, 94, 80, 58, 82, 63, 88, 87, 57, 73, 63, 80, 74, 68, 89, 58, 53, 57, 91, 70, 56, 80, 64, 62, 70, 62, 65, 61, 89, 71, 83, 59, 71, 57, 55, 54, 87, 63, 61, 55, 60, 54, 81, 57, 74, 77, 61, 73, 64, 62, 61, 69, 57, 53, 64, 62, 67, 56, 75, 47, 65, 54, 65, 53, 75, 54, 56, 73, 80, 50, 44, 63, 60, 65, 82, 57, 53, 68, 67, 62, 46, 83, 64, 78, 65, 66, 59, 58, 78, 93, 72, 79, 55, 57, 67, 66, 48, 65, 79, 66, 68, 74, 52, 59, 58, 78, 73, 59, 74, 62, 59, 91, 50, 62, 55, 89, 81, 65, 59, 80, 60, 44, 44, 84, 60, 41, 76, 87, 57, 95, 44, 52, 64, 84, 57, 82, 53, 73, 82, 73, 64, 62, 38, 63, 47, 57, 65, 128, 73, 93, 85, 74, 83, 80, 82, 55, 68, 44, 75, 45, 77, 62, 53, 39, 50, 63, 75, 59, 62, 70, 67, 82, 111, 79, 59, 53, 46, 60, 74, 69, 64, 53, 49, 55, 55, 60, 60, 86, 80, 53, 89, 67, 82, 54, 60, 63, 69, 82, 80, 65, 59, 77, 60, 55, 53, 53, 90, 54, 82, 57, 55, 45, 54, 81, 70, 67, 66, 125, 70, 44, 79, 70, 60, 63, 51, 56, 66, 61, 63, 63, 58, 79, 38, 60, 74, 52, 75, 48, 57, 50, 50, 60, 78, 61, 74, 65, 57, 57, 50, 56, 72, 71, 59, 54, 53, 54, 60, 62, 82, 63, 80, 48, 69, 73, 65, 58, 90, 99, 53, 58, 64, 64, 71, 73, 66, 53, 84, 85, 54, 64, 64, 162, 59, 54, 47, 89, 79, 52, 63, 79, 57, 67, 66, 55, 59, 64, 53, 99, 64, 58, 64, 51, 69, 50, 136, 54, 53, 58, 88, 67, 49, 63, 45, 78, 78, 91, 62, 60, 103, 81, 56, 86, 84, 61, 85, 68, 60, 61, 36, 73, 49, 61, 49, 64, 66, 67, 59, 55, 79, 56, 57, 63, 54, 92, 48, 61, 70, 57, 54, 70, 52, 62, 59, 68, 48, 63, 66, 75, 67, 40, 72, 51, 75, 62, 62, 96, 63, 91, 74, 63, 59, 66, 54, 64, 75, 46, 56, 40, 41, 65, 63, 68, 49, 47, 60, 59, 107, 77, 58, 70, 51, 56, 76, 83, 95, 57, 95, 60, 40, 51, 55, 57, 39, 60, 70, 75, 83, 39, 51, 60, 75, 46, 46, 69, 64, 69, 83, 56, 77, 53, 69, 51, 71, 69, 86, 91, 66, 58, 78, 46, 60, 64, 70, 75, 63, 55, 57, 65, 63, 62, 64, 73, 63, 60, 67, 54, 83, 81, 57, 61, 79, 95, 55, 59, 53, 59, 48, 61, 79, 92, 84, 62, 76, 63, 71, 58, 55, 73, 58, 70, 58, 48, 59, 59, 68, 78, 58, 72, 52, 60, 73, 65, 49, 72, 61, 78, 88, 75, 56, 61, 60, 66, 72, 70, 70, 60, 49, 63, 73, 67, 77, 77, 60, 89, 71, 96, 95, 68, 89, 65, 57, 73, 72, 78, 52, 63, 78, 70, 64, 71, 66, 67, 58, 62, 91, 70, 60, 77, 57, 57, 64, 79, 57, 78, 80, 76, 56, 90, 56, 61, 54, 61, 53, 52, 59, 76, 48, 68, 76, 53, 40, 60, 55, 73, 75, 61, 89, 61, 96, 51, 63, 60, 76, 52, 62, 80, 59, 73, 37, 46, 65, 66, 51, 61, 65, 70, 61, 57, 97, 54, 69, 66, 61, 63, 97, 69, 80, 56, 63, 56, 69, 105, 75, 81, 61, 73, 57, 93, 59, 42, 67, 70, 49, 71, 67, 59, 53, 67, 76, 71, 91, 49, 60, 100, 77, 81, 69, 63, 63, 78, 54, 55, 54, 59, 75, 53, 39, 60, 57, 75, 44, 71, 45, 65, 84, 80, 67, 43, 49, 63, 61, 59, 53, 53, 60, 56, 62, 64, 77, 65, 53, 74, 58, 50, 68, 61, 63, 84, 66, 73, 80, 89, 109, 50, 78, 51, 64, 80, 95, 65, 74, 49, 76, 56, 76, 78, 40, 72, 75, 56, 91, 63, 86, 105, 60, 67, 67, 57, 53, 90, 56, 65, 61, 47, 56, 63, 57, 71, 43, 54, 58, 61, 88, 68, 76, 62, 58, 56, 59, 80, 48, 45, 86, 58, 94, 109, 48, 65, 61, 61, 76, 71, 79, 64, 74, 99, 64, 52, 92, 66, 66, 72, 43, 148, 53, 50, 67, 57, 74, 71, 72, 71, 72, 67, 30, 81, 75, 57, 66, 80, 66, 76, 75, 61, 55, 83, 78, 61, 98, 68, 86, 95, 65, 52, 56, 52, 60, 62, 81, 57, 104, 77, 65, 51, 67, 74, 61, 78, 92, 56, 61, 54, 87, 75, 55, 64, 49, 101, 63, 55, 100, 77, 79, 67, 55, 63, 94, 71, 57, 59, 59, 87, 52, 72, 59, 56, 62, 65, 62, 55, 68, 55, 59, 63, 57, 58, 70, 43, 61, 58, 64, 68, 88, 40, 68, 51, 70, 67, 57, 63, 56, 79, 51, 71, 58, 69, 50, 62, 64, 89, 57, 66, 72, 81, 81, 48, 68, 68, 57, 73, 59, 59, 63, 70, 61, 79, 68, 62, 75, 78, 61, 54, 47, 71, 58, 56, 54, 52, 52, 52, 66, 61, 57, 59, 74, 54, 66, 67, 51, 47, 58, 83, 65, 67, 82, 62, 90, 72, 59, 53, 53, 58, 70, 61, 90, 54, 39, 77, 71, 62, 56, 90, 81, 67, 82, 54, 59, 95, 58, 81, 40, 102, 63, 61, 68, 43, 74, 56, 59, 51, 88, 64, 73, 64, 81, 74, 59, 54, 81, 49, 58, 76, 63, 57, 60, 58, 68, 67, 69, 57, 68, 52, 60, 60, 83, 60, 52, 66, 63, 63, 80, 47, 75, 66, 58, 49, 58, 83, 79, 61, 62, 61, 42, 91, 79, 66, 67, 64, 72, 70, 77, 72, 61, 53, 58, 50, 46, 55, 101, 44, 50, 62, 71, 57, 56, 74, 53, 61, 52, 70, 87, 89, 60, 59, 46, 67, 69, 66, 66, 67, 52, 74, 52, 82, 71, 74, 55, 67, 64, 62, 47, 74, 59, 63, 64, 77, 70, 61, 54, 48, 59, 75, 93, 76, 66, 54, 52, 57, 48, 67, 66, 58, 114, 73, 75, 51, 77, 49, 63, 56, 58, 78, 50, 90, 52, 60, 62, 68, 77, 49, 64, 77, 64, 55, 60, 102, 60, 43, 67, 62, 54, 74, 66, 57, 66, 69, 51, 79, 82, 75, 62, 58, 70, 59, 70, 63, 59, 49, 71, 66, 74, 44, 57, 70, 75, 88, 53, 106, 70, 98, 106, 63, 93, 69, 58, 70, 81, 68, 70, 63, 63, 71, 77, 64, 47, 39, 71, 65, 56, 72, 79, 68, 76, 82, 61, 54, 57, 81, 60, 44, 55, 43, 62, 71, 89, 57, 66, 79, 80, 80, 56, 58, 67, 77, 67, 51, 57, 80, 72, 69, 52, 48, 61, 81, 88, 100, 58, 90, 58, 90, 67, 56, 50, 52, 63, 70, 56, 70, 57, 62, 58, 95, 109, 84, 54, 47, 45, 55, 47, 103, 68, 59, 57, 47, 62, 58, 65, 61, 94, 64, 51, 68, 60, 77, 51, 53, 62, 80, 63, 73, 57, 77, 64, 79, 40, 72, 56, 50, 38, 50, 60, 67, 45, 57, 58, 58, 51, 81, 73, 83, 63, 73, 42, 91, 57, 51, 54, 78, 61, 50, 66, 70, 80, 55, 64, 85, 76, 81, 61, 58, 78, 66, 69, 66, 77, 71, 57, 59, 71, 75, 53, 75, 71, 60, 54, 34, 59, 85, 67, 47, 71, 80, 62, 72, 109, 43, 56, 70, 63, 67, 50, 66, 46, 75, 85, 59, 85, 87, 42, 56, 81, 40, 60, 59, 74, 46, 56, 59, 58, 54, 62, 67, 68, 67, 64, 58, 84, 76, 83, 62, 66, 65, 71, 72, 41, 57, 58, 58, 71, 80, 60, 54, 72, 64, 61, 71, 67, 71, 84, 62, 74, 58, 73, 67, 67, 50, 69, 42, 69, 60, 56, 64, 64, 64, 78, 55, 72, 50, 57, 81, 81, 62, 60, 53, 65, 65, 59, 62, 54, 60, 64, 61, 85, 68, 65, 62, 69, 72, 56, 64, 53, 68, 67, 80, 52, 54, 72, 64, 71, 73, 70, 58, 49, 74, 52, 62, 70, 65, 78, 63, 65, 56, 93, 47, 73, 81, 60, 56, 68, 63, 72, 52, 73, 50, 76, 70, 62, 80, 47, 66, 56, 56, 81, 84, 46, 53, 74, 63, 61, 81, 74, 63, 61, 70, 79, 65, 66, 118, 55, 57, 112, 50, 76, 53, 78, 69, 66, 79, 64, 103, 49, 54, 65, 54, 56, 55, 53, 48, 74, 52, 78, 57, 71, 63, 88, 63, 61, 80, 60, 57, 70, 65, 62, 65, 57, 79, 56, 62, 66, 62, 61, 56, 56, 77, 53, 79, 74, 56, 59, 60, 56, 54, 60, 46, 151, 69, 59, 65, 53, 63, 77, 61, 63, 58, 67, 61, 107, 55, 55, 56, 82, 124, 54, 64, 64, 52, 63, 81, 64, 62, 58, 53, 68, 68, 84, 71, 64, 67, 94, 63, 60, 67, 56, 66, 57, 56, 61, 61, 58, 59, 67, 57, 40, 62, 63, 62, 95, 77, 74, 58, 72, 65, 74, 42, 94, 62, 56, 82, 65, 62, 59, 59, 73, 65, 63, 68, 69, 69, 61, 68, 58, 101, 80, 78, 69, 80, 109, 79, 53, 66, 66, 86, 69, 88, 62, 56, 68, 92, 65, 60, 64, 71, 55, 76, 50, 64, 47, 80, 52, 68, 63, 68, 58, 69, 59, 66, 51, 72, 55, 57, 71, 64, 59, 62, 61, 59, 77, 53, 56, 66, 60, 58, 69, 85, 51, 88, 98, 52, 57, 48, 60, 85, 55, 57, 63, 57, 59, 69, 75, 70, 62, 54, 68, 61, 65, 61, 75, 75, 58, 81, 69, 47, 76, 82, 57, 91, 66, 59, 71, 49, 58, 57, 54, 65, 46, 72, 54, 70, 55, 62, 79, 55, 85, 66, 66, 57, 64, 57, 65, 80, 69, 73, 84, 74, 60, 69, 78, 81, 83, 61, 59, 80, 69, 54, 69, 62, 76, 65, 56, 63, 71, 68, 57, 59, 69, 50, 58, 52, 65, 56, 68, 75, 60, 71, 67, 62, 64, 53, 71, 55, 66, 71, 55, 62, 60, 70, 64, 75, 74, 70, 55, 73, 60, 60, 50, 60, 67, 75, 63, 82, 77, 57, 73, 46, 72, 83, 72, 67, 66, 49, 64, 58, 56, 90, 64, 48, 64, 93, 64, 62, 59, 64, 68, 62, 69, 43, 95, 50, 59, 52, 57, 60, 78, 84, 54, 62, 63, 62, 58, 46, 78, 73, 70, 83, 67, 51, 65, 64, 56, 62, 61, 48, 61, 57, 49, 66, 86, 64, 74, 92, 62, 76, 55, 78, 60, 42, 51, 44, 55, 79, 58, 103, 81, 63, 52, 76, 90, 61, 53, 63, 77, 64, 48, 72, 65, 80, 68, 66, 55, 46, 76, 62, 58, 47, 74, 52, 77, 87, 58, 61, 69, 55, 59, 80, 51, 52, 59, 99, 77, 60, 75, 76, 81, 59, 61, 67, 62, 70, 57, 61, 61, 68, 54, 69, 81, 51, 73, 67, 59, 73, 61, 101, 67, 43, 65, 63, 57, 63, 66, 101, 78, 52, 41, 49, 74, 68, 62, 75, 60, 74, 76, 66, 55, 49, 78, 72, 70, 60, 67, 116, 50, 66, 66, 66, 43, 77, 48, 55, 59, 56, 82, 47, 61, 68, 65, 83, 68, 57, 79, 51, 93, 75, 66, 62, 90, 80, 66, 67, 56, 65, 55, 80, 60, 57, 87, 59, 69, 64, 56, 69, 76, 63, 51, 69, 60, 58, 61, 74, 102, 64, 81, 69, 62, 57, 59, 80, 60, 70, 61, 62, 90, 61, 71, 86, 62, 73, 80, 48, 63, 53, 60, 93, 52, 70, 69, 63, 59, 48, 75, 47, 59, 71, 44, 71, 67, 54, 61, 65, 61, 87, 85, 69, 72, 62, 59, 51, 77, 76, 64, 63, 64, 71, 75, 77, 70, 57, 60, 57, 77, 61, 92, 68, 53, 69, 68, 75, 57, 54, 69, 57, 50, 52, 97, 58, 45, 56, 54, 52, 51, 53, 44, 66, 52, 76, 48, 70, 53, 75, 77, 73, 67, 68, 58, 57, 53, 68, 69, 63, 61, 71, 57, 77, 98, 46, 57, 58, 61, 57, 89, 70, 49, 67, 84, 62, 50, 58, 53, 69, 52, 43, 59, 64, 71, 83, 57, 78, 58, 70, 66, 60, 55, 58, 48, 69, 62, 50, 53, 66, 56, 54, 90, 72, 49, 60, 68, 65, 63, 58, 56, 65, 59, 61, 55, 71, 66, 65, 57, 72, 90, 91, 72, 59, 61, 79, 44, 76, 53, 56, 58, 55, 73, 69, 56, 60, 56, 75, 51, 64, 113, 65, 59, 60, 76, 70, 69, 57, 96, 43, 70, 87, 78, 50, 60, 62, 65, 65, 60, 59, 74, 60, 63, 72, 64, 67, 97, 65, 82, 63, 68, 64, 48, 58, 55, 64, 75, 68, 62, 60, 68, 67, 68, 74, 58, 64, 61, 68, 40, 57, 58, 59, 60, 50, 53, 58, 60, 79, 56, 51, 66, 62, 67, 59, 105, 71, 100, 75, 68, 47, 83, 68, 44, 52, 83, 54, 60, 65, 71, 45, 60, 57, 87, 73, 67, 65, 61, 66, 52, 63, 50, 70, 78, 69, 62, 58, 66, 63, 65, 66, 60, 60, 42, 74, 62, 65, 85, 68, 70, 58, 62, 57, 122, 68, 61, 59, 71, 66, 80, 67, 40, 61, 62, 47, 61, 81, 74, 53, 75, 103, 61, 81, 79, 61, 74, 69, 75, 72, 42, 69, 60, 70, 61, 66, 98, 74, 36, 62, 71, 57, 53, 70, 78, 85, 54, 93, 68, 72, 52, 59, 84, 68, 62, 67, 58, 72, 47, 55, 54, 83, 72, 55, 51, 57, 75, 69, 60, 58, 51, 61, 47, 55, 65, 70, 84, 66, 69, 62, 52, 67, 56, 80, 54, 74, 67, 108, 90, 60, 50, 91, 49, 97, 57, 133, 78, 65, 55, 47, 58, 70, 61, 54, 72, 67, 59, 57, 68, 67, 67, 62, 63, 50, 56, 68, 39, 67, 62, 67, 54, 58, 71, 54, 67, 46, 60, 73, 63, 69, 58, 69, 81, 67, 56, 64, 59, 59, 52, 64, 75, 50, 87, 54, 99, 59, 54, 68, 65, 68, 60, 66, 55, 59, 58, 53, 70, 69, 74, 79, 52, 58, 59, 71, 55, 59, 48, 62, 59, 65, 60, 73, 68, 74, 77, 58, 63, 82, 50, 79, 75, 60, 65, 61, 83, 62, 42, 56, 61, 69, 103, 66, 84, 73, 66, 60, 58, 74, 87, 63, 57, 65, 68, 72, 60, 65, 57, 42, 57, 84, 60, 63, 83, 60, 64, 53, 67, 69, 58, 62, 35, 71, 68, 64, 64, 87, 50, 70, 60, 101, 56, 69, 83, 75, 59, 68, 56, 77, 59, 62, 59, 59, 57, 58, 71, 63, 60, 58, 74, 67, 49, 74, 60, 124, 61, 58, 84, 52, 51, 56, 71, 78, 66, 69, 65, 66, 90, 72, 48, 60, 62, 57, 54, 63, 55, 76, 80, 78, 68, 69, 93, 69, 76, 76, 55, 69, 71, 56, 109, 56, 64, 77, 60, 77, 80, 52, 72, 75, 67, 69, 65, 62, 63, 55, 62, 59, 64, 82, 128, 128, 59, 92, 65, 65, 60, 53, 66, 46, 66, 64, 50, 65, 58, 54, 61, 75, 49, 55, 65, 55, 64, 66, 58, 71, 72, 49, 91, 57, 68, 65, 70, 52, 66, 60, 57, 30, 56, 73, 49, 55, 106, 77, 62, 57, 49, 41, 51, 97, 57, 70, 61, 58, 61, 139, 64, 59, 53, 62, 58, 85, 61, 64, 71, 58, 82, 64, 59, 77, 59, 59, 58, 56, 90, 55, 70, 77, 64, 61, 63, 60, 61, 89, 79, 66, 57, 60, 57, 69, 60, 60, 59, 76, 57, 63, 79, 58, 61, 58, 67, 73, 61, 76, 70, 68, 62, 77, 58, 65, 70, 77, 53, 70, 80, 66, 74, 67, 62, 66, 60, 71, 65, 78, 56, 74, 59, 63, 62, 104, 107, 71, 85, 72, 54, 103, 64, 74, 52, 30, 57, 59, 63, 73, 97, 67, 82, 36, 76, 75, 60, 65, 68, 50, 91, 57, 51, 72, 64, 45, 61, 59, 68, 69, 90, 80, 57, 52, 75, 65, 74, 68, 58, 60, 73, 58, 76, 69, 69, 59, 61, 37, 55, 58, 95, 62, 64, 72, 55, 64, 46, 70, 49, 71, 58, 56, 59, 69, 55, 65, 48, 54, 69, 81, 58, 65, 71, 74, 65, 54, 70, 68, 68, 86, 62, 81, 94, 57, 70, 61, 65, 41, 84, 49, 82, 44, 80, 56, 66, 68, 60, 56, 72, 64, 75, 54, 84, 54, 80, 76, 67, 67, 56, 71, 66, 62, 99, 77, 68, 56, 59, 54, 63, 59, 69, 61, 78, 72, 50, 76, 62, 91, 57, 67, 53, 58, 61, 82, 68, 58, 44, 70, 57, 60, 66, 60, 62, 56, 53, 60, 82, 53, 54, 101, 49, 59, 67, 62, 55, 57, 84, 57, 82, 46, 60, 75, 57, 85, 55, 44, 59, 66, 66, 80, 58, 72, 63, 84, 62, 65, 81, 68, 68, 58, 82, 60, 59, 85, 68, 70, 83, 63, 70, 67, 59, 60, 51, 73, 56, 71, 71, 49, 57, 44, 78, 69, 67, 61, 67, 62, 92, 52, 76, 46, 67, 61, 73, 37, 57, 53, 54, 61, 61, 56, 69, 63, 28, 57, 69, 51, 62, 53, 64, 78, 72, 68, 55, 52, 52, 72, 86, 68, 65, 72, 85, 55, 67, 81, 59, 60, 59, 50, 103, 65, 89, 66, 54, 66, 66, 69, 60, 57, 63, 61, 79, 67, 59, 48, 85, 88, 75, 62, 45, 53, 114, 76, 60, 51, 73, 64, 49, 73, 51, 87, 64, 59, 57, 74, 64, 61, 61, 61, 57, 69, 57, 53, 86, 54, 59, 65, 63, 67, 78, 64, 54, 56, 72, 66, 56, 60, 87, 61, 56, 115, 73, 64, 86, 52, 59, 62, 58, 77, 48, 64, 66, 48, 59, 83, 60, 64, 60, 79, 72, 58, 72, 57, 62, 58, 39, 59, 63, 63, 71, 71, 103, 54, 54, 85, 70, 54, 58, 62, 81, 59, 59, 59, 60, 70, 69, 47, 80, 63, 62, 52, 64, 73, 60, 65, 60, 56, 51, 61, 66, 74, 59, 63, 64, 67, 71, 66, 101, 53, 56, 69, 49, 79, 74, 95, 59, 61, 77, 65, 54, 59, 70, 59, 65, 75, 58, 90, 42, 100, 83, 79, 59, 62, 55, 64, 75, 62, 60, 57, 34, 62, 78, 65, 54, 60, 63, 73, 87, 60, 57, 61, 66, 68, 60, 49, 76, 62, 66, 52, 71, 65, 54, 61, 48, 74, 52, 60, 70, 81, 60, 83, 55, 58, 70, 58, 61, 57, 63, 60, 53, 51, 64, 46, 64, 91, 62, 66, 70, 69, 65, 58, 70, 100, 62, 63, 73, 83, 86, 60, 64, 49, 59, 97, 60, 51, 88, 67, 72, 76, 69, 74, 89, 55, 67, 66, 54, 61, 60, 59, 55, 81, 58, 55, 105, 76, 59, 64, 59, 75, 99, 59, 115, 66, 78, 49, 126, 50, 70, 72, 56, 58, 75, 80, 67, 67, 55, 63, 89, 67, 59, 75, 68, 115, 66, 68, 56, 55, 73, 65, 88, 69, 93, 75, 61, 61, 63, 64, 62, 59, 98, 63, 57, 61, 51, 54, 56, 61, 66, 54, 62, 63, 55, 69, 52, 56, 70, 52, 51, 74, 49, 59, 61, 61, 66, 69, 66, 76, 60, 60, 66, 51, 56, 59, 119, 53, 66, 75, 81, 47, 60, 61, 100, 74, 48, 77, 65, 63, 57, 69, 77, 67, 63, 59, 61, 60, 85, 84, 60, 86, 60, 71, 74, 54, 47, 94, 59, 48, 62, 58, 54, 62, 70, 60, 58, 57, 76, 60, 89, 57, 82, 72, 62, 78, 60, 52, 50, 57, 84, 59, 75, 88, 52, 61, 45, 61, 58, 89, 78, 60, 77, 63, 60, 62, 56, 78, 69, 63, 57, 99, 67, 64, 53, 60, 75, 60, 68, 58, 60, 63, 63, 76, 60, 50, 56, 58, 42, 65, 112, 67, 72, 69, 62, 54, 99, 71, 68, 54, 72, 78, 60, 81, 59, 54, 83, 54, 86, 60, 83, 49, 67, 51, 49, 62, 109, 62, 41, 47, 50, 60, 86, 59, 85, 65, 48, 61, 68, 70, 88, 52, 73, 44, 86, 48, 59, 62, 41, 70, 61, 77, 57, 103, 61, 53, 70, 84, 65, 69, 100, 62, 64, 60, 77, 95, 73, 60, 72, 43, 50, 67, 78, 69, 37, 74, 55, 58, 59, 65, 53, 91, 51, 85, 71, 70, 77, 66, 74, 77, 79, 88, 72, 63, 78, 76, 67, 76, 60, 61, 52, 89, 61, 63, 91, 103, 62, 59, 47, 62, 52, 67, 55, 67, 80, 60, 61, 69, 43, 72, 84, 67, 58, 71, 71, 54, 81, 106, 52, 67, 59, 61, 87, 83, 72, 54, 68, 46, 107, 78, 46, 90, 84, 70, 99, 49, 88, 37, 52, 71, 55, 65, 59, 82, 51, 65, 67, 74, 55, 53, 67, 66, 55, 48, 49, 73, 94, 67, 61, 57, 89, 61, 55, 62, 54, 63, 70, 48, 55, 74, 54, 52, 60, 82, 116, 48, 79, 61, 54, 49, 60, 44, 94, 59, 73, 39, 56, 96, 46, 79, 48, 69, 71, 71, 50, 85, 74, 71, 68, 57, 50, 70, 61, 81, 58, 68, 55, 66, 47, 55, 59, 55, 64, 94, 69, 66, 70, 63, 64, 67, 79, 61, 70, 64, 72, 96, 76, 44, 53, 62, 79, 71, 64, 44, 68, 88, 79, 56, 53, 72, 54, 63, 65, 54, 56, 47, 77, 85, 61, 55, 56, 67, 42, 76, 89, 52, 82, 63, 61, 75, 55, 81, 102, 63, 41, 82, 91, 67, 61, 52, 51, 82, 61, 58, 37, 82, 93, 75, 55, 81, 58, 66, 66, 70, 84, 52, 77, 67, 67, 66, 58, 50, 58, 76, 46, 84, 61, 66, 59, 56, 70, 72, 81, 54, 52, 56, 47, 76, 106, 62, 73, 77, 80, 62, 78, 78, 78, 66, 93, 67, 65, 54, 42, 75, 46, 99, 50, 50, 62, 56, 100, 75, 67, 56, 52, 54, 91, 70, 83, 53, 68, 56, 56, 56, 47, 56, 75, 67, 52, 72, 69, 70, 66, 63, 58, 110, 58, 54, 58, 67, 76, 74, 63, 62, 63, 74, 56, 72, 50, 64, 47, 74, 74, 56, 52, 63, 88, 59, 66, 64, 91, 59, 74, 70, 66, 50, 66, 60, 58, 51, 52, 56, 82, 57, 69, 54, 57, 53, 39, 44, 91, 70, 57, 83, 40, 92, 81, 66, 79, 72, 87, 83, 43, 47, 56, 71, 66, 57, 55, 64, 75, 71, 74, 88, 82, 67, 84, 74, 67, 66, 56, 51, 65, 64, 56, 59, 65, 57, 77, 64, 70, 69, 56, 65, 81, 43, 43, 45, 49, 82, 49, 65, 64, 63, 58, 63, 63, 85, 73, 67, 72, 76, 67, 65, 63, 57, 44, 65, 77, 76, 59, 54, 44, 98, 59, 74, 60, 138, 55, 55, 90, 82, 48, 64, 69, 46, 57, 52, 57, 62, 63, 61, 50, 102, 57, 69, 68, 52, 70, 74, 95, 99, 58, 69, 69, 85, 49, 55, 70, 80, 62, 69, 84, 87, 81, 57, 85, 72, 43, 45, 57, 47, 72, 41, 46, 65, 75, 68, 87, 61, 65, 86, 61, 66, 55, 87, 57, 64, 57, 30, 72, 64, 69, 80, 83, 63, 77, 76, 65, 56, 99, 56, 75, 56, 49, 79, 56, 74, 64, 99, 41, 86, 57, 57, 65, 69, 57, 57, 64, 87, 81, 62, 54, 68, 63, 90, 82, 57, 67, 73, 50, 55, 59, 43, 92, 59, 92, 91, 62, 48, 65, 85, 49, 124, 51, 61, 68, 58, 74, 49, 70, 68, 48, 73, 57, 102, 86, 79, 53, 85, 91, 85, 41, 54, 74, 69, 62, 69, 81, 73, 55, 97, 65, 64, 71, 53, 38, 72, 48, 86, 55, 63, 74, 67, 39, 52, 67, 71, 71, 45, 54, 69, 83, 84, 87, 72, 48, 52, 76, 48, 64, 55, 68, 57, 64, 60, 80, 69, 68, 66, 56, 57, 54, 58, 43, 64, 71, 63, 48, 79, 73, 60, 53, 60, 59, 51, 56, 54, 91, 66, 49, 49, 76, 60, 67, 87, 59, 53, 71, 84, 83, 77, 56, 65, 62, 59, 58, 56, 89, 101, 39, 45, 62, 78, 52, 64, 67, 73, 53, 50, 58, 51, 56, 48, 57, 73, 72, 79, 56, 66, 47, 52, 58, 89, 58, 59, 53, 47, 62, 81, 70, 53, 62, 62, 52, 58, 56, 59, 80, 73, 57, 47, 81, 66, 63, 53, 55, 80, 57, 49, 64, 59, 52, 52, 74, 76, 64, 76, 72, 61, 89, 52, 64, 76, 53, 59, 79, 73, 82, 57, 59, 50, 66, 71, 48, 59, 93, 68, 56, 70, 51, 75, 54, 43, 66, 57, 61, 79, 77, 62, 55, 55, 76, 77, 64, 66, 74, 70, 59, 46, 65, 81, 75, 70, 75, 83, 74, 57, 104, 59, 63, 53, 108, 61, 56, 79, 110, 56, 85, 60, 66, 41, 53, 57, 50, 59, 52, 101, 76, 106, 68, 55, 62, 61, 61, 57, 56, 77, 46, 62, 60, 48, 56, 54, 50, 92, 73, 65, 63, 132, 66, 81, 52, 60, 54, 72, 89, 57, 45, 74, 58, 63, 55, 63, 64, 59, 111, 54, 64, 60, 64, 82, 46, 60, 71, 90, 56, 64, 63, 63, 76, 70, 68, 64, 42, 66, 65, 81, 61, 66, 51, 89, 69, 64, 47, 87, 65, 73, 61, 57, 50, 59, 89, 49, 43, 69, 107, 75, 56, 62, 64, 96, 76, 60, 45, 66, 64, 68, 68, 75, 73, 67, 68, 106, 94, 51, 89, 74, 42, 76, 53, 89, 51, 73, 81, 51, 69, 61, 70, 69, 55, 60, 71, 52, 60, 56, 52, 54, 45, 69, 65, 53, 46, 83, 81, 58, 59, 53, 64, 93, 63, 77, 61, 112, 65, 62, 38, 63, 84, 58, 55, 63, 66, 40, 77, 63, 60, 55, 52, 50, 60, 63, 47, 81, 55, 43, 89, 52, 43, 63, 52, 50, 63, 72, 54, 84, 55, 60, 64, 65, 61, 65, 64, 56, 60, 63, 66, 106, 64, 74, 55, 55, 47, 49, 78, 60, 68, 78, 54, 74, 66, 50, 84, 107, 75, 77, 88, 63, 61, 53, 61, 58, 57, 61, 76, 38, 98, 60, 63, 56, 72, 60, 47, 77, 75, 61, 62, 45, 47, 58, 69, 55, 69, 55, 55, 66, 72, 69, 79, 89, 86, 47, 55, 47, 42, 62, 59, 49, 82, 84, 64, 59, 56, 65, 39, 72, 58, 43, 66, 56, 77, 56, 73, 50, 56, 50, 52, 64, 61, 124, 53, 46, 60, 96, 61, 47, 67, 74, 52, 47, 54, 69, 66, 45, 62, 58, 67, 93, 65, 63, 53, 37, 51, 75, 62, 70, 51, 50, 48, 69, 57, 53, 74, 80, 63, 67, 51, 72, 73, 85, 74, 54, 62, 49, 75, 58, 76, 77, 48, 78, 65, 55, 58, 53, 53, 61, 69, 76, 60, 91, 80, 74, 70, 51, 99, 68, 65, 135, 54, 50, 75, 59, 50, 43, 88, 64, 56, 62, 54, 56, 71, 49, 68, 75, 67, 56, 66, 70, 66, 57, 92, 80, 53, 60, 68, 42, 65, 73, 53, 70, 42, 62, 55, 92, 69, 58, 68, 65, 71, 61, 56, 69, 58, 58, 81, 38, 77, 64, 62, 53, 56, 49, 79, 49, 67, 57, 61, 76, 68, 104, 63, 74, 46, 66, 90, 62, 54, 46, 66, 69, 73, 63, 53, 93, 56, 62, 73, 68, 55, 65, 63, 81, 61, 55, 64, 63, 55, 64, 80, 60, 58, 27, 76, 50, 80, 62, 65, 63, 92, 76, 58, 101, 57, 68, 55, 74, 45, 61, 72, 73, 40, 58, 60, 56, 67, 72, 55, 61, 69, 66, 56, 56, 96, 65, 62, 83, 77, 61, 51, 65, 54, 61, 64, 47, 63, 85, 74, 63, 64, 61, 73, 81, 61, 60, 47, 56, 68, 90, 67, 55, 76, 71, 76, 49, 51, 57, 113, 73, 59, 82, 74, 97, 76, 52, 69, 74, 73, 95, 52, 58, 73, 70, 66, 74, 63, 50, 51, 71, 51, 66, 68, 76, 54, 56, 68, 60, 64, 83, 55, 51, 70, 46, 72, 63, 59, 87, 53, 66, 83, 68, 60, 58, 56, 92, 61, 58, 55, 90, 58, 44, 83, 94, 58, 75, 98, 56, 75, 60, 49, 68, 49, 63, 50, 65, 56, 67, 55, 60, 52, 66, 73, 50, 48, 77, 72, 50, 46, 82, 60, 79, 72, 60, 57, 53, 53, 82, 82, 76, 57, 44, 80, 60, 60, 59, 55, 54, 81, 50, 74, 79, 60, 50, 85, 74, 67, 68, 51, 71, 63, 58, 68, 53, 82, 67, 48, 63, 75, 72, 65, 68, 51, 63, 61, 79, 68, 69, 69, 73, 63, 73, 80, 69, 59, 47, 36, 73, 72, 60, 68, 87, 80, 48, 65, 52, 60, 52, 57, 61, 64, 69, 71, 86, 104, 86, 63, 64, 72, 66, 55, 64, 47, 60, 78, 82, 56, 60, 66, 55, 64, 56, 51, 58, 60, 58, 64, 83, 67, 69, 62, 65, 74, 60, 53, 60, 54, 66, 57, 51, 68, 137, 78, 74, 70, 64, 54, 63, 82, 68, 88, 78, 58, 81, 56, 77, 65, 40, 72, 69, 73, 48, 96, 64, 61, 63, 91, 81, 64, 68, 74, 64, 50, 83, 66, 64, 56, 61, 61, 42, 88, 51, 72, 57, 58, 58, 51, 63, 62, 80, 80, 73, 88, 56, 64, 98, 61, 81, 88, 54, 66, 59, 75, 65, 73, 60, 43, 55, 97, 61, 47, 64, 64, 67, 71, 60, 72, 80, 66, 56, 47, 84, 74, 49, 58, 71, 71, 46, 60, 91, 55, 50, 42, 61, 97, 50, 74, 74, 55, 39, 76, 61, 54, 69, 66, 66, 60, 86, 71, 60, 76, 57, 55, 51, 39, 46, 70, 54, 64, 72, 63, 61, 72, 71, 49, 90, 73, 56, 49, 58, 64, 68, 40, 71, 53, 57, 70, 72, 58, 61, 51, 88, 54, 65, 64, 54, 51, 47, 71, 66, 54, 46, 47, 57, 68, 53, 81, 106, 69, 73, 67, 80, 63, 59, 87, 62, 48, 94, 55, 47, 108, 78, 76, 54, 72, 83, 72, 64, 63, 60, 50, 62, 77, 59, 69, 82, 53, 78, 80, 60, 55, 85, 60, 59, 58, 63, 80, 52, 58, 82, 73, 67, 63, 79, 53, 104, 58, 46, 53, 65, 55, 70, 56, 83, 67, 95, 69, 94, 71, 54, 53, 65, 64, 74, 81, 75, 60, 64, 60, 69, 72, 49, 79, 55, 88, 62, 58, 58, 71, 88, 70, 60, 69, 49, 70, 64, 53, 64, 62, 58, 67, 65, 60, 56, 97, 56, 65, 46, 52, 68, 53, 55, 69, 60, 76, 53, 70, 48, 75, 61, 56, 61, 95, 70, 73, 63, 57, 57, 70, 63, 50, 61, 70, 66, 59, 64, 74, 51, 83, 51, 58, 79, 75, 63, 63, 59, 64, 63, 70, 87, 63, 92, 56, 75, 62, 59, 59, 56, 57, 61, 60, 51, 50, 58, 75, 63, 66, 51, 58, 75, 72, 67, 64, 66, 79, 56, 59, 78, 65, 56, 75, 59, 48, 50, 73, 60, 57, 80, 85, 61, 92, 75, 74, 70, 61, 54, 78, 53, 65, 79, 55, 58, 59, 53, 76, 66, 66, 69, 80, 74, 62, 60, 72, 82, 60, 49, 55, 58, 76, 73, 65, 64, 66, 65, 74, 65, 74, 87, 70, 46, 79, 60, 47, 47, 103, 64, 72, 86, 49, 60, 71, 53, 66, 45, 49, 61, 64, 70, 84, 53, 49, 58, 91, 55, 56, 106, 92, 64, 81, 63, 73, 68, 80, 85, 70, 55, 68, 52, 49, 68, 68, 71, 49, 56, 76, 64, 60, 71, 74, 65, 65, 73, 64, 57, 70, 57, 59, 60, 58, 62, 50, 81, 68, 47, 73, 62, 74, 59, 59, 54, 63, 81, 63, 72, 62, 69, 81, 62, 75, 66, 59, 84, 81, 72, 41, 115, 69, 80, 56, 91, 86, 88, 69, 68, 95, 72, 74, 58, 83, 72, 70, 76, 65, 66, 50, 76, 76, 67, 82, 57, 57, 57, 63, 54, 80, 59, 90, 65, 74, 42, 118, 54, 44, 62, 61, 89, 66, 112, 55, 55, 52, 65, 47, 87, 73, 53, 67, 58, 77, 68, 69, 54, 55, 95, 53, 70, 57, 53, 70, 75, 64, 64, 65, 49, 66, 102, 69, 73, 68, 68, 61, 71, 61, 75, 65, 67, 63, 66, 72, 62, 51, 56, 55, 64, 56, 67, 58, 61, 68, 67, 47, 66, 61, 75, 55, 54, 65, 58, 75, 84, 70, 70, 64, 63, 63, 70, 68, 44, 48, 78, 79, 65, 67, 74, 73, 69, 73, 102, 72, 68, 110, 73, 70, 46, 61, 131, 82, 65, 59, 80, 58, 73, 61, 65, 65, 66, 68, 49, 50, 63, 69, 62, 51, 63, 93, 98, 56, 69, 68, 55, 74, 59, 56, 68, 68, 71, 93, 110, 83, 53, 69, 38, 67, 63, 73, 94, 82, 63, 64, 68, 67, 67, 61, 66, 56, 69, 64, 65, 87, 80, 74, 61, 67, 93, 80, 82, 96, 89, 62, 56, 81, 58, 60, 84, 70, 52, 81, 69, 73, 67, 42, 68, 81, 61, 59, 68, 61, 59, 64, 75, 63, 70, 49, 73, 71, 64, 76, 48, 71, 55, 66, 56, 61, 76, 65, 67, 69, 64, 60, 65, 82, 53, 65, 74, 62, 56, 58, 78, 72, 62, 73, 60, 62, 44, 64, 90, 85, 36, 57, 55, 77, 68, 64, 72, 66, 64, 51, 97, 78, 74, 69, 78, 58, 73, 54, 65, 63, 76, 67, 52, 71, 104, 55, 49, 61, 55, 56, 57, 53, 56, 60, 50, 50, 55, 57, 84, 61, 56, 54, 81, 66, 68, 51, 65, 56, 84, 72, 82, 67, 49, 72, 66, 53, 64, 66, 69, 69, 63, 75, 58, 77, 73, 75, 60, 59, 39, 64, 78, 70, 56, 53, 50, 53, 83, 57, 68, 61, 66, 63, 77, 47, 74, 86, 29, 72, 75, 43, 60, 58, 81, 69, 72, 65, 88, 73, 79, 62, 63, 60, 51, 118, 71, 60, 58, 55, 60, 67, 65, 52, 68, 73, 56, 76, 67, 59, 53, 62, 74, 53, 57, 76, 59, 68, 54, 59, 52, 45, 100, 70, 61, 51, 89, 49, 65, 81, 65, 57, 60, 76, 69, 73, 64, 56, 53, 66, 62, 58, 57, 54, 61, 67, 82, 63, 57, 64, 72, 82, 73, 64, 50, 65, 73, 73, 49, 61, 68, 80, 65, 58, 44, 74, 43, 50, 63, 78, 54, 70, 67, 71, 77, 67, 60, 59, 87, 62, 50, 54, 85, 95, 59, 95, 50, 68, 68, 79, 55, 87, 55, 62, 66, 62, 61, 88, 55, 66, 61, 63, 63, 54, 51, 64, 70, 68, 59, 72, 70, 65, 64, 66, 74, 76, 62, 60, 45, 60, 83, 73, 86, 69, 59, 103, 46, 72, 74, 46, 56, 46, 59, 81, 57, 54, 43, 66, 82, 52, 51, 46, 86, 74, 59, 62, 77, 79, 80, 58, 63, 65, 66, 77, 70, 73, 69, 67, 79, 64, 49, 89, 55, 49, 76, 65, 53, 72, 80, 54, 65, 58, 61, 65, 74, 55, 70, 75, 49, 77, 55, 72, 54, 74, 64, 57, 54, 59, 86, 62, 53, 53, 88, 47, 81, 123, 56, 70, 66, 62, 57, 64, 73, 54, 42, 64, 63, 53, 63, 68, 71, 60, 100, 42, 60, 66, 59, 73, 61, 76, 74, 67, 50, 51, 54, 93, 49, 48, 51, 48, 77, 99, 57, 63, 67, 59, 69, 58, 78, 58, 61, 69, 56, 61, 77, 53, 85, 64, 69, 62, 83, 76, 61, 72, 53, 61, 68, 63, 70, 81, 50, 89, 69, 51, 53, 54, 71, 66, 99, 89, 69, 87, 63, 62, 59, 51, 57, 69, 58, 52, 43, 64, 56, 65, 67, 59, 64, 70, 25, 80, 66, 84, 53, 73, 57, 60, 68, 54, 67, 66, 68, 68, 59, 54, 59, 63, 63, 54, 58, 53, 55, 63, 60, 69, 73, 50, 76, 58, 65, 44, 83, 45, 74, 60, 56, 58, 87, 40, 59, 63, 60, 91, 64, 61, 66, 70, 92, 69, 89, 46, 64, 56, 63, 47, 45, 68, 61, 82, 74, 57, 68, 40, 56, 94, 69, 61, 70, 80, 61, 78, 103, 60, 57, 60, 62, 51, 73, 73, 59, 64, 51, 45, 57, 67, 54, 79, 120, 43, 61, 51, 75, 77, 59, 38, 58, 64, 61, 68, 73, 57, 73, 52, 53, 82, 74, 64, 88, 75, 58, 45, 73, 80, 70, 68, 86, 78, 86, 59, 65, 51, 105, 54, 60, 71, 60, 42, 64, 52, 57, 66, 58, 76, 68, 80, 61, 73, 48, 65, 49, 65, 55, 48, 100, 82, 64, 63, 67, 61, 110, 58, 76, 57, 72, 75, 74, 65, 79, 53, 65, 65, 54, 71, 60, 89, 87, 80, 65, 80, 52, 83, 62, 87, 77, 61, 60, 63, 69, 59, 70, 38, 51, 72, 54, 69, 50, 91, 60, 69, 40, 66, 62, 65, 56, 56, 43, 71, 69, 53, 67, 59, 69, 49, 51, 57, 83, 77, 76, 86, 64, 59, 75, 57, 51, 63, 56, 50, 63, 68, 70, 54, 69, 89, 91, 86, 53, 68, 109, 65, 65, 73, 73, 61, 67, 83, 69, 54, 55, 76, 53, 69, 84, 71, 65, 79, 65, 210, 56, 66, 57, 45, 53, 70, 55, 80, 75, 56, 69, 71, 101, 73, 54, 73, 55, 63, 69, 68, 79, 78, 63, 72, 54, 61, 86, 67, 106, 59, 72, 62, 77, 52, 51, 68, 74, 72, 52, 52, 65, 98, 51, 78, 56, 53, 56, 61, 50, 70, 66, 60, 52, 70, 79, 37, 66, 62, 76, 77, 55, 44, 55, 50, 61, 84, 96, 71, 53, 79, 81, 59, 77, 50, 51, 68, 62, 65, 74, 56, 51, 57, 58, 73, 63, 67, 56, 69, 50, 66, 56, 56, 89, 74, 73, 51, 71, 70, 75, 84, 69, 68, 91, 92, 56, 57, 41, 68, 72, 63, 65, 78, 82, 61, 71, 67, 51, 60, 76, 62, 76, 68, 84, 67, 80, 74, 72, 63, 56, 69, 58, 58, 103, 71, 53, 71, 79, 33, 71, 66, 61, 39, 55, 81, 95, 77, 69, 43, 68, 92, 119, 73, 66, 61, 79, 67, 61, 69, 52, 57, 60, 80, 64, 68, 68, 117, 66, 71, 56, 51, 49, 73, 65, 58, 63, 51, 86, 66, 45, 61, 69, 57, 52, 55, 74, 80, 91, 79, 87, 73, 45, 65, 89, 94, 53, 77, 64, 45, 65, 53, 53, 62, 44, 59, 50, 72, 63, 68, 65, 60, 51, 49, 64, 54, 57, 65, 56, 72, 61, 61, 67, 75, 87, 68, 59, 68, 73, 69, 68, 56, 48, 58, 64, 71, 109, 76, 63, 53, 74, 60, 87, 86, 48, 102, 52, 74, 72, 55, 62, 83, 84, 48, 43, 49, 85, 53, 60, 82, 94, 45, 62, 70, 67, 50, 53, 55, 59, 44, 84, 72, 56, 57, 71, 74, 104, 60, 87, 93, 69, 64, 56, 52, 73, 62, 59, 65, 48, 76, 52, 69, 70, 55, 72, 68, 63, 61, 65, 59, 53, 77, 41, 56, 58, 64, 61, 55, 52, 91, 59, 72, 33, 51, 75, 57, 63, 58, 63, 51, 55, 70, 73, 69, 52, 65, 70, 61, 60, 57, 67, 59, 64, 83, 73, 69, 61, 67, 61, 51, 61, 75, 54, 102, 40, 42, 72, 57, 60, 73, 69, 63, 57, 76, 77, 71, 58, 57, 53, 61, 79, 48, 56, 81, 62, 60, 80, 57, 70, 61, 59, 76, 69, 75, 53, 62, 52, 69, 62, 53, 68, 70, 71, 64, 61, 57, 80, 76, 84, 53, 60, 88, 69, 56, 121, 75, 62, 46, 71, 37, 76, 52, 62, 78, 56, 73, 68, 79, 62, 71, 66, 72, 71, 48, 64, 68, 69, 73, 65, 61, 62, 59, 91, 63, 77, 55, 65, 62, 96, 66, 57, 82, 57, 89, 47, 86, 39, 63, 46, 67, 50, 51, 61, 52, 72, 89, 57, 84, 82, 70, 63, 82, 84, 72, 65, 51, 64, 51, 61, 66, 57, 109, 47, 69, 59, 61, 64, 73, 64, 45, 69, 42, 84, 43, 109, 56, 51, 71, 69, 58, 54, 66, 53, 51, 67, 80, 78, 56, 76, 68, 68, 62, 61, 71, 59, 63, 51, 40, 57, 57, 52, 67, 67, 64, 62, 65, 50, 71, 61, 57, 63, 49, 70, 76, 63, 51, 71, 61, 57, 68, 60, 59, 67, 54, 129, 59, 84, 51, 65, 55, 72, 67, 46, 84, 43, 73, 61, 65, 63, 52, 41, 69, 60, 95, 71, 72, 58, 56, 71, 81, 70, 68, 72, 86, 101, 60, 122, 54, 50, 64, 55, 80, 85, 66, 91, 69, 75, 61, 65, 59, 62, 64, 75, 112, 71, 77, 79, 80, 44, 51, 47, 65, 79, 58, 105, 52, 73, 67, 63, 68, 61, 57, 56, 58, 60, 51, 77, 61, 63, 64, 47, 64, 59, 77, 75, 76, 55, 52, 63, 99, 86, 50, 69, 65, 70, 60, 44, 64, 63, 54, 47, 63, 66, 57, 62, 58, 110, 125, 57, 64, 83, 42, 80, 77, 73, 70, 35, 66, 89, 67, 79, 47, 47, 58, 73, 70, 92, 63, 55, 78, 92, 69, 53, 30, 56, 85, 79, 51, 68, 92, 68, 80, 55, 65, 84, 63, 51, 96, 69, 65, 72, 83, 108, 50, 57, 60, 67, 63, 64, 58, 60, 74, 66, 76, 45, 75, 83, 48, 65, 68, 75, 67, 72, 124, 62, 67, 50, 65, 71, 61, 67, 60, 93, 66, 53, 55, 67, 90, 69, 65, 48, 34, 49, 63, 46, 60, 70, 79, 67, 68, 63, 60, 49, 73, 64, 112, 87, 68, 107, 63, 62, 38, 63, 72, 65, 74, 67, 70, 51, 72, 67, 54, 55, 59, 55, 40, 65, 65, 47, 63, 57, 83, 59, 87, 60, 55, 65, 68, 59, 62, 74, 59, 66, 55, 62, 50, 97, 65, 58, 69, 54, 50, 71, 74, 61, 35, 60, 65, 69, 55, 53, 81, 65, 61, 70, 72, 61, 67, 55, 52, 57, 53, 39, 60, 67, 68, 45, 60, 54, 68, 62, 70, 47, 86, 49, 65, 55, 60, 59, 65, 63, 67, 48, 64, 70, 64, 72, 62, 59, 80, 93, 79, 68, 72, 86, 69, 61, 79, 62, 75, 93, 44, 63, 65, 60, 68, 63, 81, 60, 70, 63, 68, 70, 60, 75, 52, 75, 92, 79, 73, 67, 52, 72, 48, 53, 70, 61, 74, 56, 61, 79, 64, 61, 96, 66, 81, 57, 71, 67, 83, 66, 60, 81, 78, 91, 52, 60, 55, 77, 55, 52, 93, 51, 62, 60, 58, 59, 65, 73, 60, 73, 52, 50, 80, 60, 88, 87, 64, 74, 78, 51, 69, 81, 78, 88, 61, 62, 77, 60, 47, 81, 60, 68, 52, 49, 60, 54, 85, 67, 56, 79, 75, 65, 67, 57, 61, 60, 62, 58, 62, 110, 69, 66, 66, 80, 65, 71, 55, 36, 71, 57, 41, 80, 68, 101, 65, 68, 53, 60, 56, 65, 68, 72, 59, 56, 57, 71, 66, 59, 47, 73, 60, 76, 84, 51, 56, 56, 67, 68, 100, 46, 58, 51, 58, 68, 54, 73, 92, 65, 67, 61, 55, 49, 80, 43, 68, 45, 71, 77, 66, 100, 86, 50, 57, 61, 51, 55, 60, 72, 62, 59, 68, 64, 69, 69, 67, 81, 51, 43, 98, 111, 42, 66, 62, 103, 72, 53, 62, 61, 46, 51, 50, 51, 66, 56, 61, 82, 90, 82, 93, 82, 63, 79, 69, 130, 53, 61, 67, 60, 65, 59, 47, 59, 69, 55, 73, 49, 59, 79, 55, 89, 80, 57, 48, 61, 54, 73, 50, 51, 49, 61, 52, 56, 64, 67, 65, 72, 81, 57, 62, 70, 58, 69, 65, 133, 65, 71, 41, 60, 65, 68, 77, 84, 129, 77, 79, 55, 59, 74, 61, 58, 71, 68, 83, 50, 42, 62, 59, 50, 59, 67, 55, 57, 102, 41, 77, 55, 64, 126, 55, 54, 65, 66, 67, 66, 63, 55, 47, 76, 62, 73, 82, 54, 68, 64, 48, 67, 74, 69, 56, 81, 70, 67, 71, 64, 56, 59, 73, 72, 70, 67, 63, 52, 63, 67, 98, 87, 91, 45, 49, 72, 68, 61, 76, 65, 74, 88, 54, 56, 47, 57, 70, 77, 68, 61, 55, 57, 53, 81, 71, 67, 60, 96, 86, 104, 61, 57, 73, 59, 54, 85, 53, 49, 48, 66, 52, 54, 76, 78, 53, 52, 64, 52, 50, 62, 57, 72, 71, 60, 89, 58, 65, 89, 93, 75, 61, 62, 61, 63, 83, 77, 62, 56, 54, 59, 66, 74, 58, 49, 73, 31, 59, 49, 52, 75, 51, 81, 69, 100, 67, 60, 83, 50, 83, 66, 98, 60, 82, 56, 67, 69, 80, 100, 53, 136, 75, 80, 68, 39, 69, 59, 54, 63, 66, 65, 58, 65, 59, 74, 65, 78, 64, 73, 53, 59, 96, 72, 105, 58, 64, 69, 67, 71, 70, 72, 59, 69, 52, 51, 74, 59, 122, 55, 55, 58, 45, 54, 70, 69, 71, 64, 52, 58, 55, 54, 70, 40, 70, 62, 82, 73, 56, 74, 58, 65, 76, 54, 50, 56, 56, 36, 64, 64, 71, 42, 44, 62, 56, 56, 63, 85, 82, 68, 74, 60, 58, 51, 60, 58, 58, 52, 49, 69, 59, 61, 63, 41, 57, 60, 42, 75, 97, 84, 71, 73, 71, 83, 60, 52, 52, 49, 54, 77, 65, 54, 82, 125, 92, 69, 69, 69, 40, 59, 95, 43, 69, 76, 81, 52, 66, 65, 113, 47, 53, 49, 37, 50, 77, 68, 71, 45, 53, 91, 71, 56, 61, 82, 95, 53, 71, 61, 37, 63, 71, 44, 48, 74, 55, 47, 51, 52, 87, 71, 62, 87, 62, 66, 60, 63, 79, 50, 72, 48, 66, 63, 71, 68, 52, 99, 75, 55, 58, 85, 64, 65, 72, 70, 76, 88, 54, 94, 66, 91, 79, 60, 80, 99, 77, 63, 71, 64, 50, 67, 64, 70, 57, 78, 87, 114, 72, 45, 78, 83, 65, 77, 58, 52, 49, 63, 42, 63, 73, 80, 54, 66, 60, 43, 67, 46, 63, 79, 65, 70, 84, 80, 49, 93, 60, 52, 45, 81, 42, 115, 70, 84, 89, 43, 53, 53, 77, 54, 41, 53, 77, 86, 44, 55, 58, 61, 64, 53, 48, 51, 71, 48, 61, 80, 52, 48, 77, 49, 48, 50, 58, 69, 104, 55, 81, 91, 67, 60, 73, 49, 64, 148, 59, 64, 72, 73, 65, 80, 57, 72, 59, 65, 57, 29, 56, 67, 76, 58, 61, 70, 62, 65, 66, 64, 41, 45, 68, 84, 43, 85, 60, 83, 111, 56, 67, 65, 58, 60, 71, 104, 67, 59, 91, 72, 48, 81, 42, 87, 88, 73, 86, 61, 62, 62, 82, 81, 66, 74, 84, 64, 53, 49, 56, 47, 87, 80, 49, 63, 49, 61, 50, 109, 56, 53, 50, 65, 59, 59, 68, 85, 115, 80, 87, 43, 48, 68, 63, 63, 50, 89, 63, 45, 76, 65, 59, 90, 82, 57, 43, 47, 57, 62, 75, 50, 70, 79, 56, 75, 64, 71, 58, 62, 60, 53, 69, 51, 100, 64, 59, 34, 82, 69, 77, 50, 73, 55, 113, 67, 58, 72, 73, 73, 67, 62, 73, 105, 85, 99, 65, 70, 63, 53, 54, 63, 50, 58, 76, 48, 50, 57, 74, 66, 55, 48, 55, 87, 80, 46, 42, 58, 57, 66, 98, 68, 64, 49, 71, 61, 43, 71, 78, 71, 86, 58, 64, 87, 74, 52, 56, 75, 64, 71, 59, 70, 34, 60, 85, 98, 62, 90, 64, 82, 69, 87, 69, 87, 61, 58, 48, 82, 78, 96, 62, 64, 69, 62, 70, 72, 55, 73, 67, 64, 88, 54, 56, 64, 54, 48, 67, 82, 80, 67, 61, 72, 80, 80, 60, 68, 59, 52, 76, 61, 69, 69, 68, 62, 59, 63, 48, 67, 84, 65, 68, 61, 63, 41, 72, 67, 68, 44, 51, 64, 71, 67, 68, 94, 78, 56, 84, 62, 52, 78, 57, 81, 87, 58, 41, 72, 45, 57, 58, 59, 128, 55, 74, 77, 62, 46, 58, 64, 60, 57, 74, 55, 67, 42, 60, 51, 70, 75, 77, 62, 54, 103, 64, 47, 63, 83, 140, 64, 58, 88, 69, 91, 48, 58, 69, 102, 51, 87, 59, 60, 76, 51, 66, 50, 68, 78, 78, 66, 60, 75, 60, 83, 79, 88, 49, 66, 66, 59, 68, 76, 55, 63, 57, 66, 71, 47, 54, 62, 90, 71, 62, 47, 58, 70, 57, 97, 63, 96, 69, 100, 62, 54, 76, 71, 82, 78, 74, 76, 65, 85, 63, 63, 62, 57, 86, 57, 46, 63, 45, 71, 78, 65, 64, 88, 59, 64, 61, 54, 67, 54, 54, 79, 80, 85, 80, 85, 52, 73, 50, 80, 83, 82, 63, 70, 52, 44, 69, 72, 56, 54, 86, 66, 57, 56, 60, 49, 59, 71, 69, 50, 60, 91, 78, 74, 58, 69, 70, 80, 91, 80, 59, 71, 65, 56, 64, 48, 73, 63, 56, 60, 85, 83, 88, 69, 64, 71, 70, 54, 69, 70, 91, 54, 82, 72, 82, 83, 54, 101, 57, 62, 72, 83, 93, 58, 52, 74, 38, 55, 61, 55, 63, 83, 50, 83, 54, 88, 60, 60, 58, 71, 55, 66, 59, 69, 48, 75, 57, 66, 66, 61, 62, 70, 73, 55, 67, 53, 50, 73, 56, 53, 52, 60, 69, 52, 48, 95, 50, 118, 58, 51, 121, 37, 52, 67, 58, 60, 62, 40, 85, 50, 86, 77, 58, 79, 41, 56, 46, 50, 83, 72, 90, 83, 61, 53, 70, 55, 73, 87, 54, 76, 62, 72, 71, 43, 64, 59, 74, 62, 84, 63, 38, 91, 47, 62, 43, 53, 72, 32, 63, 63, 79, 67, 60, 69, 54, 66, 64, 63, 43, 57, 64, 56, 61, 67, 48, 87, 51, 70, 63, 87, 63, 62, 67, 54, 45, 62, 67, 66, 86, 52, 72, 105, 75, 61, 62, 59, 91, 68, 74, 60, 79, 54, 69, 53, 80, 76, 76, 82, 64, 76, 53, 60, 87, 52, 44, 85, 68, 130, 83, 142, 59, 62, 58, 82, 77, 73, 57, 60, 55, 53, 68, 65, 76, 79, 82, 47, 109, 60, 55, 69, 72, 62, 63, 70, 95, 37, 67, 56, 56, 43, 41, 79, 63, 72, 58, 69, 85, 58, 75, 73, 80, 75, 76, 61, 58, 52, 60, 62, 62, 54, 85, 78, 62, 57, 51, 93, 65, 56, 37, 74, 71, 65, 68, 84, 94, 67, 56, 86, 60, 54, 73, 58, 76, 70, 59, 51, 87, 70, 78, 34, 55, 50, 55, 65, 64, 78, 58, 45, 74, 64, 70, 52, 42, 63, 64, 76, 51, 49, 66, 68, 76, 68, 56, 77, 85, 93, 60, 84, 83, 77, 84, 72, 56, 58, 64, 58, 57, 56, 43, 63, 76, 56, 52, 61, 77, 46, 104, 81, 63, 87, 64, 51, 85, 54, 98, 58, 45, 62, 59, 49, 57, 51, 83, 121, 72, 63, 53, 57, 59, 60, 77, 55, 68, 123, 56, 67, 69, 55, 66, 57, 68, 64, 72, 73, 73, 58, 63, 51, 78, 80, 59, 87, 55, 74, 47, 119, 59, 49, 57, 59, 56, 77, 68, 59, 73, 66, 55, 50, 61, 57, 64, 55, 53, 53, 68, 55, 58, 64, 74, 88, 82, 57, 63, 64, 50, 72, 71, 65, 44, 49, 68, 65, 63, 89, 81, 64, 58, 61, 66, 55, 68, 58, 77, 73, 75, 56, 67, 65, 65, 84, 68, 64, 62, 61, 70, 64, 54, 75, 43, 47, 73, 66, 87, 75, 72, 69, 62, 61, 54, 63, 68, 92, 53, 56, 54, 77, 66, 63, 47, 57, 71, 86, 53, 59, 58, 69, 47, 73, 62, 43, 49, 60, 52, 59, 107, 78, 70, 58, 73, 72, 53, 78, 68, 72, 69, 57, 65, 62, 67, 49, 75, 67, 80, 69, 61, 62, 70, 65, 62, 53, 114, 69, 84, 66, 43, 62, 57, 54, 84, 72, 128, 59, 87, 48, 70, 62, 64, 64, 62, 65, 55, 78, 52, 59, 65, 50, 89, 50, 43, 56, 61, 75, 54, 60, 59, 78, 57, 49, 63, 51, 63, 62, 71, 84, 88, 53, 55, 85, 74, 99, 81, 78, 58, 61, 65, 57, 80, 57, 84, 60, 78, 62, 48, 53, 68, 57, 95, 50, 59, 74, 64, 89, 48, 63, 52, 60, 75, 81, 70, 70, 55, 69, 88, 63, 62, 60, 67, 53, 64, 47, 62, 71, 63, 43, 75, 64, 49, 56, 53, 53, 53, 61, 82, 51, 63, 59, 51, 62, 84, 64, 87, 64, 55, 60, 62, 56, 58, 65, 60, 72, 88, 58, 76, 95, 71, 73, 48, 69, 69, 52, 79, 71, 67, 62, 103, 44, 61, 62, 45, 40, 72, 59, 91, 79, 68, 97, 78, 69, 67, 74, 63, 65, 69, 106, 58, 78, 46, 53, 72, 69, 64, 71, 79, 56, 52, 82, 54, 61, 62, 68, 79, 53, 70, 70, 70, 65, 79, 60, 48, 73, 77, 58, 53, 75, 47, 70, 77, 59, 67, 61, 69, 84, 68, 61, 57, 47, 82, 61, 72, 53, 59, 74, 60, 46, 65, 58, 103, 76, 62, 69, 62, 80, 63, 74, 56, 62, 73, 63, 102, 65, 57, 57, 57, 85, 71, 47, 46, 80, 65, 69, 65, 65, 48, 62, 51, 68, 79, 53, 86, 50, 56, 70, 50, 72, 77, 79, 62, 70, 58, 54, 79, 69, 76, 75, 61, 85, 61, 67, 56, 83, 61, 62, 51, 56, 69, 60, 58, 84, 84, 65, 47, 74, 63, 65, 52, 65, 46, 66, 61, 120, 71, 69, 54, 50, 57, 57, 65, 82, 55, 44, 67, 61, 56, 116, 65, 62, 74, 65, 80, 83, 76, 58, 63, 84, 77, 67, 70, 87, 64, 51, 55, 89, 68, 69, 54, 66, 77, 55, 70, 52, 47, 58, 68, 67, 88, 62, 49, 71, 74, 59, 68, 73, 84, 67, 66, 98, 95, 83, 62, 58, 70, 117, 118, 60, 58, 70, 53, 89, 82, 84, 74, 79, 60, 61, 77, 57, 74, 69, 52, 64, 57, 63, 64, 51, 59, 55, 81, 62, 75, 68, 37, 72, 57, 73, 65, 56, 58, 63, 62, 71, 90, 62, 61, 72, 63, 48, 62, 56, 73, 55, 58, 52, 67, 55, 41, 83, 74, 59, 67, 51, 64, 65, 71, 50, 75, 56, 74, 94, 68, 67, 72, 70, 65, 59, 56, 66, 74, 54, 56, 47, 63, 54, 95, 67, 73, 69, 47, 63, 64, 74, 58, 67, 58, 64, 60, 64, 74, 74, 76, 48, 35, 75, 57, 69, 86, 57, 73, 70, 62, 59, 67, 67, 56, 63, 46, 84, 54, 64, 53, 74, 74, 55, 74, 71, 53, 67, 60, 61, 56, 80, 65, 66, 66, 61, 60, 93, 54, 58, 62, 55, 73, 56, 43, 55, 60, 73, 63, 47, 60, 114, 65, 53, 69, 58, 62, 60, 24, 74, 58, 72, 65, 64, 55, 57, 51, 71, 40, 77, 92, 62, 54, 82, 53, 59, 58, 66, 50, 74, 60, 53, 67, 58, 56, 51, 78, 88, 71, 89, 77, 74, 77, 49, 53, 111, 80, 54, 101, 86, 46, 45, 68, 75, 69, 56, 53, 56, 80, 56, 57, 84, 60, 61, 65, 46, 59, 68, 55, 70, 65, 61, 69, 68, 86, 53, 89, 157, 54, 56, 55, 65, 86, 61, 77, 61, 49, 38, 61, 69, 70, 67, 78, 62, 105, 78, 81, 73, 73, 63, 66, 38, 100, 79, 55, 70, 77, 79, 70, 52, 63, 68, 63, 64, 62, 53, 64, 180, 63, 70, 67, 62, 81, 75, 72, 78, 72, 59, 63, 66, 49, 51, 56, 110, 60, 72, 90, 57, 66, 54, 72, 59, 72, 61, 69, 55, 54, 69, 57, 64, 66, 63, 61, 76, 83, 133, 120, 54, 69, 72, 106, 95, 66, 62, 72, 92, 67, 65, 61, 63, 63, 72, 68, 89, 56, 60, 67, 63, 96, 64, 69, 63, 62, 47, 63, 56, 44, 58, 66, 57, 67, 76, 42, 66, 71, 60, 68, 65, 66, 61, 48, 52, 71, 71, 75, 64, 86, 77, 73, 52, 55, 74, 55, 44, 68, 56, 64, 47, 73, 82, 90, 85, 71, 71, 41, 71, 48, 56, 83, 60, 76, 38, 55, 87, 48, 61, 62, 57, 100, 57, 59, 66, 80, 68, 86, 59, 95, 57, 50, 74, 56, 84, 97, 80, 67, 73, 57, 98, 54, 61, 63, 65, 117, 59, 66, 61, 100, 44, 63, 62, 54, 70, 65, 84, 53, 59, 80, 75, 60, 95, 43, 64, 90, 68, 47, 71, 73, 134, 80, 55, 47, 87, 55, 65, 59, 57, 77, 88, 70, 83, 75, 60, 71, 68, 71, 53, 72, 60, 58, 60, 86, 69, 77, 68, 55, 39, 65, 71, 74, 64, 82, 67, 61, 51, 67, 56, 75, 72, 72, 80, 60, 57, 62, 54, 59, 50, 61, 54, 70, 62, 51, 47, 52, 83, 75, 60, 78, 55, 68, 64, 75, 81, 48, 54, 46, 58, 69, 51, 60, 68, 60, 61, 67, 59, 86, 67, 106, 61, 56, 64, 68, 73, 73, 68, 56, 73, 56, 61, 64, 51, 74, 78, 55, 62, 68, 79, 65, 62, 56, 84, 67, 70, 60, 77, 36, 72, 68, 71, 41, 45, 82, 81, 56, 56, 59, 73, 51, 62, 72, 49, 65, 63, 72, 57, 75, 79, 77, 53, 45, 63, 74, 60, 69, 49, 70, 59, 57, 68, 65, 62, 71, 64, 62, 60, 58, 64, 62, 85, 72, 56, 70, 46, 82, 59, 60, 66, 61, 81, 58, 81, 66, 58, 73, 59, 74, 56, 66, 61, 81, 100, 59, 67, 60, 63, 58, 60, 72, 50, 69, 56, 71, 71, 48, 69, 57, 62, 62, 54, 79, 43, 73, 63, 65, 69, 53, 86, 53, 72, 94, 73, 128, 63, 52, 80, 66, 53, 63, 79, 77, 69, 67, 104, 66, 63, 81, 58, 75, 70, 82, 63, 76, 75, 67, 77, 67, 66, 63, 55, 67, 58, 66, 64, 70, 66, 75, 59, 53, 66, 70, 51, 64, 61, 84, 59, 69, 50, 52, 64, 70, 82, 63, 66, 66, 67, 98, 89, 67, 104, 71, 44, 58, 80, 61, 69, 39, 65, 64, 58, 47, 58, 70, 61, 49, 120, 61, 81, 61, 57, 65, 57, 67, 53, 79, 72, 60, 60, 68, 66, 52, 69, 57, 59, 75, 58, 63, 72, 64, 68, 67, 55, 71, 77, 53, 75, 80, 66, 47, 54, 66, 58, 41, 46, 66, 60, 72, 65, 63, 54, 60, 70, 60, 70, 66, 59, 75, 69, 72, 51, 62, 60, 56, 52, 59, 55, 64, 56, 62, 74, 50, 64, 99, 76, 71, 64, 50, 57, 65, 70, 59, 56, 56, 64, 71, 57, 68, 73, 64, 69, 57, 74, 76, 78, 67, 67, 49, 48, 79, 61, 61, 62, 78, 66, 82, 75, 68, 58, 53, 52, 96, 57, 48, 64, 72, 61, 54, 61, 55, 41, 56, 65, 68, 67, 65, 47, 62, 70, 71, 62, 56, 63, 79, 81, 56, 56, 74, 67, 69, 83, 56, 62, 125, 75, 51, 73, 77, 69, 75, 57, 58, 78, 69, 65, 71, 62, 80, 76, 49, 63, 68, 63, 56, 69, 52, 62, 59, 59, 57, 87, 133, 61, 61, 65, 48, 66, 52, 81, 62, 63, 75, 61, 78, 59, 65, 80, 55, 54, 61, 63, 57, 72, 72, 73, 61, 73, 59, 72, 61, 63, 61, 69, 72, 82, 61, 55, 82, 68, 60, 60, 65, 79, 50, 64, 59, 61, 66, 59, 53, 79, 83, 51, 61, 68, 67, 63, 59, 51, 68, 40, 61, 105, 75, 73, 65, 54, 71, 64, 59, 58, 61, 68, 57, 88, 60, 70, 57, 76, 66, 56, 90, 65, 57, 57, 84, 61, 65, 63, 44, 98, 66, 71, 51, 68, 64, 68, 64, 44, 50, 61, 45, 56, 60, 61, 92, 75, 58, 61, 81, 68, 67, 142, 59, 65, 60, 73, 63, 67, 71, 51, 70, 72, 75, 42, 54, 54, 75, 73, 58, 61, 58, 61, 51, 74, 53, 74, 81, 60, 72, 89, 93, 76, 63, 52, 68, 55, 64, 63, 72, 64, 65, 51, 59, 69, 63, 63, 67, 86, 71, 78, 73, 84, 68, 66, 73, 60, 61, 92, 83, 59, 71, 70, 64, 68, 77, 66, 63, 65, 73, 121, 72, 77, 60, 55, 108, 60, 56, 58, 61, 71, 62, 86, 75, 68, 56, 76, 63, 74, 56, 51, 73, 65, 59, 84, 73, 59, 63, 63, 64, 55, 77, 66, 56, 60, 61, 65, 38, 96, 67, 95, 131, 60, 63, 56, 60, 56, 59, 70, 83, 81, 60, 59, 55, 80, 74, 71, 63, 60, 84, 67, 61, 61, 61, 73, 63, 50, 67, 55, 61, 59, 56, 75, 62, 71, 76, 76, 60, 58, 73, 62, 69, 57, 51, 58, 55, 62, 88, 132, 61, 62, 89, 83, 66, 58, 76, 72, 46, 68, 49, 76, 80, 70, 71, 65, 85, 61, 74, 54, 52, 70, 73, 71, 48, 62, 52, 61, 65, 75, 61, 65, 81, 75, 71, 56, 65, 68, 106, 61, 54, 74, 54, 53, 63, 86, 57, 72, 55, 65, 53, 61, 53, 66, 59, 57, 86, 61, 72, 94, 71, 55, 108, 57, 67, 100, 71, 67, 49, 62, 53, 55, 55, 62, 77, 59, 55, 58, 74, 82, 55, 48, 78, 68, 51, 62, 54, 84, 61, 68, 69, 60, 47, 71, 70, 71, 94, 54, 58, 60, 67, 58, 63, 56, 68, 57, 58, 55, 54, 70, 65, 57, 61, 62, 81, 63, 70, 61, 57, 65, 74, 64, 70, 56, 70, 51, 66, 63, 92, 61, 108, 76, 49, 69, 75, 52, 56, 71, 58, 57, 56, 91, 78, 121, 86, 73, 73, 75, 64, 53, 66, 64, 49, 78, 63, 71, 60, 61, 58, 89, 53, 55, 76, 57, 63, 59, 64, 59, 57, 82, 76, 56, 61, 56, 53, 61, 72, 57, 62, 54, 81, 64, 74, 57, 71, 54, 68, 54, 84, 69, 93, 60, 60, 71, 64, 60, 57, 57, 52, 60, 73, 64, 56, 59, 49, 62, 71, 58, 67, 67, 87, 62, 65, 53, 65, 64, 69, 74, 51, 65, 71, 58, 47, 70, 60, 56, 94, 61, 103, 48, 67, 67, 52, 73, 80, 60, 73, 60, 111, 79, 76, 69, 59, 71, 80, 56, 72, 61, 55, 70, 52, 68, 74, 78, 69, 59, 63, 61, 63, 48, 48, 64, 64, 55, 60, 64, 49, 54, 58, 60, 64, 62, 68, 45, 62, 67, 71, 68, 55, 59, 65, 85, 62, 76, 63, 61, 72, 34, 68, 58, 69, 56, 98, 51, 59, 71, 56, 70, 62, 64, 58, 55, 80, 66, 78, 53, 66, 63, 64, 64, 54, 62, 61, 76, 98, 81, 63, 72, 57, 59, 73, 53, 69, 65, 65, 73, 43, 69, 64, 85, 72, 66, 65, 62, 74, 81, 67, 59, 54, 74, 62, 63, 149, 61, 61, 59, 55, 69, 51, 88, 61, 72, 71, 55, 62, 76, 78, 65, 74, 53, 59, 42, 54, 61, 57, 110, 82, 65, 71, 68, 81, 68, 58, 71, 51, 53, 93, 87, 58, 86, 53, 69, 58, 70, 69, 92, 82, 66, 66, 65, 84, 83, 58, 80, 59, 47, 57, 49, 67, 80, 54, 56, 65, 56, 58, 81, 54, 69, 54, 61, 76, 59, 83, 89, 62, 63, 74, 66, 68, 53, 58, 72, 86, 80, 66, 55, 61, 74, 57, 71, 61, 56, 69, 52, 78, 82, 72, 66, 75, 49, 65, 55, 69, 70, 46, 69, 77, 81, 74, 45, 106, 53, 41, 81, 73, 56, 62, 81, 66, 99, 50, 61, 60, 74, 57, 119, 67, 137, 73, 68, 57, 62, 84, 61, 53, 82, 68, 80, 43, 52, 78, 54, 71, 58, 70, 56, 68, 77, 64, 57, 68, 74, 61, 60, 57, 72, 65, 59, 100, 65, 64, 72, 72, 77, 51, 56, 44, 81, 46, 65, 49, 62, 57, 70, 62, 56, 43, 57, 52, 57, 60, 70, 57, 64, 59, 78, 62, 65, 62, 64, 78, 66, 63, 66, 55, 103, 71, 57, 74, 55, 56, 62, 53, 62, 67, 62, 74, 64, 53, 80, 74, 67, 69, 39, 68, 77, 71, 51, 56, 57, 88, 76, 71, 53, 66, 50, 68, 64, 59, 61, 77, 63, 57, 74, 64, 57, 53, 84, 46, 68, 86, 78, 77, 50, 60, 70, 47, 65, 46, 60, 44, 54, 92, 82, 72, 57, 45, 52, 66, 61, 50, 59, 72, 52, 68, 56, 71, 88, 68, 62, 43, 66, 45, 87, 68, 84, 57, 56, 63, 60, 63, 78, 60, 83, 72, 68, 89, 48, 100, 78, 79, 64, 60, 76, 68, 70, 46, 60, 54, 69, 57, 87, 77, 70, 47, 73, 95, 64, 96, 58, 60, 58, 71, 67, 58, 66, 70, 60, 65, 52, 92, 70, 52, 68, 83, 46, 64, 52, 48, 81, 110, 63, 69, 66, 56, 60, 75, 68, 59, 60, 65, 51, 41, 64, 47, 40, 53, 61, 86, 79, 58, 68, 61, 68, 58, 78, 126, 60, 48, 64, 88, 47, 57, 67, 62, 72, 50, 59, 47, 121, 46, 82, 62, 59, 53, 69, 76, 57, 43, 57, 62, 59, 75, 74, 47, 57, 63, 62, 82, 64, 61, 58, 67, 66, 58, 63, 57, 60, 60, 78, 64, 55, 85, 63, 64, 62, 62, 71, 55, 89, 69, 69, 73, 82, 58, 70, 75, 47, 64, 86, 67, 63, 109, 85, 66, 65, 50, 90, 67, 64, 65, 67, 95, 65, 57, 61, 63, 63, 80, 70, 41, 62, 79, 61, 81, 57, 54, 54, 60, 72, 46, 52, 50, 70, 77, 54, 59, 60, 60, 56, 66, 60, 63, 61, 56, 80, 78, 62, 70, 70, 48, 57, 79, 46, 58, 63, 72, 64, 62, 76, 44, 64, 53, 52, 62, 78, 70, 66, 68, 69, 61, 55, 50, 60, 55, 58, 64, 62, 76, 77, 74, 95, 81, 61, 64, 66, 73, 60, 83, 66, 94, 61, 66, 60, 66, 65, 48, 58, 45, 59, 50, 61, 57, 82, 59, 67, 59, 46, 63, 75, 59, 67, 57, 80, 70, 56, 59, 73, 65, 98, 49, 66, 58, 78, 64, 81, 57, 59, 57, 57, 69, 67, 73, 67, 54, 94, 79, 71, 89, 72, 62, 71, 70, 66, 63, 48, 60, 83, 75, 64, 69, 48, 63, 68, 51, 50, 66, 35, 63, 88, 69, 65, 75, 65, 78, 55, 86, 66, 60, 62, 73, 38, 73, 67, 91, 54, 75, 101, 44, 59, 64, 76, 57, 70, 61, 48, 66, 47, 79, 96, 72, 85, 69, 54, 84, 49, 61, 51, 71, 85, 69, 51, 67, 62, 66, 79, 77, 99, 69, 66, 66, 74, 63, 51, 48, 64, 69, 57, 64, 55, 79, 67, 50, 57, 80, 80, 77, 59, 74, 84, 60, 81, 65, 63, 68, 61, 64, 81, 46, 55, 59, 67, 64, 72, 67, 60, 63, 57, 76, 72, 73, 51, 65, 83, 57, 62, 49, 66, 64, 57, 77, 61, 68, 56, 55, 78, 64, 62, 52, 51, 98, 59, 51, 56, 65, 94, 59, 52, 47, 49, 54, 66, 70, 52, 61, 75, 74, 98, 41, 71, 64, 58, 55, 44, 73, 68, 60, 62, 59, 61, 90, 49, 58, 60, 53, 62, 157, 48, 58, 60, 65, 53, 57, 53, 69, 77, 69, 65, 88, 89, 56, 54, 42, 56, 58, 55, 53, 62, 61, 60, 73, 112, 57, 63, 44, 53, 61, 81, 58, 62, 54, 71, 58, 64, 71, 51, 60, 75, 44, 65, 67, 52, 73, 68, 66, 97, 82, 89, 64, 142, 86, 54, 72, 77, 49, 55, 55, 73, 82, 64, 66, 63, 75, 81, 71, 74, 58, 53, 64, 69, 65, 62, 72, 66, 55, 61, 68, 69, 71, 61, 55, 67, 90, 51, 50, 63, 69, 61, 55, 68, 64, 64, 51, 55, 96, 75, 49, 88, 48, 59, 84, 64, 69, 49, 76, 70, 64, 50, 61, 59, 67, 68, 50, 65, 66, 94, 56, 70, 66, 73, 73, 66, 82, 55, 91, 82, 78, 59, 46, 53, 56, 64, 49, 57, 54, 64, 68, 50, 66, 67, 50, 73, 70, 61, 88, 68, 70, 78, 54, 64, 105, 60, 92, 143, 67, 53, 56, 65, 69, 64, 65, 56, 86, 68, 75, 72, 56, 51, 100, 90, 75, 83, 67, 59, 56, 71, 53, 54, 55, 49, 74, 73, 58, 67, 56, 45, 55, 58, 53, 79, 52, 64, 70, 56, 68, 59, 57, 77, 87, 80, 54, 61, 79, 49, 63, 73, 72, 86, 85, 59, 58, 64, 71, 65, 60, 68, 69, 54, 69, 54, 66, 56, 51, 64, 61, 84, 67, 54, 73, 53, 59, 81, 65, 67, 64, 54, 104, 65, 95, 89, 55, 58, 69, 58, 67, 69, 49, 67, 64, 66, 48, 57, 68, 70, 53, 70, 55, 72, 57, 77, 63, 65, 72, 61, 53, 75, 59, 79, 89, 78, 84, 64, 76, 65, 73, 70, 79, 62, 68, 44, 83, 60, 68, 80, 55, 69, 57, 61, 108, 76, 65, 70, 61, 89, 47, 54, 82, 74, 79, 62, 56, 76, 47, 56, 77, 50, 68, 77, 72, 59, 53, 61, 60, 76, 84, 67, 63, 59, 75, 72, 49, 60, 65, 56, 55, 67, 63, 57, 57, 63, 52, 101, 52, 56, 52, 65, 72, 160, 50, 68, 70, 67, 63, 54, 56, 57, 71, 60, 80, 61, 54, 59, 57, 58, 79, 61, 62, 51, 44, 85, 72, 56, 55, 54, 70, 63, 71, 74, 76, 53, 62, 72, 67, 55, 70, 66, 68, 67, 59, 54, 51, 57, 59, 67, 66, 66, 55, 64, 79, 60, 72, 81, 84, 61, 74, 57, 57, 60, 52, 87, 63, 75, 61, 62, 50, 63, 66, 96, 60, 73, 112, 80, 58, 85, 56, 75, 49, 67, 65, 63, 65, 56, 69, 39, 57, 58, 74, 66, 63, 69, 76, 72, 82, 87, 67, 78, 50, 58, 46, 77, 96, 57, 61, 52, 55, 58, 58, 64, 86, 65, 69, 61, 65, 55, 89, 67, 58, 74, 73, 72, 53, 74, 87, 58, 49, 91, 72, 47, 68, 76, 56, 92, 52, 56, 94, 60, 67, 55, 47, 69, 64, 63, 69, 72, 43, 76, 61, 59, 76, 60, 68, 93, 57, 62, 61, 47, 58, 69, 68, 64, 75, 49, 65, 66, 82, 67, 63, 49, 73, 53, 72, 43, 57, 70, 64, 62, 60, 66, 88, 56, 58, 71, 74, 63, 68, 164, 67, 52, 67, 51, 63, 76, 57, 74, 54, 62, 80, 70, 62, 68, 51, 59, 61, 71, 55, 58, 62, 58, 56, 60, 64, 78, 51, 82, 49, 79, 63, 63, 80, 72, 60, 82, 51, 61, 92, 72, 55, 70, 78, 75, 55, 71, 67, 58, 69, 76, 90, 81, 79, 61, 53, 73, 60, 73, 58, 48, 63, 60, 47, 64, 71, 56, 75, 79, 63, 61, 69, 56, 55, 72, 53, 74, 60, 68, 55, 104, 45, 54, 64, 52, 68, 52, 68, 66, 71, 54, 60, 91, 57, 56, 57, 49, 76, 71, 51, 63, 80, 67, 80, 61, 64, 67, 84, 59, 59, 60, 51, 62, 62, 65, 67, 78, 65, 76, 71, 62, 89, 75, 51, 56, 63, 44, 64, 67, 60, 121, 77, 70, 61, 67, 49, 71, 65, 62, 83, 49, 61, 62, 43, 48, 62, 63, 68, 57, 84, 64, 51, 59, 64, 67, 104, 40, 60, 64, 68, 119, 49, 106, 61, 33, 55, 68, 83, 69, 68, 62, 64, 59, 55, 73, 74, 68, 66, 77, 101, 58, 50, 58, 67, 56, 52, 60, 48, 69, 76, 94, 65, 63, 75, 59, 67, 58, 61, 63, 65, 43, 62, 100, 43, 77, 69, 64, 57, 60, 71, 64, 66, 56, 56, 83, 105, 73, 66, 96, 65, 76, 56, 53, 66, 63, 70, 71, 65, 61, 59, 54, 66, 87, 136, 50, 69, 71, 73, 87, 57, 55, 60, 55, 63, 63, 61, 62, 62, 69, 67, 65, 53, 69, 75, 50, 88, 51, 74, 65, 77, 77, 49, 80, 62, 70, 83, 67, 54, 65, 62, 109, 62, 45, 72, 62, 61, 65, 52, 69, 68, 46, 65, 63, 70, 63, 60, 52, 58, 65, 66, 61, 95, 71, 53, 65, 59, 91, 63, 69, 139, 63, 68, 67, 62, 66, 62, 79, 69, 103, 72, 73, 56, 52, 53, 69, 56, 71, 61, 68, 63, 70, 51, 90, 62, 62, 92, 51, 48, 64, 67, 66, 118, 74, 71, 93, 62, 57, 69, 55, 63, 51, 53, 65, 72, 48, 67, 61, 59, 65, 69, 64, 55, 56, 70, 68, 61, 63, 59, 59, 87, 66, 43, 56, 57, 71, 55, 71, 61, 59, 48, 65, 68, 79, 61, 56, 51, 49, 57, 60, 60, 65, 44, 66, 59, 63, 63, 57, 60, 44, 53, 55, 63, 53, 50, 72, 53, 64, 70, 67, 56, 65, 63, 78, 71, 69, 83, 59, 72, 49, 66, 70, 65, 65, 71, 75, 69, 53, 76, 52, 72, 64, 59, 64, 39, 85, 85, 68, 62, 68, 84, 72, 51, 79, 63, 55, 75, 114, 66, 76, 69, 66, 81, 67, 79, 71, 47, 59, 75, 88, 69, 82, 61, 71, 60, 67, 68, 64, 71, 61, 58, 46, 71, 79, 86, 71, 61, 58, 61, 63, 63, 49, 68, 70, 49, 69, 67, 62, 50, 83, 68, 71, 68, 62, 64, 54, 56, 59, 65, 61, 47, 44, 44, 71, 68, 69, 57, 67, 56, 92, 71, 65, 90, 70, 61, 59, 83, 52, 47, 60, 75, 92, 69, 62, 57, 58, 63, 74, 71, 53, 60, 64, 61, 53, 61, 59, 70, 51, 79, 78, 54, 65, 49, 55, 61, 57, 80, 136, 74, 61, 64, 74, 60, 71, 51, 51, 66, 65, 47, 62, 68, 77, 50, 71, 71, 69, 68, 75, 69, 81, 73, 89, 57, 65, 72, 62, 66, 55, 44, 45, 81, 68, 65, 52, 85, 79, 100, 64, 69, 61, 73, 86, 67, 75, 91, 79, 57, 68, 69, 53, 54, 57, 59, 68, 79, 72, 73, 92, 70, 58, 66, 64, 50, 63, 55, 79, 77, 85, 59, 66, 72, 57, 50, 58, 68, 62, 51, 93, 70, 58, 72, 89, 85, 47, 62, 59, 57, 39, 69, 58, 32, 54, 58, 86, 94, 61, 83, 64, 76, 73, 73, 124, 54, 61, 82, 82, 56, 67, 68, 49, 44, 73, 50, 75, 65, 53, 57, 86, 74, 66, 62, 57, 66, 71, 57, 73, 58, 52, 70, 71, 61, 61, 67, 56, 70, 66, 74, 81, 65, 68, 66, 147, 66, 59, 50, 43, 61, 52, 86, 85, 115, 77, 68, 66, 58, 75, 59, 66, 58, 66, 69, 56, 73, 66, 68, 58, 62, 56, 60, 68, 103, 68, 57, 72, 75, 111, 66, 67, 79, 61, 75, 60, 69, 71, 43, 73, 52, 40, 64, 47, 72, 60, 63, 59, 82, 75, 72, 74, 70, 56, 75, 59, 66, 60, 88, 53, 66, 62, 49, 63, 53, 67, 86, 75, 81, 70, 54, 80, 48, 74, 52, 72, 73, 68, 85, 64, 62, 57, 63, 70, 81, 66, 70, 46, 43, 80, 68, 65, 80, 90, 72, 88, 57, 65, 79, 62, 57, 85, 59, 33, 59, 73, 62, 62, 67, 59, 53, 57, 72, 60, 60, 71, 58, 62, 53, 58, 94, 71, 69, 83, 80, 67, 54, 75, 63, 76, 80, 81, 82, 49, 73, 64, 81, 77, 63, 69, 59, 53, 67, 72, 54, 66, 65, 84, 72, 47, 79, 50, 63, 65, 85, 64, 67, 72, 64, 66, 53, 55, 68, 57, 51, 57, 48, 84, 75, 71, 67, 58, 65, 60, 64, 61, 61, 50, 73, 61, 55, 74, 71, 64, 67, 77, 63, 68, 54, 72, 54, 67, 78, 49, 48, 68, 90, 64, 61, 42, 59, 65, 84, 63, 62, 79, 67, 79, 64, 66, 78, 58, 81, 63, 62, 65, 45, 65, 63, 81, 69, 64, 62, 55, 90, 77, 56, 57, 78, 97, 66, 48, 66, 66, 71, 90, 80, 72, 52, 47, 61, 63, 62, 56, 75, 67, 71, 45, 64, 55, 59, 51, 88, 71, 47, 86, 51, 55, 72, 59, 69, 92, 56, 75, 69, 51, 71, 50, 83, 52, 68, 57, 49, 62, 77, 64, 63, 63, 120, 63, 54, 53, 64, 86, 67, 56, 66, 72, 120, 42, 110, 77, 57, 65, 57, 65, 61, 60, 61, 63, 64, 57, 96, 68, 57, 86, 54, 49, 71, 67, 63, 68, 75, 53, 60, 63, 55, 60, 52, 82, 66, 50, 41, 70, 75, 58, 70, 55, 62, 41, 81, 64, 56, 71, 57, 51, 89, 76, 76, 64, 66, 62, 71, 57, 54, 70, 80, 55, 55, 58, 52, 62, 63, 60, 64, 62, 59, 100, 61, 68, 68, 83, 64, 86, 35, 59, 56, 69, 51, 92, 75, 46, 60, 80, 68, 57, 61, 66, 65, 56, 58, 55, 55, 70, 80, 55, 79, 66, 77, 83, 67, 78, 77, 75, 91, 72, 62, 75, 70, 59, 77, 45, 81, 67, 52, 64, 131, 83, 49, 46, 68, 63, 62, 51, 57, 57, 60, 66, 60, 59, 61, 62, 59, 68, 71, 51, 62, 67, 55, 59, 48, 79, 61, 71, 55, 76, 60, 82, 67, 75, 58, 32, 56, 55, 64, 68, 56, 86, 76, 69, 59, 67, 54, 70, 57, 59, 68, 77, 73, 52, 32, 80, 59, 39, 56, 57, 70, 88, 61, 71, 50, 80, 83, 58, 58, 56, 75, 48, 77, 76, 79, 72, 48, 107, 73, 53, 73, 54, 86, 75, 62, 63, 66, 75, 67, 83, 58, 82, 51, 88, 95, 132, 57, 95, 82, 58, 50, 69, 42, 53, 37, 100, 66, 52, 53, 48, 73, 63, 70, 64, 72, 75, 84, 54, 56, 57, 60, 62, 55, 69, 60, 69, 48, 65, 57, 78, 54, 60, 58, 53, 78, 70, 64, 61, 64, 75, 79, 73, 49, 73, 43, 65, 78, 67, 61, 71, 81, 73, 57, 69, 71, 59, 54, 81, 67, 64, 56, 52, 57, 57, 64, 98, 65, 60, 66, 62, 38, 102, 65, 70, 77, 57, 81, 68, 59, 64, 70, 69, 59, 66, 78, 61, 61, 78, 54, 93, 63, 71, 61, 59, 56, 66, 62, 87, 76, 76, 59, 56, 73, 69, 53, 50, 90, 70, 81, 52, 78, 119, 55, 65, 50, 52, 56, 74, 48, 68, 66, 90, 67, 49, 56, 50, 68, 32, 58, 69, 46, 58, 49, 59, 68, 76, 75, 58, 59, 85, 75, 56, 51, 58, 60, 71, 67, 78, 65, 68, 64, 69, 65, 86, 57, 66, 69, 68, 68, 89, 77, 69, 65, 67, 80, 78, 61, 73, 65, 59, 101, 51, 120, 57, 66, 57, 63, 81, 75, 61, 61, 79, 64, 64, 61, 58, 70, 101, 64, 55, 74, 64, 87, 61, 86, 64, 65, 61, 50, 71, 85, 69, 58, 58, 48, 74, 55, 54, 76, 102, 62, 106, 63, 49, 49, 65, 65, 51, 63, 56, 64, 60, 77, 72, 69, 60, 58, 48, 60, 56, 61, 71, 80, 78, 57, 69, 67, 61, 85, 81, 81, 67, 31, 86, 93, 46, 67, 60, 74, 68, 51, 63, 68, 72, 70, 64, 71, 78, 90, 71, 58, 102, 66, 52, 67, 76, 65, 52, 73, 54, 68, 38, 71, 57, 52, 60, 94, 58, 67, 60, 46, 43, 64, 45, 60, 73, 65, 79, 64, 68, 59, 93, 44, 75, 70, 69, 106, 75, 68, 72, 62, 68, 56, 98, 67, 76, 58, 71, 52, 62, 51, 75, 70, 63, 70, 72, 73, 57, 60, 50, 75, 94, 60, 69, 66, 66, 64, 63, 48, 68, 65, 82, 48, 55, 94, 58, 60, 45, 49, 58, 79, 81, 51, 82, 61, 56, 65, 61, 50, 85, 59, 59, 76, 78, 54, 64, 50, 82, 80, 57, 82, 90, 64, 60, 88, 101, 55, 66, 75, 66, 83, 49, 53, 52, 75, 70, 72, 39, 73, 58, 78, 60, 48, 47, 62, 61, 65, 54, 69, 64, 60, 98, 58, 68, 66, 62, 69, 78, 65, 67, 64, 107, 77, 82, 78, 62, 72, 71, 104, 64, 60, 59, 57, 59, 65, 69, 77, 65, 85, 71, 58, 57, 49, 58, 48, 58, 63, 78, 73, 61, 83, 65, 59, 64, 45, 52, 63, 56, 52, 65, 69, 47, 67, 72, 65, 44, 70, 58, 57, 112, 78, 59, 69, 122, 67, 73, 49, 68, 66, 71, 65, 59, 48, 84, 66, 60, 68, 74, 64, 70, 55, 65, 76, 69, 52, 76, 94, 43, 69, 70, 55, 64, 68, 57, 52, 71, 59, 62, 53, 62, 78, 69, 66, 64, 65, 63, 83, 68, 85, 81, 58, 39, 109, 67, 64, 69, 50, 47, 63, 60, 61, 66, 72, 84, 54, 60, 56, 51, 44, 67, 63, 77, 129, 63, 83, 72, 67, 81, 62, 66, 58, 55, 62, 61, 72, 63, 79, 75, 41, 51, 61, 67, 65, 76, 87, 54, 84, 91, 64, 50, 64, 57, 81, 58, 53, 72, 39, 62, 73, 82, 86, 49, 77, 66, 67, 90, 61, 80, 60, 73, 72, 41, 54, 44, 55, 71, 44, 52, 56, 74, 62, 63, 75, 56, 73, 80, 46, 61, 76, 54, 66, 69, 61, 59, 65, 82, 83, 58, 53, 53, 62, 55, 68, 75, 64, 60, 72, 85, 58, 61, 66, 66, 51, 66, 70, 55, 70, 55, 67, 59, 74, 55, 63, 66, 49, 56, 61, 65, 78, 88, 56, 75, 65, 67, 80, 66, 62, 65, 79, 67, 78, 74, 67, 58, 84, 62, 44, 58, 69, 61, 61, 78, 47, 63, 79, 53, 74, 59, 79, 43, 49, 85, 104, 61, 49, 47, 61, 82, 67, 49, 63, 62, 54, 54, 66, 68, 70, 49, 74, 72, 64, 58, 59, 65, 65, 65, 59, 67, 56, 54, 59, 72, 73, 75, 47, 74, 61, 80, 74, 72, 60, 58, 65, 78, 49, 66, 67, 51, 61, 111, 78, 49, 59, 66, 63, 63, 55, 55, 65, 77, 54, 64, 60, 71, 56, 58, 80, 43, 138, 74, 66, 63, 44, 67, 51, 60, 93, 71, 96, 72, 66, 67, 64, 64, 73, 73, 52, 51, 76, 52, 70, 100, 56, 64, 53, 61, 41, 86, 57, 90, 61, 50, 60, 64, 78, 70, 71, 75, 65, 59, 68, 72, 57, 125, 80, 62, 62, 62, 61, 82, 68, 70, 61, 78, 65, 59, 61, 71, 69, 68, 47, 60, 74, 104, 84, 78, 64, 53, 69, 86, 66, 78, 69, 61, 39, 53, 71, 64, 82, 66, 70, 72, 53, 64, 68, 59, 56, 52, 53, 67, 77, 70, 55, 62, 68, 58, 66, 58, 63, 66, 88, 71, 75, 48, 61, 60, 65, 60, 53, 58, 54, 67, 73, 73, 82, 62, 64, 54, 107, 54, 36, 74, 55, 51, 86, 67, 73, 76, 60, 85, 55, 74, 73, 86, 66, 92, 68, 65, 76, 48, 69, 54, 49, 96, 72, 84, 52, 53, 76, 61, 52, 69, 59, 59, 64, 73, 61, 58, 54, 68, 71, 71, 62, 88, 58, 51, 141, 76, 66, 64, 57, 69, 67, 62, 68, 64, 70, 72, 65, 52, 72, 57, 73, 59, 75, 58, 58, 69, 66, 70, 69, 68, 60, 67, 61, 66, 55, 67, 101, 88, 88, 69, 61, 67, 55, 90, 65, 77, 48, 66, 65, 75, 60, 104, 59, 69, 47, 64, 58, 109, 62, 53, 67, 80, 64, 70, 96, 64, 61, 60, 65, 57, 51, 72, 75, 82, 107, 65, 65, 64, 69, 61, 71, 71, 60, 79, 62, 65, 66, 69, 56, 66, 65, 65, 74, 56, 68, 63, 67, 77, 66, 66, 63, 65, 53, 58, 58, 77, 65, 73, 67, 67, 65, 54, 54, 72, 50, 59, 66, 71, 62, 96, 56, 75, 50, 65, 61, 50, 86, 64, 56, 57, 96, 58, 52, 78, 75, 65, 62, 76, 52, 71, 81, 69, 53, 86, 69, 84, 62, 65, 78, 56, 69, 72, 60, 40, 81, 55, 97, 74, 69, 72, 68, 59, 76, 62, 69, 79, 134, 59, 79, 71, 64, 54, 59, 69, 69, 49, 70, 66, 62, 59, 57, 49, 78, 76, 51, 82, 57, 65, 62, 59, 86, 79, 65, 61, 52, 54, 70, 69, 64, 58, 80, 69, 62, 67, 72, 61, 57, 74, 68, 67, 61, 66, 62, 66, 51, 65, 59, 68, 60, 63, 60, 66, 42, 66, 67, 47, 62, 65, 71, 82, 49, 69, 66, 58, 59, 64, 67, 134, 61, 62, 62, 78, 59, 68, 66, 58, 68, 76, 54, 63, 67, 56, 67, 69, 85, 79, 70, 68, 53, 74, 70, 58, 66, 51, 58, 53, 90, 61, 62, 79, 57, 78, 77, 85, 59, 84, 68, 52, 65, 63, 67, 60, 64, 80, 71, 73, 54, 62, 61, 65, 68, 61, 79, 58, 54, 85, 61, 60, 59, 56, 61, 55, 66, 63, 64, 61, 60, 80, 56, 74, 44, 63, 62, 82, 69, 87, 65, 59, 58, 49, 73, 61, 76, 58, 74, 60, 66, 60, 56, 66, 64, 69, 70, 38, 72, 56, 55, 56, 66, 50, 70, 61, 67, 67, 61, 62, 64, 58, 59, 89, 61, 50, 73, 134, 71, 61, 74, 62, 48, 55, 59, 73, 64, 61, 55, 68, 67, 70, 54, 62, 60, 48, 75, 60, 60, 91, 65, 59, 55, 64, 53, 65, 69, 58, 56, 56, 62, 62, 69, 107, 73, 53, 56, 50, 68, 62, 53, 88, 54, 61, 64, 54, 69, 60, 67, 62, 65, 53, 57, 65, 54, 61, 62, 53, 74, 56, 48, 57, 91, 65, 58, 53, 66, 86, 101, 63, 59, 53, 57, 54, 67, 63, 75, 69, 69, 66, 120, 76, 50, 64, 66, 100, 62, 94, 59, 62, 66, 48, 74, 56, 70, 65, 54, 58, 52, 72, 73, 60, 60, 75, 97, 81, 112, 60, 71, 63, 49, 60, 60, 90, 82, 55, 82, 59, 56, 57, 54, 51, 85, 56, 68, 70, 66, 63, 90, 57, 75, 58, 65, 60, 52, 60, 73, 74, 73, 78, 65, 53, 63, 51, 53, 73, 60, 56, 62, 61, 61, 71, 60, 51, 86, 78, 65, 77, 77, 62, 61, 59, 71, 54, 53, 63, 60, 74, 60, 59, 63, 70, 66, 66, 46, 74, 55, 60, 103, 56, 82, 63, 55, 69, 68, 80, 66, 53, 50, 60, 62, 76, 87, 51, 61, 62, 50, 59, 57, 61, 73, 48, 63, 72, 96, 67, 60, 51, 76, 57, 90, 59, 59, 68, 58, 57, 62, 68, 67, 60, 48, 60, 63, 70, 59, 74, 39, 56, 76, 57, 64, 72, 78, 57, 59, 57, 71, 57, 71, 55, 58, 57, 84, 77, 57, 49, 54, 59, 57, 63, 64, 52, 70, 84, 61, 64, 63, 55, 80, 77, 70, 78, 85, 49, 71, 60, 73, 57, 60, 57, 66, 56, 52, 61, 69, 63, 85, 87, 78, 77, 51, 93, 69, 66, 62, 64, 49, 61, 68, 66, 58, 86, 70, 87, 48, 61, 53, 69, 72, 89, 58, 53, 51, 69, 93, 65, 75, 81, 52, 60, 61, 65, 64, 71, 59, 74, 67, 56, 57, 62, 88, 56, 62, 72, 62, 69, 66, 55, 90, 72, 62, 72, 51, 58, 99, 61, 75, 60, 89, 63, 59, 65, 58, 73, 68, 77, 51, 52, 61, 54, 60, 58, 79, 55, 53, 64, 58, 43, 48, 53, 69, 74, 61, 69, 64, 63, 51, 93, 63, 71, 62, 92, 75, 51, 64, 71, 80, 102, 82, 58, 59, 60, 49, 99, 42, 67, 79, 63, 61, 63, 71, 75, 65, 64, 63, 47, 61, 96, 71, 57, 49, 64, 81, 43, 63, 65, 65, 64, 57, 47, 56, 65, 54, 61, 76, 61, 83, 74, 69, 58, 59, 53, 59, 67, 62, 59, 56, 74, 71, 56, 60, 48, 54, 44, 53, 72, 59, 76, 88, 67, 42, 73, 57, 77, 73, 104, 72, 65, 67, 62, 45, 65, 46, 62, 65, 54, 61, 59, 73, 51, 73, 67, 60, 69, 60, 62, 99, 53, 93, 65, 55, 84, 102, 71, 53, 48, 37, 39, 68, 65, 73, 69, 47, 62, 51, 66, 71, 59, 68, 54, 66, 53, 57, 75, 132, 51, 54, 74, 75, 133, 64, 58, 47, 58, 66, 73, 55, 68, 51, 77, 51, 74, 70, 73, 70, 54, 67, 60, 45, 59, 107, 71, 75, 79, 49, 64, 80, 47, 54, 62, 57, 75, 61, 59, 95, 112, 71, 73, 62, 86, 86, 64, 62, 50, 64, 68, 62, 85, 53, 60, 31, 67, 70, 74, 66, 49, 47, 80, 52, 44, 69, 95, 69, 116, 58, 79, 92, 80, 97, 51, 81, 51, 53, 70, 68, 84, 52, 87, 64, 56, 76, 64, 72, 69, 63, 54, 74, 54, 64, 87, 74, 81, 35, 75, 53, 89, 62, 61, 44, 60, 70, 101, 56, 88, 57, 53, 57, 58, 86, 64, 67, 59, 61, 57, 95, 97, 65, 62, 40, 64, 128, 51, 52, 70, 61, 54, 85, 65, 50, 53, 57, 68, 81, 67, 62, 60, 69, 84, 74, 55, 66, 63, 55, 68, 51, 55, 77, 66, 61, 56, 72, 62, 61, 76, 55, 66, 77, 100, 65, 97, 69, 35, 43, 52, 81, 42, 61, 53, 61, 90, 76, 52, 85, 58, 57, 51, 49, 77, 64, 53, 65, 67, 85, 66, 63, 63, 84, 51, 65, 70, 49, 54, 45, 77, 32, 126, 64, 68, 90, 81, 62, 67, 67, 85, 56, 62, 81, 72, 87, 71, 77, 55, 38, 61, 54, 65, 67, 74, 50, 89, 75, 105, 64, 55, 84, 54, 66, 74, 56, 48, 77, 85, 55, 67, 102, 50, 74, 55, 79, 38, 66, 66, 65, 64, 52, 53, 63, 46, 62, 77, 91, 60, 47, 67, 71, 69, 63, 78, 78, 66, 70, 63, 80, 64, 67, 43, 88, 58, 76, 54, 67, 63, 65, 66, 73, 54, 59, 63, 67, 64, 59, 54, 82, 61, 55, 53, 58, 70, 107, 65, 67, 43, 55, 57, 60, 70, 68, 57, 63, 81, 67, 64, 38, 48, 50, 50, 64, 78, 99, 102, 61, 64, 54, 69, 71, 106, 62, 70, 65, 60, 52, 66, 30, 48, 67, 83, 58, 39, 54, 55, 42, 56, 61, 69, 68, 56, 76, 67, 79, 64, 63, 42, 83, 66, 53, 47, 61, 55, 81, 79, 67, 65, 91, 74, 48, 75, 66, 54, 64, 56, 98, 70, 65, 60, 55, 67, 57, 54, 84, 51, 77, 59, 52, 59, 46, 50, 67, 59, 67, 77, 58, 54, 62, 71, 58, 68, 48, 52, 78, 76, 84, 63, 68, 53, 67, 67, 65, 67, 59, 56, 64, 52, 61, 64, 52, 74, 68, 55, 44, 60, 52, 44, 56, 51, 68, 64, 67, 57, 70, 60, 55, 79, 80, 72, 133, 62, 54, 59, 57, 60, 71, 63, 83, 63, 76, 55, 56, 107, 63, 63, 70, 81, 86, 61, 45, 59, 86, 45, 62, 82, 87, 54, 67, 49, 51, 98, 61, 60, 69, 58, 75, 69, 38, 53, 71, 64, 63, 53, 73, 59, 53, 76, 49, 69, 69, 83, 73, 65, 57, 98, 61, 76, 84, 76, 76, 52, 60, 66, 68, 64, 71, 75, 78, 76, 45, 61, 32, 59, 58, 66, 65, 77, 53, 78, 68, 64, 55, 73, 65, 56, 68, 49, 68, 74, 44, 70, 70, 49, 65, 80, 88, 83, 48, 51, 71, 56, 71, 66, 47, 61, 51, 67, 47, 62, 69, 54, 61, 52, 53, 58, 61, 46, 57, 61, 63, 88, 64, 48, 44, 53, 52, 82, 48, 70, 61, 71, 64, 72, 64, 58, 59, 70, 65, 70, 48, 65, 91, 64, 63, 61, 93, 53, 76, 67, 50, 64, 99, 74, 72, 76, 65, 66, 62, 102, 59, 41, 57, 56, 82, 68, 80, 50, 57, 60, 78, 47, 56, 60, 63, 56, 67, 54, 81, 70, 46, 63, 75, 76, 64, 57, 56, 60, 60, 59, 42, 90, 87, 59, 50, 49, 53, 42, 59, 54, 58, 87, 81, 54, 58, 54, 56, 75, 72, 68, 68, 49, 57, 72, 100, 69, 77, 63, 93, 55, 59, 64, 63, 81, 72, 72, 78, 66, 58, 67, 102, 74, 55, 61, 58, 94, 93, 79, 37, 78, 61, 53, 73, 108, 67, 52, 54, 62, 60, 55, 72, 51, 65, 77, 77, 71, 48, 44, 42, 85, 71, 72, 63, 45, 76, 63, 54, 70, 61, 60, 58, 65, 54, 52, 69, 81, 60, 50, 65, 45, 88, 69, 54, 64, 84, 61, 82, 68, 74, 58, 58, 119, 58, 94, 50, 59, 60, 57, 89, 67, 76, 60, 74, 64, 49, 49, 54, 82, 69, 98, 70, 76, 86, 75, 59, 93, 73, 59, 79, 60, 50, 83, 59, 72, 62, 51, 58, 75, 83, 48, 61, 37, 58, 85, 54, 53, 72, 70, 62, 53, 112, 57, 67, 68, 87, 55, 53, 103, 42, 52, 60, 61, 52, 51, 54, 98, 70, 65, 64, 77, 52, 61, 64, 77, 71, 74, 67, 83, 53, 92, 73, 70, 54, 72, 57, 56, 79, 56, 47, 68, 65, 52, 96, 66, 67, 57, 45, 66, 65, 71, 71, 91, 64, 80, 66, 40, 70, 41, 58, 79, 71, 53, 58, 71, 75, 57, 48, 125, 65, 64, 63, 81, 63, 65, 55, 82, 55, 63, 67, 62, 47, 74, 57, 59, 70, 87, 95, 75, 56, 42, 69, 161, 68, 68, 71, 60, 58, 98, 59, 63, 61, 45, 147, 79, 70, 36, 94, 80, 50, 60, 55, 62, 63, 50, 69, 65, 57, 65, 89, 82, 47, 78, 61, 57, 63, 82, 75, 61, 53, 58, 76, 69, 71, 115, 55, 83, 80, 75, 63, 61, 56, 51, 54, 61, 67, 72, 69, 82, 49, 58, 113, 64, 50, 73, 60, 60, 58, 60, 55, 41, 83, 60, 93, 84, 55, 69, 69, 54, 61, 69, 48, 37, 86, 63, 84, 53, 58, 56, 64, 49, 76, 81, 52, 46, 49, 82, 63, 84, 61, 65, 52, 108, 72, 57, 55, 55, 61, 41, 62, 65, 67, 58, 75, 67, 64, 53, 57, 69, 76, 57, 64, 50, 50, 75, 60, 35, 82, 59, 54, 55, 80, 50, 51, 60, 74, 80, 63, 67, 59, 52, 93, 50, 84, 54, 102, 77, 97, 56, 59, 70, 59, 59, 69, 57, 86, 64, 69, 86, 97, 69, 104, 53, 82, 88, 68, 58, 56, 58, 64, 79, 53, 55, 87, 68, 54, 58, 67, 65, 71, 54, 47, 91, 74, 70, 74, 59, 58, 61, 59, 44, 77, 52, 43, 68, 52, 88, 88, 50, 66, 90, 49, 78, 88, 69, 71, 69, 61, 89, 74, 71, 81, 68, 62, 74, 61, 77, 27, 54, 58, 46, 81, 48, 40, 73, 62, 59, 57, 95, 52, 63, 54, 55, 69, 58, 77, 58, 64, 103, 47, 60, 86, 43, 46, 74, 77, 100, 56, 64, 66, 71, 52, 59, 67, 81, 59, 62, 56, 66, 69, 82, 56, 72, 60, 79, 81, 77, 91, 74, 47, 24, 54, 85, 51, 63, 74, 68, 86, 56, 47, 48, 49, 61, 57, 48, 53, 56, 72, 90, 37, 68, 94, 57, 64, 68, 76, 75, 55, 63, 76, 62, 57, 67, 59, 65, 44, 70, 70, 53, 80, 78, 88, 64, 62, 80, 53, 57, 72, 55, 56, 84, 71, 81, 57, 67, 67, 51, 79, 40, 65, 69, 44, 116, 56, 76, 73, 64, 56, 75, 83, 84, 56, 73, 54, 49, 88, 65, 59, 85, 80, 58, 91, 74, 54, 41, 63, 56, 60, 131, 69, 72, 69, 79, 55, 61, 47, 65, 67, 62, 69, 67, 77, 50, 68, 79, 69, 64, 82, 61, 76, 52, 69, 83, 82, 65, 64, 55, 50, 88, 61, 103, 88, 93, 42, 79, 55, 56, 54, 66, 60, 65, 49, 77, 50, 77, 65, 70, 62, 61, 149, 80, 71, 79, 57, 47, 61, 73, 66, 66, 63, 64, 45, 99, 89, 50, 121, 68, 64, 73, 48, 85, 76, 71, 79, 54, 59, 64, 84, 50, 50, 60, 75, 51, 50, 59, 60, 41, 52, 70, 108, 75, 62, 57, 72, 60, 47, 52, 50, 61, 65, 54, 93, 58, 73, 56, 47, 67, 93, 63, 66, 69, 70, 67, 67, 60, 57, 67, 48, 63, 51, 57, 51, 63, 67, 52, 62, 62, 95, 50, 74, 67, 47, 48, 55, 115, 81, 102, 50, 61, 78, 49, 71, 52, 66, 91, 57, 67, 61, 63, 76, 44, 50, 58, 87, 98, 47, 61, 67, 75, 68, 83, 36, 58, 53, 80, 72, 41, 111, 34, 68, 49, 82, 82, 78, 67, 56, 45, 47, 36, 66, 84, 85, 76, 70, 67, 42, 64, 97, 71, 67, 131, 66, 94, 52, 52, 55, 84, 64, 55, 68, 86, 39, 42, 47, 74, 59, 70, 63, 67, 71, 61, 80, 54, 47, 50, 58, 69, 44, 65, 73, 58, 55, 58, 55, 66, 69, 62, 140, 50, 83, 56, 45, 48, 49, 59, 56, 52, 81, 55, 40, 53, 78, 62, 54, 108, 59, 75, 70, 78, 52, 68, 65, 50, 77, 51, 76, 78, 72, 54, 53, 62, 69, 45, 63, 58, 70, 90, 73, 65, 40, 34, 54, 49, 86, 78, 61, 53, 53, 61, 64, 68, 78, 82, 47, 61, 47, 75, 62, 83, 72, 62, 44, 76, 73, 58, 97, 70, 72, 59, 74, 71, 78, 66, 60, 56, 65, 53, 84, 72, 101, 90, 35, 84, 63, 78, 80, 74, 58, 71, 69, 81, 61, 52, 67, 66, 83, 61, 66, 64, 73, 83, 104, 90, 64, 56, 39, 55, 83, 52, 76, 61, 61, 81, 101, 62, 58, 70, 39, 25, 78, 70, 89, 39, 67, 69, 46, 76, 65, 53, 55, 156, 75, 49, 67, 87, 67, 84, 40, 97, 65, 51, 56, 68, 73, 52, 40, 90, 81, 60, 71, 92, 49, 54, 72, 46, 60, 57, 68, 59, 101, 84, 78, 130, 47, 68, 70, 76, 61, 62, 78, 59, 68, 54, 57, 61, 76, 56, 48, 74, 55, 99, 114, 55, 68, 53, 49, 78, 91, 61, 58, 72, 57, 79, 77, 97, 72, 79, 56, 77, 59, 55, 74, 59, 74, 62, 66, 96, 83, 49, 67, 49, 77, 70, 66, 72, 60, 54, 67, 77, 105, 87, 81, 55, 65, 77, 69, 80, 73, 53, 63, 90, 77, 72, 68, 80, 83, 69, 57, 76, 41, 113, 49, 66, 61, 81, 52, 66, 71, 79, 64, 54, 87, 71, 64, 62, 58, 51, 75, 56, 151, 65, 78, 73, 60, 55, 66, 47, 71, 73, 73, 65, 60, 67, 77, 50, 71, 81, 56, 72, 105, 63, 85, 66, 51, 65, 54, 88, 55, 88, 58, 72, 67, 50, 74, 49, 45, 69, 64, 85, 93, 65, 51, 47, 71, 58, 69, 76, 54, 72, 64, 54, 54, 73, 52, 79, 92, 61, 49, 51, 57, 83, 71, 79, 60, 100, 118, 64, 53, 58, 62, 49, 89, 91, 60, 44, 54, 48, 75, 61, 54, 54, 57, 82, 59, 67, 57, 84, 49, 58, 55, 44, 59, 77, 63, 90, 64, 73, 83, 61, 81, 103, 58, 52, 42, 56, 86, 43, 53, 63, 53, 53, 62, 94, 68, 67, 83, 53, 53, 62, 77, 67, 78, 68, 75, 56, 68, 64, 62, 66, 71, 62, 46, 62, 57, 56, 54, 78, 73, 42, 53, 64, 53, 70, 71, 74, 60, 77, 45, 69, 74, 53, 57, 62, 95, 85, 69, 51, 55, 79, 75, 62, 93, 61, 60, 51, 71, 70, 51, 84, 84, 62, 66, 68, 40, 68, 73, 77, 73, 83, 73, 67, 61, 58, 52, 66, 74, 103, 81, 54, 69, 56, 76, 53, 57, 91, 66, 53, 85, 49, 50, 98, 63, 98, 50, 65, 40, 54, 100, 68, 69, 65, 86, 53, 56, 86, 56, 57, 56, 35, 60, 96, 52, 78, 67, 37, 61, 54, 46, 66, 47, 60, 67, 67, 65, 60, 67, 70, 65, 71, 94, 78, 61, 86, 76, 64, 58, 67, 77, 92, 61, 76, 76, 50, 49, 79, 47, 58, 57, 49, 47, 52, 66, 85, 75, 87, 76, 73, 58, 61, 46, 97, 73, 99, 57, 75, 58, 69, 59, 70, 85, 56, 53, 71, 65, 67, 61, 68, 62, 68, 94, 73, 56, 47, 61, 68, 62, 75, 60, 56, 83, 46, 51, 65, 66, 62, 61, 80, 59, 82, 55, 67, 60, 66, 69, 51, 85, 55, 54, 67, 48, 58, 105, 89, 73, 60, 65, 80, 50, 62, 47, 61, 64, 53, 80, 64, 59, 55, 77, 72, 75, 76, 67, 61, 47, 59, 69, 73, 79, 58, 62, 67, 62, 55, 70, 87, 58, 53, 43, 77, 54, 61, 53, 72, 59, 51, 58, 59, 81, 93, 74, 86, 58, 85, 49, 66, 68, 130, 75, 58, 78, 68, 47, 68, 52, 46, 50, 56, 112, 67, 66, 51, 66, 52, 58, 62, 59, 66, 70, 47, 70, 85, 65, 87, 71, 65, 73, 72, 54, 47, 76, 76, 62, 38, 115, 65, 55, 60, 66, 69, 69, 96, 77, 64, 52, 78, 35, 46, 50, 71, 58, 87, 70, 64, 54, 52, 65, 66, 74, 59, 68, 68, 90, 67, 79, 56, 51, 69, 46, 88, 49, 73, 71, 61, 64, 51, 59, 46, 57, 63, 57, 72, 47, 65, 52, 57, 51, 92, 58, 61, 106, 77, 48, 67, 63, 53, 67, 53, 63, 67, 67, 60, 65, 62, 68, 45, 56, 57, 81, 50, 90, 55, 68, 51, 60, 68, 64, 69, 67, 61, 54, 90, 71, 62, 57, 64, 61, 60, 48, 78, 63, 58, 63, 54, 74, 52, 54, 54, 95, 64, 76, 60, 73, 63, 71, 62, 56, 73, 55, 81, 59, 57, 97, 56, 102, 76, 38, 58, 57, 59, 59, 71, 52, 46, 66, 94, 47, 66, 32, 43, 72, 60, 55, 71, 57, 64, 65, 86, 81, 107, 83, 67, 65, 63, 57, 70, 74, 42, 61, 72, 74, 64, 72, 58, 78, 56, 60, 70, 66, 65, 49, 74, 53, 52, 37, 56, 63, 50, 75, 49, 78, 54, 75, 63, 73, 60, 55, 59, 74, 64, 59, 78, 59, 78, 55, 74, 72, 72, 61, 74, 78, 67, 56, 83, 65, 45, 63, 64, 75, 59, 80, 72, 50, 69, 55, 54, 71, 77, 45, 79, 62, 55, 63, 73, 57, 71, 58, 111, 94, 70, 62, 70, 61, 70, 63, 55, 55, 64, 45, 60, 64, 70, 85, 80, 66, 57, 97, 62, 72, 74, 68, 53, 78, 84, 63, 58, 69, 62, 60, 46, 78, 76, 57, 62, 61, 50, 46, 66, 63, 59, 101, 64, 71, 59, 78, 55, 73, 62, 70, 58, 57, 54, 58, 51, 71, 40, 58, 70, 94, 60, 50, 50, 80, 57, 55, 62, 64, 67, 65, 65, 58, 53, 90, 53, 53, 69, 81, 82, 69, 57, 79, 57, 70, 74, 48, 72, 63, 56, 72, 59, 79, 64, 79, 55, 50, 60, 58, 74, 69, 51, 77, 71, 53, 67, 52, 55, 49, 76, 67, 49, 68, 56, 55, 87, 53, 61, 72, 66, 81, 49, 83, 77, 64, 59, 64, 93, 49, 73, 58, 47, 86, 64, 65, 54, 51, 62, 52, 106, 96, 57, 54, 71, 58, 57, 52, 71, 61, 58, 61, 69, 52, 69, 57, 68, 72, 72, 56, 64, 59, 62, 76, 47, 70, 62, 66, 51, 90, 61, 66, 73, 62, 93, 58, 60, 54, 52, 58, 62, 56, 61, 70, 92, 52, 102, 56, 71, 51, 54, 55, 58, 65, 71, 56, 72, 80, 66, 69, 60, 63, 52, 58, 58, 62, 64, 66, 92, 78, 104, 53, 74, 51, 71, 50, 67, 58, 103, 60, 62, 50, 47, 71, 64, 65, 108, 60, 54, 60, 79, 80, 75, 72, 48, 64, 77, 80, 62, 63, 71, 110, 48, 60, 67, 66, 98, 69, 59, 95, 61, 40, 48, 69, 70, 52, 56, 46, 57, 66, 73, 97, 48, 64, 68, 82, 53, 67, 62, 44, 87, 77, 78, 64, 127, 70, 65, 94, 64, 84, 55, 84, 67, 74, 71, 58, 64, 68, 58, 91, 50, 88, 56, 48, 60, 64, 78, 65, 79, 73, 66, 65, 62, 81, 68, 72, 60, 81, 55, 68, 56, 57, 55, 62, 70, 54, 69, 58, 74, 46, 68, 58, 64, 78, 47, 73, 55, 54, 67, 87, 59, 32, 76, 60, 52, 87, 75, 69, 70, 65, 93, 72, 55, 63, 68, 62, 63, 84, 59, 80, 54, 52, 42, 79, 56, 50, 65, 43, 73, 58, 53, 68, 59, 57, 57, 67, 50, 80, 52, 163, 69, 88, 76, 64, 59, 61, 74, 51, 70, 75, 65, 56, 83, 59, 56, 64, 63, 67, 59, 50, 53, 53, 59, 57, 62, 74, 71, 54, 65, 74, 55, 76, 62, 65, 53, 124, 65, 71, 65, 117, 59, 89, 72, 50, 60, 54, 63, 64, 75, 55, 73, 45, 44, 60, 68, 65, 64, 57, 63, 56, 56, 51, 81, 84, 51, 69, 38, 125, 80, 64, 56, 53, 54, 58, 61, 55, 70, 74, 64, 59, 73, 94, 59, 55, 98, 60, 70, 56, 65, 54, 86, 67, 70, 82, 63, 73, 93, 70, 60, 73, 63, 59, 66, 88, 62, 75, 68, 56, 68, 49, 71, 77, 67, 56, 56, 74, 70, 57, 63, 83, 60, 112, 62, 65, 58, 46, 69, 76, 72, 78, 53, 104, 87, 68, 67, 57, 61, 61, 76, 47, 87, 46, 73, 47, 60, 63, 67, 91, 58, 67, 103, 62, 57, 62, 64, 52, 58, 71, 66, 99, 65, 72, 62, 70, 55, 51, 62, 72, 51, 40, 52, 59, 65, 63, 85, 73, 64, 78, 58, 51, 66, 47, 59, 80, 72, 58, 46, 105, 72, 58, 59, 72, 71, 69, 65, 74, 72, 59, 48, 55, 66, 62, 58, 56, 71, 61, 61, 46, 94, 62, 74, 65, 78, 74, 68, 66, 59, 75, 111, 84, 52, 44, 93, 64, 85, 66, 71, 60, 61, 59, 51, 54, 68, 98, 81, 56, 69, 81, 66, 74, 82, 61, 57, 68, 53, 68, 94, 72, 64, 103, 94, 56, 53, 61, 67, 72, 50, 78, 94, 54, 68, 61, 62, 49, 72, 71, 71, 67, 60, 61, 63, 50, 61, 61, 76, 67, 55, 77, 59, 65, 48, 51, 50, 68, 60, 63, 74, 47, 56, 57, 80, 61, 33, 52, 68, 63, 47, 49, 65, 74, 63, 78, 67, 58, 59, 60, 63, 67, 94, 85, 55, 56, 59, 56, 46, 41, 61, 68, 66, 58, 47, 68, 55, 89, 48, 66, 54, 82, 67, 67, 95, 67, 57, 116, 65, 96, 41, 51, 71, 81, 65, 70, 101, 59, 68, 66, 111, 76, 62, 68, 70, 76, 73, 69, 77, 91, 59, 63, 46, 108, 76, 54, 67, 65, 72, 78, 65, 60, 43, 42, 65, 63, 58, 70, 57, 50, 67, 49, 51, 62, 76, 93, 70, 80, 63, 78, 48, 56, 73, 71, 61, 57, 64, 56, 50, 59, 66, 45, 37, 49, 80, 81, 61, 59, 69, 84, 52, 58, 64, 65, 62, 77, 66, 61, 51, 81, 66, 81, 59, 62, 50, 91, 76, 92, 34, 113, 92, 66, 56, 70, 59, 59, 50, 27, 61, 76, 98, 74, 72, 68, 74, 62, 59, 57, 62, 47, 80, 42, 49, 47, 67, 50, 99, 80, 67, 66, 72, 68, 81, 57, 67, 53, 52, 84, 91, 68, 95, 95, 58, 96, 72, 75, 97, 61, 61, 79, 46, 81, 86, 58, 62, 71, 75, 56, 59, 87, 56, 49, 57, 74, 63, 51, 61, 44, 77, 67, 83, 64, 70, 57, 60, 66, 60, 47, 68, 79, 108, 76, 96, 50, 43, 78, 57, 48, 89, 78, 41, 54, 69, 59, 82, 54, 62, 68, 61, 63, 35, 58, 54, 55, 67, 69, 65, 89, 73, 53, 116, 58, 86, 59, 89, 67, 62, 55, 84, 67, 74, 60, 86, 54, 83, 59, 90, 90, 74, 58, 59, 45, 90, 70, 46, 53, 85, 41, 58, 47, 93, 68, 84, 73, 62, 72, 62, 85, 84, 76, 73, 76, 46, 89, 72, 47, 62, 59, 80, 85, 65, 59, 51, 65, 52, 54, 55, 57, 80, 51, 61, 81, 59, 59, 68, 77, 48, 77, 95, 53, 91, 72, 62, 28, 60, 58, 38, 51, 41, 67, 63, 97, 59, 62, 78, 40, 78, 91, 48, 61, 53, 71, 73, 33, 82, 78, 57, 67, 64, 81, 38, 59, 80, 52, 59, 70, 77, 70, 61, 55, 96, 64, 77, 63, 46, 57, 44, 70, 24, 77, 65, 62, 61, 87, 82, 60, 44, 67, 47, 75, 70, 73, 64, 50, 82, 76, 43, 58, 88, 60, 68, 55, 57, 53, 46, 70, 53, 65, 52, 86, 82, 50, 60, 83, 43, 63, 70, 70, 55, 43, 69, 76, 56, 80, 65, 60, 62, 63, 85, 61, 59, 56, 100, 61, 60, 62, 62, 85, 69, 83, 57, 70, 105, 72, 69, 96, 87, 71, 101, 87, 51, 76, 22, 122, 70, 88, 124, 81, 72, 55, 56, 93, 70, 65, 61, 85, 68, 49, 48, 57, 98, 60, 55, 48, 80, 66, 45, 68, 51, 60, 55, 56, 55, 55, 92, 92, 49, 59, 64, 38, 66, 54, 71, 70, 68, 76, 74, 80, 66, 75, 77, 65, 73, 63, 48, 70, 64, 64, 59, 53, 59, 76, 47, 54, 59, 57, 51, 50, 58, 73, 63, 64, 72, 57, 87, 67, 68, 72, 59, 74, 53, 72, 65, 78, 47, 74, 105, 57, 70, 116, 52, 69, 56, 85, 69, 57, 64, 58, 48, 44, 40, 107, 77, 35, 61, 39, 59, 61, 79, 51, 51, 126, 61, 70, 85, 72, 67, 55, 58, 83, 51, 101, 54, 63, 79, 54, 69, 55, 84, 100, 62, 87, 57, 57, 62, 66, 69, 73, 76, 72, 47, 76, 69, 49, 83, 77, 73, 63, 66, 68, 64, 92, 70, 61, 76, 65, 84, 55, 62, 56, 63, 47, 70, 96, 66, 73, 76, 59, 50, 66, 72, 48, 72, 54, 85, 82, 37, 64, 58, 84, 63, 62, 83, 58, 71, 60, 63, 65, 68, 76, 51, 71, 94, 74, 56, 56, 53, 54, 52, 49, 83, 79, 48, 73, 69, 54, 93, 52, 64, 58, 66, 91, 66, 73, 71, 66, 66, 73, 58, 77, 75, 49, 42, 73, 92, 37, 64, 57, 101, 37, 63, 122, 55, 56, 58, 73, 62, 82, 54, 86, 76, 54, 68, 67, 93, 61, 83, 75, 50, 62, 118, 35, 52, 67, 48, 62, 41, 39, 136, 73, 35, 63, 80, 55, 64, 70, 66, 56, 68, 82, 73, 61, 70, 104, 54, 42, 73, 39, 74, 62, 84, 62, 34, 65, 91, 115, 72, 108, 62, 68, 100, 84, 54, 53, 54, 77, 89, 57, 66, 69, 53, 45, 69, 79, 53, 49, 95, 77, 96, 111, 78, 66, 66, 49, 71, 32, 47, 71, 58, 51, 53, 96, 75, 72, 84, 63, 90, 68, 54, 68, 69, 84, 63, 76, 68, 80, 153, 71, 92, 75, 54, 66, 63, 65, 79, 70, 60, 49, 51, 64, 58, 45, 73, 36, 61, 47, 55, 54, 112, 50, 77, 64, 44, 57, 51, 55, 48, 96, 90, 85, 91, 99, 77, 49, 44, 77, 52, 65, 44, 79, 76, 60, 68, 59, 52, 74, 60, 57, 71, 51, 70, 66, 76, 93, 103, 75, 75, 41, 63, 74, 78, 70, 65, 59, 52, 53, 69, 52, 69, 92, 76, 47, 51, 50, 70, 36, 61, 82, 53, 49, 91, 61, 62, 64, 52, 79, 51, 72, 85, 65, 48, 64, 51, 63, 69, 55, 95, 59, 79, 51, 52, 73, 72, 82, 72, 50, 60, 58, 60, 71, 63, 32, 54, 79, 39, 58, 53, 94, 70, 77, 109, 62, 60, 81, 72, 64, 45, 69, 77, 78, 80, 67, 54, 61, 40, 63, 52, 50, 61, 49, 110, 84, 47, 81, 77, 59, 48, 50, 46, 53, 49, 57, 63, 87, 57, 65, 79, 77, 65, 74, 29, 61, 78, 64, 77, 77, 49, 51, 37, 56, 95, 83, 61, 73, 64, 63, 75, 53, 77, 67, 55, 49, 79, 46, 45, 81, 50, 47, 81, 54, 54, 88, 72, 75, 77, 59, 92, 58, 64, 61, 61, 59, 61, 62, 61, 49, 54, 73, 72, 51, 58, 59, 59, 96, 82, 43, 50, 91, 51, 60, 61, 42, 60, 62, 56, 60, 67, 66, 95, 33, 43, 42, 50, 54, 76, 81, 62, 75, 77, 61, 89, 33, 64, 67, 64, 83, 49, 52, 81, 72, 84, 81, 60, 47, 50, 85, 62, 65, 50, 53, 66, 79, 39, 65, 58, 72, 63, 60, 78, 144, 58, 58, 84, 72, 76, 90, 61, 63, 66, 47, 68, 86, 52, 88, 62, 73, 80, 72, 77, 64, 50, 45, 59, 43, 51, 86, 47, 74, 46, 86, 63, 54, 60, 64, 70, 72, 74, 58, 126, 59, 67, 86, 45, 58, 56, 71, 40, 85, 94, 72, 72, 42, 61, 56, 66, 38, 65, 69, 47, 63, 63, 64, 89, 56, 98, 59, 65, 57, 76, 49, 84, 68, 86, 67, 49, 51, 102, 61, 61, 63, 50, 60, 58, 68, 60, 58, 59, 64, 44, 88, 72, 59, 42, 68, 94, 76, 68, 89, 62, 72, 57, 60, 41, 53, 59, 74, 77, 98, 68, 71, 71, 75, 65, 49, 71, 66, 85, 61, 73, 38, 55, 80, 68, 67, 55, 47, 56, 60, 58, 55, 61, 50, 82, 67, 74, 84, 65, 42, 70, 51, 50, 77, 83, 73, 56, 45, 59, 57, 57, 57, 107, 66, 64, 78, 81, 38, 62, 46, 55, 99, 87, 84, 58, 56, 81, 46, 76, 91, 49, 61, 52, 70, 77, 66, 86, 55, 69, 47, 55, 66, 66, 43, 66, 56, 56, 51, 57, 69, 55, 108, 63, 68, 75, 62, 47, 68, 57, 64, 74, 113, 71, 74, 63, 60, 65, 80, 57, 63, 65, 69, 70, 58, 77, 48, 52, 56, 54, 48, 71, 78, 82, 69, 76, 60, 86, 54, 88, 63, 82, 59, 81, 59, 62, 58, 70, 53, 98, 61, 48, 85, 76, 52, 74, 75, 56, 63, 85, 68, 58, 70, 49, 71, 66, 51, 83, 61, 56, 43, 70, 63, 69, 39, 75, 43, 62, 80, 76, 54, 88, 58, 68, 41, 57, 64, 75, 59, 59, 94, 50, 58, 92, 84, 58, 65, 94, 53, 82, 48, 51, 38, 46, 83, 59, 68, 69, 76, 82, 36, 81, 53, 64, 65, 66, 61, 63, 94, 51, 88, 73, 68, 63, 74, 69, 72, 55, 59, 56, 42, 74, 68, 61, 136, 73, 59, 64, 49, 85, 67, 86, 58, 64, 80, 97, 43, 61, 93, 67, 57, 48, 80, 69, 53, 81, 58, 71, 76, 78, 54, 73, 84, 56, 64, 85, 53, 61, 67, 61, 81, 52, 65, 56, 48, 49, 77, 67, 75, 72, 39, 62, 73, 106, 63, 55, 61, 60, 56, 50, 52, 72, 69, 49, 57, 73, 84, 54, 46, 57, 82, 68, 54, 58, 70, 73, 70, 69, 48, 100, 76, 65, 48, 96, 64, 63, 57, 51, 48, 66, 77, 119, 71, 42, 70, 59, 84, 58, 69, 48, 45, 58, 72, 115, 82, 70, 70, 66, 58, 53, 67, 82, 80, 57, 38, 62, 46, 48, 81, 78, 66, 73, 59, 94, 58, 48, 76, 59, 34, 57, 53, 52, 61, 68, 62, 63, 57, 78, 44, 53, 71, 50, 87, 61, 61, 98, 88, 75, 54, 46, 48, 63, 87, 72, 67, 70, 83, 87, 65, 65, 54, 43, 51, 40, 81, 60, 51, 97, 97, 71, 49, 44, 64, 115, 46, 52, 62, 51, 58, 73, 58, 76, 60, 58, 59, 81, 78, 60, 80, 48, 54, 59, 87, 76, 87, 87, 60, 52, 60, 79, 64, 74, 68, 71, 70, 62, 63, 66, 49, 76, 67, 81, 56, 55, 63, 62, 86, 83, 67, 68, 67, 60, 67, 70, 42, 65, 83, 64, 65, 57, 69, 59, 78, 61, 40, 70, 45, 66, 58, 42, 61, 71, 64, 72, 73, 72, 70, 54, 64, 65, 75, 55, 58, 79, 78, 68, 57, 94, 67, 62, 64, 82, 50, 76, 58, 93, 57, 60, 57, 80, 70, 49, 42, 64, 73, 114, 67, 74, 76, 57, 69, 69, 91, 56, 68, 54, 56, 77, 36, 73, 79, 89, 58, 51, 67, 60, 62, 90, 77, 70, 62, 66, 59, 64, 61, 69, 68, 66, 83, 50, 63, 37, 75, 39, 51, 72, 77, 70, 73, 87, 59, 61, 68, 73, 120, 38, 62, 74, 56, 69, 44, 72, 62, 48, 54, 56, 70, 71, 55, 64, 59, 81, 51, 48, 70, 63, 54, 110, 130, 64, 59, 60, 63, 43, 62, 74, 51, 48, 53, 76, 73, 59, 82, 75, 66, 58, 50, 59, 66, 36, 71, 110, 69, 82, 42, 70, 85, 95, 68, 62, 53, 53, 61, 72, 61, 64, 54, 40, 39, 62, 67, 75, 41, 105, 67, 57, 55, 74, 90, 61, 59, 82, 76, 68, 111, 61, 68, 75, 81, 73, 44, 65, 40, 78, 63, 64, 62, 69, 46, 52, 64, 53, 69, 82, 64, 68, 80, 74, 59, 48, 83, 56, 59, 88, 84, 52, 38, 68, 65, 57, 57, 63, 56, 66, 61, 66, 59, 49, 76, 70, 47, 83, 57, 72, 84, 49, 85, 112, 64, 56, 92, 51, 68, 77, 73, 66, 74, 51, 75, 60, 62, 50, 93, 57, 45, 94, 61, 65, 74, 79, 74, 70, 71, 82, 104, 65, 76, 72, 46, 50, 57, 62, 48, 59, 62, 64, 65, 78, 73, 60, 60, 68, 48, 58, 55, 79, 82, 51, 67, 57, 51, 55, 91, 74, 53, 62, 48, 40, 64, 45, 62, 55, 69, 50, 66, 54, 69, 77, 91, 54, 83, 66, 57, 80, 75, 57, 71, 63, 59, 54, 64, 51, 47, 84, 45, 51, 92, 62, 55, 73, 59, 57, 59, 70, 74, 58, 73, 59, 73, 113, 68, 72, 60, 55, 55, 89, 56, 88, 60, 64, 80, 64, 61, 68, 90, 49, 46, 49, 54, 75, 57, 87, 106, 86, 56, 69, 55, 59, 54, 82, 66, 53, 80, 58, 102, 52, 76, 109, 43, 67, 58, 78, 53, 63, 59, 65, 63, 81, 59, 62, 69, 72, 74, 72, 67, 85, 58, 64, 71, 56, 77, 57, 50, 58, 60, 55, 58, 110, 57, 71, 44, 59, 78, 79, 37, 56, 64, 72, 57, 65, 64, 95, 64, 61, 52, 41, 56, 34, 57, 64, 68, 38, 54, 78, 80, 52, 97, 93, 91, 59, 76, 93, 70, 90, 84, 62, 69, 66, 54, 80, 36, 60, 54, 102, 75, 47, 69, 52, 49, 61, 65, 52, 36, 61, 65, 58, 63, 54, 78, 66, 81, 47, 72, 68, 94, 60, 49, 46, 66, 80, 49, 67, 64, 60, 63, 65, 60, 75, 60, 70, 73, 50, 56, 71, 71, 58, 72, 51, 70, 67, 66, 87, 65, 51, 65, 68, 56, 62, 58, 64, 71, 91, 67, 72, 80, 65, 41, 96, 66, 51, 79, 58, 75, 41, 94, 59, 46, 50, 66, 41, 55, 70, 64, 67, 85, 62, 66, 81, 53, 65, 56, 62, 76, 79, 69, 81, 118, 70, 67, 44, 48, 60, 61, 88, 50, 57, 71, 84, 58, 64, 63, 68, 62, 56, 94, 82, 65, 67, 63, 61, 94, 65, 66, 78, 71, 57, 85, 61, 33, 66, 80, 61, 60, 47, 64, 59, 59, 59, 56, 40, 51, 57, 46, 57, 57, 53, 85, 61, 66, 62, 67, 74, 47, 81, 60, 79, 70, 58, 62, 48, 56, 68, 70, 68, 67, 64, 68, 59, 62, 68, 73, 75, 39, 75, 63, 90, 64, 72, 75, 46, 51, 59, 70, 65, 72, 60, 75, 69, 61, 73, 61, 64, 68, 70, 59, 75, 46, 80, 82, 68, 67, 62, 89, 77, 47, 56, 74, 70, 55, 57, 67, 51, 69, 56, 48, 54, 111, 38, 56, 69, 72, 153, 74, 79, 76, 63, 63, 55, 73, 58, 52, 63, 64, 50, 45, 77, 58, 70, 48, 65, 59, 57, 54, 49, 42, 73, 69, 67, 61, 76, 61, 146, 47, 76, 108, 59, 69, 43, 74, 55, 89, 66, 70, 85, 52, 63, 63, 58, 52, 63, 65, 50, 46, 62, 60, 58, 59, 64, 73, 76, 66, 59, 73, 53, 69, 71, 75, 73, 53, 64, 65, 76, 86, 53, 77, 77, 63, 43, 69, 96, 107, 75, 107, 69, 74, 59, 94, 57, 66, 90, 52, 58, 94, 51, 76, 57, 52, 58, 54, 79, 55, 82, 40, 72, 40, 68, 62, 67, 60, 88, 62, 67, 67, 56, 71, 73, 60, 79, 27, 71, 58, 72, 69, 55, 52, 53, 85, 61, 111, 53, 57, 62, 50, 57, 54, 57, 75, 54, 64, 88, 58, 88, 53, 62, 57, 54, 64, 109, 53, 59, 120, 77, 57, 65, 59, 62, 159, 80, 51, 63, 62, 47, 55, 63, 75, 72, 78, 76, 50, 76, 61, 72, 65, 57, 75, 75, 63, 72, 69, 78, 59, 58, 49, 79, 56, 69, 86, 52, 63, 58, 89, 69, 86, 65, 77, 57, 66, 53, 43, 57, 48, 77, 70, 79, 139, 49, 70, 85, 59, 76, 60, 73, 59, 68, 104, 70, 68, 79, 47, 46, 66, 46, 54, 85, 74, 64, 72, 56, 82, 64, 59, 55, 73, 54, 61, 60, 51, 56, 57, 89, 60, 48, 60, 54, 69, 50, 71, 49, 91, 58, 68, 51, 54, 67, 58, 70, 75, 62, 66, 68, 77, 67, 80, 45, 64, 57, 78, 44, 44, 39, 57, 64, 58, 99, 89, 70, 56, 38, 73, 68, 65, 64, 65, 68, 70, 74, 64, 64, 136, 78, 117, 63, 49, 71, 67, 60, 71, 67, 66, 64, 103, 68, 56, 66, 68, 95, 64, 60, 57, 58, 73, 62, 65, 66, 65, 60, 76, 65, 67, 62, 77, 61, 78, 33, 64, 89, 57, 61, 56, 55, 75, 49, 82, 55, 70, 61, 55, 57, 62, 66, 81, 62, 79, 49, 60, 65, 56, 80, 63, 62, 61, 76, 54, 55, 52, 115, 62, 63, 63, 53, 57, 66, 50, 56, 73, 61, 55, 72, 90, 54, 65, 67, 56, 64, 72, 69, 58, 61, 74, 57, 65, 78, 72, 62, 45, 90, 59, 58, 55, 73, 57, 57, 93, 57, 67, 42, 130, 50, 77, 75, 61, 89, 75, 124, 67, 54, 85, 75, 60, 51, 60, 69, 70, 67, 43, 58, 68, 65, 64, 62, 65, 76, 55, 51, 62, 48, 57, 61, 48, 85, 61, 70, 92, 72, 66, 64, 79, 60, 64, 44, 63, 50, 64, 63, 73, 60, 54, 80, 76, 59, 50, 67, 79, 28, 61, 63, 69, 54, 51, 65, 69, 70, 48, 64, 70, 46, 62, 68, 43, 71, 45, 83, 82, 67, 69, 66, 52, 56, 58, 82, 52, 41, 69, 81, 51, 56, 60, 63, 55, 75, 85, 55, 72, 118, 45, 60, 80, 37, 45, 61, 76, 58, 65, 69, 41, 59, 52, 46, 62, 58, 76, 73, 63, 62, 65, 61, 70, 69, 47, 87, 53, 63, 83, 65, 80, 52, 72, 86, 82, 77, 62, 43, 51, 48, 90, 55, 76, 82, 76, 63, 56, 93, 78, 64, 72, 43, 55, 69, 56, 50, 103, 60, 107, 58, 48, 59, 57, 61, 62, 62, 71, 36, 63, 51, 56, 55, 75, 95, 67, 72, 77, 55, 54, 84, 78, 63, 47, 64, 74, 54, 85, 64, 48, 72, 93, 68, 65, 63, 73, 72, 60, 68, 47, 82, 87, 72, 79, 83, 61, 74, 60, 52, 67, 78, 74, 67, 66, 58, 70, 49, 86, 83, 56, 56, 68, 95, 49, 67, 81, 87, 72, 68, 52, 69, 53, 54, 48, 82, 56, 66, 109, 93, 52, 43, 69, 61, 47, 40, 66, 55, 51, 88, 58, 78, 63, 66, 71, 46, 62, 61, 53, 54, 80, 42, 63, 83, 81, 58, 70, 83, 75, 69, 70, 63, 64, 56, 88, 72, 65, 65, 48, 89, 139, 59, 64, 59, 61, 78, 75, 75, 50, 88, 64, 71, 78, 67, 76, 72, 67, 66, 66, 52, 66, 56, 61, 69, 55, 50, 64, 65, 44, 64, 72, 64, 74, 63, 69, 77, 91, 64, 82, 69, 63, 63, 57, 68, 66, 138, 69, 82, 50, 50, 75, 69, 94, 59, 63, 64, 65, 84, 81, 49, 59, 75, 64, 51, 80, 61, 66, 74, 94, 54, 58, 66, 82, 60, 58, 51, 68, 66, 61, 40, 70, 65, 57, 77, 61, 52, 75, 51, 45, 73, 65, 59, 63, 76, 54, 67, 53, 75, 79, 60, 64, 49, 56, 60, 90, 77, 105, 51, 75, 65, 138, 59, 69, 48, 93, 67, 52, 68, 48, 71, 63, 60, 71, 44, 58, 71, 74, 55, 63, 59, 55, 64, 65, 63, 52, 43, 53, 49, 79, 68, 73, 74, 97, 44, 63, 56, 63, 82, 64, 110, 67, 65, 75, 79, 81, 74, 77, 72, 66, 96, 50, 72, 68, 73, 71, 69, 89, 82, 63, 66, 72, 52, 102, 57, 47, 84, 56, 58, 69, 65, 131, 67, 63, 79, 55, 108, 72, 52, 73, 78, 77, 72, 65, 68, 73, 49, 63, 71, 75, 89, 89, 77, 65, 79, 67, 57, 49, 68, 54, 47, 74, 89, 83, 54, 70, 78, 67, 74, 62, 49, 88, 73, 67, 80, 68, 80, 87, 62, 68, 54, 65, 54, 91, 72, 59, 60, 89, 84, 76, 60, 80, 56, 68, 89, 62, 63, 68, 75, 75, 67, 67, 80, 66, 97, 53, 64, 60, 61, 53, 101, 62, 56, 60, 79, 76, 75, 78, 84, 57, 145, 56, 64, 67, 71, 59, 66, 53, 74, 72, 44, 70, 62, 63, 60, 52, 55, 80, 55, 55, 61, 57, 55, 54, 49, 63, 62, 62, 62, 65, 59, 77, 59, 72, 81, 82, 86, 62, 79, 52, 75, 59, 82, 54, 87, 64, 59, 65, 62, 48, 56, 61, 68, 56, 89, 72, 62, 75, 65, 80, 45, 57, 55, 80, 40, 76, 76, 73, 65, 60, 52, 60, 61, 94, 55, 58, 90, 64, 73, 63, 66, 55, 83, 60, 82, 69, 116, 65, 65, 98, 77, 63, 71, 54, 69, 62, 88, 68, 89, 65, 49, 73, 50, 66, 57, 53, 57, 70, 56, 54, 58, 53, 80, 56, 60, 59, 60, 59, 62, 76, 82, 55, 52, 72, 75, 77, 93, 72, 65, 71, 50, 57, 54, 101, 86, 66, 57, 66, 56, 73, 72, 94, 80, 55, 69, 61, 61, 45, 56, 71, 46, 67, 109, 62, 84, 46, 68, 76, 65, 55, 55, 64, 76, 50, 57, 50, 57, 87, 58, 76, 71, 50, 48, 60, 60, 66, 56, 56, 68, 69, 55, 47, 61, 55, 49, 66, 59, 78, 76, 67, 58, 90, 61, 61, 71, 60, 83, 57, 71, 69, 69, 38, 88, 82, 76, 50, 48, 76, 67, 71, 42, 91, 70, 66, 86, 59, 89, 56, 72, 44, 80, 65, 54, 51, 64, 74, 63, 67, 57, 65, 58, 56, 77, 54, 47, 69, 79, 70, 68, 82, 75, 77, 57, 73, 61, 51, 55, 69, 74, 77, 72, 63, 69, 61, 82, 79, 71, 51, 72, 71, 94, 47, 64, 66, 49, 57, 85, 51, 78, 63, 81, 72, 69, 59, 57, 42, 50, 74, 56, 68, 60, 57, 71, 65, 100, 78, 59, 80, 75, 74, 51, 51, 81, 77, 83, 83, 64, 53, 48, 73, 64, 54, 80, 62, 63, 72, 56, 59, 55, 50, 77, 59, 62, 74, 60, 52, 83, 72, 59, 61, 69, 54, 66, 48, 63, 60, 68, 77, 68, 58, 54, 57, 83, 69, 70, 85, 41, 53, 68, 84, 74, 104, 56, 46, 58, 70, 57, 72, 68, 50, 116, 55, 66, 43, 70, 61, 54, 62, 60, 52, 70, 72, 60, 60, 52, 55, 48, 63, 51, 45, 61, 70, 37, 75, 81, 75, 43, 80, 48, 93, 56, 58, 53, 72, 84, 64, 55, 56, 76, 61, 64, 47, 61, 80, 61, 61, 71, 40, 56, 59, 77, 103, 78, 94, 71, 76, 49, 85, 54, 56, 60, 59, 67, 59, 80, 107, 47, 61, 78, 62, 48, 69, 55, 56, 66, 60, 83, 60, 65, 56, 67, 69, 65, 76, 72, 78, 74, 60, 69, 80, 64, 73, 59, 66, 83, 64, 71, 60, 70, 63, 47, 49, 49, 62, 65, 60, 73, 48, 72, 61, 50, 60, 62, 77, 51, 74, 70, 66, 51, 70, 64, 79, 64, 63, 65, 61, 79, 64, 74, 67, 61, 99, 52, 67, 60, 61, 66, 89, 57, 69, 84, 45, 63, 79, 54, 60, 71, 46, 85, 78, 48, 52, 68, 60, 79, 81, 47, 55, 64, 85, 78, 67, 50, 74, 105, 48, 61, 68, 82, 77, 84, 56, 49, 56, 77, 48, 61, 51, 58, 90, 94, 69, 84, 71, 56, 58, 95, 124, 73, 81, 87, 80, 64, 62, 75, 48, 76, 81, 69, 67, 67, 52, 60, 83, 77, 57, 58, 63, 60, 71, 55, 57, 53, 67, 59, 68, 73, 67, 66, 39, 57, 54, 66, 68, 81, 51, 49, 63, 44, 96, 73, 63, 88, 72, 48, 53, 72, 67, 77, 65, 57, 60, 70, 75, 53, 58, 76, 76, 76, 75, 53, 56, 78, 66, 79, 69, 68, 56, 62, 59, 66, 48, 76, 57, 54, 82, 72, 55, 53, 70, 52, 102, 53, 67, 67, 65, 79, 66, 80, 118, 79, 72, 74, 86, 52, 104, 78, 80, 71, 39, 76, 73, 77, 64, 55, 51, 72, 58, 57, 62, 59, 60, 49, 72, 65, 67, 59, 54, 52, 57, 64, 84, 61, 76, 60, 64, 66, 57, 80, 68, 49, 61, 62, 56, 59, 57, 95, 80, 55, 51, 57, 55, 52, 57, 169, 60, 64, 60, 62, 53, 68, 54, 44, 53, 57, 59, 53, 71, 47, 54, 64, 64, 65, 74, 83, 83, 63, 79, 52, 41, 54, 67, 51, 68, 61, 50, 59, 75, 78, 64, 58, 68, 57, 81, 73, 68, 52, 47, 59, 69, 74, 64, 70, 63, 70, 68, 59, 65, 55, 47, 76, 88, 64, 79, 62, 61, 80, 68, 57, 58, 79, 84, 66, 63, 77, 86, 53, 68, 103, 68, 71, 59, 69, 58, 67, 72, 75, 76, 62, 62, 80, 56, 56, 80, 55, 59, 51, 74, 71, 55, 56, 65, 63, 76, 59, 51, 69, 59, 69, 66, 80, 51, 53, 60, 59, 109, 64, 82, 46, 51, 83, 63, 71, 57, 46, 48, 61, 55, 56, 53, 73, 68, 58, 67, 35, 54, 60, 60, 68, 75, 57, 78, 68, 58, 52, 70, 70, 70, 56, 89, 59, 55, 89, 64, 69, 77, 52, 70, 54, 64, 84, 59, 44, 80, 57, 67, 60, 56, 71, 74, 37, 75, 65, 94, 87, 56, 68, 66, 57, 62, 59, 59, 74, 53, 63, 77, 68, 65, 49, 70, 68, 67, 62, 85, 93, 68, 83, 51, 52, 72, 49, 59, 64, 56, 70, 90, 56, 69, 55, 76, 55, 43, 69, 98, 78, 61, 48, 72, 60, 75, 73, 72, 87, 67, 67, 57, 36, 78, 83, 70, 54, 55, 48, 70, 55, 55, 64, 57, 67, 63, 70, 99, 72, 61, 53, 64, 71, 54, 122, 68, 64, 59, 50, 98, 73, 78, 97, 39, 78, 63, 103, 101, 78, 78, 60, 56, 52, 52, 62, 53, 66, 93, 69, 61, 70, 62, 69, 49, 42, 54, 63, 55, 81, 92, 66, 50, 54, 43, 87, 70, 63, 53, 74, 69, 47, 45, 51, 49, 71, 59, 61, 59, 60, 70, 49, 48, 51, 68, 85, 70, 82, 81, 75, 54, 45, 83, 63, 66, 59, 62, 71, 53, 75, 66, 52, 67, 76, 57, 81, 49, 53, 49, 58, 81, 46, 47, 60, 78, 60, 58, 53, 75, 55, 64, 58, 76, 81, 71, 53, 58, 52, 66, 89, 77, 82, 46, 58, 56, 61, 86, 65, 144, 55, 57, 61, 43, 79, 55, 85, 58, 68, 93, 58, 61, 52, 63, 78, 68, 61, 62, 50, 78, 44, 66, 98, 62, 66, 85, 96, 66, 56, 62, 57, 92, 70, 58, 90, 70, 49, 67, 46, 81, 58, 49, 60, 65, 63, 62, 77, 64, 102, 58, 72, 70, 67, 55, 86, 47, 55, 61, 57, 83, 60, 79, 92, 57, 75, 61, 71, 57, 79, 84, 70, 55, 77, 78, 62, 63, 60, 82, 55, 62, 62, 65, 67, 90, 47, 68, 50, 39, 69, 55, 76, 52, 68, 73, 57, 46, 75, 73, 43, 68, 80, 58, 59, 71, 73, 72, 50, 66, 54, 62, 49, 57, 84, 71, 52, 67, 69, 53, 68, 76, 55, 55, 60, 66, 77, 55, 51, 67, 55, 62, 51, 53, 98, 77, 62, 51, 78, 74, 85, 62, 87, 109, 71, 45, 65, 109, 60, 73, 57, 48, 67, 58, 56, 67, 91, 67, 60, 61, 57, 89, 136, 53, 68, 32, 49, 51, 68, 57, 70, 55, 50, 62, 63, 58, 72, 70, 71, 49, 44, 64, 58, 53, 38, 104, 53, 57, 56, 77, 51, 68, 35, 118, 51, 50, 52, 62, 49, 67, 62, 97, 74, 65, 89, 83, 66, 59, 44, 63, 43, 66, 80, 72, 100, 70, 72, 60, 62, 70, 65, 48, 69, 64, 67, 65, 62, 53, 72, 73, 73, 67, 61, 52, 97, 61, 69, 47, 79, 61, 53, 84, 84, 53, 82, 92, 73, 84, 70, 62, 85, 84, 72, 76, 45, 63, 61, 65, 43, 63, 64, 55, 70, 57, 57, 76, 65, 39, 51, 67, 75, 54, 60, 72, 55, 66, 93, 58, 58, 63, 77, 48, 101, 74, 52, 41, 81, 83, 59, 63, 62, 66, 61, 61, 68, 66, 51, 77, 58, 47, 60, 62, 60, 73, 60, 56, 67, 69, 87, 77, 61, 64, 52, 70, 71, 60, 48, 64, 71, 69, 55, 71, 82, 82, 74, 75, 61, 66, 73, 51, 44, 64, 69, 79, 65, 55, 77, 64, 49, 66, 71, 69, 85, 57, 98, 52, 61, 64, 73, 49, 54, 73, 74, 63, 79, 70, 62, 61, 83, 57, 55, 55, 51, 58, 49, 85, 54, 69, 52, 69, 55, 49, 46, 46, 41, 65, 59, 72, 49, 61, 74, 62, 59, 70, 73, 49, 70, 74, 61, 63, 68, 67, 72, 68, 62, 55, 60, 62, 80, 52, 70, 80, 62, 64, 74, 87, 69, 71, 55, 59, 56, 80, 63, 82, 73, 63, 60, 73, 63, 51, 51, 75, 79, 55, 62, 68, 57, 67, 79, 70, 65, 78, 109, 52, 71, 66, 77, 109, 51, 89, 56, 95, 79, 83, 53, 44, 88, 46, 56, 70, 61, 61, 69, 65, 90, 43, 71, 73, 57, 48, 50, 80, 57, 44, 89, 54, 53, 49, 54, 46, 75, 56, 34, 56, 67, 76, 86, 53, 61, 61, 65, 78, 60, 55, 77, 86, 56, 50, 82, 66, 77, 50, 60, 63, 65, 62, 36, 58, 58, 86, 67, 59, 75, 54, 75, 55, 83, 80, 89, 65, 70, 73, 61, 74, 61, 105, 60, 66, 71, 68, 70, 69, 129, 82, 42, 63, 64, 82, 63, 74, 55, 70, 60, 61, 82, 90, 72, 70, 53, 79, 55, 66, 67, 93, 63, 68, 80, 66, 76, 70, 74, 55, 73, 58, 73, 51, 66, 69, 40, 71, 58, 52, 96, 43, 46, 58, 53, 106, 108, 68, 71, 68, 56, 77, 88, 65, 74, 94, 61, 67, 61, 56, 74, 73, 44, 73, 53, 63, 57, 62, 81, 65, 57, 43, 85, 48, 59, 49, 72, 79, 56, 67, 55, 54, 67, 75, 70, 89, 52, 66, 69, 77, 79, 59, 59, 94, 73, 70, 66, 63, 43, 71, 53, 92, 59, 45, 62, 57, 58, 61, 59, 39, 48, 92, 76, 56, 81, 50, 60, 49, 42, 46, 63, 63, 74, 61, 52, 74, 45, 58, 95, 56, 106, 54, 49, 58, 63, 61, 81, 54, 67, 87, 47, 77, 78, 67, 67, 76, 83, 46, 55, 65, 82, 83, 41, 105, 48, 46, 75, 47, 71, 64, 58, 60, 65, 54, 64, 68, 68, 59, 57, 63, 48, 48, 79, 59, 69, 110, 65, 60, 79, 61, 85, 78, 63, 55, 82, 49, 64, 70, 55, 62, 48, 99, 62, 74, 79, 61, 38, 57, 48, 98, 82, 49, 56, 71, 74, 42, 69, 59, 57, 76, 61, 55, 100, 57, 59, 62, 60, 126, 69, 67, 87, 62, 98, 79, 68, 57, 76, 44, 67, 71, 81, 85, 48, 69, 54, 82, 48, 64, 81, 55, 55, 63, 46, 62, 83, 59, 90, 73, 62, 70, 128, 75, 60, 70, 61, 59, 54, 67, 67, 59, 76, 64, 83, 57, 66, 36, 60, 75, 37, 45, 75, 71, 89, 38, 45, 83, 37, 64, 81, 78, 43, 53, 61, 50, 61, 59, 57, 54, 72, 72, 73, 63, 105, 70, 49, 75, 62, 52, 66, 92, 92, 40, 56, 72, 57, 80, 74, 82, 64, 59, 53, 62, 47, 74, 46, 62, 66, 86, 82, 80, 69, 83, 56, 70, 77, 69, 71, 70, 67, 50, 91, 54, 51, 69, 58, 59, 54, 80, 53, 68, 57, 53, 68, 72, 67, 57, 69, 79, 47, 70, 77, 51, 130, 77, 56, 52, 55, 45, 89, 99, 79, 60, 64, 55, 85, 60, 68, 74, 84, 76, 71, 61, 45, 49, 55, 50, 87, 62, 60, 64, 51, 53, 66, 66, 37, 63, 64, 71, 59, 80, 70, 57, 91, 75, 55, 69, 73, 71, 62, 70, 72, 64, 59, 60, 71, 74, 61, 70, 56, 146, 76, 51, 56, 62, 52, 29, 52, 76, 73, 66, 68, 65, 68, 63, 43, 76, 64, 79, 90, 76, 63, 97, 68, 73, 71, 49, 84, 49, 61, 46, 80, 59, 69, 49, 105, 76, 74, 78, 66, 68, 67, 51, 63, 64, 69, 66, 69, 78, 80, 37, 71, 63, 60, 74, 72, 43, 62, 79, 106, 67, 56, 57, 103, 50, 79, 68, 66, 69, 60, 53, 86, 74, 60, 78, 60, 71, 66, 39, 72, 57, 58, 63, 85, 61, 56, 60, 49, 87, 58, 77, 102, 86, 63, 49, 64, 94, 49, 64, 73, 71, 46, 70, 61, 80, 56, 56, 53, 54, 79, 79, 62, 51, 59, 57, 74, 74, 69, 84, 55, 57, 56, 68, 66, 77, 62, 68, 91, 72, 61, 110, 55, 55, 62, 50, 47, 61, 73, 62, 52, 53, 53, 85, 51, 65, 63, 73, 52, 131, 77, 64, 56, 61, 64, 69, 68, 79, 94, 59, 104, 70, 55, 58, 66, 70, 36, 49, 67, 65, 71, 62, 66, 66, 72, 44, 83, 71, 58, 81, 46, 72, 75, 60, 52, 67, 84, 65, 69, 51, 56, 64, 76, 63, 61, 65, 84, 51, 81, 77, 73, 66, 82, 77, 66, 94, 81, 65, 57, 45, 63, 50, 59, 61, 59, 57, 61, 59, 81, 64, 54, 99, 53, 62, 82, 59, 62, 105, 53, 54, 54, 61, 62, 63, 58, 91, 48, 56, 63, 75, 67, 64, 50, 61, 79, 63, 83, 66, 147, 61, 72, 60, 86, 73, 67, 38, 86, 86, 55, 53, 51, 49, 67, 61, 66, 59, 51, 60, 45, 48, 66, 49, 61, 67, 59, 36, 50, 64, 67, 63, 70, 65, 62, 62, 51, 76, 71, 64, 50, 62, 56, 82, 72, 46, 55, 61, 75, 66, 53, 60, 54, 72, 66, 66, 79, 76, 66, 67, 80, 66, 38, 80, 64, 39, 57, 53, 61, 58, 63, 71, 63, 69, 70, 49, 65, 73, 54, 58, 35, 69, 56, 63, 70, 75, 66, 62, 85, 64, 78, 78, 89, 54, 56, 45, 37, 86, 56, 63, 54, 44, 84, 66, 79, 83, 80, 59, 55, 69, 68, 67, 64, 73, 51, 69, 61, 65, 67, 65, 65, 64, 54, 55, 61, 76, 59, 76, 43, 69, 55, 75, 39, 84, 67, 93, 59, 73, 47, 63, 75, 65, 45, 86, 55, 63, 66, 70, 86, 83, 57, 64, 58, 71, 77, 53, 54, 88, 55, 58, 60, 75, 78, 65, 62, 46, 69, 70, 55, 59, 70, 81, 64, 71, 65, 60, 56, 68, 72, 80, 53, 53, 55, 86, 76, 47, 59, 53, 70, 50, 62, 54, 53, 56, 62, 66, 69, 58, 57, 49, 57, 86, 78, 81, 105, 133, 65, 57, 58, 66, 66, 70, 77, 57, 60, 62, 69, 62, 71, 82, 63, 50, 75, 48, 58, 71, 74, 52, 79, 71, 45, 84, 77, 67, 62, 60, 38, 46, 71, 51, 70, 61, 44, 54, 50, 69, 48, 77, 57, 45, 64, 53, 64, 78, 97, 65, 93, 64, 66, 71, 89, 55, 79, 57, 59, 55, 43, 73, 70, 80, 63, 57, 82, 44, 88, 57, 56, 69, 59, 24, 66, 71, 68, 76, 70, 82, 82, 77, 79, 58, 76, 56, 69, 74, 69, 58, 64, 54, 22, 52, 81, 101, 61, 64, 43, 71, 66, 84, 48, 77, 46, 69, 104, 61, 48, 79, 76, 62, 53, 72, 75, 64, 63, 75, 56, 85, 67, 63, 45, 75, 53, 75, 69, 58, 56, 63, 64, 61, 68, 47, 74, 83, 54, 62, 57, 68, 85, 49, 63, 84, 67, 56, 63, 79, 53, 62, 76, 91, 45, 63, 76, 50, 61, 52, 46, 61, 73, 83, 42, 82, 65, 68, 66, 51, 74, 77, 67, 63, 65, 63, 65, 80, 73, 52, 72, 65, 76, 58, 68, 56, 76, 70, 67, 67, 71, 55, 74, 41, 62, 74, 63, 80, 57, 81, 66, 73, 69, 77, 70, 52, 76, 75, 75, 93, 57, 87, 66, 63, 106, 80, 46, 65, 60, 71, 58, 49, 61, 94, 69, 67, 52, 57, 56, 48, 50, 54, 52, 73, 58, 56, 77, 59, 63, 59, 70, 57, 58, 79, 71, 69, 69, 64, 76, 85, 67, 67, 52, 73, 61, 70, 64, 54, 69, 75, 67, 49, 45, 80, 67, 77, 82, 90, 56, 70, 35, 51, 89, 54, 56, 50, 61, 82, 59, 90, 74, 92, 47, 68, 65, 57, 66, 108, 74, 46, 67, 53, 60, 64, 38, 56, 59, 54, 60, 64, 73, 56, 114, 58, 51, 67, 73, 45, 75, 75, 64, 68, 55, 76, 55, 66, 55, 70, 71, 73, 92, 43, 96, 63, 81, 65, 65, 50, 68, 91, 72, 82, 55, 52, 81, 60, 67, 73, 49, 60, 53, 110, 68, 68, 65, 68, 83, 79, 54, 61, 62, 45, 64, 41, 55, 55, 53, 54, 91, 50, 79, 33, 91, 70, 49, 91, 57, 55, 66, 57, 165, 74, 94, 64, 70, 46, 53, 93, 74, 95, 67, 80, 96, 68, 71, 54, 65, 56, 76, 59, 53, 70, 58, 45, 76, 67, 60, 60, 73, 65, 63, 64, 66, 70, 86, 60, 64, 50, 121, 49, 74, 70, 80, 76, 46, 54, 70, 64, 61, 53, 80, 90, 63, 65, 69, 50, 61, 65, 81, 71, 78, 52, 76, 78, 73, 90, 55, 65, 62, 69, 76, 67, 67, 62, 71, 75, 62, 56, 66, 61, 69, 74, 63, 57, 50, 53, 59, 72, 65, 85, 77, 70, 68, 56, 72, 58, 81, 70, 75, 79, 63, 75, 62, 78, 100, 72, 75, 61, 68, 53, 63, 77, 65, 79, 75, 88, 69, 64, 47, 52, 68, 49, 33, 80, 74, 65, 69, 64, 49, 62, 52, 88, 71, 77, 76, 67, 59, 100, 64, 51, 57, 65, 54, 58, 59, 79, 77, 61, 74, 56, 70, 63, 53, 70, 56, 49, 59, 54, 73, 79, 78, 82, 57, 61, 59, 86, 57, 78, 59, 48, 66, 110, 88, 69, 41, 60, 70, 65, 63, 74, 54, 81, 71, 60, 71, 91, 56, 74, 64, 66, 64, 64, 63, 56, 64, 44, 59, 82, 57, 54, 66, 56, 58, 77, 70, 79, 81, 59, 76, 72, 71, 79, 62, 61, 96, 52, 57, 64, 70, 74, 59, 62, 59, 62, 77, 64, 97, 77, 68, 92, 47, 58, 73, 65, 49, 67, 67, 69, 72, 56, 58, 55, 77, 66, 90, 91, 79, 55, 53, 61, 58, 46, 75, 71, 96, 58, 76, 58, 51, 68, 43, 61, 73, 80, 76, 59, 67, 58, 56, 49, 61, 64, 66, 68, 71, 80, 67, 51, 67, 67, 100, 60, 71, 73, 69, 54, 78, 79, 77, 59, 55, 58, 50, 59, 66, 66, 72, 62, 44, 77, 67, 78, 47, 63, 65, 61, 86, 59, 60, 50, 85, 101, 65, 45, 81, 54, 70, 55, 66, 54, 61, 79, 77, 58, 66, 49, 57, 53, 72, 56, 61, 59, 83, 60, 62, 51, 81, 66, 50, 56, 80, 51, 75, 98, 76, 56, 51, 49, 64, 64, 60, 57, 70, 65, 66, 68, 70, 50, 74, 53, 55, 70, 59, 42, 60, 77, 72, 62, 60, 56, 75, 76, 49, 91, 55, 71, 59, 60, 47, 59, 72, 70, 54, 68, 96, 53, 74, 74, 58, 76, 60, 65, 96, 88, 60, 58, 74, 72, 74, 138, 57, 55, 75, 68, 55, 66, 57, 83, 52, 71, 68, 54, 64, 57, 68, 81, 52, 53, 66, 50, 59, 30, 43, 64, 46, 77, 58, 62, 76, 71, 54, 67, 60, 55, 72, 74, 70, 81, 59, 61, 65, 66, 62, 60, 80, 54, 60, 67, 86, 65, 62, 60, 66, 52, 61, 60, 70, 60, 61, 57, 58, 55, 57, 53, 50, 59, 61, 79, 69, 65, 76, 57, 50, 54, 53, 62, 71, 52, 74, 80, 103, 60, 105, 76, 54, 65, 69, 79, 48, 56, 62, 73, 39, 97, 60, 70, 59, 63, 94, 67, 78, 78, 58, 60, 67, 56, 73, 62, 56, 68, 58, 87, 63, 60, 81, 84, 48, 59, 67, 62, 67, 58, 68, 68, 63, 79, 61, 85, 56, 58, 63, 61, 58, 77, 60, 54, 60, 57, 63, 60, 59, 75, 60, 64, 59, 78, 66, 45, 73, 45, 63, 56, 54, 66, 63, 80, 50, 59, 59, 58, 84, 75, 80, 74, 62, 91, 49, 63, 67, 56, 55, 64, 57, 79, 75, 67, 58, 63, 65, 62, 58, 54, 80, 41, 62, 75, 54, 61, 49, 68, 71, 67, 65, 56, 77, 127, 63, 56, 62, 58, 61, 64, 54, 51, 61, 80, 68, 85, 58, 71, 60, 112, 65, 87, 69, 79, 63, 66, 60, 66, 76, 71, 86, 61, 73, 72, 54, 60, 64, 53, 76, 69, 62, 66, 64, 59, 59, 58, 57, 55, 61, 64, 68, 72, 61, 54, 61, 84, 63, 49, 65, 59, 57, 70, 69, 63, 63, 60, 53, 58, 118, 61, 69, 62, 62, 53, 52, 70, 59, 73, 66, 72, 70, 58, 59, 63, 62, 59, 62, 69, 54, 69, 59, 65, 91, 70, 64, 58, 48, 87, 51, 73, 64, 71, 55, 64, 54, 70, 83, 68, 57, 85, 57, 69, 65, 56, 54, 76, 63, 78, 66, 69, 69, 58, 69, 61, 59, 73, 59, 60, 70, 56, 65, 47, 72, 76, 55, 59, 91, 68, 66, 68, 87, 84, 63, 53, 62, 69, 51, 64, 78, 58, 76, 74, 51, 79, 60, 63, 56, 60, 64, 54, 67, 67, 78, 63, 104, 69, 60, 60, 78, 47, 81, 65, 71, 81, 70, 60, 74, 63, 52, 60, 65, 42, 76, 68, 64, 65, 60, 91, 61, 70, 101, 71, 61, 57, 70, 45, 74, 53, 74, 63, 69, 59, 63, 56, 57, 71, 69, 70, 70, 67, 76, 81, 56, 57, 66, 66, 58, 86, 59, 52, 46, 55, 58, 71, 47, 71, 82, 112, 164, 70, 56, 59, 62, 65, 91, 70, 58, 61, 66, 72, 75, 68, 79, 66, 62, 74, 65, 75, 71, 48, 71, 56, 74, 58, 80, 72, 53, 60, 59, 63, 77, 67, 63, 66, 58, 73, 61, 53, 142, 82, 127, 60, 56, 74, 54, 53, 58, 62, 59, 62, 55, 87, 62, 51, 68, 69, 65, 117, 65, 42, 58, 69, 45, 64, 60, 59, 69, 101, 74, 99, 72, 64, 71, 66, 71, 66, 64, 64, 66, 55, 64, 63, 59, 61, 70, 62, 63, 64, 78, 61, 72, 82, 67, 52, 67, 84, 66, 58, 70, 81, 57, 59, 64, 59, 62, 52, 60, 71, 58, 79, 72, 53, 68, 64, 54, 71, 59, 67, 59, 59, 78, 52, 57, 65, 61, 78, 47, 72, 66, 52, 68, 64, 47, 57, 74, 68, 91, 51, 85, 76, 54, 80, 58, 48, 53, 61, 54, 49, 59, 81, 53, 64, 66, 71, 67, 71, 74, 63, 68, 67, 64, 69, 67, 50, 66, 68, 63, 101, 68, 70, 94, 63, 71, 63, 69, 89, 66, 52, 52, 57, 54, 54, 51, 58, 66, 56, 59, 67, 63, 71, 66, 57, 54, 66, 51, 55, 87, 56, 58, 52, 79, 59, 98, 80, 54, 80, 59, 71, 56, 68, 46, 51, 63, 57, 73, 86, 69, 62, 62, 65, 64, 73, 63, 67, 62, 84, 67, 66, 57, 60, 58, 80, 67, 50, 104, 61, 62, 58, 57, 57, 64, 61, 79, 71, 69, 69, 54, 61, 55, 71, 55, 71, 56, 55, 60, 79, 57, 44, 64, 68, 55, 78, 56, 71, 75, 78, 68, 84, 60, 81, 59, 69, 104, 57, 65, 73, 86, 62, 62, 78, 53, 72, 69, 60, 58, 69, 59, 60, 57, 53, 61, 58, 67, 60, 66, 63, 67, 53, 69, 78, 69, 45, 53, 62, 53, 69, 81, 57, 53, 78, 73, 58, 81, 77, 70, 75, 66, 74, 57, 72, 56, 96, 70, 62, 69, 55, 51, 68, 65, 58, 54, 85, 40, 75, 56, 61, 73, 93, 94, 52, 59, 69, 50, 72, 90, 77, 59, 51, 68, 69, 61, 76, 52, 63, 54, 111, 95, 67, 57, 64, 63, 59, 62, 74, 62, 62, 71, 56, 57, 46, 53, 66, 65, 62, 56, 71, 74, 52, 44, 59, 57, 39, 48, 105, 63, 57, 74, 59, 60, 69, 82, 69, 58, 79, 58, 70, 54, 65, 95, 71, 46, 64, 54, 79, 64, 49, 57, 57, 75, 88, 52, 64, 91, 67, 71, 56, 75, 81, 74, 73, 81, 83, 64, 86, 71, 125, 48, 60, 40, 49, 62, 58, 63, 53, 77, 84, 69, 57, 68, 59, 33, 64, 73, 64, 57, 60, 64, 77, 52, 57, 57, 54, 44, 92, 38, 62, 57, 46, 57, 51, 48, 93, 66, 49, 73, 64, 68, 57, 66, 65, 64, 65, 66, 60, 66, 60, 54, 90, 108, 76, 63, 83, 51, 56, 62, 53, 61, 57, 62, 93, 59, 51, 80, 56, 79, 87, 72, 63, 69, 93, 81, 46, 71, 46, 163, 61, 44, 60, 60, 63, 65, 72, 62, 55, 89, 83, 50, 68, 82, 68, 97, 52, 69, 63, 57, 50, 50, 75, 61, 58, 61, 47, 100, 106, 82, 68, 61, 67, 54, 70, 57, 70, 59, 47, 50, 71, 50, 97, 131, 87, 73, 75, 53, 50, 47, 65, 61, 66, 59, 58, 59, 54, 54, 56, 98, 74, 52, 75, 68, 58, 73, 67, 118, 66, 70, 53, 60, 80, 77, 84, 70, 58, 56, 79, 63, 53, 62, 59, 54, 68, 74, 72, 58, 54, 53, 91, 56, 63, 62, 64, 64, 62, 60, 60, 70, 67, 49, 63, 84, 132, 68, 71, 81, 75, 74, 47, 57, 72, 55, 57, 50, 54, 59, 64, 60, 107, 55, 118, 70, 74, 61, 74, 61, 70, 53, 63, 65, 53, 57, 50, 68, 63, 49, 63, 63, 63, 56, 69, 89, 57, 71, 49, 72, 71, 42, 61, 69, 60, 58, 71, 66, 41, 49, 71, 43, 82, 55, 77, 63, 57, 105, 65, 51, 83, 60, 72, 47, 76, 79, 46, 57, 51, 78, 69, 64, 62, 73, 71, 61, 81, 62, 61, 74, 72, 86, 52, 55, 77, 84, 75, 79, 71, 53, 46, 56, 67, 115, 80, 77, 65, 73, 49, 107, 64, 80, 60, 37, 58, 57, 64, 97, 116, 73, 63, 67, 55, 47, 62, 62, 69, 70, 60, 72, 58, 39, 52, 59, 55, 73, 57, 56, 71, 68, 54, 77, 76, 45, 58, 73, 83, 73, 72, 63, 50, 76, 56, 71, 66, 66, 75, 61, 79, 78, 74, 75, 57, 49, 68, 134, 50, 69, 51, 64, 67, 62, 74, 62, 75, 69, 65, 71, 82, 78, 65, 67, 68, 66, 70, 60, 62, 46, 70, 62, 52, 59, 52, 47, 62, 79, 62, 68, 48, 142, 78, 71, 58, 66, 57, 58, 65, 71, 51, 65, 66, 41, 55, 65, 54, 77, 72, 63, 79, 77, 49, 74, 57, 66, 44, 61, 68, 65, 57, 98, 49, 37, 58, 74, 61, 60, 32, 50, 52, 94, 47, 51, 65, 57, 61, 77, 51, 60, 63, 96, 66, 52, 78, 79, 72, 53, 84, 51, 58, 70, 69, 75, 73, 87, 56, 52, 66, 58, 81, 76, 40, 72, 59, 75, 58, 54, 57, 49, 80, 59, 97, 52, 70, 57, 80, 67, 65, 85, 72, 57, 70, 47, 52, 51, 54, 61, 57, 71, 33, 61, 93, 75, 50, 66, 57, 58, 62, 69, 46, 75, 54, 62, 68, 77, 59, 60, 63, 80, 72, 76, 69, 42, 92, 53, 53, 56, 53, 71, 95, 59, 78, 55, 56, 91, 60, 47, 70, 82, 62, 55, 86, 59, 56, 68, 64, 62, 61, 108, 77, 50, 42, 67, 60, 53, 66, 69, 69, 54, 62, 64, 95, 60, 45, 69, 68, 86, 70, 83, 72, 142, 113, 64, 66, 69, 57, 58, 54, 97, 58, 94, 78, 61, 63, 60, 128, 51, 52, 59, 76, 72, 63, 58, 55, 75, 67, 58, 60, 73, 57, 57, 69, 85, 67, 71, 45, 56, 50, 72, 62, 69, 50, 58, 57, 51, 46, 75, 73, 46, 63, 78, 52, 55, 78, 52, 53, 64, 50, 78, 54, 70, 72, 71, 80, 65, 67, 56, 55, 73, 58, 51, 58, 51, 66, 46, 51, 87, 78, 82, 60, 58, 66, 64, 84, 58, 73, 92, 38, 62, 73, 110, 53, 43, 126, 71, 88, 84, 68, 63, 95, 51, 73, 81, 70, 53, 48, 73, 55, 48, 50, 45, 60, 61, 68, 73, 59, 49, 51, 76, 78, 83, 47, 41, 68, 58, 86, 39, 51, 74, 49, 86, 70, 67, 58, 82, 62, 49, 76, 37, 61, 66, 85, 64, 96, 62, 57, 54, 71, 81, 52, 65, 59, 48, 53, 64, 62, 74, 84, 71, 39, 69, 71, 71, 51, 69, 57, 76, 96, 58, 56, 57, 58, 62, 67, 54, 33, 78, 81, 57, 57, 59, 107, 67, 73, 66, 57, 60, 60, 49, 79, 70, 87, 69, 77, 59, 62, 119, 51, 51, 98, 72, 61, 56, 56, 71, 77, 73, 46, 49, 56, 55, 128, 57, 63, 69, 77, 58, 76, 63, 66, 66, 56, 84, 61, 63, 69, 61, 69, 75, 67, 115, 74, 57, 71, 52, 62, 59, 67, 64, 63, 52, 58, 65, 50, 95, 72, 72, 67, 81, 105, 58, 61, 55, 61, 74, 63, 46, 56, 65, 81, 62, 67, 79, 48, 67, 56, 55, 66, 82, 61, 46, 62, 61, 68, 89, 47, 70, 50, 65, 73, 88, 51, 65, 50, 74, 53, 56, 122, 93, 67, 68, 63, 94, 72, 75, 47, 71, 74, 56, 44, 61, 62, 67, 58, 70, 76, 66, 68, 52, 70, 55, 74, 81, 87, 53, 51, 58, 85, 71, 62, 59, 42, 58, 63, 74, 69, 68, 66, 74, 81, 54, 62, 58, 53, 46, 52, 67, 50, 52, 70, 65, 82, 55, 102, 63, 58, 66, 119, 50, 46, 46, 61, 59, 85, 69, 52, 74, 72, 76, 62, 45, 84, 68, 54, 52, 53, 82, 78, 61, 86, 43, 63, 58, 99, 48, 46, 62, 63, 49, 65, 67, 69, 64, 66, 56, 90, 56, 81, 62, 60, 53, 65, 57, 72, 77, 55, 79, 64, 58, 58, 56, 56, 83, 69, 80, 84, 75, 75, 82, 52, 61, 68, 63, 77, 62, 71, 57, 84, 84, 60, 49, 78, 59, 53, 74, 70, 60, 60, 60, 62, 71, 85, 65, 66, 58, 50, 57, 46, 60, 56, 83, 61, 32, 59, 64, 100, 64, 55, 28, 66, 102, 61, 52, 71, 69, 98, 89, 82, 74, 62, 104, 96, 76, 48, 96, 77, 52, 64, 117, 65, 61, 62, 65, 60, 71, 46, 85, 66, 108, 59, 84, 79, 54, 60, 98, 76, 75, 64, 83, 46, 50, 62, 60, 76, 56, 110, 57, 57, 56, 82, 58, 71, 44, 62, 53, 102, 54, 71, 70, 52, 52, 102, 66, 95, 59, 49, 65, 56, 61, 87, 92, 63, 63, 57, 60, 81, 78, 94, 68, 80, 57, 79, 65, 66, 66, 53, 68, 47, 51, 86, 48, 59, 65, 86, 66, 60, 60, 57, 57, 71, 67, 51, 68, 49, 68, 63, 85, 59, 44, 63, 55, 113, 73, 82, 57, 90, 48, 62, 97, 55, 52, 46, 52, 60, 49, 39, 84, 71, 75, 76, 67, 81, 63, 62, 67, 94, 108, 42, 53, 73, 65, 55, 33, 84, 70, 46, 59, 58, 40, 111, 80, 63, 59, 79, 77, 71, 50, 83, 48, 48, 97, 52, 85, 63, 87, 47, 95, 72, 63, 68, 81, 46, 75, 94, 55, 53, 69, 69, 58, 46, 59, 50, 68, 72, 49, 83, 40, 77, 54, 52, 61, 66, 79, 88, 67, 61, 59, 67, 48, 63, 51, 69, 66, 52, 55, 70, 45, 44, 49, 93, 44, 63, 82, 78, 60, 92, 50, 68, 61, 41, 76, 47, 82, 83, 84, 83, 56, 53, 58, 79, 63, 84, 67, 42, 66, 75, 55, 53, 68, 69, 66, 67, 63, 58, 58, 43, 62, 61, 52, 54, 59, 52, 68, 55, 79, 57, 81, 39, 73, 57, 50, 93, 61, 68, 63, 102, 46, 70, 53, 59, 66, 71, 68, 83, 61, 62, 86, 66, 80, 109, 88, 75, 64, 80, 62, 84, 51, 63, 76, 48, 45, 52, 63, 55, 80, 60, 69, 61, 52, 60, 61, 74, 77, 66, 63, 71, 72, 68, 122, 45, 57, 69, 47, 68, 90, 72, 54, 54, 62, 80, 60, 48, 82, 63, 43, 61, 61, 56, 48, 72, 93, 87, 78, 74, 74, 81, 57, 73, 67, 68, 47, 69, 60, 136, 64, 68, 65, 60, 52, 41, 87, 70, 57, 65, 62, 77, 120, 46, 68, 103, 54, 65, 68, 84, 45, 58, 94, 88, 73, 60, 93, 37, 62, 68, 73, 63, 74, 53, 64, 92, 58, 57, 61, 98, 39, 91, 54, 81, 67, 58, 72, 63, 74, 83, 55, 58, 55, 73, 72, 46, 107, 76, 59, 61, 87, 70, 44, 52, 65, 59, 48, 55, 86, 64, 58, 104, 50, 75, 74, 67, 63, 65, 61, 51, 47, 92, 64, 53, 127, 54, 67, 76, 57, 85, 76, 57, 55, 67, 68, 53, 55, 57, 54, 52, 81, 86, 55, 57, 89, 84, 51, 88, 56, 58, 78, 63, 58, 90, 49, 82, 84, 125, 59, 61, 62, 61, 83, 63, 58, 58, 53, 76, 64, 57, 64, 55, 40, 108, 61, 72, 27, 71, 53, 72, 101, 83, 67, 70, 62, 49, 65, 61, 56, 81, 59, 66, 91, 44, 62, 38, 58, 76, 70, 58, 85, 51, 69, 68, 45, 67, 62, 76, 57, 50, 63, 48, 67, 83, 81, 78, 81, 54, 59, 75, 56, 34, 67, 62, 84, 59, 73, 63, 63, 56, 68, 59, 83, 69, 42, 56, 107, 42, 81, 56, 40, 65, 73, 83, 57, 78, 67, 51, 96, 59, 96, 83, 50, 74, 57, 60, 70, 49, 77, 55, 64, 53, 58, 53, 51, 69, 81, 69, 68, 49, 98, 76, 52, 85, 58, 59, 70, 55, 67, 52, 58, 52, 56, 70, 67, 141, 87, 76, 108, 56, 51, 88, 64, 66, 50, 77, 69, 74, 44, 34, 60, 75, 64, 69, 68, 57, 69, 59, 75, 92, 53, 62, 54, 48, 65, 97, 66, 83, 71, 63, 47, 54, 70, 95, 61, 62, 67, 48, 46, 58, 92, 57, 53, 69, 58, 86, 110, 78, 54, 80, 64, 59, 64, 67, 61, 81, 104, 58, 87, 79, 60, 73, 78, 116, 75, 74, 91, 50, 67, 72, 66, 44, 58, 21, 72, 128, 68, 56, 64, 38, 75, 60, 95, 64, 39, 67, 54, 79, 75, 76, 45, 96, 47, 51, 65, 60, 71, 97, 74, 46, 82, 56, 103, 51, 77, 59, 42, 73, 70, 88, 47, 71, 70, 84, 85, 41, 62, 45, 57, 62, 39, 63, 76, 47, 67, 50, 39, 100, 60, 52, 57, 68, 76, 48, 55, 39, 58, 81, 51, 91, 70, 76, 93, 72, 75, 52, 94, 55, 67, 58, 57, 67, 64, 68, 50, 58, 72, 71, 67, 67, 55, 66, 74, 62, 74, 54, 64, 90, 73, 56, 58, 90, 56, 67, 100, 89, 99, 53, 104, 58, 60, 71, 59, 73, 61, 75, 95, 56, 65, 52, 76, 63, 70, 55, 63, 76, 38, 48, 61, 79, 66, 59, 70, 65, 86, 60, 67, 45, 65, 67, 78, 60, 83, 50, 69, 64, 62, 69, 73, 60, 72, 69, 60, 81, 57, 106, 64, 65, 30, 48, 61, 64, 65, 41, 61, 67, 57, 74, 81, 62, 81, 69, 61, 49, 70, 66, 79, 56, 99, 66, 54, 68, 51, 90, 77, 55, 69, 71, 78, 46, 63, 81, 52, 70, 102, 69, 55, 39, 78, 58, 95, 55, 78, 55, 69, 70, 61, 68, 74, 59, 70, 52, 66, 77, 69, 65, 56, 57, 71, 62, 61, 67, 63, 66, 46, 59, 85, 69, 51, 39, 60, 53, 60, 75, 47, 54, 77, 41, 70, 55, 64, 64, 65, 43, 64, 86, 52, 69, 75, 53, 63, 60, 78, 45, 51, 51, 54, 62, 50, 65, 54, 80, 54, 62, 70, 57, 42, 54, 60, 74, 73, 86, 59, 84, 78, 38, 59, 76, 39, 76, 60, 59, 69, 48, 78, 88, 54, 65, 54, 56, 52, 57, 63, 56, 49, 71, 75, 57, 48, 61, 70, 72, 61, 83, 87, 75, 70, 76, 81, 45, 56, 62, 80, 79, 95, 51, 99, 49, 88, 75, 62, 66, 59, 51, 43, 60, 54, 62, 71, 67, 63, 45, 84, 53, 89, 68, 108, 72, 72, 72, 57, 66, 58, 52, 68, 60, 72, 65, 67, 51, 51, 59, 69, 75, 65, 73, 51, 65, 55, 72, 60, 81, 61, 85, 67, 52, 62, 64, 98, 70, 55, 78, 47, 71, 58, 63, 59, 100, 60, 59, 63, 60, 55, 63, 67, 82, 89, 74, 84, 69, 61, 72, 60, 61, 85, 52, 82, 69, 59, 64, 58, 58, 73, 72, 74, 44, 62, 71, 59, 92, 67, 95, 66, 67, 53, 56, 66, 66, 60, 81, 79, 72, 69, 64, 70, 54, 53, 61, 66, 63, 52, 64, 64, 76, 73, 61, 77, 61, 60, 62, 54, 71, 64, 59, 67, 59, 65, 61, 81, 58, 68, 70, 63, 73, 65, 61, 66, 65, 62, 83, 77, 54, 59, 51, 56, 94, 75, 70, 56, 67, 73, 69, 53, 63, 56, 80, 51, 64, 42, 61, 57, 66, 71, 75, 58, 93, 76, 55, 51, 75, 63, 59, 62, 65, 70, 65, 86, 64, 67, 64, 77, 62, 101, 61, 58, 86, 87, 56, 60, 52, 54, 51, 48, 70, 74, 62, 84, 54, 61, 85, 74, 53, 62, 60, 57, 65, 67, 51, 58, 57, 58, 82, 60, 70, 59, 61, 61, 55, 76, 78, 62, 51, 82, 80, 53, 57, 85, 58, 63, 65, 92, 89, 84, 61, 52, 70, 44, 74, 65, 61, 62, 62, 60, 64, 54, 57, 84, 74, 61, 60, 56, 67, 61, 67, 68, 51, 46, 57, 57, 73, 65, 76, 56, 64, 64, 65, 64, 73, 54, 56, 70, 89, 74, 66, 60, 69, 64, 70, 56, 55, 71, 75, 54, 58, 76, 68, 62, 59, 90, 62, 68, 66, 67, 55, 44, 75, 57, 64, 91, 53, 74, 67, 67, 60, 58, 54, 131, 67, 65, 57, 55, 62, 59, 63, 58, 59, 68, 60, 62, 58, 69, 73, 74, 55, 61, 68, 56, 72, 71, 57, 56, 65, 64, 61, 79, 59, 72, 61, 104, 72, 58, 65, 53, 66, 71, 62, 62, 59, 61, 57, 50, 62, 67, 61, 59, 72, 59, 72, 73, 51, 69, 48, 61, 97, 58, 70, 68, 62, 56, 62, 65, 63, 70, 63, 65, 64, 66, 72, 66, 58, 64, 69, 53, 80, 56, 66, 51, 75, 59, 62, 65, 95, 57, 63, 62, 66, 63, 68, 65, 73, 97, 70, 66, 58, 100, 68, 53, 54, 67, 59, 79, 55, 59, 51, 62, 56, 97, 66, 45, 79, 66, 60, 68, 63, 90, 63, 62, 56, 64, 56, 61, 52, 59, 65, 60, 64, 65, 75, 64, 75, 107, 99, 67, 66, 61, 61, 66, 59, 64, 54, 69, 56, 76, 58, 61, 70, 55, 55, 55, 52, 91, 90, 56, 82, 80, 82, 68, 69, 61, 68, 53, 57, 66, 74, 57, 57, 86, 66, 54, 77, 70, 61, 60, 58, 62, 75, 64, 51, 65, 61, 70, 66, 64, 73, 57, 60, 59, 59, 70, 66, 72, 69, 69, 52, 64, 62, 54, 64, 77, 54, 67, 62, 60, 69, 67, 78, 68, 53, 65, 63, 60, 57, 63, 58, 74, 64, 71, 55, 68, 61, 58, 58, 63, 55, 60, 59, 74, 75, 67, 75, 64, 68, 50, 59, 63, 58, 56, 143, 54, 63, 66, 82, 52, 61, 65, 85, 71, 59, 61, 70, 56, 106, 43, 63, 81, 81, 92, 75, 58, 90, 60, 70, 69, 75, 95, 57, 56, 57, 90, 66, 70, 84, 50, 58, 63, 84, 70, 76, 60, 67, 62, 59, 45, 70, 59, 89, 56, 62, 53, 63, 49, 69, 60, 76, 55, 55, 60, 43, 85, 55, 40, 79, 65, 65, 65, 43, 52, 61, 59, 67, 64, 78, 63, 71, 74, 54, 63, 57, 54, 100, 66, 68, 71, 67, 67, 66, 93, 77, 67, 80, 49, 86, 74, 58, 52, 50, 82, 55, 65, 59, 73, 57, 82, 59, 69, 55, 90, 64, 80, 57, 60, 61, 59, 82, 68, 68, 70, 76, 67, 86, 67, 66, 56, 74, 68, 55, 112, 58, 79, 60, 74, 59, 61, 59, 74, 61, 53, 76, 72, 101, 69, 56, 73, 60, 70, 66, 53, 65, 65, 65, 116, 67, 53, 58, 56, 65, 67, 73, 71, 73, 81, 64, 67, 66, 53, 60, 73, 67, 67, 56, 50, 61, 50, 71, 87, 70, 56, 122, 57, 82, 64, 66, 67, 65, 47, 91, 61, 59, 67, 61, 60, 62, 78, 52, 64, 56, 70, 66, 76, 44, 63, 70, 53, 48, 49, 82, 61, 45, 74, 77, 60, 51, 61, 118, 56, 52, 65, 66, 86, 55, 66, 52, 61, 55, 65, 59, 56, 71, 61, 55, 60, 56, 61, 68, 58, 82, 64, 66, 60, 57, 130, 68, 77, 62, 65, 81, 65, 73, 62, 45, 83, 64, 73, 69, 54, 89, 56, 70, 60, 71, 54, 56, 65, 68, 86, 84, 87, 59, 64, 64, 62, 63, 71, 70, 75, 66, 55, 67, 62, 55, 64, 60, 58, 73, 67, 63, 58, 60, 87, 68, 51, 70, 64, 68, 60, 60, 66, 77, 88, 76, 56, 74, 81, 63, 55, 64, 83, 81, 57, 75, 62, 67, 63, 61, 63, 53, 57, 58, 70, 64, 58, 55, 59, 56, 62, 84, 71, 65, 56, 78, 55, 61, 60, 67, 61, 51, 67, 60, 90, 65, 71, 82, 67, 65, 63, 61, 59, 66, 73, 69, 66, 101, 64, 55, 54, 72, 67, 53, 59, 83, 76, 63, 83, 60, 59, 54, 57, 68, 54, 74, 69, 54, 57, 59, 68, 69, 87, 61, 63, 65, 70, 65, 67, 60, 60, 73, 60, 60, 84, 61, 57, 73, 57, 52, 69, 68, 64, 67, 57, 75, 60, 57, 55, 62, 68, 56, 64, 68, 108, 65, 60, 60, 56, 61, 101, 70, 59, 62, 56, 65, 69, 63, 64, 52, 63, 68, 62, 54, 71, 60, 78, 64, 57, 59, 62, 96, 99, 69, 60, 83, 64, 74, 56, 72, 47, 57, 58, 53, 60, 69, 74, 60, 82, 59, 68, 74, 63, 57, 71, 57, 69, 58, 82, 62, 70, 61, 83, 69, 52, 61, 60, 62, 65, 57, 116, 61, 56, 59, 78, 75, 61, 78, 58, 92, 72, 61, 51, 55, 70, 84, 57, 39, 71, 65, 50, 74, 56, 54, 58, 102, 53, 59, 72, 59, 74, 57, 136, 55, 57, 74, 69, 57, 50, 59, 45, 65, 47, 69, 57, 50, 85, 67, 62, 61, 84, 99, 102, 44, 77, 65, 55, 61, 62, 74, 79, 49, 87, 84, 73, 70, 56, 89, 54, 86, 51, 63, 55, 58, 62, 102, 50, 67, 50, 69, 96, 65, 89, 79, 76, 64, 82, 58, 43, 23, 81, 67, 81, 76, 59, 98, 56, 67, 51, 52, 85, 69, 62, 70, 57, 44, 68, 62, 70, 60, 72, 81, 55, 87, 45, 66, 67, 61, 85, 58, 51, 73, 54, 94, 69, 77, 52, 57, 66, 58, 60, 34, 51, 78, 60, 51, 71, 60, 60, 72, 76, 55, 85, 92, 64, 57, 43, 68, 63, 94, 87, 69, 53, 39, 58, 57, 54, 50, 105, 60, 67, 53, 50, 64, 71, 59, 85, 44, 60, 93, 48, 63, 96, 81, 75, 63, 55, 51, 64, 60, 67, 81, 84, 72, 68, 54, 51, 61, 66, 56, 53, 54, 92, 91, 71, 54, 55, 61, 56, 53, 48, 81, 68, 112, 61, 60, 52, 64, 57, 52, 69, 56, 65, 67, 63, 68, 59, 77, 84, 60, 75, 50, 61, 73, 48, 55, 83, 44, 55, 57, 58, 64, 106, 60, 75, 49, 60, 66, 56, 66, 62, 68, 65, 69, 80, 56, 55, 54, 54, 47, 78, 41, 65, 52, 58, 86, 64, 62, 55, 61, 109, 102, 50, 65, 60, 40, 58, 52, 65, 66, 48, 70, 77, 67, 61, 64, 69, 56, 68, 51, 54, 70, 59, 31, 67, 55, 89, 62, 88, 54, 50, 57, 84, 100, 48, 76, 64, 50, 72, 67, 82, 68, 63, 62, 62, 72, 73, 67, 58, 66, 66, 65, 68, 53, 72, 84, 66, 48, 60, 62, 53, 65, 77, 61, 43, 56, 51, 41, 54, 51, 70, 58, 63, 61, 37, 43, 82, 133, 80, 52, 52, 67, 75, 80, 60, 59, 51, 68, 64, 95, 67, 53, 65, 62, 52, 66, 128, 76, 99, 58, 65, 60, 56, 43, 74, 66, 62, 71, 60, 71, 103, 53, 59, 90, 80, 73, 66, 68, 81, 57, 49, 74, 58, 75, 51, 61, 46, 64, 83, 80, 35, 57, 58, 46, 56, 69, 83, 63, 51, 71, 66, 64, 74, 58, 61, 86, 56, 43, 59, 54, 72, 97, 61, 73, 70, 51, 63, 102, 55, 73, 81, 57, 60, 92, 49, 64, 50, 39, 74, 57, 62, 71, 47, 71, 75, 72, 63, 59, 57, 52, 68, 113, 60, 60, 64, 88, 69, 56, 61, 72, 65, 70, 73, 57, 65, 52, 88, 88, 64, 50, 103, 75, 59, 46, 86, 81, 55, 85, 49, 69, 39, 84, 80, 60, 57, 83, 62, 71, 45, 93, 60, 56, 89, 42, 62, 64, 68, 87, 62, 64, 59, 58, 59, 58, 60, 103, 58, 69, 79, 45, 65, 57, 54, 76, 61, 35, 76, 48, 49, 66, 59, 48, 37, 54, 84, 58, 44, 76, 57, 71, 52, 47, 37, 71, 87, 41, 54, 62, 78, 66, 75, 60, 64, 95, 67, 79, 106, 51, 61, 60, 65, 76, 57, 57, 61, 38, 44, 69, 65, 69, 61, 50, 65, 56, 42, 60, 60, 55, 57, 80, 62, 50, 80, 63, 41, 69, 48, 56, 62, 66, 72, 37, 52, 57, 83, 75, 70, 62, 94, 46, 77, 52, 72, 58, 78, 50, 55, 69, 57, 78, 68, 55, 71, 59, 85, 87, 62, 64, 72, 82, 64, 48, 55, 74, 70, 65, 91, 53, 68, 85, 54, 70, 66, 47, 67, 78, 68, 58, 70, 54, 57, 79, 56, 89, 59, 60, 51, 65, 63, 101, 46, 55, 96, 68, 49, 42, 67, 35, 46, 83, 55, 67, 54, 83, 51, 78, 72, 66, 66, 68, 58, 44, 76, 58, 68, 62, 64, 73, 84, 59, 37, 68, 66, 51, 72, 105, 62, 85, 52, 57, 46, 75, 44, 58, 79, 64, 95, 60, 109, 44, 48, 72, 65, 40, 53, 59, 60, 52, 77, 65, 90, 71, 70, 72, 67, 48, 71, 60, 81, 63, 65, 77, 58, 65, 81, 59, 74, 47, 85, 54, 74, 110, 62, 75, 70, 71, 58, 44, 46, 60, 75, 57, 43, 48, 80, 58, 75, 65, 55, 80, 59, 79, 83, 89, 69, 74, 50, 71, 81, 87, 56, 74, 59, 69, 73, 75, 68, 66, 46, 88, 68, 75, 58, 61, 55, 141, 61, 69, 60, 67, 58, 44, 56, 85, 54, 71, 69, 71, 55, 58, 62, 71, 58, 54, 82, 95, 51, 47, 53, 67, 56, 62, 67, 60, 58, 56, 74, 56, 110, 49, 74, 60, 44, 74, 68, 91, 65, 37, 77, 87, 61, 77, 54, 85, 46, 62, 44, 41, 77, 68, 73, 37, 62, 53, 105, 69, 70, 59, 77, 58, 71, 79, 56, 62, 86, 86, 107, 66, 71, 52, 54, 47, 61, 46, 65, 69, 47, 72, 90, 70, 64, 55, 69, 53, 51, 78, 105, 64, 46, 72, 52, 60, 72, 101, 103, 116, 80, 78, 52, 65, 59, 78, 68, 64, 84, 86, 64, 67, 72, 90, 55, 62, 59, 75, 79, 64, 67, 60, 60, 62, 69, 84, 81, 81, 60, 70, 79, 60, 109, 61, 64, 66, 54, 57, 67, 47, 64, 90, 72, 91, 79, 95, 52, 60, 39, 63, 81, 71, 81, 51, 73, 57, 115, 70, 52, 26, 64, 56, 59, 57, 68, 50, 54, 61, 63, 53, 53, 42, 42, 51, 85, 89, 39, 56, 45, 36, 67, 64, 89, 72, 86, 62, 40, 63, 71, 61, 59, 82, 112, 69, 56, 49, 57, 48, 70, 66, 69, 70, 83, 62, 68, 73, 52, 53, 76, 48, 59, 49, 66, 43, 63, 70, 51, 47, 68, 70, 67, 74, 36, 70, 75, 86, 90, 63, 74, 58, 51, 64, 65, 84, 77, 62, 54, 88, 92, 78, 49, 41, 68, 83, 65, 72, 68, 42, 48, 76, 59, 74, 57, 61, 67, 56, 86, 53, 62, 50, 46, 68, 51, 59, 50, 64, 63, 72, 56, 70, 65, 49, 59, 64, 112, 114, 41, 78, 88, 138, 60, 55, 94, 81, 56, 80, 97, 75, 70, 65, 64, 56, 61, 57, 51, 69, 53, 71, 46, 69, 52, 68, 59, 63, 88, 80, 62, 87, 63, 58, 79, 91, 71, 54, 65, 46, 70, 63, 47, 58, 45, 87, 60, 89, 58, 64, 72, 82, 37, 58, 100, 56, 64, 80, 88, 47, 58, 47, 52, 53, 57, 73, 46, 48, 57, 60, 58, 56, 45, 62, 66, 59, 85, 66, 67, 68, 57, 57, 60, 61, 73, 47, 60, 53, 67, 67, 67, 58, 56, 62, 100, 67, 71, 67, 59, 70, 57, 66, 60, 54, 131, 56, 118, 70, 57, 79, 53, 56, 65, 52, 66, 64, 56, 59, 59, 52, 85, 63, 57, 56, 56, 58, 58, 47, 144, 54, 82, 48, 63, 67, 66, 99, 49, 99, 85, 58, 54, 73, 65, 68, 83, 77, 66, 64, 93, 55, 56, 60, 106, 60, 45, 68, 55, 73, 61, 63, 66, 88, 68, 62, 63, 67, 68, 90, 52, 60, 63, 53, 63, 49, 76, 70, 47, 63, 60, 76, 73, 76, 119, 101, 58, 69, 83, 127, 75, 63, 52, 43, 74, 69, 62, 53, 61, 47, 91, 65, 65, 63, 70, 77, 63, 61, 68, 43, 55, 89, 64, 67, 63, 68, 63, 81, 49, 75, 55, 73, 85, 57, 62, 57, 59, 73, 73, 51, 54, 62, 51, 49, 61, 42, 77, 53, 61, 88, 50, 63, 59, 61, 63, 65, 54, 85, 87, 107, 45, 71, 72, 55, 100, 74, 59, 90, 78, 64, 59, 92, 57, 82, 62, 68, 67, 83, 56, 63, 60, 65, 63, 61, 73, 68, 67, 56, 82, 65, 74, 55, 46, 56, 79, 58, 58, 64, 59, 70, 55, 86, 75, 58, 81, 50, 60, 86, 70, 68, 67, 101, 64, 53, 65, 60, 101, 54, 74, 64, 58, 67, 61, 59, 54, 70, 79, 66, 111, 68, 47, 103, 57, 65, 41, 60, 70, 63, 59, 65, 73, 62, 64, 65, 74, 58, 119, 90, 53, 62, 56, 49, 59, 69, 70, 73, 54, 75, 80, 72, 59, 61, 75, 76, 118, 57, 70, 63, 65, 72, 59, 64, 65, 60, 74, 98, 67, 66, 65, 53, 60, 60, 76, 59, 64, 65, 56, 56, 74, 64, 66, 70, 58, 79, 62, 74, 133, 64, 56, 62, 66, 57, 70, 55, 66, 60, 75, 70, 63, 68, 39, 64, 58, 70, 51, 56, 61, 58, 63, 63, 68, 69, 79, 64, 57, 58, 66, 71, 60, 40, 69, 93, 58, 62, 57, 58, 89, 65, 53, 57, 67, 61, 55, 66, 68, 56, 72, 80, 65, 60, 66, 73, 45, 69, 68, 57, 52, 53, 66, 47, 62, 63, 66, 52, 61, 60, 61, 54, 66, 79, 57, 93, 62, 58, 64, 63, 57, 67, 76, 67, 65, 70, 62, 82, 61, 55, 75, 58, 65, 66, 59, 53, 61, 67, 68, 105, 54, 87, 78, 53, 56, 65, 67, 42, 62, 57, 52, 57, 130, 86, 92, 85, 60, 59, 86, 66, 63, 60, 71, 57, 69, 47, 64, 78, 58, 71, 82, 53, 80, 76, 67, 82, 60, 53, 63, 70, 80, 69, 68, 51, 64, 68, 125, 66, 70, 62, 58, 70, 60, 63, 105, 57, 58, 58, 65, 75, 66, 69, 59, 46, 62, 75, 67, 60, 58, 71, 58, 76, 98, 70, 61, 58, 74, 60, 52, 71, 58, 76, 52, 120, 66, 58, 44, 50, 54, 49, 40, 71, 50, 78, 84, 72, 64, 58, 54, 56, 78, 60, 42, 60, 77, 62, 100, 70, 62, 62, 65, 63, 74, 66, 90, 58, 70, 88, 54, 69, 67, 70, 66, 101, 60, 62, 53, 51, 66, 92, 77, 71, 51, 76, 74, 58, 72, 72, 65, 47, 55, 66, 76, 49, 60, 87, 73, 48, 58, 86, 88, 40, 64, 47, 76, 83, 53, 49, 58, 43, 61, 74, 65, 60, 62, 58, 67, 60, 62, 63, 80, 60, 59, 76, 59, 57, 51, 78, 47, 65, 52, 51, 57, 46, 69, 62, 66, 48, 54, 55, 68, 47, 76, 73, 75, 72, 56, 68, 90, 66, 68, 81, 56, 53, 48, 33, 84, 55, 58, 57, 58, 96, 55, 65, 55, 59, 55, 103, 62, 54, 50, 54, 58, 62, 75, 63, 55, 68, 50, 57, 64, 85, 79, 81, 66, 54, 38, 61, 66, 51, 60, 66, 68, 84, 52, 70, 58, 66, 62, 107, 80, 83, 71, 55, 62, 94, 67, 57, 55, 67, 80, 62, 60, 76, 61, 64, 75, 76, 60, 68, 72, 54, 107, 91, 66, 77, 52, 67, 67, 73, 68, 50, 59, 46, 72, 61, 52, 68, 56, 63, 62, 56, 63, 66, 78, 56, 77, 68, 57, 51, 62, 52, 58, 51, 58, 51, 62, 90, 65, 43, 55, 123, 116, 72, 61, 68, 54, 60, 61, 64, 65, 55, 64, 60, 79, 62, 58, 63, 62, 60, 42, 74, 54, 64, 76, 69, 58, 70, 75, 70, 57, 56, 51, 69, 78, 72, 56, 68, 83, 63, 78, 52, 78, 67, 57, 70, 66, 63, 51, 63, 75, 69, 62, 68, 81, 77, 83, 61, 35, 61, 51, 49, 63, 57, 57, 54, 52, 54, 47, 107, 59, 54, 62, 63, 60, 56, 74, 52, 43, 62, 53, 56, 66, 60, 69, 58, 56, 50, 129, 62, 69, 63, 73, 53, 58, 59, 78, 65, 88, 57, 57, 50, 68, 55, 81, 63, 95, 61, 57, 67, 72, 66, 51, 58, 46, 63, 59, 61, 67, 75, 61, 91, 70, 46, 73, 65, 59, 46, 84, 69, 68, 52, 56, 66, 60, 56, 61, 105, 76, 66, 50, 74, 86, 61, 93, 58, 73, 71, 53, 58, 56, 58, 56, 70, 66, 55, 60, 70, 60, 84, 56, 59, 79, 59, 64, 60, 52, 51, 59, 64, 61, 73, 68, 69, 74, 73, 64, 82, 83, 67, 58, 62, 88, 75, 50, 59, 56, 66, 50, 51, 63, 54, 95, 53, 68, 58, 61, 71, 69, 70, 58, 103, 66, 55, 56, 64, 60, 66, 78, 49, 72, 54, 90, 63, 69, 40, 53, 63, 57, 74, 76, 68, 65, 95, 54, 85, 55, 51, 63, 51, 66, 61, 56, 50, 58, 64, 70, 74, 60, 47, 110, 55, 72, 75, 51, 50, 64, 67, 71, 65, 51, 80, 58, 55, 54, 69, 76, 79, 70, 77, 75, 70, 88, 58, 63, 86, 65, 58, 68, 81, 87, 106, 67, 60, 57, 70, 78, 66, 72, 63, 68, 84, 61, 60, 65, 63, 50, 73, 103, 64, 51, 139, 79, 70, 62, 81, 97, 55, 64, 64, 59, 87, 59, 65, 59, 74, 56, 74, 77, 77, 57, 83, 97, 91, 61, 73, 52, 57, 55, 95, 74, 52, 66, 63, 52, 114, 73, 60, 91, 72, 59, 73, 67, 67, 54, 74, 69, 71, 58, 64, 69, 59, 63, 64, 70, 55, 66, 64, 51, 51, 83, 62, 42, 66, 69, 69, 62, 52, 90, 53, 49, 55, 124, 71, 43, 91, 52, 112, 52, 71, 71, 48, 79, 50, 51, 42, 55, 73, 111, 70, 75, 58, 55, 70, 67, 70, 55, 87, 73, 59, 53, 73, 63, 47, 39, 85, 81, 92, 61, 53, 83, 56, 62, 37, 63, 61, 49, 88, 63, 62, 53, 63, 58, 59, 81, 67, 68, 42, 95, 44, 59, 68, 70, 60, 48, 64, 50, 78, 76, 76, 72, 64, 59, 63, 61, 45, 51, 83, 64, 74, 48, 57, 56, 72, 73, 54, 61, 65, 71, 53, 70, 62, 54, 71, 81, 64, 91, 65, 69, 67, 50, 61, 51, 54, 65, 60, 80, 101, 56, 58, 54, 50, 58, 69, 79, 47, 66, 76, 79, 62, 56, 86, 75, 61, 47, 66, 64, 55, 68, 85, 59, 66, 64, 60, 56, 64, 72, 64, 57, 59, 74, 80, 88, 100, 78, 48, 64, 62, 67, 49, 65, 73, 80, 56, 62, 78, 75, 86, 51, 53, 107, 80, 64, 101, 62, 82, 52, 67, 78, 47, 49, 54, 60, 42, 61, 56, 79, 81, 60, 57, 54, 59, 55, 153, 82, 57, 47, 84, 63, 71, 71, 98, 41, 63, 64, 71, 71, 64, 49, 76, 60, 57, 76, 57, 79, 94, 70, 47, 51, 65, 80, 84, 64, 54, 59, 64, 76, 65, 75, 61, 79, 56, 62, 68, 54, 60, 62, 60, 48, 75, 60, 62, 58, 48, 71, 67, 64, 73, 65, 86, 73, 63, 52, 44, 76, 96, 76, 77, 62, 55, 53, 65, 58, 35, 59, 66, 73, 59, 52, 61, 72, 80, 49, 93, 61, 55, 70, 68, 60, 65, 47, 66, 58, 59, 85, 55, 56, 64, 56, 65, 60, 76, 64, 58, 56, 77, 119, 47, 64, 69, 61, 80, 44, 53, 57, 76, 64, 62, 58, 35, 61, 67, 89, 79, 66, 55, 51, 59, 81, 67, 63, 62, 69, 76, 82, 46, 103, 60, 72, 56, 90, 54, 86, 65, 69, 67, 55, 69, 47, 72, 57, 79, 70, 61, 50, 60, 64, 66, 61, 81, 68, 48, 75, 65, 118, 74, 69, 47, 71, 51, 65, 52, 72, 77, 91, 50, 68, 42, 63, 74, 71, 61, 69, 97, 65, 68, 63, 94, 73, 55, 73, 77, 41, 72, 80, 51, 64, 60, 68, 72, 76, 65, 75, 63, 65, 70, 60, 56, 80, 72, 43, 42, 60, 80, 64, 55, 58, 54, 60, 63, 82, 82, 61, 58, 60, 65, 79, 63, 68, 107, 80, 59, 59, 69, 76, 68, 67, 68, 70, 53, 58, 100, 60, 69, 66, 69, 71, 80, 73, 74, 61, 48, 71, 73, 81, 77, 65, 68, 63, 81, 74, 68, 98, 41, 62, 69, 59, 55, 64, 59, 69, 69, 83, 76, 56, 51, 72, 53, 55, 74, 67, 73, 64, 57, 74, 61, 51, 60, 78, 55, 72, 70, 81, 72, 63, 60, 85, 55, 61, 49, 53, 81, 57, 66, 44, 61, 60, 54, 64, 53, 62, 82, 64, 72, 36, 52, 104, 65, 60, 76, 67, 57, 90, 55, 69, 61, 83, 139, 61, 61, 98, 67, 41, 64, 69, 58, 67, 61, 63, 56, 64, 62, 73, 87, 108, 69, 75, 61, 59, 79, 57, 74, 59, 64, 48, 54, 62, 69, 63, 58, 79, 65, 65, 64, 50, 72, 84, 84, 70, 68, 73, 84, 37, 42, 61, 59, 52, 69, 64, 53, 59, 58, 116, 133, 68, 67, 74, 57, 43, 68, 66, 65, 44, 87, 60, 67, 78, 93, 65, 53, 77, 52, 60, 73, 59, 48, 67, 74, 77, 74, 41, 43, 68, 52, 71, 63, 54, 70, 60, 54, 71, 51, 54, 46, 71, 72, 49, 75, 49, 85, 61, 74, 64, 70, 59, 67, 77, 70, 66, 81, 87, 61, 71, 68, 61, 63, 49, 60, 72, 63, 76, 47, 81, 50, 54, 51, 60, 77, 59, 44, 53, 64, 57, 67, 47, 56, 63, 92, 58, 63, 76, 62, 93, 54, 64, 63, 70, 72, 67, 52, 89, 67, 67, 63, 58, 66, 45, 67, 54, 72, 74, 52, 54, 70, 51, 51, 46, 57, 105, 60, 57, 60, 105, 79, 63, 70, 55, 89, 72, 43, 90, 81, 65, 67, 59, 53, 72, 54, 56, 63, 106, 112, 75, 70, 59, 60, 69, 72, 65, 66, 74, 77, 62, 76, 61, 51, 88, 59, 65, 56, 64, 56, 41, 65, 41, 90, 87, 49, 89, 66, 92, 55, 70, 62, 48, 65, 65, 87, 53, 67, 63, 63, 53, 56, 71, 58, 51, 53, 53, 64, 79, 68, 83, 67, 50, 60, 74, 48, 68, 55, 63, 88, 72, 70, 91, 58, 58, 60, 91, 79, 46, 103, 66, 56, 35, 70, 67, 61, 74, 53, 73, 69, 54, 58, 63, 63, 73, 87, 62, 63, 56, 68, 60, 48, 63, 39, 89, 55, 107, 64, 55, 60, 61, 57, 76, 76, 52, 47, 55, 85, 75, 75, 52, 52, 69, 68, 48, 52, 67, 61, 91, 75, 57, 47, 54, 71, 44, 66, 65, 56, 74, 54, 82, 56, 115, 76, 68, 64, 65, 46, 61, 65, 63, 89, 62, 65, 61, 49, 62, 83, 69, 78, 70, 48, 57, 61, 48, 74, 87, 76, 62, 65, 68, 75, 64, 66, 71, 61, 63, 60, 66, 86, 68, 72, 93, 83, 97, 62, 70, 70, 51, 46, 80, 50, 67, 76, 74, 64, 110, 69, 45, 52, 60, 57, 63, 68, 48, 67, 48, 68, 64, 72, 93, 79, 93, 56, 70, 97, 73, 43, 69, 68, 71, 74, 59, 66, 64, 60, 85, 86, 60, 54, 54, 52, 53, 93, 58, 57, 54, 53, 73, 64, 75, 56, 61, 75, 77, 97, 66, 57, 102, 85, 83, 60, 51, 61, 68, 46, 72, 43, 81, 62, 85, 83, 61, 60, 64, 67, 75, 49, 60, 68, 50, 72, 55, 78, 66, 63, 56, 54, 62, 84, 71, 56, 59, 52, 69, 71, 78, 71, 71, 52, 56, 66, 66, 72, 70, 57, 103, 63, 77, 60, 63, 77, 80, 82, 58, 57, 70, 58, 72, 68, 54, 71, 76, 110, 65, 43, 70, 58, 82, 65, 67, 60, 58, 62, 72, 65, 59, 77, 85, 61, 64, 67, 64, 89, 62, 71, 66, 59, 73, 74, 60, 65, 60, 66, 57, 66, 57, 75, 47, 81, 57, 85, 66, 60, 73, 63, 55, 58, 64, 64, 67, 44, 72, 71, 75, 69, 84, 67, 86, 71, 67, 82, 61, 50, 79, 51, 69, 49, 61, 93, 57, 43, 73, 70, 80, 57, 60, 108, 54, 64, 64, 58, 77, 61, 49, 56, 77, 79, 68, 66, 82, 58, 101, 52, 67, 77, 66, 63, 71, 78, 68, 74, 61, 82, 57, 61, 59, 70, 75, 55, 51, 71, 81, 57, 72, 77, 59, 63, 53, 59, 62, 62, 83, 82, 56, 90, 65, 66, 62, 65, 46, 94, 67, 72, 73, 63, 62, 47, 88, 64, 63, 61, 73, 64, 72, 57, 63, 72, 61, 54, 80, 61, 77, 74, 41, 76, 50, 65, 66, 58, 73, 60, 62, 33, 61, 69, 44, 65, 75, 63, 59, 67, 66, 53, 53, 69, 64, 91, 69, 60, 52, 75, 60, 57, 79, 58, 69, 86, 57, 67, 86, 62, 62, 75, 63, 78, 56, 64, 77, 53, 58, 73, 75, 65, 57, 74, 78, 64, 58, 65, 79, 61, 64, 56, 43, 60, 76, 102, 58, 60, 68, 36, 53, 71, 66, 79, 73, 95, 62, 60, 67, 60, 70, 80, 60, 78, 49, 44, 46, 78, 53, 82, 63, 53, 70, 76, 67, 59, 47, 57, 62, 70, 77, 51, 62, 76, 81, 66, 60, 47, 55, 49, 60, 85, 148, 60, 65, 62, 44, 56, 99, 71, 71, 80, 70, 64, 94, 70, 52, 72, 51, 59, 73, 71, 57, 57, 49, 106, 67, 90, 92, 99, 69, 64, 66, 59, 94, 66, 74, 98, 42, 83, 80, 57, 57, 93, 68, 70, 60, 85, 49, 70, 57, 59, 72, 64, 68, 78, 65, 54, 57, 63, 65, 54, 61, 65, 67, 65, 43, 58, 65, 67, 75, 58, 60, 46, 69, 74, 60, 64, 87, 51, 74, 89, 50, 59, 59, 67, 64, 66, 55, 69, 62, 63, 64, 81, 72, 56, 58, 85, 61, 57, 79, 59, 58, 69, 57, 71, 75, 66, 63, 57, 77, 77, 57, 73, 58, 64, 63, 67, 74, 83, 51, 68, 55, 68, 61, 73, 64, 58, 49, 59, 67, 54, 52, 65, 60, 57, 45, 61, 62, 64, 67, 59, 68, 65, 58, 62, 58, 77, 76, 69, 67, 92, 54, 89, 99, 54, 62, 60, 52, 48, 71, 61, 73, 67, 68, 58, 65, 84, 51, 56, 60, 66, 82, 67, 47, 69, 75, 64, 46, 62, 65, 80, 66, 65, 53, 82, 58, 55, 62, 51, 51, 60, 52, 58, 59, 60, 69, 59, 75, 63, 73, 61, 57, 61, 68, 63, 56, 54, 63, 68, 65, 47, 67, 74, 94, 54, 67, 64, 86, 51, 64, 104, 63, 57, 67, 40, 81, 108, 46, 74, 62, 71, 60, 60, 76, 98, 61, 78, 75, 112, 58, 60, 51, 63, 74, 77, 66, 49, 66, 49, 89, 57, 55, 65, 49, 56, 60, 59, 55, 65, 78, 74, 74, 42, 73, 58, 68, 58, 66, 76, 69, 85, 57, 67, 66, 53, 74, 55, 74, 69, 58, 75, 58, 49, 74, 74, 60, 74, 80, 64, 63, 72, 66, 71, 74, 55, 60, 63, 59, 53, 59, 56, 75, 68, 87, 81, 71, 62, 69, 64, 79, 68, 72, 61, 54, 74, 66, 79, 69, 52, 56, 61, 53, 56, 55, 61, 71, 68, 72, 53, 59, 72, 80, 65, 49, 63, 65, 58, 68, 65, 56, 74, 72, 80, 57, 71, 61, 47, 92, 58, 75, 96, 65, 70, 76, 70, 38, 71, 66, 68, 65, 70, 59, 82, 66, 66, 95, 54, 64, 69, 50, 58, 62, 65, 36, 72, 70, 87, 50, 76, 43, 69, 52, 50, 67, 72, 66, 59, 81, 51, 63, 60, 54, 55, 81, 56, 64, 81, 83, 69, 56, 77, 66, 54, 93, 59, 62, 52, 74, 72, 38, 73, 58, 79, 73, 60, 60, 76, 49, 73, 57, 58, 62, 63, 71, 55, 61, 60, 70, 57, 71, 66, 65, 43, 69, 54, 75, 59, 66, 64, 73, 111, 62, 68, 69, 62, 42, 60, 74, 104, 59, 59, 60, 52, 47, 63, 62, 50, 62, 82, 61, 64, 58, 80, 101, 42, 57, 68, 50, 60, 59, 64, 85, 44, 72, 56, 63, 64, 77, 66, 61, 51, 70, 53, 56, 56, 56, 65, 56, 69, 71, 54, 59, 79, 53, 71, 61, 66, 51, 71, 62, 72, 98, 76, 89, 62, 52, 58, 75, 73, 56, 59, 62, 71, 74, 77, 49, 79, 56, 78, 45, 62, 70, 59, 40, 82, 81, 49, 52, 55, 82, 55, 66, 53, 70, 34, 62, 88, 69, 80, 68, 61, 68, 51, 74, 70, 51, 64, 65, 86, 56, 61, 59, 79, 53, 80, 70, 75, 61, 77, 45, 89, 64, 62, 43, 81, 76, 67, 67, 57, 56, 73, 93, 66, 57, 102, 53, 51, 63, 47, 58, 74, 71, 79, 70, 54, 60, 53, 77, 58, 74, 70, 45, 72, 64, 52, 71, 59, 144, 63, 76, 83, 48, 68, 62, 82, 56, 53, 48, 90, 108, 76, 64, 52, 54, 53, 71, 64, 55, 89, 55, 72, 51, 71, 65, 73, 73, 65, 56, 56, 61, 115, 62, 63, 65, 98, 67, 80, 73, 70, 75, 59, 65, 115, 59, 66, 55, 52, 57, 60, 60, 55, 55, 59, 93, 70, 50, 66, 48, 58, 69, 76, 51, 60, 73, 72, 78, 50, 61, 68, 63, 52, 77, 61, 39, 69, 76, 76, 60, 66, 57, 65, 77, 64, 66, 65, 90, 63, 82, 63, 64, 74, 70, 75, 55, 58, 56, 69, 67, 78, 73, 56, 73, 51, 64, 50, 78, 72, 56, 59, 55, 78, 73, 58, 53, 56, 89, 44, 46, 53, 70, 53, 42, 62, 70, 60, 59, 61, 62, 45, 57, 79, 58, 104, 60, 59, 53, 49, 57, 73, 68, 57, 70, 60, 64, 92, 54, 58, 76, 76, 89, 63, 75, 79, 60, 47, 63, 75, 50, 58, 68, 82, 75, 62, 50, 66, 55, 67, 70, 124, 73, 57, 57, 55, 59, 59, 53, 72, 68, 78, 67, 65, 59, 51, 63, 52, 60, 58, 51, 63, 62, 68, 56, 69, 77, 65, 64, 70, 60, 56, 66, 81, 79, 47, 75, 52, 76, 52, 57, 52, 54, 46, 84, 52, 68, 71, 72, 52, 54, 64, 57, 75, 45, 77, 115, 60, 65, 56, 59, 64, 75, 46, 84, 63, 64, 64, 65, 64, 70, 84, 59, 63, 50, 64, 41, 80, 50, 65, 52, 68, 59, 76, 59, 53, 77, 84, 62, 53, 67, 59, 68, 52, 82, 92, 73, 89, 79, 93, 57, 60, 40, 59, 43, 64, 70, 69, 72, 66, 69, 92, 64, 58, 58, 62, 65, 61, 41, 76, 50, 67, 58, 74, 66, 58, 69, 66, 53, 44, 60, 78, 56, 76, 48, 59, 56, 72, 49, 57, 47, 73, 107, 80, 61, 62, 55, 79, 67, 57, 83, 70, 61, 68, 50, 54, 46, 47, 59, 54, 77, 46, 43, 71, 89, 63, 89, 75, 56, 66, 69, 61, 64, 84, 68, 46, 90, 50, 74, 52, 53, 39, 70, 65, 69, 86, 66, 57, 82, 119, 68, 78, 53, 62, 58, 64, 66, 73, 69, 58, 68, 60, 59, 85, 55, 66, 73, 63, 69, 56, 60, 51, 59, 61, 78, 81, 74, 78, 67, 62, 65, 61, 62, 69, 58, 59, 77, 66, 63, 52, 78, 61, 65, 75, 72, 48, 62, 67, 60, 65, 71, 69, 69, 58, 81, 50, 121, 60, 59, 50, 65, 69, 65, 56, 53, 84, 97, 41, 64, 106, 37, 66, 62, 76, 62, 109, 86, 64, 55, 56, 68, 69, 70, 60, 46, 64, 76, 64, 57, 91, 52, 71, 87, 46, 63, 61, 61, 48, 94, 58, 69, 55, 112, 83, 73, 63, 59, 64, 63, 57, 63, 99, 62, 86, 51, 50, 90, 60, 65, 62, 53, 116, 145, 56, 68, 54, 99, 60, 43, 58, 78, 103, 63, 63, 75, 49, 71, 58, 59, 81, 66, 62, 86, 79, 57, 67, 74, 66, 60, 43, 68, 77, 85, 55, 88, 59, 60, 89, 47, 48, 102, 70, 75, 56, 41, 46, 64, 78, 67, 55, 70, 56, 59, 42, 78, 51, 63, 44, 62, 67, 61, 57, 77, 57, 74, 50, 47, 71, 71, 73, 49, 56, 56, 56, 59, 52, 54, 63, 59, 60, 53, 67, 79, 54, 61, 64, 59, 75, 54, 44, 62, 57, 72, 71, 53, 71, 65, 31, 70, 78, 64, 93, 61, 55, 89, 56, 72, 58, 86, 92, 70, 62, 59, 52, 44, 50, 58, 71, 67, 53, 75, 96, 53, 59, 68, 49, 61, 88, 73, 66, 59, 65, 75, 82, 64, 73, 68, 52, 59, 70, 70, 80, 66, 76, 77, 83, 66, 44, 63, 53, 80, 59, 63, 76, 67, 77, 70, 51, 59, 73, 59, 107, 53, 57, 56, 64, 84, 63, 53, 45, 66, 53, 49, 49, 53, 70, 56, 64, 63, 74, 84, 67, 58, 70, 80, 70, 52, 48, 39, 91, 72, 62, 61, 78, 63, 94, 71, 59, 62, 111, 68, 81, 49, 54, 60, 86, 75, 71, 97, 51, 78, 58, 119, 62, 75, 76, 73, 80, 74, 63, 53, 56, 50, 63, 61, 53, 61, 68, 55, 75, 71, 70, 78, 62, 62, 74, 65, 56, 84, 56, 59, 73, 78, 71, 50, 82, 60, 66, 64, 91, 68, 67, 95, 65, 77, 56, 78, 82, 63, 76, 83, 48, 74, 36, 112, 72, 55, 63, 62, 46, 58, 50, 86, 59, 68, 111, 49, 59, 89, 58, 59, 68, 59, 101, 46, 72, 83, 62, 69, 52, 65, 88, 69, 76, 56, 116, 53, 57, 64, 55, 61, 53, 58, 70, 83, 64, 51, 88, 49, 71, 47, 60, 70, 64, 58, 62, 49, 85, 57, 62, 55, 65, 60, 64, 59, 58, 57, 64, 78, 65, 55, 68, 62, 63, 81, 80, 53, 67, 66, 62, 101, 73, 65, 67, 71, 64, 83, 52, 63, 72, 57, 59, 69, 62, 50, 75, 70, 84, 64, 60, 59, 77, 61, 56, 136, 98, 63, 64, 59, 82, 53, 67, 70, 67, 83, 70, 62, 60, 56, 70, 61, 47, 57, 65, 49, 68, 67, 70, 67, 91, 59, 103, 59, 46, 59, 54, 58, 52, 46, 60, 100, 60, 65, 65, 65, 109, 50, 61, 63, 76, 58, 64, 77, 84, 71, 84, 56, 56, 43, 86, 78, 64, 76, 62, 63, 66, 57, 61, 58, 59, 57, 59, 62, 78, 65, 67, 61, 61, 54, 65, 65, 72, 69, 53, 68, 64, 50, 77, 69, 58, 84, 69, 72, 91, 69, 62, 74, 49, 64, 92, 62, 76, 97, 70, 79, 82, 63, 69, 67, 67, 98, 56, 63, 66, 59, 53, 69, 86, 60, 56, 83, 83, 59, 65, 67, 78, 65, 54, 103, 59, 48, 77, 77, 83, 72, 48, 83, 54, 69, 97, 62, 55, 67, 64, 43, 95, 71, 47, 60, 75, 56, 51, 48, 119, 72, 53, 77, 62, 65, 72, 50, 66, 55, 62, 87, 52, 65, 63, 72, 63, 77, 55, 62, 65, 62, 70, 90, 52, 78, 77, 50, 59, 109, 54, 74, 66, 70, 74, 66, 71, 64, 69, 60, 81, 60, 43, 67, 49, 46, 69, 54, 64, 65, 68, 71, 60, 68, 52, 72, 72, 67, 86, 70, 64, 62, 56, 61, 55, 122, 61, 87, 85, 58, 49, 66, 44, 77, 71, 75, 62, 70, 70, 56, 52, 84, 105, 59, 55, 72, 75, 64, 47, 71, 72, 63, 54, 62, 66, 59, 57, 67, 67, 68, 106, 60, 52, 50, 84, 66, 80, 106, 76, 66, 62, 82, 69, 39, 110, 81, 74, 50, 63, 80, 54, 60, 61, 71, 46, 69, 62, 66, 84, 55, 42, 67, 61, 98, 71, 51, 65, 65, 76, 45, 47, 87, 65, 83, 74, 55, 69, 80, 71, 49, 62, 60, 77, 89, 67, 58, 71, 53, 82, 57, 48, 47, 79, 48, 50, 66, 81, 40, 36, 67, 88, 72, 55, 69, 69, 62, 54, 43, 53, 52, 68, 87, 65, 66, 60, 57, 55, 71, 68, 51, 51, 58, 95, 44, 60, 83, 109, 57, 52, 96, 50, 67, 74, 48, 54, 95, 55, 56, 96, 78, 37, 62, 76, 75, 29, 69, 103, 50, 56, 88, 95, 49, 57, 61, 99, 65, 64, 61, 95, 92, 57, 90, 44, 48, 81, 68, 87, 86, 87, 38, 45, 80, 66, 74, 50, 50, 73, 60, 63, 92, 83, 59, 91, 57, 62, 103, 53, 50, 112, 55, 57, 77, 71, 69, 62, 65, 75, 76, 84, 79, 59, 55, 68, 61, 49, 76, 64, 77, 76, 50, 62, 67, 43, 85, 71, 90, 50, 77, 60, 67, 74, 62, 47, 47, 59, 47, 68, 66, 48, 83, 57, 61, 51, 66, 73, 75, 64, 52, 65, 65, 70, 54, 52, 110, 43, 84, 70, 59, 44, 50, 85, 56, 69, 51, 77, 40, 47, 68, 80, 95, 58, 58, 35, 60, 93, 61, 65, 73, 64, 58, 71, 48, 60, 64, 70, 60, 72, 69, 69, 70, 75, 74, 56, 76, 63, 50, 70, 58, 85, 47, 69, 62, 66, 65, 91, 49, 104, 57, 71, 54, 70, 47, 56, 72, 71, 47, 72, 57, 73, 48, 83, 86, 58, 57, 68, 81, 65, 38, 64, 53, 60, 68, 53, 68, 87, 69, 70, 56, 78, 73, 80, 76, 78, 51, 61, 65, 61, 59, 52, 56, 56, 64, 144, 76, 63, 59, 57, 81, 70, 55, 69, 66, 96, 62, 91, 78, 52, 64, 60, 56, 52, 73, 90, 110, 67, 76, 90, 59, 69, 59, 67, 66, 61, 111, 82, 65, 73, 63, 68, 48, 85, 70, 65, 97, 75, 58, 119, 101, 82, 60, 72, 96, 64, 154, 67, 68, 56, 66, 61, 60, 70, 49, 69, 45, 55, 74, 62, 37, 63, 95, 64, 82, 74, 62, 51, 55, 47, 60, 63, 71, 99, 65, 52, 42, 55, 82, 57, 60, 68, 69, 58, 56, 45, 80, 59, 48, 71, 47, 66, 67, 56, 45, 92, 70, 59, 68, 62, 55, 57, 60, 90, 67, 63, 57, 47, 73, 59, 74, 96, 61, 83, 56, 74, 65, 52, 56, 73, 52, 71, 56, 53, 63, 53, 65, 67, 54, 87, 70, 82, 47, 59, 58, 95, 73, 70, 57, 87, 46, 52, 74, 65, 64, 55, 67, 107, 86, 87, 46, 74, 119, 58, 52, 53, 60, 63, 68, 95, 55, 74, 70, 45, 55, 107, 47, 88, 47, 73, 72, 97, 68, 69, 92, 54, 59, 59, 58, 77, 64, 76, 62, 54, 52, 51, 38, 60, 74, 54, 57, 80, 73, 54, 81, 55, 53, 62, 54, 54, 57, 71, 63, 111, 69, 64, 44, 52, 62, 49, 89, 64, 62, 55, 69, 44, 54, 65, 69, 89, 60, 88, 52, 70, 64, 63, 65, 56, 55, 42, 66, 54, 54, 56, 53, 70, 54, 80, 51, 66, 69, 68, 68, 61, 48, 61, 74, 75, 60, 71, 66, 68, 58, 58, 60, 76, 58, 64, 61, 75, 40, 79, 62, 70, 39, 104, 53, 65, 53, 65, 71, 82, 38, 80, 74, 35, 68, 77, 64, 63, 65, 62, 75, 64, 65, 43, 70, 49, 28, 88, 65, 62, 60, 47, 48, 57, 72, 44, 71, 63, 89, 79, 64, 77, 52, 50, 68, 69, 68, 56, 119, 77, 64, 58, 59, 72, 61, 73, 62, 60, 67, 68, 62, 51, 72, 79, 54, 74, 52, 74, 46, 74, 76, 61, 45, 53, 63, 57, 55, 49, 107, 79, 107, 62, 45, 72, 70, 56, 81, 57, 89, 65, 69, 61, 61, 60, 59, 62, 85, 64, 52, 73, 58, 68, 63, 68, 52, 56, 53, 65, 87, 60, 61, 112, 54, 97, 62, 68, 73, 72, 80, 55, 83, 70, 92, 61, 97, 74, 79, 63, 61, 55, 47, 67, 63, 79, 62, 74, 53, 71, 70, 52, 48, 42, 52, 45, 60, 39, 57, 53, 79, 49, 60, 75, 62, 79, 73, 75, 62, 62, 64, 67, 41, 78, 69, 62, 62, 51, 49, 52, 61, 49, 62, 70, 71, 92, 121, 60, 112, 42, 57, 56, 68, 51, 82, 62, 53, 67, 75, 52, 47, 64, 67, 52, 135, 69, 55, 57, 78, 62, 77, 64, 44, 99, 63, 87, 73, 66, 57, 66, 54, 68, 67, 70, 76, 48, 71, 53, 60, 65, 75, 51, 72, 72, 59, 73, 62, 43, 72, 58, 66, 60, 54, 44, 51, 56, 61, 62, 67, 91, 74, 82, 34, 67, 49, 79, 56, 73, 82, 63, 75, 61, 44, 83, 89, 68, 95, 69, 97, 58, 56, 52, 63, 74, 36, 54, 51, 81, 110, 72, 60, 61, 48, 62, 65, 72, 109, 77, 41, 77, 105, 90, 72, 75, 73, 58, 63, 59, 54, 60, 81, 58, 75, 52, 57, 74, 59, 66, 67, 42, 89, 104, 50, 57, 69, 58, 67, 81, 62, 73, 71, 49, 74, 53, 99, 62, 49, 53, 71, 80, 72, 74, 49, 60, 77, 54, 63, 60, 56, 65, 63, 48, 60, 62, 67, 60, 73, 76, 83, 59, 68, 54, 48, 56, 77, 76, 72, 47, 66, 72, 79, 77, 57, 41, 63, 93, 62, 80, 65, 59, 65, 61, 75, 73, 60, 62, 77, 60, 63, 73, 80, 58, 69, 63, 80, 75, 74, 61, 80, 48, 59, 76, 81, 68, 58, 65, 51, 72, 63, 62, 57, 59, 46, 54, 58, 58, 63, 78, 51, 58, 64, 85, 51, 100, 47, 50, 61, 54, 82, 73, 52, 84, 70, 71, 56, 64, 100, 62, 70, 63, 69, 52, 63, 70, 66, 71, 53, 80, 65, 52, 58, 54, 54, 72, 61, 101, 60, 59, 82, 55, 59, 67, 79, 73, 80, 64, 85, 70, 61, 52, 61, 95, 73, 66, 80, 47, 70, 71, 74, 70, 77, 71, 57, 64, 64, 91, 57, 72, 58, 76, 53, 47, 56, 64, 65, 96, 67, 76, 84, 67, 50, 59, 63, 78, 61, 69, 78, 55, 70, 46, 86, 69, 57, 50, 61, 58, 64, 70, 76, 70, 63, 76, 59, 77, 79, 62, 61, 69, 64, 88, 74, 45, 79, 69, 100, 59, 72, 76, 74, 47, 82, 50, 68, 58, 76, 56, 109, 66, 63, 67, 60, 60, 105, 49, 66, 49, 70, 59, 67, 56, 61, 41, 58, 67, 67, 63, 93, 59, 66, 55, 42, 76, 64, 62, 53, 57, 62, 63, 48, 63, 42, 51, 80, 64, 75, 60, 73, 48, 63, 65, 78, 74, 55, 57, 90, 66, 79, 60, 65, 47, 55, 56, 76, 63, 77, 57, 55, 88, 55, 63, 54, 63, 74, 43, 61, 82, 77, 79, 73, 47, 81, 37, 53, 59, 59, 46, 61, 67, 60, 73, 81, 83, 63, 62, 76, 98, 40, 53, 108, 61, 62, 70, 74, 78, 74, 74, 57, 91, 67, 57, 62, 62, 45, 68, 60, 64, 52, 72, 60, 58, 77, 94, 56, 69, 101, 70, 65, 89, 71, 62, 56, 60, 78, 65, 85, 65, 48, 58, 55, 79, 81, 45, 67, 52, 55, 55, 58, 63, 49, 73, 106, 71, 72, 70, 55, 56, 43, 66, 74, 63, 65, 36, 68, 68, 55, 60, 57, 61, 57, 41, 49, 61, 68, 51, 71, 72, 62, 62, 76, 60, 52, 84, 49, 50, 46, 68, 85, 53, 61, 84, 55, 64, 62, 47, 66, 48, 88, 73, 50, 56, 45, 88, 66, 60, 96, 83, 67, 63, 69, 70, 57, 60, 61, 64, 51, 60, 66, 61, 75, 64, 84, 76, 51, 66, 82, 61, 63, 45, 68, 67, 79, 59, 32, 57, 84, 63, 66, 53, 80, 88, 71, 64, 80, 87, 71, 60, 46, 49, 61, 60, 45, 80, 90, 62, 55, 78, 68, 62, 61, 66, 61, 75, 74, 69, 69, 65, 68, 87, 55, 83, 61, 70, 49, 66, 60, 55, 92, 90, 49, 70, 42, 66, 57, 63, 49, 45, 81, 48, 98, 65, 52, 52, 55, 90, 49, 70, 77, 79, 67, 67, 64, 84, 59, 63, 56, 108, 82, 80, 89, 52, 73, 62, 76, 107, 66, 67, 80, 62, 60, 51, 109, 81, 76, 67, 100, 60, 69, 49, 62, 79, 54, 66, 58, 57, 48, 67, 67, 60, 61, 53, 52, 79, 42, 58, 40, 67, 43, 76, 67, 75, 47, 56, 63, 73, 60, 57, 67, 60, 60, 62, 73, 63, 75, 80, 87, 88, 64, 52, 80, 58, 78, 84, 48, 69, 80, 47, 60, 54, 78, 61, 66, 70, 57, 72, 69, 101, 73, 84, 59, 79, 51, 44, 63, 90, 85, 55, 74, 56, 83, 82, 96, 62, 58, 50, 76, 81, 69, 61, 74, 64, 75, 74, 88, 85, 45, 62, 73, 81, 71, 48, 61, 68, 66, 67, 40, 67, 76, 70, 78, 53, 74, 61, 63, 87, 55, 66, 83, 47, 69, 87, 84, 79, 69, 97, 72, 62, 48, 45, 67, 73, 64, 80, 68, 71, 69, 68, 49, 72, 52, 50, 66, 83, 56, 74, 69, 57, 63, 52, 67, 61, 45, 86, 74, 66, 51, 71, 65, 60, 63, 70, 63, 86, 73, 91, 61, 41, 64, 56, 69, 56, 58, 45, 65, 78, 53, 61, 57, 39, 48, 62, 107, 59, 61, 74, 50, 90, 59, 60, 62, 82, 103, 68, 65, 91, 62, 62, 66, 51, 74, 49, 67, 62, 52, 45, 60, 56, 83, 67, 85, 79, 62, 67, 72, 42, 74, 93, 48, 68, 80, 57, 65, 66, 51, 61, 66, 95, 77, 56, 63, 59, 89, 70, 45, 76, 71, 75, 50, 68, 64, 90, 68, 61, 63, 65, 52, 58, 46, 63, 54, 52, 43, 63, 62, 79, 75, 70, 51, 78, 69, 39, 46, 94, 67, 54, 61, 68, 53, 63, 82, 96, 67, 79, 71, 78, 73, 58, 51, 66, 64, 47, 74, 61, 71, 37, 83, 56, 58, 48, 56, 48, 92, 68, 62, 65, 61, 105, 49, 45, 56, 58, 55, 49, 52, 71, 84, 49, 74, 65, 90, 89, 63, 83, 64, 85, 73, 80, 63, 52, 111, 72, 81, 64, 121, 92, 54, 66, 70, 66, 55, 58, 82, 36, 64, 88, 85, 56, 102, 89, 53, 110, 59, 65, 70, 53, 71, 73, 62, 88, 59, 62, 69, 97, 64, 79, 59, 46, 77, 63, 89, 66, 55, 48, 82, 67, 62, 88, 62, 82, 55, 76, 65, 70, 69, 47, 81, 54, 61, 87, 56, 58, 75, 72, 67, 63, 98, 67, 55, 96, 60, 64, 62, 79, 63, 62, 58, 57, 63, 84, 52, 77, 64, 76, 58, 58, 80, 69, 64, 80, 57, 57, 85, 53, 77, 73, 55, 57, 84, 82, 60, 55, 85, 65, 58, 54, 79, 67, 57, 69, 45, 65, 51, 68, 78, 75, 59, 81, 53, 54, 60, 80, 59, 53, 81, 70, 55, 86, 62, 78, 47, 76, 55, 54, 67, 50, 77, 61, 60, 64, 61, 63, 67, 71, 61, 93, 54, 61, 73, 54, 65, 60, 68, 59, 78, 57, 60, 53, 54, 74, 110, 65, 65, 59, 65, 35, 75, 57, 65, 60, 74, 50, 59, 63, 66, 61, 60, 69, 56, 63, 65, 68, 76, 56, 77, 78, 62, 66, 45, 83, 72, 54, 54, 76, 65, 50, 86, 78, 47, 63, 63, 78, 62, 46, 64, 76, 109, 68, 84, 78, 65, 64, 63, 69, 62, 47, 71, 74, 67, 63, 63, 61, 79, 83, 72, 73, 70, 66, 58, 55, 68, 54, 59, 71, 65, 56, 103, 55, 53, 57, 62, 77, 67, 56, 79, 54, 76, 63, 70, 54, 84, 69, 61, 45, 70, 53, 53, 65, 62, 72, 84, 81, 67, 72, 78, 42, 57, 54, 103, 64, 54, 34, 46, 65, 53, 60, 52, 70, 57, 75, 71, 53, 65, 94, 77, 79, 77, 77, 87, 79, 48, 67, 59, 53, 97, 71, 66, 53, 73, 93, 38, 60, 49, 70, 52, 33, 37, 86, 83, 76, 61, 62, 51, 69, 74, 81, 70, 76, 76, 56, 64, 81, 60, 55, 65, 79, 70, 68, 78, 61, 47, 77, 39, 48, 70, 50, 70, 70, 80, 61, 84, 53, 49, 53, 80, 63, 34, 44, 105, 46, 54, 67, 62, 66, 70, 74, 67, 100, 95, 55, 76, 43, 87, 62, 46, 43, 98, 62, 93, 60, 58, 79, 71, 103, 46, 55, 54, 72, 55, 68, 84, 98, 49, 84, 65, 51, 53, 57, 60, 43, 61, 69, 85, 61, 60, 72, 52, 53, 76, 52, 71, 71, 56, 63, 53, 73, 67, 64, 69, 66, 65, 72, 42, 60, 51, 63, 70, 62, 122, 62, 50, 61, 46, 119, 99, 51, 71, 71, 68, 89, 74, 61, 47, 72, 52, 58, 95, 62, 72, 63, 63, 79, 61, 71, 92, 72, 90, 56, 69, 83, 67, 92, 83, 59, 40, 63, 53, 79, 62, 62, 56, 64, 53, 80, 65, 53, 73, 59, 109, 62, 60, 52, 94, 56, 42, 72, 67, 72, 53, 58, 44, 54, 66, 63, 54, 38, 111, 53, 72, 72, 63, 55, 57, 74, 59, 66, 50, 72, 65, 69, 82, 85, 94, 85, 63, 60, 74, 90, 88, 82, 71, 53, 61, 58, 67, 46, 85, 90, 56, 92, 59, 96, 58, 83, 69, 62, 53, 46, 60, 68, 69, 65, 66, 88, 76, 57, 50, 70, 106, 89, 97, 65, 78, 77, 62, 71, 121, 110, 66, 73, 60, 74, 67, 79, 78, 67, 77, 70, 55, 43, 68, 132, 85, 71, 150, 65, 72, 60, 85, 94, 37, 46, 86, 77, 68, 82, 97, 71, 41, 72, 62, 57, 58, 62, 93, 84, 90, 62, 84, 63, 55, 53, 105, 30, 49, 58, 60, 52, 103, 100, 63, 66, 80, 45, 52, 61, 74, 60, 49, 94, 85, 79, 58, 77, 62, 88, 74, 72, 77, 69, 50, 79, 68, 62, 81, 46, 56, 67, 57, 87, 71, 67, 84, 58, 65, 46, 57, 53, 66, 56, 67, 40, 47, 72, 56, 50, 74, 71, 56, 65, 77, 57, 46, 51, 82, 76, 73, 63, 39, 62, 35, 47, 59, 40, 64, 63, 114, 44, 58, 69, 60, 49, 69, 64, 79, 65, 63, 69, 78, 92, 73, 74, 84, 61, 48, 55, 48, 69, 58, 51, 98, 60, 80, 55, 56, 61, 53, 60, 70, 67, 61, 58, 63, 71, 48, 47, 63, 52, 72, 69, 53, 53, 74, 79, 52, 73, 42, 74, 72, 51, 51, 58, 68, 50, 88, 84, 57, 66, 57, 81, 58, 104, 61, 56, 37, 70, 93, 87, 60, 65, 58, 84, 80, 76, 79, 56, 53, 79, 76, 61, 80, 77, 77, 52, 60, 73, 49, 53, 78, 64, 93, 47, 62, 62, 91, 53, 55, 64, 53, 48, 89, 61, 59, 69, 61, 79, 55, 62, 70, 79, 54, 74, 73, 61, 53, 57, 59, 63, 57, 65, 66, 52, 66, 67, 78, 40, 69, 85, 63, 51, 60, 41, 72, 55, 77, 53, 72, 72, 53, 58, 81, 84, 49, 65, 75, 95, 50, 54, 73, 93, 57, 57, 70, 84, 61, 54, 59, 65, 72, 70, 97, 50, 79, 62, 63, 76, 76, 53, 49, 56, 44, 74, 39, 97, 63, 84, 63, 65, 72, 81, 65, 88, 68, 52, 40, 66, 52, 61, 68, 59, 76, 90, 43, 57, 74, 57, 69, 50, 56, 43, 59, 72, 76, 43, 63, 48, 71, 73, 70, 101, 61, 71, 60, 68, 64, 62, 47, 61, 54, 73, 58, 66, 68, 59, 39, 72, 70, 62, 56, 67, 63, 74, 60, 44, 50, 77, 70, 65, 60, 58, 89, 53, 83, 54, 65, 63, 46, 79, 75, 63, 99, 40, 78, 69, 53, 71, 68, 109, 87, 49, 55, 46, 48, 47, 63, 92, 64, 87, 77, 55, 67, 72, 60, 64, 51, 59, 44, 56, 74, 71, 81, 50, 101, 83, 67, 79, 70, 83, 95, 63, 65, 51, 69, 53, 54, 72, 59, 64, 69, 84, 34, 35, 69, 53, 68, 66, 38, 77, 78, 60, 86, 70, 53, 66, 78, 41, 108, 86, 61, 69, 69, 57, 71, 52, 64, 61, 56, 57, 61, 97, 75, 75, 61, 66, 65, 84, 62, 56, 57, 59, 59, 76, 59, 59, 58, 53, 89, 56, 68, 63, 59, 61, 90, 67, 78, 73, 53, 64, 66, 57, 67, 57, 63, 54, 59, 70, 47, 53, 80, 63, 74, 66, 52, 62, 60, 92, 81, 60, 53, 44, 45, 57, 66, 77, 76, 76, 54, 74, 121, 58, 50, 53, 48, 48, 75, 56, 59, 65, 78, 63, 61, 82, 69, 37, 68, 69, 84, 53, 74, 57, 75, 78, 61, 76, 57, 62, 48, 81, 62, 91, 82, 54, 53, 70, 65, 78, 70, 38, 50, 69, 57, 80, 71, 84, 50, 66, 92, 61, 60, 78, 53, 61, 71, 98, 105, 56, 57, 75, 78, 74, 46, 84, 78, 73, 69, 63, 43, 66, 55, 48, 79, 72, 59, 84, 61, 72, 68, 40, 69, 63, 62, 75, 50, 80, 69, 97, 81, 59, 68, 100, 41, 62, 60, 87, 54, 76, 53, 64, 67, 65, 54, 56, 48, 45, 68, 93, 56, 56, 96, 67, 71, 64, 87, 64, 59, 62, 77, 62, 64, 69, 134, 57, 48, 66, 70, 65, 68, 59, 63, 71, 84, 66, 80, 68, 99, 54, 75, 63, 84, 74, 56, 63, 64, 65, 62, 43, 120, 60, 60, 71, 51, 81, 56, 46, 65, 62, 62, 59, 56, 63, 62, 58, 101, 68, 61, 72, 64, 39, 67, 78, 52, 57, 57, 61, 83, 64, 77, 132, 92, 56, 72, 77, 51, 82, 53, 67, 50, 74, 100, 69, 57, 72, 60, 54, 54, 60, 42, 69, 50, 57, 61, 75, 92, 49, 60, 84, 47, 61, 80, 76, 71, 67, 73, 53, 72, 62, 61, 85, 59, 83, 70, 52, 67, 74, 85, 96, 53, 70, 60, 64, 62, 53, 68, 63, 56, 70, 50, 82, 59, 70, 90, 71, 59, 72, 39, 72, 75, 93, 54, 65, 59, 46, 75, 76, 76, 80, 73, 52, 65, 56, 64, 79, 73, 59, 48, 61, 118, 75, 48, 61, 69, 74, 61, 59, 79, 71, 72, 62, 70, 92, 58, 61, 54, 62, 59, 113, 60, 64, 63, 121, 73, 53, 79, 46, 63, 58, 70, 53, 67, 67, 55, 82, 47, 65, 46, 79, 62, 79, 59, 53, 73, 62, 63, 62, 84, 72, 53, 80, 68, 48, 77, 51, 77, 59, 75, 53, 71, 69, 59, 57, 63, 49, 48, 62, 72, 47, 63, 118, 68, 57, 74, 59, 82, 95, 58, 54, 50, 57, 45, 52, 61, 55, 100, 76, 51, 68, 58, 65, 44, 53, 84, 74, 65, 71, 51, 72, 68, 82, 70, 62, 78, 44, 78, 49, 50, 65, 57, 45, 70, 81, 76, 57, 65, 70, 73, 57, 61, 65, 56, 64, 59, 74, 76, 65, 52, 75, 69, 74, 59, 55, 64, 70, 62, 56, 60, 58, 71, 62, 62, 73, 80, 56, 65, 44, 51, 88, 68, 58, 86, 92, 59, 59, 91, 69, 59, 83, 65, 91, 59, 69, 55, 66, 67, 52, 109, 81, 61, 71, 74, 82, 120, 55, 61, 71, 45, 51, 79, 57, 64, 77, 56, 65, 70, 68, 59, 73, 70, 70, 73, 61, 68, 57, 68, 59, 58, 74, 61, 64, 54, 82, 64, 47, 49, 66, 69, 62, 69, 68, 58, 75, 59, 54, 71, 79, 100, 67, 81, 63, 79, 69, 82, 60, 60, 68, 54, 52, 60, 79, 85, 74, 64, 85, 68, 70, 91, 63, 50, 64, 57, 93, 76, 77, 57, 61, 54, 69, 49, 53, 59, 72, 49, 51, 54, 54, 64, 81, 65, 54, 56, 77, 51, 37, 71, 83, 57, 61, 57, 66, 75, 48, 70, 63, 60, 79, 52, 64, 89, 52, 51, 68, 72, 64, 65, 59, 120, 68, 81, 64, 65, 58, 51, 63, 74, 95, 72, 65, 69, 48, 54, 72, 60, 74, 93, 113, 62, 110, 64, 47, 52, 60, 71, 60, 66, 59, 55, 71, 83, 43, 60, 64, 68, 62, 103, 63, 58, 69, 73, 56, 45, 52, 62, 60, 67, 47, 53, 53, 52, 64, 106, 55, 66, 56, 60, 62, 46, 68, 75, 46, 74, 56, 51, 68, 43, 71, 50, 65, 64, 53, 78, 63, 77, 70, 51, 47, 98, 49, 60, 70, 77, 60, 52, 57, 70, 63, 88, 69, 74, 67, 64, 60, 52, 59, 53, 53, 77, 70, 75, 80, 67, 58, 38, 65, 75, 50, 53, 65, 58, 54, 63, 56, 56, 89, 62, 59, 47, 52, 67, 53, 65, 58, 76, 58, 61, 63, 94, 54, 54, 66, 46, 62, 56, 62, 58, 83, 66, 54, 49, 70, 90, 56, 76, 93, 63, 85, 62, 131, 63, 61, 76, 68, 55, 58, 57, 85, 74, 62, 73, 74, 52, 60, 62, 49, 69, 58, 64, 75, 65, 60, 66, 76, 62, 49, 48, 52, 48, 99, 75, 96, 51, 78, 60, 64, 45, 52, 61, 57, 72, 59, 64, 81, 55, 68, 64, 92, 75, 59, 61, 65, 42, 60, 59, 75, 58, 83, 50, 83, 57, 64, 65, 63, 79, 53, 51, 54, 47, 96, 62, 71, 69, 52, 57, 55, 64, 52, 88, 86, 67, 93, 49, 74, 75, 105, 62, 71, 54, 58, 90, 62, 77, 67, 49, 48, 63, 64, 71, 58, 71, 91, 80, 62, 55, 72, 68, 51, 59, 77, 69, 66, 53, 73, 62, 104, 54, 58, 70, 54, 54, 53, 71, 86, 114, 80, 58, 57, 61, 48, 73, 53, 62, 61, 72, 61, 59, 65, 61, 61, 80, 55, 74, 51, 69, 61, 61, 74, 66, 58, 59, 57, 52, 62, 86, 58, 70, 71, 47, 47, 60, 62, 69, 60, 85, 54, 56, 69, 67, 66, 83, 63, 113, 52, 88, 63, 90, 51, 58, 82, 66, 66, 68, 59, 94, 90, 65, 56, 48, 120, 57, 83, 63, 64, 81, 71, 97, 101, 62, 57, 61, 82, 63, 73, 60, 66, 69, 59, 64, 55, 65, 46, 59, 117, 55, 58, 77, 53, 55, 71, 72, 52, 83, 91, 60, 66, 54, 46, 57, 54, 63, 57, 53, 71, 48, 48, 53, 75, 85, 79, 57, 108, 73, 60, 170, 80, 63, 68, 66, 58, 68, 103, 54, 59, 53, 55, 81, 85, 76, 61, 65, 55, 55, 75, 62, 72, 86, 76, 56, 65, 82, 66, 70, 68, 84, 64, 61, 132, 67, 56, 54, 57, 76, 52, 55, 95, 60, 78, 61, 77, 46, 86, 76, 65, 58, 47, 55, 72, 59, 54, 55, 70, 54, 62, 73, 65, 61, 64, 54, 60, 82, 46, 46, 68, 64, 60, 88, 86, 51, 60, 63, 61, 57, 51, 62, 71, 66, 73, 50, 53, 57, 66, 60, 52, 55, 51, 71, 61, 55, 56, 56, 67, 57, 66, 54, 71, 64, 114, 61, 62, 57, 57, 48, 55, 60, 96, 79, 60, 62, 55, 51, 42, 58, 54, 51, 67, 58, 61, 63, 64, 79, 73, 61, 47, 63, 60, 72, 46, 57, 49, 106, 72, 63, 61, 86, 58, 75, 86, 64, 60, 38, 73, 53, 69, 99, 64, 59, 72, 64, 66, 66, 57, 79, 63, 69, 77, 69, 65, 60, 47, 64, 68, 52, 57, 68, 60, 81, 63, 58, 76, 58, 63, 96, 58, 54, 69, 49, 68, 81, 62, 66, 64, 65, 53, 68, 68, 63, 50, 69, 82, 45, 73, 70, 64, 74, 60, 56, 73, 94, 52, 69, 106, 58, 71, 52, 106, 90, 70, 63, 69, 81, 69, 68, 51, 93, 86, 44, 81, 64, 33, 55, 43, 52, 102, 55, 54, 48, 71, 66, 57, 70, 70, 55, 66, 61, 69, 60, 82, 66, 63, 69, 61, 68, 48, 66, 51, 69, 48, 54, 83, 66, 67, 58, 85, 70, 81, 67, 54, 71, 68, 76, 47, 70, 49, 45, 71, 52, 64, 77, 52, 61, 58, 63, 66, 65, 70, 67, 72, 74, 73, 60, 58, 77, 68, 69, 67, 69, 60, 55, 49, 58, 60, 82, 76, 100, 82, 71, 63, 57, 53, 84, 69, 72, 61, 81, 59, 71, 106, 65, 45, 54, 71, 69, 44, 55, 55, 49, 63, 65, 66, 57, 52, 71, 67, 55, 63, 52, 89, 53, 60, 54, 69, 61, 57, 65, 61, 42, 81, 54, 45, 77, 58, 83, 56, 64, 69, 76, 101, 87, 68, 57, 60, 78, 80, 80, 81, 47, 75, 82, 104, 56, 72, 99, 55, 66, 104, 67, 52, 70, 52, 59, 56, 50, 60, 71, 65, 70, 66, 51, 39, 60, 57, 51, 112, 60, 57, 109, 41, 58, 81, 53, 72, 49, 53, 66, 79, 71, 48, 79, 47, 64, 57, 49, 54, 64, 86, 91, 63, 92, 62, 62, 59, 70, 50, 58, 65, 65, 63, 77, 70, 65, 94, 147, 61, 73, 81, 55, 62, 70, 92, 62, 44, 66, 74, 47, 61, 61, 43, 78, 31, 62, 58, 75, 65, 96, 84, 55, 56, 96, 67, 75, 69, 47, 71, 76, 33, 61, 55, 118, 51, 50, 59, 54, 48, 84, 73, 45, 73, 72, 51, 49, 82, 65, 59, 56, 83, 64, 84, 94, 89, 61, 92, 88, 69, 72, 57, 92, 59, 50, 79, 115, 53, 76, 63, 77, 61, 64, 76, 65, 62, 70, 61, 66, 83, 66, 66, 77, 41, 86, 61, 62, 74, 99, 56, 71, 87, 81, 77, 53, 72, 46, 57, 69, 74, 78, 56, 57, 86, 66, 78, 63, 74, 87, 52, 60, 69, 83, 84, 74, 67, 107, 84, 46, 51, 65, 63, 71, 82, 87, 61, 47, 59, 50, 46, 75, 30, 80, 47, 45, 57, 63, 67, 85, 45, 51, 69, 69, 61, 66, 60, 84, 92, 75, 53, 59, 65, 53, 67, 86, 53, 67, 59, 90, 66, 70, 74, 59, 77, 85, 85, 82, 68, 62, 44, 62, 68, 65, 94, 70, 43, 52, 79, 66, 36, 55, 107, 64, 66, 52, 55, 59, 54, 55, 58, 58, 62, 56, 50, 42, 83, 66, 72, 83, 55, 41, 57, 70, 55, 65, 70, 56, 61, 60, 77, 57, 80, 64, 67, 86, 79, 67, 65, 74, 71, 82, 92, 48, 53, 44, 57, 63, 70, 67, 55, 95, 64, 51, 62, 58, 70, 64, 45, 27, 57, 63, 62, 80, 47, 64, 63, 74, 64, 53, 90, 62, 59, 73, 61, 52, 50, 88, 92, 90, 66, 76, 62, 55, 69, 86, 65, 107, 66, 35, 41, 61, 66, 46, 49, 77, 82, 57, 72, 81, 77, 76, 83, 76, 74, 67, 51, 63, 55, 61, 60, 63, 60, 60, 69, 53, 69, 61, 49, 57, 71, 39, 53, 106, 77, 46, 67, 66, 72, 62, 56, 88, 56, 63, 41, 62, 75, 76, 84, 46, 74, 87, 50, 69, 77, 50, 52, 82, 62, 70, 51, 73, 67, 69, 73, 48, 54, 70, 65, 57, 47, 67, 101, 56, 71, 52, 72, 51, 53, 57, 45, 63, 103, 83, 79, 54, 84, 89, 47, 52, 102, 72, 61, 62, 83, 70, 67, 74, 46, 74, 73, 55, 62, 73, 65, 90, 57, 82, 57, 77, 44, 80, 116, 55, 73, 76, 46, 61, 55, 64, 85, 81, 37, 57, 59, 80, 56, 65, 73, 83, 72, 42, 80, 87, 46, 49, 60, 40, 49, 67, 36, 82, 58, 75, 45, 79, 80, 59, 69, 59, 57, 67, 55, 81, 62, 98, 53, 60, 91, 92, 66, 78, 69, 44, 55, 102, 75, 71, 62, 91, 66, 87, 62, 58, 97, 61, 60, 81, 63, 55, 55, 97, 73, 89, 41, 48, 90, 45, 83, 54, 40, 81, 57, 75, 66, 56, 63, 79, 65, 54, 83, 63, 49, 59, 68, 71, 76, 64, 62, 75, 65, 125, 71, 70, 60, 64, 34, 65, 49, 75, 88, 53, 85, 60, 81, 83, 66, 53, 71, 73, 44, 69, 67, 63, 98, 49, 57, 112, 54, 58, 79, 37, 78, 54, 45, 82, 64, 42, 54, 58, 79, 61, 62, 48, 44, 79, 38, 81, 61, 72, 72, 55, 75, 54, 102, 68, 57, 56, 73, 62, 67, 55, 66, 100, 74, 106, 69, 60, 74, 57, 81, 65, 65, 70, 80, 71, 63, 90, 66, 61, 56, 61, 94, 48, 68, 65, 47, 61, 60, 65, 33, 49, 60, 65, 61, 83, 63, 68, 59, 62, 37, 63, 58, 65, 64, 52, 65, 74, 83, 59, 75, 77, 58, 84, 69, 70, 66, 70, 70, 68, 55, 64, 93, 59, 78, 48, 39, 55, 81, 63, 89, 52, 57, 68, 62, 107, 54, 66, 50, 81, 66, 64, 66, 47, 52, 60, 78, 55, 60, 80, 89, 36, 69, 88, 98, 88, 53, 41, 59, 68, 80, 41, 65, 58, 69, 71, 82, 61, 69, 45, 69, 89, 78, 47, 81, 62, 81, 58, 60, 52, 111, 56, 65, 42, 60, 54, 62, 47, 60, 71, 43, 70, 68, 53, 59, 71, 80, 53, 72, 68, 47, 54, 65, 71, 55, 77, 58, 47, 74, 78, 71, 103, 79, 50, 40, 49, 77, 57, 84, 61, 50, 58, 58, 68, 67, 78, 77, 75, 40, 107, 66, 71, 68, 46, 75, 55, 74, 68, 59, 63, 51, 65, 75, 61, 79, 59, 60, 60, 63, 74, 103, 76, 67, 54, 48, 74, 54, 65, 46, 72, 64, 101, 70, 44, 54, 76, 65, 81, 42, 85, 74, 58, 66, 56, 39, 72, 86, 78, 69, 56, 78, 51, 53, 63, 63, 68, 102, 84, 65, 56, 74, 63, 67, 66, 47, 88, 78, 38, 55, 79, 59, 82, 63, 66, 57, 52, 64, 58, 43, 77, 77, 46, 66, 73, 44, 44, 44, 61, 77, 67, 55, 78, 108, 78, 67, 73, 62, 36, 66, 70, 56, 90, 73, 47, 80, 59, 44, 59, 76, 66, 78, 61, 62, 75, 80, 91, 42, 70, 68, 43, 71, 82, 58, 52, 68, 88, 74, 59, 53, 74, 57, 47, 78, 74, 43, 57, 65, 67, 73, 57, 73, 63, 69, 79, 74, 67, 69, 76, 69, 67, 58, 128, 70, 87, 38, 80, 52, 54, 79, 90, 73, 72, 75, 56, 48, 66, 78, 67, 73, 69, 88, 58, 49, 81, 79, 64, 62, 56, 46, 90, 61, 55, 115, 41, 64, 69, 60, 44, 105, 57, 56, 49, 62, 57, 70, 75, 86, 68, 50, 59, 96, 54, 79, 91, 71, 64, 59, 51, 73, 42, 67, 52, 48, 69, 50, 89, 58, 54, 75, 79, 91, 51, 47, 75, 50, 44, 68, 61, 57, 73, 49, 88, 69, 65, 55, 60, 59, 76, 80, 107, 56, 63, 74, 39, 52, 60, 81, 88, 76, 83, 45, 76, 58, 77, 57, 69, 67, 53, 82, 66, 74, 54, 77, 54, 84, 74, 72, 67, 71, 50, 66, 58, 73, 54, 80, 88, 62, 68, 67, 62, 109, 54, 38, 100, 50, 39, 55, 77, 80, 80, 47, 62, 59, 61, 62, 75, 106, 79, 83, 152, 78, 72, 67, 73, 70, 53, 83, 64, 70, 78, 59, 82, 43, 49, 57, 119, 47, 55, 86, 49, 45, 60, 63, 131, 84, 71, 81, 64, 52, 69, 54, 55, 62, 47, 64, 59, 49, 55, 58, 48, 76, 59, 81, 57, 57, 76, 93, 56, 76, 40, 80, 61, 67, 55, 55, 69, 88, 65, 94, 45, 69, 87, 63, 72, 61, 80, 58, 48, 83, 69, 67, 67, 67, 82, 52, 55, 90, 79, 48, 43, 65, 79, 53, 65, 65, 60, 72, 55, 68, 63, 39, 62, 49, 37, 78, 42, 66, 57, 50, 60, 93, 69, 45, 64, 68, 54, 50, 90, 88, 45, 98, 62, 76, 90, 61, 58, 43, 76, 93, 66, 53, 60, 81, 63, 72, 61, 73, 55, 55, 62, 68, 62, 88, 52, 70, 73, 52, 46, 94, 77, 97, 69, 76, 75, 65, 53, 74, 63, 61, 76, 51, 66, 68, 60, 53, 60, 69, 45, 79, 77, 51, 66, 43, 71, 50, 67, 61, 56, 73, 85, 65, 56, 64, 63, 72, 79, 65, 53, 33, 53, 47, 77, 108, 71, 59, 54, 62, 117, 40, 68, 75, 56, 81, 52, 84, 76, 70, 81, 45, 49, 48, 97, 71, 53, 100, 132, 50, 61, 61, 82, 59, 72, 43, 56, 86, 77, 72, 69, 76, 55, 68, 60, 79, 73, 35, 56, 82, 68, 72, 57, 41, 43, 61, 84, 60, 85, 69, 70, 55, 62, 91, 83, 52, 72, 64, 57, 62, 44, 47, 59, 74, 83, 62, 68, 64, 57, 48, 59, 68, 59, 96, 67, 48, 72, 38, 90, 81, 80, 74, 71, 55, 57, 86, 63, 63, 59, 53, 62, 67, 77, 50, 43, 90, 66, 50, 65, 62, 63, 64, 82, 58, 48, 71, 75, 47, 98, 71, 37, 86, 68, 65, 85, 60, 53, 36, 51, 61, 40, 73, 65, 31, 92, 105, 53, 65, 70, 55, 94, 57, 62, 60, 64, 66, 71, 37, 77, 49, 64, 42, 80, 86, 80, 70, 69, 65, 16, 64, 86, 52, 85, 75, 36, 63, 65, 46, 62, 68, 91, 68, 70, 70, 84, 53, 54, 53, 81, 82, 89, 69, 52, 61, 45, 64, 79, 78, 69, 118, 76, 56, 49, 62, 66, 46, 64, 76, 87, 54, 70, 70, 63, 59, 77, 70, 69, 62, 73, 45, 59, 53, 79, 91, 69, 70, 83, 64, 55, 42, 77, 46, 66, 67, 56, 78, 81, 58, 76, 63, 49, 61, 56, 68, 49, 74, 89, 69, 79, 101, 106, 80, 43, 59, 95, 52, 67, 104, 72, 49, 72, 63, 62, 75, 56, 72, 56, 81, 63, 75, 44, 76, 49, 61, 59, 70, 80, 67, 72, 52, 51, 66, 104, 51, 71, 67, 45, 58, 74, 66, 63, 68, 41, 82, 45, 67, 81, 79, 119, 126, 77, 86, 55, 74, 66, 99, 76, 64, 79, 72, 52, 81, 86, 70, 43, 64, 78, 56, 43, 85, 64, 49, 51, 53, 48, 54, 78, 53, 73, 92, 64, 59, 57, 116, 68, 48, 44, 43, 56, 64, 50, 56, 86, 78, 42, 45, 70, 40, 80, 66, 60, 91, 80, 70, 83, 46, 79, 51, 67, 44, 23, 71, 88, 64, 53, 77, 50, 74, 61, 101, 56, 49, 62, 68, 59, 36, 77, 94, 49, 79, 68, 74, 50, 82, 68, 68, 77, 53, 77, 52, 79, 58, 55, 58, 91, 61, 65, 42, 41, 52, 64, 50, 78, 81, 59, 63, 67, 58, 70, 69, 56, 53, 50, 58, 66, 90, 57, 76, 56, 56, 101, 55, 80, 88, 62, 50, 63, 46, 63, 54, 68, 92, 65, 52, 73, 51, 58, 60, 77, 66, 69, 45, 79, 58, 51, 75, 78, 38, 52, 56, 79, 77, 77, 61, 65, 63, 60, 60, 80, 47, 83, 66, 67, 50, 42, 67, 85, 62, 60, 84, 82, 66, 72, 72, 56, 55, 93, 62, 59, 81, 85, 47, 82, 53, 81, 74, 57, 66, 40, 64, 97, 69, 95, 75, 63, 87, 82, 49, 89, 127, 64, 68, 67, 55, 68, 62, 72, 78, 85, 79, 76, 76, 51, 60, 81, 54, 54, 53, 53, 48, 69, 60, 71, 82, 44, 75, 74, 73, 73, 47, 60, 62, 64, 58, 65, 56, 63, 51, 71, 67, 74, 36, 78, 110, 65, 66, 70, 46, 43, 78, 60, 81, 59, 43, 46, 60, 51, 82, 70, 49, 85, 57, 71, 97, 59, 63, 63, 72, 70, 86, 68, 53, 59, 52, 78, 56, 36, 59, 67, 45, 66, 95, 81, 86, 37, 60, 65, 53, 79, 61, 43, 73, 76, 92, 57, 57, 52, 94, 73, 54, 74, 126, 119, 54, 130, 101, 54, 82, 74, 81, 72, 46, 62, 78, 51, 63, 44, 42, 55, 100, 44, 64, 67, 50, 51, 63, 56, 45, 54, 55, 59, 48, 43, 54, 61, 34, 61, 56, 68, 69, 61, 68, 73, 69, 55, 36, 67, 80, 68, 116, 65, 50, 53, 51, 64, 109, 66, 76, 73, 61, 79, 93, 61, 61, 61, 50, 71, 73, 55, 56, 63, 86, 72, 73, 59, 82, 63, 74, 101, 50, 76, 37, 66, 48, 68, 76, 72, 55, 61, 75, 71, 61, 65, 48, 58, 55, 76, 53, 98, 114, 91, 91, 70, 94, 65, 56, 61, 75, 79, 72, 62, 73, 59, 57, 70, 54, 73, 54, 47, 64, 47, 86, 46, 62, 52, 52, 57, 71, 89, 43, 53, 44, 49, 39, 75, 66, 78, 59, 65, 86, 58, 121, 60, 72, 69, 91, 64, 57, 72, 45, 48, 84, 58, 79, 57, 87, 71, 58, 69, 55, 45, 50, 78, 51, 59, 49, 45, 76, 69, 79, 62, 55, 75, 60, 74, 70, 66, 87, 57, 60, 55, 45, 76, 104, 46, 59, 78, 48, 64, 58, 47, 73, 80, 53, 70, 56, 62, 58, 68, 47, 67, 60, 61, 59, 56, 70, 73, 62, 48, 42, 56, 81, 80, 65, 50, 49, 58, 39, 67, 50, 72, 52, 82, 58, 64, 50, 82, 66, 55, 75, 65, 81, 58, 44, 53, 55, 57, 55, 76, 55, 72, 76, 72, 64, 63, 62, 44, 55, 50, 56, 72, 74, 58, 50, 76, 82, 58, 57, 63, 61, 78, 56, 77, 81, 60, 52, 67, 51, 63, 57, 61, 56, 62, 67, 92, 41, 70, 75, 69, 107, 37, 79, 67, 63, 64, 63, 85, 67, 100, 66, 64, 122, 55, 64, 50, 66, 71, 62, 58, 64, 64, 47, 59, 51, 58, 60, 76, 73, 65, 50, 48, 78, 58, 63, 57, 52, 68, 41, 68, 55, 70, 64, 73, 64, 76, 65, 61, 81, 58, 65, 61, 55, 70, 60, 64, 51, 58, 70, 45, 60, 84, 56, 61, 51, 95, 63, 78, 46, 51, 50, 61, 53, 61, 67, 65, 61, 64, 68, 62, 74, 68, 50, 69, 62, 59, 70, 55, 44, 61, 93, 64, 74, 67, 53, 76, 56, 73, 61, 54, 61, 73, 59, 58, 107, 59, 68, 59, 74, 46, 50, 77, 86, 70, 52, 62, 57, 64, 68, 58, 83, 56, 46, 62, 86, 90, 64, 58, 58, 75, 65, 50, 63, 70, 86, 58, 61, 83, 65, 26, 68, 49, 73, 83, 64, 150, 68, 58, 82, 52, 133, 58, 65, 68, 69, 61, 73, 68, 72, 62, 63, 65, 63, 57, 84, 63, 62, 81, 66, 69, 46, 65, 59, 74, 71, 31, 51, 68, 63, 47, 99, 68, 69, 63, 57, 71, 53, 63, 58, 46, 77, 64, 67, 55, 71, 67, 86, 59, 82, 70, 59, 79, 56, 68, 55, 55, 46, 63, 74, 62, 61, 70, 58, 72, 57, 69, 60, 59, 111, 51, 61, 53, 82, 78, 50, 80, 92, 65, 61, 70, 80, 58, 52, 74, 53, 69, 69, 81, 52, 77, 47, 86, 51, 48, 56, 47, 74, 59, 73, 60, 61, 65, 61, 39, 49, 63, 59, 66, 57, 57, 101, 76, 77, 53, 89, 81, 80, 50, 60, 52, 66, 92, 67, 69, 73, 83, 79, 67, 80, 84, 52, 57, 74, 76, 70, 68, 68, 41, 61, 89, 67, 80, 60, 70, 51, 106, 66, 67, 90, 59, 74, 57, 80, 64, 65, 52, 61, 68, 85, 45, 63, 58, 60, 54, 67, 61, 90, 78, 66, 68, 102, 65, 40, 69, 52, 57, 64, 64, 80, 67, 78, 59, 71, 63, 64, 57, 67, 92, 61, 66, 65, 61, 67, 72, 75, 89, 55, 51, 55, 75, 53, 75, 69, 67, 69, 66, 69, 64, 74, 58, 53, 58, 44, 69, 64, 58, 73, 69, 60, 70, 76, 56, 69, 62, 77, 89, 62, 58, 61, 71, 60, 55, 56, 74, 83, 56, 52, 59, 59, 51, 79, 57, 71, 69, 77, 59, 101, 59, 60, 45, 70, 79, 72, 53, 51, 59, 62, 53, 80, 62, 92, 65, 67, 89, 49, 63, 85, 66, 74, 50, 60, 51, 91, 65, 45, 78, 58, 46, 48, 69, 65, 50, 60, 54, 81, 66, 71, 56, 101, 51, 64, 86, 68, 79, 87, 48, 52, 71, 65, 67, 70, 79, 65, 57, 75, 91, 83, 96, 64, 61, 74, 70, 61, 68, 69, 67, 58, 54, 68, 60, 56, 54, 106, 71, 108, 55, 66, 74, 64, 90, 51, 62, 71, 55, 60, 69, 71, 62, 60, 66, 72, 70, 67, 56, 58, 97, 69, 66, 113, 46, 52, 65, 61, 48, 57, 65, 62, 54, 70, 79, 111, 47, 82, 62, 61, 54, 65, 57, 60, 88, 65, 62, 66, 59, 76, 81, 58, 53, 64, 49, 88, 83, 82, 68, 77, 90, 49, 69, 78, 58, 68, 100, 71, 56, 89, 53, 60, 80, 55, 68, 78, 78, 108, 54, 69, 58, 56, 61, 78, 55, 56, 76, 59, 57, 66, 58, 62, 56, 71, 77, 60, 63, 124, 75, 52, 66, 77, 53, 80, 73, 60, 66, 71, 56, 62, 94, 76, 57, 53, 65, 69, 49, 55, 82, 76, 57, 84, 51, 58, 68, 59, 62, 59, 63, 76, 59, 70, 56, 61, 69, 74, 68, 60, 59, 50, 72, 91, 71, 59, 62, 63, 71, 60, 55, 66, 46, 50, 50, 74, 78, 66, 70, 105, 54, 56, 46, 49, 98, 62, 65, 47, 46, 77, 60, 82, 125, 45, 62, 62, 74, 69, 84, 59, 53, 60, 62, 60, 59, 104, 77, 55, 87, 62, 58, 59, 66, 51, 49, 66, 53, 75, 63, 64, 81, 53, 109, 59, 53, 58, 66, 49, 55, 64, 43, 56, 57, 60, 57, 56, 67, 84, 54, 50, 64, 88, 74, 79, 74, 62, 64, 67, 75, 51, 59, 57, 88, 52, 55, 69, 59, 48, 76, 45, 66, 76, 61, 49, 44, 67, 74, 60, 64, 54, 90, 62, 59, 71, 79, 61, 65, 73, 67, 66, 49, 76, 91, 106, 60, 92, 74, 50, 60, 105, 101, 36, 58, 50, 64, 71, 77, 48, 63, 57, 80, 57, 82, 59, 63, 62, 79, 65, 59, 56, 84, 56, 52, 55, 51, 82, 93, 62, 54, 79, 86, 67, 80, 68, 66, 47, 32, 56, 55, 59, 76, 96, 81, 63, 59, 55, 81, 82, 69, 70, 66, 53, 76, 53, 77, 75, 69, 57, 80, 60, 51, 52, 71, 57, 57, 61, 44, 52, 60, 59, 76, 66, 58, 57, 87, 82, 64, 60, 41, 53, 58, 51, 74, 53, 50, 59, 72, 65, 81, 65, 84, 60, 63, 60, 71, 71, 92, 55, 56, 67, 76, 50, 68, 75, 66, 67, 62, 108, 61, 69, 49, 37, 47, 97, 63, 63, 48, 68, 77, 63, 53, 32, 78, 58, 73, 55, 54, 56, 124, 75, 76, 68, 56, 99, 57, 93, 52, 115, 94, 40, 61, 54, 52, 56, 68, 79, 64, 72, 60, 100, 51, 50, 62, 58, 59, 81, 63, 71, 91, 53, 67, 71, 57, 67, 54, 48, 55, 75, 61, 60, 75, 77, 61, 78, 60, 75, 62, 59, 59, 53, 66, 72, 82, 47, 48, 72, 55, 80, 85, 59, 47, 56, 86, 70, 69, 44, 39, 55, 63, 56, 63, 61, 58, 85, 67, 86, 81, 59, 63, 53, 66, 76, 63, 71, 57, 57, 59, 74, 66, 67, 59, 88, 66, 59, 72, 81, 68, 81, 81, 104, 67, 64, 58, 74, 65, 82, 63, 40, 49, 67, 52, 56, 61, 54, 102, 91, 56, 72, 46, 59, 66, 72, 58, 73, 80, 77, 63, 65, 105, 56, 69, 61, 71, 107, 74, 58, 70, 71, 51, 64, 64, 66, 61, 68, 62, 72, 105, 78, 71, 67, 51, 85, 54, 45, 44, 62, 78, 59, 90, 56, 58, 53, 75, 63, 67, 50, 55, 62, 55, 64, 57, 62, 84, 82, 63, 61, 82, 68, 57, 81, 40, 61, 83, 55, 71, 63, 91, 80, 69, 77, 56, 58, 55, 80, 78, 53, 73, 86, 61, 65, 49, 67, 57, 87, 77, 68, 53, 66, 69, 92, 71, 59, 69, 75, 63, 67, 49, 55, 72, 59, 62, 66, 51, 63, 52, 65, 83, 63, 67, 63, 62, 72, 93, 65, 66, 69, 72, 66, 61, 60, 75, 68, 49, 83, 68, 64, 63, 66, 49, 36, 48, 85, 76, 67, 69, 50, 61, 55, 91, 73, 87, 65, 60, 71, 66, 50, 59, 45, 57, 72, 61, 73, 99, 68, 62, 61, 55, 67, 61, 65, 67, 66, 55, 75, 63, 65, 55, 61, 58, 51, 47, 65, 73, 59, 73, 61, 70, 73, 78, 62, 67, 73, 77, 89, 56, 56, 71, 86, 68, 60, 63, 46, 55, 66, 59, 58, 66, 79, 55, 64, 50, 81, 81, 61, 76, 75, 58, 74, 58, 56, 65, 62, 54, 73, 80, 59, 68, 68, 60, 87, 57, 67, 70, 45, 83, 64, 70, 80, 64, 55, 61, 62, 62, 78, 60, 62, 64, 74, 65, 71, 66, 68, 61, 66, 100, 86, 73, 59, 91, 69, 69, 77, 61, 85, 62, 70, 74, 71, 63, 58, 80, 43, 62, 48, 68, 64, 88, 44, 73, 53, 54, 66, 52, 78, 67, 101, 50, 80, 61, 81, 56, 62, 65, 82, 49, 67, 72, 78, 50, 83, 67, 72, 82, 81, 53, 70, 62, 71, 60, 42, 66, 71, 60, 84, 58, 69, 66, 62, 72, 70, 75, 65, 64, 66, 47, 62, 69, 69, 57, 77, 81, 53, 65, 56, 88, 75, 46, 66, 65, 78, 80, 67, 50, 67, 74, 49, 58, 64, 53, 58, 70, 41, 61, 74, 55, 60, 66, 74, 60, 59, 34, 75, 63, 58, 65, 82, 61, 69, 54, 65, 73, 55, 71, 66, 77, 48, 56, 92, 62, 69, 73, 63, 75, 55, 60, 73, 89, 64, 83, 78, 58, 73, 61, 66, 53, 74, 63, 60, 63, 67, 77, 89, 80, 72, 61, 69, 66, 71, 65, 61, 46, 80, 55, 93, 58, 75, 58, 39, 65, 75, 50, 54, 66, 65, 64, 59, 63, 55, 54, 45, 54, 54, 64, 65, 52, 96, 65, 44, 163, 66, 73, 52, 63, 72, 82, 79, 68, 69, 56, 82, 70, 57, 65, 67, 71, 67, 51, 55, 61, 61, 52, 74, 47, 79, 55, 64, 53, 72, 68, 50, 83, 77, 69, 46, 72, 88, 32, 61, 72, 56, 73, 46, 41, 45, 78, 56, 58, 47, 69, 54, 56, 62, 49, 68, 69, 50, 55, 64, 62, 71, 63, 51, 61, 53, 66, 57, 76, 79, 71, 97, 55, 91, 61, 60, 71, 56, 54, 65, 93, 72, 67, 51, 77, 76, 49, 60, 29, 67, 65, 74, 73, 54, 59, 67, 68, 79, 74, 58, 69, 70, 75, 66, 63, 73, 74, 67, 61, 64, 53, 54, 61, 43, 61, 86, 73, 81, 63, 63, 61, 75, 85, 67, 55, 59, 69, 61, 55, 55, 89, 81, 63, 53, 83, 67, 50, 52, 70, 82, 71, 65, 59, 78, 58, 63, 66, 72, 71, 57, 69, 59, 60, 73, 59, 89, 79, 49, 64, 79, 75, 67, 63, 63, 69, 72, 107, 74, 62, 82, 82, 55, 54, 66, 79, 64, 70, 62, 52, 58, 65, 65, 69, 64, 84, 68, 75, 99, 79, 58, 65, 70, 67, 75, 43, 75, 70, 69, 71, 61, 46, 61, 97, 64, 85, 59, 47, 47, 64, 62, 75, 61, 65, 57, 66, 91, 32, 67, 57, 55, 54, 82, 70, 66, 58, 67, 79, 68, 58, 69, 57, 76, 64, 57, 55, 52, 51, 63, 71, 86, 67, 57, 71, 54, 73, 66, 55, 63, 70, 53, 55, 67, 61, 58, 80, 58, 69, 54, 47, 58, 66, 64, 59, 67, 58, 50, 61, 65, 63, 56, 63, 73, 59, 42, 71, 52, 73, 82, 69, 57, 66, 51, 65, 62, 70, 71, 55, 90, 62, 68, 67, 40, 70, 57, 50, 56, 48, 48, 87, 57, 113, 57, 71, 76, 52, 68, 68, 86, 59, 67, 49, 68, 76, 62, 64, 68, 37, 73, 62, 73, 71, 45, 42, 59, 76, 50, 88, 61, 66, 57, 61, 39, 54, 101, 58, 62, 72, 61, 63, 77, 76, 57, 65, 52, 63, 67, 62, 89, 45, 46, 53, 61, 61, 61, 65, 63, 67, 68, 76, 75, 70, 69, 62, 83, 73, 72, 49, 68, 63, 83, 61, 52, 54, 86, 87, 73, 59, 49, 53, 89, 60, 62, 56, 82, 45, 77, 42, 78, 63, 69, 61, 80, 70, 58, 66, 47, 82, 66, 69, 70, 54, 69, 68, 56, 87, 60, 60, 68, 70, 61, 64, 88, 75, 68, 63, 53, 63, 71, 69, 76, 66, 57, 72, 60, 65, 51, 64, 102, 65, 63, 42, 72, 54, 59, 60, 52, 74, 66, 62, 42, 70, 68, 78, 65, 54, 62, 59, 77, 58, 76, 70, 51, 56, 50, 67, 63, 67, 89, 60, 60, 71, 86, 80, 63, 121, 71, 53, 64, 48, 62, 75, 58, 57, 67, 70, 99, 67, 84, 64, 81, 62, 58, 61, 62, 71, 59, 53, 47, 73, 62, 53, 83, 73, 65, 61, 57, 42, 78, 70, 90, 53, 66, 72, 58, 72, 67, 49, 59, 85, 56, 45, 61, 77, 48, 65, 77, 62, 67, 65, 73, 66, 59, 115, 99, 51, 68, 51, 69, 91, 51, 57, 79, 57, 70, 55, 60, 88, 68, 51, 61, 55, 74, 59, 62, 65, 74, 68, 50, 69, 63, 47, 57, 59, 46, 68, 98, 81, 94, 66, 57, 83, 66, 63, 46, 83, 97, 71, 54, 56, 71, 108, 93, 70, 70, 59, 76, 62, 59, 78, 64, 74, 88, 59, 62, 110, 44, 69, 71, 64, 82, 82, 75, 59, 65, 57, 44, 49, 69, 64, 72, 54, 66, 87, 70, 58, 71, 65, 58, 51, 53, 58, 69, 74, 62, 63, 66, 53, 77, 60, 70, 63, 62, 57, 69, 54, 51, 49, 67, 83, 56, 61, 86, 52, 70, 92, 71, 52, 65, 67, 64, 66, 127, 65, 58, 75, 41, 67, 62, 60, 76, 60, 61, 47, 33, 75, 62, 93, 50, 65, 80, 75, 60, 47, 128, 66, 86, 97, 86, 65, 67, 48, 68, 58, 59, 64, 66, 68, 37, 75, 52, 70, 92, 71, 72, 57, 47, 67, 71, 64, 119, 60, 51, 64, 65, 60, 76, 92, 54, 54, 71, 56, 74, 61, 64, 50, 63, 61, 67, 56, 69, 50, 56, 58, 73, 104, 128, 60, 67, 55, 56, 65, 53, 79, 78, 61, 55, 70, 63, 55, 44, 63, 69, 41, 53, 46, 51, 66, 68, 78, 62, 73, 67, 73, 70, 46, 68, 53, 62, 57, 48, 63, 58, 83, 56, 68, 55, 58, 63, 59, 81, 56, 49, 64, 43, 58, 56, 57, 55, 53, 63, 84, 85, 110, 58, 57, 53, 56, 72, 64, 75, 86, 54, 44, 69, 70, 55, 57, 86, 64, 63, 56, 64, 57, 43, 68, 49, 58, 89, 78, 50, 66, 113, 71, 61, 60, 59, 58, 63, 75, 69, 62, 59, 72, 101, 55, 81, 56, 76, 89, 97, 66, 68, 60, 80, 51, 65, 41, 57, 47, 73, 60, 78, 105, 60, 63, 61, 74, 62, 65, 67, 63, 55, 83, 62, 70, 53, 72, 56, 64, 76, 54, 69, 80, 50, 86, 72, 55, 63, 66, 52, 60, 70, 77, 52, 63, 84, 83, 60, 170, 73, 71, 47, 55, 81, 70, 58, 58, 44, 93, 60, 65, 61, 74, 45, 69, 66, 60, 65, 50, 62, 97, 81, 65, 63, 70, 84, 69, 59, 55, 56, 62, 74, 46, 47, 66, 79, 78, 71, 61, 84, 50, 46, 69, 60, 51, 87, 69, 72, 66, 85, 69, 39, 80, 91, 65, 44, 56, 66, 59, 60, 69, 71, 60, 58, 80, 78, 68, 57, 78, 59, 84, 53, 59, 70, 55, 61, 51, 54, 78, 83, 69, 74, 92, 127, 63, 63, 62, 56, 69, 66, 61, 57, 79, 70, 99, 83, 56, 55, 61, 58, 66, 66, 54, 78, 68, 66, 69, 70, 54, 59, 62, 61, 66, 62, 65, 79, 71, 45, 86, 71, 63, 56, 60, 55, 78, 73, 59, 71, 61, 87, 70, 53, 72, 53, 104, 103, 50, 66, 85, 52, 61, 93, 66, 63, 63, 114, 63, 74, 111, 66, 73, 43, 71, 59, 84, 67, 60, 69, 58, 48, 67, 83, 55, 70, 70, 61, 71, 66, 65, 61, 57, 62, 54, 75, 55, 77, 67, 69, 57, 65, 57, 58, 56, 69, 77, 86, 56, 63, 101, 53, 54, 67, 60, 54, 66, 75, 47, 52, 78, 64, 64, 77, 69, 63, 64, 55, 55, 63, 50, 39, 44, 61, 36, 84, 70, 80, 60, 65, 58, 74, 67, 62, 77, 50, 72, 67, 69, 76, 71, 57, 58, 51, 67, 55, 59, 143, 55, 68, 54, 46, 71, 60, 98, 36, 60, 79, 75, 55, 68, 63, 57, 58, 68, 52, 56, 77, 63, 102, 56, 54, 94, 48, 73, 77, 74, 57, 76, 73, 73, 59, 54, 56, 50, 71, 71, 90, 57, 69, 68, 73, 50, 59, 76, 83, 58, 61, 58, 77, 64, 57, 74, 68, 68, 61, 60, 64, 49, 64, 55, 49, 61, 55, 79, 54, 62, 67, 51, 54, 63, 63, 89, 72, 50, 38, 73, 69, 74, 101, 50, 69, 62, 57, 47, 53, 78, 94, 59, 71, 58, 58, 64, 96, 67, 69, 80, 56, 68, 45, 83, 66, 108, 59, 67, 88, 67, 58, 70, 95, 56, 75, 66, 44, 95, 59, 41, 69, 67, 82, 98, 102, 101, 72, 68, 50, 44, 60, 93, 64, 52, 66, 72, 59, 56, 72, 64, 116, 70, 63, 63, 70, 87, 65, 80, 62, 53, 66, 67, 69, 75, 66, 58, 74, 48, 67, 87, 68, 64, 72, 70, 63, 58, 91, 76, 73, 78, 65, 70, 67, 71, 61, 57, 101, 65, 58, 58, 42, 74, 61, 54, 67, 45, 63, 62, 66, 120, 78, 59, 70, 79, 50, 72, 59, 60, 63, 82, 52, 60, 69, 65, 44, 59, 48, 63, 51, 57, 48, 64, 43, 99, 50, 54, 67, 77, 76, 72, 62, 56, 55, 67, 51, 80, 55, 59, 88, 57, 60, 43, 77, 77, 88, 56, 86, 61, 72, 85, 49, 83, 62, 67, 55, 61, 55, 46, 66, 59, 57, 65, 67, 55, 73, 57, 107, 59, 63, 80, 102, 68, 67, 64, 69, 43, 70, 61, 49, 62, 50, 67, 84, 98, 58, 57, 58, 69, 60, 68, 70, 68, 75, 75, 96, 66, 35, 68, 77, 83, 66, 74, 66, 111, 65, 62, 81, 48, 64, 83, 63, 66, 97, 75, 73, 64, 62, 89, 67, 62, 74, 72, 65, 69, 67, 120, 57, 77, 50, 80, 110, 48, 75, 81, 67, 61, 66, 71, 70, 59, 66, 60, 61, 58, 118, 73, 47, 52, 59, 58, 51, 63, 56, 54, 68, 71, 65, 86, 66, 62, 106, 54, 69, 97, 56, 58, 70, 54, 46, 69, 65, 69, 70, 60, 72, 65, 51, 58, 54, 58, 78, 70, 65, 56, 63, 58, 66, 60, 53, 56, 75, 72, 55, 61, 58, 70, 69, 54, 64, 67, 75, 75, 73, 49, 59, 57, 82, 48, 77, 110, 34, 71, 62, 41, 62, 67, 74, 63, 46, 70, 53, 77, 72, 58, 67, 80, 62, 49, 60, 77, 55, 62, 91, 46, 71, 77, 80, 56, 56, 60, 100, 49, 61, 101, 54, 66, 61, 77, 62, 48, 63, 78, 52, 57, 46, 81, 70, 83, 62, 52, 67, 66, 54, 67, 77, 44, 68, 113, 58, 39, 69, 97, 54, 62, 122, 76, 67, 68, 43, 72, 58, 116, 55, 67, 78, 56, 53, 57, 53, 60, 88, 71, 58, 53, 67, 69, 61, 65, 63, 59, 53, 77, 82, 86, 37, 74, 39, 51, 59, 65, 64, 42, 67, 62, 65, 63, 51, 74, 76, 82, 70, 81, 79, 53, 71, 61, 76, 70, 47, 59, 53, 55, 114, 70, 53, 81, 80, 54, 80, 42, 53, 53, 56, 66, 53, 66, 66, 77, 73, 80, 60, 54, 68, 40, 59, 66, 50, 61, 53, 57, 39, 62, 77, 70, 51, 65, 72, 72, 79, 58, 49, 84, 70, 69, 94, 53, 65, 64, 51, 57, 70, 68, 79, 61, 52, 54, 63, 70, 51, 66, 69, 59, 86, 66, 45, 64, 70, 83, 58, 66, 59, 54, 55, 67, 52, 68, 55, 107, 44, 60, 82, 51, 65, 57, 60, 65, 63, 95, 39, 61, 73, 62, 130, 54, 70, 59, 50, 54, 81, 65, 87, 63, 61, 64, 67, 71, 45, 59, 65, 76, 77, 63, 50, 68, 64, 77, 69, 72, 69, 61, 82, 55, 117, 70, 54, 84, 75, 68, 67, 67, 50, 70, 59, 52, 47, 62, 59, 54, 64, 66, 79, 72, 48, 78, 80, 105, 50, 54, 108, 73, 51, 56, 88, 76, 77, 67, 66, 62, 87, 53, 50, 60, 48, 83, 59, 62, 96, 60, 48, 65, 72, 76, 49, 68, 102, 48, 70, 80, 56, 87, 72, 65, 80, 61, 57, 75, 74, 52, 58, 77, 64, 94, 76, 59, 41, 93, 55, 70, 53, 76, 55, 75, 80, 105, 70, 81, 82, 60, 31, 77, 38, 57, 67, 62, 86, 52, 57, 81, 54, 35, 60, 64, 61, 57, 48, 57, 52, 62, 77, 62, 54, 48, 82, 135, 78, 58, 51, 63, 61, 75, 67, 61, 68, 47, 75, 58, 60, 69, 72, 63, 109, 68, 139, 84, 119, 81, 63, 68, 74, 85, 74, 57, 59, 53, 63, 58, 49, 57, 76, 41, 72, 40, 72, 70, 60, 62, 80, 62, 65, 36, 75, 72, 52, 64, 68, 65, 62, 69, 65, 65, 57, 73, 117, 60, 68, 96, 65, 62, 66, 76, 52, 40, 60, 47, 84, 47, 57, 84, 80, 73, 57, 90, 78, 70, 52, 62, 92, 66, 72, 77, 80, 89, 68, 64, 82, 78, 86, 42, 49, 60, 61, 66, 59, 70, 50, 66, 84, 80, 74, 59, 46, 58, 80, 67, 73, 43, 92, 52, 61, 69, 72, 70, 51, 64, 50, 64, 67, 75, 81, 48, 73, 60, 47, 85, 133, 52, 44, 65, 87, 67, 55, 54, 57, 71, 67, 126, 70, 72, 53, 65, 72, 72, 67, 46, 69, 54, 58, 76, 55, 58, 34, 59, 76, 60, 83, 80, 57, 57, 71, 68, 63, 61, 57, 70, 57, 83, 59, 79, 62, 61, 72, 72, 54, 46, 62, 41, 51, 61, 49, 65, 64, 50, 62, 80, 90, 116, 62, 59, 52, 67, 58, 71, 56, 114, 113, 68, 88, 66, 70, 44, 53, 88, 60, 51, 51, 57, 71, 60, 52, 54, 48, 47, 57, 65, 68, 61, 100, 62, 63, 39, 50, 50, 74, 76, 68, 46, 55, 122, 72, 47, 33, 56, 69, 87, 79, 74, 82, 90, 71, 58, 84, 57, 82, 100, 57, 69, 62, 56, 44, 58, 61, 144, 77, 116, 79, 108, 63, 61, 72, 71, 85, 71, 53, 57, 76, 65, 63, 41, 53, 52, 65, 49, 69, 63, 50, 71, 82, 45, 78, 55, 59, 70, 75, 89, 51, 55, 74, 62, 68, 80, 49, 82, 65, 67, 75, 62, 60, 59, 59, 56, 73, 47, 64, 78, 80, 67, 49, 51, 75, 74, 61, 66, 59, 59, 53, 59, 71, 74, 73, 54, 80, 41, 61, 33, 61, 64, 80, 59, 50, 72, 66, 77, 60, 44, 56, 52, 63, 61, 72, 67, 52, 38, 59, 44, 66, 59, 51, 68, 60, 48, 48, 59, 59, 64, 80, 73, 86, 57, 69, 57, 73, 67, 69, 53, 72, 50, 63, 69, 86, 63, 76, 107, 59, 71, 43, 74, 61, 71, 46, 76, 93, 60, 55, 51, 60, 43, 59, 69, 71, 56, 41, 70, 59, 96, 57, 69, 78, 44, 56, 53, 54, 72, 75, 80, 70, 75, 65, 73, 80, 67, 54, 57, 50, 81, 46, 67, 94, 56, 55, 47, 89, 108, 80, 56, 67, 54, 63, 54, 51, 72, 75, 68, 63, 148, 73, 86, 35, 71, 48, 78, 55, 67, 65, 68, 86, 55, 79, 68, 67, 74, 60, 48, 97, 66, 72, 69, 66, 47, 62, 54, 59, 61, 72, 59, 72, 82, 95, 68, 70, 85, 37, 44, 61, 62, 70, 69, 46, 47, 56, 49, 131, 72, 56, 59, 83, 68, 65, 73, 67, 77, 55, 78, 78, 33, 65, 81, 70, 74, 100, 55, 62, 61, 54, 76, 77, 86, 76, 74, 54, 75, 87, 98, 70, 80, 70, 70, 48, 64, 54, 93, 48, 66, 48, 56, 71, 53, 68, 89, 72, 75, 61, 54, 69, 76, 65, 59, 87, 57, 55, 68, 88, 77, 62, 89, 70, 58, 56, 81, 72, 48, 56, 92, 64, 65, 82, 75, 64, 55, 50, 75, 63, 72, 55, 78, 65, 68, 75, 84, 55, 53, 59, 36, 65, 88, 66, 50, 54, 56, 73, 89, 52, 71, 55, 45, 58, 65, 54, 74, 58, 37, 124, 101, 53, 88, 40, 74, 73, 35, 54, 63, 79, 71, 46, 69, 51, 61, 58, 85, 100, 80, 48, 51, 68, 56, 65, 88, 53, 70, 112, 80, 73, 63, 111, 46, 54, 71, 68, 68, 71, 53, 51, 86, 71, 45, 69, 79, 66, 63, 75, 74, 67, 72, 50, 72, 52, 73, 44, 62, 83, 67, 43, 72, 74, 52, 85, 73, 72, 46, 58, 53, 60, 42, 55, 53, 68, 61, 68, 49, 69, 33, 110, 69, 48, 94, 63, 58, 69, 81, 75, 83, 67, 60, 58, 70, 73, 65, 60, 55, 62, 65, 63, 54, 68, 58, 47, 58, 62, 83, 53, 81, 59, 79, 65, 42, 148, 58, 100, 62, 73, 99, 55, 72, 92, 62, 102, 56, 48, 65, 71, 53, 80, 54, 89, 58, 79, 50, 56, 58, 89, 65, 32, 55, 100, 67, 78, 63, 93, 59, 76, 55, 50, 80, 41, 60, 61, 51, 54, 103, 58, 52, 57, 55, 78, 90, 70, 51, 65, 85, 55, 68, 60, 76, 65, 78, 66, 59, 55, 71, 62, 53, 69, 38, 69, 67, 60, 64, 58, 67, 85, 80, 62, 53, 88, 60, 59, 58, 69, 70, 79, 84, 110, 72, 80, 69, 76, 67, 79, 62, 64, 69, 52, 73, 51, 62, 64, 70, 53, 76, 47, 70, 61, 88, 71, 84, 53, 88, 86, 78, 53, 58, 60, 55, 69, 66, 94, 52, 56, 60, 60, 41, 65, 84, 62, 78, 42, 59, 61, 59, 65, 60, 73, 69, 71, 56, 65, 63, 61, 62, 54, 52, 68, 62, 75, 97, 60, 71, 41, 64, 64, 73, 77, 77, 85, 64, 55, 65, 56, 55, 68, 115, 60, 63, 61, 60, 72, 54, 78, 55, 67, 58, 71, 71, 76, 50, 65, 61, 56, 56, 64, 60, 78, 76, 73, 64, 61, 60, 56, 68, 64, 99, 75, 40, 71, 74, 61, 61, 46, 68, 44, 68, 88, 72, 84, 82, 63, 78, 58, 62, 53, 58, 70, 59, 55, 58, 70, 51, 51, 78, 44, 73, 76, 72, 45, 51, 79, 52, 69, 52, 58, 46, 91, 73, 69, 60, 79, 60, 85, 61, 59, 73, 66, 71, 74, 65, 83, 57, 77, 72, 61, 66, 67, 78, 68, 64, 65, 65, 57, 62, 52, 59, 70, 53, 69, 63, 57, 63, 78, 56, 53, 82, 63, 92, 96, 72, 62, 88, 60, 83, 67, 80, 96, 74, 63, 61, 79, 105, 71, 75, 52, 104, 74, 76, 51, 72, 65, 73, 75, 53, 64, 59, 44, 70, 61, 86, 77, 72, 46, 65, 66, 58, 85, 92, 47, 58, 53, 57, 55, 85, 65, 51, 76, 75, 63, 81, 91, 53, 54, 73, 91, 56, 94, 51, 58, 84, 59, 65, 82, 62, 69, 52, 79, 44, 65, 65, 64, 69, 59, 56, 53, 61, 60, 72, 81, 68, 60, 141, 42, 93, 58, 52, 59, 78, 58, 62, 48, 61, 75, 69, 63, 66, 63, 63, 85, 88, 66, 79, 47, 69, 72, 45, 72, 95, 74, 41, 76, 45, 95, 80, 66, 73, 77, 78, 55, 64, 57, 50, 70, 83, 70, 71, 89, 82, 153, 64, 72, 67, 48, 47, 63, 72, 67, 53, 58, 80, 61, 57, 78, 57, 59, 37, 53, 38, 92, 69, 59, 59, 73, 81, 70, 55, 59, 51, 51, 81, 75, 76, 83, 50, 85, 64, 57, 57, 94, 58, 43, 65, 68, 85, 43, 67, 48, 70, 71, 67, 68, 88, 64, 73, 81, 84, 70, 76, 66, 61, 71, 51, 90, 70, 75, 55, 59, 69, 71, 99, 62, 62, 76, 65, 85, 42, 62, 60, 54, 78, 73, 75, 47, 78, 107, 62, 58, 74, 70, 85, 66, 58, 70, 85, 87, 59, 59, 72, 49, 62, 62, 72, 54, 75, 66, 57, 51, 69, 64, 79, 65, 68, 63, 69, 75, 69, 51, 126, 73, 64, 71, 65, 58, 68, 68, 60, 51, 62, 74, 69, 82, 85, 80, 70, 49, 95, 55, 49, 73, 70, 78, 71, 66, 65, 84, 56, 76, 67, 80, 64, 80, 56, 57, 60, 67, 50, 58, 61, 59, 47, 40, 58, 55, 71, 58, 79, 63, 69, 51, 43, 69, 61, 56, 109, 57, 74, 73, 51, 65, 54, 58, 66, 53, 50, 72, 115, 62, 48, 71, 67, 63, 77, 58, 61, 40, 70, 60, 70, 72, 59, 46, 51, 77, 45, 64, 78, 93, 57, 66, 74, 52, 77, 66, 64, 65, 68, 63, 63, 54, 60, 80, 90, 55, 43, 72, 110, 59, 65, 49, 50, 54, 70, 47, 63, 61, 63, 43, 74, 86, 57, 79, 55, 65, 61, 70, 75, 55, 73, 66, 62, 68, 55, 55, 56, 57, 65, 55, 59, 68, 67, 81, 44, 58, 52, 58, 49, 49, 62, 58, 60, 64, 64, 62, 29, 75, 87, 56, 67, 41, 45, 63, 57, 64, 59, 81, 63, 72, 64, 56, 62, 62, 55, 62, 50, 54, 60, 68, 65, 52, 80, 70, 73, 85, 63, 69, 63, 69, 63, 52, 71, 63, 68, 61, 62, 63, 49, 55, 49, 64, 55, 57, 37, 104, 67, 64, 58, 50, 66, 70, 55, 54, 64, 66, 74, 59, 71, 39, 56, 55, 67, 77, 95, 62, 74, 49, 41, 69, 49, 52, 99, 69, 68, 54, 67, 64, 65, 81, 64, 51, 68, 64, 77, 50, 60, 54, 84, 87, 58, 73, 62, 70, 60, 92, 70, 58, 77, 65, 69, 79, 59, 74, 98, 54, 65, 66, 93, 63, 135, 63, 48, 54, 108, 83, 64, 95, 58, 70, 88, 50, 63, 55, 66, 65, 99, 41, 50, 74, 69, 65, 66, 54, 78, 82, 63, 64, 57, 58, 56, 98, 61, 63, 68, 59, 63, 70, 64, 54, 75, 70, 55, 75, 58, 72, 62, 54, 72, 53, 54, 82, 62, 51, 60, 78, 71, 64, 57, 60, 62, 67, 70, 94, 68, 48, 61, 62, 53, 65, 62, 77, 51, 71, 64, 66, 62, 70, 69, 64, 90, 84, 40, 63, 42, 61, 51, 67, 61, 74, 75, 77, 77, 54, 97, 63, 62, 63, 63, 75, 60, 59, 53, 58, 110, 76, 68, 57, 63, 65, 69, 48, 37, 59, 62, 64, 55, 61, 59, 65, 61, 61, 75, 55, 54, 53, 74, 108, 56, 31, 48, 47, 53, 85, 69, 69, 86, 88, 65, 69, 59, 62, 85, 53, 51, 51, 73, 75, 50, 49, 64, 68, 73, 110, 69, 68, 60, 84, 61, 82, 67, 68, 72, 55, 76, 95, 63, 61, 95, 56, 62, 56, 71, 46, 57, 62, 61, 126, 83, 70, 76, 67, 76, 82, 75, 71, 65, 44, 61, 69, 73, 46, 46, 45, 62, 61, 69, 82, 50, 76, 54, 66, 81, 53, 55, 75, 67, 87, 54, 72, 56, 101, 60, 45, 70, 76, 58, 88, 55, 62, 64, 63, 55, 52, 80, 53, 65, 84, 84, 63, 94, 72, 52, 56, 64, 63, 81, 51, 65, 51, 57, 68, 107, 58, 61, 82, 60, 65, 55, 58, 68, 77, 74, 55, 70, 80, 71, 83, 67, 94, 68, 57, 74, 57, 63, 58, 55, 62, 59, 64, 65, 55, 62, 54, 55, 67, 63, 85, 59, 42, 134, 67, 63, 75, 55, 68, 75, 73, 84, 66, 62, 55, 81, 66, 101, 73, 85, 81, 80, 71, 51, 54, 65, 62, 56, 82, 61, 73, 71, 66, 47, 76, 56, 66, 69, 63, 33, 81, 68, 64, 49, 72, 62, 81, 73, 77, 61, 64, 57, 64, 56, 66, 60, 37, 51, 82, 73, 51, 70, 75, 67, 59, 54, 42, 56, 69, 81, 51, 59, 41, 80, 61, 41, 55, 45, 84, 68, 68, 51, 78, 65, 46, 65, 46, 45, 66, 54, 74, 75, 47, 62, 51, 56, 96, 61, 80, 65, 62, 67, 55, 59, 69, 93, 48, 60, 51, 53, 60, 69, 61, 64, 55, 66, 63, 75, 58, 48, 74, 62, 68, 64, 68, 64, 65, 35, 48, 65, 64, 59, 64, 111, 76, 60, 53, 72, 71, 47, 50, 59, 73, 61, 68, 64, 61, 108, 64, 68, 73, 47, 62, 61, 73, 87, 89, 67, 58, 55, 54, 60, 53, 51, 66, 68, 104, 68, 68, 50, 56, 73, 83, 49, 50, 59, 64, 54, 62, 93, 34, 75, 56, 72, 58, 81, 77, 80, 37, 64, 49, 60, 68, 77, 84, 83, 84, 51, 49, 36, 63, 61, 52, 92, 91, 67, 78, 91, 103, 53, 65, 61, 107, 34, 76, 79, 78, 96, 67, 57, 74, 64, 77, 72, 69, 71, 62, 92, 77, 71, 59, 96, 98, 72, 66, 83, 97, 70, 70, 46, 72, 65, 50, 73, 71, 82, 73, 62, 48, 78, 59, 74, 64, 66, 73, 61, 57, 61, 60, 50, 48, 48, 65, 71, 57, 80, 58, 65, 71, 62, 51, 60, 56, 63, 69, 63, 76, 64, 52, 85, 63, 97, 71, 70, 35, 105, 60, 91, 74, 73, 103, 69, 53, 52, 45, 58, 77, 68, 61, 67, 60, 68, 55, 48, 84, 74, 53, 53, 63, 79, 70, 56, 55, 78, 53, 91, 40, 68, 59, 65, 65, 86, 80, 62, 56, 48, 60, 53, 76, 55, 63, 61, 61, 69, 70, 115, 71, 51, 67, 73, 73, 86, 60, 54, 54, 79, 56, 62, 66, 51, 87, 79, 46, 94, 61, 81, 84, 50, 43, 61, 72, 62, 69, 69, 52, 76, 60, 67, 41, 55, 125, 62, 105, 54, 77, 76, 65, 78, 58, 52, 75, 69, 67, 61, 66, 72, 67, 66, 102, 73, 59, 75, 101, 78, 75, 86, 49, 72, 63, 65, 67, 54, 70, 65, 104, 47, 55, 76, 46, 64, 59, 79, 50, 68, 57, 74, 69, 42, 84, 72, 55, 78, 65, 45, 46, 61, 56, 47, 71, 67, 52, 59, 61, 62, 61, 43, 54, 62, 57, 51, 54, 73, 52, 60, 60, 74, 68, 49, 60, 89, 70, 52, 61, 59, 55, 94, 50, 70, 47, 62, 66, 55, 78, 72, 53, 64, 49, 49, 65, 60, 53, 65, 82, 56, 60, 49, 58, 72, 52, 57, 61, 60, 53, 88, 57, 65, 75, 58, 68, 89, 59, 73, 55, 78, 67, 56, 63, 53, 54, 43, 77, 65, 59, 55, 44, 50, 56, 73, 70, 62, 71, 68, 69, 65, 76, 67, 50, 61, 61, 89, 92, 57, 67, 66, 55, 63, 56, 186, 46, 61, 61, 64, 77, 77, 120, 52, 57, 70, 77, 63, 76, 75, 60, 68, 59, 59, 134, 71, 62, 61, 75, 76, 52, 55, 79, 69, 63, 71, 60, 73, 63, 61, 49, 52, 69, 84, 39, 73, 71, 56, 67, 53, 69, 61, 53, 70, 57, 91, 57, 49, 86, 60, 52, 87, 57, 59, 69, 73, 66, 65, 54, 70, 72, 90, 70, 73, 62, 62, 99, 60, 65, 68, 58, 62, 73, 44, 50, 62, 73, 54, 62, 65, 55, 65, 74, 69, 113, 66, 62, 45, 67, 55, 51, 49, 51, 77, 54, 67, 45, 79, 58, 53, 58, 61, 63, 52, 109, 53, 68, 64, 73, 64, 66, 59, 54, 65, 63, 61, 60, 57, 97, 43, 68, 70, 64, 61, 66, 89, 65, 46, 66, 93, 54, 64, 138, 67, 77, 62, 62, 79, 79, 54, 85, 62, 69, 55, 65, 66, 64, 66, 68, 78, 36, 76, 47, 47, 52, 78, 71, 51, 45, 54, 64, 55, 79, 76, 63, 63, 63, 62, 58, 67, 53, 51, 64, 75, 64, 55, 64, 56, 64, 44, 67, 64, 76, 120, 94, 64, 71, 73, 66, 43, 63, 62, 40, 67, 62, 76, 57, 52, 56, 106, 53, 70, 67, 69, 62, 80, 59, 42, 65, 67, 41, 78, 57, 60, 56, 74, 60, 48, 82, 95, 56, 82, 58, 50, 71, 67, 67, 71, 55, 68, 66, 70, 67, 61, 159, 74, 74, 54, 55, 67, 73, 61, 131, 100, 62, 79, 86, 71, 72, 60, 54, 110, 67, 82, 62, 61, 57, 58, 66, 68, 80, 96, 58, 81, 66, 61, 65, 65, 58, 60, 66, 70, 54, 62, 71, 62, 97, 69, 78, 34, 77, 78, 54, 51, 61, 68, 98, 88, 46, 64, 76, 73, 67, 58, 47, 54, 72, 85, 47, 73, 63, 59, 65, 73, 58, 56, 54, 77, 86, 68, 74, 97, 32, 55, 56, 61, 66, 71, 77, 119, 61, 54, 43, 43, 63, 63, 53, 64, 62, 65, 54, 53, 59, 54, 65, 82, 56, 59, 87, 69, 57, 62, 52, 57, 68, 65, 48, 46, 60, 43, 36, 89, 75, 74, 53, 75, 74, 85, 81, 75, 79, 62, 51, 63, 91, 87, 66, 82, 80, 53, 83, 65, 69, 62, 56, 54, 81, 60, 57, 56, 98, 68, 60, 76, 67, 57, 46, 54, 62, 69, 60, 39, 64, 80, 106, 52, 55, 72, 75, 61, 78, 57, 60, 55, 87, 84, 72, 59, 66, 60, 67, 59, 69, 56, 63, 78, 77, 70, 61, 67, 51, 79, 68, 61, 58, 84, 86, 60, 48, 47, 72, 76, 77, 68, 86, 60, 50, 56, 77, 69, 48, 65, 46, 93, 57, 67, 65, 81, 56, 75, 65, 117, 67, 69, 68, 47, 58, 59, 49, 85, 55, 83, 57, 79, 66, 61, 45, 60, 56, 76, 65, 64, 57, 74, 80, 45, 49, 110, 67, 60, 90, 68, 97, 74, 81, 83, 84, 54, 48, 68, 62, 39, 63, 67, 56, 59, 64, 71, 55, 66, 42, 52, 61, 112, 48, 44, 49, 65, 58, 65, 51, 101, 55, 51, 70, 51, 77, 53, 72, 81, 55, 68, 82, 74, 61, 44, 48, 74, 56, 62, 72, 54, 48, 63, 69, 62, 54, 121, 47, 78, 73, 71, 52, 67, 58, 76, 57, 61, 57, 57, 54, 51, 70, 71, 57, 78, 61, 53, 48, 40, 54, 44, 67, 82, 32, 63, 54, 59, 61, 58, 58, 80, 48, 68, 58, 64, 62, 81, 72, 53, 79, 57, 75, 80, 75, 64, 64, 61, 41, 68, 71, 60, 67, 51, 101, 46, 56, 67, 60, 56, 53, 50, 55, 68, 65, 63, 80, 65, 58, 74, 87, 49, 56, 58, 56, 62, 52, 48, 52, 74, 67, 74, 84, 55, 53, 79, 80, 62, 44, 55, 73, 76, 51, 58, 54, 56, 63, 58, 64, 54, 55, 41, 79, 68, 57, 72, 53, 70, 64, 94, 79, 76, 65, 57, 85, 51, 39, 68, 69, 76, 94, 46, 51, 51, 91, 94, 80, 68, 43, 75, 63, 80, 68, 47, 44, 49, 73, 88, 64, 59, 51, 50, 76, 67, 78, 41, 71, 86, 63, 81, 52, 93, 84, 54, 72, 73, 80, 60, 88, 86, 54, 63, 53, 46, 34, 82, 48, 77, 47, 62, 61, 89, 72, 76, 74, 58, 58, 67, 78, 92, 67, 93, 93, 97, 72, 45, 50, 77, 83, 62, 45, 66, 57, 50, 78, 69, 57, 56, 70, 54, 33, 66, 69, 47, 61, 65, 43, 87, 58, 81, 67, 99, 37, 72, 80, 72, 60, 95, 68, 69, 65, 57, 46, 67, 68, 58, 89, 56, 51, 58, 53, 88, 75, 63, 50, 64, 69, 55, 65, 48, 72, 66, 68, 53, 87, 57, 59, 81, 99, 40, 59, 69, 68, 49, 73, 89, 66, 56, 54, 74, 57, 71, 77, 68, 59, 56, 58, 64, 77, 76, 77, 68, 79, 81, 82, 47, 64, 44, 80, 66, 58, 53, 84, 63, 68, 81, 57, 63, 85, 62, 74, 54, 41, 108, 83, 54, 74, 80, 105, 106, 71, 67, 81, 60, 56, 56, 97, 39, 98, 63, 87, 59, 73, 61, 71, 73, 60, 71, 69, 89, 73, 71, 80, 55, 78, 62, 87, 94, 55, 52, 57, 70, 76, 66, 52, 83, 71, 40, 59, 44, 53, 74, 87, 105, 64, 53, 102, 68, 40, 50, 78, 70, 65, 72, 61, 83, 111, 60, 67, 55, 65, 79, 52, 64, 60, 74, 73, 49, 50, 61, 99, 77, 57, 78, 69, 53, 49, 91, 73, 58, 70, 57, 50, 59, 61, 78, 45, 44, 74, 73, 44, 58, 63, 48, 70, 74, 63, 63, 63, 76, 53, 54, 45, 72, 69, 66, 59, 45, 53, 56, 55, 40, 66, 60, 56, 66, 76, 36, 74, 34, 51, 71, 51, 70, 55, 43, 48, 89, 74, 76, 79, 54, 82, 66, 46, 72, 72, 72, 65, 89, 57, 104, 52, 72, 85, 54, 44, 52, 67, 58, 46, 47, 69, 69, 75, 18, 95, 60, 67, 95, 62, 82, 86, 51, 72, 75, 64, 86, 62, 55, 61, 73, 105, 72, 101, 66, 72, 55, 54, 51, 45, 77, 49, 69, 77, 54, 70, 69, 68, 61, 66, 85, 50, 59, 69, 69, 75, 50, 87, 95, 71, 57, 60, 67, 80, 53, 60, 64, 87, 46, 72, 51, 72, 58, 54, 66, 70, 57, 50, 75, 51, 45, 42, 84, 68, 76, 69, 78, 64, 63, 49, 62, 66, 68, 75, 82, 87, 65, 50, 79, 50, 56, 53, 70, 63, 63, 74, 89, 68, 81, 64, 58, 82, 75, 48, 57, 78, 62, 70, 77, 64, 62, 38, 74, 65, 69, 61, 59, 52, 45, 55, 67, 88, 45, 77, 59, 55, 61, 56, 40, 63, 99, 66, 61, 72, 84, 55, 65, 43, 61, 57, 59, 55, 68, 50, 71, 67, 78, 70, 67, 66, 74, 65, 60, 47, 52, 53, 85, 126, 54, 120, 100, 53, 45, 58, 76, 84, 58, 65, 81, 37, 61, 86, 58, 55, 59, 70, 44, 72, 71, 47, 64, 62, 72, 66, 66, 53, 82, 41, 74, 59, 67, 54, 122, 69, 86, 84, 59, 74, 46, 63, 49, 65, 97, 52, 69, 44, 70, 71, 54, 60, 73, 59, 67, 56, 61, 70, 55, 77, 64, 76, 78, 72, 60, 62, 92, 62, 58, 87, 63, 58, 66, 51, 38, 52, 65, 53, 67, 81, 127, 75, 65, 79, 56, 58, 38, 72, 70, 75, 61, 73, 58, 71, 73, 72, 102, 62, 51, 47, 49, 48, 56, 66, 80, 72, 71, 59, 65, 53, 50, 61, 81, 75, 67, 99, 56, 57, 52, 57, 87, 74, 69, 78, 78, 59, 56, 91, 125, 58, 85, 58, 60, 88, 52, 56, 67, 70, 59, 63, 75, 74, 57, 58, 79, 70, 73, 74, 65, 56, 72, 43, 56, 75, 74, 95, 55, 59, 63, 48, 72, 89, 69, 68, 82, 71, 60, 66, 53, 50, 49, 52, 67, 66, 99, 60, 67, 69, 54, 94, 78, 54, 65, 63, 63, 77, 49, 72, 58, 51, 90, 65, 36, 53, 68, 69, 46, 77, 63, 70, 61, 56, 67, 68, 57, 55, 62, 57, 76, 85, 48, 69, 53, 58, 59, 37, 68, 60, 62, 62, 50, 50, 50, 64, 114, 104, 70, 78, 56, 72, 51, 54, 77, 51, 61, 51, 67, 70, 63, 68, 77, 46, 65, 94, 57, 53, 79, 32, 84, 57, 55, 71, 74, 55, 50, 84, 79, 55, 78, 63, 56, 51, 63, 75, 43, 61, 79, 64, 68, 103, 60, 65, 64, 69, 66, 81, 50, 117, 84, 54, 101, 56, 52, 68, 53, 41, 61, 81, 67, 71, 69, 62, 59, 61, 72, 86, 79, 68, 64, 97, 65, 63, 51, 80, 86, 91, 73, 53, 73, 63, 57, 50, 63, 69, 71, 71, 55, 62, 63, 52, 63, 90, 60, 62, 76, 86, 70, 74, 61, 59, 51, 95, 57, 59, 109, 68, 47, 55, 72, 57, 58, 103, 66, 83, 69, 51, 59, 69, 49, 54, 63, 73, 54, 52, 60, 90, 53, 92, 72, 72, 60, 52, 49, 70, 49, 60, 84, 66, 55, 74, 56, 84, 78, 74, 59, 67, 87, 58, 82, 75, 59, 56, 77, 103, 71, 64, 75, 58, 68, 76, 66, 77, 54, 72, 63, 53, 69, 52, 81, 73, 50, 73, 57, 57, 45, 98, 73, 77, 63, 33, 79, 50, 73, 59, 67, 65, 51, 62, 66, 55, 71, 70, 46, 61, 61, 76, 51, 56, 52, 58, 49, 72, 57, 93, 69, 60, 49, 68, 57, 50, 76, 71, 43, 72, 59, 71, 75, 105, 48, 55, 111, 69, 52, 63, 41, 72, 79, 63, 63, 73, 58, 63, 49, 82, 76, 108, 54, 90, 33, 71, 55, 48, 56, 64, 61, 57, 53, 54, 73, 49, 56, 79, 76, 56, 90, 68, 89, 60, 55, 57, 91, 84, 50, 67, 67, 63, 71, 61, 66, 53, 82, 95, 52, 92, 98, 73, 68, 50, 53, 52, 58, 58, 73, 77, 56, 47, 64, 80, 53, 47, 58, 60, 44, 49, 61, 49, 71, 84, 68, 53, 67, 80, 62, 82, 68, 71, 54, 59, 62, 60, 62, 72, 48, 76, 81, 64, 77, 47, 45, 56, 101, 78, 67, 54, 56, 37, 60, 67, 50, 51, 52, 71, 71, 43, 49, 57, 56, 59, 49, 59, 86, 30, 58, 62, 51, 60, 65, 100, 60, 68, 70, 57, 101, 60, 64, 45, 62, 54, 55, 51, 72, 74, 62, 56, 48, 95, 59, 101, 90, 67, 116, 76, 59, 54, 123, 64, 68, 59, 69, 51, 68, 56, 68, 75, 64, 62, 85, 74, 67, 47, 69, 61, 102, 48, 72, 65, 70, 71, 75, 77, 62, 73, 65, 54, 59, 70, 57, 93, 70, 63, 65, 56, 69, 43, 53, 48, 108, 67, 57, 65, 75, 61, 56, 73, 113, 46, 60, 72, 65, 73, 75, 65, 66, 57, 58, 47, 54, 51, 61, 68, 65, 70, 79, 67, 76, 74, 56, 64, 53, 84, 81, 74, 92, 54, 80, 93, 72, 53, 87, 62, 61, 69, 48, 115, 55, 69, 71, 63, 75, 83, 64, 70, 68, 53, 66, 86, 105, 84, 51, 96, 60, 60, 108, 113, 93, 78, 52, 69, 86, 59, 44, 69, 49, 52, 74, 61, 48, 50, 48, 68, 67, 58, 79, 44, 70, 72, 57, 54, 58, 76, 64, 91, 56, 54, 50, 68, 64, 51, 69, 56, 60, 56, 61, 65, 53, 41, 99, 75, 43, 72, 54, 56, 106, 49, 52, 58, 57, 167, 79, 67, 77, 63, 62, 59, 75, 51, 64, 100, 41, 58, 90, 62, 61, 71, 60, 89, 64, 58, 39, 69, 64, 67, 77, 74, 44, 51, 37, 48, 64, 91, 58, 49, 102, 82, 45, 65, 69, 62, 50, 90, 69, 60, 57, 73, 50, 41, 69, 74, 66, 71, 59, 57, 66, 75, 58, 66, 66, 67, 74, 82, 54, 59, 83, 70, 54, 47, 68, 54, 61, 78, 66, 65, 60, 46, 53, 59, 123, 62, 76, 49, 66, 58, 49, 78, 72, 56, 64, 54, 97, 64, 55, 47, 58, 89, 59, 57, 42, 70, 40, 44, 42, 40, 56, 47, 57, 69, 92, 70, 84, 83, 91, 54, 104, 69, 56, 76, 70, 61, 38, 76, 49, 69, 55, 65, 71, 64, 84, 56, 72, 67, 70, 98, 75, 62, 77, 76, 61, 62, 52, 67, 60, 68, 86, 68, 50, 78, 73, 67, 82, 130, 89, 45, 73, 75, 65, 54, 52, 96, 50, 55, 68, 68, 66, 93, 49, 78, 56, 55, 43, 67, 36, 72, 55, 88, 62, 63, 73, 66, 56, 56, 73, 56, 72, 90, 82, 89, 47, 76, 89, 74, 75, 51, 58, 58, 55, 72, 72, 67, 57, 85, 107, 70, 56, 50, 68, 88, 63, 69, 71, 73, 56, 59, 56, 81, 58, 58, 65, 61, 67, 68, 55, 71, 71, 69, 70, 67, 61, 50, 62, 39, 62, 79, 54, 106, 63, 82, 65, 65, 77, 62, 55, 68, 57, 70, 80, 52, 70, 79, 54, 67, 60, 76, 74, 55, 65, 111, 60, 71, 77, 66, 46, 55, 69, 65, 65, 65, 90, 75, 43, 67, 58, 62, 60, 98, 63, 63, 83, 63, 85, 76, 49, 56, 60, 44, 80, 57, 48, 51, 58, 70, 56, 114, 63, 61, 64, 48, 68, 57, 77, 73, 50, 40, 63, 88, 75, 54, 53, 79, 70, 45, 63, 99, 49, 88, 46, 51, 74, 62, 52, 42, 43, 80, 44, 53, 65, 36, 69, 80, 78, 50, 50, 93, 68, 65, 64, 54, 89, 81, 59, 60, 105, 81, 62, 53, 120, 45, 67, 54, 83, 81, 157, 69, 62, 72, 50, 78, 65, 60, 61, 65, 86, 77, 65, 65, 50, 56, 62, 62, 74, 77, 62, 77, 100, 59, 72, 92, 78, 64, 71, 93, 53, 64, 65, 69, 39, 52, 53, 79, 67, 47, 84, 46, 92, 54, 83, 62, 51, 72, 52, 63, 71, 66, 53, 57, 94, 69, 49, 70, 69, 57, 76, 61, 71, 52, 80, 78, 64, 58, 69, 51, 62, 69, 59, 70, 67, 63, 59, 63, 60, 58, 64, 70, 91, 49, 70, 84, 77, 47, 65, 133, 66, 97, 53, 78, 84, 74, 87, 63, 59, 55, 85, 65, 51, 81, 60, 69, 60, 59, 39, 36, 59, 44, 48, 67, 57, 65, 57, 96, 59, 77, 73, 70, 72, 71, 51, 51, 69, 49, 67, 47, 64, 68, 57, 58, 60, 71, 70, 48, 45, 43, 61, 64, 75, 77, 70, 52, 44, 58, 68, 76, 69, 66, 66, 62, 93, 77, 47, 43, 57, 63, 49, 81, 55, 50, 65, 66, 92, 67, 63, 28, 64, 64, 75, 74, 64, 56, 53, 73, 65, 62, 57, 55, 126, 79, 62, 83, 81, 55, 71, 47, 56, 69, 72, 67, 60, 88, 69, 52, 62, 61, 56, 47, 73, 55, 114, 79, 68, 68, 158, 62, 58, 77, 58, 64, 50, 75, 54, 65, 77, 55, 119, 83, 64, 54, 67, 65, 64, 70, 66, 70, 85, 38, 59, 76, 66, 60, 56, 66, 62, 55, 49, 84, 63, 71, 58, 68, 67, 58, 66, 125, 49, 68, 71, 74, 63, 64, 86, 81, 68, 50, 69, 71, 61, 55, 66, 58, 45, 118, 82, 64, 62, 62, 47, 69, 61, 68, 51, 61, 69, 66, 63, 53, 52, 122, 84, 58, 44, 70, 54, 91, 50, 69, 61, 99, 54, 63, 102, 72, 57, 58, 53, 73, 59, 73, 56, 64, 72, 47, 86, 58, 52, 51, 62, 66, 54, 79, 81, 90, 62, 95, 62, 59, 50, 66, 68, 55, 51, 68, 63, 62, 45, 54, 93, 92, 63, 72, 49, 68, 90, 69, 68, 80, 56, 44, 59, 61, 68, 84, 59, 91, 86, 66, 77, 73, 83, 64, 64, 49, 62, 51, 57, 46, 85, 94, 69, 58, 67, 81, 55, 162, 70, 61, 68, 89, 82, 66, 60, 58, 72, 68, 62, 64, 91, 68, 57, 66, 55, 64, 52, 61, 56, 94, 42, 83, 59, 47, 61, 64, 71, 72, 56, 61, 68, 64, 63, 35, 60, 68, 60, 62, 48, 47, 71, 63, 45, 59, 85, 53, 66, 62, 59, 72, 56, 115, 82, 55, 74, 80, 61, 67, 74, 75, 67, 116, 71, 77, 58, 55, 63, 56, 79, 77, 65, 48, 76, 50, 48, 70, 55, 63, 64, 52, 60, 58, 62, 51, 45, 99, 76, 61, 61, 64, 88, 76, 64, 65, 76, 48, 71, 69, 55, 63, 57, 52, 65, 74, 69, 67, 64, 63, 85, 67, 55, 100, 71, 59, 54, 61, 83, 70, 90, 47, 61, 76, 70, 58, 56, 56, 53, 59, 60, 86, 102, 64, 87, 60, 80, 45, 85, 72, 80, 58, 52, 58, 57, 63, 67, 56, 58, 93, 76, 53, 58, 43, 61, 53, 55, 71, 48, 57, 69, 52, 57, 67, 55, 84, 100, 37, 65, 68, 67, 54, 89, 54, 50, 85, 79, 83, 86, 48, 51, 55, 63, 62, 71, 57, 66, 65, 75, 46, 69, 49, 83, 91, 47, 67, 73, 47, 53, 66, 67, 55, 61, 91, 62, 73, 74, 53, 55, 51, 63, 51, 79, 86, 52, 86, 66, 53, 62, 77, 70, 51, 74, 55, 58, 56, 67, 69, 89, 46, 80, 59, 46, 93, 55, 64, 59, 61, 79, 61, 78, 68, 61, 62, 52, 50, 54, 56, 61, 61, 63, 61, 48, 59, 46, 56, 56, 50, 63, 64, 59, 67, 62, 56, 64, 65, 55, 69, 49, 63, 57, 56, 67, 68, 56, 67, 84, 92, 46, 55, 73, 82, 60, 67, 56, 70, 51, 79, 55, 66, 61, 67, 91, 67, 46, 57, 61, 60, 67, 65, 58, 65, 55, 63, 61, 56, 61, 52, 83, 62, 58, 72, 72, 66, 64, 88, 65, 106, 84, 81, 56, 69, 101, 86, 64, 60, 64, 55, 70, 93, 83, 65, 62, 71, 66, 80, 62, 74, 57, 78, 53, 51, 59, 68, 69, 75, 97, 56, 64, 43, 62, 50, 64, 58, 31, 59, 48, 80, 49, 45, 106, 90, 62, 81, 70, 78, 79, 47, 47, 78, 74, 58, 53, 80, 93, 55, 61, 71, 76, 50, 68, 67, 67, 73, 62, 58, 62, 75, 61, 66, 142, 53, 81, 89, 59, 60, 69, 59, 99, 65, 63, 57, 59, 67, 71, 93, 71, 52, 58, 52, 77, 66, 58, 79, 81, 86, 52, 69, 46, 51, 51, 61, 60, 75, 68, 44, 76, 46, 67, 62, 50, 66, 72, 63, 54, 53, 58, 75, 44, 45, 75, 55, 104, 56, 89, 53, 61, 66, 68, 58, 80, 62, 60, 72, 55, 42, 48, 57, 70, 71, 44, 69, 112, 61, 62, 69, 54, 60, 66, 102, 46, 67, 63, 70, 63, 80, 54, 83, 59, 63, 63, 82, 77, 59, 71, 47, 64, 87, 53, 80, 41, 80, 76, 82, 74, 58, 63, 52, 61, 63, 57, 60, 67, 54, 62, 63, 58, 69, 70, 93, 74, 68, 50, 91, 61, 73, 89, 63, 116, 71, 71, 69, 51, 91, 44, 76, 121, 50, 32, 70, 63, 86, 63, 62, 82, 65, 70, 72, 77, 48, 61, 87, 51, 50, 53, 82, 59, 81, 48, 73, 63, 59, 79, 57, 57, 51, 84, 69, 70, 81, 73, 74, 50, 73, 67, 59, 54, 58, 57, 85, 60, 58, 55, 62, 63, 60, 55, 78, 65, 64, 55, 87, 54, 71, 64, 97, 76, 47, 86, 71, 70, 73, 93, 81, 64, 51, 67, 56, 79, 48, 75, 57, 60, 60, 69, 66, 53, 64, 60, 55, 63, 59, 69, 68, 67, 88, 55, 61, 81, 56, 59, 33, 66, 54, 73, 75, 68, 78, 51, 61, 61, 62, 66, 63, 83, 68, 58, 56, 73, 62, 58, 61, 73, 65, 73, 58, 59, 47, 51, 71, 92, 79, 68, 111, 79, 67, 67, 69, 65, 67, 69, 60, 50, 84, 59, 54, 57, 82, 89, 59, 78, 53, 92, 60, 70, 69, 68, 88, 60, 70, 51, 62, 51, 61, 55, 57, 46, 65, 86, 45, 66, 103, 57, 66, 71, 66, 55, 83, 88, 74, 61, 84, 73, 50, 51, 79, 70, 72, 62, 104, 44, 92, 72, 58, 64, 69, 42, 75, 70, 55, 45, 42, 67, 51, 72, 62, 54, 52, 43, 64, 52, 70, 74, 50, 58, 57, 47, 51, 48, 61, 83, 67, 72, 76, 65, 50, 76, 71, 60, 72, 53, 61, 47, 73, 51, 119, 44, 57, 60, 52, 76, 87, 38, 70, 51, 62, 58, 39, 88, 59, 61, 55, 52, 64, 60, 55, 58, 71, 68, 62, 41, 46, 79, 55, 60, 55, 56, 73, 50, 93, 61, 63, 103, 61, 73, 55, 100, 63, 70, 52, 50, 79, 73, 61, 67, 78, 79, 72, 68, 58, 44, 41, 64, 66, 64, 59, 51, 93, 58, 93, 88, 47, 85, 63, 56, 55, 69, 45, 51, 83, 79, 46, 67, 72, 71, 73, 66, 55, 77, 64, 89, 46, 69, 77, 90, 84, 48, 91, 69, 63, 71, 78, 59, 90, 70, 53, 68, 57, 47, 83, 49, 63, 76, 50, 63, 57, 114, 43, 61, 44, 52, 60, 85, 63, 60, 62, 72, 47, 75, 44, 46, 45, 73, 57, 56, 55, 146, 68, 45, 54, 72, 76, 78, 74, 87, 54, 78, 67, 50, 61, 55, 52, 61, 59, 39, 123, 60, 75, 51, 49, 66, 45, 63, 59, 80, 73, 68, 83, 88, 53, 58, 81, 73, 51, 51, 58, 58, 78, 40, 64, 86, 64, 51, 77, 59, 61, 50, 71, 59, 75, 49, 51, 57, 62, 70, 70, 63, 72, 69, 63, 48, 69, 78, 62, 78, 47, 53, 64, 84, 61, 64, 61, 57, 90, 99, 61, 62, 60, 88, 69, 102, 84, 50, 55, 45, 60, 70, 78, 51, 65, 73, 66, 71, 60, 87, 77, 57, 44, 69, 64, 64, 76, 69, 58, 73, 62, 79, 80, 85, 66, 85, 62, 81, 57, 71, 41, 81, 73, 53, 53, 87, 56, 50, 96, 63, 79, 66, 42, 66, 65, 61, 68, 52, 71, 74, 56, 64, 80, 57, 60, 53, 65, 54, 68, 59, 73, 67, 70, 59, 63, 61, 50, 56, 54, 64, 80, 69, 61, 55, 78, 57, 71, 65, 87, 78, 64, 56, 62, 70, 48, 68, 61, 66, 43, 63, 78, 57, 60, 61, 66, 60, 94, 65, 68, 70, 54, 71, 55, 67, 79, 45, 80, 71, 57, 62, 71, 64, 62, 54, 63, 51, 66, 71, 81, 61, 66, 61, 61, 65, 71, 61, 58, 69, 69, 72, 57, 62, 59, 61, 55, 69, 58, 68, 76, 55, 60, 83, 56, 74, 57, 50, 67, 64, 60, 50, 103, 58, 67, 71, 67, 74, 82, 85, 47, 65, 70, 55, 60, 126, 66, 73, 75, 58, 67, 52, 61, 77, 84, 55, 44, 79, 65, 81, 46, 70, 49, 40, 67, 65, 83, 70, 56, 33, 86, 80, 75, 65, 64, 64, 92, 57, 71, 63, 99, 58, 50, 65, 61, 61, 68, 59, 78, 76, 56, 42, 60, 54, 85, 109, 63, 103, 62, 58, 72, 74, 80, 81, 69, 51, 66, 95, 62, 55, 41, 100, 59, 61, 60, 81, 65, 51, 86, 43, 62, 57, 55, 77, 122, 74, 53, 79, 66, 68, 57, 79, 56, 88, 47, 56, 72, 71, 59, 118, 74, 67, 43, 83, 64, 53, 51, 77, 69, 66, 42, 67, 58, 52, 76, 62, 74, 52, 60, 58, 71, 71, 46, 51, 58, 54, 63, 53, 55, 56, 74, 83, 76, 51, 51, 64, 57, 59, 64, 83, 60, 53, 77, 63, 52, 75, 59, 58, 57, 55, 74, 52, 54, 50, 47, 75, 67, 78, 48, 73, 63, 59, 61, 58, 49, 98, 51, 74, 61, 63, 53, 68, 64, 57, 64, 46, 68, 54, 51, 65, 71, 63, 89, 74, 46, 56, 63, 99, 70, 54, 65, 78, 68, 55, 61, 81, 94, 63, 63, 66, 35, 69, 55, 52, 63, 96, 81, 89, 56, 62, 76, 74, 56, 77, 83, 60, 65, 59, 58, 106, 83, 66, 43, 71, 59, 53, 57, 82, 68, 68, 60, 70, 47, 47, 49, 65, 53, 70, 66, 62, 88, 54, 57, 71, 69, 76, 70, 58, 68, 53, 55, 55, 83, 68, 59, 67, 78, 76, 66, 100, 61, 79, 58, 66, 65, 55, 60, 65, 79, 76, 70, 55, 61, 67, 61, 54, 98, 41, 65, 56, 82, 44, 48, 82, 66, 77, 64, 73, 50, 78, 64, 31, 59, 60, 58, 76, 83, 62, 80, 74, 53, 65, 71, 54, 55, 51, 79, 73, 70, 56, 66, 56, 80, 57, 90, 61, 50, 63, 53, 69, 71, 45, 58, 53, 76, 98, 70, 68, 63, 77, 92, 65, 76, 99, 52, 60, 80, 75, 91, 73, 81, 73, 60, 56, 52, 56, 59, 59, 56, 69, 78, 90, 51, 58, 74, 56, 54, 64, 65, 67, 84, 72, 82, 85, 69, 59, 63, 86, 70, 79, 57, 71, 82, 63, 65, 66, 76, 67, 53, 86, 87, 84, 45, 56, 69, 55, 73, 65, 95, 77, 61, 59, 61, 66, 74, 63, 52, 50, 51, 56, 83, 86, 93, 69, 76, 94, 91, 46, 60, 66, 54, 93, 53, 63, 91, 65, 60, 73, 63, 63, 51, 87, 56, 56, 64, 86, 54, 65, 64, 62, 59, 66, 58, 58, 71, 69, 77, 74, 57, 68, 59, 56, 51, 67, 40, 64, 50, 41, 94, 71, 62, 63, 61, 76, 65, 55, 74, 74, 58, 68, 66, 66, 28, 67, 54, 60, 76, 58, 61, 69, 57, 70, 54, 77, 77, 70, 49, 62, 84, 67, 64, 66, 55, 119, 52, 59, 57, 47, 65, 58, 43, 83, 68, 65, 71, 53, 69, 59, 64, 43, 69, 69, 55, 57, 59, 57, 71, 65, 58, 69, 40, 64, 56, 59, 69, 62, 57, 63, 66, 55, 67, 60, 55, 67, 59, 67, 86, 56, 30, 77, 61, 58, 74, 62, 45, 55, 73, 52, 57, 60, 56, 53, 60, 81, 83, 74, 59, 68, 61, 47, 66, 61, 64, 62, 51, 76, 75, 62, 61, 54, 71, 84, 69, 87, 62, 71, 64, 53, 76, 53, 77, 86, 73, 57, 65, 62, 72, 76, 88, 50, 55, 69, 66, 68, 67, 73, 67, 75, 64, 56, 77, 75, 61, 50, 86, 60, 59, 59, 71, 63, 63, 97, 61, 67, 59, 64, 61, 93, 66, 54, 53, 41, 100, 65, 59, 57, 67, 57, 58, 75, 46, 76, 56, 55, 103, 59, 46, 58, 64, 52, 91, 61, 83, 51, 91, 61, 144, 50, 40, 77, 51, 64, 57, 51, 64, 50, 67, 67, 72, 82, 60, 42, 76, 70, 67, 62, 79, 61, 71, 66, 72, 88, 83, 56, 72, 64, 61, 73, 84, 63, 60, 61, 57, 82, 69, 69, 74, 27, 50, 60, 65, 74, 51, 53, 49, 53, 61, 75, 49, 60, 68, 53, 63, 74, 100, 49, 65, 64, 63, 65, 68, 52, 67, 53, 47, 52, 95, 64, 42, 80, 69, 117, 103, 51, 98, 82, 59, 64, 78, 60, 78, 55, 52, 70, 53, 73, 91, 49, 55, 78, 62, 76, 91, 58, 68, 55, 69, 66, 80, 58, 51, 60, 87, 90, 69, 62, 63, 58, 65, 71, 73, 78, 47, 56, 42, 77, 67, 42, 53, 61, 63, 70, 85, 74, 71, 47, 56, 83, 73, 72, 67, 56, 57, 57, 66, 66, 64, 77, 63, 66, 50, 84, 75, 94, 60, 66, 85, 75, 47, 63, 59, 58, 72, 68, 67, 78, 46, 62, 81, 58, 60, 68, 73, 87, 58, 56, 62, 61, 68, 69, 71, 74, 65, 61, 63, 101, 67, 64, 54, 38, 40, 66, 61, 53, 71, 70, 89, 64, 51, 77, 67, 65, 97, 74, 90, 70, 61, 66, 72, 131, 86, 53, 68, 73, 58, 73, 66, 61, 47, 53, 64, 62, 61, 32, 67, 62, 65, 59, 47, 59, 87, 70, 72, 61, 70, 77, 56, 47, 49, 70, 77, 65, 76, 53, 44, 72, 64, 63, 89, 65, 50, 72, 80, 63, 73, 51, 70, 48, 64, 56, 69, 69, 48, 88, 51, 67, 53, 56, 73, 63, 55, 59, 85, 67, 45, 65, 61, 70, 71, 75, 80, 62, 48, 89, 79, 67, 56, 69, 68, 71, 53, 107, 61, 61, 64, 54, 63, 65, 62, 66, 64, 54, 77, 70, 57, 81, 72, 64, 58, 85, 86, 68, 85, 48, 44, 66, 97, 70, 59, 68, 60, 59, 95, 48, 76, 73, 61, 67, 112, 66, 51, 76, 61, 56, 70, 77, 55, 68, 62, 66, 71, 82, 58, 64, 59, 54, 66, 59, 63, 53, 72, 63, 61, 56, 76, 61, 63, 61, 57, 47, 112, 76, 86, 82, 57, 87, 100, 78, 86, 75, 66, 75, 56, 57, 45, 55, 54, 48, 58, 57, 74, 55, 93, 78, 58, 51, 92, 37, 52, 76, 46, 52, 63, 66, 61, 82, 70, 57, 73, 75, 81, 64, 44, 59, 70, 51, 62, 58, 57, 76, 63, 43, 60, 63, 77, 58, 53, 75, 76, 69, 140, 57, 68, 58, 56, 51, 70, 68, 60, 61, 57, 49, 66, 61, 107, 67, 76, 76, 58, 60, 64, 88, 68, 48, 67, 77, 55, 90, 65, 57, 57, 44, 73, 61, 60, 53, 73, 59, 58, 61, 52, 59, 70, 61, 69, 74, 84, 64, 51, 57, 48, 53, 67, 55, 93, 68, 58, 97, 55, 52, 49, 67, 71, 59, 83, 61, 59, 62, 61, 69, 96, 60, 68, 77, 66, 61, 62, 53, 81, 41, 46, 84, 66, 83, 66, 65, 68, 77, 51, 64, 66, 73, 68, 50, 64, 80, 77, 87, 90, 66, 54, 61, 44, 71, 73, 44, 98, 74, 68, 49, 74, 71, 83, 62, 78, 73, 86, 78, 77, 45, 51, 89, 79, 62, 88, 49, 54, 58, 57, 55, 63, 103, 63, 89, 78, 70, 46, 55, 70, 85, 75, 57, 60, 55, 56, 104, 56, 59, 74, 52, 69, 57, 68, 55, 74, 84, 57, 48, 54, 54, 65, 66, 78, 75, 47, 53, 113, 66, 74, 60, 57, 66, 65, 59, 79, 54, 130, 81, 61, 75, 87, 49, 50, 69, 83, 53, 56, 72, 69, 74, 51, 58, 60, 72, 73, 56, 57, 70, 60, 65, 108, 78, 73, 71, 73, 80, 86, 39, 51, 77, 63, 53, 68, 43, 48, 54, 80, 62, 63, 69, 51, 86, 44, 68, 65, 49, 49, 65, 57, 80, 68, 88, 62, 55, 67, 48, 68, 74, 79, 75, 68, 55, 67, 64, 112, 65, 67, 40, 62, 55, 60, 46, 62, 75, 78, 97, 82, 75, 101, 59, 83, 59, 52, 58, 60, 63, 40, 65, 46, 53, 84, 61, 62, 72, 71, 65, 67, 66, 62, 78, 64, 119, 90, 67, 60, 96, 69, 67, 74, 69, 39, 53, 68, 70, 59, 33, 56, 64, 61, 69, 62, 62, 72, 52, 57, 75, 55, 77, 56, 58, 38, 62, 87, 58, 41, 42, 45, 62, 54, 89, 67, 115, 63, 59, 59, 64, 49, 82, 64, 57, 62, 67, 84, 51, 88, 64, 78, 49, 53, 148, 87, 70, 49, 52, 99, 76, 102, 66, 89, 71, 67, 61, 71, 81, 72, 48, 95, 67, 86, 63, 86, 47, 66, 64, 73, 41, 57, 80, 61, 54, 73, 57, 83, 66, 68, 65, 47, 47, 59, 83, 53, 77, 58, 68, 66, 57, 60, 55, 64, 84, 64, 71, 54, 64, 66, 67, 82, 60, 63, 72, 53, 61, 61, 53, 73, 57, 52, 59, 61, 75, 48, 59, 100, 48, 64, 62, 75, 68, 58, 66, 63, 66, 56, 76, 80, 68, 92, 57, 78, 89, 89, 71, 58, 84, 65, 77, 72, 72, 86, 44, 65, 54, 62, 79, 64, 64, 72, 75, 59, 54, 51, 45, 60, 66, 54, 46, 59, 76, 77, 67, 62, 61, 67, 30, 124, 70, 68, 54, 58, 56, 45, 63, 59, 65, 72, 70, 50, 58, 69, 68, 137, 64, 69, 57, 81, 60, 98, 70, 86, 67, 90, 51, 51, 62, 68, 62, 57, 71, 65, 71, 125, 51, 67, 56, 54, 59, 93, 62, 43, 83, 39, 63, 68, 109, 65, 58, 77, 92, 69, 73, 77, 61, 66, 84, 64, 61, 56, 66, 55, 58, 57, 59, 54, 63, 60, 78, 77, 67, 58, 54, 94, 83, 63, 53, 67, 61, 72, 71, 76, 56, 59, 80, 62, 69, 70, 76, 117, 62, 61, 69, 63, 100, 37, 100, 68, 57, 80, 82, 54, 50, 41, 65, 60, 64, 54, 54, 48, 64, 53, 84, 63, 53, 51, 72, 84, 57, 70, 62, 61, 73, 75, 51, 81, 74, 56, 51, 61, 46, 66, 77, 57, 50, 46, 50, 60, 64, 50, 58, 63, 62, 117, 45, 84, 43, 115, 62, 71, 66, 84, 59, 74, 40, 52, 64, 67, 58, 64, 72, 63, 46, 69, 55, 56, 76, 58, 62, 97, 69, 93, 62, 93, 70, 81, 78, 62, 63, 49, 73, 63, 58, 54, 53, 50, 59, 59, 56, 90, 39, 67, 74, 50, 66, 64, 63, 70, 57, 64, 57, 59, 87, 63, 58, 58, 80, 56, 73, 48, 57, 59, 91, 64, 61, 66, 76, 55, 83, 51, 119, 62, 68, 79, 59, 77, 54, 79, 62, 64, 81, 63, 74, 44, 116, 57, 54, 66, 68, 88, 56, 63, 66, 58, 67, 35, 62, 84, 68, 72, 70, 60, 42, 73, 64, 62, 67, 58, 63, 90, 101, 48, 56, 71, 34, 57, 66, 50, 65, 60, 64, 64, 153, 108, 58, 62, 58, 52, 61, 44, 61, 64, 71, 52, 62, 68, 83, 43, 52, 36, 59, 71, 58, 70, 61, 74, 69, 56, 51, 87, 82, 88, 54, 73, 91, 52, 55, 68, 38, 74, 50, 69, 49, 59, 50, 67, 73, 67, 51, 52, 79, 58, 73, 97, 71, 66, 56, 92, 77, 61, 87, 71, 83, 74, 52, 73, 65, 66, 60, 56, 81, 40, 75, 68, 64, 66, 63, 69, 75, 53, 73, 70, 83, 47, 103, 60, 58, 66, 64, 61, 57, 98, 49, 68, 54, 65, 55, 70, 62, 68, 59, 63, 47, 69, 48, 62, 55, 72, 83, 63, 61, 79, 66, 78, 91, 48, 67, 56, 56, 35, 70, 41, 54, 50, 52, 77, 74, 60, 51, 62, 76, 83, 69, 72, 97, 69, 61, 59, 78, 47, 63, 55, 55, 60, 67, 58, 61, 66, 49, 65, 71, 57, 60, 74, 42, 57, 68, 65, 75, 49, 44, 47, 63, 66, 66, 63, 62, 86, 58, 44, 67, 72, 75, 36, 51, 55, 72, 79, 76, 72, 76, 60, 65, 64, 66, 66, 50, 84, 49, 74, 60, 60, 47, 72, 70, 73, 96, 73, 53, 62, 68, 40, 98, 60, 73, 56, 69, 54, 52, 49, 95, 70, 67, 61, 65, 71, 59, 109, 78, 93, 43, 50, 61, 49, 53, 68, 82, 65, 57, 54, 87, 77, 85, 78, 54, 67, 74, 67, 70, 89, 65, 93, 64, 54, 53, 76, 83, 48, 89, 48, 60, 54, 62, 65, 68, 87, 86, 50, 69, 61, 81, 70, 102, 85, 62, 54, 56, 51, 53, 73, 71, 88, 44, 60, 54, 79, 67, 79, 63, 59, 72, 53, 88, 85, 76, 70, 75, 70, 62, 41, 69, 76, 54, 56, 90, 53, 49, 73, 72, 90, 79, 56, 71, 78, 58, 79, 64, 78, 35, 57, 68, 63, 60, 80, 50, 41, 88, 65, 101, 52, 64, 66, 51, 53, 73, 51, 103, 49, 68, 48, 74, 88, 51, 44, 81, 76, 80, 59, 53, 54, 60, 70, 55, 87, 112, 69, 50, 62, 69, 85, 97, 71, 56, 73, 68, 50, 35, 63, 56, 51, 79, 63, 72, 63, 38, 46, 59, 69, 50, 77, 68, 41, 59, 88, 47, 100, 57, 55, 80, 52, 72, 73, 73, 55, 68, 56, 51, 74, 68, 51, 77, 65, 78, 71, 95, 101, 52, 80, 56, 62, 73, 78, 50, 74, 90, 53, 54, 93, 65, 87, 33, 69, 61, 68, 73, 56, 55, 80, 69, 91, 70, 84, 58, 87, 59, 83, 52, 89, 85, 83, 46, 69, 78, 62, 71, 58, 46, 70, 52, 54, 48, 66, 74, 50, 59, 49, 56, 76, 76, 78, 68, 65, 88, 74, 65, 68, 70, 65, 40, 68, 71, 86, 54, 58, 71, 46, 62, 63, 101, 79, 63, 55, 67, 57, 48, 60, 65, 79, 50, 56, 71, 62, 50, 52, 76, 66, 70, 99, 80, 59, 83, 50, 53, 59, 72, 55, 84, 72, 63, 65, 52, 52, 50, 59, 63, 65, 139, 55, 62, 73, 63, 58, 69, 71, 64, 86, 76, 82, 83, 75, 60, 69, 74, 80, 57, 88, 64, 55, 83, 57, 85, 100, 73, 59, 60, 90, 74, 75, 86, 57, 49, 89, 47, 73, 87, 61, 67, 68, 69, 58, 74, 54, 60, 53, 85, 60, 74, 60, 46, 84, 45, 54, 87, 66, 60, 41, 84, 54, 56, 73, 67, 63, 63, 61, 93, 50, 70, 80, 78, 45, 70, 49, 68, 51, 83, 52, 79, 59, 70, 91, 59, 53, 57, 58, 116, 37, 58, 65, 51, 47, 76, 63, 68, 67, 66, 47, 85, 66, 62, 67, 42, 57, 67, 62, 68, 93, 68, 58, 98, 77, 62, 66, 56, 48, 68, 70, 47, 71, 101, 76, 77, 54, 44, 56, 59, 48, 82, 60, 57, 59, 61, 43, 47, 55, 66, 63, 62, 46, 61, 57, 56, 99, 66, 75, 71, 75, 89, 66, 46, 51, 51, 54, 62, 66, 68, 78, 111, 56, 54, 59, 56, 49, 96, 45, 75, 78, 65, 84, 62, 53, 73, 55, 67, 55, 80, 71, 73, 78, 58, 89, 63, 73, 43, 66, 67, 62, 76, 65, 72, 49, 62, 73, 65, 87, 52, 73, 62, 47, 149, 89, 79, 66, 70, 62, 53, 68, 56, 66, 48, 54, 59, 76, 62, 66, 66, 98, 62, 74, 71, 78, 50, 44, 64, 48, 73, 79, 63, 52, 72, 54, 55, 66, 64, 127, 78, 74, 46, 64, 73, 57, 45, 59, 49, 91, 70, 57, 67, 48, 91, 55, 56, 54, 73, 70, 75, 60, 64, 42, 74, 59, 67, 76, 61, 68, 72, 58, 48, 87, 49, 54, 59, 58, 75, 73, 70, 77, 58, 63, 54, 73, 52, 73, 58, 63, 90, 50, 50, 76, 60, 69, 61, 52, 57, 53, 57, 66, 61, 68, 79, 96, 60, 47, 74, 50, 66, 50, 68, 87, 68, 68, 67, 63, 77, 60, 52, 56, 86, 42, 72, 98, 77, 87, 55, 55, 62, 116, 45, 60, 86, 71, 53, 51, 54, 76, 66, 63, 84, 87, 53, 60, 62, 72, 69, 80, 76, 91, 48, 76, 55, 55, 73, 45, 99, 63, 63, 72, 56, 74, 68, 64, 94, 100, 108, 67, 46, 62, 48, 50, 76, 51, 54, 60, 63, 55, 73, 82, 59, 60, 54, 82, 72, 57, 65, 86, 72, 66, 80, 84, 79, 68, 61, 50, 51, 64, 53, 71, 61, 83, 56, 63, 78, 42, 54, 94, 71, 58, 51, 77, 62, 82, 72, 61, 71, 60, 85, 52, 68, 84, 52, 59, 74, 53, 71, 50, 67, 57, 61, 86, 51, 69, 53, 57, 58, 51, 66, 63, 91, 55, 53, 88, 77, 66, 100, 69, 66, 65, 50, 64, 68, 45, 61, 79, 51, 64, 85, 88, 52, 96, 61, 49, 71, 51, 57, 50, 88, 51, 65, 74, 55, 81, 72, 77, 85, 78, 50, 72, 93, 69, 69, 57, 62, 64, 41, 93, 61, 73, 55, 80, 55, 91, 52, 67, 57, 82, 58, 86, 86, 50, 60, 69, 89, 62, 80, 68, 83, 73, 84, 69, 75, 79, 65, 68, 71, 136, 66, 60, 45, 59, 78, 52, 48, 61, 60, 86, 84, 107, 40, 99, 68, 90, 73, 61, 78, 75, 80, 68, 73, 92, 98, 38, 56, 66, 53, 69, 74, 51, 62, 77, 51, 83, 100, 81, 66, 63, 72, 68, 55, 88, 59, 51, 59, 63, 85, 103, 104, 68, 84, 48, 63, 81, 53, 61, 66, 75, 68, 95, 69, 71, 65, 71, 61, 115, 71, 72, 92, 71, 70, 111, 68, 89, 65, 62, 65, 67, 49, 81, 60, 46, 57, 53, 57, 79, 46, 72, 84, 58, 110, 71, 76, 64, 59, 48, 58, 74, 57, 68, 86, 62, 59, 69, 64, 52, 66, 53, 58, 63, 44, 67, 64, 81, 47, 52, 57, 71, 46, 80, 60, 71, 44, 54, 59, 77, 48, 73, 61, 44, 76, 30, 60, 66, 75, 71, 86, 57, 75, 52, 77, 68, 55, 74, 66, 54, 56, 57, 88, 45, 65, 116, 66, 79, 48, 76, 86, 77, 51, 64, 65, 78, 80, 56, 64, 80, 79, 86, 94, 68, 65, 76, 46, 81, 100, 68, 63, 59, 49, 64, 63, 65, 52, 71, 59, 53, 48, 49, 54, 57, 65, 67, 93, 57, 52, 89, 43, 79, 43, 71, 81, 68, 65, 59, 41, 72, 54, 73, 65, 92, 47, 69, 60, 66, 95, 113, 56, 52, 54, 55, 57, 60, 65, 51, 78, 60, 56, 49, 62, 70, 60, 71, 52, 72, 42, 49, 53, 45, 56, 63, 56, 60, 57, 66, 63, 48, 61, 73, 80, 70, 56, 59, 48, 75, 64, 73, 53, 52, 98, 58, 50, 53, 63, 51, 67, 86, 71, 79, 81, 82, 64, 61, 66, 73, 72, 48, 48, 70, 71, 63, 44, 63, 55, 62, 61, 64, 31, 66, 62, 65, 97, 66, 79, 77, 87, 74, 53, 50, 60, 61, 71, 77, 67, 75, 47, 64, 69, 55, 71, 67, 78, 44, 78, 58, 52, 58, 42, 64, 99, 55, 35, 51, 94, 55, 75, 118, 77, 74, 53, 113, 84, 79, 55, 71, 90, 57, 79, 53, 68, 81, 66, 42, 52, 65, 62, 57, 39, 54, 52, 65, 88, 84, 80, 103, 66, 61, 75, 54, 41, 62, 58, 59, 60, 80, 102, 62, 82, 63, 52, 56, 49, 67, 52, 90, 61, 75, 58, 114, 60, 51, 96, 60, 77, 62, 80, 66, 61, 80, 65, 68, 77, 64, 78, 54, 54, 55, 46, 37, 52, 82, 83, 50, 71, 66, 67, 70, 73, 70, 79, 58, 70, 65, 50, 82, 89, 63, 66, 44, 85, 90, 79, 71, 80, 73, 103, 62, 64, 72, 48, 65, 75, 64, 66, 61, 88, 69, 56, 71, 53, 63, 64, 79, 85, 65, 54, 112, 50, 51, 67, 66, 60, 50, 79, 47, 64, 40, 92, 69, 61, 63, 73, 49, 52, 72, 61, 65, 45, 62, 58, 46, 59, 63, 58, 36, 67, 95, 84, 67, 68, 70, 65, 64, 76, 66, 65, 59, 70, 64, 76, 46, 74, 89, 76, 56, 61, 62, 67, 58, 65, 51, 82, 52, 78, 60, 49, 69, 82, 61, 66, 60, 54, 54, 84, 73, 59, 79, 84, 54, 58, 50, 74, 40, 66, 78, 90, 62, 74, 92, 53, 71, 71, 70, 47, 73, 114, 61, 68, 60, 64, 69, 58, 69, 59, 67, 67, 82, 67, 69, 76, 57, 62, 85, 67, 69, 70, 38, 55, 83, 69, 66, 45, 78, 70, 61, 75, 111, 47, 79, 54, 62, 54, 84, 60, 59, 49, 73, 40, 72, 75, 58, 61, 93, 51, 71, 73, 107, 61, 61, 78, 46, 71, 62, 57, 60, 110, 56, 67, 60, 79, 53, 70, 89, 62, 63, 59, 70, 63, 73, 69, 47, 72, 55, 49, 55, 67, 64, 68, 65, 70, 80, 65, 64, 63, 71, 74, 45, 56, 54, 54, 56, 51, 72, 53, 67, 59, 67, 54, 81, 59, 40, 67, 86, 56, 86, 58, 74, 74, 55, 61, 48, 65, 76, 55, 58, 49, 77, 54, 69, 74, 79, 66, 51, 60, 72, 50, 85, 49, 54, 46, 64, 53, 92, 78, 70, 47, 108, 68, 70, 56, 58, 81, 89, 51, 52, 44, 70, 81, 66, 55, 63, 80, 67, 92, 73, 57, 53, 156, 91, 73, 57, 63, 73, 63, 37, 59, 56, 56, 77, 59, 60, 72, 58, 74, 68, 53, 64, 74, 80, 52, 62, 76, 68, 106, 84, 47, 42, 98, 63, 81, 65, 68, 79, 62, 45, 65, 58, 50, 76, 71, 70, 51, 64, 59, 53, 62, 48, 58, 56, 44, 61, 53, 63, 67, 63, 68, 88, 77, 55, 79, 72, 51, 91, 68, 64, 48, 74, 73, 51, 74, 52, 76, 56, 65, 59, 64, 53, 45, 58, 70, 59, 52, 69, 40, 79, 63, 102, 69, 77, 84, 75, 75, 61, 67, 72, 74, 69, 69, 63, 63, 49, 67, 70, 60, 74, 71, 67, 74, 74, 83, 45, 63, 69, 68, 63, 53, 43, 59, 56, 58, 79, 74, 50, 108, 64, 77, 74, 68, 52, 60, 64, 78, 60, 50, 69, 64, 59, 61, 87, 84, 69, 58, 67, 55, 71, 58, 37, 61, 69, 75, 79, 74, 52, 32, 53, 89, 64, 48, 51, 61, 69, 62, 69, 43, 69, 93, 62, 74, 61, 61, 63, 61, 49, 67, 43, 59, 92, 68, 54, 73, 63, 92, 56, 68, 54, 78, 57, 66, 65, 81, 65, 67, 38, 116, 64, 76, 47, 65, 70, 66, 62, 94, 75, 56, 57, 60, 73, 55, 93, 71, 49, 51, 62, 65, 55, 66, 84, 56, 65, 78, 74, 57, 69, 53, 52, 78, 66, 128, 59, 59, 68, 70, 64, 64, 60, 51, 90, 76, 111, 91, 73, 63, 68, 49, 66, 66, 69, 55, 68, 46, 73, 41, 68, 58, 81, 110, 77, 58, 71, 66, 72, 67, 55, 67, 71, 59, 87, 59, 55, 72, 65, 55, 57, 59, 63, 47, 66, 55, 65, 71, 55, 105, 105, 78, 59, 50, 61, 69, 70, 59, 69, 57, 83, 57, 86, 79, 38, 65, 56, 66, 68, 58, 44, 70, 46, 69, 87, 54, 73, 68, 79, 47, 65, 55, 66, 62, 62, 56, 49, 84, 45, 59, 62, 67, 76, 88, 63, 74, 100, 67, 39, 61, 91, 70, 76, 51, 61, 65, 47, 70, 75, 75, 91, 81, 62, 51, 73, 42, 77, 63, 59, 52, 74, 55, 61, 57, 105, 84, 116, 61, 90, 87, 76, 62, 54, 57, 69, 64, 55, 74, 49, 57, 85, 61, 87, 69, 44, 67, 90, 60, 53, 53, 67, 43, 73, 99, 47, 92, 62, 74, 91, 73, 82, 107, 94, 75, 37, 59, 74, 61, 53, 82, 53, 48, 58, 57, 68, 39, 92, 52, 50, 67, 72, 74, 48, 58, 52, 54, 65, 59, 92, 61, 102, 49, 73, 85, 58, 53, 43, 56, 71, 67, 58, 104, 45, 55, 80, 55, 109, 83, 48, 57, 56, 70, 58, 57, 74, 57, 67, 62, 108, 44, 47, 53, 62, 38, 70, 65, 58, 65, 60, 60, 113, 76, 62, 57, 56, 66, 81, 54, 54, 62, 48, 68, 52, 63, 65, 69, 46, 63, 50, 61, 36, 78, 49, 80, 69, 75, 67, 63, 51, 90, 65, 64, 60, 57, 42, 66, 117, 60, 57, 118, 66, 72, 47, 63, 74, 66, 66, 66, 46, 45, 60, 58, 59, 77, 79, 75, 116, 60, 67, 56, 71, 57, 55, 99, 49, 54, 55, 62, 65, 58, 79, 39, 74, 82, 67, 83, 59, 78, 69, 50, 51, 52, 51, 46, 90, 36, 43, 80, 87, 79, 101, 78, 42, 47, 52, 35, 130, 69, 61, 96, 82, 73, 37, 62, 71, 37, 71, 55, 48, 35, 58, 47, 59, 71, 49, 51, 50, 83, 55, 61, 60, 56, 64, 105, 80, 73, 58, 64, 45, 62, 36, 63, 64, 111, 60, 97, 75, 54, 66, 68, 52, 66, 68, 55, 98, 85, 96, 63, 53, 89, 55, 57, 56, 127, 74, 59, 115, 61, 71, 69, 51, 42, 79, 41, 79, 86, 73, 104, 74, 53, 31, 70, 91, 50, 62, 67, 95, 74, 39, 72, 66, 57, 43, 49, 74, 79, 47, 61, 80, 63, 42, 63, 67, 43, 108, 59, 62, 101, 59, 102, 68, 84, 89, 60, 75, 66, 49, 71, 71, 57, 52, 69, 65, 49, 57, 101, 63, 74, 83, 52, 46, 86, 67, 66, 56, 81, 75, 97, 90, 53, 58, 68, 55, 51, 52, 49, 68, 51, 74, 57, 93, 66, 66, 67, 66, 30, 58, 92, 50, 81, 62, 75, 55, 62, 65, 63, 60, 60, 67, 61, 63, 78, 75, 99, 73, 74, 48, 48, 74, 60, 84, 84, 61, 73, 34, 43, 67, 57, 54, 74, 82, 76, 78, 71, 63, 78, 70, 38, 69, 88, 55, 97, 81, 38, 58, 71, 51, 89, 68, 55, 105, 64, 51, 65, 54, 66, 75, 52, 57, 59, 87, 64, 53, 59, 83, 71, 64, 42, 61, 80, 60, 59, 73, 73, 59, 75, 65, 49, 59, 91, 47, 73, 61, 55, 88, 67, 62, 75, 106, 90, 77, 54, 73, 60, 99, 61, 65, 48, 59, 88, 81, 66, 41, 58, 78, 74, 59, 65, 65, 44, 86, 67, 76, 59, 71, 78, 55, 61, 75, 53, 51, 36, 76, 64, 36, 92, 61, 82, 71, 104, 73, 60, 90, 69, 84, 58, 52, 110, 87, 52, 60, 60, 80, 96, 69, 61, 62, 79, 58, 57, 60, 114, 84, 63, 37, 60, 67, 77, 55, 63, 69, 89, 69, 54, 82, 78, 49, 72, 67, 66, 64, 79, 61, 46, 61, 54, 54, 56, 48, 83, 61, 97, 54, 87, 73, 90, 69, 83, 56, 84, 90, 56, 50, 81, 79, 48, 50, 52, 146, 55, 69, 72, 93, 71, 60, 38, 62, 126, 76, 80, 83, 60, 71, 76, 51, 53, 68, 84, 48, 39, 51, 79, 84, 51, 88, 45, 70, 59, 71, 55, 67, 65, 74, 51, 55, 77, 68, 50, 71, 74, 67, 85, 114, 57, 58, 61, 50, 66, 78, 57, 102, 53, 71, 54, 78, 60, 51, 63, 49, 53, 48, 55, 40, 82, 50, 60, 61, 63, 81, 80, 69, 78, 68, 85, 84, 84, 93, 78, 41, 57, 52, 52, 46, 60, 67, 74, 47, 95, 68, 38, 49, 39, 65, 54, 87, 64, 65, 64, 51, 65, 83, 52, 55, 58, 69, 79, 63, 49, 47, 71, 80, 76, 51, 43, 56, 63, 73, 55, 75, 55, 78, 58, 60, 61, 71, 55, 65, 93, 42, 61, 42, 66, 97, 86, 70, 63, 60, 84, 58, 69, 55, 45, 102, 71, 50, 41, 62, 100, 77, 56, 67, 69, 92, 68, 45, 67, 77, 68, 59, 86, 61, 42, 62, 54, 125, 77, 104, 136, 67, 42, 53, 58, 78, 61, 89, 48, 56, 58, 82, 88, 58, 58, 66, 64, 115, 52, 41, 72, 80, 49, 58, 77, 49, 61, 65, 51, 45, 84, 45, 82, 63, 71, 99, 81, 52, 76, 69, 100, 56, 55, 82, 61, 50, 79, 51, 75, 51, 30, 82, 62, 73, 60, 58, 86, 47, 55, 37, 76, 33, 41, 66, 67, 58, 65, 71, 120, 76, 82, 62, 54, 64, 31, 59, 63, 67, 53, 34, 61, 59, 68, 67, 89, 59, 66, 51, 141, 55, 52, 40, 85, 56, 45, 41, 90, 56, 110, 56, 61, 71, 63, 66, 52, 56, 60, 61, 56, 90, 64, 71, 68, 58, 35, 75, 56, 58, 48, 54, 60, 84, 55, 67, 55, 36, 57, 63, 84, 62, 72, 41, 42, 61, 49, 63, 50, 47, 47, 80, 31, 46, 54, 52, 55, 57, 77, 88, 48, 98, 53, 68, 72, 100, 93, 67, 65, 48, 128, 56, 47, 69, 71, 96, 56, 80, 58, 55, 41, 44, 67, 58, 91, 60, 64, 44, 97, 45, 71, 60, 61, 89, 95, 52, 62, 62, 101, 68, 94, 62, 90, 44, 69, 56, 48, 56, 46, 68, 69, 60, 110, 57, 71, 49, 76, 49, 45, 76, 60, 39, 65, 51, 61, 53, 87, 64, 39, 53, 58, 69, 47, 91, 79, 66, 57, 66, 103, 40, 75, 41, 102, 52, 68, 46, 64, 62, 49, 56, 25, 84, 48, 60, 93, 65, 97, 87, 53, 80, 115, 48, 71, 69, 72, 110, 47, 72, 44, 53, 98, 62, 53, 39, 54, 66, 64, 71, 68, 91, 52, 54, 93, 68, 73, 80, 55, 72, 65, 66, 44, 76, 31, 88, 53, 61, 84, 60, 69, 77, 47, 58, 49, 99, 75, 72, 67, 61, 43, 94, 53, 47, 61, 89, 71, 46, 65, 61, 72, 57, 66, 71, 82, 75, 53, 108, 65, 61, 63, 66, 62, 76, 74, 54, 106, 84, 69, 102, 51, 60, 53, 46, 59, 42, 69, 45, 71, 63, 72, 62, 58, 93, 54, 75, 54, 67, 34, 84, 54, 80, 69, 87, 88, 61, 66, 86, 74, 73, 62, 61, 58, 84, 59, 73, 86, 59, 77, 77, 71, 58, 96, 67, 62, 70, 60, 51, 84, 63, 99, 48, 49, 87, 76, 66, 53, 91, 55, 80, 41, 73, 70, 55, 73, 65, 87, 80, 50, 51, 73, 62, 60, 48, 65, 62, 51, 66, 67, 60, 51, 63, 68, 48, 71, 84, 86, 88, 57, 75, 74, 53, 86, 70, 57, 79, 72, 66, 72, 66, 46, 69, 83, 73, 92, 68, 67, 83, 71, 60, 62, 44, 82, 102, 61, 58, 81, 41, 80, 55, 53, 62, 78, 62, 68, 85, 55, 59, 71, 74, 59, 53, 54, 51, 77, 44, 135, 65, 47, 46, 57, 99, 66, 56, 52, 99, 72, 70, 82, 65, 74, 53, 90, 70, 62, 55, 66, 54, 91, 82, 85, 71, 71, 72, 76, 47, 62, 82, 44, 81, 69, 62, 57, 57, 69, 71, 80, 48, 58, 64, 57, 60, 76, 57, 61, 66, 36, 70, 64, 60, 57, 69, 61, 46, 113, 55, 87, 58, 58, 84, 71, 55, 50, 52, 55, 70, 60, 59, 75, 60, 76, 58, 43, 84, 56, 71, 50, 80, 66, 66, 102, 61, 75, 55, 35, 79, 71, 66, 49, 80, 35, 68, 78, 40, 60, 67, 81, 68, 50, 64, 63, 60, 56, 74, 68, 65, 113, 43, 61, 75, 62, 82, 59, 86, 76, 62, 34, 90, 54, 47, 59, 78, 63, 70, 85, 81, 47, 65, 75, 73, 53, 54, 40, 74, 73, 56, 70, 82, 77, 84, 65, 50, 57, 64, 82, 84, 65, 82, 79, 87, 63, 57, 50, 60, 60, 77, 43, 92, 51, 49, 66, 63, 78, 80, 57, 64, 44, 72, 57, 58, 63, 71, 67, 66, 60, 67, 63, 51, 84, 54, 47, 57, 56, 47, 58, 56, 99, 68, 73, 72, 56, 87, 66, 42, 66, 52, 62, 109, 76, 73, 86, 63, 74, 74, 70, 52, 109, 49, 56, 40, 81, 80, 77, 55, 76, 58, 70, 59, 75, 81, 56, 125, 119, 77, 91, 63, 40, 73, 65, 79, 58, 64, 53, 58, 58, 46, 69, 60, 58, 98, 56, 76, 58, 60, 62, 76, 56, 75, 58, 68, 60, 45, 57, 88, 46, 53, 55, 60, 64, 68, 70, 50, 70, 56, 59, 73, 54, 75, 69, 63, 36, 57, 63, 78, 76, 49, 77, 58, 58, 62, 61, 64, 69, 53, 52, 62, 77, 83, 72, 58, 84, 78, 60, 65, 88, 79, 68, 67, 92, 69, 55, 78, 90, 59, 50, 65, 51, 63, 69, 102, 80, 82, 90, 47, 110, 73, 72, 80, 81, 65, 143, 63, 85, 62, 61, 79, 87, 50, 70, 117, 81, 57, 65, 78, 54, 65, 55, 79, 81, 66, 57, 40, 75, 85, 43, 55, 52, 58, 70, 73, 68, 110, 49, 59, 73, 80, 65, 56, 50, 99, 51, 62, 58, 54, 58, 58, 86, 81, 75, 48, 55, 73, 86, 78, 61, 57, 64, 43, 58, 44, 109, 90, 94, 66, 59, 68, 69, 58, 63, 49, 42, 44, 69, 48, 70, 60, 46, 64, 84, 71, 51, 64, 41, 75, 65, 68, 80, 54, 51, 56, 72, 84, 63, 68, 48, 75, 44, 75, 90, 67, 65, 54, 67, 41, 70, 58, 65, 84, 61, 64, 63, 70, 92, 77, 71, 39, 47, 49, 80, 52, 63, 98, 49, 88, 64, 45, 89, 67, 70, 70, 52, 59, 44, 72, 79, 55, 66, 112, 70, 47, 53, 61, 60, 74, 120, 61, 71, 67, 54, 65, 58, 79, 66, 57, 62, 46, 88, 47, 49, 64, 56, 52, 67, 56, 54, 43, 67, 61, 60, 56, 44, 76, 46, 95, 55, 83, 41, 61, 68, 65, 60, 85, 56, 75, 66, 57, 67, 56, 56, 54, 69, 63, 42, 35, 52, 35, 64, 68, 65, 67, 63, 115, 71, 41, 75, 55, 75, 47, 81, 87, 57, 75, 89, 85, 71, 42, 74, 42, 87, 53, 56, 96, 78, 65, 61, 78, 48, 78, 42, 52, 71, 52, 81, 53, 89, 85, 88, 59, 69, 59, 63, 69, 61, 74, 79, 84, 73, 56, 70, 71, 55, 58, 66, 53, 65, 51, 94, 50, 65, 53, 62, 73, 46, 94, 77, 71, 52, 73, 85, 56, 71, 70, 65, 60, 70, 53, 64, 47, 50, 74, 59, 50, 55, 65, 73, 40, 50, 58, 53, 61, 68, 58, 78, 64, 62, 93, 87, 54, 68, 82, 56, 71, 72, 62, 60, 72, 57, 66, 56, 52, 69, 68, 75, 67, 69, 56, 62, 81, 77, 30, 59, 67, 52, 81, 38, 56, 58, 66, 49, 59, 60, 56, 35, 56, 53, 74, 60, 102, 82, 71, 62, 82, 72, 84, 52, 58, 57, 98, 97, 57, 56, 81, 75, 77, 52, 72, 60, 69, 66, 85, 80, 58, 73, 48, 67, 51, 84, 110, 62, 62, 47, 49, 57, 54, 71, 83, 45, 101, 63, 36, 44, 33, 67, 84, 56, 57, 44, 71, 68, 80, 48, 50, 42, 47, 87, 65, 111, 59, 62, 65, 90, 86, 52, 39, 60, 34, 68, 73, 66, 62, 54, 92, 108, 49, 86, 59, 62, 60, 45, 79, 73, 60, 59, 87, 63, 82, 76, 64, 60, 70, 39, 66, 73, 76, 71, 88, 65, 55, 46, 80, 55, 58, 58, 64, 55, 92, 46, 107, 65, 78, 56, 56, 33, 72, 56, 56, 60, 55, 49, 72, 84, 82, 67, 65, 82, 90, 71, 50, 80, 35, 54, 84, 76, 39, 44, 57, 56, 83, 51, 73, 64, 83, 63, 63, 92, 45, 39, 71, 82, 67, 71, 62, 58, 73, 43, 67, 53, 56, 55, 53, 68, 78, 82, 60, 83, 67, 63, 54, 82, 70, 53, 67, 39, 90, 55, 61, 51, 64, 46, 87, 56, 68, 94, 62, 60, 67, 71, 62, 51, 69, 82, 53, 79, 77, 55, 71, 83, 52, 52, 89, 108, 49, 99, 78, 39, 60, 89, 77, 63, 53, 61, 49, 47, 58, 59, 46, 100, 70, 65, 82, 74, 59, 73, 86, 48, 50, 70, 51, 64, 62, 61, 65, 59, 50, 68, 62, 44, 55, 48, 91, 61, 74, 76, 59, 67, 59, 61, 60, 97, 60, 61, 65, 63, 59, 48, 70, 53, 89, 81, 76, 74, 59, 70, 42, 63, 54, 56, 62, 53, 40, 62, 78, 62, 85, 79, 88, 61, 76, 81, 77, 67, 59, 70, 74, 54, 64, 42, 53, 65, 56, 81, 48, 64, 77, 92, 62, 86, 70, 71, 64, 70, 68, 80, 72, 80, 62, 68, 68, 70, 72, 74, 80, 69, 68, 67, 62, 69, 55, 105, 86, 75, 59, 72, 64, 56, 47, 62, 59, 54, 83, 61, 71, 66, 68, 58, 52, 66, 60, 62, 42, 70, 57, 51, 53, 83, 51, 57, 59, 65, 63, 71, 93, 57, 63, 70, 60, 62, 67, 53, 60, 76, 66, 67, 59, 81, 76, 66, 70, 74, 69, 66, 74, 75, 60, 50, 74, 49, 62, 76, 64, 59, 47, 53, 58, 50, 66, 54, 54, 58, 66, 112, 53, 52, 57, 72, 56, 58, 80, 52, 53, 87, 57, 51, 55, 59, 47, 62, 68, 51, 73, 65, 72, 59, 90, 58, 81, 50, 68, 60, 57, 65, 50, 75, 62, 55, 51, 59, 55, 70, 79, 76, 60, 64, 60, 77, 81, 65, 70, 60, 68, 83, 86, 50, 107, 60, 74, 63, 63, 49, 52, 48, 94, 71, 74, 75, 67, 61, 55, 55, 54, 64, 56, 69, 67, 42, 64, 59, 58, 65, 90, 70, 80, 81, 73, 83, 50, 88, 46, 58, 73, 59, 69, 58, 70, 56, 63, 45, 66, 53, 49, 109, 64, 63, 43, 66, 44, 80, 76, 58, 56, 68, 73, 65, 78, 53, 75, 59, 68, 67, 63, 55, 70, 91, 68, 62, 50, 64, 60, 53, 76, 61, 83, 69, 66, 90, 79, 71, 93, 80, 69, 57, 69, 76, 69, 58, 60, 50, 51, 89, 54, 54, 66, 41, 50, 67, 68, 63, 75, 82, 63, 44, 106, 146, 54, 60, 76, 59, 66, 57, 73, 53, 75, 46, 76, 63, 50, 70, 62, 63, 63, 57, 69, 96, 64, 61, 73, 58, 56, 69, 57, 65, 50, 57, 67, 96, 47, 52, 52, 80, 67, 75, 63, 48, 66, 66, 82, 95, 64, 63, 58, 47, 55, 61, 85, 55, 70, 63, 59, 93, 81, 75, 63, 63, 62, 73, 72, 71, 84, 53, 57, 81, 66, 57, 54, 63, 68, 74, 81, 106, 58, 90, 64, 113, 56, 55, 54, 63, 60, 72, 65, 55, 62, 65, 86, 52, 55, 61, 50, 75, 74, 64, 62, 86, 54, 50, 67, 44, 93, 75, 63, 60, 63, 72, 59, 70, 72, 63, 63, 55, 74, 41, 61, 69, 71, 88, 53, 55, 70, 53, 86, 53, 45, 76, 73, 72, 63, 57, 57, 50, 72, 71, 51, 55, 52, 66, 64, 65, 59, 67, 64, 52, 46, 54, 67, 50, 41, 85, 59, 70, 71, 72, 52, 62, 125, 59, 63, 54, 54, 60, 49, 53, 65, 79, 67, 49, 62, 62, 66, 46, 56, 75, 93, 65, 84, 77, 67, 63, 71, 57, 75, 62, 43, 61, 50, 38, 56, 68, 61, 63, 59, 62, 80, 70, 53, 82, 71, 74, 64, 66, 61, 99, 62, 69, 43, 73, 68, 48, 61, 47, 60, 60, 64, 67, 66, 58, 48, 76, 77, 68, 74, 72, 65, 77, 90, 72, 64, 66, 66, 76, 57, 78, 66, 65, 76, 58, 59, 88, 67, 54, 59, 76, 65, 69, 55, 64, 140, 67, 73, 45, 73, 83, 73, 51, 65, 58, 62, 75, 59, 67, 89, 78, 86, 54, 72, 59, 55, 56, 63, 64, 53, 87, 43, 56, 54, 64, 67, 74, 117, 77, 41, 44, 54, 57, 66, 74, 77, 98, 60, 44, 66, 68, 71, 59, 61, 75, 72, 65, 60, 81, 81, 75, 53, 77, 56, 77, 66, 57, 60, 77, 75, 73, 65, 48, 96, 60, 54, 118, 66, 71, 68, 99, 73, 56, 75, 64, 86, 57, 71, 45, 59, 75, 54, 43, 91, 48, 67, 53, 85, 47, 56, 72, 62, 61, 63, 63, 61, 66, 93, 57, 74, 61, 67, 59, 94, 66, 53, 58, 71, 75, 67, 50, 43, 67, 77, 51, 74, 49, 82, 67, 61, 64, 57, 64, 46, 62, 87, 64, 60, 59, 65, 70, 60, 86, 68, 64, 78, 58, 88, 92, 59, 66, 54, 65, 93, 61, 74, 51, 86, 60, 85, 93, 55, 52, 87, 56, 86, 61, 92, 59, 72, 62, 49, 57, 77, 66, 60, 64, 79, 54, 43, 97, 64, 52, 101, 48, 81, 70, 40, 67, 61, 83, 52, 49, 95, 55, 59, 49, 58, 65, 62, 53, 66, 60, 73, 47, 95, 72, 78, 74, 39, 51, 60, 70, 64, 63, 71, 54, 41, 61, 72, 52, 76, 77, 58, 60, 88, 93, 76, 62, 60, 47, 70, 72, 60, 58, 81, 82, 96, 46, 56, 53, 62, 61, 69, 66, 80, 58, 50, 64, 64, 60, 57, 47, 60, 100, 57, 56, 75, 43, 54, 50, 105, 82, 54, 52, 61, 71, 64, 68, 57, 79, 81, 74, 76, 95, 94, 74, 62, 78, 72, 101, 61, 66, 77, 96, 65, 77, 41, 58, 57, 115, 67, 52, 61, 49, 57, 50, 81, 101, 54, 67, 59, 53, 56, 86, 54, 68, 57, 50, 75, 59, 56, 61, 76, 57, 67, 102, 62, 100, 55, 80, 88, 57, 65, 80, 67, 53, 97, 68, 52, 50, 75, 66, 92, 66, 56, 66, 59, 56, 65, 60, 114, 77, 70, 58, 55, 53, 62, 75, 78, 103, 50, 74, 82, 61, 66, 60, 58, 60, 73, 69, 60, 78, 60, 46, 73, 55, 45, 86, 71, 63, 61, 73, 59, 60, 76, 92, 54, 75, 48, 42, 53, 70, 62, 52, 58, 81, 51, 64, 64, 63, 78, 87, 66, 57, 53, 49, 52, 50, 62, 59, 72, 79, 72, 59, 61, 64, 81, 64, 74, 47, 61, 81, 62, 71, 58, 52, 48, 71, 61, 74, 69, 56, 68, 61, 62, 70, 68, 61, 67, 109, 70, 63, 69, 65, 76, 74, 68, 51, 90, 74, 63, 63, 55, 60, 63, 64, 61, 83, 56, 50, 60, 47, 79, 68, 46, 55, 68, 89, 61, 81, 52, 65, 36, 70, 82, 51, 63, 46, 91, 57, 86, 60, 75, 66, 56, 71, 74, 89, 66, 63, 61, 54, 63, 71, 61, 72, 67, 76, 61, 70, 51, 52, 72, 46, 61, 62, 73, 129, 60, 66, 78, 65, 68, 73, 79, 80, 70, 57, 56, 61, 70, 64, 70, 45, 54, 58, 90, 93, 71, 64, 63, 52, 63, 57, 83, 41, 66, 91, 72, 53, 67, 51, 68, 76, 79, 69, 76, 64, 70, 80, 62, 57, 63, 55, 83, 69, 77, 59, 53, 58, 62, 70, 55, 79, 59, 60, 59, 52, 59, 78, 67, 46, 76, 62, 72, 52, 70, 71, 58, 61, 65, 50, 87, 120, 60, 66, 49, 55, 65, 71, 66, 68, 49, 57, 61, 70, 98, 56, 55, 62, 58, 76, 53, 57, 83, 76, 58, 93, 79, 64, 74, 59, 57, 84, 74, 85, 52, 75, 58, 60, 67, 61, 104, 51, 50, 41, 64, 67, 58, 82, 59, 70, 71, 69, 55, 73, 48, 82, 46, 69, 75, 58, 66, 68, 66, 66, 72, 49, 74, 57, 44, 73, 51, 53, 60, 55, 74, 60, 63, 80, 73, 84, 61, 56, 52, 64, 57, 85, 98, 61, 72, 69, 59, 49, 62, 85, 61, 61, 63, 54, 61, 74, 93, 78, 72, 64, 79, 62, 50, 44, 79, 58, 78, 81, 62, 138, 65, 51, 66, 64, 50, 111, 149, 52, 84, 52, 75, 100, 71, 53, 73, 56, 44, 69, 48, 66, 66, 75, 69, 76, 73, 57, 58, 63, 57, 73, 55, 45, 54, 47, 45, 74, 75, 109, 56, 66, 76, 67, 74, 67, 72, 61, 59, 64, 68, 78, 59, 55, 60, 60, 63, 52, 81, 67, 56, 56, 79, 54, 53, 58, 74, 55, 72, 65, 64, 72, 53, 99, 74, 58, 55, 59, 82, 63, 70, 63, 61, 49, 69, 65, 71, 72, 80, 48, 64, 67, 82, 89, 57, 63, 41, 66, 82, 70, 67, 52, 77, 57, 65, 61, 67, 42, 46, 54, 59, 69, 76, 56, 74, 74, 64, 70, 60, 61, 72, 61, 54, 61, 59, 74, 108, 68, 62, 71, 71, 83, 81, 54, 80, 53, 59, 53, 59, 75, 65, 66, 57, 55, 74, 51, 68, 84, 72, 68, 70, 64, 85, 99, 59, 65, 46, 51, 88, 59, 64, 67, 68, 61, 62, 77, 63, 87, 70, 75, 83, 59, 56, 77, 94, 53, 64, 61, 56, 59, 74, 52, 81, 65, 72, 62, 50, 61, 64, 79, 59, 56, 65, 50, 67, 64, 50, 66, 56, 56, 53, 66, 62, 107, 71, 67, 65, 63, 61, 66, 53, 84, 63, 103, 106, 64, 67, 43, 67, 65, 54, 44, 64, 66, 53, 55, 57, 55, 67, 65, 66, 62, 63, 67, 57, 48, 72, 62, 121, 97, 63, 58, 47, 57, 48, 63, 56, 51, 66, 63, 70, 78, 77, 57, 111, 92, 63, 73, 79, 85, 62, 48, 56, 64, 74, 66, 73, 69, 69, 44, 63, 53, 58, 94, 58, 66, 51, 63, 57, 63, 68, 77, 74, 75, 71, 80, 52, 60, 44, 60, 76, 40, 57, 53, 69, 56, 107, 48, 47, 34, 56, 55, 94, 78, 64, 60, 63, 61, 57, 82, 79, 84, 64, 65, 62, 62, 79, 49, 66, 58, 63, 63, 72, 50, 62, 65, 51, 58, 67, 79, 62, 67, 60, 75, 69, 50, 62, 75, 59, 58, 80, 61, 70, 55, 65, 62, 58, 71, 65, 60, 79, 56, 58, 54, 76, 85, 63, 64, 73, 65, 62, 64, 109, 62, 67, 77, 49, 63, 77, 105, 61, 55, 49, 58, 71, 65, 60, 51, 66, 68, 44, 42, 86, 36, 51, 43, 73, 63, 68, 77, 68, 56, 57, 71, 61, 63, 62, 57, 62, 65, 57, 53, 68, 61, 90, 85, 58, 105, 123, 56, 75, 67, 63, 51, 68, 62, 64, 44, 63, 56, 68, 59, 75, 51, 65, 76, 70, 67, 67, 64, 69, 66, 62, 48, 65, 56, 76, 58, 83, 73, 71, 60, 49, 52, 89, 61, 78, 59, 62, 77, 64, 72, 50, 67, 53, 54, 76, 59, 56, 71, 63, 76, 78, 50, 57, 59, 72, 61, 63, 48, 52, 44, 85, 69, 56, 44, 56, 66, 62, 58, 60, 66, 50, 66, 84, 46, 71, 70, 56, 51, 89, 66, 82, 60, 55, 70, 71, 67, 81, 55, 64, 81, 66, 59, 71, 64, 70, 61, 97, 55, 55, 78, 69, 66, 52, 63, 69, 62, 63, 54, 62, 66, 74, 94, 81, 80, 70, 57, 61, 40, 64, 54, 81, 96, 73, 63, 57, 61, 54, 68, 69, 66, 63, 40, 51, 56, 68, 43, 77, 73, 62, 95, 46, 52, 54, 69, 71, 62, 64, 67, 60, 66, 100, 64, 52, 73, 52, 67, 49, 69, 59, 63, 59, 70, 79, 94, 46, 59, 69, 67, 65, 61, 69, 90, 65, 61, 64, 57, 57, 74, 76, 58, 74, 76, 64, 59, 74, 71, 55, 53, 65, 50, 70, 53, 59, 54, 58, 63, 49, 63, 71, 52, 68, 48, 66, 68, 46, 104, 54, 64, 78, 46, 88, 64, 61, 56, 59, 62, 49, 53, 55, 55, 62, 53, 71, 65, 44, 57, 76, 101, 76, 49, 67, 87, 67, 87, 64, 56, 52, 63, 81, 68, 62, 87, 69, 62, 136, 73, 63, 68, 63, 53, 68, 73, 60, 58, 57, 136, 63, 68, 70, 55, 60, 66, 78, 54, 64, 59, 71, 96, 59, 58, 63, 61, 94, 50, 68, 55, 64, 56, 55, 53, 62, 69, 68, 72, 59, 59, 50, 57, 62, 64, 59, 76, 70, 69, 96, 65, 56, 64, 66, 63, 75, 57, 47, 78, 78, 66, 75, 83, 78, 64, 54, 49, 78, 57, 63, 74, 69, 69, 58, 89, 118, 85, 103, 86, 61, 59, 58, 64, 69, 64, 82, 52, 58, 63, 65, 57, 65, 57, 60, 93, 68, 62, 53, 58, 107, 82, 50, 77, 74, 59, 53, 60, 84, 68, 85, 84, 67, 64, 42, 62, 68, 67, 59, 61, 96, 58, 72, 80, 84, 48, 82, 84, 60, 62, 52, 68, 51, 53, 59, 81, 65, 76, 74, 94, 67, 75, 76, 84, 79, 42, 49, 70, 75, 66, 85, 51, 70, 102, 60, 43, 69, 70, 102, 59, 41, 60, 48, 58, 79, 71, 69, 75, 42, 47, 91, 56, 67, 93, 43, 63, 142, 60, 74, 52, 60, 38, 61, 59, 77, 43, 64, 75, 66, 44, 52, 60, 53, 62, 42, 56, 103, 62, 59, 87, 58, 96, 73, 82, 65, 59, 68, 65, 93, 86, 59, 79, 65, 51, 58, 60, 61, 55, 54, 55, 51, 70, 45, 60, 90, 57, 51, 75, 73, 101, 77, 64, 49, 58, 66, 66, 69, 58, 69, 51, 64, 62, 44, 59, 66, 89, 85, 56, 69, 54, 51, 55, 64, 59, 52, 69, 76, 62, 130, 60, 58, 52, 59, 60, 95, 77, 52, 57, 64, 80, 113, 74, 87, 58, 54, 109, 51, 62, 50, 52, 56, 52, 81, 93, 58, 98, 63, 75, 111, 42, 59, 75, 61, 73, 71, 54, 51, 55, 60, 83, 59, 67, 79, 64, 67, 49, 70, 95, 42, 54, 50, 49, 46, 63, 79, 48, 52, 56, 74, 80, 50, 51, 59, 53, 59, 56, 45, 60, 56, 64, 54, 61, 78, 58, 75, 86, 68, 44, 61, 60, 71, 68, 65, 61, 51, 44, 69, 122, 86, 50, 43, 63, 57, 98, 99, 38, 97, 53, 49, 76, 74, 55, 66, 67, 68, 67, 77, 95, 95, 43, 50, 62, 65, 57, 48, 63, 63, 67, 64, 61, 55, 62, 60, 58, 62, 57, 52, 52, 59, 60, 54, 85, 87, 69, 69, 56, 62, 62, 53, 76, 61, 69, 69, 78, 61, 53, 43, 56, 66, 52, 99, 71, 57, 66, 63, 87, 67, 50, 58, 76, 48, 62, 49, 101, 57, 51, 64, 69, 63, 75, 84, 110, 64, 77, 85, 64, 61, 73, 74, 45, 70, 64, 47, 74, 59, 82, 79, 48, 98, 113, 61, 82, 61, 65, 55, 67, 53, 47, 108, 60, 60, 38, 49, 66, 103, 74, 70, 73, 80, 72, 73, 48, 48, 77, 48, 51, 59, 66, 62, 59, 49, 67, 40, 90, 69, 64, 76, 87, 56, 85, 61, 62, 69, 82, 79, 91, 88, 63, 68, 91, 70, 49, 75, 73, 87, 72, 64, 52, 58, 71, 84, 55, 69, 66, 66, 67, 74, 69, 96, 110, 60, 46, 62, 56, 74, 70, 53, 66, 67, 72, 66, 62, 65, 64, 71, 45, 107, 51, 76, 98, 79, 60, 63, 61, 52, 77, 61, 61, 48, 103, 57, 77, 74, 64, 67, 49, 95, 71, 88, 77, 62, 71, 73, 89, 54, 83, 48, 52, 60, 67, 55, 68, 65, 45, 57, 57, 63, 54, 82, 51, 77, 66, 64, 49, 43, 62, 51, 56, 65, 67, 54, 80, 74, 61, 48, 69, 65, 74, 65, 62, 60, 46, 58, 35, 50, 53, 68, 66, 83, 47, 55, 64, 51, 57, 75, 58, 63, 74, 74, 63, 77, 84, 86, 63, 49, 67, 62, 82, 53, 50, 85, 54, 65, 64, 70, 64, 48, 76, 79, 50, 64, 52, 58, 148, 93, 53, 43, 47, 78, 65, 49, 60, 39, 79, 68, 70, 75, 72, 62, 79, 69, 73, 63, 87, 70, 60, 59, 101, 74, 90, 70, 50, 75, 87, 72, 62, 76, 64, 68, 80, 69, 45, 56, 59, 65, 63, 63, 67, 68, 72, 86, 64, 63, 51, 62, 90, 74, 51, 56, 84, 77, 55, 59, 62, 76, 60, 61, 65, 52, 61, 47, 65, 90, 35, 48, 83, 68, 77, 71, 66, 56, 57, 54, 64, 59, 65, 51, 74, 67, 113, 51, 53, 59, 57, 50, 66, 52, 58, 48, 65, 59, 61, 48, 30, 66, 56, 54, 99, 52, 53, 71, 63, 73, 65, 55, 72, 79, 69, 67, 64, 55, 76, 49, 76, 51, 96, 63, 42, 65, 53, 70, 49, 60, 75, 57, 65, 76, 96, 83, 68, 59, 65, 58, 93, 71, 62, 54, 66, 54, 55, 53, 68, 71, 75, 67, 41, 62, 77, 64, 73, 101, 85, 59, 71, 71, 70, 65, 60, 76, 44, 60, 68, 41, 58, 54, 63, 51, 96, 96, 61, 74, 51, 52, 46, 72, 49, 70, 105, 75, 67, 59, 58, 58, 78, 85, 70, 83, 72, 75, 55, 60, 66, 52, 59, 62, 73, 74, 55, 68, 69, 59, 53, 103, 60, 46, 76, 45, 63, 51, 56, 94, 62, 58, 62, 38, 74, 57, 84, 73, 59, 81, 63, 74, 55, 61, 53, 68, 64, 66, 67, 55, 56, 37, 72, 63, 113, 72, 58, 66, 78, 67, 53, 70, 59, 46, 50, 57, 79, 51, 55, 59, 66, 60, 80, 65, 66, 36, 65, 69, 49, 57, 52, 61, 67, 60, 78, 67, 58, 56, 55, 80, 65, 81, 61, 64, 41, 65, 63, 44, 83, 59, 43, 46, 58, 52, 67, 43, 72, 72, 74, 58, 54, 62, 65, 75, 57, 50, 50, 57, 60, 55, 52, 56, 80, 81, 100, 74, 45, 56, 62, 58, 53, 67, 65, 40, 43, 50, 62, 79, 59, 33, 68, 57, 56, 56, 86, 97, 46, 60, 59, 61, 62, 92, 49, 118, 98, 65, 66, 48, 58, 40, 70, 52, 74, 126, 69, 85, 61, 52, 91, 51, 78, 65, 58, 48, 85, 71, 71, 63, 64, 74, 59, 49, 109, 73, 85, 58, 75, 56, 78, 97, 115, 108, 122, 67, 78, 153, 69, 54, 77, 69, 71, 76, 68, 58, 67, 52, 43, 65, 77, 74, 49, 109, 69, 48, 52, 58, 75, 82, 83, 64, 95, 82, 70, 72, 74, 54, 51, 54, 59, 61, 76, 59, 66, 40, 95, 58, 59, 56, 67, 42, 66, 81, 72, 65, 58, 75, 67, 58, 66, 60, 87, 86, 80, 77, 60, 71, 64, 73, 44, 54, 64, 79, 77, 58, 77, 44, 67, 107, 73, 64, 47, 71, 67, 68, 47, 73, 56, 77, 71, 64, 61, 56, 57, 52, 81, 62, 55, 64, 53, 84, 44, 51, 62, 62, 57, 55, 69, 51, 57, 68, 70, 57, 78, 59, 52, 51, 68, 79, 92, 67, 53, 61, 86, 53, 97, 63, 52, 48, 54, 72, 58, 81, 84, 73, 70, 56, 58, 74, 53, 78, 58, 70, 93, 52, 61, 75, 50, 61, 59, 55, 64, 57, 80, 55, 87, 62, 56, 88, 61, 57, 61, 48, 59, 79, 64, 55, 67, 49, 64, 73, 60, 70, 53, 63, 66, 68, 51, 61, 72, 75, 55, 76, 70, 81, 68, 53, 60, 63, 69, 64, 57, 54, 72, 65, 61, 112, 62, 59, 67, 30, 92, 108, 68, 55, 59, 57, 42, 82, 59, 70, 49, 77, 61, 72, 59, 91, 59, 68, 65, 81, 37, 59, 62, 63, 66, 61, 59, 68, 66, 69, 69, 79, 61, 69, 53, 69, 72, 68, 67, 60, 54, 65, 51, 83, 60, 62, 56, 52, 92, 99, 71, 60, 79, 67, 73, 81, 51, 97, 73, 56, 74, 67, 57, 61, 63, 95, 44, 57, 64, 61, 68, 93, 66, 56, 64, 64, 61, 59, 46, 45, 67, 73, 63, 74, 53, 61, 76, 144, 47, 105, 65, 66, 37, 69, 62, 71, 62, 66, 60, 65, 50, 61, 86, 51, 45, 60, 52, 55, 67, 77, 63, 63, 56, 64, 60, 80, 66, 61, 61, 45, 70, 83, 63, 52, 55, 72, 98, 62, 59, 82, 94, 63, 65, 82, 69, 61, 59, 45, 63, 66, 64, 44, 66, 68, 63, 36, 103, 64, 79, 39, 70, 55, 61, 64, 60, 55, 58, 48, 74, 81, 149, 64, 46, 66, 75, 71, 62, 49, 65, 64, 53, 62, 60, 56, 91, 56, 49, 68, 81, 71, 76, 64, 68, 78, 65, 58, 65, 73, 74, 51, 75, 62, 51, 65, 68, 77, 61, 57, 54, 78, 59, 66, 104, 56, 60, 51, 63, 56, 55, 70, 86, 56, 63, 57, 68, 73, 77, 68, 51, 52, 82, 77, 73, 69, 81, 73, 76, 59, 56, 99, 53, 68, 92, 66, 38, 60, 82, 71, 65, 61, 67, 110, 65, 61, 55, 51, 68, 66, 50, 64, 82, 64, 67, 82, 74, 70, 55, 53, 64, 63, 53, 69, 50, 72, 93, 54, 63, 59, 70, 62, 71, 107, 67, 65, 66, 55, 44, 87, 85, 80, 66, 43, 67, 63, 71, 64, 51, 54, 82, 57, 48, 66, 80, 64, 49, 72, 34, 62, 57, 33, 68, 62, 59, 58, 73, 68, 50, 70, 63, 67, 73, 83, 75, 69, 54, 75, 63, 74, 64, 63, 62, 57, 80, 64, 67, 48, 75, 87, 51, 61, 86, 75, 56, 54, 60, 86, 63, 61, 63, 78, 73, 56, 83, 56, 58, 48, 82, 65, 80, 56, 69, 57, 55, 75, 60, 49, 77, 51, 48, 57, 59, 55, 60, 79, 91, 61, 60, 78, 67, 62, 52, 56, 61, 71, 62, 73, 63, 55, 50, 66, 50, 83, 98, 100, 55, 71, 78, 72, 56, 60, 87, 53, 52, 54, 69, 62, 57, 64, 68, 70, 58, 99, 56, 62, 75, 61, 56, 67, 58, 59, 59, 128, 55, 68, 76, 41, 78, 87, 59, 61, 61, 60, 52, 54, 59, 65, 47, 66, 50, 72, 59, 45, 55, 55, 58, 67, 57, 49, 45, 49, 66, 67, 59, 58, 64, 94, 69, 67, 61, 85, 82, 68, 59, 54, 66, 90, 70, 67, 38, 54, 73, 59, 71, 61, 88, 59, 59, 70, 58, 72, 95, 76, 67, 54, 60, 61, 69, 53, 89, 53, 81, 56, 63, 86, 76, 76, 79, 93, 60, 75, 51, 102, 63, 56, 60, 53, 59, 52, 52, 64, 74, 81, 58, 65, 70, 54, 66, 58, 49, 65, 71, 66, 53, 52, 70, 77, 62, 53, 65, 60, 80, 68, 76, 56, 47, 67, 58, 74, 52, 59, 66, 64, 61, 57, 66, 56, 63, 97, 66, 69, 79, 94, 73, 54, 71, 83, 69, 63, 88, 72, 53, 61, 59, 66, 68, 85, 69, 71, 60, 57, 57, 94, 66, 52, 50, 86, 66, 67, 67, 67, 60, 66, 45, 65, 64, 65, 73, 96, 60, 69, 52, 79, 63, 66, 73, 54, 74, 56, 57, 73, 63, 75, 73, 65, 58, 56, 56, 63, 81, 79, 107, 59, 58, 70, 62, 61, 65, 102, 115, 54, 70, 109, 69, 65, 74, 80, 88, 78, 63, 87, 61, 50, 65, 78, 74, 65, 112, 60, 55, 54, 55, 70, 41, 89, 57, 69, 74, 48, 70, 62, 60, 79, 57, 62, 61, 69, 103, 58, 49, 59, 43, 57, 76, 78, 93, 71, 87, 62, 71, 63, 67, 103, 53, 62, 58, 57, 51, 67, 79, 115, 55, 67, 70, 68, 80, 34, 52, 104, 59, 77, 61, 48, 70, 68, 59, 58, 50, 112, 76, 71, 101, 52, 49, 88, 63, 47, 80, 55, 66, 63, 50, 78, 76, 74, 54, 81, 69, 57, 51, 60, 63, 63, 80, 73, 70, 75, 80, 61, 66, 67, 45, 68, 89, 105, 55, 64, 69, 63, 61, 71, 89, 74, 66, 59, 54, 67, 98, 64, 70, 54, 47, 48, 63, 97, 51, 53, 54, 72, 52, 71, 54, 60, 76, 41, 64, 57, 79, 108, 105, 77, 102, 61, 92, 73, 54, 56, 55, 64, 45, 33, 97, 48, 64, 57, 50, 51, 51, 56, 75, 70, 47, 77, 99, 53, 62, 58, 47, 66, 50, 52, 69, 64, 71, 72, 128, 82, 66, 67, 52, 60, 82, 62, 57, 73, 60, 91, 102, 67, 86, 63, 59, 52, 56, 75, 64, 58, 57, 66, 64, 82, 61, 53, 43, 50, 52, 61, 76, 84, 78, 60, 65, 74, 57, 47, 60, 64, 52, 58, 46, 76, 71, 49, 64, 78, 57, 58, 60, 62, 51, 67, 74, 58, 77, 41, 69, 62, 89, 82, 55, 58, 66, 57, 42, 73, 58, 81, 98, 74, 62, 54, 67, 75, 53, 68, 50, 76, 61, 107, 60, 54, 65, 83, 67, 78, 61, 95, 58, 68, 60, 72, 73, 58, 61, 105, 66, 76, 120, 67, 56, 57, 66, 58, 55, 82, 60, 68, 58, 53, 71, 55, 51, 70, 69, 123, 49, 111, 74, 55, 58, 76, 61, 92, 58, 66, 82, 64, 75, 62, 55, 80, 75, 59, 62, 96, 68, 77, 62, 54, 64, 54, 63, 80, 80, 76, 76, 52, 63, 97, 74, 70, 68, 63, 67, 61, 47, 72, 82, 81, 60, 61, 60, 67, 39, 60, 74, 64, 47, 54, 53, 65, 54, 43, 63, 82, 71, 65, 54, 60, 57, 62, 77, 54, 67, 55, 69, 60, 62, 60, 69, 61, 54, 60, 76, 73, 84, 61, 42, 64, 157, 67, 68, 45, 77, 60, 64, 61, 54, 53, 57, 54, 85, 51, 67, 60, 60, 50, 84, 73, 63, 67, 61, 53, 53, 67, 53, 71, 55, 63, 47, 71, 67, 74, 118, 77, 61, 65, 67, 88, 51, 52, 88, 73, 58, 78, 53, 76, 70, 99, 58, 86, 52, 48, 96, 66, 52, 91, 60, 73, 58, 63, 53, 71, 75, 52, 85, 59, 69, 63, 41, 59, 60, 78, 66, 65, 71, 50, 73, 49, 41, 76, 63, 65, 70, 63, 64, 65, 80, 61, 72, 68, 144, 81, 64, 41, 62, 63, 49, 87, 57, 56, 60, 65, 59, 73, 49, 70, 56, 74, 48, 55, 59, 51, 78, 85, 73, 66, 69, 44, 60, 75, 57, 115, 65, 59, 56, 58, 81, 77, 64, 92, 60, 52, 64, 66, 47, 63, 72, 63, 87, 66, 55, 43, 76, 70, 62, 74, 62, 69, 65, 78, 68, 65, 73, 47, 51, 50, 64, 55, 66, 49, 74, 56, 74, 61, 61, 77, 59, 70, 64, 87, 66, 73, 64, 46, 71, 73, 80, 87, 54, 60, 70, 63, 62, 62, 92, 68, 60, 89, 46, 57, 89, 46, 76, 59, 53, 69, 53, 68, 46, 73, 77, 59, 42, 62, 60, 60, 59, 51, 67, 66, 73, 67, 53, 93, 70, 74, 69, 75, 53, 62, 77, 62, 70, 77, 49, 46, 70, 69, 53, 63, 65, 79, 77, 46, 55, 71, 62, 80, 65, 64, 55, 77, 71, 62, 77, 71, 86, 57, 66, 76, 68, 75, 64, 55, 49, 68, 74, 62, 59, 57, 67, 124, 66, 72, 68, 57, 73, 92, 47, 89, 67, 50, 62, 57, 69, 69, 82, 79, 54, 68, 59, 73, 79, 49, 81, 63, 61, 70, 69, 64, 64, 103, 54, 74, 63, 74, 62, 62, 56, 74, 56, 72, 61, 85, 78, 54, 72, 68, 63, 63, 74, 57, 56, 72, 72, 54, 55, 43, 71, 68, 83, 65, 71, 63, 52, 73, 55, 49, 99, 66, 62, 73, 58, 54, 60, 68, 66, 79, 71, 57, 58, 64, 74, 60, 55, 57, 62, 72, 69, 62, 73, 78, 50, 88, 62, 58, 67, 56, 75, 88, 77, 60, 71, 77, 50, 59, 65, 88, 69, 65, 65, 63, 61, 95, 54, 64, 66, 64, 65, 61, 87, 76, 62, 79, 54, 68, 46, 71, 60, 79, 53, 54, 69, 71, 63, 61, 55, 68, 68, 69, 74, 52, 58, 68, 56, 65, 75, 67, 80, 69, 63, 62, 54, 51, 50, 59, 69, 77, 65, 64, 68, 82, 80, 58, 60, 54, 84, 67, 66, 60, 69, 69, 73, 74, 49, 55, 89, 53, 48, 67, 56, 88, 77, 64, 60, 61, 65, 67, 39, 64, 96, 70, 66, 64, 91, 73, 62, 65, 64, 64, 61, 50, 84, 69, 52, 96, 56, 52, 76, 75, 53, 68, 61, 46, 112, 52, 66, 93, 73, 78, 56, 65, 66, 68, 64, 90, 91, 58, 66, 50, 72, 30, 59, 67, 51, 82, 54, 69, 55, 173, 59, 58, 66, 60, 72, 83, 81, 64, 75, 56, 66, 58, 40, 74, 70, 70, 67, 59, 72, 80, 78, 74, 73, 50, 41, 74, 46, 51, 59, 77, 70, 57, 57, 61, 59, 85, 71, 63, 73, 68, 78, 75, 66, 58, 57, 46, 58, 63, 72, 98, 60, 56, 54, 71, 69, 79, 65, 54, 69, 65, 76, 63, 86, 55, 69, 41, 42, 70, 75, 53, 65, 51, 70, 51, 68, 74, 57, 58, 64, 70, 49, 86, 79, 76, 64, 61, 60, 80, 81, 58, 56, 43, 62, 50, 70, 56, 72, 36, 62, 51, 56, 72, 67, 46, 86, 64, 75, 63, 45, 63, 51, 47, 63, 43, 40, 55, 63, 59, 74, 65, 51, 82, 52, 86, 54, 61, 42, 72, 55, 65, 50, 61, 60, 54, 71, 83, 62, 81, 63, 72, 64, 67, 41, 73, 58, 77, 64, 52, 72, 47, 75, 54, 109, 52, 64, 55, 100, 58, 76, 69, 67, 73, 77, 46, 77, 58, 81, 116, 49, 69, 64, 60, 65, 64, 82, 51, 58, 56, 78, 58, 50, 48, 57, 76, 65, 65, 54, 65, 70, 51, 45, 55, 59, 62, 72, 65, 71, 59, 69, 76, 77, 67, 50, 51, 69, 59, 57, 60, 43, 71, 63, 48, 59, 68, 56, 62, 59, 58, 72, 50, 78, 60, 67, 128, 49, 88, 83, 70, 44, 52, 61, 75, 115, 82, 61, 72, 65, 60, 88, 49, 52, 51, 36, 98, 72, 68, 55, 60, 67, 51, 57, 81, 71, 55, 60, 77, 68, 69, 57, 60, 61, 66, 48, 73, 61, 54, 58, 84, 51, 65, 70, 65, 67, 68, 57, 70, 65, 68, 66, 83, 77, 53, 59, 66, 42, 66, 66, 57, 47, 81, 59, 66, 45, 60, 58, 73, 70, 85, 61, 112, 69, 45, 107, 45, 56, 63, 64, 75, 47, 70, 67, 71, 109, 50, 50, 55, 49, 64, 73, 65, 48, 70, 73, 47, 65, 76, 72, 49, 48, 75, 65, 59, 68, 57, 70, 83, 76, 75, 59, 65, 75, 70, 53, 64, 60, 52, 65, 76, 59, 63, 53, 39, 46, 86, 52, 68, 55, 58, 62, 54, 73, 65, 58, 66, 67, 77, 93, 96, 76, 62, 50, 63, 92, 51, 66, 58, 58, 99, 59, 53, 61, 75, 73, 59, 61, 44, 71, 44, 87, 74, 42, 75, 77, 55, 56, 60, 63, 43, 64, 70, 70, 92, 67, 44, 63, 61, 64, 53, 69, 97, 121, 59, 38, 80, 59, 59, 93, 52, 69, 63, 65, 61, 66, 83, 95, 64, 62, 96, 45, 74, 43, 77, 55, 63, 54, 73, 58, 51, 60, 77, 58, 70, 70, 60, 112, 61, 70, 73, 60, 49, 67, 53, 65, 69, 53, 64, 72, 59, 60, 84, 66, 46, 72, 71, 59, 55, 68, 54, 44, 57, 62, 91, 74, 75, 85, 60, 72, 57, 73, 52, 48, 52, 56, 51, 65, 62, 54, 87, 68, 84, 67, 65, 59, 64, 62, 69, 92, 60, 79, 62, 71, 52, 92, 62, 74, 77, 56, 62, 64, 65, 61, 91, 69, 57, 72, 60, 41, 60, 51, 64, 73, 71, 75, 63, 55, 66, 78, 51, 60, 62, 64, 73, 65, 55, 70, 63, 71, 66, 60, 82, 48, 51, 44, 74, 69, 62, 60, 59, 71, 90, 65, 62, 54, 111, 64, 62, 54, 63, 67, 66, 71, 73, 69, 57, 73, 60, 57, 56, 74, 54, 70, 63, 52, 62, 69, 70, 76, 58, 72, 61, 83, 91, 74, 80, 58, 68, 73, 73, 63, 61, 52, 67, 56, 88, 61, 61, 47, 70, 61, 68, 77, 54, 60, 83, 78, 75, 57, 41, 66, 48, 64, 52, 79, 73, 60, 57, 53, 61, 56, 73, 60, 65, 50, 60, 55, 64, 62, 50, 49, 80, 68, 69, 57, 58, 70, 59, 59, 48, 62, 80, 84, 56, 62, 48, 63, 76, 60, 54, 83, 62, 81, 51, 68, 56, 57, 67, 68, 71, 77, 85, 69, 82, 54, 66, 57, 57, 61, 61, 72, 66, 51, 58, 60, 58, 82, 46, 55, 57, 76, 72, 68, 83, 63, 63, 52, 61, 74, 61, 50, 100, 61, 71, 67, 87, 74, 67, 85, 66, 66, 53, 46, 73, 61, 59, 67, 60, 74, 60, 57, 59, 68, 56, 57, 50, 133, 46, 75, 58, 49, 55, 91, 56, 45, 79, 65, 51, 98, 50, 66, 106, 63, 69, 62, 65, 61, 58, 99, 66, 59, 76, 62, 62, 71, 62, 62, 75, 75, 66, 59, 73, 60, 54, 50, 61, 61, 64, 67, 52, 56, 61, 83, 55, 64, 55, 65, 60, 74, 63, 72, 68, 63, 83, 69, 68, 65, 73, 66, 58, 84, 95, 59, 58, 58, 62, 60, 90, 61, 65, 69, 82, 44, 75, 138, 62, 78, 63, 59, 54, 62, 50, 58, 63, 52, 73, 53, 72, 94, 82, 87, 67, 63, 58, 118, 82, 59, 58, 57, 59, 89, 63, 63, 69, 48, 88, 68, 67, 61, 83, 68, 69, 73, 80, 63, 60, 55, 50, 49, 57, 60, 63, 66, 67, 60, 63, 70, 82, 56, 68, 62, 73, 54, 93, 60, 61, 65, 59, 72, 67, 70, 81, 74, 57, 55, 52, 53, 58, 51, 97, 67, 56, 58, 69, 76, 80, 67, 67, 81, 65, 75, 53, 69, 68, 58, 55, 77, 63, 62, 87, 70, 68, 57, 68, 89, 69, 69, 63, 79, 68, 64, 71, 53, 57, 71, 56, 51, 51, 80, 59, 53, 58, 64, 92, 48, 65, 67, 78, 64, 48, 56, 71, 55, 59, 71, 57, 58, 79, 53, 50, 59, 43, 54, 59, 59, 47, 54, 82, 50, 57, 63, 80, 52, 65, 94, 79, 51, 52, 72, 52, 51, 57, 44, 61, 65, 61, 65, 43, 81, 71, 74, 91, 87, 54, 57, 77, 73, 67, 71, 90, 104, 73, 59, 72, 76, 66, 56, 68, 70, 70, 61, 92, 53, 64, 59, 70, 56, 61, 52, 72, 69, 38, 69, 88, 45, 68, 61, 52, 63, 80, 52, 63, 48, 67, 90, 41, 82, 59, 59, 54, 39, 73, 71, 60, 56, 61, 57, 57, 59, 100, 47, 81, 54, 70, 64, 60, 79, 55, 59, 68, 63, 65, 57, 55, 40, 56, 55, 72, 62, 60, 77, 72, 61, 75, 49, 41, 72, 34, 64, 79, 63, 60, 72, 53, 94, 79, 80, 64, 69, 78, 75, 58, 89, 51, 68, 81, 70, 67, 61, 71, 61, 62, 63, 78, 71, 38, 58, 55, 52, 57, 66, 52, 53, 99, 63, 62, 54, 44, 64, 66, 101, 53, 64, 91, 81, 55, 83, 67, 72, 63, 64, 69, 70, 60, 102, 71, 64, 72, 64, 59, 74, 55, 74, 65, 65, 74, 48, 61, 65, 76, 88, 55, 57, 50, 59, 40, 87, 90, 61, 68, 54, 61, 67, 73, 65, 65, 58, 75, 53, 76, 60, 65, 55, 53, 67, 64, 53, 73, 75, 51, 59, 55, 57, 54, 75, 51, 61, 68, 57, 68, 68, 52, 73, 73, 94, 59, 80, 59, 60, 54, 66, 87, 55, 50, 68, 77, 100, 75, 49, 57, 69, 60, 61, 66, 60, 56, 55, 67, 62, 65, 82, 62, 83, 60, 69, 73, 60, 77, 53, 106, 58, 67, 65, 46, 57, 72, 58, 61, 66, 85, 72, 59, 80, 60, 82, 88, 80, 56, 71, 54, 66, 45, 49, 55, 63, 65, 60, 55, 117, 52, 71, 91, 65, 49, 69, 84, 62, 65, 64, 57, 75, 78, 70, 66, 82, 65, 68, 55, 66, 70, 89, 50, 52, 52, 61, 48, 45, 74, 79, 61, 103, 85, 69, 68, 78, 56, 59, 70, 65, 77, 59, 68, 50, 68, 45, 85, 103, 71, 62, 69, 55, 54, 53, 106, 61, 63, 80, 75, 61, 63, 61, 54, 61, 76, 68, 108, 56, 65, 61, 59, 79, 65, 60, 53, 75, 58, 58, 61, 66, 48, 72, 68, 50, 56, 79, 67, 61, 71, 77, 56, 59, 76, 50, 77, 51, 87, 70, 61, 65, 60, 49, 106, 66, 51, 70, 59, 67, 52, 68, 56, 56, 62, 51, 66, 74, 75, 62, 85, 56, 66, 67, 63, 68, 61, 86, 53, 73, 49, 46, 65, 87, 75, 60, 63, 68, 64, 59, 126, 70, 61, 67, 63, 62, 58, 92, 67, 55, 68, 75, 83, 55, 60, 81, 62, 83, 63, 76, 69, 66, 56, 92, 60, 67, 75, 68, 67, 41, 66, 112, 53, 57, 61, 57, 56, 66, 60, 58, 58, 61, 69, 74, 95, 59, 94, 81, 61, 80, 49, 67, 69, 72, 67, 105, 62, 119, 63, 61, 57, 64, 62, 100, 67, 78, 68, 62, 62, 65, 67, 54, 74, 79, 64, 64, 64, 39, 59, 45, 61, 68, 54, 100, 74, 69, 57, 58, 55, 75, 51, 66, 63, 55, 71, 78, 50, 60, 48, 41, 75, 76, 66, 64, 56, 83, 63, 59, 66, 63, 57, 52, 66, 62, 93, 59, 51, 71, 59, 54, 52, 68, 64, 58, 71, 68, 85, 80, 63, 49, 59, 62, 71, 68, 79, 76, 61, 64, 77, 63, 50, 70, 65, 60, 50, 84, 95, 74, 61, 68, 67, 107, 65, 65, 49, 60, 83, 75, 68, 52, 39, 58, 58, 65, 50, 79, 90, 69, 46, 46, 54, 55, 69, 49, 82, 58, 63, 55, 54, 67, 47, 68, 68, 54, 64, 58, 55, 66, 49, 84, 55, 46, 69, 64, 47, 69, 74, 64, 62, 107, 56, 62, 78, 68, 60, 58, 89, 65, 63, 58, 63, 65, 64, 119, 63, 79, 66, 71, 82, 68, 78, 73, 58, 75, 88, 76, 72, 54, 73, 55, 56, 62, 53, 72, 79, 87, 76, 57, 69, 98, 67, 64, 64, 49, 78, 62, 60, 76, 50, 58, 59, 88, 49, 71, 79, 55, 70, 61, 78, 53, 72, 93, 37, 93, 67, 62, 54, 73, 69, 41, 66, 58, 88, 54, 61, 62, 69, 57, 41, 44, 64, 67, 63, 72, 69, 59, 73, 54, 71, 45, 76, 67, 68, 60, 62, 76, 58, 49, 60, 60, 70, 65, 55, 60, 77, 104, 67, 71, 87, 56, 65, 83, 63, 109, 71, 50, 67, 55, 43, 64, 75, 68, 78, 62, 69, 55, 91, 62, 91, 66, 66, 57, 63, 63, 75, 58, 46, 82, 62, 82, 67, 66, 65, 57, 73, 95, 101, 38, 97, 58, 55, 42, 68, 57, 61, 39, 71, 65, 66, 63, 44, 77, 66, 66, 61, 102, 71, 53, 40, 52, 67, 42, 64, 46, 56, 89, 67, 67, 65, 58, 73, 68, 65, 61, 60, 77, 65, 56, 61, 71, 63, 62, 54, 107, 60, 71, 64, 67, 54, 66, 65, 86, 97, 57, 60, 58, 56, 58, 49, 69, 87, 69, 97, 66, 66, 47, 66, 68, 72, 49, 67, 63, 56, 58, 63, 50, 63, 76, 68, 65, 58, 65, 84, 70, 53, 54, 57, 65, 84, 57, 81, 45, 77, 70, 48, 70, 52, 75, 71, 70, 74, 72, 85, 62, 49, 63, 76, 75, 51, 48, 56, 53, 45, 68, 51, 66, 55, 67, 45, 55, 57, 60, 50, 75, 69, 72, 48, 64, 77, 80, 74, 62, 79, 85, 70, 58, 46, 104, 69, 47, 66, 71, 53, 62, 54, 65, 78, 55, 75, 50, 65, 59, 70, 69, 62, 70, 72, 55, 52, 51, 69, 85, 75, 64, 45, 67, 81, 57, 61, 72, 66, 50, 55, 60, 57, 75, 62, 73, 60, 83, 54, 70, 71, 71, 66, 66, 44, 74, 57, 82, 78, 64, 54, 67, 58, 66, 54, 71, 79, 77, 59, 66, 75, 81, 90, 66, 50, 56, 55, 65, 60, 72, 67, 64, 79, 59, 55, 78, 67, 58, 66, 47, 60, 57, 50, 53, 59, 54, 74, 70, 60, 69, 57, 54, 81, 59, 50, 79, 58, 98, 77, 53, 72, 64, 60, 77, 73, 74, 80, 54, 82, 35, 54, 58, 91, 86, 66, 63, 71, 51, 56, 64, 63, 87, 80, 66, 81, 76, 47, 66, 66, 66, 68, 50, 48, 74, 50, 94, 67, 49, 52, 44, 57, 48, 71, 79, 69, 76, 84, 65, 56, 57, 74, 55, 63, 68, 67, 62, 80, 63, 115, 68, 53, 51, 67, 57, 65, 66, 83, 70, 65, 80, 54, 57, 60, 79, 53, 73, 68, 80, 69, 69, 60, 48, 59, 56, 59, 55, 60, 81, 53, 79, 81, 53, 59, 60, 74, 54, 62, 64, 65, 61, 72, 58, 49, 74, 56, 59, 65, 65, 66, 58, 44, 64, 71, 57, 64, 64, 68, 76, 78, 70, 50, 77, 63, 52, 71, 55, 67, 96, 111, 67, 76, 75, 58, 58, 60, 61, 60, 41, 62, 86, 54, 60, 77, 62, 73, 77, 66, 55, 63, 66, 60, 74, 58, 57, 71, 76, 88, 86, 67, 72, 78, 67, 57, 77, 63, 59, 89, 59, 79, 71, 55, 60, 67, 57, 65, 63, 48, 61, 79, 64, 69, 50, 85, 54, 44, 88, 54, 123, 68, 73, 66, 67, 66, 55, 74, 60, 100, 81, 48, 57, 59, 67, 53, 62, 71, 68, 68, 52, 69, 81, 60, 80, 78, 62, 65, 59, 72, 65, 70, 86, 64, 81, 63, 72, 46, 60, 47, 54, 102, 100, 56, 66, 67, 79, 73, 61, 55, 66, 60, 63, 86, 49, 52, 75, 56, 60, 56, 59, 50, 64, 69, 56, 80, 87, 77, 81, 46, 70, 81, 65, 46, 79, 63, 66, 58, 65, 63, 69, 84, 64, 66, 72, 43, 55, 60, 60, 54, 67, 59, 76, 68, 87, 58, 62, 69, 71, 47, 58, 78, 53, 72, 73, 60, 58, 67, 65, 41, 79, 73, 84, 81, 41, 53, 62, 70, 57, 51, 63, 77, 72, 53, 67, 59, 102, 98, 68, 48, 60, 42, 79, 81, 63, 76, 114, 73, 65, 77, 60, 67, 87, 83, 65, 66, 73, 65, 64, 88, 62, 63, 45, 68, 75, 64, 52, 58, 64, 55, 91, 76, 65, 63, 51, 65, 64, 68, 70, 56, 52, 72, 62, 89, 87, 93, 55, 64, 80, 72, 52, 68, 74, 62, 50, 59, 61, 68, 56, 62, 72, 53, 62, 62, 71, 76, 54, 54, 72, 73, 50, 68, 67, 61, 61, 74, 40, 67, 66, 60, 58, 73, 64, 57, 73, 84, 67, 68, 69, 76, 99, 67, 70, 82, 65, 83, 84, 64, 74, 89, 56, 67, 52, 109, 61, 53, 69, 90, 56, 70, 53, 80, 49, 59, 54, 42, 50, 55, 40, 77, 65, 60, 73, 79, 65, 68, 62, 48, 55, 63, 61, 62, 97, 80, 38, 54, 62, 43, 54, 50, 71, 68, 53, 129, 55, 58, 79, 59, 61, 79, 82, 60, 80, 77, 81, 71, 50, 51, 71, 58, 52, 68, 57, 55, 49, 63, 91, 73, 73, 62, 45, 64, 69, 57, 77, 56, 44, 69, 55, 44, 54, 61, 55, 55, 72, 54, 55, 66, 54, 94, 52, 66, 83, 76, 65, 52, 50, 79, 143, 69, 63, 69, 81, 63, 58, 65, 62, 55, 66, 79, 65, 55, 51, 58, 74, 61, 61, 69, 58, 71, 61, 91, 75, 70, 57, 76, 69, 94, 46, 53, 73, 76, 48, 49, 63, 62, 57, 56, 56, 64, 119, 53, 55, 68, 52, 57, 74, 66, 62, 57, 60, 61, 58, 57, 70, 110, 54, 80, 95, 58, 136, 62, 61, 69, 59, 61, 60, 65, 106, 69, 77, 81, 57, 72, 56, 54, 42, 53, 78, 49, 55, 71, 48, 85, 64, 84, 49, 66, 61, 61, 58, 69, 56, 46, 63, 74, 72, 60, 63, 81, 73, 64, 49, 49, 66, 55, 72, 83, 60, 57, 105, 50, 58, 72, 65, 59, 114, 69, 92, 65, 81, 59, 62, 62, 60, 65, 59, 62, 59, 63, 52, 66, 52, 66, 47, 52, 72, 71, 112, 58, 46, 57, 58, 61, 45, 61, 74, 64, 76, 73, 65, 109, 64, 63, 58, 82, 66, 75, 72, 55, 64, 70, 57, 51, 74, 61, 67, 79, 52, 92, 78, 65, 58, 103, 47, 60, 48, 52, 51, 49, 65, 57, 61, 102, 70, 49, 46, 70, 63, 66, 62, 66, 77, 61, 62, 81, 65, 58, 70, 68, 71, 61, 57, 60, 44, 67, 66, 58, 49, 54, 62, 71, 53, 65, 52, 53, 138, 55, 62, 62, 53, 63, 54, 56, 64, 61, 88, 105, 66, 54, 57, 55, 81, 53, 49, 54, 66, 46, 77, 71, 64, 60, 69, 58, 52, 68, 68, 60, 54, 70, 59, 48, 64, 53, 58, 74, 55, 128, 48, 41, 72, 65, 48, 71, 85, 52, 66, 63, 74, 68, 77, 61, 73, 55, 83, 41, 42, 55, 77, 63, 64, 52, 69, 82, 64, 45, 73, 75, 55, 81, 77, 70, 63, 70, 68, 56, 76, 62, 62, 71, 63, 65, 98, 64, 52, 84, 68, 58, 60, 55, 64, 69, 68, 58, 57, 58, 74, 56, 49, 64, 45, 60, 72, 62, 57, 85, 51, 69, 85, 69, 63, 59, 54, 79, 54, 69, 68, 63, 64, 60, 56, 70, 55, 69, 85, 113, 69, 52, 53, 65, 73, 78, 57, 51, 46, 55, 67, 70, 56, 73, 56, 61, 58, 60, 114, 63, 45, 92, 79, 76, 69, 64, 60, 56, 52, 57, 65, 73, 76, 71, 55, 74, 87, 89, 62, 88, 75, 63, 91, 54, 59, 45, 75, 70, 71, 59, 71, 72, 71, 113, 91, 61, 79, 67, 41, 54, 58, 60, 58, 60, 69, 65, 64, 74, 83, 82, 69, 52, 63, 62, 69, 51, 56, 97, 76, 71, 55, 110, 92, 64, 69, 74, 66, 47, 66, 84, 57, 59, 49, 45, 80, 88, 63, 91, 46, 58, 63, 74, 74, 77, 53, 69, 60, 58, 69, 55, 73, 60, 61, 97, 74, 48, 54, 49, 69, 65, 60, 61, 97, 78, 72, 67, 71, 72, 54, 54, 37, 56, 49, 53, 64, 51, 62, 64, 39, 62, 71, 66, 80, 76, 62, 71, 61, 67, 70, 52, 75, 85, 60, 64, 62, 67, 65, 76, 68, 61, 43, 41, 36, 50, 44, 71, 60, 76, 69, 46, 80, 82, 82, 74, 46, 70, 75, 62, 78, 131, 70, 72, 62, 58, 106, 56, 65, 64, 68, 56, 60, 95, 75, 51, 70, 101, 73, 84, 72, 67, 65, 67, 56, 64, 50, 67, 62, 64, 72, 69, 70, 79, 78, 68, 34, 64, 57, 58, 87, 67, 77, 63, 60, 73, 67, 70, 43, 64, 73, 63, 66, 42, 58, 39, 55, 77, 62, 66, 72, 59, 50, 57, 70, 75, 59, 58, 57, 66, 86, 46, 74, 73, 57, 81, 65, 76, 71, 81, 70, 82, 66, 76, 70, 58, 72, 95, 71, 68, 74, 53, 60, 55, 72, 68, 78, 56, 54, 106, 48, 58, 56, 91, 80, 82, 77, 77, 51, 56, 70, 55, 79, 77, 101, 56, 57, 76, 68, 66, 76, 65, 57, 68, 72, 61, 96, 71, 68, 80, 50, 60, 52, 57, 56, 51, 57, 60, 83, 62, 64, 60, 61, 56, 60, 94, 43, 68, 99, 59, 92, 67, 57, 68, 47, 80, 48, 97, 58, 58, 80, 54, 63, 81, 62, 87, 57, 68, 107, 78, 60, 71, 70, 74, 75, 43, 54, 66, 74, 61, 75, 56, 65, 46, 67, 59, 60, 48, 66, 80, 93, 62, 42, 70, 83, 50, 77, 63, 75, 51, 64, 77, 69, 71, 77, 82, 62, 56, 67, 61, 99, 49, 60, 85, 69, 66, 58, 91, 65, 90, 50, 68, 68, 53, 70, 56, 63, 76, 64, 60, 55, 55, 76, 67, 60, 74, 80, 92, 64, 62, 69, 89, 80, 79, 53, 70, 64, 103, 69, 72, 56, 57, 73, 68, 56, 76, 62, 51, 60, 67, 71, 55, 86, 70, 57, 72, 78, 70, 54, 68, 55, 74, 81, 54, 91, 82, 56, 55, 73, 68, 69, 45, 65, 49, 79, 72, 62, 67, 60, 49, 82, 77, 55, 61, 80, 63, 51, 47, 56, 58, 71, 56, 74, 50, 63, 68, 68, 91, 53, 65, 64, 50, 70, 72, 90, 89, 74, 51, 65, 63, 61, 65, 88, 70, 37, 51, 43, 69, 69, 58, 52, 50, 62, 51, 90, 63, 48, 69, 92, 80, 72, 118, 82, 56, 51, 95, 62, 59, 84, 45, 48, 51, 54, 75, 63, 70, 67, 68, 83, 55, 79, 78, 60, 68, 62, 57, 48, 60, 53, 92, 60, 65, 68, 76, 98, 49, 76, 64, 50, 44, 67, 53, 58, 69, 75, 87, 64, 60, 82, 69, 67, 61, 65, 134, 91, 52, 60, 67, 63, 55, 60, 54, 64, 57, 82, 62, 42, 64, 55, 60, 48, 68, 74, 74, 93, 68, 59, 63, 50, 61, 50, 62, 64, 58, 77, 91, 72, 89, 72, 70, 55, 70, 62, 48, 58, 80, 93, 58, 60, 55, 42, 87, 57, 54, 80, 51, 71, 69, 58, 84, 96, 64, 44, 58, 60, 46, 61, 62, 80, 54, 74, 62, 66, 65, 77, 46, 58, 58, 80, 56, 71, 63, 59, 60, 44, 69, 54, 75, 75, 62, 64, 76, 59, 73, 69, 66, 100, 83, 59, 48, 62, 58, 99, 64, 62, 46, 71, 68, 44, 62, 60, 63, 76, 85, 79, 62, 62, 60, 62, 69, 59, 63, 79, 61, 63, 71, 73, 48, 54, 79, 61, 72, 83, 69, 68, 92, 80, 65, 88, 53, 51, 56, 117, 84, 68, 78, 77, 80, 62, 59, 20, 88, 62, 108, 61, 64, 44, 67, 62, 88, 41, 54, 115, 51, 69, 86, 54, 68, 66, 70, 62, 62, 78, 63, 59, 63, 86, 59, 43, 67, 64, 66, 56, 64, 85, 77, 54, 68, 67, 52, 78, 72, 57, 63, 68, 56, 47, 60, 42, 76, 61, 74, 92, 63, 64, 68, 72, 66, 95, 69, 108, 62, 59, 62, 66, 91, 54, 89, 63, 48, 65, 50, 63, 68, 51, 57, 64, 81, 58, 68, 82, 55, 52, 61, 67, 54, 66, 74, 71, 86, 55, 48, 89, 81, 48, 61, 71, 57, 57, 63, 68, 98, 58, 50, 54, 65, 42, 69, 57, 78, 87, 64, 69, 67, 81, 61, 78, 56, 83, 58, 66, 136, 46, 54, 61, 75, 77, 60, 64, 87, 74, 60, 60, 80, 46, 50, 63, 44, 70, 76, 69, 59, 48, 58, 40, 49, 68, 73, 50, 77, 79, 70, 72, 61, 52, 70, 75, 69, 52, 60, 74, 49, 58, 121, 72, 65, 71, 47, 56, 67, 51, 78, 45, 66, 84, 60, 52, 61, 61, 63, 91, 45, 66, 63, 57, 54, 72, 69, 90, 39, 65, 40, 94, 45, 75, 68, 46, 49, 80, 59, 65, 71, 60, 89, 57, 98, 52, 74, 81, 68, 75, 54, 64, 52, 49, 55, 85, 69, 72, 78, 75, 65, 58, 78, 72, 53, 70, 57, 71, 47, 52, 70, 64, 83, 67, 62, 54, 54, 77, 44, 103, 75, 54, 78, 68, 73, 81, 60, 69, 64, 73, 78, 57, 83, 62, 54, 47, 55, 54, 53, 59, 81, 97, 56, 60, 59, 46, 61, 53, 60, 84, 84, 56, 63, 51, 68, 51, 56, 51, 64, 47, 53, 56, 66, 51, 65, 47, 64, 85, 49, 57, 71, 82, 57, 61, 80, 82, 71, 50, 79, 85, 61, 70, 57, 76, 42, 64, 56, 49, 71, 58, 81, 72, 43, 68, 79, 59, 91, 36, 61, 66, 71, 48, 52, 61, 70, 65, 50, 56, 50, 108, 71, 78, 81, 54, 67, 56, 74, 64, 64, 66, 53, 74, 68, 78, 69, 74, 86, 75, 56, 46, 79, 61, 32, 72, 60, 68, 47, 72, 55, 66, 51, 43, 52, 71, 74, 76, 58, 81, 59, 71, 49, 80, 61, 79, 87, 64, 80, 79, 64, 71, 61, 74, 71, 59, 62, 58, 53, 76, 61, 69, 55, 53, 52, 62, 61, 66, 71, 65, 78, 73, 39, 63, 98, 88, 43, 52, 92, 57, 79, 56, 58, 77, 69, 52, 57, 56, 42, 63, 53, 76, 59, 66, 55, 67, 71, 41, 67, 68, 59, 67, 72, 68, 57, 50, 96, 58, 55, 59, 129, 65, 66, 53, 63, 48, 68, 50, 70, 65, 84, 71, 88, 61, 62, 88, 99, 89, 66, 103, 68, 58, 55, 57, 63, 58, 68, 74, 66, 80, 51, 48, 72, 47, 45, 79, 34, 55, 46, 64, 64, 44, 54, 74, 46, 94, 70, 51, 64, 69, 64, 49, 72, 58, 55, 88, 54, 50, 51, 66, 74, 77, 73, 41, 71, 57, 90, 85, 75, 69, 62, 68, 61, 95, 105, 91, 79, 61, 64, 72, 47, 67, 71, 45, 39, 72, 64, 87, 48, 51, 63, 75, 46, 71, 65, 57, 62, 126, 49, 57, 67, 58, 62, 46, 60, 93, 43, 47, 58, 69, 85, 74, 55, 71, 65, 91, 67, 50, 73, 61, 50, 61, 52, 72, 64, 47, 64, 66, 70, 52, 53, 37, 50, 72, 48, 55, 94, 67, 80, 64, 72, 55, 63, 49, 58, 73, 68, 115, 73, 69, 81, 57, 52, 86, 72, 83, 72, 45, 86, 103, 97, 78, 66, 68, 81, 64, 72, 60, 77, 61, 68, 77, 57, 66, 73, 49, 50, 61, 70, 87, 66, 91, 86, 81, 81, 68, 71, 58, 51, 27, 46, 46, 76, 133, 53, 82, 73, 74, 76, 65, 100, 51, 57, 89, 46, 68, 69, 77, 74, 60, 60, 81, 82, 83, 50, 56, 49, 70, 61, 62, 58, 54, 99, 76, 64, 55, 66, 70, 69, 109, 52, 66, 69, 73, 62, 71, 70, 66, 115, 94, 62, 64, 60, 56, 60, 73, 60, 54, 91, 55, 64, 70, 70, 64, 59, 100, 37, 74, 58, 65, 63, 62, 109, 41, 74, 56, 61, 66, 36, 66, 62, 59, 90, 104, 49, 59, 90, 68, 48, 68, 63, 80, 47, 61, 60, 56, 67, 64, 61, 66, 63, 52, 75, 50, 66, 77, 47, 62, 64, 59, 47, 77, 39, 62, 56, 60, 81, 83, 73, 43, 79, 63, 63, 68, 68, 68, 89, 63, 42, 68, 67, 62, 81, 54, 61, 53, 44, 67, 58, 145, 65, 77, 64, 62, 55, 89, 93, 67, 58, 75, 64, 90, 67, 79, 56, 61, 85, 63, 65, 77, 47, 56, 47, 59, 48, 72, 89, 61, 75, 80, 67, 59, 54, 74, 71, 49, 77, 100, 63, 65, 59, 52, 71, 60, 98, 74, 43, 51, 69, 68, 63, 64, 78, 81, 69, 90, 85, 76, 54, 68, 90, 52, 59, 41, 63, 41, 90, 65, 59, 75, 50, 52, 76, 61, 52, 34, 50, 67, 60, 51, 70, 62, 57, 87, 65, 51, 67, 50, 56, 63, 44, 56, 46, 62, 38, 46, 52, 49, 103, 83, 63, 67, 80, 88, 61, 63, 71, 124, 48, 55, 56, 53, 61, 78, 55, 90, 61, 84, 59, 48, 43, 39, 63, 57, 75, 62, 70, 77, 54, 66, 84, 90, 87, 65, 56, 73, 72, 54, 52, 110, 56, 56, 64, 67, 67, 78, 53, 59, 65, 81, 66, 73, 57, 64, 98, 63, 116, 63, 54, 55, 64, 58, 60, 69, 69, 71, 117, 54, 55, 96, 58, 82, 73, 100, 80, 52, 69, 49, 73, 67, 76, 61, 66, 164, 66, 58, 50, 79, 81, 60, 58, 67, 58, 66, 55, 61, 53, 65, 45, 69, 57, 65, 70, 49, 57, 87, 53, 56, 63, 69, 77, 61, 64, 68, 73, 53, 46, 53, 52, 75, 80, 80, 59, 76, 57, 73, 44, 65, 59, 82, 84, 74, 56, 61, 64, 48, 53, 94, 55, 47, 75, 71, 81, 73, 69, 115, 58, 46, 89, 67, 65, 70, 57, 66, 46, 72, 62, 72, 84, 85, 69, 50, 76, 112, 104, 62, 56, 49, 99, 68, 76, 63, 64, 55, 68, 104, 51, 56, 61, 50, 65, 69, 62, 62, 66, 64, 66, 57, 93, 44, 109, 85, 61, 109, 46, 62, 76, 78, 56, 74, 50, 51, 71, 56, 51, 75, 60, 68, 75, 98, 79, 107, 57, 70, 57, 52, 62, 118, 70, 59, 46, 74, 64, 71, 52, 51, 67, 66, 60, 70, 57, 73, 80, 81, 76, 68, 55, 87, 77, 56, 71, 86, 59, 60, 72, 53, 63, 69, 80, 67, 85, 82, 52, 78, 58, 60, 74, 64, 52, 66, 57, 74, 67, 53, 62, 75, 71, 57, 60, 54, 55, 63, 61, 67, 68, 77, 61, 48, 57, 54, 82, 73, 37, 81, 63, 53, 76, 63, 47, 72, 57, 65, 72, 44, 33, 75, 67, 52, 80, 66, 70, 75, 57, 70, 103, 69, 61, 58, 58, 62, 49, 73, 82, 50, 56, 60, 118, 63, 54, 85, 57, 76, 65, 59, 58, 64, 53, 68, 61, 48, 48, 69, 76, 70, 68, 65, 62, 58, 59, 50, 78, 72, 78, 77, 62, 56, 74, 67, 64, 80, 66, 54, 64, 55, 50, 60, 58, 78, 71, 76, 56, 57, 65, 103, 82, 93, 52, 57, 66, 66, 63, 56, 60, 76, 48, 48, 87, 50, 56, 61, 52, 58, 51, 88, 67, 66, 64, 68, 82, 67, 61, 75, 57, 54, 70, 61, 38, 54, 53, 67, 72, 61, 79, 47, 100, 48, 58, 54, 57, 63, 102, 53, 62, 68, 63, 76, 86, 62, 59, 58, 37, 50, 67, 52, 62, 95, 119, 43, 55, 56, 59, 54, 72, 85, 52, 48, 64, 63, 61, 62, 94, 71, 61, 86, 75, 77, 71, 72, 88, 84, 59, 69, 54, 69, 76, 68, 71, 57, 46, 72, 55, 62, 59, 75, 62, 89, 77, 80, 77, 67, 48, 64, 76, 56, 80, 59, 89, 42, 57, 50, 80, 55, 76, 55, 68, 78, 67, 71, 70, 52, 79, 77, 61, 57, 70, 97, 58, 94, 78, 66, 70, 47, 66, 52, 72, 87, 70, 67, 62, 59, 73, 49, 56, 61, 178, 49, 47, 66, 73, 49, 67, 59, 63, 49, 49, 66, 72, 65, 69, 69, 62, 87, 70, 84, 48, 63, 62, 64, 58, 69, 47, 81, 55, 60, 57, 66, 57, 67, 59, 66, 81, 63, 55, 58, 44, 64, 54, 53, 71, 72, 50, 34, 60, 59, 65, 54, 47, 71, 51, 71, 74, 99, 69, 49, 81, 48, 67, 60, 75, 65, 65, 76, 81, 85, 64, 65, 65, 61, 78, 83, 72, 58, 86, 58, 68, 64, 59, 87, 65, 61, 64, 65, 55, 78, 58, 63, 75, 75, 58, 47, 72, 69, 66, 69, 57, 85, 69, 57, 63, 65, 71, 41, 57, 58, 54, 40, 68, 90, 65, 50, 59, 56, 69, 74, 77, 71, 64, 73, 84, 97, 87, 59, 64, 67, 110, 53, 44, 69, 62, 72, 91, 72, 55, 66, 65, 45, 61, 63, 69, 51, 68, 68, 47, 59, 72, 60, 64, 66, 60, 82, 56, 74, 69, 70, 49, 55, 67, 55, 85, 72, 95, 75, 94, 80, 67, 74, 58, 74, 65, 51, 77, 66, 66, 69, 70, 37, 82, 56, 60, 44, 60, 54, 61, 60, 73, 78, 54, 50, 74, 45, 67, 82, 39, 51, 51, 56, 61, 69, 72, 98, 62, 69, 68, 70, 59, 64, 124, 78, 58, 43, 76, 75, 46, 59, 68, 63, 83, 58, 37, 68, 59, 49, 77, 46, 64, 55, 72, 63, 71, 57, 67, 58, 62, 54, 59, 44, 57, 93, 57, 49, 56, 44, 65, 50, 78, 47, 46, 67, 45, 88, 65, 63, 55, 81, 39, 70, 78, 60, 60, 77, 68, 69, 66, 73, 57, 65, 65, 56, 68, 59, 114, 62, 105, 63, 82, 58, 67, 57, 88, 57, 69, 81, 59, 48, 57, 62, 65, 79, 64, 51, 69, 108, 63, 61, 52, 68, 69, 62, 66, 60, 55, 57, 68, 56, 54, 61, 57, 72, 69, 60, 70, 91, 66, 81, 88, 83, 101, 67, 74, 66, 57, 80, 73, 47, 68, 56, 52, 91, 68, 65, 63, 77, 67, 65, 70, 63, 66, 75, 64, 77, 94, 50, 69, 62, 69, 76, 69, 52, 68, 59, 64, 61, 45, 78, 45, 122, 66, 72, 64, 73, 53, 71, 80, 48, 63, 75, 50, 77, 60, 54, 66, 68, 53, 69, 58, 75, 65, 79, 69, 34, 49, 81, 68, 75, 64, 64, 75, 85, 72, 67, 58, 63, 72, 65, 79, 71, 83, 65, 56, 77, 76, 56, 65, 90, 51, 53, 93, 60, 62, 76, 61, 57, 51, 61, 70, 65, 57, 78, 63, 69, 69, 67, 82, 72, 76, 81, 88, 82, 77, 67, 38, 66, 81, 58, 55, 31, 76, 60, 64, 59, 53, 62, 85, 51, 72, 84, 60, 60, 68, 62, 65, 65, 63, 69, 92, 83, 54, 72, 58, 61, 58, 65, 64, 72, 58, 73, 79, 98, 60, 53, 72, 84, 47, 55, 53, 53, 56, 91, 56, 50, 68, 67, 86, 64, 39, 53, 57, 130, 41, 81, 66, 62, 63, 75, 65, 51, 61, 49, 54, 64, 69, 83, 75, 80, 70, 66, 61, 72, 87, 58, 56, 61, 95, 47, 87, 63, 88, 61, 42, 61, 65, 67, 50, 56, 84, 60, 42, 68, 50, 60, 62, 58, 142, 85, 62, 59, 69, 64, 79, 75, 56, 71, 54, 54, 75, 81, 56, 75, 43, 56, 83, 54, 80, 76, 75, 61, 65, 56, 64, 71, 57, 63, 52, 81, 68, 59, 59, 46, 127, 76, 69, 103, 52, 43, 68, 58, 62, 64, 67, 60, 60, 70, 37, 64, 44, 61, 74, 70, 40, 101, 65, 55, 89, 54, 63, 48, 52, 66, 69, 76, 61, 63, 56, 77, 46, 69, 68, 64, 84, 58, 59, 60, 64, 69, 78, 81, 47, 49, 56, 71, 72, 59, 65, 63, 73, 65, 79, 71, 60, 61, 73, 61, 49, 52, 50, 64, 78, 59, 66, 56, 73, 69, 73, 65, 38, 67, 52, 57, 67, 65, 67, 70, 66, 98, 71, 54, 71, 68, 64, 40, 88, 61, 64, 51, 53, 60, 64, 41, 54, 63, 78, 88, 75, 57, 76, 66, 75, 62, 91, 59, 59, 73, 45, 96, 72, 65, 65, 86, 52, 66, 51, 80, 56, 55, 31, 81, 88, 43, 43, 50, 65, 35, 64, 63, 53, 50, 61, 90, 74, 45, 62, 51, 43, 36, 58, 73, 66, 58, 41, 55, 79, 52, 59, 65, 57, 57, 50, 41, 54, 126, 60, 52, 54, 69, 71, 48, 53, 51, 67, 55, 84, 68, 69, 74, 62, 121, 70, 79, 59, 62, 56, 62, 74, 48, 37, 52, 66, 57, 58, 61, 91, 59, 62, 70, 47, 62, 65, 71, 63, 65, 44, 63, 56, 111, 55, 77, 45, 57, 47, 68, 88, 52, 87, 88, 59, 49, 62, 67, 103, 82, 69, 75, 65, 45, 69, 60, 46, 78, 80, 46, 82, 55, 116, 66, 81, 66, 53, 44, 58, 64, 50, 67, 51, 75, 63, 31, 66, 65, 66, 53, 75, 46, 73, 62, 76, 86, 67, 60, 83, 73, 117, 61, 63, 58, 57, 71, 88, 57, 93, 76, 58, 74, 57, 54, 57, 87, 69, 43, 74, 54, 55, 76, 57, 58, 52, 56, 62, 67, 86, 61, 82, 75, 52, 62, 67, 76, 71, 59, 39, 48, 74, 50, 53, 40, 82, 44, 77, 73, 61, 72, 48, 72, 62, 67, 49, 73, 119, 67, 53, 66, 99, 82, 85, 71, 50, 68, 59, 43, 70, 89, 41, 75, 126, 89, 109, 50, 66, 59, 95, 49, 69, 47, 93, 56, 68, 36, 56, 49, 57, 63, 52, 64, 71, 59, 96, 51, 64, 47, 79, 82, 46, 62, 67, 42, 62, 58, 58, 51, 97, 66, 44, 55, 72, 58, 56, 52, 52, 49, 55, 60, 68, 69, 50, 74, 64, 50, 67, 65, 61, 81, 52, 55, 49, 52, 79, 69, 140, 83, 81, 53, 49, 65, 60, 56, 68, 62, 59, 107, 83, 62, 55, 56, 89, 46, 90, 58, 48, 60, 57, 59, 57, 64, 97, 74, 52, 113, 42, 44, 66, 57, 86, 45, 88, 68, 62, 73, 63, 42, 57, 66, 79, 102, 61, 63, 55, 56, 65, 72, 59, 68, 52, 53, 48, 81, 54, 72, 64, 85, 49, 83, 63, 67, 67, 79, 91, 64, 63, 53, 89, 65, 67, 61, 66, 68, 74, 72, 89, 68, 79, 53, 51, 97, 52, 56, 78, 70, 56, 57, 107, 82, 41, 84, 76, 77, 57, 82, 70, 44, 54, 85, 62, 76, 63, 55, 71, 46, 54, 76, 67, 78, 82, 59, 66, 67, 80, 77, 60, 39, 74, 49, 61, 51, 107, 53, 58, 79, 81, 49, 67, 57, 83, 59, 57, 67, 77, 55, 63, 62, 66, 83, 91, 63, 89, 70, 60, 52, 71, 105, 73, 54, 73, 73, 70, 52, 66, 67, 66, 70, 50, 73, 55, 71, 51, 56, 39, 52, 42, 51, 67, 66, 69, 54, 81, 67, 72, 57, 51, 58, 74, 55, 58, 54, 69, 96, 72, 69, 62, 81, 79, 53, 74, 56, 51, 63, 97, 61, 78, 74, 50, 57, 35, 68, 39, 92, 89, 46, 58, 48, 46, 69, 96, 68, 60, 58, 74, 29, 40, 72, 59, 70, 63, 53, 58, 62, 67, 84, 61, 68, 81, 56, 85, 60, 62, 80, 54, 60, 61, 69, 77, 51, 61, 72, 51, 91, 58, 86, 48, 103, 69, 53, 74, 84, 72, 110, 59, 48, 49, 58, 54, 52, 50, 62, 48, 59, 57, 62, 59, 77, 56, 65, 80, 71, 67, 61, 112, 121, 58, 65, 84, 69, 52, 54, 41, 71, 67, 55, 68, 74, 54, 106, 80, 90, 65, 56, 126, 67, 60, 63, 60, 72, 62, 71, 69, 110, 73, 71, 78, 83, 68, 74, 70, 52, 83, 50, 89, 51, 29, 117, 96, 71, 53, 72, 71, 62, 54, 69, 81, 62, 50, 61, 46, 83, 61, 90, 61, 50, 74, 62, 43, 60, 58, 60, 70, 45, 81, 50, 62, 59, 68, 57, 61, 70, 66, 52, 71, 55, 78, 85, 56, 70, 71, 90, 72, 73, 99, 72, 47, 57, 46, 82, 50, 73, 60, 92, 69, 75, 55, 81, 74, 74, 63, 103, 75, 65, 50, 58, 57, 62, 82, 48, 42, 90, 59, 61, 64, 57, 56, 73, 102, 50, 81, 59, 43, 75, 72, 65, 51, 54, 52, 54, 88, 54, 72, 56, 44, 91, 69, 60, 57, 59, 81, 89, 44, 53, 66, 66, 63, 91, 85, 81, 65, 55, 59, 56, 60, 74, 56, 56, 82, 65, 78, 61, 60, 55, 66, 62, 100, 67, 66, 54, 59, 47, 51, 50, 76, 63, 60, 97, 59, 57, 85, 40, 70, 97, 70, 67, 136, 54, 73, 79, 52, 81, 48, 46, 62, 81, 53, 49, 82, 41, 58, 63, 68, 88, 69, 61, 61, 159, 117, 48, 56, 62, 60, 57, 66, 85, 53, 62, 93, 129, 67, 70, 98, 48, 65, 52, 75, 41, 102, 37, 69, 53, 49, 89, 57, 68, 70, 51, 46, 63, 83, 63, 37, 68, 84, 66, 65, 55, 53, 60, 76, 59, 91, 44, 39, 65, 63, 60, 56, 37, 60, 118, 70, 44, 42, 53, 62, 53, 90, 63, 64, 104, 52, 57, 62, 65, 60, 49, 91, 66, 93, 73, 56, 83, 70, 76, 66, 77, 70, 94, 67, 70, 62, 86, 99, 63, 53, 65, 86, 85, 48, 78, 102, 51, 77, 73, 85, 89, 74, 41, 54, 57, 81, 66, 60, 97, 58, 73, 54, 59, 68, 53, 51, 78, 63, 41, 97, 63, 86, 56, 55, 64, 48, 54, 114, 61, 96, 70, 60, 52, 80, 72, 43, 86, 49, 71, 55, 74, 50, 58, 63, 107, 49, 92, 62, 72, 55, 57, 64, 46, 70, 95, 65, 65, 50, 89, 55, 74, 68, 55, 65, 69, 70, 47, 51, 57, 65, 66, 86, 65, 82, 67, 70, 75, 79, 67, 78, 61, 48, 64, 81, 68, 56, 93, 51, 68, 57, 50, 79, 77, 65, 43, 85, 93, 76, 64, 67, 66, 56, 78, 77, 56, 51, 58, 82, 56, 64, 55, 65, 66, 83, 53, 60, 61, 68, 96, 81, 72, 79, 66, 71, 72, 49, 70, 58, 72, 86, 72, 51, 52, 64, 57, 52, 47, 74, 58, 78, 41, 62, 67, 61, 60, 77, 56, 71, 54, 53, 63, 58, 55, 53, 100, 44, 80, 82, 59, 77, 55, 75, 50, 59, 81, 40, 62, 48, 60, 47, 56, 56, 80, 71, 64, 87, 38, 48, 46, 56, 55, 52, 98, 68, 68, 65, 57, 75, 63, 47, 39, 63, 53, 67, 60, 83, 61, 82, 63, 77, 59, 48, 61, 51, 60, 83, 51, 113, 61, 79, 51, 68, 66, 98, 61, 63, 52, 102, 72, 49, 51, 74, 52, 67, 48, 75, 65, 60, 50, 78, 62, 58, 66, 77, 71, 75, 55, 92, 52, 73, 58, 61, 66, 69, 78, 55, 54, 75, 72, 71, 55, 69, 53, 54, 50, 68, 63, 61, 73, 53, 67, 85, 66, 48, 69, 49, 66, 70, 51, 70, 59, 40, 66, 78, 102, 68, 103, 63, 77, 43, 83, 74, 69, 81, 51, 63, 51, 59, 68, 75, 66, 58, 51, 73, 66, 65, 97, 77, 66, 74, 56, 68, 50, 76, 71, 53, 67, 58, 76, 82, 75, 63, 58, 96, 90, 83, 50, 129, 57, 37, 77, 47, 57, 63, 71, 61, 39, 69, 62, 55, 68, 48, 84, 47, 102, 64, 59, 79, 63, 50, 72, 77, 71, 71, 48, 64, 61, 64, 55, 64, 63, 60, 41, 63, 74, 43, 76, 75, 66, 70, 53, 65, 65, 81, 74, 89, 55, 64, 70, 64, 65, 71, 61, 44, 70, 41, 82, 65, 98, 90, 67, 59, 57, 54, 52, 61, 69, 46, 57, 73, 95, 62, 76, 51, 50, 66, 62, 46, 61, 76, 73, 77, 50, 61, 54, 70, 70, 76, 85, 66, 68, 88, 64, 48, 58, 57, 53, 58, 67, 47, 96, 88, 50, 45, 72, 60, 74, 66, 66, 66, 65, 77, 63, 78, 83, 59, 42, 89, 75, 62, 54, 62, 72, 92, 92, 78, 44, 52, 36, 55, 61, 51, 47, 65, 72, 63, 40, 73, 62, 61, 73, 68, 57, 88, 61, 49, 59, 53, 90, 43, 85, 79, 52, 65, 56, 60, 53, 57, 66, 43, 64, 63, 83, 88, 78, 70, 71, 55, 65, 60, 70, 65, 61, 56, 55, 114, 64, 63, 74, 72, 66, 53, 73, 69, 90, 55, 51, 63, 64, 83, 68, 40, 76, 75, 74, 52, 70, 56, 74, 72, 53, 60, 68, 68, 60, 102, 47, 64, 68, 80, 57, 63, 67, 72, 57, 85, 50, 57, 60, 75, 49, 67, 86, 56, 66, 53, 46, 88, 70, 62, 70, 58, 80, 50, 85, 66, 61, 51, 88, 62, 51, 64, 50, 60, 45, 53, 61, 93, 67, 60, 77, 59, 69, 60, 64, 49, 60, 55, 55, 67, 60, 62, 58, 74, 73, 63, 78, 61, 64, 94, 73, 102, 58, 55, 64, 77, 53, 52, 53, 91, 64, 65, 67, 54, 61, 52, 52, 73, 65, 58, 68, 86, 68, 60, 57, 52, 62, 60, 44, 86, 66, 73, 54, 69, 54, 77, 86, 64, 93, 60, 64, 62, 49, 72, 66, 59, 55, 94, 60, 68, 65, 78, 65, 65, 94, 59, 59, 67, 68, 63, 44, 58, 45, 70, 78, 58, 67, 47, 85, 96, 62, 67, 71, 69, 41, 70, 63, 96, 51, 70, 91, 80, 38, 58, 64, 88, 66, 56, 78, 78, 72, 46, 81, 53, 70, 61, 67, 65, 74, 67, 57, 65, 57, 55, 88, 42, 59, 102, 53, 96, 67, 77, 129, 82, 78, 56, 48, 65, 72, 76, 65, 71, 58, 64, 63, 55, 64, 76, 60, 56, 73, 65, 69, 55, 61, 58, 59, 67, 85, 67, 62, 62, 51, 71, 75, 73, 61, 72, 72, 81, 57, 81, 83, 60, 59, 70, 73, 70, 73, 62, 52, 55, 56, 64, 71, 59, 88, 119, 60, 63, 68, 65, 59, 54, 79, 79, 56, 55, 76, 99, 78, 60, 59, 108, 59, 77, 74, 75, 62, 59, 71, 54, 62, 73, 52, 60, 62, 68, 53, 55, 53, 74, 78, 74, 67, 63, 80, 62, 67, 80, 65, 48, 65, 66, 87, 65, 66, 63, 44, 76, 77, 90, 60, 66, 66, 60, 48, 64, 61, 54, 54, 60, 53, 215, 73, 74, 66, 85, 66, 60, 71, 76, 57, 69, 61, 63, 83, 54, 81, 90, 66, 64, 69, 79, 67, 81, 51, 139, 70, 69, 74, 55, 59, 64, 59, 61, 59, 54, 69, 53, 68, 65, 54, 73, 80, 65, 56, 73, 72, 66, 67, 46, 62, 75, 84, 62, 62, 63, 49, 57, 63, 58, 53, 87, 77, 64, 61, 89, 56, 43, 62, 55, 43, 79, 57, 54, 65, 44, 50, 63, 45, 77, 51, 55, 90, 74, 62, 76, 57, 64, 67, 44, 60, 49, 62, 82, 63, 69, 80, 76, 63, 63, 55, 58, 60, 51, 53, 89, 46, 52, 73, 47, 66, 65, 59, 69, 77, 69, 61, 60, 71, 57, 65, 51, 96, 59, 67, 51, 66, 58, 57, 71, 57, 58, 55, 95, 52, 72, 83, 58, 36, 56, 46, 65, 60, 81, 79, 69, 59, 68, 67, 61, 57, 64, 81, 69, 60, 66, 51, 56, 63, 65, 64, 103, 67, 56, 70, 62, 51, 76, 69, 72, 50, 60, 65, 73, 103, 73, 70, 46, 71, 49, 56, 62, 68, 53, 54, 55, 66, 68, 72, 49, 79, 71, 106, 46, 73, 91, 64, 68, 60, 46, 61, 65, 79, 68, 63, 74, 70, 57, 80, 71, 76, 62, 67, 66, 66, 136, 50, 70, 77, 67, 78, 82, 55, 114, 95, 71, 62, 61, 85, 73, 87, 61, 96, 60, 73, 68, 58, 72, 62, 68, 53, 68, 69, 106, 97, 66, 65, 71, 57, 65, 73, 48, 81, 60, 67, 65, 73, 56, 87, 57, 50, 61, 80, 88, 59, 81, 57, 64, 73, 59, 83, 79, 57, 73, 44, 64, 68, 50, 81, 47, 96, 80, 62, 47, 72, 59, 83, 83, 57, 55, 68, 61, 51, 70, 46, 62, 77, 65, 87, 57, 46, 69, 53, 71, 85, 54, 61, 65, 63, 67, 61, 78, 68, 68, 72, 57, 60, 100, 73, 58, 74, 49, 55, 55, 80, 65, 59, 58, 62, 61, 70, 55, 66, 52, 69, 65, 56, 77, 77, 85, 51, 80, 61, 60, 81, 55, 77, 56, 71, 87, 63, 56, 67, 56, 64, 63, 45, 69, 81, 72, 53, 55, 77, 60, 88, 82, 55, 63, 63, 76, 60, 72, 58, 88, 62, 68, 63, 62, 64, 80, 84, 64, 61, 55, 72, 75, 64, 87, 56, 69, 77, 60, 59, 67, 49, 68, 62, 53, 71, 77, 63, 51, 101, 63, 79, 60, 54, 79, 70, 50, 74, 80, 69, 46, 63, 65, 55, 63, 72, 54, 84, 75, 53, 52, 63, 69, 62, 116, 53, 69, 60, 84, 49, 73, 62, 99, 68, 82, 53, 64, 77, 73, 63, 86, 57, 74, 58, 84, 70, 55, 71, 72, 65, 105, 65, 63, 51, 45, 69, 59, 53, 62, 84, 73, 51, 51, 66, 84, 65, 66, 53, 65, 72, 61, 66, 59, 59, 59, 75, 72, 59, 53, 63, 65, 54, 66, 67, 64, 49, 80, 66, 75, 71, 70, 81, 80, 78, 90, 56, 67, 73, 62, 77, 64, 67, 78, 48, 56, 69, 63, 76, 74, 43, 57, 49, 52, 43, 62, 89, 71, 60, 94, 58, 59, 88, 113, 58, 62, 59, 59, 75, 64, 44, 68, 53, 72, 52, 74, 82, 70, 73, 89, 75, 87, 57, 61, 48, 64, 69, 67, 49, 71, 69, 105, 61, 73, 65, 63, 60, 64, 68, 70, 56, 64, 76, 98, 35, 73, 64, 55, 52, 71, 74, 56, 74, 58, 75, 47, 57, 53, 80, 55, 54, 60, 53, 78, 64, 65, 51, 51, 62, 65, 59, 59, 49, 73, 62, 71, 61, 91, 68, 77, 59, 60, 65, 142, 56, 84, 58, 59, 49, 67, 77, 67, 64, 85, 58, 67, 64, 68, 58, 71, 68, 66, 80, 73, 67, 75, 61, 63, 69, 65, 54, 98, 67, 66, 62, 71, 50, 62, 62, 85, 58, 73, 83, 63, 89, 65, 81, 48, 115, 70, 51, 59, 64, 62, 78, 98, 51, 80, 64, 50, 55, 57, 64, 84, 56, 68, 60, 76, 67, 64, 68, 66, 66, 61, 56, 60, 61, 59, 57, 102, 53, 65, 53, 67, 76, 82, 64, 113, 63, 67, 65, 74, 52, 79, 65, 68, 62, 75, 59, 67, 81, 76, 61, 70, 66, 52, 80, 62, 63, 73, 54, 66, 59, 49, 74, 65, 80, 63, 61, 77, 58, 56, 62, 76, 63, 65, 60, 64, 61, 82, 88, 59, 55, 57, 61, 91, 51, 52, 55, 74, 58, 57, 106, 64, 97, 54, 65, 68, 95, 58, 72, 56, 47, 85, 78, 58, 62, 65, 73, 70, 55, 59, 51, 59, 53, 49, 69, 92, 56, 83, 60, 78, 53, 63, 63, 55, 81, 71, 58, 71, 57, 63, 53, 57, 80, 54, 90, 57, 64, 53, 52, 48, 69, 56, 92, 65, 73, 63, 64, 67, 70, 69, 57, 51, 66, 42, 54, 66, 70, 66, 61, 72, 78, 72, 132, 86, 61, 76, 54, 63, 63, 76, 64, 56, 51, 54, 62, 57, 68, 71, 72, 61, 71, 65, 57, 67, 60, 62, 66, 63, 63, 55, 52, 72, 55, 71, 62, 71, 91, 61, 51, 71, 60, 64, 69, 53, 68, 59, 60, 81, 57, 79, 71, 68, 60, 54, 72, 64, 62, 74, 85, 70, 66, 51, 71, 48, 63, 66, 105, 71, 86, 61, 100, 62, 70, 76, 66, 69, 66, 52, 61, 57, 60, 51, 84, 67, 52, 66, 63, 95, 58, 51, 72, 64, 48, 75, 53, 53, 111, 50, 63, 65, 75, 60, 66, 65, 84, 58, 66, 66, 70, 99, 47, 55, 51, 57, 55, 71, 70, 61, 64, 54, 81, 57, 80, 57, 76, 71, 58, 92, 71, 64, 50, 59, 63, 76, 54, 72, 49, 58, 55, 64, 75, 70, 72, 82, 82, 56, 73, 85, 59, 65, 45, 64, 62, 70, 55, 65, 56, 66, 69, 70, 114, 70, 53, 70, 84, 82, 49, 71, 93, 74, 55, 65, 81, 48, 55, 55, 70, 71, 62, 58, 115, 59, 61, 64, 59, 55, 75, 67, 64, 56, 60, 58, 57, 59, 67, 56, 78, 44, 66, 76, 47, 40, 69, 89, 75, 67, 85, 88, 57, 99, 72, 63, 57, 56, 49, 62, 53, 68, 73, 77, 57, 78, 90, 78, 97, 80, 43, 53, 63, 70, 53, 57, 71, 91, 65, 66, 44, 63, 66, 55, 90, 67, 58, 70, 57, 55, 54, 72, 61, 53, 69, 72, 59, 59, 84, 60, 82, 76, 78, 76, 57, 68, 60, 63, 52, 72, 65, 60, 65, 68, 69, 75, 55, 60, 66, 71, 70, 60, 82, 69, 71, 53, 49, 79, 56, 56, 57, 66, 72, 60, 73, 77, 60, 70, 102, 66, 62, 72, 63, 45, 84, 83, 62, 72, 75, 65, 63, 64, 70, 57, 54, 57, 70, 54, 67, 50, 63, 55, 75, 59, 66, 58, 60, 58, 55, 68, 64, 63, 56, 55, 62, 55, 58, 99, 70, 47, 60, 58, 56, 57, 36, 65, 50, 71, 64, 65, 62, 70, 64, 56, 60, 68, 91, 59, 81, 67, 62, 61, 64, 69, 65, 88, 73, 75, 68, 55, 82, 57, 60, 62, 70, 63, 50, 100, 73, 90, 63, 56, 52, 70, 76, 58, 54, 58, 69, 61, 69, 50, 105, 74, 71, 80, 54, 80, 72, 69, 71, 75, 60, 71, 61, 55, 73, 68, 56, 63, 72, 61, 62, 56, 58, 76, 66, 63, 64, 60, 66, 52, 69, 52, 74, 53, 57, 65, 62, 57, 68, 42, 69, 77, 59, 68, 57, 62, 61, 51, 59, 70, 67, 69, 50, 94, 118, 59, 68, 56, 79, 53, 52, 71, 80, 72, 58, 73, 57, 59, 61, 60, 66, 80, 55, 79, 76, 76, 82, 64, 56, 66, 75, 64, 52, 72, 58, 61, 61, 55, 62, 58, 54, 53, 56, 54, 57, 64, 66, 56, 66, 125, 57, 71, 54, 47, 73, 73, 73, 75, 69, 58, 48, 59, 73, 47, 69, 70, 79, 64, 59, 73, 74, 54, 66, 61, 43, 74, 36, 57, 71, 55, 83, 99, 77, 68, 64, 76, 73, 57, 76, 54, 79, 61, 94, 87, 79, 79, 75, 59, 55, 79, 94, 59, 63, 57, 77, 75, 123, 70, 93, 90, 42, 49, 104, 59, 53, 89, 50, 82, 59, 78, 40, 51, 84, 43, 47, 63, 63, 55, 70, 65, 59, 70, 68, 75, 37, 64, 80, 55, 80, 48, 73, 84, 69, 64, 65, 97, 50, 48, 72, 75, 77, 62, 44, 49, 55, 100, 41, 65, 58, 62, 41, 63, 66, 63, 58, 59, 65, 65, 69, 52, 63, 70, 45, 69, 51, 65, 54, 45, 50, 59, 71, 56, 42, 42, 76, 62, 45, 58, 63, 47, 56, 76, 84, 55, 60, 75, 73, 43, 67, 101, 59, 51, 88, 56, 61, 68, 76, 54, 70, 67, 46, 40, 66, 55, 81, 95, 84, 70, 50, 65, 77, 71, 52, 73, 82, 68, 66, 96, 89, 62, 51, 80, 44, 66, 56, 47, 67, 46, 68, 72, 91, 51, 43, 68, 43, 71, 70, 53, 60, 81, 62, 73, 50, 66, 51, 65, 49, 83, 70, 69, 85, 69, 54, 67, 65, 63, 69, 51, 77, 76, 56, 54, 59, 56, 78, 90, 72, 59, 63, 51, 81, 67, 80, 79, 43, 94, 65, 76, 61, 64, 54, 80, 52, 58, 68, 83, 75, 59, 72, 95, 62, 78, 78, 70, 56, 79, 72, 62, 77, 74, 71, 66, 71, 70, 58, 50, 57, 67, 79, 75, 82, 64, 67, 63, 108, 86, 79, 67, 62, 76, 69, 51, 55, 66, 76, 71, 71, 59, 65, 72, 61, 59, 60, 75, 74, 62, 69, 64, 33, 109, 63, 61, 63, 62, 40, 69, 65, 55, 65, 47, 78, 71, 113, 40, 78, 96, 63, 53, 69, 93, 74, 90, 64, 66, 58, 68, 68, 54, 68, 65, 71, 61, 49, 44, 57, 65, 54, 69, 66, 57, 69, 76, 55, 78, 74, 64, 54, 56, 53, 65, 82, 63, 70, 72, 53, 151, 75, 57, 59, 59, 64, 48, 58, 79, 50, 62, 49, 69, 69, 60, 47, 76, 62, 38, 71, 72, 57, 51, 81, 49, 105, 56, 62, 56, 76, 63, 74, 65, 72, 53, 63, 77, 76, 65, 90, 88, 67, 70, 60, 44, 93, 66, 85, 80, 82, 59, 65, 57, 63, 53, 34, 50, 80, 74, 50, 83, 70, 63, 78, 41, 63, 75, 48, 67, 55, 64, 70, 66, 81, 62, 63, 46, 50, 82, 72, 64, 64, 66, 77, 81, 64, 81, 81, 60, 66, 78, 67, 72, 60, 48, 86, 79, 67, 56, 65, 58, 43, 74, 98, 42, 94, 63, 84, 60, 49, 122, 68, 72, 70, 79, 60, 77, 70, 48, 85, 65, 59, 61, 61, 57, 80, 90, 48, 87, 44, 47, 78, 52, 60, 77, 50, 72, 68, 87, 49, 74, 37, 69, 53, 53, 45, 58, 74, 50, 81, 73, 64, 63, 74, 59, 84, 62, 95, 67, 93, 73, 93, 69, 74, 48, 56, 50, 58, 77, 70, 60, 61, 62, 56, 59, 56, 53, 65, 41, 81, 108, 77, 58, 78, 59, 65, 62, 54, 53, 70, 76, 53, 91, 59, 55, 66, 61, 54, 60, 60, 69, 54, 72, 78, 67, 87, 53, 59, 58, 67, 67, 59, 70, 53, 53, 53, 62, 67, 63, 76, 56, 67, 92, 71, 63, 68, 77, 86, 55, 55, 71, 83, 85, 56, 55, 53, 84, 60, 60, 53, 65, 62, 53, 60, 94, 70, 74, 60, 46, 71, 67, 57, 72, 64, 69, 56, 58, 61, 44, 105, 64, 63, 65, 65, 66, 61, 38, 70, 67, 48, 55, 45, 70, 77, 46, 68, 58, 61, 60, 92, 46, 68, 79, 62, 41, 76, 69, 49, 59, 68, 56, 56, 53, 72, 64, 64, 78, 88, 69, 50, 63, 57, 65, 87, 63, 37, 83, 47, 82, 59, 75, 76, 76, 55, 78, 84, 84, 81, 56, 80, 71, 57, 69, 80, 75, 74, 107, 72, 58, 110, 57, 92, 70, 60, 64, 67, 64, 62, 68, 79, 58, 61, 69, 49, 84, 64, 55, 52, 51, 46, 60, 55, 71, 99, 48, 50, 63, 58, 117, 50, 49, 54, 73, 65, 62, 57, 76, 69, 54, 79, 77, 84, 46, 74, 74, 57, 57, 68, 55, 50, 68, 52, 42, 58, 75, 66, 51, 71, 75, 63, 71, 55, 50, 61, 80, 72, 72, 76, 52, 76, 79, 60, 53, 57, 50, 84, 66, 66, 81, 60, 48, 74, 79, 99, 53, 108, 66, 79, 54, 55, 74, 61, 68, 67, 70, 46, 65, 65, 68, 80, 62, 56, 61, 67, 87, 83, 67, 69, 55, 51, 49, 74, 56, 61, 83, 63, 71, 47, 64, 52, 50, 67, 71, 54, 68, 61, 57, 63, 66, 54, 72, 69, 66, 71, 62, 68, 76, 54, 54, 73, 60, 72, 46, 100, 63, 67, 50, 77, 83, 69, 70, 62, 52, 59, 62, 54, 74, 56, 53, 75, 64, 54, 60, 93, 58, 77, 75, 62, 36, 77, 47, 44, 61, 59, 62, 58, 58, 67, 69, 64, 80, 80, 69, 81, 78, 76, 67, 81, 62, 43, 77, 66, 74, 57, 67, 77, 70, 65, 68, 70, 87, 71, 57, 78, 67, 66, 70, 80, 68, 76, 63, 61, 66, 45, 54, 64, 80, 66, 86, 74, 62, 84, 51, 61, 57, 51, 66, 72, 70, 60, 49, 58, 50, 70, 58, 61, 57, 104, 31, 79, 48, 84, 95, 63, 44, 67, 78, 58, 74, 71, 65, 70, 67, 84, 64, 67, 46, 51, 63, 49, 63, 62, 74, 59, 75, 64, 83, 59, 66, 65, 74, 76, 57, 52, 84, 74, 65, 71, 75, 55, 103, 63, 57, 86, 79, 78, 45, 74, 64, 45, 88, 50, 57, 72, 58, 72, 53, 60, 105, 52, 54, 73, 62, 74, 58, 81, 44, 55, 65, 74, 76, 66, 54, 61, 93, 77, 78, 82, 42, 60, 59, 58, 70, 87, 43, 68, 65, 39, 69, 90, 76, 57, 81, 71, 56, 69, 74, 116, 76, 83, 75, 70, 71, 56, 51, 72, 90, 69, 75, 77, 81, 53, 70, 106, 73, 75, 71, 61, 78, 53, 49, 53, 56, 78, 60, 72, 50, 64, 57, 65, 74, 56, 60, 68, 56, 51, 61, 54, 60, 65, 111, 62, 61, 77, 102, 81, 51, 65, 67, 78, 74, 88, 73, 61, 74, 96, 69, 38, 52, 68, 93, 53, 59, 56, 86, 66, 68, 47, 58, 59, 57, 94, 76, 58, 103, 76, 72, 54, 85, 54, 94, 55, 40, 79, 48, 40, 45, 65, 85, 44, 75, 50, 46, 70, 65, 51, 52, 64, 63, 63, 47, 90, 59, 53, 73, 74, 85, 51, 52, 90, 100, 70, 54, 59, 49, 64, 65, 51, 95, 70, 52, 49, 51, 43, 58, 63, 77, 56, 47, 47, 72, 58, 48, 57, 65, 60, 55, 45, 65, 45, 59, 91, 54, 62, 85, 94, 87, 67, 55, 61, 92, 56, 51, 76, 55, 73, 47, 69, 64, 70, 56, 61, 54, 80, 65, 76, 58, 73, 54, 58, 65, 43, 62, 68, 71, 80, 74, 58, 69, 63, 78, 101, 48, 46, 57, 75, 53, 56, 62, 66, 81, 67, 65, 98, 77, 61, 60, 47, 74, 71, 118, 64, 63, 55, 68, 54, 80, 62, 48, 76, 67, 56, 73, 76, 66, 66, 52, 65, 68, 64, 85, 46, 48, 66, 85, 77, 39, 94, 67, 48, 72, 60, 40, 65, 60, 85, 66, 48, 52, 57, 71, 38, 87, 50, 42, 84, 60, 62, 66, 55, 48, 46, 52, 97, 68, 48, 74, 68, 65, 48, 42, 84, 69, 41, 77, 58, 54, 49, 58, 63, 59, 52, 60, 66, 64, 81, 71, 74, 101, 66, 75, 79, 54, 111, 52, 71, 53, 65, 77, 57, 67, 70, 42, 46, 47, 79, 67, 58, 68, 80, 52, 61, 82, 68, 58, 61, 59, 85, 51, 71, 79, 66, 66, 85, 78, 82, 53, 57, 80, 86, 64, 78, 41, 52, 54, 63, 57, 60, 77, 57, 86, 58, 55, 67, 57, 48, 73, 78, 78, 73, 94, 52, 59, 61, 75, 57, 48, 59, 61, 62, 100, 69, 61, 60, 72, 80, 50, 67, 52, 95, 66, 57, 69, 116, 74, 81, 84, 56, 61, 61, 55, 50, 129, 60, 58, 68, 97, 62, 80, 86, 63, 60, 51, 47, 101, 58, 81, 42, 59, 72, 59, 49, 65, 48, 58, 114, 59, 75, 73, 72, 59, 52, 108, 59, 64, 60, 61, 79, 41, 103, 58, 55, 70, 55, 60, 53, 56, 60, 63, 61, 65, 45, 60, 65, 61, 52, 63, 56, 47, 66, 55, 73, 70, 80, 55, 72, 84, 56, 74, 84, 65, 71, 52, 52, 53, 58, 70, 62, 50, 76, 61, 82, 74, 81, 89, 85, 50, 84, 45, 41, 67, 70, 48, 57, 56, 43, 65, 54, 42, 67, 56, 52, 79, 64, 51, 70, 70, 83, 52, 67, 50, 73, 79, 66, 68, 82, 46, 61, 58, 70, 58, 52, 72, 60, 62, 102, 54, 58, 82, 49, 58, 54, 68, 57, 64, 58, 73, 53, 49, 72, 66, 95, 51, 85, 75, 112, 63, 78, 71, 81, 72, 98, 67, 59, 53, 47, 60, 55, 60, 43, 40, 59, 50, 51, 76, 61, 86, 62, 74, 119, 50, 64, 47, 50, 55, 81, 70, 93, 124, 77, 83, 51, 77, 63, 63, 100, 53, 54, 70, 54, 95, 61, 64, 76, 63, 71, 88, 78, 54, 75, 65, 76, 71, 69, 64, 74, 95, 70, 64, 78, 72, 74, 81, 62, 74, 56, 64, 85, 54, 78, 53, 84, 53, 64, 65, 47, 67, 59, 41, 52, 61, 94, 47, 87, 55, 68, 60, 73, 47, 73, 63, 52, 80, 89, 50, 48, 75, 52, 87, 55, 61, 73, 70, 64, 74, 70, 65, 57, 75, 73, 57, 67, 77, 114, 49, 41, 60, 63, 86, 81, 39, 120, 77, 37, 45, 86, 57, 55, 66, 64, 60, 65, 81, 77, 83, 92, 70, 64, 56, 65, 66, 49, 102, 66, 100, 61, 75, 49, 71, 92, 82, 65, 68, 87, 47, 64, 61, 51, 63, 51, 84, 55, 50, 42, 55, 54, 62, 48, 62, 54, 58, 66, 64, 65, 53, 57, 71, 104, 70, 49, 55, 39, 63, 51, 57, 69, 63, 53, 49, 65, 62, 69, 74, 64, 51, 65, 81, 74, 68, 50, 56, 67, 78, 111, 74, 66, 70, 64, 73, 75, 54, 89, 56, 68, 65, 71, 53, 65, 43, 75, 66, 56, 124, 71, 56, 78, 60, 59, 72, 72, 107, 64, 63, 46, 67, 57, 91, 53, 54, 66, 78, 52, 51, 54, 71, 79, 58, 58, 69, 58, 69, 66, 70, 55, 52, 52, 55, 67, 58, 60, 61, 48, 69, 45, 120, 59, 73, 72, 52, 48, 60, 56, 52, 58, 62, 60, 62, 96, 58, 95, 52, 55, 101, 51, 80, 40, 59, 81, 61, 74, 73, 56, 89, 65, 84, 55, 72, 59, 92, 82, 62, 50, 56, 86, 44, 54, 66, 46, 55, 61, 49, 70, 63, 59, 34, 61, 46, 55, 59, 73, 69, 62, 89, 76, 63, 112, 66, 105, 44, 60, 67, 79, 85, 71, 79, 63, 64, 61, 53, 60, 49, 78, 108, 60, 66, 85, 66, 39, 75, 45, 71, 57, 53, 78, 60, 73, 55, 58, 63, 63, 67, 68, 70, 75, 55, 63, 83, 69, 79, 48, 67, 59, 49, 79, 71, 65, 60, 49, 59, 59, 43, 51, 77, 73, 52, 74, 66, 57, 67, 83, 80, 51, 66, 54, 64, 65, 65, 57, 43, 53, 72, 66, 87, 42, 87, 66, 81, 67, 36, 41, 48, 128, 102, 50, 64, 122, 78, 67, 56, 59, 60, 66, 96, 56, 111, 99, 63, 62, 65, 73, 63, 96, 45, 47, 54, 79, 61, 90, 88, 72, 64, 73, 66, 75, 50, 70, 64, 65, 56, 64, 64, 43, 78, 62, 64, 70, 61, 53, 68, 54, 59, 84, 67, 79, 113, 58, 83, 66, 52, 64, 58, 76, 64, 53, 53, 86, 73, 58, 79, 68, 53, 77, 54, 62, 62, 73, 81, 68, 63, 61, 74, 80, 60, 50, 64, 101, 68, 100, 53, 41, 70, 76, 77, 77, 92, 63, 90, 55, 51, 59, 80, 69, 83, 66, 71, 57, 54, 60, 93, 50, 56, 56, 48, 65, 70, 74, 70, 63, 43, 76, 57, 82, 63, 65, 68, 79, 66, 50, 60, 67, 68, 59, 65, 60, 76, 61, 59, 68, 65, 52, 113, 82, 64, 71, 55, 88, 75, 77, 63, 35, 73, 59, 47, 51, 78, 73, 59, 63, 63, 102, 74, 67, 53, 51, 70, 67, 53, 63, 71, 71, 81, 62, 59, 71, 124, 72, 87, 80, 62, 62, 61, 55, 85, 72, 73, 81, 50, 55, 66, 65, 65, 59, 96, 41, 52, 111, 60, 70, 63, 67, 65, 59, 86, 51, 65, 53, 58, 63, 55, 67, 66, 56, 39, 54, 53, 52, 76, 73, 58, 46, 96, 80, 66, 49, 59, 68, 82, 45, 57, 58, 72, 72, 74, 86, 58, 81, 64, 57, 75, 59, 67, 61, 68, 68, 63, 61, 93, 48, 56, 67, 80, 70, 81, 55, 53, 50, 86, 74, 118, 48, 72, 45, 59, 64, 69, 45, 79, 54, 74, 46, 58, 58, 80, 64, 82, 54, 93, 72, 63, 85, 64, 59, 51, 51, 54, 62, 75, 52, 60, 52, 61, 48, 59, 53, 71, 64, 65, 87, 52, 65, 58, 64, 63, 73, 53, 54, 64, 96, 56, 74, 57, 55, 55, 69, 68, 79, 64, 50, 67, 61, 75, 61, 66, 70, 61, 67, 57, 71, 65, 95, 51, 136, 63, 58, 79, 66, 60, 64, 58, 60, 102, 61, 55, 53, 62, 62, 44, 65, 53, 68, 73, 67, 74, 56, 95, 53, 89, 65, 44, 66, 61, 46, 60, 58, 75, 60, 58, 54, 47, 53, 67, 56, 70, 63, 76, 54, 78, 59, 61, 76, 43, 74, 73, 65, 78, 53, 66, 63, 44, 87, 62, 68, 79, 69, 59, 86, 68, 71, 64, 75, 65, 79, 49, 71, 92, 65, 44, 62, 50, 67, 61, 53, 56, 87, 69, 53, 53, 77, 66, 51, 75, 57, 86, 82, 76, 95, 92, 55, 66, 55, 65, 85, 69, 82, 90, 81, 60, 83, 58, 73, 102, 66, 48, 98, 63, 33, 66, 60, 71, 61, 69, 71, 43, 63, 82, 61, 56, 67, 55, 60, 57, 66, 68, 63, 53, 58, 64, 65, 70, 81, 47, 83, 75, 64, 58, 50, 52, 60, 72, 97, 56, 65, 108, 88, 67, 64, 54, 57, 71, 37, 56, 55, 65, 67, 72, 66, 141, 64, 94, 60, 70, 58, 65, 103, 61, 54, 80, 71, 63, 59, 42, 75, 79, 79, 69, 68, 35, 63, 58, 48, 56, 81, 61, 54, 58, 60, 71, 86, 78, 62, 56, 70, 54, 71, 49, 55, 50, 68, 57, 72, 48, 64, 45, 53, 71, 49, 67, 69, 60, 66, 72, 67, 75, 68, 51, 66, 54, 69, 82, 51, 74, 56, 63, 65, 47, 107, 62, 72, 57, 67, 86, 68, 77, 65, 46, 71, 94, 54, 58, 65, 64, 61, 64, 72, 51, 78, 45, 58, 100, 68, 64, 84, 53, 54, 53, 53, 65, 83, 71, 46, 65, 67, 63, 88, 69, 48, 67, 89, 62, 48, 72, 54, 60, 70, 59, 66, 65, 56, 83, 67, 68, 56, 73, 55, 63, 66, 70, 66, 60, 62, 70, 56, 68, 59, 74, 48, 44, 59, 69, 77, 69, 77, 68, 52, 95, 53, 65, 80, 54, 80, 64, 64, 46, 47, 74, 66, 58, 68, 60, 71, 41, 57, 62, 50, 103, 83, 74, 78, 44, 59, 95, 66, 61, 65, 53, 94, 81, 58, 38, 60, 101, 87, 74, 70, 70, 56, 58, 92, 58, 55, 76, 95, 66, 51, 66, 91, 75, 74, 81, 104, 54, 56, 50, 61, 43, 77, 97, 51, 58, 62, 58, 52, 55, 40, 63, 64, 79, 76, 54, 56, 60, 56, 77, 59, 54, 78, 58, 56, 45, 85, 81, 49, 79, 54, 69, 60, 53, 63, 70, 58, 58, 63, 65, 72, 82, 76, 63, 73, 71, 93, 75, 61, 63, 57, 72, 63, 73, 54, 63, 54, 88, 54, 46, 55, 76, 53, 65, 108, 61, 71, 71, 84, 101, 73, 56, 58, 110, 77, 67, 84, 71, 73, 56, 112, 54, 61, 56, 70, 61, 107, 69, 57, 57, 70, 37, 63, 65, 90, 57, 62, 51, 72, 76, 84, 85, 78, 72, 71, 54, 62, 64, 74, 95, 80, 84, 66, 77, 54, 51, 84, 50, 76, 65, 131, 61, 64, 61, 75, 67, 56, 78, 37, 64, 96, 72, 78, 68, 63, 70, 67, 66, 81, 56, 47, 69, 71, 87, 78, 76, 64, 64, 66, 93, 63, 56, 67, 59, 80, 64, 80, 60, 86, 74, 56, 76, 62, 61, 61, 71, 81, 35, 57, 61, 69, 59, 45, 66, 60, 50, 60, 80, 60, 51, 47, 56, 73, 64, 66, 49, 56, 65, 48, 49, 60, 51, 55, 63, 74, 60, 63, 65, 67, 57, 58, 57, 72, 92, 92, 64, 65, 37, 73, 55, 67, 59, 61, 46, 69, 65, 70, 55, 59, 82, 95, 44, 42, 58, 74, 46, 79, 72, 58, 65, 75, 84, 59, 66, 61, 84, 56, 78, 54, 61, 86, 97, 53, 55, 88, 59, 63, 77, 58, 80, 58, 80, 91, 68, 82, 56, 67, 69, 67, 60, 57, 68, 77, 60, 65, 61, 54, 66, 57, 73, 76, 71, 55, 70, 61, 74, 65, 75, 72, 48, 57, 62, 54, 37, 60, 54, 56, 91, 52, 65, 66, 65, 56, 62, 69, 84, 48, 63, 85, 76, 62, 57, 52, 50, 88, 63, 55, 84, 69, 35, 101, 57, 71, 58, 83, 71, 49, 63, 57, 48, 74, 66, 62, 70, 78, 48, 59, 83, 40, 64, 59, 76, 70, 54, 49, 59, 53, 66, 89, 63, 58, 56, 112, 65, 93, 54, 67, 102, 76, 78, 80, 81, 69, 104, 63, 40, 69, 53, 49, 58, 55, 66, 49, 60, 89, 66, 62, 104, 54, 53, 92, 66, 70, 85, 50, 55, 77, 82, 83, 62, 70, 69, 63, 54, 73, 73, 79, 45, 58, 69, 59, 66, 66, 62, 63, 67, 66, 71, 58, 52, 70, 87, 83, 90, 69, 60, 51, 72, 60, 79, 57, 68, 62, 72, 60, 67, 63, 64, 42, 69, 63, 70, 46, 50, 70, 81, 94, 61, 49, 58, 60, 56, 79, 74, 79, 65, 61, 103, 91, 61, 105, 75, 78, 64, 86, 76, 97, 71, 80, 97, 69, 65, 55, 68, 62, 46, 57, 70, 53, 57, 65, 68, 50, 79, 65, 78, 66, 49, 42, 67, 67, 49, 52, 77, 77, 55, 65, 66, 72, 60, 108, 52, 66, 56, 114, 73, 72, 47, 40, 59, 61, 55, 81, 66, 46, 64, 27, 65, 64, 83, 41, 80, 48, 76, 39, 79, 61, 152, 65, 59, 63, 73, 78, 71, 55, 79, 54, 66, 68, 56, 65, 68, 100, 60, 52, 80, 65, 59, 78, 43, 79, 49, 49, 61, 70, 52, 72, 80, 57, 84, 52, 63, 64, 48, 75, 47, 65, 45, 63, 82, 78, 87, 54, 69, 71, 70, 54, 68, 60, 75, 48, 55, 92, 93, 65, 71, 77, 48, 99, 52, 56, 61, 78, 66, 86, 71, 47, 46, 81, 79, 76, 58, 80, 49, 82, 56, 64, 57, 64, 50, 75, 68, 78, 55, 81, 67, 82, 63, 74, 71, 76, 72, 54, 94, 74, 85, 54, 70, 79, 55, 51, 68, 64, 76, 46, 48, 76, 59, 59, 64, 91, 84, 65, 67, 62, 85, 61, 74, 70, 60, 67, 81, 74, 54, 68, 54, 63, 77, 63, 75, 76, 113, 62, 48, 62, 58, 64, 77, 62, 62, 66, 51, 65, 83, 74, 72, 73, 56, 50, 90, 64, 53, 51, 62, 60, 71, 68, 67, 124, 71, 76, 54, 82, 76, 69, 65, 59, 92, 68, 75, 73, 83, 70, 53, 49, 53, 73, 70, 68, 99, 63, 59, 62, 86, 57, 66, 62, 53, 56, 77, 55, 51, 66, 75, 78, 53, 78, 78, 97, 70, 59, 84, 78, 56, 59, 60, 71, 69, 71, 92, 54, 64, 75, 60, 66, 50, 56, 57, 78, 50, 70, 51, 56, 77, 75, 59, 77, 47, 50, 68, 59, 80, 93, 59, 75, 79, 72, 56, 70, 47, 65, 65, 65, 66, 79, 73, 62, 85, 51, 64, 66, 82, 61, 39, 64, 72, 79, 69, 66, 58, 56, 60, 66, 69, 62, 47, 57, 83, 45, 66, 105, 51, 54, 61, 67, 74, 89, 50, 109, 73, 51, 101, 72, 136, 66, 78, 67, 52, 95, 83, 86, 50, 56, 60, 87, 63, 61, 70, 60, 70, 91, 66, 70, 45, 59, 76, 61, 77, 64, 69, 71, 66, 83, 77, 70, 63, 101, 77, 66, 79, 75, 74, 74, 93, 64, 68, 69, 54, 82, 65, 44, 54, 61, 61, 62, 63, 61, 57, 61, 84, 46, 63, 71, 59, 45, 70, 58, 75, 63, 67, 44, 42, 68, 72, 67, 47, 57, 71, 42, 71, 109, 78, 68, 57, 76, 56, 80, 69, 62, 51, 98, 50, 70, 81, 85, 53, 55, 60, 76, 67, 68, 58, 93, 72, 51, 84, 43, 74, 67, 84, 66, 62, 55, 76, 59, 62, 75, 79, 78, 75, 71, 102, 61, 71, 80, 52, 98, 95, 48, 50, 77, 63, 87, 60, 77, 56, 68, 40, 51, 67, 69, 60, 67, 78, 77, 69, 80, 72, 55, 51, 70, 51, 56, 61, 63, 64, 55, 74, 98, 70, 76, 68, 61, 80, 86, 64, 82, 71, 59, 85, 75, 51, 73, 61, 50, 52, 75, 76, 61, 63, 49, 52, 58, 63, 64, 58, 66, 85, 74, 72, 78, 79, 71, 93, 59, 66, 73, 78, 59, 41, 69, 60, 76, 48, 68, 49, 49, 51, 57, 64, 54, 76, 71, 57, 46, 74, 55, 83, 83, 72, 55, 64, 83, 95, 52, 55, 114, 67, 86, 50, 65, 70, 57, 63, 83, 64, 67, 48, 158, 77, 53, 72, 87, 71, 52, 64, 64, 52, 74, 60, 69, 68, 64, 54, 51, 56, 67, 48, 60, 61, 72, 76, 69, 56, 64, 74, 47, 84, 55, 84, 62, 64, 67, 63, 87, 54, 82, 77, 75, 53, 55, 71, 63, 44, 50, 50, 58, 51, 70, 63, 64, 56, 59, 64, 61, 58, 64, 76, 27, 71, 52, 60, 71, 60, 69, 71, 71, 70, 52, 74, 48, 86, 50, 106, 70, 57, 77, 70, 53, 63, 93, 59, 100, 63, 68, 58, 81, 46, 58, 77, 69, 73, 75, 52, 69, 75, 59, 98, 71, 98, 69, 60, 62, 112, 72, 67, 64, 60, 59, 60, 56, 46, 87, 50, 54, 63, 76, 78, 73, 75, 88, 45, 81, 79, 47, 62, 58, 71, 71, 55, 60, 100, 73, 56, 54, 70, 62, 64, 76, 64, 36, 66, 55, 46, 74, 79, 59, 55, 56, 64, 42, 53, 74, 66, 71, 59, 61, 62, 69, 75, 47, 74, 77, 62, 68, 68, 92, 81, 70, 83, 82, 62, 48, 56, 70, 64, 52, 65, 75, 59, 55, 68, 64, 58, 55, 101, 55, 70, 65, 60, 60, 65, 88, 77, 68, 102, 56, 58, 100, 80, 48, 68, 61, 71, 56, 55, 69, 67, 70, 67, 73, 86, 85, 70, 46, 81, 60, 48, 68, 53, 62, 70, 69, 63, 65, 77, 74, 58, 57, 63, 88, 65, 52, 57, 74, 99, 71, 59, 53, 39, 64, 73, 77, 47, 69, 89, 59, 68, 73, 85, 90, 57, 65, 89, 55, 60, 86, 52, 52, 64, 103, 66, 55, 65, 71, 67, 59, 41, 60, 76, 72, 53, 90, 67, 53, 68, 99, 55, 83, 89, 59, 42, 64, 67, 53, 54, 76, 96, 67, 72, 60, 66, 64, 48, 60, 56, 60, 43, 53, 55, 70, 75, 62, 52, 67, 46, 57, 38, 61, 48, 59, 61, 63, 54, 57, 44, 58, 44, 60, 96, 69, 56, 60, 80, 50, 54, 64, 74, 45, 112, 88, 104, 69, 72, 78, 75, 52, 83, 43, 66, 60, 62, 60, 65, 91, 53, 75, 61, 58, 65, 75, 72, 34, 62, 58, 41, 62, 37, 74, 59, 52, 60, 54, 73, 73, 61, 54, 66, 51, 44, 79, 46, 55, 52, 80, 76, 60, 49, 62, 58, 70, 81, 67, 51, 74, 75, 67, 58, 66, 61, 48, 72, 48, 57, 69, 100, 70, 39, 71, 50, 90, 52, 60, 71, 51, 70, 55, 66, 57, 46, 67, 70, 60, 61, 66, 56, 60, 44, 71, 76, 54, 61, 70, 64, 88, 36, 68, 82, 62, 84, 64, 55, 82, 63, 49, 34, 69, 86, 65, 60, 50, 50, 69, 53, 57, 59, 70, 65, 47, 94, 67, 85, 62, 83, 69, 75, 47, 58, 62, 52, 76, 84, 61, 69, 66, 79, 64, 76, 62, 103, 85, 49, 46, 169, 78, 52, 47, 100, 83, 45, 76, 65, 51, 53, 57, 64, 54, 79, 52, 83, 57, 87, 66, 63, 55, 65, 81, 42, 61, 57, 53, 72, 77, 68, 54, 52, 53, 71, 72, 61, 48, 95, 46, 55, 80, 60, 62, 72, 63, 57, 66, 99, 65, 73, 67, 59, 72, 69, 85, 64, 61, 55, 60, 56, 42, 64, 77, 57, 75, 61, 51, 58, 57, 49, 68, 60, 59, 70, 49, 60, 104, 79, 65, 67, 60, 78, 82, 70, 71, 103, 64, 55, 71, 58, 47, 36, 52, 60, 66, 86, 58, 62, 68, 57, 59, 73, 73, 57, 50, 65, 65, 66, 65, 52, 67, 53, 53, 59, 57, 80, 86, 83, 87, 51, 55, 49, 57, 89, 60, 41, 47, 61, 57, 85, 67, 59, 57, 63, 52, 82, 52, 89, 86, 73, 49, 59, 50, 51, 76, 95, 58, 58, 45, 77, 52, 65, 52, 102, 45, 74, 60, 57, 58, 70, 73, 71, 67, 70, 53, 76, 61, 64, 53, 46, 61, 92, 54, 78, 71, 82, 69, 56, 103, 59, 48, 73, 64, 49, 63, 69, 62, 63, 60, 64, 61, 60, 82, 61, 49, 55, 67, 56, 53, 52, 49, 56, 60, 81, 58, 62, 59, 52, 57, 68, 70, 76, 58, 69, 65, 93, 88, 76, 73, 56, 49, 62, 85, 63, 58, 68, 67, 61, 52, 65, 81, 48, 63, 46, 39, 59, 55, 63, 70, 60, 57, 46, 116, 57, 76, 50, 81, 70, 67, 92, 63, 77, 64, 40, 59, 71, 46, 84, 72, 63, 106, 64, 69, 55, 83, 54, 51, 62, 65, 86, 62, 42, 70, 112, 59, 46, 79, 86, 53, 43, 67, 49, 65, 79, 48, 59, 56, 60, 69, 62, 72, 58, 49, 69, 74, 74, 53, 61, 57, 64, 74, 100, 66, 65, 70, 58, 88, 61, 54, 68, 62, 56, 58, 78, 70, 82, 54, 59, 83, 88, 60, 73, 72, 88, 56, 73, 47, 60, 62, 73, 65, 80, 66, 69, 70, 64, 84, 59, 58, 83, 48, 54, 106, 69, 110, 61, 85, 65, 57, 68, 71, 71, 63, 49, 56, 46, 58, 63, 75, 62, 74, 77, 80, 82, 57, 60, 61, 40, 85, 55, 60, 78, 73, 63, 68, 84, 63, 74, 62, 77, 64, 52, 47, 61, 77, 54, 85, 37, 57, 91, 66, 96, 64, 49, 91, 54, 64, 54, 40, 61, 81, 47, 79, 71, 32, 66, 71, 57, 69, 98, 69, 59, 43, 60, 75, 50, 63, 85, 76, 62, 67, 51, 73, 118, 73, 60, 83, 55, 60, 61, 75, 84, 60, 79, 103, 65, 53, 62, 60, 54, 75, 86, 96, 69, 60, 59, 78, 96, 68, 65, 60, 54, 68, 62, 87, 55, 73, 49, 48, 63, 69, 89, 49, 51, 77, 51, 69, 53, 79, 78, 53, 91, 66, 80, 56, 70, 46, 47, 56, 65, 56, 76, 65, 60, 53, 70, 52, 56, 51, 105, 68, 46, 70, 57, 58, 66, 87, 73, 58, 63, 44, 99, 56, 50, 67, 63, 48, 66, 67, 80, 57, 47, 46, 60, 76, 55, 78, 101, 65, 56, 67, 68, 53, 58, 69, 56, 54, 83, 97, 56, 74, 79, 58, 94, 68, 76, 72, 55, 47, 81, 55, 94, 85, 66, 74, 49, 69, 50, 61, 72, 53, 73, 53, 87, 61, 73, 53, 71, 60, 73, 67, 53, 69, 77, 111, 74, 60, 65, 66, 71, 65, 65, 68, 38, 53, 53, 92, 57, 53, 56, 72, 64, 59, 67, 71, 61, 81, 49, 61, 84, 56, 51, 99, 35, 50, 137, 68, 75, 39, 48, 64, 57, 55, 44, 85, 60, 82, 81, 45, 71, 52, 71, 55, 80, 59, 51, 61, 63, 61, 56, 80, 63, 48, 62, 47, 106, 92, 50, 87, 51, 65, 66, 50, 86, 60, 74, 87, 57, 55, 55, 60, 56, 66, 60, 61, 92, 82, 66, 43, 71, 56, 69, 80, 53, 49, 54, 60, 54, 55, 90, 59, 59, 52, 102, 59, 65, 62, 63, 79, 67, 113, 120, 49, 60, 87, 60, 51, 64, 46, 57, 71, 57, 70, 75, 61, 88, 76, 75, 78, 61, 58, 74, 57, 72, 82, 49, 55, 62, 64, 59, 57, 84, 65, 60, 56, 71, 62, 45, 72, 56, 57, 62, 59, 87, 60, 78, 66, 44, 61, 67, 53, 66, 60, 55, 66, 50, 59, 72, 41, 88, 70, 69, 73, 88, 69, 69, 47, 66, 63, 59, 67, 56, 63, 49, 65, 43, 61, 59, 72, 100, 71, 48, 69, 69, 68, 63, 54, 73, 60, 57, 56, 77, 70, 65, 53, 59, 101, 61, 51, 97, 74, 80, 61, 69, 68, 81, 57, 54, 61, 88, 78, 83, 70, 58, 94, 49, 73, 47, 62, 50, 80, 74, 68, 67, 62, 108, 69, 55, 62, 72, 59, 61, 66, 61, 80, 59, 69, 56, 62, 76, 86, 77, 94, 82, 66, 61, 76, 59, 50, 67, 59, 74, 68, 68, 83, 59, 69, 61, 66, 65, 80, 74, 61, 56, 125, 89, 56, 74, 70, 73, 52, 49, 43, 62, 60, 72, 50, 70, 39, 51, 59, 53, 95, 73, 48, 77, 63, 89, 65, 72, 68, 82, 54, 75, 48, 48, 57, 64, 64, 65, 63, 43, 87, 53, 53, 61, 54, 55, 63, 79, 104, 94, 100, 42, 62, 71, 86, 47, 59, 76, 113, 75, 61, 49, 90, 51, 44, 89, 61, 60, 74, 61, 50, 74, 66, 48, 70, 66, 47, 55, 55, 110, 53, 54, 48, 59, 35, 72, 80, 66, 59, 132, 60, 61, 44, 64, 77, 49, 70, 54, 61, 62, 40, 60, 91, 55, 59, 77, 64, 57, 76, 52, 63, 101, 58, 64, 65, 90, 66, 63, 58, 50, 74, 58, 60, 56, 78, 78, 83, 61, 52, 69, 67, 51, 70, 69, 80, 66, 63, 63, 57, 98, 73, 79, 71, 60, 75, 57, 82, 47, 41, 75, 53, 62, 86, 64, 69, 54, 75, 70, 74, 96, 71, 58, 76, 55, 65, 87, 50, 65, 48, 70, 56, 71, 56, 109, 64, 62, 70, 70, 60, 57, 57, 57, 55, 49, 47, 69, 67, 51, 58, 71, 64, 60, 54, 57, 66, 87, 75, 62, 77, 45, 48, 59, 63, 90, 80, 54, 55, 98, 49, 59, 45, 66, 76, 62, 52, 67, 71, 54, 90, 65, 68, 47, 92, 103, 72, 73, 75, 56, 59, 65, 65, 71, 84, 64, 43, 52, 61, 104, 39, 69, 78, 94, 51, 49, 64, 65, 52, 46, 60, 84, 50, 58, 53, 54, 58, 55, 69, 65, 58, 95, 68, 38, 44, 57, 64, 103, 54, 107, 37, 81, 55, 53, 58, 78, 52, 63, 71, 69, 56, 89, 57, 63, 65, 98, 55, 70, 87, 83, 65, 54, 79, 56, 130, 57, 68, 67, 56, 59, 65, 50, 41, 74, 86, 72, 62, 57, 106, 71, 58, 57, 65, 46, 63, 69, 95, 101, 52, 80, 57, 51, 81, 52, 64, 90, 63, 70, 60, 88, 44, 47, 76, 57, 60, 68, 72, 76, 62, 80, 58, 68, 59, 50, 62, 64, 34, 50, 60, 52, 54, 53, 86, 33, 58, 49, 82, 76, 72, 62, 58, 91, 75, 47, 50, 51, 67, 84, 61, 53, 61, 75, 44, 42, 86, 60, 53, 51, 59, 74, 78, 63, 53, 59, 101, 62, 56, 52, 63, 56, 73, 64, 60, 81, 68, 75, 72, 48, 84, 70, 51, 94, 58, 64, 69, 54, 46, 52, 97, 56, 67, 65, 74, 54, 88, 50, 53, 84, 92, 67, 71, 62, 47, 57, 42, 46, 28, 115, 53, 57, 50, 67, 62, 56, 56, 57, 54, 54, 86, 54, 64, 49, 91, 69, 61, 59, 83, 53, 62, 59, 59, 45, 63, 58, 75, 73, 54, 77, 52, 64, 61, 79, 51, 63, 60, 58, 65, 69, 97, 105, 80, 63, 61, 58, 43, 70, 45, 59, 79, 55, 58, 60, 69, 58, 60, 61, 51, 67, 54, 52, 58, 65, 50, 54, 69, 62, 63, 60, 58, 56, 62, 55, 65, 67, 63, 70, 54, 51, 76, 99, 83, 103, 95, 60, 58, 67, 113, 37, 59, 65, 72, 55, 50, 86, 72, 88, 68, 77, 51, 78, 40, 63, 48, 66, 78, 65, 46, 94, 61, 50, 57, 37, 63, 68, 70, 44, 61, 54, 67, 80, 47, 57, 61, 70, 71, 81, 81, 42, 77, 49, 59, 64, 55, 70, 71, 70, 51, 74, 58, 79, 70, 100, 121, 59, 77, 61, 57, 60, 64, 75, 104, 64, 99, 66, 69, 46, 68, 79, 64, 77, 67, 70, 72, 80, 71, 61, 65, 61, 51, 83, 61, 59, 60, 51, 80, 49, 75, 43, 76, 64, 69, 90, 56, 64, 54, 78, 59, 49, 86, 92, 65, 75, 62, 67, 61, 66, 66, 61, 34, 75, 49, 59, 63, 54, 52, 60, 80, 84, 65, 84, 73, 66, 68, 56, 60, 114, 52, 63, 62, 75, 64, 92, 93, 50, 49, 65, 55, 79, 72, 54, 63, 73, 42, 85, 39, 69, 82, 62, 99, 54, 80, 89, 58, 61, 49, 50, 66, 84, 55, 67, 76, 88, 72, 59, 77, 74, 79, 54, 66, 77, 70, 91, 49, 76, 73, 79, 62, 82, 67, 62, 75, 68, 64, 99, 50, 114, 63, 91, 49, 66, 84, 49, 85, 57, 59, 60, 45, 46, 87, 61, 66, 37, 50, 81, 61, 59, 65, 67, 57, 61, 55, 84, 65, 50, 48, 58, 89, 83, 67, 62, 68, 76, 55, 55, 75, 67, 77, 102, 65, 93, 65, 62, 68, 93, 70, 46, 65, 69, 70, 80, 44, 66, 68, 54, 43, 65, 48, 82, 65, 77, 80, 51, 72, 45, 67, 82, 95, 50, 84, 57, 73, 55, 100, 78, 109, 52, 74, 70, 63, 69, 58, 94, 59, 43, 75, 53, 58, 78, 70, 57, 70, 44, 77, 63, 63, 74, 75, 66, 58, 61, 61, 68, 59, 48, 61, 73, 67, 77, 69, 96, 65, 67, 41, 79, 58, 40, 76, 70, 64, 70, 99, 81, 62, 60, 125, 55, 46, 53, 57, 42, 52, 63, 63, 76, 53, 56, 56, 63, 69, 66, 49, 50, 80, 107, 62, 59, 67, 67, 53, 97, 62, 58, 67, 67, 54, 86, 61, 60, 67, 67, 60, 85, 72, 53, 61, 85, 46, 76, 99, 59, 67, 69, 71, 57, 47, 97, 75, 68, 46, 50, 50, 65, 56, 84, 64, 45, 53, 66, 46, 59, 57, 79, 61, 63, 42, 74, 64, 67, 60, 78, 59, 52, 42, 53, 98, 67, 111, 57, 67, 58, 48, 61, 85, 55, 83, 64, 59, 69, 54, 63, 48, 86, 54, 63, 94, 69, 55, 56, 75, 46, 75, 79, 56, 66, 66, 129, 48, 46, 62, 66, 47, 68, 76, 77, 75, 72, 67, 52, 74, 86, 71, 165, 71, 120, 75, 68, 65, 68, 53, 90, 97, 64, 103, 79, 51, 52, 49, 69, 57, 56, 53, 86, 49, 62, 60, 45, 61, 59, 63, 57, 69, 49, 52, 63, 61, 55, 82, 65, 58, 61, 95, 81, 53, 76, 42, 134, 73, 51, 73, 53, 60, 57, 64, 61, 68, 64, 56, 64, 64, 63, 72, 75, 68, 79, 47, 75, 41, 57, 77, 75, 46, 41, 69, 60, 75, 86, 45, 65, 46, 56, 88, 71, 52, 75, 64, 49, 61, 40, 72, 76, 64, 64, 55, 90, 67, 107, 50, 68, 77, 79, 67, 52, 65, 60, 51, 62, 33, 57, 72, 94, 44, 71, 65, 82, 55, 71, 72, 82, 49, 72, 73, 71, 66, 71, 46, 60, 78, 53, 72, 113, 54, 59, 59, 75, 49, 66, 55, 68, 48, 58, 61, 47, 75, 59, 93, 56, 76, 64, 68, 56, 59, 87, 126, 79, 53, 79, 66, 79, 61, 59, 64, 68, 76, 40, 67, 69, 73, 50, 79, 102, 48, 119, 68, 61, 91, 64, 55, 60, 80, 59, 66, 58, 69, 86, 66, 53, 80, 80, 86, 32, 79, 67, 53, 51, 133, 54, 65, 52, 72, 56, 60, 82, 54, 79, 70, 77, 53, 59, 63, 65, 107, 57, 72, 49, 50, 94, 60, 64, 70, 53, 157, 56, 41, 71, 75, 80, 78, 65, 61, 79, 46, 65, 58, 65, 49, 75, 67, 47, 50, 98, 51, 75, 124, 74, 47, 91, 56, 68, 46, 62, 50, 60, 78, 89, 70, 62, 73, 101, 64, 81, 80, 67, 73, 62, 88, 74, 67, 92, 47, 54, 81, 74, 86, 65, 64, 98, 55, 49, 67, 49, 78, 70, 79, 66, 70, 83, 74, 64, 78, 49, 63, 77, 57, 64, 82, 56, 80, 67, 72, 90, 70, 67, 105, 88, 66, 81, 62, 57, 70, 70, 74, 49, 39, 70, 60, 73, 58, 53, 57, 70, 52, 93, 46, 67, 41, 79, 89, 48, 59, 66, 52, 87, 63, 115, 103, 88, 75, 62, 57, 63, 55, 72, 63, 47, 56, 56, 79, 79, 59, 51, 92, 83, 78, 65, 57, 40, 57, 89, 70, 63, 88, 68, 48, 66, 84, 82, 67, 64, 54, 55, 48, 68, 102, 59, 63, 62, 72, 98, 85, 64, 53, 83, 52, 56, 66, 67, 61, 77, 55, 85, 55, 73, 71, 62, 74, 60, 84, 59, 80, 47, 54, 29, 62, 75, 89, 71, 64, 68, 47, 59, 75, 79, 73, 73, 42, 40, 51, 57, 62, 65, 53, 77, 53, 66, 98, 63, 59, 87, 112, 67, 54, 41, 77, 89, 63, 49, 62, 59, 47, 60, 59, 73, 63, 73, 45, 58, 84, 67, 70, 99, 60, 71, 67, 76, 71, 44, 112, 78, 61, 56, 52, 69, 62, 58, 61, 48, 57, 43, 60, 47, 61, 72, 70, 63, 60, 68, 71, 65, 65, 77, 55, 69, 75, 57, 73, 53, 81, 72, 88, 54, 67, 70, 93, 55, 79, 70, 85, 38, 56, 93, 58, 84, 58, 82, 81, 79, 61, 112, 82, 55, 73, 70, 105, 74, 82, 60, 147, 51, 51, 80, 62, 64, 64, 68, 45, 54, 81, 68, 49, 81, 67, 73, 77, 50, 59, 56, 88, 60, 88, 55, 92, 58, 63, 66, 86, 93, 62, 41, 73, 88, 55, 66, 76, 66, 78, 39, 74, 81, 42, 59, 78, 46, 50, 54, 46, 53, 75, 54, 84, 38, 57, 73, 58, 78, 19, 68, 98, 39, 120, 66, 71, 67, 59, 53, 80, 88, 51, 63, 53, 73, 55, 58, 50, 73, 63, 63, 50, 52, 43, 74, 69, 63, 56, 67, 75, 54, 64, 63, 73, 44, 45, 71, 85, 68, 72, 66, 76, 66, 73, 55, 67, 67, 101, 68, 96, 55, 63, 53, 73, 62, 67, 36, 70, 51, 72, 61, 52, 65, 53, 98, 56, 101, 85, 19, 57, 68, 65, 68, 89, 47, 98, 57, 99, 72, 72, 53, 53, 56, 43, 82, 56, 94, 52, 51, 54, 85, 47, 49, 67, 59, 93, 52, 69, 63, 68, 36, 58, 63, 65, 82, 62, 57, 68, 80, 80, 78, 64, 42, 79, 59, 66, 67, 86, 72, 54, 51, 50, 83, 54, 57, 66, 46, 61, 69, 55, 51, 63, 90, 67, 108, 57, 56, 77, 83, 46, 79, 73, 55, 80, 72, 59, 48, 81, 59, 68, 49, 77, 71, 57, 39, 55, 92, 81, 64, 49, 63, 64, 70, 40, 74, 58, 60, 53, 55, 69, 65, 61, 87, 47, 51, 84, 52, 73, 67, 64, 47, 86, 59, 78, 52, 70, 48, 53, 61, 63, 60, 78, 72, 75, 48, 69, 53, 34, 87, 80, 51, 69, 79, 58, 50, 61, 72, 57, 47, 81, 55, 46, 115, 31, 71, 50, 78, 59, 77, 87, 46, 58, 85, 54, 71, 62, 61, 57, 76, 68, 54, 70, 75, 60, 72, 83, 104, 82, 58, 56, 75, 80, 57, 67, 52, 80, 82, 52, 58, 80, 67, 60, 96, 46, 82, 71, 40, 53, 74, 96, 68, 100, 62, 55, 78, 64, 38, 73, 67, 50, 42, 65, 62, 60, 61, 103, 85, 57, 80, 71, 42, 56, 54, 74, 48, 64, 60, 76, 63, 42, 81, 93, 87, 73, 73, 39, 86, 65, 68, 52, 52, 152, 79, 62, 64, 57, 61, 70, 44, 61, 71, 66, 69, 86, 48, 78, 49, 86, 68, 72, 59, 54, 40, 76, 57, 60, 51, 59, 84, 61, 71, 48, 66, 76, 55, 70, 61, 73, 106, 68, 59, 61, 48, 55, 42, 89, 53, 57, 71, 70, 65, 65, 54, 83, 84, 68, 57, 82, 53, 80, 52, 81, 62, 55, 58, 55, 78, 53, 57, 94, 58, 57, 44, 61, 88, 68, 71, 47, 57, 74, 65, 59, 64, 81, 49, 61, 58, 50, 74, 62, 57, 49, 56, 68, 71, 49, 62, 61, 90, 85, 75, 79, 70, 89, 53, 70, 69, 69, 40, 51, 60, 78, 65, 60, 78, 38, 62, 96, 67, 78, 51, 72, 62, 70, 77, 71, 64, 60, 66, 75, 69, 65, 64, 94, 72, 57, 68, 57, 87, 76, 61, 61, 111, 34, 51, 80, 72, 88, 41, 61, 59, 52, 98, 63, 65, 68, 105, 61, 41, 67, 67, 82, 70, 62, 66, 83, 43, 99, 75, 55, 80, 57, 69, 63, 78, 67, 79, 70, 64, 48, 43, 71, 78, 99, 99, 102, 62, 58, 64, 64, 64, 46, 50, 69, 71, 77, 60, 65, 50, 62, 63, 64, 64, 96, 44, 82, 134, 56, 80, 73, 53, 85, 68, 57, 55, 57, 41, 64, 97, 63, 62, 78, 50, 78, 68, 58, 66, 68, 57, 50, 72, 62, 52, 55, 66, 89, 48, 50, 100, 56, 84, 48, 44, 72, 57, 61, 43, 74, 63, 65, 76, 62, 60, 51, 60, 49, 76, 76, 77, 50, 69, 57, 65, 47, 64, 83, 64, 41, 70, 63, 97, 45, 77, 96, 88, 67, 69, 58, 70, 34, 70, 76, 70, 93, 70, 50, 90, 62, 72, 61, 38, 68, 45, 61, 87, 64, 43, 89, 64, 60, 60, 79, 98, 47, 57, 79, 50, 71, 60, 81, 59, 78, 68, 73, 57, 101, 71, 64, 76, 81, 45, 75, 42, 77, 51, 50, 82, 53, 68, 51, 37, 68, 77, 58, 72, 81, 58, 78, 62, 53, 58, 61, 73, 62, 87, 71, 53, 63, 86, 34, 58, 100, 72, 73, 60, 68, 50, 83, 76, 61, 93, 70, 65, 79, 80, 95, 78, 74, 64, 57, 76, 85, 64, 53, 67, 57, 72, 42, 60, 49, 62, 62, 65, 64, 65, 56, 60, 76, 64, 49, 58, 57, 58, 59, 73, 58, 70, 58, 67, 122, 78, 69, 46, 73, 74, 63, 54, 67, 85, 49, 57, 59, 64, 68, 63, 72, 55, 72, 72, 61, 123, 48, 73, 70, 79, 66, 53, 60, 59, 69, 62, 59, 57, 63, 63, 81, 49, 73, 58, 55, 86, 63, 65, 84, 69, 49, 84, 58, 74, 64, 55, 83, 64, 78, 71, 63, 80, 104, 67, 69, 51, 69, 68, 56, 62, 50, 73, 50, 76, 67, 65, 58, 57, 52, 82, 62, 44, 104, 72, 60, 62, 71, 62, 66, 58, 87, 62, 39, 57, 77, 65, 64, 45, 45, 75, 54, 67, 65, 62, 59, 74, 84, 54, 55, 49, 61, 58, 71, 59, 79, 54, 49, 65, 53, 63, 78, 62, 54, 67, 81, 49, 72, 58, 67, 66, 55, 66, 48, 57, 64, 67, 61, 63, 50, 85, 73, 71, 65, 59, 63, 86, 60, 81, 88, 75, 53, 62, 67, 57, 62, 61, 72, 70, 53, 54, 70, 67, 61, 46, 69, 55, 54, 61, 69, 70, 49, 54, 63, 48, 63, 45, 63, 115, 75, 63, 65, 68, 89, 66, 57, 63, 58, 61, 76, 63, 59, 91, 64, 69, 64, 72, 59, 67, 53, 83, 78, 76, 67, 63, 73, 73, 83, 64, 72, 57, 59, 81, 71, 48, 65, 37, 47, 65, 54, 72, 71, 65, 88, 50, 60, 41, 68, 68, 73, 49, 88, 70, 70, 53, 37, 52, 68, 90, 73, 52, 27, 61, 47, 63, 39, 63, 43, 61, 66, 69, 87, 80, 52, 64, 80, 94, 41, 89, 73, 70, 64, 55, 69, 58, 61, 75, 45, 67, 66, 57, 60, 47, 67, 73, 61, 63, 60, 49, 69, 53, 49, 63, 97, 90, 58, 102, 63, 78, 60, 76, 55, 68, 52, 70, 68, 66, 68, 61, 78, 81, 56, 64, 60, 67, 69, 64, 62, 59, 44, 53, 55, 48, 79, 117, 42, 37, 69, 59, 63, 68, 54, 89, 83, 65, 75, 71, 71, 64, 78, 85, 57, 65, 84, 66, 58, 64, 63, 46, 62, 77, 52, 53, 82, 65, 66, 62, 59, 60, 75, 59, 62, 69, 61, 65, 64, 84, 114, 57, 54, 55, 69, 70, 56, 91, 52, 65, 61, 53, 60, 87, 57, 57, 59, 52, 86, 71, 68, 65, 99, 60, 86, 85, 58, 64, 51, 74, 73, 71, 58, 52, 61, 74, 65, 56, 60, 54, 49, 65, 103, 74, 62, 76, 67, 59, 62, 65, 62, 51, 57, 64, 47, 54, 68, 55, 65, 57, 62, 93, 68, 59, 56, 60, 109, 57, 62, 57, 64, 83, 58, 58, 76, 74, 57, 68, 61, 62, 67, 28, 64, 55, 50, 94, 50, 37, 118, 74, 56, 81, 43, 51, 119, 69, 89, 68, 87, 60, 67, 66, 52, 47, 51, 72, 91, 46, 60, 63, 52, 61, 72, 75, 100, 74, 95, 77, 54, 74, 65, 50, 70, 94, 88, 70, 55, 63, 64, 66, 106, 57, 72, 69, 69, 45, 61, 65, 58, 79, 65, 52, 71, 114, 68, 60, 56, 105, 53, 53, 85, 54, 75, 71, 49, 70, 55, 54, 58, 73, 40, 54, 77, 68, 61, 62, 104, 54, 59, 51, 57, 80, 53, 83, 70, 57, 68, 61, 60, 78, 89, 77, 59, 50, 49, 68, 53, 59, 73, 59, 47, 57, 48, 56, 113, 88, 53, 74, 65, 71, 58, 63, 60, 85, 52, 87, 48, 62, 85, 70, 109, 109, 70, 69, 78, 36, 64, 81, 64, 67, 62, 84, 52, 77, 100, 55, 76, 82, 54, 111, 61, 77, 58, 51, 55, 66, 61, 67, 54, 76, 75, 69, 115, 68, 116, 65, 48, 75, 53, 62, 59, 66, 79, 75, 59, 91, 71, 62, 82, 50, 81, 51, 84, 63, 75, 52, 69, 81, 73, 88, 61, 72, 59, 58, 67, 77, 43, 73, 73, 63, 75, 58, 64, 54, 49, 63, 70, 68, 90, 63, 56, 52, 52, 60, 59, 60, 69, 106, 55, 55, 48, 84, 46, 61, 51, 60, 34, 74, 70, 94, 71, 49, 48, 65, 73, 48, 60, 59, 74, 101, 60, 75, 54, 50, 67, 66, 51, 69, 56, 55, 62, 42, 46, 65, 61, 104, 58, 99, 70, 68, 60, 53, 81, 64, 79, 62, 61, 35, 50, 83, 55, 75, 74, 71, 59, 43, 55, 56, 68, 78, 58, 77, 56, 66, 96, 91, 46, 45, 79, 68, 61, 57, 54, 66, 71, 66, 53, 59, 60, 104, 52, 67, 75, 66, 71, 64, 79, 55, 58, 53, 61, 71, 72, 76, 89, 52, 64, 50, 56, 57, 73, 67, 50, 54, 54, 65, 60, 63, 54, 45, 63, 126, 53, 53, 68, 55, 61, 59, 57, 77, 64, 57, 88, 47, 78, 71, 50, 64, 65, 61, 70, 74, 77, 49, 52, 78, 56, 62, 88, 77, 71, 62, 51, 64, 48, 54, 82, 106, 68, 55, 58, 62, 58, 77, 70, 78, 59, 78, 52, 69, 57, 62, 60, 91, 66, 70, 46, 77, 82, 64, 63, 50, 47, 56, 53, 81, 64, 56, 84, 67, 70, 60, 83, 100, 64, 75, 50, 78, 67, 55, 58, 68, 67, 71, 53, 46, 44, 55, 86, 57, 92, 52, 52, 61, 68, 95, 49, 52, 56, 71, 70, 60, 63, 51, 51, 60, 74, 63, 71, 62, 64, 75, 60, 75, 68, 67, 57, 73, 61, 68, 63, 55, 30, 50, 52, 64, 80, 74, 68, 109, 85, 66, 84, 70, 44, 51, 67, 77, 50, 55, 59, 71, 52, 67, 72, 40, 55, 71, 85, 77, 55, 70, 63, 53, 83, 64, 60, 60, 56, 107, 91, 62, 60, 65, 73, 47, 77, 41, 65, 54, 107, 48, 77, 52, 67, 50, 68, 57, 80, 62, 72, 56, 43, 73, 55, 63, 52, 59, 58, 60, 77, 54, 123, 52, 71, 54, 65, 64, 68, 51, 60, 68, 64, 58, 55, 70, 89, 53, 67, 37, 62, 57, 72, 72, 58, 75, 66, 39, 83, 69, 67, 52, 54, 155, 64, 43, 52, 59, 70, 123, 66, 69, 100, 58, 55, 65, 59, 62, 73, 79, 64, 83, 64, 62, 62, 63, 71, 62, 89, 73, 69, 67, 53, 117, 76, 61, 75, 70, 54, 68, 58, 82, 55, 63, 40, 70, 57, 41, 73, 60, 79, 51, 81, 52, 71, 71, 60, 52, 73, 85, 36, 95, 66, 60, 68, 79, 61, 58, 79, 76, 70, 64, 67, 79, 75, 76, 46, 66, 62, 49, 41, 68, 83, 73, 64, 53, 64, 54, 60, 84, 43, 48, 69, 66, 74, 66, 70, 71, 60, 64, 51, 42, 70, 47, 63, 78, 53, 71, 61, 46, 54, 58, 71, 45, 55, 56, 39, 76, 74, 56, 90, 63, 74, 49, 69, 69, 54, 70, 50, 62, 74, 77, 81, 73, 61, 59, 87, 71, 61, 60, 87, 90, 73, 77, 92, 57, 40, 64, 68, 72, 59, 61, 64, 68, 42, 70, 67, 55, 43, 68, 92, 63, 49, 76, 55, 72, 80, 67, 100, 60, 72, 55, 50, 70, 75, 56, 74, 58, 85, 64, 53, 88, 74, 72, 50, 62, 85, 44, 76, 80, 66, 94, 84, 44, 57, 75, 46, 104, 61, 69, 59, 72, 56, 68, 69, 47, 49, 51, 85, 61, 60, 70, 68, 65, 59, 74, 63, 73, 83, 69, 96, 62, 50, 59, 50, 109, 52, 58, 41, 74, 88, 76, 48, 60, 56, 84, 54, 83, 54, 66, 78, 54, 32, 71, 86, 63, 54, 49, 99, 61, 54, 53, 72, 71, 76, 64, 48, 86, 52, 102, 79, 59, 75, 85, 71, 62, 68, 78, 76, 69, 55, 73, 68, 67, 52, 40, 70, 57, 95, 71, 82, 88, 57, 52, 94, 59, 71, 61, 51, 38, 49, 65, 53, 58, 85, 48, 61, 61, 84, 66, 64, 48, 72, 62, 68, 46, 64, 64, 86, 71, 82, 68, 50, 58, 61, 70, 74, 75, 63, 65, 84, 57, 63, 59, 80, 72, 74, 60, 49, 52, 78, 57, 85, 66, 81, 74, 102, 74, 48, 66, 56, 76, 63, 81, 84, 61, 52, 107, 69, 73, 50, 97, 48, 78, 64, 49, 83, 97, 75, 72, 84, 56, 90, 91, 47, 70, 41, 69, 43, 46, 55, 81, 53, 53, 68, 65, 68, 38, 54, 62, 84, 72, 55, 59, 67, 65, 78, 80, 53, 80, 58, 73, 50, 60, 52, 57, 77, 82, 89, 45, 56, 69, 38, 71, 44, 68, 48, 46, 41, 51, 55, 40, 86, 67, 81, 104, 68, 103, 66, 74, 78, 76, 70, 62, 48, 73, 49, 80, 71, 65, 59, 78, 76, 123, 52, 82, 64, 79, 68, 75, 59, 36, 65, 77, 65, 40, 57, 80, 62, 46, 50, 45, 78, 60, 64, 47, 65, 50, 80, 87, 67, 55, 81, 61, 75, 52, 73, 64, 62, 58, 63, 62, 45, 60, 85, 90, 57, 71, 45, 97, 84, 61, 77, 74, 62, 70, 60, 60, 54, 54, 65, 64, 70, 58, 51, 59, 56, 55, 57, 79, 63, 48, 75, 42, 70, 83, 77, 74, 56, 43, 58, 50, 51, 71, 76, 41, 80, 61, 69, 50, 74, 44, 111, 53, 49, 47, 67, 62, 96, 67, 71, 53, 73, 60, 86, 80, 101, 59, 60, 101, 63, 51, 75, 59, 129, 61, 68, 70, 79, 75, 51, 64, 61, 48, 57, 91, 59, 86, 88, 65, 59, 60, 52, 73, 56, 44, 71, 71, 70, 57, 85, 64, 111, 45, 73, 53, 66, 57, 75, 83, 75, 55, 64, 63, 65, 77, 62, 67, 48, 89, 61, 59, 82, 65, 73, 72, 48, 72, 68, 71, 57, 53, 75, 55, 67, 76, 70, 83, 79, 75, 56, 62, 71, 127, 68, 68, 54, 59, 82, 65, 51, 74, 100, 70, 91, 61, 57, 46, 49, 106, 76, 54, 61, 95, 54, 53, 71, 48, 81, 27, 66, 100, 52, 97, 55, 59, 88, 44, 47, 68, 62, 60, 58, 44, 51, 61, 71, 68, 60, 76, 71, 71, 59, 71, 71, 60, 65, 73, 82, 47, 79, 71, 91, 60, 57, 71, 72, 65, 81, 77, 113, 90, 61, 69, 57, 72, 63, 66, 61, 57, 87, 53, 53, 56, 61, 59, 46, 60, 74, 72, 105, 52, 47, 52, 66, 67, 63, 79, 82, 74, 73, 46, 94, 75, 76, 69, 50, 85, 45, 71, 54, 68, 75, 56, 61, 61, 77, 70, 74, 75, 78, 86, 64, 66, 56, 34, 65, 86, 55, 90, 62, 59, 96, 65, 54, 55, 89, 90, 72, 63, 84, 65, 86, 59, 71, 51, 62, 75, 70, 88, 113, 66, 90, 56, 72, 58, 44, 58, 64, 81, 62, 65, 59, 89, 49, 94, 67, 55, 52, 52, 47, 54, 77, 66, 92, 75, 60, 79, 54, 76, 65, 63, 79, 65, 87, 51, 86, 55, 88, 44, 76, 84, 82, 68, 57, 54, 76, 55, 74, 44, 46, 111, 79, 97, 70, 66, 64, 103, 58, 97, 84, 73, 62, 97, 54, 92, 66, 91, 55, 77, 82, 70, 73, 55, 65, 103, 53, 49, 68, 89, 42, 63, 70, 56, 74, 49, 66, 80, 97, 59, 47, 60, 84, 57, 39, 32, 59, 57, 80, 63, 95, 63, 86, 96, 61, 47, 89, 51, 71, 62, 59, 69, 52, 58, 55, 74, 68, 70, 37, 61, 63, 94, 52, 71, 62, 58, 64, 74, 63, 94, 52, 61, 58, 60, 59, 55, 79, 58, 82, 74, 29, 50, 54, 47, 42, 100, 70, 73, 68, 48, 68, 64, 60, 88, 74, 56, 77, 57, 59, 47, 55, 56, 82, 53, 53, 66, 86, 59, 64, 59, 56, 62, 89, 58, 70, 57, 58, 76, 67, 61, 69, 62, 66, 58, 67, 57, 62, 87, 67, 60, 82, 56, 79, 93, 62, 69, 75, 70, 55, 60, 78, 71, 85, 126, 78, 61, 77, 89, 59, 57, 81, 74, 63, 72, 59, 75, 57, 63, 76, 74, 71, 57, 47, 80, 77, 64, 67, 69, 72, 55, 75, 62, 81, 66, 116, 82, 69, 100, 67, 54, 69, 77, 73, 56, 40, 81, 41, 35, 57, 60, 48, 64, 66, 47, 58, 81, 58, 57, 84, 58, 61, 67, 56, 77, 93, 55, 57, 64, 110, 72, 81, 53, 56, 50, 68, 36, 54, 67, 70, 57, 55, 56, 97, 49, 61, 52, 64, 77, 80, 59, 60, 59, 59, 55, 85, 55, 45, 82, 59, 60, 52, 64, 72, 59, 61, 55, 54, 73, 48, 62, 44, 61, 76, 59, 64, 62, 52, 53, 91, 53, 68, 77, 68, 65, 43, 73, 55, 77, 95, 62, 77, 45, 53, 62, 111, 93, 65, 135, 63, 66, 61, 72, 76, 62, 66, 62, 34, 64, 58, 52, 65, 53, 55, 58, 61, 84, 45, 61, 73, 62, 59, 69, 56, 42, 68, 56, 61, 74, 77, 57, 65, 57, 64, 46, 40, 66, 67, 50, 54, 63, 60, 62, 70, 70, 70, 49, 54, 70, 90, 71, 84, 60, 59, 91, 72, 59, 66, 69, 73, 60, 67, 78, 69, 66, 61, 48, 75, 74, 100, 50, 85, 53, 76, 71, 72, 72, 54, 50, 75, 61, 61, 83, 74, 60, 64, 36, 47, 71, 63, 75, 61, 74, 74, 51, 53, 66, 64, 60, 63, 91, 57, 78, 45, 58, 60, 91, 59, 57, 54, 60, 58, 67, 60, 59, 75, 58, 70, 85, 59, 64, 65, 47, 59, 66, 55, 48, 57, 67, 55, 77, 61, 62, 73, 59, 44, 58, 55, 51, 77, 71, 71, 70, 68, 57, 59, 58, 66, 63, 63, 56, 59, 66, 68, 57, 68, 42, 72, 56, 56, 65, 61, 70, 66, 56, 54, 55, 54, 46, 64, 72, 63, 63, 66, 63, 36, 58, 79, 87, 58, 94, 68, 85, 56, 90, 56, 57, 67, 56, 84, 63, 70, 56, 71, 61, 54, 64, 53, 50, 57, 55, 61, 70, 77, 90, 51, 73, 101, 60, 59, 61, 62, 85, 53, 67, 76, 75, 59, 77, 57, 67, 62, 57, 53, 59, 60, 61, 82, 62, 62, 50, 65, 62, 55, 94, 42, 82, 56, 49, 63, 61, 69, 67, 77, 49, 85, 62, 47, 44, 42, 54, 61, 54, 66, 58, 37, 71, 119, 64, 69, 54, 54, 57, 83, 53, 51, 47, 75, 86, 76, 51, 53, 64, 83, 59, 69, 62, 61, 69, 59, 51, 62, 60, 59, 84, 86, 57, 86, 58, 71, 52, 70, 63, 56, 66, 55, 56, 44, 65, 68, 112, 39, 63, 56, 93, 52, 69, 76, 73, 72, 120, 58, 66, 53, 56, 68, 69, 75, 73, 65, 88, 61, 54, 65, 58, 64, 65, 62, 71, 61, 80, 61, 95, 63, 62, 58, 64, 64, 59, 63, 63, 99, 63, 62, 80, 88, 54, 67, 56, 45, 45, 61, 56, 71, 67, 82, 64, 58, 63, 58, 53, 104, 68, 64, 61, 73, 57, 55, 85, 61, 57, 72, 77, 105, 60, 65, 48, 67, 64, 64, 59, 59, 53, 63, 61, 53, 54, 83, 54, 103, 66, 64, 68, 60, 63, 64, 62, 70, 63, 74, 53, 63, 70, 60, 95, 67, 72, 67, 78, 55, 76, 53, 65, 95, 67, 120, 65, 64, 97, 63, 59, 56, 56, 78, 63, 52, 90, 65, 58, 80, 41, 85, 71, 62, 78, 60, 64, 65, 87, 97, 72, 67, 59, 99, 47, 86, 63, 57, 66, 63, 79, 83, 61, 68, 53, 73, 58, 69, 60, 77, 67, 79, 71, 61, 44, 62, 98, 84, 58, 74, 58, 73, 53, 52, 55, 68, 55, 58, 63, 61, 63, 61, 78, 70, 39, 60, 66, 60, 61, 54, 92, 56, 78, 79, 77, 75, 64, 49, 68, 67, 60, 49, 86, 63, 66, 57, 52, 77, 78, 65, 67, 69, 92, 79, 66, 80, 67, 66, 64, 60, 64, 70, 58, 60, 51, 56, 84, 55, 75, 57, 71, 92, 68, 57, 51, 57, 51, 50, 72, 58, 69, 69, 68, 55, 55, 71, 46, 68, 63, 54, 51, 72, 78, 74, 47, 71, 62, 57, 60, 67, 103, 55, 105, 103, 105, 57, 86, 60, 64, 64, 74, 66, 63, 54, 77, 54, 65, 76, 49, 71, 93, 60, 57, 65, 100, 68, 54, 73, 74, 64, 67, 69, 68, 61, 81, 63, 64, 74, 56, 61, 82, 62, 64, 53, 61, 63, 67, 73, 67, 79, 60, 52, 63, 74, 78, 53, 86, 69, 57, 69, 90, 67, 59, 60, 64, 107, 57, 71, 55, 81, 65, 55, 59, 65, 56, 68, 84, 76, 78, 64, 64, 71, 66, 61, 58, 69, 89, 53, 70, 62, 57, 66, 91, 64, 137, 51, 63, 68, 65, 51, 65, 59, 74, 84, 58, 51, 43, 61, 63, 73, 69, 55, 69, 61, 59, 54, 61, 91, 66, 82, 63, 41, 66, 58, 57, 49, 69, 78, 65, 63, 103, 65, 44, 55, 56, 71, 79, 56, 63, 68, 67, 68, 65, 64, 95, 68, 68, 75, 55, 70, 70, 53, 52, 67, 60, 46, 61, 46, 61, 51, 57, 97, 93, 86, 59, 59, 79, 68, 63, 52, 58, 70, 68, 60, 74, 84, 63, 63, 83, 74, 64, 52, 55, 69, 56, 62, 63, 64, 55, 66, 69, 66, 64, 68, 65, 63, 66, 73, 67, 68, 70, 59, 52, 81, 58, 52, 82, 78, 66, 49, 60, 62, 87, 62, 72, 64, 125, 70, 99, 56, 92, 55, 51, 90, 115, 83, 108, 54, 60, 89, 64, 90, 61, 60, 76, 58, 67, 67, 61, 56, 60, 85, 61, 64, 53, 100, 69, 97, 68, 62, 55, 67, 56, 68, 73, 78, 87, 51, 66, 52, 76, 79, 47, 73, 68, 58, 71, 62, 77, 50, 58, 82, 49, 63, 65, 60, 47, 66, 51, 51, 41, 64, 55, 71, 57, 57, 108, 58, 57, 58, 91, 80, 45, 73, 60, 76, 65, 55, 64, 67, 63, 64, 57, 60, 62, 61, 90, 72, 74, 57, 59, 63, 44, 56, 57, 57, 54, 51, 50, 71, 61, 80, 60, 68, 54, 73, 60, 58, 75, 55, 67, 63, 69, 60, 65, 58, 36, 58, 54, 75, 54, 75, 66, 61, 100, 63, 71, 67, 53, 69, 53, 57, 56, 65, 64, 47, 64, 67, 68, 49, 55, 60, 92, 61, 55, 63, 75, 63, 78, 62, 65, 43, 71, 60, 62, 47, 49, 82, 80, 67, 59, 74, 60, 56, 68, 90, 45, 72, 61, 63, 47, 68, 82, 51, 62, 134, 79, 64, 69, 60, 71, 42, 51, 71, 44, 124, 69, 68, 70, 49, 69, 65, 54, 72, 54, 63, 71, 71, 51, 70, 52, 74, 104, 63, 35, 74, 58, 54, 57, 55, 64, 65, 56, 57, 48, 67, 67, 102, 56, 58, 65, 60, 74, 73, 47, 47, 81, 74, 55, 51, 63, 74, 59, 85, 62, 53, 71, 66, 72, 70, 53, 55, 96, 50, 50, 51, 93, 52, 62, 58, 69, 70, 60, 66, 58, 55, 67, 63, 51, 51, 64, 58, 67, 62, 56, 87, 66, 54, 70, 76, 96, 144, 67, 55, 77, 59, 78, 78, 68, 79, 72, 42, 83, 67, 74, 87, 59, 87, 65, 71, 54, 83, 70, 74, 69, 60, 70, 48, 65, 82, 70, 43, 57, 63, 61, 66, 76, 88, 64, 69, 55, 93, 73, 59, 64, 98, 91, 45, 78, 57, 91, 77, 61, 81, 73, 66, 66, 67, 78, 106, 41, 63, 72, 47, 90, 75, 65, 46, 53, 38, 74, 64, 57, 61, 69, 54, 33, 77, 61, 56, 63, 54, 71, 84, 54, 57, 66, 67, 58, 52, 71, 59, 86, 62, 51, 76, 51, 60, 74, 59, 64, 68, 57, 49, 86, 58, 47, 48, 50, 104, 88, 38, 69, 63, 54, 53, 54, 60, 76, 49, 76, 67, 65, 45, 61, 102, 54, 64, 55, 64, 66, 44, 64, 54, 73, 54, 46, 95, 77, 75, 37, 89, 68, 77, 60, 73, 66, 41, 65, 52, 75, 56, 49, 56, 62, 55, 48, 74, 46, 62, 53, 59, 58, 59, 69, 62, 45, 50, 42, 71, 67, 55, 69, 56, 71, 45, 64, 56, 49, 49, 59, 81, 67, 74, 56, 58, 62, 60, 85, 47, 60, 67, 70, 79, 49, 55, 129, 72, 64, 63, 51, 51, 89, 78, 61, 77, 50, 58, 66, 65, 65, 95, 88, 83, 77, 57, 62, 49, 61, 66, 57, 65, 58, 82, 83, 59, 85, 49, 76, 52, 115, 67, 71, 60, 76, 58, 74, 53, 86, 50, 54, 63, 75, 49, 71, 85, 73, 63, 75, 70, 62, 73, 68, 53, 52, 70, 72, 87, 81, 74, 67, 63, 50, 55, 52, 47, 71, 59, 76, 49, 42, 61, 98, 63, 58, 54, 68, 63, 54, 64, 82, 70, 56, 83, 60, 74, 62, 70, 55, 61, 97, 78, 57, 67, 66, 75, 38, 70, 85, 56, 170, 83, 82, 58, 83, 80, 62, 57, 94, 63, 55, 80, 55, 69, 37, 58, 62, 62, 60, 71, 65, 60, 58, 61, 73, 59, 98, 74, 41, 70, 71, 50, 38, 83, 59, 85, 76, 58, 46, 71, 59, 56, 70, 71, 61, 67, 58, 78, 85, 84, 65, 43, 89, 51, 54, 65, 71, 75, 51, 69, 65, 90, 68, 71, 55, 67, 71, 67, 54, 61, 68, 84, 50, 49, 66, 81, 60, 67, 97, 80, 56, 62, 90, 72, 89, 48, 60, 62, 66, 44, 70, 48, 58, 57, 61, 73, 74, 57, 70, 74, 77, 47, 60, 77, 56, 48, 80, 68, 108, 83, 75, 59, 74, 70, 65, 67, 92, 61, 67, 69, 71, 52, 65, 67, 39, 86, 67, 56, 73, 57, 62, 55, 57, 60, 75, 57, 68, 77, 62, 72, 60, 39, 73, 79, 61, 54, 51, 89, 57, 52, 72, 69, 62, 55, 62, 96, 65, 63, 77, 61, 75, 58, 55, 77, 70, 69, 62, 70, 94, 81, 55, 62, 61, 74, 74, 69, 47, 59, 73, 58, 65, 55, 66, 63, 71, 35, 56, 44, 66, 77, 65, 64, 105, 41, 61, 114, 59, 60, 152, 63, 47, 71, 59, 65, 77, 52, 56, 62, 60, 45, 58, 51, 76, 73, 54, 62, 75, 58, 58, 68, 76, 63, 53, 81, 80, 54, 76, 65, 65, 75, 91, 60, 68, 72, 63, 64, 59, 65, 59, 56, 73, 52, 53, 56, 65, 47, 48, 44, 59, 64, 65, 55, 87, 56, 79, 77, 68, 54, 98, 58, 73, 39, 69, 63, 59, 63, 54, 66, 64, 71, 52, 46, 64, 71, 50, 70, 81, 54, 78, 54, 69, 63, 69, 56, 86, 48, 73, 82, 61, 83, 49, 49, 85, 70, 75, 65, 67, 47, 63, 73, 63, 56, 56, 64, 73, 47, 55, 62, 64, 58, 59, 58, 67, 37, 71, 84, 61, 70, 70, 62, 61, 69, 70, 50, 58, 78, 86, 62, 79, 66, 56, 84, 61, 57, 56, 51, 83, 41, 63, 61, 63, 57, 67, 75, 98, 59, 87, 53, 72, 73, 86, 77, 95, 73, 77, 68, 63, 66, 70, 72, 70, 50, 64, 73, 64, 91, 46, 49, 63, 66, 97, 65, 83, 74, 54, 74, 52, 62, 74, 74, 152, 57, 76, 78, 44, 59, 54, 58, 75, 69, 56, 62, 76, 77, 72, 74, 89, 61, 32, 80, 65, 90, 68, 71, 48, 69, 73, 61, 62, 51, 62, 61, 81, 66, 70, 72, 63, 74, 62, 67, 69, 62, 63, 79, 80, 68, 67, 54, 56, 48, 76, 61, 54, 59, 87, 43, 138, 85, 83, 67, 67, 59, 47, 76, 68, 67, 72, 58, 44, 74, 52, 61, 71, 60, 58, 111, 94, 60, 105, 53, 57, 48, 46, 61, 93, 88, 73, 68, 75, 51, 78, 82, 72, 94, 73, 75, 65, 79, 44, 78, 75, 66, 66, 67, 69, 70, 60, 63, 80, 73, 80, 68, 77, 63, 55, 54, 71, 91, 70, 68, 48, 97, 75, 58, 71, 67, 56, 92, 37, 71, 76, 75, 49, 68, 76, 61, 82, 68, 71, 81, 70, 69, 58, 50, 68, 64, 70, 56, 60, 56, 81, 72, 80, 59, 64, 55, 63, 64, 77, 66, 67, 58, 65, 74, 71, 79, 60, 53, 78, 79, 68, 49, 82, 58, 65, 66, 54, 53, 60, 67, 57, 62, 72, 56, 70, 63, 62, 67, 53, 135, 68, 56, 49, 69, 75, 41, 46, 69, 59, 57, 88, 47, 65, 76, 77, 52, 39, 73, 68, 74, 62, 63, 60, 63, 61, 46, 65, 85, 80, 72, 64, 65, 65, 48, 43, 48, 66, 54, 43, 51, 66, 82, 77, 61, 73, 70, 53, 46, 102, 63, 59, 68, 73, 80, 60, 65, 58, 64, 63, 89, 77, 81, 55, 49, 94, 89, 52, 70, 69, 70, 49, 52, 49, 58, 65, 59, 56, 96, 81, 67, 57, 50, 66, 65, 61, 56, 51, 66, 106, 66, 65, 82, 64, 59, 60, 97, 76, 60, 82, 60, 55, 78, 74, 54, 68, 71, 47, 61, 55, 77, 58, 65, 41, 92, 74, 74, 54, 57, 58, 58, 58, 48, 76, 73, 63, 60, 93, 68, 67, 68, 66, 79, 74, 71, 66, 54, 59, 49, 84, 73, 75, 69, 55, 65, 73, 76, 61, 64, 65, 67, 62, 59, 59, 53, 71, 62, 53, 120, 61, 64, 83, 63, 57, 91, 78, 85, 67, 53, 63, 59, 64, 67, 63, 53, 48, 67, 76, 50, 61, 63, 69, 63, 59, 52, 60, 54, 53, 63, 106, 65, 55, 72, 61, 49, 76, 82, 78, 63, 71, 58, 50, 92, 88, 43, 62, 62, 59, 80, 76, 50, 53, 77, 72, 52, 61, 55, 71, 53, 85, 56, 70, 51, 62, 46, 73, 58, 71, 68, 68, 55, 69, 64, 62, 54, 55, 46, 73, 76, 48, 56, 52, 61, 46, 78, 44, 47, 69, 60, 52, 58, 61, 66, 67, 111, 61, 59, 57, 47, 68, 58, 66, 67, 67, 59, 35, 54, 75, 51, 52, 101, 60, 52, 63, 78, 54, 44, 61, 63, 66, 58, 70, 51, 66, 65, 67, 67, 67, 62, 94, 63, 62, 71, 67, 50, 74, 59, 56, 64, 82, 67, 54, 79, 116, 66, 73, 101, 79, 103, 52, 53, 71, 58, 68, 92, 64, 52, 59, 63, 80, 53, 89, 90, 52, 66, 55, 96, 46, 95, 56, 90, 71, 60, 39, 83, 61, 67, 94, 93, 70, 72, 68, 145, 63, 53, 58, 53, 64, 69, 50, 59, 78, 53, 76, 68, 60, 61, 83, 49, 58, 43, 113, 58, 53, 78, 54, 67, 64, 57, 68, 46, 57, 67, 51, 55, 63, 60, 48, 55, 48, 69, 55, 63, 79, 47, 66, 79, 65, 84, 83, 71, 77, 59, 50, 65, 35, 76, 75, 52, 61, 47, 69, 55, 59, 75, 59, 149, 70, 56, 63, 69, 62, 53, 43, 81, 62, 49, 50, 68, 63, 62, 64, 46, 54, 95, 70, 52, 81, 70, 66, 66, 98, 52, 67, 75, 83, 73, 72, 82, 88, 113, 79, 43, 74, 61, 73, 53, 47, 49, 60, 63, 44, 92, 55, 59, 71, 86, 61, 63, 66, 76, 60, 72, 86, 65, 58, 77, 63, 62, 43, 61, 80, 47, 72, 56, 64, 63, 64, 73, 52, 68, 82, 60, 51, 55, 60, 51, 90, 76, 66, 71, 69, 71, 57, 114, 64, 65, 56, 75, 60, 61, 62, 75, 50, 58, 59, 71, 54, 49, 49, 62, 63, 70, 83, 79, 49, 48, 64, 70, 59, 59, 91, 54, 62, 68, 64, 70, 80, 62, 69, 54, 67, 58, 71, 59, 47, 52, 69, 69, 68, 69, 59, 74, 73, 46, 70, 86, 66, 47, 68, 55, 57, 84, 72, 77, 49, 69, 61, 61, 56, 52, 91, 57, 62, 55, 71, 65, 62, 66, 60, 64, 65, 64, 73, 66, 85, 59, 50, 81, 54, 68, 56, 50, 61, 51, 70, 74, 57, 56, 74, 54, 69, 69, 48, 72, 62, 62, 73, 67, 71, 55, 65, 77, 70, 83, 53, 63, 76, 86, 60, 53, 77, 54, 62, 61, 72, 75, 63, 63, 63, 68, 74, 67, 48, 72, 68, 58, 55, 48, 55, 72, 57, 51, 105, 58, 62, 73, 54, 64, 81, 68, 66, 99, 54, 57, 54, 66, 60, 60, 81, 75, 71, 58, 75, 44, 64, 125, 61, 55, 86, 61, 74, 52, 54, 74, 67, 65, 66, 68, 64, 58, 85, 73, 74, 71, 63, 47, 104, 67, 60, 66, 57, 63, 53, 54, 71, 66, 61, 82, 118, 83, 56, 65, 57, 59, 73, 65, 82, 53, 56, 54, 64, 49, 58, 58, 51, 89, 88, 49, 75, 67, 56, 63, 77, 57, 65, 63, 59, 52, 48, 103, 67, 78, 51, 52, 49, 62, 69, 86, 56, 65, 77, 93, 59, 81, 53, 48, 68, 57, 65, 69, 56, 58, 57, 76, 78, 65, 51, 51, 83, 59, 57, 54, 58, 63, 59, 53, 75, 54, 64, 160, 79, 63, 109, 50, 58, 59, 58, 65, 54, 61, 61, 46, 56, 77, 71, 61, 56, 64, 60, 58, 60, 80, 57, 73, 66, 85, 53, 57, 73, 85, 63, 80, 56, 93, 89, 62, 75, 51, 54, 33, 68, 68, 70, 62, 69, 86, 57, 66, 94, 58, 54, 37, 63, 84, 74, 48, 67, 52, 58, 50, 62, 56, 61, 69, 55, 63, 68, 57, 45, 61, 65, 56, 65, 61, 60, 66, 65, 71, 62, 58, 63, 72, 66, 90, 74, 59, 77, 67, 64, 144, 46, 86, 73, 76, 65, 89, 93, 60, 58, 58, 68, 116, 71, 68, 97, 56, 70, 64, 69, 61, 72, 34, 60, 65, 70, 65, 64, 76, 67, 64, 81, 98, 47, 99, 67, 126, 42, 56, 50, 60, 76, 38, 73, 61, 84, 83, 81, 54, 58, 54, 63, 59, 58, 61, 62, 91, 41, 80, 84, 73, 43, 61, 78, 54, 65, 52, 63, 73, 116, 61, 59, 59, 61, 63, 67, 71, 66, 50, 71, 50, 72, 65, 62, 71, 47, 70, 72, 63, 49, 55, 104, 66, 58, 58, 56, 69, 76, 53, 61, 57, 68, 71, 94, 69, 63, 61, 68, 61, 69, 59, 74, 73, 72, 54, 85, 52, 94, 74, 67, 78, 61, 75, 61, 58, 59, 51, 58, 68, 47, 61, 128, 64, 55, 88, 73, 57, 61, 57, 63, 70, 58, 68, 75, 102, 73, 68, 85, 56, 72, 61, 55, 53, 59, 75, 107, 69, 91, 63, 49, 92, 60, 64, 47, 81, 63, 71, 129, 75, 53, 56, 64, 64, 57, 65, 74, 54, 78, 58, 56, 66, 71, 51, 84, 59, 62, 63, 59, 60, 63, 70, 98, 93, 61, 72, 61, 53, 74, 60, 66, 66, 63, 55, 72, 61, 49, 69, 72, 58, 62, 80, 59, 62, 53, 52, 65, 63, 68, 70, 62, 52, 51, 65, 90, 50, 63, 63, 72, 56, 74, 57, 75, 72, 56, 93, 54, 81, 65, 56, 54, 50, 54, 60, 63, 48, 75, 59, 77, 51, 98, 74, 53, 78, 75, 85, 82, 75, 67, 75, 60, 58, 54, 68, 79, 57, 102, 73, 51, 58, 45, 63, 51, 50, 56, 142, 53, 64, 65, 48, 67, 62, 75, 55, 58, 43, 99, 72, 65, 83, 86, 63, 71, 78, 55, 55, 79, 67, 86, 44, 54, 99, 57, 53, 86, 72, 56, 63, 79, 57, 60, 60, 79, 77, 65, 58, 67, 51, 62, 58, 84, 67, 48, 71, 52, 61, 96, 62, 116, 70, 51, 76, 62, 72, 64, 65, 59, 54, 54, 66, 73, 68, 53, 78, 42, 79, 85, 59, 61, 66, 76, 49, 59, 81, 55, 64, 61, 39, 54, 55, 54, 56, 70, 83, 109, 124, 50, 98, 85, 70, 71, 65, 54, 103, 60, 58, 81, 63, 67, 56, 44, 60, 67, 61, 82, 58, 75, 64, 55, 54, 82, 87, 37, 53, 95, 80, 65, 63, 54, 54, 53, 58, 91, 64, 52, 48, 89, 67, 64, 68, 92, 66, 50, 66, 46, 36, 57, 64, 58, 57, 57, 92, 68, 69, 51, 51, 142, 55, 63, 57, 86, 53, 52, 68, 92, 44, 52, 76, 55, 55, 71, 81, 42, 67, 70, 66, 86, 50, 58, 90, 63, 74, 52, 64, 72, 77, 75, 77, 66, 58, 59, 63, 94, 64, 57, 64, 63, 51, 85, 55, 43, 61, 58, 65, 64, 58, 54, 72, 53, 97, 54, 56, 61, 85, 58, 73, 70, 58, 81, 79, 85, 60, 70, 59, 83, 64, 64, 85, 36, 68, 59, 59, 65, 57, 80, 68, 76, 75, 57, 53, 76, 57, 68, 84, 47, 83, 51, 52, 67, 55, 55, 65, 92, 65, 56, 129, 64, 57, 52, 74, 62, 55, 31, 80, 55, 72, 57, 65, 98, 71, 54, 75, 73, 64, 48, 59, 65, 56, 68, 61, 60, 86, 58, 51, 62, 44, 66, 88, 56, 62, 64, 37, 62, 82, 59, 49, 75, 52, 98, 56, 50, 52, 50, 86, 86, 46, 96, 71, 65, 86, 60, 84, 47, 69, 106, 64, 75, 57, 68, 60, 87, 62, 63, 55, 59, 64, 68, 91, 73, 61, 63, 72, 68, 58, 84, 44, 70, 95, 62, 72, 75, 65, 60, 97, 104, 60, 71, 75, 66, 62, 91, 63, 62, 51, 59, 71, 54, 77, 79, 87, 62, 54, 50, 79, 84, 83, 70, 111, 84, 70, 60, 55, 58, 63, 55, 58, 62, 50, 86, 53, 64, 48, 52, 30, 75, 65, 52, 58, 68, 60, 70, 60, 64, 57, 50, 75, 65, 48, 58, 72, 73, 85, 66, 47, 80, 102, 63, 61, 70, 56, 59, 85, 53, 97, 56, 38, 73, 104, 55, 67, 81, 73, 85, 70, 57, 52, 76, 69, 61, 71, 54, 79, 70, 60, 97, 54, 79, 71, 68, 54, 92, 62, 51, 55, 83, 71, 76, 89, 56, 38, 59, 69, 71, 78, 64, 45, 76, 59, 106, 33, 69, 93, 49, 65, 66, 62, 99, 74, 67, 48, 66, 71, 65, 56, 59, 93, 66, 99, 83, 54, 58, 69, 68, 67, 75, 75, 65, 56, 83, 97, 82, 80, 65, 73, 52, 76, 72, 72, 72, 75, 58, 76, 73, 54, 66, 56, 63, 61, 86, 59, 81, 63, 59, 63, 62, 60, 64, 57, 86, 51, 80, 74, 80, 70, 43, 49, 61, 82, 54, 56, 68, 60, 62, 57, 77, 70, 73, 72, 54, 61, 48, 70, 70, 79, 62, 49, 68, 99, 51, 60, 79, 75, 66, 67, 55, 51, 70, 71, 49, 62, 56, 51, 55, 53, 55, 57, 80, 70, 86, 56, 76, 62, 76, 46, 73, 74, 72, 76, 77, 67, 65, 47, 56, 70, 81, 69, 72, 74, 76, 54, 58, 68, 99, 44, 73, 53, 49, 63, 55, 62, 88, 70, 42, 82, 57, 61, 53, 57, 71, 51, 49, 56, 108, 103, 60, 84, 81, 72, 57, 86, 67, 68, 50, 73, 63, 81, 68, 49, 78, 49, 66, 53, 67, 47, 65, 49, 103, 63, 61, 68, 32, 58, 75, 62, 60, 54, 43, 63, 60, 77, 76, 67, 36, 66, 64, 67, 90, 49, 81, 65, 57, 51, 62, 51, 88, 66, 67, 52, 68, 54, 84, 82, 85, 76, 70, 65, 57, 63, 115, 62, 47, 54, 96, 53, 71, 115, 51, 44, 73, 87, 61, 59, 71, 58, 69, 64, 47, 56, 79, 70, 60, 101, 54, 78, 72, 83, 83, 59, 100, 72, 60, 80, 77, 59, 77, 50, 96, 76, 30, 80, 60, 71, 59, 87, 65, 82, 83, 79, 58, 92, 63, 57, 51, 70, 65, 51, 60, 81, 61, 51, 72, 58, 69, 63, 49, 60, 52, 71, 71, 74, 39, 82, 57, 50, 63, 67, 62, 53, 58, 61, 55, 80, 73, 67, 72, 51, 57, 87, 54, 71, 63, 56, 58, 66, 82, 72, 68, 60, 46, 75, 59, 56, 79, 65, 53, 50, 72, 76, 67, 86, 66, 61, 65, 59, 87, 42, 63, 71, 79, 74, 51, 57, 38, 59, 51, 69, 98, 69, 62, 74, 54, 39, 113, 53, 51, 57, 42, 111, 90, 54, 70, 86, 67, 63, 56, 69, 61, 71, 70, 53, 64, 68, 89, 45, 44, 80, 48, 66, 59, 86, 80, 57, 66, 49, 53, 53, 81, 51, 61, 66, 66, 82, 78, 51, 61, 62, 48, 79, 66, 61, 76, 49, 82, 63, 56, 127, 70, 41, 59, 72, 61, 58, 58, 64, 84, 64, 78, 52, 52, 56, 53, 48, 76, 61, 66, 81, 54, 47, 73, 74, 68, 62, 77, 58, 65, 87, 61, 63, 41, 72, 40, 80, 78, 58, 81, 48, 86, 54, 76, 82, 79, 73, 67, 70, 92, 54, 74, 70, 57, 57, 56, 53, 73, 57, 65, 61, 51, 71, 67, 53, 64, 92, 46, 53, 75, 57, 62, 63, 90, 77, 80, 71, 69, 85, 72, 83, 75, 81, 55, 45, 76, 45, 64, 80, 45, 70, 67, 59, 54, 56, 59, 75, 73, 74, 84, 62, 69, 81, 46, 64, 73, 63, 62, 56, 60, 61, 82, 88, 84, 67, 54, 38, 96, 66, 57, 60, 46, 57, 75, 79, 46, 77, 68, 64, 61, 63, 56, 67, 69, 58, 68, 74, 63, 95, 65, 68, 62, 68, 64, 107, 92, 132, 88, 74, 90, 74, 67, 81, 99, 49, 65, 67, 65, 69, 60, 88, 59, 54, 72, 49, 43, 48, 60, 81, 65, 69, 93, 52, 52, 67, 57, 49, 70, 63, 88, 56, 78, 72, 83, 70, 56, 59, 64, 52, 59, 72, 57, 70, 58, 76, 72, 57, 86, 40, 56, 60, 47, 63, 52, 56, 53, 76, 69, 81, 64, 62, 66, 103, 56, 70, 78, 70, 80, 88, 60, 52, 50, 53, 79, 68, 53, 93, 71, 73, 51, 66, 55, 50, 59, 81, 66, 50, 52, 58, 68, 81, 53, 56, 63, 106, 57, 49, 41, 80, 46, 61, 63, 69, 79, 63, 79, 60, 57, 40, 88, 64, 55, 65, 60, 59, 71, 70, 53, 69, 51, 78, 46, 69, 70, 76, 83, 60, 59, 65, 56, 56, 72, 52, 62, 49, 61, 77, 61, 66, 56, 70, 52, 71, 62, 49, 74, 93, 62, 77, 49, 50, 73, 54, 43, 63, 55, 46, 79, 69, 39, 65, 51, 60, 73, 46, 63, 97, 73, 72, 72, 84, 73, 65, 69, 60, 68, 67, 59, 76, 77, 72, 86, 70, 62, 59, 98, 59, 62, 56, 96, 70, 72, 72, 72, 62, 79, 47, 67, 63, 74, 66, 59, 90, 52, 67, 61, 63, 54, 55, 58, 73, 62, 77, 59, 78, 55, 62, 56, 77, 59, 68, 60, 105, 50, 77, 82, 89, 65, 50, 56, 53, 80, 55, 54, 92, 75, 52, 78, 58, 69, 64, 68, 63, 61, 46, 46, 66, 33, 93, 49, 57, 69, 56, 109, 61, 70, 61, 67, 54, 55, 75, 57, 69, 53, 45, 66, 115, 80, 65, 58, 68, 70, 52, 62, 68, 77, 97, 76, 46, 49, 54, 55, 78, 84, 62, 73, 81, 62, 44, 56, 76, 75, 54, 71, 68, 53, 92, 58, 49, 63, 61, 72, 81, 57, 66, 62, 107, 95, 52, 56, 58, 52, 52, 70, 93, 64, 57, 76, 64, 45, 111, 50, 49, 99, 64, 53, 92, 71, 75, 70, 65, 62, 67, 80, 62, 83, 55, 64, 53, 49, 69, 88, 71, 67, 61, 104, 48, 67, 69, 64, 48, 61, 70, 72, 84, 71, 62, 65, 72, 74, 58, 64, 57, 83, 60, 66, 71, 99, 86, 85, 61, 80, 50, 60, 67, 59, 50, 71, 60, 51, 63, 54, 47, 60, 60, 49, 60, 51, 75, 63, 63, 114, 56, 75, 48, 70, 59, 54, 57, 59, 60, 56, 100, 81, 69, 65, 65, 66, 86, 67, 59, 68, 129, 53, 61, 65, 74, 70, 71, 85, 67, 65, 71, 64, 67, 58, 46, 68, 61, 54, 73, 102, 72, 59, 88, 74, 56, 84, 72, 76, 54, 58, 57, 89, 68, 80, 65, 49, 54, 68, 67, 54, 84, 57, 55, 76, 65, 74, 71, 66, 70, 44, 92, 72, 79, 65, 73, 89, 59, 54, 71, 65, 62, 59, 47, 71, 81, 90, 47, 83, 63, 61, 51, 49, 77, 82, 47, 100, 51, 111, 69, 81, 77, 47, 72, 67, 68, 51, 71, 63, 60, 73, 87, 54, 82, 65, 65, 80, 62, 69, 54, 72, 54, 79, 55, 64, 70, 64, 64, 92, 79, 55, 55, 67, 71, 57, 74, 52, 51, 70, 70, 64, 62, 51, 69, 62, 59, 38, 54, 62, 92, 43, 76, 64, 51, 59, 64, 54, 76, 38, 64, 61, 53, 77, 46, 48, 64, 64, 72, 89, 98, 45, 47, 70, 105, 56, 75, 62, 67, 36, 67, 71, 85, 89, 53, 62, 52, 61, 74, 90, 43, 82, 54, 73, 66, 70, 69, 72, 53, 70, 87, 61, 41, 47, 60, 65, 63, 69, 61, 100, 75, 51, 65, 53, 100, 56, 74, 65, 62, 67, 60, 67, 55, 50, 75, 70, 105, 66, 53, 53, 58, 64, 61, 62, 47, 44, 71, 81, 59, 70, 71, 74, 95, 74, 59, 69, 56, 63, 68, 56, 57, 76, 49, 84, 89, 57, 82, 71, 66, 73, 57, 61, 59, 77, 65, 87, 64, 57, 85, 59, 134, 63, 83, 66, 85, 53, 80, 83, 61, 69, 80, 68, 75, 70, 64, 69, 58, 62, 82, 87, 50, 45, 56, 69, 51, 72, 58, 71, 78, 60, 63, 70, 55, 60, 55, 67, 87, 53, 66, 70, 62, 72, 60, 71, 65, 67, 63, 62, 67, 61, 65, 50, 121, 65, 68, 76, 82, 60, 49, 60, 53, 58, 98, 58, 65, 59, 55, 51, 60, 56, 61, 80, 68, 71, 51, 49, 43, 65, 66, 47, 59, 88, 40, 48, 37, 68, 85, 55, 70, 77, 79, 69, 59, 63, 67, 57, 48, 50, 72, 76, 57, 74, 61, 52, 39, 65, 47, 59, 59, 74, 40, 77, 82, 57, 86, 72, 58, 66, 55, 67, 77, 85, 75, 77, 74, 48, 47, 56, 66, 53, 55, 55, 70, 80, 62, 70, 49, 86, 77, 63, 52, 67, 61, 56, 60, 70, 72, 95, 77, 63, 55, 77, 59, 58, 80, 81, 46, 45, 84, 95, 75, 54, 103, 63, 48, 103, 44, 75, 64, 59, 75, 32, 76, 57, 73, 55, 86, 62, 64, 62, 47, 70, 68, 75, 62, 59, 71, 54, 73, 44, 90, 77, 70, 54, 73, 78, 72, 129, 56, 54, 45, 55, 48, 46, 55, 65, 39, 72, 66, 75, 71, 51, 97, 73, 78, 45, 67, 52, 72, 68, 61, 69, 72, 74, 61, 57, 69, 89, 57, 50, 80, 55, 56, 57, 82, 88, 75, 49, 77, 78, 51, 50, 69, 70, 67, 58, 76, 57, 62, 48, 64, 68, 78, 98, 65, 81, 70, 80, 70, 49, 53, 55, 87, 75, 55, 65, 66, 53, 41, 59, 66, 42, 61, 54, 58, 69, 76, 68, 50, 81, 58, 70, 63, 101, 73, 79, 72, 78, 82, 63, 61, 69, 60, 63, 63, 68, 63, 74, 60, 61, 44, 71, 73, 56, 47, 91, 106, 55, 62, 84, 70, 64, 60, 70, 42, 62, 69, 55, 46, 54, 65, 49, 58, 53, 52, 69, 57, 57, 75, 43, 71, 75, 81, 62, 76, 56, 53, 78, 67, 56, 64, 67, 54, 55, 77, 62, 72, 39, 82, 70, 50, 95, 74, 75, 52, 63, 53, 61, 88, 63, 52, 53, 51, 60, 73, 54, 76, 76, 60, 67, 71, 50, 65, 57, 57, 74, 53, 60, 83, 61, 55, 84, 58, 73, 47, 71, 31, 46, 75, 54, 95, 49, 53, 77, 66, 73, 58, 67, 61, 72, 57, 65, 73, 46, 80, 91, 56, 50, 151, 54, 89, 47, 72, 84, 59, 63, 84, 67, 60, 62, 80, 65, 52, 64, 75, 68, 41, 54, 45, 67, 59, 70, 58, 61, 65, 79, 58, 55, 56, 61, 58, 59, 58, 92, 76, 76, 62, 68, 60, 67, 56, 86, 72, 75, 63, 66, 50, 43, 142, 96, 92, 69, 49, 91, 68, 75, 78, 53, 90, 54, 84, 81, 74, 60, 72, 58, 47, 56, 70, 59, 68, 61, 68, 62, 84, 59, 56, 110, 63, 48, 68, 55, 72, 65, 57, 79, 69, 53, 66, 54, 47, 51, 69, 82, 64, 65, 79, 68, 56, 60, 74, 58, 52, 53, 72, 82, 69, 71, 50, 70, 81, 57, 62, 55, 64, 70, 65, 60, 52, 47, 64, 65, 58, 77, 71, 65, 70, 65, 73, 53, 66, 80, 60, 57, 56, 65, 55, 67, 52, 73, 86, 104, 75, 58, 63, 69, 63, 45, 73, 80, 87, 61, 83, 59, 99, 54, 65, 76, 64, 61, 52, 46, 61, 52, 82, 47, 55, 87, 78, 65, 78, 67, 53, 47, 63, 57, 94, 25, 59, 72, 104, 60, 72, 75, 84, 55, 61, 65, 64, 72, 60, 75, 57, 52, 64, 51, 80, 45, 89, 61, 46, 96, 73, 61, 69, 64, 76, 54, 42, 40, 44, 48, 69, 71, 58, 63, 76, 81, 35, 62, 54, 69, 56, 98, 68, 88, 82, 61, 52, 52, 65, 63, 68, 59, 79, 79, 89, 81, 67, 67, 65, 77, 63, 68, 85, 65, 63, 63, 108, 90, 73, 69, 51, 51, 58, 60, 51, 99, 75, 59, 66, 61, 61, 70, 81, 80, 52, 82, 55, 61, 79, 81, 97, 106, 58, 52, 52, 52, 65, 49, 49, 60, 76, 132, 45, 53, 103, 89, 48, 83, 73, 54, 56, 86, 50, 55, 77, 74, 65, 78, 48, 57, 63, 78, 89, 38, 62, 52, 62, 95, 70, 47, 50, 69, 49, 73, 48, 59, 51, 49, 64, 75, 69, 69, 56, 71, 84, 68, 81, 65, 70, 56, 89, 76, 66, 91, 51, 73, 79, 80, 79, 69, 73, 82, 54, 51, 56, 43, 64, 59, 60, 77, 58, 55, 54, 68, 67, 60, 68, 60, 64, 65, 84, 73, 111, 55, 144, 98, 62, 65, 64, 64, 50, 111, 54, 54, 68, 63, 81, 73, 88, 51, 58, 62, 61, 70, 65, 75, 60, 62, 54, 41, 57, 66, 90, 71, 47, 58, 60, 68, 65, 60, 55, 52, 65, 89, 66, 68, 54, 69, 67, 61, 52, 48, 63, 61, 87, 46, 82, 75, 63, 59, 67, 84, 38, 86, 56, 49, 84, 68, 54, 59, 72, 67, 56, 58, 57, 80, 59, 80, 50, 72, 58, 77, 64, 57, 62, 64, 91, 52, 51, 63, 66, 50, 67, 48, 59, 90, 58, 82, 70, 60, 59, 93, 64, 52, 74, 77, 74, 60, 62, 73, 72, 59, 56, 116, 71, 53, 114, 56, 81, 52, 78, 71, 52, 60, 64, 80, 94, 47, 71, 61, 79, 90, 81, 58, 66, 60, 66, 67, 63, 63, 85, 53, 60, 76, 71, 51, 82, 63, 47, 80, 66, 64, 126, 64, 61, 64, 66, 56, 73, 76, 63, 70, 66, 65, 77, 52, 65, 70, 108, 65, 74, 53, 55, 43, 61, 52, 74, 80, 71, 55, 72, 68, 84, 48, 53, 79, 57, 65, 74, 58, 64, 71, 52, 50, 74, 46, 56, 58, 64, 67, 54, 88, 80, 56, 67, 98, 72, 66, 101, 51, 69, 61, 64, 61, 70, 54, 60, 50, 53, 61, 57, 64, 43, 79, 53, 42, 92, 50, 102, 75, 49, 70, 90, 45, 72, 46, 60, 62, 67, 50, 77, 52, 54, 67, 63, 59, 61, 61, 49, 58, 53, 95, 57, 89, 88, 75, 78, 57, 53, 50, 62, 58, 76, 70, 66, 39, 59, 59, 60, 137, 62, 55, 47, 69, 53, 70, 58, 63, 48, 59, 67, 60, 69, 59, 62, 65, 89, 52, 85, 56, 75, 58, 62, 52, 45, 55, 95, 74, 81, 60, 67, 72, 56, 71, 48, 60, 69, 36, 66, 54, 68, 66, 43, 68, 54, 61, 73, 88, 42, 46, 67, 64, 55, 55, 69, 57, 83, 57, 61, 90, 65, 66, 134, 79, 52, 45, 70, 84, 51, 69, 46, 68, 94, 59, 71, 54, 48, 75, 61, 71, 56, 71, 78, 50, 57, 55, 64, 56, 64, 76, 70, 58, 57, 78, 73, 71, 91, 71, 64, 76, 67, 61, 61, 50, 101, 54, 70, 71, 48, 55, 72, 66, 60, 56, 74, 55, 60, 71, 75, 58, 90, 86, 51, 65, 50, 68, 49, 111, 68, 61, 51, 68, 96, 55, 64, 58, 52, 82, 68, 41, 136, 68, 50, 68, 72, 77, 49, 66, 55, 67, 77, 68, 54, 59, 74, 78, 79, 63, 53, 48, 29, 60, 63, 102, 59, 70, 68, 57, 74, 69, 65, 43, 46, 60, 66, 112, 52, 64, 60, 45, 78, 58, 55, 62, 57, 57, 73, 65, 72, 86, 125, 53, 73, 82, 74, 80, 68, 120, 57, 113, 54, 42, 61, 67, 66, 70, 91, 85, 53, 63, 59, 62, 72, 49, 50, 67, 71, 56, 56, 58, 62, 65, 60, 46, 72, 67, 76, 45, 66, 67, 65, 62, 83, 70, 127, 57, 62, 66, 65, 63, 45, 76, 66, 66, 146, 71, 65, 72, 60, 43, 56, 50, 73, 62, 51, 53, 51, 70, 85, 72, 52, 79, 73, 63, 103, 62, 47, 64, 73, 56, 66, 91, 51, 74, 63, 53, 68, 44, 64, 52, 55, 84, 63, 80, 55, 81, 57, 74, 80, 60, 63, 82, 57, 55, 60, 54, 89, 68, 66, 91, 61, 89, 77, 66, 65, 62, 60, 70, 68, 66, 50, 68, 62, 77, 63, 72, 62, 55, 67, 63, 76, 53, 71, 62, 59, 55, 74, 53, 65, 46, 81, 80, 64, 71, 65, 94, 58, 65, 63, 65, 60, 58, 66, 58, 76, 56, 58, 56, 58, 77, 72, 77, 54, 47, 58, 76, 70, 75, 59, 84, 65, 54, 60, 66, 75, 66, 64, 69, 62, 80, 93, 63, 98, 101, 79, 115, 44, 83, 51, 56, 67, 64, 137, 47, 78, 85, 60, 70, 58, 79, 54, 64, 48, 63, 64, 63, 59, 62, 89, 71, 57, 55, 93, 64, 74, 61, 61, 78, 50, 59, 59, 47, 73, 63, 76, 73, 67, 76, 46, 69, 71, 80, 57, 70, 72, 60, 61, 56, 55, 57, 72, 52, 69, 70, 51, 70, 73, 63, 68, 64, 89, 46, 57, 62, 80, 73, 64, 66, 81, 60, 63, 53, 57, 83, 70, 64, 57, 55, 76, 52, 65, 55, 57, 58, 67, 59, 56, 47, 62, 84, 79, 56, 80, 58, 80, 76, 70, 58, 55, 68, 90, 146, 70, 70, 53, 59, 50, 68, 57, 79, 70, 55, 37, 76, 57, 62, 66, 57, 72, 58, 53, 52, 53, 62, 51, 58, 72, 71, 57, 61, 78, 68, 61, 62, 84, 80, 61, 59, 47, 74, 59, 75, 46, 69, 60, 73, 47, 54, 58, 38, 63, 66, 53, 59, 93, 72, 66, 60, 72, 71, 61, 58, 59, 63, 95, 74, 75, 64, 48, 80, 72, 51, 70, 50, 43, 62, 65, 66, 84, 62, 55, 54, 68, 56, 68, 79, 52, 54, 72, 88, 50, 64, 54, 58, 47, 55, 58, 61, 68, 61, 70, 55, 103, 61, 74, 59, 71, 106, 84, 43, 69, 64, 72, 96, 73, 65, 60, 75, 62, 52, 80, 79, 74, 64, 66, 80, 42, 70, 97, 63, 93, 49, 72, 87, 65, 64, 58, 66, 91, 77, 91, 70, 67, 89, 67, 57, 62, 65, 70, 55, 63, 63, 52, 77, 61, 60, 71, 96, 73, 51, 54, 44, 76, 115, 38, 64, 72, 53, 71, 52, 64, 55, 64, 60, 70, 58, 87, 82, 56, 72, 45, 77, 51, 67, 70, 123, 73, 71, 63, 60, 58, 87, 70, 64, 101, 98, 48, 56, 80, 67, 50, 52, 64, 67, 81, 65, 45, 79, 67, 64, 70, 77, 43, 68, 83, 54, 79, 57, 63, 78, 59, 59, 60, 63, 62, 64, 61, 67, 71, 56, 42, 68, 69, 61, 58, 64, 85, 81, 75, 59, 71, 45, 52, 55, 62, 69, 69, 53, 42, 75, 59, 73, 39, 77, 70, 68, 57, 61, 46, 63, 56, 63, 49, 43, 58, 74, 64, 82, 77, 83, 70, 74, 61, 46, 85, 79, 60, 70, 66, 83, 57, 62, 48, 45, 69, 54, 76, 63, 89, 74, 67, 69, 54, 41, 92, 43, 53, 69, 68, 80, 52, 84, 69, 48, 67, 66, 62, 55, 43, 65, 45, 59, 82, 74, 73, 64, 80, 46, 79, 77, 54, 52, 92, 68, 57, 53, 70, 43, 56, 53, 64, 82, 61, 69, 68, 97, 66, 91, 70, 52, 61, 72, 61, 43, 63, 79, 54, 49, 60, 65, 66, 51, 90, 53, 44, 65, 53, 59, 31, 51, 70, 88, 47, 60, 55, 71, 53, 62, 71, 61, 66, 76, 58, 72, 67, 99, 67, 59, 78, 70, 71, 63, 83, 75, 77, 56, 60, 74, 83, 59, 67, 58, 66, 45, 68, 62, 91, 57, 68, 59, 89, 46, 64, 70, 56, 40, 77, 61, 115, 68, 54, 60, 61, 55, 67, 45, 38, 70, 81, 52, 84, 35, 81, 74, 56, 83, 72, 81, 49, 64, 71, 65, 65, 76, 100, 56, 57, 138, 95, 61, 72, 116, 94, 67, 60, 68, 35, 54, 71, 35, 66, 55, 57, 85, 60, 40, 82, 75, 65, 77, 54, 47, 70, 62, 66, 55, 74, 50, 83, 71, 65, 84, 50, 68, 81, 63, 84, 67, 61, 64, 67, 75, 88, 109, 64, 52, 88, 75, 57, 48, 46, 77, 67, 70, 55, 62, 76, 88, 55, 78, 92, 63, 76, 119, 64, 62, 69, 66, 71, 70, 65, 74, 58, 65, 59, 58, 42, 79, 60, 61, 69, 56, 53, 61, 64, 74, 60, 72, 70, 53, 70, 83, 66, 80, 65, 49, 66, 86, 57, 66, 55, 71, 65, 94, 41, 66, 51, 62, 63, 51, 61, 62, 60, 65, 72, 80, 72, 63, 55, 84, 47, 55, 66, 64, 70, 48, 67, 51, 69, 98, 96, 43, 75, 83, 41, 123, 130, 43, 76, 75, 79, 81, 81, 63, 86, 70, 63, 47, 64, 58, 64, 61, 59, 69, 63, 79, 58, 55, 50, 97, 63, 74, 92, 72, 49, 78, 95, 76, 65, 53, 68, 52, 84, 70, 65, 63, 99, 61, 84, 50, 77, 79, 116, 70, 49, 73, 87, 63, 70, 57, 41, 57, 60, 41, 68, 54, 81, 62, 68, 66, 58, 92, 64, 63, 41, 49, 43, 74, 60, 89, 56, 84, 85, 75, 54, 48, 67, 54, 65, 69, 61, 74, 64, 89, 51, 73, 88, 64, 55, 55, 65, 68, 79, 68, 88, 74, 69, 70, 72, 64, 39, 42, 63, 57, 59, 59, 93, 57, 61, 72, 58, 53, 99, 61, 52, 52, 83, 67, 66, 66, 78, 59, 120, 54, 59, 62, 47, 70, 79, 85, 60, 41, 54, 70, 58, 69, 40, 56, 60, 89, 60, 67, 75, 74, 66, 53, 88, 62, 62, 84, 96, 66, 49, 72, 71, 97, 60, 70, 63, 67, 53, 90, 64, 62, 75, 77, 65, 56, 51, 83, 55, 118, 73, 69, 66, 69, 82, 78, 53, 62, 76, 83, 58, 64, 86, 71, 61, 63, 48, 60, 54, 76, 61, 55, 59, 38, 66, 42, 62, 41, 62, 93, 100, 75, 64, 58, 73, 73, 55, 56, 45, 65, 69, 57, 56, 62, 75, 52, 75, 70, 55, 79, 86, 100, 87, 59, 78, 71, 73, 86, 61, 59, 82, 88, 43, 85, 58, 60, 69, 81, 46, 70, 60, 50, 62, 68, 85, 52, 73, 66, 57, 50, 64, 124, 69, 76, 66, 51, 61, 87, 63, 49, 63, 48, 69, 83, 76, 61, 43, 48, 63, 95, 66, 54, 62, 32, 63, 52, 50, 74, 61, 46, 59, 54, 85, 57, 63, 60, 66, 53, 97, 42, 74, 72, 107, 82, 74, 73, 58, 64, 75, 56, 92, 41, 47, 57, 54, 50, 92, 59, 54, 71, 71, 77, 80, 63, 84, 59, 52, 70, 59, 79, 93, 68, 90, 86, 90, 66, 78, 64, 64, 51, 110, 70, 55, 51, 54, 72, 49, 45, 59, 43, 35, 70, 80, 54, 61, 55, 61, 70, 93, 83, 66, 102, 60, 64, 75, 64, 77, 69, 59, 56, 48, 47, 49, 58, 62, 67, 57, 39, 68, 61, 76, 61, 120, 81, 48, 69, 63, 71, 67, 78, 61, 65, 62, 53, 85, 62, 62, 73, 61, 55, 95, 69, 61, 62, 64, 89, 57, 63, 79, 77, 73, 64, 48, 72, 59, 71, 83, 62, 62, 47, 64, 54, 79, 68, 68, 60, 58, 59, 54, 87, 82, 76, 93, 51, 84, 84, 74, 73, 104, 51, 66, 67, 67, 80, 67, 66, 71, 52, 64, 60, 54, 90, 36, 72, 60, 70, 77, 61, 62, 66, 57, 56, 74, 59, 64, 58, 62, 94, 64, 44, 50, 50, 70, 68, 58, 81, 66, 76, 61, 62, 69, 62, 58, 62, 67, 65, 78, 78, 70, 78, 71, 64, 73, 54, 71, 74, 72, 68, 55, 64, 72, 63, 53, 51, 61, 90, 48, 60, 48, 69, 70, 54, 59, 50, 66, 71, 72, 55, 66, 58, 59, 71, 78, 67, 111, 65, 68, 68, 48, 47, 68, 77, 50, 59, 57, 40, 55, 70, 80, 64, 57, 59, 55, 62, 64, 65, 83, 67, 62, 81, 78, 67, 68, 53, 67, 44, 63, 53, 60, 76, 67, 58, 54, 59, 67, 58, 50, 64, 58, 75, 54, 59, 60, 56, 58, 165, 63, 90, 81, 66, 61, 52, 62, 56, 77, 57, 39, 68, 85, 78, 51, 68, 74, 61, 83, 62, 64, 47, 56, 51, 64, 77, 57, 57, 66, 65, 70, 82, 64, 74, 90, 61, 69, 73, 53, 69, 58, 69, 65, 69, 51, 67, 72, 55, 63, 55, 76, 66, 74, 64, 58, 58, 65, 67, 64, 71, 73, 63, 61, 73, 86, 63, 81, 59, 55, 98, 59, 99, 60, 62, 76, 76, 61, 57, 55, 62, 62, 86, 69, 109, 63, 70, 54, 46, 64, 63, 91, 64, 63, 91, 49, 76, 77, 57, 48, 53, 71, 62, 82, 65, 51, 65, 54, 60, 59, 64, 73, 65, 66, 91, 65, 69, 44, 63, 88, 62, 63, 63, 82, 43, 62, 52, 60, 51, 46, 69, 53, 84, 61, 80, 90, 80, 53, 72, 66, 66, 65, 61, 64, 60, 29, 51, 64, 58, 73, 63, 65, 70, 53, 60, 61, 48, 73, 63, 56, 74, 74, 59, 51, 80, 51, 52, 53, 84, 70, 70, 51, 64, 73, 80, 50, 66, 63, 77, 60, 79, 62, 71, 71, 96, 71, 74, 55, 64, 63, 48, 60, 67, 49, 73, 78, 67, 55, 56, 52, 69, 65, 61, 66, 63, 68, 70, 61, 50, 87, 58, 74, 66, 70, 60, 72, 76, 74, 55, 44, 60, 63, 57, 73, 70, 53, 56, 65, 44, 86, 63, 66, 47, 62, 60, 62, 44, 52, 64, 82, 53, 76, 42, 85, 49, 61, 72, 48, 66, 62, 79, 63, 55, 57, 53, 75, 52, 67, 60, 104, 81, 50, 57, 52, 55, 63, 50, 62, 78, 60, 59, 51, 65, 54, 52, 62, 68, 65, 64, 49, 63, 63, 62, 81, 62, 53, 46, 64, 59, 50, 87, 81, 81, 59, 68, 67, 75, 107, 61, 90, 70, 51, 54, 60, 83, 72, 73, 59, 57, 48, 77, 76, 70, 60, 66, 50, 73, 53, 68, 71, 43, 58, 65, 71, 55, 57, 79, 68, 55, 64, 68, 68, 76, 58, 87, 63, 69, 79, 63, 57, 77, 46, 68, 47, 66, 81, 34, 58, 71, 38, 50, 48, 59, 53, 65, 76, 62, 49, 46, 85, 64, 53, 54, 71, 67, 73, 68, 62, 73, 80, 79, 61, 66, 66, 64, 50, 60, 63, 67, 60, 79, 50, 68, 62, 56, 61, 58, 55, 76, 63, 86, 54, 72, 58, 86, 81, 56, 66, 67, 53, 90, 64, 58, 56, 42, 79, 66, 72, 47, 70, 62, 68, 83, 64, 69, 62, 68, 89, 61, 51, 68, 57, 66, 67, 75, 79, 70, 75, 68, 60, 82, 105, 83, 91, 48, 53, 74, 79, 56, 64, 49, 70, 64, 67, 73, 68, 68, 79, 56, 104, 74, 63, 86, 79, 73, 73, 105, 63, 79, 59, 67, 75, 71, 56, 67, 77, 69, 69, 73, 60, 48, 68, 86, 65, 65, 76, 78, 57, 62, 60, 73, 71, 67, 66, 51, 59, 91, 75, 57, 68, 84, 70, 72, 89, 118, 64, 74, 63, 65, 63, 63, 52, 60, 52, 65, 83, 88, 97, 64, 108, 97, 85, 73, 60, 78, 50, 70, 62, 66, 42, 62, 66, 70, 63, 85, 53, 80, 65, 54, 68, 70, 62, 62, 41, 59, 79, 72, 67, 62, 74, 58, 42, 69, 58, 86, 55, 45, 65, 72, 64, 53, 69, 78, 59, 76, 70, 69, 60, 54, 60, 58, 62, 55, 52, 71, 59, 74, 63, 75, 62, 56, 57, 64, 42, 64, 64, 83, 103, 74, 60, 77, 57, 73, 72, 69, 109, 57, 51, 63, 60, 41, 56, 51, 70, 60, 67, 52, 92, 85, 63, 60, 73, 54, 69, 62, 51, 47, 89, 77, 53, 71, 84, 73, 79, 42, 59, 67, 68, 72, 61, 61, 56, 70, 76, 65, 43, 54, 70, 35, 68, 78, 62, 56, 53, 48, 59, 41, 69, 73, 53, 65, 85, 87, 67, 50, 68, 57, 89, 92, 58, 61, 75, 57, 63, 57, 82, 87, 68, 69, 52, 63, 70, 99, 50, 58, 76, 55, 65, 67, 65, 83, 80, 61, 66, 68, 53, 58, 69, 55, 55, 59, 73, 71, 90, 65, 53, 68, 59, 53, 61, 43, 42, 59, 72, 66, 50, 59, 67, 59, 65, 62, 82, 141, 59, 38, 54, 102, 66, 63, 62, 72, 84, 60, 77, 66, 53, 54, 63, 63, 73, 94, 64, 75, 70, 66, 63, 67, 67, 63, 56, 51, 88, 65, 59, 63, 84, 83, 42, 63, 82, 50, 72, 58, 90, 73, 56, 76, 83, 73, 71, 59, 72, 61, 61, 64, 57, 51, 50, 53, 48, 62, 52, 74, 72, 56, 63, 45, 87, 67, 63, 82, 61, 66, 66, 66, 62, 63, 74, 77, 48, 36, 80, 60, 50, 53, 58, 55, 66, 71, 67, 67, 68, 77, 60, 41, 82, 67, 65, 95, 66, 68, 71, 58, 89, 74, 86, 65, 65, 75, 66, 55, 55, 84, 70, 96, 65, 63, 73, 66, 55, 69, 73, 73, 55, 70, 81, 86, 69, 60, 61, 63, 57, 62, 70, 54, 110, 52, 41, 59, 102, 64, 76, 75, 81, 70, 52, 59, 70, 57, 64, 69, 81, 75, 57, 67, 87, 85, 55, 70, 98, 57, 64, 58, 63, 59, 89, 49, 28, 51, 73, 77, 70, 70, 67, 53, 66, 60, 65, 81, 74, 75, 69, 40, 72, 60, 75, 72, 83, 60, 69, 53, 70, 44, 51, 69, 78, 68, 58, 76, 57, 57, 66, 86, 44, 45, 53, 68, 71, 67, 67, 57, 75, 75, 68, 74, 58, 83, 64, 99, 50, 67, 81, 72, 71, 68, 80, 60, 60, 69, 58, 70, 57, 59, 61, 62, 126, 56, 64, 53, 60, 62, 70, 92, 71, 83, 81, 68, 65, 57, 52, 125, 62, 69, 78, 36, 67, 55, 91, 62, 55, 76, 52, 75, 81, 70, 38, 57, 57, 58, 66, 63, 55, 59, 66, 84, 54, 62, 77, 67, 88, 70, 70, 62, 58, 81, 58, 82, 78, 58, 63, 89, 65, 65, 75, 70, 90, 81, 63, 71, 57, 76, 59, 71, 64, 62, 63, 73, 64, 69, 78, 96, 82, 59, 75, 67, 53, 55, 60, 74, 56, 70, 45, 67, 107, 62, 60, 72, 75, 53, 71, 119, 60, 70, 65, 53, 83, 60, 60, 61, 56, 79, 70, 56, 66, 82, 75, 68, 54, 65, 74, 51, 66, 61, 70, 57, 38, 73, 69, 91, 49, 94, 70, 76, 76, 95, 47, 57, 77, 87, 62, 57, 68, 72, 58, 51, 56, 56, 73, 70, 63, 69, 78, 57, 59, 90, 49, 74, 61, 73, 72, 63, 40, 52, 64, 66, 57, 62, 60, 73, 48, 33, 39, 77, 60, 47, 67, 45, 61, 65, 65, 70, 76, 70, 72, 64, 91, 53, 51, 98, 73, 102, 67, 67, 64, 76, 58, 54, 66, 70, 84, 71, 47, 52, 53, 66, 55, 68, 62, 51, 67, 76, 65, 47, 77, 60, 39, 55, 84, 95, 51, 63, 80, 72, 64, 72, 67, 73, 58, 65, 63, 66, 66, 60, 54, 46, 61, 60, 62, 82, 83, 55, 64, 70, 85, 61, 64, 55, 58, 82, 64, 71, 80, 89, 52, 59, 63, 50, 66, 58, 53, 63, 40, 71, 70, 67, 63, 117, 62, 64, 58, 68, 61, 57, 74, 111, 52, 69, 86, 42, 65, 75, 67, 65, 66, 50, 69, 65, 67, 75, 67, 48, 85, 64, 54, 48, 92, 80, 86, 70, 43, 76, 55, 46, 71, 67, 75, 97, 70, 57, 62, 57, 65, 66, 58, 57, 87, 60, 59, 68, 61, 94, 48, 61, 55, 67, 55, 49, 52, 61, 62, 102, 75, 72, 65, 62, 71, 50, 53, 64, 73, 66, 37, 106, 65, 49, 62, 79, 108, 71, 79, 57, 63, 57, 89, 75, 58, 93, 58, 51, 56, 57, 78, 85, 77, 74, 86, 73, 62, 58, 63, 57, 58, 60, 71, 78, 67, 59, 49, 48, 63, 58, 88, 68, 59, 56, 45, 69, 51, 94, 61, 51, 81, 66, 77, 133, 60, 59, 63, 71, 57, 58, 62, 75, 72, 62, 76, 64, 44, 56, 53, 68, 55, 55, 59, 79, 75, 55, 71, 87, 75, 41, 55, 75, 67, 67, 80, 51, 74, 86, 61, 77, 49, 70, 63, 73, 55, 70, 70, 62, 65, 61, 58, 64, 58, 63, 52, 64, 48, 59, 81, 74, 69, 64, 60, 98, 53, 50, 85, 59, 59, 58, 67, 57, 36, 69, 63, 67, 63, 60, 49, 63, 60, 50, 61, 77, 57, 73, 49, 67, 55, 55, 60, 78, 50, 56, 66, 53, 62, 58, 61, 57, 48, 74, 54, 52, 61, 67, 50, 77, 59, 123, 60, 59, 52, 85, 62, 89, 41, 60, 61, 55, 63, 70, 71, 89, 78, 100, 72, 74, 76, 58, 66, 91, 75, 53, 52, 57, 48, 80, 70, 81, 69, 70, 89, 59, 64, 101, 57, 67, 47, 42, 103, 63, 77, 58, 68, 54, 51, 64, 63, 77, 52, 86, 68, 54, 65, 70, 73, 71, 62, 93, 54, 86, 69, 73, 57, 56, 58, 59, 56, 83, 56, 74, 92, 65, 38, 70, 66, 71, 57, 68, 74, 54, 41, 79, 58, 66, 76, 64, 68, 75, 52, 49, 95, 66, 68, 65, 76, 45, 77, 63, 39, 57, 65, 69, 40, 47, 49, 51, 72, 82, 68, 61, 73, 67, 75, 76, 61, 58, 73, 76, 68, 68, 59, 69, 81, 80, 55, 85, 66, 69, 75, 64, 80, 57, 37, 84, 71, 56, 55, 75, 62, 77, 68, 57, 76, 76, 97, 62, 69, 53, 70, 67, 39, 98, 69, 67, 61, 62, 79, 66, 57, 40, 82, 77, 80, 45, 102, 53, 63, 68, 48, 56, 51, 56, 66, 55, 74, 68, 55, 88, 76, 48, 67, 63, 52, 47, 64, 69, 55, 49, 56, 58, 58, 60, 49, 54, 59, 50, 72, 84, 63, 72, 75, 57, 73, 70, 91, 77, 93, 58, 68, 52, 60, 99, 69, 52, 57, 71, 50, 52, 51, 69, 73, 61, 83, 76, 58, 57, 63, 82, 78, 96, 61, 57, 64, 50, 87, 87, 70, 71, 53, 111, 52, 50, 89, 67, 85, 116, 82, 89, 63, 55, 68, 74, 48, 51, 68, 40, 100, 42, 50, 53, 59, 88, 52, 55, 68, 48, 49, 68, 67, 58, 50, 53, 68, 89, 61, 64, 48, 51, 72, 79, 61, 71, 59, 71, 55, 77, 77, 55, 87, 77, 70, 63, 60, 55, 79, 81, 46, 50, 73, 55, 63, 64, 57, 79, 49, 81, 48, 82, 76, 81, 66, 65, 77, 74, 50, 69, 42, 52, 66, 47, 89, 101, 62, 101, 94, 51, 55, 60, 65, 65, 55, 72, 53, 33, 81, 86, 58, 77, 71, 48, 54, 58, 88, 75, 59, 60, 55, 77, 68, 77, 72, 102, 70, 48, 62, 76, 55, 71, 54, 63, 69, 52, 57, 62, 69, 88, 62, 62, 65, 71, 68, 59, 57, 55, 76, 77, 55, 72, 105, 74, 84, 72, 56, 61, 95, 54, 88, 56, 42, 69, 51, 56, 47, 71, 69, 48, 57, 58, 46, 75, 73, 68, 59, 57, 144, 62, 45, 72, 83, 38, 67, 62, 53, 61, 77, 55, 43, 63, 86, 59, 66, 58, 63, 94, 68, 71, 72, 70, 57, 60, 56, 62, 57, 64, 77, 87, 54, 55, 75, 60, 60, 60, 46, 70, 65, 49, 46, 42, 49, 69, 69, 62, 68, 57, 76, 73, 74, 70, 80, 46, 50, 47, 76, 50, 73, 72, 71, 44, 62, 66, 36, 66, 67, 68, 59, 67, 68, 65, 46, 58, 62, 60, 62, 63, 76, 56, 66, 56, 63, 66, 55, 84, 52, 91, 58, 58, 91, 49, 88, 75, 72, 50, 67, 72, 100, 61, 42, 83, 79, 58, 37, 62, 50, 108, 58, 74, 44, 56, 70, 71, 55, 75, 69, 76, 51, 69, 69, 108, 70, 56, 68, 78, 58, 71, 91, 50, 74, 44, 74, 86, 75, 54, 60, 70, 29, 58, 75, 80, 96, 48, 57, 47, 66, 42, 70, 80, 64, 51, 75, 69, 56, 68, 63, 47, 49, 67, 40, 53, 82, 72, 63, 69, 71, 70, 116, 72, 71, 66, 133, 75, 89, 67, 71, 104, 73, 65, 65, 68, 60, 45, 64, 57, 58, 89, 64, 65, 51, 78, 79, 85, 65, 68, 75, 63, 58, 77, 67, 69, 48, 80, 68, 58, 57, 50, 48, 68, 55, 63, 52, 42, 42, 40, 72, 85, 66, 56, 51, 72, 85, 78, 56, 43, 64, 76, 83, 77, 87, 67, 79, 48, 74, 84, 86, 63, 81, 58, 74, 78, 68, 46, 72, 70, 79, 50, 78, 72, 51, 69, 64, 59, 54, 73, 67, 53, 48, 60, 58, 72, 55, 68, 57, 70, 30, 76, 115, 56, 152, 66, 48, 61, 58, 67, 35, 60, 68, 56, 79, 59, 79, 89, 63, 63, 53, 59, 56, 68, 52, 61, 58, 82, 68, 72, 64, 68, 66, 66, 51, 68, 66, 68, 61, 73, 54, 66, 63, 61, 48, 46, 60, 77, 62, 42, 78, 63, 62, 58, 57, 57, 56, 76, 64, 65, 50, 45, 34, 86, 59, 75, 86, 64, 64, 58, 87, 64, 55, 68, 74, 105, 50, 53, 60, 92, 57, 59, 55, 58, 55, 71, 54, 100, 58, 63, 57, 60, 56, 71, 64, 57, 70, 76, 57, 49, 73, 48, 65, 43, 85, 61, 47, 78, 56, 60, 73, 78, 55, 58, 74, 105, 82, 69, 71, 63, 50, 89, 65, 57, 70, 80, 57, 35, 71, 59, 63, 65, 62, 72, 55, 59, 55, 67, 95, 58, 50, 59, 58, 87, 50, 85, 58, 80, 55, 56, 63, 59, 69, 58, 28, 52, 47, 51, 63, 75, 75, 52, 75, 43, 60, 62, 57, 61, 89, 69, 78, 51, 59, 62, 71, 52, 75, 76, 67, 58, 88, 79, 52, 53, 75, 49, 54, 55, 62, 67, 46, 95, 64, 68, 61, 78, 68, 63, 82, 45, 68, 62, 52, 74, 53, 82, 53, 65, 56, 71, 49, 54, 55, 70, 68, 88, 59, 63, 79, 61, 77, 61, 73, 48, 68, 70, 65, 80, 91, 60, 64, 52, 84, 57, 60, 64, 57, 85, 65, 77, 95, 58, 80, 49, 65, 118, 46, 47, 92, 61, 62, 48, 73, 69, 84, 58, 61, 62, 75, 89, 65, 75, 65, 44, 59, 53, 57, 49, 60, 64, 71, 58, 91, 53, 55, 52, 68, 58, 62, 50, 66, 76, 67, 41, 52, 74, 44, 91, 51, 66, 64, 118, 100, 54, 48, 111, 60, 79, 67, 71, 75, 76, 91, 58, 60, 68, 60, 53, 71, 69, 69, 73, 51, 69, 58, 49, 44, 63, 50, 64, 52, 135, 63, 67, 38, 57, 58, 71, 47, 42, 73, 62, 72, 56, 87, 122, 67, 55, 94, 100, 65, 53, 51, 67, 50, 53, 59, 60, 48, 64, 80, 54, 63, 65, 86, 46, 60, 81, 60, 73, 66, 74, 99, 55, 70, 52, 70, 65, 98, 79, 70, 49, 60, 52, 47, 60, 99, 53, 59, 62, 66, 86, 54, 66, 64, 58, 76, 65, 52, 89, 81, 77, 58, 55, 69, 41, 43, 64, 74, 67, 83, 56, 48, 66, 45, 60, 59, 46, 75, 58, 49, 44, 47, 54, 74, 94, 49, 68, 63, 65, 67, 41, 54, 68, 74, 73, 63, 58, 81, 46, 103, 61, 44, 73, 64, 37, 71, 64, 63, 93, 61, 59, 83, 87, 53, 59, 87, 64, 58, 88, 62, 77, 76, 74, 68, 101, 58, 54, 77, 66, 62, 60, 52, 92, 64, 106, 56, 70, 48, 54, 63, 63, 58, 52, 63, 89, 65, 41, 79, 75, 45, 54, 75, 49, 79, 68, 43, 77, 111, 62, 62, 82, 56, 49, 58, 54, 53, 69, 67, 82, 61, 58, 52, 58, 84, 74, 81, 59, 76, 59, 53, 64, 55, 63, 66, 65, 78, 82, 72, 78, 76, 68, 60, 63, 46, 68, 62, 63, 83, 64, 62, 78, 86, 63, 59, 79, 56, 59, 115, 71, 54, 72, 76, 35, 61, 68, 56, 72, 74, 65, 93, 69, 73, 86, 45, 60, 51, 45, 75, 69, 43, 90, 59, 62, 57, 54, 57, 55, 34, 51, 62, 90, 59, 51, 60, 71, 52, 45, 42, 93, 46, 74, 76, 68, 69, 49, 77, 55, 62, 69, 44, 96, 57, 65, 75, 53, 64, 78, 63, 61, 85, 75, 67, 71, 31, 74, 65, 54, 59, 57, 63, 101, 116, 86, 60, 84, 68, 60, 80, 63, 68, 66, 73, 60, 75, 60, 63, 54, 58, 59, 40, 80, 100, 59, 63, 52, 62, 61, 61, 64, 69, 79, 48, 70, 71, 66, 69, 53, 71, 73, 76, 64, 89, 45, 62, 56, 52, 72, 55, 80, 56, 52, 49, 69, 59, 29, 81, 72, 70, 51, 90, 58, 39, 61, 65, 84, 93, 46, 69, 60, 53, 75, 83, 67, 60, 73, 120, 52, 63, 61, 42, 73, 83, 85, 73, 77, 57, 65, 47, 83, 59, 49, 51, 68, 68, 56, 51, 68, 77, 77, 44, 61, 69, 52, 71, 73, 58, 63, 60, 56, 73, 60, 58, 65, 82, 72, 88, 49, 73, 46, 53, 63, 69, 56, 82, 61, 61, 75, 65, 81, 110, 58, 66, 73, 64, 75, 49, 73, 71, 56, 60, 73, 63, 60, 72, 51, 60, 50, 37, 46, 68, 78, 51, 66, 71, 49, 71, 79, 75, 61, 66, 52, 88, 69, 61, 77, 67, 78, 45, 61, 61, 62, 85, 68, 61, 60, 41, 63, 54, 40, 55, 69, 65, 45, 84, 88, 81, 86, 58, 71, 48, 74, 52, 81, 54, 39, 63, 54, 84, 50, 68, 71, 54, 69, 59, 91, 66, 56, 76, 59, 73, 69, 71, 48, 65, 60, 62, 72, 63, 72, 69, 83, 50, 49, 43, 66, 55, 54, 63, 56, 68, 86, 66, 50, 45, 71, 71, 71, 65, 102, 95, 85, 44, 66, 66, 54, 48, 62, 59, 77, 60, 73, 65, 68, 78, 70, 76, 40, 67, 53, 97, 77, 57, 72, 83, 96, 62, 42, 55, 59, 64, 122, 82, 51, 87, 71, 83, 54, 61, 145, 60, 57, 50, 55, 63, 58, 69, 64, 76, 52, 73, 49, 66, 35, 65, 87, 59, 45, 96, 146, 53, 53, 55, 63, 57, 71, 57, 61, 63, 75, 58, 65, 75, 44, 65, 42, 46, 82, 70, 80, 68, 69, 79, 102, 51, 60, 57, 67, 78, 61, 55, 96, 101, 56, 66, 68, 72, 43, 58, 97, 67, 63, 74, 68, 63, 71, 91, 63, 83, 55, 49, 56, 68, 68, 54, 60, 67, 49, 63, 71, 67, 69, 40, 69, 73, 51, 72, 91, 70, 47, 59, 56, 82, 66, 76, 73, 64, 61, 61, 73, 66, 65, 64, 54, 63, 64, 67, 52, 69, 74, 81, 47, 47, 69, 64, 48, 62, 60, 59, 51, 67, 58, 62, 59, 73, 57, 61, 70, 41, 65, 68, 45, 89, 66, 62, 61, 67, 73, 80, 72, 64, 71, 61, 73, 89, 64, 76, 48, 74, 52, 103, 65, 67, 50, 72, 72, 71, 81, 72, 79, 78, 69, 82, 87, 63, 47, 63, 67, 57, 63, 57, 63, 65, 66, 69, 52, 66, 55, 55, 67, 57, 60, 61, 51, 48, 81, 60, 76, 59, 69, 69, 39, 81, 45, 75, 65, 47, 68, 74, 59, 61, 57, 78, 45, 80, 58, 82, 64, 60, 70, 72, 68, 50, 58, 67, 70, 67, 63, 50, 79, 56, 98, 52, 59, 72, 68, 69, 65, 67, 71, 65, 61, 40, 57, 47, 61, 58, 46, 62, 77, 69, 62, 51, 51, 76, 67, 58, 50, 52, 75, 71, 85, 73, 84, 42, 140, 54, 61, 48, 56, 49, 86, 58, 52, 68, 67, 71, 82, 67, 77, 77, 67, 58, 59, 61, 83, 73, 58, 62, 54, 79, 64, 82, 65, 117, 99, 67, 71, 73, 80, 59, 67, 54, 47, 62, 59, 44, 75, 75, 60, 37, 63, 62, 55, 75, 74, 73, 57, 60, 41, 47, 66, 88, 101, 67, 64, 62, 70, 87, 46, 47, 70, 91, 53, 90, 67, 52, 56, 57, 65, 61, 62, 59, 100, 59, 70, 62, 63, 57, 66, 53, 49, 72, 57, 55, 59, 62, 84, 57, 51, 91, 56, 54, 69, 106, 69, 49, 59, 61, 57, 49, 56, 63, 46, 69, 73, 89, 63, 61, 54, 77, 67, 77, 79, 84, 59, 65, 72, 61, 62, 79, 73, 65, 64, 88, 61, 47, 59, 80, 47, 59, 68, 77, 85, 62, 71, 65, 56, 54, 33, 59, 44, 86, 59, 65, 61, 61, 71, 63, 51, 55, 72, 63, 79, 74, 67, 83, 90, 129, 59, 83, 70, 60, 62, 71, 49, 68, 68, 84, 62, 66, 80, 55, 55, 56, 77, 59, 70, 88, 64, 124, 51, 63, 65, 50, 54, 99, 76, 61, 41, 97, 67, 40, 32, 59, 68, 78, 62, 61, 66, 69, 51, 57, 78, 55, 71, 86, 59, 70, 79, 99, 71, 61, 73, 58, 62, 51, 44, 67, 63, 52, 76, 58, 69, 81, 77, 54, 83, 81, 89, 100, 77, 57, 93, 50, 78, 50, 67, 74, 82, 60, 61, 68, 52, 40, 103, 49, 79, 68, 75, 61, 52, 76, 80, 77, 94, 46, 81, 55, 76, 52, 74, 60, 72, 94, 62, 71, 69, 56, 78, 73, 58, 70, 67, 71, 56, 54, 50, 59, 129, 50, 70, 75, 63, 61, 71, 57, 53, 106, 66, 59, 54, 57, 71, 54, 68, 61, 71, 45, 57, 59, 90, 85, 84, 65, 56, 48, 60, 63, 62, 55, 60, 40, 51, 66, 38, 67, 75, 40, 74, 53, 69, 87, 65, 103, 66, 51, 70, 65, 58, 63, 67, 54, 66, 57, 77, 77, 58, 57, 70, 65, 67, 73, 62, 69, 79, 44, 91, 74, 84, 52, 71, 86, 52, 77, 81, 60, 77, 90, 47, 94, 75, 79, 86, 59, 44, 89, 64, 67, 70, 56, 56, 62, 66, 78, 70, 69, 55, 64, 49, 78, 55, 71, 44, 48, 65, 75, 55, 70, 85, 83, 79, 70, 47, 77, 74, 64, 64, 44, 73, 66, 79, 61, 64, 53, 54, 64, 70, 58, 35, 65, 85, 108, 47, 42, 77, 76, 67, 51, 76, 126, 73, 138, 72, 72, 68, 59, 62, 57, 66, 59, 54, 57, 96, 106, 58, 56, 67, 58, 61, 57, 66, 54, 64, 54, 55, 56, 52, 73, 78, 73, 55, 66, 50, 66, 42, 59, 49, 70, 54, 52, 83, 77, 52, 73, 57, 64, 66, 50, 110, 66, 134, 74, 55, 52, 68, 65, 44, 52, 67, 77, 64, 98, 69, 62, 57, 65, 66, 45, 78, 67, 60, 58, 67, 66, 55, 62, 61, 66, 62, 66, 70, 82, 45, 48, 81, 55, 80, 68, 89, 56, 67, 53, 58, 80, 54, 47, 65, 68, 67, 77, 57, 85, 61, 66, 76, 50, 58, 48, 62, 63, 52, 63, 55, 71, 76, 75, 61, 76, 74, 52, 73, 51, 112, 55, 69, 60, 60, 58, 69, 57, 63, 67, 52, 52, 84, 52, 60, 72, 51, 56, 86, 58, 45, 70, 51, 88, 67, 45, 62, 72, 56, 63, 82, 70, 79, 73, 75, 43, 25, 71, 67, 67, 57, 72, 56, 54, 52, 67, 70, 59, 66, 55, 62, 88, 65, 53, 62, 72, 65, 38, 53, 73, 77, 64, 67, 79, 43, 77, 35, 58, 69, 52, 80, 57, 103, 60, 71, 44, 75, 67, 57, 63, 89, 75, 58, 57, 63, 46, 77, 49, 57, 65, 58, 66, 76, 62, 75, 79, 56, 39, 59, 84, 78, 51, 47, 98, 53, 66, 49, 76, 73, 91, 67, 54, 69, 79, 66, 65, 58, 76, 102, 49, 42, 90, 80, 55, 50, 80, 47, 38, 75, 70, 85, 68, 55, 65, 74, 50, 51, 53, 54, 72, 83, 51, 59, 87, 64, 77, 78, 54, 80, 69, 84, 72, 109, 82, 48, 55, 55, 63, 38, 66, 59, 68, 59, 46, 58, 48, 115, 76, 68, 59, 54, 56, 70, 113, 64, 77, 72, 59, 86, 43, 58, 61, 59, 71, 73, 76, 68, 69, 54, 69, 70, 61, 72, 66, 85, 55, 90, 63, 56, 46, 57, 59, 67, 74, 80, 61, 70, 57, 66, 104, 98, 51, 45, 71, 74, 62, 53, 55, 77, 66, 54, 45, 76, 61, 77, 83, 44, 73, 69, 64, 65, 107, 58, 51, 53, 101, 113, 63, 72, 60, 60, 45, 46, 55, 53, 64, 67, 55, 47, 51, 62, 53, 67, 69, 85, 113, 64, 67, 46, 66, 57, 90, 107, 67, 74, 52, 61, 52, 44, 40, 78, 72, 47, 80, 61, 84, 56, 73, 62, 51, 64, 55, 51, 53, 72, 53, 57, 86, 57, 64, 67, 54, 69, 62, 60, 49, 98, 65, 52, 67, 63, 61, 45, 76, 77, 86, 49, 67, 63, 81, 75, 67, 111, 59, 75, 62, 65, 67, 56, 70, 65, 49, 72, 76, 45, 60, 50, 62, 64, 54, 76, 49, 92, 49, 83, 68, 62, 91, 61, 59, 39, 42, 69, 53, 52, 59, 54, 90, 51, 66, 55, 58, 136, 63, 73, 76, 58, 64, 71, 80, 105, 66, 63, 68, 48, 35, 42, 75, 78, 54, 68, 36, 51, 51, 52, 59, 58, 59, 70, 57, 108, 125, 50, 59, 70, 44, 51, 89, 83, 72, 67, 72, 56, 62, 55, 60, 49, 55, 56, 65, 51, 70, 101, 50, 44, 69, 54, 59, 60, 46, 68, 45, 64, 78, 46, 50, 127, 86, 68, 63, 78, 83, 43, 64, 87, 70, 76, 86, 80, 69, 101, 71, 94, 57, 60, 53, 55, 63, 66, 52, 39, 62, 47, 48, 107, 64, 63, 64, 53, 77, 70, 63, 61, 49, 108, 53, 41, 48, 97, 85, 66, 52, 49, 67, 48, 88, 37, 64, 64, 78, 46, 61, 59, 54, 52, 57, 74, 54, 64, 50, 61, 42, 86, 56, 63, 69, 76, 65, 82, 54, 68, 73, 69, 59, 51, 73, 61, 83, 49, 88, 74, 61, 65, 51, 64, 42, 59, 59, 74, 71, 73, 49, 60, 67, 66, 134, 47, 85, 94, 90, 66, 48, 50, 59, 54, 60, 67, 75, 90, 63, 66, 50, 67, 73, 93, 83, 59, 73, 60, 58, 37, 61, 58, 63, 63, 80, 86, 74, 66, 63, 90, 72, 56, 50, 73, 65, 50, 51, 59, 75, 52, 55, 60, 56, 54, 93, 75, 51, 66, 72, 62, 64, 73, 76, 75, 65, 46, 67, 43, 41, 53, 49, 59, 151, 53, 65, 74, 66, 72, 56, 97, 51, 96, 48, 53, 43, 42, 67, 93, 59, 68, 53, 68, 58, 62, 51, 73, 51, 59, 69, 45, 81, 39, 89, 59, 101, 59, 67, 53, 68, 62, 53, 51, 68, 81, 74, 52, 64, 51, 71, 65, 110, 104, 79, 37, 45, 57, 78, 58, 58, 58, 56, 57, 59, 88, 74, 45, 60, 78, 51, 52, 100, 46, 50, 55, 54, 79, 61, 70, 60, 103, 65, 56, 61, 80, 79, 68, 59, 73, 53, 86, 54, 58, 57, 57, 61, 44, 69, 68, 75, 55, 60, 71, 139, 78, 82, 67, 87, 61, 100, 70, 71, 88, 66, 94, 52, 58, 46, 74, 54, 65, 51, 64, 46, 78, 35, 76, 69, 68, 63, 90, 78, 85, 80, 79, 47, 78, 75, 84, 76, 89, 50, 56, 90, 44, 48, 62, 97, 58, 68, 63, 49, 63, 85, 87, 64, 117, 69, 105, 55, 65, 85, 94, 47, 63, 68, 47, 72, 56, 64, 65, 51, 54, 86, 66, 65, 67, 75, 68, 91, 63, 108, 79, 67, 86, 56, 80, 67, 74, 93, 58, 56, 55, 45, 60, 58, 62, 58, 61, 56, 42, 49, 60, 55, 60, 61, 64, 63, 106, 67, 59, 52, 74, 69, 60, 62, 69, 60, 53, 47, 99, 90, 68, 79, 78, 50, 46, 44, 99, 58, 64, 67, 37, 51, 65, 42, 62, 58, 60, 56, 73, 52, 63, 78, 60, 52, 77, 47, 57, 104, 48, 70, 64, 59, 42, 68, 53, 70, 78, 55, 75, 86, 78, 56, 60, 68, 65, 59, 76, 78, 92, 114, 101, 61, 72, 38, 50, 85, 47, 72, 73, 59, 81, 94, 63, 45, 67, 48, 58, 58, 50, 100, 102, 77, 58, 58, 69, 46, 71, 138, 50, 83, 67, 48, 66, 69, 54, 67, 55, 72, 65, 58, 49, 72, 59, 46, 68, 71, 60, 77, 54, 84, 60, 42, 95, 45, 77, 63, 75, 95, 92, 92, 70, 79, 48, 53, 68, 69, 78, 63, 54, 55, 74, 74, 78, 63, 59, 50, 61, 67, 53, 54, 52, 73, 52, 74, 79, 47, 54, 47, 60, 71, 81, 71, 75, 104, 76, 85, 59, 81, 85, 52, 55, 54, 57, 57, 61, 59, 56, 50, 62, 71, 62, 107, 50, 57, 56, 69, 56, 55, 66, 67, 67, 59, 62, 65, 83, 71, 79, 65, 50, 42, 124, 56, 67, 98, 70, 45, 59, 50, 76, 103, 64, 45, 63, 99, 51, 59, 73, 81, 57, 68, 40, 58, 51, 105, 83, 66, 62, 52, 71, 56, 64, 55, 66, 70, 36, 81, 55, 79, 63, 56, 82, 51, 61, 55, 50, 49, 62, 47, 65, 81, 68, 66, 55, 50, 94, 59, 69, 64, 73, 83, 73, 49, 70, 61, 63, 67, 69, 66, 67, 51, 65, 46, 44, 71, 61, 89, 73, 91, 82, 60, 66, 61, 56, 81, 69, 41, 88, 48, 98, 60, 55, 52, 63, 70, 67, 48, 80, 68, 85, 69, 50, 56, 36, 67, 60, 82, 75, 88, 55, 45, 51, 41, 115, 48, 65, 67, 69, 48, 52, 84, 61, 108, 82, 103, 127, 52, 56, 63, 98, 63, 78, 86, 53, 61, 55, 61, 71, 23, 67, 81, 44, 51, 53, 61, 72, 94, 54, 65, 60, 61, 67, 47, 60, 58, 71, 53, 58, 67, 61, 54, 70, 63, 56, 98, 52, 60, 92, 51, 71, 70, 64, 84, 68, 64, 53, 81, 108, 113, 40, 76, 67, 77, 64, 63, 58, 66, 76, 62, 53, 54, 50, 57, 97, 76, 55, 65, 63, 73, 67, 68, 58, 75, 91, 67, 59, 56, 70, 83, 49, 57, 51, 68, 61, 62, 51, 86, 128, 72, 61, 57, 67, 63, 90, 83, 62, 63, 57, 38, 82, 57, 60, 65, 92, 59, 72, 77, 59, 73, 71, 81, 96, 86, 160, 65, 56, 46, 61, 51, 88, 54, 64, 49, 72, 52, 51, 82, 84, 73, 45, 60, 53, 50, 66, 64, 53, 47, 61, 68, 72, 70, 67, 73, 88, 52, 65, 70, 69, 77, 83, 70, 53, 49, 87, 88, 67, 62, 46, 35, 50, 61, 76, 45, 59, 60, 44, 38, 67, 54, 58, 81, 59, 68, 66, 79, 55, 114, 76, 51, 63, 62, 58, 57, 65, 71, 63, 48, 66, 99, 46, 65, 75, 56, 46, 81, 91, 48, 86, 63, 51, 67, 64, 51, 77, 36, 54, 61, 57, 80, 58, 70, 87, 57, 50, 71, 89, 46, 62, 66, 58, 67, 62, 80, 70, 44, 61, 123, 61, 57, 62, 75, 77, 62, 63, 68, 56, 93, 104, 75, 55, 80, 70, 73, 71, 64, 60, 62, 55, 53, 61, 87, 75, 74, 54, 59, 81, 61, 71, 69, 58, 59, 71, 64, 77, 45, 84, 90, 72, 49, 53, 61, 35, 77, 63, 104, 59, 72, 61, 67, 86, 87, 67, 52, 59, 76, 64, 70, 48, 69, 53, 86, 51, 55, 40, 83, 50, 43, 53, 66, 107, 82, 61, 46, 78, 48, 62, 57, 68, 76, 60, 72, 54, 82, 36, 81, 58, 88, 72, 56, 60, 77, 63, 69, 51, 58, 43, 45, 82, 70, 58, 74, 57, 48, 63, 55, 75, 124, 56, 56, 78, 64, 57, 51, 57, 61, 60, 86, 74, 71, 104, 53, 52, 60, 61, 56, 80, 105, 61, 64, 64, 54, 65, 49, 66, 48, 71, 55, 55, 57, 56, 78, 72, 70, 71, 63, 74, 88, 66, 93, 64, 65, 56, 69, 71, 48, 51, 58, 68, 51, 62, 71, 54, 77, 54, 83, 72, 63, 57, 66, 78, 68, 73, 57, 71, 68, 67, 75, 63, 118, 77, 56, 81, 74, 40, 59, 71, 80, 65, 68, 57, 60, 50, 48, 58, 53, 74, 53, 62, 50, 69, 56, 61, 55, 60, 62, 59, 77, 74, 66, 51, 71, 60, 66, 60, 50, 53, 52, 59, 51, 62, 64, 71, 59, 85, 68, 70, 63, 88, 63, 60, 60, 62, 54, 65, 55, 58, 51, 52, 52, 52, 54, 62, 65, 46, 47, 72, 71, 68, 91, 68, 70, 56, 80, 64, 63, 54, 59, 69, 40, 56, 59, 129, 56, 64, 78, 53, 60, 66, 44, 53, 65, 81, 61, 55, 82, 66, 41, 62, 85, 59, 90, 98, 65, 78, 112, 65, 52, 81, 54, 100, 68, 66, 48, 88, 65, 59, 73, 55, 87, 57, 52, 104, 82, 60, 64, 60, 67, 80, 70, 52, 55, 92, 66, 68, 73, 93, 69, 46, 74, 88, 61, 51, 76, 90, 61, 75, 65, 70, 65, 44, 71, 71, 56, 79, 64, 41, 74, 75, 52, 88, 49, 56, 61, 55, 47, 60, 55, 48, 48, 47, 78, 56, 94, 97, 98, 59, 49, 67, 65, 74, 84, 45, 101, 57, 74, 59, 73, 67, 65, 62, 58, 81, 54, 91, 51, 47, 122, 55, 74, 58, 72, 52, 87, 49, 100, 86, 58, 73, 51, 55, 65, 51, 63, 88, 89, 38, 67, 64, 55, 84, 67, 68, 85, 83, 59, 76, 41, 126, 89, 82, 68, 70, 81, 63, 105, 54, 68, 52, 78, 64, 99, 82, 41, 62, 70, 71, 56, 58, 68, 81, 106, 75, 66, 59, 56, 97, 67, 56, 59, 66, 41, 96, 65, 52, 58, 57, 60, 66, 45, 49, 65, 55, 56, 62, 55, 47, 64, 48, 45, 61, 65, 66, 77, 69, 59, 56, 51, 64, 66, 66, 73, 72, 74, 58, 47, 103, 50, 55, 63, 84, 55, 116, 63, 90, 76, 79, 50, 67, 83, 62, 62, 69, 51, 85, 69, 99, 89, 52, 75, 55, 125, 86, 54, 76, 67, 52, 59, 62, 85, 55, 49, 71, 63, 80, 68, 100, 54, 63, 55, 67, 55, 63, 91, 56, 75, 63, 57, 68, 61, 48, 52, 60, 69, 100, 54, 44, 101, 111, 71, 77, 55, 59, 66, 47, 54, 57, 49, 68, 66, 68, 56, 58, 63, 66, 57, 65, 51, 42, 88, 44, 74, 56, 67, 44, 80, 61, 41, 55, 66, 58, 59, 67, 91, 78, 51, 67, 70, 74, 62, 84, 51, 60, 59, 58, 42, 60, 77, 58, 70, 70, 77, 77, 80, 38, 65, 56, 78, 50, 68, 60, 70, 85, 67, 47, 65, 71, 64, 63, 62, 65, 64, 64, 57, 81, 55, 54, 77, 52, 65, 73, 74, 57, 62, 51, 82, 51, 66, 59, 78, 87, 63, 55, 54, 78, 69, 69, 70, 51, 63, 53, 61, 72, 43, 63, 73, 53, 53, 63, 59, 108, 49, 57, 40, 54, 78, 43, 41, 54, 75, 66, 101, 78, 51, 77, 73, 98, 90, 65, 71, 60, 73, 59, 86, 59, 58, 67, 52, 59, 63, 79, 59, 34, 85, 54, 56, 69, 61, 71, 63, 69, 58, 83, 75, 72, 82, 70, 60, 54, 75, 89, 75, 87, 65, 55, 75, 60, 74, 70, 77, 72, 66, 57, 51, 56, 62, 54, 49, 57, 61, 57, 54, 77, 47, 65, 58, 51, 88, 77, 41, 63, 85, 67, 73, 96, 57, 78, 53, 111, 63, 54, 71, 69, 79, 68, 68, 67, 79, 50, 58, 74, 72, 70, 60, 76, 79, 54, 107, 52, 65, 64, 71, 82, 84, 53, 47, 56, 94, 54, 51, 49, 67, 71, 43, 53, 62, 69, 62, 122, 97, 69, 70, 52, 90, 65, 86, 70, 56, 63, 71, 60, 74, 66, 54, 78, 64, 67, 49, 81, 50, 59, 71, 72, 45, 44, 63, 83, 65, 47, 58, 55, 78, 71, 61, 69, 73, 52, 59, 99, 76, 68, 59, 74, 70, 92, 61, 56, 68, 59, 68, 51, 75, 75, 83, 49, 71, 64, 64, 70, 73, 55, 54, 64, 57, 56, 76, 47, 53, 62, 46, 59, 65, 80, 113, 56, 60, 84, 68, 53, 81, 87, 68, 82, 104, 59, 42, 54, 54, 76, 53, 48, 49, 58, 76, 51, 57, 73, 64, 78, 154, 65, 103, 72, 65, 101, 67, 69, 86, 72, 43, 100, 62, 58, 53, 93, 37, 68, 58, 48, 85, 74, 71, 70, 58, 95, 53, 51, 68, 43, 72, 35, 57, 87, 47, 111, 64, 80, 68, 97, 56, 41, 35, 78, 71, 66, 78, 93, 60, 146, 69, 67, 49, 69, 50, 87, 76, 91, 137, 54, 63, 72, 72, 81, 95, 45, 66, 42, 50, 53, 51, 86, 56, 76, 65, 159, 61, 72, 72, 65, 69, 45, 59, 78, 54, 68, 87, 59, 56, 70, 100, 55, 65, 86, 57, 79, 39, 112, 47, 52, 57, 80, 64, 91, 90, 95, 53, 67, 62, 50, 79, 29, 58, 55, 104, 64, 89, 74, 81, 57, 74, 40, 57, 54, 75, 57, 58, 53, 53, 59, 66, 44, 46, 64, 67, 43, 57, 68, 64, 65, 59, 68, 91, 77, 57, 71, 66, 65, 98, 78, 70, 55, 68, 60, 61, 49, 70, 89, 63, 85, 82, 71, 71, 116, 58, 58, 39, 31, 73, 67, 72, 73, 88, 73, 58, 62, 79, 64, 66, 45, 66, 76, 64, 87, 84, 102, 59, 50, 76, 59, 96, 49, 53, 40, 61, 74, 73, 70, 71, 54, 89, 60, 39, 59, 45, 53, 56, 58, 117, 78, 59, 64, 85, 47, 48, 72, 55, 93, 66, 99, 113, 61, 64, 47, 56, 74, 61, 46, 54, 68, 38, 83, 70, 67, 93, 60, 81, 86, 68, 63, 61, 93, 64, 74, 56, 58, 42, 56, 59, 67, 82, 66, 67, 94, 43, 79, 60, 69, 60, 86, 73, 66, 84, 42, 64, 48, 54, 56, 52, 88, 61, 42, 75, 65, 55, 39, 41, 77, 80, 74, 51, 65, 65, 71, 68, 50, 64, 42, 55, 84, 74, 58, 63, 87, 53, 67, 82, 116, 56, 117, 62, 60, 60, 59, 67, 100, 39, 71, 58, 73, 51, 82, 48, 65, 54, 54, 42, 63, 47, 74, 55, 60, 56, 54, 70, 74, 50, 87, 54, 61, 71, 53, 57, 59, 73, 50, 58, 59, 66, 70, 58, 61, 62, 64, 81, 73, 71, 106, 79, 48, 71, 55, 91, 57, 80, 52, 48, 76, 53, 91, 51, 72, 45, 53, 65, 78, 57, 43, 63, 65, 62, 65, 52, 61, 60, 55, 81, 75, 83, 49, 63, 48, 89, 67, 51, 71, 61, 82, 73, 54, 57, 55, 71, 57, 40, 81, 61, 55, 59, 51, 61, 68, 98, 66, 88, 59, 51, 81, 65, 47, 63, 55, 74, 36, 76, 58, 51, 58, 79, 68, 86, 71, 68, 53, 90, 55, 39, 105, 59, 80, 65, 55, 65, 59, 59, 71, 96, 60, 51, 73, 59, 58, 86, 59, 59, 46, 66, 60, 70, 57, 71, 69, 47, 31, 118, 84, 53, 60, 38, 65, 85, 59, 54, 103, 55, 63, 47, 55, 69, 50, 56, 62, 73, 94, 51, 58, 65, 64, 63, 61, 75, 62, 62, 45, 64, 62, 62, 73, 53, 54, 63, 90, 67, 58, 60, 45, 62, 82, 59, 103, 64, 83, 74, 52, 76, 66, 64, 86, 47, 68, 71, 54, 56, 63, 61, 75, 52, 73, 68, 59, 85, 62, 54, 49, 61, 50, 57, 70, 69, 83, 65, 50, 54, 58, 104, 63, 76, 77, 69, 55, 69, 93, 55, 75, 73, 64, 38, 80, 64, 52, 70, 86, 60, 61, 107, 66, 63, 90, 124, 49, 103, 77, 61, 86, 54, 49, 96, 61, 39, 58, 82, 78, 77, 67, 85, 70, 84, 73, 52, 49, 61, 76, 67, 60, 104, 63, 48, 50, 71, 46, 71, 37, 63, 54, 72, 66, 43, 66, 60, 39, 45, 78, 42, 86, 60, 56, 78, 56, 64, 48, 65, 72, 78, 70, 62, 47, 58, 55, 108, 79, 60, 54, 53, 50, 51, 60, 70, 72, 72, 69, 144, 49, 61, 69, 83, 74, 53, 66, 53, 68, 53, 93, 66, 58, 70, 54, 110, 65, 65, 108, 76, 54, 75, 57, 51, 69, 67, 88, 84, 36, 63, 66, 79, 90, 61, 58, 51, 68, 63, 69, 107, 62, 58, 106, 69, 52, 61, 73, 59, 70, 54, 60, 77, 73, 71, 50, 56, 77, 54, 74, 44, 66, 61, 49, 56, 71, 86, 53, 97, 69, 46, 51, 40, 76, 55, 53, 89, 75, 64, 61, 66, 74, 92, 85, 58, 72, 52, 74, 74, 42, 60, 70, 71, 78, 80, 62, 44, 67, 50, 74, 58, 91, 49, 86, 80, 69, 74, 49, 41, 55, 75, 60, 80, 74, 54, 129, 61, 58, 36, 49, 69, 69, 69, 76, 39, 98, 64, 64, 57, 62, 74, 55, 111, 60, 76, 71, 73, 86, 47, 65, 65, 102, 72, 63, 49, 101, 58, 57, 101, 63, 73, 72, 81, 71, 51, 66, 56, 47, 65, 72, 50, 68, 48, 30, 61, 84, 67, 59, 59, 69, 71, 61, 54, 66, 68, 55, 83, 106, 74, 66, 64, 48, 67, 48, 53, 50, 57, 72, 51, 42, 63, 63, 81, 82, 51, 59, 84, 60, 58, 61, 52, 56, 36, 65, 62, 61, 58, 67, 66, 78, 57, 66, 61, 62, 50, 67, 69, 43, 49, 94, 75, 61, 65, 44, 54, 47, 98, 42, 74, 50, 57, 66, 95, 79, 40, 50, 60, 70, 65, 52, 69, 52, 54, 69, 66, 72, 86, 59, 78, 44, 57, 60, 61, 55, 87, 69, 53, 53, 36, 45, 81, 95, 76, 60, 82, 41, 47, 61, 52, 58, 62, 62, 86, 63, 106, 76, 52, 54, 66, 91, 51, 70, 71, 53, 83, 65, 38, 57, 60, 68, 40, 68, 53, 70, 60, 62, 73, 79, 62, 78, 63, 72, 61, 70, 73, 61, 73, 51, 48, 51, 76, 113, 74, 52, 77, 56, 105, 76, 79, 98, 66, 74, 84, 54, 89, 38, 63, 76, 55, 70, 73, 58, 96, 75, 65, 47, 67, 52, 68, 70, 90, 65, 72, 70, 75, 73, 67, 55, 73, 84, 62, 65, 65, 67, 76, 80, 37, 80, 45, 62, 122, 97, 72, 73, 54, 55, 80, 55, 58, 63, 52, 93, 56, 70, 45, 55, 84, 69, 57, 66, 81, 72, 86, 60, 61, 56, 75, 73, 61, 55, 67, 75, 51, 66, 93, 62, 94, 82, 74, 52, 58, 67, 54, 59, 61, 125, 62, 61, 59, 70, 81, 47, 90, 51, 69, 96, 78, 83, 116, 75, 70, 95, 62, 68, 49, 73, 59, 83, 58, 48, 52, 50, 62, 73, 83, 99, 55, 46, 63, 58, 65, 49, 70, 55, 94, 58, 53, 52, 79, 62, 64, 51, 81, 75, 70, 72, 66, 53, 97, 52, 67, 54, 46, 66, 69, 82, 56, 85, 77, 72, 81, 54, 60, 49, 91, 62, 77, 48, 71, 60, 86, 103, 50, 64, 49, 67, 67, 67, 69, 60, 63, 108, 59, 56, 81, 64, 67, 50, 54, 68, 36, 83, 64, 72, 80, 81, 61, 57, 49, 50, 73, 74, 56, 77, 68, 62, 53, 74, 76, 71, 47, 67, 62, 59, 57, 58, 55, 77, 52, 46, 85, 56, 73, 80, 71, 58, 71, 60, 77, 84, 63, 59, 98, 58, 77, 48, 74, 61, 80, 68, 78, 114, 72, 73, 86, 91, 62, 62, 75, 68, 69, 44, 81, 64, 81, 42, 50, 70, 55, 61, 71, 65, 74, 61, 74, 59, 62, 76, 65, 46, 41, 59, 56, 50, 53, 55, 82, 61, 48, 68, 79, 64, 43, 81, 71, 88, 43, 63, 81, 76, 77, 68, 49, 57, 57, 62, 89, 55, 42, 82, 60, 100, 58, 71, 63, 48, 55, 60, 55, 56, 42, 43, 59, 56, 66, 89, 60, 68, 151, 72, 54, 77, 84, 96, 83, 71, 46, 70, 43, 70, 67, 42, 65, 66, 58, 83, 67, 62, 40, 45, 68, 105, 89, 60, 46, 77, 71, 47, 68, 46, 57, 68, 59, 67, 60, 71, 79, 66, 73, 89, 65, 115, 68, 84, 51, 49, 62, 48, 70, 68, 91, 49, 94, 85, 55, 107, 67, 58, 58, 55, 75, 82, 54, 66, 64, 53, 90, 64, 48, 66, 48, 78, 55, 35, 69, 45, 65, 44, 63, 68, 44, 72, 66, 68, 89, 42, 68, 65, 69, 70, 81, 65, 64, 73, 96, 45, 72, 69, 55, 52, 71, 70, 59, 65, 57, 53, 97, 47, 75, 64, 70, 73, 76, 80, 68, 51, 51, 61, 57, 86, 93, 91, 69, 73, 51, 65, 48, 76, 65, 61, 78, 58, 64, 60, 69, 72, 41, 81, 60, 74, 65, 63, 64, 77, 61, 86, 105, 48, 74, 53, 69, 75, 60, 90, 66, 57, 73, 47, 58, 84, 63, 95, 55, 59, 46, 39, 57, 72, 53, 75, 52, 59, 43, 76, 72, 57, 64, 51, 51, 68, 50, 63, 83, 68, 48, 64, 48, 68, 24, 55, 115, 56, 72, 51, 94, 62, 34, 71, 62, 67, 75, 73, 58, 52, 47, 55, 37, 87, 46, 53, 74, 61, 67, 96, 73, 68, 63, 60, 51, 69, 60, 70, 66, 52, 47, 72, 56, 55, 48, 69, 57, 71, 57, 84, 55, 63, 54, 67, 95, 35, 84, 62, 85, 47, 50, 55, 58, 60, 97, 73, 62, 42, 63, 60, 72, 84, 67, 52, 64, 42, 69, 97, 58, 71, 78, 63, 78, 84, 42, 61, 73, 118, 45, 59, 63, 72, 56, 49, 77, 66, 37, 58, 57, 65, 88, 75, 73, 64, 91, 69, 56, 61, 63, 88, 47, 72, 78, 53, 33, 78, 55, 73, 76, 79, 43, 67, 60, 35, 55, 58, 77, 43, 57, 55, 70, 71, 92, 65, 42, 45, 60, 70, 78, 75, 65, 81, 59, 66, 44, 57, 42, 65, 53, 48, 54, 63, 56, 74, 58, 67, 81, 59, 67, 58, 63, 62, 62, 67, 68, 52, 70, 67, 41, 46, 64, 70, 58, 60, 58, 42, 71, 66, 47, 79, 65, 71, 61, 64, 83, 62, 80, 68, 53, 57, 47, 52, 59, 65, 61, 59, 71, 86, 80, 97, 65, 80, 53, 63, 65, 65, 79, 69, 63, 82, 50, 58, 96, 67, 68, 66, 51, 65, 77, 76, 108, 61, 64, 56, 83, 59, 60, 77, 48, 69, 68, 66, 54, 70, 101, 58, 81, 53, 60, 49, 71, 65, 52, 54, 61, 76, 80, 53, 58, 72, 37, 60, 78, 67, 39, 80, 55, 81, 81, 55, 68, 61, 72, 47, 61, 68, 64, 63, 57, 50, 67, 44, 70, 57, 90, 40, 61, 101, 52, 72, 82, 54, 80, 75, 68, 65, 75, 65, 75, 58, 96, 50, 56, 74, 61, 58, 53, 61, 80, 39, 77, 44, 51, 62, 118, 54, 98, 66, 68, 55, 70, 67, 66, 68, 55, 73, 59, 65, 65, 91, 52, 68, 57, 46, 40, 53, 56, 42, 57, 54, 76, 73, 62, 65, 78, 56, 73, 61, 130, 79, 70, 57, 69, 69, 61, 58, 57, 81, 61, 92, 76, 72, 63, 53, 78, 62, 74, 47, 76, 95, 71, 48, 58, 74, 91, 89, 56, 64, 68, 72, 54, 84, 52, 83, 56, 73, 65, 61, 59, 46, 104, 65, 49, 67, 102, 60, 78, 78, 60, 73, 53, 61, 55, 70, 110, 43, 56, 64, 53, 58, 78, 55, 51, 66, 72, 43, 80, 57, 46, 54, 87, 70, 75, 57, 65, 66, 88, 88, 48, 58, 70, 89, 66, 56, 74, 61, 64, 75, 49, 53, 63, 67, 42, 84, 73, 94, 78, 57, 83, 58, 64, 41, 81, 59, 91, 84, 58, 84, 67, 64, 67, 57, 67, 69, 68, 58, 52, 49, 92, 62, 78, 52, 65, 82, 75, 67, 58, 73, 101, 72, 79, 90, 58, 91, 50, 54, 62, 105, 65, 30, 56, 72, 68, 44, 61, 47, 58, 58, 66, 72, 58, 58, 78, 75, 76, 71, 60, 65, 67, 51, 48, 98, 70, 68, 82, 65, 71, 94, 71, 60, 103, 57, 58, 56, 63, 64, 59, 47, 59, 41, 68, 71, 62, 123, 45, 57, 59, 67, 65, 63, 61, 67, 54, 66, 79, 79, 105, 79, 58, 88, 63, 56, 74, 70, 45, 90, 62, 55, 59, 63, 44, 82, 64, 57, 57, 68, 59, 60, 87, 57, 68, 58, 63, 83, 67, 61, 71, 126, 110, 70, 53, 78, 67, 62, 79, 71, 65, 67, 63, 61, 81, 69, 66, 33, 54, 87, 66, 51, 80, 71, 68, 60, 62, 51, 93, 64, 43, 56, 79, 117, 67, 66, 81, 81, 47, 59, 67, 71, 55, 59, 107, 74, 84, 45, 57, 79, 59, 65, 80, 60, 46, 45, 50, 57, 57, 104, 55, 78, 107, 53, 66, 57, 85, 56, 80, 70, 115, 81, 54, 57, 59, 54, 62, 79, 64, 43, 55, 64, 65, 68, 65, 64, 67, 136, 50, 49, 62, 88, 60, 88, 41, 75, 89, 91, 66, 50, 48, 85, 71, 77, 83, 51, 71, 82, 39, 62, 63, 58, 60, 55, 90, 56, 78, 68, 89, 61, 52, 90, 84, 67, 83, 100, 72, 56, 53, 65, 66, 79, 52, 48, 70, 54, 72, 87, 61, 84, 67, 38, 65, 69, 72, 65, 73, 77, 63, 66, 120, 74, 80, 64, 69, 72, 57, 84, 62, 48, 93, 58, 91, 57, 79, 81, 90, 59, 71, 51, 60, 53, 59, 81, 42, 65, 53, 81, 43, 67, 53, 61, 79, 60, 44, 52, 63, 66, 58, 75, 51, 56, 78, 75, 65, 71, 65, 61, 66, 83, 51, 75, 119, 74, 77, 77, 79, 86, 34, 82, 35, 92, 44, 65, 47, 72, 44, 64, 52, 63, 84, 41, 45, 46, 89, 68, 49, 68, 86, 48, 68, 63, 78, 83, 50, 58, 57, 73, 72, 49, 84, 53, 55, 59, 57, 72, 63, 82, 53, 61, 68, 53, 64, 57, 62, 55, 43, 62, 63, 58, 68, 64, 72, 79, 77, 51, 55, 57, 67, 65, 73, 54, 73, 42, 56, 62, 74, 70, 57, 91, 75, 81, 76, 79, 62, 66, 58, 77, 76, 53, 63, 54, 64, 55, 67, 38, 68, 114, 54, 64, 60, 79, 85, 63, 64, 82, 51, 41, 67, 54, 48, 52, 70, 53, 58, 48, 96, 69, 71, 80, 58, 69, 67, 56, 75, 60, 116, 86, 48, 80, 87, 58, 62, 65, 66, 70, 52, 79, 45, 53, 67, 67, 68, 60, 75, 68, 92, 73, 63, 69, 95, 75, 65, 69, 75, 52, 57, 43, 35, 59, 64, 67, 67, 81, 94, 93, 66, 91, 71, 67, 49, 47, 80, 52, 78, 103, 84, 65, 55, 113, 66, 72, 65, 64, 70, 70, 72, 69, 68, 56, 64, 50, 42, 76, 61, 69, 50, 51, 57, 38, 78, 51, 72, 61, 48, 65, 67, 73, 60, 63, 62, 62, 44, 59, 86, 36, 57, 56, 82, 55, 59, 152, 59, 46, 73, 91, 84, 59, 81, 57, 66, 45, 52, 51, 57, 92, 38, 60, 71, 72, 72, 59, 50, 70, 70, 74, 39, 71, 78, 62, 59, 55, 59, 58, 62, 84, 74, 45, 56, 58, 98, 78, 61, 62, 94, 61, 46, 46, 54, 64, 80, 99, 75, 74, 65, 77, 85, 50, 110, 52, 56, 48, 90, 52, 83, 58, 78, 40, 70, 80, 64, 69, 77, 92, 67, 69, 56, 70, 65, 71, 37, 57, 81, 67, 61, 50, 75, 64, 62, 71, 62, 44, 70, 89, 64, 43, 66, 76, 64, 50, 61, 66, 77, 70, 47, 62, 59, 81, 77, 34, 65, 66, 94, 64, 105, 54, 67, 80, 46, 76, 55, 36, 70, 62, 64, 77, 66, 50, 55, 87, 58, 69, 99, 76, 59, 58, 78, 62, 58, 69, 42, 52, 61, 50, 66, 51, 74, 80, 73, 69, 83, 46, 53, 62, 66, 83, 67, 57, 62, 53, 70, 45, 70, 58, 59, 50, 96, 70, 56, 102, 36, 69, 61, 68, 67, 65, 96, 77, 61, 54, 91, 66, 63, 55, 77, 65, 77, 55, 61, 79, 43, 95, 93, 73, 53, 73, 61, 66, 43, 61, 62, 85, 46, 91, 53, 48, 63, 61, 105, 72, 66, 98, 55, 56, 60, 52, 56, 70, 65, 98, 69, 63, 49, 71, 46, 76, 63, 57, 95, 78, 59, 49, 85, 85, 80, 52, 74, 64, 73, 99, 81, 37, 77, 73, 52, 65, 64, 85, 88, 66, 59, 73, 71, 83, 64, 50, 73, 79, 54, 51, 56, 127, 66, 153, 93, 80, 52, 67, 58, 53, 30, 55, 74, 55, 46, 67, 59, 83, 64, 63, 54, 69, 66, 28, 71, 71, 50, 38, 60, 77, 70, 69, 64, 67, 63, 57, 55, 49, 55, 48, 52, 68, 60, 54, 95, 54, 70, 59, 50, 67, 112, 79, 68, 88, 66, 69, 65, 41, 40, 45, 61, 52, 70, 67, 64, 59, 66, 68, 75, 91, 57, 62, 53, 56, 75, 68, 98, 68, 74, 51, 58, 44, 72, 70, 69, 45, 66, 54, 40, 52, 74, 77, 76, 69, 61, 83, 86, 100, 64, 56, 54, 67, 91, 70, 58, 55, 81, 63, 64, 62, 59, 46, 78, 93, 77, 50, 45, 74, 68, 74, 73, 74, 51, 69, 51, 58, 68, 80, 61, 69, 61, 70, 56, 59, 52, 63, 53, 68, 75, 57, 61, 47, 64, 57, 75, 66, 60, 88, 55, 69, 68, 73, 45, 88, 73, 41, 64, 46, 58, 78, 66, 93, 75, 83, 75, 90, 66, 65, 45, 56, 79, 70, 100, 79, 68, 49, 69, 76, 73, 83, 54, 57, 86, 63, 57, 77, 54, 69, 78, 70, 106, 85, 48, 67, 86, 60, 57, 48, 84, 51, 65, 57, 67, 42, 80, 53, 63, 68, 85, 68, 61, 60, 58, 104, 55, 75, 80, 59, 43, 99, 48, 72, 72, 83, 86, 97, 63, 43, 73, 74, 62, 72, 62, 77, 59, 59, 97, 62, 58, 53, 53, 62, 90, 55, 110, 69, 50, 69, 56, 63, 73, 56, 84, 92, 58, 66, 84, 47, 58, 61, 69, 59, 73, 78, 68, 55, 61, 71, 47, 63, 99, 59, 52, 43, 64, 52, 61, 68, 60, 57, 64, 79, 63, 71, 47, 71, 48, 51, 74, 62, 75, 59, 75, 49, 62, 70, 64, 75, 80, 63, 87, 79, 76, 77, 69, 86, 73, 79, 97, 46, 65, 39, 66, 71, 80, 56, 145, 68, 40, 65, 54, 76, 63, 59, 83, 49, 47, 66, 67, 70, 64, 70, 80, 61, 54, 77, 82, 53, 66, 73, 65, 57, 62, 71, 75, 53, 58, 61, 59, 78, 63, 54, 54, 63, 61, 75, 54, 61, 44, 49, 57, 74, 52, 60, 95, 60, 67, 44, 78, 69, 105, 79, 63, 63, 67, 70, 79, 59, 82, 64, 53, 58, 77, 63, 56, 87, 66, 85, 61, 48, 65, 53, 70, 58, 56, 74, 64, 67, 91, 66, 63, 49, 48, 94, 48, 71, 74, 62, 68, 71, 62, 85, 68, 62, 48, 89, 73, 60, 62, 63, 94, 60, 82, 55, 57, 64, 50, 64, 58, 56, 102, 47, 65, 61, 67, 60, 67, 70, 62, 72, 56, 66, 53, 80, 72, 66, 48, 87, 71, 70, 56, 54, 61, 53, 55, 60, 63, 66, 84, 61, 49, 82, 61, 61, 64, 68, 72, 63, 71, 64, 72, 74, 57, 97, 88, 60, 62, 79, 52, 40, 69, 60, 53, 56, 65, 68, 71, 33, 49, 57, 94, 60, 69, 73, 56, 53, 71, 61, 78, 65, 47, 77, 42, 72, 65, 58, 88, 92, 61, 101, 63, 113, 66, 57, 67, 50, 65, 104, 63, 69, 74, 41, 58, 79, 62, 70, 48, 67, 72, 64, 75, 75, 68, 59, 71, 72, 60, 55, 60, 89, 69, 69, 74, 38, 60, 83, 65, 78, 94, 79, 74, 51, 66, 90, 61, 69, 66, 50, 57, 53, 84, 48, 58, 75, 53, 63, 64, 75, 71, 43, 57, 52, 55, 60, 69, 51, 68, 68, 64, 75, 57, 62, 57, 95, 61, 44, 65, 73, 70, 76, 55, 58, 59, 64, 95, 64, 61, 60, 72, 49, 61, 49, 66, 78, 74, 84, 60, 51, 38, 76, 74, 76, 72, 136, 54, 68, 87, 67, 64, 76, 67, 88, 81, 91, 56, 56, 72, 60, 62, 85, 53, 60, 87, 68, 63, 65, 66, 60, 60, 73, 51, 83, 57, 57, 77, 72, 57, 58, 61, 72, 62, 76, 89, 45, 54, 67, 61, 71, 54, 76, 58, 52, 50, 41, 70, 56, 59, 57, 75, 39, 63, 49, 76, 62, 56, 54, 59, 70, 57, 79, 85, 57, 49, 60, 68, 48, 83, 62, 46, 68, 38, 74, 73, 80, 66, 93, 84, 62, 82, 46, 89, 70, 62, 64, 54, 58, 74, 57, 66, 68, 62, 87, 61, 70, 73, 61, 62, 49, 66, 56, 67, 99, 58, 85, 41, 86, 57, 49, 65, 54, 64, 73, 88, 72, 80, 54, 74, 60, 80, 74, 68, 64, 54, 57, 58, 78, 83, 113, 68, 62, 67, 46, 90, 45, 62, 64, 75, 70, 77, 58, 67, 47, 66, 57, 87, 52, 66, 65, 87, 100, 78, 82, 76, 64, 66, 81, 48, 59, 63, 76, 62, 48, 69, 58, 55, 67, 72, 73, 40, 74, 63, 49, 68, 70, 60, 122, 52, 65, 51, 68, 71, 65, 84, 65, 53, 71, 62, 70, 37, 68, 78, 76, 44, 77, 51, 82, 57, 60, 75, 61, 47, 67, 46, 63, 77, 65, 59, 59, 64, 69, 76, 65, 56, 67, 79, 70, 69, 57, 52, 70, 54, 66, 72, 58, 60, 85, 75, 72, 60, 59, 38, 67, 57, 80, 58, 52, 55, 65, 51, 55, 80, 42, 50, 50, 55, 66, 57, 58, 51, 60, 63, 40, 62, 66, 70, 84, 72, 52, 67, 66, 58, 68, 73, 70, 86, 51, 65, 63, 48, 80, 46, 68, 86, 67, 49, 76, 71, 64, 66, 66, 69, 54, 68, 61, 85, 71, 63, 68, 65, 50, 103, 44, 55, 72, 66, 60, 59, 48, 59, 46, 47, 67, 78, 41, 73, 60, 77, 63, 46, 59, 64, 41, 62, 61, 62, 85, 63, 81, 59, 73, 78, 45, 73, 67, 57, 73, 56, 60, 82, 63, 70, 80, 63, 55, 61, 71, 63, 67, 64, 53, 49, 59, 54, 57, 53, 61, 81, 71, 69, 54, 84, 72, 79, 59, 146, 74, 76, 65, 53, 59, 60, 60, 43, 73, 79, 63, 80, 55, 78, 80, 59, 60, 74, 77, 80, 61, 62, 57, 54, 60, 53, 55, 63, 55, 69, 53, 60, 58, 82, 53, 78, 59, 62, 71, 68, 97, 64, 76, 90, 67, 58, 88, 60, 70, 69, 75, 54, 65, 49, 58, 56, 57, 63, 72, 59, 74, 84, 57, 58, 55, 75, 79, 89, 89, 66, 64, 55, 48, 61, 57, 72, 74, 79, 66, 66, 102, 47, 60, 63, 52, 61, 62, 57, 79, 43, 62, 60, 60, 68, 77, 84, 61, 53, 83, 157, 71, 83, 56, 84, 91, 75, 78, 58, 63, 52, 98, 113, 55, 53, 77, 85, 41, 67, 45, 66, 74, 80, 71, 72, 59, 55, 65, 54, 53, 65, 54, 105, 64, 46, 56, 45, 55, 68, 79, 64, 74, 59, 63, 70, 59, 78, 49, 55, 50, 66, 57, 77, 59, 59, 92, 71, 70, 80, 56, 49, 50, 60, 74, 54, 72, 68, 62, 63, 63, 53, 43, 62, 98, 62, 68, 55, 54, 74, 84, 87, 67, 52, 76, 46, 70, 68, 58, 41, 58, 81, 85, 51, 105, 67, 69, 68, 96, 70, 68, 82, 64, 60, 79, 53, 55, 59, 65, 86, 86, 40, 46, 78, 89, 60, 77, 77, 71, 116, 43, 52, 67, 45, 108, 59, 42, 68, 76, 51, 70, 56, 72, 57, 62, 73, 64, 52, 51, 69, 74, 55, 56, 69, 80, 69, 68, 43, 40, 64, 50, 68, 61, 63, 59, 66, 88, 62, 54, 76, 54, 71, 69, 66, 69, 57, 77, 67, 74, 77, 61, 63, 76, 72, 67, 61, 56, 46, 47, 54, 78, 42, 71, 93, 65, 68, 82, 58, 74, 60, 57, 50, 57, 60, 94, 59, 62, 41, 56, 62, 43, 51, 57, 87, 57, 71, 58, 74, 56, 72, 69, 91, 62, 62, 65, 74, 47, 87, 85, 67, 50, 54, 62, 37, 81, 42, 61, 71, 97, 54, 66, 68, 86, 58, 49, 45, 52, 70, 58, 77, 86, 84, 52, 60, 52, 71, 52, 75, 84, 67, 72, 76, 65, 86, 64, 109, 47, 39, 48, 77, 56, 59, 57, 63, 77, 55, 76, 65, 58, 80, 68, 62, 63, 56, 70, 100, 62, 50, 44, 45, 48, 87, 46, 112, 57, 63, 71, 101, 84, 61, 69, 72, 69, 51, 59, 48, 76, 76, 63, 66, 58, 67, 53, 64, 67, 71, 61, 67, 58, 62, 78, 66, 70, 85, 77, 69, 87, 63, 49, 51, 66, 68, 49, 74, 67, 68, 65, 53, 48, 59, 50, 62, 57, 61, 57, 55, 105, 82, 73, 61, 73, 62, 49, 77, 52, 57, 74, 54, 81, 71, 70, 50, 114, 61, 40, 63, 76, 74, 65, 65, 51, 55, 42, 65, 72, 43, 57, 56, 88, 75, 85, 64, 52, 64, 57, 83, 61, 68, 96, 75, 81, 83, 72, 51, 67, 55, 52, 59, 62, 64, 56, 75, 53, 61, 54, 45, 56, 85, 93, 43, 65, 62, 56, 47, 64, 61, 45, 40, 73, 60, 78, 75, 70, 80, 59, 56, 49, 90, 67, 67, 80, 57, 65, 53, 66, 77, 48, 59, 66, 55, 80, 85, 76, 63, 51, 53, 76, 72, 37, 68, 42, 46, 67, 74, 74, 78, 56, 87, 55, 70, 58, 63, 61, 131, 60, 63, 67, 51, 78, 60, 57, 85, 57, 76, 82, 58, 54, 59, 53, 70, 62, 70, 87, 52, 55, 45, 60, 61, 70, 62, 60, 65, 59, 58, 63, 57, 88, 81, 47, 61, 59, 65, 74, 53, 66, 62, 64, 57, 72, 66, 65, 91, 58, 45, 88, 65, 62, 39, 60, 56, 52, 62, 60, 55, 67, 75, 61, 69, 81, 68, 55, 64, 56, 49, 49, 46, 70, 80, 106, 73, 50, 60, 52, 76, 77, 60, 59, 87, 55, 68, 50, 51, 59, 63, 55, 79, 75, 68, 88, 60, 75, 69, 94, 67, 64, 56, 83, 48, 54, 78, 63, 63, 68, 86, 89, 73, 54, 61, 59, 77, 69, 51, 60, 60, 68, 108, 75, 52, 87, 70, 51, 79, 69, 55, 35, 88, 70, 60, 64, 67, 57, 59, 59, 59, 51, 69, 77, 65, 71, 95, 60, 57, 65, 58, 45, 53, 57, 97, 67, 60, 71, 62, 73, 64, 51, 66, 101, 82, 76, 69, 64, 62, 62, 60, 61, 53, 63, 55, 66, 65, 65, 78, 76, 89, 77, 36, 70, 42, 77, 58, 65, 58, 64, 89, 49, 56, 58, 64, 84, 60, 76, 66, 100, 76, 63, 63, 64, 54, 65, 56, 52, 82, 50, 67, 70, 86, 81, 54, 55, 48, 70, 43, 106, 63, 56, 54, 67, 73, 40, 57, 47, 36, 61, 71, 92, 89, 87, 77, 61, 54, 72, 66, 71, 58, 56, 109, 79, 73, 66, 65, 79, 84, 54, 67, 50, 57, 57, 50, 53, 61, 80, 79, 90, 46, 57, 61, 65, 65, 54, 57, 32, 72, 57, 59, 56, 68, 61, 67, 44, 76, 95, 80, 59, 62, 52, 63, 51, 64, 80, 89, 54, 74, 55, 47, 60, 63, 50, 75, 73, 57, 60, 104, 62, 74, 111, 56, 68, 46, 68, 77, 65, 75, 82, 62, 57, 56, 54, 48, 78, 74, 57, 69, 42, 42, 68, 59, 56, 71, 66, 67, 53, 56, 69, 69, 80, 56, 75, 65, 60, 74, 44, 62, 83, 78, 76, 69, 79, 105, 46, 45, 67, 76, 112, 54, 63, 74, 100, 57, 69, 94, 61, 46, 64, 52, 58, 55, 54, 77, 67, 66, 77, 63, 63, 55, 64, 71, 53, 68, 70, 66, 67, 88, 74, 66, 70, 51, 83, 57, 92, 72, 62, 88, 45, 108, 81, 53, 64, 52, 41, 56, 61, 49, 72, 86, 69, 64, 59, 58, 58, 88, 60, 64, 48, 56, 60, 65, 64, 60, 64, 58, 66, 52, 74, 42, 65, 89, 75, 52, 77, 51, 69, 78, 71, 59, 59, 68, 75, 48, 91, 65, 72, 56, 74, 69, 66, 55, 48, 74, 46, 48, 95, 107, 77, 67, 69, 77, 78, 65, 71, 69, 84, 60, 67, 95, 63, 67, 52, 73, 48, 49, 62, 101, 61, 73, 44, 68, 73, 78, 65, 55, 55, 95, 60, 87, 53, 65, 55, 58, 51, 65, 81, 74, 86, 84, 60, 57, 54, 67, 71, 64, 68, 56, 79, 87, 61, 79, 54, 62, 66, 58, 60, 59, 39, 53, 55, 89, 60, 71, 66, 81, 66, 54, 58, 58, 61, 56, 44, 65, 57, 70, 57, 70, 69, 92, 53, 86, 55, 64, 56, 66, 87, 73, 77, 59, 55, 78, 54, 67, 56, 57, 66, 79, 61, 65, 62, 70, 76, 66, 52, 76, 70, 68, 89, 64, 56, 68, 36, 63, 55, 54, 54, 83, 61, 68, 66, 87, 68, 73, 62, 76, 112, 66, 61, 66, 124, 54, 71, 68, 56, 58, 53, 62, 56, 62, 69, 62, 75, 69, 86, 49, 58, 96, 82, 80, 78, 50, 52, 52, 53, 72, 67, 76, 68, 62, 76, 50, 66, 69, 64, 76, 51, 45, 59, 48, 70, 78, 58, 69, 68, 69, 66, 62, 81, 86, 90, 60, 75, 63, 54, 58, 70, 51, 62, 48, 48, 74, 58, 94, 80, 62, 64, 72, 80, 48, 151, 54, 83, 63, 56, 46, 74, 49, 93, 44, 62, 59, 69, 59, 80, 86, 45, 71, 79, 53, 53, 61, 71, 67, 45, 72, 83, 72, 68, 68, 44, 75, 53, 48, 88, 52, 41, 73, 63, 70, 67, 76, 45, 55, 51, 75, 89, 58, 80, 64, 69, 76, 75, 46, 77, 65, 76, 104, 56, 70, 42, 82, 48, 94, 68, 73, 47, 76, 68, 47, 84, 55, 81, 53, 51, 63, 73, 69, 71, 62, 53, 51, 69, 74, 69, 67, 63, 64, 74, 69, 69, 87, 71, 70, 45, 65, 76, 82, 76, 66, 46, 79, 77, 67, 44, 69, 50, 47, 80, 61, 62, 72, 83, 49, 66, 73, 84, 74, 64, 73, 46, 48, 50, 62, 72, 76, 72, 63, 64, 45, 55, 60, 83, 47, 55, 67, 55, 56, 75, 56, 70, 72, 51, 55, 84, 67, 69, 74, 48, 48, 84, 59, 67, 63, 42, 74, 65, 81, 47, 91, 63, 58, 54, 66, 35, 80, 48, 58, 72, 63, 57, 62, 75, 52, 64, 83, 59, 60, 70, 77, 65, 64, 56, 82, 53, 66, 65, 59, 54, 60, 75, 45, 125, 70, 87, 52, 58, 70, 67, 69, 63, 57, 51, 54, 46, 42, 104, 63, 63, 70, 65, 111, 67, 51, 58, 64, 108, 48, 59, 68, 57, 56, 67, 62, 63, 72, 60, 80, 57, 45, 60, 72, 39, 89, 75, 65, 58, 76, 84, 23, 62, 66, 62, 76, 50, 61, 55, 55, 58, 60, 64, 61, 51, 61, 62, 39, 65, 57, 56, 94, 84, 89, 35, 76, 82, 59, 49, 73, 145, 52, 72, 52, 78, 63, 54, 76, 63, 66, 66, 70, 94, 58, 54, 74, 55, 57, 55, 67, 64, 67, 73, 71, 66, 58, 58, 76, 64, 62, 50, 59, 70, 51, 72, 115, 91, 65, 59, 67, 58, 56, 126, 72, 41, 56, 71, 64, 42, 67, 45, 61, 46, 59, 65, 71, 98, 58, 90, 59, 56, 63, 103, 47, 74, 58, 64, 60, 56, 77, 75, 60, 72, 70, 65, 59, 73, 49, 92, 81, 56, 77, 66, 64, 86, 59, 86, 58, 77, 98, 69, 48, 106, 58, 57, 61, 57, 55, 49, 75, 74, 69, 63, 54, 53, 64, 111, 74, 62, 75, 118, 53, 75, 62, 51, 53, 81, 61, 49, 59, 49, 49, 70, 65, 51, 71, 64, 64, 82, 61, 85, 56, 48, 66, 78, 78, 39, 61, 85, 96, 49, 63, 44, 49, 92, 57, 38, 60, 92, 53, 63, 56, 75, 77, 64, 61, 76, 60, 79, 49, 67, 47, 47, 49, 152, 56, 49, 62, 44, 74, 83, 62, 67, 58, 51, 61, 57, 62, 78, 78, 85, 60, 64, 63, 66, 71, 65, 67, 59, 97, 82, 71, 67, 125, 67, 69, 48, 87, 63, 77, 87, 48, 47, 69, 72, 40, 58, 86, 69, 51, 36, 85, 50, 72, 103, 68, 63, 74, 65, 65, 81, 76, 75, 66, 70, 84, 66, 54, 58, 53, 48, 76, 72, 71, 60, 57, 83, 60, 100, 61, 45, 63, 74, 58, 45, 89, 95, 83, 69, 107, 62, 62, 57, 64, 67, 59, 66, 62, 75, 60, 62, 48, 59, 65, 63, 67, 59, 48, 64, 66, 65, 75, 69, 65, 80, 76, 77, 77, 64, 44, 51, 54, 66, 77, 83, 25, 48, 57, 55, 73, 55, 74, 62, 68, 58, 66, 45, 43, 61, 67, 61, 58, 55, 51, 69, 52, 61, 69, 66, 48, 55, 72, 65, 97, 56, 70, 57, 46, 49, 68, 63, 64, 71, 54, 56, 57, 68, 75, 58, 71, 63, 68, 75, 64, 52, 69, 56, 95, 70, 94, 68, 52, 74, 65, 76, 56, 62, 56, 65, 57, 63, 81, 67, 71, 45, 60, 84, 68, 75, 53, 76, 76, 37, 110, 122, 84, 73, 64, 55, 68, 73, 55, 87, 48, 70, 60, 65, 56, 44, 82, 48, 41, 57, 64, 62, 77, 86, 68, 64, 65, 59, 45, 79, 57, 63, 69, 46, 71, 75, 55, 53, 56, 71, 69, 73, 51, 72, 47, 49, 31, 59, 79, 102, 49, 73, 68, 85, 59, 54, 45, 56, 54, 63, 48, 74, 69, 59, 87, 55, 70, 93, 67, 48, 49, 89, 60, 72, 86, 53, 59, 59, 65, 56, 78, 48, 84, 83, 61, 63, 66, 100, 72, 59, 71, 72, 57, 64, 72, 73, 56, 81, 41, 69, 72, 49, 52, 64, 62, 89, 52, 62, 74, 60, 49, 56, 56, 50, 74, 60, 53, 58, 74, 77, 78, 58, 63, 63, 57, 86, 78, 75, 61, 75, 48, 75, 48, 58, 63, 61, 77, 72, 52, 46, 58, 77, 63, 47, 72, 52, 60, 56, 93, 66, 67, 69, 61, 77, 55, 51, 37, 76, 68, 58, 81, 50, 49, 62, 63, 90, 69, 49, 74, 48, 71, 80, 40, 49, 67, 62, 65, 54, 74, 60, 51, 62, 82, 74, 86, 56, 77, 55, 35, 66, 90, 52, 75, 57, 57, 66, 52, 62, 65, 83, 81, 75, 85, 71, 67, 58, 39, 69, 55, 58, 105, 100, 42, 50, 63, 76, 60, 62, 61, 66, 68, 55, 75, 107, 76, 56, 67, 64, 112, 58, 67, 74, 55, 73, 49, 65, 46, 88, 43, 96, 39, 64, 75, 46, 62, 77, 65, 71, 54, 43, 59, 60, 52, 65, 56, 75, 59, 58, 55, 105, 91, 82, 82, 72, 62, 58, 56, 98, 100, 68, 59, 120, 72, 81, 75, 63, 52, 64, 73, 76, 85, 61, 51, 78, 85, 50, 57, 61, 38, 103, 59, 62, 134, 65, 84, 54, 67, 68, 56, 77, 77, 74, 75, 62, 144, 69, 70, 53, 76, 62, 48, 78, 53, 59, 61, 96, 55, 53, 79, 45, 79, 59, 54, 56, 64, 66, 78, 50, 81, 44, 93, 87, 65, 75, 89, 63, 74, 67, 71, 62, 106, 70, 65, 79, 45, 54, 98, 82, 77, 82, 56, 35, 71, 86, 59, 82, 79, 49, 72, 76, 48, 69, 78, 56, 67, 38, 57, 49, 52, 71, 63, 58, 67, 147, 63, 79, 74, 59, 51, 61, 66, 65, 57, 82, 94, 61, 59, 58, 69, 42, 45, 49, 77, 75, 83, 57, 80, 75, 80, 62, 74, 55, 84, 57, 62, 31, 64, 55, 49, 68, 72, 81, 56, 67, 67, 62, 50, 72, 55, 92, 62, 103, 76, 78, 66, 69, 60, 55, 79, 61, 65, 59, 57, 71, 69, 61, 82, 72, 49, 93, 61, 65, 44, 55, 72, 54, 55, 106, 56, 45, 62, 41, 60, 61, 80, 38, 54, 79, 67, 59, 75, 59, 79, 88, 55, 71, 53, 76, 63, 78, 63, 69, 81, 80, 65, 63, 58, 75, 72, 45, 76, 57, 59, 83, 58, 72, 55, 53, 62, 52, 55, 50, 90, 87, 84, 68, 58, 46, 119, 92, 69, 71, 61, 60, 64, 94, 86, 76, 67, 71, 61, 61, 69, 47, 82, 63, 79, 54, 69, 68, 83, 45, 59, 71, 74, 46, 47, 79, 82, 85, 64, 54, 69, 90, 49, 55, 55, 121, 91, 67, 78, 65, 68, 75, 63, 60, 36, 81, 53, 82, 58, 91, 60, 70, 67, 62, 78, 73, 68, 63, 71, 58, 94, 61, 86, 70, 67, 76, 54, 64, 63, 76, 58, 66, 77, 54, 67, 50, 45, 56, 104, 65, 64, 64, 64, 51, 63, 116, 67, 94, 50, 57, 45, 62, 68, 63, 55, 76, 52, 47, 75, 77, 53, 53, 82, 69, 57, 71, 63, 60, 67, 89, 73, 62, 76, 99, 54, 56, 56, 62, 81, 74, 60, 56, 50, 63, 63, 111, 85, 53, 53, 55, 107, 65, 59, 56, 58, 51, 53, 57, 44, 72, 77, 57, 65, 61, 70, 54, 59, 61, 57, 62, 64, 67, 78, 51, 64, 84, 61, 52, 74, 67, 61, 59, 73, 74, 108, 66, 75, 75, 64, 67, 75, 70, 67, 58, 55, 75, 83, 63, 42, 64, 62, 69, 82, 88, 53, 84, 56, 44, 68, 63, 69, 52, 59, 85, 65, 71, 79, 58, 66, 85, 80, 69, 72, 86, 61, 68, 55, 59, 58, 69, 64, 53, 54, 62, 79, 66, 48, 72, 52, 74, 69, 51, 42, 67, 59, 57, 81, 60, 54, 54, 46, 61, 78, 69, 109, 56, 63, 58, 60, 63, 66, 74, 62, 57, 76, 48, 71, 58, 45, 77, 61, 64, 61, 55, 45, 65, 46, 66, 74, 64, 56, 82, 74, 71, 81, 100, 61, 61, 61, 54, 60, 57, 76, 63, 39, 54, 74, 53, 69, 86, 80, 95, 68, 68, 88, 81, 71, 70, 58, 71, 83, 77, 74, 58, 55, 78, 64, 56, 73, 73, 69, 52, 102, 66, 59, 93, 63, 67, 82, 81, 50, 72, 72, 53, 64, 64, 57, 63, 57, 59, 57, 55, 56, 59, 61, 77, 55, 71, 51, 60, 58, 54, 61, 66, 64, 104, 51, 68, 68, 77, 55, 64, 76, 74, 68, 71, 69, 91, 67, 55, 58, 87, 57, 73, 72, 63, 60, 85, 64, 48, 57, 57, 71, 51, 55, 77, 48, 67, 80, 49, 63, 53, 67, 57, 49, 63, 72, 72, 90, 51, 60, 77, 65, 58, 65, 65, 77, 84, 66, 62, 73, 75, 67, 51, 74, 67, 76, 61, 61, 66, 67, 73, 70, 76, 46, 98, 69, 53, 46, 62, 53, 61, 63, 58, 71, 68, 65, 73, 53, 65, 51, 85, 94, 53, 53, 67, 52, 53, 86, 68, 73, 82, 60, 46, 71, 86, 87, 75, 43, 59, 66, 58, 58, 92, 53, 60, 59, 103, 53, 72, 41, 53, 42, 75, 60, 69, 57, 71, 56, 62, 71, 56, 61, 87, 57, 65, 55, 71, 76, 66, 108, 62, 75, 53, 51, 56, 51, 68, 54, 68, 78, 64, 61, 73, 64, 61, 70, 71, 59, 73, 77, 73, 57, 87, 60, 60, 37, 73, 80, 93, 92, 59, 75, 68, 52, 56, 62, 38, 52, 61, 95, 59, 35, 59, 86, 72, 59, 73, 60, 64, 36, 54, 71, 63, 68, 66, 65, 67, 82, 61, 121, 72, 46, 48, 37, 63, 61, 87, 59, 105, 56, 55, 81, 64, 86, 60, 80, 44, 55, 79, 52, 68, 57, 73, 68, 49, 94, 57, 54, 84, 66, 73, 56, 62, 64, 55, 66, 59, 87, 53, 58, 123, 50, 140, 102, 59, 63, 31, 89, 54, 101, 54, 54, 54, 58, 49, 70, 78, 105, 83, 57, 40, 61, 52, 74, 74, 83, 60, 52, 51, 60, 72, 64, 48, 82, 86, 62, 48, 56, 74, 53, 55, 61, 76, 32, 69, 114, 40, 57, 52, 61, 73, 80, 98, 71, 63, 69, 87, 69, 63, 57, 58, 59, 68, 44, 62, 82, 62, 77, 65, 42, 98, 61, 56, 38, 49, 53, 94, 94, 49, 66, 67, 62, 77, 71, 62, 69, 69, 49, 43, 70, 65, 84, 44, 90, 84, 55, 83, 90, 51, 57, 54, 63, 63, 60, 87, 87, 66, 77, 59, 70, 65, 61, 82, 80, 61, 79, 57, 56, 62, 52, 70, 70, 50, 66, 96, 81, 66, 61, 79, 59, 91, 74, 46, 77, 71, 65, 45, 61, 59, 82, 65, 55, 70, 58, 83, 66, 49, 48, 115, 58, 88, 45, 56, 73, 55, 50, 35, 57, 69, 53, 72, 53, 52, 83, 57, 72, 51, 62, 52, 64, 50, 53, 57, 64, 86, 60, 75, 59, 70, 41, 69, 54, 54, 65, 68, 50, 53, 56, 95, 62, 53, 83, 89, 45, 63, 48, 69, 69, 56, 89, 63, 63, 82, 91, 61, 61, 64, 66, 63, 52, 43, 57, 57, 56, 79, 68, 53, 55, 81, 78, 51, 49, 58, 62, 51, 86, 77, 60, 67, 73, 74, 86, 80, 66, 77, 69, 80, 56, 63, 47, 73, 89, 78, 71, 86, 52, 73, 77, 62, 71, 71, 53, 55, 64, 92, 59, 62, 73, 58, 60, 66, 61, 72, 65, 67, 78, 55, 72, 58, 74, 77, 53, 82, 82, 87, 61, 90, 75, 52, 65, 78, 93, 50, 80, 73, 66, 84, 57, 67, 57, 86, 64, 74, 97, 75, 76, 51, 89, 64, 85, 70, 62, 63, 64, 75, 110, 94, 43, 82, 63, 65, 68, 61, 51, 64, 47, 74, 46, 56, 45, 63, 71, 74, 54, 75, 50, 67, 71, 58, 51, 70, 77, 72, 63, 73, 53, 59, 51, 81, 53, 61, 48, 64, 67, 69, 63, 85, 79, 93, 56, 36, 42, 67, 73, 64, 55, 65, 52, 81, 94, 72, 46, 52, 94, 55, 51, 72, 52, 66, 72, 42, 45, 90, 50, 64, 70, 63, 75, 58, 73, 77, 73, 62, 196, 83, 43, 65, 71, 78, 135, 108, 71, 65, 53, 61, 51, 43, 68, 50, 59, 50, 79, 63, 70, 73, 77, 55, 102, 48, 73, 79, 49, 61, 71, 63, 67, 50, 67, 87, 123, 62, 51, 53, 75, 59, 155, 73, 58, 96, 73, 44, 66, 60, 72, 57, 77, 100, 31, 65, 50, 70, 71, 67, 72, 62, 57, 58, 99, 46, 53, 79, 77, 68, 52, 73, 48, 83, 63, 70, 67, 71, 60, 67, 57, 70, 69, 64, 86, 61, 74, 63, 63, 70, 63, 58, 69, 69, 55, 66, 74, 62, 61, 51, 45, 70, 76, 80, 66, 85, 70, 53, 51, 55, 41, 67, 95, 95, 62, 132, 55, 73, 69, 81, 115, 76, 59, 50, 68, 61, 41, 51, 53, 63, 65, 55, 59, 54, 61, 54, 83, 61, 54, 57, 51, 100, 56, 74, 65, 61, 70, 60, 70, 77, 56, 82, 104, 48, 49, 83, 55, 60, 50, 51, 65, 65, 62, 81, 86, 43, 101, 51, 100, 63, 81, 71, 80, 41, 80, 38, 48, 114, 71, 66, 66, 80, 105, 65, 41, 44, 44, 66, 76, 77, 52, 92, 86, 96, 58, 52, 53, 65, 58, 68, 75, 65, 92, 60, 61, 52, 56, 47, 71, 36, 71, 44, 101, 80, 58, 59, 67, 55, 48, 51, 46, 90, 90, 94, 55, 92, 68, 82, 62, 46, 45, 73, 57, 46, 58, 52, 65, 79, 78, 64, 57, 78, 96, 60, 32, 61, 46, 81, 51, 75, 56, 51, 84, 64, 59, 60, 59, 58, 60, 58, 82, 65, 72, 73, 60, 84, 63, 75, 89, 50, 39, 52, 46, 64, 101, 55, 46, 99, 78, 67, 92, 72, 63, 121, 96, 45, 61, 50, 57, 50, 53, 89, 92, 37, 71, 79, 78, 56, 42, 77, 87, 69, 33, 98, 66, 56, 49, 65, 45, 59, 39, 83, 59, 78, 57, 80, 87, 62, 52, 63, 57, 57, 51, 64, 67, 66, 45, 107, 67, 59, 90, 62, 66, 64, 57, 66, 101, 64, 30, 69, 64, 64, 72, 68, 90, 56, 60, 46, 58, 67, 67, 57, 73, 60, 88, 60, 52, 80, 83, 70, 78, 62, 72, 62, 62, 59, 77, 73, 104, 56, 50, 73, 55, 63, 43, 76, 70, 85, 63, 62, 74, 55, 57, 53, 63, 56, 79, 59, 88, 72, 72, 91, 74, 62, 56, 88, 54, 54, 59, 64, 71, 89, 58, 69, 69, 75, 82, 98, 60, 68, 55, 76, 68, 51, 51, 73, 64, 42, 55, 65, 56, 80, 65, 61, 53, 74, 58, 67, 54, 67, 60, 63, 64, 58, 48, 76, 54, 79, 61, 58, 62, 90, 50, 54, 79, 82, 62, 44, 71, 65, 79, 80, 33, 76, 80, 62, 35, 95, 59, 55, 48, 57, 57, 123, 46, 60, 68, 53, 90, 50, 86, 59, 74, 50, 49, 98, 49, 89, 41, 58, 73, 49, 60, 48, 55, 73, 95, 100, 98, 89, 61, 60, 59, 70, 45, 90, 72, 56, 57, 63, 69, 66, 55, 42, 63, 70, 68, 49, 65, 65, 62, 54, 42, 78, 51, 40, 46, 53, 45, 73, 54, 71, 50, 69, 55, 108, 75, 49, 85, 62, 53, 72, 74, 70, 54, 71, 77, 76, 69, 72, 72, 76, 68, 45, 56, 86, 72, 81, 65, 77, 63, 56, 52, 53, 74, 60, 78, 58, 66, 50, 57, 66, 83, 73, 54, 67, 61, 67, 46, 75, 56, 50, 70, 61, 92, 67, 82, 92, 93, 79, 67, 70, 66, 57, 59, 69, 48, 77, 88, 59, 102, 54, 65, 87, 79, 61, 102, 59, 14, 74, 75, 96, 56, 52, 69, 96, 45, 62, 101, 53, 49, 59, 95, 69, 50, 74, 69, 65, 65, 75, 62, 82, 59, 48, 72, 50, 75, 69, 40, 82, 79, 62, 64, 64, 100, 70, 65, 66, 37, 68, 64, 118, 67, 61, 57, 68, 64, 50, 73, 99, 80, 63, 91, 55, 52, 57, 97, 74, 82, 78, 87, 47, 52, 64, 62, 72, 63, 49, 64, 60, 72, 57, 68, 83, 62, 84, 82, 49, 93, 66, 75, 51, 57, 113, 63, 59, 72, 40, 67, 68, 79, 68, 61, 67, 87, 55, 73, 58, 64, 72, 54, 53, 72, 48, 69, 63, 67, 107, 58, 70, 83, 55, 46, 80, 64, 71, 50, 66, 64, 67, 51, 86, 77, 111, 81, 59, 79, 90, 57, 58, 59, 63, 71, 71, 66, 96, 47, 54, 62, 49, 67, 85, 55, 88, 61, 68, 81, 68, 57, 31, 57, 71, 94, 54, 54, 69, 55, 81, 59, 66, 83, 65, 48, 91, 72, 45, 67, 60, 63, 50, 70, 61, 76, 67, 77, 83, 67, 54, 88, 68, 95, 63, 81, 65, 53, 64, 44, 93, 94, 65, 69, 56, 58, 50, 74, 55, 47, 71, 62, 65, 52, 59, 67, 50, 77, 70, 54, 74, 48, 106, 56, 76, 62, 60, 101, 52, 62, 85, 59, 76, 91, 75, 56, 55, 76, 82, 60, 56, 51, 60, 64, 87, 74, 75, 91, 54, 107, 66, 95, 53, 66, 79, 68, 46, 87, 46, 98, 69, 42, 55, 45, 41, 86, 110, 57, 41, 51, 69, 46, 77, 87, 52, 70, 73, 46, 56, 66, 75, 68, 76, 62, 72, 55, 54, 51, 50, 42, 73, 85, 74, 65, 70, 82, 67, 94, 66, 54, 38, 61, 69, 52, 54, 71, 128, 91, 60, 63, 68, 62, 60, 62, 79, 66, 59, 69, 55, 56, 46, 52, 43, 79, 41, 73, 67, 96, 67, 62, 67, 73, 48, 63, 56, 65, 70, 77, 49, 63, 60, 54, 67, 54, 61, 45, 63, 63, 59, 60, 71, 67, 79, 67, 51, 59, 60, 66, 73, 67, 82, 66, 63, 61, 66, 80, 44, 56, 65, 57, 52, 76, 69, 65, 60, 48, 61, 54, 53, 38, 64, 44, 67, 72, 49, 83, 39, 74, 59, 68, 76, 68, 40, 64, 73, 85, 70, 80, 66, 72, 81, 100, 66, 71, 80, 78, 77, 62, 74, 48, 41, 81, 56, 58, 70, 58, 61, 71, 71, 56, 58, 81, 64, 61, 50, 57, 91, 62, 61, 44, 80, 96, 82, 80, 60, 59, 38, 65, 106, 69, 76, 50, 46, 73, 103, 56, 60, 35, 61, 64, 60, 61, 80, 95, 52, 69, 80, 56, 61, 58, 98, 83, 61, 46, 64, 56, 79, 74, 47, 57, 81, 64, 50, 76, 47, 66, 57, 48, 58, 60, 69, 78, 57, 105, 56, 66, 59, 65, 69, 63, 67, 90, 50, 88, 74, 50, 67, 60, 81, 58, 73, 101, 65, 67, 78, 65, 47, 52, 64, 55, 58, 70, 42, 62, 77, 72, 56, 60, 52, 62, 57, 69, 59, 67, 55, 71, 67, 98, 70, 60, 45, 63, 87, 61, 56, 70, 81, 63, 74, 74, 70, 76, 55, 72, 73, 46, 57, 73, 70, 62, 57, 59, 66, 62, 69, 69, 78, 66, 75, 79, 62, 61, 83, 80, 60, 71, 45, 76, 53, 65, 49, 80, 110, 63, 63, 68, 75, 38, 55, 49, 62, 61, 57, 56, 76, 51, 62, 78, 59, 71, 58, 47, 62, 55, 53, 69, 66, 45, 64, 68, 42, 57, 64, 64, 80, 74, 75, 63, 87, 47, 69, 84, 63, 76, 66, 66, 60, 54, 72, 46, 73, 54, 71, 70, 54, 71, 57, 58, 80, 58, 104, 49, 65, 92, 117, 61, 58, 87, 103, 67, 73, 73, 70, 70, 67, 67, 58, 63, 67, 80, 65, 72, 75, 69, 70, 58, 83, 61, 62, 70, 75, 69, 72, 67, 64, 67, 83, 55, 49, 63, 77, 51, 65, 69, 67, 66, 55, 60, 69, 67, 56, 61, 92, 88, 57, 63, 76, 76, 63, 65, 57, 60, 59, 88, 54, 61, 57, 55, 80, 64, 87, 60, 92, 54, 77, 59, 52, 88, 49, 50, 58, 160, 51, 64, 44, 77, 66, 63, 55, 103, 142, 54, 54, 54, 55, 81, 74, 57, 66, 89, 66, 54, 94, 81, 64, 87, 86, 73, 73, 49, 78, 72, 82, 79, 74, 71, 71, 48, 88, 51, 82, 52, 64, 49, 52, 66, 55, 59, 58, 57, 61, 85, 62, 89, 67, 56, 47, 84, 50, 80, 84, 74, 73, 62, 60, 87, 46, 77, 66, 67, 52, 46, 68, 56, 66, 57, 67, 56, 54, 70, 63, 85, 72, 77, 74, 51, 55, 60, 92, 55, 67, 48, 62, 60, 75, 96, 73, 62, 64, 73, 51, 56, 70, 75, 57, 70, 83, 62, 55, 74, 61, 60, 106, 81, 65, 82, 64, 61, 80, 64, 54, 59, 57, 60, 60, 67, 68, 63, 45, 80, 55, 77, 59, 53, 51, 71, 59, 58, 61, 47, 70, 49, 69, 64, 60, 46, 57, 74, 56, 83, 63, 57, 55, 52, 54, 74, 74, 64, 62, 62, 88, 63, 75, 66, 66, 65, 62, 81, 57, 64, 65, 79, 55, 89, 61, 69, 53, 48, 74, 58, 51, 69, 51, 66, 63, 66, 69, 62, 50, 43, 62, 49, 67, 68, 68, 55, 59, 99, 74, 46, 69, 54, 70, 54, 82, 70, 55, 89, 63, 57, 69, 68, 57, 75, 68, 60, 100, 67, 80, 59, 66, 49, 103, 90, 70, 61, 64, 56, 80, 103, 71, 68, 59, 86, 43, 66, 61, 55, 75, 52, 61, 70, 52, 60, 57, 69, 60, 50, 50, 58, 51, 76, 70, 78, 36, 70, 72, 57, 72, 67, 60, 61, 47, 48, 58, 62, 64, 50, 56, 71, 82, 71, 67, 58, 69, 61, 78, 63, 61, 77, 64, 59, 64, 60, 55, 67, 64, 53, 77, 121, 64, 78, 52, 79, 63, 50, 61, 61, 63, 78, 56, 84, 78, 53, 61, 47, 64, 62, 62, 64, 68, 95, 55, 74, 62, 39, 55, 123, 63, 61, 89, 67, 63, 52, 76, 60, 98, 54, 56, 74, 46, 47, 65, 69, 76, 74, 57, 51, 44, 57, 70, 72, 69, 64, 53, 70, 73, 77, 49, 47, 81, 57, 63, 85, 52, 63, 61, 88, 69, 76, 68, 74, 64, 56, 62, 51, 51, 54, 80, 79, 71, 62, 60, 59, 78, 96, 56, 60, 68, 78, 83, 67, 61, 88, 51, 70, 57, 63, 48, 59, 60, 39, 71, 62, 58, 84, 74, 76, 60, 73, 60, 62, 58, 66, 54, 49, 71, 64, 33, 48, 68, 50, 76, 81, 58, 63, 45, 65, 68, 55, 82, 59, 45, 49, 72, 59, 56, 64, 63, 62, 63, 67, 75, 56, 75, 94, 67, 67, 52, 62, 54, 56, 61, 76, 87, 71, 92, 47, 54, 60, 70, 78, 67, 73, 60, 69, 70, 65, 70, 48, 91, 58, 74, 81, 59, 50, 49, 76, 96, 46, 80, 58, 75, 77, 74, 62, 55, 60, 68, 59, 55, 65, 70, 70, 69, 63, 65, 64, 62, 77, 83, 66, 54, 73, 56, 67, 46, 74, 72, 50, 52, 53, 61, 90, 60, 46, 76, 54, 59, 59, 88, 76, 59, 48, 57, 75, 53, 74, 94, 62, 83, 70, 61, 47, 68, 66, 55, 61, 71, 54, 62, 70, 64, 62, 57, 69, 107, 57, 60, 77, 66, 54, 56, 87, 73, 64, 59, 60, 61, 73, 54, 50, 48, 67, 58, 65, 61, 72, 84, 62, 65, 58, 69, 72, 74, 79, 68, 61, 64, 67, 85, 55, 68, 69, 70, 62, 76, 40, 77, 50, 92, 60, 52, 58, 61, 64, 71, 73, 65, 64, 61, 54, 63, 98, 59, 52, 51, 53, 64, 60, 84, 72, 61, 65, 79, 65, 68, 68, 66, 52, 60, 55, 64, 75, 83, 69, 91, 78, 66, 83, 78, 76, 76, 60, 95, 56, 69, 81, 66, 56, 48, 49, 71, 65, 75, 58, 72, 58, 60, 68, 84, 74, 58, 66, 53, 69, 65, 56, 75, 53, 118, 89, 62, 58, 57, 68, 65, 58, 58, 81, 48, 52, 56, 52, 122, 68, 67, 59, 85, 71, 113, 89, 88, 61, 63, 58, 73, 54, 58, 53, 67, 73, 55, 87, 65, 67, 62, 63, 92, 85, 88, 68, 69, 75, 62, 70, 89, 61, 56, 51, 80, 59, 60, 68, 68, 59, 59, 60, 90, 67, 77, 73, 57, 69, 50, 78, 50, 77, 69, 59, 51, 61, 63, 50, 78, 70, 84, 53, 72, 54, 59, 58, 56, 59, 71, 104, 51, 61, 73, 90, 125, 65, 67, 66, 41, 64, 42, 60, 79, 64, 48, 57, 131, 50, 59, 67, 64, 58, 55, 74, 74, 64, 57, 63, 71, 53, 37, 63, 65, 74, 68, 92, 63, 53, 72, 61, 74, 88, 64, 56, 66, 61, 66, 64, 49, 56, 50, 57, 64, 56, 75, 58, 63, 66, 86, 71, 71, 62, 66, 59, 61, 73, 86, 62, 52, 62, 77, 70, 59, 72, 61, 61, 56, 94, 55, 54, 56, 69, 57, 79, 72, 48, 74, 64, 84, 60, 46, 45, 59, 119, 63, 100, 78, 87, 71, 72, 59, 56, 67, 67, 53, 110, 54, 57, 81, 38, 67, 51, 91, 86, 70, 81, 54, 88, 49, 67, 92, 40, 49, 80, 66, 53, 79, 48, 87, 54, 64, 53, 70, 63, 62, 79, 49, 54, 59, 85, 86, 63, 99, 68, 55, 70, 132, 58, 74, 52, 68, 64, 101, 54, 56, 76, 74, 71, 81, 60, 57, 90, 60, 53, 69, 63, 45, 49, 58, 59, 75, 62, 37, 59, 80, 82, 71, 86, 76, 76, 48, 68, 68, 70, 48, 67, 76, 94, 47, 76, 70, 74, 74, 56, 60, 69, 56, 55, 56, 77, 58, 58, 54, 60, 62, 67, 69, 53, 87, 55, 89, 59, 58, 51, 59, 68, 81, 83, 71, 67, 63, 65, 65, 64, 73, 57, 55, 54, 74, 116, 61, 58, 54, 36, 123, 68, 63, 42, 89, 64, 76, 59, 58, 65, 69, 74, 76, 73, 69, 84, 60, 61, 44, 55, 67, 55, 80, 80, 47, 72, 48, 52, 79, 75, 57, 49, 73, 90, 64, 64, 68, 103, 54, 59, 50, 77, 63, 61, 70, 66, 71, 50, 58, 52, 72, 82, 58, 71, 62, 74, 46, 57, 65, 63, 74, 56, 53, 62, 50, 55, 47, 62, 67, 78, 74, 70, 77, 51, 79, 100, 55, 60, 58, 69, 72, 69, 43, 63, 92, 71, 70, 99, 154, 49, 68, 64, 46, 61, 60, 71, 52, 78, 61, 58, 44, 54, 49, 55, 62, 50, 82, 62, 76, 65, 45, 66, 64, 60, 59, 80, 62, 62, 55, 66, 55, 67, 62, 77, 62, 67, 97, 114, 49, 59, 71, 67, 69, 79, 83, 65, 70, 53, 65, 58, 70, 77, 52, 79, 54, 65, 62, 57, 86, 92, 60, 56, 73, 75, 85, 59, 70, 59, 96, 55, 62, 77, 54, 59, 75, 73, 44, 69, 66, 61, 50, 65, 72, 58, 79, 71, 90, 57, 49, 75, 54, 83, 79, 51, 69, 92, 48, 80, 56, 63, 65, 69, 95, 65, 67, 63, 59, 74, 66, 45, 51, 59, 47, 38, 85, 75, 63, 76, 56, 74, 47, 76, 133, 73, 51, 95, 59, 38, 60, 89, 80, 75, 88, 70, 65, 53, 74, 85, 75, 82, 63, 71, 68, 63, 53, 61, 85, 79, 61, 84, 68, 56, 64, 87, 51, 68, 58, 94, 47, 65, 82, 81, 63, 82, 83, 66, 92, 54, 52, 74, 58, 82, 70, 51, 64, 50, 64, 77, 59, 56, 60, 66, 61, 77, 43, 73, 82, 125, 74, 55, 69, 65, 47, 75, 87, 73, 84, 65, 58, 62, 84, 52, 79, 55, 55, 88, 49, 52, 59, 82, 54, 49, 66, 76, 85, 49, 52, 40, 66, 67, 67, 71, 58, 77, 80, 50, 55, 63, 53, 77, 61, 82, 78, 81, 61, 50, 55, 61, 60, 65, 63, 63, 67, 82, 54, 70, 72, 69, 75, 69, 57, 72, 67, 41, 65, 65, 59, 67, 72, 87, 83, 80, 59, 58, 129, 60, 65, 64, 49, 58, 81, 42, 50, 57, 69, 78, 60, 77, 65, 127, 66, 61, 71, 55, 49, 95, 66, 58, 56, 73, 53, 86, 60, 60, 64, 61, 80, 68, 55, 68, 64, 66, 60, 96, 80, 67, 51, 56, 60, 78, 51, 79, 57, 137, 52, 57, 52, 65, 45, 67, 78, 74, 69, 56, 54, 56, 69, 63, 63, 74, 61, 54, 105, 60, 82, 85, 60, 47, 78, 86, 60, 81, 54, 51, 47, 65, 63, 61, 78, 61, 56, 81, 66, 67, 76, 52, 30, 97, 87, 73, 52, 58, 59, 60, 79, 67, 48, 64, 56, 66, 52, 67, 51, 44, 58, 91, 46, 64, 52, 54, 46, 52, 52, 58, 63, 45, 64, 67, 72, 48, 67, 92, 78, 69, 62, 56, 53, 76, 64, 70, 41, 59, 68, 49, 58, 83, 66, 82, 50, 65, 76, 125, 79, 47, 72, 108, 52, 92, 40, 61, 46, 61, 60, 59, 38, 52, 66, 44, 69, 82, 69, 64, 67, 64, 38, 45, 48, 47, 82, 61, 67, 63, 55, 55, 65, 63, 70, 69, 78, 93, 79, 59, 98, 74, 80, 52, 77, 66, 82, 67, 55, 75, 62, 83, 55, 81, 82, 76, 52, 66, 61, 60, 64, 57, 82, 108, 70, 93, 48, 88, 57, 64, 59, 55, 72, 49, 60, 71, 59, 69, 78, 82, 71, 62, 72, 47, 41, 62, 47, 76, 69, 54, 80, 60, 58, 72, 69, 60, 78, 52, 58, 54, 51, 59, 58, 73, 64, 58, 46, 61, 40, 51, 54, 69, 60, 69, 81, 66, 51, 57, 67, 78, 95, 62, 51, 58, 62, 78, 70, 71, 70, 43, 63, 59, 48, 74, 73, 57, 65, 65, 65, 42, 54, 64, 60, 42, 59, 51, 77, 66, 72, 119, 55, 66, 67, 68, 56, 75, 75, 64, 34, 75, 87, 51, 55, 72, 64, 45, 66, 64, 55, 70, 47, 70, 79, 61, 81, 75, 60, 84, 68, 47, 113, 61, 76, 72, 95, 75, 57, 86, 88, 53, 82, 56, 59, 69, 63, 55, 79, 65, 74, 78, 67, 48, 64, 48, 69, 57, 71, 74, 70, 56, 60, 87, 63, 59, 57, 74, 54, 52, 45, 54, 140, 66, 56, 59, 37, 82, 54, 75, 56, 94, 84, 66, 80, 73, 60, 72, 60, 48, 112, 70, 75, 53, 61, 64, 79, 67, 55, 93, 59, 43, 68, 75, 71, 61, 85, 68, 47, 77, 69, 52, 91, 42, 47, 60, 54, 65, 57, 53, 58, 42, 72, 72, 63, 71, 50, 56, 98, 71, 78, 53, 59, 104, 60, 72, 81, 80, 85, 65, 52, 76, 74, 95, 49, 66, 40, 67, 42, 43, 88, 68, 101, 53, 70, 62, 59, 35, 61, 56, 79, 55, 73, 88, 67, 66, 43, 47, 59, 74, 73, 48, 68, 57, 62, 63, 51, 70, 64, 66, 55, 72, 63, 88, 78, 45, 52, 71, 85, 72, 67, 72, 61, 79, 77, 70, 75, 54, 80, 48, 95, 62, 65, 70, 68, 62, 60, 91, 68, 69, 59, 45, 82, 65, 81, 51, 64, 65, 63, 81, 67, 103, 63, 59, 64, 74, 76, 59, 61, 65, 73, 65, 50, 63, 50, 61, 59, 61, 75, 70, 65, 58, 68, 58, 67, 63, 62, 67, 62, 78, 85, 54, 57, 75, 68, 63, 54, 72, 59, 88, 74, 49, 70, 58, 61, 38, 52, 70, 54, 54, 108, 58, 60, 66, 57, 54, 60, 66, 55, 71, 53, 56, 51, 65, 67, 73, 92, 72, 74, 66, 83, 67, 58, 77, 69, 47, 55, 69, 60, 70, 105, 54, 75, 65, 64, 58, 58, 55, 72, 56, 71, 110, 58, 65, 65, 55, 65, 69, 80, 57, 65, 61, 83, 50, 75, 93, 67, 57, 55, 52, 80, 73, 60, 91, 43, 76, 96, 51, 60, 64, 57, 42, 56, 62, 48, 75, 60, 65, 60, 47, 47, 119, 81, 63, 62, 79, 60, 54, 70, 53, 65, 83, 61, 52, 50, 62, 77, 62, 48, 89, 57, 62, 78, 76, 75, 67, 53, 55, 56, 63, 59, 69, 78, 75, 61, 53, 63, 78, 69, 55, 71, 76, 83, 60, 50, 62, 54, 61, 70, 49, 114, 58, 64, 68, 95, 64, 60, 64, 81, 58, 59, 49, 63, 67, 67, 70, 55, 52, 59, 61, 53, 76, 78, 55, 46, 116, 72, 60, 62, 57, 58, 66, 75, 70, 68, 89, 62, 77, 77, 60, 54, 52, 50, 71, 65, 65, 55, 74, 63, 68, 51, 58, 56, 97, 60, 52, 77, 58, 76, 83, 73, 57, 62, 59, 86, 58, 77, 60, 70, 56, 77, 83, 45, 83, 73, 66, 63, 63, 46, 72, 53, 56, 60, 61, 61, 139, 60, 61, 62, 84, 57, 56, 60, 79, 72, 121, 76, 86, 72, 59, 65, 86, 78, 69, 79, 64, 61, 98, 58, 73, 67, 72, 54, 74, 84, 84, 40, 69, 68, 62, 53, 93, 59, 69, 61, 72, 40, 83, 59, 48, 60, 44, 71, 78, 51, 70, 76, 94, 66, 85, 86, 60, 56, 52, 74, 91, 75, 62, 51, 69, 67, 58, 60, 60, 59, 81, 41, 56, 63, 52, 62, 63, 58, 95, 53, 53, 54, 99, 56, 83, 91, 65, 55, 72, 67, 53, 54, 48, 59, 79, 61, 79, 82, 48, 79, 45, 89, 54, 51, 65, 74, 65, 55, 45, 61, 64, 69, 60, 53, 67, 67, 73, 98, 68, 62, 71, 58, 63, 64, 58, 69, 52, 65, 68, 81, 67, 75, 74, 66, 60, 100, 66, 65, 57, 72, 84, 58, 77, 67, 62, 60, 71, 67, 65, 46, 62, 72, 51, 57, 61, 56, 71, 91, 60, 66, 60, 77, 66, 61, 67, 86, 72, 76, 73, 59, 111, 72, 52, 60, 94, 91, 58, 56, 64, 58, 60, 73, 66, 65, 81, 79, 98, 60, 64, 103, 72, 63, 60, 64, 60, 70, 63, 42, 58, 76, 66, 58, 71, 49, 46, 97, 83, 46, 54, 80, 90, 55, 104, 72, 54, 80, 41, 66, 51, 65, 53, 57, 71, 60, 61, 70, 71, 46, 55, 46, 65, 75, 83, 52, 75, 55, 55, 53, 56, 67, 71, 57, 74, 49, 66, 37, 61, 76, 78, 54, 64, 57, 39, 61, 63, 81, 52, 77, 50, 60, 68, 84, 64, 90, 59, 69, 88, 70, 70, 35, 85, 55, 53, 64, 80, 57, 65, 61, 48, 84, 82, 104, 67, 58, 55, 62, 64, 51, 66, 51, 74, 55, 93, 53, 53, 70, 71, 44, 72, 73, 86, 60, 70, 57, 65, 63, 58, 68, 44, 64, 45, 86, 52, 60, 64, 44, 80, 61, 59, 70, 56, 57, 72, 85, 72, 59, 59, 71, 103, 69, 56, 57, 59, 41, 66, 47, 50, 74, 66, 61, 55, 48, 83, 50, 53, 77, 69, 84, 80, 88, 66, 65, 78, 68, 51, 62, 60, 76, 64, 65, 90, 72, 65, 70, 61, 58, 54, 67, 68, 63, 68, 76, 60, 74, 47, 72, 78, 70, 68, 60, 65, 52, 85, 57, 76, 65, 72, 65, 56, 69, 70, 74, 100, 59, 64, 67, 80, 86, 79, 69, 55, 55, 56, 61, 40, 62, 68, 96, 50, 56, 67, 78, 61, 62, 62, 68, 65, 72, 59, 74, 77, 66, 57, 52, 54, 54, 55, 78, 53, 76, 76, 77, 73, 68, 82, 72, 61, 86, 59, 79, 62, 67, 60, 53, 66, 56, 56, 66, 47, 38, 38, 136, 66, 90, 51, 67, 55, 81, 63, 42, 46, 61, 60, 73, 72, 56, 55, 65, 64, 49, 57, 76, 68, 51, 59, 61, 51, 60, 76, 69, 81, 99, 63, 66, 57, 63, 64, 85, 62, 57, 75, 76, 63, 53, 68, 52, 63, 68, 63, 62, 63, 77, 67, 56, 92, 60, 86, 54, 87, 68, 61, 54, 64, 64, 66, 77, 57, 65, 53, 104, 58, 67, 46, 81, 52, 59, 53, 65, 63, 67, 54, 69, 55, 76, 55, 51, 71, 73, 68, 69, 58, 64, 42, 91, 64, 66, 62, 68, 79, 63, 74, 67, 47, 52, 59, 46, 69, 110, 58, 68, 52, 87, 57, 98, 64, 62, 61, 79, 77, 83, 63, 52, 63, 64, 63, 63, 83, 73, 60, 88, 59, 51, 67, 75, 57, 78, 90, 62, 64, 53, 52, 47, 68, 53, 70, 63, 78, 65, 50, 62, 53, 58, 97, 76, 74, 55, 76, 56, 66, 93, 62, 53, 75, 65, 58, 46, 59, 58, 47, 62, 55, 95, 75, 60, 60, 57, 63, 63, 72, 71, 48, 87, 63, 44, 33, 79, 44, 69, 42, 59, 58, 59, 66, 68, 67, 53, 61, 71, 85, 69, 58, 69, 64, 55, 54, 54, 52, 64, 70, 85, 86, 77, 57, 96, 58, 60, 64, 79, 61, 49, 72, 71, 60, 61, 66, 48, 67, 47, 80, 54, 49, 79, 75, 48, 76, 95, 137, 53, 69, 67, 77, 66, 70, 94, 67, 69, 75, 46, 48, 70, 52, 97, 84, 63, 61, 75, 52, 76, 70, 58, 63, 71, 55, 70, 62, 50, 50, 57, 54, 76, 68, 71, 57, 57, 58, 58, 73, 51, 57, 56, 75, 52, 56, 60, 64, 66, 66, 66, 53, 49, 55, 102, 65, 77, 65, 55, 72, 60, 79, 59, 105, 73, 128, 68, 71, 57, 78, 62, 79, 71, 109, 68, 60, 73, 80, 52, 56, 70, 67, 57, 63, 52, 76, 57, 59, 94, 48, 69, 78, 79, 38, 66, 75, 63, 68, 74, 72, 56, 66, 66, 44, 80, 76, 64, 68, 52, 55, 56, 76, 61, 59, 94, 59, 74, 57, 95, 70, 126, 84, 54, 75, 67, 68, 70, 112, 56, 57, 65, 72, 79, 70, 74, 60, 109, 55, 56, 61, 89, 59, 68, 68, 72, 77, 70, 38, 81, 54, 89, 91, 57, 83, 55, 69, 56, 63, 60, 67, 55, 64, 65, 46, 48, 51, 45, 61, 64, 38, 50, 80, 59, 57, 46, 39, 119, 78, 52, 75, 79, 74, 52, 70, 99, 47, 80, 35, 67, 49, 78, 70, 55, 59, 94, 66, 91, 59, 44, 87, 101, 62, 53, 113, 48, 54, 71, 52, 77, 104, 85, 76, 91, 59, 70, 97, 104, 55, 50, 70, 71, 67, 70, 60, 71, 60, 81, 60, 48, 57, 62, 77, 55, 76, 61, 83, 57, 48, 60, 51, 95, 69, 76, 58, 74, 66, 63, 57, 57, 57, 64, 47, 54, 74, 66, 53, 51, 47, 85, 44, 75, 48, 66, 86, 72, 64, 67, 46, 51, 60, 47, 57, 72, 80, 93, 56, 76, 39, 73, 66, 62, 58, 62, 36, 58, 53, 89, 59, 40, 56, 60, 104, 58, 48, 57, 65, 71, 55, 73, 101, 47, 66, 68, 56, 44, 68, 88, 93, 67, 54, 81, 53, 55, 73, 49, 81, 72, 59, 99, 48, 68, 57, 96, 53, 85, 75, 98, 64, 52, 76, 68, 66, 60, 55, 82, 73, 63, 41, 67, 61, 58, 49, 73, 68, 64, 48, 60, 60, 56, 69, 56, 50, 46, 53, 64, 79, 88, 46, 51, 77, 62, 44, 57, 67, 63, 48, 70, 53, 53, 70, 84, 53, 70, 39, 48, 69, 79, 64, 75, 83, 80, 68, 62, 56, 55, 58, 80, 43, 68, 41, 62, 69, 55, 67, 60, 58, 66, 48, 61, 86, 72, 89, 76, 46, 55, 50, 58, 82, 73, 52, 96, 83, 42, 59, 68, 57, 113, 94, 60, 67, 58, 68, 52, 109, 66, 48, 94, 55, 100, 78, 92, 87, 57, 81, 59, 41, 60, 49, 60, 67, 71, 60, 37, 43, 66, 78, 70, 71, 69, 85, 71, 63, 47, 68, 52, 70, 65, 57, 68, 66, 76, 63, 62, 52, 63, 62, 49, 62, 50, 65, 45, 47, 82, 79, 78, 51, 82, 55, 46, 65, 64, 58, 70, 65, 74, 46, 51, 64, 77, 54, 54, 57, 84, 48, 175, 55, 80, 87, 45, 77, 50, 64, 53, 111, 72, 77, 55, 52, 64, 66, 55, 84, 41, 74, 64, 83, 57, 51, 76, 51, 75, 81, 52, 89, 81, 59, 73, 77, 64, 65, 39, 45, 56, 83, 57, 73, 40, 73, 50, 118, 62, 68, 75, 79, 56, 60, 57, 97, 57, 63, 64, 79, 80, 47, 71, 63, 62, 58, 46, 63, 63, 59, 49, 66, 44, 50, 55, 97, 35, 54, 46, 64, 65, 67, 49, 61, 58, 115, 95, 58, 48, 97, 77, 51, 61, 57, 55, 84, 67, 112, 68, 66, 70, 68, 133, 42, 64, 57, 61, 67, 93, 90, 60, 58, 67, 58, 78, 70, 64, 51, 76, 100, 38, 52, 51, 49, 69, 64, 53, 70, 50, 66, 64, 41, 65, 60, 74, 69, 73, 65, 56, 48, 58, 58, 67, 60, 80, 57, 90, 65, 59, 75, 60, 54, 55, 84, 64, 55, 69, 47, 88, 71, 70, 51, 87, 73, 67, 67, 49, 99, 67, 80, 61, 34, 59, 98, 100, 70, 61, 87, 78, 62, 88, 61, 70, 57, 70, 52, 45, 71, 80, 69, 108, 90, 33, 60, 62, 80, 151, 92, 63, 69, 55, 44, 65, 89, 48, 71, 68, 62, 61, 66, 69, 75, 56, 58, 71, 56, 76, 81, 79, 67, 79, 51, 46, 93, 57, 64, 57, 62, 98, 52, 91, 57, 54, 60, 64, 51, 75, 41, 48, 56, 74, 51, 64, 88, 86, 63, 47, 94, 73, 64, 74, 66, 64, 75, 62, 104, 57, 69, 64, 52, 100, 55, 87, 51, 41, 57, 54, 106, 89, 58, 76, 88, 49, 56, 103, 93, 57, 62, 74, 68, 80, 71, 66, 88, 91, 86, 45, 93, 99, 37, 58, 83, 55, 36, 95, 101, 63, 70, 55, 58, 63, 53, 48, 75, 67, 51, 94, 64, 77, 49, 75, 72, 34, 71, 71, 37, 105, 72, 104, 60, 78, 74, 88, 64, 65, 76, 81, 100, 77, 69, 74, 58, 95, 67, 68, 143, 66, 41, 89, 74, 46, 73, 80, 32, 69, 66, 72, 70, 69, 90, 91, 81, 59, 88, 70, 56, 94, 59, 158, 46, 67, 59, 68, 76, 66, 59, 72, 68, 63, 63, 71, 65, 58, 71, 51, 48, 54, 59, 52, 86, 87, 75, 102, 58, 66, 44, 64, 65, 58, 48, 92, 81, 89, 48, 53, 87, 56, 49, 62, 95, 73, 44, 46, 59, 62, 82, 62, 78, 76, 71, 53, 65, 51, 79, 90, 61, 44, 83, 87, 77, 65, 90, 59, 63, 71, 91, 67, 61, 55, 36, 57, 77, 64, 56, 84, 48, 37, 62, 43, 44, 78, 77, 55, 70, 74, 48, 64, 83, 51, 55, 74, 80, 58, 83, 72, 73, 48, 73, 80, 58, 48, 49, 75, 91, 45, 74, 54, 53, 88, 90, 52, 66, 40, 84, 59, 62, 71, 70, 48, 50, 110, 58, 50, 77, 62, 62, 80, 54, 67, 56, 68, 74, 77, 78, 85, 42, 51, 54, 65, 71, 53, 63, 79, 64, 63, 90, 79, 37, 55, 50, 30, 88, 65, 74, 74, 80, 50, 67, 55, 58, 54, 72, 76, 66, 57, 77, 75, 65, 94, 61, 59, 79, 88, 54, 76, 59, 63, 62, 88, 50, 47, 68, 76, 67, 42, 39, 57, 50, 83, 89, 50, 66, 79, 61, 87, 58, 47, 80, 51, 92, 54, 116, 73, 48, 60, 52, 80, 51, 63, 80, 85, 45, 95, 68, 82, 69, 38, 91, 72, 48, 56, 46, 55, 73, 67, 67, 62, 54, 82, 54, 101, 79, 46, 72, 63, 102, 60, 79, 81, 48, 50, 62, 60, 80, 46, 62, 66, 81, 72, 51, 50, 51, 62, 61, 72, 77, 59, 73, 50, 74, 84, 79, 69, 67, 63, 61, 60, 58, 87, 66, 36, 66, 63, 52, 68, 76, 67, 76, 59, 69, 65, 57, 65, 81, 89, 64, 66, 39, 78, 68, 63, 62, 116, 55, 101, 64, 74, 71, 71, 74, 68, 70, 55, 49, 108, 84, 59, 88, 60, 54, 66, 58, 55, 55, 101, 58, 68, 71, 78, 70, 69, 60, 83, 57, 62, 74, 52, 62, 50, 74, 86, 59, 68, 66, 68, 55, 52, 52, 56, 56, 69, 51, 73, 65, 70, 53, 63, 73, 43, 55, 70, 60, 79, 59, 49, 65, 61, 49, 56, 55, 61, 57, 62, 76, 54, 55, 53, 48, 62, 64, 72, 63, 93, 50, 75, 53, 53, 46, 63, 79, 65, 87, 68, 63, 69, 50, 63, 76, 63, 76, 61, 54, 62, 64, 65, 62, 91, 62, 101, 48, 49, 64, 65, 61, 65, 62, 60, 65, 55, 53, 71, 54, 65, 62, 83, 69, 85, 101, 86, 52, 50, 74, 64, 78, 54, 75, 57, 58, 58, 70, 53, 76, 77, 58, 51, 59, 70, 65, 53, 57, 54, 50, 66, 61, 57, 66, 65, 67, 52, 60, 92, 73, 58, 67, 63, 68, 75, 99, 54, 84, 55, 62, 76, 77, 84, 78, 58, 51, 65, 65, 66, 71, 67, 67, 57, 68, 80, 74, 57, 74, 74, 82, 39, 56, 53, 62, 61, 64, 62, 60, 73, 79, 64, 52, 52, 44, 66, 48, 59, 59, 92, 56, 66, 72, 83, 69, 102, 88, 61, 81, 65, 62, 56, 46, 66, 72, 49, 72, 53, 70, 60, 56, 55, 75, 72, 63, 83, 79, 68, 58, 43, 68, 71, 56, 80, 54, 64, 45, 68, 41, 82, 54, 63, 61, 57, 69, 72, 66, 63, 50, 71, 74, 59, 55, 74, 53, 59, 51, 65, 82, 70, 56, 48, 61, 60, 60, 74, 52, 61, 61, 69, 61, 61, 100, 78, 57, 64, 54, 59, 65, 67, 65, 64, 76, 47, 70, 53, 61, 64, 50, 85, 57, 55, 83, 50, 110, 49, 69, 77, 51, 74, 86, 95, 65, 81, 73, 48, 73, 61, 76, 93, 58, 66, 52, 37, 59, 76, 51, 62, 56, 54, 73, 47, 66, 73, 66, 61, 83, 61, 52, 78, 48, 66, 65, 56, 79, 63, 59, 81, 62, 64, 68, 77, 88, 61, 72, 85, 77, 59, 75, 75, 79, 64, 77, 68, 61, 66, 39, 84, 76, 59, 71, 68, 54, 57, 60, 75, 56, 58, 70, 74, 61, 62, 56, 52, 63, 89, 64, 79, 72, 55, 76, 72, 61, 73, 69, 75, 75, 65, 62, 61, 54, 70, 51, 70, 52, 55, 66, 60, 92, 61, 72, 65, 55, 53, 63, 57, 80, 61, 61, 112, 58, 68, 100, 73, 55, 77, 65, 60, 98, 63, 78, 51, 69, 73, 62, 84, 58, 46, 72, 58, 84, 85, 48, 62, 64, 59, 68, 57, 54, 101, 68, 67, 68, 73, 79, 60, 64, 56, 62, 58, 66, 52, 83, 62, 85, 60, 79, 84, 62, 54, 78, 59, 66, 64, 50, 112, 56, 50, 58, 53, 64, 93, 86, 73, 72, 76, 50, 58, 42, 63, 62, 69, 58, 78, 72, 58, 85, 80, 53, 49, 73, 70, 52, 56, 77, 72, 61, 81, 42, 93, 58, 66, 52, 63, 80, 74, 64, 102, 56, 57, 60, 64, 77, 70, 79, 45, 61, 62, 85, 102, 63, 72, 68, 86, 87, 68, 60, 104, 47, 58, 50, 67, 72, 101, 75, 71, 73, 72, 64, 65, 64, 74, 71, 55, 60, 104, 55, 65, 96, 60, 74, 78, 56, 95, 70, 81, 54, 48, 80, 60, 55, 60, 60, 87, 55, 44, 112, 57, 101, 65, 75, 64, 67, 62, 73, 77, 56, 62, 59, 56, 47, 66, 67, 56, 63, 54, 64, 61, 49, 52, 56, 77, 65, 54, 72, 66, 53, 63, 51, 70, 73, 67, 83, 79, 87, 54, 60, 67, 49, 61, 81, 60, 79, 69, 86, 62, 54, 63, 73, 56, 67, 106, 67, 70, 63, 57, 58, 72, 62, 94, 50, 72, 67, 81, 72, 62, 69, 70, 60, 55, 65, 48, 52, 63, 51, 55, 60, 80, 52, 66, 74, 74, 51, 66, 56, 77, 49, 63, 57, 64, 87, 93, 67, 67, 59, 62, 64, 79, 52, 79, 64, 53, 30, 112, 67, 67, 45, 66, 79, 54, 63, 75, 52, 67, 62, 52, 76, 75, 60, 72, 57, 72, 74, 72, 79, 45, 59, 57, 98, 65, 52, 84, 64, 75, 61, 72, 64, 58, 62, 52, 60, 59, 62, 73, 82, 65, 73, 58, 124, 83, 71, 56, 48, 61, 125, 67, 59, 69, 72, 64, 43, 57, 67, 55, 43, 109, 62, 57, 75, 78, 61, 81, 73, 59, 64, 61, 69, 40, 64, 54, 87, 74, 74, 72, 57, 66, 71, 72, 66, 105, 59, 71, 86, 73, 77, 71, 64, 44, 62, 75, 68, 63, 62, 70, 93, 63, 59, 74, 62, 74, 87, 85, 44, 57, 75, 40, 60, 60, 44, 49, 41, 43, 59, 66, 62, 69, 57, 50, 72, 67, 64, 60, 66, 50, 64, 56, 77, 76, 63, 57, 73, 60, 46, 77, 72, 56, 73, 96, 60, 45, 54, 76, 60, 75, 52, 45, 63, 57, 64, 106, 89, 80, 80, 57, 74, 60, 66, 52, 65, 63, 72, 53, 50, 60, 63, 64, 50, 66, 60, 58, 83, 73, 54, 78, 63, 66, 42, 67, 50, 62, 78, 62, 58, 83, 62, 67, 96, 93, 76, 53, 33, 68, 68, 49, 61, 45, 75, 51, 53, 60, 68, 90, 74, 66, 76, 61, 62, 65, 63, 65, 52, 60, 85, 57, 68, 65, 55, 51, 61, 66, 56, 51, 66, 65, 50, 74, 49, 70, 40, 76, 70, 82, 74, 50, 74, 61, 76, 60, 39, 53, 85, 75, 68, 86, 71, 91, 103, 62, 60, 67, 59, 80, 69, 65, 54, 50, 76, 55, 77, 55, 81, 53, 79, 57, 61, 63, 60, 63, 69, 58, 102, 44, 71, 55, 63, 53, 56, 142, 73, 71, 65, 66, 71, 66, 59, 54, 87, 70, 49, 59, 92, 76, 62, 57, 51, 106, 61, 62, 45, 81, 43, 44, 38, 76, 61, 64, 60, 56, 62, 58, 88, 76, 90, 54, 62, 58, 61, 67, 40, 61, 84, 71, 64, 75, 58, 68, 57, 62, 82, 56, 78, 54, 70, 48, 44, 80, 52, 63, 50, 66, 61, 42, 49, 59, 67, 66, 60, 104, 45, 54, 75, 56, 51, 66, 68, 61, 50, 57, 59, 82, 64, 72, 46, 99, 56, 75, 104, 77, 61, 53, 54, 85, 67, 55, 105, 49, 82, 72, 57, 61, 51, 68, 66, 63, 54, 75, 78, 76, 64, 51, 48, 95, 77, 60, 65, 59, 68, 68, 69, 68, 82, 56, 70, 90, 75, 55, 65, 41, 52, 65, 72, 84, 54, 88, 65, 65, 107, 71, 75, 49, 65, 57, 61, 57, 51, 60, 54, 63, 51, 54, 34, 74, 68, 68, 54, 40, 85, 48, 52, 77, 77, 65, 71, 55, 54, 61, 51, 48, 72, 73, 51, 69, 53, 55, 67, 84, 63, 105, 59, 52, 51, 86, 63, 91, 75, 54, 78, 81, 68, 55, 82, 92, 55, 56, 58, 57, 60, 59, 72, 56, 64, 96, 66, 84, 47, 57, 54, 63, 63, 69, 74, 59, 83, 63, 96, 42, 56, 76, 52, 77, 53, 80, 110, 49, 65, 53, 69, 47, 67, 58, 67, 61, 38, 76, 72, 69, 58, 64, 57, 57, 69, 64, 78, 73, 42, 68, 107, 96, 77, 77, 63, 44, 56, 60, 91, 59, 65, 59, 79, 67, 57, 63, 74, 66, 43, 101, 48, 64, 61, 71, 72, 64, 75, 76, 58, 61, 63, 58, 44, 72, 87, 89, 72, 63, 65, 85, 79, 98, 99, 75, 67, 47, 63, 57, 76, 67, 64, 81, 33, 69, 57, 66, 103, 69, 40, 55, 59, 60, 60, 56, 57, 55, 49, 74, 60, 40, 64, 63, 101, 60, 75, 80, 61, 59, 80, 43, 56, 61, 60, 50, 60, 35, 79, 61, 51, 54, 54, 63, 91, 221, 47, 58, 54, 43, 53, 55, 56, 64, 50, 87, 77, 68, 63, 62, 92, 73, 51, 69, 88, 74, 70, 65, 63, 105, 60, 55, 54, 56, 71, 63, 72, 64, 53, 98, 51, 50, 65, 75, 71, 83, 63, 75, 51, 45, 83, 59, 64, 56, 68, 51, 79, 70, 90, 102, 49, 57, 75, 63, 61, 82, 63, 50, 77, 65, 62, 76, 70, 55, 70, 58, 79, 85, 56, 63, 64, 77, 52, 77, 64, 50, 82, 61, 85, 68, 62, 56, 67, 48, 63, 77, 67, 82, 51, 78, 58, 35, 55, 65, 64, 84, 58, 69, 52, 85, 53, 68, 60, 49, 82, 59, 55, 48, 50, 53, 74, 54, 54, 66, 59, 63, 61, 69, 102, 83, 93, 53, 69, 58, 53, 47, 73, 72, 76, 57, 55, 126, 60, 93, 51, 103, 57, 73, 62, 67, 55, 58, 100, 82, 98, 43, 81, 77, 54, 93, 83, 63, 51, 55, 90, 60, 69, 75, 59, 80, 74, 43, 67, 46, 52, 51, 68, 58, 59, 82, 75, 75, 68, 53, 57, 77, 64, 70, 71, 53, 49, 101, 75, 101, 73, 75, 37, 106, 69, 129, 71, 49, 95, 59, 107, 77, 53, 63, 67, 86, 64, 56, 49, 59, 60, 55, 50, 56, 59, 66, 88, 62, 69, 54, 76, 76, 65, 75, 63, 60, 90, 59, 66, 57, 84, 97, 76, 68, 60, 60, 62, 51, 69, 85, 51, 61, 40, 78, 55, 42, 65, 70, 57, 49, 49, 66, 69, 60, 81, 81, 93, 77, 73, 48, 58, 45, 57, 70, 45, 58, 85, 45, 98, 76, 65, 71, 44, 48, 77, 66, 71, 73, 65, 57, 75, 91, 78, 56, 92, 56, 56, 71, 53, 80, 99, 101, 72, 35, 76, 57, 75, 55, 57, 68, 64, 78, 59, 58, 64, 74, 68, 59, 55, 72, 75, 56, 49, 57, 55, 72, 57, 45, 49, 70, 58, 56, 72, 71, 56, 48, 56, 63, 61, 53, 62, 55, 62, 59, 49, 43, 81, 53, 53, 63, 79, 70, 74, 56, 54, 55, 70, 111, 68, 56, 47, 118, 79, 62, 77, 65, 66, 64, 65, 61, 58, 66, 57, 68, 72, 52, 70, 51, 103, 57, 57, 76, 57, 87, 68, 122, 87, 70, 57, 47, 65, 71, 79, 41, 64, 54, 60, 69, 38, 48, 53, 71, 76, 40, 62, 63, 51, 49, 80, 37, 74, 87, 74, 74, 82, 87, 35, 55, 80, 56, 61, 69, 60, 62, 97, 117, 44, 62, 85, 55, 69, 69, 62, 45, 61, 49, 61, 60, 56, 105, 83, 70, 71, 60, 69, 64, 75, 33, 60, 66, 86, 67, 57, 61, 75, 56, 69, 43, 74, 51, 81, 51, 71, 89, 55, 56, 70, 50, 56, 72, 70, 84, 70, 68, 62, 66, 62, 67, 67, 57, 70, 63, 82, 59, 76, 62, 78, 108, 49, 35, 56, 108, 67, 78, 76, 71, 74, 78, 66, 41, 73, 79, 47, 52, 72, 60, 63, 53, 62, 102, 45, 67, 63, 81, 53, 67, 59, 49, 64, 72, 61, 50, 61, 66, 66, 56, 84, 87, 82, 68, 56, 70, 61, 66, 76, 78, 69, 76, 73, 62, 61, 76, 49, 78, 59, 79, 81, 69, 65, 53, 65, 45, 58, 51, 64, 74, 59, 57, 67, 55, 72, 69, 46, 62, 52, 47, 49, 49, 63, 69, 69, 51, 80, 65, 50, 67, 63, 70, 53, 66, 64, 74, 48, 75, 62, 55, 43, 52, 47, 123, 57, 55, 71, 61, 63, 65, 103, 56, 72, 67, 69, 54, 55, 79, 82, 60, 54, 56, 70, 68, 85, 64, 56, 80, 85, 63, 56, 79, 69, 47, 47, 55, 66, 58, 68, 78, 68, 74, 85, 79, 84, 63, 47, 67, 69, 56, 62, 77, 59, 73, 87, 64, 71, 75, 98, 70, 65, 65, 68, 66, 61, 60, 65, 85, 73, 58, 43, 52, 63, 65, 57, 59, 88, 50, 57, 71, 50, 48, 52, 41, 57, 77, 67, 58, 101, 53, 55, 63, 54, 66, 71, 51, 60, 76, 76, 56, 40, 71, 49, 73, 78, 68, 54, 56, 69, 53, 51, 62, 65, 56, 78, 64, 63, 69, 64, 59, 69, 66, 61, 29, 67, 71, 51, 63, 66, 40, 60, 56, 65, 88, 79, 62, 96, 45, 82, 65, 63, 158, 75, 69, 63, 42, 71, 80, 92, 55, 57, 51, 77, 58, 68, 66, 55, 60, 64, 78, 74, 59, 77, 78, 55, 93, 102, 106, 66, 63, 66, 75, 106, 80, 52, 78, 72, 50, 71, 51, 78, 69, 59, 62, 54, 59, 68, 68, 85, 69, 62, 72, 58, 80, 58, 69, 97, 59, 75, 65, 81, 66, 70, 38, 63, 52, 60, 75, 64, 50, 61, 68, 66, 53, 55, 78, 66, 52, 62, 57, 86, 58, 53, 98, 79, 68, 68, 55, 73, 82, 73, 71, 75, 65, 69, 73, 55, 46, 65, 56, 55, 64, 69, 85, 63, 63, 65, 65, 61, 79, 79, 71, 76, 53, 60, 65, 96, 57, 61, 71, 80, 69, 73, 73, 72, 61, 59, 46, 70, 56, 43, 57, 80, 73, 75, 86, 53, 61, 61, 79, 94, 72, 63, 79, 62, 75, 78, 87, 56, 70, 85, 45, 72, 90, 58, 52, 57, 80, 55, 70, 46, 78, 72, 68, 90, 86, 62, 70, 58, 71, 67, 60, 61, 115, 58, 57, 80, 72, 55, 63, 41, 61, 58, 68, 48, 57, 82, 63, 59, 41, 98, 59, 67, 50, 62, 52, 88, 71, 64, 72, 49, 52, 61, 91, 59, 61, 57, 62, 62, 75, 86, 72, 49, 71, 62, 78, 72, 72, 80, 46, 47, 54, 85, 55, 78, 65, 54, 75, 65, 79, 44, 94, 59, 83, 56, 65, 94, 73, 54, 92, 54, 49, 74, 66, 48, 74, 56, 59, 77, 72, 81, 99, 79, 81, 51, 70, 70, 73, 57, 52, 82, 51, 52, 87, 65, 63, 70, 70, 65, 60, 72, 59, 56, 92, 74, 78, 53, 72, 60, 59, 52, 65, 59, 81, 52, 76, 61, 69, 45, 65, 75, 72, 77, 73, 66, 43, 66, 79, 80, 98, 92, 65, 60, 68, 69, 56, 64, 89, 57, 48, 48, 89, 67, 50, 57, 54, 75, 97, 69, 64, 54, 75, 64, 62, 43, 69, 73, 71, 80, 53, 60, 74, 92, 72, 74, 62, 82, 58, 64, 61, 83, 55, 85, 84, 65, 51, 73, 67, 87, 93, 56, 49, 58, 57, 59, 79, 71, 58, 77, 52, 78, 65, 46, 77, 54, 74, 61, 77, 43, 47, 80, 77, 43, 51, 64, 43, 62, 59, 60, 62, 82, 67, 79, 65, 61, 58, 62, 58, 51, 75, 56, 60, 58, 49, 71, 50, 67, 98, 43, 56, 49, 56, 82, 60, 60, 65, 75, 56, 64, 70, 83, 64, 63, 50, 68, 52, 48, 79, 75, 79, 55, 70, 56, 77, 50, 61, 83, 51, 61, 51, 73, 68, 74, 75, 71, 56, 52, 58, 59, 70, 97, 55, 85, 47, 56, 48, 96, 59, 58, 53, 67, 52, 46, 77, 83, 77, 56, 53, 96, 68, 62, 62, 48, 66, 62, 51, 64, 75, 53, 60, 81, 64, 66, 70, 84, 93, 92, 66, 45, 82, 75, 66, 68, 57, 59, 61, 48, 73, 87, 56, 86, 85, 84, 55, 108, 62, 42, 46, 54, 38, 65, 60, 64, 90, 89, 67, 53, 60, 104, 37, 52, 58, 83, 53, 62, 89, 60, 52, 68, 84, 70, 56, 77, 85, 114, 58, 75, 53, 74, 57, 60, 50, 82, 57, 54, 60, 56, 87, 105, 64, 54, 51, 64, 57, 55, 73, 93, 70, 82, 52, 49, 59, 69, 75, 75, 59, 61, 63, 48, 51, 50, 71, 75, 73, 43, 72, 80, 71, 89, 50, 75, 66, 51, 36, 61, 57, 71, 57, 49, 51, 67, 62, 70, 66, 57, 76, 52, 123, 89, 71, 91, 36, 39, 59, 65, 56, 53, 103, 56, 82, 49, 79, 68, 58, 46, 63, 37, 52, 78, 72, 50, 71, 70, 51, 58, 63, 68, 53, 55, 102, 59, 44, 46, 55, 73, 72, 68, 53, 59, 55, 96, 72, 48, 76, 43, 67, 62, 68, 84, 59, 53, 57, 82, 76, 62, 56, 55, 50, 76, 67, 39, 65, 75, 67, 54, 83, 73, 71, 68, 62, 82, 55, 76, 57, 59, 88, 54, 57, 56, 57, 62, 120, 58, 49, 66, 100, 82, 52, 47, 66, 74, 85, 58, 79, 42, 73, 63, 65, 58, 57, 55, 60, 73, 55, 85, 55, 40, 64, 56, 76, 75, 68, 81, 80, 56, 74, 69, 99, 73, 63, 92, 37, 53, 44, 104, 52, 101, 84, 75, 81, 66, 76, 59, 59, 51, 41, 49, 48, 90, 33, 71, 65, 52, 45, 69, 75, 68, 61, 62, 57, 59, 70, 48, 122, 50, 73, 50, 79, 105, 62, 78, 80, 60, 113, 69, 51, 97, 69, 77, 60, 67, 52, 58, 43, 75, 73, 89, 86, 75, 63, 54, 65, 75, 66, 73, 73, 73, 46, 58, 64, 84, 55, 76, 53, 77, 55, 56, 62, 28, 61, 81, 58, 57, 38, 64, 69, 67, 82, 71, 32, 62, 57, 67, 62, 91, 44, 68, 69, 60, 69, 59, 43, 71, 75, 62, 66, 42, 70, 69, 70, 75, 56, 54, 69, 59, 62, 113, 73, 58, 45, 68, 60, 68, 61, 89, 68, 71, 72, 55, 70, 49, 42, 77, 63, 68, 59, 61, 57, 48, 55, 51, 76, 64, 67, 89, 42, 55, 76, 60, 49, 80, 56, 77, 57, 66, 101, 68, 80, 55, 52, 81, 47, 55, 70, 57, 52, 86, 40, 67, 75, 59, 47, 61, 73, 98, 38, 74, 74, 69, 71, 82, 63, 53, 40, 54, 69, 63, 88, 72, 66, 90, 70, 62, 79, 50, 55, 72, 70, 68, 79, 66, 59, 73, 57, 49, 70, 72, 46, 73, 59, 59, 55, 78, 47, 68, 60, 47, 73, 73, 51, 100, 64, 66, 89, 62, 47, 90, 58, 83, 61, 49, 76, 73, 64, 56, 70, 62, 81, 63, 55, 63, 51, 59, 74, 76, 53, 80, 64, 54, 45, 61, 50, 71, 70, 51, 58, 107, 32, 56, 59, 69, 69, 67, 74, 63, 58, 69, 64, 84, 74, 84, 76, 62, 65, 84, 60, 49, 58, 61, 87, 83, 67, 61, 52, 78, 67, 49, 52, 60, 79, 68, 72, 80, 57, 44, 74, 54, 77, 75, 65, 55, 59, 65, 113, 51, 62, 52, 69, 70, 62, 63, 55, 67, 88, 55, 69, 70, 71, 82, 54, 69, 61, 78, 61, 45, 90, 59, 86, 63, 63, 63, 48, 63, 53, 72, 47, 52, 66, 85, 62, 44, 57, 77, 53, 59, 120, 47, 77, 66, 59, 74, 47, 62, 53, 63, 74, 82, 61, 48, 51, 82, 39, 100, 70, 68, 69, 81, 59, 98, 59, 84, 56, 66, 54, 108, 71, 60, 70, 51, 55, 60, 74, 54, 67, 70, 61, 55, 53, 60, 63, 69, 55, 61, 81, 68, 64, 62, 66, 87, 68, 58, 55, 64, 61, 62, 60, 64, 49, 59, 52, 61, 103, 52, 61, 54, 72, 72, 87, 72, 50, 76, 74, 74, 75, 46, 88, 56, 65, 75, 62, 69, 67, 60, 106, 72, 82, 65, 51, 63, 74, 52, 81, 58, 80, 99, 78, 88, 64, 72, 55, 49, 98, 66, 71, 67, 75, 68, 55, 48, 68, 61, 58, 54, 71, 78, 56, 58, 59, 66, 72, 72, 56, 69, 67, 66, 72, 82, 59, 76, 60, 50, 65, 69, 76, 80, 91, 83, 61, 69, 62, 79, 83, 74, 81, 59, 60, 48, 75, 63, 76, 61, 77, 77, 63, 64, 96, 51, 53, 64, 56, 60, 78, 66, 54, 74, 68, 57, 58, 50, 62, 56, 62, 66, 77, 65, 57, 64, 95, 66, 49, 53, 55, 96, 60, 52, 87, 106, 51, 46, 96, 70, 65, 43, 57, 64, 59, 86, 70, 72, 76, 59, 75, 41, 76, 65, 53, 56, 42, 62, 60, 59, 57, 66, 61, 39, 72, 64, 58, 61, 50, 56, 69, 55, 67, 73, 72, 102, 59, 46, 72, 87, 49, 49, 55, 85, 60, 85, 64, 71, 60, 63, 87, 79, 60, 59, 60, 76, 78, 100, 60, 65, 58, 62, 59, 68, 56, 56, 65, 71, 81, 73, 52, 63, 50, 66, 148, 82, 93, 50, 51, 64, 71, 73, 83, 82, 71, 58, 62, 57, 70, 67, 72, 62, 89, 112, 83, 52, 59, 102, 80, 62, 63, 76, 62, 55, 63, 55, 71, 72, 90, 61, 67, 47, 55, 64, 73, 108, 64, 63, 55, 72, 55, 56, 81, 48, 69, 48, 84, 54, 62, 71, 57, 74, 73, 83, 40, 60, 76, 53, 58, 54, 49, 63, 57, 69, 76, 81, 75, 43, 50, 99, 68, 74, 77, 73, 52, 49, 68, 64, 83, 68, 67, 53, 75, 67, 61, 65, 88, 61, 76, 50, 71, 63, 67, 54, 74, 58, 46, 63, 72, 58, 64, 57, 58, 78, 54, 70, 64, 59, 67, 83, 56, 47, 54, 69, 59, 74, 79, 76, 58, 53, 66, 68, 60, 63, 96, 74, 59, 58, 67, 79, 75, 66, 72, 56, 60, 61, 63, 71, 53, 69, 65, 76, 60, 69, 60, 48, 52, 69, 78, 44, 44, 41, 69, 64, 87, 74, 58, 62, 70, 70, 78, 78, 68, 62, 79, 60, 49, 67, 101, 47, 113, 55, 76, 76, 84, 54, 55, 64, 69, 71, 52, 59, 66, 48, 65, 59, 81, 76, 96, 49, 60, 61, 77, 108, 59, 62, 65, 70, 66, 77, 74, 44, 60, 65, 55, 52, 60, 64, 52, 48, 57, 51, 66, 74, 69, 69, 74, 65, 63, 66, 45, 68, 77, 65, 49, 64, 94, 84, 76, 61, 70, 46, 77, 66, 48, 58, 59, 77, 66, 59, 69, 64, 66, 54, 64, 58, 43, 70, 56, 54, 68, 73, 59, 48, 73, 60, 56, 57, 66, 47, 69, 58, 47, 73, 62, 79, 62, 67, 73, 50, 68, 78, 92, 67, 57, 50, 64, 74, 62, 69, 59, 52, 59, 31, 52, 75, 83, 60, 56, 60, 48, 44, 70, 58, 42, 65, 62, 58, 84, 58, 69, 54, 92, 68, 60, 60, 56, 63, 76, 68, 70, 72, 113, 49, 55, 63, 71, 56, 72, 40, 53, 73, 59, 57, 78, 60, 59, 97, 56, 54, 56, 90, 53, 64, 54, 79, 52, 78, 66, 60, 51, 64, 79, 79, 67, 76, 69, 112, 94, 63, 61, 41, 77, 68, 81, 62, 64, 92, 80, 46, 91, 77, 71, 94, 42, 60, 83, 53, 58, 49, 60, 68, 77, 83, 67, 56, 61, 43, 66, 83, 53, 76, 58, 65, 71, 55, 66, 53, 73, 55, 52, 41, 134, 111, 76, 64, 51, 57, 72, 68, 56, 89, 51, 40, 90, 66, 62, 51, 87, 99, 52, 49, 57, 59, 43, 60, 54, 78, 68, 54, 42, 70, 58, 67, 63, 64, 60, 75, 49, 65, 58, 51, 72, 67, 43, 57, 78, 55, 68, 55, 60, 58, 81, 69, 70, 67, 65, 55, 77, 50, 82, 67, 88, 68, 70, 69, 62, 62, 60, 68, 51, 58, 78, 61, 70, 49, 57, 80, 74, 58, 67, 65, 57, 48, 76, 66, 71, 57, 72, 61, 69, 59, 50, 54, 44, 63, 58, 46, 79, 52, 63, 78, 87, 64, 67, 50, 75, 55, 70, 72, 60, 69, 57, 87, 65, 58, 63, 73, 74, 56, 80, 129, 71, 86, 81, 51, 64, 62, 37, 68, 57, 70, 65, 57, 54, 58, 64, 54, 76, 62, 64, 47, 58, 56, 84, 65, 49, 68, 53, 47, 74, 85, 96, 61, 64, 75, 75, 97, 53, 57, 77, 57, 78, 83, 53, 56, 83, 91, 58, 68, 69, 51, 63, 60, 88, 64, 68, 66, 51, 91, 53, 77, 63, 73, 85, 70, 53, 65, 75, 83, 94, 61, 44, 75, 56, 62, 68, 78, 68, 77, 57, 63, 73, 87, 43, 73, 70, 93, 48, 60, 56, 52, 70, 56, 30, 65, 67, 70, 48, 46, 65, 72, 66, 58, 73, 118, 58, 50, 57, 76, 79, 58, 70, 58, 83, 57, 73, 71, 58, 40, 55, 57, 70, 54, 73, 48, 71, 135, 71, 53, 74, 71, 59, 55, 69, 86, 71, 84, 56, 65, 73, 74, 83, 70, 64, 48, 60, 62, 74, 64, 58, 81, 52, 61, 51, 58, 58, 55, 87, 79, 72, 46, 62, 56, 67, 81, 68, 77, 62, 72, 69, 58, 52, 50, 63, 75, 67, 80, 77, 76, 59, 80, 111, 68, 52, 67, 91, 54, 70, 49, 66, 55, 94, 75, 54, 63, 59, 62, 66, 57, 108, 72, 106, 55, 89, 62, 62, 88, 56, 79, 97, 92, 70, 75, 68, 46, 96, 101, 75, 68, 52, 71, 64, 64, 63, 41, 48, 106, 77, 57, 160, 72, 89, 80, 50, 71, 43, 59, 66, 101, 68, 58, 67, 64, 47, 67, 50, 69, 38, 68, 60, 58, 53, 53, 73, 76, 59, 48, 61, 73, 63, 61, 42, 71, 61, 61, 81, 68, 51, 62, 88, 70, 65, 48, 81, 71, 47, 50, 48, 42, 63, 42, 74, 63, 65, 55, 84, 82, 47, 75, 77, 55, 64, 56, 94, 59, 58, 58, 60, 65, 62, 93, 70, 53, 75, 62, 53, 42, 85, 74, 63, 74, 70, 89, 56, 61, 40, 74, 62, 67, 50, 116, 50, 74, 61, 48, 42, 87, 55, 87, 51, 56, 71, 56, 71, 71, 60, 75, 48, 46, 58, 64, 68, 76, 39, 63, 55, 54, 50, 72, 56, 52, 78, 53, 70, 67, 74, 75, 52, 68, 65, 81, 59, 86, 82, 63, 75, 54, 53, 50, 73, 43, 53, 117, 93, 62, 71, 69, 75, 66, 70, 62, 78, 64, 69, 70, 76, 59, 67, 56, 68, 74, 50, 55, 66, 50, 52, 84, 48, 87, 55, 36, 78, 70, 67, 58, 53, 53, 69, 76, 75, 96, 76, 61, 59, 89, 68, 47, 59, 58, 64, 69, 65, 75, 71, 57, 48, 65, 63, 80, 59, 46, 55, 66, 45, 69, 71, 67, 74, 64, 115, 74, 73, 61, 70, 47, 81, 80, 69, 106, 57, 54, 65, 72, 56, 92, 64, 62, 57, 88, 75, 84, 79, 80, 80, 68, 61, 62, 65, 55, 72, 55, 82, 107, 76, 44, 113, 63, 77, 66, 49, 46, 80, 67, 74, 52, 47, 67, 59, 46, 63, 60, 57, 47, 65, 58, 36, 43, 54, 57, 71, 45, 55, 55, 56, 75, 97, 58, 59, 59, 57, 60, 50, 96, 63, 113, 78, 49, 73, 79, 50, 91, 115, 90, 66, 77, 63, 62, 128, 56, 64, 72, 52, 60, 63, 63, 79, 47, 47, 61, 88, 131, 82, 82, 60, 60, 48, 82, 64, 67, 64, 75, 63, 50, 62, 65, 59, 52, 68, 51, 61, 56, 74, 44, 90, 53, 51, 73, 53, 54, 83, 49, 66, 41, 57, 132, 62, 72, 63, 59, 74, 60, 57, 103, 68, 70, 56, 80, 73, 62, 81, 45, 63, 52, 51, 64, 66, 61, 64, 60, 70, 47, 55, 48, 59, 65, 102, 59, 59, 76, 56, 70, 54, 54, 56, 46, 52, 49, 60, 53, 57, 54, 58, 55, 81, 64, 44, 76, 61, 39, 48, 59, 57, 62, 110, 84, 55, 71, 65, 86, 48, 54, 60, 49, 61, 54, 36, 52, 72, 80, 54, 95, 58, 89, 79, 82, 56, 63, 65, 83, 122, 73, 58, 69, 52, 77, 81, 81, 60, 58, 51, 89, 76, 63, 75, 64, 70, 30, 40, 75, 30, 71, 50, 45, 64, 73, 63, 57, 76, 77, 81, 53, 72, 63, 76, 93, 64, 77, 120, 91, 52, 53, 39, 86, 50, 48, 65, 43, 80, 74, 73, 73, 47, 69, 66, 81, 61, 51, 101, 57, 60, 60, 45, 78, 39, 83, 55, 56, 62, 69, 42, 61, 53, 65, 59, 90, 61, 34, 81, 73, 59, 53, 66, 56, 97, 43, 76, 62, 77, 71, 53, 48, 86, 64, 53, 73, 52, 79, 57, 89, 59, 80, 56, 68, 60, 92, 76, 68, 59, 69, 69, 78, 57, 52, 44, 57, 73, 40, 116, 68, 74, 48, 65, 86, 68, 36, 49, 49, 63, 59, 59, 68, 74, 71, 107, 76, 48, 85, 66, 82, 61, 68, 75, 51, 59, 60, 53, 74, 56, 43, 71, 53, 64, 70, 70, 51, 45, 77, 63, 82, 57, 51, 48, 69, 51, 42, 57, 62, 63, 67, 67, 75, 73, 51, 63, 64, 65, 78, 59, 56, 69, 78, 53, 55, 41, 64, 55, 63, 59, 57, 50, 56, 75, 82, 47, 92, 70, 58, 58, 39, 70, 84, 68, 55, 47, 48, 55, 76, 80, 57, 69, 69, 49, 73, 55, 54, 65, 71, 112, 84, 86, 76, 57, 58, 61, 61, 69, 65, 96, 69, 51, 67, 42, 69, 66, 70, 69, 69, 117, 46, 46, 53, 50, 62, 55, 55, 81, 76, 52, 65, 90, 55, 133, 85, 56, 64, 55, 85, 57, 91, 62, 77, 59, 88, 63, 47, 65, 62, 72, 44, 82, 67, 56, 69, 62, 52, 123, 93, 58, 107, 103, 51, 110, 71, 77, 52, 63, 83, 64, 62, 42, 71, 66, 75, 63, 33, 51, 49, 65, 88, 58, 53, 92, 64, 57, 40, 54, 55, 57, 57, 80, 67, 50, 81, 96, 84, 64, 64, 66, 54, 58, 68, 61, 52, 63, 55, 60, 46, 42, 43, 54, 77, 55, 60, 55, 63, 85, 88, 60, 129, 57, 73, 49, 65, 56, 68, 69, 50, 60, 99, 61, 54, 76, 50, 55, 75, 70, 80, 49, 43, 61, 62, 75, 111, 69, 62, 56, 65, 58, 84, 77, 62, 63, 94, 87, 80, 118, 62, 65, 88, 58, 60, 54, 105, 66, 81, 56, 58, 65, 53, 61, 36, 48, 54, 74, 70, 73, 61, 90, 48, 63, 69, 75, 104, 78, 84, 61, 92, 48, 60, 87, 48, 98, 86, 71, 57, 51, 97, 63, 57, 66, 79, 68, 56, 75, 87, 55, 42, 53, 65, 69, 74, 51, 62, 60, 55, 43, 57, 94, 70, 83, 83, 63, 73, 53, 54, 75, 64, 60, 88, 42, 86, 39, 73, 64, 70, 85, 84, 69, 103, 69, 86, 68, 94, 92, 43, 68, 73, 51, 55, 71, 67, 59, 64, 91, 59, 69, 61, 73, 62, 90, 69, 53, 75, 59, 65, 47, 49, 67, 68, 48, 65, 62, 110, 70, 66, 50, 93, 89, 56, 50, 51, 54, 63, 73, 82, 75, 89, 57, 42, 74, 69, 57, 71, 70, 62, 59, 51, 76, 71, 55, 66, 81, 79, 60, 64, 43, 60, 84, 72, 54, 85, 51, 57, 69, 71, 39, 76, 64, 75, 86, 109, 52, 78, 54, 49, 67, 55, 72, 77, 72, 69, 54, 43, 49, 58, 57, 59, 58, 56, 70, 62, 53, 58, 87, 57, 54, 62, 65, 63, 77, 79, 78, 92, 55, 59, 65, 84, 81, 48, 44, 80, 52, 56, 52, 80, 79, 65, 59, 49, 57, 60, 52, 59, 110, 85, 73, 79, 38, 61, 47, 70, 49, 116, 65, 77, 54, 59, 63, 77, 44, 36, 62, 55, 49, 79, 60, 79, 79, 45, 77, 62, 59, 69, 57, 73, 60, 64, 73, 82, 55, 52, 94, 71, 68, 72, 88, 73, 94, 61, 59, 68, 58, 78, 27, 77, 66, 55, 46, 61, 98, 86, 58, 79, 72, 41, 71, 56, 58, 60, 69, 69, 57, 71, 58, 92, 51, 55, 66, 60, 42, 62, 79, 70, 62, 109, 62, 68, 63, 75, 80, 55, 64, 59, 77, 123, 77, 84, 75, 59, 62, 99, 81, 90, 67, 56, 59, 52, 62, 74, 72, 51, 82, 55, 61, 69, 122, 52, 51, 82, 39, 70, 72, 56, 58, 61, 77, 74, 68, 56, 77, 69, 58, 81, 50, 57, 64, 96, 53, 78, 66, 64, 53, 61, 69, 60, 73, 97, 107, 68, 100, 69, 58, 68, 58, 72, 52, 57, 74, 65, 81, 52, 39, 85, 81, 53, 55, 50, 74, 41, 46, 42, 57, 61, 50, 72, 51, 65, 61, 49, 97, 53, 73, 49, 61, 90, 53, 57, 65, 73, 73, 73, 67, 63, 67, 81, 53, 54, 92, 55, 50, 58, 87, 85, 79, 73, 61, 62, 132, 75, 73, 88, 99, 47, 62, 70, 62, 61, 64, 74, 93, 85, 63, 91, 56, 77, 68, 57, 59, 115, 61, 70, 70, 75, 64, 71, 64, 61, 95, 64, 87, 66, 81, 76, 71, 75, 92, 69, 86, 46, 76, 70, 69, 58, 62, 54, 56, 70, 89, 103, 61, 43, 50, 55, 82, 62, 66, 60, 63, 73, 49, 70, 51, 60, 69, 42, 77, 73, 81, 80, 92, 53, 48, 52, 50, 42, 53, 106, 61, 92, 62, 62, 50, 95, 77, 71, 126, 85, 60, 63, 66, 68, 54, 66, 89, 56, 85, 66, 54, 52, 70, 74, 75, 47, 103, 81, 81, 63, 63, 68, 67, 61, 73, 29, 73, 84, 54, 42, 93, 62, 56, 48, 52, 50, 57, 47, 73, 48, 66, 69, 44, 61, 67, 77, 71, 51, 68, 63, 81, 161, 81, 50, 65, 66, 89, 66, 62, 96, 84, 68, 51, 55, 41, 66, 73, 63, 50, 55, 51, 62, 67, 65, 71, 67, 64, 57, 55, 66, 81, 42, 55, 32, 42, 79, 77, 76, 68, 51, 54, 50, 61, 64, 50, 83, 74, 67, 55, 58, 57, 76, 63, 89, 74, 83, 49, 62, 54, 86, 73, 70, 62, 78, 58, 61, 62, 66, 58, 40, 63, 65, 75, 51, 65, 58, 79, 62, 63, 93, 76, 73, 43, 63, 44, 53, 53, 56, 43, 82, 58, 82, 76, 49, 100, 76, 75, 47, 46, 53, 58, 68, 68, 52, 62, 46, 57, 40, 84, 55, 52, 75, 56, 76, 64, 66, 57, 65, 65, 56, 75, 80, 60, 115, 85, 55, 59, 68, 56, 68, 76, 60, 62, 76, 58, 74, 81, 54, 45, 89, 86, 82, 53, 38, 85, 79, 69, 63, 80, 55, 68, 46, 62, 65, 70, 86, 68, 58, 87, 52, 61, 60, 83, 61, 86, 56, 54, 78, 68, 58, 72, 90, 74, 66, 70, 69, 73, 53, 58, 63, 58, 58, 61, 29, 67, 63, 97, 62, 65, 36, 80, 53, 67, 66, 49, 69, 83, 69, 70, 52, 75, 57, 79, 47, 48, 78, 67, 56, 42, 73, 60, 46, 69, 72, 53, 89, 54, 55, 66, 64, 83, 74, 61, 89, 52, 68, 53, 84, 86, 65, 69, 72, 55, 73, 72, 60, 56, 69, 79, 58, 69, 44, 53, 55, 62, 61, 58, 54, 64, 49, 74, 73, 52, 54, 50, 69, 62, 47, 79, 67, 57, 49, 59, 67, 64, 57, 88, 46, 71, 57, 87, 69, 48, 73, 74, 57, 78, 64, 65, 94, 67, 83, 66, 61, 52, 38, 65, 72, 53, 55, 69, 81, 64, 54, 63, 60, 53, 64, 77, 75, 94, 51, 57, 68, 52, 76, 91, 59, 81, 36, 59, 57, 66, 46, 70, 49, 61, 61, 69, 62, 52, 67, 79, 48, 132, 59, 53, 43, 80, 62, 53, 72, 78, 92, 58, 61, 76, 56, 120, 77, 68, 75, 67, 55, 52, 55, 61, 77, 65, 43, 47, 64, 50, 58, 55, 67, 55, 63, 57, 65, 48, 66, 66, 76, 71, 64, 91, 74, 55, 55, 82, 42, 49, 73, 106, 74, 46, 75, 64, 93, 58, 87, 50, 50, 99, 67, 50, 55, 87, 59, 63, 61, 76, 91, 54, 53, 76, 62, 51, 58, 100, 76, 63, 64, 51, 45, 56, 42, 62, 48, 55, 77, 80, 75, 61, 32, 79, 67, 67, 65, 74, 51, 73, 72, 81, 116, 68, 62, 53, 63, 61, 65, 50, 45, 49, 81, 87, 65, 37, 49, 88, 72, 101, 54, 70, 67, 56, 76, 58, 75, 58, 68, 63, 52, 66, 91, 64, 54, 57, 55, 63, 59, 74, 44, 94, 56, 71, 66, 69, 54, 71, 73, 58, 46, 43, 57, 55, 85, 62, 75, 63, 71, 67, 77, 73, 61, 78, 56, 74, 76, 101, 59, 114, 92, 58, 65, 83, 66, 92, 66, 48, 38, 79, 76, 72, 72, 61, 59, 55, 57, 86, 78, 66, 76, 55, 54, 55, 100, 73, 62, 47, 60, 73, 59, 59, 44, 74, 61, 86, 50, 72, 76, 59, 44, 65, 82, 66, 73, 76, 57, 89, 47, 63, 60, 41, 59, 70, 71, 80, 51, 55, 64, 72, 63, 73, 82, 46, 67, 40, 75, 87, 49, 75, 54, 48, 56, 62, 60, 51, 90, 63, 53, 84, 50, 53, 64, 62, 57, 60, 58, 70, 58, 71, 65, 112, 60, 72, 64, 64, 51, 69, 118, 57, 114, 66, 51, 71, 50, 70, 86, 66, 69, 80, 100, 61, 90, 69, 100, 48, 90, 67, 42, 64, 68, 64, 63, 72, 97, 51, 44, 85, 71, 64, 79, 96, 79, 60, 60, 65, 78, 48, 79, 55, 63, 47, 59, 59, 46, 55, 65, 61, 33, 50, 61, 67, 73, 55, 59, 61, 69, 43, 55, 69, 56, 77, 60, 71, 65, 74, 57, 71, 58, 57, 65, 60, 53, 46, 52, 71, 48, 79, 97, 54, 58, 74, 66, 87, 61, 71, 60, 61, 60, 58, 70, 40, 76, 95, 52, 61, 49, 72, 65, 61, 68, 64, 88, 58, 81, 78, 48, 42, 97, 53, 87, 67, 62, 68, 50, 52, 60, 69, 93, 70, 59, 64, 47, 90, 77, 72, 46, 48, 74, 56, 68, 49, 64, 73, 74, 93, 54, 70, 64, 65, 61, 68, 71, 55, 69, 52, 59, 65, 71, 60, 64, 54, 72, 64, 29, 60, 48, 91, 80, 60, 48, 96, 68, 65, 72, 96, 71, 62, 73, 59, 67, 53, 73, 54, 75, 70, 76, 55, 50, 68, 61, 66, 89, 63, 62, 69, 59, 78, 48, 58, 82, 48, 41, 75, 93, 71, 54, 67, 44, 70, 100, 60, 48, 59, 62, 71, 67, 92, 64, 78, 59, 68, 66, 103, 49, 43, 99, 74, 57, 60, 67, 79, 62, 82, 67, 64, 43, 70, 108, 73, 66, 66, 125, 82, 67, 64, 59, 71, 62, 60, 61, 58, 65, 55, 47, 67, 60, 109, 78, 64, 54, 59, 56, 96, 57, 107, 79, 52, 46, 72, 66, 62, 76, 65, 74, 70, 57, 74, 66, 64, 139, 79, 73, 75, 66, 50, 58, 49, 59, 78, 92, 67, 72, 54, 52, 66, 106, 57, 72, 60, 67, 58, 66, 68, 64, 85, 77, 111, 66, 61, 74, 65, 51, 48, 93, 61, 84, 61, 61, 53, 66, 62, 73, 67, 74, 69, 50, 54, 59, 69, 86, 93, 66, 66, 57, 66, 68, 65, 50, 65, 67, 57, 55, 78, 70, 57, 49, 44, 68, 73, 91, 42, 54, 77, 69, 81, 53, 83, 75, 65, 70, 47, 58, 61, 69, 70, 79, 67, 56, 78, 58, 97, 73, 74, 47, 141, 62, 73, 46, 64, 68, 65, 53, 56, 65, 54, 60, 81, 91, 72, 40, 69, 53, 52, 54, 55, 79, 65, 66, 77, 37, 75, 49, 95, 56, 58, 60, 69, 56, 60, 84, 78, 58, 72, 46, 75, 54, 62, 98, 73, 63, 78, 89, 62, 128, 64, 63, 76, 63, 51, 99, 123, 80, 77, 68, 69, 74, 54, 48, 91, 71, 68, 53, 87, 65, 54, 54, 71, 73, 82, 52, 93, 78, 59, 82, 91, 73, 50, 66, 71, 68, 46, 63, 88, 75, 73, 88, 54, 71, 73, 48, 63, 57, 58, 37, 60, 74, 50, 54, 70, 67, 62, 59, 60, 60, 62, 70, 82, 79, 60, 69, 92, 43, 58, 60, 39, 80, 63, 72, 62, 57, 92, 57, 71, 63, 53, 65, 51, 73, 96, 90, 82, 53, 50, 70, 70, 74, 73, 56, 44, 63, 50, 68, 55, 64, 59, 53, 86, 64, 53, 75, 60, 69, 61, 67, 54, 86, 56, 73, 57, 58, 81, 68, 67, 71, 57, 86, 105, 69, 57, 56, 75, 68, 73, 86, 90, 55, 67, 58, 51, 83, 68, 53, 68, 59, 64, 58, 69, 47, 67, 45, 126, 66, 64, 134, 77, 90, 70, 63, 69, 49, 69, 60, 55, 139, 67, 98, 67, 60, 82, 58, 49, 66, 73, 61, 52, 68, 64, 61, 67, 56, 56, 68, 56, 64, 58, 69, 69, 45, 81, 54, 53, 69, 68, 46, 60, 67, 90, 62, 50, 70, 70, 47, 71, 55, 63, 54, 34, 49, 109, 52, 68, 53, 59, 83, 59, 66, 48, 74, 57, 94, 65, 59, 69, 73, 57, 47, 80, 91, 67, 57, 51, 90, 72, 70, 72, 78, 67, 64, 75, 47, 64, 53, 55, 60, 44, 75, 67, 64, 48, 84, 69, 86, 54, 71, 74, 84, 61, 65, 50, 62, 70, 59, 73, 78, 75, 70, 60, 56, 54, 54, 59, 51, 65, 75, 55, 71, 59, 67, 61, 64, 54, 70, 50, 54, 71, 77, 61, 74, 56, 68, 61, 52, 63, 70, 55, 61, 66, 56, 50, 62, 72, 54, 36, 67, 62, 69, 81, 54, 86, 82, 52, 74, 78, 75, 61, 49, 53, 51, 132, 58, 50, 77, 62, 83, 51, 68, 69, 85, 59, 77, 66, 63, 62, 74, 58, 57, 58, 77, 73, 57, 60, 71, 59, 60, 62, 71, 52, 76, 53, 63, 78, 53, 65, 120, 71, 81, 58, 74, 59, 69, 55, 76, 44, 134, 56, 58, 59, 39, 74, 67, 57, 56, 54, 75, 70, 56, 46, 59, 54, 67, 79, 86, 60, 69, 61, 79, 49, 52, 55, 82, 50, 71, 91, 131, 72, 110, 65, 69, 48, 80, 53, 56, 79, 63, 59, 54, 52, 60, 47, 87, 47, 73, 63, 46, 63, 92, 69, 57, 51, 57, 91, 84, 61, 68, 55, 61, 84, 56, 83, 95, 60, 66, 51, 77, 88, 68, 76, 77, 74, 60, 52, 67, 53, 55, 50, 52, 64, 71, 57, 79, 53, 49, 79, 68, 49, 58, 68, 57, 66, 63, 81, 63, 66, 55, 86, 71, 56, 49, 58, 76, 65, 84, 63, 71, 90, 70, 69, 60, 61, 68, 69, 67, 55, 54, 77, 53, 72, 39, 72, 64, 65, 53, 60, 60, 67, 75, 56, 46, 48, 72, 67, 58, 49, 68, 79, 71, 95, 69, 56, 65, 64, 69, 93, 59, 74, 60, 67, 34, 48, 66, 82, 65, 51, 77, 48, 71, 86, 60, 81, 58, 51, 76, 76, 70, 77, 80, 60, 65, 52, 69, 71, 61, 66, 82, 69, 69, 51, 65, 67, 70, 55, 58, 73, 62, 75, 58, 50, 48, 55, 61, 60, 55, 55, 60, 83, 70, 66, 91, 62, 54, 45, 55, 44, 81, 60, 98, 54, 57, 78, 69, 41, 57, 61, 73, 57, 80, 71, 40, 81, 34, 69, 79, 53, 47, 87, 56, 94, 68, 62, 93, 82, 79, 82, 63, 88, 61, 66, 67, 57, 67, 50, 71, 88, 55, 69, 52, 49, 57, 62, 55, 88, 68, 54, 67, 74, 58, 68, 57, 58, 59, 56, 58, 46, 59, 76, 61, 61, 75, 45, 71, 72, 57, 45, 72, 51, 58, 55, 54, 58, 69, 79, 75, 76, 99, 68, 54, 95, 65, 75, 73, 76, 63, 58, 56, 50, 53, 43, 62, 54, 63, 50, 71, 70, 95, 46, 81, 68, 58, 83, 54, 81, 64, 68, 92, 155, 88, 76, 61, 61, 59, 65, 62, 90, 45, 67, 58, 49, 70, 62, 72, 67, 69, 59, 43, 103, 61, 37, 62, 51, 56, 62, 63, 85, 71, 64, 78, 49, 89, 83, 40, 53, 56, 70, 49, 69, 68, 48, 56, 54, 77, 61, 68, 74, 71, 60, 53, 64, 58, 44, 54, 88, 61, 60, 60, 69, 57, 107, 68, 64, 58, 59, 65, 69, 64, 64, 71, 67, 59, 72, 54, 56, 97, 55, 105, 51, 59, 60, 62, 57, 68, 59, 64, 75, 77, 77, 47, 57, 96, 47, 79, 67, 64, 76, 82, 61, 74, 80, 63, 55, 57, 57, 86, 74, 72, 68, 148, 53, 58, 52, 63, 67, 65, 63, 52, 62, 53, 78, 73, 82, 57, 66, 55, 79, 60, 99, 121, 80, 76, 58, 61, 61, 59, 76, 67, 59, 61, 61, 42, 56, 54, 59, 61, 66, 72, 59, 60, 66, 66, 39, 60, 112, 59, 49, 48, 85, 58, 57, 81, 85, 51, 68, 59, 55, 66, 58, 81, 110, 42, 72, 72, 64, 63, 60, 70, 56, 66, 60, 60, 78, 105, 45, 76, 68, 76, 72, 80, 85, 60, 72, 77, 59, 77, 65, 57, 43, 44, 58, 60, 49, 63, 80, 54, 52, 67, 61, 68, 70, 50, 55, 63, 61, 61, 85, 42, 77, 73, 74, 46, 67, 67, 35, 49, 62, 56, 74, 68, 86, 55, 82, 74, 70, 69, 68, 58, 63, 66, 66, 50, 59, 65, 60, 52, 65, 77, 92, 88, 56, 39, 75, 68, 82, 64, 69, 60, 59, 58, 77, 62, 64, 76, 69, 74, 57, 73, 57, 62, 51, 45, 49, 56, 57, 75, 71, 62, 97, 56, 80, 57, 77, 74, 73, 71, 66, 55, 44, 55, 44, 63, 55, 56, 71, 80, 78, 88, 59, 63, 53, 96, 67, 90, 61, 85, 59, 71, 59, 73, 62, 81, 54, 64, 57, 59, 75, 47, 76, 63, 65, 56, 64, 66, 98, 71, 59, 69, 46, 69, 51, 61, 106, 58, 62, 80, 41, 55, 84, 69, 63, 65, 69, 44, 41, 81, 71, 76, 43, 76, 61, 67, 48, 58, 62, 62, 67, 61, 55, 70, 76, 73, 50, 89, 67, 68, 41, 65, 66, 58, 59, 69, 88, 69, 98, 32, 76, 59, 69, 45, 73, 55, 65, 66, 72, 78, 66, 51, 44, 60, 82, 79, 51, 68, 65, 65, 62, 67, 71, 63, 73, 65, 69, 63, 67, 65, 59, 54, 48, 57, 93, 66, 70, 63, 64, 83, 51, 73, 71, 45, 62, 64, 64, 54, 63, 72, 54, 68, 90, 58, 95, 80, 73, 60, 49, 101, 71, 53, 127, 83, 64, 41, 57, 52, 47, 69, 68, 70, 52, 52, 90, 43, 82, 54, 56, 93, 61, 94, 80, 66, 53, 76, 66, 100, 48, 81, 76, 63, 62, 63, 63, 71, 66, 48, 41, 44, 65, 51, 49, 65, 77, 56, 56, 56, 42, 69, 88, 71, 56, 75, 103, 80, 57, 85, 69, 56, 62, 65, 61, 77, 64, 48, 59, 71, 84, 66, 65, 70, 102, 58, 57, 63, 43, 75, 65, 52, 86, 61, 68, 71, 67, 63, 69, 63, 44, 92, 79, 60, 49, 70, 57, 111, 113, 45, 64, 55, 64, 42, 78, 74, 72, 107, 80, 47, 91, 56, 52, 94, 67, 75, 59, 46, 64, 70, 68, 79, 96, 89, 90, 69, 46, 79, 64, 97, 61, 58, 86, 55, 66, 43, 70, 70, 69, 76, 52, 73, 81, 53, 83, 84, 100, 53, 54, 61, 56, 71, 51, 56, 76, 81, 83, 63, 58, 61, 59, 69, 67, 63, 82, 52, 74, 78, 44, 72, 56, 70, 59, 102, 57, 76, 59, 50, 58, 49, 52, 61, 71, 41, 55, 50, 54, 61, 61, 68, 57, 70, 64, 67, 55, 52, 62, 57, 57, 95, 60, 54, 83, 46, 71, 64, 64, 70, 69, 61, 55, 64, 71, 49, 58, 60, 120, 83, 73, 104, 64, 68, 78, 76, 73, 60, 72, 81, 67, 67, 85, 63, 70, 70, 67, 62, 61, 55, 66, 57, 59, 86, 87, 49, 58, 58, 56, 45, 66, 93, 90, 81, 79, 57, 126, 50, 71, 79, 71, 65, 102, 84, 74, 52, 70, 109, 60, 49, 71, 60, 53, 74, 71, 72, 67, 73, 42, 48, 85, 140, 92, 64, 97, 49, 78, 57, 86, 58, 67, 53, 69, 84, 79, 69, 72, 73, 54, 58, 57, 60, 41, 85, 79, 68, 59, 91, 72, 62, 71, 84, 60, 106, 51, 73, 72, 69, 57, 64, 60, 57, 54, 61, 59, 57, 52, 60, 52, 63, 55, 71, 62, 80, 65, 77, 48, 51, 58, 64, 69, 58, 67, 75, 69, 72, 79, 66, 46, 62, 57, 84, 43, 57, 76, 61, 49, 79, 49, 64, 53, 71, 48, 63, 71, 79, 66, 58, 81, 120, 70, 72, 63, 70, 71, 64, 69, 70, 61, 60, 57, 64, 62, 91, 65, 68, 50, 65, 76, 63, 78, 36, 57, 67, 61, 58, 61, 55, 62, 77, 59, 79, 67, 60, 55, 66, 90, 69, 48, 50, 52, 62, 97, 82, 59, 60, 64, 76, 52, 85, 68, 66, 55, 59, 84, 81, 80, 44, 53, 55, 80, 78, 94, 56, 64, 69, 73, 67, 68, 66, 63, 64, 68, 51, 56, 63, 137, 56, 61, 40, 66, 42, 54, 61, 80, 71, 54, 52, 65, 121, 78, 81, 76, 55, 59, 64, 42, 88, 49, 47, 69, 68, 53, 46, 66, 82, 55, 60, 79, 63, 84, 83, 92, 78, 67, 59, 60, 58, 70, 76, 57, 59, 59, 55, 84, 52, 72, 60, 58, 39, 70, 132, 112, 52, 59, 98, 68, 73, 52, 73, 47, 51, 62, 70, 66, 87, 75, 58, 56, 68, 76, 56, 77, 91, 78, 58, 52, 55, 61, 76, 48, 141, 52, 77, 93, 56, 64, 72, 69, 48, 80, 70, 67, 83, 60, 67, 58, 49, 62, 60, 51, 98, 79, 49, 80, 68, 76, 49, 60, 51, 49, 74, 62, 71, 58, 63, 66, 67, 77, 90, 47, 73, 67, 79, 102, 61, 78, 83, 69, 62, 70, 61, 82, 74, 97, 47, 56, 45, 69, 103, 65, 80, 81, 71, 73, 79, 43, 64, 58, 129, 69, 92, 70, 57, 65, 57, 84, 45, 79, 112, 68, 54, 67, 63, 72, 71, 67, 49, 69, 60, 69, 62, 66, 70, 58, 74, 74, 55, 43, 56, 89, 53, 70, 69, 65, 56, 82, 69, 45, 66, 65, 126, 73, 69, 47, 55, 44, 73, 69, 64, 49, 51, 52, 62, 113, 67, 83, 69, 58, 55, 55, 46, 77, 39, 45, 77, 84, 50, 54, 57, 70, 80, 61, 62, 54, 60, 63, 82, 62, 61, 65, 59, 85, 67, 81, 58, 65, 94, 63, 64, 45, 52, 60, 63, 44, 67, 53, 62, 58, 60, 64, 54, 47, 92, 63, 59, 50, 69, 55, 93, 55, 73, 49, 77, 72, 83, 93, 114, 72, 49, 27, 66, 90, 44, 65, 74, 61, 67, 77, 71, 83, 66, 51, 115, 77, 75, 96, 65, 69, 49, 93, 74, 57, 71, 41, 50, 48, 60, 56, 75, 57, 60, 83, 54, 85, 45, 61, 57, 73, 50, 74, 60, 61, 65, 49, 83, 51, 63, 77, 67, 44, 41, 79, 67, 64, 47, 57, 52, 63, 80, 38, 52, 34, 60, 74, 75, 61, 47, 68, 67, 64, 73, 60, 61, 64, 78, 75, 56, 56, 59, 44, 77, 65, 56, 52, 64, 74, 47, 61, 60, 57, 64, 64, 50, 93, 76, 59, 74, 72, 56, 69, 65, 78, 93, 59, 94, 57, 51, 46, 49, 58, 128, 82, 66, 77, 64, 60, 57, 61, 62, 75, 67, 57, 77, 69, 68, 91, 63, 62, 97, 73, 51, 47, 88, 71, 49, 59, 61, 71, 70, 72, 54, 58, 67, 57, 43, 89, 83, 65, 65, 97, 72, 68, 70, 52, 63, 87, 103, 57, 93, 53, 71, 57, 60, 87, 50, 80, 55, 52, 58, 86, 91, 69, 40, 92, 75, 68, 67, 55, 54, 63, 47, 66, 64, 56, 57, 67, 44, 70, 64, 40, 58, 55, 55, 78, 86, 59, 61, 73, 84, 64, 65, 61, 53, 66, 61, 76, 42, 80, 66, 64, 39, 91, 40, 48, 60, 57, 56, 55, 58, 47, 57, 71, 60, 50, 54, 70, 59, 77, 74, 70, 55, 71, 71, 47, 95, 78, 64, 56, 78, 107, 59, 51, 67, 62, 75, 81, 86, 68, 59, 86, 57, 69, 76, 68, 67, 87, 64, 40, 62, 63, 80, 52, 51, 68, 66, 93, 63, 56, 64, 77, 67, 79, 79, 71, 50, 61, 45, 54, 107, 83, 61, 85, 64, 53, 61, 73, 53, 49, 55, 48, 47, 108, 73, 85, 35, 81, 59, 50, 102, 80, 56, 81, 52, 69, 45, 51, 83, 60, 72, 36, 56, 88, 77, 56, 57, 58, 54, 108, 54, 62, 80, 64, 82, 53, 60, 45, 66, 59, 47, 91, 50, 54, 74, 62, 74, 91, 51, 76, 67, 72, 56, 58, 51, 47, 112, 73, 44, 57, 50, 56, 70, 73, 75, 58, 124, 84, 48, 46, 66, 56, 67, 63, 72, 52, 59, 85, 59, 61, 107, 87, 51, 106, 85, 51, 69, 78, 50, 44, 62, 55, 96, 67, 58, 64, 74, 58, 45, 56, 100, 91, 55, 48, 82, 53, 76, 65, 49, 72, 60, 60, 84, 85, 48, 84, 84, 123, 68, 51, 77, 89, 75, 63, 41, 68, 118, 63, 72, 55, 94, 72, 94, 78, 68, 64, 86, 59, 76, 92, 75, 58, 60, 72, 55, 61, 50, 64, 81, 57, 54, 84, 97, 74, 65, 82, 64, 75, 82, 76, 68, 94, 81, 58, 55, 63, 103, 60, 53, 65, 85, 52, 56, 76, 68, 74, 67, 87, 73, 44, 55, 67, 52, 68, 46, 85, 64, 64, 57, 55, 75, 62, 70, 70, 58, 58, 69, 56, 38, 63, 55, 70, 54, 65, 104, 56, 51, 58, 64, 70, 76, 35, 78, 63, 67, 49, 63, 78, 59, 42, 48, 73, 54, 61, 47, 53, 58, 62, 58, 60, 56, 71, 57, 61, 78, 60, 76, 46, 55, 61, 64, 66, 54, 109, 60, 63, 57, 61, 60, 76, 58, 48, 68, 79, 67, 69, 78, 78, 99, 83, 63, 50, 60, 71, 73, 53, 77, 69, 60, 71, 56, 66, 54, 61, 57, 79, 60, 71, 67, 55, 47, 53, 47, 122, 43, 83, 87, 112, 79, 59, 56, 55, 80, 107, 88, 50, 71, 65, 83, 85, 50, 61, 52, 50, 73, 66, 44, 49, 57, 79, 67, 88, 52, 89, 82, 57, 79, 95, 51, 54, 77, 59, 66, 65, 72, 50, 81, 67, 61, 59, 63, 62, 69, 54, 78, 69, 65, 62, 56, 64, 51, 71, 69, 54, 96, 81, 74, 48, 55, 56, 54, 37, 78, 63, 96, 64, 76, 97, 78, 51, 97, 62, 59, 61, 50, 78, 69, 64, 56, 61, 60, 70, 71, 47, 55, 54, 78, 53, 55, 73, 36, 67, 53, 63, 64, 83, 35, 68, 60, 64, 103, 78, 71, 53, 49, 64, 79, 73, 56, 40, 76, 49, 57, 46, 33, 40, 57, 72, 60, 51, 65, 69, 55, 71, 77, 54, 80, 75, 60, 64, 64, 56, 66, 62, 69, 51, 106, 58, 49, 61, 45, 93, 70, 88, 59, 97, 64, 37, 65, 97, 87, 114, 69, 67, 71, 54, 57, 78, 63, 71, 73, 97, 59, 44, 44, 48, 61, 59, 55, 64, 50, 64, 67, 52, 59, 56, 61, 84, 81, 57, 93, 63, 82, 58, 67, 57, 55, 74, 69, 59, 87, 69, 45, 60, 60, 45, 119, 70, 51, 62, 62, 59, 62, 74, 48, 84, 69, 57, 73, 43, 74, 78, 60, 69, 78, 84, 89, 93, 65, 78, 67, 65, 99, 68, 48, 74, 53, 57, 63, 47, 40, 65, 72, 53, 59, 38, 65, 37, 67, 95, 71, 75, 70, 39, 60, 71, 55, 94, 82, 66, 68, 123, 59, 60, 50, 59, 67, 38, 50, 61, 43, 57, 56, 40, 62, 65, 50, 53, 56, 61, 70, 68, 76, 65, 53, 76, 54, 57, 68, 63, 77, 78, 75, 68, 69, 56, 63, 72, 60, 76, 66, 92, 62, 74, 60, 52, 62, 57, 52, 58, 44, 53, 53, 47, 71, 57, 72, 65, 60, 76, 73, 55, 52, 61, 56, 60, 52, 62, 73, 60, 65, 59, 88, 76, 61, 66, 65, 79, 61, 52, 49, 68, 83, 55, 53, 49, 84, 61, 73, 59, 50, 62, 132, 57, 87, 42, 55, 65, 82, 60, 52, 68, 70, 63, 49, 72, 80, 64, 49, 69, 70, 68, 63, 70, 72, 67, 57, 77, 48, 62, 74, 54, 69, 70, 69, 77, 91, 60, 63, 50, 59, 51, 60, 58, 61, 45, 55, 73, 60, 47, 70, 51, 61, 57, 82, 61, 60, 64, 69, 76, 72, 65, 60, 36, 83, 64, 52, 83, 81, 48, 57, 58, 56, 65, 54, 56, 63, 65, 77, 42, 61, 82, 54, 46, 52, 61, 62, 64, 62, 64, 64, 67, 59, 73, 64, 57, 53, 92, 60, 56, 72, 78, 67, 94, 70, 51, 69, 70, 64, 129, 44, 127, 59, 73, 54, 66, 69, 60, 54, 75, 72, 57, 72, 58, 65, 47, 66, 52, 75, 49, 46, 49, 57, 57, 65, 75, 57, 103, 56, 55, 67, 69, 61, 84, 75, 79, 66, 67, 67, 59, 79, 42, 100, 72, 80, 67, 57, 69, 60, 64, 58, 60, 56, 75, 55, 73, 51, 72, 63, 59, 72, 62, 110, 54, 71, 47, 42, 59, 84, 126, 63, 73, 54, 76, 73, 75, 81, 72, 67, 60, 65, 79, 62, 63, 59, 56, 54, 71, 74, 69, 54, 83, 64, 79, 95, 136, 61, 66, 72, 62, 65, 57, 64, 61, 56, 54, 67, 71, 83, 63, 51, 61, 60, 59, 66, 75, 51, 52, 46, 61, 61, 46, 75, 50, 72, 70, 62, 43, 62, 66, 57, 67, 55, 72, 63, 59, 76, 77, 69, 58, 84, 56, 57, 77, 62, 77, 76, 80, 62, 64, 56, 69, 76, 79, 73, 62, 49, 73, 72, 55, 51, 54, 55, 142, 66, 76, 73, 70, 62, 64, 60, 52, 70, 78, 42, 79, 78, 61, 71, 55, 73, 62, 65, 78, 45, 60, 106, 71, 61, 43, 70, 61, 96, 79, 51, 63, 48, 62, 54, 99, 59, 101, 63, 62, 78, 66, 62, 51, 52, 92, 80, 59, 64, 76, 70, 59, 43, 63, 58, 53, 69, 62, 72, 53, 66, 75, 58, 84, 62, 68, 56, 59, 74, 76, 71, 115, 87, 127, 60, 73, 65, 62, 68, 63, 63, 56, 59, 56, 64, 61, 55, 79, 85, 68, 66, 70, 72, 62, 62, 63, 79, 59, 72, 59, 61, 47, 65, 66, 93, 72, 77, 60, 71, 60, 63, 89, 78, 58, 66, 52, 70, 81, 69, 71, 133, 49, 54, 70, 70, 73, 63, 73, 66, 74, 83, 66, 66, 66, 57, 84, 55, 82, 50, 84, 73, 62, 48, 52, 66, 76, 66, 54, 109, 53, 55, 66, 88, 55, 59, 53, 76, 57, 42, 72, 67, 51, 71, 61, 88, 76, 69, 80, 84, 52, 73, 62, 100, 70, 69, 63, 57, 59, 55, 76, 80, 54, 59, 62, 56, 70, 68, 46, 67, 57, 61, 79, 66, 50, 73, 64, 65, 53, 108, 50, 65, 53, 73, 66, 64, 61, 80, 55, 60, 59, 49, 67, 54, 88, 74, 58, 67, 49, 61, 64, 87, 63, 50, 41, 83, 53, 85, 85, 66, 64, 46, 74, 65, 77, 57, 69, 57, 60, 75, 80, 73, 55, 54, 57, 67, 67, 51, 92, 54, 48, 59, 80, 58, 70, 58, 68, 77, 74, 72, 78, 64, 53, 70, 64, 66, 71, 65, 75, 62, 87, 64, 60, 98, 70, 67, 93, 48, 101, 59, 54, 50, 58, 56, 63, 60, 67, 71, 60, 62, 57, 59, 82, 80, 65, 51, 59, 54, 41, 65, 52, 61, 72, 65, 53, 72, 51, 50, 76, 68, 73, 102, 78, 64, 74, 79, 58, 65, 64, 69, 62, 60, 73, 64, 59, 45, 67, 61, 56, 73, 60, 69, 67, 70, 54, 89, 54, 56, 85, 44, 71, 65, 62, 63, 77, 77, 67, 62, 62, 91, 71, 59, 63, 51, 77, 66, 59, 78, 60, 87, 58, 57, 72, 91, 76, 56, 50, 74, 43, 50, 70, 42, 69, 63, 65, 65, 63, 62, 90, 66, 82, 78, 66, 68, 57, 63, 50, 80, 65, 49, 68, 65, 59, 60, 55, 59, 57, 79, 54, 63, 58, 78, 67, 48, 59, 82, 58, 68, 85, 75, 47, 63, 62, 65, 50, 57, 51, 62, 62, 46, 67, 73, 60, 58, 67, 57, 56, 63, 49, 50, 54, 55, 90, 64, 76, 55, 60, 42, 65, 65, 61, 66, 75, 43, 90, 62, 62, 50, 65, 71, 70, 67, 57, 77, 57, 75, 62, 78, 48, 60, 69, 94, 86, 61, 72, 55, 87, 77, 83, 44, 94, 63, 52, 119, 71, 56, 67, 78, 107, 58, 53, 57, 73, 73, 72, 54, 72, 56, 61, 66, 73, 100, 72, 63, 95, 57, 67, 42, 74, 72, 62, 53, 48, 74, 42, 71, 72, 59, 64, 70, 95, 62, 38, 60, 123, 59, 67, 63, 54, 64, 55, 60, 50, 63, 54, 98, 75, 66, 65, 65, 56, 70, 65, 74, 60, 53, 55, 85, 57, 109, 64, 56, 63, 61, 75, 64, 53, 63, 62, 64, 115, 82, 54, 65, 75, 111, 57, 75, 60, 59, 54, 65, 69, 68, 59, 53, 27, 65, 52, 61, 68, 66, 48, 54, 54, 54, 55, 65, 92, 60, 69, 58, 64, 100, 53, 70, 61, 69, 71, 58, 55, 71, 73, 71, 60, 80, 95, 61, 79, 62, 67, 77, 51, 81, 64, 80, 48, 46, 62, 48, 59, 53, 61, 90, 64, 64, 54, 60, 40, 111, 57, 56, 57, 43, 41, 66, 79, 55, 59, 81, 68, 64, 76, 67, 55, 92, 56, 56, 79, 78, 51, 34, 73, 77, 72, 67, 68, 58, 60, 53, 51, 66, 72, 67, 54, 86, 83, 67, 80, 47, 75, 76, 64, 57, 54, 62, 64, 78, 77, 77, 66, 86, 58, 51, 70, 61, 69, 115, 75, 62, 63, 62, 56, 89, 59, 56, 88, 60, 55, 65, 62, 70, 56, 90, 82, 52, 58, 82, 75, 69, 93, 74, 47, 47, 79, 48, 69, 29, 66, 71, 79, 87, 85, 85, 63, 35, 55, 57, 75, 66, 55, 93, 51, 62, 70, 73, 52, 38, 56, 57, 55, 71, 70, 59, 71, 83, 57, 80, 57, 96, 71, 67, 75, 66, 81, 98, 74, 75, 65, 80, 95, 88, 64, 60, 71, 77, 59, 74, 48, 89, 70, 64, 78, 63, 57, 58, 65, 69, 70, 68, 48, 54, 51, 45, 70, 82, 55, 59, 69, 60, 57, 62, 52, 67, 55, 75, 65, 69, 75, 77, 78, 72, 66, 68, 72, 62, 76, 78, 77, 53, 71, 51, 71, 47, 79, 68, 47, 63, 75, 48, 63, 70, 61, 83, 72, 73, 43, 61, 92, 75, 57, 50, 63, 48, 66, 39, 57, 57, 74, 71, 72, 63, 55, 96, 44, 86, 55, 49, 67, 61, 71, 66, 69, 48, 62, 62, 58, 55, 56, 61, 72, 59, 72, 84, 56, 86, 61, 68, 87, 59, 88, 110, 65, 64, 30, 72, 55, 62, 73, 91, 57, 77, 71, 97, 63, 62, 55, 109, 64, 61, 71, 61, 44, 92, 52, 71, 63, 81, 69, 47, 52, 86, 85, 59, 59, 59, 53, 58, 51, 52, 58, 77, 84, 79, 72, 82, 66, 40, 66, 54, 71, 41, 51, 91, 57, 59, 48, 83, 76, 60, 100, 91, 53, 60, 51, 67, 39, 77, 64, 52, 66, 67, 75, 52, 57, 48, 47, 59, 71, 57, 51, 64, 56, 65, 55, 84, 61, 58, 57, 61, 93, 66, 72, 65, 66, 91, 64, 48, 73, 65, 97, 61, 74, 76, 56, 76, 64, 102, 58, 79, 51, 72, 55, 64, 67, 78, 52, 43, 48, 53, 71, 68, 92, 81, 65, 43, 58, 100, 57, 69, 58, 72, 77, 81, 83, 64, 68, 64, 47, 66, 74, 52, 75, 77, 55, 66, 78, 58, 72, 64, 76, 46, 62, 128, 73, 79, 68, 68, 71, 67, 57, 56, 84, 55, 57, 63, 64, 59, 46, 60, 59, 69, 67, 58, 70, 87, 62, 69, 74, 49, 96, 70, 64, 84, 70, 78, 78, 58, 70, 63, 50, 77, 77, 68, 48, 59, 72, 77, 45, 88, 60, 71, 64, 52, 55, 60, 84, 66, 45, 54, 68, 70, 68, 68, 71, 55, 44, 79, 56, 50, 82, 73, 50, 71, 70, 60, 60, 48, 71, 76, 67, 55, 77, 42, 60, 66, 93, 67, 61, 52, 85, 58, 67, 66, 41, 64, 70, 51, 53, 44, 77, 70, 52, 60, 50, 77, 50, 93, 104, 84, 61, 52, 79, 45, 58, 62, 60, 64, 89, 53, 57, 58, 58, 86, 62, 65, 53, 58, 88, 67, 62, 89, 81, 51, 89, 59, 60, 63, 70, 51, 65, 77, 60, 80, 62, 53, 59, 63, 76, 81, 62, 54, 66, 68, 68, 72, 50, 65, 52, 55, 69, 48, 54, 66, 77, 79, 75, 76, 71, 74, 58, 41, 59, 85, 68, 80, 75, 59, 61, 56, 67, 62, 72, 60, 64, 59, 74, 64, 57, 64, 56, 61, 75, 66, 84, 60, 56, 46, 51, 71, 63, 91, 77, 56, 57, 55, 54, 71, 55, 79, 58, 50, 70, 58, 92, 76, 63, 67, 57, 73, 72, 77, 68, 54, 52, 60, 55, 81, 76, 59, 73, 72, 57, 77, 61, 63, 52, 64, 58, 85, 74, 57, 78, 47, 90, 57, 57, 62, 45, 46, 50, 55, 94, 72, 48, 80, 61, 59, 62, 45, 81, 101, 57, 68, 100, 52, 45, 90, 73, 65, 66, 61, 70, 59, 55, 88, 59, 60, 38, 78, 79, 66, 42, 93, 59, 70, 66, 78, 71, 53, 69, 58, 44, 66, 69, 69, 80, 78, 62, 87, 73, 54, 62, 70, 47, 85, 83, 73, 77, 72, 66, 37, 98, 75, 60, 56, 70, 62, 46, 71, 76, 57, 47, 66, 58, 67, 64, 67, 42, 61, 50, 56, 75, 73, 84, 67, 88, 65, 59, 80, 38, 51, 73, 53, 49, 68, 71, 72, 70, 64, 57, 53, 77, 63, 62, 60, 111, 72, 48, 76, 73, 49, 67, 66, 62, 53, 58, 77, 72, 56, 70, 71, 64, 75, 43, 84, 74, 66, 63, 87, 75, 57, 74, 70, 50, 58, 76, 62, 80, 64, 57, 63, 62, 60, 77, 49, 58, 46, 62, 47, 67, 80, 56, 63, 72, 61, 68, 56, 73, 68, 65, 79, 60, 64, 79, 105, 71, 60, 75, 37, 86, 74, 63, 59, 60, 61, 57, 73, 84, 62, 49, 61, 70, 42, 46, 72, 63, 57, 59, 69, 50, 52, 62, 69, 63, 65, 50, 58, 67, 69, 72, 53, 76, 54, 44, 69, 104, 86, 99, 59, 49, 94, 62, 74, 59, 83, 69, 55, 62, 76, 55, 60, 70, 55, 64, 80, 69, 64, 64, 60, 54, 71, 67, 63, 75, 79, 78, 86, 65, 114, 62, 75, 52, 75, 54, 63, 66, 96, 65, 59, 89, 65, 55, 75, 89, 49, 78, 75, 51, 62, 46, 103, 55, 34, 73, 62, 79, 59, 80, 64, 63, 65, 58, 69, 68, 69, 49, 59, 48, 54, 58, 73, 55, 48, 50, 85, 63, 53, 72, 67, 88, 45, 69, 75, 71, 73, 54, 61, 68, 65, 58, 67, 72, 49, 55, 68, 60, 79, 56, 64, 61, 67, 74, 62, 57, 72, 68, 82, 54, 54, 68, 52, 49, 74, 57, 65, 67, 78, 64, 73, 62, 56, 46, 70, 62, 59, 58, 61, 78, 58, 67, 60, 69, 81, 59, 76, 70, 70, 45, 48, 69, 73, 90, 80, 58, 111, 67, 58, 70, 84, 63, 67, 59, 66, 59, 87, 70, 47, 82, 58, 66, 122, 75, 74, 75, 64, 62, 69, 59, 65, 64, 80, 142, 59, 51, 74, 48, 56, 56, 71, 73, 76, 62, 69, 80, 65, 72, 82, 66, 69, 63, 60, 64, 85, 87, 47, 77, 68, 52, 57, 46, 74, 52, 59, 81, 74, 71, 65, 65, 100, 55, 58, 79, 53, 67, 76, 83, 59, 76, 50, 36, 106, 77, 68, 66, 67, 104, 72, 49, 125, 69, 59, 46, 107, 67, 67, 69, 62, 72, 70, 68, 55, 68, 59, 63, 61, 70, 61, 54, 44, 51, 63, 57, 49, 72, 72, 56, 65, 61, 64, 59, 60, 40, 56, 63, 49, 40, 70, 57, 71, 56, 66, 105, 78, 69, 80, 55, 78, 118, 62, 59, 81, 72, 65, 64, 70, 58, 57, 53, 70, 83, 65, 72, 63, 59, 66, 43, 55, 59, 55, 71, 77, 82, 91, 51, 55, 88, 81, 72, 53, 46, 62, 73, 40, 78, 61, 62, 65, 51, 64, 63, 134, 53, 73, 62, 53, 46, 49, 70, 87, 58, 50, 58, 72, 60, 68, 62, 79, 64, 56, 68, 63, 57, 56, 79, 65, 61, 60, 82, 52, 78, 65, 69, 44, 50, 54, 67, 73, 65, 53, 47, 66, 85, 76, 75, 56, 67, 69, 56, 63, 70, 79, 63, 69, 65, 60, 70, 63, 40, 74, 64, 75, 75, 48, 61, 58, 54, 61, 81, 56, 78, 56, 69, 62, 53, 62, 79, 59, 70, 70, 51, 75, 71, 71, 58, 92, 68, 78, 55, 46, 65, 80, 81, 57, 55, 79, 66, 54, 40, 71, 64, 65, 81, 70, 81, 70, 51, 75, 70, 46, 80, 125, 77, 57, 65, 66, 68, 89, 66, 101, 55, 60, 67, 54, 42, 66, 71, 66, 77, 59, 63, 67, 63, 63, 61, 55, 52, 82, 60, 60, 73, 54, 61, 99, 50, 68, 62, 66, 54, 102, 113, 54, 58, 62, 63, 69, 94, 89, 70, 71, 58, 57, 62, 68, 51, 50, 50, 55, 114, 85, 59, 57, 53, 42, 62, 92, 74, 82, 57, 83, 61, 46, 76, 74, 73, 46, 66, 64, 76, 84, 62, 68, 65, 67, 55, 76, 73, 75, 51, 62, 74, 53, 49, 70, 111, 41, 73, 74, 63, 55, 77, 56, 53, 70, 59, 61, 60, 70, 79, 56, 64, 100, 62, 59, 57, 64, 72, 60, 64, 60, 60, 56, 68, 76, 73, 91, 59, 62, 77, 64, 63, 74, 63, 96, 80, 55, 43, 79, 61, 62, 58, 77, 130, 67, 55, 71, 77, 66, 80, 59, 72, 79, 89, 70, 76, 65, 81, 69, 73, 68, 41, 62, 55, 74, 56, 65, 56, 57, 73, 75, 71, 56, 45, 67, 85, 65, 66, 83, 58, 73, 83, 54, 73, 71, 56, 62, 54, 49, 60, 73, 71, 118, 73, 47, 59, 89, 83, 58, 102, 131, 76, 62, 48, 53, 62, 63, 60, 73, 101, 80, 42, 86, 68, 68, 78, 36, 79, 69, 60, 57, 85, 57, 81, 58, 60, 52, 59, 95, 56, 60, 59, 64, 48, 47, 46, 56, 66, 49, 62, 57, 58, 80, 78, 59, 74, 53, 55, 84, 68, 57, 58, 54, 84, 75, 69, 85, 63, 62, 68, 80, 46, 75, 62, 52, 72, 73, 67, 69, 72, 47, 65, 60, 59, 59, 60, 93, 44, 70, 74, 68, 57, 56, 51, 79, 62, 71, 84, 75, 108, 59, 65, 76, 62, 63, 51, 36, 80, 108, 69, 60, 54, 72, 51, 57, 70, 60, 68, 73, 64, 68, 70, 68, 55, 80, 80, 70, 66, 47, 71, 69, 55, 66, 65, 73, 41, 57, 58, 81, 60, 53, 82, 52, 54, 56, 69, 70, 80, 50, 76, 74, 76, 68, 67, 63, 59, 61, 69, 54, 92, 71, 45, 58, 58, 70, 68, 67, 45, 64, 48, 57, 122, 56, 62, 56, 78, 53, 71, 59, 65, 70, 48, 89, 60, 50, 89, 72, 118, 51, 78, 69, 54, 55, 55, 65, 72, 61, 57, 79, 76, 71, 51, 54, 48, 59, 79, 86, 77, 51, 67, 86, 78, 68, 41, 65, 55, 77, 89, 111, 60, 70, 79, 58, 49, 66, 63, 66, 59, 50, 53, 60, 54, 64, 60, 69, 61, 65, 58, 79, 88, 77, 69, 70, 74, 71, 80, 53, 77, 56, 68, 66, 60, 71, 52, 38, 74, 79, 73, 51, 42, 74, 52, 64, 81, 100, 56, 59, 71, 60, 82, 79, 65, 66, 57, 56, 76, 57, 69, 80, 58, 67, 38, 78, 54, 70, 65, 50, 54, 52, 84, 52, 67, 60, 60, 55, 68, 57, 57, 55, 62, 70, 64, 79, 56, 67, 67, 60, 68, 85, 66, 71, 68, 74, 56, 52, 55, 62, 59, 63, 89, 45, 62, 55, 53, 70, 52, 45, 56, 66, 57, 78, 57, 51, 60, 61, 61, 69, 62, 75, 69, 69, 74, 93, 57, 53, 73, 52, 75, 53, 53, 51, 57, 61, 74, 61, 58, 104, 69, 60, 89, 55, 59, 94, 79, 47, 46, 69, 71, 83, 62, 81, 35, 74, 51, 68, 63, 51, 81, 52, 61, 65, 68, 57, 48, 66, 60, 132, 70, 53, 83, 69, 72, 48, 58, 89, 55, 121, 56, 54, 55, 60, 50, 58, 69, 73, 69, 83, 69, 64, 77, 64, 61, 68, 122, 52, 65, 84, 88, 69, 58, 79, 129, 53, 52, 65, 91, 74, 53, 68, 78, 45, 88, 64, 78, 60, 72, 65, 76, 65, 65, 49, 60, 70, 52, 68, 63, 54, 64, 63, 65, 62, 71, 61, 82, 46, 74, 53, 65, 62, 59, 56, 51, 64, 61, 59, 51, 54, 60, 75, 57, 58, 76, 79, 88, 55, 67, 66, 45, 67, 64, 51, 56, 50, 55, 104, 44, 70, 64, 89, 69, 49, 62, 52, 57, 85, 53, 60, 68, 75, 66, 56, 61, 44, 75, 45, 83, 70, 70, 62, 66, 78, 58, 64, 69, 44, 71, 78, 73, 81, 56, 60, 70, 79, 55, 86, 71, 62, 78, 76, 56, 62, 53, 58, 74, 55, 64, 53, 85, 37, 57, 56, 49, 117, 91, 59, 61, 60, 72, 74, 70, 77, 70, 117, 60, 95, 75, 41, 56, 61, 78, 70, 52, 54, 56, 64, 74, 72, 60, 67, 43, 61, 80, 85, 57, 68, 57, 70, 60, 70, 97, 64, 104, 67, 78, 66, 47, 65, 69, 55, 40, 81, 68, 60, 96, 85, 52, 73, 53, 78, 67, 78, 79, 75, 87, 62, 62, 65, 51, 69, 50, 58, 63, 58, 42, 59, 94, 79, 63, 92, 56, 108, 65, 42, 68, 64, 49, 60, 49, 74, 85, 57, 48, 63, 79, 64, 37, 55, 58, 47, 59, 68, 79, 57, 68, 64, 43, 61, 69, 54, 89, 73, 76, 94, 57, 50, 78, 56, 50, 86, 80, 82, 62, 68, 69, 73, 60, 74, 45, 59, 68, 63, 74, 69, 59, 54, 72, 70, 59, 83, 90, 71, 55, 47, 63, 96, 54, 57, 91, 39, 85, 48, 52, 86, 56, 76, 86, 76, 61, 72, 62, 68, 64, 77, 70, 44, 71, 64, 67, 56, 50, 48, 57, 64, 65, 73, 76, 74, 84, 71, 44, 72, 43, 37, 52, 54, 58, 43, 47, 66, 70, 57, 71, 41, 125, 56, 79, 77, 54, 64, 82, 62, 45, 127, 71, 62, 64, 37, 90, 54, 80, 68, 101, 50, 59, 96, 57, 78, 72, 96, 81, 63, 63, 89, 39, 65, 88, 64, 63, 92, 60, 54, 63, 66, 67, 70, 59, 62, 90, 52, 69, 58, 82, 56, 76, 69, 98, 43, 77, 73, 59, 67, 52, 85, 67, 46, 60, 87, 61, 72, 66, 71, 67, 69, 48, 82, 112, 75, 50, 64, 55, 55, 64, 72, 77, 50, 59, 72, 76, 62, 56, 65, 71, 66, 76, 70, 66, 48, 59, 83, 63, 47, 53, 97, 61, 54, 79, 58, 66, 68, 50, 61, 63, 92, 83, 64, 55, 65, 52, 64, 63, 52, 77, 68, 73, 58, 79, 60, 47, 71, 62, 56, 63, 62, 59, 61, 64, 73, 66, 76, 50, 155, 98, 103, 63, 42, 50, 63, 70, 59, 68, 73, 41, 72, 55, 56, 63, 64, 70, 62, 61, 54, 95, 76, 58, 100, 55, 94, 39, 49, 58, 57, 59, 65, 88, 56, 65, 46, 87, 106, 65, 62, 77, 63, 62, 65, 61, 70, 93, 64, 73, 60, 49, 53, 69, 62, 45, 74, 69, 76, 84, 87, 64, 78, 62, 38, 86, 75, 77, 71, 67, 61, 54, 127, 61, 57, 58, 61, 70, 46, 104, 80, 58, 56, 74, 50, 75, 41, 55, 67, 55, 56, 57, 47, 39, 63, 84, 54, 79, 104, 42, 65, 56, 56, 66, 67, 57, 70, 64, 50, 63, 68, 59, 47, 49, 53, 100, 83, 67, 60, 76, 79, 60, 78, 88, 61, 63, 67, 58, 59, 62, 61, 59, 90, 83, 71, 79, 45, 72, 54, 50, 49, 35, 79, 54, 50, 88, 70, 66, 58, 71, 67, 71, 70, 63, 66, 65, 49, 52, 54, 70, 81, 54, 59, 58, 67, 51, 77, 91, 71, 59, 67, 63, 99, 83, 50, 65, 62, 60, 85, 62, 66, 62, 102, 81, 50, 57, 77, 58, 51, 62, 51, 48, 59, 102, 69, 80, 66, 64, 81, 68, 50, 49, 60, 51, 56, 55, 48, 93, 51, 50, 60, 43, 92, 51, 63, 71, 56, 91, 74, 56, 64, 71, 73, 51, 59, 128, 72, 85, 64, 65, 67, 64, 73, 69, 60, 67, 72, 36, 57, 70, 95, 43, 51, 52, 49, 63, 43, 82, 35, 61, 62, 59, 73, 76, 67, 63, 74, 61, 59, 62, 77, 53, 63, 56, 47, 55, 50, 52, 64, 71, 74, 61, 87, 60, 47, 49, 84, 77, 90, 75, 82, 70, 73, 47, 66, 38, 76, 67, 59, 44, 108, 58, 68, 69, 51, 61, 63, 67, 64, 53, 73, 61, 73, 63, 66, 68, 89, 58, 64, 109, 46, 60, 76, 62, 72, 62, 44, 60, 80, 43, 64, 73, 50, 60, 56, 63, 69, 41, 91, 60, 67, 80, 86, 103, 46, 95, 61, 65, 65, 67, 58, 61, 75, 39, 66, 76, 76, 77, 61, 80, 53, 63, 35, 65, 60, 71, 68, 45, 80, 73, 53, 59, 46, 68, 63, 66, 69, 58, 64, 63, 59, 65, 77, 69, 72, 50, 68, 112, 99, 71, 82, 73, 82, 57, 64, 37, 64, 85, 90, 67, 75, 67, 60, 53, 67, 59, 58, 53, 61, 65, 81, 58, 46, 63, 60, 91, 84, 53, 66, 72, 92, 55, 64, 76, 78, 85, 51, 58, 55, 57, 64, 66, 64, 120, 77, 61, 74, 66, 47, 66, 79, 61, 59, 64, 41, 88, 54, 74, 67, 64, 68, 56, 47, 62, 78, 65, 41, 65, 50, 47, 92, 97, 73, 87, 55, 120, 52, 61, 73, 54, 73, 41, 59, 94, 52, 54, 58, 80, 69, 68, 72, 105, 73, 63, 40, 53, 59, 79, 61, 74, 99, 51, 67, 56, 74, 72, 70, 65, 65, 50, 63, 74, 77, 73, 51, 60, 57, 53, 65, 74, 83, 69, 64, 72, 71, 104, 67, 96, 64, 62, 66, 68, 55, 48, 43, 58, 46, 62, 55, 94, 51, 79, 65, 53, 84, 74, 57, 50, 67, 46, 82, 80, 68, 93, 42, 64, 55, 81, 49, 54, 52, 51, 64, 87, 52, 83, 58, 51, 64, 56, 55, 79, 68, 53, 67, 55, 73, 68, 60, 57, 51, 74, 60, 50, 105, 57, 77, 112, 67, 61, 64, 66, 59, 82, 66, 63, 44, 70, 75, 50, 57, 49, 52, 59, 69, 68, 81, 61, 70, 95, 67, 56, 66, 65, 71, 48, 71, 70, 45, 53, 77, 106, 67, 61, 101, 72, 57, 69, 60, 44, 46, 90, 73, 66, 78, 47, 73, 56, 61, 86, 60, 58, 64, 66, 81, 61, 54, 94, 64, 62, 57, 52, 61, 68, 69, 40, 68, 39, 64, 60, 58, 54, 115, 60, 74, 57, 61, 49, 61, 57, 66, 79, 69, 47, 61, 63, 74, 58, 49, 55, 65, 60, 59, 62, 51, 58, 54, 96, 79, 45, 60, 41, 66, 73, 51, 103, 78, 71, 77, 85, 51, 81, 69, 66, 58, 63, 54, 50, 50, 47, 80, 60, 51, 73, 49, 64, 69, 59, 71, 57, 85, 51, 64, 77, 61, 80, 59, 59, 50, 83, 63, 71, 81, 61, 62, 76, 66, 56, 82, 104, 67, 51, 35, 48, 69, 48, 59, 66, 56, 67, 107, 69, 46, 58, 78, 69, 73, 54, 58, 47, 53, 68, 75, 57, 86, 74, 75, 78, 57, 63, 57, 76, 39, 58, 67, 50, 58, 56, 88, 48, 68, 73, 76, 99, 65, 65, 62, 52, 93, 70, 53, 81, 68, 58, 65, 67, 59, 45, 68, 66, 92, 76, 52, 69, 69, 56, 61, 66, 64, 84, 84, 76, 51, 79, 129, 76, 57, 75, 74, 59, 54, 53, 37, 67, 84, 77, 71, 41, 57, 68, 54, 65, 77, 55, 53, 83, 83, 61, 90, 53, 50, 43, 51, 73, 50, 90, 44, 55, 66, 64, 76, 65, 59, 76, 65, 49, 74, 48, 62, 105, 76, 101, 52, 82, 69, 71, 46, 52, 57, 54, 48, 39, 94, 29, 56, 59, 59, 72, 69, 72, 73, 66, 74, 88, 82, 66, 79, 63, 63, 57, 58, 64, 87, 65, 75, 72, 63, 66, 76, 68, 56, 59, 106, 65, 57, 52, 95, 51, 91, 67, 81, 59, 69, 56, 54, 66, 56, 88, 103, 74, 53, 85, 60, 121, 86, 65, 88, 69, 57, 66, 73, 50, 60, 54, 95, 67, 58, 75, 78, 75, 76, 54, 55, 62, 54, 84, 82, 93, 101, 56, 55, 155, 49, 70, 80, 79, 66, 77, 59, 58, 34, 65, 48, 63, 118, 66, 62, 68, 126, 65, 56, 59, 74, 89, 76, 70, 50, 58, 58, 66, 77, 66, 68, 54, 63, 76, 84, 69, 56, 45, 63, 47, 65, 63, 52, 72, 58, 53, 70, 69, 80, 67, 80, 58, 75, 95, 84, 74, 59, 42, 56, 66, 66, 83, 76, 80, 59, 74, 72, 89, 47, 61, 60, 125, 57, 87, 80, 71, 68, 50, 66, 57, 49, 55, 79, 64, 69, 67, 63, 72, 40, 81, 97, 61, 33, 57, 87, 58, 56, 63, 48, 95, 53, 59, 63, 59, 62, 67, 63, 61, 71, 59, 63, 44, 91, 55, 65, 65, 81, 50, 49, 71, 52, 66, 46, 119, 63, 63, 57, 42, 85, 71, 51, 59, 50, 41, 70, 56, 77, 62, 64, 57, 61, 82, 63, 51, 67, 55, 51, 56, 40, 62, 70, 84, 62, 77, 40, 55, 48, 78, 53, 87, 40, 53, 77, 68, 51, 69, 60, 66, 56, 62, 52, 60, 80, 56, 102, 77, 88, 52, 64, 47, 78, 44, 61, 78, 63, 60, 68, 111, 74, 60, 45, 69, 43, 65, 94, 48, 38, 48, 70, 75, 45, 64, 66, 74, 81, 81, 66, 66, 84, 69, 85, 53, 51, 57, 79, 66, 70, 48, 52, 60, 61, 74, 81, 78, 142, 47, 79, 55, 67, 79, 63, 66, 67, 60, 73, 94, 66, 52, 68, 85, 81, 61, 112, 92, 72, 68, 68, 68, 78, 72, 53, 48, 99, 58, 68, 48, 97, 52, 60, 114, 76, 81, 66, 48, 74, 71, 63, 75, 66, 55, 78, 48, 68, 71, 75, 37, 68, 94, 48, 45, 80, 78, 67, 48, 82, 52, 53, 46, 77, 137, 69, 64, 73, 73, 58, 74, 55, 87, 68, 50, 43, 58, 77, 74, 55, 91, 54, 71, 49, 55, 55, 88, 38, 105, 88, 61, 55, 75, 92, 51, 71, 98, 85, 94, 63, 44, 74, 52, 56, 50, 74, 61, 74, 62, 88, 74, 46, 75, 60, 66, 80, 46, 70, 45, 56, 47, 47, 72, 81, 67, 60, 70, 56, 82, 62, 63, 84, 67, 49, 55, 60, 62, 48, 55, 88, 62, 71, 71, 46, 62, 67, 63, 60, 105, 68, 91, 66, 58, 106, 82, 80, 70, 50, 72, 50, 72, 52, 62, 57, 55, 62, 77, 67, 63, 88, 59, 71, 70, 86, 81, 104, 67, 53, 77, 64, 46, 83, 50, 69, 81, 61, 47, 54, 81, 86, 119, 52, 64, 70, 52, 72, 64, 62, 78, 72, 79, 58, 62, 45, 57, 66, 63, 61, 55, 77, 90, 70, 58, 46, 66, 63, 55, 70, 56, 54, 59, 63, 54, 69, 61, 72, 53, 89, 46, 81, 46, 68, 58, 69, 62, 47, 74, 103, 95, 74, 45, 52, 52, 89, 82, 84, 56, 57, 75, 52, 55, 42, 45, 34, 53, 35, 52, 91, 75, 39, 69, 87, 73, 50, 70, 57, 100, 71, 42, 48, 57, 91, 44, 59, 69, 49, 78, 61, 58, 78, 48, 93, 62, 69, 95, 68, 62, 113, 63, 90, 42, 56, 75, 42, 71, 66, 81, 97, 86, 76, 50, 65, 56, 57, 52, 79, 81, 56, 59, 64, 83, 67, 37, 50, 60, 50, 35, 72, 59, 57, 73, 52, 81, 92, 62, 72, 70, 53, 48, 71, 56, 70, 38, 66, 70, 79, 71, 46, 72, 80, 65, 78, 62, 66, 58, 58, 69, 71, 63, 68, 75, 76, 55, 83, 44, 61, 78, 72, 74, 77, 43, 66, 66, 52, 60, 46, 45, 76, 68, 40, 61, 61, 67, 52, 81, 58, 73, 57, 72, 54, 85, 51, 48, 36, 75, 51, 73, 87, 67, 72, 80, 84, 61, 83, 57, 53, 84, 75, 57, 48, 69, 62, 71, 79, 69, 46, 85, 23, 67, 56, 88, 43, 57, 80, 72, 91, 96, 79, 47, 40, 108, 44, 31, 73, 61, 48, 102, 76, 68, 58, 77, 110, 68, 90, 96, 54, 79, 50, 71, 82, 50, 82, 86, 50, 53, 60, 75, 63, 61, 43, 59, 60, 62, 34, 90, 51, 53, 63, 47, 62, 84, 106, 48, 74, 34, 42, 55, 56, 62, 34, 74, 40, 60, 35, 84, 78, 56, 74, 80, 79, 62, 40, 67, 89, 80, 63, 58, 95, 66, 51, 51, 47, 54, 48, 50, 64, 69, 66, 74, 37, 49, 58, 66, 64, 63, 82, 64, 66, 70, 57, 40, 87, 52, 72, 64, 62, 69, 52, 45, 70, 52, 83, 60, 52, 50, 92, 59, 61, 87, 69, 58, 72, 76, 53, 48, 53, 55, 76, 41, 73, 99, 48, 61, 55, 68, 70, 52, 71, 88, 63, 71, 57, 68, 66, 45, 67, 62, 95, 76, 41, 77, 76, 54, 85, 57, 50, 82, 65, 41, 46, 64, 43, 63, 57, 83, 47, 62, 55, 96, 50, 87, 79, 72, 93, 62, 51, 72, 102, 48, 63, 42, 73, 54, 56, 78, 83, 48, 42, 73, 64, 73, 129, 49, 106, 58, 47, 89, 65, 85, 54, 53, 62, 74, 76, 48, 57, 58, 65, 55, 92, 68, 90, 80, 89, 75, 92, 54, 68, 58, 66, 74, 142, 57, 58, 45, 52, 53, 43, 64, 52, 51, 68, 87, 86, 38, 74, 51, 71, 60, 57, 63, 55, 68, 81, 48, 58, 60, 110, 65, 75, 56, 61, 70, 77, 78, 66, 74, 136, 67, 34, 83, 71, 71, 79, 61, 76, 50, 71, 90, 66, 46, 50, 47, 68, 83, 68, 56, 48, 68, 86, 79, 69, 64, 72, 74, 93, 71, 113, 118, 66, 57, 68, 74, 69, 62, 69, 76, 81, 51, 69, 66, 65, 98, 68, 79, 85, 37, 76, 61, 55, 71, 72, 50, 90, 76, 77, 54, 60, 53, 56, 53, 75, 64, 54, 46, 83, 45, 64, 93, 40, 66, 67, 77, 73, 56, 54, 66, 62, 69, 72, 72, 80, 90, 63, 120, 66, 63, 52, 68, 73, 63, 61, 55, 101, 68, 70, 62, 74, 90, 43, 69, 61, 53, 70, 64, 67, 60, 58, 59, 113, 59, 71, 42, 71, 27, 85, 58, 71, 60, 48, 57, 62, 86, 62, 55, 54, 102, 38, 78, 70, 79, 74, 63, 86, 60, 72, 51, 58, 67, 43, 89, 78, 59, 47, 61, 79, 50, 51, 89, 53, 60, 56, 58, 61, 87, 75, 52, 64, 68, 53, 107, 92, 33, 76, 84, 66, 56, 65, 85, 60, 63, 65, 73, 58, 42, 59, 70, 47, 79, 69, 41, 58, 96, 58, 76, 55, 32, 72, 70, 58, 80, 58, 61, 79, 57, 69, 44, 62, 72, 66, 42, 71, 63, 60, 77, 67, 54, 68, 52, 87, 70, 74, 43, 60, 99, 53, 51, 64, 49, 50, 61, 69, 56, 73, 88, 56, 74, 54, 59, 77, 98, 57, 38, 46, 54, 51, 58, 61, 56, 58, 51, 78, 46, 53, 61, 79, 57, 81, 54, 67, 67, 91, 63, 70, 63, 84, 67, 63, 76, 67, 72, 104, 71, 45, 72, 71, 54, 64, 59, 82, 79, 47, 66, 67, 42, 58, 61, 45, 78, 63, 44, 48, 68, 58, 56, 69, 76, 58, 57, 97, 42, 52, 86, 45, 50, 67, 69, 69, 63, 59, 59, 80, 77, 57, 50, 65, 63, 70, 53, 76, 48, 61, 66, 62, 49, 60, 79, 84, 57, 77, 71, 90, 51, 64, 87, 38, 50, 63, 52, 59, 52, 77, 149, 64, 60, 51, 83, 93, 62, 59, 91, 45, 62, 61, 41, 63, 86, 94, 71, 77, 31, 64, 65, 93, 55, 47, 74, 92, 53, 55, 73, 42, 57, 62, 64, 76, 56, 63, 58, 75, 72, 84, 75, 66, 81, 57, 75, 76, 102, 52, 67, 65, 77, 45, 55, 104, 54, 59, 69, 106, 46, 58, 105, 75, 58, 72, 65, 73, 77, 73, 58, 58, 61, 46, 91, 74, 74, 77, 70, 65, 97, 57, 100, 60, 61, 68, 93, 63, 47, 45, 48, 61, 89, 50, 64, 51, 56, 103, 77, 67, 50, 55, 73, 64, 93, 97, 91, 42, 72, 79, 69, 61, 70, 94, 55, 61, 63, 52, 68, 60, 49, 63, 63, 49, 62, 74, 54, 70, 105, 56, 79, 81, 76, 73, 62, 119, 59, 57, 42, 60, 60, 63, 62, 47, 67, 68, 55, 64, 102, 65, 69, 68, 78, 80, 46, 47, 55, 68, 55, 48, 73, 59, 64, 92, 69, 52, 61, 67, 89, 65, 79, 76, 74, 71, 93, 38, 60, 59, 73, 80, 69, 59, 72, 64, 65, 79, 101, 38, 57, 73, 83, 95, 75, 71, 71, 46, 75, 59, 60, 55, 68, 64, 80, 60, 60, 47, 76, 57, 88, 62, 60, 60, 56, 72, 65, 61, 62, 75, 51, 50, 80, 57, 58, 90, 47, 82, 68, 99, 46, 54, 52, 78, 60, 86, 62, 67, 57, 61, 60, 56, 85, 54, 68, 56, 43, 70, 99, 47, 62, 48, 63, 98, 59, 67, 56, 58, 72, 76, 58, 66, 77, 50, 51, 68, 85, 44, 65, 62, 56, 80, 61, 53, 80, 62, 36, 55, 66, 54, 84, 43, 72, 65, 69, 76, 86, 85, 81, 49, 61, 87, 55, 108, 51, 47, 79, 48, 84, 62, 84, 46, 64, 68, 68, 58, 43, 60, 51, 63, 80, 75, 107, 69, 61, 61, 64, 53, 64, 105, 50, 94, 67, 46, 57, 53, 56, 62, 61, 58, 53, 79, 70, 71, 58, 93, 61, 50, 78, 76, 55, 55, 62, 70, 58, 64, 76, 76, 97, 62, 44, 67, 95, 73, 59, 51, 52, 71, 45, 63, 38, 64, 61, 64, 66, 63, 62, 65, 64, 66, 71, 66, 71, 85, 54, 66, 82, 80, 86, 83, 67, 64, 46, 44, 75, 60, 71, 67, 89, 66, 67, 103, 47, 89, 54, 37, 60, 91, 54, 54, 65, 66, 66, 75, 58, 61, 61, 50, 60, 54, 73, 80, 59, 65, 96, 59, 58, 81, 51, 85, 54, 57, 39, 82, 75, 76, 58, 58, 55, 62, 48, 90, 48, 48, 61, 66, 62, 61, 39, 71, 70, 64, 45, 55, 65, 88, 67, 79, 72, 79, 58, 58, 64, 61, 101, 59, 55, 51, 86, 40, 57, 76, 43, 61, 68, 59, 59, 51, 94, 81, 71, 67, 61, 70, 59, 65, 59, 57, 64, 56, 44, 62, 60, 83, 49, 55, 57, 34, 44, 49, 73, 53, 80, 60, 76, 78, 64, 89, 51, 70, 39, 65, 56, 70, 47, 50, 71, 65, 57, 75, 63, 42, 110, 69, 58, 59, 67, 41, 83, 61, 64, 104, 92, 53, 85, 62, 56, 71, 35, 48, 55, 76, 60, 63, 76, 96, 70, 57, 71, 86, 79, 70, 64, 66, 52, 88, 54, 63, 61, 55, 60, 85, 63, 54, 51, 72, 59, 91, 71, 69, 48, 52, 55, 86, 87, 60, 87, 39, 72, 82, 65, 121, 54, 75, 62, 122, 104, 68, 64, 65, 94, 82, 62, 55, 52, 67, 55, 59, 62, 70, 65, 64, 77, 62, 43, 89, 44, 74, 80, 57, 63, 48, 48, 60, 69, 57, 74, 57, 64, 70, 50, 83, 32, 80, 72, 67, 68, 61, 84, 52, 73, 68, 90, 73, 71, 57, 58, 48, 52, 69, 57, 56, 62, 82, 69, 60, 75, 77, 77, 82, 67, 74, 73, 57, 56, 53, 51, 70, 85, 79, 58, 76, 72, 70, 76, 56, 76, 68, 72, 65, 72, 81, 62, 55, 47, 87, 59, 75, 95, 51, 69, 83, 81, 49, 81, 55, 80, 58, 90, 54, 100, 79, 60, 74, 39, 36, 69, 78, 54, 88, 51, 62, 101, 54, 42, 80, 72, 67, 67, 41, 51, 65, 70, 65, 67, 75, 50, 45, 63, 67, 91, 71, 61, 60, 61, 60, 88, 60, 64, 62, 54, 98, 73, 57, 77, 81, 70, 38, 51, 69, 76, 48, 56, 91, 58, 42, 59, 49, 76, 60, 62, 101, 81, 72, 73, 70, 65, 67, 38, 61, 85, 76, 49, 70, 96, 48, 55, 48, 78, 57, 60, 50, 84, 86, 44, 57, 57, 52, 67, 59, 68, 63, 44, 104, 78, 78, 58, 54, 50, 56, 53, 72, 56, 65, 61, 59, 58, 68, 72, 48, 71, 67, 81, 66, 64, 41, 61, 91, 63, 51, 58, 59, 91, 64, 56, 66, 58, 56, 50, 61, 53, 81, 72, 75, 61, 73, 110, 88, 68, 58, 87, 59, 66, 79, 57, 61, 54, 68, 69, 72, 65, 73, 47, 48, 45, 64, 59, 64, 62, 59, 72, 69, 76, 65, 58, 65, 34, 64, 83, 63, 55, 63, 70, 82, 54, 68, 60, 55, 54, 67, 60, 81, 71, 64, 79, 73, 44, 75, 51, 66, 77, 57, 71, 53, 72, 66, 103, 70, 33, 46, 79, 82, 96, 125, 58, 53, 68, 62, 85, 51, 66, 73, 92, 55, 67, 45, 50, 58, 67, 59, 44, 73, 53, 70, 82, 46, 60, 74, 54, 68, 63, 56, 44, 69, 78, 89, 67, 67, 58, 69, 62, 70, 76, 52, 87, 83, 82, 61, 69, 68, 76, 75, 59, 47, 71, 59, 50, 60, 61, 75, 125, 101, 59, 53, 67, 86, 66, 71, 67, 75, 64, 64, 60, 53, 60, 56, 60, 58, 96, 74, 58, 69, 65, 60, 86, 68, 57, 76, 70, 94, 86, 63, 88, 59, 58, 54, 83, 50, 39, 67, 52, 75, 63, 69, 43, 62, 60, 49, 78, 72, 72, 63, 64, 81, 83, 89, 48, 57, 54, 70, 52, 78, 66, 66, 66, 35, 75, 37, 73, 79, 64, 78, 41, 75, 49, 63, 63, 57, 61, 54, 51, 58, 64, 63, 92, 61, 69, 59, 92, 49, 65, 52, 50, 75, 62, 82, 55, 58, 82, 70, 73, 36, 68, 89, 59, 52, 118, 59, 72, 46, 70, 65, 60, 85, 62, 69, 84, 70, 84, 47, 85, 75, 61, 74, 44, 80, 69, 74, 67, 96, 58, 64, 61, 132, 58, 52, 57, 78, 57, 53, 89, 137, 70, 98, 64, 78, 60, 68, 60, 68, 50, 54, 59, 54, 65, 39, 82, 59, 79, 36, 64, 72, 84, 79, 67, 67, 69, 57, 52, 75, 50, 68, 74, 60, 48, 67, 42, 58, 51, 70, 58, 75, 60, 52, 32, 57, 70, 62, 50, 84, 63, 78, 69, 86, 66, 65, 56, 94, 59, 98, 49, 77, 74, 72, 36, 52, 82, 74, 46, 53, 82, 68, 72, 45, 60, 64, 81, 90, 39, 57, 75, 82, 62, 69, 68, 55, 65, 56, 67, 62, 68, 75, 69, 83, 71, 64, 68, 64, 61, 62, 110, 43, 76, 59, 48, 65, 67, 73, 63, 76, 57, 63, 76, 52, 63, 103, 56, 45, 88, 65, 77, 78, 63, 75, 59, 44, 44, 54, 84, 66, 91, 60, 55, 86, 69, 73, 57, 41, 52, 53, 43, 87, 108, 71, 59, 57, 55, 53, 80, 79, 82, 75, 61, 64, 73, 74, 53, 73, 70, 72, 53, 93, 74, 60, 58, 81, 59, 70, 92, 68, 53, 68, 94, 69, 37, 80, 53, 66, 68, 56, 96, 60, 70, 55, 48, 60, 72, 49, 46, 72, 45, 75, 46, 61, 66, 61, 80, 80, 67, 52, 65, 63, 59, 60, 61, 62, 76, 52, 78, 80, 81, 52, 71, 63, 84, 61, 38, 78, 49, 75, 72, 70, 73, 74, 67, 66, 50, 53, 95, 57, 45, 64, 62, 62, 53, 42, 63, 79, 84, 57, 60, 61, 66, 69, 63, 71, 70, 98, 79, 39, 66, 55, 32, 47, 63, 62, 42, 62, 76, 40, 61, 51, 60, 47, 55, 87, 74, 68, 66, 45, 60, 48, 56, 62, 80, 68, 59, 58, 61, 51, 72, 41, 60, 54, 57, 72, 66, 50, 58, 76, 83, 79, 49, 76, 77, 65, 119, 70, 78, 78, 55, 56, 76, 79, 71, 56, 85, 60, 70, 60, 81, 50, 50, 61, 50, 70, 59, 68, 66, 64, 62, 87, 69, 64, 64, 71, 67, 58, 63, 64, 62, 65, 66, 96, 58, 94, 84, 53, 58, 48, 75, 61, 58, 57, 62, 53, 66, 61, 72, 43, 59, 50, 74, 71, 52, 74, 88, 56, 67, 71, 74, 63, 85, 72, 64, 61, 59, 54, 75, 83, 69, 58, 58, 63, 50, 55, 61, 141, 92, 60, 63, 69, 70, 53, 70, 59, 57, 112, 73, 51, 79, 74, 47, 66, 72, 69, 64, 54, 66, 100, 58, 58, 53, 90, 73, 64, 36, 85, 88, 69, 55, 62, 117, 56, 41, 62, 73, 49, 61, 55, 66, 51, 87, 67, 53, 73, 43, 75, 65, 62, 58, 32, 70, 68, 44, 63, 48, 62, 65, 64, 72, 62, 55, 87, 83, 47, 36, 72, 81, 79, 50, 36, 73, 51, 63, 76, 81, 58, 54, 88, 43, 114, 64, 56, 72, 49, 82, 62, 82, 49, 56, 62, 66, 61, 63, 94, 59, 54, 68, 93, 120, 69, 51, 67, 63, 50, 75, 53, 52, 62, 73, 47, 77, 50, 79, 60, 67, 43, 73, 57, 57, 77, 67, 36, 64, 64, 58, 62, 107, 67, 85, 62, 71, 75, 55, 60, 81, 69, 84, 84, 54, 72, 40, 48, 79, 80, 82, 91, 64, 110, 76, 63, 37, 144, 64, 87, 65, 49, 49, 69, 76, 59, 74, 137, 53, 67, 63, 57, 81, 69, 41, 78, 74, 57, 75, 75, 97, 57, 69, 66, 65, 74, 80, 43, 60, 74, 79, 80, 73, 57, 61, 45, 69, 59, 77, 43, 49, 97, 61, 71, 55, 54, 82, 58, 59, 97, 52, 61, 112, 74, 92, 54, 95, 55, 76, 71, 44, 65, 70, 63, 66, 65, 67, 45, 47, 55, 66, 50, 89, 70, 70, 103, 110, 54, 67, 71, 75, 61, 52, 65, 66, 74, 51, 82, 72, 63, 74, 78, 58, 79, 54, 68, 85, 67, 63, 61, 69, 46, 70, 57, 57, 88, 65, 76, 57, 63, 61, 68, 70, 120, 71, 64, 67, 66, 39, 69, 58, 56, 75, 42, 62, 53, 65, 85, 55, 54, 90, 65, 50, 70, 66, 88, 55, 64, 73, 55, 70, 86, 50, 65, 71, 59, 59, 56, 58, 66, 56, 81, 49, 52, 78, 48, 61, 77, 75, 58, 73, 77, 75, 55, 73, 54, 46, 51, 64, 88, 86, 67, 62, 68, 62, 66, 93, 86, 64, 69, 67, 47, 70, 72, 78, 64, 54, 48, 66, 77, 61, 62, 70, 89, 54, 56, 107, 57, 71, 49, 55, 54, 84, 55, 64, 84, 101, 67, 70, 46, 100, 51, 66, 59, 68, 92, 76, 49, 54, 68, 64, 58, 61, 61, 60, 86, 68, 58, 38, 64, 50, 60, 40, 105, 62, 63, 43, 47, 41, 63, 58, 50, 67, 64, 51, 70, 63, 52, 81, 82, 88, 82, 67, 64, 88, 70, 52, 84, 59, 140, 49, 78, 65, 83, 68, 57, 62, 25, 89, 63, 69, 48, 49, 79, 81, 70, 69, 74, 42, 64, 52, 56, 72, 50, 54, 80, 64, 60, 55, 44, 73, 67, 74, 60, 60, 93, 78, 74, 61, 76, 61, 68, 76, 70, 56, 81, 53, 65, 83, 63, 82, 62, 52, 70, 61, 52, 52, 52, 92, 62, 68, 87, 69, 72, 60, 81, 48, 71, 89, 36, 81, 67, 70, 68, 64, 72, 56, 68, 66, 68, 72, 74, 84, 69, 68, 57, 42, 52, 64, 64, 58, 78, 55, 54, 60, 75, 90, 50, 70, 76, 78, 49, 65, 48, 71, 67, 68, 74, 75, 61, 44, 63, 57, 64, 64, 78, 81, 52, 128, 59, 65, 67, 88, 57, 59, 63, 67, 65, 44, 72, 66, 62, 60, 49, 91, 61, 62, 88, 86, 82, 76, 54, 102, 67, 49, 53, 72, 78, 76, 80, 63, 65, 43, 65, 54, 49, 62, 105, 62, 56, 79, 65, 62, 76, 91, 49, 55, 55, 67, 54, 58, 64, 79, 54, 59, 60, 52, 66, 46, 86, 47, 57, 55, 79, 67, 62, 50, 75, 67, 65, 67, 80, 84, 75, 67, 48, 88, 73, 74, 73, 56, 71, 69, 71, 72, 85, 55, 84, 67, 50, 77, 139, 65, 70, 52, 63, 82, 88, 83, 70, 59, 69, 57, 83, 77, 60, 64, 63, 80, 88, 53, 49, 67, 84, 53, 52, 52, 94, 83, 60, 54, 67, 49, 34, 54, 83, 97, 56, 59, 83, 51, 67, 130, 57, 65, 58, 59, 66, 66, 62, 47, 51, 64, 64, 57, 59, 71, 68, 66, 67, 59, 66, 55, 54, 71, 60, 68, 64, 71, 55, 56, 51, 53, 60, 49, 63, 36, 52, 49, 77, 70, 57, 63, 64, 64, 38, 75, 73, 67, 54, 67, 63, 64, 70, 63, 70, 56, 71, 62, 68, 74, 79, 69, 65, 69, 71, 71, 61, 56, 59, 80, 59, 68, 60, 63, 64, 68, 48, 87, 56, 79, 50, 75, 68, 67, 80, 47, 59, 61, 83, 55, 69, 57, 63, 66, 68, 67, 51, 55, 60, 67, 56, 54, 55, 56, 102, 50, 51, 71, 87, 63, 52, 65, 95, 70, 65, 51, 76, 82, 89, 79, 67, 69, 52, 53, 67, 74, 53, 54, 83, 66, 78, 59, 78, 47, 58, 48, 63, 64, 51, 80, 61, 59, 69, 66, 92, 59, 59, 40, 75, 59, 63, 67, 56, 55, 70, 69, 87, 77, 67, 52, 53, 51, 61, 62, 74, 66, 72, 63, 46, 57, 66, 81, 63, 66, 58, 42, 83, 69, 78, 83, 39, 71, 66, 63, 75, 127, 77, 61, 73, 55, 57, 62, 71, 63, 87, 62, 85, 89, 68, 76, 47, 63, 60, 71, 68, 75, 65, 40, 106, 54, 71, 72, 69, 54, 73, 109, 47, 60, 60, 45, 57, 71, 54, 59, 50, 79, 98, 68, 102, 90, 49, 54, 54, 47, 75, 60, 62, 63, 63, 84, 69, 63, 52, 68, 77, 59, 78, 86, 52, 57, 58, 113, 59, 55, 64, 73, 45, 50, 68, 69, 54, 88, 63, 72, 66, 51, 69, 63, 60, 64, 81, 60, 56, 62, 86, 64, 69, 57, 76, 84, 63, 70, 65, 83, 85, 63, 59, 62, 62, 45, 90, 70, 66, 55, 59, 66, 68, 55, 67, 60, 58, 65, 66, 68, 73, 51, 65, 57, 62, 96, 62, 49, 71, 48, 100, 64, 87, 64, 64, 61, 63, 75, 49, 73, 65, 55, 65, 57, 59, 54, 76, 67, 77, 62, 63, 66, 58, 75, 79, 64, 57, 94, 74, 48, 65, 44, 80, 67, 49, 79, 80, 61, 75, 59, 85, 71, 88, 50, 65, 120, 60, 60, 48, 93, 71, 61, 58, 74, 50, 82, 60, 86, 67, 63, 57, 52, 62, 61, 52, 56, 74, 71, 64, 58, 62, 71, 58, 93, 47, 65, 75, 55, 64, 72, 71, 54, 56, 80, 46, 42, 70, 59, 60, 52, 78, 67, 52, 88, 65, 96, 57, 74, 63, 48, 68, 53, 47, 65, 53, 72, 60, 94, 69, 61, 48, 66, 59, 63, 72, 101, 75, 64, 68, 61, 60, 58, 67, 59, 71, 55, 74, 73, 66, 72, 63, 63, 60, 57, 58, 58, 68, 73, 49, 82, 42, 87, 53, 65, 83, 51, 67, 68, 113, 66, 57, 49, 61, 53, 80, 68, 88, 62, 46, 118, 59, 77, 96, 62, 64, 74, 57, 66, 59, 67, 81, 58, 56, 55, 77, 61, 72, 52, 71, 70, 67, 70, 57, 80, 81, 59, 90, 63, 74, 69, 58, 72, 44, 64, 49, 66, 57, 83, 41, 63, 56, 57, 79, 106, 75, 91, 64, 43, 56, 60, 40, 64, 86, 63, 58, 86, 68, 66, 74, 83, 56, 83, 87, 108, 57, 66, 69, 59, 54, 72, 54, 63, 71, 67, 69, 60, 118, 50, 54, 37, 58, 47, 86, 56, 44, 40, 43, 58, 58, 66, 54, 69, 54, 109, 127, 55, 43, 69, 69, 58, 78, 86, 47, 91, 58, 71, 64, 68, 59, 60, 56, 49, 54, 51, 60, 93, 66, 64, 70, 66, 68, 56, 57, 68, 74, 63, 53, 67, 95, 80, 85, 45, 52, 76, 69, 65, 62, 70, 95, 51, 69, 58, 64, 95, 73, 73, 67, 62, 83, 41, 81, 65, 62, 75, 63, 61, 60, 66, 57, 44, 65, 55, 64, 58, 57, 51, 67, 64, 77, 68, 51, 51, 57, 52, 57, 63, 70, 43, 59, 52, 62, 84, 73, 78, 45, 56, 57, 73, 89, 64, 66, 60, 66, 63, 65, 70, 68, 55, 65, 62, 55, 66, 53, 56, 64, 54, 60, 52, 60, 74, 83, 61, 82, 58, 102, 57, 66, 43, 73, 73, 84, 56, 76, 57, 58, 71, 60, 49, 70, 56, 61, 72, 49, 71, 66, 64, 76, 50, 72, 62, 92, 59, 62, 63, 58, 51, 52, 86, 66, 46, 166, 66, 68, 72, 54, 47, 66, 75, 43, 86, 67, 57, 68, 64, 44, 57, 65, 116, 70, 57, 77, 95, 70, 56, 55, 71, 181, 73, 49, 45, 54, 61, 69, 53, 49, 56, 67, 60, 56, 64, 50, 69, 89, 57, 59, 61, 70, 55, 67, 63, 62, 62, 68, 57, 52, 95, 68, 67, 79, 70, 70, 45, 54, 60, 60, 59, 55, 75, 71, 55, 74, 106, 66, 67, 48, 58, 48, 91, 62, 41, 79, 66, 80, 53, 61, 52, 80, 66, 57, 57, 45, 84, 61, 91, 97, 66, 54, 68, 49, 82, 95, 69, 59, 53, 79, 78, 77, 53, 54, 59, 65, 70, 70, 48, 73, 57, 55, 68, 66, 68, 66, 70, 60, 72, 75, 42, 74, 63, 55, 99, 74, 127, 107, 64, 51, 63, 55, 57, 62, 100, 69, 56, 56, 62, 59, 74, 87, 80, 60, 69, 68, 93, 46, 61, 77, 80, 68, 47, 75, 57, 64, 63, 102, 70, 71, 59, 55, 59, 83, 79, 51, 60, 67, 48, 67, 47, 78, 54, 43, 61, 58, 74, 65, 72, 52, 74, 73, 62, 62, 53, 90, 59, 104, 74, 55, 84, 56, 67, 52, 100, 58, 82, 51, 57, 59, 52, 71, 55, 69, 85, 62, 64, 54, 45, 64, 55, 85, 74, 56, 77, 78, 60, 80, 53, 77, 60, 75, 74, 128, 66, 56, 86, 63, 68, 95, 59, 78, 60, 84, 50, 74, 85, 84, 74, 53, 37, 65, 62, 68, 73, 71, 69, 100, 64, 94, 60, 94, 54, 58, 64, 43, 59, 51, 62, 71, 79, 53, 55, 70, 67, 82, 66, 66, 104, 52, 56, 66, 71, 68, 71, 65, 64, 59, 50, 72, 59, 73, 71, 57, 70, 69, 71, 73, 63, 55, 61, 52, 62, 77, 69, 51, 46, 50, 59, 66, 48, 61, 66, 76, 64, 72, 98, 61, 58, 70, 44, 59, 58, 65, 67, 58, 65, 74, 67, 148, 70, 52, 68, 51, 57, 71, 70, 76, 50, 51, 60, 84, 78, 51, 65, 76, 55, 75, 112, 62, 56, 64, 79, 71, 70, 60, 45, 57, 75, 83, 64, 49, 71, 66, 60, 92, 63, 57, 68, 55, 69, 69, 66, 84, 55, 71, 64, 65, 55, 62, 64, 63, 75, 83, 68, 64, 60, 92, 76, 70, 65, 72, 57, 77, 62, 72, 67, 62, 65, 84, 63, 106, 64, 55, 58, 56, 70, 62, 58, 84, 45, 68, 53, 66, 65, 58, 57, 68, 60, 79, 71, 86, 53, 57, 54, 61, 92, 68, 37, 59, 50, 60, 66, 68, 63, 30, 72, 71, 65, 60, 76, 61, 55, 51, 40, 47, 72, 71, 47, 71, 64, 60, 61, 56, 68, 64, 51, 72, 65, 50, 69, 72, 65, 63, 58, 67, 90, 70, 50, 60, 58, 67, 61, 68, 67, 56, 86, 72, 62, 61, 72, 57, 75, 69, 99, 62, 75, 72, 50, 71, 57, 64, 75, 69, 78, 81, 82, 62, 63, 113, 64, 49, 100, 43, 61, 70, 54, 74, 58, 50, 63, 58, 60, 54, 79, 66, 63, 77, 65, 85, 64, 37, 59, 72, 61, 59, 73, 83, 81, 75, 77, 71, 70, 71, 44, 48, 54, 65, 40, 85, 71, 54, 59, 65, 49, 70, 76, 83, 64, 87, 57, 57, 80, 55, 98, 67, 53, 82, 52, 51, 81, 68, 134, 72, 39, 76, 72, 78, 56, 88, 73, 62, 46, 58, 41, 98, 53, 52, 70, 47, 65, 70, 91, 73, 79, 57, 56, 50, 77, 71, 53, 64, 81, 75, 78, 75, 71, 69, 75, 63, 62, 85, 56, 64, 52, 65, 71, 64, 60, 60, 66, 67, 52, 70, 74, 77, 62, 65, 62, 70, 73, 75, 64, 67, 80, 68, 58, 81, 61, 90, 85, 66, 61, 84, 53, 70, 69, 66, 68, 66, 54, 80, 64, 79, 59, 49, 62, 53, 66, 60, 79, 71, 57, 62, 58, 53, 71, 62, 78, 75, 48, 76, 74, 60, 55, 75, 90, 53, 91, 73, 75, 70, 60, 65, 71, 67, 79, 88, 68, 63, 60, 61, 62, 61, 62, 55, 57, 73, 52, 71, 63, 80, 68, 62, 74, 86, 73, 59, 77, 40, 47, 57, 68, 61, 42, 77, 74, 51, 107, 47, 71, 57, 76, 88, 80, 61, 62, 64, 55, 81, 62, 73, 70, 63, 84, 86, 57, 85, 60, 77, 77, 89, 64, 74, 79, 74, 72, 71, 56, 55, 53, 65, 74, 71, 69, 73, 75, 54, 73, 50, 73, 64, 48, 72, 52, 59, 75, 63, 69, 75, 76, 52, 57, 89, 61, 51, 62, 70, 63, 77, 75, 72, 57, 65, 85, 70, 53, 69, 68, 47, 77, 62, 52, 82, 72, 56, 94, 90, 65, 58, 62, 72, 63, 51, 58, 60, 59, 97, 73, 57, 80, 76, 100, 79, 84, 70, 55, 69, 52, 63, 65, 82, 105, 51, 60, 85, 67, 69, 72, 76, 93, 68, 54, 68, 58, 76, 71, 67, 57, 63, 76, 75, 83, 52, 59, 62, 58, 56, 69, 66, 79, 54, 69, 55, 57, 75, 111, 82, 81, 63, 67, 57, 50, 64, 70, 39, 59, 88, 63, 64, 51, 70, 74, 80, 48, 45, 57, 108, 74, 50, 54, 60, 72, 63, 54, 37, 63, 79, 35, 52, 63, 69, 56, 39, 73, 55, 66, 54, 89, 65, 63, 40, 79, 60, 67, 54, 40, 74, 65, 69, 60, 68, 62, 76, 80, 60, 47, 54, 77, 76, 52, 62, 58, 70, 59, 75, 49, 44, 68, 62, 62, 38, 59, 73, 108, 77, 82, 82, 64, 78, 92, 74, 44, 54, 74, 54, 54, 80, 57, 55, 55, 71, 48, 53, 130, 52, 42, 56, 66, 61, 58, 73, 46, 83, 61, 37, 65, 84, 66, 81, 41, 70, 66, 56, 69, 55, 47, 69, 72, 60, 58, 56, 54, 85, 93, 65, 81, 54, 56, 66, 53, 71, 60, 61, 70, 40, 54, 68, 119, 63, 88, 47, 60, 61, 72, 81, 64, 62, 39, 65, 67, 65, 47, 64, 82, 68, 77, 84, 45, 83, 53, 51, 62, 53, 60, 39, 63, 65, 53, 56, 48, 49, 36, 55, 46, 59, 73, 44, 60, 58, 96, 76, 63, 69, 52, 72, 62, 78, 79, 49, 84, 35, 101, 53, 39, 91, 88, 24, 50, 74, 75, 65, 53, 59, 63, 38, 51, 47, 49, 75, 68, 79, 81, 76, 66, 40, 50, 73, 74, 47, 50, 64, 64, 67, 70, 68, 72, 48, 58, 56, 71, 53, 60, 134, 78, 48, 61, 65, 79, 54, 56, 72, 51, 72, 85, 68, 69, 60, 78, 55, 70, 97, 81, 70, 52, 60, 49, 123, 52, 58, 89, 58, 52, 68, 78, 65, 57, 85, 67, 93, 59, 87, 78, 59, 97, 52, 58, 40, 68, 70, 83, 45, 53, 69, 58, 86, 61, 73, 55, 54, 46, 76, 62, 48, 69, 73, 60, 75, 71, 75, 61, 72, 72, 35, 68, 66, 68, 77, 83, 87, 75, 86, 53, 105, 63, 51, 58, 63, 61, 57, 66, 51, 63, 93, 75, 60, 50, 72, 145, 58, 46, 58, 66, 71, 103, 48, 52, 59, 49, 95, 62, 40, 59, 66, 55, 68, 62, 45, 55, 85, 51, 78, 74, 33, 55, 78, 74, 76, 80, 66, 63, 70, 56, 51, 92, 72, 59, 74, 65, 84, 74, 79, 39, 84, 111, 101, 59, 76, 64, 62, 63, 83, 66, 50, 60, 56, 67, 71, 46, 73, 90, 122, 62, 73, 61, 71, 55, 92, 59, 53, 50, 60, 68, 55, 67, 46, 65, 57, 68, 97, 74, 74, 64, 90, 69, 65, 71, 70, 72, 71, 55, 60, 68, 50, 60, 51, 66, 67, 57, 87, 56, 86, 56, 52, 58, 70, 55, 62, 50, 65, 57, 73, 43, 62, 56, 81, 77, 64, 91, 68, 52, 70, 56, 45, 43, 68, 61, 65, 80, 46, 59, 80, 61, 54, 57, 51, 60, 66, 75, 72, 64, 49, 71, 58, 73, 56, 94, 77, 77, 73, 60, 41, 57, 53, 86, 53, 50, 80, 38, 55, 71, 89, 123, 78, 70, 52, 53, 66, 50, 46, 69, 45, 80, 99, 63, 49, 68, 53, 74, 73, 65, 89, 71, 74, 79, 74, 63, 54, 71, 67, 68, 71, 68, 70, 66, 44, 47, 67, 67, 59, 60, 76, 62, 52, 42, 74, 53, 80, 45, 58, 102, 61, 64, 52, 55, 96, 50, 72, 55, 52, 70, 55, 56, 48, 99, 57, 56, 50, 59, 68, 55, 67, 38, 77, 45, 73, 53, 83, 69, 54, 69, 54, 69, 66, 53, 45, 63, 80, 65, 50, 63, 50, 43, 68, 56, 61, 90, 43, 53, 58, 50, 85, 88, 61, 85, 75, 60, 78, 64, 43, 61, 59, 76, 50, 56, 65, 56, 81, 68, 66, 102, 52, 59, 51, 66, 70, 79, 51, 85, 83, 68, 57, 70, 52, 82, 55, 75, 90, 73, 55, 61, 59, 79, 64, 60, 68, 84, 76, 75, 63, 56, 60, 54, 56, 69, 64, 80, 62, 45, 80, 60, 73, 49, 65, 54, 60, 67, 71, 60, 95, 60, 60, 55, 63, 60, 90, 68, 66, 67, 65, 68, 40, 72, 69, 68, 74, 70, 56, 84, 69, 47, 82, 54, 84, 65, 59, 70, 50, 76, 78, 56, 71, 65, 66, 70, 56, 69, 68, 48, 61, 60, 66, 41, 54, 67, 79, 67, 67, 81, 60, 64, 78, 48, 62, 59, 51, 53, 36, 56, 93, 55, 93, 70, 58, 59, 70, 48, 52, 78, 78, 66, 66, 76, 50, 85, 57, 56, 94, 63, 65, 58, 72, 78, 78, 45, 63, 51, 86, 79, 94, 72, 61, 69, 63, 51, 60, 59, 69, 69, 73, 68, 55, 41, 71, 59, 56, 62, 66, 65, 55, 57, 96, 65, 76, 75, 55, 85, 101, 75, 70, 72, 47, 55, 59, 71, 92, 88, 74, 50, 95, 84, 62, 92, 64, 76, 68, 53, 76, 78, 48, 63, 45, 82, 51, 54, 63, 78, 77, 45, 40, 63, 62, 84, 58, 78, 72, 57, 72, 58, 46, 62, 88, 71, 60, 53, 89, 79, 55, 57, 46, 107, 52, 52, 94, 82, 60, 73, 55, 64, 91, 50, 64, 77, 50, 58, 77, 65, 73, 106, 52, 53, 69, 60, 60, 95, 58, 65, 58, 60, 58, 55, 72, 60, 43, 79, 81, 68, 69, 108, 83, 50, 66, 63, 53, 77, 50, 58, 74, 86, 77, 71, 75, 77, 91, 63, 70, 82, 53, 79, 64, 51, 71, 79, 82, 50, 87, 57, 77, 63, 62, 85, 88, 59, 95, 82, 45, 65, 48, 67, 106, 55, 49, 82, 57, 47, 103, 54, 119, 45, 69, 63, 68, 50, 71, 44, 63, 73, 96, 64, 79, 41, 86, 77, 86, 61, 60, 71, 92, 55, 43, 57, 56, 45, 64, 69, 56, 57, 56, 70, 63, 62, 93, 56, 72, 57, 57, 50, 71, 71, 86, 115, 50, 85, 59, 87, 56, 61, 62, 50, 64, 54, 58, 57, 66, 76, 77, 52, 60, 54, 61, 76, 68, 54, 48, 79, 103, 42, 72, 58, 73, 63, 68, 64, 64, 46, 51, 61, 82, 73, 59, 60, 83, 89, 61, 84, 57, 74, 78, 85, 60, 62, 66, 62, 66, 45, 75, 57, 60, 39, 73, 95, 99, 68, 56, 54, 54, 66, 90, 68, 66, 75, 48, 86, 52, 83, 123, 61, 82, 55, 67, 50, 52, 64, 70, 73, 52, 68, 84, 55, 59, 45, 66, 82, 60, 89, 62, 74, 36, 52, 76, 72, 74, 82, 60, 48, 55, 85, 73, 73, 74, 62, 73, 62, 70, 65, 46, 73, 65, 56, 52, 88, 70, 72, 79, 66, 86, 68, 75, 65, 50, 77, 58, 72, 105, 62, 56, 71, 73, 54, 94, 63, 59, 55, 66, 62, 72, 94, 65, 53, 80, 65, 79, 49, 57, 30, 60, 62, 99, 37, 57, 75, 45, 74, 44, 69, 90, 50, 63, 68, 68, 55, 105, 57, 131, 65, 60, 53, 60, 82, 53, 73, 78, 52, 89, 94, 60, 49, 51, 40, 84, 59, 83, 40, 55, 74, 59, 70, 66, 87, 42, 60, 64, 83, 53, 70, 58, 53, 79, 49, 61, 44, 51, 43, 61, 97, 53, 60, 61, 74, 65, 56, 95, 94, 54, 69, 43, 63, 71, 56, 94, 68, 80, 75, 41, 62, 67, 60, 64, 74, 63, 55, 90, 55, 76, 66, 71, 117, 60, 39, 71, 50, 57, 53, 91, 41, 113, 57, 67, 47, 61, 51, 96, 49, 57, 59, 71, 46, 61, 56, 58, 89, 82, 111, 58, 63, 78, 48, 93, 61, 64, 69, 49, 53, 67, 46, 75, 56, 63, 55, 70, 75, 48, 82, 75, 67, 66, 37, 75, 81, 69, 64, 83, 83, 69, 57, 94, 52, 72, 80, 37, 51, 69, 70, 50, 118, 57, 88, 63, 72, 64, 60, 73, 75, 72, 55, 54, 62, 61, 60, 61, 77, 39, 57, 75, 59, 89, 63, 72, 59, 45, 57, 60, 69, 64, 100, 83, 74, 58, 51, 72, 74, 53, 51, 68, 53, 61, 61, 64, 67, 89, 60, 84, 76, 65, 75, 60, 68, 128, 58, 56, 106, 47, 55, 54, 97, 56, 56, 82, 53, 58, 73, 96, 57, 50, 89, 61, 74, 60, 103, 68, 118, 71, 57, 55, 59, 84, 80, 70, 58, 58, 64, 61, 66, 71, 70, 92, 73, 70, 58, 75, 76, 55, 74, 82, 59, 55, 71, 70, 56, 65, 90, 83, 62, 54, 77, 51, 58, 67, 62, 57, 54, 79, 66, 60, 128, 67, 53, 90, 84, 114, 48, 65, 46, 54, 78, 95, 66, 63, 81, 52, 70, 68, 67, 83, 43, 154, 68, 71, 65, 82, 105, 65, 68, 85, 51, 51, 33, 64, 68, 55, 53, 56, 71, 36, 65, 61, 52, 53, 54, 65, 87, 72, 68, 61, 77, 63, 60, 70, 60, 46, 147, 55, 46, 84, 92, 67, 70, 61, 55, 59, 69, 74, 117, 48, 62, 46, 76, 99, 58, 48, 58, 57, 67, 70, 69, 82, 90, 51, 47, 92, 75, 71, 89, 53, 61, 51, 66, 54, 62, 57, 53, 89, 54, 84, 62, 55, 51, 93, 53, 103, 114, 60, 91, 57, 91, 58, 49, 55, 52, 53, 65, 45, 68, 63, 45, 68, 56, 61, 63, 59, 49, 54, 57, 75, 79, 61, 40, 74, 82, 64, 102, 51, 59, 84, 74, 56, 56, 69, 77, 65, 55, 65, 57, 66, 73, 74, 33, 63, 82, 52, 88, 73, 80, 63, 81, 53, 72, 94, 48, 92, 56, 41, 80, 45, 81, 39, 61, 45, 80, 68, 63, 68, 47, 58, 67, 56, 50, 53, 34, 101, 81, 72, 50, 80, 74, 69, 55, 80, 72, 63, 92, 40, 49, 50, 64, 70, 79, 63, 72, 103, 116, 68, 55, 63, 78, 76, 70, 60, 59, 73, 81, 67, 79, 69, 76, 98, 56, 37, 93, 66, 70, 66, 74, 89, 81, 57, 79, 42, 89, 68, 104, 48, 56, 52, 58, 36, 46, 57, 63, 48, 91, 66, 25, 64, 62, 97, 84, 84, 53, 88, 69, 70, 56, 83, 85, 62, 54, 86, 77, 50, 58, 104, 48, 83, 50, 67, 29, 59, 59, 62, 86, 68, 38, 67, 61, 48, 42, 53, 59, 60, 58, 79, 48, 58, 87, 60, 118, 60, 58, 71, 59, 58, 78, 67, 63, 110, 50, 35, 52, 26, 61, 64, 47, 70, 71, 109, 68, 45, 67, 119, 85, 53, 51, 47, 48, 51, 41, 53, 84, 41, 84, 83, 108, 78, 75, 67, 56, 66, 72, 82, 44, 132, 85, 73, 74, 53, 55, 77, 123, 63, 68, 72, 68, 56, 82, 59, 70, 92, 53, 47, 89, 63, 84, 54, 43, 47, 73, 62, 50, 64, 85, 46, 78, 41, 48, 70, 60, 64, 48, 71, 59, 49, 102, 88, 51, 95, 60, 65, 66, 82, 81, 58, 61, 62, 78, 57, 62, 47, 52, 78, 86, 46, 81, 59, 65, 67, 66, 65, 93, 44, 69, 63, 78, 35, 43, 54, 46, 50, 60, 64, 28, 63, 82, 65, 71, 78, 62, 78, 61, 57, 69, 66, 60, 58, 54, 75, 56, 67, 66, 54, 77, 99, 53, 72, 83, 42, 41, 40, 74, 82, 61, 84, 79, 61, 59, 58, 67, 53, 68, 61, 82, 85, 63, 72, 63, 99, 59, 47, 61, 50, 87, 78, 95, 102, 51, 52, 52, 88, 93, 110, 70, 50, 53, 91, 66, 52, 50, 143, 78, 67, 40, 86, 71, 62, 95, 81, 58, 47, 56, 56, 55, 79, 70, 60, 51, 62, 43, 54, 59, 77, 73, 78, 43, 83, 69, 66, 60, 47, 62, 93, 61, 77, 61, 43, 86, 50, 91, 65, 64, 74, 81, 42, 72, 77, 75, 58, 99, 47, 56, 46, 65, 63, 60, 61, 75, 77, 75, 54, 68, 52, 85, 57, 87, 43, 52, 44, 62, 53, 37, 93, 73, 100, 58, 40, 51, 69, 70, 47, 54, 86, 62, 57, 69, 74, 66, 53, 78, 83, 51, 62, 60, 51, 62, 78, 96, 41, 54, 36, 88, 63, 73, 72, 59, 62, 99, 84, 52, 49, 70, 58, 41, 62, 139, 37, 64, 83, 87, 60, 60, 67, 57, 50, 52, 63, 64, 63, 62, 93, 91, 115, 84, 51, 83, 52, 59, 68, 58, 58, 63, 75, 40, 74, 73, 68, 62, 64, 90, 55, 49, 32, 72, 58, 70, 56, 62, 63, 63, 49, 50, 47, 51, 56, 63, 75, 49, 76, 52, 56, 90, 52, 46, 76, 76, 46, 53, 43, 58, 90, 82, 49, 73, 79, 71, 84, 66, 67, 132, 46, 69, 77, 65, 45, 65, 78, 49, 76, 41, 59, 33, 69, 75, 52, 43, 43, 56, 99, 47, 58, 118, 64, 61, 29, 73, 73, 94, 79, 58, 104, 40, 62, 45, 44, 88, 68, 67, 152, 47, 133, 63, 74, 67, 109, 78, 47, 48, 49, 60, 88, 95, 65, 51, 74, 39, 64, 69, 55, 57, 68, 57, 47, 70, 64, 54, 63, 54, 57, 105, 62, 61, 76, 95, 60, 53, 78, 74, 52, 61, 61, 74, 72, 48, 60, 68, 81, 55, 64, 58, 62, 81, 67, 59, 57, 70, 56, 66, 67, 63, 66, 97, 61, 59, 67, 47, 55, 84, 71, 101, 95, 56, 84, 65, 77, 70, 61, 65, 48, 60, 75, 70, 51, 70, 64, 74, 78, 76, 66, 77, 63, 74, 61, 66, 49, 69, 62, 57, 57, 94, 74, 68, 50, 57, 70, 45, 53, 77, 62, 70, 55, 67, 73, 46, 58, 56, 89, 65, 59, 71, 57, 65, 71, 57, 52, 55, 50, 49, 53, 63, 61, 75, 58, 66, 47, 64, 77, 82, 73, 82, 59, 72, 65, 52, 75, 56, 68, 67, 41, 58, 61, 55, 58, 56, 62, 61, 55, 74, 54, 66, 57, 63, 66, 62, 63, 87, 45, 47, 65, 68, 63, 58, 61, 69, 72, 55, 75, 84, 69, 53, 59, 59, 68, 66, 51, 64, 67, 85, 66, 62, 80, 76, 50, 89, 64, 61, 72, 52, 71, 44, 75, 53, 68, 117, 53, 74, 60, 77, 64, 53, 56, 49, 61, 65, 63, 72, 62, 74, 71, 65, 53, 46, 70, 88, 93, 56, 63, 55, 68, 52, 88, 89, 59, 60, 63, 59, 66, 56, 65, 56, 58, 61, 46, 77, 63, 76, 57, 68, 50, 70, 76, 62, 54, 57, 61, 48, 73, 81, 58, 49, 61, 57, 66, 97, 52, 62, 54, 48, 52, 65, 68, 81, 66, 53, 111, 75, 66, 58, 58, 93, 65, 53, 59, 66, 46, 51, 45, 63, 138, 61, 61, 68, 66, 69, 85, 57, 68, 59, 65, 117, 82, 51, 68, 68, 68, 61, 73, 67, 71, 69, 79, 56, 63, 81, 66, 64, 70, 69, 55, 130, 61, 62, 74, 65, 56, 78, 72, 50, 79, 56, 49, 62, 59, 72, 58, 71, 50, 58, 48, 69, 70, 65, 59, 66, 65, 70, 74, 73, 49, 67, 68, 62, 75, 56, 65, 41, 71, 54, 73, 52, 57, 80, 76, 60, 80, 75, 64, 68, 71, 57, 60, 56, 59, 70, 54, 74, 58, 64, 62, 57, 66, 94, 58, 118, 56, 69, 44, 71, 52, 65, 66, 64, 69, 78, 62, 58, 63, 62, 77, 82, 55, 113, 57, 64, 63, 55, 54, 72, 76, 67, 55, 50, 54, 65, 57, 61, 61, 71, 57, 55, 66, 73, 50, 80, 96, 56, 81, 79, 69, 71, 59, 46, 66, 63, 72, 61, 63, 62, 51, 67, 67, 105, 80, 63, 55, 63, 70, 65, 61, 68, 80, 61, 57, 61, 90, 69, 66, 57, 61, 55, 73, 68, 63, 52, 69, 53, 70, 62, 92, 87, 62, 67, 69, 37, 62, 65, 72, 83, 49, 110, 78, 44, 62, 39, 68, 90, 74, 46, 70, 72, 53, 72, 69, 63, 47, 68, 60, 61, 64, 74, 61, 61, 66, 67, 55, 58, 48, 94, 66, 69, 85, 81, 63, 54, 72, 98, 67, 55, 53, 50, 62, 74, 70, 63, 68, 66, 63, 62, 72, 67, 76, 53, 60, 83, 66, 44, 72, 50, 72, 46, 81, 65, 83, 68, 57, 61, 53, 71, 76, 72, 72, 69, 54, 75, 54, 55, 61, 73, 71, 60, 56, 60, 76, 70, 48, 50, 58, 63, 59, 59, 67, 68, 70, 57, 80, 58, 62, 69, 46, 54, 79, 53, 107, 47, 88, 54, 57, 81, 52, 55, 65, 56, 68, 56, 55, 69, 56, 53, 60, 60, 92, 62, 62, 52, 71, 67, 56, 87, 67, 147, 88, 56, 84, 54, 57, 138, 65, 97, 77, 95, 64, 48, 66, 71, 86, 112, 55, 84, 76, 87, 77, 58, 69, 72, 62, 66, 61, 81, 69, 54, 59, 151, 51, 61, 105, 47, 75, 41, 56, 75, 81, 65, 57, 49, 64, 92, 62, 56, 76, 74, 58, 98, 68, 54, 66, 74, 59, 65, 82, 68, 64, 71, 63, 94, 61, 68, 74, 80, 70, 67, 74, 84, 61, 64, 68, 62, 62, 67, 56, 66, 85, 98, 71, 55, 82, 73, 54, 79, 70, 51, 60, 63, 74, 51, 61, 67, 83, 69, 58, 80, 55, 60, 60, 50, 41, 50, 79, 53, 59, 63, 63, 79, 62, 69, 68, 79, 59, 69, 89, 55, 72, 87, 68, 61, 60, 73, 61, 75, 64, 53, 69, 60, 65, 61, 70, 69, 73, 71, 53, 58, 63, 58, 77, 62, 55, 56, 60, 63, 57, 49, 67, 61, 41, 66, 57, 73, 84, 82, 56, 66, 63, 91, 56, 38, 51, 74, 56, 84, 58, 70, 58, 93, 56, 61, 59, 56, 70, 64, 63, 62, 51, 55, 67, 65, 66, 69, 58, 60, 80, 51, 66, 70, 70, 124, 117, 58, 61, 64, 63, 55, 54, 72, 59, 57, 67, 75, 94, 66, 57, 64, 61, 59, 95, 63, 81, 55, 57, 68, 75, 64, 51, 68, 79, 59, 61, 62, 58, 66, 62, 54, 75, 94, 61, 67, 68, 66, 60, 76, 77, 67, 63, 98, 60, 64, 62, 53, 57, 99, 59, 85, 83, 83, 56, 72, 69, 57, 51, 112, 55, 68, 58, 73, 71, 67, 49, 36, 71, 57, 58, 65, 64, 42, 53, 69, 64, 54, 55, 62, 59, 89, 84, 70, 65, 82, 63, 61, 55, 92, 95, 58, 55, 51, 45, 51, 57, 76, 56, 55, 68, 60, 50, 57, 40, 57, 62, 77, 56, 65, 62, 62, 59, 73, 54, 55, 76, 57, 62, 65, 71, 64, 55, 77, 74, 70, 58, 65, 68, 52, 63, 64, 53, 56, 66, 69, 75, 52, 94, 93, 67, 66, 64, 63, 69, 52, 69, 61, 52, 47, 53, 61, 75, 62, 50, 64, 68, 75, 64, 81, 51, 83, 55, 69, 68, 70, 67, 67, 82, 48, 64, 73, 80, 58, 59, 67, 77, 72, 77, 82, 61, 51, 59, 69, 70, 68, 60, 68, 45, 67, 60, 64, 50, 59, 78, 83, 62, 66, 53, 48, 59, 57, 67, 85, 66, 50, 67, 71, 53, 72, 64, 78, 70, 55, 78, 63, 69, 52, 137, 43, 70, 81, 49, 49, 83, 44, 67, 67, 113, 52, 58, 57, 78, 64, 80, 55, 71, 49, 55, 71, 49, 58, 74, 69, 54, 87, 84, 64, 73, 58, 48, 60, 69, 63, 62, 65, 62, 64, 74, 69, 62, 43, 59, 81, 60, 83, 52, 65, 57, 79, 60, 67, 94, 61, 77, 53, 72, 61, 64, 48, 51, 69, 65, 55, 42, 61, 64, 77, 61, 59, 86, 52, 47, 52, 70, 72, 60, 79, 72, 49, 58, 96, 63, 56, 64, 77, 43, 57, 69, 56, 64, 70, 71, 81, 44, 79, 54, 68, 62, 64, 52, 74, 62, 65, 65, 58, 69, 62, 61, 72, 103, 84, 52, 65, 61, 69, 48, 57, 58, 93, 79, 49, 68, 75, 53, 70, 68, 55, 65, 54, 67, 72, 64, 65, 58, 124, 59, 77, 50, 110, 67, 59, 69, 90, 68, 49, 86, 56, 83, 67, 78, 70, 67, 52, 51, 80, 59, 63, 69, 58, 65, 67, 89, 58, 60, 57, 72, 76, 67, 64, 91, 69, 77, 66, 46, 54, 64, 53, 53, 63, 63, 57, 67, 75, 54, 55, 76, 68, 57, 70, 58, 65, 68, 76, 83, 49, 68, 64, 61, 73, 66, 70, 75, 75, 58, 74, 78, 65, 64, 56, 79, 57, 51, 73, 50, 60, 57, 58, 80, 55, 63, 57, 54, 50, 63, 65, 73, 65, 60, 71, 65, 74, 77, 122, 77, 75, 63, 53, 45, 69, 63, 76, 63, 62, 50, 78, 86, 54, 84, 100, 73, 89, 75, 63, 59, 79, 68, 48, 71, 48, 64, 116, 69, 91, 63, 67, 69, 62, 54, 53, 54, 68, 52, 63, 50, 57, 57, 74, 64, 64, 51, 65, 99, 58, 71, 65, 69, 63, 59, 51, 81, 80, 69, 60, 55, 53, 88, 67, 70, 55, 60, 58, 46, 61, 54, 60, 54, 61, 60, 64, 59, 71, 58, 138, 59, 76, 54, 53, 70, 53, 66, 63, 62, 75, 60, 53, 70, 61, 58, 54, 57, 61, 55, 55, 70, 78, 69, 54, 74, 60, 57, 93, 66, 59, 52, 61, 63, 60, 56, 93, 65, 62, 58, 50, 72, 72, 95, 70, 120, 54, 65, 60, 56, 79, 65, 78, 69, 66, 62, 59, 80, 67, 63, 72, 65, 46, 76, 67, 54, 58, 77, 69, 42, 62, 57, 52, 83, 70, 71, 87, 61, 67, 57, 66, 64, 45, 46, 69, 74, 69, 68, 75, 67, 87, 46, 81, 58, 80, 59, 72, 63, 66, 69, 67, 62, 58, 69, 77, 66, 73, 45, 65, 68, 57, 70, 66, 58, 61, 58, 76, 59, 62, 65, 55, 54, 63, 55, 58, 68, 70, 77, 63, 79, 54, 58, 71, 74, 69, 57, 70, 52, 57, 86, 66, 70, 68, 58, 53, 65, 69, 83, 50, 56, 84, 62, 61, 64, 55, 51, 67, 86, 65, 68, 54, 73, 59, 65, 83, 55, 95, 68, 62, 64, 55, 48, 63, 71, 60, 69, 68, 55, 64, 77, 67, 59, 63, 85, 61, 66, 67, 44, 41, 63, 54, 57, 59, 89, 56, 65, 76, 65, 67, 64, 61, 66, 67, 63, 57, 62, 49, 67, 69, 56, 61, 92, 76, 56, 60, 71, 80, 70, 65, 69, 75, 79, 57, 74, 61, 66, 66, 69, 69, 56, 52, 67, 73, 60, 71, 79, 35, 66, 65, 60, 58, 47, 57, 69, 63, 66, 82, 61, 79, 62, 55, 65, 60, 72, 79, 76, 65, 57, 64, 82, 60, 73, 46, 58, 65, 58, 70, 66, 63, 64, 65, 45, 58, 70, 59, 46, 69, 55, 65, 125, 66, 81, 49, 70, 58, 66, 56, 49, 60, 57, 60, 72, 62, 55, 52, 54, 80, 66, 78, 56, 57, 54, 60, 59, 67, 85, 63, 64, 76, 69, 63, 54, 68, 70, 61, 77, 62, 73, 106, 71, 61, 53, 86, 78, 60, 71, 54, 64, 62, 46, 71, 88, 78, 63, 103, 49, 72, 50, 51, 60, 60, 47, 76, 65, 73, 60, 78, 58, 63, 88, 75, 67, 69, 50, 93, 68, 57, 72, 58, 68, 62, 58, 63, 60, 54, 68, 42, 45, 76, 111, 68, 75, 66, 68, 69, 54, 84, 89, 65, 66, 64, 89, 67, 68, 65, 74, 81, 72, 60, 108, 76, 67, 63, 47, 61, 76, 62, 58, 64, 45, 71, 75, 63, 74, 78, 59, 59, 58, 67, 68, 61, 73, 65, 65, 76, 62, 83, 62, 83, 61, 62, 68, 54, 66, 71, 71, 66, 64, 59, 69, 65, 71, 67, 77, 64, 61, 66, 67, 63, 76, 62, 66, 56, 63, 65, 62, 58, 60, 58, 94, 66, 53, 88, 61, 57, 68, 63, 64, 71, 79, 67, 67, 62, 67, 58, 73, 52, 50, 62, 74, 57, 84, 66, 63, 59, 71, 66, 57, 69, 60, 65, 59, 58, 49, 74, 69, 70, 72, 67, 68, 53, 70, 104, 63, 74, 60, 65, 56, 62, 73, 68, 54, 70, 116, 80, 53, 75, 72, 62, 58, 72, 88, 47, 79, 93, 57, 58, 71, 67, 59, 72, 67, 48, 66, 70, 60, 78, 68, 71, 54, 60, 49, 71, 64, 58, 69, 77, 51, 71, 65, 59, 67, 65, 62, 71, 66, 67, 61, 54, 64, 78, 61, 88, 65, 60, 55, 56, 69, 76, 105, 87, 74, 63, 91, 60, 59, 66, 62, 60, 50, 70, 103, 78, 77, 56, 73, 76, 80, 58, 68, 67, 72, 49, 87, 66, 71, 66, 60, 81, 77, 46, 66, 59, 66, 71, 58, 85, 97, 62, 65, 95, 56, 84, 50, 44, 58, 73, 69, 54, 60, 61, 72, 64, 42, 54, 56, 68, 72, 61, 66, 52, 67, 74, 70, 64, 75, 50, 77, 71, 66, 56, 56, 64, 60, 61, 74, 56, 54, 77, 71, 56, 84, 76, 75, 70, 77, 75, 58, 76, 74, 94, 92, 68, 61, 63, 51, 63, 60, 55, 78, 66, 63, 74, 55, 65, 56, 83, 69, 55, 64, 87, 70, 60, 65, 66, 71, 60, 53, 60, 67, 82, 78, 62, 71, 42, 61, 74, 80, 62, 71, 51, 50, 44, 48, 69, 62, 131, 68, 44, 69, 60, 70, 55, 73, 77, 78, 82, 68, 45, 77, 53, 70, 80, 68, 59, 56, 79, 70, 57, 65, 59, 50, 60, 70, 62, 33, 62, 74, 61, 96, 49, 78, 42, 58, 71, 60, 114, 48, 43, 61, 60, 56, 62, 72, 85, 67, 77, 60, 62, 67, 69, 69, 54, 59, 72, 74, 87, 55, 69, 58, 88, 92, 65, 79, 69, 54, 62, 65, 61, 62, 62, 92, 56, 107, 49, 63, 70, 67, 67, 52, 51, 63, 91, 72, 59, 61, 59, 53, 67, 92, 63, 54, 51, 60, 63, 99, 59, 60, 58, 63, 56, 52, 52, 82, 52, 105, 64, 69, 52, 94, 71, 55, 67, 63, 73, 60, 63, 56, 62, 65, 55, 35, 64, 57, 55, 74, 63, 46, 57, 76, 59, 52, 67, 53, 64, 71, 55, 57, 76, 47, 44, 60, 57, 85, 53, 87, 76, 56, 70, 65, 84, 66, 76, 61, 62, 63, 82, 47, 49, 66, 84, 53, 69, 67, 65, 63, 68, 59, 65, 62, 69, 59, 90, 56, 60, 67, 41, 61, 87, 62, 58, 60, 94, 87, 65, 90, 75, 61, 67, 103, 58, 70, 59, 58, 86, 63, 62, 54, 63, 66, 66, 63, 88, 48, 87, 63, 84, 57, 54, 53, 71, 62, 53, 57, 58, 55, 64, 65, 68, 58, 59, 49, 56, 73, 66, 61, 54, 44, 63, 62, 59, 57, 58, 56, 58, 78, 66, 59, 72, 58, 51, 72, 69, 71, 62, 57, 82, 59, 65, 71, 57, 61, 66, 60, 56, 71, 71, 55, 55, 67, 96, 78, 69, 76, 73, 61, 47, 40, 60, 60, 78, 55, 61, 49, 52, 61, 59, 52, 57, 64, 57, 40, 75, 58, 56, 91, 74, 66, 56, 74, 47, 74, 57, 66, 63, 42, 81, 79, 59, 63, 71, 66, 81, 55, 74, 103, 95, 74, 70, 48, 49, 64, 55, 67, 60, 70, 64, 65, 89, 49, 76, 60, 83, 89, 61, 51, 56, 66, 83, 70, 59, 68, 47, 62, 59, 74, 69, 59, 84, 54, 64, 70, 65, 107, 50, 47, 60, 56, 63, 75, 56, 90, 57, 61, 97, 50, 68, 59, 69, 58, 41, 71, 84, 82, 75, 64, 51, 61, 85, 66, 56, 65, 75, 65, 64, 79, 98, 54, 58, 54, 81, 58, 74, 70, 64, 56, 80, 50, 70, 71, 61, 61, 70, 61, 64, 81, 54, 62, 70, 71, 62, 57, 59, 74, 72, 62, 80, 109, 71, 54, 61, 70, 61, 79, 64, 67, 56, 66, 60, 62, 60, 69, 59, 59, 58, 101, 64, 46, 67, 68, 52, 74, 60, 53, 60, 61, 67, 79, 77, 61, 58, 63, 62, 57, 60, 58, 70, 58, 73, 50, 67, 63, 80, 56, 57, 57, 60, 57, 82, 60, 57, 58, 67, 58, 66, 52, 51, 61, 59, 77, 57, 70, 87, 73, 53, 80, 45, 58, 69, 97, 74, 67, 60, 75, 61, 52, 56, 68, 67, 65, 53, 61, 60, 64, 63, 57, 59, 70, 50, 65, 57, 56, 51, 57, 70, 60, 84, 56, 54, 59, 55, 61, 49, 57, 63, 64, 65, 62, 55, 59, 62, 52, 62, 66, 70, 49, 57, 75, 69, 68, 57, 115, 59, 48, 74, 61, 66, 55, 56, 64, 65, 64, 66, 62, 76, 63, 57, 64, 43, 60, 77, 60, 45, 107, 64, 61, 65, 78, 58, 66, 65, 57, 66, 44, 75, 51, 73, 61, 53, 119, 78, 59, 72, 64, 57, 62, 60, 72, 57, 65, 75, 90, 92, 64, 72, 89, 52, 54, 56, 56, 52, 72, 66, 70, 73, 66, 65, 72, 65, 64, 42, 69, 67, 55, 91, 68, 57, 60, 53, 46, 77, 61, 67, 51, 69, 52, 75, 74, 68, 77, 60, 59, 72, 57, 61, 68, 62, 49, 44, 83, 53, 68, 64, 62, 60, 68, 98, 59, 65, 72, 63, 84, 49, 55, 71, 59, 79, 64, 80, 63, 75, 44, 64, 58, 65, 63, 51, 93, 69, 54, 59, 97, 66, 58, 62, 83, 69, 68, 75, 68, 80, 75, 64, 56, 59, 46, 78, 59, 63, 58, 123, 73, 69, 69, 70, 70, 57, 88, 73, 55, 55, 62, 65, 56, 107, 58, 51, 47, 75, 64, 52, 83, 51, 56, 60, 65, 59, 109, 64, 66, 57, 52, 58, 97, 66, 63, 50, 92, 49, 90, 66, 66, 83, 63, 72, 68, 60, 59, 62, 65, 73, 59, 49, 78, 39, 73, 82, 57, 70, 72, 52, 65, 85, 77, 49, 53, 71, 53, 72, 78, 63, 72, 55, 59, 51, 87, 69, 57, 66, 67, 56, 68, 62, 64, 52, 62, 69, 42, 60, 58, 81, 67, 52, 114, 95, 101, 60, 62, 68, 68, 96, 56, 55, 84, 56, 67, 54, 64, 50, 67, 41, 57, 79, 57, 62, 68, 82, 72, 54, 54, 78, 61, 42, 65, 53, 94, 56, 68, 73, 85, 59, 80, 61, 66, 79, 61, 61, 74, 58, 61, 48, 57, 65, 83, 76, 62, 59, 118, 53, 69, 63, 59, 53, 69, 81, 57, 74, 65, 58, 56, 62, 58, 80, 85, 54, 70, 88, 56, 64, 59, 63, 63, 52, 49, 90, 67, 90, 70, 63, 64, 63, 69, 53, 64, 61, 64, 55, 56, 100, 67, 67, 51, 61, 59, 64, 76, 118, 67, 74, 50, 65, 86, 51, 72, 65, 60, 60, 72, 61, 47, 52, 57, 59, 69, 67, 79, 79, 54, 65, 73, 74, 69, 52, 60, 65, 67, 142, 72, 61, 62, 61, 56, 57, 67, 61, 59, 66, 57, 58, 70, 57, 51, 91, 62, 51, 74, 65, 68, 83, 70, 85, 52, 63, 63, 69, 68, 60, 60, 103, 60, 93, 64, 64, 59, 69, 69, 46, 62, 68, 60, 87, 72, 59, 64, 83, 105, 64, 66, 74, 61, 53, 55, 49, 59, 70, 58, 64, 64, 69, 57, 59, 106, 57, 83, 101, 58, 48, 52, 52, 86, 77, 63, 64, 59, 74, 70, 67, 103, 67, 49, 54, 84, 84, 90, 93, 54, 66, 73, 79, 59, 76, 63, 69, 66, 52, 62, 64, 66, 74, 80, 51, 73, 62, 69, 82, 71, 68, 64, 56, 62, 80, 73, 98, 117, 63, 83, 60, 67, 63, 56, 61, 65, 64, 79, 59, 65, 60, 92, 79, 69, 75, 67, 76, 87, 73, 48, 93, 69, 68, 73, 62, 66, 58, 75, 77, 71, 73, 81, 72, 63, 50, 44, 54, 49, 55, 48, 68, 66, 58, 65, 82, 64, 73, 72, 62, 72, 60, 56, 82, 88, 53, 64, 83, 60, 65, 70, 76, 56, 60, 66, 59, 80, 50, 66, 73, 60, 72, 106, 84, 80, 110, 68, 60, 64, 78, 100, 65, 58, 73, 77, 62, 63, 67, 71, 50, 79, 76, 46, 55, 70, 57, 69, 64, 47, 62, 77, 61, 75, 87, 67, 68, 70, 48, 64, 49, 58, 80, 102, 66, 56, 59, 52, 59, 62, 88, 60, 71, 58, 54, 66, 43, 35, 71, 39, 66, 56, 47, 70, 75, 70, 68, 64, 68, 83, 63, 58, 104, 88, 57, 76, 70, 64, 55, 69, 82, 67, 89, 48, 78, 54, 63, 85, 81, 62, 47, 61, 51, 72, 53, 76, 67, 64, 53, 67, 59, 65, 58, 61, 73, 73, 62, 66, 43, 75, 59, 61, 66, 59, 72, 74, 82, 59, 69, 55, 61, 58, 83, 51, 80, 62, 73, 70, 71, 40, 69, 73, 67, 55, 61, 60, 63, 43, 62, 50, 55, 51, 45, 87, 66, 66, 65, 100, 66, 61, 54, 75, 58, 77, 48, 59, 63, 102, 83, 58, 74, 58, 95, 69, 62, 55, 64, 66, 56, 57, 70, 78, 46, 59, 59, 65, 40, 59, 63, 61, 50, 85, 83, 83, 70, 50, 88, 74, 66, 64, 61, 53, 58, 54, 59, 70, 75, 71, 72, 65, 64, 56, 67, 72, 70, 63, 49, 65, 46, 59, 72, 66, 63, 69, 64, 55, 52, 81, 92, 65, 57, 54, 52, 70, 55, 84, 55, 72, 58, 72, 50, 82, 62, 64, 57, 77, 122, 73, 74, 55, 54, 86, 64, 75, 66, 83, 77, 62, 56, 60, 64, 76, 63, 60, 49, 62, 68, 53, 58, 67, 47, 51, 51, 76, 48, 44, 63, 78, 54, 66, 63, 68, 74, 60, 80, 57, 74, 63, 59, 65, 81, 55, 57, 70, 55, 37, 73, 78, 52, 60, 59, 65, 77, 71, 61, 68, 78, 64, 66, 55, 59, 63, 64, 46, 51, 76, 51, 50, 70, 72, 73, 62, 62, 69, 53, 79, 61, 59, 49, 78, 80, 59, 84, 101, 68, 84, 88, 60, 80, 61, 64, 53, 96, 62, 72, 63, 64, 74, 84, 64, 73, 84, 52, 38, 59, 67, 74, 61, 56, 59, 84, 72, 58, 59, 75, 59, 58, 77, 72, 59, 65, 69, 53, 81, 65, 64, 111, 69, 53, 68, 54, 83, 60, 64, 58, 52, 54, 86, 71, 64, 51, 63, 60, 59, 65, 52, 71, 71, 77, 87, 83, 62, 63, 58, 67, 55, 64, 69, 81, 64, 59, 71, 71, 71, 56, 55, 77, 51, 62, 74, 72, 59, 69, 65, 69, 69, 54, 74, 65, 86, 50, 62, 73, 62, 60, 58, 49, 70, 58, 72, 66, 49, 75, 79, 71, 80, 114, 55, 60, 68, 62, 73, 65, 74, 67, 51, 66, 85, 76, 68, 56, 56, 74, 79, 38, 53, 59, 80, 73, 54, 70, 83, 63, 65, 73, 54, 70, 55, 68, 54, 47, 63, 63, 71, 41, 64, 67, 73, 78, 65, 53, 69, 62, 71, 73, 80, 70, 71, 50, 68, 63, 88, 70, 66, 48, 45, 65, 67, 49, 46, 71, 53, 68, 54, 49, 49, 53, 90, 69, 98, 75, 77, 80, 63, 76, 79, 59, 67, 77, 65, 74, 60, 84, 61, 61, 50, 59, 79, 52, 102, 82, 64, 92, 54, 84, 62, 59, 74, 51, 52, 77, 59, 56, 59, 68, 60, 61, 58, 65, 59, 53, 65, 54, 48, 54, 70, 46, 80, 45, 69, 62, 74, 54, 58, 66, 55, 62, 89, 67, 66, 65, 63, 62, 60, 64, 70, 51, 89, 75, 64, 52, 63, 67, 59, 44, 61, 58, 47, 91, 78, 44, 53, 57, 54, 61, 66, 67, 64, 87, 63, 52, 80, 59, 72, 56, 61, 76, 64, 68, 61, 54, 74, 62, 68, 57, 61, 77, 100, 50, 58, 63, 62, 75, 71, 54, 63, 70, 66, 63, 57, 58, 49, 67, 57, 63, 63, 57, 76, 92, 78, 54, 86, 82, 77, 68, 82, 79, 56, 65, 64, 45, 61, 61, 87, 73, 52, 35, 73, 78, 60, 83, 69, 76, 81, 68, 55, 62, 65, 45, 53, 73, 75, 37, 70, 79, 58, 62, 65, 59, 111, 64, 55, 75, 74, 58, 61, 66, 79, 75, 57, 55, 49, 56, 72, 67, 103, 81, 57, 72, 81, 77, 51, 78, 84, 59, 65, 53, 72, 51, 75, 60, 57, 74, 68, 59, 59, 72, 44, 69, 55, 63, 60, 81, 61, 58, 46, 67, 69, 58, 67, 52, 68, 64, 61, 66, 72, 78, 70, 83, 72, 67, 50, 52, 48, 46, 51, 68, 47, 82, 66, 51, 81, 117, 76, 51, 80, 61, 104, 77, 62, 63, 65, 73, 66, 98, 70, 29, 63, 68, 70, 54, 57, 76, 65, 69, 65, 201, 60, 84, 50, 50, 49, 56, 76, 64, 71, 64, 68, 65, 87, 55, 67, 78, 49, 48, 72, 65, 82, 79, 61, 69, 64, 65, 74, 68, 89, 60, 70, 44, 56, 74, 68, 58, 70, 60, 64, 66, 103, 78, 60, 64, 54, 49, 67, 73, 62, 66, 54, 43, 80, 59, 68, 38, 55, 57, 90, 70, 58, 64, 68, 69, 58, 79, 87, 62, 63, 83, 73, 78, 85, 66, 76, 86, 69, 52, 56, 46, 50, 69, 59, 65, 54, 69, 70, 69, 63, 68, 64, 57, 87, 77, 71, 40, 81, 55, 84, 65, 59, 59, 98, 76, 59, 53, 47, 66, 57, 59, 61, 69, 49, 80, 77, 60, 45, 76, 75, 56, 65, 75, 86, 67, 84, 76, 64, 48, 56, 64, 85, 51, 105, 61, 57, 79, 64, 53, 81, 56, 60, 58, 76, 77, 69, 40, 66, 59, 66, 81, 106, 66, 67, 56, 62, 76, 73, 68, 50, 68, 50, 84, 63, 43, 52, 58, 61, 59, 61, 79, 50, 71, 62, 54, 98, 55, 83, 82, 50, 59, 77, 73, 67, 68, 70, 52, 82, 58, 96, 66, 68, 68, 83, 76, 82, 64, 85, 75, 70, 79, 53, 61, 69, 79, 58, 69, 48, 114, 53, 70, 75, 63, 69, 49, 66, 56, 71, 72, 70, 82, 71, 72, 50, 48, 50, 92, 55, 79, 60, 47, 74, 73, 62, 92, 49, 100, 57, 67, 68, 53, 77, 71, 73, 73, 52, 70, 68, 68, 62, 96, 80, 78, 60, 105, 53, 64, 70, 73, 51, 44, 72, 53, 100, 72, 84, 86, 72, 72, 81, 57, 64, 57, 66, 59, 63, 53, 49, 67, 62, 68, 63, 49, 59, 53, 88, 71, 52, 64, 61, 52, 63, 80, 67, 81, 61, 96, 61, 89, 70, 53, 75, 90, 85, 39, 73, 52, 68, 48, 61, 40, 70, 50, 69, 62, 83, 75, 55, 91, 57, 80, 103, 71, 52, 61, 76, 97, 63, 35, 74, 55, 46, 63, 86, 69, 70, 82, 47, 43, 47, 83, 50, 57, 80, 71, 46, 77, 49, 55, 66, 67, 62, 66, 49, 51, 68, 53, 60, 84, 76, 68, 93, 66, 65, 55, 75, 67, 62, 76, 55, 61, 64, 50, 82, 58, 66, 63, 62, 86, 63, 53, 75, 68, 72, 62, 75, 64, 96, 60, 67, 67, 52, 59, 75, 56, 68, 56, 38, 66, 46, 59, 65, 48, 64, 48, 78, 50, 58, 75, 91, 50, 84, 41, 57, 63, 61, 38, 95, 53, 77, 42, 94, 64, 67, 68, 43, 57, 55, 52, 86, 54, 66, 49, 44, 48, 67, 40, 81, 50, 65, 78, 73, 49, 55, 56, 78, 65, 50, 58, 48, 74, 49, 62, 47, 60, 98, 80, 64, 119, 67, 62, 59, 44, 70, 74, 75, 96, 64, 59, 75, 58, 68, 71, 79, 64, 67, 44, 77, 57, 86, 83, 49, 67, 86, 65, 72, 103, 43, 85, 79, 97, 72, 49, 95, 58, 75, 83, 79, 66, 79, 87, 34, 71, 63, 77, 82, 40, 66, 63, 69, 48, 43, 49, 59, 73, 76, 66, 51, 71, 43, 50, 67, 63, 94, 57, 54, 70, 63, 55, 78, 62, 59, 65, 42, 63, 97, 49, 93, 37, 58, 82, 53, 107, 86, 118, 64, 68, 49, 48, 56, 61, 61, 72, 48, 53, 61, 79, 47, 48, 55, 57, 75, 104, 93, 65, 56, 62, 57, 94, 59, 60, 60, 41, 50, 60, 74, 55, 69, 46, 104, 63, 65, 71, 77, 88, 61, 68, 58, 56, 60, 61, 69, 52, 66, 58, 63, 56, 64, 69, 68, 58, 69, 85, 40, 60, 125, 66, 56, 72, 52, 73, 75, 82, 61, 68, 74, 73, 97, 59, 48, 56, 49, 82, 64, 54, 71, 51, 74, 52, 116, 77, 41, 54, 55, 64, 81, 61, 89, 75, 74, 65, 61, 61, 44, 80, 62, 62, 90, 90, 86, 56, 66, 52, 57, 49, 58, 71, 55, 77, 86, 58, 57, 49, 76, 49, 50, 44, 71, 84, 66, 62, 63, 94, 43, 55, 56, 71, 58, 76, 73, 74, 55, 85, 80, 68, 62, 82, 52, 68, 54, 36, 70, 52, 117, 68, 56, 50, 38, 40, 82, 58, 49, 58, 53, 60, 47, 62, 52, 60, 55, 63, 69, 44, 66, 80, 91, 63, 58, 90, 74, 69, 56, 66, 91, 63, 77, 68, 74, 64, 52, 64, 78, 70, 66, 62, 56, 99, 67, 62, 59, 64, 49, 54, 62, 62, 98, 65, 91, 84, 62, 58, 76, 51, 57, 76, 80, 60, 59, 60, 79, 68, 43, 60, 66, 51, 83, 75, 49, 75, 67, 94, 63, 62, 46, 61, 56, 75, 69, 63, 84, 106, 65, 56, 72, 69, 57, 71, 82, 56, 73, 46, 65, 64, 73, 66, 79, 89, 81, 68, 51, 66, 91, 67, 47, 56, 81, 62, 66, 67, 79, 84, 55, 67, 76, 47, 59, 57, 49, 76, 65, 63, 75, 55, 84, 74, 73, 68, 76, 54, 86, 67, 63, 66, 131, 63, 85, 52, 70, 78, 60, 49, 52, 73, 57, 42, 117, 59, 57, 62, 53, 119, 58, 48, 62, 45, 62, 85, 87, 55, 57, 59, 76, 56, 63, 70, 56, 58, 56, 78, 58, 69, 70, 54, 50, 133, 65, 74, 83, 80, 57, 53, 57, 64, 65, 56, 75, 65, 59, 87, 72, 82, 48, 65, 36, 73, 48, 57, 79, 57, 95, 76, 58, 112, 72, 61, 61, 65, 76, 47, 76, 51, 65, 74, 54, 65, 67, 62, 44, 68, 61, 77, 76, 71, 65, 59, 75, 74, 80, 92, 61, 98, 64, 99, 58, 76, 65, 73, 62, 95, 81, 83, 75, 55, 64, 48, 48, 67, 55, 64, 64, 74, 68, 78, 55, 62, 84, 81, 66, 50, 73, 58, 71, 90, 66, 84, 53, 57, 71, 53, 70, 91, 46, 48, 51, 37, 105, 49, 60, 90, 54, 68, 65, 72, 64, 84, 55, 83, 65, 48, 64, 67, 47, 56, 80, 65, 86, 57, 41, 59, 78, 53, 57, 62, 67, 60, 82, 64, 54, 80, 55, 110, 55, 72, 52, 92, 51, 75, 75, 50, 61, 59, 46, 69, 67, 56, 65, 56, 77, 67, 57, 50, 82, 50, 64, 67, 64, 81, 71, 101, 48, 53, 38, 66, 50, 70, 45, 77, 50, 65, 53, 51, 59, 49, 76, 55, 52, 57, 58, 63, 43, 89, 73, 67, 31, 73, 84, 62, 80, 52, 56, 67, 51, 76, 84, 82, 54, 75, 54, 62, 65, 40, 63, 42, 53, 53, 88, 74, 56, 109, 55, 89, 58, 68, 96, 69, 79, 84, 59, 94, 65, 55, 91, 82, 52, 65, 56, 45, 79, 80, 48, 59, 52, 60, 60, 64, 60, 66, 69, 73, 53, 57, 79, 86, 78, 66, 44, 59, 67, 55, 63, 59, 72, 87, 86, 84, 59, 61, 64, 76, 76, 68, 100, 64, 72, 72, 80, 82, 68, 81, 34, 53, 54, 70, 106, 63, 62, 62, 64, 52, 70, 50, 73, 47, 77, 73, 76, 64, 73, 97, 113, 69, 74, 75, 65, 61, 93, 74, 62, 58, 65, 58, 67, 87, 100, 46, 61, 63, 71, 81, 76, 91, 77, 56, 67, 65, 68, 56, 80, 70, 67, 67, 46, 56, 43, 54, 68, 80, 55, 55, 67, 70, 42, 56, 61, 83, 56, 105, 74, 112, 65, 90, 66, 54, 69, 68, 69, 59, 70, 46, 67, 72, 59, 65, 60, 89, 56, 88, 37, 74, 58, 77, 68, 81, 88, 55, 60, 70, 46, 55, 66, 71, 71, 94, 65, 84, 52, 77, 70, 65, 44, 16, 69, 58, 80, 78, 52, 56, 66, 69, 48, 78, 121, 69, 61, 129, 45, 61, 84, 108, 69, 77, 59, 84, 59, 51, 68, 43, 59, 57, 67, 60, 41, 75, 57, 68, 68, 63, 61, 56, 73, 57, 50, 53, 71, 54, 40, 70, 77, 74, 81, 58, 58, 91, 62, 88, 69, 71, 69, 89, 86, 72, 69, 88, 66, 55, 66, 76, 56, 59, 79, 69, 60, 59, 49, 80, 59, 49, 87, 72, 89, 104, 63, 69, 61, 62, 81, 59, 80, 76, 50, 76, 64, 47, 63, 48, 56, 55, 56, 73, 65, 59, 74, 57, 78, 61, 87, 75, 56, 51, 43, 46, 89, 74, 77, 53, 76, 45, 66, 60, 78, 53, 46, 64, 84, 77, 64, 63, 44, 37, 68, 49, 70, 62, 43, 65, 46, 61, 84, 70, 97, 71, 62, 70, 54, 71, 64, 107, 95, 60, 50, 77, 59, 63, 66, 45, 95, 75, 59, 52, 78, 40, 65, 73, 96, 66, 69, 64, 84, 45, 69, 47, 71, 65, 72, 50, 74, 46, 59, 58, 71, 79, 62, 57, 43, 50, 82, 54, 61, 69, 46, 65, 58, 83, 77, 62, 61, 65, 77, 57, 60, 64, 77, 72, 73, 74, 56, 70, 66, 53, 51, 58, 43, 80, 50, 64, 54, 57, 63, 73, 51, 77, 75, 73, 71, 92, 51, 74, 86, 78, 68, 66, 87, 69, 83, 99, 100, 75, 66, 58, 64, 50, 88, 95, 84, 74, 67, 42, 49, 73, 38, 79, 82, 48, 55, 72, 56, 62, 57, 63, 64, 70, 68, 60, 77, 56, 59, 59, 91, 43, 47, 59, 61, 66, 74, 78, 58, 64, 83, 137, 57, 82, 59, 74, 60, 80, 37, 65, 74, 79, 78, 47, 46, 47, 68, 51, 76, 60, 58, 82, 66, 78, 62, 56, 78, 79, 55, 90, 82, 54, 61, 70, 43, 80, 64, 65, 87, 93, 60, 66, 60, 58, 70, 42, 53, 78, 82, 90, 72, 55, 64, 63, 55, 49, 50, 64, 52, 73, 68, 90, 71, 49, 45, 61, 85, 58, 61, 60, 63, 75, 98, 60, 65, 69, 92, 57, 52, 67, 45, 77, 86, 51, 51, 49, 58, 79, 91, 74, 65, 60, 66, 63, 72, 68, 81, 57, 54, 66, 60, 61, 71, 75, 85, 56, 52, 69, 56, 64, 58, 77, 82, 66, 60, 65, 48, 72, 74, 66, 57, 58, 55, 95, 59, 51, 44, 67, 77, 70, 72, 66, 91, 75, 48, 77, 55, 42, 54, 59, 59, 73, 62, 63, 57, 69, 97, 75, 93, 61, 72, 59, 64, 65, 70, 56, 65, 93, 73, 63, 76, 88, 113, 87, 64, 38, 66, 69, 83, 66, 83, 84, 70, 66, 72, 81, 67, 79, 59, 55, 83, 123, 47, 68, 44, 67, 35, 57, 57, 60, 65, 77, 57, 53, 59, 68, 65, 82, 81, 46, 55, 43, 81, 50, 70, 80, 74, 46, 63, 69, 56, 56, 59, 72, 55, 67, 77, 85, 61, 58, 78, 53, 60, 117, 70, 61, 78, 57, 60, 93, 60, 53, 98, 58, 78, 55, 71, 63, 61, 74, 48, 62, 80, 33, 51, 39, 81, 70, 67, 71, 55, 53, 69, 91, 110, 61, 50, 86, 56, 64, 40, 81, 60, 74, 95, 39, 99, 72, 70, 89, 82, 72, 42, 60, 80, 61, 71, 66, 75, 89, 79, 152, 82, 74, 52, 60, 96, 51, 68, 51, 61, 47, 55, 71, 60, 68, 56, 73, 79, 71, 67, 90, 86, 55, 71, 86, 96, 65, 86, 35, 65, 65, 63, 51, 68, 77, 78, 67, 62, 90, 87, 85, 55, 96, 52, 67, 66, 64, 65, 64, 84, 69, 87, 57, 63, 84, 65, 81, 59, 73, 63, 60, 70, 74, 98, 51, 79, 68, 56, 78, 66, 49, 47, 54, 69, 59, 55, 51, 60, 88, 48, 67, 89, 53, 62, 64, 77, 60, 62, 62, 52, 56, 58, 57, 52, 51, 93, 79, 67, 68, 79, 62, 58, 72, 96, 96, 71, 60, 62, 87, 54, 60, 65, 58, 54, 45, 59, 50, 59, 63, 81, 72, 68, 86, 79, 59, 84, 55, 42, 55, 58, 62, 63, 79, 56, 75, 67, 86, 56, 100, 112, 69, 23, 72, 78, 59, 78, 98, 68, 62, 78, 76, 78, 78, 52, 78, 54, 64, 62, 95, 54, 64, 71, 54, 68, 67, 76, 66, 62, 48, 81, 58, 55, 70, 74, 42, 71, 70, 84, 71, 57, 38, 102, 63, 61, 68, 67, 77, 57, 70, 108, 88, 64, 82, 58, 73, 69, 53, 45, 69, 78, 72, 59, 41, 70, 71, 58, 49, 86, 57, 50, 70, 63, 54, 67, 52, 56, 66, 57, 53, 51, 52, 76, 52, 56, 53, 92, 52, 68, 63, 82, 54, 74, 54, 59, 54, 92, 79, 81, 77, 52, 61, 52, 61, 61, 90, 65, 59, 90, 46, 42, 84, 82, 73, 49, 70, 93, 52, 66, 36, 60, 87, 55, 59, 65, 62, 69, 87, 58, 55, 64, 78, 46, 85, 55, 49, 65, 41, 46, 65, 74, 65, 34, 58, 42, 67, 53, 50, 66, 61, 68, 48, 78, 96, 27, 49, 74, 54, 75, 109, 58, 55, 48, 73, 81, 82, 62, 52, 59, 71, 47, 51, 62, 66, 32, 70, 71, 69, 75, 54, 55, 63, 64, 83, 73, 85, 60, 65, 91, 78, 60, 79, 70, 79, 73, 66, 68, 90, 41, 62, 65, 81, 53, 51, 68, 99, 90, 77, 74, 85, 47, 64, 44, 87, 36, 56, 55, 78, 67, 65, 66, 57, 60, 56, 72, 81, 64, 74, 63, 36, 61, 72, 66, 81, 50, 52, 116, 77, 61, 48, 61, 73, 47, 78, 109, 92, 78, 79, 73, 52, 107, 65, 60, 74, 57, 47, 69, 68, 68, 47, 56, 64, 70, 64, 54, 57, 53, 71, 96, 51, 58, 62, 51, 70, 57, 78, 86, 57, 73, 45, 66, 62, 72, 89, 56, 61, 130, 60, 54, 66, 60, 45, 58, 61, 98, 62, 59, 56, 60, 69, 64, 50, 54, 64, 62, 41, 59, 67, 71, 51, 42, 114, 53, 76, 52, 72, 75, 73, 64, 58, 73, 60, 55, 49, 67, 104, 47, 55, 63, 50, 59, 84, 43, 82, 50, 70, 64, 82, 81, 62, 60, 79, 57, 48, 77, 61, 65, 57, 79, 90, 74, 68, 51, 61, 62, 49, 86, 52, 60, 51, 60, 59, 48, 89, 65, 66, 67, 81, 59, 50, 76, 67, 54, 73, 80, 55, 47, 51, 54, 66, 65, 56, 66, 69, 99, 50, 53, 60, 57, 63, 59, 42, 82, 66, 46, 74, 54, 80, 36, 51, 62, 75, 57, 84, 51, 67, 63, 46, 69, 94, 57, 73, 43, 81, 63, 49, 70, 50, 73, 81, 58, 64, 73, 57, 53, 52, 57, 64, 71, 72, 72, 54, 63, 75, 56, 67, 43, 54, 62, 95, 57, 76, 41, 50, 70, 54, 89, 82, 56, 72, 53, 55, 55, 64, 69, 50, 50, 64, 75, 75, 72, 74, 64, 59, 60, 51, 74, 79, 65, 88, 70, 47, 54, 63, 88, 64, 60, 73, 64, 59, 77, 40, 53, 63, 69, 70, 86, 90, 66, 67, 68, 63, 85, 43, 84, 51, 78, 68, 38, 62, 68, 61, 72, 80, 75, 58, 39, 53, 68, 86, 69, 51, 54, 51, 56, 60, 55, 66, 67, 95, 60, 66, 43, 75, 106, 57, 100, 72, 63, 56, 73, 77, 79, 54, 87, 74, 59, 53, 59, 70, 54, 54, 67, 68, 49, 56, 55, 102, 67, 104, 64, 49, 50, 78, 59, 53, 64, 47, 60, 68, 62, 63, 57, 62, 82, 70, 54, 76, 55, 68, 64, 45, 60, 76, 58, 77, 69, 66, 67, 66, 58, 51, 179, 73, 46, 78, 78, 72, 77, 59, 90, 55, 53, 61, 76, 72, 65, 63, 75, 54, 56, 48, 58, 71, 76, 62, 79, 79, 117, 64, 80, 92, 47, 55, 112, 77, 112, 68, 64, 81, 64, 63, 52, 48, 78, 67, 44, 54, 78, 62, 76, 54, 79, 64, 68, 65, 114, 54, 68, 97, 49, 68, 74, 80, 55, 68, 75, 66, 60, 65, 78, 65, 60, 53, 47, 64, 67, 64, 64, 58, 74, 80, 60, 62, 81, 59, 59, 66, 65, 72, 64, 59, 56, 46, 57, 95, 66, 64, 87, 49, 64, 83, 63, 47, 73, 60, 66, 55, 59, 64, 37, 51, 82, 56, 94, 57, 83, 51, 77, 59, 53, 67, 60, 95, 67, 46, 82, 66, 48, 63, 61, 74, 71, 57, 54, 79, 60, 43, 99, 72, 52, 66, 55, 66, 56, 48, 49, 51, 62, 92, 57, 76, 73, 74, 57, 76, 82, 46, 73, 57, 72, 73, 65, 60, 61, 58, 76, 68, 73, 61, 96, 75, 69, 73, 66, 58, 122, 60, 71, 56, 62, 54, 52, 73, 61, 50, 66, 64, 50, 49, 51, 73, 80, 69, 82, 58, 62, 75, 57, 66, 56, 60, 37, 62, 70, 49, 69, 70, 78, 77, 78, 76, 66, 57, 59, 63, 70, 60, 56, 82, 42, 79, 50, 78, 71, 78, 77, 55, 84, 47, 57, 125, 49, 79, 62, 73, 66, 53, 72, 58, 52, 64, 66, 51, 70, 84, 67, 58, 98, 88, 75, 74, 68, 67, 82, 54, 92, 67, 60, 57, 47, 72, 66, 62, 68, 62, 68, 71, 71, 77, 69, 84, 68, 57, 71, 57, 59, 108, 55, 87, 31, 39, 58, 68, 71, 48, 66, 55, 69, 67, 38, 111, 52, 85, 78, 53, 63, 76, 83, 99, 65, 83, 69, 59, 77, 68, 72, 71, 69, 71, 56, 83, 62, 58, 39, 56, 60, 53, 68, 44, 93, 55, 51, 101, 61, 74, 48, 77, 70, 52, 56, 64, 87, 83, 61, 59, 49, 71, 131, 57, 49, 73, 90, 57, 53, 65, 51, 81, 58, 60, 62, 75, 83, 50, 89, 53, 78, 67, 65, 49, 69, 58, 64, 75, 85, 65, 44, 83, 63, 69, 73, 84, 145, 66, 70, 65, 90, 62, 50, 71, 61, 59, 86, 44, 88, 68, 75, 64, 56, 67, 88, 61, 58, 49, 85, 63, 76, 68, 66, 71, 50, 49, 82, 83, 62, 53, 70, 71, 72, 73, 75, 49, 61, 70, 66, 75, 64, 59, 53, 72, 60, 59, 48, 66, 94, 50, 47, 57, 57, 68, 69, 72, 65, 46, 58, 60, 58, 55, 52, 60, 121, 50, 74, 81, 82, 74, 58, 77, 57, 37, 75, 76, 127, 76, 58, 61, 99, 56, 56, 67, 77, 49, 58, 48, 69, 67, 66, 80, 45, 58, 69, 75, 57, 67, 57, 55, 59, 40, 48, 65, 67, 58, 74, 62, 63, 92, 77, 63, 61, 73, 75, 68, 83, 48, 71, 54, 78, 87, 53, 115, 67, 50, 64, 53, 65, 70, 76, 74, 53, 65, 72, 82, 48, 35, 86, 51, 66, 79, 67, 62, 88, 62, 47, 75, 57, 62, 66, 66, 58, 66, 56, 64, 60, 65, 59, 62, 58, 83, 57, 56, 71, 66, 59, 46, 69, 44, 50, 68, 66, 84, 37, 61, 46, 65, 50, 58, 67, 95, 88, 52, 56, 66, 57, 66, 81, 57, 59, 71, 59, 53, 55, 92, 74, 60, 52, 68, 55, 66, 59, 63, 66, 60, 60, 53, 84, 69, 57, 61, 67, 83, 51, 48, 65, 76, 67, 76, 74, 56, 72, 60, 83, 74, 73, 56, 63, 74, 36, 70, 59, 37, 57, 64, 67, 65, 62, 73, 70, 93, 66, 39, 52, 73, 93, 46, 64, 55, 63, 63, 78, 53, 76, 68, 45, 62, 65, 85, 58, 69, 83, 46, 48, 55, 38, 75, 71, 80, 72, 56, 49, 53, 75, 48, 60, 81, 64, 78, 54, 61, 70, 42, 51, 82, 48, 79, 55, 59, 100, 64, 47, 62, 69, 66, 88, 55, 70, 63, 65, 65, 93, 78, 60, 128, 59, 71, 80, 79, 82, 65, 73, 84, 58, 73, 65, 67, 63, 22, 59, 65, 59, 66, 64, 67, 61, 69, 93, 80, 89, 61, 77, 71, 60, 74, 63, 63, 52, 71, 68, 68, 62, 74, 77, 65, 72, 62, 65, 77, 89, 52, 58, 50, 93, 68, 83, 52, 48, 74, 60, 65, 71, 75, 63, 63, 70, 81, 62, 58, 72, 46, 56, 49, 71, 64, 61, 55, 49, 73, 70, 58, 61, 66, 63, 85, 73, 70, 68, 85, 79, 82, 87, 65, 67, 72, 47, 50, 57, 63, 64, 71, 49, 58, 61, 72, 62, 54, 52, 56, 79, 63, 56, 87, 52, 21, 76, 99, 73, 75, 78, 67, 60, 95, 70, 64, 47, 51, 63, 51, 56, 73, 86, 67, 104, 68, 57, 72, 72, 68, 51, 65, 48, 53, 51, 67, 82, 86, 71, 63, 78, 67, 63, 52, 61, 55, 48, 114, 58, 60, 74, 55, 50, 106, 71, 74, 57, 81, 72, 55, 90, 62, 66, 58, 69, 44, 52, 58, 58, 93, 66, 96, 70, 104, 68, 65, 56, 74, 52, 66, 62, 92, 71, 93, 45, 63, 47, 81, 66, 75, 115, 75, 63, 65, 53, 50, 47, 83, 58, 55, 67, 67, 65, 73, 69, 60, 98, 97, 73, 67, 57, 58, 76, 50, 64, 89, 58, 70, 57, 53, 65, 60, 49, 98, 69, 104, 49, 83, 56, 65, 93, 74, 54, 78, 69, 79, 55, 73, 71, 63, 68, 56, 89, 57, 57, 56, 67, 72, 47, 61, 48, 45, 67, 71, 67, 107, 47, 90, 53, 53, 65, 85, 65, 63, 64, 76, 55, 86, 57, 63, 91, 60, 55, 58, 61, 92, 51, 53, 109, 54, 64, 49, 59, 103, 94, 72, 71, 53, 61, 82, 62, 52, 76, 74, 70, 60, 66, 72, 73, 50, 71, 43, 47, 74, 55, 69, 68, 94, 83, 68, 59, 55, 66, 40, 67, 81, 86, 51, 69, 64, 71, 69, 62, 37, 49, 55, 71, 55, 81, 77, 65, 54, 67, 49, 58, 126, 83, 55, 60, 61, 58, 69, 96, 59, 76, 66, 66, 95, 48, 89, 77, 50, 63, 51, 64, 42, 68, 56, 38, 99, 58, 48, 55, 94, 64, 49, 57, 62, 36, 79, 62, 67, 63, 69, 44, 41, 40, 78, 49, 65, 63, 62, 69, 54, 62, 63, 42, 45, 83, 64, 83, 123, 50, 52, 63, 77, 59, 92, 64, 51, 78, 70, 57, 59, 45, 60, 60, 40, 52, 50, 47, 58, 42, 46, 66, 59, 87, 66, 74, 58, 73, 60, 74, 36, 78, 80, 69, 81, 54, 47, 84, 74, 63, 96, 53, 67, 71, 63, 62, 53, 67, 75, 87, 69, 101, 55, 59, 55, 84, 88, 72, 98, 84, 38, 81, 60, 53, 77, 116, 51, 65, 76, 25, 74, 46, 66, 78, 70, 66, 58, 55, 66, 56, 56, 47, 109, 56, 32, 76, 50, 67, 60, 80, 60, 86, 65, 74, 62, 145, 85, 77, 51, 52, 59, 64, 88, 102, 55, 87, 50, 108, 74, 53, 63, 68, 56, 57, 65, 80, 60, 58, 63, 82, 36, 50, 53, 81, 54, 54, 77, 69, 57, 49, 81, 73, 73, 57, 62, 65, 54, 108, 66, 44, 49, 68, 63, 64, 60, 75, 81, 57, 49, 42, 62, 75, 51, 62, 60, 85, 92, 57, 72, 62, 49, 92, 69, 71, 55, 76, 109, 73, 61, 42, 57, 101, 53, 84, 49, 57, 54, 87, 63, 52, 71, 52, 64, 97, 100, 69, 52, 68, 116, 74, 56, 93, 59, 65, 66, 97, 51, 58, 62, 61, 48, 56, 52, 69, 56, 62, 54, 66, 81, 64, 60, 50, 58, 38, 34, 53, 73, 55, 67, 76, 58, 119, 65, 49, 41, 59, 62, 67, 69, 60, 80, 52, 71, 60, 60, 71, 52, 60, 46, 100, 74, 48, 55, 70, 48, 57, 59, 85, 114, 63, 38, 87, 90, 117, 63, 64, 54, 68, 57, 57, 78, 65, 51, 59, 59, 67, 51, 76, 46, 57, 67, 44, 75, 51, 41, 65, 70, 64, 68, 80, 87, 56, 82, 59, 62, 55, 77, 80, 76, 53, 68, 64, 69, 48, 72, 61, 65, 47, 55, 52, 35, 67, 65, 44, 53, 45, 57, 53, 46, 62, 68, 51, 60, 92, 51, 58, 57, 69, 65, 62, 63, 73, 63, 62, 47, 65, 58, 56, 79, 86, 73, 57, 60, 63, 57, 61, 71, 74, 56, 55, 53, 74, 71, 56, 77, 54, 54, 42, 67, 61, 78, 53, 77, 62, 63, 77, 105, 63, 96, 56, 53, 54, 54, 87, 76, 63, 78, 28, 82, 60, 79, 66, 94, 69, 49, 72, 46, 55, 67, 63, 94, 67, 64, 131, 53, 60, 63, 68, 61, 62, 70, 69, 84, 47, 67, 71, 83, 53, 51, 89, 52, 95, 68, 79, 68, 56, 59, 56, 80, 54, 78, 65, 184, 81, 60, 48, 56, 50, 49, 64, 51, 65, 66, 53, 66, 96, 64, 63, 70, 60, 74, 66, 60, 47, 83, 62, 78, 59, 82, 81, 63, 83, 77, 63, 59, 56, 50, 51, 70, 80, 85, 71, 91, 66, 54, 89, 48, 70, 48, 83, 55, 53, 70, 64, 123, 66, 66, 54, 69, 69, 48, 39, 65, 79, 64, 77, 65, 81, 71, 118, 50, 101, 64, 60, 59, 62, 64, 66, 64, 51, 72, 55, 61, 71, 69, 69, 77, 67, 58, 58, 57, 90, 88, 62, 104, 65, 83, 86, 69, 78, 64, 96, 52, 79, 66, 61, 82, 66, 71, 121, 43, 76, 83, 64, 62, 64, 57, 60, 67, 68, 52, 57, 67, 59, 59, 85, 61, 52, 53, 46, 74, 72, 121, 84, 60, 68, 53, 87, 67, 84, 85, 75, 51, 34, 69, 60, 69, 61, 66, 57, 46, 76, 62, 63, 73, 49, 68, 63, 91, 49, 60, 53, 53, 67, 77, 49, 70, 72, 92, 51, 58, 50, 59, 68, 69, 51, 65, 68, 78, 83, 65, 79, 67, 53, 69, 72, 90, 63, 84, 47, 54, 58, 70, 61, 70, 80, 75, 47, 82, 63, 52, 56, 51, 43, 60, 50, 119, 57, 115, 69, 77, 69, 68, 83, 83, 54, 32, 62, 82, 59, 55, 57, 72, 59, 47, 62, 58, 104, 76, 67, 71, 50, 60, 105, 54, 51, 55, 71, 70, 61, 70, 51, 58, 101, 71, 79, 78, 53, 51, 89, 48, 68, 62, 58, 76, 73, 52, 100, 57, 104, 51, 63, 69, 56, 50, 59, 58, 42, 83, 61, 54, 55, 58, 71, 62, 43, 75, 93, 49, 53, 48, 68, 47, 56, 62, 62, 72, 35, 53, 65, 98, 51, 64, 57, 65, 47, 66, 102, 80, 60, 54, 53, 59, 76, 71, 70, 44, 84, 74, 72, 45, 73, 77, 50, 78, 59, 65, 44, 59, 82, 78, 75, 67, 57, 69, 53, 53, 48, 57, 78, 92, 56, 78, 97, 74, 73, 49, 64, 72, 73, 48, 65, 72, 50, 64, 59, 73, 84, 67, 58, 51, 77, 71, 75, 71, 96, 87, 74, 56, 62, 78, 59, 71, 79, 49, 69, 75, 53, 52, 97, 62, 69, 58, 75, 57, 77, 94, 73, 81, 110, 97, 76, 100, 64, 74, 61, 67, 63, 75, 79, 81, 54, 104, 68, 52, 46, 48, 78, 49, 60, 71, 56, 64, 62, 82, 54, 62, 85, 54, 46, 61, 112, 66, 36, 65, 47, 65, 60, 56, 45, 68, 44, 61, 74, 50, 64, 91, 68, 51, 79, 57, 55, 83, 70, 40, 61, 48, 58, 73, 59, 84, 44, 55, 45, 44, 62, 69, 46, 57, 99, 63, 37, 84, 72, 63, 62, 68, 61, 46, 49, 60, 52, 80, 80, 58, 109, 45, 77, 68, 45, 82, 77, 90, 54, 74, 63, 66, 81, 52, 88, 85, 46, 70, 56, 51, 54, 81, 41, 68, 69, 46, 76, 63, 81, 66, 58, 57, 69, 50, 82, 69, 111, 88, 102, 51, 55, 78, 62, 73, 60, 68, 55, 68, 65, 57, 82, 93, 68, 61, 50, 54, 54, 64, 66, 89, 73, 71, 65, 67, 82, 82, 49, 64, 60, 81, 56, 32, 74, 59, 71, 38, 67, 78, 37, 50, 63, 54, 75, 74, 66, 81, 57, 56, 63, 86, 66, 58, 47, 53, 53, 72, 63, 84, 62, 63, 90, 70, 53, 96, 78, 135, 61, 53, 60, 57, 55, 62, 50, 61, 101, 71, 72, 72, 57, 39, 58, 64, 59, 49, 56, 63, 83, 69, 81, 72, 46, 44, 67, 73, 32, 72, 62, 103, 47, 56, 64, 66, 78, 74, 66, 70, 75, 71, 61, 53, 43, 70, 65, 82, 57, 61, 51, 56, 76, 56, 75, 51, 57, 71, 58, 52, 93, 92, 70, 49, 55, 70, 57, 48, 49, 86, 75, 73, 94, 72, 57, 74, 47, 94, 51, 54, 84, 62, 83, 51, 47, 67, 64, 60, 66, 95, 77, 69, 55, 84, 50, 124, 57, 74, 67, 64, 73, 54, 106, 72, 84, 58, 51, 93, 63, 62, 66, 63, 78, 59, 81, 65, 73, 202, 65, 55, 62, 82, 68, 66, 73, 65, 76, 72, 74, 62, 75, 56, 53, 82, 80, 55, 67, 76, 52, 63, 71, 67, 79, 90, 56, 78, 92, 87, 61, 91, 61, 55, 105, 66, 35, 62, 75, 57, 49, 47, 68, 68, 62, 68, 63, 61, 66, 73, 64, 78, 76, 38, 65, 83, 62, 94, 52, 77, 77, 71, 61, 50, 62, 78, 50, 48, 68, 70, 106, 63, 76, 71, 56, 66, 56, 70, 55, 51, 103, 47, 83, 53, 85, 51, 69, 75, 77, 75, 93, 63, 87, 130, 45, 67, 39, 57, 66, 92, 61, 87, 52, 59, 51, 66, 35, 57, 45, 48, 35, 46, 55, 40, 66, 57, 74, 79, 57, 54, 50, 73, 62, 63, 30, 71, 44, 70, 53, 119, 68, 46, 69, 117, 77, 62, 55, 70, 81, 48, 60, 66, 74, 78, 53, 59, 83, 56, 60, 62, 52, 76, 65, 87, 54, 43, 70, 49, 54, 70, 55, 53, 65, 64, 61, 77, 110, 72, 58, 76, 58, 91, 90, 62, 37, 64, 66, 64, 59, 101, 44, 76, 110, 47, 57, 54, 68, 73, 87, 81, 70, 53, 88, 77, 58, 72, 57, 69, 53, 67, 48, 52, 108, 50, 58, 59, 77, 68, 46, 62, 104, 68, 79, 57, 93, 75, 55, 71, 67, 52, 89, 58, 58, 61, 65, 83, 73, 74, 68, 67, 69, 61, 62, 62, 87, 69, 45, 76, 55, 54, 57, 61, 66, 79, 71, 54, 62, 74, 46, 59, 41, 69, 43, 63, 69, 102, 97, 57, 62, 58, 57, 55, 59, 53, 61, 63, 61, 52, 51, 80, 68, 52, 64, 88, 117, 72, 84, 64, 74, 85, 90, 52, 38, 67, 86, 57, 83, 67, 68, 55, 65, 45, 64, 50, 66, 61, 70, 56, 55, 68, 59, 44, 88, 64, 77, 86, 47, 70, 54, 62, 64, 70, 75, 44, 78, 67, 51, 72, 70, 66, 70, 72, 47, 83, 71, 72, 63, 68, 58, 62, 47, 57, 73, 91, 67, 67, 68, 59, 61, 65, 73, 50, 74, 61, 73, 72, 85, 53, 75, 50, 63, 97, 76, 69, 74, 61, 109, 44, 57, 65, 55, 56, 67, 74, 66, 110, 138, 51, 64, 67, 48, 77, 80, 79, 50, 80, 131, 43, 78, 77, 78, 82, 67, 60, 53, 66, 103, 54, 66, 112, 62, 59, 51, 80, 61, 62, 64, 70, 58, 60, 58, 89, 68, 65, 90, 61, 45, 92, 63, 71, 88, 62, 59, 85, 43, 46, 96, 63, 94, 64, 82, 52, 61, 61, 79, 76, 51, 73, 69, 40, 66, 72, 80, 73, 65, 63, 70, 67, 81, 73, 63, 67, 73, 61, 58, 74, 73, 63, 31, 88, 70, 54, 76, 65, 80, 75, 59, 105, 71, 63, 54, 37, 44, 60, 86, 66, 76, 80, 76, 66, 66, 52, 61, 61, 72, 71, 61, 67, 71, 69, 61, 63, 106, 76, 68, 70, 70, 55, 63, 75, 52, 41, 50, 60, 78, 45, 99, 48, 50, 80, 49, 56, 83, 61, 77, 55, 56, 56, 69, 95, 74, 104, 44, 56, 61, 57, 50, 91, 72, 79, 65, 71, 74, 39, 55, 72, 60, 64, 55, 66, 67, 58, 92, 62, 58, 64, 60, 68, 68, 80, 66, 56, 83, 58, 62, 92, 51, 79, 112, 55, 98, 44, 62, 60, 68, 66, 54, 50, 62, 75, 74, 76, 63, 87, 53, 77, 63, 72, 43, 80, 82, 62, 58, 78, 62, 84, 86, 60, 57, 61, 67, 68, 70, 63, 40, 42, 59, 74, 68, 90, 65, 63, 57, 50, 67, 57, 44, 73, 39, 76, 61, 56, 82, 81, 82, 55, 53, 67, 57, 66, 96, 58, 71, 73, 57, 61, 40, 74, 57, 55, 62, 74, 61, 80, 53, 51, 68, 58, 66, 60, 64, 79, 75, 69, 64, 74, 67, 69, 67, 59, 110, 66, 51, 50, 55, 65, 63, 77, 74, 62, 50, 71, 51, 76, 46, 64, 69, 79, 72, 55, 56, 96, 71, 95, 68, 76, 60, 51, 50, 66, 64, 63, 65, 73, 57, 66, 51, 79, 47, 61, 149, 55, 43, 55, 151, 54, 65, 67, 87, 74, 60, 60, 75, 87, 47, 66, 72, 77, 61, 107, 53, 95, 66, 57, 64, 45, 72, 55, 55, 80, 58, 54, 50, 49, 59, 74, 73, 62, 68, 59, 41, 73, 84, 92, 81, 68, 42, 62, 69, 74, 63, 65, 70, 62, 80, 61, 64, 78, 104, 72, 78, 81, 58, 76, 62, 54, 64, 57, 58, 41, 90, 51, 70, 53, 52, 62, 62, 80, 78, 50, 64, 80, 59, 57, 65, 44, 65, 61, 67, 75, 72, 74, 67, 46, 66, 43, 45, 59, 70, 40, 92, 92, 82, 55, 66, 44, 55, 83, 53, 85, 75, 61, 71, 72, 56, 66, 66, 69, 78, 52, 74, 57, 72, 57, 63, 62, 67, 71, 52, 57, 56, 48, 64, 53, 36, 51, 62, 72, 56, 73, 77, 85, 75, 58, 63, 53, 66, 68, 99, 76, 62, 80, 63, 60, 48, 89, 39, 72, 57, 62, 70, 78, 49, 59, 67, 74, 55, 102, 74, 90, 51, 60, 73, 84, 69, 61, 46, 67, 69, 67, 68, 60, 50, 71, 52, 71, 56, 66, 66, 62, 63, 69, 68, 64, 49, 46, 65, 53, 55, 57, 67, 65, 90, 85, 58, 74, 78, 55, 59, 76, 29, 55, 68, 53, 57, 64, 65, 41, 50, 63, 86, 81, 53, 63, 63, 67, 58, 54, 60, 73, 59, 106, 78, 58, 82, 55, 74, 53, 46, 57, 72, 64, 74, 56, 52, 66, 58, 67, 91, 62, 76, 84, 82, 71, 88, 58, 65, 36, 44, 65, 56, 78, 67, 84, 59, 67, 73, 59, 73, 38, 61, 70, 81, 85, 62, 68, 84, 68, 54, 60, 47, 72, 47, 68, 68, 128, 59, 66, 50, 59, 60, 42, 70, 63, 83, 79, 57, 66, 75, 60, 86, 110, 75, 58, 48, 70, 77, 56, 142, 67, 68, 72, 86, 40, 53, 55, 70, 77, 55, 52, 80, 60, 75, 69, 109, 73, 58, 54, 56, 74, 48, 87, 69, 83, 51, 52, 73, 90, 60, 62, 64, 66, 74, 52, 67, 59, 68, 60, 55, 53, 62, 50, 60, 59, 71, 85, 51, 66, 59, 60, 63, 98, 71, 67, 65, 57, 69, 50, 81, 55, 46, 65, 74, 62, 77, 52, 107, 54, 68, 56, 56, 60, 52, 86, 76, 64, 76, 66, 63, 62, 74, 50, 74, 54, 74, 64, 87, 84, 53, 45, 75, 72, 54, 51, 67, 60, 70, 55, 57, 69, 75, 74, 61, 67, 57, 58, 101, 57, 76, 68, 77, 51, 76, 77, 58, 54, 75, 71, 54, 83, 48, 78, 61, 76, 62, 33, 57, 63, 44, 76, 64, 70, 62, 59, 66, 51, 57, 47, 123, 90, 71, 63, 98, 68, 60, 51, 90, 61, 82, 59, 77, 60, 45, 50, 52, 76, 56, 69, 76, 75, 40, 54, 86, 61, 62, 73, 60, 84, 80, 87, 70, 58, 80, 88, 88, 68, 62, 87, 56, 69, 60, 50, 59, 58, 52, 59, 64, 44, 48, 78, 53, 75, 52, 70, 73, 64, 38, 72, 79, 107, 57, 53, 76, 68, 55, 63, 67, 76, 76, 76, 53, 52, 70, 74, 54, 89, 71, 58, 54, 49, 77, 63, 59, 57, 63, 62, 98, 50, 61, 62, 64, 81, 92, 50, 62, 48, 40, 57, 81, 76, 64, 78, 77, 69, 44, 67, 75, 82, 61, 54, 78, 68, 57, 60, 69, 65, 70, 56, 79, 76, 75, 35, 60, 62, 69, 68, 46, 70, 65, 73, 39, 73, 79, 69, 65, 49, 94, 55, 58, 74, 63, 61, 59, 77, 76, 70, 64, 72, 62, 70, 72, 60, 71, 72, 67, 60, 74, 50, 60, 53, 78, 67, 63, 50, 43, 66, 74, 68, 55, 67, 47, 59, 79, 77, 71, 56, 69, 65, 78, 70, 92, 73, 59, 49, 53, 77, 65, 73, 79, 64, 65, 56, 107, 68, 50, 69, 83, 45, 60, 62, 55, 86, 67, 53, 67, 54, 66, 61, 58, 65, 54, 79, 80, 57, 56, 73, 89, 65, 39, 76, 69, 72, 79, 80, 57, 59, 49, 92, 66, 61, 62, 52, 63, 42, 103, 76, 39, 55, 58, 66, 59, 53, 70, 56, 164, 62, 55, 89, 65, 54, 52, 71, 79, 66, 62, 47, 76, 48, 65, 47, 68, 86, 53, 57, 60, 76, 58, 63, 76, 110, 49, 53, 66, 58, 39, 69, 89, 60, 49, 78, 54, 54, 60, 85, 87, 76, 65, 69, 55, 50, 66, 48, 59, 54, 65, 63, 63, 57, 45, 63, 62, 39, 67, 68, 97, 63, 58, 42, 66, 59, 59, 63, 69, 68, 65, 67, 58, 71, 73, 80, 72, 59, 70, 62, 66, 62, 59, 62, 65, 84, 77, 57, 72, 81, 64, 46, 78, 51, 81, 61, 49, 59, 67, 59, 79, 59, 64, 42, 51, 73, 85, 61, 73, 61, 61, 40, 76, 71, 73, 73, 67, 75, 54, 59, 59, 76, 55, 53, 46, 55, 123, 53, 61, 113, 46, 73, 55, 52, 70, 60, 54, 62, 61, 78, 61, 89, 108, 90, 67, 51, 118, 48, 82, 66, 66, 70, 100, 48, 57, 73, 123, 63, 75, 63, 76, 67, 80, 74, 62, 54, 71, 78, 79, 52, 73, 64, 46, 62, 49, 75, 65, 65, 57, 64, 104, 57, 64, 67, 69, 66, 59, 39, 66, 62, 89, 51, 72, 63, 53, 66, 71, 66, 54, 77, 67, 82, 124, 73, 51, 73, 59, 62, 63, 72, 69, 67, 71, 57, 64, 64, 55, 42, 82, 56, 76, 52, 51, 62, 131, 73, 45, 48, 68, 90, 72, 67, 71, 111, 70, 50, 49, 48, 69, 73, 94, 64, 40, 69, 86, 64, 54, 60, 98, 73, 67, 47, 45, 57, 87, 64, 78, 98, 64, 59, 54, 55, 109, 70, 51, 65, 68, 69, 67, 62, 57, 96, 67, 61, 58, 66, 52, 69, 65, 102, 77, 64, 60, 50, 70, 54, 61, 75, 65, 61, 68, 83, 69, 48, 75, 39, 68, 58, 84, 106, 86, 63, 44, 64, 59, 64, 93, 66, 75, 64, 65, 60, 49, 46, 71, 79, 65, 85, 74, 63, 60, 85, 65, 60, 50, 65, 87, 66, 69, 56, 63, 58, 65, 62, 59, 53, 52, 70, 43, 49, 69, 60, 96, 53, 48, 62, 70, 50, 68, 122, 61, 59, 74, 65, 69, 66, 67, 54, 57, 76, 81, 61, 58, 68, 61, 65, 58, 87, 65, 104, 72, 60, 82, 65, 71, 78, 59, 45, 69, 58, 64, 71, 80, 69, 58, 90, 58, 61, 52, 87, 47, 63, 72, 61, 63, 58, 62, 66, 72, 67, 71, 64, 84, 55, 65, 67, 61, 59, 70, 78, 72, 66, 97, 76, 57, 59, 65, 51, 75, 74, 52, 64, 74, 58, 69, 49, 58, 60, 89, 48, 63, 65, 83, 59, 83, 86, 68, 93, 55, 78, 64, 62, 67, 61, 52, 59, 64, 138, 89, 66, 61, 69, 53, 41, 71, 82, 78, 59, 56, 69, 65, 56, 49, 50, 53, 56, 54, 68, 81, 68, 64, 71, 60, 58, 79, 60, 65, 64, 63, 94, 67, 64, 72, 73, 76, 56, 67, 69, 54, 57, 61, 51, 56, 61, 73, 61, 74, 70, 95, 48, 49, 54, 45, 71, 52, 48, 109, 76, 63, 87, 68, 61, 82, 100, 72, 62, 56, 52, 94, 65, 62, 60, 73, 68, 49, 55, 93, 64, 63, 89, 47, 76, 77, 67, 70, 67, 50, 78, 57, 114, 56, 63, 60, 116, 58, 124, 63, 62, 63, 61, 62, 75, 57, 75, 55, 54, 47, 69, 71, 67, 88, 105, 78, 66, 85, 69, 65, 79, 56, 66, 44, 55, 84, 88, 102, 59, 66, 57, 57, 75, 61, 65, 82, 74, 64, 63, 52, 64, 62, 75, 58, 53, 73, 64, 65, 70, 77, 79, 53, 60, 60, 65, 64, 57, 68, 74, 81, 76, 38, 84, 70, 63, 50, 66, 66, 42, 51, 68, 81, 75, 66, 62, 52, 75, 69, 78, 57, 67, 51, 78, 56, 61, 60, 43, 61, 67, 61, 57, 76, 88, 67, 84, 60, 59, 114, 69, 89, 68, 80, 61, 59, 58, 62, 64, 60, 74, 69, 53, 56, 69, 63, 59, 45, 57, 77, 60, 46, 129, 51, 72, 50, 74, 72, 75, 54, 65, 54, 58, 75, 83, 61, 63, 62, 68, 50, 63, 90, 57, 62, 61, 64, 59, 44, 66, 58, 64, 72, 58, 65, 85, 61, 66, 57, 59, 58, 59, 64, 90, 67, 53, 65, 60, 67, 84, 78, 65, 66, 85, 58, 84, 68, 44, 59, 59, 74, 58, 64, 62, 63, 73, 81, 78, 69, 63, 65, 53, 53, 42, 67, 81, 72, 58, 63, 79, 56, 44, 59, 63, 57, 56, 63, 75, 60, 78, 51, 49, 61, 60, 85, 76, 62, 63, 52, 70, 71, 72, 58, 59, 68, 67, 72, 77, 73, 68, 51, 69, 72, 88, 69, 61, 60, 75, 75, 80, 75, 50, 63, 84, 57, 52, 89, 61, 60, 49, 58, 55, 76, 87, 57, 83, 65, 84, 83, 66, 65, 59, 70, 64, 72, 54, 57, 53, 74, 65, 84, 77, 92, 83, 58, 53, 62, 59, 61, 56, 59, 83, 66, 70, 75, 60, 63, 56, 79, 66, 72, 74, 111, 88, 64, 67, 75, 51, 59, 71, 55, 78, 67, 67, 70, 60, 69, 69, 76, 61, 65, 65, 64, 46, 65, 81, 68, 75, 67, 54, 70, 58, 65, 59, 70, 70, 63, 77, 74, 45, 79, 53, 68, 62, 70, 56, 48, 57, 62, 77, 67, 65, 76, 77, 66, 71, 61, 68, 66, 45, 81, 56, 62, 66, 69, 55, 51, 81, 73, 64, 100, 67, 56, 86, 68, 64, 76, 64, 65, 73, 82, 48, 58, 55, 62, 76, 79, 77, 68, 64, 68, 59, 79, 85, 52, 79, 71, 75, 52, 42, 60, 56, 67, 79, 66, 56, 80, 48, 59, 72, 71, 58, 47, 73, 52, 65, 60, 62, 87, 56, 73, 85, 74, 63, 51, 57, 54, 65, 67, 60, 47, 61, 75, 62, 65, 66, 58, 63, 62, 74, 70, 52, 67, 43, 50, 56, 57, 116, 81, 54, 87, 34, 69, 48, 58, 68, 71, 75, 69, 74, 68, 63, 61, 76, 71, 64, 80, 70, 50, 69, 56, 54, 77, 48, 75, 68, 55, 61, 61, 63, 57, 54, 70, 69, 49, 69, 55, 89, 74, 58, 63, 42, 73, 51, 69, 74, 59, 45, 52, 61, 62, 69, 62, 64, 56, 63, 62, 74, 85, 51, 73, 73, 58, 64, 66, 64, 58, 84, 69, 55, 81, 63, 71, 99, 60, 66, 77, 44, 70, 61, 76, 39, 89, 89, 52, 57, 60, 73, 65, 55, 60, 58, 57, 52, 64, 69, 103, 54, 71, 85, 75, 56, 62, 78, 73, 78, 57, 72, 66, 74, 71, 77, 61, 57, 54, 62, 78, 56, 64, 65, 85, 59, 79, 73, 67, 52, 57, 81, 64, 60, 66, 73, 65, 70, 61, 71, 65, 60, 65, 85, 66, 50, 66, 72, 73, 52, 66, 78, 71, 61, 69, 102, 64, 61, 75, 64, 72, 60, 63, 58, 52, 46, 68, 74, 71, 51, 55, 71, 64, 86, 67, 71, 80, 55, 51, 71, 80, 90, 64, 93, 65, 66, 54, 66, 56, 82, 56, 61, 71, 66, 48, 70, 64, 61, 93, 62, 78, 62, 48, 91, 55, 55, 85, 59, 77, 57, 53, 54, 59, 60, 81, 74, 76, 65, 54, 52, 66, 74, 58, 79, 72, 82, 53, 84, 51, 61, 53, 57, 80, 77, 77, 61, 64, 115, 62, 68, 81, 65, 71, 72, 66, 58, 56, 64, 57, 73, 77, 56, 63, 70, 63, 95, 65, 52, 60, 83, 62, 74, 64, 47, 61, 60, 65, 71, 74, 66, 69, 58, 60, 85, 63, 69, 55, 71, 51, 59, 85, 57, 62, 69, 67, 57, 59, 64, 52, 61, 59, 68, 57, 65, 65, 63, 73, 66, 55, 55, 57, 77, 52, 55, 49, 55, 65, 52, 87, 75, 73, 49, 58, 82, 74, 65, 45, 91, 83, 54, 104, 51, 87, 91, 62, 67, 49, 62, 41, 84, 90, 68, 54, 47, 117, 73, 42, 88, 66, 71, 55, 47, 66, 56, 71, 109, 55, 50, 71, 55, 62, 58, 54, 41, 65, 61, 60, 56, 74, 74, 37, 51, 78, 93, 61, 105, 57, 61, 70, 116, 70, 52, 51, 66, 68, 57, 53, 59, 94, 59, 69, 70, 95, 51, 60, 54, 47, 70, 68, 52, 90, 65, 60, 62, 54, 90, 50, 82, 44, 55, 42, 55, 62, 66, 57, 48, 63, 52, 58, 52, 67, 55, 49, 54, 57, 66, 64, 80, 61, 57, 46, 98, 48, 54, 56, 78, 107, 51, 75, 50, 56, 76, 99, 41, 62, 58, 52, 74, 83, 70, 99, 53, 95, 54, 63, 75, 59, 71, 67, 69, 60, 69, 76, 75, 67, 68, 63, 65, 46, 54, 70, 61, 76, 126, 60, 76, 61, 58, 76, 50, 95, 72, 53, 44, 70, 86, 63, 54, 37, 54, 46, 60, 50, 78, 57, 54, 79, 84, 75, 55, 77, 59, 71, 62, 45, 79, 65, 86, 51, 60, 74, 46, 60, 68, 57, 44, 70, 50, 48, 56, 65, 84, 61, 60, 67, 64, 57, 70, 64, 69, 61, 62, 56, 60, 55, 52, 62, 59, 61, 61, 60, 82, 80, 74, 62, 67, 60, 76, 79, 63, 67, 52, 67, 57, 70, 44, 77, 107, 109, 81, 70, 56, 67, 65, 58, 76, 64, 56, 74, 43, 50, 51, 121, 52, 72, 48, 84, 74, 63, 45, 64, 38, 114, 73, 95, 70, 66, 58, 81, 59, 64, 61, 123, 73, 43, 66, 58, 63, 46, 76, 64, 34, 74, 73, 92, 54, 78, 100, 58, 73, 77, 61, 56, 82, 65, 61, 76, 60, 63, 112, 70, 54, 60, 116, 73, 37, 68, 61, 62, 50, 49, 59, 61, 68, 79, 58, 74, 63, 64, 56, 51, 50, 61, 63, 57, 92, 55, 34, 54, 91, 62, 63, 158, 83, 68, 76, 63, 51, 63, 63, 60, 66, 81, 62, 91, 62, 83, 51, 63, 61, 57, 89, 78, 77, 56, 40, 69, 57, 47, 87, 61, 52, 64, 44, 38, 54, 53, 75, 52, 62, 71, 69, 93, 56, 71, 74, 47, 84, 81, 81, 61, 76, 69, 59, 53, 68, 57, 47, 91, 51, 68, 75, 81, 75, 47, 66, 75, 68, 67, 91, 81, 79, 68, 76, 73, 58, 54, 65, 75, 70, 44, 72, 65, 73, 66, 57, 39, 70, 53, 52, 95, 86, 56, 49, 81, 38, 71, 53, 77, 49, 64, 57, 54, 71, 69, 59, 56, 57, 75, 67, 43, 46, 63, 93, 76, 54, 49, 68, 63, 77, 93, 68, 80, 58, 69, 75, 68, 77, 77, 61, 78, 151, 75, 80, 56, 62, 47, 58, 64, 65, 43, 60, 59, 67, 64, 55, 65, 53, 53, 44, 76, 60, 71, 61, 45, 97, 64, 58, 47, 66, 74, 35, 70, 53, 68, 80, 59, 129, 93, 71, 54, 72, 64, 54, 49, 84, 55, 51, 61, 118, 73, 61, 83, 77, 77, 79, 81, 67, 62, 61, 66, 77, 62, 91, 71, 85, 79, 60, 55, 79, 50, 76, 62, 59, 64, 64, 66, 55, 76, 77, 91, 60, 66, 71, 62, 58, 75, 66, 62, 41, 62, 72, 54, 45, 72, 51, 53, 82, 61, 46, 72, 66, 64, 61, 75, 54, 81, 58, 78, 82, 72, 57, 63, 69, 59, 72, 65, 72, 72, 78, 83, 100, 45, 75, 82, 76, 59, 66, 82, 60, 63, 86, 48, 57, 93, 60, 50, 49, 59, 57, 71, 43, 71, 50, 74, 93, 43, 99, 59, 51, 57, 55, 83, 63, 53, 116, 51, 54, 52, 59, 68, 56, 75, 59, 43, 79, 55, 73, 67, 53, 84, 68, 62, 56, 63, 51, 75, 65, 52, 62, 55, 80, 92, 71, 60, 52, 61, 70, 51, 63, 70, 75, 73, 84, 49, 72, 74, 50, 58, 85, 51, 56, 50, 71, 51, 104, 48, 45, 49, 59, 101, 86, 60, 74, 111, 81, 67, 69, 59, 59, 76, 56, 66, 56, 46, 52, 40, 52, 56, 49, 78, 71, 54, 53, 51, 54, 102, 62, 59, 68, 65, 53, 39, 74, 52, 82, 92, 62, 76, 73, 73, 61, 80, 77, 56, 65, 67, 68, 61, 94, 48, 65, 41, 60, 61, 85, 62, 36, 55, 60, 80, 41, 44, 100, 43, 66, 50, 67, 50, 71, 83, 129, 57, 70, 72, 71, 84, 87, 96, 58, 75, 86, 65, 97, 80, 64, 67, 71, 64, 55, 85, 103, 52, 61, 57, 79, 60, 60, 69, 48, 79, 48, 54, 55, 62, 68, 51, 59, 44, 86, 61, 59, 81, 69, 72, 103, 71, 62, 49, 69, 69, 59, 83, 53, 42, 71, 83, 53, 59, 66, 71, 71, 59, 69, 73, 95, 58, 57, 53, 104, 84, 72, 65, 91, 92, 71, 65, 71, 84, 70, 73, 72, 70, 78, 96, 53, 59, 75, 56, 74, 78, 52, 63, 84, 87, 61, 60, 58, 101, 68, 72, 65, 98, 63, 53, 53, 57, 46, 94, 65, 94, 139, 49, 67, 46, 63, 84, 74, 79, 60, 61, 63, 85, 51, 60, 35, 94, 94, 56, 62, 58, 59, 69, 40, 47, 78, 49, 54, 44, 57, 61, 62, 67, 59, 80, 82, 70, 51, 72, 71, 51, 61, 80, 94, 64, 79, 102, 60, 62, 71, 81, 64, 86, 72, 98, 90, 52, 47, 61, 59, 63, 79, 62, 48, 83, 81, 60, 80, 60, 88, 54, 64, 64, 64, 67, 69, 60, 66, 65, 59, 69, 62, 49, 64, 88, 47, 83, 50, 139, 64, 63, 67, 63, 53, 61, 41, 60, 73, 87, 78, 44, 74, 50, 50, 66, 85, 114, 78, 47, 56, 67, 74, 78, 53, 54, 89, 45, 78, 70, 78, 69, 67, 48, 50, 59, 81, 44, 84, 109, 84, 58, 58, 43, 82, 55, 56, 60, 65, 79, 40, 53, 91, 73, 63, 55, 64, 51, 68, 60, 78, 71, 86, 47, 70, 76, 56, 72, 73, 123, 78, 70, 39, 57, 61, 38, 62, 82, 98, 65, 55, 84, 74, 74, 64, 69, 48, 64, 87, 69, 77, 49, 69, 48, 65, 78, 66, 64, 51, 64, 82, 60, 79, 75, 71, 51, 60, 36, 65, 78, 57, 73, 88, 46, 48, 77, 62, 52, 79, 81, 109, 76, 69, 56, 71, 52, 62, 90, 47, 93, 71, 51, 68, 61, 58, 64, 86, 77, 66, 50, 82, 66, 64, 61, 87, 66, 91, 55, 83, 55, 48, 72, 48, 75, 59, 68, 76, 75, 58, 67, 48, 56, 57, 68, 74, 74, 51, 57, 67, 66, 85, 80, 83, 62, 64, 56, 79, 70, 67, 65, 73, 45, 54, 54, 61, 71, 57, 59, 55, 60, 73, 60, 70, 64, 48, 53, 94, 66, 72, 62, 72, 97, 80, 48, 52, 72, 71, 100, 59, 77, 51, 48, 61, 89, 71, 80, 75, 76, 76, 73, 69, 84, 96, 74, 86, 55, 66, 69, 66, 72, 57, 71, 90, 55, 93, 51, 52, 71, 93, 74, 70, 45, 47, 90, 46, 58, 97, 64, 68, 61, 42, 52, 65, 50, 75, 60, 36, 61, 44, 53, 58, 87, 68, 57, 40, 60, 67, 67, 59, 48, 58, 55, 76, 57, 65, 64, 60, 56, 74, 52, 52, 81, 52, 81, 67, 71, 77, 55, 75, 46, 83, 51, 68, 61, 45, 69, 44, 64, 58, 53, 56, 98, 62, 40, 67, 65, 56, 44, 83, 87, 64, 51, 41, 64, 52, 70, 52, 74, 68, 73, 73, 51, 69, 75, 69, 75, 58, 50, 70, 74, 57, 44, 42, 71, 64, 61, 60, 113, 68, 71, 60, 66, 52, 79, 53, 55, 51, 95, 95, 59, 66, 78, 93, 69, 87, 63, 65, 93, 71, 60, 66, 80, 63, 60, 58, 71, 57, 81, 58, 86, 47, 67, 56, 85, 56, 56, 62, 83, 78, 64, 48, 56, 79, 85, 106, 66, 83, 53, 122, 100, 83, 54, 58, 45, 61, 64, 52, 71, 94, 60, 65, 58, 93, 55, 68, 81, 42, 52, 53, 80, 75, 58, 63, 56, 77, 45, 60, 103, 76, 67, 59, 64, 75, 57, 85, 85, 54, 78, 90, 36, 64, 59, 76, 58, 67, 62, 59, 65, 98, 56, 78, 44, 71, 60, 48, 58, 60, 41, 68, 66, 57, 78, 66, 68, 55, 77, 49, 123, 39, 62, 80, 56, 72, 76, 60, 78, 61, 61, 65, 68, 74, 66, 53, 74, 68, 66, 96, 60, 74, 79, 67, 67, 79, 57, 67, 87, 75, 63, 52, 50, 67, 65, 77, 65, 75, 60, 100, 53, 71, 82, 51, 46, 80, 62, 71, 81, 58, 45, 66, 75, 63, 55, 58, 93, 78, 41, 57, 42, 73, 79, 62, 57, 67, 88, 53, 75, 67, 83, 87, 61, 43, 72, 52, 62, 63, 40, 50, 60, 43, 85, 87, 71, 47, 63, 53, 65, 140, 51, 57, 54, 50, 55, 38, 78, 67, 65, 57, 65, 89, 67, 47, 78, 72, 65, 56, 72, 64, 39, 73, 79, 64, 57, 94, 66, 65, 74, 56, 71, 51, 74, 58, 66, 56, 78, 56, 59, 55, 54, 50, 66, 98, 43, 62, 83, 151, 66, 69, 83, 70, 64, 56, 84, 63, 69, 39, 55, 61, 46, 61, 75, 74, 89, 91, 47, 93, 80, 71, 58, 70, 68, 65, 57, 62, 59, 53, 66, 72, 48, 55, 55, 55, 68, 79, 60, 80, 57, 87, 57, 60, 77, 40, 64, 84, 57, 70, 85, 47, 50, 60, 62, 56, 49, 68, 46, 71, 68, 66, 50, 57, 59, 60, 58, 75, 87, 55, 80, 75, 74, 63, 64, 62, 53, 42, 86, 63, 58, 64, 57, 52, 57, 77, 46, 63, 71, 67, 52, 66, 76, 82, 83, 97, 70, 88, 87, 71, 91, 53, 77, 49, 68, 101, 59, 67, 86, 60, 58, 78, 51, 57, 60, 104, 49, 51, 70, 53, 56, 46, 71, 64, 80, 30, 70, 75, 70, 99, 61, 48, 69, 49, 63, 67, 58, 78, 56, 67, 63, 81, 76, 79, 71, 50, 69, 71, 95, 82, 68, 56, 64, 47, 63, 73, 64, 60, 67, 49, 72, 68, 64, 59, 65, 83, 80, 48, 59, 56, 77, 92, 54, 53, 64, 54, 43, 49, 78, 34, 88, 72, 70, 67, 73, 86, 70, 59, 47, 65, 73, 70, 59, 53, 49, 78, 81, 45, 60, 68, 61, 74, 74, 57, 74, 59, 89, 94, 97, 93, 59, 78, 69, 56, 71, 70, 58, 49, 79, 62, 81, 78, 90, 63, 57, 68, 58, 64, 65, 74, 99, 69, 58, 87, 88, 85, 53, 67, 58, 57, 70, 82, 61, 53, 56, 58, 93, 77, 63, 55, 81, 62, 57, 46, 75, 79, 51, 57, 77, 79, 81, 62, 68, 77, 64, 84, 76, 66, 37, 56, 53, 78, 58, 49, 54, 73, 64, 71, 47, 65, 61, 52, 55, 57, 58, 59, 75, 56, 59, 57, 106, 60, 86, 60, 67, 44, 59, 53, 70, 61, 77, 71, 72, 52, 107, 116, 52, 69, 31, 48, 105, 58, 69, 71, 53, 80, 53, 65, 76, 39, 51, 57, 52, 66, 65, 55, 80, 77, 68, 66, 119, 73, 80, 44, 67, 53, 67, 83, 57, 58, 61, 62, 39, 67, 53, 59, 66, 85, 72, 63, 58, 77, 72, 42, 102, 47, 65, 81, 83, 96, 69, 83, 65, 69, 58, 58, 68, 73, 60, 58, 58, 70, 59, 67, 60, 62, 52, 71, 33, 56, 55, 67, 59, 128, 53, 98, 42, 50, 89, 69, 67, 66, 49, 72, 62, 65, 78, 52, 62, 49, 51, 87, 63, 51, 61, 61, 48, 79, 77, 44, 70, 82, 89, 58, 71, 54, 58, 55, 65, 74, 52, 58, 61, 42, 53, 61, 86, 69, 98, 80, 51, 101, 70, 42, 91, 60, 63, 64, 94, 50, 61, 79, 67, 54, 55, 66, 81, 77, 74, 69, 81, 72, 120, 70, 69, 98, 48, 84, 54, 84, 54, 51, 66, 70, 62, 54, 53, 49, 69, 48, 77, 60, 91, 63, 59, 61, 64, 59, 68, 78, 103, 71, 65, 57, 54, 68, 65, 73, 67, 79, 53, 56, 66, 51, 73, 63, 50, 52, 97, 68, 63, 82, 60, 59, 77, 70, 58, 46, 50, 73, 91, 91, 65, 84, 72, 86, 57, 51, 51, 59, 66, 110, 83, 81, 69, 61, 67, 72, 41, 59, 70, 71, 68, 47, 57, 62, 80, 61, 57, 51, 46, 72, 49, 66, 77, 52, 64, 82, 56, 90, 79, 55, 60, 143, 47, 75, 92, 69, 72, 78, 51, 58, 68, 35, 83, 57, 57, 88, 53, 69, 75, 62, 74, 57, 81, 47, 66, 58, 54, 91, 54, 81, 65, 93, 100, 65, 35, 63, 85, 192, 72, 58, 46, 67, 72, 54, 89, 69, 81, 64, 59, 68, 83, 61, 65, 89, 71, 54, 49, 79, 65, 65, 46, 82, 58, 79, 83, 55, 88, 128, 46, 57, 39, 50, 56, 87, 62, 60, 67, 54, 66, 75, 66, 51, 96, 90, 59, 90, 80, 37, 74, 74, 66, 74, 45, 37, 74, 95, 56, 54, 58, 67, 56, 61, 71, 66, 69, 54, 73, 47, 46, 54, 76, 40, 81, 86, 69, 111, 77, 60, 51, 51, 76, 73, 67, 76, 53, 70, 53, 74, 59, 70, 86, 42, 63, 48, 62, 56, 57, 69, 65, 67, 47, 55, 52, 74, 52, 47, 46, 66, 62, 87, 72, 57, 70, 63, 69, 59, 48, 69, 64, 83, 100, 69, 71, 77, 58, 63, 60, 44, 54, 61, 69, 64, 46, 57, 32, 54, 55, 63, 81, 50, 97, 50, 99, 65, 86, 81, 71, 62, 44, 69, 125, 53, 75, 69, 68, 84, 58, 70, 60, 61, 64, 53, 73, 85, 60, 80, 96, 48, 70, 52, 57, 60, 73, 51, 64, 65, 70, 48, 82, 60, 94, 76, 73, 56, 69, 97, 51, 66, 66, 74, 71, 58, 76, 86, 72, 73, 90, 49, 59, 63, 110, 107, 54, 75, 70, 62, 80, 66, 51, 43, 85, 54, 76, 44, 77, 69, 48, 99, 54, 63, 58, 69, 75, 57, 95, 51, 71, 102, 54, 61, 77, 61, 85, 81, 87, 74, 61, 41, 67, 53, 66, 67, 53, 70, 54, 51, 57, 54, 46, 45, 43, 105, 72, 78, 111, 38, 71, 63, 65, 92, 76, 53, 61, 73, 65, 62, 81, 56, 80, 68, 140, 65, 84, 64, 50, 58, 72, 57, 74, 50, 57, 73, 80, 78, 66, 45, 21, 61, 42, 55, 88, 53, 101, 115, 54, 40, 72, 75, 82, 59, 57, 91, 77, 60, 57, 73, 50, 73, 61, 48, 63, 62, 74, 60, 80, 51, 40, 68, 54, 67, 79, 66, 72, 80, 51, 70, 69, 77, 86, 112, 64, 64, 52, 66, 34, 87, 55, 58, 45, 51, 54, 61, 69, 34, 57, 69, 57, 68, 79, 54, 59, 59, 71, 57, 79, 67, 73, 58, 70, 50, 77, 58, 66, 79, 53, 71, 61, 65, 50, 54, 67, 52, 87, 59, 57, 37, 47, 75, 75, 83, 71, 66, 83, 64, 60, 95, 79, 58, 59, 53, 55, 57, 73, 84, 83, 86, 61, 60, 69, 69, 44, 95, 82, 53, 58, 48, 79, 70, 82, 69, 61, 93, 42, 62, 72, 65, 48, 50, 93, 61, 68, 57, 51, 64, 73, 62, 51, 42, 77, 54, 64, 61, 83, 58, 69, 74, 78, 58, 85, 97, 68, 69, 52, 78, 59, 53, 50, 59, 68, 62, 63, 44, 82, 66, 68, 51, 72, 62, 75, 69, 110, 55, 61, 49, 60, 65, 63, 33, 68, 55, 81, 61, 71, 67, 59, 54, 101, 76, 42, 47, 64, 115, 61, 61, 73, 75, 50, 79, 49, 62, 50, 55, 62, 78, 82, 46, 45, 49, 95, 60, 48, 63, 81, 76, 53, 71, 58, 73, 70, 34, 103, 84, 65, 73, 76, 51, 66, 65, 55, 55, 80, 67, 71, 80, 64, 49, 54, 61, 65, 61, 72, 56, 86, 58, 64, 84, 68, 47, 66, 46, 60, 56, 56, 82, 64, 69, 59, 71, 67, 77, 57, 72, 65, 55, 65, 76, 42, 65, 65, 68, 82, 71, 51, 58, 67, 41, 61, 65, 56, 82, 96, 92, 75, 89, 54, 79, 62, 41, 82, 66, 121, 50, 51, 58, 81, 51, 63, 71, 80, 73, 71, 49, 77, 94, 60, 71, 68, 57, 75, 71, 56, 95, 65, 64, 65, 45, 74, 55, 77, 58, 81, 55, 77, 33, 55, 78, 70, 174, 66, 75, 97, 63, 67, 70, 68, 75, 56, 67, 65, 70, 94, 62, 59, 63, 67, 39, 75, 49, 45, 59, 95, 56, 58, 104, 76, 68, 65, 61, 53, 78, 72, 63, 65, 63, 63, 67, 40, 67, 66, 51, 66, 47, 58, 68, 39, 81, 80, 79, 46, 61, 87, 80, 84, 89, 83, 88, 81, 69, 63, 54, 115, 56, 77, 56, 63, 48, 96, 65, 84, 55, 66, 63, 61, 75, 46, 61, 67, 30, 84, 57, 92, 44, 60, 81, 74, 49, 72, 41, 68, 58, 61, 78, 59, 31, 58, 55, 55, 94, 75, 65, 72, 77, 65, 70, 50, 105, 39, 47, 67, 51, 60, 58, 68, 52, 48, 58, 71, 64, 53, 95, 51, 76, 76, 70, 47, 73, 97, 84, 68, 66, 50, 58, 101, 71, 57, 77, 69, 56, 66, 73, 63, 67, 36, 96, 58, 73, 63, 66, 57, 63, 70, 75, 75, 51, 60, 62, 53, 57, 45, 66, 76, 66, 75, 35, 58, 64, 84, 60, 76, 44, 51, 72, 46, 66, 63, 54, 78, 75, 64, 62, 81, 70, 53, 68, 70, 44, 47, 62, 58, 50, 52, 57, 81, 104, 58, 79, 76, 73, 59, 101, 73, 64, 96, 59, 50, 67, 86, 50, 49, 65, 66, 71, 75, 53, 51, 94, 46, 84, 60, 69, 67, 89, 68, 65, 52, 61, 72, 74, 58, 54, 71, 60, 66, 44, 30, 46, 78, 69, 46, 57, 74, 57, 71, 39, 68, 60, 81, 82, 69, 65, 47, 68, 54, 80, 72, 46, 64, 69, 57, 84, 43, 47, 63, 87, 50, 65, 63, 66, 82, 79, 78, 39, 57, 44, 80, 71, 75, 79, 69, 72, 67, 67, 60, 69, 62, 62, 55, 70, 63, 67, 63, 65, 96, 77, 60, 94, 73, 65, 44, 67, 55, 48, 62, 73, 63, 66, 66, 81, 83, 63, 113, 71, 74, 85, 50, 65, 68, 71, 93, 59, 77, 58, 61, 62, 59, 46, 60, 71, 69, 49, 79, 57, 70, 50, 61, 68, 70, 42, 52, 62, 56, 63, 57, 59, 49, 65, 72, 69, 66, 62, 70, 65, 60, 56, 55, 72, 94, 59, 57, 128, 51, 87, 69, 65, 57, 63, 44, 59, 94, 75, 63, 59, 60, 99, 78, 52, 73, 52, 56, 77, 72, 76, 76, 71, 46, 98, 60, 67, 63, 51, 57, 87, 37, 42, 54, 71, 41, 63, 56, 65, 67, 60, 81, 54, 73, 63, 71, 80, 59, 83, 65, 66, 58, 114, 64, 73, 70, 49, 71, 45, 70, 78, 47, 69, 67, 79, 59, 56, 84, 59, 62, 66, 59, 80, 54, 56, 64, 72, 59, 66, 63, 67, 70, 48, 57, 65, 61, 61, 76, 60, 53, 77, 57, 66, 70, 86, 59, 49, 64, 54, 67, 60, 73, 51, 70, 82, 74, 89, 79, 63, 43, 85, 83, 65, 61, 51, 73, 69, 65, 51, 54, 86, 66, 60, 57, 56, 80, 54, 54, 54, 40, 60, 78, 75, 52, 49, 72, 123, 69, 125, 32, 80, 68, 124, 59, 53, 71, 65, 67, 48, 69, 80, 59, 57, 61, 81, 96, 62, 60, 70, 78, 59, 75, 62, 61, 62, 74, 95, 59, 82, 71, 50, 86, 57, 64, 60, 55, 56, 71, 68, 52, 87, 76, 67, 98, 81, 54, 65, 54, 73, 93, 66, 64, 57, 57, 37, 70, 62, 64, 58, 65, 43, 62, 56, 54, 51, 75, 60, 67, 56, 60, 77, 62, 91, 78, 53, 61, 68, 72, 59, 58, 80, 59, 90, 74, 48, 52, 59, 63, 96, 53, 72, 64, 51, 64, 44, 86, 82, 63, 79, 54, 60, 61, 56, 56, 79, 90, 54, 62, 59, 81, 64, 56, 61, 81, 60, 58, 61, 169, 60, 54, 61, 73, 74, 84, 85, 67, 72, 59, 51, 51, 67, 63, 53, 40, 71, 51, 51, 84, 61, 85, 50, 56, 72, 60, 67, 65, 62, 72, 79, 74, 70, 54, 57, 57, 63, 58, 65, 64, 60, 69, 74, 71, 70, 79, 79, 68, 51, 48, 65, 78, 70, 73, 51, 75, 49, 79, 43, 53, 62, 105, 55, 66, 66, 57, 43, 69, 62, 66, 70, 55, 64, 59, 62, 52, 66, 67, 83, 57, 52, 76, 69, 89, 76, 104, 66, 70, 67, 64, 77, 75, 57, 89, 69, 85, 75, 82, 65, 69, 65, 48, 86, 62, 55, 60, 61, 66, 51, 49, 52, 59, 68, 49, 56, 70, 75, 60, 44, 65, 56, 69, 56, 58, 57, 73, 69, 71, 53, 66, 101, 69, 61, 78, 54, 56, 63, 80, 69, 91, 62, 72, 52, 65, 69, 68, 79, 60, 59, 79, 67, 75, 59, 69, 50, 63, 141, 66, 67, 114, 64, 55, 66, 77, 68, 139, 58, 51, 65, 63, 81, 62, 72, 87, 57, 58, 62, 75, 62, 67, 58, 66, 59, 58, 89, 52, 58, 58, 56, 47, 57, 65, 53, 58, 84, 92, 71, 54, 68, 83, 83, 71, 60, 52, 69, 74, 72, 61, 69, 54, 56, 55, 70, 77, 75, 62, 61, 74, 104, 58, 100, 64, 81, 57, 81, 95, 69, 44, 62, 52, 63, 68, 57, 71, 62, 74, 61, 65, 69, 72, 68, 66, 71, 103, 52, 77, 56, 64, 84, 76, 59, 60, 61, 56, 50, 80, 68, 61, 45, 58, 63, 65, 71, 70, 72, 78, 72, 74, 68, 85, 78, 59, 63, 64, 45, 71, 80, 79, 45, 68, 67, 56, 62, 61, 52, 93, 91, 64, 94, 61, 55, 56, 56, 71, 51, 55, 57, 62, 109, 53, 62, 52, 66, 64, 79, 66, 64, 65, 62, 98, 60, 63, 45, 60, 56, 68, 59, 49, 49, 60, 76, 69, 51, 67, 58, 83, 60, 53, 72, 72, 54, 55, 55, 51, 82, 67, 78, 64, 66, 82, 91, 48, 67, 60, 69, 62, 56, 58, 77, 90, 76, 57, 82, 74, 68, 56, 56, 80, 66, 66, 49, 55, 66, 128, 71, 69, 63, 62, 74, 57, 72, 64, 66, 55, 66, 55, 85, 64, 46, 74, 100, 66, 59, 58, 60, 44, 57, 60, 70, 59, 89, 94, 64, 48, 49, 63, 65, 69, 67, 44, 68, 62, 53, 62, 61, 81, 59, 52, 66, 49, 88, 40, 62, 39, 64, 91, 45, 57, 69, 71, 61, 52, 60, 61, 74, 56, 73, 54, 58, 65, 51, 45, 66, 64, 60, 60, 73, 81, 49, 83, 69, 71, 59, 65, 65, 68, 89, 77, 62, 67, 59, 70, 60, 56, 62, 67, 61, 88, 77, 68, 52, 61, 58, 61, 128, 63, 60, 87, 65, 45, 56, 114, 89, 53, 74, 64, 68, 76, 92, 61, 88, 58, 81, 75, 68, 73, 91, 64, 72, 51, 86, 50, 68, 39, 54, 68, 83, 83, 69, 74, 67, 53, 50, 54, 63, 76, 73, 75, 78, 74, 69, 58, 59, 71, 63, 64, 69, 52, 77, 70, 53, 70, 58, 53, 74, 75, 63, 86, 48, 63, 54, 55, 180, 53, 76, 58, 61, 73, 52, 60, 67, 55, 56, 50, 58, 59, 67, 58, 49, 58, 60, 59, 77, 54, 63, 80, 52, 70, 91, 70, 58, 56, 65, 47, 64, 54, 46, 64, 59, 73, 42, 49, 97, 69, 53, 72, 59, 96, 45, 85, 58, 62, 61, 66, 45, 67, 62, 50, 43, 79, 81, 71, 51, 67, 81, 59, 56, 27, 65, 47, 52, 56, 68, 67, 49, 64, 52, 56, 97, 67, 63, 42, 71, 75, 63, 57, 63, 63, 73, 62, 70, 64, 70, 61, 107, 60, 92, 69, 72, 54, 81, 113, 60, 64, 77, 60, 72, 75, 56, 73, 58, 72, 62, 71, 60, 44, 64, 65, 68, 63, 70, 50, 47, 60, 73, 72, 64, 64, 65, 33, 72, 84, 60, 56, 49, 54, 90, 52, 65, 80, 46, 65, 70, 53, 70, 64, 74, 68, 66, 64, 64, 61, 66, 61, 54, 125, 90, 82, 74, 91, 94, 66, 60, 53, 64, 56, 57, 63, 85, 69, 69, 65, 59, 65, 59, 47, 67, 64, 59, 70, 77, 44, 97, 77, 71, 62, 50, 65, 67, 97, 70, 54, 77, 66, 86, 52, 39, 118, 94, 67, 66, 69, 82, 54, 68, 61, 59, 42, 72, 50, 58, 70, 76, 68, 138, 50, 67, 83, 66, 64, 67, 57, 81, 69, 73, 65, 74, 50, 55, 50, 63, 69, 75, 50, 102, 61, 46, 59, 67, 65, 57, 60, 51, 63, 54, 48, 77, 71, 151, 71, 54, 70, 54, 51, 44, 51, 51, 58, 70, 56, 50, 49, 63, 59, 75, 74, 97, 55, 65, 89, 55, 60, 73, 56, 76, 66, 59, 85, 78, 81, 44, 83, 36, 69, 111, 73, 61, 63, 62, 47, 65, 76, 49, 64, 49, 71, 74, 75, 51, 80, 55, 69, 46, 75, 73, 69, 51, 85, 64, 60, 90, 81, 58, 75, 67, 67, 68, 55, 100, 96, 45, 74, 52, 58, 40, 74, 82, 94, 53, 59, 62, 70, 71, 62, 61, 86, 69, 68, 68, 62, 79, 62, 60, 130, 57, 70, 55, 95, 55, 76, 55, 73, 60, 56, 77, 63, 54, 55, 68, 62, 59, 55, 37, 75, 78, 52, 79, 66, 92, 61, 75, 71, 78, 70, 65, 59, 40, 46, 56, 54, 41, 48, 61, 60, 60, 73, 81, 73, 56, 51, 52, 71, 93, 58, 42, 60, 64, 72, 58, 68, 74, 50, 95, 55, 55, 62, 64, 71, 65, 61, 56, 64, 65, 50, 87, 51, 67, 66, 69, 65, 58, 44, 59, 55, 61, 115, 80, 90, 60, 55, 53, 55, 63, 62, 81, 63, 70, 57, 67, 58, 65, 60, 40, 61, 69, 62, 112, 69, 52, 54, 54, 88, 67, 64, 74, 76, 55, 73, 76, 91, 75, 79, 79, 55, 63, 43, 65, 60, 57, 83, 63, 60, 70, 67, 69, 67, 68, 64, 81, 72, 57, 52, 74, 43, 57, 65, 47, 44, 66, 109, 86, 140, 57, 57, 63, 46, 64, 76, 89, 69, 82, 48, 66, 55, 49, 56, 58, 54, 71, 71, 46, 64, 62, 77, 57, 67, 64, 69, 55, 62, 47, 68, 55, 76, 65, 61, 48, 57, 69, 50, 49, 76, 66, 85, 48, 61, 63, 84, 62, 65, 62, 61, 70, 68, 69, 71, 72, 49, 75, 68, 68, 64, 58, 80, 72, 75, 62, 61, 58, 93, 76, 51, 57, 68, 87, 71, 75, 83, 85, 58, 88, 61, 60, 52, 85, 62, 50, 130, 56, 65, 59, 77, 73, 46, 76, 86, 63, 117, 60, 61, 52, 54, 50, 83, 65, 56, 57, 70, 42, 51, 80, 73, 61, 86, 59, 65, 72, 48, 45, 59, 52, 66, 59, 56, 68, 58, 53, 66, 42, 73, 66, 88, 67, 57, 78, 78, 62, 89, 65, 84, 68, 69, 49, 81, 53, 61, 75, 66, 55, 59, 41, 61, 46, 63, 65, 69, 60, 72, 47, 59, 63, 68, 98, 72, 66, 65, 57, 79, 53, 64, 71, 51, 52, 60, 63, 57, 79, 61, 58, 69, 69, 64, 80, 66, 50, 99, 63, 53, 61, 83, 61, 68, 61, 64, 68, 74, 59, 70, 69, 73, 68, 59, 54, 69, 69, 76, 68, 59, 95, 73, 59, 64, 70, 43, 56, 56, 58, 42, 54, 55, 43, 71, 61, 86, 86, 48, 49, 54, 53, 67, 75, 76, 43, 58, 65, 74, 72, 65, 65, 72, 67, 75, 97, 46, 54, 73, 68, 64, 73, 84, 58, 82, 71, 69, 73, 82, 56, 60, 76, 70, 74, 70, 88, 48, 66, 60, 105, 72, 65, 51, 71, 48, 63, 61, 67, 52, 71, 55, 66, 51, 75, 64, 53, 89, 63, 61, 68, 79, 77, 72, 75, 68, 48, 64, 61, 51, 56, 52, 69, 79, 45, 55, 70, 61, 57, 60, 53, 65, 67, 63, 61, 72, 61, 66, 63, 75, 63, 58, 67, 67, 75, 51, 58, 51, 102, 73, 70, 65, 73, 38, 58, 40, 49, 80, 52, 55, 60, 61, 47, 74, 59, 65, 77, 53, 82, 45, 69, 73, 45, 58, 72, 59, 46, 58, 101, 54, 78, 79, 63, 76, 68, 45, 59, 71, 60, 62, 60, 75, 73, 70, 55, 79, 54, 68, 62, 52, 95, 69, 57, 58, 57, 82, 53, 66, 81, 82, 77, 36, 112, 65, 57, 76, 57, 56, 55, 57, 54, 49, 69, 79, 76, 98, 75, 81, 92, 65, 75, 63, 89, 75, 63, 64, 70, 82, 80, 61, 66, 77, 64, 65, 52, 67, 64, 48, 54, 50, 46, 76, 40, 54, 76, 82, 62, 52, 82, 68, 78, 64, 63, 64, 81, 66, 56, 40, 57, 89, 88, 55, 66, 63, 79, 91, 85, 40, 92, 76, 62, 78, 53, 63, 78, 63, 79, 68, 52, 51, 72, 77, 46, 57, 65, 49, 62, 60, 71, 83, 80, 66, 110, 66, 49, 49, 52, 97, 88, 45, 77, 63, 42, 51, 84, 68, 69, 58, 54, 47, 73, 64, 55, 51, 54, 69, 67, 64, 57, 75, 73, 67, 51, 53, 73, 38, 48, 46, 140, 64, 86, 56, 55, 60, 67, 70, 56, 64, 67, 73, 80, 65, 50, 47, 62, 63, 42, 61, 74, 84, 55, 56, 34, 71, 57, 76, 54, 79, 59, 108, 50, 73, 62, 55, 65, 71, 80, 77, 74, 84, 70, 73, 52, 88, 86, 73, 53, 51, 65, 102, 61, 33, 62, 47, 47, 63, 74, 67, 70, 49, 74, 75, 59, 74, 110, 98, 57, 89, 88, 99, 83, 56, 57, 63, 83, 59, 52, 51, 75, 45, 64, 89, 81, 61, 73, 60, 45, 60, 88, 47, 68, 77, 55, 81, 89, 55, 81, 70, 60, 54, 54, 61, 94, 55, 60, 61, 39, 45, 60, 73, 62, 40, 107, 63, 68, 68, 75, 58, 48, 83, 83, 54, 92, 62, 83, 34, 61, 58, 56, 86, 70, 64, 51, 51, 80, 51, 39, 76, 49, 65, 66, 87, 60, 79, 51, 63, 50, 74, 71, 73, 57, 73, 77, 79, 54, 46, 57, 49, 80, 62, 72, 67, 59, 87, 54, 63, 64, 84, 84, 45, 60, 52, 54, 61, 83, 72, 59, 63, 40, 62, 60, 61, 64, 66, 69, 62, 66, 55, 100, 73, 58, 69, 53, 62, 75, 88, 63, 67, 57, 114, 87, 81, 69, 74, 79, 76, 56, 92, 57, 61, 69, 62, 60, 75, 72, 79, 61, 52, 90, 66, 50, 68, 72, 57, 89, 59, 64, 69, 48, 42, 69, 58, 67, 58, 56, 86, 77, 66, 100, 61, 61, 86, 56, 103, 77, 67, 58, 94, 63, 71, 50, 60, 77, 59, 67, 39, 60, 44, 90, 34, 85, 105, 68, 84, 55, 59, 65, 55, 62, 109, 63, 88, 73, 56, 79, 67, 79, 57, 55, 70, 73, 60, 108, 83, 66, 56, 56, 80, 58, 101, 53, 82, 90, 53, 60, 62, 48, 69, 82, 37, 71, 76, 81, 66, 55, 57, 56, 59, 55, 50, 67, 62, 56, 48, 93, 62, 45, 103, 60, 69, 68, 65, 63, 54, 114, 64, 60, 62, 65, 77, 123, 57, 53, 62, 98, 63, 54, 64, 51, 69, 110, 62, 64, 67, 49, 76, 57, 62, 63, 55, 72, 73, 129, 53, 60, 58, 68, 56, 53, 62, 59, 56, 56, 52, 113, 67, 64, 119, 67, 72, 42, 47, 49, 68, 52, 49, 58, 76, 41, 57, 53, 80, 47, 56, 64, 65, 85, 70, 77, 69, 84, 65, 69, 85, 76, 50, 72, 68, 82, 65, 60, 37, 57, 67, 84, 60, 59, 59, 64, 61, 65, 67, 64, 50, 55, 66, 53, 101, 61, 65, 51, 66, 54, 49, 81, 71, 56, 53, 83, 74, 69, 74, 83, 80, 49, 48, 69, 61, 80, 91, 65, 57, 91, 73, 68, 60, 77, 67, 75, 56, 70, 68, 76, 79, 65, 57, 62, 48, 71, 81, 56, 62, 160, 53, 56, 72, 47, 80, 58, 64, 80, 62, 71, 71, 50, 83, 68, 71, 60, 82, 52, 55, 72, 98, 54, 60, 101, 53, 58, 69, 77, 56, 43, 61, 59, 68, 55, 90, 71, 54, 63, 56, 67, 91, 59, 76, 44, 84, 70, 65, 63, 57, 68, 69, 66, 51, 60, 54, 63, 53, 61, 64, 99, 50, 64, 54, 87, 51, 59, 125, 75, 75, 60, 65, 72, 65, 62, 76, 59, 67, 85, 91, 65, 87, 58, 82, 58, 64, 67, 65, 78, 76, 65, 63, 56, 71, 63, 64, 61, 64, 56, 51, 71, 65, 54, 39, 73, 67, 48, 68, 62, 53, 69, 61, 69, 80, 49, 52, 58, 73, 37, 74, 66, 116, 69, 38, 70, 82, 45, 75, 55, 86, 65, 75, 64, 42, 95, 59, 47, 62, 51, 67, 56, 70, 71, 64, 61, 79, 68, 52, 50, 47, 60, 59, 59, 46, 87, 73, 71, 70, 79, 58, 68, 80, 101, 78, 107, 47, 96, 55, 72, 59, 89, 59, 65, 69, 75, 54, 82, 51, 77, 61, 63, 48, 68, 86, 57, 73, 59, 52, 57, 66, 66, 53, 56, 74, 50, 57, 61, 98, 64, 52, 75, 59, 81, 69, 58, 58, 76, 58, 47, 83, 77, 62, 47, 70, 61, 54, 70, 54, 73, 60, 61, 71, 59, 72, 51, 60, 80, 53, 85, 64, 71, 64, 53, 66, 69, 80, 75, 65, 77, 61, 79, 63, 50, 75, 54, 58, 60, 48, 62, 66, 61, 51, 68, 58, 51, 47, 58, 64, 63, 60, 75, 66, 57, 69, 86, 63, 62, 51, 71, 72, 74, 130, 73, 73, 67, 69, 58, 53, 82, 59, 63, 73, 43, 93, 44, 78, 63, 64, 56, 56, 54, 46, 67, 70, 64, 53, 46, 70, 51, 63, 47, 71, 58, 58, 70, 80, 51, 92, 64, 72, 50, 79, 64, 51, 63, 102, 83, 82, 71, 52, 58, 57, 48, 71, 46, 50, 94, 61, 94, 89, 73, 69, 74, 69, 63, 81, 56, 55, 60, 65, 70, 43, 59, 80, 76, 57, 61, 71, 45, 54, 66, 58, 69, 74, 60, 86, 75, 40, 74, 55, 58, 44, 53, 67, 45, 71, 67, 88, 57, 84, 66, 76, 81, 67, 73, 53, 81, 67, 69, 61, 89, 68, 57, 57, 60, 63, 76, 63, 66, 49, 74, 50, 56, 60, 54, 76, 67, 119, 127, 65, 80, 57, 67, 62, 63, 52, 72, 67, 42, 51, 49, 78, 62, 63, 74, 44, 65, 86, 51, 63, 58, 83, 70, 51, 54, 49, 64, 70, 54, 56, 59, 80, 75, 75, 72, 73, 70, 74, 68, 68, 66, 38, 54, 51, 73, 65, 61, 93, 50, 42, 74, 72, 144, 76, 78, 96, 67, 61, 69, 65, 67, 63, 69, 86, 98, 71, 44, 60, 65, 73, 60, 69, 70, 58, 81, 77, 94, 67, 53, 74, 53, 65, 71, 57, 58, 74, 55, 77, 58, 68, 59, 70, 76, 45, 51, 58, 50, 62, 84, 58, 69, 72, 55, 57, 82, 45, 53, 64, 61, 62, 76, 64, 57, 49, 112, 70, 69, 74, 70, 62, 69, 95, 63, 67, 79, 61, 54, 61, 55, 62, 63, 91, 79, 109, 76, 56, 71, 63, 50, 50, 66, 43, 68, 62, 69, 115, 56, 70, 64, 73, 57, 52, 62, 67, 38, 64, 69, 52, 70, 53, 26, 83, 69, 61, 89, 59, 49, 86, 61, 75, 64, 48, 50, 62, 63, 76, 59, 77, 66, 65, 69, 62, 61, 60, 75, 69, 61, 65, 67, 49, 48, 76, 63, 76, 59, 71, 67, 53, 56, 52, 59, 82, 72, 69, 71, 84, 97, 67, 89, 43, 74, 55, 67, 69, 46, 68, 51, 57, 47, 72, 79, 57, 64, 67, 45, 88, 57, 53, 74, 67, 65, 52, 107, 85, 57, 67, 57, 45, 74, 54, 57, 97, 52, 65, 52, 47, 71, 61, 65, 82, 80, 62, 68, 49, 50, 76, 61, 73, 51, 44, 62, 90, 69, 52, 77, 60, 69, 49, 62, 67, 72, 87, 57, 86, 82, 84, 71, 81, 62, 56, 81, 51, 66, 58, 53, 63, 77, 84, 82, 59, 86, 78, 55, 64, 95, 50, 61, 53, 35, 66, 66, 74, 59, 61, 64, 49, 71, 60, 56, 88, 46, 71, 68, 74, 57, 63, 78, 97, 47, 63, 61, 46, 61, 79, 127, 85, 62, 80, 57, 51, 69, 68, 77, 55, 74, 64, 66, 58, 53, 91, 51, 52, 48, 74, 84, 71, 77, 63, 66, 72, 45, 46, 55, 68, 71, 72, 78, 58, 62, 68, 73, 66, 59, 58, 57, 82, 54, 94, 58, 66, 67, 96, 67, 90, 61, 45, 66, 79, 69, 62, 49, 70, 93, 66, 63, 81, 60, 66, 63, 73, 43, 59, 68, 71, 66, 53, 62, 88, 80, 54, 62, 59, 59, 71, 50, 67, 46, 68, 44, 117, 59, 58, 44, 54, 88, 45, 39, 57, 55, 83, 64, 56, 78, 83, 60, 73, 63, 80, 65, 57, 54, 49, 71, 80, 75, 62, 93, 79, 70, 53, 60, 58, 74, 57, 62, 98, 78, 101, 91, 78, 64, 55, 55, 68, 58, 72, 80, 81, 52, 65, 75, 74, 75, 91, 83, 58, 57, 57, 63, 73, 71, 64, 117, 52, 46, 70, 101, 78, 61, 89, 60, 71, 66, 58, 55, 60, 113, 40, 57, 77, 64, 71, 124, 57, 65, 78, 67, 50, 67, 72, 79, 56, 104, 68, 75, 67, 49, 96, 53, 67, 72, 65, 60, 79, 82, 71, 62, 52, 68, 62, 59, 63, 51, 57, 67, 36, 71, 84, 61, 67, 53, 65, 60, 77, 55, 51, 52, 91, 72, 67, 63, 78, 56, 61, 57, 33, 58, 56, 44, 74, 55, 73, 80, 62, 52, 61, 48, 67, 57, 64, 62, 68, 58, 116, 63, 67, 122, 65, 55, 59, 56, 92, 74, 51, 40, 55, 80, 52, 52, 92, 60, 62, 58, 59, 43, 67, 57, 66, 69, 69, 80, 71, 58, 90, 84, 62, 72, 65, 54, 64, 75, 49, 64, 86, 72, 89, 49, 74, 55, 74, 65, 58, 60, 66, 66, 69, 59, 58, 52, 66, 52, 70, 47, 70, 56, 79, 60, 54, 67, 60, 57, 60, 53, 67, 89, 66, 63, 70, 63, 87, 53, 66, 54, 63, 73, 66, 48, 70, 69, 68, 46, 67, 74, 58, 64, 83, 84, 73, 61, 66, 78, 87, 55, 74, 70, 93, 56, 56, 57, 74, 73, 63, 58, 151, 64, 43, 45, 57, 60, 28, 74, 74, 63, 96, 82, 67, 74, 81, 52, 50, 70, 51, 109, 69, 68, 59, 88, 66, 61, 95, 65, 90, 63, 58, 40, 62, 74, 54, 48, 74, 57, 81, 65, 78, 74, 61, 62, 57, 43, 55, 61, 58, 63, 72, 64, 55, 92, 58, 61, 48, 86, 81, 121, 58, 69, 67, 51, 43, 71, 48, 70, 74, 62, 64, 50, 95, 63, 50, 71, 59, 53, 74, 68, 75, 57, 62, 68, 57, 63, 61, 67, 60, 76, 38, 81, 60, 74, 70, 70, 82, 52, 57, 59, 65, 54, 41, 52, 53, 46, 65, 69, 55, 68, 57, 72, 70, 75, 55, 74, 61, 78, 67, 60, 60, 81, 59, 68, 63, 84, 75, 71, 89, 66, 65, 51, 59, 58, 42, 56, 71, 69, 61, 69, 66, 61, 57, 72, 57, 39, 85, 82, 66, 50, 50, 61, 79, 45, 61, 83, 56, 54, 61, 55, 56, 83, 100, 63, 81, 75, 87, 82, 85, 64, 159, 60, 66, 64, 70, 76, 68, 60, 59, 81, 76, 74, 73, 49, 68, 59, 76, 57, 104, 68, 91, 53, 77, 61, 49, 70, 55, 57, 67, 64, 76, 80, 68, 58, 56, 81, 81, 88, 100, 70, 60, 93, 52, 38, 98, 67, 78, 65, 56, 68, 66, 46, 97, 69, 73, 67, 80, 73, 56, 65, 65, 58, 54, 78, 90, 53, 79, 83, 51, 47, 49, 61, 59, 62, 66, 67, 69, 60, 60, 52, 59, 60, 70, 69, 73, 74, 62, 73, 64, 92, 58, 53, 52, 66, 60, 66, 82, 69, 77, 73, 72, 61, 57, 56, 69, 66, 63, 63, 60, 85, 68, 71, 62, 53, 74, 79, 65, 68, 56, 61, 70, 68, 58, 65, 65, 53, 68, 60, 81, 58, 69, 60, 60, 49, 54, 49, 61, 63, 59, 138, 66, 61, 60, 52, 58, 65, 60, 42, 93, 69, 60, 53, 58, 71, 47, 56, 66, 59, 60, 62, 67, 66, 57, 58, 64, 58, 98, 68, 61, 79, 82, 84, 67, 61, 54, 58, 55, 53, 127, 87, 59, 92, 62, 64, 69, 61, 57, 84, 78, 74, 62, 76, 71, 58, 49, 108, 56, 55, 71, 56, 59, 56, 92, 66, 51, 69, 47, 47, 92, 49, 77, 43, 90, 78, 92, 55, 59, 63, 101, 56, 80, 72, 47, 81, 66, 51, 54, 66, 51, 52, 59, 68, 101, 129, 38, 62, 67, 56, 81, 49, 55, 73, 52, 57, 48, 95, 87, 67, 72, 55, 61, 62, 74, 83, 57, 50, 77, 86, 75, 51, 40, 66, 69, 84, 51, 70, 71, 83, 80, 58, 69, 92, 58, 66, 71, 67, 70, 58, 69, 70, 58, 61, 125, 64, 74, 69, 88, 72, 66, 60, 60, 63, 77, 57, 71, 78, 47, 59, 87, 95, 59, 43, 98, 56, 55, 79, 71, 81, 64, 80, 76, 64, 62, 55, 81, 74, 80, 64, 81, 59, 74, 74, 69, 74, 68, 49, 93, 73, 71, 75, 61, 57, 67, 57, 63, 76, 54, 58, 97, 67, 50, 58, 70, 58, 62, 81, 79, 67, 63, 63, 54, 57, 42, 55, 56, 54, 68, 84, 71, 85, 42, 58, 62, 124, 73, 52, 52, 54, 66, 54, 64, 80, 70, 52, 53, 78, 65, 67, 61, 69, 59, 64, 50, 74, 74, 63, 67, 66, 71, 65, 79, 59, 76, 68, 91, 79, 51, 58, 73, 57, 71, 69, 45, 50, 65, 97, 54, 61, 50, 60, 65, 65, 60, 66, 68, 58, 76, 82, 77, 75, 66, 62, 72, 73, 70, 69, 46, 44, 59, 68, 62, 64, 59, 52, 65, 57, 98, 65, 52, 62, 73, 56, 56, 57, 35, 62, 61, 73, 59, 61, 81, 46, 73, 79, 54, 79, 66, 61, 79, 80, 69, 64, 59, 47, 49, 75, 64, 80, 54, 65, 49, 66, 62, 61, 58, 73, 78, 50, 49, 64, 51, 73, 81, 56, 48, 56, 62, 62, 74, 76, 85, 54, 48, 84, 70, 58, 72, 85, 64, 62, 85, 58, 58, 83, 50, 70, 87, 56, 72, 65, 73, 63, 61, 92, 61, 62, 54, 43, 68, 74, 65, 48, 70, 65, 59, 66, 68, 94, 83, 63, 111, 96, 65, 61, 53, 55, 69, 88, 59, 59, 63, 51, 107, 87, 81, 71, 88, 61, 54, 81, 65, 83, 90, 45, 61, 72, 66, 70, 69, 71, 56, 80, 69, 77, 87, 72, 78, 76, 66, 56, 55, 42, 47, 55, 80, 68, 63, 81, 64, 77, 47, 62, 54, 61, 45, 60, 81, 64, 55, 41, 50, 98, 62, 76, 59, 82, 62, 45, 52, 61, 44, 61, 61, 70, 69, 64, 84, 63, 68, 86, 92, 101, 66, 68, 60, 81, 58, 55, 52, 51, 38, 76, 68, 75, 58, 40, 85, 85, 56, 68, 49, 82, 73, 63, 68, 63, 65, 58, 122, 61, 62, 47, 54, 51, 62, 86, 52, 66, 58, 82, 77, 82, 52, 82, 52, 82, 69, 80, 58, 67, 58, 85, 51, 62, 61, 65, 93, 60, 59, 82, 79, 61, 73, 74, 45, 49, 76, 53, 67, 73, 56, 55, 58, 59, 62, 73, 58, 64, 73, 65, 75, 74, 51, 73, 73, 86, 76, 49, 60, 82, 76, 75, 88, 56, 92, 54, 61, 79, 117, 71, 65, 59, 103, 77, 70, 54, 92, 65, 58, 68, 42, 72, 51, 62, 46, 48, 50, 60, 59, 74, 54, 46, 40, 95, 62, 83, 75, 81, 48, 62, 65, 85, 63, 81, 61, 55, 68, 61, 68, 52, 83, 116, 78, 132, 67, 87, 74, 63, 63, 50, 78, 50, 44, 37, 58, 65, 54, 71, 78, 54, 57, 54, 73, 60, 90, 67, 45, 56, 86, 65, 100, 66, 49, 62, 78, 34, 69, 87, 88, 61, 71, 44, 79, 56, 69, 54, 66, 83, 59, 53, 55, 69, 60, 65, 73, 92, 54, 94, 67, 60, 57, 56, 72, 67, 76, 104, 102, 49, 61, 70, 70, 59, 63, 72, 69, 69, 59, 70, 90, 71, 61, 73, 80, 93, 53, 63, 63, 51, 56, 51, 57, 59, 67, 93, 59, 71, 82, 69, 62, 53, 72, 65, 55, 80, 70, 61, 63, 80, 52, 57, 53, 98, 65, 64, 90, 57, 62, 75, 63, 69, 43, 80, 49, 88, 75, 43, 45, 70, 53, 71, 60, 54, 75, 56, 66, 60, 49, 61, 58, 61, 44, 64, 65, 59, 56, 62, 44, 78, 79, 82, 72, 54, 64, 46, 66, 64, 56, 67, 60, 48, 107, 52, 74, 83, 66, 60, 118, 67, 77, 62, 47, 97, 76, 61, 90, 83, 81, 69, 62, 50, 45, 61, 58, 71, 68, 70, 60, 61, 30, 40, 91, 66, 81, 64, 50, 124, 62, 70, 38, 67, 66, 53, 87, 41, 34, 70, 69, 72, 55, 94, 54, 55, 84, 39, 59, 54, 66, 58, 64, 54, 60, 87, 55, 58, 63, 74, 58, 53, 56, 68, 60, 95, 85, 56, 46, 72, 67, 40, 70, 54, 71, 68, 76, 50, 65, 51, 75, 53, 50, 91, 63, 55, 72, 91, 48, 90, 54, 70, 60, 70, 39, 81, 63, 51, 85, 73, 128, 59, 87, 53, 99, 88, 88, 71, 58, 70, 68, 70, 68, 53, 42, 80, 67, 71, 68, 66, 67, 56, 57, 57, 54, 52, 94, 68, 60, 66, 52, 59, 70, 40, 66, 95, 64, 69, 55, 74, 57, 75, 79, 64, 58, 64, 62, 52, 55, 61, 54, 62, 96, 52, 72, 48, 46, 45, 43, 56, 61, 76, 70, 70, 67, 61, 53, 84, 57, 60, 87, 67, 74, 50, 77, 112, 78, 62, 88, 57, 68, 57, 77, 37, 49, 76, 71, 82, 81, 62, 75, 61, 44, 53, 74, 45, 78, 54, 53, 77, 70, 73, 55, 53, 54, 60, 83, 64, 61, 57, 65, 47, 81, 69, 88, 72, 82, 50, 70, 66, 58, 78, 60, 87, 85, 83, 53, 60, 65, 106, 63, 58, 64, 48, 35, 87, 49, 65, 75, 65, 49, 51, 56, 84, 50, 65, 72, 55, 59, 57, 61, 67, 93, 60, 58, 68, 54, 76, 57, 71, 65, 60, 54, 77, 79, 88, 79, 53, 46, 49, 63, 58, 67, 31, 63, 58, 59, 63, 93, 53, 41, 51, 58, 60, 64, 66, 70, 84, 61, 83, 40, 51, 63, 48, 54, 115, 60, 54, 42, 94, 62, 39, 61, 58, 69, 70, 72, 71, 47, 61, 44, 75, 78, 62, 44, 65, 73, 59, 55, 71, 83, 45, 101, 68, 71, 65, 72, 67, 72, 55, 69, 68, 67, 86, 74, 122, 51, 59, 43, 38, 75, 68, 56, 39, 67, 70, 97, 62, 94, 64, 59, 56, 60, 67, 89, 61, 63, 68, 107, 54, 67, 47, 53, 68, 72, 61, 53, 47, 42, 64, 69, 57, 79, 60, 50, 36, 62, 74, 95, 73, 55, 51, 71, 53, 71, 89, 79, 61, 64, 81, 60, 50, 86, 63, 89, 75, 61, 70, 69, 65, 70, 61, 115, 78, 69, 73, 101, 72, 64, 75, 50, 78, 57, 63, 66, 51, 71, 39, 75, 56, 54, 110, 79, 87, 50, 69, 74, 88, 59, 63, 57, 55, 54, 44, 61, 66, 68, 68, 65, 56, 61, 48, 63, 65, 88, 78, 84, 44, 60, 73, 56, 65, 45, 66, 53, 82, 48, 69, 53, 73, 88, 52, 77, 77, 63, 72, 55, 56, 67, 76, 50, 65, 68, 74, 46, 59, 59, 84, 65, 92, 66, 63, 108, 52, 89, 71, 64, 64, 62, 66, 45, 38, 57, 64, 55, 83, 71, 72, 57, 71, 55, 62, 54, 64, 74, 72, 58, 61, 67, 54, 78, 51, 118, 109, 45, 78, 63, 86, 78, 65, 65, 62, 57, 105, 84, 62, 79, 74, 83, 70, 58, 60, 65, 57, 55, 33, 55, 56, 54, 79, 55, 71, 60, 57, 57, 77, 71, 65, 65, 67, 72, 65, 40, 95, 43, 61, 53, 71, 66, 72, 69, 44, 78, 77, 44, 64, 81, 57, 76, 70, 85, 90, 58, 62, 69, 62, 61, 83, 79, 55, 56, 67, 73, 77, 76, 55, 74, 59, 80, 70, 70, 61, 78, 61, 66, 62, 66, 47, 90, 46, 53, 68, 48, 59, 60, 75, 70, 59, 60, 54, 61, 56, 43, 34, 50, 57, 78, 61, 62, 70, 56, 75, 56, 53, 96, 79, 52, 54, 52, 77, 38, 63, 59, 58, 51, 81, 72, 77, 46, 57, 43, 66, 72, 75, 52, 68, 64, 50, 72, 48, 75, 77, 69, 67, 76, 75, 75, 75, 61, 69, 56, 77, 63, 95, 61, 83, 60, 53, 63, 61, 59, 83, 65, 85, 56, 55, 61, 60, 52, 109, 68, 86, 56, 68, 76, 52, 84, 113, 42, 85, 57, 45, 89, 80, 81, 82, 72, 67, 68, 52, 62, 58, 58, 73, 56, 63, 80, 58, 65, 63, 93, 76, 89, 82, 57, 48, 49, 66, 60, 67, 73, 80, 66, 78, 59, 76, 61, 74, 61, 70, 70, 64, 67, 84, 62, 69, 66, 77, 56, 60, 60, 64, 51, 58, 82, 66, 53, 72, 72, 64, 60, 101, 53, 59, 61, 60, 50, 55, 64, 70, 53, 52, 47, 66, 50, 71, 56, 62, 53, 60, 69, 56, 50, 71, 59, 65, 39, 62, 68, 84, 100, 80, 77, 71, 52, 59, 57, 67, 56, 71, 55, 66, 65, 56, 85, 88, 63, 57, 84, 71, 83, 66, 84, 62, 52, 52, 49, 67, 63, 64, 66, 65, 61, 72, 69, 72, 52, 60, 63, 76, 82, 53, 56, 61, 56, 50, 84, 66, 89, 56, 56, 54, 54, 86, 65, 63, 118, 74, 62, 84, 89, 48, 85, 52, 79, 88, 48, 70, 59, 52, 59, 49, 74, 63, 80, 60, 73, 63, 64, 70, 62, 54, 54, 61, 49, 72, 58, 53, 72, 49, 70, 65, 58, 74, 61, 58, 68, 60, 75, 64, 56, 59, 68, 72, 62, 55, 57, 133, 51, 72, 62, 73, 62, 60, 65, 64, 68, 75, 67, 65, 66, 62, 69, 68, 67, 54, 52, 58, 49, 64, 56, 73, 50, 96, 95, 69, 64, 55, 57, 54, 61, 63, 53, 65, 55, 66, 65, 47, 61, 46, 60, 52, 51, 61, 92, 65, 44, 78, 53, 69, 64, 70, 55, 62, 60, 63, 65, 58, 50, 75, 90, 53, 53, 61, 78, 58, 68, 61, 64, 78, 81, 62, 56, 70, 59, 54, 83, 64, 59, 46, 55, 57, 78, 77, 42, 52, 91, 117, 77, 70, 79, 76, 80, 54, 78, 62, 66, 69, 60, 61, 57, 65, 64, 72, 45, 70, 55, 67, 72, 51, 65, 45, 72, 65, 70, 68, 38, 83, 68, 51, 72, 51, 66, 53, 63, 46, 70, 54, 71, 66, 77, 61, 66, 70, 59, 69, 48, 57, 67, 73, 75, 71, 66, 133, 69, 64, 68, 90, 57, 51, 58, 54, 58, 57, 56, 55, 71, 64, 70, 69, 61, 46, 70, 61, 64, 54, 61, 60, 58, 63, 104, 73, 64, 75, 53, 56, 56, 67, 83, 69, 46, 48, 53, 64, 68, 63, 44, 78, 57, 45, 54, 66, 52, 65, 65, 64, 62, 62, 54, 96, 55, 62, 69, 54, 53, 55, 50, 52, 76, 67, 65, 59, 76, 59, 76, 95, 72, 61, 72, 56, 67, 71, 58, 47, 64, 62, 55, 67, 52, 67, 96, 64, 62, 69, 62, 47, 52, 58, 63, 70, 72, 53, 61, 85, 44, 69, 54, 62, 62, 89, 65, 113, 50, 58, 60, 59, 50, 85, 46, 69, 83, 50, 51, 57, 57, 59, 53, 63, 59, 56, 49, 58, 53, 57, 87, 48, 58, 64, 57, 71, 64, 70, 70, 49, 68, 65, 69, 71, 55, 73, 63, 72, 46, 50, 70, 56, 53, 63, 79, 71, 53, 82, 70, 54, 56, 51, 57, 56, 68, 64, 52, 43, 46, 51, 61, 67, 60, 58, 74, 45, 65, 56, 58, 52, 63, 60, 72, 43, 60, 56, 61, 87, 72, 59, 63, 64, 61, 54, 46, 93, 78, 52, 95, 67, 65, 50, 88, 49, 101, 58, 55, 81, 59, 50, 78, 61, 55, 63, 60, 62, 63, 63, 85, 71, 84, 91, 74, 70, 62, 78, 62, 57, 61, 83, 69, 51, 99, 66, 92, 52, 64, 66, 52, 80, 70, 58, 85, 66, 49, 70, 65, 47, 52, 93, 54, 56, 76, 57, 67, 109, 79, 80, 79, 53, 61, 82, 47, 83, 58, 90, 97, 60, 55, 71, 58, 65, 59, 77, 90, 52, 51, 87, 87, 58, 65, 67, 69, 56, 55, 68, 60, 55, 68, 57, 46, 66, 71, 74, 54, 45, 64, 80, 91, 90, 79, 61, 86, 50, 58, 50, 79, 80, 54, 53, 66, 81, 50, 57, 50, 53, 63, 64, 99, 73, 42, 59, 89, 58, 81, 75, 44, 60, 70, 52, 45, 58, 56, 62, 61, 69, 82, 78, 67, 60, 52, 67, 68, 58, 56, 45, 55, 62, 58, 78, 52, 81, 109, 53, 50, 72, 62, 95, 73, 63, 71, 47, 70, 66, 59, 62, 96, 82, 55, 62, 63, 50, 53, 76, 58, 76, 62, 84, 114, 56, 47, 59, 71, 62, 66, 72, 69, 65, 42, 47, 56, 85, 51, 63, 62, 85, 72, 59, 64, 90, 59, 64, 47, 71, 113, 77, 71, 70, 60, 55, 70, 48, 71, 64, 46, 59, 69, 55, 61, 76, 51, 46, 63, 48, 63, 65, 70, 83, 67, 64, 87, 91, 91, 54, 59, 43, 130, 57, 55, 71, 60, 69, 67, 65, 59, 58, 94, 65, 59, 40, 67, 64, 64, 63, 57, 65, 66, 67, 54, 81, 51, 69, 54, 65, 69, 59, 43, 61, 66, 67, 56, 55, 61, 55, 62, 56, 67, 71, 121, 59, 50, 65, 76, 72, 59, 60, 82, 65, 70, 71, 69, 54, 50, 51, 79, 73, 50, 43, 65, 69, 55, 101, 65, 60, 48, 48, 67, 59, 66, 73, 74, 43, 73, 73, 57, 63, 64, 88, 65, 62, 86, 60, 68, 57, 57, 64, 73, 62, 71, 65, 64, 61, 66, 67, 64, 64, 99, 66, 63, 55, 64, 73, 57, 67, 66, 66, 58, 74, 100, 77, 86, 69, 56, 64, 63, 61, 95, 94, 94, 68, 70, 63, 63, 62, 88, 55, 75, 54, 89, 66, 51, 89, 57, 51, 67, 157, 65, 80, 78, 62, 63, 66, 88, 54, 62, 102, 72, 55, 57, 60, 68, 76, 73, 50, 54, 59, 55, 53, 80, 58, 66, 55, 71, 59, 65, 71, 65, 55, 58, 84, 79, 62, 75, 63, 65, 59, 57, 110, 81, 52, 54, 67, 78, 63, 52, 63, 62, 72, 64, 75, 51, 70, 91, 66, 71, 61, 78, 69, 73, 60, 61, 64, 65, 57, 75, 67, 62, 60, 70, 69, 65, 76, 57, 72, 86, 63, 109, 51, 65, 66, 64, 65, 52, 61, 66, 74, 54, 58, 56, 49, 78, 49, 69, 70, 62, 80, 51, 59, 53, 76, 62, 91, 55, 36, 55, 64, 78, 60, 73, 62, 68, 69, 71, 88, 94, 72, 66, 77, 84, 61, 76, 69, 73, 59, 77, 48, 71, 52, 55, 99, 70, 81, 61, 53, 52, 61, 58, 58, 81, 83, 62, 61, 60, 47, 68, 62, 65, 52, 82, 74, 73, 72, 51, 58, 45, 71, 80, 73, 56, 75, 70, 56, 74, 78, 74, 50, 58, 74, 64, 75, 36, 81, 69, 60, 54, 69, 74, 71, 85, 55, 85, 68, 54, 108, 66, 59, 55, 85, 50, 67, 70, 65, 63, 68, 63, 84, 42, 78, 47, 66, 58, 67, 52, 60, 61, 69, 56, 65, 90, 71, 54, 52, 60, 64, 63, 60, 99, 65, 65, 57, 55, 55, 62, 67, 51, 75, 81, 53, 70, 64, 63, 45, 69, 53, 50, 73, 60, 46, 77, 50, 55, 61, 73, 44, 47, 49, 45, 75, 80, 66, 56, 71, 63, 65, 60, 59, 60, 75, 61, 94, 65, 105, 69, 68, 73, 52, 56, 52, 68, 65, 60, 67, 60, 68, 59, 81, 50, 56, 70, 74, 54, 67, 73, 61, 52, 43, 49, 70, 75, 55, 63, 45, 58, 98, 61, 63, 93, 64, 58, 52, 58, 58, 56, 79, 59, 69, 86, 59, 66, 50, 83, 56, 71, 89, 66, 71, 58, 58, 87, 69, 106, 68, 66, 81, 57, 53, 67, 93, 54, 61, 62, 53, 51, 72, 71, 53, 55, 62, 89, 78, 67, 73, 105, 63, 60, 73, 90, 49, 81, 61, 65, 63, 65, 134, 66, 59, 55, 85, 66, 93, 61, 79, 63, 72, 73, 62, 51, 67, 76, 66, 86, 47, 59, 52, 68, 65, 52, 62, 61, 59, 71, 66, 78, 48, 83, 69, 61, 68, 82, 65, 64, 71, 84, 50, 66, 55, 74, 64, 59, 46, 70, 56, 68, 71, 82, 68, 64, 72, 43, 54, 61, 63, 56, 54, 56, 75, 63, 65, 63, 63, 83, 80, 54, 56, 48, 64, 62, 70, 65, 54, 71, 66, 52, 65, 75, 52, 62, 51, 59, 81, 55, 69, 72, 50, 58, 100, 62, 71, 61, 65, 67, 42, 68, 78, 62, 72, 44, 60, 116, 81, 77, 55, 60, 65, 67, 60, 65, 67, 58, 51, 45, 80, 72, 59, 56, 67, 83, 89, 59, 68, 71, 92, 52, 64, 46, 68, 70, 61, 55, 47, 71, 65, 82, 74, 71, 69, 58, 66, 38, 68, 77, 59, 56, 78, 49, 51, 54, 38, 69, 71, 81, 64, 83, 58, 56, 46, 61, 71, 53, 95, 61, 72, 74, 85, 60, 64, 79, 67, 61, 64, 84, 67, 56, 81, 80, 74, 53, 57, 57, 95, 72, 37, 68, 83, 83, 63, 58, 50, 71, 57, 70, 46, 46, 72, 65, 63, 52, 65, 60, 93, 47, 76, 64, 49, 75, 85, 53, 46, 66, 58, 63, 59, 108, 55, 59, 55, 68, 64, 66, 72, 74, 87, 54, 53, 66, 79, 77, 63, 77, 79, 38, 60, 60, 66, 68, 73, 78, 76, 51, 70, 57, 65, 74, 70, 89, 68, 66, 56, 107, 89, 40, 61, 73, 59, 63, 59, 59, 111, 73, 77, 93, 78, 65, 66, 64, 45, 65, 73, 54, 70, 87, 64, 58, 68, 58, 56, 89, 53, 64, 61, 52, 76, 92, 89, 72, 61, 40, 57, 68, 60, 64, 79, 69, 76, 63, 63, 30, 44, 87, 59, 65, 56, 62, 67, 78, 54, 64, 65, 57, 66, 57, 57, 58, 84, 65, 76, 51, 64, 71, 49, 76, 61, 60, 58, 68, 61, 69, 60, 67, 94, 60, 49, 69, 92, 66, 86, 73, 82, 79, 45, 69, 66, 46, 87, 54, 57, 66, 76, 56, 80, 66, 43, 59, 61, 74, 76, 67, 82, 64, 81, 73, 69, 67, 76, 56, 76, 63, 55, 46, 76, 43, 68, 56, 68, 35, 59, 53, 82, 76, 56, 69, 88, 61, 62, 54, 84, 84, 65, 59, 79, 63, 83, 64, 57, 62, 52, 52, 96, 41, 70, 52, 74, 49, 83, 47, 74, 48, 64, 76, 71, 65, 70, 44, 76, 106, 73, 65, 73, 73, 62, 43, 66, 57, 76, 58, 63, 73, 71, 57, 77, 54, 67, 51, 79, 66, 88, 79, 47, 64, 61, 59, 60, 61, 57, 73, 55, 88, 68, 52, 63, 64, 47, 75, 69, 73, 67, 67, 70, 61, 105, 31, 57, 54, 54, 55, 84, 74, 66, 66, 78, 76, 55, 52, 45, 44, 63, 51, 61, 79, 45, 66, 40, 85, 90, 98, 97, 65, 51, 62, 63, 63, 51, 67, 59, 56, 63, 65, 80, 70, 73, 64, 58, 47, 89, 60, 48, 64, 63, 55, 49, 89, 66, 68, 64, 66, 52, 67, 80, 70, 68, 78, 66, 78, 81, 72, 60, 78, 93, 61, 65, 69, 57, 50, 83, 74, 41, 81, 60, 71, 65, 66, 36, 58, 85, 77, 45, 66, 71, 43, 63, 55, 57, 74, 80, 109, 64, 63, 47, 54, 67, 74, 61, 69, 66, 67, 83, 54, 56, 66, 99, 77, 56, 55, 57, 45, 76, 71, 110, 65, 64, 62, 55, 56, 52, 48, 76, 50, 74, 49, 93, 75, 55, 59, 53, 57, 63, 55, 55, 59, 66, 75, 68, 75, 57, 53, 61, 61, 70, 84, 48, 51, 60, 68, 66, 84, 63, 65, 104, 49, 63, 77, 77, 70, 73, 64, 73, 58, 68, 72, 54, 47, 35, 69, 58, 51, 57, 90, 82, 74, 54, 75, 76, 53, 59, 51, 59, 50, 118, 59, 80, 75, 57, 59, 77, 62, 77, 70, 57, 76, 79, 42, 51, 62, 78, 61, 65, 53, 72, 59, 59, 59, 84, 65, 62, 65, 49, 60, 69, 67, 94, 55, 61, 67, 66, 60, 58, 66, 58, 51, 78, 68, 98, 56, 77, 57, 55, 74, 81, 64, 47, 60, 64, 79, 58, 65, 44, 49, 87, 88, 49, 66, 72, 68, 68, 78, 48, 77, 55, 64, 58, 73, 67, 67, 56, 49, 71, 61, 55, 79, 89, 102, 56, 81, 56, 90, 67, 63, 69, 58, 54, 61, 57, 86, 48, 61, 64, 67, 58, 74, 66, 70, 61, 58, 58, 65, 56, 59, 48, 52, 49, 110, 82, 55, 56, 72, 60, 68, 63, 97, 69, 55, 79, 52, 41, 68, 51, 79, 64, 59, 61, 73, 69, 65, 58, 101, 78, 49, 62, 69, 53, 65, 63, 64, 62, 54, 73, 56, 56, 68, 57, 57, 38, 82, 55, 68, 55, 46, 67, 59, 59, 70, 82, 64, 73, 70, 95, 61, 55, 53, 64, 61, 67, 67, 65, 75, 63, 78, 55, 41, 62, 58, 55, 63, 59, 56, 56, 77, 69, 57, 59, 69, 55, 62, 59, 57, 61, 50, 58, 89, 67, 73, 52, 58, 73, 57, 64, 62, 46, 55, 83, 72, 76, 85, 76, 67, 67, 70, 88, 89, 74, 72, 66, 50, 85, 116, 63, 77, 55, 51, 53, 70, 58, 63, 52, 66, 63, 78, 50, 69, 53, 61, 67, 63, 108, 59, 60, 64, 71, 57, 102, 66, 82, 58, 70, 59, 70, 57, 69, 105, 65, 63, 68, 81, 78, 47, 60, 68, 78, 75, 69, 72, 53, 58, 59, 66, 59, 58, 58, 66, 61, 58, 94, 52, 57, 69, 50, 66, 57, 80, 55, 67, 48, 56, 109, 57, 70, 68, 61, 76, 66, 60, 131, 75, 71, 54, 60, 63, 81, 64, 68, 67, 63, 59, 81, 56, 57, 74, 55, 85, 82, 79, 67, 66, 65, 46, 67, 68, 47, 66, 78, 48, 66, 73, 61, 71, 48, 63, 65, 60, 67, 64, 59, 72, 64, 62, 68, 38, 57, 43, 77, 54, 62, 56, 58, 61, 58, 82, 52, 69, 72, 62, 70, 65, 75, 52, 67, 75, 42, 75, 62, 65, 59, 60, 93, 56, 56, 60, 63, 59, 57, 48, 96, 64, 52, 58, 56, 65, 53, 63, 65, 80, 65, 71, 61, 49, 75, 66, 65, 65, 68, 76, 61, 70, 71, 79, 64, 68, 64, 65, 64, 62, 112, 62, 61, 66, 68, 66, 72, 76, 72, 62, 101, 70, 61, 57, 95, 62, 54, 60, 80, 74, 66, 55, 63, 76, 59, 55, 72, 59, 102, 72, 37, 54, 67, 76, 63, 41, 56, 67, 46, 83, 63, 60, 92, 75, 56, 55, 55, 62, 106, 74, 75, 58, 57, 68, 73, 60, 77, 109, 64, 59, 70, 66, 81, 55, 58, 57, 69, 65, 57, 51, 68, 125, 67, 74, 86, 69, 59, 65, 60, 62, 64, 53, 60, 101, 67, 71, 51, 72, 81, 51, 61, 58, 55, 55, 89, 54, 63, 83, 62, 96, 59, 72, 59, 57, 70, 56, 56, 66, 78, 76, 55, 56, 49, 56, 60, 69, 58, 55, 70, 71, 60, 61, 70, 38, 79, 64, 61, 51, 59, 71, 86, 77, 72, 71, 67, 100, 96, 70, 79, 82, 56, 64, 80, 71, 44, 79, 58, 52, 65, 50, 61, 72, 68, 58, 72, 62, 65, 49, 64, 60, 60, 59, 79, 79, 76, 66, 55, 67, 62, 54, 108, 67, 70, 87, 53, 61, 54, 64, 96, 50, 59, 68, 71, 55, 48, 56, 76, 60, 48, 53, 47, 44, 69, 64, 90, 62, 49, 57, 55, 57, 90, 62, 57, 77, 79, 63, 68, 60, 59, 73, 75, 71, 79, 57, 69, 56, 57, 63, 65, 61, 61, 64, 81, 66, 71, 58, 58, 61, 60, 62, 95, 61, 139, 81, 75, 57, 60, 68, 46, 59, 54, 60, 82, 91, 55, 55, 49, 56, 68, 66, 65, 49, 63, 61, 64, 72, 60, 72, 56, 51, 68, 98, 63, 100, 69, 66, 63, 60, 58, 80, 61, 44, 72, 65, 70, 75, 58, 55, 101, 77, 69, 88, 101, 65, 62, 68, 172, 68, 48, 70, 60, 93, 67, 54, 72, 64, 51, 79, 146, 89, 61, 104, 58, 66, 46, 61, 74, 97, 66, 59, 63, 69, 61, 53, 64, 97, 105, 56, 69, 86, 73, 65, 51, 49, 58, 46, 51, 50, 64, 52, 44, 63, 76, 86, 69, 59, 65, 63, 59, 56, 54, 63, 47, 80, 77, 69, 78, 55, 51, 76, 57, 55, 60, 65, 75, 68, 57, 63, 94, 56, 71, 62, 65, 47, 71, 67, 94, 54, 63, 67, 48, 73, 51, 55, 85, 66, 54, 64, 67, 67, 45, 72, 57, 61, 60, 65, 71, 70, 57, 42, 65, 67, 63, 53, 63, 63, 62, 65, 53, 53, 68, 66, 60, 63, 89, 60, 64, 61, 79, 72, 62, 53, 66, 103, 63, 102, 60, 56, 98, 47, 68, 50, 94, 59, 86, 57, 65, 81, 58, 54, 61, 56, 77, 77, 52, 59, 60, 65, 66, 70, 61, 64, 54, 51, 57, 52, 74, 52, 57, 54, 65, 88, 55, 57, 61, 66, 64, 65, 39, 62, 64, 48, 93, 60, 79, 59, 62, 58, 69, 56, 64, 50, 55, 105, 55, 63, 58, 62, 53, 47, 59, 56, 68, 60, 63, 67, 68, 79, 58, 67, 61, 67, 63, 51, 64, 58, 113, 57, 52, 66, 81, 90, 93, 39, 69, 61, 60, 56, 86, 84, 60, 59, 50, 74, 64, 57, 57, 58, 101, 99, 88, 78, 50, 78, 57, 73, 59, 57, 58, 94, 61, 60, 61, 63, 55, 60, 41, 65, 88, 72, 49, 61, 76, 71, 71, 65, 69, 68, 64, 60, 63, 73, 60, 49, 69, 70, 87, 61, 84, 78, 58, 57, 74, 72, 44, 58, 113, 59, 61, 66, 90, 72, 62, 71, 70, 77, 77, 76, 60, 60, 41, 57, 56, 55, 51, 58, 77, 58, 56, 75, 56, 58, 68, 52, 57, 77, 51, 59, 56, 53, 68, 80, 64, 106, 69, 80, 63, 55, 79, 66, 47, 61, 90, 62, 57, 58, 65, 64, 55, 59, 56, 68, 77, 58, 61, 59, 61, 51, 54, 74, 54, 60, 62, 64, 65, 67, 72, 93, 93, 60, 55, 47, 75, 56, 75, 61, 62, 81, 77, 62, 86, 93, 56, 44, 65, 54, 73, 69, 81, 58, 68, 63, 56, 73, 67, 96, 80, 62, 77, 76, 78, 53, 75, 81, 87, 70, 50, 65, 51, 60, 74, 74, 96, 96, 70, 53, 62, 83, 53, 69, 62, 73, 67, 48, 93, 36, 73, 71, 68, 69, 67, 44, 88, 63, 66, 54, 73, 56, 66, 64, 49, 71, 68, 66, 57, 52, 54, 70, 72, 74, 80, 54, 64, 55, 53, 62, 55, 47, 65, 89, 54, 76, 58, 56, 76, 111, 59, 57, 75, 62, 73, 60, 99, 95, 53, 73, 101, 68, 55, 66, 39, 50, 62, 53, 63, 87, 68, 103, 45, 70, 91, 87, 100, 71, 53, 60, 60, 59, 60, 76, 59, 103, 55, 42, 66, 65, 75, 55, 59, 81, 64, 80, 63, 46, 79, 56, 64, 83, 62, 77, 73, 73, 81, 57, 62, 61, 41, 67, 110, 54, 59, 48, 46, 52, 56, 60, 69, 73, 46, 56, 80, 70, 73, 59, 74, 68, 58, 69, 77, 58, 71, 120, 107, 62, 65, 59, 40, 71, 35, 64, 36, 105, 72, 87, 64, 52, 79, 54, 44, 78, 111, 64, 64, 60, 60, 53, 73, 68, 80, 66, 63, 51, 67, 68, 63, 58, 59, 73, 63, 69, 66, 105, 82, 73, 48, 55, 69, 48, 43, 55, 70, 37, 54, 62, 56, 55, 79, 68, 77, 67, 77, 57, 90, 55, 85, 96, 44, 62, 45, 65, 61, 57, 70, 48, 59, 74, 80, 70, 62, 67, 55, 60, 60, 60, 66, 41, 53, 61, 68, 43, 64, 78, 59, 57, 64, 58, 61, 50, 85, 57, 66, 65, 84, 79, 58, 54, 69, 69, 58, 81, 70, 90, 74, 60, 58, 82, 56, 44, 57, 68, 70, 45, 81, 59, 66, 55, 61, 71, 70, 55, 71, 67, 66, 48, 57, 65, 68, 106, 79, 45, 81, 76, 63, 62, 98, 74, 64, 56, 68, 63, 46, 78, 60, 73, 60, 55, 42, 60, 52, 66, 58, 55, 86, 89, 57, 51, 49, 56, 76, 71, 60, 64, 62, 75, 67, 76, 93, 62, 93, 55, 67, 60, 51, 61, 84, 90, 67, 67, 30, 71, 69, 69, 85, 47, 58, 70, 35, 53, 41, 86, 60, 65, 59, 62, 53, 79, 63, 68, 54, 59, 63, 89, 64, 63, 59, 62, 67, 59, 91, 67, 65, 55, 64, 76, 67, 95, 64, 69, 47, 71, 87, 65, 68, 46, 70, 77, 74, 102, 96, 68, 61, 89, 61, 55, 38, 70, 56, 54, 57, 54, 62, 62, 56, 61, 79, 53, 67, 60, 106, 63, 63, 59, 63, 78, 48, 97, 73, 57, 69, 75, 41, 65, 54, 123, 67, 55, 57, 136, 48, 61, 59, 67, 107, 98, 86, 83, 64, 54, 58, 72, 61, 62, 52, 68, 57, 72, 59, 62, 56, 53, 55, 72, 48, 69, 87, 63, 65, 60, 58, 73, 72, 76, 64, 49, 73, 79, 63, 54, 93, 100, 46, 50, 60, 62, 71, 65, 60, 48, 49, 65, 76, 67, 47, 83, 44, 82, 100, 60, 48, 79, 67, 57, 55, 65, 60, 64, 66, 86, 81, 81, 62, 58, 69, 62, 60, 60, 75, 50, 86, 78, 57, 55, 46, 40, 72, 49, 51, 65, 66, 98, 54, 60, 70, 64, 61, 51, 60, 42, 54, 77, 63, 62, 68, 63, 69, 61, 47, 59, 72, 79, 57, 70, 64, 66, 99, 61, 68, 67, 60, 72, 112, 47, 51, 62, 80, 92, 75, 65, 63, 81, 63, 83, 70, 66, 38, 53, 90, 110, 54, 61, 77, 66, 73, 63, 63, 66, 55, 60, 84, 49, 56, 95, 107, 61, 83, 71, 69, 88, 82, 70, 53, 65, 85, 49, 74, 58, 62, 70, 61, 91, 51, 71, 73, 50, 80, 65, 72, 84, 60, 68, 64, 56, 53, 44, 79, 65, 71, 53, 70, 55, 70, 58, 56, 74, 75, 80, 48, 68, 57, 49, 45, 79, 54, 58, 55, 82, 47, 65, 107, 91, 51, 76, 60, 69, 51, 72, 66, 95, 53, 56, 64, 90, 75, 73, 70, 56, 56, 52, 78, 70, 66, 59, 71, 45, 45, 71, 81, 75, 42, 56, 58, 62, 79, 59, 75, 70, 49, 62, 80, 69, 98, 63, 51, 66, 69, 59, 56, 65, 55, 70, 84, 58, 53, 49, 56, 50, 70, 66, 69, 87, 45, 75, 58, 48, 79, 80, 46, 53, 77, 68, 50, 77, 49, 69, 74, 65, 53, 88, 42, 68, 56, 67, 69, 59, 49, 68, 71, 58, 73, 74, 64, 76, 49, 49, 67, 51, 70, 57, 49, 52, 47, 54, 76, 57, 63, 64, 44, 71, 77, 115, 44, 59, 53, 73, 65, 57, 45, 85, 71, 44, 44, 66, 74, 70, 84, 73, 62, 62, 60, 62, 40, 55, 70, 55, 77, 64, 50, 98, 70, 52, 77, 50, 73, 66, 73, 127, 75, 123, 84, 55, 82, 60, 50, 60, 149, 64, 71, 55, 47, 67, 46, 120, 84, 95, 54, 54, 52, 63, 77, 72, 69, 86, 73, 107, 54, 34, 62, 67, 54, 72, 51, 61, 77, 64, 62, 55, 58, 48, 63, 60, 65, 79, 60, 132, 65, 86, 101, 67, 87, 58, 49, 80, 63, 65, 52, 71, 53, 55, 68, 71, 95, 76, 69, 48, 46, 70, 48, 60, 59, 60, 54, 47, 50, 57, 55, 76, 74, 68, 79, 56, 62, 80, 35, 45, 64, 55, 64, 77, 70, 60, 53, 68, 55, 78, 74, 103, 43, 102, 62, 58, 84, 50, 73, 60, 56, 76, 80, 62, 70, 92, 64, 74, 60, 52, 54, 62, 59, 74, 47, 59, 33, 48, 59, 54, 76, 57, 76, 61, 93, 62, 54, 73, 61, 66, 41, 87, 78, 54, 30, 75, 77, 85, 56, 78, 74, 83, 72, 75, 60, 46, 36, 75, 110, 51, 50, 59, 89, 70, 56, 58, 74, 65, 95, 86, 71, 93, 72, 62, 45, 70, 53, 57, 78, 82, 97, 85, 63, 85, 58, 52, 57, 70, 73, 58, 50, 60, 50, 62, 64, 64, 50, 115, 67, 67, 53, 68, 75, 54, 51, 89, 54, 101, 68, 43, 58, 50, 43, 60, 62, 96, 56, 72, 86, 51, 63, 44, 78, 77, 57, 44, 67, 72, 68, 74, 55, 95, 84, 82, 59, 68, 77, 60, 46, 56, 78, 71, 69, 57, 53, 72, 65, 72, 79, 62, 92, 66, 73, 55, 69, 79, 71, 50, 78, 52, 66, 54, 71, 56, 100, 39, 76, 42, 55, 102, 78, 67, 55, 55, 77, 60, 72, 58, 57, 76, 56, 72, 61, 47, 62, 52, 63, 76, 71, 61, 60, 55, 45, 67, 69, 68, 66, 62, 84, 62, 64, 55, 58, 66, 51, 65, 53, 64, 50, 66, 66, 52, 50, 61, 71, 67, 63, 53, 41, 57, 63, 64, 74, 70, 49, 76, 75, 76, 74, 65, 69, 58, 57, 66, 82, 45, 74, 75, 73, 64, 89, 92, 75, 44, 49, 71, 55, 57, 60, 62, 61, 48, 65, 59, 63, 64, 63, 58, 48, 45, 56, 89, 91, 59, 59, 49, 62, 76, 82, 59, 50, 57, 78, 76, 94, 67, 78, 68, 74, 90, 59, 73, 60, 80, 56, 73, 62, 67, 72, 56, 51, 68, 51, 67, 61, 71, 66, 64, 48, 73, 62, 69, 70, 72, 61, 67, 59, 56, 67, 89, 92, 55, 52, 61, 64, 53, 58, 57, 69, 60, 63, 48, 122, 67, 63, 102, 99, 67, 69, 65, 74, 66, 63, 53, 79, 68, 61, 62, 58, 44, 64, 56, 67, 65, 51, 67, 56, 65, 64, 56, 56, 61, 61, 60, 52, 55, 78, 74, 50, 112, 67, 68, 79, 69, 47, 78, 50, 91, 56, 79, 73, 87, 60, 65, 46, 138, 77, 54, 70, 61, 63, 65, 61, 63, 67, 56, 61, 90, 52, 63, 49, 66, 63, 63, 70, 61, 62, 73, 59, 66, 84, 55, 77, 64, 60, 52, 75, 62, 56, 79, 99, 60, 81, 57, 67, 58, 79, 55, 84, 41, 61, 60, 55, 60, 76, 48, 56, 74, 53, 59, 76, 58, 50, 56, 58, 76, 63, 64, 51, 67, 63, 68, 63, 75, 52, 49, 65, 57, 38, 55, 61, 100, 67, 72, 56, 81, 64, 55, 67, 60, 57, 44, 57, 68, 71, 65, 71, 73, 74, 58, 75, 78, 69, 66, 51, 66, 54, 64, 72, 61, 104, 67, 62, 55, 101, 63, 57, 44, 63, 86, 66, 56, 74, 71, 68, 74, 58, 67, 72, 54, 55, 78, 56, 62, 61, 69, 52, 61, 54, 36, 65, 48, 61, 68, 90, 99, 70, 60, 55, 46, 69, 55, 73, 44, 74, 62, 70, 67, 59, 71, 92, 63, 70, 60, 74, 70, 58, 63, 116, 57, 57, 72, 67, 66, 87, 66, 58, 62, 52, 129, 60, 66, 53, 49, 59, 58, 58, 54, 59, 65, 64, 78, 60, 75, 58, 78, 57, 53, 62, 62, 86, 55, 44, 58, 62, 58, 60, 75, 62, 56, 61, 68, 60, 75, 55, 62, 68, 52, 77, 59, 81, 60, 81, 70, 76, 70, 51, 52, 62, 60, 73, 63, 96, 60, 57, 67, 49, 58, 73, 61, 64, 58, 54, 55, 80, 65, 77, 97, 65, 48, 70, 62, 61, 65, 50, 53, 64, 67, 74, 108, 57, 55, 73, 59, 70, 55, 73, 84, 60, 57, 61, 47, 53, 71, 64, 51, 64, 53, 55, 57, 84, 97, 58, 52, 79, 65, 60, 60, 83, 65, 55, 74, 61, 68, 69, 66, 87, 86, 59, 75, 60, 66, 64, 59, 59, 70, 65, 90, 60, 75, 55, 108, 53, 82, 59, 54, 61, 59, 61, 75, 43, 123, 61, 68, 62, 81, 47, 69, 63, 52, 68, 55, 68, 50, 85, 55, 74, 51, 62, 63, 82, 76, 56, 106, 50, 61, 57, 57, 64, 74, 56, 54, 66, 63, 60, 64, 105, 60, 68, 62, 48, 66, 82, 61, 57, 89, 58, 74, 65, 74, 57, 60, 85, 47, 48, 52, 73, 69, 48, 66, 56, 53, 59, 73, 66, 77, 56, 56, 60, 61, 73, 63, 56, 74, 54, 53, 86, 48, 75, 71, 76, 66, 56, 71, 76, 64, 66, 51, 78, 64, 60, 48, 70, 75, 61, 66, 76, 73, 59, 58, 54, 68, 66, 62, 83, 52, 66, 57, 75, 87, 66, 62, 64, 78, 75, 77, 72, 63, 63, 69, 71, 67, 56, 64, 62, 83, 63, 130, 122, 57, 69, 58, 75, 59, 36, 60, 74, 61, 59, 67, 51, 81, 67, 69, 73, 72, 85, 57, 60, 105, 63, 77, 56, 64, 52, 66, 64, 40, 58, 66, 62, 63, 56, 68, 66, 61, 76, 50, 79, 72, 51, 56, 58, 43, 90, 56, 64, 74, 56, 53, 59, 60, 149, 77, 53, 53, 75, 54, 52, 50, 65, 51, 73, 64, 60, 50, 59, 106, 82, 61, 60, 68, 50, 90, 61, 130, 49, 96, 66, 72, 58, 76, 66, 60, 50, 66, 50, 59, 86, 58, 55, 35, 64, 48, 55, 53, 49, 50, 73, 72, 57, 57, 71, 66, 81, 67, 79, 64, 63, 72, 54, 63, 69, 75, 116, 77, 66, 70, 60, 65, 65, 70, 67, 69, 52, 54, 52, 57, 44, 64, 52, 76, 65, 71, 70, 64, 58, 72, 77, 59, 65, 70, 61, 65, 82, 50, 60, 66, 54, 83, 61, 82, 54, 65, 55, 86, 68, 63, 63, 61, 56, 58, 62, 58, 84, 50, 61, 77, 64, 55, 56, 58, 49, 57, 57, 61, 90, 72, 77, 110, 66, 59, 70, 87, 70, 55, 62, 50, 82, 88, 79, 71, 60, 70, 76, 76, 63, 52, 70, 62, 69, 69, 71, 68, 67, 47, 80, 58, 65, 46, 79, 107, 49, 63, 92, 69, 67, 60, 56, 152, 59, 56, 67, 52, 52, 58, 75, 67, 54, 70, 66, 82, 63, 64, 70, 82, 83, 73, 56, 60, 58, 83, 75, 56, 68, 67, 52, 54, 53, 66, 57, 68, 66, 52, 55, 74, 63, 63, 58, 57, 64, 59, 62, 72, 44, 45, 68, 61, 49, 62, 109, 79, 50, 45, 53, 47, 60, 75, 61, 54, 102, 54, 47, 68, 53, 83, 63, 73, 70, 73, 60, 70, 51, 68, 70, 88, 68, 39, 50, 61, 62, 73, 52, 51, 80, 63, 59, 73, 64, 99, 53, 62, 56, 78, 66, 60, 79, 53, 67, 51, 60, 48, 63, 57, 60, 74, 72, 66, 60, 75, 71, 57, 58, 67, 61, 52, 72, 58, 61, 66, 71, 75, 72, 58, 88, 53, 76, 61, 72, 60, 49, 60, 81, 68, 63, 50, 73, 88, 62, 67, 77, 54, 73, 64, 83, 46, 60, 76, 80, 53, 73, 97, 59, 84, 79, 69, 77, 64, 64, 66, 59, 62, 50, 64, 93, 47, 64, 49, 76, 68, 62, 65, 53, 63, 57, 59, 56, 72, 55, 51, 76, 50, 69, 77, 105, 58, 69, 66, 51, 56, 55, 60, 60, 56, 72, 54, 47, 52, 60, 57, 59, 62, 76, 81, 70, 77, 69, 86, 49, 55, 86, 73, 72, 51, 90, 69, 76, 56, 62, 71, 39, 64, 72, 55, 70, 54, 59, 55, 49, 77, 73, 74, 55, 45, 55, 81, 70, 62, 47, 87, 117, 73, 65, 69, 65, 55, 82, 56, 53, 53, 64, 60, 62, 85, 68, 43, 58, 80, 103, 70, 70, 63, 62, 43, 56, 72, 70, 97, 60, 59, 69, 64, 62, 75, 74, 66, 65, 61, 65, 66, 58, 59, 60, 46, 70, 108, 64, 69, 44, 72, 78, 100, 43, 56, 70, 73, 69, 64, 67, 67, 64, 53, 82, 65, 63, 69, 70, 72, 57, 77, 58, 51, 65, 78, 38, 73, 52, 57, 62, 55, 57, 40, 56, 62, 50, 76, 79, 67, 62, 59, 47, 60, 43, 48, 54, 52, 68, 69, 64, 60, 66, 63, 57, 54, 53, 55, 52, 67, 64, 98, 61, 55, 71, 75, 78, 67, 52, 53, 73, 135, 60, 65, 63, 60, 60, 55, 67, 67, 73, 90, 75, 46, 53, 57, 58, 57, 65, 61, 55, 66, 72, 62, 65, 57, 68, 64, 59, 57, 54, 71, 73, 56, 52, 51, 51, 70, 53, 49, 74, 51, 73, 55, 62, 59, 59, 74, 54, 64, 73, 86, 60, 68, 110, 65, 56, 75, 85, 72, 61, 60, 79, 63, 52, 64, 50, 53, 52, 56, 64, 86, 54, 64, 55, 59, 59, 86, 53, 80, 63, 114, 62, 87, 59, 54, 67, 82, 63, 61, 82, 56, 58, 53, 70, 55, 90, 49, 62, 73, 74, 54, 60, 64, 69, 74, 81, 61, 151, 58, 77, 72, 55, 51, 69, 46, 99, 98, 64, 61, 76, 47, 74, 67, 60, 61, 65, 67, 60, 61, 64, 68, 75, 58, 64, 77, 75, 65, 67, 50, 38, 59, 64, 90, 54, 81, 65, 80, 76, 94, 99, 89, 64, 59, 77, 91, 44, 76, 71, 80, 56, 54, 56, 66, 92, 50, 60, 85, 50, 47, 60, 61, 67, 69, 88, 87, 84, 61, 72, 51, 62, 56, 69, 62, 67, 51, 70, 73, 64, 59, 69, 46, 55, 63, 98, 50, 57, 56, 57, 67, 57, 67, 57, 52, 53, 63, 54, 62, 58, 62, 78, 71, 57, 66, 70, 71, 59, 59, 70, 60, 79, 58, 77, 57, 51, 55, 101, 61, 48, 95, 78, 53, 59, 61, 64, 57, 64, 67, 64, 53, 61, 51, 50, 93, 58, 63, 69, 76, 53, 42, 75, 49, 60, 51, 73, 71, 51, 65, 51, 48, 63, 63, 88, 65, 64, 62, 87, 58, 67, 59, 58, 68, 43, 59, 47, 81, 71, 101, 59, 68, 57, 76, 43, 55, 116, 60, 59, 67, 67, 58, 96, 106, 68, 60, 67, 75, 58, 67, 60, 63, 55, 51, 83, 65, 93, 66, 49, 85, 49, 60, 101, 50, 64, 57, 72, 59, 55, 122, 62, 105, 50, 64, 54, 66, 74, 69, 62, 64, 64, 86, 68, 58, 66, 77, 58, 47, 51, 78, 59, 88, 71, 50, 63, 55, 57, 57, 63, 63, 59, 62, 69, 83, 56, 65, 50, 61, 42, 94, 58, 58, 66, 90, 52, 77, 57, 51, 70, 64, 75, 73, 80, 51, 66, 54, 61, 91, 77, 71, 55, 72, 69, 62, 64, 61, 50, 63, 93, 56, 61, 58, 50, 69, 98, 67, 61, 63, 105, 79, 50, 84, 49, 44, 66, 54, 87, 64, 69, 55, 65, 83, 66, 98, 56, 83, 91, 88, 87, 82, 76, 64, 60, 70, 58, 58, 71, 66, 53, 63, 61, 58, 97, 60, 41, 69, 55, 72, 71, 44, 40, 84, 57, 63, 56, 90, 85, 50, 68, 53, 59, 66, 87, 62, 67, 64, 69, 75, 65, 70, 67, 85, 83, 113, 62, 59, 71, 89, 64, 65, 47, 69, 59, 69, 52, 75, 53, 57, 66, 60, 60, 48, 68, 60, 47, 88, 60, 63, 49, 53, 58, 56, 68, 50, 91, 90, 49, 50, 71, 56, 151, 53, 58, 57, 61, 51, 101, 61, 66, 54, 58, 89, 61, 65, 77, 71, 75, 56, 78, 65, 67, 58, 53, 57, 58, 60, 56, 71, 67, 57, 79, 67, 57, 71, 56, 65, 68, 64, 56, 62, 51, 60, 67, 66, 59, 68, 70, 80, 59, 64, 100, 69, 55, 66, 83, 70, 85, 64, 61, 76, 51, 47, 49, 76, 60, 100, 70, 54, 59, 56, 88, 63, 53, 50, 56, 63, 62, 49, 80, 62, 58, 93, 114, 100, 58, 61, 68, 54, 52, 62, 80, 67, 91, 64, 62, 40, 62, 51, 58, 91, 59, 53, 52, 66, 79, 64, 59, 51, 44, 65, 49, 91, 99, 66, 57, 55, 67, 79, 75, 65, 62, 70, 81, 82, 53, 56, 69, 57, 54, 46, 77, 76, 57, 55, 70, 52, 49, 84, 66, 74, 63, 48, 55, 68, 76, 74, 126, 53, 63, 67, 54, 55, 44, 53, 65, 63, 61, 83, 80, 60, 56, 54, 86, 66, 55, 59, 66, 88, 66, 51, 63, 61, 57, 48, 45, 49, 65, 54, 61, 69, 71, 63, 64, 59, 59, 67, 63, 48, 60, 50, 73, 59, 55, 53, 80, 64, 79, 58, 71, 46, 102, 59, 51, 65, 60, 60, 51, 77, 55, 62, 63, 48, 84, 65, 52, 53, 92, 58, 110, 52, 55, 66, 69, 61, 65, 54, 78, 66, 38, 60, 74, 70, 50, 66, 72, 72, 81, 57, 61, 65, 64, 76, 54, 62, 65, 34, 63, 50, 69, 50, 59, 91, 67, 56, 68, 57, 69, 79, 56, 62, 64, 58, 72, 55, 69, 71, 57, 70, 70, 73, 58, 67, 84, 104, 57, 93, 78, 75, 52, 66, 69, 85, 66, 60, 79, 78, 52, 69, 62, 61, 67, 54, 67, 68, 54, 55, 50, 59, 75, 62, 61, 79, 68, 53, 66, 69, 98, 54, 62, 65, 86, 66, 55, 65, 52, 96, 48, 76, 46, 70, 52, 101, 53, 68, 86, 56, 61, 48, 78, 61, 79, 82, 52, 58, 50, 65, 65, 80, 54, 71, 126, 63, 72, 84, 73, 49, 61, 66, 77, 61, 69, 65, 66, 80, 58, 71, 51, 95, 59, 57, 80, 49, 95, 42, 48, 86, 72, 62, 55, 64, 63, 81, 74, 55, 57, 72, 156, 77, 62, 67, 56, 60, 38, 41, 67, 53, 65, 79, 71, 52, 47, 39, 53, 51, 67, 52, 72, 52, 93, 59, 50, 56, 91, 106, 56, 56, 62, 57, 69, 65, 59, 47, 57, 69, 60, 66, 71, 66, 51, 50, 80, 62, 85, 47, 53, 66, 71, 85, 63, 56, 52, 61, 83, 60, 34, 76, 54, 74, 61, 60, 73, 49, 53, 50, 87, 67, 94, 58, 62, 80, 67, 60, 87, 49, 79, 42, 65, 78, 73, 55, 55, 50, 73, 52, 66, 45, 85, 69, 59, 74, 64, 103, 75, 61, 84, 93, 73, 44, 57, 61, 77, 70, 83, 57, 79, 61, 94, 60, 56, 48, 61, 67, 45, 62, 69, 48, 48, 66, 57, 80, 81, 50, 55, 76, 92, 75, 67, 107, 47, 69, 67, 73, 72, 57, 83, 86, 65, 57, 74, 96, 48, 65, 61, 64, 99, 60, 68, 55, 72, 74, 64, 46, 63, 59, 52, 34, 86, 87, 56, 80, 64, 53, 55, 59, 69, 61, 56, 48, 81, 47, 91, 50, 62, 53, 71, 54, 50, 62, 62, 59, 58, 69, 73, 58, 56, 68, 59, 54, 73, 50, 60, 54, 94, 46, 68, 61, 71, 45, 55, 58, 68, 47, 68, 70, 104, 49, 86, 99, 72, 89, 60, 117, 57, 58, 46, 73, 54, 44, 78, 69, 59, 43, 69, 40, 78, 90, 78, 63, 75, 73, 75, 92, 67, 61, 41, 60, 92, 108, 105, 68, 51, 39, 59, 69, 70, 66, 63, 40, 85, 61, 67, 54, 85, 65, 91, 84, 78, 72, 118, 48, 77, 50, 54, 42, 58, 55, 70, 49, 115, 56, 58, 52, 61, 88, 107, 65, 46, 84, 51, 63, 48, 105, 61, 48, 75, 47, 70, 74, 89, 96, 69, 71, 67, 57, 78, 76, 54, 94, 44, 48, 62, 64, 41, 50, 43, 59, 56, 85, 105, 65, 47, 73, 55, 74, 113, 64, 59, 86, 69, 63, 59, 68, 67, 47, 50, 93, 46, 59, 80, 90, 49, 66, 53, 89, 53, 57, 55, 80, 72, 54, 86, 74, 55, 74, 47, 40, 101, 52, 88, 84, 41, 48, 68, 78, 97, 90, 58, 69, 73, 48, 51, 72, 42, 89, 54, 71, 58, 81, 65, 65, 54, 58, 47, 107, 94, 65, 70, 69, 54, 47, 48, 49, 71, 57, 79, 68, 62, 71, 62, 48, 62, 59, 61, 96, 65, 56, 56, 94, 67, 51, 77, 67, 61, 62, 89, 50, 84, 50, 54, 89, 40, 86, 60, 91, 78, 59, 66, 46, 101, 84, 55, 75, 57, 56, 82, 73, 70, 78, 78, 53, 48, 64, 75, 80, 53, 52, 82, 67, 68, 66, 98, 63, 63, 46, 71, 53, 67, 98, 102, 65, 75, 73, 89, 55, 74, 42, 85, 76, 63, 68, 69, 43, 86, 58, 62, 73, 92, 86, 58, 63, 50, 67, 59, 48, 53, 62, 79, 73, 76, 54, 74, 61, 45, 68, 71, 70, 72, 55, 67, 76, 68, 96, 63, 65, 35, 69, 52, 78, 49, 125, 81, 83, 45, 57, 70, 70, 54, 59, 44, 47, 44, 65, 79, 68, 60, 76, 53, 88, 54, 65, 70, 62, 47, 60, 62, 59, 72, 65, 75, 94, 70, 82, 53, 69, 60, 84, 68, 85, 64, 50, 70, 61, 34, 51, 50, 69, 69, 46, 62, 88, 62, 68, 43, 64, 33, 96, 70, 60, 48, 68, 70, 72, 66, 62, 83, 72, 71, 81, 69, 61, 63, 73, 66, 78, 43, 53, 103, 75, 73, 43, 71, 64, 68, 72, 58, 45, 82, 79, 51, 55, 43, 72, 56, 72, 61, 83, 59, 94, 63, 45, 55, 74, 67, 63, 60, 64, 71, 71, 62, 53, 73, 61, 54, 59, 75, 64, 60, 64, 54, 57, 77, 75, 66, 58, 63, 91, 61, 62, 56, 64, 58, 75, 65, 55, 84, 65, 50, 69, 42, 58, 84, 79, 48, 55, 60, 74, 58, 62, 96, 79, 80, 55, 72, 68, 47, 95, 49, 86, 56, 54, 80, 67, 123, 50, 64, 89, 79, 42, 56, 93, 61, 54, 50, 49, 71, 87, 71, 56, 110, 57, 46, 49, 72, 75, 78, 63, 42, 68, 67, 79, 60, 72, 56, 64, 62, 150, 73, 30, 105, 64, 60, 55, 75, 42, 55, 55, 36, 63, 98, 56, 61, 73, 64, 94, 79, 73, 109, 53, 73, 67, 79, 67, 60, 48, 70, 141, 62, 61, 60, 44, 76, 53, 44, 87, 69, 87, 50, 70, 66, 64, 68, 80, 75, 76, 58, 71, 48, 58, 65, 82, 61, 60, 71, 75, 52, 56, 57, 66, 72, 36, 78, 90, 62, 101, 34, 56, 47, 52, 61, 41, 60, 115, 76, 80, 70, 54, 107, 69, 56, 50, 76, 63, 56, 55, 66, 67, 70, 66, 63, 56, 52, 59, 89, 56, 84, 57, 57, 58, 56, 53, 63, 86, 75, 87, 48, 107, 81, 38, 55, 56, 78, 46, 44, 60, 65, 54, 71, 76, 69, 124, 48, 58, 65, 74, 60, 76, 55, 73, 102, 73, 58, 43, 95, 79, 45, 91, 67, 61, 45, 75, 93, 55, 48, 59, 55, 64, 66, 56, 61, 63, 101, 99, 51, 67, 54, 42, 79, 57, 140, 104, 50, 52, 50, 73, 76, 68, 108, 31, 72, 53, 69, 53, 59, 72, 61, 91, 57, 61, 49, 54, 51, 64, 50, 65, 88, 55, 38, 71, 69, 59, 63, 67, 74, 58, 47, 57, 67, 77, 64, 67, 73, 56, 52, 60, 83, 81, 66, 71, 61, 53, 64, 53, 43, 59, 43, 66, 61, 55, 49, 105, 50, 62, 47, 64, 86, 72, 59, 59, 74, 50, 74, 71, 81, 70, 71, 69, 54, 76, 70, 74, 51, 80, 71, 59, 82, 61, 59, 86, 106, 65, 50, 90, 74, 89, 70, 50, 53, 88, 86, 45, 47, 89, 69, 55, 55, 77, 64, 81, 80, 56, 82, 64, 46, 51, 51, 50, 64, 78, 76, 59, 69, 48, 37, 41, 75, 49, 70, 55, 58, 68, 52, 53, 90, 75, 86, 68, 55, 52, 71, 83, 71, 68, 43, 70, 83, 37, 54, 63, 65, 47, 49, 60, 42, 63, 60, 67, 63, 54, 72, 60, 51, 68, 54, 105, 60, 59, 43, 52, 68, 55, 98, 55, 64, 64, 63, 67, 83, 99, 59, 58, 65, 62, 64, 73, 63, 70, 45, 63, 58, 62, 58, 65, 60, 70, 91, 59, 59, 72, 61, 88, 69, 67, 75, 91, 68, 66, 62, 67, 61, 66, 52, 55, 39, 58, 51, 63, 77, 66, 47, 62, 69, 50, 52, 70, 35, 46, 57, 58, 70, 68, 66, 61, 53, 54, 60, 57, 72, 48, 71, 63, 65, 69, 60, 60, 73, 60, 45, 62, 61, 61, 58, 68, 65, 69, 62, 48, 67, 66, 97, 59, 63, 86, 69, 79, 67, 53, 59, 73, 88, 56, 123, 56, 124, 70, 78, 60, 69, 58, 49, 79, 65, 73, 66, 62, 78, 73, 50, 66, 62, 54, 66, 66, 72, 62, 64, 60, 48, 54, 97, 59, 53, 60, 66, 103, 57, 60, 75, 87, 78, 55, 86, 62, 65, 78, 54, 67, 58, 56, 69, 57, 70, 68, 63, 70, 72, 63, 75, 59, 47, 115, 69, 59, 55, 112, 90, 54, 74, 55, 81, 46, 75, 46, 49, 56, 96, 73, 91, 48, 52, 52, 64, 42, 62, 60, 62, 69, 70, 32, 58, 66, 42, 55, 31, 81, 77, 110, 75, 67, 71, 91, 97, 90, 55, 55, 39, 49, 89, 58, 50, 67, 51, 62, 61, 43, 83, 52, 53, 39, 63, 64, 60, 73, 61, 64, 76, 72, 61, 86, 59, 48, 66, 65, 56, 64, 75, 55, 81, 60, 75, 55, 50, 107, 78, 65, 58, 68, 60, 81, 82, 55, 42, 69, 119, 76, 61, 32, 51, 52, 76, 74, 71, 91, 67, 58, 104, 53, 82, 58, 60, 59, 40, 53, 57, 66, 65, 55, 78, 49, 63, 70, 71, 48, 60, 52, 97, 51, 73, 42, 75, 62, 52, 71, 70, 93, 67, 68, 69, 64, 49, 51, 126, 66, 53, 48, 48, 107, 75, 89, 80, 81, 70, 56, 63, 90, 76, 76, 29, 68, 77, 85, 62, 55, 88, 77, 75, 76, 83, 67, 74, 47, 57, 77, 62, 91, 44, 46, 65, 49, 132, 62, 91, 52, 67, 55, 76, 106, 56, 67, 70, 71, 48, 48, 112, 79, 57, 52, 77, 80, 92, 50, 61, 83, 69, 54, 70, 70, 55, 55, 72, 63, 47, 71, 57, 103, 94, 60, 61, 72, 72, 75, 49, 52, 42, 83, 69, 80, 46, 61, 76, 52, 90, 60, 65, 71, 79, 47, 62, 69, 68, 56, 55, 58, 68, 46, 119, 46, 54, 74, 48, 85, 77, 50, 72, 69, 61, 59, 62, 61, 62, 68, 73, 61, 56, 52, 76, 69, 64, 83, 67, 40, 71, 83, 50, 71, 52, 51, 48, 84, 71, 69, 60, 96, 72, 63, 74, 64, 33, 72, 85, 64, 49, 77, 59, 67, 69, 65, 91, 64, 53, 70, 60, 71, 47, 90, 69, 61, 70, 78, 51, 66, 59, 116, 86, 59, 63, 67, 56, 52, 61, 62, 69, 72, 49, 72, 76, 68, 61, 73, 53, 62, 58, 71, 66, 54, 54, 73, 96, 42, 95, 77, 60, 82, 46, 64, 43, 79, 48, 38, 64, 69, 65, 74, 63, 90, 73, 59, 76, 57, 110, 52, 64, 47, 64, 59, 74, 82, 62, 63, 60, 63, 51, 77, 93, 85, 77, 69, 71, 84, 44, 94, 92, 51, 66, 65, 41, 93, 59, 82, 71, 56, 75, 51, 79, 66, 56, 76, 56, 79, 45, 67, 72, 43, 63, 66, 57, 68, 64, 80, 58, 76, 82, 45, 63, 64, 49, 72, 66, 60, 82, 53, 45, 53, 69, 50, 52, 59, 51, 69, 57, 64, 65, 79, 47, 84, 50, 65, 54, 57, 61, 47, 75, 63, 91, 52, 67, 58, 87, 57, 61, 68, 80, 70, 66, 80, 86, 54, 51, 70, 52, 49, 55, 70, 57, 68, 54, 64, 47, 62, 52, 76, 62, 60, 57, 86, 52, 48, 73, 43, 54, 74, 90, 55, 67, 69, 50, 62, 84, 70, 73, 51, 63, 56, 88, 72, 90, 66, 58, 85, 81, 64, 48, 76, 48, 36, 50, 61, 74, 57, 68, 65, 45, 59, 60, 113, 62, 66, 59, 55, 71, 66, 56, 57, 60, 58, 61, 55, 41, 66, 89, 51, 57, 118, 70, 58, 65, 78, 50, 80, 75, 58, 51, 84, 70, 75, 60, 64, 42, 91, 65, 74, 52, 55, 48, 63, 48, 77, 92, 73, 54, 79, 67, 66, 76, 52, 64, 121, 62, 61, 56, 91, 50, 143, 72, 53, 87, 85, 64, 62, 56, 52, 80, 47, 72, 71, 94, 66, 71, 76, 72, 72, 57, 50, 71, 63, 73, 98, 75, 60, 106, 52, 49, 72, 55, 81, 67, 67, 65, 113, 47, 45, 60, 74, 82, 78, 147, 50, 67, 56, 92, 77, 56, 70, 79, 71, 68, 58, 64, 41, 58, 87, 65, 46, 67, 54, 58, 50, 60, 81, 60, 59, 69, 73, 43, 62, 33, 63, 69, 69, 68, 53, 54, 42, 67, 69, 140, 52, 57, 92, 71, 68, 83, 66, 82, 58, 54, 124, 121, 56, 58, 59, 66, 53, 60, 66, 70, 64, 47, 70, 89, 67, 78, 49, 119, 72, 57, 57, 63, 82, 65, 56, 69, 68, 54, 62, 70, 55, 45, 63, 82, 71, 46, 50, 60, 63, 55, 59, 65, 67, 53, 59, 61, 59, 54, 72, 59, 74, 101, 50, 74, 62, 61, 61, 69, 96, 57, 59, 67, 75, 89, 78, 72, 56, 55, 56, 59, 45, 60, 67, 77, 71, 65, 63, 58, 55, 87, 71, 93, 65, 54, 38, 63, 70, 46, 68, 53, 61, 65, 62, 65, 64, 55, 64, 41, 57, 57, 73, 57, 52, 73, 75, 51, 53, 83, 77, 98, 59, 48, 51, 56, 76, 50, 62, 66, 73, 85, 110, 79, 58, 66, 75, 50, 59, 68, 63, 95, 58, 77, 117, 70, 45, 67, 98, 61, 87, 63, 65, 61, 90, 82, 43, 68, 56, 70, 62, 73, 66, 68, 96, 58, 56, 68, 55, 81, 73, 56, 62, 69, 60, 53, 64, 80, 64, 65, 53, 77, 54, 83, 74, 58, 63, 66, 75, 70, 55, 77, 66, 47, 50, 72, 64, 58, 66, 78, 57, 60, 78, 78, 64, 76, 113, 63, 62, 57, 62, 59, 69, 87, 44, 72, 76, 87, 118, 85, 60, 62, 52, 74, 52, 69, 61, 70, 45, 61, 66, 80, 70, 65, 60, 71, 87, 67, 65, 61, 61, 72, 71, 63, 64, 53, 47, 130, 64, 69, 70, 56, 84, 62, 68, 69, 60, 73, 51, 77, 69, 103, 69, 73, 62, 64, 59, 63, 62, 44, 69, 53, 64, 51, 60, 65, 54, 56, 63, 55, 50, 62, 43, 52, 59, 65, 64, 54, 65, 60, 66, 62, 90, 70, 76, 70, 77, 65, 53, 88, 59, 65, 75, 73, 63, 55, 72, 55, 55, 68, 58, 85, 55, 57, 56, 49, 63, 90, 69, 64, 74, 44, 54, 71, 51, 61, 73, 73, 78, 76, 85, 68, 63, 54, 82, 72, 66, 56, 65, 75, 65, 41, 59, 73, 67, 56, 77, 55, 50, 53, 69, 71, 74, 40, 75, 77, 68, 71, 61, 89, 71, 56, 55, 59, 70, 66, 74, 70, 58, 69, 76, 50, 50, 71, 52, 48, 69, 70, 70, 53, 58, 59, 65, 74, 68, 82, 75, 63, 69, 67, 55, 56, 74, 59, 86, 57, 55, 45, 45, 69, 63, 77, 83, 42, 59, 52, 57, 56, 69, 57, 55, 61, 53, 64, 68, 71, 70, 44, 64, 68, 55, 65, 72, 46, 65, 49, 81, 67, 65, 53, 59, 57, 52, 64, 91, 46, 58, 52, 65, 56, 58, 70, 61, 64, 78, 61, 115, 64, 62, 69, 88, 70, 67, 61, 90, 85, 60, 76, 64, 75, 54, 69, 68, 60, 79, 69, 65, 82, 87, 86, 71, 59, 71, 61, 77, 70, 63, 60, 59, 65, 96, 73, 63, 56, 65, 52, 62, 79, 72, 60, 71, 66, 60, 60, 48, 68, 80, 81, 87, 57, 57, 74, 94, 64, 50, 61, 61, 52, 53, 72, 72, 59, 56, 62, 85, 65, 86, 70, 150, 82, 68, 55, 77, 61, 147, 68, 83, 73, 66, 63, 68, 58, 70, 61, 70, 108, 76, 54, 62, 83, 68, 60, 53, 78, 53, 80, 59, 54, 61, 69, 58, 67, 62, 69, 67, 107, 60, 75, 67, 64, 53, 67, 67, 65, 58, 69, 52, 96, 72, 70, 63, 86, 43, 63, 70, 60, 57, 55, 52, 51, 49, 61, 70, 69, 57, 41, 61, 72, 66, 76, 81, 46, 52, 65, 81, 55, 50, 75, 90, 59, 58, 63, 52, 60, 49, 64, 57, 53, 56, 58, 66, 55, 55, 62, 44, 40, 72, 63, 61, 83, 72, 68, 61, 91, 99, 75, 76, 66, 67, 69, 70, 46, 103, 62, 75, 64, 78, 79, 52, 54, 52, 62, 58, 67, 76, 67, 58, 65, 110, 61, 71, 33, 66, 64, 78, 67, 92, 99, 58, 70, 73, 61, 62, 49, 63, 49, 54, 114, 73, 71, 61, 83, 86, 65, 65, 59, 60, 74, 81, 67, 54, 78, 80, 51, 55, 73, 76, 60, 45, 78, 58, 61, 66, 60, 65, 57, 75, 62, 82, 46, 61, 52, 50, 69, 71, 56, 55, 69, 69, 96, 55, 72, 65, 62, 58, 51, 60, 65, 55, 50, 64, 61, 67, 65, 62, 72, 64, 61, 78, 61, 90, 88, 54, 70, 54, 48, 63, 65, 62, 83, 80, 48, 62, 89, 56, 50, 62, 79, 63, 71, 60, 56, 75, 51, 85, 68, 64, 57, 69, 51, 127, 52, 75, 73, 57, 59, 100, 63, 73, 60, 66, 47, 65, 54, 61, 47, 81, 61, 61, 84, 53, 44, 89, 63, 59, 73, 70, 55, 62, 60, 50, 70, 60, 67, 63, 67, 52, 57, 61, 57, 94, 64, 55, 69, 61, 53, 71, 63, 74, 75, 45, 64, 63, 64, 73, 61, 65, 55, 87, 54, 77, 86, 68, 70, 105, 74, 57, 75, 66, 74, 66, 65, 56, 59, 55, 58, 68, 50, 56, 65, 75, 64, 64, 73, 60, 67, 69, 71, 67, 62, 56, 74, 70, 63, 85, 61, 79, 87, 50, 53, 66, 95, 69, 65, 70, 58, 60, 65, 50, 65, 62, 62, 75, 60, 64, 57, 55, 75, 62, 144, 56, 89, 52, 66, 73, 60, 54, 72, 73, 98, 58, 57, 73, 52, 73, 77, 62, 81, 100, 50, 67, 69, 69, 52, 73, 77, 54, 53, 70, 60, 56, 55, 75, 65, 60, 134, 61, 104, 64, 61, 52, 82, 65, 64, 59, 58, 57, 60, 56, 70, 68, 53, 75, 54, 64, 41, 66, 95, 66, 66, 46, 57, 75, 73, 47, 69, 60, 56, 58, 119, 52, 70, 57, 107, 82, 69, 59, 95, 106, 53, 58, 68, 49, 67, 64, 76, 86, 67, 73, 73, 66, 51, 69, 64, 65, 55, 61, 68, 48, 55, 61, 78, 70, 74, 46, 50, 53, 57, 71, 49, 63, 55, 58, 58, 44, 51, 68, 58, 62, 49, 65, 57, 69, 59, 62, 54, 62, 62, 57, 83, 63, 70, 54, 79, 50, 65, 73, 57, 62, 61, 80, 56, 73, 67, 62, 59, 87, 74, 65, 55, 37, 56, 61, 89, 75, 68, 52, 70, 80, 52, 46, 61, 63, 46, 67, 69, 65, 54, 88, 84, 62, 63, 64, 56, 74, 75, 72, 75, 89, 69, 83, 56, 55, 66, 68, 60, 96, 75, 117, 74, 93, 72, 54, 81, 67, 83, 74, 56, 49, 77, 63, 101, 69, 57, 67, 98, 71, 69, 47, 65, 53, 74, 68, 57, 58, 60, 81, 75, 63, 58, 77, 45, 63, 81, 70, 67, 94, 75, 68, 61, 54, 60, 56, 80, 61, 103, 70, 81, 53, 88, 59, 69, 63, 67, 73, 45, 65, 42, 47, 49, 57, 82, 59, 74, 78, 77, 90, 71, 48, 56, 55, 69, 47, 57, 61, 61, 71, 56, 68, 67, 65, 58, 57, 96, 77, 65, 60, 60, 75, 97, 63, 84, 54, 92, 56, 59, 59, 72, 72, 62, 77, 49, 72, 62, 80, 55, 59, 55, 54, 76, 54, 66, 47, 73, 70, 43, 73, 45, 52, 85, 59, 101, 62, 54, 70, 72, 83, 66, 64, 82, 73, 66, 64, 51, 58, 50, 54, 59, 62, 56, 87, 97, 74, 44, 81, 64, 89, 63, 59, 65, 75, 52, 76, 72, 78, 53, 60, 76, 62, 72, 68, 62, 61, 71, 47, 83, 69, 62, 60, 67, 63, 85, 70, 63, 62, 49, 49, 66, 60, 49, 63, 65, 69, 82, 50, 79, 52, 64, 83, 65, 60, 112, 66, 55, 52, 65, 42, 89, 54, 55, 54, 52, 102, 57, 70, 45, 49, 58, 62, 68, 42, 51, 66, 53, 55, 54, 49, 49, 90, 102, 76, 64, 74, 81, 60, 92, 74, 56, 73, 96, 48, 58, 57, 72, 70, 45, 93, 54, 56, 72, 67, 47, 47, 41, 59, 72, 57, 68, 76, 67, 62, 78, 68, 46, 52, 88, 87, 47, 59, 97, 84, 72, 52, 63, 47, 64, 60, 67, 50, 79, 52, 65, 52, 51, 89, 63, 77, 91, 54, 60, 64, 91, 68, 72, 79, 63, 59, 79, 63, 63, 65, 59, 47, 55, 53, 65, 61, 89, 85, 71, 48, 75, 65, 63, 49, 43, 94, 68, 66, 48, 69, 53, 64, 71, 77, 67, 58, 57, 59, 103, 78, 40, 73, 70, 60, 65, 79, 54, 78, 64, 64, 63, 45, 77, 89, 116, 68, 48, 71, 72, 51, 60, 68, 58, 36, 95, 46, 74, 67, 128, 48, 74, 60, 62, 45, 103, 83, 59, 57, 78, 47, 79, 78, 61, 39, 58, 52, 66, 74, 50, 73, 128, 55, 74, 59, 64, 93, 62, 63, 101, 47, 74, 106, 68, 68, 77, 70, 64, 50, 51, 98, 60, 47, 53, 52, 57, 72, 109, 64, 36, 57, 43, 71, 58, 69, 61, 71, 44, 55, 60, 56, 69, 98, 52, 58, 72, 90, 66, 79, 43, 66, 57, 97, 59, 80, 60, 62, 77, 49, 92, 55, 77, 69, 73, 51, 34, 73, 50, 78, 69, 50, 76, 59, 42, 63, 62, 57, 88, 64, 79, 90, 58, 68, 53, 65, 70, 77, 66, 74, 55, 61, 68, 65, 53, 71, 54, 63, 80, 67, 54, 65, 73, 65, 74, 84, 46, 55, 76, 63, 55, 53, 52, 72, 54, 60, 72, 81, 91, 47, 68, 61, 92, 60, 65, 75, 46, 57, 57, 66, 64, 82, 86, 65, 54, 68, 44, 97, 73, 55, 73, 57, 64, 70, 68, 59, 69, 91, 67, 56, 79, 63, 72, 64, 50, 65, 69, 58, 75, 74, 78, 71, 101, 61, 76, 83, 58, 66, 50, 70, 66, 71, 76, 50, 66, 74, 59, 88, 63, 55, 65, 81, 59, 65, 55, 41, 54, 73, 49, 58, 55, 66, 68, 52, 73, 72, 85, 63, 60, 79, 37, 65, 94, 69, 65, 56, 60, 59, 78, 59, 74, 75, 71, 55, 61, 63, 68, 68, 62, 83, 61, 65, 83, 64, 77, 62, 59, 84, 77, 112, 56, 83, 50, 67, 89, 60, 47, 53, 50, 60, 45, 82, 71, 49, 80, 70, 81, 93, 55, 67, 49, 91, 63, 80, 67, 48, 76, 85, 63, 57, 46, 55, 73, 47, 51, 62, 59, 49, 69, 51, 90, 58, 72, 65, 47, 65, 115, 57, 70, 55, 52, 58, 73, 60, 54, 73, 56, 109, 37, 88, 72, 55, 50, 67, 57, 55, 66, 122, 51, 81, 61, 69, 78, 58, 56, 60, 56, 46, 75, 77, 51, 56, 59, 69, 52, 45, 57, 69, 56, 64, 60, 83, 67, 71, 51, 88, 55, 62, 65, 67, 70, 37, 65, 44, 56, 142, 57, 74, 65, 60, 84, 66, 69, 45, 74, 103, 61, 63, 49, 68, 54, 66, 61, 73, 48, 52, 47, 82, 109, 67, 62, 68, 47, 71, 58, 47, 56, 66, 86, 56, 66, 58, 63, 87, 87, 80, 81, 63, 81, 67, 45, 79, 50, 73, 68, 57, 125, 63, 77, 73, 50, 55, 59, 60, 51, 58, 47, 80, 69, 77, 55, 61, 52, 72, 55, 70, 57, 66, 55, 59, 55, 67, 72, 74, 55, 58, 66, 53, 61, 64, 53, 101, 61, 64, 51, 60, 74, 64, 103, 82, 58, 58, 76, 54, 74, 63, 65, 72, 73, 67, 58, 39, 52, 77, 39, 49, 94, 59, 56, 60, 86, 60, 75, 48, 61, 52, 66, 86, 69, 50, 47, 65, 61, 65, 40, 67, 49, 52, 55, 51, 62, 56, 40, 72, 64, 61, 72, 50, 71, 54, 72, 53, 66, 58, 74, 65, 71, 60, 69, 76, 59, 59, 81, 69, 59, 58, 58, 61, 63, 63, 89, 112, 59, 79, 50, 83, 69, 80, 76, 53, 55, 72, 63, 53, 45, 55, 70, 86, 61, 66, 82, 71, 51, 63, 67, 65, 74, 72, 50, 48, 86, 66, 49, 81, 55, 35, 71, 73, 71, 75, 77, 56, 65, 70, 101, 61, 54, 58, 56, 65, 56, 62, 91, 107, 76, 63, 69, 70, 54, 89, 59, 79, 41, 54, 69, 78, 86, 82, 69, 60, 72, 39, 39, 57, 71, 61, 71, 52, 116, 66, 49, 77, 82, 71, 73, 64, 64, 73, 84, 66, 105, 61, 75, 71, 55, 51, 50, 49, 53, 78, 64, 62, 70, 54, 166, 53, 88, 50, 93, 68, 58, 68, 68, 64, 56, 69, 66, 68, 81, 61, 66, 79, 58, 65, 48, 74, 73, 62, 62, 92, 57, 80, 60, 61, 56, 70, 92, 54, 83, 82, 86, 63, 58, 54, 83, 64, 93, 89, 51, 58, 56, 74, 48, 61, 66, 60, 58, 56, 84, 60, 77, 53, 68, 62, 60, 59, 60, 63, 74, 69, 55, 69, 65, 69, 45, 83, 55, 86, 53, 78, 117, 50, 74, 94, 54, 88, 66, 51, 90, 83, 79, 60, 115, 46, 67, 59, 62, 69, 84, 70, 97, 50, 80, 49, 68, 66, 71, 45, 59, 42, 59, 99, 57, 63, 78, 48, 51, 55, 59, 63, 116, 71, 78, 73, 73, 77, 65, 115, 63, 51, 61, 41, 63, 44, 72, 72, 55, 69, 100, 58, 62, 66, 67, 60, 68, 67, 52, 68, 47, 72, 64, 47, 58, 78, 70, 71, 65, 60, 55, 56, 58, 51, 59, 65, 79, 49, 51, 55, 56, 56, 74, 60, 52, 57, 74, 58, 65, 69, 67, 45, 63, 87, 63, 54, 52, 90, 82, 85, 49, 58, 144, 85, 76, 77, 68, 73, 64, 70, 91, 72, 66, 88, 53, 51, 69, 80, 64, 50, 90, 68, 92, 83, 62, 69, 59, 85, 75, 53, 66, 48, 74, 65, 67, 57, 99, 71, 64, 74, 63, 64, 90, 45, 62, 89, 58, 53, 76, 62, 99, 58, 68, 60, 71, 57, 77, 54, 58, 77, 78, 60, 51, 42, 78, 55, 73, 48, 60, 57, 99, 74, 45, 68, 79, 87, 73, 58, 69, 53, 65, 68, 70, 60, 52, 48, 73, 58, 59, 72, 60, 60, 73, 59, 77, 51, 53, 70, 53, 73, 55, 59, 65, 70, 59, 65, 47, 55, 66, 78, 96, 55, 55, 60, 108, 66, 68, 53, 58, 85, 82, 59, 56, 79, 59, 69, 63, 62, 53, 56, 51, 82, 64, 70, 57, 62, 51, 79, 46, 49, 77, 49, 90, 72, 48, 67, 91, 62, 42, 40, 68, 53, 71, 87, 44, 74, 55, 78, 43, 70, 58, 87, 62, 59, 63, 73, 71, 63, 57, 51, 58, 68, 66, 66, 64, 97, 79, 37, 74, 64, 52, 74, 54, 68, 72, 80, 70, 68, 66, 73, 54, 77, 84, 67, 55, 67, 79, 68, 78, 86, 53, 64, 98, 68, 58, 72, 69, 67, 61, 65, 63, 68, 59, 58, 69, 55, 73, 51, 43, 71, 62, 71, 63, 51, 62, 70, 77, 68, 58, 63, 49, 76, 65, 58, 60, 51, 62, 69, 83, 76, 75, 66, 52, 68, 59, 65, 84, 103, 69, 52, 60, 70, 59, 53, 57, 70, 102, 69, 56, 62, 78, 52, 48, 64, 64, 70, 57, 43, 87, 63, 63, 73, 56, 60, 56, 80, 66, 66, 71, 77, 65, 71, 75, 43, 110, 57, 77, 54, 62, 65, 65, 78, 63, 73, 63, 57, 70, 78, 78, 45, 73, 60, 74, 77, 57, 86, 49, 75, 46, 86, 61, 67, 95, 49, 68, 67, 68, 70, 67, 65, 52, 66, 80, 59, 47, 79, 60, 79, 87, 78, 66, 69, 85, 70, 75, 87, 73, 58, 59, 44, 63, 73, 35, 70, 57, 61, 85, 60, 61, 57, 69, 53, 81, 49, 72, 63, 77, 66, 62, 56, 50, 61, 65, 129, 71, 70, 47, 77, 143, 55, 69, 70, 56, 53, 89, 52, 43, 53, 61, 80, 63, 72, 93, 76, 53, 73, 64, 67, 79, 74, 61, 87, 45, 69, 51, 56, 72, 60, 54, 71, 54, 67, 57, 67, 71, 70, 62, 60, 130, 65, 70, 87, 59, 71, 88, 79, 67, 75, 71, 98, 47, 52, 73, 71, 54, 63, 83, 57, 66, 79, 69, 79, 70, 81, 61, 80, 58, 51, 45, 58, 63, 63, 62, 56, 60, 66, 66, 58, 50, 77, 69, 62, 50, 51, 80, 78, 64, 81, 71, 61, 62, 66, 56, 59, 83, 78, 81, 65, 61, 71, 61, 52, 71, 79, 53, 40, 54, 78, 56, 48, 73, 64, 65, 74, 55, 72, 61, 111, 67, 66, 69, 62, 63, 78, 82, 57, 62, 61, 58, 79, 64, 61, 52, 74, 81, 49, 58, 57, 55, 52, 52, 65, 61, 77, 45, 49, 63, 66, 69, 59, 77, 89, 64, 55, 61, 56, 103, 75, 59, 61, 72, 54, 87, 58, 70, 73, 81, 72, 56, 53, 54, 46, 64, 67, 61, 46, 59, 43, 69, 48, 72, 63, 70, 64, 97, 52, 66, 80, 59, 82, 95, 53, 75, 47, 58, 53, 75, 42, 74, 102, 60, 45, 110, 74, 67, 75, 46, 73, 56, 73, 54, 85, 67, 41, 66, 65, 65, 93, 65, 47, 77, 48, 66, 82, 77, 55, 40, 99, 71, 64, 45, 73, 62, 71, 85, 61, 51, 79, 74, 54, 62, 91, 47, 79, 57, 59, 64, 64, 72, 64, 59, 53, 67, 51, 64, 67, 87, 74, 61, 70, 47, 86, 93, 60, 69, 62, 59, 57, 60, 87, 68, 80, 70, 80, 66, 95, 73, 63, 97, 55, 73, 61, 56, 63, 62, 60, 60, 73, 72, 51, 62, 67, 73, 73, 57, 55, 75, 72, 55, 34, 68, 64, 58, 78, 65, 67, 79, 57, 42, 215, 63, 105, 73, 65, 53, 54, 70, 67, 79, 63, 58, 55, 64, 58, 47, 73, 68, 81, 89, 61, 66, 64, 74, 58, 65, 69, 50, 83, 59, 86, 81, 74, 61, 59, 80, 73, 47, 67, 62, 76, 62, 104, 42, 66, 67, 74, 60, 73, 59, 68, 75, 67, 77, 82, 70, 71, 78, 77, 62, 61, 64, 57, 67, 76, 90, 78, 68, 61, 63, 66, 82, 74, 76, 94, 70, 54, 63, 61, 62, 56, 47, 60, 51, 68, 66, 79, 73, 49, 56, 58, 63, 74, 65, 85, 82, 54, 71, 44, 66, 59, 91, 54, 68, 61, 81, 70, 45, 71, 73, 65, 79, 53, 51, 82, 86, 66, 60, 64, 61, 62, 102, 55, 85, 46, 55, 54, 47, 41, 74, 77, 81, 51, 58, 72, 70, 60, 57, 52, 59, 58, 74, 145, 81, 85, 55, 68, 73, 71, 73, 63, 63, 70, 61, 56, 66, 54, 65, 75, 55, 50, 128, 70, 69, 47, 71, 80, 100, 66, 44, 56, 52, 60, 83, 107, 56, 75, 62, 78, 81, 51, 50, 102, 93, 53, 66, 53, 66, 53, 55, 47, 56, 69, 70, 61, 55, 56, 55, 69, 63, 60, 61, 63, 62, 81, 59, 60, 50, 86, 92, 56, 80, 58, 59, 81, 63, 88, 71, 67, 68, 84, 74, 62, 62, 85, 84, 79, 55, 48, 46, 66, 80, 74, 71, 58, 55, 46, 55, 65, 75, 70, 39, 56, 72, 70, 58, 72, 66, 67, 80, 67, 77, 54, 42, 75, 56, 77, 66, 62, 68, 52, 70, 52, 76, 74, 53, 62, 65, 48, 50, 73, 60, 72, 103, 76, 80, 65, 65, 50, 105, 59, 66, 63, 52, 61, 67, 66, 65, 65, 56, 70, 75, 113, 80, 72, 60, 64, 55, 63, 64, 82, 70, 48, 73, 65, 69, 46, 84, 67, 85, 66, 62, 61, 71, 66, 81, 49, 75, 67, 71, 100, 99, 62, 50, 74, 71, 75, 77, 132, 84, 74, 51, 69, 50, 52, 83, 83, 86, 51, 56, 79, 57, 108, 70, 75, 64, 104, 57, 69, 81, 48, 68, 45, 49, 57, 58, 69, 69, 85, 88, 72, 69, 70, 62, 60, 113, 61, 64, 65, 43, 65, 75, 83, 52, 62, 76, 48, 77, 58, 106, 51, 71, 109, 62, 87, 74, 77, 82, 65, 68, 66, 50, 53, 68, 57, 68, 62, 63, 68, 45, 56, 70, 62, 71, 76, 77, 48, 54, 57, 58, 54, 63, 60, 88, 65, 52, 69, 58, 74, 99, 73, 50, 62, 60, 45, 75, 96, 69, 62, 50, 65, 56, 63, 64, 48, 77, 62, 64, 53, 70, 79, 53, 55, 53, 58, 81, 71, 67, 82, 64, 49, 51, 73, 54, 56, 119, 68, 65, 49, 64, 56, 49, 67, 51, 67, 65, 62, 59, 73, 48, 67, 79, 50, 62, 73, 53, 61, 80, 63, 42, 70, 60, 68, 72, 55, 60, 51, 61, 70, 76, 57, 82, 85, 58, 89, 69, 68, 52, 73, 58, 55, 61, 69, 75, 74, 88, 58, 128, 51, 57, 71, 66, 68, 58, 49, 61, 91, 69, 51, 94, 59, 56, 66, 58, 44, 89, 69, 60, 59, 53, 84, 69, 59, 82, 51, 53, 65, 56, 82, 83, 48, 59, 73, 60, 59, 54, 49, 55, 75, 64, 81, 66, 65, 74, 74, 70, 52, 62, 45, 63, 66, 80, 63, 72, 78, 80, 35, 61, 66, 82, 74, 66, 55, 79, 64, 53, 72, 58, 58, 76, 44, 65, 63, 62, 65, 67, 68, 75, 65, 69, 46, 62, 67, 60, 45, 84, 75, 56, 37, 70, 58, 63, 65, 75, 41, 79, 91, 55, 49, 81, 63, 69, 56, 78, 47, 54, 88, 70, 73, 78, 88, 50, 50, 44, 62, 55, 81, 87, 73, 43, 73, 62, 80, 70, 72, 74, 65, 59, 62, 122, 50, 62, 59, 64, 74, 68, 103, 94, 77, 67, 70, 45, 95, 63, 59, 75, 54, 66, 58, 67, 63, 67, 72, 61, 101, 55, 71, 75, 65, 76, 63, 84, 67, 99, 62, 61, 75, 53, 66, 106, 68, 67, 59, 68, 47, 92, 54, 70, 63, 90, 60, 55, 48, 57, 50, 50, 70, 70, 67, 56, 33, 62, 51, 50, 63, 63, 51, 66, 88, 49, 64, 73, 72, 60, 75, 59, 82, 59, 54, 56, 61, 57, 67, 133, 47, 88, 76, 77, 60, 83, 67, 107, 71, 76, 91, 68, 66, 60, 61, 50, 50, 67, 60, 65, 85, 55, 80, 67, 60, 62, 88, 121, 71, 72, 80, 68, 61, 51, 60, 78, 70, 76, 74, 55, 73, 70, 57, 62, 93, 75, 55, 87, 52, 78, 57, 47, 55, 71, 64, 63, 48, 81, 52, 75, 47, 61, 70, 44, 55, 78, 66, 88, 50, 73, 75, 68, 43, 74, 55, 48, 84, 77, 55, 67, 64, 86, 71, 78, 58, 51, 46, 99, 56, 61, 64, 73, 74, 50, 60, 61, 64, 60, 54, 56, 78, 60, 44, 65, 80, 78, 89, 104, 74, 30, 59, 69, 56, 63, 69, 88, 51, 57, 46, 100, 68, 65, 62, 60, 59, 74, 63, 76, 81, 60, 79, 62, 72, 80, 70, 59, 43, 63, 87, 80, 53, 77, 70, 48, 73, 71, 69, 55, 56, 65, 55, 57, 63, 73, 63, 76, 61, 109, 52, 47, 75, 54, 36, 54, 80, 53, 56, 71, 58, 74, 69, 53, 56, 56, 30, 56, 50, 59, 52, 54, 92, 70, 58, 53, 47, 62, 82, 57, 56, 66, 50, 62, 56, 53, 81, 67, 77, 71, 40, 42, 66, 88, 53, 89, 70, 75, 66, 64, 50, 55, 57, 76, 48, 58, 59, 50, 60, 67, 77, 62, 73, 63, 73, 50, 74, 53, 60, 64, 68, 59, 66, 98, 63, 67, 62, 71, 56, 73, 72, 90, 67, 66, 50, 57, 86, 65, 72, 46, 36, 76, 61, 74, 62, 66, 48, 65, 58, 74, 66, 58, 77, 56, 66, 59, 54, 60, 73, 72, 95, 58, 67, 81, 78, 64, 75, 73, 57, 65, 71, 60, 52, 84, 76, 70, 82, 62, 53, 74, 64, 62, 61, 57, 73, 57, 72, 57, 83, 80, 66, 49, 64, 57, 71, 55, 47, 50, 48, 73, 57, 65, 49, 67, 58, 79, 54, 73, 68, 51, 66, 46, 104, 61, 29, 56, 50, 71, 51, 71, 82, 79, 78, 45, 56, 88, 64, 67, 62, 87, 51, 62, 59, 73, 43, 63, 65, 54, 67, 68, 62, 55, 59, 61, 77, 68, 77, 72, 61, 49, 83, 85, 58, 75, 60, 73, 54, 56, 51, 58, 88, 95, 85, 60, 51, 76, 58, 69, 60, 59, 68, 58, 58, 64, 68, 69, 72, 98, 59, 61, 72, 57, 75, 54, 84, 64, 56, 76, 71, 57, 65, 61, 67, 64, 54, 63, 57, 49, 60, 48, 69, 72, 63, 75, 73, 83, 85, 65, 60, 55, 79, 63, 70, 89, 68, 76, 62, 67, 89, 86, 71, 79, 62, 69, 73, 57, 71, 62, 66, 65, 63, 58, 66, 58, 57, 53, 66, 72, 77, 99, 56, 68, 47, 81, 55, 64, 76, 65, 71, 65, 51, 49, 75, 110, 57, 90, 70, 38, 98, 62, 56, 54, 65, 61, 61, 65, 66, 72, 93, 95, 57, 44, 90, 56, 91, 69, 85, 88, 62, 71, 57, 62, 60, 63, 53, 67, 73, 77, 62, 67, 61, 104, 88, 54, 64, 55, 59, 56, 52, 63, 82, 81, 53, 72, 67, 56, 66, 75, 63, 54, 52, 39, 80, 47, 56, 54, 56, 63, 59, 55, 61, 73, 74, 69, 57, 70, 58, 78, 62, 47, 71, 77, 59, 72, 67, 57, 74, 70, 73, 52, 55, 51, 75, 86, 62, 67, 94, 53, 81, 74, 65, 75, 53, 68, 51, 91, 56, 72, 79, 61, 61, 52, 93, 44, 68, 43, 53, 70, 67, 55, 73, 48, 56, 50, 62, 79, 63, 82, 53, 56, 49, 65, 74, 81, 93, 63, 75, 57, 68, 56, 66, 79, 80, 78, 61, 76, 59, 68, 69, 91, 66, 66, 63, 77, 57, 49, 78, 53, 50, 61, 56, 66, 62, 68, 74, 71, 50, 68, 68, 51, 61, 59, 65, 66, 57, 74, 70, 45, 50, 117, 61, 60, 74, 88, 85, 50, 61, 89, 52, 70, 58, 42, 68, 50, 73, 54, 74, 57, 71, 51, 69, 58, 50, 87, 72, 73, 69, 53, 53, 73, 66, 64, 68, 78, 59, 81, 70, 53, 73, 53, 77, 53, 93, 58, 54, 74, 42, 88, 53, 73, 58, 61, 59, 59, 47, 68, 70, 78, 61, 73, 60, 86, 93, 62, 59, 69, 65, 64, 61, 70, 83, 75, 62, 48, 75, 49, 57, 53, 72, 105, 59, 67, 70, 60, 51, 93, 67, 63, 83, 63, 68, 71, 58, 71, 160, 49, 63, 63, 72, 70, 62, 100, 63, 62, 75, 79, 62, 53, 62, 62, 72, 74, 100, 43, 55, 57, 105, 72, 54, 71, 63, 76, 67, 73, 58, 67, 57, 75, 55, 79, 48, 66, 73, 70, 57, 83, 73, 49, 66, 62, 61, 58, 63, 60, 58, 93, 70, 64, 54, 58, 93, 117, 63, 66, 63, 77, 67, 62, 60, 65, 67, 56, 68, 74, 75, 76, 99, 80, 65, 66, 87, 74, 59, 56, 66, 68, 62, 119, 69, 69, 67, 61, 62, 67, 75, 56, 58, 54, 65, 81, 64, 58, 71, 55, 46, 62, 67, 60, 62, 59, 92, 101, 53, 68, 58, 56, 69, 63, 73, 65, 76, 65, 67, 76, 78, 61, 66, 52, 62, 68, 69, 87, 82, 68, 70, 62, 60, 47, 70, 112, 68, 62, 58, 64, 61, 64, 61, 65, 78, 61, 53, 65, 73, 63, 74, 59, 79, 62, 97, 74, 118, 54, 68, 64, 54, 69, 50, 65, 58, 81, 58, 63, 78, 53, 78, 67, 77, 55, 60, 60, 66, 69, 61, 74, 69, 55, 65, 69, 49, 68, 74, 58, 63, 72, 60, 84, 60, 71, 69, 74, 31, 75, 57, 57, 67, 60, 62, 60, 60, 94, 67, 59, 82, 51, 65, 38, 62, 58, 60, 55, 71, 44, 108, 94, 62, 54, 54, 51, 67, 83, 62, 43, 50, 68, 66, 62, 65, 62, 58, 70, 53, 68, 54, 80, 45, 49, 55, 58, 63, 61, 56, 54, 68, 66, 73, 92, 78, 70, 68, 63, 53, 66, 63, 54, 87, 75, 66, 53, 74, 61, 80, 70, 63, 62, 82, 68, 64, 59, 57, 61, 92, 66, 74, 60, 62, 67, 61, 51, 59, 60, 57, 68, 57, 77, 60, 63, 48, 52, 70, 59, 72, 53, 58, 57, 68, 76, 71, 55, 72, 67, 66, 83, 81, 58, 80, 65, 62, 64, 50, 79, 74, 55, 58, 57, 70, 55, 52, 74, 89, 57, 82, 69, 53, 65, 77, 51, 59, 75, 62, 53, 67, 57, 67, 41, 60, 65, 60, 45, 65, 81, 61, 55, 61, 55, 65, 69, 55, 69, 63, 65, 107, 50, 89, 95, 48, 113, 63, 57, 69, 53, 84, 75, 60, 80, 51, 65, 97, 69, 55, 83, 54, 75, 79, 57, 68, 65, 60, 62, 59, 102, 58, 59, 67, 63, 61, 76, 100, 65, 76, 93, 96, 67, 74, 65, 56, 74, 61, 57, 50, 61, 49, 66, 59, 70, 86, 61, 66, 62, 59, 60, 64, 61, 55, 78, 60, 71, 78, 63, 43, 61, 66, 67, 108, 46, 57, 46, 52, 88, 72, 93, 67, 60, 53, 71, 94, 66, 77, 59, 65, 60, 64, 61, 72, 63, 66, 60, 59, 59, 73, 73, 81, 85, 64, 62, 59, 98, 58, 72, 57, 81, 68, 48, 66, 76, 76, 70, 71, 51, 67, 56, 50, 66, 72, 67, 64, 65, 41, 61, 65, 52, 86, 80, 70, 76, 82, 104, 61, 61, 57, 60, 62, 45, 60, 54, 87, 66, 54, 85, 51, 74, 69, 62, 59, 62, 65, 60, 60, 95, 70, 69, 62, 63, 64, 59, 62, 42, 75, 43, 58, 58, 71, 72, 61, 74, 66, 74, 65, 76, 43, 51, 57, 72, 66, 77, 54, 64, 68, 52, 59, 68, 65, 45, 81, 76, 81, 72, 47, 83, 73, 58, 62, 56, 70, 81, 63, 64, 73, 68, 55, 70, 71, 83, 57, 54, 72, 85, 68, 53, 73, 62, 52, 60, 55, 75, 60, 55, 59, 56, 74, 56, 64, 55, 56, 51, 46, 43, 68, 65, 70, 62, 58, 72, 58, 55, 61, 83, 59, 52, 87, 54, 65, 55, 55, 69, 59, 85, 78, 85, 86, 65, 55, 85, 52, 52, 68, 96, 60, 61, 66, 57, 91, 58, 56, 90, 54, 69, 50, 61, 67, 46, 65, 71, 72, 73, 63, 73, 59, 66, 46, 72, 65, 103, 79, 61, 65, 71, 61, 50, 66, 80, 94, 67, 66, 50, 66, 59, 79, 69, 68, 63, 56, 69, 54, 64, 60, 67, 57, 53, 59, 55, 89, 68, 72, 68, 60, 52, 64, 53, 52, 70, 60, 65, 74, 70, 98, 58, 73, 57, 82, 54, 67, 75, 51, 93, 45, 84, 59, 51, 62, 70, 64, 77, 56, 50, 72, 72, 59, 49, 76, 41, 57, 73, 61, 75, 59, 65, 93, 58, 62, 89, 53, 75, 58, 48, 151, 59, 80, 68, 51, 58, 52, 81, 66, 51, 152, 64, 50, 60, 70, 55, 70, 54, 51, 57, 79, 65, 71, 64, 70, 68, 59, 85, 56, 54, 56, 67, 82, 117, 72, 49, 68, 65, 104, 70, 67, 68, 105, 62, 90, 72, 60, 61, 44, 53, 55, 60, 57, 50, 84, 54, 58, 56, 79, 55, 42, 73, 74, 72, 71, 55, 57, 59, 68, 58, 85, 59, 53, 61, 90, 47, 52, 87, 52, 47, 55, 94, 62, 54, 60, 73, 50, 54, 54, 41, 72, 70, 63, 78, 62, 49, 71, 47, 69, 76, 59, 63, 50, 58, 91, 56, 72, 64, 68, 59, 47, 69, 85, 69, 60, 56, 106, 43, 67, 77, 61, 67, 71, 59, 70, 59, 63, 78, 63, 62, 68, 100, 73, 64, 74, 65, 56, 45, 51, 57, 52, 64, 59, 62, 50, 75, 87, 73, 54, 82, 66, 73, 69, 52, 59, 59, 52, 59, 37, 93, 71, 46, 52, 64, 64, 80, 42, 72, 63, 62, 60, 89, 69, 65, 126, 58, 63, 58, 76, 66, 62, 66, 73, 72, 53, 74, 37, 76, 77, 57, 53, 69, 58, 55, 60, 59, 84, 91, 84, 52, 71, 69, 74, 52, 49, 90, 58, 72, 41, 41, 73, 100, 55, 75, 61, 85, 91, 55, 97, 57, 60, 55, 60, 64, 40, 100, 55, 48, 58, 53, 92, 52, 73, 44, 62, 78, 50, 57, 68, 67, 77, 62, 66, 70, 68, 62, 94, 88, 58, 41, 70, 84, 80, 77, 57, 54, 78, 58, 80, 63, 48, 91, 92, 57, 63, 98, 51, 59, 74, 58, 52, 60, 47, 85, 93, 96, 66, 53, 49, 59, 68, 43, 63, 55, 62, 54, 45, 52, 48, 62, 62, 81, 51, 64, 82, 60, 68, 50, 122, 91, 48, 77, 53, 68, 74, 50, 45, 51, 57, 61, 58, 73, 95, 47, 60, 60, 72, 58, 62, 99, 99, 88, 79, 71, 52, 64, 64, 60, 68, 68, 66, 53, 63, 62, 74, 57, 72, 50, 64, 69, 67, 62, 58, 60, 52, 59, 57, 28, 79, 69, 77, 52, 65, 62, 66, 69, 65, 57, 76, 73, 51, 59, 72, 98, 87, 55, 81, 75, 53, 55, 60, 69, 40, 61, 60, 61, 85, 50, 61, 45, 85, 49, 49, 53, 66, 59, 49, 81, 36, 86, 70, 71, 61, 61, 75, 107, 56, 73, 49, 93, 60, 69, 57, 91, 66, 49, 69, 85, 63, 74, 45, 90, 69, 126, 105, 79, 81, 71, 109, 67, 62, 56, 56, 49, 76, 85, 57, 50, 66, 64, 54, 52, 71, 60, 63, 66, 50, 108, 58, 49, 75, 58, 71, 87, 62, 51, 63, 71, 85, 50, 83, 73, 57, 82, 80, 69, 63, 59, 63, 64, 55, 57, 63, 60, 70, 79, 64, 56, 55, 89, 94, 63, 102, 70, 56, 79, 73, 59, 90, 61, 69, 42, 48, 74, 71, 56, 45, 106, 53, 44, 44, 72, 58, 104, 51, 69, 83, 57, 62, 78, 56, 53, 61, 45, 93, 102, 85, 66, 60, 74, 56, 52, 56, 81, 86, 110, 70, 55, 59, 62, 39, 59, 88, 67, 60, 75, 53, 62, 53, 85, 55, 66, 64, 53, 74, 74, 59, 63, 67, 71, 48, 54, 74, 83, 55, 69, 67, 50, 87, 53, 47, 52, 65, 50, 68, 80, 62, 55, 57, 53, 57, 71, 65, 37, 38, 60, 71, 50, 51, 70, 66, 79, 78, 57, 58, 64, 73, 53, 55, 53, 52, 95, 54, 81, 50, 94, 70, 62, 71, 66, 67, 59, 81, 41, 87, 52, 63, 79, 51, 43, 45, 103, 85, 81, 58, 67, 55, 58, 61, 81, 62, 78, 52, 51, 59, 65, 65, 83, 64, 49, 48, 67, 71, 65, 60, 83, 51, 93, 49, 58, 62, 65, 60, 51, 75, 66, 71, 85, 60, 67, 60, 53, 74, 56, 80, 66, 67, 73, 82, 53, 74, 62, 110, 61, 82, 62, 72, 58, 44, 58, 78, 61, 105, 69, 55, 54, 46, 55, 73, 70, 80, 82, 85, 79, 103, 57, 64, 76, 83, 58, 88, 55, 74, 55, 53, 70, 85, 61, 90, 72, 71, 69, 75, 39, 76, 49, 61, 73, 57, 76, 57, 46, 64, 64, 71, 58, 65, 56, 53, 55, 130, 67, 64, 73, 49, 88, 45, 49, 71, 64, 81, 77, 86, 60, 69, 57, 79, 50, 58, 37, 80, 53, 64, 60, 57, 100, 93, 78, 68, 67, 79, 55, 59, 81, 54, 83, 90, 83, 102, 65, 73, 105, 79, 86, 51, 79, 54, 86, 70, 54, 99, 56, 50, 92, 70, 87, 56, 64, 77, 62, 63, 91, 64, 63, 57, 75, 47, 43, 83, 57, 61, 62, 63, 54, 67, 92, 72, 69, 85, 56, 87, 52, 48, 66, 69, 91, 89, 80, 68, 41, 82, 65, 55, 74, 47, 70, 65, 82, 101, 61, 85, 64, 74, 80, 115, 51, 58, 81, 79, 61, 63, 105, 68, 48, 103, 76, 59, 54, 85, 69, 64, 59, 64, 63, 67, 60, 54, 55, 87, 40, 87, 60, 60, 59, 65, 66, 57, 63, 68, 44, 75, 54, 67, 43, 53, 49, 71, 117, 105, 60, 90, 62, 65, 56, 61, 49, 70, 73, 53, 54, 68, 78, 60, 92, 57, 73, 62, 50, 40, 71, 74, 65, 86, 67, 83, 70, 60, 70, 65, 54, 104, 87, 69, 83, 56, 50, 56, 48, 63, 77, 72, 52, 66, 49, 52, 67, 49, 50, 72, 50, 71, 78, 95, 56, 100, 53, 56, 85, 77, 44, 85, 80, 52, 80, 58, 43, 105, 50, 55, 83, 47, 73, 55, 57, 55, 76, 67, 47, 68, 70, 58, 39, 72, 81, 67, 46, 85, 60, 67, 43, 51, 83, 88, 90, 85, 61, 37, 99, 75, 55, 51, 63, 64, 51, 62, 49, 69, 50, 48, 60, 58, 65, 67, 68, 33, 87, 86, 66, 71, 61, 69, 78, 72, 71, 53, 74, 63, 92, 73, 70, 86, 59, 50, 66, 96, 50, 90, 64, 71, 64, 58, 73, 64, 66, 121, 46, 51, 57, 92, 56, 85, 44, 56, 89, 93, 57, 88, 43, 90, 83, 75, 50, 67, 72, 76, 77, 54, 52, 49, 51, 58, 73, 85, 72, 62, 55, 66, 64, 65, 63, 69, 86, 63, 43, 67, 68, 91, 75, 61, 42, 60, 56, 57, 67, 78, 86, 69, 60, 74, 43, 83, 69, 68, 48, 52, 73, 71, 61, 80, 76, 71, 67, 73, 61, 74, 48, 59, 42, 65, 84, 50, 88, 85, 60, 72, 59, 49, 50, 60, 69, 63, 62, 71, 84, 47, 90, 74, 75, 93, 70, 57, 71, 33, 55, 94, 73, 35, 72, 77, 54, 76, 63, 55, 54, 73, 47, 63, 67, 87, 45, 69, 98, 55, 76, 58, 47, 44, 54, 75, 56, 79, 59, 46, 77, 75, 68, 39, 69, 80, 75, 100, 58, 52, 59, 62, 74, 64, 65, 52, 65, 61, 69, 64, 53, 57, 95, 73, 66, 69, 48, 80, 60, 65, 88, 70, 46, 48, 112, 67, 61, 142, 63, 37, 61, 60, 80, 96, 84, 62, 78, 54, 52, 59, 79, 65, 89, 91, 65, 79, 61, 73, 45, 54, 54, 64, 74, 58, 90, 62, 46, 59, 40, 65, 57, 55, 54, 60, 68, 57, 65, 63, 33, 56, 81, 83, 65, 55, 66, 64, 62, 59, 58, 65, 72, 75, 58, 68, 64, 60, 100, 79, 65, 54, 68, 83, 60, 84, 49, 61, 61, 42, 75, 54, 69, 53, 52, 61, 71, 89, 48, 61, 66, 69, 77, 62, 101, 83, 54, 63, 61, 73, 76, 64, 62, 86, 49, 68, 56, 63, 82, 71, 54, 70, 59, 62, 70, 39, 62, 53, 65, 97, 66, 59, 53, 71, 47, 64, 57, 59, 65, 45, 60, 54, 42, 82, 54, 72, 68, 57, 66, 56, 76, 51, 50, 45, 51, 76, 56, 75, 59, 72, 70, 45, 67, 65, 35, 74, 57, 54, 61, 65, 62, 79, 101, 67, 57, 54, 100, 55, 94, 51, 52, 83, 79, 65, 66, 77, 64, 55, 56, 66, 82, 60, 82, 58, 60, 72, 76, 86, 69, 58, 75, 64, 94, 61, 47, 53, 66, 99, 69, 60, 57, 50, 57, 50, 50, 65, 84, 49, 69, 54, 39, 71, 45, 66, 62, 92, 59, 68, 43, 52, 39, 93, 96, 96, 58, 80, 57, 57, 68, 57, 65, 60, 56, 64, 57, 94, 73, 73, 68, 63, 101, 75, 62, 85, 61, 52, 69, 98, 46, 54, 69, 64, 60, 54, 78, 81, 132, 50, 69, 57, 62, 102, 74, 51, 55, 64, 71, 46, 93, 61, 49, 57, 73, 68, 136, 83, 60, 67, 48, 55, 117, 67, 36, 56, 39, 67, 48, 67, 60, 45, 46, 64, 75, 165, 65, 59, 67, 86, 75, 36, 93, 42, 50, 88, 45, 99, 61, 68, 52, 46, 67, 91, 50, 71, 75, 88, 61, 60, 85, 71, 56, 64, 76, 68, 46, 94, 73, 46, 67, 65, 65, 84, 60, 44, 63, 74, 59, 72, 55, 60, 70, 64, 62, 115, 60, 58, 84, 87, 67, 48, 57, 48, 85, 43, 62, 78, 62, 52, 62, 61, 99, 45, 53, 57, 61, 62, 69, 52, 84, 103, 80, 54, 59, 62, 45, 80, 66, 39, 62, 56, 52, 89, 61, 50, 86, 68, 62, 72, 77, 53, 80, 80, 84, 78, 52, 52, 84, 52, 61, 87, 52, 61, 51, 63, 63, 58, 57, 52, 56, 117, 54, 97, 55, 47, 62, 73, 43, 78, 71, 64, 45, 69, 71, 57, 94, 58, 75, 83, 63, 74, 54, 68, 88, 71, 71, 54, 52, 56, 76, 51, 56, 67, 44, 118, 68, 73, 66, 28, 75, 82, 75, 67, 62, 79, 44, 53, 68, 56, 81, 72, 55, 59, 65, 58, 76, 61, 41, 62, 52, 65, 56, 47, 56, 65, 51, 78, 54, 56, 65, 59, 63, 42, 63, 47, 53, 85, 131, 70, 57, 66, 49, 72, 132, 70, 49, 44, 56, 62, 75, 45, 47, 46, 84, 52, 50, 71, 56, 89, 62, 82, 76, 47, 75, 51, 85, 126, 58, 113, 105, 79, 55, 55, 51, 37, 70, 76, 70, 71, 62, 53, 59, 98, 50, 51, 46, 70, 57, 65, 71, 87, 63, 60, 58, 61, 86, 66, 58, 104, 83, 67, 51, 54, 85, 59, 50, 66, 92, 63, 57, 79, 88, 30, 77, 52, 57, 71, 58, 70, 60, 60, 76, 63, 74, 54, 42, 86, 59, 67, 53, 67, 56, 52, 72, 60, 56, 45, 69, 93, 76, 88, 65, 57, 45, 84, 55, 74, 46, 73, 60, 63, 63, 55, 82, 67, 52, 51, 45, 75, 54, 66, 70, 88, 53, 54, 63, 40, 70, 61, 66, 63, 67, 61, 53, 54, 50, 67, 121, 66, 45, 77, 56, 68, 35, 52, 67, 87, 55, 51, 60, 89, 63, 41, 43, 98, 55, 50, 65, 49, 87, 71, 95, 42, 58, 59, 72, 110, 71, 50, 62, 58, 89, 54, 69, 63, 63, 45, 51, 52, 57, 74, 67, 71, 64, 68, 50, 74, 75, 65, 66, 40, 45, 124, 108, 41, 43, 66, 80, 78, 114, 66, 52, 78, 60, 61, 64, 77, 77, 56, 41, 88, 60, 57, 83, 47, 64, 52, 68, 76, 73, 82, 57, 45, 47, 73, 76, 83, 59, 56, 59, 66, 46, 69, 46, 54, 58, 60, 69, 91, 56, 49, 61, 74, 52, 69, 37, 66, 89, 54, 44, 86, 67, 50, 70, 65, 39, 54, 62, 60, 46, 74, 68, 97, 37, 76, 68, 55, 85, 84, 79, 65, 56, 65, 72, 65, 67, 56, 112, 33, 50, 29, 73, 70, 70, 85, 54, 50, 116, 66, 64, 61, 57, 67, 82, 60, 56, 67, 41, 92, 52, 55, 67, 95, 57, 55, 90, 78, 80, 65, 40, 51, 68, 73, 46, 49, 61, 52, 61, 54, 53, 61, 71, 39, 60, 96, 49, 60, 72, 66, 59, 87, 51, 92, 52, 75, 66, 92, 71, 71, 71, 95, 64, 52, 42, 60, 59, 61, 47, 72, 70, 100, 51, 44, 67, 41, 56, 77, 61, 57, 67, 86, 49, 63, 65, 67, 47, 45, 46, 73, 82, 87, 72, 62, 122, 71, 53, 102, 76, 57, 79, 55, 61, 86, 42, 66, 54, 65, 64, 70, 76, 68, 50, 57, 52, 62, 77, 77, 55, 77, 93, 71, 72, 77, 55, 73, 68, 78, 68, 48, 118, 81, 57, 61, 47, 73, 62, 59, 59, 65, 153, 70, 93, 49, 70, 73, 59, 74, 58, 80, 91, 126, 75, 56, 63, 59, 70, 66, 63, 65, 49, 55, 69, 63, 62, 89, 72, 63, 56, 73, 55, 45, 63, 96, 67, 53, 53, 75, 71, 60, 53, 55, 98, 54, 53, 54, 39, 53, 43, 53, 61, 83, 52, 65, 60, 63, 52, 70, 116, 63, 58, 61, 58, 63, 83, 46, 85, 61, 67, 68, 65, 56, 81, 53, 65, 63, 63, 68, 57, 50, 52, 65, 59, 80, 86, 67, 81, 53, 67, 47, 118, 68, 62, 79, 74, 61, 71, 105, 58, 78, 51, 36, 97, 59, 58, 63, 81, 53, 54, 87, 78, 63, 78, 107, 89, 56, 63, 85, 58, 68, 62, 70, 82, 53, 57, 68, 78, 54, 78, 59, 45, 81, 102, 72, 104, 58, 80, 82, 59, 71, 42, 60, 51, 69, 49, 59, 51, 108, 102, 71, 88, 98, 58, 65, 50, 74, 54, 50, 45, 56, 77, 54, 90, 57, 57, 58, 49, 72, 71, 112, 63, 73, 60, 48, 79, 53, 79, 70, 52, 70, 67, 58, 57, 44, 65, 51, 96, 58, 69, 65, 72, 95, 67, 61, 69, 56, 74, 100, 35, 54, 75, 54, 80, 80, 91, 61, 93, 56, 86, 93, 75, 54, 74, 52, 65, 62, 80, 54, 62, 52, 61, 57, 69, 94, 73, 59, 63, 52, 69, 46, 47, 60, 44, 68, 57, 73, 135, 50, 57, 58, 49, 46, 67, 89, 58, 38, 80, 52, 91, 42, 78, 53, 73, 51, 64, 53, 49, 69, 54, 67, 85, 68, 80, 96, 59, 94, 128, 72, 57, 53, 61, 54, 56, 49, 91, 61, 71, 85, 58, 67, 64, 85, 51, 59, 60, 68, 50, 86, 88, 58, 69, 48, 86, 71, 58, 98, 89, 61, 56, 56, 45, 60, 75, 57, 67, 81, 68, 70, 59, 77, 74, 119, 83, 61, 89, 83, 89, 59, 47, 78, 48, 53, 69, 72, 68, 86, 48, 91, 45, 103, 80, 72, 95, 77, 69, 66, 82, 73, 78, 66, 71, 58, 78, 71, 90, 81, 92, 60, 89, 46, 47, 78, 59, 61, 109, 50, 57, 56, 64, 75, 88, 70, 100, 66, 75, 44, 88, 75, 61, 58, 56, 61, 64, 56, 64, 43, 65, 59, 76, 78, 56, 73, 80, 113, 63, 61, 90, 50, 61, 88, 54, 55, 55, 55, 103, 68, 51, 53, 44, 62, 54, 78, 99, 57, 78, 60, 81, 84, 68, 71, 69, 56, 61, 73, 47, 65, 63, 63, 40, 70, 72, 126, 137, 63, 47, 75, 77, 83, 104, 83, 52, 63, 79, 63, 70, 73, 55, 81, 66, 81, 57, 72, 59, 71, 55, 92, 85, 34, 68, 67, 73, 66, 65, 114, 59, 50, 64, 62, 47, 51, 59, 91, 60, 67, 53, 65, 64, 77, 82, 91, 81, 84, 57, 88, 33, 64, 52, 64, 70, 50, 63, 73, 69, 65, 45, 54, 85, 48, 51, 51, 43, 59, 99, 72, 99, 66, 63, 56, 72, 57, 65, 55, 74, 52, 52, 34, 50, 63, 52, 118, 84, 93, 63, 57, 51, 86, 64, 70, 55, 62, 61, 44, 66, 77, 41, 70, 66, 47, 47, 74, 69, 71, 83, 90, 33, 66, 50, 67, 48, 65, 73, 49, 55, 52, 69, 34, 78, 73, 62, 62, 68, 78, 42, 74, 62, 54, 63, 59, 68, 87, 51, 61, 61, 78, 68, 66, 77, 92, 45, 53, 76, 78, 79, 84, 86, 46, 110, 66, 76, 67, 84, 60, 84, 56, 64, 64, 90, 75, 66, 47, 50, 48, 62, 44, 81, 67, 67, 72, 58, 69, 65, 46, 57, 57, 46, 54, 44, 67, 47, 75, 71, 76, 60, 83, 63, 73, 67, 71, 50, 89, 73, 68, 68, 56, 96, 81, 72, 61, 58, 55, 63, 56, 69, 47, 78, 58, 75, 90, 63, 65, 48, 75, 63, 69, 65, 68, 37, 92, 82, 37, 61, 53, 126, 51, 75, 64, 49, 116, 61, 58, 60, 43, 42, 47, 76, 61, 55, 64, 53, 75, 55, 49, 105, 43, 59, 75, 68, 70, 95, 53, 63, 42, 49, 54, 78, 80, 93, 66, 70, 73, 68, 53, 94, 65, 55, 60, 82, 56, 76, 65, 47, 97, 40, 59, 80, 71, 109, 55, 69, 64, 62, 61, 65, 48, 56, 92, 74, 58, 77, 50, 64, 57, 70, 62, 83, 63, 72, 97, 74, 59, 75, 49, 56, 85, 78, 60, 74, 75, 61, 60, 74, 74, 64, 71, 74, 86, 74, 56, 90, 67, 45, 59, 66, 46, 86, 85, 71, 60, 41, 47, 71, 81, 62, 52, 65, 60, 44, 60, 60, 49, 60, 76, 90, 52, 55, 63, 68, 105, 76, 61, 47, 98, 63, 74, 39, 72, 87, 64, 62, 67, 75, 75, 64, 66, 75, 48, 70, 54, 73, 41, 35, 65, 51, 59, 63, 49, 68, 71, 69, 71, 38, 76, 51, 73, 62, 52, 57, 84, 83, 85, 45, 45, 55, 45, 63, 64, 59, 80, 57, 69, 41, 59, 90, 62, 50, 78, 59, 73, 61, 81, 56, 46, 72, 72, 61, 61, 84, 92, 45, 71, 65, 71, 66, 71, 59, 49, 50, 64, 78, 89, 75, 65, 59, 65, 55, 70, 66, 78, 55, 46, 64, 49, 73, 55, 66, 60, 68, 37, 55, 70, 61, 67, 128, 78, 49, 56, 60, 66, 66, 67, 62, 61, 63, 80, 59, 65, 69, 59, 60, 112, 59, 47, 42, 57, 61, 55, 66, 67, 58, 65, 89, 102, 54, 67, 64, 62, 71, 75, 66, 58, 85, 70, 57, 56, 76, 80, 59, 46, 55, 75, 82, 52, 68, 79, 120, 29, 42, 67, 48, 65, 30, 66, 75, 58, 54, 73, 69, 48, 66, 75, 113, 70, 52, 68, 60, 56, 82, 72, 65, 62, 78, 87, 47, 52, 67, 75, 65, 61, 81, 60, 64, 107, 65, 44, 63, 91, 45, 43, 50, 60, 48, 68, 38, 61, 65, 58, 54, 107, 88, 59, 74, 95, 87, 69, 71, 57, 80, 64, 62, 68, 85, 80, 53, 80, 45, 46, 77, 76, 50, 60, 76, 88, 57, 76, 74, 75, 65, 58, 57, 48, 57, 53, 44, 63, 89, 76, 68, 66, 49, 67, 70, 65, 56, 47, 70, 98, 53, 45, 62, 65, 55, 52, 68, 84, 56, 67, 54, 55, 66, 66, 68, 60, 79, 54, 81, 34, 80, 56, 51, 60, 58, 54, 69, 84, 114, 120, 50, 40, 58, 47, 65, 101, 67, 55, 61, 38, 57, 67, 81, 60, 75, 64, 70, 72, 88, 49, 49, 56, 65, 108, 67, 82, 75, 49, 78, 91, 55, 59, 58, 87, 75, 60, 67, 77, 54, 62, 47, 58, 76, 82, 89, 50, 54, 82, 55, 87, 76, 72, 69, 72, 86, 48, 83, 46, 70, 69, 69, 81, 55, 48, 56, 53, 59, 48, 71, 74, 61, 64, 59, 66, 60, 68, 58, 69, 57, 67, 48, 50, 77, 76, 74, 62, 55, 74, 66, 80, 73, 73, 69, 59, 65, 81, 55, 68, 57, 64, 78, 54, 58, 93, 67, 61, 78, 77, 65, 64, 43, 38, 73, 57, 57, 56, 57, 83, 65, 53, 76, 60, 87, 64, 68, 66, 52, 58, 60, 52, 67, 70, 71, 61, 59, 66, 51, 62, 69, 70, 52, 60, 59, 64, 68, 61, 78, 73, 60, 55, 63, 64, 63, 57, 59, 55, 77, 71, 62, 61, 61, 90, 56, 85, 73, 56, 59, 51, 66, 93, 64, 65, 68, 66, 102, 63, 58, 74, 114, 57, 76, 78, 86, 73, 46, 68, 57, 44, 60, 61, 56, 64, 75, 71, 58, 53, 68, 61, 90, 64, 70, 50, 82, 86, 66, 51, 62, 56, 51, 62, 61, 81, 58, 52, 48, 71, 79, 72, 66, 65, 67, 61, 63, 47, 68, 67, 42, 82, 65, 53, 76, 59, 54, 78, 71, 71, 58, 38, 77, 57, 55, 66, 72, 59, 60, 69, 49, 43, 78, 70, 62, 60, 88, 49, 63, 60, 76, 67, 48, 62, 100, 62, 60, 70, 77, 56, 62, 106, 62, 77, 61, 49, 61, 71, 58, 62, 83, 69, 53, 50, 65, 64, 56, 58, 57, 86, 60, 59, 65, 58, 87, 62, 59, 72, 65, 70, 58, 55, 61, 63, 67, 58, 63, 78, 66, 69, 58, 86, 61, 80, 60, 69, 57, 76, 90, 76, 61, 60, 64, 51, 66, 83, 45, 81, 60, 58, 74, 53, 65, 62, 101, 63, 51, 52, 67, 62, 64, 58, 57, 71, 60, 66, 53, 65, 50, 59, 79, 60, 70, 63, 45, 73, 60, 72, 59, 49, 73, 56, 69, 83, 94, 67, 63, 43, 54, 70, 59, 75, 65, 64, 56, 66, 77, 72, 55, 54, 94, 71, 70, 83, 60, 86, 99, 64, 60, 57, 92, 94, 58, 68, 40, 79, 57, 84, 100, 76, 60, 72, 60, 49, 67, 66, 62, 59, 60, 57, 83, 60, 69, 67, 149, 63, 63, 61, 47, 66, 60, 59, 63, 58, 55, 46, 61, 62, 66, 70, 57, 63, 43, 63, 68, 52, 61, 70, 63, 70, 74, 69, 60, 66, 71, 62, 49, 73, 56, 61, 72, 57, 64, 66, 90, 49, 48, 54, 53, 53, 63, 67, 73, 69, 70, 72, 61, 78, 78, 59, 84, 51, 47, 69, 59, 51, 67, 56, 42, 46, 62, 67, 70, 68, 69, 62, 50, 71, 70, 69, 46, 51, 75, 63, 68, 94, 42, 75, 53, 49, 63, 60, 54, 55, 72, 76, 58, 72, 60, 57, 62, 58, 65, 55, 50, 72, 71, 60, 71, 66, 56, 73, 76, 72, 64, 56, 45, 62, 62, 60, 50, 69, 67, 53, 62, 65, 48, 67, 67, 74, 81, 63, 52, 64, 66, 59, 44, 60, 81, 52, 56, 65, 73, 58, 43, 80, 63, 72, 67, 55, 72, 53, 76, 84, 90, 73, 46, 65, 54, 74, 51, 68, 58, 52, 68, 101, 71, 74, 69, 61, 79, 58, 65, 50, 69, 65, 60, 64, 73, 70, 52, 55, 68, 93, 63, 49, 79, 104, 82, 67, 52, 72, 79, 71, 66, 53, 66, 74, 68, 75, 70, 73, 72, 68, 57, 68, 70, 51, 56, 64, 52, 74, 63, 65, 59, 83, 55, 99, 66, 74, 62, 55, 57, 59, 67, 96, 70, 69, 63, 72, 63, 58, 57, 52, 60, 63, 62, 79, 69, 79, 47, 53, 48, 79, 51, 42, 92, 91, 61, 62, 60, 64, 86, 66, 61, 59, 55, 55, 85, 101, 69, 51, 83, 66, 66, 51, 44, 78, 51, 68, 72, 79, 62, 56, 71, 70, 58, 62, 64, 66, 38, 84, 70, 47, 61, 48, 60, 70, 58, 72, 60, 58, 53, 75, 59, 54, 64, 58, 57, 52, 61, 53, 56, 56, 62, 53, 101, 83, 53, 68, 68, 99, 77, 64, 58, 62, 69, 80, 77, 56, 60, 59, 116, 80, 80, 57, 110, 76, 72, 54, 88, 80, 97, 66, 53, 74, 52, 58, 65, 54, 78, 61, 66, 83, 62, 67, 63, 60, 77, 61, 74, 64, 70, 73, 65, 67, 61, 57, 49, 60, 78, 58, 51, 62, 59, 67, 50, 54, 59, 63, 74, 69, 107, 82, 78, 99, 56, 68, 61, 61, 58, 114, 65, 59, 70, 59, 81, 47, 55, 66, 50, 54, 58, 80, 71, 75, 66, 106, 70, 53, 64, 61, 71, 104, 77, 83, 62, 64, 62, 63, 66, 64, 64, 79, 50, 72, 57, 79, 104, 59, 56, 59, 58, 86, 66, 51, 63, 56, 81, 56, 71, 60, 50, 72, 73, 76, 62, 68, 82, 53, 77, 64, 63, 55, 56, 55, 76, 52, 59, 46, 58, 42, 45, 82, 79, 62, 70, 66, 55, 69, 70, 56, 80, 66, 67, 66, 94, 78, 53, 47, 65, 58, 78, 76, 70, 87, 70, 68, 91, 65, 85, 75, 98, 69, 57, 68, 52, 66, 89, 97, 71, 88, 49, 63, 64, 78, 69, 73, 56, 47, 90, 93, 67, 54, 61, 97, 62, 117, 49, 73, 51, 57, 58, 70, 65, 62, 61, 58, 81, 58, 62, 56, 59, 57, 69, 68, 64, 78, 60, 58, 61, 50, 60, 80, 54, 67, 64, 50, 75, 74, 77, 94, 70, 62, 103, 57, 70, 54, 52, 60, 46, 69, 68, 60, 75, 58, 61, 70, 58, 56, 49, 65, 62, 66, 69, 63, 46, 74, 74, 57, 91, 72, 56, 62, 73, 106, 78, 66, 93, 68, 80, 81, 46, 100, 64, 82, 58, 74, 65, 73, 67, 40, 66, 53, 74, 65, 52, 65, 65, 50, 64, 77, 97, 62, 86, 70, 58, 59, 64, 74, 44, 65, 62, 47, 54, 54, 65, 69, 50, 45, 77, 53, 79, 63, 42, 62, 96, 50, 71, 76, 57, 69, 97, 56, 77, 52, 88, 65, 81, 60, 55, 89, 63, 68, 88, 63, 54, 73, 54, 63, 67, 56, 67, 61, 58, 57, 101, 99, 49, 62, 54, 49, 60, 71, 63, 66, 70, 58, 69, 50, 72, 62, 65, 54, 62, 62, 54, 61, 62, 52, 52, 80, 72, 86, 68, 77, 53, 71, 78, 71, 59, 86, 59, 55, 57, 72, 60, 61, 63, 72, 71, 50, 73, 66, 67, 61, 61, 56, 61, 59, 56, 99, 70, 55, 52, 61, 54, 76, 82, 63, 68, 60, 67, 61, 80, 54, 66, 84, 61, 92, 65, 70, 77, 94, 64, 54, 78, 69, 55, 54, 74, 56, 66, 55, 81, 77, 58, 66, 65, 70, 58, 54, 67, 71, 67, 85, 49, 77, 58, 74, 77, 72, 53, 67, 67, 79, 52, 55, 51, 52, 83, 56, 68, 73, 52, 53, 62, 88, 90, 69, 52, 91, 73, 57, 60, 54, 62, 53, 71, 63, 56, 78, 54, 66, 80, 82, 62, 64, 73, 55, 70, 65, 79, 75, 92, 57, 47, 85, 68, 72, 59, 47, 76, 67, 62, 89, 58, 75, 53, 49, 62, 61, 70, 65, 72, 62, 44, 56, 74, 68, 54, 77, 59, 75, 45, 68, 74, 77, 64, 72, 52, 54, 54, 54, 69, 68, 69, 67, 70, 65, 46, 48, 58, 50, 63, 89, 77, 78, 76, 64, 63, 76, 70, 68, 68, 76, 68, 66, 42, 86, 74, 110, 54, 133, 52, 55, 90, 78, 59, 70, 50, 61, 70, 56, 61, 59, 74, 65, 65, 56, 77, 61, 61, 78, 48, 71, 84, 57, 58, 78, 80, 62, 66, 66, 72, 59, 97, 56, 55, 54, 65, 66, 79, 57, 58, 103, 62, 82, 77, 61, 79, 74, 49, 87, 44, 53, 73, 52, 76, 57, 74, 69, 67, 56, 47, 78, 53, 55, 74, 58, 84, 80, 82, 69, 63, 52, 75, 53, 62, 71, 69, 107, 75, 89, 51, 77, 68, 77, 60, 69, 62, 56, 78, 67, 55, 60, 57, 57, 48, 66, 54, 68, 61, 57, 68, 69, 67, 69, 68, 57, 83, 73, 83, 73, 70, 55, 53, 112, 71, 62, 55, 48, 59, 78, 65, 72, 65, 62, 60, 63, 69, 56, 69, 58, 62, 74, 63, 63, 56, 47, 65, 74, 63, 69, 59, 81, 51, 68, 55, 59, 58, 67, 55, 51, 71, 93, 79, 78, 59, 70, 62, 73, 40, 54, 53, 64, 56, 72, 80, 62, 76, 41, 65, 48, 45, 65, 61, 51, 80, 64, 62, 63, 69, 61, 75, 66, 54, 58, 66, 48, 58, 63, 61, 47, 67, 60, 72, 58, 58, 73, 74, 71, 75, 54, 64, 53, 76, 42, 58, 59, 64, 56, 54, 89, 94, 55, 60, 60, 73, 62, 52, 51, 85, 57, 54, 50, 62, 48, 73, 59, 74, 53, 75, 64, 69, 93, 91, 71, 48, 64, 60, 54, 74, 71, 64, 81, 48, 39, 73, 82, 42, 65, 60, 93, 46, 60, 58, 51, 93, 61, 64, 70, 70, 54, 63, 62, 71, 86, 55, 63, 61, 64, 57, 53, 67, 51, 44, 70, 67, 77, 54, 66, 64, 62, 71, 62, 70, 55, 57, 74, 84, 65, 57, 72, 60, 51, 72, 104, 64, 70, 74, 89, 74, 205, 60, 68, 67, 65, 62, 62, 53, 44, 60, 72, 65, 79, 51, 49, 85, 65, 60, 61, 74, 49, 61, 55, 56, 50, 55, 61, 74, 61, 49, 83, 50, 72, 65, 64, 53, 60, 66, 55, 66, 81, 51, 71, 60, 79, 78, 48, 101, 56, 100, 54, 57, 68, 63, 55, 75, 77, 54, 88, 55, 75, 55, 61, 62, 57, 81, 68, 59, 57, 57, 57, 65, 64, 89, 72, 59, 71, 58, 68, 60, 71, 65, 63, 40, 71, 59, 75, 67, 61, 65, 62, 73, 48, 68, 78, 79, 85, 57, 86, 141, 66, 54, 72, 63, 55, 67, 49, 72, 52, 61, 69, 65, 72, 49, 63, 65, 85, 50, 70, 68, 67, 69, 58, 69, 66, 56, 56, 75, 54, 75, 51, 53, 53, 63, 65, 69, 54, 64, 64, 72, 54, 49, 78, 70, 44, 73, 81, 72, 72, 51, 57, 61, 63, 48, 66, 73, 82, 87, 74, 60, 104, 77, 71, 69, 58, 42, 59, 64, 77, 58, 56, 83, 52, 57, 64, 100, 56, 67, 61, 66, 63, 62, 66, 74, 69, 60, 84, 54, 53, 79, 89, 51, 61, 51, 89, 55, 66, 57, 62, 77, 60, 58, 65, 54, 75, 62, 80, 59, 90, 76, 67, 71, 67, 60, 50, 55, 64, 53, 63, 68, 77, 91, 65, 57, 66, 98, 57, 82, 66, 74, 53, 37, 71, 71, 61, 66, 65, 60, 61, 87, 67, 75, 66, 83, 57, 66, 46, 63, 80, 71, 67, 59, 58, 77, 81, 84, 61, 60, 70, 56, 44, 49, 53, 56, 70, 54, 47, 64, 50, 69, 79, 55, 56, 79, 55, 62, 55, 78, 67, 57, 58, 80, 65, 67, 86, 65, 58, 66, 79, 58, 47, 68, 83, 81, 62, 74, 43, 67, 70, 63, 66, 72, 71, 90, 78, 76, 64, 88, 91, 60, 58, 53, 69, 53, 50, 63, 54, 46, 73, 67, 79, 57, 82, 65, 66, 55, 69, 74, 60, 53, 65, 59, 64, 57, 63, 80, 57, 81, 63, 60, 56, 65, 57, 59, 58, 48, 68, 58, 80, 60, 57, 50, 68, 65, 63, 61, 69, 61, 51, 51, 64, 65, 87, 55, 65, 88, 58, 85, 62, 86, 55, 62, 92, 63, 80, 49, 58, 68, 61, 65, 58, 55, 63, 53, 68, 52, 64, 84, 55, 59, 51, 77, 81, 65, 82, 70, 69, 62, 56, 52, 59, 46, 71, 71, 76, 57, 64, 69, 50, 72, 87, 69, 53, 72, 62, 74, 52, 74, 43, 64, 62, 52, 67, 51, 71, 62, 60, 68, 73, 66, 49, 56, 66, 72, 64, 67, 67, 62, 58, 63, 62, 72, 60, 79, 54, 67, 67, 71, 68, 89, 56, 59, 67, 62, 52, 58, 71, 66, 48, 67, 73, 71, 58, 74, 58, 64, 73, 64, 61, 53, 55, 97, 76, 61, 58, 60, 51, 68, 51, 66, 72, 68, 67, 67, 57, 69, 61, 63, 53, 62, 101, 70, 67, 72, 51, 92, 67, 77, 62, 58, 60, 61, 53, 62, 58, 105, 60, 56, 76, 59, 70, 73, 50, 79, 66, 61, 54, 68, 65, 57, 64, 58, 71, 87, 62, 58, 61, 68, 78, 67, 71, 50, 79, 64, 60, 73, 86, 58, 83, 47, 76, 64, 69, 62, 65, 59, 43, 50, 74, 112, 69, 72, 67, 67, 83, 56, 61, 58, 56, 66, 73, 81, 53, 54, 45, 61, 56, 67, 51, 57, 91, 71, 55, 81, 70, 47, 66, 48, 90, 54, 57, 71, 68, 66, 77, 46, 55, 56, 76, 80, 65, 64, 57, 56, 62, 55, 78, 103, 67, 77, 73, 71, 67, 81, 49, 57, 71, 63, 90, 66, 47, 73, 55, 59, 58, 78, 74, 53, 71, 54, 70, 69, 68, 39, 56, 67, 59, 85, 62, 76, 73, 58, 50, 52, 84, 52, 71, 53, 53, 76, 91, 86, 83, 75, 52, 89, 59, 61, 63, 46, 48, 66, 73, 96, 64, 61, 38, 73, 53, 73, 91, 61, 127, 48, 68, 59, 68, 53, 82, 75, 63, 62, 39, 60, 60, 51, 49, 48, 65, 68, 58, 83, 72, 65, 63, 82, 50, 69, 55, 110, 73, 76, 55, 125, 81, 93, 68, 66, 81, 56, 56, 70, 46, 39, 61, 57, 68, 42, 49, 73, 97, 85, 88, 61, 50, 54, 66, 69, 69, 64, 78, 52, 56, 39, 119, 90, 51, 45, 69, 54, 86, 56, 51, 48, 51, 59, 73, 62, 46, 70, 69, 72, 69, 44, 74, 61, 54, 52, 68, 84, 61, 82, 66, 118, 63, 46, 117, 61, 79, 58, 65, 61, 96, 59, 55, 48, 71, 66, 59, 59, 66, 88, 69, 50, 52, 66, 73, 69, 76, 66, 67, 47, 63, 57, 137, 63, 54, 51, 88, 82, 51, 62, 69, 95, 97, 69, 54, 55, 106, 49, 70, 48, 55, 104, 97, 61, 47, 71, 82, 51, 73, 54, 61, 48, 53, 79, 117, 57, 55, 52, 66, 63, 55, 44, 46, 65, 78, 85, 71, 46, 54, 91, 78, 84, 50, 88, 69, 71, 66, 39, 60, 47, 74, 60, 37, 68, 77, 66, 57, 43, 63, 68, 63, 55, 61, 73, 66, 54, 79, 75, 81, 71, 62, 75, 51, 64, 50, 77, 75, 76, 53, 71, 49, 88, 99, 52, 43, 44, 57, 67, 88, 57, 56, 74, 77, 55, 83, 85, 69, 64, 46, 69, 78, 71, 51, 40, 73, 65, 50, 49, 68, 62, 70, 60, 83, 65, 75, 67, 47, 58, 50, 66, 72, 68, 102, 66, 81, 60, 71, 68, 60, 76, 73, 67, 57, 61, 72, 44, 74, 60, 57, 53, 42, 76, 62, 68, 95, 57, 53, 81, 93, 69, 80, 69, 68, 53, 73, 63, 68, 59, 74, 58, 49, 62, 78, 56, 70, 70, 61, 69, 43, 73, 71, 57, 75, 71, 46, 52, 59, 72, 67, 52, 62, 53, 64, 44, 87, 69, 55, 53, 63, 60, 107, 63, 51, 73, 74, 50, 58, 57, 86, 61, 53, 83, 47, 63, 67, 78, 57, 87, 62, 82, 74, 79, 67, 56, 48, 49, 84, 63, 56, 59, 70, 62, 52, 50, 51, 63, 77, 64, 66, 67, 52, 62, 67, 93, 62, 117, 78, 62, 79, 55, 87, 54, 82, 70, 51, 73, 55, 59, 68, 46, 50, 81, 73, 74, 68, 70, 84, 57, 45, 61, 70, 47, 58, 47, 69, 67, 60, 51, 77, 55, 62, 67, 61, 74, 43, 73, 68, 48, 110, 93, 54, 68, 64, 50, 89, 61, 63, 75, 62, 71, 59, 48, 59, 54, 69, 55, 63, 35, 82, 77, 53, 58, 61, 98, 63, 60, 73, 53, 61, 65, 68, 64, 72, 53, 70, 75, 68, 43, 66, 94, 79, 72, 71, 49, 79, 58, 72, 97, 64, 54, 55, 61, 74, 63, 85, 71, 74, 58, 67, 81, 80, 72, 108, 53, 68, 48, 75, 78, 73, 78, 75, 45, 73, 90, 59, 131, 55, 63, 54, 44, 54, 60, 52, 62, 64, 53, 70, 63, 42, 62, 60, 52, 73, 46, 48, 57, 51, 54, 75, 67, 68, 72, 60, 70, 79, 88, 75, 78, 57, 66, 72, 53, 62, 65, 58, 113, 81, 67, 63, 59, 73, 56, 69, 70, 63, 49, 65, 53, 66, 50, 62, 58, 45, 48, 67, 72, 61, 62, 50, 83, 73, 61, 48, 62, 72, 74, 63, 50, 56, 42, 46, 68, 71, 74, 76, 64, 68, 61, 59, 69, 62, 68, 41, 59, 79, 46, 65, 79, 51, 72, 51, 83, 65, 78, 59, 65, 57, 72, 79, 100, 62, 72, 59, 79, 70, 66, 71, 49, 79, 96, 41, 66, 65, 47, 52, 73, 51, 74, 40, 52, 69, 81, 60, 50, 126, 56, 90, 68, 81, 74, 78, 65, 70, 69, 79, 62, 60, 129, 77, 69, 52, 69, 53, 49, 55, 69, 56, 84, 57, 95, 55, 54, 64, 73, 88, 93, 69, 65, 47, 49, 44, 109, 74, 74, 47, 99, 86, 57, 54, 71, 65, 102, 80, 69, 58, 70, 52, 59, 76, 70, 76, 68, 61, 66, 62, 45, 75, 62, 67, 58, 116, 53, 94, 64, 61, 67, 67, 123, 78, 71, 68, 55, 94, 42, 35, 65, 59, 102, 45, 57, 71, 65, 97, 61, 70, 62, 48, 64, 78, 86, 72, 57, 72, 89, 55, 45, 60, 42, 81, 68, 79, 69, 67, 62, 92, 60, 36, 45, 58, 90, 60, 67, 47, 60, 63, 75, 67, 55, 85, 45, 57, 66, 51, 72, 65, 75, 67, 69, 70, 92, 75, 78, 88, 80, 146, 56, 61, 59, 79, 60, 72, 58, 84, 66, 59, 65, 58, 63, 74, 53, 69, 54, 54, 48, 64, 58, 71, 69, 52, 91, 71, 84, 73, 68, 45, 50, 52, 50, 53, 80, 63, 111, 90, 62, 74, 53, 68, 84, 83, 68, 56, 77, 47, 90, 61, 51, 68, 100, 83, 57, 88, 46, 76, 50, 73, 47, 48, 70, 64, 47, 53, 48, 63, 59, 53, 68, 52, 62, 88, 63, 59, 51, 51, 63, 67, 52, 60, 80, 88, 87, 61, 74, 83, 64, 56, 64, 77, 57, 71, 82, 110, 57, 47, 57, 55, 52, 85, 87, 64, 45, 79, 89, 78, 84, 63, 57, 62, 64, 83, 51, 75, 63, 64, 64, 47, 96, 79, 73, 59, 64, 77, 54, 96, 59, 35, 60, 53, 69, 74, 70, 107, 69, 60, 65, 53, 83, 62, 39, 50, 54, 68, 59, 47, 57, 87, 55, 73, 67, 76, 83, 53, 72, 89, 81, 55, 44, 59, 61, 113, 50, 87, 70, 57, 56, 84, 58, 49, 55, 70, 49, 60, 59, 69, 43, 78, 69, 49, 62, 70, 58, 60, 60, 33, 62, 52, 86, 64, 60, 89, 60, 76, 51, 71, 75, 59, 73, 78, 69, 60, 54, 57, 70, 78, 57, 68, 73, 45, 68, 71, 73, 64, 64, 69, 51, 73, 57, 60, 82, 68, 65, 59, 52, 61, 67, 63, 58, 45, 68, 47, 63, 70, 72, 61, 61, 61, 65, 64, 72, 60, 70, 94, 62, 50, 65, 73, 54, 57, 68, 75, 86, 52, 60, 55, 65, 102, 65, 64, 62, 69, 60, 79, 64, 66, 63, 61, 58, 55, 50, 67, 85, 54, 48, 64, 58, 77, 59, 47, 79, 54, 103, 100, 54, 109, 63, 52, 61, 79, 58, 67, 72, 65, 84, 54, 51, 52, 55, 54, 63, 64, 70, 61, 42, 52, 84, 44, 58, 71, 69, 67, 70, 72, 59, 79, 54, 83, 86, 64, 60, 76, 65, 77, 54, 71, 59, 72, 63, 69, 57, 58, 57, 59, 56, 57, 57, 67, 96, 84, 69, 64, 70, 69, 65, 69, 80, 51, 51, 52, 69, 57, 59, 56, 90, 67, 57, 49, 42, 77, 76, 58, 66, 62, 57, 55, 65, 52, 54, 68, 81, 56, 61, 86, 61, 67, 66, 63, 70, 80, 99, 94, 60, 96, 62, 57, 73, 51, 93, 56, 58, 70, 55, 54, 50, 54, 55, 62, 80, 53, 72, 53, 49, 80, 55, 66, 61, 60, 73, 56, 67, 57, 68, 70, 59, 75, 65, 68, 68, 62, 62, 58, 47, 77, 62, 71, 57, 77, 75, 52, 47, 57, 75, 59, 81, 60, 58, 51, 49, 67, 66, 69, 59, 59, 65, 63, 56, 53, 58, 55, 63, 50, 80, 54, 60, 145, 87, 56, 68, 51, 56, 95, 57, 78, 73, 69, 64, 59, 62, 56, 50, 58, 62, 55, 49, 72, 53, 39, 61, 56, 64, 66, 89, 56, 58, 61, 76, 56, 70, 63, 53, 53, 60, 66, 69, 51, 55, 69, 87, 55, 66, 91, 54, 69, 64, 83, 74, 74, 67, 67, 73, 63, 61, 57, 76, 59, 69, 87, 77, 73, 64, 52, 81, 54, 52, 52, 48, 59, 67, 76, 92, 77, 59, 75, 58, 76, 74, 52, 63, 72, 69, 55, 53, 63, 66, 71, 74, 83, 74, 52, 82, 79, 79, 69, 76, 64, 51, 82, 89, 65, 64, 64, 57, 75, 73, 57, 113, 74, 49, 70, 58, 60, 71, 62, 48, 57, 71, 68, 72, 62, 79, 50, 49, 43, 68, 51, 45, 68, 70, 44, 55, 69, 75, 62, 65, 64, 49, 58, 70, 37, 76, 77, 69, 59, 60, 56, 76, 51, 75, 77, 69, 60, 68, 63, 66, 70, 59, 71, 93, 68, 60, 50, 50, 60, 61, 43, 53, 74, 38, 66, 57, 71, 58, 58, 76, 56, 62, 52, 59, 67, 84, 65, 63, 55, 68, 82, 76, 72, 53, 67, 59, 59, 56, 70, 66, 49, 72, 53, 55, 59, 50, 77, 67, 60, 61, 58, 83, 63, 71, 51, 49, 66, 75, 64, 97, 58, 56, 44, 80, 73, 66, 58, 69, 72, 59, 69, 63, 59, 57, 66, 54, 71, 52, 63, 60, 74, 76, 104, 63, 56, 74, 56, 62, 72, 47, 55, 57, 62, 58, 59, 50, 52, 68, 100, 84, 65, 81, 60, 80, 76, 65, 47, 46, 45, 70, 47, 51, 57, 51, 78, 41, 81, 83, 93, 88, 56, 68, 71, 44, 64, 73, 73, 80, 63, 71, 57, 71, 56, 48, 74, 71, 57, 66, 48, 58, 57, 72, 56, 46, 88, 50, 59, 54, 71, 104, 53, 67, 67, 67, 57, 66, 81, 69, 60, 48, 65, 86, 59, 58, 85, 70, 72, 52, 58, 58, 56, 61, 69, 80, 101, 63, 60, 64, 61, 70, 84, 84, 79, 61, 100, 57, 58, 59, 69, 119, 71, 56, 64, 80, 70, 76, 98, 60, 62, 63, 61, 70, 66, 59, 53, 68, 58, 63, 61, 59, 94, 62, 72, 62, 56, 65, 51, 66, 90, 81, 38, 70, 67, 93, 58, 63, 57, 60, 108, 51, 87, 67, 64, 83, 53, 56, 57, 56, 66, 72, 97, 59, 65, 61, 78, 58, 66, 73, 59, 65, 41, 61, 64, 70, 57, 78, 66, 61, 67, 72, 85, 50, 96, 64, 49, 58, 51, 64, 70, 56, 65, 72, 81, 64, 51, 74, 62, 79, 48, 64, 65, 89, 55, 65, 61, 44, 53, 88, 106, 47, 66, 58, 55, 87, 68, 102, 64, 53, 70, 69, 81, 70, 85, 56, 73, 55, 62, 55, 61, 68, 27, 66, 60, 61, 78, 63, 61, 72, 79, 62, 46, 66, 58, 44, 58, 64, 61, 83, 68, 75, 65, 60, 60, 73, 89, 61, 87, 70, 45, 62, 55, 53, 70, 77, 55, 81, 55, 62, 40, 63, 77, 82, 105, 65, 59, 67, 76, 58, 77, 78, 51, 60, 59, 59, 77, 55, 84, 52, 77, 84, 92, 50, 100, 63, 82, 70, 71, 55, 73, 88, 76, 75, 64, 68, 49, 59, 55, 56, 57, 49, 66, 71, 79, 69, 58, 63, 60, 67, 57, 66, 57, 56, 71, 47, 82, 65, 74, 60, 67, 65, 54, 52, 55, 60, 71, 51, 76, 112, 73, 66, 64, 89, 50, 72, 73, 58, 54, 57, 68, 68, 73, 59, 66, 56, 50, 56, 67, 66, 84, 59, 71, 66, 87, 55, 53, 69, 78, 60, 71, 76, 73, 57, 74, 63, 76, 66, 72, 44, 48, 49, 76, 54, 61, 53, 88, 73, 69, 73, 55, 74, 75, 82, 68, 62, 86, 68, 54, 43, 86, 51, 64, 67, 68, 68, 128, 38, 54, 60, 60, 96, 68, 158, 60, 75, 80, 64, 61, 68, 55, 71, 58, 49, 58, 58, 64, 74, 88, 82, 92, 67, 72, 63, 65, 47, 46, 67, 70, 71, 90, 56, 52, 63, 74, 54, 64, 84, 68, 58, 66, 44, 86, 61, 47, 51, 48, 47, 67, 62, 51, 59, 60, 78, 45, 47, 74, 56, 66, 83, 84, 59, 57, 61, 62, 102, 77, 52, 56, 51, 58, 70, 53, 65, 60, 45, 49, 59, 66, 77, 57, 67, 60, 51, 55, 64, 77, 75, 76, 59, 55, 93, 76, 66, 78, 55, 69, 72, 59, 71, 48, 80, 74, 50, 94, 72, 77, 107, 77, 57, 58, 61, 61, 52, 61, 103, 66, 61, 73, 52, 68, 62, 82, 97, 50, 66, 53, 56, 61, 47, 56, 75, 76, 64, 53, 74, 42, 67, 62, 65, 74, 47, 80, 49, 48, 40, 58, 48, 82, 50, 72, 72, 60, 53, 51, 72, 66, 48, 99, 85, 72, 75, 96, 36, 53, 64, 77, 60, 89, 80, 59, 87, 74, 33, 74, 81, 39, 98, 60, 54, 66, 72, 54, 79, 75, 35, 49, 57, 62, 86, 70, 66, 58, 77, 68, 68, 78, 76, 69, 56, 64, 81, 59, 65, 64, 54, 108, 69, 55, 50, 66, 83, 71, 64, 73, 68, 61, 69, 44, 62, 79, 65, 59, 66, 75, 92, 70, 41, 70, 92, 54, 70, 63, 89, 63, 75, 47, 77, 72, 78, 57, 99, 61, 68, 86, 77, 78, 56, 72, 68, 64, 54, 45, 38, 64, 63, 53, 89, 56, 61, 65, 95, 58, 56, 68, 77, 88, 68, 90, 36, 48, 68, 68, 53, 50, 85, 60, 56, 47, 80, 55, 83, 49, 23, 69, 44, 72, 89, 74, 67, 59, 48, 58, 54, 138, 73, 36, 64, 95, 70, 67, 42, 59, 51, 93, 42, 58, 94, 44, 46, 50, 76, 79, 62, 92, 59, 70, 41, 52, 69, 70, 65, 73, 62, 62, 86, 70, 74, 63, 62, 55, 69, 54, 47, 55, 56, 69, 60, 68, 109, 48, 72, 72, 62, 71, 55, 106, 60, 81, 62, 74, 72, 60, 63, 81, 41, 39, 62, 93, 85, 75, 112, 61, 70, 53, 78, 69, 77, 74, 49, 54, 86, 67, 31, 78, 56, 87, 72, 58, 63, 76, 46, 53, 45, 74, 62, 82, 58, 60, 82, 63, 61, 62, 64, 55, 76, 90, 94, 77, 62, 70, 73, 64, 71, 108, 66, 90, 59, 64, 87, 116, 60, 69, 45, 46, 52, 79, 97, 71, 40, 53, 77, 58, 62, 61, 78, 56, 61, 59, 69, 79, 36, 62, 74, 63, 67, 93, 65, 76, 73, 66, 51, 35, 66, 39, 84, 63, 64, 42, 62, 65, 73, 66, 67, 64, 62, 56, 51, 48, 60, 75, 66, 81, 68, 51, 80, 110, 59, 55, 59, 62, 80, 60, 53, 78, 64, 69, 75, 74, 84, 65, 56, 61, 50, 53, 63, 79, 72, 63, 61, 65, 70, 92, 97, 61, 29, 89, 49, 67, 44, 67, 85, 79, 64, 68, 62, 80, 83, 62, 63, 59, 42, 98, 92, 66, 47, 61, 61, 56, 74, 47, 55, 58, 63, 46, 62, 49, 85, 70, 58, 77, 54, 64, 64, 62, 63, 56, 63, 59, 71, 71, 59, 54, 65, 59, 51, 68, 90, 79, 81, 75, 50, 69, 91, 52, 73, 61, 48, 59, 62, 73, 76, 62, 44, 79, 80, 70, 53, 77, 69, 66, 35, 53, 50, 88, 40, 81, 65, 78, 62, 56, 67, 80, 57, 63, 54, 75, 71, 52, 58, 47, 82, 75, 93, 51, 81, 65, 48, 76, 78, 78, 92, 75, 55, 102, 54, 58, 58, 53, 58, 63, 61, 88, 49, 117, 34, 49, 56, 65, 65, 79, 60, 56, 83, 65, 52, 56, 28, 74, 56, 98, 64, 80, 55, 57, 57, 89, 61, 78, 64, 77, 59, 52, 68, 60, 59, 60, 65, 68, 65, 71, 54, 58, 73, 76, 49, 152, 98, 63, 57, 96, 45, 105, 77, 34, 54, 76, 61, 85, 71, 64, 78, 95, 58, 61, 71, 66, 77, 57, 53, 69, 55, 97, 95, 69, 71, 48, 70, 90, 66, 70, 57, 64, 63, 60, 67, 54, 73, 93, 67, 74, 81, 59, 53, 51, 69, 73, 83, 50, 49, 62, 65, 67, 66, 59, 53, 56, 66, 56, 82, 78, 53, 106, 38, 68, 51, 63, 52, 63, 40, 45, 80, 104, 51, 64, 71, 68, 74, 55, 91, 54, 72, 68, 57, 45, 58, 71, 99, 82, 49, 71, 98, 72, 45, 50, 54, 42, 61, 92, 53, 68, 58, 43, 67, 102, 45, 80, 63, 85, 69, 81, 91, 81, 66, 99, 76, 65, 57, 38, 62, 54, 62, 50, 52, 61, 59, 57, 71, 54, 94, 54, 76, 47, 78, 80, 80, 51, 76, 65, 98, 61, 57, 67, 84, 53, 68, 90, 86, 58, 69, 62, 92, 70, 81, 46, 42, 69, 61, 88, 97, 83, 84, 117, 62, 73, 73, 76, 70, 55, 61, 76, 56, 83, 100, 112, 62, 85, 80, 59, 82, 74, 60, 78, 53, 36, 71, 87, 60, 39, 54, 65, 72, 62, 79, 68, 69, 54, 41, 51, 93, 64, 54, 107, 80, 56, 64, 83, 47, 39, 67, 55, 66, 54, 46, 75, 56, 60, 57, 64, 66, 81, 70, 45, 58, 52, 58, 92, 46, 54, 53, 85, 80, 79, 66, 83, 51, 68, 74, 64, 74, 37, 53, 63, 82, 50, 68, 101, 67, 62, 53, 48, 75, 88, 97, 55, 62, 66, 110, 64, 69, 48, 55, 55, 42, 43, 85, 71, 76, 46, 74, 65, 70, 72, 53, 58, 87, 79, 57, 74, 86, 67, 96, 63, 68, 63, 78, 94, 59, 50, 53, 52, 49, 71, 57, 51, 56, 56, 105, 59, 63, 45, 54, 76, 96, 74, 24, 69, 90, 90, 57, 74, 68, 54, 48, 94, 59, 57, 70, 97, 72, 75, 49, 77, 61, 69, 63, 60, 88, 69, 46, 45, 26, 84, 59, 56, 58, 80, 61, 65, 59, 56, 63, 74, 72, 134, 45, 51, 57, 52, 71, 69, 69, 49, 66, 63, 61, 84, 57, 71, 48, 68, 66, 62, 55, 48, 64, 63, 81, 77, 44, 67, 61, 73, 64, 56, 94, 61, 55, 45, 45, 45, 87, 63, 51, 71, 91, 170, 66, 71, 58, 47, 60, 63, 64, 60, 63, 58, 37, 34, 62, 61, 57, 67, 62, 69, 51, 58, 78, 69, 79, 91, 58, 59, 68, 53, 70, 48, 40, 80, 48, 74, 50, 56, 61, 52, 62, 66, 54, 55, 79, 84, 57, 75, 66, 50, 54, 60, 90, 64, 60, 57, 55, 96, 56, 73, 59, 48, 74, 82, 74, 62, 60, 89, 78, 62, 59, 94, 69, 70, 59, 53, 107, 57, 81, 58, 56, 92, 78, 61, 68, 74, 67, 55, 75, 40, 55, 75, 63, 74, 72, 60, 65, 62, 58, 51, 44, 84, 53, 72, 56, 57, 59, 84, 58, 74, 60, 52, 66, 69, 89, 62, 73, 66, 66, 68, 70, 52, 49, 34, 63, 92, 62, 101, 81, 66, 53, 64, 47, 46, 53, 88, 86, 63, 55, 60, 59, 76, 82, 46, 55, 56, 58, 72, 64, 63, 44, 76, 53, 65, 87, 85, 93, 66, 50, 81, 48, 30, 58, 96, 50, 78, 60, 71, 52, 83, 84, 56, 69, 69, 82, 60, 43, 84, 62, 55, 55, 76, 53, 73, 64, 65, 61, 87, 61, 70, 67, 73, 58, 71, 81, 73, 52, 63, 73, 77, 72, 67, 56, 78, 75, 63, 71, 89, 57, 68, 88, 64, 64, 62, 61, 51, 55, 44, 54, 71, 128, 78, 77, 75, 66, 58, 30, 95, 48, 64, 59, 53, 56, 44, 64, 64, 58, 77, 79, 68, 62, 82, 48, 58, 45, 69, 65, 111, 52, 78, 63, 60, 78, 57, 61, 64, 45, 76, 76, 62, 66, 69, 58, 56, 79, 62, 71, 65, 56, 52, 57, 67, 45, 87, 48, 60, 53, 65, 70, 59, 57, 96, 56, 86, 70, 58, 53, 63, 66, 62, 55, 58, 79, 66, 71, 64, 47, 52, 77, 68, 41, 68, 55, 50, 61, 58, 61, 74, 58, 71, 72, 62, 59, 49, 95, 61, 67, 62, 70, 83, 59, 73, 56, 62, 63, 79, 83, 71, 58, 53, 64, 68, 60, 82, 65, 86, 57, 52, 149, 64, 71, 81, 68, 70, 74, 54, 70, 48, 66, 33, 83, 92, 51, 54, 74, 62, 44, 72, 59, 41, 81, 70, 73, 59, 49, 60, 58, 51, 40, 69, 66, 52, 67, 44, 41, 111, 65, 49, 106, 56, 61, 49, 71, 106, 59, 79, 67, 50, 84, 70, 56, 51, 50, 61, 70, 55, 84, 65, 106, 53, 50, 54, 63, 66, 61, 75, 62, 69, 60, 70, 52, 71, 56, 47, 48, 128, 68, 61, 59, 77, 50, 78, 62, 81, 63, 98, 71, 78, 52, 74, 51, 73, 75, 61, 54, 79, 60, 73, 54, 85, 65, 77, 68, 80, 72, 64, 46, 60, 76, 57, 61, 61, 54, 67, 54, 69, 114, 48, 78, 63, 69, 67, 61, 49, 45, 55, 71, 70, 70, 64, 99, 68, 72, 55, 58, 61, 62, 52, 53, 85, 63, 95, 65, 63, 54, 44, 58, 74, 81, 57, 80, 51, 59, 78, 81, 67, 49, 44, 79, 38, 60, 53, 68, 65, 58, 63, 60, 55, 90, 56, 74, 93, 54, 41, 57, 68, 63, 80, 61, 52, 58, 61, 63, 75, 73, 57, 62, 78, 48, 84, 96, 62, 100, 78, 86, 61, 50, 67, 63, 52, 40, 81, 65, 72, 87, 60, 81, 70, 68, 57, 74, 81, 73, 61, 59, 57, 62, 56, 86, 64, 63, 99, 52, 68, 46, 76, 62, 68, 74, 69, 69, 57, 72, 57, 59, 69, 63, 85, 39, 68, 99, 96, 61, 72, 65, 63, 97, 63, 51, 56, 71, 62, 80, 72, 38, 35, 85, 66, 67, 80, 62, 58, 61, 55, 43, 53, 69, 58, 70, 59, 62, 48, 60, 78, 70, 59, 80, 75, 72, 71, 60, 40, 51, 76, 59, 39, 65, 61, 63, 63, 61, 81, 71, 72, 47, 102, 73, 37, 66, 65, 49, 76, 68, 59, 59, 74, 49, 67, 57, 49, 72, 88, 67, 68, 69, 71, 54, 59, 48, 43, 88, 64, 64, 97, 55, 70, 100, 62, 63, 50, 57, 44, 54, 56, 66, 68, 57, 73, 57, 64, 111, 70, 85, 49, 65, 56, 62, 61, 67, 76, 64, 87, 100, 74, 44, 73, 56, 62, 59, 50, 65, 87, 47, 74, 60, 51, 56, 75, 52, 71, 53, 35, 57, 46, 63, 65, 44, 54, 54, 56, 59, 55, 67, 65, 61, 56, 62, 86, 56, 80, 48, 55, 66, 61, 89, 73, 83, 76, 53, 74, 85, 48, 47, 57, 75, 61, 45, 114, 58, 51, 75, 63, 68, 126, 72, 68, 64, 99, 81, 70, 59, 75, 46, 52, 65, 68, 69, 63, 52, 63, 74, 85, 54, 85, 53, 44, 66, 59, 71, 62, 64, 84, 53, 72, 98, 68, 52, 85, 72, 54, 48, 67, 78, 76, 52, 99, 65, 66, 47, 102, 69, 48, 54, 56, 53, 101, 52, 54, 83, 78, 55, 68, 79, 80, 50, 88, 80, 44, 70, 56, 56, 56, 76, 91, 59, 45, 60, 58, 83, 65, 92, 70, 69, 64, 89, 75, 63, 55, 59, 64, 82, 48, 43, 59, 68, 70, 67, 64, 61, 62, 51, 70, 65, 52, 61, 79, 50, 50, 45, 69, 60, 70, 55, 52, 49, 77, 64, 54, 50, 84, 52, 61, 69, 72, 83, 76, 77, 59, 77, 56, 64, 46, 44, 71, 85, 80, 58, 52, 85, 69, 47, 62, 56, 71, 55, 70, 92, 66, 58, 48, 71, 62, 75, 63, 66, 74, 67, 52, 75, 71, 52, 93, 89, 95, 93, 48, 79, 76, 63, 67, 62, 85, 51, 45, 59, 51, 72, 63, 77, 79, 56, 51, 65, 61, 56, 87, 81, 65, 100, 58, 58, 65, 73, 69, 39, 91, 68, 63, 77, 77, 74, 78, 60, 83, 65, 85, 66, 85, 90, 71, 69, 62, 36, 51, 44, 66, 71, 57, 61, 77, 59, 88, 46, 69, 75, 47, 75, 55, 52, 54, 41, 59, 91, 56, 69, 57, 81, 72, 67, 59, 54, 52, 62, 54, 112, 61, 43, 61, 83, 96, 83, 64, 66, 46, 60, 90, 57, 74, 55, 76, 64, 49, 73, 56, 125, 105, 67, 61, 73, 51, 27, 96, 55, 48, 58, 60, 65, 62, 93, 51, 91, 93, 65, 46, 70, 78, 74, 67, 54, 80, 67, 78, 69, 52, 66, 84, 108, 63, 73, 62, 52, 57, 101, 71, 94, 58, 43, 44, 87, 57, 66, 60, 102, 61, 71, 59, 47, 62, 57, 57, 64, 52, 51, 75, 69, 63, 52, 46, 55, 64, 72, 64, 53, 124, 52, 104, 70, 62, 62, 56, 104, 72, 89, 63, 71, 64, 80, 61, 68, 75, 78, 91, 63, 102, 79, 94, 67, 98, 60, 64, 53, 123, 58, 60, 73, 65, 71, 63, 59, 69, 56, 61, 62, 57, 66, 67, 60, 96, 122, 56, 58, 65, 64, 74, 53, 61, 66, 63, 74, 57, 41, 68, 59, 64, 60, 77, 59, 56, 68, 72, 49, 59, 59, 65, 49, 62, 68, 47, 65, 60, 104, 60, 51, 63, 51, 59, 62, 66, 81, 55, 47, 67, 70, 69, 53, 82, 54, 59, 66, 90, 80, 75, 57, 65, 63, 73, 62, 44, 56, 63, 73, 62, 60, 65, 69, 63, 82, 67, 66, 61, 48, 44, 59, 53, 64, 71, 68, 67, 79, 50, 68, 70, 65, 75, 112, 70, 56, 65, 144, 58, 66, 82, 62, 67, 72, 61, 60, 68, 71, 57, 71, 77, 56, 69, 91, 63, 64, 74, 53, 66, 138, 55, 56, 92, 54, 73, 76, 61, 47, 57, 79, 60, 60, 72, 46, 60, 55, 74, 62, 53, 58, 64, 94, 65, 70, 65, 55, 67, 67, 66, 70, 54, 62, 61, 59, 70, 71, 62, 55, 55, 54, 67, 36, 57, 95, 60, 62, 62, 58, 64, 66, 71, 81, 77, 82, 70, 48, 62, 61, 65, 70, 59, 60, 62, 62, 104, 65, 53, 72, 81, 65, 62, 58, 62, 49, 64, 61, 56, 59, 50, 70, 59, 63, 46, 98, 92, 60, 63, 81, 65, 66, 60, 66, 115, 58, 60, 65, 46, 77, 71, 57, 51, 55, 83, 76, 58, 72, 55, 57, 61, 44, 59, 71, 58, 68, 59, 66, 71, 74, 67, 72, 56, 70, 62, 57, 82, 62, 66, 47, 57, 62, 62, 77, 78, 59, 109, 69, 64, 56, 68, 65, 68, 56, 53, 64, 62, 70, 70, 55, 61, 62, 69, 57, 73, 59, 74, 61, 55, 67, 52, 60, 56, 59, 69, 70, 51, 69, 58, 68, 61, 54, 94, 64, 57, 65, 50, 58, 70, 59, 58, 66, 81, 54, 60, 68, 62, 55, 57, 57, 65, 48, 58, 58, 49, 57, 59, 56, 63, 71, 56, 58, 55, 59, 64, 63, 63, 66, 71, 54, 51, 53, 60, 73, 75, 123, 75, 75, 80, 55, 76, 51, 67, 63, 79, 55, 61, 61, 64, 93, 99, 60, 64, 70, 59, 52, 69, 45, 58, 68, 58, 78, 61, 60, 92, 100, 56, 58, 58, 51, 56, 71, 83, 65, 73, 56, 54, 66, 57, 44, 67, 60, 58, 71, 62, 72, 65, 66, 71, 67, 59, 66, 59, 56, 62, 47, 69, 46, 57, 61, 65, 56, 78, 67, 59, 67, 61, 71, 68, 59, 74, 49, 66, 60, 77, 62, 72, 62, 62, 57, 59, 88, 65, 60, 70, 66, 51, 75, 65, 70, 61, 62, 67, 80, 82, 63, 59, 55, 67, 78, 71, 65, 67, 68, 90, 83, 63, 58, 74, 66, 73, 79, 55, 70, 61, 48, 57, 64, 56, 62, 60, 61, 47, 53, 66, 54, 61, 54, 51, 56, 66, 63, 55, 65, 66, 62, 58, 66, 55, 75, 63, 68, 81, 67, 69, 68, 77, 71, 57, 54, 53, 68, 101, 59, 70, 64, 78, 75, 70, 67, 90, 71, 72, 55, 49, 49, 62, 51, 59, 61, 65, 57, 164, 49, 80, 64, 64, 56, 70, 78, 48, 76, 53, 58, 75, 85, 50, 93, 65, 64, 72, 64, 77, 65, 64, 81, 60, 100, 58, 110, 60, 55, 56, 75, 57, 65, 101, 49, 64, 56, 78, 74, 70, 59, 74, 60, 70, 57, 59, 64, 53, 49, 69, 60, 50, 67, 55, 73, 66, 85, 65, 63, 65, 61, 66, 59, 56, 69, 58, 63, 56, 74, 75, 59, 70, 54, 62, 52, 59, 77, 64, 89, 59, 55, 67, 66, 66, 66, 65, 55, 62, 63, 53, 94, 55, 88, 51, 65, 64, 94, 51, 66, 68, 64, 50, 67, 57, 60, 63, 49, 57, 67, 61, 58, 58, 59, 59, 61, 62, 65, 62, 87, 84, 51, 57, 74, 68, 75, 83, 57, 42, 66, 64, 76, 64, 103, 64, 83, 48, 79, 62, 52, 50, 58, 65, 61, 91, 63, 58, 68, 74, 49, 82, 55, 62, 70, 53, 68, 55, 63, 56, 68, 74, 69, 52, 53, 60, 61, 101, 68, 63, 71, 68, 54, 52, 91, 70, 72, 67, 76, 63, 75, 56, 66, 87, 69, 81, 67, 65, 90, 74, 62, 59, 59, 88, 71, 57, 61, 51, 54, 71, 108, 74, 61, 78, 55, 62, 65, 64, 65, 60, 69, 71, 62, 61, 56, 51, 76, 62, 71, 56, 71, 74, 67, 50, 74, 65, 64, 65, 100, 76, 55, 61, 61, 60, 60, 69, 74, 66, 55, 64, 57, 59, 81, 83, 74, 58, 60, 63, 83, 64, 69, 48, 64, 66, 65, 68, 73, 61, 66, 55, 57, 77, 48, 70, 96, 57, 73, 75, 83, 72, 56, 58, 68, 60, 71, 85, 64, 61, 67, 52, 57, 69, 86, 56, 55, 47, 71, 61, 64, 69, 56, 69, 70, 62, 61, 58, 61, 53, 66, 74, 58, 59, 73, 62, 80, 50, 70, 54, 106, 55, 69, 61, 85, 66, 69, 57, 61, 54, 48, 69, 91, 64, 57, 73, 58, 87, 76, 70, 87, 72, 60, 58, 68, 60, 68, 62, 66, 66, 60, 78, 83, 58, 71, 77, 75, 69, 62, 57, 56, 65, 76, 73, 76, 62, 65, 61, 66, 61, 82, 49, 62, 72, 84, 61, 71, 59, 72, 60, 54, 55, 57, 50, 56, 56, 71, 61, 57, 84, 52, 46, 82, 62, 50, 60, 67, 63, 62, 64, 83, 63, 52, 52, 67, 86, 69, 55, 73, 69, 47, 61, 83, 56, 53, 53, 71, 74, 72, 78, 125, 61, 89, 67, 71, 65, 74, 50, 56, 68, 69, 48, 69, 60, 61, 56, 61, 70, 75, 71, 81, 75, 64, 66, 59, 73, 60, 62, 49, 61, 61, 65, 77, 57, 67, 68, 52, 60, 63, 67, 66, 64, 65, 56, 64, 81, 68, 42, 88, 61, 88, 64, 67, 59, 62, 116, 62, 54, 77, 63, 59, 65, 60, 67, 65, 60, 62, 58, 81, 109, 52, 72, 60, 68, 59, 76, 72, 62, 50, 71, 64, 49, 71, 54, 56, 58, 83, 62, 70, 113, 136, 80, 80, 74, 57, 94, 50, 75, 83, 79, 58, 56, 66, 68, 55, 62, 92, 68, 58, 64, 78, 53, 72, 58, 49, 57, 56, 61, 76, 55, 81, 56, 64, 51, 67, 52, 53, 81, 82, 60, 54, 58, 68, 75, 55, 74, 67, 48, 78, 74, 64, 53, 66, 67, 74, 55, 65, 54, 99, 75, 76, 54, 56, 53, 76, 59, 66, 62, 68, 71, 61, 64, 62, 64, 73, 61, 86, 47, 64, 63, 61, 62, 58, 60, 75, 61, 57, 54, 66, 45, 51, 80, 53, 70, 65, 74, 79, 49, 67, 67, 53, 110, 55, 78, 55, 73, 66, 65, 108, 53, 49, 54, 62, 65, 63, 116, 58, 71, 61, 70, 58, 49, 73, 88, 54, 70, 80, 73, 65, 60, 47, 75, 71, 58, 69, 64, 64, 55, 75, 54, 64, 80, 117, 45, 69, 67, 72, 75, 67, 63, 69, 62, 81, 65, 52, 66, 78, 52, 85, 58, 77, 68, 75, 66, 50, 93, 83, 57, 45, 55, 79, 67, 59, 56, 80, 58, 71, 61, 69, 66, 68, 63, 67, 62, 49, 59, 57, 57, 69, 63, 78, 59, 84, 58, 62, 58, 78, 88, 52, 70, 74, 51, 103, 57, 49, 60, 40, 75, 62, 61, 67, 47, 74, 57, 63, 147, 60, 74, 67, 66, 62, 67, 62, 62, 56, 65, 63, 70, 79, 55, 58, 58, 60, 97, 75, 58, 66, 53, 58, 69, 81, 62, 78, 54, 61, 68, 75, 54, 57, 50, 71, 80, 72, 74, 55, 58, 58, 67, 82, 68, 62, 68, 66, 66, 51, 74, 64, 128, 71, 85, 66, 63, 73, 53, 72, 70, 74, 77, 52, 67, 79, 54, 64, 46, 72, 90, 41, 67, 59, 64, 74, 74, 57, 71, 65, 116, 61, 64, 65, 57, 58, 62, 59, 62, 80, 60, 62, 65, 58, 62, 68, 64, 64, 62, 98, 63, 45, 61, 79, 66, 58, 72, 65, 64, 76, 68, 64, 53, 69, 77, 57, 64, 64, 52, 54, 67, 61, 61, 52, 67, 81, 65, 40, 80, 55, 64, 61, 73, 59, 71, 66, 65, 48, 71, 69, 59, 74, 62, 60, 86, 60, 65, 68, 60, 54, 66, 55, 62, 65, 58, 74, 79, 62, 61, 67, 60, 63, 50, 61, 65, 72, 74, 61, 72, 57, 57, 57, 72, 61, 47, 54, 94, 67, 67, 53, 52, 63, 68, 78, 68, 49, 55, 55, 51, 62, 48, 71, 57, 61, 63, 63, 49, 65, 61, 77, 63, 66, 72, 62, 62, 61, 67, 69, 61, 61, 58, 63, 54, 55, 66, 54, 77, 55, 63, 64, 68, 53, 66, 65, 45, 66, 70, 76, 65, 65, 61, 69, 65, 46, 50, 64, 49, 60, 73, 76, 79, 44, 63, 62, 89, 72, 63, 68, 66, 68, 55, 68, 82, 77, 65, 52, 65, 66, 64, 50, 75, 67, 56, 69, 92, 64, 74, 86, 56, 60, 60, 75, 66, 65, 46, 57, 77, 72, 76, 60, 62, 54, 58, 80, 104, 53, 57, 105, 52, 59, 75, 52, 63, 51, 75, 52, 64, 63, 59, 63, 63, 56, 62, 60, 63, 93, 67, 82, 83, 67, 62, 53, 80, 68, 81, 76, 86, 70, 53, 85, 56, 68, 82, 70, 70, 93, 59, 61, 39, 64, 57, 66, 61, 80, 50, 79, 76, 128, 60, 59, 61, 72, 61, 82, 74, 75, 53, 69, 73, 74, 66, 58, 59, 67, 62, 67, 76, 52, 71, 60, 62, 49, 54, 60, 96, 70, 55, 64, 87, 68, 75, 65, 60, 62, 55, 59, 66, 54, 57, 58, 65, 65, 63, 70, 78, 65, 66, 51, 69, 67, 67, 91, 57, 73, 44, 61, 79, 67, 69, 68, 55, 70, 81, 58, 66, 69, 57, 76, 60, 64, 57, 58, 66, 58, 71, 69, 58, 56, 96, 54, 54, 50, 55, 65, 55, 74, 67, 57, 71, 52, 63, 49, 66, 78, 74, 91, 68, 50, 58, 64, 74, 63, 80, 60, 51, 122, 53, 63, 59, 57, 74, 58, 64, 63, 60, 47, 75, 92, 84, 45, 64, 72, 55, 68, 56, 61, 115, 52, 70, 66, 63, 75, 64, 58, 61, 66, 65, 55, 76, 63, 100, 68, 61, 76, 56, 63, 64, 72, 69, 57, 66, 105, 50, 48, 56, 66, 65, 67, 62, 79, 59, 55, 59, 79, 74, 52, 70, 80, 64, 55, 75, 62, 74, 65, 50, 57, 62, 54, 73, 93, 61, 67, 86, 56, 63, 65, 71, 57, 56, 76, 51, 68, 73, 67, 71, 58, 52, 55, 67, 63, 72, 46, 63, 52, 68, 52, 41, 51, 49, 59, 73, 75, 57, 77, 72, 61, 56, 65, 73, 55, 70, 69, 70, 80, 49, 54, 63, 70, 66, 75, 75, 62, 58, 60, 84, 64, 95, 68, 72, 86, 66, 67, 54, 67, 61, 91, 66, 71, 73, 70, 66, 68, 83, 58, 81, 53, 50, 63, 67, 81, 59, 77, 97, 46, 61, 80, 77, 93, 69, 56, 63, 63, 40, 67, 56, 66, 41, 70, 63, 49, 70, 58, 56, 63, 70, 67, 54, 61, 56, 51, 47, 75, 68, 54, 69, 54, 66, 62, 73, 79, 52, 53, 53, 50, 65, 71, 61, 58, 72, 87, 75, 58, 63, 70, 91, 67, 58, 64, 65, 74, 82, 95, 72, 66, 67, 56, 62, 64, 66, 48, 72, 60, 55, 80, 57, 60, 58, 82, 54, 77, 54, 61, 64, 67, 66, 66, 94, 66, 60, 54, 99, 67, 64, 62, 53, 94, 55, 80, 69, 108, 47, 62, 62, 100, 69, 62, 67, 73, 59, 71, 52, 70, 55, 63, 90, 58, 62, 53, 68, 69, 64, 76, 68, 68, 53, 53, 61, 72, 73, 64, 81, 50, 60, 59, 79, 56, 58, 49, 48, 146, 58, 68, 101, 53, 66, 60, 59, 63, 68, 65, 51, 66, 52, 54, 96, 65, 71, 86, 53, 70, 65, 67, 89, 56, 69, 58, 82, 64, 90, 73, 68, 63, 81, 66, 81, 61, 90, 66, 52, 43, 57, 70, 47, 60, 60, 79, 70, 64, 51, 56, 60, 76, 57, 61, 125, 61, 59, 57, 98, 67, 56, 62, 62, 59, 63, 75, 63, 80, 73, 59, 57, 68, 99, 65, 68, 58, 49, 73, 53, 52, 93, 70, 60, 65, 58, 63, 67, 65, 107, 77, 162, 74, 72, 85, 56, 56, 56, 60, 58, 69, 67, 103, 56, 62, 63, 50, 64, 74, 48, 69, 65, 48, 51, 64, 51, 72, 75, 58, 61, 72, 93, 55, 76, 95, 57, 49, 81, 58, 65, 62, 43, 68, 47, 41, 82, 51, 79, 44, 58, 61, 47, 70, 65, 47, 57, 56, 84, 95, 49, 57, 69, 59, 68, 61, 96, 80, 66, 66, 68, 87, 61, 122, 66, 59, 83, 53, 63, 60, 54, 65, 65, 53, 87, 67, 63, 60, 67, 66, 60, 67, 89, 58, 67, 71, 73, 70, 50, 81, 54, 63, 73, 49, 52, 77, 55, 72, 64, 65, 69, 91, 57, 63, 68, 73, 97, 50, 67, 57, 65, 89, 81, 75, 69, 73, 60, 56, 76, 48, 65, 49, 64, 72, 53, 60, 71, 62, 46, 61, 62, 74, 90, 86, 50, 45, 53, 62, 56, 68, 74, 68, 73, 57, 60, 78, 67, 55, 55, 69, 63, 79, 83, 60, 65, 85, 60, 55, 69, 59, 57, 52, 60, 41, 48, 49, 59, 62, 77, 96, 59, 54, 64, 66, 54, 64, 72, 73, 75, 56, 76, 63, 65, 62, 59, 69, 54, 75, 84, 58, 60, 60, 58, 47, 66, 75, 56, 60, 52, 62, 88, 57, 52, 75, 44, 63, 75, 63, 66, 103, 53, 84, 66, 61, 90, 74, 70, 84, 87, 145, 74, 53, 49, 53, 64, 72, 40, 53, 70, 69, 49, 42, 68, 54, 62, 65, 58, 66, 64, 59, 66, 58, 64, 50, 78, 58, 72, 77, 92, 60, 67, 62, 47, 64, 59, 70, 73, 79, 73, 56, 82, 59, 60, 81, 60, 56, 74, 56, 73, 72, 67, 56, 74, 99, 76, 66, 55, 63, 64, 75, 46, 59, 56, 62, 74, 54, 75, 58, 54, 60, 73, 76, 74, 51, 60, 65, 47, 59, 48, 59, 56, 72, 76, 68, 60, 69, 122, 50, 53, 52, 70, 62, 67, 82, 51, 48, 84, 53, 64, 61, 72, 44, 71, 53, 66, 51, 64, 57, 68, 64, 46, 61, 63, 51, 89, 87, 84, 67, 46, 55, 58, 90, 60, 79, 79, 53, 57, 45, 55, 59, 74, 51, 56, 65, 57, 86, 59, 59, 71, 50, 70, 76, 61, 73, 74, 74, 56, 79, 56, 60, 60, 64, 83, 62, 81, 59, 50, 69, 92, 68, 65, 56, 64, 54, 69, 79, 64, 59, 78, 61, 63, 84, 69, 162, 55, 50, 55, 74, 79, 62, 62, 69, 96, 46, 66, 54, 61, 55, 128, 49, 64, 59, 59, 65, 53, 61, 55, 68, 87, 51, 75, 46, 54, 69, 71, 47, 67, 65, 67, 63, 55, 57, 54, 65, 60, 81, 89, 111, 48, 36, 54, 64, 59, 59, 54, 45, 55, 56, 42, 55, 62, 52, 87, 58, 59, 86, 74, 102, 78, 58, 82, 72, 66, 80, 70, 64, 68, 68, 72, 49, 69, 58, 67, 76, 133, 75, 56, 71, 61, 77, 51, 73, 88, 60, 53, 63, 57, 61, 47, 65, 59, 65, 69, 79, 69, 57, 65, 56, 53, 54, 73, 53, 65, 73, 56, 54, 66, 51, 63, 86, 67, 59, 61, 67, 50, 88, 82, 50, 64, 59, 59, 59, 63, 80, 77, 75, 56, 58, 58, 72, 68, 75, 99, 92, 69, 71, 66, 45, 56, 62, 51, 71, 63, 58, 78, 87, 56, 75, 56, 63, 77, 71, 62, 84, 87, 55, 85, 64, 57, 53, 62, 61, 93, 67, 74, 80, 96, 83, 50, 61, 52, 52, 82, 76, 93, 48, 44, 52, 66, 119, 36, 71, 111, 67, 52, 84, 57, 51, 63, 69, 60, 83, 73, 86, 42, 91, 62, 57, 70, 61, 37, 59, 75, 74, 74, 83, 58, 70, 58, 64, 89, 52, 62, 70, 61, 53, 53, 87, 59, 74, 52, 62, 44, 57, 49, 120, 76, 47, 66, 105, 55, 69, 90, 61, 43, 45, 76, 55, 68, 73, 59, 64, 57, 65, 52, 97, 73, 69, 41, 77, 57, 65, 64, 70, 85, 78, 55, 65, 56, 70, 67, 73, 63, 52, 69, 61, 74, 104, 63, 61, 54, 60, 56, 62, 70, 64, 70, 68, 57, 75, 79, 67, 64, 47, 64, 62, 60, 55, 61, 60, 52, 54, 83, 55, 60, 72, 39, 66, 49, 33, 35, 57, 102, 56, 50, 56, 79, 93, 76, 58, 68, 65, 68, 58, 65, 67, 96, 69, 57, 77, 68, 67, 46, 51, 117, 72, 61, 80, 44, 89, 64, 69, 56, 78, 77, 73, 54, 55, 63, 56, 72, 73, 70, 71, 63, 70, 56, 64, 94, 64, 67, 61, 61, 69, 77, 98, 76, 55, 75, 57, 75, 58, 47, 61, 51, 50, 57, 66, 66, 57, 77, 56, 95, 87, 50, 66, 72, 40, 67, 72, 59, 51, 71, 105, 64, 69, 39, 80, 48, 72, 52, 50, 65, 70, 51, 55, 72, 54, 68, 70, 72, 84, 89, 72, 46, 77, 61, 50, 74, 64, 155, 50, 68, 69, 65, 86, 71, 70, 75, 83, 66, 72, 49, 77, 75, 73, 64, 53, 73, 43, 69, 65, 58, 53, 45, 60, 56, 75, 77, 65, 68, 58, 101, 65, 75, 55, 71, 75, 67, 79, 56, 62, 52, 91, 62, 60, 67, 54, 93, 53, 77, 61, 61, 61, 58, 76, 73, 54, 50, 63, 66, 101, 65, 69, 93, 59, 91, 75, 64, 69, 69, 72, 62, 58, 50, 58, 54, 44, 63, 63, 75, 83, 61, 71, 76, 51, 75, 54, 70, 86, 84, 54, 75, 77, 71, 88, 55, 73, 126, 48, 98, 52, 85, 75, 45, 53, 66, 59, 64, 55, 38, 53, 65, 78, 55, 60, 74, 54, 82, 71, 62, 64, 63, 60, 76, 86, 60, 54, 58, 40, 46, 68, 70, 66, 60, 92, 54, 58, 66, 91, 71, 48, 52, 60, 85, 47, 58, 76, 38, 81, 51, 61, 83, 53, 60, 89, 64, 87, 79, 66, 50, 59, 72, 72, 50, 62, 65, 73, 58, 53, 66, 60, 74, 73, 70, 61, 57, 60, 67, 62, 56, 66, 93, 73, 66, 113, 45, 69, 49, 60, 73, 52, 70, 74, 68, 61, 54, 74, 75, 67, 111, 66, 53, 57, 74, 80, 46, 78, 66, 62, 60, 78, 59, 72, 54, 72, 55, 56, 47, 76, 58, 64, 70, 54, 70, 49, 74, 66, 71, 86, 94, 72, 53, 87, 53, 61, 59, 111, 64, 45, 77, 94, 55, 59, 69, 70, 85, 77, 69, 58, 54, 59, 67, 53, 58, 78, 70, 69, 62, 68, 73, 69, 58, 76, 90, 106, 65, 47, 36, 60, 80, 50, 61, 70, 102, 64, 66, 50, 82, 100, 77, 54, 65, 56, 58, 51, 73, 83, 61, 62, 85, 101, 43, 94, 67, 79, 72, 69, 71, 74, 67, 63, 64, 34, 61, 42, 53, 48, 62, 78, 77, 64, 63, 93, 47, 64, 56, 70, 121, 45, 66, 47, 67, 69, 62, 76, 63, 72, 46, 76, 66, 54, 61, 43, 80, 58, 66, 82, 67, 79, 67, 58, 92, 64, 69, 42, 41, 110, 91, 30, 81, 102, 60, 55, 63, 62, 51, 49, 69, 64, 66, 97, 93, 99, 100, 80, 54, 81, 81, 49, 62, 65, 97, 68, 54, 74, 44, 69, 78, 34, 65, 55, 51, 84, 65, 93, 57, 78, 70, 59, 75, 76, 76, 58, 74, 55, 69, 67, 64, 70, 57, 79, 54, 129, 92, 73, 68, 53, 81, 64, 55, 70, 69, 95, 61, 57, 82, 68, 52, 45, 61, 63, 77, 52, 65, 63, 84, 63, 65, 61, 60, 53, 49, 68, 49, 57, 44, 50, 56, 56, 79, 54, 94, 64, 41, 77, 56, 63, 58, 53, 71, 55, 71, 73, 79, 63, 53, 74, 68, 69, 63, 88, 58, 55, 59, 46, 69, 71, 62, 62, 63, 54, 40, 68, 53, 52, 65, 49, 71, 59, 62, 91, 48, 56, 54, 59, 54, 102, 59, 68, 86, 68, 54, 56, 69, 53, 50, 91, 74, 63, 51, 88, 49, 42, 53, 61, 72, 37, 56, 58, 80, 60, 66, 60, 59, 77, 61, 58, 63, 49, 56, 72, 77, 38, 67, 59, 100, 67, 68, 60, 66, 42, 70, 56, 64, 100, 72, 58, 55, 84, 73, 81, 112, 74, 53, 57, 57, 68, 88, 71, 53, 77, 74, 71, 106, 115, 98, 67, 35, 56, 55, 63, 43, 52, 62, 78, 69, 54, 69, 63, 55, 41, 61, 75, 75, 71, 69, 58, 63, 71, 44, 57, 75, 61, 75, 56, 51, 58, 90, 64, 47, 93, 95, 74, 71, 76, 81, 49, 59, 93, 67, 52, 62, 64, 105, 76, 69, 49, 58, 60, 47, 55, 63, 46, 60, 65, 51, 64, 51, 65, 77, 75, 117, 72, 61, 68, 68, 86, 67, 65, 56, 42, 67, 41, 81, 41, 57, 63, 60, 62, 55, 52, 56, 73, 62, 46, 63, 62, 60, 101, 78, 55, 109, 58, 74, 59, 56, 67, 66, 73, 50, 81, 76, 79, 44, 55, 77, 70, 86, 95, 69, 63, 70, 109, 40, 60, 46, 93, 66, 35, 43, 39, 53, 76, 59, 77, 54, 63, 55, 60, 72, 51, 68, 71, 58, 44, 92, 77, 64, 73, 70, 50, 67, 56, 57, 39, 61, 58, 48, 61, 28, 103, 52, 61, 69, 65, 73, 53, 50, 130, 106, 57, 59, 64, 52, 74, 51, 73, 49, 88, 52, 102, 54, 40, 76, 61, 65, 84, 55, 52, 58, 71, 66, 47, 75, 60, 45, 70, 44, 70, 73, 72, 59, 64, 53, 51, 67, 43, 61, 73, 59, 62, 53, 67, 61, 79, 70, 23, 68, 49, 66, 67, 49, 69, 50, 89, 73, 93, 111, 77, 59, 36, 74, 62, 70, 34, 61, 79, 59, 121, 63, 76, 50, 90, 54, 74, 107, 82, 73, 67, 65, 72, 59, 74, 83, 33, 76, 58, 65, 48, 57, 84, 86, 60, 76, 68, 44, 37, 75, 74, 67, 57, 65, 85, 45, 72, 93, 63, 56, 61, 76, 57, 91, 50, 52, 89, 118, 62, 41, 37, 59, 54, 50, 67, 76, 50, 58, 67, 65, 70, 94, 69, 89, 62, 59, 61, 78, 62, 64, 49, 52, 55, 76, 67, 77, 49, 54, 50, 67, 68, 54, 56, 64, 57, 58, 60, 63, 76, 89, 74, 59, 41, 54, 47, 77, 71, 72, 72, 79, 81, 67, 53, 70, 91, 63, 81, 83, 34, 59, 62, 52, 69, 66, 54, 52, 72, 88, 65, 57, 87, 62, 63, 61, 74, 81, 48, 36, 70, 66, 61, 80, 78, 41, 64, 99, 31, 32, 70, 61, 54, 74, 53, 72, 53, 54, 40, 49, 62, 37, 67, 61, 58, 66, 65, 73, 52, 58, 63, 57, 77, 81, 74, 76, 49, 45, 57, 59, 67, 68, 87, 96, 64, 80, 78, 69, 63, 36, 117, 68, 70, 42, 63, 66, 65, 62, 52, 79, 59, 66, 61, 118, 62, 58, 57, 63, 54, 52, 82, 87, 54, 66, 58, 53, 54, 66, 63, 101, 69, 72, 73, 86, 59, 66, 44, 57, 56, 69, 67, 46, 91, 87, 66, 67, 67, 57, 79, 58, 73, 74, 40, 53, 80, 51, 51, 55, 46, 78, 60, 98, 62, 39, 73, 67, 78, 67, 66, 87, 93, 67, 69, 50, 98, 56, 58, 75, 47, 89, 49, 89, 74, 60, 79, 61, 72, 61, 96, 82, 52, 61, 58, 51, 47, 55, 44, 63, 67, 67, 53, 75, 70, 77, 86, 48, 87, 47, 52, 52, 72, 84, 100, 39, 51, 82, 52, 76, 96, 60, 57, 76, 59, 67, 47, 50, 77, 118, 57, 131, 56, 54, 76, 58, 60, 90, 77, 38, 57, 55, 70, 78, 71, 59, 73, 62, 62, 46, 80, 67, 66, 55, 80, 58, 68, 55, 81, 75, 69, 70, 57, 64, 69, 72, 66, 44, 70, 40, 82, 74, 102, 46, 63, 75, 62, 38, 58, 96, 45, 55, 46, 68, 67, 54, 47, 102, 44, 64, 86, 50, 63, 89, 89, 67, 73, 63, 38, 78, 107, 69, 51, 56, 69, 80, 100, 67, 81, 73, 60, 69, 59, 71, 33, 74, 75, 51, 102, 54, 67, 101, 44, 69, 68, 90, 65, 71, 49, 49, 86, 103, 59, 66, 66, 37, 62, 61, 71, 76, 36, 130, 78, 69, 60, 70, 70, 88, 52, 66, 78, 80, 85, 123, 60, 57, 46, 81, 60, 55, 71, 95, 56, 42, 49, 61, 66, 59, 90, 71, 104, 59, 52, 52, 75, 44, 53, 88, 74, 76, 67, 77, 50, 76, 69, 58, 70, 63, 74, 61, 75, 75, 87, 59, 66, 43, 50, 56, 72, 57, 61, 86, 77, 62, 66, 69, 82, 66, 67, 91, 55, 67, 53, 44, 59, 60, 80, 60, 77, 54, 50, 60, 65, 45, 51, 72, 62, 36, 78, 57, 80, 60, 67, 69, 68, 81, 57, 49, 110, 121, 59, 52, 80, 61, 66, 71, 68, 59, 87, 59, 102, 56, 73, 65, 83, 57, 40, 68, 78, 78, 68, 58, 34, 79, 96, 68, 63, 62, 60, 31, 72, 50, 63, 69, 76, 65, 53, 61, 79, 72, 66, 67, 64, 88, 57, 48, 60, 66, 62, 90, 72, 63, 62, 75, 71, 74, 78, 58, 54, 78, 58, 68, 77, 88, 51, 54, 51, 65, 47, 70, 51, 44, 54, 80, 61, 64, 61, 59, 82, 59, 81, 62, 49, 66, 47, 57, 52, 62, 51, 59, 73, 62, 60, 48, 49, 59, 81, 70, 73, 123, 68, 77, 79, 65, 71, 59, 50, 45, 53, 65, 74, 74, 58, 65, 67, 70, 57, 89, 80, 56, 99, 54, 55, 87, 75, 57, 59, 57, 56, 84, 47, 44, 73, 64, 59, 93, 52, 86, 83, 82, 65, 141, 67, 86, 64, 44, 64, 88, 69, 48, 53, 60, 64, 56, 54, 65, 64, 63, 50, 67, 78, 54, 68, 49, 46, 72, 54, 83, 61, 62, 68, 65, 71, 41, 54, 43, 79, 66, 57, 70, 65, 54, 36, 71, 60, 56, 43, 60, 62, 61, 74, 64, 68, 78, 88, 82, 51, 72, 55, 89, 70, 75, 57, 78, 51, 58, 51, 47, 64, 76, 73, 79, 74, 97, 47, 63, 51, 97, 49, 46, 72, 92, 64, 45, 62, 62, 57, 46, 66, 48, 70, 75, 74, 83, 70, 83, 63, 47, 70, 68, 77, 67, 64, 87, 54, 69, 52, 62, 73, 47, 51, 115, 59, 56, 73, 62, 72, 63, 46, 48, 47, 67, 68, 73, 58, 62, 64, 68, 79, 66, 64, 65, 58, 48, 58, 76, 68, 92, 73, 51, 80, 104, 67, 64, 69, 36, 47, 62, 58, 80, 57, 76, 56, 55, 50, 46, 83, 62, 93, 61, 68, 65, 79, 21, 67, 73, 86, 57, 59, 80, 63, 74, 43, 64, 64, 58, 67, 65, 66, 73, 60, 59, 60, 54, 62, 67, 70, 60, 87, 46, 73, 59, 57, 75, 44, 80, 78, 48, 50, 46, 66, 71, 75, 62, 59, 58, 73, 65, 57, 54, 51, 55, 48, 55, 66, 59, 69, 69, 62, 50, 71, 81, 59, 80, 60, 91, 53, 70, 84, 59, 55, 61, 61, 73, 56, 89, 82, 80, 68, 61, 105, 54, 79, 52, 55, 48, 62, 88, 70, 49, 77, 46, 69, 70, 57, 90, 59, 53, 63, 64, 61, 76, 57, 50, 56, 50, 79, 72, 74, 68, 65, 69, 86, 54, 49, 90, 51, 69, 79, 69, 47, 62, 58, 63, 43, 53, 81, 73, 67, 50, 63, 53, 66, 68, 67, 48, 54, 55, 56, 30, 48, 62, 46, 116, 68, 95, 47, 75, 73, 56, 73, 48, 92, 119, 64, 86, 55, 48, 59, 72, 67, 66, 74, 57, 70, 73, 72, 60, 101, 49, 55, 53, 85, 63, 85, 54, 58, 72, 57, 71, 71, 58, 64, 52, 60, 70, 66, 89, 76, 73, 81, 60, 92, 117, 85, 64, 109, 74, 54, 52, 61, 71, 64, 48, 47, 76, 74, 76, 79, 67, 46, 56, 50, 40, 84, 77, 62, 56, 58, 55, 56, 62, 48, 86, 75, 89, 61, 73, 53, 76, 74, 60, 83, 76, 60, 50, 72, 86, 41, 65, 86, 44, 51, 55, 60, 52, 43, 58, 52, 72, 61, 55, 79, 62, 64, 72, 78, 80, 75, 62, 62, 71, 84, 60, 45, 58, 101, 66, 79, 66, 53, 63, 76, 59, 109, 89, 74, 55, 67, 94, 62, 93, 90, 47, 37, 64, 51, 57, 60, 55, 81, 92, 50, 79, 42, 70, 68, 58, 63, 76, 50, 72, 68, 98, 78, 46, 74, 56, 64, 59, 46, 64, 66, 53, 71, 86, 60, 68, 47, 68, 65, 54, 84, 73, 78, 70, 54, 74, 78, 71, 70, 68, 69, 73, 69, 74, 41, 76, 40, 53, 55, 51, 74, 58, 66, 81, 50, 55, 98, 86, 100, 90, 93, 59, 48, 56, 95, 49, 57, 54, 81, 87, 68, 54, 58, 66, 66, 50, 64, 41, 65, 75, 37, 80, 55, 61, 63, 57, 135, 58, 117, 53, 49, 75, 70, 70, 61, 66, 63, 55, 73, 54, 80, 74, 66, 70, 53, 59, 119, 75, 73, 65, 64, 76, 59, 74, 58, 56, 84, 68, 53, 51, 81, 94, 55, 47, 62, 74, 49, 60, 62, 62, 69, 42, 69, 66, 62, 61, 69, 79, 59, 47, 76, 67, 78, 76, 85, 53, 58, 76, 88, 61, 57, 57, 51, 65, 80, 70, 64, 65, 57, 74, 80, 78, 41, 71, 56, 53, 57, 51, 43, 75, 69, 100, 50, 70, 48, 85, 52, 62, 65, 59, 70, 98, 58, 36, 71, 88, 47, 58, 68, 57, 59, 65, 64, 91, 74, 67, 68, 59, 68, 72, 62, 61, 66, 75, 82, 68, 71, 46, 84, 69, 68, 49, 70, 66, 56, 72, 91, 75, 59, 61, 46, 81, 72, 77, 63, 60, 78, 70, 56, 54, 66, 59, 55, 63, 51, 70, 74, 38, 80, 60, 99, 67, 70, 56, 60, 61, 79, 60, 55, 64, 69, 70, 80, 73, 81, 58, 72, 62, 73, 87, 60, 55, 87, 87, 68, 64, 71, 51, 60, 63, 70, 53, 76, 52, 65, 92, 69, 66, 64, 68, 62, 61, 63, 78, 54, 55, 80, 58, 72, 67, 51, 72, 57, 57, 44, 61, 44, 51, 78, 76, 73, 61, 66, 94, 46, 49, 60, 75, 70, 56, 57, 84, 64, 57, 59, 65, 97, 66, 52, 51, 92, 81, 98, 38, 75, 57, 49, 86, 60, 59, 51, 77, 66, 63, 75, 77, 56, 54, 56, 47, 80, 52, 66, 65, 61, 74, 101, 51, 49, 64, 65, 54, 51, 63, 72, 63, 71, 62, 58, 46, 93, 74, 68, 70, 65, 59, 66, 73, 64, 51, 51, 79, 49, 49, 66, 72, 78, 41, 66, 57, 65, 64, 46, 55, 56, 64, 85, 107, 62, 57, 55, 82, 64, 75, 65, 52, 72, 54, 63, 58, 69, 87, 66, 63, 61, 68, 78, 61, 65, 103, 60, 66, 72, 65, 81, 68, 58, 81, 69, 112, 70, 67, 71, 75, 86, 49, 71, 61, 66, 58, 58, 75, 62, 71, 62, 69, 61, 75, 64, 53, 59, 57, 66, 60, 63, 66, 64, 99, 67, 57, 78, 79, 61, 122, 54, 61, 59, 67, 82, 55, 51, 66, 69, 85, 58, 54, 65, 87, 68, 71, 57, 55, 59, 71, 70, 59, 67, 75, 65, 61, 127, 72, 63, 45, 61, 83, 65, 60, 64, 77, 62, 74, 61, 60, 52, 65, 72, 56, 66, 58, 61, 69, 81, 60, 71, 68, 65, 65, 57, 62, 74, 96, 76, 63, 80, 67, 43, 63, 49, 47, 58, 63, 63, 46, 59, 55, 70, 62, 115, 63, 57, 68, 79, 50, 86, 73, 59, 66, 49, 65, 62, 76, 99, 142, 71, 75, 54, 63, 79, 64, 64, 62, 92, 58, 64, 51, 65, 77, 49, 71, 66, 56, 55, 75, 65, 85, 59, 56, 58, 72, 68, 51, 64, 67, 65, 62, 52, 53, 62, 65, 57, 58, 55, 60, 50, 51, 79, 65, 59, 54, 69, 54, 64, 57, 60, 57, 61, 54, 52, 67, 63, 60, 91, 77, 64, 67, 58, 70, 53, 72, 68, 57, 57, 61, 59, 58, 56, 64, 45, 69, 60, 61, 67, 69, 61, 58, 75, 72, 61, 72, 65, 80, 62, 64, 64, 73, 83, 67, 66, 62, 54, 71, 66, 90, 77, 55, 70, 64, 63, 72, 61, 63, 61, 78, 62, 53, 58, 62, 63, 61, 63, 60, 57, 58, 55, 64, 56, 58, 56, 67, 68, 58, 54, 55, 68, 67, 63, 62, 69, 79, 70, 74, 51, 75, 69, 59, 58, 48, 65, 67, 76, 91, 92, 62, 71, 44, 66, 60, 127, 53, 54, 61, 54, 57, 58, 57, 68, 61, 64, 60, 69, 60, 71, 68, 59, 59, 67, 43, 77, 69, 91, 67, 66, 56, 104, 61, 44, 64, 63, 56, 52, 61, 71, 60, 52, 76, 59, 66, 55, 67, 64, 69, 62, 73, 67, 48, 57, 67, 61, 102, 63, 58, 61, 72, 63, 58, 61, 108, 69, 66, 57, 54, 80, 64, 65, 57, 71, 49, 78, 67, 58, 59, 58, 62, 57, 63, 69, 67, 88, 60, 51, 67, 48, 52, 57, 59, 90, 66, 69, 67, 64, 56, 55, 71, 80, 67, 59, 72, 55, 56, 59, 89, 63, 80, 65, 71, 66, 65, 59, 69, 63, 50, 66, 67, 67, 58, 58, 57, 68, 69, 68, 62, 77, 62, 58, 59, 65, 53, 59, 63, 68, 63, 58, 62, 86, 76, 62, 62, 69, 54, 77, 46, 50, 55, 69, 81, 69, 65, 58, 58, 65, 79, 61, 62, 59, 82, 71, 74, 58, 64, 69, 50, 75, 50, 52, 70, 89, 34, 56, 73, 60, 59, 75, 72, 67, 49, 88, 69, 57, 64, 70, 57, 62, 57, 82, 56, 58, 75, 106, 65, 67, 62, 62, 66, 62, 68, 52, 75, 59, 62, 62, 58, 63, 49, 44, 58, 102, 64, 54, 61, 67, 64, 52, 51, 74, 84, 84, 54, 60, 71, 59, 79, 61, 69, 58, 86, 64, 73, 60, 54, 80, 56, 61, 93, 73, 73, 59, 58, 61, 64, 54, 94, 58, 67, 64, 65, 82, 52, 62, 59, 61, 59, 58, 49, 67, 66, 75, 37, 48, 74, 68, 121, 66, 63, 58, 59, 67, 48, 73, 78, 63, 61, 68, 46, 59, 55, 77, 58, 59, 71, 59, 61, 59, 55, 48, 57, 54, 73, 72, 67, 63, 59, 58, 69, 60, 61, 93, 59, 94, 46, 57, 52, 88, 67, 61, 62, 72, 81, 81, 61, 64, 54, 63, 46, 58, 88, 54, 50, 49, 71, 58, 74, 103, 73, 58, 53, 59, 98, 52, 59, 60, 60, 60, 64, 60, 61, 52, 66, 54, 71, 60, 111, 70, 79, 101, 57, 66, 79, 59, 54, 62, 53, 53, 64, 52, 62, 68, 63, 67, 53, 60, 75, 68, 97, 50, 79, 58, 55, 83, 52, 78, 74, 63, 79, 60, 65, 67, 66, 65, 68, 66, 59, 81, 62, 66, 71, 56, 72, 67, 60, 58, 88, 71, 65, 75, 68, 63, 65, 55, 68, 64, 71, 50, 66, 70, 65, 57, 60, 52, 77, 76, 59, 65, 66, 58, 77, 47, 69, 64, 63, 78, 52, 50, 58, 63, 64, 65, 65, 81, 46, 93, 54, 57, 61, 62, 53, 58, 60, 77, 52, 59, 63, 39, 44, 61, 70, 78, 67, 57, 66, 73, 59, 50, 75, 61, 61, 62, 51, 52, 103, 63, 62, 56, 66, 72, 71, 64, 48, 49, 82, 58, 62, 66, 60, 61, 63, 69, 55, 76, 68, 63, 53, 62, 67, 55, 54, 115, 71, 49, 67, 62, 66, 63, 50, 52, 63, 54, 69, 57, 66, 65, 72, 66, 47, 61, 55, 70, 67, 64, 57, 112, 59, 62, 63, 49, 58, 57, 79, 83, 54, 90, 70, 62, 78, 65, 69, 64, 58, 61, 59, 69, 74, 70, 57, 65, 63, 77, 52, 52, 53, 81, 62, 65, 70, 79, 53, 55, 62, 62, 88, 57, 54, 69, 66, 50, 50, 67, 69, 52, 62, 85, 61, 74, 61, 71, 81, 59, 73, 81, 65, 59, 56, 59, 57, 69, 61, 58, 57, 70, 67, 68, 69, 65, 68, 56, 65, 49, 71, 65, 116, 68, 83, 67, 81, 87, 44, 72, 49, 44, 52, 79, 48, 62, 62, 53, 74, 73, 70, 75, 67, 49, 40, 57, 53, 58, 78, 59, 71, 67, 54, 83, 88, 59, 68, 68, 62, 55, 96, 51, 63, 65, 79, 42, 69, 91, 96, 68, 64, 56, 72, 50, 56, 44, 66, 50, 81, 66, 49, 43, 57, 67, 66, 56, 60, 68, 102, 56, 63, 65, 59, 50, 51, 56, 83, 63, 58, 89, 67, 61, 59, 65, 81, 51, 52, 66, 64, 34, 56, 51, 70, 50, 87, 115, 53, 82, 46, 58, 66, 65, 70, 85, 65, 61, 49, 76, 57, 60, 74, 73, 67, 63, 65, 60, 60, 76, 60, 65, 75, 71, 70, 64, 68, 61, 68, 86, 47, 79, 66, 73, 56, 64, 96, 60, 78, 64, 66, 60, 53, 71, 57, 56, 75, 69, 59, 77, 68, 83, 44, 85, 73, 55, 48, 53, 75, 47, 76, 60, 73, 70, 71, 56, 60, 65, 56, 86, 66, 60, 67, 57, 59, 68, 86, 102, 75, 64, 42, 58, 71, 68, 53, 65, 59, 67, 74, 61, 54, 69, 57, 62, 59, 72, 61, 56, 76, 46, 77, 69, 55, 70, 72, 87, 59, 94, 80, 57, 48, 98, 64, 95, 103, 52, 71, 70, 76, 102, 63, 64, 65, 51, 71, 43, 64, 100, 85, 53, 45, 58, 46, 54, 64, 46, 54, 49, 55, 67, 73, 69, 57, 75, 94, 85, 71, 74, 48, 78, 76, 63, 76, 90, 70, 63, 66, 66, 68, 105, 49, 103, 53, 63, 63, 80, 65, 53, 53, 57, 67, 68, 56, 82, 59, 74, 57, 48, 45, 52, 53, 79, 49, 53, 55, 66, 66, 74, 60, 78, 76, 67, 55, 88, 53, 46, 61, 62, 115, 54, 81, 45, 65, 52, 65, 60, 63, 63, 72, 62, 84, 63, 74, 58, 72, 68, 61, 84, 51, 57, 69, 58, 57, 48, 62, 61, 66, 57, 75, 60, 88, 53, 43, 54, 49, 56, 51, 50, 59, 50, 47, 102, 75, 76, 75, 57, 47, 63, 74, 61, 78, 64, 56, 60, 64, 72, 68, 59, 61, 59, 55, 57, 42, 35, 66, 67, 44, 109, 58, 58, 55, 52, 81, 74, 71, 95, 65, 71, 62, 72, 59, 61, 75, 53, 65, 49, 62, 59, 56, 46, 111, 50, 56, 70, 47, 90, 57, 78, 77, 56, 91, 77, 60, 54, 56, 63, 105, 70, 57, 87, 50, 82, 52, 78, 60, 77, 63, 49, 56, 76, 65, 50, 75, 63, 54, 56, 41, 42, 45, 53, 50, 55, 79, 60, 68, 69, 47, 57, 91, 56, 85, 72, 57, 50, 58, 99, 67, 51, 44, 77, 69, 53, 53, 66, 61, 55, 84, 80, 73, 85, 55, 41, 77, 40, 75, 45, 87, 49, 51, 54, 60, 54, 68, 73, 67, 68, 63, 60, 137, 91, 69, 66, 89, 69, 62, 52, 71, 43, 68, 62, 61, 55, 87, 69, 63, 63, 59, 104, 66, 63, 67, 65, 128, 89, 70, 58, 70, 35, 73, 65, 65, 47, 76, 64, 50, 64, 70, 57, 64, 58, 60, 63, 61, 67, 71, 96, 57, 95, 60, 79, 84, 61, 56, 72, 53, 57, 89, 62, 84, 60, 60, 74, 67, 94, 64, 57, 65, 74, 141, 98, 97, 62, 56, 62, 52, 42, 71, 52, 85, 80, 50, 55, 66, 52, 47, 48, 64, 82, 56, 64, 77, 50, 49, 59, 60, 93, 102, 62, 51, 58, 51, 94, 90, 57, 51, 79, 36, 71, 69, 59, 59, 65, 94, 52, 53, 39, 51, 65, 43, 55, 66, 66, 50, 47, 53, 62, 57, 59, 54, 133, 84, 56, 42, 62, 78, 81, 54, 58, 66, 69, 59, 53, 71, 73, 76, 56, 66, 50, 74, 76, 86, 68, 71, 79, 51, 56, 77, 84, 70, 49, 74, 57, 76, 52, 67, 66, 68, 60, 71, 45, 47, 68, 97, 73, 87, 66, 99, 97, 54, 68, 53, 71, 76, 63, 63, 97, 82, 84, 101, 64, 74, 84, 76, 66, 70, 65, 47, 49, 57, 76, 54, 56, 71, 74, 114, 65, 55, 63, 66, 63, 60, 95, 65, 63, 64, 60, 59, 54, 53, 97, 79, 92, 66, 81, 83, 72, 59, 56, 72, 73, 65, 46, 75, 71, 57, 83, 82, 78, 65, 49, 74, 53, 74, 71, 64, 88, 54, 79, 76, 57, 63, 77, 54, 56, 44, 68, 51, 62, 75, 86, 57, 64, 65, 71, 53, 50, 58, 50, 67, 75, 54, 122, 62, 68, 77, 44, 65, 60, 68, 64, 79, 65, 69, 54, 62, 61, 76, 63, 97, 71, 90, 68, 65, 66, 74, 92, 58, 54, 61, 60, 58, 49, 62, 62, 64, 53, 59, 50, 60, 51, 71, 69, 60, 34, 56, 54, 81, 77, 61, 61, 48, 108, 59, 80, 70, 91, 61, 55, 81, 70, 91, 49, 50, 54, 73, 77, 48, 49, 85, 34, 74, 84, 55, 82, 49, 106, 82, 62, 60, 75, 85, 52, 65, 65, 53, 47, 101, 57, 89, 57, 60, 80, 79, 63, 63, 65, 83, 97, 69, 65, 61, 53, 87, 61, 92, 73, 88, 63, 56, 57, 137, 60, 69, 61, 62, 50, 60, 84, 59, 50, 92, 52, 71, 43, 79, 78, 56, 79, 124, 73, 59, 50, 79, 75, 66, 48, 101, 60, 90, 65, 65, 74, 66, 58, 60, 63, 64, 56, 61, 67, 85, 85, 63, 58, 58, 87, 66, 53, 58, 52, 68, 57, 80, 50, 64, 58, 52, 64, 60, 93, 52, 65, 59, 75, 78, 59, 84, 70, 49, 66, 68, 79, 67, 92, 59, 50, 90, 80, 52, 63, 70, 67, 55, 56, 59, 77, 50, 59, 94, 67, 59, 62, 58, 82, 58, 73, 53, 73, 54, 53, 72, 74, 58, 75, 62, 63, 57, 64, 57, 73, 42, 81, 69, 66, 47, 56, 71, 55, 78, 62, 68, 77, 60, 46, 71, 74, 72, 67, 85, 53, 76, 57, 64, 61, 69, 70, 66, 69, 80, 58, 74, 62, 72, 76, 68, 68, 62, 58, 52, 54, 60, 52, 61, 65, 75, 84, 81, 58, 62, 65, 81, 65, 67, 97, 77, 67, 61, 85, 64, 72, 106, 65, 65, 59, 52, 53, 56, 43, 52, 48, 65, 39, 78, 70, 51, 55, 64, 62, 61, 58, 67, 76, 55, 49, 58, 58, 58, 67, 65, 54, 63, 66, 55, 54, 92, 49, 56, 61, 65, 68, 72, 69, 76, 73, 72, 72, 74, 84, 44, 54, 71, 81, 51, 53, 70, 75, 88, 71, 47, 63, 112, 79, 41, 67, 68, 108, 75, 44, 58, 93, 70, 90, 70, 77, 58, 61, 58, 66, 58, 55, 58, 56, 66, 50, 49, 41, 63, 99, 112, 53, 92, 49, 57, 53, 63, 45, 62, 77, 72, 48, 56, 55, 65, 30, 75, 89, 68, 52, 56, 54, 66, 52, 53, 55, 63, 70, 82, 51, 64, 62, 72, 90, 49, 55, 75, 90, 34, 38, 54, 67, 47, 55, 60, 37, 63, 49, 102, 59, 44, 92, 67, 49, 76, 42, 121, 65, 58, 71, 50, 51, 52, 73, 75, 68, 58, 45, 63, 49, 107, 61, 42, 72, 83, 66, 64, 77, 61, 73, 44, 49, 73, 75, 56, 66, 72, 66, 73, 61, 74, 79, 74, 138, 118, 67, 91, 64, 68, 53, 79, 67, 69, 79, 62, 55, 75, 43, 73, 67, 120, 86, 43, 113, 87, 65, 52, 77, 76, 59, 64, 54, 54, 68, 55, 52, 59, 76, 63, 57, 59, 101, 73, 55, 80, 69, 53, 55, 51, 77, 87, 118, 71, 59, 54, 55, 53, 77, 45, 71, 41, 49, 92, 50, 51, 49, 62, 54, 63, 49, 50, 43, 62, 103, 114, 61, 49, 55, 58, 77, 69, 57, 56, 86, 64, 64, 77, 47, 61, 42, 75, 56, 60, 99, 53, 88, 68, 56, 107, 64, 38, 82, 79, 66, 59, 84, 74, 54, 58, 70, 60, 101, 109, 67, 89, 85, 53, 68, 59, 50, 55, 49, 70, 64, 66, 67, 73, 70, 60, 68, 66, 55, 83, 59, 63, 59, 65, 60, 54, 74, 55, 50, 68, 47, 49, 72, 58, 60, 72, 72, 74, 50, 75, 47, 62, 59, 56, 61, 76, 104, 74, 50, 80, 44, 37, 58, 74, 67, 57, 59, 56, 78, 124, 68, 62, 76, 70, 62, 112, 71, 41, 67, 52, 61, 42, 64, 71, 68, 61, 74, 47, 70, 85, 87, 66, 61, 52, 63, 66, 63, 92, 65, 78, 63, 65, 82, 66, 80, 51, 55, 66, 43, 57, 53, 85, 52, 71, 59, 61, 75, 57, 50, 55, 72, 63, 51, 59, 87, 103, 54, 51, 44, 54, 70, 74, 89, 61, 44, 46, 51, 52, 97, 57, 59, 57, 102, 76, 59, 104, 98, 54, 49, 91, 80, 57, 55, 63, 39, 54, 68, 49, 83, 62, 35, 68, 77, 85, 55, 66, 60, 86, 60, 48, 56, 57, 57, 48, 76, 62, 51, 48, 69, 55, 83, 81, 74, 52, 57, 68, 46, 87, 58, 64, 54, 103, 60, 73, 68, 59, 62, 50, 59, 61, 53, 53, 72, 85, 39, 47, 77, 67, 81, 53, 78, 74, 79, 62, 75, 69, 75, 125, 62, 77, 68, 54, 72, 65, 66, 87, 81, 69, 64, 106, 73, 66, 78, 74, 67, 77, 73, 74, 69, 88, 56, 60, 65, 50, 42, 72, 82, 59, 84, 78, 64, 47, 51, 66, 60, 56, 71, 69, 53, 53, 51, 55, 94, 55, 94, 62, 57, 75, 53, 92, 57, 52, 66, 89, 56, 73, 85, 72, 62, 72, 61, 64, 44, 66, 61, 76, 72, 60, 71, 74, 70, 76, 141, 64, 38, 54, 76, 71, 67, 74, 86, 89, 59, 60, 59, 52, 66, 79, 65, 55, 73, 64, 72, 57, 69, 95, 57, 58, 71, 57, 69, 87, 89, 83, 60, 103, 60, 66, 68, 60, 54, 54, 70, 71, 60, 67, 69, 55, 68, 67, 91, 50, 74, 48, 42, 78, 48, 56, 102, 60, 74, 75, 56, 74, 56, 91, 66, 52, 62, 42, 64, 72, 41, 64, 87, 82, 69, 72, 57, 68, 55, 69, 50, 72, 66, 60, 68, 56, 53, 47, 53, 83, 68, 72, 66, 88, 83, 79, 62, 65, 64, 84, 64, 74, 69, 52, 57, 73, 79, 76, 63, 61, 56, 70, 70, 92, 49, 69, 39, 106, 52, 67, 64, 40, 76, 72, 60, 58, 40, 64, 65, 56, 47, 74, 67, 83, 76, 135, 87, 69, 56, 57, 55, 46, 65, 73, 75, 65, 100, 74, 74, 67, 47, 62, 61, 54, 55, 76, 59, 69, 90, 44, 59, 83, 50, 63, 67, 73, 67, 109, 55, 61, 63, 65, 75, 59, 64, 66, 53, 49, 72, 78, 82, 66, 68, 64, 128, 121, 59, 49, 114, 55, 78, 97, 61, 70, 92, 55, 60, 39, 79, 61, 80, 64, 64, 95, 65, 63, 68, 87, 70, 105, 42, 50, 50, 71, 50, 56, 43, 63, 77, 88, 62, 81, 71, 40, 64, 63, 69, 61, 68, 53, 89, 52, 52, 72, 62, 78, 58, 67, 44, 83, 60, 81, 52, 70, 61, 72, 63, 88, 44, 66, 61, 54, 40, 93, 72, 62, 45, 56, 67, 66, 72, 71, 62, 56, 59, 69, 90, 89, 76, 61, 57, 83, 60, 58, 71, 77, 68, 65, 77, 72, 63, 109, 53, 49, 30, 68, 81, 55, 67, 43, 56, 59, 58, 55, 72, 47, 60, 53, 62, 104, 65, 49, 81, 39, 70, 49, 45, 72, 54, 79, 75, 40, 40, 77, 64, 60, 71, 90, 74, 50, 60, 66, 57, 83, 60, 49, 55, 57, 70, 68, 57, 95, 56, 71, 50, 115, 75, 59, 63, 81, 114, 76, 52, 98, 94, 70, 83, 48, 51, 78, 78, 60, 83, 93, 54, 83, 61, 55, 79, 61, 40, 45, 60, 54, 51, 58, 52, 70, 57, 67, 64, 58, 65, 61, 71, 59, 50, 78, 75, 72, 60, 45, 40, 53, 68, 56, 77, 61, 71, 58, 45, 70, 54, 52, 39, 55, 81, 65, 63, 59, 92, 63, 81, 63, 46, 53, 73, 71, 45, 77, 96, 66, 77, 59, 83, 71, 66, 56, 51, 109, 60, 55, 59, 64, 77, 71, 67, 54, 49, 81, 56, 59, 60, 56, 78, 65, 58, 62, 50, 64, 47, 60, 50, 61, 54, 47, 57, 65, 60, 60, 64, 81, 58, 58, 57, 65, 65, 69, 75, 91, 92, 59, 66, 90, 83, 65, 46, 73, 61, 71, 72, 39, 62, 51, 72, 52, 56, 65, 52, 49, 50, 68, 109, 50, 82, 67, 83, 68, 99, 62, 60, 61, 70, 105, 84, 100, 57, 83, 40, 67, 69, 82, 64, 67, 76, 48, 65, 52, 73, 62, 107, 69, 75, 66, 94, 88, 60, 91, 85, 43, 88, 80, 56, 40, 56, 52, 62, 53, 74, 56, 67, 73, 59, 71, 83, 62, 63, 47, 67, 83, 103, 124, 65, 67, 95, 79, 83, 75, 96, 70, 81, 76, 82, 64, 71, 57, 62, 79, 53, 47, 60, 83, 89, 53, 75, 58, 60, 67, 54, 73, 53, 67, 58, 57, 70, 56, 69, 65, 87, 57, 99, 54, 89, 40, 48, 60, 90, 94, 72, 37, 74, 71, 70, 77, 59, 71, 73, 92, 75, 76, 102, 72, 40, 47, 87, 51, 61, 65, 63, 58, 51, 60, 78, 67, 72, 57, 48, 77, 55, 52, 88, 83, 62, 70, 76, 76, 38, 88, 53, 82, 114, 51, 66, 80, 73, 73, 48, 35, 95, 84, 43, 66, 65, 60, 78, 67, 60, 40, 73, 65, 57, 77, 57, 74, 77, 60, 66, 87, 77, 56, 119, 78, 67, 73, 60, 93, 81, 51, 60, 62, 68, 60, 61, 82, 56, 48, 61, 56, 67, 83, 83, 55, 59, 127, 73, 64, 83, 59, 73, 93, 76, 71, 62, 69, 55, 57, 51, 58, 70, 61, 70, 69, 69, 50, 63, 75, 61, 77, 71, 62, 61, 72, 57, 63, 70, 67, 60, 78, 54, 55, 82, 55, 61, 57, 64, 80, 71, 58, 60, 78, 66, 39, 124, 58, 54, 55, 58, 59, 57, 103, 62, 55, 44, 59, 48, 55, 85, 64, 64, 85, 64, 54, 74, 55, 64, 82, 56, 86, 41, 62, 69, 64, 64, 60, 56, 58, 53, 85, 76, 64, 65, 63, 82, 64, 66, 63, 66, 59, 71, 97, 57, 81, 86, 59, 63, 56, 57, 54, 48, 94, 88, 76, 91, 57, 67, 71, 69, 52, 58, 85, 50, 54, 57, 62, 56, 61, 51, 61, 66, 77, 78, 75, 44, 60, 56, 43, 55, 62, 65, 84, 57, 56, 79, 77, 41, 53, 50, 70, 78, 72, 54, 79, 66, 53, 84, 63, 71, 86, 60, 53, 57, 84, 74, 50, 88, 76, 53, 76, 47, 70, 96, 63, 83, 44, 77, 50, 62, 79, 95, 84, 83, 67, 48, 55, 78, 86, 74, 72, 62, 52, 44, 53, 64, 80, 103, 60, 55, 84, 50, 55, 63, 81, 73, 108, 42, 60, 74, 66, 67, 56, 64, 84, 59, 76, 62, 51, 46, 57, 66, 57, 42, 63, 98, 83, 56, 48, 53, 51, 55, 72, 51, 62, 68, 70, 58, 60, 58, 71, 70, 64, 49, 68, 70, 71, 54, 72, 38, 59, 79, 31, 74, 48, 72, 62, 39, 56, 84, 64, 94, 85, 93, 58, 81, 69, 54, 45, 64, 51, 92, 47, 59, 77, 87, 71, 72, 62, 91, 91, 62, 64, 76, 25, 84, 119, 96, 61, 60, 76, 75, 61, 58, 54, 68, 53, 63, 66, 46, 64, 46, 64, 44, 75, 45, 52, 37, 81, 70, 50, 68, 109, 48, 62, 48, 69, 85, 67, 48, 47, 47, 60, 59, 61, 68, 68, 46, 65, 57, 77, 36, 82, 48, 55, 78, 70, 76, 57, 46, 50, 61, 71, 62, 70, 69, 92, 90, 51, 58, 65, 59, 106, 98, 71, 61, 66, 46, 42, 49, 55, 64, 64, 73, 69, 55, 102, 90, 69, 61, 59, 45, 45, 79, 128, 64, 65, 44, 77, 54, 64, 69, 77, 52, 91, 51, 72, 87, 60, 94, 75, 87, 74, 51, 62, 46, 76, 81, 89, 62, 51, 94, 52, 67, 67, 53, 78, 72, 66, 54, 50, 103, 65, 61, 79, 61, 58, 65, 37, 71, 58, 71, 35, 63, 74, 84, 73, 34, 68, 69, 87, 56, 54, 66, 55, 65, 68, 58, 63, 66, 82, 60, 48, 71, 51, 57, 80, 60, 64, 59, 84, 86, 66, 48, 78, 35, 89, 41, 70, 69, 68, 42, 43, 96, 92, 74, 65, 86, 70, 53, 67, 87, 95, 65, 50, 56, 74, 53, 80, 74, 53, 106, 67, 64, 55, 61, 57, 61, 57, 74, 43, 51, 72, 101, 77, 80, 71, 57, 61, 67, 48, 66, 67, 68, 96, 53, 74, 67, 91, 61, 58, 38, 79, 49, 70, 68, 54, 45, 57, 86, 52, 46, 83, 49, 66, 46, 71, 58, 60, 62, 57, 67, 56, 82, 74, 70, 49, 69, 60, 46, 57, 55, 51, 48, 67, 59, 59, 95, 59, 41, 93, 73, 92, 59, 78, 52, 72, 68, 109, 69, 102, 94, 69, 73, 82, 91, 59, 62, 79, 78, 60, 63, 51, 72, 71, 75, 71, 87, 83, 65, 64, 60, 57, 70, 68, 66, 69, 90, 56, 69, 53, 30, 59, 44, 55, 67, 91, 68, 62, 89, 122, 68, 58, 85, 73, 77, 55, 73, 55, 75, 78, 51, 64, 99, 34, 67, 73, 60, 53, 46, 64, 59, 60, 72, 62, 83, 51, 34, 61, 112, 61, 63, 71, 57, 64, 92, 59, 51, 67, 52, 80, 61, 56, 77, 58, 116, 50, 70, 64, 56, 42, 68, 65, 62, 49, 62, 56, 50, 69, 90, 97, 110, 67, 79, 75, 120, 76, 65, 71, 62, 78, 64, 64, 70, 72, 61, 52, 56, 37, 78, 69, 84, 88, 61, 57, 71, 77, 70, 63, 66, 61, 29, 46, 82, 77, 78, 53, 58, 76, 70, 59, 66, 81, 65, 52, 63, 68, 51, 53, 48, 48, 54, 60, 96, 99, 64, 55, 76, 45, 44, 45, 61, 74, 64, 46, 65, 86, 93, 60, 40, 57, 80, 56, 54, 88, 56, 73, 88, 37, 56, 70, 67, 93, 86, 87, 45, 82, 60, 56, 75, 70, 52, 44, 60, 52, 62, 68, 68, 75, 98, 70, 60, 68, 66, 55, 119, 127, 49, 73, 65, 57, 53, 41, 83, 60, 79, 72, 74, 50, 81, 37, 39, 51, 93, 76, 46, 76, 72, 91, 57, 72, 88, 98, 55, 96, 53, 55, 60, 68, 57, 55, 33, 58, 65, 46, 72, 80, 67, 80, 63, 92, 41, 64, 66, 73, 51, 53, 61, 50, 85, 90, 64, 27, 53, 51, 76, 74, 53, 100, 65, 56, 57, 61, 59, 80, 89, 60, 52, 56, 69, 38, 83, 75, 59, 105, 70, 53, 78, 64, 73, 59, 59, 59, 45, 75, 67, 72, 60, 41, 51, 66, 51, 77, 58, 81, 45, 61, 63, 71, 70, 52, 64, 46, 65, 67, 67, 53, 65, 38, 68, 80, 61, 67, 132, 58, 53, 64, 66, 62, 71, 119, 72, 89, 56, 70, 55, 70, 62, 52, 60, 66, 43, 55, 57, 58, 74, 85, 49, 57, 64, 70, 67, 52, 65, 64, 56, 70, 78, 73, 79, 56, 49, 67, 104, 80, 75, 67, 63, 55, 58, 68, 65, 68, 70, 66, 47, 74, 57, 67, 69, 73, 61, 48, 48, 52, 61, 64, 71, 67, 63, 75, 80, 58, 100, 57, 62, 51, 49, 69, 71, 69, 63, 57, 70, 71, 52, 63, 98, 85, 74, 88, 63, 49, 73, 82, 79, 50, 51, 66, 65, 75, 72, 64, 83, 74, 55, 40, 64, 62, 58, 57, 74, 89, 57, 67, 50, 59, 55, 65, 59, 63, 58, 72, 60, 52, 57, 96, 82, 80, 80, 68, 66, 65, 73, 52, 64, 68, 48, 60, 61, 62, 63, 77, 48, 78, 84, 53, 52, 57, 62, 50, 45, 52, 58, 57, 64, 81, 65, 53, 63, 65, 57, 58, 60, 68, 58, 62, 56, 64, 58, 66, 63, 67, 70, 57, 65, 63, 92, 62, 68, 90, 65, 59, 64, 82, 57, 99, 47, 96, 58, 72, 64, 65, 73, 59, 72, 73, 57, 64, 65, 60, 60, 70, 54, 67, 60, 56, 97, 62, 57, 90, 57, 69, 58, 60, 59, 81, 64, 55, 47, 75, 56, 68, 93, 67, 53, 64, 87, 79, 50, 75, 69, 72, 58, 39, 80, 56, 49, 80, 84, 72, 54, 73, 90, 44, 67, 66, 66, 91, 70, 60, 54, 68, 67, 78, 76, 72, 53, 50, 92, 60, 55, 90, 51, 66, 67, 72, 60, 69, 64, 66, 61, 76, 76, 59, 59, 70, 58, 54, 57, 67, 86, 59, 61, 67, 54, 64, 70, 63, 77, 67, 49, 61, 69, 60, 66, 74, 65, 78, 78, 53, 119, 65, 70, 69, 57, 54, 70, 56, 67, 60, 54, 72, 64, 62, 58, 67, 78, 71, 72, 59, 68, 55, 52, 49, 54, 62, 58, 71, 88, 62, 64, 57, 53, 69, 71, 53, 68, 49, 79, 86, 40, 40, 59, 50, 60, 87, 63, 49, 46, 65, 69, 64, 88, 98, 45, 84, 86, 66, 62, 51, 73, 55, 83, 55, 46, 68, 66, 55, 54, 77, 71, 58, 63, 67, 116, 73, 55, 64, 52, 61, 61, 66, 66, 61, 60, 82, 62, 63, 42, 62, 90, 67, 47, 59, 56, 78, 65, 78, 62, 60, 77, 56, 58, 57, 90, 62, 57, 62, 50, 59, 56, 76, 81, 62, 93, 67, 53, 67, 60, 51, 62, 76, 72, 76, 65, 73, 96, 82, 71, 61, 80, 92, 55, 74, 74, 64, 66, 61, 75, 73, 82, 84, 59, 72, 55, 63, 74, 57, 51, 64, 67, 64, 104, 72, 84, 71, 64, 69, 50, 57, 65, 61, 64, 66, 63, 63, 61, 60, 62, 69, 55, 55, 65, 63, 68, 67, 56, 83, 76, 64, 62, 61, 75, 103, 65, 55, 96, 61, 54, 76, 66, 57, 92, 70, 62, 47, 51, 107, 53, 73, 60, 62, 59, 64, 60, 72, 78, 69, 67, 52, 58, 62, 65, 129, 66, 91, 84, 54, 65, 61, 93, 79, 69, 68, 80, 65, 68, 49, 55, 71, 66, 58, 60, 59, 55, 63, 58, 64, 85, 76, 77, 61, 65, 63, 52, 67, 70, 62, 116, 88, 63, 47, 61, 47, 65, 67, 74, 36, 70, 75, 53, 71, 99, 63, 67, 47, 53, 44, 48, 52, 46, 37, 52, 54, 55, 68, 61, 47, 53, 54, 73, 68, 64, 65, 82, 97, 68, 78, 45, 62, 107, 93, 108, 72, 77, 79, 57, 59, 54, 82, 47, 48, 53, 59, 53, 57, 54, 75, 55, 80, 82, 62, 71, 62, 97, 70, 116, 79, 58, 82, 93, 67, 76, 87, 61, 74, 50, 69, 70, 64, 66, 71, 123, 63, 76, 61, 47, 55, 64, 68, 69, 17, 66, 93, 73, 60, 81, 57, 66, 56, 70, 85, 59, 59, 65, 66, 64, 63, 55, 68, 50, 54, 70, 52, 91, 56, 48, 58, 72, 62, 117, 58, 65, 74, 68, 66, 60, 63, 53, 118, 73, 56, 90, 62, 63, 65, 86, 57, 67, 74, 55, 63, 72, 51, 73, 58, 64, 65, 65, 62, 40, 72, 63, 56, 61, 65, 73, 52, 85, 50, 67, 67, 49, 59, 52, 76, 55, 63, 60, 68, 51, 74, 77, 44, 56, 73, 52, 67, 47, 72, 62, 60, 65, 63, 79, 83, 89, 65, 66, 52, 70, 60, 59, 61, 45, 56, 83, 58, 62, 43, 64, 71, 65, 69, 68, 77, 66, 94, 69, 49, 67, 88, 73, 68, 84, 74, 57, 65, 56, 63, 67, 66, 67, 61, 60, 74, 124, 91, 62, 58, 68, 61, 80, 58, 76, 66, 46, 71, 54, 49, 94, 59, 52, 114, 63, 76, 61, 66, 62, 53, 67, 63, 72, 62, 62, 45, 81, 66, 55, 76, 75, 48, 53, 71, 87, 60, 59, 73, 68, 41, 70, 66, 75, 65, 73, 60, 60, 73, 60, 60, 55, 55, 88, 56, 66, 69, 56, 65, 63, 45, 89, 67, 72, 74, 70, 58, 66, 55, 91, 64, 60, 46, 57, 63, 51, 52, 58, 64, 71, 66, 69, 79, 89, 59, 61, 58, 57, 65, 64, 74, 51, 52, 81, 60, 58, 64, 64, 42, 117, 59, 52, 57, 72, 72, 68, 56, 71, 49, 86, 65, 57, 79, 71, 69, 59, 56, 49, 65, 61, 65, 66, 62, 79, 62, 60, 58, 65, 62, 58, 61, 57, 52, 58, 70, 71, 51, 53, 69, 50, 71, 75, 75, 70, 79, 67, 74, 55, 69, 79, 75, 49, 68, 64, 85, 77, 51, 47, 61, 65, 61, 80, 71, 100, 60, 63, 76, 61, 60, 64, 72, 44, 66, 74, 53, 65, 51, 66, 63, 71, 69, 67, 65, 73, 62, 73, 62, 56, 48, 80, 63, 68, 73, 67, 68, 59, 61, 58, 65, 64, 72, 55, 65, 68, 63, 83, 87, 56, 57, 64, 57, 61, 54, 74, 66, 64, 55, 53, 63, 66, 74, 79, 76, 65, 61, 70, 63, 76, 72, 63, 118, 55, 52, 64, 78, 53, 57, 62, 79, 61, 76, 55, 81, 53, 58, 63, 92, 100, 61, 51, 48, 63, 64, 66, 70, 50, 51, 94, 86, 61, 69, 47, 66, 77, 57, 72, 50, 54, 46, 41, 60, 65, 46, 75, 65, 69, 68, 62, 83, 64, 80, 69, 62, 69, 64, 63, 75, 86, 53, 70, 66, 65, 51, 74, 93, 54, 56, 110, 56, 83, 85, 75, 82, 48, 53, 59, 57, 71, 75, 58, 81, 55, 71, 61, 75, 93, 50, 56, 60, 75, 97, 47, 68, 81, 65, 45, 67, 45, 57, 61, 55, 77, 40, 58, 68, 59, 80, 68, 59, 62, 41, 65, 49, 51, 47, 46, 63, 77, 53, 55, 73, 67, 56, 50, 68, 45, 76, 64, 70, 41, 45, 68, 52, 39, 70, 58, 66, 51, 73, 62, 88, 53, 61, 36, 63, 77, 74, 74, 61, 66, 65, 64, 65, 64, 74, 61, 58, 52, 57, 80, 62, 50, 89, 69, 65, 80, 94, 141, 75, 89, 62, 67, 53, 59, 48, 63, 48, 48, 56, 68, 54, 65, 52, 77, 63, 52, 97, 91, 73, 68, 71, 54, 69, 63, 51, 68, 67, 69, 76, 99, 44, 71, 112, 126, 68, 111, 53, 65, 62, 51, 50, 58, 47, 54, 73, 76, 62, 57, 82, 55, 74, 61, 55, 56, 96, 54, 54, 52, 41, 103, 84, 88, 65, 78, 52, 47, 76, 74, 41, 43, 59, 62, 56, 59, 77, 63, 114, 71, 48, 55, 65, 86, 36, 76, 51, 78, 60, 107, 52, 50, 68, 55, 98, 50, 66, 72, 90, 109, 103, 52, 98, 55, 75, 67, 55, 71, 69, 86, 87, 71, 82, 42, 71, 74, 67, 103, 60, 51, 84, 52, 67, 42, 58, 59, 67, 80, 93, 75, 110, 52, 65, 60, 80, 68, 78, 54, 87, 44, 74, 71, 53, 49, 69, 47, 61, 76, 59, 84, 69, 55, 81, 64, 78, 58, 56, 59, 60, 95, 84, 55, 64, 73, 68, 60, 45, 75, 80, 43, 44, 68, 54, 73, 89, 72, 56, 45, 49, 55, 76, 61, 50, 68, 96, 53, 115, 50, 71, 48, 48, 68, 61, 56, 61, 39, 88, 55, 73, 112, 53, 77, 53, 76, 106, 77, 53, 92, 79, 100, 75, 63, 57, 60, 47, 56, 72, 38, 71, 62, 60, 64, 69, 79, 65, 49, 66, 75, 60, 87, 69, 54, 39, 55, 39, 59, 56, 57, 47, 66, 63, 90, 63, 66, 79, 76, 75, 86, 56, 47, 51, 83, 50, 92, 57, 63, 60, 45, 72, 52, 46, 74, 60, 72, 69, 97, 75, 53, 75, 74, 59, 65, 49, 80, 73, 74, 57, 68, 51, 61, 71, 65, 54, 49, 86, 68, 90, 64, 85, 62, 79, 56, 67, 94, 63, 101, 57, 63, 48, 54, 86, 56, 63, 63, 72, 114, 85, 67, 64, 72, 61, 78, 78, 52, 87, 108, 121, 56, 64, 70, 67, 50, 62, 90, 51, 51, 58, 111, 66, 50, 78, 62, 71, 38, 48, 97, 84, 88, 75, 54, 75, 62, 52, 63, 56, 56, 56, 79, 73, 73, 57, 63, 89, 70, 64, 73, 62, 46, 43, 61, 54, 66, 85, 82, 71, 64, 56, 86, 68, 66, 69, 52, 41, 74, 32, 33, 49, 68, 60, 63, 80, 58, 56, 80, 67, 83, 62, 53, 61, 51, 59, 60, 63, 87, 67, 56, 63, 64, 61, 54, 61, 67, 67, 57, 68, 44, 51, 70, 65, 39, 55, 56, 76, 90, 62, 76, 59, 52, 66, 35, 54, 84, 54, 74, 66, 62, 60, 59, 96, 63, 70, 44, 74, 68, 89, 82, 65, 80, 79, 41, 39, 61, 55, 54, 86, 61, 56, 67, 58, 64, 59, 74, 79, 50, 45, 55, 78, 61, 73, 88, 85, 105, 62, 64, 53, 88, 78, 65, 86, 61, 61, 93, 57, 48, 50, 69, 53, 72, 114, 63, 55, 60, 55, 50, 97, 60, 64, 49, 65, 54, 50, 35, 51, 49, 74, 88, 46, 75, 48, 91, 67, 53, 42, 55, 59, 35, 52, 55, 86, 65, 65, 70, 65, 84, 58, 56, 65, 79, 50, 68, 65, 88, 57, 84, 76, 66, 79, 100, 61, 50, 70, 58, 89, 64, 73, 82, 61, 60, 74, 68, 67, 77, 67, 47, 50, 72, 63, 72, 92, 67, 72, 50, 76, 97, 74, 79, 73, 56, 58, 56, 46, 55, 83, 54, 57, 59, 68, 78, 62, 49, 71, 58, 65, 79, 61, 71, 53, 77, 69, 57, 62, 86, 61, 53, 60, 75, 75, 68, 73, 49, 60, 70, 59, 64, 76, 75, 71, 58, 85, 63, 60, 65, 96, 82, 71, 85, 61, 53, 42, 57, 88, 45, 54, 81, 56, 59, 75, 64, 59, 53, 57, 95, 72, 76, 81, 55, 71, 69, 37, 71, 68, 43, 54, 67, 46, 53, 44, 75, 61, 59, 48, 61, 51, 117, 84, 87, 60, 61, 73, 80, 53, 51, 69, 67, 68, 59, 102, 62, 55, 68, 83, 58, 46, 58, 68, 75, 44, 98, 56, 68, 83, 72, 49, 72, 56, 71, 110, 56, 50, 100, 49, 74, 73, 47, 74, 67, 80, 48, 57, 69, 92, 60, 54, 71, 69, 69, 55, 54, 46, 81, 70, 62, 76, 63, 85, 50, 54, 74, 91, 67, 61, 46, 91, 78, 56, 39, 41, 91, 88, 77, 64, 40, 101, 54, 76, 59, 50, 52, 71, 76, 40, 71, 59, 110, 72, 65, 75, 69, 77, 166, 63, 49, 56, 43, 59, 60, 79, 50, 58, 71, 57, 59, 68, 89, 89, 61, 50, 65, 65, 72, 57, 53, 59, 73, 60, 90, 64, 85, 52, 72, 67, 50, 71, 97, 47, 53, 64, 61, 50, 53, 107, 47, 76, 102, 96, 56, 63, 69, 50, 70, 57, 73, 54, 65, 69, 51, 61, 86, 45, 58, 62, 71, 53, 77, 58, 91, 78, 64, 44, 63, 70, 34, 62, 54, 69, 57, 51, 54, 71, 58, 50, 85, 58, 57, 47, 71, 62, 68, 50, 83, 64, 76, 55, 27, 57, 80, 65, 74, 69, 56, 68, 80, 80, 63, 66, 70, 66, 70, 64, 82, 55, 68, 84, 66, 82, 66, 78, 88, 66, 58, 78, 70, 60, 93, 41, 70, 57, 73, 61, 61, 75, 67, 78, 60, 72, 89, 60, 72, 55, 65, 82, 61, 88, 83, 67, 69, 91, 67, 45, 76, 66, 57, 85, 63, 56, 100, 66, 71, 49, 66, 41, 75, 52, 56, 65, 48, 69, 65, 43, 51, 69, 61, 99, 76, 63, 82, 67, 86, 84, 83, 59, 70, 84, 64, 57, 60, 42, 48, 57, 60, 63, 77, 63, 65, 62, 71, 78, 61, 93, 81, 71, 57, 71, 75, 110, 54, 152, 82, 72, 61, 85, 79, 85, 53, 60, 61, 70, 75, 42, 76, 89, 58, 52, 74, 63, 84, 77, 63, 67, 76, 56, 70, 59, 76, 64, 44, 101, 60, 72, 77, 74, 52, 62, 87, 66, 62, 77, 106, 67, 76, 54, 49, 65, 49, 81, 80, 53, 61, 58, 75, 48, 80, 79, 52, 56, 67, 47, 50, 58, 88, 62, 75, 55, 56, 81, 53, 83, 67, 60, 58, 51, 60, 66, 63, 86, 53, 58, 56, 48, 70, 66, 53, 50, 81, 41, 64, 44, 43, 89, 90, 51, 66, 71, 54, 56, 74, 53, 49, 84, 63, 83, 78, 83, 54, 46, 77, 73, 63, 55, 64, 55, 68, 69, 77, 60, 74, 69, 58, 65, 92, 55, 75, 64, 84, 77, 68, 57, 41, 66, 53, 62, 53, 55, 62, 66, 56, 65, 65, 58, 71, 63, 76, 79, 81, 69, 84, 75, 81, 59, 60, 51, 62, 69, 57, 59, 54, 61, 56, 53, 43, 58, 63, 57, 75, 55, 75, 57, 113, 61, 53, 71, 68, 56, 69, 79, 65, 61, 51, 69, 81, 61, 69, 69, 65, 78, 58, 91, 44, 68, 60, 76, 101, 86, 58, 60, 56, 57, 64, 69, 78, 60, 83, 66, 64, 63, 74, 72, 62, 77, 65, 79, 62, 65, 82, 55, 68, 51, 58, 57, 71, 80, 68, 50, 54, 67, 83, 60, 83, 62, 57, 49, 69, 56, 76, 101, 89, 57, 70, 76, 52, 106, 63, 65, 50, 60, 69, 62, 68, 40, 49, 42, 54, 51, 57, 56, 59, 69, 64, 61, 53, 79, 63, 56, 80, 54, 53, 63, 67, 58, 64, 68, 58, 72, 74, 72, 49, 64, 45, 65, 61, 66, 82, 61, 85, 57, 62, 75, 55, 61, 77, 65, 60, 62, 152, 58, 87, 86, 65, 71, 72, 84, 100, 71, 83, 56, 98, 61, 59, 72, 75, 60, 76, 71, 74, 64, 64, 68, 68, 71, 77, 70, 66, 60, 48, 64, 91, 67, 69, 55, 73, 70, 51, 83, 59, 75, 55, 88, 76, 66, 125, 86, 46, 57, 70, 71, 63, 75, 70, 62, 68, 69, 59, 67, 67, 62, 70, 59, 93, 62, 68, 74, 70, 52, 56, 56, 67, 60, 77, 75, 79, 61, 85, 60, 96, 63, 63, 76, 47, 62, 65, 74, 81, 55, 58, 69, 63, 64, 51, 52, 61, 61, 75, 54, 62, 93, 58, 52, 78, 68, 62, 53, 56, 53, 56, 57, 67, 84, 67, 77, 90, 64, 61, 34, 67, 74, 72, 63, 91, 51, 71, 55, 61, 56, 81, 61, 68, 63, 31, 61, 72, 54, 38, 59, 53, 41, 75, 64, 64, 75, 58, 69, 53, 64, 55, 64, 58, 48, 58, 68, 58, 74, 75, 87, 71, 58, 65, 61, 74, 67, 70, 74, 51, 78, 52, 50, 69, 59, 94, 75, 64, 44, 55, 57, 78, 67, 77, 52, 74, 40, 61, 60, 70, 59, 69, 77, 55, 99, 69, 58, 55, 68, 88, 59, 75, 62, 61, 53, 45, 81, 54, 51, 50, 70, 54, 70, 85, 68, 61, 60, 63, 59, 64, 70, 75, 68, 42, 57, 78, 65, 60, 68, 71, 46, 55, 62, 87, 72, 52, 91, 56, 56, 58, 49, 71, 65, 70, 71, 53, 64, 83, 74, 59, 94, 72, 74, 69, 69, 61, 52, 52, 52, 65, 64, 73, 72, 53, 76, 66, 96, 100, 53, 66, 53, 62, 68, 59, 57, 70, 59, 99, 74, 57, 48, 89, 57, 45, 60, 57, 89, 69, 77, 50, 62, 75, 62, 71, 63, 62, 67, 50, 64, 59, 46, 73, 64, 86, 58, 76, 53, 66, 57, 113, 56, 81, 62, 71, 81, 56, 67, 93, 75, 56, 56, 68, 54, 50, 60, 59, 71, 71, 74, 64, 64, 65, 54, 41, 63, 61, 68, 52, 78, 62, 59, 63, 48, 83, 76, 58, 83, 51, 44, 73, 59, 54, 62, 58, 88, 56, 74, 54, 85, 71, 49, 87, 57, 57, 85, 54, 76, 59, 56, 66, 83, 81, 60, 51, 74, 61, 61, 88, 58, 51, 64, 55, 64, 55, 68, 77, 60, 82, 75, 69, 54, 51, 51, 60, 64, 71, 50, 74, 67, 64, 63, 53, 48, 82, 85, 65, 83, 61, 57, 91, 65, 60, 52, 74, 50, 64, 61, 51, 60, 63, 61, 52, 64, 70, 70, 65, 59, 64, 119, 42, 68, 63, 68, 75, 62, 71, 57, 93, 83, 59, 77, 51, 67, 72, 66, 64, 53, 76, 85, 58, 63, 53, 61, 48, 75, 56, 65, 80, 72, 51, 67, 81, 117, 70, 90, 60, 53, 74, 67, 61, 65, 87, 48, 80, 65, 59, 45, 51, 49, 59, 63, 66, 51, 76, 85, 53, 57, 74, 55, 53, 66, 56, 93, 65, 54, 73, 51, 86, 67, 72, 89, 62, 69, 48, 63, 64, 70, 79, 65, 58, 69, 66, 62, 59, 60, 66, 79, 119, 73, 45, 76, 74, 70, 72, 57, 63, 69, 72, 58, 39, 54, 60, 57, 49, 63, 53, 77, 74, 76, 78, 41, 82, 63, 68, 77, 50, 76, 68, 81, 59, 76, 65, 74, 72, 56, 89, 45, 68, 52, 71, 53, 60, 62, 59, 58, 58, 58, 60, 47, 69, 61, 93, 56, 61, 79, 58, 60, 64, 67, 86, 74, 70, 66, 67, 72, 107, 84, 74, 48, 39, 73, 65, 66, 71, 59, 59, 53, 55, 49, 74, 46, 66, 76, 76, 62, 70, 49, 86, 61, 41, 49, 54, 84, 73, 68, 59, 77, 58, 61, 68, 56, 62, 83, 82, 58, 70, 72, 70, 57, 66, 74, 68, 65, 65, 49, 45, 59, 85, 57, 52, 64, 77, 66, 62, 88, 73, 86, 78, 53, 71, 62, 72, 62, 73, 62, 36, 63, 73, 59, 63, 57, 63, 62, 78, 62, 61, 50, 52, 68, 59, 82, 66, 78, 75, 76, 59, 98, 57, 56, 106, 90, 81, 71, 67, 87, 52, 74, 62, 51, 87, 68, 63, 55, 52, 69, 56, 61, 62, 73, 56, 56, 51, 36, 80, 68, 63, 77, 69, 82, 54, 59, 50, 59, 81, 64, 83, 63, 65, 71, 70, 61, 72, 71, 68, 70, 66, 75, 61, 65, 55, 78, 53, 55, 50, 61, 56, 56, 81, 49, 64, 72, 68, 52, 98, 68, 54, 58, 62, 71, 52, 136, 47, 52, 64, 74, 69, 90, 54, 105, 81, 67, 60, 56, 62, 70, 57, 54, 45, 32, 58, 73, 80, 52, 82, 56, 78, 113, 50, 56, 65, 47, 109, 62, 60, 64, 89, 48, 54, 59, 66, 62, 68, 70, 54, 45, 75, 75, 73, 75, 65, 56, 85, 57, 64, 50, 68, 65, 57, 66, 60, 62, 72, 62, 68, 51, 61, 58, 81, 73, 67, 58, 54, 71, 75, 60, 72, 72, 63, 61, 72, 111, 52, 60, 62, 55, 89, 55, 73, 40, 58, 71, 46, 67, 58, 83, 76, 99, 61, 59, 72, 49, 54, 56, 53, 118, 50, 83, 72, 65, 65, 70, 60, 51, 65, 56, 53, 54, 69, 54, 50, 63, 63, 63, 80, 54, 55, 66, 82, 81, 122, 56, 69, 54, 57, 68, 60, 81, 60, 53, 80, 74, 73, 52, 61, 82, 71, 67, 57, 61, 67, 55, 57, 70, 104, 80, 78, 75, 70, 57, 57, 67, 74, 55, 57, 53, 51, 79, 48, 47, 56, 65, 57, 61, 69, 70, 67, 76, 88, 55, 56, 55, 60, 69, 57, 45, 55, 77, 110, 63, 60, 56, 70, 59, 69, 51, 61, 73, 46, 74, 48, 58, 91, 67, 56, 66, 61, 74, 78, 68, 57, 62, 61, 78, 60, 52, 56, 60, 57, 72, 55, 63, 62, 59, 55, 64, 71, 69, 111, 52, 110, 53, 66, 50, 53, 81, 71, 76, 72, 116, 60, 69, 44, 61, 50, 79, 72, 66, 57, 53, 53, 76, 90, 76, 62, 65, 89, 66, 47, 68, 58, 53, 67, 67, 73, 61, 72, 69, 73, 111, 80, 66, 64, 59, 72, 68, 61, 94, 64, 83, 66, 65, 56, 53, 68, 62, 69, 54, 76, 53, 64, 82, 67, 60, 71, 74, 58, 76, 71, 69, 65, 69, 51, 62, 68, 58, 73, 70, 53, 60, 74, 69, 70, 66, 65, 60, 47, 56, 58, 75, 48, 66, 54, 65, 62, 75, 64, 59, 69, 58, 64, 77, 116, 69, 69, 65, 74, 53, 69, 78, 72, 53, 104, 131, 87, 68, 65, 76, 81, 68, 55, 45, 57, 56, 68, 67, 78, 67, 50, 86, 49, 53, 70, 70, 62, 66, 67, 56, 58, 58, 58, 48, 51, 69, 72, 71, 52, 59, 58, 48, 65, 110, 45, 65, 55, 82, 74, 65, 76, 62, 68, 73, 57, 49, 61, 73, 49, 91, 62, 56, 77, 60, 62, 57, 66, 95, 67, 53, 57, 53, 74, 54, 57, 69, 67, 71, 63, 69, 58, 57, 68, 69, 63, 73, 54, 69, 61, 58, 54, 78, 71, 61, 56, 69, 74, 56, 66, 42, 74, 57, 79, 47, 67, 82, 55, 63, 63, 63, 63, 118, 45, 50, 39, 60, 64, 72, 62, 76, 68, 78, 77, 86, 77, 63, 60, 53, 63, 52, 66, 52, 61, 59, 56, 61, 82, 57, 60, 61, 51, 42, 62, 58, 55, 62, 66, 51, 50, 77, 67, 69, 53, 61, 74, 46, 67, 87, 56, 65, 66, 114, 55, 59, 73, 88, 72, 73, 70, 61, 69, 68, 62, 74, 47, 73, 67, 56, 62, 67, 66, 66, 39, 66, 62, 54, 47, 71, 54, 61, 60, 87, 59, 66, 57, 53, 54, 59, 67, 73, 63, 61, 81, 73, 68, 62, 83, 68, 56, 90, 76, 55, 64, 71, 77, 54, 68, 60, 65, 65, 52, 53, 100, 63, 56, 60, 64, 79, 77, 64, 114, 64, 57, 48, 53, 79, 54, 48, 81, 56, 63, 77, 49, 51, 65, 98, 87, 62, 56, 48, 58, 58, 56, 71, 72, 59, 99, 55, 43, 79, 89, 90, 66, 76, 104, 74, 59, 78, 86, 91, 58, 69, 52, 60, 58, 55, 102, 55, 65, 61, 75, 69, 60, 54, 79, 93, 81, 90, 73, 75, 58, 57, 72, 65, 88, 53, 83, 74, 56, 81, 95, 63, 52, 64, 72, 56, 66, 70, 71, 50, 62, 58, 56, 73, 83, 58, 49, 55, 56, 57, 81, 63, 72, 61, 72, 79, 50, 55, 65, 60, 75, 69, 66, 63, 46, 55, 80, 51, 63, 63, 82, 61, 76, 86, 73, 57, 86, 59, 78, 61, 56, 55, 61, 58, 75, 66, 52, 57, 54, 81, 71, 55, 54, 60, 58, 53, 58, 59, 61, 47, 65, 61, 69, 74, 69, 92, 110, 77, 64, 58, 72, 69, 74, 66, 70, 49, 50, 64, 71, 59, 72, 66, 67, 66, 60, 50, 60, 70, 77, 45, 66, 63, 64, 68, 75, 58, 63, 62, 57, 67, 89, 77, 69, 63, 65, 60, 78, 115, 104, 71, 68, 63, 61, 65, 54, 46, 90, 67, 66, 64, 60, 63, 48, 65, 78, 58, 58, 59, 55, 82, 80, 52, 71, 80, 94, 60, 57, 81, 65, 73, 56, 60, 79, 58, 88, 83, 61, 66, 62, 70, 62, 72, 57, 60, 53, 64, 51, 66, 48, 57, 86, 67, 46, 64, 69, 57, 77, 104, 101, 61, 66, 68, 54, 71, 52, 49, 52, 74, 84, 71, 64, 56, 87, 57, 62, 77, 59, 56, 73, 71, 58, 53, 96, 87, 76, 66, 64, 78, 54, 55, 87, 73, 65, 64, 56, 58, 61, 60, 64, 66, 72, 46, 77, 70, 47, 46, 65, 56, 77, 69, 68, 73, 58, 70, 60, 61, 85, 79, 65, 88, 73, 82, 114, 68, 68, 64, 67, 65, 56, 64, 65, 70, 69, 70, 79, 60, 69, 58, 45, 62, 87, 69, 73, 60, 88, 41, 60, 65, 51, 56, 76, 75, 64, 65, 60, 52, 76, 80, 61, 116, 63, 55, 71, 79, 64, 58, 64, 65, 50, 63, 57, 76, 104, 57, 48, 71, 75, 73, 57, 68, 60, 51, 44, 57, 54, 66, 67, 54, 63, 61, 67, 74, 51, 58, 65, 68, 68, 65, 64, 87, 59, 80, 42, 62, 58, 82, 60, 63, 58, 62, 83, 86, 69, 68, 85, 85, 65, 70, 66, 72, 31, 52, 63, 86, 90, 89, 53, 94, 64, 74, 44, 69, 42, 63, 53, 72, 62, 71, 70, 75, 52, 60, 68, 64, 68, 54, 82, 72, 60, 63, 52, 62, 64, 65, 54, 64, 71, 68, 65, 101, 65, 64, 55, 59, 62, 67, 64, 81, 46, 82, 57, 62, 54, 73, 63, 66, 51, 61, 57, 80, 69, 53, 71, 78, 60, 62, 63, 79, 77, 67, 73, 54, 104, 41, 58, 92, 98, 50, 61, 56, 58, 87, 97, 57, 52, 63, 64, 56, 71, 79, 52, 72, 41, 53, 56, 64, 61, 87, 62, 76, 80, 70, 70, 58, 63, 87, 54, 48, 59, 64, 110, 57, 62, 53, 62, 54, 62, 71, 60, 61, 78, 70, 63, 72, 74, 51, 64, 66, 54, 72, 50, 54, 67, 66, 68, 44, 59, 88, 58, 85, 118, 49, 61, 62, 63, 66, 50, 57, 53, 52, 78, 49, 69, 59, 62, 54, 72, 83, 60, 80, 128, 61, 56, 70, 62, 73, 53, 66, 61, 45, 65, 68, 64, 55, 51, 58, 49, 56, 66, 54, 62, 45, 64, 67, 129, 47, 91, 64, 60, 74, 62, 57, 68, 60, 50, 52, 107, 72, 66, 49, 69, 59, 50, 69, 91, 101, 41, 102, 99, 76, 57, 62, 69, 49, 72, 77, 82, 62, 66, 68, 123, 80, 55, 78, 69, 66, 60, 67, 61, 63, 58, 58, 63, 84, 61, 60, 88, 48, 59, 75, 156, 65, 46, 60, 65, 47, 70, 83, 67, 61, 102, 72, 81, 51, 123, 54, 68, 67, 66, 58, 57, 55, 63, 61, 56, 59, 65, 71, 66, 70, 74, 66, 70, 71, 76, 60, 58, 52, 60, 77, 70, 46, 64, 63, 62, 103, 69, 77, 71, 65, 52, 42, 67, 51, 35, 66, 56, 66, 49, 55, 66, 57, 55, 64, 80, 60, 51, 51, 79, 69, 78, 76, 57, 49, 66, 51, 65, 59, 61, 67, 61, 77, 87, 53, 65, 55, 68, 59, 54, 69, 58, 59, 58, 99, 58, 58, 65, 76, 68, 58, 60, 56, 57, 54, 68, 77, 55, 95, 55, 51, 71, 67, 57, 54, 69, 59, 83, 70, 48, 68, 88, 77, 59, 70, 51, 61, 67, 65, 60, 82, 56, 56, 88, 54, 52, 69, 56, 50, 77, 64, 84, 48, 70, 50, 68, 70, 56, 68, 56, 83, 90, 60, 97, 68, 83, 72, 111, 71, 53, 58, 59, 69, 69, 54, 84, 69, 57, 54, 43, 101, 65, 97, 97, 78, 58, 60, 62, 63, 64, 55, 51, 58, 82, 73, 61, 70, 71, 46, 56, 50, 45, 50, 78, 45, 68, 59, 48, 74, 66, 63, 67, 70, 45, 76, 61, 61, 55, 74, 53, 55, 81, 77, 79, 71, 69, 60, 78, 57, 64, 62, 78, 47, 72, 125, 74, 75, 71, 50, 62, 97, 49, 68, 63, 83, 75, 63, 56, 53, 84, 90, 71, 55, 79, 53, 68, 73, 73, 69, 74, 61, 74, 52, 63, 53, 61, 69, 49, 65, 66, 51, 46, 49, 71, 68, 50, 65, 68, 72, 52, 65, 66, 96, 69, 71, 71, 53, 106, 63, 61, 64, 54, 58, 64, 55, 52, 59, 57, 62, 52, 80, 68, 42, 49, 59, 65, 39, 74, 78, 68, 60, 56, 47, 89, 69, 87, 79, 69, 56, 52, 84, 76, 82, 49, 65, 102, 64, 55, 64, 108, 99, 68, 62, 48, 58, 76, 62, 96, 57, 79, 70, 56, 74, 80, 54, 83, 67, 69, 64, 69, 73, 65, 53, 100, 74, 71, 78, 109, 84, 54, 46, 81, 72, 70, 62, 59, 69, 59, 80, 74, 77, 68, 69, 52, 75, 67, 69, 59, 58, 82, 67, 48, 77, 49, 69, 69, 56, 65, 105, 61, 65, 69, 48, 85, 76, 77, 49, 54, 60, 67, 106, 68, 79, 45, 69, 65, 55, 57, 76, 82, 66, 100, 63, 69, 76, 63, 63, 58, 65, 53, 54, 60, 64, 64, 57, 115, 64, 68, 73, 51, 89, 57, 107, 92, 52, 46, 45, 51, 59, 62, 59, 81, 64, 68, 92, 64, 56, 69, 67, 64, 56, 58, 53, 62, 61, 63, 65, 63, 63, 89, 54, 65, 65, 54, 55, 65, 69, 60, 66, 63, 46, 64, 52, 75, 49, 51, 83, 76, 51, 62, 53, 69, 42, 68, 68, 48, 80, 70, 57, 105, 58, 58, 69, 53, 69, 56, 76, 71, 47, 69, 58, 77, 53, 68, 74, 41, 77, 64, 63, 63, 47, 65, 62, 63, 103, 105, 59, 57, 60, 80, 68, 73, 70, 52, 54, 112, 55, 72, 79, 61, 48, 77, 51, 71, 64, 66, 52, 48, 42, 72, 67, 68, 62, 65, 66, 59, 64, 52, 76, 80, 49, 51, 61, 66, 51, 56, 56, 52, 57, 55, 58, 53, 80, 71, 58, 57, 64, 73, 67, 50, 55, 46, 59, 69, 58, 63, 62, 56, 65, 87, 62, 72, 87, 73, 56, 70, 58, 63, 70, 66, 64, 55, 56, 68, 76, 113, 49, 88, 57, 49, 66, 48, 60, 59, 60, 68, 57, 61, 68, 54, 57, 68, 57, 70, 73, 48, 58, 61, 53, 53, 82, 59, 65, 58, 77, 66, 82, 113, 61, 66, 70, 51, 46, 54, 59, 69, 84, 74, 72, 83, 60, 89, 76, 54, 66, 59, 65, 57, 68, 61, 55, 57, 63, 62, 49, 80, 68, 63, 71, 69, 60, 62, 89, 56, 74, 61, 67, 73, 50, 58, 65, 52, 66, 65, 58, 51, 63, 56, 48, 61, 55, 61, 88, 62, 55, 81, 61, 83, 67, 82, 72, 66, 67, 60, 54, 86, 103, 69, 73, 78, 54, 61, 80, 58, 62, 54, 56, 52, 70, 86, 54, 63, 61, 74, 59, 66, 90, 100, 71, 63, 78, 51, 55, 53, 58, 59, 56, 64, 49, 73, 60, 82, 56, 93, 52, 53, 70, 54, 90, 88, 52, 68, 63, 75, 68, 120, 79, 75, 80, 74, 66, 69, 62, 73, 53, 64, 70, 61, 84, 62, 65, 61, 55, 73, 72, 60, 53, 84, 46, 50, 52, 54, 62, 66, 70, 61, 64, 69, 67, 83, 53, 64, 55, 73, 68, 53, 59, 59, 67, 63, 55, 60, 77, 46, 71, 41, 78, 75, 67, 70, 61, 65, 71, 72, 62, 55, 51, 75, 69, 84, 49, 67, 57, 83, 53, 67, 61, 61, 60, 72, 71, 54, 59, 72, 46, 33, 71, 76, 73, 70, 74, 53, 96, 58, 76, 60, 61, 65, 50, 62, 94, 60, 56, 73, 75, 55, 87, 77, 75, 59, 53, 68, 72, 62, 67, 87, 74, 71, 73, 54, 77, 58, 89, 60, 67, 45, 69, 67, 65, 56, 71, 70, 62, 73, 58, 87, 60, 79, 62, 63, 68, 64, 67, 56, 86, 57, 68, 79, 79, 50, 68, 60, 70, 55, 67, 56, 63, 49, 76, 62, 59, 64, 42, 64, 69, 89, 64, 78, 85, 59, 50, 76, 71, 64, 59, 75, 76, 81, 57, 54, 58, 59, 77, 71, 68, 62, 64, 58, 63, 96, 68, 57, 50, 70, 61, 61, 64, 70, 57, 60, 64, 69, 47, 62, 45, 71, 63, 64, 62, 69, 56, 68, 43, 60, 66, 47, 60, 69, 57, 53, 73, 68, 61, 58, 54, 107, 73, 116, 45, 87, 72, 60, 64, 58, 66, 67, 67, 57, 74, 61, 65, 65, 62, 57, 59, 109, 56, 68, 78, 64, 58, 72, 55, 63, 75, 60, 61, 81, 57, 59, 52, 73, 90, 54, 57, 41, 79, 72, 55, 68, 91, 76, 53, 61, 75, 80, 65, 76, 65, 84, 67, 68, 51, 59, 79, 72, 72, 78, 68, 75, 73, 67, 75, 53, 61, 85, 72, 70, 55, 55, 60, 68, 71, 63, 66, 72, 52, 67, 53, 52, 74, 50, 68, 72, 61, 78, 50, 58, 68, 78, 46, 106, 60, 45, 66, 64, 60, 71, 59, 54, 53, 73, 86, 78, 83, 57, 59, 70, 106, 57, 54, 64, 72, 70, 65, 52, 64, 52, 55, 61, 96, 75, 50, 70, 87, 56, 57, 60, 50, 82, 36, 58, 57, 69, 88, 60, 62, 58, 57, 57, 73, 65, 55, 55, 61, 78, 58, 58, 60, 64, 83, 74, 84, 85, 75, 87, 58, 57, 47, 57, 64, 66, 54, 63, 73, 56, 75, 53, 64, 49, 66, 72, 56, 73, 61, 73, 51, 63, 64, 54, 72, 56, 67, 48, 54, 63, 44, 48, 68, 58, 52, 75, 53, 55, 73, 68, 52, 60, 74, 71, 63, 47, 52, 82, 63, 51, 63, 65, 60, 56, 65, 59, 58, 66, 64, 55, 67, 68, 88, 65, 64, 71, 62, 56, 50, 80, 63, 64, 72, 69, 66, 61, 41, 72, 84, 47, 68, 81, 66, 57, 61, 59, 64, 55, 57, 79, 57, 56, 60, 63, 62, 43, 67, 63, 72, 71, 51, 51, 55, 62, 57, 70, 70, 58, 66, 60, 53, 66, 82, 68, 64, 81, 60, 69, 66, 80, 54, 80, 83, 53, 68, 65, 58, 69, 60, 53, 64, 69, 51, 70, 50, 62, 39, 58, 62, 68, 74, 66, 70, 93, 75, 52, 80, 63, 53, 58, 65, 70, 55, 69, 101, 72, 76, 67, 54, 62, 60, 61, 50, 77, 72, 66, 58, 53, 51, 47, 58, 45, 57, 75, 72, 72, 70, 58, 55, 61, 68, 77, 67, 59, 58, 61, 85, 56, 70, 74, 53, 74, 59, 63, 53, 86, 55, 130, 78, 58, 54, 72, 67, 76, 65, 69, 46, 63, 82, 71, 64, 60, 73, 59, 59, 109, 53, 61, 51, 59, 78, 65, 54, 65, 69, 53, 62, 71, 48, 54, 73, 64, 57, 68, 96, 87, 59, 61, 59, 61, 36, 59, 64, 55, 59, 64, 98, 59, 53, 62, 65, 80, 51, 62, 55, 63, 62, 77, 53, 88, 69, 58, 63, 98, 70, 68, 49, 81, 77, 49, 68, 71, 67, 64, 60, 55, 59, 63, 69, 66, 70, 71, 131, 62, 70, 72, 70, 63, 74, 74, 69, 62, 87, 60, 28, 66, 83, 58, 66, 65, 71, 68, 59, 72, 63, 86, 76, 81, 90, 65, 62, 53, 65, 41, 70, 63, 75, 61, 100, 58, 77, 63, 64, 69, 61, 82, 76, 65, 81, 70, 94, 45, 66, 74, 80, 55, 89, 57, 62, 78, 88, 69, 59, 42, 75, 67, 82, 49, 77, 82, 63, 50, 52, 71, 66, 48, 61, 85, 55, 70, 81, 67, 58, 59, 45, 65, 52, 62, 63, 57, 57, 45, 90, 61, 59, 66, 64, 51, 63, 71, 60, 75, 49, 78, 57, 70, 55, 78, 61, 65, 61, 58, 56, 59, 67, 107, 76, 69, 103, 89, 67, 80, 80, 68, 52, 59, 66, 88, 79, 67, 56, 66, 52, 56, 53, 70, 64, 89, 84, 123, 62, 70, 77, 62, 61, 55, 54, 68, 64, 71, 48, 68, 72, 75, 56, 50, 99, 105, 65, 56, 62, 91, 78, 69, 64, 74, 61, 75, 61, 62, 64, 50, 68, 44, 48, 54, 59, 55, 74, 55, 48, 75, 79, 72, 48, 50, 56, 93, 78, 44, 62, 74, 38, 56, 48, 77, 68, 59, 73, 62, 59, 92, 79, 73, 87, 80, 60, 65, 63, 80, 44, 58, 55, 61, 43, 52, 58, 89, 68, 44, 54, 48, 56, 70, 78, 73, 66, 68, 52, 73, 88, 65, 59, 60, 76, 75, 67, 86, 49, 63, 69, 58, 57, 94, 83, 66, 56, 62, 60, 62, 42, 76, 70, 50, 59, 61, 34, 72, 80, 79, 84, 60, 54, 46, 61, 69, 71, 60, 71, 98, 64, 55, 50, 73, 57, 87, 86, 53, 72, 55, 81, 62, 75, 103, 65, 55, 57, 56, 41, 53, 67, 88, 54, 74, 93, 71, 57, 76, 68, 107, 75, 42, 66, 66, 68, 54, 68, 73, 63, 62, 54, 94, 70, 93, 78, 63, 85, 51, 68, 53, 83, 60, 64, 87, 51, 76, 75, 45, 74, 76, 61, 82, 55, 32, 67, 81, 52, 39, 67, 70, 74, 74, 59, 59, 91, 60, 62, 63, 67, 37, 71, 73, 52, 53, 70, 78, 75, 62, 69, 79, 54, 51, 63, 67, 59, 73, 75, 84, 89, 52, 80, 93, 60, 94, 61, 60, 58, 73, 62, 55, 76, 44, 77, 71, 69, 80, 53, 60, 72, 61, 67, 72, 83, 85, 68, 71, 67, 77, 72, 63, 63, 59, 73, 52, 62, 58, 74, 112, 76, 69, 54, 62, 95, 88, 50, 60, 58, 57, 86, 57, 84, 79, 89, 74, 68, 85, 63, 66, 76, 80, 60, 52, 84, 65, 76, 51, 70, 58, 73, 64, 55, 74, 71, 65, 51, 68, 63, 58, 66, 48, 47, 45, 55, 41, 50, 66, 68, 65, 50, 74, 64, 126, 82, 54, 53, 52, 70, 61, 70, 58, 53, 62, 77, 68, 60, 70, 58, 50, 60, 70, 75, 61, 81, 67, 60, 79, 43, 53, 82, 89, 63, 95, 56, 53, 84, 46, 61, 66, 67, 50, 64, 70, 94, 57, 47, 58, 55, 53, 61, 53, 71, 45, 57, 65, 57, 52, 66, 46, 70, 77, 45, 62, 53, 96, 70, 65, 64, 71, 51, 52, 87, 62, 64, 72, 56, 52, 63, 73, 59, 54, 68, 64, 58, 26, 72, 49, 114, 68, 41, 74, 54, 101, 65, 66, 86, 51, 105, 60, 60, 58, 104, 56, 73, 74, 65, 66, 69, 82, 56, 69, 57, 55, 110, 70, 83, 55, 67, 56, 68, 80, 95, 57, 105, 74, 42, 66, 57, 67, 70, 72, 79, 89, 71, 83, 54, 50, 87, 63, 71, 64, 50, 84, 69, 74, 59, 57, 75, 73, 75, 44, 54, 83, 66, 66, 53, 61, 102, 71, 76, 63, 64, 77, 46, 51, 45, 58, 86, 58, 46, 65, 67, 79, 61, 66, 75, 82, 64, 51, 55, 65, 62, 78, 59, 75, 71, 89, 68, 86, 49, 84, 66, 61, 75, 59, 63, 62, 82, 86, 69, 52, 119, 62, 84, 44, 60, 44, 66, 63, 65, 82, 72, 52, 62, 76, 67, 53, 57, 69, 89, 44, 56, 49, 58, 56, 73, 54, 59, 59, 59, 75, 51, 84, 43, 57, 55, 73, 73, 51, 66, 77, 65, 76, 44, 45, 81, 59, 68, 97, 70, 59, 81, 57, 70, 68, 77, 72, 71, 71, 84, 88, 47, 62, 63, 61, 52, 78, 71, 54, 86, 68, 49, 59, 63, 61, 52, 59, 58, 37, 59, 81, 50, 91, 72, 68, 70, 55, 73, 73, 55, 46, 73, 51, 71, 86, 106, 60, 46, 49, 68, 61, 105, 64, 96, 62, 69, 62, 65, 86, 64, 51, 66, 63, 63, 53, 61, 98, 107, 68, 59, 87, 58, 65, 43, 66, 96, 57, 78, 68, 51, 48, 65, 62, 74, 62, 68, 84, 59, 73, 67, 78, 114, 45, 60, 75, 62, 102, 64, 71, 71, 80, 42, 67, 103, 64, 81, 61, 92, 58, 54, 77, 63, 50, 70, 42, 55, 58, 52, 68, 68, 55, 59, 59, 51, 82, 56, 71, 45, 60, 62, 89, 103, 57, 76, 63, 68, 112, 57, 72, 57, 94, 43, 71, 44, 66, 62, 55, 50, 69, 64, 56, 48, 49, 62, 48, 91, 52, 52, 59, 57, 86, 62, 132, 74, 63, 59, 76, 50, 78, 53, 62, 53, 58, 77, 56, 63, 54, 70, 69, 73, 54, 42, 53, 58, 72, 54, 69, 59, 62, 57, 84, 70, 84, 89, 60, 61, 68, 55, 95, 78, 58, 60, 78, 50, 88, 56, 58, 84, 66, 62, 69, 110, 51, 90, 49, 47, 53, 53, 61, 63, 57, 54, 69, 58, 46, 65, 49, 74, 55, 60, 64, 56, 59, 72, 63, 66, 57, 61, 81, 77, 55, 58, 55, 73, 50, 55, 65, 52, 52, 95, 111, 73, 88, 98, 68, 61, 51, 53, 59, 89, 67, 53, 44, 54, 69, 45, 68, 62, 54, 62, 75, 57, 58, 87, 62, 49, 64, 62, 104, 59, 66, 62, 59, 42, 47, 59, 65, 61, 57, 54, 80, 98, 73, 67, 92, 53, 76, 95, 87, 62, 71, 58, 65, 67, 87, 73, 57, 59, 64, 79, 70, 51, 67, 43, 53, 67, 115, 53, 62, 71, 50, 94, 57, 83, 39, 84, 79, 75, 73, 66, 84, 70, 66, 85, 56, 55, 74, 107, 64, 76, 43, 57, 57, 51, 66, 96, 58, 85, 46, 81, 67, 46, 61, 74, 51, 82, 54, 49, 60, 66, 41, 75, 71, 64, 41, 75, 86, 56, 58, 73, 63, 95, 53, 81, 76, 97, 80, 52, 65, 83, 67, 54, 63, 82, 61, 45, 77, 65, 56, 75, 136, 85, 58, 55, 75, 48, 62, 84, 74, 63, 76, 73, 89, 75, 75, 70, 41, 62, 71, 44, 63, 63, 55, 59, 48, 79, 53, 69, 59, 61, 90, 69, 63, 74, 74, 60, 48, 76, 52, 66, 47, 67, 83, 58, 35, 59, 88, 62, 69, 63, 55, 55, 95, 54, 65, 58, 66, 96, 42, 60, 53, 60, 58, 76, 92, 69, 102, 75, 83, 59, 77, 71, 70, 50, 48, 72, 73, 71, 59, 57, 89, 50, 87, 51, 60, 55, 72, 78, 58, 62, 102, 39, 50, 65, 79, 101, 61, 60, 57, 58, 58, 51, 63, 53, 62, 78, 71, 87, 64, 102, 73, 62, 70, 90, 94, 74, 46, 41, 60, 36, 61, 65, 56, 61, 65, 54, 60, 60, 80, 53, 75, 64, 107, 69, 52, 66, 55, 76, 75, 60, 48, 66, 72, 54, 83, 58, 43, 67, 70, 49, 62, 50, 71, 57, 66, 52, 54, 47, 43, 84, 71, 69, 62, 55, 50, 62, 45, 74, 55, 49, 66, 59, 58, 60, 63, 84, 54, 45, 64, 76, 41, 65, 97, 77, 76, 54, 70, 54, 70, 81, 54, 62, 55, 61, 55, 65, 51, 73, 58, 73, 49, 72, 74, 90, 85, 75, 51, 85, 59, 92, 63, 104, 50, 67, 71, 80, 71, 64, 61, 85, 68, 41, 64, 116, 62, 49, 55, 69, 69, 73, 60, 59, 60, 58, 135, 90, 78, 79, 79, 60, 66, 94, 64, 57, 74, 74, 69, 77, 75, 99, 70, 76, 57, 58, 77, 80, 61, 57, 71, 93, 61, 68, 68, 73, 51, 65, 67, 61, 98, 90, 59, 61, 64, 58, 42, 53, 65, 72, 57, 67, 71, 66, 56, 69, 77, 58, 34, 59, 77, 69, 78, 77, 52, 57, 87, 57, 79, 84, 82, 63, 57, 73, 114, 92, 45, 69, 63, 53, 57, 104, 65, 93, 53, 67, 66, 65, 62, 68, 48, 70, 54, 74, 66, 44, 76, 57, 68, 80, 70, 62, 75, 64, 49, 64, 64, 67, 59, 84, 54, 62, 58, 215, 90, 73, 71, 72, 55, 57, 45, 67, 97, 88, 68, 77, 69, 102, 65, 68, 50, 57, 68, 64, 74, 75, 59, 64, 72, 47, 89, 60, 81, 53, 63, 62, 66, 58, 54, 65, 85, 71, 75, 53, 91, 61, 58, 67, 66, 63, 51, 64, 59, 71, 69, 68, 54, 67, 82, 69, 91, 71, 62, 51, 71, 64, 76, 55, 67, 67, 59, 43, 42, 62, 78, 70, 47, 54, 63, 56, 55, 74, 56, 54, 67, 59, 47, 70, 54, 47, 60, 53, 54, 69, 70, 79, 71, 69, 61, 71, 79, 84, 100, 73, 58, 62, 82, 54, 85, 59, 69, 75, 66, 86, 66, 65, 63, 55, 47, 51, 73, 68, 51, 80, 56, 66, 92, 88, 63, 67, 64, 81, 65, 57, 78, 57, 111, 57, 70, 73, 78, 57, 68, 63, 49, 54, 70, 51, 56, 83, 77, 76, 80, 66, 46, 71, 80, 63, 69, 65, 55, 72, 59, 59, 81, 68, 90, 60, 70, 68, 74, 61, 58, 106, 80, 73, 70, 46, 60, 64, 61, 64, 66, 58, 43, 43, 71, 80, 72, 80, 65, 61, 52, 71, 52, 82, 76, 87, 64, 61, 73, 88, 76, 56, 63, 77, 71, 60, 52, 78, 97, 79, 45, 63, 48, 60, 63, 55, 62, 47, 83, 64, 64, 54, 79, 74, 65, 59, 59, 80, 80, 85, 61, 87, 85, 51, 62, 53, 78, 60, 85, 64, 60, 61, 67, 72, 52, 87, 58, 75, 86, 67, 58, 43, 80, 56, 69, 46, 104, 73, 48, 55, 63, 46, 67, 77, 76, 79, 62, 74, 79, 94, 56, 69, 41, 84, 51, 75, 56, 76, 67, 63, 69, 55, 67, 63, 83, 60, 68, 47, 49, 52, 65, 75, 68, 70, 92, 71, 61, 63, 83, 43, 59, 48, 74, 64, 72, 51, 54, 62, 97, 57, 53, 62, 79, 68, 70, 73, 47, 66, 86, 57, 71, 52, 81, 70, 91, 58, 54, 71, 78, 58, 42, 49, 68, 61, 61, 66, 67, 91, 51, 60, 92, 65, 94, 78, 61, 54, 53, 47, 85, 60, 93, 88, 87, 63, 67, 58, 55, 87, 51, 54, 71, 78, 53, 70, 97, 51, 58, 46, 76, 62, 64, 106, 47, 53, 80, 62, 60, 58, 71, 61, 48, 48, 51, 47, 72, 85, 80, 56, 61, 94, 63, 55, 59, 36, 58, 79, 49, 60, 62, 44, 59, 73, 53, 67, 53, 93, 73, 52, 62, 88, 89, 80, 79, 73, 52, 68, 63, 70, 80, 68, 70, 66, 67, 45, 53, 64, 54, 63, 52, 59, 72, 68, 58, 118, 56, 64, 47, 75, 55, 49, 41, 64, 67, 48, 77, 80, 77, 76, 54, 69, 66, 74, 74, 66, 45, 59, 75, 59, 46, 94, 80, 66, 52, 66, 65, 55, 67, 63, 72, 75, 81, 69, 86, 56, 46, 62, 66, 61, 135, 100, 90, 70, 57, 91, 79, 76, 70, 63, 72, 48, 72, 69, 154, 63, 76, 61, 61, 60, 39, 50, 52, 73, 83, 52, 69, 75, 70, 77, 65, 51, 40, 57, 69, 101, 52, 78, 70, 68, 59, 54, 87, 47, 59, 72, 68, 57, 103, 36, 67, 77, 64, 67, 55, 55, 70, 72, 59, 70, 68, 42, 73, 65, 61, 57, 74, 94, 60, 81, 110, 94, 47, 62, 34, 59, 69, 74, 81, 74, 81, 60, 75, 61, 59, 80, 61, 61, 63, 71, 76, 56, 60, 73, 47, 70, 69, 89, 74, 68, 39, 53, 40, 75, 88, 61, 55, 57, 77, 54, 64, 59, 72, 69, 135, 64, 87, 56, 43, 52, 52, 78, 70, 87, 75, 64, 47, 53, 70, 72, 66, 42, 70, 60, 72, 54, 56, 73, 51, 75, 55, 81, 68, 64, 59, 72, 66, 54, 65, 83, 78, 58, 71, 43, 60, 97, 60, 74, 70, 67, 72, 66, 52, 68, 84, 59, 61, 65, 73, 54, 72, 47, 92, 82, 75, 82, 78, 99, 59, 73, 60, 66, 67, 47, 51, 73, 62, 61, 77, 60, 72, 61, 48, 60, 59, 74, 71, 61, 47, 61, 42, 28, 59, 79, 65, 55, 80, 59, 82, 39, 73, 57, 53, 65, 78, 61, 65, 78, 35, 55, 79, 78, 95, 54, 61, 62, 98, 75, 66, 80, 70, 53, 57, 75, 83, 87, 61, 76, 85, 65, 70, 50, 51, 80, 53, 61, 67, 73, 61, 74, 80, 67, 82, 47, 74, 62, 53, 61, 63, 59, 70, 64, 45, 56, 76, 55, 53, 69, 77, 53, 70, 54, 62, 54, 57, 55, 75, 67, 64, 57, 91, 75, 69, 74, 69, 56, 59, 63, 75, 54, 55, 49, 57, 57, 57, 52, 65, 66, 51, 44, 61, 50, 59, 43, 49, 68, 61, 42, 63, 64, 46, 54, 62, 41, 66, 62, 62, 50, 81, 62, 84, 91, 55, 49, 64, 66, 58, 51, 65, 64, 60, 74, 54, 63, 66, 76, 45, 66, 79, 74, 43, 51, 85, 59, 65, 63, 54, 66, 50, 67, 83, 59, 90, 53, 46, 57, 60, 60, 58, 75, 66, 60, 58, 57, 61, 54, 90, 71, 68, 90, 84, 70, 64, 76, 63, 67, 66, 61, 73, 76, 65, 55, 97, 83, 57, 79, 86, 56, 55, 70, 55, 75, 62, 69, 82, 54, 57, 48, 52, 78, 63, 49, 63, 66, 76, 79, 64, 69, 54, 66, 72, 63, 76, 104, 69, 75, 74, 75, 63, 42, 72, 69, 58, 91, 82, 72, 78, 71, 87, 65, 77, 66, 105, 56, 79, 70, 66, 53, 64, 63, 69, 67, 53, 58, 109, 78, 62, 48, 63, 50, 68, 58, 65, 60, 61, 56, 69, 61, 59, 95, 75, 61, 61, 69, 71, 56, 78, 83, 55, 44, 56, 53, 50, 66, 70, 65, 77, 59, 48, 56, 79, 73, 59, 50, 84, 66, 70, 46, 68, 64, 55, 60, 69, 55, 95, 62, 68, 61, 54, 54, 95, 63, 71, 63, 78, 59, 72, 58, 113, 104, 71, 46, 75, 68, 73, 95, 60, 99, 61, 57, 49, 84, 58, 46, 55, 71, 79, 54, 53, 43, 58, 58, 52, 74, 65, 52, 66, 80, 60, 74, 65, 47, 62, 67, 54, 64, 60, 218, 79, 49, 70, 57, 54, 58, 76, 98, 68, 93, 43, 77, 60, 79, 57, 81, 60, 79, 57, 58, 69, 64, 44, 67, 76, 70, 86, 69, 66, 37, 50, 37, 76, 71, 68, 87, 53, 62, 79, 81, 66, 50, 59, 48, 60, 79, 63, 75, 60, 57, 50, 77, 77, 56, 57, 64, 98, 66, 72, 55, 47, 58, 67, 56, 53, 61, 52, 65, 44, 56, 67, 72, 55, 60, 59, 60, 56, 65, 58, 49, 45, 66, 63, 88, 77, 59, 60, 51, 60, 81, 68, 54, 48, 72, 42, 80, 86, 76, 80, 67, 62, 62, 95, 85, 69, 63, 59, 66, 54, 96, 80, 65, 66, 54, 71, 62, 78, 43, 65, 66, 42, 50, 82, 83, 54, 64, 62, 65, 66, 70, 76, 56, 89, 54, 74, 78, 77, 62, 70, 77, 64, 62, 72, 63, 50, 68, 44, 60, 62, 61, 53, 75, 71, 66, 52, 53, 78, 79, 70, 51, 82, 85, 74, 59, 58, 62, 84, 75, 56, 96, 74, 78, 71, 57, 60, 63, 61, 64, 51, 69, 75, 63, 54, 83, 66, 87, 65, 52, 60, 60, 54, 73, 72, 76, 75, 59, 49, 85, 58, 73, 76, 76, 84, 68, 64, 52, 51, 66, 52, 63, 80, 66, 69, 57, 53, 51, 58, 49, 59, 50, 65, 57, 61, 63, 55, 90, 69, 76, 54, 64, 72, 71, 65, 54, 67, 58, 81, 62, 85, 71, 71, 59, 53, 59, 96, 64, 80, 41, 56, 66, 67, 70, 52, 62, 98, 67, 82, 69, 57, 68, 81, 53, 73, 81, 51, 82, 76, 88, 42, 78, 35, 74, 51, 52, 72, 83, 41, 68, 50, 73, 61, 57, 86, 72, 43, 69, 63, 62, 64, 50, 64, 71, 86, 78, 79, 62, 73, 82, 70, 74, 67, 52, 72, 74, 63, 67, 76, 58, 75, 58, 59, 63, 51, 87, 58, 75, 98, 67, 61, 78, 46, 66, 83, 59, 44, 62, 45, 60, 64, 69, 49, 67, 73, 60, 70, 75, 58, 47, 84, 70, 62, 78, 47, 61, 65, 55, 67, 71, 84, 79, 81, 92, 76, 66, 59, 58, 75, 48, 56, 67, 58, 78, 97, 59, 55, 63, 61, 67, 61, 96, 63, 63, 82, 71, 49, 83, 67, 56, 41, 70, 54, 64, 61, 58, 65, 67, 56, 70, 79, 60, 56, 67, 61, 78, 71, 61, 52, 59, 58, 84, 54, 77, 61, 80, 69, 51, 72, 98, 68, 71, 75, 74, 48, 34, 70, 58, 75, 77, 64, 47, 72, 39, 57, 58, 56, 76, 64, 41, 73, 68, 49, 94, 75, 85, 69, 96, 75, 80, 66, 58, 71, 73, 73, 90, 48, 74, 78, 71, 62, 72, 58, 55, 64, 77, 66, 54, 56, 97, 72, 41, 71, 63, 54, 47, 89, 44, 88, 71, 80, 89, 62, 65, 49, 75, 59, 66, 135, 84, 70, 45, 82, 80, 59, 73, 68, 61, 51, 40, 61, 72, 167, 58, 37, 47, 56, 61, 49, 69, 80, 70, 97, 66, 68, 61, 70, 50, 69, 62, 72, 63, 62, 46, 68, 78, 77, 88, 62, 46, 88, 69, 63, 64, 69, 79, 110, 61, 56, 72, 58, 56, 55, 66, 67, 67, 56, 60, 69, 61, 52, 58, 64, 68, 67, 83, 45, 67, 92, 79, 73, 61, 52, 63, 70, 56, 65, 73, 65, 48, 71, 70, 64, 101, 48, 67, 60, 73, 80, 48, 65, 59, 57, 73, 48, 85, 80, 60, 73, 61, 61, 75, 89, 46, 54, 79, 82, 45, 79, 56, 64, 77, 116, 59, 70, 59, 62, 71, 72, 46, 59, 108, 72, 59, 49, 58, 74, 84, 58, 66, 66, 64, 59, 56, 66, 70, 59, 76, 72, 81, 73, 60, 29, 59, 87, 78, 66, 71, 68, 56, 68, 84, 72, 51, 55, 52, 53, 61, 57, 85, 45, 68, 60, 49, 78, 54, 62, 55, 54, 69, 88, 83, 62, 70, 63, 40, 56, 59, 50, 53, 54, 54, 81, 70, 39, 58, 53, 66, 75, 65, 54, 70, 72, 56, 81, 53, 63, 75, 41, 58, 71, 68, 71, 57, 78, 64, 90, 67, 74, 54, 63, 53, 88, 57, 75, 74, 37, 61, 50, 79, 93, 60, 61, 82, 81, 69, 92, 64, 108, 68, 55, 70, 103, 79, 47, 74, 74, 78, 65, 52, 44, 92, 62, 67, 64, 86, 83, 85, 48, 73, 72, 69, 75, 75, 57, 68, 86, 69, 71, 63, 58, 33, 84, 72, 82, 56, 85, 78, 61, 79, 57, 56, 49, 66, 79, 92, 46, 56, 91, 68, 52, 70, 80, 59, 60, 64, 77, 76, 50, 55, 59, 52, 50, 65, 56, 73, 57, 46, 42, 54, 48, 70, 57, 55, 73, 86, 89, 46, 61, 62, 48, 44, 81, 63, 48, 55, 83, 58, 84, 67, 73, 61, 66, 72, 78, 57, 65, 50, 61, 75, 67, 63, 59, 77, 61, 55, 64, 72, 58, 70, 95, 51, 51, 70, 58, 67, 70, 57, 77, 72, 96, 60, 59, 65, 50, 47, 76, 66, 50, 50, 61, 50, 68, 48, 73, 69, 71, 73, 82, 71, 51, 79, 96, 65, 48, 60, 79, 67, 70, 77, 90, 56, 51, 68, 80, 64, 72, 69, 53, 78, 77, 92, 71, 58, 64, 67, 46, 74, 60, 73, 49, 65, 65, 65, 59, 59, 75, 69, 82, 55, 65, 98, 65, 71, 54, 48, 50, 54, 51, 70, 49, 77, 74, 75, 66, 30, 82, 59, 79, 72, 104, 48, 70, 88, 75, 68, 72, 59, 75, 77, 45, 68, 52, 60, 55, 81, 68, 65, 64, 69, 56, 72, 68, 68, 74, 56, 75, 70, 68, 47, 48, 68, 72, 58, 76, 85, 59, 65, 76, 75, 67, 60, 69, 85, 72, 69, 63, 50, 64, 63, 70, 65, 65, 64, 55, 65, 55, 66, 73, 54, 108, 56, 58, 68, 52, 63, 56, 57, 80, 47, 73, 81, 69, 84, 66, 84, 65, 81, 86, 80, 77, 59, 59, 95, 90, 80, 116, 121, 53, 64, 46, 64, 47, 54, 42, 42, 55, 94, 72, 81, 57, 71, 56, 71, 76, 56, 71, 78, 50, 117, 70, 55, 52, 57, 60, 68, 59, 64, 77, 65, 73, 60, 63, 63, 60, 66, 80, 72, 52, 59, 100, 74, 51, 69, 78, 91, 77, 60, 56, 43, 72, 66, 63, 75, 55, 52, 62, 46, 93, 54, 80, 79, 65, 57, 69, 53, 55, 80, 57, 87, 62, 75, 67, 73, 64, 53, 54, 61, 65, 77, 72, 37, 50, 63, 80, 52, 98, 56, 73, 63, 86, 61, 59, 65, 74, 56, 46, 66, 45, 66, 75, 71, 78, 89, 70, 76, 72, 55, 82, 44, 62, 59, 51, 47, 110, 78, 57, 53, 69, 63, 74, 45, 59, 55, 80, 57, 48, 59, 71, 56, 69, 66, 59, 71, 59, 74, 74, 129, 65, 76, 71, 73, 60, 75, 58, 70, 90, 61, 77, 92, 88, 63, 53, 71, 68, 63, 65, 50, 61, 53, 113, 60, 58, 73, 77, 60, 55, 40, 70, 67, 62, 71, 114, 43, 54, 49, 68, 76, 58, 70, 56, 72, 67, 79, 45, 55, 85, 62, 48, 66, 64, 85, 66, 60, 81, 54, 47, 97, 66, 64, 60, 77, 74, 66, 75, 71, 77, 45, 58, 67, 50, 41, 41, 70, 79, 56, 78, 62, 72, 40, 56, 53, 88, 56, 100, 49, 77, 43, 67, 65, 74, 84, 65, 71, 72, 71, 53, 55, 67, 73, 78, 56, 49, 103, 41, 49, 77, 72, 52, 65, 75, 65, 91, 58, 67, 64, 84, 62, 62, 52, 54, 58, 77, 89, 59, 64, 62, 60, 57, 59, 64, 66, 56, 46, 74, 40, 43, 84, 59, 71, 74, 99, 60, 77, 77, 49, 84, 64, 55, 39, 52, 37, 65, 108, 99, 63, 82, 51, 54, 63, 65, 74, 50, 61, 67, 64, 56, 47, 61, 92, 63, 52, 46, 48, 52, 63, 84, 53, 72, 74, 70, 110, 73, 50, 64, 71, 63, 107, 73, 62, 57, 43, 61, 46, 55, 66, 79, 58, 80, 76, 77, 45, 112, 56, 47, 72, 55, 110, 61, 60, 44, 68, 62, 56, 81, 67, 63, 93, 62, 45, 69, 45, 58, 67, 113, 86, 73, 90, 100, 60, 63, 19, 64, 54, 54, 66, 54, 50, 62, 56, 88, 52, 63, 58, 69, 70, 64, 61, 77, 50, 67, 53, 74, 54, 91, 38, 68, 71, 64, 47, 46, 44, 67, 84, 62, 56, 70, 56, 60, 35, 55, 51, 70, 50, 96, 65, 51, 55, 41, 51, 74, 67, 39, 62, 92, 84, 46, 60, 50, 60, 38, 62, 54, 53, 62, 67, 79, 69, 68, 59, 61, 53, 57, 89, 69, 106, 74, 49, 54, 73, 47, 76, 57, 71, 58, 52, 45, 67, 79, 52, 39, 62, 73, 62, 45, 60, 59, 57, 63, 58, 41, 77, 96, 80, 57, 42, 53, 69, 67, 71, 77, 51, 76, 57, 99, 58, 48, 64, 51, 81, 55, 89, 78, 38, 41, 98, 48, 56, 65, 85, 57, 59, 59, 94, 72, 83, 57, 50, 56, 98, 65, 71, 75, 99, 81, 48, 70, 40, 64, 59, 55, 89, 58, 62, 50, 53, 109, 79, 47, 85, 68, 55, 46, 53, 57, 57, 44, 89, 54, 57, 59, 73, 62, 60, 60, 74, 54, 45, 108, 87, 77, 65, 70, 56, 56, 53, 68, 52, 42, 64, 70, 55, 58, 72, 53, 81, 62, 45, 58, 51, 56, 71, 86, 151, 67, 67, 78, 82, 53, 45, 87, 80, 82, 64, 81, 83, 52, 68, 80, 59, 42, 62, 54, 51, 67, 61, 41, 65, 49, 115, 63, 72, 86, 74, 61, 79, 77, 62, 86, 61, 44, 72, 75, 92, 42, 51, 75, 73, 57, 67, 60, 64, 50, 63, 57, 60, 79, 87, 77, 65, 53, 51, 42, 50, 48, 46, 66, 53, 57, 78, 55, 78, 68, 76, 69, 78, 62, 81, 63, 67, 64, 53, 57, 50, 50, 79, 49, 60, 60, 45, 63, 82, 76, 73, 62, 69, 56, 77, 90, 71, 80, 58, 63, 85, 59, 54, 76, 54, 77, 92, 64, 77, 69, 41, 62, 42, 73, 69, 71, 54, 66, 57, 39, 84, 57, 53, 103, 57, 92, 60, 78, 53, 65, 38, 48, 58, 60, 57, 67, 47, 43, 70, 68, 53, 73, 99, 46, 65, 84, 51, 79, 91, 76, 61, 79, 44, 51, 56, 67, 52, 57, 60, 79, 79, 85, 57, 55, 58, 68, 56, 116, 78, 63, 79, 74, 54, 76, 79, 62, 64, 72, 68, 65, 63, 54, 50, 56, 45, 65, 53, 92, 86, 61, 75, 59, 52, 67, 102, 78, 82, 72, 71, 55, 70, 55, 49, 56, 61, 71, 64, 38, 69, 74, 70, 61, 74, 59, 71, 55, 64, 62, 77, 69, 82, 48, 76, 78, 76, 83, 60, 58, 67, 103, 77, 46, 58, 93, 75, 70, 102, 86, 57, 67, 69, 68, 62, 81, 45, 59, 45, 49, 58, 72, 76, 66, 35, 48, 82, 49, 68, 72, 111, 58, 90, 56, 69, 52, 85, 58, 79, 76, 82, 74, 77, 46, 72, 42, 62, 51, 80, 61, 61, 56, 81, 54, 65, 61, 103, 89, 67, 67, 44, 59, 56, 62, 64, 81, 67, 63, 50, 76, 63, 51, 49, 70, 49, 64, 63, 44, 50, 82, 61, 76, 60, 42, 94, 69, 69, 102, 88, 44, 70, 67, 77, 67, 65, 54, 81, 93, 90, 82, 65, 60, 80, 98, 67, 20, 60, 47, 55, 83, 86, 69, 60, 67, 118, 85, 62, 66, 68, 90, 58, 73, 83, 68, 76, 58, 71, 59, 53, 84, 53, 83, 65, 74, 78, 84, 60, 74, 57, 65, 57, 44, 67, 62, 69, 56, 58, 53, 51, 53, 64, 45, 95, 70, 62, 60, 64, 82, 77, 66, 49, 63, 63, 72, 86, 65, 73, 82, 59, 78, 53, 68, 57, 80, 88, 72, 77, 58, 59, 72, 66, 67, 83, 56, 60, 64, 66, 61, 71, 63, 69, 56, 44, 52, 62, 58, 64, 72, 70, 57, 84, 53, 59, 50, 85, 62, 72, 55, 57, 73, 98, 81, 76, 80, 45, 70, 57, 64, 62, 59, 67, 60, 80, 54, 56, 57, 39, 54, 83, 55, 79, 61, 51, 75, 63, 64, 55, 54, 86, 72, 71, 75, 67, 58, 54, 76, 50, 65, 70, 50, 92, 75, 95, 53, 52, 62, 63, 65, 39, 57, 63, 53, 67, 62, 59, 73, 62, 38, 59, 67, 62, 63, 78, 63, 55, 88, 65, 69, 66, 63, 54, 49, 100, 60, 55, 48, 60, 57, 77, 53, 53, 60, 87, 58, 55, 67, 101, 66, 56, 65, 73, 60, 60, 86, 69, 57, 71, 79, 55, 72, 57, 65, 55, 84, 77, 74, 69, 39, 75, 55, 69, 58, 106, 84, 53, 84, 70, 102, 55, 58, 69, 81, 61, 66, 66, 47, 61, 65, 62, 60, 59, 55, 76, 78, 82, 51, 65, 55, 89, 73, 69, 70, 91, 58, 50, 60, 63, 58, 70, 56, 63, 42, 40, 61, 77, 73, 74, 79, 63, 73, 68, 72, 68, 109, 67, 52, 48, 83, 98, 63, 62, 52, 79, 63, 60, 67, 74, 62, 69, 42, 57, 55, 66, 63, 55, 62, 106, 64, 66, 61, 55, 81, 59, 40, 71, 49, 60, 56, 52, 75, 70, 72, 58, 61, 76, 85, 65, 57, 58, 45, 49, 60, 74, 87, 55, 74, 74, 44, 35, 63, 42, 120, 95, 84, 78, 57, 77, 68, 60, 64, 51, 74, 51, 58, 54, 105, 61, 89, 136, 46, 78, 60, 70, 73, 56, 55, 71, 53, 58, 51, 46, 74, 56, 70, 62, 72, 73, 51, 57, 46, 62, 54, 60, 69, 68, 91, 96, 65, 63, 79, 75, 55, 63, 59, 110, 62, 72, 43, 63, 86, 55, 70, 84, 69, 62, 91, 56, 63, 83, 72, 65, 63, 57, 67, 48, 68, 72, 84, 49, 71, 99, 77, 43, 68, 61, 58, 62, 61, 63, 66, 62, 101, 62, 87, 74, 62, 82, 68, 95, 60, 51, 73, 63, 62, 59, 75, 68, 66, 74, 47, 54, 53, 72, 71, 70, 99, 75, 70, 65, 61, 69, 61, 54, 75, 56, 67, 62, 61, 63, 67, 79, 70, 60, 62, 56, 53, 67, 72, 71, 77, 90, 78, 85, 57, 64, 51, 74, 72, 88, 55, 66, 63, 51, 71, 57, 76, 83, 60, 70, 62, 51, 61, 76, 48, 53, 68, 62, 63, 56, 67, 87, 70, 66, 69, 65, 60, 46, 36, 64, 59, 66, 56, 56, 71, 54, 71, 48, 55, 44, 60, 56, 74, 64, 48, 75, 69, 78, 72, 75, 60, 84, 64, 68, 47, 74, 89, 70, 60, 66, 84, 88, 70, 57, 53, 74, 53, 77, 67, 65, 41, 59, 31, 55, 92, 68, 66, 65, 73, 67, 68, 55, 38, 71, 85, 66, 78, 56, 56, 57, 72, 67, 73, 70, 65, 55, 59, 59, 52, 60, 67, 57, 69, 58, 50, 72, 67, 51, 67, 63, 59, 52, 66, 52, 78, 69, 53, 115, 97, 69, 63, 47, 96, 44, 69, 71, 89, 74, 74, 68, 82, 68, 73, 67, 67, 66, 75, 71, 60, 59, 71, 83, 79, 50, 72, 67, 73, 97, 74, 60, 53, 91, 72, 68, 102, 63, 81, 63, 58, 58, 55, 63, 84, 53, 57, 79, 55, 80, 48, 58, 53, 59, 79, 60, 75, 50, 58, 59, 68, 59, 49, 56, 94, 56, 73, 72, 75, 60, 75, 80, 74, 51, 58, 59, 39, 51, 62, 64, 68, 66, 58, 73, 56, 73, 74, 68, 87, 90, 89, 77, 62, 81, 64, 85, 63, 77, 73, 60, 75, 64, 86, 47, 90, 83, 88, 68, 73, 50, 67, 99, 60, 62, 46, 67, 56, 91, 63, 44, 48, 47, 59, 48, 79, 99, 67, 59, 78, 60, 72, 46, 71, 87, 75, 85, 46, 86, 49, 61, 64, 83, 50, 66, 95, 70, 57, 81, 65, 61, 60, 66, 71, 86, 66, 67, 58, 68, 65, 116, 69, 64, 66, 78, 67, 104, 58, 57, 36, 66, 57, 58, 43, 82, 75, 57, 69, 47, 78, 50, 57, 52, 67, 50, 58, 59, 70, 74, 66, 79, 68, 44, 78, 51, 54, 78, 53, 57, 63, 74, 62, 72, 54, 70, 76, 57, 96, 84, 47, 66, 63, 76, 70, 68, 64, 60, 44, 58, 75, 49, 60, 55, 61, 72, 53, 61, 59, 67, 65, 67, 63, 53, 69, 67, 55, 54, 81, 59, 44, 69, 57, 71, 49, 70, 61, 54, 65, 60, 46, 54, 71, 42, 76, 70, 61, 67, 65, 53, 73, 82, 66, 54, 88, 80, 56, 68, 65, 57, 77, 43, 53, 75, 55, 87, 66, 76, 46, 42, 61, 72, 68, 64, 72, 64, 71, 59, 68, 62, 62, 50, 53, 99, 48, 55, 55, 50, 47, 54, 57, 45, 83, 92, 65, 52, 66, 69, 47, 74, 48, 55, 77, 74, 93, 59, 94, 59, 48, 68, 53, 76, 54, 61, 47, 63, 82, 49, 85, 54, 55, 64, 49, 51, 61, 56, 57, 58, 56, 70, 56, 63, 75, 53, 48, 44, 68, 79, 97, 73, 73, 65, 69, 102, 69, 76, 63, 55, 58, 61, 76, 46, 62, 80, 52, 74, 59, 62, 34, 64, 52, 69, 61, 44, 85, 66, 66, 56, 66, 46, 57, 54, 55, 57, 59, 62, 58, 145, 69, 57, 67, 66, 63, 77, 67, 49, 60, 71, 70, 76, 94, 51, 67, 68, 70, 66, 73, 59, 86, 54, 81, 56, 68, 66, 61, 64, 64, 62, 57, 76, 74, 91, 58, 61, 57, 67, 61, 79, 57, 66, 62, 81, 57, 60, 63, 61, 55, 63, 67, 41, 155, 65, 53, 67, 56, 60, 65, 77, 62, 54, 56, 67, 41, 68, 55, 66, 73, 46, 63, 51, 76, 105, 66, 99, 67, 59, 91, 54, 48, 71, 63, 90, 65, 46, 37, 66, 84, 94, 55, 90, 51, 60, 56, 77, 97, 72, 84, 65, 71, 52, 72, 53, 50, 65, 69, 122, 68, 59, 70, 75, 72, 52, 52, 61, 59, 83, 79, 67, 75, 53, 54, 76, 70, 85, 59, 42, 51, 62, 49, 64, 72, 69, 57, 80, 73, 76, 52, 75, 78, 86, 76, 75, 61, 67, 62, 60, 79, 74, 72, 80, 55, 67, 66, 58, 77, 56, 79, 56, 34, 69, 64, 49, 62, 71, 71, 69, 96, 86, 73, 66, 50, 57, 87, 66, 51, 106, 57, 56, 77, 75, 78, 57, 58, 54, 79, 38, 114, 80, 62, 55, 71, 77, 77, 77, 65, 57, 83, 65, 51, 53, 52, 83, 75, 64, 108, 68, 59, 87, 41, 69, 45, 71, 70, 47, 100, 77, 72, 55, 66, 64, 95, 43, 75, 70, 57, 50, 72, 55, 60, 61, 81, 69, 56, 78, 66, 58, 62, 81, 121, 64, 63, 44, 62, 54, 72, 67, 84, 62, 75, 58, 81, 53, 39, 65, 121, 65, 101, 90, 53, 68, 59, 84, 73, 71, 60, 79, 60, 67, 82, 69, 73, 67, 57, 95, 62, 45, 63, 53, 47, 57, 45, 79, 87, 59, 43, 73, 68, 66, 51, 49, 56, 77, 47, 53, 52, 60, 56, 61, 60, 56, 79, 78, 36, 57, 78, 59, 51, 87, 50, 52, 83, 65, 47, 93, 64, 55, 54, 68, 61, 59, 93, 68, 59, 60, 61, 50, 66, 89, 49, 33, 117, 75, 59, 99, 86, 80, 39, 70, 56, 76, 86, 78, 54, 84, 56, 62, 83, 42, 68, 73, 73, 105, 67, 84, 95, 83, 71, 98, 77, 50, 64, 117, 40, 69, 40, 82, 69, 69, 67, 60, 72, 67, 52, 71, 66, 91, 70, 58, 66, 102, 60, 95, 64, 59, 50, 88, 48, 69, 58, 84, 94, 86, 54, 82, 57, 67, 108, 72, 58, 56, 57, 73, 61, 91, 89, 67, 79, 87, 57, 70, 65, 63, 43, 76, 50, 55, 73, 60, 47, 142, 65, 78, 71, 70, 42, 154, 85, 53, 91, 55, 58, 55, 61, 113, 76, 78, 54, 67, 75, 56, 59, 61, 35, 52, 83, 91, 91, 68, 71, 80, 59, 74, 41, 66, 63, 55, 50, 56, 56, 82, 67, 88, 97, 52, 71, 88, 52, 59, 82, 80, 70, 71, 50, 59, 56, 63, 84, 66, 68, 78, 50, 95, 58, 76, 45, 70, 40, 92, 52, 79, 41, 58, 65, 70, 83, 81, 86, 57, 63, 71, 52, 71, 65, 26, 50, 56, 58, 57, 81, 58, 53, 72, 61, 60, 74, 62, 28, 77, 51, 62, 62, 85, 51, 84, 88, 82, 51, 41, 67, 70, 54, 88, 77, 100, 71, 49, 46, 55, 40, 56, 102, 69, 57, 36, 79, 58, 87, 51, 72, 65, 54, 83, 81, 129, 32, 82, 68, 75, 69, 62, 64, 70, 45, 45, 90, 67, 63, 73, 71, 71, 52, 64, 63, 58, 63, 82, 72, 66, 69, 64, 63, 88, 60, 65, 56, 43, 52, 38, 60, 65, 61, 84, 66, 104, 87, 42, 89, 88, 88, 64, 45, 57, 51, 53, 77, 77, 52, 92, 49, 74, 66, 58, 123, 66, 72, 41, 64, 51, 69, 61, 57, 59, 61, 64, 47, 48, 66, 57, 72, 78, 80, 50, 58, 53, 62, 62, 74, 88, 50, 60, 66, 75, 77, 42, 79, 69, 52, 52, 63, 53, 45, 56, 84, 85, 60, 65, 38, 88, 73, 91, 40, 72, 47, 63, 54, 41, 72, 46, 62, 73, 57, 59, 58, 75, 66, 63, 64, 53, 70, 53, 49, 52, 66, 50, 59, 68, 50, 79, 51, 62, 63, 60, 92, 71, 87, 100, 70, 75, 57, 45, 63, 65, 78, 62, 58, 70, 64, 55, 59, 137, 66, 77, 82, 36, 52, 73, 70, 66, 89, 82, 63, 72, 59, 42, 66, 38, 52, 67, 76, 50, 62, 81, 70, 97, 80, 88, 76, 53, 63, 58, 58, 55, 48, 74, 57, 63, 58, 52, 77, 45, 57, 65, 73, 50, 70, 84, 91, 62, 52, 76, 44, 55, 106, 53, 66, 62, 86, 61, 64, 50, 107, 74, 55, 68, 63, 67, 99, 73, 61, 76, 50, 91, 45, 78, 77, 56, 71, 71, 57, 92, 55, 55, 84, 84, 84, 46, 58, 50, 50, 62, 58, 61, 60, 61, 89, 60, 44, 72, 63, 68, 61, 81, 57, 70, 70, 56, 59, 62, 56, 62, 49, 56, 82, 71, 98, 56, 79, 57, 46, 77, 75, 41, 55, 68, 60, 82, 78, 53, 69, 77, 64, 134, 64, 68, 67, 53, 65, 42, 58, 72, 84, 79, 71, 49, 62, 75, 54, 58, 88, 78, 59, 77, 70, 70, 65, 65, 60, 91, 56, 77, 94, 64, 71, 54, 58, 63, 97, 68, 57, 66, 69, 119, 68, 54, 52, 75, 61, 70, 51, 67, 52, 84, 55, 61, 87, 56, 54, 80, 80, 60, 68, 53, 48, 60, 67, 64, 49, 64, 99, 61, 65, 47, 47, 80, 51, 76, 59, 84, 53, 63, 60, 50, 78, 59, 57, 67, 87, 58, 83, 68, 44, 69, 65, 67, 46, 45, 96, 70, 43, 52, 71, 45, 56, 56, 50, 64, 87, 102, 63, 78, 65, 77, 49, 59, 77, 43, 99, 66, 59, 67, 55, 107, 54, 36, 75, 83, 38, 90, 44, 58, 65, 78, 82, 79, 50, 70, 56, 70, 113, 57, 54, 81, 64, 128, 86, 59, 72, 54, 77, 75, 71, 69, 54, 65, 93, 54, 77, 82, 58, 45, 48, 70, 64, 53, 76, 76, 62, 53, 63, 50, 81, 61, 72, 53, 74, 82, 57, 60, 55, 59, 77, 78, 79, 57, 65, 51, 62, 62, 84, 89, 81, 40, 81, 91, 64, 64, 59, 61, 81, 71, 62, 56, 88, 90, 80, 38, 57, 56, 75, 52, 76, 85, 124, 87, 56, 70, 56, 71, 70, 55, 82, 65, 38, 56, 59, 54, 53, 90, 63, 72, 54, 83, 64, 53, 55, 63, 46, 58, 45, 68, 55, 76, 40, 68, 58, 73, 77, 56, 78, 73, 63, 62, 59, 83, 103, 71, 78, 45, 56, 52, 126, 45, 65, 71, 82, 43, 40, 75, 44, 52, 49, 70, 79, 73, 61, 55, 64, 44, 60, 78, 54, 48, 89, 55, 60, 63, 59, 60, 47, 71, 61, 69, 65, 81, 50, 68, 67, 85, 140, 55, 51, 94, 77, 70, 91, 94, 79, 59, 62, 56, 90, 57, 96, 52, 67, 58, 82, 85, 79, 107, 66, 81, 57, 89, 87, 67, 85, 68, 66, 70, 92, 50, 59, 56, 72, 80, 56, 57, 74, 54, 91, 71, 61, 67, 72, 74, 63, 65, 62, 68, 59, 72, 62, 48, 74, 85, 94, 41, 73, 51, 64, 61, 71, 79, 92, 64, 59, 66, 91, 72, 85, 64, 56, 63, 89, 63, 61, 84, 66, 78, 72, 82, 61, 63, 77, 58, 79, 58, 52, 64, 88, 58, 66, 107, 58, 60, 67, 56, 77, 71, 57, 81, 63, 59, 76, 73, 67, 70, 80, 53, 72, 50, 80, 44, 58, 86, 55, 54, 53, 49, 57, 73, 73, 62, 84, 67, 62, 53, 92, 60, 107, 61, 54, 85, 55, 68, 60, 56, 51, 81, 62, 60, 63, 101, 58, 61, 60, 62, 78, 51, 65, 60, 52, 66, 55, 90, 65, 76, 65, 75, 62, 75, 79, 74, 72, 88, 65, 85, 59, 87, 62, 81, 70, 51, 52, 76, 69, 63, 63, 44, 61, 55, 56, 68, 66, 58, 59, 57, 66, 51, 71, 87, 37, 62, 63, 57, 56, 56, 61, 76, 64, 71, 123, 61, 55, 57, 66, 56, 79, 70, 91, 67, 63, 64, 72, 59, 84, 50, 60, 55, 61, 59, 63, 59, 56, 65, 50, 80, 53, 88, 84, 55, 74, 69, 49, 82, 56, 89, 63, 81, 79, 81, 73, 42, 48, 75, 64, 62, 80, 56, 67, 67, 59, 66, 55, 51, 72, 55, 62, 66, 83, 59, 58, 79, 51, 56, 57, 61, 78, 58, 62, 54, 60, 61, 54, 62, 83, 56, 51, 57, 45, 52, 57, 68, 70, 57, 75, 52, 68, 57, 61, 61, 40, 45, 44, 66, 68, 52, 67, 66, 81, 61, 60, 59, 64, 84, 51, 71, 70, 58, 67, 55, 72, 66, 63, 58, 65, 80, 63, 70, 70, 56, 67, 68, 58, 49, 107, 54, 83, 65, 58, 79, 94, 56, 66, 61, 76, 94, 67, 87, 62, 92, 73, 64, 62, 61, 55, 57, 57, 68, 53, 84, 59, 73, 70, 58, 66, 60, 72, 61, 51, 48, 79, 65, 56, 64, 65, 51, 82, 61, 81, 31, 63, 70, 59, 73, 98, 67, 50, 73, 58, 63, 65, 58, 48, 58, 67, 67, 57, 84, 70, 63, 56, 59, 42, 75, 45, 44, 105, 66, 62, 69, 64, 69, 52, 62, 88, 69, 61, 94, 34, 57, 40, 65, 69, 59, 51, 56, 97, 64, 61, 71, 64, 69, 40, 72, 61, 62, 65, 63, 68, 84, 61, 66, 83, 70, 72, 62, 114, 58, 54, 68, 54, 58, 64, 55, 49, 42, 60, 54, 53, 70, 53, 85, 54, 77, 58, 75, 71, 67, 56, 57, 61, 67, 79, 60, 75, 85, 72, 80, 78, 78, 53, 68, 60, 94, 67, 65, 59, 50, 57, 54, 71, 80, 59, 64, 48, 64, 96, 67, 64, 63, 69, 62, 44, 57, 80, 74, 43, 61, 61, 76, 62, 45, 85, 45, 75, 46, 63, 59, 52, 85, 50, 65, 76, 58, 62, 68, 56, 67, 45, 58, 64, 44, 57, 76, 76, 63, 67, 61, 49, 87, 56, 80, 56, 75, 61, 69, 67, 75, 75, 67, 66, 62, 67, 91, 56, 66, 51, 84, 75, 60, 64, 73, 40, 76, 62, 60, 55, 65, 64, 84, 74, 52, 53, 64, 50, 76, 48, 37, 62, 82, 58, 63, 74, 58, 60, 68, 58, 73, 79, 61, 75, 105, 68, 65, 70, 78, 61, 69, 67, 58, 59, 48, 105, 67, 144, 57, 108, 66, 61, 51, 95, 69, 82, 60, 67, 71, 41, 60, 58, 71, 74, 64, 75, 46, 60, 64, 59, 51, 53, 51, 70, 56, 74, 63, 72, 60, 141, 59, 99, 47, 68, 68, 74, 71, 55, 81, 61, 98, 62, 50, 67, 55, 53, 83, 74, 63, 68, 75, 116, 61, 69, 76, 59, 42, 58, 51, 70, 52, 53, 75, 74, 58, 71, 56, 94, 48, 61, 80, 72, 107, 62, 70, 62, 59, 65, 59, 64, 69, 55, 92, 84, 51, 67, 67, 52, 80, 58, 59, 57, 43, 66, 114, 63, 73, 70, 72, 48, 64, 54, 52, 62, 62, 60, 76, 69, 68, 72, 92, 85, 61, 75, 77, 79, 71, 80, 55, 58, 68, 62, 85, 71, 75, 58, 61, 60, 68, 75, 89, 62, 62, 51, 48, 58, 57, 67, 55, 60, 38, 59, 68, 67, 55, 70, 58, 71, 86, 63, 71, 53, 48, 55, 52, 61, 72, 53, 50, 63, 60, 55, 75, 57, 58, 68, 60, 73, 49, 97, 52, 71, 67, 62, 92, 70, 67, 54, 77, 55, 61, 65, 63, 79, 47, 70, 73, 61, 59, 84, 71, 85, 50, 87, 60, 52, 84, 71, 56, 64, 73, 83, 40, 55, 50, 62, 81, 110, 71, 86, 61, 72, 47, 68, 47, 68, 54, 73, 66, 51, 57, 71, 61, 82, 62, 54, 61, 83, 46, 48, 81, 60, 63, 86, 51, 135, 51, 90, 49, 84, 56, 84, 49, 75, 48, 63, 66, 61, 53, 42, 64, 78, 72, 36, 77, 58, 47, 56, 59, 65, 56, 62, 72, 52, 77, 40, 85, 66, 76, 86, 60, 70, 60, 63, 73, 63, 95, 44, 64, 56, 70, 72, 87, 70, 90, 64, 64, 69, 80, 78, 66, 74, 80, 64, 68, 53, 84, 53, 67, 57, 67, 63, 62, 63, 64, 50, 62, 59, 47, 56, 48, 53, 60, 73, 65, 57, 56, 60, 47, 76, 58, 51, 46, 66, 74, 65, 50, 78, 68, 62, 85, 68, 63, 77, 60, 72, 49, 68, 74, 61, 63, 61, 93, 71, 47, 63, 72, 79, 46, 75, 64, 50, 37, 74, 59, 78, 60, 49, 71, 57, 59, 58, 63, 72, 61, 109, 61, 49, 62, 63, 53, 83, 65, 68, 55, 47, 48, 62, 50, 57, 44, 61, 57, 70, 68, 70, 47, 77, 56, 59, 72, 51, 65, 66, 57, 55, 117, 54, 75, 45, 77, 58, 67, 73, 54, 64, 64, 69, 70, 58, 74, 75, 60, 58, 98, 72, 71, 128, 79, 54, 64, 61, 56, 60, 75, 59, 50, 52, 92, 94, 40, 73, 89, 64, 68, 89, 51, 52, 56, 96, 72, 82, 73, 69, 68, 62, 65, 72, 71, 58, 88, 64, 74, 64, 54, 55, 96, 52, 68, 74, 71, 70, 49, 60, 66, 56, 76, 56, 45, 61, 65, 66, 56, 56, 58, 78, 54, 82, 48, 62, 70, 51, 79, 58, 87, 57, 59, 58, 74, 71, 56, 57, 52, 60, 91, 96, 69, 96, 81, 67, 74, 71, 61, 84, 58, 60, 87, 85, 64, 54, 39, 51, 78, 47, 71, 62, 77, 43, 79, 75, 68, 86, 85, 47, 65, 77, 51, 91, 64, 75, 62, 73, 62, 52, 47, 73, 65, 61, 65, 61, 65, 66, 64, 55, 50, 65, 57, 54, 73, 55, 47, 58, 74, 46, 73, 66, 60, 76, 77, 54, 67, 67, 48, 60, 47, 58, 69, 63, 61, 55, 59, 87, 69, 69, 54, 99, 69, 55, 76, 59, 50, 82, 52, 66, 87, 69, 38, 51, 60, 63, 75, 65, 67, 63, 62, 51, 63, 50, 39, 43, 53, 56, 59, 42, 58, 56, 43, 79, 62, 78, 70, 50, 50, 82, 62, 75, 49, 59, 77, 63, 49, 57, 74, 61, 50, 77, 73, 121, 78, 76, 61, 57, 51, 60, 60, 50, 58, 54, 84, 68, 48, 65, 42, 110, 67, 90, 64, 48, 74, 54, 77, 60, 60, 72, 55, 56, 66, 49, 55, 67, 109, 52, 85, 105, 46, 57, 38, 73, 50, 58, 69, 42, 47, 58, 66, 70, 68, 55, 59, 76, 81, 73, 59, 60, 52, 48, 68, 47, 86, 52, 71, 73, 76, 74, 87, 56, 62, 54, 76, 115, 60, 67, 60, 86, 55, 80, 64, 75, 64, 49, 65, 59, 50, 46, 56, 74, 56, 72, 71, 68, 70, 80, 55, 56, 76, 42, 61, 69, 67, 49, 65, 73, 84, 77, 77, 50, 81, 36, 63, 88, 60, 72, 60, 59, 75, 59, 79, 92, 95, 65, 77, 56, 90, 80, 69, 56, 77, 27, 86, 69, 66, 78, 55, 44, 74, 56, 84, 45, 65, 62, 72, 45, 61, 49, 86, 56, 50, 56, 64, 67, 73, 74, 53, 49, 66, 64, 83, 46, 80, 77, 54, 63, 82, 61, 68, 54, 109, 76, 28, 45, 56, 49, 79, 44, 59, 50, 83, 60, 57, 63, 68, 49, 44, 129, 54, 68, 65, 59, 61, 47, 54, 78, 66, 77, 65, 74, 69, 62, 75, 60, 71, 68, 47, 58, 59, 48, 62, 130, 65, 71, 58, 94, 63, 61, 83, 69, 58, 72, 60, 39, 55, 47, 57, 80, 61, 67, 83, 64, 51, 86, 72, 77, 50, 70, 77, 57, 76, 71, 82, 57, 66, 62, 64, 68, 50, 78, 54, 69, 72, 69, 62, 62, 53, 75, 60, 83, 46, 72, 68, 72, 73, 59, 81, 77, 71, 72, 57, 47, 66, 86, 45, 72, 56, 70, 66, 67, 59, 60, 83, 63, 60, 68, 52, 79, 85, 76, 66, 65, 57, 76, 57, 72, 52, 70, 75, 72, 85, 57, 60, 69, 55, 75, 61, 66, 70, 74, 57, 67, 62, 60, 83, 64, 54, 59, 75, 39, 62, 75, 57, 79, 65, 71, 62, 70, 78, 105, 55, 73, 73, 56, 81, 62, 68, 70, 57, 63, 75, 56, 54, 66, 68, 65, 79, 60, 52, 66, 70, 51, 51, 67, 91, 84, 57, 55, 48, 54, 82, 77, 88, 71, 47, 77, 64, 65, 71, 57, 68, 56, 74, 50, 93, 74, 55, 47, 83, 78, 57, 56, 66, 65, 96, 61, 67, 60, 63, 54, 60, 75, 59, 56, 43, 130, 57, 65, 60, 66, 59, 38, 60, 55, 71, 70, 69, 61, 67, 58, 90, 57, 62, 57, 71, 59, 72, 59, 168, 60, 59, 74, 69, 77, 42, 90, 51, 46, 52, 87, 71, 50, 57, 61, 66, 76, 50, 63, 90, 69, 67, 45, 65, 56, 107, 62, 51, 60, 44, 44, 65, 96, 75, 65, 74, 66, 66, 62, 64, 71, 77, 62, 44, 80, 75, 92, 80, 70, 70, 69, 42, 62, 58, 40, 52, 54, 69, 66, 62, 66, 78, 65, 55, 66, 77, 89, 105, 66, 58, 98, 73, 65, 54, 57, 58, 65, 66, 88, 77, 81, 77, 75, 61, 65, 58, 70, 55, 55, 83, 64, 52, 68, 62, 67, 64, 61, 90, 55, 79, 199, 56, 73, 55, 54, 73, 74, 72, 61, 79, 57, 54, 57, 53, 75, 101, 60, 47, 68, 55, 68, 62, 64, 95, 52, 65, 61, 73, 67, 52, 59, 55, 71, 62, 42, 55, 57, 60, 69, 77, 59, 64, 50, 46, 73, 73, 62, 82, 147, 59, 74, 60, 73, 93, 55, 63, 61, 88, 55, 87, 54, 52, 60, 65, 70, 59, 85, 57, 62, 78, 66, 60, 65, 66, 46, 67, 62, 83, 62, 40, 84, 75, 57, 70, 69, 71, 61, 67, 76, 55, 49, 53, 50, 82, 51, 75, 72, 72, 62, 73, 83, 71, 69, 57, 70, 59, 60, 66, 70, 75, 65, 83, 83, 55, 61, 54, 70, 70, 62, 67, 44, 66, 38, 55, 58, 62, 68, 73, 75, 46, 56, 62, 65, 59, 67, 64, 61, 72, 45, 58, 70, 82, 86, 75, 62, 91, 92, 105, 85, 53, 84, 63, 70, 113, 52, 58, 62, 77, 66, 79, 62, 59, 78, 79, 51, 74, 81, 101, 66, 62, 83, 54, 54, 66, 53, 72, 72, 67, 63, 66, 69, 75, 59, 61, 79, 73, 54, 55, 65, 72, 70, 67, 73, 67, 56, 79, 71, 63, 74, 53, 59, 59, 50, 77, 70, 71, 69, 51, 78, 56, 59, 77, 63, 57, 69, 87, 73, 76, 71, 69, 80, 61, 58, 63, 82, 46, 73, 71, 101, 70, 49, 53, 77, 46, 59, 54, 90, 70, 69, 79, 64, 76, 72, 51, 40, 50, 63, 78, 44, 50, 46, 42, 48, 85, 53, 51, 61, 56, 130, 82, 49, 59, 83, 53, 66, 73, 103, 57, 59, 67, 43, 74, 85, 62, 75, 67, 76, 78, 75, 52, 104, 81, 80, 73, 80, 65, 98, 58, 81, 41, 74, 60, 68, 89, 58, 41, 80, 50, 61, 64, 54, 80, 102, 78, 62, 58, 43, 52, 108, 44, 48, 56, 61, 75, 55, 42, 58, 49, 89, 59, 60, 79, 66, 71, 54, 51, 60, 56, 71, 71, 64, 57, 71, 68, 64, 51, 80, 68, 71, 63, 79, 64, 73, 47, 65, 71, 46, 67, 72, 138, 82, 45, 62, 69, 41, 103, 104, 92, 59, 58, 46, 64, 67, 66, 43, 114, 93, 54, 54, 81, 70, 96, 53, 58, 59, 68, 79, 65, 60, 67, 85, 65, 60, 50, 63, 62, 61, 52, 67, 123, 68, 77, 53, 65, 56, 56, 65, 55, 66, 82, 48, 88, 68, 84, 54, 54, 44, 58, 74, 54, 58, 88, 55, 61, 54, 71, 68, 53, 45, 88, 56, 63, 49, 62, 41, 86, 52, 83, 62, 62, 80, 46, 71, 59, 68, 66, 72, 82, 54, 71, 49, 72, 77, 41, 72, 62, 49, 74, 70, 70, 51, 65, 55, 71, 62, 69, 54, 91, 65, 54, 66, 69, 66, 58, 48, 75, 57, 67, 61, 81, 60, 59, 70, 59, 55, 72, 66, 74, 58, 63, 52, 46, 15, 61, 59, 99, 63, 62, 49, 111, 76, 51, 56, 82, 22, 87, 51, 58, 61, 61, 63, 36, 96, 45, 79, 71, 65, 56, 52, 62, 73, 93, 61, 68, 89, 54, 48, 63, 76, 52, 96, 58, 71, 94, 58, 76, 60, 59, 72, 59, 46, 47, 64, 102, 61, 44, 75, 50, 87, 70, 62, 72, 89, 108, 55, 93, 113, 60, 74, 117, 59, 68, 52, 73, 60, 70, 58, 58, 83, 79, 179, 77, 57, 69, 54, 78, 62, 72, 67, 60, 89, 59, 73, 167, 49, 71, 64, 107, 72, 64, 79, 64, 71, 45, 46, 81, 82, 90, 79, 38, 67, 67, 76, 82, 73, 85, 59, 58, 58, 61, 55, 69, 68, 42, 54, 69, 54, 55, 60, 74, 59, 96, 72, 57, 55, 69, 111, 57, 77, 62, 84, 75, 42, 60, 66, 107, 75, 52, 68, 64, 71, 76, 70, 80, 54, 80, 98, 65, 97, 58, 75, 73, 71, 86, 56, 49, 67, 53, 66, 40, 60, 66, 52, 94, 64, 61, 53, 80, 55, 55, 59, 75, 51, 105, 56, 39, 74, 68, 112, 66, 65, 79, 66, 51, 56, 61, 54, 75, 63, 71, 51, 64, 36, 62, 74, 76, 68, 97, 61, 56, 66, 118, 94, 76, 65, 60, 58, 78, 80, 116, 67, 77, 93, 92, 66, 68, 44, 52, 56, 63, 69, 69, 86, 87, 59, 72, 67, 64, 126, 63, 44, 67, 47, 78, 83, 73, 49, 66, 90, 57, 58, 54, 67, 63, 80, 74, 62, 63, 63, 81, 79, 68, 52, 45, 84, 59, 59, 83, 55, 48, 77, 70, 71, 89, 43, 67, 69, 67, 65, 70, 88, 67, 52, 63, 88, 71, 65, 90, 70, 105, 57, 54, 66, 52, 81, 61, 64, 69, 74, 81, 96, 43, 86, 72, 54, 52, 69, 66, 57, 53, 71, 79, 55, 96, 64, 42, 43, 50, 58, 60, 59, 49, 62, 59, 63, 77, 68, 66, 62, 71, 90, 70, 75, 58, 72, 82, 72, 54, 86, 76, 56, 76, 46, 64, 29, 64, 66, 49, 44, 64, 65, 57, 42, 66, 71, 48, 80, 52, 61, 57, 57, 71, 57, 54, 54, 107, 59, 84, 69, 55, 79, 90, 70, 85, 88, 51, 59, 64, 68, 75, 37, 67, 74, 68, 72, 62, 57, 35, 55, 54, 70, 88, 68, 76, 40, 86, 66, 52, 62, 48, 51, 78, 62, 50, 69, 60, 53, 42, 59, 32, 58, 56, 71, 55, 79, 61, 60, 74, 60, 68, 50, 61, 61, 67, 79, 69, 65, 80, 97, 88, 75, 57, 74, 58, 69, 68, 55, 73, 59, 83, 47, 44, 57, 60, 70, 75, 65, 57, 49, 58, 87, 64, 73, 42, 59, 104, 82, 51, 81, 67, 77, 99, 92, 68, 59, 53, 95, 72, 66, 63, 90, 70, 63, 59, 60, 73, 65, 60, 69, 83, 53, 67, 93, 53, 89, 67, 60, 49, 80, 57, 62, 48, 68, 56, 75, 62, 67, 64, 44, 76, 54, 77, 80, 40, 71, 53, 65, 75, 61, 46, 63, 54, 45, 74, 46, 67, 52, 72, 54, 54, 73, 85, 110, 49, 66, 66, 78, 59, 68, 69, 120, 71, 63, 90, 60, 70, 63, 52, 63, 59, 59, 58, 68, 73, 73, 53, 81, 74, 59, 62, 61, 65, 55, 74, 65, 57, 73, 49, 66, 78, 60, 63, 79, 34, 50, 82, 62, 92, 56, 53, 79, 58, 73, 50, 74, 75, 64, 62, 57, 59, 64, 54, 74, 56, 49, 62, 66, 70, 72, 47, 57, 45, 70, 83, 69, 71, 84, 76, 107, 77, 51, 59, 62, 103, 50, 67, 58, 65, 43, 58, 54, 50, 52, 61, 64, 67, 65, 63, 48, 74, 44, 78, 44, 100, 68, 71, 48, 53, 70, 67, 62, 58, 56, 67, 72, 61, 47, 63, 56, 63, 111, 55, 68, 75, 36, 92, 80, 63, 74, 57, 58, 55, 60, 51, 56, 70, 66, 72, 53, 60, 50, 56, 36, 71, 45, 61, 45, 55, 56, 92, 65, 59, 57, 75, 84, 57, 67, 56, 81, 50, 67, 67, 63, 68, 62, 69, 57, 51, 65, 49, 72, 33, 107, 47, 95, 89, 56, 49, 49, 62, 50, 71, 60, 71, 64, 48, 62, 72, 57, 71, 63, 61, 65, 53, 71, 80, 85, 116, 54, 55, 52, 48, 76, 57, 69, 64, 58, 47, 37, 69, 60, 52, 65, 68, 66, 73, 40, 60, 68, 88, 54, 62, 43, 50, 57, 62, 86, 74, 62, 61, 62, 38, 69, 61, 66, 84, 73, 60, 41, 76, 61, 54, 64, 52, 67, 59, 58, 57, 76, 62, 69, 70, 57, 51, 63, 64, 51, 69, 83, 64, 75, 104, 67, 56, 79, 64, 59, 39, 55, 66, 64, 85, 84, 102, 45, 58, 61, 51, 123, 67, 82, 69, 59, 50, 59, 91, 64, 56, 65, 59, 82, 89, 87, 57, 62, 70, 44, 69, 60, 69, 61, 71, 58, 66, 73, 66, 80, 63, 75, 64, 80, 80, 58, 67, 56, 63, 66, 59, 72, 69, 62, 79, 70, 66, 92, 64, 60, 74, 69, 56, 62, 95, 54, 58, 54, 72, 69, 78, 78, 79, 56, 81, 104, 80, 26, 53, 65, 56, 63, 66, 55, 57, 57, 58, 100, 50, 69, 74, 50, 66, 64, 53, 88, 51, 59, 53, 75, 77, 73, 58, 67, 55, 68, 59, 66, 63, 55, 80, 94, 27, 51, 92, 47, 36, 49, 69, 78, 79, 101, 65, 65, 62, 110, 40, 69, 88, 48, 59, 82, 59, 84, 53, 60, 87, 84, 71, 56, 66, 28, 67, 71, 80, 58, 58, 85, 58, 59, 90, 63, 85, 50, 54, 60, 55, 69, 61, 78, 89, 55, 54, 73, 44, 74, 69, 115, 73, 69, 43, 61, 60, 59, 63, 99, 74, 81, 105, 56, 64, 99, 61, 80, 99, 77, 62, 123, 77, 64, 67, 53, 62, 78, 60, 81, 52, 64, 55, 73, 60, 85, 77, 74, 47, 62, 61, 77, 49, 45, 61, 66, 49, 63, 82, 59, 85, 47, 81, 72, 56, 86, 87, 59, 63, 83, 52, 83, 71, 50, 38, 65, 68, 45, 60, 55, 46, 51, 74, 72, 90, 57, 51, 61, 51, 60, 66, 74, 62, 54, 75, 77, 76, 106, 66, 53, 82, 66, 84, 57, 43, 62, 72, 66, 46, 57, 43, 80, 69, 69, 70, 67, 74, 61, 60, 86, 67, 55, 96, 58, 63, 53, 60, 78, 91, 43, 76, 56, 78, 73, 81, 85, 57, 63, 61, 73, 73, 68, 52, 104, 54, 84, 60, 35, 55, 85, 63, 59, 65, 47, 55, 63, 73, 48, 46, 23, 50, 68, 60, 71, 50, 34, 63, 61, 54, 83, 74, 65, 53, 56, 90, 49, 90, 97, 69, 53, 87, 63, 58, 68, 71, 67, 86, 82, 97, 34, 70, 57, 86, 55, 91, 58, 61, 82, 85, 83, 72, 62, 85, 72, 77, 66, 69, 64, 82, 60, 73, 68, 50, 83, 70, 77, 57, 52, 71, 52, 92, 94, 57, 57, 90, 66, 88, 60, 62, 90, 66, 86, 51, 56, 57, 63, 59, 60, 60, 61, 73, 44, 58, 59, 44, 100, 60, 71, 69, 69, 56, 77, 39, 65, 67, 74, 53, 53, 59, 99, 43, 62, 98, 68, 51, 59, 43, 68, 76, 83, 76, 53, 49, 69, 49, 89, 59, 57, 73, 75, 62, 80, 65, 113, 45, 64, 44, 82, 67, 72, 49, 57, 60, 51, 72, 47, 59, 43, 67, 49, 66, 55, 64, 100, 79, 70, 49, 70, 57, 52, 46, 66, 52, 91, 87, 65, 64, 59, 69, 62, 53, 69, 73, 52, 66, 72, 68, 73, 66, 71, 55, 49, 52, 105, 62, 62, 45, 40, 105, 56, 66, 68, 54, 83, 53, 70, 90, 91, 41, 64, 70, 65, 49, 51, 71, 101, 72, 75, 61, 68, 37, 80, 51, 45, 68, 58, 55, 50, 62, 78, 71, 46, 93, 66, 36, 81, 71, 55, 109, 60, 45, 66, 62, 55, 86, 81, 67, 82, 68, 59, 80, 56, 50, 59, 87, 58, 73, 62, 64, 51, 48, 69, 55, 81, 53, 63, 88, 51, 53, 67, 62, 82, 50, 59, 62, 71, 64, 58, 63, 52, 81, 50, 50, 74, 47, 79, 89, 59, 65, 63, 44, 72, 64, 38, 89, 63, 53, 79, 53, 102, 73, 65, 75, 53, 68, 61, 60, 60, 78, 54, 60, 62, 77, 58, 56, 46, 79, 47, 64, 82, 62, 76, 78, 71, 54, 55, 79, 81, 61, 40, 63, 68, 62, 53, 64, 48, 113, 78, 50, 50, 86, 47, 66, 70, 62, 89, 52, 54, 71, 60, 82, 46, 52, 70, 53, 72, 62, 53, 72, 35, 63, 69, 101, 69, 35, 108, 53, 56, 90, 55, 88, 64, 43, 54, 54, 47, 72, 38, 57, 74, 101, 67, 49, 57, 72, 96, 73, 70, 67, 70, 87, 70, 61, 67, 61, 103, 67, 92, 54, 65, 107, 44, 66, 81, 112, 57, 96, 65, 71, 61, 58, 64, 86, 56, 60, 95, 97, 47, 77, 110, 43, 64, 63, 66, 65, 42, 53, 71, 80, 53, 66, 55, 48, 73, 74, 50, 65, 63, 55, 91, 87, 71, 75, 79, 111, 108, 48, 78, 47, 72, 54, 47, 44, 52, 59, 82, 80, 77, 49, 68, 82, 70, 46, 63, 63, 52, 51, 64, 46, 64, 95, 52, 70, 77, 69, 65, 50, 51, 61, 59, 45, 45, 83, 81, 60, 68, 74, 67, 81, 85, 98, 64, 60, 80, 68, 71, 75, 67, 61, 84, 35, 33, 59, 40, 69, 79, 63, 61, 59, 47, 84, 74, 46, 72, 47, 42, 82, 70, 65, 66, 52, 58, 57, 75, 69, 53, 38, 54, 74, 72, 62, 90, 73, 60, 79, 58, 83, 40, 71, 54, 53, 62, 81, 62, 76, 72, 98, 74, 68, 53, 80, 107, 66, 54, 60, 59, 90, 51, 68, 76, 60, 59, 88, 50, 89, 59, 75, 46, 56, 59, 43, 46, 70, 56, 52, 71, 68, 86, 49, 71, 61, 81, 92, 64, 47, 76, 39, 74, 75, 47, 78, 45, 63, 59, 124, 71, 33, 37, 48, 57, 44, 79, 64, 42, 108, 77, 61, 66, 65, 56, 62, 43, 61, 77, 72, 60, 39, 50, 45, 78, 78, 54, 49, 57, 98, 93, 48, 78, 64, 54, 72, 74, 57, 47, 66, 71, 109, 57, 51, 44, 54, 62, 57, 58, 57, 57, 76, 57, 58, 63, 62, 55, 66, 59, 68, 58, 55, 124, 56, 54, 69, 82, 58, 60, 77, 80, 60, 41, 84, 67, 59, 83, 59, 58, 54, 70, 60, 50, 70, 44, 54, 58, 88, 55, 85, 59, 55, 48, 50, 39, 68, 72, 65, 48, 60, 62, 49, 53, 47, 57, 62, 57, 85, 58, 79, 67, 71, 45, 83, 65, 43, 58, 60, 54, 74, 74, 44, 48, 63, 59, 68, 49, 83, 80, 54, 41, 35, 53, 54, 56, 62, 103, 51, 61, 62, 74, 112, 66, 92, 68, 81, 58, 85, 64, 59, 93, 75, 88, 42, 82, 59, 50, 79, 85, 51, 76, 85, 63, 58, 69, 57, 75, 71, 75, 67, 61, 76, 79, 90, 52, 87, 60, 84, 59, 49, 96, 107, 63, 78, 66, 57, 77, 73, 51, 48, 64, 50, 80, 77, 119, 33, 84, 42, 55, 69, 70, 77, 71, 88, 55, 63, 63, 64, 71, 61, 67, 62, 112, 71, 61, 49, 54, 64, 51, 66, 56, 34, 76, 66, 64, 69, 41, 53, 68, 85, 37, 44, 68, 69, 57, 40, 64, 90, 49, 86, 54, 64, 51, 68, 68, 44, 52, 157, 79, 78, 132, 54, 63, 88, 45, 81, 51, 67, 87, 81, 69, 74, 59, 80, 55, 82, 65, 87, 62, 89, 74, 55, 57, 52, 60, 69, 59, 72, 75, 58, 57, 67, 63, 70, 65, 106, 61, 70, 78, 65, 76, 55, 96, 70, 50, 67, 52, 68, 115, 68, 74, 52, 76, 57, 83, 73, 65, 69, 68, 58, 50, 89, 66, 54, 58, 68, 81, 68, 66, 63, 73, 71, 68, 46, 56, 66, 65, 54, 70, 43, 73, 73, 85, 88, 90, 96, 64, 114, 59, 62, 76, 63, 56, 68, 66, 77, 68, 62, 61, 79, 65, 98, 71, 39, 67, 77, 76, 59, 45, 69, 63, 46, 50, 87, 61, 73, 65, 66, 63, 92, 54, 60, 69, 55, 68, 86, 49, 89, 60, 40, 51, 141, 57, 89, 61, 77, 59, 74, 92, 63, 48, 66, 71, 58, 48, 48, 50, 65, 70, 63, 74, 58, 60, 68, 55, 81, 57, 73, 43, 62, 69, 82, 73, 66, 57, 78, 89, 24, 50, 64, 59, 72, 68, 77, 78, 74, 68, 53, 66, 70, 68, 52, 57, 80, 57, 97, 51, 76, 59, 53, 69, 73, 59, 64, 48, 57, 95, 59, 65, 50, 50, 93, 53, 66, 60, 81, 47, 56, 65, 74, 75, 38, 82, 59, 66, 55, 57, 73, 53, 68, 65, 56, 98, 71, 70, 95, 65, 75, 62, 56, 60, 50, 49, 36, 61, 72, 85, 95, 70, 62, 71, 66, 56, 57, 64, 51, 69, 90, 84, 72, 118, 80, 69, 85, 58, 64, 71, 75, 47, 80, 49, 68, 83, 73, 100, 90, 54, 80, 82, 74, 65, 39, 74, 60, 67, 76, 49, 59, 72, 63, 65, 53, 59, 72, 61, 73, 83, 74, 75, 77, 75, 70, 47, 45, 44, 86, 49, 62, 45, 67, 79, 79, 81, 65, 44, 76, 79, 66, 56, 76, 60, 57, 53, 53, 39, 68, 63, 72, 69, 113, 57, 60, 88, 52, 48, 64, 114, 65, 67, 84, 72, 68, 90, 60, 63, 66, 73, 58, 63, 58, 60, 47, 86, 81, 76, 93, 75, 62, 64, 63, 69, 65, 79, 72, 62, 50, 67, 51, 66, 84, 67, 66, 85, 85, 52, 64, 29, 25, 57, 57, 44, 57, 65, 65, 53, 53, 75, 66, 70, 75, 62, 70, 69, 81, 54, 69, 82, 67, 85, 86, 52, 47, 44, 64, 44, 117, 49, 70, 55, 50, 54, 59, 78, 65, 71, 62, 51, 47, 40, 83, 52, 53, 69, 51, 86, 74, 89, 79, 63, 90, 88, 72, 82, 67, 84, 74, 67, 57, 73, 65, 46, 54, 43, 75, 72, 73, 45, 64, 72, 74, 74, 96, 48, 97, 95, 71, 37, 60, 51, 38, 55, 51, 79, 84, 51, 84, 47, 56, 73, 61, 73, 72, 70, 55, 58, 49, 50, 88, 68, 87, 48, 56, 69, 54, 69, 72, 75, 62, 50, 56, 60, 59, 85, 105, 60, 94, 63, 65, 94, 78, 58, 69, 70, 49, 57, 77, 65, 75, 70, 67, 58, 77, 46, 59, 49, 75, 33, 61, 50, 55, 54, 64, 56, 54, 49, 60, 77, 49, 71, 55, 61, 58, 73, 63, 78, 83, 62, 51, 70, 69, 57, 64, 53, 72, 72, 75, 63, 53, 52, 76, 67, 82, 62, 78, 57, 61, 64, 88, 49, 115, 52, 82, 67, 68, 66, 61, 54, 94, 66, 56, 61, 44, 62, 60, 61, 80, 49, 68, 49, 63, 69, 69, 52, 55, 70, 86, 50, 70, 72, 64, 59, 73, 64, 49, 71, 65, 58, 56, 96, 74, 71, 88, 53, 64, 56, 111, 77, 87, 111, 69, 67, 58, 59, 71, 101, 53, 70, 129, 67, 55, 63, 78, 85, 57, 88, 70, 55, 86, 61, 58, 69, 77, 53, 43, 79, 58, 77, 43, 53, 49, 58, 55, 76, 55, 58, 66, 71, 65, 59, 56, 63, 74, 75, 56, 60, 66, 63, 72, 79, 61, 63, 57, 126, 95, 81, 75, 68, 81, 81, 62, 52, 62, 100, 73, 83, 66, 56, 102, 62, 40, 66, 50, 73, 62, 70, 52, 70, 36, 68, 71, 125, 50, 29, 98, 57, 58, 63, 87, 63, 69, 71, 49, 74, 65, 81, 52, 44, 61, 65, 51, 80, 46, 55, 66, 67, 78, 74, 73, 58, 65, 35, 37, 71, 63, 48, 65, 59, 74, 74, 59, 52, 50, 52, 43, 57, 87, 55, 55, 61, 67, 72, 55, 68, 57, 68, 66, 97, 54, 61, 63, 68, 64, 77, 70, 86, 68, 58, 65, 52, 94, 78, 53, 63, 54, 81, 76, 51, 74, 60, 50, 100, 72, 88, 52, 66, 51, 76, 66, 58, 39, 66, 65, 96, 62, 70, 69, 57, 51, 52, 66, 61, 79, 69, 50, 38, 63, 54, 77, 82, 86, 76, 77, 76, 66, 69, 57, 81, 64, 71, 74, 60, 63, 56, 75, 69, 56, 73, 63, 74, 72, 73, 42, 42, 87, 66, 79, 75, 69, 59, 59, 78, 52, 70, 65, 64, 63, 61, 71, 55, 91, 40, 56, 89, 46, 64, 93, 58, 63, 43, 65, 51, 77, 95, 79, 43, 54, 50, 87, 52, 49, 62, 66, 68, 55, 87, 75, 66, 71, 52, 76, 63, 75, 44, 87, 86, 58, 65, 68, 73, 51, 51, 84, 64, 56, 74, 50, 106, 68, 75, 54, 53, 64, 45, 74, 88, 53, 69, 68, 75, 120, 59, 56, 68, 52, 68, 54, 101, 69, 75, 73, 92, 54, 51, 66, 83, 55, 68, 57, 62, 58, 132, 61, 51, 41, 87, 67, 86, 65, 45, 85, 81, 80, 55, 69, 51, 61, 49, 75, 77, 42, 93, 54, 60, 73, 61, 61, 56, 58, 52, 57, 64, 67, 49, 75, 69, 51, 53, 62, 35, 72, 95, 57, 74, 60, 64, 82, 66, 61, 94, 52, 39, 57, 62, 66, 78, 93, 69, 79, 76, 72, 43, 52, 62, 53, 61, 48, 75, 59, 64, 50, 84, 64, 58, 79, 50, 79, 100, 79, 51, 90, 67, 78, 81, 60, 55, 87, 84, 41, 82, 71, 61, 70, 52, 167, 59, 91, 66, 61, 69, 64, 88, 60, 83, 62, 85, 49, 55, 58, 80, 82, 61, 62, 61, 46, 70, 64, 89, 72, 92, 55, 91, 66, 61, 105, 70, 37, 63, 74, 58, 75, 76, 57, 59, 53, 43, 47, 54, 58, 74, 68, 54, 63, 72, 61, 80, 51, 61, 66, 86, 63, 95, 97, 67, 56, 59, 64, 83, 63, 77, 80, 54, 60, 74, 66, 75, 78, 95, 73, 58, 63, 72, 46, 67, 56, 60, 82, 55, 94, 80, 62, 86, 91, 53, 53, 80, 47, 49, 52, 68, 86, 79, 61, 67, 52, 57, 62, 63, 67, 70, 83, 44, 52, 49, 93, 69, 72, 74, 60, 54, 63, 50, 44, 61, 56, 50, 64, 58, 77, 51, 49, 44, 63, 52, 59, 54, 64, 58, 73, 84, 68, 57, 71, 73, 67, 62, 49, 43, 72, 51, 63, 60, 63, 76, 57, 53, 55, 82, 61, 59, 61, 88, 85, 59, 62, 67, 84, 59, 55, 81, 48, 75, 90, 71, 72, 67, 97, 85, 63, 73, 76, 55, 62, 65, 73, 52, 58, 66, 42, 54, 57, 72, 72, 71, 61, 68, 67, 70, 46, 84, 67, 74, 68, 59, 75, 60, 51, 43, 56, 53, 43, 75, 58, 58, 75, 86, 88, 61, 63, 54, 60, 68, 65, 71, 78, 73, 80, 91, 59, 78, 91, 52, 50, 104, 81, 36, 69, 83, 61, 58, 56, 85, 62, 62, 63, 69, 87, 78, 63, 73, 63, 58, 86, 52, 54, 68, 58, 68, 51, 78, 40, 62, 77, 62, 58, 68, 65, 54, 81, 83, 47, 79, 68, 88, 60, 61, 84, 69, 47, 60, 57, 55, 81, 56, 80, 64, 50, 70, 56, 55, 62, 75, 76, 84, 44, 54, 64, 76, 72, 58, 67, 60, 89, 57, 60, 78, 65, 68, 44, 65, 57, 83, 66, 89, 56, 63, 54, 42, 66, 77, 57, 69, 74, 46, 60, 65, 50, 55, 75, 49, 62, 69, 69, 69, 88, 78, 47, 82, 79, 73, 51, 77, 59, 72, 76, 73, 62, 60, 55, 62, 79, 83, 63, 79, 52, 71, 46, 65, 54, 91, 77, 51, 67, 46, 48, 75, 53, 70, 55, 53, 46, 67, 67, 68, 60, 88, 66, 79, 77, 72, 81, 65, 53, 54, 69, 91, 79, 73, 76, 66, 57, 74, 56, 43, 68, 71, 60, 84, 61, 60, 70, 83, 82, 69, 68, 47, 69, 77, 50, 66, 74, 102, 63, 57, 92, 53, 80, 64, 49, 96, 64, 65, 76, 68, 52, 85, 64, 61, 53, 80, 70, 61, 59, 63, 62, 56, 52, 74, 52, 53, 63, 61, 58, 82, 59, 46, 58, 43, 68, 75, 69, 67, 58, 58, 57, 54, 74, 54, 76, 77, 80, 49, 70, 80, 82, 92, 55, 45, 56, 56, 48, 45, 55, 79, 81, 58, 70, 59, 90, 54, 60, 72, 73, 66, 69, 92, 80, 60, 56, 65, 59, 65, 71, 52, 60, 61, 58, 60, 74, 58, 63, 43, 68, 60, 81, 69, 48, 62, 76, 72, 66, 57, 54, 53, 102, 61, 51, 80, 46, 80, 66, 64, 61, 57, 85, 42, 81, 66, 77, 77, 76, 84, 110, 85, 50, 60, 78, 75, 44, 60, 57, 68, 76, 59, 65, 51, 91, 60, 63, 75, 64, 82, 95, 52, 42, 72, 124, 53, 47, 66, 68, 64, 57, 54, 57, 65, 70, 56, 73, 69, 52, 69, 62, 63, 63, 69, 49, 67, 62, 57, 90, 60, 85, 94, 69, 70, 77, 64, 48, 51, 57, 55, 89, 58, 91, 59, 45, 52, 51, 49, 48, 64, 72, 69, 50, 48, 58, 71, 60, 74, 51, 51, 63, 73, 73, 58, 52, 58, 52, 67, 69, 56, 51, 76, 73, 67, 62, 80, 64, 62, 58, 59, 74, 55, 73, 62, 68, 77, 69, 44, 59, 67, 125, 77, 74, 45, 87, 67, 79, 88, 53, 56, 59, 62, 58, 72, 78, 59, 72, 66, 60, 91, 58, 65, 76, 63, 64, 61, 80, 66, 51, 76, 60, 74, 67, 110, 59, 80, 59, 59, 56, 66, 76, 39, 68, 69, 69, 59, 55, 57, 52, 56, 75, 74, 74, 55, 57, 62, 62, 66, 57, 102, 85, 39, 59, 50, 75, 58, 86, 58, 47, 71, 81, 83, 57, 59, 69, 67, 78, 50, 56, 60, 61, 73, 57, 65, 49, 57, 59, 61, 64, 58, 69, 53, 55, 58, 77, 93, 65, 53, 58, 58, 64, 54, 75, 57, 73, 72, 87, 46, 68, 63, 120, 47, 78, 75, 86, 55, 55, 60, 41, 68, 53, 51, 70, 61, 50, 52, 85, 51, 69, 88, 71, 77, 88, 71, 63, 48, 112, 62, 72, 69, 63, 82, 71, 71, 81, 52, 78, 55, 52, 55, 66, 65, 66, 62, 79, 65, 62, 65, 65, 52, 74, 65, 79, 62, 57, 56, 51, 59, 54, 42, 65, 102, 76, 72, 58, 76, 82, 43, 124, 59, 51, 67, 74, 64, 77, 62, 56, 116, 75, 78, 73, 66, 75, 78, 84, 35, 71, 59, 68, 60, 54, 64, 67, 61, 65, 63, 49, 64, 70, 82, 54, 96, 74, 57, 54, 51, 68, 93, 50, 73, 57, 55, 71, 72, 85, 78, 54, 62, 64, 81, 41, 68, 76, 51, 76, 65, 59, 70, 49, 76, 53, 75, 56, 70, 69, 72, 73, 67, 58, 53, 88, 71, 75, 69, 52, 72, 50, 69, 62, 70, 62, 91, 68, 44, 81, 47, 61, 75, 74, 72, 69, 73, 54, 64, 77, 51, 59, 49, 52, 76, 68, 74, 64, 53, 52, 49, 90, 66, 57, 49, 70, 57, 71, 65, 74, 97, 82, 80, 66, 50, 95, 80, 67, 80, 67, 131, 44, 45, 58, 80, 84, 61, 70, 71, 47, 56, 74, 73, 47, 71, 55, 71, 57, 95, 59, 54, 63, 99, 74, 58, 68, 70, 82, 62, 61, 60, 82, 42, 66, 112, 49, 77, 70, 58, 80, 62, 99, 88, 84, 54, 63, 49, 80, 69, 71, 54, 64, 57, 65, 68, 62, 53, 45, 64, 50, 61, 76, 72, 64, 64, 56, 80, 48, 61, 53, 71, 62, 68, 52, 95, 69, 62, 74, 71, 57, 85, 85, 61, 59, 68, 51, 58, 68, 61, 62, 62, 68, 54, 68, 57, 71, 64, 67, 59, 64, 72, 56, 50, 62, 72, 88, 85, 57, 61, 48, 59, 81, 85, 87, 81, 74, 76, 67, 54, 81, 47, 74, 63, 69, 63, 84, 61, 87, 54, 65, 52, 68, 53, 58, 65, 77, 53, 74, 63, 62, 53, 74, 67, 75, 62, 54, 73, 55, 71, 53, 79, 87, 54, 68, 84, 38, 70, 63, 71, 71, 75, 59, 69, 70, 77, 79, 61, 83, 81, 60, 64, 65, 55, 67, 51, 55, 55, 76, 56, 75, 69, 58, 54, 85, 62, 64, 101, 69, 68, 66, 66, 64, 77, 84, 71, 67, 77, 51, 62, 56, 84, 52, 58, 54, 45, 66, 66, 64, 91, 73, 74, 82, 57, 60, 77, 59, 81, 58, 71, 58, 64, 51, 69, 68, 101, 72, 45, 62, 58, 70, 63, 61, 65, 70, 60, 86, 58, 72, 52, 68, 77, 74, 63, 63, 66, 72, 82, 70, 68, 63, 59, 64, 50, 62, 73, 54, 48, 59, 56, 71, 70, 66, 74, 70, 77, 66, 55, 68, 56, 58, 54, 40, 68, 120, 83, 60, 59, 58, 51, 64, 57, 59, 55, 69, 62, 63, 73, 55, 56, 72, 67, 66, 49, 59, 83, 63, 66, 99, 83, 61, 45, 60, 65, 57, 74, 49, 44, 50, 72, 57, 54, 73, 45, 67, 96, 68, 51, 61, 86, 69, 66, 122, 50, 66, 55, 52, 52, 65, 65, 57, 75, 55, 58, 66, 64, 67, 72, 83, 61, 54, 74, 88, 60, 70, 73, 84, 60, 72, 64, 63, 115, 66, 55, 47, 68, 67, 77, 78, 53, 52, 58, 71, 72, 70, 70, 77, 51, 51, 61, 74, 57, 66, 62, 65, 64, 71, 60, 58, 67, 49, 63, 64, 65, 56, 81, 49, 82, 55, 73, 80, 49, 64, 61, 65, 70, 76, 51, 62, 67, 79, 48, 66, 63, 52, 61, 112, 57, 48, 59, 71, 50, 84, 68, 73, 79, 63, 87, 56, 61, 52, 69, 47, 58, 58, 61, 65, 66, 56, 68, 59, 83, 74, 50, 74, 43, 79, 74, 70, 62, 46, 61, 73, 66, 59, 77, 67, 74, 94, 63, 59, 68, 45, 51, 69, 54, 57, 74, 60, 69, 52, 52, 66, 66, 49, 74, 71, 53, 64, 76, 62, 68, 70, 69, 56, 62, 59, 97, 58, 69, 78, 56, 60, 57, 84, 68, 49, 85, 59, 85, 63, 63, 82, 77, 61, 66, 67, 53, 71, 61, 59, 65, 68, 57, 83, 61, 54, 71, 66, 61, 60, 80, 65, 57, 44, 54, 55, 76, 54, 55, 67, 62, 62, 50, 74, 55, 70, 59, 41, 91, 50, 68, 73, 61, 39, 71, 69, 91, 85, 63, 64, 124, 68, 67, 65, 89, 61, 74, 37, 53, 90, 69, 85, 74, 41, 57, 69, 66, 73, 67, 61, 69, 59, 59, 59, 51, 94, 41, 85, 56, 66, 66, 54, 50, 47, 49, 63, 65, 90, 61, 72, 58, 71, 49, 72, 61, 56, 71, 92, 73, 58, 84, 52, 100, 54, 82, 64, 76, 72, 68, 73, 60, 67, 104, 60, 57, 65, 53, 56, 88, 70, 75, 59, 58, 44, 59, 51, 46, 88, 69, 57, 65, 63, 89, 61, 51, 66, 79, 67, 99, 57, 74, 56, 71, 66, 57, 84, 58, 66, 70, 77, 64, 56, 59, 79, 48, 73, 81, 79, 68, 72, 57, 72, 59, 76, 68, 55, 58, 72, 72, 55, 50, 50, 59, 66, 49, 80, 74, 50, 84, 51, 73, 72, 55, 67, 71, 49, 53, 47, 66, 71, 75, 121, 67, 74, 67, 60, 56, 55, 64, 66, 80, 65, 66, 71, 61, 67, 47, 102, 49, 47, 76, 93, 50, 79, 50, 68, 56, 56, 68, 69, 97, 73, 81, 83, 65, 95, 57, 60, 61, 71, 64, 67, 68, 65, 75, 89, 83, 55, 99, 63, 55, 57, 66, 56, 55, 87, 88, 53, 78, 68, 64, 62, 81, 83, 64, 57, 56, 68, 61, 56, 58, 73, 47, 78, 65, 64, 59, 66, 56, 52, 64, 49, 79, 60, 88, 67, 56, 96, 42, 70, 110, 49, 62, 77, 68, 66, 67, 70, 59, 62, 77, 65, 62, 52, 50, 53, 57, 64, 81, 67, 64, 71, 86, 62, 55, 66, 94, 63, 55, 56, 74, 64, 65, 93, 65, 64, 68, 60, 71, 56, 48, 66, 119, 77, 63, 83, 63, 66, 68, 59, 75, 59, 80, 76, 42, 51, 70, 65, 63, 62, 48, 61, 63, 79, 64, 70, 63, 66, 72, 65, 65, 60, 65, 101, 40, 63, 44, 54, 69, 55, 48, 53, 73, 68, 79, 70, 68, 85, 64, 56, 55, 59, 53, 59, 53, 76, 64, 62, 59, 51, 69, 82, 60, 58, 62, 73, 59, 67, 78, 64, 56, 86, 70, 64, 99, 49, 56, 71, 66, 74, 51, 59, 67, 68, 52, 60, 51, 92, 53, 81, 72, 68, 70, 72, 143, 84, 60, 55, 91, 58, 78, 48, 58, 70, 73, 60, 75, 69, 54, 61, 65, 64, 52, 87, 75, 56, 89, 85, 61, 78, 56, 70, 71, 52, 52, 64, 71, 49, 68, 62, 63, 56, 69, 48, 90, 64, 59, 77, 58, 75, 76, 48, 67, 58, 50, 57, 75, 94, 69, 48, 76, 66, 62, 75, 53, 65, 54, 77, 71, 93, 62, 52, 45, 76, 71, 54, 80, 64, 58, 58, 75, 73, 109, 48, 100, 46, 175, 64, 75, 66, 51, 45, 54, 68, 48, 73, 61, 72, 79, 36, 67, 58, 59, 61, 63, 61, 61, 68, 50, 70, 74, 57, 72, 67, 44, 66, 67, 62, 58, 67, 91, 68, 80, 71, 78, 78, 74, 62, 67, 43, 59, 55, 64, 83, 63, 73, 52, 54, 73, 84, 71, 49, 74, 65, 48, 48, 68, 96, 52, 59, 78, 61, 72, 40, 49, 56, 53, 63, 49, 60, 64, 56, 72, 50, 75, 59, 68, 54, 82, 56, 59, 63, 76, 83, 57, 45, 64, 66, 55, 67, 69, 57, 71, 59, 55, 62, 48, 68, 55, 57, 45, 59, 76, 48, 74, 53, 81, 102, 58, 104, 61, 57, 60, 59, 83, 49, 54, 57, 46, 77, 45, 56, 42, 51, 51, 47, 61, 48, 62, 57, 64, 53, 64, 70, 65, 39, 59, 87, 88, 75, 102, 53, 53, 71, 69, 80, 57, 73, 47, 69, 71, 102, 64, 42, 73, 51, 59, 83, 58, 74, 58, 98, 58, 81, 48, 52, 98, 61, 76, 71, 47, 73, 51, 62, 70, 60, 66, 76, 69, 59, 97, 55, 58, 67, 65, 54, 48, 65, 53, 78, 61, 76, 51, 81, 49, 79, 84, 64, 63, 51, 71, 77, 69, 76, 77, 84, 72, 76, 72, 79, 68, 76, 62, 92, 85, 59, 81, 73, 60, 67, 47, 71, 67, 111, 51, 64, 60, 96, 68, 79, 59, 49, 57, 86, 44, 67, 77, 54, 57, 69, 53, 72, 75, 66, 67, 53, 77, 66, 66, 82, 77, 54, 54, 74, 71, 58, 63, 53, 59, 58, 63, 62, 52, 90, 66, 62, 72, 65, 60, 62, 60, 73, 78, 44, 60, 64, 58, 66, 66, 52, 74, 44, 67, 64, 63, 79, 61, 59, 50, 69, 51, 67, 76, 76, 57, 60, 69, 55, 80, 73, 59, 57, 71, 66, 61, 91, 66, 83, 60, 65, 58, 47, 55, 73, 61, 90, 99, 79, 71, 53, 69, 75, 83, 65, 81, 79, 46, 57, 61, 71, 62, 69, 53, 56, 81, 75, 66, 62, 112, 85, 70, 81, 59, 81, 42, 77, 66, 52, 65, 86, 58, 45, 126, 58, 55, 58, 52, 45, 41, 62, 69, 92, 58, 81, 66, 82, 63, 71, 59, 64, 66, 61, 72, 60, 64, 53, 48, 90, 59, 71, 74, 49, 60, 81, 79, 53, 57, 101, 49, 73, 75, 63, 72, 69, 64, 67, 52, 72, 100, 73, 105, 62, 66, 75, 55, 53, 93, 58, 69, 41, 41, 61, 58, 79, 73, 73, 64, 50, 52, 69, 60, 80, 66, 57, 53, 71, 62, 62, 79, 35, 82, 56, 61, 63, 61, 59, 76, 73, 65, 68, 46, 71, 82, 74, 77, 57, 64, 72, 59, 51, 94, 63, 70, 58, 86, 89, 84, 59, 73, 63, 57, 59, 70, 64, 74, 59, 68, 50, 60, 44, 59, 68, 70, 61, 68, 54, 67, 46, 89, 68, 54, 70, 70, 48, 46, 59, 61, 71, 67, 79, 72, 64, 58, 54, 73, 105, 69, 65, 60, 61, 65, 58, 56, 59, 69, 57, 53, 59, 37, 55, 73, 56, 77, 118, 66, 53, 51, 63, 77, 45, 54, 71, 83, 60, 70, 49, 71, 105, 58, 69, 84, 112, 75, 80, 77, 70, 74, 55, 75, 66, 58, 72, 60, 66, 56, 60, 58, 73, 63, 60, 56, 79, 62, 58, 59, 57, 69, 46, 65, 73, 81, 46, 55, 50, 46, 92, 63, 57, 60, 54, 71, 50, 49, 62, 74, 76, 69, 70, 77, 57, 52, 59, 53, 66, 50, 62, 69, 62, 65, 58, 67, 68, 55, 42, 85, 51, 87, 65, 65, 49, 61, 68, 85, 64, 78, 71, 74, 59, 58, 49, 34, 65, 58, 46, 71, 71, 58, 69, 100, 40, 71, 79, 47, 82, 71, 91, 95, 51, 66, 54, 80, 68, 43, 97, 58, 50, 56, 91, 57, 51, 61, 83, 48, 50, 103, 64, 71, 58, 51, 79, 68, 85, 59, 56, 64, 67, 58, 71, 65, 78, 75, 47, 66, 48, 62, 77, 100, 49, 56, 57, 79, 52, 72, 64, 87, 96, 68, 67, 57, 58, 70, 60, 66, 58, 73, 69, 59, 49, 69, 55, 59, 54, 71, 56, 53, 78, 56, 56, 63, 60, 101, 53, 67, 67, 79, 48, 47, 57, 67, 62, 60, 68, 64, 76, 99, 62, 49, 70, 67, 63, 49, 97, 53, 76, 69, 72, 77, 56, 57, 55, 67, 59, 76, 64, 60, 49, 61, 87, 72, 76, 112, 62, 76, 63, 52, 72, 69, 98, 72, 85, 64, 59, 59, 72, 49, 79, 57, 62, 56, 71, 71, 60, 57, 71, 60, 54, 48, 52, 86, 60, 63, 66, 67, 64, 74, 64, 70, 74, 55, 68, 67, 55, 57, 45, 66, 78, 67, 54, 46, 49, 63, 46, 81, 70, 55, 63, 55, 80, 58, 84, 61, 81, 91, 57, 83, 72, 61, 71, 64, 78, 67, 60, 85, 67, 64, 74, 50, 50, 54, 63, 77, 67, 67, 69, 46, 50, 68, 67, 56, 72, 42, 70, 60, 69, 74, 65, 58, 72, 75, 61, 67, 44, 79, 58, 66, 66, 85, 64, 50, 66, 72, 52, 59, 59, 62, 60, 88, 73, 77, 73, 60, 99, 63, 95, 57, 75, 70, 55, 58, 61, 31, 41, 67, 49, 65, 56, 65, 52, 80, 71, 59, 66, 39, 59, 78, 43, 73, 106, 53, 68, 61, 74, 60, 81, 66, 74, 61, 76, 63, 70, 57, 55, 58, 80, 60, 60, 57, 69, 48, 68, 47, 49, 65, 66, 76, 55, 60, 76, 140, 83, 66, 63, 61, 65, 60, 62, 64, 69, 65, 79, 64, 76, 69, 62, 59, 49, 72, 48, 66, 93, 58, 94, 71, 59, 69, 82, 51, 64, 57, 56, 65, 63, 50, 68, 71, 63, 70, 55, 47, 64, 62, 63, 104, 63, 56, 72, 71, 56, 55, 67, 64, 53, 59, 49, 54, 48, 67, 91, 73, 48, 72, 68, 68, 94, 53, 55, 77, 64, 49, 64, 65, 40, 56, 76, 62, 76, 69, 61, 58, 65, 34, 57, 82, 87, 75, 51, 71, 96, 79, 72, 55, 57, 55, 106, 76, 81, 53, 83, 73, 75, 61, 64, 72, 59, 45, 62, 51, 62, 63, 87, 59, 59, 69, 46, 72, 89, 87, 63, 66, 68, 60, 50, 47, 72, 79, 55, 60, 55, 59, 61, 103, 74, 70, 66, 50, 62, 91, 92, 84, 45, 43, 80, 55, 69, 56, 55, 37, 111, 75, 52, 85, 75, 93, 75, 53, 64, 39, 75, 59, 59, 66, 76, 119, 52, 58, 76, 52, 78, 60, 58, 73, 55, 62, 54, 72, 110, 66, 91, 75, 52, 52, 71, 65, 64, 49, 73, 64, 77, 61, 76, 72, 66, 80, 60, 53, 52, 83, 68, 55, 70, 42, 62, 75, 71, 53, 72, 66, 86, 71, 48, 79, 48, 59, 75, 68, 77, 81, 49, 61, 53, 72, 82, 59, 63, 85, 64, 67, 62, 68, 61, 79, 69, 80, 69, 68, 76, 50, 66, 69, 51, 57, 79, 75, 73, 82, 57, 51, 67, 63, 40, 65, 84, 60, 68, 52, 95, 60, 83, 69, 56, 81, 57, 56, 40, 70, 63, 48, 67, 70, 65, 63, 57, 37, 66, 62, 75, 70, 87, 60, 53, 68, 66, 60, 75, 69, 96, 73, 59, 67, 64, 64, 70, 89, 65, 73, 53, 64, 65, 60, 74, 68, 81, 58, 75, 58, 66, 64, 91, 101, 81, 60, 69, 67, 72, 67, 61, 70, 67, 49, 71, 91, 89, 63, 73, 39, 61, 46, 69, 67, 74, 164, 98, 61, 63, 62, 73, 75, 60, 71, 72, 52, 66, 52, 80, 61, 60, 78, 75, 51, 63, 77, 62, 84, 57, 90, 70, 47, 60, 65, 74, 57, 61, 50, 75, 62, 30, 90, 48, 81, 56, 75, 57, 80, 77, 62, 57, 56, 62, 82, 72, 58, 68, 38, 59, 54, 85, 48, 74, 66, 45, 54, 77, 65, 55, 79, 75, 53, 58, 59, 72, 99, 75, 72, 61, 53, 74, 59, 53, 62, 55, 59, 67, 61, 64, 101, 61, 54, 92, 64, 68, 61, 65, 68, 112, 63, 78, 52, 56, 59, 93, 49, 63, 60, 58, 62, 54, 61, 68, 72, 138, 62, 87, 54, 57, 55, 85, 49, 61, 82, 77, 64, 68, 56, 65, 58, 56, 66, 64, 79, 93, 68, 55, 52, 68, 40, 59, 66, 54, 59, 57, 79, 64, 52, 51, 49, 74, 75, 110, 68, 67, 67, 73, 63, 62, 64, 55, 78, 70, 69, 55, 62, 77, 57, 59, 59, 58, 68, 43, 55, 69, 79, 80, 52, 54, 78, 66, 68, 52, 71, 55, 60, 66, 55, 36, 64, 85, 70, 52, 57, 63, 149, 61, 52, 66, 52, 65, 50, 56, 72, 56, 76, 61, 68, 58, 98, 66, 60, 63, 70, 75, 89, 85, 62, 80, 65, 86, 65, 65, 40, 48, 84, 72, 55, 59, 68, 98, 56, 59, 62, 65, 78, 70, 52, 56, 63, 55, 82, 61, 60, 54, 77, 98, 69, 53, 72, 59, 69, 59, 70, 65, 72, 74, 71, 46, 47, 57, 67, 39, 66, 100, 78, 41, 65, 93, 77, 67, 58, 55, 93, 59, 55, 55, 65, 77, 95, 64, 68, 57, 66, 79, 73, 60, 53, 57, 64, 73, 75, 56, 42, 71, 79, 63, 73, 43, 67, 81, 66, 65, 69, 83, 88, 79, 60, 78, 90, 70, 73, 63, 50, 69, 59, 52, 73, 64, 68, 84, 62, 74, 53, 71, 82, 68, 54, 68, 91, 70, 49, 87, 62, 59, 61, 90, 47, 73, 74, 78, 60, 59, 69, 59, 58, 56, 58, 53, 75, 119, 68, 64, 96, 59, 49, 51, 57, 66, 55, 72, 73, 41, 72, 74, 60, 53, 84, 59, 56, 62, 74, 53, 61, 66, 101, 80, 73, 64, 62, 77, 58, 50, 63, 69, 63, 46, 100, 83, 69, 48, 76, 66, 60, 54, 43, 71, 75, 53, 55, 83, 51, 77, 63, 55, 55, 74, 59, 67, 82, 63, 63, 71, 64, 72, 51, 84, 54, 64, 55, 81, 90, 57, 68, 71, 73, 70, 102, 47, 52, 94, 56, 67, 48, 47, 57, 55, 50, 81, 59, 64, 53, 50, 71, 69, 70, 60, 60, 51, 67, 52, 84, 55, 51, 50, 62, 57, 63, 57, 60, 110, 48, 58, 73, 85, 61, 68, 59, 55, 68, 46, 79, 98, 99, 54, 74, 83, 68, 66, 49, 67, 40, 61, 40, 70, 65, 66, 58, 63, 55, 90, 64, 72, 73, 48, 64, 43, 60, 37, 68, 79, 50, 69, 64, 58, 66, 64, 49, 62, 71, 76, 72, 77, 52, 92, 49, 51, 79, 57, 56, 68, 64, 63, 74, 114, 54, 67, 60, 78, 76, 55, 80, 56, 46, 45, 61, 63, 85, 60, 83, 70, 65, 72, 62, 58, 53, 84, 60, 85, 74, 65, 73, 50, 92, 69, 58, 63, 84, 56, 62, 70, 57, 48, 74, 77, 70, 59, 77, 69, 70, 72, 55, 51, 71, 50, 49, 46, 73, 73, 53, 48, 61, 74, 73, 62, 64, 67, 71, 54, 72, 70, 82, 53, 69, 65, 46, 81, 53, 50, 49, 83, 59, 64, 44, 64, 73, 54, 62, 83, 64, 82, 71, 67, 55, 57, 73, 99, 62, 46, 78, 66, 82, 67, 65, 42, 57, 85, 60, 81, 78, 63, 84, 62, 64, 69, 40, 68, 76, 65, 61, 62, 69, 51, 63, 59, 71, 67, 52, 84, 83, 66, 67, 59, 85, 63, 89, 64, 52, 84, 87, 53, 68, 96, 60, 79, 61, 63, 61, 92, 67, 43, 65, 54, 52, 96, 68, 53, 54, 56, 60, 66, 84, 68, 50, 69, 67, 77, 47, 64, 63, 86, 69, 56, 121, 51, 63, 78, 61, 41, 56, 59, 82, 61, 55, 71, 71, 63, 88, 79, 71, 68, 63, 120, 67, 55, 65, 52, 66, 78, 77, 57, 66, 78, 69, 76, 55, 50, 83, 69, 68, 58, 61, 61, 64, 69, 53, 70, 73, 72, 62, 64, 64, 72, 60, 39, 58, 54, 59, 39, 56, 47, 58, 62, 67, 65, 74, 56, 76, 76, 64, 67, 58, 80, 55, 72, 78, 84, 59, 75, 55, 71, 67, 69, 52, 64, 66, 74, 53, 26, 88, 53, 66, 61, 51, 54, 65, 81, 63, 79, 101, 57, 61, 75, 97, 84, 45, 64, 69, 64, 60, 73, 51, 71, 83, 54, 68, 52, 68, 62, 49, 96, 121, 67, 60, 60, 71, 61, 56, 52, 62, 62, 65, 54, 56, 69, 52, 47, 54, 61, 52, 94, 66, 72, 53, 64, 39, 51, 59, 69, 104, 79, 62, 82, 68, 62, 49, 55, 64, 69, 58, 79, 40, 63, 74, 76, 50, 57, 80, 80, 71, 69, 55, 99, 63, 68, 80, 66, 54, 62, 55, 72, 71, 62, 64, 77, 49, 52, 86, 85, 51, 66, 79, 67, 53, 50, 75, 43, 67, 70, 67, 67, 69, 70, 51, 62, 103, 57, 78, 51, 71, 75, 61, 89, 69, 69, 63, 78, 68, 46, 47, 63, 70, 52, 80, 83, 62, 49, 59, 65, 68, 60, 55, 84, 87, 52, 55, 58, 64, 74, 73, 62, 124, 67, 65, 75, 89, 72, 82, 80, 61, 77, 59, 56, 55, 73, 65, 103, 87, 75, 59, 63, 79, 73, 78, 68, 59, 75, 63, 57, 53, 58, 54, 50, 71, 68, 84, 96, 67, 53, 51, 67, 57, 72, 57, 58, 53, 57, 57, 65, 71, 84, 69, 98, 55, 48, 83, 100, 66, 55, 57, 101, 49, 78, 82, 72, 57, 71, 48, 55, 60, 63, 106, 56, 65, 57, 55, 71, 61, 49, 73, 68, 83, 56, 72, 44, 53, 55, 59, 60, 80, 66, 58, 80, 69, 63, 120, 63, 87, 51, 79, 55, 58, 52, 52, 67, 63, 72, 57, 72, 64, 60, 77, 59, 50, 79, 78, 57, 61, 56, 62, 70, 50, 53, 69, 63, 47, 73, 56, 49, 53, 48, 68, 70, 73, 64, 80, 72, 50, 57, 79, 54, 68, 64, 49, 70, 75, 57, 56, 71, 56, 80, 76, 102, 43, 39, 60, 75, 67, 73, 51, 117, 65, 91, 54, 91, 59, 66, 69, 62, 73, 41, 61, 69, 84, 74, 77, 99, 81, 76, 76, 55, 89, 82, 71, 64, 71, 71, 61, 46, 57, 76, 94, 83, 49, 73, 68, 67, 52, 46, 89, 72, 65, 85, 66, 51, 79, 53, 65, 65, 61, 83, 70, 58, 62, 58, 62, 70, 77, 68, 88, 54, 76, 67, 86, 62, 69, 79, 98, 56, 86, 55, 76, 72, 58, 68, 94, 40, 67, 70, 47, 55, 87, 96, 64, 68, 49, 52, 70, 64, 45, 54, 69, 93, 57, 90, 66, 80, 77, 55, 46, 52, 55, 97, 62, 66, 54, 45, 65, 51, 98, 49, 62, 85, 53, 64, 70, 83, 59, 72, 94, 58, 59, 69, 74, 90, 62, 74, 63, 69, 78, 61, 59, 54, 62, 55, 56, 76, 83, 53, 70, 56, 49, 57, 83, 83, 53, 55, 65, 64, 41, 62, 65, 69, 63, 72, 73, 62, 55, 50, 72, 62, 82, 60, 65, 49, 67, 67, 56, 67, 70, 46, 55, 69, 54, 79, 76, 78, 58, 49, 64, 82, 59, 61, 63, 40, 81, 49, 42, 65, 75, 57, 61, 60, 66, 69, 59, 73, 51, 75, 64, 70, 77, 55, 50, 56, 82, 78, 76, 66, 52, 78, 58, 89, 45, 50, 69, 62, 89, 48, 47, 76, 107, 52, 70, 75, 74, 79, 61, 60, 54, 45, 68, 58, 90, 54, 68, 63, 88, 53, 78, 66, 73, 51, 95, 69, 69, 65, 61, 68, 42, 49, 58, 80, 59, 78, 67, 75, 81, 67, 53, 56, 71, 68, 77, 64, 84, 58, 66, 74, 51, 56, 65, 99, 59, 65, 54, 61, 54, 77, 51, 67, 58, 70, 67, 58, 80, 72, 71, 70, 54, 77, 77, 72, 60, 71, 51, 50, 54, 72, 63, 65, 77, 75, 81, 101, 78, 89, 48, 84, 138, 67, 54, 67, 101, 73, 56, 56, 49, 58, 61, 73, 71, 72, 80, 74, 63, 47, 61, 69, 73, 55, 68, 66, 75, 37, 52, 107, 76, 63, 64, 66, 72, 85, 72, 62, 64, 66, 60, 78, 73, 64, 59, 54, 51, 68, 56, 59, 56, 83, 61, 68, 50, 59, 55, 76, 97, 60, 73, 74, 64, 44, 95, 90, 71, 59, 100, 50, 65, 66, 60, 46, 64, 62, 82, 58, 102, 64, 65, 66, 108, 71, 66, 61, 60, 70, 82, 73, 48, 60, 63, 100, 52, 76, 50, 62, 74, 66, 74, 57, 88, 93, 65, 64, 57, 76, 72, 55, 48, 74, 52, 62, 55, 73, 49, 53, 64, 81, 76, 54, 78, 77, 64, 83, 51, 75, 60, 63, 66, 53, 60, 89, 74, 95, 74, 51, 46, 63, 71, 47, 59, 59, 54, 87, 77, 52, 57, 68, 71, 73, 53, 53, 60, 66, 72, 53, 46, 51, 53, 55, 49, 79, 71, 59, 56, 73, 54, 65, 56, 56, 102, 69, 86, 45, 72, 107, 52, 58, 60, 79, 64, 86, 74, 58, 73, 69, 65, 63, 70, 63, 71, 58, 52, 61, 56, 50, 63, 73, 70, 67, 53, 53, 47, 71, 62, 74, 70, 74, 65, 38, 59, 58, 84, 70, 64, 43, 70, 53, 49, 61, 80, 85, 52, 51, 64, 79, 82, 64, 65, 46, 90, 53, 38, 78, 59, 71, 55, 57, 49, 60, 72, 64, 64, 102, 67, 69, 54, 81, 44, 76, 54, 67, 70, 53, 79, 72, 63, 57, 59, 61, 79, 91, 66, 72, 91, 70, 70, 113, 63, 75, 55, 54, 64, 67, 58, 86, 62, 46, 60, 79, 40, 68, 53, 68, 63, 46, 93, 62, 62, 60, 90, 44, 53, 52, 56, 38, 70, 52, 58, 64, 56, 61, 82, 67, 91, 70, 67, 64, 76, 56, 58, 76, 69, 67, 84, 69, 62, 48, 49, 55, 80, 72, 60, 60, 69, 52, 53, 72, 66, 50, 57, 47, 72, 62, 69, 54, 80, 60, 56, 64, 52, 86, 67, 52, 62, 63, 97, 71, 70, 76, 59, 51, 83, 65, 67, 61, 58, 73, 60, 72, 71, 78, 71, 64, 56, 62, 63, 57, 53, 99, 58, 75, 66, 72, 71, 57, 46, 64, 73, 73, 71, 59, 73, 82, 66, 84, 72, 67, 46, 63, 56, 56, 56, 80, 52, 80, 66, 56, 70, 59, 67, 65, 47, 47, 41, 51, 60, 82, 74, 75, 89, 61, 64, 102, 63, 106, 59, 56, 42, 63, 55, 61, 61, 63, 50, 47, 61, 58, 51, 59, 59, 58, 90, 58, 75, 61, 51, 63, 92, 76, 87, 60, 60, 87, 92, 67, 64, 59, 55, 50, 52, 69, 51, 90, 77, 75, 69, 55, 104, 53, 67, 73, 60, 82, 61, 58, 76, 58, 58, 57, 65, 47, 80, 51, 69, 69, 44, 93, 53, 46, 70, 77, 80, 75, 90, 75, 80, 67, 47, 57, 54, 57, 72, 74, 67, 71, 78, 58, 57, 59, 45, 48, 55, 81, 77, 90, 57, 62, 54, 60, 77, 47, 65, 69, 70, 80, 91, 77, 55, 73, 57, 54, 56, 46, 95, 58, 57, 59, 59, 64, 66, 62, 60, 78, 73, 79, 63, 82, 81, 61, 50, 56, 75, 68, 75, 62, 59, 74, 62, 79, 47, 58, 70, 64, 69, 66, 58, 54, 40, 71, 64, 61, 71, 50, 92, 74, 52, 74, 108, 78, 63, 51, 66, 60, 83, 93, 96, 70, 67, 67, 71, 77, 57, 70, 70, 50, 65, 50, 55, 74, 71, 68, 68, 54, 66, 67, 103, 71, 55, 63, 71, 90, 41, 68, 84, 115, 76, 73, 71, 67, 65, 74, 77, 74, 53, 57, 39, 74, 67, 55, 67, 75, 61, 53, 74, 69, 44, 58, 99, 50, 64, 76, 58, 66, 45, 69, 49, 63, 56, 54, 83, 81, 87, 58, 84, 62, 81, 72, 75, 73, 87, 54, 52, 78, 102, 66, 84, 76, 72, 62, 48, 69, 56, 80, 66, 64, 59, 66, 67, 72, 50, 83, 72, 67, 68, 43, 61, 67, 51, 67, 60, 58, 54, 74, 80, 56, 55, 61, 98, 71, 52, 44, 65, 71, 50, 55, 70, 57, 44, 59, 83, 55, 53, 56, 64, 76, 55, 98, 61, 111, 66, 49, 52, 74, 65, 55, 64, 78, 56, 79, 80, 48, 54, 61, 64, 67, 62, 57, 76, 53, 65, 54, 52, 89, 57, 75, 59, 68, 77, 59, 79, 47, 65, 51, 58, 77, 44, 62, 93, 53, 74, 47, 47, 42, 57, 58, 72, 64, 41, 81, 76, 52, 67, 48, 75, 95, 47, 62, 51, 71, 55, 52, 80, 56, 66, 54, 59, 70, 81, 81, 99, 111, 79, 70, 66, 68, 71, 83, 55, 70, 57, 68, 50, 82, 55, 54, 57, 59, 109, 75, 59, 55, 67, 68, 65, 78, 50, 54, 55, 54, 68, 57, 81, 92, 65, 65, 39, 69, 87, 74, 53, 66, 51, 77, 70, 47, 81, 43, 59, 71, 55, 53, 64, 65, 64, 65, 55, 37, 80, 67, 52, 80, 89, 47, 51, 76, 60, 83, 68, 63, 67, 52, 49, 68, 96, 56, 57, 63, 73, 82, 59, 71, 42, 68, 66, 58, 60, 55, 59, 70, 80, 71, 64, 63, 89, 78, 67, 86, 76, 58, 57, 51, 70, 59, 122, 70, 87, 73, 59, 50, 80, 68, 74, 59, 52, 52, 55, 62, 69, 67, 77, 76, 67, 67, 71, 71, 62, 64, 58, 58, 70, 61, 46, 73, 50, 71, 130, 76, 81, 77, 80, 52, 64, 100, 71, 72, 63, 58, 79, 60, 62, 69, 61, 69, 65, 74, 73, 58, 75, 61, 44, 56, 72, 66, 80, 43, 67, 59, 79, 106, 69, 73, 59, 76, 36, 52, 73, 45, 68, 70, 76, 66, 65, 78, 80, 66, 62, 64, 61, 59, 63, 43, 81, 57, 58, 49, 55, 68, 66, 51, 71, 58, 70, 64, 61, 63, 42, 62, 64, 54, 55, 51, 72, 56, 69, 55, 54, 64, 47, 72, 51, 61, 45, 75, 60, 77, 74, 62, 76, 64, 66, 72, 48, 53, 43, 84, 60, 74, 59, 75, 51, 63, 62, 74, 79, 60, 68, 43, 80, 69, 58, 83, 81, 44, 70, 87, 49, 71, 73, 64, 67, 55, 69, 70, 68, 51, 48, 65, 67, 82, 62, 48, 71, 106, 74, 65, 61, 53, 89, 62, 67, 71, 70, 46, 57, 53, 54, 64, 53, 99, 72, 100, 67, 58, 94, 54, 54, 49, 75, 51, 87, 72, 67, 77, 52, 58, 57, 46, 79, 108, 56, 63, 71, 56, 78, 68, 59, 49, 80, 66, 60, 63, 103, 54, 58, 65, 39, 53, 77, 48, 67, 55, 60, 71, 53, 66, 46, 73, 75, 63, 52, 73, 79, 101, 55, 73, 61, 65, 83, 77, 55, 84, 63, 47, 59, 52, 59, 61, 76, 58, 91, 60, 56, 69, 69, 56, 82, 68, 48, 50, 77, 53, 65, 69, 91, 70, 76, 65, 78, 84, 55, 62, 65, 64, 53, 72, 74, 49, 67, 64, 55, 56, 55, 53, 63, 71, 47, 39, 64, 143, 69, 63, 81, 66, 80, 85, 54, 83, 62, 71, 58, 69, 64, 66, 72, 56, 73, 81, 74, 59, 81, 51, 75, 50, 84, 88, 77, 64, 72, 89, 83, 73, 56, 58, 73, 77, 97, 77, 64, 67, 58, 69, 46, 74, 72, 94, 72, 56, 53, 59, 68, 63, 74, 87, 48, 65, 58, 57, 52, 66, 70, 57, 69, 65, 71, 89, 57, 63, 117, 73, 71, 72, 55, 61, 63, 61, 71, 80, 81, 76, 65, 89, 61, 64, 62, 83, 46, 77, 65, 63, 66, 69, 74, 51, 61, 52, 57, 66, 56, 59, 70, 66, 55, 63, 61, 65, 72, 48, 53, 63, 55, 63, 61, 70, 51, 51, 64, 84, 76, 75, 67, 70, 82, 73, 48, 70, 67, 41, 54, 65, 52, 75, 51, 66, 45, 51, 79, 72, 75, 94, 54, 71, 61, 58, 71, 57, 78, 57, 69, 75, 60, 65, 56, 61, 49, 55, 74, 57, 195, 50, 73, 56, 48, 68, 69, 61, 94, 58, 69, 64, 72, 81, 63, 53, 74, 54, 66, 57, 46, 98, 63, 60, 84, 70, 67, 49, 59, 69, 84, 90, 81, 79, 61, 66, 55, 79, 71, 48, 63, 68, 53, 63, 50, 66, 58, 76, 46, 59, 67, 62, 47, 75, 79, 65, 62, 64, 56, 53, 70, 70, 71, 75, 54, 56, 80, 56, 47, 69, 60, 56, 66, 55, 76, 63, 63, 60, 53, 70, 69, 60, 59, 53, 40, 60, 51, 71, 51, 78, 80, 48, 77, 122, 84, 70, 63, 61, 54, 67, 65, 67, 49, 122, 72, 76, 72, 83, 68, 69, 57, 69, 82, 63, 86, 72, 52, 65, 61, 88, 75, 44, 52, 53, 56, 76, 87, 74, 67, 45, 83, 82, 60, 89, 53, 86, 63, 62, 94, 59, 71, 71, 74, 44, 55, 56, 71, 77, 80, 60, 118, 81, 60, 68, 74, 61, 67, 78, 59, 71, 82, 81, 73, 58, 53, 95, 61, 67, 70, 70, 73, 53, 82, 74, 51, 97, 90, 68, 56, 52, 80, 80, 71, 63, 56, 62, 49, 78, 75, 88, 78, 63, 54, 74, 69, 60, 57, 74, 53, 63, 96, 73, 60, 74, 81, 67, 64, 39, 82, 44, 54, 62, 70, 73, 69, 80, 53, 80, 43, 77, 60, 37, 89, 47, 63, 52, 68, 52, 61, 67, 70, 58, 52, 65, 74, 58, 50, 50, 50, 52, 60, 67, 95, 70, 72, 52, 63, 78, 58, 49, 59, 44, 55, 58, 44, 64, 57, 60, 85, 66, 41, 49, 50, 67, 57, 67, 66, 61, 76, 53, 44, 68, 49, 66, 87, 47, 54, 60, 84, 54, 55, 94, 64, 61, 43, 73, 76, 81, 50, 34, 78, 77, 166, 42, 84, 87, 85, 31, 56, 41, 64, 77, 61, 50, 59, 46, 74, 66, 87, 69, 59, 98, 81, 70, 83, 81, 78, 49, 61, 48, 47, 56, 66, 70, 68, 52, 73, 50, 72, 53, 70, 55, 59, 58, 57, 53, 62, 53, 82, 54, 71, 78, 72, 52, 69, 49, 65, 62, 94, 95, 73, 72, 43, 66, 72, 48, 53, 57, 77, 78, 64, 89, 41, 65, 77, 64, 65, 42, 126, 54, 72, 95, 72, 65, 58, 51, 56, 53, 70, 59, 70, 73, 63, 51, 60, 58, 68, 74, 62, 69, 64, 76, 68, 72, 46, 69, 82, 62, 58, 58, 76, 124, 49, 101, 57, 66, 58, 73, 83, 69, 84, 84, 47, 62, 56, 46, 64, 70, 62, 73, 56, 63, 66, 44, 69, 54, 57, 59, 69, 65, 90, 76, 61, 54, 62, 56, 73, 55, 68, 57, 76, 62, 67, 65, 70, 65, 63, 66, 58, 62, 89, 86, 62, 57, 56, 37, 73, 75, 48, 47, 90, 61, 73, 67, 51, 48, 52, 50, 100, 63, 59, 65, 47, 69, 121, 57, 73, 75, 91, 60, 73, 33, 49, 73, 86, 52, 81, 43, 55, 54, 75, 73, 41, 83, 61, 65, 47, 81, 47, 68, 63, 55, 60, 45, 69, 66, 57, 53, 83, 52, 70, 58, 66, 111, 72, 66, 82, 65, 56, 62, 73, 71, 66, 88, 58, 91, 79, 54, 110, 49, 85, 54, 109, 73, 89, 54, 33, 58, 41, 46, 76, 45, 67, 52, 51, 84, 103, 81, 70, 39, 47, 67, 78, 62, 67, 77, 75, 67, 78, 68, 79, 131, 50, 81, 67, 76, 84, 59, 120, 49, 50, 75, 37, 63, 67, 50, 87, 58, 33, 79, 58, 61, 98, 69, 56, 44, 53, 70, 64, 66, 64, 63, 65, 64, 40, 71, 54, 62, 43, 48, 88, 78, 67, 75, 91, 66, 77, 94, 58, 50, 77, 95, 75, 72, 51, 78, 64, 98, 59, 53, 78, 117, 42, 78, 98, 59, 54, 56, 68, 55, 53, 71, 96, 63, 51, 50, 66, 60, 68, 59, 60, 34, 66, 77, 58, 101, 71, 79, 54, 49, 83, 72, 60, 34, 58, 50, 60, 49, 69, 56, 84, 72, 51, 88, 71, 47, 76, 63, 102, 84, 65, 57, 108, 67, 46, 59, 35, 68, 76, 78, 73, 69, 81, 83, 58, 58, 67, 65, 72, 55, 83, 57, 85, 100, 47, 51, 70, 69, 89, 102, 85, 67, 58, 56, 70, 77, 56, 97, 62, 24, 64, 62, 76, 38, 59, 65, 100, 52, 67, 82, 59, 70, 39, 75, 56, 74, 73, 67, 70, 75, 58, 88, 50, 59, 108, 67, 51, 52, 38, 107, 71, 57, 68, 46, 75, 65, 95, 49, 70, 88, 59, 69, 76, 64, 58, 54, 57, 62, 78, 44, 70, 84, 81, 79, 96, 67, 77, 56, 69, 55, 54, 71, 82, 89, 70, 71, 36, 38, 58, 62, 81, 76, 62, 61, 34, 53, 77, 60, 47, 75, 64, 60, 78, 79, 76, 102, 69, 66, 89, 51, 78, 73, 78, 92, 85, 79, 103, 60, 56, 71, 100, 87, 59, 51, 64, 80, 49, 57, 74, 57, 58, 57, 62, 82, 61, 51, 63, 60, 72, 41, 57, 82, 63, 63, 83, 86, 85, 50, 58, 61, 69, 71, 74, 84, 87, 56, 74, 69, 78, 63, 61, 74, 48, 112, 66, 65, 98, 60, 73, 62, 85, 74, 56, 50, 45, 60, 56, 75, 72, 68, 69, 85, 56, 53, 55, 61, 66, 39, 88, 72, 61, 76, 90, 82, 69, 69, 47, 66, 42, 57, 80, 63, 54, 61, 59, 87, 134, 71, 63, 73, 60, 81, 50, 82, 75, 34, 58, 38, 85, 65, 83, 85, 95, 72, 72, 55, 62, 64, 64, 117, 64, 102, 52, 74, 51, 61, 52, 66, 72, 63, 71, 84, 63, 67, 78, 46, 142, 45, 69, 57, 41, 59, 59, 55, 59, 73, 42, 72, 62, 71, 79, 76, 86, 107, 90, 75, 67, 50, 65, 51, 49, 40, 63, 63, 57, 56, 70, 66, 59, 69, 50, 45, 58, 62, 67, 55, 75, 58, 64, 73, 58, 88, 51, 72, 80, 59, 69, 63, 62, 45, 34, 60, 51, 91, 71, 74, 64, 43, 71, 67, 69, 63, 122, 42, 77, 59, 62, 69, 72, 66, 63, 72, 68, 60, 102, 73, 62, 76, 78, 49, 52, 51, 47, 121, 63, 65, 44, 54, 57, 59, 62, 68, 65, 69, 55, 100, 73, 67, 55, 44, 62, 45, 60, 78, 82, 76, 148, 89, 63, 69, 48, 53, 65, 74, 82, 53, 66, 70, 54, 64, 81, 83, 100, 41, 59, 61, 53, 77, 69, 66, 80, 85, 49, 47, 88, 54, 55, 77, 59, 75, 46, 45, 64, 61, 90, 55, 77, 76, 81, 67, 44, 51, 63, 67, 66, 45, 40, 86, 53, 52, 77, 54, 62, 61, 112, 78, 92, 73, 48, 63, 61, 43, 74, 63, 116, 75, 44, 61, 67, 39, 62, 65, 73, 75, 53, 76, 72, 72, 66, 48, 59, 78, 62, 90, 70, 58, 59, 63, 52, 61, 58, 47, 96, 67, 59, 59, 71, 52, 43, 55, 54, 76, 91, 64, 78, 63, 80, 77, 50, 53, 69, 46, 90, 65, 67, 97, 67, 58, 51, 63, 62, 50, 57, 40, 53, 59, 84, 75, 59, 69, 55, 58, 85, 91, 56, 59, 65, 83, 53, 50, 79, 48, 62, 40, 76, 74, 71, 92, 62, 73, 78, 92, 79, 63, 87, 83, 64, 69, 54, 40, 46, 82, 96, 54, 43, 72, 66, 55, 69, 56, 75, 68, 54, 71, 75, 100, 83, 58, 43, 130, 57, 57, 44, 67, 47, 43, 65, 59, 49, 55, 104, 67, 62, 49, 78, 100, 76, 75, 87, 63, 53, 66, 63, 60, 53, 69, 51, 78, 90, 68, 65, 69, 72, 72, 66, 43, 52, 50, 65, 88, 78, 61, 64, 65, 72, 71, 71, 56, 48, 67, 77, 56, 64, 63, 64, 57, 79, 78, 91, 51, 62, 67, 58, 97, 65, 62, 68, 50, 62, 51, 58, 73, 54, 82, 58, 48, 66, 53, 114, 83, 64, 78, 69, 88, 79, 56, 61, 82, 82, 67, 70, 65, 57, 85, 77, 65, 103, 57, 62, 78, 61, 62, 60, 85, 56, 66, 63, 72, 66, 96, 59, 58, 53, 45, 49, 70, 65, 59, 44, 54, 60, 62, 63, 73, 58, 90, 58, 72, 54, 78, 66, 59, 62, 60, 81, 72, 76, 40, 57, 64, 55, 60, 71, 60, 68, 53, 63, 48, 66, 59, 71, 59, 85, 73, 61, 60, 66, 78, 65, 66, 69, 71, 56, 70, 54, 51, 42, 51, 63, 67, 82, 60, 40, 78, 62, 55, 56, 67, 84, 61, 71, 67, 75, 74, 78, 64, 63, 66, 53, 59, 63, 71, 79, 79, 64, 58, 54, 57, 122, 50, 64, 58, 57, 37, 55, 57, 58, 77, 60, 95, 71, 51, 72, 79, 57, 60, 71, 66, 79, 56, 65, 77, 65, 62, 60, 122, 61, 70, 66, 62, 68, 60, 65, 78, 53, 66, 65, 72, 49, 58, 60, 53, 74, 54, 88, 73, 54, 56, 68, 54, 69, 99, 68, 69, 65, 69, 60, 48, 70, 56, 73, 73, 73, 58, 73, 66, 53, 64, 64, 76, 60, 57, 72, 66, 46, 55, 69, 63, 47, 55, 56, 69, 52, 68, 59, 72, 65, 45, 56, 62, 40, 43, 63, 66, 78, 53, 65, 53, 61, 101, 66, 62, 56, 54, 68, 63, 47, 73, 60, 73, 57, 73, 46, 53, 56, 58, 61, 72, 68, 61, 63, 71, 54, 63, 55, 57, 72, 50, 76, 54, 68, 66, 38, 70, 72, 53, 70, 78, 53, 66, 63, 85, 60, 54, 63, 85, 67, 60, 113, 70, 58, 74, 61, 54, 69, 52, 75, 56, 55, 75, 55, 71, 64, 54, 55, 54, 56, 72, 62, 71, 61, 101, 62, 62, 56, 62, 60, 62, 82, 60, 55, 52, 61, 55, 51, 82, 91, 65, 65, 61, 54, 53, 69, 59, 76, 70, 59, 72, 73, 54, 60, 56, 56, 44, 66, 116, 69, 56, 63, 66, 51, 57, 61, 93, 61, 58, 42, 63, 64, 60, 73, 81, 204, 66, 82, 75, 60, 41, 48, 54, 50, 67, 64, 72, 70, 60, 55, 58, 47, 57, 55, 55, 56, 71, 116, 48, 50, 76, 63, 68, 71, 73, 71, 78, 52, 57, 60, 61, 49, 49, 71, 53, 52, 62, 65, 87, 54, 55, 59, 51, 65, 56, 62, 48, 61, 60, 64, 70, 58, 50, 57, 80, 50, 67, 55, 57, 61, 61, 64, 59, 78, 77, 61, 61, 71, 65, 63, 66, 85, 55, 48, 84, 107, 55, 73, 54, 77, 79, 74, 62, 60, 66, 53, 74, 58, 55, 57, 62, 62, 63, 84, 86, 58, 75, 49, 53, 61, 60, 64, 58, 72, 90, 79, 76, 83, 60, 61, 83, 57, 64, 71, 51, 70, 51, 58, 54, 75, 60, 69, 59, 78, 68, 67, 65, 51, 73, 76, 76, 49, 55, 53, 67, 67, 59, 85, 62, 54, 51, 56, 70, 72, 94, 71, 63, 54, 74, 77, 54, 63, 51, 59, 59, 74, 65, 61, 70, 64, 57, 70, 73, 61, 64, 61, 64, 57, 58, 52, 51, 64, 66, 52, 73, 47, 67, 65, 61, 49, 58, 59, 54, 112, 58, 60, 87, 90, 76, 67, 101, 68, 78, 59, 62, 55, 78, 72, 76, 73, 72, 71, 60, 72, 70, 66, 78, 68, 54, 70, 64, 57, 71, 65, 64, 62, 102, 77, 54, 66, 62, 60, 82, 64, 74, 98, 76, 82, 57, 65, 57, 51, 47, 41, 89, 83, 74, 82, 55, 67, 95, 97, 63, 60, 56, 82, 62, 63, 50, 79, 63, 107, 63, 71, 72, 65, 53, 92, 67, 68, 52, 54, 79, 55, 57, 67, 52, 85, 61, 73, 73, 86, 59, 77, 59, 53, 61, 68, 60, 61, 55, 57, 71, 82, 57, 69, 63, 67, 59, 70, 76, 77, 84, 72, 70, 60, 64, 79, 55, 48, 62, 61, 74, 72, 64, 60, 67, 58, 73, 50, 60, 74, 57, 60, 69, 64, 65, 65, 65, 57, 71, 82, 64, 58, 63, 50, 62, 58, 47, 80, 62, 59, 68, 53, 113, 64, 52, 43, 62, 73, 53, 66, 62, 58, 45, 57, 73, 76, 55, 66, 66, 63, 53, 63, 65, 63, 74, 71, 78, 96, 53, 63, 60, 75, 53, 66, 51, 59, 64, 73, 70, 82, 58, 74, 58, 84, 56, 72, 68, 83, 74, 74, 83, 41, 65, 65, 66, 45, 63, 64, 61, 63, 83, 56, 84, 67, 71, 75, 58, 64, 74, 52, 56, 48, 55, 75, 101, 59, 58, 62, 68, 55, 75, 68, 56, 69, 51, 60, 62, 72, 74, 48, 65, 81, 75, 67, 63, 49, 59, 95, 68, 66, 38, 62, 58, 60, 59, 63, 71, 80, 72, 62, 91, 61, 57, 68, 67, 89, 62, 64, 48, 55, 67, 60, 72, 63, 74, 60, 66, 56, 51, 73, 53, 58, 74, 71, 80, 55, 56, 63, 69, 80, 141, 73, 67, 149, 54, 78, 85, 62, 67, 58, 61, 74, 70, 61, 72, 74, 53, 86, 78, 56, 48, 54, 53, 78, 68, 55, 71, 65, 91, 72, 60, 59, 54, 52, 46, 62, 80, 60, 56, 58, 64, 65, 62, 72, 62, 82, 52, 68, 83, 58, 106, 63, 59, 91, 84, 62, 80, 69, 66, 72, 58, 65, 52, 52, 60, 54, 77, 77, 80, 55, 82, 56, 65, 75, 53, 62, 68, 56, 75, 54, 51, 86, 70, 112, 82, 42, 71, 74, 86, 60, 63, 73, 54, 61, 64, 68, 69, 73, 72, 64, 78, 55, 55, 56, 59, 78, 61, 63, 86, 51, 44, 66, 85, 63, 66, 70, 85, 79, 69, 56, 54, 128, 63, 64, 63, 64, 67, 77, 60, 63, 63, 46, 64, 62, 53, 80, 68, 59, 54, 54, 78, 56, 61, 66, 53, 64, 70, 59, 46, 79, 50, 61, 77, 77, 112, 77, 77, 86, 68, 40, 56, 61, 95, 95, 82, 75, 63, 68, 57, 70, 71, 70, 68, 84, 55, 62, 68, 53, 74, 60, 50, 53, 67, 77, 48, 59, 63, 64, 96, 66, 80, 67, 53, 71, 57, 61, 65, 77, 56, 44, 67, 76, 59, 71, 62, 78, 91, 70, 63, 64, 57, 73, 69, 44, 51, 54, 62, 49, 63, 62, 61, 96, 75, 103, 76, 67, 62, 52, 53, 57, 41, 67, 96, 70, 67, 58, 70, 75, 48, 60, 57, 53, 79, 68, 65, 51, 76, 104, 53, 109, 62, 66, 57, 59, 62, 61, 52, 113, 43, 58, 65, 49, 57, 60, 82, 54, 74, 53, 55, 51, 91, 59, 91, 66, 72, 73, 62, 67, 67, 70, 74, 63, 59, 71, 54, 59, 64, 67, 54, 66, 56, 68, 46, 68, 65, 44, 53, 55, 65, 86, 72, 61, 62, 65, 81, 52, 52, 71, 50, 85, 81, 28, 54, 88, 58, 70, 42, 61, 65, 64, 57, 84, 59, 66, 72, 64, 53, 61, 64, 66, 75, 63, 70, 57, 61, 64, 56, 42, 56, 56, 53, 56, 68, 92, 63, 47, 57, 84, 68, 83, 62, 62, 69, 79, 75, 74, 57, 80, 52, 70, 58, 56, 69, 56, 77, 60, 55, 49, 48, 59, 76, 64, 60, 54, 46, 77, 58, 78, 67, 79, 62, 57, 67, 59, 73, 52, 54, 66, 59, 55, 64, 46, 74, 61, 84, 52, 53, 51, 68, 77, 52, 73, 55, 53, 60, 53, 49, 79, 60, 63, 62, 72, 59, 56, 61, 64, 60, 87, 71, 74, 58, 74, 64, 60, 52, 67, 105, 62, 57, 62, 63, 64, 60, 70, 74, 79, 65, 55, 56, 71, 62, 70, 60, 67, 60, 66, 70, 82, 67, 68, 77, 60, 72, 58, 61, 86, 61, 74, 64, 59, 67, 67, 83, 53, 69, 75, 73, 49, 59, 67, 50, 63, 61, 61, 65, 51, 63, 66, 53, 90, 45, 66, 67, 78, 78, 45, 62, 55, 62, 70, 56, 62, 63, 78, 55, 65, 65, 72, 46, 64, 48, 61, 58, 63, 76, 54, 50, 60, 72, 82, 63, 53, 55, 75, 63, 47, 61, 71, 107, 76, 77, 71, 65, 85, 51, 53, 55, 88, 80, 67, 56, 88, 56, 50, 59, 76, 65, 60, 66, 62, 55, 67, 56, 50, 72, 67, 51, 68, 61, 71, 76, 72, 67, 79, 62, 61, 80, 76, 81, 61, 68, 80, 74, 52, 69, 52, 80, 57, 65, 66, 58, 83, 68, 52, 73, 69, 54, 67, 43, 60, 45, 64, 55, 91, 60, 65, 59, 68, 64, 73, 64, 59, 54, 63, 57, 62, 66, 64, 86, 61, 54, 81, 71, 68, 49, 53, 52, 59, 102, 72, 43, 75, 66, 63, 80, 52, 69, 96, 59, 36, 68, 67, 56, 76, 68, 58, 59, 96, 63, 52, 72, 62, 55, 60, 65, 49, 60, 72, 65, 80, 70, 48, 73, 69, 72, 63, 51, 61, 70, 58, 81, 73, 72, 63, 76, 61, 88, 60, 41, 58, 62, 57, 57, 63, 47, 58, 76, 59, 96, 73, 64, 59, 83, 61, 66, 69, 61, 77, 77, 82, 51, 108, 88, 55, 51, 61, 52, 60, 53, 75, 60, 73, 65, 57, 52, 52, 91, 61, 79, 75, 33, 66, 59, 96, 88, 57, 61, 65, 51, 105, 55, 82, 68, 71, 61, 65, 61, 69, 68, 82, 55, 56, 61, 75, 61, 56, 67, 54, 60, 47, 96, 66, 69, 67, 54, 50, 67, 49, 76, 59, 52, 83, 76, 66, 54, 66, 68, 72, 54, 67, 60, 93, 79, 60, 57, 64, 81, 52, 70, 58, 69, 66, 63, 49, 66, 68, 63, 62, 50, 63, 69, 57, 57, 81, 57, 45, 82, 76, 56, 56, 75, 58, 73, 53, 90, 55, 47, 76, 37, 68, 106, 61, 61, 62, 93, 59, 73, 52, 72, 42, 75, 46, 73, 67, 63, 73, 70, 164, 55, 52, 56, 89, 86, 87, 72, 64, 84, 66, 47, 51, 68, 61, 43, 55, 90, 54, 63, 61, 59, 58, 109, 95, 45, 70, 84, 58, 58, 60, 77, 56, 64, 55, 80, 60, 55, 76, 76, 77, 50, 84, 64, 73, 71, 45, 41, 69, 76, 63, 57, 57, 73, 71, 118, 77, 61, 63, 64, 69, 60, 51, 84, 62, 61, 63, 55, 62, 75, 62, 74, 65, 61, 61, 54, 52, 56, 68, 69, 64, 50, 79, 73, 63, 57, 74, 60, 60, 68, 62, 57, 55, 59, 62, 108, 67, 55, 63, 64, 65, 90, 76, 61, 75, 61, 88, 55, 74, 68, 62, 67, 79, 66, 62, 65, 63, 70, 64, 61, 75, 77, 63, 70, 70, 79, 115, 67, 85, 61, 73, 76, 69, 58, 57, 64, 81, 61, 84, 78, 69, 64, 75, 78, 55, 79, 73, 65, 87, 72, 60, 77, 65, 52, 83, 71, 71, 97, 98, 73, 65, 58, 75, 70, 75, 58, 78, 87, 128, 71, 51, 56, 80, 75, 66, 57, 59, 128, 78, 48, 75, 56, 63, 66, 54, 63, 58, 119, 70, 82, 71, 61, 38, 59, 56, 71, 57, 77, 62, 67, 66, 62, 62, 47, 59, 71, 74, 62, 64, 74, 59, 64, 65, 71, 63, 60, 69, 67, 56, 63, 58, 41, 46, 72, 115, 56, 65, 56, 67, 100, 79, 69, 58, 62, 66, 47, 55, 79, 62, 72, 39, 56, 73, 80, 76, 74, 60, 94, 60, 60, 66, 71, 67, 59, 62, 57, 78, 61, 60, 50, 67, 65, 53, 50, 78, 74, 72, 71, 66, 90, 67, 66, 70, 75, 48, 66, 69, 54, 62, 53, 78, 75, 67, 61, 51, 72, 70, 62, 84, 68, 76, 45, 72, 54, 69, 69, 63, 64, 85, 90, 100, 59, 101, 63, 82, 67, 43, 67, 54, 55, 57, 72, 77, 101, 68, 60, 96, 61, 35, 48, 62, 53, 73, 83, 75, 54, 67, 75, 79, 92, 52, 57, 60, 52, 55, 62, 54, 85, 59, 84, 54, 81, 103, 78, 58, 59, 47, 66, 59, 68, 95, 61, 76, 148, 45, 87, 102, 70, 54, 73, 70, 76, 99, 78, 83, 69, 60, 52, 73, 72, 69, 68, 47, 65, 92, 50, 96, 68, 44, 72, 57, 56, 68, 83, 53, 66, 63, 67, 59, 40, 53, 72, 72, 70, 36, 83, 59, 63, 54, 93, 57, 84, 71, 76, 64, 65, 87, 65, 81, 69, 43, 53, 86, 82, 64, 62, 50, 53, 65, 52, 84, 83, 60, 60, 57, 58, 80, 57, 44, 66, 95, 69, 72, 65, 63, 95, 62, 61, 91, 70, 51, 51, 57, 65, 52, 59, 76, 74, 59, 53, 63, 45, 97, 69, 44, 125, 66, 60, 69, 51, 79, 75, 99, 52, 57, 44, 65, 74, 66, 56, 46, 74, 60, 61, 70, 114, 66, 57, 50, 64, 59, 44, 65, 67, 79, 63, 44, 59, 70, 73, 69, 62, 85, 55, 67, 76, 60, 57, 79, 59, 42, 63, 84, 47, 58, 82, 51, 59, 71, 72, 88, 44, 75, 78, 60, 66, 70, 78, 86, 70, 58, 86, 56, 75, 80, 46, 59, 57, 74, 70, 45, 69, 64, 76, 72, 55, 69, 57, 72, 55, 62, 71, 73, 74, 62, 59, 57, 67, 75, 52, 73, 58, 71, 65, 84, 68, 48, 69, 82, 63, 78, 56, 48, 78, 51, 74, 69, 52, 74, 61, 69, 56, 55, 55, 57, 46, 62, 54, 57, 43, 70, 70, 59, 40, 64, 89, 79, 64, 73, 60, 48, 58, 57, 63, 89, 44, 100, 71, 62, 63, 55, 46, 35, 107, 60, 60, 73, 72, 68, 52, 62, 92, 60, 84, 68, 48, 76, 106, 53, 102, 67, 49, 71, 47, 56, 60, 65, 77, 71, 115, 58, 77, 75, 76, 68, 69, 87, 79, 57, 89, 68, 68, 59, 58, 65, 62, 58, 59, 95, 82, 70, 65, 58, 78, 59, 63, 82, 50, 79, 61, 56, 78, 54, 59, 64, 46, 65, 68, 55, 61, 64, 89, 70, 75, 68, 67, 67, 76, 80, 62, 61, 56, 60, 62, 69, 53, 60, 75, 59, 55, 61, 75, 68, 53, 72, 55, 48, 79, 53, 88, 55, 54, 68, 79, 77, 70, 40, 72, 82, 81, 68, 24, 55, 52, 55, 104, 75, 46, 54, 92, 90, 77, 52, 53, 74, 53, 80, 88, 82, 90, 71, 69, 76, 76, 80, 63, 48, 69, 59, 56, 84, 62, 60, 52, 97, 64, 76, 65, 53, 82, 62, 92, 84, 57, 69, 48, 84, 65, 51, 60, 67, 88, 86, 47, 86, 54, 90, 48, 91, 61, 46, 81, 56, 56, 50, 77, 73, 82, 39, 53, 57, 71, 63, 54, 72, 78, 93, 78, 69, 62, 76, 65, 86, 53, 55, 76, 51, 58, 93, 53, 70, 60, 85, 86, 56, 54, 64, 77, 36, 74, 49, 81, 94, 72, 75, 51, 65, 65, 55, 86, 62, 55, 68, 85, 65, 80, 45, 78, 55, 67, 75, 60, 67, 43, 72, 97, 79, 52, 92, 53, 46, 52, 59, 53, 33, 89, 73, 77, 54, 72, 129, 64, 52, 65, 69, 86, 52, 75, 48, 103, 66, 59, 64, 60, 54, 56, 33, 78, 66, 79, 57, 52, 75, 81, 61, 54, 58, 62, 77, 63, 99, 73, 52, 52, 62, 52, 61, 79, 77, 79, 91, 72, 64, 56, 77, 41, 73, 84, 53, 46, 65, 52, 88, 36, 61, 66, 70, 66, 40, 54, 59, 47, 60, 42, 57, 82, 59, 58, 57, 69, 118, 52, 65, 55, 43, 89, 68, 61, 72, 66, 62, 92, 77, 65, 76, 43, 66, 68, 51, 59, 64, 89, 114, 45, 77, 59, 72, 75, 67, 70, 87, 52, 58, 83, 48, 87, 60, 69, 80, 44, 69, 66, 90, 55, 52, 50, 58, 59, 71, 53, 70, 89, 57, 64, 68, 43, 54, 62, 82, 40, 59, 37, 59, 63, 62, 93, 76, 57, 69, 50, 72, 59, 60, 82, 58, 65, 72, 60, 59, 78, 74, 71, 50, 93, 55, 63, 52, 66, 46, 43, 69, 50, 58, 68, 70, 61, 51, 44, 31, 48, 65, 80, 50, 45, 62, 71, 46, 58, 58, 79, 70, 53, 109, 55, 62, 58, 67, 65, 117, 71, 60, 79, 72, 103, 37, 46, 70, 67, 79, 92, 75, 83, 54, 57, 66, 83, 96, 50, 72, 59, 70, 58, 70, 53, 70, 75, 83, 46, 77, 57, 129, 68, 118, 80, 76, 53, 100, 58, 79, 59, 69, 68, 80, 73, 67, 59, 78, 66, 65, 57, 40, 63, 62, 70, 73, 61, 68, 54, 60, 70, 46, 74, 51, 81, 79, 71, 63, 66, 60, 69, 54, 58, 49, 60, 58, 76, 46, 45, 67, 62, 54, 60, 67, 47, 54, 45, 67, 66, 58, 85, 87, 140, 57, 73, 47, 63, 63, 55, 76, 88, 66, 62, 63, 82, 45, 63, 73, 57, 42, 79, 72, 54, 96, 65, 81, 71, 67, 61, 66, 59, 59, 50, 63, 75, 56, 63, 76, 92, 64, 50, 65, 65, 64, 58, 81, 101, 62, 95, 35, 78, 59, 54, 71, 55, 78, 81, 85, 79, 49, 65, 49, 75, 73, 70, 44, 68, 60, 62, 63, 72, 47, 86, 58, 69, 64, 61, 59, 50, 68, 72, 50, 62, 57, 64, 65, 58, 51, 53, 51, 80, 56, 53, 80, 53, 86, 127, 50, 98, 92, 49, 80, 61, 67, 102, 55, 52, 56, 126, 64, 67, 73, 57, 47, 55, 62, 86, 57, 46, 53, 53, 46, 69, 64, 63, 68, 53, 67, 75, 74, 88, 58, 71, 73, 53, 43, 66, 50, 101, 62, 72, 65, 63, 64, 59, 54, 42, 68, 69, 58, 65, 59, 58, 56, 55, 42, 93, 74, 95, 55, 70, 54, 61, 51, 68, 51, 60, 91, 56, 72, 49, 86, 63, 45, 55, 57, 79, 56, 63, 74, 63, 59, 71, 68, 66, 86, 85, 71, 77, 85, 73, 65, 72, 66, 60, 64, 80, 57, 61, 58, 50, 66, 68, 65, 50, 50, 66, 64, 52, 73, 68, 71, 57, 102, 69, 51, 84, 47, 56, 59, 81, 73, 80, 74, 37, 71, 64, 131, 66, 45, 96, 63, 56, 55, 66, 58, 58, 59, 56, 90, 60, 58, 60, 67, 67, 53, 63, 92, 61, 64, 54, 55, 81, 66, 59, 58, 57, 66, 54, 62, 64, 75, 76, 67, 63, 86, 82, 80, 55, 39, 51, 49, 82, 57, 72, 56, 67, 48, 62, 69, 77, 57, 66, 67, 57, 70, 61, 84, 63, 70, 70, 60, 66, 51, 59, 96, 68, 47, 69, 77, 48, 56, 79, 80, 79, 76, 73, 57, 52, 64, 47, 62, 65, 75, 50, 79, 65, 42, 50, 45, 72, 76, 93, 51, 57, 47, 58, 83, 59, 109, 38, 53, 58, 96, 63, 70, 72, 63, 71, 115, 62, 49, 50, 69, 52, 56, 48, 64, 57, 45, 88, 56, 69, 88, 66, 67, 57, 66, 47, 84, 66, 67, 56, 88, 69, 87, 54, 81, 51, 56, 53, 60, 95, 58, 74, 59, 78, 78, 62, 80, 58, 74, 63, 72, 71, 94, 63, 73, 70, 69, 82, 60, 49, 97, 96, 65, 72, 57, 54, 51, 58, 59, 54, 59, 57, 49, 68, 61, 67, 80, 57, 74, 79, 65, 66, 58, 61, 70, 57, 74, 51, 64, 55, 61, 55, 65, 66, 54, 70, 78, 81, 66, 51, 62, 57, 73, 57, 62, 59, 48, 75, 60, 62, 78, 63, 56, 58, 83, 61, 121, 94, 52, 103, 79, 59, 57, 60, 42, 57, 52, 63, 59, 86, 50, 79, 63, 82, 58, 66, 60, 66, 110, 58, 62, 57, 60, 53, 76, 46, 68, 49, 77, 42, 68, 55, 65, 50, 71, 64, 65, 80, 62, 82, 103, 56, 63, 62, 62, 81, 61, 73, 52, 128, 60, 61, 60, 57, 59, 52, 81, 69, 61, 53, 61, 83, 44, 98, 50, 66, 63, 68, 63, 47, 63, 68, 56, 49, 54, 92, 66, 66, 78, 76, 74, 51, 77, 71, 70, 62, 82, 59, 79, 54, 84, 83, 63, 55, 74, 52, 64, 60, 85, 87, 49, 57, 63, 90, 76, 63, 63, 84, 43, 64, 69, 62, 73, 69, 49, 55, 54, 70, 78, 67, 51, 47, 51, 67, 79, 82, 59, 61, 89, 83, 49, 75, 55, 56, 87, 64, 77, 70, 48, 58, 82, 121, 52, 34, 82, 67, 68, 49, 73, 67, 89, 69, 62, 59, 48, 46, 55, 53, 53, 59, 39, 79, 81, 69, 99, 61, 68, 59, 53, 70, 60, 45, 61, 62, 49, 61, 68, 69, 69, 74, 87, 39, 49, 50, 62, 70, 48, 74, 53, 56, 78, 72, 70, 54, 60, 52, 69, 74, 75, 60, 67, 56, 79, 51, 91, 50, 52, 64, 65, 75, 78, 73, 66, 68, 85, 64, 58, 84, 72, 81, 54, 50, 87, 70, 82, 70, 70, 55, 38, 61, 58, 96, 68, 63, 65, 57, 65, 60, 61, 57, 39, 53, 77, 64, 81, 54, 60, 82, 84, 80, 69, 63, 55, 75, 46, 81, 61, 108, 71, 53, 56, 56, 43, 81, 64, 63, 67, 68, 60, 77, 94, 50, 63, 71, 65, 63, 68, 75, 86, 61, 62, 69, 62, 75, 49, 63, 58, 72, 61, 69, 59, 68, 49, 90, 67, 64, 97, 65, 53, 74, 67, 56, 58, 88, 62, 66, 55, 60, 65, 59, 89, 64, 56, 64, 60, 89, 111, 37, 62, 53, 62, 73, 54, 70, 79, 58, 58, 73, 130, 91, 92, 51, 65, 68, 67, 63, 62, 59, 58, 75, 73, 51, 73, 115, 55, 70, 85, 87, 77, 49, 61, 49, 50, 58, 54, 85, 73, 52, 60, 69, 46, 48, 78, 63, 65, 51, 62, 61, 67, 58, 77, 50, 82, 49, 72, 46, 57, 68, 100, 71, 63, 47, 61, 58, 77, 80, 74, 68, 68, 53, 36, 71, 76, 74, 123, 83, 93, 72, 54, 42, 89, 79, 52, 40, 55, 66, 64, 67, 63, 82, 71, 82, 66, 60, 70, 76, 30, 57, 93, 57, 67, 54, 72, 57, 52, 88, 76, 86, 59, 75, 69, 99, 67, 53, 67, 55, 86, 66, 65, 99, 52, 82, 84, 67, 60, 49, 75, 68, 57, 50, 64, 113, 73, 56, 90, 61, 56, 82, 61, 38, 62, 72, 87, 59, 59, 47, 80, 59, 58, 64, 70, 75, 54, 52, 72, 52, 57, 73, 139, 61, 82, 31, 46, 54, 51, 55, 60, 75, 58, 58, 87, 75, 50, 65, 59, 60, 66, 80, 51, 82, 77, 77, 70, 67, 78, 82, 69, 86, 74, 64, 70, 73, 77, 84, 46, 76, 78, 59, 70, 55, 66, 60, 67, 58, 56, 73, 60, 62, 66, 64, 66, 65, 69, 70, 53, 88, 67, 65, 26, 68, 64, 67, 62, 38, 84, 49, 69, 48, 61, 91, 78, 62, 59, 54, 60, 52, 60, 71, 70, 56, 71, 63, 61, 68, 74, 77, 76, 43, 84, 82, 70, 59, 46, 75, 55, 54, 51, 60, 80, 63, 65, 53, 65, 69, 105, 59, 91, 52, 74, 72, 51, 80, 62, 77, 56, 53, 54, 68, 62, 65, 58, 78, 62, 59, 73, 55, 79, 56, 65, 68, 71, 63, 54, 55, 73, 65, 61, 80, 71, 76, 47, 93, 63, 76, 81, 68, 45, 53, 67, 77, 121, 70, 56, 75, 98, 63, 38, 50, 48, 54, 62, 79, 61, 46, 75, 84, 78, 51, 55, 73, 46, 52, 80, 69, 61, 65, 52, 68, 73, 71, 76, 66, 76, 80, 87, 62, 73, 59, 84, 73, 67, 98, 62, 64, 75, 64, 90, 58, 65, 66, 71, 54, 69, 107, 40, 80, 116, 60, 57, 57, 72, 54, 59, 68, 71, 61, 56, 51, 55, 51, 66, 66, 66, 72, 59, 52, 58, 69, 66, 67, 96, 57, 71, 70, 110, 47, 39, 71, 52, 64, 53, 69, 65, 87, 65, 88, 55, 59, 61, 107, 74, 72, 60, 50, 53, 93, 59, 51, 47, 87, 76, 77, 66, 60, 64, 72, 67, 65, 66, 65, 67, 74, 59, 57, 37, 60, 65, 64, 71, 72, 49, 67, 63, 74, 68, 63, 77, 58, 62, 65, 79, 54, 67, 65, 51, 70, 67, 83, 45, 90, 56, 77, 64, 62, 58, 66, 68, 53, 72, 57, 66, 53, 47, 82, 79, 74, 75, 99, 62, 57, 94, 86, 64, 47, 68, 111, 71, 75, 94, 67, 72, 73, 68, 73, 64, 60, 62, 44, 73, 66, 82, 62, 58, 62, 70, 59, 46, 49, 58, 75, 63, 70, 70, 68, 63, 54, 52, 114, 74, 78, 115, 60, 59, 65, 59, 59, 100, 60, 52, 65, 73, 64, 60, 59, 67, 59, 48, 58, 63, 53, 55, 50, 61, 57, 67, 73, 56, 62, 60, 78, 57, 58, 65, 56, 62, 58, 84, 41, 69, 77, 55, 66, 71, 85, 80, 72, 51, 58, 62, 93, 84, 79, 57, 53, 61, 59, 48, 62, 60, 52, 64, 94, 62, 55, 62, 62, 55, 69, 68, 62, 55, 53, 63, 63, 64, 77, 86, 70, 50, 57, 74, 62, 51, 82, 69, 53, 53, 77, 57, 61, 94, 55, 68, 61, 86, 56, 84, 76, 72, 108, 64, 90, 76, 63, 77, 76, 50, 108, 57, 56, 61, 58, 45, 69, 54, 63, 70, 76, 94, 73, 61, 53, 74, 64, 52, 67, 60, 59, 53, 45, 49, 69, 68, 67, 67, 69, 56, 53, 60, 75, 51, 66, 64, 62, 79, 62, 71, 52, 80, 69, 57, 59, 50, 70, 60, 66, 72, 58, 81, 57, 70, 56, 50, 58, 69, 52, 67, 49, 59, 69, 54, 65, 88, 55, 63, 64, 52, 49, 63, 81, 71, 59, 75, 48, 49, 81, 61, 55, 62, 74, 84, 67, 65, 54, 89, 110, 76, 77, 83, 59, 70, 55, 74, 59, 58, 96, 64, 62, 63, 68, 56, 48, 59, 82, 52, 61, 56, 60, 62, 57, 54, 63, 74, 72, 88, 62, 60, 59, 48, 54, 75, 84, 78, 80, 56, 48, 46, 73, 70, 59, 60, 47, 105, 64, 66, 77, 53, 58, 60, 86, 81, 89, 60, 49, 56, 67, 53, 72, 87, 37, 33, 62, 63, 42, 85, 82, 62, 55, 75, 84, 62, 68, 58, 74, 68, 57, 60, 61, 71, 64, 80, 72, 50, 79, 81, 73, 78, 77, 76, 54, 81, 48, 49, 56, 75, 45, 62, 60, 65, 47, 71, 55, 51, 79, 41, 57, 64, 58, 65, 46, 60, 75, 62, 60, 44, 55, 45, 65, 76, 64, 73, 54, 62, 45, 66, 67, 102, 63, 82, 62, 50, 64, 60, 82, 89, 56, 59, 77, 73, 142, 64, 57, 51, 75, 54, 67, 97, 77, 94, 85, 92, 53, 79, 41, 55, 41, 60, 51, 53, 72, 60, 89, 74, 64, 78, 71, 79, 70, 52, 65, 99, 62, 47, 82, 57, 50, 53, 57, 69, 65, 68, 56, 76, 94, 69, 67, 52, 45, 47, 68, 82, 79, 60, 61, 73, 78, 58, 60, 71, 73, 69, 68, 88, 41, 64, 60, 77, 59, 66, 68, 58, 67, 96, 82, 62, 63, 70, 66, 74, 87, 68, 54, 65, 68, 54, 59, 92, 54, 47, 61, 64, 67, 60, 81, 52, 85, 93, 59, 65, 57, 59, 68, 74, 59, 52, 56, 66, 56, 57, 59, 68, 139, 60, 58, 54, 59, 61, 59, 55, 67, 100, 79, 96, 100, 61, 70, 67, 66, 78, 77, 68, 62, 90, 79, 64, 62, 70, 56, 48, 67, 67, 61, 73, 74, 56, 66, 74, 73, 52, 59, 47, 93, 68, 61, 53, 51, 61, 58, 64, 88, 62, 37, 65, 63, 59, 72, 67, 59, 56, 63, 58, 60, 54, 65, 87, 52, 62, 72, 50, 62, 76, 76, 48, 67, 72, 68, 54, 65, 52, 84, 54, 48, 70, 55, 73, 69, 76, 68, 81, 74, 61, 59, 67, 58, 75, 64, 98, 88, 65, 67, 69, 85, 72, 59, 89, 68, 63, 70, 51, 68, 52, 63, 69, 87, 64, 57, 50, 55, 64, 82, 60, 47, 70, 108, 61, 65, 86, 60, 62, 39, 76, 61, 60, 53, 71, 59, 73, 58, 63, 61, 58, 51, 49, 82, 75, 83, 63, 52, 59, 81, 71, 75, 61, 68, 67, 66, 89, 44, 60, 88, 79, 60, 72, 63, 60, 65, 66, 51, 90, 53, 70, 59, 67, 50, 64, 58, 54, 48, 57, 55, 59, 67, 58, 75, 62, 76, 75, 74, 52, 65, 62, 65, 51, 61, 73, 47, 59, 79, 51, 83, 83, 66, 67, 46, 135, 61, 43, 59, 53, 70, 72, 80, 73, 63, 69, 64, 82, 67, 56, 92, 68, 70, 73, 96, 71, 58, 60, 71, 55, 67, 42, 79, 55, 89, 45, 58, 62, 68, 91, 78, 71, 58, 67, 77, 63, 73, 58, 53, 71, 128, 67, 71, 75, 81, 64, 78, 48, 53, 65, 53, 66, 55, 65, 63, 65, 68, 63, 61, 56, 87, 70, 62, 72, 69, 57, 74, 51, 54, 64, 71, 69, 72, 51, 74, 49, 62, 64, 60, 65, 67, 51, 73, 70, 97, 60, 75, 50, 54, 58, 80, 44, 144, 93, 65, 57, 57, 64, 97, 95, 75, 63, 64, 79, 69, 77, 60, 62, 48, 51, 68, 70, 65, 73, 31, 76, 54, 79, 75, 76, 61, 75, 78, 66, 80, 58, 72, 47, 69, 55, 65, 56, 76, 61, 55, 66, 73, 57, 56, 78, 53, 61, 75, 93, 65, 64, 53, 78, 93, 77, 47, 81, 69, 65, 62, 36, 90, 60, 51, 92, 77, 62, 59, 54, 54, 54, 84, 69, 71, 65, 43, 60, 66, 60, 74, 75, 65, 66, 50, 64, 64, 94, 64, 60, 90, 84, 73, 60, 63, 96, 49, 65, 63, 76, 59, 67, 56, 75, 54, 51, 70, 38, 62, 87, 78, 70, 64, 51, 83, 95, 77, 85, 55, 57, 65, 88, 77, 65, 62, 79, 107, 60, 73, 48, 73, 59, 76, 47, 62, 56, 60, 63, 70, 53, 85, 64, 61, 82, 62, 61, 66, 72, 87, 67, 70, 58, 59, 67, 58, 64, 74, 81, 52, 75, 55, 61, 74, 61, 32, 65, 86, 62, 66, 49, 52, 76, 70, 73, 49, 74, 59, 124, 50, 69, 65, 56, 66, 83, 65, 68, 50, 71, 87, 65, 47, 70, 52, 62, 66, 49, 51, 109, 47, 72, 60, 91, 63, 70, 67, 67, 77, 59, 64, 99, 72, 83, 63, 63, 59, 66, 53, 62, 75, 70, 71, 59, 64, 61, 54, 52, 56, 60, 61, 53, 48, 68, 93, 52, 61, 58, 91, 79, 93, 77, 56, 81, 60, 66, 53, 56, 62, 55, 72, 96, 61, 69, 44, 82, 54, 65, 62, 137, 64, 52, 64, 45, 71, 76, 51, 76, 68, 69, 62, 62, 69, 66, 80, 54, 74, 54, 68, 66, 57, 57, 56, 68, 66, 55, 58, 52, 63, 50, 62, 64, 68, 70, 58, 72, 52, 53, 101, 83, 47, 57, 51, 68, 112, 47, 128, 72, 54, 53, 59, 58, 52, 70, 59, 70, 62, 55, 72, 74, 47, 67, 60, 75, 47, 71, 57, 58, 66, 90, 74, 54, 51, 70, 95, 82, 72, 110, 98, 59, 51, 52, 54, 65, 71, 60, 52, 65, 58, 58, 105, 63, 55, 61, 57, 64, 58, 50, 83, 69, 48, 51, 99, 90, 50, 100, 69, 60, 59, 73, 62, 79, 69, 69, 73, 67, 54, 69, 55, 67, 46, 50, 61, 67, 65, 55, 69, 63, 91, 73, 66, 62, 106, 73, 71, 70, 59, 52, 63, 70, 56, 57, 74, 67, 69, 62, 57, 79, 79, 53, 62, 78, 59, 47, 43, 84, 36, 58, 86, 67, 51, 75, 60, 75, 60, 79, 59, 83, 89, 65, 80, 67, 72, 56, 66, 56, 39, 65, 59, 78, 48, 59, 77, 79, 51, 62, 62, 46, 74, 90, 73, 49, 56, 56, 55, 69, 60, 58, 94, 62, 47, 76, 68, 81, 37, 52, 80, 71, 51, 64, 84, 73, 60, 55, 47, 76, 72, 66, 71, 41, 81, 55, 53, 101, 70, 76, 60, 42, 59, 47, 61, 53, 76, 98, 74, 63, 43, 84, 43, 60, 53, 63, 57, 58, 42, 68, 69, 63, 52, 78, 64, 63, 80, 65, 80, 95, 56, 72, 48, 77, 78, 61, 54, 75, 43, 86, 61, 58, 76, 59, 59, 70, 34, 75, 58, 63, 61, 61, 63, 83, 70, 67, 69, 64, 72, 54, 92, 77, 54, 66, 123, 59, 53, 75, 76, 56, 54, 71, 59, 66, 63, 87, 62, 44, 67, 64, 64, 99, 67, 54, 63, 88, 68, 46, 54, 72, 63, 64, 81, 61, 55, 62, 80, 67, 62, 52, 70, 62, 63, 63, 44, 76, 45, 81, 66, 50, 65, 82, 60, 109, 49, 80, 65, 58, 57, 31, 72, 57, 60, 51, 52, 64, 56, 57, 74, 62, 66, 67, 73, 52, 49, 77, 89, 82, 62, 77, 76, 74, 70, 46, 73, 84, 51, 62, 67, 85, 60, 76, 71, 66, 62, 60, 63, 79, 62, 66, 94, 57, 52, 74, 52, 52, 91, 62, 75, 64, 67, 57, 54, 52, 73, 61, 54, 111, 59, 79, 66, 57, 52, 46, 65, 62, 66, 70, 71, 63, 64, 75, 60, 49, 76, 71, 59, 61, 56, 69, 70, 74, 35, 52, 60, 82, 74, 56, 53, 73, 56, 105, 64, 80, 69, 58, 58, 60, 77, 54, 65, 59, 60, 55, 83, 61, 63, 63, 52, 49, 71, 91, 63, 68, 76, 60, 47, 61, 102, 68, 83, 68, 59, 64, 61, 86, 60, 49, 63, 80, 53, 107, 72, 77, 62, 70, 54, 105, 43, 73, 69, 93, 92, 50, 59, 63, 56, 82, 64, 73, 83, 52, 118, 76, 65, 52, 62, 70, 52, 58, 96, 62, 55, 68, 74, 42, 44, 62, 51, 70, 64, 65, 85, 68, 72, 90, 60, 52, 68, 58, 65, 53, 57, 57, 54, 52, 58, 83, 60, 72, 68, 158, 44, 54, 58, 64, 44, 55, 91, 75, 55, 35, 53, 69, 69, 67, 54, 51, 44, 56, 62, 57, 107, 61, 84, 54, 60, 68, 75, 49, 54, 59, 47, 58, 56, 60, 70, 67, 106, 61, 64, 59, 64, 52, 78, 63, 88, 59, 52, 59, 68, 44, 74, 67, 41, 67, 101, 45, 57, 58, 52, 79, 118, 57, 55, 46, 60, 61, 47, 50, 63, 79, 82, 68, 49, 70, 71, 65, 75, 69, 78, 51, 77, 80, 101, 78, 88, 82, 52, 97, 55, 50, 67, 61, 97, 62, 76, 124, 76, 68, 73, 61, 64, 45, 58, 60, 52, 54, 78, 59, 47, 66, 81, 51, 77, 89, 71, 78, 70, 51, 73, 69, 102, 64, 44, 56, 62, 71, 52, 50, 49, 65, 71, 68, 48, 65, 101, 66, 49, 70, 53, 72, 75, 75, 77, 58, 67, 81, 65, 72, 75, 70, 63, 58, 60, 62, 47, 99, 74, 58, 54, 58, 52, 57, 57, 71, 45, 79, 58, 88, 58, 60, 71, 75, 61, 50, 45, 70, 48, 65, 40, 74, 50, 62, 67, 55, 67, 56, 86, 55, 74, 58, 55, 64, 48, 72, 62, 56, 76, 78, 57, 61, 46, 60, 49, 60, 54, 48, 69, 55, 81, 91, 74, 68, 57, 50, 57, 72, 49, 66, 62, 57, 64, 44, 71, 62, 57, 68, 58, 67, 59, 71, 60, 78, 57, 73, 60, 69, 54, 63, 79, 64, 56, 58, 82, 80, 67, 83, 68, 56, 56, 72, 49, 66, 90, 87, 66, 51, 51, 41, 54, 49, 49, 52, 72, 67, 62, 64, 67, 54, 72, 78, 72, 72, 55, 62, 75, 78, 57, 63, 112, 65, 122, 50, 54, 49, 58, 63, 65, 70, 81, 81, 75, 50, 84, 59, 65, 78, 51, 51, 74, 72, 70, 56, 61, 70, 58, 58, 66, 58, 61, 60, 67, 90, 60, 58, 58, 57, 64, 85, 55, 72, 70, 49, 101, 73, 61, 58, 49, 58, 58, 76, 82, 64, 42, 66, 51, 59, 58, 73, 65, 60, 70, 58, 90, 73, 52, 84, 75, 52, 56, 53, 64, 55, 44, 47, 63, 71, 58, 75, 63, 71, 55, 67, 59, 86, 67, 62, 57, 43, 67, 82, 51, 76, 69, 64, 60, 49, 41, 61, 79, 40, 49, 63, 83, 55, 64, 81, 88, 52, 47, 71, 86, 59, 98, 74, 77, 55, 91, 71, 76, 68, 88, 75, 48, 93, 57, 73, 135, 76, 64, 59, 65, 78, 58, 66, 79, 63, 54, 72, 81, 62, 84, 69, 75, 41, 55, 84, 77, 64, 52, 71, 48, 42, 68, 84, 61, 69, 51, 67, 35, 76, 54, 73, 38, 83, 48, 63, 58, 87, 91, 57, 75, 77, 50, 88, 89, 65, 55, 58, 64, 63, 68, 57, 80, 67, 63, 95, 70, 60, 64, 76, 64, 81, 49, 54, 65, 52, 78, 55, 49, 66, 42, 61, 82, 56, 127, 54, 68, 66, 65, 55, 69, 92, 42, 66, 55, 136, 55, 41, 42, 63, 61, 95, 72, 89, 86, 74, 88, 55, 163, 89, 51, 27, 84, 75, 60, 108, 52, 59, 41, 80, 77, 48, 39, 54, 67, 69, 53, 48, 51, 63, 42, 54, 118, 62, 47, 64, 84, 64, 41, 65, 92, 55, 59, 114, 68, 60, 58, 72, 57, 55, 67, 66, 87, 42, 57, 58, 111, 78, 73, 58, 61, 63, 64, 45, 41, 68, 89, 54, 70, 64, 58, 82, 87, 115, 83, 56, 80, 49, 64, 63, 56, 57, 59, 69, 119, 74, 58, 56, 42, 77, 66, 84, 70, 85, 69, 64, 44, 73, 47, 66, 46, 41, 65, 66, 50, 47, 83, 67, 49, 62, 81, 49, 59, 61, 62, 66, 57, 67, 103, 141, 52, 60, 66, 77, 86, 40, 46, 102, 69, 52, 65, 53, 60, 63, 79, 69, 44, 71, 63, 67, 69, 53, 59, 80, 47, 71, 55, 56, 69, 67, 98, 49, 64, 45, 88, 62, 67, 63, 61, 74, 73, 63, 93, 48, 73, 67, 54, 124, 63, 48, 71, 67, 78, 77, 76, 56, 75, 46, 44, 59, 79, 66, 75, 78, 59, 79, 53, 69, 65, 83, 51, 71, 55, 88, 76, 61, 64, 61, 80, 52, 72, 47, 47, 62, 57, 80, 32, 74, 45, 52, 72, 51, 74, 62, 68, 102, 67, 44, 73, 65, 60, 46, 60, 42, 85, 50, 55, 119, 77, 71, 55, 61, 72, 53, 80, 58, 61, 85, 50, 29, 85, 64, 74, 52, 75, 58, 70, 57, 63, 56, 79, 39, 57, 60, 78, 56, 74, 54, 56, 78, 102, 43, 83, 68, 78, 66, 55, 85, 52, 55, 56, 98, 87, 77, 56, 96, 80, 97, 71, 51, 81, 54, 65, 81, 48, 58, 51, 45, 53, 51, 55, 72, 61, 40, 47, 34, 18, 54, 65, 54, 68, 36, 82, 75, 78, 82, 73, 70, 58, 66, 69, 54, 62, 51, 47, 58, 65, 61, 80, 103, 61, 67, 63, 79, 88, 54, 67, 52, 72, 126, 74, 73, 85, 69, 52, 74, 64, 84, 66, 51, 63, 64, 66, 58, 54, 90, 84, 48, 51, 67, 57, 71, 49, 62, 51, 65, 69, 48, 65, 68, 54, 86, 62, 79, 91, 80, 64, 68, 57, 99, 54, 99, 68, 50, 66, 90, 48, 88, 62, 59, 53, 61, 71, 42, 60, 61, 59, 119, 63, 55, 84, 38, 56, 48, 57, 53, 95, 91, 73, 51, 48, 48, 72, 63, 66, 71, 82, 39, 62, 56, 73, 62, 44, 147, 55, 65, 68, 68, 76, 52, 78, 70, 72, 47, 55, 56, 71, 64, 90, 86, 61, 80, 67, 63, 60, 90, 73, 83, 46, 60, 78, 66, 91, 85, 30, 71, 95, 67, 71, 54, 62, 97, 63, 78, 43, 60, 74, 45, 72, 53, 66, 35, 85, 74, 44, 85, 55, 63, 54, 51, 80, 99, 65, 58, 59, 76, 65, 36, 65, 85, 69, 71, 68, 72, 76, 85, 51, 70, 46, 54, 58, 77, 65, 53, 81, 67, 106, 80, 61, 67, 87, 46, 71, 68, 52, 88, 63, 69, 53, 51, 52, 75, 75, 47, 60, 61, 61, 82, 56, 53, 84, 60, 55, 80, 39, 56, 80, 62, 65, 61, 61, 52, 71, 54, 42, 65, 83, 63, 58, 64, 69, 74, 64, 60, 52, 67, 46, 53, 45, 63, 95, 70, 81, 38, 55, 72, 92, 76, 68, 91, 42, 73, 68, 67, 54, 79, 73, 55, 63, 79, 71, 45, 72, 78, 52, 81, 58, 71, 46, 51, 86, 66, 62, 114, 62, 61, 93, 88, 61, 43, 54, 67, 74, 64, 61, 54, 46, 70, 71, 67, 50, 39, 65, 64, 46, 84, 53, 45, 54, 65, 81, 81, 64, 66, 47, 72, 64, 75, 60, 61, 64, 31, 64, 63, 68, 70, 66, 53, 84, 46, 65, 44, 64, 68, 80, 80, 70, 58, 87, 73, 60, 82, 51, 44, 80, 93, 70, 114, 49, 73, 94, 54, 60, 99, 67, 54, 58, 54, 75, 93, 66, 39, 51, 69, 69, 67, 50, 62, 63, 75, 78, 72, 105, 64, 74, 90, 60, 71, 58, 80, 68, 48, 51, 60, 60, 53, 67, 50, 54, 61, 61, 54, 45, 69, 53, 90, 54, 71, 65, 76, 46, 41, 65, 66, 43, 78, 72, 83, 65, 67, 67, 49, 78, 72, 56, 61, 76, 51, 66, 60, 24, 72, 88, 60, 62, 72, 63, 62, 55, 66, 71, 45, 55, 48, 74, 55, 104, 80, 83, 71, 97, 55, 64, 68, 84, 47, 76, 68, 56, 128, 59, 79, 72, 75, 77, 69, 56, 70, 53, 48, 36, 61, 37, 57, 64, 64, 70, 68, 52, 59, 73, 50, 119, 74, 80, 70, 57, 42, 70, 59, 62, 60, 85, 59, 76, 59, 89, 61, 60, 94, 53, 67, 73, 36, 114, 64, 50, 60, 72, 83, 55, 95, 64, 73, 65, 69, 76, 76, 41, 54, 62, 141, 78, 58, 62, 67, 66, 61, 81, 68, 86, 77, 67, 62, 84, 69, 75, 57, 85, 78, 101, 74, 54, 55, 74, 66, 94, 52, 72, 53, 57, 66, 49, 63, 41, 67, 71, 41, 35, 66, 80, 63, 73, 48, 51, 82, 72, 59, 97, 59, 58, 51, 65, 72, 92, 65, 50, 59, 51, 81, 70, 63, 81, 53, 85, 98, 54, 66, 62, 75, 44, 57, 111, 82, 74, 50, 53, 77, 89, 96, 82, 51, 50, 68, 66, 55, 70, 67, 60, 69, 53, 70, 58, 72, 42, 68, 82, 55, 64, 53, 48, 62, 61, 68, 66, 93, 70, 49, 59, 69, 69, 66, 41, 50, 57, 56, 69, 82, 55, 68, 118, 71, 68, 53, 66, 65, 61, 57, 55, 65, 93, 59, 59, 69, 54, 87, 60, 70, 76, 72, 57, 94, 60, 71, 80, 85, 63, 90, 66, 69, 72, 72, 86, 86, 48, 46, 47, 66, 66, 38, 97, 66, 54, 63, 93, 52, 92, 67, 73, 68, 76, 75, 80, 48, 60, 65, 72, 76, 66, 66, 55, 73, 44, 78, 55, 53, 61, 59, 51, 61, 86, 76, 80, 51, 51, 60, 73, 70, 75, 89, 60, 51, 68, 80, 69, 46, 64, 48, 61, 64, 98, 105, 74, 61, 76, 65, 60, 70, 94, 85, 57, 58, 67, 56, 67, 53, 85, 59, 50, 64, 63, 56, 57, 58, 49, 54, 60, 57, 78, 60, 76, 62, 57, 57, 71, 62, 61, 45, 68, 59, 69, 69, 64, 64, 108, 76, 58, 62, 90, 66, 55, 76, 61, 70, 61, 79, 79, 78, 71, 114, 62, 40, 81, 97, 55, 49, 70, 85, 65, 65, 49, 64, 62, 64, 60, 47, 72, 56, 63, 71, 58, 77, 79, 59, 66, 56, 74, 56, 51, 81, 50, 70, 68, 105, 70, 59, 78, 59, 151, 59, 62, 64, 68, 59, 74, 49, 65, 70, 48, 51, 77, 74, 67, 44, 59, 52, 83, 66, 67, 68, 43, 78, 84, 45, 69, 62, 75, 57, 52, 67, 49, 83, 58, 57, 37, 47, 57, 46, 67, 68, 82, 113, 102, 58, 51, 97, 47, 64, 62, 38, 48, 62, 64, 87, 55, 59, 42, 71, 56, 56, 60, 64, 49, 73, 56, 72, 69, 69, 61, 64, 49, 59, 83, 55, 57, 67, 55, 56, 75, 99, 71, 75, 79, 95, 80, 71, 63, 57, 65, 46, 63, 58, 72, 66, 71, 110, 38, 81, 60, 63, 65, 67, 73, 65, 53, 110, 74, 54, 85, 52, 84, 53, 62, 85, 66, 65, 59, 73, 67, 69, 50, 82, 60, 67, 78, 61, 84, 66, 65, 66, 58, 54, 88, 57, 54, 66, 71, 69, 65, 57, 69, 76, 41, 57, 55, 70, 58, 91, 94, 71, 77, 77, 69, 51, 65, 64, 81, 53, 61, 53, 61, 55, 44, 63, 70, 45, 58, 76, 65, 55, 67, 90, 79, 78, 72, 51, 62, 57, 93, 103, 75, 77, 48, 41, 55, 72, 73, 62, 72, 53, 51, 67, 82, 91, 97, 72, 62, 63, 76, 65, 83, 72, 78, 59, 82, 63, 88, 51, 74, 95, 75, 36, 85, 65, 56, 46, 69, 62, 76, 65, 66, 59, 59, 73, 62, 52, 72, 47, 40, 69, 75, 76, 48, 67, 63, 71, 70, 74, 64, 59, 60, 95, 61, 42, 64, 68, 63, 59, 70, 53, 56, 78, 68, 60, 60, 61, 83, 49, 53, 63, 66, 86, 63, 77, 108, 92, 68, 50, 77, 61, 76, 63, 78, 76, 32, 65, 64, 53, 57, 65, 59, 67, 104, 70, 67, 66, 54, 90, 55, 87, 83, 60, 80, 74, 87, 98, 69, 58, 66, 60, 61, 64, 59, 57, 72, 62, 85, 53, 69, 70, 67, 64, 63, 64, 49, 86, 81, 69, 54, 49, 59, 53, 59, 84, 68, 53, 53, 65, 46, 71, 61, 112, 76, 56, 69, 93, 86, 56, 63, 70, 61, 60, 65, 50, 76, 56, 55, 93, 63, 56, 70, 85, 64, 69, 80, 79, 59, 46, 62, 62, 66, 59, 67, 57, 60, 68, 78, 88, 63, 81, 65, 57, 68, 89, 62, 50, 57, 96, 48, 53, 48, 60, 60, 66, 69, 54, 106, 80, 75, 79, 63, 66, 92, 57, 43, 79, 83, 57, 67, 42, 83, 69, 68, 63, 55, 86, 57, 78, 26, 55, 60, 46, 75, 56, 98, 42, 64, 75, 88, 45, 67, 51, 67, 61, 40, 75, 52, 92, 63, 50, 58, 65, 54, 63, 52, 86, 67, 63, 107, 49, 65, 70, 87, 72, 67, 73, 52, 64, 44, 80, 63, 74, 50, 91, 75, 65, 70, 73, 72, 71, 71, 63, 54, 59, 54, 80, 74, 63, 59, 88, 52, 72, 78, 61, 56, 69, 74, 72, 68, 61, 58, 55, 65, 64, 69, 55, 60, 56, 37, 68, 64, 86, 73, 81, 55, 66, 56, 43, 78, 56, 64, 55, 72, 79, 55, 55, 66, 64, 55, 63, 94, 69, 55, 58, 66, 81, 63, 66, 53, 70, 73, 78, 77, 74, 62, 51, 47, 69, 82, 57, 60, 62, 58, 46, 69, 62, 55, 83, 60, 58, 93, 70, 81, 70, 49, 65, 75, 68, 57, 57, 78, 72, 60, 66, 80, 65, 83, 61, 77, 69, 49, 58, 62, 58, 59, 59, 61, 49, 90, 62, 65, 60, 62, 58, 83, 62, 65, 60, 62, 69, 66, 54, 51, 74, 75, 55, 66, 75, 65, 81, 42, 81, 55, 75, 73, 63, 54, 76, 95, 78, 66, 67, 70, 60, 60, 59, 64, 56, 73, 73, 88, 75, 58, 75, 75, 77, 69, 58, 49, 59, 61, 53, 45, 73, 89, 83, 55, 65, 60, 55, 80, 66, 64, 73, 80, 51, 75, 54, 54, 41, 50, 90, 54, 49, 67, 54, 70, 77, 69, 62, 63, 66, 63, 74, 70, 69, 51, 75, 63, 61, 47, 71, 60, 62, 43, 45, 100, 51, 64, 58, 62, 48, 60, 65, 72, 51, 67, 76, 104, 39, 78, 48, 57, 77, 65, 47, 48, 70, 46, 54, 61, 68, 82, 63, 49, 66, 59, 87, 75, 53, 52, 76, 86, 66, 77, 74, 86, 73, 71, 72, 62, 85, 72, 65, 67, 53, 95, 63, 70, 60, 82, 71, 48, 66, 66, 50, 55, 68, 66, 53, 55, 49, 74, 62, 82, 65, 60, 55, 61, 37, 64, 65, 67, 72, 61, 79, 78, 47, 62, 82, 94, 78, 38, 61, 81, 63, 67, 55, 64, 79, 75, 56, 89, 66, 71, 49, 47, 51, 65, 58, 66, 66, 66, 78, 67, 67, 72, 121, 69, 58, 60, 66, 66, 65, 62, 54, 70, 57, 58, 55, 93, 80, 72, 53, 58, 46, 116, 66, 69, 63, 69, 53, 66, 52, 62, 61, 47, 72, 69, 83, 67, 68, 59, 73, 83, 62, 61, 83, 52, 55, 61, 60, 67, 62, 47, 68, 60, 71, 59, 75, 72, 65, 68, 68, 88, 71, 139, 68, 49, 52, 53, 74, 71, 62, 74, 87, 58, 61, 52, 70, 105, 94, 62, 73, 94, 49, 56, 41, 71, 69, 68, 52, 82, 68, 65, 56, 40, 96, 87, 67, 78, 59, 36, 72, 70, 64, 94, 53, 51, 69, 67, 45, 65, 59, 67, 84, 63, 78, 79, 61, 68, 97, 92, 77, 80, 59, 84, 58, 45, 61, 49, 55, 52, 71, 69, 68, 80, 53, 37, 38, 56, 53, 57, 48, 51, 43, 70, 78, 78, 58, 70, 57, 62, 69, 62, 40, 72, 70, 98, 65, 86, 74, 67, 67, 47, 91, 65, 55, 70, 60, 54, 61, 86, 59, 59, 84, 94, 138, 60, 61, 69, 61, 57, 62, 52, 69, 118, 77, 53, 95, 70, 74, 46, 48, 69, 114, 73, 72, 63, 88, 59, 83, 75, 74, 55, 55, 57, 79, 60, 57, 48, 51, 64, 69, 88, 62, 55, 76, 89, 83, 72, 55, 51, 50, 58, 74, 62, 56, 57, 73, 52, 59, 70, 61, 72, 61, 65, 63, 56, 58, 66, 65, 58, 82, 63, 81, 44, 71, 49, 54, 55, 51, 83, 55, 60, 65, 61, 73, 93, 51, 79, 78, 60, 64, 64, 65, 80, 66, 61, 61, 37, 63, 77, 82, 63, 58, 84, 78, 60, 68, 57, 51, 62, 89, 59, 46, 61, 112, 85, 58, 54, 86, 31, 89, 59, 92, 63, 66, 90, 72, 61, 66, 65, 104, 50, 86, 42, 59, 51, 59, 57, 46, 69, 61, 95, 42, 66, 62, 63, 58, 66, 71, 43, 67, 68, 47, 39, 66, 61, 52, 69, 59, 46, 78, 67, 61, 53, 76, 68, 62, 64, 62, 80, 67, 86, 86, 83, 47, 73, 59, 65, 107, 81, 74, 84, 71, 78, 64, 51, 69, 51, 70, 98, 101, 68, 69, 72, 72, 68, 62, 72, 86, 76, 51, 70, 53, 68, 56, 59, 147, 60, 56, 59, 70, 93, 55, 70, 75, 89, 63, 99, 71, 50, 53, 80, 50, 63, 76, 75, 63, 76, 50, 62, 64, 88, 92, 75, 61, 70, 88, 56, 67, 73, 78, 91, 81, 59, 77, 136, 80, 74, 59, 61, 74, 63, 69, 93, 74, 82, 74, 63, 58, 53, 58, 73, 81, 71, 65, 69, 75, 65, 48, 135, 51, 55, 54, 87, 76, 61, 54, 50, 60, 55, 56, 84, 66, 65, 54, 54, 67, 56, 70, 50, 53, 76, 57, 68, 48, 81, 77, 88, 71, 50, 63, 59, 115, 63, 50, 61, 55, 60, 53, 77, 88, 56, 42, 71, 60, 76, 59, 67, 46, 50, 63, 84, 100, 45, 53, 53, 72, 36, 51, 66, 93, 78, 54, 106, 50, 68, 62, 58, 49, 70, 52, 60, 104, 59, 59, 81, 74, 89, 67, 73, 66, 49, 61, 69, 48, 71, 69, 72, 80, 47, 69, 70, 45, 75, 47, 85, 61, 62, 63, 53, 66, 81, 52, 57, 67, 80, 54, 96, 68, 63, 54, 101, 68, 65, 57, 73, 71, 49, 65, 64, 95, 96, 51, 63, 84, 59, 61, 47, 46, 83, 48, 70, 48, 54, 61, 62, 55, 57, 62, 66, 65, 65, 42, 92, 69, 45, 63, 66, 66, 72, 57, 71, 70, 60, 75, 52, 73, 76, 91, 67, 38, 68, 52, 55, 84, 70, 46, 50, 91, 40, 52, 56, 65, 59, 68, 90, 72, 71, 58, 62, 56, 56, 63, 60, 78, 53, 54, 61, 83, 79, 66, 74, 105, 60, 71, 77, 57, 76, 58, 63, 60, 47, 83, 65, 85, 64, 63, 65, 65, 61, 58, 76, 65, 54, 61, 57, 58, 68, 75, 48, 62, 71, 53, 64, 69, 54, 62, 98, 75, 102, 51, 51, 45, 70, 79, 42, 79, 38, 48, 67, 53, 97, 58, 62, 53, 75, 54, 59, 58, 59, 70, 57, 60, 54, 68, 31, 84, 66, 84, 53, 43, 65, 66, 59, 73, 57, 65, 63, 61, 78, 43, 71, 50, 77, 66, 74, 73, 71, 85, 93, 52, 65, 56, 68, 53, 64, 65, 58, 89, 52, 64, 59, 53, 60, 58, 75, 58, 68, 79, 50, 77, 94, 74, 80, 44, 95, 48, 63, 74, 59, 59, 61, 89, 56, 52, 78, 50, 78, 46, 65, 73, 69, 56, 67, 56, 49, 67, 39, 29, 52, 59, 65, 58, 75, 67, 55, 71, 60, 64, 77, 45, 61, 47, 64, 59, 79, 64, 58, 44, 55, 57, 85, 68, 61, 68, 71, 76, 64, 58, 77, 67, 63, 79, 69, 66, 63, 66, 49, 85, 60, 53, 66, 59, 70, 58, 94, 50, 80, 89, 46, 75, 65, 66, 58, 72, 63, 73, 77, 72, 56, 92, 84, 76, 66, 85, 104, 39, 58, 71, 84, 66, 62, 58, 84, 47, 57, 72, 79, 59, 62, 54, 57, 65, 55, 60, 64, 47, 63, 78, 79, 66, 76, 84, 79, 65, 62, 70, 52, 65, 67, 71, 74, 93, 62, 70, 46, 61, 52, 66, 64, 53, 62, 75, 54, 67, 72, 85, 74, 76, 55, 48, 34, 74, 61, 67, 56, 55, 73, 76, 42, 76, 58, 81, 52, 60, 97, 99, 71, 67, 52, 48, 75, 68, 42, 65, 78, 130, 56, 45, 91, 65, 36, 66, 50, 75, 59, 74, 74, 59, 81, 73, 39, 76, 54, 76, 55, 34, 65, 77, 48, 63, 96, 62, 52, 54, 76, 55, 80, 75, 67, 51, 93, 75, 58, 79, 62, 85, 46, 84, 69, 75, 75, 65, 74, 77, 78, 55, 54, 69, 71, 92, 37, 81, 58, 87, 68, 77, 45, 76, 51, 50, 42, 53, 83, 60, 59, 61, 63, 81, 52, 69, 65, 111, 41, 65, 53, 78, 58, 57, 81, 48, 59, 65, 65, 60, 88, 51, 58, 59, 84, 78, 72, 46, 79, 98, 65, 56, 74, 83, 58, 55, 79, 63, 110, 80, 111, 52, 43, 41, 49, 38, 122, 58, 66, 57, 62, 57, 55, 56, 63, 60, 83, 58, 53, 109, 67, 83, 98, 73, 45, 67, 79, 55, 88, 67, 66, 54, 84, 43, 62, 70, 101, 74, 59, 42, 70, 70, 53, 70, 43, 47, 66, 59, 79, 52, 66, 63, 67, 62, 73, 74, 50, 65, 72, 59, 50, 58, 52, 55, 73, 99, 41, 75, 60, 75, 66, 50, 86, 61, 63, 52, 69, 81, 60, 27, 48, 67, 47, 71, 100, 68, 62, 70, 63, 68, 61, 82, 86, 57, 63, 64, 78, 75, 60, 86, 70, 71, 89, 54, 102, 78, 84, 89, 86, 33, 66, 89, 71, 64, 94, 61, 60, 62, 62, 93, 75, 59, 56, 60, 71, 73, 56, 110, 71, 69, 66, 43, 77, 59, 66, 106, 68, 73, 78, 70, 78, 76, 68, 74, 117, 73, 59, 83, 63, 85, 69, 95, 78, 55, 70, 47, 53, 55, 65, 58, 56, 49, 71, 51, 56, 74, 81, 74, 92, 47, 80, 63, 47, 57, 64, 97, 53, 65, 59, 60, 55, 55, 56, 75, 65, 54, 45, 62, 75, 70, 42, 68, 49, 67, 77, 81, 72, 68, 65, 49, 58, 56, 69, 59, 84, 70, 53, 103, 64, 56, 73, 66, 62, 61, 51, 80, 80, 68, 66, 51, 49, 84, 86, 66, 68, 114, 68, 56, 85, 41, 67, 100, 72, 69, 65, 66, 57, 51, 47, 53, 69, 77, 66, 54, 71, 59, 92, 55, 66, 87, 64, 59, 51, 55, 49, 58, 81, 71, 53, 62, 75, 54, 77, 71, 94, 74, 64, 65, 60, 30, 62, 51, 70, 64, 62, 63, 74, 70, 70, 71, 96, 69, 58, 51, 72, 47, 57, 101, 86, 43, 61, 62, 86, 39, 73, 59, 39, 79, 73, 65, 75, 86, 68, 67, 49, 35, 54, 95, 66, 51, 85, 84, 89, 62, 79, 62, 61, 65, 62, 59, 109, 54, 69, 65, 80, 90, 55, 87, 89, 73, 41, 67, 84, 31, 51, 54, 50, 74, 59, 71, 54, 68, 70, 47, 45, 63, 67, 61, 66, 111, 67, 89, 115, 70, 70, 49, 65, 56, 73, 42, 60, 59, 67, 56, 44, 65, 37, 54, 57, 56, 52, 55, 54, 62, 70, 91, 50, 97, 71, 59, 70, 57, 71, 67, 69, 65, 67, 49, 79, 66, 50, 56, 88, 59, 61, 53, 85, 66, 73, 45, 61, 65, 53, 55, 109, 73, 57, 59, 88, 94, 76, 86, 56, 64, 58, 69, 53, 67, 65, 69, 49, 55, 57, 60, 57, 49, 64, 72, 63, 71, 59, 65, 64, 76, 67, 65, 116, 77, 92, 64, 63, 63, 65, 61, 49, 54, 71, 57, 63, 68, 43, 66, 66, 59, 69, 81, 61, 69, 73, 68, 49, 51, 64, 72, 58, 57, 69, 60, 62, 53, 51, 54, 92, 94, 56, 57, 65, 119, 68, 53, 69, 50, 80, 52, 71, 54, 64, 72, 84, 53, 91, 53, 97, 54, 70, 57, 75, 70, 70, 56, 62, 74, 58, 58, 85, 68, 55, 74, 66, 70, 80, 52, 54, 73, 96, 74, 92, 69, 88, 76, 90, 81, 81, 59, 78, 86, 52, 54, 68, 57, 45, 45, 64, 65, 77, 59, 55, 90, 57, 109, 61, 54, 74, 73, 97, 70, 64, 49, 41, 70, 73, 91, 60, 51, 47, 74, 83, 46, 60, 61, 77, 62, 56, 59, 88, 54, 76, 62, 113, 57, 53, 49, 71, 54, 64, 53, 64, 60, 67, 40, 75, 46, 65, 63, 58, 87, 55, 60, 61, 73, 49, 73, 62, 58, 55, 104, 81, 61, 57, 56, 61, 57, 63, 49, 85, 64, 34, 88, 61, 69, 71, 48, 82, 57, 76, 59, 62, 53, 66, 66, 83, 64, 59, 59, 73, 80, 88, 72, 71, 46, 74, 65, 60, 120, 100, 148, 102, 57, 77, 65, 65, 59, 99, 77, 54, 61, 62, 63, 119, 66, 71, 63, 60, 53, 54, 64, 55, 75, 48, 68, 95, 55, 80, 72, 41, 76, 75, 50, 116, 80, 48, 90, 56, 52, 73, 53, 70, 67, 50, 65, 90, 58, 60, 81, 67, 69, 85, 49, 67, 99, 84, 66, 73, 76, 87, 77, 59, 53, 54, 40, 64, 58, 54, 74, 41, 67, 64, 60, 108, 73, 56, 55, 67, 71, 51, 40, 63, 104, 67, 75, 75, 82, 91, 75, 48, 57, 62, 56, 78, 66, 58, 51, 76, 54, 131, 75, 61, 84, 65, 72, 63, 54, 70, 81, 64, 68, 73, 101, 55, 83, 70, 57, 59, 45, 73, 94, 55, 61, 53, 71, 90, 69, 84, 69, 57, 70, 57, 61, 51, 78, 78, 46, 71, 62, 57, 84, 102, 57, 83, 64, 65, 46, 48, 51, 50, 75, 95, 66, 101, 47, 35, 51, 52, 50, 86, 92, 53, 50, 55, 77, 77, 59, 37, 50, 54, 60, 64, 49, 57, 65, 94, 77, 63, 79, 55, 53, 25, 35, 61, 62, 67, 74, 47, 120, 50, 73, 55, 66, 77, 65, 60, 54, 78, 75, 60, 55, 35, 69, 91, 55, 47, 54, 59, 51, 45, 45, 93, 54, 78, 75, 63, 57, 85, 45, 60, 65, 44, 100, 109, 64, 85, 47, 66, 68, 65, 57, 79, 60, 57, 43, 57, 61, 72, 47, 88, 53, 58, 59, 88, 70, 67, 70, 83, 87, 75, 56, 63, 41, 46, 80, 100, 43, 49, 64, 56, 51, 53, 83, 104, 54, 67, 92, 51, 53, 63, 76, 57, 73, 64, 49, 87, 70, 69, 49, 61, 76, 50, 108, 72, 55, 76, 73, 69, 53, 58, 76, 41, 64, 52, 45, 67, 52, 62, 69, 51, 72, 68, 62, 53, 53, 73, 72, 84, 55, 61, 96, 71, 56, 85, 86, 75, 76, 81, 74, 62, 60, 53, 79, 89, 68, 79, 48, 98, 46, 59, 60, 60, 55, 51, 75, 81, 55, 60, 68, 59, 96, 85, 69, 70, 78, 59, 61, 69, 66, 89, 58, 62, 81, 77, 70, 57, 60, 65, 72, 66, 82, 62, 74, 67, 70, 42, 108, 131, 60, 57, 68, 49, 80, 62, 53, 62, 52, 61, 72, 58, 75, 67, 72, 68, 79, 57, 47, 49, 58, 47, 70, 68, 55, 108, 66, 72, 84, 45, 80, 75, 49, 52, 85, 74, 66, 74, 57, 70, 64, 58, 54, 81, 64, 51, 61, 56, 56, 64, 42, 59, 81, 69, 48, 84, 70, 74, 47, 63, 61, 64, 79, 62, 67, 61, 54, 50, 45, 58, 61, 43, 84, 70, 59, 70, 68, 100, 65, 68, 51, 63, 64, 80, 59, 55, 53, 67, 68, 56, 54, 108, 65, 61, 70, 56, 57, 108, 62, 59, 82, 66, 63, 68, 64, 57, 44, 70, 60, 56, 54, 84, 96, 85, 49, 64, 71, 64, 86, 84, 66, 68, 67, 67, 71, 76, 112, 59, 60, 68, 85, 74, 64, 35, 91, 57, 46, 95, 54, 63, 54, 117, 66, 44, 71, 56, 49, 60, 65, 92, 70, 56, 59, 69, 60, 51, 59, 70, 83, 67, 63, 51, 50, 77, 52, 76, 62, 58, 64, 58, 76, 77, 60, 75, 61, 83, 86, 74, 63, 71, 86, 60, 85, 57, 64, 61, 58, 49, 80, 55, 66, 67, 51, 55, 52, 55, 76, 91, 63, 80, 66, 52, 69, 59, 60, 71, 51, 80, 58, 67, 75, 67, 61, 49, 71, 55, 52, 53, 58, 88, 76, 53, 62, 80, 60, 52, 55, 59, 67, 65, 60, 65, 52, 76, 53, 64, 83, 53, 82, 78, 56, 66, 56, 60, 44, 101, 64, 65, 59, 59, 78, 59, 85, 56, 54, 56, 53, 57, 77, 69, 60, 77, 54, 62, 38, 39, 67, 62, 53, 49, 62, 108, 62, 53, 64, 36, 58, 60, 72, 64, 72, 71, 61, 64, 60, 80, 65, 102, 74, 59, 51, 48, 80, 70, 72, 116, 59, 63, 77, 58, 59, 56, 62, 79, 57, 57, 74, 68, 60, 45, 57, 70, 68, 56, 50, 64, 66, 61, 56, 49, 56, 75, 76, 42, 115, 71, 74, 55, 76, 69, 52, 62, 74, 47, 61, 66, 46, 111, 98, 57, 49, 65, 61, 67, 63, 92, 51, 45, 59, 60, 59, 71, 54, 62, 82, 52, 74, 68, 65, 67, 64, 64, 48, 74, 73, 58, 60, 88, 102, 62, 55, 61, 57, 51, 66, 70, 56, 50, 59, 66, 57, 61, 58, 66, 40, 67, 60, 48, 53, 86, 66, 79, 66, 64, 58, 62, 71, 62, 58, 67, 82, 47, 61, 55, 63, 104, 49, 84, 54, 61, 59, 62, 62, 91, 65, 71, 49, 74, 50, 48, 55, 70, 62, 60, 63, 60, 58, 57, 64, 75, 64, 53, 62, 68, 56, 63, 69, 58, 69, 80, 63, 89, 80, 59, 57, 83, 72, 79, 76, 98, 57, 57, 67, 57, 66, 67, 72, 144, 54, 65, 68, 69, 82, 118, 52, 90, 52, 77, 66, 39, 66, 74, 74, 53, 68, 53, 51, 80, 74, 73, 74, 56, 57, 97, 67, 56, 63, 79, 59, 65, 59, 66, 52, 55, 48, 54, 52, 70, 116, 77, 77, 68, 85, 56, 69, 52, 75, 79, 71, 51, 81, 59, 60, 53, 69, 39, 54, 44, 72, 73, 70, 71, 51, 49, 56, 61, 82, 63, 61, 72, 58, 52, 56, 63, 63, 66, 61, 51, 85, 85, 55, 62, 77, 60, 62, 54, 54, 88, 73, 64, 83, 64, 63, 60, 46, 64, 60, 57, 49, 62, 73, 96, 65, 59, 53, 59, 65, 64, 62, 79, 80, 63, 69, 73, 70, 65, 55, 66, 66, 88, 64, 54, 66, 66, 49, 76, 59, 67, 77, 43, 68, 52, 64, 97, 111, 44, 65, 59, 83, 64, 58, 70, 77, 69, 60, 52, 76, 84, 68, 82, 73, 59, 58, 62, 57, 52, 77, 48, 52, 53, 55, 66, 75, 55, 61, 53, 57, 86, 70, 84, 71, 75, 65, 62, 49, 56, 69, 47, 50, 61, 76, 55, 62, 63, 52, 72, 63, 78, 70, 94, 70, 84, 63, 59, 74, 53, 54, 70, 57, 59, 64, 57, 71, 96, 61, 71, 84, 66, 56, 58, 68, 52, 70, 61, 60, 71, 60, 64, 63, 59, 69, 63, 70, 85, 69, 119, 65, 52, 44, 51, 53, 79, 59, 64, 71, 84, 98, 55, 57, 53, 43, 69, 60, 53, 57, 70, 78, 75, 59, 72, 52, 69, 64, 49, 55, 53, 81, 69, 72, 66, 97, 65, 73, 54, 54, 86, 75, 55, 75, 59, 73, 60, 93, 75, 67, 65, 50, 57, 54, 78, 96, 62, 74, 62, 71, 63, 57, 99, 100, 58, 62, 72, 69, 63, 65, 67, 47, 51, 45, 53, 66, 72, 67, 81, 71, 64, 49, 60, 53, 65, 79, 58, 73, 61, 66, 71, 82, 56, 65, 61, 52, 62, 64, 77, 63, 85, 58, 91, 79, 69, 73, 83, 59, 67, 64, 63, 73, 50, 60, 80, 64, 55, 53, 59, 57, 71, 83, 73, 65, 60, 67, 77, 61, 70, 81, 65, 64, 69, 67, 70, 77, 56, 68, 56, 78, 78, 55, 79, 84, 54, 60, 72, 54, 61, 74, 69, 63, 69, 69, 81, 58, 66, 62, 58, 116, 73, 61, 70, 50, 49, 79, 61, 56, 62, 87, 51, 80, 69, 83, 61, 51, 72, 67, 66, 57, 45, 59, 67, 65, 115, 54, 70, 82, 76, 69, 71, 79, 45, 67, 83, 61, 67, 78, 70, 65, 67, 51, 59, 48, 47, 73, 56, 81, 66, 54, 80, 88, 78, 59, 54, 56, 62, 70, 60, 54, 78, 56, 87, 46, 61, 50, 51, 108, 50, 66, 83, 63, 70, 65, 52, 56, 64, 65, 104, 64, 84, 50, 102, 76, 51, 70, 45, 58, 76, 67, 52, 60, 64, 71, 56, 49, 88, 66, 58, 75, 48, 59, 75, 73, 69, 51, 50, 45, 53, 89, 58, 50, 63, 69, 65, 63, 77, 78, 68, 50, 55, 78, 56, 58, 75, 54, 49, 56, 64, 66, 62, 66, 74, 67, 82, 58, 67, 62, 60, 62, 74, 66, 74, 65, 73, 57, 63, 65, 101, 54, 56, 65, 63, 67, 73, 65, 57, 81, 55, 59, 57, 57, 54, 134, 62, 61, 65, 71, 57, 79, 54, 100, 67, 55, 80, 59, 62, 59, 58, 47, 71, 84, 55, 72, 62, 55, 64, 82, 64, 62, 63, 76, 54, 63, 57, 67, 59, 68, 47, 53, 48, 75, 81, 76, 48, 57, 61, 64, 73, 64, 60, 64, 56, 60, 71, 70, 60, 79, 56, 70, 69, 66, 71, 60, 52, 53, 60, 79, 47, 51, 67, 73, 82, 49, 66, 79, 54, 70, 70, 48, 74, 67, 91, 69, 61, 69, 74, 73, 103, 52, 73, 58, 59, 56, 78, 71, 56, 66, 86, 79, 71, 70, 64, 64, 53, 69, 79, 66, 69, 65, 67, 51, 56, 66, 61, 39, 60, 55, 64, 119, 66, 81, 68, 68, 114, 52, 60, 66, 84, 56, 59, 61, 62, 95, 89, 69, 65, 88, 65, 47, 56, 57, 67, 59, 64, 71, 54, 76, 57, 64, 51, 53, 42, 62, 63, 52, 88, 54, 63, 83, 85, 50, 59, 79, 61, 72, 56, 55, 64, 88, 63, 41, 73, 65, 54, 69, 66, 69, 79, 70, 80, 62, 80, 81, 58, 74, 51, 37, 47, 49, 56, 38, 61, 59, 70, 65, 55, 57, 70, 62, 63, 43, 84, 85, 60, 61, 58, 93, 80, 88, 62, 92, 72, 66, 66, 70, 82, 58, 50, 98, 62, 64, 90, 71, 74, 47, 58, 55, 62, 78, 69, 71, 59, 67, 67, 57, 36, 78, 51, 55, 51, 58, 53, 56, 58, 62, 58, 63, 54, 61, 51, 60, 67, 74, 37, 76, 67, 60, 84, 63, 56, 51, 81, 79, 63, 55, 61, 67, 55, 68, 70, 62, 63, 61, 48, 63, 60, 69, 62, 54, 64, 68, 65, 56, 64, 48, 73, 71, 77, 63, 126, 74, 58, 54, 49, 85, 72, 48, 58, 75, 58, 60, 64, 57, 72, 72, 53, 53, 68, 58, 74, 103, 59, 63, 68, 48, 74, 79, 70, 70, 66, 53, 48, 63, 76, 69, 68, 77, 54, 65, 67, 68, 64, 55, 59, 70, 59, 63, 57, 50, 47, 55, 51, 76, 63, 66, 46, 65, 55, 57, 76, 55, 57, 65, 116, 71, 51, 49, 63, 59, 47, 55, 69, 71, 87, 64, 56, 66, 56, 55, 64, 59, 66, 106, 66, 71, 117, 58, 56, 55, 54, 81, 53, 44, 62, 52, 55, 61, 62, 109, 65, 48, 50, 59, 55, 82, 69, 80, 57, 74, 82, 76, 61, 88, 55, 85, 72, 69, 67, 40, 69, 59, 56, 67, 79, 50, 61, 124, 58, 59, 64, 52, 53, 60, 80, 65, 74, 65, 150, 78, 85, 65, 69, 62, 67, 69, 67, 69, 70, 62, 104, 82, 44, 58, 69, 72, 70, 90, 81, 70, 66, 61, 56, 53, 66, 59, 46, 58, 62, 47, 49, 74, 58, 49, 47, 65, 54, 61, 74, 58, 63, 34, 60, 76, 65, 62, 105, 71, 53, 65, 62, 55, 69, 47, 76, 84, 60, 82, 91, 55, 72, 83, 61, 79, 60, 71, 58, 47, 68, 88, 56, 52, 50, 66, 61, 67, 111, 54, 60, 60, 53, 53, 61, 69, 59, 62, 49, 64, 74, 75, 53, 61, 72, 61, 65, 87, 89, 76, 56, 68, 62, 66, 55, 60, 57, 59, 61, 70, 57, 51, 57, 61, 105, 67, 66, 41, 64, 47, 65, 54, 90, 51, 60, 64, 50, 70, 55, 82, 66, 63, 54, 60, 54, 53, 58, 75, 76, 55, 54, 57, 54, 90, 58, 46, 81, 62, 46, 59, 67, 51, 55, 66, 91, 38, 71, 65, 61, 60, 54, 95, 53, 98, 73, 77, 50, 58, 62, 65, 76, 48, 101, 78, 42, 62, 54, 70, 71, 66, 51, 83, 65, 57, 69, 71, 55, 65, 74, 69, 71, 65, 48, 54, 48, 59, 62, 95, 65, 61, 79, 72, 68, 73, 67, 52, 46, 73, 89, 47, 41, 90, 70, 65, 111, 84, 57, 49, 56, 92, 62, 62, 54, 60, 71, 63, 84, 81, 61, 61, 51, 79, 86, 76, 57, 57, 64, 47, 76, 54, 61, 49, 83, 55, 64, 113, 56, 69, 69, 65, 65, 55, 56, 90, 70, 47, 62, 76, 61, 70, 48, 68, 73, 60, 60, 71, 46, 72, 77, 54, 59, 63, 56, 63, 51, 45, 62, 60, 72, 57, 72, 62, 55, 72, 66, 72, 93, 72, 68, 80, 78, 59, 62, 53, 50, 80, 60, 69, 63, 59, 48, 72, 65, 68, 38, 63, 54, 84, 62, 71, 77, 66, 86, 53, 79, 72, 54, 58, 62, 70, 62, 92, 49, 75, 78, 59, 66, 93, 60, 56, 84, 64, 45, 82, 62, 61, 70, 55, 64, 83, 59, 70, 76, 95, 69, 67, 71, 47, 83, 105, 61, 73, 66, 87, 70, 69, 84, 55, 78, 111, 75, 61, 55, 63, 68, 54, 47, 55, 65, 63, 66, 53, 67, 68, 124, 57, 43, 60, 58, 67, 87, 69, 59, 64, 63, 104, 68, 54, 83, 70, 68, 45, 68, 52, 59, 63, 97, 71, 74, 57, 108, 65, 78, 54, 71, 55, 64, 53, 67, 70, 67, 58, 59, 67, 55, 51, 50, 54, 95, 63, 54, 61, 64, 77, 73, 77, 65, 103, 55, 43, 54, 79, 71, 75, 79, 71, 61, 71, 50, 82, 72, 64, 58, 74, 66, 60, 86, 112, 70, 62, 66, 60, 57, 72, 64, 56, 63, 73, 72, 93, 77, 67, 76, 58, 70, 56, 67, 63, 80, 50, 68, 80, 76, 48, 69, 64, 69, 46, 70, 51, 61, 54, 65, 94, 65, 63, 53, 107, 72, 81, 74, 55, 80, 100, 51, 50, 91, 57, 62, 71, 73, 63, 42, 48, 66, 60, 46, 68, 56, 61, 57, 77, 32, 71, 88, 70, 75, 53, 55, 75, 60, 73, 58, 49, 70, 43, 60, 74, 69, 60, 38, 38, 77, 61, 48, 47, 60, 56, 70, 54, 86, 55, 73, 66, 56, 71, 60, 61, 55, 57, 77, 90, 63, 90, 52, 72, 73, 83, 64, 68, 63, 59, 68, 67, 51, 61, 64, 106, 55, 63, 71, 54, 67, 66, 56, 81, 73, 106, 66, 120, 77, 77, 48, 65, 57, 59, 64, 80, 50, 60, 68, 56, 60, 75, 67, 59, 52, 49, 56, 56, 70, 57, 62, 61, 56, 56, 76, 53, 72, 88, 80, 65, 56, 92, 53, 78, 82, 49, 66, 60, 62, 57, 61, 61, 63, 62, 69, 82, 58, 39, 71, 97, 88, 84, 68, 72, 55, 51, 59, 67, 68, 71, 67, 72, 59, 58, 54, 70, 42, 77, 66, 67, 57, 61, 49, 55, 69, 55, 59, 80, 58, 78, 61, 53, 65, 55, 90, 58, 45, 58, 68, 68, 67, 67, 71, 55, 66, 52, 53, 79, 53, 81, 70, 69, 41, 65, 58, 62, 69, 62, 60, 47, 75, 68, 56, 70, 67, 100, 62, 51, 44, 65, 70, 58, 53, 72, 121, 56, 105, 63, 68, 77, 66, 80, 106, 53, 66, 46, 75, 64, 65, 72, 56, 69, 86, 57, 57, 54, 44, 69, 76, 69, 66, 66, 74, 62, 83, 69, 64, 63, 54, 58, 63, 57, 35, 69, 60, 69, 91, 72, 63, 83, 71, 70, 70, 73, 52, 55, 72, 71, 52, 55, 68, 67, 73, 61, 78, 106, 72, 74, 67, 59, 77, 46, 51, 59, 99, 43, 80, 42, 79, 66, 66, 76, 75, 69, 100, 57, 59, 74, 85, 85, 68, 95, 77, 58, 52, 88, 51, 85, 80, 79, 63, 67, 58, 66, 65, 64, 70, 45, 58, 66, 73, 45, 83, 79, 68, 55, 58, 69, 49, 74, 68, 68, 70, 71, 47, 66, 80, 49, 107, 53, 47, 69, 68, 54, 44, 55, 62, 68, 60, 73, 95, 63, 68, 104, 66, 67, 89, 117, 61, 63, 76, 63, 67, 70, 54, 85, 69, 72, 61, 73, 55, 102, 64, 82, 51, 66, 69, 81, 69, 71, 69, 54, 64, 68, 62, 64, 61, 73, 76, 67, 62, 89, 135, 63, 59, 83, 80, 80, 56, 81, 50, 86, 59, 51, 67, 55, 78, 76, 80, 68, 59, 66, 54, 67, 100, 67, 74, 67, 61, 70, 63, 49, 70, 75, 64, 63, 72, 74, 54, 71, 60, 58, 59, 66, 83, 43, 74, 46, 62, 75, 56, 64, 62, 50, 49, 63, 68, 78, 47, 52, 57, 64, 87, 52, 60, 87, 89, 55, 67, 58, 98, 74, 62, 52, 66, 49, 56, 60, 51, 74, 52, 67, 77, 68, 67, 55, 47, 106, 91, 56, 64, 54, 65, 66, 57, 56, 68, 50, 39, 71, 37, 96, 52, 57, 64, 71, 55, 54, 84, 83, 63, 60, 89, 65, 61, 64, 46, 84, 72, 69, 65, 66, 78, 56, 46, 58, 69, 66, 77, 80, 62, 90, 78, 78, 61, 55, 85, 90, 66, 56, 59, 49, 50, 57, 68, 85, 56, 65, 56, 84, 74, 74, 52, 86, 36, 83, 52, 88, 81, 46, 37, 64, 65, 61, 70, 48, 65, 64, 55, 59, 66, 60, 78, 70, 69, 84, 50, 64, 77, 120, 75, 71, 80, 81, 68, 58, 75, 39, 65, 75, 64, 50, 81, 59, 54, 56, 60, 62, 103, 54, 55, 43, 81, 76, 59, 69, 61, 77, 73, 64, 57, 63, 72, 55, 81, 56, 57, 63, 80, 58, 53, 77, 52, 80, 55, 65, 70, 74, 69, 97, 59, 68, 51, 74, 61, 74, 64, 73, 63, 82, 62, 56, 91, 60, 55, 74, 79, 60, 42, 69, 59, 50, 96, 64, 53, 75, 49, 78, 68, 77, 53, 66, 77, 52, 48, 87, 54, 68, 130, 65, 59, 48, 64, 81, 56, 61, 75, 108, 44, 68, 68, 80, 72, 62, 59, 64, 63, 68, 75, 51, 69, 37, 58, 93, 74, 73, 76, 42, 77, 62, 73, 55, 53, 85, 54, 60, 79, 74, 59, 57, 44, 69, 69, 55, 73, 64, 83, 62, 54, 74, 57, 69, 77, 45, 69, 63, 71, 76, 55, 59, 55, 58, 71, 78, 64, 82, 61, 57, 79, 83, 68, 62, 78, 54, 84, 78, 66, 57, 63, 68, 60, 42, 62, 66, 74, 55, 67, 66, 72, 68, 56, 71, 74, 65, 51, 84, 75, 73, 52, 35, 78, 75, 53, 70, 79, 53, 76, 64, 58, 70, 56, 58, 53, 103, 75, 73, 34, 75, 58, 80, 48, 90, 56, 90, 58, 65, 87, 69, 70, 60, 64, 74, 58, 75, 60, 66, 95, 59, 35, 68, 63, 83, 62, 70, 70, 68, 59, 75, 57, 65, 71, 87, 61, 63, 68, 49, 88, 58, 87, 93, 63, 73, 83, 62, 52, 64, 62, 70, 64, 66, 57, 59, 72, 54, 68, 74, 65, 60, 57, 64, 78, 53, 63, 64, 55, 73, 81, 65, 69, 46, 66, 55, 74, 68, 67, 52, 59, 65, 68, 54, 58, 48, 53, 67, 89, 50, 66, 62, 47, 54, 72, 70, 74, 69, 51, 72, 56, 73, 49, 44, 98, 80, 52, 75, 54, 83, 77, 50, 51, 67, 69, 48, 65, 85, 73, 50, 53, 79, 79, 58, 69, 74, 91, 52, 74, 67, 65, 49, 59, 63, 60, 61, 69, 84, 34, 70, 63, 61, 67, 71, 76, 51, 62, 64, 61, 57, 48, 44, 60, 57, 69, 57, 60, 63, 59, 61, 70, 57, 65, 61, 60, 65, 61, 69, 82, 54, 67, 90, 98, 57, 63, 63, 55, 47, 91, 53, 72, 76, 57, 60, 56, 52, 83, 49, 112, 58, 53, 54, 63, 82, 72, 53, 57, 66, 73, 68, 110, 85, 56, 80, 65, 52, 48, 67, 54, 83, 64, 64, 57, 67, 54, 73, 71, 73, 74, 81, 72, 63, 63, 112, 85, 61, 40, 66, 44, 103, 53, 76, 69, 65, 77, 40, 74, 50, 65, 76, 69, 67, 58, 69, 69, 68, 54, 62, 55, 57, 58, 73, 63, 74, 71, 50, 60, 47, 66, 58, 64, 55, 58, 53, 56, 54, 57, 40, 69, 55, 42, 70, 47, 97, 70, 77, 62, 78, 55, 70, 101, 65, 70, 66, 73, 43, 71, 81, 85, 61, 59, 68, 63, 62, 44, 91, 73, 71, 83, 57, 69, 51, 76, 68, 60, 55, 66, 67, 77, 52, 64, 62, 75, 65, 82, 50, 60, 55, 71, 63, 70, 55, 59, 74, 49, 59, 61, 90, 78, 84, 81, 57, 68, 67, 58, 89, 67, 81, 55, 60, 59, 61, 62, 61, 91, 68, 79, 67, 58, 61, 49, 44, 72, 58, 66, 52, 56, 62, 63, 44, 51, 61, 101, 77, 72, 60, 68, 62, 56, 77, 64, 73, 59, 69, 52, 55, 65, 68, 70, 68, 73, 67, 65, 71, 67, 60, 72, 67, 55, 65, 71, 59, 59, 57, 54, 83, 69, 63, 58, 55, 50, 56, 66, 77, 83, 56, 68, 76, 58, 70, 56, 39, 71, 58, 48, 86, 66, 70, 49, 54, 61, 49, 92, 56, 59, 60, 65, 66, 80, 48, 63, 72, 67, 50, 54, 81, 88, 76, 45, 54, 57, 61, 56, 71, 59, 79, 74, 74, 82, 46, 64, 101, 63, 55, 114, 58, 50, 61, 54, 75, 64, 59, 59, 72, 49, 66, 67, 67, 60, 119, 59, 44, 77, 83, 77, 81, 71, 80, 62, 54, 70, 57, 71, 60, 81, 91, 76, 51, 80, 71, 62, 63, 67, 71, 139, 63, 66, 48, 69, 64, 59, 73, 62, 52, 56, 61, 120, 53, 68, 123, 86, 52, 64, 71, 56, 68, 67, 48, 58, 45, 43, 62, 53, 64, 63, 78, 64, 57, 66, 68, 63, 65, 81, 52, 48, 90, 42, 69, 67, 56, 62, 78, 62, 55, 60, 56, 68, 63, 62, 61, 72, 59, 55, 73, 69, 49, 60, 71, 44, 76, 65, 79, 71, 76, 70, 57, 77, 79, 51, 50, 57, 77, 74, 76, 59, 55, 57, 64, 75, 68, 58, 79, 87, 61, 63, 76, 63, 57, 69, 76, 62, 64, 62, 65, 53, 69, 78, 87, 62, 57, 68, 58, 67, 70, 67, 86, 64, 78, 87, 64, 69, 59, 56, 65, 57, 112, 84, 59, 65, 59, 69, 63, 53, 48, 82, 58, 74, 70, 52, 57, 44, 63, 72, 54, 72, 57, 67, 67, 70, 33, 85, 81, 71, 61, 73, 75, 71, 68, 91, 52, 75, 64, 79, 79, 65, 59, 52, 73, 66, 57, 54, 52, 60, 83, 50, 78, 69, 65, 61, 62, 108, 89, 59, 48, 58, 55, 66, 57, 68, 56, 85, 73, 68, 68, 51, 90, 54, 57, 70, 68, 60, 44, 67, 70, 57, 71, 59, 69, 51, 74, 37, 20, 50, 62, 54, 73, 74, 41, 64, 61, 69, 92, 76, 53, 54, 80, 86, 62, 47, 58, 55, 51, 78, 67, 72, 114, 56, 49, 86, 64, 64, 62, 49, 59, 45, 58, 52, 78, 63, 72, 92, 63, 60, 55, 63, 80, 85, 105, 63, 70, 59, 62, 60, 84, 54, 69, 50, 44, 91, 63, 67, 37, 72, 61, 52, 71, 74, 83, 67, 60, 57, 71, 67, 64, 97, 65, 50, 61, 61, 47, 79, 41, 70, 60, 63, 74, 93, 57, 66, 67, 60, 73, 98, 68, 55, 74, 66, 64, 50, 97, 71, 50, 62, 76, 56, 68, 55, 65, 92, 62, 61, 66, 54, 65, 64, 65, 67, 64, 65, 82, 81, 71, 63, 72, 54, 63, 75, 59, 74, 73, 72, 82, 85, 67, 69, 77, 69, 72, 63, 73, 74, 72, 61, 51, 72, 58, 48, 68, 65, 73, 65, 59, 65, 93, 71, 67, 50, 65, 59, 71, 101, 71, 87, 76, 75, 63, 60, 70, 49, 57, 149, 66, 66, 36, 55, 75, 60, 64, 42, 81, 55, 58, 58, 62, 72, 70, 62, 71, 54, 73, 71, 55, 63, 64, 48, 56, 63, 46, 70, 46, 44, 77, 68, 56, 51, 61, 50, 52, 74, 100, 59, 64, 75, 58, 78, 90, 46, 74, 71, 64, 61, 88, 64, 73, 59, 54, 107, 53, 58, 46, 53, 66, 72, 89, 67, 34, 69, 67, 53, 70, 59, 93, 52, 66, 83, 63, 72, 75, 58, 62, 58, 79, 73, 56, 54, 75, 62, 61, 46, 61, 59, 54, 48, 81, 76, 76, 67, 75, 55, 79, 62, 67, 73, 76, 63, 76, 55, 81, 72, 44, 71, 48, 67, 69, 73, 61, 87, 69, 71, 77, 63, 65, 70, 65, 54, 77, 59, 57, 82, 125, 49, 69, 66, 75, 66, 89, 101, 89, 86, 60, 55, 59, 63, 71, 56, 63, 59, 62, 74, 75, 76, 68, 117, 67, 89, 99, 72, 68, 65, 56, 55, 45, 101, 60, 74, 91, 66, 72, 62, 88, 64, 62, 87, 80, 64, 75, 52, 50, 60, 46, 96, 59, 59, 65, 61, 50, 64, 88, 63, 66, 60, 63, 53, 82, 69, 52, 74, 61, 64, 61, 63, 57, 77, 69, 45, 64, 75, 58, 52, 59, 82, 51, 78, 72, 55, 66, 73, 72, 78, 68, 73, 75, 80, 64, 69, 70, 65, 49, 40, 80, 73, 59, 62, 66, 53, 80, 60, 91, 45, 69, 66, 83, 68, 52, 69, 58, 57, 55, 59, 47, 65, 70, 64, 84, 55, 77, 46, 64, 52, 102, 99, 53, 73, 91, 50, 84, 67, 70, 57, 64, 69, 61, 81, 63, 71, 57, 61, 61, 63, 56, 72, 71, 70, 66, 69, 73, 54, 64, 61, 82, 81, 49, 69, 48, 71, 62, 51, 55, 53, 101, 78, 73, 50, 51, 67, 83, 76, 67, 66, 52, 95, 43, 65, 78, 52, 44, 63, 56, 65, 77, 62, 71, 70, 63, 73, 58, 60, 66, 60, 59, 64, 58, 73, 63, 62, 48, 53, 94, 75, 71, 71, 77, 72, 65, 69, 71, 68, 57, 54, 106, 80, 57, 51, 61, 56, 88, 71, 54, 58, 67, 75, 71, 80, 63, 51, 87, 57, 59, 56, 72, 52, 75, 69, 67, 52, 61, 56, 65, 54, 69, 65, 60, 49, 57, 56, 72, 44, 55, 81, 61, 54, 60, 55, 78, 50, 50, 61, 43, 87, 91, 80, 63, 59, 86, 55, 48, 72, 57, 108, 94, 46, 73, 73, 87, 60, 58, 71, 75, 65, 94, 61, 57, 67, 60, 99, 68, 43, 81, 90, 79, 60, 68, 55, 59, 66, 52, 64, 73, 55, 82, 64, 71, 66, 88, 57, 104, 46, 68, 50, 69, 62, 58, 57, 78, 70, 57, 69, 69, 67, 59, 81, 64, 57, 61, 55, 57, 89, 89, 52, 66, 53, 62, 67, 56, 77, 62, 66, 63, 59, 59, 86, 69, 66, 59, 68, 59, 49, 70, 49, 138, 75, 59, 51, 81, 67, 66, 59, 66, 43, 60, 49, 60, 80, 71, 61, 87, 71, 79, 60, 68, 80, 75, 52, 65, 53, 62, 65, 71, 72, 92, 88, 74, 58, 67, 64, 69, 54, 62, 58, 57, 66, 57, 42, 58, 50, 72, 43, 61, 61, 81, 59, 32, 69, 113, 60, 68, 63, 54, 54, 64, 48, 58, 82, 70, 48, 63, 56, 53, 59, 73, 54, 71, 72, 57, 70, 39, 76, 57, 55, 69, 79, 63, 51, 86, 54, 64, 74, 42, 82, 64, 62, 65, 64, 60, 68, 56, 66, 59, 81, 65, 63, 44, 88, 64, 64, 84, 59, 81, 67, 41, 77, 61, 68, 92, 56, 78, 80, 64, 53, 57, 74, 46, 49, 70, 66, 95, 57, 58, 88, 55, 70, 73, 63, 85, 100, 88, 67, 82, 54, 48, 40, 73, 68, 91, 79, 50, 63, 58, 75, 62, 52, 43, 68, 70, 63, 63, 52, 67, 61, 48, 63, 77, 67, 86, 58, 56, 42, 70, 68, 84, 57, 59, 68, 58, 111, 71, 81, 55, 85, 61, 79, 54, 69, 59, 57, 108, 63, 42, 55, 81, 63, 56, 36, 81, 73, 64, 51, 67, 63, 93, 55, 73, 72, 63, 56, 65, 61, 64, 62, 56, 48, 64, 60, 63, 50, 61, 72, 57, 71, 59, 59, 55, 64, 70, 77, 77, 53, 66, 64, 71, 57, 67, 58, 65, 50, 69, 55, 58, 71, 50, 78, 66, 76, 61, 88, 89, 67, 71, 47, 58, 57, 57, 59, 67, 67, 79, 82, 54, 55, 68, 71, 69, 66, 50, 88, 65, 78, 47, 57, 37, 50, 46, 58, 52, 47, 56, 58, 86, 75, 63, 68, 67, 85, 70, 89, 49, 55, 65, 71, 52, 42, 61, 87, 50, 57, 80, 61, 55, 58, 135, 58, 63, 67, 62, 50, 71, 94, 76, 53, 89, 53, 41, 62, 102, 52, 76, 71, 62, 89, 63, 63, 43, 43, 50, 73, 62, 65, 71, 54, 61, 58, 44, 71, 66, 109, 56, 51, 49, 47, 54, 75, 54, 61, 102, 64, 49, 78, 59, 52, 70, 49, 47, 71, 58, 63, 83, 58, 54, 75, 86, 50, 58, 56, 63, 53, 80, 59, 47, 82, 68, 69, 72, 53, 67, 64, 65, 54, 67, 51, 47, 94, 65, 64, 73, 62, 71, 68, 68, 51, 88, 70, 66, 79, 53, 54, 60, 62, 56, 62, 61, 61, 71, 70, 67, 80, 71, 51, 55, 63, 65, 74, 76, 58, 86, 56, 78, 74, 74, 49, 84, 57, 55, 67, 51, 72, 67, 46, 72, 66, 53, 71, 45, 60, 60, 56, 53, 64, 71, 50, 62, 88, 67, 81, 57, 134, 55, 96, 55, 53, 83, 63, 68, 69, 55, 74, 52, 87, 57, 78, 86, 63, 60, 81, 71, 57, 61, 58, 71, 57, 57, 61, 60, 49, 61, 59, 79, 65, 66, 42, 64, 76, 65, 69, 101, 65, 56, 49, 78, 70, 76, 65, 62, 97, 61, 57, 71, 52, 63, 57, 66, 54, 76, 59, 52, 58, 54, 63, 62, 60, 55, 56, 70, 48, 53, 74, 87, 69, 75, 67, 79, 55, 70, 103, 69, 53, 80, 68, 78, 56, 69, 58, 65, 75, 52, 81, 62, 75, 69, 69, 74, 66, 81, 52, 58, 70, 50, 67, 66, 100, 59, 64, 72, 72, 64, 74, 56, 110, 70, 71, 56, 62, 71, 63, 50, 72, 69, 74, 76, 56, 54, 57, 86, 45, 44, 65, 80, 74, 63, 49, 65, 45, 54, 67, 58, 58, 65, 74, 49, 70, 59, 78, 56, 61, 65, 58, 68, 64, 62, 63, 56, 58, 57, 65, 71, 63, 112, 62, 54, 50, 55, 70, 68, 71, 47, 57, 62, 59, 67, 75, 45, 59, 54, 50, 68, 54, 60, 66, 59, 57, 77, 66, 62, 53, 77, 71, 65, 61, 59, 60, 68, 53, 52, 62, 69, 58, 66, 61, 56, 56, 76, 68, 73, 98, 53, 54, 78, 65, 51, 56, 47, 53, 73, 59, 105, 77, 63, 67, 70, 73, 53, 69, 39, 61, 68, 56, 59, 73, 56, 60, 49, 76, 55, 88, 42, 93, 68, 78, 54, 61, 64, 82, 73, 57, 54, 77, 58, 93, 64, 61, 75, 67, 61, 56, 78, 60, 59, 106, 71, 58, 80, 49, 79, 55, 58, 56, 51, 63, 58, 88, 58, 60, 81, 64, 68, 55, 61, 68, 50, 53, 83, 88, 39, 71, 53, 44, 65, 67, 72, 60, 83, 81, 73, 49, 70, 61, 59, 62, 52, 80, 76, 69, 86, 67, 83, 61, 90, 70, 58, 55, 54, 63, 60, 63, 109, 103, 98, 71, 61, 85, 93, 53, 114, 53, 55, 75, 86, 48, 109, 60, 53, 76, 63, 84, 92, 66, 83, 46, 109, 107, 85, 99, 56, 67, 94, 76, 72, 120, 55, 58, 88, 72, 68, 50, 56, 44, 42, 50, 61, 53, 48, 58, 103, 75, 64, 57, 42, 57, 63, 86, 74, 66, 49, 49, 69, 69, 82, 56, 48, 70, 69, 71, 71, 85, 60, 89, 65, 82, 73, 68, 63, 88, 68, 66, 79, 71, 60, 65, 60, 56, 70, 53, 48, 62, 69, 74, 62, 52, 68, 47, 77, 54, 80, 74, 73, 78, 58, 92, 73, 62, 64, 55, 62, 66, 73, 56, 48, 70, 83, 67, 59, 55, 65, 47, 74, 57, 52, 55, 63, 78, 82, 54, 127, 60, 93, 74, 75, 58, 63, 49, 68, 67, 57, 49, 66, 53, 81, 76, 67, 63, 71, 49, 64, 56, 50, 63, 46, 61, 67, 93, 39, 65, 88, 63, 59, 43, 66, 65, 102, 50, 60, 73, 133, 59, 77, 55, 57, 60, 77, 73, 69, 50, 68, 77, 59, 67, 66, 45, 78, 60, 57, 65, 56, 77, 63, 62, 78, 67, 83, 82, 86, 73, 65, 71, 84, 58, 66, 67, 54, 74, 91, 65, 77, 53, 87, 58, 70, 108, 75, 63, 59, 57, 60, 82, 55, 59, 65, 39, 49, 55, 105, 59, 58, 62, 74, 73, 72, 75, 70, 66, 74, 39, 64, 91, 59, 44, 84, 71, 75, 63, 50, 59, 95, 51, 77, 50, 59, 70, 71, 58, 46, 67, 57, 58, 141, 103, 69, 74, 107, 49, 69, 58, 81, 77, 56, 66, 55, 53, 65, 68, 74, 55, 49, 50, 56, 56, 75, 53, 62, 61, 65, 71, 34, 67, 63, 92, 53, 59, 75, 74, 81, 55, 51, 68, 48, 47, 77, 46, 51, 92, 50, 65, 46, 51, 57, 64, 68, 78, 91, 49, 79, 61, 64, 55, 66, 54, 66, 63, 64, 91, 79, 59, 59, 81, 36, 53, 71, 66, 57, 70, 62, 89, 62, 44, 89, 70, 53, 50, 55, 63, 55, 83, 54, 74, 71, 73, 67, 72, 58, 54, 62, 80, 76, 65, 48, 57, 63, 96, 59, 73, 83, 63, 60, 58, 45, 83, 74, 68, 64, 86, 54, 67, 98, 86, 50, 56, 63, 48, 65, 72, 85, 119, 69, 100, 69, 78, 62, 55, 89, 96, 74, 62, 72, 90, 67, 48, 72, 77, 56, 50, 85, 66, 57, 47, 71, 62, 42, 57, 63, 63, 47, 53, 77, 80, 57, 66, 64, 63, 58, 59, 59, 58, 58, 61, 74, 73, 71, 59, 66, 64, 52, 92, 66, 75, 69, 67, 69, 81, 68, 61, 48, 81, 70, 61, 97, 71, 77, 81, 49, 39, 48, 61, 56, 98, 61, 65, 63, 69, 64, 94, 74, 49, 43, 77, 56, 50, 83, 67, 95, 68, 81, 80, 66, 50, 52, 57, 64, 84, 81, 65, 58, 53, 86, 53, 51, 52, 93, 53, 65, 91, 51, 68, 54, 56, 84, 91, 42, 47, 70, 27, 75, 74, 93, 72, 38, 58, 62, 81, 83, 56, 53, 60, 52, 86, 57, 76, 53, 72, 90, 73, 62, 91, 69, 45, 80, 65, 57, 46, 50, 62, 73, 119, 95, 75, 72, 73, 62, 78, 94, 69, 65, 71, 58, 86, 59, 88, 63, 47, 48, 89, 65, 69, 72, 61, 65, 67, 66, 63, 63, 77, 59, 68, 37, 59, 66, 74, 60, 66, 81, 71, 54, 73, 77, 72, 53, 57, 79, 62, 84, 92, 47, 64, 65, 72, 86, 62, 52, 42, 57, 55, 59, 79, 58, 77, 37, 75, 59, 92, 83, 60, 80, 55, 64, 62, 71, 87, 59, 23, 52, 35, 63, 60, 82, 51, 66, 71, 51, 57, 46, 55, 81, 89, 35, 70, 58, 63, 71, 36, 71, 54, 47, 69, 61, 55, 57, 81, 64, 75, 66, 79, 101, 62, 43, 25, 57, 43, 51, 43, 60, 72, 78, 68, 76, 43, 47, 104, 79, 48, 70, 74, 42, 53, 52, 67, 72, 50, 61, 51, 37, 78, 81, 72, 38, 33, 54, 59, 66, 59, 53, 82, 63, 52, 79, 81, 66, 79, 97, 87, 33, 81, 88, 54, 59, 74, 72, 88, 80, 51, 45, 72, 67, 59, 95, 70, 72, 67, 94, 96, 48, 75, 95, 50, 42, 84, 30, 70, 75, 60, 51, 82, 31, 65, 83, 57, 125, 60, 78, 68, 64, 63, 78, 53, 65, 91, 62, 70, 90, 54, 40, 62, 91, 52, 75, 53, 70, 98, 53, 61, 65, 30, 67, 60, 71, 70, 55, 42, 109, 66, 51, 74, 52, 90, 65, 46, 29, 72, 91, 49, 73, 57, 78, 61, 91, 51, 59, 69, 75, 56, 49, 68, 45, 89, 62, 59, 37, 68, 80, 83, 37, 72, 70, 53, 47, 69, 56, 67, 51, 73, 65, 47, 81, 47, 78, 66, 68, 39, 66, 51, 73, 70, 68, 73, 54, 82, 59, 63, 50, 83, 106, 61, 57, 70, 52, 53, 76, 40, 104, 85, 80, 75, 69, 72, 91, 58, 121, 52, 59, 78, 65, 62, 109, 63, 80, 66, 61, 55, 72, 58, 95, 56, 49, 87, 61, 39, 60, 56, 126, 78, 75, 80, 47, 75, 43, 83, 54, 60, 75, 90, 43, 55, 82, 54, 46, 75, 64, 87, 71, 67, 68, 65, 72, 48, 66, 47, 42, 52, 63, 76, 42, 78, 73, 71, 84, 81, 57, 58, 71, 60, 93, 34, 73, 65, 59, 51, 71, 72, 71, 52, 66, 66, 50, 59, 66, 127, 101, 63, 79, 64, 50, 44, 62, 65, 93, 91, 43, 60, 69, 69, 121, 71, 55, 30, 65, 72, 69, 95, 63, 55, 71, 68, 48, 47, 61, 52, 72, 57, 65, 89, 71, 66, 75, 66, 55, 42, 43, 67, 67, 64, 50, 73, 72, 48, 66, 109, 98, 81, 59, 70, 82, 81, 75, 56, 76, 58, 74, 89, 47, 79, 72, 79, 70, 63, 62, 59, 73, 77, 86, 41, 81, 75, 45, 61, 68, 69, 95, 47, 63, 81, 64, 76, 77, 64, 51, 27, 86, 66, 70, 79, 74, 60, 69, 86, 60, 60, 35, 42, 77, 68, 92, 57, 40, 101, 59, 76, 71, 88, 28, 69, 67, 46, 79, 78, 62, 52, 77, 54, 50, 53, 74, 72, 46, 52, 41, 51, 80, 70, 60, 73, 101, 60, 47, 84, 79, 64, 61, 50, 53, 64, 45, 116, 65, 63, 100, 45, 70, 62, 72, 37, 76, 101, 55, 57, 66, 53, 95, 89, 67, 60, 55, 54, 73, 53, 68, 68, 58, 56, 57, 91, 74, 68, 86, 85, 56, 60, 72, 64, 55, 86, 74, 44, 64, 74, 76, 63, 53, 58, 46, 38, 93, 58, 65, 33, 67, 49, 95, 102, 56, 46, 64, 50, 85, 92, 44, 74, 69, 70, 88, 74, 75, 105, 46, 65, 73, 69, 46, 58, 79, 42, 93, 69, 61, 62, 62, 85, 70, 55, 89, 61, 56, 47, 44, 66, 87, 59, 50, 58, 41, 56, 59, 50, 42, 87, 58, 47, 77, 62, 50, 59, 73, 64, 67, 67, 71, 59, 48, 56, 81, 37, 52, 59, 46, 65, 75, 129, 63, 68, 78, 36, 74, 55, 103, 66, 49, 62, 92, 58, 71, 58, 60, 82, 67, 62, 69, 59, 54, 60, 79, 66, 42, 48, 84, 71, 38, 50, 47, 86, 75, 49, 80, 50, 71, 70, 107, 60, 69, 65, 63, 64, 97, 74, 93, 71, 57, 93, 79, 31, 81, 43, 73, 109, 76, 80, 62, 51, 52, 67, 51, 70, 47, 78, 63, 92, 68, 47, 67, 36, 49, 73, 58, 56, 53, 64, 101, 89, 71, 59, 65, 77, 44, 63, 97, 48, 87, 69, 53, 91, 64, 49, 64, 83, 67, 97, 78, 85, 42, 82, 20, 104, 40, 62, 64, 65, 57, 61, 70, 70, 73, 83, 53, 43, 76, 59, 84, 83, 54, 69, 36, 62, 54, 60, 82, 60, 78, 114, 54, 59, 54, 66, 85, 75, 85, 74, 70, 69, 60, 65, 87, 73, 54, 78, 52, 45, 57, 83, 83, 42, 34, 130, 75, 80, 89, 98, 74, 48, 100, 57, 49, 74, 68, 67, 88, 46, 64, 67, 71, 70, 114, 28, 48, 83, 70, 74, 81, 32, 38, 75, 84, 74, 46, 59, 73, 58, 97, 62, 77, 40, 50, 48, 50, 70, 58, 75, 54, 56, 53, 62, 42, 51, 89, 58, 93, 77, 71, 56, 72, 69, 57, 67, 52, 44, 71, 69, 54, 47, 79, 104, 79, 71, 69, 39, 76, 63, 51, 58, 92, 58, 104, 54, 66, 78, 71, 95, 79, 38, 35, 75, 59, 38, 70, 72, 59, 57, 51, 67, 67, 63, 81, 68, 46, 107, 61, 75, 88, 55, 61, 60, 66, 71, 71, 58, 57, 63, 52, 37, 84, 44, 66, 56, 52, 53, 49, 80, 75, 68, 93, 61, 62, 68, 79, 54, 81, 49, 64, 70, 102, 49, 62, 65, 65, 68, 59, 67, 68, 60, 36, 105, 76, 59, 51, 82, 70, 61, 59, 51, 61, 64, 58, 61, 64, 63, 74, 67, 61, 74, 71, 73, 63, 57, 75, 74, 67, 44, 70, 67, 70, 74, 58, 50, 56, 55, 65, 50, 78, 63, 100, 65, 90, 71, 55, 82, 64, 65, 66, 71, 64, 46, 75, 80, 59, 67, 70, 61, 81, 64, 50, 77, 51, 47, 65, 89, 73, 72, 76, 68, 84, 67, 75, 100, 56, 62, 68, 74, 58, 55, 83, 67, 66, 64, 88, 54, 48, 55, 48, 63, 70, 55, 57, 77, 50, 70, 50, 64, 58, 82, 61, 49, 77, 53, 78, 52, 69, 72, 63, 64, 66, 63, 59, 67, 60, 74, 55, 64, 95, 75, 61, 116, 68, 84, 66, 53, 55, 76, 66, 67, 59, 64, 61, 46, 66, 57, 70, 61, 73, 51, 70, 61, 60, 60, 93, 72, 59, 60, 80, 72, 65, 69, 60, 69, 43, 104, 52, 68, 61, 105, 55, 62, 95, 64, 51, 58, 65, 68, 88, 64, 87, 56, 58, 66, 68, 67, 56, 36, 65, 51, 58, 68, 80, 69, 56, 73, 57, 65, 69, 35, 57, 62, 63, 61, 87, 69, 72, 67, 96, 71, 75, 67, 72, 53, 74, 68, 75, 63, 59, 59, 67, 72, 76, 63, 54, 64, 46, 61, 61, 67, 72, 50, 50, 65, 94, 81, 52, 59, 53, 71, 76, 52, 72, 56, 66, 78, 77, 53, 66, 92, 71, 60, 64, 94, 49, 66, 57, 63, 53, 71, 61, 70, 69, 60, 63, 61, 43, 72, 74, 70, 68, 70, 72, 46, 59, 73, 60, 50, 68, 55, 80, 64, 77, 53, 57, 63, 67, 75, 59, 70, 57, 68, 78, 82, 58, 82, 65, 52, 57, 63, 94, 57, 47, 66, 56, 57, 70, 60, 62, 53, 62, 63, 60, 59, 53, 89, 72, 67, 63, 57, 52, 69, 51, 54, 57, 54, 73, 71, 50, 60, 67, 69, 63, 108, 57, 67, 50, 104, 74, 57, 58, 69, 68, 66, 56, 72, 55, 78, 74, 74, 64, 59, 67, 61, 66, 54, 60, 68, 79, 66, 73, 62, 61, 88, 71, 47, 94, 76, 69, 61, 74, 76, 58, 63, 58, 51, 68, 61, 42, 72, 61, 55, 19, 61, 73, 51, 77, 41, 79, 59, 69, 61, 63, 51, 60, 76, 61, 60, 73, 60, 52, 54, 62, 57, 62, 76, 62, 81, 88, 55, 69, 68, 53, 69, 62, 70, 61, 71, 66, 55, 71, 64, 86, 61, 68, 54, 48, 63, 58, 74, 77, 76, 64, 69, 68, 60, 53, 39, 90, 90, 60, 62, 54, 61, 53, 45, 54, 73, 68, 71, 68, 69, 89, 65, 66, 77, 55, 57, 129, 73, 53, 48, 98, 47, 114, 62, 64, 65, 70, 47, 55, 56, 49, 68, 62, 55, 73, 56, 50, 44, 58, 60, 60, 66, 60, 71, 64, 91, 65, 58, 66, 67, 64, 65, 71, 66, 45, 93, 63, 52, 62, 67, 77, 74, 67, 64, 54, 68, 72, 55, 64, 59, 56, 83, 78, 81, 102, 67, 55, 74, 72, 68, 49, 90, 65, 51, 56, 61, 56, 54, 56, 67, 76, 68, 59, 61, 61, 66, 68, 70, 66, 70, 76, 52, 46, 59, 81, 69, 56, 61, 61, 63, 53, 113, 63, 69, 69, 85, 68, 69, 81, 61, 66, 63, 77, 67, 141, 72, 54, 91, 65, 58, 68, 59, 59, 53, 59, 112, 75, 59, 70, 76, 66, 52, 82, 49, 55, 66, 61, 57, 59, 67, 67, 61, 64, 61, 77, 70, 57, 72, 67, 77, 72, 83, 79, 89, 74, 54, 56, 73, 68, 67, 63, 72, 62, 72, 44, 65, 53, 54, 64, 64, 60, 58, 63, 62, 66, 61, 90, 56, 78, 60, 88, 60, 67, 63, 70, 75, 56, 56, 69, 92, 47, 56, 65, 49, 60, 69, 55, 74, 73, 58, 50, 61, 61, 86, 61, 81, 69, 64, 58, 124, 61, 60, 74, 61, 61, 66, 45, 55, 76, 68, 67, 51, 60, 64, 64, 75, 79, 73, 63, 64, 71, 69, 66, 64, 58, 66, 61, 87, 52, 73, 67, 71, 133, 56, 62, 73, 59, 80, 56, 52, 61, 80, 70, 70, 65, 72, 70, 45, 59, 73, 51, 58, 75, 66, 78, 69, 71, 77, 65, 73, 69, 62, 71, 70, 85, 54, 51, 54, 62, 67, 53, 64, 70, 64, 61, 56, 86, 48, 56, 67, 70, 74, 46, 77, 59, 55, 75, 68, 54, 66, 86, 45, 66, 56, 65, 63, 91, 61, 57, 65, 80, 62, 76, 58, 60, 72, 57, 75, 97, 58, 54, 64, 62, 69, 51, 55, 54, 81, 97, 59, 68, 78, 55, 57, 55, 68, 101, 92, 46, 69, 60, 72, 69, 54, 75, 55, 75, 73, 70, 91, 76, 78, 87, 81, 160, 73, 65, 64, 72, 51, 68, 88, 67, 56, 53, 79, 62, 58, 63, 72, 32, 62, 61, 49, 60, 90, 66, 64, 71, 75, 57, 57, 60, 82, 66, 47, 54, 49, 52, 61, 56, 59, 78, 74, 61, 46, 64, 47, 59, 57, 44, 93, 54, 67, 67, 57, 73, 60, 75, 64, 58, 52, 63, 64, 83, 65, 73, 69, 60, 59, 49, 59, 62, 72, 74, 81, 63, 76, 76, 61, 62, 52, 62, 59, 65, 67, 78, 65, 55, 53, 77, 74, 58, 54, 59, 68, 73, 66, 91, 63, 69, 52, 79, 47, 54, 78, 65, 74, 52, 62, 69, 69, 68, 67, 85, 72, 72, 64, 64, 39, 65, 62, 93, 61, 66, 69, 47, 118, 77, 71, 72, 46, 64, 62, 57, 104, 63, 47, 64, 70, 65, 61, 71, 63, 74, 66, 78, 99, 61, 65, 66, 79, 70, 64, 71, 70, 62, 57, 82, 50, 78, 64, 77, 59, 48, 49, 56, 83, 56, 52, 58, 76, 42, 71, 57, 56, 77, 71, 60, 75, 96, 78, 101, 67, 46, 65, 56, 62, 63, 75, 67, 75, 94, 59, 64, 60, 76, 73, 73, 55, 66, 57, 57, 48, 57, 84, 65, 53, 66, 69, 48, 53, 74, 44, 57, 56, 70, 66, 47, 53, 67, 81, 70, 71, 52, 49, 58, 68, 57, 52, 58, 58, 57, 60, 59, 67, 70, 57, 53, 72, 79, 63, 92, 71, 123, 66, 74, 69, 58, 70, 58, 109, 51, 74, 61, 61, 67, 67, 66, 43, 55, 63, 72, 77, 53, 72, 67, 59, 55, 66, 70, 41, 56, 73, 46, 47, 106, 57, 57, 84, 56, 51, 71, 84, 79, 62, 64, 61, 43, 91, 68, 54, 91, 65, 93, 52, 80, 63, 78, 75, 78, 63, 54, 76, 63, 71, 83, 66, 54, 60, 67, 57, 58, 80, 70, 108, 51, 62, 69, 66, 82, 66, 68, 70, 77, 56, 78, 50, 57, 54, 82, 86, 62, 68, 81, 68, 83, 67, 64, 64, 75, 78, 44, 81, 45, 72, 61, 54, 54, 40, 75, 50, 68, 43, 78, 56, 74, 44, 64, 54, 59, 130, 102, 70, 66, 61, 62, 71, 70, 63, 100, 59, 74, 74, 68, 58, 64, 55, 62, 69, 78, 55, 61, 56, 59, 75, 65, 56, 59, 55, 63, 54, 79, 73, 56, 47, 54, 74, 46, 65, 56, 69, 78, 62, 72, 64, 92, 67, 82, 79, 74, 64, 69, 73, 80, 67, 84, 91, 60, 87, 67, 53, 55, 61, 69, 56, 62, 58, 78, 110, 86, 64, 40, 65, 75, 57, 85, 65, 50, 64, 68, 72, 67, 58, 56, 64, 65, 112, 65, 93, 68, 57, 66, 64, 50, 70, 51, 63, 125, 69, 72, 62, 67, 59, 67, 108, 71, 86, 51, 61, 59, 104, 75, 61, 53, 52, 74, 54, 73, 65, 64, 81, 65, 51, 60, 65, 73, 79, 59, 58, 48, 76, 65, 57, 72, 66, 82, 60, 61, 64, 66, 61, 71, 73, 89, 31, 72, 62, 77, 64, 83, 54, 53, 73, 71, 33, 72, 61, 70, 92, 64, 115, 58, 80, 68, 64, 67, 61, 77, 59, 74, 66, 55, 66, 59, 59, 66, 40, 70, 52, 77, 70, 61, 55, 63, 49, 85, 72, 65, 59, 75, 69, 76, 112, 51, 93, 79, 57, 57, 61, 39, 58, 50, 69, 73, 48, 74, 65, 56, 71, 112, 72, 49, 83, 78, 98, 70, 54, 59, 52, 68, 103, 61, 57, 76, 51, 64, 67, 47, 63, 70, 72, 67, 62, 51, 70, 63, 49, 79, 57, 90, 63, 62, 93, 59, 57, 112, 57, 51, 94, 69, 85, 40, 52, 68, 42, 52, 63, 53, 73, 59, 66, 56, 132, 65, 70, 56, 78, 59, 110, 63, 56, 53, 69, 87, 70, 50, 36, 69, 106, 44, 61, 60, 51, 62, 60, 98, 103, 55, 66, 76, 55, 63, 53, 55, 40, 54, 52, 67, 64, 81, 61, 50, 63, 106, 61, 92, 50, 21, 74, 63, 72, 59, 61, 58, 88, 68, 81, 63, 45, 55, 52, 47, 61, 58, 68, 67, 33, 56, 57, 120, 63, 65, 69, 71, 71, 48, 76, 48, 79, 59, 70, 48, 49, 49, 66, 69, 65, 51, 48, 53, 66, 74, 63, 80, 62, 59, 56, 72, 58, 67, 61, 80, 87, 60, 68, 65, 68, 41, 59, 70, 68, 61, 68, 57, 78, 50, 72, 84, 68, 73, 68, 65, 52, 55, 66, 65, 80, 75, 52, 82, 57, 73, 73, 66, 49, 59, 72, 53, 77, 66, 44, 88, 68, 59, 57, 57, 48, 55, 78, 58, 64, 81, 58, 60, 58, 57, 68, 47, 69, 54, 72, 61, 70, 60, 89, 57, 54, 50, 68, 71, 69, 73, 44, 54, 50, 89, 56, 49, 46, 66, 79, 72, 55, 77, 74, 52, 55, 79, 46, 79, 43, 69, 60, 74, 69, 59, 60, 64, 62, 51, 77, 44, 67, 51, 50, 71, 47, 40, 71, 74, 51, 76, 64, 96, 72, 66, 69, 101, 75, 62, 67, 55, 73, 60, 56, 67, 54, 66, 38, 79, 75, 71, 66, 61, 68, 61, 73, 54, 70, 75, 65, 70, 65, 72, 64, 77, 65, 68, 62, 63, 84, 71, 71, 69, 57, 51, 50, 50, 70, 55, 68, 56, 61, 63, 58, 62, 65, 59, 86, 92, 61, 70, 71, 61, 51, 60, 59, 66, 58, 33, 66, 78, 80, 70, 56, 74, 83, 56, 61, 56, 82, 58, 51, 60, 68, 59, 64, 76, 57, 58, 50, 68, 76, 49, 70, 79, 76, 68, 79, 65, 58, 65, 62, 56, 88, 96, 69, 181, 75, 81, 90, 57, 54, 55, 50, 71, 71, 73, 73, 64, 47, 58, 70, 57, 67, 51, 81, 53, 49, 94, 70, 62, 74, 60, 71, 85, 59, 56, 86, 61, 76, 58, 64, 104, 90, 55, 67, 62, 74, 54, 75, 66, 57, 55, 78, 78, 65, 78, 52, 82, 69, 42, 45, 44, 75, 58, 62, 91, 67, 55, 87, 86, 64, 73, 73, 82, 138, 97, 76, 71, 57, 88, 58, 79, 65, 52, 84, 70, 71, 46, 101, 58, 70, 93, 69, 89, 55, 64, 83, 51, 65, 72, 70, 54, 50, 52, 69, 63, 86, 53, 79, 94, 75, 57, 52, 60, 61, 65, 60, 55, 64, 55, 80, 65, 70, 66, 56, 48, 39, 65, 43, 76, 75, 60, 71, 71, 92, 55, 51, 40, 72, 60, 60, 58, 61, 70, 31, 73, 75, 93, 56, 47, 46, 62, 76, 54, 56, 56, 54, 69, 88, 80, 57, 75, 56, 39, 77, 56, 53, 56, 47, 83, 62, 67, 68, 78, 90, 66, 59, 65, 61, 65, 81, 67, 83, 71, 90, 85, 71, 65, 69, 84, 65, 58, 64, 55, 87, 58, 52, 45, 75, 61, 65, 82, 58, 99, 64, 57, 61, 44, 69, 56, 46, 58, 98, 51, 76, 47, 57, 50, 59, 46, 62, 83, 63, 66, 79, 76, 67, 70, 78, 76, 66, 70, 80, 71, 62, 52, 66, 94, 98, 57, 38, 90, 70, 66, 73, 53, 57, 63, 68, 55, 71, 57, 76, 43, 67, 83, 53, 62, 59, 57, 55, 53, 63, 75, 53, 50, 90, 63, 78, 76, 54, 74, 62, 65, 68, 51, 55, 65, 76, 80, 62, 62, 65, 85, 56, 64, 84, 50, 82, 60, 94, 67, 79, 46, 67, 65, 59, 53, 66, 65, 60, 54, 60, 81, 70, 55, 55, 65, 62, 67, 56, 45, 62, 56, 71, 61, 62, 62, 52, 66, 57, 79, 61, 71, 68, 80, 71, 81, 56, 58, 64, 55, 76, 56, 68, 62, 68, 69, 70, 108, 42, 57, 104, 71, 113, 90, 55, 84, 66, 74, 71, 69, 57, 72, 65, 94, 61, 58, 67, 49, 67, 74, 58, 82, 86, 75, 47, 54, 69, 72, 50, 70, 61, 57, 58, 58, 67, 58, 67, 77, 52, 44, 72, 58, 98, 53, 56, 55, 41, 66, 56, 72, 45, 58, 63, 69, 89, 49, 55, 59, 78, 51, 60, 55, 65, 61, 68, 48, 72, 77, 63, 61, 59, 101, 62, 78, 69, 78, 72, 52, 56, 89, 75, 63, 57, 62, 62, 83, 78, 63, 72, 77, 60, 75, 65, 58, 48, 97, 61, 61, 83, 61, 77, 51, 68, 87, 63, 56, 69, 42, 50, 60, 71, 70, 73, 46, 67, 48, 74, 71, 77, 97, 65, 51, 56, 70, 66, 54, 76, 69, 57, 59, 82, 51, 81, 69, 70, 56, 60, 63, 52, 58, 47, 64, 50, 51, 64, 81, 52, 40, 64, 81, 77, 50, 54, 77, 44, 62, 73, 58, 65, 60, 65, 50, 56, 69, 52, 48, 50, 50, 84, 122, 60, 62, 78, 61, 64, 79, 56, 66, 61, 62, 58, 48, 55, 55, 63, 49, 75, 75, 44, 56, 53, 69, 56, 67, 58, 52, 70, 79, 54, 60, 64, 74, 64, 58, 72, 71, 50, 66, 65, 48, 80, 73, 74, 66, 61, 83, 76, 75, 60, 47, 69, 51, 72, 54, 84, 63, 59, 56, 55, 66, 67, 72, 129, 80, 78, 66, 62, 56, 73, 53, 83, 47, 57, 76, 68, 49, 73, 76, 38, 166, 59, 44, 82, 72, 73, 70, 49, 55, 66, 61, 74, 84, 66, 86, 63, 58, 58, 60, 43, 71, 64, 66, 59, 72, 63, 59, 65, 81, 42, 50, 83, 51, 65, 58, 75, 71, 58, 107, 62, 44, 68, 76, 65, 63, 97, 81, 47, 63, 62, 67, 52, 56, 69, 84, 59, 81, 64, 68, 71, 70, 69, 48, 74, 85, 61, 53, 41, 61, 55, 89, 60, 61, 70, 78, 61, 64, 61, 66, 60, 75, 71, 61, 64, 43, 59, 65, 53, 47, 65, 69, 63, 84, 69, 64, 71, 99, 62, 58, 50, 70, 54, 73, 66, 67, 61, 54, 47, 82, 76, 42, 60, 56, 60, 71, 53, 68, 54, 51, 60, 64, 77, 84, 62, 68, 69, 82, 56, 54, 68, 53, 56, 62, 57, 84, 57, 75, 69, 59, 71, 55, 70, 57, 57, 76, 65, 75, 73, 85, 103, 91, 46, 59, 47, 69, 66, 71, 67, 76, 78, 75, 68, 55, 64, 66, 76, 63, 54, 56, 35, 60, 58, 63, 55, 55, 55, 60, 70, 70, 68, 64, 71, 103, 86, 74, 53, 64, 56, 83, 54, 47, 50, 88, 72, 69, 63, 53, 68, 60, 70, 56, 64, 61, 77, 81, 64, 59, 69, 60, 54, 67, 99, 77, 80, 52, 63, 58, 73, 70, 59, 56, 66, 55, 56, 55, 96, 53, 73, 55, 61, 78, 66, 64, 68, 66, 49, 57, 55, 60, 60, 46, 61, 72, 71, 72, 55, 75, 87, 46, 57, 67, 86, 58, 56, 61, 56, 63, 50, 85, 131, 58, 68, 57, 49, 50, 57, 64, 65, 67, 60, 61, 42, 55, 52, 58, 82, 38, 65, 69, 78, 44, 50, 60, 65, 66, 56, 63, 47, 59, 73, 68, 81, 62, 70, 55, 60, 63, 54, 68, 73, 46, 62, 58, 80, 71, 57, 55, 62, 56, 66, 58, 57, 57, 51, 60, 51, 63, 62, 94, 91, 70, 63, 59, 103, 74, 79, 59, 74, 67, 81, 77, 56, 94, 60, 56, 47, 52, 61, 90, 89, 61, 59, 56, 62, 63, 58, 78, 60, 63, 84, 63, 63, 56, 63, 65, 57, 58, 61, 62, 75, 61, 57, 70, 51, 67, 63, 67, 63, 94, 75, 59, 81, 66, 62, 86, 54, 74, 102, 54, 83, 52, 48, 57, 44, 58, 74, 62, 97, 68, 86, 53, 60, 56, 56, 60, 60, 51, 66, 74, 65, 58, 65, 61, 70, 77, 59, 76, 50, 71, 60, 54, 70, 76, 58, 65, 66, 64, 55, 87, 109, 86, 83, 71, 64, 68, 107, 73, 35, 76, 60, 71, 74, 71, 93, 60, 65, 94, 60, 64, 67, 107, 64, 46, 80, 67, 64, 73, 67, 57, 67, 51, 57, 61, 73, 63, 58, 71, 64, 59, 65, 62, 65, 54, 73, 73, 71, 56, 76, 59, 73, 59, 52, 48, 62, 54, 57, 81, 55, 62, 98, 56, 61, 60, 87, 84, 82, 63, 67, 63, 65, 59, 66, 75, 58, 55, 62, 72, 59, 75, 55, 49, 71, 66, 96, 55, 75, 69, 57, 102, 55, 65, 71, 43, 67, 48, 64, 80, 72, 63, 52, 63, 69, 68, 64, 96, 61, 71, 63, 45, 62, 63, 53, 54, 82, 64, 55, 65, 78, 42, 70, 65, 56, 53, 78, 55, 68, 73, 48, 76, 65, 64, 54, 67, 64, 75, 58, 52, 68, 66, 93, 66, 77, 85, 84, 62, 62, 62, 65, 72, 55, 76, 130, 79, 44, 61, 60, 77, 53, 49, 94, 66, 64, 58, 73, 51, 73, 57, 72, 52, 84, 97, 66, 49, 64, 76, 65, 58, 89, 87, 69, 92, 59, 68, 49, 87, 66, 46, 67, 49, 61, 68, 60, 53, 57, 64, 86, 67, 66, 70, 59, 82, 73, 53, 72, 63, 79, 62, 67, 103, 45, 58, 60, 75, 53, 53, 61, 58, 49, 59, 71, 85, 78, 52, 62, 70, 72, 67, 57, 69, 47, 129, 66, 82, 77, 66, 81, 84, 58, 65, 49, 60, 65, 61, 55, 57, 82, 65, 60, 58, 54, 111, 68, 53, 63, 66, 45, 95, 67, 75, 130, 54, 57, 62, 71, 57, 66, 68, 91, 64, 65, 67, 66, 63, 58, 64, 64, 75, 65, 78, 58, 54, 69, 63, 63, 53, 98, 61, 52, 79, 96, 60, 66, 58, 48, 67, 70, 58, 59, 75, 48, 67, 55, 65, 70, 57, 72, 70, 91, 77, 70, 64, 48, 68, 75, 44, 58, 66, 60, 67, 60, 53, 60, 82, 62, 66, 54, 85, 74, 76, 58, 96, 61, 76, 55, 84, 59, 60, 48, 83, 47, 64, 71, 69, 65, 95, 49, 61, 101, 76, 72, 54, 70, 70, 55, 94, 89, 50, 65, 43, 54, 94, 115, 69, 66, 77, 62, 93, 63, 58, 61, 69, 50, 70, 46, 71, 70, 111, 67, 68, 60, 55, 82, 62, 77, 81, 60, 78, 34, 61, 56, 54, 84, 92, 66, 57, 55, 70, 46, 57, 59, 72, 65, 68, 55, 79, 62, 53, 58, 62, 107, 57, 72, 63, 87, 53, 73, 73, 62, 61, 53, 84, 66, 59, 72, 101, 69, 79, 63, 38, 44, 81, 53, 69, 68, 106, 81, 104, 79, 61, 74, 62, 63, 51, 53, 121, 63, 85, 54, 69, 78, 63, 74, 65, 86, 64, 52, 68, 62, 64, 73, 92, 65, 69, 58, 56, 57, 67, 67, 63, 52, 67, 58, 56, 58, 65, 63, 84, 72, 55, 44, 59, 76, 53, 82, 75, 52, 85, 70, 95, 51, 51, 67, 80, 60, 55, 61, 57, 51, 92, 67, 59, 55, 73, 77, 79, 59, 76, 73, 54, 82, 61, 63, 62, 78, 53, 75, 75, 61, 61, 62, 48, 70, 54, 58, 52, 96, 65, 57, 62, 52, 61, 51, 71, 84, 73, 63, 51, 70, 79, 65, 73, 105, 58, 56, 50, 42, 68, 50, 55, 52, 70, 50, 76, 97, 47, 59, 78, 62, 67, 70, 101, 86, 69, 51, 63, 80, 71, 57, 79, 53, 71, 79, 43, 52, 56, 41, 80, 73, 56, 64, 50, 106, 49, 64, 72, 58, 44, 85, 44, 62, 38, 64, 59, 70, 60, 86, 71, 88, 74, 64, 67, 69, 61, 64, 66, 65, 63, 84, 120, 58, 78, 64, 66, 62, 33, 56, 56, 96, 51, 45, 67, 61, 81, 53, 65, 115, 49, 71, 85, 69, 44, 52, 42, 57, 56, 113, 103, 59, 66, 60, 81, 53, 48, 50, 101, 88, 70, 79, 63, 70, 103, 58, 73, 51, 64, 64, 74, 86, 47, 100, 71, 66, 63, 67, 87, 72, 56, 69, 64, 79, 46, 45, 60, 50, 68, 50, 57, 74, 80, 78, 55, 59, 64, 47, 52, 61, 56, 65, 56, 72, 62, 87, 86, 64, 52, 85, 72, 100, 50, 55, 59, 69, 68, 104, 60, 76, 70, 87, 45, 55, 55, 78, 103, 73, 68, 47, 65, 69, 33, 99, 66, 73, 68, 56, 65, 52, 76, 66, 66, 47, 48, 50, 46, 72, 71, 59, 51, 49, 42, 67, 57, 68, 51, 54, 57, 75, 67, 60, 64, 64, 59, 70, 53, 72, 75, 58, 82, 62, 49, 69, 88, 52, 67, 66, 62, 54, 70, 59, 59, 106, 97, 54, 145, 71, 59, 69, 87, 61, 78, 80, 58, 73, 69, 80, 69, 73, 44, 59, 81, 66, 42, 65, 85, 55, 58, 70, 78, 52, 46, 72, 64, 73, 68, 87, 50, 55, 57, 76, 66, 28, 59, 84, 94, 56, 49, 79, 88, 71, 68, 81, 79, 74, 80, 56, 56, 90, 64, 37, 78, 57, 73, 60, 81, 66, 95, 50, 66, 42, 64, 41, 64, 80, 53, 74, 74, 63, 62, 73, 74, 73, 43, 59, 73, 69, 69, 58, 72, 79, 56, 68, 82, 65, 50, 75, 49, 59, 70, 71, 59, 67, 104, 90, 94, 80, 60, 68, 79, 75, 55, 85, 49, 81, 100, 66, 48, 66, 67, 74, 49, 68, 67, 69, 55, 56, 52, 65, 77, 76, 84, 59, 52, 53, 75, 117, 67, 79, 86, 52, 34, 93, 55, 75, 51, 64, 67, 61, 73, 58, 64, 46, 58, 83, 79, 57, 68, 78, 68, 73, 77, 125, 82, 52, 65, 78, 91, 93, 81, 57, 44, 75, 47, 49, 67, 58, 63, 53, 57, 69, 55, 66, 108, 75, 89, 91, 118, 60, 72, 74, 42, 91, 74, 56, 83, 58, 63, 77, 75, 69, 55, 52, 81, 56, 60, 55, 53, 78, 60, 72, 59, 57, 58, 63, 53, 64, 72, 60, 76, 42, 48, 65, 67, 61, 66, 73, 63, 67, 105, 76, 49, 66, 75, 89, 69, 51, 74, 55, 77, 70, 62, 50, 53, 91, 53, 86, 58, 65, 67, 58, 52, 58, 71, 49, 72, 56, 87, 55, 61, 81, 63, 64, 55, 43, 120, 60, 65, 68, 71, 65, 67, 66, 52, 56, 112, 75, 64, 38, 58, 61, 53, 59, 77, 64, 59, 35, 65, 60, 38, 60, 66, 76, 56, 66, 64, 46, 56, 75, 113, 63, 69, 85, 55, 56, 60, 53, 63, 92, 68, 48, 72, 56, 47, 71, 68, 54, 62, 63, 53, 79, 72, 82, 59, 74, 69, 79, 61, 61, 55, 55, 60, 55, 60, 80, 48, 51, 72, 42, 64, 57, 58, 75, 62, 73, 65, 75, 71, 64, 69, 73, 80, 77, 62, 44, 62, 76, 61, 52, 59, 72, 62, 85, 61, 98, 64, 86, 72, 61, 55, 65, 57, 58, 69, 59, 47, 54, 40, 67, 69, 69, 56, 70, 50, 74, 45, 50, 50, 75, 59, 48, 80, 68, 67, 62, 52, 71, 95, 82, 53, 84, 63, 52, 48, 71, 56, 46, 54, 58, 57, 65, 63, 69, 57, 63, 65, 68, 63, 70, 83, 77, 59, 76, 51, 45, 75, 65, 78, 53, 63, 65, 66, 60, 41, 83, 55, 72, 66, 54, 55, 49, 68, 41, 73, 53, 52, 59, 60, 65, 50, 44, 78, 57, 51, 67, 78, 60, 69, 47, 84, 62, 55, 74, 79, 109, 67, 75, 48, 58, 74, 41, 58, 53, 63, 52, 59, 81, 64, 53, 79, 58, 45, 71, 59, 41, 72, 56, 50, 77, 53, 64, 58, 87, 58, 70, 64, 79, 61, 75, 54, 55, 60, 47, 47, 79, 60, 54, 47, 66, 54, 64, 65, 61, 72, 45, 76, 95, 59, 76, 78, 82, 78, 68, 47, 70, 58, 70, 49, 54, 73, 55, 86, 69, 76, 100, 46, 60, 72, 89, 50, 60, 84, 73, 42, 62, 74, 70, 66, 63, 96, 46, 59, 65, 116, 109, 71, 57, 77, 56, 66, 42, 57, 85, 59, 85, 65, 58, 62, 69, 56, 70, 55, 62, 55, 60, 48, 72, 70, 63, 71, 62, 71, 57, 69, 63, 71, 72, 67, 65, 66, 78, 65, 66, 64, 86, 79, 65, 67, 82, 69, 68, 58, 48, 55, 52, 60, 62, 62, 74, 63, 62, 65, 59, 68, 71, 53, 61, 76, 64, 54, 70, 75, 60, 60, 79, 60, 74, 67, 87, 59, 62, 60, 86, 73, 54, 56, 58, 51, 70, 54, 65, 62, 62, 51, 64, 64, 79, 61, 54, 60, 80, 89, 60, 58, 64, 97, 53, 60, 70, 59, 71, 75, 54, 57, 86, 75, 64, 62, 59, 62, 65, 59, 46, 75, 66, 52, 59, 59, 67, 58, 63, 55, 65, 79, 51, 79, 56, 86, 79, 59, 64, 69, 70, 64, 59, 69, 72, 70, 111, 65, 104, 71, 69, 55, 56, 60, 64, 60, 56, 73, 49, 61, 65, 72, 56, 55, 62, 54, 55, 30, 67, 73, 64, 77, 62, 66, 60, 55, 61, 44, 60, 92, 63, 78, 70, 64, 61, 55, 61, 63, 64, 76, 55, 68, 56, 59, 65, 57, 47, 57, 67, 62, 63, 69, 64, 54, 68, 53, 110, 50, 50, 70, 62, 76, 82, 58, 68, 68, 64, 71, 60, 68, 156, 65, 75, 60, 65, 55, 73, 59, 70, 67, 67, 60, 71, 70, 64, 72, 70, 65, 76, 91, 51, 73, 63, 60, 53, 69, 68, 61, 59, 75, 54, 118, 48, 56, 70, 66, 79, 72, 73, 62, 49, 65, 54, 62, 48, 64, 67, 63, 56, 75, 86, 77, 122, 63, 54, 52, 67, 73, 70, 57, 67, 73, 47, 51, 83, 64, 60, 55, 65, 55, 75, 54, 58, 58, 60, 72, 51, 66, 53, 54, 63, 67, 61, 49, 57, 76, 60, 56, 104, 62, 73, 71, 53, 63, 55, 58, 99, 63, 71, 72, 49, 62, 56, 60, 66, 51, 49, 75, 66, 60, 54, 59, 54, 53, 93, 64, 58, 71, 70, 68, 59, 69, 68, 67, 57, 64, 55, 57, 55, 58, 54, 83, 66, 63, 68, 60, 57, 57, 113, 77, 42, 53, 61, 60, 72, 89, 58, 77, 107, 98, 76, 47, 70, 63, 67, 65, 62, 68, 57, 56, 55, 76, 61, 50, 77, 47, 61, 67, 65, 65, 62, 62, 48, 48, 62, 65, 52, 87, 85, 64, 68, 68, 56, 71, 64, 59, 61, 64, 62, 52, 80, 83, 61, 62, 61, 54, 91, 67, 84, 60, 68, 61, 63, 50, 66, 63, 52, 58, 70, 50, 64, 68, 58, 63, 66, 69, 64, 70, 62, 61, 61, 61, 64, 60, 80, 59, 78, 120, 54, 65, 51, 65, 63, 63, 51, 65, 75, 60, 111, 52, 82, 78, 67, 62, 54, 58, 67, 68, 60, 48, 71, 41, 58, 54, 70, 78, 63, 64, 67, 68, 52, 67, 72, 50, 51, 71, 109, 60, 67, 87, 67, 56, 54, 75, 76, 75, 138, 75, 78, 58, 58, 64, 48, 73, 51, 70, 59, 67, 59, 61, 49, 56, 57, 51, 66, 84, 61, 81, 58, 64, 100, 73, 56, 61, 69, 101, 77, 61, 56, 57, 50, 67, 68, 59, 48, 58, 66, 67, 74, 65, 84, 66, 76, 55, 82, 52, 48, 72, 59, 65, 59, 56, 66, 70, 71, 82, 47, 70, 66, 51, 62, 56, 60, 55, 57, 79, 52, 86, 78, 64, 58, 65, 60, 46, 53, 75, 94, 71, 62, 65, 53, 64, 66, 74, 68, 62, 63, 55, 72, 58, 57, 98, 41, 62, 64, 76, 64, 61, 63, 80, 63, 70, 60, 52, 66, 49, 79, 58, 61, 64, 43, 56, 64, 103, 58, 61, 58, 57, 83, 57, 56, 80, 66, 73, 51, 61, 75, 42, 59, 66, 63, 56, 62, 55, 58, 82, 60, 54, 44, 54, 65, 58, 59, 62, 62, 59, 61, 49, 60, 60, 64, 76, 43, 72, 67, 81, 67, 88, 61, 73, 61, 59, 71, 69, 66, 77, 70, 92, 64, 77, 77, 58, 60, 60, 73, 71, 70, 75, 62, 47, 52, 68, 68, 79, 77, 52, 51, 118, 65, 80, 53, 67, 65, 53, 67, 81, 59, 62, 83, 49, 61, 68, 52, 63, 70, 63, 72, 60, 53, 67, 67, 125, 55, 69, 76, 64, 72, 59, 78, 47, 70, 61, 62, 63, 76, 52, 56, 97, 79, 73, 63, 72, 89, 68, 89, 54, 59, 73, 60, 65, 52, 75, 59, 57, 67, 62, 59, 62, 71, 72, 88, 58, 60, 61, 61, 80, 62, 60, 58, 61, 67, 68, 57, 51, 62, 59, 62, 61, 72, 60, 68, 64, 62, 45, 54, 66, 63, 60, 60, 66, 42, 105, 63, 94, 53, 71, 79, 47, 65, 60, 65, 57, 83, 76, 83, 54, 90, 66, 56, 76, 63, 72, 76, 74, 64, 74, 66, 82, 55, 65, 66, 70, 60, 72, 59, 54, 55, 61, 59, 55, 60, 63, 95, 70, 62, 85, 66, 84, 61, 76, 65, 53, 74, 74, 57, 79, 71, 77, 61, 50, 58, 47, 55, 64, 55, 55, 55, 66, 65, 61, 62, 67, 44, 73, 78, 61, 56, 54, 83, 69, 67, 89, 81, 98, 73, 58, 82, 71, 71, 81, 71, 54, 62, 81, 69, 53, 58, 50, 77, 99, 71, 69, 64, 65, 62, 69, 60, 77, 64, 83, 64, 58, 59, 61, 71, 72, 59, 75, 62, 84, 59, 62, 53, 68, 65, 65, 56, 65, 91, 58, 51, 61, 45, 64, 56, 61, 68, 60, 51, 79, 62, 63, 78, 66, 74, 59, 66, 64, 58, 60, 59, 56, 70, 59, 49, 71, 71, 61, 56, 88, 83, 61, 57, 68, 63, 44, 61, 72, 69, 63, 63, 68, 69, 68, 58, 71, 77, 85, 72, 88, 60, 69, 69, 62, 64, 71, 61, 60, 67, 62, 64, 69, 58, 59, 69, 58, 68, 62, 75, 53, 62, 98, 66, 59, 58, 49, 68, 60, 63, 82, 67, 79, 56, 57, 66, 119, 77, 59, 72, 103, 53, 63, 64, 53, 62, 63, 60, 75, 68, 70, 49, 77, 78, 76, 75, 67, 64, 60, 102, 63, 67, 58, 63, 90, 63, 40, 64, 67, 60, 73, 100, 79, 54, 48, 64, 65, 57, 67, 64, 60, 85, 55, 55, 62, 57, 79, 53, 68, 59, 76, 64, 61, 52, 65, 64, 65, 75, 71, 69, 51, 65, 45, 78, 67, 50, 87, 80, 89, 56, 89, 57, 55, 69, 56, 69, 59, 81, 72, 60, 73, 72, 67, 53, 75, 59, 134, 85, 54, 71, 62, 56, 61, 60, 111, 61, 64, 66, 68, 77, 46, 51, 78, 65, 55, 47, 47, 76, 69, 53, 58, 73, 61, 56, 66, 63, 90, 70, 66, 52, 64, 68, 66, 86, 57, 68, 51, 66, 74, 92, 76, 63, 66, 67, 56, 71, 60, 54, 70, 41, 60, 80, 60, 92, 67, 56, 59, 70, 62, 72, 58, 70, 68, 76, 69, 82, 59, 58, 58, 61, 55, 56, 69, 65, 78, 89, 59, 46, 72, 69, 46, 77, 120, 62, 75, 54, 76, 80, 60, 72, 74, 69, 58, 65, 58, 71, 57, 58, 75, 67, 76, 52, 57, 64, 60, 60, 69, 68, 91, 89, 53, 57, 66, 58, 89, 70, 53, 68, 62, 67, 65, 56, 62, 46, 48, 54, 61, 72, 54, 69, 131, 54, 64, 55, 63, 63, 58, 67, 55, 93, 66, 77, 52, 60, 58, 58, 53, 55, 69, 67, 66, 74, 49, 57, 59, 36, 69, 60, 77, 63, 92, 66, 61, 60, 69, 58, 57, 65, 65, 48, 66, 59, 76, 63, 48, 56, 85, 64, 58, 71, 77, 68, 67, 72, 57, 86, 56, 73, 89, 55, 54, 60, 90, 61, 75, 75, 87, 100, 65, 73, 51, 87, 66, 65, 69, 101, 69, 63, 61, 77, 58, 75, 54, 71, 57, 94, 54, 70, 66, 63, 66, 50, 68, 54, 68, 60, 85, 58, 61, 67, 65, 57, 63, 48, 49, 53, 66, 67, 60, 69, 107, 69, 59, 67, 56, 59, 90, 67, 78, 66, 62, 73, 73, 76, 94, 66, 58, 82, 55, 55, 56, 56, 71, 95, 65, 36, 96, 51, 65, 66, 68, 63, 54, 57, 63, 90, 73, 58, 61, 62, 95, 59, 109, 56, 70, 68, 59, 60, 70, 77, 61, 70, 89, 79, 58, 75, 57, 63, 59, 68, 55, 58, 66, 50, 58, 64, 71, 58, 84, 45, 104, 71, 60, 69, 66, 69, 64, 63, 33, 55, 79, 67, 61, 58, 55, 51, 105, 69, 121, 74, 55, 70, 59, 69, 62, 61, 74, 65, 65, 82, 60, 51, 56, 59, 64, 56, 65, 56, 57, 66, 63, 77, 63, 72, 64, 59, 60, 60, 96, 66, 61, 59, 63, 55, 47, 80, 72, 61, 64, 86, 51, 58, 59, 64, 64, 61, 90, 65, 76, 55, 71, 82, 56, 61, 70, 57, 61, 66, 55, 58, 67, 55, 66, 67, 69, 65, 52, 68, 64, 61, 80, 57, 67, 45, 54, 66, 97, 59, 73, 63, 60, 60, 86, 62, 52, 53, 49, 52, 56, 65, 57, 70, 69, 91, 76, 55, 66, 49, 71, 85, 58, 56, 82, 61, 72, 52, 73, 98, 61, 67, 79, 58, 42, 49, 64, 61, 99, 62, 65, 63, 68, 71, 39, 63, 66, 50, 64, 70, 53, 66, 46, 67, 53, 77, 61, 61, 61, 117, 55, 79, 63, 64, 83, 64, 90, 81, 46, 54, 59, 52, 58, 48, 61, 57, 63, 63, 63, 52, 73, 49, 83, 68, 64, 59, 66, 63, 62, 67, 61, 63, 96, 81, 71, 65, 76, 65, 55, 60, 49, 95, 63, 41, 62, 61, 56, 54, 56, 48, 54, 63, 56, 51, 49, 49, 66, 103, 47, 90, 61, 75, 80, 71, 52, 55, 52, 71, 76, 66, 63, 79, 74, 61, 54, 62, 89, 68, 61, 85, 74, 74, 66, 59, 75, 85, 44, 74, 60, 67, 69, 59, 67, 61, 56, 97, 85, 56, 43, 53, 85, 61, 85, 92, 58, 63, 51, 66, 54, 63, 55, 53, 60, 57, 85, 64, 54, 57, 96, 66, 58, 50, 63, 60, 74, 77, 86, 89, 76, 53, 62, 66, 90, 60, 68, 54, 74, 57, 54, 64, 82, 56, 73, 64, 56, 68, 69, 60, 62, 65, 105, 83, 64, 42, 61, 63, 103, 66, 63, 48, 87, 54, 52, 58, 64, 119, 59, 57, 60, 51, 53, 68, 61, 71, 70, 85, 70, 63, 51, 47, 95, 68, 64, 61, 62, 53, 65, 62, 67, 61, 73, 63, 67, 65, 116, 72, 60, 72, 58, 61, 64, 61, 50, 66, 68, 68, 66, 57, 76, 68, 54, 64, 53, 63, 64, 84, 65, 68, 69, 91, 59, 57, 101, 59, 51, 53, 94, 76, 58, 58, 58, 60, 75, 71, 71, 46, 53, 60, 59, 58, 60, 73, 65, 59, 62, 55, 72, 69, 60, 70, 78, 67, 66, 96, 58, 60, 59, 72, 55, 59, 57, 46, 130, 83, 64, 61, 76, 65, 55, 68, 55, 64, 81, 66, 74, 68, 68, 69, 75, 106, 57, 76, 57, 58, 59, 63, 58, 63, 56, 63, 77, 60, 55, 78, 58, 59, 55, 72, 62, 65, 117, 66, 61, 67, 56, 50, 61, 47, 83, 70, 55, 62, 70, 62, 68, 62, 55, 71, 93, 63, 65, 67, 63, 66, 92, 59, 106, 78, 55, 61, 56, 59, 66, 76, 80, 65, 61, 55, 59, 59, 66, 51, 63, 61, 63, 42, 65, 89, 67, 59, 56, 60, 62, 62, 70, 63, 51, 69, 61, 64, 64, 58, 62, 68, 102, 62, 60, 56, 54, 57, 64, 57, 54, 60, 71, 54, 51, 65, 79, 61, 60, 70, 55, 61, 61, 70, 59, 55, 52, 73, 55, 66, 68, 54, 60, 60, 59, 64, 56, 57, 63, 68, 66, 58, 57, 85, 53, 59, 67, 58, 54, 77, 66, 57, 74, 65, 64, 70, 62, 78, 71, 51, 68, 48, 83, 56, 81, 63, 97, 92, 63, 57, 68, 73, 60, 58, 66, 78, 57, 73, 66, 66, 53, 69, 66, 67, 47, 56, 76, 72, 65, 67, 67, 54, 54, 73, 42, 63, 61, 81, 64, 71, 56, 67, 62, 73, 56, 60, 65, 58, 63, 65, 93, 60, 61, 56, 64, 68, 75, 64, 67, 59, 59, 66, 72, 81, 67, 65, 61, 68, 53, 54, 62, 87, 60, 121, 63, 59, 62, 71, 61, 58, 59, 74, 60, 62, 48, 62, 53, 64, 67, 68, 50, 58, 69, 71, 49, 88, 33, 65, 59, 65, 62, 61, 54, 50, 55, 60, 119, 55, 54, 51, 56, 77, 81, 76, 69, 66, 58, 60, 67, 35, 56, 69, 80, 81, 61, 62, 66, 65, 54, 61, 81, 60, 63, 60, 55, 60, 62, 69, 62, 58, 49, 84, 56, 58, 83, 87, 75, 54, 53, 53, 67, 59, 72, 88, 54, 63, 71, 70, 52, 83, 49, 73, 77, 58, 91, 60, 75, 59, 67, 72, 76, 67, 61, 63, 54, 69, 38, 70, 78, 61, 50, 90, 61, 76, 89, 48, 56, 57, 103, 61, 151, 68, 88, 66, 71, 62, 56, 60, 64, 89, 60, 65, 83, 66, 71, 62, 69, 124, 74, 61, 59, 58, 68, 74, 57, 101, 51, 56, 51, 65, 64, 55, 69, 81, 54, 56, 66, 60, 67, 71, 39, 63, 84, 60, 56, 81, 80, 102, 59, 65, 71, 59, 53, 59, 79, 70, 45, 46, 71, 80, 97, 76, 65, 62, 83, 63, 38, 59, 81, 70, 72, 61, 61, 64, 70, 58, 53, 78, 71, 62, 59, 50, 80, 58, 79, 40, 88, 74, 68, 64, 71, 81, 49, 57, 44, 74, 57, 85, 86, 52, 58, 63, 82, 61, 58, 95, 66, 61, 70, 51, 68, 54, 69, 75, 79, 56, 45, 77, 54, 53, 82, 50, 103, 83, 61, 50, 62, 82, 75, 73, 72, 65, 50, 50, 41, 62, 45, 59, 85, 60, 104, 64, 84, 68, 58, 82, 54, 69, 90, 81, 55, 52, 58, 79, 62, 72, 62, 75, 80, 71, 77, 75, 54, 72, 63, 102, 58, 75, 57, 74, 59, 57, 71, 79, 59, 65, 75, 56, 55, 25, 47, 82, 61, 50, 76, 55, 62, 98, 68, 71, 73, 45, 58, 61, 66, 72, 60, 75, 46, 67, 72, 85, 61, 70, 83, 66, 63, 95, 63, 55, 73, 96, 52, 64, 48, 78, 47, 72, 65, 99, 65, 46, 59, 62, 92, 55, 67, 73, 72, 56, 51, 90, 73, 55, 59, 59, 47, 74, 56, 62, 61, 58, 70, 60, 60, 71, 80, 86, 66, 56, 81, 65, 70, 71, 59, 58, 47, 70, 59, 66, 70, 100, 63, 49, 82, 44, 70, 73, 68, 85, 44, 98, 85, 122, 63, 44, 66, 62, 98, 46, 83, 106, 41, 62, 54, 64, 54, 73, 60, 42, 62, 56, 68, 39, 52, 56, 43, 56, 39, 98, 64, 66, 189, 57, 85, 60, 54, 63, 56, 58, 68, 40, 75, 96, 45, 139, 69, 51, 93, 80, 84, 60, 51, 82, 60, 66, 69, 67, 85, 61, 64, 59, 78, 79, 68, 77, 71, 68, 59, 99, 64, 59, 57, 61, 77, 69, 60, 58, 64, 58, 48, 46, 49, 61, 50, 94, 79, 49, 69, 56, 82, 81, 64, 59, 80, 71, 48, 56, 68, 82, 68, 59, 69, 70, 58, 56, 96, 61, 74, 70, 53, 72, 66, 66, 65, 88, 68, 110, 41, 54, 64, 64, 70, 71, 69, 66, 47, 83, 67, 77, 82, 64, 60, 77, 80, 57, 56, 88, 57, 59, 69, 60, 50, 74, 56, 81, 69, 60, 63, 57, 66, 47, 58, 63, 76, 65, 57, 85, 67, 75, 53, 57, 69, 67, 60, 43, 47, 57, 71, 81, 79, 51, 79, 73, 72, 56, 66, 73, 55, 72, 50, 94, 73, 52, 63, 51, 99, 75, 65, 58, 61, 70, 54, 43, 63, 61, 68, 69, 50, 46, 72, 64, 53, 78, 74, 61, 69, 76, 81, 62, 69, 62, 80, 53, 67, 50, 69, 71, 79, 55, 61, 57, 66, 55, 57, 123, 75, 60, 55, 67, 51, 53, 75, 35, 47, 50, 64, 75, 86, 40, 74, 68, 61, 61, 63, 67, 50, 88, 75, 61, 124, 51, 47, 65, 66, 63, 68, 75, 60, 53, 61, 84, 51, 68, 54, 63, 77, 79, 86, 77, 58, 72, 59, 67, 52, 53, 83, 74, 123, 59, 45, 46, 51, 69, 62, 85, 55, 99, 64, 53, 59, 134, 77, 76, 62, 57, 52, 75, 72, 65, 52, 63, 70, 48, 81, 52, 60, 66, 96, 91, 66, 67, 47, 71, 63, 41, 55, 68, 63, 65, 48, 69, 56, 72, 49, 58, 69, 56, 67, 78, 59, 105, 65, 63, 62, 77, 52, 65, 67, 76, 66, 50, 52, 52, 64, 60, 61, 60, 89, 64, 68, 63, 68, 61, 51, 72, 57, 76, 69, 86, 34, 55, 59, 52, 70, 69, 61, 55, 58, 79, 79, 50, 87, 85, 47, 60, 55, 108, 59, 66, 70, 53, 56, 80, 62, 80, 71, 55, 71, 71, 73, 52, 56, 39, 62, 63, 60, 87, 49, 60, 46, 48, 69, 65, 41, 67, 57, 63, 85, 57, 68, 72, 69, 59, 62, 52, 66, 40, 64, 92, 58, 55, 67, 59, 68, 52, 94, 67, 71, 86, 63, 62, 90, 70, 52, 56, 73, 65, 78, 67, 68, 71, 61, 56, 75, 113, 80, 68, 68, 55, 64, 55, 73, 82, 68, 82, 72, 57, 102, 46, 58, 65, 53, 56, 60, 70, 60, 63, 55, 59, 47, 58, 75, 69, 77, 64, 67, 67, 38, 91, 83, 84, 66, 61, 50, 62, 45, 61, 58, 82, 73, 71, 94, 75, 74, 44, 54, 71, 46, 57, 82, 71, 73, 96, 72, 62, 67, 60, 97, 115, 47, 78, 86, 63, 75, 69, 84, 77, 89, 96, 63, 91, 55, 79, 42, 70, 60, 70, 82, 58, 56, 56, 46, 58, 62, 70, 45, 78, 51, 60, 71, 62, 76, 73, 71, 70, 81, 70, 73, 36, 55, 68, 86, 55, 45, 80, 59, 56, 60, 55, 55, 85, 120, 55, 74, 63, 55, 72, 63, 68, 64, 72, 64, 91, 68, 65, 84, 68, 68, 74, 59, 57, 64, 56, 55, 48, 61, 95, 66, 64, 49, 54, 56, 64, 82, 51, 64, 68, 64, 63, 67, 68, 69, 99, 73, 57, 56, 66, 71, 75, 73, 50, 72, 65, 61, 67, 50, 58, 83, 72, 59, 73, 69, 69, 49, 56, 65, 57, 52, 64, 61, 78, 80, 66, 86, 131, 67, 60, 83, 75, 86, 87, 63, 66, 50, 46, 62, 94, 55, 58, 64, 51, 75, 59, 60, 77, 65, 83, 48, 91, 61, 57, 70, 52, 76, 77, 58, 82, 66, 71, 81, 67, 76, 85, 77, 45, 49, 56, 47, 53, 70, 57, 60, 68, 59, 80, 61, 55, 76, 48, 64, 60, 41, 66, 70, 78, 83, 55, 142, 68, 75, 69, 57, 81, 46, 60, 85, 60, 63, 76, 111, 65, 54, 68, 71, 64, 215, 81, 53, 68, 71, 56, 68, 49, 43, 66, 69, 70, 64, 57, 52, 55, 48, 60, 68, 70, 72, 56, 58, 64, 80, 67, 52, 68, 66, 74, 71, 62, 60, 73, 71, 70, 74, 65, 68, 55, 98, 74, 89, 74, 77, 70, 70, 59, 57, 56, 50, 76, 68, 53, 57, 63, 57, 39, 81, 64, 63, 72, 87, 88, 50, 49, 62, 47, 70, 81, 56, 67, 53, 69, 59, 65, 65, 51, 56, 89, 54, 85, 70, 63, 47, 49, 65, 48, 56, 77, 47, 56, 82, 54, 65, 62, 59, 48, 45, 85, 71, 41, 48, 51, 71, 75, 78, 64, 71, 63, 64, 57, 70, 56, 71, 38, 97, 68, 61, 52, 68, 60, 67, 63, 58, 60, 91, 55, 69, 41, 64, 74, 84, 75, 61, 69, 59, 77, 71, 60, 60, 81, 51, 60, 69, 77, 56, 63, 62, 53, 91, 44, 53, 69, 40, 75, 60, 69, 54, 121, 73, 74, 49, 51, 74, 84, 82, 110, 67, 77, 79, 64, 42, 52, 73, 89, 52, 79, 67, 62, 66, 49, 67, 76, 67, 76, 78, 78, 76, 57, 76, 85, 85, 68, 83, 58, 62, 50, 104, 56, 67, 43, 55, 42, 78, 85, 61, 63, 58, 124, 74, 61, 74, 55, 85, 71, 80, 74, 76, 82, 45, 82, 82, 100, 56, 77, 54, 45, 73, 61, 76, 77, 60, 50, 52, 85, 61, 57, 76, 69, 65, 78, 55, 61, 43, 64, 63, 63, 49, 81, 62, 53, 61, 57, 55, 75, 46, 63, 52, 98, 69, 64, 64, 52, 78, 81, 63, 84, 51, 62, 60, 78, 60, 68, 59, 66, 59, 48, 63, 61, 36, 53, 69, 57, 60, 59, 68, 72, 78, 48, 47, 51, 68, 69, 58, 68, 63, 57, 36, 54, 67, 61, 53, 59, 73, 60, 69, 56, 82, 53, 64, 78, 56, 82, 60, 66, 75, 87, 64, 62, 70, 129, 63, 61, 47, 59, 57, 67, 57, 93, 96, 71, 52, 58, 50, 49, 65, 74, 95, 55, 73, 41, 66, 68, 72, 69, 80, 74, 66, 60, 70, 92, 57, 76, 55, 81, 67, 68, 53, 112, 54, 59, 65, 58, 58, 53, 77, 84, 67, 76, 64, 56, 54, 61, 68, 71, 62, 83, 62, 76, 65, 44, 50, 64, 72, 71, 63, 61, 83, 70, 85, 51, 61, 60, 65, 69, 109, 52, 82, 74, 43, 62, 70, 68, 86, 49, 73, 83, 46, 85, 58, 68, 64, 84, 64, 70, 53, 88, 55, 86, 44, 72, 80, 75, 61, 65, 66, 67, 59, 79, 46, 53, 56, 74, 91, 69, 76, 48, 77, 45, 47, 63, 56, 60, 60, 73, 48, 78, 86, 67, 52, 67, 67, 59, 74, 74, 67, 47, 68, 80, 64, 69, 71, 41, 87, 67, 59, 90, 80, 50, 60, 53, 61, 80, 66, 58, 47, 55, 60, 82, 73, 61, 73, 58, 54, 65, 55, 49, 65, 56, 57, 64, 63, 66, 51, 73, 62, 60, 47, 65, 66, 42, 59, 59, 60, 63, 61, 67, 55, 54, 76, 61, 43, 72, 90, 53, 67, 66, 68, 68, 64, 61, 69, 61, 58, 56, 70, 95, 74, 64, 56, 59, 68, 94, 67, 107, 71, 113, 55, 44, 66, 76, 55, 63, 61, 44, 66, 73, 96, 110, 68, 54, 51, 80, 44, 73, 40, 55, 53, 52, 60, 76, 76, 56, 51, 54, 78, 62, 66, 44, 80, 34, 68, 59, 70, 67, 80, 78, 73, 47, 65, 77, 82, 95, 48, 46, 68, 31, 63, 84, 70, 61, 70, 86, 49, 48, 60, 60, 53, 52, 85, 72, 69, 63, 57, 71, 51, 62, 94, 75, 58, 69, 60, 59, 41, 75, 73, 60, 75, 107, 59, 59, 46, 60, 55, 67, 72, 55, 78, 68, 87, 62, 61, 73, 82, 55, 54, 81, 70, 57, 51, 70, 56, 95, 31, 49, 69, 103, 45, 50, 71, 101, 74, 72, 65, 68, 63, 47, 85, 60, 43, 48, 48, 67, 62, 48, 58, 72, 71, 60, 73, 65, 60, 61, 67, 65, 82, 56, 75, 50, 61, 52, 58, 69, 61, 114, 70, 63, 39, 52, 57, 54, 67, 61, 64, 81, 62, 81, 84, 53, 62, 57, 87, 42, 54, 63, 67, 60, 66, 66, 65, 95, 65, 80, 57, 55, 68, 65, 74, 91, 67, 64, 63, 44, 101, 56, 40, 58, 76, 107, 73, 104, 40, 46, 64, 88, 79, 105, 93, 67, 60, 53, 61, 65, 60, 69, 57, 67, 69, 72, 58, 82, 56, 53, 53, 64, 65, 66, 82, 71, 61, 64, 76, 67, 68, 64, 78, 67, 59, 104, 58, 92, 65, 69, 66, 64, 74, 80, 79, 55, 63, 60, 70, 67, 86, 65, 58, 68, 69, 58, 69, 55, 69, 82, 52, 64, 58, 79, 63, 55, 51, 58, 65, 74, 93, 137, 72, 51, 51, 70, 81, 70, 56, 68, 59, 68, 77, 63, 66, 54, 92, 72, 84, 77, 141, 80, 81, 76, 81, 86, 56, 51, 59, 80, 60, 93, 51, 34, 72, 75, 48, 67, 109, 61, 51, 49, 83, 79, 68, 66, 62, 43, 89, 61, 110, 74, 54, 51, 75, 77, 70, 74, 68, 57, 46, 91, 68, 91, 64, 48, 59, 81, 75, 58, 76, 56, 55, 70, 79, 76, 50, 81, 85, 75, 57, 45, 89, 66, 66, 86, 51, 44, 86, 51, 66, 66, 54, 62, 75, 67, 68, 69, 51, 46, 77, 64, 64, 43, 81, 69, 57, 90, 68, 73, 63, 60, 61, 48, 68, 60, 48, 77, 64, 77, 77, 84, 43, 60, 77, 67, 65, 64, 61, 68, 66, 65, 64, 97, 65, 77, 44, 60, 51, 45, 71, 73, 61, 69, 73, 67, 64, 103, 64, 80, 55, 90, 51, 53, 68, 48, 67, 66, 65, 76, 58, 82, 73, 76, 53, 71, 53, 55, 39, 62, 84, 78, 71, 73, 67, 56, 64, 61, 76, 67, 95, 59, 62, 76, 60, 60, 58, 67, 62, 60, 56, 67, 81, 78, 99, 71, 54, 74, 93, 51, 53, 63, 62, 51, 53, 84, 57, 66, 70, 70, 52, 58, 58, 68, 55, 63, 50, 73, 39, 67, 61, 67, 65, 58, 80, 87, 145, 76, 46, 60, 49, 67, 53, 79, 65, 72, 86, 63, 64, 72, 46, 59, 94, 63, 51, 69, 53, 49, 61, 61, 60, 139, 60, 61, 54, 88, 66, 78, 80, 68, 58, 56, 53, 85, 63, 69, 61, 64, 52, 57, 60, 108, 73, 48, 49, 75, 68, 90, 79, 43, 73, 74, 77, 51, 50, 68, 70, 62, 52, 68, 63, 72, 50, 53, 53, 41, 72, 60, 71, 70, 55, 52, 51, 53, 83, 67, 81, 58, 45, 56, 69, 63, 64, 120, 62, 63, 63, 63, 64, 45, 55, 57, 96, 53, 66, 57, 55, 67, 61, 48, 55, 78, 72, 68, 80, 78, 70, 62, 66, 77, 65, 48, 61, 51, 150, 63, 77, 69, 89, 58, 51, 62, 80, 51, 69, 41, 69, 85, 57, 61, 55, 55, 80, 36, 61, 48, 38, 66, 89, 47, 55, 55, 87, 64, 69, 56, 47, 55, 62, 56, 73, 49, 76, 61, 62, 52, 49, 70, 72, 61, 90, 76, 58, 59, 64, 67, 99, 57, 38, 60, 71, 61, 64, 82, 53, 52, 68, 57, 79, 96, 70, 62, 67, 68, 67, 79, 63, 50, 68, 71, 48, 58, 46, 70, 36, 55, 54, 49, 64, 75, 63, 47, 87, 80, 48, 87, 87, 130, 74, 42, 82, 73, 58, 105, 61, 90, 52, 71, 63, 79, 92, 62, 39, 68, 51, 44, 70, 70, 49, 72, 71, 67, 82, 100, 76, 71, 54, 115, 58, 50, 50, 45, 52, 63, 73, 47, 45, 64, 51, 51, 62, 72, 71, 72, 66, 72, 39, 66, 57, 84, 56, 74, 53, 50, 76, 80, 69, 80, 76, 86, 59, 67, 79, 81, 50, 50, 57, 60, 54, 59, 85, 66, 71, 59, 49, 66, 65, 75, 54, 78, 103, 60, 73, 59, 55, 70, 58, 72, 61, 59, 63, 81, 67, 74, 93, 67, 66, 59, 57, 66, 75, 66, 66, 53, 85, 48, 72, 39, 84, 56, 74, 70, 65, 61, 58, 61, 85, 52, 75, 64, 92, 96, 54, 48, 62, 76, 73, 59, 88, 64, 53, 46, 66, 69, 49, 115, 58, 66, 62, 75, 123, 66, 55, 44, 64, 67, 55, 67, 55, 59, 74, 53, 39, 70, 59, 64, 70, 90, 67, 58, 67, 59, 110, 51, 67, 70, 52, 83, 87, 72, 94, 62, 55, 51, 42, 51, 55, 68, 78, 66, 64, 58, 54, 59, 68, 49, 55, 105, 57, 51, 44, 50, 61, 79, 58, 118, 58, 56, 79, 84, 46, 63, 49, 55, 58, 85, 59, 56, 97, 61, 58, 52, 75, 70, 50, 78, 69, 70, 97, 76, 58, 59, 68, 83, 59, 81, 72, 67, 92, 80, 83, 82, 75, 62, 82, 74, 75, 46, 53, 60, 79, 59, 71, 55, 78, 67, 56, 78, 47, 62, 51, 74, 45, 75, 76, 101, 48, 56, 56, 50, 63, 74, 54, 65, 71, 65, 69, 62, 72, 87, 64, 61, 76, 75, 71, 82, 59, 61, 57, 63, 57, 74, 60, 58, 61, 76, 95, 54, 48, 43, 74, 77, 66, 61, 63, 91, 75, 80, 70, 49, 88, 71, 54, 71, 69, 130, 74, 64, 49, 53, 101, 78, 53, 64, 68, 102, 58, 69, 54, 63, 60, 67, 57, 56, 55, 60, 60, 61, 68, 59, 98, 152, 91, 79, 71, 54, 64, 56, 66, 75, 69, 52, 77, 47, 63, 70, 68, 53, 75, 66, 29, 81, 73, 80, 67, 71, 51, 58, 109, 62, 64, 63, 95, 59, 54, 58, 102, 81, 79, 87, 60, 71, 63, 56, 74, 104, 91, 66, 65, 74, 49, 50, 63, 40, 90, 55, 117, 51, 67, 62, 148, 100, 62, 51, 57, 61, 57, 46, 114, 61, 81, 77, 60, 72, 58, 73, 72, 64, 69, 91, 70, 54, 67, 56, 80, 45, 56, 65, 59, 63, 68, 86, 64, 79, 68, 64, 68, 91, 61, 61, 61, 51, 57, 72, 67, 58, 79, 68, 54, 77, 60, 71, 76, 67, 62, 61, 61, 62, 55, 70, 67, 63, 74, 62, 101, 86, 62, 56, 74, 64, 49, 72, 52, 44, 54, 62, 50, 64, 80, 63, 66, 91, 66, 83, 59, 71, 65, 45, 56, 70, 120, 55, 69, 72, 52, 51, 70, 78, 65, 59, 68, 67, 51, 46, 59, 43, 56, 56, 75, 42, 53, 61, 67, 59, 55, 63, 95, 46, 68, 63, 88, 62, 78, 65, 109, 63, 48, 76, 51, 49, 79, 55, 66, 68, 89, 88, 60, 63, 64, 73, 72, 55, 73, 65, 73, 43, 81, 59, 61, 59, 64, 66, 81, 62, 62, 53, 53, 60, 70, 64, 63, 66, 62, 60, 59, 78, 66, 77, 74, 56, 69, 61, 62, 54, 66, 68, 67, 51, 64, 59, 74, 71, 74, 76, 61, 68, 66, 61, 64, 66, 63, 63, 83, 54, 64, 59, 63, 58, 78, 60, 56, 75, 74, 64, 63, 38, 53, 57, 60, 87, 66, 61, 75, 43, 51, 58, 62, 64, 39, 58, 71, 61, 49, 68, 53, 62, 65, 62, 49, 59, 74, 46, 64, 51, 58, 61, 119, 66, 58, 71, 47, 85, 52, 53, 59, 60, 68, 60, 73, 62, 63, 66, 69, 70, 77, 46, 45, 55, 68, 86, 57, 53, 66, 117, 60, 47, 57, 66, 55, 62, 49, 47, 82, 71, 63, 68, 90, 85, 48, 60, 70, 73, 50, 62, 71, 70, 57, 91, 65, 74, 62, 51, 66, 58, 55, 82, 53, 81, 43, 24, 63, 69, 61, 68, 80, 68, 70, 62, 65, 49, 42, 71, 65, 60, 65, 56, 44, 68, 83, 70, 66, 69, 65, 51, 69, 40, 64, 44, 56, 53, 49, 67, 52, 90, 60, 56, 96, 84, 56, 69, 59, 90, 50, 52, 57, 50, 55, 61, 79, 68, 69, 61, 72, 56, 63, 65, 55, 55, 71, 48, 73, 62, 62, 67, 80, 61, 127, 68, 89, 72, 82, 70, 58, 46, 70, 43, 76, 61, 54, 69, 58, 68, 83, 44, 60, 58, 68, 76, 64, 71, 100, 71, 73, 43, 85, 47, 89, 59, 66, 55, 54, 76, 76, 62, 59, 95, 62, 69, 67, 56, 68, 63, 77, 64, 46, 67, 80, 60, 55, 63, 64, 51, 56, 57, 72, 57, 75, 60, 77, 91, 75, 68, 73, 56, 65, 58, 66, 85, 75, 54, 84, 78, 59, 55, 64, 58, 91, 67, 65, 60, 63, 70, 65, 72, 60, 75, 56, 54, 73, 99, 80, 163, 64, 69, 78, 91, 71, 75, 119, 52, 78, 55, 94, 65, 66, 49, 55, 64, 68, 111, 64, 46, 58, 90, 55, 50, 82, 66, 59, 70, 72, 69, 63, 66, 59, 57, 61, 53, 64, 68, 39, 57, 76, 52, 49, 57, 54, 55, 64, 58, 61, 79, 82, 82, 77, 68, 57, 72, 95, 62, 47, 65, 86, 64, 73, 60, 58, 61, 68, 57, 63, 61, 58, 47, 93, 68, 53, 69, 64, 60, 47, 66, 60, 65, 106, 68, 77, 60, 49, 52, 78, 60, 64, 67, 64, 53, 55, 81, 58, 68, 69, 58, 88, 62, 89, 64, 71, 100, 91, 64, 63, 53, 68, 60, 63, 86, 60, 65, 84, 52, 83, 68, 78, 97, 71, 57, 55, 58, 80, 63, 60, 70, 63, 52, 64, 75, 95, 59, 68, 53, 59, 63, 51, 48, 70, 71, 49, 69, 60, 83, 67, 71, 67, 71, 58, 36, 79, 120, 73, 73, 58, 45, 55, 58, 75, 48, 78, 60, 59, 57, 66, 69, 59, 57, 59, 58, 75, 56, 75, 60, 83, 50, 67, 72, 53, 63, 61, 57, 52, 76, 60, 67, 86, 47, 56, 73, 66, 48, 82, 60, 65, 56, 59, 55, 82, 73, 77, 61, 72, 76, 60, 74, 29, 77, 70, 67, 53, 67, 77, 108, 90, 61, 58, 55, 55, 65, 72, 57, 53, 54, 64, 67, 73, 93, 74, 62, 63, 57, 55, 63, 78, 85, 55, 65, 66, 63, 61, 58, 48, 85, 70, 64, 93, 75, 65, 63, 62, 58, 56, 69, 53, 73, 63, 63, 70, 68, 55, 54, 51, 48, 53, 61, 57, 87, 64, 64, 61, 88, 52, 53, 60, 59, 86, 104, 58, 69, 57, 71, 65, 57, 60, 53, 70, 59, 57, 64, 72, 86, 70, 51, 80, 51, 65, 74, 67, 58, 67, 63, 69, 68, 61, 47, 56, 68, 66, 59, 62, 55, 45, 50, 68, 79, 59, 75, 46, 97, 61, 71, 60, 74, 67, 55, 73, 48, 54, 57, 55, 57, 62, 51, 86, 70, 75, 49, 74, 47, 58, 72, 60, 57, 73, 72, 53, 72, 52, 58, 69, 95, 78, 93, 110, 56, 110, 61, 60, 58, 57, 67, 87, 61, 67, 46, 54, 79, 59, 55, 65, 75, 87, 69, 51, 63, 57, 72, 55, 70, 87, 65, 48, 70, 69, 54, 53, 93, 59, 69, 73, 79, 53, 51, 56, 79, 75, 61, 69, 75, 74, 80, 59, 67, 45, 77, 68, 55, 64, 73, 51, 58, 57, 62, 81, 80, 74, 74, 71, 55, 81, 72, 48, 96, 66, 70, 72, 58, 72, 60, 88, 51, 65, 63, 78, 93, 51, 58, 65, 52, 56, 58, 78, 98, 67, 81, 57, 57, 60, 91, 74, 79, 90, 46, 49, 80, 98, 70, 68, 54, 68, 65, 56, 80, 70, 67, 61, 72, 65, 63, 60, 51, 61, 51, 63, 62, 66, 56, 60, 69, 56, 62, 82, 86, 66, 48, 100, 66, 82, 50, 55, 64, 74, 59, 73, 75, 83, 83, 70, 60, 68, 60, 41, 60, 60, 66, 60, 51, 94, 82, 51, 69, 75, 54, 55, 53, 63, 59, 52, 73, 75, 63, 69, 67, 47, 44, 68, 60, 80, 60, 55, 60, 73, 49, 54, 44, 62, 60, 58, 46, 62, 75, 51, 57, 77, 86, 87, 50, 51, 61, 51, 59, 62, 87, 80, 67, 66, 51, 89, 62, 67, 87, 61, 69, 68, 59, 89, 62, 61, 47, 66, 71, 77, 56, 57, 74, 52, 70, 46, 59, 67, 47, 63, 60, 67, 47, 59, 74, 92, 74, 56, 69, 56, 67, 87, 61, 75, 63, 56, 102, 77, 61, 57, 69, 62, 61, 77, 51, 81, 83, 47, 46, 79, 62, 54, 68, 84, 66, 56, 57, 63, 71, 69, 61, 98, 66, 72, 80, 65, 61, 65, 52, 64, 67, 77, 59, 57, 74, 67, 63, 69, 77, 100, 70, 49, 52, 71, 66, 78, 56, 51, 70, 57, 70, 78, 77, 54, 82, 88, 53, 56, 56, 47, 75, 52, 48, 69, 66, 63, 57, 71, 79, 68, 46, 60, 43, 62, 57, 57, 39, 81, 52, 82, 80, 63, 94, 62, 46, 56, 60, 63, 72, 93, 69, 79, 63, 62, 82, 58, 62, 61, 56, 43, 55, 60, 42, 41, 52, 52, 66, 67, 75, 74, 67, 77, 53, 71, 43, 47, 59, 62, 55, 82, 73, 50, 142, 49, 65, 72, 57, 54, 64, 52, 49, 72, 148, 54, 63, 60, 66, 52, 73, 52, 67, 52, 59, 65, 70, 69, 60, 57, 53, 60, 68, 53, 56, 68, 56, 100, 59, 69, 79, 62, 95, 66, 72, 50, 81, 50, 83, 64, 62, 56, 54, 75, 60, 70, 71, 55, 60, 66, 70, 75, 66, 82, 59, 73, 65, 52, 62, 54, 44, 80, 66, 59, 72, 61, 53, 66, 67, 70, 77, 61, 66, 70, 56, 84, 65, 58, 75, 52, 55, 69, 61, 64, 48, 49, 51, 60, 54, 64, 70, 63, 73, 56, 66, 50, 50, 61, 94, 56, 64, 67, 52, 67, 51, 62, 83, 63, 56, 62, 103, 57, 65, 76, 76, 56, 66, 70, 58, 54, 55, 65, 54, 59, 62, 88, 77, 74, 93, 67, 67, 63, 54, 55, 84, 79, 88, 50, 59, 53, 111, 69, 58, 64, 75, 71, 63, 64, 73, 78, 63, 87, 73, 73, 94, 61, 68, 74, 70, 74, 62, 88, 68, 65, 61, 77, 63, 75, 117, 64, 67, 73, 46, 85, 62, 56, 64, 86, 43, 73, 86, 79, 63, 92, 75, 51, 76, 77, 54, 68, 39, 69, 44, 70, 128, 53, 63, 48, 60, 71, 86, 65, 50, 79, 69, 58, 58, 56, 74, 80, 65, 117, 48, 67, 67, 78, 59, 60, 76, 65, 69, 60, 58, 72, 85, 57, 43, 66, 59, 53, 54, 70, 60, 65, 71, 59, 82, 207, 84, 71, 69, 58, 65, 71, 61, 64, 92, 67, 61, 81, 65, 48, 84, 77, 73, 46, 73, 78, 73, 69, 108, 50, 66, 65, 64, 74, 70, 66, 92, 68, 67, 79, 60, 48, 53, 90, 70, 65, 56, 72, 89, 87, 64, 80, 71, 59, 54, 58, 74, 52, 54, 76, 60, 83, 59, 62, 84, 43, 116, 82, 87, 56, 97, 71, 71, 59, 63, 73, 73, 51, 68, 70, 66, 71, 56, 57, 65, 62, 71, 73, 70, 77, 54, 43, 69, 69, 49, 89, 63, 63, 68, 92, 63, 63, 90, 68, 50, 69, 45, 48, 46, 60, 56, 55, 72, 69, 71, 87, 71, 70, 47, 60, 57, 73, 66, 54, 72, 58, 79, 56, 77, 59, 59, 50, 95, 62, 88, 90, 57, 57, 106, 78, 73, 54, 56, 59, 69, 73, 83, 87, 56, 76, 64, 93, 71, 59, 51, 57, 55, 74, 36, 75, 83, 75, 75, 72, 86, 72, 67, 77, 110, 58, 61, 52, 86, 44, 52, 43, 80, 59, 45, 79, 61, 70, 81, 81, 99, 63, 46, 106, 47, 97, 53, 70, 63, 79, 69, 51, 51, 50, 51, 72, 94, 57, 80, 73, 49, 70, 74, 87, 65, 69, 89, 45, 79, 53, 62, 47, 53, 66, 50, 62, 55, 47, 66, 54, 94, 57, 67, 66, 79, 77, 86, 47, 79, 63, 67, 101, 71, 83, 58, 52, 57, 60, 63, 82, 64, 59, 64, 68, 86, 81, 51, 62, 45, 98, 63, 80, 63, 56, 90, 70, 68, 46, 60, 56, 50, 39, 85, 56, 85, 43, 74, 75, 49, 93, 59, 63, 84, 45, 57, 55, 63, 54, 46, 57, 89, 75, 83, 69, 60, 73, 62, 63, 81, 61, 88, 53, 60, 74, 72, 58, 84, 65, 56, 47, 41, 74, 75, 82, 57, 54, 49, 54, 70, 54, 59, 62, 59, 43, 54, 60, 91, 88, 71, 76, 68, 135, 61, 98, 61, 61, 66, 64, 85, 67, 71, 55, 66, 49, 57, 61, 63, 55, 61, 64, 63, 51, 54, 50, 60, 96, 87, 73, 68, 59, 61, 71, 70, 51, 76, 65, 52, 52, 59, 69, 65, 70, 60, 72, 59, 93, 95, 49, 75, 75, 61, 58, 73, 59, 71, 91, 59, 65, 74, 72, 86, 46, 86, 61, 45, 50, 71, 59, 75, 39, 62, 67, 35, 47, 92, 59, 77, 63, 63, 74, 83, 65, 69, 63, 95, 54, 52, 69, 88, 74, 76, 81, 83, 99, 68, 63, 72, 53, 92, 68, 57, 56, 70, 79, 59, 54, 60, 78, 33, 38, 72, 43, 57, 52, 51, 66, 45, 70, 86, 55, 46, 73, 67, 72, 68, 67, 79, 67, 60, 73, 62, 42, 80, 57, 50, 89, 109, 68, 40, 55, 68, 64, 35, 73, 70, 63, 63, 74, 47, 58, 70, 92, 85, 97, 76, 53, 63, 45, 72, 40, 45, 75, 70, 54, 60, 54, 62, 74, 63, 48, 46, 45, 73, 53, 73, 87, 49, 58, 99, 80, 61, 55, 81, 81, 63, 63, 48, 69, 65, 85, 169, 53, 55, 58, 53, 61, 75, 67, 73, 79, 53, 38, 70, 78, 74, 44, 58, 90, 96, 78, 71, 56, 53, 67, 58, 57, 127, 101, 74, 75, 76, 39, 64, 66, 62, 90, 62, 56, 44, 74, 58, 30, 64, 57, 79, 64, 55, 76, 54, 66, 72, 80, 61, 62, 54, 69, 76, 72, 68, 71, 34, 55, 56, 44, 53, 63, 49, 65, 62, 58, 67, 64, 74, 59, 68, 60, 66, 46, 74, 51, 51, 62, 47, 70, 53, 48, 53, 79, 62, 63, 71, 64, 54, 78, 73, 70, 60, 47, 87, 74, 68, 50, 49, 93, 72, 72, 63, 55, 74, 89, 56, 53, 48, 63, 56, 51, 51, 63, 62, 40, 55, 74, 65, 46, 65, 70, 60, 68, 54, 66, 66, 46, 72, 84, 43, 40, 92, 83, 51, 72, 74, 85, 71, 84, 58, 45, 52, 73, 56, 92, 57, 40, 57, 68, 68, 82, 63, 54, 46, 97, 57, 41, 44, 53, 89, 71, 66, 84, 61, 76, 79, 60, 70, 49, 53, 79, 99, 57, 67, 51, 47, 101, 44, 59, 52, 79, 76, 64, 73, 48, 54, 48, 57, 48, 78, 106, 43, 73, 59, 54, 63, 92, 58, 61, 52, 64, 83, 72, 117, 83, 81, 64, 64, 93, 64, 84, 63, 62, 48, 74, 68, 41, 40, 72, 48, 64, 69, 60, 73, 83, 68, 59, 86, 87, 84, 85, 58, 47, 57, 49, 64, 59, 56, 80, 81, 102, 71, 74, 81, 60, 56, 71, 84, 66, 80, 92, 52, 76, 105, 85, 64, 70, 58, 52, 81, 57, 40, 41, 63, 60, 64, 56, 58, 56, 51, 74, 79, 48, 74, 90, 75, 71, 81, 77, 46, 68, 67, 86, 47, 99, 64, 60, 56, 81, 68, 82, 67, 45, 98, 62, 57, 94, 61, 60, 72, 83, 55, 62, 68, 50, 56, 60, 87, 62, 46, 65, 70, 41, 79, 80, 63, 79, 71, 67, 56, 77, 70, 44, 64, 76, 50, 54, 59, 65, 52, 60, 59, 68, 71, 105, 76, 84, 52, 35, 59, 48, 37, 78, 51, 77, 66, 55, 70, 49, 44, 102, 74, 75, 78, 104, 80, 43, 53, 74, 77, 61, 76, 53, 100, 74, 79, 60, 85, 71, 41, 64, 63, 101, 47, 72, 91, 54, 67, 54, 71, 99, 84, 76, 56, 67, 63, 80, 64, 49, 72, 64, 60, 71, 93, 71, 40, 70, 92, 48, 66, 50, 60, 73, 45, 66, 59, 67, 35, 64, 47, 55, 74, 40, 50, 56, 71, 68, 46, 71, 48, 61, 74, 82, 96, 75, 66, 69, 81, 50, 63, 65, 45, 69, 83, 73, 51, 68, 68, 81, 50, 70, 69, 49, 48, 69, 71, 77, 56, 59, 75, 58, 64, 54, 66, 70, 67, 48, 57, 63, 74, 53, 84, 55, 70, 91, 61, 62, 58, 81, 59, 74, 83, 59, 68, 58, 56, 64, 64, 74, 91, 72, 68, 90, 68, 58, 65, 46, 69, 81, 54, 66, 86, 65, 68, 57, 63, 82, 67, 72, 76, 69, 67, 63, 69, 51, 61, 68, 53, 51, 60, 52, 75, 67, 76, 48, 71, 153, 62, 67, 68, 54, 53, 87, 65, 60, 55, 93, 65, 64, 51, 91, 59, 61, 49, 78, 77, 54, 66, 57, 54, 60, 78, 64, 41, 83, 67, 86, 66, 74, 46, 57, 58, 61, 97, 97, 56, 58, 72, 64, 75, 99, 60, 78, 59, 79, 63, 66, 68, 61, 45, 61, 67, 68, 65, 56, 83, 77, 64, 86, 71, 90, 76, 94, 47, 52, 50, 65, 66, 50, 71, 57, 53, 75, 20, 77, 60, 64, 55, 67, 56, 48, 94, 61, 72, 85, 67, 66, 70, 113, 58, 56, 59, 65, 60, 66, 77, 67, 61, 65, 59, 74, 40, 67, 64, 55, 106, 51, 76, 100, 89, 81, 40, 57, 106, 69, 60, 71, 63, 50, 69, 87, 68, 75, 73, 55, 69, 75, 66, 46, 102, 64, 65, 80, 61, 68, 44, 64, 63, 55, 68, 57, 107, 56, 60, 74, 91, 50, 60, 69, 66, 75, 62, 79, 49, 63, 66, 56, 64, 50, 58, 66, 108, 67, 70, 70, 74, 48, 51, 53, 46, 64, 62, 74, 50, 47, 69, 58, 66, 110, 48, 61, 63, 82, 71, 53, 83, 83, 94, 60, 59, 71, 85, 65, 52, 57, 73, 63, 65, 73, 60, 65, 56, 69, 58, 51, 53, 72, 70, 50, 85, 61, 62, 82, 73, 73, 71, 80, 61, 55, 64, 63, 60, 56, 65, 67, 64, 58, 53, 71, 74, 61, 56, 56, 75, 76, 50, 68, 67, 65, 105, 51, 54, 73, 57, 79, 95, 59, 53, 62, 62, 90, 77, 58, 60, 49, 55, 73, 58, 76, 59, 70, 56, 51, 70, 50, 46, 61, 99, 78, 68, 53, 108, 75, 61, 88, 87, 40, 69, 53, 81, 63, 51, 40, 56, 56, 45, 77, 57, 82, 75, 50, 70, 62, 64, 66, 73, 68, 60, 59, 76, 64, 44, 73, 49, 67, 69, 76, 70, 54, 59, 74, 55, 70, 57, 56, 53, 71, 72, 66, 69, 74, 57, 50, 68, 99, 73, 85, 58, 61, 79, 60, 87, 68, 81, 65, 54, 68, 83, 58, 61, 61, 81, 60, 121, 63, 60, 78, 71, 77, 102, 53, 72, 73, 63, 65, 59, 65, 56, 70, 62, 63, 54, 67, 61, 84, 74, 69, 75, 47, 74, 59, 82, 104, 60, 60, 77, 72, 92, 75, 67, 38, 77, 79, 59, 99, 72, 69, 66, 96, 56, 72, 53, 49, 60, 56, 83, 60, 63, 51, 70, 50, 66, 78, 77, 73, 56, 55, 71, 120, 86, 71, 60, 52, 74, 73, 72, 39, 71, 75, 59, 65, 69, 60, 47, 56, 74, 63, 71, 73, 79, 80, 57, 67, 64, 54, 58, 75, 61, 72, 58, 63, 59, 100, 71, 61, 80, 36, 57, 57, 78, 76, 85, 60, 54, 64, 56, 87, 43, 72, 58, 69, 56, 66, 54, 70, 52, 56, 51, 72, 68, 75, 57, 74, 78, 42, 64, 66, 62, 94, 63, 62, 73, 58, 84, 55, 59, 58, 87, 58, 106, 62, 48, 55, 48, 59, 69, 67, 59, 44, 60, 60, 49, 57, 52, 55, 90, 57, 67, 104, 119, 74, 75, 79, 77, 59, 50, 77, 56, 71, 52, 80, 58, 78, 64, 72, 85, 61, 58, 60, 68, 71, 61, 68, 54, 72, 67, 61, 65, 64, 63, 70, 17, 52, 67, 49, 46, 61, 59, 46, 50, 97, 54, 54, 66, 100, 64, 72, 50, 85, 60, 59, 77, 50, 42, 84, 69, 76, 53, 59, 57, 73, 85, 54, 83, 58, 75, 79, 72, 61, 55, 74, 75, 50, 66, 64, 64, 63, 58, 43, 62, 51, 71, 49, 72, 70, 53, 42, 58, 62, 74, 40, 95, 61, 60, 83, 52, 80, 69, 79, 125, 28, 65, 54, 52, 59, 60, 74, 54, 58, 58, 65, 59, 53, 87, 51, 64, 85, 57, 59, 49, 75, 39, 59, 52, 51, 58, 90, 72, 77, 55, 64, 67, 57, 67, 72, 64, 61, 65, 62, 53, 55, 58, 52, 61, 54, 67, 84, 59, 61, 96, 55, 80, 60, 45, 87, 66, 58, 70, 70, 112, 57, 49, 50, 62, 76, 74, 65, 71, 48, 78, 48, 34, 54, 47, 79, 75, 91, 61, 63, 67, 82, 70, 45, 69, 75, 76, 87, 53, 73, 40, 67, 68, 60, 74, 57, 86, 82, 65, 78, 59, 56, 65, 41, 65, 64, 73, 67, 54, 63, 62, 85, 65, 63, 59, 85, 65, 22, 112, 83, 65, 45, 117, 86, 62, 82, 61, 63, 58, 95, 77, 62, 66, 63, 61, 71, 54, 70, 69, 56, 56, 76, 90, 58, 79, 78, 52, 66, 76, 57, 51, 62, 51, 60, 72, 75, 71, 41, 58, 67, 51, 62, 66, 83, 42, 63, 77, 79, 73, 78, 0, 56, 53, 66, 75, 73, 76, 57, 63, 61, 83, 86, 66, 64, 72, 53, 52, 104, 46, 68, 50, 116, 55, 55, 73, 67, 66, 55, 64, 75, 41, 71, 72, 60, 58, 110, 61, 66, 55, 65, 67, 77, 61, 94, 70, 46, 67, 70, 65, 60, 68, 84, 73, 65, 67, 30, 93, 59, 43, 61, 69, 92, 60, 73, 86, 61, 69, 86, 63, 76, 78, 76, 56, 72, 64, 77, 50, 73, 76, 79, 62, 62, 68, 78, 54, 36, 77, 77, 85, 66, 42, 78, 59, 53, 71, 66, 67, 67, 58, 69, 61, 69, 68, 63, 79, 54, 76, 52, 69, 59, 90, 87, 65, 66, 51, 55, 53, 37, 71, 59, 71, 51, 69, 54, 59, 44, 66, 85, 73, 51, 58, 72, 55, 66, 54, 51, 49, 85, 63, 70, 54, 77, 55, 85, 66, 70, 63, 53, 62, 52, 66, 74, 74, 81, 74, 71, 55, 71, 86, 56, 58, 87, 60, 66, 55, 81, 68, 58, 47, 63, 58, 59, 61, 63, 54, 54, 57, 63, 79, 43, 66, 38, 52, 59, 112, 59, 77, 83, 82, 62, 61, 68, 60, 49, 63, 105, 102, 60, 60, 75, 69, 60, 54, 78, 66, 62, 49, 76, 53, 83, 99, 50, 64, 68, 84, 69, 54, 48, 62, 70, 61, 67, 67, 72, 54, 68, 71, 74, 60, 63, 74, 65, 64, 60, 72, 67, 71, 55, 55, 67, 74, 67, 35, 68, 50, 79, 78, 49, 67, 70, 74, 55, 51, 74, 77, 64, 52, 55, 47, 59, 60, 50, 59, 76, 67, 57, 48, 62, 62, 57, 61, 58, 73, 44, 57, 76, 55, 64, 51, 64, 33, 91, 66, 68, 85, 65, 91, 73, 65, 47, 58, 68, 69, 100, 60, 75, 67, 88, 66, 74, 53, 71, 78, 55, 75, 59, 68, 51, 66, 63, 62, 60, 74, 77, 59, 48, 62, 56, 68, 58, 67, 40, 72, 79, 66, 68, 48, 47, 60, 83, 62, 54, 54, 63, 59, 66, 81, 85, 110, 85, 70, 104, 68, 105, 59, 63, 54, 64, 72, 72, 54, 47, 63, 62, 83, 95, 59, 58, 59, 52, 56, 62, 57, 70, 55, 65, 64, 55, 64, 70, 64, 51, 55, 107, 62, 70, 64, 60, 64, 71, 56, 84, 131, 57, 71, 53, 44, 72, 66, 65, 85, 55, 44, 39, 78, 70, 57, 58, 59, 73, 48, 50, 64, 84, 61, 58, 87, 83, 66, 60, 60, 71, 78, 51, 73, 75, 66, 88, 79, 78, 48, 83, 64, 75, 64, 57, 62, 64, 83, 84, 71, 64, 71, 49, 84, 58, 69, 67, 81, 65, 51, 103, 78, 47, 68, 59, 56, 65, 93, 54, 63, 70, 64, 67, 69, 43, 71, 65, 66, 74, 63, 94, 92, 52, 56, 78, 63, 71, 68, 67, 78, 77, 69, 76, 63, 65, 66, 49, 60, 53, 76, 52, 80, 57, 72, 64, 54, 67, 62, 70, 92, 48, 68, 58, 62, 73, 79, 59, 71, 66, 54, 60, 83, 62, 66, 50, 59, 43, 50, 82, 82, 70, 55, 50, 89, 87, 75, 67, 59, 95, 55, 53, 62, 55, 66, 63, 61, 47, 55, 64, 69, 63, 59, 59, 70, 68, 69, 134, 48, 64, 96, 78, 54, 60, 80, 66, 55, 78, 59, 92, 97, 72, 62, 84, 44, 107, 71, 77, 68, 52, 52, 64, 61, 119, 68, 87, 90, 64, 56, 57, 79, 62, 84, 56, 89, 72, 55, 61, 70, 81, 69, 58, 49, 67, 59, 59, 57, 48, 53, 52, 86, 74, 62, 62, 59, 52, 71, 65, 82, 50, 62, 68, 110, 63, 55, 66, 50, 76, 48, 63, 83, 80, 80, 68, 61, 140, 57, 64, 56, 65, 63, 53, 43, 75, 87, 56, 95, 74, 71, 64, 73, 73, 62, 46, 66, 79, 57, 56, 53, 58, 67, 59, 70, 55, 63, 85, 62, 49, 59, 49, 66, 57, 78, 67, 65, 54, 62, 66, 48, 61, 45, 91, 73, 76, 82, 75, 52, 59, 76, 58, 68, 81, 58, 106, 63, 93, 64, 63, 61, 57, 73, 56, 46, 82, 79, 68, 70, 75, 73, 76, 50, 76, 53, 59, 73, 62, 58, 66, 98, 71, 59, 68, 90, 88, 46, 62, 60, 57, 75, 56, 55, 59, 59, 77, 74, 67, 46, 70, 59, 64, 73, 77, 64, 60, 92, 84, 86, 58, 50, 70, 62, 63, 57, 77, 80, 70, 72, 75, 54, 57, 74, 79, 61, 58, 76, 65, 82, 75, 62, 61, 40, 61, 74, 45, 47, 75, 69, 44, 42, 76, 60, 62, 59, 118, 63, 69, 64, 32, 71, 56, 53, 67, 71, 65, 83, 65, 52, 42, 65, 62, 55, 68, 44, 73, 58, 84, 66, 42, 59, 62, 56, 57, 70, 52, 66, 73, 64, 54, 56, 51, 49, 53, 50, 59, 50, 52, 57, 77, 67, 48, 81, 57, 71, 89, 67, 63, 68, 65, 63, 81, 75, 64, 53, 61, 55, 73, 66, 67, 63, 59, 64, 54, 89, 49, 72, 53, 64, 64, 59, 64, 52, 67, 66, 57, 48, 81, 47, 54, 40, 92, 46, 53, 65, 59, 58, 54, 76, 155, 86, 63, 53, 65, 70, 69, 53, 70, 62, 71, 58, 68, 64, 56, 67, 72, 83, 71, 61, 62, 86, 66, 61, 53, 64, 84, 52, 71, 64, 72, 59, 97, 86, 71, 85, 68, 85, 59, 52, 45, 63, 68, 33, 61, 68, 66, 76, 54, 86, 60, 48, 71, 57, 70, 73, 116, 56, 65, 71, 59, 68, 64, 67, 71, 69, 71, 64, 57, 57, 56, 67, 56, 56, 89, 63, 57, 63, 76, 48, 114, 70, 56, 57, 59, 50, 70, 64, 74, 57, 68, 73, 78, 62, 64, 85, 69, 50, 65, 67, 60, 82, 66, 59, 66, 84, 59, 69, 39, 51, 74, 61, 51, 60, 83, 58, 63, 72, 60, 58, 71, 84, 58, 73, 78, 48, 63, 99, 74, 63, 59, 59, 45, 71, 57, 82, 67, 49, 69, 77, 66, 73, 71, 66, 68, 54, 77, 84, 54, 57, 58, 54, 55, 51, 71, 53, 50, 57, 68, 66, 83, 73, 127, 73, 42, 59, 68, 58, 53, 76, 66, 63, 62, 51, 59, 66, 62, 76, 48, 67, 70, 70, 54, 61, 64, 56, 82, 46, 68, 64, 56, 82, 78, 75, 82, 67, 71, 68, 63, 64, 64, 62, 63, 41, 77, 63, 74, 58, 66, 64, 63, 63, 60, 50, 76, 71, 55, 44, 81, 57, 47, 64, 57, 99, 97, 61, 63, 60, 43, 60, 85, 65, 66, 67, 69, 61, 53, 115, 73, 70, 67, 57, 52, 58, 72, 56, 59, 82, 55, 60, 72, 68, 74, 58, 48, 55, 83, 62, 65, 76, 45, 65, 78, 62, 65, 74, 67, 50, 98, 56, 72, 77, 63, 61, 52, 80, 59, 52, 66, 71, 57, 61, 55, 65, 60, 65, 80, 66, 67, 60, 69, 56, 86, 41, 82, 86, 60, 73, 46, 74, 75, 62, 54, 40, 61, 81, 68, 56, 68, 66, 71, 78, 59, 80, 72, 64, 58, 73, 60, 60, 67, 71, 71, 83, 67, 73, 64, 76, 79, 58, 136, 66, 72, 69, 55, 69, 52, 63, 77, 62, 77, 64, 76, 75, 59, 55, 74, 70, 50, 47, 53, 53, 71, 64, 66, 60, 83, 43, 70, 72, 58, 65, 120, 60, 47, 59, 65, 83, 56, 58, 58, 60, 75, 67, 74, 89, 61, 72, 75, 77, 107, 80, 44, 84, 56, 59, 64, 71, 63, 122, 53, 73, 68, 67, 52, 63, 63, 63, 65, 60, 56, 49, 65, 55, 68, 110, 68, 45, 65, 66, 106, 71, 71, 65, 67, 56, 49, 77, 60, 61, 49, 62, 43, 74, 86, 77, 72, 66, 48, 56, 78, 64, 63, 65, 65, 69, 83, 56, 51, 84, 74, 58, 54, 52, 61, 78, 88, 50, 77, 60, 59, 37, 58, 51, 61, 59, 57, 74, 47, 52, 80, 57, 101, 79, 52, 71, 42, 75, 72, 60, 85, 88, 65, 74, 41, 75, 66, 77, 97, 67, 71, 49, 68, 50, 65, 45, 53, 45, 99, 67, 56, 91, 74, 60, 85, 67, 85, 53, 71, 65, 58, 47, 55, 67, 105, 59, 63, 64, 70, 70, 58, 49, 69, 80, 69, 70, 51, 59, 49, 60, 66, 116, 50, 54, 70, 59, 48, 66, 79, 73, 50, 60, 89, 52, 69, 79, 74, 54, 56, 63, 56, 60, 54, 57, 54, 55, 62, 53, 119, 76, 58, 37, 52, 68, 75, 52, 73, 60, 54, 94, 72, 66, 95, 81, 65, 52, 73, 68, 54, 96, 76, 47, 68, 82, 89, 51, 101, 58, 60, 94, 67, 94, 44, 92, 82, 62, 64, 71, 78, 97, 61, 42, 62, 67, 41, 50, 109, 63, 58, 70, 45, 72, 84, 85, 110, 58, 85, 70, 54, 68, 59, 68, 53, 59, 55, 70, 63, 88, 64, 65, 54, 61, 49, 80, 81, 56, 62, 65, 76, 63, 65, 50, 67, 55, 76, 48, 59, 66, 61, 65, 108, 50, 63, 71, 49, 83, 90, 57, 68, 54, 63, 55, 41, 93, 64, 67, 60, 58, 76, 70, 43, 34, 51, 54, 78, 93, 57, 56, 52, 52, 95, 51, 74, 69, 56, 82, 60, 71, 36, 61, 58, 74, 61, 43, 54, 62, 58, 95, 63, 69, 69, 55, 66, 65, 73, 72, 59, 52, 72, 49, 74, 77, 99, 62, 58, 62, 68, 78, 75, 42, 63, 46, 70, 77, 86, 62, 69, 52, 81, 91, 67, 51, 47, 67, 52, 70, 74, 67, 54, 65, 68, 67, 68, 67, 62, 71, 66, 78, 73, 67, 88, 52, 96, 58, 52, 61, 58, 39, 63, 51, 68, 73, 60, 65, 72, 53, 85, 54, 57, 67, 61, 81, 40, 81, 84, 59, 84, 54, 89, 45, 79, 48, 70, 70, 70, 50, 35, 65, 79, 47, 71, 61, 81, 45, 68, 57, 66, 60, 68, 76, 61, 71, 64, 57, 58, 62, 46, 76, 59, 63, 89, 58, 96, 63, 85, 72, 59, 65, 44, 66, 64, 46, 60, 61, 71, 63, 72, 65, 67, 66, 112, 73, 82, 73, 72, 73, 71, 74, 83, 58, 79, 68, 40, 74, 76, 78, 71, 63, 65, 50, 52, 76, 55, 58, 79, 137, 63, 58, 49, 72, 67, 57, 62, 84, 54, 61, 62, 61, 77, 67, 54, 68, 80, 57, 60, 65, 66, 60, 64, 91, 56, 61, 55, 63, 106, 72, 68, 65, 65, 104, 69, 78, 35, 43, 59, 69, 57, 45, 62, 73, 57, 65, 52, 68, 70, 90, 73, 66, 70, 70, 80, 48, 70, 51, 84, 58, 66, 44, 59, 72, 100, 55, 69, 61, 67, 60, 38, 69, 55, 71, 67, 80, 69, 89, 90, 68, 50, 105, 57, 69, 81, 48, 73, 40, 48, 112, 54, 75, 69, 86, 45, 70, 56, 77, 82, 61, 76, 64, 93, 66, 56, 82, 53, 110, 47, 73, 66, 67, 76, 46, 88, 46, 67, 54, 92, 57, 60, 39, 45, 49, 94, 60, 72, 61, 66, 49, 51, 65, 78, 78, 83, 40, 62, 48, 66, 74, 57, 69, 60, 74, 66, 67, 67, 98, 64, 61, 80, 80, 67, 57, 62, 64, 48, 83, 54, 72, 59, 50, 55, 68, 99, 50, 64, 69, 69, 58, 55, 81, 72, 60, 54, 64, 65, 42, 59, 70, 60, 76, 156, 44, 70, 56, 52, 73, 60, 102, 66, 66, 89, 75, 56, 67, 55, 60, 75, 66, 68, 52, 49, 73, 70, 103, 70, 52, 64, 45, 66, 64, 64, 66, 90, 55, 68, 70, 68, 57, 64, 62, 54, 60, 61, 94, 39, 52, 47, 76, 71, 44, 76, 60, 72, 73, 58, 63, 69, 76, 64, 66, 41, 85, 70, 56, 72, 63, 68, 73, 64, 73, 68, 69, 57, 64, 62, 59, 56, 97, 73, 54, 54, 83, 64, 61, 50, 46, 89, 45, 84, 66, 53, 81, 72, 53, 65, 98, 48, 48, 46, 56, 93, 58, 72, 46, 62, 71, 74, 71, 99, 70, 56, 80, 67, 54, 66, 93, 82, 61, 84, 68, 73, 61, 50, 52, 75, 70, 72, 54, 72, 60, 85, 65, 84, 58, 50, 96, 75, 76, 46, 83, 50, 59, 99, 59, 78, 74, 63, 62, 71, 65, 66, 67, 68, 61, 64, 111, 71, 74, 65, 68, 50, 111, 75, 86, 71, 67, 71, 60, 61, 71, 64, 81, 42, 61, 72, 34, 64, 78, 52, 50, 67, 60, 77, 34, 48, 81, 61, 79, 82, 90, 48, 78, 63, 52, 57, 63, 52, 77, 50, 118, 65, 50, 80, 60, 69, 62, 56, 70, 52, 88, 70, 81, 60, 84, 77, 48, 65, 76, 32, 72, 62, 52, 74, 79, 86, 78, 69, 57, 61, 36, 100, 53, 65, 77, 48, 52, 48, 50, 57, 65, 85, 68, 74, 77, 51, 59, 54, 67, 59, 58, 51, 69, 52, 51, 48, 55, 72, 57, 57, 54, 56, 69, 68, 60, 83, 95, 42, 73, 55, 81, 73, 46, 41, 63, 88, 89, 58, 44, 71, 63, 126, 67, 91, 52, 88, 54, 58, 51, 63, 53, 46, 57, 59, 72, 67, 56, 84, 50, 73, 56, 95, 76, 92, 76, 84, 67, 75, 66, 81, 49, 72, 89, 46, 75, 56, 75, 55, 65, 65, 58, 77, 101, 24, 66, 73, 55, 50, 88, 69, 54, 67, 55, 105, 68, 59, 68, 47, 57, 81, 61, 57, 56, 78, 92, 62, 96, 75, 89, 99, 76, 74, 89, 64, 84, 68, 87, 48, 79, 58, 84, 47, 54, 61, 124, 41, 45, 129, 64, 86, 66, 89, 68, 63, 51, 46, 74, 52, 41, 82, 67, 60, 48, 92, 73, 60, 51, 78, 94, 56, 72, 45, 74, 70, 71, 67, 58, 85, 69, 60, 59, 57, 77, 73, 76, 66, 63, 90, 78, 60, 59, 37, 46, 62, 86, 73, 72, 62, 66, 77, 43, 57, 70, 73, 69, 77, 75, 60, 64, 81, 59, 49, 61, 61, 79, 57, 53, 76, 68, 69, 76, 80, 54, 94, 92, 50, 63, 61, 81, 61, 58, 54, 71, 83, 73, 49, 74, 59, 67, 61, 63, 57, 88, 74, 64, 58, 42, 77, 97, 41, 82, 62, 66, 81, 66, 42, 67, 74, 64, 71, 85, 58, 67, 71, 59, 72, 54, 66, 51, 70, 63, 45, 52, 91, 68, 61, 39, 66, 74, 45, 65, 75, 55, 60, 61, 70, 57, 54, 44, 72, 62, 65, 68, 85, 79, 64, 67, 52, 65, 68, 83, 69, 79, 52, 48, 65, 67, 59, 69, 79, 70, 70, 46, 51, 66, 61, 58, 68, 53, 55, 69, 59, 57, 78, 72, 79, 63, 72, 62, 73, 64, 68, 62, 74, 80, 55, 51, 62, 55, 49, 57, 71, 70, 64, 101, 44, 51, 55, 58, 58, 80, 48, 104, 40, 70, 87, 68, 76, 80, 63, 70, 99, 51, 73, 58, 63, 60, 52, 70, 80, 79, 63, 62, 57, 79, 47, 73, 59, 91, 55, 71, 67, 46, 68, 58, 60, 71, 64, 65, 58, 90, 64, 58, 70, 63, 59, 79, 130, 65, 50, 56, 57, 55, 79, 42, 73, 57, 41, 45, 51, 79, 59, 84, 56, 53, 59, 68, 52, 44, 60, 60, 77, 58, 70, 75, 59, 88, 43, 79, 78, 58, 61, 86, 43, 65, 66, 77, 121, 69, 55, 45, 62, 60, 61, 78, 49, 73, 81, 69, 56, 97, 71, 36, 67, 84, 48, 124, 70, 59, 85, 80, 62, 73, 70, 73, 58, 84, 58, 67, 67, 44, 69, 67, 50, 72, 86, 94, 61, 73, 63, 64, 57, 89, 65, 58, 60, 63, 41, 64, 76, 48, 55, 63, 74, 51, 67, 53, 92, 57, 64, 73, 84, 66, 74, 64, 80, 62, 71, 65, 66, 87, 67, 70, 41, 61, 59, 60, 72, 71, 55, 63, 69, 67, 68, 46, 65, 73, 69, 54, 71, 51, 66, 95, 73, 72, 44, 52, 61, 61, 79, 78, 56, 73, 72, 89, 70, 61, 81, 64, 81, 46, 104, 59, 59, 55, 81, 64, 60, 60, 68, 64, 60, 105, 67, 59, 73, 69, 61, 72, 103, 61, 65, 56, 78, 79, 74, 45, 75, 76, 58, 81, 78, 47, 43, 68, 51, 73, 69, 73, 49, 55, 72, 68, 79, 79, 55, 92, 98, 75, 67, 79, 62, 71, 52, 44, 68, 67, 52, 60, 60, 61, 52, 58, 51, 55, 50, 60, 118, 63, 75, 90, 66, 59, 62, 65, 70, 75, 50, 92, 82, 83, 87, 61, 59, 68, 64, 65, 83, 52, 69, 87, 86, 43, 88, 76, 73, 77, 57, 73, 88, 65, 78, 54, 48, 95, 61, 73, 63, 52, 85, 82, 60, 42, 60, 77, 52, 67, 57, 85, 34, 39, 54, 65, 61, 53, 47, 68, 63, 46, 66, 42, 64, 56, 62, 80, 55, 50, 55, 53, 62, 64, 59, 46, 42, 83, 38, 80, 63, 42, 75, 62, 78, 87, 78, 74, 61, 59, 69, 61, 106, 43, 58, 53, 56, 83, 85, 59, 67, 68, 58, 45, 61, 48, 78, 57, 67, 64, 59, 54, 87, 70, 62, 62, 76, 64, 80, 68, 68, 51, 53, 89, 62, 80, 71, 38, 98, 90, 50, 57, 56, 58, 80, 68, 49, 47, 54, 80, 78, 59, 69, 75, 63, 64, 55, 55, 58, 101, 51, 55, 49, 69, 49, 58, 50, 76, 73, 70, 59, 82, 60, 66, 68, 63, 89, 60, 60, 47, 51, 75, 68, 84, 51, 72, 60, 82, 62, 84, 66, 53, 83, 72, 64, 65, 62, 54, 62, 61, 51, 45, 54, 50, 88, 42, 63, 64, 54, 53, 72, 71, 58, 83, 67, 55, 56, 64, 64, 79, 56, 83, 59, 59, 76, 40, 83, 58, 83, 63, 72, 61, 74, 53, 56, 108, 64, 70, 62, 74, 66, 91, 59, 72, 53, 69, 66, 67, 64, 46, 67, 71, 72, 61, 62, 64, 50, 70, 50, 74, 42, 58, 53, 87, 69, 57, 42, 68, 60, 68, 75, 84, 74, 72, 60, 40, 42, 63, 57, 56, 74, 55, 71, 49, 50, 47, 73, 43, 73, 54, 61, 59, 69, 74, 62, 91, 73, 83, 41, 65, 71, 59, 67, 97, 78, 66, 78, 66, 81, 67, 75, 51, 70, 76, 69, 70, 88, 60, 95, 66, 78, 62, 63, 71, 62, 87, 99, 84, 69, 69, 65, 49, 62, 40, 89, 67, 67, 64, 91, 75, 77, 86, 86, 78, 58, 105, 41, 91, 74, 71, 74, 51, 57, 84, 59, 71, 65, 65, 67, 44, 90, 154, 46, 60, 68, 62, 37, 86, 59, 80, 62, 74, 51, 55, 77, 61, 89, 59, 121, 101, 76, 42, 50, 43, 50, 66, 59, 57, 50, 90, 68, 59, 73, 55, 57, 94, 67, 82, 44, 78, 55, 66, 90, 66, 60, 66, 50, 62, 57, 65, 75, 82, 64, 71, 67, 72, 70, 57, 54, 84, 61, 60, 55, 59, 75, 53, 82, 84, 38, 90, 77, 84, 61, 58, 48, 60, 72, 65, 65, 59, 123, 56, 70, 60, 53, 65, 78, 62, 71, 55, 60, 58, 54, 49, 59, 56, 71, 71, 75, 67, 48, 44, 69, 74, 63, 49, 66, 69, 65, 73, 51, 56, 70, 50, 66, 59, 55, 83, 70, 64, 57, 63, 58, 58, 53, 57, 43, 90, 88, 80, 58, 64, 78, 63, 86, 67, 64, 56, 56, 64, 67, 48, 66, 88, 59, 73, 95, 59, 68, 51, 89, 63, 71, 57, 87, 71, 62, 71, 43, 65, 44, 51, 59, 78, 54, 65, 69, 54, 69, 55, 65, 55, 79, 51, 63, 75, 51, 62, 56, 53, 82, 55, 45, 54, 77, 73, 62, 59, 81, 53, 67, 49, 77, 58, 61, 64, 64, 66, 67, 64, 67, 56, 83, 78, 76, 46, 55, 86, 74, 78, 63, 49, 61, 77, 71, 52, 61, 60, 67, 60, 62, 57, 54, 56, 60, 57, 59, 54, 62, 65, 68, 55, 64, 99, 56, 62, 113, 68, 58, 52, 73, 47, 53, 48, 58, 59, 84, 88, 60, 46, 60, 95, 63, 76, 66, 51, 55, 49, 52, 65, 68, 63, 54, 69, 75, 68, 90, 81, 64, 54, 74, 58, 59, 70, 57, 68, 65, 54, 71, 68, 65, 76, 62, 64, 62, 60, 44, 56, 45, 64, 60, 88, 57, 64, 69, 70, 66, 57, 96, 56, 79, 116, 70, 57, 97, 61, 71, 58, 72, 59, 62, 64, 53, 66, 72, 66, 64, 60, 75, 62, 56, 64, 57, 64, 62, 64, 54, 72, 57, 70, 73, 66, 56, 71, 66, 51, 42, 86, 73, 64, 55, 60, 70, 46, 55, 45, 68, 45, 76, 74, 72, 76, 66, 67, 63, 75, 83, 64, 69, 68, 61, 91, 65, 73, 57, 65, 54, 77, 73, 81, 50, 53, 71, 59, 62, 66, 55, 131, 73, 60, 82, 61, 59, 48, 60, 63, 59, 63, 71, 61, 53, 71, 60, 62, 54, 64, 74, 59, 60, 58, 90, 58, 71, 72, 56, 70, 44, 101, 57, 100, 50, 66, 82, 72, 73, 49, 68, 55, 55, 70, 65, 54, 48, 65, 64, 58, 50, 62, 60, 100, 63, 63, 85, 48, 62, 59, 63, 51, 59, 56, 76, 68, 53, 75, 65, 64, 76, 71, 47, 52, 66, 61, 84, 77, 67, 75, 115, 60, 43, 88, 50, 64, 79, 98, 69, 70, 69, 67, 64, 64, 81, 71, 52, 85, 74, 61, 94, 96, 69, 73, 72, 78, 61, 49, 64, 67, 77, 68, 69, 56, 62, 38, 63, 54, 60, 62, 56, 55, 58, 76, 85, 60, 81, 72, 58, 49, 54, 73, 48, 39, 57, 68, 68, 60, 58, 86, 64, 58, 66, 49, 60, 64, 77, 63, 51, 55, 78, 74, 61, 57, 67, 44, 57, 61, 68, 49, 65, 58, 59, 70, 67, 87, 58, 84, 62, 62, 50, 59, 84, 68, 60, 72, 68, 75, 82, 86, 62, 57, 48, 61, 84, 50, 61, 58, 72, 84, 53, 88, 79, 58, 54, 60, 72, 66, 61, 68, 64, 82, 76, 41, 90, 98, 53, 57, 90, 66, 61, 61, 45, 67, 60, 66, 76, 56, 62, 70, 56, 51, 76, 61, 60, 65, 52, 66, 88, 67, 62, 50, 66, 65, 45, 64, 56, 38, 69, 51, 73, 58, 72, 72, 70, 52, 70, 58, 61, 62, 64, 57, 54, 68, 76, 61, 90, 48, 73, 64, 78, 54, 67, 85, 68, 49, 57, 57, 66, 58, 65, 54, 69, 64, 65, 68, 59, 134, 72, 72, 55, 63, 55, 72, 74, 88, 85, 63, 87, 59, 62, 60, 77, 70, 52, 67, 86, 50, 77, 79, 53, 72, 71, 62, 64, 64, 62, 70, 72, 68, 37, 49, 59, 60, 69, 72, 61, 81, 78, 47, 73, 46, 64, 59, 63, 99, 54, 55, 96, 55, 68, 72, 60, 67, 75, 50, 55, 55, 72, 68, 71, 48, 63, 85, 72, 66, 66, 64, 100, 39, 49, 71, 65, 61, 59, 71, 69, 87, 51, 95, 58, 57, 69, 42, 65, 60, 51, 66, 59, 98, 67, 54, 80, 54, 78, 68, 67, 89, 51, 63, 69, 59, 76, 45, 61, 69, 57, 59, 71, 63, 56, 60, 70, 58, 67, 79, 56, 50, 73, 81, 51, 70, 71, 67, 72, 76, 62, 90, 57, 47, 69, 72, 61, 65, 53, 53, 57, 49, 64, 69, 70, 67, 64, 56, 67, 46, 61, 66, 78, 81, 69, 64, 69, 63, 79, 55, 67, 38, 62, 53, 54, 79, 70, 40, 72, 69, 69, 60, 56, 80, 52, 84, 56, 79, 72, 61, 82, 60, 83, 70, 76, 85, 82, 59, 60, 72, 77, 65, 74, 73, 59, 67, 86, 65, 104, 76, 88, 56, 68, 73, 55, 74, 73, 54, 57, 56, 62, 67, 73, 96, 60, 66, 50, 93, 46, 81, 67, 90, 76, 61, 73, 67, 72, 66, 65, 71, 91, 63, 88, 72, 67, 64, 67, 74, 94, 74, 69, 59, 67, 57, 69, 74, 77, 80, 56, 81, 72, 51, 70, 67, 86, 67, 67, 87, 52, 70, 60, 55, 77, 67, 67, 62, 64, 74, 66, 76, 61, 63, 75, 60, 90, 92, 46, 63, 64, 59, 45, 62, 63, 86, 70, 72, 109, 68, 100, 63, 85, 75, 78, 77, 54, 76, 69, 57, 61, 67, 56, 77, 74, 58, 57, 65, 53, 59, 67, 61, 59, 58, 65, 72, 68, 57, 78, 70, 68, 59, 75, 51, 69, 36, 94, 51, 87, 87, 92, 46, 73, 66, 87, 56, 70, 55, 50, 67, 86, 63, 74, 63, 63, 59, 65, 67, 67, 58, 77, 67, 98, 63, 57, 68, 59, 55, 66, 64, 43, 66, 66, 54, 64, 62, 69, 72, 82, 68, 83, 81, 60, 56, 55, 64, 61, 79, 64, 60, 60, 72, 68, 53, 49, 65, 100, 54, 80, 103, 62, 58, 63, 66, 39, 70, 72, 66, 65, 54, 74, 56, 57, 43, 47, 62, 71, 53, 55, 48, 55, 71, 65, 42, 58, 80, 70, 61, 58, 65, 69, 58, 84, 60, 78, 56, 57, 68, 58, 70, 62, 76, 60, 60, 67, 79, 75, 78, 54, 72, 62, 88, 61, 64, 61, 61, 70, 68, 68, 50, 59, 67, 48, 67, 72, 80, 69, 55, 54, 80, 66, 53, 66, 69, 77, 63, 67, 65, 62, 88, 56, 70, 82, 72, 77, 62, 62, 72, 65, 64, 71, 72, 71, 69, 62, 51, 54, 59, 69, 71, 68, 55, 53, 67, 58, 54, 78, 65, 58, 87, 74, 75, 144, 60, 58, 66, 74, 68, 46, 86, 56, 58, 67, 56, 70, 44, 79, 49, 64, 73, 87, 79, 77, 63, 61, 68, 66, 60, 63, 53, 76, 69, 62, 69, 58, 67, 75, 112, 52, 82, 61, 53, 74, 49, 94, 92, 56, 52, 67, 57, 89, 76, 51, 80, 45, 50, 67, 56, 84, 54, 46, 70, 73, 84, 58, 59, 52, 66, 76, 66, 67, 80, 60, 100, 119, 72, 66, 89, 51, 57, 72, 62, 67, 76, 65, 36, 55, 46, 45, 65, 59, 86, 68, 63, 86, 60, 44, 59, 71, 69, 54, 83, 64, 55, 55, 59, 48, 74, 68, 182, 55, 45, 71, 64, 57, 65, 57, 56, 50, 60, 54, 72, 77, 51, 95, 87, 95, 60, 72, 53, 80, 71, 55, 57, 53, 59, 80, 73, 72, 58, 75, 75, 98, 66, 66, 55, 60, 65, 65, 60, 57, 74, 64, 55, 45, 44, 70, 69, 60, 57, 76, 43, 64, 70, 44, 66, 73, 58, 64, 75, 58, 50, 79, 56, 76, 51, 78, 85, 70, 68, 42, 58, 50, 58, 62, 89, 72, 79, 85, 47, 60, 79, 53, 107, 74, 70, 62, 46, 98, 58, 44, 50, 62, 60, 55, 68, 59, 70, 86, 49, 55, 41, 58, 63, 66, 51, 71, 54, 69, 69, 68, 67, 53, 75, 76, 53, 56, 77, 67, 60, 50, 82, 61, 52, 47, 73, 53, 49, 72, 57, 61, 79, 70, 63, 57, 68, 62, 72, 78, 65, 80, 64, 64, 77, 80, 76, 45, 66, 61, 61, 92, 87, 80, 59, 74, 73, 82, 96, 56, 63, 94, 85, 64, 95, 59, 70, 56, 51, 73, 60, 63, 76, 64, 76, 73, 50, 76, 72, 56, 60, 70, 80, 72, 49, 58, 69, 85, 72, 57, 70, 49, 92, 57, 76, 49, 45, 62, 61, 67, 62, 75, 67, 70, 53, 72, 65, 53, 63, 53, 76, 80, 48, 46, 72, 54, 63, 67, 62, 74, 68, 38, 65, 64, 70, 85, 64, 49, 69, 64, 68, 62, 64, 60, 53, 53, 45, 46, 77, 71, 83, 66, 84, 52, 78, 69, 62, 62, 53, 73, 77, 66, 55, 72, 57, 76, 77, 94, 64, 68, 67, 55, 41, 67, 56, 81, 62, 39, 55, 53, 49, 69, 42, 56, 45, 71, 57, 49, 50, 75, 62, 54, 63, 53, 49, 56, 97, 49, 73, 55, 76, 69, 46, 74, 61, 63, 85, 63, 68, 58, 123, 85, 59, 69, 62, 43, 84, 61, 40, 78, 61, 59, 74, 74, 49, 57, 95, 63, 55, 65, 80, 80, 69, 70, 52, 58, 45, 49, 78, 107, 83, 77, 65, 79, 51, 61, 53, 67, 69, 68, 49, 77, 55, 67, 58, 64, 66, 71, 56, 87, 72, 46, 59, 89, 62, 65, 80, 49, 57, 86, 45, 67, 59, 58, 80, 54, 76, 76, 52, 79, 60, 78, 71, 57, 70, 56, 83, 46, 56, 76, 57, 75, 51, 70, 61, 62, 81, 63, 59, 46, 96, 78, 78, 78, 42, 53, 91, 73, 66, 52, 46, 60, 59, 52, 56, 72, 94, 63, 65, 75, 47, 85, 67, 56, 58, 36, 55, 67, 71, 75, 65, 44, 66, 66, 63, 52, 65, 97, 49, 80, 61, 74, 62, 76, 60, 62, 73, 79, 55, 95, 81, 67, 54, 49, 50, 64, 87, 73, 83, 54, 56, 60, 69, 64, 73, 60, 58, 69, 55, 69, 61, 47, 58, 69, 89, 71, 53, 62, 75, 58, 66, 48, 62, 57, 51, 55, 73, 101, 75, 69, 46, 52, 65, 58, 57, 48, 61, 67, 47, 56, 77, 55, 68, 54, 55, 78, 61, 52, 58, 70, 93, 73, 66, 52, 61, 64, 93, 56, 80, 50, 66, 53, 74, 82, 59, 58, 46, 63, 73, 97, 78, 60, 54, 54, 68, 94, 43, 72, 65, 62, 79, 76, 81, 67, 66, 56, 57, 53, 65, 75, 96, 52, 81, 67, 81, 57, 58, 71, 76, 56, 64, 79, 65, 47, 68, 58, 78, 74, 58, 73, 83, 51, 75, 60, 55, 46, 49, 78, 59, 42, 50, 62, 62, 82, 65, 67, 46, 79, 73, 54, 47, 70, 60, 60, 53, 80, 55, 77, 51, 73, 74, 66, 68, 56, 45, 54, 59, 88, 54, 84, 59, 63, 78, 54, 69, 74, 72, 55, 55, 47, 102, 44, 68, 46, 72, 59, 80, 93, 67, 69, 61, 99, 105, 49, 57, 53, 43, 49, 57, 69, 80, 87, 64, 81, 95, 100, 61, 65, 50, 67, 86, 84, 88, 67, 71, 60, 79, 56, 69, 59, 64, 67, 84, 68, 58, 80, 69, 75, 63, 54, 59, 45, 47, 39, 61, 91, 85, 81, 72, 71, 62, 55, 52, 63, 92, 50, 62, 65, 63, 106, 68, 58, 43, 60, 69, 67, 66, 61, 69, 61, 70, 84, 101, 25, 53, 70, 86, 60, 54, 62, 89, 64, 40, 79, 62, 73, 48, 63, 65, 91, 75, 85, 50, 64, 56, 62, 70, 58, 85, 99, 106, 78, 72, 52, 45, 72, 72, 54, 63, 70, 50, 62, 57, 72, 54, 46, 55, 65, 78, 61, 57, 94, 93, 74, 51, 62, 56, 55, 61, 60, 49, 60, 53, 76, 62, 56, 63, 79, 63, 115, 67, 64, 55, 44, 96, 61, 78, 57, 54, 58, 70, 61, 63, 92, 88, 54, 72, 60, 67, 77, 73, 65, 66, 52, 54, 96, 58, 54, 75, 53, 91, 84, 90, 61, 106, 59, 75, 73, 49, 57, 60, 54, 77, 52, 83, 62, 77, 73, 63, 65, 53, 63, 55, 77, 47, 62, 40, 63, 48, 39, 72, 65, 59, 59, 50, 71, 50, 55, 60, 103, 74, 51, 85, 68, 41, 60, 74, 57, 54, 44, 78, 80, 65, 48, 73, 70, 63, 65, 43, 65, 36, 91, 46, 69, 67, 99, 67, 46, 56, 66, 67, 58, 49, 49, 82, 68, 66, 86, 34, 58, 58, 109, 80, 46, 58, 65, 57, 84, 70, 62, 87, 54, 80, 60, 60, 64, 79, 77, 49, 42, 93, 52, 66, 83, 62, 75, 70, 85, 72, 45, 61, 84, 69, 72, 66, 69, 64, 58, 56, 72, 42, 50, 96, 84, 44, 66, 65, 51, 80, 57, 84, 80, 69, 76, 82, 77, 50, 66, 56, 43, 60, 77, 71, 77, 110, 60, 82, 71, 62, 90, 53, 68, 69, 55, 60, 86, 104, 46, 56, 55, 64, 60, 64, 72, 46, 99, 64, 88, 45, 72, 74, 56, 51, 59, 83, 69, 62, 65, 56, 72, 87, 64, 74, 74, 50, 59, 71, 56, 47, 56, 84, 71, 69, 58, 79, 47, 81, 72, 69, 71, 94, 54, 80, 85, 75, 72, 53, 77, 77, 63, 67, 55, 73, 53, 69, 84, 59, 66, 84, 56, 48, 44, 50, 84, 55, 59, 55, 64, 89, 61, 57, 79, 67, 57, 62, 63, 81, 64, 72, 69, 54, 82, 67, 63, 62, 74, 80, 65, 61, 66, 51, 70, 67, 125, 82, 78, 53, 61, 64, 51, 68, 107, 66, 50, 58, 67, 48, 65, 72, 65, 52, 57, 52, 60, 64, 67, 67, 71, 70, 61, 55, 90, 67, 68, 57, 68, 57, 44, 70, 75, 111, 81, 62, 82, 60, 62, 78, 65, 62, 68, 67, 70, 59, 54, 52, 51, 59, 67, 64, 63, 64, 48, 57, 49, 60, 51, 90, 65, 75, 90, 49, 83, 58, 84, 71, 59, 66, 60, 57, 66, 63, 76, 45, 96, 61, 69, 55, 75, 63, 68, 47, 78, 61, 56, 77, 54, 63, 66, 65, 69, 61, 69, 72, 56, 50, 64, 62, 54, 63, 70, 56, 63, 53, 88, 66, 65, 70, 63, 62, 53, 70, 65, 79, 54, 79, 51, 65, 50, 72, 73, 65, 60, 102, 57, 53, 64, 53, 61, 58, 65, 93, 64, 55, 99, 56, 60, 73, 76, 55, 81, 72, 103, 58, 75, 60, 44, 90, 111, 78, 70, 66, 40, 51, 61, 66, 58, 65, 69, 68, 70, 53, 59, 70, 78, 66, 60, 45, 55, 64, 106, 68, 74, 75, 46, 59, 53, 57, 66, 90, 57, 45, 56, 61, 47, 65, 67, 84, 130, 56, 52, 60, 82, 62, 59, 60, 42, 59, 62, 59, 65, 43, 83, 82, 66, 54, 49, 53, 72, 60, 56, 70, 55, 75, 74, 57, 69, 58, 56, 84, 69, 54, 60, 81, 71, 77, 61, 70, 63, 62, 70, 45, 62, 74, 64, 56, 50, 41, 51, 55, 71, 53, 50, 64, 66, 103, 68, 49, 52, 62, 80, 71, 57, 59, 57, 67, 63, 65, 71, 94, 69, 78, 65, 54, 75, 67, 64, 103, 54, 63, 70, 67, 66, 64, 57, 62, 69, 74, 54, 56, 109, 52, 62, 55, 50, 54, 54, 68, 75, 68, 42, 59, 67, 71, 69, 68, 63, 62, 65, 68, 65, 61, 65, 104, 67, 56, 71, 88, 60, 62, 59, 104, 72, 62, 64, 74, 101, 57, 51, 70, 66, 81, 56, 56, 66, 50, 73, 57, 68, 62, 66, 57, 62, 59, 58, 64, 66, 55, 52, 62, 100, 65, 58, 53, 50, 68, 61, 107, 59, 53, 54, 60, 62, 51, 94, 50, 70, 54, 72, 58, 61, 66, 61, 97, 66, 73, 64, 63, 69, 58, 89, 116, 72, 60, 65, 53, 74, 76, 78, 87, 77, 69, 58, 75, 58, 58, 62, 53, 58, 51, 77, 69, 67, 57, 79, 76, 47, 53, 58, 76, 54, 56, 85, 56, 63, 75, 66, 62, 55, 55, 73, 44, 64, 93, 53, 65, 75, 58, 66, 59, 48, 52, 62, 60, 71, 66, 70, 94, 50, 73, 53, 80, 94, 57, 70, 63, 76, 67, 63, 62, 72, 68, 69, 55, 121, 71, 67, 65, 57, 54, 61, 83, 70, 44, 78, 118, 67, 74, 68, 69, 62, 72, 48, 83, 88, 89, 78, 34, 60, 65, 63, 61, 69, 65, 63, 63, 52, 115, 51, 55, 53, 48, 68, 53, 74, 74, 79, 55, 56, 50, 62, 50, 90, 88, 79, 92, 67, 72, 77, 56, 82, 107, 67, 115, 77, 66, 81, 72, 50, 71, 71, 79, 66, 78, 72, 59, 70, 62, 62, 65, 102, 55, 75, 71, 58, 58, 55, 80, 88, 64, 132, 55, 58, 117, 68, 59, 67, 56, 43, 51, 64, 62, 53, 73, 80, 67, 58, 65, 79, 84, 52, 62, 55, 76, 89, 79, 68, 53, 88, 55, 61, 54, 63, 46, 64, 59, 67, 62, 73, 64, 70, 55, 64, 57, 60, 74, 41, 62, 61, 68, 58, 60, 61, 66, 50, 58, 71, 48, 58, 48, 95, 67, 58, 68, 67, 67, 58, 72, 55, 52, 69, 54, 55, 63, 67, 63, 70, 76, 76, 57, 60, 69, 78, 48, 74, 59, 55, 89, 56, 61, 63, 75, 74, 76, 65, 87, 63, 61, 61, 64, 49, 52, 65, 74, 56, 63, 49, 64, 81, 71, 98, 62, 71, 60, 46, 53, 71, 57, 59, 61, 96, 70, 47, 53, 82, 65, 92, 69, 59, 94, 47, 68, 68, 61, 59, 56, 52, 48, 59, 61, 55, 57, 64, 57, 94, 53, 64, 72, 44, 63, 54, 69, 50, 57, 52, 63, 79, 110, 62, 62, 36, 56, 54, 61, 88, 71, 78, 54, 66, 56, 48, 51, 76, 53, 54, 56, 66, 48, 62, 78, 63, 60, 66, 62, 65, 64, 70, 68, 62, 56, 56, 64, 70, 63, 72, 59, 59, 65, 81, 67, 94, 65, 48, 59, 74, 54, 72, 69, 61, 64, 68, 69, 78, 57, 56, 77, 55, 62, 59, 58, 75, 62, 79, 84, 56, 68, 63, 74, 56, 56, 65, 69, 53, 56, 74, 62, 68, 55, 59, 64, 55, 48, 56, 71, 93, 50, 60, 62, 52, 54, 48, 52, 59, 49, 99, 60, 58, 59, 68, 55, 61, 70, 60, 57, 62, 84, 63, 48, 75, 66, 58, 91, 79, 48, 70, 71, 51, 65, 62, 70, 84, 63, 46, 52, 65, 47, 54, 60, 123, 64, 79, 88, 72, 60, 67, 54, 55, 62, 53, 59, 66, 81, 77, 73, 45, 114, 54, 74, 46, 55, 55, 62, 49, 65, 74, 65, 53, 52, 75, 49, 62, 64, 62, 84, 69, 59, 67, 58, 71, 63, 59, 47, 62, 68, 49, 62, 59, 63, 64, 78, 52, 63, 71, 103, 126, 94, 73, 63, 54, 67, 87, 79, 94, 70, 66, 47, 51, 70, 62, 64, 56, 59, 77, 75, 71, 55, 71, 59, 94, 71, 68, 79, 77, 80, 54, 52, 73, 73, 68, 50, 62, 62, 51, 77, 108, 70, 52, 75, 56, 93, 56, 64, 60, 57, 75, 54, 68, 64, 68, 64, 82, 77, 57, 77, 90, 60, 61, 73, 58, 64, 73, 50, 55, 63, 56, 57, 42, 64, 70, 76, 55, 72, 80, 80, 56, 76, 73, 75, 48, 95, 61, 50, 82, 78, 54, 49, 61, 118, 109, 73, 65, 66, 67, 51, 76, 58, 59, 59, 71, 64, 67, 46, 51, 67, 59, 57, 77, 66, 78, 53, 61, 67, 110, 58, 89, 53, 93, 71, 89, 81, 51, 64, 68, 62, 58, 74, 56, 50, 62, 65, 91, 76, 43, 56, 75, 101, 81, 61, 67, 73, 45, 54, 68, 87, 83, 80, 40, 91, 56, 71, 56, 51, 118, 60, 94, 70, 58, 56, 58, 52, 65, 78, 68, 61, 65, 72, 52, 53, 94, 50, 60, 62, 81, 77, 73, 51, 51, 48, 54, 70, 41, 53, 85, 61, 78, 103, 77, 65, 79, 52, 73, 62, 66, 72, 54, 63, 68, 64, 35, 84, 60, 94, 57, 61, 72, 59, 75, 53, 101, 95, 64, 75, 66, 66, 71, 47, 57, 102, 57, 58, 101, 68, 58, 43, 55, 92, 102, 54, 84, 56, 81, 77, 91, 54, 61, 54, 36, 65, 68, 66, 63, 73, 69, 59, 53, 64, 53, 67, 105, 85, 49, 88, 82, 78, 66, 54, 66, 47, 55, 33, 73, 71, 54, 74, 61, 51, 64, 52, 58, 81, 76, 42, 59, 61, 62, 60, 45, 92, 57, 72, 43, 103, 52, 48, 72, 61, 55, 79, 71, 62, 67, 82, 60, 81, 47, 59, 60, 57, 82, 55, 70, 60, 87, 59, 57, 76, 58, 71, 57, 92, 66, 60, 54, 50, 66, 71, 44, 54, 68, 52, 59, 81, 68, 61, 70, 59, 48, 46, 81, 55, 53, 90, 72, 48, 78, 73, 90, 53, 84, 60, 58, 57, 55, 64, 63, 64, 67, 76, 67, 64, 59, 66, 53, 72, 69, 64, 66, 84, 62, 67, 64, 54, 64, 68, 62, 58, 59, 60, 56, 90, 76, 65, 66, 56, 78, 72, 83, 58, 64, 68, 60, 60, 58, 68, 85, 61, 93, 143, 61, 68, 60, 49, 70, 91, 79, 49, 65, 66, 57, 67, 50, 41, 63, 52, 49, 43, 62, 70, 52, 37, 57, 57, 65, 54, 58, 64, 73, 61, 85, 92, 55, 77, 72, 66, 56, 88, 52, 58, 86, 44, 52, 41, 67, 68, 66, 50, 66, 73, 71, 59, 79, 56, 77, 65, 68, 59, 63, 113, 76, 84, 68, 72, 68, 57, 58, 56, 60, 68, 69, 71, 68, 66, 60, 56, 74, 49, 59, 58, 78, 53, 66, 72, 65, 57, 55, 61, 61, 63, 67, 54, 47, 48, 64, 54, 56, 64, 87, 70, 56, 84, 61, 72, 68, 60, 60, 54, 63, 60, 53, 56, 64, 68, 66, 51, 56, 56, 77, 46, 56, 42, 111, 87, 79, 71, 64, 52, 65, 93, 53, 66, 65, 60, 58, 90, 80, 66, 62, 33, 58, 89, 72, 63, 78, 87, 75, 54, 79, 90, 65, 99, 57, 61, 62, 52, 72, 58, 81, 67, 79, 90, 68, 82, 59, 74, 72, 56, 64, 90, 79, 63, 63, 62, 46, 61, 65, 69, 78, 69, 69, 59, 49, 74, 58, 61, 55, 70, 53, 57, 42, 61, 57, 72, 62, 63, 54, 40, 53, 75, 42, 55, 64, 48, 69, 56, 68, 68, 52, 74, 54, 51, 68, 98, 55, 66, 68, 70, 62, 72, 56, 74, 62, 85, 47, 58, 47, 41, 66, 63, 81, 74, 83, 64, 58, 67, 62, 68, 58, 46, 51, 66, 70, 72, 102, 64, 65, 71, 57, 74, 111, 60, 61, 57, 53, 70, 51, 74, 87, 37, 46, 49, 77, 60, 62, 58, 70, 80, 62, 88, 71, 84, 53, 53, 56, 60, 77, 56, 58, 60, 74, 48, 76, 57, 74, 43, 53, 65, 70, 78, 46, 97, 77, 87, 78, 47, 73, 57, 64, 74, 74, 68, 64, 50, 86, 72, 92, 53, 80, 65, 74, 51, 66, 73, 67, 69, 53, 67, 71, 48, 50, 49, 66, 50, 50, 58, 55, 64, 57, 56, 32, 65, 50, 58, 77, 75, 54, 43, 50, 59, 73, 60, 73, 64, 50, 64, 73, 95, 82, 73, 49, 65, 70, 68, 103, 40, 64, 63, 78, 69, 57, 63, 76, 75, 75, 57, 74, 76, 56, 74, 57, 77, 66, 61, 67, 67, 64, 65, 35, 75, 56, 55, 67, 70, 66, 52, 74, 81, 63, 75, 85, 53, 53, 97, 59, 68, 88, 47, 95, 64, 54, 60, 98, 109, 58, 78, 76, 53, 66, 62, 56, 95, 53, 75, 68, 84, 51, 34, 74, 61, 70, 60, 86, 54, 67, 65, 90, 77, 48, 57, 47, 71, 44, 63, 86, 79, 54, 75, 56, 55, 51, 53, 78, 67, 50, 67, 46, 71, 61, 68, 79, 70, 75, 77, 63, 54, 101, 61, 53, 64, 65, 62, 80, 60, 48, 65, 66, 70, 66, 55, 64, 58, 39, 58, 73, 62, 62, 62, 82, 62, 61, 67, 74, 54, 56, 60, 86, 63, 86, 71, 67, 82, 51, 73, 147, 103, 74, 64, 63, 64, 49, 73, 58, 48, 61, 81, 60, 101, 54, 74, 61, 82, 55, 54, 61, 45, 72, 83, 71, 58, 52, 55, 87, 66, 79, 80, 62, 62, 50, 73, 70, 60, 44, 50, 70, 67, 67, 79, 80, 58, 73, 62, 71, 66, 84, 89, 86, 94, 75, 49, 76, 46, 49, 75, 57, 46, 79, 78, 89, 65, 69, 59, 72, 107, 61, 63, 74, 55, 59, 67, 71, 94, 68, 61, 54, 57, 55, 52, 81, 57, 66, 92, 70, 59, 55, 63, 50, 45, 70, 70, 81, 81, 65, 75, 72, 82, 77, 86, 45, 65, 60, 62, 71, 61, 83, 78, 78, 63, 76, 46, 110, 55, 64, 52, 80, 65, 58, 81, 58, 62, 82, 129, 64, 71, 95, 62, 81, 60, 86, 77, 51, 65, 58, 48, 81, 60, 57, 53, 67, 78, 46, 73, 105, 52, 90, 83, 67, 66, 82, 61, 52, 61, 69, 49, 68, 57, 47, 61, 70, 59, 73, 81, 62, 94, 81, 65, 116, 69, 86, 52, 48, 68, 66, 68, 51, 65, 74, 89, 47, 71, 65, 64, 62, 93, 61, 68, 54, 40, 45, 69, 48, 67, 65, 79, 54, 63, 66, 65, 73, 55, 57, 76, 58, 67, 53, 54, 63, 59, 106, 61, 52, 65, 59, 71, 57, 76, 72, 67, 80, 59, 57, 58, 49, 77, 61, 73, 64, 69, 43, 54, 76, 79, 55, 55, 80, 78, 65, 64, 62, 76, 45, 74, 60, 60, 60, 64, 83, 66, 68, 76, 69, 56, 59, 100, 59, 65, 71, 72, 83, 71, 58, 61, 70, 51, 56, 60, 82, 86, 63, 50, 72, 53, 57, 72, 65, 68, 67, 54, 59, 60, 56, 58, 72, 88, 62, 62, 55, 53, 72, 72, 112, 54, 65, 69, 56, 57, 68, 89, 48, 70, 59, 58, 53, 85, 64, 50, 55, 65, 66, 54, 73, 58, 73, 96, 70, 59, 52, 69, 73, 63, 77, 69, 43, 131, 67, 92, 59, 56, 84, 58, 65, 91, 48, 59, 42, 53, 54, 52, 58, 59, 44, 60, 68, 64, 67, 94, 59, 65, 50, 61, 77, 61, 65, 65, 62, 62, 84, 67, 62, 66, 55, 60, 63, 44, 64, 72, 50, 70, 69, 52, 53, 67, 53, 71, 58, 55, 72, 58, 62, 84, 52, 59, 64, 54, 63, 53, 55, 56, 35, 53, 58, 62, 76, 70, 81, 61, 64, 88, 85, 56, 60, 58, 64, 55, 58, 64, 80, 56, 57, 54, 67, 67, 79, 68, 69, 58, 65, 68, 59, 64, 53, 64, 47, 73, 68, 91, 76, 78, 57, 74, 51, 57, 72, 50, 90, 76, 79, 64, 55, 68, 52, 81, 64, 73, 64, 61, 64, 69, 109, 143, 79, 80, 79, 54, 61, 44, 62, 87, 65, 70, 72, 69, 74, 78, 50, 61, 63, 66, 57, 72, 57, 62, 63, 69, 49, 68, 66, 81, 59, 69, 71, 71, 81, 68, 52, 87, 71, 58, 60, 60, 75, 64, 62, 59, 64, 78, 53, 62, 72, 48, 61, 55, 48, 50, 77, 61, 61, 59, 43, 61, 72, 77, 53, 77, 68, 58, 54, 52, 56, 56, 59, 55, 58, 61, 75, 63, 61, 89, 80, 71, 69, 72, 55, 59, 74, 78, 64, 69, 81, 65, 68, 61, 54, 79, 54, 55, 89, 66, 67, 59, 64, 56, 65, 72, 67, 55, 59, 70, 65, 61, 59, 64, 61, 65, 64, 71, 56, 65, 54, 71, 63, 62, 56, 64, 62, 69, 73, 64, 68, 69, 83, 61, 74, 64, 56, 57, 70, 55, 67, 52, 57, 60, 63, 45, 71, 99, 52, 62, 59, 66, 98, 61, 66, 48, 71, 71, 65, 73, 62, 55, 51, 85, 74, 61, 50, 44, 56, 64, 65, 61, 50, 71, 68, 64, 92, 61, 60, 65, 45, 63, 62, 64, 54, 68, 74, 66, 81, 58, 72, 69, 69, 93, 45, 74, 61, 73, 49, 76, 54, 52, 74, 55, 72, 61, 66, 62, 61, 59, 54, 66, 50, 70, 63, 47, 44, 76, 50, 59, 61, 58, 78, 59, 54, 74, 65, 62, 67, 58, 68, 87, 78, 68, 69, 58, 81, 69, 62, 61, 62, 65, 61, 62, 61, 68, 71, 66, 58, 110, 62, 58, 63, 51, 48, 59, 47, 52, 69, 62, 57, 91, 61, 89, 63, 41, 56, 64, 64, 68, 74, 63, 64, 53, 103, 75, 63, 57, 77, 62, 60, 58, 87, 63, 93, 62, 119, 57, 70, 63, 71, 71, 105, 68, 77, 86, 63, 68, 78, 52, 68, 64, 58, 67, 67, 73, 76, 78, 85, 49, 86, 69, 65, 52, 64, 65, 61, 46, 60, 74, 66, 40, 61, 62, 58, 56, 54, 55, 62, 70, 76, 61, 76, 79, 54, 74, 61, 67, 68, 76, 55, 55, 66, 50, 58, 60, 53, 69, 59, 62, 57, 64, 63, 84, 63, 55, 57, 70, 63, 68, 58, 68, 66, 69, 77, 65, 65, 66, 62, 65, 75, 52, 66, 57, 66, 63, 63, 58, 61, 73, 64, 74, 54, 48, 54, 66, 73, 58, 56, 61, 51, 84, 63, 68, 104, 64, 55, 60, 60, 70, 59, 90, 68, 57, 63, 49, 74, 68, 49, 46, 65, 60, 69, 80, 56, 53, 72, 70, 61, 71, 56, 56, 47, 63, 54, 55, 58, 63, 53, 71, 55, 50, 60, 62, 65, 59, 51, 106, 51, 74, 83, 62, 75, 72, 64, 97, 57, 78, 52, 73, 62, 64, 65, 72, 53, 67, 95, 58, 58, 65, 64, 57, 50, 78, 52, 62, 82, 70, 70, 53, 57, 60, 63, 75, 66, 71, 49, 68, 72, 57, 61, 80, 72, 65, 56, 73, 53, 66, 67, 61, 69, 71, 94, 55, 70, 64, 68, 55, 62, 56, 61, 70, 54, 69, 59, 74, 64, 60, 69, 68, 70, 67, 102, 56, 63, 76, 60, 60, 61, 53, 58, 66, 62, 89, 85, 83, 70, 72, 104, 64, 72, 69, 54, 51, 75, 72, 59, 67, 55, 66, 63, 65, 81, 62, 71, 62, 61, 60, 81, 59, 61, 148, 69, 57, 72, 70, 54, 88, 91, 61, 69, 56, 73, 85, 60, 56, 49, 60, 76, 43, 64, 53, 57, 82, 59, 60, 61, 53, 71, 72, 59, 58, 71, 64, 51, 60, 56, 61, 97, 56, 61, 53, 69, 62, 72, 73, 70, 56, 55, 75, 52, 77, 58, 76, 46, 56, 74, 68, 96, 73, 81, 62, 74, 55, 69, 82, 65, 61, 75, 46, 57, 71, 76, 67, 67, 67, 75, 69, 75, 60, 67, 62, 65, 66, 62, 98, 48, 87, 74, 80, 66, 56, 51, 58, 75, 62, 58, 58, 81, 63, 67, 78, 66, 54, 65, 56, 70, 66, 99, 59, 60, 73, 65, 95, 51, 48, 66, 85, 76, 68, 66, 62, 60, 71, 54, 57, 65, 81, 59, 58, 59, 66, 70, 66, 56, 97, 66, 75, 127, 43, 62, 71, 71, 49, 101, 49, 66, 71, 59, 60, 72, 62, 52, 90, 69, 54, 58, 62, 68, 50, 71, 85, 51, 84, 61, 68, 44, 69, 59, 49, 53, 64, 47, 73, 111, 61, 64, 61, 49, 63, 67, 63, 70, 59, 63, 73, 62, 64, 67, 56, 49, 70, 97, 109, 74, 55, 61, 127, 87, 64, 56, 64, 64, 61, 70, 72, 54, 83, 73, 55, 64, 54, 60, 75, 64, 64, 50, 57, 76, 66, 58, 50, 66, 47, 64, 68, 49, 52, 52, 86, 50, 65, 58, 72, 67, 83, 58, 81, 77, 59, 71, 62, 57, 59, 85, 64, 51, 77, 54, 59, 51, 63, 69, 74, 78, 61, 81, 59, 87, 71, 94, 72, 84, 72, 59, 65, 60, 69, 62, 85, 66, 56, 55, 75, 60, 76, 71, 58, 87, 87, 52, 60, 121, 52, 84, 119, 54, 62, 41, 53, 52, 74, 55, 74, 44, 64, 63, 58, 84, 60, 48, 73, 63, 71, 70, 64, 57, 69, 62, 62, 58, 82, 47, 49, 90, 53, 70, 79, 62, 70, 94, 49, 62, 71, 62, 45, 63, 52, 55, 53, 75, 83, 75, 43, 69, 59, 83, 72, 56, 57, 64, 45, 60, 51, 90, 57, 56, 43, 59, 108, 56, 56, 69, 67, 45, 78, 60, 74, 63, 63, 63, 61, 82, 62, 50, 68, 49, 45, 43, 55, 75, 60, 53, 71, 60, 53, 69, 54, 52, 41, 71, 57, 53, 65, 100, 82, 105, 48, 62, 53, 94, 85, 64, 53, 73, 98, 63, 64, 53, 66, 56, 91, 65, 66, 57, 56, 65, 55, 80, 65, 58, 63, 47, 58, 39, 77, 78, 60, 53, 73, 88, 65, 50, 52, 72, 75, 64, 63, 70, 68, 62, 65, 56, 60, 75, 74, 70, 69, 71, 47, 60, 53, 69, 61, 77, 87, 101, 63, 55, 102, 74, 69, 53, 54, 57, 53, 48, 45, 59, 90, 71, 51, 75, 60, 59, 71, 81, 47, 65, 81, 69, 66, 59, 53, 30, 61, 55, 74, 54, 41, 44, 37, 40, 77, 70, 78, 63, 50, 66, 91, 53, 80, 63, 66, 68, 52, 73, 60, 60, 52, 57, 70, 60, 86, 74, 52, 73, 68, 70, 74, 63, 37, 66, 60, 64, 68, 67, 82, 66, 75, 53, 57, 48, 49, 86, 50, 50, 49, 63, 73, 69, 70, 47, 39, 65, 52, 88, 82, 68, 58, 62, 74, 64, 97, 65, 64, 54, 93, 56, 71, 82, 71, 70, 75, 80, 71, 62, 70, 57, 41, 60, 43, 79, 54, 70, 71, 74, 45, 66, 60, 118, 89, 49, 79, 75, 88, 67, 65, 73, 55, 60, 49, 94, 65, 126, 62, 62, 55, 137, 59, 55, 83, 78, 71, 55, 56, 64, 68, 80, 86, 65, 55, 66, 66, 55, 161, 49, 49, 45, 70, 107, 77, 64, 76, 54, 62, 70, 69, 48, 87, 48, 57, 44, 122, 48, 62, 108, 50, 88, 53, 51, 59, 61, 60, 109, 55, 89, 61, 56, 92, 75, 58, 53, 51, 47, 72, 60, 88, 49, 76, 69, 52, 45, 49, 67, 64, 50, 50, 93, 54, 57, 65, 71, 74, 73, 63, 54, 70, 47, 37, 51, 89, 68, 52, 53, 58, 62, 58, 78, 78, 68, 51, 88, 78, 75, 87, 84, 71, 54, 79, 84, 62, 64, 74, 73, 60, 91, 64, 70, 70, 59, 38, 79, 75, 65, 61, 57, 51, 70, 79, 62, 55, 56, 62, 57, 51, 57, 52, 56, 75, 61, 74, 65, 63, 66, 80, 47, 77, 71, 45, 68, 61, 55, 62, 73, 62, 77, 55, 67, 50, 62, 71, 55, 66, 72, 68, 76, 52, 58, 63, 74, 56, 65, 72, 62, 46, 78, 61, 60, 52, 58, 56, 79, 64, 49, 66, 57, 75, 47, 70, 77, 47, 73, 61, 73, 61, 75, 80, 77, 55, 62, 74, 56, 62, 58, 69, 51, 42, 64, 55, 54, 49, 70, 56, 69, 79, 57, 77, 71, 44, 76, 69, 68, 66, 69, 74, 60, 83, 89, 56, 75, 70, 93, 65, 77, 73, 57, 63, 68, 110, 58, 74, 71, 67, 67, 51, 63, 65, 43, 78, 57, 68, 82, 47, 62, 46, 61, 80, 50, 53, 80, 70, 101, 66, 130, 59, 56, 54, 50, 70, 90, 81, 59, 61, 74, 31, 87, 58, 76, 59, 53, 74, 59, 60, 112, 73, 42, 57, 62, 68, 63, 56, 76, 84, 59, 77, 65, 67, 65, 70, 55, 76, 62, 43, 45, 91, 74, 69, 72, 67, 30, 67, 90, 57, 74, 56, 59, 72, 69, 55, 49, 70, 69, 65, 77, 67, 49, 83, 79, 114, 77, 39, 38, 79, 69, 47, 62, 57, 66, 90, 64, 87, 63, 59, 66, 53, 52, 50, 74, 53, 65, 54, 77, 59, 72, 48, 62, 66, 53, 75, 70, 55, 74, 86, 63, 51, 79, 66, 76, 44, 69, 67, 59, 89, 59, 48, 59, 50, 74, 55, 57, 76, 47, 64, 66, 63, 53, 75, 68, 71, 69, 71, 65, 66, 89, 70, 58, 61, 74, 50, 56, 98, 66, 63, 85, 75, 67, 70, 65, 72, 73, 66, 70, 50, 49, 62, 61, 73, 72, 74, 106, 69, 64, 52, 87, 71, 56, 62, 71, 80, 52, 67, 43, 42, 58, 69, 66, 60, 77, 77, 70, 77, 37, 44, 77, 63, 79, 68, 67, 55, 46, 77, 50, 45, 54, 68, 71, 70, 68, 81, 73, 53, 57, 59, 86, 62, 62, 62, 42, 63, 55, 58, 69, 84, 76, 62, 70, 65, 75, 57, 59, 59, 62, 57, 81, 69, 73, 58, 66, 58, 53, 53, 74, 95, 88, 85, 76, 64, 66, 58, 58, 68, 58, 68, 55, 52, 49, 68, 85, 80, 80, 52, 68, 77, 48, 47, 44, 77, 65, 67, 51, 44, 108, 61, 57, 80, 52, 68, 78, 54, 67, 63, 62, 44, 73, 51, 62, 72, 67, 47, 56, 77, 57, 62, 58, 141, 86, 118, 55, 63, 86, 70, 60, 52, 63, 63, 72, 55, 73, 85, 47, 64, 94, 67, 49, 59, 57, 60, 56, 76, 66, 54, 69, 64, 63, 28, 66, 54, 65, 62, 51, 60, 52, 53, 70, 78, 78, 62, 84, 67, 76, 66, 67, 84, 62, 65, 86, 58, 73, 46, 57, 73, 78, 74, 78, 52, 67, 97, 76, 70, 64, 83, 59, 91, 77, 69, 56, 65, 55, 51, 77, 75, 82, 63, 62, 54, 49, 57, 79, 80, 58, 65, 93, 132, 65, 61, 68, 71, 162, 59, 68, 91, 57, 41, 71, 66, 79, 85, 59, 91, 79, 74, 53, 78, 77, 79, 55, 58, 71, 57, 75, 70, 62, 70, 74, 49, 46, 49, 63, 54, 98, 45, 62, 47, 44, 80, 63, 67, 49, 45, 80, 72, 74, 58, 54, 55, 66, 72, 55, 73, 55, 68, 48, 55, 60, 90, 51, 53, 59, 90, 71, 76, 59, 54, 70, 72, 74, 57, 57, 70, 58, 73, 67, 46, 64, 88, 59, 53, 79, 79, 48, 70, 70, 50, 58, 70, 50, 60, 42, 76, 63, 58, 56, 70, 80, 63, 50, 103, 59, 53, 50, 52, 65, 62, 63, 49, 82, 74, 69, 100, 60, 66, 68, 61, 89, 51, 63, 60, 59, 69, 69, 63, 74, 61, 81, 81, 59, 55, 65, 55, 66, 48, 86, 118, 79, 65, 44, 71, 46, 69, 75, 45, 61, 62, 53, 58, 67, 53, 72, 59, 58, 51, 66, 74, 77, 89, 62, 62, 95, 59, 63, 82, 72, 53, 69, 70, 73, 53, 64, 56, 64, 69, 93, 66, 55, 88, 97, 74, 54, 56, 63, 65, 120, 76, 71, 66, 96, 59, 53, 73, 67, 54, 49, 93, 61, 53, 98, 75, 54, 66, 56, 69, 76, 79, 77, 91, 65, 56, 57, 68, 129, 73, 56, 65, 58, 67, 72, 80, 80, 50, 55, 55, 54, 58, 50, 65, 65, 61, 68, 57, 53, 39, 66, 53, 75, 48, 59, 66, 117, 63, 51, 75, 74, 73, 58, 70, 70, 52, 42, 87, 68, 57, 80, 59, 59, 71, 58, 60, 74, 66, 62, 57, 66, 54, 78, 58, 60, 57, 54, 64, 81, 65, 56, 71, 63, 68, 113, 78, 68, 70, 61, 51, 69, 52, 48, 58, 68, 39, 73, 56, 88, 54, 101, 46, 63, 75, 55, 60, 69, 73, 58, 58, 63, 72, 54, 61, 54, 55, 68, 63, 58, 69, 54, 58, 58, 57, 62, 59, 70, 65, 83, 44, 68, 61, 43, 53, 61, 82, 77, 63, 57, 78, 55, 63, 105, 103, 68, 59, 60, 45, 90, 83, 75, 78, 54, 51, 96, 70, 82, 63, 83, 62, 45, 60, 66, 48, 75, 71, 76, 58, 61, 90, 67, 60, 53, 67, 63, 47, 59, 71, 76, 60, 106, 66, 51, 120, 79, 55, 52, 42, 43, 92, 94, 59, 77, 60, 49, 85, 49, 88, 69, 89, 117, 59, 67, 56, 111, 66, 54, 68, 59, 68, 67, 75, 64, 41, 49, 49, 76, 65, 67, 82, 59, 60, 74, 71, 54, 68, 65, 69, 163, 66, 60, 50, 64, 53, 53, 91, 43, 64, 65, 48, 73, 59, 102, 69, 48, 77, 99, 64, 53, 68, 62, 73, 53, 51, 54, 52, 46, 54, 76, 77, 77, 57, 88, 47, 75, 45, 81, 59, 59, 73, 36, 66, 55, 65, 81, 90, 73, 57, 54, 60, 90, 70, 89, 54, 61, 66, 49, 47, 69, 71, 63, 49, 56, 52, 69, 46, 42, 66, 63, 75, 58, 49, 87, 90, 89, 52, 38, 74, 49, 63, 63, 88, 60, 101, 68, 52, 64, 82, 68, 70, 59, 80, 111, 50, 58, 56, 76, 95, 54, 75, 59, 56, 91, 59, 78, 85, 38, 69, 69, 70, 54, 57, 75, 61, 44, 79, 101, 46, 91, 51, 52, 58, 60, 126, 47, 45, 65, 47, 57, 67, 46, 50, 57, 63, 47, 55, 109, 51, 65, 57, 83, 55, 76, 70, 119, 73, 64, 59, 65, 56, 69, 85, 77, 92, 88, 70, 57, 48, 90, 65, 71, 87, 52, 82, 68, 83, 44, 56, 64, 52, 60, 41, 76, 91, 66, 47, 41, 73, 59, 73, 49, 59, 61, 66, 52, 49, 64, 53, 61, 50, 59, 75, 70, 45, 89, 54, 52, 68, 56, 66, 83, 47, 77, 44, 61, 85, 60, 56, 40, 66, 61, 68, 50, 51, 38, 69, 51, 79, 66, 50, 78, 100, 68, 58, 52, 62, 90, 67, 60, 94, 53, 77, 67, 59, 76, 79, 55, 67, 34, 67, 69, 56, 63, 78, 90, 81, 47, 61, 56, 67, 82, 69, 78, 50, 64, 49, 51, 64, 69, 76, 55, 54, 53, 75, 83, 65, 47, 95, 78, 80, 52, 56, 81, 86, 53, 60, 54, 59, 71, 65, 57, 60, 61, 76, 66, 68, 76, 64, 59, 55, 82, 56, 70, 62, 89, 61, 55, 73, 48, 67, 61, 62, 100, 65, 50, 62, 66, 60, 58, 73, 49, 88, 72, 65, 58, 53, 57, 55, 59, 50, 69, 53, 58, 64, 71, 69, 58, 43, 88, 56, 90, 66, 82, 69, 49, 87, 55, 69, 69, 56, 57, 53, 60, 65, 69, 69, 62, 62, 59, 63, 58, 58, 58, 65, 92, 82, 58, 52, 50, 66, 59, 72, 64, 71, 58, 32, 56, 56, 52, 60, 49, 72, 66, 69, 70, 68, 67, 50, 50, 81, 64, 52, 42, 64, 72, 99, 75, 69, 77, 62, 62, 88, 43, 64, 137, 93, 69, 120, 67, 73, 66, 39, 125, 69, 79, 65, 94, 92, 48, 56, 53, 77, 47, 55, 56, 94, 75, 75, 92, 59, 61, 39, 36, 68, 70, 66, 97, 120, 64, 63, 61, 59, 56, 51, 88, 60, 54, 59, 127, 55, 72, 72, 55, 55, 68, 68, 45, 78, 97, 59, 44, 71, 57, 61, 53, 52, 63, 60, 68, 56, 58, 60, 53, 63, 61, 74, 60, 68, 82, 55, 54, 79, 50, 62, 63, 61, 100, 47, 59, 64, 66, 70, 58, 40, 68, 77, 62, 45, 68, 66, 71, 79, 66, 78, 62, 69, 51, 63, 81, 54, 95, 58, 101, 59, 52, 69, 55, 65, 65, 65, 56, 52, 86, 74, 63, 68, 71, 64, 60, 64, 98, 54, 54, 106, 88, 68, 63, 65, 47, 90, 50, 99, 65, 60, 69, 65, 49, 51, 70, 71, 64, 45, 57, 40, 87, 66, 69, 67, 74, 56, 47, 66, 68, 74, 61, 53, 48, 49, 42, 125, 64, 68, 77, 67, 86, 63, 78, 75, 56, 57, 60, 70, 63, 42, 37, 75, 58, 81, 58, 72, 55, 57, 47, 53, 82, 52, 47, 64, 72, 66, 64, 64, 101, 84, 50, 43, 73, 58, 57, 81, 46, 78, 68, 69, 60, 85, 75, 73, 57, 61, 46, 60, 47, 47, 81, 53, 61, 64, 66, 60, 62, 89, 62, 59, 77, 59, 49, 42, 71, 73, 54, 54, 60, 73, 62, 60, 70, 68, 59, 55, 71, 56, 84, 75, 51, 61, 42, 49, 76, 73, 89, 56, 85, 74, 48, 65, 92, 58, 83, 57, 74, 65, 61, 71, 98, 69, 54, 77, 78, 54, 108, 61, 65, 66, 78, 93, 83, 67, 66, 60, 61, 53, 58, 70, 81, 69, 56, 77, 60, 52, 53, 73, 61, 61, 78, 51, 55, 60, 50, 81, 49, 77, 60, 47, 70, 62, 47, 54, 57, 68, 86, 69, 74, 53, 54, 69, 80, 64, 72, 65, 81, 67, 79, 65, 102, 67, 65, 57, 48, 74, 55, 91, 89, 60, 73, 71, 70, 72, 54, 105, 84, 62, 80, 35, 75, 62, 48, 53, 60, 69, 75, 38, 101, 76, 58, 74, 63, 42, 69, 66, 61, 86, 86, 63, 46, 51, 68, 55, 60, 68, 52, 64, 54, 120, 61, 57, 53, 51, 83, 73, 87, 59, 91, 86, 83, 78, 68, 43, 52, 47, 63, 69, 60, 76, 52, 53, 79, 72, 63, 66, 36, 54, 83, 65, 64, 54, 66, 72, 77, 75, 91, 69, 66, 64, 82, 59, 60, 71, 62, 69, 61, 45, 129, 56, 47, 71, 105, 79, 76, 63, 55, 73, 38, 59, 71, 60, 71, 55, 46, 78, 67, 49, 63, 55, 52, 62, 122, 64, 52, 51, 56, 68, 61, 63, 54, 57, 60, 48, 58, 53, 92, 25, 84, 53, 52, 89, 83, 69, 57, 80, 63, 82, 68, 50, 43, 70, 80, 63, 65, 69, 70, 71, 77, 60, 64, 80, 70, 100, 52, 87, 61, 74, 69, 72, 79, 94, 68, 60, 62, 69, 46, 78, 50, 81, 54, 99, 66, 59, 74, 83, 77, 77, 71, 50, 82, 63, 68, 61, 74, 64, 50, 58, 64, 94, 71, 49, 69, 75, 79, 77, 84, 68, 74, 64, 51, 69, 66, 72, 64, 90, 39, 65, 47, 57, 91, 64, 82, 50, 61, 59, 80, 44, 95, 66, 76, 76, 60, 77, 98, 92, 51, 64, 52, 61, 56, 86, 74, 87, 51, 57, 58, 100, 51, 78, 66, 82, 74, 61, 49, 56, 114, 61, 91, 53, 72, 65, 62, 77, 59, 48, 76, 51, 75, 71, 56, 72, 45, 41, 58, 72, 103, 61, 42, 56, 55, 58, 55, 134, 82, 64, 64, 59, 55, 55, 79, 49, 50, 84, 49, 50, 75, 60, 61, 74, 66, 91, 89, 57, 71, 61, 66, 60, 67, 101, 66, 72, 131, 61, 62, 50, 68, 71, 73, 62, 61, 80, 75, 84, 76, 73, 68, 59, 52, 46, 50, 46, 70, 66, 55, 66, 49, 77, 44, 61, 91, 50, 60, 65, 62, 59, 64, 57, 62, 63, 81, 57, 58, 39, 38, 81, 61, 76, 36, 61, 69, 61, 64, 65, 53, 58, 86, 50, 66, 60, 59, 87, 81, 84, 37, 69, 73, 66, 56, 90, 53, 76, 48, 61, 89, 67, 58, 63, 50, 99, 48, 61, 65, 60, 92, 61, 48, 58, 45, 140, 70, 81, 53, 61, 38, 60, 58, 77, 72, 65, 83, 83, 69, 56, 103, 52, 71, 57, 72, 54, 71, 75, 99, 40, 35, 61, 68, 57, 73, 48, 58, 72, 57, 79, 47, 52, 58, 50, 66, 64, 70, 63, 69, 128, 52, 56, 43, 61, 61, 44, 93, 78, 53, 70, 50, 103, 59, 131, 70, 81, 56, 59, 68, 46, 54, 49, 97, 56, 49, 82, 60, 46, 83, 64, 56, 59, 36, 78, 69, 47, 38, 59, 59, 58, 68, 68, 62, 54, 69, 82, 64, 64, 80, 65, 65, 49, 62, 42, 56, 61, 59, 66, 60, 62, 57, 44, 95, 57, 74, 60, 57, 102, 59, 48, 55, 32, 56, 67, 66, 104, 43, 57, 59, 71, 47, 64, 62, 78, 122, 75, 56, 38, 74, 57, 74, 69, 77, 73, 66, 91, 69, 102, 67, 58, 74, 60, 65, 58, 53, 30, 58, 90, 52, 83, 66, 35, 94, 68, 64, 38, 54, 90, 67, 60, 74, 57, 78, 90, 67, 62, 61, 62, 64, 77, 63, 69, 80, 65, 40, 64, 80, 72, 67, 67, 71, 72, 84, 66, 64, 53, 141, 57, 72, 66, 69, 63, 71, 71, 68, 57, 66, 66, 63, 87, 49, 58, 71, 71, 70, 50, 58, 91, 76, 76, 73, 59, 48, 50, 75, 79, 59, 51, 68, 60, 62, 49, 38, 53, 63, 51, 70, 78, 26, 67, 49, 62, 64, 65, 63, 53, 78, 32, 49, 51, 45, 83, 67, 63, 36, 67, 55, 65, 87, 74, 58, 55, 70, 58, 63, 59, 56, 67, 92, 67, 71, 65, 58, 70, 58, 64, 65, 71, 75, 40, 65, 61, 67, 67, 56, 71, 68, 81, 65, 62, 50, 72, 86, 79, 67, 67, 64, 69, 64, 57, 53, 74, 72, 54, 61, 55, 69, 57, 48, 80, 51, 63, 50, 64, 45, 71, 68, 71, 42, 86, 46, 71, 56, 71, 43, 86, 52, 56, 64, 66, 54, 133, 58, 63, 65, 108, 56, 61, 59, 54, 76, 83, 49, 62, 60, 91, 63, 63, 89, 53, 49, 53, 61, 62, 68, 89, 52, 53, 68, 63, 83, 74, 69, 67, 54, 59, 78, 52, 62, 66, 54, 70, 75, 81, 84, 53, 50, 57, 66, 94, 40, 87, 71, 63, 102, 56, 41, 70, 66, 85, 67, 63, 68, 65, 69, 47, 77, 70, 58, 74, 82, 56, 77, 49, 67, 104, 59, 61, 37, 68, 71, 54, 93, 86, 65, 24, 57, 42, 53, 112, 61, 121, 64, 49, 60, 77, 116, 79, 59, 67, 49, 67, 87, 52, 78, 60, 74, 41, 70, 72, 62, 65, 58, 65, 43, 50, 44, 94, 78, 80, 71, 76, 59, 64, 57, 49, 88, 67, 53, 65, 35, 87, 75, 76, 174, 73, 83, 91, 54, 55, 147, 79, 81, 80, 72, 69, 52, 62, 69, 76, 70, 59, 90, 48, 63, 82, 56, 72, 89, 61, 89, 67, 76, 64, 59, 78, 70, 69, 63, 80, 45, 57, 64, 70, 53, 68, 52, 93, 78, 69, 97, 50, 68, 97, 51, 98, 51, 64, 95, 40, 71, 71, 60, 60, 60, 41, 53, 48, 65, 100, 70, 71, 61, 75, 75, 59, 75, 74, 63, 60, 66, 75, 87, 76, 71, 77, 67, 69, 35, 65, 60, 65, 55, 62, 45, 67, 76, 69, 88, 81, 80, 71, 74, 65, 68, 33, 89, 49, 51, 52, 72, 70, 55, 67, 68, 63, 65, 52, 57, 58, 70, 62, 87, 72, 67, 83, 54, 63, 57, 51, 51, 85, 62, 70, 63, 72, 49, 76, 69, 66, 88, 60, 45, 80, 55, 84, 77, 59, 41, 75, 76, 63, 60, 63, 67, 104, 84, 52, 58, 57, 79, 69, 68, 67, 51, 73, 61, 65, 105, 59, 67, 45, 82, 68, 54, 66, 62, 53, 56, 60, 45, 63, 65, 62, 46, 49, 72, 60, 60, 71, 71, 74, 41, 59, 44, 90, 96, 65, 80, 114, 59, 71, 50, 49, 47, 66, 60, 57, 62, 47, 64, 53, 87, 95, 71, 79, 62, 78, 46, 55, 53, 56, 70, 51, 59, 61, 54, 52, 84, 107, 53, 69, 81, 50, 62, 60, 83, 79, 85, 45, 56, 78, 58, 50, 61, 66, 54, 58, 70, 51, 62, 71, 67, 130, 77, 54, 67, 93, 91, 72, 69, 57, 60, 68, 86, 76, 78, 76, 55, 64, 75, 65, 72, 78, 60, 72, 64, 59, 73, 78, 84, 55, 61, 93, 67, 43, 63, 62, 78, 68, 67, 96, 49, 49, 67, 70, 70, 63, 67, 44, 98, 67, 56, 47, 47, 57, 84, 67, 87, 55, 69, 74, 52, 85, 61, 58, 53, 49, 97, 73, 61, 65, 88, 53, 64, 49, 76, 85, 74, 78, 65, 63, 57, 60, 65, 62, 61, 63, 45, 119, 62, 69, 77, 51, 52, 54, 73, 55, 74, 47, 57, 65, 70, 56, 55, 65, 63, 50, 60, 66, 96, 78, 39, 57, 58, 68, 73, 88, 52, 63, 66, 53, 51, 77, 69, 51, 63, 74, 63, 59, 73, 93, 78, 71, 53, 58, 69, 62, 61, 64, 73, 71, 74, 73, 56, 71, 61, 58, 59, 65, 99, 48, 70, 55, 45, 72, 55, 63, 74, 54, 85, 69, 64, 78, 36, 71, 70, 49, 70, 62, 27, 74, 67, 57, 77, 78, 81, 54, 64, 68, 130, 61, 48, 46, 101, 53, 86, 65, 66, 104, 66, 57, 67, 70, 59, 61, 68, 89, 42, 76, 52, 74, 77, 39, 46, 79, 61, 69, 57, 60, 54, 78, 67, 113, 81, 88, 69, 80, 63, 58, 66, 89, 57, 87, 51, 93, 58, 54, 50, 75, 48, 58, 67, 74, 61, 53, 58, 85, 64, 50, 72, 74, 76, 47, 73, 83, 64, 70, 51, 70, 67, 79, 70, 61, 77, 54, 66, 57, 66, 83, 59, 51, 81, 67, 76, 51, 95, 62, 44, 62, 77, 71, 66, 75, 64, 50, 71, 51, 74, 63, 43, 55, 70, 51, 58, 59, 57, 67, 59, 55, 58, 63, 72, 82, 65, 104, 80, 72, 82, 51, 80, 108, 65, 69, 53, 52, 72, 59, 74, 35, 58, 52, 78, 61, 49, 74, 62, 54, 60, 75, 61, 48, 87, 83, 83, 71, 64, 56, 66, 71, 74, 52, 56, 70, 51, 71, 73, 79, 71, 39, 40, 49, 49, 46, 84, 66, 70, 60, 60, 55, 49, 78, 54, 54, 82, 56, 42, 61, 54, 57, 58, 60, 72, 80, 59, 77, 59, 92, 51, 81, 61, 63, 72, 39, 61, 70, 63, 68, 59, 52, 59, 30, 58, 48, 77, 57, 89, 64, 58, 82, 63, 97, 37, 63, 40, 40, 86, 89, 57, 49, 85, 51, 83, 61, 52, 124, 57, 64, 50, 59, 62, 52, 67, 103, 69, 53, 62, 61, 63, 80, 51, 71, 68, 80, 59, 53, 64, 66, 69, 40, 72, 54, 49, 62, 59, 80, 54, 43, 61, 72, 76, 60, 67, 47, 65, 74, 55, 62, 65, 51, 56, 32, 70, 69, 52, 62, 86, 49, 90, 85, 46, 62, 66, 55, 49, 55, 41, 50, 66, 87, 66, 48, 70, 60, 54, 82, 44, 60, 50, 73, 52, 79, 99, 77, 68, 71, 113, 60, 59, 61, 54, 61, 68, 57, 58, 49, 52, 74, 84, 57, 69, 51, 68, 98, 72, 51, 74, 48, 49, 71, 75, 78, 46, 63, 86, 68, 59, 55, 59, 74, 100, 66, 69, 76, 97, 67, 60, 83, 54, 79, 66, 101, 128, 81, 67, 84, 69, 57, 61, 86, 80, 53, 75, 84, 60, 115, 78, 76, 56, 60, 67, 73, 62, 67, 58, 47, 61, 59, 59, 62, 142, 63, 60, 52, 60, 84, 45, 68, 49, 72, 63, 48, 62, 48, 72, 54, 78, 88, 66, 57, 47, 70, 78, 55, 61, 82, 50, 94, 58, 51, 69, 50, 66, 62, 79, 51, 53, 63, 58, 44, 58, 51, 67, 66, 83, 66, 65, 112, 88, 70, 57, 66, 64, 61, 69, 74, 67, 74, 42, 66, 61, 59, 66, 94, 66, 68, 112, 67, 73, 66, 72, 69, 66, 52, 66, 46, 71, 77, 48, 79, 86, 61, 53, 60, 71, 55, 45, 60, 63, 70, 59, 70, 49, 59, 77, 45, 83, 84, 83, 73, 55, 73, 80, 68, 50, 73, 76, 50, 76, 72, 54, 77, 72, 73, 85, 61, 47, 44, 62, 55, 55, 61, 62, 91, 73, 64, 80, 85, 87, 59, 51, 70, 61, 57, 85, 76, 93, 70, 48, 74, 66, 50, 102, 62, 55, 110, 61, 63, 75, 85, 93, 62, 46, 40, 49, 46, 67, 55, 71, 48, 94, 77, 61, 77, 60, 73, 58, 73, 54, 80, 46, 74, 61, 67, 53, 44, 69, 73, 45, 41, 74, 67, 83, 84, 62, 61, 58, 56, 77, 60, 65, 47, 59, 63, 46, 96, 76, 49, 53, 77, 73, 76, 41, 54, 70, 111, 60, 53, 60, 53, 58, 66, 59, 58, 63, 56, 82, 116, 68, 43, 69, 107, 76, 83, 66, 69, 79, 79, 44, 80, 67, 75, 73, 65, 73, 79, 126, 87, 76, 78, 47, 66, 78, 59, 85, 72, 77, 112, 59, 67, 58, 78, 59, 75, 95, 73, 74, 75, 57, 59, 89, 90, 61, 75, 59, 119, 65, 68, 69, 60, 42, 56, 45, 78, 80, 64, 48, 44, 31, 47, 65, 60, 73, 89, 68, 67, 27, 60, 65, 61, 62, 56, 43, 58, 71, 76, 89, 60, 55, 69, 60, 55, 66, 66, 67, 78, 63, 51, 67, 97, 77, 57, 55, 72, 69, 57, 46, 50, 64, 61, 29, 62, 54, 58, 63, 53, 46, 48, 82, 58, 94, 81, 55, 66, 69, 61, 65, 60, 56, 94, 86, 55, 84, 43, 39, 66, 66, 71, 55, 62, 50, 75, 50, 73, 88, 54, 49, 65, 73, 67, 56, 54, 64, 63, 64, 60, 65, 104, 51, 47, 50, 66, 51, 62, 54, 66, 70, 63, 87, 81, 85, 72, 75, 55, 77, 53, 82, 67, 64, 76, 68, 75, 58, 36, 82, 51, 70, 70, 62, 45, 56, 73, 69, 73, 57, 57, 56, 54, 52, 67, 67, 63, 77, 62, 74, 99, 78, 67, 58, 62, 53, 47, 82, 50, 77, 62, 78, 68, 68, 71, 40, 60, 87, 51, 69, 72, 69, 73, 66, 73, 70, 48, 83, 85, 68, 84, 82, 41, 73, 59, 40, 63, 78, 121, 84, 74, 83, 61, 82, 73, 75, 82, 70, 74, 60, 60, 56, 55, 60, 76, 59, 76, 68, 45, 48, 73, 51, 53, 48, 54, 79, 56, 67, 66, 58, 56, 56, 64, 62, 63, 71, 44, 63, 88, 58, 77, 52, 61, 56, 38, 64, 61, 71, 101, 95, 99, 66, 58, 65, 76, 47, 66, 84, 61, 61, 44, 63, 47, 61, 77, 61, 38, 49, 49, 53, 59, 56, 95, 52, 55, 62, 89, 46, 25, 64, 41, 65, 57, 69, 61, 60, 60, 63, 62, 80, 52, 57, 73, 61, 68, 66, 69, 58, 70, 50, 44, 80, 60, 61, 55, 98, 40, 69, 71, 64, 62, 89, 91, 64, 74, 81, 61, 88, 53, 55, 51, 61, 57, 66, 87, 61, 61, 53, 59, 63, 59, 123, 61, 40, 93, 78, 72, 70, 59, 69, 80, 47, 74, 64, 66, 53, 52, 50, 59, 66, 52, 48, 67, 63, 69, 46, 58, 60, 55, 79, 64, 52, 68, 54, 76, 54, 62, 75, 52, 77, 44, 60, 62, 51, 84, 77, 62, 76, 53, 67, 35, 69, 86, 77, 78, 90, 63, 82, 63, 90, 77, 75, 68, 74, 71, 60, 65, 61, 46, 58, 80, 59, 69, 56, 56, 96, 85, 62, 118, 66, 52, 61, 80, 81, 101, 57, 44, 70, 59, 53, 54, 78, 68, 53, 72, 80, 68, 70, 66, 60, 68, 107, 56, 47, 59, 58, 113, 53, 69, 51, 69, 47, 56, 56, 61, 77, 64, 41, 76, 78, 74, 87, 55, 66, 64, 63, 67, 68, 84, 48, 74, 48, 99, 67, 47, 81, 48, 59, 50, 71, 79, 77, 71, 86, 56, 65, 56, 66, 44, 64, 70, 67, 85, 84, 71, 64, 51, 53, 58, 67, 69, 66, 50, 48, 76, 51, 44, 57, 82, 68, 59, 51, 69, 53, 78, 65, 90, 64, 55, 54, 64, 40, 60, 42, 61, 63, 135, 52, 59, 51, 66, 76, 73, 104, 51, 100, 82, 66, 66, 106, 51, 68, 57, 93, 60, 56, 45, 86, 73, 47, 103, 73, 74, 57, 58, 90, 42, 71, 75, 68, 66, 77, 62, 68, 77, 59, 60, 58, 85, 47, 53, 76, 59, 94, 75, 65, 32, 56, 83, 61, 78, 101, 52, 78, 50, 62, 61, 52, 68, 67, 75, 71, 54, 72, 60, 50, 87, 62, 71, 57, 55, 54, 65, 66, 56, 72, 54, 67, 52, 76, 120, 67, 82, 93, 74, 68, 50, 76, 61, 83, 68, 63, 63, 62, 55, 60, 85, 86, 42, 59, 61, 81, 74, 72, 56, 49, 80, 89, 70, 47, 77, 85, 64, 57, 74, 84, 65, 40, 65, 56, 66, 61, 54, 58, 70, 52, 91, 80, 78, 88, 70, 75, 61, 63, 49, 64, 62, 71, 81, 51, 60, 51, 69, 59, 68, 78, 58, 64, 62, 72, 57, 91, 74, 86, 61, 58, 49, 79, 67, 63, 66, 115, 45, 84, 60, 32, 66, 63, 62, 86, 65, 37, 47, 64, 49, 45, 54, 72, 115, 81, 69, 54, 40, 88, 74, 59, 86, 60, 60, 60, 66, 69, 56, 73, 86, 53, 86, 64, 84, 65, 72, 63, 61, 55, 66, 72, 73, 49, 54, 62, 56, 73, 92, 107, 79, 70, 80, 67, 75, 66, 56, 74, 47, 49, 55, 74, 48, 65, 57, 41, 66, 41, 56, 54, 56, 68, 50, 62, 80, 86, 65, 87, 44, 55, 64, 73, 86, 76, 44, 39, 54, 76, 52, 70, 61, 52, 65, 51, 53, 80, 65, 85, 62, 86, 86, 78, 69, 67, 55, 55, 66, 63, 66, 75, 48, 61, 66, 43, 65, 58, 63, 91, 47, 67, 74, 62, 72, 76, 55, 61, 62, 75, 53, 73, 65, 73, 58, 75, 65, 58, 49, 72, 74, 66, 61, 70, 82, 56, 127, 72, 55, 84, 49, 31, 72, 68, 62, 94, 68, 79, 50, 58, 62, 71, 49, 71, 65, 45, 65, 48, 53, 67, 69, 56, 77, 57, 73, 48, 40, 48, 59, 55, 60, 45, 81, 46, 51, 49, 68, 67, 68, 60, 62, 77, 71, 70, 81, 38, 81, 58, 76, 62, 37, 64, 58, 48, 69, 47, 48, 80, 53, 47, 69, 63, 67, 53, 60, 60, 98, 80, 73, 75, 71, 58, 101, 70, 60, 65, 52, 70, 57, 79, 74, 75, 92, 68, 57, 68, 44, 49, 71, 58, 82, 50, 62, 82, 59, 73, 46, 50, 77, 79, 113, 67, 36, 52, 63, 53, 75, 93, 57, 72, 76, 102, 80, 81, 40, 61, 80, 56, 53, 76, 89, 53, 78, 64, 47, 65, 113, 39, 92, 72, 55, 49, 60, 78, 65, 77, 45, 61, 51, 65, 60, 72, 98, 52, 60, 78, 50, 86, 65, 61, 58, 78, 56, 57, 73, 99, 105, 49, 75, 71, 67, 80, 65, 68, 58, 61, 62, 53, 86, 72, 59, 60, 77, 46, 63, 74, 60, 63, 58, 80, 64, 87, 63, 77, 59, 63, 60, 76, 64, 46, 74, 56, 76, 62, 52, 41, 59, 68, 61, 53, 69, 75, 62, 59, 66, 81, 88, 71, 72, 82, 65, 52, 70, 92, 60, 80, 64, 91, 74, 51, 96, 84, 70, 63, 105, 53, 63, 76, 74, 60, 62, 68, 49, 61, 60, 53, 65, 58, 52, 59, 97, 53, 61, 74, 59, 70, 59, 47, 75, 61, 62, 52, 68, 82, 94, 60, 48, 124, 91, 50, 61, 67, 50, 61, 33, 68, 67, 59, 49, 55, 56, 41, 56, 81, 66, 74, 66, 64, 65, 67, 49, 60, 42, 57, 47, 61, 75, 77, 88, 61, 69, 60, 69, 62, 53, 64, 50, 58, 68, 59, 106, 64, 51, 83, 114, 56, 56, 85, 55, 58, 74, 73, 75, 71, 67, 49, 55, 70, 61, 62, 77, 62, 85, 58, 62, 57, 71, 82, 70, 50, 66, 164, 66, 79, 49, 45, 68, 84, 68, 64, 62, 97, 56, 62, 51, 52, 69, 51, 59, 65, 96, 44, 93, 73, 50, 51, 50, 58, 62, 59, 83, 54, 60, 68, 74, 44, 66, 50, 88, 79, 58, 74, 50, 67, 66, 77, 62, 76, 53, 85, 65, 63, 56, 49, 51, 66, 63, 54, 42, 74, 70, 79, 52, 80, 68, 48, 66, 80, 68, 69, 70, 69, 58, 61, 78, 53, 50, 49, 58, 77, 59, 68, 60, 78, 54, 73, 60, 68, 38, 51, 62, 46, 51, 63, 69, 54, 46, 54, 59, 63, 59, 72, 113, 56, 42, 57, 65, 87, 57, 65, 55, 69, 71, 61, 52, 103, 52, 58, 66, 60, 74, 65, 61, 89, 56, 73, 76, 67, 55, 47, 56, 63, 62, 55, 89, 42, 62, 77, 70, 53, 67, 76, 67, 66, 71, 56, 67, 88, 68, 64, 56, 50, 39, 73, 60, 72, 57, 52, 60, 66, 76, 72, 67, 60, 60, 70, 52, 81, 54, 64, 69, 67, 66, 89, 62, 56, 54, 69, 80, 95, 60, 122, 68, 61, 58, 72, 62, 57, 57, 66, 79, 51, 59, 78, 60, 81, 63, 70, 84, 55, 71, 62, 45, 69, 59, 58, 46, 50, 65, 70, 72, 63, 55, 48, 79, 51, 56, 64, 74, 84, 68, 76, 50, 57, 52, 61, 66, 67, 81, 72, 67, 53, 75, 44, 81, 87, 49, 91, 67, 54, 61, 61, 62, 87, 81, 57, 74, 72, 62, 74, 72, 60, 69, 116, 43, 53, 51, 82, 59, 78, 66, 71, 56, 64, 71, 39, 61, 111, 64, 46, 72, 54, 81, 62, 80, 94, 72, 72, 71, 71, 68, 66, 48, 71, 45, 58, 62, 53, 66, 68, 48, 96, 91, 43, 66, 99, 66, 63, 48, 66, 52, 68, 75, 65, 65, 54, 68, 62, 55, 61, 72, 49, 52, 52, 53, 56, 63, 59, 54, 62, 57, 73, 73, 65, 49, 70, 63, 54, 41, 59, 80, 63, 62, 52, 80, 79, 80, 56, 69, 68, 55, 63, 80, 70, 65, 57, 62, 79, 103, 42, 58, 74, 68, 123, 63, 84, 76, 70, 79, 74, 58, 52, 66, 59, 70, 66, 71, 64, 66, 62, 52, 72, 79, 66, 64, 74, 68, 51, 82, 85, 61, 41, 57, 80, 66, 69, 66, 65, 59, 73, 73, 80, 74, 65, 64, 58, 83, 36, 70, 61, 79, 92, 56, 44, 67, 32, 56, 67, 73, 59, 69, 60, 62, 69, 63, 49, 80, 61, 84, 91, 87, 49, 62, 56, 75, 72, 51, 59, 65, 70, 66, 60, 56, 59, 73, 72, 49, 65, 34, 57, 57, 86, 53, 78, 80, 77, 53, 41, 50, 77, 69, 60, 77, 69, 50, 62, 74, 52, 58, 59, 65, 57, 72, 67, 63, 60, 58, 125, 75, 67, 40, 56, 72, 65, 49, 70, 66, 47, 65, 57, 66, 53, 66, 63, 62, 62, 52, 61, 67, 52, 54, 56, 59, 68, 76, 69, 57, 54, 69, 74, 71, 61, 57, 52, 57, 68, 56, 45, 83, 76, 47, 58, 66, 71, 90, 62, 56, 88, 37, 71, 54, 92, 82, 77, 75, 65, 62, 91, 54, 72, 61, 66, 62, 53, 53, 77, 62, 61, 42, 94, 69, 72, 83, 49, 53, 73, 70, 43, 74, 73, 81, 50, 85, 62, 80, 57, 60, 117, 75, 65, 74, 68, 67, 63, 58, 74, 77, 62, 81, 82, 63, 83, 53, 61, 40, 84, 54, 70, 39, 55, 90, 65, 73, 70, 54, 58, 52, 111, 68, 56, 49, 59, 49, 71, 76, 46, 66, 55, 54, 56, 76, 47, 86, 54, 76, 69, 65, 56, 52, 120, 76, 65, 62, 60, 72, 71, 56, 55, 64, 63, 75, 63, 63, 69, 68, 55, 54, 57, 69, 68, 49, 68, 66, 129, 86, 64, 55, 57, 76, 61, 76, 75, 58, 57, 58, 66, 48, 58, 74, 150, 70, 60, 69, 79, 51, 51, 51, 98, 54, 67, 57, 55, 61, 79, 63, 61, 71, 75, 61, 114, 70, 58, 74, 68, 73, 60, 70, 73, 62, 45, 57, 75, 74, 49, 67, 52, 52, 84, 71, 53, 69, 47, 58, 75, 115, 88, 64, 83, 68, 60, 58, 58, 51, 74, 74, 50, 70, 46, 60, 76, 63, 54, 59, 83, 65, 58, 43, 72, 56, 52, 72, 93, 65, 50, 52, 57, 83, 65, 82, 54, 75, 72, 57, 59, 53, 63, 65, 66, 54, 65, 70, 53, 63, 64, 54, 57, 62, 60, 66, 68, 57, 79, 58, 60, 66, 74, 80, 104, 79, 49, 63, 49, 65, 66, 49, 55, 69, 49, 52, 98, 52, 64, 67, 75, 59, 64, 62, 62, 104, 86, 45, 95, 55, 77, 64, 70, 68, 66, 64, 46, 41, 58, 75, 100, 54, 82, 87, 77, 85, 72, 81, 39, 71, 82, 59, 53, 63, 76, 83, 58, 89, 77, 44, 85, 118, 72, 67, 56, 86, 74, 48, 101, 72, 40, 91, 67, 62, 73, 67, 64, 68, 72, 82, 68, 63, 50, 68, 80, 63, 67, 51, 81, 50, 69, 60, 132, 58, 83, 68, 100, 65, 67, 64, 67, 43, 71, 61, 65, 58, 50, 82, 67, 48, 56, 73, 106, 69, 91, 71, 58, 72, 94, 60, 86, 54, 75, 87, 77, 47, 59, 53, 46, 50, 62, 63, 55, 58, 51, 107, 50, 63, 58, 62, 71, 59, 77, 98, 48, 45, 117, 61, 80, 57, 65, 71, 52, 97, 66, 83, 71, 49, 72, 48, 49, 81, 56, 60, 55, 56, 70, 48, 70, 52, 53, 49, 68, 69, 73, 59, 90, 69, 62, 63, 72, 64, 76, 52, 72, 65, 54, 52, 69, 65, 54, 56, 76, 61, 46, 65, 74, 71, 65, 91, 57, 69, 69, 39, 55, 62, 58, 70, 50, 47, 85, 52, 54, 73, 77, 84, 57, 57, 61, 75, 66, 67, 77, 96, 48, 69, 52, 79, 61, 65, 58, 69, 54, 63, 71, 63, 62, 71, 53, 57, 76, 47, 69, 56, 70, 68, 76, 46, 69, 94, 50, 52, 87, 50, 53, 67, 91, 77, 60, 69, 60, 92, 57, 60, 66, 67, 66, 75, 62, 53, 67, 68, 63, 83, 74, 71, 71, 70, 55, 62, 50, 70, 65, 81, 51, 72, 58, 59, 74, 88, 64, 84, 64, 61, 79, 84, 71, 60, 80, 70, 67, 79, 77, 55, 72, 80, 67, 73, 53, 64, 83, 66, 80, 101, 50, 76, 77, 70, 67, 74, 63, 49, 71, 70, 54, 62, 90, 63, 69, 63, 70, 54, 69, 52, 60, 58, 47, 112, 74, 53, 81, 95, 77, 58, 54, 69, 75, 49, 97, 71, 49, 77, 46, 67, 62, 75, 73, 53, 56, 51, 64, 67, 57, 76, 66, 45, 65, 61, 62, 46, 51, 48, 70, 56, 72, 107, 135, 53, 76, 60, 72, 67, 78, 64, 60, 45, 59, 58, 79, 54, 68, 76, 52, 58, 99, 69, 61, 56, 69, 49, 80, 73, 81, 54, 67, 91, 81, 49, 64, 59, 58, 61, 60, 61, 65, 63, 55, 94, 64, 71, 75, 84, 47, 102, 73, 69, 62, 99, 53, 74, 51, 93, 67, 69, 68, 62, 67, 68, 50, 67, 82, 76, 68, 68, 60, 65, 67, 61, 74, 61, 82, 73, 60, 54, 77, 73, 101, 74, 63, 77, 56, 46, 69, 78, 53, 52, 68, 59, 69, 62, 72, 66, 71, 83, 56, 55, 54, 72, 87, 64, 81, 48, 66, 60, 53, 62, 76, 48, 51, 58, 61, 57, 65, 69, 67, 81, 73, 44, 72, 63, 47, 131, 85, 61, 76, 61, 56, 84, 86, 77, 87, 82, 61, 52, 74, 56, 75, 58, 59, 65, 75, 56, 82, 56, 73, 81, 87, 63, 47, 89, 67, 74, 47, 54, 59, 88, 57, 89, 52, 69, 59, 63, 56, 51, 50, 53, 93, 95, 49, 93, 66, 62, 58, 63, 70, 65, 43, 51, 61, 64, 75, 61, 66, 74, 60, 70, 55, 65, 46, 72, 71, 56, 56, 78, 64, 57, 53, 85, 63, 66, 69, 65, 91, 66, 79, 68, 61, 53, 72, 65, 74, 48, 50, 76, 56, 56, 71, 66, 65, 50, 59, 84, 61, 70, 81, 84, 81, 68, 51, 68, 53, 66, 136, 53, 52, 71, 47, 64, 81, 73, 93, 62, 52, 57, 50, 58, 72, 61, 52, 60, 55, 73, 53, 66, 47, 58, 49, 76, 72, 91, 80, 51, 58, 59, 64, 59, 79, 55, 83, 74, 70, 66, 60, 72, 95, 86, 58, 65, 58, 71, 63, 70, 51, 51, 50, 74, 52, 97, 58, 64, 48, 61, 86, 37, 56, 55, 73, 65, 82, 60, 120, 76, 77, 63, 46, 103, 79, 77, 53, 64, 57, 54, 40, 46, 59, 57, 62, 70, 58, 101, 58, 56, 55, 75, 88, 57, 116, 62, 58, 52, 92, 70, 57, 70, 45, 67, 70, 64, 60, 87, 48, 55, 48, 105, 53, 52, 59, 64, 40, 99, 64, 43, 57, 57, 65, 83, 70, 56, 46, 48, 65, 67, 61, 78, 44, 77, 68, 49, 57, 55, 55, 54, 53, 73, 57, 90, 60, 49, 48, 59, 68, 70, 68, 56, 59, 60, 61, 64, 63, 60, 99, 76, 84, 59, 55, 151, 78, 52, 72, 63, 51, 66, 76, 62, 57, 60, 55, 90, 73, 64, 60, 83, 52, 55, 63, 82, 64, 79, 57, 62, 64, 55, 99, 68, 54, 44, 74, 60, 72, 59, 58, 48, 74, 63, 95, 79, 63, 70, 50, 50, 64, 64, 60, 36, 56, 73, 69, 69, 74, 79, 62, 56, 62, 68, 47, 52, 60, 62, 57, 81, 44, 58, 73, 55, 57, 66, 65, 53, 50, 70, 71, 59, 65, 81, 51, 70, 48, 75, 63, 72, 69, 53, 63, 55, 53, 50, 74, 62, 73, 65, 78, 62, 83, 53, 52, 97, 71, 67, 58, 70, 55, 60, 62, 49, 54, 47, 63, 88, 68, 90, 57, 66, 72, 81, 79, 46, 79, 65, 62, 63, 67, 55, 61, 62, 79, 67, 77, 77, 68, 59, 83, 53, 79, 63, 60, 63, 77, 64, 66, 67, 69, 45, 75, 51, 65, 80, 65, 79, 62, 73, 40, 49, 35, 67, 68, 68, 74, 64, 62, 50, 64, 89, 77, 64, 62, 73, 62, 68, 59, 56, 67, 58, 63, 63, 59, 53, 73, 72, 51, 86, 55, 80, 69, 64, 70, 65, 54, 49, 98, 71, 66, 74, 64, 58, 88, 52, 60, 52, 64, 62, 84, 69, 64, 79, 66, 64, 77, 66, 75, 78, 59, 69, 55, 70, 54, 70, 83, 52, 70, 79, 52, 64, 47, 77, 76, 69, 62, 93, 62, 74, 60, 72, 55, 65, 63, 58, 51, 61, 75, 64, 55, 79, 64, 68, 51, 51, 80, 58, 91, 85, 73, 38, 65, 92, 65, 67, 74, 124, 85, 81, 65, 66, 64, 61, 53, 52, 66, 58, 49, 60, 65, 38, 74, 69, 64, 64, 76, 70, 83, 84, 69, 53, 61, 60, 69, 61, 56, 74, 65, 62, 71, 95, 59, 59, 81, 67, 73, 78, 84, 62, 61, 94, 51, 65, 89, 52, 93, 75, 82, 61, 91, 68, 52, 77, 56, 63, 54, 77, 62, 72, 53, 75, 45, 69, 63, 64, 46, 47, 57, 62, 58, 73, 72, 59, 64, 42, 68, 84, 80, 58, 61, 71, 62, 78, 60, 57, 58, 63, 68, 80, 75, 75, 63, 78, 66, 71, 61, 77, 59, 69, 41, 81, 71, 61, 75, 60, 60, 72, 57, 59, 42, 63, 80, 47, 55, 52, 63, 60, 54, 55, 54, 77, 64, 63, 65, 39, 74, 54, 60, 60, 66, 70, 59, 70, 58, 93, 64, 44, 63, 71, 52, 66, 54, 71, 80, 69, 65, 57, 59, 48, 52, 67, 57, 66, 72, 57, 62, 93, 57, 56, 66, 72, 68, 64, 72, 68, 49, 40, 65, 50, 45, 75, 55, 67, 74, 73, 59, 55, 73, 56, 50, 49, 105, 64, 68, 75, 76, 74, 59, 85, 75, 74, 67, 45, 80, 65, 120, 66, 53, 62, 66, 53, 37, 64, 101, 45, 50, 72, 77, 67, 64, 67, 52, 78, 129, 60, 58, 49, 51, 52, 62, 68, 50, 79, 77, 78, 55, 56, 50, 95, 77, 54, 57, 79, 74, 45, 59, 64, 55, 58, 69, 88, 74, 62, 64, 57, 64, 78, 45, 57, 60, 66, 59, 47, 61, 118, 56, 82, 83, 44, 65, 56, 53, 68, 68, 64, 65, 68, 62, 64, 65, 44, 66, 57, 77, 50, 50, 85, 64, 56, 61, 58, 71, 72, 59, 44, 46, 70, 76, 81, 69, 45, 61, 74, 84, 72, 41, 69, 58, 72, 59, 55, 94, 75, 67, 65, 59, 61, 59, 57, 53, 56, 61, 73, 70, 58, 51, 72, 72, 68, 86, 57, 55, 72, 88, 43, 47, 55, 83, 47, 65, 74, 89, 74, 54, 83, 51, 52, 78, 69, 67, 71, 53, 83, 66, 63, 64, 60, 64, 53, 63, 64, 56, 69, 54, 57, 60, 72, 58, 85, 78, 78, 57, 49, 65, 61, 68, 73, 51, 61, 62, 72, 49, 58, 62, 80, 73, 56, 76, 74, 54, 119, 52, 84, 64, 52, 48, 64, 50, 88, 80, 39, 42, 69, 46, 74, 66, 36, 95, 68, 60, 81, 58, 65, 66, 94, 69, 61, 82, 57, 55, 91, 50, 61, 70, 84, 51, 56, 80, 61, 70, 58, 71, 48, 89, 85, 59, 70, 93, 72, 54, 93, 83, 76, 56, 52, 94, 121, 95, 78, 63, 61, 55, 68, 69, 84, 57, 51, 87, 77, 53, 67, 44, 85, 63, 51, 63, 54, 62, 61, 65, 90, 53, 97, 57, 91, 50, 48, 102, 76, 71, 62, 70, 86, 75, 60, 38, 59, 66, 41, 90, 54, 56, 58, 69, 57, 80, 58, 51, 70, 61, 67, 57, 60, 68, 52, 38, 68, 72, 41, 73, 41, 45, 68, 45, 59, 42, 76, 54, 41, 59, 69, 58, 48, 65, 76, 80, 45, 61, 75, 76, 83, 73, 59, 65, 79, 68, 58, 86, 61, 92, 63, 51, 112, 60, 111, 63, 52, 65, 52, 77, 74, 83, 73, 78, 44, 89, 52, 85, 106, 67, 57, 78, 63, 107, 104, 58, 58, 76, 70, 56, 51, 48, 62, 75, 73, 58, 87, 56, 52, 88, 53, 67, 128, 66, 67, 76, 91, 65, 80, 47, 52, 76, 76, 64, 82, 58, 49, 53, 88, 58, 56, 72, 57, 72, 58, 76, 91, 53, 51, 60, 71, 88, 82, 77, 31, 83, 55, 85, 67, 82, 69, 44, 65, 68, 67, 58, 55, 69, 61, 66, 59, 52, 52, 86, 72, 57, 69, 54, 73, 69, 55, 53, 74, 45, 63, 79, 70, 68, 58, 95, 50, 55, 53, 62, 47, 85, 105, 62, 69, 55, 75, 80, 90, 62, 63, 60, 50, 77, 68, 76, 61, 44, 64, 77, 71, 68, 37, 74, 72, 60, 64, 61, 89, 73, 79, 60, 60, 71, 56, 63, 63, 69, 58, 67, 60, 50, 60, 63, 74, 63, 81, 63, 59, 51, 37, 76, 130, 76, 48, 70, 64, 50, 63, 78, 78, 84, 54, 56, 58, 62, 68, 54, 69, 63, 70, 70, 54, 53, 68, 38, 59, 44, 71, 65, 70, 57, 40, 53, 80, 87, 55, 60, 63, 78, 43, 62, 67, 54, 63, 83, 66, 50, 54, 78, 74, 49, 64, 74, 87, 67, 66, 67, 66, 51, 86, 62, 86, 65, 63, 91, 51, 77, 70, 94, 63, 63, 64, 39, 52, 46, 82, 65, 68, 58, 42, 78, 50, 64, 65, 42, 74, 54, 77, 57, 59, 58, 70, 70, 49, 56, 106, 74, 63, 74, 100, 44, 78, 59, 55, 62, 86, 60, 63, 65, 72, 45, 43, 44, 42, 67, 70, 50, 60, 56, 68, 68, 61, 61, 76, 68, 51, 72, 61, 69, 67, 66, 81, 72, 59, 64, 69, 53, 36, 77, 57, 62, 65, 58, 67, 73, 69, 45, 66, 70, 67, 62, 51, 77, 53, 43, 70, 66, 74, 65, 61, 69, 99, 89, 70, 95, 60, 63, 66, 96, 105, 68, 68, 70, 81, 48, 73, 60, 108, 69, 48, 54, 70, 49, 57, 49, 78, 68, 74, 75, 47, 50, 58, 72, 54, 38, 60, 53, 54, 72, 66, 69, 52, 71, 57, 76, 86, 61, 81, 45, 58, 47, 48, 63, 52, 64, 57, 87, 69, 77, 71, 86, 57, 68, 63, 60, 60, 78, 52, 52, 86, 43, 57, 73, 52, 62, 53, 59, 90, 55, 98, 88, 64, 56, 54, 63, 64, 57, 91, 63, 59, 50, 55, 87, 77, 58, 75, 74, 68, 88, 58, 68, 79, 87, 91, 70, 47, 56, 92, 63, 53, 77, 45, 80, 70, 46, 43, 97, 87, 54, 80, 90, 82, 90, 58, 66, 48, 67, 76, 54, 82, 79, 55, 91, 70, 76, 69, 110, 79, 49, 61, 50, 59, 46, 63, 64, 59, 81, 52, 77, 60, 51, 59, 71, 55, 70, 70, 44, 73, 95, 64, 51, 44, 78, 128, 72, 68, 75, 60, 70, 59, 60, 68, 79, 74, 66, 63, 42, 90, 80, 76, 94, 78, 106, 60, 69, 48, 56, 52, 57, 53, 57, 83, 68, 82, 90, 80, 57, 70, 75, 42, 93, 66, 130, 76, 49, 57, 47, 70, 62, 52, 71, 62, 128, 91, 65, 54, 57, 93, 56, 76, 65, 75, 77, 56, 58, 61, 51, 58, 55, 84, 68, 68, 88, 58, 55, 63, 64, 43, 55, 74, 68, 50, 78, 69, 73, 75, 58, 66, 70, 96, 60, 51, 50, 42, 60, 70, 53, 62, 75, 56, 53, 68, 65, 72, 81, 53, 36, 52, 38, 51, 73, 57, 63, 92, 60, 56, 57, 69, 73, 77, 71, 63, 60, 79, 67, 47, 66, 43, 51, 58, 44, 87, 87, 48, 62, 79, 89, 120, 65, 88, 52, 59, 74, 87, 48, 89, 63, 69, 56, 69, 54, 78, 79, 65, 65, 55, 92, 58, 64, 57, 61, 71, 60, 47, 55, 99, 59, 67, 53, 58, 56, 82, 46, 77, 71, 65, 55, 67, 91, 66, 59, 65, 76, 62, 56, 65, 77, 74, 66, 53, 55, 96, 83, 69, 46, 52, 59, 91, 46, 86, 90, 61, 56, 69, 87, 56, 50, 65, 67, 68, 70, 55, 75, 71, 67, 56, 66, 47, 59, 68, 57, 65, 69, 66, 40, 51, 78, 56, 66, 62, 48, 55, 60, 70, 55, 70, 56, 70, 63, 64, 58, 78, 71, 49, 106, 61, 66, 71, 86, 49, 65, 54, 80, 54, 57, 60, 63, 157, 127, 50, 68, 61, 63, 84, 67, 46, 75, 64, 81, 55, 60, 52, 52, 56, 56, 60, 47, 74, 64, 75, 50, 49, 65, 97, 55, 67, 52, 63, 60, 58, 57, 89, 45, 50, 77, 59, 66, 67, 82, 63, 64, 65, 72, 77, 67, 62, 41, 73, 57, 71, 74, 58, 57, 74, 61, 52, 69, 62, 58, 72, 48, 71, 61, 51, 65, 64, 68, 45, 62, 48, 55, 68, 68, 65, 54, 55, 49, 91, 61, 72, 59, 76, 51, 73, 55, 58, 57, 42, 62, 60, 68, 43, 44, 62, 53, 82, 62, 64, 82, 62, 50, 62, 109, 70, 68, 58, 64, 73, 50, 76, 63, 55, 69, 54, 56, 66, 61, 65, 97, 83, 62, 73, 50, 51, 63, 69, 48, 63, 83, 122, 74, 109, 80, 70, 60, 53, 66, 88, 52, 62, 67, 50, 71, 66, 73, 43, 118, 56, 51, 61, 82, 56, 95, 75, 73, 84, 67, 62, 52, 78, 49, 61, 51, 63, 71, 95, 49, 55, 77, 57, 62, 82, 111, 68, 55, 58, 59, 123, 66, 59, 77, 91, 52, 71, 81, 149, 93, 60, 63, 71, 76, 71, 70, 57, 52, 68, 88, 84, 83, 53, 62, 98, 74, 102, 62, 82, 41, 83, 78, 49, 69, 67, 74, 60, 68, 73, 50, 47, 55, 53, 68, 40, 60, 76, 60, 56, 81, 64, 101, 61, 68, 79, 64, 65, 53, 64, 59, 61, 71, 59, 63, 45, 63, 64, 63, 58, 49, 48, 81, 53, 82, 67, 67, 61, 55, 79, 57, 64, 56, 58, 78, 53, 69, 66, 57, 52, 46, 71, 74, 81, 56, 67, 80, 52, 66, 72, 87, 70, 68, 56, 69, 50, 55, 61, 75, 62, 65, 62, 72, 89, 61, 44, 72, 66, 60, 75, 52, 83, 90, 76, 60, 64, 70, 58, 69, 64, 74, 65, 51, 57, 61, 62, 62, 119, 42, 63, 60, 72, 67, 75, 76, 89, 115, 51, 60, 71, 70, 45, 104, 58, 79, 54, 65, 111, 59, 79, 63, 90, 62, 70, 54, 61, 87, 76, 64, 77, 104, 47, 60, 73, 73, 61, 59, 80, 53, 68, 85, 58, 102, 46, 50, 79, 54, 79, 58, 70, 53, 93, 76, 68, 62, 97, 87, 53, 73, 51, 61, 72, 92, 55, 51, 82, 92, 43, 66, 80, 78, 60, 51, 49, 53, 61, 59, 62, 63, 72, 63, 79, 85, 73, 74, 50, 88, 68, 68, 57, 59, 39, 38, 62, 76, 70, 48, 64, 120, 64, 77, 78, 46, 100, 65, 111, 56, 71, 57, 67, 102, 71, 70, 62, 64, 79, 60, 70, 66, 73, 68, 81, 74, 59, 53, 55, 37, 50, 81, 76, 48, 94, 64, 53, 59, 45, 66, 74, 54, 44, 61, 63, 54, 43, 58, 65, 74, 47, 76, 46, 55, 80, 62, 74, 84, 87, 71, 76, 76, 98, 58, 57, 67, 77, 60, 81, 67, 75, 67, 101, 68, 75, 85, 77, 59, 68, 110, 72, 77, 53, 53, 112, 61, 76, 51, 64, 67, 39, 67, 71, 58, 57, 52, 86, 71, 90, 69, 58, 70, 88, 48, 58, 102, 73, 48, 67, 76, 57, 58, 62, 51, 67, 77, 66, 64, 54, 72, 63, 62, 66, 60, 51, 69, 50, 70, 71, 86, 63, 75, 69, 58, 63, 56, 100, 63, 81, 60, 59, 62, 47, 63, 40, 73, 46, 54, 75, 70, 55, 61, 58, 54, 60, 83, 66, 49, 51, 85, 89, 70, 70, 75, 52, 59, 61, 54, 66, 67, 61, 63, 62, 74, 82, 63, 63, 60, 51, 71, 39, 60, 99, 51, 71, 73, 75, 76, 75, 95, 62, 80, 84, 105, 65, 54, 59, 69, 58, 59, 65, 83, 63, 68, 80, 85, 41, 77, 59, 64, 69, 50, 62, 72, 86, 54, 55, 84, 64, 45, 58, 87, 64, 59, 43, 42, 73, 71, 70, 58, 52, 52, 68, 43, 53, 50, 61, 41, 59, 66, 63, 49, 74, 78, 53, 57, 60, 55, 70, 76, 62, 73, 108, 52, 68, 70, 62, 79, 56, 76, 54, 43, 59, 65, 65, 43, 63, 84, 64, 59, 59, 41, 76, 56, 37, 71, 83, 50, 49, 62, 51, 61, 66, 69, 88, 72, 59, 63, 65, 56, 59, 73, 37, 105, 64, 93, 52, 60, 64, 76, 63, 64, 66, 52, 63, 77, 61, 66, 63, 71, 92, 67, 55, 77, 72, 101, 49, 71, 66, 84, 76, 61, 53, 48, 79, 59, 89, 52, 42, 66, 78, 59, 60, 73, 72, 66, 56, 58, 74, 73, 73, 51, 60, 53, 83, 89, 41, 68, 89, 49, 51, 74, 45, 68, 62, 77, 65, 59, 62, 65, 76, 73, 104, 85, 66, 69, 50, 62, 50, 71, 68, 97, 53, 68, 83, 37, 50, 67, 68, 69, 53, 75, 52, 68, 63, 50, 60, 51, 76, 64, 72, 43, 56, 56, 67, 91, 53, 55, 64, 81, 67, 110, 63, 79, 65, 67, 61, 56, 72, 60, 61, 73, 64, 71, 61, 75, 83, 57, 149, 69, 53, 88, 52, 51, 57, 60, 60, 58, 46, 48, 67, 57, 51, 65, 63, 60, 74, 64, 61, 68, 77, 62, 41, 57, 83, 73, 87, 68, 99, 68, 83, 81, 67, 69, 114, 55, 61, 51, 65, 50, 76, 60, 57, 101, 65, 71, 38, 70, 91, 61, 86, 62, 101, 89, 64, 73, 75, 47, 56, 51, 50, 58, 73, 51, 126, 54, 85, 74, 78, 71, 84, 72, 50, 57, 48, 58, 55, 65, 56, 74, 67, 70, 63, 60, 56, 80, 81, 102, 73, 47, 70, 76, 36, 75, 103, 62, 76, 54, 47, 38, 72, 56, 72, 92, 84, 95, 55, 69, 46, 76, 48, 91, 73, 40, 123, 70, 77, 31, 57, 58, 75, 86, 58, 55, 67, 41, 52, 48, 53, 49, 63, 70, 71, 74, 74, 78, 93, 79, 51, 49, 58, 74, 62, 56, 51, 91, 69, 65, 72, 48, 59, 105, 64, 75, 82, 57, 51, 90, 78, 61, 90, 65, 92, 53, 56, 72, 68, 66, 50, 51, 47, 44, 65, 82, 50, 58, 47, 49, 41, 77, 61, 84, 56, 39, 69, 61, 55, 60, 70, 82, 63, 53, 49, 67, 78, 54, 52, 61, 68, 83, 57, 77, 71, 90, 79, 82, 50, 54, 87, 41, 96, 63, 80, 41, 81, 66, 63, 88, 66, 72, 65, 70, 63, 76, 75, 80, 65, 63, 65, 66, 99, 30, 76, 79, 48, 99, 67, 69, 50, 74, 66, 86, 58, 117, 45, 45, 89, 59, 51, 76, 70, 59, 63, 48, 32, 59, 73, 79, 52, 75, 67, 75, 64, 46, 65, 110, 62, 87, 55, 67, 69, 56, 35, 62, 72, 35, 65, 81, 70, 74, 65, 78, 75, 65, 64, 59, 62, 62, 81, 66, 54, 58, 55, 89, 87, 56, 60, 50, 50, 54, 60, 103, 60, 59, 77, 64, 55, 76, 83, 60, 91, 73, 63, 61, 38, 42, 44, 70, 65, 70, 63, 62, 73, 69, 68, 91, 36, 82, 70, 74, 57, 74, 62, 73, 61, 66, 57, 61, 58, 38, 48, 66, 64, 56, 77, 96, 61, 75, 52, 50, 57, 69, 69, 66, 75, 45, 57, 58, 63, 59, 75, 51, 54, 48, 92, 44, 59, 66, 80, 67, 61, 70, 65, 66, 55, 68, 47, 93, 61, 59, 125, 71, 90, 74, 47, 69, 50, 81, 50, 43, 60, 76, 56, 80, 51, 92, 51, 63, 67, 56, 75, 83, 46, 80, 88, 57, 35, 83, 70, 71, 57, 66, 78, 83, 56, 106, 61, 54, 72, 80, 43, 75, 55, 63, 75, 73, 52, 60, 77, 54, 80, 72, 52, 75, 71, 70, 76, 61, 88, 63, 58, 65, 65, 57, 69, 71, 69, 68, 47, 79, 57, 73, 62, 92, 61, 78, 65, 55, 76, 103, 55, 73, 59, 56, 74, 53, 75, 97, 82, 57, 64, 69, 61, 56, 77, 57, 44, 61, 65, 71, 91, 54, 68, 76, 78, 86, 71, 78, 50, 78, 52, 49, 77, 63, 60, 73, 62, 67, 57, 52, 61, 70, 42, 61, 46, 70, 49, 51, 67, 79, 65, 75, 58, 68, 68, 59, 66, 70, 56, 55, 53, 66, 103, 61, 41, 72, 144, 66, 56, 54, 84, 73, 73, 72, 53, 71, 49, 67, 67, 77, 88, 74, 53, 72, 66, 49, 73, 51, 74, 55, 75, 69, 64, 66, 43, 73, 51, 76, 71, 58, 85, 93, 56, 63, 68, 59, 64, 71, 47, 52, 72, 57, 71, 61, 76, 79, 47, 73, 60, 67, 70, 55, 59, 62, 62, 54, 99, 96, 45, 90, 70, 51, 83, 59, 52, 52, 57, 77, 51, 54, 93, 70, 64, 65, 84, 62, 53, 120, 61, 85, 54, 50, 50, 65, 62, 90, 73, 142, 55, 83, 51, 68, 54, 60, 75, 65, 53, 80, 61, 84, 54, 55, 69, 36, 68, 46, 92, 75, 68, 88, 69, 87, 55, 83, 42, 62, 59, 51, 61, 67, 62, 71, 80, 62, 54, 67, 72, 69, 89, 68, 71, 81, 70, 79, 56, 60, 79, 68, 56, 60, 46, 97, 61, 82, 65, 54, 72, 53, 63, 82, 67, 69, 63, 65, 58, 47, 74, 80, 52, 67, 69, 62, 78, 54, 63, 52, 86, 61, 64, 57, 67, 62, 71, 52, 58, 60, 77, 68, 76, 67, 39, 54, 49, 64, 55, 67, 55, 89, 58, 54, 72, 59, 103, 80, 65, 54, 62, 73, 92, 94, 68, 84, 73, 52, 57, 56, 69, 74, 64, 78, 72, 105, 73, 68, 76, 117, 42, 69, 64, 70, 67, 60, 93, 53, 50, 53, 69, 50, 92, 75, 59, 51, 54, 75, 43, 60, 55, 59, 65, 70, 58, 73, 67, 94, 69, 83, 60, 63, 55, 95, 70, 62, 64, 59, 73, 48, 57, 96, 76, 72, 66, 96, 60, 54, 99, 85, 87, 50, 63, 74, 68, 68, 62, 92, 61, 56, 62, 66, 59, 67, 91, 59, 80, 82, 62, 64, 61, 64, 59, 82, 60, 66, 62, 107, 60, 72, 56, 75, 62, 79, 47, 92, 57, 60, 88, 84, 59, 46, 47, 44, 71, 92, 61, 49, 78, 60, 52, 56, 61, 91, 57, 60, 75, 75, 71, 76, 55, 57, 82, 61, 74, 88, 68, 60, 53, 75, 79, 82, 69, 74, 99, 62, 69, 59, 53, 69, 85, 72, 76, 43, 50, 51, 48, 51, 85, 67, 117, 69, 60, 49, 67, 46, 69, 57, 76, 61, 65, 38, 71, 98, 60, 68, 49, 51, 45, 89, 58, 45, 50, 51, 61, 61, 84, 54, 58, 93, 69, 84, 61, 101, 56, 42, 62, 66, 133, 62, 79, 76, 63, 74, 51, 52, 57, 58, 67, 63, 76, 79, 73, 40, 66, 86, 65, 67, 62, 68, 73, 63, 88, 61, 64, 57, 85, 72, 47, 99, 57, 81, 63, 61, 56, 79, 71, 56, 54, 72, 42, 56, 86, 65, 78, 65, 77, 40, 111, 63, 60, 80, 84, 57, 75, 69, 71, 92, 87, 65, 45, 49, 84, 68, 48, 74, 49, 61, 56, 76, 63, 73, 64, 55, 37, 68, 56, 82, 59, 80, 64, 61, 68, 67, 68, 48, 54, 53, 70, 60, 54, 68, 84, 64, 58, 52, 82, 50, 52, 46, 53, 85, 68, 79, 46, 49, 58, 61, 65, 60, 59, 85, 63, 51, 92, 57, 72, 69, 73, 59, 65, 71, 59, 59, 77, 51, 59, 52, 81, 63, 53, 73, 61, 68, 57, 66, 71, 61, 65, 60, 67, 61, 89, 44, 34, 61, 69, 40, 49, 58, 106, 40, 54, 70, 87, 71, 59, 65, 53, 74, 67, 62, 68, 71, 65, 74, 72, 83, 96, 53, 66, 61, 69, 67, 68, 68, 74, 55, 61, 52, 58, 105, 64, 85, 54, 79, 57, 75, 60, 77, 63, 51, 78, 102, 84, 58, 56, 57, 90, 66, 69, 80, 93, 82, 57, 53, 119, 91, 40, 70, 90, 57, 95, 51, 70, 61, 68, 85, 53, 62, 80, 88, 71, 54, 46, 61, 75, 75, 57, 83, 84, 60, 61, 81, 59, 50, 46, 51, 46, 65, 63, 77, 72, 58, 82, 76, 61, 48, 58, 71, 79, 61, 60, 54, 49, 97, 54, 62, 85, 61, 64, 34, 73, 75, 59, 59, 61, 63, 40, 56, 94, 94, 30, 87, 62, 63, 64, 56, 63, 55, 64, 58, 46, 66, 69, 72, 60, 92, 60, 68, 73, 65, 79, 60, 65, 51, 59, 81, 57, 122, 39, 78, 60, 81, 63, 81, 92, 61, 68, 64, 65, 68, 78, 67, 82, 112, 79, 57, 45, 65, 57, 44, 50, 61, 53, 38, 55, 77, 120, 86, 66, 54, 87, 80, 60, 54, 84, 63, 57, 78, 67, 97, 62, 57, 59, 74, 75, 94, 54, 84, 53, 65, 75, 51, 58, 69, 50, 80, 58, 94, 74, 62, 58, 89, 52, 75, 62, 56, 78, 81, 72, 55, 57, 52, 72, 75, 78, 62, 49, 53, 70, 79, 54, 63, 64, 79, 62, 58, 48, 44, 80, 65, 85, 72, 71, 84, 55, 96, 80, 96, 69, 38, 61, 69, 61, 57, 96, 71, 81, 66, 63, 80, 68, 52, 42, 53, 28, 82, 57, 70, 77, 117, 59, 70, 94, 61, 86, 72, 49, 48, 73, 49, 53, 71, 62, 42, 62, 64, 56, 71, 74, 73, 53, 82, 59, 60, 48, 63, 79, 98, 66, 55, 80, 50, 58, 62, 65, 59, 74, 50, 89, 76, 119, 34, 63, 111, 49, 72, 81, 67, 63, 84, 63, 43, 80, 48, 71, 38, 69, 65, 59, 39, 46, 72, 68, 89, 46, 49, 75, 77, 65, 63, 54, 63, 77, 79, 64, 57, 75, 73, 76, 77, 66, 80, 49, 132, 50, 71, 68, 55, 61, 65, 68, 64, 66, 51, 79, 61, 54, 61, 66, 47, 46, 64, 69, 83, 69, 59, 69, 54, 91, 52, 75, 57, 105, 78, 82, 81, 46, 61, 73, 61, 43, 50, 105, 76, 44, 44, 81, 70, 69, 45, 61, 69, 77, 71, 72, 101, 93, 45, 47, 65, 55, 78, 58, 64, 92, 54, 75, 52, 69, 68, 61, 60, 63, 77, 52, 57, 70, 51, 82, 82, 64, 63, 59, 87, 87, 65, 76, 66, 68, 90, 87, 69, 48, 55, 56, 63, 38, 60, 63, 54, 52, 55, 57, 67, 49, 66, 94, 72, 85, 65, 64, 75, 50, 76, 94, 45, 59, 87, 57, 50, 72, 59, 99, 81, 54, 33, 67, 90, 98, 81, 52, 45, 51, 75, 83, 65, 62, 94, 53, 41, 61, 74, 61, 82, 40, 70, 68, 56, 45, 66, 88, 66, 71, 60, 91, 53, 80, 79, 96, 47, 82, 70, 36, 79, 53, 55, 47, 49, 50, 55, 78, 53, 94, 84, 71, 74, 61, 47, 69, 68, 75, 54, 59, 99, 55, 90, 69, 51, 75, 66, 84, 60, 54, 52, 51, 67, 89, 50, 63, 47, 76, 67, 80, 84, 69, 86, 65, 53, 84, 78, 58, 91, 89, 79, 70, 72, 79, 55, 78, 56, 48, 48, 64, 56, 70, 70, 58, 73, 61, 71, 68, 82, 60, 48, 97, 64, 47, 42, 56, 63, 64, 60, 55, 67, 51, 67, 51, 64, 63, 42, 64, 75, 51, 89, 52, 80, 58, 58, 89, 67, 60, 68, 95, 73, 70, 74, 51, 80, 75, 65, 76, 76, 45, 81, 68, 99, 68, 60, 72, 67, 88, 59, 77, 52, 54, 63, 73, 54, 73, 74, 68, 68, 69, 59, 58, 67, 63, 63, 39, 67, 82, 56, 66, 65, 59, 54, 64, 51, 67, 83, 55, 63, 67, 112, 66, 67, 70, 49, 89, 46, 77, 73, 79, 60, 53, 54, 76, 89, 79, 84, 43, 66, 99, 78, 85, 53, 84, 51, 51, 79, 78, 74, 61, 53, 52, 92, 57, 69, 54, 59, 71, 55, 52, 59, 61, 82, 72, 94, 70, 73, 60, 112, 73, 63, 65, 60, 74, 74, 63, 74, 87, 95, 79, 68, 61, 75, 56, 85, 67, 55, 40, 65, 57, 78, 67, 77, 69, 65, 74, 85, 93, 61, 67, 58, 58, 50, 53, 65, 68, 78, 54, 64, 71, 62, 74, 45, 64, 66, 68, 73, 53, 66, 54, 40, 93, 60, 113, 46, 58, 82, 69, 77, 67, 67, 63, 61, 49, 77, 65, 49, 94, 66, 48, 58, 71, 57, 80, 78, 47, 55, 60, 62, 65, 58, 77, 61, 60, 92, 70, 62, 70, 67, 51, 50, 65, 50, 77, 79, 62, 63, 56, 56, 71, 62, 44, 34, 67, 51, 118, 79, 67, 56, 74, 71, 55, 49, 104, 59, 100, 73, 98, 55, 71, 73, 65, 81, 62, 51, 60, 72, 62, 64, 81, 53, 60, 78, 67, 72, 76, 64, 77, 54, 48, 65, 81, 47, 68, 46, 76, 41, 63, 77, 58, 74, 79, 69, 62, 56, 98, 87, 79, 79, 60, 57, 61, 79, 69, 54, 59, 47, 61, 58, 72, 53, 75, 72, 75, 51, 61, 69, 52, 92, 82, 73, 57, 62, 48, 52, 61, 69, 64, 94, 50, 63, 71, 70, 37, 63, 57, 53, 75, 64, 70, 44, 81, 67, 51, 71, 54, 63, 95, 91, 74, 63, 82, 84, 47, 73, 73, 45, 57, 65, 68, 44, 71, 72, 68, 77, 47, 56, 39, 82, 62, 58, 85, 56, 47, 57, 63, 65, 68, 94, 63, 59, 58, 58, 61, 46, 79, 48, 66, 66, 65, 91, 60, 90, 65, 66, 71, 58, 65, 57, 75, 58, 56, 62, 40, 77, 57, 54, 81, 109, 65, 64, 79, 76, 50, 30, 55, 53, 75, 93, 71, 80, 45, 56, 66, 102, 64, 87, 73, 49, 62, 55, 65, 68, 81, 75, 68, 96, 51, 62, 55, 74, 49, 52, 69, 68, 62, 50, 116, 56, 91, 36, 71, 28, 50, 59, 59, 88, 64, 82, 70, 99, 51, 78, 87, 81, 81, 60, 67, 67, 88, 40, 60, 67, 86, 54, 64, 67, 62, 56, 69, 75, 70, 70, 70, 62, 57, 52, 55, 96, 58, 72, 56, 68, 65, 51, 65, 57, 59, 53, 60, 42, 59, 66, 65, 85, 77, 60, 48, 80, 62, 57, 88, 50, 69, 67, 68, 74, 81, 56, 69, 73, 65, 52, 60, 65, 56, 53, 59, 60, 76, 62, 65, 60, 48, 60, 74, 57, 67, 59, 88, 67, 51, 77, 77, 59, 61, 56, 71, 77, 69, 64, 71, 62, 64, 65, 55, 59, 68, 47, 75, 64, 68, 56, 55, 63, 85, 63, 64, 63, 91, 59, 68, 83, 77, 52, 65, 87, 58, 61, 78, 53, 58, 63, 63, 66, 62, 58, 81, 62, 69, 61, 67, 81, 71, 82, 84, 63, 65, 49, 70, 59, 80, 108, 55, 59, 53, 70, 74, 76, 48, 76, 62, 68, 113, 62, 59, 67, 48, 71, 95, 62, 54, 74, 56, 71, 101, 63, 59, 90, 77, 57, 71, 58, 59, 81, 77, 65, 51, 69, 68, 70, 76, 82, 86, 52, 64, 100, 92, 61, 65, 63, 54, 65, 64, 45, 55, 55, 59, 61, 101, 71, 66, 60, 61, 51, 56, 111, 63, 68, 99, 88, 110, 68, 54, 77, 57, 64, 63, 66, 56, 61, 58, 38, 87, 65, 75, 66, 119, 62, 58, 62, 55, 65, 66, 56, 39, 114, 58, 50, 56, 66, 73, 72, 53, 57, 47, 53, 62, 73, 70, 61, 66, 47, 64, 74, 77, 56, 56, 61, 70, 62, 49, 125, 51, 60, 67, 63, 66, 63, 71, 86, 87, 43, 57, 68, 58, 61, 103, 54, 64, 62, 84, 79, 61, 64, 78, 51, 71, 63, 69, 55, 73, 62, 74, 69, 68, 87, 77, 46, 67, 60, 59, 60, 67, 55, 52, 54, 91, 69, 69, 44, 71, 88, 49, 61, 31, 68, 62, 51, 67, 80, 49, 65, 64, 58, 65, 67, 114, 59, 57, 71, 54, 61, 48, 92, 54, 56, 70, 68, 79, 52, 79, 69, 79, 63, 58, 66, 66, 70, 48, 58, 70, 83, 70, 53, 50, 58, 60, 75, 82, 62, 67, 71, 75, 52, 84, 55, 66, 88, 82, 70, 59, 57, 77, 72, 66, 91, 61, 53, 57, 66, 42, 56, 56, 81, 56, 53, 60, 67, 49, 76, 65, 121, 69, 65, 70, 59, 60, 63, 94, 57, 71, 57, 65, 53, 66, 59, 61, 56, 56, 61, 70, 61, 60, 54, 64, 76, 52, 59, 82, 63, 63, 56, 81, 69, 72, 61, 46, 73, 62, 70, 88, 67, 73, 86, 55, 56, 58, 66, 59, 53, 70, 55, 62, 58, 59, 73, 63, 67, 79, 52, 71, 71, 83, 64, 77, 50, 67, 56, 61, 51, 55, 63, 85, 61, 63, 61, 52, 65, 61, 64, 66, 61, 52, 70, 66, 61, 68, 85, 57, 43, 69, 67, 63, 72, 70, 60, 73, 56, 59, 52, 57, 53, 117, 65, 74, 60, 49, 62, 66, 79, 58, 59, 66, 72, 61, 46, 60, 56, 44, 69, 69, 68, 70, 74, 50, 64, 60, 60, 77, 62, 78, 65, 78, 92, 63, 70, 95, 58, 64, 58, 64, 55, 63, 66, 65, 62, 66, 60, 80, 65, 96, 56, 87, 78, 67, 83, 61, 61, 80, 53, 69, 73, 101, 60, 76, 75, 52, 59, 94, 52, 60, 52, 65, 62, 69, 74, 68, 50, 50, 60, 73, 59, 66, 65, 85, 63, 55, 57, 70, 64, 58, 73, 88, 82, 57, 56, 48, 54, 70, 65, 59, 65, 57, 75, 113, 66, 75, 70, 60, 59, 63, 61, 74, 68, 52, 66, 74, 54, 75, 63, 73, 65, 73, 63, 69, 49, 74, 84, 61, 70, 75, 80, 76, 81, 70, 53, 65, 65, 70, 96, 54, 54, 66, 55, 65, 75, 63, 56, 72, 59, 53, 59, 54, 63, 95, 58, 57, 50, 68, 47, 53, 50, 47, 54, 60, 65, 66, 65, 66, 81, 71, 66, 57, 56, 66, 75, 58, 58, 79, 69, 77, 124, 79, 54, 67, 72, 59, 61, 48, 54, 79, 57, 69, 57, 62, 59, 56, 48, 66, 74, 70, 55, 40, 95, 55, 81, 69, 62, 63, 56, 53, 70, 58, 77, 112, 69, 58, 83, 74, 112, 51, 77, 60, 72, 59, 77, 69, 60, 89, 60, 72, 57, 78, 45, 78, 73, 53, 87, 61, 57, 64, 67, 45, 68, 58, 47, 66, 66, 56, 60, 63, 61, 56, 71, 64, 67, 65, 62, 75, 54, 52, 58, 66, 64, 53, 77, 66, 55, 70, 60, 86, 58, 62, 60, 73, 52, 58, 62, 54, 68, 50, 59, 57, 64, 84, 47, 56, 73, 80, 68, 112, 52, 53, 64, 49, 57, 62, 67, 62, 71, 99, 72, 68, 62, 66, 61, 91, 51, 51, 68, 58, 70, 60, 57, 60, 56, 56, 46, 73, 64, 74, 75, 95, 68, 65, 49, 61, 64, 83, 77, 73, 59, 68, 70, 77, 52, 73, 80, 108, 106, 54, 99, 77, 57, 63, 70, 83, 64, 37, 82, 68, 79, 58, 54, 69, 48, 57, 79, 57, 77, 72, 93, 62, 58, 62, 95, 60, 63, 58, 74, 66, 64, 55, 63, 61, 70, 49, 67, 49, 77, 73, 75, 58, 69, 58, 68, 54, 57, 74, 60, 59, 88, 62, 56, 56, 61, 54, 63, 50, 73, 91, 62, 59, 75, 66, 90, 59, 99, 63, 63, 49, 66, 57, 72, 62, 49, 62, 72, 51, 73, 57, 70, 59, 64, 92, 61, 53, 55, 56, 74, 74, 67, 57, 55, 58, 81, 60, 50, 77, 54, 68, 66, 62, 54, 61, 63, 64, 64, 50, 59, 39, 73, 50, 57, 63, 68, 74, 60, 77, 64, 56, 84, 63, 76, 59, 69, 61, 60, 55, 51, 64, 46, 69, 66, 61, 104, 67, 64, 73, 51, 68, 82, 59, 52, 55, 45, 59, 54, 58, 55, 49, 55, 66, 72, 84, 55, 78, 67, 81, 77, 63, 90, 68, 75, 87, 72, 60, 57, 62, 48, 87, 83, 56, 55, 69, 66, 57, 70, 57, 56, 59, 49, 62, 59, 59, 70, 66, 93, 64, 121, 57, 65, 75, 76, 71, 57, 82, 54, 55, 58, 70, 64, 88, 70, 47, 102, 52, 59, 85, 69, 58, 65, 75, 99, 58, 62, 69, 56, 64, 51, 63, 38, 48, 79, 97, 55, 58, 70, 62, 65, 74, 53, 76, 55, 95, 67, 65, 50, 109, 58, 58, 60, 49, 83, 149, 59, 71, 98, 59, 84, 66, 73, 75, 61, 69, 62, 83, 72, 52, 89, 71, 57, 64, 73, 52, 68, 78, 78, 62, 77, 59, 51, 71, 82, 74, 71, 90, 99, 47, 59, 69, 57, 79, 71, 68, 51, 64, 123, 53, 57, 85, 85, 55, 67, 65, 53, 61, 63, 75, 78, 58, 86, 75, 66, 46, 67, 75, 57, 56, 100, 68, 57, 63, 53, 51, 60, 50, 48, 63, 80, 58, 69, 60, 72, 83, 61, 78, 61, 66, 78, 82, 65, 47, 67, 88, 44, 63, 53, 79, 58, 75, 81, 73, 66, 63, 47, 73, 99, 81, 101, 92, 63, 61, 59, 56, 71, 63, 63, 65, 68, 63, 128, 63, 75, 64, 71, 80, 66, 60, 57, 54, 78, 52, 49, 62, 55, 62, 63, 75, 54, 58, 66, 59, 76, 78, 66, 60, 61, 74, 63, 55, 63, 53, 65, 75, 137, 49, 66, 58, 57, 100, 82, 50, 59, 78, 51, 71, 75, 77, 62, 67, 83, 54, 53, 74, 61, 67, 90, 62, 48, 61, 68, 67, 45, 83, 78, 63, 63, 67, 64, 54, 70, 55, 61, 71, 68, 68, 58, 81, 56, 76, 86, 59, 67, 81, 68, 61, 63, 88, 72, 81, 73, 81, 76, 65, 55, 79, 73, 92, 70, 63, 73, 44, 46, 53, 46, 63, 56, 47, 57, 65, 70, 45, 53, 71, 45, 75, 70, 72, 62, 61, 103, 73, 57, 69, 58, 66, 64, 66, 67, 65, 64, 84, 76, 126, 48, 48, 107, 76, 53, 60, 72, 59, 57, 50, 63, 68, 60, 67, 54, 71, 75, 54, 65, 63, 59, 56, 53, 59, 63, 74, 82, 71, 59, 64, 78, 52, 58, 47, 39, 54, 68, 47, 61, 72, 70, 52, 117, 70, 62, 56, 74, 49, 78, 57, 61, 67, 54, 72, 57, 62, 68, 56, 55, 73, 55, 80, 57, 87, 59, 64, 58, 107, 43, 61, 56, 86, 74, 60, 64, 51, 62, 67, 56, 67, 55, 92, 87, 78, 67, 52, 62, 40, 58, 61, 55, 60, 57, 46, 57, 56, 63, 63, 59, 95, 80, 49, 90, 79, 65, 70, 82, 73, 55, 72, 62, 70, 45, 68, 90, 64, 55, 71, 60, 63, 71, 66, 84, 52, 53, 65, 70, 79, 92, 61, 54, 58, 84, 52, 84, 51, 50, 66, 86, 68, 57, 72, 72, 80, 97, 89, 75, 83, 52, 74, 74, 61, 83, 91, 74, 57, 67, 61, 77, 62, 48, 61, 82, 62, 56, 60, 58, 70, 94, 51, 55, 82, 79, 89, 59, 67, 62, 85, 53, 63, 100, 56, 74, 103, 74, 74, 94, 46, 61, 62, 66, 69, 69, 69, 47, 66, 55, 81, 66, 74, 76, 66, 85, 84, 53, 54, 66, 73, 69, 40, 49, 68, 77, 78, 81, 59, 53, 46, 60, 65, 44, 64, 95, 75, 79, 64, 84, 85, 45, 73, 55, 49, 75, 65, 84, 75, 58, 80, 62, 52, 51, 72, 35, 72, 73, 56, 57, 51, 77, 56, 60, 69, 106, 51, 64, 49, 77, 50, 47, 46, 59, 51, 56, 36, 64, 83, 97, 72, 94, 89, 60, 61, 52, 77, 50, 68, 63, 69, 67, 54, 54, 61, 59, 73, 53, 72, 58, 66, 61, 81, 64, 74, 45, 60, 71, 61, 60, 61, 53, 51, 74, 75, 72, 73, 79, 62, 80, 102, 50, 47, 57, 67, 67, 59, 57, 75, 59, 60, 57, 64, 63, 76, 66, 75, 66, 56, 83, 68, 77, 55, 58, 74, 44, 77, 71, 72, 71, 56, 66, 98, 52, 67, 56, 62, 63, 72, 55, 56, 75, 46, 76, 104, 63, 63, 85, 70, 91, 60, 66, 81, 69, 57, 56, 53, 56, 91, 50, 45, 83, 55, 52, 95, 57, 57, 75, 47, 62, 54, 57, 78, 55, 57, 60, 81, 64, 68, 68, 56, 75, 50, 52, 56, 64, 56, 78, 72, 63, 57, 67, 64, 72, 54, 71, 62, 67, 52, 75, 56, 82, 55, 54, 71, 62, 51, 53, 55, 76, 66, 65, 92, 53, 63, 81, 70, 70, 56, 53, 84, 82, 76, 77, 41, 61, 49, 51, 61, 73, 50, 89, 58, 63, 52, 67, 53, 58, 68, 60, 64, 106, 69, 53, 66, 59, 66, 93, 51, 78, 64, 60, 59, 74, 51, 74, 78, 84, 66, 56, 62, 53, 79, 62, 60, 48, 70, 51, 64, 58, 60, 76, 63, 70, 66, 60, 69, 80, 60, 65, 61, 60, 76, 51, 88, 86, 59, 65, 68, 78, 57, 59, 66, 54, 66, 75, 65, 52, 56, 58, 93, 75, 69, 46, 79, 50, 55, 60, 68, 61, 59, 57, 59, 70, 71, 49, 63, 60, 67, 58, 52, 49, 56, 52, 44, 44, 64, 61, 85, 63, 69, 68, 74, 60, 77, 72, 78, 74, 62, 74, 44, 55, 62, 64, 56, 80, 64, 79, 72, 57, 69, 93, 61, 67, 74, 80, 50, 61, 60, 67, 71, 68, 57, 56, 84, 68, 58, 67, 56, 68, 63, 62, 86, 92, 57, 82, 58, 52, 65, 59, 54, 63, 81, 76, 73, 61, 44, 51, 75, 65, 50, 89, 74, 58, 109, 64, 59, 55, 58, 51, 52, 56, 92, 74, 53, 62, 70, 73, 53, 55, 53, 59, 86, 69, 74, 76, 76, 69, 75, 48, 58, 63, 72, 49, 59, 63, 63, 65, 63, 57, 81, 67, 48, 43, 43, 61, 73, 52, 58, 59, 57, 59, 73, 81, 56, 75, 68, 72, 69, 54, 68, 55, 64, 71, 57, 57, 68, 61, 36, 54, 66, 64, 75, 94, 84, 77, 54, 63, 77, 69, 58, 79, 71, 53, 67, 67, 56, 64, 68, 100, 63, 74, 60, 67, 62, 62, 57, 61, 59, 58, 62, 81, 83, 76, 69, 65, 59, 50, 61, 70, 75, 59, 99, 57, 72, 87, 51, 66, 69, 63, 70, 96, 57, 50, 62, 67, 60, 53, 87, 74, 73, 61, 65, 62, 55, 51, 68, 82, 96, 66, 53, 50, 57, 62, 52, 69, 66, 75, 61, 53, 80, 75, 69, 61, 82, 52, 69, 92, 62, 119, 64, 72, 54, 44, 64, 71, 72, 41, 62, 59, 59, 74, 42, 56, 58, 81, 67, 53, 71, 52, 71, 65, 64, 52, 48, 83, 134, 41, 66, 51, 59, 55, 77, 57, 88, 52, 61, 61, 65, 82, 74, 61, 53, 38, 95, 50, 55, 66, 57, 51, 47, 56, 64, 60, 56, 69, 72, 79, 60, 41, 70, 76, 79, 49, 94, 62, 41, 53, 67, 59, 51, 73, 44, 73, 78, 55, 57, 106, 89, 61, 64, 71, 37, 62, 59, 56, 107, 56, 55, 48, 57, 74, 65, 41, 68, 65, 47, 86, 47, 72, 59, 86, 59, 64, 79, 73, 42, 93, 68, 72, 116, 56, 74, 78, 74, 54, 59, 88, 103, 61, 62, 43, 64, 75, 45, 25, 63, 65, 55, 52, 79, 64, 66, 78, 96, 63, 82, 87, 47, 82, 100, 69, 62, 58, 54, 68, 69, 39, 67, 45, 66, 53, 58, 64, 78, 67, 83, 79, 85, 100, 60, 65, 27, 65, 85, 46, 72, 66, 84, 69, 83, 60, 66, 46, 89, 60, 59, 100, 96, 67, 75, 85, 53, 50, 70, 50, 71, 66, 67, 77, 73, 109, 39, 68, 79, 67, 100, 90, 59, 65, 55, 65, 83, 62, 58, 66, 57, 42, 46, 43, 83, 51, 60, 60, 81, 72, 78, 68, 40, 66, 58, 58, 76, 89, 76, 50, 58, 72, 48, 95, 62, 71, 58, 103, 40, 72, 73, 46, 49, 49, 72, 81, 79, 63, 77, 59, 67, 95, 81, 91, 95, 53, 59, 80, 81, 73, 59, 36, 62, 63, 81, 42, 64, 65, 47, 80, 92, 58, 55, 113, 58, 61, 74, 91, 93, 106, 135, 68, 53, 47, 87, 64, 78, 68, 55, 56, 63, 56, 53, 74, 70, 42, 80, 45, 62, 44, 62, 45, 74, 62, 61, 51, 53, 66, 51, 66, 66, 63, 70, 66, 64, 62, 128, 62, 91, 67, 58, 57, 93, 86, 67, 51, 64, 81, 59, 65, 53, 78, 63, 93, 38, 74, 65, 51, 70, 47, 54, 75, 56, 67, 79, 51, 48, 66, 80, 46, 62, 73, 69, 81, 67, 53, 103, 73, 74, 74, 65, 55, 57, 45, 79, 63, 85, 62, 80, 67, 76, 58, 33, 74, 72, 73, 76, 83, 78, 67, 62, 51, 62, 50, 98, 59, 66, 74, 48, 73, 54, 44, 45, 58, 69, 69, 53, 54, 110, 46, 97, 74, 53, 54, 59, 69, 46, 51, 48, 70, 48, 53, 57, 86, 41, 52, 65, 64, 56, 77, 78, 59, 38, 85, 76, 64, 55, 55, 65, 70, 44, 78, 62, 79, 53, 68, 119, 60, 64, 55, 69, 56, 131, 48, 64, 81, 50, 72, 89, 79, 46, 60, 89, 75, 72, 77, 67, 74, 54, 67, 80, 67, 37, 73, 52, 61, 89, 81, 70, 74, 51, 54, 62, 60, 86, 54, 80, 47, 65, 52, 132, 66, 65, 74, 83, 54, 52, 55, 73, 51, 64, 91, 75, 66, 56, 71, 63, 62, 140, 55, 59, 60, 75, 64, 104, 83, 66, 47, 52, 62, 64, 41, 62, 77, 63, 90, 67, 42, 74, 79, 67, 53, 53, 57, 56, 52, 80, 74, 112, 44, 46, 46, 75, 61, 87, 75, 58, 105, 56, 74, 64, 67, 56, 69, 69, 75, 55, 52, 57, 68, 76, 70, 68, 83, 59, 75, 47, 44, 52, 51, 101, 67, 75, 61, 62, 51, 65, 35, 46, 74, 58, 69, 68, 67, 74, 63, 60, 41, 81, 52, 58, 57, 65, 78, 51, 69, 66, 63, 48, 74, 70, 60, 84, 60, 69, 67, 60, 100, 66, 49, 95, 59, 55, 50, 63, 100, 46, 44, 64, 66, 56, 65, 64, 53, 50, 83, 80, 100, 59, 73, 81, 50, 92, 84, 69, 72, 74, 78, 105, 75, 83, 100, 85, 51, 75, 46, 69, 56, 58, 73, 65, 51, 84, 58, 68, 105, 93, 63, 61, 59, 76, 60, 83, 60, 71, 56, 66, 67, 71, 64, 74, 79, 47, 85, 70, 60, 40, 66, 96, 52, 88, 40, 73, 63, 98, 85, 61, 70, 45, 58, 79, 62, 97, 39, 79, 56, 94, 81, 72, 73, 60, 66, 51, 59, 78, 53, 88, 69, 70, 81, 50, 85, 72, 80, 115, 98, 50, 59, 40, 54, 57, 83, 72, 97, 60, 84, 110, 49, 45, 92, 69, 54, 46, 55, 57, 46, 87, 71, 66, 110, 56, 56, 57, 60, 53, 62, 47, 60, 62, 57, 63, 82, 70, 56, 66, 100, 58, 77, 67, 43, 55, 62, 47, 68, 47, 44, 70, 58, 74, 46, 79, 64, 58, 72, 60, 75, 57, 61, 72, 44, 67, 67, 54, 76, 58, 60, 150, 82, 48, 35, 82, 73, 101, 65, 83, 69, 65, 70, 31, 52, 94, 59, 73, 77, 42, 53, 83, 76, 70, 57, 48, 74, 79, 60, 82, 50, 102, 87, 68, 43, 77, 55, 75, 74, 57, 71, 87, 41, 64, 49, 68, 77, 59, 59, 72, 75, 66, 72, 57, 84, 60, 60, 51, 73, 43, 106, 87, 74, 61, 55, 66, 58, 98, 60, 70, 53, 83, 39, 75, 62, 69, 65, 94, 51, 53, 69, 69, 80, 50, 59, 87, 78, 67, 60, 51, 77, 59, 68, 78, 97, 77, 58, 63, 83, 48, 66, 52, 87, 70, 60, 53, 68, 65, 70, 60, 76, 87, 103, 54, 50, 64, 44, 92, 72, 54, 73, 51, 33, 48, 93, 83, 56, 54, 67, 79, 47, 61, 47, 73, 37, 48, 68, 70, 63, 54, 72, 52, 73, 66, 65, 58, 81, 86, 66, 76, 46, 64, 95, 76, 94, 58, 64, 54, 96, 86, 51, 49, 52, 91, 44, 71, 76, 68, 91, 51, 50, 45, 70, 87, 64, 32, 70, 71, 74, 55, 77, 63, 103, 57, 62, 81, 60, 64, 69, 83, 69, 46, 102, 85, 54, 58, 69, 48, 99, 59, 72, 58, 66, 44, 61, 64, 50, 70, 77, 68, 36, 85, 70, 89, 50, 71, 63, 74, 90, 39, 48, 50, 76, 43, 72, 69, 89, 90, 48, 56, 69, 92, 54, 55, 71, 64, 52, 52, 68, 73, 50, 66, 61, 78, 113, 58, 67, 51, 66, 79, 80, 51, 55, 67, 90, 59, 67, 58, 59, 67, 76, 65, 48, 73, 62, 36, 48, 82, 68, 71, 57, 60, 68, 60, 69, 62, 48, 75, 61, 50, 52, 65, 66, 51, 58, 57, 63, 91, 59, 48, 79, 60, 63, 73, 69, 68, 55, 60, 57, 61, 63, 55, 49, 53, 59, 47, 56, 62, 70, 80, 61, 61, 65, 83, 76, 62, 39, 59, 62, 73, 78, 71, 57, 74, 65, 82, 74, 62, 50, 59, 67, 62, 116, 49, 61, 60, 82, 68, 94, 64, 46, 51, 65, 72, 124, 73, 72, 67, 58, 53, 81, 65, 82, 78, 52, 71, 58, 71, 74, 62, 57, 86, 85, 59, 73, 102, 62, 54, 73, 71, 111, 55, 65, 61, 63, 74, 46, 62, 57, 67, 65, 62, 77, 38, 45, 58, 78, 81, 51, 81, 58, 77, 82, 61, 58, 61, 62, 65, 93, 82, 70, 59, 46, 67, 60, 52, 87, 81, 87, 59, 79, 51, 48, 49, 72, 57, 54, 84, 44, 75, 84, 75, 46, 61, 59, 53, 58, 88, 71, 64, 49, 56, 60, 78, 66, 76, 63, 50, 63, 62, 52, 73, 66, 69, 66, 56, 52, 47, 80, 102, 87, 63, 59, 67, 66, 77, 69, 59, 67, 67, 65, 81, 74, 50, 75, 63, 58, 123, 56, 88, 67, 62, 53, 68, 66, 70, 61, 60, 69, 58, 58, 60, 70, 87, 67, 76, 49, 59, 54, 93, 66, 64, 55, 81, 73, 58, 100, 61, 64, 35, 102, 57, 59, 66, 64, 66, 39, 75, 45, 65, 53, 57, 58, 62, 43, 59, 83, 57, 60, 66, 67, 75, 31, 50, 65, 52, 85, 68, 93, 108, 66, 62, 62, 56, 77, 84, 61, 57, 78, 62, 62, 79, 50, 57, 54, 51, 73, 81, 80, 72, 65, 91, 75, 73, 79, 69, 64, 65, 72, 63, 94, 77, 67, 74, 61, 61, 71, 42, 72, 79, 69, 58, 62, 63, 56, 61, 59, 66, 85, 58, 51, 60, 51, 53, 60, 65, 47, 46, 61, 62, 62, 76, 60, 84, 54, 64, 62, 66, 55, 77, 54, 68, 63, 99, 62, 76, 54, 77, 56, 81, 48, 71, 62, 70, 49, 64, 68, 68, 96, 70, 55, 72, 72, 69, 64, 68, 76, 62, 73, 70, 53, 76, 59, 56, 72, 74, 69, 63, 63, 121, 71, 89, 71, 65, 57, 71, 66, 68, 63, 49, 65, 59, 45, 63, 36, 60, 50, 54, 54, 61, 61, 50, 54, 60, 74, 75, 56, 56, 63, 64, 67, 57, 72, 72, 84, 62, 51, 44, 66, 77, 66, 69, 79, 58, 61, 102, 68, 63, 71, 55, 67, 76, 68, 62, 66, 66, 76, 70, 65, 55, 61, 77, 80, 91, 59, 94, 46, 79, 72, 60, 54, 61, 68, 75, 63, 71, 70, 61, 64, 49, 78, 52, 58, 44, 60, 84, 70, 63, 66, 59, 71, 69, 64, 48, 66, 76, 41, 81, 64, 61, 79, 59, 85, 65, 51, 70, 95, 72, 65, 52, 55, 44, 74, 52, 99, 69, 68, 57, 77, 87, 55, 60, 67, 60, 67, 74, 52, 60, 79, 72, 49, 77, 54, 69, 53, 66, 70, 50, 67, 84, 71, 68, 62, 71, 63, 85, 88, 101, 51, 58, 60, 51, 66, 54, 52, 65, 36, 51, 58, 69, 78, 63, 75, 57, 62, 63, 67, 74, 68, 59, 88, 68, 61, 72, 52, 62, 94, 79, 69, 54, 29, 80, 94, 59, 59, 61, 71, 76, 55, 73, 51, 62, 70, 66, 58, 62, 70, 66, 56, 75, 75, 61, 64, 61, 118, 83, 63, 70, 93, 67, 68, 59, 63, 60, 67, 40, 73, 61, 62, 74, 81, 54, 55, 61, 124, 71, 56, 84, 70, 59, 58, 88, 76, 52, 62, 60, 51, 61, 55, 59, 55, 70, 65, 50, 69, 55, 61, 57, 75, 58, 74, 47, 63, 49, 56, 85, 36, 77, 82, 113, 76, 82, 50, 75, 80, 69, 76, 72, 48, 66, 61, 51, 50, 58, 66, 79, 71, 57, 56, 63, 73, 58, 60, 62, 67, 61, 55, 50, 50, 76, 68, 66, 75, 64, 61, 66, 61, 60, 69, 88, 46, 65, 54, 66, 71, 33, 68, 57, 52, 80, 91, 101, 61, 63, 67, 85, 91, 44, 67, 66, 61, 58, 53, 57, 47, 74, 91, 40, 55, 54, 72, 73, 65, 68, 57, 83, 64, 72, 77, 75, 69, 87, 70, 74, 71, 49, 52, 81, 68, 51, 63, 54, 49, 98, 57, 64, 61, 71, 59, 63, 88, 73, 64, 72, 68, 57, 76, 73, 94, 78, 66, 57, 94, 72, 59, 60, 59, 63, 61, 66, 53, 67, 59, 38, 69, 63, 83, 80, 55, 62, 65, 55, 89, 75, 59, 83, 65, 57, 67, 58, 62, 73, 56, 57, 73, 79, 54, 61, 58, 61, 96, 68, 65, 56, 67, 53, 70, 87, 62, 72, 68, 81, 76, 43, 53, 61, 67, 57, 112, 53, 67, 52, 58, 59, 63, 64, 75, 57, 66, 67, 60, 53, 60, 78, 63, 63, 52, 66, 48, 85, 55, 55, 63, 74, 71, 78, 34, 105, 80, 78, 53, 58, 65, 60, 62, 60, 53, 61, 58, 77, 57, 81, 52, 36, 66, 77, 48, 64, 51, 88, 70, 59, 52, 64, 50, 63, 88, 49, 71, 63, 67, 65, 58, 54, 58, 60, 71, 73, 59, 81, 62, 56, 66, 71, 54, 77, 46, 77, 55, 73, 62, 41, 55, 63, 68, 62, 69, 56, 70, 62, 93, 62, 54, 62, 69, 58, 91, 138, 75, 55, 56, 85, 72, 65, 63, 54, 58, 70, 64, 57, 74, 77, 68, 60, 71, 75, 99, 53, 60, 61, 55, 63, 67, 55, 58, 60, 83, 80, 56, 61, 63, 62, 97, 66, 105, 72, 67, 63, 69, 57, 67, 74, 71, 65, 63, 80, 76, 62, 49, 71, 56, 56, 52, 50, 81, 68, 66, 77, 73, 55, 83, 56, 48, 58, 152, 58, 56, 62, 79, 72, 70, 43, 66, 82, 59, 70, 46, 72, 48, 55, 77, 51, 106, 56, 65, 71, 53, 64, 73, 42, 63, 66, 58, 70, 89, 65, 61, 49, 52, 75, 87, 49, 74, 59, 72, 59, 81, 62, 61, 53, 93, 61, 66, 83, 47, 56, 68, 83, 67, 69, 87, 39, 62, 67, 74, 83, 60, 52, 76, 50, 104, 42, 68, 59, 64, 72, 60, 69, 63, 85, 63, 71, 56, 80, 57, 78, 72, 60, 75, 58, 50, 64, 65, 55, 50, 105, 67, 63, 79, 39, 83, 46, 63, 57, 63, 72, 72, 73, 60, 54, 73, 46, 75, 82, 72, 61, 83, 88, 55, 58, 85, 70, 74, 65, 82, 66, 79, 56, 67, 56, 66, 78, 45, 61, 62, 63, 49, 62, 57, 82, 93, 71, 45, 71, 54, 70, 71, 67, 63, 86, 55, 40, 61, 50, 56, 80, 77, 51, 39, 68, 55, 65, 52, 56, 82, 89, 60, 50, 58, 57, 63, 71, 50, 48, 56, 68, 77, 48, 64, 62, 71, 59, 75, 67, 58, 68, 54, 65, 65, 59, 70, 63, 83, 68, 69, 65, 72, 75, 55, 62, 40, 75, 61, 71, 68, 55, 57, 87, 55, 75, 61, 57, 66, 56, 78, 88, 66, 68, 131, 65, 69, 70, 53, 68, 68, 80, 84, 72, 67, 56, 53, 81, 60, 67, 77, 86, 63, 81, 73, 87, 64, 48, 80, 63, 69, 70, 85, 57, 58, 71, 82, 90, 66, 61, 52, 70, 63, 49, 61, 48, 69, 48, 61, 72, 49, 59, 50, 56, 48, 48, 66, 58, 62, 73, 78, 56, 67, 87, 87, 65, 73, 64, 67, 63, 69, 50, 86, 79, 69, 68, 62, 58, 50, 66, 57, 71, 69, 45, 45, 61, 80, 49, 63, 69, 69, 87, 77, 57, 54, 65, 148, 62, 60, 65, 78, 55, 82, 96, 76, 89, 86, 63, 45, 55, 51, 87, 68, 66, 46, 75, 55, 66, 84, 97, 62, 73, 65, 62, 93, 61, 69, 69, 58, 69, 79, 57, 79, 52, 77, 69, 53, 59, 61, 61, 60, 69, 68, 69, 60, 84, 63, 42, 65, 55, 65, 61, 88, 59, 70, 62, 86, 55, 58, 66, 59, 60, 90, 45, 64, 60, 54, 56, 68, 67, 60, 65, 54, 88, 61, 62, 61, 65, 80, 81, 54, 52, 58, 57, 71, 66, 62, 44, 47, 66, 52, 48, 83, 62, 52, 64, 54, 48, 55, 53, 51, 97, 61, 58, 76, 75, 68, 64, 62, 105, 55, 44, 61, 55, 88, 87, 59, 57, 93, 73, 48, 70, 74, 73, 83, 61, 81, 49, 64, 53, 51, 64, 58, 61, 66, 53, 79, 61, 66, 56, 51, 56, 80, 82, 70, 41, 79, 71, 44, 115, 75, 69, 58, 58, 74, 71, 68, 67, 60, 49, 63, 76, 64, 81, 68, 47, 52, 48, 56, 50, 66, 61, 62, 67, 63, 70, 90, 64, 78, 71, 73, 57, 72, 53, 78, 57, 65, 84, 74, 85, 70, 55, 84, 69, 64, 77, 62, 72, 79, 57, 47, 92, 62, 66, 50, 46, 86, 88, 57, 62, 57, 73, 48, 55, 50, 77, 57, 56, 82, 66, 78, 56, 74, 68, 43, 53, 68, 63, 73, 65, 62, 64, 71, 54, 51, 68, 72, 69, 52, 75, 65, 98, 93, 75, 59, 31, 75, 59, 47, 71, 60, 60, 70, 117, 65, 72, 74, 147, 98, 54, 76, 58, 65, 84, 66, 60, 58, 82, 64, 72, 61, 83, 84, 73, 54, 48, 59, 69, 83, 61, 61, 76, 64, 100, 63, 69, 73, 60, 58, 42, 61, 61, 64, 77, 63, 65, 56, 83, 47, 61, 61, 90, 53, 77, 54, 60, 59, 71, 73, 67, 69, 66, 63, 72, 78, 37, 91, 69, 67, 53, 58, 86, 77, 49, 69, 82, 51, 50, 51, 79, 74, 65, 62, 54, 58, 60, 44, 105, 61, 72, 73, 43, 71, 91, 58, 55, 64, 60, 82, 80, 59, 70, 98, 63, 54, 66, 64, 55, 83, 66, 68, 66, 77, 58, 60, 76, 52, 73, 68, 63, 74, 64, 70, 60, 66, 58, 57, 65, 73, 79, 68, 67, 63, 64, 103, 58, 79, 51, 51, 56, 57, 46, 66, 77, 61, 62, 56, 66, 55, 61, 102, 51, 64, 52, 71, 58, 53, 49, 69, 56, 67, 56, 91, 80, 69, 51, 78, 68, 54, 50, 68, 78, 73, 70, 62, 157, 57, 70, 64, 65, 84, 77, 75, 66, 57, 51, 58, 59, 48, 71, 74, 51, 71, 67, 76, 58, 86, 82, 62, 58, 65, 70, 65, 82, 58, 64, 58, 67, 66, 80, 41, 64, 87, 75, 89, 38, 67, 90, 49, 71, 49, 54, 79, 56, 77, 73, 67, 57, 71, 59, 57, 70, 67, 54, 56, 90, 73, 64, 82, 66, 65, 63, 72, 65, 69, 69, 82, 68, 74, 49, 69, 56, 112, 54, 60, 48, 49, 53, 74, 68, 45, 53, 63, 69, 83, 64, 74, 64, 61, 58, 61, 59, 63, 64, 53, 63, 51, 47, 74, 69, 66, 62, 67, 65, 69, 50, 76, 85, 46, 70, 52, 48, 63, 56, 52, 71, 76, 81, 55, 60, 74, 64, 57, 55, 64, 54, 60, 100, 76, 75, 65, 69, 64, 62, 67, 77, 80, 74, 55, 54, 42, 64, 62, 93, 57, 46, 61, 82, 87, 72, 67, 74, 55, 59, 46, 64, 53, 72, 76, 68, 81, 70, 114, 70, 62, 74, 56, 63, 49, 67, 59, 51, 67, 74, 71, 58, 61, 55, 66, 60, 73, 54, 46, 54, 61, 101, 67, 55, 80, 65, 92, 68, 67, 65, 77, 58, 69, 63, 57, 74, 98, 51, 51, 69, 79, 83, 52, 72, 75, 76, 47, 48, 74, 53, 71, 65, 62, 51, 81, 80, 109, 64, 70, 49, 69, 76, 64, 62, 92, 62, 54, 69, 72, 72, 53, 63, 75, 69, 49, 85, 75, 57, 63, 65, 101, 69, 59, 71, 50, 54, 65, 67, 78, 82, 61, 58, 57, 55, 85, 67, 63, 67, 54, 89, 68, 65, 78, 77, 102, 58, 77, 69, 63, 48, 77, 82, 52, 69, 59, 58, 68, 89, 54, 60, 52, 55, 53, 40, 77, 70, 56, 43, 52, 60, 56, 74, 60, 82, 51, 68, 52, 66, 62, 78, 53, 66, 69, 72, 74, 57, 69, 84, 63, 92, 61, 59, 46, 53, 86, 54, 53, 54, 100, 46, 103, 58, 60, 70, 55, 52, 74, 80, 51, 79, 50, 63, 66, 69, 53, 74, 112, 78, 63, 51, 67, 80, 55, 70, 62, 72, 115, 56, 49, 76, 68, 54, 53, 76, 58, 69, 72, 48, 62, 60, 87, 85, 64, 53, 65, 69, 66, 69, 72, 73, 44, 101, 60, 97, 75, 62, 66, 59, 60, 48, 56, 76, 62, 83, 60, 63, 56, 55, 94, 112, 44, 52, 57, 72, 44, 74, 94, 72, 54, 52, 54, 66, 64, 71, 57, 60, 73, 65, 72, 72, 68, 74, 63, 62, 78, 90, 59, 60, 72, 79, 51, 61, 73, 57, 67, 54, 62, 51, 76, 91, 93, 76, 96, 62, 67, 44, 55, 70, 64, 57, 76, 94, 64, 58, 60, 66, 52, 59, 61, 59, 58, 64, 51, 81, 56, 93, 68, 65, 62, 87, 51, 62, 75, 66, 60, 54, 65, 70, 79, 67, 55, 73, 63, 58, 40, 75, 60, 87, 57, 56, 73, 63, 73, 67, 55, 70, 49, 62, 65, 61, 68, 106, 51, 63, 173, 66, 61, 54, 67, 86, 65, 64, 60, 53, 57, 69, 48, 82, 57, 66, 76, 60, 52, 67, 67, 82, 90, 62, 77, 54, 66, 36, 87, 56, 49, 58, 52, 52, 56, 58, 89, 70, 81, 59, 58, 59, 52, 85, 66, 57, 69, 68, 70, 59, 66, 63, 81, 31, 60, 54, 63, 102, 69, 71, 55, 69, 72, 69, 92, 53, 73, 68, 62, 53, 55, 55, 69, 49, 57, 66, 44, 54, 69, 55, 75, 49, 71, 67, 72, 63, 75, 58, 55, 53, 64, 72, 117, 46, 60, 53, 66, 73, 38, 70, 65, 56, 72, 64, 54, 65, 62, 65, 44, 74, 57, 50, 69, 67, 81, 87, 68, 51, 60, 51, 58, 70, 66, 52, 69, 57, 110, 90, 70, 46, 77, 55, 70, 77, 59, 70, 52, 58, 50, 70, 64, 61, 74, 62, 89, 68, 90, 62, 108, 74, 53, 60, 98, 58, 52, 65, 66, 73, 63, 95, 57, 48, 71, 53, 87, 67, 50, 66, 74, 84, 48, 61, 82, 61, 87, 63, 61, 74, 60, 55, 69, 53, 59, 48, 51, 71, 61, 32, 59, 62, 48, 56, 97, 61, 59, 88, 51, 44, 80, 48, 66, 61, 66, 65, 47, 66, 68, 56, 65, 54, 62, 96, 51, 74, 67, 70, 67, 73, 77, 93, 95, 77, 61, 70, 62, 62, 59, 59, 58, 50, 39, 51, 94, 62, 78, 73, 69, 67, 91, 59, 59, 76, 72, 47, 72, 63, 58, 81, 34, 61, 65, 79, 65, 58, 52, 48, 59, 63, 59, 68, 70, 50, 56, 67, 71, 59, 63, 85, 59, 79, 58, 74, 113, 57, 65, 65, 59, 65, 77, 44, 54, 71, 66, 56, 64, 55, 49, 56, 90, 83, 46, 77, 68, 88, 79, 75, 59, 91, 57, 30, 70, 60, 59, 78, 79, 58, 68, 61, 86, 65, 61, 69, 73, 45, 77, 77, 74, 64, 69, 67, 57, 62, 45, 73, 67, 73, 62, 66, 54, 60, 60, 72, 73, 58, 61, 72, 61, 99, 46, 93, 47, 61, 55, 62, 64, 69, 48, 70, 79, 101, 87, 35, 69, 64, 75, 51, 70, 70, 81, 93, 51, 54, 72, 62, 60, 58, 85, 71, 64, 67, 94, 45, 68, 53, 73, 70, 60, 38, 76, 63, 75, 63, 64, 67, 67, 86, 65, 60, 69, 62, 67, 60, 76, 80, 52, 91, 67, 85, 118, 67, 53, 57, 72, 70, 64, 52, 69, 60, 74, 45, 39, 56, 60, 63, 96, 72, 59, 58, 88, 60, 50, 51, 60, 60, 58, 99, 54, 63, 83, 75, 52, 60, 65, 71, 47, 65, 89, 48, 67, 80, 90, 54, 47, 66, 59, 47, 64, 64, 65, 58, 50, 61, 51, 63, 81, 64, 56, 68, 64, 59, 55, 58, 75, 58, 72, 48, 49, 63, 82, 64, 56, 56, 58, 40, 65, 66, 78, 82, 58, 58, 70, 49, 72, 66, 63, 67, 55, 63, 77, 71, 60, 67, 76, 76, 69, 71, 90, 46, 66, 87, 77, 58, 83, 37, 72, 71, 72, 38, 71, 87, 89, 63, 72, 84, 56, 43, 56, 60, 71, 84, 61, 60, 59, 71, 68, 62, 68, 75, 55, 69, 55, 72, 60, 65, 69, 87, 76, 66, 63, 85, 64, 45, 61, 84, 73, 62, 68, 50, 48, 56, 90, 64, 53, 63, 75, 74, 60, 68, 61, 68, 55, 62, 57, 57, 54, 62, 56, 56, 61, 63, 68, 55, 61, 67, 67, 47, 57, 79, 65, 67, 63, 63, 85, 74, 72, 77, 57, 55, 75, 65, 63, 86, 54, 72, 63, 59, 64, 55, 102, 70, 76, 69, 55, 49, 64, 67, 59, 57, 58, 79, 60, 46, 65, 48, 69, 49, 60, 63, 80, 83, 71, 63, 99, 73, 75, 55, 51, 96, 98, 66, 67, 76, 78, 69, 53, 68, 61, 56, 63, 59, 63, 69, 67, 73, 88, 73, 53, 60, 59, 63, 64, 46, 65, 158, 51, 56, 75, 55, 66, 89, 54, 73, 101, 50, 56, 71, 61, 68, 112, 85, 70, 60, 79, 61, 72, 56, 62, 63, 55, 61, 75, 54, 46, 87, 70, 54, 64, 63, 75, 72, 70, 69, 72, 69, 57, 59, 54, 45, 89, 83, 65, 41, 85, 79, 68, 62, 60, 69, 40, 41, 60, 80, 48, 52, 53, 77, 64, 59, 66, 65, 88, 78, 61, 49, 50, 92, 76, 66, 67, 54, 77, 66, 61, 69, 68, 49, 56, 82, 56, 57, 68, 63, 82, 51, 52, 59, 66, 67, 63, 60, 61, 83, 44, 57, 63, 63, 67, 90, 93, 66, 84, 64, 87, 73, 47, 64, 78, 63, 56, 68, 70, 95, 63, 57, 58, 51, 69, 86, 61, 61, 76, 54, 77, 50, 69, 53, 80, 64, 64, 52, 71, 61, 116, 51, 97, 72, 60, 50, 56, 38, 77, 75, 74, 78, 54, 54, 104, 86, 76, 41, 65, 56, 66, 78, 74, 70, 72, 47, 88, 61, 52, 85, 49, 60, 63, 75, 67, 54, 90, 66, 76, 44, 64, 52, 85, 91, 62, 69, 113, 93, 56, 51, 66, 72, 78, 50, 59, 73, 61, 67, 57, 65, 121, 81, 50, 43, 54, 67, 64, 65, 68, 53, 66, 102, 61, 45, 66, 72, 101, 78, 67, 55, 60, 65, 51, 68, 71, 51, 90, 56, 53, 95, 61, 76, 78, 41, 56, 57, 79, 62, 67, 64, 96, 60, 77, 48, 57, 81, 64, 55, 76, 51, 73, 67, 64, 64, 46, 96, 80, 58, 85, 59, 62, 50, 72, 60, 69, 66, 75, 90, 73, 55, 60, 89, 79, 41, 80, 59, 67, 49, 61, 89, 57, 53, 68, 66, 68, 55, 65, 68, 56, 64, 59, 62, 56, 55, 72, 50, 85, 55, 85, 44, 52, 49, 57, 73, 67, 54, 62, 56, 56, 74, 72, 61, 63, 46, 79, 42, 84, 43, 63, 56, 76, 52, 98, 54, 60, 51, 53, 62, 80, 69, 60, 146, 74, 90, 55, 42, 65, 82, 59, 79, 51, 105, 65, 46, 56, 63, 66, 60, 55, 71, 48, 53, 70, 48, 95, 70, 70, 67, 78, 60, 67, 66, 44, 75, 91, 63, 59, 49, 56, 68, 75, 48, 70, 52, 62, 53, 53, 64, 85, 63, 120, 50, 52, 71, 64, 41, 66, 57, 48, 65, 68, 56, 73, 49, 60, 60, 98, 51, 60, 77, 59, 73, 52, 82, 66, 58, 70, 90, 92, 88, 66, 45, 94, 89, 111, 49, 81, 75, 57, 84, 39, 69, 62, 49, 41, 68, 49, 50, 65, 71, 56, 88, 78, 55, 67, 53, 52, 68, 55, 57, 58, 56, 63, 40, 37, 43, 56, 60, 36, 58, 57, 56, 55, 65, 68, 39, 56, 80, 91, 49, 42, 89, 79, 92, 57, 72, 102, 63, 71, 54, 73, 81, 68, 46, 44, 49, 75, 53, 55, 66, 72, 47, 82, 103, 57, 58, 58, 68, 63, 67, 64, 81, 92, 62, 90, 73, 69, 41, 66, 74, 81, 60, 77, 61, 53, 77, 84, 72, 102, 81, 50, 60, 61, 65, 56, 56, 62, 81, 78, 107, 57, 101, 60, 51, 64, 161, 59, 55, 62, 68, 57, 64, 68, 68, 86, 74, 63, 73, 54, 53, 63, 70, 67, 40, 68, 75, 56, 64, 74, 93, 68, 70, 63, 75, 57, 58, 58, 60, 71, 61, 56, 65, 60, 42, 70, 53, 73, 58, 66, 72, 73, 97, 62, 53, 54, 57, 93, 85, 57, 72, 69, 53, 58, 55, 44, 43, 54, 67, 69, 57, 70, 51, 69, 77, 59, 64, 60, 54, 56, 52, 45, 54, 57, 73, 74, 71, 51, 46, 68, 63, 110, 40, 63, 49, 58, 63, 48, 59, 49, 50, 86, 51, 75, 54, 65, 73, 65, 63, 74, 65, 72, 69, 67, 49, 51, 68, 101, 56, 54, 51, 66, 35, 94, 76, 62, 90, 58, 46, 57, 52, 66, 64, 81, 72, 70, 88, 76, 63, 51, 60, 85, 71, 76, 71, 51, 90, 63, 65, 52, 65, 67, 70, 55, 54, 50, 53, 58, 64, 56, 63, 77, 58, 69, 59, 51, 70, 89, 42, 68, 73, 66, 57, 80, 48, 89, 67, 57, 77, 84, 66, 51, 56, 72, 69, 73, 56, 59, 53, 54, 47, 55, 65, 63, 88, 60, 49, 86, 63, 69, 53, 62, 53, 75, 53, 68, 57, 64, 83, 66, 56, 58, 69, 62, 54, 66, 59, 75, 75, 49, 64, 54, 46, 60, 74, 57, 86, 80, 77, 56, 62, 47, 46, 69, 65, 58, 53, 60, 82, 66, 66, 62, 64, 72, 62, 52, 57, 63, 57, 90, 60, 111, 52, 65, 41, 59, 66, 54, 68, 87, 66, 76, 74, 57, 64, 66, 66, 59, 60, 92, 46, 51, 53, 64, 73, 66, 58, 58, 48, 45, 71, 52, 54, 47, 55, 65, 76, 63, 87, 61, 51, 53, 61, 61, 66, 74, 75, 36, 52, 58, 64, 73, 47, 66, 74, 71, 55, 65, 54, 50, 47, 68, 60, 66, 39, 74, 68, 63, 50, 62, 61, 81, 70, 54, 65, 66, 62, 85, 69, 57, 77, 55, 85, 61, 75, 79, 115, 56, 57, 47, 53, 70, 70, 75, 62, 53, 75, 57, 66, 80, 80, 59, 35, 57, 66, 72, 63, 63, 62, 57, 61, 47, 70, 48, 66, 76, 79, 42, 55, 75, 56, 46, 78, 76, 82, 89, 61, 51, 58, 57, 75, 72, 56, 101, 63, 71, 60, 77, 62, 61, 67, 43, 67, 84, 119, 74, 66, 75, 101, 74, 69, 44, 66, 63, 71, 55, 84, 69, 80, 51, 64, 68, 74, 70, 69, 62, 63, 65, 66, 74, 89, 56, 72, 58, 55, 67, 74, 71, 43, 54, 57, 77, 54, 68, 77, 84, 58, 90, 63, 55, 71, 59, 59, 52, 60, 54, 49, 66, 55, 75, 80, 47, 88, 83, 70, 60, 49, 52, 65, 74, 48, 67, 63, 87, 71, 69, 61, 72, 59, 61, 51, 72, 67, 115, 57, 68, 70, 59, 58, 75, 57, 76, 58, 125, 84, 66, 56, 78, 76, 46, 82, 81, 67, 66, 67, 79, 68, 68, 52, 70, 59, 66, 84, 55, 64, 55, 66, 69, 49, 63, 50, 49, 59, 55, 51, 69, 92, 73, 80, 58, 52, 83, 90, 67, 63, 68, 77, 52, 74, 102, 50, 70, 70, 61, 55, 58, 77, 66, 55, 79, 51, 66, 65, 62, 67, 73, 92, 76, 73, 62, 88, 118, 63, 59, 78, 70, 45, 91, 61, 64, 59, 60, 63, 78, 51, 66, 64, 77, 77, 55, 57, 54, 60, 41, 86, 60, 39, 109, 63, 41, 66, 77, 74, 78, 49, 70, 64, 51, 84, 72, 47, 68, 70, 68, 76, 76, 82, 68, 45, 85, 61, 76, 65, 94, 54, 116, 87, 58, 43, 71, 66, 64, 54, 73, 77, 92, 69, 68, 75, 61, 45, 61, 69, 56, 71, 56, 82, 93, 83, 49, 68, 54, 44, 104, 57, 52, 80, 51, 54, 48, 122, 44, 71, 85, 82, 69, 52, 57, 50, 69, 52, 68, 49, 33, 66, 63, 66, 56, 64, 59, 80, 59, 61, 68, 75, 56, 48, 57, 77, 80, 60, 82, 57, 49, 70, 70, 60, 55, 59, 62, 71, 71, 65, 62, 65, 78, 81, 50, 66, 59, 72, 58, 76, 50, 59, 82, 61, 70, 72, 55, 51, 70, 79, 49, 60, 58, 73, 78, 81, 73, 77, 73, 73, 128, 75, 67, 66, 48, 56, 77, 56, 58, 137, 78, 67, 58, 67, 52, 53, 69, 55, 69, 35, 64, 61, 71, 69, 135, 53, 66, 77, 65, 67, 61, 56, 62, 57, 58, 61, 72, 68, 61, 39, 67, 59, 82, 64, 54, 66, 71, 62, 62, 49, 38, 57, 58, 83, 68, 98, 57, 81, 49, 74, 77, 79, 84, 72, 47, 60, 92, 63, 64, 68, 46, 76, 77, 55, 72, 50, 86, 59, 48, 72, 68, 79, 62, 57, 89, 65, 59, 77, 92, 65, 85, 63, 68, 99, 57, 57, 57, 71, 58, 78, 89, 52, 65, 89, 43, 56, 77, 71, 71, 63, 71, 56, 71, 57, 65, 74, 66, 71, 58, 59, 45, 64, 65, 58, 68, 98, 116, 63, 60, 58, 63, 75, 70, 51, 75, 48, 68, 78, 61, 70, 59, 44, 49, 47, 70, 63, 55, 56, 94, 87, 57, 61, 70, 70, 75, 81, 58, 82, 80, 49, 110, 42, 74, 79, 62, 70, 74, 68, 50, 71, 53, 45, 75, 46, 87, 73, 43, 84, 67, 57, 77, 45, 66, 71, 50, 50, 78, 58, 109, 71, 62, 39, 47, 53, 60, 82, 95, 57, 39, 60, 95, 71, 64, 61, 60, 57, 71, 47, 66, 68, 66, 42, 77, 149, 60, 63, 61, 65, 78, 46, 60, 74, 76, 69, 63, 73, 51, 61, 65, 76, 68, 79, 46, 54, 55, 54, 52, 61, 85, 60, 61, 61, 77, 64, 46, 68, 60, 88, 57, 71, 53, 81, 51, 53, 65, 65, 66, 72, 48, 138, 48, 64, 61, 79, 50, 68, 45, 78, 93, 97, 62, 47, 68, 66, 61, 61, 60, 56, 71, 45, 60, 65, 93, 52, 67, 59, 54, 54, 83, 66, 67, 67, 73, 54, 59, 80, 69, 73, 63, 69, 66, 78, 87, 76, 47, 48, 68, 75, 83, 49, 80, 65, 68, 74, 64, 44, 66, 48, 89, 66, 84, 55, 87, 67, 62, 62, 44, 62, 52, 51, 80, 85, 69, 49, 61, 60, 55, 47, 51, 90, 74, 127, 63, 85, 90, 56, 55, 77, 67, 72, 40, 65, 70, 104, 67, 63, 60, 73, 52, 61, 54, 49, 100, 65, 62, 72, 64, 48, 55, 83, 67, 57, 68, 52, 81, 69, 85, 59, 70, 74, 75, 55, 61, 56, 61, 91, 78, 64, 66, 71, 68, 76, 84, 62, 91, 60, 88, 67, 69, 65, 94, 87, 63, 53, 64, 56, 58, 75, 50, 73, 62, 59, 50, 85, 73, 52, 63, 87, 48, 84, 49, 80, 59, 81, 92, 56, 68, 61, 94, 61, 37, 75, 49, 85, 73, 67, 85, 52, 80, 54, 60, 52, 69, 51, 68, 65, 86, 72, 57, 54, 59, 57, 68, 77, 77, 56, 73, 78, 61, 67, 71, 66, 101, 83, 51, 68, 42, 60, 53, 77, 60, 65, 49, 62, 75, 59, 65, 37, 63, 83, 66, 63, 67, 61, 56, 49, 68, 61, 70, 56, 33, 65, 98, 43, 74, 103, 65, 52, 78, 63, 75, 89, 39, 102, 71, 57, 57, 46, 85, 65, 67, 76, 88, 48, 90, 42, 47, 80, 45, 73, 64, 51, 73, 53, 69, 60, 72, 65, 82, 71, 73, 52, 52, 80, 75, 78, 34, 66, 65, 65, 65, 61, 67, 84, 82, 84, 45, 70, 64, 53, 70, 75, 92, 55, 74, 84, 75, 75, 72, 63, 93, 67, 44, 42, 64, 53, 63, 70, 58, 60, 60, 73, 82, 76, 85, 75, 59, 58, 51, 54, 51, 76, 55, 83, 64, 50, 57, 70, 94, 82, 94, 85, 72, 62, 66, 92, 48, 53, 70, 40, 72, 66, 73, 42, 67, 62, 75, 62, 63, 58, 67, 65, 69, 65, 70, 51, 114, 98, 51, 61, 56, 51, 93, 69, 54, 62, 63, 74, 69, 88, 65, 52, 61, 56, 59, 52, 79, 63, 65, 49, 76, 72, 81, 74, 79, 46, 83, 73, 56, 77, 64, 64, 81, 57, 90, 54, 69, 50, 55, 81, 44, 61, 47, 60, 56, 60, 111, 62, 98, 53, 53, 88, 69, 82, 52, 66, 48, 74, 72, 98, 49, 38, 55, 72, 56, 74, 106, 61, 55, 96, 63, 49, 53, 65, 56, 98, 55, 78, 90, 67, 40, 61, 30, 57, 67, 93, 73, 77, 55, 82, 75, 73, 113, 88, 48, 72, 63, 74, 75, 54, 73, 49, 59, 57, 49, 69, 48, 85, 87, 84, 74, 63, 66, 77, 51, 91, 84, 78, 62, 61, 61, 72, 56, 73, 56, 61, 77, 69, 66, 80, 69, 60, 69, 75, 64, 50, 48, 39, 80, 79, 86, 71, 51, 48, 75, 56, 43, 64, 68, 68, 55, 37, 66, 69, 60, 59, 52, 78, 71, 59, 53, 69, 72, 58, 60, 68, 72, 93, 49, 48, 65, 70, 83, 60, 77, 75, 28, 80, 74, 69, 58, 87, 92, 51, 57, 74, 62, 44, 57, 44, 54, 50, 63, 57, 88, 96, 58, 73, 74, 54, 56, 169, 69, 59, 50, 44, 72, 47, 65, 78, 46, 59, 62, 70, 60, 51, 64, 75, 76, 100, 58, 51, 55, 69, 69, 60, 50, 59, 81, 59, 95, 60, 69, 62, 84, 71, 64, 44, 70, 39, 53, 62, 39, 52, 93, 67, 69, 73, 64, 59, 75, 81, 75, 56, 92, 51, 78, 54, 60, 78, 81, 55, 59, 88, 57, 87, 56, 60, 66, 71, 69, 68, 77, 65, 69, 78, 74, 76, 87, 74, 62, 58, 87, 93, 58, 55, 89, 40, 51, 53, 74, 47, 47, 61, 56, 84, 73, 77, 44, 77, 77, 69, 47, 50, 73, 64, 50, 60, 42, 45, 68, 74, 85, 60, 86, 83, 63, 79, 71, 39, 64, 88, 59, 66, 64, 80, 82, 81, 63, 66, 56, 58, 61, 71, 51, 49, 87, 79, 32, 51, 58, 60, 54, 51, 70, 61, 73, 75, 68, 67, 56, 62, 62, 76, 80, 80, 71, 51, 84, 62, 85, 73, 68, 50, 59, 70, 87, 77, 64, 71, 77, 52, 62, 65, 76, 57, 56, 62, 64, 41, 68, 47, 57, 77, 70, 59, 66, 55, 55, 57, 92, 60, 66, 50, 55, 71, 53, 55, 57, 58, 46, 74, 52, 60, 62, 72, 60, 59, 77, 50, 76, 59, 57, 57, 62, 49, 58, 55, 76, 52, 71, 107, 88, 71, 83, 55, 47, 57, 73, 96, 50, 29, 110, 67, 33, 60, 60, 66, 78, 60, 75, 59, 79, 72, 55, 72, 59, 88, 67, 76, 121, 64, 63, 57, 61, 53, 63, 43, 41, 76, 71, 53, 54, 71, 69, 59, 81, 71, 68, 50, 71, 82, 61, 66, 63, 71, 100, 66, 46, 51, 52, 77, 77, 68, 81, 67, 67, 63, 84, 65, 70, 66, 64, 47, 51, 64, 68, 93, 67, 56, 60, 62, 63, 47, 63, 83, 60, 66, 58, 72, 61, 83, 73, 48, 49, 84, 62, 64, 68, 51, 97, 96, 61, 67, 95, 56, 69, 63, 57, 58, 65, 57, 90, 55, 71, 65, 69, 62, 69, 93, 61, 67, 66, 74, 54, 49, 77, 60, 88, 53, 69, 65, 66, 66, 50, 64, 63, 50, 53, 90, 51, 69, 84, 74, 60, 71, 51, 60, 73, 50, 74, 111, 53, 60, 61, 74, 86, 54, 81, 66, 43, 52, 52, 67, 44, 57, 59, 80, 62, 44, 73, 38, 65, 58, 74, 69, 72, 89, 135, 49, 64, 73, 51, 81, 104, 60, 61, 64, 70, 70, 86, 75, 46, 56, 62, 67, 106, 57, 69, 51, 55, 58, 93, 52, 62, 57, 73, 84, 78, 45, 67, 58, 59, 62, 77, 61, 87, 53, 60, 97, 45, 55, 90, 72, 66, 84, 50, 55, 69, 86, 58, 64, 61, 78, 61, 85, 90, 48, 62, 82, 82, 56, 75, 67, 58, 65, 57, 84, 85, 54, 47, 66, 66, 62, 66, 124, 53, 74, 57, 62, 76, 66, 55, 59, 54, 57, 62, 64, 78, 54, 83, 82, 80, 44, 117, 69, 77, 76, 60, 65, 69, 67, 53, 78, 52, 59, 60, 53, 71, 56, 72, 54, 64, 52, 39, 71, 47, 51, 72, 66, 81, 38, 51, 110, 73, 47, 71, 37, 61, 64, 53, 48, 75, 58, 48, 60, 69, 42, 59, 64, 70, 62, 65, 59, 61, 60, 65, 66, 84, 67, 66, 92, 69, 56, 61, 53, 61, 104, 78, 74, 61, 68, 60, 46, 56, 53, 48, 54, 87, 107, 75, 48, 55, 55, 59, 53, 61, 71, 68, 53, 64, 57, 60, 90, 69, 64, 54, 38, 68, 75, 83, 63, 65, 64, 64, 46, 60, 60, 74, 61, 76, 79, 54, 56, 71, 63, 63, 65, 59, 52, 74, 66, 63, 65, 72, 67, 77, 57, 64, 74, 50, 59, 55, 78, 71, 59, 51, 95, 89, 67, 61, 56, 82, 78, 116, 47, 69, 76, 57, 66, 87, 97, 89, 82, 76, 58, 53, 66, 59, 90, 57, 66, 64, 62, 52, 56, 51, 73, 65, 57, 99, 107, 74, 59, 57, 77, 42, 54, 58, 46, 57, 58, 84, 64, 64, 73, 76, 54, 56, 64, 60, 72, 68, 66, 59, 52, 51, 76, 64, 113, 66, 57, 65, 74, 92, 82, 67, 53, 75, 74, 62, 76, 97, 78, 72, 52, 78, 70, 85, 102, 72, 60, 61, 54, 60, 55, 66, 84, 64, 68, 54, 71, 63, 61, 66, 71, 77, 67, 62, 51, 58, 51, 73, 76, 65, 71, 80, 72, 62, 54, 70, 73, 50, 63, 73, 99, 46, 55, 72, 65, 46, 108, 44, 48, 58, 42, 68, 58, 63, 83, 69, 71, 65, 69, 42, 53, 62, 45, 71, 70, 49, 59, 65, 68, 66, 56, 65, 67, 53, 73, 63, 75, 72, 94, 70, 42, 57, 44, 75, 56, 42, 67, 79, 81, 75, 100, 43, 158, 66, 55, 71, 56, 59, 62, 64, 74, 98, 68, 63, 68, 61, 61, 51, 64, 53, 57, 70, 80, 52, 62, 59, 64, 67, 74, 95, 83, 74, 61, 66, 75, 60, 47, 67, 69, 73, 61, 65, 63, 71, 68, 51, 98, 63, 70, 84, 46, 63, 81, 43, 71, 70, 76, 76, 55, 54, 56, 55, 48, 51, 58, 45, 70, 59, 48, 85, 60, 46, 63, 54, 49, 62, 66, 69, 45, 50, 56, 75, 74, 62, 55, 72, 60, 86, 62, 60, 53, 70, 55, 78, 56, 61, 42, 49, 68, 71, 52, 63, 56, 69, 74, 56, 43, 77, 59, 61, 64, 65, 39, 82, 56, 66, 84, 77, 73, 56, 71, 75, 70, 63, 57, 69, 71, 58, 63, 58, 67, 52, 53, 53, 62, 60, 82, 53, 69, 60, 68, 49, 72, 96, 64, 70, 62, 40, 64, 54, 75, 104, 66, 65, 87, 68, 76, 50, 65, 73, 67, 79, 59, 70, 49, 93, 79, 49, 79, 97, 51, 50, 68, 50, 84, 72, 68, 56, 49, 73, 53, 86, 55, 61, 70, 70, 92, 62, 74, 78, 52, 72, 55, 45, 67, 84, 79, 65, 56, 62, 46, 68, 76, 61, 63, 63, 52, 87, 63, 88, 89, 71, 79, 66, 68, 71, 67, 75, 58, 60, 66, 68, 60, 92, 58, 62, 72, 60, 67, 54, 70, 73, 64, 74, 73, 58, 63, 54, 83, 60, 59, 119, 53, 47, 64, 55, 81, 72, 61, 66, 71, 49, 62, 57, 63, 69, 56, 63, 60, 96, 79, 47, 42, 52, 122, 53, 71, 67, 86, 80, 60, 92, 65, 58, 66, 47, 54, 60, 79, 55, 68, 52, 51, 52, 59, 66, 38, 80, 55, 59, 66, 58, 64, 54, 48, 56, 60, 61, 50, 91, 64, 66, 54, 61, 71, 85, 55, 70, 81, 54, 52, 75, 49, 119, 69, 51, 64, 102, 68, 63, 82, 46, 62, 61, 51, 55, 89, 67, 95, 59, 68, 55, 88, 81, 60, 68, 70, 59, 64, 97, 62, 77, 54, 72, 111, 72, 74, 58, 79, 57, 75, 50, 66, 63, 77, 73, 59, 54, 56, 77, 57, 75, 81, 57, 56, 42, 51, 59, 83, 72, 75, 64, 69, 57, 60, 58, 55, 71, 50, 70, 67, 53, 62, 38, 55, 58, 85, 58, 85, 80, 53, 48, 64, 55, 80, 74, 68, 64, 69, 63, 61, 63, 65, 68, 85, 64, 81, 66, 77, 64, 73, 44, 57, 96, 58, 64, 47, 74, 53, 47, 52, 53, 57, 76, 141, 52, 55, 59, 65, 55, 56, 67, 67, 73, 73, 58, 59, 62, 114, 58, 78, 67, 65, 49, 81, 75, 68, 48, 46, 49, 61, 60, 63, 47, 67, 70, 83, 41, 46, 84, 80, 88, 58, 68, 98, 69, 64, 66, 73, 61, 67, 55, 73, 63, 53, 75, 46, 72, 68, 76, 59, 43, 67, 77, 92, 71, 71, 65, 60, 51, 62, 72, 52, 77, 59, 69, 72, 66, 71, 55, 59, 55, 85, 64, 51, 41, 52, 46, 63, 85, 64, 59, 72, 74, 56, 69, 78, 79, 53, 66, 76, 109, 111, 47, 62, 57, 56, 53, 60, 64, 65, 44, 65, 66, 59, 57, 85, 66, 84, 71, 78, 63, 55, 75, 69, 61, 49, 58, 57, 56, 74, 80, 51, 61, 54, 93, 53, 87, 79, 86, 70, 63, 79, 58, 65, 56, 50, 73, 84, 103, 112, 88, 36, 79, 59, 55, 72, 63, 55, 53, 75, 65, 77, 66, 79, 84, 61, 66, 50, 57, 59, 53, 44, 78, 85, 86, 68, 66, 70, 75, 56, 69, 91, 108, 52, 53, 69, 61, 74, 69, 88, 62, 65, 60, 65, 77, 95, 62, 65, 51, 61, 82, 89, 68, 61, 50, 47, 81, 67, 43, 76, 54, 59, 57, 61, 60, 54, 55, 77, 80, 56, 69, 81, 82, 64, 60, 52, 71, 47, 57, 71, 78, 55, 84, 81, 66, 76, 92, 42, 52, 86, 64, 103, 98, 87, 62, 75, 84, 55, 59, 63, 79, 78, 32, 100, 55, 59, 63, 69, 83, 62, 75, 76, 66, 75, 57, 55, 38, 76, 61, 68, 65, 73, 57, 58, 55, 76, 97, 66, 71, 71, 80, 88, 72, 70, 96, 70, 69, 71, 62, 62, 64, 58, 51, 81, 58, 53, 90, 69, 65, 80, 83, 82, 62, 76, 76, 63, 76, 82, 59, 61, 78, 84, 79, 44, 66, 51, 48, 72, 80, 68, 93, 71, 37, 66, 65, 61, 93, 64, 64, 61, 77, 57, 68, 61, 58, 49, 76, 48, 60, 86, 54, 62, 58, 86, 68, 67, 58, 67, 42, 69, 50, 51, 59, 74, 57, 66, 75, 53, 56, 45, 69, 71, 62, 59, 102, 59, 63, 80, 60, 48, 79, 63, 52, 81, 51, 68, 48, 52, 72, 61, 52, 48, 62, 78, 70, 68, 63, 60, 79, 65, 55, 75, 58, 78, 46, 49, 74, 65, 63, 64, 92, 86, 64, 51, 42, 65, 119, 50, 61, 75, 72, 82, 69, 83, 63, 57, 63, 40, 63, 84, 62, 79, 65, 74, 71, 73, 93, 56, 71, 82, 44, 94, 49, 69, 54, 53, 43, 63, 71, 65, 63, 73, 85, 60, 51, 74, 69, 66, 61, 55, 54, 55, 70, 50, 54, 80, 51, 66, 90, 57, 52, 65, 51, 69, 45, 50, 67, 83, 74, 103, 59, 53, 69, 60, 71, 100, 66, 61, 53, 72, 53, 98, 69, 69, 75, 60, 92, 58, 47, 55, 65, 70, 70, 47, 70, 57, 51, 57, 56, 61, 70, 61, 63, 57, 58, 54, 90, 59, 57, 78, 76, 63, 68, 71, 61, 44, 59, 62, 101, 78, 58, 64, 59, 49, 68, 56, 72, 52, 48, 41, 60, 70, 57, 58, 61, 80, 85, 63, 65, 38, 62, 79, 65, 67, 86, 58, 50, 54, 55, 71, 47, 65, 75, 49, 84, 73, 80, 68, 60, 72, 77, 59, 53, 50, 73, 58, 66, 63, 64, 65, 63, 70, 85, 63, 53, 63, 105, 106, 69, 93, 82, 62, 62, 66, 52, 72, 58, 49, 62, 75, 58, 82, 63, 79, 33, 64, 60, 60, 58, 72, 52, 68, 67, 67, 56, 60, 64, 68, 53, 113, 61, 67, 67, 78, 87, 96, 64, 71, 70, 68, 65, 49, 43, 52, 71, 71, 48, 93, 78, 56, 77, 74, 70, 60, 56, 64, 32, 90, 57, 62, 66, 72, 48, 61, 46, 82, 67, 85, 83, 63, 63, 57, 39, 59, 63, 64, 68, 57, 64, 62, 54, 54, 57, 70, 65, 53, 68, 63, 54, 58, 74, 74, 57, 56, 58, 56, 58, 35, 66, 70, 68, 69, 72, 69, 67, 71, 41, 81, 57, 95, 56, 85, 74, 85, 53, 88, 61, 49, 86, 76, 77, 55, 58, 73, 49, 41, 53, 51, 84, 61, 58, 50, 79, 63, 62, 51, 56, 71, 52, 79, 64, 66, 61, 90, 51, 61, 58, 95, 49, 98, 51, 50, 39, 82, 68, 63, 65, 66, 77, 60, 53, 68, 54, 61, 67, 79, 56, 50, 74, 71, 66, 55, 68, 47, 70, 73, 56, 46, 71, 86, 75, 45, 83, 54, 70, 57, 59, 73, 179, 78, 58, 72, 50, 79, 51, 47, 54, 75, 58, 59, 40, 50, 51, 78, 60, 81, 65, 80, 63, 60, 93, 70, 50, 53, 74, 71, 85, 66, 52, 63, 87, 54, 74, 47, 57, 68, 67, 58, 67, 75, 63, 72, 56, 77, 88, 74, 81, 71, 57, 91, 55, 178, 80, 98, 67, 134, 71, 59, 68, 62, 54, 94, 57, 66, 55, 73, 70, 65, 63, 77, 65, 56, 66, 80, 33, 70, 78, 68, 76, 49, 80, 89, 72, 52, 57, 83, 63, 66, 65, 61, 93, 76, 64, 80, 60, 55, 43, 45, 69, 75, 81, 72, 59, 45, 66, 39, 75, 55, 61, 89, 89, 62, 97, 53, 47, 54, 71, 68, 91, 67, 77, 45, 45, 61, 66, 73, 66, 40, 109, 80, 60, 31, 71, 55, 118, 107, 65, 90, 72, 67, 83, 75, 108, 33, 60, 81, 51, 63, 105, 68, 64, 58, 60, 73, 68, 73, 71, 65, 63, 83, 82, 88, 62, 82, 59, 58, 67, 63, 67, 56, 58, 57, 70, 58, 71, 69, 56, 47, 61, 43, 60, 64, 70, 75, 48, 48, 84, 74, 80, 71, 59, 59, 61, 62, 65, 50, 63, 50, 59, 60, 54, 65, 63, 67, 84, 72, 75, 63, 76, 48, 57, 47, 90, 62, 69, 70, 86, 65, 54, 65, 55, 57, 80, 75, 61, 66, 77, 45, 73, 89, 67, 45, 81, 59, 46, 51, 63, 91, 51, 62, 62, 73, 80, 61, 68, 58, 57, 70, 79, 73, 83, 71, 67, 66, 86, 84, 76, 123, 76, 52, 78, 79, 80, 49, 81, 63, 55, 74, 63, 104, 56, 60, 47, 82, 47, 70, 75, 73, 83, 103, 70, 85, 80, 66, 70, 69, 58, 58, 91, 57, 63, 93, 75, 59, 71, 46, 68, 49, 57, 50, 74, 88, 63, 68, 74, 39, 44, 79, 54, 65, 85, 124, 57, 33, 88, 63, 83, 48, 72, 69, 64, 62, 63, 117, 103, 74, 49, 42, 69, 47, 80, 83, 57, 49, 80, 64, 74, 57, 58, 47, 61, 78, 46, 52, 59, 51, 58, 75, 80, 60, 62, 83, 66, 62, 113, 69, 74, 62, 68, 59, 49, 63, 62, 59, 60, 68, 62, 42, 57, 79, 45, 53, 60, 69, 43, 53, 94, 55, 56, 64, 55, 51, 50, 76, 70, 68, 54, 74, 63, 77, 72, 73, 62, 82, 67, 86, 85, 63, 62, 108, 63, 79, 72, 48, 77, 60, 68, 70, 64, 51, 64, 51, 49, 71, 91, 85, 71, 128, 78, 61, 66, 79, 50, 106, 76, 55, 81, 68, 74, 68, 71, 45, 94, 37, 85, 65, 89, 59, 87, 64, 70, 72, 81, 67, 74, 98, 61, 56, 123, 68, 65, 63, 52, 50, 112, 48, 90, 71, 61, 56, 53, 76, 94, 52, 64, 78, 49, 62, 73, 47, 60, 62, 61, 58, 47, 64, 57, 58, 40, 67, 70, 72, 70, 57, 59, 45, 53, 81, 70, 49, 96, 56, 79, 66, 96, 117, 53, 67, 60, 60, 61, 79, 67, 59, 58, 55, 45, 68, 59, 74, 80, 79, 59, 71, 62, 71, 80, 62, 57, 44, 59, 38, 75, 90, 85, 66, 72, 68, 71, 61, 94, 38, 53, 74, 72, 70, 66, 67, 59, 71, 54, 95, 68, 55, 90, 47, 56, 57, 87, 70, 50, 48, 93, 55, 55, 108, 49, 59, 54, 80, 81, 75, 81, 78, 53, 60, 69, 69, 77, 56, 57, 51, 47, 66, 73, 59, 44, 72, 69, 59, 68, 68, 69, 74, 60, 79, 71, 91, 55, 63, 67, 55, 48, 80, 65, 61, 55, 64, 71, 59, 63, 62, 45, 90, 79, 52, 45, 60, 65, 51, 57, 49, 69, 78, 65, 46, 76, 49, 75, 61, 83, 68, 54, 75, 80, 66, 60, 85, 61, 55, 63, 42, 75, 69, 62, 53, 54, 68, 79, 55, 67, 86, 74, 74, 54, 61, 60, 76, 54, 64, 44, 55, 72, 46, 67, 100, 86, 68, 47, 44, 98, 52, 109, 70, 75, 68, 69, 73, 62, 52, 51, 95, 78, 78, 67, 67, 61, 62, 78, 60, 43, 56, 80, 49, 67, 64, 44, 54, 63, 57, 54, 66, 76, 56, 56, 58, 53, 72, 54, 63, 68, 80, 46, 59, 83, 75, 82, 65, 56, 67, 63, 64, 92, 47, 71, 52, 52, 53, 55, 88, 52, 68, 87, 57, 83, 114, 57, 46, 44, 99, 66, 52, 47, 64, 52, 81, 72, 45, 80, 65, 72, 49, 59, 99, 52, 80, 78, 41, 69, 57, 76, 54, 66, 74, 70, 49, 57, 70, 48, 69, 147, 72, 47, 73, 51, 57, 73, 66, 58, 61, 77, 83, 69, 87, 77, 72, 66, 52, 52, 47, 82, 70, 22, 84, 59, 60, 54, 68, 44, 60, 49, 89, 86, 67, 96, 54, 49, 56, 57, 88, 91, 85, 67, 63, 86, 71, 55, 53, 89, 57, 85, 69, 54, 61, 75, 38, 82, 75, 40, 51, 59, 47, 68, 44, 75, 56, 83, 59, 51, 35, 64, 85, 68, 81, 68, 41, 79, 49, 67, 78, 68, 65, 74, 94, 74, 67, 51, 47, 98, 62, 54, 63, 51, 60, 74, 70, 33, 57, 45, 47, 53, 87, 49, 84, 50, 96, 49, 53, 78, 114, 42, 66, 56, 49, 69, 75, 69, 94, 81, 70, 56, 55, 64, 74, 69, 65, 65, 54, 80, 68, 56, 67, 72, 61, 86, 74, 50, 99, 79, 61, 129, 63, 66, 70, 48, 69, 81, 70, 62, 66, 70, 72, 61, 63, 75, 62, 56, 57, 63, 72, 59, 65, 22, 63, 56, 92, 53, 73, 55, 54, 64, 67, 70, 38, 78, 74, 50, 59, 81, 75, 61, 80, 61, 66, 59, 54, 71, 101, 82, 66, 61, 62, 62, 103, 63, 48, 50, 49, 66, 58, 59, 63, 64, 81, 60, 50, 50, 60, 78, 76, 109, 73, 67, 62, 77, 63, 68, 94, 54, 65, 71, 59, 64, 67, 69, 61, 82, 71, 76, 60, 46, 76, 79, 73, 62, 64, 60, 22, 68, 92, 40, 67, 64, 58, 53, 82, 57, 86, 57, 25, 72, 68, 63, 74, 82, 39, 67, 65, 88, 58, 88, 51, 106, 46, 95, 72, 91, 83, 52, 52, 75, 75, 55, 52, 77, 92, 55, 55, 98, 81, 57, 43, 75, 54, 65, 53, 62, 53, 60, 70, 48, 63, 65, 70, 53, 63, 49, 58, 76, 81, 70, 56, 56, 69, 32, 58, 87, 62, 56, 58, 48, 66, 77, 70, 55, 92, 31, 54, 50, 81, 99, 80, 55, 65, 66, 94, 48, 62, 77, 67, 61, 60, 47, 53, 63, 111, 54, 62, 53, 46, 63, 58, 74, 64, 64, 71, 47, 62, 48, 65, 60, 83, 75, 65, 68, 62, 60, 77, 82, 58, 52, 65, 75, 69, 63, 56, 46, 59, 76, 61, 65, 66, 61, 53, 86, 64, 61, 64, 51, 63, 68, 79, 67, 70, 62, 30, 64, 58, 75, 43, 61, 75, 99, 117, 61, 91, 66, 64, 44, 106, 58, 103, 48, 72, 60, 70, 80, 56, 77, 74, 78, 74, 75, 58, 44, 52, 59, 58, 88, 107, 76, 66, 56, 73, 58, 86, 66, 59, 62, 64, 63, 66, 64, 55, 51, 62, 60, 80, 69, 48, 52, 85, 57, 82, 46, 69, 50, 51, 80, 67, 56, 47, 97, 47, 51, 94, 85, 67, 62, 83, 71, 67, 61, 66, 56, 58, 50, 48, 65, 83, 59, 105, 80, 65, 50, 67, 57, 44, 89, 48, 112, 62, 61, 59, 60, 82, 82, 65, 63, 53, 54, 82, 79, 33, 83, 76, 60, 80, 68, 45, 54, 55, 58, 45, 49, 54, 76, 75, 68, 85, 74, 53, 65, 75, 67, 55, 73, 79, 36, 57, 101, 50, 101, 65, 62, 94, 96, 78, 85, 69, 64, 57, 47, 85, 67, 64, 63, 57, 51, 59, 61, 126, 80, 59, 68, 63, 69, 60, 65, 65, 65, 81, 65, 40, 68, 67, 60, 79, 59, 59, 67, 34, 73, 58, 67, 112, 69, 39, 65, 59, 67, 48, 53, 109, 63, 75, 48, 69, 86, 50, 58, 55, 62, 67, 63, 68, 60, 83, 78, 73, 78, 69, 78, 60, 74, 119, 68, 63, 56, 66, 42, 109, 73, 33, 83, 53, 76, 57, 70, 50, 49, 55, 76, 62, 114, 63, 60, 57, 40, 65, 79, 60, 98, 81, 56, 64, 56, 47, 46, 68, 76, 55, 59, 70, 82, 79, 79, 39, 55, 29, 80, 43, 76, 57, 61, 76, 59, 71, 38, 79, 69, 79, 65, 65, 93, 76, 64, 80, 44, 58, 61, 48, 71, 85, 50, 41, 74, 41, 47, 62, 63, 60, 80, 53, 65, 64, 55, 54, 38, 68, 55, 50, 65, 72, 87, 68, 61, 128, 67, 85, 85, 59, 70, 55, 58, 74, 43, 82, 57, 58, 62, 54, 76, 68, 76, 63, 92, 71, 54, 118, 67, 37, 57, 61, 73, 53, 72, 55, 63, 78, 61, 75, 59, 59, 92, 71, 95, 57, 54, 89, 55, 75, 58, 63, 100, 74, 83, 91, 68, 62, 46, 51, 78, 69, 58, 77, 65, 75, 67, 63, 61, 74, 74, 60, 89, 53, 85, 64, 71, 76, 60, 51, 68, 88, 88, 60, 68, 58, 74, 38, 67, 62, 68, 79, 40, 42, 55, 54, 55, 55, 44, 59, 71, 58, 72, 109, 57, 58, 52, 52, 68, 50, 40, 67, 62, 58, 63, 61, 60, 112, 69, 68, 63, 65, 62, 95, 76, 54, 91, 62, 61, 76, 64, 69, 66, 61, 72, 89, 58, 50, 57, 69, 93, 63, 51, 61, 87, 66, 78, 67, 72, 72, 77, 68, 66, 40, 80, 45, 70, 65, 34, 84, 56, 48, 44, 67, 56, 72, 55, 77, 71, 58, 58, 55, 89, 57, 51, 69, 53, 65, 64, 70, 81, 53, 64, 65, 85, 87, 49, 66, 77, 67, 80, 66, 63, 57, 60, 84, 72, 74, 48, 56, 58, 77, 66, 70, 76, 61, 70, 53, 65, 54, 71, 65, 107, 78, 62, 68, 72, 60, 79, 76, 80, 53, 51, 52, 87, 56, 66, 64, 76, 66, 78, 52, 44, 43, 72, 81, 62, 63, 74, 56, 44, 72, 39, 46, 78, 61, 52, 76, 82, 55, 93, 55, 62, 63, 50, 53, 57, 54, 46, 72, 77, 69, 63, 63, 70, 60, 51, 66, 50, 56, 87, 77, 71, 43, 60, 73, 58, 59, 52, 73, 80, 62, 91, 73, 65, 69, 50, 62, 79, 106, 56, 73, 57, 54, 73, 58, 68, 43, 72, 49, 71, 63, 73, 49, 76, 45, 55, 64, 48, 74, 52, 67, 38, 90, 51, 51, 73, 76, 73, 61, 100, 61, 53, 74, 74, 67, 43, 94, 108, 67, 76, 71, 59, 68, 50, 62, 46, 66, 37, 64, 66, 62, 54, 70, 75, 57, 73, 53, 52, 67, 68, 73, 65, 68, 55, 61, 53, 87, 77, 54, 41, 64, 63, 57, 51, 35, 61, 92, 78, 103, 46, 72, 62, 51, 66, 66, 59, 69, 63, 79, 71, 51, 68, 55, 54, 65, 84, 59, 53, 61, 53, 59, 72, 53, 68, 46, 59, 74, 74, 79, 66, 49, 56, 34, 69, 70, 55, 100, 83, 58, 105, 56, 39, 67, 66, 69, 93, 61, 71, 63, 75, 68, 58, 69, 59, 69, 66, 76, 81, 51, 56, 71, 71, 57, 71, 51, 70, 71, 70, 78, 56, 61, 64, 72, 79, 67, 46, 42, 71, 44, 88, 65, 80, 89, 63, 87, 80, 58, 77, 54, 48, 82, 47, 93, 106, 66, 65, 62, 62, 52, 56, 67, 72, 144, 56, 43, 57, 67, 54, 48, 93, 46, 31, 65, 84, 60, 63, 84, 92, 62, 95, 83, 82, 96, 63, 82, 46, 40, 52, 48, 53, 92, 80, 84, 81, 59, 60, 72, 59, 55, 69, 55, 52, 56, 67, 86, 60, 67, 70, 51, 62, 80, 71, 85, 63, 75, 53, 62, 37, 60, 42, 68, 70, 78, 70, 78, 75, 72, 82, 88, 67, 53, 64, 71, 80, 43, 54, 68, 70, 77, 69, 70, 43, 81, 76, 58, 105, 65, 66, 66, 88, 69, 77, 62, 76, 79, 75, 97, 68, 61, 92, 93, 75, 49, 60, 68, 57, 70, 61, 77, 78, 70, 67, 68, 60, 76, 64, 71, 75, 67, 91, 84, 121, 49, 85, 56, 54, 85, 80, 61, 46, 71, 47, 60, 71, 71, 50, 61, 88, 61, 78, 76, 53, 62, 64, 45, 75, 64, 67, 57, 71, 57, 57, 87, 74, 56, 63, 89, 83, 62, 69, 70, 97, 52, 56, 67, 76, 71, 100, 89, 98, 56, 58, 46, 64, 70, 69, 62, 79, 51, 99, 75, 71, 62, 66, 58, 84, 56, 63, 141, 63, 64, 79, 50, 62, 83, 65, 69, 66, 74, 64, 73, 55, 66, 69, 74, 72, 93, 74, 59, 43, 45, 57, 91, 66, 91, 69, 71, 56, 70, 47, 63, 57, 53, 67, 49, 57, 70, 65, 83, 60, 50, 56, 53, 68, 44, 59, 55, 34, 78, 54, 69, 68, 39, 82, 86, 59, 52, 71, 72, 86, 54, 85, 60, 70, 65, 68, 59, 63, 97, 75, 77, 54, 77, 87, 64, 48, 72, 56, 52, 39, 53, 59, 81, 59, 62, 74, 85, 42, 49, 51, 70, 56, 66, 66, 112, 46, 69, 58, 30, 58, 57, 84, 58, 60, 81, 64, 62, 89, 46, 67, 70, 55, 70, 48, 68, 62, 54, 80, 63, 60, 69, 67, 53, 76, 53, 57, 51, 66, 53, 69, 50, 84, 63, 65, 65, 43, 79, 71, 74, 56, 76, 80, 93, 71, 69, 73, 56, 53, 78, 68, 103, 76, 61, 59, 56, 67, 67, 73, 65, 66, 66, 71, 58, 33, 92, 78, 64, 80, 42, 79, 48, 53, 62, 58, 99, 58, 69, 44, 64, 67, 66, 98, 52, 57, 60, 71, 50, 41, 66, 70, 85, 64, 48, 54, 41, 58, 60, 34, 75, 71, 62, 54, 64, 55, 62, 72, 54, 78, 72, 74, 93, 55, 56, 116, 87, 65, 54, 45, 57, 83, 70, 59, 76, 100, 64, 66, 62, 80, 74, 47, 74, 66, 67, 59, 74, 72, 53, 36, 66, 107, 76, 62, 67, 81, 75, 69, 64, 58, 65, 51, 54, 50, 67, 65, 60, 87, 64, 67, 49, 75, 38, 74, 84, 68, 138, 56, 74, 57, 62, 59, 51, 72, 65, 72, 58, 68, 66, 89, 54, 67, 83, 57, 96, 49, 44, 55, 67, 61, 77, 73, 55, 65, 69, 102, 76, 48, 78, 78, 126, 58, 79, 76, 61, 72, 63, 64, 84, 61, 61, 75, 47, 54, 60, 64, 57, 65, 53, 44, 92, 57, 49, 73, 77, 56, 69, 142, 65, 54, 41, 46, 65, 55, 63, 85, 80, 62, 63, 85, 65, 47, 61, 74, 68, 47, 53, 58, 76, 91, 73, 59, 72, 59, 122, 53, 87, 67, 116, 77, 45, 67, 53, 61, 68, 55, 49, 55, 47, 60, 68, 74, 58, 75, 61, 81, 94, 48, 58, 101, 67, 61, 69, 75, 41, 61, 47, 79, 58, 103, 57, 55, 74, 99, 113, 63, 49, 93, 46, 86, 53, 76, 60, 60, 54, 72, 61, 85, 64, 56, 85, 73, 72, 74, 52, 60, 59, 51, 54, 52, 45, 74, 56, 61, 81, 70, 65, 49, 55, 66, 67, 62, 64, 93, 68, 56, 46, 59, 86, 65, 63, 98, 47, 56, 52, 46, 82, 69, 40, 70, 49, 49, 76, 80, 54, 45, 58, 60, 65, 75, 59, 77, 50, 64, 60, 56, 67, 63, 67, 78, 114, 70, 51, 67, 50, 54, 68, 50, 78, 57, 72, 65, 77, 68, 67, 48, 41, 53, 65, 68, 60, 82, 67, 67, 63, 69, 77, 58, 68, 74, 74, 63, 86, 60, 54, 44, 69, 61, 74, 100, 78, 44, 43, 60, 91, 72, 62, 76, 59, 50, 66, 64, 59, 65, 82, 56, 81, 61, 73, 71, 67, 61, 71, 73, 45, 99, 64, 81, 47, 68, 56, 79, 59, 69, 67, 68, 48, 67, 63, 69, 56, 97, 65, 63, 52, 71, 61, 55, 80, 63, 62, 57, 56, 50, 72, 84, 64, 57, 88, 73, 60, 74, 73, 46, 83, 71, 65, 66, 86, 51, 57, 68, 69, 81, 69, 96, 66, 64, 52, 56, 78, 69, 68, 75, 65, 65, 86, 61, 55, 64, 83, 58, 71, 62, 118, 66, 72, 48, 55, 51, 49, 53, 82, 46, 84, 80, 53, 65, 62, 77, 56, 47, 59, 61, 47, 91, 57, 54, 81, 72, 58, 68, 45, 84, 49, 64, 47, 72, 68, 57, 89, 90, 82, 49, 83, 46, 62, 35, 63, 67, 81, 105, 64, 59, 59, 61, 45, 49, 69, 87, 68, 62, 62, 75, 69, 71, 79, 62, 65, 48, 59, 77, 70, 56, 81, 62, 75, 51, 48, 55, 66, 75, 65, 66, 69, 78, 57, 49, 47, 60, 72, 52, 53, 62, 70, 79, 61, 69, 61, 64, 48, 66, 67, 79, 83, 64, 60, 70, 48, 56, 98, 61, 65, 71, 64, 74, 49, 69, 64, 56, 65, 65, 64, 84, 34, 63, 46, 86, 71, 61, 86, 83, 71, 61, 55, 62, 68, 61, 53, 56, 65, 73, 79, 72, 48, 64, 67, 83, 59, 74, 51, 46, 70, 78, 87, 66, 76, 47, 65, 82, 66, 48, 88, 67, 57, 56, 75, 175, 63, 56, 51, 68, 80, 73, 72, 49, 88, 76, 74, 85, 49, 63, 45, 52, 76, 67, 68, 67, 69, 103, 70, 68, 71, 58, 73, 63, 53, 71, 48, 57, 62, 107, 62, 117, 48, 48, 75, 57, 90, 90, 61, 52, 70, 64, 89, 61, 75, 82, 56, 72, 63, 61, 82, 40, 63, 65, 73, 63, 51, 60, 53, 47, 75, 64, 51, 50, 75, 55, 65, 64, 50, 45, 52, 103, 67, 63, 55, 54, 75, 54, 59, 66, 63, 76, 41, 81, 55, 49, 88, 69, 70, 45, 72, 61, 68, 86, 86, 60, 65, 66, 54, 51, 64, 54, 53, 62, 68, 59, 103, 55, 104, 50, 92, 63, 81, 55, 74, 74, 39, 58, 70, 81, 84, 57, 47, 78, 50, 57, 75, 64, 56, 59, 66, 66, 58, 61, 59, 83, 66, 76, 85, 65, 50, 79, 58, 57, 47, 48, 81, 67, 84, 68, 75, 54, 64, 56, 57, 66, 50, 79, 60, 75, 37, 57, 71, 65, 83, 63, 61, 47, 79, 53, 52, 43, 66, 45, 84, 51, 45, 62, 55, 78, 72, 60, 72, 90, 54, 66, 63, 77, 58, 59, 57, 75, 47, 45, 97, 89, 73, 42, 52, 63, 69, 68, 72, 45, 72, 97, 63, 75, 63, 43, 58, 61, 61, 64, 57, 65, 57, 67, 77, 87, 41, 71, 44, 71, 74, 72, 73, 57, 80, 86, 58, 57, 91, 82, 92, 74, 79, 75, 103, 74, 91, 37, 69, 73, 59, 64, 64, 60, 59, 66, 67, 106, 63, 97, 48, 76, 63, 65, 88, 52, 65, 78, 59, 62, 54, 51, 55, 56, 67, 57, 67, 53, 101, 36, 68, 87, 63, 54, 65, 48, 42, 86, 68, 62, 60, 82, 64, 57, 61, 51, 65, 72, 79, 68, 67, 90, 52, 67, 117, 66, 62, 61, 68, 66, 74, 64, 69, 108, 80, 55, 51, 82, 59, 72, 63, 48, 63, 49, 71, 55, 57, 75, 70, 55, 66, 91, 84, 67, 48, 75, 46, 52, 50, 52, 59, 78, 86, 38, 63, 93, 74, 54, 47, 60, 79, 71, 76, 119, 72, 71, 79, 65, 72, 61, 115, 70, 64, 81, 56, 65, 61, 71, 83, 72, 120, 73, 60, 44, 70, 42, 64, 67, 98, 86, 69, 82, 69, 43, 66, 56, 61, 61, 58, 35, 73, 64, 53, 61, 67, 57, 53, 56, 58, 53, 79, 56, 68, 70, 58, 86, 66, 71, 71, 42, 60, 73, 79, 46, 39, 88, 60, 57, 96, 58, 73, 50, 46, 68, 84, 66, 74, 77, 48, 85, 71, 67, 64, 79, 56, 56, 82, 53, 60, 59, 71, 74, 52, 66, 76, 72, 108, 73, 78, 65, 59, 87, 69, 86, 56, 56, 66, 66, 58, 76, 53, 71, 64, 40, 43, 54, 66, 77, 56, 49, 70, 57, 51, 112, 58, 59, 47, 56, 55, 52, 70, 61, 58, 64, 63, 51, 70, 49, 68, 58, 64, 73, 65, 74, 59, 49, 73, 50, 53, 117, 58, 69, 60, 94, 84, 57, 54, 78, 77, 78, 56, 65, 96, 78, 81, 87, 90, 45, 60, 64, 63, 72, 83, 58, 87, 75, 44, 69, 46, 64, 62, 74, 51, 55, 53, 88, 91, 41, 49, 151, 60, 45, 55, 63, 52, 60, 46, 71, 74, 73, 76, 53, 61, 103, 45, 64, 60, 59, 93, 64, 55, 52, 46, 50, 58, 70, 81, 82, 162, 76, 60, 61, 40, 60, 57, 104, 42, 69, 51, 50, 67, 44, 50, 61, 60, 77, 68, 70, 65, 57, 105, 73, 69, 115, 45, 73, 59, 58, 68, 80, 52, 62, 46, 80, 73, 60, 53, 62, 86, 59, 84, 67, 89, 70, 65, 64, 69, 57, 57, 138, 66, 59, 60, 65, 62, 72, 58, 81, 69, 66, 47, 61, 57, 64, 59, 78, 61, 52, 79, 57, 62, 65, 133, 56, 68, 36, 62, 64, 52, 60, 65, 98, 54, 46, 64, 58, 53, 57, 74, 48, 65, 34, 89, 59, 59, 106, 60, 64, 62, 61, 86, 58, 66, 54, 55, 36, 66, 63, 78, 69, 54, 97, 72, 64, 74, 89, 60, 75, 83, 84, 45, 63, 51, 74, 64, 50, 55, 40, 70, 58, 64, 47, 54, 66, 80, 80, 61, 66, 35, 65, 65, 76, 58, 43, 63, 57, 87, 70, 76, 73, 67, 59, 55, 62, 81, 77, 103, 37, 76, 62, 58, 74, 59, 57, 56, 76, 62, 68, 84, 46, 57, 101, 53, 74, 87, 105, 56, 59, 84, 47, 52, 73, 54, 51, 78, 66, 61, 71, 76, 61, 59, 82, 73, 65, 89, 57, 54, 87, 63, 77, 57, 62, 55, 63, 65, 54, 48, 56, 62, 47, 69, 61, 49, 104, 58, 67, 78, 72, 49, 56, 64, 53, 68, 55, 71, 72, 112, 71, 52, 63, 45, 58, 76, 86, 60, 76, 96, 74, 61, 41, 65, 53, 72, 54, 59, 55, 71, 67, 70, 74, 50, 89, 57, 72, 56, 77, 79, 72, 60, 91, 70, 64, 60, 50, 57, 67, 52, 67, 70, 62, 62, 46, 58, 41, 52, 67, 59, 72, 89, 66, 62, 65, 60, 64, 67, 70, 57, 71, 53, 73, 51, 69, 67, 61, 63, 89, 60, 41, 51, 64, 50, 54, 76, 50, 40, 77, 70, 95, 69, 81, 67, 51, 47, 67, 61, 68, 72, 55, 71, 55, 49, 67, 59, 70, 73, 92, 59, 55, 70, 65, 80, 49, 43, 51, 78, 68, 74, 51, 58, 82, 50, 102, 68, 65, 66, 65, 72, 48, 65, 57, 61, 67, 66, 58, 77, 59, 79, 79, 65, 63, 70, 72, 49, 70, 62, 46, 62, 82, 45, 58, 55, 58, 59, 59, 79, 64, 59, 57, 67, 58, 69, 64, 89, 78, 65, 47, 107, 47, 74, 72, 62, 70, 67, 49, 48, 68, 56, 77, 80, 66, 41, 80, 56, 77, 74, 51, 71, 62, 74, 52, 56, 47, 53, 72, 94, 51, 54, 72, 59, 63, 46, 87, 79, 88, 55, 49, 60, 70, 69, 47, 60, 54, 87, 57, 81, 65, 47, 63, 76, 93, 61, 55, 91, 62, 70, 72, 71, 52, 64, 62, 49, 83, 95, 64, 84, 53, 67, 68, 49, 54, 49, 70, 75, 54, 65, 49, 65, 64, 50, 70, 74, 80, 85, 52, 75, 50, 67, 87, 76, 58, 73, 70, 60, 57, 52, 66, 63, 57, 78, 98, 57, 66, 53, 109, 95, 61, 69, 48, 69, 63, 56, 77, 87, 77, 84, 50, 78, 73, 56, 74, 57, 56, 67, 57, 77, 63, 65, 63, 69, 61, 71, 85, 57, 72, 69, 96, 55, 62, 79, 60, 86, 75, 69, 53, 48, 79, 65, 63, 69, 64, 66, 79, 55, 89, 94, 60, 77, 62, 50, 75, 106, 58, 109, 71, 69, 58, 59, 72, 68, 52, 79, 66, 50, 58, 104, 54, 79, 46, 63, 70, 63, 75, 66, 52, 40, 80, 55, 52, 74, 53, 74, 60, 53, 65, 59, 77, 45, 73, 58, 72, 101, 64, 59, 58, 80, 66, 88, 58, 53, 46, 55, 56, 72, 72, 64, 44, 63, 53, 55, 75, 57, 75, 62, 75, 51, 66, 52, 70, 53, 56, 46, 56, 64, 51, 51, 52, 63, 52, 75, 73, 63, 65, 68, 55, 99, 80, 70, 66, 71, 68, 56, 81, 73, 69, 53, 64, 72, 65, 62, 43, 100, 62, 68, 61, 57, 72, 47, 62, 64, 60, 73, 49, 73, 63, 77, 84, 61, 111, 63, 56, 60, 48, 75, 75, 54, 66, 65, 52, 115, 71, 58, 55, 47, 50, 68, 74, 48, 71, 41, 86, 59, 50, 67, 71, 51, 65, 57, 67, 57, 51, 58, 67, 52, 47, 40, 68, 53, 52, 61, 60, 67, 56, 58, 61, 53, 73, 57, 58, 51, 60, 69, 83, 58, 50, 64, 89, 74, 44, 57, 65, 74, 58, 55, 60, 81, 74, 72, 59, 68, 75, 58, 45, 74, 64, 75, 98, 44, 70, 54, 56, 75, 66, 79, 53, 48, 65, 86, 48, 38, 96, 53, 71, 67, 80, 62, 76, 77, 58, 49, 64, 52, 61, 95, 102, 82, 57, 56, 72, 57, 58, 49, 133, 53, 60, 59, 49, 49, 54, 62, 72, 83, 68, 50, 56, 72, 98, 66, 69, 78, 62, 69, 70, 68, 99, 92, 60, 54, 58, 52, 57, 63, 47, 74, 76, 107, 51, 62, 53, 76, 62, 48, 47, 60, 56, 64, 82, 64, 54, 60, 44, 92, 67, 111, 73, 76, 50, 59, 71, 58, 56, 43, 75, 82, 58, 76, 60, 63, 76, 88, 62, 78, 56, 68, 58, 81, 57, 66, 69, 51, 70, 62, 62, 49, 71, 46, 59, 71, 51, 65, 64, 72, 50, 59, 57, 73, 60, 60, 61, 78, 53, 82, 73, 69, 75, 60, 57, 55, 59, 59, 64, 101, 53, 62, 66, 61, 72, 95, 74, 84, 64, 66, 48, 111, 67, 63, 48, 75, 73, 67, 50, 80, 73, 57, 62, 76, 71, 86, 55, 70, 63, 71, 54, 64, 65, 57, 65, 58, 62, 57, 51, 63, 63, 55, 81, 66, 65, 57, 65, 75, 60, 54, 54, 73, 69, 58, 71, 51, 60, 56, 63, 58, 61, 74, 66, 59, 67, 55, 58, 76, 81, 64, 91, 58, 109, 65, 66, 71, 107, 55, 76, 67, 67, 70, 61, 60, 63, 72, 60, 66, 56, 62, 71, 67, 61, 56, 88, 51, 80, 67, 45, 74, 61, 63, 59, 57, 56, 78, 59, 79, 67, 63, 62, 57, 67, 76, 65, 93, 48, 54, 66, 57, 68, 59, 70, 69, 73, 69, 58, 66, 57, 58, 146, 70, 81, 59, 70, 73, 64, 73, 94, 61, 55, 72, 68, 80, 70, 85, 50, 61, 68, 50, 71, 68, 57, 93, 74, 58, 34, 59, 62, 57, 53, 57, 68, 66, 63, 53, 51, 72, 82, 59, 59, 51, 65, 62, 59, 62, 49, 58, 95, 55, 63, 68, 72, 61, 52, 59, 64, 66, 83, 60, 77, 59, 72, 62, 61, 56, 64, 69, 64, 56, 61, 65, 72, 51, 62, 43, 57, 65, 95, 55, 61, 59, 66, 66, 51, 70, 62, 64, 51, 47, 69, 59, 70, 61, 77, 48, 57, 76, 133, 54, 66, 56, 62, 55, 82, 48, 59, 63, 98, 65, 61, 67, 71, 65, 108, 64, 80, 61, 68, 65, 61, 60, 64, 59, 79, 50, 87, 53, 64, 58, 76, 71, 72, 68, 65, 64, 67, 70, 49, 66, 52, 90, 76, 68, 74, 72, 45, 60, 56, 63, 49, 70, 61, 68, 62, 84, 59, 62, 71, 57, 64, 79, 73, 71, 63, 72, 59, 50, 95, 52, 68, 59, 55, 59, 81, 55, 57, 53, 158, 61, 55, 56, 71, 62, 76, 54, 57, 65, 51, 73, 72, 71, 68, 63, 76, 49, 66, 63, 55, 64, 76, 66, 66, 58, 62, 70, 51, 62, 58, 59, 58, 58, 59, 68, 68, 65, 87, 59, 71, 60, 52, 61, 65, 99, 56, 59, 61, 86, 75, 68, 72, 54, 65, 55, 70, 56, 74, 64, 59, 63, 69, 55, 66, 80, 65, 65, 62, 72, 67, 57, 69, 61, 56, 62, 64, 61, 65, 55, 63, 70, 62, 65, 85, 72, 58, 45, 73, 84, 61, 70, 85, 64, 51, 61, 65, 64, 77, 66, 81, 64, 70, 61, 57, 54, 67, 60, 64, 58, 57, 82, 57, 49, 77, 70, 67, 82, 51, 59, 67, 67, 87, 59, 70, 58, 63, 78, 60, 68, 50, 53, 75, 61, 74, 57, 78, 57, 61, 87, 75, 55, 74, 75, 51, 74, 65, 66, 69, 75, 112, 54, 77, 71, 62, 75, 69, 60, 53, 64, 59, 72, 65, 59, 56, 57, 70, 59, 58, 63, 51, 62, 62, 56, 55, 60, 54, 61, 71, 102, 85, 88, 56, 105, 46, 52, 60, 65, 71, 70, 63, 57, 86, 53, 60, 48, 74, 64, 78, 87, 56, 61, 52, 64, 58, 67, 61, 61, 55, 60, 54, 73, 63, 70, 56, 52, 66, 53, 56, 74, 53, 61, 62, 60, 42, 69, 66, 61, 51, 69, 65, 69, 69, 79, 78, 69, 70, 57, 63, 58, 78, 59, 77, 71, 70, 62, 63, 65, 57, 73, 52, 76, 84, 59, 69, 97, 59, 60, 67, 102, 64, 48, 63, 73, 54, 63, 54, 77, 72, 53, 56, 53, 62, 70, 59, 68, 61, 48, 45, 96, 62, 76, 65, 59, 57, 55, 60, 63, 73, 52, 59, 63, 63, 63, 64, 69, 54, 51, 60, 59, 61, 57, 56, 66, 59, 67, 56, 72, 71, 50, 56, 51, 57, 78, 58, 79, 66, 57, 86, 70, 58, 65, 85, 91, 55, 57, 52, 63, 53, 68, 76, 81, 75, 59, 74, 63, 55, 50, 63, 70, 60, 55, 67, 61, 60, 54, 58, 38, 68, 79, 94, 65, 63, 62, 57, 53, 66, 65, 58, 52, 68, 68, 76, 59, 64, 45, 72, 70, 67, 61, 78, 79, 58, 52, 60, 80, 74, 91, 60, 65, 43, 98, 58, 55, 69, 62, 51, 74, 67, 105, 66, 84, 65, 54, 60, 86, 66, 59, 65, 64, 44, 64, 64, 64, 62, 56, 69, 66, 80, 63, 64, 58, 41, 66, 57, 51, 71, 51, 93, 45, 72, 74, 67, 69, 54, 71, 70, 62, 61, 52, 54, 82, 71, 55, 65, 59, 74, 52, 56, 49, 98, 60, 54, 66, 68, 68, 93, 60, 60, 68, 57, 51, 77, 61, 66, 49, 51, 65, 61, 64, 73, 51, 55, 66, 54, 84, 52, 79, 54, 72, 57, 85, 61, 68, 56, 56, 77, 52, 46, 56, 85, 53, 62, 44, 48, 51, 73, 58, 66, 60, 58, 55, 84, 67, 70, 61, 64, 65, 66, 62, 84, 65, 60, 117, 61, 74, 77, 48, 54, 67, 83, 74, 53, 83, 61, 66, 64, 53, 59, 57, 76, 63, 69, 81, 44, 68, 69, 52, 48, 61, 59, 57, 76, 77, 53, 59, 50, 74, 63, 57, 73, 71, 90, 57, 56, 58, 46, 58, 66, 60, 60, 67, 63, 58, 65, 51, 74, 68, 67, 109, 85, 88, 56, 62, 64, 57, 64, 60, 52, 51, 55, 127, 67, 68, 70, 68, 57, 87, 66, 62, 72, 61, 56, 99, 57, 106, 65, 70, 67, 91, 47, 57, 61, 61, 88, 96, 99, 80, 60, 70, 83, 62, 78, 67, 62, 99, 97, 67, 56, 58, 48, 67, 66, 52, 68, 48, 78, 58, 68, 66, 74, 71, 70, 57, 56, 85, 63, 58, 75, 61, 68, 54, 45, 83, 60, 78, 66, 52, 72, 48, 90, 94, 66, 59, 67, 58, 91, 54, 52, 70, 82, 74, 99, 73, 56, 62, 56, 65, 80, 66, 74, 55, 64, 53, 64, 68, 50, 56, 61, 63, 107, 59, 73, 73, 64, 68, 62, 74, 74, 68, 62, 71, 61, 96, 81, 56, 42, 82, 54, 57, 52, 75, 48, 73, 53, 56, 98, 83, 69, 54, 69, 55, 61, 61, 46, 90, 61, 67, 87, 51, 65, 62, 60, 62, 57, 58, 65, 61, 53, 72, 57, 62, 64, 62, 56, 78, 72, 73, 89, 59, 77, 61, 61, 80, 67, 69, 69, 54, 56, 61, 91, 53, 64, 128, 80, 70, 64, 63, 48, 67, 52, 94, 84, 67, 59, 69, 60, 65, 54, 68, 92, 72, 53, 99, 49, 71, 66, 141, 71, 58, 62, 50, 58, 58, 65, 69, 68, 60, 87, 63, 57, 67, 62, 75, 66, 70, 99, 78, 68, 56, 58, 52, 74, 62, 67, 62, 70, 59, 68, 74, 74, 54, 66, 50, 76, 67, 130, 74, 59, 121, 54, 79, 54, 66, 72, 56, 64, 86, 68, 66, 55, 52, 82, 64, 115, 60, 55, 43, 53, 52, 52, 111, 77, 58, 58, 67, 59, 78, 56, 87, 75, 49, 59, 53, 60, 65, 67, 54, 53, 72, 58, 64, 73, 58, 74, 54, 42, 53, 66, 62, 60, 58, 148, 43, 60, 62, 81, 64, 62, 50, 65, 58, 61, 75, 61, 61, 66, 71, 63, 50, 90, 62, 73, 87, 72, 70, 65, 61, 71, 63, 63, 73, 66, 61, 100, 68, 44, 58, 63, 76, 77, 50, 59, 65, 68, 77, 83, 62, 52, 56, 99, 49, 79, 85, 96, 54, 59, 62, 66, 52, 68, 54, 66, 63, 73, 65, 79, 67, 66, 64, 60, 97, 56, 47, 62, 68, 61, 82, 71, 64, 55, 55, 59, 82, 51, 65, 74, 61, 78, 51, 57, 58, 75, 54, 73, 62, 60, 54, 77, 69, 81, 61, 58, 78, 66, 67, 63, 65, 58, 57, 59, 62, 70, 42, 67, 57, 80, 59, 74, 86, 85, 68, 66, 50, 52, 55, 78, 71, 76, 51, 63, 62, 68, 57, 68, 63, 54, 73, 72, 38, 58, 47, 67, 71, 58, 71, 58, 71, 67, 61, 60, 68, 68, 53, 99, 57, 68, 74, 63, 67, 68, 50, 64, 65, 63, 61, 63, 70, 92, 68, 67, 52, 104, 68, 66, 60, 62, 70, 49, 61, 71, 62, 59, 70, 58, 65, 59, 52, 58, 49, 57, 79, 61, 60, 47, 58, 59, 58, 75, 55, 71, 61, 61, 62, 50, 60, 66, 73, 47, 89, 60, 54, 55, 64, 63, 64, 92, 67, 54, 73, 62, 55, 54, 64, 69, 66, 55, 68, 67, 51, 55, 50, 56, 36, 67, 73, 64, 71, 48, 71, 75, 51, 65, 61, 69, 72, 64, 57, 91, 64, 80, 81, 54, 56, 57, 67, 115, 59, 56, 65, 61, 58, 66, 84, 108, 41, 73, 72, 64, 54, 72, 58, 68, 80, 78, 54, 65, 61, 80, 67, 69, 140, 65, 62, 69, 67, 78, 75, 62, 75, 105, 45, 50, 59, 70, 63, 73, 62, 68, 56, 51, 82, 59, 80, 79, 76, 55, 54, 61, 52, 75, 82, 87, 76, 46, 72, 71, 77, 67, 112, 50, 58, 69, 74, 66, 78, 81, 47, 56, 68, 52, 68, 56, 61, 58, 75, 67, 58, 59, 51, 61, 67, 67, 68, 56, 65, 66, 59, 57, 69, 78, 45, 58, 57, 49, 59, 61, 51, 79, 97, 61, 105, 64, 101, 62, 57, 48, 71, 59, 79, 66, 86, 49, 67, 67, 78, 75, 60, 59, 71, 76, 65, 82, 67, 49, 71, 68, 83, 57, 40, 58, 84, 51, 54, 53, 66, 55, 86, 63, 68, 50, 71, 68, 64, 51, 79, 64, 45, 57, 80, 71, 54, 49, 69, 116, 50, 54, 65, 59, 59, 72, 59, 46, 76, 79, 49, 58, 59, 58, 64, 61, 74, 89, 83, 57, 57, 49, 62, 65, 53, 64, 74, 61, 134, 73, 67, 49, 60, 56, 51, 58, 69, 51, 61, 76, 74, 69, 53, 65, 63, 71, 50, 79, 65, 71, 64, 52, 84, 52, 70, 71, 64, 62, 76, 77, 59, 69, 69, 98, 43, 83, 98, 66, 78, 66, 80, 71, 50, 62, 54, 35, 77, 61, 64, 61, 64, 60, 58, 51, 75, 60, 59, 65, 61, 74, 64, 55, 71, 86, 65, 72, 54, 60, 69, 78, 63, 60, 62, 49, 54, 97, 68, 104, 70, 46, 51, 76, 87, 66, 62, 57, 122, 54, 62, 71, 60, 48, 63, 63, 63, 78, 69, 58, 75, 42, 62, 65, 79, 79, 72, 78, 55, 69, 60, 49, 57, 56, 54, 64, 61, 59, 59, 81, 46, 51, 58, 57, 49, 85, 63, 67, 66, 54, 58, 59, 67, 61, 55, 63, 60, 82, 65, 50, 71, 61, 73, 57, 75, 70, 59, 61, 64, 77, 60, 71, 68, 82, 57, 67, 83, 53, 62, 72, 70, 68, 75, 69, 64, 77, 79, 54, 74, 112, 64, 50, 61, 68, 58, 54, 51, 55, 56, 57, 57, 94, 57, 61, 54, 53, 85, 64, 71, 71, 64, 53, 77, 61, 48, 49, 54, 57, 78, 55, 67, 74, 60, 72, 64, 89, 81, 111, 65, 63, 77, 68, 83, 61, 52, 49, 52, 53, 73, 63, 69, 74, 56, 57, 95, 56, 52, 62, 68, 66, 55, 63, 49, 69, 54, 65, 59, 58, 76, 48, 77, 80, 65, 53, 81, 63, 58, 61, 56, 56, 55, 57, 49, 82, 58, 62, 60, 65, 64, 56, 58, 84, 63, 55, 51, 68, 62, 66, 60, 52, 77, 78, 59, 60, 57, 66, 64, 62, 64, 64, 57, 80, 107, 58, 78, 67, 54, 68, 70, 68, 75, 58, 63, 63, 74, 82, 73, 56, 54, 78, 58, 78, 82, 56, 73, 68, 63, 60, 74, 88, 71, 69, 53, 59, 62, 59, 54, 73, 57, 86, 54, 69, 68, 87, 46, 71, 55, 115, 72, 60, 55, 105, 59, 52, 57, 83, 74, 58, 70, 53, 52, 65, 58, 75, 70, 64, 67, 55, 53, 67, 80, 56, 87, 60, 69, 45, 62, 60, 71, 61, 69, 58, 52, 52, 45, 48, 58, 72, 66, 59, 76, 17, 62, 69, 99, 60, 72, 96, 63, 63, 62, 74, 65, 45, 63, 66, 99, 54, 64, 62, 43, 49, 66, 90, 61, 53, 63, 60, 79, 60, 55, 68, 66, 47, 60, 60, 74, 123, 61, 57, 46, 46, 39, 86, 75, 76, 63, 67, 60, 66, 65, 47, 62, 68, 61, 56, 55, 71, 71, 54, 66, 77, 65, 57, 73, 74, 59, 58, 50, 66, 106, 91, 93, 60, 56, 64, 99, 69, 114, 69, 56, 68, 67, 61, 78, 76, 65, 61, 74, 88, 56, 78, 67, 61, 63, 62, 55, 61, 65, 58, 66, 81, 80, 57, 68, 70, 58, 75, 65, 64, 57, 69, 57, 61, 64, 55, 49, 49, 69, 54, 51, 68, 51, 61, 90, 67, 73, 82, 62, 60, 63, 75, 96, 61, 65, 61, 69, 67, 69, 85, 65, 67, 72, 64, 63, 59, 67, 51, 68, 54, 63, 81, 71, 58, 55, 61, 87, 77, 57, 66, 55, 56, 67, 60, 81, 53, 63, 71, 52, 68, 50, 95, 69, 79, 63, 74, 79, 59, 62, 87, 64, 53, 58, 63, 80, 51, 61, 61, 76, 62, 82, 85, 55, 83, 80, 56, 69, 75, 51, 80, 67, 66, 77, 84, 55, 65, 84, 71, 65, 76, 45, 70, 61, 64, 136, 68, 75, 61, 81, 54, 73, 68, 74, 62, 64, 74, 64, 53, 53, 50, 70, 50, 69, 67, 74, 72, 69, 57, 62, 84, 52, 73, 84, 77, 58, 56, 55, 118, 93, 54, 63, 66, 66, 80, 92, 56, 61, 57, 80, 50, 68, 63, 73, 55, 77, 85, 63, 58, 69, 71, 64, 58, 62, 80, 71, 72, 60, 67, 74, 58, 59, 55, 62, 54, 48, 57, 64, 63, 56, 65, 59, 60, 67, 57, 62, 61, 69, 57, 62, 58, 57, 69, 54, 69, 69, 56, 66, 55, 75, 76, 123, 83, 60, 47, 80, 58, 53, 102, 55, 57, 63, 64, 57, 64, 144, 85, 61, 59, 56, 66, 64, 59, 63, 51, 61, 61, 54, 51, 78, 70, 42, 48, 54, 66, 72, 59, 54, 62, 79, 47, 68, 75, 104, 57, 70, 53, 72, 70, 78, 66, 61, 60, 60, 54, 66, 57, 58, 70, 68, 67, 67, 54, 46, 72, 61, 71, 64, 75, 72, 64, 59, 59, 78, 62, 68, 63, 71, 56, 55, 54, 51, 73, 63, 76, 82, 53, 60, 64, 62, 70, 60, 80, 63, 65, 53, 71, 57, 58, 72, 51, 56, 59, 74, 71, 72, 53, 66, 70, 59, 68, 94, 65, 66, 64, 79, 56, 74, 68, 58, 60, 68, 72, 54, 60, 68, 60, 66, 73, 61, 59, 108, 66, 68, 82, 68, 65, 64, 67, 55, 80, 76, 74, 56, 74, 64, 65, 62, 61, 53, 58, 71, 53, 53, 67, 79, 65, 57, 64, 62, 68, 50, 59, 52, 62, 70, 57, 72, 56, 63, 60, 72, 48, 64, 77, 66, 85, 68, 60, 84, 69, 66, 72, 56, 59, 66, 79, 61, 68, 83, 51, 79, 80, 62, 64, 65, 56, 61, 57, 58, 70, 79, 65, 56, 63, 65, 57, 67, 65, 65, 54, 60, 51, 66, 80, 84, 66, 70, 62, 70, 61, 61, 44, 68, 57, 70, 55, 71, 73, 56, 62, 64, 54, 59, 73, 57, 54, 61, 67, 61, 54, 73, 62, 77, 70, 103, 62, 98, 105, 90, 55, 67, 62, 66, 66, 59, 59, 69, 71, 70, 61, 50, 64, 59, 75, 65, 51, 63, 66, 67, 74, 66, 67, 54, 70, 65, 71, 60, 54, 60, 53, 59, 60, 66, 52, 78, 54, 62, 59, 65, 81, 52, 75, 62, 64, 58, 67, 70, 58, 59, 62, 61, 55, 66, 67, 55, 59, 74, 64, 62, 67, 86, 59, 70, 66, 60, 66, 69, 68, 70, 62, 65, 58, 75, 94, 58, 112, 56, 62, 66, 74, 90, 61, 95, 77, 58, 60, 66, 59, 53, 73, 80, 61, 61, 51, 64, 48, 65, 57, 63, 62, 61, 91, 62, 64, 79, 87, 53, 54, 65, 64, 61, 64, 54, 73, 49, 72, 54, 56, 72, 59, 71, 68, 54, 79, 58, 65, 56, 80, 57, 77, 68, 64, 77, 70, 55, 69, 61, 73, 70, 54, 70, 56, 76, 69, 61, 54, 66, 71, 55, 59, 69, 58, 59, 79, 58, 77, 54, 65, 56, 81, 53, 55, 68, 55, 64, 91, 70, 58, 67, 84, 61, 67, 56, 72, 53, 71, 67, 55, 99, 58, 61, 62, 63, 62, 49, 61, 66, 63, 70, 60, 71, 65, 63, 62, 58, 68, 82, 60, 48, 59, 85, 59, 65, 59, 65, 64, 56, 85, 65, 67, 58, 63, 64, 58, 67, 72, 70, 61, 84, 81, 79, 57, 73, 58, 50, 80, 75, 49, 58, 73, 72, 45, 86, 63, 60, 52, 62, 62, 62, 57, 66, 63, 55, 57, 74, 90, 68, 71, 72, 67, 69, 62, 59, 64, 55, 51, 81, 60, 73, 65, 60, 53, 79, 75, 68, 50, 73, 53, 76, 58, 55, 81, 60, 66, 64, 73, 74, 76, 58, 60, 58, 71, 55, 62, 62, 68, 64, 68, 58, 59, 63, 62, 66, 63, 60, 67, 82, 54, 69, 75, 63, 66, 60, 67, 66, 77, 68, 54, 73, 91, 58, 66, 66, 78, 74, 47, 69, 74, 85, 69, 65, 78, 64, 61, 74, 62, 54, 69, 55, 67, 83, 59, 66, 71, 66, 102, 55, 115, 65, 53, 62, 53, 68, 73, 65, 77, 60, 63, 56, 67, 66, 58, 71, 56, 56, 51, 60, 53, 72, 67, 65, 69, 53, 64, 52, 67, 77, 52, 99, 66, 58, 79, 69, 73, 63, 62, 64, 56, 57, 67, 59, 72, 62, 86, 64, 69, 63, 55, 74, 56, 66, 65, 56, 55, 59, 62, 71, 108, 66, 62, 74, 61, 63, 68, 94, 56, 66, 83, 87, 60, 63, 67, 59, 45, 61, 59, 74, 67, 70, 75, 61, 55, 70, 80, 48, 73, 62, 67, 60, 48, 84, 79, 56, 65, 72, 56, 55, 73, 54, 58, 56, 58, 72, 67, 55, 50, 65, 55, 76, 57, 64, 73, 70, 58, 60, 79, 89, 64, 70, 71, 67, 63, 60, 64, 54, 71, 66, 74, 54, 66, 85, 89, 66, 63, 73, 69, 59, 78, 70, 65, 55, 63, 58, 74, 87, 51, 65, 66, 53, 61, 56, 77, 55, 72, 68, 89, 63, 49, 70, 64, 56, 63, 63, 94, 41, 55, 56, 63, 49, 63, 81, 69, 74, 59, 59, 73, 71, 64, 64, 63, 76, 62, 77, 71, 78, 64, 75, 53, 46, 67, 62, 69, 65, 52, 56, 64, 56, 61, 90, 65, 63, 70, 60, 74, 90, 69, 63, 69, 61, 79, 72, 68, 79, 77, 59, 61, 81, 48, 85, 62, 61, 52, 63, 56, 63, 59, 83, 68, 73, 53, 65, 68, 85, 69, 68, 61, 92, 64, 66, 62, 56, 51, 49, 64, 66, 50, 74, 57, 63, 59, 57, 76, 51, 52, 61, 66, 80, 68, 75, 52, 100, 52, 52, 75, 62, 66, 67, 62, 54, 74, 57, 61, 52, 78, 64, 60, 95, 61, 69, 56, 73, 54, 66, 65, 68, 67, 72, 51, 133, 69, 59, 105, 74, 60, 55, 61, 68, 70, 50, 61, 65, 71, 60, 90, 77, 67, 57, 53, 61, 69, 70, 65, 65, 55, 58, 75, 73, 83, 94, 68, 65, 73, 73, 58, 57, 41, 70, 74, 65, 73, 127, 53, 45, 67, 63, 79, 61, 63, 96, 103, 85, 86, 71, 60, 80, 55, 51, 59, 64, 62, 69, 58, 51, 48, 64, 80, 67, 82, 47, 61, 60, 56, 96, 59, 70, 64, 46, 66, 57, 46, 49, 96, 49, 70, 72, 68, 86, 64, 53, 44, 59, 51, 100, 65, 66, 47, 82, 42, 79, 51, 83, 64, 64, 73, 68, 93, 69, 54, 85, 71, 55, 59, 74, 51, 50, 60, 63, 54, 58, 78, 60, 54, 60, 92, 72, 95, 91, 71, 67, 52, 66, 74, 74, 64, 37, 58, 82, 73, 55, 81, 76, 73, 70, 83, 83, 59, 67, 50, 60, 73, 69, 92, 78, 55, 58, 66, 74, 60, 76, 96, 56, 72, 63, 56, 67, 76, 71, 48, 75, 55, 56, 59, 61, 66, 63, 50, 67, 50, 76, 69, 64, 58, 106, 65, 65, 86, 66, 82, 69, 63, 60, 80, 60, 73, 65, 54, 49, 70, 62, 76, 61, 57, 76, 68, 75, 69, 50, 55, 49, 68, 60, 78, 74, 44, 51, 71, 93, 89, 51, 59, 75, 70, 71, 67, 73, 51, 47, 62, 93, 59, 82, 76, 75, 72, 65, 64, 51, 59, 67, 71, 51, 54, 85, 60, 61, 65, 57, 42, 84, 47, 56, 48, 61, 64, 73, 56, 61, 68, 61, 48, 54, 59, 50, 71, 61, 51, 53, 75, 50, 72, 68, 73, 50, 62, 50, 53, 68, 64, 48, 64, 81, 58, 69, 76, 59, 72, 69, 59, 57, 46, 66, 56, 82, 79, 58, 56, 47, 86, 59, 79, 76, 51, 57, 69, 81, 59, 101, 66, 52, 58, 138, 52, 61, 86, 65, 75, 78, 64, 48, 73, 65, 64, 82, 53, 67, 49, 61, 81, 50, 88, 54, 57, 61, 72, 68, 66, 66, 61, 62, 75, 55, 73, 59, 58, 77, 62, 52, 48, 58, 72, 59, 60, 49, 62, 61, 75, 51, 69, 63, 74, 60, 54, 67, 65, 56, 91, 62, 79, 70, 127, 65, 63, 72, 71, 66, 82, 75, 93, 52, 46, 66, 62, 62, 70, 68, 52, 75, 65, 62, 74, 82, 58, 63, 69, 60, 71, 64, 87, 39, 60, 66, 51, 66, 78, 58, 63, 53, 54, 63, 53, 60, 74, 72, 55, 76, 61, 76, 51, 75, 57, 55, 63, 60, 59, 63, 57, 102, 75, 78, 82, 56, 90, 70, 83, 70, 65, 46, 58, 73, 61, 84, 43, 60, 68, 61, 54, 82, 84, 59, 67, 57, 66, 55, 57, 40, 62, 61, 72, 52, 76, 59, 72, 66, 51, 68, 64, 71, 86, 60, 90, 58, 59, 63, 65, 60, 77, 57, 75, 48, 70, 70, 65, 67, 52, 82, 64, 84, 72, 61, 62, 61, 65, 88, 62, 60, 63, 59, 61, 60, 74, 70, 88, 47, 72, 57, 86, 82, 73, 53, 37, 50, 55, 78, 59, 53, 68, 64, 58, 87, 90, 81, 78, 61, 59, 63, 56, 65, 63, 62, 65, 67, 67, 85, 80, 56, 111, 65, 59, 70, 83, 49, 65, 67, 58, 62, 61, 77, 68, 54, 66, 72, 43, 67, 91, 53, 68, 68, 58, 59, 69, 56, 63, 53, 70, 61, 61, 80, 59, 76, 56, 65, 74, 59, 63, 61, 67, 52, 90, 98, 68, 65, 53, 75, 79, 59, 60, 72, 62, 47, 78, 61, 61, 60, 76, 66, 59, 58, 53, 57, 57, 82, 61, 55, 63, 82, 66, 63, 57, 73, 69, 116, 114, 55, 69, 87, 67, 72, 61, 57, 65, 57, 62, 70, 59, 69, 83, 34, 49, 76, 64, 63, 55, 61, 62, 77, 67, 54, 58, 59, 88, 68, 65, 35, 71, 71, 89, 57, 73, 81, 67, 59, 52, 67, 76, 57, 53, 61, 53, 69, 69, 64, 70, 65, 61, 60, 73, 70, 54, 74, 95, 68, 55, 55, 74, 84, 64, 49, 61, 55, 62, 79, 59, 63, 91, 93, 61, 56, 70, 68, 38, 79, 55, 46, 66, 54, 65, 48, 74, 73, 88, 61, 65, 68, 87, 94, 96, 50, 76, 59, 48, 85, 71, 68, 58, 82, 78, 63, 58, 82, 55, 64, 74, 78, 55, 62, 79, 79, 59, 58, 54, 66, 50, 57, 76, 69, 49, 57, 86, 64, 74, 67, 64, 55, 50, 75, 67, 57, 53, 74, 55, 81, 47, 57, 65, 66, 72, 65, 61, 81, 56, 66, 68, 78, 66, 58, 113, 68, 41, 73, 56, 74, 65, 57, 71, 52, 57, 49, 72, 73, 68, 64, 76, 89, 68, 80, 63, 58, 62, 52, 82, 75, 96, 72, 53, 57, 53, 59, 72, 65, 64, 55, 48, 78, 63, 51, 57, 54, 84, 85, 58, 54, 60, 81, 43, 90, 65, 61, 69, 57, 50, 56, 43, 57, 72, 89, 96, 52, 55, 75, 87, 69, 56, 60, 66, 65, 68, 69, 57, 56, 61, 75, 60, 76, 107, 59, 50, 117, 48, 64, 59, 67, 59, 65, 58, 82, 78, 64, 66, 57, 66, 99, 75, 53, 44, 53, 48, 62, 44, 52, 52, 56, 153, 60, 59, 57, 43, 65, 55, 69, 79, 64, 54, 50, 74, 67, 57, 80, 61, 43, 65, 66, 62, 74, 89, 63, 65, 62, 58, 62, 73, 70, 66, 85, 49, 56, 51, 60, 165, 65, 74, 79, 99, 58, 65, 59, 49, 80, 94, 128, 83, 62, 86, 65, 53, 58, 66, 81, 46, 50, 75, 75, 59, 79, 73, 73, 62, 60, 67, 67, 65, 63, 44, 66, 79, 62, 46, 37, 66, 61, 65, 79, 66, 40, 71, 66, 62, 66, 67, 76, 72, 46, 49, 65, 102, 48, 70, 47, 69, 68, 49, 79, 71, 53, 86, 59, 74, 96, 58, 71, 54, 72, 73, 94, 52, 65, 45, 62, 59, 66, 57, 85, 67, 90, 57, 73, 85, 62, 48, 72, 56, 59, 58, 81, 50, 68, 58, 60, 56, 58, 63, 57, 64, 63, 57, 102, 57, 70, 66, 73, 61, 58, 68, 68, 45, 60, 71, 49, 57, 63, 68, 64, 68, 60, 62, 61, 53, 44, 59, 64, 70, 66, 76, 62, 65, 61, 60, 53, 67, 56, 54, 72, 94, 90, 59, 79, 58, 61, 62, 67, 74, 63, 61, 64, 67, 57, 68, 55, 49, 43, 56, 82, 79, 76, 91, 134, 59, 46, 72, 66, 77, 75, 78, 41, 62, 61, 65, 66, 75, 72, 62, 65, 57, 57, 57, 52, 51, 52, 57, 37, 72, 67, 57, 62, 58, 70, 103, 73, 68, 76, 71, 62, 69, 74, 61, 58, 67, 77, 71, 54, 56, 73, 63, 70, 72, 76, 62, 57, 61, 57, 87, 60, 54, 66, 84, 75, 58, 56, 48, 74, 57, 54, 71, 49, 78, 72, 55, 59, 65, 67, 68, 62, 47, 80, 76, 65, 108, 57, 56, 53, 65, 87, 43, 68, 72, 65, 57, 70, 48, 81, 68, 59, 66, 66, 63, 65, 58, 53, 66, 61, 57, 97, 52, 77, 61, 64, 63, 61, 51, 56, 75, 60, 61, 57, 62, 68, 65, 65, 59, 85, 52, 56, 70, 62, 66, 59, 69, 85, 65, 100, 71, 50, 135, 69, 64, 56, 63, 77, 71, 71, 54, 69, 99, 93, 78, 59, 68, 55, 70, 68, 58, 55, 82, 68, 79, 61, 58, 57, 87, 50, 61, 54, 50, 70, 59, 72, 51, 39, 66, 65, 58, 80, 60, 78, 67, 76, 70, 76, 63, 103, 51, 67, 69, 63, 57, 96, 67, 56, 74, 64, 45, 74, 66, 59, 65, 54, 81, 55, 66, 56, 64, 70, 62, 66, 123, 56, 71, 65, 49, 54, 48, 58, 57, 65, 64, 60, 54, 55, 63, 63, 57, 83, 60, 60, 64, 51, 40, 54, 57, 85, 53, 59, 66, 65, 64, 61, 60, 57, 76, 62, 52, 86, 72, 58, 62, 89, 77, 58, 65, 99, 59, 48, 69, 62, 62, 68, 64, 53, 61, 74, 57, 58, 69, 52, 78, 84, 86, 74, 66, 68, 61, 61, 52, 55, 54, 62, 57, 56, 55, 62, 58, 60, 63, 71, 78, 69, 63, 67, 60, 79, 68, 56, 79, 87, 68, 80, 54, 49, 62, 69, 58, 113, 71, 63, 137, 51, 64, 62, 74, 70, 58, 79, 60, 59, 62, 61, 69, 90, 80, 55, 57, 62, 62, 76, 81, 50, 67, 84, 58, 77, 62, 54, 58, 60, 137, 70, 70, 70, 58, 73, 71, 62, 74, 68, 72, 70, 91, 61, 54, 60, 67, 74, 52, 66, 66, 63, 122, 70, 66, 63, 57, 62, 75, 56, 45, 66, 60, 57, 52, 70, 61, 85, 62, 65, 96, 74, 63, 57, 46, 78, 74, 73, 60, 50, 96, 60, 55, 65, 66, 67, 54, 107, 79, 69, 84, 68, 74, 75, 69, 74, 67, 54, 58, 70, 66, 64, 60, 61, 70, 66, 52, 80, 59, 57, 64, 58, 74, 68, 66, 74, 73, 67, 92, 67, 53, 98, 78, 67, 85, 55, 48, 73, 58, 57, 69, 61, 63, 48, 76, 66, 87, 76, 47, 96, 67, 63, 61, 63, 57, 59, 53, 47, 66, 66, 59, 62, 72, 58, 53, 46, 45, 66, 70, 84, 73, 79, 50, 66, 72, 80, 83, 69, 80, 70, 59, 53, 68, 66, 68, 88, 63, 82, 62, 83, 70, 61, 65, 72, 69, 64, 92, 56, 67, 62, 63, 60, 69, 59, 71, 72, 78, 67, 64, 59, 51, 75, 60, 61, 57, 99, 70, 66, 78, 78, 58, 75, 79, 72, 60, 73, 67, 57, 73, 53, 75, 60, 70, 90, 92, 79, 65, 64, 71, 62, 72, 59, 65, 94, 67, 78, 68, 62, 53, 87, 66, 63, 84, 69, 72, 99, 58, 55, 79, 72, 81, 109, 55, 73, 66, 61, 72, 75, 61, 63, 70, 66, 80, 75, 61, 47, 58, 65, 59, 67, 50, 64, 61, 56, 63, 86, 69, 66, 61, 59, 72, 73, 60, 63, 64, 53, 90, 49, 47, 88, 59, 91, 61, 74, 63, 57, 76, 55, 117, 59, 56, 61, 66, 61, 52, 53, 72, 72, 77, 58, 53, 73, 64, 69, 59, 59, 61, 60, 109, 72, 91, 49, 54, 64, 62, 65, 53, 44, 46, 57, 55, 73, 68, 57, 66, 49, 61, 67, 73, 65, 60, 43, 65, 61, 67, 60, 61, 58, 57, 60, 53, 81, 56, 57, 71, 68, 51, 69, 86, 79, 58, 62, 61, 80, 45, 62, 74, 64, 66, 56, 84, 58, 47, 86, 66, 100, 64, 79, 65, 80, 56, 54, 106, 53, 65, 63, 54, 76, 66, 69, 74, 62, 67, 65, 75, 68, 58, 57, 66, 63, 65, 71, 53, 52, 72, 95, 64, 61, 66, 71, 90, 70, 74, 62, 73, 58, 63, 78, 51, 58, 57, 79, 66, 57, 73, 72, 64, 65, 63, 50, 53, 82, 96, 76, 63, 47, 60, 56, 68, 122, 122, 54, 84, 57, 57, 62, 71, 71, 53, 69, 55, 68, 58, 55, 62, 71, 51, 53, 62, 64, 66, 88, 81, 70, 54, 77, 52, 51, 70, 67, 67, 111, 71, 59, 71, 90, 68, 70, 62, 64, 75, 76, 58, 79, 48, 61, 75, 78, 65, 57, 69, 83, 76, 74, 130, 66, 66, 59, 54, 71, 58, 66, 72, 72, 71, 45, 89, 44, 111, 62, 63, 72, 54, 93, 70, 52, 68, 46, 88, 60, 88, 66, 83, 58, 58, 58, 63, 63, 58, 60, 61, 57, 63, 48, 52, 46, 57, 74, 55, 74, 67, 62, 62, 64, 61, 71, 39, 62, 85, 57, 64, 58, 76, 73, 62, 63, 58, 57, 93, 60, 62, 55, 70, 73, 71, 66, 52, 63, 79, 63, 67, 53, 61, 56, 64, 43, 66, 70, 63, 71, 72, 61, 59, 59, 65, 68, 69, 62, 76, 71, 46, 60, 54, 65, 42, 59, 82, 63, 60, 53, 65, 102, 59, 68, 53, 53, 59, 77, 64, 102, 55, 72, 81, 52, 69, 58, 73, 72, 69, 60, 75, 76, 62, 51, 63, 51, 59, 96, 58, 63, 48, 64, 54, 63, 70, 95, 58, 73, 71, 51, 44, 60, 65, 61, 68, 55, 63, 66, 61, 51, 71, 63, 48, 55, 47, 143, 75, 100, 86, 59, 40, 66, 85, 48, 60, 63, 61, 58, 63, 68, 72, 73, 60, 73, 63, 70, 68, 75, 68, 67, 60, 71, 64, 65, 64, 61, 77, 57, 70, 57, 75, 62, 61, 50, 113, 73, 90, 70, 67, 71, 88, 47, 60, 73, 60, 121, 70, 96, 109, 68, 41, 68, 72, 50, 76, 67, 65, 64, 57, 60, 70, 59, 49, 63, 45, 55, 64, 50, 80, 62, 75, 77, 59, 93, 63, 61, 56, 55, 70, 60, 58, 75, 66, 65, 75, 68, 52, 60, 55, 53, 61, 72, 60, 58, 54, 56, 82, 60, 72, 49, 63, 67, 67, 52, 52, 57, 72, 65, 62, 69, 69, 68, 59, 85, 88, 69, 74, 74, 66, 53, 68, 73, 63, 59, 71, 80, 70, 58, 65, 51, 58, 39, 64, 69, 64, 63, 73, 59, 58, 52, 82, 60, 61, 61, 68, 68, 59, 55, 58, 46, 49, 90, 75, 58, 66, 66, 69, 62, 57, 51, 62, 69, 66, 66, 80, 49, 78, 54, 64, 86, 64, 72, 78, 63, 49, 82, 47, 54, 48, 49, 63, 74, 70, 66, 67, 92, 53, 64, 56, 76, 83, 84, 78, 57, 67, 66, 53, 59, 56, 64, 59, 86, 57, 47, 65, 61, 63, 78, 47, 66, 90, 71, 85, 66, 48, 62, 87, 58, 63, 53, 64, 64, 59, 80, 48, 52, 72, 78, 59, 58, 56, 50, 51, 62, 66, 90, 65, 54, 72, 74, 54, 67, 54, 67, 75, 56, 65, 65, 74, 54, 64, 69, 101, 65, 43, 80, 61, 58, 61, 64, 44, 61, 78, 77, 59, 84, 74, 51, 59, 55, 71, 69, 71, 65, 79, 65, 68, 49, 77, 59, 72, 63, 75, 58, 65, 57, 66, 63, 82, 88, 66, 53, 91, 58, 74, 61, 60, 100, 61, 65, 70, 64, 60, 58, 53, 54, 59, 62, 94, 61, 70, 71, 49, 59, 64, 64, 86, 61, 61, 65, 56, 73, 66, 67, 64, 72, 64, 60, 70, 60, 59, 68, 46, 70, 69, 66, 82, 80, 54, 63, 73, 56, 75, 65, 54, 62, 55, 66, 82, 66, 54, 64, 59, 47, 61, 50, 59, 65, 68, 45, 82, 69, 81, 66, 66, 81, 70, 67, 65, 76, 66, 62, 65, 65, 57, 60, 72, 61, 117, 62, 83, 60, 85, 72, 58, 66, 66, 59, 65, 55, 72, 60, 64, 64, 72, 63, 61, 60, 49, 68, 57, 73, 68, 51, 66, 63, 60, 59, 76, 53, 55, 73, 55, 65, 60, 62, 43, 62, 68, 65, 65, 65, 60, 60, 77, 81, 51, 43, 65, 79, 60, 66, 67, 72, 57, 67, 56, 72, 76, 130, 56, 60, 117, 54, 61, 54, 61, 58, 59, 70, 59, 45, 57, 64, 82, 57, 72, 60, 77, 82, 59, 83, 46, 69, 36, 60, 64, 60, 71, 76, 78, 59, 61, 65, 64, 66, 58, 101, 50, 71, 68, 84, 74, 66, 75, 44, 69, 66, 61, 58, 61, 74, 64, 53, 65, 62, 69, 61, 57, 68, 67, 57, 60, 59, 93, 67, 71, 75, 59, 85, 63, 92, 54, 73, 71, 63, 54, 52, 61, 64, 57, 70, 50, 51, 63, 55, 69, 55, 77, 46, 42, 81, 50, 77, 78, 62, 99, 63, 56, 60, 61, 97, 59, 52, 74, 49, 81, 36, 58, 58, 57, 54, 58, 70, 67, 68, 66, 84, 72, 74, 61, 70, 67, 67, 62, 58, 72, 78, 62, 59, 49, 62, 53, 74, 80, 64, 61, 65, 61, 57, 74, 75, 60, 59, 84, 60, 70, 71, 61, 69, 66, 66, 70, 64, 59, 74, 77, 77, 85, 51, 63, 58, 84, 110, 82, 56, 88, 70, 68, 58, 60, 66, 78, 75, 71, 93, 70, 67, 72, 70, 74, 71, 70, 76, 87, 60, 46, 56, 47, 60, 80, 50, 80, 75, 82, 76, 54, 66, 56, 51, 66, 75, 61, 73, 81, 63, 51, 54, 59, 57, 60, 60, 62, 73, 61, 71, 66, 73, 70, 49, 94, 62, 67, 55, 61, 67, 60, 60, 53, 57, 53, 69, 61, 80, 84, 73, 57, 53, 57, 62, 74, 62, 80, 75, 50, 70, 53, 54, 78, 56, 55, 60, 56, 61, 63, 79, 76, 88, 71, 64, 62, 91, 48, 75, 73, 69, 54, 76, 51, 54, 65, 53, 68, 89, 78, 81, 63, 87, 67, 57, 58, 51, 73, 70, 91, 54, 55, 76, 57, 56, 96, 54, 60, 75, 72, 45, 67, 69, 96, 60, 49, 73, 70, 59, 57, 70, 72, 72, 73, 67, 76, 68, 57, 56, 61, 70, 69, 70, 50, 63, 87, 57, 74, 66, 58, 88, 82, 70, 68, 58, 79, 54, 77, 54, 72, 46, 61, 61, 70, 76, 64, 58, 67, 66, 76, 63, 63, 59, 72, 66, 85, 59, 88, 60, 56, 70, 128, 67, 55, 77, 52, 71, 128, 56, 59, 64, 49, 70, 63, 66, 59, 58, 69, 59, 52, 55, 51, 57, 79, 62, 52, 67, 65, 72, 60, 70, 61, 52, 85, 67, 63, 63, 59, 56, 62, 82, 59, 53, 60, 56, 61, 64, 68, 68, 55, 72, 59, 68, 68, 65, 59, 77, 76, 58, 93, 45, 87, 61, 61, 57, 48, 105, 51, 68, 86, 84, 64, 62, 63, 55, 64, 62, 49, 63, 65, 60, 78, 122, 71, 96, 52, 58, 57, 122, 65, 54, 63, 70, 61, 61, 41, 55, 68, 63, 73, 66, 67, 62, 72, 58, 58, 62, 61, 61, 59, 63, 64, 80, 56, 78, 76, 69, 39, 77, 62, 64, 80, 71, 40, 63, 67, 43, 56, 106, 68, 83, 88, 53, 68, 58, 74, 60, 55, 75, 70, 74, 52, 54, 65, 59, 58, 65, 66, 74, 53, 50, 65, 93, 60, 55, 69, 72, 53, 63, 63, 97, 64, 63, 68, 64, 83, 45, 58, 112, 56, 48, 50, 69, 73, 61, 74, 63, 50, 68, 57, 60, 73, 49, 68, 67, 49, 63, 62, 85, 70, 62, 56, 61, 81, 65, 49, 84, 55, 62, 66, 50, 60, 74, 69, 72, 62, 61, 74, 57, 53, 58, 53, 56, 50, 59, 85, 58, 57, 77, 49, 60, 58, 51, 64, 91, 94, 66, 98, 56, 79, 50, 65, 56, 69, 58, 68, 54, 66, 64, 53, 57, 65, 59, 47, 64, 54, 56, 72, 59, 56, 65, 57, 70, 67, 79, 69, 70, 64, 49, 77, 49, 65, 69, 134, 54, 62, 84, 61, 63, 76, 64, 66, 55, 78, 65, 77, 72, 59, 61, 45, 55, 61, 49, 42, 50, 63, 69, 60, 76, 74, 55, 53, 57, 60, 56, 79, 40, 73, 72, 64, 63, 61, 73, 78, 104, 67, 66, 80, 67, 91, 66, 60, 85, 93, 68, 55, 46, 63, 61, 67, 54, 67, 57, 55, 74, 53, 71, 79, 69, 62, 62, 49, 45, 42, 72, 56, 58, 38, 41, 70, 82, 56, 58, 68, 82, 55, 79, 71, 52, 58, 62, 75, 56, 56, 79, 59, 52, 65, 63, 66, 77, 61, 56, 51, 63, 77, 62, 69, 56, 56, 59, 65, 51, 75, 52, 62, 67, 56, 64, 65, 83, 83, 63, 73, 54, 58, 51, 56, 58, 93, 53, 61, 55, 72, 52, 71, 62, 54, 70, 64, 53, 83, 51, 87, 90, 89, 52, 63, 47, 70, 120, 80, 59, 51, 102, 52, 69, 54, 109, 84, 70, 92, 70, 69, 61, 63, 88, 78, 41, 75, 45, 54, 72, 49, 46, 44, 77, 69, 69, 84, 69, 52, 109, 41, 55, 80, 52, 52, 105, 67, 58, 51, 81, 66, 60, 69, 50, 60, 77, 84, 44, 84, 70, 62, 103, 91, 47, 65, 69, 67, 94, 46, 55, 104, 66, 48, 56, 69, 57, 82, 59, 73, 61, 85, 80, 63, 57, 75, 62, 75, 61, 125, 103, 61, 70, 58, 47, 46, 91, 50, 62, 64, 51, 94, 69, 63, 61, 69, 58, 75, 67, 82, 64, 119, 75, 60, 86, 91, 62, 45, 40, 63, 50, 60, 52, 68, 63, 60, 85, 51, 61, 60, 59, 60, 76, 57, 63, 63, 48, 58, 44, 59, 44, 66, 102, 84, 69, 52, 61, 75, 114, 40, 44, 56, 72, 80, 61, 68, 49, 61, 73, 59, 73, 52, 64, 82, 65, 58, 65, 51, 67, 58, 65, 71, 68, 75, 61, 82, 78, 77, 68, 61, 61, 69, 49, 53, 55, 96, 72, 62, 63, 75, 63, 52, 62, 83, 84, 72, 82, 54, 51, 52, 51, 52, 64, 70, 66, 56, 57, 71, 57, 55, 59, 67, 68, 72, 60, 61, 54, 57, 55, 69, 61, 54, 132, 62, 77, 74, 65, 54, 60, 63, 71, 71, 53, 45, 70, 86, 68, 61, 99, 71, 51, 53, 63, 68, 49, 46, 54, 57, 54, 60, 90, 70, 92, 57, 63, 61, 63, 73, 53, 51, 64, 58, 66, 39, 100, 75, 155, 68, 63, 87, 62, 58, 79, 67, 62, 68, 58, 61, 66, 56, 60, 41, 66, 82, 65, 77, 29, 92, 64, 67, 55, 55, 71, 61, 71, 52, 82, 47, 55, 80, 47, 52, 50, 50, 78, 95, 65, 73, 77, 59, 70, 68, 61, 60, 98, 63, 63, 66, 39, 69, 38, 78, 71, 55, 88, 61, 75, 68, 58, 71, 39, 62, 68, 87, 72, 95, 73, 60, 60, 41, 42, 98, 60, 76, 50, 58, 56, 52, 92, 69, 89, 51, 64, 78, 60, 49, 91, 56, 120, 46, 72, 102, 50, 66, 72, 73, 50, 62, 75, 67, 52, 73, 62, 50, 58, 79, 70, 53, 62, 55, 69, 61, 62, 65, 57, 62, 55, 60, 73, 56, 57, 67, 67, 57, 79, 82, 59, 83, 57, 59, 78, 60, 65, 57, 73, 56, 68, 65, 54, 60, 81, 87, 77, 72, 69, 74, 59, 73, 63, 58, 54, 77, 59, 58, 65, 73, 57, 45, 55, 64, 112, 67, 76, 75, 79, 80, 62, 91, 58, 74, 54, 76, 66, 39, 69, 82, 99, 58, 59, 62, 113, 62, 48, 70, 81, 54, 61, 57, 54, 103, 66, 71, 56, 61, 50, 67, 67, 57, 68, 60, 59, 54, 62, 45, 102, 51, 54, 55, 61, 54, 47, 82, 63, 64, 58, 54, 54, 61, 63, 83, 62, 81, 62, 42, 92, 68, 57, 39, 65, 69, 61, 56, 72, 59, 51, 70, 72, 50, 76, 71, 81, 49, 84, 84, 53, 96, 45, 51, 52, 70, 59, 56, 62, 82, 76, 60, 126, 37, 97, 45, 69, 70, 77, 64, 68, 51, 62, 62, 45, 61, 46, 63, 57, 69, 71, 54, 60, 68, 48, 103, 84, 85, 76, 52, 77, 89, 58, 54, 57, 89, 48, 56, 45, 69, 79, 117, 54, 51, 85, 68, 60, 61, 113, 66, 51, 89, 80, 38, 61, 44, 68, 52, 68, 54, 59, 71, 51, 72, 69, 65, 59, 66, 68, 76, 64, 67, 45, 72, 64, 62, 58, 59, 44, 66, 69, 75, 74, 38, 66, 61, 73, 67, 59, 75, 63, 53, 57, 86, 59, 53, 58, 60, 98, 156, 73, 50, 64, 64, 60, 73, 51, 77, 78, 63, 60, 66, 66, 73, 69, 56, 55, 73, 59, 56, 45, 48, 71, 67, 53, 64, 62, 56, 69, 57, 75, 54, 86, 59, 61, 40, 62, 67, 76, 53, 87, 83, 50, 46, 60, 62, 54, 92, 44, 55, 59, 49, 60, 42, 56, 81, 70, 56, 82, 71, 55, 63, 60, 73, 84, 93, 59, 82, 44, 73, 41, 54, 78, 69, 49, 70, 57, 53, 82, 69, 65, 84, 104, 73, 72, 57, 83, 59, 48, 53, 87, 64, 73, 71, 56, 61, 58, 64, 74, 60, 73, 45, 62, 55, 55, 60, 61, 41, 68, 56, 69, 68, 67, 85, 116, 57, 67, 81, 74, 86, 69, 71, 45, 95, 55, 70, 70, 81, 66, 58, 66, 51, 65, 70, 52, 84, 69, 52, 50, 56, 53, 54, 70, 64, 76, 71, 67, 53, 70, 55, 72, 82, 57, 78, 91, 71, 46, 52, 67, 81, 56, 48, 61, 68, 54, 56, 71, 86, 97, 49, 63, 52, 42, 75, 64, 88, 67, 67, 64, 70, 40, 63, 60, 45, 69, 59, 65, 69, 65, 54, 66, 64, 59, 69, 40, 64, 60, 51, 50, 74, 81, 96, 100, 72, 64, 79, 68, 61, 44, 43, 72, 66, 78, 50, 65, 72, 58, 62, 62, 103, 84, 45, 70, 57, 116, 63, 66, 74, 70, 69, 149, 69, 63, 66, 90, 61, 61, 65, 89, 74, 46, 36, 76, 58, 62, 59, 52, 55, 64, 83, 77, 65, 75, 66, 76, 60, 55, 56, 50, 93, 55, 74, 70, 71, 94, 73, 78, 81, 48, 74, 58, 82, 78, 58, 67, 55, 39, 65, 71, 75, 72, 60, 108, 60, 66, 72, 61, 62, 64, 66, 67, 61, 62, 71, 68, 49, 65, 67, 64, 61, 62, 40, 68, 58, 113, 59, 53, 61, 34, 78, 68, 52, 78, 105, 50, 78, 94, 71, 77, 100, 60, 50, 54, 59, 62, 98, 69, 74, 77, 52, 64, 53, 87, 68, 54, 77, 59, 60, 65, 63, 65, 70, 52, 61, 59, 67, 68, 50, 67, 58, 66, 56, 57, 57, 54, 89, 78, 58, 73, 59, 65, 76, 55, 62, 60, 68, 55, 70, 95, 55, 53, 96, 48, 64, 82, 49, 97, 56, 49, 72, 80, 53, 45, 70, 76, 86, 56, 62, 80, 55, 99, 78, 75, 55, 67, 81, 83, 98, 69, 48, 66, 56, 69, 57, 60, 106, 71, 69, 42, 51, 85, 64, 46, 71, 89, 57, 73, 55, 67, 87, 56, 64, 83, 90, 60, 69, 59, 54, 57, 72, 52, 59, 62, 45, 54, 62, 70, 73, 63, 42, 61, 71, 72, 62, 69, 73, 68, 74, 96, 67, 84, 66, 55, 70, 49, 72, 66, 85, 59, 59, 81, 97, 60, 59, 62, 61, 64, 55, 61, 65, 58, 52, 65, 66, 81, 60, 65, 78, 75, 68, 65, 57, 70, 92, 76, 61, 77, 73, 69, 72, 65, 54, 57, 61, 72, 78, 71, 60, 53, 86, 75, 70, 71, 88, 79, 57, 76, 67, 52, 59, 50, 64, 70, 62, 52, 66, 77, 76, 51, 77, 63, 49, 56, 73, 87, 69, 65, 82, 52, 73, 59, 85, 49, 54, 78, 69, 66, 61, 55, 86, 52, 69, 103, 65, 77, 74, 75, 76, 71, 68, 48, 41, 70, 56, 63, 66, 76, 58, 65, 74, 54, 85, 68, 40, 67, 73, 50, 48, 78, 69, 57, 58, 50, 55, 64, 18, 77, 59, 72, 74, 83, 54, 55, 44, 45, 90, 69, 78, 70, 47, 73, 76, 52, 70, 69, 73, 67, 58, 54, 47, 74, 77, 88, 57, 65, 48, 54, 81, 77, 75, 61, 50, 78, 75, 63, 73, 65, 56, 69, 78, 59, 53, 90, 77, 46, 59, 67, 61, 62, 43, 90, 48, 67, 53, 56, 70, 63, 53, 72, 29, 51, 60, 76, 81, 87, 61, 68, 80, 65, 64, 60, 102, 73, 43, 54, 58, 71, 53, 101, 59, 100, 56, 77, 48, 54, 72, 54, 62, 73, 61, 81, 84, 86, 56, 51, 56, 72, 61, 74, 62, 70, 53, 52, 49, 55, 59, 54, 72, 74, 67, 56, 59, 66, 74, 84, 83, 76, 65, 83, 93, 77, 74, 61, 46, 63, 71, 65, 65, 56, 47, 66, 56, 70, 72, 60, 46, 66, 66, 119, 57, 72, 53, 86, 73, 54, 73, 57, 58, 93, 78, 63, 92, 60, 78, 66, 76, 72, 82, 64, 76, 58, 40, 58, 91, 83, 76, 69, 62, 63, 57, 66, 95, 84, 60, 66, 50, 80, 56, 54, 65, 70, 49, 74, 37, 119, 66, 89, 68, 72, 46, 85, 102, 50, 66, 73, 88, 75, 69, 65, 67, 49, 65, 68, 70, 61, 63, 63, 49, 76, 69, 67, 78, 58, 48, 60, 60, 35, 71, 69, 67, 79, 62, 73, 75, 63, 43, 57, 55, 56, 52, 67, 81, 66, 63, 68, 72, 48, 66, 67, 71, 70, 81, 52, 63, 70, 81, 84, 66, 74, 51, 92, 61, 78, 48, 58, 55, 82, 52, 52, 65, 63, 61, 65, 77, 64, 71, 80, 39, 68, 51, 44, 72, 75, 56, 39, 31, 82, 69, 28, 49, 67, 58, 54, 53, 56, 79, 49, 70, 72, 80, 54, 73, 70, 64, 59, 75, 81, 60, 87, 85, 56, 59, 57, 84, 62, 57, 53, 85, 82, 66, 63, 66, 86, 70, 66, 70, 55, 52, 40, 70, 54, 90, 72, 60, 66, 66, 60, 74, 57, 91, 71, 56, 79, 82, 40, 87, 57, 58, 60, 49, 79, 62, 98, 55, 79, 89, 62, 46, 73, 65, 69, 68, 56, 64, 63, 87, 67, 50, 74, 61, 38, 61, 70, 70, 75, 45, 97, 75, 60, 72, 68, 60, 71, 63, 68, 56, 61, 58, 72, 69, 68, 59, 71, 37, 66, 72, 63, 50, 66, 72, 56, 68, 46, 75, 68, 51, 71, 59, 61, 50, 61, 49, 78, 71, 57, 41, 75, 53, 77, 68, 60, 38, 87, 60, 105, 67, 72, 106, 43, 50, 62, 50, 65, 39, 74, 69, 70, 80, 66, 71, 45, 57, 48, 64, 60, 66, 70, 53, 49, 39, 60, 60, 62, 62, 44, 58, 56, 42, 57, 66, 81, 57, 64, 70, 74, 83, 63, 84, 64, 52, 49, 70, 65, 74, 59, 93, 63, 50, 65, 53, 59, 72, 61, 76, 61, 92, 58, 66, 57, 74, 68, 54, 71, 80, 56, 66, 92, 65, 56, 61, 71, 71, 67, 77, 79, 45, 70, 58, 90, 75, 66, 60, 69, 79, 47, 68, 53, 74, 98, 59, 78, 54, 82, 69, 62, 50, 59, 87, 74, 54, 81, 59, 55, 178, 65, 63, 57, 63, 70, 74, 49, 75, 62, 49, 61, 64, 57, 70, 103, 74, 46, 53, 71, 59, 57, 102, 50, 76, 61, 35, 55, 62, 96, 51, 63, 53, 64, 71, 89, 152, 66, 51, 80, 107, 58, 63, 50, 47, 63, 50, 92, 73, 63, 66, 72, 66, 49, 61, 59, 63, 76, 52, 110, 54, 56, 82, 63, 69, 61, 60, 100, 61, 61, 74, 65, 65, 61, 56, 78, 54, 68, 59, 65, 73, 55, 51, 65, 90, 70, 66, 68, 77, 82, 62, 64, 66, 62, 72, 90, 72, 66, 72, 61, 76, 64, 72, 66, 55, 77, 72, 61, 63, 54, 67, 123, 78, 69, 56, 86, 63, 62, 77, 55, 74, 68, 67, 64, 56, 96, 90, 64, 65, 51, 53, 51, 81, 79, 54, 79, 62, 50, 100, 66, 57, 77, 53, 89, 73, 61, 69, 69, 66, 56, 73, 77, 62, 79, 73, 57, 63, 64, 57, 55, 60, 55, 61, 61, 72, 56, 68, 47, 70, 60, 67, 68, 58, 68, 58, 64, 53, 83, 48, 56, 79, 114, 56, 80, 80, 61, 73, 43, 84, 76, 65, 57, 44, 82, 78, 71, 61, 66, 51, 70, 63, 50, 49, 107, 58, 67, 68, 62, 78, 64, 48, 56, 69, 59, 62, 85, 49, 93, 52, 69, 66, 49, 68, 62, 59, 55, 60, 67, 69, 63, 68, 63, 53, 61, 153, 54, 71, 53, 53, 91, 74, 76, 71, 67, 64, 61, 70, 53, 67, 62, 51, 66, 69, 56, 72, 68, 65, 67, 90, 72, 120, 65, 54, 66, 64, 69, 60, 47, 75, 66, 57, 63, 63, 69, 57, 79, 61, 66, 57, 66, 60, 64, 64, 68, 73, 63, 62, 67, 67, 75, 52, 57, 64, 61, 45, 59, 59, 108, 70, 63, 58, 96, 66, 59, 66, 54, 71, 53, 60, 69, 62, 77, 95, 68, 58, 58, 57, 60, 83, 59, 67, 51, 58, 66, 64, 54, 55, 61, 96, 63, 66, 69, 56, 64, 61, 66, 57, 80, 63, 61, 87, 64, 61, 75, 83, 44, 88, 93, 58, 51, 60, 61, 63, 53, 63, 90, 84, 63, 75, 60, 60, 64, 52, 67, 70, 66, 73, 67, 63, 68, 70, 79, 60, 64, 54, 63, 71, 67, 75, 84, 51, 62, 65, 61, 63, 83, 73, 69, 64, 48, 77, 55, 50, 72, 57, 85, 62, 70, 50, 56, 103, 60, 66, 66, 70, 53, 108, 72, 61, 72, 54, 65, 70, 65, 70, 62, 50, 61, 60, 68, 92, 67, 55, 81, 63, 70, 66, 76, 67, 92, 69, 58, 67, 66, 65, 60, 78, 73, 54, 51, 78, 59, 47, 65, 73, 61, 59, 57, 66, 109, 54, 56, 59, 99, 60, 63, 64, 71, 66, 67, 66, 40, 61, 90, 41, 55, 50, 57, 66, 56, 70, 61, 97, 62, 87, 74, 83, 68, 60, 57, 86, 60, 79, 58, 68, 69, 61, 73, 68, 61, 47, 65, 72, 56, 60, 75, 53, 61, 48, 62, 71, 68, 58, 68, 66, 50, 66, 67, 62, 78, 59, 69, 53, 54, 65, 56, 64, 60, 80, 70, 60, 60, 53, 70, 93, 58, 54, 104, 51, 58, 50, 57, 51, 72, 67, 59, 51, 63, 47, 96, 64, 82, 81, 67, 67, 61, 57, 75, 59, 65, 71, 67, 67, 54, 58, 64, 75, 63, 60, 64, 47, 66, 61, 56, 78, 91, 64, 41, 62, 47, 57, 66, 74, 74, 55, 74, 61, 53, 64, 56, 84, 72, 75, 65, 75, 62, 79, 81, 68, 71, 91, 67, 56, 76, 81, 75, 60, 69, 56, 54, 77, 60, 80, 56, 65, 61, 51, 86, 62, 64, 110, 51, 65, 68, 62, 61, 63, 60, 57, 96, 84, 65, 62, 89, 52, 74, 38, 82, 55, 47, 57, 70, 61, 64, 53, 58, 49, 59, 58, 89, 60, 62, 71, 67, 53, 79, 89, 77, 55, 56, 68, 55, 85, 50, 61, 71, 57, 55, 60, 77, 98, 65, 64, 64, 63, 68, 74, 62, 65, 60, 75, 69, 58, 68, 56, 68, 76, 54, 54, 59, 76, 54, 63, 62, 76, 74, 89, 66, 48, 76, 51, 78, 63, 77, 56, 69, 94, 63, 65, 58, 45, 59, 101, 73, 73, 72, 55, 59, 64, 79, 59, 57, 47, 88, 79, 65, 64, 75, 70, 67, 70, 119, 63, 61, 62, 67, 56, 53, 58, 53, 50, 56, 63, 64, 58, 66, 59, 69, 54, 62, 72, 74, 73, 58, 58, 84, 59, 69, 60, 77, 63, 69, 63, 56, 97, 53, 63, 57, 65, 64, 57, 59, 66, 56, 59, 67, 56, 54, 64, 58, 74, 67, 76, 65, 50, 67, 57, 74, 46, 55, 65, 72, 58, 47, 58, 55, 103, 72, 64, 64, 80, 69, 68, 54, 42, 70, 63, 70, 100, 74, 69, 59, 75, 96, 56, 76, 54, 62, 74, 81, 75, 72, 74, 83, 59, 98, 79, 71, 48, 40, 73, 61, 71, 76, 90, 67, 65, 62, 65, 58, 87, 59, 78, 63, 74, 51, 61, 62, 63, 57, 68, 61, 71, 50, 56, 60, 54, 73, 57, 54, 100, 65, 66, 59, 55, 69, 77, 60, 55, 61, 86, 71, 57, 74, 50, 54, 62, 85, 103, 61, 69, 37, 65, 86, 61, 68, 55, 50, 67, 50, 63, 78, 63, 54, 71, 74, 66, 57, 59, 79, 53, 61, 58, 65, 68, 68, 75, 74, 55, 55, 51, 113, 64, 69, 71, 58, 75, 66, 75, 62, 60, 40, 70, 65, 58, 34, 53, 49, 75, 56, 61, 58, 61, 59, 63, 57, 52, 61, 70, 53, 49, 58, 61, 62, 55, 51, 60, 44, 63, 61, 72, 65, 59, 62, 90, 52, 74, 65, 73, 54, 59, 78, 71, 54, 59, 61, 68, 62, 60, 69, 58, 77, 62, 75, 63, 62, 54, 59, 82, 63, 64, 63, 56, 56, 109, 55, 63, 72, 82, 56, 59, 73, 44, 84, 59, 68, 60, 63, 94, 93, 52, 59, 70, 68, 52, 54, 74, 48, 49, 80, 82, 55, 74, 51, 56, 86, 86, 76, 68, 111, 70, 62, 53, 42, 80, 53, 54, 73, 79, 65, 82, 62, 63, 55, 83, 52, 55, 76, 63, 69, 55, 65, 74, 60, 69, 72, 63, 63, 51, 75, 51, 46, 64, 56, 46, 54, 42, 57, 73, 46, 97, 53, 65, 63, 53, 69, 71, 89, 76, 51, 77, 48, 65, 68, 77, 78, 89, 44, 67, 76, 56, 67, 58, 69, 62, 51, 60, 41, 58, 60, 69, 74, 60, 69, 89, 53, 65, 63, 64, 63, 68, 54, 72, 73, 91, 61, 57, 65, 59, 74, 75, 73, 71, 59, 82, 56, 60, 81, 70, 54, 78, 58, 65, 75, 59, 75, 60, 64, 73, 49, 71, 76, 61, 68, 92, 61, 70, 75, 61, 62, 37, 56, 65, 68, 63, 74, 78, 80, 68, 58, 56, 61, 80, 65, 65, 77, 51, 82, 70, 55, 62, 68, 84, 57, 65, 49, 58, 67, 52, 47, 84, 57, 86, 52, 51, 69, 69, 60, 61, 60, 59, 85, 53, 57, 67, 68, 81, 74, 83, 59, 74, 62, 70, 45, 55, 57, 71, 54, 67, 59, 71, 102, 59, 58, 70, 101, 70, 56, 78, 68, 71, 87, 60, 70, 82, 42, 56, 66, 68, 51, 90, 75, 70, 52, 69, 50, 40, 89, 64, 56, 58, 85, 38, 86, 60, 61, 72, 77, 43, 66, 128, 81, 70, 61, 48, 68, 82, 66, 55, 77, 61, 73, 58, 76, 59, 65, 75, 41, 63, 73, 60, 79, 64, 76, 55, 62, 69, 64, 70, 50, 54, 62, 59, 73, 72, 59, 91, 62, 65, 54, 68, 51, 53, 75, 71, 61, 64, 68, 81, 69, 67, 72, 94, 46, 59, 66, 47, 88, 53, 53, 65, 68, 83, 57, 74, 69, 58, 57, 69, 65, 73, 46, 58, 60, 53, 83, 63, 68, 92, 64, 57, 71, 68, 78, 86, 48, 72, 71, 48, 56, 44, 71, 75, 67, 67, 53, 71, 58, 63, 62, 75, 72, 50, 65, 68, 74, 92, 64, 58, 60, 56, 80, 60, 63, 92, 48, 67, 56, 68, 63, 63, 45, 58, 66, 59, 85, 62, 74, 70, 71, 101, 52, 60, 64, 67, 66, 64, 75, 68, 45, 65, 80, 91, 98, 49, 39, 61, 70, 52, 82, 80, 99, 71, 70, 67, 61, 70, 67, 77, 71, 61, 64, 64, 69, 64, 78, 65, 67, 43, 59, 54, 70, 65, 69, 72, 58, 76, 42, 67, 51, 56, 71, 65, 60, 80, 74, 55, 58, 64, 52, 66, 84, 51, 102, 57, 49, 59, 50, 85, 74, 78, 51, 69, 65, 74, 64, 69, 54, 62, 69, 53, 46, 72, 73, 87, 49, 57, 68, 64, 66, 59, 58, 83, 86, 49, 59, 82, 63, 59, 53, 86, 64, 64, 50, 112, 64, 65, 82, 56, 75, 61, 67, 57, 78, 66, 62, 67, 104, 61, 58, 64, 86, 52, 82, 64, 90, 68, 65, 53, 70, 90, 74, 65, 75, 55, 57, 71, 52, 101, 66, 68, 81, 61, 53, 90, 69, 68, 60, 61, 79, 66, 69, 62, 48, 48, 41, 67, 63, 97, 83, 54, 73, 63, 54, 56, 67, 73, 41, 65, 41, 52, 81, 70, 70, 87, 52, 60, 44, 55, 47, 75, 64, 59, 49, 67, 77, 86, 84, 60, 65, 53, 52, 48, 56, 53, 59, 59, 89, 77, 67, 62, 56, 70, 56, 60, 95, 40, 60, 67, 50, 69, 87, 93, 73, 78, 99, 70, 62, 78, 57, 58, 75, 82, 82, 49, 67, 104, 65, 72, 56, 49, 65, 72, 78, 52, 57, 50, 63, 66, 86, 50, 70, 72, 61, 56, 66, 93, 66, 69, 58, 68, 77, 54, 61, 59, 54, 63, 58, 88, 53, 61, 67, 64, 49, 58, 73, 73, 76, 85, 52, 73, 45, 46, 43, 78, 68, 57, 72, 50, 52, 77, 68, 44, 70, 76, 71, 59, 61, 56, 46, 50, 74, 87, 61, 62, 62, 68, 57, 83, 59, 66, 57, 54, 64, 70, 60, 56, 48, 58, 84, 64, 61, 70, 36, 80, 60, 73, 70, 76, 61, 61, 72, 60, 97, 64, 72, 67, 68, 56, 77, 57, 51, 77, 65, 70, 44, 60, 71, 69, 75, 100, 62, 68, 60, 60, 44, 75, 65, 60, 65, 58, 50, 73, 61, 71, 65, 78, 71, 84, 62, 101, 49, 69, 66, 57, 72, 77, 77, 59, 47, 85, 60, 65, 50, 70, 67, 63, 80, 67, 89, 65, 90, 58, 62, 63, 99, 66, 59, 84, 69, 60, 80, 43, 62, 61, 66, 67, 87, 49, 73, 61, 64, 70, 60, 60, 58, 59, 62, 75, 45, 75, 75, 64, 77, 55, 68, 64, 60, 67, 75, 62, 82, 72, 78, 60, 62, 77, 54, 68, 75, 95, 38, 60, 65, 71, 42, 52, 72, 63, 90, 57, 38, 57, 77, 59, 82, 74, 69, 61, 66, 62, 81, 62, 61, 42, 60, 55, 92, 59, 91, 70, 45, 88, 64, 44, 60, 79, 97, 79, 62, 64, 46, 73, 91, 49, 50, 71, 64, 40, 59, 52, 72, 55, 71, 65, 74, 57, 46, 75, 46, 59, 61, 55, 52, 64, 68, 60, 53, 90, 58, 61, 54, 61, 66, 72, 57, 71, 68, 102, 62, 56, 56, 64, 94, 61, 48, 84, 46, 66, 69, 68, 83, 79, 86, 72, 71, 57, 65, 77, 75, 48, 89, 63, 71, 56, 50, 94, 106, 77, 74, 68, 48, 54, 59, 86, 73, 52, 53, 71, 76, 62, 58, 67, 56, 86, 63, 91, 56, 70, 61, 76, 61, 67, 62, 47, 90, 74, 55, 60, 63, 86, 43, 68, 83, 77, 63, 61, 59, 60, 56, 69, 61, 77, 52, 61, 65, 76, 68, 62, 76, 74, 70, 47, 64, 57, 64, 59, 53, 59, 80, 105, 67, 70, 81, 54, 78, 58, 69, 63, 80, 62, 69, 88, 66, 82, 77, 73, 53, 61, 82, 70, 74, 90, 58, 48, 86, 54, 73, 47, 55, 79, 60, 71, 69, 51, 85, 60, 57, 104, 63, 45, 48, 61, 57, 66, 93, 52, 90, 50, 75, 75, 61, 48, 75, 86, 67, 59, 66, 64, 81, 68, 52, 43, 44, 85, 53, 54, 72, 69, 77, 83, 83, 77, 66, 73, 53, 72, 79, 53, 68, 44, 55, 88, 86, 66, 58, 66, 61, 43, 94, 74, 58, 69, 74, 72, 53, 68, 62, 71, 68, 56, 75, 67, 73, 53, 54, 75, 82, 77, 73, 77, 66, 79, 67, 89, 79, 72, 73, 67, 41, 61, 65, 55, 71, 63, 61, 72, 57, 62, 33, 48, 51, 56, 75, 53, 69, 62, 47, 57, 73, 62, 71, 52, 67, 57, 44, 74, 46, 53, 67, 81, 64, 58, 65, 48, 54, 63, 70, 99, 49, 63, 59, 62, 90, 52, 83, 69, 57, 88, 59, 69, 106, 85, 65, 94, 61, 66, 65, 52, 56, 63, 65, 73, 61, 62, 72, 85, 58, 53, 65, 66, 72, 60, 82, 54, 61, 75, 60, 50, 63, 62, 66, 63, 52, 66, 50, 56, 77, 89, 73, 54, 69, 60, 66, 56, 54, 76, 74, 59, 58, 63, 91, 67, 77, 64, 65, 61, 61, 70, 63, 59, 69, 67, 48, 72, 51, 59, 54, 64, 67, 58, 69, 59, 66, 63, 59, 104, 54, 62, 54, 71, 64, 111, 77, 83, 65, 58, 46, 69, 63, 47, 48, 55, 85, 66, 77, 75, 69, 59, 69, 56, 59, 79, 45, 66, 65, 51, 45, 67, 66, 51, 77, 72, 65, 66, 72, 108, 60, 74, 57, 70, 46, 65, 51, 117, 63, 83, 55, 61, 75, 80, 70, 50, 74, 56, 51, 64, 66, 64, 59, 68, 52, 68, 63, 72, 48, 83, 56, 78, 68, 56, 51, 51, 54, 70, 66, 48, 69, 72, 77, 50, 56, 65, 68, 57, 63, 60, 78, 62, 60, 66, 60, 66, 63, 65, 85, 86, 64, 70, 69, 61, 78, 62, 63, 66, 88, 70, 54, 67, 70, 88, 62, 87, 75, 66, 50, 57, 59, 51, 74, 48, 56, 56, 67, 74, 69, 61, 84, 80, 65, 56, 60, 55, 68, 54, 67, 67, 73, 58, 65, 63, 59, 61, 76, 77, 60, 62, 73, 59, 63, 47, 57, 92, 61, 70, 104, 54, 75, 85, 66, 63, 80, 71, 38, 56, 55, 66, 60, 65, 58, 56, 63, 69, 60, 83, 56, 70, 57, 67, 58, 53, 65, 54, 43, 59, 71, 58, 96, 52, 74, 57, 65, 68, 42, 78, 61, 91, 84, 48, 69, 57, 67, 59, 62, 55, 78, 53, 99, 68, 108, 68, 60, 56, 59, 64, 75, 80, 53, 66, 48, 58, 95, 74, 96, 61, 83, 77, 55, 70, 51, 48, 64, 54, 63, 87, 87, 78, 67, 74, 77, 63, 78, 77, 59, 98, 65, 78, 89, 41, 66, 63, 74, 64, 79, 59, 53, 59, 88, 87, 73, 66, 77, 66, 63, 66, 66, 64, 92, 52, 63, 59, 72, 66, 52, 79, 61, 76, 53, 109, 57, 58, 57, 80, 75, 73, 53, 59, 42, 63, 50, 64, 79, 53, 66, 74, 59, 52, 62, 61, 56, 65, 54, 49, 66, 67, 80, 56, 63, 54, 50, 70, 77, 83, 75, 75, 67, 61, 52, 63, 61, 63, 64, 56, 63, 57, 63, 73, 50, 55, 71, 73, 66, 64, 63, 63, 62, 62, 60, 70, 54, 62, 57, 57, 63, 74, 58, 62, 57, 76, 63, 62, 62, 75, 44, 67, 106, 62, 57, 62, 69, 44, 57, 80, 67, 70, 72, 59, 57, 62, 57, 62, 70, 54, 56, 48, 66, 66, 66, 69, 86, 81, 51, 62, 82, 65, 115, 89, 65, 75, 97, 92, 83, 62, 60, 79, 55, 84, 52, 54, 64, 76, 62, 76, 67, 51, 135, 60, 71, 70, 86, 72, 58, 73, 44, 69, 48, 63, 57, 59, 65, 121, 64, 82, 42, 48, 83, 66, 70, 73, 68, 66, 85, 46, 60, 60, 57, 65, 62, 74, 52, 59, 75, 67, 73, 65, 60, 74, 56, 60, 57, 65, 69, 71, 49, 85, 46, 85, 54, 52, 67, 56, 75, 46, 66, 48, 83, 54, 58, 71, 79, 87, 67, 50, 60, 65, 62, 63, 83, 65, 72, 54, 65, 50, 76, 58, 79, 61, 82, 52, 62, 79, 56, 83, 78, 114, 62, 67, 74, 72, 82, 64, 44, 64, 89, 51, 80, 51, 50, 60, 49, 48, 63, 61, 74, 59, 97, 65, 64, 67, 67, 84, 45, 52, 46, 76, 59, 64, 85, 66, 118, 74, 63, 64, 74, 73, 61, 103, 74, 57, 55, 88, 68, 67, 67, 55, 52, 56, 70, 67, 53, 60, 86, 71, 68, 66, 70, 63, 48, 67, 77, 64, 65, 83, 69, 51, 65, 44, 55, 48, 66, 76, 60, 64, 72, 64, 81, 75, 65, 55, 92, 70, 82, 69, 61, 58, 47, 55, 65, 67, 53, 59, 76, 56, 72, 64, 80, 74, 55, 65, 53, 67, 62, 58, 77, 58, 53, 61, 45, 65, 69, 57, 76, 65, 79, 51, 55, 57, 38, 43, 74, 98, 103, 58, 56, 69, 84, 71, 60, 37, 51, 55, 63, 51, 84, 51, 52, 94, 65, 72, 71, 36, 80, 63, 76, 53, 61, 69, 41, 66, 55, 64, 82, 66, 52, 53, 89, 87, 61, 55, 89, 64, 86, 71, 63, 68, 76, 50, 66, 39, 62, 69, 55, 70, 67, 59, 59, 59, 58, 63, 58, 45, 72, 61, 72, 55, 49, 80, 50, 49, 66, 70, 51, 57, 66, 64, 65, 70, 55, 56, 72, 68, 64, 52, 70, 74, 60, 60, 74, 56, 55, 67, 57, 35, 83, 63, 58, 73, 64, 104, 61, 33, 72, 63, 74, 61, 81, 60, 70, 82, 59, 56, 59, 56, 64, 75, 67, 90, 67, 55, 129, 83, 69, 66, 66, 60, 67, 71, 69, 69, 59, 61, 59, 72, 71, 72, 54, 56, 68, 72, 63, 133, 65, 63, 112, 67, 63, 68, 93, 65, 66, 58, 64, 57, 56, 103, 53, 73, 81, 56, 59, 52, 63, 72, 41, 68, 66, 47, 46, 67, 110, 62, 68, 73, 79, 60, 61, 64, 89, 65, 78, 77, 81, 66, 66, 72, 47, 53, 95, 47, 60, 64, 62, 78, 64, 60, 63, 66, 58, 65, 70, 76, 59, 68, 71, 72, 58, 61, 64, 66, 61, 60, 64, 65, 55, 68, 47, 58, 70, 75, 66, 51, 103, 65, 63, 79, 92, 55, 59, 63, 54, 75, 75, 69, 70, 61, 66, 66, 60, 61, 51, 57, 62, 63, 78, 85, 73, 51, 56, 51, 59, 67, 83, 97, 55, 75, 56, 84, 66, 95, 64, 74, 78, 76, 68, 52, 56, 67, 70, 53, 88, 57, 77, 80, 61, 47, 67, 76, 53, 80, 66, 62, 52, 64, 56, 65, 69, 74, 43, 69, 60, 70, 86, 60, 69, 60, 102, 72, 57, 74, 70, 82, 39, 68, 56, 64, 51, 52, 66, 54, 78, 73, 67, 68, 73, 71, 63, 65, 65, 68, 79, 51, 113, 50, 55, 49, 74, 53, 65, 85, 69, 59, 64, 55, 62, 71, 49, 63, 61, 69, 114, 71, 53, 72, 58, 76, 62, 57, 53, 70, 70, 66, 67, 73, 54, 49, 68, 55, 58, 78, 65, 67, 74, 99, 54, 55, 63, 60, 70, 63, 40, 85, 62, 85, 58, 65, 100, 44, 66, 107, 59, 80, 69, 67, 75, 48, 53, 56, 68, 78, 76, 68, 50, 65, 61, 83, 70, 57, 71, 57, 89, 63, 64, 75, 55, 67, 58, 79, 54, 74, 75, 75, 71, 84, 73, 76, 51, 83, 56, 74, 67, 67, 86, 73, 52, 63, 73, 61, 64, 47, 60, 52, 69, 65, 68, 54, 60, 46, 64, 56, 83, 65, 71, 50, 71, 66, 89, 55, 53, 135, 90, 74, 65, 58, 59, 66, 76, 61, 70, 54, 66, 56, 64, 60, 62, 64, 62, 74, 62, 55, 59, 60, 72, 59, 82, 63, 50, 61, 52, 75, 62, 56, 78, 68, 51, 59, 56, 66, 49, 58, 54, 61, 64, 54, 52, 63, 62, 57, 85, 72, 70, 121, 65, 44, 58, 78, 72, 54, 61, 56, 67, 58, 70, 61, 69, 54, 81, 52, 58, 79, 50, 57, 50, 53, 61, 87, 73, 120, 59, 51, 63, 59, 84, 56, 60, 52, 57, 43, 78, 53, 79, 61, 70, 55, 63, 62, 60, 44, 74, 67, 51, 81, 79, 68, 63, 90, 64, 68, 46, 52, 44, 70, 54, 78, 52, 73, 50, 64, 64, 50, 57, 59, 74, 71, 75, 59, 48, 64, 65, 73, 57, 58, 49, 64, 81, 60, 51, 63, 59, 99, 83, 71, 41, 59, 80, 50, 57, 59, 85, 68, 90, 96, 53, 67, 61, 59, 73, 84, 95, 56, 72, 60, 91, 54, 71, 57, 75, 62, 64, 64, 75, 81, 75, 61, 80, 63, 63, 69, 75, 57, 66, 68, 53, 104, 68, 57, 54, 41, 46, 43, 93, 71, 68, 52, 62, 69, 56, 61, 73, 76, 58, 62, 80, 72, 65, 50, 64, 60, 81, 77, 56, 61, 58, 69, 66, 48, 50, 82, 61, 58, 53, 95, 90, 46, 65, 73, 75, 47, 52, 84, 74, 68, 36, 91, 61, 47, 68, 77, 36, 53, 80, 55, 51, 62, 76, 57, 72, 68, 58, 67, 89, 64, 90, 77, 67, 78, 53, 55, 63, 60, 88, 58, 57, 60, 67, 66, 76, 139, 60, 64, 63, 66, 60, 79, 52, 89, 63, 65, 64, 63, 52, 72, 48, 66, 63, 72, 91, 91, 75, 65, 61, 58, 61, 58, 59, 106, 63, 60, 54, 70, 75, 78, 55, 74, 60, 44, 55, 65, 65, 47, 54, 49, 53, 67, 41, 72, 49, 70, 56, 68, 64, 56, 73, 59, 64, 79, 91, 70, 60, 67, 68, 79, 47, 62, 84, 50, 81, 63, 81, 73, 58, 72, 67, 73, 78, 71, 75, 72, 70, 62, 71, 68, 71, 56, 75, 100, 49, 68, 62, 93, 63, 66, 54, 79, 58, 77, 47, 40, 70, 59, 61, 69, 65, 50, 48, 76, 55, 48, 65, 91, 59, 55, 73, 73, 54, 44, 73, 71, 54, 61, 52, 58, 56, 65, 47, 48, 59, 78, 60, 52, 82, 66, 54, 61, 68, 90, 98, 76, 57, 76, 82, 74, 57, 98, 78, 58, 54, 53, 51, 53, 42, 52, 90, 51, 73, 133, 76, 58, 62, 61, 86, 68, 101, 71, 78, 66, 72, 78, 85, 77, 69, 58, 65, 42, 66, 78, 67, 27, 62, 54, 85, 63, 56, 57, 67, 79, 61, 61, 58, 55, 55, 78, 63, 38, 46, 55, 57, 58, 56, 105, 71, 64, 61, 62, 74, 69, 48, 55, 48, 65, 75, 62, 64, 69, 84, 66, 66, 62, 74, 75, 67, 58, 89, 62, 68, 81, 69, 70, 70, 58, 49, 83, 65, 59, 60, 61, 47, 90, 67, 47, 87, 67, 62, 65, 88, 54, 70, 74, 63, 52, 61, 74, 61, 59, 59, 66, 61, 72, 63, 57, 71, 69, 66, 61, 78, 61, 72, 65, 55, 70, 79, 73, 77, 52, 63, 70, 86, 69, 68, 77, 57, 65, 86, 58, 55, 64, 56, 61, 64, 48, 83, 53, 74, 72, 67, 82, 58, 69, 81, 62, 63, 66, 85, 75, 45, 75, 39, 62, 59, 48, 73, 57, 54, 59, 82, 64, 71, 73, 87, 80, 71, 78, 50, 67, 60, 72, 72, 87, 66, 49, 71, 60, 68, 61, 58, 102, 56, 51, 69, 83, 36, 79, 62, 65, 78, 65, 65, 61, 49, 78, 64, 60, 90, 80, 78, 61, 64, 100, 67, 69, 71, 63, 49, 70, 59, 38, 64, 93, 63, 61, 52, 64, 60, 53, 59, 67, 56, 49, 67, 61, 109, 80, 52, 65, 69, 67, 63, 62, 51, 66, 73, 70, 52, 65, 51, 65, 92, 65, 60, 71, 57, 56, 46, 53, 61, 47, 63, 56, 62, 56, 61, 67, 73, 63, 59, 56, 63, 65, 64, 60, 89, 79, 54, 57, 102, 92, 70, 51, 72, 58, 59, 84, 62, 57, 73, 67, 68, 48, 61, 85, 62, 76, 77, 73, 73, 111, 62, 60, 73, 66, 52, 63, 60, 69, 89, 65, 61, 68, 58, 104, 55, 79, 79, 61, 95, 60, 56, 84, 59, 73, 70, 83, 79, 59, 65, 85, 46, 53, 97, 77, 83, 63, 69, 58, 69, 56, 73, 51, 56, 63, 71, 71, 63, 53, 79, 65, 72, 73, 67, 75, 57, 68, 49, 58, 59, 77, 52, 54, 53, 70, 67, 75, 86, 54, 60, 72, 59, 53, 78, 55, 58, 54, 58, 64, 52, 56, 73, 65, 64, 81, 49, 72, 57, 68, 75, 62, 63, 57, 52, 68, 58, 77, 77, 54, 60, 62, 56, 46, 77, 61, 63, 57, 67, 76, 51, 64, 73, 88, 61, 61, 57, 71, 46, 63, 75, 74, 77, 56, 72, 73, 50, 63, 52, 63, 55, 48, 60, 52, 69, 64, 65, 71, 73, 68, 62, 60, 64, 59, 62, 64, 61, 78, 73, 61, 60, 67, 76, 72, 47, 43, 65, 68, 65, 54, 62, 56, 51, 66, 69, 56, 77, 54, 59, 58, 68, 45, 58, 71, 76, 81, 53, 54, 50, 80, 75, 60, 143, 68, 56, 64, 78, 67, 63, 97, 68, 59, 74, 59, 94, 80, 53, 72, 68, 77, 69, 56, 66, 67, 62, 59, 59, 58, 63, 69, 78, 65, 54, 81, 69, 65, 52, 52, 77, 80, 63, 63, 68, 60, 56, 66, 77, 65, 56, 82, 61, 72, 61, 88, 76, 75, 93, 75, 77, 61, 81, 88, 64, 71, 79, 63, 58, 63, 59, 67, 58, 50, 59, 75, 61, 76, 62, 70, 75, 68, 69, 39, 56, 40, 53, 59, 59, 60, 67, 77, 71, 96, 50, 100, 56, 92, 69, 50, 71, 74, 90, 39, 71, 64, 51, 61, 93, 60, 58, 64, 63, 60, 65, 60, 75, 68, 60, 67, 64, 59, 55, 77, 65, 68, 69, 49, 60, 66, 79, 132, 75, 63, 57, 55, 66, 69, 72, 69, 63, 49, 82, 63, 53, 61, 68, 66, 36, 96, 80, 73, 59, 84, 65, 49, 57, 59, 43, 87, 63, 66, 55, 54, 78, 65, 52, 70, 58, 68, 61, 61, 63, 57, 84, 57, 66, 58, 64, 59, 77, 58, 98, 138, 51, 70, 59, 54, 51, 57, 65, 76, 57, 69, 49, 64, 64, 47, 67, 65, 53, 67, 58, 62, 54, 54, 61, 68, 65, 69, 73, 62, 70, 61, 65, 64, 57, 78, 61, 57, 62, 62, 60, 55, 71, 63, 73, 66, 47, 55, 73, 76, 58, 72, 83, 68, 72, 85, 57, 57, 68, 63, 50, 69, 59, 73, 73, 76, 57, 89, 58, 87, 57, 64, 79, 79, 66, 51, 52, 71, 70, 81, 60, 76, 55, 58, 63, 62, 69, 58, 84, 94, 71, 82, 54, 80, 74, 66, 62, 57, 54, 60, 77, 77, 69, 59, 55, 49, 68, 73, 51, 65, 89, 46, 73, 70, 73, 64, 61, 80, 60, 62, 69, 57, 80, 59, 68, 54, 81, 50, 81, 61, 84, 65, 71, 51, 55, 55, 56, 64, 47, 84, 97, 75, 63, 71, 53, 54, 63, 63, 76, 81, 56, 83, 84, 72, 74, 77, 65, 64, 114, 51, 64, 57, 79, 82, 56, 52, 79, 73, 52, 57, 61, 88, 76, 66, 41, 71, 62, 57, 68, 79, 46, 65, 51, 87, 68, 56, 76, 57, 61, 66, 64, 58, 57, 67, 74, 56, 64, 56, 59, 50, 63, 74, 115, 78, 56, 57, 56, 53, 58, 55, 84, 70, 75, 71, 66, 74, 77, 87, 77, 88, 69, 61, 57, 79, 63, 93, 68, 87, 102, 80, 64, 70, 57, 58, 40, 66, 78, 59, 74, 74, 60, 49, 55, 72, 68, 78, 65, 66, 70, 63, 40, 40, 45, 81, 56, 71, 44, 57, 77, 62, 61, 59, 67, 59, 72, 63, 63, 74, 67, 92, 60, 65, 67, 57, 65, 74, 64, 68, 71, 78, 71, 58, 80, 73, 82, 70, 60, 59, 56, 72, 58, 87, 59, 75, 108, 54, 56, 55, 55, 102, 52, 81, 63, 73, 89, 92, 64, 54, 61, 57, 66, 82, 62, 59, 63, 63, 72, 54, 66, 57, 54, 55, 57, 64, 69, 85, 69, 85, 92, 58, 67, 64, 59, 44, 65, 63, 62, 100, 70, 54, 63, 65, 59, 53, 72, 68, 47, 55, 52, 64, 83, 52, 51, 50, 51, 73, 67, 64, 49, 68, 76, 42, 46, 57, 70, 83, 46, 52, 75, 67, 74, 57, 56, 66, 64, 117, 66, 61, 59, 62, 105, 55, 50, 75, 68, 63, 51, 62, 52, 52, 80, 57, 62, 60, 51, 33, 81, 80, 69, 69, 62, 60, 65, 67, 57, 39, 43, 53, 59, 52, 101, 52, 65, 49, 49, 40, 76, 73, 47, 110, 55, 49, 61, 57, 62, 60, 67, 58, 46, 66, 73, 68, 62, 53, 98, 56, 69, 91, 71, 81, 73, 63, 71, 61, 69, 71, 74, 51, 60, 70, 66, 53, 87, 71, 64, 60, 69, 83, 70, 56, 46, 59, 54, 64, 86, 38, 46, 77, 59, 67, 50, 64, 64, 61, 62, 48, 54, 71, 69, 48, 56, 65, 49, 68, 71, 89, 77, 54, 61, 65, 60, 50, 44, 60, 59, 70, 85, 63, 76, 74, 66, 78, 66, 52, 66, 74, 63, 58, 70, 50, 68, 74, 45, 63, 69, 68, 58, 55, 63, 59, 61, 52, 75, 77, 63, 47, 40, 69, 53, 70, 75, 61, 62, 57, 82, 57, 59, 72, 65, 58, 55, 74, 63, 57, 70, 49, 99, 82, 57, 62, 55, 76, 58, 67, 63, 81, 56, 55, 89, 75, 72, 73, 71, 103, 78, 58, 69, 85, 58, 46, 57, 68, 50, 73, 65, 64, 70, 59, 86, 52, 58, 83, 64, 52, 55, 84, 57, 135, 46, 70, 60, 58, 65, 75, 56, 67, 69, 75, 84, 99, 63, 52, 60, 57, 58, 59, 69, 49, 55, 40, 47, 76, 70, 63, 70, 88, 91, 73, 54, 68, 73, 98, 74, 63, 70, 59, 62, 55, 58, 59, 71, 76, 52, 53, 74, 54, 98, 71, 64, 72, 139, 68, 64, 65, 117, 71, 56, 81, 61, 62, 86, 65, 74, 56, 59, 69, 70, 61, 64, 77, 56, 78, 71, 60, 73, 86, 64, 64, 86, 69, 68, 59, 81, 54, 106, 58, 60, 58, 58, 105, 72, 72, 68, 63, 86, 38, 71, 45, 62, 65, 61, 91, 81, 67, 59, 62, 67, 70, 63, 65, 66, 68, 71, 70, 55, 62, 54, 66, 50, 57, 51, 57, 69, 79, 70, 59, 70, 107, 81, 53, 75, 94, 66, 58, 87, 63, 62, 59, 66, 76, 72, 55, 50, 51, 60, 85, 59, 49, 52, 65, 50, 61, 53, 44, 66, 56, 84, 62, 53, 88, 83, 70, 71, 89, 63, 55, 58, 70, 66, 60, 53, 80, 71, 60, 52, 52, 62, 54, 55, 78, 77, 85, 63, 56, 53, 59, 67, 57, 59, 57, 77, 66, 57, 66, 53, 59, 56, 89, 94, 58, 57, 70, 77, 62, 52, 73, 101, 70, 69, 62, 91, 53, 72, 72, 54, 71, 58, 66, 66, 67, 59, 72, 68, 63, 63, 70, 81, 64, 65, 61, 72, 82, 87, 48, 66, 67, 82, 69, 48, 48, 47, 67, 50, 51, 48, 59, 64, 66, 77, 61, 60, 54, 93, 89, 126, 47, 71, 69, 57, 54, 46, 64, 75, 68, 69, 60, 77, 55, 55, 71, 71, 67, 63, 64, 78, 105, 58, 58, 59, 48, 54, 66, 70, 55, 63, 53, 64, 66, 79, 78, 47, 59, 55, 64, 63, 49, 70, 101, 51, 56, 60, 62, 72, 60, 70, 44, 70, 71, 66, 62, 56, 75, 92, 66, 87, 69, 67, 53, 67, 50, 62, 59, 75, 66, 66, 73, 52, 72, 74, 58, 68, 63, 51, 74, 82, 58, 66, 56, 62, 69, 72, 47, 66, 70, 71, 55, 68, 78, 72, 48, 66, 68, 54, 55, 65, 60, 92, 67, 57, 66, 58, 57, 45, 48, 67, 66, 62, 67, 75, 57, 64, 83, 65, 68, 70, 69, 54, 72, 61, 84, 65, 82, 67, 115, 62, 88, 57, 66, 62, 49, 63, 52, 64, 70, 75, 65, 71, 55, 63, 48, 59, 85, 48, 66, 64, 85, 66, 61, 56, 74, 81, 48, 85, 52, 63, 48, 50, 68, 62, 68, 74, 71, 42, 49, 75, 74, 100, 62, 58, 63, 55, 91, 63, 70, 67, 81, 81, 52, 98, 51, 77, 67, 54, 57, 133, 56, 61, 64, 87, 56, 53, 162, 72, 81, 74, 55, 47, 69, 60, 71, 60, 79, 60, 51, 51, 58, 60, 65, 67, 62, 57, 60, 62, 58, 66, 67, 62, 53, 91, 73, 63, 85, 75, 64, 62, 59, 55, 52, 51, 49, 49, 65, 68, 76, 53, 65, 60, 67, 54, 58, 74, 51, 61, 75, 62, 97, 71, 64, 94, 69, 69, 65, 76, 47, 63, 74, 64, 57, 71, 70, 61, 53, 58, 79, 91, 60, 119, 40, 67, 46, 59, 46, 51, 62, 71, 47, 56, 54, 65, 57, 45, 60, 44, 58, 72, 77, 108, 97, 60, 67, 63, 59, 51, 62, 69, 68, 55, 61, 52, 72, 73, 56, 68, 60, 90, 84, 97, 94, 74, 62, 56, 64, 68, 97, 73, 65, 67, 61, 67, 64, 58, 70, 58, 55, 76, 71, 79, 58, 72, 61, 74, 61, 66, 55, 67, 52, 69, 81, 58, 70, 46, 54, 61, 61, 69, 55, 104, 57, 70, 67, 55, 68, 62, 79, 68, 59, 61, 47, 66, 57, 55, 51, 66, 60, 64, 67, 71, 66, 59, 70, 63, 63, 71, 59, 76, 59, 85, 73, 66, 56, 61, 42, 74, 70, 55, 57, 62, 51, 69, 67, 60, 66, 60, 70, 63, 64, 76, 95, 62, 62, 57, 77, 84, 63, 52, 76, 63, 51, 71, 78, 51, 59, 61, 46, 68, 62, 51, 65, 82, 59, 74, 65, 44, 55, 70, 73, 57, 102, 55, 85, 76, 69, 69, 101, 63, 57, 60, 69, 44, 57, 51, 48, 71, 76, 92, 62, 55, 59, 83, 50, 60, 79, 49, 56, 54, 55, 71, 68, 81, 59, 70, 69, 67, 63, 75, 66, 69, 64, 63, 70, 89, 75, 59, 55, 53, 65, 60, 56, 70, 97, 55, 60, 62, 76, 69, 58, 70, 57, 54, 47, 53, 59, 74, 62, 71, 58, 62, 66, 53, 103, 77, 74, 76, 77, 64, 58, 71, 63, 60, 61, 62, 57, 75, 62, 48, 49, 82, 59, 59, 75, 65, 68, 72, 56, 62, 69, 50, 71, 75, 67, 97, 58, 64, 110, 70, 62, 59, 57, 92, 55, 59, 57, 56, 88, 74, 62, 60, 62, 84, 59, 53, 68, 61, 55, 62, 55, 90, 73, 64, 77, 49, 59, 60, 46, 83, 70, 111, 59, 63, 74, 73, 58, 66, 62, 62, 65, 72, 49, 53, 80, 58, 64, 69, 54, 69, 61, 72, 55, 57, 63, 50, 72, 51, 73, 65, 62, 75, 61, 58, 73, 55, 64, 45, 83, 56, 80, 54, 62, 57, 72, 65, 66, 63, 87, 58, 72, 73, 62, 67, 90, 52, 78, 71, 67, 52, 65, 66, 71, 69, 68, 54, 70, 59, 62, 80, 58, 69, 66, 81, 55, 59, 63, 71, 68, 59, 58, 54, 59, 61, 60, 69, 72, 79, 78, 63, 64, 60, 60, 75, 60, 59, 78, 57, 69, 75, 69, 60, 66, 64, 67, 70, 60, 86, 64, 61, 53, 72, 57, 61, 73, 62, 77, 83, 85, 45, 48, 73, 53, 45, 62, 62, 75, 81, 63, 46, 65, 61, 51, 49, 76, 59, 51, 61, 67, 72, 74, 52, 51, 74, 66, 61, 67, 78, 50, 44, 74, 66, 73, 79, 57, 122, 67, 72, 58, 60, 57, 45, 64, 57, 95, 77, 54, 57, 61, 93, 84, 60, 49, 80, 54, 69, 51, 60, 55, 63, 60, 97, 79, 83, 59, 63, 83, 73, 74, 72, 51, 65, 56, 56, 80, 77, 95, 42, 53, 61, 76, 45, 54, 65, 76, 79, 65, 60, 65, 74, 44, 84, 62, 65, 60, 65, 61, 67, 50, 65, 57, 52, 64, 59, 70, 71, 68, 53, 53, 65, 49, 62, 51, 49, 64, 66, 63, 65, 65, 56, 58, 67, 65, 67, 55, 60, 54, 69, 70, 80, 79, 71, 67, 50, 74, 75, 77, 80, 82, 63, 99, 62, 73, 75, 60, 57, 61, 57, 89, 59, 73, 53, 51, 64, 82, 61, 61, 70, 49, 62, 56, 63, 65, 78, 69, 49, 70, 50, 114, 61, 63, 102, 67, 43, 51, 72, 50, 76, 65, 61, 77, 72, 74, 62, 57, 80, 50, 77, 117, 40, 54, 87, 72, 65, 62, 53, 67, 65, 52, 87, 58, 57, 54, 82, 58, 75, 114, 83, 70, 64, 77, 54, 68, 72, 73, 50, 61, 61, 63, 68, 75, 81, 71, 67, 49, 70, 56, 81, 68, 63, 83, 77, 72, 52, 58, 61, 58, 70, 63, 83, 75, 73, 77, 67, 71, 53, 57, 64, 49, 60, 73, 64, 44, 60, 61, 61, 71, 72, 83, 82, 129, 72, 60, 55, 56, 59, 63, 62, 55, 66, 90, 82, 62, 61, 71, 61, 88, 64, 61, 59, 63, 60, 50, 65, 128, 85, 54, 56, 69, 55, 70, 58, 61, 63, 44, 59, 55, 52, 41, 55, 68, 85, 58, 62, 92, 54, 60, 110, 60, 55, 65, 64, 77, 71, 76, 52, 56, 68, 62, 58, 63, 87, 64, 55, 36, 57, 116, 56, 83, 49, 56, 70, 67, 110, 94, 78, 87, 58, 58, 78, 70, 74, 81, 63, 71, 47, 66, 81, 56, 70, 56, 84, 61, 70, 66, 61, 66, 62, 92, 61, 69, 61, 80, 77, 70, 44, 71, 80, 64, 95, 80, 63, 59, 53, 57, 64, 105, 72, 50, 50, 63, 54, 67, 69, 50, 51, 52, 65, 75, 72, 49, 73, 65, 76, 57, 90, 51, 73, 49, 56, 61, 76, 67, 64, 58, 51, 67, 80, 71, 62, 70, 42, 90, 83, 85, 63, 50, 55, 77, 54, 84, 72, 61, 69, 78, 80, 71, 90, 83, 55, 76, 92, 87, 73, 59, 57, 92, 88, 48, 94, 68, 54, 52, 78, 30, 52, 43, 68, 60, 91, 60, 72, 62, 69, 76, 58, 72, 55, 91, 66, 51, 79, 104, 79, 71, 76, 66, 75, 71, 44, 55, 59, 75, 64, 50, 84, 64, 53, 68, 79, 64, 67, 57, 46, 69, 72, 64, 68, 68, 60, 46, 80, 75, 50, 67, 64, 68, 68, 63, 57, 55, 73, 51, 60, 82, 80, 54, 47, 51, 57, 44, 74, 96, 66, 63, 49, 61, 79, 70, 59, 49, 64, 65, 87, 56, 49, 70, 62, 69, 57, 72, 53, 70, 58, 44, 76, 50, 65, 51, 53, 82, 48, 75, 61, 73, 85, 86, 53, 42, 55, 58, 59, 65, 72, 62, 67, 71, 89, 69, 64, 36, 75, 54, 71, 56, 96, 78, 96, 73, 72, 64, 44, 116, 63, 65, 63, 91, 71, 77, 67, 50, 86, 52, 32, 105, 61, 71, 58, 58, 87, 65, 40, 78, 69, 63, 67, 77, 59, 50, 111, 63, 48, 68, 75, 52, 123, 31, 71, 57, 64, 66, 56, 63, 66, 63, 44, 58, 79, 62, 64, 64, 75, 55, 49, 76, 84, 66, 110, 49, 75, 65, 57, 60, 49, 108, 51, 56, 80, 59, 84, 35, 70, 50, 77, 68, 72, 71, 53, 59, 59, 73, 84, 89, 54, 68, 57, 52, 61, 50, 103, 77, 46, 58, 55, 79, 101, 58, 64, 65, 56, 52, 77, 80, 62, 70, 60, 49, 75, 45, 61, 58, 56, 62, 72, 90, 76, 65, 62, 80, 57, 65, 58, 56, 70, 55, 69, 49, 70, 75, 51, 54, 66, 74, 67, 60, 43, 65, 77, 84, 85, 54, 39, 53, 77, 59, 54, 101, 53, 48, 92, 75, 65, 58, 73, 80, 65, 52, 76, 83, 69, 76, 53, 80, 70, 66, 81, 88, 77, 59, 52, 88, 62, 71, 57, 47, 85, 58, 57, 63, 59, 48, 87, 70, 66, 63, 71, 64, 76, 83, 83, 76, 41, 63, 64, 56, 64, 65, 57, 46, 73, 60, 42, 84, 54, 77, 65, 51, 70, 67, 57, 37, 82, 54, 71, 66, 48, 77, 69, 66, 67, 67, 87, 63, 63, 57, 52, 99, 68, 49, 57, 52, 68, 57, 63, 77, 65, 74, 113, 60, 55, 79, 58, 72, 56, 58, 48, 59, 71, 138, 53, 56, 53, 91, 83, 56, 67, 66, 52, 82, 90, 57, 69, 58, 64, 66, 64, 77, 47, 109, 72, 44, 56, 68, 71, 56, 50, 59, 58, 69, 69, 52, 73, 67, 65, 58, 65, 72, 47, 72, 75, 51, 54, 72, 72, 59, 55, 58, 72, 87, 95, 58, 45, 95, 60, 42, 66, 100, 79, 80, 81, 51, 71, 80, 62, 58, 60, 66, 66, 69, 86, 58, 52, 55, 48, 61, 87, 61, 76, 50, 63, 83, 57, 73, 84, 107, 71, 45, 77, 72, 79, 62, 65, 56, 60, 58, 73, 55, 82, 90, 52, 82, 57, 55, 64, 72, 62, 59, 60, 71, 31, 80, 65, 64, 46, 59, 70, 56, 51, 54, 36, 61, 62, 96, 61, 81, 59, 50, 59, 73, 58, 56, 57, 65, 59, 86, 97, 64, 93, 77, 67, 79, 66, 55, 57, 68, 62, 61, 52, 78, 60, 74, 47, 45, 83, 64, 86, 78, 118, 40, 76, 68, 44, 84, 45, 76, 63, 53, 76, 67, 53, 68, 66, 50, 81, 71, 57, 62, 88, 72, 66, 91, 47, 54, 63, 74, 73, 82, 68, 58, 47, 46, 40, 83, 49, 48, 66, 70, 58, 74, 76, 86, 69, 64, 55, 60, 55, 68, 61, 100, 73, 70, 88, 55, 49, 63, 49, 47, 74, 59, 79, 73, 60, 58, 83, 56, 45, 57, 54, 80, 66, 62, 74, 73, 54, 68, 50, 72, 60, 77, 87, 61, 78, 84, 59, 52, 76, 55, 61, 59, 114, 44, 75, 86, 68, 61, 55, 67, 43, 67, 86, 70, 75, 46, 48, 61, 45, 63, 61, 52, 63, 84, 69, 65, 61, 71, 73, 66, 71, 75, 63, 100, 56, 54, 73, 35, 87, 67, 85, 61, 75, 70, 54, 70, 73, 68, 90, 68, 48, 69, 74, 78, 58, 59, 51, 69, 54, 63, 40, 51, 64, 60, 50, 62, 68, 57, 55, 61, 54, 76, 64, 59, 95, 67, 48, 67, 88, 58, 61, 46, 46, 59, 56, 85, 53, 59, 44, 54, 64, 85, 43, 48, 48, 60, 70, 101, 94, 61, 101, 62, 63, 69, 71, 63, 71, 36, 60, 77, 77, 89, 62, 73, 50, 64, 61, 62, 93, 48, 59, 53, 66, 75, 75, 101, 60, 100, 80, 57, 55, 51, 59, 55, 82, 66, 53, 88, 62, 65, 83, 56, 54, 69, 56, 106, 56, 43, 45, 66, 77, 68, 54, 68, 67, 46, 77, 46, 62, 60, 54, 53, 78, 83, 78, 62, 62, 53, 63, 76, 62, 74, 72, 54, 55, 77, 59, 69, 108, 48, 65, 56, 68, 63, 64, 84, 67, 54, 55, 68, 69, 80, 86, 64, 52, 68, 84, 82, 52, 80, 53, 61, 48, 60, 62, 43, 55, 63, 93, 61, 58, 45, 46, 89, 77, 77, 87, 110, 74, 69, 57, 82, 77, 112, 61, 53, 71, 95, 71, 65, 41, 84, 55, 85, 87, 45, 67, 56, 84, 61, 86, 85, 51, 83, 88, 52, 51, 105, 57, 68, 57, 56, 89, 55, 45, 59, 72, 63, 64, 55, 43, 52, 83, 42, 80, 48, 61, 53, 63, 53, 72, 113, 47, 62, 75, 77, 55, 68, 61, 82, 59, 49, 72, 112, 57, 74, 61, 59, 50, 44, 71, 96, 68, 99, 87, 84, 50, 122, 68, 70, 76, 78, 60, 56, 46, 68, 58, 64, 69, 49, 69, 72, 55, 55, 77, 66, 75, 64, 55, 91, 98, 70, 73, 73, 44, 47, 127, 53, 72, 59, 76, 64, 71, 75, 76, 61, 36, 54, 67, 61, 64, 86, 71, 52, 59, 66, 46, 53, 67, 68, 69, 70, 52, 68, 68, 63, 46, 62, 56, 70, 52, 91, 68, 59, 72, 82, 53, 74, 48, 51, 66, 90, 67, 58, 72, 69, 52, 60, 71, 43, 57, 87, 53, 102, 88, 66, 70, 52, 66, 83, 53, 58, 80, 81, 66, 48, 47, 90, 66, 60, 56, 58, 86, 79, 47, 62, 55, 81, 97, 80, 39, 93, 56, 52, 70, 79, 62, 54, 58, 68, 58, 99, 50, 55, 65, 57, 72, 47, 55, 68, 81, 37, 63, 55, 63, 60, 44, 62, 67, 48, 61, 52, 60, 44, 70, 64, 67, 64, 110, 47, 57, 78, 71, 75, 48, 69, 57, 89, 73, 64, 36, 61, 70, 57, 59, 64, 71, 50, 86, 73, 56, 74, 76, 77, 63, 58, 46, 55, 55, 53, 107, 66, 55, 86, 70, 87, 59, 61, 61, 63, 65, 53, 58, 58, 74, 43, 77, 58, 48, 63, 83, 127, 71, 63, 89, 76, 118, 70, 75, 79, 76, 49, 40, 66, 80, 68, 49, 82, 52, 59, 77, 75, 70, 47, 80, 63, 64, 57, 59, 76, 45, 83, 79, 80, 53, 61, 53, 68, 63, 68, 66, 77, 87, 100, 59, 86, 68, 67, 42, 73, 69, 55, 46, 87, 67, 64, 80, 70, 46, 55, 113, 54, 60, 61, 67, 56, 48, 72, 61, 52, 58, 48, 69, 67, 42, 68, 71, 49, 63, 60, 61, 67, 54, 78, 107, 56, 65, 59, 62, 78, 62, 61, 82, 72, 63, 93, 48, 59, 46, 54, 53, 78, 77, 57, 65, 79, 92, 74, 66, 64, 59, 46, 70, 67, 95, 51, 70, 58, 77, 72, 81, 64, 59, 72, 49, 62, 52, 59, 66, 60, 74, 71, 100, 56, 87, 53, 63, 69, 69, 68, 61, 84, 69, 68, 45, 74, 37, 59, 54, 64, 87, 81, 65, 42, 40, 97, 63, 86, 79, 49, 67, 59, 53, 67, 97, 96, 68, 73, 53, 52, 81, 48, 56, 88, 83, 46, 70, 43, 62, 88, 87, 79, 44, 52, 51, 43, 57, 63, 67, 73, 59, 58, 66, 112, 69, 102, 54, 81, 69, 66, 63, 62, 68, 71, 62, 57, 58, 64, 89, 59, 78, 69, 70, 96, 63, 46, 62, 72, 70, 58, 63, 84, 49, 97, 49, 60, 82, 82, 60, 60, 57, 68, 96, 41, 71, 77, 42, 61, 56, 71, 61, 60, 85, 74, 68, 106, 82, 79, 80, 90, 70, 50, 76, 65, 69, 82, 60, 64, 82, 49, 51, 81, 52, 66, 84, 65, 52, 69, 53, 67, 66, 98, 50, 80, 48, 62, 51, 64, 61, 45, 75, 70, 85, 52, 66, 86, 69, 64, 46, 69, 53, 91, 77, 59, 53, 91, 71, 80, 62, 76, 86, 76, 61, 43, 49, 54, 49, 69, 67, 59, 48, 58, 63, 67, 58, 64, 88, 53, 47, 65, 62, 60, 93, 59, 69, 64, 75, 75, 58, 81, 54, 77, 77, 64, 77, 58, 98, 61, 67, 78, 49, 63, 62, 34, 62, 69, 53, 60, 64, 52, 51, 76, 70, 70, 83, 71, 68, 59, 55, 59, 49, 56, 82, 91, 45, 81, 42, 57, 82, 69, 51, 68, 79, 66, 61, 51, 48, 63, 62, 60, 61, 55, 54, 66, 77, 84, 89, 55, 47, 60, 58, 70, 53, 76, 51, 87, 55, 60, 63, 67, 90, 60, 61, 58, 64, 87, 53, 61, 63, 77, 64, 47, 60, 59, 75, 53, 52, 62, 74, 82, 68, 61, 51, 59, 65, 52, 47, 82, 66, 75, 100, 74, 68, 53, 93, 63, 67, 76, 71, 74, 67, 77, 62, 62, 58, 83, 45, 79, 62, 60, 79, 56, 57, 75, 72, 83, 53, 51, 70, 59, 64, 60, 82, 73, 61, 60, 63, 61, 85, 108, 52, 63, 81, 75, 49, 86, 86, 58, 72, 66, 49, 70, 39, 58, 41, 63, 56, 67, 62, 83, 76, 90, 39, 74, 44, 59, 55, 58, 60, 39, 59, 47, 76, 54, 55, 48, 46, 65, 61, 62, 91, 74, 89, 41, 49, 43, 56, 47, 83, 75, 60, 48, 52, 78, 39, 67, 59, 48, 66, 60, 57, 89, 56, 62, 81, 65, 61, 71, 57, 56, 57, 92, 49, 62, 60, 59, 62, 59, 77, 64, 53, 75, 54, 50, 67, 75, 61, 54, 52, 76, 52, 49, 72, 77, 76, 63, 98, 60, 58, 77, 70, 58, 51, 80, 68, 58, 67, 49, 56, 58, 68, 73, 56, 72, 52, 77, 71, 49, 46, 38, 70, 61, 60, 63, 70, 70, 91, 81, 69, 52, 63, 55, 53, 67, 65, 48, 69, 60, 73, 56, 51, 107, 62, 71, 70, 52, 77, 84, 44, 99, 71, 65, 71, 73, 75, 86, 67, 51, 60, 69, 66, 47, 58, 69, 55, 47, 74, 71, 49, 95, 71, 69, 83, 57, 58, 44, 72, 95, 61, 65, 49, 68, 114, 89, 49, 80, 67, 44, 136, 53, 61, 71, 59, 50, 50, 68, 65, 77, 61, 89, 56, 71, 65, 77, 38, 50, 62, 54, 69, 60, 69, 64, 69, 76, 80, 108, 49, 90, 69, 77, 60, 43, 68, 37, 47, 81, 82, 80, 74, 77, 79, 84, 54, 65, 57, 78, 66, 55, 81, 54, 69, 76, 80, 43, 109, 63, 52, 68, 68, 61, 65, 68, 59, 115, 104, 59, 65, 64, 87, 59, 62, 86, 65, 107, 59, 49, 61, 61, 117, 68, 71, 66, 90, 114, 66, 65, 71, 65, 65, 85, 86, 73, 73, 82, 63, 78, 60, 68, 58, 51, 59, 56, 47, 61, 63, 72, 69, 57, 76, 77, 63, 66, 32, 69, 68, 48, 56, 48, 54, 76, 68, 53, 48, 72, 71, 59, 68, 41, 45, 58, 61, 64, 51, 70, 76, 75, 99, 80, 65, 81, 60, 74, 63, 88, 75, 55, 53, 69, 74, 60, 76, 51, 100, 86, 61, 57, 41, 77, 84, 50, 92, 48, 59, 79, 51, 56, 66, 53, 49, 71, 70, 73, 64, 48, 60, 73, 53, 80, 73, 57, 71, 54, 60, 71, 69, 50, 84, 66, 48, 77, 70, 63, 73, 77, 68, 53, 93, 64, 58, 50, 58, 76, 71, 67, 88, 77, 63, 56, 84, 65, 87, 83, 66, 68, 59, 64, 69, 82, 63, 54, 69, 60, 57, 70, 52, 51, 56, 64, 54, 67, 57, 73, 65, 54, 55, 66, 57, 70, 52, 96, 89, 84, 66, 55, 68, 78, 69, 47, 71, 53, 76, 75, 82, 71, 83, 73, 53, 52, 65, 53, 90, 62, 55, 61, 85, 50, 76, 72, 58, 47, 91, 55, 60, 59, 53, 61, 65, 45, 72, 62, 70, 37, 68, 113, 89, 93, 57, 61, 76, 68, 71, 51, 56, 58, 92, 57, 70, 55, 85, 57, 50, 65, 71, 58, 96, 64, 62, 52, 61, 55, 48, 49, 55, 87, 86, 65, 70, 60, 55, 73, 81, 69, 50, 50, 59, 74, 74, 77, 48, 65, 68, 67, 65, 79, 67, 87, 73, 106, 62, 78, 83, 58, 67, 44, 79, 37, 55, 59, 65, 66, 50, 63, 56, 55, 65, 69, 72, 63, 61, 54, 53, 79, 51, 64, 71, 72, 79, 78, 53, 57, 73, 54, 60, 53, 64, 70, 66, 67, 62, 58, 60, 86, 55, 71, 55, 49, 90, 62, 50, 62, 48, 103, 66, 58, 66, 73, 51, 93, 51, 59, 76, 55, 63, 80, 56, 76, 75, 56, 68, 70, 76, 65, 65, 83, 60, 59, 61, 57, 69, 66, 116, 74, 57, 79, 74, 83, 127, 120, 67, 75, 65, 62, 67, 51, 36, 64, 64, 53, 63, 57, 75, 62, 60, 52, 71, 66, 61, 70, 75, 65, 85, 54, 75, 77, 88, 71, 70, 46, 66, 63, 85, 68, 61, 49, 50, 86, 63, 53, 75, 76, 61, 57, 57, 77, 58, 76, 80, 57, 58, 65, 77, 69, 70, 84, 67, 73, 64, 51, 53, 83, 63, 48, 67, 53, 53, 63, 77, 42, 63, 59, 78, 61, 81, 62, 63, 70, 88, 65, 49, 34, 53, 75, 67, 50, 75, 76, 48, 103, 69, 78, 69, 77, 57, 64, 62, 69, 69, 69, 76, 62, 75, 79, 67, 60, 62, 70, 82, 72, 44, 71, 75, 68, 82, 56, 75, 58, 61, 67, 60, 77, 63, 78, 66, 63, 48, 76, 49, 72, 55, 38, 71, 74, 57, 67, 66, 61, 80, 94, 61, 62, 51, 63, 77, 70, 50, 68, 54, 52, 85, 62, 58, 73, 63, 59, 71, 38, 69, 85, 45, 88, 60, 44, 64, 74, 52, 73, 73, 63, 51, 50, 65, 61, 49, 70, 65, 99, 50, 64, 82, 73, 73, 76, 83, 61, 59, 53, 63, 48, 51, 57, 61, 64, 58, 62, 102, 56, 45, 62, 60, 75, 73, 49, 55, 71, 62, 64, 65, 64, 65, 78, 68, 61, 77, 58, 65, 69, 41, 55, 60, 85, 48, 61, 69, 67, 46, 57, 34, 67, 83, 77, 52, 65, 66, 88, 72, 68, 52, 72, 52, 55, 46, 73, 45, 106, 79, 53, 79, 80, 62, 66, 82, 56, 48, 74, 63, 52, 73, 65, 53, 69, 60, 55, 82, 61, 67, 49, 68, 57, 43, 58, 80, 61, 59, 53, 58, 78, 43, 73, 43, 71, 66, 53, 70, 60, 84, 46, 52, 67, 59, 57, 67, 58, 61, 43, 65, 67, 79, 60, 50, 52, 65, 53, 72, 59, 66, 60, 58, 72, 48, 71, 42, 82, 105, 63, 87, 71, 57, 58, 75, 65, 76, 57, 66, 75, 83, 47, 74, 55, 57, 58, 72, 63, 50, 69, 67, 69, 61, 78, 53, 66, 64, 65, 64, 60, 58, 100, 79, 46, 59, 74, 73, 54, 68, 55, 55, 57, 66, 59, 65, 59, 63, 60, 48, 52, 58, 69, 75, 64, 71, 66, 52, 66, 58, 119, 64, 64, 61, 74, 70, 71, 51, 70, 54, 84, 61, 69, 54, 61, 81, 59, 45, 128, 64, 71, 70, 61, 139, 76, 80, 69, 72, 79, 78, 75, 79, 55, 70, 67, 81, 50, 51, 76, 72, 64, 48, 76, 74, 57, 89, 54, 47, 52, 64, 57, 77, 58, 65, 67, 62, 99, 56, 72, 44, 58, 62, 63, 58, 72, 63, 51, 59, 89, 57, 61, 54, 69, 84, 55, 55, 55, 63, 74, 56, 63, 51, 74, 74, 69, 64, 61, 86, 54, 69, 72, 66, 75, 70, 67, 53, 53, 75, 53, 61, 69, 81, 67, 80, 67, 93, 53, 65, 84, 70, 62, 61, 90, 69, 76, 38, 82, 56, 83, 48, 55, 89, 63, 69, 65, 61, 69, 95, 60, 54, 74, 58, 61, 75, 66, 58, 71, 77, 68, 69, 77, 53, 69, 64, 44, 57, 74, 75, 54, 54, 49, 63, 58, 63, 53, 64, 72, 55, 62, 80, 64, 58, 60, 80, 71, 48, 56, 47, 57, 66, 72, 60, 72, 59, 51, 73, 56, 70, 64, 68, 115, 54, 66, 68, 70, 90, 72, 63, 59, 57, 78, 55, 48, 61, 65, 58, 72, 63, 71, 74, 64, 60, 69, 68, 57, 66, 66, 68, 73, 66, 52, 70, 54, 65, 77, 43, 64, 57, 67, 80, 59, 57, 63, 59, 66, 86, 63, 79, 72, 72, 73, 57, 71, 58, 44, 85, 64, 79, 81, 54, 101, 74, 77, 61, 48, 68, 55, 57, 139, 60, 63, 53, 65, 49, 76, 78, 92, 70, 46, 116, 72, 58, 66, 61, 72, 59, 72, 67, 56, 80, 59, 48, 69, 60, 65, 79, 75, 73, 52, 64, 63, 61, 76, 59, 47, 54, 59, 66, 61, 70, 58, 52, 48, 50, 55, 73, 81, 80, 64, 79, 64, 69, 85, 89, 61, 55, 62, 51, 69, 80, 68, 89, 72, 62, 83, 54, 60, 69, 60, 66, 81, 58, 58, 64, 87, 71, 70, 121, 82, 71, 36, 50, 69, 64, 72, 58, 84, 66, 60, 66, 58, 81, 62, 46, 64, 52, 49, 68, 70, 51, 49, 51, 78, 63, 79, 61, 68, 50, 59, 67, 60, 55, 77, 54, 41, 68, 73, 67, 90, 65, 58, 50, 53, 110, 69, 71, 94, 50, 75, 74, 65, 95, 66, 44, 85, 61, 64, 49, 59, 56, 52, 60, 60, 83, 80, 59, 61, 80, 50, 40, 78, 63, 60, 74, 79, 63, 56, 115, 62, 63, 79, 84, 66, 63, 58, 48, 58, 66, 43, 74, 56, 80, 67, 74, 61, 107, 139, 57, 85, 69, 73, 66, 53, 63, 55, 74, 76, 63, 70, 54, 54, 83, 80, 60, 45, 74, 59, 58, 63, 51, 79, 49, 66, 61, 56, 82, 53, 58, 54, 65, 92, 53, 53, 63, 81, 54, 69, 60, 61, 72, 70, 73, 53, 52, 61, 74, 65, 54, 56, 80, 70, 51, 74, 42, 42, 74, 71, 76, 61, 73, 58, 84, 51, 67, 77, 72, 76, 58, 53, 51, 64, 66, 58, 53, 128, 73, 83, 52, 82, 54, 69, 72, 74, 63, 67, 59, 81, 60, 60, 74, 60, 56, 63, 56, 55, 59, 70, 48, 68, 62, 64, 68, 78, 62, 70, 90, 62, 48, 82, 64, 63, 46, 63, 71, 62, 68, 63, 78, 81, 68, 71, 71, 65, 70, 67, 51, 65, 63, 68, 74, 64, 67, 45, 61, 62, 76, 60, 67, 49, 59, 79, 50, 80, 77, 49, 56, 69, 56, 57, 81, 69, 57, 77, 56, 63, 59, 59, 94, 93, 53, 72, 62, 76, 65, 80, 49, 77, 54, 73, 59, 71, 59, 73, 45, 67, 75, 74, 72, 56, 79, 65, 56, 59, 96, 53, 58, 70, 60, 69, 72, 63, 68, 50, 65, 48, 54, 74, 68, 56, 67, 70, 64, 71, 56, 83, 56, 55, 63, 64, 58, 55, 64, 63, 65, 56, 59, 66, 110, 87, 62, 75, 70, 58, 79, 108, 44, 61, 51, 64, 52, 56, 77, 61, 119, 49, 64, 78, 48, 64, 119, 56, 84, 51, 67, 59, 62, 74, 56, 63, 54, 78, 92, 51, 52, 51, 53, 66, 78, 64, 70, 58, 70, 55, 66, 121, 56, 67, 57, 59, 64, 75, 63, 60, 56, 84, 56, 71, 67, 74, 59, 44, 68, 57, 84, 52, 59, 64, 56, 67, 52, 58, 54, 52, 36, 65, 77, 99, 72, 59, 63, 74, 52, 61, 70, 79, 52, 97, 56, 84, 76, 60, 64, 56, 62, 70, 64, 60, 77, 61, 84, 62, 46, 73, 61, 54, 76, 44, 70, 54, 50, 63, 71, 64, 52, 75, 55, 51, 59, 54, 51, 62, 62, 64, 70, 52, 59, 57, 58, 71, 60, 100, 56, 59, 56, 57, 61, 47, 56, 52, 45, 65, 120, 66, 79, 42, 59, 61, 59, 73, 85, 77, 54, 65, 74, 71, 67, 102, 50, 69, 66, 63, 70, 56, 62, 57, 67, 73, 69, 77, 56, 66, 64, 71, 47, 62, 90, 61, 76, 58, 53, 68, 49, 120, 76, 55, 52, 55, 50, 70, 63, 61, 50, 54, 70, 58, 70, 80, 61, 50, 60, 83, 69, 73, 57, 70, 66, 66, 96, 61, 66, 97, 59, 64, 66, 68, 53, 58, 40, 56, 53, 84, 73, 62, 58, 64, 55, 70, 66, 77, 76, 80, 53, 57, 70, 67, 64, 69, 66, 63, 68, 57, 74, 94, 69, 84, 55, 64, 77, 72, 69, 69, 62, 55, 68, 48, 82, 63, 58, 62, 65, 57, 74, 54, 103, 56, 56, 59, 60, 54, 63, 75, 69, 51, 57, 59, 68, 81, 64, 54, 62, 78, 54, 66, 58, 46, 59, 72, 77, 71, 53, 66, 67, 62, 57, 56, 45, 56, 85, 59, 43, 96, 88, 49, 109, 65, 61, 64, 66, 58, 56, 100, 40, 59, 83, 76, 62, 39, 69, 79, 88, 42, 50, 64, 70, 61, 59, 61, 55, 63, 64, 57, 74, 67, 45, 83, 81, 58, 96, 53, 42, 58, 69, 62, 138, 65, 74, 109, 49, 69, 51, 62, 71, 51, 65, 61, 73, 72, 54, 52, 65, 53, 56, 50, 63, 58, 44, 79, 81, 58, 92, 104, 49, 56, 64, 42, 102, 56, 58, 57, 65, 92, 54, 66, 69, 77, 100, 69, 64, 74, 76, 74, 53, 112, 87, 59, 48, 87, 81, 58, 60, 55, 76, 55, 51, 59, 88, 74, 70, 71, 61, 75, 71, 86, 102, 68, 89, 64, 59, 92, 58, 67, 68, 67, 47, 78, 72, 52, 73, 55, 55, 80, 84, 101, 60, 54, 60, 27, 57, 56, 62, 59, 64, 78, 42, 65, 109, 72, 88, 70, 58, 64, 43, 65, 51, 62, 61, 71, 66, 66, 58, 55, 91, 43, 74, 62, 63, 71, 87, 71, 57, 72, 86, 51, 105, 64, 70, 56, 83, 80, 88, 41, 55, 64, 63, 80, 61, 48, 68, 73, 38, 74, 68, 82, 50, 55, 62, 74, 66, 62, 52, 56, 70, 52, 65, 35, 62, 56, 61, 62, 46, 77, 85, 54, 71, 67, 74, 70, 72, 55, 49, 62, 55, 67, 63, 51, 76, 74, 83, 65, 62, 65, 54, 47, 80, 41, 58, 56, 72, 88, 76, 75, 75, 63, 72, 51, 80, 59, 60, 53, 56, 37, 70, 67, 57, 80, 60, 72, 49, 45, 92, 74, 61, 64, 72, 40, 62, 29, 30, 62, 49, 88, 73, 49, 55, 54, 77, 70, 51, 53, 65, 53, 64, 75, 71, 47, 72, 87, 72, 71, 63, 55, 71, 79, 60, 57, 65, 52, 73, 63, 65, 54, 109, 68, 83, 87, 51, 63, 74, 60, 55, 59, 62, 74, 69, 72, 48, 67, 85, 42, 55, 69, 112, 137, 70, 59, 52, 69, 65, 84, 82, 38, 66, 65, 57, 98, 54, 72, 68, 94, 75, 77, 65, 63, 84, 54, 53, 70, 65, 56, 61, 60, 63, 69, 72, 72, 58, 47, 77, 92, 54, 81, 67, 53, 68, 62, 84, 67, 66, 90, 80, 68, 77, 55, 52, 54, 54, 85, 66, 90, 63, 63, 54, 90, 60, 60, 82, 85, 78, 79, 62, 52, 61, 72, 62, 45, 61, 61, 56, 92, 86, 75, 77, 59, 76, 54, 83, 53, 62, 72, 48, 56, 64, 61, 81, 62, 57, 65, 60, 59, 63, 98, 64, 60, 61, 80, 67, 58, 72, 65, 50, 66, 94, 63, 54, 50, 61, 52, 84, 65, 58, 51, 59, 93, 54, 69, 72, 62, 91, 48, 69, 71, 66, 73, 59, 66, 70, 55, 63, 70, 101, 51, 76, 40, 56, 57, 71, 63, 85, 53, 75, 58, 57, 53, 54, 81, 55, 61, 60, 60, 66, 59, 75, 54, 63, 56, 72, 70, 97, 67, 61, 74, 52, 83, 69, 62, 84, 64, 102, 43, 165, 94, 61, 55, 54, 74, 87, 64, 73, 55, 68, 42, 68, 67, 66, 61, 70, 68, 57, 60, 72, 47, 60, 91, 80, 57, 58, 55, 57, 80, 96, 52, 56, 68, 74, 68, 44, 58, 57, 57, 54, 43, 72, 83, 84, 73, 74, 67, 63, 47, 68, 45, 77, 56, 55, 59, 108, 64, 54, 64, 56, 63, 52, 53, 60, 50, 105, 52, 74, 62, 57, 89, 66, 63, 72, 58, 67, 66, 66, 91, 55, 97, 57, 62, 81, 80, 70, 44, 67, 67, 69, 59, 75, 69, 51, 56, 85, 56, 59, 50, 62, 48, 107, 44, 51, 85, 65, 80, 72, 60, 55, 64, 61, 73, 64, 63, 73, 68, 65, 58, 71, 79, 60, 64, 75, 83, 49, 54, 67, 51, 67, 75, 68, 54, 51, 61, 60, 66, 53, 52, 46, 30, 55, 59, 57, 50, 55, 69, 76, 62, 60, 67, 79, 52, 42, 53, 54, 64, 67, 62, 54, 58, 94, 78, 76, 62, 62, 64, 79, 68, 64, 70, 89, 74, 62, 61, 53, 61, 45, 73, 85, 54, 71, 55, 65, 67, 67, 50, 40, 64, 68, 58, 39, 76, 45, 63, 44, 71, 61, 46, 58, 87, 51, 73, 71, 46, 80, 68, 81, 46, 68, 69, 81, 56, 43, 54, 82, 77, 66, 84, 78, 74, 51, 66, 56, 58, 61, 59, 84, 55, 53, 68, 64, 77, 78, 79, 67, 62, 88, 50, 50, 55, 64, 61, 82, 59, 51, 76, 72, 54, 65, 80, 52, 56, 82, 55, 66, 55, 77, 71, 87, 40, 114, 55, 82, 79, 76, 48, 60, 107, 43, 57, 52, 65, 58, 53, 63, 60, 80, 78, 81, 49, 61, 41, 59, 55, 57, 60, 100, 44, 63, 69, 44, 71, 86, 62, 92, 65, 42, 58, 71, 87, 61, 72, 55, 66, 51, 54, 82, 64, 66, 68, 54, 72, 59, 79, 67, 59, 47, 108, 61, 62, 60, 63, 85, 51, 73, 60, 58, 60, 78, 61, 90, 61, 57, 53, 81, 65, 86, 61, 73, 52, 49, 69, 57, 48, 70, 80, 63, 58, 58, 68, 59, 82, 46, 67, 65, 48, 58, 51, 56, 49, 100, 68, 74, 63, 85, 97, 73, 72, 46, 71, 56, 80, 70, 82, 80, 95, 77, 71, 84, 94, 61, 70, 66, 51, 87, 60, 36, 52, 67, 75, 79, 45, 59, 70, 80, 88, 77, 63, 60, 79, 70, 71, 36, 56, 70, 130, 62, 71, 68, 62, 62, 61, 63, 59, 61, 53, 70, 46, 50, 58, 71, 67, 64, 66, 80, 46, 59, 56, 45, 63, 54, 70, 68, 111, 57, 63, 53, 65, 82, 56, 59, 68, 56, 107, 57, 69, 56, 55, 49, 44, 77, 90, 52, 72, 60, 72, 82, 54, 72, 72, 61, 87, 93, 66, 84, 73, 69, 60, 75, 59, 58, 55, 56, 69, 59, 39, 89, 44, 75, 72, 49, 69, 66, 63, 73, 75, 58, 53, 54, 50, 60, 68, 76, 62, 76, 48, 66, 79, 83, 90, 49, 57, 65, 46, 65, 54, 70, 56, 50, 44, 91, 65, 62, 60, 37, 76, 67, 60, 56, 76, 89, 43, 78, 60, 60, 96, 91, 75, 72, 67, 85, 70, 66, 80, 42, 71, 63, 67, 55, 48, 60, 75, 80, 51, 55, 67, 44, 72, 72, 59, 62, 65, 56, 82, 98, 56, 87, 69, 60, 65, 44, 60, 68, 71, 62, 90, 141, 81, 78, 89, 82, 79, 50, 51, 48, 65, 50, 78, 54, 56, 45, 106, 59, 61, 59, 76, 59, 58, 88, 74, 65, 93, 66, 43, 53, 30, 51, 49, 60, 51, 54, 60, 50, 79, 63, 51, 80, 76, 75, 68, 68, 97, 59, 66, 67, 113, 122, 49, 78, 93, 89, 46, 78, 62, 67, 90, 82, 59, 56, 57, 100, 76, 66, 75, 60, 74, 79, 52, 74, 65, 78, 46, 59, 58, 95, 87, 74, 68, 59, 60, 66, 64, 77, 95, 68, 107, 54, 48, 58, 82, 76, 46, 64, 55, 51, 46, 55, 67, 86, 61, 50, 68, 97, 74, 72, 72, 52, 77, 75, 55, 74, 64, 63, 66, 70, 72, 71, 79, 64, 50, 93, 86, 47, 72, 67, 56, 83, 53, 71, 90, 68, 60, 78, 74, 60, 67, 66, 84, 58, 55, 60, 63, 58, 67, 62, 88, 66, 67, 58, 51, 63, 110, 83, 58, 93, 76, 86, 58, 68, 82, 62, 77, 75, 44, 71, 70, 64, 70, 79, 97, 68, 60, 63, 64, 98, 63, 65, 52, 52, 40, 94, 63, 50, 57, 59, 54, 81, 68, 67, 69, 81, 60, 53, 52, 52, 65, 68, 50, 69, 59, 58, 51, 67, 75, 90, 76, 73, 87, 57, 79, 53, 61, 101, 75, 51, 59, 56, 47, 53, 58, 76, 71, 55, 72, 74, 34, 55, 50, 62, 74, 45, 73, 67, 53, 60, 104, 78, 52, 64, 79, 60, 58, 52, 74, 54, 66, 65, 56, 68, 58, 66, 62, 86, 75, 163, 50, 60, 76, 54, 70, 81, 59, 60, 55, 86, 49, 62, 82, 107, 56, 142, 44, 45, 66, 83, 108, 53, 56, 54, 45, 50, 56, 55, 63, 62, 58, 57, 87, 64, 57, 54, 61, 51, 67, 65, 58, 79, 68, 53, 47, 59, 57, 64, 62, 54, 57, 70, 57, 61, 72, 70, 64, 67, 74, 55, 68, 67, 71, 62, 62, 90, 65, 85, 51, 83, 70, 70, 42, 65, 52, 74, 43, 58, 76, 56, 53, 78, 58, 65, 71, 65, 71, 74, 82, 65, 68, 69, 57, 60, 76, 73, 72, 116, 70, 74, 71, 73, 73, 64, 66, 57, 74, 60, 60, 69, 79, 57, 57, 66, 54, 71, 72, 71, 52, 73, 63, 66, 61, 72, 80, 70, 54, 59, 61, 60, 55, 70, 68, 64, 72, 73, 58, 61, 55, 59, 123, 80, 74, 73, 66, 109, 68, 90, 78, 42, 63, 53, 57, 81, 58, 51, 92, 76, 76, 57, 64, 59, 56, 76, 109, 59, 67, 65, 71, 71, 49, 67, 63, 61, 58, 68, 54, 60, 66, 80, 71, 93, 59, 71, 57, 69, 65, 68, 66, 49, 54, 64, 60, 86, 55, 62, 60, 56, 108, 60, 75, 83, 67, 43, 59, 71, 45, 81, 62, 58, 73, 84, 60, 68, 62, 66, 62, 76, 55, 55, 62, 77, 50, 61, 56, 67, 49, 51, 62, 64, 71, 64, 102, 53, 66, 63, 64, 60, 79, 58, 48, 84, 63, 67, 58, 74, 64, 75, 56, 62, 44, 51, 52, 82, 71, 64, 68, 62, 58, 65, 76, 64, 57, 71, 73, 59, 46, 64, 54, 70, 69, 46, 63, 54, 61, 61, 129, 67, 84, 60, 64, 58, 50, 64, 56, 71, 75, 84, 54, 61, 62, 58, 76, 66, 66, 73, 83, 45, 92, 72, 50, 61, 65, 67, 72, 52, 59, 74, 76, 66, 76, 68, 70, 57, 55, 56, 74, 71, 73, 56, 63, 72, 54, 60, 58, 88, 73, 91, 59, 71, 52, 71, 68, 67, 66, 62, 57, 99, 62, 55, 68, 68, 79, 70, 75, 67, 49, 69, 53, 58, 47, 58, 59, 43, 90, 70, 43, 57, 66, 82, 90, 52, 58, 47, 62, 72, 59, 69, 63, 56, 80, 67, 62, 74, 58, 63, 62, 55, 59, 82, 62, 65, 67, 69, 61, 64, 69, 68, 71, 65, 81, 77, 80, 68, 64, 84, 65, 64, 56, 59, 63, 60, 74, 51, 55, 70, 151, 61, 58, 60, 60, 75, 58, 80, 63, 69, 75, 79, 64, 84, 57, 66, 53, 64, 53, 55, 87, 56, 61, 66, 52, 60, 63, 80, 64, 72, 64, 68, 55, 49, 72, 107, 67, 105, 58, 98, 77, 83, 62, 60, 72, 67, 49, 64, 65, 54, 44, 73, 88, 55, 75, 85, 59, 56, 56, 44, 106, 102, 68, 55, 64, 47, 49, 64, 48, 67, 89, 67, 58, 91, 69, 72, 84, 74, 64, 84, 51, 69, 52, 75, 99, 70, 61, 79, 130, 68, 68, 53, 58, 72, 62, 46, 65, 59, 67, 60, 78, 56, 71, 50, 78, 58, 64, 59, 64, 86, 57, 55, 54, 51, 51, 80, 55, 67, 74, 66, 45, 57, 60, 73, 55, 60, 60, 53, 75, 57, 65, 54, 65, 67, 63, 55, 74, 57, 45, 55, 48, 61, 62, 68, 85, 61, 86, 59, 54, 71, 55, 70, 63, 79, 64, 58, 89, 55, 54, 62, 66, 60, 60, 58, 54, 75, 84, 67, 74, 55, 58, 55, 58, 62, 53, 63, 62, 72, 55, 66, 55, 48, 74, 67, 80, 58, 50, 44, 77, 76, 57, 60, 67, 92, 55, 56, 70, 76, 85, 76, 54, 67, 58, 57, 54, 65, 66, 65, 59, 63, 66, 92, 63, 55, 86, 77, 127, 68, 67, 57, 51, 62, 73, 60, 65, 60, 80, 61, 108, 63, 55, 71, 52, 76, 65, 47, 80, 56, 72, 67, 69, 50, 84, 49, 71, 71, 105, 63, 80, 61, 58, 79, 57, 52, 52, 70, 58, 67, 77, 64, 64, 66, 65, 50, 61, 81, 52, 47, 65, 68, 59, 89, 54, 64, 58, 62, 60, 43, 60, 33, 87, 72, 70, 54, 62, 70, 78, 66, 52, 64, 64, 85, 44, 56, 59, 64, 76, 56, 75, 62, 75, 55, 59, 67, 64, 77, 60, 70, 77, 59, 53, 61, 80, 91, 70, 60, 75, 49, 71, 82, 47, 74, 59, 68, 56, 54, 69, 69, 56, 76, 55, 58, 54, 60, 78, 83, 71, 61, 59, 63, 45, 38, 57, 56, 61, 59, 66, 78, 75, 66, 78, 67, 68, 68, 72, 67, 65, 58, 57, 58, 83, 70, 128, 61, 66, 72, 83, 67, 63, 60, 72, 55, 66, 62, 55, 68, 60, 43, 65, 47, 62, 70, 50, 59, 64, 92, 71, 61, 48, 59, 63, 90, 69, 55, 52, 59, 47, 69, 64, 74, 52, 43, 102, 72, 55, 76, 66, 85, 93, 73, 49, 69, 59, 96, 42, 58, 65, 54, 77, 47, 72, 62, 67, 72, 61, 43, 78, 51, 49, 140, 59, 65, 64, 69, 81, 71, 72, 60, 60, 50, 68, 66, 52, 64, 58, 84, 65, 46, 74, 59, 66, 70, 81, 52, 62, 53, 60, 65, 59, 62, 75, 86, 79, 45, 62, 69, 48, 76, 67, 68, 49, 58, 71, 77, 53, 59, 56, 73, 49, 67, 65, 79, 73, 68, 53, 75, 65, 50, 52, 74, 57, 61, 53, 75, 70, 92, 62, 73, 56, 66, 55, 61, 74, 60, 59, 50, 54, 53, 79, 49, 56, 79, 79, 83, 92, 41, 62, 64, 59, 70, 79, 87, 53, 52, 60, 110, 66, 54, 86, 65, 62, 91, 60, 64, 70, 64, 60, 45, 55, 74, 74, 58, 51, 58, 80, 52, 66, 61, 56, 79, 73, 70, 75, 64, 54, 49, 69, 52, 56, 70, 81, 55, 65, 73, 64, 109, 52, 57, 58, 57, 86, 75, 69, 62, 48, 81, 67, 57, 66, 43, 63, 48, 52, 53, 73, 64, 76, 56, 53, 64, 63, 63, 54, 39, 58, 51, 66, 62, 86, 60, 63, 74, 63, 82, 54, 58, 62, 62, 70, 58, 68, 61, 74, 59, 69, 113, 62, 59, 66, 77, 59, 70, 65, 62, 59, 50, 81, 52, 70, 63, 73, 61, 90, 61, 47, 55, 69, 114, 104, 53, 70, 51, 55, 58, 67, 59, 47, 67, 71, 64, 80, 58, 73, 92, 67, 51, 61, 60, 53, 65, 68, 55, 66, 69, 63, 72, 50, 46, 75, 65, 68, 44, 64, 63, 88, 64, 58, 66, 65, 68, 55, 58, 64, 66, 69, 58, 58, 58, 65, 65, 92, 72, 68, 48, 56, 68, 63, 67, 68, 57, 86, 51, 72, 86, 74, 71, 58, 65, 60, 81, 59, 63, 57, 50, 77, 55, 64, 70, 61, 51, 62, 63, 55, 60, 81, 53, 88, 58, 63, 58, 58, 69, 60, 85, 71, 68, 81, 58, 68, 94, 68, 53, 57, 52, 62, 57, 59, 69, 58, 60, 50, 63, 72, 69, 62, 49, 64, 81, 84, 62, 62, 88, 72, 72, 58, 58, 67, 59, 63, 61, 59, 76, 72, 74, 80, 73, 59, 69, 79, 58, 44, 69, 78, 71, 63, 65, 57, 63, 48, 55, 111, 61, 57, 76, 55, 46, 71, 67, 53, 59, 60, 83, 54, 89, 68, 64, 65, 61, 111, 52, 65, 70, 54, 89, 48, 54, 82, 54, 67, 62, 88, 88, 80, 77, 55, 49, 65, 83, 69, 72, 63, 48, 62, 62, 52, 85, 77, 63, 74, 70, 66, 43, 67, 66, 36, 52, 75, 58, 78, 58, 67, 69, 64, 62, 49, 66, 49, 64, 82, 78, 57, 55, 58, 52, 50, 52, 59, 55, 48, 70, 49, 101, 74, 55, 65, 59, 52, 55, 52, 59, 64, 73, 83, 72, 61, 58, 49, 66, 63, 72, 73, 67, 53, 54, 94, 70, 65, 57, 58, 61, 98, 82, 58, 64, 62, 92, 57, 87, 51, 59, 38, 53, 68, 97, 61, 51, 65, 68, 45, 48, 76, 59, 63, 70, 67, 70, 59, 77, 62, 50, 85, 61, 70, 52, 67, 58, 66, 76, 59, 49, 61, 69, 63, 60, 62, 53, 50, 95, 62, 53, 72, 66, 81, 72, 74, 125, 62, 66, 71, 65, 84, 64, 55, 64, 51, 67, 72, 72, 69, 60, 63, 76, 86, 39, 56, 47, 52, 63, 79, 63, 54, 46, 63, 57, 75, 66, 62, 75, 69, 49, 43, 67, 89, 74, 63, 60, 67, 89, 65, 54, 78, 82, 65, 53, 56, 72, 98, 63, 66, 48, 70, 64, 63, 61, 62, 58, 76, 65, 71, 39, 65, 67, 52, 51, 74, 43, 72, 65, 43, 68, 51, 61, 67, 63, 85, 68, 52, 80, 86, 54, 47, 78, 63, 64, 92, 67, 49, 42, 65, 78, 69, 62, 73, 40, 54, 64, 54, 70, 61, 68, 66, 93, 79, 52, 89, 73, 89, 77, 64, 70, 73, 61, 59, 54, 72, 69, 79, 77, 73, 113, 58, 78, 61, 46, 107, 67, 43, 53, 66, 74, 58, 77, 60, 72, 105, 65, 65, 106, 43, 75, 58, 60, 62, 91, 63, 66, 63, 62, 80, 82, 65, 54, 62, 61, 54, 60, 50, 64, 61, 52, 69, 78, 133, 67, 75, 78, 57, 53, 108, 54, 69, 61, 50, 65, 62, 65, 51, 66, 56, 75, 61, 49, 57, 56, 70, 44, 61, 71, 41, 73, 58, 72, 63, 51, 58, 91, 42, 60, 66, 52, 72, 61, 69, 58, 51, 58, 64, 62, 91, 65, 64, 47, 56, 65, 63, 71, 62, 95, 75, 65, 53, 60, 60, 77, 67, 60, 52, 60, 60, 73, 46, 92, 53, 67, 61, 55, 60, 59, 60, 55, 95, 65, 68, 58, 49, 45, 66, 78, 69, 83, 56, 85, 78, 83, 56, 60, 57, 71, 57, 53, 53, 143, 89, 52, 55, 60, 60, 61, 76, 63, 53, 45, 62, 75, 69, 67, 59, 50, 66, 83, 65, 60, 51, 65, 60, 72, 58, 54, 51, 63, 91, 74, 63, 54, 62, 61, 58, 62, 64, 68, 117, 68, 68, 76, 61, 37, 78, 74, 67, 77, 78, 69, 64, 63, 76, 74, 62, 64, 89, 71, 61, 66, 49, 48, 58, 75, 62, 47, 62, 72, 62, 59, 49, 71, 70, 43, 55, 68, 72, 64, 79, 67, 68, 53, 77, 61, 62, 61, 67, 55, 76, 56, 70, 59, 70, 70, 55, 63, 66, 59, 112, 54, 71, 54, 61, 48, 79, 61, 71, 91, 52, 51, 52, 79, 71, 74, 61, 63, 64, 58, 66, 53, 48, 71, 49, 59, 65, 111, 63, 64, 67, 44, 54, 59, 68, 64, 60, 54, 101, 58, 56, 60, 59, 69, 75, 72, 64, 58, 51, 59, 51, 56, 80, 49, 77, 67, 71, 79, 76, 77, 71, 69, 55, 50, 76, 49, 120, 70, 51, 78, 60, 98, 57, 74, 54, 59, 74, 60, 86, 54, 58, 62, 68, 53, 48, 63, 59, 56, 49, 103, 66, 69, 57, 74, 46, 83, 78, 62, 66, 54, 83, 58, 61, 95, 77, 57, 96, 61, 69, 69, 103, 43, 72, 70, 53, 82, 68, 110, 64, 85, 65, 69, 93, 56, 79, 57, 65, 74, 51, 52, 78, 81, 76, 81, 66, 45, 68, 67, 69, 68, 65, 67, 63, 59, 59, 66, 63, 54, 62, 60, 107, 58, 67, 56, 68, 64, 68, 70, 55, 48, 69, 56, 57, 56, 55, 57, 93, 75, 64, 71, 66, 55, 58, 66, 63, 46, 71, 68, 64, 62, 76, 69, 60, 44, 62, 71, 86, 61, 44, 44, 53, 63, 62, 47, 66, 69, 67, 61, 85, 95, 65, 53, 64, 57, 68, 59, 97, 60, 63, 58, 61, 50, 63, 70, 90, 54, 66, 53, 60, 62, 55, 60, 71, 62, 67, 70, 82, 39, 104, 60, 68, 39, 76, 51, 58, 84, 58, 61, 72, 62, 72, 62, 61, 63, 60, 67, 45, 57, 60, 62, 50, 54, 76, 77, 69, 70, 78, 64, 69, 70, 70, 62, 63, 78, 47, 57, 54, 84, 69, 93, 54, 66, 81, 79, 125, 52, 62, 64, 58, 101, 64, 56, 69, 50, 63, 56, 62, 73, 88, 72, 67, 86, 74, 52, 56, 60, 66, 63, 70, 49, 44, 65, 90, 62, 64, 67, 63, 109, 87, 55, 70, 64, 84, 75, 64, 81, 109, 63, 59, 101, 66, 66, 51, 71, 112, 69, 56, 58, 69, 74, 76, 60, 47, 59, 67, 54, 70, 73, 63, 63, 69, 73, 94, 99, 61, 47, 80, 67, 50, 54, 49, 72, 68, 81, 111, 66, 68, 40, 65, 45, 84, 72, 44, 84, 52, 46, 50, 72, 66, 50, 67, 77, 66, 60, 78, 61, 72, 63, 77, 58, 66, 48, 88, 79, 53, 69, 51, 57, 67, 73, 57, 66, 83, 58, 99, 74, 73, 66, 74, 73, 57, 63, 76, 51, 78, 91, 69, 98, 89, 60, 63, 54, 66, 98, 66, 61, 52, 53, 81, 62, 60, 67, 76, 56, 69, 60, 54, 57, 65, 81, 64, 56, 67, 58, 59, 91, 59, 106, 53, 62, 54, 68, 61, 58, 44, 72, 73, 55, 52, 65, 78, 77, 59, 70, 67, 58, 65, 57, 65, 60, 60, 67, 73, 64, 70, 56, 49, 61, 50, 58, 79, 56, 64, 49, 54, 57, 73, 61, 84, 55, 75, 73, 61, 84, 78, 64, 81, 58, 69, 78, 67, 63, 78, 54, 43, 61, 52, 45, 40, 71, 50, 75, 86, 56, 82, 60, 68, 54, 67, 62, 76, 93, 76, 61, 61, 82, 69, 55, 68, 84, 60, 61, 103, 66, 72, 92, 64, 64, 75, 88, 62, 52, 60, 69, 60, 54, 58, 74, 59, 52, 60, 51, 72, 66, 63, 71, 67, 55, 58, 54, 75, 57, 63, 62, 88, 56, 71, 55, 61, 61, 75, 45, 112, 67, 93, 66, 60, 76, 75, 78, 49, 48, 73, 57, 74, 73, 74, 78, 62, 57, 69, 53, 69, 84, 68, 71, 81, 62, 56, 74, 56, 62, 71, 68, 53, 45, 54, 83, 123, 48, 63, 65, 60, 78, 100, 82, 71, 66, 61, 83, 61, 68, 72, 59, 54, 55, 79, 58, 50, 60, 66, 60, 56, 48, 51, 55, 63, 69, 65, 67, 59, 63, 59, 61, 57, 55, 73, 63, 54, 65, 70, 57, 73, 65, 60, 47, 64, 75, 68, 79, 84, 58, 63, 57, 63, 82, 67, 49, 68, 95, 60, 53, 69, 55, 84, 54, 75, 53, 59, 49, 68, 60, 55, 70, 54, 77, 57, 43, 50, 68, 58, 84, 80, 48, 69, 67, 53, 61, 65, 60, 67, 60, 56, 70, 79, 57, 68, 58, 59, 56, 60, 72, 61, 67, 72, 59, 62, 62, 70, 67, 65, 68, 77, 52, 67, 79, 74, 65, 48, 50, 66, 65, 60, 47, 54, 57, 68, 72, 73, 57, 72, 72, 68, 58, 71, 69, 84, 64, 62, 76, 67, 99, 46, 52, 62, 58, 66, 41, 70, 67, 49, 56, 59, 67, 66, 50, 61, 90, 61, 81, 72, 66, 64, 96, 78, 67, 71, 46, 57, 60, 84, 84, 71, 62, 80, 86, 100, 65, 62, 68, 64, 77, 67, 68, 57, 60, 64, 64, 54, 126, 74, 55, 51, 53, 59, 54, 72, 61, 71, 62, 68, 59, 62, 60, 66, 63, 60, 82, 54, 75, 57, 69, 64, 66, 58, 70, 59, 87, 64, 61, 63, 56, 58, 52, 73, 73, 87, 59, 83, 73, 60, 50, 103, 78, 71, 66, 61, 67, 44, 74, 62, 66, 62, 70, 77, 75, 60, 63, 66, 72, 67, 57, 68, 57, 63, 68, 62, 52, 54, 67, 60, 59, 64, 66, 78, 67, 69, 60, 69, 96, 75, 59, 112, 50, 97, 65, 55, 65, 60, 61, 57, 59, 48, 67, 66, 72, 64, 76, 65, 53, 63, 65, 70, 45, 111, 74, 65, 54, 64, 70, 66, 48, 82, 57, 58, 39, 65, 62, 82, 63, 64, 61, 58, 70, 62, 63, 69, 78, 75, 59, 56, 57, 70, 50, 68, 84, 76, 64, 63, 82, 57, 66, 70, 60, 69, 46, 69, 66, 70, 116, 80, 57, 93, 51, 83, 74, 83, 62, 58, 77, 60, 75, 65, 102, 100, 47, 53, 56, 53, 100, 83, 47, 57, 66, 62, 52, 57, 67, 60, 63, 70, 81, 52, 80, 113, 59, 75, 70, 61, 68, 66, 57, 69, 64, 59, 69, 60, 62, 72, 69, 62, 90, 58, 69, 73, 79, 62, 75, 58, 67, 60, 54, 56, 64, 71, 84, 69, 79, 66, 68, 72, 61, 47, 62, 47, 69, 59, 62, 60, 76, 79, 53, 58, 68, 65, 67, 59, 57, 73, 86, 60, 60, 59, 65, 61, 58, 67, 105, 55, 52, 63, 45, 67, 62, 79, 63, 49, 47, 59, 62, 54, 94, 61, 60, 66, 58, 50, 74, 65, 70, 60, 73, 68, 66, 60, 60, 58, 94, 70, 54, 58, 53, 70, 52, 71, 71, 72, 64, 52, 65, 56, 68, 64, 82, 67, 69, 67, 59, 87, 56, 109, 62, 64, 64, 50, 61, 49, 56, 58, 57, 59, 60, 51, 61, 62, 70, 71, 66, 55, 63, 69, 54, 64, 81, 66, 69, 69, 51, 81, 44, 66, 49, 55, 42, 68, 54, 64, 75, 49, 53, 57, 72, 73, 51, 68, 63, 66, 61, 66, 58, 67, 88, 55, 57, 58, 72, 71, 48, 84, 76, 51, 62, 56, 51, 69, 59, 72, 70, 53, 56, 59, 52, 73, 56, 70, 65, 60, 89, 70, 62, 62, 75, 58, 100, 49, 65, 69, 56, 59, 65, 68, 60, 65, 55, 65, 76, 72, 60, 66, 51, 73, 67, 67, 63, 101, 78, 74, 65, 69, 57, 83, 129, 55, 61, 93, 122, 61, 65, 55, 83, 60, 70, 65, 63, 76, 98, 66, 64, 58, 56, 67, 71, 62, 66, 62, 61, 69, 64, 66, 58, 50, 68, 66, 58, 71, 64, 99, 72, 67, 101, 45, 67, 54, 63, 76, 62, 57, 63, 51, 53, 63, 67, 48, 72, 62, 63, 87, 62, 64, 87, 53, 62, 70, 53, 61, 65, 125, 71, 67, 54, 71, 74, 73, 65, 83, 60, 72, 62, 56, 64, 68, 66, 64, 62, 54, 70, 65, 59, 49, 74, 84, 80, 69, 81, 69, 40, 64, 68, 71, 55, 70, 119, 56, 62, 56, 67, 67, 57, 63, 66, 63, 73, 63, 68, 77, 60, 48, 58, 68, 81, 62, 82, 61, 76, 61, 60, 76, 41, 107, 80, 76, 69, 66, 67, 69, 64, 62, 89, 67, 45, 86, 64, 58, 80, 51, 61, 67, 63, 71, 62, 60, 75, 70, 65, 56, 55, 64, 67, 69, 67, 57, 58, 59, 89, 63, 73, 107, 66, 61, 65, 86, 62, 54, 63, 55, 72, 61, 59, 52, 64, 86, 78, 79, 74, 55, 57, 83, 75, 64, 67, 63, 71, 82, 61, 61, 68, 52, 63, 65, 75, 72, 56, 62, 58, 58, 74, 52, 54, 71, 73, 81, 51, 71, 55, 49, 59, 65, 57, 74, 80, 76, 79, 48, 62, 70, 63, 106, 73, 55, 69, 87, 50, 47, 61, 67, 59, 78, 65, 64, 65, 65, 59, 62, 108, 77, 69, 56, 54, 55, 50, 77, 64, 66, 49, 72, 70, 59, 58, 61, 59, 71, 58, 63, 57, 63, 79, 49, 68, 60, 57, 63, 60, 56, 57, 115, 43, 58, 56, 66, 70, 60, 59, 125, 34, 52, 64, 61, 58, 55, 60, 62, 58, 62, 46, 71, 60, 66, 79, 64, 60, 49, 69, 48, 71, 53, 56, 69, 77, 48, 63, 74, 67, 54, 91, 55, 52, 63, 83, 92, 64, 62, 69, 56, 59, 59, 78, 65, 61, 68, 52, 62, 75, 63, 52, 82, 61, 70, 61, 58, 60, 50, 69, 56, 51, 60, 70, 85, 97, 73, 104, 61, 60, 74, 70, 68, 60, 62, 86, 88, 53, 60, 56, 64, 70, 67, 55, 72, 89, 63, 53, 59, 63, 65, 59, 96, 64, 66, 36, 48, 58, 71, 58, 53, 65, 58, 47, 62, 65, 86, 40, 56, 49, 69, 54, 68, 61, 67, 65, 57, 70, 65, 96, 74, 61, 58, 53, 60, 58, 64, 77, 67, 66, 69, 71, 88, 53, 74, 91, 68, 62, 67, 53, 108, 73, 72, 59, 65, 79, 53, 67, 55, 61, 65, 107, 80, 58, 55, 72, 50, 75, 54, 56, 80, 54, 72, 63, 53, 64, 84, 58, 58, 83, 62, 87, 60, 60, 71, 57, 75, 54, 68, 76, 72, 62, 64, 60, 76, 67, 59, 61, 84, 54, 54, 87, 86, 81, 64, 113, 67, 67, 63, 77, 70, 90, 49, 58, 81, 71, 53, 56, 51, 58, 63, 73, 46, 57, 37, 66, 60, 63, 84, 61, 78, 81, 61, 64, 62, 41, 65, 67, 58, 62, 53, 67, 91, 51, 59, 90, 59, 64, 71, 65, 65, 60, 69, 59, 61, 59, 53, 45, 77, 58, 130, 63, 64, 52, 60, 65, 57, 71, 79, 75, 47, 66, 64, 72, 54, 82, 47, 53, 71, 62, 52, 64, 66, 62, 81, 86, 73, 86, 51, 71, 48, 58, 83, 100, 68, 70, 58, 84, 76, 66, 54, 74, 69, 59, 60, 57, 71, 44, 57, 64, 74, 73, 60, 86, 55, 79, 62, 92, 100, 80, 69, 81, 77, 81, 89, 72, 70, 106, 84, 45, 65, 67, 56, 63, 63, 61, 68, 61, 54, 69, 93, 71, 44, 69, 63, 62, 67, 51, 58, 61, 114, 48, 63, 51, 112, 68, 81, 72, 56, 53, 50, 50, 45, 65, 75, 70, 82, 48, 38, 64, 58, 64, 67, 52, 40, 69, 63, 61, 64, 51, 59, 65, 62, 36, 112, 61, 65, 51, 67, 57, 46, 58, 80, 75, 46, 60, 82, 74, 97, 62, 63, 65, 78, 59, 74, 57, 66, 104, 61, 58, 64, 49, 62, 83, 63, 93, 57, 59, 65, 60, 73, 64, 57, 60, 67, 57, 59, 73, 59, 64, 59, 69, 67, 80, 58, 69, 52, 86, 68, 65, 46, 55, 69, 52, 51, 50, 57, 59, 58, 57, 54, 79, 87, 53, 59, 55, 55, 65, 66, 41, 61, 65, 67, 77, 112, 109, 54, 56, 56, 60, 72, 55, 70, 74, 65, 69, 62, 67, 56, 58, 74, 71, 51, 72, 68, 59, 67, 75, 63, 70, 66, 87, 69, 55, 63, 61, 66, 66, 58, 67, 63, 76, 65, 63, 65, 85, 69, 50, 73, 66, 67, 43, 58, 88, 64, 67, 58, 67, 62, 66, 69, 128, 54, 54, 66, 66, 107, 57, 57, 72, 60, 59, 64, 71, 50, 122, 64, 66, 64, 52, 52, 59, 134, 75, 95, 65, 61, 72, 44, 59, 48, 60, 61, 61, 75, 75, 73, 111, 53, 70, 54, 53, 69, 72, 58, 63, 63, 70, 45, 71, 55, 73, 70, 58, 67, 75, 72, 56, 77, 61, 54, 71, 83, 65, 58, 65, 64, 72, 73, 105, 68, 91, 71, 67, 102, 70, 74, 57, 48, 69, 59, 78, 53, 80, 85, 54, 64, 74, 79, 63, 62, 63, 80, 55, 50, 64, 46, 60, 52, 60, 85, 41, 71, 69, 52, 60, 78, 82, 73, 74, 70, 64, 63, 54, 56, 86, 54, 57, 58, 70, 70, 63, 67, 55, 60, 67, 74, 55, 52, 51, 46, 54, 45, 63, 94, 66, 64, 102, 70, 125, 68, 67, 82, 68, 60, 57, 66, 53, 86, 75, 64, 63, 89, 44, 62, 40, 65, 60, 65, 56, 60, 50, 48, 55, 67, 55, 75, 62, 67, 66, 61, 65, 82, 92, 66, 70, 48, 63, 64, 52, 70, 70, 63, 79, 71, 77, 59, 84, 80, 43, 66, 45, 57, 54, 64, 72, 70, 66, 79, 65, 54, 66, 69, 93, 52, 57, 71, 64, 53, 60, 62, 53, 80, 74, 69, 64, 68, 76, 65, 82, 58, 55, 54, 59, 73, 49, 64, 70, 57, 60, 60, 61, 66, 71, 56, 59, 61, 87, 74, 63, 66, 81, 68, 72, 58, 94, 51, 69, 64, 76, 50, 56, 48, 52, 46, 88, 89, 68, 70, 44, 57, 51, 60, 62, 49, 45, 76, 62, 99, 76, 54, 65, 63, 65, 40, 77, 54, 37, 56, 93, 66, 78, 71, 58, 60, 56, 61, 107, 21, 66, 53, 47, 85, 71, 63, 61, 63, 60, 68, 56, 46, 68, 83, 71, 49, 70, 104, 60, 64, 66, 68, 58, 69, 86, 48, 58, 66, 71, 53, 56, 80, 79, 51, 49, 62, 106, 55, 57, 44, 54, 68, 67, 56, 98, 63, 71, 69, 72, 58, 59, 76, 46, 77, 75, 76, 72, 125, 55, 56, 67, 61, 69, 53, 67, 68, 82, 57, 57, 65, 63, 66, 59, 60, 78, 62, 57, 65, 71, 75, 43, 61, 58, 76, 51, 67, 66, 55, 63, 64, 72, 78, 54, 74, 69, 59, 72, 49, 60, 68, 62, 51, 59, 45, 49, 99, 52, 68, 75, 89, 68, 68, 50, 66, 64, 67, 77, 76, 57, 59, 57, 63, 66, 93, 81, 74, 71, 62, 64, 67, 109, 59, 81, 59, 60, 58, 58, 73, 56, 55, 61, 66, 71, 57, 59, 61, 53, 73, 60, 64, 58, 61, 63, 51, 55, 46, 62, 73, 76, 76, 72, 57, 84, 67, 64, 68, 56, 69, 53, 83, 56, 57, 53, 70, 66, 65, 57, 100, 71, 63, 67, 67, 60, 37, 137, 72, 78, 46, 84, 56, 67, 57, 54, 52, 62, 66, 109, 65, 79, 67, 79, 64, 74, 66, 67, 88, 64, 51, 69, 55, 104, 97, 99, 60, 64, 84, 60, 61, 56, 68, 54, 67, 66, 62, 90, 59, 76, 55, 79, 67, 55, 62, 77, 50, 72, 67, 80, 78, 73, 57, 61, 67, 78, 101, 61, 79, 58, 70, 62, 70, 59, 69, 60, 67, 51, 53, 60, 68, 77, 63, 69, 54, 64, 50, 66, 60, 61, 66, 78, 77, 56, 54, 78, 61, 59, 71, 60, 66, 87, 65, 53, 76, 65, 67, 56, 80, 65, 92, 60, 48, 65, 87, 80, 67, 62, 83, 76, 55, 48, 72, 53, 53, 53, 62, 54, 53, 55, 47, 69, 52, 53, 72, 70, 58, 101, 44, 89, 63, 62, 58, 72, 65, 53, 49, 48, 65, 71, 78, 48, 57, 65, 64, 67, 70, 59, 65, 65, 63, 61, 82, 54, 62, 58, 65, 66, 61, 45, 46, 87, 63, 145, 57, 58, 58, 58, 58, 69, 93, 66, 62, 56, 58, 58, 59, 63, 63, 58, 61, 51, 60, 65, 60, 76, 71, 60, 68, 83, 62, 56, 78, 67, 59, 69, 80, 36, 83, 49, 60, 52, 80, 80, 45, 50, 72, 71, 59, 79, 66, 75, 79, 56, 78, 55, 49, 59, 70, 66, 53, 48, 52, 82, 56, 55, 95, 80, 91, 65, 84, 53, 61, 54, 55, 69, 57, 95, 62, 105, 40, 45, 58, 54, 68, 54, 81, 36, 58, 80, 63, 65, 60, 68, 53, 58, 63, 56, 52, 68, 62, 79, 46, 54, 61, 51, 62, 51, 65, 74, 81, 53, 72, 53, 65, 59, 76, 74, 67, 85, 63, 59, 51, 58, 90, 60, 59, 61, 57, 74, 57, 45, 97, 84, 61, 89, 49, 77, 67, 60, 65, 64, 83, 75, 67, 61, 70, 56, 54, 53, 66, 71, 62, 63, 58, 66, 70, 48, 77, 77, 85, 99, 50, 60, 57, 61, 57, 65, 71, 85, 90, 50, 85, 68, 69, 72, 48, 96, 55, 68, 61, 47, 71, 79, 52, 55, 71, 48, 57, 73, 73, 100, 74, 59, 90, 60, 61, 65, 63, 72, 72, 112, 63, 79, 58, 58, 53, 66, 62, 100, 63, 55, 70, 62, 66, 98, 69, 49, 86, 63, 75, 52, 110, 69, 78, 57, 62, 59, 75, 71, 53, 81, 80, 78, 66, 57, 75, 54, 60, 53, 64, 91, 61, 48, 64, 54, 57, 56, 84, 46, 89, 72, 126, 71, 54, 58, 71, 64, 59, 73, 45, 42, 73, 62, 88, 57, 48, 85, 58, 86, 78, 59, 73, 63, 59, 75, 82, 61, 72, 66, 69, 66, 55, 46, 57, 67, 79, 63, 56, 67, 60, 63, 82, 62, 67, 76, 47, 68, 76, 63, 62, 70, 62, 53, 58, 38, 66, 68, 63, 64, 61, 65, 76, 66, 75, 64, 51, 65, 64, 80, 62, 67, 44, 55, 66, 57, 53, 65, 63, 55, 67, 123, 77, 92, 60, 54, 79, 72, 60, 53, 69, 73, 60, 69, 80, 66, 83, 62, 69, 74, 64, 70, 61, 51, 56, 61, 54, 61, 54, 74, 80, 63, 47, 55, 79, 54, 47, 62, 73, 59, 59, 66, 48, 64, 63, 57, 54, 63, 58, 87, 61, 61, 68, 59, 74, 52, 66, 68, 66, 137, 48, 46, 64, 68, 129, 74, 80, 66, 60, 69, 79, 56, 65, 78, 62, 69, 106, 53, 53, 66, 62, 91, 63, 65, 80, 57, 50, 76, 62, 68, 83, 51, 77, 61, 64, 61, 72, 83, 106, 66, 56, 70, 57, 59, 51, 84, 55, 61, 66, 88, 77, 68, 54, 66, 54, 67, 64, 73, 60, 71, 63, 88, 59, 46, 62, 67, 95, 77, 82, 71, 74, 50, 58, 63, 104, 58, 73, 67, 53, 74, 56, 57, 56, 46, 93, 42, 75, 56, 66, 64, 58, 65, 72, 92, 74, 71, 54, 60, 79, 51, 61, 66, 62, 54, 64, 83, 67, 54, 72, 78, 66, 52, 54, 103, 66, 65, 53, 64, 58, 64, 74, 66, 71, 47, 47, 60, 63, 76, 62, 49, 82, 66, 51, 61, 59, 77, 55, 186, 65, 103, 102, 67, 75, 74, 68, 58, 62, 54, 74, 71, 73, 51, 61, 50, 72, 52, 89, 72, 69, 74, 60, 62, 73, 57, 61, 118, 66, 73, 53, 66, 60, 70, 60, 57, 69, 59, 55, 52, 70, 60, 69, 70, 66, 72, 63, 71, 63, 74, 71, 54, 70, 65, 67, 61, 62, 71, 66, 83, 65, 65, 69, 81, 78, 94, 62, 74, 71, 53, 54, 78, 96, 55, 104, 52, 74, 92, 64, 37, 66, 66, 62, 49, 62, 64, 57, 67, 85, 60, 59, 55, 70, 92, 60, 51, 60, 65, 78, 68, 70, 53, 67, 75, 54, 71, 68, 52, 64, 67, 63, 47, 64, 56, 63, 76, 63, 68, 55, 60, 65, 66, 58, 57, 79, 60, 67, 70, 132, 59, 62, 58, 61, 54, 35, 58, 66, 70, 60, 61, 67, 61, 84, 71, 79, 68, 57, 52, 95, 58, 63, 86, 50, 56, 56, 67, 65, 70, 55, 47, 51, 54, 71, 60, 60, 75, 59, 58, 54, 78, 51, 111, 64, 49, 68, 67, 76, 64, 61, 71, 82, 82, 70, 55, 64, 87, 65, 74, 59, 50, 66, 77, 55, 63, 46, 64, 63, 60, 92, 72, 57, 52, 66, 63, 66, 77, 58, 61, 59, 54, 72, 60, 60, 77, 60, 56, 54, 57, 72, 67, 74, 45, 71, 93, 40, 51, 64, 55, 67, 73, 53, 54, 50, 38, 68, 63, 57, 61, 65, 103, 62, 59, 47, 57, 67, 123, 72, 65, 74, 143, 73, 61, 54, 67, 66, 71, 68, 65, 94, 67, 55, 61, 52, 61, 62, 83, 60, 67, 58, 67, 44, 67, 98, 67, 69, 50, 78, 54, 81, 69, 65, 55, 58, 61, 73, 62, 74, 61, 62, 58, 54, 72, 73, 56, 70, 61, 72, 80, 62, 55, 60, 71, 61, 59, 66, 72, 82, 61, 66, 70, 64, 79, 87, 41, 61, 75, 68, 67, 62, 60, 57, 70, 94, 61, 86, 58, 44, 40, 65, 62, 44, 61, 48, 100, 76, 97, 49, 71, 64, 48, 55, 59, 58, 74, 56, 39, 47, 69, 71, 72, 64, 62, 61, 74, 57, 63, 70, 62, 72, 87, 69, 67, 62, 59, 73, 61, 71, 68, 64, 54, 75, 55, 63, 63, 81, 80, 49, 54, 44, 70, 60, 70, 63, 69, 60, 69, 58, 93, 68, 74, 75, 64, 90, 58, 102, 69, 54, 69, 63, 51, 57, 58, 89, 61, 67, 65, 69, 69, 105, 65, 62, 60, 71, 53, 53, 64, 66, 107, 73, 55, 58, 71, 67, 67, 62, 57, 66, 76, 63, 57, 60, 67, 61, 57, 53, 58, 59, 71, 65, 60, 65, 99, 68, 70, 77, 86, 60, 72, 57, 45, 63, 82, 64, 62, 61, 54, 77, 63, 65, 66, 72, 58, 52, 65, 56, 91, 64, 57, 74, 68, 44, 83, 82, 69, 78, 76, 63, 48, 67, 73, 105, 79, 56, 51, 60, 60, 70, 62, 70, 75, 61, 62, 68, 69, 51, 62, 72, 63, 57, 81, 54, 89, 60, 82, 53, 55, 72, 62, 59, 65, 76, 57, 53, 82, 83, 77, 69, 69, 65, 58, 110, 42, 52, 57, 70, 86, 61, 69, 73, 60, 55, 64, 66, 49, 75, 62, 77, 69, 66, 58, 61, 61, 74, 83, 67, 64, 56, 73, 73, 71, 53, 54, 55, 78, 71, 65, 78, 81, 49, 76, 60, 48, 98, 67, 75, 74, 99, 56, 70, 67, 69, 61, 60, 83, 53, 89, 72, 57, 64, 59, 76, 56, 57, 55, 61, 56, 75, 63, 58, 60, 58, 55, 57, 53, 66, 92, 66, 72, 50, 59, 67, 58, 62, 63, 57, 62, 74, 54, 65, 61, 67, 53, 74, 68, 71, 60, 64, 74, 81, 66, 63, 78, 64, 58, 66, 39, 63, 63, 86, 56, 71, 68, 96, 62, 69, 63, 70, 68, 72, 66, 63, 74, 52, 71, 51, 60, 56, 60, 57, 88, 60, 58, 62, 60, 64, 57, 86, 100, 63, 62, 51, 65, 73, 73, 59, 80, 78, 52, 61, 63, 66, 88, 56, 60, 60, 75, 59, 70, 66, 75, 63, 51, 61, 52, 66, 90, 116, 88, 65, 69, 42, 64, 67, 56, 60, 56, 64, 82, 60, 51, 63, 78, 63, 56, 64, 69, 81, 60, 63, 67, 62, 59, 49, 45, 79, 60, 62, 76, 77, 54, 94, 71, 48, 78, 69, 98, 50, 56, 94, 52, 72, 56, 132, 49, 66, 59, 72, 67, 68, 55, 67, 67, 59, 67, 56, 67, 74, 65, 78, 58, 72, 51, 64, 66, 57, 64, 56, 62, 68, 54, 74, 55, 76, 73, 62, 57, 66, 73, 70, 70, 75, 64, 68, 71, 46, 68, 71, 65, 73, 57, 70, 57, 75, 53, 59, 67, 66, 66, 73, 67, 57, 57, 68, 74, 50, 70, 66, 55, 68, 70, 68, 56, 62, 83, 66, 64, 66, 61, 75, 80, 103, 53, 34, 55, 61, 82, 58, 62, 56, 56, 89, 81, 68, 60, 62, 49, 65, 54, 129, 94, 60, 69, 74, 58, 75, 72, 77, 63, 52, 54, 60, 65, 61, 75, 64, 97, 59, 69, 71, 54, 65, 58, 64, 65, 54, 69, 73, 55, 64, 65, 59, 57, 60, 62, 67, 66, 63, 45, 65, 55, 67, 78, 67, 50, 84, 64, 59, 67, 82, 60, 73, 63, 62, 67, 52, 177, 60, 76, 74, 74, 135, 45, 69, 63, 64, 66, 77, 61, 70, 90, 64, 66, 63, 71, 66, 62, 89, 69, 66, 61, 49, 73, 51, 93, 60, 66, 72, 67, 76, 75, 66, 70, 59, 52, 89, 58, 56, 67, 59, 87, 58, 74, 49, 66, 72, 71, 80, 48, 69, 64, 52, 61, 64, 64, 65, 83, 53, 71, 58, 58, 67, 45, 92, 99, 74, 47, 57, 74, 65, 52, 103, 62, 56, 69, 55, 73, 53, 69, 58, 55, 68, 65, 55, 62, 67, 54, 90, 67, 70, 61, 91, 70, 61, 57, 90, 73, 46, 81, 57, 63, 60, 79, 69, 78, 59, 65, 99, 55, 58, 70, 57, 73, 54, 71, 71, 76, 107, 58, 64, 63, 70, 75, 63, 65, 47, 70, 56, 66, 63, 58, 60, 79, 64, 141, 62, 85, 60, 79, 63, 52, 49, 60, 99, 79, 70, 60, 60, 57, 65, 57, 72, 64, 61, 69, 69, 67, 68, 61, 61, 49, 60, 88, 36, 72, 73, 66, 58, 74, 53, 56, 62, 72, 57, 37, 52, 70, 53, 60, 67, 83, 60, 61, 62, 61, 61, 81, 65, 49, 80, 63, 55, 66, 59, 68, 67, 61, 53, 71, 58, 73, 62, 65, 71, 48, 57, 60, 91, 60, 63, 54, 61, 61, 57, 54, 68, 60, 61, 53, 72, 62, 71, 72, 60, 60, 91, 63, 59, 56, 78, 66, 81, 88, 55, 57, 71, 81, 47, 74, 67, 70, 66, 62, 53, 50, 56, 65, 65, 61, 57, 64, 78, 56, 51, 66, 69, 59, 69, 56, 66, 57, 62, 72, 106, 73, 49, 48, 65, 53, 55, 73, 80, 68, 59, 88, 78, 71, 62, 72, 55, 76, 60, 80, 107, 68, 64, 57, 83, 65, 67, 91, 59, 62, 101, 76, 53, 55, 79, 70, 69, 65, 50, 60, 62, 67, 66, 75, 69, 75, 44, 61, 56, 69, 55, 75, 72, 71, 56, 46, 68, 80, 72, 65, 62, 59, 65, 60, 60, 106, 57, 58, 65, 59, 65, 99, 57, 68, 40, 54, 64, 58, 69, 64, 52, 69, 65, 49, 64, 61, 55, 63, 49, 59, 64, 71, 75, 78, 50, 117, 59, 65, 65, 65, 69, 79, 65, 65, 55, 55, 62, 54, 75, 54, 72, 37, 53, 66, 54, 78, 62, 92, 66, 61, 58, 84, 57, 63, 58, 69, 100, 70, 68, 60, 134, 56, 57, 65, 51, 62, 56, 62, 68, 65, 61, 62, 69, 56, 74, 46, 60, 57, 62, 63, 68, 67, 64, 81, 58, 62, 57, 73, 69, 67, 68, 59, 60, 75, 51, 61, 68, 57, 77, 67, 56, 67, 76, 55, 76, 57, 72, 65, 53, 76, 68, 61, 52, 70, 63, 56, 75, 56, 49, 63, 51, 68, 55, 50, 65, 60, 90, 60, 70, 61, 68, 61, 52, 51, 53, 106, 71, 126, 69, 54, 56, 59, 64, 65, 47, 72, 60, 75, 57, 66, 61, 65, 72, 67, 69, 72, 70, 63, 63, 65, 64, 70, 83, 92, 75, 65, 53, 60, 117, 47, 68, 62, 67, 62, 70, 59, 44, 62, 56, 64, 65, 71, 68, 53, 59, 66, 58, 73, 70, 49, 72, 103, 77, 57, 91, 60, 68, 55, 73, 48, 74, 74, 62, 61, 65, 71, 77, 85, 64, 69, 54, 67, 64, 77, 59, 75, 49, 52, 58, 59, 73, 47, 75, 82, 54, 64, 71, 56, 58, 85, 59, 46, 73, 119, 56, 65, 54, 67, 78, 50, 58, 75, 53, 72, 56, 50, 81, 51, 78, 57, 93, 82, 90, 52, 47, 51, 43, 57, 114, 212, 61, 66, 77, 74, 59, 64, 45, 74, 69, 58, 47, 55, 54, 64, 69, 55, 50, 48, 57, 58, 61, 68, 38, 64, 57, 82, 87, 83, 70, 68, 67, 72, 52, 71, 63, 54, 106, 52, 46, 72, 54, 58, 65, 67, 63, 71, 43, 62, 64, 59, 54, 53, 50, 48, 63, 77, 86, 90, 68, 65, 54, 59, 86, 51, 71, 65, 67, 61, 60, 55, 55, 57, 85, 83, 64, 40, 55, 60, 69, 97, 55, 56, 63, 52, 71, 64, 49, 71, 58, 61, 77, 62, 52, 52, 60, 67, 68, 66, 67, 74, 70, 54, 62, 62, 66, 67, 50, 74, 102, 67, 81, 76, 104, 58, 63, 62, 71, 92, 50, 54, 55, 70, 61, 55, 70, 54, 55, 72, 66, 65, 41, 51, 63, 63, 60, 83, 80, 41, 62, 65, 64, 80, 64, 88, 66, 54, 58, 61, 66, 69, 64, 62, 50, 64, 82, 42, 76, 71, 58, 66, 66, 59, 76, 70, 79, 85, 58, 69, 52, 75, 81, 53, 80, 54, 49, 68, 65, 55, 53, 75, 78, 56, 46, 58, 58, 71, 77, 82, 43, 71, 50, 59, 75, 66, 69, 61, 62, 84, 65, 115, 108, 98, 54, 37, 82, 79, 68, 98, 51, 70, 104, 50, 52, 64, 64, 64, 56, 79, 48, 66, 65, 56, 55, 33, 55, 73, 88, 61, 63, 73, 91, 64, 64, 56, 67, 97, 51, 43, 62, 63, 52, 45, 58, 64, 58, 64, 64, 74, 57, 62, 74, 44, 81, 49, 79, 64, 148, 61, 84, 90, 37, 77, 72, 63, 56, 66, 48, 52, 77, 87, 99, 76, 50, 75, 56, 76, 68, 73, 51, 61, 74, 78, 60, 100, 124, 81, 52, 71, 47, 59, 103, 73, 56, 79, 99, 49, 64, 49, 64, 58, 51, 56, 82, 51, 91, 61, 61, 66, 70, 68, 49, 86, 65, 60, 67, 77, 68, 59, 66, 69, 54, 55, 67, 57, 73, 65, 48, 79, 66, 48, 63, 64, 64, 54, 90, 60, 65, 70, 54, 66, 66, 55, 59, 101, 56, 83, 66, 46, 55, 76, 50, 67, 55, 70, 68, 75, 79, 61, 51, 52, 45, 62, 63, 60, 71, 97, 63, 70, 51, 53, 52, 76, 70, 66, 73, 62, 58, 64, 67, 57, 67, 56, 82, 84, 67, 69, 72, 71, 59, 71, 77, 57, 95, 65, 78, 83, 70, 74, 109, 66, 66, 77, 51, 66, 58, 52, 63, 62, 64, 51, 60, 64, 95, 71, 62, 74, 61, 69, 74, 65, 71, 53, 74, 53, 52, 55, 51, 56, 86, 108, 76, 62, 103, 48, 80, 57, 67, 49, 73, 74, 76, 112, 59, 62, 107, 69, 71, 75, 61, 82, 49, 47, 54, 103, 62, 92, 70, 81, 45, 57, 76, 57, 58, 68, 74, 87, 56, 47, 60, 44, 77, 74, 59, 82, 50, 57, 52, 63, 56, 60, 47, 59, 61, 61, 59, 54, 59, 71, 55, 76, 67, 69, 69, 63, 74, 88, 58, 43, 92, 63, 74, 53, 72, 62, 77, 78, 59, 55, 68, 74, 62, 83, 75, 56, 57, 75, 72, 68, 57, 66, 70, 92, 58, 69, 55, 115, 54, 43, 64, 71, 46, 68, 48, 94, 66, 56, 62, 65, 63, 69, 64, 81, 78, 49, 72, 54, 88, 49, 61, 82, 72, 67, 46, 59, 64, 76, 71, 70, 59, 68, 83, 56, 57, 77, 66, 138, 59, 36, 51, 41, 70, 73, 63, 68, 88, 72, 77, 70, 95, 54, 51, 57, 52, 66, 59, 55, 60, 95, 118, 72, 70, 65, 60, 62, 53, 69, 58, 63, 72, 80, 64, 52, 72, 44, 93, 51, 85, 91, 58, 70, 61, 49, 53, 58, 84, 62, 59, 64, 67, 48, 75, 65, 53, 66, 71, 81, 56, 43, 59, 65, 63, 71, 79, 78, 69, 56, 62, 64, 59, 57, 74, 63, 55, 66, 62, 72, 82, 56, 43, 78, 65, 81, 107, 51, 61, 62, 57, 52, 53, 43, 68, 51, 57, 50, 60, 47, 61, 61, 74, 62, 93, 52, 61, 56, 80, 71, 77, 79, 57, 54, 131, 95, 59, 71, 63, 63, 72, 70, 60, 64, 67, 57, 68, 73, 71, 55, 64, 48, 62, 75, 49, 57, 57, 67, 64, 56, 53, 52, 53, 57, 72, 52, 66, 61, 61, 41, 65, 56, 63, 61, 85, 61, 59, 87, 51, 62, 63, 60, 65, 67, 60, 60, 74, 74, 52, 60, 65, 98, 81, 70, 50, 63, 69, 61, 55, 75, 53, 66, 60, 60, 54, 84, 77, 71, 70, 60, 59, 68, 86, 94, 72, 71, 55, 55, 54, 75, 71, 85, 50, 60, 57, 65, 62, 81, 53, 67, 55, 81, 59, 78, 52, 109, 56, 92, 68, 68, 56, 65, 67, 67, 68, 49, 74, 48, 68, 66, 76, 64, 84, 58, 78, 65, 85, 73, 75, 50, 47, 54, 55, 48, 67, 66, 54, 63, 50, 114, 56, 70, 68, 83, 129, 91, 64, 53, 111, 53, 67, 58, 68, 48, 65, 96, 79, 65, 63, 97, 83, 92, 62, 72, 59, 72, 61, 62, 88, 61, 55, 79, 66, 75, 67, 71, 60, 84, 61, 61, 52, 50, 66, 70, 51, 52, 59, 74, 51, 79, 63, 83, 81, 67, 48, 64, 67, 79, 63, 59, 71, 63, 67, 65, 62, 76, 65, 42, 64, 62, 69, 89, 65, 61, 71, 60, 74, 66, 80, 51, 63, 57, 68, 69, 72, 79, 95, 95, 33, 57, 67, 48, 45, 60, 76, 62, 70, 86, 64, 54, 59, 99, 56, 56, 66, 53, 66, 61, 53, 73, 72, 46, 50, 65, 86, 54, 80, 71, 66, 75, 61, 73, 51, 51, 51, 74, 51, 52, 83, 59, 84, 45, 66, 47, 54, 41, 54, 60, 84, 87, 60, 69, 58, 70, 78, 63, 84, 56, 64, 48, 53, 59, 63, 54, 84, 53, 56, 65, 43, 112, 50, 56, 70, 67, 67, 94, 75, 59, 79, 89, 66, 97, 72, 61, 64, 73, 68, 53, 54, 45, 54, 81, 47, 86, 54, 64, 64, 71, 45, 64, 62, 114, 48, 62, 64, 69, 71, 49, 103, 78, 68, 68, 58, 77, 66, 71, 57, 153, 100, 71, 83, 92, 67, 53, 45, 57, 57, 48, 72, 52, 61, 55, 65, 68, 64, 52, 58, 48, 69, 60, 77, 43, 48, 60, 66, 83, 62, 99, 58, 61, 65, 68, 46, 51, 68, 59, 38, 62, 55, 44, 72, 53, 59, 40, 59, 86, 69, 76, 56, 57, 54, 68, 54, 81, 100, 38, 61, 39, 55, 81, 58, 53, 108, 73, 58, 141, 73, 49, 68, 58, 63, 59, 61, 42, 79, 68, 80, 50, 64, 57, 61, 61, 61, 56, 58, 67, 60, 72, 58, 62, 67, 59, 79, 56, 61, 56, 93, 61, 63, 82, 68, 67, 45, 59, 59, 41, 80, 64, 61, 61, 75, 76, 48, 79, 51, 70, 55, 49, 73, 67, 24, 76, 60, 68, 49, 70, 64, 52, 65, 58, 68, 86, 84, 57, 83, 54, 58, 66, 75, 76, 66, 74, 55, 49, 77, 57, 65, 67, 80, 67, 69, 61, 64, 61, 98, 52, 54, 63, 62, 53, 48, 92, 52, 66, 64, 60, 56, 65, 65, 49, 78, 63, 68, 66, 61, 53, 56, 53, 67, 66, 58, 78, 56, 84, 65, 55, 60, 75, 63, 77, 57, 53, 60, 73, 69, 71, 64, 139, 85, 64, 60, 64, 54, 56, 85, 144, 49, 54, 51, 48, 54, 58, 63, 56, 64, 57, 65, 61, 61, 88, 44, 48, 64, 53, 57, 51, 35, 57, 82, 57, 69, 81, 95, 115, 73, 53, 63, 68, 78, 48, 57, 56, 59, 60, 81, 61, 64, 69, 57, 73, 65, 64, 63, 60, 100, 59, 62, 83, 52, 56, 50, 60, 71, 67, 52, 64, 51, 84, 71, 65, 64, 65, 70, 39, 59, 59, 79, 57, 104, 92, 56, 73, 61, 72, 63, 66, 72, 68, 101, 54, 94, 57, 49, 58, 46, 69, 57, 74, 74, 64, 63, 71, 57, 63, 60, 56, 61, 66, 81, 60, 46, 60, 100, 53, 63, 65, 62, 66, 73, 81, 70, 78, 74, 71, 80, 78, 56, 63, 131, 76, 91, 62, 54, 52, 53, 74, 58, 55, 68, 86, 87, 110, 68, 62, 66, 72, 57, 56, 49, 46, 88, 80, 40, 76, 69, 48, 81, 56, 53, 66, 51, 67, 36, 57, 89, 57, 58, 51, 91, 99, 59, 68, 80, 89, 79, 67, 108, 66, 64, 78, 69, 62, 52, 67, 61, 72, 62, 62, 67, 50, 74, 59, 80, 56, 75, 55, 68, 71, 60, 54, 63, 63, 64, 47, 73, 91, 53, 70, 83, 82, 71, 52, 60, 69, 68, 75, 83, 47, 72, 64, 71, 68, 49, 51, 68, 90, 75, 59, 62, 66, 95, 64, 55, 59, 49, 69, 66, 51, 68, 91, 64, 55, 76, 65, 61, 55, 68, 71, 52, 94, 71, 81, 62, 46, 55, 72, 74, 77, 93, 75, 59, 68, 58, 49, 60, 107, 64, 60, 56, 70, 51, 60, 63, 54, 48, 49, 67, 57, 48, 54, 129, 70, 65, 61, 56, 97, 80, 54, 70, 53, 61, 91, 66, 75, 70, 64, 65, 74, 67, 62, 65, 67, 95, 43, 72, 66, 65, 90, 66, 65, 70, 67, 54, 103, 66, 66, 62, 54, 86, 63, 65, 65, 99, 50, 62, 89, 66, 69, 65, 67, 48, 62, 44, 93, 82, 59, 62, 85, 48, 68, 82, 71, 59, 66, 72, 59, 74, 62, 57, 73, 47, 82, 56, 61, 93, 64, 87, 51, 45, 58, 64, 106, 69, 110, 53, 71, 63, 76, 60, 73, 105, 51, 98, 42, 55, 60, 80, 67, 62, 65, 86, 48, 45, 53, 60, 76, 89, 72, 60, 66, 61, 72, 81, 106, 76, 82, 64, 62, 69, 54, 70, 96, 62, 55, 103, 93, 82, 75, 61, 63, 70, 52, 60, 69, 61, 52, 61, 63, 49, 57, 67, 62, 68, 112, 65, 76, 69, 77, 68, 45, 69, 71, 60, 64, 55, 62, 86, 59, 69, 58, 64, 73, 52, 75, 73, 63, 70, 100, 69, 74, 67, 74, 49, 76, 69, 79, 63, 104, 67, 59, 61, 54, 59, 68, 56, 100, 65, 67, 78, 71, 64, 66, 79, 75, 86, 64, 61, 80, 77, 145, 75, 56, 65, 62, 72, 68, 68, 70, 60, 66, 68, 87, 66, 68, 37, 44, 66, 78, 67, 67, 69, 46, 45, 67, 78, 72, 66, 45, 62, 57, 62, 77, 58, 85, 61, 45, 59, 67, 57, 51, 74, 49, 45, 72, 76, 52, 61, 69, 64, 60, 59, 72, 46, 76, 52, 71, 43, 52, 52, 55, 66, 60, 70, 66, 43, 62, 71, 49, 64, 64, 74, 66, 50, 50, 68, 61, 63, 54, 79, 74, 50, 52, 62, 55, 63, 81, 55, 69, 48, 61, 84, 59, 43, 84, 69, 65, 73, 93, 53, 84, 72, 64, 59, 76, 56, 75, 57, 99, 63, 66, 72, 42, 82, 62, 56, 59, 51, 49, 56, 74, 65, 60, 61, 82, 74, 61, 59, 71, 56, 43, 47, 59, 54, 75, 76, 51, 69, 76, 118, 63, 71, 55, 108, 71, 69, 65, 78, 52, 66, 79, 71, 46, 58, 73, 30, 53, 69, 84, 90, 84, 58, 45, 69, 78, 52, 68, 71, 68, 59, 61, 67, 56, 67, 76, 40, 55, 58, 50, 54, 53, 63, 73, 54, 70, 41, 49, 62, 53, 70, 61, 46, 66, 53, 49, 64, 55, 78, 68, 79, 63, 77, 64, 96, 54, 86, 95, 59, 68, 74, 65, 50, 50, 74, 63, 72, 85, 61, 70, 77, 46, 73, 75, 54, 50, 93, 69, 63, 54, 68, 75, 68, 74, 66, 79, 64, 75, 75, 76, 65, 63, 54, 54, 76, 72, 61, 54, 55, 58, 76, 64, 56, 44, 58, 60, 55, 69, 68, 70, 58, 56, 79, 59, 87, 47, 72, 65, 61, 52, 53, 81, 76, 44, 62, 98, 64, 81, 72, 75, 65, 78, 55, 68, 65, 52, 66, 85, 69, 60, 54, 81, 50, 76, 76, 67, 75, 70, 61, 86, 68, 91, 64, 62, 60, 64, 120, 46, 77, 57, 64, 59, 62, 47, 44, 51, 54, 99, 56, 76, 54, 87, 66, 66, 87, 71, 59, 135, 62, 68, 68, 86, 54, 64, 76, 48, 69, 79, 55, 60, 76, 69, 69, 191, 53, 65, 81, 60, 65, 89, 57, 48, 35, 54, 59, 64, 34, 64, 74, 46, 61, 59, 69, 77, 65, 59, 69, 64, 51, 87, 67, 68, 60, 76, 59, 68, 75, 70, 49, 60, 68, 51, 71, 62, 54, 62, 47, 77, 56, 75, 67, 63, 53, 61, 69, 66, 46, 69, 50, 69, 79, 40, 56, 77, 75, 73, 62, 68, 68, 63, 58, 118, 65, 55, 59, 61, 71, 65, 63, 45, 70, 63, 90, 80, 54, 62, 66, 44, 48, 64, 49, 83, 96, 86, 86, 70, 90, 54, 58, 68, 67, 76, 62, 69, 68, 65, 64, 75, 53, 64, 67, 65, 74, 54, 49, 67, 115, 62, 61, 68, 50, 76, 59, 59, 66, 49, 57, 55, 48, 54, 59, 65, 59, 57, 48, 60, 64, 59, 89, 68, 104, 59, 54, 78, 77, 52, 67, 43, 73, 73, 64, 69, 69, 59, 60, 66, 71, 72, 57, 43, 67, 51, 49, 61, 65, 53, 67, 124, 52, 59, 71, 67, 53, 52, 75, 57, 69, 60, 42, 51, 58, 61, 39, 66, 72, 76, 64, 80, 48, 50, 49, 68, 58, 76, 62, 82, 77, 65, 71, 42, 81, 82, 46, 137, 104, 68, 58, 62, 55, 59, 88, 101, 75, 72, 72, 56, 52, 57, 139, 61, 59, 63, 54, 100, 73, 79, 53, 62, 60, 49, 74, 69, 51, 53, 81, 62, 72, 85, 63, 110, 64, 90, 64, 64, 71, 58, 57, 47, 54, 65, 77, 66, 61, 56, 70, 62, 59, 78, 64, 73, 105, 54, 51, 65, 83, 64, 73, 50, 55, 62, 60, 58, 66, 79, 75, 67, 62, 86, 63, 57, 47, 71, 43, 79, 127, 51, 65, 67, 51, 39, 79, 66, 80, 73, 74, 54, 59, 63, 54, 46, 59, 70, 77, 76, 64, 82, 64, 75, 70, 69, 53, 62, 54, 54, 55, 62, 62, 58, 94, 59, 63, 104, 73, 62, 54, 53, 58, 67, 60, 71, 69, 78, 64, 72, 78, 64, 116, 56, 59, 44, 54, 82, 62, 57, 65, 74, 73, 71, 77, 69, 66, 53, 65, 61, 63, 51, 77, 56, 51, 72, 55, 64, 74, 63, 70, 58, 65, 69, 56, 69, 50, 64, 50, 56, 68, 74, 69, 58, 69, 63, 75, 78, 77, 59, 58, 71, 93, 52, 55, 74, 58, 66, 63, 45, 48, 62, 73, 69, 65, 66, 59, 96, 67, 52, 52, 73, 71, 67, 52, 58, 68, 57, 42, 47, 45, 71, 112, 53, 60, 63, 45, 73, 61, 75, 89, 77, 47, 67, 75, 62, 62, 114, 69, 60, 68, 68, 92, 61, 82, 54, 56, 65, 50, 66, 74, 94, 56, 51, 90, 79, 54, 51, 65, 71, 51, 82, 49, 57, 57, 29, 58, 60, 90, 56, 56, 62, 64, 65, 67, 56, 58, 36, 59, 64, 59, 59, 89, 79, 57, 72, 65, 57, 60, 51, 74, 55, 86, 60, 60, 50, 51, 67, 52, 81, 54, 64, 74, 85, 56, 91, 60, 54, 56, 47, 66, 58, 52, 60, 131, 59, 53, 84, 56, 90, 82, 60, 57, 84, 62, 102, 73, 81, 58, 70, 77, 66, 55, 63, 68, 68, 75, 79, 73, 62, 61, 61, 78, 52, 72, 71, 60, 59, 68, 55, 64, 76, 52, 66, 64, 70, 54, 61, 90, 57, 59, 52, 65, 88, 57, 77, 62, 67, 76, 79, 47, 64, 63, 86, 61, 98, 62, 79, 81, 64, 67, 84, 65, 64, 91, 60, 67, 55, 76, 58, 58, 53, 72, 68, 64, 41, 60, 79, 111, 60, 61, 93, 58, 81, 49, 69, 66, 83, 55, 89, 60, 67, 49, 75, 64, 53, 117, 68, 65, 96, 63, 62, 73, 41, 81, 53, 68, 60, 53, 56, 61, 68, 55, 66, 64, 147, 56, 54, 56, 76, 67, 53, 72, 45, 50, 74, 69, 73, 97, 59, 81, 57, 57, 56, 65, 102, 61, 57, 98, 70, 57, 69, 77, 86, 55, 51, 53, 79, 63, 96, 66, 73, 92, 64, 70, 75, 60, 67, 60, 67, 82, 83, 57, 49, 61, 60, 62, 83, 58, 64, 114, 140, 65, 77, 75, 60, 51, 67, 72, 59, 68, 66, 51, 65, 84, 64, 63, 56, 58, 55, 63, 62, 60, 59, 50, 86, 88, 71, 68, 75, 83, 70, 62, 98, 47, 70, 54, 55, 83, 94, 77, 62, 56, 54, 67, 66, 87, 74, 54, 60, 68, 60, 64, 59, 56, 89, 64, 61, 61, 73, 53, 61, 68, 56, 67, 66, 64, 58, 51, 59, 58, 74, 40, 64, 74, 57, 52, 48, 73, 72, 69, 54, 50, 75, 63, 66, 69, 54, 71, 69, 66, 70, 59, 58, 55, 69, 71, 72, 55, 91, 63, 79, 57, 55, 61, 62, 58, 66, 58, 71, 75, 73, 51, 56, 42, 56, 61, 61, 42, 82, 55, 55, 50, 62, 64, 74, 61, 51, 53, 71, 73, 61, 78, 69, 70, 64, 54, 60, 76, 75, 135, 51, 57, 63, 112, 62, 62, 57, 74, 66, 72, 77, 90, 59, 42, 69, 77, 63, 63, 104, 46, 71, 58, 60, 61, 98, 60, 44, 75, 49, 62, 73, 72, 59, 51, 70, 64, 57, 73, 63, 59, 69, 78, 74, 85, 65, 58, 49, 61, 76, 55, 61, 60, 72, 61, 87, 68, 71, 78, 79, 61, 62, 44, 69, 62, 66, 44, 55, 53, 47, 53, 58, 66, 64, 59, 78, 70, 71, 59, 72, 60, 75, 57, 83, 64, 67, 77, 61, 63, 59, 59, 76, 72, 93, 67, 73, 49, 64, 66, 50, 58, 57, 59, 76, 79, 62, 67, 34, 40, 67, 39, 44, 73, 51, 80, 67, 68, 59, 84, 67, 62, 54, 58, 58, 59, 79, 85, 69, 51, 57, 55, 77, 60, 70, 68, 96, 72, 59, 86, 100, 84, 64, 46, 60, 59, 64, 80, 75, 43, 64, 50, 51, 66, 68, 54, 95, 72, 60, 64, 67, 76, 102, 65, 53, 70, 68, 47, 81, 69, 62, 60, 73, 73, 86, 78, 60, 64, 79, 64, 95, 77, 92, 61, 54, 83, 77, 65, 133, 60, 69, 65, 64, 56, 51, 50, 63, 65, 61, 57, 68, 68, 75, 64, 165, 79, 85, 80, 58, 48, 78, 55, 70, 46, 66, 62, 48, 66, 60, 64, 60, 55, 59, 57, 86, 72, 63, 66, 74, 58, 43, 73, 60, 80, 79, 80, 52, 62, 49, 80, 60, 63, 54, 52, 58, 56, 71, 65, 64, 76, 71, 72, 71, 60, 64, 69, 63, 73, 80, 49, 69, 87, 48, 53, 58, 65, 52, 77, 77, 86, 62, 49, 135, 69, 61, 49, 57, 55, 60, 62, 63, 66, 55, 62, 60, 69, 72, 73, 51, 62, 60, 42, 75, 49, 72, 106, 39, 47, 57, 56, 55, 62, 49, 97, 59, 59, 61, 73, 64, 60, 52, 69, 35, 93, 56, 83, 59, 65, 60, 58, 58, 65, 62, 47, 57, 66, 60, 60, 57, 74, 47, 59, 70, 76, 64, 70, 64, 75, 69, 74, 59, 65, 65, 67, 76, 68, 53, 67, 60, 64, 60, 48, 48, 77, 57, 48, 66, 69, 71, 52, 75, 45, 56, 53, 61, 68, 50, 86, 79, 68, 94, 65, 62, 79, 58, 72, 47, 57, 54, 70, 57, 69, 58, 59, 54, 61, 67, 49, 61, 59, 58, 51, 50, 74, 60, 67, 76, 48, 60, 70, 47, 76, 68, 64, 99, 89, 69, 57, 53, 62, 67, 54, 95, 70, 58, 57, 62, 44, 66, 178, 68, 55, 47, 52, 63, 44, 76, 46, 48, 68, 41, 88, 64, 28, 84, 68, 43, 57, 65, 68, 103, 69, 68, 75, 48, 86, 54, 50, 56, 61, 59, 62, 55, 78, 72, 59, 62, 60, 56, 61, 56, 58, 62, 52, 52, 62, 54, 57, 70, 63, 67, 56, 50, 51, 71, 69, 76, 44, 87, 54, 59, 71, 77, 47, 67, 82, 69, 48, 64, 87, 151, 67, 46, 74, 69, 89, 50, 78, 47, 64, 64, 58, 55, 47, 66, 73, 74, 76, 55, 69, 82, 67, 52, 61, 62, 59, 54, 61, 62, 60, 57, 82, 55, 67, 43, 59, 68, 49, 76, 56, 70, 51, 84, 63, 62, 102, 62, 65, 50, 60, 62, 58, 55, 58, 97, 86, 79, 66, 134, 79, 69, 50, 67, 60, 63, 72, 37, 60, 55, 52, 74, 69, 47, 68, 57, 48, 45, 73, 57, 52, 57, 52, 54, 88, 85, 61, 81, 64, 65, 54, 63, 100, 67, 74, 67, 59, 57, 73, 53, 67, 56, 71, 97, 49, 44, 77, 59, 58, 61, 67, 62, 87, 73, 56, 63, 71, 102, 71, 61, 83, 56, 54, 92, 64, 75, 62, 43, 80, 56, 56, 63, 57, 57, 53, 79, 86, 61, 70, 61, 81, 51, 68, 118, 74, 58, 46, 57, 108, 74, 60, 65, 57, 50, 73, 53, 75, 91, 65, 52, 61, 61, 54, 60, 63, 61, 59, 69, 62, 49, 75, 43, 49, 51, 63, 69, 101, 66, 56, 62, 85, 120, 44, 69, 57, 60, 67, 63, 64, 79, 60, 58, 47, 79, 61, 55, 56, 46, 86, 60, 55, 65, 73, 68, 60, 73, 71, 56, 60, 84, 57, 59, 60, 78, 68, 72, 53, 79, 93, 66, 76, 81, 44, 54, 72, 85, 59, 61, 65, 88, 47, 85, 79, 60, 55, 77, 76, 81, 54, 81, 52, 57, 100, 90, 75, 57, 71, 48, 71, 61, 61, 77, 73, 76, 65, 64, 51, 79, 76, 45, 48, 84, 59, 54, 93, 58, 53, 75, 64, 91, 53, 62, 78, 48, 77, 53, 70, 58, 63, 79, 65, 106, 64, 79, 60, 67, 54, 61, 128, 54, 71, 48, 68, 87, 55, 61, 66, 56, 65, 64, 61, 72, 48, 69, 85, 73, 46, 72, 62, 97, 55, 75, 68, 88, 55, 82, 62, 57, 78, 70, 56, 56, 85, 99, 54, 76, 57, 61, 62, 48, 59, 66, 59, 92, 65, 68, 82, 54, 56, 68, 72, 104, 68, 59, 62, 77, 55, 69, 70, 79, 55, 60, 56, 53, 62, 49, 75, 69, 64, 75, 65, 83, 102, 61, 66, 103, 56, 63, 52, 62, 66, 59, 57, 69, 70, 68, 72, 54, 72, 53, 61, 99, 65, 91, 47, 65, 70, 65, 65, 55, 48, 69, 43, 61, 57, 75, 93, 110, 71, 64, 90, 52, 61, 69, 78, 52, 59, 60, 51, 57, 89, 61, 55, 38, 49, 73, 48, 58, 60, 63, 47, 57, 65, 81, 76, 68, 54, 69, 62, 90, 43, 71, 59, 65, 70, 68, 61, 56, 65, 73, 61, 54, 54, 62, 45, 73, 83, 65, 57, 50, 59, 75, 72, 68, 82, 62, 54, 63, 65, 57, 60, 58, 62, 63, 90, 61, 64, 91, 61, 104, 55, 73, 74, 71, 73, 90, 89, 58, 65, 57, 68, 63, 57, 64, 55, 63, 64, 65, 75, 61, 93, 70, 55, 88, 68, 96, 54, 48, 62, 79, 57, 51, 66, 81, 84, 74, 64, 72, 62, 58, 77, 84, 66, 53, 79, 44, 59, 39, 81, 50, 54, 84, 77, 57, 80, 51, 70, 75, 60, 57, 65, 48, 62, 57, 60, 92, 121, 97, 63, 57, 114, 79, 57, 43, 66, 62, 57, 77, 75, 66, 60, 85, 53, 64, 70, 71, 41, 66, 60, 56, 76, 62, 42, 64, 77, 66, 70, 59, 70, 60, 75, 55, 56, 54, 48, 70, 71, 68, 73, 90, 58, 80, 63, 64, 44, 56, 65, 54, 68, 46, 80, 121, 97, 60, 77, 90, 82, 73, 60, 55, 95, 46, 69, 67, 84, 77, 64, 52, 57, 73, 64, 67, 66, 91, 66, 78, 54, 71, 91, 53, 67, 41, 86, 68, 66, 75, 43, 71, 58, 46, 56, 86, 92, 61, 83, 61, 65, 59, 56, 48, 51, 78, 56, 51, 73, 62, 53, 50, 77, 75, 60, 50, 53, 47, 60, 81, 72, 69, 73, 49, 54, 69, 51, 69, 81, 58, 63, 60, 60, 50, 74, 73, 88, 89, 83, 53, 86, 63, 83, 63, 99, 54, 66, 73, 52, 73, 62, 63, 63, 78, 105, 46, 69, 56, 67, 60, 41, 73, 64, 67, 75, 56, 58, 60, 58, 45, 40, 70, 54, 69, 40, 60, 52, 125, 57, 58, 52, 72, 79, 45, 68, 60, 54, 69, 62, 69, 70, 82, 64, 77, 67, 66, 82, 69, 66, 78, 71, 55, 121, 165, 42, 75, 46, 45, 58, 76, 86, 52, 99, 58, 51, 52, 81, 40, 73, 47, 51, 47, 67, 59, 49, 48, 69, 51, 61, 64, 61, 57, 66, 50, 44, 61, 59, 69, 68, 59, 74, 52, 53, 69, 68, 36, 88, 76, 62, 52, 57, 63, 76, 61, 54, 63, 68, 57, 56, 55, 106, 80, 57, 70, 61, 72, 58, 63, 68, 65, 71, 37, 59, 70, 54, 61, 66, 58, 61, 73, 59, 61, 66, 82, 41, 51, 50, 79, 68, 51, 71, 60, 79, 70, 77, 71, 55, 52, 54, 65, 66, 102, 58, 90, 82, 57, 91, 60, 52, 60, 70, 71, 102, 80, 72, 55, 95, 48, 56, 73, 58, 105, 64, 52, 56, 68, 81, 51, 71, 55, 56, 54, 58, 53, 86, 61, 58, 67, 66, 83, 69, 54, 85, 64, 60, 89, 66, 69, 91, 87, 62, 58, 91, 67, 75, 56, 48, 55, 71, 68, 83, 65, 60, 102, 69, 83, 75, 55, 77, 47, 54, 77, 76, 46, 84, 65, 82, 66, 63, 79, 69, 65, 74, 50, 59, 60, 57, 68, 57, 66, 77, 84, 47, 72, 58, 51, 47, 47, 76, 47, 70, 58, 58, 113, 119, 62, 50, 66, 69, 67, 68, 87, 56, 65, 81, 74, 66, 45, 75, 74, 79, 60, 57, 50, 69, 76, 61, 70, 64, 59, 78, 62, 60, 60, 71, 62, 50, 52, 66, 106, 55, 64, 58, 48, 74, 45, 82, 53, 64, 52, 65, 62, 54, 57, 70, 65, 47, 67, 56, 67, 154, 58, 56, 69, 61, 53, 70, 55, 57, 67, 62, 66, 76, 106, 89, 82, 57, 75, 71, 51, 60, 81, 54, 64, 55, 66, 62, 85, 104, 59, 86, 63, 67, 55, 101, 62, 60, 76, 86, 57, 70, 69, 57, 69, 59, 67, 51, 54, 43, 48, 52, 53, 45, 90, 65, 91, 67, 86, 65, 77, 68, 52, 55, 72, 67, 87, 59, 70, 44, 73, 60, 95, 70, 54, 57, 69, 81, 67, 42, 65, 72, 50, 50, 56, 74, 68, 53, 116, 87, 69, 67, 51, 68, 52, 77, 59, 60, 53, 63, 75, 69, 67, 59, 59, 61, 56, 49, 54, 63, 66, 77, 62, 60, 49, 39, 61, 60, 69, 64, 74, 92, 77, 68, 53, 68, 52, 92, 71, 58, 57, 56, 72, 50, 53, 81, 78, 82, 61, 66, 66, 47, 69, 102, 53, 76, 61, 68, 68, 76, 84, 51, 54, 53, 72, 61, 64, 94, 76, 70, 54, 115, 58, 53, 49, 70, 50, 59, 56, 44, 61, 59, 84, 71, 95, 50, 75, 89, 39, 85, 62, 56, 88, 56, 48, 64, 122, 61, 77, 72, 48, 55, 63, 57, 56, 94, 55, 68, 77, 59, 56, 53, 71, 57, 55, 66, 58, 57, 98, 63, 94, 63, 69, 59, 84, 68, 68, 58, 65, 57, 59, 51, 52, 57, 56, 49, 60, 44, 42, 75, 69, 59, 63, 56, 81, 63, 65, 75, 53, 62, 80, 59, 77, 87, 64, 66, 56, 45, 63, 53, 76, 60, 67, 66, 97, 63, 60, 70, 75, 70, 84, 72, 62, 54, 94, 65, 127, 60, 58, 80, 86, 68, 84, 83, 50, 76, 63, 83, 85, 62, 78, 63, 65, 48, 60, 85, 102, 69, 76, 54, 53, 52, 57, 72, 58, 67, 49, 72, 60, 62, 73, 53, 84, 50, 69, 60, 60, 66, 59, 44, 100, 54, 72, 54, 64, 65, 64, 59, 60, 89, 77, 67, 60, 122, 69, 58, 54, 64, 59, 41, 54, 66, 77, 86, 76, 53, 69, 61, 63, 56, 57, 76, 81, 55, 83, 60, 49, 64, 55, 71, 58, 103, 66, 69, 76, 58, 76, 72, 63, 48, 60, 58, 75, 49, 63, 70, 53, 69, 57, 67, 76, 75, 61, 49, 60, 75, 82, 85, 75, 54, 79, 62, 71, 46, 66, 51, 64, 51, 69, 83, 65, 59, 73, 65, 70, 52, 56, 116, 53, 66, 72, 54, 78, 50, 67, 67, 45, 70, 55, 57, 75, 60, 97, 55, 76, 65, 62, 74, 61, 59, 85, 56, 60, 51, 68, 73, 86, 76, 59, 63, 67, 60, 81, 55, 61, 47, 41, 72, 57, 77, 62, 70, 68, 46, 59, 63, 58, 56, 56, 59, 65, 62, 56, 52, 77, 71, 73, 81, 60, 84, 58, 72, 97, 79, 62, 56, 62, 50, 70, 47, 63, 68, 43, 89, 52, 78, 66, 94, 58, 52, 60, 61, 86, 72, 74, 61, 54, 61, 64, 87, 66, 81, 59, 53, 59, 71, 93, 63, 73, 70, 56, 65, 58, 51, 102, 61, 79, 62, 80, 58, 57, 78, 57, 55, 70, 81, 67, 70, 68, 36, 46, 76, 63, 55, 78, 61, 143, 79, 62, 79, 75, 67, 76, 57, 64, 80, 48, 63, 77, 60, 62, 60, 52, 77, 47, 70, 81, 65, 67, 86, 78, 89, 53, 53, 51, 67, 67, 54, 72, 59, 85, 62, 50, 49, 83, 90, 57, 62, 53, 91, 65, 61, 55, 52, 64, 67, 77, 63, 60, 64, 86, 87, 88, 65, 47, 75, 58, 71, 55, 77, 86, 69, 76, 62, 57, 66, 63, 52, 90, 71, 67, 61, 64, 45, 47, 65, 64, 66, 76, 72, 64, 66, 60, 64, 78, 51, 44, 56, 108, 79, 64, 88, 84, 80, 94, 68, 66, 87, 79, 38, 89, 57, 69, 60, 57, 54, 51, 59, 53, 76, 61, 67, 66, 84, 49, 102, 51, 63, 115, 64, 68, 64, 55, 45, 54, 82, 76, 72, 48, 64, 57, 64, 77, 65, 51, 55, 52, 61, 76, 49, 57, 82, 62, 64, 73, 69, 51, 58, 44, 53, 59, 42, 68, 52, 56, 77, 50, 60, 80, 44, 58, 78, 70, 57, 62, 95, 65, 63, 70, 78, 44, 92, 61, 68, 62, 69, 81, 55, 59, 54, 67, 65, 70, 101, 62, 59, 62, 106, 52, 75, 65, 67, 51, 63, 60, 55, 61, 59, 59, 54, 68, 66, 49, 57, 64, 66, 55, 44, 67, 44, 68, 58, 70, 74, 57, 60, 57, 63, 58, 58, 85, 64, 61, 91, 53, 74, 71, 62, 70, 60, 74, 69, 63, 58, 71, 71, 55, 60, 67, 56, 49, 74, 55, 78, 59, 58, 108, 63, 60, 57, 68, 65, 66, 82, 63, 60, 59, 68, 79, 76, 53, 55, 124, 64, 59, 71, 52, 55, 55, 59, 54, 54, 61, 65, 50, 41, 66, 82, 70, 74, 66, 64, 78, 57, 103, 60, 63, 68, 63, 53, 85, 58, 59, 57, 70, 95, 61, 63, 59, 61, 80, 67, 64, 64, 50, 68, 57, 70, 56, 83, 77, 72, 64, 65, 61, 65, 59, 76, 63, 57, 50, 64, 74, 58, 67, 62, 62, 54, 66, 75, 56, 60, 55, 65, 73, 58, 56, 73, 78, 58, 50, 62, 56, 107, 69, 85, 116, 73, 57, 70, 89, 58, 51, 54, 88, 56, 62, 49, 63, 104, 67, 71, 78, 53, 51, 47, 68, 72, 59, 79, 57, 64, 71, 77, 92, 95, 63, 58, 69, 57, 63, 67, 55, 66, 81, 75, 70, 64, 61, 66, 81, 84, 72, 63, 46, 65, 74, 72, 55, 66, 48, 68, 58, 65, 71, 51, 77, 65, 67, 78, 72, 93, 75, 77, 64, 52, 70, 68, 63, 54, 69, 64, 62, 66, 73, 54, 84, 45, 57, 68, 56, 61, 59, 57, 62, 61, 64, 68, 58, 85, 48, 63, 71, 69, 56, 53, 54, 54, 60, 65, 51, 61, 59, 63, 60, 60, 44, 51, 86, 53, 83, 70, 81, 67, 68, 61, 55, 56, 86, 67, 69, 59, 92, 68, 57, 49, 71, 65, 64, 88, 60, 70, 48, 59, 72, 81, 55, 63, 65, 66, 78, 58, 73, 89, 69, 98, 67, 70, 74, 119, 65, 82, 50, 67, 55, 84, 52, 73, 74, 56, 50, 61, 61, 59, 57, 56, 71, 69, 73, 60, 73, 66, 45, 72, 68, 69, 54, 91, 65, 96, 68, 71, 48, 73, 62, 118, 64, 45, 65, 53, 59, 61, 61, 39, 70, 59, 60, 44, 74, 61, 60, 58, 52, 54, 58, 67, 73, 52, 82, 82, 67, 62, 65, 63, 60, 65, 107, 51, 57, 84, 59, 63, 72, 59, 44, 69, 59, 61, 50, 54, 65, 47, 73, 65, 84, 58, 64, 52, 64, 48, 71, 61, 67, 47, 70, 57, 64, 47, 62, 56, 58, 71, 56, 65, 56, 84, 69, 66, 71, 70, 74, 82, 51, 59, 73, 59, 59, 60, 69, 69, 60, 76, 61, 55, 68, 49, 71, 48, 100, 48, 65, 62, 60, 56, 63, 53, 58, 101, 80, 66, 48, 68, 47, 55, 66, 113, 60, 54, 67, 69, 51, 108, 65, 62, 65, 46, 75, 83, 87, 46, 61, 52, 75, 53, 74, 55, 70, 55, 68, 72, 64, 98, 59, 59, 64, 73, 69, 61, 65, 79, 99, 62, 63, 85, 64, 68, 62, 57, 73, 81, 66, 70, 83, 50, 39, 48, 60, 61, 84, 57, 60, 59, 51, 73, 71, 53, 62, 72, 71, 55, 74, 57, 65, 57, 72, 55, 73, 49, 75, 59, 71, 58, 56, 55, 65, 58, 78, 52, 92, 67, 58, 73, 80, 57, 94, 72, 67, 65, 36, 77, 60, 74, 68, 63, 56, 53, 70, 55, 68, 75, 66, 64, 73, 61, 55, 61, 52, 111, 60, 58, 88, 66, 47, 68, 65, 81, 63, 41, 47, 56, 58, 60, 43, 65, 67, 63, 110, 69, 58, 80, 73, 76, 64, 62, 64, 75, 78, 79, 47, 60, 62, 61, 48, 73, 62, 69, 71, 60, 49, 63, 64, 62, 66, 66, 87, 47, 62, 62, 49, 72, 63, 71, 65, 94, 43, 71, 76, 52, 56, 74, 59, 60, 65, 71, 56, 70, 96, 81, 61, 55, 88, 54, 72, 48, 56, 65, 82, 61, 75, 57, 63, 52, 59, 61, 57, 49, 65, 64, 85, 65, 58, 57, 56, 61, 49, 62, 60, 55, 72, 76, 63, 80, 53, 60, 81, 59, 68, 105, 67, 69, 78, 65, 54, 53, 85, 60, 54, 59, 82, 75, 63, 67, 81, 59, 65, 63, 96, 65, 84, 53, 65, 53, 74, 55, 70, 56, 66, 63, 64, 57, 64, 52, 70, 45, 52, 69, 72, 78, 85, 63, 108, 73, 57, 64, 79, 82, 58, 72, 83, 57, 62, 85, 64, 76, 49, 63, 57, 66, 61, 53, 72, 51, 60, 85, 71, 64, 63, 71, 74, 44, 61, 41, 69, 68, 73, 55, 81, 71, 64, 58, 51, 56, 112, 68, 70, 79, 89, 108, 57, 59, 56, 47, 39, 61, 59, 56, 43, 89, 71, 84, 60, 61, 62, 149, 68, 51, 93, 69, 49, 64, 56, 61, 70, 63, 59, 58, 70, 73, 109, 62, 124, 67, 95, 66, 62, 92, 72, 60, 94, 57, 61, 64, 72, 51, 48, 76, 62, 91, 54, 67, 64, 61, 55, 60, 63, 70, 47, 62, 130, 52, 59, 69, 54, 69, 54, 74, 49, 53, 82, 81, 54, 63, 61, 69, 63, 68, 62, 57, 63, 58, 77, 77, 59, 75, 65, 51, 63, 74, 54, 64, 71, 81, 47, 72, 69, 64, 57, 82, 65, 120, 58, 55, 62, 84, 69, 65, 57, 67, 80, 61, 93, 58, 48, 56, 49, 77, 62, 64, 123, 60, 69, 64, 75, 55, 76, 33, 70, 76, 61, 51, 57, 47, 66, 61, 60, 72, 74, 70, 73, 62, 55, 68, 84, 55, 56, 96, 56, 59, 94, 61, 60, 76, 54, 49, 70, 71, 70, 50, 55, 59, 66, 54, 57, 87, 101, 54, 72, 69, 68, 55, 52, 74, 70, 82, 64, 50, 60, 61, 136, 74, 95, 49, 90, 81, 55, 42, 63, 66, 62, 64, 66, 51, 88, 71, 77, 58, 63, 74, 50, 60, 61, 66, 74, 51, 75, 53, 96, 88, 64, 78, 59, 59, 71, 81, 67, 56, 75, 75, 62, 68, 65, 55, 68, 85, 75, 41, 59, 63, 62, 50, 63, 54, 69, 78, 78, 44, 62, 60, 67, 113, 61, 51, 63, 59, 43, 65, 76, 62, 64, 57, 66, 61, 68, 54, 72, 63, 43, 66, 72, 65, 62, 63, 88, 84, 48, 62, 73, 73, 51, 62, 61, 64, 55, 69, 61, 60, 73, 52, 72, 65, 61, 71, 59, 84, 73, 59, 61, 72, 61, 63, 56, 54, 71, 62, 47, 50, 63, 55, 63, 117, 63, 60, 73, 67, 52, 67, 56, 60, 84, 51, 51, 104, 75, 70, 58, 76, 54, 62, 75, 42, 65, 82, 67, 61, 68, 61, 77, 120, 54, 67, 67, 70, 64, 61, 70, 52, 70, 51, 60, 51, 74, 61, 99, 51, 61, 64, 63, 67, 65, 60, 59, 89, 57, 65, 66, 78, 67, 53, 51, 80, 52, 69, 64, 73, 50, 46, 64, 59, 75, 58, 127, 76, 64, 70, 66, 50, 67, 69, 94, 58, 48, 66, 59, 57, 68, 58, 54, 55, 61, 55, 70, 75, 63, 64, 67, 67, 55, 68, 61, 69, 53, 70, 65, 59, 49, 71, 48, 46, 56, 57, 47, 93, 64, 63, 69, 78, 76, 55, 59, 55, 62, 47, 61, 63, 68, 91, 58, 64, 85, 52, 64, 66, 51, 77, 62, 59, 55, 54, 94, 53, 49, 64, 68, 57, 63, 56, 64, 69, 57, 51, 65, 69, 70, 68, 58, 49, 55, 71, 66, 54, 74, 63, 86, 43, 68, 63, 92, 61, 42, 77, 49, 81, 62, 72, 48, 48, 40, 53, 56, 59, 82, 76, 62, 68, 61, 47, 76, 59, 57, 50, 79, 51, 60, 75, 82, 50, 65, 60, 60, 83, 66, 59, 107, 91, 54, 57, 57, 89, 65, 68, 69, 47, 66, 60, 70, 58, 47, 81, 74, 59, 56, 70, 111, 54, 71, 47, 67, 70, 56, 68, 60, 72, 61, 63, 68, 61, 53, 64, 131, 60, 55, 70, 65, 93, 61, 64, 64, 67, 55, 87, 66, 46, 54, 59, 77, 56, 52, 66, 57, 136, 48, 59, 53, 117, 77, 82, 80, 59, 56, 43, 66, 64, 78, 69, 70, 69, 79, 57, 57, 53, 57, 63, 53, 74, 71, 69, 94, 76, 58, 63, 54, 97, 70, 73, 66, 58, 50, 59, 65, 51, 53, 59, 52, 63, 47, 67, 66, 77, 57, 57, 61, 66, 77, 79, 48, 67, 50, 56, 72, 52, 66, 78, 68, 49, 71, 63, 59, 58, 67, 87, 74, 70, 59, 40, 58, 99, 66, 64, 62, 81, 61, 63, 52, 62, 64, 59, 85, 67, 68, 65, 77, 57, 61, 78, 65, 78, 58, 82, 60, 72, 71, 69, 64, 38, 63, 67, 84, 66, 68, 56, 64, 71, 59, 57, 60, 70, 62, 60, 53, 80, 54, 60, 57, 68, 40, 79, 75, 62, 71, 59, 52, 56, 64, 61, 68, 64, 60, 71, 64, 69, 73, 47, 75, 59, 51, 67, 71, 68, 53, 74, 66, 53, 64, 57, 65, 69, 51, 80, 52, 64, 62, 60, 49, 91, 75, 98, 65, 75, 69, 57, 141, 49, 65, 80, 61, 115, 82, 59, 63, 68, 74, 49, 68, 69, 69, 72, 57, 60, 56, 56, 46, 66, 82, 57, 50, 50, 62, 50, 74, 54, 53, 74, 55, 52, 73, 66, 69, 70, 77, 85, 75, 58, 66, 63, 56, 83, 57, 45, 56, 55, 67, 58, 65, 62, 50, 49, 68, 71, 66, 56, 92, 49, 91, 69, 68, 73, 50, 55, 52, 69, 56, 73, 52, 66, 58, 71, 66, 102, 79, 68, 41, 59, 79, 64, 63, 79, 72, 60, 59, 75, 56, 77, 97, 60, 103, 60, 81, 78, 65, 56, 61, 72, 48, 70, 57, 99, 70, 75, 68, 67, 42, 60, 71, 51, 103, 75, 57, 75, 83, 62, 64, 51, 92, 63, 54, 84, 77, 47, 66, 69, 57, 74, 62, 73, 62, 64, 36, 52, 79, 51, 70, 64, 57, 63, 61, 47, 42, 103, 56, 61, 77, 108, 57, 53, 97, 90, 56, 82, 42, 65, 63, 105, 58, 80, 56, 57, 75, 67, 82, 61, 87, 49, 51, 52, 61, 69, 70, 63, 60, 108, 57, 74, 64, 61, 76, 66, 69, 52, 58, 56, 92, 61, 57, 72, 62, 44, 58, 62, 83, 62, 50, 66, 74, 62, 78, 85, 81, 62, 73, 73, 75, 123, 52, 58, 57, 65, 52, 71, 89, 57, 93, 80, 53, 67, 51, 56, 38, 50, 60, 73, 71, 52, 79, 59, 51, 94, 57, 71, 89, 67, 84, 63, 57, 57, 93, 70, 55, 49, 70, 65, 51, 43, 75, 84, 126, 65, 75, 67, 61, 81, 75, 61, 63, 61, 63, 52, 67, 87, 63, 67, 58, 42, 53, 59, 51, 66, 78, 44, 90, 65, 47, 62, 73, 58, 70, 58, 49, 57, 50, 71, 53, 56, 57, 56, 57, 60, 58, 54, 47, 53, 64, 41, 59, 67, 71, 55, 64, 63, 78, 58, 34, 51, 67, 90, 68, 59, 60, 64, 56, 47, 69, 56, 51, 73, 96, 71, 55, 50, 46, 63, 42, 76, 77, 73, 67, 50, 71, 53, 70, 52, 59, 42, 64, 70, 61, 67, 61, 84, 59, 67, 81, 55, 128, 75, 59, 54, 55, 58, 57, 58, 66, 68, 74, 81, 53, 66, 60, 64, 79, 59, 58, 90, 54, 54, 55, 77, 87, 60, 61, 72, 62, 58, 68, 66, 65, 45, 70, 73, 56, 75, 60, 66, 59, 80, 90, 50, 77, 97, 62, 55, 48, 58, 64, 66, 71, 74, 76, 60, 58, 114, 58, 69, 85, 74, 57, 56, 85, 74, 74, 87, 81, 56, 56, 93, 77, 79, 80, 61, 80, 71, 57, 92, 54, 70, 54, 55, 59, 58, 56, 58, 56, 67, 59, 80, 70, 52, 65, 62, 65, 59, 72, 72, 64, 71, 73, 72, 73, 76, 85, 61, 82, 86, 69, 71, 58, 70, 50, 51, 59, 73, 62, 60, 75, 138, 79, 52, 75, 38, 55, 48, 64, 67, 63, 62, 67, 50, 65, 54, 75, 64, 62, 67, 93, 57, 60, 73, 81, 65, 76, 76, 68, 60, 85, 71, 75, 66, 66, 61, 74, 55, 60, 50, 50, 53, 64, 61, 66, 67, 59, 54, 70, 68, 56, 72, 66, 65, 50, 51, 48, 91, 53, 64, 40, 58, 77, 56, 75, 64, 86, 62, 54, 89, 62, 94, 54, 92, 59, 60, 64, 69, 66, 54, 58, 67, 60, 68, 68, 64, 66, 55, 57, 65, 70, 75, 58, 56, 62, 65, 61, 71, 77, 67, 48, 63, 59, 68, 57, 62, 83, 46, 55, 73, 60, 59, 74, 57, 53, 59, 75, 71, 70, 53, 69, 71, 66, 65, 52, 66, 58, 84, 56, 97, 68, 64, 60, 58, 71, 58, 65, 73, 63, 69, 64, 74, 67, 69, 74, 65, 82, 53, 120, 65, 63, 72, 60, 65, 65, 68, 75, 74, 57, 68, 57, 55, 75, 72, 71, 53, 56, 60, 65, 73, 89, 73, 70, 62, 59, 60, 84, 65, 65, 56, 80, 57, 54, 84, 58, 66, 69, 75, 58, 62, 54, 59, 53, 60, 65, 76, 60, 66, 58, 64, 56, 69, 62, 75, 77, 67, 65, 71, 86, 50, 53, 50, 51, 59, 68, 55, 56, 66, 57, 70, 65, 57, 73, 57, 59, 65, 66, 75, 60, 88, 55, 69, 84, 59, 62, 57, 67, 62, 56, 61, 71, 67, 51, 67, 60, 65, 63, 70, 67, 62, 56, 72, 65, 65, 60, 61, 71, 57, 65, 56, 127, 62, 46, 62, 53, 45, 52, 60, 59, 67, 61, 66, 61, 64, 70, 69, 63, 65, 53, 68, 61, 60, 71, 72, 62, 70, 70, 78, 63, 69, 58, 80, 65, 49, 65, 65, 82, 76, 67, 62, 59, 55, 54, 62, 63, 51, 89, 76, 59, 66, 90, 66, 61, 76, 67, 62, 60, 60, 88, 73, 80, 56, 59, 74, 59, 65, 59, 51, 59, 61, 58, 52, 76, 56, 58, 62, 61, 64, 61, 49, 57, 66, 65, 52, 86, 66, 82, 70, 82, 60, 51, 59, 82, 50, 86, 63, 66, 62, 54, 74, 50, 58, 67, 59, 78, 84, 72, 73, 64, 61, 70, 80, 63, 73, 58, 58, 58, 66, 62, 81, 52, 67, 46, 55, 58, 123, 64, 63, 67, 53, 58, 82, 62, 66, 65, 53, 49, 54, 65, 61, 57, 61, 64, 56, 90, 67, 64, 64, 54, 68, 57, 64, 58, 65, 52, 116, 75, 61, 63, 60, 69, 86, 61, 48, 55, 58, 63, 66, 60, 66, 60, 66, 52, 56, 58, 60, 69, 63, 39, 63, 64, 64, 72, 49, 66, 62, 67, 58, 64, 52, 63, 66, 84, 62, 64, 54, 67, 58, 50, 56, 57, 71, 59, 58, 65, 55, 65, 63, 76, 70, 55, 62, 59, 64, 72, 59, 73, 65, 62, 49, 58, 59, 78, 70, 67, 85, 58, 56, 71, 64, 74, 69, 80, 72, 55, 75, 101, 115, 80, 57, 56, 67, 66, 55, 62, 61, 61, 62, 63, 56, 54, 67, 65, 87, 84, 74, 60, 53, 62, 67, 55, 61, 65, 67, 97, 80, 65, 61, 79, 71, 73, 97, 61, 55, 56, 65, 69, 53, 62, 65, 52, 47, 79, 78, 60, 63, 56, 59, 75, 68, 64, 70, 103, 73, 80, 53, 59, 58, 56, 63, 63, 76, 58, 60, 80, 64, 76, 58, 55, 67, 64, 86, 71, 85, 63, 95, 55, 71, 91, 61, 69, 56, 63, 56, 55, 62, 64, 60, 72, 66, 54, 60, 51, 63, 72, 71, 82, 45, 47, 58, 59, 66, 67, 70, 69, 63, 41, 81, 58, 70, 76, 60, 78, 63, 49, 59, 73, 71, 64, 59, 67, 64, 75, 54, 65, 59, 60, 70, 58, 66, 56, 67, 71, 64, 73, 65, 70, 73, 56, 65, 53, 59, 55, 96, 69, 58, 68, 61, 64, 57, 69, 73, 58, 69, 64, 49, 63, 75, 47, 58, 60, 57, 94, 63, 63, 51, 48, 80, 55, 61, 64, 58, 83, 55, 56, 65, 77, 69, 49, 70, 52, 67, 52, 70, 59, 48, 84, 49, 66, 51, 93, 81, 97, 66, 56, 72, 63, 64, 63, 95, 74, 69, 82, 60, 71, 50, 68, 70, 62, 60, 55, 52, 88, 75, 59, 58, 75, 63, 71, 60, 65, 70, 82, 67, 60, 72, 55, 59, 72, 68, 75, 62, 79, 50, 64, 68, 60, 71, 58, 54, 65, 54, 64, 63, 60, 77, 60, 62, 69, 62, 58, 60, 61, 75, 59, 60, 65, 83, 57, 70, 81, 61, 55, 70, 59, 67, 67, 51, 65, 81, 86, 73, 65, 46, 95, 63, 54, 56, 66, 75, 85, 87, 58, 72, 74, 67, 74, 68, 60, 58, 53, 77, 69, 61, 68, 82, 80, 71, 74, 66, 72, 81, 77, 77, 97, 59, 55, 72, 84, 62, 65, 49, 57, 61, 62, 66, 87, 54, 68, 57, 66, 61, 57, 59, 63, 69, 63, 63, 51, 58, 65, 53, 60, 71, 69, 68, 62, 58, 107, 71, 54, 89, 60, 88, 52, 57, 69, 58, 62, 76, 57, 75, 73, 72, 63, 74, 56, 78, 51, 147, 57, 68, 86, 77, 74, 60, 69, 56, 67, 65, 60, 52, 79, 67, 103, 69, 79, 63, 56, 60, 62, 72, 56, 63, 48, 55, 67, 79, 68, 60, 79, 86, 58, 90, 52, 71, 54, 58, 66, 51, 55, 71, 58, 77, 105, 61, 73, 73, 72, 51, 46, 69, 60, 56, 90, 98, 68, 78, 61, 54, 52, 59, 58, 77, 66, 69, 73, 65, 72, 63, 46, 67, 58, 64, 72, 61, 79, 67, 55, 60, 82, 59, 56, 77, 58, 131, 49, 63, 47, 77, 78, 68, 60, 60, 96, 59, 61, 56, 60, 66, 72, 67, 65, 58, 87, 69, 74, 70, 62, 61, 86, 39, 77, 73, 63, 58, 74, 63, 60, 59, 70, 63, 73, 62, 62, 60, 60, 68, 77, 54, 76, 76, 56, 62, 51, 65, 67, 61, 68, 56, 64, 62, 63, 54, 73, 53, 72, 63, 55, 67, 68, 62, 47, 57, 96, 69, 61, 68, 75, 49, 60, 67, 57, 62, 117, 62, 67, 75, 79, 74, 80, 46, 65, 60, 63, 67, 62, 68, 62, 58, 84, 68, 66, 69, 68, 58, 65, 66, 62, 76, 48, 62, 64, 60, 55, 73, 75, 67, 54, 68, 52, 56, 97, 59, 66, 56, 48, 89, 56, 68, 56, 70, 57, 65, 60, 87, 72, 68, 72, 63, 77, 66, 65, 57, 75, 84, 71, 54, 95, 61, 78, 61, 70, 79, 65, 51, 62, 72, 50, 86, 68, 64, 90, 62, 64, 56, 53, 61, 78, 67, 81, 47, 66, 61, 70, 77, 63, 51, 63, 80, 52, 71, 70, 65, 80, 68, 59, 56, 60, 75, 55, 91, 97, 79, 75, 63, 91, 70, 66, 66, 63, 64, 41, 68, 86, 85, 71, 56, 70, 73, 62, 59, 79, 70, 74, 56, 76, 73, 57, 72, 61, 55, 79, 75, 61, 62, 46, 77, 79, 76, 57, 70, 87, 55, 58, 48, 75, 84, 63, 74, 62, 47, 79, 75, 87, 66, 78, 61, 73, 83, 59, 70, 73, 47, 78, 73, 62, 58, 64, 71, 46, 53, 68, 76, 54, 77, 52, 45, 50, 72, 75, 70, 42, 79, 57, 70, 51, 73, 73, 52, 71, 74, 84, 59, 56, 82, 80, 75, 56, 61, 63, 58, 98, 68, 57, 86, 64, 51, 57, 64, 59, 85, 67, 67, 75, 52, 89, 64, 66, 73, 71, 73, 49, 61, 59, 72, 45, 81, 72, 60, 69, 53, 51, 64, 63, 64, 77, 69, 64, 65, 49, 42, 65, 83, 64, 88, 55, 61, 50, 47, 80, 56, 79, 84, 83, 70, 48, 57, 71, 79, 77, 51, 85, 82, 56, 58, 48, 73, 70, 88, 60, 53, 80, 61, 62, 62, 68, 65, 64, 58, 93, 67, 72, 49, 66, 80, 71, 64, 61, 71, 58, 42, 56, 55, 89, 56, 60, 63, 55, 74, 39, 79, 57, 92, 86, 98, 48, 55, 59, 62, 64, 65, 49, 78, 55, 61, 55, 61, 83, 55, 56, 77, 84, 56, 52, 72, 59, 68, 63, 60, 67, 46, 87, 68, 60, 54, 47, 55, 76, 64, 80, 56, 73, 67, 51, 47, 75, 69, 84, 77, 49, 74, 59, 72, 68, 54, 74, 61, 70, 55, 47, 62, 69, 57, 65, 58, 100, 41, 63, 67, 59, 70, 77, 72, 45, 71, 67, 66, 70, 56, 70, 61, 61, 58, 64, 69, 67, 77, 55, 71, 62, 91, 61, 95, 54, 73, 59, 71, 37, 50, 54, 76, 49, 51, 58, 83, 69, 72, 78, 80, 62, 81, 38, 58, 69, 68, 56, 51, 71, 84, 99, 74, 36, 61, 59, 48, 45, 68, 64, 62, 80, 52, 58, 57, 86, 44, 78, 65, 61, 65, 91, 85, 80, 82, 63, 52, 80, 66, 78, 70, 61, 75, 54, 89, 67, 44, 47, 59, 83, 67, 55, 66, 91, 43, 62, 66, 53, 58, 53, 65, 82, 79, 90, 70, 56, 62, 66, 53, 72, 75, 51, 56, 66, 71, 67, 78, 61, 53, 55, 76, 72, 85, 47, 62, 62, 77, 75, 83, 51, 59, 79, 81, 58, 59, 72, 68, 62, 68, 67, 77, 67, 67, 71, 63, 44, 70, 73, 85, 52, 82, 90, 62, 66, 75, 66, 53, 72, 68, 65, 63, 51, 73, 42, 59, 59, 55, 90, 96, 57, 68, 72, 51, 70, 65, 55, 59, 45, 62, 51, 94, 62, 73, 70, 69, 63, 82, 69, 57, 98, 78, 60, 53, 55, 80, 76, 69, 61, 79, 63, 66, 69, 48, 138, 63, 78, 83, 50, 56, 63, 39, 43, 80, 85, 52, 72, 70, 75, 55, 51, 58, 67, 78, 63, 48, 63, 83, 85, 57, 66, 64, 64, 75, 61, 76, 72, 85, 37, 64, 50, 61, 73, 54, 58, 59, 86, 64, 84, 71, 60, 58, 66, 59, 68, 53, 77, 47, 63, 70, 56, 55, 48, 60, 158, 59, 77, 67, 70, 74, 66, 98, 93, 67, 43, 58, 58, 97, 43, 52, 79, 97, 62, 68, 60, 57, 68, 42, 70, 49, 70, 69, 72, 61, 64, 60, 44, 57, 52, 86, 61, 48, 66, 63, 48, 61, 53, 75, 62, 52, 64, 74, 54, 58, 74, 52, 56, 53, 69, 50, 57, 51, 67, 92, 55, 75, 76, 59, 111, 76, 54, 43, 56, 78, 56, 66, 45, 63, 86, 98, 46, 72, 58, 54, 57, 80, 56, 75, 56, 70, 68, 64, 47, 54, 70, 55, 46, 66, 85, 65, 59, 63, 73, 79, 93, 63, 95, 57, 70, 60, 74, 55, 43, 58, 49, 65, 65, 65, 73, 49, 60, 71, 59, 52, 61, 165, 39, 54, 76, 82, 56, 80, 74, 66, 43, 66, 47, 44, 76, 56, 69, 59, 56, 67, 66, 63, 63, 66, 63, 62, 77, 58, 41, 54, 57, 70, 58, 66, 82, 43, 68, 87, 70, 65, 61, 68, 98, 84, 48, 62, 77, 86, 73, 68, 68, 75, 40, 62, 67, 82, 56, 53, 72, 69, 61, 85, 50, 60, 60, 68, 71, 66, 65, 54, 62, 66, 81, 81, 52, 45, 86, 53, 71, 49, 58, 69, 73, 61, 66, 53, 74, 59, 45, 76, 68, 79, 87, 77, 77, 73, 55, 71, 72, 71, 50, 66, 72, 43, 77, 73, 44, 71, 75, 71, 79, 61, 66, 83, 78, 85, 81, 53, 83, 66, 63, 53, 74, 74, 52, 41, 68, 68, 40, 48, 61, 63, 59, 62, 68, 83, 55, 48, 58, 69, 65, 51, 78, 69, 52, 56, 81, 50, 68, 86, 62, 78, 77, 59, 58, 57, 90, 67, 67, 66, 75, 79, 57, 53, 62, 88, 64, 61, 55, 52, 71, 67, 74, 75, 66, 52, 58, 62, 75, 50, 63, 69, 65, 60, 76, 76, 62, 61, 59, 65, 54, 92, 76, 58, 50, 62, 53, 46, 73, 61, 55, 61, 70, 54, 61, 57, 83, 59, 61, 79, 83, 75, 55, 79, 74, 44, 60, 58, 45, 62, 79, 72, 54, 49, 75, 70, 62, 52, 82, 53, 69, 68, 72, 56, 59, 57, 76, 83, 59, 56, 64, 63, 52, 59, 82, 85, 57, 51, 59, 79, 41, 62, 67, 86, 76, 61, 97, 95, 67, 78, 58, 56, 58, 46, 79, 56, 71, 77, 77, 30, 60, 70, 51, 59, 60, 59, 76, 56, 82, 60, 65, 59, 88, 78, 59, 56, 60, 63, 44, 86, 98, 63, 52, 72, 90, 59, 63, 57, 71, 73, 69, 56, 72, 65, 54, 76, 60, 53, 58, 82, 43, 66, 66, 45, 64, 71, 84, 87, 64, 73, 53, 49, 52, 67, 68, 63, 44, 65, 59, 85, 63, 37, 52, 59, 66, 54, 64, 56, 67, 52, 61, 62, 67, 89, 71, 53, 71, 68, 50, 52, 92, 60, 69, 52, 66, 67, 88, 64, 53, 89, 55, 59, 67, 59, 90, 70, 78, 74, 70, 87, 64, 69, 90, 61, 58, 54, 74, 54, 86, 58, 66, 63, 76, 84, 65, 62, 65, 68, 53, 49, 72, 60, 66, 72, 79, 61, 85, 46, 58, 81, 75, 68, 77, 71, 67, 67, 59, 69, 63, 61, 73, 59, 68, 71, 52, 79, 62, 68, 62, 57, 41, 71, 64, 72, 98, 54, 63, 72, 52, 73, 53, 70, 69, 57, 58, 63, 55, 65, 60, 70, 49, 50, 48, 62, 47, 59, 56, 77, 64, 80, 75, 69, 57, 61, 58, 96, 73, 54, 55, 76, 44, 61, 50, 67, 65, 57, 61, 52, 60, 76, 51, 76, 51, 53, 50, 65, 68, 58, 83, 45, 66, 58, 74, 59, 58, 64, 72, 47, 67, 67, 117, 72, 79, 63, 70, 55, 57, 67, 73, 74, 62, 65, 51, 61, 62, 61, 40, 54, 103, 66, 76, 70, 54, 58, 52, 70, 91, 35, 76, 78, 50, 106, 52, 60, 77, 79, 42, 70, 62, 58, 59, 76, 74, 73, 56, 74, 75, 58, 70, 52, 59, 69, 66, 55, 69, 64, 87, 73, 64, 63, 62, 44, 71, 60, 54, 69, 107, 71, 68, 61, 42, 81, 61, 66, 73, 72, 50, 62, 63, 84, 65, 64, 76, 68, 58, 56, 75, 77, 60, 79, 70, 66, 67, 63, 56, 63, 66, 84, 60, 75, 108, 75, 75, 53, 63, 97, 75, 62, 56, 65, 61, 42, 45, 63, 61, 47, 51, 57, 61, 61, 44, 75, 72, 62, 63, 59, 61, 66, 63, 78, 54, 62, 72, 72, 74, 63, 101, 73, 61, 65, 74, 94, 55, 66, 61, 67, 70, 81, 48, 53, 42, 66, 48, 62, 50, 68, 68, 149, 53, 52, 66, 141, 66, 59, 67, 65, 68, 60, 52, 62, 75, 78, 91, 61, 61, 64, 54, 50, 52, 71, 68, 80, 54, 54, 75, 57, 71, 71, 76, 112, 66, 77, 62, 71, 75, 64, 56, 70, 60, 83, 52, 57, 43, 68, 79, 46, 68, 55, 59, 47, 67, 73, 60, 64, 73, 81, 74, 64, 82, 68, 54, 57, 77, 58, 61, 55, 52, 51, 47, 57, 45, 74, 58, 71, 55, 42, 68, 84, 79, 56, 67, 57, 52, 62, 127, 65, 59, 62, 74, 60, 55, 85, 55, 91, 61, 50, 49, 48, 79, 88, 78, 51, 51, 56, 63, 68, 72, 78, 49, 51, 70, 61, 62, 66, 51, 90, 53, 92, 66, 118, 50, 61, 94, 96, 58, 61, 65, 39, 46, 66, 66, 58, 57, 80, 73, 72, 64, 59, 84, 93, 48, 60, 79, 53, 86, 77, 62, 68, 57, 85, 70, 88, 53, 100, 60, 67, 61, 64, 63, 64, 49, 72, 65, 80, 59, 56, 48, 74, 98, 93, 73, 71, 52, 76, 56, 71, 60, 47, 65, 65, 61, 68, 72, 58, 57, 47, 83, 64, 68, 57, 88, 44, 82, 63, 74, 53, 92, 59, 70, 71, 54, 63, 45, 67, 86, 62, 80, 63, 68, 59, 67, 61, 71, 65, 54, 49, 60, 77, 48, 73, 59, 73, 73, 80, 52, 54, 52, 57, 55, 65, 89, 56, 71, 56, 50, 52, 73, 79, 66, 68, 53, 73, 58, 80, 66, 64, 64, 53, 74, 47, 53, 65, 52, 75, 46, 75, 72, 62, 51, 99, 78, 94, 98, 54, 58, 77, 52, 59, 67, 58, 59, 53, 65, 85, 61, 63, 63, 70, 102, 60, 69, 64, 56, 65, 60, 70, 51, 72, 54, 82, 65, 67, 64, 63, 69, 58, 67, 74, 55, 48, 71, 60, 65, 62, 97, 57, 35, 69, 72, 59, 63, 57, 75, 68, 65, 51, 79, 57, 63, 90, 63, 52, 57, 67, 72, 80, 75, 64, 54, 110, 57, 65, 69, 73, 74, 57, 76, 69, 74, 69, 78, 57, 70, 81, 70, 61, 72, 66, 68, 50, 93, 77, 64, 75, 71, 73, 73, 79, 111, 69, 63, 66, 54, 68, 61, 49, 54, 78, 89, 58, 85, 56, 67, 51, 103, 51, 52, 79, 50, 45, 61, 89, 56, 56, 68, 61, 71, 55, 67, 74, 85, 56, 70, 59, 71, 80, 61, 67, 60, 98, 65, 53, 68, 84, 70, 58, 73, 59, 43, 91, 54, 85, 56, 63, 45, 53, 66, 77, 67, 56, 51, 69, 56, 63, 67, 49, 60, 59, 59, 54, 60, 64, 49, 59, 77, 85, 80, 63, 57, 65, 52, 63, 66, 67, 59, 74, 72, 59, 51, 53, 68, 72, 56, 61, 74, 72, 72, 43, 99, 73, 54, 61, 78, 53, 60, 69, 50, 120, 54, 69, 64, 57, 70, 48, 109, 70, 59, 67, 50, 67, 68, 53, 61, 57, 58, 49, 60, 53, 68, 59, 88, 60, 79, 63, 127, 62, 54, 89, 73, 102, 41, 106, 70, 59, 50, 66, 61, 58, 71, 83, 60, 73, 57, 91, 58, 66, 67, 75, 84, 57, 104, 52, 69, 57, 52, 75, 62, 64, 53, 66, 77, 63, 53, 56, 31, 93, 66, 86, 46, 70, 63, 60, 58, 75, 60, 61, 79, 89, 57, 50, 69, 67, 67, 80, 50, 54, 56, 70, 63, 53, 79, 33, 99, 67, 63, 122, 44, 71, 59, 66, 51, 63, 63, 63, 75, 53, 75, 50, 70, 61, 76, 76, 61, 65, 62, 94, 63, 52, 66, 59, 71, 73, 77, 72, 73, 67, 73, 80, 43, 75, 60, 78, 61, 52, 68, 62, 63, 75, 77, 76, 79, 67, 58, 50, 82, 66, 76, 93, 54, 70, 50, 70, 75, 51, 70, 51, 47, 73, 83, 62, 56, 79, 63, 54, 86, 66, 60, 74, 77, 55, 39, 59, 81, 67, 77, 59, 64, 58, 53, 67, 60, 35, 80, 63, 70, 48, 92, 68, 64, 49, 56, 61, 70, 67, 81, 59, 90, 80, 56, 72, 39, 74, 52, 49, 57, 59, 79, 63, 60, 71, 73, 81, 69, 66, 58, 54, 116, 67, 49, 64, 87, 68, 70, 60, 86, 67, 68, 76, 67, 68, 74, 79, 58, 68, 65, 62, 62, 65, 45, 54, 50, 81, 60, 69, 53, 73, 63, 66, 50, 64, 53, 65, 66, 62, 47, 74, 71, 59, 62, 63, 58, 62, 71, 50, 68, 118, 54, 59, 72, 59, 62, 68, 71, 55, 83, 67, 60, 61, 57, 47, 64, 70, 53, 61, 75, 57, 57, 61, 67, 72, 63, 84, 68, 67, 87, 48, 50, 62, 63, 73, 77, 67, 61, 68, 62, 58, 82, 72, 57, 78, 47, 69, 62, 62, 69, 74, 71, 72, 85, 45, 55, 63, 50, 64, 90, 60, 63, 61, 52, 60, 68, 52, 60, 69, 61, 52, 49, 69, 100, 84, 67, 63, 62, 90, 82, 78, 55, 69, 90, 64, 55, 100, 42, 58, 65, 56, 67, 85, 67, 46, 58, 74, 75, 49, 78, 49, 52, 52, 77, 62, 53, 65, 45, 62, 69, 47, 60, 71, 58, 43, 68, 46, 56, 63, 57, 55, 63, 51, 56, 86, 87, 66, 61, 61, 95, 71, 58, 65, 56, 70, 66, 49, 85, 92, 59, 61, 64, 69, 58, 53, 53, 62, 102, 45, 59, 52, 66, 69, 67, 81, 56, 75, 54, 47, 73, 75, 62, 63, 71, 49, 93, 79, 52, 51, 74, 68, 64, 67, 50, 72, 66, 60, 64, 70, 64, 66, 72, 79, 64, 60, 90, 65, 75, 73, 83, 77, 66, 77, 77, 67, 66, 77, 65, 82, 48, 90, 47, 63, 58, 74, 63, 67, 85, 94, 63, 63, 61, 71, 71, 59, 58, 66, 65, 67, 68, 55, 70, 50, 94, 72, 72, 59, 83, 49, 52, 58, 66, 51, 44, 50, 64, 65, 64, 64, 75, 67, 65, 56, 59, 55, 68, 54, 80, 78, 57, 56, 96, 54, 63, 74, 63, 58, 71, 59, 71, 54, 55, 78, 59, 45, 65, 83, 69, 68, 36, 84, 72, 53, 52, 57, 73, 79, 59, 51, 36, 85, 61, 70, 47, 65, 72, 88, 47, 56, 62, 84, 61, 62, 67, 63, 68, 66, 62, 74, 66, 70, 49, 72, 65, 66, 75, 70, 65, 70, 91, 38, 61, 66, 45, 69, 56, 69, 40, 61, 91, 79, 83, 64, 54, 67, 77, 62, 57, 47, 58, 62, 114, 83, 60, 53, 65, 61, 70, 69, 100, 78, 59, 69, 47, 74, 60, 75, 48, 74, 65, 65, 79, 53, 60, 38, 71, 73, 55, 69, 62, 53, 101, 68, 47, 66, 61, 91, 59, 70, 66, 85, 53, 60, 57, 59, 69, 79, 74, 77, 56, 86, 83, 69, 52, 59, 59, 65, 57, 72, 66, 100, 61, 75, 79, 63, 49, 60, 63, 63, 60, 47, 35, 71, 64, 58, 69, 103, 76, 111, 64, 69, 82, 85, 60, 66, 56, 48, 68, 56, 72, 69, 68, 52, 56, 62, 60, 78, 91, 67, 48, 79, 69, 52, 64, 63, 60, 63, 48, 84, 68, 74, 69, 76, 57, 81, 57, 71, 81, 47, 50, 66, 64, 90, 62, 75, 77, 61, 81, 65, 67, 89, 68, 77, 54, 53, 71, 63, 68, 56, 73, 57, 69, 59, 65, 71, 71, 64, 56, 63, 65, 74, 66, 65, 77, 87, 67, 67, 69, 57, 77, 59, 82, 61, 98, 59, 63, 90, 54, 84, 66, 48, 56, 69, 60, 52, 59, 104, 96, 66, 85, 65, 64, 61, 55, 73, 68, 53, 89, 61, 94, 61, 58, 60, 47, 49, 85, 73, 63, 87, 71, 68, 73, 87, 56, 63, 49, 71, 59, 59, 71, 68, 63, 90, 79, 56, 58, 64, 59, 120, 60, 75, 110, 68, 78, 62, 58, 60, 62, 73, 66, 48, 67, 95, 57, 68, 72, 63, 67, 91, 63, 74, 53, 78, 64, 74, 57, 40, 70, 63, 93, 68, 63, 56, 68, 72, 61, 58, 57, 59, 67, 38, 60, 57, 64, 73, 95, 56, 88, 57, 48, 67, 75, 49, 66, 87, 56, 70, 76, 116, 60, 57, 53, 58, 58, 63, 92, 56, 81, 91, 72, 65, 60, 65, 63, 72, 116, 74, 78, 56, 41, 42, 53, 47, 71, 62, 62, 75, 65, 70, 66, 64, 104, 57, 50, 67, 80, 80, 128, 56, 53, 54, 54, 67, 55, 73, 62, 68, 50, 58, 56, 66, 81, 55, 55, 83, 66, 50, 65, 74, 52, 61, 65, 60, 54, 68, 100, 51, 46, 78, 106, 74, 66, 69, 59, 68, 82, 65, 45, 58, 50, 62, 56, 80, 45, 81, 59, 69, 102, 66, 72, 70, 62, 50, 69, 70, 47, 56, 60, 64, 60, 49, 57, 65, 57, 55, 62, 79, 65, 53, 62, 71, 48, 82, 76, 72, 54, 50, 57, 60, 53, 54, 56, 65, 68, 51, 68, 61, 75, 64, 61, 70, 61, 62, 81, 66, 61, 58, 80, 83, 64, 58, 71, 51, 54, 48, 55, 48, 48, 61, 67, 36, 56, 76, 55, 47, 58, 85, 84, 61, 68, 51, 66, 71, 60, 62, 64, 66, 63, 67, 54, 58, 39, 82, 67, 59, 52, 80, 61, 56, 63, 67, 62, 77, 74, 62, 69, 61, 48, 51, 71, 71, 64, 89, 70, 55, 53, 61, 61, 64, 75, 57, 72, 65, 75, 58, 84, 77, 42, 68, 50, 75, 53, 53, 56, 64, 92, 58, 49, 90, 55, 51, 58, 86, 68, 42, 80, 94, 72, 68, 58, 65, 47, 57, 54, 85, 85, 54, 70, 60, 72, 62, 71, 73, 44, 148, 83, 54, 61, 54, 77, 60, 88, 68, 58, 57, 53, 68, 49, 64, 92, 77, 62, 61, 67, 53, 53, 89, 54, 71, 56, 84, 54, 65, 55, 49, 69, 59, 66, 62, 59, 73, 59, 70, 76, 60, 68, 79, 63, 67, 61, 51, 54, 60, 83, 44, 58, 101, 63, 105, 75, 63, 63, 76, 70, 50, 92, 61, 63, 65, 93, 80, 54, 62, 55, 65, 74, 73, 65, 53, 86, 83, 63, 78, 69, 61, 59, 67, 67, 75, 56, 57, 54, 61, 77, 65, 57, 50, 68, 46, 53, 58, 65, 67, 83, 56, 69, 69, 57, 53, 86, 93, 65, 54, 60, 67, 67, 64, 72, 56, 63, 88, 53, 69, 64, 77, 85, 63, 61, 64, 110, 78, 66, 87, 82, 68, 63, 65, 56, 73, 66, 88, 65, 76, 60, 61, 68, 57, 53, 90, 65, 60, 59, 59, 52, 62, 57, 51, 65, 69, 49, 57, 82, 69, 59, 59, 85, 52, 72, 70, 82, 78, 69, 53, 62, 59, 64, 62, 89, 64, 63, 91, 47, 65, 54, 75, 77, 49, 55, 69, 66, 71, 79, 57, 65, 75, 73, 58, 56, 78, 53, 55, 57, 69, 42, 51, 60, 78, 70, 60, 60, 81, 69, 54, 65, 78, 68, 69, 75, 64, 54, 60, 57, 69, 58, 86, 96, 48, 102, 54, 54, 58, 75, 72, 54, 74, 59, 78, 55, 54, 62, 51, 51, 66, 61, 67, 57, 55, 87, 53, 89, 70, 89, 61, 73, 46, 52, 55, 56, 64, 66, 79, 67, 75, 70, 58, 66, 74, 54, 100, 66, 60, 121, 53, 57, 51, 67, 60, 75, 55, 48, 59, 60, 81, 73, 59, 51, 61, 68, 69, 50, 50, 54, 75, 69, 68, 64, 58, 80, 69, 68, 63, 61, 68, 88, 63, 69, 80, 67, 57, 65, 70, 56, 64, 67, 62, 71, 73, 60, 57, 55, 60, 87, 53, 61, 72, 56, 46, 74, 70, 87, 72, 69, 62, 78, 80, 61, 54, 76, 75, 57, 110, 55, 44, 72, 66, 60, 48, 59, 59, 64, 78, 74, 64, 72, 76, 57, 81, 68, 66, 56, 57, 64, 72, 56, 66, 70, 65, 67, 64, 65, 96, 55, 80, 100, 87, 62, 52, 62, 51, 72, 65, 71, 105, 62, 76, 54, 51, 62, 46, 63, 72, 48, 65, 75, 70, 66, 63, 76, 54, 55, 61, 70, 50, 25, 71, 70, 54, 56, 58, 87, 84, 58, 56, 60, 79, 80, 62, 72, 97, 43, 56, 46, 43, 62, 62, 133, 66, 64, 52, 68, 87, 50, 48, 66, 70, 78, 52, 70, 64, 128, 52, 59, 71, 75, 78, 57, 65, 76, 60, 57, 68, 50, 54, 50, 76, 66, 54, 65, 78, 61, 118, 80, 68, 74, 80, 56, 47, 74, 60, 58, 59, 57, 60, 54, 48, 87, 57, 55, 101, 85, 60, 66, 98, 62, 66, 60, 63, 67, 58, 57, 81, 66, 56, 52, 73, 57, 84, 69, 63, 64, 77, 60, 62, 65, 61, 51, 74, 89, 79, 59, 58, 63, 67, 82, 64, 88, 56, 72, 64, 63, 58, 60, 57, 82, 65, 75, 65, 55, 51, 58, 77, 80, 57, 66, 49, 63, 68, 59, 64, 47, 84, 74, 60, 41, 64, 60, 70, 49, 53, 58, 61, 68, 54, 57, 86, 65, 68, 71, 80, 73, 67, 55, 63, 54, 70, 60, 76, 43, 63, 63, 64, 60, 68, 57, 73, 74, 72, 59, 86, 73, 93, 66, 143, 60, 59, 56, 76, 79, 69, 75, 73, 121, 55, 61, 84, 54, 59, 63, 78, 77, 70, 93, 67, 59, 80, 62, 67, 62, 54, 66, 67, 52, 80, 71, 85, 70, 72, 57, 84, 58, 67, 87, 53, 52, 63, 58, 72, 66, 57, 47, 57, 67, 70, 55, 49, 74, 64, 55, 60, 64, 43, 78, 65, 59, 76, 41, 45, 51, 94, 55, 75, 66, 56, 44, 74, 52, 56, 49, 67, 67, 74, 71, 72, 75, 72, 57, 64, 92, 62, 63, 47, 111, 46, 73, 56, 59, 72, 59, 43, 56, 57, 47, 51, 57, 59, 57, 78, 64, 73, 58, 56, 40, 62, 89, 70, 59, 63, 63, 55, 40, 50, 54, 53, 66, 57, 55, 68, 45, 58, 62, 52, 50, 69, 83, 66, 79, 76, 42, 55, 69, 57, 55, 76, 50, 69, 60, 76, 83, 92, 71, 65, 65, 70, 71, 61, 67, 55, 80, 53, 59, 60, 59, 74, 85, 91, 42, 83, 58, 61, 75, 58, 48, 78, 53, 60, 73, 47, 83, 79, 71, 55, 70, 68, 73, 69, 56, 59, 94, 82, 56, 86, 62, 63, 59, 61, 68, 78, 54, 104, 55, 51, 43, 75, 76, 59, 64, 53, 52, 59, 55, 61, 56, 76, 58, 58, 55, 64, 54, 61, 80, 54, 65, 58, 54, 71, 70, 47, 65, 60, 67, 65, 61, 51, 86, 74, 49, 67, 72, 74, 45, 71, 59, 61, 61, 58, 62, 59, 73, 70, 85, 58, 124, 68, 46, 61, 45, 88, 57, 67, 59, 67, 62, 55, 66, 74, 66, 54, 64, 80, 82, 65, 46, 75, 105, 51, 72, 59, 71, 51, 68, 58, 63, 74, 61, 60, 46, 77, 42, 55, 90, 62, 102, 77, 59, 62, 65, 59, 80, 73, 76, 69, 54, 74, 90, 68, 73, 67, 63, 63, 72, 73, 70, 74, 52, 66, 50, 59, 68, 70, 67, 63, 70, 63, 77, 55, 57, 68, 78, 67, 69, 64, 59, 62, 57, 57, 55, 65, 72, 57, 44, 60, 52, 59, 67, 62, 63, 54, 47, 60, 51, 107, 63, 58, 64, 70, 88, 86, 86, 55, 70, 64, 75, 55, 79, 69, 49, 68, 54, 47, 52, 80, 52, 64, 97, 63, 76, 67, 100, 59, 63, 72, 61, 59, 63, 51, 78, 61, 73, 61, 71, 87, 49, 61, 67, 68, 65, 60, 59, 53, 65, 67, 76, 70, 103, 59, 63, 55, 54, 77, 75, 66, 56, 62, 53, 78, 73, 48, 46, 87, 70, 56, 60, 82, 59, 71, 62, 66, 66, 75, 88, 74, 49, 61, 59, 72, 43, 62, 51, 54, 61, 68, 75, 78, 64, 48, 67, 53, 81, 125, 52, 61, 62, 86, 54, 62, 66, 70, 73, 51, 50, 86, 61, 78, 73, 64, 75, 58, 61, 62, 67, 76, 81, 41, 60, 71, 64, 79, 61, 94, 43, 47, 62, 60, 60, 109, 50, 48, 85, 68, 76, 82, 67, 60, 66, 69, 67, 85, 87, 58, 75, 58, 89, 70, 55, 62, 75, 66, 62, 69, 59, 66, 74, 64, 91, 144, 57, 39, 62, 59, 82, 52, 63, 66, 56, 82, 88, 76, 50, 71, 65, 80, 72, 58, 57, 57, 68, 60, 42, 77, 55, 58, 61, 69, 67, 58, 73, 57, 81, 56, 71, 99, 59, 62, 57, 67, 83, 87, 61, 61, 85, 44, 58, 79, 82, 52, 64, 66, 42, 51, 65, 56, 51, 60, 96, 46, 59, 89, 70, 90, 72, 57, 42, 47, 89, 104, 57, 85, 67, 80, 68, 72, 74, 70, 74, 76, 65, 73, 47, 60, 88, 55, 45, 82, 64, 71, 62, 72, 79, 47, 82, 63, 61, 63, 69, 62, 64, 90, 60, 76, 52, 57, 82, 59, 50, 78, 70, 81, 71, 48, 69, 62, 41, 57, 66, 56, 55, 76, 66, 54, 60, 80, 61, 61, 70, 76, 71, 45, 42, 48, 55, 73, 63, 64, 64, 83, 62, 50, 65, 71, 86, 57, 59, 43, 67, 74, 55, 41, 63, 85, 69, 67, 80, 46, 69, 69, 69, 64, 43, 62, 57, 51, 74, 67, 54, 57, 62, 53, 50, 53, 49, 74, 68, 80, 53, 97, 51, 70, 62, 67, 60, 51, 57, 57, 62, 78, 55, 66, 81, 53, 51, 66, 51, 96, 62, 69, 121, 78, 76, 65, 64, 69, 80, 70, 58, 65, 54, 81, 86, 59, 55, 54, 89, 67, 42, 47, 62, 64, 63, 75, 80, 79, 55, 78, 48, 60, 71, 63, 82, 58, 58, 53, 58, 63, 67, 66, 71, 71, 62, 64, 61, 67, 65, 70, 63, 58, 93, 66, 70, 89, 57, 48, 56, 58, 85, 47, 66, 64, 76, 97, 74, 51, 65, 75, 49, 95, 57, 81, 38, 52, 63, 62, 68, 73, 57, 63, 61, 53, 56, 69, 65, 64, 67, 54, 68, 59, 66, 59, 83, 68, 90, 55, 64, 54, 73, 102, 70, 54, 116, 96, 77, 69, 41, 66, 46, 68, 65, 76, 53, 78, 71, 59, 63, 56, 58, 78, 78, 61, 69, 58, 74, 53, 82, 59, 99, 61, 105, 63, 57, 59, 57, 69, 59, 61, 62, 67, 56, 62, 47, 51, 78, 63, 64, 64, 74, 61, 57, 72, 50, 71, 132, 62, 81, 66, 70, 69, 64, 63, 60, 84, 64, 53, 56, 62, 119, 68, 68, 67, 64, 111, 52, 68, 71, 61, 60, 56, 50, 49, 81, 67, 78, 56, 39, 54, 59, 145, 64, 63, 97, 88, 58, 80, 71, 56, 68, 56, 57, 72, 57, 52, 97, 70, 74, 110, 70, 52, 55, 90, 63, 73, 60, 72, 43, 66, 63, 57, 57, 60, 75, 52, 49, 79, 69, 81, 66, 65, 89, 64, 94, 54, 79, 67, 86, 65, 60, 62, 75, 65, 84, 54, 87, 58, 61, 58, 65, 52, 53, 43, 61, 55, 98, 70, 64, 54, 66, 62, 78, 71, 77, 60, 62, 65, 67, 69, 65, 69, 58, 69, 55, 49, 48, 46, 79, 61, 58, 69, 52, 60, 62, 90, 69, 86, 63, 61, 66, 66, 69, 64, 61, 81, 66, 60, 67, 88, 73, 61, 66, 68, 58, 58, 65, 68, 61, 76, 68, 99, 52, 129, 66, 65, 63, 86, 70, 80, 62, 64, 106, 53, 56, 49, 62, 53, 83, 65, 70, 79, 92, 65, 55, 72, 71, 59, 61, 44, 50, 60, 60, 92, 63, 65, 79, 62, 69, 47, 54, 73, 70, 70, 59, 82, 55, 66, 51, 53, 51, 71, 91, 69, 73, 76, 52, 76, 46, 68, 78, 51, 83, 55, 68, 68, 46, 67, 60, 79, 61, 59, 57, 64, 70, 97, 62, 67, 56, 56, 63, 61, 57, 42, 52, 54, 43, 61, 102, 77, 73, 62, 130, 68, 102, 62, 75, 62, 72, 80, 68, 54, 58, 56, 70, 57, 67, 71, 57, 68, 67, 52, 81, 63, 75, 60, 65, 65, 58, 63, 57, 67, 63, 79, 73, 54, 54, 62, 60, 63, 63, 67, 81, 65, 56, 88, 56, 77, 66, 58, 65, 69, 58, 56, 63, 68, 88, 62, 68, 78, 78, 44, 71, 63, 65, 68, 63, 48, 71, 55, 65, 62, 75, 72, 84, 68, 54, 54, 83, 62, 49, 84, 66, 77, 81, 60, 53, 63, 90, 86, 78, 54, 69, 70, 47, 66, 61, 57, 110, 57, 74, 77, 71, 63, 59, 55, 68, 76, 63, 81, 58, 65, 72, 70, 63, 61, 75, 51, 56, 81, 77, 67, 43, 81, 74, 50, 75, 61, 49, 71, 68, 52, 81, 59, 91, 76, 55, 56, 58, 72, 73, 80, 65, 75, 82, 66, 65, 57, 44, 70, 42, 62, 47, 70, 49, 67, 54, 72, 72, 69, 83, 65, 95, 63, 71, 60, 46, 72, 79, 67, 60, 62, 57, 47, 65, 63, 65, 56, 56, 102, 84, 64, 54, 82, 85, 39, 76, 69, 71, 69, 61, 66, 63, 80, 50, 71, 58, 87, 64, 77, 46, 56, 81, 59, 70, 62, 49, 50, 52, 69, 61, 64, 66, 78, 81, 41, 72, 67, 61, 80, 56, 62, 63, 69, 52, 80, 72, 50, 68, 91, 46, 61, 50, 55, 68, 74, 53, 65, 52, 69, 68, 64, 73, 70, 58, 76, 55, 57, 63, 60, 64, 67, 78, 52, 55, 64, 60, 67, 73, 85, 77, 93, 81, 122, 76, 63, 73, 53, 86, 49, 77, 57, 81, 62, 84, 58, 50, 57, 59, 52, 59, 63, 51, 57, 92, 60, 68, 67, 80, 62, 49, 83, 68, 82, 76, 60, 58, 65, 83, 59, 46, 76, 65, 75, 57, 74, 53, 67, 65, 63, 56, 66, 60, 63, 106, 60, 87, 65, 66, 67, 72, 55, 76, 70, 76, 75, 64, 63, 61, 78, 77, 53, 69, 63, 68, 49, 70, 68, 61, 77, 95, 54, 55, 52, 65, 58, 50, 64, 105, 86, 62, 51, 55, 60, 80, 31, 60, 77, 69, 131, 57, 70, 62, 70, 64, 52, 68, 61, 66, 56, 59, 80, 59, 60, 89, 90, 50, 55, 60, 67, 67, 84, 52, 70, 71, 93, 62, 64, 74, 72, 62, 70, 64, 70, 55, 90, 68, 81, 68, 52, 65, 60, 75, 66, 57, 55, 60, 59, 82, 58, 97, 61, 67, 59, 60, 74, 58, 58, 53, 76, 62, 61, 66, 66, 82, 146, 53, 74, 75, 65, 60, 39, 57, 56, 63, 64, 64, 49, 72, 57, 49, 72, 61, 45, 59, 57, 69, 58, 48, 52, 56, 79, 73, 73, 79, 65, 69, 65, 62, 66, 56, 98, 53, 52, 64, 52, 46, 80, 66, 53, 90, 45, 74, 44, 60, 75, 70, 71, 63, 96, 84, 62, 49, 63, 61, 64, 61, 74, 71, 80, 69, 46, 57, 45, 92, 85, 45, 58, 76, 76, 75, 51, 49, 62, 56, 56, 71, 61, 47, 57, 57, 120, 55, 60, 65, 64, 54, 63, 78, 59, 54, 82, 70, 63, 54, 54, 63, 70, 55, 74, 65, 52, 94, 67, 61, 54, 79, 51, 67, 67, 44, 92, 49, 66, 60, 66, 80, 63, 75, 65, 70, 54, 62, 68, 59, 65, 71, 51, 136, 52, 69, 63, 45, 77, 74, 49, 88, 83, 67, 67, 58, 55, 70, 55, 73, 78, 48, 56, 83, 62, 83, 55, 84, 50, 88, 90, 75, 76, 69, 53, 63, 71, 63, 71, 66, 86, 69, 82, 56, 54, 80, 60, 74, 73, 79, 75, 80, 46, 69, 70, 53, 57, 57, 60, 77, 68, 47, 40, 78, 54, 54, 54, 58, 48, 41, 65, 82, 61, 60, 50, 65, 59, 128, 73, 81, 59, 58, 75, 69, 73, 62, 58, 87, 64, 59, 53, 148, 66, 55, 68, 57, 61, 58, 66, 77, 53, 73, 59, 85, 69, 55, 37, 66, 70, 63, 80, 49, 85, 67, 56, 51, 78, 56, 70, 79, 58, 121, 70, 73, 80, 58, 47, 67, 76, 84, 81, 70, 49, 56, 111, 68, 53, 68, 69, 81, 62, 66, 65, 75, 64, 66, 52, 78, 61, 47, 64, 66, 65, 68, 56, 67, 52, 81, 62, 33, 57, 56, 69, 42, 88, 53, 56, 96, 57, 63, 92, 52, 78, 66, 98, 102, 94, 61, 73, 54, 64, 78, 44, 70, 68, 66, 47, 61, 67, 62, 59, 66, 65, 51, 83, 57, 52, 63, 52, 44, 46, 78, 67, 80, 94, 66, 53, 72, 58, 64, 65, 39, 55, 58, 59, 46, 58, 61, 60, 57, 58, 57, 48, 54, 76, 60, 73, 55, 77, 68, 66, 71, 73, 86, 61, 64, 57, 49, 57, 91, 58, 57, 50, 69, 57, 66, 72, 64, 60, 55, 78, 46, 58, 65, 65, 64, 60, 73, 64, 52, 107, 61, 57, 77, 117, 55, 96, 54, 54, 65, 72, 51, 67, 54, 75, 89, 85, 60, 63, 94, 62, 49, 78, 46, 54, 89, 67, 60, 59, 64, 88, 61, 72, 59, 44, 59, 64, 49, 59, 60, 46, 59, 57, 78, 62, 100, 66, 67, 50, 65, 61, 64, 53, 89, 57, 49, 55, 60, 61, 80, 74, 79, 54, 57, 50, 78, 70, 47, 52, 61, 49, 85, 56, 60, 39, 51, 83, 54, 101, 60, 62, 67, 74, 58, 64, 53, 61, 100, 70, 73, 62, 62, 61, 65, 57, 66, 50, 71, 53, 72, 70, 98, 71, 63, 67, 65, 59, 56, 67, 64, 100, 48, 61, 60, 69, 94, 50, 50, 60, 76, 68, 62, 61, 74, 65, 76, 102, 72, 68, 59, 59, 69, 60, 74, 66, 55, 62, 47, 52, 74, 64, 57, 68, 78, 56, 80, 59, 58, 48, 69, 62, 67, 62, 60, 79, 55, 81, 60, 55, 71, 81, 77, 57, 42, 72, 88, 57, 50, 62, 53, 62, 109, 64, 35, 76, 74, 48, 73, 67, 51, 55, 84, 52, 62, 74, 123, 58, 71, 131, 81, 42, 55, 74, 64, 86, 49, 78, 72, 43, 77, 61, 61, 107, 50, 71, 69, 93, 140, 102, 53, 88, 81, 74, 53, 60, 58, 61, 51, 70, 67, 69, 112, 65, 63, 70, 69, 67, 51, 40, 60, 71, 83, 71, 94, 69, 62, 67, 65, 72, 88, 65, 71, 84, 61, 61, 62, 52, 59, 90, 46, 62, 70, 56, 73, 72, 64, 68, 58, 53, 57, 54, 75, 45, 68, 56, 79, 52, 65, 66, 52, 83, 74, 65, 62, 51, 58, 48, 63, 73, 52, 53, 51, 54, 53, 100, 37, 90, 66, 55, 53, 71, 55, 61, 63, 63, 82, 55, 47, 81, 94, 64, 71, 54, 53, 71, 51, 62, 97, 55, 47, 80, 83, 61, 87, 57, 76, 92, 50, 61, 65, 82, 71, 72, 64, 65, 57, 81, 71, 75, 61, 71, 78, 72, 59, 58, 60, 60, 72, 47, 84, 65, 62, 68, 90, 74, 60, 51, 83, 69, 55, 95, 87, 52, 71, 59, 57, 59, 81, 67, 81, 53, 51, 74, 52, 76, 64, 64, 56, 66, 82, 52, 88, 68, 68, 64, 73, 74, 86, 49, 72, 68, 83, 69, 61, 59, 54, 60, 59, 66, 72, 50, 37, 111, 94, 52, 61, 70, 52, 52, 94, 40, 64, 54, 88, 56, 90, 80, 50, 69, 108, 47, 65, 91, 63, 55, 91, 57, 65, 49, 92, 58, 69, 60, 66, 88, 59, 70, 51, 52, 61, 86, 54, 59, 50, 65, 71, 84, 49, 69, 63, 52, 58, 52, 72, 64, 69, 64, 53, 71, 75, 64, 95, 66, 63, 65, 72, 50, 52, 59, 60, 48, 48, 64, 63, 53, 56, 58, 48, 67, 55, 76, 61, 56, 60, 60, 45, 91, 83, 51, 59, 56, 65, 62, 49, 53, 57, 56, 55, 65, 47, 81, 55, 58, 85, 60, 80, 62, 64, 70, 71, 71, 63, 59, 49, 64, 69, 58, 71, 51, 59, 69, 58, 62, 70, 71, 63, 61, 59, 42, 56, 58, 50, 63, 148, 77, 73, 64, 50, 63, 58, 68, 56, 47, 87, 79, 72, 59, 65, 75, 52, 64, 70, 50, 67, 55, 54, 60, 50, 70, 62, 93, 65, 58, 52, 81, 50, 87, 48, 63, 70, 66, 61, 59, 54, 66, 63, 62, 49, 135, 77, 51, 53, 67, 79, 74, 68, 75, 68, 62, 58, 66, 62, 67, 111, 57, 57, 64, 67, 72, 105, 73, 75, 66, 58, 79, 67, 79, 71, 72, 49, 64, 59, 64, 76, 63, 82, 92, 87, 53, 65, 65, 55, 75, 66, 61, 64, 65, 62, 71, 52, 77, 70, 94, 36, 75, 67, 45, 69, 68, 57, 78, 91, 39, 61, 56, 55, 62, 59, 62, 69, 66, 55, 72, 62, 56, 76, 70, 84, 62, 70, 56, 69, 57, 64, 60, 61, 73, 59, 51, 54, 71, 46, 59, 62, 73, 65, 59, 92, 67, 46, 53, 64, 66, 70, 78, 47, 82, 54, 64, 59, 53, 55, 49, 43, 60, 53, 61, 75, 54, 59, 48, 61, 76, 48, 57, 79, 79, 62, 63, 79, 122, 46, 78, 53, 56, 64, 57, 61, 67, 93, 51, 69, 110, 76, 63, 62, 61, 76, 66, 58, 64, 69, 61, 67, 60, 60, 59, 64, 65, 64, 71, 67, 54, 82, 82, 51, 59, 71, 89, 57, 58, 65, 66, 69, 63, 71, 79, 60, 67, 101, 64, 53, 55, 54, 86, 72, 62, 67, 66, 62, 56, 76, 53, 72, 74, 53, 63, 73, 63, 61, 61, 68, 66, 57, 98, 48, 83, 57, 70, 75, 60, 62, 60, 53, 60, 58, 63, 70, 72, 75, 62, 67, 70, 58, 66, 69, 77, 60, 70, 54, 65, 58, 74, 65, 58, 50, 61, 151, 64, 55, 68, 82, 69, 59, 61, 74, 99, 64, 58, 85, 64, 78, 52, 66, 85, 43, 81, 82, 54, 71, 86, 69, 76, 60, 55, 132, 65, 85, 65, 68, 53, 55, 55, 74, 66, 38, 75, 80, 55, 61, 70, 52, 45, 70, 51, 54, 61, 79, 77, 54, 66, 59, 67, 52, 63, 56, 71, 72, 49, 60, 61, 66, 80, 69, 56, 102, 77, 56, 67, 59, 63, 67, 54, 42, 49, 119, 57, 66, 56, 67, 81, 72, 67, 45, 60, 72, 60, 79, 35, 62, 56, 65, 70, 73, 105, 45, 67, 52, 63, 56, 64, 79, 61, 47, 99, 59, 53, 52, 74, 66, 71, 71, 65, 84, 66, 69, 60, 76, 58, 60, 75, 80, 71, 68, 60, 62, 68, 73, 99, 42, 45, 68, 54, 66, 55, 85, 70, 61, 59, 50, 49, 66, 57, 73, 63, 61, 47, 78, 58, 71, 45, 69, 86, 72, 64, 66, 62, 45, 74, 68, 59, 84, 66, 80, 88, 39, 53, 55, 67, 82, 57, 68, 70, 58, 76, 62, 51, 93, 56, 87, 68, 67, 64, 50, 67, 73, 60, 63, 66, 66, 68, 82, 68, 95, 69, 56, 72, 48, 69, 60, 61, 56, 59, 63, 53, 52, 55, 51, 65, 53, 53, 81, 47, 62, 101, 63, 77, 74, 64, 56, 52, 69, 52, 55, 53, 65, 70, 79, 48, 64, 64, 76, 65, 78, 60, 53, 55, 70, 74, 65, 58, 62, 64, 66, 110, 43, 73, 80, 64, 57, 72, 64, 70, 63, 81, 68, 71, 69, 61, 58, 57, 67, 46, 53, 61, 81, 117, 86, 61, 73, 65, 74, 74, 55, 61, 58, 56, 52, 59, 41, 50, 58, 74, 73, 89, 80, 64, 52, 75, 58, 83, 58, 61, 80, 67, 57, 55, 64, 54, 58, 69, 65, 61, 69, 59, 73, 56, 66, 85, 55, 54, 73, 45, 59, 70, 64, 68, 74, 66, 54, 66, 70, 61, 70, 63, 49, 66, 77, 59, 62, 162, 59, 55, 63, 69, 39, 72, 65, 71, 68, 63, 60, 47, 51, 74, 57, 50, 64, 69, 66, 53, 65, 90, 61, 79, 95, 55, 64, 55, 76, 66, 69, 64, 66, 116, 55, 69, 77, 72, 60, 74, 46, 60, 58, 61, 85, 68, 60, 67, 46, 50, 49, 77, 50, 60, 64, 97, 62, 67, 66, 85, 65, 74, 63, 73, 61, 69, 56, 68, 70, 76, 62, 90, 50, 85, 62, 67, 69, 103, 64, 46, 69, 97, 44, 64, 47, 69, 54, 53, 64, 56, 50, 68, 51, 68, 70, 68, 69, 60, 74, 65, 47, 53, 56, 57, 93, 55, 70, 65, 57, 57, 68, 55, 61, 56, 58, 88, 76, 59, 47, 71, 40, 59, 66, 72, 51, 68, 69, 60, 55, 77, 67, 52, 53, 67, 49, 69, 59, 68, 75, 60, 63, 70, 66, 48, 50, 116, 69, 70, 56, 76, 61, 63, 54, 47, 69, 72, 82, 67, 63, 52, 60, 55, 66, 70, 83, 71, 59, 69, 28, 59, 52, 61, 60, 81, 55, 101, 76, 55, 56, 53, 78, 60, 65, 62, 55, 68, 53, 62, 57, 62, 89, 62, 62, 59, 63, 67, 61, 57, 60, 75, 72, 81, 62, 61, 36, 79, 52, 84, 54, 68, 58, 77, 47, 55, 77, 68, 56, 57, 68, 61, 48, 74, 83, 66, 47, 60, 71, 60, 63, 64, 58, 74, 54, 75, 64, 60, 67, 68, 69, 56, 52, 66, 66, 67, 115, 70, 51, 67, 66, 63, 77, 72, 75, 57, 82, 44, 57, 73, 54, 79, 56, 72, 74, 62, 62, 50, 65, 58, 63, 66, 61, 65, 66, 62, 43, 64, 151, 67, 57, 80, 59, 77, 76, 59, 74, 72, 63, 61, 80, 65, 57, 59, 60, 49, 94, 63, 64, 125, 68, 76, 57, 57, 86, 53, 71, 59, 58, 74, 66, 58, 72, 78, 66, 69, 54, 67, 54, 66, 71, 73, 71, 87, 75, 62, 71, 64, 64, 38, 64, 57, 71, 68, 62, 70, 71, 57, 57, 56, 59, 59, 58, 102, 65, 98, 73, 86, 75, 47, 67, 59, 54, 76, 50, 64, 47, 54, 55, 69, 65, 56, 60, 66, 66, 50, 88, 65, 73, 45, 65, 77, 58, 56, 70, 66, 58, 75, 53, 56, 72, 51, 79, 90, 68, 57, 78, 50, 56, 56, 76, 62, 78, 55, 67, 59, 97, 68, 68, 67, 72, 71, 80, 50, 75, 61, 63, 61, 70, 60, 80, 52, 68, 81, 87, 78, 61, 69, 78, 104, 67, 71, 56, 79, 81, 59, 72, 76, 56, 72, 70, 59, 58, 56, 52, 68, 53, 75, 78, 59, 63, 58, 65, 53, 76, 60, 64, 67, 59, 76, 66, 58, 69, 138, 69, 53, 40, 61, 72, 62, 73, 71, 54, 67, 66, 70, 65, 65, 79, 63, 72, 70, 68, 82, 42, 54, 58, 84, 57, 58, 77, 53, 55, 67, 83, 53, 71, 55, 67, 63, 56, 67, 74, 55, 61, 139, 54, 55, 59, 66, 62, 56, 63, 51, 69, 61, 84, 107, 53, 87, 69, 64, 68, 80, 81, 73, 56, 76, 60, 67, 58, 56, 63, 66, 59, 55, 57, 66, 179, 60, 41, 83, 57, 65, 100, 57, 57, 54, 62, 61, 55, 76, 74, 60, 63, 54, 61, 63, 64, 58, 64, 71, 69, 49, 99, 66, 66, 69, 69, 62, 72, 75, 58, 62, 67, 58, 89, 70, 78, 79, 73, 94, 67, 69, 58, 54, 49, 57, 95, 79, 58, 75, 71, 53, 68, 68, 86, 65, 39, 64, 60, 66, 52, 65, 68, 62, 75, 53, 82, 59, 64, 50, 60, 33, 56, 52, 52, 64, 59, 55, 48, 56, 55, 60, 80, 63, 86, 69, 60, 65, 63, 86, 66, 74, 62, 65, 58, 54, 63, 57, 58, 73, 66, 74, 61, 71, 43, 46, 46, 67, 69, 56, 86, 87, 42, 58, 73, 79, 90, 65, 55, 57, 56, 72, 66, 64, 61, 56, 60, 79, 57, 75, 58, 70, 70, 75, 49, 36, 51, 75, 62, 62, 109, 55, 72, 78, 63, 62, 75, 60, 60, 54, 55, 107, 64, 45, 65, 74, 57, 55, 71, 81, 87, 67, 64, 66, 113, 50, 70, 51, 60, 57, 68, 51, 76, 71, 57, 53, 89, 83, 63, 65, 71, 86, 76, 42, 65, 109, 54, 51, 77, 46, 68, 88, 65, 53, 74, 58, 42, 51, 63, 48, 67, 57, 55, 54, 30, 68, 51, 53, 47, 63, 83, 96, 53, 58, 58, 74, 65, 77, 60, 75, 118, 89, 58, 65, 77, 82, 68, 49, 44, 75, 68, 81, 52, 70, 66, 61, 63, 61, 116, 58, 42, 60, 58, 89, 69, 109, 93, 75, 57, 58, 67, 74, 56, 62, 87, 85, 52, 132, 66, 92, 55, 56, 55, 62, 56, 61, 70, 68, 60, 52, 76, 48, 48, 93, 66, 44, 59, 68, 50, 51, 97, 83, 79, 72, 58, 61, 54, 62, 61, 69, 128, 98, 64, 62, 55, 40, 85, 58, 91, 76, 56, 48, 76, 50, 64, 68, 52, 97, 69, 45, 53, 61, 55, 57, 76, 64, 57, 71, 61, 76, 52, 84, 50, 51, 74, 53, 68, 84, 63, 59, 52, 66, 75, 61, 71, 51, 61, 85, 64, 53, 69, 75, 113, 61, 43, 61, 54, 70, 66, 98, 72, 74, 56, 64, 91, 43, 122, 56, 71, 64, 68, 65, 50, 113, 51, 63, 60, 69, 28, 60, 48, 52, 66, 72, 65, 62, 53, 103, 105, 58, 56, 85, 70, 74, 61, 57, 60, 54, 70, 66, 58, 62, 63, 68, 64, 67, 62, 63, 46, 74, 65, 69, 92, 53, 44, 97, 71, 94, 64, 104, 60, 66, 86, 79, 53, 89, 45, 95, 59, 68, 61, 60, 66, 73, 45, 42, 54, 60, 68, 61, 92, 43, 68, 63, 66, 60, 69, 52, 81, 47, 64, 56, 66, 71, 67, 61, 55, 57, 106, 79, 64, 98, 56, 58, 54, 60, 57, 70, 81, 54, 45, 68, 52, 70, 65, 54, 55, 55, 49, 71, 63, 74, 79, 55, 60, 71, 42, 54, 84, 65, 76, 60, 64, 58, 59, 54, 70, 72, 46, 54, 85, 56, 62, 58, 61, 80, 58, 70, 79, 75, 90, 63, 46, 78, 83, 66, 62, 82, 68, 49, 61, 90, 54, 81, 56, 68, 74, 60, 88, 71, 63, 85, 63, 70, 84, 54, 49, 73, 60, 74, 57, 55, 53, 86, 59, 69, 70, 62, 97, 61, 62, 63, 67, 71, 70, 47, 65, 64, 75, 52, 51, 61, 83, 72, 63, 54, 54, 45, 56, 67, 57, 65, 65, 48, 78, 89, 67, 53, 62, 61, 55, 53, 56, 97, 57, 78, 67, 55, 53, 71, 54, 74, 56, 68, 102, 57, 58, 51, 75, 65, 83, 45, 66, 61, 64, 50, 53, 77, 83, 61, 89, 46, 81, 76, 64, 74, 67, 62, 53, 59, 85, 62, 48, 47, 61, 82, 67, 68, 60, 73, 56, 56, 62, 87, 51, 67, 61, 48, 70, 58, 52, 36, 47, 43, 63, 60, 56, 57, 46, 66, 43, 86, 92, 78, 71, 78, 89, 88, 67, 64, 49, 64, 60, 48, 63, 60, 53, 76, 82, 46, 47, 71, 42, 52, 59, 61, 67, 72, 53, 82, 60, 59, 71, 55, 79, 49, 69, 56, 100, 76, 51, 59, 69, 63, 64, 64, 58, 84, 63, 81, 65, 49, 90, 71, 73, 104, 54, 69, 72, 58, 79, 56, 64, 57, 76, 43, 49, 72, 77, 87, 59, 67, 61, 77, 62, 45, 58, 69, 38, 65, 43, 68, 58, 87, 43, 75, 54, 66, 75, 46, 52, 75, 102, 61, 73, 75, 76, 66, 92, 68, 55, 77, 79, 67, 71, 62, 66, 68, 68, 115, 70, 55, 61, 77, 54, 58, 67, 52, 69, 81, 79, 70, 53, 59, 77, 68, 88, 58, 56, 85, 98, 76, 59, 72, 49, 58, 57, 54, 63, 66, 62, 58, 50, 55, 66, 83, 67, 54, 89, 62, 63, 105, 46, 63, 32, 71, 89, 58, 60, 90, 70, 88, 91, 53, 51, 64, 65, 48, 75, 72, 54, 49, 76, 64, 86, 66, 63, 69, 69, 61, 72, 61, 66, 62, 68, 82, 71, 35, 95, 52, 53, 104, 71, 53, 55, 45, 45, 87, 66, 91, 72, 50, 51, 51, 60, 64, 64, 76, 67, 57, 58, 72, 66, 87, 69, 77, 59, 71, 82, 49, 87, 73, 60, 72, 86, 54, 67, 83, 69, 55, 40, 59, 75, 70, 76, 61, 77, 63, 57, 49, 69, 68, 65, 71, 64, 59, 65, 85, 52, 59, 79, 81, 67, 57, 67, 83, 61, 68, 71, 63, 113, 49, 86, 58, 60, 89, 178, 51, 39, 51, 83, 79, 57, 48, 61, 74, 49, 57, 46, 73, 37, 73, 47, 55, 47, 39, 74, 83, 64, 54, 78, 59, 67, 62, 52, 73, 63, 67, 76, 66, 99, 71, 62, 69, 75, 122, 45, 53, 58, 55, 65, 53, 47, 76, 108, 68, 56, 79, 54, 90, 129, 71, 56, 61, 63, 96, 62, 60, 64, 55, 61, 53, 65, 61, 50, 68, 80, 50, 75, 86, 70, 102, 50, 70, 58, 72, 82, 83, 61, 58, 48, 77, 58, 53, 59, 76, 62, 47, 63, 97, 62, 83, 59, 74, 77, 87, 67, 67, 61, 65, 84, 90, 63, 57, 69, 57, 71, 47, 61, 67, 53, 65, 84, 113, 64, 61, 51, 42, 68, 69, 68, 61, 46, 48, 49, 58, 95, 54, 119, 142, 88, 71, 76, 54, 72, 124, 86, 75, 55, 71, 61, 76, 57, 62, 66, 65, 75, 47, 46, 71, 62, 35, 92, 81, 102, 54, 108, 59, 67, 59, 81, 71, 56, 64, 59, 57, 73, 59, 66, 62, 49, 63, 57, 61, 52, 61, 58, 54, 70, 56, 67, 57, 75, 89, 60, 54, 59, 65, 37, 51, 71, 69, 78, 59, 94, 57, 73, 56, 84, 57, 108, 65, 75, 56, 66, 79, 58, 53, 68, 48, 71, 72, 98, 64, 64, 60, 69, 76, 66, 51, 64, 79, 72, 60, 87, 77, 51, 68, 62, 56, 61, 84, 59, 96, 52, 63, 72, 74, 69, 57, 52, 75, 74, 89, 54, 72, 57, 62, 65, 65, 69, 86, 46, 67, 63, 54, 62, 54, 69, 57, 52, 83, 52, 59, 59, 94, 58, 78, 61, 63, 69, 73, 87, 51, 92, 57, 80, 69, 89, 68, 60, 53, 80, 45, 56, 65, 51, 60, 68, 61, 53, 95, 54, 71, 63, 63, 73, 81, 60, 56, 65, 72, 150, 59, 59, 83, 67, 80, 70, 64, 64, 59, 59, 63, 57, 73, 44, 70, 73, 52, 61, 47, 66, 56, 71, 75, 54, 72, 79, 64, 63, 73, 67, 74, 73, 57, 59, 58, 62, 91, 69, 65, 66, 84, 67, 63, 73, 57, 87, 64, 66, 56, 95, 77, 58, 102, 55, 46, 73, 50, 123, 66, 59, 55, 63, 93, 67, 54, 72, 55, 52, 68, 52, 63, 66, 56, 51, 55, 77, 55, 55, 81, 51, 75, 54, 67, 60, 92, 66, 66, 62, 55, 53, 63, 63, 86, 68, 64, 49, 56, 71, 58, 61, 57, 51, 72, 62, 75, 63, 61, 49, 68, 63, 59, 75, 47, 60, 71, 66, 58, 54, 44, 63, 56, 50, 53, 86, 49, 61, 54, 70, 70, 51, 56, 53, 47, 89, 67, 64, 56, 60, 71, 54, 53, 56, 61, 59, 61, 80, 54, 64, 44, 76, 65, 46, 55, 74, 63, 82, 58, 56, 62, 81, 51, 61, 56, 67, 57, 78, 69, 94, 64, 72, 68, 79, 69, 52, 43, 75, 51, 67, 77, 56, 57, 63, 63, 56, 72, 60, 59, 67, 131, 69, 81, 118, 104, 62, 115, 85, 51, 64, 85, 64, 63, 80, 70, 98, 53, 68, 74, 67, 62, 59, 91, 69, 65, 70, 78, 51, 56, 88, 60, 58, 64, 41, 65, 62, 104, 55, 77, 64, 46, 91, 84, 79, 58, 139, 55, 61, 60, 70, 104, 81, 60, 95, 60, 72, 59, 57, 64, 66, 88, 56, 53, 67, 57, 121, 64, 66, 59, 69, 64, 64, 68, 61, 72, 84, 72, 51, 56, 60, 76, 60, 68, 57, 59, 68, 59, 63, 43, 61, 72, 51, 67, 66, 77, 56, 120, 73, 40, 42, 78, 55, 71, 58, 60, 53, 64, 49, 65, 73, 56, 56, 50, 67, 63, 76, 53, 65, 62, 70, 76, 66, 61, 53, 80, 77, 81, 69, 54, 58, 47, 71, 46, 55, 70, 68, 57, 58, 57, 55, 65, 92, 63, 66, 60, 64, 50, 71, 60, 70, 70, 69, 48, 62, 53, 66, 54, 76, 72, 70, 87, 97, 105, 65, 58, 58, 65, 53, 59, 61, 57, 77, 56, 65, 60, 64, 65, 55, 73, 56, 55, 54, 56, 85, 73, 69, 63, 75, 90, 69, 74, 49, 48, 50, 53, 73, 60, 91, 73, 55, 61, 57, 62, 74, 69, 76, 53, 81, 66, 56, 63, 92, 66, 48, 55, 58, 63, 76, 55, 53, 53, 70, 53, 58, 48, 82, 64, 67, 59, 64, 72, 70, 78, 57, 51, 57, 80, 52, 93, 47, 88, 64, 85, 83, 64, 65, 78, 61, 69, 62, 52, 58, 69, 73, 59, 60, 70, 72, 50, 82, 57, 56, 64, 63, 64, 69, 61, 63, 53, 85, 77, 50, 75, 74, 66, 56, 57, 79, 64, 69, 79, 59, 50, 91, 87, 56, 59, 61, 87, 57, 73, 67, 84, 69, 66, 68, 55, 47, 64, 63, 57, 63, 56, 69, 88, 60, 64, 80, 67, 56, 78, 132, 65, 51, 53, 78, 52, 66, 67, 58, 56, 90, 61, 64, 62, 51, 63, 54, 62, 70, 50, 94, 52, 71, 59, 45, 74, 56, 58, 74, 72, 92, 65, 70, 68, 60, 70, 59, 53, 58, 75, 55, 84, 59, 57, 62, 58, 57, 66, 39, 57, 74, 75, 72, 63, 69, 79, 69, 55, 88, 63, 114, 63, 66, 61, 71, 59, 66, 85, 62, 52, 58, 56, 52, 46, 58, 59, 64, 60, 60, 79, 66, 69, 62, 51, 43, 66, 53, 59, 67, 44, 62, 56, 67, 75, 66, 56, 79, 52, 75, 71, 56, 47, 80, 122, 65, 63, 71, 65, 81, 50, 70, 71, 70, 76, 105, 70, 62, 60, 54, 65, 72, 54, 60, 64, 59, 56, 73, 39, 66, 61, 59, 59, 80, 60, 71, 57, 57, 60, 69, 64, 68, 66, 57, 71, 62, 60, 73, 85, 54, 67, 101, 76, 60, 74, 54, 58, 55, 58, 71, 68, 48, 110, 67, 50, 56, 79, 65, 84, 52, 57, 62, 66, 66, 62, 60, 82, 59, 69, 66, 53, 59, 58, 60, 74, 82, 64, 59, 64, 60, 87, 49, 55, 54, 48, 81, 64, 53, 60, 63, 76, 50, 82, 51, 76, 70, 64, 57, 62, 74, 72, 71, 72, 108, 60, 78, 71, 69, 75, 78, 67, 54, 69, 67, 74, 65, 68, 60, 79, 60, 57, 68, 57, 55, 57, 76, 44, 59, 65, 72, 66, 48, 91, 66, 64, 60, 63, 89, 55, 153, 45, 57, 57, 58, 76, 86, 70, 89, 102, 60, 61, 72, 70, 57, 54, 62, 69, 50, 68, 66, 61, 58, 56, 60, 73, 63, 58, 58, 54, 91, 64, 64, 68, 67, 82, 56, 57, 61, 73, 67, 58, 40, 60, 61, 57, 56, 69, 86, 67, 60, 130, 52, 68, 49, 61, 58, 69, 55, 63, 64, 52, 92, 122, 66, 55, 75, 67, 81, 64, 55, 50, 122, 60, 45, 71, 51, 80, 57, 62, 47, 72, 62, 59, 57, 54, 85, 64, 69, 58, 62, 72, 70, 63, 70, 60, 52, 57, 48, 55, 91, 55, 52, 58, 69, 59, 57, 58, 67, 59, 113, 58, 59, 62, 58, 63, 62, 69, 61, 64, 57, 67, 56, 43, 83, 47, 59, 69, 81, 61, 73, 63, 48, 66, 69, 62, 62, 58, 72, 68, 65, 82, 78, 74, 48, 85, 51, 49, 75, 91, 59, 55, 57, 88, 69, 69, 44, 60, 71, 61, 73, 53, 66, 54, 65, 46, 54, 58, 123, 65, 55, 58, 68, 69, 77, 66, 47, 74, 63, 62, 69, 64, 93, 67, 54, 61, 58, 52, 62, 56, 73, 89, 37, 55, 63, 75, 47, 55, 69, 69, 49, 50, 60, 70, 57, 82, 62, 60, 46, 61, 81, 93, 46, 66, 69, 57, 61, 79, 47, 95, 46, 60, 52, 98, 65, 57, 76, 74, 83, 67, 77, 67, 55, 52, 52, 73, 65, 72, 68, 89, 60, 66, 48, 61, 57, 67, 65, 59, 81, 64, 60, 64, 66, 67, 69, 71, 52, 77, 60, 77, 87, 55, 84, 58, 58, 104, 81, 50, 55, 75, 67, 57, 64, 63, 49, 68, 47, 63, 68, 82, 88, 65, 72, 70, 63, 54, 66, 57, 66, 58, 53, 65, 62, 100, 70, 59, 51, 52, 66, 64, 63, 69, 56, 60, 83, 64, 58, 62, 86, 51, 56, 52, 60, 103, 87, 79, 128, 43, 65, 62, 61, 84, 56, 50, 86, 49, 111, 63, 64, 59, 75, 68, 51, 57, 126, 71, 58, 77, 57, 136, 56, 64, 58, 67, 77, 90, 57, 62, 57, 53, 64, 48, 56, 59, 77, 66, 77, 88, 61, 63, 60, 57, 59, 68, 69, 62, 59, 61, 66, 75, 71, 65, 77, 61, 61, 83, 56, 62, 77, 87, 44, 56, 72, 80, 53, 64, 71, 84, 58, 49, 67, 76, 63, 71, 59, 49, 53, 70, 55, 64, 103, 54, 62, 55, 74, 63, 58, 64, 35, 128, 55, 55, 52, 50, 62, 93, 55, 66, 57, 68, 55, 60, 82, 66, 63, 63, 84, 76, 52, 57, 79, 57, 55, 63, 52, 79, 72, 72, 55, 59, 64, 78, 67, 68, 83, 59, 59, 69, 52, 68, 66, 71, 61, 67, 61, 72, 51, 66, 59, 58, 76, 66, 75, 97, 67, 120, 67, 64, 49, 112, 76, 72, 66, 64, 73, 58, 76, 80, 55, 54, 64, 51, 65, 66, 70, 63, 76, 73, 64, 63, 52, 56, 50, 58, 65, 60, 70, 51, 69, 111, 60, 69, 77, 57, 70, 97, 58, 80, 61, 42, 92, 56, 68, 84, 59, 68, 59, 77, 95, 49, 75, 74, 57, 67, 62, 67, 53, 61, 69, 66, 69, 61, 56, 57, 61, 56, 110, 71, 73, 43, 47, 60, 55, 85, 63, 64, 74, 52, 70, 68, 60, 70, 71, 55, 66, 74, 55, 59, 59, 84, 58, 102, 69, 45, 52, 65, 58, 63, 57, 63, 58, 51, 57, 66, 85, 58, 52, 64, 63, 48, 55, 53, 69, 60, 67, 101, 79, 41, 64, 58, 53, 75, 77, 62, 72, 51, 56, 81, 75, 62, 70, 69, 74, 63, 60, 61, 82, 77, 60, 59, 67, 75, 58, 74, 59, 108, 52, 41, 52, 52, 52, 87, 55, 58, 48, 75, 122, 64, 57, 66, 69, 59, 64, 64, 54, 56, 98, 60, 59, 88, 70, 74, 50, 54, 60, 65, 62, 85, 60, 66, 65, 60, 70, 71, 62, 63, 59, 71, 59, 42, 54, 55, 60, 63, 51, 70, 83, 74, 51, 71, 68, 80, 57, 71, 70, 75, 61, 64, 70, 57, 68, 72, 67, 58, 59, 77, 70, 53, 49, 52, 76, 60, 67, 82, 53, 62, 82, 67, 83, 61, 55, 67, 63, 58, 92, 65, 73, 61, 77, 56, 62, 64, 52, 68, 57, 63, 58, 61, 103, 67, 60, 47, 57, 63, 52, 59, 74, 83, 63, 121, 50, 58, 59, 81, 62, 63, 69, 60, 59, 53, 45, 48, 71, 80, 53, 60, 65, 71, 94, 64, 57, 60, 60, 48, 81, 54, 59, 100, 61, 59, 72, 67, 65, 60, 89, 56, 50, 64, 65, 56, 57, 64, 88, 51, 74, 82, 78, 68, 54, 52, 72, 66, 48, 83, 65, 67, 57, 37, 66, 62, 67, 51, 57, 59, 60, 70, 72, 62, 48, 56, 69, 73, 58, 33, 65, 69, 68, 60, 70, 65, 67, 65, 71, 70, 54, 88, 78, 50, 67, 62, 68, 67, 67, 61, 49, 69, 70, 66, 76, 51, 56, 67, 67, 56, 69, 62, 78, 49, 73, 71, 66, 61, 56, 66, 69, 69, 67, 107, 50, 65, 53, 61, 62, 73, 59, 56, 61, 58, 64, 60, 74, 68, 70, 76, 83, 44, 57, 67, 78, 57, 71, 74, 75, 70, 55, 106, 92, 70, 67, 118, 68, 56, 62, 63, 103, 74, 65, 61, 81, 67, 60, 66, 47, 89, 71, 68, 61, 59, 62, 64, 82, 50, 57, 72, 71, 75, 63, 54, 51, 74, 59, 73, 79, 69, 53, 52, 88, 69, 57, 74, 60, 59, 68, 101, 61, 62, 55, 93, 52, 74, 55, 65, 46, 66, 69, 88, 75, 66, 67, 58, 53, 97, 86, 54, 52, 74, 70, 58, 75, 44, 63, 65, 50, 61, 73, 56, 57, 62, 58, 64, 46, 57, 55, 70, 65, 114, 65, 60, 80, 70, 67, 64, 57, 66, 68, 54, 63, 66, 73, 68, 57, 82, 56, 58, 43, 73, 61, 55, 143, 67, 100, 76, 61, 66, 80, 60, 73, 61, 56, 74, 68, 84, 55, 67, 91, 67, 72, 73, 51, 52, 76, 48, 76, 94, 90, 61, 54, 82, 85, 58, 87, 76, 59, 59, 68, 69, 63, 50, 54, 51, 55, 59, 81, 108, 81, 66, 57, 56, 68, 55, 62, 58, 57, 64, 64, 65, 75, 73, 105, 84, 75, 66, 63, 61, 59, 84, 68, 59, 60, 59, 68, 56, 67, 69, 61, 55, 73, 47, 49, 53, 55, 66, 77, 61, 60, 66, 61, 48, 75, 52, 72, 86, 61, 68, 53, 56, 74, 103, 60, 72, 64, 63, 65, 50, 60, 54, 77, 85, 47, 50, 68, 48, 63, 53, 65, 83, 72, 55, 125, 58, 101, 49, 106, 64, 74, 71, 66, 101, 58, 60, 68, 70, 43, 49, 53, 61, 55, 74, 69, 66, 63, 61, 66, 68, 126, 56, 68, 53, 73, 71, 73, 65, 65, 56, 68, 60, 69, 53, 68, 62, 64, 119, 62, 86, 50, 69, 60, 56, 68, 65, 73, 71, 101, 69, 46, 86, 39, 39, 81, 51, 58, 45, 58, 72, 81, 56, 61, 82, 69, 61, 56, 66, 58, 58, 76, 70, 64, 57, 70, 59, 40, 52, 92, 55, 53, 73, 57, 48, 71, 69, 51, 61, 55, 48, 77, 67, 58, 50, 134, 57, 49, 62, 73, 60, 67, 61, 27, 42, 62, 84, 68, 44, 59, 72, 59, 61, 70, 59, 72, 84, 65, 58, 79, 49, 70, 66, 58, 70, 79, 42, 44, 62, 86, 102, 56, 72, 57, 93, 67, 62, 67, 62, 56, 58, 70, 70, 120, 61, 66, 69, 70, 52, 71, 57, 65, 56, 95, 65, 42, 53, 61, 78, 74, 69, 62, 74, 83, 64, 72, 76, 71, 70, 70, 79, 57, 64, 77, 55, 57, 89, 63, 61, 67, 50, 48, 89, 57, 130, 63, 53, 64, 57, 63, 62, 63, 57, 74, 60, 60, 61, 70, 71, 59, 64, 52, 55, 75, 73, 58, 71, 78, 61, 62, 58, 60, 78, 65, 69, 70, 53, 74, 65, 65, 64, 55, 74, 63, 60, 99, 54, 53, 73, 113, 58, 38, 60, 67, 66, 75, 57, 113, 57, 70, 57, 60, 87, 69, 66, 87, 47, 66, 72, 56, 114, 60, 82, 65, 77, 73, 69, 49, 57, 76, 133, 62, 57, 50, 59, 55, 89, 56, 67, 65, 57, 69, 76, 59, 58, 56, 56, 54, 61, 69, 96, 47, 57, 82, 58, 82, 119, 59, 78, 55, 81, 94, 63, 51, 56, 52, 75, 55, 94, 51, 59, 67, 56, 79, 65, 66, 57, 49, 83, 71, 66, 67, 50, 42, 72, 49, 57, 55, 48, 98, 86, 67, 71, 55, 57, 58, 94, 38, 60, 59, 61, 59, 57, 66, 71, 48, 66, 47, 54, 65, 60, 58, 62, 83, 54, 75, 47, 60, 47, 57, 69, 52, 70, 76, 73, 85, 69, 56, 76, 122, 72, 58, 66, 56, 58, 51, 85, 52, 65, 73, 58, 45, 50, 57, 46, 55, 86, 60, 52, 63, 91, 55, 89, 60, 70, 73, 58, 69, 58, 57, 43, 53, 61, 108, 88, 62, 55, 47, 87, 68, 71, 73, 46, 64, 63, 60, 56, 55, 62, 49, 30, 55, 52, 52, 65, 75, 62, 66, 56, 68, 57, 64, 46, 71, 63, 70, 58, 69, 43, 61, 64, 60, 69, 59, 66, 64, 69, 97, 71, 65, 77, 75, 56, 64, 63, 73, 73, 80, 64, 65, 50, 68, 69, 65, 42, 67, 71, 63, 75, 82, 70, 71, 54, 53, 58, 62, 56, 55, 51, 55, 78, 51, 50, 74, 62, 54, 60, 50, 70, 68, 95, 59, 63, 94, 50, 60, 71, 75, 55, 46, 52, 68, 83, 68, 70, 60, 96, 45, 108, 80, 94, 86, 66, 63, 50, 67, 58, 65, 84, 59, 54, 69, 57, 53, 62, 89, 56, 85, 65, 80, 74, 60, 70, 67, 55, 73, 91, 50, 60, 59, 61, 45, 67, 62, 62, 58, 58, 75, 52, 59, 68, 58, 66, 62, 49, 78, 49, 55, 82, 61, 60, 72, 54, 71, 51, 60, 79, 66, 56, 56, 66, 56, 64, 61, 61, 81, 56, 55, 69, 54, 74, 60, 61, 59, 50, 62, 65, 51, 64, 70, 68, 88, 60, 82, 64, 59, 87, 82, 85, 84, 58, 55, 53, 99, 61, 54, 60, 109, 50, 56, 58, 59, 109, 51, 63, 54, 115, 55, 57, 78, 54, 58, 66, 66, 45, 59, 77, 59, 52, 64, 68, 54, 101, 66, 51, 56, 81, 68, 85, 65, 67, 70, 103, 81, 54, 49, 66, 50, 103, 59, 74, 67, 48, 67, 67, 91, 77, 52, 63, 65, 56, 54, 71, 78, 81, 78, 80, 70, 58, 68, 66, 66, 79, 68, 74, 73, 64, 65, 75, 57, 57, 51, 55, 54, 73, 55, 49, 61, 62, 59, 70, 61, 72, 116, 54, 57, 55, 108, 63, 66, 56, 75, 117, 68, 70, 51, 63, 64, 50, 60, 58, 54, 61, 61, 80, 74, 56, 106, 59, 50, 65, 70, 62, 99, 56, 50, 63, 83, 55, 60, 76, 76, 56, 50, 67, 52, 80, 87, 68, 97, 56, 57, 70, 63, 59, 61, 60, 94, 71, 60, 68, 68, 59, 48, 49, 66, 66, 48, 77, 59, 68, 76, 79, 61, 44, 52, 71, 61, 64, 53, 62, 88, 65, 64, 75, 78, 60, 71, 72, 60, 64, 62, 53, 68, 83, 47, 45, 57, 75, 64, 64, 47, 95, 59, 59, 77, 65, 100, 63, 59, 60, 66, 63, 86, 62, 70, 75, 56, 48, 81, 67, 73, 65, 54, 80, 57, 66, 62, 77, 59, 62, 59, 102, 66, 61, 87, 60, 57, 57, 59, 62, 54, 70, 44, 62, 79, 67, 76, 66, 86, 63, 66, 60, 51, 71, 87, 69, 72, 52, 77, 58, 58, 68, 52, 51, 50, 96, 59, 67, 72, 74, 59, 65, 58, 69, 78, 79, 91, 67, 82, 43, 74, 79, 65, 61, 58, 64, 48, 56, 59, 67, 58, 59, 85, 60, 60, 68, 82, 70, 48, 47, 72, 61, 68, 51, 58, 83, 64, 45, 68, 71, 53, 58, 61, 69, 75, 48, 49, 57, 113, 70, 41, 64, 64, 67, 80, 78, 72, 58, 51, 77, 85, 64, 63, 61, 62, 58, 53, 78, 60, 66, 80, 67, 69, 53, 81, 79, 50, 65, 58, 61, 58, 78, 69, 52, 69, 49, 56, 58, 76, 54, 88, 71, 56, 149, 57, 55, 56, 54, 60, 60, 65, 81, 72, 65, 63, 88, 70, 61, 96, 61, 64, 60, 57, 63, 40, 71, 90, 79, 56, 47, 64, 65, 63, 45, 65, 51, 90, 61, 84, 93, 50, 77, 81, 52, 63, 65, 53, 85, 56, 71, 61, 60, 62, 74, 69, 79, 69, 89, 64, 93, 78, 54, 64, 37, 72, 62, 71, 66, 49, 71, 63, 61, 82, 59, 58, 50, 90, 64, 72, 85, 101, 83, 54, 82, 64, 56, 83, 67, 63, 63, 40, 61, 71, 67, 52, 59, 80, 64, 71, 55, 56, 46, 64, 62, 80, 76, 58, 79, 69, 50, 70, 77, 49, 62, 62, 66, 63, 56, 114, 85, 68, 78, 58, 50, 50, 70, 53, 70, 111, 65, 51, 81, 73, 58, 51, 77, 56, 55, 60, 69, 56, 54, 73, 61, 57, 70, 71, 69, 78, 62, 59, 83, 60, 60, 66, 63, 75, 57, 54, 52, 74, 63, 65, 74, 64, 64, 60, 57, 51, 68, 55, 56, 72, 61, 55, 60, 75, 63, 52, 69, 68, 64, 81, 69, 69, 72, 50, 95, 54, 68, 67, 66, 49, 57, 74, 61, 63, 78, 76, 50, 56, 64, 70, 67, 57, 67, 98, 73, 58, 81, 55, 64, 65, 54, 67, 68, 57, 76, 53, 57, 66, 64, 67, 66, 57, 64, 66, 52, 51, 51, 71, 65, 74, 64, 49, 57, 79, 58, 51, 55, 62, 102, 77, 58, 61, 66, 60, 64, 77, 77, 57, 68, 59, 65, 66, 63, 94, 61, 66, 62, 57, 51, 61, 64, 55, 69, 84, 60, 86, 59, 72, 66, 70, 60, 57, 110, 72, 48, 78, 42, 52, 67, 55, 69, 62, 97, 67, 62, 81, 66, 59, 62, 61, 72, 80, 81, 77, 66, 61, 71, 60, 77, 54, 77, 67, 54, 60, 71, 80, 62, 57, 68, 61, 66, 63, 66, 76, 87, 70, 62, 102, 65, 49, 71, 64, 55, 57, 55, 49, 51, 57, 74, 61, 57, 76, 63, 86, 61, 82, 65, 82, 58, 65, 71, 134, 72, 62, 61, 101, 64, 77, 64, 65, 63, 84, 61, 67, 53, 108, 71, 52, 57, 63, 79, 90, 56, 61, 56, 65, 57, 61, 58, 59, 65, 68, 64, 63, 82, 87, 63, 74, 60, 51, 64, 64, 74, 77, 66, 68, 66, 66, 61, 66, 49, 59, 55, 75, 59, 83, 50, 59, 59, 78, 58, 51, 91, 55, 61, 53, 67, 125, 54, 72, 43, 49, 61, 64, 52, 73, 67, 94, 56, 58, 55, 62, 57, 47, 71, 52, 46, 72, 74, 61, 66, 63, 63, 75, 88, 66, 89, 69, 79, 57, 67, 60, 57, 61, 71, 54, 64, 73, 61, 57, 65, 46, 57, 64, 60, 61, 68, 107, 72, 69, 59, 73, 66, 61, 78, 57, 50, 64, 59, 70, 44, 74, 73, 120, 46, 57, 69, 75, 69, 70, 104, 66, 70, 63, 50, 60, 59, 74, 56, 78, 60, 49, 73, 72, 53, 64, 74, 65, 53, 60, 48, 64, 62, 80, 52, 71, 76, 61, 61, 49, 84, 64, 103, 71, 57, 74, 77, 61, 65, 62, 67, 57, 62, 79, 59, 56, 69, 59, 82, 91, 49, 71, 83, 73, 86, 75, 61, 87, 110, 64, 55, 62, 64, 71, 65, 71, 58, 53, 54, 55, 81, 66, 54, 67, 45, 67, 51, 79, 75, 59, 64, 47, 58, 63, 67, 70, 55, 61, 54, 74, 70, 75, 68, 88, 65, 66, 74, 58, 73, 72, 63, 63, 69, 67, 51, 62, 72, 52, 83, 53, 65, 62, 88, 56, 52, 64, 62, 74, 69, 50, 90, 47, 78, 66, 64, 78, 59, 55, 54, 74, 60, 70, 58, 74, 71, 69, 68, 69, 65, 63, 70, 64, 70, 103, 69, 65, 60, 69, 64, 59, 59, 63, 57, 55, 68, 60, 59, 70, 60, 67, 64, 97, 72, 65, 72, 83, 61, 60, 65, 59, 63, 71, 71, 78, 57, 48, 76, 71, 66, 74, 69, 84, 53, 77, 54, 70, 60, 58, 61, 61, 57, 68, 63, 72, 57, 52, 57, 59, 78, 107, 76, 75, 60, 84, 55, 59, 72, 57, 51, 58, 44, 49, 66, 42, 63, 70, 56, 46, 73, 54, 70, 63, 66, 62, 73, 124, 77, 63, 72, 51, 72, 78, 64, 83, 81, 86, 61, 57, 68, 62, 57, 48, 73, 74, 71, 72, 56, 78, 55, 62, 38, 61, 71, 93, 61, 67, 65, 69, 54, 51, 54, 59, 53, 49, 70, 64, 67, 63, 65, 74, 64, 63, 51, 58, 66, 58, 65, 59, 55, 80, 65, 63, 64, 131, 69, 59, 56, 57, 100, 59, 71, 62, 67, 86, 64, 81, 68, 57, 62, 66, 99, 53, 72, 60, 65, 58, 41, 49, 57, 51, 86, 66, 55, 51, 90, 70, 64, 63, 67, 66, 52, 78, 62, 69, 58, 54, 51, 75, 54, 56, 85, 85, 74, 52, 50, 54, 65, 57, 54, 82, 58, 95, 103, 60, 54, 68, 52, 62, 60, 62, 59, 65, 64, 77, 51, 59, 67, 59, 57, 93, 75, 52, 66, 61, 84, 61, 55, 52, 61, 49, 91, 62, 50, 61, 63, 54, 55, 62, 67, 61, 60, 54, 55, 83, 78, 81, 85, 75, 73, 65, 71, 84, 72, 59, 70, 68, 122, 71, 86, 67, 59, 55, 72, 55, 67, 51, 81, 52, 51, 83, 72, 73, 79, 62, 53, 70, 70, 95, 64, 68, 53, 57, 77, 76, 63, 67, 69, 71, 66, 57, 74, 64, 67, 73, 66, 65, 102, 56, 90, 70, 58, 62, 69, 68, 52, 53, 81, 61, 75, 67, 78, 90, 62, 65, 70, 56, 81, 59, 49, 93, 80, 89, 62, 56, 66, 63, 64, 66, 53, 69, 65, 68, 58, 57, 65, 52, 75, 66, 65, 59, 85, 53, 102, 63, 68, 50, 100, 83, 45, 54, 59, 65, 65, 72, 96, 63, 82, 68, 49, 54, 75, 65, 89, 76, 63, 66, 68, 58, 66, 69, 76, 73, 97, 54, 49, 71, 56, 66, 61, 67, 61, 60, 58, 62, 74, 57, 56, 62, 55, 64, 70, 57, 92, 66, 76, 78, 83, 67, 80, 81, 69, 58, 57, 71, 62, 46, 46, 85, 62, 64, 56, 53, 62, 61, 90, 59, 57, 71, 64, 64, 52, 59, 86, 50, 52, 58, 68, 54, 61, 59, 59, 61, 64, 60, 60, 59, 68, 79, 58, 88, 72, 110, 55, 93, 75, 78, 64, 63, 83, 57, 50, 61, 61, 72, 78, 63, 56, 63, 122, 73, 60, 67, 57, 64, 55, 65, 58, 62, 79, 62, 54, 70, 62, 59, 73, 88, 46, 63, 76, 41, 68, 55, 68, 56, 62, 75, 65, 56, 56, 60, 63, 101, 51, 58, 71, 67, 65, 66, 59, 67, 50, 50, 55, 60, 58, 77, 75, 68, 74, 53, 75, 72, 54, 66, 67, 79, 67, 57, 72, 83, 66, 49, 68, 60, 44, 63, 77, 44, 54, 70, 72, 62, 76, 60, 67, 68, 71, 60, 58, 62, 69, 68, 59, 71, 63, 59, 67, 57, 58, 65, 58, 59, 60, 52, 70, 58, 60, 67, 58, 58, 70, 72, 65, 71, 67, 60, 74, 68, 71, 59, 52, 61, 69, 81, 59, 57, 62, 58, 65, 63, 48, 63, 67, 50, 50, 82, 66, 100, 76, 63, 81, 74, 77, 62, 57, 68, 62, 59, 52, 67, 56, 75, 68, 55, 73, 55, 83, 71, 64, 67, 55, 59, 104, 61, 54, 68, 75, 55, 58, 52, 54, 59, 74, 67, 85, 61, 59, 48, 59, 63, 78, 70, 56, 70, 73, 61, 64, 86, 63, 61, 65, 64, 61, 54, 69, 71, 63, 59, 61, 60, 67, 63, 82, 82, 53, 56, 63, 112, 52, 52, 121, 70, 61, 59, 62, 62, 75, 70, 60, 74, 70, 112, 58, 65, 61, 58, 58, 69, 67, 55, 69, 58, 80, 59, 81, 57, 66, 62, 62, 65, 74, 59, 65, 73, 58, 57, 114, 68, 74, 62, 61, 68, 68, 84, 56, 60, 63, 58, 67, 65, 70, 86, 68, 73, 51, 58, 70, 120, 64, 61, 62, 75, 65, 65, 81, 68, 66, 67, 72, 61, 79, 72, 66, 58, 60, 57, 60, 66, 77, 72, 62, 66, 62, 69, 80, 63, 58, 65, 55, 50, 70, 63, 71, 69, 56, 65, 53, 71, 70, 50, 62, 61, 71, 70, 74, 76, 74, 59, 65, 65, 85, 73, 75, 67, 47, 70, 58, 61, 71, 63, 56, 62, 66, 69, 64, 59, 60, 54, 68, 69, 56, 60, 69, 63, 73, 62, 66, 76, 60, 60, 58, 84, 59, 116, 58, 53, 57, 63, 57, 54, 29, 79, 76, 50, 63, 68, 62, 70, 73, 65, 53, 79, 66, 58, 53, 89, 66, 61, 63, 56, 55, 74, 67, 71, 59, 60, 58, 81, 77, 78, 64, 66, 63, 76, 93, 54, 60, 51, 58, 70, 93, 65, 67, 64, 68, 83, 63, 66, 61, 65, 74, 58, 74, 73, 57, 66, 58, 61, 64, 106, 57, 62, 42, 103, 55, 63, 68, 74, 81, 51, 64, 65, 65, 70, 56, 64, 68, 59, 59, 65, 79, 49, 75, 52, 141, 63, 51, 63, 63, 68, 83, 59, 65, 58, 64, 59, 56, 63, 64, 62, 55, 75, 69, 70, 64, 60, 66, 54, 65, 64, 58, 57, 60, 77, 65, 51, 96, 73, 85, 64, 58, 61, 76, 52, 124, 77, 49, 72, 76, 69, 59, 56, 67, 64, 65, 66, 70, 67, 89, 81, 53, 47, 66, 53, 67, 68, 90, 92, 61, 46, 80, 83, 49, 56, 71, 59, 53, 66, 68, 61, 75, 61, 61, 90, 63, 90, 68, 60, 65, 66, 66, 58, 42, 63, 65, 81, 71, 66, 70, 62, 62, 49, 55, 52, 61, 58, 64, 69, 62, 58, 74, 71, 95, 81, 96, 70, 68, 68, 54, 64, 59, 87, 54, 70, 68, 73, 69, 64, 71, 67, 50, 88, 60, 72, 71, 69, 58, 64, 76, 60, 59, 63, 62, 77, 63, 65, 71, 62, 77, 58, 61, 70, 68, 63, 68, 73, 66, 63, 103, 54, 68, 67, 65, 69, 65, 71, 84, 75, 74, 70, 67, 71, 59, 70, 63, 86, 67, 77, 60, 66, 63, 66, 61, 53, 73, 69, 67, 73, 71, 50, 57, 83, 57, 65, 63, 59, 78, 81, 59, 54, 58, 55, 64, 76, 68, 65, 59, 59, 50, 75, 71, 73, 58, 73, 71, 60, 64, 68, 65, 64, 62, 57, 69, 93, 75, 63, 80, 60, 59, 66, 79, 71, 76, 63, 53, 80, 62, 61, 62, 65, 93, 70, 63, 71, 58, 63, 56, 55, 61, 73, 74, 63, 59, 82, 55, 80, 74, 63, 70, 72, 111, 57, 64, 69, 62, 63, 73, 43, 75, 73, 118, 89, 71, 61, 67, 76, 72, 89, 58, 56, 61, 84, 63, 61, 58, 84, 62, 56, 66, 73, 60, 48, 45, 62, 59, 58, 74, 75, 58, 65, 50, 57, 79, 70, 69, 70, 63, 73, 68, 64, 64, 83, 61, 56, 54, 59, 65, 64, 61, 74, 67, 84, 63, 53, 64, 59, 61, 57, 65, 78, 69, 64, 64, 61, 68, 94, 65, 72, 79, 98, 56, 53, 67, 77, 55, 59, 59, 62, 74, 61, 67, 58, 97, 77, 57, 53, 64, 66, 50, 62, 67, 56, 70, 59, 71, 70, 53, 110, 73, 83, 49, 66, 65, 54, 61, 66, 60, 65, 65, 56, 69, 81, 79, 67, 63, 69, 65, 63, 68, 72, 83, 94, 56, 52, 69, 44, 74, 66, 73, 60, 52, 64, 57, 58, 52, 63, 44, 58, 106, 55, 45, 81, 62, 56, 52, 71, 71, 70, 62, 47, 76, 69, 66, 75, 70, 62, 62, 77, 52, 69, 75, 91, 65, 64, 68, 62, 71, 73, 54, 70, 63, 59, 69, 77, 65, 63, 62, 53, 65, 81, 54, 67, 74, 78, 61, 60, 70, 62, 60, 61, 80, 73, 69, 63, 62, 108, 58, 52, 52, 66, 69, 58, 42, 82, 62, 53, 73, 55, 65, 60, 86, 62, 59, 69, 72, 66, 56, 60, 55, 52, 54, 63, 68, 69, 58, 69, 58, 57, 58, 68, 115, 50, 66, 123, 58, 78, 74, 60, 72, 42, 69, 52, 52, 53, 65, 86, 71, 57, 58, 81, 68, 65, 65, 67, 65, 73, 56, 71, 50, 69, 55, 57, 51, 57, 84, 68, 57, 66, 107, 69, 56, 66, 53, 61, 63, 79, 68, 70, 65, 51, 62, 61, 78, 58, 68, 65, 73, 68, 69, 60, 56, 63, 51, 61, 73, 72, 52, 51, 66, 46, 59, 71, 51, 61, 54, 61, 66, 79, 70, 61, 77, 65, 74, 55, 70, 55, 55, 60, 57, 57, 82, 48, 53, 59, 55, 63, 55, 73, 70, 56, 56, 65, 65, 58, 89, 61, 79, 66, 69, 55, 78, 54, 63, 63, 69, 84, 63, 70, 62, 55, 72, 56, 58, 64, 69, 69, 66, 69, 65, 60, 61, 59, 64, 61, 66, 67, 53, 65, 60, 69, 46, 57, 68, 86, 77, 58, 71, 65, 70, 80, 76, 61, 56, 55, 49, 55, 67, 62, 86, 61, 79, 48, 47, 49, 54, 78, 69, 81, 52, 58, 68, 111, 74, 88, 72, 62, 78, 47, 54, 76, 51, 62, 80, 70, 60, 99, 72, 52, 48, 70, 64, 75, 55, 56, 55, 80, 62, 86, 61, 48, 61, 81, 63, 64, 74, 45, 50, 63, 110, 51, 46, 67, 51, 62, 60, 64, 57, 88, 67, 88, 49, 17, 65, 45, 58, 77, 66, 70, 68, 62, 73, 46, 41, 101, 73, 64, 114, 46, 45, 67, 65, 78, 59, 50, 69, 59, 41, 53, 62, 83, 82, 52, 74, 84, 64, 71, 69, 72, 121, 83, 44, 48, 77, 92, 87, 60, 54, 77, 60, 65, 57, 129, 83, 61, 57, 74, 55, 57, 56, 81, 75, 110, 72, 46, 60, 47, 61, 67, 46, 56, 46, 84, 59, 81, 74, 92, 43, 83, 34, 56, 69, 51, 70, 83, 43, 54, 50, 72, 53, 63, 70, 67, 52, 71, 45, 59, 53, 55, 80, 59, 58, 63, 63, 61, 57, 76, 49, 72, 74, 65, 63, 57, 55, 57, 64, 64, 118, 97, 58, 63, 60, 52, 62, 94, 68, 43, 72, 51, 56, 75, 62, 57, 73, 45, 74, 80, 43, 58, 57, 84, 55, 76, 63, 52, 66, 84, 76, 56, 52, 59, 59, 68, 73, 48, 70, 50, 62, 81, 57, 63, 51, 65, 68, 65, 66, 67, 74, 59, 58, 138, 64, 41, 54, 66, 57, 77, 72, 103, 57, 78, 72, 81, 80, 56, 102, 77, 63, 53, 85, 57, 67, 79, 78, 68, 63, 44, 53, 61, 69, 91, 62, 74, 74, 53, 55, 48, 77, 39, 89, 56, 52, 75, 58, 64, 58, 72, 71, 132, 39, 54, 79, 55, 44, 84, 84, 71, 60, 64, 50, 80, 54, 60, 55, 68, 60, 55, 86, 97, 65, 107, 59, 69, 66, 78, 33, 69, 45, 55, 53, 52, 57, 65, 58, 52, 51, 78, 74, 96, 77, 57, 53, 56, 65, 91, 45, 41, 86, 62, 73, 54, 57, 62, 86, 70, 43, 54, 55, 115, 79, 72, 74, 68, 56, 89, 50, 49, 73, 77, 43, 45, 68, 61, 38, 61, 59, 63, 90, 78, 54, 71, 74, 61, 55, 74, 60, 77, 52, 36, 31, 62, 65, 51, 56, 58, 69, 85, 51, 59, 74, 57, 64, 91, 59, 81, 66, 51, 63, 58, 99, 84, 48, 79, 51, 66, 60, 101, 81, 32, 89, 75, 86, 88, 121, 62, 84, 69, 62, 59, 58, 67, 63, 50, 75, 88, 66, 70, 52, 92, 53, 64, 58, 83, 54, 110, 75, 59, 64, 55, 68, 66, 75, 53, 69, 58, 39, 69, 68, 64, 66, 45, 71, 96, 47, 50, 74, 49, 58, 56, 73, 69, 64, 67, 124, 64, 79, 66, 71, 41, 59, 60, 92, 64, 67, 100, 81, 65, 52, 41, 56, 72, 71, 52, 44, 61, 63, 64, 66, 54, 99, 65, 67, 74, 59, 51, 56, 63, 80, 45, 72, 60, 180, 71, 52, 62, 46, 59, 63, 72, 73, 68, 76, 65, 66, 69, 52, 62, 63, 72, 63, 69, 113, 53, 53, 54, 60, 73, 70, 69, 79, 59, 63, 58, 50, 48, 32, 65, 52, 59, 81, 72, 65, 59, 63, 84, 86, 75, 74, 91, 60, 68, 81, 68, 88, 47, 122, 84, 55, 33, 83, 120, 66, 57, 70, 50, 72, 57, 62, 58, 61, 74, 61, 60, 84, 60, 56, 65, 54, 82, 56, 67, 56, 50, 68, 79, 57, 70, 44, 69, 66, 82, 59, 54, 66, 76, 72, 81, 37, 70, 93, 64, 87, 46, 52, 53, 83, 63, 75, 55, 77, 54, 71, 68, 45, 73, 59, 64, 65, 65, 55, 50, 69, 57, 72, 43, 77, 72, 64, 74, 64, 36, 63, 68, 64, 71, 52, 53, 71, 74, 58, 95, 74, 77, 76, 75, 57, 62, 72, 47, 63, 65, 61, 60, 79, 43, 46, 62, 69, 65, 78, 67, 51, 51, 62, 73, 87, 59, 64, 58, 53, 51, 70, 95, 59, 62, 66, 40, 88, 54, 56, 99, 66, 56, 70, 50, 55, 58, 70, 60, 68, 75, 72, 89, 56, 57, 47, 55, 33, 78, 54, 59, 64, 60, 75, 78, 60, 86, 61, 67, 85, 86, 69, 48, 76, 99, 81, 51, 71, 88, 85, 94, 68, 66, 66, 52, 56, 85, 47, 64, 58, 72, 71, 74, 70, 60, 69, 47, 81, 72, 70, 76, 58, 60, 81, 63, 36, 80, 91, 92, 49, 55, 54, 68, 66, 62, 77, 60, 52, 69, 80, 56, 60, 58, 50, 52, 48, 64, 37, 67, 71, 89, 54, 47, 62, 42, 70, 74, 51, 85, 126, 55, 70, 54, 91, 49, 71, 61, 64, 60, 64, 58, 97, 78, 54, 64, 53, 60, 52, 86, 50, 59, 73, 68, 87, 70, 55, 93, 79, 87, 49, 50, 37, 51, 78, 62, 67, 63, 74, 67, 66, 74, 66, 66, 60, 77, 58, 62, 76, 72, 77, 60, 50, 55, 69, 58, 58, 64, 62, 71, 67, 72, 93, 64, 55, 60, 85, 56, 99, 83, 58, 70, 63, 50, 67, 54, 69, 47, 64, 59, 64, 54, 69, 79, 58, 51, 70, 57, 48, 79, 71, 73, 58, 57, 65, 81, 90, 82, 71, 72, 56, 53, 46, 79, 54, 73, 64, 74, 77, 95, 56, 70, 72, 75, 61, 60, 78, 87, 62, 60, 60, 53, 51, 59, 78, 56, 84, 74, 56, 97, 50, 59, 48, 63, 95, 61, 66, 51, 62, 52, 43, 74, 82, 85, 53, 58, 87, 80, 80, 79, 60, 58, 58, 74, 67, 72, 50, 79, 45, 53, 75, 42, 58, 50, 56, 67, 77, 93, 92, 68, 67, 48, 63, 58, 64, 58, 51, 58, 82, 66, 63, 61, 61, 71, 50, 90, 66, 60, 95, 67, 56, 69, 55, 73, 96, 65, 41, 80, 71, 59, 74, 62, 100, 76, 61, 68, 67, 58, 59, 55, 75, 89, 105, 75, 81, 88, 64, 72, 97, 80, 87, 64, 73, 52, 36, 57, 55, 69, 61, 65, 51, 49, 63, 70, 64, 84, 47, 57, 65, 70, 69, 69, 87, 53, 62, 49, 64, 76, 91, 64, 68, 63, 59, 44, 90, 58, 53, 69, 65, 95, 63, 65, 61, 95, 72, 57, 58, 86, 57, 50, 84, 78, 72, 68, 59, 36, 54, 58, 81, 64, 52, 83, 55, 77, 61, 103, 63, 92, 59, 57, 66, 66, 68, 70, 71, 95, 51, 78, 79, 76, 61, 70, 44, 50, 57, 57, 44, 72, 65, 65, 80, 82, 41, 76, 76, 67, 64, 75, 74, 65, 85, 48, 63, 58, 79, 35, 64, 56, 69, 59, 84, 60, 44, 53, 69, 70, 87, 69, 65, 50, 52, 72, 82, 55, 62, 52, 61, 72, 75, 61, 53, 63, 52, 66, 45, 40, 54, 67, 66, 62, 56, 71, 55, 63, 51, 59, 61, 75, 72, 75, 96, 65, 50, 63, 73, 55, 57, 62, 53, 68, 47, 68, 84, 56, 64, 75, 36, 61, 110, 62, 121, 71, 71, 66, 65, 64, 66, 63, 65, 67, 64, 85, 76, 56, 60, 61, 70, 53, 62, 73, 75, 52, 80, 51, 63, 61, 69, 62, 61, 60, 50, 62, 59, 69, 97, 80, 70, 61, 50, 51, 46, 83, 78, 57, 71, 59, 50, 68, 46, 79, 69, 64, 70, 76, 69, 88, 61, 73, 43, 49, 70, 72, 57, 61, 72, 116, 77, 59, 80, 66, 64, 49, 69, 59, 61, 53, 54, 57, 72, 45, 80, 73, 68, 65, 78, 47, 74, 70, 46, 60, 56, 71, 66, 62, 73, 67, 47, 61, 61, 65, 76, 53, 62, 51, 62, 73, 64, 60, 95, 57, 62, 111, 95, 51, 80, 43, 75, 69, 67, 55, 85, 74, 70, 80, 96, 73, 56, 80, 62, 55, 77, 57, 50, 67, 65, 49, 60, 60, 68, 110, 50, 70, 62, 86, 58, 69, 54, 57, 81, 93, 76, 99, 55, 84, 71, 62, 74, 81, 69, 76, 61, 78, 70, 52, 85, 91, 60, 65, 51, 61, 71, 85, 76, 84, 54, 62, 60, 71, 64, 56, 91, 67, 76, 67, 60, 65, 57, 59, 64, 57, 77, 65, 84, 89, 83, 73, 103, 70, 57, 80, 60, 61, 66, 60, 68, 55, 114, 49, 44, 75, 42, 72, 71, 101, 50, 74, 70, 43, 87, 73, 76, 68, 63, 53, 45, 60, 55, 75, 75, 66, 51, 88, 62, 46, 46, 65, 63, 63, 78, 48, 75, 59, 58, 45, 55, 75, 76, 69, 67, 52, 56, 56, 65, 69, 75, 66, 82, 73, 58, 68, 51, 51, 67, 58, 71, 54, 88, 83, 62, 63, 57, 48, 71, 64, 94, 70, 64, 83, 91, 43, 66, 69, 55, 67, 114, 71, 77, 89, 70, 72, 68, 62, 56, 62, 52, 55, 76, 69, 80, 68, 77, 81, 48, 58, 71, 51, 58, 54, 66, 57, 61, 64, 62, 52, 54, 74, 63, 51, 60, 68, 56, 91, 62, 58, 61, 79, 77, 74, 65, 52, 64, 54, 71, 62, 59, 58, 69, 48, 53, 77, 46, 61, 77, 56, 57, 87, 56, 87, 73, 53, 58, 56, 54, 78, 51, 78, 74, 60, 61, 78, 90, 69, 71, 79, 50, 57, 86, 64, 69, 41, 61, 52, 85, 71, 56, 73, 107, 71, 54, 75, 67, 75, 62, 81, 90, 84, 63, 80, 52, 52, 71, 80, 52, 73, 104, 63, 65, 70, 59, 76, 51, 72, 48, 67, 81, 60, 58, 69, 59, 68, 62, 76, 62, 53, 64, 59, 57, 72, 55, 62, 64, 77, 51, 67, 77, 51, 61, 75, 60, 66, 59, 47, 74, 76, 60, 71, 47, 54, 66, 100, 47, 56, 58, 68, 56, 56, 53, 57, 77, 75, 70, 59, 53, 71, 46, 75, 75, 50, 58, 86, 65, 73, 64, 69, 77, 56, 64, 60, 70, 52, 58, 45, 50, 61, 45, 72, 62, 65, 70, 65, 95, 81, 70, 78, 62, 40, 55, 62, 52, 69, 72, 44, 111, 70, 59, 58, 83, 77, 42, 78, 88, 65, 54, 66, 52, 65, 46, 122, 78, 44, 69, 71, 59, 66, 62, 67, 66, 50, 42, 74, 105, 68, 77, 68, 52, 58, 79, 54, 64, 51, 64, 59, 71, 74, 67, 69, 57, 54, 110, 48, 62, 69, 104, 136, 83, 56, 67, 67, 51, 60, 55, 86, 47, 64, 62, 69, 45, 48, 70, 78, 58, 56, 54, 85, 69, 66, 66, 57, 65, 54, 52, 66, 56, 33, 56, 38, 51, 88, 69, 50, 64, 79, 86, 54, 61, 80, 69, 76, 84, 65, 73, 88, 68, 93, 96, 53, 46, 74, 71, 78, 54, 74, 63, 58, 67, 68, 58, 114, 62, 65, 74, 60, 52, 54, 105, 65, 77, 85, 39, 80, 56, 63, 58, 84, 69, 70, 59, 60, 67, 51, 89, 45, 49, 58, 51, 31, 42, 53, 95, 70, 71, 65, 64, 65, 66, 61, 52, 67, 65, 64, 52, 58, 56, 59, 64, 53, 73, 66, 93, 65, 58, 55, 53, 41, 69, 58, 72, 65, 70, 78, 66, 61, 67, 53, 84, 80, 85, 55, 64, 71, 51, 56, 59, 60, 73, 57, 71, 58, 68, 79, 70, 85, 60, 64, 53, 102, 96, 76, 57, 78, 79, 48, 66, 62, 89, 56, 81, 50, 66, 59, 63, 57, 51, 70, 59, 57, 58, 63, 50, 55, 65, 63, 64, 88, 55, 76, 60, 75, 55, 63, 78, 74, 57, 87, 61, 78, 55, 55, 73, 68, 69, 72, 53, 46, 65, 73, 63, 84, 60, 56, 61, 50, 75, 87, 58, 84, 54, 53, 61, 50, 68, 81, 65, 80, 67, 65, 62, 72, 104, 62, 56, 54, 62, 62, 49, 110, 69, 38, 74, 109, 79, 61, 76, 55, 71, 89, 45, 64, 69, 93, 57, 58, 65, 67, 64, 58, 69, 85, 68, 76, 63, 52, 52, 61, 52, 52, 65, 54, 59, 46, 65, 59, 100, 97, 64, 53, 63, 63, 74, 67, 78, 65, 50, 70, 66, 41, 71, 69, 119, 48, 76, 69, 76, 67, 49, 66, 101, 45, 88, 64, 45, 61, 56, 59, 40, 100, 72, 51, 48, 42, 71, 62, 58, 60, 67, 54, 72, 66, 74, 86, 67, 57, 47, 75, 76, 60, 68, 70, 58, 67, 63, 69, 66, 53, 71, 76, 94, 65, 49, 66, 67, 60, 89, 56, 69, 57, 58, 62, 88, 62, 64, 47, 61, 105, 40, 74, 71, 61, 65, 70, 64, 143, 56, 63, 86, 56, 64, 64, 67, 51, 74, 58, 97, 60, 60, 59, 63, 76, 74, 71, 60, 64, 68, 63, 58, 78, 64, 89, 62, 76, 55, 63, 52, 58, 70, 50, 66, 76, 68, 57, 62, 74, 54, 62, 68, 58, 64, 67, 68, 83, 53, 100, 84, 53, 84, 82, 68, 54, 61, 66, 50, 57, 77, 68, 42, 62, 62, 47, 85, 47, 69, 48, 59, 50, 79, 40, 90, 55, 78, 55, 91, 90, 52, 74, 54, 64, 76, 61, 86, 64, 78, 82, 79, 84, 65, 76, 68, 56, 72, 42, 70, 67, 46, 62, 73, 70, 86, 67, 69, 75, 55, 53, 91, 57, 79, 67, 66, 59, 69, 66, 71, 58, 61, 114, 141, 58, 64, 67, 54, 74, 74, 72, 72, 67, 56, 52, 55, 67, 48, 52, 60, 58, 55, 62, 86, 75, 67, 69, 70, 63, 52, 60, 69, 57, 62, 58, 58, 59, 47, 65, 59, 46, 111, 62, 50, 59, 58, 78, 56, 63, 54, 61, 62, 68, 67, 61, 89, 70, 84, 55, 50, 77, 64, 47, 53, 80, 54, 56, 66, 81, 97, 70, 97, 70, 64, 53, 68, 59, 56, 52, 56, 68, 76, 70, 76, 59, 53, 77, 65, 47, 86, 55, 65, 62, 71, 60, 87, 59, 61, 85, 71, 67, 55, 76, 59, 78, 67, 63, 66, 73, 82, 36, 68, 55, 62, 68, 67, 59, 82, 52, 53, 74, 64, 65, 52, 56, 72, 52, 54, 77, 60, 75, 71, 64, 70, 59, 54, 81, 62, 79, 62, 72, 68, 56, 64, 69, 90, 112, 55, 79, 50, 54, 57, 58, 63, 61, 79, 78, 76, 74, 71, 74, 53, 41, 57, 74, 49, 40, 71, 98, 60, 63, 64, 88, 60, 65, 64, 76, 60, 50, 53, 60, 56, 74, 70, 64, 67, 67, 79, 51, 58, 59, 52, 65, 67, 105, 73, 75, 89, 64, 60, 62, 70, 45, 71, 66, 68, 65, 74, 79, 63, 57, 56, 76, 70, 48, 56, 64, 51, 72, 54, 72, 75, 87, 54, 46, 89, 70, 51, 55, 75, 63, 70, 49, 69, 76, 60, 68, 100, 64, 66, 67, 58, 72, 73, 50, 75, 48, 73, 58, 62, 86, 56, 48, 55, 68, 68, 62, 88, 64, 63, 55, 75, 50, 69, 68, 55, 66, 64, 59, 65, 58, 76, 76, 75, 76, 66, 62, 62, 51, 78, 53, 60, 77, 60, 57, 67, 69, 52, 70, 65, 55, 52, 66, 41, 54, 61, 50, 72, 64, 75, 77, 70, 50, 78, 56, 83, 50, 78, 59, 76, 56, 50, 39, 78, 65, 78, 60, 60, 61, 75, 60, 63, 62, 69, 32, 36, 58, 63, 61, 70, 70, 68, 57, 73, 50, 48, 77, 73, 58, 56, 46, 61, 67, 46, 100, 75, 55, 63, 63, 73, 72, 54, 56, 78, 84, 63, 61, 72, 58, 102, 57, 82, 71, 65, 80, 66, 47, 51, 46, 67, 44, 74, 68, 73, 68, 67, 62, 52, 93, 113, 52, 69, 56, 62, 66, 57, 63, 77, 58, 59, 69, 64, 50, 51, 69, 52, 75, 71, 60, 63, 69, 76, 59, 62, 69, 61, 71, 101, 59, 62, 62, 68, 50, 65, 90, 67, 42, 55, 70, 68, 64, 55, 55, 60, 110, 79, 55, 56, 61, 81, 71, 68, 59, 69, 78, 60, 65, 70, 61, 73, 49, 79, 94, 60, 52, 39, 92, 51, 56, 65, 70, 62, 56, 93, 54, 67, 102, 80, 67, 81, 57, 74, 83, 57, 66, 62, 72, 72, 56, 66, 68, 70, 56, 53, 72, 60, 65, 57, 62, 59, 99, 71, 77, 67, 67, 66, 69, 51, 95, 61, 63, 62, 67, 69, 57, 111, 60, 68, 71, 77, 63, 61, 75, 64, 54, 68, 61, 65, 66, 80, 60, 63, 59, 75, 59, 65, 70, 60, 71, 40, 57, 48, 59, 91, 58, 51, 59, 59, 64, 105, 71, 58, 70, 80, 67, 89, 58, 56, 56, 63, 68, 60, 71, 78, 67, 72, 81, 55, 73, 53, 77, 66, 90, 66, 75, 60, 59, 50, 76, 63, 65, 71, 74, 61, 67, 59, 67, 68, 65, 46, 68, 66, 81, 52, 52, 64, 76, 71, 87, 71, 44, 56, 53, 56, 63, 86, 62, 78, 60, 67, 61, 68, 59, 72, 56, 87, 61, 57, 66, 72, 77, 66, 60, 64, 73, 73, 110, 55, 61, 73, 60, 53, 118, 52, 79, 70, 48, 64, 77, 53, 59, 67, 66, 70, 61, 53, 70, 66, 64, 82, 39, 80, 57, 73, 55, 64, 69, 56, 58, 82, 67, 86, 63, 65, 71, 64, 64, 53, 72, 90, 80, 56, 53, 102, 64, 47, 54, 67, 80, 61, 67, 65, 51, 49, 76, 53, 62, 53, 65, 70, 71, 81, 59, 70, 47, 77, 72, 48, 59, 45, 67, 52, 97, 68, 64, 57, 66, 56, 59, 62, 50, 56, 63, 60, 71, 80, 64, 61, 77, 69, 42, 43, 55, 104, 67, 87, 107, 54, 75, 61, 70, 72, 64, 62, 57, 65, 76, 52, 66, 70, 57, 55, 62, 58, 68, 58, 65, 58, 66, 71, 69, 53, 77, 83, 54, 53, 84, 78, 55, 70, 56, 67, 123, 59, 62, 91, 56, 68, 59, 64, 68, 54, 72, 44, 60, 66, 74, 63, 76, 49, 76, 64, 63, 83, 70, 61, 70, 75, 93, 58, 64, 109, 78, 68, 62, 92, 63, 65, 80, 60, 49, 47, 43, 70, 75, 90, 52, 80, 57, 64, 66, 89, 92, 45, 53, 62, 62, 52, 55, 65, 70, 55, 62, 66, 64, 62, 75, 71, 62, 71, 67, 56, 69, 68, 57, 78, 68, 68, 48, 48, 60, 79, 64, 93, 63, 107, 75, 75, 62, 66, 70, 56, 59, 53, 68, 67, 57, 75, 64, 87, 35, 60, 57, 52, 64, 69, 56, 54, 80, 72, 82, 56, 71, 49, 46, 75, 65, 71, 56, 66, 58, 61, 60, 68, 69, 64, 68, 64, 53, 69, 81, 54, 54, 67, 45, 62, 73, 79, 58, 85, 65, 60, 60, 71, 67, 101, 74, 59, 59, 57, 58, 71, 71, 62, 64, 69, 113, 83, 76, 57, 49, 66, 61, 52, 50, 73, 62, 52, 62, 65, 73, 65, 52, 59, 58, 111, 63, 57, 57, 63, 60, 74, 47, 55, 58, 71, 51, 62, 82, 62, 54, 60, 70, 57, 66, 61, 51, 64, 62, 63, 65, 101, 56, 54, 64, 64, 114, 83, 62, 65, 57, 70, 82, 111, 99, 51, 80, 64, 71, 66, 63, 54, 57, 65, 59, 69, 65, 64, 71, 65, 64, 59, 59, 47, 68, 70, 55, 64, 100, 71, 70, 57, 60, 93, 58, 75, 62, 64, 60, 59, 57, 68, 63, 64, 65, 62, 57, 60, 65, 72, 72, 63, 53, 64, 50, 70, 56, 56, 72, 56, 57, 67, 60, 59, 61, 69, 73, 63, 75, 55, 62, 72, 63, 59, 49, 64, 71, 105, 77, 60, 55, 60, 54, 65, 75, 62, 55, 60, 77, 71, 79, 62, 56, 76, 71, 65, 70, 73, 57, 73, 63, 60, 60, 74, 64, 51, 64, 59, 72, 49, 74, 62, 61, 49, 70, 67, 64, 59, 66, 71, 72, 62, 65, 57, 61, 70, 105, 57, 63, 88, 62, 58, 70, 62, 68, 51, 55, 67, 119, 71, 71, 58, 57, 53, 78, 102, 71, 58, 56, 74, 73, 57, 52, 60, 58, 77, 64, 64, 61, 67, 118, 57, 56, 63, 68, 53, 73, 56, 65, 83, 57, 56, 62, 72, 63, 96, 65, 72, 63, 63, 59, 62, 74, 59, 91, 59, 51, 71, 45, 80, 72, 90, 82, 56, 94, 61, 70, 99, 53, 71, 64, 68, 51, 61, 69, 57, 50, 66, 54, 56, 49, 47, 68, 57, 55, 50, 68, 66, 71, 55, 101, 85, 79, 73, 71, 70, 88, 101, 46, 54, 94, 69, 45, 61, 95, 70, 51, 68, 71, 56, 87, 59, 53, 66, 54, 52, 108, 84, 65, 51, 61, 59, 64, 88, 73, 54, 54, 56, 57, 77, 71, 64, 63, 57, 68, 56, 90, 89, 73, 65, 65, 57, 68, 62, 61, 69, 71, 75, 62, 68, 46, 63, 66, 46, 64, 52, 68, 67, 64, 61, 67, 80, 64, 63, 58, 60, 60, 73, 60, 68, 66, 65, 67, 67, 60, 60, 57, 57, 57, 66, 63, 84, 57, 60, 71, 62, 62, 60, 63, 76, 90, 59, 61, 65, 67, 49, 67, 62, 83, 61, 67, 59, 73, 68, 61, 63, 69, 49, 51, 76, 59, 78, 55, 74, 59, 79, 64, 52, 59, 70, 62, 111, 74, 72, 50, 59, 74, 62, 71, 62, 74, 62, 61, 58, 49, 61, 64, 65, 72, 57, 62, 71, 59, 67, 73, 54, 83, 70, 65, 50, 72, 66, 60, 66, 72, 59, 80, 71, 71, 67, 66, 62, 52, 98, 57, 97, 61, 64, 73, 62, 44, 67, 97, 46, 71, 87, 66, 69, 56, 50, 60, 69, 66, 60, 54, 60, 51, 72, 60, 64, 54, 59, 64, 64, 67, 75, 63, 106, 48, 47, 58, 54, 73, 85, 63, 70, 65, 67, 136, 84, 58, 67, 72, 104, 53, 57, 57, 56, 63, 60, 60, 66, 67, 93, 56, 56, 67, 71, 64, 76, 68, 78, 63, 63, 80, 116, 61, 67, 63, 66, 72, 69, 51, 59, 44, 82, 83, 63, 71, 65, 61, 80, 47, 51, 85, 57, 66, 52, 71, 60, 44, 77, 58, 47, 47, 66, 67, 57, 96, 63, 60, 50, 67, 84, 54, 57, 58, 78, 51, 70, 47, 72, 61, 66, 49, 51, 67, 75, 69, 51, 48, 64, 61, 50, 71, 56, 59, 79, 59, 62, 86, 67, 83, 51, 35, 60, 48, 66, 98, 59, 60, 67, 65, 65, 68, 60, 71, 59, 65, 60, 70, 63, 66, 68, 44, 69, 67, 81, 63, 65, 84, 92, 73, 51, 57, 72, 55, 80, 51, 72, 60, 61, 66, 72, 91, 64, 60, 85, 63, 57, 57, 64, 64, 53, 53, 90, 67, 56, 74, 63, 65, 74, 55, 62, 66, 65, 41, 76, 61, 53, 63, 66, 55, 57, 61, 73, 63, 58, 77, 95, 64, 74, 61, 72, 53, 58, 62, 80, 65, 55, 79, 63, 59, 78, 55, 62, 74, 60, 80, 71, 72, 58, 70, 66, 57, 67, 70, 68, 56, 60, 90, 54, 81, 56, 65, 65, 55, 69, 76, 56, 54, 69, 84, 67, 44, 51, 52, 59, 57, 79, 69, 81, 61, 58, 60, 62, 62, 58, 77, 83, 91, 87, 63, 51, 130, 61, 50, 70, 63, 56, 55, 69, 80, 52, 48, 59, 46, 65, 95, 67, 53, 81, 49, 91, 62, 56, 66, 82, 74, 62, 64, 96, 63, 76, 67, 56, 64, 66, 56, 89, 64, 63, 53, 68, 85, 62, 71, 61, 70, 61, 57, 46, 58, 69, 67, 62, 60, 87, 44, 57, 50, 62, 78, 58, 59, 53, 67, 69, 72, 60, 66, 70, 48, 80, 79, 58, 72, 64, 54, 68, 62, 53, 56, 69, 57, 58, 65, 64, 76, 68, 66, 61, 58, 66, 76, 68, 68, 75, 75, 58, 61, 60, 92, 67, 55, 60, 64, 74, 76, 74, 73, 57, 57, 68, 52, 68, 65, 45, 74, 69, 59, 65, 58, 47, 67, 66, 68, 67, 63, 63, 50, 55, 61, 57, 57, 54, 60, 94, 77, 65, 48, 66, 59, 51, 78, 70, 88, 60, 67, 66, 69, 70, 109, 54, 82, 56, 103, 67, 65, 66, 49, 59, 74, 70, 80, 81, 62, 52, 64, 41, 70, 65, 41, 66, 51, 109, 74, 53, 65, 94, 65, 57, 72, 65, 73, 73, 55, 84, 61, 68, 55, 77, 60, 71, 74, 51, 54, 81, 56, 60, 72, 88, 56, 50, 69, 54, 62, 79, 72, 73, 70, 81, 53, 65, 61, 65, 55, 64, 68, 47, 64, 66, 58, 48, 60, 51, 56, 65, 73, 46, 44, 63, 59, 80, 65, 65, 61, 57, 55, 61, 72, 63, 64, 82, 56, 59, 85, 45, 52, 72, 65, 90, 88, 58, 72, 46, 63, 70, 65, 86, 71, 85, 54, 52, 58, 61, 70, 65, 77, 57, 62, 64, 66, 59, 65, 64, 63, 71, 60, 67, 65, 50, 67, 58, 62, 62, 69, 64, 53, 92, 67, 51, 53, 69, 76, 86, 53, 90, 42, 52, 128, 105, 88, 59, 69, 75, 85, 63, 48, 76, 72, 77, 59, 57, 54, 61, 55, 63, 50, 82, 68, 47, 54, 82, 65, 72, 73, 60, 78, 81, 70, 64, 71, 50, 66, 86, 62, 54, 56, 59, 56, 64, 79, 68, 80, 63, 65, 52, 51, 50, 62, 52, 71, 70, 74, 88, 84, 52, 99, 55, 74, 67, 57, 61, 62, 66, 48, 53, 55, 52, 81, 60, 87, 47, 54, 47, 74, 78, 58, 63, 52, 67, 86, 102, 57, 62, 60, 100, 57, 50, 88, 72, 56, 77, 70, 62, 77, 89, 67, 50, 63, 63, 56, 68, 47, 62, 69, 56, 63, 68, 57, 75, 85, 68, 49, 51, 75, 63, 48, 51, 60, 63, 86, 76, 78, 72, 57, 54, 36, 63, 88, 131, 45, 64, 56, 62, 66, 72, 60, 57, 57, 63, 90, 68, 63, 55, 60, 67, 41, 61, 71, 60, 80, 68, 59, 67, 61, 79, 62, 81, 61, 61, 28, 65, 76, 56, 63, 71, 67, 73, 55, 67, 61, 59, 52, 56, 56, 58, 61, 75, 69, 71, 123, 113, 69, 70, 63, 46, 62, 54, 54, 65, 75, 47, 52, 56, 56, 70, 42, 92, 55, 79, 65, 65, 53, 59, 71, 50, 76, 93, 46, 69, 54, 70, 73, 65, 47, 56, 83, 51, 54, 66, 64, 68, 56, 60, 63, 60, 65, 65, 64, 61, 69, 55, 90, 60, 68, 73, 85, 45, 63, 63, 72, 55, 75, 57, 68, 62, 65, 48, 62, 84, 65, 73, 56, 61, 70, 46, 80, 51, 67, 53, 58, 61, 80, 58, 63, 43, 53, 56, 49, 93, 68, 65, 79, 78, 77, 59, 63, 56, 54, 95, 45, 100, 82, 53, 72, 56, 69, 58, 67, 62, 84, 57, 57, 68, 74, 61, 55, 57, 70, 64, 61, 72, 55, 51, 57, 58, 83, 79, 63, 57, 62, 64, 48, 78, 69, 57, 46, 64, 36, 93, 66, 72, 59, 77, 64, 64, 77, 69, 81, 80, 60, 72, 65, 74, 81, 60, 64, 65, 71, 60, 79, 70, 69, 58, 54, 62, 72, 84, 57, 47, 55, 59, 74, 54, 53, 64, 70, 50, 65, 60, 66, 68, 46, 92, 54, 65, 58, 61, 66, 62, 78, 53, 85, 61, 86, 80, 66, 76, 62, 60, 73, 65, 69, 87, 87, 72, 68, 58, 53, 62, 107, 62, 58, 89, 59, 60, 63, 72, 69, 72, 73, 81, 72, 83, 54, 70, 64, 50, 76, 75, 60, 81, 60, 81, 72, 58, 61, 65, 71, 55, 78, 55, 56, 58, 47, 71, 51, 47, 103, 64, 71, 63, 64, 80, 50, 65, 57, 57, 68, 89, 68, 63, 46, 91, 62, 51, 73, 75, 60, 57, 59, 82, 61, 65, 67, 51, 44, 80, 56, 67, 92, 51, 69, 85, 66, 71, 62, 58, 57, 55, 100, 76, 51, 55, 66, 106, 56, 64, 58, 70, 56, 50, 60, 54, 65, 85, 70, 81, 64, 59, 95, 70, 82, 44, 61, 55, 60, 62, 59, 63, 55, 105, 60, 69, 63, 89, 53, 63, 77, 84, 76, 57, 74, 63, 58, 70, 65, 80, 64, 71, 59, 58, 67, 72, 56, 57, 54, 67, 67, 56, 62, 61, 64, 81, 61, 52, 77, 61, 84, 105, 83, 67, 73, 53, 60, 57, 75, 65, 64, 63, 58, 57, 62, 55, 56, 75, 75, 60, 58, 79, 65, 82, 58, 53, 64, 62, 63, 58, 61, 60, 71, 73, 75, 69, 38, 41, 69, 71, 94, 63, 68, 62, 96, 57, 90, 81, 56, 59, 62, 54, 56, 51, 72, 108, 44, 69, 61, 80, 60, 107, 44, 56, 55, 64, 62, 63, 41, 58, 54, 76, 74, 64, 67, 52, 93, 63, 54, 66, 92, 74, 65, 67, 59, 54, 75, 106, 65, 71, 74, 78, 53, 73, 60, 59, 58, 65, 62, 58, 84, 64, 82, 63, 60, 61, 85, 79, 59, 65, 65, 66, 46, 37, 66, 73, 69, 68, 62, 88, 54, 56, 59, 66, 61, 63, 55, 62, 65, 64, 64, 72, 81, 79, 143, 76, 105, 78, 81, 47, 67, 70, 74, 65, 77, 54, 70, 53, 65, 52, 92, 56, 68, 65, 78, 67, 56, 58, 65, 59, 83, 64, 47, 66, 57, 58, 53, 71, 64, 63, 62, 61, 65, 66, 61, 57, 53, 67, 69, 55, 71, 50, 51, 82, 49, 67, 51, 60, 94, 59, 78, 51, 65, 66, 59, 62, 72, 74, 61, 60, 77, 51, 74, 75, 60, 75, 60, 70, 116, 55, 62, 57, 79, 62, 44, 82, 70, 54, 68, 93, 51, 70, 55, 74, 62, 59, 49, 57, 60, 78, 72, 62, 67, 53, 60, 58, 50, 77, 80, 78, 78, 110, 65, 52, 50, 52, 58, 52, 76, 62, 54, 57, 68, 52, 54, 70, 62, 56, 64, 53, 62, 56, 56, 49, 74, 89, 53, 77, 56, 62, 64, 52, 71, 61, 78, 120, 65, 61, 55, 77, 66, 79, 90, 75, 53, 59, 65, 70, 65, 52, 68, 65, 53, 68, 68, 59, 59, 54, 54, 58, 54, 69, 59, 69, 78, 70, 58, 106, 72, 55, 55, 71, 56, 68, 61, 58, 76, 59, 66, 60, 65, 82, 88, 64, 80, 71, 69, 85, 45, 66, 54, 65, 67, 49, 80, 68, 80, 60, 50, 64, 59, 67, 49, 54, 104, 64, 62, 72, 77, 71, 62, 53, 58, 48, 75, 45, 68, 63, 44, 103, 93, 54, 62, 69, 52, 62, 60, 94, 65, 68, 61, 78, 53, 68, 57, 46, 67, 59, 64, 73, 73, 63, 60, 59, 53, 69, 78, 78, 70, 63, 46, 53, 60, 54, 60, 56, 61, 60, 66, 62, 52, 56, 55, 72, 63, 72, 60, 75, 56, 74, 84, 55, 58, 59, 86, 75, 68, 62, 69, 70, 67, 66, 68, 93, 49, 71, 56, 66, 56, 69, 79, 90, 55, 63, 66, 76, 84, 50, 95, 58, 72, 62, 54, 56, 69, 81, 62, 63, 72, 66, 58, 65, 77, 54, 65, 60, 56, 61, 88, 70, 67, 63, 59, 73, 65, 67, 53, 66, 50, 58, 54, 86, 79, 115, 72, 78, 72, 34, 55, 110, 68, 68, 73, 57, 74, 101, 67, 77, 48, 57, 71, 60, 55, 71, 52, 66, 64, 63, 47, 53, 87, 54, 57, 120, 71, 60, 66, 59, 51, 57, 64, 71, 56, 68, 70, 52, 63, 64, 72, 67, 68, 62, 64, 50, 75, 44, 41, 73, 61, 86, 67, 53, 55, 59, 56, 74, 59, 74, 41, 75, 59, 72, 93, 58, 60, 68, 71, 68, 69, 55, 71, 59, 53, 65, 45, 57, 70, 76, 48, 92, 38, 48, 54, 54, 74, 67, 75, 67, 80, 64, 55, 139, 65, 84, 93, 73, 80, 62, 79, 62, 73, 46, 73, 80, 57, 64, 81, 73, 43, 75, 69, 55, 64, 63, 55, 72, 87, 64, 59, 84, 38, 67, 73, 67, 53, 74, 64, 63, 56, 82, 61, 80, 64, 71, 65, 114, 29, 50, 71, 69, 72, 81, 82, 57, 56, 77, 59, 68, 93, 64, 69, 63, 64, 61, 89, 56, 75, 73, 39, 57, 52, 68, 57, 75, 80, 68, 89, 64, 48, 58, 72, 47, 48, 66, 76, 51, 78, 79, 61, 60, 81, 69, 70, 74, 68, 89, 46, 85, 70, 71, 63, 77, 122, 62, 79, 52, 96, 62, 67, 45, 73, 65, 76, 65, 58, 59, 87, 68, 48, 48, 69, 61, 68, 77, 59, 53, 72, 61, 65, 80, 39, 62, 66, 46, 52, 60, 72, 70, 76, 72, 57, 54, 54, 63, 66, 61, 59, 60, 43, 58, 59, 66, 58, 105, 53, 67, 66, 54, 51, 99, 68, 53, 69, 47, 42, 71, 49, 65, 67, 71, 69, 64, 66, 61, 54, 52, 65, 52, 59, 69, 67, 65, 71, 68, 46, 72, 68, 98, 100, 43, 48, 54, 60, 76, 65, 85, 75, 58, 95, 69, 66, 65, 79, 63, 46, 62, 79, 64, 74, 62, 60, 53, 60, 59, 67, 62, 69, 70, 67, 56, 55, 56, 79, 44, 78, 63, 105, 84, 59, 54, 81, 63, 74, 64, 72, 74, 44, 65, 72, 61, 84, 54, 75, 70, 45, 87, 69, 61, 45, 42, 52, 51, 57, 67, 103, 88, 59, 115, 76, 67, 73, 70, 53, 40, 57, 56, 54, 81, 52, 60, 70, 55, 70, 74, 53, 65, 44, 63, 81, 106, 49, 63, 57, 118, 64, 56, 54, 53, 64, 77, 56, 56, 67, 61, 70, 62, 55, 63, 52, 51, 51, 46, 70, 60, 67, 57, 80, 60, 69, 63, 59, 53, 51, 79, 62, 50, 63, 59, 58, 89, 48, 67, 78, 54, 55, 46, 63, 71, 34, 98, 62, 75, 47, 55, 88, 50, 80, 56, 52, 79, 119, 88, 95, 61, 75, 79, 76, 55, 75, 83, 53, 83, 53, 56, 65, 69, 72, 75, 97, 99, 89, 52, 72, 116, 65, 71, 69, 40, 104, 62, 84, 55, 92, 40, 64, 61, 61, 55, 70, 62, 60, 72, 49, 58, 55, 76, 112, 72, 61, 62, 88, 83, 75, 60, 61, 48, 80, 75, 43, 58, 66, 97, 94, 51, 93, 57, 76, 65, 62, 61, 56, 37, 54, 55, 64, 63, 51, 61, 72, 58, 56, 116, 89, 56, 50, 44, 51, 64, 56, 70, 58, 70, 64, 80, 47, 63, 75, 57, 63, 60, 53, 50, 57, 64, 37, 58, 43, 58, 88, 96, 67, 78, 70, 58, 57, 103, 64, 69, 65, 52, 62, 67, 76, 52, 60, 58, 78, 59, 57, 66, 58, 91, 73, 85, 47, 73, 44, 63, 65, 63, 64, 55, 56, 57, 48, 73, 67, 54, 106, 73, 48, 76, 61, 80, 50, 63, 42, 69, 94, 66, 65, 75, 51, 66, 86, 60, 59, 77, 58, 36, 31, 56, 65, 57, 58, 99, 64, 58, 49, 57, 74, 62, 50, 73, 63, 85, 56, 59, 83, 56, 67, 59, 58, 55, 47, 65, 63, 127, 54, 54, 64, 56, 77, 84, 46, 56, 59, 64, 69, 64, 55, 62, 45, 98, 51, 64, 82, 58, 70, 57, 116, 79, 57, 64, 62, 107, 68, 46, 57, 53, 56, 51, 45, 63, 77, 68, 74, 95, 69, 54, 121, 96, 55, 21, 68, 74, 89, 58, 128, 63, 78, 75, 49, 68, 67, 54, 101, 56, 67, 58, 76, 73, 49, 68, 40, 65, 53, 61, 54, 54, 81, 80, 66, 74, 57, 71, 58, 63, 59, 64, 53, 93, 60, 50, 86, 61, 51, 97, 73, 43, 69, 67, 54, 58, 89, 65, 79, 96, 85, 68, 62, 41, 84, 49, 53, 60, 63, 55, 69, 60, 56, 58, 71, 59, 48, 50, 86, 68, 57, 72, 65, 49, 80, 68, 64, 63, 62, 61, 66, 56, 45, 68, 57, 76, 57, 65, 49, 54, 60, 84, 56, 50, 68, 68, 68, 68, 68, 90, 50, 54, 64, 56, 60, 53, 80, 106, 60, 56, 80, 55, 62, 70, 70, 54, 79, 57, 64, 57, 58, 51, 86, 87, 77, 57, 57, 65, 62, 44, 73, 78, 66, 74, 64, 67, 99, 54, 79, 76, 58, 81, 59, 52, 66, 58, 54, 58, 54, 64, 66, 64, 109, 53, 75, 67, 72, 66, 47, 75, 83, 54, 108, 61, 63, 55, 59, 72, 80, 61, 69, 58, 61, 83, 89, 57, 56, 56, 94, 66, 54, 79, 92, 50, 71, 66, 70, 90, 64, 87, 91, 56, 66, 63, 60, 83, 61, 74, 68, 75, 73, 61, 104, 56, 45, 53, 73, 84, 58, 52, 69, 45, 57, 60, 90, 62, 53, 66, 51, 48, 60, 32, 91, 86, 53, 76, 47, 66, 66, 55, 54, 56, 78, 61, 59, 61, 75, 68, 60, 72, 63, 61, 55, 64, 74, 71, 79, 57, 42, 55, 61, 57, 48, 52, 69, 56, 60, 81, 88, 49, 53, 68, 56, 75, 73, 69, 64, 69, 47, 62, 67, 76, 49, 62, 65, 57, 87, 75, 65, 52, 63, 66, 68, 59, 63, 74, 59, 93, 67, 53, 75, 65, 62, 58, 62, 54, 87, 42, 54, 54, 65, 65, 69, 48, 70, 78, 63, 72, 54, 73, 64, 77, 61, 54, 66, 81, 88, 62, 72, 75, 66, 58, 67, 63, 74, 75, 77, 74, 58, 66, 67, 54, 72, 75, 62, 52, 60, 98, 52, 66, 49, 59, 44, 71, 82, 65, 70, 60, 75, 67, 67, 62, 45, 59, 88, 57, 64, 61, 99, 64, 87, 83, 68, 99, 83, 92, 46, 62, 74, 53, 40, 63, 122, 85, 61, 64, 76, 49, 74, 65, 57, 41, 54, 66, 46, 55, 54, 150, 56, 62, 57, 54, 66, 59, 68, 95, 59, 58, 88, 51, 65, 80, 62, 79, 56, 73, 64, 76, 75, 76, 76, 66, 51, 45, 56, 87, 65, 55, 96, 62, 98, 56, 78, 99, 58, 79, 57, 65, 69, 56, 47, 79, 60, 48, 77, 79, 55, 58, 74, 70, 78, 73, 39, 54, 76, 48, 54, 52, 64, 73, 67, 99, 48, 59, 58, 68, 70, 70, 55, 78, 88, 54, 78, 89, 54, 60, 56, 63, 60, 85, 78, 58, 80, 67, 37, 55, 59, 64, 74, 56, 59, 82, 72, 59, 46, 60, 62, 62, 81, 120, 68, 53, 56, 66, 65, 67, 55, 58, 60, 81, 48, 77, 67, 81, 58, 66, 60, 67, 76, 86, 59, 79, 82, 59, 54, 59, 54, 108, 81, 50, 64, 70, 56, 133, 62, 59, 77, 48, 69, 67, 92, 78, 47, 85, 54, 98, 59, 93, 67, 73, 84, 81, 47, 77, 67, 65, 73, 52, 76, 63, 85, 64, 75, 38, 47, 62, 75, 61, 66, 101, 43, 61, 70, 52, 64, 91, 63, 60, 60, 65, 78, 31, 82, 63, 50, 72, 118, 60, 59, 62, 52, 91, 60, 63, 62, 67, 95, 74, 65, 65, 56, 61, 75, 48, 66, 51, 59, 68, 52, 41, 70, 64, 31, 34, 74, 78, 71, 65, 68, 59, 73, 74, 81, 58, 62, 87, 70, 58, 68, 59, 53, 64, 153, 56, 94, 39, 53, 60, 73, 63, 69, 77, 77, 64, 62, 54, 71, 52, 65, 73, 72, 82, 62, 59, 77, 53, 58, 79, 48, 40, 75, 80, 56, 75, 65, 80, 53, 68, 40, 55, 85, 64, 76, 85, 65, 83, 70, 58, 43, 57, 94, 72, 48, 51, 68, 75, 62, 75, 68, 60, 65, 67, 73, 66, 75, 67, 69, 84, 60, 60, 54, 49, 56, 47, 70, 55, 78, 74, 49, 69, 65, 74, 67, 60, 153, 74, 68, 54, 49, 53, 73, 56, 52, 50, 56, 102, 68, 55, 59, 71, 60, 50, 69, 53, 64, 82, 54, 43, 92, 63, 55, 58, 74, 62, 48, 59, 64, 54, 88, 68, 72, 72, 86, 66, 66, 73, 60, 83, 156, 78, 73, 76, 97, 49, 63, 63, 45, 93, 54, 56, 51, 54, 71, 103, 76, 57, 65, 68, 54, 87, 78, 70, 48, 67, 47, 44, 88, 67, 70, 77, 70, 51, 74, 43, 81, 54, 49, 74, 73, 51, 46, 74, 62, 42, 72, 44, 85, 65, 63, 70, 66, 82, 53, 43, 81, 66, 69, 53, 66, 69, 88, 58, 64, 46, 67, 65, 70, 56, 55, 72, 56, 64, 89, 57, 72, 80, 62, 43, 59, 56, 65, 46, 41, 87, 50, 48, 65, 75, 58, 36, 76, 55, 86, 74, 79, 61, 44, 73, 72, 74, 68, 66, 51, 51, 50, 82, 48, 80, 85, 57, 50, 61, 57, 69, 88, 42, 77, 71, 73, 63, 88, 69, 63, 69, 46, 76, 71, 78, 47, 63, 53, 51, 92, 65, 54, 66, 55, 100, 81, 61, 60, 90, 51, 73, 55, 50, 66, 59, 63, 79, 60, 58, 62, 63, 42, 47, 69, 85, 68, 26, 64, 75, 44, 59, 58, 47, 58, 67, 71, 53, 81, 78, 53, 83, 70, 74, 48, 66, 64, 62, 72, 69, 39, 64, 51, 61, 62, 108, 56, 59, 51, 68, 77, 69, 56, 51, 69, 64, 60, 67, 71, 85, 75, 59, 87, 57, 68, 72, 78, 40, 50, 58, 81, 96, 64, 59, 61, 60, 56, 70, 73, 66, 78, 57, 74, 46, 73, 90, 65, 91, 89, 51, 53, 61, 73, 49, 47, 58, 47, 70, 70, 65, 85, 69, 61, 66, 62, 85, 68, 57, 70, 54, 43, 84, 69, 67, 84, 66, 61, 89, 56, 53, 64, 42, 79, 64, 70, 80, 63, 59, 33, 71, 74, 65, 82, 62, 51, 69, 69, 115, 76, 111, 68, 64, 66, 45, 78, 47, 81, 59, 58, 61, 81, 54, 71, 32, 62, 82, 92, 123, 88, 62, 62, 71, 54, 80, 54, 61, 52, 66, 46, 75, 84, 67, 51, 54, 52, 76, 60, 59, 88, 43, 72, 72, 58, 94, 67, 39, 89, 63, 66, 51, 50, 71, 53, 61, 61, 52, 77, 52, 80, 55, 47, 61, 62, 69, 73, 60, 84, 79, 62, 52, 51, 67, 67, 71, 69, 83, 55, 59, 63, 51, 69, 46, 57, 81, 61, 59, 52, 54, 55, 57, 52, 97, 45, 64, 67, 49, 81, 44, 76, 95, 104, 52, 70, 54, 76, 54, 71, 64, 47, 69, 65, 59, 62, 77, 58, 90, 52, 75, 86, 66, 50, 47, 60, 58, 82, 74, 54, 71, 71, 69, 62, 69, 56, 63, 71, 43, 52, 61, 44, 36, 53, 70, 93, 74, 58, 98, 77, 65, 74, 84, 60, 60, 136, 55, 69, 66, 54, 64, 70, 65, 45, 47, 78, 88, 77, 75, 57, 63, 67, 56, 61, 75, 51, 60, 54, 66, 69, 65, 46, 109, 64, 62, 63, 76, 90, 79, 62, 66, 54, 54, 52, 55, 44, 48, 64, 50, 82, 73, 77, 58, 77, 75, 81, 62, 67, 62, 69, 72, 58, 65, 66, 66, 73, 29, 72, 86, 64, 88, 94, 59, 53, 49, 59, 58, 68, 61, 70, 82, 57, 87, 71, 60, 44, 64, 72, 63, 51, 67, 79, 84, 102, 69, 47, 49, 78, 47, 52, 55, 66, 48, 76, 93, 69, 71, 74, 51, 73, 74, 47, 60, 58, 64, 69, 106, 46, 55, 66, 76, 58, 83, 53, 56, 85, 73, 57, 65, 82, 72, 69, 58, 54, 53, 78, 69, 77, 79, 45, 82, 91, 74, 50, 59, 60, 95, 63, 34, 61, 64, 73, 62, 45, 87, 59, 61, 60, 67, 82, 54, 51, 61, 50, 81, 86, 65, 54, 77, 55, 82, 63, 81, 62, 44, 63, 80, 53, 84, 61, 28, 70, 64, 48, 65, 72, 62, 67, 75, 63, 51, 54, 112, 72, 60, 76, 72, 77, 86, 98, 70, 75, 53, 104, 59, 55, 92, 69, 58, 62, 87, 87, 64, 46, 44, 68, 57, 125, 50, 91, 56, 57, 100, 60, 65, 67, 69, 87, 73, 78, 72, 79, 79, 83, 64, 63, 48, 62, 51, 77, 83, 50, 50, 62, 71, 66, 54, 43, 120, 82, 52, 57, 76, 55, 54, 46, 58, 50, 64, 59, 64, 57, 80, 62, 67, 76, 79, 61, 65, 53, 50, 79, 62, 63, 66, 58, 60, 62, 42, 69, 54, 58, 96, 53, 73, 66, 53, 75, 81, 69, 74, 85, 59, 68, 72, 63, 79, 92, 87, 65, 52, 67, 66, 87, 97, 67, 50, 64, 74, 72, 97, 81, 70, 66, 114, 60, 56, 68, 68, 82, 60, 56, 56, 61, 61, 86, 96, 60, 64, 62, 58, 63, 71, 68, 64, 69, 51, 36, 62, 66, 73, 65, 64, 57, 61, 58, 99, 61, 55, 43, 59, 59, 55, 69, 104, 69, 91, 93, 50, 66, 62, 65, 53, 61, 60, 49, 67, 79, 30, 67, 73, 47, 57, 87, 53, 55, 47, 51, 79, 62, 48, 38, 64, 75, 53, 75, 66, 112, 68, 58, 55, 70, 60, 52, 83, 72, 76, 72, 69, 61, 53, 65, 80, 72, 115, 76, 62, 65, 65, 63, 53, 77, 62, 59, 63, 66, 62, 57, 54, 76, 63, 85, 71, 79, 58, 46, 74, 52, 53, 64, 59, 69, 61, 49, 60, 37, 58, 44, 68, 55, 71, 57, 55, 50, 71, 60, 54, 54, 67, 68, 60, 52, 69, 74, 34, 71, 55, 66, 69, 63, 68, 69, 59, 71, 51, 54, 64, 123, 62, 65, 59, 68, 69, 77, 51, 53, 75, 52, 77, 56, 65, 79, 65, 59, 89, 74, 58, 80, 71, 49, 89, 69, 89, 94, 83, 61, 70, 54, 61, 52, 74, 69, 82, 78, 74, 52, 59, 54, 65, 60, 129, 56, 61, 53, 62, 58, 65, 53, 65, 57, 66, 67, 124, 67, 48, 67, 47, 67, 72, 82, 69, 59, 58, 53, 56, 89, 53, 55, 66, 72, 66, 62, 65, 83, 77, 54, 65, 72, 65, 72, 46, 55, 53, 55, 62, 56, 83, 60, 69, 57, 37, 57, 51, 57, 63, 57, 54, 80, 60, 63, 63, 107, 68, 68, 81, 48, 61, 60, 57, 81, 86, 76, 51, 59, 65, 81, 55, 65, 55, 63, 60, 65, 73, 102, 147, 87, 58, 85, 53, 68, 67, 58, 70, 54, 52, 44, 67, 51, 73, 72, 59, 52, 74, 67, 70, 109, 60, 52, 53, 49, 83, 65, 129, 65, 56, 66, 59, 71, 41, 62, 92, 60, 67, 64, 78, 49, 80, 52, 60, 69, 55, 63, 63, 55, 55, 63, 85, 82, 70, 76, 54, 60, 53, 64, 70, 75, 64, 95, 50, 76, 42, 66, 70, 54, 58, 78, 89, 82, 34, 58, 102, 59, 67, 59, 61, 47, 60, 47, 81, 82, 50, 72, 74, 47, 53, 56, 51, 60, 81, 68, 54, 56, 66, 75, 50, 88, 63, 58, 81, 83, 60, 70, 71, 95, 51, 57, 86, 62, 69, 66, 49, 53, 75, 40, 55, 59, 67, 51, 57, 61, 56, 65, 69, 64, 48, 51, 67, 87, 54, 41, 58, 61, 51, 111, 66, 61, 47, 72, 65, 53, 75, 92, 58, 78, 60, 58, 65, 76, 59, 41, 74, 56, 56, 57, 65, 73, 68, 50, 67, 77, 51, 71, 51, 55, 54, 101, 64, 70, 92, 57, 66, 67, 56, 67, 50, 128, 54, 54, 80, 50, 78, 55, 71, 43, 50, 51, 55, 56, 37, 60, 101, 76, 59, 87, 57, 57, 62, 70, 77, 58, 81, 70, 58, 88, 76, 70, 76, 68, 81, 72, 67, 50, 67, 60, 67, 65, 59, 63, 72, 97, 69, 60, 75, 45, 52, 57, 51, 42, 91, 63, 48, 70, 51, 49, 92, 61, 55, 77, 66, 76, 70, 107, 49, 44, 62, 49, 60, 67, 64, 53, 62, 61, 65, 64, 73, 61, 72, 67, 61, 64, 56, 56, 77, 59, 53, 58, 55, 87, 58, 86, 78, 64, 86, 55, 97, 57, 102, 70, 50, 69, 60, 79, 39, 75, 62, 66, 41, 71, 68, 77, 50, 72, 81, 70, 74, 106, 67, 51, 60, 45, 53, 52, 97, 69, 55, 53, 54, 61, 78, 58, 61, 55, 81, 65, 68, 53, 58, 62, 73, 55, 73, 61, 63, 46, 70, 64, 47, 80, 85, 70, 82, 94, 70, 67, 56, 55, 80, 43, 51, 45, 51, 54, 81, 55, 51, 59, 60, 43, 54, 63, 75, 74, 51, 66, 58, 54, 59, 66, 46, 58, 74, 57, 66, 53, 83, 93, 72, 68, 49, 62, 61, 64, 64, 60, 64, 65, 51, 82, 68, 59, 91, 72, 62, 64, 79, 51, 80, 59, 58, 51, 61, 65, 73, 59, 58, 59, 57, 76, 74, 66, 80, 69, 79, 49, 78, 95, 56, 57, 64, 63, 66, 56, 76, 67, 44, 67, 54, 43, 64, 66, 54, 37, 80, 92, 72, 55, 45, 60, 86, 64, 73, 43, 56, 62, 94, 62, 56, 64, 57, 51, 65, 57, 79, 64, 34, 51, 65, 58, 71, 66, 56, 64, 52, 70, 52, 54, 91, 50, 47, 44, 60, 90, 49, 66, 81, 50, 58, 67, 47, 50, 73, 91, 57, 54, 71, 65, 67, 77, 68, 69, 35, 68, 57, 76, 67, 59, 75, 49, 50, 93, 63, 56, 72, 83, 100, 95, 59, 51, 54, 50, 65, 82, 93, 75, 69, 66, 77, 78, 49, 54, 74, 59, 89, 66, 69, 78, 66, 59, 49, 71, 59, 76, 56, 43, 70, 58, 59, 91, 80, 64, 73, 60, 63, 70, 81, 63, 85, 55, 49, 70, 67, 46, 83, 68, 89, 68, 60, 76, 49, 63, 71, 64, 68, 52, 88, 61, 68, 55, 93, 63, 73, 64, 73, 67, 66, 55, 53, 64, 66, 53, 63, 53, 83, 83, 56, 65, 56, 105, 64, 53, 51, 67, 71, 42, 58, 76, 42, 61, 56, 79, 70, 50, 60, 109, 71, 69, 60, 71, 68, 59, 66, 68, 82, 91, 51, 69, 103, 62, 59, 71, 115, 75, 60, 64, 66, 58, 88, 64, 75, 67, 68, 90, 66, 101, 68, 74, 82, 67, 79, 57, 86, 70, 68, 85, 53, 68, 66, 76, 68, 69, 64, 116, 45, 52, 101, 69, 77, 65, 52, 60, 53, 82, 64, 54, 79, 73, 63, 72, 62, 56, 72, 69, 51, 56, 48, 47, 69, 85, 62, 45, 61, 68, 72, 74, 64, 62, 58, 91, 51, 62, 58, 66, 59, 46, 59, 54, 50, 67, 70, 69, 59, 67, 65, 77, 63, 65, 63, 52, 41, 67, 68, 69, 58, 60, 64, 69, 90, 67, 62, 74, 33, 51, 69, 67, 82, 91, 53, 88, 78, 54, 52, 90, 55, 88, 83, 69, 62, 83, 112, 77, 77, 63, 66, 71, 70, 89, 71, 70, 50, 61, 74, 61, 76, 73, 56, 84, 75, 71, 54, 71, 99, 62, 67, 74, 61, 59, 70, 82, 74, 56, 59, 69, 74, 76, 58, 65, 61, 67, 57, 68, 34, 67, 93, 59, 58, 53, 62, 82, 64, 58, 70, 80, 69, 54, 86, 65, 62, 78, 46, 88, 66, 57, 70, 48, 70, 74, 79, 69, 50, 69, 49, 47, 74, 41, 78, 66, 62, 49, 62, 69, 51, 84, 69, 43, 86, 74, 90, 67, 90, 38, 73, 75, 62, 59, 56, 57, 69, 68, 102, 63, 53, 107, 62, 68, 73, 57, 50, 46, 60, 77, 61, 58, 51, 67, 49, 92, 61, 67, 66, 56, 59, 82, 61, 81, 60, 77, 72, 72, 61, 52, 30, 52, 80, 55, 99, 63, 50, 75, 61, 58, 47, 105, 49, 79, 58, 72, 58, 40, 64, 76, 65, 71, 51, 43, 67, 66, 55, 81, 63, 60, 71, 91, 87, 76, 56, 49, 76, 78, 83, 64, 68, 49, 75, 62, 51, 77, 65, 73, 53, 57, 55, 40, 61, 65, 97, 69, 64, 58, 76, 55, 66, 66, 67, 89, 73, 98, 64, 61, 117, 56, 60, 55, 61, 54, 129, 64, 62, 66, 71, 61, 81, 62, 64, 67, 67, 77, 58, 64, 71, 57, 47, 57, 60, 66, 87, 88, 72, 70, 52, 84, 70, 56, 57, 78, 53, 69, 56, 68, 78, 58, 61, 46, 57, 95, 117, 73, 53, 80, 66, 58, 56, 56, 73, 75, 65, 67, 56, 63, 63, 44, 76, 75, 86, 55, 60, 70, 55, 80, 72, 50, 62, 46, 62, 55, 60, 59, 63, 82, 61, 61, 70, 73, 47, 67, 75, 55, 64, 81, 110, 46, 49, 76, 67, 50, 77, 64, 91, 62, 67, 36, 65, 62, 85, 51, 83, 52, 56, 57, 63, 110, 62, 72, 70, 55, 74, 106, 85, 61, 56, 67, 46, 58, 62, 56, 88, 63, 70, 89, 62, 53, 81, 57, 67, 59, 66, 69, 55, 62, 78, 56, 74, 80, 71, 56, 52, 76, 79, 79, 87, 73, 68, 98, 64, 64, 66, 65, 45, 55, 63, 109, 67, 76, 118, 85, 67, 53, 55, 62, 58, 92, 68, 54, 112, 56, 65, 85, 76, 64, 67, 66, 82, 48, 66, 67, 83, 73, 89, 78, 63, 74, 55, 59, 53, 58, 67, 68, 80, 102, 47, 81, 93, 63, 61, 79, 51, 51, 72, 66, 65, 84, 52, 49, 56, 58, 58, 57, 83, 76, 81, 67, 64, 76, 50, 65, 58, 82, 79, 83, 79, 57, 80, 66, 47, 99, 80, 82, 69, 55, 60, 63, 79, 58, 77, 76, 62, 79, 71, 63, 69, 55, 61, 34, 54, 71, 59, 61, 58, 78, 48, 74, 74, 64, 65, 61, 69, 60, 48, 57, 71, 104, 72, 68, 59, 68, 67, 74, 93, 64, 64, 69, 69, 74, 54, 87, 66, 72, 77, 61, 61, 68, 69, 55, 55, 85, 66, 72, 48, 93, 62, 52, 71, 45, 59, 56, 56, 59, 42, 80, 75, 52, 84, 67, 79, 90, 66, 73, 61, 50, 54, 45, 59, 81, 82, 73, 54, 61, 74, 65, 78, 61, 84, 71, 58, 79, 64, 118, 59, 41, 56, 80, 56, 75, 51, 53, 57, 68, 53, 57, 67, 76, 82, 57, 56, 60, 82, 67, 79, 87, 54, 63, 68, 64, 77, 72, 80, 61, 80, 65, 85, 60, 79, 67, 80, 53, 63, 81, 61, 69, 63, 70, 75, 71, 61, 61, 60, 53, 46, 56, 55, 81, 48, 75, 56, 71, 59, 61, 70, 52, 60, 54, 84, 55, 76, 78, 59, 58, 58, 63, 84, 81, 57, 38, 65, 47, 75, 69, 77, 62, 72, 73, 86, 50, 75, 53, 58, 39, 78, 60, 68, 66, 65, 67, 65, 49, 68, 87, 48, 56, 66, 45, 58, 57, 63, 62, 50, 59, 71, 104, 85, 52, 75, 63, 66, 71, 89, 52, 84, 90, 82, 86, 66, 44, 63, 70, 87, 58, 66, 55, 65, 84, 67, 63, 48, 59, 94, 49, 69, 84, 45, 59, 74, 52, 48, 77, 68, 64, 57, 75, 106, 65, 64, 69, 60, 67, 59, 52, 71, 50, 80, 83, 60, 51, 44, 90, 63, 64, 66, 81, 54, 71, 51, 65, 29, 44, 60, 58, 79, 86, 59, 66, 66, 39, 71, 39, 51, 63, 86, 76, 59, 82, 73, 61, 67, 77, 73, 64, 66, 63, 45, 66, 64, 53, 61, 67, 54, 66, 60, 56, 49, 51, 99, 81, 84, 56, 63, 63, 55, 73, 90, 62, 69, 73, 56, 65, 59, 77, 83, 52, 55, 64, 59, 97, 48, 68, 44, 95, 38, 52, 49, 70, 77, 66, 59, 70, 77, 60, 67, 72, 78, 43, 53, 66, 80, 54, 62, 68, 75, 67, 100, 65, 83, 66, 58, 62, 59, 63, 49, 92, 57, 48, 86, 61, 61, 59, 56, 60, 53, 63, 57, 40, 71, 97, 64, 53, 76, 56, 52, 97, 80, 57, 73, 51, 33, 47, 59, 52, 50, 67, 65, 66, 56, 60, 68, 84, 56, 54, 52, 78, 84, 90, 82, 62, 83, 83, 51, 59, 68, 62, 54, 45, 55, 62, 70, 64, 77, 58, 74, 51, 78, 74, 59, 100, 49, 72, 62, 83, 72, 68, 71, 70, 47, 59, 56, 72, 56, 84, 69, 115, 76, 77, 70, 70, 79, 70, 60, 69, 52, 54, 71, 49, 87, 55, 68, 32, 55, 57, 55, 70, 73, 52, 112, 59, 54, 79, 76, 79, 70, 103, 60, 95, 57, 72, 50, 66, 82, 59, 63, 76, 58, 53, 53, 53, 53, 86, 86, 103, 47, 55, 70, 50, 59, 66, 62, 54, 56, 88, 84, 55, 50, 74, 47, 65, 76, 56, 65, 57, 81, 55, 83, 51, 53, 56, 59, 60, 37, 68, 54, 61, 86, 62, 64, 75, 69, 73, 86, 55, 50, 58, 54, 76, 71, 81, 69, 80, 44, 53, 53, 66, 50, 80, 51, 80, 82, 54, 55, 80, 60, 54, 69, 73, 79, 79, 58, 56, 57, 78, 72, 86, 70, 79, 89, 76, 54, 61, 68, 63, 79, 68, 51, 61, 64, 60, 105, 56, 74, 65, 64, 43, 67, 76, 55, 84, 65, 65, 87, 46, 65, 55, 66, 80, 82, 73, 46, 59, 116, 66, 41, 60, 55, 56, 53, 62, 79, 40, 71, 78, 74, 35, 61, 57, 74, 53, 69, 55, 67, 46, 58, 71, 53, 57, 64, 54, 81, 69, 50, 94, 63, 78, 69, 55, 54, 75, 67, 41, 54, 62, 133, 85, 57, 94, 56, 61, 59, 68, 69, 60, 76, 75, 69, 69, 54, 74, 76, 39, 59, 70, 70, 63, 67, 102, 66, 72, 137, 65, 62, 67, 59, 54, 69, 44, 56, 64, 96, 74, 71, 71, 63, 66, 62, 55, 55, 70, 77, 64, 59, 71, 65, 60, 65, 75, 88, 73, 92, 61, 83, 66, 68, 99, 62, 60, 65, 61, 58, 67, 84, 64, 54, 63, 70, 77, 69, 77, 87, 70, 62, 50, 61, 62, 65, 90, 67, 66, 57, 69, 71, 69, 51, 61, 56, 79, 68, 69, 75, 97, 87, 122, 64, 67, 75, 79, 63, 58, 51, 52, 49, 50, 51, 49, 63, 63, 59, 63, 62, 75, 67, 115, 83, 71, 87, 64, 70, 56, 103, 69, 83, 58, 105, 56, 56, 59, 76, 54, 73, 78, 71, 45, 73, 71, 96, 56, 61, 73, 65, 60, 71, 65, 85, 66, 67, 50, 48, 70, 59, 55, 68, 52, 67, 74, 61, 65, 51, 68, 52, 83, 61, 53, 49, 92, 48, 56, 59, 42, 68, 61, 61, 73, 37, 99, 73, 57, 58, 48, 69, 63, 100, 72, 66, 70, 56, 61, 54, 80, 63, 56, 67, 77, 74, 77, 71, 59, 57, 79, 65, 66, 78, 68, 49, 70, 67, 69, 57, 111, 44, 65, 50, 86, 51, 53, 54, 73, 64, 79, 92, 58, 79, 67, 61, 68, 120, 48, 64, 49, 71, 60, 85, 76, 55, 56, 54, 70, 89, 88, 52, 83, 80, 50, 54, 55, 91, 71, 61, 73, 61, 41, 73, 66, 66, 47, 79, 66, 65, 71, 63, 57, 103, 61, 70, 92, 69, 56, 47, 55, 75, 57, 43, 53, 58, 54, 59, 80, 49, 63, 76, 81, 81, 67, 57, 49, 56, 47, 81, 47, 69, 75, 65, 68, 93, 53, 72, 53, 56, 73, 72, 52, 54, 77, 118, 59, 80, 68, 56, 56, 59, 78, 90, 48, 71, 54, 52, 52, 100, 55, 75, 71, 63, 55, 58, 55, 91, 61, 75, 65, 60, 64, 74, 75, 77, 97, 102, 60, 58, 39, 58, 62, 72, 50, 54, 58, 47, 59, 63, 60, 67, 58, 48, 83, 55, 95, 65, 51, 79, 79, 93, 53, 73, 62, 61, 56, 52, 109, 75, 79, 50, 55, 71, 60, 56, 50, 68, 79, 84, 63, 83, 57, 54, 105, 53, 89, 65, 57, 54, 68, 58, 82, 49, 55, 86, 92, 59, 59, 69, 49, 75, 86, 55, 77, 43, 49, 56, 75, 76, 42, 65, 67, 58, 64, 81, 70, 62, 69, 64, 61, 63, 52, 83, 57, 62, 75, 58, 43, 65, 77, 59, 56, 76, 60, 55, 56, 49, 56, 73, 63, 55, 61, 69, 89, 64, 82, 56, 64, 64, 45, 66, 71, 50, 80, 102, 67, 57, 49, 47, 73, 114, 78, 87, 48, 67, 56, 81, 86, 49, 72, 73, 59, 53, 76, 65, 52, 60, 61, 72, 74, 66, 52, 60, 69, 51, 66, 56, 62, 66, 46, 61, 69, 63, 79, 58, 87, 64, 53, 34, 90, 66, 53, 103, 47, 68, 71, 44, 62, 40, 64, 94, 69, 72, 58, 90, 73, 91, 55, 60, 59, 66, 78, 67, 63, 56, 66, 39, 59, 61, 66, 65, 48, 89, 82, 93, 51, 69, 73, 58, 52, 51, 65, 81, 55, 100, 57, 74, 75, 137, 93, 66, 73, 66, 73, 61, 58, 67, 62, 46, 39, 41, 75, 79, 62, 81, 72, 93, 52, 48, 70, 55, 54, 78, 52, 54, 65, 77, 56, 61, 62, 63, 70, 64, 51, 58, 62, 95, 55, 47, 69, 95, 58, 65, 70, 51, 61, 46, 67, 40, 83, 69, 55, 72, 84, 64, 72, 51, 52, 59, 48, 69, 69, 49, 58, 81, 68, 53, 46, 68, 67, 91, 49, 63, 59, 59, 38, 60, 63, 48, 60, 49, 82, 63, 79, 76, 69, 58, 65, 64, 73, 52, 44, 73, 74, 116, 74, 45, 75, 91, 106, 79, 80, 75, 63, 83, 89, 105, 88, 64, 63, 75, 88, 74, 68, 53, 71, 54, 64, 119, 64, 65, 45, 75, 85, 55, 46, 76, 70, 55, 47, 65, 66, 94, 75, 52, 80, 53, 74, 75, 58, 108, 80, 81, 74, 56, 47, 64, 86, 59, 63, 65, 55, 84, 41, 61, 69, 48, 60, 45, 63, 68, 52, 91, 96, 65, 82, 53, 57, 57, 85, 103, 59, 50, 59, 49, 82, 65, 58, 70, 74, 72, 57, 32, 42, 71, 61, 75, 62, 58, 72, 65, 49, 72, 58, 58, 53, 45, 52, 90, 79, 53, 75, 64, 98, 63, 73, 61, 67, 60, 69, 68, 54, 57, 56, 41, 58, 60, 58, 58, 61, 63, 74, 50, 80, 77, 83, 70, 56, 52, 59, 85, 75, 66, 44, 61, 75, 68, 87, 77, 73, 101, 59, 78, 61, 43, 68, 72, 71, 69, 59, 68, 59, 51, 67, 75, 83, 56, 63, 67, 69, 62, 59, 83, 69, 85, 88, 46, 47, 70, 60, 71, 106, 60, 51, 73, 47, 63, 60, 75, 68, 63, 70, 78, 57, 56, 66, 69, 73, 43, 54, 55, 73, 56, 53, 85, 72, 82, 65, 68, 52, 66, 56, 67, 66, 50, 53, 65, 59, 57, 56, 60, 82, 59, 87, 60, 57, 70, 56, 81, 62, 67, 40, 59, 61, 49, 48, 74, 83, 68, 60, 60, 62, 59, 46, 64, 63, 67, 59, 69, 54, 74, 75, 95, 64, 69, 70, 62, 64, 64, 99, 57, 65, 60, 83, 101, 55, 61, 94, 49, 79, 69, 56, 70, 78, 46, 61, 86, 72, 67, 81, 70, 74, 72, 51, 63, 68, 45, 48, 78, 90, 67, 44, 75, 72, 62, 63, 66, 81, 59, 129, 72, 58, 57, 97, 62, 79, 49, 75, 55, 61, 68, 67, 69, 77, 79, 47, 65, 73, 61, 79, 72, 76, 73, 80, 58, 67, 78, 79, 61, 68, 75, 68, 64, 64, 149, 62, 67, 69, 55, 60, 69, 56, 65, 72, 61, 75, 63, 59, 62, 58, 67, 72, 69, 75, 62, 80, 49, 59, 69, 53, 69, 41, 37, 66, 77, 55, 63, 62, 73, 63, 63, 58, 76, 61, 130, 70, 75, 71, 63, 71, 72, 55, 59, 59, 60, 69, 49, 62, 46, 70, 70, 44, 63, 48, 92, 48, 49, 71, 42, 105, 67, 75, 66, 77, 67, 82, 75, 70, 77, 72, 50, 84, 63, 63, 58, 82, 70, 76, 57, 60, 60, 52, 60, 69, 56, 64, 60, 75, 98, 78, 58, 53, 62, 70, 68, 75, 74, 59, 83, 78, 57, 59, 68, 49, 62, 37, 60, 65, 64, 65, 104, 60, 61, 67, 65, 81, 47, 76, 58, 61, 79, 75, 67, 75, 61, 79, 55, 65, 49, 58, 65, 74, 88, 60, 70, 66, 60, 74, 56, 76, 63, 67, 61, 45, 70, 82, 57, 90, 53, 67, 74, 53, 62, 79, 56, 74, 46, 58, 81, 69, 62, 58, 69, 58, 62, 61, 62, 70, 73, 52, 64, 77, 75, 65, 70, 64, 78, 56, 63, 47, 53, 77, 78, 76, 67, 67, 59, 51, 46, 65, 66, 83, 60, 76, 72, 50, 61, 102, 64, 102, 61, 80, 49, 71, 92, 97, 53, 68, 68, 72, 67, 57, 65, 65, 60, 95, 63, 61, 70, 67, 64, 64, 46, 61, 58, 89, 62, 79, 68, 51, 55, 63, 96, 64, 78, 80, 75, 52, 77, 72, 64, 64, 74, 50, 62, 70, 69, 52, 55, 52, 77, 49, 56, 54, 61, 75, 68, 64, 80, 64, 67, 76, 63, 54, 54, 61, 51, 62, 67, 70, 96, 66, 52, 68, 59, 97, 63, 61, 48, 60, 57, 45, 62, 65, 53, 63, 79, 75, 56, 62, 36, 50, 63, 58, 47, 54, 62, 68, 71, 53, 80, 67, 81, 60, 51, 78, 54, 82, 62, 54, 78, 60, 72, 43, 55, 56, 98, 75, 59, 72, 99, 82, 69, 61, 69, 63, 51, 65, 68, 71, 73, 65, 72, 57, 63, 53, 86, 66, 69, 48, 83, 82, 60, 55, 61, 55, 74, 66, 71, 68, 43, 67, 58, 74, 74, 68, 57, 57, 66, 44, 46, 75, 51, 61, 62, 75, 52, 69, 76, 56, 80, 44, 78, 69, 73, 93, 55, 77, 57, 71, 65, 93, 49, 94, 69, 87, 63, 68, 63, 65, 66, 67, 67, 93, 71, 55, 85, 90, 76, 62, 71, 65, 68, 58, 55, 57, 56, 72, 70, 84, 71, 44, 64, 64, 62, 68, 72, 71, 72, 103, 58, 57, 68, 60, 58, 59, 73, 65, 42, 41, 78, 59, 65, 59, 59, 69, 67, 73, 63, 72, 69, 58, 66, 71, 78, 47, 51, 55, 75, 58, 59, 55, 57, 40, 63, 63, 58, 63, 75, 62, 50, 38, 80, 77, 62, 68, 41, 73, 70, 60, 36, 92, 72, 65, 67, 53, 54, 64, 39, 58, 70, 65, 57, 81, 81, 56, 70, 63, 48, 58, 47, 75, 57, 55, 74, 56, 56, 50, 58, 53, 59, 96, 102, 59, 53, 66, 64, 66, 107, 51, 52, 87, 72, 79, 91, 87, 60, 65, 86, 85, 50, 67, 67, 73, 63, 60, 84, 55, 50, 44, 77, 74, 58, 55, 74, 77, 49, 65, 87, 69, 84, 57, 59, 71, 56, 48, 74, 56, 78, 81, 64, 60, 52, 81, 87, 69, 125, 62, 57, 60, 60, 79, 59, 75, 53, 59, 79, 76, 70, 63, 60, 69, 123, 57, 55, 86, 77, 78, 75, 74, 73, 66, 57, 63, 58, 74, 66, 51, 72, 74, 53, 53, 56, 74, 56, 67, 61, 62, 71, 58, 64, 60, 77, 62, 68, 69, 56, 55, 71, 63, 61, 72, 54, 55, 62, 53, 70, 57, 84, 57, 62, 56, 61, 66, 84, 72, 55, 54, 85, 66, 53, 52, 65, 84, 67, 56, 88, 85, 68, 56, 61, 53, 62, 68, 59, 68, 66, 53, 69, 83, 55, 64, 60, 55, 63, 83, 53, 68, 79, 95, 65, 87, 58, 74, 60, 74, 55, 53, 90, 64, 62, 64, 62, 69, 68, 57, 73, 75, 62, 82, 67, 54, 52, 81, 51, 71, 88, 64, 77, 61, 67, 67, 54, 63, 71, 68, 59, 56, 52, 67, 65, 61, 53, 58, 75, 64, 85, 60, 73, 73, 56, 52, 90, 65, 66, 53, 70, 69, 55, 70, 53, 57, 90, 72, 71, 50, 59, 62, 60, 71, 60, 70, 88, 74, 60, 70, 62, 77, 78, 55, 48, 70, 57, 49, 62, 61, 69, 71, 44, 79, 76, 61, 40, 65, 67, 67, 66, 64, 50, 65, 63, 59, 64, 57, 64, 71, 62, 65, 91, 68, 51, 65, 69, 60, 59, 55, 62, 60, 57, 102, 67, 61, 60, 55, 68, 65, 40, 60, 59, 69, 57, 60, 67, 79, 84, 60, 56, 57, 57, 60, 46, 98, 73, 64, 59, 83, 68, 75, 81, 66, 78, 59, 66, 79, 72, 60, 66, 71, 40, 65, 56, 67, 54, 73, 80, 70, 71, 65, 84, 54, 74, 63, 65, 72, 63, 68, 66, 53, 43, 63, 57, 60, 67, 65, 66, 40, 68, 72, 60, 64, 57, 64, 58, 69, 53, 76, 51, 57, 56, 60, 46, 85, 67, 55, 54, 61, 66, 55, 86, 68, 55, 73, 77, 66, 71, 88, 68, 64, 46, 54, 58, 46, 60, 49, 72, 69, 85, 41, 76, 60, 78, 74, 64, 78, 55, 78, 71, 58, 67, 49, 55, 45, 40, 47, 60, 57, 84, 57, 57, 77, 52, 57, 49, 59, 98, 96, 64, 65, 89, 85, 52, 60, 47, 67, 47, 115, 73, 110, 98, 88, 68, 62, 68, 55, 62, 65, 50, 63, 63, 93, 74, 57, 60, 53, 61, 46, 62, 68, 94, 54, 97, 53, 101, 54, 66, 78, 59, 49, 61, 78, 62, 61, 63, 61, 83, 62, 52, 72, 62, 96, 41, 60, 55, 66, 50, 70, 72, 112, 74, 67, 49, 73, 50, 52, 63, 85, 68, 102, 70, 63, 70, 70, 61, 59, 59, 49, 48, 60, 54, 36, 56, 81, 87, 63, 45, 56, 80, 88, 47, 87, 69, 59, 65, 55, 48, 41, 62, 50, 50, 43, 57, 74, 73, 74, 58, 67, 65, 64, 67, 71, 61, 72, 49, 65, 67, 80, 61, 83, 57, 55, 87, 61, 75, 55, 56, 51, 87, 92, 59, 66, 46, 58, 85, 71, 71, 66, 79, 71, 86, 58, 74, 44, 71, 67, 53, 61, 74, 76, 65, 67, 66, 76, 57, 66, 74, 37, 52, 50, 58, 87, 54, 71, 95, 45, 68, 89, 53, 86, 63, 54, 52, 89, 51, 63, 55, 63, 66, 55, 58, 77, 68, 50, 66, 68, 73, 83, 63, 63, 65, 106, 78, 57, 71, 67, 49, 76, 76, 56, 45, 75, 81, 63, 66, 58, 93, 106, 30, 64, 56, 67, 60, 77, 68, 70, 100, 151, 79, 66, 72, 67, 67, 90, 47, 74, 76, 68, 42, 54, 46, 61, 64, 94, 76, 59, 56, 71, 71, 61, 64, 68, 80, 121, 58, 54, 73, 46, 54, 74, 56, 60, 56, 56, 64, 50, 45, 72, 47, 50, 64, 78, 47, 59, 63, 49, 58, 82, 53, 47, 61, 96, 51, 52, 65, 51, 62, 94, 67, 65, 63, 62, 68, 87, 69, 87, 74, 71, 69, 97, 78, 60, 60, 70, 67, 54, 60, 68, 42, 76, 77, 64, 60, 68, 42, 84, 70, 57, 80, 67, 65, 88, 52, 55, 72, 60, 47, 104, 98, 50, 86, 53, 83, 77, 46, 160, 55, 44, 73, 72, 58, 89, 69, 62, 92, 54, 54, 77, 72, 88, 64, 66, 70, 69, 61, 81, 64, 59, 73, 44, 83, 74, 68, 68, 65, 58, 53, 71, 53, 86, 59, 59, 94, 54, 82, 57, 54, 46, 63, 58, 51, 68, 43, 73, 72, 60, 71, 66, 61, 57, 52, 57, 45, 69, 28, 56, 58, 61, 60, 65, 99, 68, 46, 68, 59, 73, 62, 45, 82, 64, 94, 44, 64, 90, 59, 98, 61, 63, 83, 98, 79, 60, 57, 53, 57, 83, 84, 65, 65, 53, 60, 53, 48, 65, 59, 76, 46, 52, 41, 100, 61, 116, 81, 56, 71, 45, 58, 54, 81, 61, 56, 57, 43, 81, 70, 93, 38, 70, 57, 83, 70, 69, 58, 77, 72, 61, 84, 79, 65, 61, 66, 65, 66, 66, 62, 54, 83, 81, 79, 73, 58, 59, 72, 56, 61, 65, 65, 52, 39, 76, 58, 51, 92, 56, 61, 53, 59, 62, 49, 52, 58, 62, 40, 58, 65, 50, 85, 63, 83, 55, 56, 51, 61, 54, 94, 76, 86, 63, 116, 44, 65, 79, 51, 61, 72, 74, 69, 60, 65, 71, 76, 52, 146, 49, 42, 79, 75, 85, 84, 80, 61, 70, 63, 66, 58, 76, 57, 74, 54, 44, 69, 75, 66, 58, 51, 53, 57, 55, 48, 97, 57, 90, 69, 63, 38, 71, 64, 52, 108, 78, 73, 59, 56, 46, 48, 66, 70, 62, 74, 60, 61, 56, 65, 48, 83, 55, 55, 63, 109, 47, 68, 50, 41, 82, 74, 54, 77, 71, 78, 56, 76, 61, 58, 43, 63, 71, 76, 63, 56, 60, 76, 90, 82, 53, 53, 55, 78, 67, 60, 62, 61, 82, 55, 62, 72, 55, 66, 61, 63, 60, 41, 99, 89, 64, 82, 47, 48, 47, 53, 69, 75, 80, 79, 54, 59, 74, 73, 52, 47, 63, 68, 67, 60, 74, 67, 86, 45, 101, 71, 62, 73, 75, 83, 79, 79, 66, 62, 64, 66, 97, 66, 75, 56, 54, 92, 64, 65, 77, 65, 55, 71, 56, 68, 99, 74, 58, 78, 71, 47, 76, 55, 63, 68, 49, 62, 73, 54, 63, 51, 59, 62, 53, 72, 47, 62, 77, 86, 52, 71, 40, 57, 55, 122, 44, 66, 66, 68, 44, 69, 69, 84, 74, 70, 81, 85, 54, 76, 50, 79, 70, 76, 48, 70, 64, 65, 60, 57, 61, 70, 49, 82, 67, 64, 58, 56, 35, 60, 48, 69, 71, 103, 63, 74, 60, 70, 104, 78, 68, 101, 67, 54, 62, 57, 76, 80, 60, 94, 51, 59, 130, 56, 54, 71, 89, 61, 52, 63, 50, 71, 65, 76, 60, 60, 70, 80, 51, 78, 54, 62, 94, 70, 87, 68, 37, 67, 45, 56, 53, 76, 66, 64, 74, 48, 51, 61, 73, 74, 58, 70, 86, 57, 60, 44, 66, 57, 71, 84, 64, 52, 79, 64, 59, 59, 58, 49, 72, 96, 57, 103, 57, 61, 54, 58, 57, 50, 70, 77, 64, 56, 56, 51, 61, 77, 66, 60, 47, 53, 73, 72, 63, 40, 77, 58, 45, 66, 67, 72, 45, 86, 107, 74, 85, 69, 42, 81, 54, 62, 45, 94, 59, 82, 65, 62, 54, 62, 75, 68, 67, 55, 64, 71, 71, 66, 59, 53, 62, 56, 41, 61, 73, 62, 63, 103, 45, 55, 79, 50, 72, 70, 83, 67, 75, 67, 81, 50, 59, 39, 95, 66, 65, 56, 86, 54, 61, 40, 49, 84, 90, 58, 63, 80, 56, 48, 76, 48, 61, 63, 54, 58, 74, 64, 59, 79, 138, 62, 72, 75, 69, 51, 50, 74, 41, 64, 64, 55, 47, 63, 55, 63, 68, 71, 154, 58, 92, 54, 56, 59, 56, 90, 75, 61, 71, 63, 50, 64, 67, 72, 67, 89, 78, 76, 68, 48, 68, 57, 60, 74, 58, 76, 52, 79, 51, 53, 67, 79, 59, 59, 59, 49, 82, 49, 54, 81, 64, 60, 115, 53, 60, 77, 69, 64, 58, 72, 63, 71, 64, 93, 68, 60, 65, 63, 62, 81, 81, 91, 62, 57, 56, 58, 63, 55, 73, 61, 63, 61, 53, 46, 70, 57, 32, 68, 84, 68, 64, 53, 49, 62, 53, 67, 78, 64, 53, 62, 67, 66, 72, 61, 58, 53, 57, 58, 55, 95, 79, 65, 47, 57, 57, 66, 125, 63, 77, 64, 65, 69, 68, 84, 72, 60, 93, 63, 50, 104, 76, 91, 84, 61, 62, 73, 83, 66, 59, 59, 80, 63, 56, 64, 63, 59, 126, 85, 59, 71, 71, 58, 61, 95, 87, 51, 76, 68, 64, 68, 79, 60, 69, 80, 67, 62, 63, 50, 66, 86, 78, 74, 62, 59, 41, 75, 72, 54, 47, 83, 72, 55, 66, 60, 82, 58, 43, 58, 53, 67, 68, 122, 61, 70, 82, 46, 57, 85, 68, 59, 69, 76, 73, 63, 91, 56, 70, 86, 75, 61, 58, 41, 44, 49, 69, 58, 58, 61, 75, 69, 55, 55, 60, 68, 68, 62, 61, 63, 48, 69, 78, 111, 55, 78, 74, 72, 81, 94, 66, 36, 60, 64, 69, 93, 53, 59, 88, 62, 65, 69, 68, 59, 66, 76, 76, 57, 64, 56, 76, 65, 59, 73, 88, 77, 62, 56, 79, 69, 55, 75, 75, 54, 73, 56, 65, 47, 57, 57, 66, 46, 44, 42, 65, 77, 60, 71, 76, 52, 61, 57, 62, 69, 57, 54, 46, 44, 62, 76, 68, 44, 60, 64, 53, 62, 53, 73, 41, 61, 68, 65, 66, 69, 117, 78, 65, 52, 56, 71, 76, 46, 65, 82, 80, 47, 64, 59, 54, 52, 73, 64, 65, 47, 59, 60, 57, 71, 70, 58, 49, 70, 55, 63, 53, 58, 59, 63, 47, 73, 51, 97, 55, 90, 80, 72, 92, 65, 54, 58, 59, 75, 57, 52, 51, 68, 61, 67, 65, 53, 55, 64, 67, 84, 68, 76, 73, 55, 53, 69, 50, 74, 68, 50, 58, 69, 79, 71, 49, 57, 67, 77, 73, 56, 70, 72, 113, 67, 78, 54, 57, 48, 88, 73, 58, 62, 74, 71, 62, 63, 51, 55, 55, 69, 101, 72, 68, 71, 57, 64, 75, 67, 77, 68, 58, 86, 68, 62, 70, 68, 75, 85, 67, 67, 86, 89, 71, 78, 68, 64, 61, 73, 50, 80, 41, 62, 57, 67, 64, 57, 63, 53, 75, 70, 56, 97, 61, 67, 52, 73, 70, 56, 62, 101, 61, 51, 53, 63, 74, 67, 62, 64, 59, 56, 67, 65, 51, 71, 75, 67, 58, 58, 76, 48, 68, 49, 62, 62, 60, 73, 72, 59, 84, 65, 61, 52, 57, 57, 66, 53, 74, 95, 62, 76, 63, 49, 96, 73, 62, 60, 66, 63, 65, 54, 37, 77, 51, 47, 63, 93, 54, 60, 49, 73, 57, 67, 57, 54, 46, 62, 55, 60, 55, 49, 71, 59, 51, 59, 80, 58, 31, 64, 67, 58, 70, 72, 54, 61, 53, 72, 51, 57, 66, 57, 62, 55, 70, 57, 61, 68, 81, 47, 92, 50, 71, 99, 83, 61, 56, 55, 46, 50, 54, 71, 72, 71, 62, 46, 88, 57, 47, 70, 46, 71, 54, 65, 86, 77, 61, 66, 57, 66, 78, 68, 54, 90, 69, 67, 71, 65, 58, 45, 63, 63, 45, 59, 67, 59, 60, 54, 83, 66, 69, 53, 62, 72, 47, 90, 96, 55, 61, 65, 67, 68, 69, 69, 47, 49, 86, 59, 65, 53, 45, 65, 59, 55, 68, 50, 59, 70, 55, 53, 53, 71, 63, 42, 63, 90, 71, 68, 77, 78, 48, 52, 89, 57, 76, 70, 55, 63, 69, 55, 48, 64, 95, 83, 71, 49, 55, 110, 75, 61, 64, 70, 70, 57, 61, 68, 59, 50, 62, 63, 38, 78, 52, 61, 57, 68, 70, 62, 62, 55, 71, 92, 67, 81, 57, 53, 65, 50, 63, 68, 73, 52, 79, 64, 43, 105, 61, 79, 59, 69, 59, 71, 62, 59, 56, 79, 59, 50, 94, 40, 70, 68, 44, 61, 75, 62, 115, 51, 78, 49, 61, 108, 91, 97, 63, 60, 83, 64, 79, 61, 55, 51, 60, 64, 64, 74, 46, 62, 77, 53, 60, 70, 62, 52, 69, 60, 71, 65, 65, 66, 55, 71, 71, 91, 81, 58, 62, 67, 75, 74, 69, 68, 81, 63, 72, 64, 72, 77, 67, 57, 56, 52, 79, 66, 49, 66, 82, 93, 85, 46, 61, 56, 60, 58, 47, 60, 71, 43, 72, 79, 69, 71, 63, 62, 65, 82, 71, 75, 50, 66, 101, 69, 50, 79, 66, 70, 78, 53, 50, 50, 77, 53, 52, 44, 68, 50, 73, 85, 74, 47, 80, 66, 51, 69, 54, 62, 66, 74, 64, 99, 64, 78, 70, 74, 60, 58, 59, 71, 61, 61, 59, 58, 72, 51, 66, 68, 77, 71, 79, 60, 63, 53, 61, 55, 75, 106, 63, 56, 85, 66, 76, 61, 61, 65, 60, 55, 59, 75, 74, 58, 71, 57, 69, 77, 71, 54, 56, 57, 83, 58, 54, 65, 56, 67, 59, 63, 61, 66, 72, 98, 50, 63, 70, 54, 65, 91, 62, 72, 57, 55, 50, 88, 79, 67, 79, 49, 56, 53, 69, 119, 66, 50, 68, 55, 59, 95, 71, 48, 57, 49, 74, 60, 62, 76, 107, 44, 59, 56, 92, 52, 62, 51, 56, 52, 58, 77, 78, 83, 51, 95, 64, 73, 60, 60, 69, 62, 66, 70, 59, 60, 51, 56, 49, 42, 61, 59, 73, 65, 65, 77, 54, 56, 70, 59, 57, 58, 78, 69, 68, 48, 58, 73, 65, 63, 69, 79, 66, 48, 60, 56, 43, 60, 56, 56, 58, 61, 58, 70, 66, 59, 46, 69, 74, 74, 45, 71, 56, 82, 60, 58, 68, 61, 58, 68, 62, 85, 64, 53, 69, 48, 58, 76, 60, 80, 67, 69, 58, 63, 63, 79, 52, 59, 91, 66, 54, 55, 78, 68, 87, 53, 72, 48, 52, 82, 61, 61, 57, 77, 75, 63, 54, 69, 61, 70, 36, 68, 79, 53, 55, 65, 65, 69, 69, 69, 61, 60, 58, 77, 74, 85, 103, 92, 69, 66, 67, 70, 65, 56, 70, 61, 64, 57, 77, 51, 59, 53, 72, 62, 74, 63, 52, 50, 59, 51, 58, 57, 59, 62, 73, 58, 71, 59, 77, 72, 68, 56, 60, 62, 63, 65, 56, 64, 64, 60, 62, 53, 47, 84, 56, 68, 77, 57, 73, 82, 57, 62, 74, 67, 63, 61, 62, 74, 81, 59, 56, 65, 65, 82, 65, 90, 56, 72, 79, 59, 73, 56, 64, 68, 74, 60, 49, 59, 48, 52, 46, 73, 49, 67, 61, 59, 46, 58, 47, 61, 74, 56, 57, 84, 62, 61, 68, 66, 78, 45, 89, 97, 80, 51, 82, 66, 62, 59, 74, 69, 98, 72, 54, 62, 69, 64, 48, 68, 67, 71, 67, 69, 141, 71, 71, 57, 78, 70, 55, 76, 71, 59, 55, 69, 56, 65, 50, 52, 80, 44, 79, 96, 64, 58, 53, 72, 66, 64, 59, 73, 73, 63, 57, 59, 74, 79, 69, 61, 60, 61, 76, 85, 74, 58, 72, 70, 91, 70, 66, 70, 70, 90, 63, 50, 55, 65, 54, 53, 60, 51, 68, 83, 82, 64, 75, 61, 69, 59, 53, 55, 61, 53, 66, 58, 84, 75, 65, 61, 62, 48, 73, 50, 69, 57, 74, 66, 56, 72, 63, 79, 54, 54, 62, 67, 62, 55, 69, 56, 48, 83, 61, 56, 64, 59, 71, 54, 67, 62, 61, 53, 54, 58, 74, 58, 66, 69, 68, 59, 73, 59, 73, 53, 67, 75, 40, 51, 66, 62, 64, 69, 64, 63, 53, 42, 86, 62, 72, 70, 129, 90, 71, 48, 69, 79, 57, 61, 54, 81, 99, 57, 58, 80, 57, 60, 55, 83, 59, 58, 88, 45, 66, 60, 96, 58, 59, 58, 72, 67, 62, 57, 60, 53, 76, 62, 94, 65, 58, 71, 66, 60, 61, 57, 59, 60, 68, 76, 75, 46, 62, 65, 70, 52, 87, 73, 76, 52, 71, 68, 51, 71, 64, 61, 42, 57, 56, 60, 93, 54, 48, 58, 74, 67, 52, 64, 62, 59, 59, 50, 47, 60, 84, 84, 68, 65, 60, 54, 79, 56, 65, 53, 93, 73, 57, 81, 73, 70, 39, 84, 67, 59, 54, 80, 64, 48, 64, 69, 65, 70, 61, 66, 79, 76, 49, 72, 73, 62, 88, 63, 79, 64, 57, 57, 59, 86, 65, 63, 63, 71, 96, 53, 64, 69, 40, 67, 58, 66, 76, 68, 70, 65, 45, 80, 79, 77, 69, 72, 62, 64, 52, 63, 73, 65, 68, 85, 54, 81, 66, 49, 70, 75, 58, 52, 60, 69, 48, 47, 48, 81, 60, 58, 58, 64, 57, 57, 73, 53, 87, 81, 63, 58, 66, 77, 67, 54, 57, 71, 70, 74, 57, 63, 58, 68, 83, 71, 118, 74, 77, 54, 101, 74, 71, 75, 69, 66, 66, 67, 66, 84, 39, 63, 63, 71, 68, 68, 65, 63, 45, 58, 61, 47, 63, 78, 83, 57, 88, 54, 56, 67, 64, 58, 57, 72, 55, 82, 83, 69, 43, 67, 72, 64, 72, 70, 59, 58, 66, 80, 57, 70, 72, 47, 85, 79, 59, 75, 56, 63, 59, 74, 76, 71, 73, 69, 70, 80, 57, 58, 83, 67, 79, 68, 52, 78, 59, 97, 54, 61, 63, 60, 98, 72, 85, 58, 72, 62, 61, 88, 62, 77, 65, 57, 54, 67, 69, 59, 73, 39, 65, 63, 92, 75, 84, 53, 57, 70, 73, 71, 96, 52, 55, 47, 101, 70, 69, 78, 69, 70, 67, 67, 79, 55, 60, 63, 79, 78, 105, 64, 70, 54, 59, 56, 74, 64, 60, 74, 76, 73, 56, 50, 61, 31, 36, 72, 73, 56, 62, 51, 55, 49, 60, 75, 53, 78, 78, 52, 55, 53, 52, 80, 123, 61, 84, 62, 53, 52, 89, 66, 69, 69, 65, 60, 75, 77, 80, 83, 67, 91, 47, 82, 45, 67, 63, 59, 55, 71, 59, 90, 77, 58, 55, 51, 70, 84, 88, 94, 57, 74, 69, 53, 50, 66, 64, 75, 81, 65, 80, 100, 54, 59, 83, 91, 52, 68, 67, 61, 54, 62, 88, 47, 57, 54, 87, 62, 77, 61, 68, 57, 52, 42, 67, 71, 59, 59, 37, 76, 70, 58, 54, 77, 61, 73, 35, 76, 79, 50, 59, 69, 56, 72, 48, 50, 69, 58, 56, 68, 67, 61, 52, 63, 70, 51, 79, 108, 42, 59, 71, 71, 69, 54, 63, 68, 74, 73, 79, 85, 51, 50, 69, 113, 66, 66, 50, 65, 65, 72, 55, 68, 74, 66, 72, 78, 66, 79, 49, 52, 59, 49, 60, 56, 97, 51, 54, 61, 97, 63, 45, 79, 64, 81, 62, 63, 73, 46, 65, 61, 60, 51, 53, 63, 54, 56, 42, 83, 81, 59, 75, 54, 75, 74, 80, 72, 50, 61, 56, 75, 86, 78, 43, 63, 52, 65, 60, 60, 78, 58, 81, 85, 63, 65, 50, 72, 61, 59, 70, 64, 82, 61, 77, 79, 64, 59, 73, 64, 64, 66, 77, 48, 63, 64, 69, 72, 66, 52, 77, 63, 60, 54, 54, 69, 60, 65, 76, 54, 70, 73, 56, 65, 60, 59, 53, 71, 58, 45, 51, 76, 81, 81, 60, 55, 67, 54, 64, 73, 58, 62, 62, 63, 75, 69, 68, 67, 68, 66, 64, 57, 72, 63, 88, 76, 58, 66, 70, 64, 59, 69, 61, 60, 58, 54, 68, 59, 49, 64, 51, 64, 68, 58, 56, 57, 59, 75, 75, 64, 93, 67, 75, 71, 56, 98, 59, 59, 69, 72, 51, 54, 63, 64, 63, 54, 57, 54, 58, 66, 61, 60, 59, 60, 96, 65, 63, 49, 57, 66, 57, 82, 56, 60, 69, 82, 58, 59, 55, 68, 54, 62, 74, 45, 65, 64, 56, 52, 87, 57, 86, 75, 60, 80, 65, 70, 54, 63, 74, 56, 65, 60, 66, 68, 71, 62, 68, 62, 64, 71, 49, 81, 82, 74, 68, 58, 66, 74, 65, 57, 62, 98, 54, 59, 76, 75, 82, 83, 55, 66, 69, 56, 51, 71, 78, 79, 87, 62, 64, 57, 46, 64, 74, 57, 61, 55, 69, 61, 44, 48, 59, 91, 86, 54, 49, 63, 59, 68, 78, 66, 90, 74, 69, 61, 64, 55, 70, 84, 58, 74, 69, 73, 66, 59, 72, 85, 68, 61, 55, 61, 68, 111, 51, 61, 61, 62, 62, 67, 63, 68, 62, 63, 52, 60, 55, 70, 59, 64, 73, 59, 65, 65, 60, 62, 60, 107, 62, 69, 55, 64, 56, 62, 76, 61, 83, 74, 70, 59, 62, 56, 58, 137, 59, 53, 104, 97, 68, 61, 42, 53, 73, 59, 142, 108, 62, 62, 58, 62, 57, 65, 92, 55, 63, 75, 78, 77, 59, 69, 69, 68, 66, 70, 69, 58, 67, 73, 59, 52, 57, 48, 58, 58, 67, 67, 74, 62, 82, 59, 68, 75, 61, 76, 90, 62, 97, 55, 62, 59, 66, 97, 83, 57, 62, 105, 90, 55, 61, 70, 68, 61, 57, 69, 64, 66, 49, 61, 62, 61, 52, 51, 66, 74, 64, 106, 65, 62, 63, 67, 62, 59, 56, 56, 64, 69, 56, 66, 60, 66, 76, 62, 73, 62, 76, 54, 61, 62, 71, 78, 65, 50, 68, 62, 70, 70, 70, 68, 64, 56, 63, 62, 50, 54, 76, 71, 61, 67, 58, 61, 59, 68, 64, 61, 65, 57, 64, 62, 72, 58, 90, 62, 66, 58, 47, 67, 74, 66, 60, 59, 71, 70, 87, 64, 52, 87, 57, 60, 63, 64, 59, 58, 60, 112, 57, 60, 59, 65, 64, 108, 58, 63, 67, 61, 65, 67, 61, 58, 79, 77, 57, 56, 66, 73, 50, 88, 65, 64, 64, 60, 59, 63, 65, 60, 64, 63, 58, 59, 59, 53, 58, 67, 75, 64, 60, 67, 80, 71, 63, 66, 62, 79, 83, 65, 74, 59, 64, 59, 75, 56, 60, 65, 67, 65, 61, 65, 120, 69, 56, 65, 74, 73, 56, 107, 60, 76, 76, 68, 65, 68, 53, 60, 69, 62, 77, 64, 71, 70, 66, 63, 72, 63, 55, 62, 62, 68, 74, 50, 63, 57, 66, 62, 64, 85, 64, 69, 56, 66, 61, 59, 65, 62, 74, 50, 69, 70, 60, 68, 68, 60, 68, 65, 57, 66, 66, 63, 59, 55, 62, 63, 61, 66, 69, 71, 101, 62, 62, 69, 74, 60, 56, 53, 82, 79, 55, 64, 45, 79, 79, 68, 60, 58, 66, 75, 64, 63, 65, 52, 78, 67, 74, 66, 71, 38, 73, 63, 63, 62, 54, 63, 65, 69, 58, 72, 60, 53, 86, 66, 60, 62, 51, 61, 59, 66, 65, 66, 59, 69, 61, 63, 66, 56, 61, 61, 59, 50, 56, 61, 57, 59, 65, 61, 72, 51, 65, 58, 61, 62, 87, 54, 60, 68, 50, 65, 67, 62, 55, 64, 57, 69, 72, 45, 62, 86, 62, 58, 50, 58, 67, 52, 92, 63, 70, 72, 65, 86, 67, 62, 70, 63, 66, 65, 58, 77, 60, 67, 61, 66, 88, 82, 63, 64, 56, 65, 61, 68, 61, 66, 59, 56, 67, 61, 61, 55, 75, 47, 74, 68, 67, 60, 76, 66, 61, 62, 65, 61, 56, 84, 90, 59, 59, 65, 50, 60, 72, 61, 60, 61, 55, 62, 58, 64, 57, 57, 70, 50, 57, 36, 56, 58, 71, 60, 63, 55, 54, 55, 87, 72, 66, 53, 94, 66, 55, 58, 65, 59, 68, 56, 57, 59, 61, 73, 55, 56, 77, 73, 59, 76, 62, 55, 81, 71, 66, 58, 67, 60, 61, 65, 63, 61, 60, 71, 74, 67, 53, 47, 58, 62, 70, 52, 114, 62, 57, 57, 68, 68, 70, 60, 75, 75, 53, 60, 55, 61, 60, 59, 69, 69, 54, 65, 65, 56, 65, 61, 53, 55, 62, 58, 59, 60, 70, 67, 65, 59, 59, 56, 77, 60, 72, 76, 62, 58, 77, 72, 91, 62, 56, 71, 60, 62, 56, 57, 64, 66, 67, 69, 61, 62, 61, 61, 72, 48, 57, 65, 64, 60, 68, 61, 60, 72, 82, 63, 60, 70, 66, 53, 67, 69, 58, 60, 67, 60, 125, 67, 64, 63, 50, 59, 77, 54, 62, 59, 60, 77, 72, 64, 79, 80, 66, 83, 76, 58, 67, 77, 65, 57, 72, 78, 84, 57, 45, 66, 60, 67, 64, 93, 79, 58, 71, 71, 67, 80, 51, 66, 82, 65, 63, 65, 71, 74, 64, 65, 114, 57, 90, 60, 58, 71, 65, 81, 59, 68, 68, 57, 71, 67, 60, 50, 58, 59, 69, 64, 65, 59, 74, 66, 92, 54, 58, 66, 54, 61, 61, 61, 65, 65, 62, 65, 70, 66, 65, 63, 62, 63, 73, 61, 67, 63, 62, 64, 72, 74, 56, 105, 74, 57, 62, 63, 60, 55, 62, 95, 76, 59, 67, 75, 66, 51, 62, 68, 56, 67, 66, 69, 69, 66, 65, 76, 68, 57, 60, 81, 58, 72, 86, 77, 53, 61, 73, 65, 77, 60, 58, 59, 66, 64, 73, 62, 63, 71, 53, 79, 71, 62, 67, 67, 62, 55, 61, 71, 63, 64, 66, 59, 65, 75, 64, 64, 56, 106, 77, 62, 71, 62, 69, 65, 61, 65, 59, 61, 61, 53, 57, 60, 63, 70, 91, 74, 69, 58, 57, 61, 64, 70, 58, 71, 85, 72, 60, 76, 58, 74, 83, 51, 69, 56, 84, 61, 68, 68, 62, 62, 58, 59, 71, 81, 82, 75, 106, 67, 63, 48, 59, 52, 75, 58, 56, 66, 64, 57, 52, 60, 66, 88, 58, 68, 71, 60, 71, 53, 55, 58, 59, 59, 64, 58, 60, 97, 64, 55, 103, 73, 56, 64, 61, 63, 63, 61, 62, 65, 57, 63, 61, 58, 61, 68, 65, 88, 75, 62, 56, 58, 59, 51, 63, 59, 70, 72, 65, 64, 59, 73, 52, 82, 65, 65, 61, 54, 60, 84, 64, 54, 75, 47, 65, 55, 57, 60, 64, 58, 60, 60, 51, 58, 72, 60, 78, 68, 65, 71, 74, 67, 55, 70, 63, 54, 61, 57, 55, 76, 58, 56, 68, 103, 50, 78, 60, 67, 61, 60, 59, 69, 56, 94, 60, 63, 71, 82, 50, 60, 53, 57, 56, 51, 60, 59, 63, 68, 66, 56, 62, 63, 52, 61, 66, 63, 70, 66, 65, 56, 69, 69, 62, 70, 59, 52, 65, 58, 53, 63, 68, 86, 54, 122, 122, 58, 97, 63, 66, 76, 55, 65, 56, 89, 88, 59, 64, 57, 50, 64, 77, 83, 75, 75, 74, 70, 65, 80, 74, 53, 64, 69, 79, 46, 80, 63, 76, 60, 51, 63, 54, 78, 69, 55, 60, 59, 80, 68, 49, 54, 76, 74, 50, 64, 58, 74, 82, 46, 69, 56, 78, 42, 56, 79, 62, 50, 53, 86, 68, 57, 61, 88, 47, 69, 73, 86, 64, 49, 61, 69, 73, 77, 68, 60, 76, 57, 81, 68, 75, 69, 60, 53, 56, 65, 63, 54, 58, 69, 62, 67, 60, 79, 64, 64, 101, 85, 50, 42, 48, 62, 59, 70, 66, 72, 64, 65, 79, 52, 63, 60, 88, 62, 66, 51, 66, 64, 54, 59, 68, 54, 51, 74, 83, 59, 75, 63, 71, 47, 56, 71, 79, 74, 49, 90, 80, 72, 56, 69, 47, 106, 75, 65, 62, 91, 75, 67, 47, 67, 57, 59, 60, 69, 51, 40, 56, 54, 87, 63, 54, 56, 50, 61, 50, 79, 83, 54, 85, 37, 52, 78, 60, 47, 87, 56, 69, 76, 79, 70, 67, 103, 49, 68, 56, 73, 79, 51, 54, 106, 61, 57, 78, 60, 66, 56, 81, 65, 63, 71, 40, 111, 99, 56, 72, 62, 74, 67, 41, 72, 77, 73, 62, 48, 66, 61, 66, 59, 60, 65, 57, 51, 70, 65, 82, 65, 52, 55, 64, 64, 58, 47, 78, 54, 85, 84, 51, 68, 77, 75, 66, 53, 69, 54, 54, 65, 86, 91, 55, 90, 81, 62, 66, 82, 57, 89, 68, 60, 77, 53, 73, 69, 71, 74, 57, 59, 52, 65, 74, 56, 46, 53, 66, 58, 47, 71, 51, 78, 69, 78, 65, 48, 85, 58, 49, 64, 55, 64, 71, 53, 77, 63, 52, 53, 72, 89, 62, 56, 63, 104, 62, 66, 72, 47, 59, 77, 55, 58, 72, 82, 74, 60, 70, 54, 58, 61, 77, 68, 77, 48, 61, 73, 56, 59, 50, 68, 70, 69, 49, 69, 49, 62, 72, 58, 57, 50, 60, 42, 69, 45, 68, 67, 80, 63, 97, 66, 59, 58, 93, 57, 90, 80, 64, 88, 64, 72, 65, 74, 34, 67, 60, 50, 49, 57, 58, 79, 69, 83, 72, 62, 56, 89, 62, 64, 56, 61, 64, 69, 96, 92, 69, 68, 64, 64, 66, 46, 101, 58, 56, 53, 65, 68, 59, 51, 54, 74, 54, 55, 47, 78, 52, 83, 65, 65, 65, 64, 76, 54, 54, 72, 69, 60, 69, 51, 56, 60, 51, 62, 52, 53, 73, 67, 52, 73, 66, 82, 65, 67, 55, 81, 80, 48, 50, 70, 91, 54, 59, 85, 64, 53, 76, 71, 55, 54, 62, 57, 47, 75, 74, 59, 66, 115, 68, 68, 68, 58, 71, 69, 69, 58, 57, 70, 79, 66, 53, 49, 54, 64, 65, 73, 70, 40, 63, 53, 65, 93, 64, 44, 41, 73, 50, 60, 65, 45, 38, 62, 65, 79, 63, 50, 47, 60, 57, 86, 72, 65, 67, 80, 71, 48, 73, 49, 70, 50, 85, 74, 59, 72, 86, 76, 65, 69, 58, 68, 58, 69, 58, 78, 91, 48, 77, 56, 79, 67, 62, 72, 56, 67, 96, 55, 61, 67, 68, 58, 52, 76, 61, 63, 65, 65, 94, 69, 72, 84, 69, 66, 58, 76, 73, 63, 90, 49, 56, 56, 59, 73, 36, 78, 68, 78, 58, 64, 65, 58, 49, 80, 100, 67, 56, 66, 64, 63, 54, 65, 74, 65, 52, 84, 53, 56, 66, 101, 64, 81, 53, 55, 62, 69, 57, 80, 59, 71, 54, 58, 72, 64, 62, 70, 67, 58, 72, 96, 79, 58, 53, 72, 56, 73, 63, 55, 51, 70, 42, 59, 57, 65, 65, 144, 76, 59, 68, 75, 60, 55, 61, 65, 66, 65, 72, 50, 59, 60, 67, 70, 61, 59, 63, 47, 79, 70, 72, 67, 66, 90, 55, 88, 56, 50, 98, 55, 51, 49, 59, 65, 60, 93, 92, 55, 81, 67, 66, 75, 100, 71, 54, 92, 80, 72, 82, 47, 72, 45, 52, 56, 67, 70, 123, 63, 64, 100, 63, 62, 66, 61, 57, 66, 84, 88, 61, 45, 71, 62, 66, 72, 79, 71, 65, 86, 61, 82, 79, 70, 62, 53, 46, 70, 58, 63, 41, 62, 74, 58, 65, 70, 62, 57, 58, 84, 65, 68, 52, 57, 62, 61, 81, 58, 67, 78, 63, 63, 78, 65, 61, 69, 80, 51, 69, 74, 46, 73, 50, 74, 94, 65, 52, 67, 60, 42, 61, 72, 64, 52, 47, 59, 65, 77, 55, 67, 65, 73, 51, 68, 66, 79, 82, 62, 53, 56, 69, 77, 69, 65, 59, 61, 72, 69, 49, 69, 56, 50, 60, 68, 53, 57, 58, 50, 82, 72, 64, 72, 57, 69, 62, 78, 67, 61, 48, 69, 65, 65, 51, 49, 101, 86, 60, 74, 77, 64, 53, 58, 63, 68, 72, 67, 61, 59, 76, 55, 87, 36, 63, 58, 59, 74, 64, 68, 72, 61, 72, 53, 63, 58, 75, 46, 61, 63, 91, 57, 60, 55, 70, 66, 82, 61, 69, 103, 78, 71, 65, 53, 74, 61, 55, 37, 56, 59, 56, 79, 61, 74, 87, 56, 75, 63, 53, 70, 77, 82, 49, 57, 65, 71, 50, 66, 69, 85, 72, 83, 62, 87, 49, 48, 70, 51, 77, 64, 45, 63, 64, 72, 55, 61, 58, 86, 50, 47, 118, 49, 43, 45, 62, 56, 50, 71, 57, 47, 72, 77, 75, 54, 70, 65, 66, 92, 91, 67, 61, 57, 47, 62, 68, 85, 58, 55, 45, 55, 59, 84, 71, 73, 66, 85, 52, 96, 61, 44, 59, 58, 64, 48, 67, 67, 69, 72, 66, 56, 78, 58, 54, 47, 53, 62, 63, 74, 53, 67, 59, 46, 52, 64, 59, 65, 55, 63, 63, 67, 60, 75, 64, 62, 61, 69, 66, 60, 66, 50, 53, 84, 69, 62, 40, 70, 58, 87, 60, 65, 69, 67, 48, 80, 81, 66, 56, 73, 93, 79, 67, 60, 42, 102, 64, 80, 90, 74, 67, 59, 75, 70, 103, 113, 66, 57, 53, 62, 73, 62, 64, 76, 53, 94, 60, 61, 48, 57, 72, 70, 44, 66, 59, 62, 49, 69, 74, 66, 66, 79, 58, 89, 79, 66, 57, 73, 62, 79, 68, 66, 61, 60, 63, 54, 67, 60, 53, 52, 61, 64, 70, 83, 66, 56, 71, 64, 62, 51, 84, 73, 76, 69, 59, 68, 63, 55, 62, 55, 72, 64, 89, 61, 68, 65, 64, 58, 67, 104, 78, 63, 69, 63, 64, 55, 103, 61, 60, 73, 77, 74, 59, 102, 66, 51, 65, 56, 55, 72, 54, 105, 58, 76, 50, 84, 84, 51, 51, 69, 78, 65, 82, 69, 67, 68, 90, 74, 73, 52, 62, 76, 74, 54, 65, 58, 59, 58, 54, 58, 79, 67, 87, 75, 59, 67, 49, 61, 65, 62, 57, 73, 52, 77, 63, 57, 58, 58, 66, 59, 50, 60, 52, 45, 49, 72, 65, 50, 51, 62, 73, 129, 52, 61, 87, 63, 63, 97, 76, 63, 60, 63, 68, 57, 64, 54, 66, 76, 75, 49, 92, 71, 40, 63, 68, 66, 80, 57, 74, 44, 66, 60, 62, 60, 56, 62, 69, 80, 63, 48, 70, 112, 71, 65, 68, 64, 70, 56, 69, 47, 70, 45, 52, 64, 61, 61, 71, 67, 59, 70, 66, 82, 81, 53, 53, 59, 42, 53, 57, 64, 86, 77, 54, 65, 71, 62, 54, 54, 57, 99, 66, 63, 67, 54, 52, 51, 59, 61, 48, 54, 57, 46, 56, 64, 59, 75, 56, 62, 54, 66, 54, 78, 72, 51, 65, 70, 60, 73, 37, 60, 53, 61, 68, 58, 69, 46, 51, 67, 63, 73, 49, 73, 123, 84, 68, 83, 59, 79, 79, 67, 68, 84, 62, 55, 82, 68, 67, 56, 78, 68, 61, 44, 74, 71, 46, 64, 63, 60, 54, 105, 49, 65, 85, 68, 75, 59, 64, 76, 65, 80, 53, 70, 63, 53, 69, 77, 76, 69, 59, 68, 64, 56, 62, 66, 60, 39, 52, 60, 53, 80, 55, 66, 57, 55, 61, 57, 87, 70, 63, 76, 77, 76, 52, 76, 70, 98, 69, 74, 53, 62, 48, 60, 74, 67, 72, 59, 83, 66, 62, 89, 83, 80, 72, 82, 62, 58, 50, 51, 57, 49, 48, 47, 99, 73, 59, 60, 67, 58, 51, 54, 59, 63, 71, 76, 57, 58, 69, 65, 69, 92, 61, 72, 82, 62, 76, 64, 59, 65, 69, 66, 69, 62, 80, 81, 60, 65, 70, 59, 68, 44, 62, 69, 55, 57, 57, 59, 60, 58, 67, 59, 61, 97, 66, 59, 77, 59, 59, 37, 56, 55, 61, 67, 61, 57, 62, 64, 62, 72, 51, 58, 65, 66, 67, 66, 72, 74, 62, 50, 52, 68, 57, 70, 55, 61, 54, 66, 64, 57, 77, 89, 68, 104, 60, 55, 54, 58, 91, 104, 83, 84, 74, 65, 79, 65, 79, 52, 49, 63, 70, 62, 53, 70, 73, 55, 70, 73, 62, 74, 60, 65, 75, 48, 68, 67, 45, 81, 73, 65, 64, 56, 54, 61, 69, 72, 71, 67, 78, 97, 64, 65, 65, 64, 67, 63, 75, 56, 49, 65, 80, 67, 82, 65, 50, 70, 36, 73, 62, 61, 55, 53, 56, 66, 66, 58, 91, 58, 64, 65, 47, 48, 58, 67, 62, 59, 63, 61, 54, 55, 69, 72, 59, 66, 61, 78, 71, 67, 53, 77, 75, 56, 68, 66, 56, 67, 68, 70, 65, 65, 88, 64, 65, 71, 48, 63, 62, 104, 108, 65, 55, 64, 73, 78, 64, 64, 81, 82, 88, 64, 89, 81, 70, 57, 63, 62, 59, 70, 62, 60, 61, 71, 65, 51, 63, 64, 65, 65, 47, 48, 57, 58, 60, 66, 43, 64, 56, 66, 63, 53, 67, 70, 70, 58, 44, 102, 73, 50, 59, 119, 87, 62, 81, 36, 63, 53, 70, 55, 58, 55, 43, 72, 69, 72, 50, 43, 75, 62, 52, 64, 65, 47, 54, 77, 61, 63, 84, 44, 59, 69, 70, 105, 67, 57, 76, 55, 76, 83, 65, 65, 58, 65, 62, 82, 66, 54, 51, 87, 41, 74, 90, 57, 61, 62, 71, 72, 64, 63, 114, 61, 58, 65, 60, 86, 57, 56, 66, 55, 53, 50, 57, 52, 80, 63, 57, 56, 65, 55, 69, 66, 57, 64, 54, 69, 70, 56, 61, 51, 61, 58, 56, 65, 51, 55, 74, 90, 64, 71, 60, 54, 58, 54, 64, 64, 66, 61, 71, 67, 67, 64, 66, 67, 68, 54, 71, 72, 64, 68, 85, 58, 62, 66, 53, 52, 75, 60, 53, 55, 65, 75, 80, 60, 69, 54, 59, 77, 48, 55, 56, 83, 67, 53, 56, 66, 70, 94, 53, 59, 68, 70, 63, 58, 70, 48, 57, 55, 61, 63, 66, 86, 56, 76, 67, 62, 66, 76, 70, 75, 60, 66, 49, 84, 68, 88, 64, 80, 63, 65, 47, 61, 48, 59, 56, 70, 126, 55, 59, 55, 62, 68, 68, 58, 57, 63, 34, 56, 86, 79, 71, 56, 97, 62, 58, 43, 68, 68, 57, 71, 73, 74, 54, 55, 57, 56, 60, 62, 57, 85, 40, 76, 69, 64, 61, 74, 61, 49, 58, 57, 60, 57, 90, 71, 56, 79, 66, 64, 59, 76, 59, 63, 50, 54, 68, 60, 53, 76, 58, 55, 67, 61, 66, 105, 49, 76, 59, 72, 67, 76, 61, 67, 51, 84, 76, 66, 54, 71, 60, 65, 67, 55, 66, 65, 60, 62, 65, 61, 65, 71, 98, 77, 63, 73, 61, 61, 69, 61, 60, 60, 64, 74, 55, 55, 66, 56, 67, 72, 67, 64, 65, 70, 62, 109, 52, 52, 92, 73, 54, 62, 90, 73, 63, 73, 62, 69, 60, 71, 70, 60, 49, 70, 43, 72, 56, 51, 67, 59, 60, 62, 58, 58, 82, 73, 65, 75, 90, 80, 66, 65, 55, 70, 90, 52, 68, 41, 61, 70, 61, 58, 62, 53, 68, 40, 59, 79, 54, 83, 63, 67, 53, 59, 78, 64, 60, 60, 39, 81, 71, 59, 86, 57, 75, 72, 54, 58, 77, 69, 62, 76, 60, 60, 69, 85, 69, 65, 70, 59, 76, 61, 50, 69, 75, 62, 66, 54, 72, 59, 69, 61, 59, 60, 45, 63, 51, 70, 45, 67, 70, 67, 52, 64, 67, 57, 50, 62, 69, 60, 62, 55, 86, 68, 73, 70, 58, 68, 42, 85, 54, 69, 70, 51, 55, 59, 54, 68, 83, 61, 52, 58, 87, 60, 77, 51, 73, 63, 65, 58, 50, 65, 60, 59, 64, 58, 68, 58, 78, 80, 114, 59, 41, 89, 55, 69, 57, 67, 71, 91, 53, 65, 83, 72, 61, 67, 54, 61, 80, 50, 73, 68, 91, 93, 69, 51, 45, 59, 54, 64, 63, 98, 53, 65, 78, 73, 73, 56, 50, 76, 85, 60, 56, 81, 66, 67, 57, 69, 60, 63, 51, 81, 70, 52, 79, 75, 68, 48, 57, 49, 57, 67, 77, 64, 63, 66, 88, 57, 80, 50, 71, 55, 92, 81, 76, 58, 56, 46, 61, 64, 74, 55, 72, 62, 55, 79, 71, 63, 93, 55, 70, 68, 37, 69, 66, 73, 53, 68, 72, 68, 65, 79, 73, 62, 60, 64, 75, 80, 69, 70, 70, 51, 81, 58, 66, 61, 64, 82, 51, 92, 61, 60, 57, 82, 70, 59, 66, 60, 61, 84, 71, 88, 66, 63, 72, 76, 62, 55, 54, 72, 69, 67, 81, 64, 87, 75, 73, 67, 55, 69, 68, 69, 43, 68, 66, 68, 59, 61, 65, 61, 63, 45, 73, 59, 70, 77, 62, 60, 57, 90, 55, 66, 51, 56, 65, 57, 50, 59, 49, 65, 60, 83, 90, 61, 77, 82, 76, 61, 65, 65, 54, 72, 69, 76, 52, 55, 53, 80, 54, 70, 79, 81, 53, 80, 57, 64, 71, 62, 80, 67, 81, 70, 81, 62, 37, 58, 51, 63, 77, 70, 68, 65, 65, 65, 62, 51, 72, 61, 57, 54, 72, 91, 65, 73, 71, 57, 54, 76, 78, 87, 68, 63, 46, 67, 84, 67, 45, 68, 71, 90, 50, 66, 65, 51, 75, 77, 63, 73, 54, 75, 53, 90, 57, 62, 61, 80, 78, 67, 66, 58, 60, 78, 59, 53, 60, 72, 53, 62, 56, 68, 66, 56, 58, 63, 59, 55, 60, 59, 65, 63, 68, 62, 59, 55, 90, 70, 55, 66, 79, 51, 126, 59, 49, 62, 77, 60, 48, 46, 73, 54, 72, 50, 68, 61, 53, 68, 59, 63, 53, 55, 85, 68, 74, 55, 65, 47, 62, 71, 75, 83, 86, 60, 55, 77, 72, 83, 46, 72, 123, 69, 56, 54, 78, 62, 71, 49, 57, 86, 63, 78, 86, 72, 80, 99, 50, 67, 79, 63, 67, 78, 65, 87, 66, 61, 63, 58, 55, 50, 59, 71, 73, 72, 72, 55, 72, 94, 73, 82, 74, 69, 55, 57, 59, 64, 61, 60, 72, 73, 56, 59, 71, 72, 53, 65, 65, 58, 66, 66, 82, 65, 80, 139, 48, 92, 71, 56, 75, 60, 47, 69, 86, 68, 90, 61, 55, 62, 71, 77, 58, 73, 66, 55, 78, 66, 58, 43, 82, 60, 50, 65, 69, 56, 80, 61, 49, 68, 43, 72, 62, 59, 65, 60, 63, 56, 67, 81, 49, 58, 65, 61, 65, 76, 54, 65, 98, 70, 54, 73, 73, 75, 69, 50, 56, 80, 45, 70, 61, 68, 68, 80, 68, 72, 77, 65, 80, 47, 69, 52, 51, 58, 52, 47, 86, 64, 59, 59, 78, 77, 72, 68, 76, 93, 81, 75, 57, 64, 66, 44, 66, 68, 70, 62, 61, 62, 66, 65, 83, 73, 70, 66, 48, 57, 65, 65, 64, 64, 107, 72, 82, 57, 110, 65, 76, 60, 77, 62, 86, 77, 91, 55, 96, 71, 60, 75, 71, 68, 59, 70, 65, 69, 64, 65, 77, 52, 72, 48, 44, 62, 54, 83, 76, 109, 77, 70, 59, 65, 66, 81, 62, 67, 99, 59, 76, 66, 52, 52, 54, 124, 84, 40, 50, 80, 65, 46, 56, 65, 76, 46, 66, 61, 73, 51, 44, 53, 65, 71, 58, 64, 74, 68, 59, 61, 56, 83, 44, 50, 41, 75, 67, 83, 40, 60, 55, 65, 57, 91, 62, 62, 78, 57, 69, 74, 81, 53, 70, 132, 60, 72, 58, 124, 53, 69, 55, 66, 64, 51, 104, 55, 66, 54, 79, 58, 59, 54, 59, 67, 62, 63, 50, 77, 71, 55, 45, 68, 70, 55, 62, 61, 60, 43, 68, 80, 52, 64, 53, 54, 53, 81, 55, 52, 71, 57, 53, 88, 58, 69, 68, 52, 59, 47, 31, 50, 87, 56, 71, 70, 88, 58, 60, 56, 54, 83, 72, 56, 73, 82, 65, 71, 39, 79, 53, 58, 47, 72, 78, 57, 68, 47, 82, 47, 70, 77, 60, 49, 73, 63, 62, 75, 79, 70, 106, 58, 49, 63, 75, 53, 59, 65, 64, 57, 67, 68, 69, 57, 52, 59, 59, 52, 56, 74, 70, 58, 58, 56, 89, 57, 49, 65, 58, 58, 69, 59, 62, 51, 53, 59, 84, 74, 71, 56, 57, 68, 107, 53, 71, 61, 70, 71, 71, 71, 60, 80, 46, 79, 74, 85, 63, 53, 97, 87, 62, 67, 53, 59, 76, 45, 54, 55, 66, 68, 63, 64, 96, 59, 54, 46, 71, 55, 61, 89, 75, 63, 70, 54, 59, 82, 63, 59, 58, 60, 56, 54, 44, 83, 53, 55, 82, 56, 60, 79, 74, 71, 71, 65, 63, 78, 62, 60, 62, 83, 90, 55, 57, 63, 59, 54, 58, 44, 77, 74, 74, 77, 59, 57, 76, 70, 58, 45, 80, 76, 76, 61, 57, 59, 81, 65, 107, 51, 69, 69, 77, 59, 74, 80, 63, 88, 56, 80, 61, 70, 62, 69, 61, 85, 61, 63, 52, 53, 35, 68, 59, 53, 88, 75, 59, 49, 80, 83, 50, 49, 40, 64, 66, 77, 41, 48, 44, 48, 65, 67, 51, 45, 59, 59, 67, 68, 69, 46, 31, 54, 59, 73, 105, 58, 34, 107, 85, 71, 82, 64, 84, 61, 62, 52, 63, 67, 75, 45, 77, 74, 57, 68, 61, 53, 60, 87, 72, 77, 85, 79, 78, 69, 70, 78, 49, 62, 75, 64, 79, 69, 66, 61, 73, 62, 53, 65, 61, 54, 65, 50, 49, 76, 94, 64, 46, 63, 96, 55, 62, 71, 61, 37, 68, 64, 63, 61, 51, 54, 79, 63, 47, 50, 70, 65, 89, 63, 61, 63, 45, 75, 52, 73, 51, 43, 58, 84, 62, 67, 76, 70, 61, 56, 54, 85, 55, 78, 59, 67, 71, 69, 60, 58, 49, 61, 55, 69, 71, 72, 78, 70, 77, 62, 66, 62, 53, 71, 78, 61, 56, 59, 68, 66, 91, 58, 60, 60, 90, 77, 64, 73, 56, 56, 65, 81, 66, 55, 67, 53, 58, 58, 86, 77, 76, 77, 65, 72, 72, 89, 62, 57, 68, 53, 68, 43, 63, 87, 55, 65, 75, 65, 72, 64, 52, 66, 73, 61, 57, 60, 56, 78, 95, 53, 42, 63, 54, 64, 69, 91, 65, 72, 61, 56, 77, 64, 57, 42, 73, 73, 58, 54, 70, 77, 81, 54, 74, 84, 54, 61, 72, 60, 71, 86, 70, 60, 54, 50, 63, 82, 59, 64, 68, 47, 68, 52, 79, 110, 76, 68, 63, 77, 58, 61, 54, 71, 41, 69, 68, 64, 66, 57, 55, 50, 57, 68, 62, 70, 55, 71, 66, 69, 64, 59, 76, 46, 53, 76, 46, 61, 61, 56, 67, 73, 49, 61, 62, 108, 57, 60, 43, 60, 65, 64, 66, 67, 60, 52, 72, 68, 67, 73, 82, 63, 62, 64, 65, 61, 71, 53, 65, 82, 30, 51, 56, 60, 93, 69, 88, 68, 80, 64, 62, 85, 64, 84, 60, 62, 56, 57, 60, 61, 81, 64, 65, 71, 60, 57, 76, 68, 82, 61, 69, 53, 71, 77, 63, 67, 61, 64, 62, 65, 66, 87, 92, 61, 72, 79, 69, 70, 58, 34, 63, 60, 83, 53, 61, 57, 73, 48, 61, 58, 49, 58, 67, 56, 69, 83, 69, 62, 56, 58, 72, 61, 87, 62, 64, 58, 84, 57, 62, 70, 71, 60, 65, 65, 68, 49, 51, 66, 73, 58, 75, 66, 71, 73, 72, 73, 58, 64, 59, 63, 70, 71, 62, 71, 57, 70, 55, 71, 54, 68, 74, 54, 85, 67, 69, 85, 61, 59, 77, 59, 49, 58, 62, 64, 53, 72, 62, 59, 71, 75, 60, 62, 61, 49, 52, 57, 64, 56, 92, 67, 81, 49, 69, 75, 135, 56, 61, 86, 76, 83, 54, 69, 74, 58, 69, 70, 77, 64, 87, 67, 74, 61, 62, 58, 57, 60, 72, 56, 58, 54, 63, 84, 56, 115, 66, 59, 58, 51, 66, 57, 53, 65, 77, 71, 73, 74, 82, 57, 79, 61, 70, 92, 58, 57, 85, 51, 66, 92, 59, 63, 64, 64, 72, 59, 72, 52, 54, 70, 58, 61, 45, 46, 73, 59, 67, 58, 55, 66, 53, 67, 73, 103, 71, 51, 52, 64, 61, 87, 67, 69, 58, 109, 63, 75, 76, 67, 92, 70, 48, 71, 80, 82, 85, 80, 70, 93, 52, 64, 46, 62, 75, 90, 71, 84, 84, 46, 60, 68, 67, 85, 56, 62, 65, 65, 59, 108, 60, 60, 55, 73, 68, 62, 70, 81, 50, 95, 79, 72, 59, 55, 69, 88, 59, 71, 63, 63, 50, 66, 69, 80, 50, 78, 57, 62, 72, 68, 59, 60, 58, 50, 70, 60, 87, 63, 86, 41, 65, 71, 67, 64, 54, 62, 72, 48, 64, 63, 80, 73, 54, 67, 56, 56, 56, 60, 74, 60, 67, 73, 50, 57, 51, 53, 66, 65, 84, 59, 61, 95, 38, 77, 56, 73, 75, 58, 62, 56, 53, 61, 69, 57, 73, 71, 90, 63, 55, 69, 59, 73, 56, 94, 108, 64, 65, 63, 125, 82, 59, 61, 64, 76, 89, 56, 79, 72, 50, 83, 86, 73, 72, 56, 44, 66, 64, 57, 62, 68, 63, 57, 62, 63, 60, 49, 54, 54, 51, 74, 75, 42, 54, 58, 62, 70, 48, 47, 103, 60, 59, 50, 77, 52, 95, 141, 79, 65, 86, 68, 60, 50, 55, 69, 71, 72, 50, 75, 69, 56, 50, 60, 62, 61, 59, 61, 48, 79, 65, 66, 75, 79, 60, 72, 65, 60, 44, 98, 64, 57, 79, 65, 70, 67, 62, 68, 50, 48, 65, 84, 62, 66, 68, 109, 62, 62, 82, 82, 78, 54, 48, 88, 69, 59, 112, 48, 70, 73, 78, 76, 53, 50, 36, 59, 57, 60, 68, 58, 84, 51, 39, 48, 101, 71, 48, 62, 58, 69, 64, 65, 59, 53, 50, 73, 71, 73, 67, 58, 73, 42, 68, 75, 62, 63, 61, 61, 77, 66, 46, 58, 65, 75, 65, 61, 80, 84, 68, 61, 50, 84, 65, 47, 59, 76, 61, 67, 64, 70, 67, 63, 84, 83, 57, 73, 84, 57, 61, 56, 69, 53, 64, 69, 63, 49, 54, 74, 77, 49, 63, 48, 70, 79, 77, 66, 69, 63, 69, 54, 75, 78, 78, 61, 63, 43, 65, 102, 69, 62, 68, 54, 62, 44, 68, 39, 59, 63, 71, 71, 52, 63, 60, 86, 54, 89, 53, 75, 59, 55, 85, 78, 128, 68, 74, 62, 81, 76, 65, 72, 75, 82, 52, 61, 66, 79, 49, 53, 104, 67, 71, 58, 53, 65, 64, 46, 61, 57, 59, 54, 72, 46, 66, 50, 57, 56, 82, 66, 61, 72, 57, 65, 50, 78, 64, 82, 64, 56, 78, 60, 78, 73, 68, 75, 65, 63, 62, 55, 76, 70, 61, 59, 51, 69, 50, 75, 74, 71, 57, 50, 87, 45, 74, 77, 62, 49, 46, 44, 65, 70, 67, 51, 81, 62, 73, 54, 58, 58, 66, 58, 58, 62, 60, 45, 67, 43, 98, 69, 62, 66, 53, 58, 72, 73, 59, 44, 58, 54, 51, 47, 55, 59, 59, 78, 83, 92, 65, 64, 53, 75, 72, 62, 90, 69, 56, 68, 87, 88, 57, 53, 62, 61, 50, 79, 71, 79, 61, 60, 89, 40, 78, 57, 62, 64, 55, 72, 59, 65, 39, 61, 52, 76, 112, 38, 65, 84, 83, 58, 71, 84, 62, 70, 70, 64, 61, 70, 79, 36, 69, 64, 78, 66, 53, 86, 55, 67, 62, 66, 57, 47, 57, 54, 60, 97, 50, 67, 93, 83, 68, 63, 54, 67, 86, 59, 74, 75, 62, 61, 87, 71, 65, 61, 67, 66, 83, 61, 66, 62, 109, 66, 53, 109, 52, 65, 66, 43, 49, 67, 66, 75, 41, 78, 77, 59, 86, 66, 61, 78, 60, 36, 65, 61, 70, 73, 73, 48, 70, 78, 72, 51, 60, 62, 66, 63, 62, 64, 63, 61, 68, 59, 62, 59, 54, 62, 62, 61, 89, 62, 68, 56, 67, 69, 63, 65, 62, 45, 64, 81, 59, 71, 78, 63, 64, 57, 61, 61, 91, 79, 64, 48, 59, 62, 71, 79, 67, 69, 74, 95, 57, 51, 94, 58, 75, 66, 56, 81, 54, 87, 54, 60, 80, 73, 61, 111, 56, 65, 56, 74, 56, 59, 89, 48, 62, 62, 76, 55, 68, 85, 81, 56, 102, 65, 49, 49, 51, 66, 78, 72, 69, 52, 120, 55, 46, 65, 64, 71, 73, 66, 70, 61, 68, 58, 73, 52, 60, 76, 69, 70, 47, 63, 96, 71, 68, 67, 59, 60, 47, 57, 72, 66, 48, 59, 68, 85, 65, 142, 57, 58, 66, 73, 61, 96, 72, 45, 72, 65, 60, 53, 66, 61, 79, 52, 70, 65, 82, 60, 59, 57, 68, 55, 66, 51, 51, 70, 66, 52, 58, 78, 58, 50, 53, 58, 72, 55, 72, 122, 60, 69, 77, 55, 61, 75, 60, 61, 71, 59, 75, 63, 68, 58, 78, 65, 74, 64, 58, 83, 90, 60, 70, 68, 74, 91, 59, 56, 73, 57, 66, 64, 65, 56, 61, 54, 60, 72, 60, 67, 71, 66, 59, 46, 52, 65, 65, 54, 55, 77, 69, 55, 66, 64, 62, 70, 56, 67, 135, 55, 59, 61, 49, 75, 58, 67, 68, 78, 67, 64, 52, 56, 67, 87, 64, 56, 69, 51, 58, 67, 99, 65, 64, 69, 73, 73, 79, 57, 46, 66, 47, 60, 62, 70, 57, 73, 80, 91, 59, 52, 75, 72, 59, 70, 76, 71, 51, 107, 73, 65, 72, 51, 65, 65, 63, 63, 63, 78, 56, 79, 70, 62, 72, 69, 77, 60, 89, 61, 74, 54, 51, 62, 78, 81, 58, 72, 60, 64, 63, 62, 71, 61, 58, 54, 70, 63, 60, 55, 76, 71, 51, 59, 83, 62, 72, 75, 71, 55, 57, 55, 63, 71, 109, 65, 63, 50, 60, 109, 62, 87, 74, 77, 89, 82, 64, 74, 54, 62, 54, 58, 64, 61, 62, 59, 70, 60, 45, 70, 68, 79, 73, 58, 64, 63, 57, 82, 85, 63, 61, 62, 59, 63, 57, 69, 60, 67, 70, 75, 72, 91, 73, 77, 51, 75, 68, 64, 56, 43, 63, 70, 56, 73, 61, 57, 61, 68, 76, 54, 66, 57, 61, 64, 66, 60, 66, 52, 70, 56, 83, 59, 67, 68, 67, 69, 59, 62, 60, 56, 63, 79, 65, 52, 61, 58, 68, 101, 68, 55, 68, 51, 74, 50, 64, 51, 61, 66, 74, 65, 68, 50, 60, 84, 114, 48, 56, 84, 57, 76, 66, 61, 71, 70, 66, 55, 63, 83, 69, 53, 59, 68, 65, 60, 70, 54, 58, 59, 58, 58, 60, 54, 61, 70, 63, 70, 59, 76, 72, 62, 53, 50, 50, 76, 63, 48, 63, 60, 57, 73, 70, 61, 65, 65, 52, 73, 72, 67, 57, 58, 52, 59, 80, 55, 47, 56, 56, 50, 81, 58, 72, 61, 60, 65, 57, 63, 62, 53, 93, 66, 59, 62, 60, 48, 59, 71, 53, 76, 54, 68, 84, 78, 59, 75, 66, 62, 70, 75, 65, 68, 68, 50, 58, 61, 72, 57, 82, 59, 57, 67, 53, 64, 64, 60, 63, 67, 78, 74, 87, 52, 72, 87, 74, 56, 74, 76, 49, 56, 61, 68, 53, 66, 61, 63, 56, 69, 90, 64, 67, 57, 58, 87, 54, 61, 63, 56, 53, 83, 57, 66, 50, 75, 69, 77, 69, 62, 52, 65, 66, 69, 70, 56, 44, 74, 77, 49, 48, 57, 92, 50, 52, 75, 53, 58, 61, 68, 80, 71, 56, 57, 64, 64, 55, 62, 63, 72, 69, 59, 56, 52, 72, 85, 70, 67, 81, 79, 50, 53, 78, 65, 72, 62, 94, 60, 56, 115, 56, 61, 65, 65, 70, 52, 97, 70, 58, 94, 54, 79, 67, 78, 58, 61, 51, 59, 64, 56, 52, 55, 49, 60, 46, 75, 72, 67, 78, 59, 72, 63, 65, 45, 76, 53, 59, 60, 83, 83, 60, 47, 53, 59, 87, 63, 64, 71, 50, 70, 63, 56, 54, 60, 60, 65, 76, 49, 63, 74, 79, 65, 80, 77, 57, 63, 94, 63, 69, 61, 74, 71, 52, 60, 62, 69, 43, 81, 57, 58, 55, 67, 67, 64, 66, 65, 81, 66, 65, 65, 66, 65, 72, 52, 71, 48, 57, 53, 70, 51, 60, 90, 52, 54, 50, 68, 68, 68, 70, 61, 68, 64, 63, 67, 62, 68, 53, 81, 54, 53, 64, 70, 69, 52, 55, 60, 63, 76, 69, 75, 71, 50, 79, 71, 64, 75, 65, 45, 51, 65, 55, 64, 59, 61, 70, 77, 83, 54, 52, 72, 74, 67, 63, 62, 65, 66, 58, 76, 70, 88, 72, 60, 81, 53, 68, 60, 54, 52, 81, 66, 64, 59, 52, 57, 62, 66, 49, 51, 62, 91, 57, 56, 75, 67, 68, 68, 56, 60, 66, 60, 65, 56, 63, 62, 60, 50, 65, 70, 57, 81, 65, 76, 71, 76, 64, 78, 57, 65, 63, 59, 59, 68, 58, 57, 68, 63, 52, 50, 68, 42, 65, 61, 62, 91, 64, 59, 70, 53, 77, 67, 55, 62, 68, 68, 64, 56, 59, 70, 52, 63, 120, 63, 59, 56, 67, 56, 75, 54, 53, 50, 63, 76, 64, 51, 58, 70, 61, 77, 58, 78, 67, 59, 58, 90, 67, 55, 48, 76, 93, 59, 73, 56, 52, 65, 63, 64, 65, 91, 58, 57, 51, 59, 65, 46, 74, 46, 69, 56, 59, 59, 55, 54, 70, 48, 72, 82, 79, 70, 65, 86, 65, 77, 61, 87, 55, 52, 58, 56, 51, 74, 73, 63, 56, 48, 56, 76, 93, 60, 68, 69, 52, 75, 65, 76, 51, 63, 72, 66, 60, 71, 58, 63, 65, 45, 59, 60, 66, 83, 67, 60, 55, 61, 74, 58, 51, 54, 61, 74, 61, 71, 59, 62, 69, 89, 73, 91, 69, 60, 49, 65, 66, 78, 64, 67, 62, 70, 70, 71, 60, 61, 51, 51, 47, 72, 50, 75, 57, 60, 61, 69, 57, 66, 65, 68, 75, 74, 58, 83, 60, 66, 62, 57, 53, 66, 95, 63, 68, 59, 82, 81, 70, 55, 61, 66, 68, 65, 60, 56, 61, 57, 76, 77, 69, 56, 71, 62, 77, 54, 64, 66, 55, 75, 66, 63, 56, 66, 73, 93, 78, 64, 55, 72, 56, 55, 79, 64, 90, 52, 111, 80, 61, 78, 57, 56, 49, 54, 62, 52, 68, 82, 87, 63, 68, 63, 106, 69, 63, 69, 81, 50, 128, 44, 73, 56, 66, 73, 67, 77, 82, 62, 77, 69, 70, 64, 86, 109, 72, 94, 117, 65, 82, 66, 61, 54, 47, 50, 65, 50, 60, 44, 70, 64, 63, 74, 61, 87, 79, 62, 59, 55, 74, 61, 59, 78, 72, 67, 73, 101, 71, 174, 71, 63, 77, 79, 57, 71, 56, 74, 60, 54, 49, 54, 69, 68, 58, 62, 64, 72, 55, 63, 78, 43, 62, 53, 66, 58, 54, 64, 38, 83, 72, 56, 60, 59, 62, 54, 58, 70, 59, 50, 58, 60, 65, 55, 71, 59, 54, 54, 59, 64, 63, 52, 63, 60, 103, 65, 63, 64, 57, 110, 74, 53, 51, 50, 50, 54, 54, 60, 88, 68, 71, 68, 69, 58, 69, 65, 71, 110, 71, 62, 48, 67, 71, 66, 69, 61, 53, 65, 47, 67, 56, 69, 63, 57, 55, 60, 58, 53, 67, 68, 67, 62, 60, 56, 58, 65, 61, 101, 70, 60, 58, 61, 81, 72, 65, 63, 54, 72, 61, 72, 50, 62, 57, 50, 59, 102, 88, 52, 70, 72, 71, 63, 62, 54, 55, 59, 63, 78, 79, 69, 100, 56, 76, 78, 62, 62, 48, 95, 53, 64, 81, 57, 63, 47, 73, 64, 55, 58, 64, 55, 79, 44, 58, 61, 50, 58, 63, 66, 54, 62, 77, 61, 56, 98, 63, 68, 67, 105, 58, 41, 49, 41, 77, 61, 68, 62, 68, 49, 53, 57, 56, 69, 78, 71, 65, 62, 104, 63, 59, 65, 57, 49, 73, 64, 45, 62, 64, 53, 70, 61, 66, 57, 69, 56, 68, 72, 61, 64, 49, 62, 120, 63, 71, 61, 54, 62, 51, 61, 68, 71, 56, 65, 86, 79, 45, 58, 68, 85, 56, 58, 54, 68, 66, 82, 68, 53, 69, 70, 64, 56, 77, 75, 72, 98, 79, 79, 63, 71, 89, 75, 57, 80, 63, 58, 57, 69, 72, 61, 59, 69, 64, 77, 60, 52, 72, 57, 61, 60, 64, 63, 58, 58, 72, 69, 59, 46, 60, 57, 64, 51, 61, 61, 64, 56, 64, 70, 67, 61, 54, 62, 60, 55, 67, 80, 68, 78, 83, 63, 79, 63, 58, 75, 64, 67, 53, 60, 91, 66, 44, 65, 62, 58, 47, 74, 77, 56, 53, 62, 75, 72, 57, 69, 64, 54, 64, 62, 72, 66, 62, 64, 50, 67, 58, 74, 64, 71, 60, 77, 63, 60, 76, 52, 70, 67, 71, 71, 63, 72, 49, 70, 60, 59, 62, 66, 60, 75, 86, 59, 90, 61, 45, 64, 62, 63, 72, 63, 68, 65, 50, 65, 80, 71, 79, 53, 77, 65, 48, 57, 64, 53, 79, 77, 81, 85, 59, 49, 56, 51, 68, 60, 79, 84, 67, 56, 51, 78, 53, 112, 57, 52, 61, 78, 62, 69, 47, 55, 43, 73, 69, 68, 59, 50, 58, 67, 79, 70, 87, 54, 66, 58, 61, 83, 45, 60, 44, 70, 47, 58, 63, 89, 85, 58, 89, 42, 79, 55, 54, 70, 93, 79, 60, 60, 63, 59, 65, 60, 60, 67, 57, 89, 70, 54, 61, 46, 54, 52, 73, 73, 52, 64, 81, 82, 74, 54, 84, 63, 49, 61, 65, 60, 70, 53, 82, 65, 74, 56, 58, 78, 46, 71, 72, 58, 82, 52, 74, 70, 58, 58, 74, 44, 82, 70, 62, 72, 42, 52, 51, 71, 76, 68, 86, 69, 80, 61, 54, 61, 64, 57, 64, 50, 95, 69, 50, 54, 69, 62, 90, 63, 79, 55, 55, 66, 50, 58, 76, 72, 54, 57, 56, 69, 58, 82, 59, 68, 48, 136, 59, 54, 89, 59, 61, 80, 69, 65, 57, 56, 53, 59, 106, 58, 57, 56, 53, 77, 59, 59, 71, 53, 77, 61, 55, 77, 66, 65, 66, 65, 83, 61, 55, 80, 62, 68, 63, 76, 60, 82, 65, 72, 73, 57, 75, 51, 60, 58, 93, 57, 59, 59, 81, 85, 65, 56, 59, 60, 84, 52, 66, 96, 63, 68, 89, 49, 70, 77, 62, 42, 52, 67, 93, 61, 53, 80, 61, 89, 57, 77, 59, 67, 53, 62, 52, 53, 44, 65, 60, 68, 58, 51, 72, 65, 76, 67, 67, 63, 65, 49, 66, 92, 66, 66, 93, 51, 82, 71, 57, 112, 76, 63, 64, 55, 52, 60, 65, 73, 70, 72, 66, 73, 72, 62, 54, 64, 63, 101, 64, 66, 60, 67, 54, 56, 50, 93, 52, 54, 77, 61, 53, 61, 61, 60, 52, 74, 61, 49, 70, 53, 51, 64, 67, 66, 60, 61, 61, 60, 58, 54, 60, 62, 53, 64, 92, 75, 55, 53, 73, 60, 63, 80, 91, 69, 60, 55, 62, 57, 71, 49, 57, 52, 72, 76, 58, 61, 62, 78, 67, 69, 58, 88, 85, 57, 64, 65, 69, 77, 58, 63, 55, 53, 61, 71, 55, 76, 66, 66, 67, 46, 65, 60, 83, 72, 60, 72, 59, 54, 69, 84, 65, 57, 58, 64, 53, 75, 61, 86, 47, 53, 65, 85, 59, 72, 66, 71, 65, 56, 85, 57, 76, 62, 61, 73, 69, 61, 86, 66, 68, 53, 84, 61, 59, 67, 56, 60, 49, 58, 70, 61, 61, 52, 61, 51, 119, 41, 74, 77, 62, 55, 89, 52, 63, 84, 59, 65, 49, 57, 68, 64, 72, 51, 60, 62, 44, 64, 60, 65, 66, 76, 54, 72, 66, 61, 61, 70, 60, 60, 59, 60, 64, 64, 54, 55, 78, 71, 61, 45, 52, 63, 69, 72, 68, 61, 57, 66, 50, 58, 46, 78, 61, 61, 74, 57, 59, 99, 58, 70, 62, 64, 58, 120, 83, 71, 71, 62, 70, 70, 60, 56, 71, 94, 80, 100, 81, 81, 66, 68, 63, 79, 63, 87, 58, 50, 79, 58, 59, 57, 96, 87, 60, 66, 66, 41, 66, 66, 65, 54, 45, 59, 53, 69, 89, 49, 64, 61, 55, 47, 65, 66, 49, 63, 55, 61, 80, 65, 56, 73, 75, 52, 58, 61, 60, 77, 82, 78, 54, 51, 51, 59, 59, 89, 76, 62, 64, 78, 45, 92, 72, 58, 71, 55, 71, 60, 54, 74, 58, 93, 59, 79, 62, 73, 59, 56, 54, 107, 72, 61, 63, 54, 69, 71, 62, 65, 59, 70, 58, 52, 60, 65, 79, 62, 58, 84, 43, 64, 45, 73, 71, 86, 72, 82, 75, 63, 52, 80, 53, 65, 53, 55, 53, 57, 52, 63, 73, 70, 90, 56, 69, 65, 70, 62, 62, 67, 75, 44, 65, 62, 71, 58, 72, 69, 58, 60, 60, 55, 68, 69, 62, 131, 61, 71, 70, 59, 73, 64, 57, 55, 68, 49, 61, 67, 56, 61, 51, 149, 72, 39, 58, 67, 53, 71, 73, 57, 52, 63, 45, 75, 63, 59, 66, 81, 70, 73, 86, 64, 61, 64, 65, 111, 56, 60, 64, 49, 74, 78, 60, 50, 50, 64, 57, 70, 56, 55, 104, 93, 61, 57, 53, 68, 63, 75, 69, 61, 66, 73, 83, 43, 78, 52, 72, 62, 70, 51, 54, 53, 72, 86, 54, 53, 63, 70, 89, 62, 66, 87, 64, 49, 64, 61, 71, 59, 69, 74, 91, 71, 81, 64, 44, 80, 58, 50, 44, 43, 51, 73, 90, 69, 57, 59, 117, 68, 95, 58, 67, 60, 57, 73, 79, 62, 61, 56, 63, 91, 64, 58, 67, 87, 68, 81, 59, 63, 72, 57, 69, 52, 49, 80, 64, 69, 65, 58, 54, 53, 54, 60, 62, 68, 64, 69, 66, 73, 57, 45, 51, 57, 62, 57, 83, 64, 50, 58, 57, 71, 101, 54, 77, 79, 43, 57, 78, 36, 50, 64, 66, 97, 70, 59, 65, 69, 66, 83, 86, 51, 50, 54, 78, 62, 71, 68, 52, 58, 70, 59, 51, 44, 100, 48, 65, 67, 68, 77, 77, 75, 81, 56, 54, 71, 54, 71, 53, 59, 52, 70, 86, 54, 74, 68, 70, 65, 73, 69, 56, 62, 81, 51, 49, 69, 80, 73, 65, 48, 62, 110, 68, 63, 37, 48, 60, 47, 56, 55, 79, 56, 88, 69, 61, 57, 87, 54, 61, 53, 62, 52, 72, 48, 70, 65, 66, 80, 70, 49, 64, 55, 55, 66, 64, 73, 67, 66, 79, 68, 64, 66, 45, 84, 65, 52, 63, 77, 83, 60, 59, 48, 64, 58, 82, 61, 60, 68, 66, 67, 70, 67, 56, 58, 44, 68, 62, 70, 66, 65, 72, 77, 103, 45, 67, 49, 76, 52, 60, 71, 71, 64, 69, 58, 60, 64, 62, 73, 84, 62, 63, 82, 88, 81, 59, 73, 48, 57, 57, 61, 64, 45, 49, 70, 67, 63, 43, 50, 58, 59, 84, 50, 46, 68, 61, 62, 103, 68, 69, 71, 86, 64, 66, 68, 74, 64, 73, 67, 65, 74, 61, 76, 69, 72, 75, 52, 63, 67, 75, 57, 53, 75, 90, 62, 44, 58, 73, 52, 71, 40, 58, 77, 72, 59, 56, 72, 65, 68, 88, 58, 67, 68, 59, 83, 69, 63, 65, 92, 56, 75, 59, 102, 62, 72, 82, 44, 61, 60, 68, 56, 54, 83, 90, 72, 111, 74, 60, 56, 65, 54, 81, 63, 66, 68, 63, 55, 79, 81, 66, 52, 61, 84, 91, 81, 69, 68, 68, 74, 73, 96, 60, 50, 73, 48, 59, 84, 40, 48, 60, 70, 63, 57, 72, 49, 53, 61, 56, 50, 62, 83, 67, 65, 73, 74, 51, 56, 67, 87, 67, 61, 45, 54, 65, 52, 53, 53, 60, 70, 60, 65, 76, 66, 60, 67, 62, 68, 81, 61, 63, 79, 74, 56, 68, 30, 56, 74, 53, 59, 68, 80, 60, 59, 69, 78, 58, 72, 65, 52, 50, 66, 57, 72, 56, 60, 68, 52, 62, 73, 67, 70, 62, 63, 67, 67, 67, 103, 43, 61, 62, 52, 72, 82, 52, 71, 70, 66, 56, 58, 69, 86, 62, 48, 52, 51, 47, 40, 61, 60, 61, 81, 72, 70, 54, 61, 87, 85, 88, 70, 70, 77, 78, 64, 65, 67, 78, 81, 67, 64, 77, 67, 85, 72, 76, 70, 56, 49, 61, 65, 71, 45, 64, 53, 70, 71, 49, 63, 53, 37, 57, 88, 66, 57, 127, 58, 46, 70, 60, 53, 90, 62, 67, 76, 68, 67, 104, 63, 58, 31, 85, 64, 75, 67, 66, 67, 67, 73, 118, 46, 64, 80, 54, 76, 54, 59, 67, 60, 55, 77, 105, 62, 59, 58, 74, 69, 57, 66, 59, 66, 70, 66, 90, 62, 64, 55, 75, 78, 78, 81, 89, 73, 61, 65, 65, 121, 54, 68, 89, 67, 61, 56, 47, 58, 67, 57, 80, 60, 79, 85, 46, 45, 70, 64, 71, 79, 64, 82, 146, 91, 70, 60, 66, 67, 58, 65, 65, 43, 64, 88, 60, 65, 67, 67, 74, 67, 66, 94, 68, 63, 63, 60, 60, 36, 79, 66, 94, 70, 66, 58, 48, 57, 60, 51, 69, 62, 41, 86, 51, 85, 100, 77, 63, 50, 55, 60, 78, 76, 62, 67, 119, 60, 90, 83, 74, 57, 66, 62, 42, 56, 63, 81, 48, 66, 50, 56, 89, 69, 85, 50, 88, 65, 48, 70, 65, 95, 51, 61, 71, 80, 71, 47, 64, 50, 67, 51, 91, 91, 69, 55, 65, 47, 42, 76, 56, 60, 73, 82, 61, 84, 67, 66, 72, 55, 47, 50, 59, 75, 47, 49, 55, 120, 50, 47, 126, 81, 55, 67, 44, 60, 68, 69, 52, 77, 45, 59, 66, 78, 76, 83, 54, 75, 65, 84, 53, 50, 68, 52, 54, 82, 58, 61, 88, 69, 60, 57, 59, 53, 61, 55, 71, 63, 41, 70, 72, 55, 85, 44, 62, 82, 72, 81, 59, 88, 70, 58, 102, 53, 79, 74, 66, 75, 70, 75, 71, 60, 39, 71, 74, 60, 31, 41, 49, 67, 76, 61, 80, 65, 60, 76, 62, 73, 71, 71, 61, 108, 61, 74, 55, 134, 54, 42, 75, 67, 47, 45, 60, 57, 45, 50, 72, 75, 83, 64, 69, 67, 62, 62, 59, 67, 52, 71, 95, 63, 60, 75, 64, 88, 80, 64, 74, 66, 108, 50, 63, 56, 58, 62, 118, 57, 54, 52, 53, 59, 59, 50, 53, 90, 88, 73, 53, 82, 60, 74, 53, 76, 84, 65, 51, 61, 56, 54, 67, 56, 80, 62, 52, 48, 77, 59, 67, 69, 45, 76, 60, 43, 96, 61, 71, 33, 67, 77, 96, 54, 67, 55, 66, 42, 77, 54, 70, 152, 68, 60, 114, 72, 50, 71, 57, 52, 102, 68, 66, 69, 68, 69, 77, 83, 55, 46, 62, 55, 72, 59, 52, 53, 70, 64, 52, 58, 40, 49, 54, 63, 57, 58, 52, 78, 58, 47, 56, 57, 78, 73, 60, 56, 57, 54, 61, 97, 54, 68, 70, 56, 59, 61, 58, 54, 62, 68, 66, 67, 86, 77, 54, 70, 70, 79, 56, 60, 74, 59, 86, 54, 57, 68, 57, 50, 60, 73, 74, 62, 74, 56, 69, 98, 30, 58, 72, 53, 78, 62, 70, 94, 79, 72, 68, 59, 72, 60, 57, 61, 59, 60, 65, 64, 75, 55, 44, 66, 76, 80, 50, 67, 63, 61, 86, 59, 74, 66, 68, 48, 57, 55, 50, 59, 55, 71, 69, 87, 71, 96, 81, 86, 36, 66, 57, 55, 52, 61, 77, 47, 66, 28, 56, 77, 74, 66, 101, 95, 60, 63, 71, 51, 70, 57, 61, 47, 66, 66, 55, 76, 69, 61, 68, 49, 74, 64, 60, 84, 110, 68, 57, 70, 61, 71, 68, 65, 72, 68, 55, 62, 74, 106, 64, 61, 65, 58, 49, 78, 65, 60, 56, 115, 73, 56, 68, 64, 67, 82, 47, 42, 70, 72, 66, 54, 72, 54, 72, 59, 75, 62, 85, 59, 51, 111, 80, 48, 65, 63, 69, 54, 65, 92, 58, 96, 57, 47, 60, 63, 58, 71, 67, 60, 78, 66, 54, 52, 47, 60, 58, 61, 134, 68, 73, 68, 74, 71, 63, 49, 62, 52, 42, 56, 96, 50, 80, 46, 80, 62, 57, 63, 87, 71, 72, 74, 76, 54, 71, 47, 72, 62, 74, 77, 72, 65, 67, 60, 59, 61, 56, 78, 56, 80, 78, 95, 73, 69, 82, 78, 75, 45, 81, 51, 82, 77, 84, 71, 57, 71, 67, 65, 63, 70, 66, 65, 75, 64, 44, 82, 62, 55, 51, 70, 58, 62, 58, 80, 61, 67, 60, 61, 61, 76, 57, 78, 74, 58, 62, 57, 54, 72, 61, 54, 56, 39, 75, 102, 85, 62, 65, 81, 54, 64, 54, 62, 44, 56, 55, 76, 56, 68, 53, 61, 80, 54, 58, 78, 50, 105, 68, 68, 47, 58, 54, 66, 78, 86, 68, 85, 47, 69, 56, 59, 60, 64, 69, 68, 76, 78, 69, 68, 39, 60, 78, 89, 73, 57, 52, 75, 50, 57, 64, 79, 71, 70, 61, 53, 74, 71, 51, 59, 70, 59, 65, 73, 54, 53, 74, 61, 63, 97, 60, 67, 60, 61, 61, 71, 82, 34, 56, 50, 59, 59, 67, 59, 65, 83, 84, 63, 68, 61, 69, 69, 37, 46, 56, 50, 68, 64, 52, 66, 52, 51, 44, 59, 65, 70, 69, 68, 48, 51, 51, 78, 61, 56, 67, 74, 62, 61, 78, 57, 63, 44, 64, 55, 68, 66, 75, 67, 63, 78, 65, 68, 50, 70, 49, 59, 80, 65, 62, 61, 69, 56, 76, 83, 78, 56, 82, 49, 48, 66, 61, 57, 51, 53, 60, 65, 65, 123, 70, 63, 62, 72, 77, 76, 67, 69, 50, 47, 80, 53, 67, 67, 54, 65, 70, 70, 51, 67, 85, 78, 50, 76, 85, 73, 58, 52, 71, 71, 59, 57, 74, 62, 63, 88, 71, 71, 60, 64, 65, 70, 84, 63, 70, 67, 56, 75, 73, 57, 81, 78, 80, 63, 61, 74, 57, 68, 117, 49, 64, 50, 54, 53, 74, 50, 77, 50, 71, 59, 48, 57, 147, 64, 66, 62, 63, 69, 58, 88, 62, 81, 70, 66, 66, 101, 66, 81, 85, 59, 48, 67, 83, 73, 63, 59, 51, 80, 94, 87, 61, 61, 78, 42, 64, 81, 65, 46, 68, 59, 73, 62, 60, 68, 62, 79, 52, 61, 59, 61, 86, 50, 57, 68, 54, 74, 53, 53, 51, 61, 79, 76, 78, 53, 46, 87, 42, 77, 25, 65, 57, 54, 84, 90, 56, 62, 55, 82, 57, 52, 77, 60, 52, 69, 100, 98, 58, 72, 50, 66, 86, 44, 57, 99, 72, 47, 65, 60, 46, 42, 64, 72, 54, 84, 76, 69, 55, 67, 56, 100, 71, 63, 73, 83, 75, 83, 80, 73, 53, 91, 45, 53, 55, 97, 68, 54, 67, 82, 60, 45, 65, 71, 67, 56, 73, 69, 62, 78, 60, 59, 65, 80, 64, 41, 57, 57, 65, 50, 78, 60, 54, 72, 72, 53, 76, 51, 76, 59, 58, 67, 63, 67, 74, 66, 65, 61, 59, 74, 85, 65, 68, 45, 78, 56, 81, 61, 69, 85, 65, 61, 60, 57, 73, 80, 71, 45, 52, 56, 57, 47, 66, 82, 77, 64, 50, 58, 82, 71, 78, 89, 37, 64, 70, 61, 66, 62, 63, 65, 53, 56, 53, 74, 72, 53, 64, 60, 51, 60, 69, 72, 70, 63, 71, 64, 59, 89, 80, 74, 61, 76, 80, 70, 58, 61, 57, 68, 60, 65, 60, 74, 65, 54, 58, 82, 70, 98, 63, 90, 49, 64, 57, 77, 57, 65, 66, 64, 74, 56, 88, 65, 54, 56, 88, 48, 51, 61, 80, 44, 37, 41, 65, 51, 59, 81, 65, 55, 67, 76, 69, 74, 46, 87, 74, 89, 56, 58, 54, 87, 98, 69, 54, 53, 69, 67, 66, 101, 66, 73, 64, 46, 59, 75, 75, 59, 67, 74, 71, 79, 80, 75, 53, 95, 72, 40, 74, 88, 63, 48, 64, 56, 43, 94, 51, 92, 60, 119, 73, 59, 50, 78, 53, 61, 43, 98, 64, 63, 88, 48, 61, 72, 55, 61, 62, 51, 45, 60, 61, 61, 54, 55, 50, 57, 65, 54, 67, 69, 49, 80, 74, 109, 59, 73, 60, 76, 66, 62, 56, 85, 59, 72, 72, 52, 61, 65, 60, 63, 57, 60, 63, 59, 68, 65, 64, 58, 69, 59, 60, 63, 66, 57, 80, 65, 57, 61, 51, 63, 60, 69, 83, 52, 59, 74, 60, 73, 59, 86, 71, 62, 63, 76, 95, 87, 103, 58, 61, 53, 68, 72, 70, 64, 76, 51, 57, 66, 60, 67, 73, 65, 65, 74, 60, 63, 65, 78, 70, 60, 51, 50, 50, 86, 59, 69, 60, 61, 78, 66, 63, 81, 69, 59, 61, 68, 76, 85, 85, 67, 66, 43, 83, 64, 50, 64, 93, 61, 45, 63, 66, 70, 66, 99, 82, 55, 55, 75, 58, 62, 157, 63, 66, 81, 56, 86, 72, 72, 60, 79, 61, 62, 63, 69, 54, 74, 56, 57, 75, 95, 73, 55, 54, 51, 60, 72, 64, 80, 70, 64, 105, 70, 60, 77, 66, 70, 56, 71, 74, 77, 71, 60, 67, 52, 54, 76, 57, 43, 45, 51, 56, 46, 62, 89, 64, 57, 56, 85, 68, 59, 75, 75, 54, 77, 61, 71, 55, 69, 72, 75, 76, 75, 56, 66, 86, 60, 54, 44, 49, 62, 65, 55, 65, 52, 78, 52, 67, 75, 68, 59, 68, 83, 68, 65, 79, 69, 59, 59, 71, 52, 56, 85, 68, 60, 61, 53, 78, 66, 66, 71, 73, 85, 69, 66, 61, 60, 65, 51, 71, 65, 54, 93, 80, 68, 71, 71, 53, 56, 68, 63, 76, 59, 66, 77, 80, 64, 103, 86, 52, 82, 74, 74, 74, 66, 82, 76, 86, 72, 50, 75, 64, 62, 75, 52, 54, 73, 70, 79, 74, 66, 63, 85, 77, 71, 66, 62, 55, 71, 64, 59, 64, 50, 64, 63, 59, 76, 82, 75, 67, 51, 60, 56, 73, 97, 50, 67, 74, 74, 73, 68, 86, 86, 58, 60, 71, 60, 56, 62, 91, 57, 75, 68, 58, 67, 80, 63, 65, 50, 64, 61, 78, 60, 67, 50, 50, 61, 77, 67, 63, 53, 63, 82, 58, 57, 120, 64, 76, 59, 58, 77, 81, 61, 76, 57, 50, 62, 65, 82, 75, 62, 72, 44, 60, 63, 66, 43, 60, 66, 75, 52, 60, 72, 55, 69, 48, 79, 73, 54, 75, 73, 53, 84, 61, 45, 81, 77, 54, 77, 70, 56, 67, 53, 80, 82, 63, 75, 64, 61, 68, 63, 58, 66, 51, 76, 54, 52, 72, 60, 40, 47, 82, 60, 70, 81, 58, 59, 55, 68, 62, 51, 64, 75, 60, 76, 58, 66, 51, 57, 63, 116, 61, 64, 64, 41, 61, 84, 62, 57, 82, 92, 69, 59, 56, 79, 57, 80, 67, 66, 74, 71, 58, 59, 93, 74, 56, 57, 65, 57, 51, 58, 65, 53, 76, 64, 37, 86, 79, 77, 57, 60, 57, 66, 57, 57, 57, 58, 58, 63, 75, 73, 83, 56, 60, 56, 59, 67, 61, 66, 50, 53, 69, 70, 80, 56, 68, 89, 54, 54, 94, 72, 78, 65, 69, 60, 69, 66, 82, 62, 70, 58, 75, 68, 55, 57, 64, 49, 87, 72, 73, 68, 58, 82, 48, 56, 78, 56, 64, 70, 58, 76, 49, 66, 49, 57, 52, 83, 89, 62, 58, 67, 63, 58, 66, 64, 66, 62, 62, 81, 48, 80, 71, 76, 60, 61, 68, 71, 58, 63, 51, 49, 76, 89, 69, 59, 93, 67, 64, 77, 58, 55, 74, 65, 53, 56, 54, 62, 60, 57, 52, 61, 60, 62, 62, 87, 74, 75, 59, 84, 64, 67, 60, 62, 56, 55, 57, 62, 73, 51, 72, 86, 81, 74, 65, 55, 69, 61, 63, 76, 59, 62, 58, 71, 51, 64, 64, 90, 122, 59, 57, 63, 59, 61, 79, 58, 67, 89, 68, 55, 65, 64, 73, 77, 78, 72, 65, 68, 68, 73, 58, 59, 58, 63, 69, 65, 64, 70, 48, 53, 70, 74, 67, 65, 74, 82, 42, 59, 69, 61, 62, 73, 71, 80, 64, 68, 50, 58, 113, 84, 73, 52, 77, 62, 61, 77, 98, 67, 63, 59, 61, 65, 88, 62, 63, 60, 62, 58, 60, 62, 45, 56, 57, 73, 59, 104, 45, 61, 71, 49, 70, 53, 55, 69, 89, 74, 65, 64, 65, 67, 65, 52, 74, 59, 53, 73, 59, 57, 83, 52, 107, 70, 59, 50, 45, 65, 51, 68, 91, 67, 71, 58, 76, 75, 70, 67, 79, 70, 58, 86, 47, 69, 62, 57, 72, 67, 60, 56, 75, 56, 59, 88, 60, 65, 60, 51, 77, 70, 104, 65, 66, 82, 76, 62, 52, 110, 65, 52, 53, 66, 68, 58, 74, 77, 125, 58, 49, 72, 68, 85, 51, 60, 68, 53, 71, 54, 50, 61, 66, 91, 63, 72, 41, 72, 87, 62, 54, 63, 75, 57, 57, 63, 55, 64, 82, 60, 73, 86, 51, 69, 54, 57, 80, 71, 72, 63, 64, 66, 57, 71, 71, 64, 73, 60, 62, 76, 71, 69, 63, 66, 74, 55, 100, 69, 71, 68, 75, 72, 70, 55, 77, 52, 50, 61, 59, 49, 97, 64, 60, 89, 60, 59, 52, 70, 78, 68, 84, 63, 68, 69, 80, 72, 56, 54, 65, 61, 64, 54, 51, 52, 134, 81, 54, 38, 63, 47, 60, 54, 51, 59, 57, 65, 70, 75, 46, 62, 68, 49, 62, 72, 74, 54, 79, 68, 58, 58, 75, 63, 52, 59, 69, 66, 64, 87, 71, 65, 52, 66, 56, 65, 53, 65, 59, 65, 61, 75, 66, 67, 59, 55, 67, 68, 59, 69, 65, 68, 98, 65, 61, 81, 49, 76, 52, 77, 60, 69, 79, 53, 61, 100, 57, 63, 42, 57, 70, 63, 54, 65, 54, 65, 63, 69, 74, 69, 66, 58, 71, 69, 59, 61, 62, 71, 64, 58, 82, 68, 69, 74, 55, 66, 64, 61, 72, 79, 91, 79, 48, 72, 67, 58, 60, 61, 64, 41, 61, 58, 72, 89, 75, 59, 80, 77, 75, 64, 64, 67, 90, 56, 62, 72, 59, 74, 60, 65, 69, 69, 46, 68, 59, 86, 48, 61, 60, 62, 66, 93, 61, 65, 76, 86, 79, 58, 61, 56, 67, 51, 50, 66, 54, 62, 67, 66, 56, 73, 59, 77, 75, 58, 67, 129, 75, 51, 61, 87, 58, 60, 91, 61, 64, 65, 75, 64, 66, 64, 69, 80, 71, 60, 69, 69, 64, 79, 54, 64, 80, 50, 70, 55, 63, 72, 53, 59, 65, 66, 54, 61, 49, 69, 73, 59, 64, 57, 72, 75, 61, 57, 71, 78, 55, 80, 79, 63, 64, 69, 75, 83, 59, 59, 77, 69, 65, 61, 55, 67, 69, 57, 62, 68, 58, 75, 63, 73, 52, 57, 62, 63, 48, 53, 65, 60, 79, 80, 50, 61, 54, 56, 64, 66, 75, 65, 50, 66, 70, 67, 97, 70, 79, 59, 61, 59, 74, 75, 90, 58, 61, 61, 69, 58, 54, 57, 50, 51, 62, 63, 56, 59, 65, 66, 59, 130, 57, 63, 61, 70, 69, 41, 66, 62, 72, 54, 57, 73, 74, 74, 59, 66, 75, 64, 61, 60, 72, 56, 59, 66, 71, 65, 68, 59, 64, 50, 75, 60, 77, 81, 100, 60, 84, 56, 56, 58, 59, 65, 61, 59, 63, 76, 69, 70, 64, 75, 67, 65, 58, 67, 67, 76, 59, 76, 63, 53, 65, 67, 72, 82, 59, 74, 65, 62, 68, 76, 76, 70, 65, 58, 50, 57, 50, 73, 54, 57, 66, 55, 67, 67, 74, 53, 113, 84, 66, 69, 63, 70, 80, 61, 56, 66, 74, 64, 66, 45, 59, 73, 63, 82, 66, 40, 63, 59, 61, 80, 55, 64, 65, 71, 55, 62, 53, 66, 76, 57, 56, 67, 67, 59, 59, 53, 74, 60, 54, 58, 67, 83, 73, 73, 77, 62, 61, 70, 58, 71, 69, 69, 59, 69, 59, 71, 64, 69, 57, 59, 73, 58, 71, 66, 63, 54, 39, 56, 67, 76, 57, 58, 74, 75, 61, 185, 69, 63, 72, 67, 61, 58, 68, 65, 60, 62, 59, 63, 69, 77, 70, 64, 64, 57, 59, 65, 79, 65, 54, 57, 44, 70, 54, 73, 73, 65, 63, 55, 51, 74, 65, 67, 56, 65, 65, 51, 77, 112, 58, 70, 93, 82, 73, 59, 87, 85, 64, 76, 65, 58, 56, 58, 49, 67, 66, 61, 64, 80, 80, 72, 79, 68, 72, 66, 73, 98, 65, 67, 55, 49, 83, 50, 66, 72, 75, 73, 63, 68, 56, 73, 66, 68, 58, 59, 86, 48, 57, 92, 64, 59, 64, 49, 61, 63, 62, 73, 71, 94, 68, 55, 61, 73, 96, 70, 49, 49, 62, 59, 67, 65, 82, 86, 66, 66, 58, 65, 72, 53, 74, 64, 67, 53, 79, 71, 66, 73, 56, 70, 64, 67, 71, 99, 70, 55, 67, 63, 60, 57, 64, 56, 53, 50, 70, 69, 45, 51, 68, 68, 60, 59, 68, 71, 86, 58, 104, 71, 68, 99, 65, 52, 99, 57, 55, 62, 57, 52, 58, 61, 57, 48, 58, 78, 65, 56, 58, 65, 60, 75, 68, 62, 68, 72, 64, 59, 68, 64, 89, 68, 63, 67, 82, 65, 66, 57, 60, 68, 68, 64, 56, 59, 46, 56, 71, 59, 100, 58, 58, 71, 64, 59, 58, 49, 64, 54, 66, 60, 86, 58, 60, 60, 59, 75, 68, 57, 83, 66, 69, 54, 54, 55, 49, 58, 73, 81, 94, 80, 69, 48, 69, 72, 78, 73, 58, 54, 78, 71, 76, 76, 71, 55, 71, 69, 66, 64, 82, 43, 59, 56, 57, 54, 94, 60, 86, 64, 52, 95, 58, 56, 57, 63, 64, 65, 55, 59, 68, 56, 51, 65, 81, 73, 57, 62, 59, 71, 69, 68, 54, 59, 62, 65, 58, 60, 63, 90, 56, 81, 77, 64, 69, 46, 57, 59, 61, 76, 78, 54, 62, 70, 71, 50, 55, 39, 72, 68, 91, 68, 57, 62, 77, 57, 76, 61, 64, 57, 69, 64, 71, 81, 60, 72, 68, 60, 58, 50, 58, 51, 70, 67, 71, 63, 74, 59, 67, 67, 63, 58, 121, 63, 83, 114, 61, 67, 56, 69, 81, 48, 63, 64, 67, 93, 62, 74, 88, 57, 68, 67, 55, 57, 62, 61, 72, 56, 61, 100, 55, 65, 60, 52, 57, 78, 65, 50, 55, 58, 73, 50, 57, 58, 62, 69, 66, 81, 69, 59, 65, 64, 65, 60, 59, 69, 54, 74, 65, 60, 70, 54, 55, 68, 40, 75, 70, 71, 66, 74, 62, 76, 56, 64, 72, 60, 67, 66, 62, 61, 60, 72, 80, 82, 64, 64, 63, 65, 63, 56, 73, 72, 59, 49, 55, 50, 59, 58, 52, 113, 68, 50, 61, 59, 73, 63, 70, 62, 59, 51, 74, 62, 56, 139, 61, 70, 57, 67, 49, 58, 59, 60, 62, 58, 61, 62, 66, 62, 67, 71, 71, 52, 67, 63, 77, 125, 50, 61, 69, 119, 74, 64, 54, 66, 68, 71, 59, 80, 60, 56, 75, 105, 68, 53, 83, 67, 69, 58, 54, 68, 66, 84, 71, 57, 67, 78, 54, 64, 95, 56, 59, 68, 60, 46, 85, 62, 66, 55, 60, 56, 68, 58, 53, 52, 60, 61, 61, 63, 61, 79, 60, 57, 78, 69, 73, 81, 66, 65, 74, 62, 54, 62, 61, 54, 56, 63, 69, 52, 68, 83, 70, 67, 110, 70, 83, 81, 83, 68, 57, 68, 53, 64, 66, 53, 58, 62, 75, 51, 59, 38, 73, 63, 67, 60, 62, 58, 63, 58, 72, 96, 53, 72, 74, 50, 63, 56, 58, 64, 59, 44, 63, 61, 58, 64, 64, 64, 65, 51, 60, 68, 58, 62, 51, 64, 46, 67, 59, 57, 53, 59, 58, 58, 66, 53, 63, 59, 58, 62, 47, 70, 68, 66, 59, 113, 65, 61, 75, 65, 68, 56, 66, 70, 59, 54, 56, 74, 71, 73, 142, 63, 84, 62, 66, 61, 62, 74, 63, 46, 61, 57, 58, 69, 65, 75, 47, 73, 65, 55, 78, 60, 63, 58, 62, 61, 100, 64, 58, 75, 59, 60, 51, 61, 62, 50, 62, 67, 38, 57, 86, 96, 78, 70, 45, 80, 72, 65, 63, 71, 72, 50, 56, 64, 69, 66, 61, 71, 64, 64, 70, 60, 61, 83, 55, 55, 61, 58, 60, 59, 68, 58, 56, 61, 62, 84, 65, 67, 64, 57, 79, 59, 72, 56, 55, 65, 63, 59, 79, 74, 88, 53, 51, 60, 65, 81, 64, 67, 55, 82, 48, 65, 96, 58, 63, 64, 52, 59, 58, 81, 53, 94, 62, 89, 61, 65, 69, 84, 51, 71, 62, 59, 71, 61, 61, 64, 61, 61, 92, 67, 70, 65, 61, 64, 56, 59, 63, 53, 58, 62, 63, 65, 69, 58, 56, 67, 59, 72, 74, 52, 84, 67, 71, 78, 63, 82, 53, 61, 63, 83, 73, 60, 72, 71, 61, 92, 71, 91, 82, 57, 66, 49, 69, 63, 73, 53, 68, 65, 60, 71, 65, 66, 60, 62, 76, 60, 69, 64, 59, 69, 76, 56, 60, 58, 65, 64, 65, 88, 79, 60, 54, 51, 84, 70, 73, 84, 61, 57, 57, 76, 55, 41, 58, 69, 61, 66, 64, 68, 50, 87, 61, 95, 54, 57, 66, 72, 62, 60, 57, 68, 75, 59, 97, 52, 58, 53, 63, 60, 43, 62, 50, 75, 82, 68, 67, 58, 99, 67, 60, 56, 80, 61, 57, 57, 52, 63, 65, 69, 59, 52, 62, 62, 118, 57, 54, 75, 59, 64, 76, 90, 60, 73, 68, 70, 61, 68, 87, 51, 58, 60, 74, 70, 55, 52, 64, 115, 48, 103, 57, 84, 68, 71, 75, 75, 64, 63, 66, 81, 119, 67, 67, 63, 63, 58, 63, 59, 80, 74, 72, 61, 62, 54, 79, 63, 72, 61, 65, 57, 69, 60, 65, 66, 69, 70, 63, 67, 67, 52, 56, 63, 76, 58, 59, 48, 42, 72, 76, 50, 61, 60, 82, 51, 64, 55, 86, 66, 61, 60, 54, 68, 58, 72, 69, 64, 81, 56, 52, 63, 64, 62, 61, 59, 54, 64, 85, 67, 45, 62, 55, 48, 50, 68, 72, 55, 65, 63, 76, 76, 57, 69, 64, 58, 70, 59, 79, 67, 62, 57, 78, 62, 76, 68, 68, 66, 64, 56, 68, 50, 72, 93, 65, 80, 90, 70, 64, 63, 62, 57, 63, 67, 79, 53, 58, 63, 58, 65, 77, 68, 73, 80, 81, 61, 66, 64, 69, 63, 79, 65, 57, 70, 66, 64, 54, 61, 55, 69, 63, 62, 76, 59, 69, 56, 62, 58, 61, 73, 59, 62, 69, 93, 63, 59, 68, 73, 60, 74, 64, 60, 63, 75, 59, 54, 81, 59, 52, 63, 43, 60, 61, 60, 55, 77, 71, 66, 77, 53, 61, 59, 54, 57, 55, 61, 49, 60, 112, 52, 73, 60, 61, 70, 81, 58, 60, 53, 60, 67, 58, 60, 56, 62, 63, 49, 72, 70, 67, 70, 70, 65, 60, 71, 61, 65, 62, 69, 77, 82, 64, 49, 93, 62, 54, 61, 63, 58, 71, 52, 63, 63, 57, 64, 61, 65, 42, 70, 79, 78, 81, 65, 58, 78, 52, 69, 61, 61, 62, 66, 62, 65, 65, 60, 61, 65, 59, 62, 109, 84, 79, 60, 77, 60, 59, 55, 85, 79, 68, 70, 66, 70, 72, 56, 64, 81, 74, 72, 59, 57, 58, 59, 67, 67, 69, 91, 50, 61, 62, 64, 85, 50, 70, 62, 68, 75, 57, 69, 64, 63, 80, 60, 71, 61, 53, 68, 73, 56, 80, 60, 60, 57, 59, 72, 67, 65, 63, 66, 86, 75, 87, 69, 58, 51, 66, 56, 69, 63, 60, 63, 84, 67, 57, 73, 70, 69, 65, 59, 52, 54, 80, 67, 65, 69, 77, 61, 64, 61, 84, 62, 56, 62, 97, 76, 77, 73, 57, 65, 68, 64, 61, 56, 61, 60, 54, 71, 66, 63, 56, 70, 70, 70, 64, 77, 62, 64, 53, 63, 82, 67, 74, 67, 66, 61, 53, 76, 68, 67, 56, 63, 59, 58, 64, 56, 56, 78, 119, 58, 59, 66, 53, 57, 83, 51, 58, 60, 50, 66, 62, 63, 53, 56, 58, 59, 83, 62, 72, 63, 81, 54, 78, 60, 53, 72, 62, 93, 68, 57, 58, 59, 69, 69, 97, 46, 129, 62, 52, 53, 53, 56, 59, 100, 59, 67, 79, 63, 64, 50, 60, 63, 59, 65, 70, 60, 71, 81, 58, 56, 73, 68, 74, 54, 72, 73, 50, 73, 72, 65, 57, 67, 74, 73, 97, 53, 51, 71, 65, 59, 90, 77, 75, 78, 67, 61, 86, 57, 70, 53, 60, 78, 60, 80, 75, 63, 88, 72, 65, 65, 57, 61, 65, 80, 60, 69, 58, 67, 59, 100, 69, 63, 49, 61, 126, 65, 67, 48, 77, 69, 61, 49, 55, 49, 69, 47, 57, 60, 53, 64, 57, 85, 64, 72, 60, 60, 53, 55, 60, 59, 56, 61, 59, 95, 60, 83, 56, 58, 71, 63, 61, 68, 50, 87, 55, 73, 71, 56, 57, 63, 67, 60, 73, 62, 67, 59, 60, 61, 71, 75, 59, 57, 58, 55, 53, 62, 63, 67, 72, 109, 58, 66, 109, 87, 61, 63, 63, 66, 64, 66, 52, 47, 57, 77, 64, 44, 53, 58, 61, 63, 54, 71, 56, 46, 60, 71, 91, 65, 70, 60, 66, 68, 64, 79, 69, 70, 66, 62, 63, 52, 63, 61, 70, 53, 67, 48, 62, 59, 51, 68, 55, 60, 82, 89, 61, 78, 55, 48, 58, 68, 62, 90, 65, 59, 58, 63, 67, 63, 54, 55, 83, 69, 67, 63, 55, 79, 56, 64, 69, 75, 69, 61, 64, 60, 65, 63, 68, 51, 53, 72, 78, 63, 59, 62, 46, 69, 67, 52, 61, 64, 65, 62, 59, 60, 65, 59, 65, 57, 69, 96, 71, 68, 72, 75, 77, 76, 61, 72, 81, 64, 63, 65, 66, 74, 76, 61, 64, 64, 67, 58, 89, 69, 62, 62, 72, 75, 62, 64, 53, 88, 70, 69, 60, 61, 57, 59, 64, 60, 70, 62, 65, 64, 68, 77, 59, 108, 64, 88, 52, 53, 61, 59, 79, 62, 67, 62, 66, 62, 63, 74, 62, 54, 60, 57, 80, 62, 52, 68, 75, 66, 69, 60, 67, 59, 55, 65, 54, 58, 76, 59, 57, 65, 77, 79, 51, 60, 66, 66, 59, 56, 84, 54, 76, 56, 52, 64, 52, 65, 62, 56, 58, 61, 58, 60, 64, 63, 66, 64, 60, 69, 66, 53, 63, 89, 63, 65, 59, 54, 69, 77, 53, 66, 60, 65, 81, 81, 68, 60, 59, 70, 67, 50, 75, 67, 69, 53, 69, 64, 66, 77, 77, 56, 52, 57, 114, 66, 52, 61, 53, 67, 60, 52, 67, 61, 62, 55, 69, 66, 47, 61, 67, 49, 68, 64, 63, 62, 65, 58, 90, 57, 59, 56, 63, 50, 61, 62, 65, 51, 69, 64, 76, 61, 61, 82, 69, 64, 71, 59, 57, 68, 55, 69, 75, 57, 64, 57, 60, 64, 67, 59, 62, 60, 95, 49, 62, 73, 69, 73, 60, 45, 63, 78, 74, 90, 50, 56, 43, 45, 53, 58, 54, 75, 84, 82, 103, 62, 56, 63, 61, 80, 66, 65, 52, 64, 65, 58, 79, 58, 69, 69, 60, 58, 126, 83, 54, 62, 61, 63, 73, 67, 65, 66, 67, 52, 56, 67, 69, 77, 75, 56, 89, 45, 67, 66, 56, 78, 52, 55, 72, 59, 81, 59, 59, 51, 62, 51, 54, 59, 62, 71, 76, 48, 70, 61, 62, 53, 91, 70, 54, 68, 58, 64, 65, 59, 60, 60, 60, 68, 59, 64, 56, 52, 133, 63, 52, 66, 63, 59, 68, 71, 81, 57, 62, 57, 132, 55, 60, 58, 49, 51, 55, 52, 68, 117, 53, 64, 65, 72, 45, 65, 54, 66, 74, 59, 55, 57, 56, 67, 123, 61, 51, 76, 64, 74, 61, 53, 63, 57, 52, 66, 64, 65, 80, 56, 73, 54, 62, 64, 64, 57, 69, 54, 137, 100, 65, 63, 116, 60, 57, 87, 64, 60, 62, 64, 64, 75, 58, 68, 65, 65, 56, 82, 56, 56, 63, 50, 62, 73, 63, 62, 67, 75, 59, 59, 64, 80, 53, 65, 65, 58, 63, 53, 70, 77, 84, 60, 71, 58, 61, 66, 51, 67, 63, 60, 67, 61, 59, 57, 64, 73, 77, 77, 49, 65, 108, 49, 54, 63, 58, 58, 62, 69, 68, 66, 58, 67, 59, 57, 127, 48, 55, 52, 52, 77, 64, 69, 74, 64, 57, 57, 73, 59, 72, 63, 80, 62, 61, 69, 61, 86, 59, 64, 116, 70, 57, 48, 61, 72, 59, 56, 63, 90, 77, 55, 74, 75, 53, 74, 64, 67, 69, 79, 69, 59, 87, 54, 66, 66, 58, 87, 64, 62, 62, 76, 58, 59, 81, 65, 60, 58, 52, 56, 66, 49, 77, 55, 53, 57, 68, 55, 87, 64, 58, 56, 55, 64, 67, 69, 60, 76, 52, 66, 70, 59, 101, 58, 80, 66, 67, 54, 55, 59, 55, 95, 71, 71, 59, 67, 54, 57, 60, 69, 66, 55, 59, 61, 67, 58, 61, 53, 62, 62, 71, 62, 42, 81, 61, 63, 90, 64, 62, 88, 59, 57, 64, 62, 59, 59, 60, 68, 90, 72, 58, 68, 64, 58, 58, 65, 90, 49, 75, 63, 85, 60, 68, 59, 68, 62, 55, 65, 66, 60, 62, 57, 61, 67, 70, 57, 66, 73, 67, 85, 66, 77, 57, 72, 55, 67, 67, 68, 64, 60, 71, 59, 64, 60, 64, 62, 58, 52, 68, 78, 57, 56, 64, 64, 60, 53, 69, 62, 98, 80, 59, 90, 60, 62, 56, 53, 64, 64, 55, 56, 84, 56, 57, 62, 54, 68, 57, 52, 57, 83, 63, 63, 74, 48, 73, 47, 96, 63, 80, 61, 55, 57, 65, 53, 70, 70, 94, 70, 85, 71, 61, 62, 56, 90, 82, 59, 68, 67, 55, 64, 77, 60, 73, 62, 62, 69, 64, 61, 79, 64, 55, 60, 59, 74, 57, 53, 61, 57, 48, 80, 54, 92, 57, 67, 68, 79, 50, 51, 64, 68, 71, 73, 60, 60, 91, 59, 58, 62, 67, 61, 62, 54, 57, 62, 68, 52, 68, 63, 52, 85, 61, 92, 54, 74, 62, 60, 71, 58, 69, 79, 61, 58, 45, 64, 61, 110, 61, 61, 69, 88, 52, 59, 62, 64, 65, 52, 56, 71, 65, 64, 60, 60, 68, 61, 71, 52, 82, 53, 64, 59, 48, 61, 53, 67, 58, 88, 55, 57, 53, 93, 68, 59, 65, 61, 54, 56, 62, 67, 66, 67, 57, 63, 66, 59, 52, 63, 88, 55, 143, 61, 88, 64, 60, 65, 97, 64, 71, 74, 67, 78, 68, 61, 62, 53, 59, 63, 60, 61, 62, 58, 60, 109, 63, 61, 61, 59, 76, 64, 43, 63, 60, 57, 67, 80, 89, 79, 85, 76, 58, 65, 56, 56, 60, 60, 55, 51, 85, 66, 61, 70, 68, 52, 63, 62, 66, 56, 54, 63, 60, 69, 64, 65, 74, 69, 65, 69, 72, 61, 117, 58, 66, 63, 69, 53, 53, 62, 65, 91, 54, 59, 62, 66, 70, 67, 81, 73, 51, 67, 86, 68, 59, 67, 63, 52, 68, 81, 52, 60, 57, 51, 72, 58, 55, 64, 85, 62, 66, 50, 72, 61, 59, 46, 67, 71, 87, 49, 65, 71, 67, 65, 63, 57, 61, 55, 62, 60, 60, 62, 60, 69, 77, 95, 66, 65, 102, 57, 59, 59, 99, 59, 61, 56, 59, 64, 69, 50, 66, 56, 64, 70, 62, 57, 48, 62, 59, 62, 61, 81, 61, 60, 54, 60, 60, 66, 59, 68, 75, 59, 70, 74, 67, 56, 63, 55, 57, 52, 77, 62, 85, 74, 61, 66, 65, 72, 54, 52, 64, 67, 87, 60, 47, 73, 55, 62, 56, 68, 65, 59, 63, 59, 61, 60, 53, 69, 58, 59, 40, 85, 58, 54, 59, 61, 54, 58, 66, 59, 50, 69, 61, 49, 83, 72, 69, 74, 102, 121, 54, 54, 65, 52, 65, 51, 64, 68, 64, 54, 52, 58, 64, 65, 78, 64, 57, 64, 58, 51, 61, 93, 74, 65, 62, 69, 68, 60, 57, 86, 68, 51, 62, 57, 79, 63, 62, 60, 60, 56, 57, 61, 60, 64, 61, 56, 59, 55, 60, 57, 65, 69, 83, 54, 57, 63, 64, 51, 51, 66, 59, 61, 65, 64, 64, 50, 57, 52, 72, 60, 64, 69, 59, 62, 80, 63, 62, 51, 101, 58, 75, 94, 85, 47, 66, 66, 80, 68, 73, 65, 53, 84, 74, 65, 76, 65, 60, 62, 53, 71, 59, 57, 66, 69, 61, 65, 68, 60, 62, 60, 67, 61, 75, 51, 67, 51, 46, 69, 68, 55, 79, 56, 71, 69, 73, 101, 89, 80, 74, 77, 62, 68, 65, 82, 83, 64, 65, 74, 68, 68, 71, 104, 82, 82, 75, 81, 65, 58, 68, 77, 76, 64, 57, 67, 49, 72, 59, 65, 68, 63, 74, 53, 71, 58, 54, 72, 73, 67, 67, 55, 61, 52, 57, 65, 78, 46, 71, 65, 51, 83, 39, 75, 119, 56, 57, 80, 57, 47, 81, 89, 59, 63, 65, 70, 60, 79, 65, 55, 47, 62, 57, 69, 79, 63, 73, 99, 61, 91, 63, 112, 58, 75, 50, 51, 55, 66, 34, 71, 42, 75, 56, 59, 99, 75, 60, 49, 66, 69, 95, 64, 80, 73, 79, 46, 62, 62, 57, 66, 175, 72, 66, 44, 63, 71, 59, 56, 61, 87, 89, 49, 57, 80, 62, 57, 52, 137, 51, 67, 56, 52, 44, 55, 46, 47, 54, 63, 107, 53, 64, 68, 60, 68, 62, 50, 92, 68, 64, 60, 82, 48, 67, 66, 59, 49, 52, 84, 51, 53, 51, 57, 67, 63, 46, 57, 46, 69, 74, 57, 57, 93, 59, 75, 69, 42, 43, 45, 58, 90, 76, 71, 63, 48, 119, 48, 55, 66, 99, 77, 53, 46, 75, 58, 58, 75, 65, 55, 71, 57, 67, 69, 71, 59, 51, 70, 56, 52, 55, 68, 87, 100, 54, 77, 61, 72, 66, 65, 66, 80, 48, 65, 62, 81, 66, 71, 59, 70, 59, 52, 63, 80, 58, 75, 75, 61, 57, 83, 64, 63, 51, 92, 82, 63, 69, 76, 45, 64, 79, 48, 60, 63, 81, 57, 59, 70, 67, 57, 43, 78, 45, 58, 75, 77, 41, 68, 61, 78, 57, 74, 101, 88, 63, 75, 62, 49, 63, 66, 75, 74, 75, 82, 62, 65, 56, 33, 67, 53, 76, 37, 56, 74, 65, 72, 42, 64, 40, 43, 91, 92, 86, 51, 81, 59, 88, 69, 72, 74, 65, 52, 60, 63, 84, 58, 88, 91, 76, 78, 61, 71, 65, 78, 79, 68, 76, 47, 71, 114, 61, 62, 68, 73, 44, 67, 74, 72, 69, 74, 47, 66, 76, 61, 66, 62, 76, 64, 56, 63, 71, 54, 54, 58, 79, 67, 43, 119, 62, 64, 48, 62, 55, 69, 43, 84, 56, 80, 84, 55, 62, 40, 99, 72, 65, 53, 90, 65, 63, 42, 44, 68, 68, 63, 60, 65, 75, 53, 63, 55, 72, 80, 59, 50, 60, 62, 51, 82, 57, 78, 40, 62, 54, 58, 73, 67, 64, 75, 66, 58, 65, 59, 38, 86, 45, 70, 60, 69, 79, 84, 67, 63, 71, 80, 64, 54, 55, 52, 73, 76, 69, 56, 63, 68, 66, 75, 65, 64, 57, 72, 58, 58, 79, 63, 45, 85, 82, 74, 67, 74, 83, 65, 76, 66, 57, 71, 75, 64, 52, 82, 66, 72, 50, 70, 47, 83, 60, 55, 75, 45, 84, 63, 43, 58, 62, 54, 54, 70, 90, 73, 76, 79, 62, 74, 60, 73, 60, 52, 65, 61, 70, 76, 70, 61, 83, 67, 57, 49, 52, 64, 83, 61, 63, 112, 75, 96, 59, 77, 56, 39, 72, 62, 62, 47, 50, 54, 57, 94, 57, 94, 57, 65, 64, 77, 46, 57, 68, 47, 89, 62, 44, 68, 65, 52, 84, 56, 94, 59, 46, 68, 81, 61, 57, 73, 99, 65, 76, 61, 63, 61, 49, 73, 68, 62, 52, 67, 66, 51, 77, 68, 72, 72, 74, 56, 66, 71, 62, 75, 63, 66, 68, 61, 67, 53, 50, 99, 55, 54, 64, 53, 49, 67, 71, 69, 86, 73, 59, 54, 84, 41, 69, 78, 77, 80, 55, 48, 63, 90, 72, 88, 55, 59, 59, 73, 80, 48, 106, 42, 72, 48, 73, 68, 60, 88, 63, 94, 61, 59, 62, 70, 85, 92, 65, 72, 65, 58, 129, 56, 54, 61, 70, 57, 63, 55, 61, 70, 31, 62, 53, 55, 65, 68, 50, 64, 66, 62, 69, 69, 60, 65, 70, 103, 62, 67, 82, 62, 67, 65, 80, 63, 61, 53, 57, 52, 58, 81, 60, 52, 57, 61, 67, 62, 57, 54, 56, 62, 79, 63, 53, 49, 83, 82, 83, 79, 77, 69, 86, 66, 40, 58, 69, 71, 78, 79, 56, 85, 61, 63, 79, 74, 61, 53, 74, 47, 60, 50, 64, 57, 56, 56, 73, 62, 74, 69, 62, 65, 72, 83, 56, 53, 72, 57, 47, 43, 62, 72, 54, 76, 64, 56, 80, 50, 83, 78, 57, 71, 53, 76, 100, 60, 76, 91, 70, 62, 49, 56, 67, 59, 66, 113, 47, 90, 61, 57, 69, 58, 87, 68, 59, 86, 61, 69, 63, 65, 81, 34, 87, 65, 51, 65, 75, 54, 64, 45, 76, 73, 78, 67, 61, 49, 56, 59, 89, 80, 72, 72, 73, 98, 57, 177, 58, 66, 58, 49, 65, 72, 88, 62, 66, 65, 54, 60, 68, 34, 57, 59, 56, 68, 57, 54, 71, 72, 55, 53, 69, 67, 64, 69, 71, 73, 63, 70, 66, 71, 70, 44, 80, 61, 58, 63, 64, 49, 94, 47, 64, 56, 71, 45, 59, 68, 74, 57, 53, 50, 73, 77, 68, 52, 79, 63, 73, 78, 83, 51, 51, 67, 48, 93, 41, 72, 64, 59, 65, 57, 86, 77, 65, 64, 58, 58, 56, 50, 89, 57, 68, 88, 57, 87, 84, 35, 53, 79, 80, 52, 54, 80, 54, 79, 42, 69, 79, 69, 70, 129, 51, 78, 88, 115, 64, 53, 58, 65, 52, 62, 65, 74, 78, 64, 74, 68, 52, 63, 51, 80, 58, 71, 69, 63, 63, 56, 61, 61, 48, 37, 79, 93, 66, 65, 71, 57, 66, 79, 66, 114, 85, 60, 69, 57, 71, 54, 79, 67, 72, 64, 72, 74, 78, 64, 87, 92, 67, 57, 102, 70, 81, 62, 54, 74, 59, 64, 80, 73, 70, 56, 54, 63, 46, 58, 50, 54, 40, 61, 34, 58, 97, 79, 80, 79, 47, 61, 69, 58, 55, 71, 78, 57, 50, 65, 70, 56, 58, 68, 36, 66, 75, 68, 66, 46, 67, 49, 74, 78, 65, 71, 70, 55, 58, 78, 73, 82, 49, 44, 76, 73, 65, 67, 55, 60, 49, 48, 73, 54, 61, 63, 62, 55, 70, 77, 62, 55, 74, 52, 98, 64, 91, 67, 71, 56, 90, 56, 79, 87, 63, 60, 67, 52, 58, 52, 60, 84, 52, 57, 71, 48, 58, 57, 69, 72, 81, 60, 69, 57, 62, 61, 84, 71, 59, 76, 57, 57, 47, 52, 61, 55, 82, 61, 57, 69, 79, 66, 80, 60, 58, 58, 80, 64, 53, 74, 62, 61, 55, 74, 62, 55, 69, 63, 70, 82, 50, 70, 53, 58, 94, 78, 63, 70, 51, 54, 72, 73, 43, 86, 67, 55, 76, 102, 53, 55, 74, 59, 78, 69, 57, 55, 64, 57, 67, 59, 71, 67, 76, 56, 74, 69, 57, 61, 82, 45, 46, 73, 57, 63, 49, 84, 44, 62, 78, 77, 67, 76, 90, 65, 44, 111, 65, 72, 65, 49, 83, 67, 59, 67, 56, 71, 58, 56, 60, 73, 59, 72, 86, 83, 71, 61, 59, 86, 43, 58, 66, 70, 100, 62, 54, 102, 57, 56, 70, 40, 80, 69, 68, 58, 77, 77, 40, 58, 75, 60, 52, 56, 47, 76, 67, 47, 101, 69, 65, 66, 60, 62, 51, 86, 76, 71, 81, 59, 83, 60, 56, 80, 55, 77, 89, 68, 52, 53, 82, 126, 73, 56, 54, 61, 81, 53, 59, 49, 63, 73, 79, 64, 53, 45, 73, 56, 60, 42, 62, 63, 78, 62, 60, 63, 83, 55, 56, 54, 63, 70, 69, 60, 65, 69, 61, 66, 73, 73, 47, 56, 83, 104, 76, 57, 63, 78, 93, 59, 55, 70, 63, 48, 61, 53, 53, 94, 70, 56, 60, 72, 72, 58, 58, 69, 53, 92, 54, 56, 62, 69, 51, 65, 63, 53, 59, 57, 53, 53, 49, 59, 65, 75, 104, 67, 62, 68, 90, 39, 63, 62, 57, 71, 53, 65, 65, 60, 71, 58, 58, 98, 60, 56, 78, 62, 73, 59, 59, 65, 69, 64, 72, 59, 57, 62, 45, 56, 67, 56, 59, 44, 81, 53, 60, 47, 77, 85, 71, 69, 57, 61, 62, 47, 59, 74, 87, 67, 60, 54, 66, 66, 63, 71, 47, 38, 74, 60, 72, 61, 76, 89, 63, 91, 60, 69, 50, 56, 47, 76, 85, 59, 58, 58, 75, 52, 70, 52, 43, 57, 82, 69, 62, 65, 80, 47, 62, 59, 81, 101, 82, 50, 69, 62, 61, 54, 73, 94, 69, 61, 63, 61, 78, 62, 62, 65, 57, 60, 75, 63, 57, 43, 71, 66, 68, 72, 66, 79, 73, 65, 53, 59, 47, 76, 113, 59, 54, 67, 55, 57, 67, 56, 62, 67, 56, 58, 102, 48, 73, 55, 61, 59, 62, 64, 55, 55, 73, 58, 63, 70, 74, 71, 106, 65, 67, 65, 69, 78, 51, 75, 71, 62, 73, 75, 68, 63, 39, 74, 71, 64, 57, 80, 51, 64, 75, 66, 58, 70, 102, 63, 68, 64, 84, 61, 63, 52, 54, 72, 65, 78, 63, 43, 40, 64, 39, 65, 79, 66, 57, 58, 52, 92, 68, 88, 69, 70, 80, 44, 60, 65, 68, 55, 65, 53, 59, 81, 77, 54, 81, 71, 62, 60, 139, 59, 74, 66, 52, 82, 50, 51, 52, 62, 69, 68, 82, 91, 82, 60, 61, 61, 57, 78, 74, 88, 90, 70, 37, 85, 88, 79, 40, 64, 81, 68, 54, 62, 50, 61, 83, 62, 65, 54, 48, 49, 78, 62, 70, 71, 69, 119, 110, 65, 61, 40, 81, 41, 146, 77, 91, 57, 83, 53, 68, 46, 70, 68, 138, 101, 51, 70, 60, 57, 85, 77, 77, 45, 51, 82, 42, 97, 63, 82, 70, 54, 61, 64, 57, 54, 79, 70, 69, 67, 70, 60, 54, 49, 61, 53, 63, 67, 78, 58, 88, 60, 49, 86, 64, 52, 56, 83, 71, 64, 95, 64, 72, 91, 62, 61, 60, 77, 56, 63, 56, 66, 56, 59, 86, 71, 66, 63, 78, 69, 63, 71, 61, 63, 69, 64, 59, 88, 66, 79, 74, 86, 55, 64, 54, 54, 64, 68, 63, 52, 55, 67, 53, 72, 58, 56, 87, 49, 58, 85, 68, 58, 56, 61, 82, 151, 57, 60, 74, 73, 73, 109, 78, 60, 109, 81, 63, 52, 48, 98, 94, 41, 63, 72, 47, 57, 86, 59, 71, 57, 58, 57, 69, 74, 46, 54, 76, 81, 63, 65, 50, 74, 44, 61, 61, 68, 72, 69, 52, 29, 54, 57, 64, 47, 55, 50, 72, 54, 64, 72, 70, 61, 51, 48, 72, 92, 48, 57, 37, 52, 45, 89, 61, 65, 110, 53, 65, 58, 58, 64, 84, 68, 100, 60, 48, 65, 71, 55, 77, 71, 68, 53, 74, 66, 66, 63, 57, 59, 59, 52, 64, 52, 62, 63, 67, 56, 105, 61, 65, 54, 72, 61, 51, 69, 65, 53, 51, 61, 72, 55, 59, 60, 63, 52, 57, 60, 67, 57, 72, 53, 52, 46, 37, 69, 58, 89, 132, 50, 47, 78, 75, 74, 54, 55, 62, 54, 45, 56, 60, 64, 67, 72, 92, 59, 72, 87, 68, 72, 59, 59, 61, 57, 61, 75, 55, 55, 77, 82, 61, 69, 72, 86, 59, 68, 57, 53, 65, 65, 126, 83, 50, 80, 53, 62, 55, 67, 68, 60, 78, 58, 37, 52, 82, 96, 60, 69, 52, 80, 66, 56, 56, 70, 65, 56, 60, 52, 58, 54, 70, 67, 92, 64, 65, 52, 51, 61, 62, 85, 61, 101, 74, 72, 71, 103, 110, 59, 77, 66, 64, 61, 56, 67, 77, 53, 85, 59, 83, 54, 99, 65, 54, 80, 58, 93, 79, 100, 57, 61, 73, 36, 76, 61, 54, 57, 61, 68, 113, 51, 69, 69, 73, 63, 73, 60, 64, 95, 60, 57, 64, 97, 63, 64, 67, 95, 42, 79, 71, 85, 48, 52, 79, 59, 60, 58, 67, 84, 101, 70, 43, 43, 57, 73, 60, 54, 62, 49, 68, 62, 95, 53, 61, 50, 78, 56, 74, 67, 47, 60, 55, 61, 67, 42, 66, 69, 68, 58, 76, 79, 57, 59, 60, 51, 55, 63, 62, 33, 42, 52, 97, 67, 75, 71, 57, 53, 62, 64, 59, 51, 59, 87, 57, 75, 57, 80, 58, 66, 59, 67, 52, 70, 60, 83, 73, 66, 86, 69, 61, 50, 86, 74, 71, 64, 61, 58, 109, 63, 61, 54, 61, 58, 68, 67, 56, 64, 65, 50, 58, 65, 64, 67, 58, 70, 36, 68, 61, 58, 80, 80, 76, 53, 68, 46, 57, 70, 66, 66, 56, 68, 72, 54, 78, 64, 59, 70, 68, 62, 67, 87, 39, 47, 75, 67, 80, 61, 67, 55, 62, 48, 87, 87, 61, 69, 74, 69, 58, 70, 54, 57, 95, 66, 46, 101, 75, 72, 78, 64, 82, 72, 67, 55, 65, 70, 67, 61, 69, 65, 67, 72, 71, 73, 68, 56, 82, 64, 65, 52, 77, 45, 59, 32, 59, 63, 66, 63, 65, 70, 60, 66, 61, 91, 62, 77, 53, 48, 65, 76, 56, 46, 55, 58, 84, 77, 56, 68, 45, 52, 74, 78, 82, 63, 65, 60, 59, 60, 66, 59, 64, 63, 61, 65, 56, 66, 66, 52, 58, 77, 127, 47, 66, 57, 63, 45, 50, 53, 42, 62, 75, 58, 69, 57, 54, 71, 75, 55, 54, 80, 67, 78, 60, 56, 41, 61, 70, 53, 43, 66, 78, 75, 59, 63, 80, 55, 61, 70, 57, 35, 46, 63, 56, 82, 56, 53, 88, 110, 62, 53, 50, 60, 107, 57, 71, 61, 61, 53, 61, 61, 58, 76, 55, 81, 55, 43, 84, 60, 70, 61, 66, 64, 77, 65, 67, 68, 85, 73, 77, 52, 80, 65, 72, 70, 82, 64, 70, 48, 69, 97, 62, 64, 66, 65, 57, 56, 68, 78, 69, 60, 54, 53, 58, 91, 62, 53, 70, 59, 51, 70, 74, 59, 70, 61, 72, 61, 57, 61, 64, 50, 62, 64, 53, 53, 78, 84, 80, 56, 67, 59, 76, 45, 55, 77, 68, 62, 64, 47, 91, 60, 52, 56, 61, 55, 74, 60, 66, 56, 59, 64, 59, 66, 82, 69, 54, 60, 54, 60, 54, 64, 54, 61, 111, 79, 53, 55, 51, 66, 59, 82, 55, 64, 65, 89, 70, 69, 45, 58, 67, 70, 58, 76, 56, 71, 84, 47, 84, 67, 81, 52, 58, 61, 81, 61, 58, 119, 87, 51, 65, 55, 82, 67, 45, 68, 66, 70, 76, 56, 67, 56, 47, 53, 73, 68, 60, 56, 56, 57, 70, 56, 81, 75, 74, 53, 108, 44, 73, 62, 62, 58, 77, 52, 56, 59, 58, 77, 65, 67, 86, 43, 67, 54, 62, 79, 109, 70, 63, 59, 87, 86, 59, 56, 62, 62, 58, 64, 70, 53, 73, 48, 71, 67, 48, 57, 65, 56, 55, 67, 71, 80, 53, 54, 78, 65, 59, 76, 63, 69, 75, 61, 59, 64, 63, 69, 81, 61, 52, 58, 49, 87, 59, 56, 78, 78, 52, 112, 91, 56, 73, 56, 87, 61, 55, 57, 59, 78, 59, 60, 53, 57, 66, 67, 67, 86, 85, 76, 55, 72, 59, 62, 55, 58, 76, 64, 81, 58, 105, 76, 60, 52, 62, 74, 54, 61, 64, 51, 63, 91, 50, 68, 67, 61, 74, 61, 70, 71, 61, 51, 67, 55, 63, 58, 58, 68, 75, 59, 57, 62, 47, 74, 58, 67, 65, 62, 63, 84, 62, 51, 54, 81, 102, 58, 104, 69, 68, 55, 70, 58, 76, 83, 68, 47, 83, 78, 73, 58, 59, 54, 74, 63, 70, 54, 56, 64, 93, 59, 63, 64, 81, 59, 53, 79, 63, 72, 66, 57, 56, 50, 61, 59, 62, 64, 45, 62, 113, 63, 65, 67, 58, 88, 65, 47, 49, 61, 67, 54, 62, 67, 68, 72, 81, 61, 57, 60, 51, 60, 62, 79, 93, 75, 83, 68, 73, 73, 64, 84, 69, 67, 57, 76, 81, 62, 74, 62, 61, 78, 66, 81, 76, 68, 69, 57, 56, 51, 78, 51, 57, 51, 111, 69, 70, 82, 68, 81, 63, 80, 63, 54, 88, 59, 66, 57, 103, 87, 51, 65, 68, 68, 53, 72, 51, 91, 50, 63, 51, 65, 63, 70, 70, 67, 62, 72, 59, 52, 73, 48, 64, 52, 55, 66, 84, 54, 63, 62, 76, 60, 60, 63, 68, 64, 60, 49, 47, 82, 58, 105, 63, 67, 63, 74, 42, 79, 104, 102, 78, 54, 59, 68, 60, 61, 75, 72, 58, 56, 44, 60, 60, 59, 38, 65, 52, 66, 51, 58, 67, 87, 74, 75, 57, 56, 67, 61, 89, 68, 55, 77, 121, 58, 59, 62, 79, 60, 102, 63, 53, 59, 84, 64, 59, 97, 65, 70, 68, 66, 85, 53, 52, 44, 70, 54, 62, 64, 58, 74, 74, 48, 63, 65, 74, 64, 63, 65, 58, 65, 96, 51, 63, 63, 81, 71, 90, 61, 55, 56, 68, 53, 56, 62, 68, 58, 56, 56, 41, 85, 107, 69, 104, 69, 59, 64, 48, 79, 52, 73, 55, 51, 101, 57, 70, 75, 70, 70, 61, 60, 57, 56, 79, 64, 55, 63, 89, 66, 61, 70, 72, 56, 41, 67, 60, 78, 78, 55, 49, 85, 66, 57, 62, 59, 58, 54, 75, 58, 59, 51, 68, 68, 59, 52, 82, 50, 59, 81, 83, 94, 60, 61, 53, 54, 69, 68, 55, 61, 58, 53, 66, 70, 136, 58, 66, 61, 51, 80, 50, 60, 57, 61, 65, 62, 72, 68, 55, 68, 83, 68, 96, 65, 58, 60, 65, 51, 70, 77, 71, 100, 57, 65, 76, 56, 52, 72, 63, 69, 50, 57, 51, 54, 66, 66, 76, 60, 72, 150, 58, 49, 67, 59, 93, 51, 59, 59, 65, 56, 46, 64, 54, 64, 88, 58, 72, 71, 63, 77, 57, 95, 78, 68, 56, 66, 58, 57, 52, 76, 69, 72, 106, 69, 48, 62, 59, 61, 126, 68, 69, 54, 61, 61, 59, 66, 57, 60, 55, 58, 50, 61, 69, 68, 75, 54, 63, 49, 57, 57, 71, 65, 60, 60, 84, 55, 57, 85, 71, 92, 84, 48, 57, 65, 98, 57, 56, 61, 57, 60, 51, 81, 86, 63, 58, 52, 45, 87, 49, 52, 59, 57, 61, 65, 96, 65, 69, 61, 70, 72, 68, 122, 79, 67, 61, 46, 67, 54, 64, 70, 83, 61, 61, 78, 66, 70, 66, 83, 58, 45, 47, 67, 64, 56, 67, 66, 54, 48, 80, 68, 67, 98, 107, 63, 62, 65, 84, 85, 57, 62, 94, 68, 66, 75, 81, 66, 59, 61, 63, 44, 61, 88, 88, 54, 60, 64, 64, 55, 49, 65, 50, 64, 54, 60, 80, 63, 75, 77, 60, 37, 44, 58, 69, 55, 90, 55, 68, 39, 62, 75, 72, 89, 43, 35, 63, 60, 94, 51, 55, 51, 63, 53, 58, 97, 75, 87, 67, 45, 61, 45, 57, 66, 67, 62, 46, 76, 56, 47, 67, 70, 56, 69, 63, 84, 69, 40, 64, 58, 77, 55, 67, 54, 62, 88, 60, 53, 57, 59, 74, 50, 63, 56, 64, 50, 68, 84, 55, 64, 51, 60, 50, 47, 62, 80, 53, 52, 59, 75, 51, 59, 81, 65, 67, 76, 70, 100, 64, 69, 70, 75, 68, 43, 46, 50, 82, 55, 39, 53, 57, 67, 58, 57, 48, 68, 80, 49, 45, 78, 67, 66, 129, 82, 58, 39, 56, 144, 53, 72, 49, 59, 71, 58, 55, 54, 81, 66, 51, 53, 54, 69, 72, 78, 57, 59, 53, 72, 48, 61, 58, 69, 58, 79, 56, 69, 51, 95, 121, 54, 54, 60, 56, 48, 59, 54, 86, 73, 58, 49, 58, 135, 37, 63, 63, 91, 107, 34, 33, 46, 68, 70, 54, 53, 52, 62, 53, 50, 68, 71, 76, 81, 73, 57, 68, 62, 97, 57, 52, 52, 72, 87, 89, 60, 58, 60, 57, 62, 72, 105, 66, 52, 58, 123, 80, 53, 65, 44, 64, 53, 62, 64, 63, 49, 68, 52, 70, 87, 52, 54, 57, 72, 93, 87, 65, 58, 69, 47, 68, 55, 61, 83, 63, 70, 63, 80, 65, 84, 82, 68, 54, 58, 81, 74, 46, 68, 64, 81, 52, 64, 62, 79, 59, 53, 85, 58, 71, 51, 50, 79, 75, 64, 56, 71, 53, 71, 58, 44, 60, 52, 78, 59, 75, 88, 50, 66, 59, 85, 58, 54, 54, 74, 65, 63, 65, 43, 78, 82, 70, 56, 44, 80, 74, 64, 68, 75, 70, 85, 77, 55, 72, 64, 71, 127, 138, 68, 62, 55, 40, 92, 61, 63, 77, 78, 54, 59, 74, 55, 66, 80, 80, 98, 45, 69, 66, 61, 63, 58, 48, 62, 87, 62, 64, 65, 51, 83, 43, 51, 65, 50, 80, 52, 69, 68, 61, 76, 72, 80, 64, 63, 66, 67, 86, 71, 67, 61, 53, 46, 78, 70, 60, 63, 69, 73, 50, 52, 61, 61, 68, 60, 42, 51, 59, 54, 91, 57, 55, 79, 55, 68, 70, 105, 59, 72, 62, 80, 88, 51, 64, 64, 53, 109, 61, 47, 68, 70, 51, 62, 49, 52, 68, 52, 100, 50, 57, 79, 68, 64, 77, 79, 93, 49, 70, 96, 65, 71, 90, 74, 50, 99, 50, 51, 69, 65, 79, 62, 51, 72, 49, 40, 56, 66, 64, 79, 53, 56, 99, 62, 71, 59, 58, 44, 100, 45, 50, 45, 51, 80, 69, 63, 67, 64, 65, 75, 87, 75, 58, 58, 69, 71, 51, 83, 54, 69, 61, 56, 65, 55, 80, 52, 51, 59, 94, 49, 54, 55, 85, 83, 66, 63, 89, 57, 77, 52, 96, 62, 84, 63, 56, 48, 59, 59, 58, 86, 92, 57, 86, 63, 60, 73, 49, 60, 60, 72, 55, 60, 51, 74, 88, 57, 50, 48, 86, 55, 76, 76, 62, 54, 53, 71, 112, 59, 66, 60, 44, 78, 103, 65, 62, 65, 59, 66, 76, 77, 85, 51, 77, 48, 58, 59, 66, 56, 87, 64, 92, 69, 46, 65, 66, 75, 66, 68, 65, 62, 66, 48, 71, 54, 93, 44, 52, 58, 57, 60, 92, 59, 50, 59, 58, 87, 66, 63, 98, 40, 62, 58, 75, 67, 69, 109, 48, 46, 62, 49, 66, 67, 70, 65, 55, 59, 54, 91, 65, 63, 56, 78, 77, 67, 77, 95, 61, 45, 55, 70, 55, 83, 63, 85, 70, 68, 64, 50, 63, 72, 56, 66, 60, 59, 112, 88, 53, 35, 65, 65, 57, 39, 85, 72, 76, 59, 91, 72, 62, 58, 71, 65, 83, 71, 49, 63, 67, 60, 52, 70, 100, 59, 70, 69, 93, 58, 47, 78, 100, 53, 47, 73, 77, 52, 72, 64, 83, 54, 59, 65, 66, 66, 46, 68, 73, 47, 52, 58, 52, 51, 77, 64, 99, 58, 63, 81, 40, 42, 51, 65, 59, 80, 66, 43, 66, 72, 64, 51, 66, 67, 65, 59, 60, 70, 42, 60, 73, 60, 66, 75, 42, 44, 66, 32, 72, 59, 88, 64, 93, 60, 67, 50, 54, 69, 73, 66, 70, 58, 62, 71, 62, 60, 63, 62, 61, 59, 69, 54, 59, 56, 75, 62, 78, 62, 80, 65, 103, 61, 54, 61, 43, 107, 63, 75, 53, 74, 64, 56, 53, 83, 62, 59, 55, 56, 64, 50, 46, 69, 61, 69, 46, 64, 65, 128, 129, 54, 91, 60, 83, 83, 68, 62, 60, 65, 60, 46, 80, 64, 69, 58, 79, 67, 69, 81, 80, 65, 57, 55, 62, 56, 61, 60, 61, 86, 38, 62, 52, 50, 60, 87, 54, 83, 59, 73, 65, 50, 129, 40, 95, 50, 49, 91, 53, 50, 60, 59, 70, 68, 56, 57, 44, 57, 79, 65, 64, 76, 60, 50, 61, 48, 67, 55, 37, 91, 56, 58, 69, 70, 39, 85, 59, 59, 49, 42, 76, 67, 48, 55, 87, 57, 104, 117, 77, 62, 65, 70, 58, 60, 69, 72, 84, 58, 64, 109, 55, 62, 70, 54, 40, 77, 63, 58, 73, 81, 78, 54, 50, 51, 48, 70, 77, 47, 67, 49, 103, 100, 68, 58, 75, 49, 98, 52, 62, 96, 63, 75, 60, 96, 56, 61, 68, 42, 63, 59, 75, 74, 67, 77, 70, 70, 79, 58, 46, 65, 61, 43, 45, 65, 69, 57, 105, 71, 61, 74, 41, 81, 87, 53, 80, 44, 79, 32, 82, 68, 76, 55, 54, 63, 81, 58, 66, 55, 57, 75, 63, 51, 62, 67, 60, 65, 63, 52, 65, 99, 76, 69, 66, 56, 62, 58, 59, 78, 45, 64, 71, 58, 66, 61, 76, 53, 58, 60, 69, 54, 56, 58, 51, 70, 61, 79, 57, 65, 79, 61, 60, 63, 69, 65, 72, 63, 86, 68, 64, 81, 59, 57, 69, 71, 60, 50, 58, 68, 78, 49, 85, 44, 62, 69, 58, 56, 76, 64, 60, 69, 79, 75, 72, 51, 73, 58, 59, 61, 57, 79, 58, 58, 54, 61, 66, 51, 59, 69, 83, 80, 70, 56, 67, 71, 75, 52, 62, 57, 71, 59, 61, 70, 58, 84, 58, 49, 74, 55, 57, 69, 79, 63, 72, 80, 78, 61, 68, 91, 72, 52, 92, 46, 67, 63, 68, 72, 74, 77, 58, 66, 94, 56, 70, 63, 51, 69, 53, 65, 59, 62, 62, 83, 82, 77, 63, 74, 67, 52, 53, 67, 62, 76, 74, 59, 64, 67, 61, 89, 73, 65, 49, 74, 70, 66, 69, 75, 62, 71, 74, 59, 57, 59, 72, 66, 78, 55, 54, 59, 71, 61, 69, 56, 58, 57, 83, 80, 72, 81, 69, 55, 63, 63, 53, 58, 71, 69, 76, 75, 59, 44, 62, 70, 57, 59, 65, 55, 60, 68, 58, 54, 55, 74, 56, 92, 63, 83, 60, 72, 77, 75, 77, 62, 74, 78, 64, 72, 53, 70, 61, 71, 62, 98, 62, 65, 65, 53, 64, 65, 67, 64, 63, 70, 92, 64, 72, 55, 62, 49, 54, 66, 67, 61, 62, 61, 62, 46, 59, 60, 60, 61, 52, 62, 65, 61, 66, 64, 68, 48, 53, 63, 72, 69, 67, 73, 94, 61, 71, 60, 75, 82, 51, 80, 67, 63, 65, 63, 66, 67, 71, 55, 59, 60, 69, 90, 57, 63, 56, 54, 80, 80, 60, 62, 54, 59, 60, 54, 106, 61, 64, 47, 69, 58, 62, 55, 84, 56, 47, 66, 76, 58, 70, 75, 55, 58, 77, 73, 56, 50, 60, 70, 61, 76, 73, 59, 73, 60, 69, 60, 59, 55, 59, 80, 74, 58, 71, 59, 104, 75, 58, 51, 58, 63, 58, 58, 97, 64, 57, 56, 92, 51, 52, 73, 63, 61, 61, 76, 78, 58, 50, 72, 60, 64, 54, 64, 70, 67, 66, 61, 61, 54, 62, 74, 75, 60, 79, 73, 68, 67, 76, 57, 70, 70, 77, 55, 56, 64, 63, 79, 61, 43, 60, 65, 56, 67, 71, 51, 68, 55, 74, 78, 71, 54, 52, 79, 71, 61, 56, 56, 56, 65, 83, 76, 64, 56, 67, 55, 67, 69, 67, 74, 75, 60, 54, 64, 62, 62, 64, 59, 59, 68, 67, 61, 65, 63, 58, 44, 61, 49, 61, 63, 76, 66, 63, 97, 73, 64, 61, 81, 61, 56, 79, 56, 95, 59, 59, 44, 62, 79, 56, 77, 62, 50, 60, 72, 98, 62, 85, 56, 94, 64, 56, 52, 58, 63, 57, 45, 56, 58, 65, 53, 69, 79, 49, 68, 51, 79, 67, 64, 70, 64, 73, 72, 68, 63, 114, 64, 76, 57, 79, 74, 57, 76, 66, 69, 68, 74, 62, 56, 73, 64, 62, 71, 62, 54, 71, 74, 65, 47, 63, 54, 92, 61, 63, 68, 50, 85, 44, 63, 70, 72, 65, 68, 69, 63, 52, 67, 86, 55, 76, 66, 52, 87, 63, 51, 73, 45, 63, 60, 88, 81, 134, 68, 77, 61, 70, 58, 63, 53, 58, 70, 73, 61, 67, 61, 74, 61, 76, 63, 66, 84, 109, 56, 62, 57, 91, 61, 54, 55, 67, 55, 71, 55, 78, 52, 37, 54, 53, 61, 73, 54, 75, 64, 88, 60, 70, 59, 80, 54, 60, 81, 55, 93, 66, 54, 67, 66, 56, 67, 63, 60, 162, 63, 73, 58, 58, 68, 64, 66, 53, 63, 70, 60, 61, 57, 51, 61, 54, 66, 65, 60, 57, 94, 60, 59, 52, 65, 52, 80, 54, 94, 63, 66, 54, 61, 67, 64, 83, 56, 49, 52, 83, 64, 66, 52, 65, 74, 57, 58, 65, 68, 73, 59, 71, 55, 84, 62, 53, 59, 67, 65, 60, 85, 54, 73, 82, 73, 52, 57, 61, 66, 73, 64, 47, 51, 76, 100, 61, 48, 83, 57, 66, 71, 116, 65, 65, 53, 73, 60, 59, 50, 65, 51, 72, 58, 67, 53, 62, 62, 39, 61, 69, 111, 64, 53, 52, 60, 83, 74, 61, 70, 83, 61, 63, 49, 68, 58, 64, 57, 80, 57, 66, 131, 53, 58, 68, 109, 76, 103, 64, 72, 69, 63, 84, 67, 58, 68, 72, 72, 59, 57, 59, 69, 63, 61, 70, 57, 73, 64, 59, 69, 110, 69, 49, 52, 62, 67, 64, 62, 68, 56, 49, 65, 68, 66, 57, 76, 75, 62, 71, 86, 54, 85, 73, 73, 47, 52, 51, 75, 87, 68, 53, 92, 121, 52, 52, 49, 58, 56, 67, 66, 71, 71, 81, 59, 77, 55, 65, 65, 56, 68, 70, 60, 65, 89, 67, 80, 70, 84, 62, 61, 77, 86, 66, 68, 70, 60, 78, 60, 64, 59, 58, 67, 59, 76, 78, 64, 60, 64, 63, 62, 60, 72, 67, 63, 60, 73, 54, 63, 74, 59, 53, 57, 74, 56, 54, 66, 59, 61, 56, 63, 62, 54, 55, 58, 69, 123, 55, 57, 79, 71, 64, 55, 63, 67, 54, 63, 79, 67, 53, 90, 64, 77, 64, 70, 62, 80, 111, 46, 62, 50, 62, 62, 70, 63, 51, 57, 60, 48, 55, 54, 63, 62, 48, 83, 75, 54, 64, 72, 59, 57, 50, 67, 78, 68, 56, 72, 54, 78, 57, 67, 76, 57, 73, 61, 67, 59, 63, 61, 53, 64, 65, 61, 66, 75, 78, 58, 75, 65, 72, 57, 58, 73, 57, 63, 73, 57, 83, 59, 86, 59, 52, 63, 56, 48, 60, 52, 69, 83, 53, 57, 59, 75, 45, 40, 64, 73, 62, 60, 63, 69, 64, 84, 71, 63, 70, 58, 73, 56, 54, 58, 62, 67, 62, 70, 66, 61, 50, 92, 58, 60, 65, 56, 65, 53, 71, 59, 77, 47, 111, 89, 58, 47, 63, 64, 55, 59, 58, 53, 71, 61, 58, 54, 65, 67, 70, 91, 65, 68, 67, 67, 63, 76, 56, 56, 74, 68, 61, 76, 46, 57, 62, 63, 61, 78, 66, 60, 58, 60, 76, 51, 63, 74, 73, 72, 57, 65, 68, 80, 66, 60, 70, 59, 66, 64, 69, 62, 75, 64, 65, 56, 92, 60, 54, 58, 55, 86, 59, 62, 48, 81, 61, 74, 65, 72, 88, 58, 53, 56, 45, 65, 57, 58, 71, 60, 72, 60, 86, 61, 71, 63, 76, 66, 53, 59, 64, 54, 85, 69, 77, 62, 71, 94, 73, 94, 95, 94, 70, 62, 77, 72, 66, 66, 59, 71, 46, 68, 41, 76, 55, 67, 60, 55, 66, 57, 55, 54, 65, 81, 79, 75, 57, 52, 83, 69, 73, 89, 57, 52, 57, 87, 54, 78, 59, 56, 105, 69, 59, 63, 68, 69, 49, 68, 60, 63, 64, 69, 73, 90, 74, 62, 60, 56, 55, 68, 58, 63, 75, 68, 65, 50, 50, 71, 63, 52, 73, 73, 56, 99, 59, 61, 50, 51, 65, 70, 62, 71, 61, 68, 66, 65, 61, 66, 53, 55, 64, 73, 55, 101, 66, 96, 69, 54, 62, 70, 92, 61, 61, 67, 60, 72, 78, 74, 57, 66, 53, 66, 59, 54, 61, 56, 48, 57, 61, 70, 58, 69, 70, 54, 67, 80, 74, 70, 70, 66, 63, 66, 63, 64, 73, 76, 63, 55, 59, 52, 64, 95, 70, 56, 52, 68, 59, 54, 69, 72, 71, 72, 84, 82, 76, 65, 68, 96, 72, 63, 77, 73, 63, 59, 66, 75, 61, 69, 74, 58, 76, 61, 56, 68, 64, 63, 49, 56, 56, 58, 76, 59, 61, 68, 63, 64, 72, 60, 68, 49, 77, 61, 66, 56, 53, 55, 48, 59, 68, 63, 60, 72, 62, 75, 47, 67, 65, 72, 65, 80, 67, 58, 56, 64, 64, 71, 77, 70, 52, 66, 82, 53, 63, 78, 63, 59, 65, 64, 65, 60, 71, 78, 77, 57, 68, 60, 53, 59, 75, 67, 62, 58, 64, 53, 76, 62, 62, 59, 63, 67, 71, 58, 67, 61, 82, 64, 66, 58, 66, 45, 78, 57, 49, 64, 76, 68, 55, 60, 83, 73, 61, 70, 73, 78, 57, 59, 79, 55, 68, 66, 57, 57, 71, 57, 65, 52, 72, 69, 59, 55, 85, 81, 50, 69, 62, 80, 68, 67, 72, 77, 60, 70, 56, 106, 64, 64, 67, 71, 65, 58, 61, 63, 79, 74, 66, 71, 68, 73, 90, 66, 53, 67, 69, 76, 61, 68, 61, 54, 57, 52, 45, 88, 56, 62, 51, 65, 60, 67, 83, 70, 50, 75, 54, 64, 46, 58, 78, 47, 71, 85, 74, 47, 45, 86, 58, 62, 86, 66, 61, 66, 80, 78, 71, 75, 56, 56, 63, 72, 81, 58, 66, 72, 89, 75, 64, 69, 58, 89, 64, 50, 62, 62, 59, 72, 69, 59, 57, 75, 48, 71, 67, 75, 61, 64, 56, 94, 60, 60, 80, 59, 51, 48, 72, 62, 79, 73, 65, 65, 72, 50, 47, 67, 52, 58, 72, 59, 64, 71, 64, 59, 52, 85, 63, 63, 64, 80, 55, 67, 61, 77, 72, 74, 59, 55, 50, 105, 68, 57, 69, 64, 68, 70, 50, 53, 68, 68, 75, 89, 63, 60, 56, 57, 67, 54, 63, 64, 93, 65, 68, 73, 64, 92, 59, 89, 56, 74, 58, 82, 84, 57, 123, 63, 75, 54, 55, 54, 54, 58, 62, 60, 87, 64, 62, 74, 78, 67, 58, 54, 92, 78, 58, 60, 48, 77, 91, 60, 60, 63, 101, 79, 53, 80, 45, 67, 65, 57, 83, 68, 67, 64, 60, 62, 82, 49, 60, 54, 59, 58, 59, 65, 67, 54, 65, 80, 59, 69, 62, 67, 65, 76, 168, 59, 50, 65, 56, 82, 58, 82, 59, 63, 64, 70, 59, 92, 50, 56, 56, 83, 52, 67, 63, 55, 57, 66, 74, 55, 47, 65, 78, 58, 60, 69, 57, 70, 56, 62, 55, 64, 70, 67, 56, 60, 58, 70, 57, 71, 60, 67, 60, 62, 72, 65, 75, 61, 77, 71, 62, 53, 58, 53, 64, 102, 67, 64, 98, 78, 45, 53, 67, 46, 61, 70, 62, 62, 113, 106, 67, 68, 61, 72, 62, 81, 58, 65, 61, 60, 74, 68, 63, 61, 49, 53, 71, 61, 74, 64, 90, 64, 54, 87, 60, 55, 130, 61, 102, 69, 65, 72, 58, 49, 51, 77, 63, 63, 82, 54, 66, 66, 68, 54, 72, 159, 54, 64, 64, 62, 67, 75, 68, 66, 57, 68, 55, 65, 54, 69, 61, 83, 66, 62, 55, 45, 67, 59, 64, 69, 65, 68, 54, 78, 45, 51, 87, 68, 89, 58, 60, 66, 68, 65, 67, 64, 86, 84, 78, 51, 70, 87, 52, 53, 57, 82, 62, 47, 67, 65, 58, 59, 72, 64, 55, 64, 59, 63, 65, 59, 58, 71, 59, 64, 64, 67, 56, 65, 60, 62, 89, 57, 55, 62, 65, 74, 67, 84, 59, 57, 71, 53, 70, 70, 58, 66, 58, 86, 62, 90, 63, 65, 63, 65, 60, 78, 49, 65, 68, 59, 62, 66, 74, 66, 68, 56, 56, 77, 49, 94, 73, 67, 58, 65, 69, 63, 71, 51, 50, 79, 62, 53, 61, 68, 65, 56, 65, 75, 68, 107, 59, 64, 52, 68, 60, 45, 62, 60, 46, 64, 73, 56, 59, 71, 62, 94, 65, 76, 79, 60, 47, 46, 47, 71, 68, 64, 86, 62, 55, 74, 53, 69, 57, 62, 71, 58, 61, 80, 64, 80, 51, 62, 62, 58, 65, 55, 61, 63, 75, 70, 60, 58, 68, 64, 72, 91, 75, 56, 54, 51, 70, 53, 67, 64, 48, 66, 86, 69, 60, 62, 70, 53, 69, 60, 74, 69, 65, 93, 74, 63, 59, 72, 79, 71, 50, 62, 47, 62, 66, 60, 73, 74, 82, 70, 69, 52, 58, 81, 57, 72, 65, 81, 61, 42, 69, 77, 59, 87, 85, 52, 57, 49, 57, 75, 82, 47, 56, 108, 51, 74, 134, 106, 66, 63, 45, 56, 52, 39, 56, 68, 85, 79, 67, 70, 66, 65, 54, 80, 71, 55, 55, 54, 75, 65, 52, 61, 62, 80, 64, 57, 89, 66, 61, 56, 77, 71, 73, 72, 75, 59, 60, 66, 64, 75, 63, 59, 87, 48, 65, 65, 63, 61, 77, 78, 65, 99, 113, 68, 63, 75, 54, 73, 74, 71, 74, 74, 66, 57, 52, 64, 74, 73, 67, 64, 64, 65, 62, 60, 58, 78, 68, 69, 58, 61, 55, 73, 53, 69, 105, 57, 59, 72, 62, 59, 58, 56, 60, 52, 64, 56, 59, 65, 62, 57, 62, 78, 51, 48, 74, 55, 79, 63, 78, 59, 61, 58, 61, 77, 86, 55, 66, 68, 70, 69, 84, 57, 72, 59, 66, 73, 68, 83, 60, 63, 64, 77, 66, 63, 79, 84, 55, 48, 83, 71, 66, 55, 63, 67, 60, 100, 78, 57, 55, 81, 55, 61, 60, 53, 94, 60, 64, 79, 56, 45, 50, 55, 62, 70, 69, 82, 73, 54, 69, 65, 48, 75, 60, 65, 59, 67, 55, 77, 63, 44, 57, 60, 52, 72, 77, 77, 60, 49, 71, 50, 81, 51, 62, 77, 63, 64, 65, 60, 74, 53, 59, 63, 51, 72, 69, 66, 80, 66, 71, 67, 57, 47, 86, 57, 50, 86, 53, 62, 62, 66, 79, 56, 63, 58, 68, 68, 69, 73, 56, 58, 75, 66, 64, 64, 66, 58, 60, 51, 112, 83, 63, 65, 58, 56, 72, 65, 56, 71, 71, 53, 68, 62, 56, 71, 66, 96, 78, 56, 57, 56, 59, 61, 53, 67, 76, 68, 84, 72, 49, 57, 49, 96, 66, 64, 64, 70, 62, 79, 66, 55, 62, 63, 57, 63, 58, 54, 52, 57, 64, 57, 78, 62, 62, 67, 85, 64, 58, 72, 82, 65, 61, 76, 50, 49, 57, 91, 66, 62, 64, 57, 64, 73, 71, 64, 63, 76, 56, 101, 66, 66, 55, 61, 67, 59, 65, 67, 77, 60, 59, 57, 91, 63, 61, 56, 76, 56, 62, 79, 93, 63, 64, 60, 67, 56, 73, 67, 70, 57, 75, 75, 76, 51, 70, 52, 54, 65, 48, 71, 73, 60, 72, 55, 53, 61, 72, 67, 64, 61, 102, 65, 97, 69, 63, 76, 79, 64, 60, 41, 89, 66, 67, 55, 91, 60, 60, 66, 63, 53, 57, 57, 76, 80, 56, 65, 56, 65, 60, 76, 71, 56, 67, 50, 81, 58, 63, 65, 55, 56, 76, 59, 59, 48, 68, 58, 60, 71, 62, 56, 75, 57, 105, 89, 68, 67, 55, 62, 67, 99, 65, 81, 58, 77, 102, 74, 57, 77, 69, 56, 61, 67, 70, 62, 70, 66, 62, 61, 89, 69, 75, 76, 56, 72, 59, 53, 66, 56, 63, 65, 86, 53, 59, 79, 31, 65, 70, 56, 57, 60, 59, 58, 63, 73, 65, 75, 63, 52, 68, 61, 50, 69, 52, 54, 65, 72, 84, 59, 65, 80, 52, 64, 63, 69, 64, 76, 67, 61, 54, 71, 73, 58, 56, 72, 68, 70, 54, 88, 59, 60, 57, 70, 79, 64, 66, 65, 75, 75, 67, 57, 61, 77, 61, 74, 62, 75, 64, 59, 54, 67, 124, 50, 67, 62, 73, 60, 58, 57, 59, 61, 46, 66, 64, 58, 69, 68, 70, 64, 63, 70, 63, 77, 52, 67, 58, 48, 57, 72, 62, 60, 68, 76, 63, 54, 71, 56, 60, 51, 65, 55, 64, 70, 87, 58, 46, 62, 58, 62, 63, 62, 59, 66, 68, 63, 54, 60, 88, 70, 73, 61, 69, 60, 62, 68, 62, 61, 72, 60, 55, 92, 60, 54, 63, 65, 75, 63, 81, 56, 88, 55, 101, 84, 70, 57, 60, 44, 65, 57, 55, 65, 83, 63, 66, 64, 59, 57, 51, 67, 122, 57, 76, 60, 59, 65, 61, 84, 59, 69, 55, 58, 57, 62, 72, 70, 58, 48, 124, 70, 60, 63, 51, 71, 61, 74, 75, 76, 73, 62, 45, 87, 66, 69, 56, 60, 56, 57, 61, 64, 56, 56, 52, 54, 67, 56, 48, 63, 65, 68, 91, 70, 56, 73, 60, 67, 82, 57, 52, 61, 67, 58, 61, 57, 55, 62, 67, 57, 77, 60, 79, 56, 64, 51, 62, 114, 66, 61, 44, 66, 56, 56, 75, 70, 66, 74, 90, 62, 49, 55, 63, 59, 74, 86, 60, 59, 90, 64, 70, 69, 67, 59, 82, 63, 67, 69, 56, 44, 89, 56, 63, 67, 60, 60, 66, 61, 56, 60, 56, 61, 86, 56, 58, 67, 60, 63, 60, 69, 76, 74, 71, 70, 54, 58, 53, 64, 52, 53, 61, 159, 78, 51, 51, 149, 60, 63, 65, 63, 58, 62, 62, 57, 65, 88, 69, 65, 63, 72, 76, 62, 57, 55, 70, 55, 90, 56, 55, 79, 46, 53, 58, 48, 71, 70, 67, 86, 69, 49, 68, 58, 85, 68, 55, 61, 77, 73, 88, 54, 71, 65, 66, 70, 63, 59, 65, 70, 92, 81, 51, 78, 61, 56, 62, 53, 59, 65, 62, 54, 52, 61, 82, 61, 60, 57, 68, 56, 79, 56, 55, 81, 57, 57, 62, 69, 63, 68, 64, 59, 61, 51, 71, 61, 54, 91, 60, 74, 69, 50, 65, 55, 56, 59, 66, 65, 62, 64, 79, 55, 54, 62, 63, 74, 67, 90, 54, 67, 93, 68, 52, 53, 69, 73, 41, 84, 75, 63, 90, 62, 68, 60, 75, 60, 65, 152, 67, 59, 60, 79, 62, 61, 77, 60, 76, 63, 91, 56, 66, 61, 59, 60, 57, 66, 59, 63, 69, 88, 57, 56, 68, 58, 88, 59, 97, 59, 63, 63, 60, 59, 47, 63, 80, 78, 58, 59, 61, 63, 74, 85, 75, 53, 68, 65, 54, 64, 53, 56, 59, 56, 70, 64, 81, 60, 47, 60, 68, 60, 54, 59, 62, 56, 80, 75, 53, 61, 71, 73, 60, 57, 63, 77, 54, 69, 85, 53, 54, 61, 67, 47, 62, 61, 51, 57, 89, 81, 59, 55, 66, 65, 60, 59, 63, 66, 67, 75, 62, 55, 55, 69, 56, 81, 56, 70, 65, 67, 59, 58, 57, 99, 58, 61, 67, 78, 57, 62, 56, 72, 62, 82, 52, 58, 54, 84, 55, 62, 77, 53, 101, 65, 59, 70, 75, 70, 76, 54, 63, 64, 91, 68, 54, 74, 67, 70, 91, 53, 70, 52, 61, 63, 54, 68, 76, 58, 65, 69, 58, 66, 70, 77, 53, 81, 62, 57, 66, 66, 52, 61, 69, 55, 70, 94, 93, 53, 59, 75, 68, 81, 68, 71, 50, 66, 79, 86, 65, 63, 56, 48, 74, 62, 72, 66, 69, 85, 63, 79, 63, 65, 62, 69, 54, 49, 52, 75, 90, 48, 53, 54, 50, 60, 67, 76, 62, 70, 66, 78, 54, 60, 59, 66, 65, 70, 52, 55, 52, 56, 54, 59, 69, 77, 63, 57, 75, 58, 86, 62, 80, 50, 51, 53, 90, 62, 72, 73, 73, 68, 73, 83, 47, 55, 75, 82, 65, 36, 42, 56, 86, 86, 80, 57, 57, 64, 89, 55, 73, 142, 91, 59, 119, 70, 60, 95, 57, 74, 80, 65, 79, 82, 50, 62, 48, 66, 59, 52, 69, 64, 62, 62, 75, 52, 72, 63, 55, 62, 59, 55, 60, 53, 61, 68, 55, 61, 58, 77, 82, 67, 68, 61, 75, 50, 64, 71, 79, 76, 57, 86, 56, 58, 75, 64, 51, 75, 70, 73, 79, 47, 65, 53, 62, 75, 119, 70, 84, 56, 62, 69, 59, 76, 57, 86, 70, 68, 45, 62, 76, 68, 59, 63, 105, 68, 64, 61, 63, 58, 60, 55, 54, 58, 87, 62, 66, 71, 50, 75, 69, 63, 56, 49, 49, 79, 69, 56, 53, 71, 62, 62, 44, 62, 64, 54, 72, 47, 57, 67, 56, 80, 98, 65, 57, 74, 71, 59, 68, 77, 54, 48, 54, 49, 67, 66, 54, 66, 77, 57, 54, 53, 81, 64, 45, 58, 88, 49, 42, 62, 76, 49, 60, 76, 66, 50, 59, 72, 46, 68, 57, 78, 53, 53, 59, 51, 66, 59, 69, 60, 67, 62, 63, 94, 63, 65, 67, 53, 70, 71, 62, 49, 64, 58, 80, 58, 101, 64, 57, 46, 54, 52, 74, 59, 57, 52, 72, 84, 58, 59, 86, 59, 71, 53, 65, 80, 47, 60, 77, 58, 76, 75, 52, 70, 68, 55, 58, 74, 54, 77, 49, 68, 62, 65, 52, 77, 86, 74, 61, 70, 60, 81, 83, 58, 83, 58, 62, 66, 93, 61, 52, 81, 80, 55, 56, 60, 74, 56, 69, 71, 61, 43, 73, 72, 73, 57, 52, 95, 66, 49, 76, 51, 63, 66, 57, 69, 66, 54, 72, 68, 59, 72, 58, 82, 58, 79, 91, 64, 60, 53, 55, 63, 59, 60, 57, 57, 51, 64, 96, 61, 46, 73, 48, 86, 89, 66, 67, 48, 58, 54, 42, 74, 69, 82, 77, 48, 56, 74, 54, 61, 55, 51, 52, 52, 58, 51, 65, 82, 51, 72, 62, 52, 56, 72, 59, 74, 77, 62, 49, 64, 65, 69, 50, 80, 75, 59, 63, 87, 116, 70, 60, 93, 74, 60, 68, 58, 64, 123, 74, 64, 64, 51, 61, 65, 61, 54, 58, 65, 53, 91, 52, 54, 61, 61, 75, 107, 81, 67, 95, 51, 66, 55, 69, 63, 61, 63, 71, 130, 50, 67, 60, 71, 69, 50, 75, 52, 71, 76, 45, 63, 62, 64, 66, 56, 78, 70, 65, 63, 79, 76, 52, 46, 59, 66, 48, 54, 64, 54, 60, 57, 41, 64, 61, 65, 84, 73, 55, 98, 84, 56, 53, 67, 63, 63, 47, 56, 76, 63, 57, 49, 64, 96, 52, 71, 74, 52, 56, 70, 75, 54, 93, 53, 97, 63, 59, 58, 55, 99, 57, 97, 62, 76, 77, 54, 95, 53, 88, 58, 71, 60, 79, 60, 72, 62, 70, 51, 76, 57, 72, 79, 74, 59, 56, 55, 72, 45, 72, 57, 82, 54, 67, 97, 76, 76, 77, 71, 67, 54, 48, 85, 84, 82, 69, 52, 57, 67, 78, 54, 70, 75, 167, 61, 71, 59, 68, 60, 81, 70, 56, 73, 63, 72, 98, 55, 57, 66, 54, 64, 62, 67, 53, 55, 47, 57, 53, 81, 41, 46, 89, 68, 73, 62, 72, 65, 56, 67, 53, 60, 95, 49, 85, 66, 49, 69, 65, 54, 62, 70, 62, 59, 77, 60, 55, 71, 51, 63, 56, 62, 56, 72, 73, 67, 67, 63, 95, 71, 54, 48, 50, 69, 92, 54, 48, 61, 75, 114, 71, 62, 70, 58, 91, 104, 66, 62, 91, 49, 70, 90, 86, 63, 92, 65, 60, 82, 58, 67, 71, 57, 60, 74, 52, 56, 74, 62, 65, 62, 61, 94, 63, 63, 56, 68, 71, 73, 81, 51, 63, 67, 58, 50, 66, 101, 41, 54, 70, 133, 56, 73, 66, 72, 62, 71, 69, 51, 61, 60, 110, 75, 62, 71, 68, 69, 57, 101, 49, 94, 59, 69, 71, 56, 59, 70, 40, 75, 53, 78, 69, 50, 72, 79, 82, 63, 90, 78, 65, 61, 43, 68, 81, 77, 53, 63, 66, 68, 70, 66, 53, 60, 70, 61, 69, 64, 81, 51, 74, 57, 65, 77, 75, 55, 71, 82, 59, 52, 56, 68, 80, 52, 72, 65, 81, 71, 60, 55, 63, 63, 93, 62, 68, 59, 56, 65, 111, 71, 52, 63, 58, 63, 49, 40, 50, 58, 52, 63, 74, 83, 61, 49, 52, 63, 62, 80, 52, 57, 53, 105, 60, 55, 74, 57, 77, 51, 64, 63, 53, 55, 109, 70, 82, 57, 67, 70, 69, 67, 71, 118, 68, 69, 65, 61, 75, 59, 61, 61, 70, 53, 83, 53, 110, 66, 71, 85, 82, 60, 56, 66, 89, 57, 51, 65, 60, 57, 83, 65, 59, 79, 80, 62, 73, 71, 82, 65, 89, 97, 55, 62, 53, 65, 66, 51, 82, 68, 44, 67, 78, 69, 81, 73, 57, 61, 51, 71, 72, 64, 62, 46, 60, 62, 68, 46, 57, 59, 100, 71, 62, 53, 68, 50, 62, 64, 52, 74, 66, 70, 68, 58, 73, 74, 103, 63, 75, 69, 71, 57, 53, 106, 59, 60, 60, 56, 51, 57, 47, 70, 71, 80, 58, 89, 51, 74, 56, 76, 66, 57, 66, 63, 57, 56, 63, 83, 65, 78, 59, 60, 59, 57, 76, 54, 62, 74, 67, 69, 95, 68, 67, 59, 86, 59, 53, 64, 62, 63, 71, 77, 59, 66, 69, 53, 80, 47, 74, 71, 60, 92, 67, 53, 63, 76, 51, 70, 56, 56, 54, 60, 49, 67, 68, 51, 64, 62, 40, 68, 67, 57, 56, 61, 52, 82, 59, 77, 61, 65, 72, 47, 67, 61, 62, 92, 68, 54, 62, 85, 37, 88, 51, 47, 85, 65, 67, 56, 77, 58, 90, 61, 64, 58, 66, 66, 66, 64, 61, 79, 61, 83, 89, 50, 63, 82, 62, 63, 75, 61, 71, 62, 74, 83, 76, 59, 61, 64, 60, 67, 71, 71, 50, 54, 54, 55, 100, 57, 40, 56, 70, 57, 75, 68, 58, 50, 81, 61, 51, 69, 77, 72, 57, 81, 65, 73, 64, 61, 58, 55, 71, 71, 62, 77, 68, 90, 58, 60, 79, 68, 52, 61, 90, 70, 75, 66, 96, 79, 66, 56, 61, 68, 81, 65, 70, 69, 71, 65, 56, 77, 65, 69, 51, 69, 82, 50, 83, 59, 61, 54, 51, 48, 61, 58, 59, 75, 63, 75, 49, 63, 66, 66, 58, 54, 70, 77, 95, 54, 61, 48, 58, 52, 57, 105, 62, 71, 56, 73, 74, 65, 61, 74, 60, 66, 68, 59, 82, 50, 62, 58, 86, 66, 79, 51, 68, 75, 49, 61, 67, 54, 56, 47, 62, 72, 58, 60, 67, 51, 91, 65, 48, 83, 108, 64, 68, 80, 86, 97, 64, 70, 68, 40, 65, 63, 50, 54, 76, 62, 77, 62, 63, 56, 49, 87, 59, 68, 54, 62, 71, 77, 68, 71, 67, 71, 91, 58, 72, 67, 44, 64, 55, 89, 57, 68, 64, 96, 68, 68, 65, 57, 58, 67, 53, 54, 69, 49, 63, 59, 88, 71, 49, 61, 68, 73, 81, 45, 90, 71, 74, 92, 56, 81, 67, 76, 74, 58, 51, 59, 71, 51, 92, 59, 56, 66, 87, 115, 58, 49, 71, 74, 75, 77, 67, 51, 62, 68, 54, 72, 72, 83, 61, 64, 80, 56, 47, 82, 58, 48, 56, 48, 57, 68, 72, 55, 75, 50, 67, 63, 82, 60, 80, 57, 70, 63, 47, 48, 58, 70, 71, 92, 65, 52, 62, 68, 65, 68, 55, 65, 82, 64, 50, 77, 66, 76, 52, 81, 68, 64, 59, 67, 66, 53, 65, 81, 76, 58, 71, 72, 79, 74, 69, 64, 62, 75, 72, 61, 68, 57, 61, 36, 56, 71, 83, 83, 64, 63, 80, 81, 55, 47, 81, 62, 60, 62, 58, 68, 77, 49, 79, 77, 60, 63, 58, 48, 65, 58, 68, 54, 68, 68, 69, 45, 69, 58, 50, 55, 49, 56, 77, 64, 80, 57, 73, 65, 65, 75, 50, 57, 84, 62, 68, 57, 60, 62, 49, 71, 71, 63, 58, 65, 68, 46, 67, 62, 83, 57, 72, 55, 59, 75, 68, 55, 72, 79, 77, 65, 63, 54, 69, 69, 70, 69, 55, 66, 83, 82, 53, 54, 75, 68, 56, 79, 56, 64, 53, 71, 53, 83, 42, 73, 58, 86, 55, 67, 59, 83, 64, 109, 62, 52, 72, 81, 55, 48, 67, 69, 68, 95, 54, 58, 68, 60, 60, 64, 55, 66, 61, 62, 50, 70, 52, 59, 65, 82, 66, 79, 51, 52, 71, 79, 45, 90, 38, 60, 77, 63, 62, 94, 60, 47, 48, 57, 78, 77, 86, 72, 67, 67, 51, 56, 60, 60, 61, 70, 59, 68, 65, 65, 95, 68, 67, 65, 50, 74, 67, 78, 69, 87, 45, 52, 70, 50, 85, 69, 71, 63, 59, 59, 62, 54, 48, 73, 67, 77, 53, 67, 109, 72, 71, 51, 63, 84, 96, 66, 63, 49, 66, 63, 71, 57, 78, 54, 58, 62, 64, 61, 74, 40, 74, 61, 53, 60, 75, 47, 119, 147, 76, 76, 72, 65, 56, 58, 87, 55, 78, 84, 51, 61, 65, 62, 107, 59, 139, 70, 60, 62, 66, 110, 60, 81, 67, 48, 68, 87, 56, 67, 39, 60, 75, 69, 63, 73, 81, 65, 65, 56, 65, 51, 70, 86, 62, 52, 64, 68, 74, 81, 64, 76, 60, 55, 59, 59, 57, 60, 64, 71, 55, 70, 66, 82, 77, 52, 76, 62, 78, 53, 56, 68, 57, 60, 56, 90, 52, 71, 58, 83, 88, 67, 73, 50, 86, 81, 68, 59, 79, 55, 53, 100, 62, 70, 70, 64, 65, 77, 60, 58, 49, 49, 95, 98, 74, 57, 91, 81, 77, 52, 57, 94, 64, 78, 53, 72, 51, 67, 97, 63, 61, 59, 56, 113, 75, 53, 77, 60, 55, 68, 71, 75, 58, 67, 65, 92, 59, 114, 51, 63, 58, 69, 61, 41, 68, 56, 66, 76, 80, 61, 76, 88, 78, 34, 68, 66, 70, 51, 69, 59, 61, 54, 72, 60, 67, 49, 57, 62, 60, 82, 48, 49, 53, 60, 98, 63, 65, 61, 82, 64, 61, 62, 71, 65, 42, 54, 65, 73, 59, 46, 70, 74, 60, 73, 86, 57, 64, 91, 92, 75, 70, 53, 76, 72, 55, 68, 55, 59, 67, 62, 105, 59, 68, 65, 58, 68, 64, 78, 70, 66, 60, 55, 64, 55, 68, 68, 66, 77, 47, 102, 63, 78, 78, 48, 68, 75, 54, 71, 68, 59, 63, 67, 47, 59, 75, 61, 46, 62, 65, 50, 52, 87, 73, 52, 94, 64, 68, 67, 79, 59, 117, 53, 64, 65, 80, 58, 53, 66, 76, 77, 78, 136, 56, 59, 68, 61, 53, 110, 88, 51, 58, 61, 60, 56, 50, 46, 73, 84, 71, 56, 61, 58, 65, 80, 68, 74, 57, 62, 61, 51, 53, 62, 52, 52, 66, 69, 70, 69, 59, 72, 60, 61, 77, 66, 75, 71, 49, 59, 62, 61, 52, 68, 73, 80, 62, 65, 67, 79, 62, 57, 79, 74, 72, 71, 73, 56, 65, 58, 53, 64, 62, 56, 98, 73, 71, 64, 54, 66, 66, 87, 79, 51, 63, 52, 62, 64, 48, 56, 51, 66, 61, 64, 72, 58, 81, 64, 53, 80, 57, 44, 50, 64, 80, 60, 54, 68, 76, 64, 69, 90, 45, 71, 62, 58, 60, 70, 52, 76, 56, 73, 57, 54, 61, 101, 59, 63, 84, 56, 68, 101, 64, 56, 58, 66, 70, 45, 78, 66, 71, 69, 85, 57, 73, 64, 66, 60, 74, 57, 82, 53, 61, 54, 49, 69, 71, 67, 76, 40, 48, 63, 69, 54, 57, 58, 62, 82, 42, 76, 68, 70, 67, 72, 48, 65, 65, 64, 60, 59, 77, 66, 56, 59, 55, 98, 62, 62, 65, 90, 57, 86, 60, 66, 80, 71, 80, 81, 60, 57, 86, 52, 55, 64, 65, 73, 66, 69, 58, 78, 47, 68, 94, 71, 65, 83, 76, 59, 74, 69, 65, 79, 72, 55, 78, 65, 64, 56, 51, 91, 56, 65, 55, 60, 93, 60, 50, 52, 68, 57, 94, 60, 68, 53, 80, 71, 75, 57, 70, 52, 68, 64, 48, 62, 80, 70, 64, 65, 75, 70, 75, 53, 72, 65, 56, 71, 80, 68, 77, 61, 90, 68, 64, 47, 64, 51, 62, 90, 73, 73, 58, 67, 70, 53, 47, 62, 67, 59, 60, 78, 71, 63, 90, 65, 74, 89, 78, 57, 57, 49, 62, 55, 81, 64, 72, 72, 66, 43, 59, 60, 72, 62, 56, 76, 63, 69, 51, 64, 59, 78, 62, 56, 50, 58, 61, 62, 77, 73, 61, 67, 67, 71, 69, 74, 58, 76, 80, 52, 58, 61, 59, 56, 86, 62, 55, 52, 89, 72, 88, 53, 62, 64, 50, 62, 66, 72, 64, 63, 91, 63, 58, 51, 69, 78, 60, 55, 76, 78, 71, 53, 46, 55, 91, 57, 49, 74, 77, 58, 63, 53, 58, 57, 62, 82, 53, 73, 62, 62, 53, 53, 64, 63, 108, 81, 72, 71, 63, 58, 79, 79, 69, 64, 62, 57, 55, 59, 57, 87, 64, 59, 63, 54, 102, 88, 71, 65, 65, 70, 73, 71, 56, 70, 67, 60, 62, 81, 65, 67, 60, 71, 63, 61, 54, 91, 58, 67, 69, 62, 63, 68, 101, 66, 67, 69, 61, 103, 52, 62, 67, 58, 83, 69, 92, 56, 77, 72, 72, 81, 103, 59, 69, 66, 67, 55, 71, 58, 57, 71, 73, 68, 55, 76, 46, 73, 80, 77, 60, 59, 104, 64, 55, 59, 90, 70, 59, 63, 78, 65, 65, 60, 45, 70, 64, 77, 72, 51, 80, 63, 68, 56, 46, 55, 60, 56, 76, 60, 65, 65, 67, 59, 82, 65, 55, 57, 63, 60, 57, 74, 64, 82, 66, 69, 64, 65, 57, 60, 58, 66, 65, 94, 61, 56, 44, 94, 123, 69, 59, 70, 72, 55, 82, 52, 56, 58, 56, 41, 65, 58, 80, 90, 51, 50, 57, 74, 49, 84, 54, 107, 51, 42, 82, 75, 49, 65, 65, 62, 62, 74, 52, 61, 70, 58, 61, 85, 63, 51, 54, 55, 62, 62, 57, 89, 65, 79, 70, 58, 60, 52, 60, 71, 67, 58, 64, 70, 57, 50, 52, 50, 64, 69, 67, 59, 90, 62, 70, 62, 49, 70, 62, 54, 56, 54, 72, 41, 77, 69, 66, 61, 71, 61, 62, 71, 69, 49, 76, 63, 57, 64, 79, 101, 70, 82, 79, 67, 69, 76, 71, 76, 49, 77, 70, 86, 79, 80, 60, 64, 68, 71, 72, 54, 57, 63, 61, 53, 64, 57, 97, 56, 46, 61, 64, 72, 63, 71, 50, 79, 57, 64, 57, 60, 72, 80, 56, 57, 65, 58, 53, 82, 55, 49, 77, 52, 49, 61, 61, 58, 63, 58, 65, 68, 73, 96, 66, 66, 61, 90, 59, 61, 82, 73, 79, 54, 72, 74, 69, 66, 55, 98, 82, 72, 60, 66, 115, 63, 61, 53, 58, 67, 69, 70, 51, 69, 68, 64, 67, 45, 84, 57, 45, 75, 61, 79, 84, 52, 63, 55, 107, 63, 64, 63, 88, 72, 61, 52, 79, 90, 71, 71, 67, 58, 62, 56, 56, 72, 93, 48, 105, 62, 59, 65, 55, 71, 77, 62, 60, 66, 70, 71, 70, 49, 57, 62, 132, 79, 56, 59, 69, 69, 66, 77, 75, 59, 48, 67, 64, 76, 58, 63, 63, 68, 73, 61, 84, 69, 63, 51, 59, 66, 44, 73, 65, 74, 60, 61, 70, 86, 69, 73, 78, 66, 68, 90, 76, 65, 76, 62, 54, 58, 60, 66, 69, 60, 75, 89, 73, 59, 75, 40, 82, 89, 69, 92, 72, 74, 61, 54, 101, 62, 43, 66, 60, 70, 66, 57, 49, 64, 76, 71, 44, 62, 87, 64, 75, 71, 70, 73, 54, 60, 56, 54, 70, 67, 79, 45, 64, 60, 61, 48, 68, 63, 61, 61, 72, 75, 98, 69, 48, 55, 87, 60, 72, 55, 67, 75, 70, 67, 73, 65, 63, 55, 71, 51, 64, 169, 51, 61, 75, 66, 62, 73, 69, 62, 57, 55, 76, 65, 85, 67, 68, 63, 66, 71, 57, 82, 64, 70, 77, 52, 44, 51, 53, 49, 83, 55, 54, 47, 57, 56, 70, 114, 69, 47, 62, 53, 85, 48, 61, 69, 83, 84, 65, 84, 55, 71, 62, 60, 60, 75, 64, 82, 70, 69, 66, 89, 61, 77, 47, 60, 79, 67, 62, 65, 44, 69, 76, 70, 66, 47, 74, 58, 57, 79, 69, 65, 71, 57, 73, 63, 61, 80, 62, 66, 52, 71, 71, 55, 78, 77, 59, 66, 61, 63, 60, 65, 64, 73, 88, 60, 86, 66, 66, 68, 63, 54, 65, 48, 56, 84, 62, 69, 78, 60, 69, 55, 74, 68, 70, 64, 53, 78, 67, 49, 49, 63, 74, 66, 73, 114, 61, 41, 67, 63, 56, 74, 98, 59, 62, 60, 80, 65, 61, 94, 58, 72, 64, 72, 57, 66, 82, 71, 69, 67, 71, 80, 78, 63, 61, 50, 57, 71, 79, 65, 64, 70, 76, 48, 64, 67, 49, 56, 94, 50, 57, 76, 58, 64, 67, 55, 49, 59, 55, 66, 79, 76, 58, 50, 64, 85, 43, 52, 61, 59, 40, 61, 38, 62, 66, 60, 100, 58, 68, 56, 73, 72, 53, 73, 75, 48, 62, 52, 77, 67, 37, 56, 59, 49, 80, 81, 52, 68, 63, 50, 37, 65, 64, 48, 64, 75, 86, 59, 74, 96, 60, 56, 62, 56, 87, 65, 73, 69, 55, 77, 66, 51, 53, 52, 76, 78, 84, 102, 73, 57, 65, 67, 62, 87, 71, 69, 97, 61, 108, 77, 80, 55, 75, 72, 58, 66, 70, 53, 70, 59, 96, 57, 82, 58, 65, 63, 58, 64, 42, 67, 57, 57, 85, 62, 87, 64, 71, 59, 55, 55, 54, 59, 53, 69, 67, 92, 65, 99, 55, 90, 71, 73, 93, 79, 53, 65, 75, 113, 73, 73, 79, 67, 65, 54, 66, 58, 70, 60, 60, 57, 85, 65, 53, 63, 56, 96, 55, 60, 50, 48, 74, 74, 67, 66, 59, 51, 71, 63, 59, 54, 113, 67, 61, 64, 73, 58, 72, 48, 77, 61, 67, 65, 77, 55, 67, 57, 65, 55, 51, 57, 63, 74, 56, 82, 46, 72, 90, 54, 106, 56, 73, 73, 51, 52, 65, 57, 56, 77, 55, 69, 74, 70, 64, 59, 48, 63, 66, 53, 105, 47, 63, 81, 77, 63, 74, 67, 53, 65, 58, 80, 59, 89, 63, 57, 93, 74, 36, 55, 55, 54, 74, 59, 50, 58, 63, 81, 70, 70, 61, 67, 60, 63, 70, 66, 63, 51, 59, 49, 67, 75, 50, 76, 58, 86, 93, 58, 67, 74, 49, 80, 71, 70, 62, 62, 56, 66, 51, 50, 94, 66, 53, 58, 63, 50, 68, 45, 58, 64, 72, 59, 69, 51, 40, 53, 63, 85, 58, 119, 55, 72, 85, 71, 45, 52, 42, 63, 66, 58, 54, 60, 39, 80, 68, 75, 60, 65, 65, 53, 56, 92, 56, 63, 76, 61, 69, 63, 37, 68, 76, 71, 63, 52, 57, 64, 72, 81, 85, 45, 64, 57, 60, 65, 57, 61, 108, 64, 76, 55, 47, 54, 76, 50, 79, 65, 69, 71, 70, 53, 82, 52, 63, 50, 61, 77, 63, 55, 72, 68, 58, 51, 71, 72, 57, 71, 74, 64, 61, 44, 84, 70, 51, 101, 85, 59, 58, 77, 75, 73, 53, 55, 53, 67, 76, 62, 55, 70, 60, 97, 71, 64, 63, 70, 71, 51, 57, 56, 55, 67, 71, 77, 65, 76, 53, 83, 63, 64, 56, 75, 54, 64, 66, 55, 53, 59, 50, 72, 53, 59, 63, 76, 58, 70, 94, 68, 62, 73, 49, 54, 74, 78, 44, 72, 60, 76, 51, 57, 65, 68, 74, 59, 56, 68, 73, 62, 56, 47, 71, 82, 85, 73, 60, 64, 49, 52, 52, 74, 77, 74, 66, 68, 67, 77, 62, 65, 53, 47, 91, 58, 66, 56, 65, 88, 82, 68, 71, 82, 56, 54, 52, 64, 55, 38, 78, 59, 42, 63, 62, 65, 72, 65, 90, 82, 57, 58, 57, 75, 62, 50, 51, 63, 49, 71, 96, 68, 69, 76, 56, 60, 71, 72, 57, 66, 56, 81, 55, 57, 73, 60, 59, 80, 53, 60, 81, 59, 71, 58, 46, 73, 86, 54, 65, 78, 74, 56, 62, 64, 56, 49, 64, 74, 71, 62, 72, 60, 89, 55, 61, 56, 76, 55, 67, 56, 83, 74, 62, 64, 81, 69, 61, 69, 75, 82, 55, 62, 79, 64, 93, 72, 72, 64, 81, 80, 65, 86, 55, 67, 74, 76, 65, 103, 60, 49, 66, 63, 78, 55, 89, 58, 54, 95, 71, 59, 54, 50, 58, 63, 56, 73, 70, 71, 56, 67, 85, 62, 89, 81, 63, 50, 51, 76, 51, 43, 75, 77, 70, 98, 68, 61, 47, 83, 59, 38, 46, 63, 65, 61, 42, 62, 50, 83, 51, 80, 64, 75, 55, 52, 56, 62, 63, 65, 67, 57, 81, 81, 57, 55, 45, 48, 54, 63, 69, 67, 89, 54, 121, 46, 77, 81, 58, 60, 54, 60, 68, 93, 65, 73, 65, 74, 80, 53, 57, 58, 71, 74, 71, 53, 49, 52, 75, 58, 58, 57, 61, 49, 81, 56, 54, 66, 91, 68, 80, 63, 69, 46, 75, 58, 94, 55, 57, 73, 49, 49, 53, 89, 60, 73, 64, 60, 75, 57, 66, 76, 49, 46, 152, 59, 52, 48, 50, 71, 70, 84, 68, 59, 49, 64, 70, 84, 78, 58, 83, 63, 53, 49, 62, 63, 60, 50, 55, 49, 49, 71, 56, 56, 59, 62, 55, 48, 73, 118, 65, 50, 89, 57, 52, 65, 60, 73, 55, 56, 53, 81, 74, 60, 64, 57, 78, 55, 55, 81, 52, 60, 69, 78, 50, 82, 72, 90, 90, 87, 68, 59, 55, 76, 50, 58, 57, 58, 118, 81, 68, 72, 107, 62, 63, 100, 48, 70, 53, 61, 71, 60, 57, 53, 72, 57, 53, 89, 104, 66, 110, 56, 66, 61, 36, 60, 60, 57, 72, 64, 100, 52, 55, 63, 71, 62, 87, 88, 72, 68, 51, 60, 61, 67, 81, 125, 43, 62, 67, 75, 80, 69, 69, 62, 57, 40, 58, 50, 58, 66, 63, 61, 79, 69, 64, 68, 51, 71, 63, 99, 98, 59, 66, 45, 67, 50, 45, 68, 79, 61, 58, 72, 74, 67, 76, 57, 91, 56, 67, 87, 75, 79, 93, 77, 60, 56, 63, 68, 66, 78, 60, 53, 67, 79, 56, 50, 53, 66, 68, 76, 76, 56, 64, 68, 56, 49, 49, 87, 67, 53, 41, 56, 81, 63, 67, 56, 86, 57, 57, 45, 68, 63, 53, 75, 54, 57, 79, 70, 59, 76, 76, 68, 62, 57, 74, 67, 63, 62, 85, 49, 73, 61, 82, 54, 73, 72, 64, 57, 58, 113, 65, 54, 55, 60, 75, 54, 80, 77, 32, 67, 71, 67, 67, 69, 68, 60, 46, 82, 66, 121, 54, 62, 58, 56, 54, 67, 53, 61, 70, 52, 72, 50, 76, 71, 62, 73, 62, 77, 54, 53, 79, 70, 52, 62, 50, 66, 43, 68, 49, 61, 59, 52, 78, 61, 93, 52, 85, 85, 56, 62, 49, 48, 57, 86, 69, 52, 73, 69, 57, 55, 63, 67, 81, 95, 64, 67, 67, 54, 69, 57, 77, 56, 59, 78, 49, 58, 57, 62, 61, 70, 69, 45, 63, 59, 63, 66, 57, 66, 79, 52, 61, 52, 54, 51, 60, 74, 55, 59, 69, 52, 58, 65, 57, 71, 68, 55, 77, 85, 54, 72, 69, 82, 78, 78, 63, 59, 60, 63, 87, 75, 61, 77, 57, 83, 48, 64, 48, 58, 68, 69, 70, 79, 61, 65, 60, 64, 53, 72, 83, 69, 73, 85, 82, 52, 84, 62, 60, 84, 91, 73, 66, 79, 83, 65, 86, 57, 65, 90, 55, 59, 79, 54, 56, 67, 81, 66, 88, 71, 66, 58, 61, 62, 70, 70, 65, 61, 50, 77, 67, 76, 60, 70, 67, 57, 64, 84, 84, 41, 75, 66, 86, 71, 67, 51, 72, 83, 58, 88, 67, 74, 79, 63, 63, 76, 78, 52, 82, 93, 57, 84, 65, 58, 56, 79, 62, 61, 77, 61, 78, 71, 43, 73, 42, 56, 78, 64, 69, 63, 94, 65, 52, 74, 82, 55, 76, 72, 54, 59, 63, 56, 44, 45, 59, 69, 62, 49, 62, 72, 86, 80, 51, 55, 51, 62, 97, 77, 63, 77, 64, 58, 59, 49, 42, 46, 83, 71, 56, 61, 71, 61, 70, 91, 45, 55, 66, 96, 56, 94, 48, 48, 64, 71, 57, 76, 69, 57, 72, 65, 87, 44, 45, 64, 65, 68, 81, 59, 63, 57, 63, 76, 49, 66, 52, 69, 200, 62, 71, 66, 66, 53, 73, 43, 70, 93, 57, 54, 45, 69, 60, 53, 53, 129, 73, 68, 64, 50, 55, 84, 78, 71, 51, 60, 109, 57, 75, 85, 71, 63, 55, 61, 51, 59, 52, 61, 72, 61, 59, 59, 80, 70, 71, 84, 59, 58, 65, 41, 57, 67, 61, 61, 69, 68, 74, 47, 57, 62, 66, 65, 54, 43, 65, 48, 50, 77, 85, 68, 59, 71, 100, 67, 56, 53, 89, 55, 63, 76, 59, 47, 49, 69, 65, 57, 94, 79, 64, 63, 59, 64, 65, 75, 62, 53, 53, 66, 84, 101, 78, 74, 75, 50, 69, 62, 64, 65, 64, 54, 67, 75, 59, 76, 70, 69, 78, 68, 67, 74, 60, 93, 67, 56, 66, 55, 59, 52, 42, 88, 79, 68, 76, 46, 50, 42, 55, 61, 71, 55, 63, 66, 71, 62, 61, 67, 65, 78, 79, 91, 72, 57, 50, 73, 77, 81, 68, 81, 68, 65, 69, 59, 57, 67, 77, 58, 69, 65, 62, 71, 69, 86, 62, 63, 84, 50, 73, 60, 68, 85, 61, 70, 52, 63, 54, 66, 106, 71, 80, 47, 79, 60, 96, 60, 69, 71, 48, 64, 64, 48, 85, 77, 71, 60, 53, 59, 59, 75, 64, 88, 78, 59, 52, 58, 49, 129, 53, 72, 72, 83, 70, 94, 40, 78, 71, 91, 59, 60, 63, 70, 57, 45, 65, 41, 69, 62, 60, 59, 69, 88, 78, 70, 53, 131, 50, 43, 77, 70, 65, 76, 59, 78, 64, 62, 51, 59, 67, 60, 71, 46, 75, 58, 54, 65, 40, 53, 42, 64, 50, 79, 69, 71, 72, 73, 68, 77, 67, 77, 76, 46, 61, 55, 57, 59, 70, 63, 67, 42, 62, 63, 58, 65, 76, 59, 58, 48, 54, 61, 52, 72, 70, 51, 72, 71, 68, 76, 96, 60, 80, 70, 70, 69, 51, 57, 53, 68, 91, 61, 65, 68, 43, 60, 88, 60, 47, 64, 60, 66, 81, 57, 45, 73, 76, 77, 64, 59, 61, 45, 75, 54, 56, 85, 63, 72, 45, 84, 89, 66, 58, 86, 58, 74, 58, 61, 73, 59, 80, 69, 62, 63, 57, 46, 40, 70, 76, 58, 68, 88, 55, 59, 81, 84, 60, 66, 66, 53, 68, 58, 64, 60, 66, 78, 84, 55, 68, 61, 108, 65, 67, 113, 74, 106, 69, 77, 59, 51, 66, 55, 65, 59, 38, 48, 68, 85, 66, 80, 44, 65, 79, 82, 60, 61, 73, 61, 69, 76, 62, 58, 75, 47, 82, 72, 94, 71, 76, 58, 69, 51, 66, 59, 76, 59, 65, 49, 61, 79, 65, 61, 75, 65, 55, 81, 63, 59, 82, 65, 59, 71, 61, 54, 75, 63, 61, 68, 85, 41, 56, 65, 74, 78, 56, 78, 77, 66, 76, 44, 62, 64, 75, 50, 71, 74, 87, 95, 77, 56, 34, 61, 78, 63, 55, 63, 63, 53, 66, 91, 56, 62, 69, 63, 64, 64, 109, 52, 63, 64, 96, 46, 65, 86, 79, 86, 64, 80, 54, 83, 97, 93, 73, 86, 65, 47, 124, 57, 60, 61, 79, 56, 52, 60, 67, 57, 53, 66, 66, 48, 60, 68, 79, 61, 75, 56, 70, 66, 63, 74, 68, 86, 57, 72, 84, 66, 87, 60, 80, 42, 69, 71, 58, 68, 61, 56, 50, 54, 71, 62, 59, 44, 69, 73, 64, 72, 104, 81, 55, 60, 77, 64, 82, 92, 54, 75, 70, 68, 59, 59, 69, 61, 54, 78, 83, 66, 62, 50, 80, 72, 52, 81, 61, 68, 75, 78, 58, 49, 57, 49, 78, 49, 51, 69, 44, 48, 57, 106, 66, 68, 79, 77, 63, 64, 61, 82, 68, 55, 50, 55, 79, 69, 71, 71, 49, 42, 77, 86, 90, 74, 64, 77, 63, 74, 85, 52, 75, 85, 67, 115, 51, 55, 55, 53, 80, 61, 60, 48, 69, 49, 74, 76, 44, 44, 79, 64, 83, 57, 60, 57, 65, 60, 54, 59, 56, 70, 73, 46, 71, 82, 58, 77, 98, 60, 72, 69, 85, 88, 47, 141, 54, 78, 63, 75, 75, 66, 64, 50, 61, 72, 59, 49, 65, 49, 55, 63, 69, 59, 65, 66, 71, 66, 59, 58, 69, 83, 71, 61, 63, 58, 59, 72, 77, 66, 64, 57, 81, 59, 52, 76, 77, 65, 81, 61, 52, 68, 87, 67, 61, 63, 81, 61, 56, 64, 84, 67, 63, 68, 57, 69, 66, 78, 63, 58, 70, 57, 80, 82, 75, 66, 75, 60, 69, 64, 67, 77, 59, 64, 60, 58, 69, 59, 90, 55, 76, 61, 70, 61, 76, 60, 59, 65, 62, 75, 65, 66, 54, 56, 68, 59, 80, 78, 52, 135, 58, 63, 73, 114, 67, 62, 47, 63, 67, 54, 58, 59, 81, 55, 72, 76, 43, 73, 74, 61, 49, 68, 67, 92, 69, 57, 39, 54, 52, 78, 85, 77, 55, 57, 67, 53, 57, 86, 78, 108, 76, 70, 65, 52, 81, 55, 68, 49, 57, 66, 64, 62, 68, 86, 65, 83, 73, 56, 96, 45, 73, 59, 66, 60, 86, 57, 61, 56, 63, 57, 72, 51, 52, 44, 61, 76, 48, 53, 57, 83, 47, 76, 76, 75, 53, 67, 56, 54, 62, 60, 72, 50, 87, 56, 64, 64, 35, 60, 56, 74, 44, 71, 67, 68, 67, 55, 92, 73, 62, 57, 71, 71, 47, 65, 64, 67, 63, 44, 67, 86, 59, 66, 82, 54, 61, 77, 62, 64, 72, 28, 107, 64, 54, 62, 72, 48, 61, 90, 52, 80, 48, 73, 66, 69, 86, 71, 68, 71, 69, 66, 98, 54, 82, 73, 86, 73, 67, 79, 93, 84, 66, 73, 40, 58, 50, 63, 39, 35, 63, 76, 73, 114, 45, 44, 86, 73, 61, 38, 60, 49, 79, 135, 59, 54, 60, 75, 69, 74, 56, 52, 59, 65, 74, 58, 74, 70, 60, 86, 67, 67, 57, 57, 76, 60, 54, 52, 77, 62, 65, 51, 53, 58, 73, 57, 56, 71, 56, 88, 78, 68, 96, 55, 77, 65, 55, 65, 66, 80, 67, 69, 58, 52, 72, 43, 66, 71, 59, 69, 71, 64, 67, 96, 67, 69, 78, 55, 101, 50, 88, 51, 55, 80, 70, 69, 67, 75, 96, 50, 49, 58, 69, 65, 53, 67, 66, 70, 93, 68, 79, 60, 68, 103, 76, 69, 54, 56, 71, 72, 55, 55, 55, 54, 60, 83, 57, 58, 52, 68, 50, 76, 65, 71, 57, 78, 78, 39, 72, 74, 74, 74, 61, 120, 81, 70, 61, 55, 77, 63, 60, 60, 55, 64, 63, 74, 65, 67, 56, 67, 76, 64, 67, 41, 50, 74, 84, 77, 54, 69, 54, 90, 55, 58, 62, 66, 46, 66, 63, 84, 74, 60, 52, 58, 78, 73, 68, 115, 55, 75, 56, 71, 46, 48, 44, 91, 52, 70, 69, 77, 83, 82, 61, 50, 36, 72, 64, 74, 67, 52, 65, 67, 60, 74, 49, 54, 43, 76, 68, 79, 56, 55, 74, 86, 103, 78, 50, 69, 69, 60, 59, 57, 67, 84, 84, 68, 35, 70, 72, 61, 62, 61, 62, 68, 79, 69, 49, 69, 78, 85, 67, 57, 65, 67, 128, 70, 80, 61, 87, 44, 45, 62, 49, 59, 77, 84, 62, 53, 61, 58, 79, 78, 103, 117, 85, 121, 55, 61, 87, 67, 68, 89, 76, 62, 44, 56, 65, 66, 57, 83, 70, 53, 75, 51, 73, 58, 59, 102, 75, 76, 60, 68, 83, 68, 59, 53, 30, 82, 62, 47, 57, 58, 74, 102, 49, 67, 54, 91, 54, 59, 66, 49, 77, 71, 50, 105, 60, 65, 57, 84, 69, 95, 56, 76, 67, 46, 74, 64, 66, 59, 74, 59, 116, 67, 85, 45, 68, 61, 77, 68, 55, 85, 91, 64, 86, 45, 58, 62, 60, 57, 58, 79, 55, 64, 60, 68, 74, 72, 97, 57, 65, 69, 56, 64, 58, 44, 43, 42, 59, 57, 78, 53, 51, 61, 73, 104, 76, 69, 80, 45, 87, 71, 62, 57, 64, 66, 113, 54, 77, 90, 76, 62, 70, 76, 72, 95, 51, 43, 94, 76, 60, 57, 62, 53, 49, 68, 76, 68, 57, 49, 55, 51, 71, 70, 76, 56, 55, 62, 62, 82, 70, 67, 77, 48, 64, 33, 49, 53, 52, 65, 64, 56, 53, 56, 90, 64, 86, 79, 54, 58, 63, 69, 46, 65, 149, 84, 65, 53, 55, 50, 50, 67, 73, 44, 49, 82, 60, 84, 51, 80, 61, 76, 60, 64, 78, 53, 43, 72, 95, 77, 64, 69, 43, 75, 59, 109, 72, 62, 71, 65, 72, 69, 66, 65, 75, 60, 93, 63, 73, 56, 54, 52, 67, 68, 92, 75, 90, 70, 67, 51, 56, 65, 109, 70, 101, 88, 67, 66, 56, 61, 71, 65, 69, 38, 65, 70, 80, 78, 64, 75, 46, 66, 39, 66, 70, 63, 70, 53, 59, 44, 45, 54, 79, 84, 102, 64, 87, 66, 58, 49, 74, 47, 61, 69, 62, 75, 62, 90, 59, 43, 60, 40, 55, 79, 66, 61, 51, 69, 54, 107, 46, 51, 69, 54, 67, 51, 57, 55, 62, 61, 61, 75, 63, 59, 62, 77, 78, 87, 56, 94, 64, 61, 57, 80, 64, 69, 58, 82, 64, 47, 93, 39, 53, 47, 74, 56, 72, 58, 68, 43, 55, 60, 72, 63, 85, 66, 54, 71, 61, 55, 65, 65, 103, 61, 68, 80, 103, 81, 60, 56, 66, 93, 80, 77, 53, 55, 107, 52, 47, 56, 65, 99, 56, 54, 80, 65, 43, 74, 54, 62, 50, 35, 50, 72, 100, 50, 69, 42, 50, 69, 38, 60, 52, 63, 83, 63, 41, 57, 63, 66, 63, 74, 54, 66, 66, 54, 54, 65, 68, 65, 59, 64, 109, 58, 67, 38, 72, 68, 59, 67, 48, 94, 79, 86, 122, 82, 83, 60, 55, 96, 58, 60, 57, 52, 65, 69, 29, 61, 64, 57, 73, 87, 42, 81, 68, 62, 52, 54, 71, 42, 63, 55, 57, 52, 46, 72, 44, 52, 64, 65, 73, 70, 52, 57, 42, 55, 50, 49, 52, 55, 45, 126, 43, 68, 54, 58, 56, 53, 62, 64, 53, 61, 43, 71, 54, 85, 79, 68, 69, 88, 59, 52, 91, 54, 75, 64, 63, 51, 72, 79, 85, 67, 84, 66, 63, 63, 75, 57, 64, 78, 93, 80, 81, 68, 56, 54, 60, 84, 43, 79, 105, 61, 44, 47, 55, 78, 85, 68, 87, 69, 49, 66, 52, 72, 40, 104, 77, 59, 64, 87, 60, 56, 67, 53, 56, 84, 78, 90, 61, 55, 58, 63, 74, 58, 40, 55, 50, 51, 50, 66, 42, 91, 73, 48, 87, 76, 88, 83, 19, 61, 66, 69, 42, 79, 68, 43, 70, 62, 73, 63, 34, 66, 87, 67, 81, 74, 86, 64, 61, 59, 60, 93, 65, 70, 54, 48, 56, 55, 55, 62, 59, 52, 55, 69, 81, 61, 54, 66, 70, 92, 51, 61, 67, 118, 53, 55, 85, 75, 79, 53, 73, 58, 54, 89, 52, 37, 85, 86, 61, 66, 57, 80, 53, 62, 57, 56, 70, 87, 65, 54, 50, 47, 84, 58, 50, 102, 61, 47, 71, 61, 46, 59, 72, 76, 63, 58, 49, 60, 57, 92, 52, 85, 76, 57, 68, 75, 75, 71, 70, 67, 69, 48, 59, 56, 58, 76, 52, 50, 29, 66, 63, 68, 78, 62, 22, 93, 59, 50, 53, 71, 60, 44, 48, 66, 85, 120, 61, 88, 113, 79, 137, 67, 77, 52, 54, 111, 54, 73, 55, 47, 66, 71, 69, 69, 61};
+ model->setOperandValue(op84, op84_init, sizeof(uint8_t) * 1025024);
+ static int32_t op87_init[] = {1, 1001};
+ model->setOperandValue(op87, op87_init, sizeof(int32_t) * 2);
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op88, op2, op1, b104, b105, b106, b107}, {op0});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op0, op29, op28, b108, b109, b110, b111, b112}, {op27});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op27, op32, op31, b113, b114, b115, b116}, {op30});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op30, op35, op34, b117, b118, b119, b120, b121}, {op33});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op33, op38, op37, b122, b123, b124, b125}, {op36});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op36, op41, op40, b126, b127, b128, b129, b130}, {op39});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op39, op44, op43, b131, b132, b133, b134}, {op42});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op42, op47, op46, b135, b136, b137, b138, b139}, {op45});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op45, op50, op49, b140, b141, b142, b143}, {op48});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op48, op53, op52, b144, b145, b146, b147, b148}, {op51});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op51, op56, op55, b149, b150, b151, b152}, {op54});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op54, op59, op58, b153, b154, b155, b156, b157}, {op57});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op57, op62, op61, b158, b159, b160, b161}, {op60});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op60, op65, op64, b162, b163, b164, b165, b166}, {op63});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op63, op68, op67, b167, b168, b169, b170}, {op66});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op66, op71, op70, b171, b172, b173, b174, b175}, {op69});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op69, op74, op73, b176, b177, b178, b179}, {op72});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op72, op77, op76, b180, b181, b182, b183, b184}, {op75});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op75, op80, op79, b185, b186, b187, b188}, {op78});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op78, op5, op4, b189, b190, b191, b192, b193}, {op3});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op3, op8, op7, b194, b195, b196, b197}, {op6});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op6, op11, op10, b198, b199, b200, b201, b202}, {op9});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op9, op14, op13, b203, b204, b205, b206}, {op12});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op12, op17, op16, b207, b208, b209, b210, b211}, {op15});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op15, op20, op19, b212, b213, b214, b215}, {op18});
+ model->addOperation(ANEURALNETWORKS_DEPTHWISE_CONV_2D, {op18, op23, op22, b216, b217, b218, b219, b220}, {op21});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op21, op26, op25, b221, b222, b223, b224}, {op24});
+ model->addOperation(ANEURALNETWORKS_AVERAGE_POOL_2D, {op24, b225, b226, b227, b228, b229, b230}, {op81});
+ model->addOperation(ANEURALNETWORKS_CONV_2D, {op81, op84, op83, b231, b232, b233, b234}, {op82});
+ model->addOperation(ANEURALNETWORKS_RESHAPE, {op82, op87}, {op86});
+ model->addOperation(ANEURALNETWORKS_SOFTMAX, {op86, b235}, {op85});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op88},
+ {op85});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/mul.model.cpp b/runtimes/tests/neural_networks_test/generated/models/mul.model.cpp
new file mode 100644
index 000000000..9ab5c9a37
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/mul.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: mul.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto act = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MUL, {op1, op2, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/mul_broadcast_quant8.model.cpp b/runtimes/tests/neural_networks_test/generated/models/mul_broadcast_quant8.model.cpp
new file mode 100644
index 000000000..06917efda
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/mul_broadcast_quant8.model.cpp
@@ -0,0 +1,26 @@
+// Generated file (from: mul_broadcast_quant8.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2}, 1.0, 0);
+ OperandType type1(Type::TENSOR_QUANT8_ASYMM, {2, 2}, 1.0, 0);
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {2, 2}, 2.0, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto act = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MUL, {op1, op2, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/mul_quant8.model.cpp b/runtimes/tests/neural_networks_test/generated/models/mul_quant8.model.cpp
new file mode 100644
index 000000000..5670845d9
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/mul_quant8.model.cpp
@@ -0,0 +1,25 @@
+// Generated file (from: mul_quant8.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {2}, 1.0, 0);
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {2}, 2.0, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto act = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MUL, {op1, op2, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/mul_relu.model.cpp b/runtimes/tests/neural_networks_test/generated/models/mul_relu.model.cpp
new file mode 100644
index 000000000..ece7fd0d2
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/mul_relu.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: mul_relu.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto act = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t act_init[] = {1};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MUL, {op1, op2, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/relu1_float_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/relu1_float_1.model.cpp
new file mode 100644
index 000000000..7bb424ed1
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/relu1_float_1.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: relu1_float_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_RELU1, {op1}, {op2});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/relu1_float_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/relu1_float_2.model.cpp
new file mode 100644
index 000000000..cbf2e7d1d
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/relu1_float_2.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: relu1_float_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 30, 24, 2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto output = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_RELU1, {input}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/relu1_quant8_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/relu1_quant8_1.model.cpp
new file mode 100644
index 000000000..905c87bd4
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/relu1_quant8_1.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: relu1_quant8_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.5f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_RELU1, {op1}, {op2});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/relu1_quant8_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/relu1_quant8_2.model.cpp
new file mode 100644
index 000000000..8e58e339c
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/relu1_quant8_2.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: relu1_quant8_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {2, 64, 64, 2}, 1.f, 128);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto output = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_RELU1, {input}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/relu6_float_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/relu6_float_1.model.cpp
new file mode 100644
index 000000000..45c632b12
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/relu6_float_1.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: relu6_float_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_RELU6, {op1}, {op2});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/relu6_float_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/relu6_float_2.model.cpp
new file mode 100644
index 000000000..c59232ba6
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/relu6_float_2.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: relu6_float_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 26, 40, 2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto output = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_RELU6, {input}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/relu6_quant8_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/relu6_quant8_1.model.cpp
new file mode 100644
index 000000000..7be2b9ad6
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/relu6_quant8_1.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: relu6_quant8_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.5f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_RELU6, {op1}, {op2});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/relu6_quant8_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/relu6_quant8_2.model.cpp
new file mode 100644
index 000000000..87b17cc73
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/relu6_quant8_2.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: relu6_quant8_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {2, 128, 20, 2}, 1.f, 128);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto output = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_RELU6, {input}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/relu_float_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/relu_float_1.model.cpp
new file mode 100644
index 000000000..f2a27183c
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/relu_float_1.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: relu_float_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_RELU, {op1}, {op2});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/relu_float_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/relu_float_2.model.cpp
new file mode 100644
index 000000000..13e857547
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/relu_float_2.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: relu_float_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 64, 40, 2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto output = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_RELU, {input}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/relu_quant8_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/relu_quant8_1.model.cpp
new file mode 100644
index 000000000..e5ebe01fc
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/relu_quant8_1.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: relu_quant8_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 1.f, 128);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_RELU, {op1}, {op2});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/relu_quant8_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/relu_quant8_2.model.cpp
new file mode 100644
index 000000000..fefba7af3
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/relu_quant8_2.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: relu_quant8_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {2, 32, 60, 2}, 1.f, 128);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto output = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_RELU, {input}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/reshape.model.cpp b/runtimes/tests/neural_networks_test/generated/models/reshape.model.cpp
new file mode 100644
index 000000000..e7efea38d
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/reshape.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: reshape.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 1, 3, 3});
+ OperandType type2(Type::TENSOR_FLOAT32, {9});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t op2_init[] = {-1};
+ model->setOperandValue(op2, op2_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_RESHAPE, {op1, op2}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/reshape_quant8.model.cpp b/runtimes/tests/neural_networks_test/generated/models/reshape_quant8.model.cpp
new file mode 100644
index 000000000..cb8932087
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/reshape_quant8.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: reshape_quant8.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::TENSOR_INT32, {1});
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 1, 3, 3}, 1.f, 0);
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {9}, 1.f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t op2_init[] = {-1};
+ model->setOperandValue(op2, op2_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_RESHAPE, {op1, op2}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/reshape_quant8_weights_as_inputs.model.cpp b/runtimes/tests/neural_networks_test/generated/models/reshape_quant8_weights_as_inputs.model.cpp
new file mode 100644
index 000000000..9f6dafd10
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/reshape_quant8_weights_as_inputs.model.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: reshape_quant8_weights_as_inputs.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::TENSOR_INT32, {1});
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 1, 3, 3}, 1.f, 0);
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {9}, 1.f, 0);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_RESHAPE, {op1, op2}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/reshape_weights_as_inputs.model.cpp b/runtimes/tests/neural_networks_test/generated/models/reshape_weights_as_inputs.model.cpp
new file mode 100644
index 000000000..cf4396a3a
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/reshape_weights_as_inputs.model.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: reshape_weights_as_inputs.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 1, 3, 3});
+ OperandType type2(Type::TENSOR_FLOAT32, {9});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_RESHAPE, {op1, op2}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/resize_bilinear.model.cpp b/runtimes/tests/neural_networks_test/generated/models/resize_bilinear.model.cpp
new file mode 100644
index 000000000..f291f1d44
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/resize_bilinear.model.cpp
@@ -0,0 +1,27 @@
+// Generated file (from: resize_bilinear.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ OperandType type1(Type::TENSOR_FLOAT32, {1, 3, 3, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto height = model->addOperand(&type2);
+ auto width = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t height_init[] = {3};
+ model->setOperandValue(height, height_init, sizeof(int32_t) * 1);
+ static int32_t width_init[] = {3};
+ model->setOperandValue(width, width_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_RESIZE_BILINEAR, {op1, height, width}, {op2});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/resize_bilinear_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/resize_bilinear_2.model.cpp
new file mode 100644
index 000000000..b0f0768ec
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/resize_bilinear_2.model.cpp
@@ -0,0 +1,27 @@
+// Generated file (from: resize_bilinear_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 2});
+ OperandType type1(Type::TENSOR_FLOAT32, {1, 3, 3, 2});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto height = model->addOperand(&type2);
+ auto width = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t height_init[] = {3};
+ model->setOperandValue(height, height_init, sizeof(int32_t) * 1);
+ static int32_t width_init[] = {3};
+ model->setOperandValue(width, width_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_RESIZE_BILINEAR, {op1, height, width}, {op2});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/rnn.model.cpp b/runtimes/tests/neural_networks_test/generated/models/rnn.model.cpp
new file mode 100644
index 000000000..4eaba28ba
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/rnn.model.cpp
@@ -0,0 +1,32 @@
+// Generated file (from: rnn.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type5(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {16, 16});
+ OperandType type1(Type::TENSOR_FLOAT32, {16, 8});
+ OperandType type3(Type::TENSOR_FLOAT32, {16});
+ OperandType type4(Type::TENSOR_FLOAT32, {2, 16});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 8});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto weights = model->addOperand(&type1);
+ auto recurrent_weights = model->addOperand(&type2);
+ auto bias = model->addOperand(&type3);
+ auto hidden_state_in = model->addOperand(&type4);
+ auto activation_param = model->addOperand(&type5);
+ auto hidden_state_out = model->addOperand(&type4);
+ auto output = model->addOperand(&type4);
+ // Phase 2, operations
+ static int32_t activation_param_init[] = {1};
+ model->setOperandValue(activation_param, activation_param_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_RNN, {input, weights, recurrent_weights, bias, hidden_state_in, activation_param}, {hidden_state_out, output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input, weights, recurrent_weights, bias, hidden_state_in},
+ {hidden_state_out, output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {0};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/rnn_state.model.cpp b/runtimes/tests/neural_networks_test/generated/models/rnn_state.model.cpp
new file mode 100644
index 000000000..72fcb6703
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/rnn_state.model.cpp
@@ -0,0 +1,32 @@
+// Generated file (from: rnn_state.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type5(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {16, 16});
+ OperandType type1(Type::TENSOR_FLOAT32, {16, 8});
+ OperandType type3(Type::TENSOR_FLOAT32, {16});
+ OperandType type4(Type::TENSOR_FLOAT32, {2, 16});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 8});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto weights = model->addOperand(&type1);
+ auto recurrent_weights = model->addOperand(&type2);
+ auto bias = model->addOperand(&type3);
+ auto hidden_state_in = model->addOperand(&type4);
+ auto activation_param = model->addOperand(&type5);
+ auto hidden_state_out = model->addOperand(&type4);
+ auto output = model->addOperand(&type4);
+ // Phase 2, operations
+ static int32_t activation_param_init[] = {1};
+ model->setOperandValue(activation_param, activation_param_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_RNN, {input, weights, recurrent_weights, bias, hidden_state_in, activation_param}, {hidden_state_out, output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input, weights, recurrent_weights, bias, hidden_state_in},
+ {hidden_state_out, output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {0};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/softmax_float_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/softmax_float_1.model.cpp
new file mode 100644
index 000000000..d189002bb
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/softmax_float_1.model.cpp
@@ -0,0 +1,23 @@
+// Generated file (from: softmax_float_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::FLOAT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 4});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto beta = model->addOperand(&type1);
+ auto output = model->addOperand(&type0);
+ // Phase 2, operations
+ static float beta_init[] = {1e-06f};
+ model->setOperandValue(beta, beta_init, sizeof(float) * 1);
+ model->addOperation(ANEURALNETWORKS_SOFTMAX, {input, beta}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/softmax_float_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/softmax_float_2.model.cpp
new file mode 100644
index 000000000..8f575cfa7
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/softmax_float_2.model.cpp
@@ -0,0 +1,23 @@
+// Generated file (from: softmax_float_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::FLOAT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 5});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto beta = model->addOperand(&type1);
+ auto output = model->addOperand(&type0);
+ // Phase 2, operations
+ static float beta_init[] = {1.0f};
+ model->setOperandValue(beta, beta_init, sizeof(float) * 1);
+ model->addOperation(ANEURALNETWORKS_SOFTMAX, {input, beta}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/softmax_quant8_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/softmax_quant8_1.model.cpp
new file mode 100644
index 000000000..4e7eb8ae1
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/softmax_quant8_1.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: softmax_quant8_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::FLOAT32, {});
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {1, 4}, 0.00390625f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 4}, 0.5f, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto beta = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static float beta_init[] = {1e-05f};
+ model->setOperandValue(beta, beta_init, sizeof(float) * 1);
+ model->addOperation(ANEURALNETWORKS_SOFTMAX, {input, beta}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/softmax_quant8_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/softmax_quant8_2.model.cpp
new file mode 100644
index 000000000..e24d6f265
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/softmax_quant8_2.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: softmax_quant8_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::FLOAT32, {});
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {2, 5}, 0.00390625f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {2, 5}, 0.5f, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto beta = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static float beta_init[] = {1.0f};
+ model->setOperandValue(beta, beta_init, sizeof(float) * 1);
+ model->addOperation(ANEURALNETWORKS_SOFTMAX, {input, beta}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/space_to_depth_float_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/space_to_depth_float_1.model.cpp
new file mode 100644
index 000000000..764318627
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/space_to_depth_float_1.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: space_to_depth_float_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 8});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto block_size = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t block_size_init[] = {2};
+ model->setOperandValue(block_size, block_size_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_SPACE_TO_DEPTH, {input, block_size}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/space_to_depth_float_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/space_to_depth_float_2.model.cpp
new file mode 100644
index 000000000..8fdd5357e
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/space_to_depth_float_2.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: space_to_depth_float_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 2, 2, 4});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 4, 4, 1});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto block_size = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t block_size_init[] = {2};
+ model->setOperandValue(block_size, block_size_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_SPACE_TO_DEPTH, {input, block_size}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/space_to_depth_float_3.model.cpp b/runtimes/tests/neural_networks_test/generated/models/space_to_depth_float_3.model.cpp
new file mode 100644
index 000000000..176546497
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/space_to_depth_float_3.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: space_to_depth_float_3.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 2, 2, 8});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 4, 4, 2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto block_size = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t block_size_init[] = {2};
+ model->setOperandValue(block_size, block_size_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_SPACE_TO_DEPTH, {input, block_size}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/space_to_depth_quant8_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/space_to_depth_quant8_1.model.cpp
new file mode 100644
index 000000000..92d080b67
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/space_to_depth_quant8_1.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: space_to_depth_quant8_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 8}, 0.5f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 2}, 0.5f, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto radius = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t radius_init[] = {2};
+ model->setOperandValue(radius, radius_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_SPACE_TO_DEPTH, {input, radius}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/space_to_depth_quant8_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/space_to_depth_quant8_2.model.cpp
new file mode 100644
index 000000000..4e91914df
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/space_to_depth_quant8_2.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: space_to_depth_quant8_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 4}, 0.5f, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 4, 4, 1}, 0.5f, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto radius = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t radius_init[] = {2};
+ model->setOperandValue(radius, radius_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_SPACE_TO_DEPTH, {input, radius}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/svdf.model.cpp b/runtimes/tests/neural_networks_test/generated/models/svdf.model.cpp
new file mode 100644
index 000000000..30632a9b5
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/svdf.model.cpp
@@ -0,0 +1,36 @@
+// Generated file (from: svdf.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type5(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 3});
+ OperandType type4(Type::TENSOR_FLOAT32, {2, 40});
+ OperandType type6(Type::TENSOR_FLOAT32, {2, 4});
+ OperandType type2(Type::TENSOR_FLOAT32, {4, 10});
+ OperandType type1(Type::TENSOR_FLOAT32, {4, 3});
+ OperandType type3(Type::TENSOR_FLOAT32, {4});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto weights_feature = model->addOperand(&type1);
+ auto weights_time = model->addOperand(&type2);
+ auto bias = model->addOperand(&type3);
+ auto state_in = model->addOperand(&type4);
+ auto rank_param = model->addOperand(&type5);
+ auto activation_param = model->addOperand(&type5);
+ auto state_out = model->addOperand(&type4);
+ auto output = model->addOperand(&type6);
+ // Phase 2, operations
+ static int32_t rank_param_init[] = {1};
+ model->setOperandValue(rank_param, rank_param_init, sizeof(int32_t) * 1);
+ static int32_t activation_param_init[] = {0};
+ model->setOperandValue(activation_param, activation_param_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_SVDF, {input, weights_feature, weights_time, bias, state_in, rank_param, activation_param}, {state_out, output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input, weights_feature, weights_time, bias, state_in},
+ {state_out, output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {0};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/svdf2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/svdf2.model.cpp
new file mode 100644
index 000000000..2b1ae214d
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/svdf2.model.cpp
@@ -0,0 +1,36 @@
+// Generated file (from: svdf2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type5(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 3});
+ OperandType type6(Type::TENSOR_FLOAT32, {2, 4});
+ OperandType type4(Type::TENSOR_FLOAT32, {2, 80});
+ OperandType type3(Type::TENSOR_FLOAT32, {4});
+ OperandType type2(Type::TENSOR_FLOAT32, {8, 10});
+ OperandType type1(Type::TENSOR_FLOAT32, {8, 3});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto weights_feature = model->addOperand(&type1);
+ auto weights_time = model->addOperand(&type2);
+ auto bias = model->addOperand(&type3);
+ auto state_in = model->addOperand(&type4);
+ auto rank_param = model->addOperand(&type5);
+ auto activation_param = model->addOperand(&type5);
+ auto state_out = model->addOperand(&type4);
+ auto output = model->addOperand(&type6);
+ // Phase 2, operations
+ static int32_t rank_param_init[] = {2};
+ model->setOperandValue(rank_param, rank_param_init, sizeof(int32_t) * 1);
+ static int32_t activation_param_init[] = {0};
+ model->setOperandValue(activation_param, activation_param_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_SVDF, {input, weights_feature, weights_time, bias, state_in, rank_param, activation_param}, {state_out, output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input, weights_feature, weights_time, bias, state_in},
+ {state_out, output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {0};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/svdf_state.model.cpp b/runtimes/tests/neural_networks_test/generated/models/svdf_state.model.cpp
new file mode 100644
index 000000000..3f0b2040c
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/svdf_state.model.cpp
@@ -0,0 +1,36 @@
+// Generated file (from: svdf_state.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type5(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 3});
+ OperandType type4(Type::TENSOR_FLOAT32, {2, 40});
+ OperandType type6(Type::TENSOR_FLOAT32, {2, 4});
+ OperandType type2(Type::TENSOR_FLOAT32, {4, 10});
+ OperandType type1(Type::TENSOR_FLOAT32, {4, 3});
+ OperandType type3(Type::TENSOR_FLOAT32, {4});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto weights_feature = model->addOperand(&type1);
+ auto weights_time = model->addOperand(&type2);
+ auto bias = model->addOperand(&type3);
+ auto state_in = model->addOperand(&type4);
+ auto rank_param = model->addOperand(&type5);
+ auto activation_param = model->addOperand(&type5);
+ auto state_out = model->addOperand(&type4);
+ auto output = model->addOperand(&type6);
+ // Phase 2, operations
+ static int32_t rank_param_init[] = {1};
+ model->setOperandValue(rank_param, rank_param_init, sizeof(int32_t) * 1);
+ static int32_t activation_param_init[] = {0};
+ model->setOperandValue(activation_param, activation_param_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_SVDF, {input, weights_feature, weights_time, bias, state_in, rank_param, activation_param}, {state_out, output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input, weights_feature, weights_time, bias, state_in},
+ {state_out, output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/tanh.model.cpp b/runtimes/tests/neural_networks_test/generated/models/tanh.model.cpp
new file mode 100644
index 000000000..bc3cd4a01
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/tanh.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: tanh.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_TANH, {op1}, {op2});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/include/TestHarness.h b/runtimes/tests/neural_networks_test/include/TestHarness.h
new file mode 100644
index 000000000..1fcb0d661
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/include/TestHarness.h
@@ -0,0 +1,209 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* Header-only library for various helpers of test harness
+ * See frameworks/ml/nn/runtime/test/TestGenerated.cpp for how this is used.
+ */
+#ifndef ANDROID_ML_NN_TOOLS_TEST_GENERATOR_TEST_HARNESS_H
+#define ANDROID_ML_NN_TOOLS_TEST_GENERATOR_TEST_HARNESS_H
+
+#include <gtest/gtest.h>
+
+#include <cmath>
+#include <functional>
+#include <map>
+#include <tuple>
+#include <vector>
+
+namespace generated_tests {
+
+constexpr const size_t gMaximumNumberOfErrorMessages = 10;
+
+typedef std::map<int, std::vector<float>> Float32Operands;
+typedef std::map<int, std::vector<int32_t>> Int32Operands;
+typedef std::map<int, std::vector<uint8_t>> Quant8Operands;
+typedef std::tuple<Float32Operands, // ANEURALNETWORKS_TENSOR_FLOAT32
+ Int32Operands, // ANEURALNETWORKS_TENSOR_INT32
+ Quant8Operands // ANEURALNETWORKS_TENSOR_QUANT8_ASYMM
+ >
+ MixedTyped;
+typedef std::pair<MixedTyped, MixedTyped> MixedTypedExampleType;
+
+template <typename T>
+struct MixedTypedIndex {};
+
+template <>
+struct MixedTypedIndex<float> {
+ static constexpr size_t index = 0;
+};
+template <>
+struct MixedTypedIndex<int32_t> {
+ static constexpr size_t index = 1;
+};
+template <>
+struct MixedTypedIndex<uint8_t> {
+ static constexpr size_t index = 2;
+};
+
+// Go through all index-value pairs of a given input type
+template <typename T>
+inline void for_each(const MixedTyped& idx_and_data,
+ std::function<void(int, const std::vector<T>&)> execute) {
+ for (auto& i : std::get<MixedTypedIndex<T>::index>(idx_and_data)) {
+ execute(i.first, i.second);
+ }
+}
+
+// non-const variant of for_each
+template <typename T>
+inline void for_each(MixedTyped& idx_and_data,
+ std::function<void(int, std::vector<T>&)> execute) {
+ for (auto& i : std::get<MixedTypedIndex<T>::index>(idx_and_data)) {
+ execute(i.first, i.second);
+ }
+}
+
+// internal helper for for_all
+template <typename T>
+inline void for_all_internal(
+ MixedTyped& idx_and_data,
+ std::function<void(int, void*, size_t)> execute_this) {
+ for_each<T>(idx_and_data, [&execute_this](int idx, std::vector<T>& m) {
+ execute_this(idx, static_cast<void*>(m.data()), m.size() * sizeof(T));
+ });
+}
+
+// Go through all index-value pairs of all input types
+// expects a functor that takes (int index, void *raw data, size_t sz)
+inline void for_all(MixedTyped& idx_and_data,
+ std::function<void(int, void*, size_t)> execute_this) {
+ for_all_internal<float>(idx_and_data, execute_this);
+ for_all_internal<int32_t>(idx_and_data, execute_this);
+ for_all_internal<uint8_t>(idx_and_data, execute_this);
+}
+
+// Const variant of internal helper for for_all
+template <typename T>
+inline void for_all_internal(
+ const MixedTyped& idx_and_data,
+ std::function<void(int, const void*, size_t)> execute_this) {
+ for_each<T>(idx_and_data, [&execute_this](int idx, const std::vector<T>& m) {
+ execute_this(idx, static_cast<const void*>(m.data()), m.size() * sizeof(T));
+ });
+}
+
+// Go through all index-value pairs (const variant)
+// expects a functor that takes (int index, const void *raw data, size_t sz)
+inline void for_all(
+ const MixedTyped& idx_and_data,
+ std::function<void(int, const void*, size_t)> execute_this) {
+ for_all_internal<float>(idx_and_data, execute_this);
+ for_all_internal<int32_t>(idx_and_data, execute_this);
+ for_all_internal<uint8_t>(idx_and_data, execute_this);
+}
+
+// Helper template - resize test output per golden
+template <typename ty, size_t tuple_index>
+void resize_accordingly_(const MixedTyped& golden, MixedTyped& test) {
+ std::function<void(int, const std::vector<ty>&)> execute =
+ [&test](int index, const std::vector<ty>& m) {
+ auto& t = std::get<tuple_index>(test);
+ t[index].resize(m.size());
+ };
+ for_each<ty>(golden, execute);
+}
+
+inline void resize_accordingly(const MixedTyped& golden, MixedTyped& test) {
+ resize_accordingly_<float, 0>(golden, test);
+ resize_accordingly_<int32_t, 1>(golden, test);
+ resize_accordingly_<uint8_t, 2>(golden, test);
+}
+
+template <typename ty, size_t tuple_index>
+void filter_internal(const MixedTyped& golden, MixedTyped* filtered,
+ std::function<bool(int)> is_ignored) {
+ for_each<ty>(golden,
+ [filtered, &is_ignored](int index, const std::vector<ty>& m) {
+ auto& g = std::get<tuple_index>(*filtered);
+ if (!is_ignored(index)) g[index] = m;
+ });
+}
+
+inline MixedTyped filter(const MixedTyped& golden,
+ std::function<bool(int)> is_ignored) {
+ MixedTyped filtered;
+ filter_internal<float, 0>(golden, &filtered, is_ignored);
+ filter_internal<int32_t, 1>(golden, &filtered, is_ignored);
+ filter_internal<uint8_t, 2>(golden, &filtered, is_ignored);
+ return filtered;
+}
+
+// Compare results
+#define VECTOR_TYPE(x) \
+ typename std::tuple_element<x, MixedTyped>::type::mapped_type
+#define VALUE_TYPE(x) VECTOR_TYPE(x)::value_type
+template <size_t tuple_index>
+void compare_(
+ const MixedTyped& golden, const MixedTyped& test,
+ std::function<void(VALUE_TYPE(tuple_index), VALUE_TYPE(tuple_index))>
+ cmp) {
+ for_each<VALUE_TYPE(tuple_index)>(
+ golden,
+ [&test, &cmp](int index, const VECTOR_TYPE(tuple_index) & m) {
+ const auto& test_operands = std::get<tuple_index>(test);
+ const auto& test_ty = test_operands.find(index);
+ ASSERT_NE(test_ty, test_operands.end());
+ for (unsigned int i = 0; i < m.size(); i++) {
+ SCOPED_TRACE(testing::Message()
+ << "When comparing element " << i);
+ cmp(m[i], test_ty->second[i]);
+ }
+ });
+}
+#undef VALUE_TYPE
+#undef VECTOR_TYPE
+inline void compare(const MixedTyped& golden, const MixedTyped& test, float fpRange = 1e-5f) {
+ size_t totalNumberOfErrors = 0;
+ compare_<0>(golden, test, [&totalNumberOfErrors, fpRange](float g, float t) {
+ if (totalNumberOfErrors < gMaximumNumberOfErrorMessages) {
+ EXPECT_NEAR(g, t, fpRange);
+ }
+ if (std::abs(g - t) > fpRange) {
+ totalNumberOfErrors++;
+ }
+ });
+ compare_<1>(golden, test, [&totalNumberOfErrors](int32_t g, int32_t t) {
+ if (totalNumberOfErrors < gMaximumNumberOfErrorMessages) {
+ EXPECT_EQ(g, t);
+ }
+ if (g != t) {
+ totalNumberOfErrors++;
+ }
+ });
+ compare_<2>(golden, test, [&totalNumberOfErrors](uint8_t g, uint8_t t) {
+ if (totalNumberOfErrors < gMaximumNumberOfErrorMessages) {
+ EXPECT_NEAR(g, t, 1);
+ }
+ if (std::abs(g - t) > 1) {
+ totalNumberOfErrors++;
+ }
+ });
+ EXPECT_EQ(size_t{0}, totalNumberOfErrors);
+}
+
+}; // namespace generated_tests
+
+#endif // ANDROID_ML_NN_TOOLS_TEST_GENERATOR_TEST_HARNESS_H
diff --git a/scripts/command/build b/scripts/command/build
new file mode 100644
index 000000000..5219001c3
--- /dev/null
+++ b/scripts/command/build
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+# NOTE 'run' sets NNFW_PROJECT_PATH and invokes this script
+
+# TODO Support command-line options
+# TODO Implement build steps inside this script
+make -C "${NNFW_PROJECT_PATH}"
diff --git a/scripts/command/common.sh b/scripts/command/common.sh
new file mode 100755
index 000000000..ec2ca7bb8
--- /dev/null
+++ b/scripts/command/common.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+export DOCKER_IMAGE_NAME=nnfw_docker
diff --git a/scripts/command/docker_build.sh b/scripts/command/docker_build.sh
new file mode 100755
index 000000000..c5545f6c7
--- /dev/null
+++ b/scripts/command/docker_build.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+source $SCRIPT_ROOT/common.sh
+
+docker build --build-arg http_proxy="$http_proxy" \
+ --build-arg https_proxy="$https_proxy" \
+ -t $DOCKER_IMAGE_NAME \
+ - < $SCRIPT_ROOT/../docker/Dockerfile
diff --git a/scripts/command/docker_build_cross_arm_ubuntu.sh b/scripts/command/docker_build_cross_arm_ubuntu.sh
new file mode 100755
index 000000000..fb3ac81c5
--- /dev/null
+++ b/scripts/command/docker_build_cross_arm_ubuntu.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+source $SCRIPT_ROOT/common.sh
+
+HOST_HOME=$SCRIPT_ROOT/../..
+DOCKER_HOME=/home
+
+GIT_SSL_NO_VERIFY=1
+
+DOCKER_VOLUMES+=" -v $HOST_HOME:$DOCKER_HOME"
+
+DOCKER_ENV_VARS+=" -e http_proxy"
+DOCKER_ENV_VARS+=" -e no_proxy"
+DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY"
+
+DOCKER_RUN_OPTS="--rm"
+DOCKER_RUN_OPTS+=" -w $DOCKER_HOME"
+DOCKER_RUN_OPTS+=" -it"
+
+CMD="export TARGET_ARCH=armv7l && export CROSS_BUILD=1 && export BENCHMARK_ACL_BUILD=1 && make acl && make && make install"
+
+docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME sh -c "$CMD"
+BUILD_RESULT=$?
+
+# Newly created files during above docker run can have different ownership.
+# This may cause some problems, for example, some jenkins slaves or developers
+# can't remove built files due to lack of permission.
+# To address this issue, let's change owner of all files
+# in NNFW to owner of NNFW.
+NNFW_OWNER_UID=$(stat -c "%u" $HOST_HOME)
+NNFW_OWNER_GID=$(stat -c "%g" $HOST_HOME)
+
+CMD="chown -R $NNFW_OWNER_UID:$NNFW_OWNER_GID $DOCKER_HOME"
+docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME $CMD
+
+exit $BUILD_RESULT
diff --git a/scripts/command/docker_build_cross_arm_ubuntu_without_aclbuild.sh b/scripts/command/docker_build_cross_arm_ubuntu_without_aclbuild.sh
new file mode 100755
index 000000000..dcaaa97a8
--- /dev/null
+++ b/scripts/command/docker_build_cross_arm_ubuntu_without_aclbuild.sh
@@ -0,0 +1,62 @@
+#!/bin/bash
+
+SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+source $SCRIPT_ROOT/common.sh
+
+HOST_HOME=$SCRIPT_ROOT/../..
+DOCKER_HOME=/home
+
+GIT_SSL_NO_VERIFY=1
+
+DOCKER_VOLUMES+=" -v $HOST_HOME:$DOCKER_HOME"
+
+DOCKER_ENV_VARS+=" -e http_proxy"
+DOCKER_ENV_VARS+=" -e no_proxy"
+DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY"
+
+DOCKER_ENV_VARS+=" -e TARGET_ARCH=armv7l"
+DOCKER_ENV_VARS+=" -e CROSS_BUILD=1"
+DOCKER_ENV_VARS+=" -e ROOTFS_DIR=/opt/rootfs"
+DOCKER_ENV_VARS+=" -e EXT_ACL_FOLDER=/opt/libarmcl"
+
+DOCKER_RUN_OPTS="--rm"
+DOCKER_RUN_OPTS+=" -w $DOCKER_HOME"
+
+# prepare armcl library
+if [[ ! -d $ARMCL_DIR ]]; then
+ echo "cannot find armcl"
+ exit 1
+fi
+
+# prepare rootfs
+if [[ ! -d $ROOTFS_DIR ]]; then
+ echo "cannot find rootfs"
+ exit 1
+fi
+
+DOCKER_VOLUMES+=" -v $ROOTFS_DIR:/opt/rootfs"
+DOCKER_VOLUMES+=" -v $ARMCL_DIR:/opt/libarmcl"
+
+if [ -n "$DOCKER_INTERACTIVE" ]; then
+ DOCKER_RUN_OPTS+=" -it"
+ CMD="/bin/bash"
+else
+ CMD="make external_acl && export BENCHMARK_ACL_BUILD=1 && make && make install && make build_test_suite"
+fi
+
+docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME sh -c "$CMD"
+BUILD_RESULT=$?
+
+# Newly created files during above docker run can have different ownership.
+# This may cause some problems, for example, some jenkins slaves or developers
+# can't remove built files due to lack of permission.
+# To address this issue, let's change owner of all files
+# in NNFW to owner of NNFW.
+NNFW_OWNER_UID=$(stat -c "%u" $HOST_HOME)
+NNFW_OWNER_GID=$(stat -c "%g" $HOST_HOME)
+
+CMD="chown -R $NNFW_OWNER_UID:$NNFW_OWNER_GID $DOCKER_HOME"
+docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME $CMD
+
+exit $BUILD_RESULT
diff --git a/scripts/command/docker_build_tizen_cross.sh b/scripts/command/docker_build_tizen_cross.sh
new file mode 100755
index 000000000..a37a58cd9
--- /dev/null
+++ b/scripts/command/docker_build_tizen_cross.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+# default DOCKER_IMAGE_NAME=nnfw_docker
+DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME:-nnfw_docker}
+echo "Using docker image $DOCKER_IMAGE_NAME"
+
+SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+HOST_HOME=$SCRIPT_ROOT/../..
+DOCKER_HOME=/home
+
+GIT_SSL_NO_VERIFY=1
+
+DOCKER_VOLUMES+=" -v $HOST_HOME:$DOCKER_HOME"
+
+DOCKER_ENV_VARS+=" -e http_proxy"
+DOCKER_ENV_VARS+=" -e no_proxy"
+DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY"
+
+DOCKER_ENV_VARS+=" -e TARGET_ARCH=armv7l"
+DOCKER_ENV_VARS+=" -e CROSS_BUILD=1"
+DOCKER_ENV_VARS+=" -e ROOTFS_DIR=/opt/rootfs"
+DOCKER_ENV_VARS+=" -e TARGET_OS=tizen"
+
+DOCKER_RUN_OPTS="--rm"
+DOCKER_RUN_OPTS+=" -w $DOCKER_HOME"
+
+# prepare rootfs
+if [[ ! -d $ROOTFS_DIR ]]; then
+ echo "cannot find rootfs"
+ exit 1
+fi
+
+DOCKER_VOLUMES+=" -v $ROOTFS_DIR/:/opt/rootfs"
+
+CMD="make && make install && make build_test_suite"
+
+docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME sh -c "$CMD"
+BUILD_RESULT=$?
+
+# change owner of root dir and delete rootfs dir
+NNFW_OWNER_UID=$(stat -c "%u" $HOST_HOME)
+NNFW_OWNER_GID=$(stat -c "%g" $HOST_HOME)
+
+CMD="chown -R $NNFW_OWNER_UID:$NNFW_OWNER_GID $DOCKER_HOME"
+docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME sh -c "$CMD"
+
+exit $BUILD_RESULT
diff --git a/scripts/command/docker_build_ubuntu_svace.sh b/scripts/command/docker_build_ubuntu_svace.sh
new file mode 100755
index 000000000..a17e4da38
--- /dev/null
+++ b/scripts/command/docker_build_ubuntu_svace.sh
@@ -0,0 +1,87 @@
+#!/bin/bash
+
+SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME:-nnfw_docker}
+
+HOST_HOME=$SCRIPT_ROOT/../..
+DOCKER_HOME=/home
+
+GIT_SSL_NO_VERIFY=1
+
+DOCKER_VOLUMES+=" -v $HOST_HOME:$DOCKER_HOME"
+
+DOCKER_ENV_VARS+=" -e http_proxy"
+DOCKER_ENV_VARS+=" -e no_proxy"
+DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY"
+
+DOCKER_ENV_VARS+=" -e TARGET_ARCH=armv7l"
+DOCKER_ENV_VARS+=" -e CROSS_BUILD=1"
+DOCKER_ENV_VARS+=" -e ROOTFS_DIR=/opt/rootfs"
+DOCKER_ENV_VARS+=" -e EXT_ACL_FOLDER=/opt/libarmcl"
+
+DOCKER_RUN_OPTS="--rm"
+DOCKER_RUN_OPTS+=" -w $DOCKER_HOME"
+
+TMP_DIR=$HOST_HOME/tmp
+
+if [ ! -d $SVACE_ANALYZER_DIR ]; then
+ echo "cannot find svace-analyzer"
+ exit 1
+fi
+
+which $SVACE_ANALYZER_DIR/bin/svace
+if [[ $? -ne 0 ]]; then
+ echo "cannot find svace-analyzer"
+ exit 1
+fi
+
+pushd $HOST_HOME
+
+# prepare armcl library
+if [[ ! -d $ARMCL_DIR ]]; then
+ echo "cannot find armcl"
+ exit 1
+fi
+
+# prepare rootfs
+if [[ ! -d $ROOTFS_DIR ]]; then
+ echo "cannot find rootfs"
+ exit 1
+fi
+
+# prepare svace
+if [[ ! -f $SVACE_POLICY_FILE ]]; then
+ echo "cannot find svace policy"
+ exit 1
+fi
+
+DOCKER_VOLUMES+=" -v $SVACE_ANALYZER_DIR:/opt/svace-analyzer"
+DOCKER_VOLUMES+=" -v $ROOTFS_DIR:/opt/rootfs"
+DOCKER_VOLUMES+=" -v $ARMCL_DIR:/opt/libarmcl"
+
+if [ -n "$DOCKER_INTERACTIVE" ]; then
+ DOCKER_RUN_OPTS+=" -it"
+ CMD="/bin/bash"
+else
+ CMD="make external_acl tflite && /opt/svace-analyzer/bin/svace init && /opt/svace-analyzer/bin/svace build make runtime testbuild"
+fi
+
+docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME sh -c "$CMD"
+BUILD_RESULT=$?
+
+# Newly created files during above docker run can have different ownership.
+# This may cause some problems, for example, some jenkins slaves or developers
+# can't remove built files due to lack of permission.
+# To address this issue, let's change owner of all files
+# in NNFW to owner of NNFW.
+NNFW_OWNER_UID=$(stat -c "%u" $HOST_HOME)
+NNFW_OWNER_GID=$(stat -c "%g" $HOST_HOME)
+
+CMD="chown -R $NNFW_OWNER_UID:$NNFW_OWNER_GID $DOCKER_HOME"
+docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME $CMD
+
+$SVACE_ANALYZER_DIR/bin/svace analyze --warning $SVACE_POLICY_FILE
+
+popd
+
+exit $BUILD_RESULT
diff --git a/scripts/command/docker_coverage_report.sh b/scripts/command/docker_coverage_report.sh
new file mode 100755
index 000000000..577f5db37
--- /dev/null
+++ b/scripts/command/docker_coverage_report.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME:-nnfw_docker}
+
+SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+HOST_HOME=$SCRIPT_ROOT/../..
+DOCKER_HOME=/home
+
+GIT_SSL_NO_VERIFY=1
+
+DOCKER_VOLUMES+=" -v $HOST_HOME:$DOCKER_HOME"
+
+DOCKER_ENV_VARS+=" -e http_proxy"
+DOCKER_ENV_VARS+=" -e no_proxy"
+DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY"
+
+DOCKER_RUN_OPTS="--rm"
+DOCKER_RUN_OPTS+=" -w $DOCKER_HOME"
+
+
+docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME sh -c "./scripts/command/gen_coverage_report.sh"
+
+BUILD_RESULT=$?
+
+# Newly created files during above docker run can have different ownership.
+# This may cause some problems, for example, some jenkins slaves or developers
+# can't remove built files due to lack of permission.
+# To address this issue, let's change owner of all files
+# in NNFW to owner of NNFW.
+NNFW_OWNER_UID=$(stat -c "%u" $HOST_HOME)
+NNFW_OWNER_GID=$(stat -c "%g" $HOST_HOME)
+
+CMD="chown -R $NNFW_OWNER_UID:$NNFW_OWNER_GID $DOCKER_HOME"
+docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME $CMD
+
+exit $BUILD_RESULT
+
diff --git a/scripts/command/docker_cross_test_coverage_build.sh b/scripts/command/docker_cross_test_coverage_build.sh
new file mode 100755
index 000000000..f954c481c
--- /dev/null
+++ b/scripts/command/docker_cross_test_coverage_build.sh
@@ -0,0 +1,63 @@
+#!/bin/bash
+
+DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME:-nnfw_docker}
+
+SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+HOST_HOME=$SCRIPT_ROOT/../..
+DOCKER_HOME=/home
+
+GIT_SSL_NO_VERIFY=1
+
+DOCKER_VOLUMES+=" -v $HOST_HOME:$DOCKER_HOME"
+
+DOCKER_ENV_VARS+=" -e http_proxy"
+DOCKER_ENV_VARS+=" -e no_proxy"
+DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY"
+
+DOCKER_ENV_VARS+=" -e TARGET_ARCH=armv7l"
+DOCKER_ENV_VARS+=" -e CROSS_BUILD=1"
+DOCKER_ENV_VARS+=" -e ROOTFS_DIR=/opt/rootfs"
+DOCKER_ENV_VARS+=" -e EXT_ACL_FOLDER=/opt/libarmcl"
+DOCKER_ENV_VARS+=" -e COVERAGE_BUILD=1"
+
+DOCKER_RUN_OPTS="--rm"
+DOCKER_RUN_OPTS+=" -w $DOCKER_HOME"
+
+# prepare armcl library
+if [[ ! -d $ARMCL_DIR ]]; then
+ echo "cannot find armcl"
+ exit 1
+fi
+
+# prepare rootfs
+if [[ ! -d $ROOTFS_DIR ]]; then
+ echo "cannot find rootfs"
+ exit 1
+fi
+
+DOCKER_VOLUMES+=" -v $ROOTFS_DIR:/opt/rootfs"
+DOCKER_VOLUMES+=" -v $ARMCL_DIR:/opt/libarmcl"
+
+if [ -n "$DOCKER_INTERACTIVE" ]; then
+ DOCKER_RUN_OPTS+=" -it"
+ CMD="/bin/bash"
+else
+ CMD="make external_acl && make && make install && make build_coverage_suite"
+fi
+
+docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME sh -c "$CMD"
+BUILD_RESULT=$?
+
+# Newly created files during above docker run can have different ownership.
+# This may cause some problems, for example, some jenkins slaves or developers
+# can't remove built files due to lack of permission.
+# To address this issue, let's change owner of all files
+# in NNFW to owner of NNFW.
+NNFW_OWNER_UID=$(stat -c "%u" $HOST_HOME)
+NNFW_OWNER_GID=$(stat -c "%g" $HOST_HOME)
+
+CMD="chown -R $NNFW_OWNER_UID:$NNFW_OWNER_GID $DOCKER_HOME"
+docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME $CMD
+
+exit $BUILD_RESULT
diff --git a/scripts/command/docker_gbs_build.sh b/scripts/command/docker_gbs_build.sh
new file mode 100755
index 000000000..03979e6ee
--- /dev/null
+++ b/scripts/command/docker_gbs_build.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+MY_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+NNFW_ROOT=$MY_PATH/../..
+DOCKER_NNFW_HOME=/home/nnfw
+DOCKER_RPM_HOME=/home/rpm
+
+if [ "${GBS_RPM_DIR}" == "" ];
+then
+ GBS_RPM_DIR=$NNFW_ROOT/Product/out/rpm
+ mkdir -p ${GBS_RPM_DIR}
+fi
+
+if [ -z ${DOCKER_IMAGE} ];
+then
+ # use default docker image
+ DOCKER_IMAGE=nnfw_docker_tizen:latest
+fi
+
+
+DOCKER_VOLUMES+=" -v ${GBS_RPM_DIR}:${DOCKER_RPM_HOME} -v $NNFW_ROOT:${DOCKER_NNFW_HOME}"
+DOCKER_RUN_OPTS+=" --rm"
+DOCKER_RUN_OPTS+=" -w ${DOCKER_NNFW_HOME}"
+
+CMD="gbs -c ${DOCKER_NNFW_HOME}/scripts/command/gbs.conf build -A armv7l --profile=profile.tizen --clean --include-all --define '${GBS_DEFINE}' &&
+ cp -rf /home/GBS-ROOT/local/repos/tizen/armv7l/RPMS/*.rpm ${DOCKER_RPM_HOME}/."
+docker run $DOCKER_RUN_OPTS $DOCKER_VOLUMES ${DOCKER_ENV_VARS:-} ${DOCKER_IMAGE} sh -c "$CMD"
+BUILD_RESULT=$?
+
+# change owner of root dir and delete rootfs dir
+NNFW_OWNER_UID=$(stat -c "%u" $NNFW_ROOT)
+NNFW_OWNER_GID=$(stat -c "%g" $NNFW_ROOT)
+
+CMD="chown -R $NNFW_OWNER_UID:$NNFW_OWNER_GID ${DOCKER_NNFW_HOME} && chown -R $NNFW_OWNER_UID:$NNFW_OWNER_GID ${DOCKER_RPM_HOME}"
+docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE sh -c "$CMD"
+exit $BUILD_RESULT
diff --git a/scripts/command/docker_run.sh b/scripts/command/docker_run.sh
new file mode 100755
index 000000000..f4834f2ff
--- /dev/null
+++ b/scripts/command/docker_run.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+source $SCRIPT_ROOT/common.sh
+
+HOST_HOME=$SCRIPT_ROOT/../..
+DOCKER_HOME=/home
+
+GIT_SSL_NO_VERIFY=1
+
+DOCKER_VOLUMES+=" -v $HOST_HOME:$DOCKER_HOME"
+
+DOCKER_ENV_VARS+=" -e http_proxy"
+DOCKER_ENV_VARS+=" -e no_proxy"
+DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY"
+
+DOCKER_RUN_OPTS="--rm"
+DOCKER_RUN_OPTS+=" -w $DOCKER_HOME"
+DOCKER_RUN_OPTS+=" -it"
+
+CMD="/bin/bash"
+
+docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME $CMD
diff --git a/scripts/command/docker_run_test.sh b/scripts/command/docker_run_test.sh
new file mode 100755
index 000000000..75edd3428
--- /dev/null
+++ b/scripts/command/docker_run_test.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+# default DOCKER_IMAGE_NAME=nnfw_docker
+DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME:-nnfw_docker}
+echo "Using docker image $DOCKER_IMAGE_NAME"
+
+if [ -z "`docker images | grep $DOCKER_IMAGE_NAME`" ]; then
+ echo "Need docker image!"
+ exit 1
+fi
+
+HOST_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../.." && pwd )"
+
+DOCKER_PATH=/home/npuci/nnfw
+
+export GIT_SSL_NO_VERIFY=1
+
+DOCKER_VOLUMES=" -v /dev/null:/dev/raw1394"
+DOCKER_VOLUMES+=" -v $HOST_PATH:$DOCKER_PATH"
+
+DOCKER_ENV_VARS+=" -e http_proxy"
+DOCKER_ENV_VARS+=" -e no_proxy"
+DOCKER_ENV_VARS+=" -e GIT_SSL_NO_VERIFY"
+
+DOCKER_RUN_OPTS="--rm"
+DOCKER_RUN_OPTS+=" -w $DOCKER_PATH"
+
+CMD="make install"
+
+if [ "$DOCKER_INTERACTIVE" ]; then
+ DOCKER_RUN_OPTS+=" -it"
+ CMD="/bin/bash"
+fi
+
+docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME $CMD
+
+BUILD_RESULT=$?
+
+# Newly created files during above docker run can have different ownership.
+# This may cause some problems, for example, some jenkins slaves or developers
+# can't remove built files due to lack of permission.
+# To address this issue, let's change owner of all files
+# in NPU_Compiler to owner of NPU_Compiler.
+NPU_COMPILER_OWNER_UID=$(stat -c "%u" $HOST_PATH)
+NPU_COMPILER_OWNER_GID=$(stat -c "%g" $HOST_PATH)
+
+CMD="chown -R $NPU_COMPILER_OWNER_UID:$NPU_COMPILER_OWNER_GID $DOCKER_PATH"
+docker run $DOCKER_RUN_OPTS $DOCKER_ENV_VARS $DOCKER_VOLUMES $DOCKER_IMAGE_NAME $CMD
+
+exit $BUILD_RESULT
diff --git a/scripts/command/format-checker.sh b/scripts/command/format-checker.sh
new file mode 100755
index 000000000..5186b7476
--- /dev/null
+++ b/scripts/command/format-checker.sh
@@ -0,0 +1,89 @@
+#!/bin/bash
+
+function check_tools() {
+ which clang-format-3.9
+ if [[ $? -ne 0 ]]; then
+ echo "Error: clang-format-3.9 is not available."
+ echo " Please install clang-format-3.9."
+ exit 1
+ fi
+
+ which yapf
+ if [[ $? -ne 0 ]]; then
+ echo "Error: yapf is not available."
+ echo " Please install yapf."
+ exit 1
+ fi
+}
+
+function check_cpp_files() {
+ DIRECTORIES_TO_BE_TESTED=$1
+
+ # Check c++ files
+ CPP_FILES_IN_COMPILER=$(find "${DIRECTORIES_TO_BE_TESTED[@]}" -iname '*.h' -o -iname '*.cpp' -o -iname '*.cc')
+
+ if [[ ${#CPP_FILES_IN_COMPILER} -eq 0 ]]; then
+ echo "No cpp files to be checked"
+ return
+ fi
+
+ CPP_FILES_TO_BE_TESTED=$(git ls-files $CPP_FILES_IN_COMPILER)
+ if [[ ${#CPP_FILES_TO_BE_TESTED} -eq 0 ]]; then
+ echo "No changed cpp files to be checked"
+ return
+ fi
+
+ clang-format-3.9 -i $CPP_FILES_TO_BE_TESTED
+}
+
+function check_python_files() {
+ DIRECTORIES_TO_BE_TESTED=$1
+
+ # Check python files
+ PYTHON_FILES_IN_COMPILER=$(find "${DIRECTORIES_TO_BE_TESTED[@]}" -iname '*.py')
+
+ if [[ ${#PYTHON_FILES_IN_COMPILER} -eq 0 ]]; then
+ echo "No python files to be checked"
+ return
+ fi
+
+ PYTHON_FILES_TO_BE_TESTED=$(git ls-files $PYTHON_FILES_IN_COMPILER)
+ if [[ ${#PYTHON_FILES_TO_BE_TESTED} -eq 0 ]]; then
+ echo "No changed python files to be checked"
+ return
+ fi
+
+ yapf -i --style='{based_on_style: pep8, column_limit: 90}' $PYTHON_FILES_TO_BE_TESTED
+}
+
+echo "Make sure commit all changes before running this checker."
+
+check_tools
+
+DIRECTORIES_TO_BE_TESTED=()
+
+for DIR_TO_BE_TESTED in $(find -name '.FORMATCHECKED' -exec dirname {} \;); do
+ DIRECTORIES_TO_BE_TESTED+=("$DIR_TO_BE_TESTED")
+done
+
+if [[ ${#DIRECTORIES_TO_BE_TESTED[@]} -eq 0 ]]; then
+ echo "No directories to be checked"
+ exit 0
+fi
+
+check_cpp_files $DIRECTORIES_TO_BE_TESTED
+check_python_files $DIRECTORIES_TO_BE_TESTED
+
+git diff > format.patch
+PATCHFILE_SIZE=$(stat -c%s format.patch)
+if [[ $PATCHFILE_SIZE -ne 0 ]]; then
+ echo "[FAILED] Format checker failed and update code to follow convention."
+ echo " You can find changes in format.patch"
+ exit 1
+else
+ echo "[PASSED] Format checker succeed."
+ exit 0
+fi
+
+echo "Error: Something went wrong."
+exit 1
diff --git a/scripts/command/gbs.conf b/scripts/command/gbs.conf
new file mode 100644
index 000000000..af555c399
--- /dev/null
+++ b/scripts/command/gbs.conf
@@ -0,0 +1,21 @@
+[general]
+#Current profile name which should match a profile section name
+profile = profile.tizen
+
+[profile.tizen]
+user=obs_viewer
+passwdx = QlpoOTFBWSZTWWV18UwAAAKDgAAAkiCZgCAAMQZMQQDJ6jQwAvxdyRThQkGV18Uw
+obs = obs.tizen
+repos = repo.tizen_base,repo.tizen_mobile
+buildroot = /home/GBS-ROOT/
+
+[obs.tizen]
+url = http://api.tizen.org
+
+[repo.tizen_mobile]
+url = http://download.tizen.org/snapshots/tizen/unified/latest/repos/standard/packages/
+
+[repo.tizen_base]
+url = http://download.tizen.org/snapshots/tizen/base/latest/repos/standard/packages/
+
+
diff --git a/scripts/command/gen_coverage_report.sh b/scripts/command/gen_coverage_report.sh
new file mode 100755
index 000000000..32177919a
--- /dev/null
+++ b/scripts/command/gen_coverage_report.sh
@@ -0,0 +1,56 @@
+#!/bin/bash
+
+# This file is based on https://github.sec.samsung.net/STAR/nncc/pull/80
+
+SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+NNFW_ROOT=$SCRIPT_ROOT/../..
+
+LCOV_PATH=$(command -v lcov)
+GENHTML_PATH=$(command -v genhtml)
+
+if [[ -z "${LCOV_PATH}" ]]; then
+ echo "ERROR: 'lcov' is not found"
+ exit 255
+fi
+
+if [[ -z "${GENHTML_PATH}" ]]; then
+ echo "ERROR: 'genhtml' is not found"
+ exit 255
+fi
+
+OUTPUT_PATH="$1"
+
+if [[ -z "${OUTPUT_PATH}" ]]; then
+ OUTPUT_PATH="$NNFW_ROOT/coverage"
+fi
+
+if [[ -e "${OUTPUT_PATH}" ]]; then
+ echo "ERROR: '${OUTPUT_PATH}' already exists"
+ exit 255
+fi
+
+mkdir -p "${OUTPUT_PATH}"
+
+RAW_COVERAGE_INFO_PATH="${OUTPUT_PATH}/coverage.raw.info"
+LIBS_COVERAGE_INFO_PATH="${OUTPUT_PATH}/coverage.libs.info"
+INCLUDE_COVERAGE_INFO_PATH="${OUTPUT_PATH}/coverage.include.info"
+RUNTIMES_COVERAGE_INFO_PATH="${OUTPUT_PATH}/coverage.runtimes.info"
+TOOLS_COVERAGE_INFO_PATH="${OUTPUT_PATH}/coverage.tools.info"
+FINAL_COVERAGE_INFO_PATH="${OUTPUT_PATH}/coverage.info"
+HTML_PATH="${OUTPUT_PATH}/html"
+COVERTURA_PATH="${OUTPUT_PATH}/nnfw_coverage.xml"
+
+"${LCOV_PATH}" -c -d "${NNFW_ROOT}" -o "${RAW_COVERAGE_INFO_PATH}"
+"${LCOV_PATH}" -e "${RAW_COVERAGE_INFO_PATH}" -o "${LIBS_COVERAGE_INFO_PATH}" '/home/libs/*'
+"${LCOV_PATH}" -e "${RAW_COVERAGE_INFO_PATH}" -o "${INCLUDE_COVERAGE_INFO_PATH}" '/home/include/*'
+"${LCOV_PATH}" -e "${RAW_COVERAGE_INFO_PATH}" -o "${RUNTIMES_COVERAGE_INFO_PATH}" '/home/runtimes/*'
+"${LCOV_PATH}" -e "${RAW_COVERAGE_INFO_PATH}" -o "${TOOLS_COVERAGE_INFO_PATH}" '/home/tools/*'
+"${LCOV_PATH}" -a "${LIBS_COVERAGE_INFO_PATH}" -a "${INCLUDE_COVERAGE_INFO_PATH}" \
+ -a "${RUNTIMES_COVERAGE_INFO_PATH}" -a "${TOOLS_COVERAGE_INFO_PATH}" \
+ -o "${FINAL_COVERAGE_INFO_PATH}"
+"${LCOV_PATH}" -r "${FINAL_COVERAGE_INFO_PATH}" -o "${FINAL_COVERAGE_INFO_PATH}" '/home/runtimes/tests/*'
+"${LCOV_PATH}" -r "${FINAL_COVERAGE_INFO_PATH}" -o "${FINAL_COVERAGE_INFO_PATH}" '/home/runtimes/nn/depend/*'
+"${GENHTML_PATH}" "${FINAL_COVERAGE_INFO_PATH}" --output-directory "${HTML_PATH}"
+
+tar -zcf "${OUTPUT_PATH}"/coverage_report.tar.gz "${HTML_PATH}"
+$SCRIPT_ROOT/lcov-to-covertura-xml.sh "${FINAL_COVERAGE_INFO_PATH}" -o "${COVERTURA_PATH}"
diff --git a/scripts/command/imported_url.txt b/scripts/command/imported_url.txt
new file mode 100644
index 000000000..b3a27cff5
--- /dev/null
+++ b/scripts/command/imported_url.txt
@@ -0,0 +1,3 @@
+# This file contains urls of files which is imported from public origin.
+
+1. lcov-to-covertura-xml.sh : https://github.com/eriwen/lcov-to-cobertura-xml
diff --git a/scripts/command/lcov-to-covertura-xml.sh b/scripts/command/lcov-to-covertura-xml.sh
new file mode 100755
index 000000000..7aae6d115
--- /dev/null
+++ b/scripts/command/lcov-to-covertura-xml.sh
@@ -0,0 +1,414 @@
+#!/usr/bin/env python
+
+# Copyright 2011-2012 Eric Wendelin
+#
+# This is free software, licensed under the Apache License, Version 2.0,
+# available in the accompanying LICENSE.txt file.
+
+"""
+Converts lcov line coverage output to Cobertura-compatible XML for CI
+"""
+
+import re
+import sys
+import os
+import time
+import subprocess
+from xml.dom import minidom
+from optparse import OptionParser
+
+from distutils.spawn import find_executable
+
+CPPFILT = "c++filt"
+HAVE_CPPFILT = False
+
+if find_executable(CPPFILT) is not None:
+ HAVE_CPPFILT = True
+
+VERSION = '1.6'
+__all__ = ['LcovCobertura']
+
+
+class Demangler(object):
+ def __init__(self):
+ self.pipe = subprocess.Popen(
+ CPPFILT, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
+
+ def demangle(self, name):
+ self.pipe.stdin.write(name + "\n")
+ return self.pipe.stdout.readline().rstrip()
+
+
+class LcovCobertura(object):
+ """
+ Converts code coverage report files in lcov format to Cobertura's XML
+ report format so that CI servers like Jenkins can aggregate results and
+ determine build stability etc.
+
+ >>> from lcov_cobertura import LcovCobertura
+ >>> LCOV_INPUT = 'your lcov input'
+ >>> converter = LcovCobertura(LCOV_INPUT)
+ >>> cobertura_xml = converter.convert()
+ >>> print(cobertura_xml)
+ """
+
+ def __init__(self, lcov_data, base_dir='.', excludes=None, demangle=False):
+ """
+ Create a new :class:`LcovCobertura` object using the given `lcov_data`
+ and `options`.
+
+ :param lcov_data: Path to LCOV data file
+ :type lcov_data: string
+ :param base_dir: Path upon which to base all sources
+ :type base_dir: string
+ :param excludes: list of regexes to packages as excluded
+ :type excludes: [string]
+ :param demangle: whether to demangle function names using c++filt
+ :type demangle: bool
+ """
+
+ if not excludes:
+ excludes = []
+ self.lcov_data = lcov_data
+ self.base_dir = base_dir
+ self.excludes = excludes
+ if demangle:
+ demangler = Demangler()
+ self.format = demangler.demangle
+ else:
+ self.format = lambda x: x
+
+ def convert(self):
+ """
+ Convert lcov file to cobertura XML using options from this instance.
+ """
+ coverage_data = self.parse()
+ return self.generate_cobertura_xml(coverage_data)
+
+ def parse(self):
+ """
+ Generate a data structure representing it that can be serialized in any
+ logical format.
+ """
+
+ coverage_data = {
+ 'packages': {},
+ 'summary': {'lines-total': 0, 'lines-covered': 0,
+ 'branches-total': 0, 'branches-covered': 0},
+ 'timestamp': str(int(time.time()))
+ }
+ package = None
+ current_file = None
+ file_lines_total = 0
+ file_lines_covered = 0
+ file_lines = {}
+ file_methods = {}
+ file_branches_total = 0
+ file_branches_covered = 0
+
+ for line in self.lcov_data.split('\n'):
+ if line.strip() == 'end_of_record':
+ if current_file is not None:
+ package_dict = coverage_data['packages'][package]
+ package_dict['lines-total'] += file_lines_total
+ package_dict['lines-covered'] += file_lines_covered
+ package_dict['branches-total'] += file_branches_total
+ package_dict['branches-covered'] += file_branches_covered
+ file_dict = package_dict['classes'][current_file]
+ file_dict['lines-total'] = file_lines_total
+ file_dict['lines-covered'] = file_lines_covered
+ file_dict['lines'] = dict(file_lines)
+ file_dict['methods'] = dict(file_methods)
+ file_dict['branches-total'] = file_branches_total
+ file_dict['branches-covered'] = file_branches_covered
+ coverage_data['summary']['lines-total'] += file_lines_total
+ coverage_data['summary']['lines-covered'] += file_lines_covered
+ coverage_data['summary']['branches-total'] += file_branches_total
+ coverage_data['summary']['branches-covered'] += file_branches_covered
+
+ line_parts = line.split(':', 1)
+ input_type = line_parts[0]
+
+ if input_type == 'SF':
+ # Get file name
+ file_name = line_parts[-1].strip()
+ relative_file_name = os.path.relpath(file_name, self.base_dir)
+ package = '.'.join(relative_file_name.split(os.path.sep)[0:-1])
+ class_name = '.'.join(relative_file_name.split(os.path.sep))
+ if package not in coverage_data['packages']:
+ coverage_data['packages'][package] = {
+ 'classes': {}, 'lines-total': 0, 'lines-covered': 0,
+ 'branches-total': 0, 'branches-covered': 0
+ }
+ coverage_data['packages'][package]['classes'][
+ relative_file_name] = {
+ 'name': class_name, 'lines': {}, 'lines-total': 0,
+ 'lines-covered': 0, 'branches-total': 0,
+ 'branches-covered': 0
+ }
+ package = package
+ current_file = relative_file_name
+ file_lines_total = 0
+ file_lines_covered = 0
+ file_lines.clear()
+ file_methods.clear()
+ file_branches_total = 0
+ file_branches_covered = 0
+ elif input_type == 'DA':
+ # DA:2,0
+ (line_number, line_hits) = line_parts[-1].strip().split(',')
+ line_number = int(line_number)
+ if line_number not in file_lines:
+ file_lines[line_number] = {
+ 'branch': 'false', 'branches-total': 0,
+ 'branches-covered': 0
+ }
+ file_lines[line_number]['hits'] = line_hits
+ # Increment lines total/covered for class and package
+ try:
+ if int(line_hits) > 0:
+ file_lines_covered += 1
+ except:
+ pass
+ file_lines_total += 1
+ elif input_type == 'BRDA':
+ # BRDA:1,1,2,0
+ (line_number, block_number, branch_number, branch_hits) = line_parts[-1].strip().split(',')
+ line_number = int(line_number)
+ if line_number not in file_lines:
+ file_lines[line_number] = {
+ 'branch': 'true', 'branches-total': 0,
+ 'branches-covered': 0, 'hits': 0
+ }
+ file_lines[line_number]['branch'] = 'true'
+ file_lines[line_number]['branches-total'] += 1
+ file_branches_total += 1
+ if branch_hits != '-' and int(branch_hits) > 0:
+ file_lines[line_number]['branches-covered'] += 1
+ file_branches_covered += 1
+ elif input_type == 'BRF':
+ file_branches_total = int(line_parts[1])
+ elif input_type == 'BRH':
+ file_branches_covered = int(line_parts[1])
+ elif input_type == 'FN':
+ # FN:5,(anonymous_1)
+ function_line, function_name = line_parts[-1].strip().split(',')
+ file_methods[function_name] = [function_line, '0']
+ elif input_type == 'FNDA':
+ # FNDA:0,(anonymous_1)
+ (function_hits, function_name) = line_parts[-1].strip().split(',')
+ if function_name not in file_methods:
+ file_methods[function_name] = ['0', '0']
+ file_methods[function_name][-1] = function_hits
+
+ # Exclude packages
+ excluded = [x for x in coverage_data['packages'] for e in self.excludes
+ if re.match(e, x)]
+ for package in excluded:
+ del coverage_data['packages'][package]
+
+ # Compute line coverage rates
+ for package_data in list(coverage_data['packages'].values()):
+ package_data['line-rate'] = self._percent(
+ package_data['lines-total'],
+ package_data['lines-covered'])
+ package_data['branch-rate'] = self._percent(
+ package_data['branches-total'],
+ package_data['branches-covered'])
+
+ return coverage_data
+
+ def generate_cobertura_xml(self, coverage_data):
+ """
+ Given parsed coverage data, return a String cobertura XML representation.
+
+ :param coverage_data: Nested dict representing coverage information.
+ :type coverage_data: dict
+ """
+
+ dom_impl = minidom.getDOMImplementation()
+ doctype = dom_impl.createDocumentType("coverage", None,
+ "http://cobertura.sourceforge.net/xml/coverage-04.dtd")
+ document = dom_impl.createDocument(None, "coverage", doctype)
+ root = document.documentElement
+ summary = coverage_data['summary']
+ self._attrs(root, {
+ 'branch-rate': self._percent(summary['branches-total'],
+ summary['branches-covered']),
+ 'branches-covered': str(summary['branches-covered']),
+ 'branches-valid': str(summary['branches-total']),
+ 'complexity': '0',
+ 'line-rate': self._percent(summary['lines-total'],
+ summary['lines-covered']),
+ 'lines-covered': str(summary['lines-covered']),
+ 'lines-valid': str(summary['lines-total']),
+ 'timestamp': coverage_data['timestamp'],
+ 'version': '2.0.3'
+ })
+
+ sources = self._el(document, 'sources', {})
+ source = self._el(document, 'source', {})
+ source.appendChild(document.createTextNode(self.base_dir))
+ sources.appendChild(source)
+
+ root.appendChild(sources)
+
+ packages_el = self._el(document, 'packages', {})
+
+ packages = coverage_data['packages']
+ for package_name, package_data in list(packages.items()):
+ package_el = self._el(document, 'package', {
+ 'line-rate': package_data['line-rate'],
+ 'branch-rate': package_data['branch-rate'],
+ 'name': package_name,
+ 'complexity': '0',
+ })
+ classes_el = self._el(document, 'classes', {})
+ for class_name, class_data in list(package_data['classes'].items()):
+ class_el = self._el(document, 'class', {
+ 'branch-rate': self._percent(class_data['branches-total'],
+ class_data['branches-covered']),
+ 'complexity': '0',
+ 'filename': class_name,
+ 'line-rate': self._percent(class_data['lines-total'],
+ class_data['lines-covered']),
+ 'name': class_data['name']
+ })
+
+ # Process methods
+ methods_el = self._el(document, 'methods', {})
+ for method_name, (line, hits) in list(class_data['methods'].items()):
+ method_el = self._el(document, 'method', {
+ 'name': self.format(method_name),
+ 'signature': '',
+ 'line-rate': '1.0' if int(hits) > 0 else '0.0',
+ 'branch-rate': '1.0' if int(hits) > 0 else '0.0',
+ })
+ method_lines_el = self._el(document, 'lines', {})
+ method_line_el = self._el(document, 'line', {
+ 'hits': hits,
+ 'number': line,
+ 'branch': 'false',
+ })
+ method_lines_el.appendChild(method_line_el)
+ method_el.appendChild(method_lines_el)
+ methods_el.appendChild(method_el)
+
+ # Process lines
+ lines_el = self._el(document, 'lines', {})
+ lines = list(class_data['lines'].keys())
+ lines.sort()
+ for line_number in lines:
+ line_el = self._el(document, 'line', {
+ 'branch': class_data['lines'][line_number]['branch'],
+ 'hits': str(class_data['lines'][line_number]['hits']),
+ 'number': str(line_number)
+ })
+ if class_data['lines'][line_number]['branch'] == 'true':
+ total = int(class_data['lines'][line_number]['branches-total'])
+ covered = int(class_data['lines'][line_number]['branches-covered'])
+ percentage = int((covered * 100.0) / total)
+ line_el.setAttribute('condition-coverage',
+ '{0}% ({1}/{2})'.format(
+ percentage, covered, total))
+ lines_el.appendChild(line_el)
+
+ class_el.appendChild(methods_el)
+ class_el.appendChild(lines_el)
+ classes_el.appendChild(class_el)
+ package_el.appendChild(classes_el)
+ packages_el.appendChild(package_el)
+ root.appendChild(packages_el)
+
+ return document.toprettyxml()
+
+ def _el(self, document, name, attrs):
+ """
+ Create an element within document with given name and attributes.
+
+ :param document: Document element
+ :type document: Document
+ :param name: Element name
+ :type name: string
+ :param attrs: Attributes for element
+ :type attrs: dict
+ """
+ return self._attrs(document.createElement(name), attrs)
+
+ def _attrs(self, element, attrs):
+ """
+ Set attributes on given element.
+
+ :param element: DOM Element
+ :type element: Element
+ :param attrs: Attributes for element
+ :type attrs: dict
+ """
+ for attr, val in list(attrs.items()):
+ element.setAttribute(attr, val)
+ return element
+
+ def _percent(self, lines_total, lines_covered):
+ """
+ Get the percentage of lines covered in the total, with formatting.
+
+ :param lines_total: Total number of lines in given module
+ :type lines_total: number
+ :param lines_covered: Number of lines covered by tests in module
+ :type lines_covered: number
+ """
+
+ if lines_total == 0:
+ return '0.0'
+ return str(float(float(lines_covered) / float(lines_total)))
+
+
+def main(argv=None):
+ """
+ Converts LCOV coverage data to Cobertura-compatible XML for reporting.
+
+ Usage:
+ lcov_cobertura.py lcov-file.dat
+ lcov_cobertura.py lcov-file.dat -b src/dir -e test.lib -o path/out.xml
+
+ By default, XML output will be written to ./coverage.xml
+ """
+ if argv is None:
+ argv = sys.argv
+ parser = OptionParser()
+ parser.usage = ('lcov_cobertura.py lcov-file.dat [-b source/dir] '
+ '[-e <exclude packages regex>] [-o output.xml] [-d]')
+ parser.description = 'Converts lcov output to cobertura-compatible XML'
+ parser.add_option('-b', '--base-dir', action='store',
+ help='Directory where source files are located',
+ dest='base_dir', default='.')
+ parser.add_option('-e', '--excludes',
+ help='Comma-separated list of regexes of packages to exclude',
+ action='append', dest='excludes', default=[])
+ parser.add_option('-o', '--output',
+ help='Path to store cobertura xml file',
+ action='store', dest='output', default='coverage.xml')
+ parser.add_option('-d', '--demangle',
+ help='Demangle C++ function names using %s' % CPPFILT,
+ action='store_true', dest='demangle', default=False)
+ (options, args) = parser.parse_args(args=argv)
+
+ if options.demangle and not HAVE_CPPFILT:
+ raise RuntimeError("C++ filter executable (%s) not found!" % CPPFILT)
+
+ if len(args) != 2:
+ print(main.__doc__)
+ sys.exit(1)
+
+ try:
+ with open(args[1], 'r') as lcov_file:
+ lcov_data = lcov_file.read()
+ lcov_cobertura = LcovCobertura(lcov_data, options.base_dir, options.excludes, options.demangle)
+ cobertura_xml = lcov_cobertura.convert()
+ with open(options.output, mode='wt') as output_file:
+ output_file.write(cobertura_xml)
+ except IOError:
+ sys.stderr.write("Unable to convert %s to Cobertura XML" % args[1])
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/command/tizen_xu4_test.sh b/scripts/command/tizen_xu4_test.sh
new file mode 100755
index 000000000..bfebc352d
--- /dev/null
+++ b/scripts/command/tizen_xu4_test.sh
@@ -0,0 +1,135 @@
+#!/bin/bash
+
+SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+NNFW_ROOT=$SCRIPT_ROOT/../..
+if [ -z "$TEST_ROOT" ]; then
+ TEST_ROOT=/opt/usr/nnfw-test
+fi
+
+function Usage()
+{
+ echo "Usage: ./tizen_xu4_test.sh --rpm-dir=path/to/rpm-dir --unittest --verification"
+ echo "Usage: ./tizen_xu4_test.sh --test-suite-path=path/to/test-suite.tar.gz --unittest --verification"
+ echo "--rpm-dir : directory containing nnfw.rpm and nnfw-test.rpm"
+ echo "--test-suite-path : filepath to test-suite.tar.gz"
+ echo "--unittest : run unittest"
+ echo "--verification : run verification"
+ echo "--framework : run framework"
+}
+
+
+function prepare_rpm_test()
+{
+ echo "======= Test with rpm packages(gbs build) ======="
+ # install nnfw nnfw-test rpms
+ for file in $RPM_DIR/*
+ do
+ $SDB_CMD push $file $TEST_ROOT
+ $SDB_CMD shell rpm -Uvh $TEST_ROOT/$(basename $file) --force --nodeps
+ done
+
+ # download tflite model files
+ pushd $NNFW_ROOT
+ tests/framework/run_test.sh --download=on
+ tar -zcf cache.tar.gz tests/framework/cache
+ $SDB_CMD push cache.tar.gz $TEST_ROOT/.
+ rm -rf cache.tar.gz
+ $SDB_CMD shell tar -zxf $TEST_ROOT/cache.tar.gz -C $TEST_ROOT
+}
+
+function prepare_suite_test()
+{
+ echo "======= Test with test-suite(cross build) ======="
+ # install test-suite
+ $SDB_CMD push $TEST_SUITE_PATH $TEST_ROOT/$(basename $TEST_SUITE_PATH)
+ $SDB_CMD shell tar -zxf $TEST_ROOT/$(basename $TEST_SUITE_PATH) -C $TEST_ROOT
+
+ # download tflite model files
+ pushd $NNFW_ROOT
+ tests/framework/run_test.sh --download=on
+ tar -zcf cache.tar.gz tests/framework/cache
+ $SDB_CMD push cache.tar.gz $TEST_ROOT/.
+ rm -rf cache.tar.gz
+ $SDB_CMD shell tar -zxf $TEST_ROOT/cache.tar.gz -C $TEST_ROOT
+}
+
+
+# Parse command argv
+for i in "$@"
+do
+ case $i in
+ -h|--help|help)
+ Usage
+ exit 1
+ ;;
+ --rpm-dir=*)
+ RPM_DIR=${i#*=}
+ ;;
+ --test-suite-path=*)
+ TEST_SUITE_PATH=${i#*=}
+ ;;
+ --unittest)
+ UNITTEST=on
+ ;;
+ --verification)
+ VERIFICATION=on
+ ;;
+ --framework)
+ FRAMEWORK=on
+ ;;
+ esac
+ shift
+done
+
+
+N=`sdb devices 2>/dev/null | wc -l`
+
+# exit if no device found
+if [[ $N -le 1 ]]; then
+ echo "No device found."
+ exit 1;
+fi
+
+NUM_DEV=$(($N-1))
+echo "device list"
+DEVICE_LIST=`sdb devices 2>/dev/null`
+echo "$DEVICE_LIST" | tail -n"$NUM_DEV"
+
+if [ -z "$SERIAL" ]; then
+ SERIAL=`echo "$DEVICE_LIST" | tail -n1 | awk '{print $1}'`
+fi
+SDB_CMD="sdb -s $SERIAL "
+
+# root on, remount as rw
+$SDB_CMD root on
+$SDB_CMD shell mount -o rw,remount /
+
+SCRIPT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+ROOT=$SCRIPT_ROOT/../
+
+if [ -z "$RPM_DIR" ] && [ -z "$TEST_SUITE_PATH" ]; then
+ echo "Please provide --rpm-dir or --test-suite-path"
+ exit 255
+fi
+
+if [ ! -z "$RPM_DIR" ]; then
+ prepare_rpm_test
+else
+ prepare_suite_test
+fi
+
+# run unittest
+if [ "$UNITTEST" == "on" ]; then
+ $SDB_CMD shell $TEST_ROOT/tools/test_driver/test_driver.sh --unittest --artifactpath=$TEST_ROOT
+fi
+
+# run framework test
+if [ "$FRAMEWORK" == "on" ]; then
+ $SDB_CMD shell $TEST_ROOT/tools/test_driver/test_driver.sh --frameworktest --artifactpath=$TEST_ROOT
+fi
+
+# run verification
+if [ "$VERIFICATION" == "on" ]; then
+ $SDB_CMD shell $TEST_ROOT/tools/test_driver/test_driver.sh --verification --artifactpath=$TEST_ROOT
+fi
+
diff --git a/scripts/docker/Dockerfile b/scripts/docker/Dockerfile
new file mode 100644
index 000000000..cde173a5c
--- /dev/null
+++ b/scripts/docker/Dockerfile
@@ -0,0 +1,14 @@
+FROM ubuntu:16.04
+
+ENV http_proxy $http_proxy
+ENV https_proxy $https_proxy
+
+RUN apt-get update && apt-get --yes --force-yes install build-essential
+RUN apt-get update && apt-get --yes --force-yes install scons cmake
+RUN apt-get update && apt-get --yes --force-yes install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
+RUN apt-get update && apt-get --yes --force-yes install libboost-all-dev
+RUN apt-get update && apt-get --yes --force-yes install git
+RUN apt-get update && apt-get --yes --force-yes install gcc-5-arm-linux-gnueabi g++-5-arm-linux-gnueabi
+RUN apt-get update && apt-get --yes --force-yes install lcov
+RUN apt-get update && apt-get --yes --force-yes install clang-format-3.9 python-pip
+RUN pip install yapf
diff --git a/scripts/docker/Dockerfile_tizen b/scripts/docker/Dockerfile_tizen
new file mode 100644
index 000000000..1c39380b0
--- /dev/null
+++ b/scripts/docker/Dockerfile_tizen
@@ -0,0 +1,8 @@
+FROM ubuntu:16.04
+
+ENV http_proxy $http_proxy
+ENV https_proxy $https_proxy
+
+RUN echo 'deb [trusted=yes] http://download.tizen.org/tools/latest-release/Ubuntu_16.04/ /' | cat >> /etc/apt/sources.list
+
+RUN apt-get update && apt-get --yes --force-yes install gbs
diff --git a/tests/framework/run_test.sh b/tests/framework/run_test.sh
new file mode 100755
index 000000000..ad624ef25
--- /dev/null
+++ b/tests/framework/run_test.sh
@@ -0,0 +1,228 @@
+#!/usr/bin/env bash
+#
+# Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+MY_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+CACHE_ROOT_PATH=$MY_PATH/"cache"
+TEST_ROOT_PATH=$MY_PATH/"tests"
+REPORT_DIR="report"
+
+RUN_DISABLED="true"
+
+function Usage()
+{
+ echo "Usage: ./$0 --driverbin={such as tflite_run} {tests to test or empty for all of tests}"
+ echo "Usage: ./$0 --driverbin=Product/out/bin/tflite_run --reportdir=report --tapname=verification.tap avgpool1 avgpool2"
+ echo ""
+ echo "--download - (default=off) Download model files. Other options is ignored"
+ echo "--driverbin - (default=../../Product/out/bin/tflite_run) runner for runnning framework tests"
+ echo "--reportdir - (default=report) directory to place tap files"
+ echo "--tapname - (default=framework_test.tap) file name to be written for tap"
+ echo ""
+}
+
+DRIVER_BIN=""
+TAP_NAME="framework_test.tap"
+TEST_LIST=()
+DOWNLOAD_MODE="off"
+for i in "$@"
+do
+ case $i in
+ -h|--help|help)
+ Usage
+ exit 1
+ ;;
+ --driverbin=*)
+ DRIVER_BIN=${i#*=}
+ ;;
+ --reportdir=*)
+ REPORT_DIR=${i#*=}
+ ;;
+ --tapname=*)
+ TAP_NAME=${i#*=}
+ ;;
+ --download=*)
+ DOWNLOAD_MODE=${i#*=}
+ ;;
+ *)
+ TEST_LIST+=( $i )
+ ;;
+ esac
+ shift
+done
+
+if [[ ${#TEST_LIST[@]} -eq 0 ]]; then
+ RUN_DISABLED="false"
+fi
+
+if [ ! -n "$DRIVER_BIN" ]; then
+ DRIVER_BIN=$MY_PATH/"../../Product/out/bin/tflite_run"
+fi
+
+# Check test driver setting
+if [ ! -e $DRIVER_BIN ] && [ "$DOWNLOAD_MODE" != "on" ]; then
+ echo "Cannot find test driver" $DRIVER_BIN ": please set proper DRIVER_BIN"
+ exit 1
+fi
+
+run_tests()
+{
+ echo "1..$#" > $REPORT_DIR/$TAP_NAME
+ SELECTED_TESTS=$@
+
+ echo ""
+ echo "Running tests:"
+ echo "======================"
+ for TEST_NAME in $SELECTED_TESTS; do
+ echo $TEST_NAME
+ done
+ echo "======================"
+
+ i=0
+ for TEST_NAME in $SELECTED_TESTS; do
+ ((i++))
+ STATUS="enabled"
+ source $TEST_ROOT_PATH/$TEST_NAME/config.sh
+
+ LOWER_STATUS="$(echo $STATUS | awk '{print tolower($0)}')"
+ if [ "$LOWER_STATUS" == "disabled" ] && [ "$RUN_DISABLED" == "false" ]; then
+ echo ""
+ echo "Skip $TEST_NAME"
+ echo "======================"
+ echo "ok $i # skip $TEST_NAME" >> $REPORT_DIR/$TAP_NAME
+ continue
+ fi
+
+ TEST_CACHE_PATH=$CACHE_ROOT_PATH/$TEST_NAME
+ MODELFILE=$TEST_CACHE_PATH/$MODELFILE_NAME
+
+ # Download model file
+ if [ ! -e $TEST_CACHE_PATH ]; then
+ mkdir -p $TEST_CACHE_PATH
+ fi
+
+ # Download unless we have it in cache (Also check md5sum)
+ if [ ! -e $MODELFILE ] || [ $(md5sum $MODELFILE | awk '{ print $1 }') != "$MODELFILE_MD5SUM" ]; then
+ echo ""
+ echo "Download test file for $TEST_NAME"
+ echo "======================"
+
+ rm -f $MODELFILE # Remove invalid file if exists
+ pushd $TEST_CACHE_PATH
+ wget -nv $MODELFILE_SERVER_URL/$MODELFILE_NAME
+ if [ "${MODELFILE_NAME##*.}" == "zip" ]; then
+ unzip -o $MODELFILE_NAME
+ fi
+ popd
+ fi
+
+ if [ "${MODELFILE_NAME##*.}" == "zip" ]; then
+ pushd $TEST_CACHE_PATH
+ MODELFILE=$TEST_CACHE_PATH/$(ls *.tflite)
+ popd
+ fi
+
+ echo ""
+ echo "Run $TEST_NAME"
+ echo "======================"
+ # Run driver to test framework
+ $DRIVER_BIN $MODELFILE
+ RESULT=$?
+ if [[ $RESULT -eq 0 ]]; then
+ echo "ok $i - $TEST_NAME" >> $REPORT_DIR/$TAP_NAME
+ else
+ echo "not ok $i - $TEST_NAME" >> $REPORT_DIR/$TAP_NAME
+ fi
+ done
+}
+
+download_tests()
+{
+ SELECTED_TESTS=$@
+
+ echo ""
+ echo "Downloading tests:"
+ echo "======================"
+ for TEST_NAME in $SELECTED_TESTS; do
+ echo $TEST_NAME
+ done
+ echo "======================"
+
+ i=0
+ for TEST_NAME in $SELECTED_TESTS; do
+ ((i++))
+ source $TEST_ROOT_PATH/$TEST_NAME/config.sh
+
+ TEST_CACHE_PATH=$CACHE_ROOT_PATH/$TEST_NAME
+ MODELFILE=$TEST_CACHE_PATH/$MODELFILE_NAME
+
+ # Download model file
+ if [ ! -e $TEST_CACHE_PATH ]; then
+ mkdir -p $TEST_CACHE_PATH
+ fi
+
+ # Download unless we have it in cache (Also check md5sum)
+ if [ ! -e $MODELFILE ] || [ $(md5sum $MODELFILE | awk '{ print $1 }') != "$MODELFILE_MD5SUM" ]; then
+ echo ""
+ echo "Download test file for $TEST_NAME"
+ echo "======================"
+
+ rm -f $MODELFILE # Remove invalid file if exists
+ pushd $TEST_CACHE_PATH
+ wget -nv $MODELFILE_SERVER_URL/$MODELFILE_NAME
+
+ if [ "${MODELFILE_NAME##*.}" == "zip" ]; then
+ unzip $MODELFILE_NAME
+ fi
+ popd
+ fi
+
+ done
+}
+
+
+find_tests()
+{
+ local TEST_DIRS="$@"
+ local TESTS_TO_RUN=""
+
+ if [[ $# -eq 0 ]]; then
+ TEST_DIRS="."
+ fi
+
+ shift $#
+
+ pushd $TEST_ROOT_PATH > /dev/null
+ for DIR in $TEST_DIRS; do
+ if [ -d "$DIR" ]; then
+ TESTS_FOUND=$(find "$DIR" -type f -name 'config.sh' -exec dirname {} \;| sed 's|^./||' | sort)
+ TESTS_TO_RUN="$TESTS_TO_RUN $TESTS_FOUND"
+ fi
+ done
+ popd > /dev/null
+
+ echo $TESTS_TO_RUN
+}
+
+mkdir -p $REPORT_DIR
+TESTS_TO_RUN=$(find_tests ${TEST_LIST[@]})
+
+if [[ "$DOWNLOAD_MODE" == "on" ]]; then
+ download_tests $TESTS_TO_RUN
+ exit 0;
+fi
+
+run_tests $TESTS_TO_RUN
diff --git a/tests/framework/tests/inceptionv3/inception_nonslim/config.sh b/tests/framework/tests/inceptionv3/inception_nonslim/config.sh
new file mode 100644
index 000000000..462a79618
--- /dev/null
+++ b/tests/framework/tests/inceptionv3/inception_nonslim/config.sh
@@ -0,0 +1,9 @@
+if [ -z "$MODELFILE_SERVER" ]; then
+ MODELFILE_SERVER_URL=https://storage.googleapis.com/download.tensorflow.org/models/tflite
+ MODELFILE_NAME="inception_v3_2015_2017_11_10.zip"
+ MODELFILE_MD5SUM="1da1555f2b63e520b9c8217921340860"
+else
+ MODELFILE_SERVER_URL=$MODELFILE_SERVER
+ MODELFILE_NAME="inceptionv3_non_slim_2015.tflite"
+ MODELFILE_MD5SUM="58583dc1a7943684933a2a132e23c4ea"
+fi
diff --git a/tests/framework/tests/inceptionv3/inception_slim/config.sh b/tests/framework/tests/inceptionv3/inception_slim/config.sh
new file mode 100644
index 000000000..938c0fbc3
--- /dev/null
+++ b/tests/framework/tests/inceptionv3/inception_slim/config.sh
@@ -0,0 +1,9 @@
+if [ -z "$MODELFILE_SERVER" ]; then
+ MODELFILE_SERVER_URL=https://storage.googleapis.com/download.tensorflow.org/models/tflite
+ MODELFILE_NAME="inception_v3_slim_2016_android_2017_11_10.zip"
+ MODELFILE_MD5SUM="97a8c7e083c7120d4504ed08a268d371"
+else
+ MODELFILE_SERVER_URL=$MODELFILE_SERVER
+ MODELFILE_NAME="inceptionv3_slim_2016.tflite"
+ MODELFILE_MD5SUM="467942de9b8e3a01324af56d45fab233"
+fi
diff --git a/tools/.FORMATCHECKED b/tools/.FORMATCHECKED
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tools/.FORMATCHECKED
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
new file mode 100644
index 000000000..9b82628cb
--- /dev/null
+++ b/tools/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory(nnapi_test)
diff --git a/tools/cross/apt_proxy b/tools/cross/apt_proxy
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tools/cross/apt_proxy
diff --git a/tools/cross/arm/sources.list.trusty b/tools/cross/arm/sources.list.trusty
new file mode 100644
index 000000000..8aa98a259
--- /dev/null
+++ b/tools/cross/arm/sources.list.trusty
@@ -0,0 +1,11 @@
+deb http://ports.ubuntu.com/ubuntu-ports/ trusty main restricted universe
+deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty main restricted universe
+
+deb http://ports.ubuntu.com/ubuntu-ports/ trusty-updates main restricted universe
+deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty-updates main restricted universe
+
+deb http://ports.ubuntu.com/ubuntu-ports/ trusty-backports main restricted
+deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty-backports main restricted
+
+deb http://ports.ubuntu.com/ubuntu-ports/ trusty-security main restricted universe multiverse
+deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty-security main restricted universe multiverse
diff --git a/tools/cross/arm/sources.list.xenial b/tools/cross/arm/sources.list.xenial
new file mode 100644
index 000000000..56fbb36a5
--- /dev/null
+++ b/tools/cross/arm/sources.list.xenial
@@ -0,0 +1,11 @@
+deb http://ports.ubuntu.com/ubuntu-ports/ xenial main restricted universe
+deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial main restricted universe
+
+deb http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main restricted universe
+deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main restricted universe
+
+deb http://ports.ubuntu.com/ubuntu-ports/ xenial-backports main restricted
+deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-backports main restricted
+
+deb http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted universe multiverse
+deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted universe multiverse
diff --git a/tools/cross/arm64/sources.list.trusty b/tools/cross/arm64/sources.list.trusty
new file mode 100644
index 000000000..8aa98a259
--- /dev/null
+++ b/tools/cross/arm64/sources.list.trusty
@@ -0,0 +1,11 @@
+deb http://ports.ubuntu.com/ubuntu-ports/ trusty main restricted universe
+deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty main restricted universe
+
+deb http://ports.ubuntu.com/ubuntu-ports/ trusty-updates main restricted universe
+deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty-updates main restricted universe
+
+deb http://ports.ubuntu.com/ubuntu-ports/ trusty-backports main restricted
+deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty-backports main restricted
+
+deb http://ports.ubuntu.com/ubuntu-ports/ trusty-security main restricted universe multiverse
+deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty-security main restricted universe multiverse
diff --git a/tools/cross/arm64/sources.list.xenial b/tools/cross/arm64/sources.list.xenial
new file mode 100644
index 000000000..56fbb36a5
--- /dev/null
+++ b/tools/cross/arm64/sources.list.xenial
@@ -0,0 +1,11 @@
+deb http://ports.ubuntu.com/ubuntu-ports/ xenial main restricted universe
+deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial main restricted universe
+
+deb http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main restricted universe
+deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-updates main restricted universe
+
+deb http://ports.ubuntu.com/ubuntu-ports/ xenial-backports main restricted
+deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-backports main restricted
+
+deb http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted universe multiverse
+deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial-security main restricted universe multiverse
diff --git a/tools/cross/armel/tizen-build-rootfs.sh b/tools/cross/armel/tizen-build-rootfs.sh
new file mode 100755
index 000000000..2d0084d03
--- /dev/null
+++ b/tools/cross/armel/tizen-build-rootfs.sh
@@ -0,0 +1,43 @@
+#!/usr/bin/env bash
+set -e
+
+__ARM_SOFTFP_CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+
+if [[ -z "$ROOTFS_DIR" ]]; then
+ echo "ROOTFS_DIR is not defined."
+ exit 1;
+fi
+
+# Clean-up (TODO-Cleanup: We may already delete $ROOTFS_DIR at ./cross/build-rootfs.sh.)
+# hk0110
+if [ -d "$ROOTFS_DIR" ]; then
+ umount $ROOTFS_DIR/*
+ rm -rf $ROOTFS_DIR
+fi
+
+TIZEN_TMP_DIR=$ROOTFS_DIR/tizen_tmp
+mkdir -p $TIZEN_TMP_DIR
+
+# Download files
+echo ">>Start downloading files"
+VERBOSE=1 $__ARM_SOFTFP_CrossDir/tizen-fetch.sh $TIZEN_TMP_DIR
+echo "<<Finish downloading files"
+
+echo ">>Start constructing Tizen rootfs"
+TIZEN_RPM_FILES=`ls $TIZEN_TMP_DIR/*.rpm`
+cd $ROOTFS_DIR
+for f in $TIZEN_RPM_FILES; do
+ rpm2cpio $f | cpio -idm --quiet
+done
+echo "<<Finish constructing Tizen rootfs"
+
+# Cleanup tmp
+rm -rf $TIZEN_TMP_DIR
+
+# Configure Tizen rootfs
+echo ">>Start configuring Tizen rootfs"
+rm ./usr/lib/libunwind.so
+ln -s libunwind.so.8 ./usr/lib/libunwind.so
+ln -sfn asm-arm ./usr/include/asm
+patch -p1 < $__ARM_SOFTFP_CrossDir/tizen.patch
+echo "<<Finish configuring Tizen rootfs"
diff --git a/tools/cross/armel/tizen-fetch.sh b/tools/cross/armel/tizen-fetch.sh
new file mode 100755
index 000000000..4f63b24c2
--- /dev/null
+++ b/tools/cross/armel/tizen-fetch.sh
@@ -0,0 +1,169 @@
+#!/usr/bin/env bash
+set -e
+
+if [[ -z "${VERBOSE// }" ]] || [ "$VERBOSE" -ne "$VERBOSE" ] 2>/dev/null; then
+ VERBOSE=0
+fi
+
+Log()
+{
+ if [ $VERBOSE -ge $1 ]; then
+ echo ${@:2}
+ fi
+}
+
+Inform()
+{
+ Log 1 -e "\x1B[0;34m$@\x1B[m"
+}
+
+Debug()
+{
+ Log 2 -e "\x1B[0;32m$@\x1B[m"
+}
+
+Error()
+{
+ >&2 Log 0 -e "\x1B[0;31m$@\x1B[m"
+}
+
+Fetch()
+{
+ URL=$1
+ FILE=$2
+ PROGRESS=$3
+ if [ $VERBOSE -ge 1 ] && [ $PROGRESS ]; then
+ CURL_OPT="--progress-bar"
+ else
+ CURL_OPT="--silent"
+ fi
+ curl $CURL_OPT $URL > $FILE
+}
+
+hash curl 2> /dev/null || { Error "Require 'curl' Aborting."; exit 1; }
+hash xmllint 2> /dev/null || { Error "Require 'xmllint' Aborting."; exit 1; }
+hash sha256sum 2> /dev/null || { Error "Require 'sha256sum' Aborting."; exit 1; }
+
+TMPDIR=$1
+if [ ! -d $TMPDIR ]; then
+ TMPDIR=./tizen_tmp
+ Debug "Create temporary directory : $TMPDIR"
+ mkdir -p $TMPDIR
+fi
+
+TIZEN_URL=http://download.tizen.org/releases/daily/tizen
+BUILD_XML=build.xml
+REPOMD_XML=repomd.xml
+PRIMARY_XML=primary.xml
+TARGET_URL="http://__not_initialized"
+
+Xpath_get()
+{
+ XPATH_RESULT=''
+ XPATH=$1
+ XML_FILE=$2
+ RESULT=$(xmllint --xpath $XPATH $XML_FILE)
+ if [[ -z ${RESULT// } ]]; then
+ Error "Can not find target from $XML_FILE"
+ Debug "Xpath = $XPATH"
+ exit 1
+ fi
+ XPATH_RESULT=$RESULT
+}
+
+fetch_tizen_pkgs_init()
+{
+ TARGET=$1
+ PROFILE=$2
+ Debug "Initialize TARGET=$TARGET, PROFILE=$PROFILE"
+
+ TMP_PKG_DIR=$TMPDIR/tizen_${PROFILE}_pkgs
+ if [ -d $TMP_PKG_DIR ]; then rm -rf $TMP_PKG_DIR; fi
+ mkdir -p $TMP_PKG_DIR
+
+ PKG_URL=$TIZEN_URL/$PROFILE/latest
+
+ BUILD_XML_URL=$PKG_URL/$BUILD_XML
+ TMP_BUILD=$TMP_PKG_DIR/$BUILD_XML
+ TMP_REPOMD=$TMP_PKG_DIR/$REPOMD_XML
+ TMP_PRIMARY=$TMP_PKG_DIR/$PRIMARY_XML
+ TMP_PRIMARYGZ=${TMP_PRIMARY}.gz
+
+ Fetch $BUILD_XML_URL $TMP_BUILD
+
+ Debug "fetch $BUILD_XML_URL to $TMP_BUILD"
+
+ TARGET_XPATH="//build/buildtargets/buildtarget[@name=\"$TARGET\"]/repo[@type=\"binary\"]/text()"
+ Xpath_get $TARGET_XPATH $TMP_BUILD
+ TARGET_PATH=$XPATH_RESULT
+ TARGET_URL=$PKG_URL/$TARGET_PATH
+
+ REPOMD_URL=$TARGET_URL/repodata/repomd.xml
+ PRIMARY_XPATH='string(//*[local-name()="data"][@type="primary"]/*[local-name()="location"]/@href)'
+
+ Fetch $REPOMD_URL $TMP_REPOMD
+
+ Debug "fetch $REPOMD_URL to $TMP_REPOMD"
+
+ Xpath_get $PRIMARY_XPATH $TMP_REPOMD
+ PRIMARY_XML_PATH=$XPATH_RESULT
+ PRIMARY_URL=$TARGET_URL/$PRIMARY_XML_PATH
+
+ Fetch $PRIMARY_URL $TMP_PRIMARYGZ
+
+ Debug "fetch $PRIMARY_URL to $TMP_PRIMARYGZ"
+
+ gunzip $TMP_PRIMARYGZ
+
+ Debug "unzip $TMP_PRIMARYGZ to $TMP_PRIMARY"
+}
+
+fetch_tizen_pkgs()
+{
+ ARCH=$1
+ PACKAGE_XPATH_TPL='string(//*[local-name()="metadata"]/*[local-name()="package"][*[local-name()="name"][text()="_PKG_"]][*[local-name()="arch"][text()="_ARCH_"]]/*[local-name()="location"]/@href)'
+
+ PACKAGE_CHECKSUM_XPATH_TPL='string(//*[local-name()="metadata"]/*[local-name()="package"][*[local-name()="name"][text()="_PKG_"]][*[local-name()="arch"][text()="_ARCH_"]]/*[local-name()="checksum"]/text())'
+
+ for pkg in ${@:2}
+ do
+ Inform "Fetching... $pkg"
+ XPATH=${PACKAGE_XPATH_TPL/_PKG_/$pkg}
+ XPATH=${XPATH/_ARCH_/$ARCH}
+ Xpath_get $XPATH $TMP_PRIMARY
+ PKG_PATH=$XPATH_RESULT
+
+ XPATH=${PACKAGE_CHECKSUM_XPATH_TPL/_PKG_/$pkg}
+ XPATH=${XPATH/_ARCH_/$ARCH}
+ Xpath_get $XPATH $TMP_PRIMARY
+ CHECKSUM=$XPATH_RESULT
+
+ PKG_URL=$TARGET_URL/$PKG_PATH
+ PKG_FILE=$(basename $PKG_PATH)
+ PKG_PATH=$TMPDIR/$PKG_FILE
+
+ Debug "Download $PKG_URL to $PKG_PATH"
+ Fetch $PKG_URL $PKG_PATH true
+
+ echo "$CHECKSUM $PKG_PATH" | sha256sum -c - > /dev/null
+ if [ $? -ne 0 ]; then
+ Error "Fail to fetch $PKG_URL to $PKG_PATH"
+ Debug "Checksum = $CHECKSUM"
+ exit 1
+ fi
+ done
+}
+
+Inform "Initialize arm base"
+fetch_tizen_pkgs_init standard base
+Inform "fetch common packages"
+fetch_tizen_pkgs armv7l glibc glibc-devel
+fetch_tizen_pkgs noarch linux-glibc-devel
+fetch_tizen_pkgs armv7l libgcc libstdc++ libstdc++-devel libunwind libunwind-devel
+
+
+Inform "Initialize standard unified"
+fetch_tizen_pkgs_init standard unified
+Inform "fetch nnfw packages"
+fetch_tizen_pkgs armv7l gtest-devel tensorflow-lite-devel boost-devel libarmcl-devel boost-program-options boost-system boost-filesystem
+
diff --git a/tools/cross/armel/tizen.patch b/tools/cross/armel/tizen.patch
new file mode 100644
index 000000000..d223427c9
--- /dev/null
+++ b/tools/cross/armel/tizen.patch
@@ -0,0 +1,18 @@
+diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so
+--- a/usr/lib/libc.so 2016-12-30 23:00:08.284951863 +0900
++++ b/usr/lib/libc.so 2016-12-30 23:00:32.140951815 +0900
+@@ -2,4 +2,4 @@
+ Use the shared library, but some functions are only in
+ the static library, so try that secondarily. */
+ OUTPUT_FORMAT(elf32-littlearm)
+-GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a AS_NEEDED ( /lib/ld-linux.so.3 ) )
++GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux.so.3 ) )
+diff -u -r a/usr/lib/libpthread.so b/usr/lib/libpthread.so
+--- a/usr/lib/libpthread.so 2016-12-30 23:00:19.408951841 +0900
++++ b/usr/lib/libpthread.so 2016-12-30 23:00:39.068951801 +0900
+@@ -2,4 +2,4 @@
+ Use the shared library, but some functions are only in
+ the static library, so try that secondarily. */
+ OUTPUT_FORMAT(elf32-littlearm)
+-GROUP ( /lib/libpthread.so.0 /usr/lib/libpthread_nonshared.a )
++GROUP ( libpthread.so.0 libpthread_nonshared.a )
diff --git a/tools/cross/build_android_rootfs.sh b/tools/cross/build_android_rootfs.sh
new file mode 100755
index 000000000..3baea2e2c
--- /dev/null
+++ b/tools/cross/build_android_rootfs.sh
@@ -0,0 +1,62 @@
+#!/usr/bin/env bash
+set -x
+
+# Different from other architectures, the result does not contain only RootFS.
+# $__Rootfs/bin : Toolchains
+# $__Rootfs/sysroot : RootFS
+
+usage()
+{
+ echo "Usage: $0 [BuildArch] [NDKVersion] [APILevel]"
+ echo "BuildArch : arm or arm64"
+ echo "NDKVersion : r16b or higher (Must start with 'r')"
+ echo "APILevel : 27 or higher"
+ exit 1
+}
+
+__CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+__BuildArch=arm64
+__NDKVersion=r16b
+__APILevel="27"
+__UnprocessedBuildArgs=
+
+for i in "$@" ; do
+ lowerI="$(echo $i | awk '{print tolower($0)}')"
+ case $lowerI in
+ -?|-h|--help)
+ usage
+ exit 1
+ ;;
+ arm)
+ __BuildArch=arm
+ ;;
+ arm64)
+ __BuildArch=arm64
+ ;;
+ r16b)
+ __NDKVersion=r16b
+ ;;
+ 27)
+ __APILevel="27"
+ ;;
+ *)
+ __UnprocessedBuildArgs="$__UnprocessedBuildArgs $i"
+ ;;
+ esac
+done
+
+__RootfsDir=${ROOTFS_DIR:-"${__CrossDir}/rootfs/${__BuildArch}.android"}
+__TempDir=${TEMP_DIR:-"/tmp"}
+
+NDK_DIR=android-ndk-${__NDKVersion}
+NDK_ZIP=${NDK_DIR}-linux-x86_64.zip
+
+echo "Downloading Android NDK"
+wget -nv -nc https://dl.google.com/android/repository/$NDK_ZIP -O $__TempDir/$NDK_ZIP
+
+echo "Unzipping Android NDK"
+unzip -qq -o $__TempDir/$NDK_ZIP -d $__TempDir
+
+echo "Generating standalone toolchain and rootfs to $__RootfsDir"
+
+$__TempDir/$NDK_DIR/build/tools/make-standalone-toolchain.sh --arch=$__BuildArch --platform=android-$__APILevel --install-dir=$__RootfsDir
diff --git a/tools/cross/build_rootfs.sh b/tools/cross/build_rootfs.sh
new file mode 100755
index 000000000..f52ca6338
--- /dev/null
+++ b/tools/cross/build_rootfs.sh
@@ -0,0 +1,122 @@
+#!/usr/bin/env bash
+set -x
+
+usage()
+{
+ echo "Usage: $0 [BuildArch] [LinuxCodeName] [--skipunmount] [--skipproxy]"
+ echo "BuildArch can be: arm(default), arm64 and armel"
+ echo "LinuxCodeName - optional, Code name for Linux, can be: xenial(default), trusty"
+ echo " If BuildArch is armel, this can be tizen(default)"
+ echo "--skipunmount - optional, will skip the unmount of rootfs folder."
+ echo "--skipproxy - optional, will skip the adding proxy information for Seoul R&D Campus."
+ exit 1
+}
+
+__CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+__InitialDir=$PWD
+__UbuntuRepo="http://ports.ubuntu.com/"
+
+__BuildArch=arm
+__UbuntuArch=armhf
+__LinuxCodeName=xenial
+__SkipUnmount=0
+__SkipProxy=0
+
+# base development support
+__UbuntuPackages="build-essential"
+
+# other development supports
+__UbuntuPackages+=" libboost-all-dev"
+
+# symlinks fixer
+__UbuntuPackages+=" symlinks"
+
+__UnprocessedBuildArgs=
+
+for i in "$@" ; do
+ lowerI="$(echo $i | awk '{print tolower($0)}')"
+ case $lowerI in
+ -?|-h|--help)
+ usage
+ exit 1
+ ;;
+ arm)
+ __BuildArch=arm
+ __UbuntuArch=armhf
+ ;;
+ arm64)
+ __BuildArch=arm64
+ __UbuntuArch=arm64
+ ;;
+ armel)
+ __BuildArch=armel
+ __Tizen=tizen
+ __UbuntuArch=
+ __UbuntuRepo=
+ __LinuxCodeName=
+ ;;
+ tizen)
+ if [ "$__BuildArch" != "armel" ]; then
+ echo "Tizen is available only for armel."
+ usage;
+ exit 1;
+ fi
+ __Tizen=tizen
+ __UbuntuArch=
+ __UbuntuRepo=
+ __LinuxCodeName=
+ ;;
+ trusty)
+ __LinuxCodeName=trusty
+ ;;
+ xenial)
+ __LinuxCodeName=xenial
+ ;;
+ --skipunmount)
+ __SkipUnmount=1
+ ;;
+ --skipproxy)
+ __SkipProxy=1
+ ;;
+ *)
+ __UnprocessedBuildArgs="$__UnprocessedBuildArgs $i"
+ ;;
+ esac
+done
+
+__RootfsDir="$__CrossDir/rootfs/$__BuildArch"
+
+if [[ -n "$ROOTFS_DIR" ]]; then
+ __RootfsDir=$ROOTFS_DIR
+fi
+
+if [ -d "$__RootfsDir" ]; then
+ if [ $__SkipUnmount == 0 ]; then
+ umount $__RootfsDir/*
+ fi
+ rm -rf $__RootfsDir
+fi
+
+if [ $__SkipProxy == 0 ] && [ "$__Tizen" != "tizen" ]; then
+ mkdir -p $__RootfsDir/etc/apt/apt.conf.d
+ cp $__CrossDir/apt_proxy $__RootfsDir/etc/apt/apt.conf.d/90proxy
+fi
+
+if [[ -n $__LinuxCodeName ]]; then
+ qemu-debootstrap --arch $__UbuntuArch $__LinuxCodeName $__RootfsDir $__UbuntuRepo
+ cp $__CrossDir/$__BuildArch/sources.list.$__LinuxCodeName $__RootfsDir/etc/apt/sources.list
+ chroot $__RootfsDir apt-get update
+ chroot $__RootfsDir apt-get -f -y install
+ chroot $__RootfsDir apt-get -y install $__UbuntuPackages
+ chroot $__RootfsDir symlinks -cr /usr
+
+ if [ $__SkipUnmount == 0 ]; then
+ umount $__RootfsDir/*
+ fi
+elif [ "$__Tizen" == "tizen" ]; then
+ ROOTFS_DIR=$__RootfsDir $__CrossDir/$__BuildArch/tizen-build-rootfs.sh
+else
+ echo "Unsupported target platform."
+ usage;
+ exit 1
+fi
diff --git a/tools/nnapi_test/CMakeLists.txt b/tools/nnapi_test/CMakeLists.txt
new file mode 100644
index 000000000..cd9f2a524
--- /dev/null
+++ b/tools/nnapi_test/CMakeLists.txt
@@ -0,0 +1,5 @@
+list(APPEND SOURCES "src/nnapi_test.cc")
+
+add_executable(nnapi_test ${SOURCES})
+target_link_libraries(nnapi_test nnfw_support_tflite)
+install(TARGETS nnapi_test DESTINATION bin)
diff --git a/tools/nnapi_test/src/nnapi_test.cc b/tools/nnapi_test/src/nnapi_test.cc
new file mode 100644
index 000000000..515311a3c
--- /dev/null
+++ b/tools/nnapi_test/src/nnapi_test.cc
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "tensorflow/contrib/lite/kernels/register.h"
+#include "tensorflow/contrib/lite/model.h"
+
+#include "util/environment.h"
+
+#include "support/tflite/interp/FlatBufferBuilder.h"
+#include "support/tflite/Diff.h"
+
+#include <iostream>
+
+using namespace tflite;
+using namespace tflite::ops::builtin;
+
+int main(const int argc, char **argv)
+{
+ int verbose = 0;
+ int tolerance = 1;
+
+ nnfw::util::env::IntAccessor("VERBOSE").access(verbose);
+ nnfw::util::env::IntAccessor("TOLERANCE").access(tolerance);
+
+ if (argc < 2)
+ {
+ std::cerr << "nnapi_test\n\n";
+ std::cerr << "Usage: " << argv[0] << " <.tflite>\n\n";
+ return 1;
+ }
+
+ const auto filename = argv[1];
+
+ StderrReporter error_reporter;
+
+ auto model = FlatBufferModel::BuildFromFile(filename, &error_reporter);
+
+ const nnfw::support::tflite::interp::FlatBufferBuilder builder(*model);
+
+ RandomTestParam param;
+
+ param.verbose = verbose;
+ param.tolerance = tolerance;
+
+ return RandomTestRunner{0, param}.run(builder);
+}
diff --git a/tools/test_driver/nnfw_kernel_env_list.txt b/tools/test_driver/nnfw_kernel_env_list.txt
new file mode 100644
index 000000000..9cb3fc46c
--- /dev/null
+++ b/tools/test_driver/nnfw_kernel_env_list.txt
@@ -0,0 +1,7 @@
+NNFW_KERNEL_convFloat32
+NNFW_KERNEL_averagePoolFloat32
+NNFW_KERNEL_maxPoolFloat32
+NNFW_KERNEL_softmaxFloat32
+NNFW_KERNEL_fullyConnectedFloat32
+NNFW_KERNEL_concatenationFloat32
+NNFW_KERNEL_reshapeGeneric
diff --git a/tools/test_driver/print_to_json.sh b/tools/test_driver/print_to_json.sh
new file mode 100755
index 000000000..857fa0423
--- /dev/null
+++ b/tools/test_driver/print_to_json.sh
@@ -0,0 +1,152 @@
+#!/bin/bash
+#
+# Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+function echo_to_file
+{
+ echo -e "$1" >> $RESULT_JSON
+}
+
+function print_comma() # ,
+{
+ echo_to_file ","
+}
+
+function print_brace_start() # {
+{
+ echo_to_file "{"
+}
+
+function print_brace_end() # }
+{
+ echo_to_file "}"
+}
+
+function print_bracket_start() # "$NAME": [
+{
+ local NAME=$1
+ echo_to_file "\"$NAME\":["
+}
+
+function print_bracket_end() # ]
+{
+ echo_to_file "]"
+}
+
+function print_key_value() # "$KEY": "$VALUE"
+{
+ local KEY=$1
+ local VALUE=$2
+ echo_to_file "\"$KEY\": \"$VALUE\""
+}
+
+function print_key_value_no_quot() # "$KEY": $VALUE
+{
+ local KEY=$1
+ local VALUE=$2
+ echo_to_file "\"$KEY\": $VALUE"
+}
+
+function print_key_value_dbl() # "dblValue": $VALUE
+{
+ local VALUE=$1
+ echo_to_file "\"dblValue\": $VALUE" # value should not include ""
+}
+
+function print_results()
+{
+ local NAME=$1
+ local MEAN=$2
+
+ print_bracket_start "results"
+ print_brace_start
+ print_key_value "name" "Mean_of_$NAME"
+ print_comma
+ print_key_value "unit" "ms"
+ print_comma
+ print_key_value_dbl "$MEAN"
+ print_brace_end
+ print_bracket_end
+}
+
+function print_test()
+{
+ local NAME=$1
+ local RESULT=$2
+
+ print_brace_start
+ print_key_value "name" "$NAME"
+ print_comma
+ print_results "$NAME" "$RESULT"
+ print_brace_end
+}
+
+function print_tests()
+{
+ local MODEL=$1
+ local REPORT_MODEL_DIR=$ARTIFACT_PATH/report/benchmark/$MODEL
+ local TEST_RESULTS=$(find $REPORT_MODEL_DIR -name "*.result" -exec basename {} \;)
+ local TEST_NUM=$(find $REPORT_MODEL_DIR -name "*.result" | wc -l)
+
+ print_bracket_start "tests"
+
+ local i=0
+ for TEST in $TEST_RESULTS; do
+ local NAME=$(cat $REPORT_MODEL_DIR/$TEST | awk '{print $1}')
+ local RESULT=$(cat $REPORT_MODEL_DIR/$TEST | awk '{print $2}')
+ print_test $NAME $RESULT
+ if [[ $i -ne $TEST_NUM-1 ]]; then
+ print_comma
+ fi
+ i=$((i+1))
+ done
+
+ print_bracket_end
+}
+
+function print_groups()
+{
+ local MODEL_NUM=$(cat $MODELS_FILE | wc -l)
+ local MODELS=$(cat $MODELS_FILE | awk '{print $1}' | uniq)
+
+ print_bracket_start "groups"
+
+ local i=0
+ for MODEL in $MODELS; do
+ print_brace_start
+ print_key_value "name" " $MODEL"
+ print_comma
+ print_tests $MODEL
+ print_brace_end
+ if [[ $i -ne $MODEL_NUM-1 ]]; then
+ print_comma
+ fi
+ i=$((i+1))
+ done
+
+ print_bracket_end
+}
+
+function print_to_json()
+{
+ RESULT_JSON=$ARTIFACT_PATH/report/benchmark_result.json
+ rm -f $RESULT_JSON
+
+ MODELS_FILE=$ARTIFACT_PATH/report/benchmark/benchmark_models.txt
+
+ print_brace_start
+ print_groups
+ print_brace_end
+}
diff --git a/tools/test_driver/test_driver.sh b/tools/test_driver/test_driver.sh
new file mode 100755
index 000000000..3bff910f5
--- /dev/null
+++ b/tools/test_driver/test_driver.sh
@@ -0,0 +1,417 @@
+#!/bin/bash
+#
+# Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -e
+# NOTE: Supposed that this script would be executed with an artifact path.
+# The artifact path has tests/(test suite) and Product/
+# Reference this PR(https://github.sec.samsung.net/STAR/nnfw/pull/375).
+
+function Usage()
+{
+ echo "Usage: ./$0 --artifactpath=. # run all tests"
+ echo "Usage: ./$0 --artifactpath=/home/dragon/nnfw --frameworktest --verification --benchmark # run fw test & verfication and benchmark"
+ echo ""
+ echo "--artifactpath - (should be passed) path that has tests/ and Product/"
+ echo ""
+ echo "Following three options are needed when you want to tests of specific types. If you don't pass any one, unittest and verification will be run"
+ echo "--unittest - (default=on) run unit test"
+ echo "--frameworktest - (default=off)run framework test"
+ echo "--verification - (default=on) run verification"
+ echo ""
+ echo "Following option is only needed when you want to test benchmark."
+ echo "--benchmark - (default=off) run benchmark"
+ echo "--benchmark_acl - (default=off) run benchmark-acl"
+ echo ""
+ echo "etc."
+ echo "--framework_driverbin - (default=../../Product/out/bin/tflite_run) runner for runnning framework tests"
+ echo "--verification_driverbin - (default=../../Product/out/bin/nnapi_test) runner for runnning verification tests"
+ echo "--benchmark_driverbin - (default=../../Product/out/bin/tflite_benchmark) runner for runnning benchmark"
+ echo "--runtestsh - (default=\$ARTIFACT_PATH/tests/framework/run_test.sh) run_test.sh with path where it is for framework test and verification"
+ echo "--unittestdir - (default=\$ARTIFACT_PATH/Product/out/unittest) directory that has unittest binaries for unit test"
+ echo ""
+ echo "--ldlibrarypath - (default=\$ARTIFACT_PATH/Product/out/lib) path that you want to include libraries"
+ echo "--usennapi - (default=on) declare USE_NNAPI=1"
+ echo "--nousennapi - (default=off) declare nothing about USE_NNAPI"
+ echo "--acl_envon - (default=off) declare envs for ACL"
+ echo ""
+}
+
+ARTIFACT_PATH=""
+FRAMEWORK_DRIVER_BIN=""
+VERIFICATION_DRIVER_BIN=""
+BENCHMARK_DRIVER_BIN=""
+RUN_TEST_SH=""
+UNIT_TEST_DIR=""
+LD_LIBRARY_PATH_IN_SHELL=""
+USE_NNAPI="USE_NNAPI=1"
+ALLTEST_ON="true"
+UNITTEST_ON="false"
+FRAMEWORKTEST_ON="false"
+VERIFICATION_ON="false"
+BENCHMARK_ON="false"
+BENCHMARK_ACL_ON="false"
+MODEL_LIST="inceptionv3/inception_nonslim inceptionv3/inception_slim"
+ACL_ENV_ON="false"
+
+for i in "$@"
+do
+ case $i in
+ -h|--help|help)
+ Usage
+ exit 1
+ ;;
+ --artifactpath=*)
+ ARTIFACT_PATH=${i#*=}
+ ;;
+ --framework_driverbin=*)
+ FRAMEWORK_DRIVER_BIN=${i#*=}
+ ;;
+ --verification_driverbin=*)
+ VERIFICATION_DRIVER_BIN=${i#*=}
+ ;;
+ --benchmark_driverbin=*)
+ BENCHMARK_DRIVER_BIN=${i#*=}
+ ;;
+ --runtestsh=*)
+ RUN_TEST_SH=${i#*=}
+ ;;
+ --unittestdir=*)
+ UNIT_TEST_DIR=${i#*=}
+ ;;
+ --ldlibrarypath=*)
+ LD_LIBRARY_PATH_IN_SHELL=${i#*=}
+ ;;
+ --usennapi)
+ USE_NNAPI="USE_NNAPI=1"
+ ;;
+ --nousennapi)
+ USE_NNAPI=""
+ ;;
+ --unittest)
+ ALLTEST_ON="false"
+ UNITTEST_ON="true"
+ ;;
+ --frameworktest)
+ ALLTEST_ON="false"
+ FRAMEWORKTEST_ON="true"
+ ;;
+ --verification)
+ ALLTEST_ON="false"
+ VERIFICATION_ON="true"
+ ;;
+ --benchmark)
+ ALLTEST_ON="false"
+ BENCHMARK_ON="true"
+ ;;
+ --benchmark_acl)
+ ALLTEST_ON="false"
+ BENCHMARK_ACL_ON="true"
+ ;;
+ --acl_envon)
+ ACL_ENV_ON="true"
+ ;;
+ *)
+ # Be careful that others params are handled as $ARTIFACT_PATH
+ ARTIFACT_PATH="$i"
+ ;;
+ esac
+ shift
+done
+
+if [ ! -e "$ARTIFACT_PATH" ]; then
+ echo "Pass on with proper ARTIFACT_PATH"
+ exit 1
+fi
+ARTIFACT_PATH="$(readlink -f $ARTIFACT_PATH)"
+
+if [ -z "$RUN_TEST_SH" ]; then
+ RUN_TEST_SH=$ARTIFACT_PATH/tests/framework/run_test.sh
+fi
+
+if [ ! -e "$RUN_TEST_SH" ]; then
+ echo "Cannot find $RUN_TEST_SH"
+ exit 1
+fi
+
+if [ -z "$UNIT_TEST_DIR" ]; then
+ UNIT_TEST_DIR=$ARTIFACT_PATH/Product/out/unittest
+fi
+
+if [ -z "$LD_LIBRARY_PATH_IN_SHELL" ]; then
+ LD_LIBRARY_PATH="$ARTIFACT_PATH/Product/out/lib:$LD_LIBRARY_PATH"
+else
+ LD_LIBRARY_PATH="$LD_LIBRARY_PATH_IN_SHELL:$LD_LIBRARY_PATH"
+fi
+
+# Set env
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH
+if [ -n "$USE_NNAPI" ]; then
+ export "$USE_NNAPI"
+fi
+
+function switch_nnfw_kernel_env()
+{
+ local switch=$1 # "ON" or "OFF"
+ local mode=$2 # "acl" or "neon" or ""
+ local NNFW_KERNEL_ENV_FILE=$ARTIFACT_PATH/tools/test_driver/nnfw_kernel_env_list.txt
+
+ for ENV in $(cat $NNFW_KERNEL_ENV_FILE); do
+ if [[ "$switch" == "ON" ]]; then
+ export "$ENV=$mode"
+ else
+ unset "$ENV"
+ fi
+ done
+}
+
+if [ "$ACL_ENV_ON" == "true" ]; then
+ switch_nnfw_kernel_env "ON" "acl"
+fi
+
+# Run unittest in each part such as Runtime, ACL
+if [ "$ALLTEST_ON" == "true" ] || [ "$UNITTEST_ON" == "true" ]; then
+ if [ ! -e "$ARTIFACT_PATH/report" ]; then
+ mkdir -p $ARTIFACT_PATH/report
+ fi
+
+ echo ""
+ echo "============================================"
+ echo "Unittest start"
+ echo "============================================"
+
+ num_unittest=0
+ for TEST_BIN in `ls $UNIT_TEST_DIR`; do
+ num_unittest=$((num_unittest+1))
+ echo "============================================"
+ echo "Starting set $num_unittest: $TEST_BIN..."
+ echo "============================================"
+ $UNIT_TEST_DIR/$TEST_BIN --gtest_output=xml:$ARTIFACT_PATH/report/$TEST_BIN.xml
+ echo "============================================"
+ echo "Finishing set $num_unittest: $TEST_BIN..."
+ echo "============================================"
+ done
+ echo "============================================"
+ echo "Completed total $num_unittest set of unittest"
+ echo "Unittest end"
+ echo "============================================"
+fi
+
+# Run tflite_run with various tflite models
+if [ "$FRAMEWORKTEST_ON" == "true" ]; then
+ if [ -z "$FRAMEWORK_DRIVER_BIN" ]; then
+ FRAMEWORK_DRIVER_BIN=$ARTIFACT_PATH/Product/out/bin/tflite_run
+ fi
+
+ if [ ! -e "$ARTIFACT_PATH/report" ]; then
+ mkdir -p $ARTIFACT_PATH/report
+ fi
+
+ echo ""
+ echo "============================================"
+ echo "Framework Test with tflite_run..."
+ $RUN_TEST_SH --driverbin=$FRAMEWORK_DRIVER_BIN \
+ --reportdir=$ARTIFACT_PATH/report \
+ --tapname=framework_test.tap \
+ > $ARTIFACT_PATH/report/framework_test.log 2>&1
+ echo "============================================"
+ cat $ARTIFACT_PATH/report/framework_test.tap
+ echo "============================================"
+ echo ""
+fi
+
+# Run nnapi_test with various tflite models
+if [ "$ALLTEST_ON" == "true" ] || [ "$VERIFICATION_ON" == "true" ]; then
+ if [ -z "$VERIFICATION_DRIVER_BIN" ]; then
+ VERIFICATION_DRIVER_BIN=$ARTIFACT_PATH/Product/out/bin/nnapi_test
+ fi
+
+ if [ ! -e "$ARTIFACT_PATH/report" ]; then
+ mkdir -p $ARTIFACT_PATH/report
+ fi
+
+ echo ""
+ echo "============================================"
+ echo "Verification with nnapi_test..."
+ $RUN_TEST_SH --driverbin=$VERIFICATION_DRIVER_BIN \
+ --reportdir=$ARTIFACT_PATH/report \
+ --tapname=verification.tap \
+ > $ARTIFACT_PATH/report/verification.log 2>&1
+ echo "============================================"
+ cat $ARTIFACT_PATH/report/verification.tap
+ echo "============================================"
+ echo ""
+fi
+
+# Benchmark test
+function get_result_of_benchmark_test()
+{
+ local RUN_TEST_SH=$1
+ local DRIVER_BIN=$2
+ local MODEL=$3
+ local LOG_FILE=$4
+
+ $RUN_TEST_SH --driverbin=$DRIVER_BIN $MODEL > $LOG_FILE 2>&1
+
+ local RESULT=`grep -E '^Mean:' $LOG_FILE | sed -e 's/ms//g' | awk '{print $2}'`
+ echo "$RESULT"
+}
+
+function print_result_of_benchmark_test()
+{
+ local NAME=$1
+ local RESULT=$2
+ local RESULT_FILE=$3
+
+ echo "$NAME $RESULT" > $RESULT_FILE
+}
+
+function run_benchmark_test()
+{
+ local DRIVER_BIN=
+ local LOG_FILE=
+ local RESULT_FILE=
+ local RESULT=
+ local REPORT_MODEL_DIR=
+
+ if [ -z "$BENCHMARK_DRIVER_BIN" ]; then
+ DRIVER_BIN=$ARTIFACT_PATH/Product/out/bin/tflite_benchmark
+ else
+ DRIVER_BIN=$BENCHMARK_DRIVER_BIN
+ fi
+
+ export COUNT=5
+ echo "============================================"
+ local i=0
+ for MODEL in $MODEL_LIST; do
+ echo "Benchmark test with tflite_benchmark & `echo $MODEL`"
+ echo $MODEL >> $MODELS_FILE
+
+ REPORT_MODEL_DIR=$ARTIFACT_PATH/report/benchmark/$MODEL
+ mkdir -p $REPORT_MODEL_DIR
+
+ # TFLite+CPU
+ LOG_FILE=$REPORT_MODEL_DIR/tflite_cpu.txt
+ RESULT_FILE=$REPORT_MODEL_DIR/tflite_cpu.result
+ echo -n "TFLite + CPU................... "
+ unset USE_NNAPI
+ RESULT=$(get_result_of_benchmark_test $RUN_TEST_SH $DRIVER_BIN $MODEL $LOG_FILE)
+ echo "$RESULT ms"
+ print_result_of_benchmark_test "TFLite_CPU" $RESULT $RESULT_FILE
+
+
+ # TFLite+NNAPI(CPU fallback)
+ LOG_FILE=$REPORT_MODEL_DIR/tflite_nnapi_cpu.txt
+ RESULT_FILE=$REPORT_MODEL_DIR/tflite_nnapi_cpu.result
+ echo -n "TFLite + NNAPI(CPU)............ "
+ export USE_NNAPI=1
+ RESULT=$(get_result_of_benchmark_test $RUN_TEST_SH $DRIVER_BIN $MODEL $LOG_FILE)
+ echo "$RESULT ms"
+ print_result_of_benchmark_test "TFLite_NNAPI_CPU" $RESULT $RESULT_FILE
+
+ # TFLite+NNAPI(ACL)
+ LOG_FILE=$REPORT_MODEL_DIR/tflite_nnapi_acl.txt
+ RESULT_FILE=$REPORT_MODEL_DIR/tflite_nnapi_acl.result
+ echo -n "TFLite + NNAPI(ACL)............ "
+ switch_nnfw_kernel_env "ON" "acl"
+ RESULT=$(get_result_of_benchmark_test $RUN_TEST_SH $DRIVER_BIN $MODEL $LOG_FILE)
+ echo "$RESULT ms"
+ print_result_of_benchmark_test "TFLite_NNAPI_ACL" $RESULT $RESULT_FILE
+ unset USE_NNAPI
+ switch_nnfw_kernel_env "OFF"
+
+ if [[ $i -ne $(echo $MODEL_LIST | wc -w)-1 ]]; then
+ echo ""
+ fi
+ i=$((i+1))
+ done
+ echo "============================================"
+ unset COUNT
+}
+
+function run_benchmark_acl()
+{
+ local REPORT_DIR=$ARTIFACT_PATH/report/benchmark
+ local DRIVER_DIR=$ARTIFACT_PATH/Product/out/bin
+ local LOG_FILE=""
+ local RESULT_FILE=""
+ local RESULT=""
+
+ export COUNT=5
+ echo "============================================"
+ local i=0
+ for BENCHMARK_ACL_BIN in $(ls $DRIVER_DIR/benchmark_*); do
+ BENCHMARK_ACL_BIN_BASENAME=$(basename $BENCHMARK_ACL_BIN)
+ mkdir -p $REPORT_DIR/$BENCHMARK_ACL_BIN_BASENAME
+ echo "Benchmark/acl test by $BENCHMARK_ACL_BIN_BASENAME"
+ echo $BENCHMARK_ACL_BIN_BASENAME >> $MODELS_FILE
+
+ # ACL(NEON)
+ LOG_FILE=$REPORT_DIR/$BENCHMARK_ACL_BIN_BASENAME/acl_neon.txt
+ RESULT_FILE=$REPORT_DIR/$BENCHMARK_ACL_BIN_BASENAME/acl_neon.result
+ echo -n "ACL(NEON)...... "
+ $BENCHMARK_ACL_BIN 0 > $LOG_FILE 2>&1
+ RESULT=`grep -E '^Mean:' $LOG_FILE | sed -e 's/ms//g' | awk '{print $2}'`
+ echo "$RESULT ms"
+ echo "ACL(NEON)" $RESULT > $RESULT_FILE
+
+ # ACL(OpenCL)
+ LOG_FILE=$REPORT_DIR/$BENCHMARK_ACL_BIN_BASENAME/acl_opencl.txt
+ RESULT_FILE=$REPORT_DIR/$BENCHMARK_ACL_BIN_BASENAME/acl_opencl.result
+ echo -n "ACL(OpenCL).... "
+ $BENCHMARK_ACL_BIN 1 > $LOG_FILE 2>&1
+ RESULT=`grep -E '^Mean:' $LOG_FILE | sed -e 's/ms//g' | awk '{print $2}'`
+ echo "$RESULT ms"
+ echo "ACL(OpenCL)" $RESULT > $RESULT_FILE
+
+ if [[ $i -ne $(ls $DRIVER_DIR/benchmark_* | wc -w)-1 ]]; then
+ echo ""
+ fi
+ i=$((i+1))
+ done
+ echo "============================================"
+ unset COUNT
+}
+
+if [ "$BENCHMARK_ON" == "true" ] || [ "$BENCHMARK_ACL_ON" == "true" ]; then
+ if [ ! -e "$ARTIFACT_PATH/report" ]; then
+ mkdir -p $ARTIFACT_PATH/report
+ fi
+ REPORT_MODEL_DIR=$ARTIFACT_PATH/report/benchmark
+ mkdir -p $REPORT_MODEL_DIR
+ MODELS_FILE=$ARTIFACT_PATH/report/benchmark/benchmark_models.txt
+ rm -f $MODELS_FILE
+fi
+
+# Run tflite_benchmark with Iv3_non_slim & Iv3_slim
+if [ "$BENCHMARK_ON" == "true" ]; then
+ echo ""
+ run_benchmark_test
+ echo ""
+fi
+
+# Run benchmark/acl/benchmark_googlenet,mobilenet and inception_v3
+if [ "$BENCHMARK_ACL_ON" == "true" ]; then
+ echo ""
+ run_benchmark_acl
+ echo ""
+fi
+
+# make json file
+if [ "$BENCHMARK_ON" == "true" ] || [ "$BENCHMARK_ACL_ON" == "true" ]; then
+ # functions to fill json with benchmark results
+ source $ARTIFACT_PATH/tools/test_driver/print_to_json.sh
+ print_to_json
+fi